diff --git a/.github/workflows/deploy.yml b/.github/workflows/deploy.yml new file mode 100644 index 0000000..d21c39c --- /dev/null +++ b/.github/workflows/deploy.yml @@ -0,0 +1,35 @@ +name: Deploy to GitHub Pages + +on: + push: + branches: [ main ] + pull_request: + branches: [ main ] + +jobs: + build-and-deploy: + runs-on: ubuntu-latest + + steps: + - name: Checkout + uses: actions/checkout@v4 + + - name: Setup Node.js + uses: actions/setup-node@v4 + with: + node-version: '18' + cache: 'npm' + + - name: Install dependencies + run: npm ci + + - name: Build static site + run: npm run build:static + + - name: Deploy to GitHub Pages + uses: peaceiris/actions-gh-pages@v3 + if: github.ref == 'refs/heads/main' + with: + github_token: ${{ secrets.GITHUB_TOKEN }} + publish_dir: ./out + cname: yourdomain.com # 替换为你的域名 diff --git a/.gitignore b/.gitignore index fde667a..b148d01 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,63 @@ -node_modules -.next -out \ No newline at end of file +# Dependencies +node_modules/ +npm-debug.log* +yarn-debug.log* +yarn-error.log* + +# Next.js +.next/ +out/ +build/ + +# Production +dist/ + +# Environment variables +.env +.env.local +.env.development.local +.env.test.local +.env.production.local + +# IDE +.vscode/ +.idea/ +*.swp +*.swo + +# OS +.DS_Store +Thumbs.db + +# Logs +*.log + +# Runtime data +pids +*.pid +*.seed +*.pid.lock + +# Coverage directory used by tools like istanbul +coverage/ + +# Dependency directories +jspm_packages/ + +# Optional npm cache directory +.npm + +# Optional REPL history +.node_repl_history + +# Output of 'npm pack' +*.tgz + +# Yarn Integrity file +.yarn-integrity + +# Vercel +.vercel + +# Netlify +.netlify \ No newline at end of file diff --git a/.next/BUILD_ID b/.next/BUILD_ID index e186384..9e49090 100644 --- a/.next/BUILD_ID +++ b/.next/BUILD_ID @@ -1 +1 @@ -zlAH2cHTsaxKzxppe1EeC \ No newline at end of file +BC55hDkCbKdePlWWvs1u_ \ No newline at end of file diff --git a/.next/build-manifest.json b/.next/build-manifest.json index 3d0c62e..98b264c 100644 --- a/.next/build-manifest.json +++ b/.next/build-manifest.json @@ -5,80 +5,94 @@ "devFiles": [], "ampDevFiles": [], "lowPriorityFiles": [ - "static/zlAH2cHTsaxKzxppe1EeC/_buildManifest.js", - "static/zlAH2cHTsaxKzxppe1EeC/_ssgManifest.js" + "static/BC55hDkCbKdePlWWvs1u_/_buildManifest.js", + "static/BC55hDkCbKdePlWWvs1u_/_ssgManifest.js" ], "rootMainFiles": [], "rootMainFilesTree": {}, "pages": { "/": [ - "static/chunks/webpack-057da668910d4143.js", + "static/chunks/webpack-22e55b39fad5ed53.js", "static/chunks/framework-768692517470e708.js", - "static/chunks/main-1d517099cd2b8fe7.js", - "static/chunks/752-7be3646714fa7c4b.js", - "static/chunks/pages/index-f0d56cc007c09baf.js" + "static/chunks/main-068b7b110c4638d3.js", + "static/chunks/822-da9f524f13859791.js", + "static/chunks/137-bf054b6a146af08a.js", + "static/chunks/918-4bc07682571d1dac.js", + "static/chunks/pages/index-8037d7b3ac028ae8.js" ], "/_app": [ - "static/chunks/webpack-057da668910d4143.js", + "static/chunks/webpack-22e55b39fad5ed53.js", "static/chunks/framework-768692517470e708.js", - "static/chunks/main-1d517099cd2b8fe7.js", - "static/css/d1d52e078040944a.css", + "static/chunks/main-068b7b110c4638d3.js", + "static/css/95bb1a7173c0b876.css", "static/chunks/pages/_app-48e49d6afe408d10.js" ], "/_error": [ - "static/chunks/webpack-057da668910d4143.js", + "static/chunks/webpack-22e55b39fad5ed53.js", "static/chunks/framework-768692517470e708.js", - "static/chunks/main-1d517099cd2b8fe7.js", + "static/chunks/main-068b7b110c4638d3.js", "static/chunks/pages/_error-7ddc2730f944d98a.js" ], "/about": [ - "static/chunks/webpack-057da668910d4143.js", + "static/chunks/webpack-22e55b39fad5ed53.js", "static/chunks/framework-768692517470e708.js", - "static/chunks/main-1d517099cd2b8fe7.js", - "static/chunks/752-7be3646714fa7c4b.js", - "static/chunks/pages/about-2092805e7bd2ab57.js" + "static/chunks/main-068b7b110c4638d3.js", + "static/chunks/822-da9f524f13859791.js", + "static/chunks/137-bf054b6a146af08a.js", + "static/chunks/pages/about-d81811cf16393363.js" ], "/cases": [ - "static/chunks/webpack-057da668910d4143.js", + "static/chunks/webpack-22e55b39fad5ed53.js", "static/chunks/framework-768692517470e708.js", - "static/chunks/main-1d517099cd2b8fe7.js", - "static/chunks/752-7be3646714fa7c4b.js", - "static/chunks/pages/cases-7fc60f7f3779c332.js" + "static/chunks/main-068b7b110c4638d3.js", + "static/chunks/822-da9f524f13859791.js", + "static/chunks/137-bf054b6a146af08a.js", + "static/chunks/pages/cases-f9b95c7b9db01f71.js" ], "/contact": [ - "static/chunks/webpack-057da668910d4143.js", + "static/chunks/webpack-22e55b39fad5ed53.js", "static/chunks/framework-768692517470e708.js", - "static/chunks/main-1d517099cd2b8fe7.js", - "static/chunks/752-7be3646714fa7c4b.js", - "static/chunks/pages/contact-eb714edd6749b939.js" + "static/chunks/main-068b7b110c4638d3.js", + "static/chunks/822-da9f524f13859791.js", + "static/chunks/pages/contact-61de0e28887a09bd.js" ], "/features": [ - "static/chunks/webpack-057da668910d4143.js", + "static/chunks/webpack-22e55b39fad5ed53.js", "static/chunks/framework-768692517470e708.js", - "static/chunks/main-1d517099cd2b8fe7.js", - "static/chunks/752-7be3646714fa7c4b.js", - "static/chunks/pages/features-c01c43eb1fe58456.js" + "static/chunks/main-068b7b110c4638d3.js", + "static/chunks/822-da9f524f13859791.js", + "static/chunks/137-bf054b6a146af08a.js", + "static/chunks/918-4bc07682571d1dac.js", + "static/chunks/pages/features-93fbae3d8fbd8394.js" ], "/login": [ - "static/chunks/webpack-057da668910d4143.js", + "static/chunks/webpack-22e55b39fad5ed53.js", "static/chunks/framework-768692517470e708.js", - "static/chunks/main-1d517099cd2b8fe7.js", - "static/chunks/752-7be3646714fa7c4b.js", - "static/chunks/pages/login-770246fe6d4a26b5.js" + "static/chunks/main-068b7b110c4638d3.js", + "static/chunks/822-da9f524f13859791.js", + "static/chunks/0-28af0524fadc5ec4.js", + "static/chunks/pages/login-22d7626a42cf752e.js" ], "/news": [ - "static/chunks/webpack-057da668910d4143.js", + "static/chunks/webpack-22e55b39fad5ed53.js", "static/chunks/framework-768692517470e708.js", - "static/chunks/main-1d517099cd2b8fe7.js", - "static/chunks/752-7be3646714fa7c4b.js", - "static/chunks/pages/news-eab647df9653169a.js" + "static/chunks/main-068b7b110c4638d3.js", + "static/chunks/822-da9f524f13859791.js", + "static/chunks/pages/news-121e3e413bdad17d.js" + ], + "/news/[slug]": [ + "static/chunks/webpack-22e55b39fad5ed53.js", + "static/chunks/framework-768692517470e708.js", + "static/chunks/main-068b7b110c4638d3.js", + "static/chunks/822-da9f524f13859791.js", + "static/chunks/pages/news/[slug]-6186471bb0713168.js" ], "/pricing": [ - "static/chunks/webpack-057da668910d4143.js", + "static/chunks/webpack-22e55b39fad5ed53.js", "static/chunks/framework-768692517470e708.js", - "static/chunks/main-1d517099cd2b8fe7.js", - "static/chunks/752-7be3646714fa7c4b.js", - "static/chunks/pages/pricing-20dc30b818da4890.js" + "static/chunks/main-068b7b110c4638d3.js", + "static/chunks/822-da9f524f13859791.js", + "static/chunks/pages/pricing-dca7adf04ef74762.js" ] }, "ampFirstPages": [] diff --git a/.next/cache/.previewinfo b/.next/cache/.previewinfo index 8aa9fa8..8a6cf4c 100644 --- a/.next/cache/.previewinfo +++ b/.next/cache/.previewinfo @@ -1 +1 @@ -{"previewModeId":"d1ad157dd1048d2ddf5a4e2cffcefbb0","previewModeSigningKey":"ce8574b53fdbe9a74e0275738f30c6879890b34fd85b71e6da9401edae05e102","previewModeEncryptionKey":"23b46bcb2c39b2ad4ca8ca609143026b7f024a26ee25191ef54b720f2521fc87","expireAt":1753867879487} \ No newline at end of file +{"previewModeId":"8b238f26c47dea613ba5058d2eb4fe5a","previewModeSigningKey":"de7ad8a68a489e0e29bb005180f182b5ca740f204c39d89aaeb85ba6d74350c1","previewModeEncryptionKey":"d66bc828d38e7c71bfb0ab1e63a17d116fb0b5f4776d146abf8b14c2779cd5e4","expireAt":1759124396181} \ No newline at end of file diff --git a/.next/cache/.rscinfo b/.next/cache/.rscinfo index e63802c..b64ad63 100644 --- a/.next/cache/.rscinfo +++ b/.next/cache/.rscinfo @@ -1 +1 @@ -{"encryption.key":"cTPoQV/25NJUObeCYzUTqVou4awShsKpuwfDHtoMy4U=","encryption.expire_at":1753855460956} \ No newline at end of file +{"encryption.key":"OrOM8vabl5PSiXmzYjSJVNQGtZlJuyx4wfbMyJqGr3U=","encryption.expire_at":1759124228207} \ No newline at end of file diff --git a/.next/cache/.tsbuildinfo b/.next/cache/.tsbuildinfo index b18873e..bb41512 100644 --- a/.next/cache/.tsbuildinfo +++ b/.next/cache/.tsbuildinfo @@ -1 +1 @@ -{"program":{"fileNames":["../../node_modules/typescript/lib/lib.es5.d.ts","../../node_modules/typescript/lib/lib.es2015.d.ts","../../node_modules/typescript/lib/lib.es2016.d.ts","../../node_modules/typescript/lib/lib.es2017.d.ts","../../node_modules/typescript/lib/lib.es2018.d.ts","../../node_modules/typescript/lib/lib.es2019.d.ts","../../node_modules/typescript/lib/lib.es2020.d.ts","../../node_modules/typescript/lib/lib.es2021.d.ts","../../node_modules/typescript/lib/lib.es2022.d.ts","../../node_modules/typescript/lib/lib.esnext.d.ts","../../node_modules/typescript/lib/lib.dom.d.ts","../../node_modules/typescript/lib/lib.dom.iterable.d.ts","../../node_modules/typescript/lib/lib.es2015.core.d.ts","../../node_modules/typescript/lib/lib.es2015.collection.d.ts","../../node_modules/typescript/lib/lib.es2015.generator.d.ts","../../node_modules/typescript/lib/lib.es2015.iterable.d.ts","../../node_modules/typescript/lib/lib.es2015.promise.d.ts","../../node_modules/typescript/lib/lib.es2015.proxy.d.ts","../../node_modules/typescript/lib/lib.es2015.reflect.d.ts","../../node_modules/typescript/lib/lib.es2015.symbol.d.ts","../../node_modules/typescript/lib/lib.es2015.symbol.wellknown.d.ts","../../node_modules/typescript/lib/lib.es2016.array.include.d.ts","../../node_modules/typescript/lib/lib.es2017.object.d.ts","../../node_modules/typescript/lib/lib.es2017.sharedmemory.d.ts","../../node_modules/typescript/lib/lib.es2017.string.d.ts","../../node_modules/typescript/lib/lib.es2017.intl.d.ts","../../node_modules/typescript/lib/lib.es2017.typedarrays.d.ts","../../node_modules/typescript/lib/lib.es2018.asyncgenerator.d.ts","../../node_modules/typescript/lib/lib.es2018.asynciterable.d.ts","../../node_modules/typescript/lib/lib.es2018.intl.d.ts","../../node_modules/typescript/lib/lib.es2018.promise.d.ts","../../node_modules/typescript/lib/lib.es2018.regexp.d.ts","../../node_modules/typescript/lib/lib.es2019.array.d.ts","../../node_modules/typescript/lib/lib.es2019.object.d.ts","../../node_modules/typescript/lib/lib.es2019.string.d.ts","../../node_modules/typescript/lib/lib.es2019.symbol.d.ts","../../node_modules/typescript/lib/lib.es2019.intl.d.ts","../../node_modules/typescript/lib/lib.es2020.bigint.d.ts","../../node_modules/typescript/lib/lib.es2020.date.d.ts","../../node_modules/typescript/lib/lib.es2020.promise.d.ts","../../node_modules/typescript/lib/lib.es2020.sharedmemory.d.ts","../../node_modules/typescript/lib/lib.es2020.string.d.ts","../../node_modules/typescript/lib/lib.es2020.symbol.wellknown.d.ts","../../node_modules/typescript/lib/lib.es2020.intl.d.ts","../../node_modules/typescript/lib/lib.es2020.number.d.ts","../../node_modules/typescript/lib/lib.es2021.promise.d.ts","../../node_modules/typescript/lib/lib.es2021.string.d.ts","../../node_modules/typescript/lib/lib.es2021.weakref.d.ts","../../node_modules/typescript/lib/lib.es2021.intl.d.ts","../../node_modules/typescript/lib/lib.es2022.array.d.ts","../../node_modules/typescript/lib/lib.es2022.error.d.ts","../../node_modules/typescript/lib/lib.es2022.intl.d.ts","../../node_modules/typescript/lib/lib.es2022.object.d.ts","../../node_modules/typescript/lib/lib.es2022.sharedmemory.d.ts","../../node_modules/typescript/lib/lib.es2022.string.d.ts","../../node_modules/typescript/lib/lib.esnext.intl.d.ts","../../node_modules/@types/react/ts5.0/global.d.ts","../../node_modules/csstype/index.d.ts","../../node_modules/@types/react/ts5.0/index.d.ts","../../node_modules/next/dist/styled-jsx/types/css.d.ts","../../node_modules/next/dist/styled-jsx/types/macro.d.ts","../../node_modules/next/dist/styled-jsx/types/style.d.ts","../../node_modules/next/dist/styled-jsx/types/global.d.ts","../../node_modules/next/dist/styled-jsx/types/index.d.ts","../../node_modules/next/dist/shared/lib/amp.d.ts","../../node_modules/next/amp.d.ts","../../node_modules/next/dist/server/get-page-files.d.ts","../../node_modules/@types/node/ts5.1/compatibility/disposable.d.ts","../../node_modules/@types/node/ts5.6/compatibility/float16array.d.ts","../../node_modules/@types/node/compatibility/iterators.d.ts","../../node_modules/@types/node/ts5.6/globals.typedarray.d.ts","../../node_modules/@types/node/ts5.6/buffer.buffer.d.ts","../../node_modules/undici-types/utility.d.ts","../../node_modules/undici-types/header.d.ts","../../node_modules/undici-types/readable.d.ts","../../node_modules/undici-types/fetch.d.ts","../../node_modules/undici-types/formdata.d.ts","../../node_modules/undici-types/connector.d.ts","../../node_modules/undici-types/client.d.ts","../../node_modules/undici-types/errors.d.ts","../../node_modules/undici-types/dispatcher.d.ts","../../node_modules/undici-types/global-dispatcher.d.ts","../../node_modules/undici-types/global-origin.d.ts","../../node_modules/undici-types/pool-stats.d.ts","../../node_modules/undici-types/pool.d.ts","../../node_modules/undici-types/handlers.d.ts","../../node_modules/undici-types/balanced-pool.d.ts","../../node_modules/undici-types/h2c-client.d.ts","../../node_modules/undici-types/agent.d.ts","../../node_modules/undici-types/mock-interceptor.d.ts","../../node_modules/undici-types/mock-call-history.d.ts","../../node_modules/undici-types/mock-agent.d.ts","../../node_modules/undici-types/mock-client.d.ts","../../node_modules/undici-types/mock-pool.d.ts","../../node_modules/undici-types/mock-errors.d.ts","../../node_modules/undici-types/proxy-agent.d.ts","../../node_modules/undici-types/env-http-proxy-agent.d.ts","../../node_modules/undici-types/retry-handler.d.ts","../../node_modules/undici-types/retry-agent.d.ts","../../node_modules/undici-types/api.d.ts","../../node_modules/undici-types/cache-interceptor.d.ts","../../node_modules/undici-types/interceptors.d.ts","../../node_modules/undici-types/util.d.ts","../../node_modules/undici-types/cookies.d.ts","../../node_modules/undici-types/patch.d.ts","../../node_modules/undici-types/websocket.d.ts","../../node_modules/undici-types/eventsource.d.ts","../../node_modules/undici-types/diagnostics-channel.d.ts","../../node_modules/undici-types/content-type.d.ts","../../node_modules/undici-types/cache.d.ts","../../node_modules/undici-types/index.d.ts","../../node_modules/@types/node/globals.d.ts","../../node_modules/@types/node/assert.d.ts","../../node_modules/@types/node/assert/strict.d.ts","../../node_modules/@types/node/async_hooks.d.ts","../../node_modules/@types/node/buffer.d.ts","../../node_modules/@types/node/child_process.d.ts","../../node_modules/@types/node/cluster.d.ts","../../node_modules/@types/node/console.d.ts","../../node_modules/@types/node/constants.d.ts","../../node_modules/@types/node/crypto.d.ts","../../node_modules/@types/node/dgram.d.ts","../../node_modules/@types/node/diagnostics_channel.d.ts","../../node_modules/@types/node/dns.d.ts","../../node_modules/@types/node/dns/promises.d.ts","../../node_modules/@types/node/domain.d.ts","../../node_modules/@types/node/dom-events.d.ts","../../node_modules/@types/node/events.d.ts","../../node_modules/@types/node/fs.d.ts","../../node_modules/@types/node/fs/promises.d.ts","../../node_modules/@types/node/http.d.ts","../../node_modules/@types/node/http2.d.ts","../../node_modules/@types/node/https.d.ts","../../node_modules/@types/node/inspector.d.ts","../../node_modules/@types/node/module.d.ts","../../node_modules/@types/node/net.d.ts","../../node_modules/@types/node/os.d.ts","../../node_modules/@types/node/path.d.ts","../../node_modules/@types/node/perf_hooks.d.ts","../../node_modules/@types/node/process.d.ts","../../node_modules/@types/node/punycode.d.ts","../../node_modules/@types/node/querystring.d.ts","../../node_modules/@types/node/readline.d.ts","../../node_modules/@types/node/readline/promises.d.ts","../../node_modules/@types/node/repl.d.ts","../../node_modules/@types/node/sea.d.ts","../../node_modules/@types/node/sqlite.d.ts","../../node_modules/@types/node/stream.d.ts","../../node_modules/@types/node/stream/promises.d.ts","../../node_modules/@types/node/stream/consumers.d.ts","../../node_modules/@types/node/stream/web.d.ts","../../node_modules/@types/node/string_decoder.d.ts","../../node_modules/@types/node/test.d.ts","../../node_modules/@types/node/timers.d.ts","../../node_modules/@types/node/timers/promises.d.ts","../../node_modules/@types/node/tls.d.ts","../../node_modules/@types/node/trace_events.d.ts","../../node_modules/@types/node/tty.d.ts","../../node_modules/@types/node/url.d.ts","../../node_modules/@types/node/util.d.ts","../../node_modules/@types/node/v8.d.ts","../../node_modules/@types/node/vm.d.ts","../../node_modules/@types/node/wasi.d.ts","../../node_modules/@types/node/worker_threads.d.ts","../../node_modules/@types/node/zlib.d.ts","../../node_modules/@types/node/ts5.1/index.d.ts","../../node_modules/@types/react/ts5.0/canary.d.ts","../../node_modules/@types/react/ts5.0/experimental.d.ts","../../node_modules/next/dist/lib/fallback.d.ts","../../node_modules/next/dist/compiled/webpack/webpack.d.ts","../../node_modules/next/dist/server/config.d.ts","../../node_modules/next/dist/lib/load-custom-routes.d.ts","../../node_modules/next/dist/shared/lib/image-config.d.ts","../../node_modules/next/dist/build/webpack/plugins/subresource-integrity-plugin.d.ts","../../node_modules/next/dist/server/body-streams.d.ts","../../node_modules/next/dist/server/lib/cache-control.d.ts","../../node_modules/next/dist/lib/setup-exception-listeners.d.ts","../../node_modules/next/dist/lib/worker.d.ts","../../node_modules/next/dist/lib/constants.d.ts","../../node_modules/next/dist/client/components/app-router-headers.d.ts","../../node_modules/next/dist/build/rendering-mode.d.ts","../../node_modules/next/dist/server/lib/router-utils/build-prefetch-segment-data-route.d.ts","../../node_modules/next/dist/server/require-hook.d.ts","../../node_modules/next/dist/server/lib/experimental/ppr.d.ts","../../node_modules/next/dist/build/webpack/plugins/app-build-manifest-plugin.d.ts","../../node_modules/next/dist/lib/page-types.d.ts","../../node_modules/next/dist/build/segment-config/app/app-segment-config.d.ts","../../node_modules/next/dist/build/segment-config/pages/pages-segment-config.d.ts","../../node_modules/next/dist/build/analysis/get-page-static-info.d.ts","../../node_modules/next/dist/build/webpack/loaders/get-module-build-info.d.ts","../../node_modules/next/dist/build/webpack/plugins/middleware-plugin.d.ts","../../node_modules/next/dist/server/node-polyfill-crypto.d.ts","../../node_modules/next/dist/server/node-environment-baseline.d.ts","../../node_modules/next/dist/server/node-environment-extensions/error-inspect.d.ts","../../node_modules/next/dist/server/node-environment-extensions/random.d.ts","../../node_modules/next/dist/server/node-environment-extensions/date.d.ts","../../node_modules/next/dist/server/node-environment-extensions/web-crypto.d.ts","../../node_modules/next/dist/server/node-environment-extensions/node-crypto.d.ts","../../node_modules/next/dist/server/node-environment.d.ts","../../node_modules/next/dist/build/page-extensions-type.d.ts","../../node_modules/next/dist/build/webpack/plugins/flight-manifest-plugin.d.ts","../../node_modules/next/dist/server/instrumentation/types.d.ts","../../node_modules/next/dist/lib/coalesced-function.d.ts","../../node_modules/next/dist/shared/lib/router/utils/middleware-route-matcher.d.ts","../../node_modules/next/dist/server/lib/router-utils/types.d.ts","../../node_modules/next/dist/shared/lib/modern-browserslist-target.d.ts","../../node_modules/next/dist/shared/lib/constants.d.ts","../../node_modules/next/dist/trace/types.d.ts","../../node_modules/next/dist/trace/trace.d.ts","../../node_modules/next/dist/trace/shared.d.ts","../../node_modules/next/dist/trace/index.d.ts","../../node_modules/next/dist/build/load-jsconfig.d.ts","../../node_modules/@next/env/dist/index.d.ts","../../node_modules/next/dist/build/webpack/plugins/telemetry-plugin/use-cache-tracker-utils.d.ts","../../node_modules/next/dist/build/webpack/plugins/telemetry-plugin/telemetry-plugin.d.ts","../../node_modules/next/dist/telemetry/storage.d.ts","../../node_modules/next/dist/build/build-context.d.ts","../../node_modules/next/dist/shared/lib/bloom-filter.d.ts","../../node_modules/next/dist/build/webpack-config.d.ts","../../node_modules/next/dist/server/route-kind.d.ts","../../node_modules/next/dist/server/route-definitions/route-definition.d.ts","../../node_modules/next/dist/build/swc/generated-native.d.ts","../../node_modules/next/dist/build/swc/types.d.ts","../../node_modules/next/dist/server/dev/parse-version-info.d.ts","../../node_modules/next/dist/next-devtools/shared/types.d.ts","../../node_modules/next/dist/server/dev/dev-indicator-server-state.d.ts","../../node_modules/next/dist/server/dev/hot-reloader-types.d.ts","../../node_modules/next/dist/server/lib/cache-handlers/types.d.ts","../../node_modules/next/dist/server/response-cache/types.d.ts","../../node_modules/next/dist/server/resume-data-cache/cache-store.d.ts","../../node_modules/next/dist/server/resume-data-cache/resume-data-cache.d.ts","../../node_modules/next/dist/server/render-result.d.ts","../../node_modules/next/dist/server/lib/i18n-provider.d.ts","../../node_modules/next/dist/server/web/next-url.d.ts","../../node_modules/next/dist/compiled/@edge-runtime/cookies/index.d.ts","../../node_modules/next/dist/server/web/spec-extension/cookies.d.ts","../../node_modules/next/dist/server/web/spec-extension/request.d.ts","../../node_modules/next/dist/server/after/builtin-request-context.d.ts","../../node_modules/next/dist/server/web/spec-extension/fetch-event.d.ts","../../node_modules/next/dist/server/web/spec-extension/response.d.ts","../../node_modules/next/dist/build/segment-config/middleware/middleware-config.d.ts","../../node_modules/next/dist/server/web/types.d.ts","../../node_modules/next/dist/build/webpack/plugins/pages-manifest-plugin.d.ts","../../node_modules/next/dist/shared/lib/router/utils/parse-url.d.ts","../../node_modules/next/dist/server/base-http/node.d.ts","../../node_modules/next/dist/build/webpack/plugins/next-font-manifest-plugin.d.ts","../../node_modules/next/dist/server/route-definitions/locale-route-definition.d.ts","../../node_modules/next/dist/server/route-definitions/pages-route-definition.d.ts","../../node_modules/next/dist/shared/lib/mitt.d.ts","../../node_modules/next/dist/client/with-router.d.ts","../../node_modules/next/dist/client/router.d.ts","../../node_modules/next/dist/client/route-loader.d.ts","../../node_modules/next/dist/client/page-loader.d.ts","../../node_modules/next/dist/shared/lib/router/router.d.ts","../../node_modules/next/dist/shared/lib/router-context.shared-runtime.d.ts","../../node_modules/next/dist/shared/lib/loadable-context.shared-runtime.d.ts","../../node_modules/next/dist/shared/lib/loadable.shared-runtime.d.ts","../../node_modules/next/dist/shared/lib/image-config-context.shared-runtime.d.ts","../../node_modules/next/dist/shared/lib/hooks-client-context.shared-runtime.d.ts","../../node_modules/next/dist/shared/lib/head-manager-context.shared-runtime.d.ts","../../node_modules/next/dist/server/route-definitions/app-page-route-definition.d.ts","../../node_modules/next/dist/build/webpack/loaders/metadata/types.d.ts","../../node_modules/next/dist/build/webpack/loaders/next-app-loader/index.d.ts","../../node_modules/next/dist/server/lib/app-dir-module.d.ts","../../node_modules/next/dist/server/web/spec-extension/adapters/request-cookies.d.ts","../../node_modules/next/dist/server/async-storage/draft-mode-provider.d.ts","../../node_modules/next/dist/server/web/spec-extension/adapters/headers.d.ts","../../node_modules/next/dist/server/app-render/cache-signal.d.ts","../../node_modules/next/dist/server/app-render/dynamic-rendering.d.ts","../../node_modules/next/dist/server/app-render/work-unit-async-storage-instance.d.ts","../../node_modules/next/dist/server/response-cache/index.d.ts","../../node_modules/next/dist/server/request/fallback-params.d.ts","../../node_modules/next/dist/server/lib/lazy-result.d.ts","../../node_modules/next/dist/server/lib/implicit-tags.d.ts","../../node_modules/next/dist/server/app-render/work-unit-async-storage.external.d.ts","../../node_modules/next/dist/shared/lib/deep-readonly.d.ts","../../node_modules/next/dist/shared/lib/router/utils/parse-relative-url.d.ts","../../node_modules/next/dist/server/app-render/app-render.d.ts","../../node_modules/next/dist/shared/lib/server-inserted-html.shared-runtime.d.ts","../../node_modules/next/dist/shared/lib/amp-context.shared-runtime.d.ts","../../node_modules/next/dist/server/route-modules/app-page/vendored/contexts/entrypoints.d.ts","../../node_modules/next/dist/server/route-modules/app-page/module.compiled.d.ts","../../node_modules/next/dist/client/components/error-boundary.d.ts","../../node_modules/next/dist/client/components/layout-router.d.ts","../../node_modules/next/dist/client/components/render-from-template-context.d.ts","../../node_modules/next/dist/server/app-render/action-async-storage-instance.d.ts","../../node_modules/next/dist/server/app-render/action-async-storage.external.d.ts","../../node_modules/@types/react/ts5.0/jsx-runtime.d.ts","../../node_modules/next/dist/client/components/client-page.d.ts","../../node_modules/next/dist/client/components/client-segment.d.ts","../../node_modules/next/dist/server/request/search-params.d.ts","../../node_modules/next/dist/client/components/hooks-server-context.d.ts","../../node_modules/next/dist/client/components/http-access-fallback/error-boundary.d.ts","../../node_modules/next/dist/lib/metadata/types/alternative-urls-types.d.ts","../../node_modules/next/dist/lib/metadata/types/extra-types.d.ts","../../node_modules/next/dist/lib/metadata/types/metadata-types.d.ts","../../node_modules/next/dist/lib/metadata/types/manifest-types.d.ts","../../node_modules/next/dist/lib/metadata/types/opengraph-types.d.ts","../../node_modules/next/dist/lib/metadata/types/twitter-types.d.ts","../../node_modules/next/dist/lib/metadata/types/metadata-interface.d.ts","../../node_modules/next/dist/lib/metadata/types/resolvers.d.ts","../../node_modules/next/dist/lib/metadata/types/icons.d.ts","../../node_modules/next/dist/lib/metadata/resolve-metadata.d.ts","../../node_modules/next/dist/lib/metadata/metadata.d.ts","../../node_modules/next/dist/client/components/metadata/metadata-boundary.d.ts","../../node_modules/next/dist/server/app-render/rsc/preloads.d.ts","../../node_modules/next/dist/server/app-render/rsc/postpone.d.ts","../../node_modules/next/dist/server/app-render/rsc/taint.d.ts","../../node_modules/next/dist/server/app-render/collect-segment-data.d.ts","../../node_modules/next/dist/next-devtools/userspace/app/segment-explorer-node.d.ts","../../node_modules/next/dist/server/app-render/entry-base.d.ts","../../node_modules/next/dist/build/templates/app-page.d.ts","../../node_modules/@types/react/ts5.0/jsx-dev-runtime.d.ts","../../node_modules/next/dist/server/route-modules/app-page/vendored/rsc/entrypoints.d.ts","../../node_modules/next/dist/server/route-modules/app-page/vendored/ssr/entrypoints.d.ts","../../node_modules/next/dist/server/route-modules/app-page/module.d.ts","../../node_modules/next/dist/server/web/adapter.d.ts","../../node_modules/next/dist/server/use-cache/cache-life.d.ts","../../node_modules/next/dist/server/app-render/types.d.ts","../../node_modules/next/dist/client/components/router-reducer/router-reducer-types.d.ts","../../node_modules/next/dist/client/flight-data-helpers.d.ts","../../node_modules/next/dist/client/components/router-reducer/fetch-server-response.d.ts","../../node_modules/next/dist/shared/lib/app-router-context.shared-runtime.d.ts","../../node_modules/next/dist/server/route-modules/pages/vendored/contexts/entrypoints.d.ts","../../node_modules/next/dist/server/route-modules/pages/module.compiled.d.ts","../../node_modules/next/dist/build/templates/pages.d.ts","../../node_modules/next/dist/server/route-modules/pages/module.d.ts","../../node_modules/next/dist/next-devtools/userspace/pages/pages-dev-overlay-setup.d.ts","../../node_modules/next/dist/server/render.d.ts","../../node_modules/next/dist/server/route-definitions/pages-api-route-definition.d.ts","../../node_modules/next/dist/server/route-matches/pages-api-route-match.d.ts","../../node_modules/next/dist/server/route-matchers/route-matcher.d.ts","../../node_modules/next/dist/server/route-matcher-providers/route-matcher-provider.d.ts","../../node_modules/next/dist/server/route-matcher-managers/route-matcher-manager.d.ts","../../node_modules/next/dist/server/normalizers/normalizer.d.ts","../../node_modules/next/dist/server/normalizers/locale-route-normalizer.d.ts","../../node_modules/next/dist/server/normalizers/request/pathname-normalizer.d.ts","../../node_modules/next/dist/server/normalizers/request/suffix.d.ts","../../node_modules/next/dist/server/normalizers/request/rsc.d.ts","../../node_modules/next/dist/server/normalizers/request/prefetch-rsc.d.ts","../../node_modules/next/dist/server/normalizers/request/next-data.d.ts","../../node_modules/next/dist/server/normalizers/request/segment-prefix-rsc.d.ts","../../node_modules/next/dist/server/base-server.d.ts","../../node_modules/next/dist/server/lib/async-callback-set.d.ts","../../node_modules/next/dist/shared/lib/router/utils/route-regex.d.ts","../../node_modules/next/dist/shared/lib/router/utils/route-matcher.d.ts","../../node_modules/sharp/lib/index.d.ts","../../node_modules/next/dist/server/image-optimizer.d.ts","../../node_modules/next/dist/server/next-server.d.ts","../../node_modules/next/dist/server/lib/types.d.ts","../../node_modules/next/dist/server/lib/lru-cache.d.ts","../../node_modules/next/dist/server/lib/dev-bundler-service.d.ts","../../node_modules/next/dist/build/static-paths/types.d.ts","../../node_modules/next/dist/server/dev/static-paths-worker.d.ts","../../node_modules/next/dist/server/dev/next-dev-server.d.ts","../../node_modules/next/dist/server/next.d.ts","../../node_modules/next/dist/server/lib/render-server.d.ts","../../node_modules/next/dist/server/lib/router-server.d.ts","../../node_modules/next/dist/shared/lib/router/utils/path-match.d.ts","../../node_modules/next/dist/server/lib/router-utils/filesystem.d.ts","../../node_modules/next/dist/server/lib/router-utils/setup-dev-bundler.d.ts","../../node_modules/next/dist/server/lib/router-utils/router-server-context.d.ts","../../node_modules/next/dist/server/route-modules/route-module.d.ts","../../node_modules/next/dist/server/load-components.d.ts","../../node_modules/next/dist/server/route-definitions/app-route-route-definition.d.ts","../../node_modules/next/dist/server/async-storage/work-store.d.ts","../../node_modules/next/dist/server/web/http.d.ts","../../node_modules/next/dist/server/route-modules/app-route/shared-modules.d.ts","../../node_modules/next/dist/client/components/redirect-status-code.d.ts","../../node_modules/next/dist/client/components/redirect-error.d.ts","../../node_modules/next/dist/build/templates/app-route.d.ts","../../node_modules/next/dist/server/route-modules/app-route/module.d.ts","../../node_modules/next/dist/server/route-modules/app-route/module.compiled.d.ts","../../node_modules/next/dist/build/segment-config/app/app-segments.d.ts","../../node_modules/next/dist/build/utils.d.ts","../../node_modules/next/dist/build/turborepo-access-trace/types.d.ts","../../node_modules/next/dist/build/turborepo-access-trace/result.d.ts","../../node_modules/next/dist/build/turborepo-access-trace/helpers.d.ts","../../node_modules/next/dist/build/turborepo-access-trace/index.d.ts","../../node_modules/next/dist/export/routes/types.d.ts","../../node_modules/next/dist/export/types.d.ts","../../node_modules/next/dist/export/worker.d.ts","../../node_modules/next/dist/build/worker.d.ts","../../node_modules/next/dist/build/index.d.ts","../../node_modules/next/dist/server/lib/incremental-cache/index.d.ts","../../node_modules/next/dist/server/after/after.d.ts","../../node_modules/next/dist/server/after/after-context.d.ts","../../node_modules/next/dist/server/app-render/work-async-storage-instance.d.ts","../../node_modules/next/dist/server/app-render/work-async-storage.external.d.ts","../../node_modules/next/dist/server/request/params.d.ts","../../node_modules/next/dist/server/route-matches/route-match.d.ts","../../node_modules/next/dist/server/request-meta.d.ts","../../node_modules/next/dist/cli/next-test.d.ts","../../node_modules/next/dist/server/config-shared.d.ts","../../node_modules/next/dist/server/base-http/index.d.ts","../../node_modules/next/dist/server/api-utils/index.d.ts","../../node_modules/next/dist/types.d.ts","../../node_modules/next/dist/shared/lib/html-context.shared-runtime.d.ts","../../node_modules/next/dist/shared/lib/utils.d.ts","../../node_modules/next/dist/pages/_app.d.ts","../../node_modules/next/app.d.ts","../../node_modules/next/dist/server/web/spec-extension/unstable-cache.d.ts","../../node_modules/next/dist/server/web/spec-extension/revalidate.d.ts","../../node_modules/next/dist/server/web/spec-extension/unstable-no-store.d.ts","../../node_modules/next/dist/server/use-cache/cache-tag.d.ts","../../node_modules/next/cache.d.ts","../../node_modules/next/dist/shared/lib/runtime-config.external.d.ts","../../node_modules/next/config.d.ts","../../node_modules/next/dist/pages/_document.d.ts","../../node_modules/next/document.d.ts","../../node_modules/next/dist/shared/lib/dynamic.d.ts","../../node_modules/next/dynamic.d.ts","../../node_modules/next/dist/pages/_error.d.ts","../../node_modules/next/error.d.ts","../../node_modules/next/dist/shared/lib/head.d.ts","../../node_modules/next/head.d.ts","../../node_modules/next/dist/server/request/cookies.d.ts","../../node_modules/next/dist/server/request/headers.d.ts","../../node_modules/next/dist/server/request/draft-mode.d.ts","../../node_modules/next/headers.d.ts","../../node_modules/next/dist/shared/lib/get-img-props.d.ts","../../node_modules/next/dist/client/image-component.d.ts","../../node_modules/next/dist/shared/lib/image-external.d.ts","../../node_modules/next/image.d.ts","../../node_modules/next/dist/client/link.d.ts","../../node_modules/next/link.d.ts","../../node_modules/next/dist/client/components/redirect.d.ts","../../node_modules/next/dist/client/components/not-found.d.ts","../../node_modules/next/dist/client/components/forbidden.d.ts","../../node_modules/next/dist/client/components/unauthorized.d.ts","../../node_modules/next/dist/client/components/unstable-rethrow.server.d.ts","../../node_modules/next/dist/client/components/unstable-rethrow.d.ts","../../node_modules/next/dist/client/components/navigation.react-server.d.ts","../../node_modules/next/dist/client/components/navigation.d.ts","../../node_modules/next/navigation.d.ts","../../node_modules/next/router.d.ts","../../node_modules/next/dist/client/script.d.ts","../../node_modules/next/script.d.ts","../../node_modules/next/dist/server/web/spec-extension/user-agent.d.ts","../../node_modules/next/dist/compiled/@edge-runtime/primitives/url.d.ts","../../node_modules/next/dist/server/web/spec-extension/image-response.d.ts","../../node_modules/next/dist/compiled/@vercel/og/satori/index.d.ts","../../node_modules/next/dist/compiled/@vercel/og/emoji/index.d.ts","../../node_modules/next/dist/compiled/@vercel/og/types.d.ts","../../node_modules/next/dist/server/after/index.d.ts","../../node_modules/next/dist/server/request/root-params.d.ts","../../node_modules/next/dist/server/request/connection.d.ts","../../node_modules/next/server.d.ts","../../node_modules/next/types/global.d.ts","../../node_modules/next/types/compiled.d.ts","../../node_modules/next/types.d.ts","../../node_modules/next/index.d.ts","../../node_modules/next/image-types/global.d.ts","../../next-env.d.ts","../../node_modules/gray-matter/gray-matter.d.ts","../../lib/content.ts","../../pages/api/sitemap/[lang].ts","../../components/about.tsx","../../components/caselist.tsx","../../components/contact.tsx","../../node_modules/lucide-react/dist/lucide-react.d.ts","../../components/coreadvantages.tsx","../../components/cta.tsx","../../components/features.tsx","../../components/footer.tsx","../../components/hero.tsx","../../components/login.tsx","../../components/sidebar.tsx","../../components/navbar.tsx","../../components/newslist.tsx","../../components/pricing.tsx","../../components/process.tsx","../../components/testimonials.tsx","../../pages/_app.tsx","../../pages/about.tsx","../../pages/cases.tsx","../../pages/contact.tsx","../../pages/features.tsx","../../pages/index.tsx","../../pages/login.tsx","../../pages/news.tsx","../../pages/pricing.tsx"],"fileInfos":[{"version":"8730f4bf322026ff5229336391a18bcaa1f94d4f82416c8b2f3954e2ccaae2ba","affectsGlobalScope":true},"dc47c4fa66b9b9890cf076304de2a9c5201e94b740cffdf09f87296d877d71f6","7a387c58583dfca701b6c85e0adaf43fb17d590fb16d5b2dc0a2fbd89f35c467","8a12173c586e95f4433e0c6dc446bc88346be73ffe9ca6eec7aa63c8f3dca7f9","5f4e733ced4e129482ae2186aae29fde948ab7182844c3a5a51dd346182c7b06","4b421cbfb3a38a27c279dec1e9112c3d1da296f77a1a85ddadf7e7a425d45d18","1fc5ab7a764205c68fa10d381b08417795fc73111d6dd16b5b1ed36badb743d9","746d62152361558ea6d6115cf0da4dd10ede041d14882ede3568bce5dc4b4f1f","d11a03592451da2d1065e09e61f4e2a9bf68f780f4f6623c18b57816a9679d17","aea179452def8a6152f98f63b191b84e7cbd69b0e248c91e61fb2e52328abe8c",{"version":"3aafcb693fe5b5c3bd277bd4c3a617b53db474fe498fc5df067c5603b1eebde7","affectsGlobalScope":true},{"version":"f3d4da15233e593eacb3965cde7960f3fddf5878528d882bcedd5cbaba0193c7","affectsGlobalScope":true},{"version":"adb996790133eb33b33aadb9c09f15c2c575e71fb57a62de8bf74dbf59ec7dfb","affectsGlobalScope":true},{"version":"8cc8c5a3bac513368b0157f3d8b31cfdcfe78b56d3724f30f80ed9715e404af8","affectsGlobalScope":true},{"version":"cdccba9a388c2ee3fd6ad4018c640a471a6c060e96f1232062223063b0a5ac6a","affectsGlobalScope":true},{"version":"c5c05907c02476e4bde6b7e76a79ffcd948aedd14b6a8f56e4674221b0417398","affectsGlobalScope":true},{"version":"5f406584aef28a331c36523df688ca3650288d14f39c5d2e555c95f0d2ff8f6f","affectsGlobalScope":true},{"version":"22f230e544b35349cfb3bd9110b6ef37b41c6d6c43c3314a31bd0d9652fcec72","affectsGlobalScope":true},{"version":"7ea0b55f6b315cf9ac2ad622b0a7813315bb6e97bf4bb3fbf8f8affbca7dc695","affectsGlobalScope":true},{"version":"3013574108c36fd3aaca79764002b3717da09725a36a6fc02eac386593110f93","affectsGlobalScope":true},{"version":"eb26de841c52236d8222f87e9e6a235332e0788af8c87a71e9e210314300410a","affectsGlobalScope":true},{"version":"3be5a1453daa63e031d266bf342f3943603873d890ab8b9ada95e22389389006","affectsGlobalScope":true},{"version":"17bb1fc99591b00515502d264fa55dc8370c45c5298f4a5c2083557dccba5a2a","affectsGlobalScope":true},{"version":"7ce9f0bde3307ca1f944119f6365f2d776d281a393b576a18a2f2893a2d75c98","affectsGlobalScope":true},{"version":"6a6b173e739a6a99629a8594bfb294cc7329bfb7b227f12e1f7c11bc163b8577","affectsGlobalScope":true},{"version":"81cac4cbc92c0c839c70f8ffb94eb61e2d32dc1c3cf6d95844ca099463cf37ea","affectsGlobalScope":true},{"version":"b0124885ef82641903d232172577f2ceb5d3e60aed4da1153bab4221e1f6dd4e","affectsGlobalScope":true},{"version":"0eb85d6c590b0d577919a79e0084fa1744c1beba6fd0d4e951432fa1ede5510a","affectsGlobalScope":true},{"version":"da233fc1c8a377ba9e0bed690a73c290d843c2c3d23a7bd7ec5cd3d7d73ba1e0","affectsGlobalScope":true},{"version":"d154ea5bb7f7f9001ed9153e876b2d5b8f5c2bb9ec02b3ae0d239ec769f1f2ae","affectsGlobalScope":true},{"version":"bb2d3fb05a1d2ffbca947cc7cbc95d23e1d053d6595391bd325deb265a18d36c","affectsGlobalScope":true},{"version":"c80df75850fea5caa2afe43b9949338ce4e2de086f91713e9af1a06f973872b8","affectsGlobalScope":true},{"version":"9d57b2b5d15838ed094aa9ff1299eecef40b190722eb619bac4616657a05f951","affectsGlobalScope":true},{"version":"6c51b5dd26a2c31dbf37f00cfc32b2aa6a92e19c995aefb5b97a3a64f1ac99de","affectsGlobalScope":true},{"version":"6e7997ef61de3132e4d4b2250e75343f487903ddf5370e7ce33cf1b9db9a63ed","affectsGlobalScope":true},{"version":"2ad234885a4240522efccd77de6c7d99eecf9b4de0914adb9a35c0c22433f993","affectsGlobalScope":true},{"version":"5e5e095c4470c8bab227dbbc61374878ecead104c74ab9960d3adcccfee23205","affectsGlobalScope":true},{"version":"09aa50414b80c023553090e2f53827f007a301bc34b0495bfb2c3c08ab9ad1eb","affectsGlobalScope":true},{"version":"d7f680a43f8cd12a6b6122c07c54ba40952b0c8aa140dcfcf32eb9e6cb028596","affectsGlobalScope":true},{"version":"3787b83e297de7c315d55d4a7c546ae28e5f6c0a361b7a1dcec1f1f50a54ef11","affectsGlobalScope":true},{"version":"e7e8e1d368290e9295ef18ca23f405cf40d5456fa9f20db6373a61ca45f75f40","affectsGlobalScope":true},{"version":"faf0221ae0465363c842ce6aa8a0cbda5d9296940a8e26c86e04cc4081eea21e","affectsGlobalScope":true},{"version":"06393d13ea207a1bfe08ec8d7be562549c5e2da8983f2ee074e00002629d1871","affectsGlobalScope":true},{"version":"2768ef564cfc0689a1b76106c421a2909bdff0acbe87da010785adab80efdd5c","affectsGlobalScope":true},{"version":"b248e32ca52e8f5571390a4142558ae4f203ae2f94d5bac38a3084d529ef4e58","affectsGlobalScope":true},{"version":"6c55633c733c8378db65ac3da7a767c3cf2cf3057f0565a9124a16a3a2019e87","affectsGlobalScope":true},{"version":"fb4416144c1bf0323ccbc9afb0ab289c07312214e8820ad17d709498c865a3fe","affectsGlobalScope":true},{"version":"5b0ca94ec819d68d33da516306c15297acec88efeb0ae9e2b39f71dbd9685ef7","affectsGlobalScope":true},{"version":"34c839eaaa6d78c8674ae2c37af2236dee6831b13db7b4ef4df3ec889a04d4f2","affectsGlobalScope":true},{"version":"34478567f8a80171f88f2f30808beb7da15eac0538ae91282dd33dce928d98ed","affectsGlobalScope":true},{"version":"ab7d58e6161a550ff92e5aff755dc37fe896245348332cd5f1e1203479fe0ed1","affectsGlobalScope":true},{"version":"6bda95ea27a59a276e46043b7065b55bd4b316c25e70e29b572958fa77565d43","affectsGlobalScope":true},{"version":"aedb8de1abb2ff1095c153854a6df7deae4a5709c37297f9d6e9948b6806fa66","affectsGlobalScope":true},{"version":"a4da0551fd39b90ca7ce5f68fb55d4dc0c1396d589b612e1902f68ee090aaada","affectsGlobalScope":true},{"version":"11ffe3c281f375fff9ffdde8bbec7669b4dd671905509079f866f2354a788064","affectsGlobalScope":true},{"version":"52d1bb7ab7a3306fd0375c8bff560feed26ed676a5b0457fa8027b563aecb9a4","affectsGlobalScope":true},{"version":"170d4db14678c68178ee8a3d5a990d5afb759ecb6ec44dbd885c50f6da6204f6","affectsGlobalScope":true},"8a8eb4ebffd85e589a1cc7c178e291626c359543403d58c9cd22b81fab5b1fb9","2d27d86432b871be0d83c0988a42ae71a70aa516ac3e0944c296708aaaa24c63","acd8fd5090ac73902278889c38336ff3f48af6ba03aa665eb34a75e7ba1dccc4","d6258883868fb2680d2ca96bc8b1352cab69874581493e6d52680c5ffecdb6cc","1b61d259de5350f8b1e5db06290d31eaebebc6baafd5f79d314b5af9256d7153","f258e3960f324a956fc76a3d3d9e964fff2244ff5859dcc6ce5951e5413ca826","643f7232d07bf75e15bd8f658f664d6183a0efaca5eb84b48201c7671a266979","0f6666b58e9276ac3a38fdc80993d19208442d6027ab885580d93aec76b4ef00","05fd364b8ef02fb1e174fbac8b825bdb1e5a36a016997c8e421f5fab0a6da0a0","631eff75b0e35d1b1b31081d55209abc43e16b49426546ab5a9b40bdd40b1f60",{"version":"6876211ece0832abdfe13c43c65a555549bb4ca8c6bb4078d68cf923aeb6009e","affectsGlobalScope":true},{"version":"394fda71d5d6bd00a372437dff510feab37b92f345861e592f956d6995e9c1ce","affectsGlobalScope":true},{"version":"d153a11543fd884b596587ccd97aebbeed950b26933ee000f94009f1ab142848","affectsGlobalScope":true},{"version":"c564fc7c6f57b43ebe0b69bc6719d38ff753f6afe55dadf2dba36fb3558f39b6","affectsGlobalScope":true},{"version":"109b9c280e8848c08bf4a78fff1fed0750a6ca1735671b5cf08b71bae5448c03","affectsGlobalScope":true},"cdcf9ea426ad970f96ac930cd176d5c69c6c24eebd9fc580e1572d6c6a88f62c","23cd712e2ce083d68afe69224587438e5914b457b8acf87073c22494d706a3d0","487b694c3de27ddf4ad107d4007ad304d29effccf9800c8ae23c2093638d906a","e525f9e67f5ddba7b5548430211cae2479070b70ef1fd93550c96c10529457bd","ccf4552357ce3c159ef75f0f0114e80401702228f1898bdc9402214c9499e8c0","c6fd2c5a395f2432786c9cb8deb870b9b0e8ff7e22c029954fabdd692bff6195","17fe9131bec653b07b0a1a8b99a830216e3e43fe0ea2605be318dc31777c8bbf","3c8e93af4d6ce21eb4c8d005ad6dc02e7b5e6781f429d52a35290210f495a674","2c9875466123715464539bfd69bcaccb8ff6f3e217809428e0d7bd6323416d01","ea6bc8de8b59f90a7a3960005fd01988f98fd0784e14bc6922dde2e93305ec7d","36107995674b29284a115e21a0618c4c2751b32a8766dd4cb3ba740308b16d59","914a0ae30d96d71915fc519ccb4efbf2b62c0ddfb3a3fc6129151076bc01dc60","2472ef4c28971272a897fdb85d4155df022e1f5d9a474a526b8fc2ef598af94e","6c8e442ba33b07892169a14f7757321e49ab0f1032d676d321a1fdab8a67d40c","b41767d372275c154c7ea6c9d5449d9a741b8ce080f640155cc88ba1763e35b3","1cd673d367293fc5cb31cd7bf03d598eb368e4f31f39cf2b908abbaf120ab85a","19851a6596401ca52d42117108d35e87230fc21593df5c4d3da7108526b6111c","3825bf209f1662dfd039010a27747b73d0ef379f79970b1d05601ec8e8a4249f","0b6e25234b4eec6ed96ab138d96eb70b135690d7dd01f3dd8a8ab291c35a683a","40bfc70953be2617dc71979c14e9e99c5e65c940a4f1c9759ddb90b0f8ff6b1a","da52342062e70c77213e45107921100ba9f9b3a30dd019444cf349e5fb3470c4","e9ace91946385d29192766bf783b8460c7dbcbfc63284aa3c9cae6de5155c8bc","40b463c6766ca1b689bfcc46d26b5e295954f32ad43e37ee6953c0a677e4ae2b","561c60d8bfe0fec2c08827d09ff039eca0c1f9b50ef231025e5a549655ed0298","1e30c045732e7db8f7a82cf90b516ebe693d2f499ce2250a977ec0d12e44a529","84b736594d8760f43400202859cda55607663090a43445a078963031d47e25e7","499e5b055a5aba1e1998f7311a6c441a369831c70905cc565ceac93c28083d53","54c3e2371e3d016469ad959697fd257e5621e16296fa67082c2575d0bf8eced0","beb8233b2c220cfa0feea31fbe9218d89fa02faa81ef744be8dce5acb89bb1fd","78b29846349d4dfdd88bd6650cc5d2baaa67f2e89dc8a80c8e26ef7995386583","5d0375ca7310efb77e3ef18d068d53784faf62705e0ad04569597ae0e755c401","59af37caec41ecf7b2e76059c9672a49e682c1a2aa6f9d7dc78878f53aa284d6","addf417b9eb3f938fddf8d81e96393a165e4be0d4a8b6402292f9c634b1cb00d","e38d4fdf79e1eadd92ed7844c331dbaa40f29f21541cfee4e1acff4db09cda33","8bd86b8e8f6a6aa6c49b71e14c4ffe1211a0e97c80f08d2c8cc98838006e4b88","7c10a32ae6f3962672e6869ee2c794e8055d8225ef35c91c0228e354b4e5d2d3","2e85db9e6fd73cfa3d7f28e0ab6b55417ea18931423bd47b409a96e4a169e8e6","c46e079fe54c76f95c67fb89081b3e399da2c7d109e7dca8e4b58d83e332e605","99f569b42ea7e7c5fe404b2848c0893f3e1a56e0547c1cd0f74d5dbb9a9de27e",{"version":"f4b4faedc57701ae727d78ba4a83e466a6e3bdcbe40efbf913b17e860642897c","affectsGlobalScope":true},"bbcfd9cd76d92c3ee70475270156755346c9086391e1b9cb643d072e0cf576b8","7394959e5a741b185456e1ef5d64599c36c60a323207450991e7a42e08911419","72c1f5e0a28e473026074817561d1bc9647909cf253c8d56c41d1df8d95b85f7",{"version":"003ec918ec442c3a4db2c36dc0c9c766977ea1c8bcc1ca7c2085868727c3d3f6","affectsGlobalScope":true},"938f94db8400d0b479626b9006245a833d50ce8337f391085fad4af540279567","c4e8e8031808b158cfb5ac5c4b38d4a26659aec4b57b6a7e2ba0a141439c208c",{"version":"2c91d8366ff2506296191c26fd97cc1990bab3ee22576275d28b654a21261a44","affectsGlobalScope":true},"5524481e56c48ff486f42926778c0a3cce1cc85dc46683b92b1271865bcf015a",{"version":"12fb9c13f24845000d7bd9660d11587e27ef967cbd64bd9df19ae3e6aa9b52d4","affectsGlobalScope":true},"289e9894a4668c61b5ffed09e196c1f0c2f87ca81efcaebdf6357cfb198dac14","25a1105595236f09f5bce42398be9f9ededc8d538c258579ab662d509aa3b98e","5078cd62dbdf91ae8b1dc90b1384dec71a9c0932d62bdafb1a811d2a8e26bef2","a2e2bbde231b65c53c764c12313897ffdfb6c49183dd31823ee2405f2f7b5378","ad1cc0ed328f3f708771272021be61ab146b32ecf2b78f3224959ff1e2cd2a5c",{"version":"71450bbc2d82821d24ca05699a533e72758964e9852062c53b30f31c36978ab8","affectsGlobalScope":true},{"version":"62f572306e0b173cc5dfc4c583471151f16ef3779cf27ab96922c92ec82a3bc8","affectsGlobalScope":true},"2f32444438ecb1fa4519f6ec3977d69ce0e3acfa18b803e5cd725c204501f350","0ab3c844f1eb5a1d94c90edc346a25eb9d3943af7a7812f061bf2d627d8afac0","b0a84d9348601dbc217017c0721d6064c3b1af9b392663348ba146fdae0c7afd","161f09445a8b4ba07f62ae54b27054e4234e7957062e34c6362300726dabd315","77fced47f495f4ff29bb49c52c605c5e73cd9b47d50080133783032769a9d8a6","e6057f9e7b0c64d4527afeeada89f313f96a53291705f069a9193c18880578cb",{"version":"34ecb9596317c44dab586118fb62c1565d3dad98d201cd77f3e6b0dde453339c","affectsGlobalScope":true},"0f5cda0282e1d18198e2887387eb2f026372ebc4e11c4e4516fef8a19ee4d514","e99b0e71f07128fc32583e88ccd509a1aaa9524c290efb2f48c22f9bf8ba83b1","76957a6d92b94b9e2852cf527fea32ad2dc0ef50f67fe2b14bd027c9ceef2d86",{"version":"237581f5ec4620a17e791d3bb79bad3af01e27a274dbee875ac9b0721a4fe97d","affectsGlobalScope":true},{"version":"a8a99a5e6ed33c4a951b67cc1fd5b64fd6ad719f5747845c165ca12f6c21ba16","affectsGlobalScope":true},"a58a15da4c5ba3df60c910a043281256fa52d36a0fcdef9b9100c646282e88dd","b36beffbf8acdc3ebc58c8bb4b75574b31a2169869c70fc03f82895b93950a12","de263f0089aefbfd73c89562fb7254a7468b1f33b61839aafc3f035d60766cb4","70b57b5529051497e9f6482b76d91c0dcbb103d9ead8a0549f5bab8f65e5d031","e6d81b1f7ab11dc1b1ad7ad29fcfad6904419b36baf55ed5e80df48d56ac3aff","1013eb2e2547ad8c100aca52ef9df8c3f209edee32bb387121bb3227f7c00088","b6b8e3736383a1d27e2592c484a940eeb37ec4808ba9e74dd57679b2453b5865","d6f36b683c59ac0d68a1d5ee906e578e2f5e9a285bca80ff95ce61cdc9ddcdeb","37ba7b45141a45ce6e80e66f2a96c8a5ab1bcef0fc2d0f56bb58df96ec67e972","125d792ec6c0c0f657d758055c494301cc5fdb327d9d9d5960b3f129aff76093",{"version":"12aad38de6f0594dc21efa78a2c1f67bf6a7ef5a389e05417fe9945284450908","affectsGlobalScope":true},"ea713aa14a670b1ea0fbaaca4fd204e645f71ca7653a834a8ec07ee889c45de6","b338a6e6c1d456e65a6ea78da283e3077fe8edf7202ae10490abbba5b952b05e",{"version":"2918b7c516051c30186a1055ebcdb3580522be7190f8a2fff4100ea714c7c366","affectsGlobalScope":true},"ae86f30d5d10e4f75ce8dcb6e1bd3a12ecec3d071a21e8f462c5c85c678efb41","982efeb2573605d4e6d5df4dc7e40846bda8b9e678e058fc99522ab6165c479e","e03460fe72b259f6d25ad029f085e4bedc3f90477da4401d8fbc1efa9793230e","4286a3a6619514fca656089aee160bb6f2e77f4dd53dc5a96b26a0b4fc778055",{"version":"d67fc92a91171632fc74f413ce42ff1aa7fbcc5a85b127101f7ec446d2039a1f","affectsGlobalScope":true},{"version":"d40e4631100dbc067268bce96b07d7aff7f28a541b1bfb7ef791c64a696b3d33","affectsGlobalScope":true},"784490137935e1e38c49b9289110e74a1622baf8a8907888dcbe9e476d7c5e44","42180b657831d1b8fead051698618b31da623fb71ff37f002cb9d932cfa775f1","4f98d6fb4fe7cbeaa04635c6eaa119d966285d4d39f0eb55b2654187b0b27446",{"version":"e4c653466d0497d87fa9ffd00e59a95f33bc1c1722c3f5c84dab2e950c18da70","affectsGlobalScope":true},"e6dcc3b933e864e91d4bea94274ad69854d5d2a1311a4b0e20408a57af19e95d","2119ab23f794e7b563cc1a005b964e2f59b8ebcb3dfe2ce61d0c782bfd5e02a2","865a2612f5ec073dd48d454307ccabb04c48f8b96fda9940c5ebfe6b4b451f51","de9b09c703c51ac4bf93e37774cfc1c91e4ff17a5a0e9127299be49a90c5dc63","413df52d4ea14472c2fa5bee62f7a40abd1eb49be0b9722ee01ee4e52e63beb2","db6d2d9daad8a6d83f281af12ce4355a20b9a3e71b82b9f57cddcca0a8964a96","77497ec7d02338725444582c8ae7eb2085243a9f8c4113ca40b9b4fd941f2319","24f8562308dd8ba6013120557fa7b44950b619610b2c6cb8784c79f11e3c4f90","ba1ae645ccbff0137326f99084f5cf87c9fa988c59906177d59deabeee9e428d","a86f82d646a739041d6702101afa82dcb935c416dd93cbca7fd754fd0282ce1f","57d6ac03382e30e9213641ff4f18cf9402bb246b77c13c8e848c0b1ca2b7ef92","ce75b1aebb33d510ff28af960a9221410a3eaf7f18fc5f21f9404075fba77256","e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","496bbf339f3838c41f164238543e9fe5f1f10659cb30b68903851618464b98ba","44e0a682d3a20df46bbf8e7e37f2f10b1604d4ab08b3beda1c365e6d9c3ec74d","97395dc4fd32e20b8888849266065caf0b45d12575242c308e8604a4288ec3e5","9e2739b32f741859263fdba0244c194ca8e96da49b430377930b8f721d77c000","fb1d8e814a3eeb5101ca13515e0548e112bd1ff3fb358ece535b93e94adf5a3a","ffa495b17a5ef1d0399586b590bd281056cee6ce3583e34f39926f8dcc6ecdb5","98b18458acb46072947aabeeeab1e410f047e0cacc972943059ca5500b0a5e95","361e2b13c6765d7f85bb7600b48fde782b90c7c41105b7dab1f6e7871071ba20","c86fe861cf1b4c46a0fb7d74dffe596cf679a2e5e8b1456881313170f092e3fa","b6db56e4903e9c32e533b78ac85522de734b3d3a8541bf24d256058d464bf04b","24daa0366f837d22c94a5c0bad5bf1fd0f6b29e1fae92dc47c3072c3fdb2fbd5","570bb5a00836ffad3e4127f6adf581bfc4535737d8ff763a4d6f4cc877e60d98","889c00f3d32091841268f0b994beba4dceaa5df7573be12c2c829d7c5fbc232c","65f43099ded6073336e697512d9b80f2d4fec3182b7b2316abf712e84104db00","e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881","12b8dfed70961bea1861e5d39e433580e71323abb5d33da6605182ec569db584","8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881","7e560f533aaf88cf9d3b427dcf6c112dd3f2ee26d610e2587583b6c354c753db","71e0082342008e4dfb43202df85ea0986ef8e003c921a1e49999d0234a3019da","27ab780875bcbb65e09da7496f2ca36288b0c541abaa75c311450a077d54ec15","b620391fe8060cf9bedc176a4d01366e6574d7a71e0ac0ab344a4e76576fcbb8","380647d8f3b7f852cca6d154a376dbf8ac620a2f12b936594504a8a852e71d2f","208c9af9429dd3c76f5927b971263174aaa4bc7621ddec63f163640cbd3c473c","6459054aabb306821a043e02b89d54da508e3a6966601a41e71c166e4ea1474f","a23185bc5ef590c287c28a91baf280367b50ae4ea40327366ad01f6f4a8edbc5","bb37588926aba35c9283fe8d46ebf4e79ffe976343105f5c6d45f282793352b2","002eae065e6960458bda3cf695e578b0d1e2785523476f8a9170b103c709cd4f","c51641ab4bfa31b7a50a0ca37edff67f56fab3149881024345b13f2b48b7d2de","05c97cddbaf99978f83d96de2d8af86aded9332592f08ce4a284d72d0952c391","72179f9dd22a86deaad4cc3490eb0fe69ee084d503b686985965654013f1391b","2e6114a7dd6feeef85b2c80120fdbfb59a5529c0dcc5bfa8447b6996c97a69f5","7b6ff760c8a240b40dab6e4419b989f06a5b782f4710d2967e67c695ef3e93c4","c8f004e6036aa1c764ad4ec543cf89a5c1893a9535c80ef3f2b653e370de45e6","dd80b1e600d00f5c6a6ba23f455b84a7db121219e68f89f10552c54ba46e4dc9","b064c36f35de7387d71c599bfcf28875849a1dbc733e82bd26cae3d1cd060521","6a148329edecbda07c21098639ef4254ef7869fb25a69f58e5d6a8b7b69d4236","8de9fe97fa9e00ec00666fa77ab6e91b35d25af8ca75dabcb01e14ad3299b150","f63ab283a1c8f5c79fabe7ca4ef85f9633339c4f0e822fce6a767f9d59282af2","dba114fb6a32b355a9cfc26ca2276834d72fe0e94cd2c3494005547025015369","a54c996c8870ef1728a2c1fa9b8eaec0bf4a8001cd2583c02dd5869289465b10","3e7efde639c6a6c3edb9847b3f61e308bf7a69685b92f665048c45132f51c218","df45ca1176e6ac211eae7ddf51336dc075c5314bc5c253651bae639defd5eec5","85e41df4579ceac0616fc81e1aee5c5222941609e6732698e7a551db4c06a78a","fa9e3ec3d9c2072368b2a12686580aff5d7bc41439efa1ee91b378a57f4864c2","f974e4a06953682a2c15d5bd5114c0284d5abf8bc0fe4da25cb9159427b70072","50256e9c31318487f3752b7ac12ff365c8949953e04568009c8705db802776fb","7d73b24e7bf31dfb8a931ca6c4245f6bb0814dfae17e4b60c9e194a631fe5f7b","8d1fd7b451f69cd173e6e20272e0d64ba4a8a1fe0eb3ef5f82134a5b0cb7c9df","d6e73f8010935b7b4c7487b6fb13ea197cc610f0965b759bec03a561ccf8423a","174f3864e398f3f33f9a446a4f403d55a892aa55328cf6686135dfaf9e171657","824c76aec8d8c7e65769688cbee102238c0ef421ed6686f41b2a7d8e7e78a931","75b868be3463d5a8cfc0d9396f0a3d973b8c297401d00bfb008a42ab16643f13","05c8cd040dc6b8aa18f310b12eaf0407dc4d122ec035dc5b0c9b97e795abfeec","d682336018141807fb602709e2d95a192828fcb8d5ba06dda3833a8ea98f69e3","6124e973eab8c52cabf3c07575204efc1784aca6b0a30c79eb85fe240a857efa","0d891735a21edc75df51f3eb995e18149e119d1ce22fd40db2b260c5960b914e","3b414b99a73171e1c4b7b7714e26b87d6c5cb03d200352da5342ab4088a54c85","51b1709e7ad186919a0e30237a8607100143a86d28771b3d3f046359aca1e65c","b01bd582a6e41457bc56e6f0f9de4cb17f33f5f3843a7cf8210ac9c18472fb0f","0a437ae178f999b46b6153d79095b60c42c996bc0458c04955f1c996dc68b971","74b2a5e5197bd0f2e0077a1ea7c07455bbea67b87b0869d9786d55104006784f","4a7baeb6325920044f66c0f8e5e6f1f52e06e6d87588d837bdf44feb6f35c664","6dcf60530c25194a9ee0962230e874ff29d34c59605d8e069a49928759a17e0a","7274fbffbd7c9589d8d0ffba68157237afd5cecff1e99881ea3399127e60572f","1a42d2ec31a1fe62fdc51591768695ed4a2dc64c01be113e7ff22890bebb5e3f","1a82deef4c1d39f6882f28d275cad4c01f907b9b39be9cbc472fcf2cf051e05b","c5426dbfc1cf90532f66965a7aa8c1136a78d4d0f96d8180ecbfc11d7722f1a5","65a15fc47900787c0bd18b603afb98d33ede930bed1798fc984d5ebb78b26cf9","9d202701f6e0744adb6314d03d2eb8fc994798fc83d91b691b75b07626a69801","de9d2df7663e64e3a91bf495f315a7577e23ba088f2949d5ce9ec96f44fba37d","c7af78a2ea7cb1cd009cfb5bdb48cd0b03dad3b54f6da7aab615c2e9e9d570c5","1ee45496b5f8bdee6f7abc233355898e5bf9bd51255db65f5ff7ede617ca0027",{"version":"0c7c947ff881c4274c0800deaa0086971e0bfe51f89a33bd3048eaa3792d4876","affectsGlobalScope":true},{"version":"db01d18853469bcb5601b9fc9826931cc84cc1a1944b33cad76fd6f1e3d8c544","affectsGlobalScope":true},{"version":"a8f8e6ab2fa07b45251f403548b78eaf2022f3c2254df3dc186cb2671fe4996d","affectsGlobalScope":true},"fa6c12a7c0f6b84d512f200690bfc74819e99efae69e4c95c4cd30f6884c526e","f1c32f9ce9c497da4dc215c3bc84b722ea02497d35f9134db3bb40a8d918b92b",{"version":"b73c319af2cc3ef8f6421308a250f328836531ea3761823b4cabbd133047aefa","affectsGlobalScope":true},"e433b0337b8106909e7953015e8fa3f2d30797cea27141d1c5b135365bb975a6","15b36126e0089bfef173ab61329e8286ce74af5e809d8a72edcafd0cc049057f","ddff7fc6edbdc5163a09e22bf8df7bef75f75369ebd7ecea95ba55c4386e2441","106c6025f1d99fd468fd8bf6e5bda724e11e5905a4076c5d29790b6c3745e50c","a57b1802794433adec9ff3fed12aa79d671faed86c49b09e02e1ac41b4f1d33a","ad10d4f0517599cdeca7755b930f148804e3e0e5b5a3847adce0f1f71bbccd74","1042064ece5bb47d6aba91648fbe0635c17c600ebdf567588b4ca715602f0a9d","4360ad4de54de2d5c642c4375d5eab0e7fe94ebe8adca907e6c186bbef75a54d","4a889f2c763edb4d55cb624257272ac10d04a1cad2ed2948b10ed4a7fda2a428","7bb79aa2fead87d9d56294ef71e056487e848d7b550c9a367523ee5416c44cfa","43542b120b07d198a86a21f6df97e6fe4a6327e960342777eefaa407baee2a62","090fa057d7b2c429119fde252e3b7276a7d75a3ec172a9a23aa922dfac5345e8","27ff4196654e6373c9af16b6165120e2dd2169f9ad6abb5c935af5abd8c7938c","24428762d0c97b44c4784d28eee9556547167c4592d20d542a79243f7ca6a73f","d6406c629bb3efc31aedb2de809bef471e475c86c7e67f3ef9b676b5d7e0d6b2","8c030e515014c10a2b98f9f48408e3ba18023dfd3f56e3312c6c2f3ae1f55a16","dafc31e9e8751f437122eb8582b93d477e002839864410ff782504a12f2a550c","4e31a4e6319cee44ce4cec0f8892c60289cfbdbec11dda19c85559bb8ab53bc2","9c82171d836c47486074e4ca8e059735bf97b205e70b196535b5efd40cbe1bc5","f56bdc6884648806d34bc66d31cdb787c4718d04105ce2cd88535db214631f82","20e06cdda4a8fdd7c1b548259f89f01b04e56a513e834463d7bac5632c7cf906","2e4f37ffe8862b14d8e24ae8763daaa8340c0df0b859d9a9733def0eee7562d9","13283350547389802aa35d9f2188effaeac805499169a06ef5cd77ce2a0bd63f","ce791f6ea807560f08065d1af6014581eeb54a05abd73294777a281b6dfd73c2","6ac6715916fa75a1f7ebdfeacac09513b4d904b667d827b7535e84ff59679aff","49f95e989b4632c6c2a578cc0078ee19a5831832d79cc59abecf5160ea71abad","21b4672313ae95583ade84f97ae6bbeaf242ecae783f5653e2e99ac4e21cbbe1","ce0df82a9ae6f914ba08409d4d883983cc08e6d59eb2df02d8e4d68309e7848b","796273b2edc72e78a04e86d7c58ae94d370ab93a0ddf40b1aa85a37a1c29ecd7","5df15a69187d737d6d8d066e189ae4f97e41f4d53712a46b2710ff9f8563ec9f","016fe1e807dfdb88e8773616dde55bd04c087675662a393f20b1ec213b4a2b74","e17cd049a1448de4944800399daa4a64c5db8657cc9be7ef46be66e2a2cd0e7c","d05fb434f4ba073aed74b6c62eff1723c835de2a963dbb091e000a2decb5a691","bff8c8bffbf5f302a30ccb1c0557dae477892d50a80eecfe393bd89bac7fb41d","43ba4f2fa8c698f5c304d21a3ef596741e8e85a810b7c1f9b692653791d8d97a","4d4927cbee21750904af7acf940c5e3c491b4d5ebc676530211e389dd375607a","72105519d0390262cf0abe84cf41c926ade0ff475d35eb21307b2f94de985778","8a97e578a9bc40eb4f1b0ca78f476f2e9154ecbbfd5567ee72943bab37fc156a","a58abf1f5c8feb335475097abeddd32fd71c4dc2065a3d28cf15cacabad9654a","ccf6dd45b708fb74ba9ed0f2478d4eb9195c9dfef0ff83a6092fa3cf2ff53b4f","2d7db1d73456e8c5075387d4240c29a2a900847f9c1bff106a2e490da8fbd457","2b15c805f48e4e970f8ec0b1915f22d13ca6212375e8987663e2ef5f0205e832","f22d05663d873ee7a600faf78abb67f3f719d32266803440cf11d5db7ac0cab2","d93c544ad20197b3976b0716c6d5cd5994e71165985d31dcab6e1f77feb4b8f2","35069c2c417bd7443ae7c7cafd1de02f665bf015479fec998985ffbbf500628c","a8b1c79a833ee148251e88a2553d02ce1641d71d2921cce28e79678f3d8b96aa","126d4f950d2bba0bd45b3a86c76554d4126c16339e257e6d2fabf8b6bf1ce00c","9e21f8e2c0cfea713a4a372f284b60089c0841eb90bf3610539d89dbcd12d65a","045b752f44bf9bbdcaffd882424ab0e15cb8d11fa94e1448942e338c8ef19fba","2894c56cad581928bb37607810af011764a2f511f575d28c9f4af0f2ef02d1ab","0a72186f94215d020cb386f7dca81d7495ab6c17066eb07d0f44a5bf33c1b21a","7fa117f0f4f132ba132794982a35c840287997ee186753f78abe48508812c238","6ce54b2cfe4cf91138e2f5f114fe222a8819968336385cbcafd26ca89ebd4f50","b612fc66f534bd447bb1d5d52a29217a80780e1d57633875c9d8a333503f378a","0e8aef93d79b000deb6ec336b5645c87de167168e184e84521886f9ecc69a4b5","512a95a23e912bd68cdd9c4189962ab1b9b4dd6ea2f410e3fb1bf6e3e1e051bf","d90b9f1520366d713a73bd30c5a9eb0040d0fb6076aff370796bc776fd705943","bef86adb77316505c6b471da1d9b8c9e428867c2566270e8894d4d773a1c4dc2","a7d72cf676f5117df919b8a73da2cfa20cf9939fdb263fd496fb77f95c35335d","a3e7d932dc9c09daa99141a8e4800fc6c58c625af0d4bbb017773dc36da75426","43e96a3d5d1411ab40ba2f61d6a3192e58177bcf3b133a80ad2a16591611726d","219e5e67ea4630410167444a715ecc172d9462b7910cd066eca18f6ed27d907b","ca921bf56756cb6fe957f6af693a35251b134fb932dc13f3dfff0bb7106f80b4","fee92c97f1aa59eb7098a0cc34ff4df7e6b11bae71526aca84359a2575f313d8","acfbb7b38e876b43cb07d0c8bd1a2e84dd641d9d2b67d772e8977337398bfff5","2ab6d334bcbf2aff3acfc4fd8c73ecd82b981d3c3aa47b3f3b89281772286904","d07cbc787a997d83f7bde3877fec5fb5b12ce8c1b7047eb792996ed9726b4dde","6ac6715916fa75a1f7ebdfeacac09513b4d904b667d827b7535e84ff59679aff","268c6788d4791a66cc5c153c41d2313d6f3c0d3e35edce3ce05e21c31f972ae0","b83cb14474fa60c5f3ec660146b97d122f0735627f80d82dd03e8caa39b4388c","f374cb24e93e7798c4d9e83ff872fa52d2cdb36306392b840a6ddf46cb925cb6","6ad71551fba5dbf440780090c82f5e0a7b64f602e0f0f678317659f12131f253","b73cbf0a72c8800cf8f96a9acfe94f3ad32ca71342a8908b8ae484d61113f647","bae6dd176832f6423966647382c0d7ba9e63f8c167522f09a982f086cd4e8b23","20865ac316b8893c1a0cc383ccfc1801443fbcc2a7255be166cf90d03fac88c9","c9958eb32126a3843deedda8c22fb97024aa5d6dd588b90af2d7f2bfac540f23","461d0ad8ae5f2ff981778af912ba71b37a8426a33301daa00f21c6ccb27f8156","e927c2c13c4eaf0a7f17e6022eee8519eb29ef42c4c13a31e81a611ab8c95577","fcafff163ca5e66d3b87126e756e1b6dfa8c526aa9cd2a2b0a9da837d81bbd72","70246ad95ad8a22bdfe806cb5d383a26c0c6e58e7207ab9c431f1cb175aca657","f00f3aa5d64ff46e600648b55a79dcd1333458f7a10da2ed594d9f0a44b76d0b","772d8d5eb158b6c92412c03228bd9902ccb1457d7a705b8129814a5d1a6308fc","45490817629431853543adcb91c0673c25af52a456479588b6486daba34f68bb","802e797bcab5663b2c9f63f51bdf67eff7c41bc64c0fd65e6da3e7941359e2f7","8b4327413e5af38cd8cb97c59f48c3c866015d5d642f28518e3a891c469f240e","cd767eea328a0ed87d2e028147a022f209fadf420199254253a6cffe8e234df8","4b20fcf10a5413680e39f5666464859fc56b1003e7dfe2405ced82371ebd49b6","f0f3f57e29b40e9cb0c4b155a96de2f61e51700d2c335dd547ef3c85e668c6a8","f7d628893c9fa52ba3ab01bcb5e79191636c4331ee5667ecc6373cbccff8ae12","a169ba2d40cc94a500759aa86eded1f63395252bb7508a8b67dc681ff413ac8d","6a76daf108400ca1333e325772f24f40ebdde2120ef68f8c87d7a1adf0257541","7fa321c806b965bac02883573db0b1466e5edd14c479d156079eb08f1086f1d1","d663134457d8d669ae0df34eabd57028bddc04fc444c4bc04bc5215afc91e1f4","a52674bc98da7979607e0f44d4c015c59c1b1d264c83fc50ec79ff2cfea06723","89b3d1b267c4380fbb8e5cadccbb284843b90066f16a2f6e8a5b3a030bb7dcfb","8514c62ce38e58457d967e9e73f128eedc1378115f712b9eef7127f7c88f82ae","01698747a0d3c3ebf261865f9f912658aff9b726f7ebda11e19222725cfb0965","9b06ce81ad598c9c6b011cb66182fa66575ad6bd1f8f655830a6a0223a197ab7","d9d32f94056181c31f553b32ce41d0ef75004912e27450738d57efcd2409c324","752513f35f6cff294ffe02d6027c41373adf7bfa35e593dbfd53d95c203635ee","6c800b281b9e89e69165fd11536195488de3ff53004e55905e6c0059a2d8591e","7d4254b4c6c67a29d5e7f65e67d72540480ac2cfb041ca484847f5ae70480b62","1ee834bfd4a06aafdc46f5542d089565a26e031ebf854ef5b08cb75ec42d68fb","8c901126d73f09ecdea4785e9a187d1ac4e793e07da308009db04a7283ec2f37","db97922b767bd2675fdfa71e08b49c38b7d2c847a1cc4a7274cb77be23b026f1","e2f64b40fe8d3a77d5462dc4a75ead61c76bf464208b506c1465dac4e195f710","94fe3281392e1015b22f39535878610b4fa6f1388dc8d78746be3bc4e4bb8950","2652448ac55a2010a1f71dd141f828b682298d39728f9871e1cdf8696ef443fd","e3a9871a4a736910b0b77bc063d5f9c272578b3743269ebe93b275b0c52a9815","120599fd965257b1f4d0ff794bc696162832d9d8467224f4665f713a3119078b","5433f33b0a20300cca35d2f229a7fc20b0e8477c44be2affeb21cb464af60c76","db036c56f79186da50af66511d37d9fe77fa6793381927292d17f81f787bb195","bd4131091b773973ca5d2326c60b789ab1f5e02d8843b3587effe6e1ea7c9d86","c7f6485931085bf010fbaf46880a9b9ec1a285ad9dc8c695a9e936f5a48f34b4","73a39452c4b498728757c4a7f756a3b9bed1f8a02c278cb803665cc7897e6930","6ac6715916fa75a1f7ebdfeacac09513b4d904b667d827b7535e84ff59679aff","0427df5c06fafc5fe126d14b9becd24160a288deff40e838bfbd92a35f8d0d00","191a32cecf67da01119a7bce3132228fa9388e2bbfc5c1662542e71f9f20134a","49c346823ba6d4b12278c12c977fb3a31c06b9ca719015978cb145eb86da1c61","bfac6e50eaa7e73bb66b7e052c38fdc8ccfc8dbde2777648642af33cf349f7f1","92f7c1a4da7fbfd67a2228d1687d5c2e1faa0ba865a94d3550a3941d7527a45d","f53b120213a9289d9a26f5af90c4c686dd71d91487a0aa5451a38366c70dc64b","83fe880c090afe485a5c02262c0b7cdd76a299a50c48d9bde02be8e908fb4ae6","0a372c2d12a259da78e21b25974d2878502f14d89c6d16b97bd9c5017ab1bc12","57d67b72e06059adc5e9454de26bbfe567d412b962a501d263c75c2db430f40e","6511e4503cf74c469c60aafd6589e4d14d5eb0a25f9bf043dcbecdf65f261972","885e0c913a60577fa4827e5412055011a7532124fd9e054febb6808b0d7fec3d","6e2261cd9836b2c25eecb13940d92c024ebed7f8efe23c4b084145cd3a13b8a6","a67b87d0281c97dfc1197ef28dfe397fc2c865ccd41f7e32b53f647184cc7307","771ffb773f1ddd562492a6b9aaca648192ac3f056f0e1d997678ff97dbb6bf9b","232f70c0cf2b432f3a6e56a8dc3417103eb162292a9fd376d51a3a9ea5fbbf6f","d7ed1f4bd5589cb08f3af26839a0dc2472e4d1a3c380e167f0186b1f5e7c27d3","cfb5f0ab72180f4e0b9ed1534847a63d5394b9a8ee685ae149d25fd53f1aec66","8a0e762ceb20c7e72504feef83d709468a70af4abccb304f32d6b9bac1129b2c","26f83053ec70baea288b5281deb2cf11f6f9ea79bc654db1a6602b0b7ec085ff","9252d498a77517aab5d8d4b5eb9d71e4b225bbc7123df9713e08181de63180f6","3cdf332b0b14704549666762fd8fda31eb994376f305eaffe427cf076b95656d","35e6379c3f7cb27b111ad4c1aa69538fd8e788ab737b8ff7596a1b40e96f4f90","1fffe726740f9787f15b532e1dc870af3cd964dbe29e191e76121aa3dd8693f2",{"version":"a3128a84a9568762a2996df79717d92154d18dd894681fc0ab3a098fa7f8ee3b","affectsGlobalScope":true},"4c12b845a35c0f753c1cf29d7d042d4da0206b1ba040a9bfff193a086bcdc248","2896c2e673a5d3bd9b4246811f79486a073cbb03950c3d252fba10003c57411a","616775f16134fa9d01fc677ad3f76e68c051a056c22ab552c64cc281a9686790","65c24a8baa2cca1de069a0ba9fba82a173690f52d7e2d0f1f7542d59d5eb4db0","f9fe6af238339a0e5f7563acee3178f51db37f32a2e7c09f85273098cee7ec49","51bf55bb6eb80f11b3aa59fb0a9571565a7ea304a19381f6da5630f4b2e206c4","77e71242e71ebf8528c5802993697878f0533db8f2299b4d36aa015bae08a79c","98a787be42bd92f8c2a37d7df5f13e5992da0d967fab794adbb7ee18370f9849","5c96bad5f78466785cdad664c056e9e2802d5482ca5f862ed19ba34ffbb7b3a4","b7fff2d004c5879cae335db8f954eb1d61242d9f2d28515e67902032723caeab","5f3dc10ae646f375776b4e028d2bed039a93eebbba105694d8b910feebbe8b9c","bb0cd7862b72f5eba39909c9889d566e198fcaddf7207c16737d0c2246112678","4545c1a1ceca170d5d83452dd7c4994644c35cf676a671412601689d9a62da35","320f4091e33548b554d2214ce5fc31c96631b513dffa806e2e3a60766c8c49d9","a2d648d333cf67b9aeac5d81a1a379d563a8ffa91ddd61c6179f68de724260ff","d90d5f524de38889d1e1dbc2aeef00060d779f8688c02766ddb9ca195e4a713d","a3f41ed1b4f2fc3049394b945a68ae4fdefd49fa1739c32f149d32c0545d67f5","bad68fd0401eb90fe7da408565c8aee9c7a7021c2577aec92fa1382e8876071a","47699512e6d8bebf7be488182427189f999affe3addc1c87c882d36b7f2d0b0e","fec01479923e169fb52bd4f668dbeef1d7a7ea6e6d491e15617b46f2cacfa37d","8a8fb3097ba52f0ae6530ec6ab34e43e316506eb1d9aa29420a4b1e92a81442d","44e09c831fefb6fe59b8e65ad8f68a7ecc0e708d152cfcbe7ba6d6080c31c61e","1c0a98de1323051010ce5b958ad47bc1c007f7921973123c999300e2b7b0ecc0","4655709c9cb3fd6db2b866cab7c418c40ed9533ce8ea4b66b5f17ec2feea46a9","87affad8e2243635d3a191fa72ef896842748d812e973b7510a55c6200b3c2a4","ad036a85efcd9e5b4f7dd5c1a7362c8478f9a3b6c3554654ca24a29aa850a9c5","fedebeae32c5cdd1a85b4e0504a01996e4a8adf3dfa72876920d3dd6e42978e7","2c3a42dbc1d6ef817733691513b6421c8d1aa607afe3601904e3d31f1f72324a","cdf21eee8007e339b1b9945abf4a7b44930b1d695cc528459e68a3adc39a622e","330896c1a2b9693edd617be24fbf9e5895d6e18c7955d6c08f028f272b37314d","1d9c0a9a6df4e8f29dc84c25c5aa0bb1da5456ebede7a03e03df08bb8b27bae6","84380af21da938a567c65ef95aefb5354f676368ee1a1cbb4cae81604a4c7d17","1af3e1f2a5d1332e136f8b0b95c0e6c0a02aaabd5092b36b64f3042a03debf28","30d8da250766efa99490fc02801047c2c6d72dd0da1bba6581c7e80d1d8842a4","03566202f5553bd2d9de22dfab0c61aa163cabb64f0223c08431fb3fc8f70280","9a01f12466488eccd8d9eafc8fecb9926c175a4bf4a8f73a07c3bcf8b3363282","b80f624162276f24a4ec78b8e86fbee80ca255938e12f8b58e7a8f1a6937120b","1de80059b8078ea5749941c9f863aa970b4735bdbb003be4925c853a8b6b4450","1d079c37fa53e3c21ed3fa214a27507bda9991f2a41458705b19ed8c2b61173d","5bf5c7a44e779790d1eb54c234b668b15e34affa95e78eada73e5757f61ed76a","5835a6e0d7cd2738e56b671af0e561e7c1b4fb77751383672f4b009f4e161d70","5c634644d45a1b6bc7b05e71e05e52ec04f3d73d9ac85d5927f647a5f965181a","4b7f74b772140395e7af67c4841be1ab867c11b3b82a51b1aeb692822b76c872","27be6622e2922a1b412eb057faa854831b95db9db5035c3f6d4b677b902ab3b7","a68d4b3182e8d776cdede7ac9630c209a7bfbb59191f99a52479151816ef9f9e","39644b343e4e3d748344af8182111e3bbc594930fff0170256567e13bbdbebb0","ed7fd5160b47b0de3b1571c5c5578e8e7e3314e33ae0b8ea85a895774ee64749","63a7595a5015e65262557f883463f934904959da563b4f788306f699411e9bac","9e40365afca304124bc53eb03412643abf074a1580e4dc279a7a16000d11f985","4ba137d6553965703b6b55fd2000b4e07ba365f8caeb0359162ad7247f9707a6",{"version":"ceec3c81b2d81f5e3b855d9367c1d4c664ab5046dff8fd56552df015b7ccbe8f","affectsGlobalScope":true},{"version":"8fac4a15690b27612d8474fb2fc7cc00388df52d169791b78d1a3645d60b4c8b","affectsGlobalScope":true},"064ac1c2ac4b2867c2ceaa74bbdce0cb6a4c16e7c31a6497097159c18f74aa7c","3dc14e1ab45e497e5d5e4295271d54ff689aeae00b4277979fdd10fa563540ae","1d63055b690a582006435ddd3aa9c03aac16a696fac77ce2ed808f3e5a06efab","b789bf89eb19c777ed1e956dbad0925ca795701552d22e68fd130a032008b9f9","436f05ed55f050e50115198def9cdf1026dc4990c5fcb522622f947172bd455a","a52c5f687d788d283ea1fa38bdc2fabe0eac863135a7dfe175ec52b309f61892","641b543e7870eefdf45d2a540ee955a0a2a4984b74ee9c0ac8f89e336001d6d9",{"version":"9145198e7706bb76a0a05c0e6faf3eb7d5462ae8ad497de27ad70c68183f17fd","signature":"a7f1bb2481c5f8270a6dddd65fb7700d630a4bf7aceb012e0a56246721d3b6dd"},"4185ff2473c3c6fe17e60fb0db80848a42f5f41e39ce8af5e613b5d0e5fb38c5","d2e2dfdd3e834f7f355bb83e391d30bc9969335fe43b09af46eaf4ea1bfd2a71",{"version":"939ed4102f7f3a6184fc8e090f7b6d7676ba0ccaba43d661ea32ddc84bc7aed8","signature":"10917cac6f395e31b41652771a4371d2d91ebc5fa1080cf0559f612b29ee2d30"},"427b51589d90e5449d9bb4870b40d7bffef8321e23ebddc32a9ca9245030a1e4","d4b2c0b3fa0175af630c8c59326bc757b3efddc376b9e331bcce22f93825bf68","166096a4d5d50ac2a109ce25c54608a6648f8ccb5d1bb8344b31d91a0c028d51","bfb425c9997af5a1688e0a986d7099224d80cec959a03dfd555650cd799e1a37","b95dc8c310b6a26b85d8a97962968a8bf43d7891b1f48d7f3dd5086345ba94e0","3db9c412e500c7a0335340cc09a1ff981260b784e5d1e4f90fc81335cd1a22dc",{"version":"1624accbe7a7e5ce0e9aecf84158ebe115312675f6c9ce5f60dac2a3689a5bb3","signature":"3311d11de3086d30de05fc2be112cb41688938a7ab4868649f6446d9a19a4d1c"},"61ab87dc5d82fa251f64aa0e3f4ea18b0372fb7db28bca92482ae129554fcf1a","0e11a7cfa8ca488a5a758001152e66be604943ef54ebd4820f1ab4b45338b357","1c1ab8ae66d0e39e3567d662548fcede778e0fa8ead17d149e485ac90be54c28","507fcb9967332e66c2e9220743a4e247d75cea187db2fd941b968c039738544e","dbf1d481dbd0b78c19809252c31968611129ae400c76cfc4c5f020146577080a","cc72369762a41925df6c464631f452a440024a819c74fd9b01c6bfc7316bf777","58fe55d5ca8efc6cc0a290273414614fd188051f9c94dd0ecc7efce6b43006a1","92c57b7b433864548afb3cca7d40dac5e70aa21368f8bd81a0a5914e5d6a978a","a05ef38c3ea43c3e4d505c1abe9ee8b0ff954ba9fc035084ec10054d9321f594","a3fbc99c4dfc1331038f836e47c4641c697df0ebf13de57a95768a256e25f6bf","b76dc60fa8882f1457caa87f0b0c21194b6a499c6ef7b14060868205461f846e","88ef56a041a2eeeb78e94178f7ac3aa00d6308e1557da9a0313b046204828677",{"version":"beb64be50e0b7bae2ee778ca5fdd99917bb1ef497638e1cf7946a9ff96842f77","signature":"5e034c08d0c7973f76ca376818d5e380ccc022fdb601fa5955c6a92c2c9ad1af"},"c1916610082cee6cb6dc9b3c91091bbc747f1cebc88a05681195f7c6da9b638c","57591dbf145f6da3f7ee60debe3dfc72b5c916ad3d71dc3a4189503f03452555"],"options":{"composite":false,"declarationMap":false,"emitDeclarationOnly":false,"esModuleInterop":true,"jsx":1,"module":99,"skipLibCheck":true,"strict":true,"target":1,"tsBuildInfoFile":"./.tsbuildinfo"},"fileIdsList":[[72,116],[59,72,116],[72,116,461],[72,116,426],[59,72,116,435],[59,72,116,426,461,468],[72,116,129,138,455],[72,116,452,453],[72,113,116],[72,115,116],[72,116,121,151],[72,116,117,122,128,129,136,148,159],[72,116,117,118,128,136],[72,116,119,160],[72,116,120,121,129,137],[72,116,121,148,156],[72,116,122,124,128,136],[72,115,116,123],[72,116,124,125],[72,116,126,128],[72,115,116,128],[72,116,128,129,130,148,159],[72,116,128,129,130,143,148,151],[72,111,116],[72,111,116,124,128,131,136,148,159],[72,116,128,129,131,132,136,148,156,159],[72,116,131,133,148,156,159],[72,116,128,134],[72,116,135,159],[72,116,124,128,136,148],[72,116,137],[72,116,138],[72,115,116,139],[72,113,114,115,116,117,118,119,120,121,122,123,124,125,126,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165],[72,116,141],[72,116,142],[72,116,128,143,144],[72,116,143,145,160,162],[72,116,128,148,149,151],[72,116,150,151],[72,116,148,149],[72,116,151],[72,116,152],[72,113,116,148,153],[72,116,128,154,155],[72,116,154,155],[72,116,121,136,148,156],[72,116,157],[68,69,70,71,72,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165],[116],[72,116,136,158],[72,116,131,142,159],[72,116,121,160],[72,116,148,161],[72,116,135,162],[72,116,163],[72,116,128,130,139,148,151,159,161,162,164],[72,116,148,165],[59,63,72,116,168,397,444],[59,63,72,116,167,397,444],[57,58,72,116],[65,72,116],[72,116,400],[72,116,402,403,404,405],[72,116,407],[72,116,172,186,187,188,190,394],[72,116,172,211,213,215,216,219,394,396],[72,116,172,176,178,179,180,181,182,383,394,396],[72,116,394],[72,116,187,282,364,373,390],[72,116,172],[72,116,169,390],[72,116,223],[72,116,222,394,396],[72,116,131,264,282,311,450],[72,116,131,275,292,373,389],[72,116,131,325],[72,116,377],[72,116,376,377,378],[72,116,376],[67,72,116,131,169,172,176,179,183,184,185,187,191,199,200,318,353,374,394,397],[72,116,172,189,207,211,212,217,218,394,450],[72,116,189,450],[72,116,200,207,262,394,450],[72,116,450],[72,116,172,189,190,450],[72,116,214,450],[72,116,183,375,382],[72,116,142,288,390],[72,116,288,390],[59,72,116,288],[59,72,116,283],[72,116,279,323,390,433],[72,116,370,427,428,429,430,432],[72,116,369],[72,116,369,370],[72,116,180,319,320,321],[72,116,319,322,323],[72,116,431],[72,116,319,323],[59,72,116,173,421],[59,72,116,159],[59,72,116,189,252],[59,72,116,189],[72,116,250,254],[59,72,116,251,399],[59,63,72,116,131,166,167,168,397,442,443],[72,116,131],[72,116,131,176,231,319,329,343,364,379,380,394,395,450],[72,116,199,381],[72,116,397],[72,116,171],[59,72,116,264,278,291,301,303,389],[72,116,142,264,278,300,301,302,389,449],[72,116,294,295,296,297,298,299],[72,116,296],[72,116,300],[59,72,116,251,288,399],[59,72,116,288,398,399],[59,72,116,288,399],[72,116,343,386],[72,116,386],[72,116,131,395,399],[72,116,287],[72,115,116,286],[72,116,201,232,271,272,274,275,276,277,316,319,389,392,395],[72,116,201,272,319,323],[72,116,275,389],[59,72,116,275,284,285,287,289,290,291,292,293,304,305,306,307,308,309,310,389,390,450],[72,116,269],[72,116,131,142,201,202,231,246,276,316,317,318,323,343,364,385,394,395,396,397,450],[72,116,389],[72,115,116,187,272,273,276,318,385,387,388,395],[72,116,275],[72,115,116,231,236,265,266,267,268,269,270,271,274,389,390],[72,116,131,236,237,265,395,396],[72,116,187,272,318,319,343,385,389,395],[72,116,131,394,396],[72,116,131,148,392,395,396],[72,116,131,142,159,169,176,189,201,202,204,232,233,238,243,246,271,276,319,329,331,334,336,339,340,341,342,364,384,385,390,392,394,395,396],[72,116,131,148],[72,116,172,173,174,184,384,392,393,397,399,450],[72,116,131,148,159,219,221,223,224,225,226,450],[72,116,142,159,169,211,221,242,243,244,245,271,319,334,343,349,352,354,364,385,390,392],[72,116,183,184,199,318,353,385,394],[72,116,131,159,173,176,271,347,392,394],[72,116,263],[72,116,131,350,351,361],[72,116,392,394],[72,116,272,273],[72,116,271,276,384,399],[72,116,131,142,205,211,245,334,343,349,352,356,392],[72,116,131,183,199,211,357],[72,116,172,204,359,384,394],[72,116,131,159,394],[72,116,131,189,203,204,205,216,227,358,360,384,394],[67,72,116,201,276,363,397,399],[72,116,131,142,159,176,183,191,199,202,232,238,242,243,244,245,246,271,319,331,343,344,346,348,364,384,385,390,391,392,399],[72,116,131,148,183,349,355,361,392],[72,116,194,195,196,197,198],[72,116,233,335],[72,116,337],[72,116,335],[72,116,337,338],[72,116,131,176,231,395],[72,116,131,142,171,173,201,232,246,276,327,328,364,392,396,397,399],[72,116,131,142,159,175,180,271,328,391,395],[72,116,265],[72,116,266],[72,116,267],[72,116,390],[72,116,220,229],[72,116,131,176,220,232],[72,116,228,229],[72,116,230],[72,116,220,221],[72,116,220,247],[72,116,220],[72,116,233,333,391],[72,116,332],[72,116,221,390,391],[72,116,330,391],[72,116,221,390],[72,116,316],[72,116,232,261,264,271,272,278,281,312,314,315,319,363,392,395],[72,116,255,258,259,260,279,280,323],[59,72,116,288,313],[72,116,372],[72,116,187,237,275,276,287,292,319,363,365,366,367,368,370,371,374,384,389,394],[72,116,323],[72,116,327],[72,116,131,232,248,324,326,329,363,392,397,399],[72,116,255,256,257,258,259,260,279,280,323,398],[67,72,116,131,142,159,202,220,221,246,271,276,361,362,364,384,385,394,395,397],[72,116,237,239,242,385],[72,116,131,233,394],[72,116,236,275],[72,116,235],[72,116,237,238],[72,116,234,236,394],[72,116,131,175,237,239,240,241,394,395],[59,72,116,319,320,322],[72,116,206],[59,72,116,173],[59,72,116,390],[59,67,72,116,246,276,397,399],[72,116,173,421,422],[59,72,116,254],[59,72,116,142,159,171,218,249,251,253,399],[72,116,189,390,395],[72,116,345,390],[59,72,116,129,131,142,171,207,213,254,397,398],[59,72,116,167,168,397,444],[59,60,61,62,63,72,116],[72,116,121],[72,116,208,209,210],[72,116,208],[59,63,72,116,131,133,142,166,167,168,169,171,202,300,356,396,399,444],[72,116,409],[72,116,411],[72,116,413],[72,116,415],[72,116,417,418,419],[72,116,423],[64,66,72,116,401,406,408,410,412,414,416,420,424,426,435,436,438,448,449,450,451],[72,116,425],[72,116,434],[72,116,251],[72,116,437],[72,115,116,237,239,240,242,291,390,439,440,441,444,445,446,447],[72,116,166],[72,116,148,166],[72,81,85,116,159],[72,81,116,148,159],[72,116,148],[72,76,116],[72,78,81,116,159],[72,116,136,156],[72,76,116,166],[72,78,81,116,136,159],[72,73,74,75,77,80,116,128,148,159],[72,81,89,116],[72,74,79,116],[72,81,105,106,116],[72,74,77,81,116,151,159,166],[72,81,116],[72,73,116],[72,76,77,78,79,80,81,82,83,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,106,107,108,109,110,116],[72,81,98,101,116,124],[72,81,89,90,91,116],[72,79,81,90,92,116],[72,80,116],[72,74,76,81,116],[72,81,85,90,92,116],[72,85,116],[72,79,81,84,116,159],[72,74,78,81,89,116],[72,81,98,116],[72,76,81,105,116,151,164,166],[72,116,401],[72,116,458,465,469],[72,116,452,456],[72,116,459,465,469],[72,116,460,465,469],[72,116,464,465,469],[72,116,462,463,464,465,466,469,472,473],[72,116,465,467,469],[72,116,465,469,470],[72,116,465,469,471],[59],[452]],"referencedMap":[[458,1],[459,2],[460,2],[462,3],[463,4],[464,3],[465,1],[466,1],[467,5],[469,6],[470,2],[471,1],[472,3],[468,4],[473,1],[456,7],[454,8],[213,1],[113,9],[114,9],[115,10],[116,11],[117,12],[118,13],[70,1],[119,14],[120,15],[121,16],[122,17],[123,18],[124,19],[125,19],[127,1],[126,20],[128,21],[129,22],[130,23],[112,24],[131,25],[132,26],[133,27],[134,28],[135,29],[136,30],[137,31],[138,32],[139,33],[140,34],[141,35],[142,36],[143,37],[144,37],[145,38],[146,1],[147,1],[148,39],[150,40],[149,41],[151,42],[152,43],[153,44],[154,45],[155,46],[156,47],[157,48],[68,1],[166,49],[72,50],[69,1],[71,1],[158,51],[159,52],[160,53],[161,54],[162,55],[163,56],[164,57],[165,58],[167,59],[168,60],[57,1],[59,61],[313,2],[288,2],[58,1],[455,1],[461,2],[66,62],[401,63],[406,64],[408,65],[189,66],[217,67],[384,68],[212,69],[200,1],[181,1],[187,1],[374,70],[241,71],[188,1],[353,72],[222,73],[223,74],[312,75],[371,76],[326,77],[378,78],[379,79],[377,80],[376,1],[375,81],[219,82],[190,83],[262,1],[263,84],[185,1],[201,85],[191,86],[246,85],[243,85],[174,85],[215,87],[214,1],[383,88],[393,1],[180,1],[289,89],[290,90],[283,2],[429,1],[292,1],[293,91],[284,92],[305,2],[434,93],[433,94],[428,1],[370,95],[369,1],[427,96],[285,2],[322,97],[320,98],[430,1],[432,99],[431,1],[321,100],[422,101],[425,102],[253,103],[252,104],[251,105],[437,2],[250,106],[235,1],[440,1],[443,1],[442,2],[444,107],[170,1],[380,108],[381,109],[382,110],[203,1],[179,111],[169,1],[172,112],[304,113],[303,114],[294,1],[295,1],[302,1],[297,1],[300,115],[296,1],[298,116],[301,117],[299,116],[186,1],[177,1],[178,85],[225,1],[310,91],[328,91],[400,118],[409,119],[413,120],[387,121],[386,1],[238,1],[445,122],[396,123],[286,124],[287,125],[278,126],[268,1],[309,127],[269,128],[311,129],[307,130],[306,1],[308,1],[319,131],[388,132],[389,133],[270,134],[275,135],[266,136],[366,137],[395,138],[245,139],[343,140],[175,141],[394,142],[171,69],[226,1],[227,143],[355,144],[224,1],[354,145],[67,1],[348,146],[202,1],[264,147],[344,1],[176,1],[228,1],[352,148],[184,1],[233,149],[274,150],[385,151],[273,1],[351,1],[357,152],[358,153],[182,1],[360,154],[362,155],[361,156],[205,1],[350,141],[364,157],[349,158],[356,159],[193,1],[196,1],[194,1],[198,1],[195,1],[197,1],[199,160],[192,1],[336,161],[335,1],[341,162],[337,163],[340,164],[339,164],[342,162],[338,163],[232,165],[329,166],[392,167],[447,1],[417,168],[419,169],[272,1],[418,170],[390,132],[446,171],[291,132],[183,1],[271,172],[229,173],[230,174],[231,175],[261,176],[365,176],[247,176],[330,177],[248,177],[221,178],[220,1],[334,179],[333,180],[332,181],[331,182],[391,183],[282,184],[316,185],[281,186],[314,187],[315,187],[373,188],[372,189],[368,190],[325,191],[327,192],[324,193],[363,194],[318,1],[405,1],[317,195],[367,1],[234,196],[267,108],[265,197],[236,198],[239,199],[441,1],[237,200],[240,200],[403,1],[402,1],[404,1],[439,1],[242,201],[280,2],[65,1],[323,202],[218,1],[207,203],[276,1],[411,2],[421,204],[260,2],[415,91],[259,205],[398,206],[258,204],[173,1],[423,207],[256,2],[257,2],[249,1],[206,1],[255,208],[254,209],[204,210],[277,36],[244,36],[359,1],[346,211],[345,1],[407,1],[279,2],[399,212],[60,2],[63,213],[64,214],[61,2],[62,1],[216,215],[211,216],[210,1],[209,217],[208,1],[397,218],[410,219],[412,220],[414,221],[416,222],[420,223],[453,224],[424,224],[452,225],[426,226],[435,227],[436,228],[438,229],[448,230],[451,111],[450,1],[449,231],[347,232],[11,1],[12,1],[14,1],[13,1],[2,1],[15,1],[16,1],[17,1],[18,1],[19,1],[20,1],[21,1],[22,1],[3,1],[4,1],[26,1],[23,1],[24,1],[25,1],[27,1],[28,1],[29,1],[5,1],[30,1],[31,1],[32,1],[33,1],[6,1],[37,1],[34,1],[35,1],[36,1],[38,1],[7,1],[39,1],[44,1],[45,1],[40,1],[41,1],[42,1],[43,1],[8,1],[49,1],[46,1],[47,1],[48,1],[50,1],[9,1],[51,1],[52,1],[53,1],[54,1],[55,1],[1,1],[10,1],[56,1],[89,233],[100,234],[87,233],[101,235],[110,236],[79,237],[78,238],[109,231],[104,239],[108,240],[81,241],[97,242],[80,243],[107,244],[76,245],[77,239],[82,246],[83,1],[88,237],[86,246],[74,247],[111,248],[102,249],[92,250],[91,246],[93,251],[95,252],[90,253],[94,254],[105,231],[84,255],[85,256],[96,257],[75,235],[99,258],[98,246],[103,1],[73,1],[106,259],[474,260],[475,261],[457,262],[476,263],[477,264],[478,265],[479,266],[480,267],[481,268],[482,269]],"exportedModulesMap":[[458,1],[459,2],[460,270],[462,3],[463,4],[464,3],[465,1],[466,1],[467,270],[469,6],[470,2],[471,1],[472,3],[468,4],[473,1],[456,7],[454,8],[213,1],[113,9],[114,9],[115,10],[116,11],[117,12],[118,13],[70,1],[119,14],[120,15],[121,16],[122,17],[123,18],[124,19],[125,19],[127,1],[126,20],[128,21],[129,22],[130,23],[112,24],[131,25],[132,26],[133,27],[134,28],[135,29],[136,30],[137,31],[138,32],[139,33],[140,34],[141,35],[142,36],[143,37],[144,37],[145,38],[146,1],[147,1],[148,39],[150,40],[149,41],[151,42],[152,43],[153,44],[154,45],[155,46],[156,47],[157,48],[68,1],[166,49],[72,50],[69,1],[71,1],[158,51],[159,52],[160,53],[161,54],[162,55],[163,56],[164,57],[165,58],[167,59],[168,60],[57,1],[59,61],[313,2],[288,2],[58,1],[455,1],[461,2],[66,62],[401,63],[406,64],[408,65],[189,66],[217,67],[384,68],[212,69],[200,1],[181,1],[187,1],[374,70],[241,71],[188,1],[353,72],[222,73],[223,74],[312,75],[371,76],[326,77],[378,78],[379,79],[377,80],[376,1],[375,81],[219,82],[190,83],[262,1],[263,84],[185,1],[201,85],[191,86],[246,85],[243,85],[174,85],[215,87],[214,1],[383,88],[393,1],[180,1],[289,89],[290,90],[283,2],[429,1],[292,1],[293,91],[284,92],[305,2],[434,93],[433,94],[428,1],[370,95],[369,1],[427,96],[285,2],[322,97],[320,98],[430,1],[432,99],[431,1],[321,100],[422,101],[425,102],[253,103],[252,104],[251,105],[437,2],[250,106],[235,1],[440,1],[443,1],[442,2],[444,107],[170,1],[380,108],[381,109],[382,110],[203,1],[179,111],[169,1],[172,112],[304,113],[303,114],[294,1],[295,1],[302,1],[297,1],[300,115],[296,1],[298,116],[301,117],[299,116],[186,1],[177,1],[178,85],[225,1],[310,91],[328,91],[400,118],[409,119],[413,120],[387,121],[386,1],[238,1],[445,122],[396,123],[286,124],[287,125],[278,126],[268,1],[309,127],[269,128],[311,129],[307,130],[306,1],[308,1],[319,131],[388,132],[389,133],[270,134],[275,135],[266,136],[366,137],[395,138],[245,139],[343,140],[175,141],[394,142],[171,69],[226,1],[227,143],[355,144],[224,1],[354,145],[67,1],[348,146],[202,1],[264,147],[344,1],[176,1],[228,1],[352,148],[184,1],[233,149],[274,150],[385,151],[273,1],[351,1],[357,152],[358,153],[182,1],[360,154],[362,155],[361,156],[205,1],[350,141],[364,157],[349,158],[356,159],[193,1],[196,1],[194,1],[198,1],[195,1],[197,1],[199,160],[192,1],[336,161],[335,1],[341,162],[337,163],[340,164],[339,164],[342,162],[338,163],[232,165],[329,166],[392,167],[447,1],[417,168],[419,169],[272,1],[418,170],[390,132],[446,171],[291,132],[183,1],[271,172],[229,173],[230,174],[231,175],[261,176],[365,176],[247,176],[330,177],[248,177],[221,178],[220,1],[334,179],[333,180],[332,181],[331,182],[391,183],[282,184],[316,185],[281,186],[314,187],[315,187],[373,188],[372,189],[368,190],[325,191],[327,192],[324,193],[363,194],[318,1],[405,1],[317,195],[367,1],[234,196],[267,108],[265,197],[236,198],[239,199],[441,1],[237,200],[240,200],[403,1],[402,1],[404,1],[439,1],[242,201],[280,2],[65,1],[323,202],[218,1],[207,203],[276,1],[411,2],[421,204],[260,2],[415,91],[259,205],[398,206],[258,204],[173,1],[423,207],[256,2],[257,2],[249,1],[206,1],[255,208],[254,209],[204,210],[277,36],[244,36],[359,1],[346,211],[345,1],[407,1],[279,2],[399,212],[60,2],[63,213],[64,214],[61,2],[62,1],[216,215],[211,216],[210,1],[209,217],[208,1],[397,218],[410,219],[412,220],[414,221],[416,222],[420,223],[453,224],[424,224],[452,225],[426,226],[435,227],[436,228],[438,229],[448,230],[451,111],[450,1],[449,231],[347,232],[11,1],[12,1],[14,1],[13,1],[2,1],[15,1],[16,1],[17,1],[18,1],[19,1],[20,1],[21,1],[22,1],[3,1],[4,1],[26,1],[23,1],[24,1],[25,1],[27,1],[28,1],[29,1],[5,1],[30,1],[31,1],[32,1],[33,1],[6,1],[37,1],[34,1],[35,1],[36,1],[38,1],[7,1],[39,1],[44,1],[45,1],[40,1],[41,1],[42,1],[43,1],[8,1],[49,1],[46,1],[47,1],[48,1],[50,1],[9,1],[51,1],[52,1],[53,1],[54,1],[55,1],[1,1],[10,1],[56,1],[89,233],[100,234],[87,233],[101,235],[110,236],[79,237],[78,238],[109,231],[104,239],[108,240],[81,241],[97,242],[80,243],[107,244],[76,245],[77,239],[82,246],[83,1],[88,237],[86,246],[74,247],[111,248],[102,249],[92,250],[91,246],[93,251],[95,252],[90,253],[94,254],[105,231],[84,255],[85,256],[96,257],[75,235],[99,258],[98,246],[103,1],[73,1],[106,259],[474,260],[475,261],[457,271],[476,263],[477,264],[478,265],[479,266],[480,270],[481,268],[482,269]],"semanticDiagnosticsPerFile":[458,459,460,462,463,464,465,466,467,469,470,471,472,468,473,456,454,213,113,114,115,116,117,118,70,119,120,121,122,123,124,125,127,126,128,129,130,112,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,150,149,151,152,153,154,155,156,157,68,166,72,69,71,158,159,160,161,162,163,164,165,167,168,57,59,313,288,58,455,461,66,401,406,408,189,217,384,212,200,181,187,374,241,188,353,222,223,312,371,326,378,379,377,376,375,219,190,262,263,185,201,191,246,243,174,215,214,383,393,180,289,290,283,429,292,293,284,305,434,433,428,370,369,427,285,322,320,430,432,431,321,422,425,253,252,251,437,250,235,440,443,442,444,170,380,381,382,203,179,169,172,304,303,294,295,302,297,300,296,298,301,299,186,177,178,225,310,328,400,409,413,387,386,238,445,396,286,287,278,268,309,269,311,307,306,308,319,388,389,270,275,266,366,395,245,343,175,394,171,226,227,355,224,354,67,348,202,264,344,176,228,352,184,233,274,385,273,351,357,358,182,360,362,361,205,350,364,349,356,193,196,194,198,195,197,199,192,336,335,341,337,340,339,342,338,232,329,392,447,417,419,272,418,390,446,291,183,271,229,230,231,261,365,247,330,248,221,220,334,333,332,331,391,282,316,281,314,315,373,372,368,325,327,324,363,318,405,317,367,234,267,265,236,239,441,237,240,403,402,404,439,242,280,65,323,218,207,276,411,421,260,415,259,398,258,173,423,256,257,249,206,255,254,204,277,244,359,346,345,407,279,399,60,63,64,61,62,216,211,210,209,208,397,410,412,414,416,420,453,424,452,426,435,436,438,448,451,450,449,347,11,12,14,13,2,15,16,17,18,19,20,21,22,3,4,26,23,24,25,27,28,29,5,30,31,32,33,6,37,34,35,36,38,7,39,44,45,40,41,42,43,8,49,46,47,48,50,9,51,52,53,54,55,1,10,56,89,100,87,101,110,79,78,109,104,108,81,97,80,107,76,77,82,83,88,86,74,111,102,92,91,93,95,90,94,105,84,85,96,75,99,98,103,73,106,474,475,457,476,477,478,479,480,481,482],"affectedFilesPendingEmit":[[458,1],[459,1],[460,1],[462,1],[463,1],[464,1],[465,1],[466,1],[467,1],[469,1],[470,1],[471,1],[472,1],[468,1],[473,1],[456,1],[454,1],[213,1],[113,1],[114,1],[115,1],[116,1],[117,1],[118,1],[70,1],[119,1],[120,1],[121,1],[122,1],[123,1],[124,1],[125,1],[127,1],[126,1],[128,1],[129,1],[130,1],[112,1],[131,1],[132,1],[133,1],[134,1],[135,1],[136,1],[137,1],[138,1],[139,1],[140,1],[141,1],[142,1],[143,1],[144,1],[145,1],[146,1],[147,1],[148,1],[150,1],[149,1],[151,1],[152,1],[153,1],[154,1],[155,1],[156,1],[157,1],[68,1],[166,1],[72,1],[69,1],[71,1],[158,1],[159,1],[160,1],[161,1],[162,1],[163,1],[164,1],[165,1],[167,1],[168,1],[57,1],[59,1],[313,1],[288,1],[58,1],[455,1],[461,1],[66,1],[401,1],[406,1],[408,1],[189,1],[217,1],[384,1],[212,1],[200,1],[181,1],[187,1],[374,1],[241,1],[188,1],[353,1],[222,1],[223,1],[312,1],[371,1],[326,1],[378,1],[379,1],[377,1],[376,1],[375,1],[219,1],[190,1],[262,1],[263,1],[185,1],[201,1],[191,1],[246,1],[243,1],[174,1],[215,1],[214,1],[383,1],[393,1],[180,1],[289,1],[290,1],[283,1],[429,1],[292,1],[293,1],[284,1],[305,1],[434,1],[433,1],[428,1],[370,1],[369,1],[427,1],[285,1],[322,1],[320,1],[430,1],[432,1],[431,1],[321,1],[422,1],[425,1],[253,1],[252,1],[251,1],[437,1],[250,1],[235,1],[440,1],[443,1],[442,1],[444,1],[170,1],[380,1],[381,1],[382,1],[203,1],[179,1],[169,1],[172,1],[304,1],[303,1],[294,1],[295,1],[302,1],[297,1],[300,1],[296,1],[298,1],[301,1],[299,1],[186,1],[177,1],[178,1],[225,1],[310,1],[328,1],[400,1],[409,1],[413,1],[387,1],[386,1],[238,1],[445,1],[396,1],[286,1],[287,1],[278,1],[268,1],[309,1],[269,1],[311,1],[307,1],[306,1],[308,1],[319,1],[388,1],[389,1],[270,1],[275,1],[266,1],[366,1],[395,1],[245,1],[343,1],[175,1],[394,1],[171,1],[226,1],[227,1],[355,1],[224,1],[354,1],[67,1],[348,1],[202,1],[264,1],[344,1],[176,1],[228,1],[352,1],[184,1],[233,1],[274,1],[385,1],[273,1],[351,1],[357,1],[358,1],[182,1],[360,1],[362,1],[361,1],[205,1],[350,1],[364,1],[349,1],[356,1],[193,1],[196,1],[194,1],[198,1],[195,1],[197,1],[199,1],[192,1],[336,1],[335,1],[341,1],[337,1],[340,1],[339,1],[342,1],[338,1],[232,1],[329,1],[392,1],[447,1],[417,1],[419,1],[272,1],[418,1],[390,1],[446,1],[291,1],[183,1],[271,1],[229,1],[230,1],[231,1],[261,1],[365,1],[247,1],[330,1],[248,1],[221,1],[220,1],[334,1],[333,1],[332,1],[331,1],[391,1],[282,1],[316,1],[281,1],[314,1],[315,1],[373,1],[372,1],[368,1],[325,1],[327,1],[324,1],[363,1],[318,1],[405,1],[317,1],[367,1],[234,1],[267,1],[265,1],[236,1],[239,1],[441,1],[237,1],[240,1],[403,1],[402,1],[404,1],[439,1],[242,1],[280,1],[65,1],[323,1],[218,1],[207,1],[276,1],[411,1],[421,1],[260,1],[415,1],[259,1],[398,1],[258,1],[173,1],[423,1],[256,1],[257,1],[249,1],[206,1],[255,1],[254,1],[204,1],[277,1],[244,1],[359,1],[346,1],[345,1],[407,1],[279,1],[399,1],[60,1],[63,1],[64,1],[61,1],[62,1],[216,1],[211,1],[210,1],[209,1],[208,1],[397,1],[410,1],[412,1],[414,1],[416,1],[420,1],[453,1],[424,1],[452,1],[426,1],[435,1],[436,1],[438,1],[448,1],[451,1],[450,1],[449,1],[347,1],[11,1],[12,1],[14,1],[13,1],[2,1],[15,1],[16,1],[17,1],[18,1],[19,1],[20,1],[21,1],[22,1],[3,1],[4,1],[26,1],[23,1],[24,1],[25,1],[27,1],[28,1],[29,1],[5,1],[30,1],[31,1],[32,1],[33,1],[6,1],[37,1],[34,1],[35,1],[36,1],[38,1],[7,1],[39,1],[44,1],[45,1],[40,1],[41,1],[42,1],[43,1],[8,1],[49,1],[46,1],[47,1],[48,1],[50,1],[9,1],[51,1],[52,1],[53,1],[54,1],[55,1],[1,1],[10,1],[56,1],[89,1],[100,1],[87,1],[101,1],[110,1],[79,1],[78,1],[109,1],[104,1],[108,1],[81,1],[97,1],[80,1],[107,1],[76,1],[77,1],[82,1],[83,1],[88,1],[86,1],[74,1],[111,1],[102,1],[92,1],[91,1],[93,1],[95,1],[90,1],[94,1],[105,1],[84,1],[85,1],[96,1],[75,1],[99,1],[98,1],[103,1],[73,1],[106,1],[474,1],[475,1],[457,1],[476,1],[477,1],[478,1],[479,1],[480,1],[481,1],[482,1]]},"version":"4.9.5"} \ No newline at end of file +{"program":{"fileNames":["../../node_modules/typescript/lib/lib.es5.d.ts","../../node_modules/typescript/lib/lib.es2015.d.ts","../../node_modules/typescript/lib/lib.es2016.d.ts","../../node_modules/typescript/lib/lib.es2017.d.ts","../../node_modules/typescript/lib/lib.es2018.d.ts","../../node_modules/typescript/lib/lib.es2019.d.ts","../../node_modules/typescript/lib/lib.es2020.d.ts","../../node_modules/typescript/lib/lib.es2021.d.ts","../../node_modules/typescript/lib/lib.es2022.d.ts","../../node_modules/typescript/lib/lib.esnext.d.ts","../../node_modules/typescript/lib/lib.dom.d.ts","../../node_modules/typescript/lib/lib.dom.iterable.d.ts","../../node_modules/typescript/lib/lib.es2015.core.d.ts","../../node_modules/typescript/lib/lib.es2015.collection.d.ts","../../node_modules/typescript/lib/lib.es2015.generator.d.ts","../../node_modules/typescript/lib/lib.es2015.iterable.d.ts","../../node_modules/typescript/lib/lib.es2015.promise.d.ts","../../node_modules/typescript/lib/lib.es2015.proxy.d.ts","../../node_modules/typescript/lib/lib.es2015.reflect.d.ts","../../node_modules/typescript/lib/lib.es2015.symbol.d.ts","../../node_modules/typescript/lib/lib.es2015.symbol.wellknown.d.ts","../../node_modules/typescript/lib/lib.es2016.array.include.d.ts","../../node_modules/typescript/lib/lib.es2017.object.d.ts","../../node_modules/typescript/lib/lib.es2017.sharedmemory.d.ts","../../node_modules/typescript/lib/lib.es2017.string.d.ts","../../node_modules/typescript/lib/lib.es2017.intl.d.ts","../../node_modules/typescript/lib/lib.es2017.typedarrays.d.ts","../../node_modules/typescript/lib/lib.es2018.asyncgenerator.d.ts","../../node_modules/typescript/lib/lib.es2018.asynciterable.d.ts","../../node_modules/typescript/lib/lib.es2018.intl.d.ts","../../node_modules/typescript/lib/lib.es2018.promise.d.ts","../../node_modules/typescript/lib/lib.es2018.regexp.d.ts","../../node_modules/typescript/lib/lib.es2019.array.d.ts","../../node_modules/typescript/lib/lib.es2019.object.d.ts","../../node_modules/typescript/lib/lib.es2019.string.d.ts","../../node_modules/typescript/lib/lib.es2019.symbol.d.ts","../../node_modules/typescript/lib/lib.es2019.intl.d.ts","../../node_modules/typescript/lib/lib.es2020.bigint.d.ts","../../node_modules/typescript/lib/lib.es2020.date.d.ts","../../node_modules/typescript/lib/lib.es2020.promise.d.ts","../../node_modules/typescript/lib/lib.es2020.sharedmemory.d.ts","../../node_modules/typescript/lib/lib.es2020.string.d.ts","../../node_modules/typescript/lib/lib.es2020.symbol.wellknown.d.ts","../../node_modules/typescript/lib/lib.es2020.intl.d.ts","../../node_modules/typescript/lib/lib.es2020.number.d.ts","../../node_modules/typescript/lib/lib.es2021.promise.d.ts","../../node_modules/typescript/lib/lib.es2021.string.d.ts","../../node_modules/typescript/lib/lib.es2021.weakref.d.ts","../../node_modules/typescript/lib/lib.es2021.intl.d.ts","../../node_modules/typescript/lib/lib.es2022.array.d.ts","../../node_modules/typescript/lib/lib.es2022.error.d.ts","../../node_modules/typescript/lib/lib.es2022.intl.d.ts","../../node_modules/typescript/lib/lib.es2022.object.d.ts","../../node_modules/typescript/lib/lib.es2022.sharedmemory.d.ts","../../node_modules/typescript/lib/lib.es2022.string.d.ts","../../node_modules/typescript/lib/lib.esnext.intl.d.ts","../../node_modules/@types/react/ts5.0/global.d.ts","../../node_modules/csstype/index.d.ts","../../node_modules/@types/react/ts5.0/index.d.ts","../../node_modules/next/dist/styled-jsx/types/css.d.ts","../../node_modules/next/dist/styled-jsx/types/macro.d.ts","../../node_modules/next/dist/styled-jsx/types/style.d.ts","../../node_modules/next/dist/styled-jsx/types/global.d.ts","../../node_modules/next/dist/styled-jsx/types/index.d.ts","../../node_modules/next/dist/shared/lib/amp.d.ts","../../node_modules/next/amp.d.ts","../../node_modules/next/dist/server/get-page-files.d.ts","../../node_modules/@types/node/ts5.1/compatibility/disposable.d.ts","../../node_modules/@types/node/ts5.6/compatibility/float16array.d.ts","../../node_modules/@types/node/compatibility/iterators.d.ts","../../node_modules/@types/node/ts5.6/globals.typedarray.d.ts","../../node_modules/@types/node/ts5.6/buffer.buffer.d.ts","../../node_modules/undici-types/utility.d.ts","../../node_modules/undici-types/header.d.ts","../../node_modules/undici-types/readable.d.ts","../../node_modules/undici-types/fetch.d.ts","../../node_modules/undici-types/formdata.d.ts","../../node_modules/undici-types/connector.d.ts","../../node_modules/undici-types/client.d.ts","../../node_modules/undici-types/errors.d.ts","../../node_modules/undici-types/dispatcher.d.ts","../../node_modules/undici-types/global-dispatcher.d.ts","../../node_modules/undici-types/global-origin.d.ts","../../node_modules/undici-types/pool-stats.d.ts","../../node_modules/undici-types/pool.d.ts","../../node_modules/undici-types/handlers.d.ts","../../node_modules/undici-types/balanced-pool.d.ts","../../node_modules/undici-types/h2c-client.d.ts","../../node_modules/undici-types/agent.d.ts","../../node_modules/undici-types/mock-interceptor.d.ts","../../node_modules/undici-types/mock-call-history.d.ts","../../node_modules/undici-types/mock-agent.d.ts","../../node_modules/undici-types/mock-client.d.ts","../../node_modules/undici-types/mock-pool.d.ts","../../node_modules/undici-types/mock-errors.d.ts","../../node_modules/undici-types/proxy-agent.d.ts","../../node_modules/undici-types/env-http-proxy-agent.d.ts","../../node_modules/undici-types/retry-handler.d.ts","../../node_modules/undici-types/retry-agent.d.ts","../../node_modules/undici-types/api.d.ts","../../node_modules/undici-types/cache-interceptor.d.ts","../../node_modules/undici-types/interceptors.d.ts","../../node_modules/undici-types/util.d.ts","../../node_modules/undici-types/cookies.d.ts","../../node_modules/undici-types/patch.d.ts","../../node_modules/undici-types/websocket.d.ts","../../node_modules/undici-types/eventsource.d.ts","../../node_modules/undici-types/diagnostics-channel.d.ts","../../node_modules/undici-types/content-type.d.ts","../../node_modules/undici-types/cache.d.ts","../../node_modules/undici-types/index.d.ts","../../node_modules/@types/node/globals.d.ts","../../node_modules/@types/node/assert.d.ts","../../node_modules/@types/node/assert/strict.d.ts","../../node_modules/@types/node/async_hooks.d.ts","../../node_modules/@types/node/buffer.d.ts","../../node_modules/@types/node/child_process.d.ts","../../node_modules/@types/node/cluster.d.ts","../../node_modules/@types/node/console.d.ts","../../node_modules/@types/node/constants.d.ts","../../node_modules/@types/node/crypto.d.ts","../../node_modules/@types/node/dgram.d.ts","../../node_modules/@types/node/diagnostics_channel.d.ts","../../node_modules/@types/node/dns.d.ts","../../node_modules/@types/node/dns/promises.d.ts","../../node_modules/@types/node/domain.d.ts","../../node_modules/@types/node/dom-events.d.ts","../../node_modules/@types/node/events.d.ts","../../node_modules/@types/node/fs.d.ts","../../node_modules/@types/node/fs/promises.d.ts","../../node_modules/@types/node/http.d.ts","../../node_modules/@types/node/http2.d.ts","../../node_modules/@types/node/https.d.ts","../../node_modules/@types/node/inspector.d.ts","../../node_modules/@types/node/module.d.ts","../../node_modules/@types/node/net.d.ts","../../node_modules/@types/node/os.d.ts","../../node_modules/@types/node/path.d.ts","../../node_modules/@types/node/perf_hooks.d.ts","../../node_modules/@types/node/process.d.ts","../../node_modules/@types/node/punycode.d.ts","../../node_modules/@types/node/querystring.d.ts","../../node_modules/@types/node/readline.d.ts","../../node_modules/@types/node/readline/promises.d.ts","../../node_modules/@types/node/repl.d.ts","../../node_modules/@types/node/sea.d.ts","../../node_modules/@types/node/sqlite.d.ts","../../node_modules/@types/node/stream.d.ts","../../node_modules/@types/node/stream/promises.d.ts","../../node_modules/@types/node/stream/consumers.d.ts","../../node_modules/@types/node/stream/web.d.ts","../../node_modules/@types/node/string_decoder.d.ts","../../node_modules/@types/node/test.d.ts","../../node_modules/@types/node/timers.d.ts","../../node_modules/@types/node/timers/promises.d.ts","../../node_modules/@types/node/tls.d.ts","../../node_modules/@types/node/trace_events.d.ts","../../node_modules/@types/node/tty.d.ts","../../node_modules/@types/node/url.d.ts","../../node_modules/@types/node/util.d.ts","../../node_modules/@types/node/v8.d.ts","../../node_modules/@types/node/vm.d.ts","../../node_modules/@types/node/wasi.d.ts","../../node_modules/@types/node/worker_threads.d.ts","../../node_modules/@types/node/zlib.d.ts","../../node_modules/@types/node/ts5.1/index.d.ts","../../node_modules/@types/react/ts5.0/canary.d.ts","../../node_modules/@types/react/ts5.0/experimental.d.ts","../../node_modules/next/dist/lib/fallback.d.ts","../../node_modules/next/dist/compiled/webpack/webpack.d.ts","../../node_modules/next/dist/server/config.d.ts","../../node_modules/next/dist/lib/load-custom-routes.d.ts","../../node_modules/next/dist/shared/lib/image-config.d.ts","../../node_modules/next/dist/build/webpack/plugins/subresource-integrity-plugin.d.ts","../../node_modules/next/dist/server/body-streams.d.ts","../../node_modules/next/dist/server/lib/cache-control.d.ts","../../node_modules/next/dist/lib/setup-exception-listeners.d.ts","../../node_modules/next/dist/lib/worker.d.ts","../../node_modules/next/dist/lib/constants.d.ts","../../node_modules/next/dist/client/components/app-router-headers.d.ts","../../node_modules/next/dist/build/rendering-mode.d.ts","../../node_modules/next/dist/server/lib/router-utils/build-prefetch-segment-data-route.d.ts","../../node_modules/next/dist/server/require-hook.d.ts","../../node_modules/next/dist/server/lib/experimental/ppr.d.ts","../../node_modules/next/dist/build/webpack/plugins/app-build-manifest-plugin.d.ts","../../node_modules/next/dist/lib/page-types.d.ts","../../node_modules/next/dist/build/segment-config/app/app-segment-config.d.ts","../../node_modules/next/dist/build/segment-config/pages/pages-segment-config.d.ts","../../node_modules/next/dist/build/analysis/get-page-static-info.d.ts","../../node_modules/next/dist/build/webpack/loaders/get-module-build-info.d.ts","../../node_modules/next/dist/build/webpack/plugins/middleware-plugin.d.ts","../../node_modules/next/dist/server/node-polyfill-crypto.d.ts","../../node_modules/next/dist/server/node-environment-baseline.d.ts","../../node_modules/next/dist/server/node-environment-extensions/error-inspect.d.ts","../../node_modules/next/dist/server/node-environment-extensions/random.d.ts","../../node_modules/next/dist/server/node-environment-extensions/date.d.ts","../../node_modules/next/dist/server/node-environment-extensions/web-crypto.d.ts","../../node_modules/next/dist/server/node-environment-extensions/node-crypto.d.ts","../../node_modules/next/dist/server/node-environment.d.ts","../../node_modules/next/dist/build/page-extensions-type.d.ts","../../node_modules/next/dist/build/webpack/plugins/flight-manifest-plugin.d.ts","../../node_modules/next/dist/server/instrumentation/types.d.ts","../../node_modules/next/dist/lib/coalesced-function.d.ts","../../node_modules/next/dist/shared/lib/router/utils/middleware-route-matcher.d.ts","../../node_modules/next/dist/server/lib/router-utils/types.d.ts","../../node_modules/next/dist/shared/lib/modern-browserslist-target.d.ts","../../node_modules/next/dist/shared/lib/constants.d.ts","../../node_modules/next/dist/trace/types.d.ts","../../node_modules/next/dist/trace/trace.d.ts","../../node_modules/next/dist/trace/shared.d.ts","../../node_modules/next/dist/trace/index.d.ts","../../node_modules/next/dist/build/load-jsconfig.d.ts","../../node_modules/@next/env/dist/index.d.ts","../../node_modules/next/dist/build/webpack/plugins/telemetry-plugin/use-cache-tracker-utils.d.ts","../../node_modules/next/dist/build/webpack/plugins/telemetry-plugin/telemetry-plugin.d.ts","../../node_modules/next/dist/telemetry/storage.d.ts","../../node_modules/next/dist/build/build-context.d.ts","../../node_modules/next/dist/shared/lib/bloom-filter.d.ts","../../node_modules/next/dist/build/webpack-config.d.ts","../../node_modules/next/dist/server/route-kind.d.ts","../../node_modules/next/dist/server/route-definitions/route-definition.d.ts","../../node_modules/next/dist/build/swc/generated-native.d.ts","../../node_modules/next/dist/build/swc/types.d.ts","../../node_modules/next/dist/server/dev/parse-version-info.d.ts","../../node_modules/next/dist/next-devtools/shared/types.d.ts","../../node_modules/next/dist/server/dev/dev-indicator-server-state.d.ts","../../node_modules/next/dist/server/dev/hot-reloader-types.d.ts","../../node_modules/next/dist/server/lib/cache-handlers/types.d.ts","../../node_modules/next/dist/server/response-cache/types.d.ts","../../node_modules/next/dist/server/resume-data-cache/cache-store.d.ts","../../node_modules/next/dist/server/resume-data-cache/resume-data-cache.d.ts","../../node_modules/next/dist/server/render-result.d.ts","../../node_modules/next/dist/server/lib/i18n-provider.d.ts","../../node_modules/next/dist/server/web/next-url.d.ts","../../node_modules/next/dist/compiled/@edge-runtime/cookies/index.d.ts","../../node_modules/next/dist/server/web/spec-extension/cookies.d.ts","../../node_modules/next/dist/server/web/spec-extension/request.d.ts","../../node_modules/next/dist/server/after/builtin-request-context.d.ts","../../node_modules/next/dist/server/web/spec-extension/fetch-event.d.ts","../../node_modules/next/dist/server/web/spec-extension/response.d.ts","../../node_modules/next/dist/build/segment-config/middleware/middleware-config.d.ts","../../node_modules/next/dist/server/web/types.d.ts","../../node_modules/next/dist/build/webpack/plugins/pages-manifest-plugin.d.ts","../../node_modules/next/dist/shared/lib/router/utils/parse-url.d.ts","../../node_modules/next/dist/server/base-http/node.d.ts","../../node_modules/next/dist/build/webpack/plugins/next-font-manifest-plugin.d.ts","../../node_modules/next/dist/server/route-definitions/locale-route-definition.d.ts","../../node_modules/next/dist/server/route-definitions/pages-route-definition.d.ts","../../node_modules/next/dist/shared/lib/mitt.d.ts","../../node_modules/next/dist/client/with-router.d.ts","../../node_modules/next/dist/client/router.d.ts","../../node_modules/next/dist/client/route-loader.d.ts","../../node_modules/next/dist/client/page-loader.d.ts","../../node_modules/next/dist/shared/lib/router/router.d.ts","../../node_modules/next/dist/shared/lib/router-context.shared-runtime.d.ts","../../node_modules/next/dist/shared/lib/loadable-context.shared-runtime.d.ts","../../node_modules/next/dist/shared/lib/loadable.shared-runtime.d.ts","../../node_modules/next/dist/shared/lib/image-config-context.shared-runtime.d.ts","../../node_modules/next/dist/shared/lib/hooks-client-context.shared-runtime.d.ts","../../node_modules/next/dist/shared/lib/head-manager-context.shared-runtime.d.ts","../../node_modules/next/dist/server/route-definitions/app-page-route-definition.d.ts","../../node_modules/next/dist/build/webpack/loaders/metadata/types.d.ts","../../node_modules/next/dist/build/webpack/loaders/next-app-loader/index.d.ts","../../node_modules/next/dist/server/lib/app-dir-module.d.ts","../../node_modules/next/dist/server/web/spec-extension/adapters/request-cookies.d.ts","../../node_modules/next/dist/server/async-storage/draft-mode-provider.d.ts","../../node_modules/next/dist/server/web/spec-extension/adapters/headers.d.ts","../../node_modules/next/dist/server/app-render/cache-signal.d.ts","../../node_modules/next/dist/server/app-render/dynamic-rendering.d.ts","../../node_modules/next/dist/server/app-render/work-unit-async-storage-instance.d.ts","../../node_modules/next/dist/server/response-cache/index.d.ts","../../node_modules/next/dist/server/request/fallback-params.d.ts","../../node_modules/next/dist/server/lib/lazy-result.d.ts","../../node_modules/next/dist/server/lib/implicit-tags.d.ts","../../node_modules/next/dist/server/app-render/work-unit-async-storage.external.d.ts","../../node_modules/next/dist/shared/lib/deep-readonly.d.ts","../../node_modules/next/dist/shared/lib/router/utils/parse-relative-url.d.ts","../../node_modules/next/dist/server/app-render/app-render.d.ts","../../node_modules/next/dist/shared/lib/server-inserted-html.shared-runtime.d.ts","../../node_modules/next/dist/shared/lib/amp-context.shared-runtime.d.ts","../../node_modules/next/dist/server/route-modules/app-page/vendored/contexts/entrypoints.d.ts","../../node_modules/next/dist/server/route-modules/app-page/module.compiled.d.ts","../../node_modules/next/dist/client/components/error-boundary.d.ts","../../node_modules/next/dist/client/components/layout-router.d.ts","../../node_modules/next/dist/client/components/render-from-template-context.d.ts","../../node_modules/next/dist/server/app-render/action-async-storage-instance.d.ts","../../node_modules/next/dist/server/app-render/action-async-storage.external.d.ts","../../node_modules/@types/react/ts5.0/jsx-runtime.d.ts","../../node_modules/next/dist/client/components/client-page.d.ts","../../node_modules/next/dist/client/components/client-segment.d.ts","../../node_modules/next/dist/server/request/search-params.d.ts","../../node_modules/next/dist/client/components/hooks-server-context.d.ts","../../node_modules/next/dist/client/components/http-access-fallback/error-boundary.d.ts","../../node_modules/next/dist/lib/metadata/types/alternative-urls-types.d.ts","../../node_modules/next/dist/lib/metadata/types/extra-types.d.ts","../../node_modules/next/dist/lib/metadata/types/metadata-types.d.ts","../../node_modules/next/dist/lib/metadata/types/manifest-types.d.ts","../../node_modules/next/dist/lib/metadata/types/opengraph-types.d.ts","../../node_modules/next/dist/lib/metadata/types/twitter-types.d.ts","../../node_modules/next/dist/lib/metadata/types/metadata-interface.d.ts","../../node_modules/next/dist/lib/metadata/types/resolvers.d.ts","../../node_modules/next/dist/lib/metadata/types/icons.d.ts","../../node_modules/next/dist/lib/metadata/resolve-metadata.d.ts","../../node_modules/next/dist/lib/metadata/metadata.d.ts","../../node_modules/next/dist/client/components/metadata/metadata-boundary.d.ts","../../node_modules/next/dist/server/app-render/rsc/preloads.d.ts","../../node_modules/next/dist/server/app-render/rsc/postpone.d.ts","../../node_modules/next/dist/server/app-render/rsc/taint.d.ts","../../node_modules/next/dist/server/app-render/collect-segment-data.d.ts","../../node_modules/next/dist/next-devtools/userspace/app/segment-explorer-node.d.ts","../../node_modules/next/dist/server/app-render/entry-base.d.ts","../../node_modules/next/dist/build/templates/app-page.d.ts","../../node_modules/@types/react/ts5.0/jsx-dev-runtime.d.ts","../../node_modules/next/dist/server/route-modules/app-page/vendored/rsc/entrypoints.d.ts","../../node_modules/next/dist/server/route-modules/app-page/vendored/ssr/entrypoints.d.ts","../../node_modules/next/dist/server/route-modules/app-page/module.d.ts","../../node_modules/next/dist/server/web/adapter.d.ts","../../node_modules/next/dist/server/use-cache/cache-life.d.ts","../../node_modules/next/dist/server/app-render/types.d.ts","../../node_modules/next/dist/client/components/router-reducer/router-reducer-types.d.ts","../../node_modules/next/dist/client/flight-data-helpers.d.ts","../../node_modules/next/dist/client/components/router-reducer/fetch-server-response.d.ts","../../node_modules/next/dist/shared/lib/app-router-context.shared-runtime.d.ts","../../node_modules/next/dist/server/route-modules/pages/vendored/contexts/entrypoints.d.ts","../../node_modules/next/dist/server/route-modules/pages/module.compiled.d.ts","../../node_modules/next/dist/build/templates/pages.d.ts","../../node_modules/next/dist/server/route-modules/pages/module.d.ts","../../node_modules/next/dist/next-devtools/userspace/pages/pages-dev-overlay-setup.d.ts","../../node_modules/next/dist/server/render.d.ts","../../node_modules/next/dist/server/route-definitions/pages-api-route-definition.d.ts","../../node_modules/next/dist/server/route-matches/pages-api-route-match.d.ts","../../node_modules/next/dist/server/route-matchers/route-matcher.d.ts","../../node_modules/next/dist/server/route-matcher-providers/route-matcher-provider.d.ts","../../node_modules/next/dist/server/route-matcher-managers/route-matcher-manager.d.ts","../../node_modules/next/dist/server/normalizers/normalizer.d.ts","../../node_modules/next/dist/server/normalizers/locale-route-normalizer.d.ts","../../node_modules/next/dist/server/normalizers/request/pathname-normalizer.d.ts","../../node_modules/next/dist/server/normalizers/request/suffix.d.ts","../../node_modules/next/dist/server/normalizers/request/rsc.d.ts","../../node_modules/next/dist/server/normalizers/request/prefetch-rsc.d.ts","../../node_modules/next/dist/server/normalizers/request/next-data.d.ts","../../node_modules/next/dist/server/normalizers/request/segment-prefix-rsc.d.ts","../../node_modules/next/dist/server/base-server.d.ts","../../node_modules/next/dist/server/lib/async-callback-set.d.ts","../../node_modules/next/dist/shared/lib/router/utils/route-regex.d.ts","../../node_modules/next/dist/shared/lib/router/utils/route-matcher.d.ts","../../node_modules/sharp/lib/index.d.ts","../../node_modules/next/dist/server/image-optimizer.d.ts","../../node_modules/next/dist/server/next-server.d.ts","../../node_modules/next/dist/server/lib/types.d.ts","../../node_modules/next/dist/server/lib/lru-cache.d.ts","../../node_modules/next/dist/server/lib/dev-bundler-service.d.ts","../../node_modules/next/dist/build/static-paths/types.d.ts","../../node_modules/next/dist/server/dev/static-paths-worker.d.ts","../../node_modules/next/dist/server/dev/next-dev-server.d.ts","../../node_modules/next/dist/server/next.d.ts","../../node_modules/next/dist/server/lib/render-server.d.ts","../../node_modules/next/dist/server/lib/router-server.d.ts","../../node_modules/next/dist/shared/lib/router/utils/path-match.d.ts","../../node_modules/next/dist/server/lib/router-utils/filesystem.d.ts","../../node_modules/next/dist/server/lib/router-utils/setup-dev-bundler.d.ts","../../node_modules/next/dist/server/lib/router-utils/router-server-context.d.ts","../../node_modules/next/dist/server/route-modules/route-module.d.ts","../../node_modules/next/dist/server/load-components.d.ts","../../node_modules/next/dist/server/route-definitions/app-route-route-definition.d.ts","../../node_modules/next/dist/server/async-storage/work-store.d.ts","../../node_modules/next/dist/server/web/http.d.ts","../../node_modules/next/dist/server/route-modules/app-route/shared-modules.d.ts","../../node_modules/next/dist/client/components/redirect-status-code.d.ts","../../node_modules/next/dist/client/components/redirect-error.d.ts","../../node_modules/next/dist/build/templates/app-route.d.ts","../../node_modules/next/dist/server/route-modules/app-route/module.d.ts","../../node_modules/next/dist/server/route-modules/app-route/module.compiled.d.ts","../../node_modules/next/dist/build/segment-config/app/app-segments.d.ts","../../node_modules/next/dist/build/utils.d.ts","../../node_modules/next/dist/build/turborepo-access-trace/types.d.ts","../../node_modules/next/dist/build/turborepo-access-trace/result.d.ts","../../node_modules/next/dist/build/turborepo-access-trace/helpers.d.ts","../../node_modules/next/dist/build/turborepo-access-trace/index.d.ts","../../node_modules/next/dist/export/routes/types.d.ts","../../node_modules/next/dist/export/types.d.ts","../../node_modules/next/dist/export/worker.d.ts","../../node_modules/next/dist/build/worker.d.ts","../../node_modules/next/dist/build/index.d.ts","../../node_modules/next/dist/server/lib/incremental-cache/index.d.ts","../../node_modules/next/dist/server/after/after.d.ts","../../node_modules/next/dist/server/after/after-context.d.ts","../../node_modules/next/dist/server/app-render/work-async-storage-instance.d.ts","../../node_modules/next/dist/server/app-render/work-async-storage.external.d.ts","../../node_modules/next/dist/server/request/params.d.ts","../../node_modules/next/dist/server/route-matches/route-match.d.ts","../../node_modules/next/dist/server/request-meta.d.ts","../../node_modules/next/dist/cli/next-test.d.ts","../../node_modules/next/dist/server/config-shared.d.ts","../../node_modules/next/dist/server/base-http/index.d.ts","../../node_modules/next/dist/server/api-utils/index.d.ts","../../node_modules/next/dist/types.d.ts","../../node_modules/next/dist/shared/lib/html-context.shared-runtime.d.ts","../../node_modules/next/dist/shared/lib/utils.d.ts","../../node_modules/next/dist/pages/_app.d.ts","../../node_modules/next/app.d.ts","../../node_modules/next/dist/server/web/spec-extension/unstable-cache.d.ts","../../node_modules/next/dist/server/web/spec-extension/revalidate.d.ts","../../node_modules/next/dist/server/web/spec-extension/unstable-no-store.d.ts","../../node_modules/next/dist/server/use-cache/cache-tag.d.ts","../../node_modules/next/cache.d.ts","../../node_modules/next/dist/shared/lib/runtime-config.external.d.ts","../../node_modules/next/config.d.ts","../../node_modules/next/dist/pages/_document.d.ts","../../node_modules/next/document.d.ts","../../node_modules/next/dist/shared/lib/dynamic.d.ts","../../node_modules/next/dynamic.d.ts","../../node_modules/next/dist/pages/_error.d.ts","../../node_modules/next/error.d.ts","../../node_modules/next/dist/shared/lib/head.d.ts","../../node_modules/next/head.d.ts","../../node_modules/next/dist/server/request/cookies.d.ts","../../node_modules/next/dist/server/request/headers.d.ts","../../node_modules/next/dist/server/request/draft-mode.d.ts","../../node_modules/next/headers.d.ts","../../node_modules/next/dist/shared/lib/get-img-props.d.ts","../../node_modules/next/dist/client/image-component.d.ts","../../node_modules/next/dist/shared/lib/image-external.d.ts","../../node_modules/next/image.d.ts","../../node_modules/next/dist/client/link.d.ts","../../node_modules/next/link.d.ts","../../node_modules/next/dist/client/components/redirect.d.ts","../../node_modules/next/dist/client/components/not-found.d.ts","../../node_modules/next/dist/client/components/forbidden.d.ts","../../node_modules/next/dist/client/components/unauthorized.d.ts","../../node_modules/next/dist/client/components/unstable-rethrow.server.d.ts","../../node_modules/next/dist/client/components/unstable-rethrow.d.ts","../../node_modules/next/dist/client/components/navigation.react-server.d.ts","../../node_modules/next/dist/client/components/navigation.d.ts","../../node_modules/next/navigation.d.ts","../../node_modules/next/router.d.ts","../../node_modules/next/dist/client/script.d.ts","../../node_modules/next/script.d.ts","../../node_modules/next/dist/server/web/spec-extension/user-agent.d.ts","../../node_modules/next/dist/compiled/@edge-runtime/primitives/url.d.ts","../../node_modules/next/dist/server/web/spec-extension/image-response.d.ts","../../node_modules/next/dist/compiled/@vercel/og/satori/index.d.ts","../../node_modules/next/dist/compiled/@vercel/og/emoji/index.d.ts","../../node_modules/next/dist/compiled/@vercel/og/types.d.ts","../../node_modules/next/dist/server/after/index.d.ts","../../node_modules/next/dist/server/request/root-params.d.ts","../../node_modules/next/dist/server/request/connection.d.ts","../../node_modules/next/server.d.ts","../../node_modules/next/types/global.d.ts","../../node_modules/next/types/compiled.d.ts","../../node_modules/next/types.d.ts","../../node_modules/next/index.d.ts","../../node_modules/next/image-types/global.d.ts","../../next-env.d.ts","../../node_modules/gray-matter/gray-matter.d.ts","../../lib/content.ts","../../pages/api/sitemap/[lang].ts","../../node_modules/lucide-react/dist/lucide-react.d.ts","../../components/about.tsx","../../components/caselist.tsx","../../components/contact.tsx","../../components/coreadvantages.tsx","../../components/cta.tsx","../../components/features.tsx","../../components/footer.tsx","../../components/hero.tsx","../../components/login.tsx","../../components/sidebar.tsx","../../components/navbar.tsx","../../components/newslist.tsx","../../components/pricing.tsx","../../components/process.tsx","../../components/testimonials.tsx","../../pages/_app.tsx","../../pages/about.tsx","../../pages/cases.tsx","../../pages/contact.tsx","../../pages/features.tsx","../../pages/index.tsx","../../pages/login.tsx","../../pages/news.tsx","../../pages/pricing.tsx","../../node_modules/marked/lib/marked.d.ts","../../pages/news/[slug].tsx"],"fileInfos":[{"version":"8730f4bf322026ff5229336391a18bcaa1f94d4f82416c8b2f3954e2ccaae2ba","affectsGlobalScope":true},"dc47c4fa66b9b9890cf076304de2a9c5201e94b740cffdf09f87296d877d71f6","7a387c58583dfca701b6c85e0adaf43fb17d590fb16d5b2dc0a2fbd89f35c467","8a12173c586e95f4433e0c6dc446bc88346be73ffe9ca6eec7aa63c8f3dca7f9","5f4e733ced4e129482ae2186aae29fde948ab7182844c3a5a51dd346182c7b06","4b421cbfb3a38a27c279dec1e9112c3d1da296f77a1a85ddadf7e7a425d45d18","1fc5ab7a764205c68fa10d381b08417795fc73111d6dd16b5b1ed36badb743d9","746d62152361558ea6d6115cf0da4dd10ede041d14882ede3568bce5dc4b4f1f","d11a03592451da2d1065e09e61f4e2a9bf68f780f4f6623c18b57816a9679d17","aea179452def8a6152f98f63b191b84e7cbd69b0e248c91e61fb2e52328abe8c",{"version":"3aafcb693fe5b5c3bd277bd4c3a617b53db474fe498fc5df067c5603b1eebde7","affectsGlobalScope":true},{"version":"f3d4da15233e593eacb3965cde7960f3fddf5878528d882bcedd5cbaba0193c7","affectsGlobalScope":true},{"version":"adb996790133eb33b33aadb9c09f15c2c575e71fb57a62de8bf74dbf59ec7dfb","affectsGlobalScope":true},{"version":"8cc8c5a3bac513368b0157f3d8b31cfdcfe78b56d3724f30f80ed9715e404af8","affectsGlobalScope":true},{"version":"cdccba9a388c2ee3fd6ad4018c640a471a6c060e96f1232062223063b0a5ac6a","affectsGlobalScope":true},{"version":"c5c05907c02476e4bde6b7e76a79ffcd948aedd14b6a8f56e4674221b0417398","affectsGlobalScope":true},{"version":"5f406584aef28a331c36523df688ca3650288d14f39c5d2e555c95f0d2ff8f6f","affectsGlobalScope":true},{"version":"22f230e544b35349cfb3bd9110b6ef37b41c6d6c43c3314a31bd0d9652fcec72","affectsGlobalScope":true},{"version":"7ea0b55f6b315cf9ac2ad622b0a7813315bb6e97bf4bb3fbf8f8affbca7dc695","affectsGlobalScope":true},{"version":"3013574108c36fd3aaca79764002b3717da09725a36a6fc02eac386593110f93","affectsGlobalScope":true},{"version":"eb26de841c52236d8222f87e9e6a235332e0788af8c87a71e9e210314300410a","affectsGlobalScope":true},{"version":"3be5a1453daa63e031d266bf342f3943603873d890ab8b9ada95e22389389006","affectsGlobalScope":true},{"version":"17bb1fc99591b00515502d264fa55dc8370c45c5298f4a5c2083557dccba5a2a","affectsGlobalScope":true},{"version":"7ce9f0bde3307ca1f944119f6365f2d776d281a393b576a18a2f2893a2d75c98","affectsGlobalScope":true},{"version":"6a6b173e739a6a99629a8594bfb294cc7329bfb7b227f12e1f7c11bc163b8577","affectsGlobalScope":true},{"version":"81cac4cbc92c0c839c70f8ffb94eb61e2d32dc1c3cf6d95844ca099463cf37ea","affectsGlobalScope":true},{"version":"b0124885ef82641903d232172577f2ceb5d3e60aed4da1153bab4221e1f6dd4e","affectsGlobalScope":true},{"version":"0eb85d6c590b0d577919a79e0084fa1744c1beba6fd0d4e951432fa1ede5510a","affectsGlobalScope":true},{"version":"da233fc1c8a377ba9e0bed690a73c290d843c2c3d23a7bd7ec5cd3d7d73ba1e0","affectsGlobalScope":true},{"version":"d154ea5bb7f7f9001ed9153e876b2d5b8f5c2bb9ec02b3ae0d239ec769f1f2ae","affectsGlobalScope":true},{"version":"bb2d3fb05a1d2ffbca947cc7cbc95d23e1d053d6595391bd325deb265a18d36c","affectsGlobalScope":true},{"version":"c80df75850fea5caa2afe43b9949338ce4e2de086f91713e9af1a06f973872b8","affectsGlobalScope":true},{"version":"9d57b2b5d15838ed094aa9ff1299eecef40b190722eb619bac4616657a05f951","affectsGlobalScope":true},{"version":"6c51b5dd26a2c31dbf37f00cfc32b2aa6a92e19c995aefb5b97a3a64f1ac99de","affectsGlobalScope":true},{"version":"6e7997ef61de3132e4d4b2250e75343f487903ddf5370e7ce33cf1b9db9a63ed","affectsGlobalScope":true},{"version":"2ad234885a4240522efccd77de6c7d99eecf9b4de0914adb9a35c0c22433f993","affectsGlobalScope":true},{"version":"5e5e095c4470c8bab227dbbc61374878ecead104c74ab9960d3adcccfee23205","affectsGlobalScope":true},{"version":"09aa50414b80c023553090e2f53827f007a301bc34b0495bfb2c3c08ab9ad1eb","affectsGlobalScope":true},{"version":"d7f680a43f8cd12a6b6122c07c54ba40952b0c8aa140dcfcf32eb9e6cb028596","affectsGlobalScope":true},{"version":"3787b83e297de7c315d55d4a7c546ae28e5f6c0a361b7a1dcec1f1f50a54ef11","affectsGlobalScope":true},{"version":"e7e8e1d368290e9295ef18ca23f405cf40d5456fa9f20db6373a61ca45f75f40","affectsGlobalScope":true},{"version":"faf0221ae0465363c842ce6aa8a0cbda5d9296940a8e26c86e04cc4081eea21e","affectsGlobalScope":true},{"version":"06393d13ea207a1bfe08ec8d7be562549c5e2da8983f2ee074e00002629d1871","affectsGlobalScope":true},{"version":"2768ef564cfc0689a1b76106c421a2909bdff0acbe87da010785adab80efdd5c","affectsGlobalScope":true},{"version":"b248e32ca52e8f5571390a4142558ae4f203ae2f94d5bac38a3084d529ef4e58","affectsGlobalScope":true},{"version":"6c55633c733c8378db65ac3da7a767c3cf2cf3057f0565a9124a16a3a2019e87","affectsGlobalScope":true},{"version":"fb4416144c1bf0323ccbc9afb0ab289c07312214e8820ad17d709498c865a3fe","affectsGlobalScope":true},{"version":"5b0ca94ec819d68d33da516306c15297acec88efeb0ae9e2b39f71dbd9685ef7","affectsGlobalScope":true},{"version":"34c839eaaa6d78c8674ae2c37af2236dee6831b13db7b4ef4df3ec889a04d4f2","affectsGlobalScope":true},{"version":"34478567f8a80171f88f2f30808beb7da15eac0538ae91282dd33dce928d98ed","affectsGlobalScope":true},{"version":"ab7d58e6161a550ff92e5aff755dc37fe896245348332cd5f1e1203479fe0ed1","affectsGlobalScope":true},{"version":"6bda95ea27a59a276e46043b7065b55bd4b316c25e70e29b572958fa77565d43","affectsGlobalScope":true},{"version":"aedb8de1abb2ff1095c153854a6df7deae4a5709c37297f9d6e9948b6806fa66","affectsGlobalScope":true},{"version":"a4da0551fd39b90ca7ce5f68fb55d4dc0c1396d589b612e1902f68ee090aaada","affectsGlobalScope":true},{"version":"11ffe3c281f375fff9ffdde8bbec7669b4dd671905509079f866f2354a788064","affectsGlobalScope":true},{"version":"52d1bb7ab7a3306fd0375c8bff560feed26ed676a5b0457fa8027b563aecb9a4","affectsGlobalScope":true},{"version":"170d4db14678c68178ee8a3d5a990d5afb759ecb6ec44dbd885c50f6da6204f6","affectsGlobalScope":true},"8a8eb4ebffd85e589a1cc7c178e291626c359543403d58c9cd22b81fab5b1fb9","2d27d86432b871be0d83c0988a42ae71a70aa516ac3e0944c296708aaaa24c63","acd8fd5090ac73902278889c38336ff3f48af6ba03aa665eb34a75e7ba1dccc4","d6258883868fb2680d2ca96bc8b1352cab69874581493e6d52680c5ffecdb6cc","1b61d259de5350f8b1e5db06290d31eaebebc6baafd5f79d314b5af9256d7153","f258e3960f324a956fc76a3d3d9e964fff2244ff5859dcc6ce5951e5413ca826","643f7232d07bf75e15bd8f658f664d6183a0efaca5eb84b48201c7671a266979","0f6666b58e9276ac3a38fdc80993d19208442d6027ab885580d93aec76b4ef00","05fd364b8ef02fb1e174fbac8b825bdb1e5a36a016997c8e421f5fab0a6da0a0","631eff75b0e35d1b1b31081d55209abc43e16b49426546ab5a9b40bdd40b1f60",{"version":"6876211ece0832abdfe13c43c65a555549bb4ca8c6bb4078d68cf923aeb6009e","affectsGlobalScope":true},{"version":"394fda71d5d6bd00a372437dff510feab37b92f345861e592f956d6995e9c1ce","affectsGlobalScope":true},{"version":"d153a11543fd884b596587ccd97aebbeed950b26933ee000f94009f1ab142848","affectsGlobalScope":true},{"version":"c564fc7c6f57b43ebe0b69bc6719d38ff753f6afe55dadf2dba36fb3558f39b6","affectsGlobalScope":true},{"version":"109b9c280e8848c08bf4a78fff1fed0750a6ca1735671b5cf08b71bae5448c03","affectsGlobalScope":true},"cdcf9ea426ad970f96ac930cd176d5c69c6c24eebd9fc580e1572d6c6a88f62c","23cd712e2ce083d68afe69224587438e5914b457b8acf87073c22494d706a3d0","487b694c3de27ddf4ad107d4007ad304d29effccf9800c8ae23c2093638d906a","e525f9e67f5ddba7b5548430211cae2479070b70ef1fd93550c96c10529457bd","ccf4552357ce3c159ef75f0f0114e80401702228f1898bdc9402214c9499e8c0","c6fd2c5a395f2432786c9cb8deb870b9b0e8ff7e22c029954fabdd692bff6195","17fe9131bec653b07b0a1a8b99a830216e3e43fe0ea2605be318dc31777c8bbf","3c8e93af4d6ce21eb4c8d005ad6dc02e7b5e6781f429d52a35290210f495a674","2c9875466123715464539bfd69bcaccb8ff6f3e217809428e0d7bd6323416d01","ea6bc8de8b59f90a7a3960005fd01988f98fd0784e14bc6922dde2e93305ec7d","36107995674b29284a115e21a0618c4c2751b32a8766dd4cb3ba740308b16d59","914a0ae30d96d71915fc519ccb4efbf2b62c0ddfb3a3fc6129151076bc01dc60","2472ef4c28971272a897fdb85d4155df022e1f5d9a474a526b8fc2ef598af94e","6c8e442ba33b07892169a14f7757321e49ab0f1032d676d321a1fdab8a67d40c","b41767d372275c154c7ea6c9d5449d9a741b8ce080f640155cc88ba1763e35b3","1cd673d367293fc5cb31cd7bf03d598eb368e4f31f39cf2b908abbaf120ab85a","19851a6596401ca52d42117108d35e87230fc21593df5c4d3da7108526b6111c","3825bf209f1662dfd039010a27747b73d0ef379f79970b1d05601ec8e8a4249f","0b6e25234b4eec6ed96ab138d96eb70b135690d7dd01f3dd8a8ab291c35a683a","40bfc70953be2617dc71979c14e9e99c5e65c940a4f1c9759ddb90b0f8ff6b1a","da52342062e70c77213e45107921100ba9f9b3a30dd019444cf349e5fb3470c4","e9ace91946385d29192766bf783b8460c7dbcbfc63284aa3c9cae6de5155c8bc","40b463c6766ca1b689bfcc46d26b5e295954f32ad43e37ee6953c0a677e4ae2b","561c60d8bfe0fec2c08827d09ff039eca0c1f9b50ef231025e5a549655ed0298","1e30c045732e7db8f7a82cf90b516ebe693d2f499ce2250a977ec0d12e44a529","84b736594d8760f43400202859cda55607663090a43445a078963031d47e25e7","499e5b055a5aba1e1998f7311a6c441a369831c70905cc565ceac93c28083d53","54c3e2371e3d016469ad959697fd257e5621e16296fa67082c2575d0bf8eced0","beb8233b2c220cfa0feea31fbe9218d89fa02faa81ef744be8dce5acb89bb1fd","78b29846349d4dfdd88bd6650cc5d2baaa67f2e89dc8a80c8e26ef7995386583","5d0375ca7310efb77e3ef18d068d53784faf62705e0ad04569597ae0e755c401","59af37caec41ecf7b2e76059c9672a49e682c1a2aa6f9d7dc78878f53aa284d6","addf417b9eb3f938fddf8d81e96393a165e4be0d4a8b6402292f9c634b1cb00d","e38d4fdf79e1eadd92ed7844c331dbaa40f29f21541cfee4e1acff4db09cda33","8bd86b8e8f6a6aa6c49b71e14c4ffe1211a0e97c80f08d2c8cc98838006e4b88","7c10a32ae6f3962672e6869ee2c794e8055d8225ef35c91c0228e354b4e5d2d3","2e85db9e6fd73cfa3d7f28e0ab6b55417ea18931423bd47b409a96e4a169e8e6","c46e079fe54c76f95c67fb89081b3e399da2c7d109e7dca8e4b58d83e332e605","99f569b42ea7e7c5fe404b2848c0893f3e1a56e0547c1cd0f74d5dbb9a9de27e",{"version":"f4b4faedc57701ae727d78ba4a83e466a6e3bdcbe40efbf913b17e860642897c","affectsGlobalScope":true},"bbcfd9cd76d92c3ee70475270156755346c9086391e1b9cb643d072e0cf576b8","7394959e5a741b185456e1ef5d64599c36c60a323207450991e7a42e08911419","72c1f5e0a28e473026074817561d1bc9647909cf253c8d56c41d1df8d95b85f7",{"version":"003ec918ec442c3a4db2c36dc0c9c766977ea1c8bcc1ca7c2085868727c3d3f6","affectsGlobalScope":true},"938f94db8400d0b479626b9006245a833d50ce8337f391085fad4af540279567","c4e8e8031808b158cfb5ac5c4b38d4a26659aec4b57b6a7e2ba0a141439c208c",{"version":"2c91d8366ff2506296191c26fd97cc1990bab3ee22576275d28b654a21261a44","affectsGlobalScope":true},"5524481e56c48ff486f42926778c0a3cce1cc85dc46683b92b1271865bcf015a",{"version":"12fb9c13f24845000d7bd9660d11587e27ef967cbd64bd9df19ae3e6aa9b52d4","affectsGlobalScope":true},"289e9894a4668c61b5ffed09e196c1f0c2f87ca81efcaebdf6357cfb198dac14","25a1105595236f09f5bce42398be9f9ededc8d538c258579ab662d509aa3b98e","5078cd62dbdf91ae8b1dc90b1384dec71a9c0932d62bdafb1a811d2a8e26bef2","a2e2bbde231b65c53c764c12313897ffdfb6c49183dd31823ee2405f2f7b5378","ad1cc0ed328f3f708771272021be61ab146b32ecf2b78f3224959ff1e2cd2a5c",{"version":"71450bbc2d82821d24ca05699a533e72758964e9852062c53b30f31c36978ab8","affectsGlobalScope":true},{"version":"62f572306e0b173cc5dfc4c583471151f16ef3779cf27ab96922c92ec82a3bc8","affectsGlobalScope":true},"2f32444438ecb1fa4519f6ec3977d69ce0e3acfa18b803e5cd725c204501f350","0ab3c844f1eb5a1d94c90edc346a25eb9d3943af7a7812f061bf2d627d8afac0","b0a84d9348601dbc217017c0721d6064c3b1af9b392663348ba146fdae0c7afd","161f09445a8b4ba07f62ae54b27054e4234e7957062e34c6362300726dabd315","77fced47f495f4ff29bb49c52c605c5e73cd9b47d50080133783032769a9d8a6","e6057f9e7b0c64d4527afeeada89f313f96a53291705f069a9193c18880578cb",{"version":"34ecb9596317c44dab586118fb62c1565d3dad98d201cd77f3e6b0dde453339c","affectsGlobalScope":true},"0f5cda0282e1d18198e2887387eb2f026372ebc4e11c4e4516fef8a19ee4d514","e99b0e71f07128fc32583e88ccd509a1aaa9524c290efb2f48c22f9bf8ba83b1","76957a6d92b94b9e2852cf527fea32ad2dc0ef50f67fe2b14bd027c9ceef2d86",{"version":"237581f5ec4620a17e791d3bb79bad3af01e27a274dbee875ac9b0721a4fe97d","affectsGlobalScope":true},{"version":"a8a99a5e6ed33c4a951b67cc1fd5b64fd6ad719f5747845c165ca12f6c21ba16","affectsGlobalScope":true},"a58a15da4c5ba3df60c910a043281256fa52d36a0fcdef9b9100c646282e88dd","b36beffbf8acdc3ebc58c8bb4b75574b31a2169869c70fc03f82895b93950a12","de263f0089aefbfd73c89562fb7254a7468b1f33b61839aafc3f035d60766cb4","70b57b5529051497e9f6482b76d91c0dcbb103d9ead8a0549f5bab8f65e5d031","e6d81b1f7ab11dc1b1ad7ad29fcfad6904419b36baf55ed5e80df48d56ac3aff","1013eb2e2547ad8c100aca52ef9df8c3f209edee32bb387121bb3227f7c00088","b6b8e3736383a1d27e2592c484a940eeb37ec4808ba9e74dd57679b2453b5865","d6f36b683c59ac0d68a1d5ee906e578e2f5e9a285bca80ff95ce61cdc9ddcdeb","37ba7b45141a45ce6e80e66f2a96c8a5ab1bcef0fc2d0f56bb58df96ec67e972","125d792ec6c0c0f657d758055c494301cc5fdb327d9d9d5960b3f129aff76093",{"version":"12aad38de6f0594dc21efa78a2c1f67bf6a7ef5a389e05417fe9945284450908","affectsGlobalScope":true},"ea713aa14a670b1ea0fbaaca4fd204e645f71ca7653a834a8ec07ee889c45de6","b338a6e6c1d456e65a6ea78da283e3077fe8edf7202ae10490abbba5b952b05e",{"version":"2918b7c516051c30186a1055ebcdb3580522be7190f8a2fff4100ea714c7c366","affectsGlobalScope":true},"ae86f30d5d10e4f75ce8dcb6e1bd3a12ecec3d071a21e8f462c5c85c678efb41","982efeb2573605d4e6d5df4dc7e40846bda8b9e678e058fc99522ab6165c479e","e03460fe72b259f6d25ad029f085e4bedc3f90477da4401d8fbc1efa9793230e","4286a3a6619514fca656089aee160bb6f2e77f4dd53dc5a96b26a0b4fc778055",{"version":"d67fc92a91171632fc74f413ce42ff1aa7fbcc5a85b127101f7ec446d2039a1f","affectsGlobalScope":true},{"version":"d40e4631100dbc067268bce96b07d7aff7f28a541b1bfb7ef791c64a696b3d33","affectsGlobalScope":true},"784490137935e1e38c49b9289110e74a1622baf8a8907888dcbe9e476d7c5e44","42180b657831d1b8fead051698618b31da623fb71ff37f002cb9d932cfa775f1","4f98d6fb4fe7cbeaa04635c6eaa119d966285d4d39f0eb55b2654187b0b27446",{"version":"e4c653466d0497d87fa9ffd00e59a95f33bc1c1722c3f5c84dab2e950c18da70","affectsGlobalScope":true},"e6dcc3b933e864e91d4bea94274ad69854d5d2a1311a4b0e20408a57af19e95d","2119ab23f794e7b563cc1a005b964e2f59b8ebcb3dfe2ce61d0c782bfd5e02a2","865a2612f5ec073dd48d454307ccabb04c48f8b96fda9940c5ebfe6b4b451f51","de9b09c703c51ac4bf93e37774cfc1c91e4ff17a5a0e9127299be49a90c5dc63","413df52d4ea14472c2fa5bee62f7a40abd1eb49be0b9722ee01ee4e52e63beb2","db6d2d9daad8a6d83f281af12ce4355a20b9a3e71b82b9f57cddcca0a8964a96","77497ec7d02338725444582c8ae7eb2085243a9f8c4113ca40b9b4fd941f2319","24f8562308dd8ba6013120557fa7b44950b619610b2c6cb8784c79f11e3c4f90","ba1ae645ccbff0137326f99084f5cf87c9fa988c59906177d59deabeee9e428d","a86f82d646a739041d6702101afa82dcb935c416dd93cbca7fd754fd0282ce1f","57d6ac03382e30e9213641ff4f18cf9402bb246b77c13c8e848c0b1ca2b7ef92","ce75b1aebb33d510ff28af960a9221410a3eaf7f18fc5f21f9404075fba77256","e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","496bbf339f3838c41f164238543e9fe5f1f10659cb30b68903851618464b98ba","44e0a682d3a20df46bbf8e7e37f2f10b1604d4ab08b3beda1c365e6d9c3ec74d","97395dc4fd32e20b8888849266065caf0b45d12575242c308e8604a4288ec3e5","9e2739b32f741859263fdba0244c194ca8e96da49b430377930b8f721d77c000","fb1d8e814a3eeb5101ca13515e0548e112bd1ff3fb358ece535b93e94adf5a3a","ffa495b17a5ef1d0399586b590bd281056cee6ce3583e34f39926f8dcc6ecdb5","98b18458acb46072947aabeeeab1e410f047e0cacc972943059ca5500b0a5e95","361e2b13c6765d7f85bb7600b48fde782b90c7c41105b7dab1f6e7871071ba20","c86fe861cf1b4c46a0fb7d74dffe596cf679a2e5e8b1456881313170f092e3fa","b6db56e4903e9c32e533b78ac85522de734b3d3a8541bf24d256058d464bf04b","24daa0366f837d22c94a5c0bad5bf1fd0f6b29e1fae92dc47c3072c3fdb2fbd5","570bb5a00836ffad3e4127f6adf581bfc4535737d8ff763a4d6f4cc877e60d98","889c00f3d32091841268f0b994beba4dceaa5df7573be12c2c829d7c5fbc232c","65f43099ded6073336e697512d9b80f2d4fec3182b7b2316abf712e84104db00","e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881","12b8dfed70961bea1861e5d39e433580e71323abb5d33da6605182ec569db584","8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881","7e560f533aaf88cf9d3b427dcf6c112dd3f2ee26d610e2587583b6c354c753db","71e0082342008e4dfb43202df85ea0986ef8e003c921a1e49999d0234a3019da","27ab780875bcbb65e09da7496f2ca36288b0c541abaa75c311450a077d54ec15","b620391fe8060cf9bedc176a4d01366e6574d7a71e0ac0ab344a4e76576fcbb8","380647d8f3b7f852cca6d154a376dbf8ac620a2f12b936594504a8a852e71d2f","208c9af9429dd3c76f5927b971263174aaa4bc7621ddec63f163640cbd3c473c","6459054aabb306821a043e02b89d54da508e3a6966601a41e71c166e4ea1474f","a23185bc5ef590c287c28a91baf280367b50ae4ea40327366ad01f6f4a8edbc5","bb37588926aba35c9283fe8d46ebf4e79ffe976343105f5c6d45f282793352b2","002eae065e6960458bda3cf695e578b0d1e2785523476f8a9170b103c709cd4f","c51641ab4bfa31b7a50a0ca37edff67f56fab3149881024345b13f2b48b7d2de","05c97cddbaf99978f83d96de2d8af86aded9332592f08ce4a284d72d0952c391","72179f9dd22a86deaad4cc3490eb0fe69ee084d503b686985965654013f1391b","2e6114a7dd6feeef85b2c80120fdbfb59a5529c0dcc5bfa8447b6996c97a69f5","7b6ff760c8a240b40dab6e4419b989f06a5b782f4710d2967e67c695ef3e93c4","c8f004e6036aa1c764ad4ec543cf89a5c1893a9535c80ef3f2b653e370de45e6","dd80b1e600d00f5c6a6ba23f455b84a7db121219e68f89f10552c54ba46e4dc9","b064c36f35de7387d71c599bfcf28875849a1dbc733e82bd26cae3d1cd060521","6a148329edecbda07c21098639ef4254ef7869fb25a69f58e5d6a8b7b69d4236","8de9fe97fa9e00ec00666fa77ab6e91b35d25af8ca75dabcb01e14ad3299b150","f63ab283a1c8f5c79fabe7ca4ef85f9633339c4f0e822fce6a767f9d59282af2","dba114fb6a32b355a9cfc26ca2276834d72fe0e94cd2c3494005547025015369","a54c996c8870ef1728a2c1fa9b8eaec0bf4a8001cd2583c02dd5869289465b10","3e7efde639c6a6c3edb9847b3f61e308bf7a69685b92f665048c45132f51c218","df45ca1176e6ac211eae7ddf51336dc075c5314bc5c253651bae639defd5eec5","85e41df4579ceac0616fc81e1aee5c5222941609e6732698e7a551db4c06a78a","fa9e3ec3d9c2072368b2a12686580aff5d7bc41439efa1ee91b378a57f4864c2","f974e4a06953682a2c15d5bd5114c0284d5abf8bc0fe4da25cb9159427b70072","50256e9c31318487f3752b7ac12ff365c8949953e04568009c8705db802776fb","7d73b24e7bf31dfb8a931ca6c4245f6bb0814dfae17e4b60c9e194a631fe5f7b","8d1fd7b451f69cd173e6e20272e0d64ba4a8a1fe0eb3ef5f82134a5b0cb7c9df","d6e73f8010935b7b4c7487b6fb13ea197cc610f0965b759bec03a561ccf8423a","174f3864e398f3f33f9a446a4f403d55a892aa55328cf6686135dfaf9e171657","824c76aec8d8c7e65769688cbee102238c0ef421ed6686f41b2a7d8e7e78a931","75b868be3463d5a8cfc0d9396f0a3d973b8c297401d00bfb008a42ab16643f13","05c8cd040dc6b8aa18f310b12eaf0407dc4d122ec035dc5b0c9b97e795abfeec","d682336018141807fb602709e2d95a192828fcb8d5ba06dda3833a8ea98f69e3","6124e973eab8c52cabf3c07575204efc1784aca6b0a30c79eb85fe240a857efa","0d891735a21edc75df51f3eb995e18149e119d1ce22fd40db2b260c5960b914e","3b414b99a73171e1c4b7b7714e26b87d6c5cb03d200352da5342ab4088a54c85","51b1709e7ad186919a0e30237a8607100143a86d28771b3d3f046359aca1e65c","b01bd582a6e41457bc56e6f0f9de4cb17f33f5f3843a7cf8210ac9c18472fb0f","0a437ae178f999b46b6153d79095b60c42c996bc0458c04955f1c996dc68b971","74b2a5e5197bd0f2e0077a1ea7c07455bbea67b87b0869d9786d55104006784f","4a7baeb6325920044f66c0f8e5e6f1f52e06e6d87588d837bdf44feb6f35c664","6dcf60530c25194a9ee0962230e874ff29d34c59605d8e069a49928759a17e0a","7274fbffbd7c9589d8d0ffba68157237afd5cecff1e99881ea3399127e60572f","1a42d2ec31a1fe62fdc51591768695ed4a2dc64c01be113e7ff22890bebb5e3f","1a82deef4c1d39f6882f28d275cad4c01f907b9b39be9cbc472fcf2cf051e05b","c5426dbfc1cf90532f66965a7aa8c1136a78d4d0f96d8180ecbfc11d7722f1a5","65a15fc47900787c0bd18b603afb98d33ede930bed1798fc984d5ebb78b26cf9","9d202701f6e0744adb6314d03d2eb8fc994798fc83d91b691b75b07626a69801","de9d2df7663e64e3a91bf495f315a7577e23ba088f2949d5ce9ec96f44fba37d","c7af78a2ea7cb1cd009cfb5bdb48cd0b03dad3b54f6da7aab615c2e9e9d570c5","1ee45496b5f8bdee6f7abc233355898e5bf9bd51255db65f5ff7ede617ca0027",{"version":"0c7c947ff881c4274c0800deaa0086971e0bfe51f89a33bd3048eaa3792d4876","affectsGlobalScope":true},{"version":"db01d18853469bcb5601b9fc9826931cc84cc1a1944b33cad76fd6f1e3d8c544","affectsGlobalScope":true},{"version":"a8f8e6ab2fa07b45251f403548b78eaf2022f3c2254df3dc186cb2671fe4996d","affectsGlobalScope":true},"fa6c12a7c0f6b84d512f200690bfc74819e99efae69e4c95c4cd30f6884c526e","f1c32f9ce9c497da4dc215c3bc84b722ea02497d35f9134db3bb40a8d918b92b",{"version":"b73c319af2cc3ef8f6421308a250f328836531ea3761823b4cabbd133047aefa","affectsGlobalScope":true},"e433b0337b8106909e7953015e8fa3f2d30797cea27141d1c5b135365bb975a6","15b36126e0089bfef173ab61329e8286ce74af5e809d8a72edcafd0cc049057f","ddff7fc6edbdc5163a09e22bf8df7bef75f75369ebd7ecea95ba55c4386e2441","106c6025f1d99fd468fd8bf6e5bda724e11e5905a4076c5d29790b6c3745e50c","a57b1802794433adec9ff3fed12aa79d671faed86c49b09e02e1ac41b4f1d33a","ad10d4f0517599cdeca7755b930f148804e3e0e5b5a3847adce0f1f71bbccd74","1042064ece5bb47d6aba91648fbe0635c17c600ebdf567588b4ca715602f0a9d","4360ad4de54de2d5c642c4375d5eab0e7fe94ebe8adca907e6c186bbef75a54d","4a889f2c763edb4d55cb624257272ac10d04a1cad2ed2948b10ed4a7fda2a428","7bb79aa2fead87d9d56294ef71e056487e848d7b550c9a367523ee5416c44cfa","43542b120b07d198a86a21f6df97e6fe4a6327e960342777eefaa407baee2a62","090fa057d7b2c429119fde252e3b7276a7d75a3ec172a9a23aa922dfac5345e8","27ff4196654e6373c9af16b6165120e2dd2169f9ad6abb5c935af5abd8c7938c","24428762d0c97b44c4784d28eee9556547167c4592d20d542a79243f7ca6a73f","d6406c629bb3efc31aedb2de809bef471e475c86c7e67f3ef9b676b5d7e0d6b2","8c030e515014c10a2b98f9f48408e3ba18023dfd3f56e3312c6c2f3ae1f55a16","dafc31e9e8751f437122eb8582b93d477e002839864410ff782504a12f2a550c","4e31a4e6319cee44ce4cec0f8892c60289cfbdbec11dda19c85559bb8ab53bc2","9c82171d836c47486074e4ca8e059735bf97b205e70b196535b5efd40cbe1bc5","f56bdc6884648806d34bc66d31cdb787c4718d04105ce2cd88535db214631f82","20e06cdda4a8fdd7c1b548259f89f01b04e56a513e834463d7bac5632c7cf906","2e4f37ffe8862b14d8e24ae8763daaa8340c0df0b859d9a9733def0eee7562d9","13283350547389802aa35d9f2188effaeac805499169a06ef5cd77ce2a0bd63f","ce791f6ea807560f08065d1af6014581eeb54a05abd73294777a281b6dfd73c2","6ac6715916fa75a1f7ebdfeacac09513b4d904b667d827b7535e84ff59679aff","49f95e989b4632c6c2a578cc0078ee19a5831832d79cc59abecf5160ea71abad","21b4672313ae95583ade84f97ae6bbeaf242ecae783f5653e2e99ac4e21cbbe1","ce0df82a9ae6f914ba08409d4d883983cc08e6d59eb2df02d8e4d68309e7848b","796273b2edc72e78a04e86d7c58ae94d370ab93a0ddf40b1aa85a37a1c29ecd7","5df15a69187d737d6d8d066e189ae4f97e41f4d53712a46b2710ff9f8563ec9f","016fe1e807dfdb88e8773616dde55bd04c087675662a393f20b1ec213b4a2b74","e17cd049a1448de4944800399daa4a64c5db8657cc9be7ef46be66e2a2cd0e7c","d05fb434f4ba073aed74b6c62eff1723c835de2a963dbb091e000a2decb5a691","bff8c8bffbf5f302a30ccb1c0557dae477892d50a80eecfe393bd89bac7fb41d","43ba4f2fa8c698f5c304d21a3ef596741e8e85a810b7c1f9b692653791d8d97a","4d4927cbee21750904af7acf940c5e3c491b4d5ebc676530211e389dd375607a","72105519d0390262cf0abe84cf41c926ade0ff475d35eb21307b2f94de985778","8a97e578a9bc40eb4f1b0ca78f476f2e9154ecbbfd5567ee72943bab37fc156a","a58abf1f5c8feb335475097abeddd32fd71c4dc2065a3d28cf15cacabad9654a","ccf6dd45b708fb74ba9ed0f2478d4eb9195c9dfef0ff83a6092fa3cf2ff53b4f","2d7db1d73456e8c5075387d4240c29a2a900847f9c1bff106a2e490da8fbd457","2b15c805f48e4e970f8ec0b1915f22d13ca6212375e8987663e2ef5f0205e832","f22d05663d873ee7a600faf78abb67f3f719d32266803440cf11d5db7ac0cab2","d93c544ad20197b3976b0716c6d5cd5994e71165985d31dcab6e1f77feb4b8f2","35069c2c417bd7443ae7c7cafd1de02f665bf015479fec998985ffbbf500628c","a8b1c79a833ee148251e88a2553d02ce1641d71d2921cce28e79678f3d8b96aa","126d4f950d2bba0bd45b3a86c76554d4126c16339e257e6d2fabf8b6bf1ce00c","9e21f8e2c0cfea713a4a372f284b60089c0841eb90bf3610539d89dbcd12d65a","045b752f44bf9bbdcaffd882424ab0e15cb8d11fa94e1448942e338c8ef19fba","2894c56cad581928bb37607810af011764a2f511f575d28c9f4af0f2ef02d1ab","0a72186f94215d020cb386f7dca81d7495ab6c17066eb07d0f44a5bf33c1b21a","7fa117f0f4f132ba132794982a35c840287997ee186753f78abe48508812c238","6ce54b2cfe4cf91138e2f5f114fe222a8819968336385cbcafd26ca89ebd4f50","b612fc66f534bd447bb1d5d52a29217a80780e1d57633875c9d8a333503f378a","0e8aef93d79b000deb6ec336b5645c87de167168e184e84521886f9ecc69a4b5","512a95a23e912bd68cdd9c4189962ab1b9b4dd6ea2f410e3fb1bf6e3e1e051bf","d90b9f1520366d713a73bd30c5a9eb0040d0fb6076aff370796bc776fd705943","bef86adb77316505c6b471da1d9b8c9e428867c2566270e8894d4d773a1c4dc2","a7d72cf676f5117df919b8a73da2cfa20cf9939fdb263fd496fb77f95c35335d","a3e7d932dc9c09daa99141a8e4800fc6c58c625af0d4bbb017773dc36da75426","43e96a3d5d1411ab40ba2f61d6a3192e58177bcf3b133a80ad2a16591611726d","219e5e67ea4630410167444a715ecc172d9462b7910cd066eca18f6ed27d907b","ca921bf56756cb6fe957f6af693a35251b134fb932dc13f3dfff0bb7106f80b4","fee92c97f1aa59eb7098a0cc34ff4df7e6b11bae71526aca84359a2575f313d8","acfbb7b38e876b43cb07d0c8bd1a2e84dd641d9d2b67d772e8977337398bfff5","2ab6d334bcbf2aff3acfc4fd8c73ecd82b981d3c3aa47b3f3b89281772286904","d07cbc787a997d83f7bde3877fec5fb5b12ce8c1b7047eb792996ed9726b4dde","6ac6715916fa75a1f7ebdfeacac09513b4d904b667d827b7535e84ff59679aff","268c6788d4791a66cc5c153c41d2313d6f3c0d3e35edce3ce05e21c31f972ae0","b83cb14474fa60c5f3ec660146b97d122f0735627f80d82dd03e8caa39b4388c","f374cb24e93e7798c4d9e83ff872fa52d2cdb36306392b840a6ddf46cb925cb6","6ad71551fba5dbf440780090c82f5e0a7b64f602e0f0f678317659f12131f253","b73cbf0a72c8800cf8f96a9acfe94f3ad32ca71342a8908b8ae484d61113f647","bae6dd176832f6423966647382c0d7ba9e63f8c167522f09a982f086cd4e8b23","20865ac316b8893c1a0cc383ccfc1801443fbcc2a7255be166cf90d03fac88c9","c9958eb32126a3843deedda8c22fb97024aa5d6dd588b90af2d7f2bfac540f23","461d0ad8ae5f2ff981778af912ba71b37a8426a33301daa00f21c6ccb27f8156","e927c2c13c4eaf0a7f17e6022eee8519eb29ef42c4c13a31e81a611ab8c95577","fcafff163ca5e66d3b87126e756e1b6dfa8c526aa9cd2a2b0a9da837d81bbd72","70246ad95ad8a22bdfe806cb5d383a26c0c6e58e7207ab9c431f1cb175aca657","f00f3aa5d64ff46e600648b55a79dcd1333458f7a10da2ed594d9f0a44b76d0b","772d8d5eb158b6c92412c03228bd9902ccb1457d7a705b8129814a5d1a6308fc","45490817629431853543adcb91c0673c25af52a456479588b6486daba34f68bb","802e797bcab5663b2c9f63f51bdf67eff7c41bc64c0fd65e6da3e7941359e2f7","8b4327413e5af38cd8cb97c59f48c3c866015d5d642f28518e3a891c469f240e","cd767eea328a0ed87d2e028147a022f209fadf420199254253a6cffe8e234df8","4b20fcf10a5413680e39f5666464859fc56b1003e7dfe2405ced82371ebd49b6","f0f3f57e29b40e9cb0c4b155a96de2f61e51700d2c335dd547ef3c85e668c6a8","f7d628893c9fa52ba3ab01bcb5e79191636c4331ee5667ecc6373cbccff8ae12","a169ba2d40cc94a500759aa86eded1f63395252bb7508a8b67dc681ff413ac8d","6a76daf108400ca1333e325772f24f40ebdde2120ef68f8c87d7a1adf0257541","7fa321c806b965bac02883573db0b1466e5edd14c479d156079eb08f1086f1d1","d663134457d8d669ae0df34eabd57028bddc04fc444c4bc04bc5215afc91e1f4","a52674bc98da7979607e0f44d4c015c59c1b1d264c83fc50ec79ff2cfea06723","89b3d1b267c4380fbb8e5cadccbb284843b90066f16a2f6e8a5b3a030bb7dcfb","8514c62ce38e58457d967e9e73f128eedc1378115f712b9eef7127f7c88f82ae","01698747a0d3c3ebf261865f9f912658aff9b726f7ebda11e19222725cfb0965","9b06ce81ad598c9c6b011cb66182fa66575ad6bd1f8f655830a6a0223a197ab7","d9d32f94056181c31f553b32ce41d0ef75004912e27450738d57efcd2409c324","752513f35f6cff294ffe02d6027c41373adf7bfa35e593dbfd53d95c203635ee","6c800b281b9e89e69165fd11536195488de3ff53004e55905e6c0059a2d8591e","7d4254b4c6c67a29d5e7f65e67d72540480ac2cfb041ca484847f5ae70480b62","1ee834bfd4a06aafdc46f5542d089565a26e031ebf854ef5b08cb75ec42d68fb","8c901126d73f09ecdea4785e9a187d1ac4e793e07da308009db04a7283ec2f37","db97922b767bd2675fdfa71e08b49c38b7d2c847a1cc4a7274cb77be23b026f1","e2f64b40fe8d3a77d5462dc4a75ead61c76bf464208b506c1465dac4e195f710","94fe3281392e1015b22f39535878610b4fa6f1388dc8d78746be3bc4e4bb8950","2652448ac55a2010a1f71dd141f828b682298d39728f9871e1cdf8696ef443fd","e3a9871a4a736910b0b77bc063d5f9c272578b3743269ebe93b275b0c52a9815","120599fd965257b1f4d0ff794bc696162832d9d8467224f4665f713a3119078b","5433f33b0a20300cca35d2f229a7fc20b0e8477c44be2affeb21cb464af60c76","db036c56f79186da50af66511d37d9fe77fa6793381927292d17f81f787bb195","bd4131091b773973ca5d2326c60b789ab1f5e02d8843b3587effe6e1ea7c9d86","c7f6485931085bf010fbaf46880a9b9ec1a285ad9dc8c695a9e936f5a48f34b4","73a39452c4b498728757c4a7f756a3b9bed1f8a02c278cb803665cc7897e6930","6ac6715916fa75a1f7ebdfeacac09513b4d904b667d827b7535e84ff59679aff","0427df5c06fafc5fe126d14b9becd24160a288deff40e838bfbd92a35f8d0d00","191a32cecf67da01119a7bce3132228fa9388e2bbfc5c1662542e71f9f20134a","49c346823ba6d4b12278c12c977fb3a31c06b9ca719015978cb145eb86da1c61","bfac6e50eaa7e73bb66b7e052c38fdc8ccfc8dbde2777648642af33cf349f7f1","92f7c1a4da7fbfd67a2228d1687d5c2e1faa0ba865a94d3550a3941d7527a45d","f53b120213a9289d9a26f5af90c4c686dd71d91487a0aa5451a38366c70dc64b","83fe880c090afe485a5c02262c0b7cdd76a299a50c48d9bde02be8e908fb4ae6","0a372c2d12a259da78e21b25974d2878502f14d89c6d16b97bd9c5017ab1bc12","57d67b72e06059adc5e9454de26bbfe567d412b962a501d263c75c2db430f40e","6511e4503cf74c469c60aafd6589e4d14d5eb0a25f9bf043dcbecdf65f261972","885e0c913a60577fa4827e5412055011a7532124fd9e054febb6808b0d7fec3d","6e2261cd9836b2c25eecb13940d92c024ebed7f8efe23c4b084145cd3a13b8a6","a67b87d0281c97dfc1197ef28dfe397fc2c865ccd41f7e32b53f647184cc7307","771ffb773f1ddd562492a6b9aaca648192ac3f056f0e1d997678ff97dbb6bf9b","232f70c0cf2b432f3a6e56a8dc3417103eb162292a9fd376d51a3a9ea5fbbf6f","d7ed1f4bd5589cb08f3af26839a0dc2472e4d1a3c380e167f0186b1f5e7c27d3","cfb5f0ab72180f4e0b9ed1534847a63d5394b9a8ee685ae149d25fd53f1aec66","8a0e762ceb20c7e72504feef83d709468a70af4abccb304f32d6b9bac1129b2c","26f83053ec70baea288b5281deb2cf11f6f9ea79bc654db1a6602b0b7ec085ff","9252d498a77517aab5d8d4b5eb9d71e4b225bbc7123df9713e08181de63180f6","3cdf332b0b14704549666762fd8fda31eb994376f305eaffe427cf076b95656d","35e6379c3f7cb27b111ad4c1aa69538fd8e788ab737b8ff7596a1b40e96f4f90","1fffe726740f9787f15b532e1dc870af3cd964dbe29e191e76121aa3dd8693f2",{"version":"a3128a84a9568762a2996df79717d92154d18dd894681fc0ab3a098fa7f8ee3b","affectsGlobalScope":true},"4c12b845a35c0f753c1cf29d7d042d4da0206b1ba040a9bfff193a086bcdc248","2896c2e673a5d3bd9b4246811f79486a073cbb03950c3d252fba10003c57411a","616775f16134fa9d01fc677ad3f76e68c051a056c22ab552c64cc281a9686790","65c24a8baa2cca1de069a0ba9fba82a173690f52d7e2d0f1f7542d59d5eb4db0","f9fe6af238339a0e5f7563acee3178f51db37f32a2e7c09f85273098cee7ec49","51bf55bb6eb80f11b3aa59fb0a9571565a7ea304a19381f6da5630f4b2e206c4","77e71242e71ebf8528c5802993697878f0533db8f2299b4d36aa015bae08a79c","98a787be42bd92f8c2a37d7df5f13e5992da0d967fab794adbb7ee18370f9849","5c96bad5f78466785cdad664c056e9e2802d5482ca5f862ed19ba34ffbb7b3a4","b7fff2d004c5879cae335db8f954eb1d61242d9f2d28515e67902032723caeab","5f3dc10ae646f375776b4e028d2bed039a93eebbba105694d8b910feebbe8b9c","bb0cd7862b72f5eba39909c9889d566e198fcaddf7207c16737d0c2246112678","4545c1a1ceca170d5d83452dd7c4994644c35cf676a671412601689d9a62da35","320f4091e33548b554d2214ce5fc31c96631b513dffa806e2e3a60766c8c49d9","a2d648d333cf67b9aeac5d81a1a379d563a8ffa91ddd61c6179f68de724260ff","d90d5f524de38889d1e1dbc2aeef00060d779f8688c02766ddb9ca195e4a713d","a3f41ed1b4f2fc3049394b945a68ae4fdefd49fa1739c32f149d32c0545d67f5","bad68fd0401eb90fe7da408565c8aee9c7a7021c2577aec92fa1382e8876071a","47699512e6d8bebf7be488182427189f999affe3addc1c87c882d36b7f2d0b0e","fec01479923e169fb52bd4f668dbeef1d7a7ea6e6d491e15617b46f2cacfa37d","8a8fb3097ba52f0ae6530ec6ab34e43e316506eb1d9aa29420a4b1e92a81442d","44e09c831fefb6fe59b8e65ad8f68a7ecc0e708d152cfcbe7ba6d6080c31c61e","1c0a98de1323051010ce5b958ad47bc1c007f7921973123c999300e2b7b0ecc0","4655709c9cb3fd6db2b866cab7c418c40ed9533ce8ea4b66b5f17ec2feea46a9","87affad8e2243635d3a191fa72ef896842748d812e973b7510a55c6200b3c2a4","ad036a85efcd9e5b4f7dd5c1a7362c8478f9a3b6c3554654ca24a29aa850a9c5","fedebeae32c5cdd1a85b4e0504a01996e4a8adf3dfa72876920d3dd6e42978e7","2c3a42dbc1d6ef817733691513b6421c8d1aa607afe3601904e3d31f1f72324a","cdf21eee8007e339b1b9945abf4a7b44930b1d695cc528459e68a3adc39a622e","330896c1a2b9693edd617be24fbf9e5895d6e18c7955d6c08f028f272b37314d","1d9c0a9a6df4e8f29dc84c25c5aa0bb1da5456ebede7a03e03df08bb8b27bae6","84380af21da938a567c65ef95aefb5354f676368ee1a1cbb4cae81604a4c7d17","1af3e1f2a5d1332e136f8b0b95c0e6c0a02aaabd5092b36b64f3042a03debf28","30d8da250766efa99490fc02801047c2c6d72dd0da1bba6581c7e80d1d8842a4","03566202f5553bd2d9de22dfab0c61aa163cabb64f0223c08431fb3fc8f70280","9a01f12466488eccd8d9eafc8fecb9926c175a4bf4a8f73a07c3bcf8b3363282","b80f624162276f24a4ec78b8e86fbee80ca255938e12f8b58e7a8f1a6937120b","1de80059b8078ea5749941c9f863aa970b4735bdbb003be4925c853a8b6b4450","1d079c37fa53e3c21ed3fa214a27507bda9991f2a41458705b19ed8c2b61173d","5bf5c7a44e779790d1eb54c234b668b15e34affa95e78eada73e5757f61ed76a","5835a6e0d7cd2738e56b671af0e561e7c1b4fb77751383672f4b009f4e161d70","5c634644d45a1b6bc7b05e71e05e52ec04f3d73d9ac85d5927f647a5f965181a","4b7f74b772140395e7af67c4841be1ab867c11b3b82a51b1aeb692822b76c872","27be6622e2922a1b412eb057faa854831b95db9db5035c3f6d4b677b902ab3b7","a68d4b3182e8d776cdede7ac9630c209a7bfbb59191f99a52479151816ef9f9e","39644b343e4e3d748344af8182111e3bbc594930fff0170256567e13bbdbebb0","ed7fd5160b47b0de3b1571c5c5578e8e7e3314e33ae0b8ea85a895774ee64749","63a7595a5015e65262557f883463f934904959da563b4f788306f699411e9bac","9e40365afca304124bc53eb03412643abf074a1580e4dc279a7a16000d11f985","4ba137d6553965703b6b55fd2000b4e07ba365f8caeb0359162ad7247f9707a6",{"version":"ceec3c81b2d81f5e3b855d9367c1d4c664ab5046dff8fd56552df015b7ccbe8f","affectsGlobalScope":true},{"version":"8fac4a15690b27612d8474fb2fc7cc00388df52d169791b78d1a3645d60b4c8b","affectsGlobalScope":true},"064ac1c2ac4b2867c2ceaa74bbdce0cb6a4c16e7c31a6497097159c18f74aa7c","3dc14e1ab45e497e5d5e4295271d54ff689aeae00b4277979fdd10fa563540ae","1d63055b690a582006435ddd3aa9c03aac16a696fac77ce2ed808f3e5a06efab","b789bf89eb19c777ed1e956dbad0925ca795701552d22e68fd130a032008b9f9","436f05ed55f050e50115198def9cdf1026dc4990c5fcb522622f947172bd455a","a52c5f687d788d283ea1fa38bdc2fabe0eac863135a7dfe175ec52b309f61892",{"version":"6d91cb3f561db7174661b2b47ba54e5b28852af706c4b13e5a599379705c0e8c","signature":"415bbf6f03e0600b44c208614be01299ccd36f9d21eba3103cf1d2e61a2200e1"},"9145198e7706bb76a0a05c0e6faf3eb7d5462ae8ad497de27ad70c68183f17fd","427b51589d90e5449d9bb4870b40d7bffef8321e23ebddc32a9ca9245030a1e4",{"version":"1d59c536759b9e71c7f08dc5fe6f91289d4dee82fe15b43f71603954b28d13bc","signature":"d5848932379e48610691d30028763cf06838ba3624e224fa1454d8c9fd25e45a"},{"version":"9a450d08a7f4d62279b0bd22a349ce06ae7752a11b438e991467aeae813057c4","signature":"8622b26fa8afb9bd668ae328f6e5e7c1d1e907f3e336212da579f58a13a089de"},{"version":"6f950bc389f4cef928b32920f9d6a4c91e7041b548986870cbbec3fbc86c8ecb","signature":"10917cac6f395e31b41652771a4371d2d91ebc5fa1080cf0559f612b29ee2d30"},{"version":"c408731f0ec58f934ed2ebc35474c26d5c848d686792acc098e209a531aa75af","signature":"4a0d2c2407f6009eb908e331e223f686bd257dd521f0ac8fffa2ee21dc4f7f37"},{"version":"4bc28fbb11a4da43eb124792f53540f45f2d6495eb4e99b7b4dacda11ad9419e","signature":"d4534ecd6810cd365af3e3a948188a78d4dd52aea459e7e6bb81c595f192280b"},{"version":"2d8710ce1ae5df99f72b5486f053e2b1b361c48e05191a1dc49929b1dd5a1744","signature":"3c1d1c1152617c9be0597ec199b75978355223c8f7d6375927bb9d37385f29c9"},{"version":"04c7d55bcf8823680091d48488d2462e0411f176124efe43ec357dbd606da74d","signature":"13c94e298d5e3e8f12978368eadf563dd017af5f5ad5ea6f72ed3f2ffb48c0b9"},{"version":"07840fa75f5ac8612220433c5eadd4b10a23dfc8f8bfaec1bbaeaddd025001fd","signature":"e1f643586e21f813afef893e46fe05b6c41a69f686f38d2c8997672dc2da3ff6"},{"version":"1624accbe7a7e5ce0e9aecf84158ebe115312675f6c9ce5f60dac2a3689a5bb3","signature":"3311d11de3086d30de05fc2be112cb41688938a7ab4868649f6446d9a19a4d1c"},"61ab87dc5d82fa251f64aa0e3f4ea18b0372fb7db28bca92482ae129554fcf1a",{"version":"66e565cd6a04c2bd929bc59cf1f116b96b4dd0df14e72a10b0d0ca1c5c7df104","signature":"a856b408a4d8cda31218908093d58cb8741441dca2633157902d62b940b4d955"},{"version":"dc37042efc1440c320d5c0374f4d3fee3a451ba38d98c07a4da69cea8799d434","signature":"1056701ea08689bda75029ea2631ef8440db4290f0781787dfd4e560f881870f"},{"version":"7df4fb5964840a63bab17eb909f0e4082a1121028128a8ebefc1f0a288103de7","signature":"bc14d58ad47fa0e29ed9f4a6f6e2371e8a2b8b85398681c5525c41a87bc32e03"},"dbf1d481dbd0b78c19809252c31968611129ae400c76cfc4c5f020146577080a","cc72369762a41925df6c464631f452a440024a819c74fd9b01c6bfc7316bf777",{"version":"2f0ca6fbc1d2307b0ea5bb33358a25f1a54e016febc663d3e7b08e8cbd38295e","signature":"21406e41466ea5bc3d9d9b994a84e8d475e82a6afe7afa1c5bc4073202f402dc"},{"version":"e6c1e7a49e72db0e071d697e064b5735f55aea2f0bde080f723d8c770c5a8bf3","signature":"938c9e102b4ea707ec1cd7de8a734956163f59e431502640e76205fda1bfca40"},{"version":"8e1981180c7cfd03eaa475ac71f849d4caa6b7ba54ba3b9419d842af2bfd729e","signature":"bdbf639097d05f64bc5c02db09173e0c7d64cc58d2d516668b083157e52b8032"},{"version":"bb317bc8af86c3478f1d9755e4fb89b2e720df0cb1ae343b309bac765d1880f1","signature":"9c5c5ba1e2354c385944f969e5ab23f3564338c621f4e52f287588aaca0c9f64"},{"version":"7b6097c6799486beea7d2a9343ce7b3053456f2f48ee73e6ab0bd0a5b41fc083","signature":"5b697e47b5e6ee6f1cb1c9862e856311fec79700dab2b13c87d1cecf4035c823"},{"version":"1f258368a9756b53b8b2d50e9e883fd8e773697cb96f88bb5063adde3354f0b1","signature":"93aec86ef54dd800046f925fbc4b718887daf133fa667d7e22872af69ca32a78"},{"version":"288ca4ededae3fb4abbed4f33b4fcd3749eef1f79e412cfae68716cace19752d","signature":"5e034c08d0c7973f76ca376818d5e380ccc022fdb601fa5955c6a92c2c9ad1af"},{"version":"af927b88a2d506dca484a39e67f50a492cdb23d7238ecbf7e7cf143e6a967676","signature":"ca422a5982c0bcbaec11018e7fca4f513c04507a03607e5d273a1aeaaf26bbc5"},{"version":"ec3afb4b8c69e4581cb1f8ba2cfe626be3c105efc4a4479becb815298953accf","signature":"f4513d00c053a89bc21a8f6e624884d45996f4b02c40337993b866b606198c7f"},"e5fd6e6b32089a499bafbc66ddae09d7c3c8d7e9c4148d2fd0528ed1fe0c622a",{"version":"a35b32c49e7faba782cdbaa3fc45e27efafc2cb026c8077ef11b0e38617d4db1","signature":"d47067ed65aeb6d1d1144ea58c81cc62c6ac067d0b73e45fc4753814c5e5c201"}],"options":{"composite":false,"declarationMap":false,"emitDeclarationOnly":false,"esModuleInterop":true,"jsx":1,"module":99,"skipLibCheck":true,"strict":true,"target":1,"tsBuildInfoFile":"./.tsbuildinfo"},"fileIdsList":[[72,116,458],[59,72,116,458],[72,116,426,458],[72,116],[59,72,116,435],[59,72,116,426,458,468],[59,72,116,426,456,458],[72,116,426],[72,116,129,138,455],[72,116,452,453],[72,113,116],[72,115,116],[72,116,121,151],[72,116,117,122,128,129,136,148,159],[72,116,117,118,128,136],[72,116,119,160],[72,116,120,121,129,137],[72,116,121,148,156],[72,116,122,124,128,136],[72,115,116,123],[72,116,124,125],[72,116,126,128],[72,115,116,128],[72,116,128,129,130,148,159],[72,116,128,129,130,143,148,151],[72,111,116],[72,111,116,124,128,131,136,148,159],[72,116,128,129,131,132,136,148,156,159],[72,116,131,133,148,156,159],[72,116,128,134],[72,116,135,159],[72,116,124,128,136,148],[72,116,137],[72,116,138],[72,115,116,139],[72,113,114,115,116,117,118,119,120,121,122,123,124,125,126,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165],[72,116,141],[72,116,142],[72,116,128,143,144],[72,116,143,145,160,162],[72,116,128,148,149,151],[72,116,150,151],[72,116,148,149],[72,116,151],[72,116,152],[72,113,116,148,153],[72,116,128,154,155],[72,116,154,155],[72,116,121,136,148,156],[72,116,157],[68,69,70,71,72,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165],[116],[72,116,136,158],[72,116,131,142,159],[72,116,121,160],[72,116,148,161],[72,116,135,162],[72,116,163],[72,116,128,130,139,148,151,159,161,162,164],[72,116,148,165],[59,63,72,116,168,397,444],[59,63,72,116,167,397,444],[57,58,72,116],[59,72,116],[65,72,116],[72,116,400],[72,116,402,403,404,405],[72,116,407],[72,116,172,186,187,188,190,394],[72,116,172,211,213,215,216,219,394,396],[72,116,172,176,178,179,180,181,182,383,394,396],[72,116,394],[72,116,187,282,364,373,390],[72,116,172],[72,116,169,390],[72,116,223],[72,116,222,394,396],[72,116,131,264,282,311,450],[72,116,131,275,292,373,389],[72,116,131,325],[72,116,377],[72,116,376,377,378],[72,116,376],[67,72,116,131,169,172,176,179,183,184,185,187,191,199,200,318,353,374,394,397],[72,116,172,189,207,211,212,217,218,394,450],[72,116,189,450],[72,116,200,207,262,394,450],[72,116,450],[72,116,172,189,190,450],[72,116,214,450],[72,116,183,375,382],[72,116,142,288,390],[72,116,288,390],[59,72,116,288],[59,72,116,283],[72,116,279,323,390,433],[72,116,370,427,428,429,430,432],[72,116,369],[72,116,369,370],[72,116,180,319,320,321],[72,116,319,322,323],[72,116,431],[72,116,319,323],[59,72,116,173,421],[59,72,116,159],[59,72,116,189,252],[59,72,116,189],[72,116,250,254],[59,72,116,251,399],[59,63,72,116,131,166,167,168,397,442,443],[72,116,131],[72,116,131,176,231,319,329,343,364,379,380,394,395,450],[72,116,199,381],[72,116,397],[72,116,171],[59,72,116,264,278,291,301,303,389],[72,116,142,264,278,300,301,302,389,449],[72,116,294,295,296,297,298,299],[72,116,296],[72,116,300],[59,72,116,251,288,399],[59,72,116,288,398,399],[59,72,116,288,399],[72,116,343,386],[72,116,386],[72,116,131,395,399],[72,116,287],[72,115,116,286],[72,116,201,232,271,272,274,275,276,277,316,319,389,392,395],[72,116,201,272,319,323],[72,116,275,389],[59,72,116,275,284,285,287,289,290,291,292,293,304,305,306,307,308,309,310,389,390,450],[72,116,269],[72,116,131,142,201,202,231,246,276,316,317,318,323,343,364,385,394,395,396,397,450],[72,116,389],[72,115,116,187,272,273,276,318,385,387,388,395],[72,116,275],[72,115,116,231,236,265,266,267,268,269,270,271,274,389,390],[72,116,131,236,237,265,395,396],[72,116,187,272,318,319,343,385,389,395],[72,116,131,394,396],[72,116,131,148,392,395,396],[72,116,131,142,159,169,176,189,201,202,204,232,233,238,243,246,271,276,319,329,331,334,336,339,340,341,342,364,384,385,390,392,394,395,396],[72,116,131,148],[72,116,172,173,174,184,384,392,393,397,399,450],[72,116,131,148,159,219,221,223,224,225,226,450],[72,116,142,159,169,211,221,242,243,244,245,271,319,334,343,349,352,354,364,385,390,392],[72,116,183,184,199,318,353,385,394],[72,116,131,159,173,176,271,347,392,394],[72,116,263],[72,116,131,350,351,361],[72,116,392,394],[72,116,272,273],[72,116,271,276,384,399],[72,116,131,142,205,211,245,334,343,349,352,356,392],[72,116,131,183,199,211,357],[72,116,172,204,359,384,394],[72,116,131,159,394],[72,116,131,189,203,204,205,216,227,358,360,384,394],[67,72,116,201,276,363,397,399],[72,116,131,142,159,176,183,191,199,202,232,238,242,243,244,245,246,271,319,331,343,344,346,348,364,384,385,390,391,392,399],[72,116,131,148,183,349,355,361,392],[72,116,194,195,196,197,198],[72,116,233,335],[72,116,337],[72,116,335],[72,116,337,338],[72,116,131,176,231,395],[72,116,131,142,171,173,201,232,246,276,327,328,364,392,396,397,399],[72,116,131,142,159,175,180,271,328,391,395],[72,116,265],[72,116,266],[72,116,267],[72,116,390],[72,116,220,229],[72,116,131,176,220,232],[72,116,228,229],[72,116,230],[72,116,220,221],[72,116,220,247],[72,116,220],[72,116,233,333,391],[72,116,332],[72,116,221,390,391],[72,116,330,391],[72,116,221,390],[72,116,316],[72,116,232,261,264,271,272,278,281,312,314,315,319,363,392,395],[72,116,255,258,259,260,279,280,323],[59,72,116,288,313],[72,116,372],[72,116,187,237,275,276,287,292,319,363,365,366,367,368,370,371,374,384,389,394],[72,116,323],[72,116,327],[72,116,131,232,248,324,326,329,363,392,397,399],[72,116,255,256,257,258,259,260,279,280,323,398],[67,72,116,131,142,159,202,220,221,246,271,276,361,362,364,384,385,394,395,397],[72,116,237,239,242,385],[72,116,131,233,394],[72,116,236,275],[72,116,235],[72,116,237,238],[72,116,234,236,394],[72,116,131,175,237,239,240,241,394,395],[59,72,116,319,320,322],[72,116,206],[59,72,116,173],[59,72,116,390],[59,67,72,116,246,276,397,399],[72,116,173,421,422],[59,72,116,254],[59,72,116,142,159,171,218,249,251,253,399],[72,116,189,390,395],[72,116,345,390],[59,72,116,129,131,142,171,207,213,254,397,398],[59,72,116,167,168,397,444],[59,60,61,62,63,72,116],[72,116,121],[72,116,208,209,210],[72,116,208],[59,63,72,116,131,133,142,166,167,168,169,171,202,300,356,396,399,444],[72,116,409],[72,116,411],[72,116,413],[72,116,415],[72,116,417,418,419],[72,116,423],[64,66,72,116,401,406,408,410,412,414,416,420,424,426,435,436,438,448,449,450,451],[72,116,425],[72,116,434],[72,116,251],[72,116,437],[72,115,116,237,239,240,242,291,390,439,440,441,444,445,446,447],[72,116,166],[72,116,148,166],[72,81,85,116,159],[72,81,116,148,159],[72,116,148],[72,76,116],[72,78,81,116,159],[72,116,136,156],[72,76,116,166],[72,78,81,116,136,159],[72,73,74,75,77,80,116,128,148,159],[72,81,89,116],[72,74,79,116],[72,81,105,106,116],[72,74,77,81,116,151,159,166],[72,81,116],[72,73,116],[72,76,77,78,79,80,81,82,83,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,106,107,108,109,110,116],[72,81,98,101,116,124],[72,81,89,90,91,116],[72,79,81,90,92,116],[72,80,116],[72,74,76,81,116],[72,81,85,90,92,116],[72,85,116],[72,79,81,84,116,159],[72,74,78,81,89,116],[72,81,98,116],[72,76,81,105,116,151,164,166],[72,116,401],[72,116,458,459,465,469],[72,116,452,456],[72,116,458,460,465,469],[72,116,458,461,465,469],[72,116,462,463,464,465,469,471],[72,116,462,463,464,465,466,469,472,473],[72,116,465,467,469],[72,116,452,456,458,465,469,470],[72,116,452,455,456,465,469,483],[72,116,465,469,471],[59],[59,456],[59,401],[59,452,456],[59,452]],"referencedMap":[[459,1],[460,2],[461,2],[462,1],[463,3],[464,1],[465,1],[466,4],[467,5],[469,6],[470,7],[471,1],[472,1],[468,8],[473,4],[456,9],[454,10],[213,4],[113,11],[114,11],[115,12],[116,13],[117,14],[118,15],[70,4],[119,16],[120,17],[121,18],[122,19],[123,20],[124,21],[125,21],[127,4],[126,22],[128,23],[129,24],[130,25],[112,26],[131,27],[132,28],[133,29],[134,30],[135,31],[136,32],[137,33],[138,34],[139,35],[140,36],[141,37],[142,38],[143,39],[144,39],[145,40],[146,4],[147,4],[148,41],[150,42],[149,43],[151,44],[152,45],[153,46],[154,47],[155,48],[156,49],[157,50],[68,4],[166,51],[72,52],[69,4],[71,4],[158,53],[159,54],[160,55],[161,56],[162,57],[163,58],[164,59],[165,60],[167,61],[168,62],[57,4],[59,63],[313,64],[288,64],[58,4],[455,4],[458,64],[483,4],[66,65],[401,66],[406,67],[408,68],[189,69],[217,70],[384,71],[212,72],[200,4],[181,4],[187,4],[374,73],[241,74],[188,4],[353,75],[222,76],[223,77],[312,78],[371,79],[326,80],[378,81],[379,82],[377,83],[376,4],[375,84],[219,85],[190,86],[262,4],[263,87],[185,4],[201,88],[191,89],[246,88],[243,88],[174,88],[215,90],[214,4],[383,91],[393,4],[180,4],[289,92],[290,93],[283,64],[429,4],[292,4],[293,94],[284,95],[305,64],[434,96],[433,97],[428,4],[370,98],[369,4],[427,99],[285,64],[322,100],[320,101],[430,4],[432,102],[431,4],[321,103],[422,104],[425,105],[253,106],[252,107],[251,108],[437,64],[250,109],[235,4],[440,4],[443,4],[442,64],[444,110],[170,4],[380,111],[381,112],[382,113],[203,4],[179,114],[169,4],[172,115],[304,116],[303,117],[294,4],[295,4],[302,4],[297,4],[300,118],[296,4],[298,119],[301,120],[299,119],[186,4],[177,4],[178,88],[225,4],[310,94],[328,94],[400,121],[409,122],[413,123],[387,124],[386,4],[238,4],[445,125],[396,126],[286,127],[287,128],[278,129],[268,4],[309,130],[269,131],[311,132],[307,133],[306,4],[308,4],[319,134],[388,135],[389,136],[270,137],[275,138],[266,139],[366,140],[395,141],[245,142],[343,143],[175,144],[394,145],[171,72],[226,4],[227,146],[355,147],[224,4],[354,148],[67,4],[348,149],[202,4],[264,150],[344,4],[176,4],[228,4],[352,151],[184,4],[233,152],[274,153],[385,154],[273,4],[351,4],[357,155],[358,156],[182,4],[360,157],[362,158],[361,159],[205,4],[350,144],[364,160],[349,161],[356,162],[193,4],[196,4],[194,4],[198,4],[195,4],[197,4],[199,163],[192,4],[336,164],[335,4],[341,165],[337,166],[340,167],[339,167],[342,165],[338,166],[232,168],[329,169],[392,170],[447,4],[417,171],[419,172],[272,4],[418,173],[390,135],[446,174],[291,135],[183,4],[271,175],[229,176],[230,177],[231,178],[261,179],[365,179],[247,179],[330,180],[248,180],[221,181],[220,4],[334,182],[333,183],[332,184],[331,185],[391,186],[282,187],[316,188],[281,189],[314,190],[315,190],[373,191],[372,192],[368,193],[325,194],[327,195],[324,196],[363,197],[318,4],[405,4],[317,198],[367,4],[234,199],[267,111],[265,200],[236,201],[239,202],[441,4],[237,203],[240,203],[403,4],[402,4],[404,4],[439,4],[242,204],[280,64],[65,4],[323,205],[218,4],[207,206],[276,4],[411,64],[421,207],[260,64],[415,94],[259,208],[398,209],[258,207],[173,4],[423,210],[256,64],[257,64],[249,4],[206,4],[255,211],[254,212],[204,213],[277,38],[244,38],[359,4],[346,214],[345,4],[407,4],[279,64],[399,215],[60,64],[63,216],[64,217],[61,64],[62,4],[216,218],[211,219],[210,4],[209,220],[208,4],[397,221],[410,222],[412,223],[414,224],[416,225],[420,226],[453,227],[424,227],[452,228],[426,229],[435,230],[436,231],[438,232],[448,233],[451,114],[450,4],[449,234],[347,235],[11,4],[12,4],[14,4],[13,4],[2,4],[15,4],[16,4],[17,4],[18,4],[19,4],[20,4],[21,4],[22,4],[3,4],[4,4],[26,4],[23,4],[24,4],[25,4],[27,4],[28,4],[29,4],[5,4],[30,4],[31,4],[32,4],[33,4],[6,4],[37,4],[34,4],[35,4],[36,4],[38,4],[7,4],[39,4],[44,4],[45,4],[40,4],[41,4],[42,4],[43,4],[8,4],[49,4],[46,4],[47,4],[48,4],[50,4],[9,4],[51,4],[52,4],[53,4],[54,4],[55,4],[1,4],[10,4],[56,4],[89,236],[100,237],[87,236],[101,238],[110,239],[79,240],[78,241],[109,234],[104,242],[108,243],[81,244],[97,245],[80,246],[107,247],[76,248],[77,242],[82,249],[83,4],[88,240],[86,249],[74,250],[111,251],[102,252],[92,253],[91,249],[93,254],[95,255],[90,256],[94,257],[105,234],[84,258],[85,259],[96,260],[75,238],[99,261],[98,249],[103,4],[73,4],[106,262],[474,263],[475,264],[457,265],[476,266],[477,267],[478,268],[479,269],[480,270],[481,271],[484,272],[482,273]],"exportedModulesMap":[[459,274],[460,274],[461,274],[462,274],[463,274],[464,274],[465,274],[466,274],[467,274],[469,274],[470,275],[471,274],[472,1],[468,8],[473,4],[454,10],[213,4],[113,11],[114,11],[115,12],[116,13],[117,14],[118,15],[70,4],[119,16],[120,17],[121,18],[122,19],[123,20],[124,21],[125,21],[127,4],[126,22],[128,23],[129,24],[130,25],[112,26],[131,27],[132,28],[133,29],[134,30],[135,31],[136,32],[137,33],[138,34],[139,35],[140,36],[141,37],[142,38],[143,39],[144,39],[145,40],[146,4],[147,4],[148,41],[150,42],[149,43],[151,44],[152,45],[153,46],[154,47],[155,48],[156,49],[157,50],[68,4],[166,51],[72,52],[69,4],[71,4],[158,53],[159,54],[160,55],[161,56],[162,57],[163,58],[164,59],[165,60],[167,61],[168,62],[57,4],[59,63],[313,64],[288,64],[58,4],[455,4],[458,64],[483,4],[66,65],[401,66],[406,67],[408,68],[189,69],[217,70],[384,71],[212,72],[200,4],[181,4],[187,4],[374,73],[241,74],[188,4],[353,75],[222,76],[223,77],[312,78],[371,79],[326,80],[378,81],[379,82],[377,83],[376,4],[375,84],[219,85],[190,86],[262,4],[263,87],[185,4],[201,88],[191,89],[246,88],[243,88],[174,88],[215,90],[214,4],[383,91],[393,4],[180,4],[289,92],[290,93],[283,64],[429,4],[292,4],[293,94],[284,95],[305,64],[434,96],[433,97],[428,4],[370,98],[369,4],[427,99],[285,64],[322,100],[320,101],[430,4],[432,102],[431,4],[321,103],[422,104],[425,105],[253,106],[252,107],[251,108],[437,64],[250,109],[235,4],[440,4],[443,4],[442,64],[444,110],[170,4],[380,111],[381,112],[382,113],[203,4],[179,114],[169,4],[172,115],[304,116],[303,117],[294,4],[295,4],[302,4],[297,4],[300,118],[296,4],[298,119],[301,120],[299,119],[186,4],[177,4],[178,88],[225,4],[310,94],[328,94],[400,121],[409,122],[413,123],[387,124],[386,4],[238,4],[445,125],[396,126],[286,127],[287,128],[278,129],[268,4],[309,130],[269,131],[311,132],[307,133],[306,4],[308,4],[319,134],[388,135],[389,136],[270,137],[275,138],[266,139],[366,140],[395,141],[245,142],[343,143],[175,144],[394,145],[171,72],[226,4],[227,146],[355,147],[224,4],[354,148],[67,4],[348,149],[202,4],[264,150],[344,4],[176,4],[228,4],[352,151],[184,4],[233,152],[274,153],[385,154],[273,4],[351,4],[357,155],[358,156],[182,4],[360,157],[362,158],[361,159],[205,4],[350,144],[364,160],[349,161],[356,162],[193,4],[196,4],[194,4],[198,4],[195,4],[197,4],[199,163],[192,4],[336,164],[335,4],[341,165],[337,166],[340,167],[339,167],[342,165],[338,166],[232,168],[329,169],[392,170],[447,4],[417,171],[419,172],[272,4],[418,173],[390,135],[446,174],[291,135],[183,4],[271,175],[229,176],[230,177],[231,178],[261,179],[365,179],[247,179],[330,180],[248,180],[221,181],[220,4],[334,182],[333,183],[332,184],[331,185],[391,186],[282,187],[316,188],[281,189],[314,190],[315,190],[373,191],[372,192],[368,193],[325,194],[327,195],[324,196],[363,197],[318,4],[405,4],[317,198],[367,4],[234,199],[267,111],[265,200],[236,201],[239,202],[441,4],[237,203],[240,203],[403,4],[402,4],[404,4],[439,4],[242,204],[280,64],[65,4],[323,205],[218,4],[207,206],[276,4],[411,64],[421,207],[260,64],[415,94],[259,208],[398,209],[258,207],[173,4],[423,210],[256,64],[257,64],[249,4],[206,4],[255,211],[254,212],[204,213],[277,38],[244,38],[359,4],[346,214],[345,4],[407,4],[279,64],[399,215],[60,64],[63,216],[64,217],[61,64],[62,4],[216,218],[211,219],[210,4],[209,220],[208,4],[397,221],[410,222],[412,223],[414,224],[416,225],[420,226],[453,227],[424,227],[452,228],[426,229],[435,230],[436,231],[438,232],[448,233],[451,114],[450,4],[449,234],[347,235],[11,4],[12,4],[14,4],[13,4],[2,4],[15,4],[16,4],[17,4],[18,4],[19,4],[20,4],[21,4],[22,4],[3,4],[4,4],[26,4],[23,4],[24,4],[25,4],[27,4],[28,4],[29,4],[5,4],[30,4],[31,4],[32,4],[33,4],[6,4],[37,4],[34,4],[35,4],[36,4],[38,4],[7,4],[39,4],[44,4],[45,4],[40,4],[41,4],[42,4],[43,4],[8,4],[49,4],[46,4],[47,4],[48,4],[50,4],[9,4],[51,4],[52,4],[53,4],[54,4],[55,4],[1,4],[10,4],[56,4],[89,236],[100,237],[87,236],[101,238],[110,239],[79,240],[78,241],[109,234],[104,242],[108,243],[81,244],[97,245],[80,246],[107,247],[76,248],[77,242],[82,249],[83,4],[88,240],[86,249],[74,250],[111,251],[102,252],[92,253],[91,249],[93,254],[95,255],[90,256],[94,257],[105,234],[84,258],[85,259],[96,260],[75,238],[99,261],[98,249],[103,4],[73,4],[106,262],[474,276],[475,274],[457,265],[476,274],[477,274],[478,274],[479,274],[480,274],[481,277],[484,278],[482,274]],"semanticDiagnosticsPerFile":[459,460,461,462,463,464,465,466,467,469,470,471,472,468,473,456,454,213,113,114,115,116,117,118,70,119,120,121,122,123,124,125,127,126,128,129,130,112,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,150,149,151,152,153,154,155,156,157,68,166,72,69,71,158,159,160,161,162,163,164,165,167,168,57,59,313,288,58,455,458,483,66,401,406,408,189,217,384,212,200,181,187,374,241,188,353,222,223,312,371,326,378,379,377,376,375,219,190,262,263,185,201,191,246,243,174,215,214,383,393,180,289,290,283,429,292,293,284,305,434,433,428,370,369,427,285,322,320,430,432,431,321,422,425,253,252,251,437,250,235,440,443,442,444,170,380,381,382,203,179,169,172,304,303,294,295,302,297,300,296,298,301,299,186,177,178,225,310,328,400,409,413,387,386,238,445,396,286,287,278,268,309,269,311,307,306,308,319,388,389,270,275,266,366,395,245,343,175,394,171,226,227,355,224,354,67,348,202,264,344,176,228,352,184,233,274,385,273,351,357,358,182,360,362,361,205,350,364,349,356,193,196,194,198,195,197,199,192,336,335,341,337,340,339,342,338,232,329,392,447,417,419,272,418,390,446,291,183,271,229,230,231,261,365,247,330,248,221,220,334,333,332,331,391,282,316,281,314,315,373,372,368,325,327,324,363,318,405,317,367,234,267,265,236,239,441,237,240,403,402,404,439,242,280,65,323,218,207,276,411,421,260,415,259,398,258,173,423,256,257,249,206,255,254,204,277,244,359,346,345,407,279,399,60,63,64,61,62,216,211,210,209,208,397,410,412,414,416,420,453,424,452,426,435,436,438,448,451,450,449,347,11,12,14,13,2,15,16,17,18,19,20,21,22,3,4,26,23,24,25,27,28,29,5,30,31,32,33,6,37,34,35,36,38,7,39,44,45,40,41,42,43,8,49,46,47,48,50,9,51,52,53,54,55,1,10,56,89,100,87,101,110,79,78,109,104,108,81,97,80,107,76,77,82,83,88,86,74,111,102,92,91,93,95,90,94,105,84,85,96,75,99,98,103,73,106,474,475,457,476,477,478,479,480,481,484,482],"affectedFilesPendingEmit":[[459,1],[460,1],[461,1],[462,1],[463,1],[464,1],[465,1],[466,1],[467,1],[469,1],[470,1],[471,1],[472,1],[468,1],[473,1],[456,1],[454,1],[213,1],[113,1],[114,1],[115,1],[116,1],[117,1],[118,1],[70,1],[119,1],[120,1],[121,1],[122,1],[123,1],[124,1],[125,1],[127,1],[126,1],[128,1],[129,1],[130,1],[112,1],[131,1],[132,1],[133,1],[134,1],[135,1],[136,1],[137,1],[138,1],[139,1],[140,1],[141,1],[142,1],[143,1],[144,1],[145,1],[146,1],[147,1],[148,1],[150,1],[149,1],[151,1],[152,1],[153,1],[154,1],[155,1],[156,1],[157,1],[68,1],[166,1],[72,1],[69,1],[71,1],[158,1],[159,1],[160,1],[161,1],[162,1],[163,1],[164,1],[165,1],[167,1],[168,1],[57,1],[59,1],[313,1],[288,1],[58,1],[455,1],[458,1],[483,1],[66,1],[401,1],[406,1],[408,1],[189,1],[217,1],[384,1],[212,1],[200,1],[181,1],[187,1],[374,1],[241,1],[188,1],[353,1],[222,1],[223,1],[312,1],[371,1],[326,1],[378,1],[379,1],[377,1],[376,1],[375,1],[219,1],[190,1],[262,1],[263,1],[185,1],[201,1],[191,1],[246,1],[243,1],[174,1],[215,1],[214,1],[383,1],[393,1],[180,1],[289,1],[290,1],[283,1],[429,1],[292,1],[293,1],[284,1],[305,1],[434,1],[433,1],[428,1],[370,1],[369,1],[427,1],[285,1],[322,1],[320,1],[430,1],[432,1],[431,1],[321,1],[422,1],[425,1],[253,1],[252,1],[251,1],[437,1],[250,1],[235,1],[440,1],[443,1],[442,1],[444,1],[170,1],[380,1],[381,1],[382,1],[203,1],[179,1],[169,1],[172,1],[304,1],[303,1],[294,1],[295,1],[302,1],[297,1],[300,1],[296,1],[298,1],[301,1],[299,1],[186,1],[177,1],[178,1],[225,1],[310,1],[328,1],[400,1],[409,1],[413,1],[387,1],[386,1],[238,1],[445,1],[396,1],[286,1],[287,1],[278,1],[268,1],[309,1],[269,1],[311,1],[307,1],[306,1],[308,1],[319,1],[388,1],[389,1],[270,1],[275,1],[266,1],[366,1],[395,1],[245,1],[343,1],[175,1],[394,1],[171,1],[226,1],[227,1],[355,1],[224,1],[354,1],[67,1],[348,1],[202,1],[264,1],[344,1],[176,1],[228,1],[352,1],[184,1],[233,1],[274,1],[385,1],[273,1],[351,1],[357,1],[358,1],[182,1],[360,1],[362,1],[361,1],[205,1],[350,1],[364,1],[349,1],[356,1],[193,1],[196,1],[194,1],[198,1],[195,1],[197,1],[199,1],[192,1],[336,1],[335,1],[341,1],[337,1],[340,1],[339,1],[342,1],[338,1],[232,1],[329,1],[392,1],[447,1],[417,1],[419,1],[272,1],[418,1],[390,1],[446,1],[291,1],[183,1],[271,1],[229,1],[230,1],[231,1],[261,1],[365,1],[247,1],[330,1],[248,1],[221,1],[220,1],[334,1],[333,1],[332,1],[331,1],[391,1],[282,1],[316,1],[281,1],[314,1],[315,1],[373,1],[372,1],[368,1],[325,1],[327,1],[324,1],[363,1],[318,1],[405,1],[317,1],[367,1],[234,1],[267,1],[265,1],[236,1],[239,1],[441,1],[237,1],[240,1],[403,1],[402,1],[404,1],[439,1],[242,1],[280,1],[65,1],[323,1],[218,1],[207,1],[276,1],[411,1],[421,1],[260,1],[415,1],[259,1],[398,1],[258,1],[173,1],[423,1],[256,1],[257,1],[249,1],[206,1],[255,1],[254,1],[204,1],[277,1],[244,1],[359,1],[346,1],[345,1],[407,1],[279,1],[399,1],[60,1],[63,1],[64,1],[61,1],[62,1],[216,1],[211,1],[210,1],[209,1],[208,1],[397,1],[410,1],[412,1],[414,1],[416,1],[420,1],[453,1],[424,1],[452,1],[426,1],[435,1],[436,1],[438,1],[448,1],[451,1],[450,1],[449,1],[347,1],[11,1],[12,1],[14,1],[13,1],[2,1],[15,1],[16,1],[17,1],[18,1],[19,1],[20,1],[21,1],[22,1],[3,1],[4,1],[26,1],[23,1],[24,1],[25,1],[27,1],[28,1],[29,1],[5,1],[30,1],[31,1],[32,1],[33,1],[6,1],[37,1],[34,1],[35,1],[36,1],[38,1],[7,1],[39,1],[44,1],[45,1],[40,1],[41,1],[42,1],[43,1],[8,1],[49,1],[46,1],[47,1],[48,1],[50,1],[9,1],[51,1],[52,1],[53,1],[54,1],[55,1],[1,1],[10,1],[56,1],[89,1],[100,1],[87,1],[101,1],[110,1],[79,1],[78,1],[109,1],[104,1],[108,1],[81,1],[97,1],[80,1],[107,1],[76,1],[77,1],[82,1],[83,1],[88,1],[86,1],[74,1],[111,1],[102,1],[92,1],[91,1],[93,1],[95,1],[90,1],[94,1],[105,1],[84,1],[85,1],[96,1],[75,1],[99,1],[98,1],[103,1],[73,1],[106,1],[474,1],[475,1],[457,1],[476,1],[477,1],[478,1],[479,1],[480,1],[481,1],[484,1],[482,1]]},"version":"4.9.5"} \ No newline at end of file diff --git a/.next/cache/webpack/client-production/0.pack b/.next/cache/webpack/client-production/0.pack index 2d585b7..8231899 100644 Binary files a/.next/cache/webpack/client-production/0.pack and b/.next/cache/webpack/client-production/0.pack differ diff --git a/.next/cache/webpack/client-production/index.pack b/.next/cache/webpack/client-production/index.pack index 27be7b3..d06fe1d 100644 Binary files a/.next/cache/webpack/client-production/index.pack and b/.next/cache/webpack/client-production/index.pack differ diff --git a/.next/cache/webpack/edge-server-production/index.pack b/.next/cache/webpack/edge-server-production/index.pack index 197f1d6..b071451 100644 Binary files a/.next/cache/webpack/edge-server-production/index.pack and b/.next/cache/webpack/edge-server-production/index.pack differ diff --git a/.next/cache/webpack/server-production/0.pack b/.next/cache/webpack/server-production/0.pack index 7f5e279..2908867 100644 Binary files a/.next/cache/webpack/server-production/0.pack and b/.next/cache/webpack/server-production/0.pack differ diff --git a/.next/cache/webpack/server-production/index.pack b/.next/cache/webpack/server-production/index.pack index 09a32b2..8759d8c 100644 Binary files a/.next/cache/webpack/server-production/index.pack and b/.next/cache/webpack/server-production/index.pack differ diff --git a/.next/export-marker.json b/.next/export-marker.json index e4c41c9..bdb3f38 100644 --- a/.next/export-marker.json +++ b/.next/export-marker.json @@ -1,6 +1,6 @@ { "version": 1, "hasExportPathMap": false, - "exportTrailingSlash": false, + "exportTrailingSlash": true, "isNextImageImported": false } \ No newline at end of file diff --git a/.next/images-manifest.json b/.next/images-manifest.json index 4a87163..46004e0 100644 --- a/.next/images-manifest.json +++ b/.next/images-manifest.json @@ -21,7 +21,7 @@ 256, 384 ], - "path": "/_next/image", + "path": "/_next/image/", "loader": "default", "loaderFile": "", "domains": [], @@ -34,7 +34,7 @@ "contentSecurityPolicy": "script-src 'none'; frame-src 'none'; sandbox;", "contentDispositionType": "attachment", "remotePatterns": [], - "unoptimized": false, + "unoptimized": true, "sizes": [ 640, 750, diff --git a/.next/prerender-manifest.json b/.next/prerender-manifest.json index 8b14e41..cbc0355 100644 --- a/.next/prerender-manifest.json +++ b/.next/prerender-manifest.json @@ -1,11 +1,105 @@ { "version": 4, - "routes": {}, - "dynamicRoutes": {}, - "preview": { - "previewModeId": "d1ad157dd1048d2ddf5a4e2cffcefbb0", - "previewModeSigningKey": "ce8574b53fdbe9a74e0275738f30c6879890b34fd85b71e6da9401edae05e102", - "previewModeEncryptionKey": "23b46bcb2c39b2ad4ca8ca609143026b7f024a26ee25191ef54b720f2521fc87" + "routes": { + "/news": { + "initialRevalidateSeconds": false, + "srcRoute": null, + "dataRoute": "/_next/data/BC55hDkCbKdePlWWvs1u_/news.json", + "allowHeader": [ + "host", + "x-matched-path", + "x-prerender-revalidate", + "x-prerender-revalidate-if-generated", + "x-next-revalidated-tags", + "x-next-revalidate-tag-token" + ] + }, + "/news/technology-update": { + "initialRevalidateSeconds": false, + "srcRoute": "/news/[slug]", + "dataRoute": "/_next/data/BC55hDkCbKdePlWWvs1u_/news/technology-update.json", + "allowHeader": [ + "host", + "x-matched-path", + "x-prerender-revalidate", + "x-prerender-revalidate-if-generated", + "x-next-revalidated-tags", + "x-next-revalidate-tag-token" + ] + }, + "/news/product-launch": { + "initialRevalidateSeconds": false, + "srcRoute": "/news/[slug]", + "dataRoute": "/_next/data/BC55hDkCbKdePlWWvs1u_/news/product-launch.json", + "allowHeader": [ + "host", + "x-matched-path", + "x-prerender-revalidate", + "x-prerender-revalidate-if-generated", + "x-next-revalidated-tags", + "x-next-revalidate-tag-token" + ] + }, + "/news/_example": { + "initialRevalidateSeconds": false, + "srcRoute": "/news/[slug]", + "dataRoute": "/_next/data/BC55hDkCbKdePlWWvs1u_/news/_example.json", + "allowHeader": [ + "host", + "x-matched-path", + "x-prerender-revalidate", + "x-prerender-revalidate-if-generated", + "x-next-revalidated-tags", + "x-next-revalidate-tag-token" + ] + }, + "/news/global-expansion": { + "initialRevalidateSeconds": false, + "srcRoute": "/news/[slug]", + "dataRoute": "/_next/data/BC55hDkCbKdePlWWvs1u_/news/global-expansion.json", + "allowHeader": [ + "host", + "x-matched-path", + "x-prerender-revalidate", + "x-prerender-revalidate-if-generated", + "x-next-revalidated-tags", + "x-next-revalidate-tag-token" + ] + }, + "/news/security-enhancement": { + "initialRevalidateSeconds": false, + "srcRoute": "/news/[slug]", + "dataRoute": "/_next/data/BC55hDkCbKdePlWWvs1u_/news/security-enhancement.json", + "allowHeader": [ + "host", + "x-matched-path", + "x-prerender-revalidate", + "x-prerender-revalidate-if-generated", + "x-next-revalidated-tags", + "x-next-revalidate-tag-token" + ] + } }, - "notFoundRoutes": [] + "dynamicRoutes": { + "/news/[slug]": { + "routeRegex": "^/news/([^/]+?)(?:/)?$", + "dataRoute": "/_next/data/BC55hDkCbKdePlWWvs1u_/news/[slug].json", + "fallback": false, + "dataRouteRegex": "^/_next/data/BC55hDkCbKdePlWWvs1u_/news/([^/]+?)\\.json$", + "allowHeader": [ + "host", + "x-matched-path", + "x-prerender-revalidate", + "x-prerender-revalidate-if-generated", + "x-next-revalidated-tags", + "x-next-revalidate-tag-token" + ] + } + }, + "notFoundRoutes": [], + "preview": { + "previewModeId": "8b238f26c47dea613ba5058d2eb4fe5a", + "previewModeSigningKey": "de7ad8a68a489e0e29bb005180f182b5ca740f204c39d89aaeb85ba6d74350c1", + "previewModeEncryptionKey": "d66bc828d38e7c71bfb0ab1e63a17d116fb0b5f4776d146abf8b14c2779cd5e4" + } } \ No newline at end of file diff --git a/.next/required-server-files.json b/.next/required-server-files.json index c6d09e2..47bee54 100644 --- a/.next/required-server-files.json +++ b/.next/required-server-files.json @@ -46,7 +46,7 @@ 256, 384 ], - "path": "/_next/image", + "path": "/_next/image/", "loader": "default", "loaderFile": "", "domains": [], @@ -59,7 +59,7 @@ "contentSecurityPolicy": "script-src 'none'; frame-src 'none'; sandbox;", "contentDispositionType": "attachment", "remotePatterns": [], - "unoptimized": false + "unoptimized": true }, "devIndicators": { "position": "bottom-left" @@ -73,7 +73,7 @@ }, "basePath": "", "sassOptions": {}, - "trailingSlash": false, + "trailingSlash": true, "i18n": null, "productionBrowserSourceMaps": false, "excludeDefaultMomentLocales": true, @@ -89,6 +89,7 @@ "compiler": {}, "expireTime": 31536000, "staticPageGenerationTimeout": 60, + "output": "export", "modularizeImports": { "@mui/icons-material": { "transform": "@mui/icons-material/{{member}}" @@ -97,7 +98,7 @@ "transform": "lodash/{{member}}" } }, - "outputFileTracingRoot": "E:\\百战计划\\run\\aws-proxy-site", + "outputFileTracingRoot": "D:\\dongyun-projects\\two", "experimental": { "useSkewCookie": false, "nodeMiddleware": false, @@ -156,7 +157,7 @@ "middlewarePrefetch": "flexible", "optimisticClientCache": true, "manualClientBasePath": false, - "cpus": 15, + "cpus": 7, "memoryBasedWorkersCount": false, "imgOptConcurrency": null, "imgOptTimeoutInSeconds": 7, @@ -287,10 +288,20 @@ "bundlePagesRouterDependencies": false, "configFileName": "next.config.js", "turbopack": { - "root": "E:\\百战计划\\run\\aws-proxy-site" + "root": "D:\\dongyun-projects\\two" + }, + "_originalRewrites": { + "beforeFiles": [], + "afterFiles": [ + { + "source": "/sitemap.xml", + "destination": "/api/sitemap" + } + ], + "fallback": [] } }, - "appDir": "E:\\百战计划\\run\\aws-proxy-site", + "appDir": "D:\\dongyun-projects\\two", "relativeAppDir": "", "files": [ ".next\\routes-manifest.json", diff --git a/.next/routes-manifest.json b/.next/routes-manifest.json index c449d54..4819373 100644 --- a/.next/routes-manifest.json +++ b/.next/routes-manifest.json @@ -5,17 +5,36 @@ "basePath": "", "redirects": [ { - "source": "/:path+/", - "destination": "/:path+", + "source": "/:file((?!\\.well-known(?:/.*)?)(?:[^/]+/)*[^/]+\\.\\w+)/", + "destination": "/:file", + "internal": true, + "missing": [ + { + "type": "header", + "key": "x-nextjs-data" + } + ], + "statusCode": 308, + "regex": "^(?:/((?!\\.well-known(?:/.*)?)(?:[^/]+/)*[^/]+\\.\\w+))/$" + }, + { + "source": "/:notfile((?!\\.well-known(?:/.*)?)(?:[^/]+/)*[^/\\.]+)", + "destination": "/:notfile/", "internal": true, "statusCode": 308, - "regex": "^(?:/((?:[^/]+?)(?:/(?:[^/]+?))*))/$" + "regex": "^(?:/((?!\\.well-known(?:/.*)?)(?:[^/]+/)*[^/\\.]+))$" } ], "headers": [], "rewrites": { "beforeFiles": [], - "afterFiles": [], + "afterFiles": [ + { + "source": "/sitemap.xml", + "destination": "/api/sitemap", + "regex": "^/sitemap\\.xml(?:/)?$" + } + ], "fallback": [] }, "dynamicRoutes": [ @@ -26,6 +45,14 @@ "nxtPlang": "nxtPlang" }, "namedRegex": "^/api/sitemap/(?[^/]+?)(?:/)?$" + }, + { + "page": "/news/[slug]", + "regex": "^/news/([^/]+?)(?:/)?$", + "routeKeys": { + "nxtPslug": "nxtPslug" + }, + "namedRegex": "^/news/(?[^/]+?)(?:/)?$" } ], "staticRoutes": [ @@ -78,7 +105,20 @@ "namedRegex": "^/pricing(?:/)?$" } ], - "dataRoutes": [], + "dataRoutes": [ + { + "page": "/news", + "dataRouteRegex": "^/_next/data/BC55hDkCbKdePlWWvs1u_/news\\.json$" + }, + { + "page": "/news/[slug]", + "routeKeys": { + "nxtPslug": "nxtPslug" + }, + "dataRouteRegex": "^/_next/data/BC55hDkCbKdePlWWvs1u_/news/([^/]+?)\\.json$", + "namedDataRouteRegex": "^/_next/data/BC55hDkCbKdePlWWvs1u_/news/(?[^/]+?)\\.json$" + } + ], "rsc": { "header": "RSC", "varyHeader": "RSC, Next-Router-State-Tree, Next-Router-Prefetch, Next-Router-Segment-Prefetch", diff --git a/.next/server/chunks/450.js b/.next/server/chunks/450.js index 32f4c13..a2b3ca4 100644 --- a/.next/server/chunks/450.js +++ b/.next/server/chunks/450.js @@ -1 +1 @@ -exports.id=450,exports.ids=[450],exports.modules={37:(a,b,c)=>{"use strict";var d=c(2015);let e=a=>{let b=a.replace(/^([A-Z])|[\s-_]+(\w)/g,(a,b,c)=>c?c.toUpperCase():b.toLowerCase());return b.charAt(0).toUpperCase()+b.slice(1)},f=(...a)=>a.filter((a,b,c)=>!!a&&""!==a.trim()&&c.indexOf(a)===b).join(" ").trim();var g={xmlns:"http://www.w3.org/2000/svg",width:24,height:24,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"};let h=d.forwardRef(({color:a="currentColor",size:b=24,strokeWidth:c=2,absoluteStrokeWidth:e,className:h="",children:i,iconNode:j,...k},l)=>d.createElement("svg",{ref:l,...g,width:b,height:b,stroke:a,strokeWidth:e?24*Number(c)/Number(b):c,className:f("lucide",h),...!i&&!(a=>{for(let b in a)if(b.startsWith("aria-")||"role"===b||"title"===b)return!0})(k)&&{"aria-hidden":"true"},...k},[...j.map(([a,b])=>d.createElement(a,b)),...Array.isArray(i)?i:[i]])),i=(a,b)=>{let c=d.forwardRef(({className:c,...g},i)=>d.createElement(h,{ref:i,iconNode:b,className:f(`lucide-${e(a).replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase()}`,`lucide-${a}`,c),...g}));return c.displayName=e(a),c},j=i("a-arrow-down",[["path",{d:"M3.5 13h6",key:"p1my2r"}],["path",{d:"m2 16 4.5-9 4.5 9",key:"ndf0b3"}],["path",{d:"M18 7v9",key:"pknjwm"}],["path",{d:"m14 12 4 4 4-4",key:"buelq4"}]]),k=i("a-large-small",[["path",{d:"M21 14h-5",key:"1vh23k"}],["path",{d:"M16 16v-3.5a2.5 2.5 0 0 1 5 0V16",key:"1wh10o"}],["path",{d:"M4.5 13h6",key:"dfilno"}],["path",{d:"m3 16 4.5-9 4.5 9",key:"2dxa0e"}]]),l=i("a-arrow-up",[["path",{d:"M3.5 13h6",key:"p1my2r"}],["path",{d:"m2 16 4.5-9 4.5 9",key:"ndf0b3"}],["path",{d:"M18 16V7",key:"ty0viw"}],["path",{d:"m14 11 4-4 4 4",key:"1pu57t"}]]),m=i("accessibility",[["circle",{cx:"16",cy:"4",r:"1",key:"1grugj"}],["path",{d:"m18 19 1-7-6 1",key:"r0i19z"}],["path",{d:"m5 8 3-3 5.5 3-2.36 3.5",key:"9ptxx2"}],["path",{d:"M4.24 14.5a5 5 0 0 0 6.88 6",key:"10kmtu"}],["path",{d:"M13.76 17.5a5 5 0 0 0-6.88-6",key:"2qq6rc"}]]),n=i("activity",[["path",{d:"M22 12h-2.48a2 2 0 0 0-1.93 1.46l-2.35 8.36a.25.25 0 0 1-.48 0L9.24 2.18a.25.25 0 0 0-.48 0l-2.35 8.36A2 2 0 0 1 4.49 12H2",key:"169zse"}]]),o=i("air-vent",[["path",{d:"M18 17.5a2.5 2.5 0 1 1-4 2.03V12",key:"yd12zl"}],["path",{d:"M6 12H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2v5a2 2 0 0 1-2 2h-2",key:"larmp2"}],["path",{d:"M6 8h12",key:"6g4wlu"}],["path",{d:"M6.6 15.572A2 2 0 1 0 10 17v-5",key:"1x1kqn"}]]),p=i("airplay",[["path",{d:"M5 17H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2v10a2 2 0 0 1-2 2h-1",key:"ns4c3b"}],["path",{d:"m12 15 5 6H7Z",key:"14qnn2"}]]),q=i("alarm-clock-check",[["circle",{cx:"12",cy:"13",r:"8",key:"3y4lt7"}],["path",{d:"M5 3 2 6",key:"18tl5t"}],["path",{d:"m22 6-3-3",key:"1opdir"}],["path",{d:"M6.38 18.7 4 21",key:"17xu3x"}],["path",{d:"M17.64 18.67 20 21",key:"kv2oe2"}],["path",{d:"m9 13 2 2 4-4",key:"6343dt"}]]),r=i("alarm-clock-minus",[["circle",{cx:"12",cy:"13",r:"8",key:"3y4lt7"}],["path",{d:"M5 3 2 6",key:"18tl5t"}],["path",{d:"m22 6-3-3",key:"1opdir"}],["path",{d:"M6.38 18.7 4 21",key:"17xu3x"}],["path",{d:"M17.64 18.67 20 21",key:"kv2oe2"}],["path",{d:"M9 13h6",key:"1uhe8q"}]]),s=i("alarm-clock-off",[["path",{d:"M6.87 6.87a8 8 0 1 0 11.26 11.26",key:"3on8tj"}],["path",{d:"M19.9 14.25a8 8 0 0 0-9.15-9.15",key:"15ghsc"}],["path",{d:"m22 6-3-3",key:"1opdir"}],["path",{d:"M6.26 18.67 4 21",key:"yzmioq"}],["path",{d:"m2 2 20 20",key:"1ooewy"}],["path",{d:"M4 4 2 6",key:"1ycko6"}]]),t=i("alarm-clock-plus",[["circle",{cx:"12",cy:"13",r:"8",key:"3y4lt7"}],["path",{d:"M5 3 2 6",key:"18tl5t"}],["path",{d:"m22 6-3-3",key:"1opdir"}],["path",{d:"M6.38 18.7 4 21",key:"17xu3x"}],["path",{d:"M17.64 18.67 20 21",key:"kv2oe2"}],["path",{d:"M12 10v6",key:"1bos4e"}],["path",{d:"M9 13h6",key:"1uhe8q"}]]),u=i("alarm-clock",[["circle",{cx:"12",cy:"13",r:"8",key:"3y4lt7"}],["path",{d:"M12 9v4l2 2",key:"1c63tq"}],["path",{d:"M5 3 2 6",key:"18tl5t"}],["path",{d:"m22 6-3-3",key:"1opdir"}],["path",{d:"M6.38 18.7 4 21",key:"17xu3x"}],["path",{d:"M17.64 18.67 20 21",key:"kv2oe2"}]]),v=i("alarm-smoke",[["path",{d:"M11 21c0-2.5 2-2.5 2-5",key:"1sicvv"}],["path",{d:"M16 21c0-2.5 2-2.5 2-5",key:"1o3eny"}],["path",{d:"m19 8-.8 3a1.25 1.25 0 0 1-1.2 1H7a1.25 1.25 0 0 1-1.2-1L5 8",key:"1bvca4"}],["path",{d:"M21 3a1 1 0 0 1 1 1v2a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2V4a1 1 0 0 1 1-1z",key:"x3qr1j"}],["path",{d:"M6 21c0-2.5 2-2.5 2-5",key:"i3w1gp"}]]),w=i("album",[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",ry:"2",key:"1m3agn"}],["polyline",{points:"11 3 11 11 14 8 17 11 17 3",key:"1wcwz3"}]]),x=i("align-center-horizontal",[["path",{d:"M2 12h20",key:"9i4pu4"}],["path",{d:"M10 16v4a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2v-4",key:"11f1s0"}],["path",{d:"M10 8V4a2 2 0 0 0-2-2H6a2 2 0 0 0-2 2v4",key:"t14dx9"}],["path",{d:"M20 16v1a2 2 0 0 1-2 2h-2a2 2 0 0 1-2-2v-1",key:"1w07xs"}],["path",{d:"M14 8V7c0-1.1.9-2 2-2h2a2 2 0 0 1 2 2v1",key:"1apec2"}]]),y=i("align-center-vertical",[["path",{d:"M12 2v20",key:"t6zp3m"}],["path",{d:"M8 10H4a2 2 0 0 1-2-2V6c0-1.1.9-2 2-2h4",key:"14d6g8"}],["path",{d:"M16 10h4a2 2 0 0 0 2-2V6a2 2 0 0 0-2-2h-4",key:"1e2lrw"}],["path",{d:"M8 20H7a2 2 0 0 1-2-2v-2c0-1.1.9-2 2-2h1",key:"1fkdwx"}],["path",{d:"M16 14h1a2 2 0 0 1 2 2v2a2 2 0 0 1-2 2h-1",key:"1euafb"}]]),z=i("align-center",[["path",{d:"M17 12H7",key:"16if0g"}],["path",{d:"M19 18H5",key:"18s9l3"}],["path",{d:"M21 6H3",key:"1jwq7v"}]]),A=i("align-end-horizontal",[["rect",{width:"6",height:"16",x:"4",y:"2",rx:"2",key:"z5wdxg"}],["rect",{width:"6",height:"9",x:"14",y:"9",rx:"2",key:"um7a8w"}],["path",{d:"M22 22H2",key:"19qnx5"}]]),B=i("align-end-vertical",[["rect",{width:"16",height:"6",x:"2",y:"4",rx:"2",key:"10wcwx"}],["rect",{width:"9",height:"6",x:"9",y:"14",rx:"2",key:"4p5bwg"}],["path",{d:"M22 22V2",key:"12ipfv"}]]),C=i("align-horizontal-distribute-center",[["rect",{width:"6",height:"14",x:"4",y:"5",rx:"2",key:"1wwnby"}],["rect",{width:"6",height:"10",x:"14",y:"7",rx:"2",key:"1fe6j6"}],["path",{d:"M17 22v-5",key:"4b6g73"}],["path",{d:"M17 7V2",key:"hnrr36"}],["path",{d:"M7 22v-3",key:"1r4jpn"}],["path",{d:"M7 5V2",key:"liy1u9"}]]),D=i("align-horizontal-distribute-end",[["rect",{width:"6",height:"14",x:"4",y:"5",rx:"2",key:"1wwnby"}],["rect",{width:"6",height:"10",x:"14",y:"7",rx:"2",key:"1fe6j6"}],["path",{d:"M10 2v20",key:"uyc634"}],["path",{d:"M20 2v20",key:"1tx262"}]]),E=i("align-horizontal-distribute-start",[["rect",{width:"6",height:"14",x:"4",y:"5",rx:"2",key:"1wwnby"}],["rect",{width:"6",height:"10",x:"14",y:"7",rx:"2",key:"1fe6j6"}],["path",{d:"M4 2v20",key:"gtpd5x"}],["path",{d:"M14 2v20",key:"tg6bpw"}]]),F=i("align-horizontal-justify-center",[["rect",{width:"6",height:"14",x:"2",y:"5",rx:"2",key:"dy24zr"}],["rect",{width:"6",height:"10",x:"16",y:"7",rx:"2",key:"13zkjt"}],["path",{d:"M12 2v20",key:"t6zp3m"}]]),G=i("align-horizontal-justify-end",[["rect",{width:"6",height:"14",x:"2",y:"5",rx:"2",key:"dy24zr"}],["rect",{width:"6",height:"10",x:"12",y:"7",rx:"2",key:"1ht384"}],["path",{d:"M22 2v20",key:"40qfg1"}]]),H=i("align-horizontal-justify-start",[["rect",{width:"6",height:"14",x:"6",y:"5",rx:"2",key:"hsirpf"}],["rect",{width:"6",height:"10",x:"16",y:"7",rx:"2",key:"13zkjt"}],["path",{d:"M2 2v20",key:"1ivd8o"}]]),I=i("align-horizontal-space-around",[["rect",{width:"6",height:"10",x:"9",y:"7",rx:"2",key:"yn7j0q"}],["path",{d:"M4 22V2",key:"tsjzd3"}],["path",{d:"M20 22V2",key:"1bnhr8"}]]),J=i("align-horizontal-space-between",[["rect",{width:"6",height:"14",x:"3",y:"5",rx:"2",key:"j77dae"}],["rect",{width:"6",height:"10",x:"15",y:"7",rx:"2",key:"bq30hj"}],["path",{d:"M3 2v20",key:"1d2pfg"}],["path",{d:"M21 2v20",key:"p059bm"}]]),K=i("align-justify",[["path",{d:"M3 12h18",key:"1i2n21"}],["path",{d:"M3 18h18",key:"1h113x"}],["path",{d:"M3 6h18",key:"d0wm0j"}]]),L=i("align-left",[["path",{d:"M15 12H3",key:"6jk70r"}],["path",{d:"M17 18H3",key:"1amg6g"}],["path",{d:"M21 6H3",key:"1jwq7v"}]]),M=i("align-right",[["path",{d:"M21 12H9",key:"dn1m92"}],["path",{d:"M21 18H7",key:"1ygte8"}],["path",{d:"M21 6H3",key:"1jwq7v"}]]),N=i("align-start-horizontal",[["rect",{width:"6",height:"16",x:"4",y:"6",rx:"2",key:"1n4dg1"}],["rect",{width:"6",height:"9",x:"14",y:"6",rx:"2",key:"17khns"}],["path",{d:"M22 2H2",key:"fhrpnj"}]]),O=i("align-start-vertical",[["rect",{width:"9",height:"6",x:"6",y:"14",rx:"2",key:"lpm2y7"}],["rect",{width:"16",height:"6",x:"6",y:"4",rx:"2",key:"rdj6ps"}],["path",{d:"M2 2v20",key:"1ivd8o"}]]),P=i("align-vertical-distribute-center",[["path",{d:"M22 17h-3",key:"1lwga1"}],["path",{d:"M22 7h-5",key:"o2endc"}],["path",{d:"M5 17H2",key:"1gx9xc"}],["path",{d:"M7 7H2",key:"6bq26l"}],["rect",{x:"5",y:"14",width:"14",height:"6",rx:"2",key:"1qrzuf"}],["rect",{x:"7",y:"4",width:"10",height:"6",rx:"2",key:"we8e9z"}]]),Q=i("align-vertical-distribute-end",[["rect",{width:"14",height:"6",x:"5",y:"14",rx:"2",key:"jmoj9s"}],["rect",{width:"10",height:"6",x:"7",y:"4",rx:"2",key:"aza5on"}],["path",{d:"M2 20h20",key:"owomy5"}],["path",{d:"M2 10h20",key:"1ir3d8"}]]),R=i("align-vertical-distribute-start",[["rect",{width:"14",height:"6",x:"5",y:"14",rx:"2",key:"jmoj9s"}],["rect",{width:"10",height:"6",x:"7",y:"4",rx:"2",key:"aza5on"}],["path",{d:"M2 14h20",key:"myj16y"}],["path",{d:"M2 4h20",key:"mda7wb"}]]),S=i("align-vertical-justify-center",[["rect",{width:"14",height:"6",x:"5",y:"16",rx:"2",key:"1i8z2d"}],["rect",{width:"10",height:"6",x:"7",y:"2",rx:"2",key:"ypihtt"}],["path",{d:"M2 12h20",key:"9i4pu4"}]]),T=i("align-vertical-justify-end",[["rect",{width:"14",height:"6",x:"5",y:"12",rx:"2",key:"4l4tp2"}],["rect",{width:"10",height:"6",x:"7",y:"2",rx:"2",key:"ypihtt"}],["path",{d:"M2 22h20",key:"272qi7"}]]),U=i("align-vertical-justify-start",[["rect",{width:"14",height:"6",x:"5",y:"16",rx:"2",key:"1i8z2d"}],["rect",{width:"10",height:"6",x:"7",y:"6",rx:"2",key:"13squh"}],["path",{d:"M2 2h20",key:"1ennik"}]]),V=i("align-vertical-space-around",[["rect",{width:"10",height:"6",x:"7",y:"9",rx:"2",key:"b1zbii"}],["path",{d:"M22 20H2",key:"1p1f7z"}],["path",{d:"M22 4H2",key:"1b7qnq"}]]),W=i("align-vertical-space-between",[["rect",{width:"14",height:"6",x:"5",y:"15",rx:"2",key:"1w91an"}],["rect",{width:"10",height:"6",x:"7",y:"3",rx:"2",key:"17wqzy"}],["path",{d:"M2 21h20",key:"1nyx9w"}],["path",{d:"M2 3h20",key:"91anmk"}]]),X=i("ambulance",[["path",{d:"M10 10H6",key:"1bsnug"}],["path",{d:"M14 18V6a2 2 0 0 0-2-2H4a2 2 0 0 0-2 2v11a1 1 0 0 0 1 1h2",key:"wrbu53"}],["path",{d:"M19 18h2a1 1 0 0 0 1-1v-3.28a1 1 0 0 0-.684-.948l-1.923-.641a1 1 0 0 1-.578-.502l-1.539-3.076A1 1 0 0 0 16.382 8H14",key:"lrkjwd"}],["path",{d:"M8 8v4",key:"1fwk8c"}],["path",{d:"M9 18h6",key:"x1upvd"}],["circle",{cx:"17",cy:"18",r:"2",key:"332jqn"}],["circle",{cx:"7",cy:"18",r:"2",key:"19iecd"}]]),Y=i("ampersand",[["path",{d:"M17.5 12c0 4.4-3.6 8-8 8A4.5 4.5 0 0 1 5 15.5c0-6 8-4 8-8.5a3 3 0 1 0-6 0c0 3 2.5 8.5 12 13",key:"1o9ehi"}],["path",{d:"M16 12h3",key:"4uvgyw"}]]),Z=i("ampersands",[["path",{d:"M10 17c-5-3-7-7-7-9a2 2 0 0 1 4 0c0 2.5-5 2.5-5 6 0 1.7 1.3 3 3 3 2.8 0 5-2.2 5-5",key:"12lh1k"}],["path",{d:"M22 17c-5-3-7-7-7-9a2 2 0 0 1 4 0c0 2.5-5 2.5-5 6 0 1.7 1.3 3 3 3 2.8 0 5-2.2 5-5",key:"173c68"}]]),$=i("amphora",[["path",{d:"M10 2v5.632c0 .424-.272.795-.653.982A6 6 0 0 0 6 14c.006 4 3 7 5 8",key:"1h8rid"}],["path",{d:"M10 5H8a2 2 0 0 0 0 4h.68",key:"3ezsi6"}],["path",{d:"M14 2v5.632c0 .424.272.795.652.982A6 6 0 0 1 18 14c0 4-3 7-5 8",key:"yt6q09"}],["path",{d:"M14 5h2a2 2 0 0 1 0 4h-.68",key:"8f95yk"}],["path",{d:"M18 22H6",key:"mg6kv4"}],["path",{d:"M9 2h6",key:"1jrp98"}]]),_=i("anchor",[["path",{d:"M12 22V8",key:"qkxhtm"}],["path",{d:"M5 12H2a10 10 0 0 0 20 0h-3",key:"1hv3nh"}],["circle",{cx:"12",cy:"5",r:"3",key:"rqqgnr"}]]),aa=i("angry",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"M16 16s-1.5-2-4-2-4 2-4 2",key:"epbg0q"}],["path",{d:"M7.5 8 10 9",key:"olxxln"}],["path",{d:"m14 9 2.5-1",key:"1j6cij"}],["path",{d:"M9 10h.01",key:"qbtxuw"}],["path",{d:"M15 10h.01",key:"1qmjsl"}]]),ab=i("annoyed",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"M8 15h8",key:"45n4r"}],["path",{d:"M8 9h2",key:"1g203m"}],["path",{d:"M14 9h2",key:"116p9w"}]]),ac=i("antenna",[["path",{d:"M2 12 7 2",key:"117k30"}],["path",{d:"m7 12 5-10",key:"1tvx22"}],["path",{d:"m12 12 5-10",key:"ev1o1a"}],["path",{d:"m17 12 5-10",key:"1e4ti3"}],["path",{d:"M4.5 7h15",key:"vlsxkz"}],["path",{d:"M12 16v6",key:"c8a4gj"}]]),ad=i("anvil",[["path",{d:"M7 10H6a4 4 0 0 1-4-4 1 1 0 0 1 1-1h4",key:"1hjpb6"}],["path",{d:"M7 5a1 1 0 0 1 1-1h13a1 1 0 0 1 1 1 7 7 0 0 1-7 7H8a1 1 0 0 1-1-1z",key:"1qn45f"}],["path",{d:"M9 12v5",key:"3anwtq"}],["path",{d:"M15 12v5",key:"5xh3zn"}],["path",{d:"M5 20a3 3 0 0 1 3-3h8a3 3 0 0 1 3 3 1 1 0 0 1-1 1H6a1 1 0 0 1-1-1",key:"1fi4x8"}]]),ae=i("aperture",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"m14.31 8 5.74 9.94",key:"1y6ab4"}],["path",{d:"M9.69 8h11.48",key:"1wxppr"}],["path",{d:"m7.38 12 5.74-9.94",key:"1grp0k"}],["path",{d:"M9.69 16 3.95 6.06",key:"libnyf"}],["path",{d:"M14.31 16H2.83",key:"x5fava"}],["path",{d:"m16.62 12-5.74 9.94",key:"1vwawt"}]]),af=i("app-window-mac",[["rect",{width:"20",height:"16",x:"2",y:"4",rx:"2",key:"18n3k1"}],["path",{d:"M6 8h.01",key:"x9i8wu"}],["path",{d:"M10 8h.01",key:"1r9ogq"}],["path",{d:"M14 8h.01",key:"1primd"}]]),ag=i("app-window",[["rect",{x:"2",y:"4",width:"20",height:"16",rx:"2",key:"izxlao"}],["path",{d:"M10 4v4",key:"pp8u80"}],["path",{d:"M2 8h20",key:"d11cs7"}],["path",{d:"M6 4v4",key:"1svtjw"}]]),ah=i("apple",[["path",{d:"M12 20.94c1.5 0 2.75 1.06 4 1.06 3 0 6-8 6-12.22A4.91 4.91 0 0 0 17 5c-2.22 0-4 1.44-5 2-1-.56-2.78-2-5-2a4.9 4.9 0 0 0-5 4.78C2 14 5 22 8 22c1.25 0 2.5-1.06 4-1.06Z",key:"3s7exb"}],["path",{d:"M10 2c1 .5 2 2 2 5",key:"fcco2y"}]]),ai=i("archive-restore",[["rect",{width:"20",height:"5",x:"2",y:"3",rx:"1",key:"1wp1u1"}],["path",{d:"M4 8v11a2 2 0 0 0 2 2h2",key:"tvwodi"}],["path",{d:"M20 8v11a2 2 0 0 1-2 2h-2",key:"1gkqxj"}],["path",{d:"m9 15 3-3 3 3",key:"1pd0qc"}],["path",{d:"M12 12v9",key:"192myk"}]]),aj=i("archive-x",[["rect",{width:"20",height:"5",x:"2",y:"3",rx:"1",key:"1wp1u1"}],["path",{d:"M4 8v11a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8",key:"1s80jp"}],["path",{d:"m9.5 17 5-5",key:"nakeu6"}],["path",{d:"m9.5 12 5 5",key:"1hccrj"}]]),ak=i("archive",[["rect",{width:"20",height:"5",x:"2",y:"3",rx:"1",key:"1wp1u1"}],["path",{d:"M4 8v11a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8",key:"1s80jp"}],["path",{d:"M10 12h4",key:"a56b0p"}]]),al=i("armchair",[["path",{d:"M19 9V6a2 2 0 0 0-2-2H7a2 2 0 0 0-2 2v3",key:"irtipd"}],["path",{d:"M3 16a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-5a2 2 0 0 0-4 0v1.5a.5.5 0 0 1-.5.5h-9a.5.5 0 0 1-.5-.5V11a2 2 0 0 0-4 0z",key:"1qyhux"}],["path",{d:"M5 18v2",key:"ppbyun"}],["path",{d:"M19 18v2",key:"gy7782"}]]),am=i("arrow-big-down-dash",[["path",{d:"M15 5H9",key:"1tp3ed"}],["path",{d:"M15 9v3h4l-7 7-7-7h4V9z",key:"ncdc4b"}]]),an=i("arrow-big-down",[["path",{d:"M15 6v6h4l-7 7-7-7h4V6h6z",key:"1thax2"}]]),ao=i("arrow-big-left-dash",[["path",{d:"M19 15V9",key:"1hci5f"}],["path",{d:"M15 15h-3v4l-7-7 7-7v4h3v6z",key:"16tjna"}]]),ap=i("arrow-big-left",[["path",{d:"M18 15h-6v4l-7-7 7-7v4h6v6z",key:"lbrdak"}]]),aq=i("arrow-big-right-dash",[["path",{d:"M5 9v6",key:"158jrl"}],["path",{d:"M9 9h3V5l7 7-7 7v-4H9V9z",key:"1sg2xn"}]]),ar=i("arrow-big-right",[["path",{d:"M6 9h6V5l7 7-7 7v-4H6V9z",key:"7fvt9c"}]]),as=i("arrow-big-up-dash",[["path",{d:"M9 19h6",key:"456am0"}],["path",{d:"M9 15v-3H5l7-7 7 7h-4v3H9z",key:"1r2uve"}]]),at=i("arrow-big-up",[["path",{d:"M9 18v-6H5l7-7 7 7h-4v6H9z",key:"1x06kx"}]]),au=i("arrow-down-0-1",[["path",{d:"m3 16 4 4 4-4",key:"1co6wj"}],["path",{d:"M7 20V4",key:"1yoxec"}],["rect",{x:"15",y:"4",width:"4",height:"6",ry:"2",key:"1bwicg"}],["path",{d:"M17 20v-6h-2",key:"1qp1so"}],["path",{d:"M15 20h4",key:"1j968p"}]]),av=i("arrow-down-1-0",[["path",{d:"m3 16 4 4 4-4",key:"1co6wj"}],["path",{d:"M7 20V4",key:"1yoxec"}],["path",{d:"M17 10V4h-2",key:"zcsr5x"}],["path",{d:"M15 10h4",key:"id2lce"}],["rect",{x:"15",y:"14",width:"4",height:"6",ry:"2",key:"33xykx"}]]),aw=i("arrow-down-a-z",[["path",{d:"m3 16 4 4 4-4",key:"1co6wj"}],["path",{d:"M7 20V4",key:"1yoxec"}],["path",{d:"M20 8h-5",key:"1vsyxs"}],["path",{d:"M15 10V6.5a2.5 2.5 0 0 1 5 0V10",key:"ag13bf"}],["path",{d:"M15 14h5l-5 6h5",key:"ur5jdg"}]]),ax=i("arrow-down-from-line",[["path",{d:"M19 3H5",key:"1236rx"}],["path",{d:"M12 21V7",key:"gj6g52"}],["path",{d:"m6 15 6 6 6-6",key:"h15q88"}]]),ay=i("arrow-down-left",[["path",{d:"M17 7 7 17",key:"15tmo1"}],["path",{d:"M17 17H7V7",key:"1org7z"}]]),az=i("arrow-down-narrow-wide",[["path",{d:"m3 16 4 4 4-4",key:"1co6wj"}],["path",{d:"M7 20V4",key:"1yoxec"}],["path",{d:"M11 4h4",key:"6d7r33"}],["path",{d:"M11 8h7",key:"djye34"}],["path",{d:"M11 12h10",key:"1438ji"}]]),aA=i("arrow-down-right",[["path",{d:"m7 7 10 10",key:"1fmybs"}],["path",{d:"M17 7v10H7",key:"6fjiku"}]]),aB=i("arrow-down-to-dot",[["path",{d:"M12 2v14",key:"jyx4ut"}],["path",{d:"m19 9-7 7-7-7",key:"1oe3oy"}],["circle",{cx:"12",cy:"21",r:"1",key:"o0uj5v"}]]),aC=i("arrow-down-to-line",[["path",{d:"M12 17V3",key:"1cwfxf"}],["path",{d:"m6 11 6 6 6-6",key:"12ii2o"}],["path",{d:"M19 21H5",key:"150jfl"}]]),aD=i("arrow-down-up",[["path",{d:"m3 16 4 4 4-4",key:"1co6wj"}],["path",{d:"M7 20V4",key:"1yoxec"}],["path",{d:"m21 8-4-4-4 4",key:"1c9v7m"}],["path",{d:"M17 4v16",key:"7dpous"}]]),aE=i("arrow-down-wide-narrow",[["path",{d:"m3 16 4 4 4-4",key:"1co6wj"}],["path",{d:"M7 20V4",key:"1yoxec"}],["path",{d:"M11 4h10",key:"1w87gc"}],["path",{d:"M11 8h7",key:"djye34"}],["path",{d:"M11 12h4",key:"q8tih4"}]]),aF=i("arrow-down-z-a",[["path",{d:"m3 16 4 4 4-4",key:"1co6wj"}],["path",{d:"M7 4v16",key:"1glfcx"}],["path",{d:"M15 4h5l-5 6h5",key:"8asdl1"}],["path",{d:"M15 20v-3.5a2.5 2.5 0 0 1 5 0V20",key:"r6l5cz"}],["path",{d:"M20 18h-5",key:"18j1r2"}]]),aG=i("arrow-down",[["path",{d:"M12 5v14",key:"s699le"}],["path",{d:"m19 12-7 7-7-7",key:"1idqje"}]]),aH=i("arrow-left-from-line",[["path",{d:"m9 6-6 6 6 6",key:"7v63n9"}],["path",{d:"M3 12h14",key:"13k4hi"}],["path",{d:"M21 19V5",key:"b4bplr"}]]),aI=i("arrow-left-right",[["path",{d:"M8 3 4 7l4 4",key:"9rb6wj"}],["path",{d:"M4 7h16",key:"6tx8e3"}],["path",{d:"m16 21 4-4-4-4",key:"siv7j2"}],["path",{d:"M20 17H4",key:"h6l3hr"}]]),aJ=i("arrow-left-to-line",[["path",{d:"M3 19V5",key:"rwsyhb"}],["path",{d:"m13 6-6 6 6 6",key:"1yhaz7"}],["path",{d:"M7 12h14",key:"uoisry"}]]),aK=i("arrow-left",[["path",{d:"m12 19-7-7 7-7",key:"1l729n"}],["path",{d:"M19 12H5",key:"x3x0zl"}]]),aL=i("arrow-right-left",[["path",{d:"m16 3 4 4-4 4",key:"1x1c3m"}],["path",{d:"M20 7H4",key:"zbl0bi"}],["path",{d:"m8 21-4-4 4-4",key:"h9nckh"}],["path",{d:"M4 17h16",key:"g4d7ey"}]]),aM=i("arrow-right-to-line",[["path",{d:"M17 12H3",key:"8awo09"}],["path",{d:"m11 18 6-6-6-6",key:"8c2y43"}],["path",{d:"M21 5v14",key:"nzette"}]]),aN=i("arrow-right-from-line",[["path",{d:"M3 5v14",key:"1nt18q"}],["path",{d:"M21 12H7",key:"13ipq5"}],["path",{d:"m15 18 6-6-6-6",key:"6tx3qv"}]]),aO=i("arrow-right",[["path",{d:"M5 12h14",key:"1ays0h"}],["path",{d:"m12 5 7 7-7 7",key:"xquz4c"}]]),aP=i("arrow-up-0-1",[["path",{d:"m3 8 4-4 4 4",key:"11wl7u"}],["path",{d:"M7 4v16",key:"1glfcx"}],["rect",{x:"15",y:"4",width:"4",height:"6",ry:"2",key:"1bwicg"}],["path",{d:"M17 20v-6h-2",key:"1qp1so"}],["path",{d:"M15 20h4",key:"1j968p"}]]),aQ=i("arrow-up-1-0",[["path",{d:"m3 8 4-4 4 4",key:"11wl7u"}],["path",{d:"M7 4v16",key:"1glfcx"}],["path",{d:"M17 10V4h-2",key:"zcsr5x"}],["path",{d:"M15 10h4",key:"id2lce"}],["rect",{x:"15",y:"14",width:"4",height:"6",ry:"2",key:"33xykx"}]]),aR=i("arrow-up-a-z",[["path",{d:"m3 8 4-4 4 4",key:"11wl7u"}],["path",{d:"M7 4v16",key:"1glfcx"}],["path",{d:"M20 8h-5",key:"1vsyxs"}],["path",{d:"M15 10V6.5a2.5 2.5 0 0 1 5 0V10",key:"ag13bf"}],["path",{d:"M15 14h5l-5 6h5",key:"ur5jdg"}]]),aS=i("arrow-up-down",[["path",{d:"m21 16-4 4-4-4",key:"f6ql7i"}],["path",{d:"M17 20V4",key:"1ejh1v"}],["path",{d:"m3 8 4-4 4 4",key:"11wl7u"}],["path",{d:"M7 4v16",key:"1glfcx"}]]),aT=i("arrow-up-from-dot",[["path",{d:"m5 9 7-7 7 7",key:"1hw5ic"}],["path",{d:"M12 16V2",key:"ywoabb"}],["circle",{cx:"12",cy:"21",r:"1",key:"o0uj5v"}]]),aU=i("arrow-up-from-line",[["path",{d:"m18 9-6-6-6 6",key:"kcunyi"}],["path",{d:"M12 3v14",key:"7cf3v8"}],["path",{d:"M5 21h14",key:"11awu3"}]]),aV=i("arrow-up-left",[["path",{d:"M7 17V7h10",key:"11bw93"}],["path",{d:"M17 17 7 7",key:"2786uv"}]]),aW=i("arrow-up-narrow-wide",[["path",{d:"m3 8 4-4 4 4",key:"11wl7u"}],["path",{d:"M7 4v16",key:"1glfcx"}],["path",{d:"M11 12h4",key:"q8tih4"}],["path",{d:"M11 16h7",key:"uosisv"}],["path",{d:"M11 20h10",key:"jvxblo"}]]),aX=i("arrow-up-right",[["path",{d:"M7 7h10v10",key:"1tivn9"}],["path",{d:"M7 17 17 7",key:"1vkiza"}]]),aY=i("arrow-up-to-line",[["path",{d:"M5 3h14",key:"7usisc"}],["path",{d:"m18 13-6-6-6 6",key:"1kf1n9"}],["path",{d:"M12 7v14",key:"1akyts"}]]),aZ=i("arrow-up-wide-narrow",[["path",{d:"m3 8 4-4 4 4",key:"11wl7u"}],["path",{d:"M7 4v16",key:"1glfcx"}],["path",{d:"M11 12h10",key:"1438ji"}],["path",{d:"M11 16h7",key:"uosisv"}],["path",{d:"M11 20h4",key:"1krc32"}]]),a$=i("arrow-up-z-a",[["path",{d:"m3 8 4-4 4 4",key:"11wl7u"}],["path",{d:"M7 4v16",key:"1glfcx"}],["path",{d:"M15 4h5l-5 6h5",key:"8asdl1"}],["path",{d:"M15 20v-3.5a2.5 2.5 0 0 1 5 0V20",key:"r6l5cz"}],["path",{d:"M20 18h-5",key:"18j1r2"}]]),a_=i("arrow-up",[["path",{d:"m5 12 7-7 7 7",key:"hav0vg"}],["path",{d:"M12 19V5",key:"x0mq9r"}]]),a0=i("arrows-up-from-line",[["path",{d:"m4 6 3-3 3 3",key:"9aidw8"}],["path",{d:"M7 17V3",key:"19qxw1"}],["path",{d:"m14 6 3-3 3 3",key:"6iy689"}],["path",{d:"M17 17V3",key:"o0fmgi"}],["path",{d:"M4 21h16",key:"1h09gz"}]]),a1=i("asterisk",[["path",{d:"M12 6v12",key:"1vza4d"}],["path",{d:"M17.196 9 6.804 15",key:"1ah31z"}],["path",{d:"m6.804 9 10.392 6",key:"1b6pxd"}]]),a2=i("at-sign",[["circle",{cx:"12",cy:"12",r:"4",key:"4exip2"}],["path",{d:"M16 8v5a3 3 0 0 0 6 0v-1a10 10 0 1 0-4 8",key:"7n84p3"}]]),a3=i("atom",[["circle",{cx:"12",cy:"12",r:"1",key:"41hilf"}],["path",{d:"M20.2 20.2c2.04-2.03.02-7.36-4.5-11.9-4.54-4.52-9.87-6.54-11.9-4.5-2.04 2.03-.02 7.36 4.5 11.9 4.54 4.52 9.87 6.54 11.9 4.5Z",key:"1l2ple"}],["path",{d:"M15.7 15.7c4.52-4.54 6.54-9.87 4.5-11.9-2.03-2.04-7.36-.02-11.9 4.5-4.52 4.54-6.54 9.87-4.5 11.9 2.03 2.04 7.36.02 11.9-4.5Z",key:"1wam0m"}]]),a4=i("audio-lines",[["path",{d:"M2 10v3",key:"1fnikh"}],["path",{d:"M6 6v11",key:"11sgs0"}],["path",{d:"M10 3v18",key:"yhl04a"}],["path",{d:"M14 8v7",key:"3a1oy3"}],["path",{d:"M18 5v13",key:"123xd1"}],["path",{d:"M22 10v3",key:"154ddg"}]]),a5=i("audio-waveform",[["path",{d:"M2 13a2 2 0 0 0 2-2V7a2 2 0 0 1 4 0v13a2 2 0 0 0 4 0V4a2 2 0 0 1 4 0v13a2 2 0 0 0 4 0v-4a2 2 0 0 1 2-2",key:"57tc96"}]]),a6=i("award",[["path",{d:"m15.477 12.89 1.515 8.526a.5.5 0 0 1-.81.47l-3.58-2.687a1 1 0 0 0-1.197 0l-3.586 2.686a.5.5 0 0 1-.81-.469l1.514-8.526",key:"1yiouv"}],["circle",{cx:"12",cy:"8",r:"6",key:"1vp47v"}]]),a7=i("axe",[["path",{d:"m14 12-8.381 8.38a1 1 0 0 1-3.001-3L11 9",key:"5z9253"}],["path",{d:"M15 15.5a.5.5 0 0 0 .5.5A6.5 6.5 0 0 0 22 9.5a.5.5 0 0 0-.5-.5h-1.672a2 2 0 0 1-1.414-.586l-5.062-5.062a1.205 1.205 0 0 0-1.704 0L9.352 5.648a1.205 1.205 0 0 0 0 1.704l5.062 5.062A2 2 0 0 1 15 13.828z",key:"19zklq"}]]),a8=i("axis-3d",[["path",{d:"M13.5 10.5 15 9",key:"1nsxvm"}],["path",{d:"M4 4v15a1 1 0 0 0 1 1h15",key:"1w6lkd"}],["path",{d:"M4.293 19.707 6 18",key:"3g1p8c"}],["path",{d:"m9 15 1.5-1.5",key:"1xfbes"}]]),a9=i("baby",[["path",{d:"M10 16c.5.3 1.2.5 2 .5s1.5-.2 2-.5",key:"1u7htd"}],["path",{d:"M15 12h.01",key:"1k8ypt"}],["path",{d:"M19.38 6.813A9 9 0 0 1 20.8 10.2a2 2 0 0 1 0 3.6 9 9 0 0 1-17.6 0 2 2 0 0 1 0-3.6A9 9 0 0 1 12 3c2 0 3.5 1.1 3.5 2.5s-.9 2.5-2 2.5c-.8 0-1.5-.4-1.5-1",key:"11xh7x"}],["path",{d:"M9 12h.01",key:"157uk2"}]]),ba=i("backpack",[["path",{d:"M4 10a4 4 0 0 1 4-4h8a4 4 0 0 1 4 4v10a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2z",key:"1ol0lm"}],["path",{d:"M8 10h8",key:"c7uz4u"}],["path",{d:"M8 18h8",key:"1no2b1"}],["path",{d:"M8 22v-6a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v6",key:"1fr6do"}],["path",{d:"M9 6V4a2 2 0 0 1 2-2h2a2 2 0 0 1 2 2v2",key:"donm21"}]]),bb=i("badge-alert",[["path",{d:"M3.85 8.62a4 4 0 0 1 4.78-4.77 4 4 0 0 1 6.74 0 4 4 0 0 1 4.78 4.78 4 4 0 0 1 0 6.74 4 4 0 0 1-4.77 4.78 4 4 0 0 1-6.75 0 4 4 0 0 1-4.78-4.77 4 4 0 0 1 0-6.76Z",key:"3c2336"}],["line",{x1:"12",x2:"12",y1:"8",y2:"12",key:"1pkeuh"}],["line",{x1:"12",x2:"12.01",y1:"16",y2:"16",key:"4dfq90"}]]),bc=i("badge-cent",[["path",{d:"M3.85 8.62a4 4 0 0 1 4.78-4.77 4 4 0 0 1 6.74 0 4 4 0 0 1 4.78 4.78 4 4 0 0 1 0 6.74 4 4 0 0 1-4.77 4.78 4 4 0 0 1-6.75 0 4 4 0 0 1-4.78-4.77 4 4 0 0 1 0-6.76Z",key:"3c2336"}],["path",{d:"M12 7v10",key:"jspqdw"}],["path",{d:"M15.4 10a4 4 0 1 0 0 4",key:"2eqtx8"}]]),bd=i("badge-check",[["path",{d:"M3.85 8.62a4 4 0 0 1 4.78-4.77 4 4 0 0 1 6.74 0 4 4 0 0 1 4.78 4.78 4 4 0 0 1 0 6.74 4 4 0 0 1-4.77 4.78 4 4 0 0 1-6.75 0 4 4 0 0 1-4.78-4.77 4 4 0 0 1 0-6.76Z",key:"3c2336"}],["path",{d:"m9 12 2 2 4-4",key:"dzmm74"}]]),be=i("badge-dollar-sign",[["path",{d:"M3.85 8.62a4 4 0 0 1 4.78-4.77 4 4 0 0 1 6.74 0 4 4 0 0 1 4.78 4.78 4 4 0 0 1 0 6.74 4 4 0 0 1-4.77 4.78 4 4 0 0 1-6.75 0 4 4 0 0 1-4.78-4.77 4 4 0 0 1 0-6.76Z",key:"3c2336"}],["path",{d:"M16 8h-6a2 2 0 1 0 0 4h4a2 2 0 1 1 0 4H8",key:"1h4pet"}],["path",{d:"M12 18V6",key:"zqpxq5"}]]),bf=i("badge-euro",[["path",{d:"M3.85 8.62a4 4 0 0 1 4.78-4.77 4 4 0 0 1 6.74 0 4 4 0 0 1 4.78 4.78 4 4 0 0 1 0 6.74 4 4 0 0 1-4.77 4.78 4 4 0 0 1-6.75 0 4 4 0 0 1-4.78-4.77 4 4 0 0 1 0-6.76Z",key:"3c2336"}],["path",{d:"M7 12h5",key:"gblrwe"}],["path",{d:"M15 9.4a4 4 0 1 0 0 5.2",key:"1makmb"}]]),bg=i("badge-indian-rupee",[["path",{d:"M3.85 8.62a4 4 0 0 1 4.78-4.77 4 4 0 0 1 6.74 0 4 4 0 0 1 4.78 4.78 4 4 0 0 1 0 6.74 4 4 0 0 1-4.77 4.78 4 4 0 0 1-6.75 0 4 4 0 0 1-4.78-4.77 4 4 0 0 1 0-6.76Z",key:"3c2336"}],["path",{d:"M8 8h8",key:"1bis0t"}],["path",{d:"M8 12h8",key:"1wcyev"}],["path",{d:"m13 17-5-1h1a4 4 0 0 0 0-8",key:"nu2bwa"}]]),bh=i("badge-info",[["path",{d:"M3.85 8.62a4 4 0 0 1 4.78-4.77 4 4 0 0 1 6.74 0 4 4 0 0 1 4.78 4.78 4 4 0 0 1 0 6.74 4 4 0 0 1-4.77 4.78 4 4 0 0 1-6.75 0 4 4 0 0 1-4.78-4.77 4 4 0 0 1 0-6.76Z",key:"3c2336"}],["line",{x1:"12",x2:"12",y1:"16",y2:"12",key:"1y1yb1"}],["line",{x1:"12",x2:"12.01",y1:"8",y2:"8",key:"110wyk"}]]),bi=i("badge-japanese-yen",[["path",{d:"M3.85 8.62a4 4 0 0 1 4.78-4.77 4 4 0 0 1 6.74 0 4 4 0 0 1 4.78 4.78 4 4 0 0 1 0 6.74 4 4 0 0 1-4.77 4.78 4 4 0 0 1-6.75 0 4 4 0 0 1-4.78-4.77 4 4 0 0 1 0-6.76Z",key:"3c2336"}],["path",{d:"m9 8 3 3v7",key:"17yadx"}],["path",{d:"m12 11 3-3",key:"p4cfq1"}],["path",{d:"M9 12h6",key:"1c52cq"}],["path",{d:"M9 16h6",key:"8wimt3"}]]),bj=i("badge-minus",[["path",{d:"M3.85 8.62a4 4 0 0 1 4.78-4.77 4 4 0 0 1 6.74 0 4 4 0 0 1 4.78 4.78 4 4 0 0 1 0 6.74 4 4 0 0 1-4.77 4.78 4 4 0 0 1-6.75 0 4 4 0 0 1-4.78-4.77 4 4 0 0 1 0-6.76Z",key:"3c2336"}],["line",{x1:"8",x2:"16",y1:"12",y2:"12",key:"1jonct"}]]),bk=i("badge-percent",[["path",{d:"M3.85 8.62a4 4 0 0 1 4.78-4.77 4 4 0 0 1 6.74 0 4 4 0 0 1 4.78 4.78 4 4 0 0 1 0 6.74 4 4 0 0 1-4.77 4.78 4 4 0 0 1-6.75 0 4 4 0 0 1-4.78-4.77 4 4 0 0 1 0-6.76Z",key:"3c2336"}],["path",{d:"m15 9-6 6",key:"1uzhvr"}],["path",{d:"M9 9h.01",key:"1q5me6"}],["path",{d:"M15 15h.01",key:"lqbp3k"}]]),bl=i("badge-plus",[["path",{d:"M3.85 8.62a4 4 0 0 1 4.78-4.77 4 4 0 0 1 6.74 0 4 4 0 0 1 4.78 4.78 4 4 0 0 1 0 6.74 4 4 0 0 1-4.77 4.78 4 4 0 0 1-6.75 0 4 4 0 0 1-4.78-4.77 4 4 0 0 1 0-6.76Z",key:"3c2336"}],["line",{x1:"12",x2:"12",y1:"8",y2:"16",key:"10p56q"}],["line",{x1:"8",x2:"16",y1:"12",y2:"12",key:"1jonct"}]]),bm=i("badge-pound-sterling",[["path",{d:"M3.85 8.62a4 4 0 0 1 4.78-4.77 4 4 0 0 1 6.74 0 4 4 0 0 1 4.78 4.78 4 4 0 0 1 0 6.74 4 4 0 0 1-4.77 4.78 4 4 0 0 1-6.75 0 4 4 0 0 1-4.78-4.77 4 4 0 0 1 0-6.76Z",key:"3c2336"}],["path",{d:"M8 12h4",key:"qz6y1c"}],["path",{d:"M10 16V9.5a2.5 2.5 0 0 1 5 0",key:"3mlbjk"}],["path",{d:"M8 16h7",key:"sbedsn"}]]),bn=i("badge-question-mark",[["path",{d:"M3.85 8.62a4 4 0 0 1 4.78-4.77 4 4 0 0 1 6.74 0 4 4 0 0 1 4.78 4.78 4 4 0 0 1 0 6.74 4 4 0 0 1-4.77 4.78 4 4 0 0 1-6.75 0 4 4 0 0 1-4.78-4.77 4 4 0 0 1 0-6.76Z",key:"3c2336"}],["path",{d:"M9.09 9a3 3 0 0 1 5.83 1c0 2-3 3-3 3",key:"1u773s"}],["line",{x1:"12",x2:"12.01",y1:"17",y2:"17",key:"io3f8k"}]]),bo=i("badge-russian-ruble",[["path",{d:"M3.85 8.62a4 4 0 0 1 4.78-4.77 4 4 0 0 1 6.74 0 4 4 0 0 1 4.78 4.78 4 4 0 0 1 0 6.74 4 4 0 0 1-4.77 4.78 4 4 0 0 1-6.75 0 4 4 0 0 1-4.78-4.77 4 4 0 0 1 0-6.76Z",key:"3c2336"}],["path",{d:"M9 16h5",key:"1syiyw"}],["path",{d:"M9 12h5a2 2 0 1 0 0-4h-3v9",key:"1ge9c1"}]]),bp=i("badge-swiss-franc",[["path",{d:"M3.85 8.62a4 4 0 0 1 4.78-4.77 4 4 0 0 1 6.74 0 4 4 0 0 1 4.78 4.78 4 4 0 0 1 0 6.74 4 4 0 0 1-4.77 4.78 4 4 0 0 1-6.75 0 4 4 0 0 1-4.78-4.77 4 4 0 0 1 0-6.76Z",key:"3c2336"}],["path",{d:"M11 17V8h4",key:"1bfq6y"}],["path",{d:"M11 12h3",key:"2eqnfz"}],["path",{d:"M9 16h4",key:"1skf3a"}]]),bq=i("badge-x",[["path",{d:"M3.85 8.62a4 4 0 0 1 4.78-4.77 4 4 0 0 1 6.74 0 4 4 0 0 1 4.78 4.78 4 4 0 0 1 0 6.74 4 4 0 0 1-4.77 4.78 4 4 0 0 1-6.75 0 4 4 0 0 1-4.78-4.77 4 4 0 0 1 0-6.76Z",key:"3c2336"}],["line",{x1:"15",x2:"9",y1:"9",y2:"15",key:"f7djnv"}],["line",{x1:"9",x2:"15",y1:"9",y2:"15",key:"1shsy8"}]]),br=i("badge",[["path",{d:"M3.85 8.62a4 4 0 0 1 4.78-4.77 4 4 0 0 1 6.74 0 4 4 0 0 1 4.78 4.78 4 4 0 0 1 0 6.74 4 4 0 0 1-4.77 4.78 4 4 0 0 1-6.75 0 4 4 0 0 1-4.78-4.77 4 4 0 0 1 0-6.76Z",key:"3c2336"}]]),bs=i("baggage-claim",[["path",{d:"M22 18H6a2 2 0 0 1-2-2V7a2 2 0 0 0-2-2",key:"4irg2o"}],["path",{d:"M17 14V4a2 2 0 0 0-2-2h-1a2 2 0 0 0-2 2v10",key:"14fcyx"}],["rect",{width:"13",height:"8",x:"8",y:"6",rx:"1",key:"o6oiis"}],["circle",{cx:"18",cy:"20",r:"2",key:"t9985n"}],["circle",{cx:"9",cy:"20",r:"2",key:"e5v82j"}]]),bt=i("ban",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"m4.9 4.9 14.2 14.2",key:"1m5liu"}]]),bu=i("banana",[["path",{d:"M4 13c3.5-2 8-2 10 2a5.5 5.5 0 0 1 8 5",key:"1cscit"}],["path",{d:"M5.15 17.89c5.52-1.52 8.65-6.89 7-12C11.55 4 11.5 2 13 2c3.22 0 5 5.5 5 8 0 6.5-4.2 12-10.49 12C5.11 22 2 22 2 20c0-1.5 1.14-1.55 3.15-2.11Z",key:"1y1nbv"}]]),bv=i("bandage",[["path",{d:"M10 10.01h.01",key:"1e9xi7"}],["path",{d:"M10 14.01h.01",key:"ac23bv"}],["path",{d:"M14 10.01h.01",key:"2wfrvf"}],["path",{d:"M14 14.01h.01",key:"8tw8yn"}],["path",{d:"M18 6v11.5",key:"dkbidh"}],["path",{d:"M6 6v12",key:"vkc79e"}],["rect",{x:"2",y:"6",width:"20",height:"12",rx:"2",key:"1wpnh2"}]]),bw=i("banknote-arrow-down",[["path",{d:"M12 18H4a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2v5",key:"x6cv4u"}],["path",{d:"m16 19 3 3 3-3",key:"1ibux0"}],["path",{d:"M18 12h.01",key:"yjnet6"}],["path",{d:"M19 16v6",key:"tddt3s"}],["path",{d:"M6 12h.01",key:"c2rlol"}],["circle",{cx:"12",cy:"12",r:"2",key:"1c9p78"}]]),bx=i("banknote-arrow-up",[["path",{d:"M12 18H4a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2v5",key:"x6cv4u"}],["path",{d:"M18 12h.01",key:"yjnet6"}],["path",{d:"M19 22v-6",key:"qhmiwi"}],["path",{d:"m22 19-3-3-3 3",key:"rn6bg2"}],["path",{d:"M6 12h.01",key:"c2rlol"}],["circle",{cx:"12",cy:"12",r:"2",key:"1c9p78"}]]),by=i("banknote-x",[["path",{d:"M13 18H4a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2v5",key:"16nib6"}],["path",{d:"m17 17 5 5",key:"p7ous7"}],["path",{d:"M18 12h.01",key:"yjnet6"}],["path",{d:"m22 17-5 5",key:"gqnmv0"}],["path",{d:"M6 12h.01",key:"c2rlol"}],["circle",{cx:"12",cy:"12",r:"2",key:"1c9p78"}]]),bz=i("barcode",[["path",{d:"M3 5v14",key:"1nt18q"}],["path",{d:"M8 5v14",key:"1ybrkv"}],["path",{d:"M12 5v14",key:"s699le"}],["path",{d:"M17 5v14",key:"ycjyhj"}],["path",{d:"M21 5v14",key:"nzette"}]]),bA=i("banknote",[["rect",{width:"20",height:"12",x:"2",y:"6",rx:"2",key:"9lu3g6"}],["circle",{cx:"12",cy:"12",r:"2",key:"1c9p78"}],["path",{d:"M6 12h.01M18 12h.01",key:"113zkx"}]]),bB=i("barrel",[["path",{d:"M10 3a41 41 0 0 0 0 18",key:"1qcnzb"}],["path",{d:"M14 3a41 41 0 0 1 0 18",key:"547vd4"}],["path",{d:"M17 3a2 2 0 0 1 1.68.92 15.25 15.25 0 0 1 0 16.16A2 2 0 0 1 17 21H7a2 2 0 0 1-1.68-.92 15.25 15.25 0 0 1 0-16.16A2 2 0 0 1 7 3z",key:"1wepyy"}],["path",{d:"M3.84 17h16.32",key:"1wh981"}],["path",{d:"M3.84 7h16.32",key:"19jf4x"}]]),bC=i("baseline",[["path",{d:"M4 20h16",key:"14thso"}],["path",{d:"m6 16 6-12 6 12",key:"1b4byz"}],["path",{d:"M8 12h8",key:"1wcyev"}]]),bD=i("bath",[["path",{d:"M10 4 8 6",key:"1rru8s"}],["path",{d:"M17 19v2",key:"ts1sot"}],["path",{d:"M2 12h20",key:"9i4pu4"}],["path",{d:"M7 19v2",key:"12npes"}],["path",{d:"M9 5 7.621 3.621A2.121 2.121 0 0 0 4 5v12a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2v-5",key:"14ym8i"}]]),bE=i("battery-charging",[["path",{d:"m11 7-3 5h4l-3 5",key:"b4a64w"}],["path",{d:"M14.856 6H16a2 2 0 0 1 2 2v8a2 2 0 0 1-2 2h-2.935",key:"lre1cr"}],["path",{d:"M22 14v-4",key:"14q9d5"}],["path",{d:"M5.14 18H4a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h2.936",key:"13q5k0"}]]),bF=i("battery-full",[["path",{d:"M10 10v4",key:"1mb2ec"}],["path",{d:"M14 10v4",key:"1nt88p"}],["path",{d:"M22 14v-4",key:"14q9d5"}],["path",{d:"M6 10v4",key:"1n77qd"}],["rect",{x:"2",y:"6",width:"16",height:"12",rx:"2",key:"13zb55"}]]),bG=i("battery-low",[["path",{d:"M22 14v-4",key:"14q9d5"}],["path",{d:"M6 14v-4",key:"14a6bd"}],["rect",{x:"2",y:"6",width:"16",height:"12",rx:"2",key:"13zb55"}]]),bH=i("battery-medium",[["path",{d:"M10 14v-4",key:"suye4c"}],["path",{d:"M22 14v-4",key:"14q9d5"}],["path",{d:"M6 14v-4",key:"14a6bd"}],["rect",{x:"2",y:"6",width:"16",height:"12",rx:"2",key:"13zb55"}]]),bI=i("battery-plus",[["path",{d:"M10 9v6",key:"17i7lo"}],["path",{d:"M12.543 6H16a2 2 0 0 1 2 2v8a2 2 0 0 1-2 2h-3.605",key:"o09yah"}],["path",{d:"M22 14v-4",key:"14q9d5"}],["path",{d:"M7 12h6",key:"iekk3h"}],["path",{d:"M7.606 18H4a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h3.606",key:"xyqvf1"}]]),bJ=i("battery-warning",[["path",{d:"M10 17h.01",key:"nbq80n"}],["path",{d:"M10 7v6",key:"nne03l"}],["path",{d:"M14 6h2a2 2 0 0 1 2 2v8a2 2 0 0 1-2 2h-2",key:"1m83kb"}],["path",{d:"M22 14v-4",key:"14q9d5"}],["path",{d:"M6 18H4a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h2",key:"h8lgfh"}]]),bK=i("battery",[["path",{d:"M 22 14 L 22 10",key:"nqc4tb"}],["rect",{x:"2",y:"6",width:"16",height:"12",rx:"2",key:"13zb55"}]]),bL=i("beaker",[["path",{d:"M4.5 3h15",key:"c7n0jr"}],["path",{d:"M6 3v16a2 2 0 0 0 2 2h8a2 2 0 0 0 2-2V3",key:"m1uhx7"}],["path",{d:"M6 14h12",key:"4cwo0f"}]]),bM=i("bean-off",[["path",{d:"M9 9c-.64.64-1.521.954-2.402 1.165A6 6 0 0 0 8 22a13.96 13.96 0 0 0 9.9-4.1",key:"bq3udt"}],["path",{d:"M10.75 5.093A6 6 0 0 1 22 8c0 2.411-.61 4.68-1.683 6.66",key:"17ccse"}],["path",{d:"M5.341 10.62a4 4 0 0 0 6.487 1.208M10.62 5.341a4.015 4.015 0 0 1 2.039 2.04",key:"18zqgq"}],["line",{x1:"2",x2:"22",y1:"2",y2:"22",key:"a6p6uj"}]]),bN=i("bed-double",[["path",{d:"M2 20v-8a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2v8",key:"1k78r4"}],["path",{d:"M4 10V6a2 2 0 0 1 2-2h12a2 2 0 0 1 2 2v4",key:"fb3tl2"}],["path",{d:"M12 4v6",key:"1dcgq2"}],["path",{d:"M2 18h20",key:"ajqnye"}]]),bO=i("bean",[["path",{d:"M10.165 6.598C9.954 7.478 9.64 8.36 9 9c-.64.64-1.521.954-2.402 1.165A6 6 0 0 0 8 22c7.732 0 14-6.268 14-14a6 6 0 0 0-11.835-1.402Z",key:"1tvzk7"}],["path",{d:"M5.341 10.62a4 4 0 1 0 5.279-5.28",key:"2cyri2"}]]),bP=i("bed-single",[["path",{d:"M3 20v-8a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2v8",key:"1wm6mi"}],["path",{d:"M5 10V6a2 2 0 0 1 2-2h10a2 2 0 0 1 2 2v4",key:"4k93s5"}],["path",{d:"M3 18h18",key:"1h113x"}]]),bQ=i("bed",[["path",{d:"M2 4v16",key:"vw9hq8"}],["path",{d:"M2 8h18a2 2 0 0 1 2 2v10",key:"1dgv2r"}],["path",{d:"M2 17h20",key:"18nfp3"}],["path",{d:"M6 8v9",key:"1yriud"}]]),bR=i("beer-off",[["path",{d:"M13 13v5",key:"igwfh0"}],["path",{d:"M17 11.47V8",key:"16yw0g"}],["path",{d:"M17 11h1a3 3 0 0 1 2.745 4.211",key:"1xbt65"}],["path",{d:"m2 2 20 20",key:"1ooewy"}],["path",{d:"M5 8v12a2 2 0 0 0 2 2h8a2 2 0 0 0 2-2v-3",key:"c55o3e"}],["path",{d:"M7.536 7.535C6.766 7.649 6.154 8 5.5 8a2.5 2.5 0 0 1-1.768-4.268",key:"1ydug7"}],["path",{d:"M8.727 3.204C9.306 2.767 9.885 2 11 2c1.56 0 2 1.5 3 1.5s1.72-.5 2.5-.5a1 1 0 1 1 0 5c-.78 0-1.5-.5-2.5-.5a3.149 3.149 0 0 0-.842.12",key:"q81o7q"}],["path",{d:"M9 14.6V18",key:"20ek98"}]]),bS=i("beef",[["path",{d:"M16.4 13.7A6.5 6.5 0 1 0 6.28 6.6c-1.1 3.13-.78 3.9-3.18 6.08A3 3 0 0 0 5 18c4 0 8.4-1.8 11.4-4.3",key:"cisjcv"}],["path",{d:"m18.5 6 2.19 4.5a6.48 6.48 0 0 1-2.29 7.2C15.4 20.2 11 22 7 22a3 3 0 0 1-2.68-1.66L2.4 16.5",key:"5byaag"}],["circle",{cx:"12.5",cy:"8.5",r:"2.5",key:"9738u8"}]]),bT=i("beer",[["path",{d:"M17 11h1a3 3 0 0 1 0 6h-1",key:"1yp76v"}],["path",{d:"M9 12v6",key:"1u1cab"}],["path",{d:"M13 12v6",key:"1sugkk"}],["path",{d:"M14 7.5c-1 0-1.44.5-3 .5s-2-.5-3-.5-1.72.5-2.5.5a2.5 2.5 0 0 1 0-5c.78 0 1.57.5 2.5.5S9.44 2 11 2s2 1.5 3 1.5 1.72-.5 2.5-.5a2.5 2.5 0 0 1 0 5c-.78 0-1.5-.5-2.5-.5Z",key:"1510fo"}],["path",{d:"M5 8v12a2 2 0 0 0 2 2h8a2 2 0 0 0 2-2V8",key:"19jb7n"}]]),bU=i("bell-dot",[["path",{d:"M10.268 21a2 2 0 0 0 3.464 0",key:"vwvbt9"}],["path",{d:"M13.916 2.314A6 6 0 0 0 6 8c0 4.499-1.411 5.956-2.74 7.327A1 1 0 0 0 4 17h16a1 1 0 0 0 .74-1.673 9 9 0 0 1-.585-.665",key:"1tip0g"}],["circle",{cx:"18",cy:"8",r:"3",key:"1g0gzu"}]]),bV=i("bell-electric",[["path",{d:"M18.518 17.347A7 7 0 0 1 14 19",key:"1emhpo"}],["path",{d:"M18.8 4A11 11 0 0 1 20 9",key:"127b67"}],["path",{d:"M9 9h.01",key:"1q5me6"}],["circle",{cx:"20",cy:"16",r:"2",key:"1v9bxh"}],["circle",{cx:"9",cy:"9",r:"7",key:"p2h5vp"}],["rect",{x:"4",y:"16",width:"10",height:"6",rx:"2",key:"bfnviv"}]]),bW=i("bell-minus",[["path",{d:"M10.268 21a2 2 0 0 0 3.464 0",key:"vwvbt9"}],["path",{d:"M15 8h6",key:"8ybuxh"}],["path",{d:"M16.243 3.757A6 6 0 0 0 6 8c0 4.499-1.411 5.956-2.738 7.326A1 1 0 0 0 4 17h16a1 1 0 0 0 .74-1.673A9.4 9.4 0 0 1 18.667 12",key:"bdwj86"}]]),bX=i("bell-off",[["path",{d:"M10.268 21a2 2 0 0 0 3.464 0",key:"vwvbt9"}],["path",{d:"M17 17H4a1 1 0 0 1-.74-1.673C4.59 13.956 6 12.499 6 8a6 6 0 0 1 .258-1.742",key:"178tsu"}],["path",{d:"m2 2 20 20",key:"1ooewy"}],["path",{d:"M8.668 3.01A6 6 0 0 1 18 8c0 2.687.77 4.653 1.707 6.05",key:"1hqiys"}]]),bY=i("bell-plus",[["path",{d:"M10.268 21a2 2 0 0 0 3.464 0",key:"vwvbt9"}],["path",{d:"M15 8h6",key:"8ybuxh"}],["path",{d:"M18 5v6",key:"g5ayrv"}],["path",{d:"M20.002 14.464a9 9 0 0 0 .738.863A1 1 0 0 1 20 17H4a1 1 0 0 1-.74-1.673C4.59 13.956 6 12.499 6 8a6 6 0 0 1 8.75-5.332",key:"1abcvy"}]]),bZ=i("bell-ring",[["path",{d:"M10.268 21a2 2 0 0 0 3.464 0",key:"vwvbt9"}],["path",{d:"M22 8c0-2.3-.8-4.3-2-6",key:"5bb3ad"}],["path",{d:"M3.262 15.326A1 1 0 0 0 4 17h16a1 1 0 0 0 .74-1.673C19.41 13.956 18 12.499 18 8A6 6 0 0 0 6 8c0 4.499-1.411 5.956-2.738 7.326",key:"11g9vi"}],["path",{d:"M4 2C2.8 3.7 2 5.7 2 8",key:"tap9e0"}]]),b$=i("bell",[["path",{d:"M10.268 21a2 2 0 0 0 3.464 0",key:"vwvbt9"}],["path",{d:"M3.262 15.326A1 1 0 0 0 4 17h16a1 1 0 0 0 .74-1.673C19.41 13.956 18 12.499 18 8A6 6 0 0 0 6 8c0 4.499-1.411 5.956-2.738 7.326",key:"11g9vi"}]]),b_=i("between-horizontal-end",[["rect",{width:"13",height:"7",x:"3",y:"3",rx:"1",key:"11xb64"}],["path",{d:"m22 15-3-3 3-3",key:"26chmm"}],["rect",{width:"13",height:"7",x:"3",y:"14",rx:"1",key:"k6ky7n"}]]),b0=i("between-horizontal-start",[["rect",{width:"13",height:"7",x:"8",y:"3",rx:"1",key:"pkso9a"}],["path",{d:"m2 9 3 3-3 3",key:"1agib5"}],["rect",{width:"13",height:"7",x:"8",y:"14",rx:"1",key:"1q5fc1"}]]),b1=i("between-vertical-end",[["rect",{width:"7",height:"13",x:"3",y:"3",rx:"1",key:"1fdu0f"}],["path",{d:"m9 22 3-3 3 3",key:"17z65a"}],["rect",{width:"7",height:"13",x:"14",y:"3",rx:"1",key:"1squn4"}]]),b2=i("between-vertical-start",[["rect",{width:"7",height:"13",x:"3",y:"8",rx:"1",key:"1fjrkv"}],["path",{d:"m15 2-3 3-3-3",key:"1uh6eb"}],["rect",{width:"7",height:"13",x:"14",y:"8",rx:"1",key:"w3fjg8"}]]),b3=i("biceps-flexed",[["path",{d:"M12.409 13.017A5 5 0 0 1 22 15c0 3.866-4 7-9 7-4.077 0-8.153-.82-10.371-2.462-.426-.316-.631-.832-.62-1.362C2.118 12.723 2.627 2 10 2a3 3 0 0 1 3 3 2 2 0 0 1-2 2c-1.105 0-1.64-.444-2-1",key:"1pmlyh"}],["path",{d:"M15 14a5 5 0 0 0-7.584 2",key:"5rb254"}],["path",{d:"M9.964 6.825C8.019 7.977 9.5 13 8 15",key:"kbvsx9"}]]),b4=i("bike",[["circle",{cx:"18.5",cy:"17.5",r:"3.5",key:"15x4ox"}],["circle",{cx:"5.5",cy:"17.5",r:"3.5",key:"1noe27"}],["circle",{cx:"15",cy:"5",r:"1",key:"19l28e"}],["path",{d:"M12 17.5V14l-3-3 4-3 2 3h2",key:"1npguv"}]]),b5=i("binary",[["rect",{x:"14",y:"14",width:"4",height:"6",rx:"2",key:"p02svl"}],["rect",{x:"6",y:"4",width:"4",height:"6",rx:"2",key:"xm4xkj"}],["path",{d:"M6 20h4",key:"1i6q5t"}],["path",{d:"M14 10h4",key:"ru81e7"}],["path",{d:"M6 14h2v6",key:"16z9wg"}],["path",{d:"M14 4h2v6",key:"1idq9u"}]]),b6=i("binoculars",[["path",{d:"M10 10h4",key:"tcdvrf"}],["path",{d:"M19 7V4a1 1 0 0 0-1-1h-2a1 1 0 0 0-1 1v3",key:"3apit1"}],["path",{d:"M20 21a2 2 0 0 0 2-2v-3.851c0-1.39-2-2.962-2-4.829V8a1 1 0 0 0-1-1h-4a1 1 0 0 0-1 1v11a2 2 0 0 0 2 2z",key:"rhpgnw"}],["path",{d:"M 22 16 L 2 16",key:"14lkq7"}],["path",{d:"M4 21a2 2 0 0 1-2-2v-3.851c0-1.39 2-2.962 2-4.829V8a1 1 0 0 1 1-1h4a1 1 0 0 1 1 1v11a2 2 0 0 1-2 2z",key:"104b3k"}],["path",{d:"M9 7V4a1 1 0 0 0-1-1H6a1 1 0 0 0-1 1v3",key:"14fczp"}]]),b7=i("biohazard",[["circle",{cx:"12",cy:"11.9",r:"2",key:"e8h31w"}],["path",{d:"M6.7 3.4c-.9 2.5 0 5.2 2.2 6.7C6.5 9 3.7 9.6 2 11.6",key:"17bolr"}],["path",{d:"m8.9 10.1 1.4.8",key:"15ezny"}],["path",{d:"M17.3 3.4c.9 2.5 0 5.2-2.2 6.7 2.4-1.2 5.2-.6 6.9 1.5",key:"wtwa5u"}],["path",{d:"m15.1 10.1-1.4.8",key:"1r0b28"}],["path",{d:"M16.7 20.8c-2.6-.4-4.6-2.6-4.7-5.3-.2 2.6-2.1 4.8-4.7 5.2",key:"m7qszh"}],["path",{d:"M12 13.9v1.6",key:"zfyyim"}],["path",{d:"M13.5 5.4c-1-.2-2-.2-3 0",key:"1bi9q0"}],["path",{d:"M17 16.4c.7-.7 1.2-1.6 1.5-2.5",key:"1rhjqw"}],["path",{d:"M5.5 13.9c.3.9.8 1.8 1.5 2.5",key:"8gsud3"}]]),b8=i("bird",[["path",{d:"M16 7h.01",key:"1kdx03"}],["path",{d:"M3.4 18H12a8 8 0 0 0 8-8V7a4 4 0 0 0-7.28-2.3L2 20",key:"oj1oa8"}],["path",{d:"m20 7 2 .5-2 .5",key:"12nv4d"}],["path",{d:"M10 18v3",key:"1yea0a"}],["path",{d:"M14 17.75V21",key:"1pymcb"}],["path",{d:"M7 18a6 6 0 0 0 3.84-10.61",key:"1npnn0"}]]),b9=i("bitcoin",[["path",{d:"M11.767 19.089c4.924.868 6.14-6.025 1.216-6.894m-1.216 6.894L5.86 18.047m5.908 1.042-.347 1.97m1.563-8.864c4.924.869 6.14-6.025 1.215-6.893m-1.215 6.893-3.94-.694m5.155-6.2L8.29 4.26m5.908 1.042.348-1.97M7.48 20.364l3.126-17.727",key:"yr8idg"}]]),ca=i("blend",[["circle",{cx:"9",cy:"9",r:"7",key:"p2h5vp"}],["circle",{cx:"15",cy:"15",r:"7",key:"19ennj"}]]),cb=i("blinds",[["path",{d:"M3 3h18",key:"o7r712"}],["path",{d:"M20 7H8",key:"gd2fo2"}],["path",{d:"M20 11H8",key:"1ynp89"}],["path",{d:"M10 19h10",key:"19hjk5"}],["path",{d:"M8 15h12",key:"1yqzne"}],["path",{d:"M4 3v14",key:"fggqzn"}],["circle",{cx:"4",cy:"19",r:"2",key:"p3m9r0"}]]),cc=i("blocks",[["path",{d:"M10 22V7a1 1 0 0 0-1-1H4a2 2 0 0 0-2 2v12a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2v-5a1 1 0 0 0-1-1H2",key:"1ah6g2"}],["rect",{x:"14",y:"2",width:"8",height:"8",rx:"1",key:"88lufb"}]]),cd=i("bluetooth-connected",[["path",{d:"m7 7 10 10-5 5V2l5 5L7 17",key:"1q5490"}],["line",{x1:"18",x2:"21",y1:"12",y2:"12",key:"1rsjjs"}],["line",{x1:"3",x2:"6",y1:"12",y2:"12",key:"11yl8c"}]]),ce=i("bluetooth-off",[["path",{d:"m17 17-5 5V12l-5 5",key:"v5aci6"}],["path",{d:"m2 2 20 20",key:"1ooewy"}],["path",{d:"M14.5 9.5 17 7l-5-5v4.5",key:"1kddfz"}]]),cf=i("bluetooth-searching",[["path",{d:"m7 7 10 10-5 5V2l5 5L7 17",key:"1q5490"}],["path",{d:"M20.83 14.83a4 4 0 0 0 0-5.66",key:"k8tn1j"}],["path",{d:"M18 12h.01",key:"yjnet6"}]]),cg=i("bluetooth",[["path",{d:"m7 7 10 10-5 5V2l5 5L7 17",key:"1q5490"}]]),ch=i("bold",[["path",{d:"M6 12h9a4 4 0 0 1 0 8H7a1 1 0 0 1-1-1V5a1 1 0 0 1 1-1h7a4 4 0 0 1 0 8",key:"mg9rjx"}]]),ci=i("bolt",[["path",{d:"M21 16V8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73l7 4a2 2 0 0 0 2 0l7-4A2 2 0 0 0 21 16z",key:"yt0hxn"}],["circle",{cx:"12",cy:"12",r:"4",key:"4exip2"}]]),cj=i("bomb",[["circle",{cx:"11",cy:"13",r:"9",key:"hd149"}],["path",{d:"M14.35 4.65 16.3 2.7a2.41 2.41 0 0 1 3.4 0l1.6 1.6a2.4 2.4 0 0 1 0 3.4l-1.95 1.95",key:"jp4j1b"}],["path",{d:"m22 2-1.5 1.5",key:"ay92ug"}]]),ck=i("bone",[["path",{d:"M17 10c.7-.7 1.69 0 2.5 0a2.5 2.5 0 1 0 0-5 .5.5 0 0 1-.5-.5 2.5 2.5 0 1 0-5 0c0 .81.7 1.8 0 2.5l-7 7c-.7.7-1.69 0-2.5 0a2.5 2.5 0 0 0 0 5c.28 0 .5.22.5.5a2.5 2.5 0 1 0 5 0c0-.81-.7-1.8 0-2.5Z",key:"w610uw"}]]),cl=i("book-a",[["path",{d:"M4 19.5v-15A2.5 2.5 0 0 1 6.5 2H19a1 1 0 0 1 1 1v18a1 1 0 0 1-1 1H6.5a1 1 0 0 1 0-5H20",key:"k3hazp"}],["path",{d:"m8 13 4-7 4 7",key:"4rari8"}],["path",{d:"M9.1 11h5.7",key:"1gkovt"}]]),cm=i("book-audio",[["path",{d:"M12 6v7",key:"1f6ttz"}],["path",{d:"M16 8v3",key:"gejaml"}],["path",{d:"M4 19.5v-15A2.5 2.5 0 0 1 6.5 2H19a1 1 0 0 1 1 1v18a1 1 0 0 1-1 1H6.5a1 1 0 0 1 0-5H20",key:"k3hazp"}],["path",{d:"M8 8v3",key:"1qzp49"}]]),cn=i("book-alert",[["path",{d:"M12 13h.01",key:"y0uutt"}],["path",{d:"M12 6v3",key:"1m4b9j"}],["path",{d:"M4 19.5v-15A2.5 2.5 0 0 1 6.5 2H19a1 1 0 0 1 1 1v18a1 1 0 0 1-1 1H6.5a1 1 0 0 1 0-5H20",key:"k3hazp"}]]),co=i("book-check",[["path",{d:"M4 19.5v-15A2.5 2.5 0 0 1 6.5 2H19a1 1 0 0 1 1 1v18a1 1 0 0 1-1 1H6.5a1 1 0 0 1 0-5H20",key:"k3hazp"}],["path",{d:"m9 9.5 2 2 4-4",key:"1dth82"}]]),cp=i("book-copy",[["path",{d:"M2 16V4a2 2 0 0 1 2-2h11",key:"spzkk5"}],["path",{d:"M22 18H11a2 2 0 1 0 0 4h10.5a.5.5 0 0 0 .5-.5v-15a.5.5 0 0 0-.5-.5H11a2 2 0 0 0-2 2v12",key:"1wz07i"}],["path",{d:"M5 14H4a2 2 0 1 0 0 4h1",key:"16gqf9"}]]),cq=i("book-dashed",[["path",{d:"M12 17h1.5",key:"1gkc67"}],["path",{d:"M12 22h1.5",key:"1my7sn"}],["path",{d:"M12 2h1.5",key:"19tvb7"}],["path",{d:"M17.5 22H19a1 1 0 0 0 1-1",key:"10akbh"}],["path",{d:"M17.5 2H19a1 1 0 0 1 1 1v1.5",key:"1vrfjs"}],["path",{d:"M20 14v3h-2.5",key:"1naeju"}],["path",{d:"M20 8.5V10",key:"1ctpfu"}],["path",{d:"M4 10V8.5",key:"1o3zg5"}],["path",{d:"M4 19.5V14",key:"ob81pf"}],["path",{d:"M4 4.5A2.5 2.5 0 0 1 6.5 2H8",key:"s8vcyb"}],["path",{d:"M8 22H6.5a1 1 0 0 1 0-5H8",key:"1cu73q"}]]),cr=i("book-down",[["path",{d:"M12 13V7",key:"h0r20n"}],["path",{d:"M4 19.5v-15A2.5 2.5 0 0 1 6.5 2H19a1 1 0 0 1 1 1v18a1 1 0 0 1-1 1H6.5a1 1 0 0 1 0-5H20",key:"k3hazp"}],["path",{d:"m9 10 3 3 3-3",key:"zt5b4y"}]]),cs=i("book-headphones",[["path",{d:"M4 19.5v-15A2.5 2.5 0 0 1 6.5 2H19a1 1 0 0 1 1 1v18a1 1 0 0 1-1 1H6.5a1 1 0 0 1 0-5H20",key:"k3hazp"}],["path",{d:"M8 12v-2a4 4 0 0 1 8 0v2",key:"1vsqkj"}],["circle",{cx:"15",cy:"12",r:"1",key:"1tmaij"}],["circle",{cx:"9",cy:"12",r:"1",key:"1vctgf"}]]),ct=i("book-heart",[["path",{d:"M16 8.2A2.22 2.22 0 0 0 13.8 6c-.8 0-1.4.3-1.8.9-.4-.6-1-.9-1.8-.9A2.22 2.22 0 0 0 8 8.2c0 .6.3 1.2.7 1.6A226.652 226.652 0 0 0 12 13a404 404 0 0 0 3.3-3.1 2.413 2.413 0 0 0 .7-1.7",key:"1t75a8"}],["path",{d:"M4 19.5v-15A2.5 2.5 0 0 1 6.5 2H19a1 1 0 0 1 1 1v18a1 1 0 0 1-1 1H6.5a1 1 0 0 1 0-5H20",key:"k3hazp"}]]),cu=i("book-image",[["path",{d:"m20 13.7-2.1-2.1a2 2 0 0 0-2.8 0L9.7 17",key:"q6ojf0"}],["path",{d:"M4 19.5v-15A2.5 2.5 0 0 1 6.5 2H19a1 1 0 0 1 1 1v18a1 1 0 0 1-1 1H6.5a1 1 0 0 1 0-5H20",key:"k3hazp"}],["circle",{cx:"10",cy:"8",r:"2",key:"2qkj4p"}]]),cv=i("book-key",[["path",{d:"m19 3 1 1",key:"ze14oc"}],["path",{d:"m20 2-4.5 4.5",key:"1sppr8"}],["path",{d:"M20 7.898V21a1 1 0 0 1-1 1H6.5a1 1 0 0 1 0-5H20",key:"1xzogz"}],["path",{d:"M4 19.5v-15A2.5 2.5 0 0 1 6.5 2h7.844",key:"vtdg6h"}],["circle",{cx:"14",cy:"8",r:"2",key:"u49eql"}]]),cw=i("book-lock",[["path",{d:"M18 6V4a2 2 0 1 0-4 0v2",key:"1aquzs"}],["path",{d:"M20 15v6a1 1 0 0 1-1 1H6.5a1 1 0 0 1 0-5H20",key:"1rkj32"}],["path",{d:"M4 19.5v-15A2.5 2.5 0 0 1 6.5 2H10",key:"18wgow"}],["rect",{x:"12",y:"6",width:"8",height:"5",rx:"1",key:"73l30o"}]]),cx=i("book-marked",[["path",{d:"M10 2v8l3-3 3 3V2",key:"sqw3rj"}],["path",{d:"M4 19.5v-15A2.5 2.5 0 0 1 6.5 2H19a1 1 0 0 1 1 1v18a1 1 0 0 1-1 1H6.5a1 1 0 0 1 0-5H20",key:"k3hazp"}]]),cy=i("book-minus",[["path",{d:"M4 19.5v-15A2.5 2.5 0 0 1 6.5 2H19a1 1 0 0 1 1 1v18a1 1 0 0 1-1 1H6.5a1 1 0 0 1 0-5H20",key:"k3hazp"}],["path",{d:"M9 10h6",key:"9gxzsh"}]]),cz=i("book-open-check",[["path",{d:"M12 21V7",key:"gj6g52"}],["path",{d:"m16 12 2 2 4-4",key:"mdajum"}],["path",{d:"M22 6V4a1 1 0 0 0-1-1h-5a4 4 0 0 0-4 4 4 4 0 0 0-4-4H3a1 1 0 0 0-1 1v13a1 1 0 0 0 1 1h6a3 3 0 0 1 3 3 3 3 0 0 1 3-3h6a1 1 0 0 0 1-1v-1.3",key:"8arnkb"}]]),cA=i("book-open-text",[["path",{d:"M12 7v14",key:"1akyts"}],["path",{d:"M16 12h2",key:"7q9ll5"}],["path",{d:"M16 8h2",key:"msurwy"}],["path",{d:"M3 18a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h5a4 4 0 0 1 4 4 4 4 0 0 1 4-4h5a1 1 0 0 1 1 1v13a1 1 0 0 1-1 1h-6a3 3 0 0 0-3 3 3 3 0 0 0-3-3z",key:"ruj8y"}],["path",{d:"M6 12h2",key:"32wvfc"}],["path",{d:"M6 8h2",key:"30oboj"}]]),cB=i("book-open",[["path",{d:"M12 7v14",key:"1akyts"}],["path",{d:"M3 18a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h5a4 4 0 0 1 4 4 4 4 0 0 1 4-4h5a1 1 0 0 1 1 1v13a1 1 0 0 1-1 1h-6a3 3 0 0 0-3 3 3 3 0 0 0-3-3z",key:"ruj8y"}]]),cC=i("book-plus",[["path",{d:"M12 7v6",key:"lw1j43"}],["path",{d:"M4 19.5v-15A2.5 2.5 0 0 1 6.5 2H19a1 1 0 0 1 1 1v18a1 1 0 0 1-1 1H6.5a1 1 0 0 1 0-5H20",key:"k3hazp"}],["path",{d:"M9 10h6",key:"9gxzsh"}]]),cD=i("book-text",[["path",{d:"M4 19.5v-15A2.5 2.5 0 0 1 6.5 2H19a1 1 0 0 1 1 1v18a1 1 0 0 1-1 1H6.5a1 1 0 0 1 0-5H20",key:"k3hazp"}],["path",{d:"M8 11h8",key:"vwpz6n"}],["path",{d:"M8 7h6",key:"1f0q6e"}]]),cE=i("book-type",[["path",{d:"M10 13h4",key:"ytezjc"}],["path",{d:"M12 6v7",key:"1f6ttz"}],["path",{d:"M16 8V6H8v2",key:"x8j6u4"}],["path",{d:"M4 19.5v-15A2.5 2.5 0 0 1 6.5 2H19a1 1 0 0 1 1 1v18a1 1 0 0 1-1 1H6.5a1 1 0 0 1 0-5H20",key:"k3hazp"}]]),cF=i("book-up-2",[["path",{d:"M12 13V7",key:"h0r20n"}],["path",{d:"M18 2h1a1 1 0 0 1 1 1v18a1 1 0 0 1-1 1H6.5a1 1 0 0 1 0-5H20",key:"161d7n"}],["path",{d:"M4 19.5v-15A2.5 2.5 0 0 1 6.5 2",key:"1lorq7"}],["path",{d:"m9 10 3-3 3 3",key:"11gsxs"}],["path",{d:"m9 5 3-3 3 3",key:"l8vdw6"}]]),cG=i("book-up",[["path",{d:"M12 13V7",key:"h0r20n"}],["path",{d:"M4 19.5v-15A2.5 2.5 0 0 1 6.5 2H19a1 1 0 0 1 1 1v18a1 1 0 0 1-1 1H6.5a1 1 0 0 1 0-5H20",key:"k3hazp"}],["path",{d:"m9 10 3-3 3 3",key:"11gsxs"}]]),cH=i("book-x",[["path",{d:"m14.5 7-5 5",key:"dy991v"}],["path",{d:"M4 19.5v-15A2.5 2.5 0 0 1 6.5 2H19a1 1 0 0 1 1 1v18a1 1 0 0 1-1 1H6.5a1 1 0 0 1 0-5H20",key:"k3hazp"}],["path",{d:"m9.5 7 5 5",key:"s45iea"}]]),cI=i("book-user",[["path",{d:"M15 13a3 3 0 1 0-6 0",key:"10j68g"}],["path",{d:"M4 19.5v-15A2.5 2.5 0 0 1 6.5 2H19a1 1 0 0 1 1 1v18a1 1 0 0 1-1 1H6.5a1 1 0 0 1 0-5H20",key:"k3hazp"}],["circle",{cx:"12",cy:"8",r:"2",key:"1822b1"}]]),cJ=i("book",[["path",{d:"M4 19.5v-15A2.5 2.5 0 0 1 6.5 2H19a1 1 0 0 1 1 1v18a1 1 0 0 1-1 1H6.5a1 1 0 0 1 0-5H20",key:"k3hazp"}]]),cK=i("bookmark-check",[["path",{d:"m19 21-7-4-7 4V5a2 2 0 0 1 2-2h10a2 2 0 0 1 2 2Z",key:"169p4p"}],["path",{d:"m9 10 2 2 4-4",key:"1gnqz4"}]]),cL=i("bookmark-minus",[["path",{d:"m19 21-7-4-7 4V5a2 2 0 0 1 2-2h10a2 2 0 0 1 2 2v16z",key:"1fy3hk"}],["line",{x1:"15",x2:"9",y1:"10",y2:"10",key:"1gty7f"}]]),cM=i("bookmark-plus",[["path",{d:"m19 21-7-4-7 4V5a2 2 0 0 1 2-2h10a2 2 0 0 1 2 2v16z",key:"1fy3hk"}],["line",{x1:"12",x2:"12",y1:"7",y2:"13",key:"1cppfj"}],["line",{x1:"15",x2:"9",y1:"10",y2:"10",key:"1gty7f"}]]),cN=i("bookmark-x",[["path",{d:"m19 21-7-4-7 4V5a2 2 0 0 1 2-2h10a2 2 0 0 1 2 2Z",key:"169p4p"}],["path",{d:"m14.5 7.5-5 5",key:"3lb6iw"}],["path",{d:"m9.5 7.5 5 5",key:"ko136h"}]]),cO=i("bookmark",[["path",{d:"m19 21-7-4-7 4V5a2 2 0 0 1 2-2h10a2 2 0 0 1 2 2v16z",key:"1fy3hk"}]]),cP=i("boom-box",[["path",{d:"M4 9V5a2 2 0 0 1 2-2h12a2 2 0 0 1 2 2v4",key:"vvzvr1"}],["path",{d:"M8 8v1",key:"xcqmfk"}],["path",{d:"M12 8v1",key:"1rj8u4"}],["path",{d:"M16 8v1",key:"1q12zr"}],["rect",{width:"20",height:"12",x:"2",y:"9",rx:"2",key:"igpb89"}],["circle",{cx:"8",cy:"15",r:"2",key:"fa4a8s"}],["circle",{cx:"16",cy:"15",r:"2",key:"14c3ya"}]]),cQ=i("bot-message-square",[["path",{d:"M12 6V2H8",key:"1155em"}],["path",{d:"m8 18-4 4V8a2 2 0 0 1 2-2h12a2 2 0 0 1 2 2v8a2 2 0 0 1-2 2Z",key:"w2lp3e"}],["path",{d:"M2 12h2",key:"1t8f8n"}],["path",{d:"M9 11v2",key:"1ueba0"}],["path",{d:"M15 11v2",key:"i11awn"}],["path",{d:"M20 12h2",key:"1q8mjw"}]]),cR=i("bot-off",[["path",{d:"M13.67 8H18a2 2 0 0 1 2 2v4.33",key:"7az073"}],["path",{d:"M2 14h2",key:"vft8re"}],["path",{d:"M20 14h2",key:"4cs60a"}],["path",{d:"M22 22 2 2",key:"1r8tn9"}],["path",{d:"M8 8H6a2 2 0 0 0-2 2v8a2 2 0 0 0 2 2h12a2 2 0 0 0 1.414-.586",key:"s09a7a"}],["path",{d:"M9 13v2",key:"rq6x2g"}],["path",{d:"M9.67 4H12v2.33",key:"110xot"}]]),cS=i("bot",[["path",{d:"M12 8V4H8",key:"hb8ula"}],["rect",{width:"16",height:"12",x:"4",y:"8",rx:"2",key:"enze0r"}],["path",{d:"M2 14h2",key:"vft8re"}],["path",{d:"M20 14h2",key:"4cs60a"}],["path",{d:"M15 13v2",key:"1xurst"}],["path",{d:"M9 13v2",key:"rq6x2g"}]]),cT=i("bottle-wine",[["path",{d:"M10 3a1 1 0 0 1 1-1h2a1 1 0 0 1 1 1v2a6 6 0 0 0 1.2 3.6l.6.8A6 6 0 0 1 17 13v8a1 1 0 0 1-1 1H8a1 1 0 0 1-1-1v-8a6 6 0 0 1 1.2-3.6l.6-.8A6 6 0 0 0 10 5z",key:"blqgoc"}],["path",{d:"M17 13h-4a1 1 0 0 0-1 1v3a1 1 0 0 0 1 1h4",key:"43jbee"}]]),cU=i("bow-arrow",[["path",{d:"M17 3h4v4",key:"19p9u1"}],["path",{d:"M18.575 11.082a13 13 0 0 1 1.048 9.027 1.17 1.17 0 0 1-1.914.597L14 17",key:"12t3w9"}],["path",{d:"M7 10 3.29 6.29a1.17 1.17 0 0 1 .6-1.91 13 13 0 0 1 9.03 1.05",key:"ogng5l"}],["path",{d:"M7 14a1.7 1.7 0 0 0-1.207.5l-2.646 2.646A.5.5 0 0 0 3.5 18H5a1 1 0 0 1 1 1v1.5a.5.5 0 0 0 .854.354L9.5 18.207A1.7 1.7 0 0 0 10 17v-2a1 1 0 0 0-1-1z",key:"8v3fy2"}],["path",{d:"M9.707 14.293 21 3",key:"ydm3bn"}]]),cV=i("box",[["path",{d:"M21 8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73l7 4a2 2 0 0 0 2 0l7-4A2 2 0 0 0 21 16Z",key:"hh9hay"}],["path",{d:"m3.3 7 8.7 5 8.7-5",key:"g66t2b"}],["path",{d:"M12 22V12",key:"d0xqtd"}]]),cW=i("boxes",[["path",{d:"M2.97 12.92A2 2 0 0 0 2 14.63v3.24a2 2 0 0 0 .97 1.71l3 1.8a2 2 0 0 0 2.06 0L12 19v-5.5l-5-3-4.03 2.42Z",key:"lc1i9w"}],["path",{d:"m7 16.5-4.74-2.85",key:"1o9zyk"}],["path",{d:"m7 16.5 5-3",key:"va8pkn"}],["path",{d:"M7 16.5v5.17",key:"jnp8gn"}],["path",{d:"M12 13.5V19l3.97 2.38a2 2 0 0 0 2.06 0l3-1.8a2 2 0 0 0 .97-1.71v-3.24a2 2 0 0 0-.97-1.71L17 10.5l-5 3Z",key:"8zsnat"}],["path",{d:"m17 16.5-5-3",key:"8arw3v"}],["path",{d:"m17 16.5 4.74-2.85",key:"8rfmw"}],["path",{d:"M17 16.5v5.17",key:"k6z78m"}],["path",{d:"M7.97 4.42A2 2 0 0 0 7 6.13v4.37l5 3 5-3V6.13a2 2 0 0 0-.97-1.71l-3-1.8a2 2 0 0 0-2.06 0l-3 1.8Z",key:"1xygjf"}],["path",{d:"M12 8 7.26 5.15",key:"1vbdud"}],["path",{d:"m12 8 4.74-2.85",key:"3rx089"}],["path",{d:"M12 13.5V8",key:"1io7kd"}]]),cX=i("braces",[["path",{d:"M8 3H7a2 2 0 0 0-2 2v5a2 2 0 0 1-2 2 2 2 0 0 1 2 2v5c0 1.1.9 2 2 2h1",key:"ezmyqa"}],["path",{d:"M16 21h1a2 2 0 0 0 2-2v-5c0-1.1.9-2 2-2a2 2 0 0 1-2-2V5a2 2 0 0 0-2-2h-1",key:"e1hn23"}]]),cY=i("brackets",[["path",{d:"M16 3h3a1 1 0 0 1 1 1v16a1 1 0 0 1-1 1h-3",key:"1kt8lf"}],["path",{d:"M8 21H5a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h3",key:"gduv9"}]]),cZ=i("brain-circuit",[["path",{d:"M12 5a3 3 0 1 0-5.997.125 4 4 0 0 0-2.526 5.77 4 4 0 0 0 .556 6.588A4 4 0 1 0 12 18Z",key:"l5xja"}],["path",{d:"M9 13a4.5 4.5 0 0 0 3-4",key:"10igwf"}],["path",{d:"M6.003 5.125A3 3 0 0 0 6.401 6.5",key:"105sqy"}],["path",{d:"M3.477 10.896a4 4 0 0 1 .585-.396",key:"ql3yin"}],["path",{d:"M6 18a4 4 0 0 1-1.967-.516",key:"2e4loj"}],["path",{d:"M12 13h4",key:"1ku699"}],["path",{d:"M12 18h6a2 2 0 0 1 2 2v1",key:"105ag5"}],["path",{d:"M12 8h8",key:"1lhi5i"}],["path",{d:"M16 8V5a2 2 0 0 1 2-2",key:"u6izg6"}],["circle",{cx:"16",cy:"13",r:".5",key:"ry7gng"}],["circle",{cx:"18",cy:"3",r:".5",key:"1aiba7"}],["circle",{cx:"20",cy:"21",r:".5",key:"yhc1fs"}],["circle",{cx:"20",cy:"8",r:".5",key:"1e43v0"}]]),c$=i("brain-cog",[["path",{d:"m10.852 14.772-.383.923",key:"11vil6"}],["path",{d:"m10.852 9.228-.383-.923",key:"1fjppe"}],["path",{d:"m13.148 14.772.382.924",key:"je3va1"}],["path",{d:"m13.531 8.305-.383.923",key:"18epck"}],["path",{d:"m14.772 10.852.923-.383",key:"k9m8cz"}],["path",{d:"m14.772 13.148.923.383",key:"1xvhww"}],["path",{d:"M17.598 6.5A3 3 0 1 0 12 5a3 3 0 0 0-5.63-1.446 3 3 0 0 0-.368 1.571 4 4 0 0 0-2.525 5.771",key:"jcbbz1"}],["path",{d:"M17.998 5.125a4 4 0 0 1 2.525 5.771",key:"1kkn7e"}],["path",{d:"M19.505 10.294a4 4 0 0 1-1.5 7.706",key:"18bmuc"}],["path",{d:"M4.032 17.483A4 4 0 0 0 11.464 20c.18-.311.892-.311 1.072 0a4 4 0 0 0 7.432-2.516",key:"uozx0d"}],["path",{d:"M4.5 10.291A4 4 0 0 0 6 18",key:"whdemb"}],["path",{d:"M6.002 5.125a3 3 0 0 0 .4 1.375",key:"1kqy2g"}],["path",{d:"m9.228 10.852-.923-.383",key:"1wtb30"}],["path",{d:"m9.228 13.148-.923.383",key:"1a830x"}],["circle",{cx:"12",cy:"12",r:"3",key:"1v7zrd"}]]),c_=i("brain",[["path",{d:"M12 5a3 3 0 1 0-5.997.125 4 4 0 0 0-2.526 5.77 4 4 0 0 0 .556 6.588A4 4 0 1 0 12 18Z",key:"l5xja"}],["path",{d:"M12 5a3 3 0 1 1 5.997.125 4 4 0 0 1 2.526 5.77 4 4 0 0 1-.556 6.588A4 4 0 1 1 12 18Z",key:"ep3f8r"}],["path",{d:"M15 13a4.5 4.5 0 0 1-3-4 4.5 4.5 0 0 1-3 4",key:"1p4c4q"}],["path",{d:"M17.599 6.5a3 3 0 0 0 .399-1.375",key:"tmeiqw"}],["path",{d:"M6.003 5.125A3 3 0 0 0 6.401 6.5",key:"105sqy"}],["path",{d:"M3.477 10.896a4 4 0 0 1 .585-.396",key:"ql3yin"}],["path",{d:"M19.938 10.5a4 4 0 0 1 .585.396",key:"1qfode"}],["path",{d:"M6 18a4 4 0 0 1-1.967-.516",key:"2e4loj"}],["path",{d:"M19.967 17.484A4 4 0 0 1 18 18",key:"159ez6"}]]),c0=i("brick-wall-fire",[["path",{d:"M16 3v2.107",key:"gq8xun"}],["path",{d:"M17 9c1 3 2.5 3.5 3.5 4.5A5 5 0 0 1 22 17a5 5 0 0 1-10 0c0-.3 0-.6.1-.9a2 2 0 1 0 3.3-2C13 11.5 16 9 17 9",key:"1l2pih"}],["path",{d:"M21 8.274V5a2 2 0 0 0-2-2H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h3.938",key:"jrnqjp"}],["path",{d:"M3 15h5.253",key:"xqg7rb"}],["path",{d:"M3 9h8.228",key:"1ppb70"}],["path",{d:"M8 15v6",key:"1stoo3"}],["path",{d:"M8 3v6",key:"vlvjmk"}]]),c1=i("brick-wall",[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",key:"afitv7"}],["path",{d:"M12 9v6",key:"199k2o"}],["path",{d:"M16 15v6",key:"8rj2es"}],["path",{d:"M16 3v6",key:"1j6rpj"}],["path",{d:"M3 15h18",key:"5xshup"}],["path",{d:"M3 9h18",key:"1pudct"}],["path",{d:"M8 15v6",key:"1stoo3"}],["path",{d:"M8 3v6",key:"vlvjmk"}]]),c2=i("briefcase-business",[["path",{d:"M12 12h.01",key:"1mp3jc"}],["path",{d:"M16 6V4a2 2 0 0 0-2-2h-4a2 2 0 0 0-2 2v2",key:"1ksdt3"}],["path",{d:"M22 13a18.15 18.15 0 0 1-20 0",key:"12hx5q"}],["rect",{width:"20",height:"14",x:"2",y:"6",rx:"2",key:"i6l2r4"}]]),c3=i("briefcase-conveyor-belt",[["path",{d:"M10 20v2",key:"1n8e1g"}],["path",{d:"M14 20v2",key:"1lq872"}],["path",{d:"M18 20v2",key:"10uadw"}],["path",{d:"M21 20H3",key:"kdqkdp"}],["path",{d:"M6 20v2",key:"a9bc87"}],["path",{d:"M8 16V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v12",key:"17n9tx"}],["rect",{x:"4",y:"6",width:"16",height:"10",rx:"2",key:"1097i5"}]]),c4=i("briefcase-medical",[["path",{d:"M12 11v4",key:"a6ujw6"}],["path",{d:"M14 13h-4",key:"1pl8zg"}],["path",{d:"M16 6V4a2 2 0 0 0-2-2h-4a2 2 0 0 0-2 2v2",key:"1ksdt3"}],["path",{d:"M18 6v14",key:"1mu4gy"}],["path",{d:"M6 6v14",key:"1s15cj"}],["rect",{width:"20",height:"14",x:"2",y:"6",rx:"2",key:"i6l2r4"}]]),c5=i("briefcase",[["path",{d:"M16 20V4a2 2 0 0 0-2-2h-4a2 2 0 0 0-2 2v16",key:"jecpp"}],["rect",{width:"20",height:"14",x:"2",y:"6",rx:"2",key:"i6l2r4"}]]),c6=i("bring-to-front",[["rect",{x:"8",y:"8",width:"8",height:"8",rx:"2",key:"yj20xf"}],["path",{d:"M4 10a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2",key:"1ltk23"}],["path",{d:"M14 20a2 2 0 0 0 2 2h4a2 2 0 0 0 2-2v-4a2 2 0 0 0-2-2",key:"1q24h9"}]]),c7=i("brush-cleaning",[["path",{d:"m16 22-1-4",key:"1ow2iv"}],["path",{d:"M19 13.99a1 1 0 0 0 1-1V12a2 2 0 0 0-2-2h-3a1 1 0 0 1-1-1V4a2 2 0 0 0-4 0v5a1 1 0 0 1-1 1H6a2 2 0 0 0-2 2v.99a1 1 0 0 0 1 1",key:"iw8jdu"}],["path",{d:"M5 14h14l1.973 6.767A1 1 0 0 1 20 22H4a1 1 0 0 1-.973-1.233z",key:"1soew8"}],["path",{d:"m8 22 1-4",key:"s3unb"}]]),c8=i("brush",[["path",{d:"m11 10 3 3",key:"fzmg1i"}],["path",{d:"M6.5 21A3.5 3.5 0 1 0 3 17.5a2.62 2.62 0 0 1-.708 1.792A1 1 0 0 0 3 21z",key:"p4q2r7"}],["path",{d:"M9.969 17.031 21.378 5.624a1 1 0 0 0-3.002-3.002L6.967 14.031",key:"wy6l02"}]]),c9=i("bubbles",[["path",{d:"M7.2 14.8a2 2 0 0 1 2 2",key:"1tw9gg"}],["circle",{cx:"18.5",cy:"8.5",r:"3.5",key:"1wadoa"}],["circle",{cx:"7.5",cy:"16.5",r:"5.5",key:"6mdt3g"}],["circle",{cx:"7.5",cy:"4.5",r:"2.5",key:"637s54"}]]),da=i("bug-off",[["path",{d:"M15 7.13V6a3 3 0 0 0-5.14-2.1L8 2",key:"vl8zik"}],["path",{d:"M14.12 3.88 16 2",key:"qol33r"}],["path",{d:"M22 13h-4v-2a4 4 0 0 0-4-4h-1.3",key:"1ou0bd"}],["path",{d:"M20.97 5c0 2.1-1.6 3.8-3.5 4",key:"18gb23"}],["path",{d:"m2 2 20 20",key:"1ooewy"}],["path",{d:"M7.7 7.7A4 4 0 0 0 6 11v3a6 6 0 0 0 11.13 3.13",key:"1njkjs"}],["path",{d:"M12 20v-8",key:"i3yub9"}],["path",{d:"M6 13H2",key:"82j7cp"}],["path",{d:"M3 21c0-2.1 1.7-3.9 3.8-4",key:"4p0ekp"}]]),db=i("bug-play",[["path",{d:"M12.765 21.522a.5.5 0 0 1-.765-.424v-8.196a.5.5 0 0 1 .765-.424l5.878 3.674a1 1 0 0 1 0 1.696z",key:"17shqo"}],["path",{d:"M14.12 3.88 16 2",key:"qol33r"}],["path",{d:"M18 11a4 4 0 0 0-4-4h-4a4 4 0 0 0-4 4v3a6.1 6.1 0 0 0 2 4.5",key:"1tjixy"}],["path",{d:"M20.97 5c0 2.1-1.6 3.8-3.5 4",key:"18gb23"}],["path",{d:"M3 21c0-2.1 1.7-3.9 3.8-4",key:"4p0ekp"}],["path",{d:"M6 13H2",key:"82j7cp"}],["path",{d:"M6.53 9C4.6 8.8 3 7.1 3 5",key:"32zzws"}],["path",{d:"m8 2 1.88 1.88",key:"fmnt4t"}],["path",{d:"M9 7.13v-1a3.003 3.003 0 1 1 6 0v1",key:"d7y7pr"}]]),dc=i("bug",[["path",{d:"m8 2 1.88 1.88",key:"fmnt4t"}],["path",{d:"M14.12 3.88 16 2",key:"qol33r"}],["path",{d:"M9 7.13v-1a3.003 3.003 0 1 1 6 0v1",key:"d7y7pr"}],["path",{d:"M12 20c-3.3 0-6-2.7-6-6v-3a4 4 0 0 1 4-4h4a4 4 0 0 1 4 4v3c0 3.3-2.7 6-6 6",key:"xs1cw7"}],["path",{d:"M12 20v-9",key:"1qisl0"}],["path",{d:"M6.53 9C4.6 8.8 3 7.1 3 5",key:"32zzws"}],["path",{d:"M6 13H2",key:"82j7cp"}],["path",{d:"M3 21c0-2.1 1.7-3.9 3.8-4",key:"4p0ekp"}],["path",{d:"M20.97 5c0 2.1-1.6 3.8-3.5 4",key:"18gb23"}],["path",{d:"M22 13h-4",key:"1jl80f"}],["path",{d:"M17.2 17c2.1.1 3.8 1.9 3.8 4",key:"k3fwyw"}]]),dd=i("building-2",[["path",{d:"M6 22V4a2 2 0 0 1 2-2h8a2 2 0 0 1 2 2v18Z",key:"1b4qmf"}],["path",{d:"M6 12H4a2 2 0 0 0-2 2v6a2 2 0 0 0 2 2h2",key:"i71pzd"}],["path",{d:"M18 9h2a2 2 0 0 1 2 2v9a2 2 0 0 1-2 2h-2",key:"10jefs"}],["path",{d:"M10 6h4",key:"1itunk"}],["path",{d:"M10 10h4",key:"tcdvrf"}],["path",{d:"M10 14h4",key:"kelpxr"}],["path",{d:"M10 18h4",key:"1ulq68"}]]),de=i("building",[["rect",{width:"16",height:"20",x:"4",y:"2",rx:"2",ry:"2",key:"76otgf"}],["path",{d:"M9 22v-4h6v4",key:"r93iot"}],["path",{d:"M8 6h.01",key:"1dz90k"}],["path",{d:"M16 6h.01",key:"1x0f13"}],["path",{d:"M12 6h.01",key:"1vi96p"}],["path",{d:"M12 10h.01",key:"1nrarc"}],["path",{d:"M12 14h.01",key:"1etili"}],["path",{d:"M16 10h.01",key:"1m94wz"}],["path",{d:"M16 14h.01",key:"1gbofw"}],["path",{d:"M8 10h.01",key:"19clt8"}],["path",{d:"M8 14h.01",key:"6423bh"}]]),df=i("bus-front",[["path",{d:"M4 6 2 7",key:"1mqr15"}],["path",{d:"M10 6h4",key:"1itunk"}],["path",{d:"m22 7-2-1",key:"1umjhc"}],["rect",{width:"16",height:"16",x:"4",y:"3",rx:"2",key:"1wxw4b"}],["path",{d:"M4 11h16",key:"mpoxn0"}],["path",{d:"M8 15h.01",key:"a7atzg"}],["path",{d:"M16 15h.01",key:"rnfrdf"}],["path",{d:"M6 19v2",key:"1loha6"}],["path",{d:"M18 21v-2",key:"sqyl04"}]]),dg=i("bus",[["path",{d:"M8 6v6",key:"18i7km"}],["path",{d:"M15 6v6",key:"1sg6z9"}],["path",{d:"M2 12h19.6",key:"de5uta"}],["path",{d:"M18 18h3s.5-1.7.8-2.8c.1-.4.2-.8.2-1.2 0-.4-.1-.8-.2-1.2l-1.4-5C20.1 6.8 19.1 6 18 6H4a2 2 0 0 0-2 2v10h3",key:"1wwztk"}],["circle",{cx:"7",cy:"18",r:"2",key:"19iecd"}],["path",{d:"M9 18h5",key:"lrx6i"}],["circle",{cx:"16",cy:"18",r:"2",key:"1v4tcr"}]]),dh=i("cable-car",[["path",{d:"M10 3h.01",key:"lbucoy"}],["path",{d:"M14 2h.01",key:"1k8aa1"}],["path",{d:"m2 9 20-5",key:"1kz0j5"}],["path",{d:"M12 12V6.5",key:"1vbrij"}],["rect",{width:"16",height:"10",x:"4",y:"12",rx:"3",key:"if91er"}],["path",{d:"M9 12v5",key:"3anwtq"}],["path",{d:"M15 12v5",key:"5xh3zn"}],["path",{d:"M4 17h16",key:"g4d7ey"}]]),di=i("cable",[["path",{d:"M17 21v-2a1 1 0 0 1-1-1v-1a2 2 0 0 1 2-2h2a2 2 0 0 1 2 2v1a1 1 0 0 1-1 1",key:"10bnsj"}],["path",{d:"M19 15V6.5a1 1 0 0 0-7 0v11a1 1 0 0 1-7 0V9",key:"1eqmu1"}],["path",{d:"M21 21v-2h-4",key:"14zm7j"}],["path",{d:"M3 5h4V3",key:"z442eg"}],["path",{d:"M7 5a1 1 0 0 1 1 1v1a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2V6a1 1 0 0 1 1-1V3",key:"ebdjd7"}]]),dj=i("cake-slice",[["circle",{cx:"9",cy:"7",r:"2",key:"1305pl"}],["path",{d:"M7.2 7.9 3 11v9c0 .6.4 1 1 1h16c.6 0 1-.4 1-1v-9c0-2-3-6-7-8l-3.6 2.6",key:"xle13f"}],["path",{d:"M16 13H3",key:"1wpj08"}],["path",{d:"M16 17H3",key:"3lvfcd"}]]),dk=i("cake",[["path",{d:"M20 21v-8a2 2 0 0 0-2-2H6a2 2 0 0 0-2 2v8",key:"1w3rig"}],["path",{d:"M4 16s.5-1 2-1 2.5 2 4 2 2.5-2 4-2 2.5 2 4 2 2-1 2-1",key:"n2jgmb"}],["path",{d:"M2 21h20",key:"1nyx9w"}],["path",{d:"M7 8v3",key:"1qtyvj"}],["path",{d:"M12 8v3",key:"hwp4zt"}],["path",{d:"M17 8v3",key:"1i6e5u"}],["path",{d:"M7 4h.01",key:"1bh4kh"}],["path",{d:"M12 4h.01",key:"1ujb9j"}],["path",{d:"M17 4h.01",key:"1upcoc"}]]),dl=i("calculator",[["rect",{width:"16",height:"20",x:"4",y:"2",rx:"2",key:"1nb95v"}],["line",{x1:"8",x2:"16",y1:"6",y2:"6",key:"x4nwl0"}],["line",{x1:"16",x2:"16",y1:"14",y2:"18",key:"wjye3r"}],["path",{d:"M16 10h.01",key:"1m94wz"}],["path",{d:"M12 10h.01",key:"1nrarc"}],["path",{d:"M8 10h.01",key:"19clt8"}],["path",{d:"M12 14h.01",key:"1etili"}],["path",{d:"M8 14h.01",key:"6423bh"}],["path",{d:"M12 18h.01",key:"mhygvu"}],["path",{d:"M8 18h.01",key:"lrp35t"}]]),dm=i("calendar-1",[["path",{d:"M11 14h1v4",key:"fy54vd"}],["path",{d:"M16 2v4",key:"4m81vk"}],["path",{d:"M3 10h18",key:"8toen8"}],["path",{d:"M8 2v4",key:"1cmpym"}],["rect",{x:"3",y:"4",width:"18",height:"18",rx:"2",key:"12vinp"}]]),dn=i("calendar-arrow-down",[["path",{d:"m14 18 4 4 4-4",key:"1waygx"}],["path",{d:"M16 2v4",key:"4m81vk"}],["path",{d:"M18 14v8",key:"irew45"}],["path",{d:"M21 11.354V6a2 2 0 0 0-2-2H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h7.343",key:"bse4f3"}],["path",{d:"M3 10h18",key:"8toen8"}],["path",{d:"M8 2v4",key:"1cmpym"}]]),dp=i("calendar-arrow-up",[["path",{d:"m14 18 4-4 4 4",key:"ftkppy"}],["path",{d:"M16 2v4",key:"4m81vk"}],["path",{d:"M18 22v-8",key:"su0gjh"}],["path",{d:"M21 11.343V6a2 2 0 0 0-2-2H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h9",key:"1exg90"}],["path",{d:"M3 10h18",key:"8toen8"}],["path",{d:"M8 2v4",key:"1cmpym"}]]),dq=i("calendar-check-2",[["path",{d:"M8 2v4",key:"1cmpym"}],["path",{d:"M16 2v4",key:"4m81vk"}],["path",{d:"M21 14V6a2 2 0 0 0-2-2H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h8",key:"bce9hv"}],["path",{d:"M3 10h18",key:"8toen8"}],["path",{d:"m16 20 2 2 4-4",key:"13tcca"}]]),dr=i("calendar-check",[["path",{d:"M8 2v4",key:"1cmpym"}],["path",{d:"M16 2v4",key:"4m81vk"}],["rect",{width:"18",height:"18",x:"3",y:"4",rx:"2",key:"1hopcy"}],["path",{d:"M3 10h18",key:"8toen8"}],["path",{d:"m9 16 2 2 4-4",key:"19s6y9"}]]),ds=i("calendar-clock",[["path",{d:"M16 14v2.2l1.6 1",key:"fo4ql5"}],["path",{d:"M16 2v4",key:"4m81vk"}],["path",{d:"M21 7.5V6a2 2 0 0 0-2-2H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h3.5",key:"1osxxc"}],["path",{d:"M3 10h5",key:"r794hk"}],["path",{d:"M8 2v4",key:"1cmpym"}],["circle",{cx:"16",cy:"16",r:"6",key:"qoo3c4"}]]),dt=i("calendar-cog",[["path",{d:"m15.228 16.852-.923-.383",key:"npixar"}],["path",{d:"m15.228 19.148-.923.383",key:"51cr3n"}],["path",{d:"M16 2v4",key:"4m81vk"}],["path",{d:"m16.47 14.305.382.923",key:"obybxd"}],["path",{d:"m16.852 20.772-.383.924",key:"dpfhf9"}],["path",{d:"m19.148 15.228.383-.923",key:"1reyyz"}],["path",{d:"m19.53 21.696-.382-.924",key:"1goivc"}],["path",{d:"m20.772 16.852.924-.383",key:"htqkph"}],["path",{d:"m20.772 19.148.924.383",key:"9w9pjp"}],["path",{d:"M21 11V6a2 2 0 0 0-2-2H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h6",key:"1dju0s"}],["path",{d:"M3 10h18",key:"8toen8"}],["path",{d:"M8 2v4",key:"1cmpym"}],["circle",{cx:"18",cy:"18",r:"3",key:"1xkwt0"}]]),du=i("calendar-days",[["path",{d:"M8 2v4",key:"1cmpym"}],["path",{d:"M16 2v4",key:"4m81vk"}],["rect",{width:"18",height:"18",x:"3",y:"4",rx:"2",key:"1hopcy"}],["path",{d:"M3 10h18",key:"8toen8"}],["path",{d:"M8 14h.01",key:"6423bh"}],["path",{d:"M12 14h.01",key:"1etili"}],["path",{d:"M16 14h.01",key:"1gbofw"}],["path",{d:"M8 18h.01",key:"lrp35t"}],["path",{d:"M12 18h.01",key:"mhygvu"}],["path",{d:"M16 18h.01",key:"kzsmim"}]]),dv=i("calendar-fold",[["path",{d:"M8 2v4",key:"1cmpym"}],["path",{d:"M16 2v4",key:"4m81vk"}],["path",{d:"M21 17V6a2 2 0 0 0-2-2H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h11Z",key:"kg77oy"}],["path",{d:"M3 10h18",key:"8toen8"}],["path",{d:"M15 22v-4a2 2 0 0 1 2-2h4",key:"1gnbqr"}]]),dw=i("calendar-heart",[["path",{d:"M3 10h18V6a2 2 0 0 0-2-2H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h7",key:"136lmk"}],["path",{d:"M8 2v4",key:"1cmpym"}],["path",{d:"M16 2v4",key:"4m81vk"}],["path",{d:"M21.29 14.7a2.43 2.43 0 0 0-2.65-.52c-.3.12-.57.3-.8.53l-.34.34-.35-.34a2.43 2.43 0 0 0-2.65-.53c-.3.12-.56.3-.79.53-.95.94-1 2.53.2 3.74L17.5 22l3.6-3.55c1.2-1.21 1.14-2.8.19-3.74Z",key:"1t7hil"}]]),dx=i("calendar-minus-2",[["path",{d:"M8 2v4",key:"1cmpym"}],["path",{d:"M16 2v4",key:"4m81vk"}],["rect",{width:"18",height:"18",x:"3",y:"4",rx:"2",key:"1hopcy"}],["path",{d:"M3 10h18",key:"8toen8"}],["path",{d:"M10 16h4",key:"17e571"}]]),dy=i("calendar-minus",[["path",{d:"M16 19h6",key:"xwg31i"}],["path",{d:"M16 2v4",key:"4m81vk"}],["path",{d:"M21 15V6a2 2 0 0 0-2-2H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h8.5",key:"1scpom"}],["path",{d:"M3 10h18",key:"8toen8"}],["path",{d:"M8 2v4",key:"1cmpym"}]]),dz=i("calendar-off",[["path",{d:"M4.2 4.2A2 2 0 0 0 3 6v14a2 2 0 0 0 2 2h14a2 2 0 0 0 1.82-1.18",key:"16swn3"}],["path",{d:"M21 15.5V6a2 2 0 0 0-2-2H9.5",key:"yhw86o"}],["path",{d:"M16 2v4",key:"4m81vk"}],["path",{d:"M3 10h7",key:"1wap6i"}],["path",{d:"M21 10h-5.5",key:"quycpq"}],["path",{d:"m2 2 20 20",key:"1ooewy"}]]),dA=i("calendar-plus-2",[["path",{d:"M8 2v4",key:"1cmpym"}],["path",{d:"M16 2v4",key:"4m81vk"}],["rect",{width:"18",height:"18",x:"3",y:"4",rx:"2",key:"1hopcy"}],["path",{d:"M3 10h18",key:"8toen8"}],["path",{d:"M10 16h4",key:"17e571"}],["path",{d:"M12 14v4",key:"1thi36"}]]),dB=i("calendar-plus",[["path",{d:"M16 19h6",key:"xwg31i"}],["path",{d:"M16 2v4",key:"4m81vk"}],["path",{d:"M19 16v6",key:"tddt3s"}],["path",{d:"M21 12.598V6a2 2 0 0 0-2-2H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h8.5",key:"1glfrc"}],["path",{d:"M3 10h18",key:"8toen8"}],["path",{d:"M8 2v4",key:"1cmpym"}]]),dC=i("calendar-range",[["rect",{width:"18",height:"18",x:"3",y:"4",rx:"2",key:"1hopcy"}],["path",{d:"M16 2v4",key:"4m81vk"}],["path",{d:"M3 10h18",key:"8toen8"}],["path",{d:"M8 2v4",key:"1cmpym"}],["path",{d:"M17 14h-6",key:"bkmgh3"}],["path",{d:"M13 18H7",key:"bb0bb7"}],["path",{d:"M7 14h.01",key:"1qa3f1"}],["path",{d:"M17 18h.01",key:"1bdyru"}]]),dD=i("calendar-sync",[["path",{d:"M11 10v4h4",key:"172dkj"}],["path",{d:"m11 14 1.535-1.605a5 5 0 0 1 8 1.5",key:"vu0qm5"}],["path",{d:"M16 2v4",key:"4m81vk"}],["path",{d:"m21 18-1.535 1.605a5 5 0 0 1-8-1.5",key:"1qgeyt"}],["path",{d:"M21 22v-4h-4",key:"hrummi"}],["path",{d:"M21 8.5V6a2 2 0 0 0-2-2H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h4.3",key:"mctw84"}],["path",{d:"M3 10h4",key:"1el30a"}],["path",{d:"M8 2v4",key:"1cmpym"}]]),dE=i("calendar-search",[["path",{d:"M16 2v4",key:"4m81vk"}],["path",{d:"M21 11.75V6a2 2 0 0 0-2-2H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h7.25",key:"1jrsq6"}],["path",{d:"m22 22-1.875-1.875",key:"13zax7"}],["path",{d:"M3 10h18",key:"8toen8"}],["path",{d:"M8 2v4",key:"1cmpym"}],["circle",{cx:"18",cy:"18",r:"3",key:"1xkwt0"}]]),dF=i("calendar-x-2",[["path",{d:"M8 2v4",key:"1cmpym"}],["path",{d:"M16 2v4",key:"4m81vk"}],["path",{d:"M21 13V6a2 2 0 0 0-2-2H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h8",key:"3spt84"}],["path",{d:"M3 10h18",key:"8toen8"}],["path",{d:"m17 22 5-5",key:"1k6ppv"}],["path",{d:"m17 17 5 5",key:"p7ous7"}]]),dG=i("calendar-x",[["path",{d:"M8 2v4",key:"1cmpym"}],["path",{d:"M16 2v4",key:"4m81vk"}],["rect",{width:"18",height:"18",x:"3",y:"4",rx:"2",key:"1hopcy"}],["path",{d:"M3 10h18",key:"8toen8"}],["path",{d:"m14 14-4 4",key:"rymu2i"}],["path",{d:"m10 14 4 4",key:"3sz06r"}]]),dH=i("calendar",[["path",{d:"M8 2v4",key:"1cmpym"}],["path",{d:"M16 2v4",key:"4m81vk"}],["rect",{width:"18",height:"18",x:"3",y:"4",rx:"2",key:"1hopcy"}],["path",{d:"M3 10h18",key:"8toen8"}]]),dI=i("camera-off",[["line",{x1:"2",x2:"22",y1:"2",y2:"22",key:"a6p6uj"}],["path",{d:"M7 7H4a2 2 0 0 0-2 2v9a2 2 0 0 0 2 2h16",key:"qmtpty"}],["path",{d:"M9.5 4h5L17 7h3a2 2 0 0 1 2 2v7.5",key:"1ufyfc"}],["path",{d:"M14.121 15.121A3 3 0 1 1 9.88 10.88",key:"11zox6"}]]),dJ=i("camera",[["path",{d:"M14.5 4h-5L7 7H4a2 2 0 0 0-2 2v9a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2V9a2 2 0 0 0-2-2h-3l-2.5-3z",key:"1tc9qg"}],["circle",{cx:"12",cy:"13",r:"3",key:"1vg3eu"}]]),dK=i("candy-cane",[["path",{d:"M5.7 21a2 2 0 0 1-3.5-2l8.6-14a6 6 0 0 1 10.4 6 2 2 0 1 1-3.464-2 2 2 0 1 0-3.464-2Z",key:"isaq8g"}],["path",{d:"M17.75 7 15 2.1",key:"12x7e8"}],["path",{d:"M10.9 4.8 13 9",key:"100a87"}],["path",{d:"m7.9 9.7 2 4.4",key:"ntfhaj"}],["path",{d:"M4.9 14.7 7 18.9",key:"1x43jy"}]]),dL=i("candy-off",[["path",{d:"M10 10v7.9",key:"m8g9tt"}],["path",{d:"M11.802 6.145a5 5 0 0 1 6.053 6.053",key:"dn87i3"}],["path",{d:"M14 6.1v2.243",key:"1kzysn"}],["path",{d:"m15.5 15.571-.964.964a5 5 0 0 1-7.071 0 5 5 0 0 1 0-7.07l.964-.965",key:"3sxy18"}],["path",{d:"M16 7V3a1 1 0 0 1 1.707-.707 2.5 2.5 0 0 0 2.152.717 1 1 0 0 1 1.131 1.131 2.5 2.5 0 0 0 .717 2.152A1 1 0 0 1 21 8h-4",key:"gpb6xx"}],["path",{d:"m2 2 20 20",key:"1ooewy"}],["path",{d:"M8 17v4a1 1 0 0 1-1.707.707 2.5 2.5 0 0 0-2.152-.717 1 1 0 0 1-1.131-1.131 2.5 2.5 0 0 0-.717-2.152A1 1 0 0 1 3 16h4",key:"qexcha"}]]),dM=i("candy",[["path",{d:"M10 7v10.9",key:"1gynux"}],["path",{d:"M14 6.1V17",key:"116kdf"}],["path",{d:"M16 7V3a1 1 0 0 1 1.707-.707 2.5 2.5 0 0 0 2.152.717 1 1 0 0 1 1.131 1.131 2.5 2.5 0 0 0 .717 2.152A1 1 0 0 1 21 8h-4",key:"gpb6xx"}],["path",{d:"M16.536 7.465a5 5 0 0 0-7.072 0l-2 2a5 5 0 0 0 0 7.07 5 5 0 0 0 7.072 0l2-2a5 5 0 0 0 0-7.07",key:"1tsln4"}],["path",{d:"M8 17v4a1 1 0 0 1-1.707.707 2.5 2.5 0 0 0-2.152-.717 1 1 0 0 1-1.131-1.131 2.5 2.5 0 0 0-.717-2.152A1 1 0 0 1 3 16h4",key:"qexcha"}]]),dN=i("cannabis",[["path",{d:"M12 22v-4",key:"1utk9m"}],["path",{d:"M7 12c-1.5 0-4.5 1.5-5 3 3.5 1.5 6 1 6 1-1.5 1.5-2 3.5-2 5 2.5 0 4.5-1.5 6-3 1.5 1.5 3.5 3 6 3 0-1.5-.5-3.5-2-5 0 0 2.5.5 6-1-.5-1.5-3.5-3-5-3 1.5-1 4-4 4-6-2.5 0-5.5 1.5-7 3 0-2.5-.5-5-2-7-1.5 2-2 4.5-2 7-1.5-1.5-4.5-3-7-3 0 2 2.5 5 4 6",key:"1mezod"}]]),dO=i("captions-off",[["path",{d:"M10.5 5H19a2 2 0 0 1 2 2v8.5",key:"jqtk4d"}],["path",{d:"M17 11h-.5",key:"1961ue"}],["path",{d:"M19 19H5a2 2 0 0 1-2-2V7a2 2 0 0 1 2-2",key:"1keqsi"}],["path",{d:"m2 2 20 20",key:"1ooewy"}],["path",{d:"M7 11h4",key:"1o1z6v"}],["path",{d:"M7 15h2.5",key:"1ina1g"}]]),dP=i("captions",[["rect",{width:"18",height:"14",x:"3",y:"5",rx:"2",ry:"2",key:"12ruh7"}],["path",{d:"M7 15h4M15 15h2M7 11h2M13 11h4",key:"1ueiar"}]]),dQ=i("car-front",[["path",{d:"m21 8-2 2-1.5-3.7A2 2 0 0 0 15.646 5H8.4a2 2 0 0 0-1.903 1.257L5 10 3 8",key:"1imjwt"}],["path",{d:"M7 14h.01",key:"1qa3f1"}],["path",{d:"M17 14h.01",key:"7oqj8z"}],["rect",{width:"18",height:"8",x:"3",y:"10",rx:"2",key:"a7itu8"}],["path",{d:"M5 18v2",key:"ppbyun"}],["path",{d:"M19 18v2",key:"gy7782"}]]),dR=i("car-taxi-front",[["path",{d:"M10 2h4",key:"n1abiw"}],["path",{d:"m21 8-2 2-1.5-3.7A2 2 0 0 0 15.646 5H8.4a2 2 0 0 0-1.903 1.257L5 10 3 8",key:"1imjwt"}],["path",{d:"M7 14h.01",key:"1qa3f1"}],["path",{d:"M17 14h.01",key:"7oqj8z"}],["rect",{width:"18",height:"8",x:"3",y:"10",rx:"2",key:"a7itu8"}],["path",{d:"M5 18v2",key:"ppbyun"}],["path",{d:"M19 18v2",key:"gy7782"}]]),dS=i("caravan",[["path",{d:"M18 19V9a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v8a2 2 0 0 0 2 2h2",key:"19jm3t"}],["path",{d:"M2 9h3a1 1 0 0 1 1 1v2a1 1 0 0 1-1 1H2",key:"13hakp"}],["path",{d:"M22 17v1a1 1 0 0 1-1 1H10v-9a1 1 0 0 1 1-1h2a1 1 0 0 1 1 1v9",key:"1crci8"}],["circle",{cx:"8",cy:"19",r:"2",key:"t8fc5s"}]]),dT=i("card-sim",[["path",{d:"M12 14v4",key:"1thi36"}],["path",{d:"M14.172 2a2 2 0 0 1 1.414.586l3.828 3.828A2 2 0 0 1 20 7.828V20a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2z",key:"1o66bk"}],["path",{d:"M8 14h8",key:"1fgep2"}],["rect",{x:"8",y:"10",width:"8",height:"8",rx:"1",key:"1aonk6"}]]),dU=i("car",[["path",{d:"M19 17h2c.6 0 1-.4 1-1v-3c0-.9-.7-1.7-1.5-1.9C18.7 10.6 16 10 16 10s-1.3-1.4-2.2-2.3c-.5-.4-1.1-.7-1.8-.7H5c-.6 0-1.1.4-1.4.9l-1.4 2.9A3.7 3.7 0 0 0 2 12v4c0 .6.4 1 1 1h2",key:"5owen"}],["circle",{cx:"7",cy:"17",r:"2",key:"u2ysq9"}],["path",{d:"M9 17h6",key:"r8uit2"}],["circle",{cx:"17",cy:"17",r:"2",key:"axvx0g"}]]),dV=i("carrot",[["path",{d:"M2.27 21.7s9.87-3.5 12.73-6.36a4.5 4.5 0 0 0-6.36-6.37C5.77 11.84 2.27 21.7 2.27 21.7zM8.64 14l-2.05-2.04M15.34 15l-2.46-2.46",key:"rfqxbe"}],["path",{d:"M22 9s-1.33-2-3.5-2C16.86 7 15 9 15 9s1.33 2 3.5 2S22 9 22 9z",key:"6b25w4"}],["path",{d:"M15 2s-2 1.33-2 3.5S15 9 15 9s2-1.84 2-3.5C17 3.33 15 2 15 2z",key:"fn65lo"}]]),dW=i("case-lower",[["circle",{cx:"7",cy:"12",r:"3",key:"12clwm"}],["path",{d:"M10 9v6",key:"17i7lo"}],["circle",{cx:"17",cy:"12",r:"3",key:"gl7c2s"}],["path",{d:"M14 7v8",key:"dl84cr"}]]),dX=i("case-sensitive",[["path",{d:"m3 15 4-8 4 8",key:"1vwr6u"}],["path",{d:"M4 13h6",key:"1r9ots"}],["circle",{cx:"18",cy:"12",r:"3",key:"1kchzo"}],["path",{d:"M21 9v6",key:"anns31"}]]),dY=i("case-upper",[["path",{d:"m3 15 4-8 4 8",key:"1vwr6u"}],["path",{d:"M4 13h6",key:"1r9ots"}],["path",{d:"M15 11h4.5a2 2 0 0 1 0 4H15V7h4a2 2 0 0 1 0 4",key:"1sqfas"}]]),dZ=i("cassette-tape",[["rect",{width:"20",height:"16",x:"2",y:"4",rx:"2",key:"18n3k1"}],["circle",{cx:"8",cy:"10",r:"2",key:"1xl4ub"}],["path",{d:"M8 12h8",key:"1wcyev"}],["circle",{cx:"16",cy:"10",r:"2",key:"r14t7q"}],["path",{d:"m6 20 .7-2.9A1.4 1.4 0 0 1 8.1 16h7.8a1.4 1.4 0 0 1 1.4 1l.7 3",key:"l01ucn"}]]),d$=i("cast",[["path",{d:"M2 8V6a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2v12a2 2 0 0 1-2 2h-6",key:"3zrzxg"}],["path",{d:"M2 12a9 9 0 0 1 8 8",key:"g6cvee"}],["path",{d:"M2 16a5 5 0 0 1 4 4",key:"1y1dii"}],["line",{x1:"2",x2:"2.01",y1:"20",y2:"20",key:"xu2jvo"}]]),d_=i("castle",[["path",{d:"M22 20v-9H2v9a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2Z",key:"109fe4"}],["path",{d:"M18 11V4H6v7",key:"mon5oj"}],["path",{d:"M15 22v-4a3 3 0 0 0-3-3a3 3 0 0 0-3 3v4",key:"1k4jtn"}],["path",{d:"M22 11V9",key:"3zbp94"}],["path",{d:"M2 11V9",key:"1x5rnq"}],["path",{d:"M6 4V2",key:"1rsq15"}],["path",{d:"M18 4V2",key:"1jsdo1"}],["path",{d:"M10 4V2",key:"75d9ly"}],["path",{d:"M14 4V2",key:"8nj3z6"}]]),d0=i("cat",[["path",{d:"M12 5c.67 0 1.35.09 2 .26 1.78-2 5.03-2.84 6.42-2.26 1.4.58-.42 7-.42 7 .57 1.07 1 2.24 1 3.44C21 17.9 16.97 21 12 21s-9-3-9-7.56c0-1.25.5-2.4 1-3.44 0 0-1.89-6.42-.5-7 1.39-.58 4.72.23 6.5 2.23A9.04 9.04 0 0 1 12 5Z",key:"x6xyqk"}],["path",{d:"M8 14v.5",key:"1nzgdb"}],["path",{d:"M16 14v.5",key:"1lajdz"}],["path",{d:"M11.25 16.25h1.5L12 17l-.75-.75Z",key:"12kq1m"}]]),d1=i("cctv",[["path",{d:"M16.75 12h3.632a1 1 0 0 1 .894 1.447l-2.034 4.069a1 1 0 0 1-1.708.134l-2.124-2.97",key:"ir91b5"}],["path",{d:"M17.106 9.053a1 1 0 0 1 .447 1.341l-3.106 6.211a1 1 0 0 1-1.342.447L3.61 12.3a2.92 2.92 0 0 1-1.3-3.91L3.69 5.6a2.92 2.92 0 0 1 3.92-1.3z",key:"jlp8i1"}],["path",{d:"M2 19h3.76a2 2 0 0 0 1.8-1.1L9 15",key:"19bib8"}],["path",{d:"M2 21v-4",key:"l40lih"}],["path",{d:"M7 9h.01",key:"19b3jx"}]]),d2=i("chart-area",[["path",{d:"M3 3v16a2 2 0 0 0 2 2h16",key:"c24i48"}],["path",{d:"M7 11.207a.5.5 0 0 1 .146-.353l2-2a.5.5 0 0 1 .708 0l3.292 3.292a.5.5 0 0 0 .708 0l4.292-4.292a.5.5 0 0 1 .854.353V16a1 1 0 0 1-1 1H8a1 1 0 0 1-1-1z",key:"q0gr47"}]]),d3=i("chart-bar-big",[["path",{d:"M3 3v16a2 2 0 0 0 2 2h16",key:"c24i48"}],["rect",{x:"7",y:"13",width:"9",height:"4",rx:"1",key:"1iip1u"}],["rect",{x:"7",y:"5",width:"12",height:"4",rx:"1",key:"1anskk"}]]),d4=i("chart-bar-increasing",[["path",{d:"M3 3v16a2 2 0 0 0 2 2h16",key:"c24i48"}],["path",{d:"M7 11h8",key:"1feolt"}],["path",{d:"M7 16h12",key:"wsnu98"}],["path",{d:"M7 6h3",key:"w9rmul"}]]),d5=i("chart-bar-decreasing",[["path",{d:"M3 3v16a2 2 0 0 0 2 2h16",key:"c24i48"}],["path",{d:"M7 11h8",key:"1feolt"}],["path",{d:"M7 16h3",key:"ur6vzw"}],["path",{d:"M7 6h12",key:"sz5b0d"}]]),d6=i("chart-bar-stacked",[["path",{d:"M11 13v4",key:"vyy2rb"}],["path",{d:"M15 5v4",key:"1gx88a"}],["path",{d:"M3 3v16a2 2 0 0 0 2 2h16",key:"c24i48"}],["rect",{x:"7",y:"13",width:"9",height:"4",rx:"1",key:"1iip1u"}],["rect",{x:"7",y:"5",width:"12",height:"4",rx:"1",key:"1anskk"}]]),d7=i("chart-bar",[["path",{d:"M3 3v16a2 2 0 0 0 2 2h16",key:"c24i48"}],["path",{d:"M7 16h8",key:"srdodz"}],["path",{d:"M7 11h12",key:"127s9w"}],["path",{d:"M7 6h3",key:"w9rmul"}]]),d8=i("chart-candlestick",[["path",{d:"M9 5v4",key:"14uxtq"}],["rect",{width:"4",height:"6",x:"7",y:"9",rx:"1",key:"f4fvz0"}],["path",{d:"M9 15v2",key:"r5rk32"}],["path",{d:"M17 3v2",key:"1l2re6"}],["rect",{width:"4",height:"8",x:"15",y:"5",rx:"1",key:"z38je5"}],["path",{d:"M17 13v3",key:"5l0wba"}],["path",{d:"M3 3v16a2 2 0 0 0 2 2h16",key:"c24i48"}]]),d9=i("chart-column-big",[["path",{d:"M3 3v16a2 2 0 0 0 2 2h16",key:"c24i48"}],["rect",{x:"15",y:"5",width:"4",height:"12",rx:"1",key:"q8uenq"}],["rect",{x:"7",y:"8",width:"4",height:"9",rx:"1",key:"sr5ea"}]]),ea=i("chart-column-decreasing",[["path",{d:"M13 17V9",key:"1fwyjl"}],["path",{d:"M18 17v-3",key:"1sqioe"}],["path",{d:"M3 3v16a2 2 0 0 0 2 2h16",key:"c24i48"}],["path",{d:"M8 17V5",key:"1wzmnc"}]]),eb=i("chart-column-increasing",[["path",{d:"M13 17V9",key:"1fwyjl"}],["path",{d:"M18 17V5",key:"sfb6ij"}],["path",{d:"M3 3v16a2 2 0 0 0 2 2h16",key:"c24i48"}],["path",{d:"M8 17v-3",key:"17ska0"}]]),ec=i("chart-column-stacked",[["path",{d:"M11 13H7",key:"t0o9gq"}],["path",{d:"M19 9h-4",key:"rera1j"}],["path",{d:"M3 3v16a2 2 0 0 0 2 2h16",key:"c24i48"}],["rect",{x:"15",y:"5",width:"4",height:"12",rx:"1",key:"q8uenq"}],["rect",{x:"7",y:"8",width:"4",height:"9",rx:"1",key:"sr5ea"}]]),ed=i("chart-column",[["path",{d:"M3 3v16a2 2 0 0 0 2 2h16",key:"c24i48"}],["path",{d:"M18 17V9",key:"2bz60n"}],["path",{d:"M13 17V5",key:"1frdt8"}],["path",{d:"M8 17v-3",key:"17ska0"}]]),ee=i("chart-gantt",[["path",{d:"M10 6h8",key:"zvc2xc"}],["path",{d:"M12 16h6",key:"yi5mkt"}],["path",{d:"M3 3v16a2 2 0 0 0 2 2h16",key:"c24i48"}],["path",{d:"M8 11h7",key:"wz2hg0"}]]),ef=i("chart-line",[["path",{d:"M3 3v16a2 2 0 0 0 2 2h16",key:"c24i48"}],["path",{d:"m19 9-5 5-4-4-3 3",key:"2osh9i"}]]),eg=i("chart-network",[["path",{d:"m13.11 7.664 1.78 2.672",key:"go2gg9"}],["path",{d:"m14.162 12.788-3.324 1.424",key:"11x848"}],["path",{d:"m20 4-6.06 1.515",key:"1wxxh7"}],["path",{d:"M3 3v16a2 2 0 0 0 2 2h16",key:"c24i48"}],["circle",{cx:"12",cy:"6",r:"2",key:"1jj5th"}],["circle",{cx:"16",cy:"12",r:"2",key:"4ma0v8"}],["circle",{cx:"9",cy:"15",r:"2",key:"lf2ghp"}]]),eh=i("chart-no-axes-column-decreasing",[["path",{d:"M12 20V10",key:"g8npz5"}],["path",{d:"M18 20v-4",key:"8uic4z"}],["path",{d:"M6 20V4",key:"1w1bmo"}]]),ei=i("chart-no-axes-column-increasing",[["line",{x1:"12",x2:"12",y1:"20",y2:"10",key:"1vz5eb"}],["line",{x1:"18",x2:"18",y1:"20",y2:"4",key:"cun8e5"}],["line",{x1:"6",x2:"6",y1:"20",y2:"16",key:"hq0ia6"}]]),ej=i("chart-no-axes-column",[["line",{x1:"18",x2:"18",y1:"20",y2:"10",key:"1xfpm4"}],["line",{x1:"12",x2:"12",y1:"20",y2:"4",key:"be30l9"}],["line",{x1:"6",x2:"6",y1:"20",y2:"14",key:"1r4le6"}]]),ek=i("chart-no-axes-combined",[["path",{d:"M12 16v5",key:"zza2cw"}],["path",{d:"M16 14v7",key:"1g90b9"}],["path",{d:"M20 10v11",key:"1iqoj0"}],["path",{d:"m22 3-8.646 8.646a.5.5 0 0 1-.708 0L9.354 8.354a.5.5 0 0 0-.707 0L2 15",key:"1fw8x9"}],["path",{d:"M4 18v3",key:"1yp0dc"}],["path",{d:"M8 14v7",key:"n3cwzv"}]]),el=i("chart-no-axes-gantt",[["path",{d:"M8 6h10",key:"9lnwnk"}],["path",{d:"M6 12h9",key:"1g9pqf"}],["path",{d:"M11 18h7",key:"c8dzvl"}]]),em=i("chart-pie",[["path",{d:"M21 12c.552 0 1.005-.449.95-.998a10 10 0 0 0-8.953-8.951c-.55-.055-.998.398-.998.95v8a1 1 0 0 0 1 1z",key:"pzmjnu"}],["path",{d:"M21.21 15.89A10 10 0 1 1 8 2.83",key:"k2fpak"}]]),en=i("chart-scatter",[["circle",{cx:"7.5",cy:"7.5",r:".5",fill:"currentColor",key:"kqv944"}],["circle",{cx:"18.5",cy:"5.5",r:".5",fill:"currentColor",key:"lysivs"}],["circle",{cx:"11.5",cy:"11.5",r:".5",fill:"currentColor",key:"byv1b8"}],["circle",{cx:"7.5",cy:"16.5",r:".5",fill:"currentColor",key:"nkw3mc"}],["circle",{cx:"17.5",cy:"14.5",r:".5",fill:"currentColor",key:"1gjh6j"}],["path",{d:"M3 3v16a2 2 0 0 0 2 2h16",key:"c24i48"}]]),eo=i("chart-spline",[["path",{d:"M3 3v16a2 2 0 0 0 2 2h16",key:"c24i48"}],["path",{d:"M7 16c.5-2 1.5-7 4-7 2 0 2 3 4 3 2.5 0 4.5-5 5-7",key:"lw07rv"}]]),ep=i("check-check",[["path",{d:"M18 6 7 17l-5-5",key:"116fxf"}],["path",{d:"m22 10-7.5 7.5L13 16",key:"ke71qq"}]]),eq=i("check-line",[["path",{d:"M20 4L9 15",key:"1qkx8z"}],["path",{d:"M21 19L3 19",key:"100sma"}],["path",{d:"M9 15L4 10",key:"9zxff7"}]]),er=i("check",[["path",{d:"M20 6 9 17l-5-5",key:"1gmf2c"}]]),es=i("chef-hat",[["path",{d:"M17 21a1 1 0 0 0 1-1v-5.35c0-.457.316-.844.727-1.041a4 4 0 0 0-2.134-7.589 5 5 0 0 0-9.186 0 4 4 0 0 0-2.134 7.588c.411.198.727.585.727 1.041V20a1 1 0 0 0 1 1Z",key:"1qvrer"}],["path",{d:"M6 17h12",key:"1jwigz"}]]),et=i("cherry",[["path",{d:"M2 17a5 5 0 0 0 10 0c0-2.76-2.5-5-5-3-2.5-2-5 .24-5 3Z",key:"cvxqlc"}],["path",{d:"M12 17a5 5 0 0 0 10 0c0-2.76-2.5-5-5-3-2.5-2-5 .24-5 3Z",key:"1ostrc"}],["path",{d:"M7 14c3.22-2.91 4.29-8.75 5-12 1.66 2.38 4.94 9 5 12",key:"hqx58h"}],["path",{d:"M22 9c-4.29 0-7.14-2.33-10-7 5.71 0 10 4.67 10 7Z",key:"eykp1o"}]]),eu=i("chevron-down",[["path",{d:"m6 9 6 6 6-6",key:"qrunsl"}]]),ev=i("chevron-first",[["path",{d:"m17 18-6-6 6-6",key:"1yerx2"}],["path",{d:"M7 6v12",key:"1p53r6"}]]),ew=i("chevron-last",[["path",{d:"m7 18 6-6-6-6",key:"lwmzdw"}],["path",{d:"M17 6v12",key:"1o0aio"}]]),ex=i("chevron-left",[["path",{d:"m15 18-6-6 6-6",key:"1wnfg3"}]]),ey=i("chevron-right",[["path",{d:"m9 18 6-6-6-6",key:"mthhwq"}]]),ez=i("chevron-up",[["path",{d:"m18 15-6-6-6 6",key:"153udz"}]]),eA=i("chevrons-down-up",[["path",{d:"m7 20 5-5 5 5",key:"13a0gw"}],["path",{d:"m7 4 5 5 5-5",key:"1kwcof"}]]),eB=i("chevrons-down",[["path",{d:"m7 6 5 5 5-5",key:"1lc07p"}],["path",{d:"m7 13 5 5 5-5",key:"1d48rs"}]]),eC=i("chevrons-left-right-ellipsis",[["path",{d:"M12 12h.01",key:"1mp3jc"}],["path",{d:"M16 12h.01",key:"1l6xoz"}],["path",{d:"m17 7 5 5-5 5",key:"1xlxn0"}],["path",{d:"m7 7-5 5 5 5",key:"19njba"}],["path",{d:"M8 12h.01",key:"czm47f"}]]),eD=i("chevrons-left-right",[["path",{d:"m9 7-5 5 5 5",key:"j5w590"}],["path",{d:"m15 7 5 5-5 5",key:"1bl6da"}]]),eE=i("chevrons-left",[["path",{d:"m11 17-5-5 5-5",key:"13zhaf"}],["path",{d:"m18 17-5-5 5-5",key:"h8a8et"}]]),eF=i("chevrons-right-left",[["path",{d:"m20 17-5-5 5-5",key:"30x0n2"}],["path",{d:"m4 17 5-5-5-5",key:"16spf4"}]]),eG=i("chevrons-right",[["path",{d:"m6 17 5-5-5-5",key:"xnjwq"}],["path",{d:"m13 17 5-5-5-5",key:"17xmmf"}]]),eH=i("chevrons-up-down",[["path",{d:"m7 15 5 5 5-5",key:"1hf1tw"}],["path",{d:"m7 9 5-5 5 5",key:"sgt6xg"}]]),eI=i("chevrons-up",[["path",{d:"m17 11-5-5-5 5",key:"e8nh98"}],["path",{d:"m17 18-5-5-5 5",key:"2avn1x"}]]),eJ=i("chrome",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["circle",{cx:"12",cy:"12",r:"4",key:"4exip2"}],["line",{x1:"21.17",x2:"12",y1:"8",y2:"8",key:"a0cw5f"}],["line",{x1:"3.95",x2:"8.54",y1:"6.06",y2:"14",key:"1kftof"}],["line",{x1:"10.88",x2:"15.46",y1:"21.94",y2:"14",key:"1ymyh8"}]]),eK=i("cigarette-off",[["path",{d:"M12 12H3a1 1 0 0 0-1 1v2a1 1 0 0 0 1 1h13",key:"1gdiyg"}],["path",{d:"M18 8c0-2.5-2-2.5-2-5",key:"1il607"}],["path",{d:"m2 2 20 20",key:"1ooewy"}],["path",{d:"M21 12a1 1 0 0 1 1 1v2a1 1 0 0 1-.5.866",key:"166zjj"}],["path",{d:"M22 8c0-2.5-2-2.5-2-5",key:"1gah44"}],["path",{d:"M7 12v4",key:"jqww69"}]]),eL=i("church",[["path",{d:"M10 9h4",key:"u4k05v"}],["path",{d:"M12 7v5",key:"ma6bk"}],["path",{d:"M14 22v-4a2 2 0 0 0-4 0v4",key:"1pdhuj"}],["path",{d:"M18 22V5.618a1 1 0 0 0-.553-.894l-4.553-2.277a2 2 0 0 0-1.788 0L6.553 4.724A1 1 0 0 0 6 5.618V22",key:"1rkokr"}],["path",{d:"m18 7 3.447 1.724a1 1 0 0 1 .553.894V20a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2V9.618a1 1 0 0 1 .553-.894L6 7",key:"1w6esw"}]]),eM=i("cigarette",[["path",{d:"M17 12H3a1 1 0 0 0-1 1v2a1 1 0 0 0 1 1h14",key:"1mb5g1"}],["path",{d:"M18 8c0-2.5-2-2.5-2-5",key:"1il607"}],["path",{d:"M21 16a1 1 0 0 0 1-1v-2a1 1 0 0 0-1-1",key:"1yl5r7"}],["path",{d:"M22 8c0-2.5-2-2.5-2-5",key:"1gah44"}],["path",{d:"M7 12v4",key:"jqww69"}]]),eN=i("circle-alert",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["line",{x1:"12",x2:"12",y1:"8",y2:"12",key:"1pkeuh"}],["line",{x1:"12",x2:"12.01",y1:"16",y2:"16",key:"4dfq90"}]]),eO=i("circle-arrow-down",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"M12 8v8",key:"napkw2"}],["path",{d:"m8 12 4 4 4-4",key:"k98ssh"}]]),eP=i("circle-arrow-left",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"m12 8-4 4 4 4",key:"15vm53"}],["path",{d:"M16 12H8",key:"1fr5h0"}]]),eQ=i("circle-arrow-out-down-left",[["path",{d:"M2 12a10 10 0 1 1 10 10",key:"1yn6ov"}],["path",{d:"m2 22 10-10",key:"28ilpk"}],["path",{d:"M8 22H2v-6",key:"sulq54"}]]),eR=i("circle-arrow-out-down-right",[["path",{d:"M12 22a10 10 0 1 1 10-10",key:"130bv5"}],["path",{d:"M22 22 12 12",key:"131aw7"}],["path",{d:"M22 16v6h-6",key:"1gvm70"}]]),eS=i("circle-arrow-out-up-left",[["path",{d:"M2 8V2h6",key:"hiwtdz"}],["path",{d:"m2 2 10 10",key:"1oh8rs"}],["path",{d:"M12 2A10 10 0 1 1 2 12",key:"rrk4fa"}]]),eT=i("circle-arrow-out-up-right",[["path",{d:"M22 12A10 10 0 1 1 12 2",key:"1fm58d"}],["path",{d:"M22 2 12 12",key:"yg2myt"}],["path",{d:"M16 2h6v6",key:"zan5cs"}]]),eU=i("circle-arrow-right",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"m12 16 4-4-4-4",key:"1i9zcv"}],["path",{d:"M8 12h8",key:"1wcyev"}]]),eV=i("circle-arrow-up",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"m16 12-4-4-4 4",key:"177agl"}],["path",{d:"M12 16V8",key:"1sbj14"}]]),eW=i("circle-check-big",[["path",{d:"M21.801 10A10 10 0 1 1 17 3.335",key:"yps3ct"}],["path",{d:"m9 11 3 3L22 4",key:"1pflzl"}]]),eX=i("circle-check",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"m9 12 2 2 4-4",key:"dzmm74"}]]),eY=i("circle-chevron-down",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"m16 10-4 4-4-4",key:"894hmk"}]]),eZ=i("circle-chevron-left",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"m14 16-4-4 4-4",key:"ojs7w8"}]]),e$=i("circle-chevron-right",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"m10 8 4 4-4 4",key:"1wy4r4"}]]),e_=i("circle-chevron-up",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"m8 14 4-4 4 4",key:"fy2ptz"}]]),e0=i("circle-dashed",[["path",{d:"M10.1 2.182a10 10 0 0 1 3.8 0",key:"5ilxe3"}],["path",{d:"M13.9 21.818a10 10 0 0 1-3.8 0",key:"11zvb9"}],["path",{d:"M17.609 3.721a10 10 0 0 1 2.69 2.7",key:"1iw5b2"}],["path",{d:"M2.182 13.9a10 10 0 0 1 0-3.8",key:"c0bmvh"}],["path",{d:"M20.279 17.609a10 10 0 0 1-2.7 2.69",key:"1ruxm7"}],["path",{d:"M21.818 10.1a10 10 0 0 1 0 3.8",key:"qkgqxc"}],["path",{d:"M3.721 6.391a10 10 0 0 1 2.7-2.69",key:"1mcia2"}],["path",{d:"M6.391 20.279a10 10 0 0 1-2.69-2.7",key:"1fvljs"}]]),e1=i("circle-divide",[["line",{x1:"8",x2:"16",y1:"12",y2:"12",key:"1jonct"}],["line",{x1:"12",x2:"12",y1:"16",y2:"16",key:"aqc6ln"}],["line",{x1:"12",x2:"12",y1:"8",y2:"8",key:"1mkcni"}],["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}]]),e2=i("circle-dollar-sign",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"M16 8h-6a2 2 0 1 0 0 4h4a2 2 0 1 1 0 4H8",key:"1h4pet"}],["path",{d:"M12 18V6",key:"zqpxq5"}]]),e3=i("circle-dot-dashed",[["path",{d:"M10.1 2.18a9.93 9.93 0 0 1 3.8 0",key:"1qdqn0"}],["path",{d:"M17.6 3.71a9.95 9.95 0 0 1 2.69 2.7",key:"1bq7p6"}],["path",{d:"M21.82 10.1a9.93 9.93 0 0 1 0 3.8",key:"1rlaqf"}],["path",{d:"M20.29 17.6a9.95 9.95 0 0 1-2.7 2.69",key:"1xk03u"}],["path",{d:"M13.9 21.82a9.94 9.94 0 0 1-3.8 0",key:"l7re25"}],["path",{d:"M6.4 20.29a9.95 9.95 0 0 1-2.69-2.7",key:"1v18p6"}],["path",{d:"M2.18 13.9a9.93 9.93 0 0 1 0-3.8",key:"xdo6bj"}],["path",{d:"M3.71 6.4a9.95 9.95 0 0 1 2.7-2.69",key:"1jjmaz"}],["circle",{cx:"12",cy:"12",r:"1",key:"41hilf"}]]),e4=i("circle-dot",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["circle",{cx:"12",cy:"12",r:"1",key:"41hilf"}]]),e5=i("circle-ellipsis",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"M17 12h.01",key:"1m0b6t"}],["path",{d:"M12 12h.01",key:"1mp3jc"}],["path",{d:"M7 12h.01",key:"eqddd0"}]]),e6=i("circle-equal",[["path",{d:"M7 10h10",key:"1101jm"}],["path",{d:"M7 14h10",key:"1mhdw3"}],["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}]]),e7=i("circle-fading-arrow-up",[["path",{d:"M12 2a10 10 0 0 1 7.38 16.75",key:"175t95"}],["path",{d:"m16 12-4-4-4 4",key:"177agl"}],["path",{d:"M12 16V8",key:"1sbj14"}],["path",{d:"M2.5 8.875a10 10 0 0 0-.5 3",key:"1vce0s"}],["path",{d:"M2.83 16a10 10 0 0 0 2.43 3.4",key:"o3fkw4"}],["path",{d:"M4.636 5.235a10 10 0 0 1 .891-.857",key:"1szpfk"}],["path",{d:"M8.644 21.42a10 10 0 0 0 7.631-.38",key:"9yhvd4"}]]),e8=i("circle-fading-plus",[["path",{d:"M12 2a10 10 0 0 1 7.38 16.75",key:"175t95"}],["path",{d:"M12 8v8",key:"napkw2"}],["path",{d:"M16 12H8",key:"1fr5h0"}],["path",{d:"M2.5 8.875a10 10 0 0 0-.5 3",key:"1vce0s"}],["path",{d:"M2.83 16a10 10 0 0 0 2.43 3.4",key:"o3fkw4"}],["path",{d:"M4.636 5.235a10 10 0 0 1 .891-.857",key:"1szpfk"}],["path",{d:"M8.644 21.42a10 10 0 0 0 7.631-.38",key:"9yhvd4"}]]),e9=i("circle-gauge",[["path",{d:"M15.6 2.7a10 10 0 1 0 5.7 5.7",key:"1e0p6d"}],["circle",{cx:"12",cy:"12",r:"2",key:"1c9p78"}],["path",{d:"M13.4 10.6 19 5",key:"1kr7tw"}]]),fa=i("circle-minus",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"M8 12h8",key:"1wcyev"}]]),fb=i("circle-off",[["path",{d:"m2 2 20 20",key:"1ooewy"}],["path",{d:"M8.35 2.69A10 10 0 0 1 21.3 15.65",key:"1pfsoa"}],["path",{d:"M19.08 19.08A10 10 0 1 1 4.92 4.92",key:"1ablyi"}]]),fc=i("circle-parking-off",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"m5 5 14 14",key:"11anup"}],["path",{d:"M13 13a3 3 0 1 0 0-6H9v2",key:"uoagbd"}],["path",{d:"M9 17v-2.34",key:"a9qo08"}]]),fd=i("circle-parking",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"M9 17V7h4a3 3 0 0 1 0 6H9",key:"1dfk2c"}]]),fe=i("circle-pause",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["line",{x1:"10",x2:"10",y1:"15",y2:"9",key:"c1nkhi"}],["line",{x1:"14",x2:"14",y1:"15",y2:"9",key:"h65svq"}]]),ff=i("circle-percent",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"m15 9-6 6",key:"1uzhvr"}],["path",{d:"M9 9h.01",key:"1q5me6"}],["path",{d:"M15 15h.01",key:"lqbp3k"}]]),fg=i("circle-play",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["polygon",{points:"10 8 16 12 10 16 10 8",key:"1cimsy"}]]),fh=i("circle-plus",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"M8 12h8",key:"1wcyev"}],["path",{d:"M12 8v8",key:"napkw2"}]]),fi=i("circle-pound-sterling",[["path",{d:"M10 16V9.5a1 1 0 0 1 5 0",key:"1i1are"}],["path",{d:"M8 12h4",key:"qz6y1c"}],["path",{d:"M8 16h7",key:"sbedsn"}],["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}]]),fj=i("circle-power",[["path",{d:"M12 7v4",key:"xawao1"}],["path",{d:"M7.998 9.003a5 5 0 1 0 8-.005",key:"1pek45"}],["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}]]),fk=i("circle-question-mark",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"M9.09 9a3 3 0 0 1 5.83 1c0 2-3 3-3 3",key:"1u773s"}],["path",{d:"M12 17h.01",key:"p32p05"}]]),fl=i("circle-slash-2",[["path",{d:"M22 2 2 22",key:"y4kqgn"}],["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}]]),fm=i("circle-slash",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["line",{x1:"9",x2:"15",y1:"15",y2:"9",key:"1dfufj"}]]),fn=i("circle-small",[["circle",{cx:"12",cy:"12",r:"6",key:"1vlfrh"}]]),fo=i("circle-stop",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["rect",{x:"9",y:"9",width:"6",height:"6",rx:"1",key:"1ssd4o"}]]),fp=i("circle-user-round",[["path",{d:"M18 20a6 6 0 0 0-12 0",key:"1qehca"}],["circle",{cx:"12",cy:"10",r:"4",key:"1h16sb"}],["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}]]),fq=i("circle-user",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["circle",{cx:"12",cy:"10",r:"3",key:"ilqhr7"}],["path",{d:"M7 20.662V19a2 2 0 0 1 2-2h6a2 2 0 0 1 2 2v1.662",key:"154egf"}]]),fr=i("circle-x",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"m15 9-6 6",key:"1uzhvr"}],["path",{d:"m9 9 6 6",key:"z0biqf"}]]),fs=i("circle",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}]]),ft=i("circuit-board",[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",key:"afitv7"}],["path",{d:"M11 9h4a2 2 0 0 0 2-2V3",key:"1ve2rv"}],["circle",{cx:"9",cy:"9",r:"2",key:"af1f0g"}],["path",{d:"M7 21v-4a2 2 0 0 1 2-2h4",key:"1fwkro"}],["circle",{cx:"15",cy:"15",r:"2",key:"3i40o0"}]]),fu=i("citrus",[["path",{d:"M21.66 17.67a1.08 1.08 0 0 1-.04 1.6A12 12 0 0 1 4.73 2.38a1.1 1.1 0 0 1 1.61-.04z",key:"4ite01"}],["path",{d:"M19.65 15.66A8 8 0 0 1 8.35 4.34",key:"1gxipu"}],["path",{d:"m14 10-5.5 5.5",key:"92pfem"}],["path",{d:"M14 17.85V10H6.15",key:"xqmtsk"}]]),fv=i("clapperboard",[["path",{d:"M20.2 6 3 11l-.9-2.4c-.3-1.1.3-2.2 1.3-2.5l13.5-4c1.1-.3 2.2.3 2.5 1.3Z",key:"1tn4o7"}],["path",{d:"m6.2 5.3 3.1 3.9",key:"iuk76l"}],["path",{d:"m12.4 3.4 3.1 4",key:"6hsd6n"}],["path",{d:"M3 11h18v8a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2Z",key:"ltgou9"}]]),fw=i("clipboard-check",[["rect",{width:"8",height:"4",x:"8",y:"2",rx:"1",ry:"1",key:"tgr4d6"}],["path",{d:"M16 4h2a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2h2",key:"116196"}],["path",{d:"m9 14 2 2 4-4",key:"df797q"}]]),fx=i("clipboard-copy",[["rect",{width:"8",height:"4",x:"8",y:"2",rx:"1",ry:"1",key:"tgr4d6"}],["path",{d:"M8 4H6a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2v-2",key:"4jdomd"}],["path",{d:"M16 4h2a2 2 0 0 1 2 2v4",key:"3hqy98"}],["path",{d:"M21 14H11",key:"1bme5i"}],["path",{d:"m15 10-4 4 4 4",key:"5dvupr"}]]),fy=i("clipboard-list",[["rect",{width:"8",height:"4",x:"8",y:"2",rx:"1",ry:"1",key:"tgr4d6"}],["path",{d:"M16 4h2a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2h2",key:"116196"}],["path",{d:"M12 11h4",key:"1jrz19"}],["path",{d:"M12 16h4",key:"n85exb"}],["path",{d:"M8 11h.01",key:"1dfujw"}],["path",{d:"M8 16h.01",key:"18s6g9"}]]),fz=i("clipboard-minus",[["rect",{width:"8",height:"4",x:"8",y:"2",rx:"1",ry:"1",key:"tgr4d6"}],["path",{d:"M16 4h2a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2h2",key:"116196"}],["path",{d:"M9 14h6",key:"159ibu"}]]),fA=i("clipboard-paste",[["path",{d:"M11 14h10",key:"1w8e9d"}],["path",{d:"M16 4h2a2 2 0 0 1 2 2v1.344",key:"1e62lh"}],["path",{d:"m17 18 4-4-4-4",key:"z2g111"}],["path",{d:"M8 4H6a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h12a2 2 0 0 0 1.793-1.113",key:"bjbb7m"}],["rect",{x:"8",y:"2",width:"8",height:"4",rx:"1",key:"ublpy"}]]),fB=i("clipboard-pen-line",[["rect",{width:"8",height:"4",x:"8",y:"2",rx:"1",key:"1oijnt"}],["path",{d:"M8 4H6a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2v-.5",key:"1but9f"}],["path",{d:"M16 4h2a2 2 0 0 1 1.73 1",key:"1p8n7l"}],["path",{d:"M8 18h1",key:"13wk12"}],["path",{d:"M21.378 12.626a1 1 0 0 0-3.004-3.004l-4.01 4.012a2 2 0 0 0-.506.854l-.837 2.87a.5.5 0 0 0 .62.62l2.87-.837a2 2 0 0 0 .854-.506z",key:"2t3380"}]]),fC=i("clipboard-pen",[["rect",{width:"8",height:"4",x:"8",y:"2",rx:"1",key:"1oijnt"}],["path",{d:"M16 4h2a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2h-5.5",key:"cereej"}],["path",{d:"M4 13.5V6a2 2 0 0 1 2-2h2",key:"5ua5vh"}],["path",{d:"M13.378 15.626a1 1 0 1 0-3.004-3.004l-5.01 5.012a2 2 0 0 0-.506.854l-.837 2.87a.5.5 0 0 0 .62.62l2.87-.837a2 2 0 0 0 .854-.506z",key:"1y4qbx"}]]),fD=i("clipboard-plus",[["rect",{width:"8",height:"4",x:"8",y:"2",rx:"1",ry:"1",key:"tgr4d6"}],["path",{d:"M16 4h2a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2h2",key:"116196"}],["path",{d:"M9 14h6",key:"159ibu"}],["path",{d:"M12 17v-6",key:"1y8rbf"}]]),fE=i("clipboard-type",[["rect",{width:"8",height:"4",x:"8",y:"2",rx:"1",ry:"1",key:"tgr4d6"}],["path",{d:"M16 4h2a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2h2",key:"116196"}],["path",{d:"M9 12v-1h6v1",key:"iehl6m"}],["path",{d:"M11 17h2",key:"12w5me"}],["path",{d:"M12 11v6",key:"1bwqyc"}]]),fF=i("clipboard-x",[["rect",{width:"8",height:"4",x:"8",y:"2",rx:"1",ry:"1",key:"tgr4d6"}],["path",{d:"M16 4h2a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2h2",key:"116196"}],["path",{d:"m15 11-6 6",key:"1toa9n"}],["path",{d:"m9 11 6 6",key:"wlibny"}]]),fG=i("clipboard",[["rect",{width:"8",height:"4",x:"8",y:"2",rx:"1",ry:"1",key:"tgr4d6"}],["path",{d:"M16 4h2a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2h2",key:"116196"}]]),fH=i("clock-1",[["path",{d:"M12 6v6l2-4",key:"miptyd"}],["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}]]),fI=i("clock-10",[["path",{d:"M12 6v6l-4-2",key:"cedpoo"}],["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}]]),fJ=i("clock-11",[["path",{d:"M12 6v6l-2-4",key:"ns39ag"}],["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}]]),fK=i("clock-2",[["path",{d:"M12 6v6l4-2",key:"1r2kuh"}],["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}]]),fL=i("clock-12",[["path",{d:"M12 6v6",key:"1ipuwl"}],["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}]]),fM=i("clock-3",[["path",{d:"M12 6v6h4",key:"135r8i"}],["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}]]),fN=i("clock-4",[["path",{d:"M12 6v6l4 2",key:"mmk7yg"}],["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}]]),fO=i("clock-5",[["path",{d:"M12 6v6l2 4",key:"1287s9"}],["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}]]),fP=i("clock-6",[["path",{d:"M12 6v10",key:"wf7rdh"}],["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}]]),fQ=i("clock-7",[["path",{d:"M12 6v6l-2 4",key:"1095bu"}],["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}]]),fR=i("clock-8",[["path",{d:"M12 6v6l-4 2",key:"imc3wl"}],["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}]]),fS=i("clock-9",[["path",{d:"M12 6v6H8",key:"u39vzm"}],["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}]]),fT=i("clock-alert",[["path",{d:"M12 6v6l4 2",key:"mmk7yg"}],["path",{d:"M20 12v5",key:"12wsvk"}],["path",{d:"M20 21h.01",key:"1p6o6n"}],["path",{d:"M21.25 8.2A10 10 0 1 0 16 21.16",key:"17fp9f"}]]),fU=i("clock-arrow-down",[["path",{d:"M12 6v6l2 1",key:"19cm8n"}],["path",{d:"M12.337 21.994a10 10 0 1 1 9.588-8.767",key:"28moa"}],["path",{d:"m14 18 4 4 4-4",key:"1waygx"}],["path",{d:"M18 14v8",key:"irew45"}]]),fV=i("clock-arrow-up",[["path",{d:"M12 6v6l1.56.78",key:"14ed3g"}],["path",{d:"M13.227 21.925a10 10 0 1 1 8.767-9.588",key:"jwkls1"}],["path",{d:"m14 18 4-4 4 4",key:"ftkppy"}],["path",{d:"M18 22v-8",key:"su0gjh"}]]),fW=i("clock-fading",[["path",{d:"M12 2a10 10 0 0 1 7.38 16.75",key:"175t95"}],["path",{d:"M12 6v6l4 2",key:"mmk7yg"}],["path",{d:"M2.5 8.875a10 10 0 0 0-.5 3",key:"1vce0s"}],["path",{d:"M2.83 16a10 10 0 0 0 2.43 3.4",key:"o3fkw4"}],["path",{d:"M4.636 5.235a10 10 0 0 1 .891-.857",key:"1szpfk"}],["path",{d:"M8.644 21.42a10 10 0 0 0 7.631-.38",key:"9yhvd4"}]]),fX=i("clock-plus",[["path",{d:"M12 6v6l3.644 1.822",key:"1jmett"}],["path",{d:"M16 19h6",key:"xwg31i"}],["path",{d:"M19 16v6",key:"tddt3s"}],["path",{d:"M21.92 13.267a10 10 0 1 0-8.653 8.653",key:"1u0osk"}]]),fY=i("clock",[["path",{d:"M12 6v6l4 2",key:"mmk7yg"}],["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}]]),fZ=i("cloud-alert",[["path",{d:"M12 12v4",key:"tww15h"}],["path",{d:"M12 20h.01",key:"zekei9"}],["path",{d:"M17 18h.5a1 1 0 0 0 0-9h-1.79A7 7 0 1 0 7 17.708",key:"xsb5ju"}]]),f$=i("cloud-check",[["path",{d:"m17 15-5.5 5.5L9 18",key:"15q87x"}],["path",{d:"M5 17.743A7 7 0 1 1 15.71 10h1.79a4.5 4.5 0 0 1 1.5 8.742",key:"9ho6ki"}]]),f_=i("cloud-cog",[["path",{d:"m10.852 19.772-.383.924",key:"r7sl7d"}],["path",{d:"m13.148 14.228.383-.923",key:"1d5zpm"}],["path",{d:"M13.148 19.772a3 3 0 1 0-2.296-5.544l-.383-.923",key:"1ydik7"}],["path",{d:"m13.53 20.696-.382-.924a3 3 0 1 1-2.296-5.544",key:"1m1vsf"}],["path",{d:"m14.772 15.852.923-.383",key:"660p6e"}],["path",{d:"m14.772 18.148.923.383",key:"hrcpis"}],["path",{d:"M4.2 15.1a7 7 0 1 1 9.93-9.858A7 7 0 0 1 15.71 8h1.79a4.5 4.5 0 0 1 2.5 8.2",key:"j2q98n"}],["path",{d:"m9.228 15.852-.923-.383",key:"1p9ong"}],["path",{d:"m9.228 18.148-.923.383",key:"6558rz"}]]),f0=i("cloud-download",[["path",{d:"M12 13v8l-4-4",key:"1f5nwf"}],["path",{d:"m12 21 4-4",key:"1lfcce"}],["path",{d:"M4.393 15.269A7 7 0 1 1 15.71 8h1.79a4.5 4.5 0 0 1 2.436 8.284",key:"ui1hmy"}]]),f1=i("cloud-drizzle",[["path",{d:"M4 14.899A7 7 0 1 1 15.71 8h1.79a4.5 4.5 0 0 1 2.5 8.242",key:"1pljnt"}],["path",{d:"M8 19v1",key:"1dk2by"}],["path",{d:"M8 14v1",key:"84yxot"}],["path",{d:"M16 19v1",key:"v220m7"}],["path",{d:"M16 14v1",key:"g12gj6"}],["path",{d:"M12 21v1",key:"q8vafk"}],["path",{d:"M12 16v1",key:"1mx6rx"}]]),f2=i("cloud-fog",[["path",{d:"M4 14.899A7 7 0 1 1 15.71 8h1.79a4.5 4.5 0 0 1 2.5 8.242",key:"1pljnt"}],["path",{d:"M16 17H7",key:"pygtm1"}],["path",{d:"M17 21H9",key:"1u2q02"}]]),f3=i("cloud-hail",[["path",{d:"M4 14.899A7 7 0 1 1 15.71 8h1.79a4.5 4.5 0 0 1 2.5 8.242",key:"1pljnt"}],["path",{d:"M16 14v2",key:"a1is7l"}],["path",{d:"M8 14v2",key:"1e9m6t"}],["path",{d:"M16 20h.01",key:"xwek51"}],["path",{d:"M8 20h.01",key:"1vjney"}],["path",{d:"M12 16v2",key:"z66u1j"}],["path",{d:"M12 22h.01",key:"1urd7a"}]]),f4=i("cloud-lightning",[["path",{d:"M6 16.326A7 7 0 1 1 15.71 8h1.79a4.5 4.5 0 0 1 .5 8.973",key:"1cez44"}],["path",{d:"m13 12-3 5h4l-3 5",key:"1t22er"}]]),f5=i("cloud-moon-rain",[["path",{d:"M10.188 8.5A6 6 0 0 1 16 4a1 1 0 0 0 6 6 6 6 0 0 1-3 5.197",key:"erj67n"}],["path",{d:"M11 20v2",key:"174qtz"}],["path",{d:"M3 20a5 5 0 1 1 8.9-4H13a3 3 0 0 1 2 5.24",key:"1qmrp3"}],["path",{d:"M7 19v2",key:"12npes"}]]),f6=i("cloud-moon",[["path",{d:"M10.188 8.5A6 6 0 0 1 16 4a1 1 0 0 0 6 6 6 6 0 0 1-3 5.197",key:"erj67n"}],["path",{d:"M13 16a3 3 0 1 1 0 6H7a5 5 0 1 1 4.9-6Z",key:"p44pc9"}]]),f7=i("cloud-off",[["path",{d:"m2 2 20 20",key:"1ooewy"}],["path",{d:"M5.782 5.782A7 7 0 0 0 9 19h8.5a4.5 4.5 0 0 0 1.307-.193",key:"yfwify"}],["path",{d:"M21.532 16.5A4.5 4.5 0 0 0 17.5 10h-1.79A7.008 7.008 0 0 0 10 5.07",key:"jlfiyv"}]]),f8=i("cloud-rain",[["path",{d:"M4 14.899A7 7 0 1 1 15.71 8h1.79a4.5 4.5 0 0 1 2.5 8.242",key:"1pljnt"}],["path",{d:"M16 14v6",key:"1j4efv"}],["path",{d:"M8 14v6",key:"17c4r9"}],["path",{d:"M12 16v6",key:"c8a4gj"}]]),f9=i("cloud-rain-wind",[["path",{d:"M4 14.899A7 7 0 1 1 15.71 8h1.79a4.5 4.5 0 0 1 2.5 8.242",key:"1pljnt"}],["path",{d:"m9.2 22 3-7",key:"sb5f6j"}],["path",{d:"m9 13-3 7",key:"500co5"}],["path",{d:"m17 13-3 7",key:"8t2fiy"}]]),ga=i("cloud-snow",[["path",{d:"M4 14.899A7 7 0 1 1 15.71 8h1.79a4.5 4.5 0 0 1 2.5 8.242",key:"1pljnt"}],["path",{d:"M8 15h.01",key:"a7atzg"}],["path",{d:"M8 19h.01",key:"puxtts"}],["path",{d:"M12 17h.01",key:"p32p05"}],["path",{d:"M12 21h.01",key:"h35vbk"}],["path",{d:"M16 15h.01",key:"rnfrdf"}],["path",{d:"M16 19h.01",key:"1vcnzz"}]]),gb=i("cloud-sun-rain",[["path",{d:"M12 2v2",key:"tus03m"}],["path",{d:"m4.93 4.93 1.41 1.41",key:"149t6j"}],["path",{d:"M20 12h2",key:"1q8mjw"}],["path",{d:"m19.07 4.93-1.41 1.41",key:"1shlcs"}],["path",{d:"M15.947 12.65a4 4 0 0 0-5.925-4.128",key:"dpwdj0"}],["path",{d:"M3 20a5 5 0 1 1 8.9-4H13a3 3 0 0 1 2 5.24",key:"1qmrp3"}],["path",{d:"M11 20v2",key:"174qtz"}],["path",{d:"M7 19v2",key:"12npes"}]]),gc=i("cloud-sun",[["path",{d:"M12 2v2",key:"tus03m"}],["path",{d:"m4.93 4.93 1.41 1.41",key:"149t6j"}],["path",{d:"M20 12h2",key:"1q8mjw"}],["path",{d:"m19.07 4.93-1.41 1.41",key:"1shlcs"}],["path",{d:"M15.947 12.65a4 4 0 0 0-5.925-4.128",key:"dpwdj0"}],["path",{d:"M13 22H7a5 5 0 1 1 4.9-6H13a3 3 0 0 1 0 6Z",key:"s09mg5"}]]),gd=i("cloud-upload",[["path",{d:"M12 13v8",key:"1l5pq0"}],["path",{d:"M4 14.899A7 7 0 1 1 15.71 8h1.79a4.5 4.5 0 0 1 2.5 8.242",key:"1pljnt"}],["path",{d:"m8 17 4-4 4 4",key:"1quai1"}]]),ge=i("cloud",[["path",{d:"M17.5 19H9a7 7 0 1 1 6.71-9h1.79a4.5 4.5 0 1 1 0 9Z",key:"p7xjir"}]]),gf=i("clover",[["path",{d:"M16.17 7.83 2 22",key:"t58vo8"}],["path",{d:"M4.02 12a2.827 2.827 0 1 1 3.81-4.17A2.827 2.827 0 1 1 12 4.02a2.827 2.827 0 1 1 4.17 3.81A2.827 2.827 0 1 1 19.98 12a2.827 2.827 0 1 1-3.81 4.17A2.827 2.827 0 1 1 12 19.98a2.827 2.827 0 1 1-4.17-3.81A1 1 0 1 1 4 12",key:"17k36q"}],["path",{d:"m7.83 7.83 8.34 8.34",key:"1d7sxk"}]]),gg=i("cloudy",[["path",{d:"M17.5 21H9a7 7 0 1 1 6.71-9h1.79a4.5 4.5 0 1 1 0 9Z",key:"gqqjvc"}],["path",{d:"M22 10a3 3 0 0 0-3-3h-2.207a5.502 5.502 0 0 0-10.702.5",key:"1p2s76"}]]),gh=i("club",[["path",{d:"M17.28 9.05a5.5 5.5 0 1 0-10.56 0A5.5 5.5 0 1 0 12 17.66a5.5 5.5 0 1 0 5.28-8.6Z",key:"27yuqz"}],["path",{d:"M12 17.66L12 22",key:"ogfahf"}]]),gi=i("code-xml",[["path",{d:"m18 16 4-4-4-4",key:"1inbqp"}],["path",{d:"m6 8-4 4 4 4",key:"15zrgr"}],["path",{d:"m14.5 4-5 16",key:"e7oirm"}]]),gj=i("code",[["path",{d:"m16 18 6-6-6-6",key:"eg8j8"}],["path",{d:"m8 6-6 6 6 6",key:"ppft3o"}]]),gk=i("codepen",[["polygon",{points:"12 2 22 8.5 22 15.5 12 22 2 15.5 2 8.5 12 2",key:"srzb37"}],["line",{x1:"12",x2:"12",y1:"22",y2:"15.5",key:"1t73f2"}],["polyline",{points:"22 8.5 12 15.5 2 8.5",key:"ajlxae"}],["polyline",{points:"2 15.5 12 8.5 22 15.5",key:"susrui"}],["line",{x1:"12",x2:"12",y1:"2",y2:"8.5",key:"2cldga"}]]),gl=i("codesandbox",[["path",{d:"M21 16V8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73l7 4a2 2 0 0 0 2 0l7-4A2 2 0 0 0 21 16z",key:"yt0hxn"}],["polyline",{points:"7.5 4.21 12 6.81 16.5 4.21",key:"fabo96"}],["polyline",{points:"7.5 19.79 7.5 14.6 3 12",key:"z377f1"}],["polyline",{points:"21 12 16.5 14.6 16.5 19.79",key:"9nrev1"}],["polyline",{points:"3.27 6.96 12 12.01 20.73 6.96",key:"1180pa"}],["line",{x1:"12",x2:"12",y1:"22.08",y2:"12",key:"3z3uq6"}]]),gm=i("coffee",[["path",{d:"M10 2v2",key:"7u0qdc"}],["path",{d:"M14 2v2",key:"6buw04"}],["path",{d:"M16 8a1 1 0 0 1 1 1v8a4 4 0 0 1-4 4H7a4 4 0 0 1-4-4V9a1 1 0 0 1 1-1h14a4 4 0 1 1 0 8h-1",key:"pwadti"}],["path",{d:"M6 2v2",key:"colzsn"}]]),gn=i("cog",[["path",{d:"M12 20a8 8 0 1 0 0-16 8 8 0 0 0 0 16Z",key:"sobvz5"}],["path",{d:"M12 14a2 2 0 1 0 0-4 2 2 0 0 0 0 4Z",key:"11i496"}],["path",{d:"M12 2v2",key:"tus03m"}],["path",{d:"M12 22v-2",key:"1osdcq"}],["path",{d:"m17 20.66-1-1.73",key:"eq3orb"}],["path",{d:"M11 10.27 7 3.34",key:"16pf9h"}],["path",{d:"m20.66 17-1.73-1",key:"sg0v6f"}],["path",{d:"m3.34 7 1.73 1",key:"1ulond"}],["path",{d:"M14 12h8",key:"4f43i9"}],["path",{d:"M2 12h2",key:"1t8f8n"}],["path",{d:"m20.66 7-1.73 1",key:"1ow05n"}],["path",{d:"m3.34 17 1.73-1",key:"nuk764"}],["path",{d:"m17 3.34-1 1.73",key:"2wel8s"}],["path",{d:"m11 13.73-4 6.93",key:"794ttg"}]]),go=i("coins",[["circle",{cx:"8",cy:"8",r:"6",key:"3yglwk"}],["path",{d:"M18.09 10.37A6 6 0 1 1 10.34 18",key:"t5s6rm"}],["path",{d:"M7 6h1v4",key:"1obek4"}],["path",{d:"m16.71 13.88.7.71-2.82 2.82",key:"1rbuyh"}]]),gp=i("columns-2",[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",key:"afitv7"}],["path",{d:"M12 3v18",key:"108xh3"}]]),gq=i("columns-3-cog",[["path",{d:"M10.5 21H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2v5.5",key:"1g2yzs"}],["path",{d:"m14.3 19.6 1-.4",key:"11sv9r"}],["path",{d:"M15 3v7.5",key:"7lm50a"}],["path",{d:"m15.2 16.9-.9-.3",key:"1t7mvx"}],["path",{d:"m16.6 21.7.3-.9",key:"1j67ps"}],["path",{d:"m16.8 15.3-.4-1",key:"1ei7r6"}],["path",{d:"m19.1 15.2.3-.9",key:"18r7jp"}],["path",{d:"m19.6 21.7-.4-1",key:"z2vh2"}],["path",{d:"m20.7 16.8 1-.4",key:"19m87a"}],["path",{d:"m21.7 19.4-.9-.3",key:"1qgwi9"}],["path",{d:"M9 3v18",key:"fh3hqa"}],["circle",{cx:"18",cy:"18",r:"3",key:"1xkwt0"}]]),gr=i("columns-3",[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",key:"afitv7"}],["path",{d:"M9 3v18",key:"fh3hqa"}],["path",{d:"M15 3v18",key:"14nvp0"}]]),gs=i("columns-4",[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",key:"afitv7"}],["path",{d:"M7.5 3v18",key:"w0wo6v"}],["path",{d:"M12 3v18",key:"108xh3"}],["path",{d:"M16.5 3v18",key:"10tjh1"}]]),gt=i("combine",[["path",{d:"M10 18H5a3 3 0 0 1-3-3v-1",key:"ru65g8"}],["path",{d:"M14 2a2 2 0 0 1 2 2v4a2 2 0 0 1-2 2",key:"e30een"}],["path",{d:"M20 2a2 2 0 0 1 2 2v4a2 2 0 0 1-2 2",key:"2ahx8o"}],["path",{d:"m7 21 3-3-3-3",key:"127cv2"}],["rect",{x:"14",y:"14",width:"8",height:"8",rx:"2",key:"1b0bso"}],["rect",{x:"2",y:"2",width:"8",height:"8",rx:"2",key:"1x09vl"}]]),gu=i("command",[["path",{d:"M15 6v12a3 3 0 1 0 3-3H6a3 3 0 1 0 3 3V6a3 3 0 1 0-3 3h12a3 3 0 1 0-3-3",key:"11bfej"}]]),gv=i("compass",[["path",{d:"m16.24 7.76-1.804 5.411a2 2 0 0 1-1.265 1.265L7.76 16.24l1.804-5.411a2 2 0 0 1 1.265-1.265z",key:"9ktpf1"}],["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}]]),gw=i("component",[["path",{d:"M15.536 11.293a1 1 0 0 0 0 1.414l2.376 2.377a1 1 0 0 0 1.414 0l2.377-2.377a1 1 0 0 0 0-1.414l-2.377-2.377a1 1 0 0 0-1.414 0z",key:"1uwlt4"}],["path",{d:"M2.297 11.293a1 1 0 0 0 0 1.414l2.377 2.377a1 1 0 0 0 1.414 0l2.377-2.377a1 1 0 0 0 0-1.414L6.088 8.916a1 1 0 0 0-1.414 0z",key:"10291m"}],["path",{d:"M8.916 17.912a1 1 0 0 0 0 1.415l2.377 2.376a1 1 0 0 0 1.414 0l2.377-2.376a1 1 0 0 0 0-1.415l-2.377-2.376a1 1 0 0 0-1.414 0z",key:"1tqoq1"}],["path",{d:"M8.916 4.674a1 1 0 0 0 0 1.414l2.377 2.376a1 1 0 0 0 1.414 0l2.377-2.376a1 1 0 0 0 0-1.414l-2.377-2.377a1 1 0 0 0-1.414 0z",key:"1x6lto"}]]),gx=i("computer",[["rect",{width:"14",height:"8",x:"5",y:"2",rx:"2",key:"wc9tft"}],["rect",{width:"20",height:"8",x:"2",y:"14",rx:"2",key:"w68u3i"}],["path",{d:"M6 18h2",key:"rwmk9e"}],["path",{d:"M12 18h6",key:"aqd8w3"}]]),gy=i("concierge-bell",[["path",{d:"M3 20a1 1 0 0 1-1-1v-1a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2v1a1 1 0 0 1-1 1Z",key:"1pvr1r"}],["path",{d:"M20 16a8 8 0 1 0-16 0",key:"1pa543"}],["path",{d:"M12 4v4",key:"1bq03y"}],["path",{d:"M10 4h4",key:"1xpv9s"}]]),gz=i("cone",[["path",{d:"m20.9 18.55-8-15.98a1 1 0 0 0-1.8 0l-8 15.98",key:"53pte7"}],["ellipse",{cx:"12",cy:"19",rx:"9",ry:"3",key:"1ji25f"}]]),gA=i("construction",[["rect",{x:"2",y:"6",width:"20",height:"8",rx:"1",key:"1estib"}],["path",{d:"M17 14v7",key:"7m2elx"}],["path",{d:"M7 14v7",key:"1cm7wv"}],["path",{d:"M17 3v3",key:"1v4jwn"}],["path",{d:"M7 3v3",key:"7o6guu"}],["path",{d:"M10 14 2.3 6.3",key:"1023jk"}],["path",{d:"m14 6 7.7 7.7",key:"1s8pl2"}],["path",{d:"m8 6 8 8",key:"hl96qh"}]]),gB=i("contact-round",[["path",{d:"M16 2v2",key:"scm5qe"}],["path",{d:"M17.915 22a6 6 0 0 0-12 0",key:"suqz9p"}],["path",{d:"M8 2v2",key:"pbkmx"}],["circle",{cx:"12",cy:"12",r:"4",key:"4exip2"}],["rect",{x:"3",y:"4",width:"18",height:"18",rx:"2",key:"12vinp"}]]),gC=i("contact",[["path",{d:"M16 2v2",key:"scm5qe"}],["path",{d:"M7 22v-2a2 2 0 0 1 2-2h6a2 2 0 0 1 2 2v2",key:"1waht3"}],["path",{d:"M8 2v2",key:"pbkmx"}],["circle",{cx:"12",cy:"11",r:"3",key:"itu57m"}],["rect",{x:"3",y:"4",width:"18",height:"18",rx:"2",key:"12vinp"}]]),gD=i("container",[["path",{d:"M22 7.7c0-.6-.4-1.2-.8-1.5l-6.3-3.9a1.72 1.72 0 0 0-1.7 0l-10.3 6c-.5.2-.9.8-.9 1.4v6.6c0 .5.4 1.2.8 1.5l6.3 3.9a1.72 1.72 0 0 0 1.7 0l10.3-6c.5-.3.9-1 .9-1.5Z",key:"1t2lqe"}],["path",{d:"M10 21.9V14L2.1 9.1",key:"o7czzq"}],["path",{d:"m10 14 11.9-6.9",key:"zm5e20"}],["path",{d:"M14 19.8v-8.1",key:"159ecu"}],["path",{d:"M18 17.5V9.4",key:"11uown"}]]),gE=i("contrast",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"M12 18a6 6 0 0 0 0-12v12z",key:"j4l70d"}]]),gF=i("cookie",[["path",{d:"M12 2a10 10 0 1 0 10 10 4 4 0 0 1-5-5 4 4 0 0 1-5-5",key:"laymnq"}],["path",{d:"M8.5 8.5v.01",key:"ue8clq"}],["path",{d:"M16 15.5v.01",key:"14dtrp"}],["path",{d:"M12 12v.01",key:"u5ubse"}],["path",{d:"M11 17v.01",key:"1hyl5a"}],["path",{d:"M7 14v.01",key:"uct60s"}]]),gG=i("cooking-pot",[["path",{d:"M2 12h20",key:"9i4pu4"}],["path",{d:"M20 12v8a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2v-8",key:"u0tga0"}],["path",{d:"m4 8 16-4",key:"16g0ng"}],["path",{d:"m8.86 6.78-.45-1.81a2 2 0 0 1 1.45-2.43l1.94-.48a2 2 0 0 1 2.43 1.46l.45 1.8",key:"12cejc"}]]),gH=i("copy-check",[["path",{d:"m12 15 2 2 4-4",key:"2c609p"}],["rect",{width:"14",height:"14",x:"8",y:"8",rx:"2",ry:"2",key:"17jyea"}],["path",{d:"M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2",key:"zix9uf"}]]),gI=i("copy-minus",[["line",{x1:"12",x2:"18",y1:"15",y2:"15",key:"1nscbv"}],["rect",{width:"14",height:"14",x:"8",y:"8",rx:"2",ry:"2",key:"17jyea"}],["path",{d:"M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2",key:"zix9uf"}]]),gJ=i("copy-plus",[["line",{x1:"15",x2:"15",y1:"12",y2:"18",key:"1p7wdc"}],["line",{x1:"12",x2:"18",y1:"15",y2:"15",key:"1nscbv"}],["rect",{width:"14",height:"14",x:"8",y:"8",rx:"2",ry:"2",key:"17jyea"}],["path",{d:"M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2",key:"zix9uf"}]]),gK=i("copy-x",[["line",{x1:"12",x2:"18",y1:"12",y2:"18",key:"1rg63v"}],["line",{x1:"12",x2:"18",y1:"18",y2:"12",key:"ebkxgr"}],["rect",{width:"14",height:"14",x:"8",y:"8",rx:"2",ry:"2",key:"17jyea"}],["path",{d:"M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2",key:"zix9uf"}]]),gL=i("copy-slash",[["line",{x1:"12",x2:"18",y1:"18",y2:"12",key:"ebkxgr"}],["rect",{width:"14",height:"14",x:"8",y:"8",rx:"2",ry:"2",key:"17jyea"}],["path",{d:"M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2",key:"zix9uf"}]]),gM=i("copy",[["rect",{width:"14",height:"14",x:"8",y:"8",rx:"2",ry:"2",key:"17jyea"}],["path",{d:"M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2",key:"zix9uf"}]]),gN=i("copyright",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"M14.83 14.83a4 4 0 1 1 0-5.66",key:"1i56pz"}]]),gO=i("copyleft",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"M9.17 14.83a4 4 0 1 0 0-5.66",key:"1sveal"}]]),gP=i("corner-down-left",[["path",{d:"M20 4v7a4 4 0 0 1-4 4H4",key:"6o5b7l"}],["path",{d:"m9 10-5 5 5 5",key:"1kshq7"}]]),gQ=i("corner-down-right",[["path",{d:"m15 10 5 5-5 5",key:"qqa56n"}],["path",{d:"M4 4v7a4 4 0 0 0 4 4h12",key:"z08zvw"}]]),gR=i("corner-left-down",[["path",{d:"m14 15-5 5-5-5",key:"1eia93"}],["path",{d:"M20 4h-7a4 4 0 0 0-4 4v12",key:"nbpdq2"}]]),gS=i("corner-left-up",[["path",{d:"M14 9 9 4 4 9",key:"1af5af"}],["path",{d:"M20 20h-7a4 4 0 0 1-4-4V4",key:"1blwi3"}]]),gT=i("corner-right-down",[["path",{d:"m10 15 5 5 5-5",key:"1hpjnr"}],["path",{d:"M4 4h7a4 4 0 0 1 4 4v12",key:"wcbgct"}]]),gU=i("corner-right-up",[["path",{d:"m10 9 5-5 5 5",key:"9ctzwi"}],["path",{d:"M4 20h7a4 4 0 0 0 4-4V4",key:"1plgdj"}]]),gV=i("corner-up-left",[["path",{d:"M20 20v-7a4 4 0 0 0-4-4H4",key:"1nkjon"}],["path",{d:"M9 14 4 9l5-5",key:"102s5s"}]]),gW=i("corner-up-right",[["path",{d:"m15 14 5-5-5-5",key:"12vg1m"}],["path",{d:"M4 20v-7a4 4 0 0 1 4-4h12",key:"1lu4f8"}]]),gX=i("cpu",[["path",{d:"M12 20v2",key:"1lh1kg"}],["path",{d:"M12 2v2",key:"tus03m"}],["path",{d:"M17 20v2",key:"1rnc9c"}],["path",{d:"M17 2v2",key:"11trls"}],["path",{d:"M2 12h2",key:"1t8f8n"}],["path",{d:"M2 17h2",key:"7oei6x"}],["path",{d:"M2 7h2",key:"asdhe0"}],["path",{d:"M20 12h2",key:"1q8mjw"}],["path",{d:"M20 17h2",key:"1fpfkl"}],["path",{d:"M20 7h2",key:"1o8tra"}],["path",{d:"M7 20v2",key:"4gnj0m"}],["path",{d:"M7 2v2",key:"1i4yhu"}],["rect",{x:"4",y:"4",width:"16",height:"16",rx:"2",key:"1vbyd7"}],["rect",{x:"8",y:"8",width:"8",height:"8",rx:"1",key:"z9xiuo"}]]),gY=i("creative-commons",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"M10 9.3a2.8 2.8 0 0 0-3.5 1 3.1 3.1 0 0 0 0 3.4 2.7 2.7 0 0 0 3.5 1",key:"1ss3eq"}],["path",{d:"M17 9.3a2.8 2.8 0 0 0-3.5 1 3.1 3.1 0 0 0 0 3.4 2.7 2.7 0 0 0 3.5 1",key:"1od56t"}]]),gZ=i("credit-card",[["rect",{width:"20",height:"14",x:"2",y:"5",rx:"2",key:"ynyp8z"}],["line",{x1:"2",x2:"22",y1:"10",y2:"10",key:"1b3vmo"}]]),g$=i("croissant",[["path",{d:"m4.6 13.11 5.79-3.21c1.89-1.05 4.79 1.78 3.71 3.71l-3.22 5.81C8.8 23.16.79 15.23 4.6 13.11Z",key:"1ozxlb"}],["path",{d:"m10.5 9.5-1-2.29C9.2 6.48 8.8 6 8 6H4.5C2.79 6 2 6.5 2 8.5a7.71 7.71 0 0 0 2 4.83",key:"ffuyb5"}],["path",{d:"M8 6c0-1.55.24-4-2-4-2 0-2.5 2.17-2.5 4",key:"osnpzi"}],["path",{d:"m14.5 13.5 2.29 1c.73.3 1.21.7 1.21 1.5v3.5c0 1.71-.5 2.5-2.5 2.5a7.71 7.71 0 0 1-4.83-2",key:"1vubaw"}],["path",{d:"M18 16c1.55 0 4-.24 4 2 0 2-2.17 2.5-4 2.5",key:"wxr772"}]]),g_=i("crop",[["path",{d:"M6 2v14a2 2 0 0 0 2 2h14",key:"ron5a4"}],["path",{d:"M18 22V8a2 2 0 0 0-2-2H2",key:"7s9ehn"}]]),g0=i("cross",[["path",{d:"M4 9a2 2 0 0 0-2 2v2a2 2 0 0 0 2 2h4a1 1 0 0 1 1 1v4a2 2 0 0 0 2 2h2a2 2 0 0 0 2-2v-4a1 1 0 0 1 1-1h4a2 2 0 0 0 2-2v-2a2 2 0 0 0-2-2h-4a1 1 0 0 1-1-1V4a2 2 0 0 0-2-2h-2a2 2 0 0 0-2 2v4a1 1 0 0 1-1 1z",key:"1xbrqy"}]]),g1=i("crosshair",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["line",{x1:"22",x2:"18",y1:"12",y2:"12",key:"l9bcsi"}],["line",{x1:"6",x2:"2",y1:"12",y2:"12",key:"13hhkx"}],["line",{x1:"12",x2:"12",y1:"6",y2:"2",key:"10w3f3"}],["line",{x1:"12",x2:"12",y1:"22",y2:"18",key:"15g9kq"}]]),g2=i("crown",[["path",{d:"M11.562 3.266a.5.5 0 0 1 .876 0L15.39 8.87a1 1 0 0 0 1.516.294L21.183 5.5a.5.5 0 0 1 .798.519l-2.834 10.246a1 1 0 0 1-.956.734H5.81a1 1 0 0 1-.957-.734L2.02 6.02a.5.5 0 0 1 .798-.519l4.276 3.664a1 1 0 0 0 1.516-.294z",key:"1vdc57"}],["path",{d:"M5 21h14",key:"11awu3"}]]),g3=i("cuboid",[["path",{d:"m21.12 6.4-6.05-4.06a2 2 0 0 0-2.17-.05L2.95 8.41a2 2 0 0 0-.95 1.7v5.82a2 2 0 0 0 .88 1.66l6.05 4.07a2 2 0 0 0 2.17.05l9.95-6.12a2 2 0 0 0 .95-1.7V8.06a2 2 0 0 0-.88-1.66Z",key:"1u2ovd"}],["path",{d:"M10 22v-8L2.25 9.15",key:"11pn4q"}],["path",{d:"m10 14 11.77-6.87",key:"1kt1wh"}]]),g4=i("cup-soda",[["path",{d:"m6 8 1.75 12.28a2 2 0 0 0 2 1.72h4.54a2 2 0 0 0 2-1.72L18 8",key:"8166m8"}],["path",{d:"M5 8h14",key:"pcz4l3"}],["path",{d:"M7 15a6.47 6.47 0 0 1 5 0 6.47 6.47 0 0 0 5 0",key:"yjz344"}],["path",{d:"m12 8 1-6h2",key:"3ybfa4"}]]),g5=i("currency",[["circle",{cx:"12",cy:"12",r:"8",key:"46899m"}],["line",{x1:"3",x2:"6",y1:"3",y2:"6",key:"1jkytn"}],["line",{x1:"21",x2:"18",y1:"3",y2:"6",key:"14zfjt"}],["line",{x1:"3",x2:"6",y1:"21",y2:"18",key:"iusuec"}],["line",{x1:"21",x2:"18",y1:"21",y2:"18",key:"yj2dd7"}]]),g6=i("cylinder",[["ellipse",{cx:"12",cy:"5",rx:"9",ry:"3",key:"msslwz"}],["path",{d:"M3 5v14a9 3 0 0 0 18 0V5",key:"aqi0yr"}]]),g7=i("dam",[["path",{d:"M11 11.31c1.17.56 1.54 1.69 3.5 1.69 2.5 0 2.5-2 5-2 1.3 0 1.9.5 2.5 1",key:"157kva"}],["path",{d:"M11.75 18c.35.5 1.45 1 2.75 1 2.5 0 2.5-2 5-2 1.3 0 1.9.5 2.5 1",key:"d7q6m6"}],["path",{d:"M2 10h4",key:"l0bgd4"}],["path",{d:"M2 14h4",key:"1gsvsf"}],["path",{d:"M2 18h4",key:"1bu2t1"}],["path",{d:"M2 6h4",key:"aawbzj"}],["path",{d:"M7 3a1 1 0 0 0-1 1v16a1 1 0 0 0 1 1h4a1 1 0 0 0 1-1L10 4a1 1 0 0 0-1-1z",key:"pr6s65"}]]),g8=i("database-backup",[["ellipse",{cx:"12",cy:"5",rx:"9",ry:"3",key:"msslwz"}],["path",{d:"M3 12a9 3 0 0 0 5 2.69",key:"1ui2ym"}],["path",{d:"M21 9.3V5",key:"6k6cib"}],["path",{d:"M3 5v14a9 3 0 0 0 6.47 2.88",key:"i62tjy"}],["path",{d:"M12 12v4h4",key:"1bxaet"}],["path",{d:"M13 20a5 5 0 0 0 9-3 4.5 4.5 0 0 0-4.5-4.5c-1.33 0-2.54.54-3.41 1.41L12 16",key:"1f4ei9"}]]),g9=i("database-zap",[["ellipse",{cx:"12",cy:"5",rx:"9",ry:"3",key:"msslwz"}],["path",{d:"M3 5V19A9 3 0 0 0 15 21.84",key:"14ibmq"}],["path",{d:"M21 5V8",key:"1marbg"}],["path",{d:"M21 12L18 17H22L19 22",key:"zafso"}],["path",{d:"M3 12A9 3 0 0 0 14.59 14.87",key:"1y4wr8"}]]),ha=i("database",[["ellipse",{cx:"12",cy:"5",rx:"9",ry:"3",key:"msslwz"}],["path",{d:"M3 5V19A9 3 0 0 0 21 19V5",key:"1wlel7"}],["path",{d:"M3 12A9 3 0 0 0 21 12",key:"mv7ke4"}]]),hb=i("decimals-arrow-left",[["path",{d:"m13 21-3-3 3-3",key:"s3o1nf"}],["path",{d:"M20 18H10",key:"14r3mt"}],["path",{d:"M3 11h.01",key:"1eifu7"}],["rect",{x:"6",y:"3",width:"5",height:"8",rx:"2.5",key:"v9paqo"}]]),hc=i("decimals-arrow-right",[["path",{d:"M10 18h10",key:"1y5s8o"}],["path",{d:"m17 21 3-3-3-3",key:"1ammt0"}],["path",{d:"M3 11h.01",key:"1eifu7"}],["rect",{x:"15",y:"3",width:"5",height:"8",rx:"2.5",key:"76md6a"}],["rect",{x:"6",y:"3",width:"5",height:"8",rx:"2.5",key:"v9paqo"}]]),hd=i("delete",[["path",{d:"M10 5a2 2 0 0 0-1.344.519l-6.328 5.74a1 1 0 0 0 0 1.481l6.328 5.741A2 2 0 0 0 10 19h10a2 2 0 0 0 2-2V7a2 2 0 0 0-2-2z",key:"1yo7s0"}],["path",{d:"m12 9 6 6",key:"anjzzh"}],["path",{d:"m18 9-6 6",key:"1fp51s"}]]),he=i("dessert",[["path",{d:"M10.162 3.167A10 10 0 0 0 2 13a2 2 0 0 0 4 0v-1a2 2 0 0 1 4 0v4a2 2 0 0 0 4 0v-4a2 2 0 0 1 4 0v1a2 2 0 0 0 4-.006 10 10 0 0 0-8.161-9.826",key:"xi88qy"}],["path",{d:"M20.804 14.869a9 9 0 0 1-17.608 0",key:"1r28rg"}],["circle",{cx:"12",cy:"4",r:"2",key:"muu5ef"}]]),hf=i("diamond-minus",[["path",{d:"M2.7 10.3a2.41 2.41 0 0 0 0 3.41l7.59 7.59a2.41 2.41 0 0 0 3.41 0l7.59-7.59a2.41 2.41 0 0 0 0-3.41L13.7 2.71a2.41 2.41 0 0 0-3.41 0z",key:"1ey20j"}],["path",{d:"M8 12h8",key:"1wcyev"}]]),hg=i("diameter",[["circle",{cx:"19",cy:"19",r:"2",key:"17f5cg"}],["circle",{cx:"5",cy:"5",r:"2",key:"1gwv83"}],["path",{d:"M6.48 3.66a10 10 0 0 1 13.86 13.86",key:"xr8kdq"}],["path",{d:"m6.41 6.41 11.18 11.18",key:"uhpjw7"}],["path",{d:"M3.66 6.48a10 10 0 0 0 13.86 13.86",key:"cldpwv"}]]),hh=i("diamond-percent",[["path",{d:"M2.7 10.3a2.41 2.41 0 0 0 0 3.41l7.59 7.59a2.41 2.41 0 0 0 3.41 0l7.59-7.59a2.41 2.41 0 0 0 0-3.41L13.7 2.71a2.41 2.41 0 0 0-3.41 0Z",key:"1tpxz2"}],["path",{d:"M9.2 9.2h.01",key:"1b7bvt"}],["path",{d:"m14.5 9.5-5 5",key:"17q4r4"}],["path",{d:"M14.7 14.8h.01",key:"17nsh4"}]]),hi=i("diamond-plus",[["path",{d:"M12 8v8",key:"napkw2"}],["path",{d:"M2.7 10.3a2.41 2.41 0 0 0 0 3.41l7.59 7.59a2.41 2.41 0 0 0 3.41 0l7.59-7.59a2.41 2.41 0 0 0 0-3.41L13.7 2.71a2.41 2.41 0 0 0-3.41 0z",key:"1ey20j"}],["path",{d:"M8 12h8",key:"1wcyev"}]]),hj=i("diamond",[["path",{d:"M2.7 10.3a2.41 2.41 0 0 0 0 3.41l7.59 7.59a2.41 2.41 0 0 0 3.41 0l7.59-7.59a2.41 2.41 0 0 0 0-3.41l-7.59-7.59a2.41 2.41 0 0 0-3.41 0Z",key:"1f1r0c"}]]),hk=i("dice-1",[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",ry:"2",key:"1m3agn"}],["path",{d:"M12 12h.01",key:"1mp3jc"}]]),hl=i("dice-2",[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",ry:"2",key:"1m3agn"}],["path",{d:"M15 9h.01",key:"x1ddxp"}],["path",{d:"M9 15h.01",key:"fzyn71"}]]),hm=i("dice-3",[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",ry:"2",key:"1m3agn"}],["path",{d:"M16 8h.01",key:"cr5u4v"}],["path",{d:"M12 12h.01",key:"1mp3jc"}],["path",{d:"M8 16h.01",key:"18s6g9"}]]),hn=i("dice-4",[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",ry:"2",key:"1m3agn"}],["path",{d:"M16 8h.01",key:"cr5u4v"}],["path",{d:"M8 8h.01",key:"1e4136"}],["path",{d:"M8 16h.01",key:"18s6g9"}],["path",{d:"M16 16h.01",key:"1f9h7w"}]]),ho=i("dice-5",[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",ry:"2",key:"1m3agn"}],["path",{d:"M16 8h.01",key:"cr5u4v"}],["path",{d:"M8 8h.01",key:"1e4136"}],["path",{d:"M8 16h.01",key:"18s6g9"}],["path",{d:"M16 16h.01",key:"1f9h7w"}],["path",{d:"M12 12h.01",key:"1mp3jc"}]]),hp=i("dice-6",[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",ry:"2",key:"1m3agn"}],["path",{d:"M16 8h.01",key:"cr5u4v"}],["path",{d:"M16 12h.01",key:"1l6xoz"}],["path",{d:"M16 16h.01",key:"1f9h7w"}],["path",{d:"M8 8h.01",key:"1e4136"}],["path",{d:"M8 12h.01",key:"czm47f"}],["path",{d:"M8 16h.01",key:"18s6g9"}]]),hq=i("dices",[["rect",{width:"12",height:"12",x:"2",y:"10",rx:"2",ry:"2",key:"6agr2n"}],["path",{d:"m17.92 14 3.5-3.5a2.24 2.24 0 0 0 0-3l-5-4.92a2.24 2.24 0 0 0-3 0L10 6",key:"1o487t"}],["path",{d:"M6 18h.01",key:"uhywen"}],["path",{d:"M10 14h.01",key:"ssrbsk"}],["path",{d:"M15 6h.01",key:"cblpky"}],["path",{d:"M18 9h.01",key:"2061c0"}]]),hr=i("diff",[["path",{d:"M12 3v14",key:"7cf3v8"}],["path",{d:"M5 10h14",key:"elsbfy"}],["path",{d:"M5 21h14",key:"11awu3"}]]),hs=i("disc-2",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["circle",{cx:"12",cy:"12",r:"4",key:"4exip2"}],["path",{d:"M12 12h.01",key:"1mp3jc"}]]),ht=i("disc-3",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"M6 12c0-1.7.7-3.2 1.8-4.2",key:"oqkarx"}],["circle",{cx:"12",cy:"12",r:"2",key:"1c9p78"}],["path",{d:"M18 12c0 1.7-.7 3.2-1.8 4.2",key:"1eah9h"}]]),hu=i("disc-album",[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",key:"afitv7"}],["circle",{cx:"12",cy:"12",r:"5",key:"nd82uf"}],["path",{d:"M12 12h.01",key:"1mp3jc"}]]),hv=i("disc",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["circle",{cx:"12",cy:"12",r:"2",key:"1c9p78"}]]),hw=i("divide",[["circle",{cx:"12",cy:"6",r:"1",key:"1bh7o1"}],["line",{x1:"5",x2:"19",y1:"12",y2:"12",key:"13b5wn"}],["circle",{cx:"12",cy:"18",r:"1",key:"lqb9t5"}]]),hx=i("dna-off",[["path",{d:"M15 2c-1.35 1.5-2.092 3-2.5 4.5L14 8",key:"1bivrr"}],["path",{d:"m17 6-2.891-2.891",key:"xu6p2f"}],["path",{d:"M2 15c3.333-3 6.667-3 10-3",key:"nxix30"}],["path",{d:"m2 2 20 20",key:"1ooewy"}],["path",{d:"m20 9 .891.891",key:"3xwk7g"}],["path",{d:"M22 9c-1.5 1.35-3 2.092-4.5 2.5l-1-1",key:"18cutr"}],["path",{d:"M3.109 14.109 4 15",key:"q76aoh"}],["path",{d:"m6.5 12.5 1 1",key:"cs35ky"}],["path",{d:"m7 18 2.891 2.891",key:"1sisit"}],["path",{d:"M9 22c1.35-1.5 2.092-3 2.5-4.5L10 16",key:"rlvei3"}]]),hy=i("dna",[["path",{d:"m10 16 1.5 1.5",key:"11lckj"}],["path",{d:"m14 8-1.5-1.5",key:"1ohn8i"}],["path",{d:"M15 2c-1.798 1.998-2.518 3.995-2.807 5.993",key:"80uv8i"}],["path",{d:"m16.5 10.5 1 1",key:"696xn5"}],["path",{d:"m17 6-2.891-2.891",key:"xu6p2f"}],["path",{d:"M2 15c6.667-6 13.333 0 20-6",key:"1pyr53"}],["path",{d:"m20 9 .891.891",key:"3xwk7g"}],["path",{d:"M3.109 14.109 4 15",key:"q76aoh"}],["path",{d:"m6.5 12.5 1 1",key:"cs35ky"}],["path",{d:"m7 18 2.891 2.891",key:"1sisit"}],["path",{d:"M9 22c1.798-1.998 2.518-3.995 2.807-5.993",key:"q3hbxp"}]]),hz=i("dock",[["path",{d:"M2 8h20",key:"d11cs7"}],["rect",{width:"20",height:"16",x:"2",y:"4",rx:"2",key:"18n3k1"}],["path",{d:"M6 16h12",key:"u522kt"}]]),hA=i("dog",[["path",{d:"M11.25 16.25h1.5L12 17z",key:"w7jh35"}],["path",{d:"M16 14v.5",key:"1lajdz"}],["path",{d:"M4.42 11.247A13.152 13.152 0 0 0 4 14.556C4 18.728 7.582 21 12 21s8-2.272 8-6.444a11.702 11.702 0 0 0-.493-3.309",key:"u7s9ue"}],["path",{d:"M8 14v.5",key:"1nzgdb"}],["path",{d:"M8.5 8.5c-.384 1.05-1.083 2.028-2.344 2.5-1.931.722-3.576-.297-3.656-1-.113-.994 1.177-6.53 4-7 1.923-.321 3.651.845 3.651 2.235A7.497 7.497 0 0 1 14 5.277c0-1.39 1.844-2.598 3.767-2.277 2.823.47 4.113 6.006 4 7-.08.703-1.725 1.722-3.656 1-1.261-.472-1.855-1.45-2.239-2.5",key:"v8hric"}]]),hB=i("dollar-sign",[["line",{x1:"12",x2:"12",y1:"2",y2:"22",key:"7eqyqh"}],["path",{d:"M17 5H9.5a3.5 3.5 0 0 0 0 7h5a3.5 3.5 0 0 1 0 7H6",key:"1b0p4s"}]]),hC=i("door-closed-locked",[["path",{d:"M10 12h.01",key:"1kxr2c"}],["path",{d:"M18 9V6a2 2 0 0 0-2-2H8a2 2 0 0 0-2 2v14",key:"1bnhmg"}],["path",{d:"M2 20h8",key:"10ntw1"}],["path",{d:"M20 17v-2a2 2 0 1 0-4 0v2",key:"pwaxnr"}],["rect",{x:"14",y:"17",width:"8",height:"5",rx:"1",key:"15pjcy"}]]),hD=i("donut",[["path",{d:"M20.5 10a2.5 2.5 0 0 1-2.4-3H18a2.95 2.95 0 0 1-2.6-4.4 10 10 0 1 0 6.3 7.1c-.3.2-.8.3-1.2.3",key:"19sr3x"}],["circle",{cx:"12",cy:"12",r:"3",key:"1v7zrd"}]]),hE=i("door-closed",[["path",{d:"M10 12h.01",key:"1kxr2c"}],["path",{d:"M18 20V6a2 2 0 0 0-2-2H8a2 2 0 0 0-2 2v14",key:"36qu9e"}],["path",{d:"M2 20h20",key:"owomy5"}]]),hF=i("dot",[["circle",{cx:"12.1",cy:"12.1",r:"1",key:"18d7e5"}]]),hG=i("download",[["path",{d:"M12 15V3",key:"m9g1x1"}],["path",{d:"M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4",key:"ih7n3h"}],["path",{d:"m7 10 5 5 5-5",key:"brsn70"}]]),hH=i("door-open",[["path",{d:"M11 20H2",key:"nlcfvz"}],["path",{d:"M11 4.562v16.157a1 1 0 0 0 1.242.97L19 20V5.562a2 2 0 0 0-1.515-1.94l-4-1A2 2 0 0 0 11 4.561z",key:"au4z13"}],["path",{d:"M11 4H8a2 2 0 0 0-2 2v14",key:"74r1mk"}],["path",{d:"M14 12h.01",key:"1jfl7z"}],["path",{d:"M22 20h-3",key:"vhrsz"}]]),hI=i("drafting-compass",[["path",{d:"m12.99 6.74 1.93 3.44",key:"iwagvd"}],["path",{d:"M19.136 12a10 10 0 0 1-14.271 0",key:"ppmlo4"}],["path",{d:"m21 21-2.16-3.84",key:"vylbct"}],["path",{d:"m3 21 8.02-14.26",key:"1ssaw4"}],["circle",{cx:"12",cy:"5",r:"2",key:"f1ur92"}]]),hJ=i("drama",[["path",{d:"M10 11h.01",key:"d2at3l"}],["path",{d:"M14 6h.01",key:"k028ub"}],["path",{d:"M18 6h.01",key:"1v4wsw"}],["path",{d:"M6.5 13.1h.01",key:"1748ia"}],["path",{d:"M22 5c0 9-4 12-6 12s-6-3-6-12c0-2 2-3 6-3s6 1 6 3",key:"172yzv"}],["path",{d:"M17.4 9.9c-.8.8-2 .8-2.8 0",key:"1obv0w"}],["path",{d:"M10.1 7.1C9 7.2 7.7 7.7 6 8.6c-3.5 2-4.7 3.9-3.7 5.6 4.5 7.8 9.5 8.4 11.2 7.4.9-.5 1.9-2.1 1.9-4.7",key:"rqjl8i"}],["path",{d:"M9.1 16.5c.3-1.1 1.4-1.7 2.4-1.4",key:"1mr6wy"}]]),hK=i("dribbble",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"M19.13 5.09C15.22 9.14 10 10.44 2.25 10.94",key:"hpej1"}],["path",{d:"M21.75 12.84c-6.62-1.41-12.14 1-16.38 6.32",key:"1tr44o"}],["path",{d:"M8.56 2.75c4.37 6 6 9.42 8 17.72",key:"kbh691"}]]),hL=i("drill",[["path",{d:"M10 18a1 1 0 0 1 1 1v2a1 1 0 0 1-1 1H5a3 3 0 0 1-3-3 1 1 0 0 1 1-1z",key:"ioqxb1"}],["path",{d:"M13 10H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a1 1 0 0 1 1 1v6a1 1 0 0 1-1 1l-.81 3.242a1 1 0 0 1-.97.758H8",key:"1rs59n"}],["path",{d:"M14 4h3a1 1 0 0 1 1 1v2a1 1 0 0 1-1 1h-3",key:"105ega"}],["path",{d:"M18 6h4",key:"66u95g"}],["path",{d:"m5 10-2 8",key:"xt2lic"}],["path",{d:"m7 18 2-8",key:"1bzku2"}]]),hM=i("drone",[["path",{d:"M10 10 7 7",key:"zp14k7"}],["path",{d:"m10 14-3 3",key:"1jrpxk"}],["path",{d:"m14 10 3-3",key:"7tigam"}],["path",{d:"m14 14 3 3",key:"vm23p3"}],["path",{d:"M14.205 4.139a4 4 0 1 1 5.439 5.863",key:"1tm5p2"}],["path",{d:"M19.637 14a4 4 0 1 1-5.432 5.868",key:"16egi2"}],["path",{d:"M4.367 10a4 4 0 1 1 5.438-5.862",key:"1wta6a"}],["path",{d:"M9.795 19.862a4 4 0 1 1-5.429-5.873",key:"q39hpv"}],["rect",{x:"10",y:"8",width:"4",height:"8",rx:"1",key:"phrjt1"}]]),hN=i("droplet-off",[["path",{d:"M18.715 13.186C18.29 11.858 17.384 10.607 16 9.5c-2-1.6-3.5-4-4-6.5a10.7 10.7 0 0 1-.884 2.586",key:"8suz2t"}],["path",{d:"m2 2 20 20",key:"1ooewy"}],["path",{d:"M8.795 8.797A11 11 0 0 1 8 9.5C6 11.1 5 13 5 15a7 7 0 0 0 13.222 3.208",key:"19dw9m"}]]),hO=i("droplet",[["path",{d:"M12 22a7 7 0 0 0 7-7c0-2-1-3.9-3-5.5s-3.5-4-4-6.5c-.5 2.5-2 4.9-4 6.5C6 11.1 5 13 5 15a7 7 0 0 0 7 7z",key:"c7niix"}]]),hP=i("droplets",[["path",{d:"M7 16.3c2.2 0 4-1.83 4-4.05 0-1.16-.57-2.26-1.71-3.19S7.29 6.75 7 5.3c-.29 1.45-1.14 2.84-2.29 3.76S3 11.1 3 12.25c0 2.22 1.8 4.05 4 4.05z",key:"1ptgy4"}],["path",{d:"M12.56 6.6A10.97 10.97 0 0 0 14 3.02c.5 2.5 2 4.9 4 6.5s3 3.5 3 5.5a6.98 6.98 0 0 1-11.91 4.97",key:"1sl1rz"}]]),hQ=i("drum",[["path",{d:"m2 2 8 8",key:"1v6059"}],["path",{d:"m22 2-8 8",key:"173r8a"}],["ellipse",{cx:"12",cy:"9",rx:"10",ry:"5",key:"liohsx"}],["path",{d:"M7 13.4v7.9",key:"1yi6u9"}],["path",{d:"M12 14v8",key:"1tn2tj"}],["path",{d:"M17 13.4v7.9",key:"eqz2v3"}],["path",{d:"M2 9v8a10 5 0 0 0 20 0V9",key:"1750ul"}]]),hR=i("drumstick",[["path",{d:"M15.4 15.63a7.875 6 135 1 1 6.23-6.23 4.5 3.43 135 0 0-6.23 6.23",key:"1dtqwm"}],["path",{d:"m8.29 12.71-2.6 2.6a2.5 2.5 0 1 0-1.65 4.65A2.5 2.5 0 1 0 8.7 18.3l2.59-2.59",key:"1oq1fw"}]]),hS=i("dumbbell",[["path",{d:"M17.596 12.768a2 2 0 1 0 2.829-2.829l-1.768-1.767a2 2 0 0 0 2.828-2.829l-2.828-2.828a2 2 0 0 0-2.829 2.828l-1.767-1.768a2 2 0 1 0-2.829 2.829z",key:"9m4mmf"}],["path",{d:"m2.5 21.5 1.4-1.4",key:"17g3f0"}],["path",{d:"m20.1 3.9 1.4-1.4",key:"1qn309"}],["path",{d:"M5.343 21.485a2 2 0 1 0 2.829-2.828l1.767 1.768a2 2 0 1 0 2.829-2.829l-6.364-6.364a2 2 0 1 0-2.829 2.829l1.768 1.767a2 2 0 0 0-2.828 2.829z",key:"1t2c92"}],["path",{d:"m9.6 14.4 4.8-4.8",key:"6umqxw"}]]),hT=i("ear-off",[["path",{d:"M6 18.5a3.5 3.5 0 1 0 7 0c0-1.57.92-2.52 2.04-3.46",key:"1qngmn"}],["path",{d:"M6 8.5c0-.75.13-1.47.36-2.14",key:"b06bma"}],["path",{d:"M8.8 3.15A6.5 6.5 0 0 1 19 8.5c0 1.63-.44 2.81-1.09 3.76",key:"g10hsz"}],["path",{d:"M12.5 6A2.5 2.5 0 0 1 15 8.5M10 13a2 2 0 0 0 1.82-1.18",key:"ygzou7"}],["line",{x1:"2",x2:"22",y1:"2",y2:"22",key:"a6p6uj"}]]),hU=i("ear",[["path",{d:"M6 8.5a6.5 6.5 0 1 1 13 0c0 6-6 6-6 10a3.5 3.5 0 1 1-7 0",key:"1dfaln"}],["path",{d:"M15 8.5a2.5 2.5 0 0 0-5 0v1a2 2 0 1 1 0 4",key:"1qnva7"}]]),hV=i("earth-lock",[["path",{d:"M7 3.34V5a3 3 0 0 0 3 3",key:"w732o8"}],["path",{d:"M11 21.95V18a2 2 0 0 0-2-2 2 2 0 0 1-2-2v-1a2 2 0 0 0-2-2H2.05",key:"f02343"}],["path",{d:"M21.54 15H17a2 2 0 0 0-2 2v4.54",key:"1djwo0"}],["path",{d:"M12 2a10 10 0 1 0 9.54 13",key:"zjsr6q"}],["path",{d:"M20 6V4a2 2 0 1 0-4 0v2",key:"1of5e8"}],["rect",{width:"8",height:"5",x:"14",y:"6",rx:"1",key:"1fmf51"}]]),hW=i("earth",[["path",{d:"M21.54 15H17a2 2 0 0 0-2 2v4.54",key:"1djwo0"}],["path",{d:"M7 3.34V5a3 3 0 0 0 3 3a2 2 0 0 1 2 2c0 1.1.9 2 2 2a2 2 0 0 0 2-2c0-1.1.9-2 2-2h3.17",key:"1tzkfa"}],["path",{d:"M11 21.95V18a2 2 0 0 0-2-2a2 2 0 0 1-2-2v-1a2 2 0 0 0-2-2H2.05",key:"14pb5j"}],["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}]]),hX=i("eclipse",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"M12 2a7 7 0 1 0 10 10",key:"1yuj32"}]]),hY=i("egg-fried",[["circle",{cx:"11.5",cy:"12.5",r:"3.5",key:"1cl1mi"}],["path",{d:"M3 8c0-3.5 2.5-6 6.5-6 5 0 4.83 3 7.5 5s5 2 5 6c0 4.5-2.5 6.5-7 6.5-2.5 0-2.5 2.5-6 2.5s-7-2-7-5.5c0-3 1.5-3 1.5-5C3.5 10 3 9 3 8Z",key:"165ef9"}]]),hZ=i("egg-off",[["path",{d:"m2 2 20 20",key:"1ooewy"}],["path",{d:"M20 14.347V14c0-6-4-12-8-12-1.078 0-2.157.436-3.157 1.19",key:"13g2jy"}],["path",{d:"M6.206 6.21C4.871 8.4 4 11.2 4 14a8 8 0 0 0 14.568 4.568",key:"1581id"}]]),h$=i("egg",[["path",{d:"M12 2C8 2 4 8 4 14a8 8 0 0 0 16 0c0-6-4-12-8-12",key:"1le142"}]]),h_=i("ellipsis-vertical",[["circle",{cx:"12",cy:"12",r:"1",key:"41hilf"}],["circle",{cx:"12",cy:"5",r:"1",key:"gxeob9"}],["circle",{cx:"12",cy:"19",r:"1",key:"lyex9k"}]]),h0=i("ellipsis",[["circle",{cx:"12",cy:"12",r:"1",key:"41hilf"}],["circle",{cx:"19",cy:"12",r:"1",key:"1wjl8i"}],["circle",{cx:"5",cy:"12",r:"1",key:"1pcz8c"}]]),h1=i("equal-not",[["line",{x1:"5",x2:"19",y1:"9",y2:"9",key:"1nwqeh"}],["line",{x1:"5",x2:"19",y1:"15",y2:"15",key:"g8yjpy"}],["line",{x1:"19",x2:"5",y1:"5",y2:"19",key:"1x9vlm"}]]),h2=i("equal-approximately",[["path",{d:"M5 15a6.5 6.5 0 0 1 7 0 6.5 6.5 0 0 0 7 0",key:"yrdkhy"}],["path",{d:"M5 9a6.5 6.5 0 0 1 7 0 6.5 6.5 0 0 0 7 0",key:"gzkvyz"}]]),h3=i("equal",[["line",{x1:"5",x2:"19",y1:"9",y2:"9",key:"1nwqeh"}],["line",{x1:"5",x2:"19",y1:"15",y2:"15",key:"g8yjpy"}]]),h4=i("eraser",[["path",{d:"M21 21H8a2 2 0 0 1-1.42-.587l-3.994-3.999a2 2 0 0 1 0-2.828l10-10a2 2 0 0 1 2.829 0l5.999 6a2 2 0 0 1 0 2.828L12.834 21",key:"g5wo59"}],["path",{d:"m5.082 11.09 8.828 8.828",key:"1wx5vj"}]]),h5=i("ethernet-port",[["path",{d:"m15 20 3-3h2a2 2 0 0 0 2-2V6a2 2 0 0 0-2-2H4a2 2 0 0 0-2 2v9a2 2 0 0 0 2 2h2l3 3z",key:"rbahqx"}],["path",{d:"M6 8v1",key:"1636ez"}],["path",{d:"M10 8v1",key:"1talb4"}],["path",{d:"M14 8v1",key:"1rsfgr"}],["path",{d:"M18 8v1",key:"gnkwox"}]]),h6=i("euro",[["path",{d:"M4 10h12",key:"1y6xl8"}],["path",{d:"M4 14h9",key:"1loblj"}],["path",{d:"M19 6a7.7 7.7 0 0 0-5.2-2A7.9 7.9 0 0 0 6 12c0 4.4 3.5 8 7.8 8 2 0 3.8-.8 5.2-2",key:"1j6lzo"}]]),h7=i("expand",[["path",{d:"m15 15 6 6",key:"1s409w"}],["path",{d:"m15 9 6-6",key:"ko1vev"}],["path",{d:"M21 16v5h-5",key:"1ck2sf"}],["path",{d:"M21 8V3h-5",key:"1qoq8a"}],["path",{d:"M3 16v5h5",key:"1t08am"}],["path",{d:"m3 21 6-6",key:"wwnumi"}],["path",{d:"M3 8V3h5",key:"1ln10m"}],["path",{d:"M9 9 3 3",key:"v551iv"}]]),h8=i("external-link",[["path",{d:"M15 3h6v6",key:"1q9fwt"}],["path",{d:"M10 14 21 3",key:"gplh6r"}],["path",{d:"M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6",key:"a6xqqp"}]]),h9=i("eye-closed",[["path",{d:"m15 18-.722-3.25",key:"1j64jw"}],["path",{d:"M2 8a10.645 10.645 0 0 0 20 0",key:"1e7gxb"}],["path",{d:"m20 15-1.726-2.05",key:"1cnuld"}],["path",{d:"m4 15 1.726-2.05",key:"1dsqqd"}],["path",{d:"m9 18 .722-3.25",key:"ypw2yx"}]]),ia=i("eye-off",[["path",{d:"M10.733 5.076a10.744 10.744 0 0 1 11.205 6.575 1 1 0 0 1 0 .696 10.747 10.747 0 0 1-1.444 2.49",key:"ct8e1f"}],["path",{d:"M14.084 14.158a3 3 0 0 1-4.242-4.242",key:"151rxh"}],["path",{d:"M17.479 17.499a10.75 10.75 0 0 1-15.417-5.151 1 1 0 0 1 0-.696 10.75 10.75 0 0 1 4.446-5.143",key:"13bj9a"}],["path",{d:"m2 2 20 20",key:"1ooewy"}]]),ib=i("eye",[["path",{d:"M2.062 12.348a1 1 0 0 1 0-.696 10.75 10.75 0 0 1 19.876 0 1 1 0 0 1 0 .696 10.75 10.75 0 0 1-19.876 0",key:"1nclc0"}],["circle",{cx:"12",cy:"12",r:"3",key:"1v7zrd"}]]),ic=i("facebook",[["path",{d:"M18 2h-3a5 5 0 0 0-5 5v3H7v4h3v8h4v-8h3l1-4h-4V7a1 1 0 0 1 1-1h3z",key:"1jg4f8"}]]),id=i("factory",[["path",{d:"M12 16h.01",key:"1drbdi"}],["path",{d:"M16 16h.01",key:"1f9h7w"}],["path",{d:"M3 19a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2V8.5a.5.5 0 0 0-.769-.422l-4.462 2.844A.5.5 0 0 1 15 10.5v-2a.5.5 0 0 0-.769-.422L9.77 10.922A.5.5 0 0 1 9 10.5V5a2 2 0 0 0-2-2H5a2 2 0 0 0-2 2z",key:"1iv0i2"}],["path",{d:"M8 16h.01",key:"18s6g9"}]]),ie=i("fan",[["path",{d:"M10.827 16.379a6.082 6.082 0 0 1-8.618-7.002l5.412 1.45a6.082 6.082 0 0 1 7.002-8.618l-1.45 5.412a6.082 6.082 0 0 1 8.618 7.002l-5.412-1.45a6.082 6.082 0 0 1-7.002 8.618l1.45-5.412Z",key:"484a7f"}],["path",{d:"M12 12v.01",key:"u5ubse"}]]),ig=i("fast-forward",[["polygon",{points:"13 19 22 12 13 5 13 19",key:"587y9g"}],["polygon",{points:"2 19 11 12 2 5 2 19",key:"3pweh0"}]]),ih=i("feather",[["path",{d:"M12.67 19a2 2 0 0 0 1.416-.588l6.154-6.172a6 6 0 0 0-8.49-8.49L5.586 9.914A2 2 0 0 0 5 11.328V18a1 1 0 0 0 1 1z",key:"18jl4k"}],["path",{d:"M16 8 2 22",key:"vp34q"}],["path",{d:"M17.5 15H9",key:"1oz8nu"}]]),ii=i("fence",[["path",{d:"M4 3 2 5v15c0 .6.4 1 1 1h2c.6 0 1-.4 1-1V5Z",key:"1n2rgs"}],["path",{d:"M6 8h4",key:"utf9t1"}],["path",{d:"M6 18h4",key:"12yh4b"}],["path",{d:"m12 3-2 2v15c0 .6.4 1 1 1h2c.6 0 1-.4 1-1V5Z",key:"3ha7mj"}],["path",{d:"M14 8h4",key:"1r8wg2"}],["path",{d:"M14 18h4",key:"1t3kbu"}],["path",{d:"m20 3-2 2v15c0 .6.4 1 1 1h2c.6 0 1-.4 1-1V5Z",key:"dfd4e2"}]]),ij=i("ferris-wheel",[["circle",{cx:"12",cy:"12",r:"2",key:"1c9p78"}],["path",{d:"M12 2v4",key:"3427ic"}],["path",{d:"m6.8 15-3.5 2",key:"hjy98k"}],["path",{d:"m20.7 7-3.5 2",key:"f08gto"}],["path",{d:"M6.8 9 3.3 7",key:"1aevh4"}],["path",{d:"m20.7 17-3.5-2",key:"1liqo3"}],["path",{d:"m9 22 3-8 3 8",key:"wees03"}],["path",{d:"M8 22h8",key:"rmew8v"}],["path",{d:"M18 18.7a9 9 0 1 0-12 0",key:"dhzg4g"}]]),ik=i("figma",[["path",{d:"M5 5.5A3.5 3.5 0 0 1 8.5 2H12v7H8.5A3.5 3.5 0 0 1 5 5.5z",key:"1340ok"}],["path",{d:"M12 2h3.5a3.5 3.5 0 1 1 0 7H12V2z",key:"1hz3m3"}],["path",{d:"M12 12.5a3.5 3.5 0 1 1 7 0 3.5 3.5 0 1 1-7 0z",key:"1oz8n2"}],["path",{d:"M5 19.5A3.5 3.5 0 0 1 8.5 16H12v3.5a3.5 3.5 0 1 1-7 0z",key:"1ff65i"}],["path",{d:"M5 12.5A3.5 3.5 0 0 1 8.5 9H12v7H8.5A3.5 3.5 0 0 1 5 12.5z",key:"pdip6e"}]]),il=i("file-archive",[["path",{d:"M10 12v-1",key:"v7bkov"}],["path",{d:"M10 18v-2",key:"1cjy8d"}],["path",{d:"M10 7V6",key:"dljcrl"}],["path",{d:"M14 2v4a2 2 0 0 0 2 2h4",key:"tnqrlb"}],["path",{d:"M15.5 22H18a2 2 0 0 0 2-2V7l-5-5H6a2 2 0 0 0-2 2v16a2 2 0 0 0 .274 1.01",key:"gkbcor"}],["circle",{cx:"10",cy:"20",r:"2",key:"1xzdoj"}]]),im=i("file-audio-2",[["path",{d:"M4 22h14a2 2 0 0 0 2-2V7l-5-5H6a2 2 0 0 0-2 2v2",key:"17k7jt"}],["path",{d:"M14 2v4a2 2 0 0 0 2 2h4",key:"tnqrlb"}],["circle",{cx:"3",cy:"17",r:"1",key:"vo6nti"}],["path",{d:"M2 17v-3a4 4 0 0 1 8 0v3",key:"1ggdre"}],["circle",{cx:"9",cy:"17",r:"1",key:"bc1fq4"}]]),io=i("file-audio",[["path",{d:"M17.5 22h.5a2 2 0 0 0 2-2V7l-5-5H6a2 2 0 0 0-2 2v3",key:"rslqgf"}],["path",{d:"M14 2v4a2 2 0 0 0 2 2h4",key:"tnqrlb"}],["path",{d:"M2 19a2 2 0 1 1 4 0v1a2 2 0 1 1-4 0v-4a6 6 0 0 1 12 0v4a2 2 0 1 1-4 0v-1a2 2 0 1 1 4 0",key:"9f7x3i"}]]),ip=i("file-axis-3d",[["path",{d:"M15 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7Z",key:"1rqfz7"}],["path",{d:"M14 2v4a2 2 0 0 0 2 2h4",key:"tnqrlb"}],["path",{d:"m8 18 4-4",key:"12zab0"}],["path",{d:"M8 10v8h8",key:"tlaukw"}]]),iq=i("file-badge-2",[["path",{d:"m13.69 12.479 1.29 4.88a.5.5 0 0 1-.697.591l-1.844-.849a1 1 0 0 0-.88.001l-1.846.85a.5.5 0 0 1-.693-.593l1.29-4.88",key:"7a4gmr"}],["path",{d:"M15 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7z",key:"1mlx9k"}],["circle",{cx:"12",cy:"10",r:"3",key:"ilqhr7"}]]),ir=i("file-badge",[["path",{d:"M12 22h6a2 2 0 0 0 2-2V7l-5-5H6a2 2 0 0 0-2 2v3.072",key:"n6s66f"}],["path",{d:"M14 2v4a2 2 0 0 0 2 2h4",key:"tnqrlb"}],["path",{d:"m6.69 16.479 1.29 4.88a.5.5 0 0 1-.698.591l-1.843-.849a1 1 0 0 0-.88.001l-1.846.85a.5.5 0 0 1-.693-.593l1.29-4.88",key:"1e6yvx"}],["circle",{cx:"5",cy:"14",r:"3",key:"ufru5t"}]]),is=i("file-box",[["path",{d:"M14.5 22H18a2 2 0 0 0 2-2V7l-5-5H6a2 2 0 0 0-2 2v4",key:"16lz6z"}],["path",{d:"M14 2v4a2 2 0 0 0 2 2h4",key:"tnqrlb"}],["path",{d:"M3 13.1a2 2 0 0 0-1 1.76v3.24a2 2 0 0 0 .97 1.78L6 21.7a2 2 0 0 0 2.03.01L11 19.9a2 2 0 0 0 1-1.76V14.9a2 2 0 0 0-.97-1.78L8 11.3a2 2 0 0 0-2.03-.01Z",key:"99pj1s"}],["path",{d:"M7 17v5",key:"1yj1jh"}],["path",{d:"M11.7 14.2 7 17l-4.7-2.8",key:"1yk8tc"}]]),it=i("file-chart-column-increasing",[["path",{d:"M15 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7Z",key:"1rqfz7"}],["path",{d:"M14 2v4a2 2 0 0 0 2 2h4",key:"tnqrlb"}],["path",{d:"M8 18v-2",key:"qcmpov"}],["path",{d:"M12 18v-4",key:"q1q25u"}],["path",{d:"M16 18v-6",key:"15y0np"}]]),iu=i("file-chart-column",[["path",{d:"M15 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7Z",key:"1rqfz7"}],["path",{d:"M14 2v4a2 2 0 0 0 2 2h4",key:"tnqrlb"}],["path",{d:"M8 18v-1",key:"zg0ygc"}],["path",{d:"M12 18v-6",key:"17g6i2"}],["path",{d:"M16 18v-3",key:"j5jt4h"}]]),iv=i("file-chart-pie",[["path",{d:"M14 2v4a2 2 0 0 0 2 2h4",key:"tnqrlb"}],["path",{d:"M16 22h2a2 2 0 0 0 2-2V7l-5-5H6a2 2 0 0 0-2 2v3.5",key:"13ddob"}],["path",{d:"M4.017 11.512a6 6 0 1 0 8.466 8.475",key:"s6vs5t"}],["path",{d:"M9 16a1 1 0 0 1-1-1v-4c0-.552.45-1.008.995-.917a6 6 0 0 1 4.922 4.922c.091.544-.365.995-.917.995z",key:"1dl6s6"}]]),iw=i("file-chart-line",[["path",{d:"M15 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7Z",key:"1rqfz7"}],["path",{d:"M14 2v4a2 2 0 0 0 2 2h4",key:"tnqrlb"}],["path",{d:"m16 13-3.5 3.5-2-2L8 17",key:"zz7yod"}]]),ix=i("file-check-2",[["path",{d:"M4 22h14a2 2 0 0 0 2-2V7l-5-5H6a2 2 0 0 0-2 2v4",key:"1pf5j1"}],["path",{d:"M14 2v4a2 2 0 0 0 2 2h4",key:"tnqrlb"}],["path",{d:"m3 15 2 2 4-4",key:"1lhrkk"}]]),iy=i("file-check",[["path",{d:"M15 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7Z",key:"1rqfz7"}],["path",{d:"M14 2v4a2 2 0 0 0 2 2h4",key:"tnqrlb"}],["path",{d:"m9 15 2 2 4-4",key:"1grp1n"}]]),iz=i("file-code-2",[["path",{d:"M4 22h14a2 2 0 0 0 2-2V7l-5-5H6a2 2 0 0 0-2 2v4",key:"1pf5j1"}],["path",{d:"M14 2v4a2 2 0 0 0 2 2h4",key:"tnqrlb"}],["path",{d:"m5 12-3 3 3 3",key:"oke12k"}],["path",{d:"m9 18 3-3-3-3",key:"112psh"}]]),iA=i("file-clock",[["path",{d:"M14 2v4a2 2 0 0 0 2 2h4",key:"tnqrlb"}],["path",{d:"M16 22h2a2 2 0 0 0 2-2V7l-5-5H6a2 2 0 0 0-2 2v3",key:"37hlfg"}],["path",{d:"M8 14v2.2l1.6 1",key:"6m4bie"}],["circle",{cx:"8",cy:"16",r:"6",key:"10v15b"}]]),iB=i("file-code",[["path",{d:"M10 12.5 8 15l2 2.5",key:"1tg20x"}],["path",{d:"m14 12.5 2 2.5-2 2.5",key:"yinavb"}],["path",{d:"M14 2v4a2 2 0 0 0 2 2h4",key:"tnqrlb"}],["path",{d:"M15 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7z",key:"1mlx9k"}]]),iC=i("file-cog",[["path",{d:"M14 2v4a2 2 0 0 0 2 2h4",key:"tnqrlb"}],["path",{d:"m2.305 15.53.923-.382",key:"yfp9st"}],["path",{d:"m3.228 12.852-.924-.383",key:"bckynb"}],["path",{d:"M4.677 21.5a2 2 0 0 0 1.313.5H18a2 2 0 0 0 2-2V7l-5-5H6a2 2 0 0 0-2 2v2.5",key:"1yo3oz"}],["path",{d:"m4.852 11.228-.383-.923",key:"1j88i9"}],["path",{d:"m4.852 16.772-.383.924",key:"sag1dv"}],["path",{d:"m7.148 11.228.383-.923",key:"rj39hk"}],["path",{d:"m7.53 17.696-.382-.924",key:"1uu5cs"}],["path",{d:"m8.772 12.852.923-.383",key:"13811l"}],["path",{d:"m8.772 15.148.923.383",key:"z1a5l0"}],["circle",{cx:"6",cy:"14",r:"3",key:"a1xfv6"}]]),iD=i("file-diff",[["path",{d:"M15 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7Z",key:"1rqfz7"}],["path",{d:"M9 10h6",key:"9gxzsh"}],["path",{d:"M12 13V7",key:"h0r20n"}],["path",{d:"M9 17h6",key:"r8uit2"}]]),iE=i("file-digit",[["path",{d:"M4 22h14a2 2 0 0 0 2-2V7l-5-5H6a2 2 0 0 0-2 2v4",key:"1pf5j1"}],["path",{d:"M14 2v4a2 2 0 0 0 2 2h4",key:"tnqrlb"}],["rect",{width:"4",height:"6",x:"2",y:"12",rx:"2",key:"jm304g"}],["path",{d:"M10 12h2v6",key:"12zw74"}],["path",{d:"M10 18h4",key:"1ulq68"}]]),iF=i("file-down",[["path",{d:"M15 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7Z",key:"1rqfz7"}],["path",{d:"M14 2v4a2 2 0 0 0 2 2h4",key:"tnqrlb"}],["path",{d:"M12 18v-6",key:"17g6i2"}],["path",{d:"m9 15 3 3 3-3",key:"1npd3o"}]]),iG=i("file-heart",[["path",{d:"M4 22h14a2 2 0 0 0 2-2V7l-5-5H6a2 2 0 0 0-2 2v2",key:"17k7jt"}],["path",{d:"M14 2v4a2 2 0 0 0 2 2h4",key:"tnqrlb"}],["path",{d:"M10.29 10.7a2.43 2.43 0 0 0-2.66-.52c-.29.12-.56.3-.78.53l-.35.34-.35-.34a2.43 2.43 0 0 0-2.65-.53c-.3.12-.56.3-.79.53-.95.94-1 2.53.2 3.74L6.5 18l3.6-3.55c1.2-1.21 1.14-2.8.19-3.74Z",key:"1c1fso"}]]),iH=i("file-image",[["path",{d:"M15 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7Z",key:"1rqfz7"}],["path",{d:"M14 2v4a2 2 0 0 0 2 2h4",key:"tnqrlb"}],["circle",{cx:"10",cy:"12",r:"2",key:"737tya"}],["path",{d:"m20 17-1.296-1.296a2.41 2.41 0 0 0-3.408 0L9 22",key:"wt3hpn"}]]),iI=i("file-input",[["path",{d:"M4 22h14a2 2 0 0 0 2-2V7l-5-5H6a2 2 0 0 0-2 2v4",key:"1pf5j1"}],["path",{d:"M14 2v4a2 2 0 0 0 2 2h4",key:"tnqrlb"}],["path",{d:"M2 15h10",key:"jfw4w8"}],["path",{d:"m9 18 3-3-3-3",key:"112psh"}]]),iJ=i("file-json-2",[["path",{d:"M4 22h14a2 2 0 0 0 2-2V7l-5-5H6a2 2 0 0 0-2 2v4",key:"1pf5j1"}],["path",{d:"M14 2v4a2 2 0 0 0 2 2h4",key:"tnqrlb"}],["path",{d:"M4 12a1 1 0 0 0-1 1v1a1 1 0 0 1-1 1 1 1 0 0 1 1 1v1a1 1 0 0 0 1 1",key:"fq0c9t"}],["path",{d:"M8 18a1 1 0 0 0 1-1v-1a1 1 0 0 1 1-1 1 1 0 0 1-1-1v-1a1 1 0 0 0-1-1",key:"4gibmv"}]]),iK=i("file-json",[["path",{d:"M15 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7Z",key:"1rqfz7"}],["path",{d:"M14 2v4a2 2 0 0 0 2 2h4",key:"tnqrlb"}],["path",{d:"M10 12a1 1 0 0 0-1 1v1a1 1 0 0 1-1 1 1 1 0 0 1 1 1v1a1 1 0 0 0 1 1",key:"1oajmo"}],["path",{d:"M14 18a1 1 0 0 0 1-1v-1a1 1 0 0 1 1-1 1 1 0 0 1-1-1v-1a1 1 0 0 0-1-1",key:"mpwhp6"}]]),iL=i("file-key-2",[["path",{d:"M4 22h14a2 2 0 0 0 2-2V7l-5-5H6a2 2 0 0 0-2 2v6",key:"rc0qvx"}],["path",{d:"M14 2v4a2 2 0 0 0 2 2h4",key:"tnqrlb"}],["circle",{cx:"4",cy:"16",r:"2",key:"1ehqvc"}],["path",{d:"m10 10-4.5 4.5",key:"7fwrp6"}],["path",{d:"m9 11 1 1",key:"wa6s5q"}]]),iM=i("file-key",[["path",{d:"M15 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7Z",key:"1rqfz7"}],["circle",{cx:"10",cy:"16",r:"2",key:"4ckbqe"}],["path",{d:"m16 10-4.5 4.5",key:"7p3ebg"}],["path",{d:"m15 11 1 1",key:"1bsyx3"}]]),iN=i("file-lock-2",[["path",{d:"M4 22h14a2 2 0 0 0 2-2V7l-5-5H6a2 2 0 0 0-2 2v1",key:"jmtmu2"}],["path",{d:"M14 2v4a2 2 0 0 0 2 2h4",key:"tnqrlb"}],["rect",{width:"8",height:"5",x:"2",y:"13",rx:"1",key:"10y5wo"}],["path",{d:"M8 13v-2a2 2 0 1 0-4 0v2",key:"1pdxzg"}]]),iO=i("file-lock",[["path",{d:"M15 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7Z",key:"1rqfz7"}],["rect",{width:"8",height:"6",x:"8",y:"12",rx:"1",key:"3yr8at"}],["path",{d:"M10 12v-2a2 2 0 1 1 4 0v2",key:"j4i8d"}]]),iP=i("file-minus-2",[["path",{d:"M4 22h14a2 2 0 0 0 2-2V7l-5-5H6a2 2 0 0 0-2 2v4",key:"1pf5j1"}],["path",{d:"M14 2v4a2 2 0 0 0 2 2h4",key:"tnqrlb"}],["path",{d:"M3 15h6",key:"4e2qda"}]]),iQ=i("file-minus",[["path",{d:"M15 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7Z",key:"1rqfz7"}],["path",{d:"M14 2v4a2 2 0 0 0 2 2h4",key:"tnqrlb"}],["path",{d:"M9 15h6",key:"cctwl0"}]]),iR=i("file-music",[["path",{d:"M10.5 22H18a2 2 0 0 0 2-2V7l-5-5H6a2 2 0 0 0-2 2v8.4",key:"1d3kfm"}],["path",{d:"M8 18v-7.7L16 9v7",key:"1oie6o"}],["circle",{cx:"14",cy:"16",r:"2",key:"1bzzi3"}],["circle",{cx:"6",cy:"18",r:"2",key:"1fncim"}]]),iS=i("file-output",[["path",{d:"M14 2v4a2 2 0 0 0 2 2h4",key:"tnqrlb"}],["path",{d:"M4 7V4a2 2 0 0 1 2-2 2 2 0 0 0-2 2",key:"1vk7w2"}],["path",{d:"M4.063 20.999a2 2 0 0 0 2 1L18 22a2 2 0 0 0 2-2V7l-5-5H6",key:"1jink5"}],["path",{d:"m5 11-3 3",key:"1dgrs4"}],["path",{d:"m5 17-3-3h10",key:"1mvvaf"}]]),iT=i("file-pen-line",[["path",{d:"m18 5-2.414-2.414A2 2 0 0 0 14.172 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2",key:"142zxg"}],["path",{d:"M21.378 12.626a1 1 0 0 0-3.004-3.004l-4.01 4.012a2 2 0 0 0-.506.854l-.837 2.87a.5.5 0 0 0 .62.62l2.87-.837a2 2 0 0 0 .854-.506z",key:"2t3380"}],["path",{d:"M8 18h1",key:"13wk12"}]]),iU=i("file-pen",[["path",{d:"M12.5 22H18a2 2 0 0 0 2-2V7l-5-5H6a2 2 0 0 0-2 2v9.5",key:"1couwa"}],["path",{d:"M14 2v4a2 2 0 0 0 2 2h4",key:"tnqrlb"}],["path",{d:"M13.378 15.626a1 1 0 1 0-3.004-3.004l-5.01 5.012a2 2 0 0 0-.506.854l-.837 2.87a.5.5 0 0 0 .62.62l2.87-.837a2 2 0 0 0 .854-.506z",key:"1y4qbx"}]]),iV=i("file-plus-2",[["path",{d:"M4 22h14a2 2 0 0 0 2-2V7l-5-5H6a2 2 0 0 0-2 2v4",key:"1pf5j1"}],["path",{d:"M14 2v4a2 2 0 0 0 2 2h4",key:"tnqrlb"}],["path",{d:"M3 15h6",key:"4e2qda"}],["path",{d:"M6 12v6",key:"1u72j0"}]]),iW=i("file-plus",[["path",{d:"M15 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7Z",key:"1rqfz7"}],["path",{d:"M14 2v4a2 2 0 0 0 2 2h4",key:"tnqrlb"}],["path",{d:"M9 15h6",key:"cctwl0"}],["path",{d:"M12 18v-6",key:"17g6i2"}]]),iX=i("file-question-mark",[["path",{d:"M12 17h.01",key:"p32p05"}],["path",{d:"M15 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7z",key:"1mlx9k"}],["path",{d:"M9.1 9a3 3 0 0 1 5.82 1c0 2-3 3-3 3",key:"mhlwft"}]]),iY=i("file-scan",[["path",{d:"M20 10V7l-5-5H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h4",key:"1rdf37"}],["path",{d:"M14 2v4a2 2 0 0 0 2 2h4",key:"tnqrlb"}],["path",{d:"M16 14a2 2 0 0 0-2 2",key:"ceaadl"}],["path",{d:"M20 14a2 2 0 0 1 2 2",key:"1ny6zw"}],["path",{d:"M20 22a2 2 0 0 0 2-2",key:"1l9q4k"}],["path",{d:"M16 22a2 2 0 0 1-2-2",key:"1wqh5n"}]]),iZ=i("file-search-2",[["path",{d:"M15 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7Z",key:"1rqfz7"}],["path",{d:"M14 2v4a2 2 0 0 0 2 2h4",key:"tnqrlb"}],["circle",{cx:"11.5",cy:"14.5",r:"2.5",key:"1bq0ko"}],["path",{d:"M13.3 16.3 15 18",key:"2quom7"}]]),i$=i("file-search",[["path",{d:"M14 2v4a2 2 0 0 0 2 2h4",key:"tnqrlb"}],["path",{d:"M4.268 21a2 2 0 0 0 1.727 1H18a2 2 0 0 0 2-2V7l-5-5H6a2 2 0 0 0-2 2v3",key:"ms7g94"}],["path",{d:"m9 18-1.5-1.5",key:"1j6qii"}],["circle",{cx:"5",cy:"14",r:"3",key:"ufru5t"}]]),i_=i("file-sliders",[["path",{d:"M15 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7Z",key:"1rqfz7"}],["path",{d:"M14 2v4a2 2 0 0 0 2 2h4",key:"tnqrlb"}],["path",{d:"M8 12h8",key:"1wcyev"}],["path",{d:"M10 11v2",key:"1s651w"}],["path",{d:"M8 17h8",key:"wh5c61"}],["path",{d:"M14 16v2",key:"12fp5e"}]]),i0=i("file-spreadsheet",[["path",{d:"M15 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7Z",key:"1rqfz7"}],["path",{d:"M14 2v4a2 2 0 0 0 2 2h4",key:"tnqrlb"}],["path",{d:"M8 13h2",key:"yr2amv"}],["path",{d:"M14 13h2",key:"un5t4a"}],["path",{d:"M8 17h2",key:"2yhykz"}],["path",{d:"M14 17h2",key:"10kma7"}]]),i1=i("file-stack",[["path",{d:"M21 7h-3a2 2 0 0 1-2-2V2",key:"9rb54x"}],["path",{d:"M21 6v6.5c0 .8-.7 1.5-1.5 1.5h-7c-.8 0-1.5-.7-1.5-1.5v-9c0-.8.7-1.5 1.5-1.5H17Z",key:"1059l0"}],["path",{d:"M7 8v8.8c0 .3.2.6.4.8.2.2.5.4.8.4H15",key:"16874u"}],["path",{d:"M3 12v8.8c0 .3.2.6.4.8.2.2.5.4.8.4H11",key:"k2ox98"}]]),i2=i("file-symlink",[["path",{d:"m10 18 3-3-3-3",key:"18f6ys"}],["path",{d:"M14 2v4a2 2 0 0 0 2 2h4",key:"tnqrlb"}],["path",{d:"M4 11V4a2 2 0 0 1 2-2h9l5 5v13a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2v-3a2 2 0 0 1 2-2h7",key:"50q2rw"}]]),i3=i("file-terminal",[["path",{d:"M15 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7Z",key:"1rqfz7"}],["path",{d:"M14 2v4a2 2 0 0 0 2 2h4",key:"tnqrlb"}],["path",{d:"m8 16 2-2-2-2",key:"10vzyd"}],["path",{d:"M12 18h4",key:"1wd2n7"}]]),i4=i("file-text",[["path",{d:"M15 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7Z",key:"1rqfz7"}],["path",{d:"M14 2v4a2 2 0 0 0 2 2h4",key:"tnqrlb"}],["path",{d:"M10 9H8",key:"b1mrlr"}],["path",{d:"M16 13H8",key:"t4e002"}],["path",{d:"M16 17H8",key:"z1uh3a"}]]),i5=i("file-type-2",[["path",{d:"M4 22h14a2 2 0 0 0 2-2V7l-5-5H6a2 2 0 0 0-2 2v4",key:"1pf5j1"}],["path",{d:"M14 2v4a2 2 0 0 0 2 2h4",key:"tnqrlb"}],["path",{d:"M2 13v-1h6v1",key:"1dh9dg"}],["path",{d:"M5 12v6",key:"150t9c"}],["path",{d:"M4 18h2",key:"1xrofg"}]]),i6=i("file-type",[["path",{d:"M15 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7Z",key:"1rqfz7"}],["path",{d:"M14 2v4a2 2 0 0 0 2 2h4",key:"tnqrlb"}],["path",{d:"M9 13v-1h6v1",key:"1bb014"}],["path",{d:"M12 12v6",key:"3ahymv"}],["path",{d:"M11 18h2",key:"12mj7e"}]]),i7=i("file-up",[["path",{d:"M15 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7Z",key:"1rqfz7"}],["path",{d:"M14 2v4a2 2 0 0 0 2 2h4",key:"tnqrlb"}],["path",{d:"M12 12v6",key:"3ahymv"}],["path",{d:"m15 15-3-3-3 3",key:"15xj92"}]]),i8=i("file-video-2",[["path",{d:"M4 22h14a2 2 0 0 0 2-2V7l-5-5H6a2 2 0 0 0-2 2v4",key:"1pf5j1"}],["path",{d:"M14 2v4a2 2 0 0 0 2 2h4",key:"tnqrlb"}],["rect",{width:"8",height:"6",x:"2",y:"12",rx:"1",key:"1a6c1e"}],["path",{d:"m10 15.5 4 2.5v-6l-4 2.5",key:"t7cp39"}]]),i9=i("file-user",[["path",{d:"M14 2v4a2 2 0 0 0 2 2h4",key:"tnqrlb"}],["path",{d:"M15 18a3 3 0 1 0-6 0",key:"16awa0"}],["path",{d:"M15 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7z",key:"1mlx9k"}],["circle",{cx:"12",cy:"13",r:"2",key:"1c1ljs"}]]),ja=i("file-video",[["path",{d:"M15 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7Z",key:"1rqfz7"}],["path",{d:"M14 2v4a2 2 0 0 0 2 2h4",key:"tnqrlb"}],["path",{d:"m10 11 5 3-5 3v-6Z",key:"7ntvm4"}]]),jb=i("file-volume-2",[["path",{d:"M15 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7Z",key:"1rqfz7"}],["path",{d:"M14 2v4a2 2 0 0 0 2 2h4",key:"tnqrlb"}],["path",{d:"M8 15h.01",key:"a7atzg"}],["path",{d:"M11.5 13.5a2.5 2.5 0 0 1 0 3",key:"1fccat"}],["path",{d:"M15 12a5 5 0 0 1 0 6",key:"ps46cm"}]]),jc=i("file-volume",[["path",{d:"M11 11a5 5 0 0 1 0 6",key:"193qb2"}],["path",{d:"M14 2v4a2 2 0 0 0 2 2h4",key:"tnqrlb"}],["path",{d:"M4 6.765V4a2 2 0 0 1 2-2h9l5 5v13a2 2 0 0 1-2 2H6a2 2 0 0 1-.93-.23",key:"ifyjnl"}],["path",{d:"M7 10.51a.5.5 0 0 0-.826-.38l-1.893 1.628A1 1 0 0 1 3.63 12H2.5a.5.5 0 0 0-.5.5v3a.5.5 0 0 0 .5.5h1.129a1 1 0 0 1 .652.242l1.893 1.63a.5.5 0 0 0 .826-.38z",key:"mk8rxu"}]]),jd=i("file-warning",[["path",{d:"M15 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7Z",key:"1rqfz7"}],["path",{d:"M12 9v4",key:"juzpu7"}],["path",{d:"M12 17h.01",key:"p32p05"}]]),je=i("file-x-2",[["path",{d:"M4 22h14a2 2 0 0 0 2-2V7l-5-5H6a2 2 0 0 0-2 2v4",key:"1pf5j1"}],["path",{d:"M14 2v4a2 2 0 0 0 2 2h4",key:"tnqrlb"}],["path",{d:"m8 12.5-5 5",key:"b853mi"}],["path",{d:"m3 12.5 5 5",key:"1qls4r"}]]),jf=i("file-x",[["path",{d:"M15 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7Z",key:"1rqfz7"}],["path",{d:"M14 2v4a2 2 0 0 0 2 2h4",key:"tnqrlb"}],["path",{d:"m14.5 12.5-5 5",key:"b62r18"}],["path",{d:"m9.5 12.5 5 5",key:"1rk7el"}]]),jg=i("file",[["path",{d:"M15 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7Z",key:"1rqfz7"}],["path",{d:"M14 2v4a2 2 0 0 0 2 2h4",key:"tnqrlb"}]]),jh=i("files",[["path",{d:"M20 7h-3a2 2 0 0 1-2-2V2",key:"x099mo"}],["path",{d:"M9 18a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h7l4 4v10a2 2 0 0 1-2 2Z",key:"18t6ie"}],["path",{d:"M3 7.6v12.8A1.6 1.6 0 0 0 4.6 22h9.8",key:"1nja0z"}]]),ji=i("film",[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",key:"afitv7"}],["path",{d:"M7 3v18",key:"bbkbws"}],["path",{d:"M3 7.5h4",key:"zfgn84"}],["path",{d:"M3 12h18",key:"1i2n21"}],["path",{d:"M3 16.5h4",key:"1230mu"}],["path",{d:"M17 3v18",key:"in4fa5"}],["path",{d:"M17 7.5h4",key:"myr1c1"}],["path",{d:"M17 16.5h4",key:"go4c1d"}]]),jj=i("fingerprint",[["path",{d:"M12 10a2 2 0 0 0-2 2c0 1.02-.1 2.51-.26 4",key:"1nerag"}],["path",{d:"M14 13.12c0 2.38 0 6.38-1 8.88",key:"o46ks0"}],["path",{d:"M17.29 21.02c.12-.6.43-2.3.5-3.02",key:"ptglia"}],["path",{d:"M2 12a10 10 0 0 1 18-6",key:"ydlgp0"}],["path",{d:"M2 16h.01",key:"1gqxmh"}],["path",{d:"M21.8 16c.2-2 .131-5.354 0-6",key:"drycrb"}],["path",{d:"M5 19.5C5.5 18 6 15 6 12a6 6 0 0 1 .34-2",key:"1tidbn"}],["path",{d:"M8.65 22c.21-.66.45-1.32.57-2",key:"13wd9y"}],["path",{d:"M9 6.8a6 6 0 0 1 9 5.2v2",key:"1fr1j5"}]]),jk=i("fire-extinguisher",[["path",{d:"M15 6.5V3a1 1 0 0 0-1-1h-2a1 1 0 0 0-1 1v3.5",key:"sqyvz"}],["path",{d:"M9 18h8",key:"i7pszb"}],["path",{d:"M18 3h-3",key:"7idoqj"}],["path",{d:"M11 3a6 6 0 0 0-6 6v11",key:"1v5je3"}],["path",{d:"M5 13h4",key:"svpcxo"}],["path",{d:"M17 10a4 4 0 0 0-8 0v10a2 2 0 0 0 2 2h4a2 2 0 0 0 2-2Z",key:"vsjego"}]]),jl=i("fish-off",[["path",{d:"M18 12.47v.03m0-.5v.47m-.475 5.056A6.744 6.744 0 0 1 15 18c-3.56 0-7.56-2.53-8.5-6 .348-1.28 1.114-2.433 2.121-3.38m3.444-2.088A8.802 8.802 0 0 1 15 6c3.56 0 6.06 2.54 7 6-.309 1.14-.786 2.177-1.413 3.058",key:"1j1hse"}],["path",{d:"M7 10.67C7 8 5.58 5.97 2.73 5.5c-1 1.5-1 5 .23 6.5-1.24 1.5-1.24 5-.23 6.5C5.58 18.03 7 16 7 13.33m7.48-4.372A9.77 9.77 0 0 1 16 6.07m0 11.86a9.77 9.77 0 0 1-1.728-3.618",key:"1q46z8"}],["path",{d:"m16.01 17.93-.23 1.4A2 2 0 0 1 13.8 21H9.5a5.96 5.96 0 0 0 1.49-3.98M8.53 3h5.27a2 2 0 0 1 1.98 1.67l.23 1.4M2 2l20 20",key:"1407gh"}]]),jm=i("fish-symbol",[["path",{d:"M2 16s9-15 20-4C11 23 2 8 2 8",key:"h4oh4o"}]]),jn=i("fish",[["path",{d:"M6.5 12c.94-3.46 4.94-6 8.5-6 3.56 0 6.06 2.54 7 6-.94 3.47-3.44 6-7 6s-7.56-2.53-8.5-6Z",key:"15baut"}],["path",{d:"M18 12v.5",key:"18hhni"}],["path",{d:"M16 17.93a9.77 9.77 0 0 1 0-11.86",key:"16dt7o"}],["path",{d:"M7 10.67C7 8 5.58 5.97 2.73 5.5c-1 1.5-1 5 .23 6.5-1.24 1.5-1.24 5-.23 6.5C5.58 18.03 7 16 7 13.33",key:"l9di03"}],["path",{d:"M10.46 7.26C10.2 5.88 9.17 4.24 8 3h5.8a2 2 0 0 1 1.98 1.67l.23 1.4",key:"1kjonw"}],["path",{d:"m16.01 17.93-.23 1.4A2 2 0 0 1 13.8 21H9.5a5.96 5.96 0 0 0 1.49-3.98",key:"1zlm23"}]]),jo=i("flag-off",[["path",{d:"M16 16c-3 0-5-2-8-2a6 6 0 0 0-4 1.528",key:"1q158e"}],["path",{d:"m2 2 20 20",key:"1ooewy"}],["path",{d:"M4 22V4",key:"1plyxx"}],["path",{d:"M7.656 2H8c3 0 5 2 7.333 2q2 0 3.067-.8A1 1 0 0 1 20 4v10.347",key:"xj1b71"}]]),jp=i("flag-triangle-left",[["path",{d:"M17 22V2L7 7l10 5",key:"1rmf0r"}]]),jq=i("flag-triangle-right",[["path",{d:"M7 22V2l10 5-10 5",key:"17n18y"}]]),jr=i("flag",[["path",{d:"M4 22V4a1 1 0 0 1 .4-.8A6 6 0 0 1 8 2c3 0 5 2 7.333 2q2 0 3.067-.8A1 1 0 0 1 20 4v10a1 1 0 0 1-.4.8A6 6 0 0 1 16 16c-3 0-5-2-8-2a6 6 0 0 0-4 1.528",key:"1jaruq"}]]),js=i("flame-kindling",[["path",{d:"M12 2c1 3 2.5 3.5 3.5 4.5A5 5 0 0 1 17 10a5 5 0 1 1-10 0c0-.3 0-.6.1-.9a2 2 0 1 0 3.3-2C8 4.5 11 2 12 2Z",key:"1ir223"}],["path",{d:"m5 22 14-4",key:"1brv4h"}],["path",{d:"m5 18 14 4",key:"lgyyje"}]]),jt=i("flame",[["path",{d:"M8.5 14.5A2.5 2.5 0 0 0 11 12c0-1.38-.5-2-1-3-1.072-2.143-.224-4.054 2-6 .5 2.5 2 4.9 4 6.5 2 1.6 3 3.5 3 5.5a7 7 0 1 1-14 0c0-1.153.433-2.294 1-3a2.5 2.5 0 0 0 2.5 2.5z",key:"96xj49"}]]),ju=i("flashlight-off",[["path",{d:"M16 16v4a2 2 0 0 1-2 2h-4a2 2 0 0 1-2-2V10c0-2-2-2-2-4",key:"1r120k"}],["path",{d:"M7 2h11v4c0 2-2 2-2 4v1",key:"dz1920"}],["line",{x1:"11",x2:"18",y1:"6",y2:"6",key:"bi1vpe"}],["line",{x1:"2",x2:"22",y1:"2",y2:"22",key:"a6p6uj"}]]),jv=i("flashlight",[["path",{d:"M18 6c0 2-2 2-2 4v10a2 2 0 0 1-2 2h-4a2 2 0 0 1-2-2V10c0-2-2-2-2-4V2h12z",key:"1orkel"}],["line",{x1:"6",x2:"18",y1:"6",y2:"6",key:"1z11jq"}],["line",{x1:"12",x2:"12",y1:"12",y2:"12",key:"1f4yc1"}]]),jw=i("flask-conical-off",[["path",{d:"M10 2v2.343",key:"15t272"}],["path",{d:"M14 2v6.343",key:"sxr80q"}],["path",{d:"m2 2 20 20",key:"1ooewy"}],["path",{d:"M20 20a2 2 0 0 1-2 2H6a2 2 0 0 1-1.755-2.96l5.227-9.563",key:"k0duyd"}],["path",{d:"M6.453 15H15",key:"1f0z33"}],["path",{d:"M8.5 2h7",key:"csnxdl"}]]),jx=i("flask-conical",[["path",{d:"M14 2v6a2 2 0 0 0 .245.96l5.51 10.08A2 2 0 0 1 18 22H6a2 2 0 0 1-1.755-2.96l5.51-10.08A2 2 0 0 0 10 8V2",key:"18mbvz"}],["path",{d:"M6.453 15h11.094",key:"3shlmq"}],["path",{d:"M8.5 2h7",key:"csnxdl"}]]),jy=i("flask-round",[["path",{d:"M10 2v6.292a7 7 0 1 0 4 0V2",key:"1s42pc"}],["path",{d:"M5 15h14",key:"m0yey3"}],["path",{d:"M8.5 2h7",key:"csnxdl"}]]),jz=i("flip-horizontal-2",[["path",{d:"m3 7 5 5-5 5V7",key:"couhi7"}],["path",{d:"m21 7-5 5 5 5V7",key:"6ouia7"}],["path",{d:"M12 20v2",key:"1lh1kg"}],["path",{d:"M12 14v2",key:"8jcxud"}],["path",{d:"M12 8v2",key:"1woqiv"}],["path",{d:"M12 2v2",key:"tus03m"}]]),jA=i("flip-horizontal",[["path",{d:"M8 3H5a2 2 0 0 0-2 2v14c0 1.1.9 2 2 2h3",key:"1i73f7"}],["path",{d:"M16 3h3a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2h-3",key:"saxlbk"}],["path",{d:"M12 20v2",key:"1lh1kg"}],["path",{d:"M12 14v2",key:"8jcxud"}],["path",{d:"M12 8v2",key:"1woqiv"}],["path",{d:"M12 2v2",key:"tus03m"}]]),jB=i("flip-vertical-2",[["path",{d:"m17 3-5 5-5-5h10",key:"1ftt6x"}],["path",{d:"m17 21-5-5-5 5h10",key:"1m0wmu"}],["path",{d:"M4 12H2",key:"rhcxmi"}],["path",{d:"M10 12H8",key:"s88cx1"}],["path",{d:"M16 12h-2",key:"10asgb"}],["path",{d:"M22 12h-2",key:"14jgyd"}]]),jC=i("flip-vertical",[["path",{d:"M21 8V5a2 2 0 0 0-2-2H5a2 2 0 0 0-2 2v3",key:"14bfxa"}],["path",{d:"M21 16v3a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-3",key:"14rx03"}],["path",{d:"M4 12H2",key:"rhcxmi"}],["path",{d:"M10 12H8",key:"s88cx1"}],["path",{d:"M16 12h-2",key:"10asgb"}],["path",{d:"M22 12h-2",key:"14jgyd"}]]),jD=i("flower-2",[["path",{d:"M12 5a3 3 0 1 1 3 3m-3-3a3 3 0 1 0-3 3m3-3v1M9 8a3 3 0 1 0 3 3M9 8h1m5 0a3 3 0 1 1-3 3m3-3h-1m-2 3v-1",key:"3pnvol"}],["circle",{cx:"12",cy:"8",r:"2",key:"1822b1"}],["path",{d:"M12 10v12",key:"6ubwww"}],["path",{d:"M12 22c4.2 0 7-1.667 7-5-4.2 0-7 1.667-7 5Z",key:"9hd38g"}],["path",{d:"M12 22c-4.2 0-7-1.667-7-5 4.2 0 7 1.667 7 5Z",key:"ufn41s"}]]),jE=i("flower",[["circle",{cx:"12",cy:"12",r:"3",key:"1v7zrd"}],["path",{d:"M12 16.5A4.5 4.5 0 1 1 7.5 12 4.5 4.5 0 1 1 12 7.5a4.5 4.5 0 1 1 4.5 4.5 4.5 4.5 0 1 1-4.5 4.5",key:"14wa3c"}],["path",{d:"M12 7.5V9",key:"1oy5b0"}],["path",{d:"M7.5 12H9",key:"eltsq1"}],["path",{d:"M16.5 12H15",key:"vk5kw4"}],["path",{d:"M12 16.5V15",key:"k7eayi"}],["path",{d:"m8 8 1.88 1.88",key:"nxy4qf"}],["path",{d:"M14.12 9.88 16 8",key:"1lst6k"}],["path",{d:"m8 16 1.88-1.88",key:"h2eex1"}],["path",{d:"M14.12 14.12 16 16",key:"uqkrx3"}]]),jF=i("focus",[["circle",{cx:"12",cy:"12",r:"3",key:"1v7zrd"}],["path",{d:"M3 7V5a2 2 0 0 1 2-2h2",key:"aa7l1z"}],["path",{d:"M17 3h2a2 2 0 0 1 2 2v2",key:"4qcy5o"}],["path",{d:"M21 17v2a2 2 0 0 1-2 2h-2",key:"6vwrx8"}],["path",{d:"M7 21H5a2 2 0 0 1-2-2v-2",key:"ioqczr"}]]),jG=i("fold-horizontal",[["path",{d:"M2 12h6",key:"1wqiqv"}],["path",{d:"M22 12h-6",key:"1eg9hc"}],["path",{d:"M12 2v2",key:"tus03m"}],["path",{d:"M12 8v2",key:"1woqiv"}],["path",{d:"M12 14v2",key:"8jcxud"}],["path",{d:"M12 20v2",key:"1lh1kg"}],["path",{d:"m19 9-3 3 3 3",key:"12ol22"}],["path",{d:"m5 15 3-3-3-3",key:"1kdhjc"}]]),jH=i("fold-vertical",[["path",{d:"M12 22v-6",key:"6o8u61"}],["path",{d:"M12 8V2",key:"1wkif3"}],["path",{d:"M4 12H2",key:"rhcxmi"}],["path",{d:"M10 12H8",key:"s88cx1"}],["path",{d:"M16 12h-2",key:"10asgb"}],["path",{d:"M22 12h-2",key:"14jgyd"}],["path",{d:"m15 19-3-3-3 3",key:"e37ymu"}],["path",{d:"m15 5-3 3-3-3",key:"19d6lf"}]]),jI=i("folder-archive",[["circle",{cx:"15",cy:"19",r:"2",key:"u2pros"}],["path",{d:"M20.9 19.8A2 2 0 0 0 22 18V8a2 2 0 0 0-2-2h-7.9a2 2 0 0 1-1.69-.9L9.6 3.9A2 2 0 0 0 7.93 3H4a2 2 0 0 0-2 2v13a2 2 0 0 0 2 2h5.1",key:"1jj40k"}],["path",{d:"M15 11v-1",key:"cntcp"}],["path",{d:"M15 17v-2",key:"1279jj"}]]),jJ=i("folder-check",[["path",{d:"M20 20a2 2 0 0 0 2-2V8a2 2 0 0 0-2-2h-7.9a2 2 0 0 1-1.69-.9L9.6 3.9A2 2 0 0 0 7.93 3H4a2 2 0 0 0-2 2v13a2 2 0 0 0 2 2Z",key:"1kt360"}],["path",{d:"m9 13 2 2 4-4",key:"6343dt"}]]),jK=i("folder-clock",[["path",{d:"M16 14v2.2l1.6 1",key:"fo4ql5"}],["path",{d:"M7 20H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h3.9a2 2 0 0 1 1.69.9l.81 1.2a2 2 0 0 0 1.67.9H20a2 2 0 0 1 2 2",key:"1urifu"}],["circle",{cx:"16",cy:"16",r:"6",key:"qoo3c4"}]]),jL=i("folder-closed",[["path",{d:"M20 20a2 2 0 0 0 2-2V8a2 2 0 0 0-2-2h-7.9a2 2 0 0 1-1.69-.9L9.6 3.9A2 2 0 0 0 7.93 3H4a2 2 0 0 0-2 2v13a2 2 0 0 0 2 2Z",key:"1kt360"}],["path",{d:"M2 10h20",key:"1ir3d8"}]]),jM=i("folder-code",[["path",{d:"M10 10.5 8 13l2 2.5",key:"m4t9c1"}],["path",{d:"m14 10.5 2 2.5-2 2.5",key:"14w2eb"}],["path",{d:"M20 20a2 2 0 0 0 2-2V8a2 2 0 0 0-2-2h-7.9a2 2 0 0 1-1.69-.9L9.6 3.9A2 2 0 0 0 7.93 3H4a2 2 0 0 0-2 2v13a2 2 0 0 0 2 2z",key:"1u1bxd"}]]),jN=i("folder-cog",[["path",{d:"M10.3 20H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h3.98a2 2 0 0 1 1.69.9l.66 1.2A2 2 0 0 0 12 6h8a2 2 0 0 1 2 2v3.3",key:"128dxu"}],["path",{d:"m14.305 19.53.923-.382",key:"3m78fa"}],["path",{d:"m15.228 16.852-.923-.383",key:"npixar"}],["path",{d:"m16.852 15.228-.383-.923",key:"5xggr7"}],["path",{d:"m16.852 20.772-.383.924",key:"dpfhf9"}],["path",{d:"m19.148 15.228.383-.923",key:"1reyyz"}],["path",{d:"m19.53 21.696-.382-.924",key:"1goivc"}],["path",{d:"m20.772 16.852.924-.383",key:"htqkph"}],["path",{d:"m20.772 19.148.924.383",key:"9w9pjp"}],["circle",{cx:"18",cy:"18",r:"3",key:"1xkwt0"}]]),jO=i("folder-dot",[["path",{d:"M4 20h16a2 2 0 0 0 2-2V8a2 2 0 0 0-2-2h-7.93a2 2 0 0 1-1.66-.9l-.82-1.2A2 2 0 0 0 7.93 3H4a2 2 0 0 0-2 2v13c0 1.1.9 2 2 2Z",key:"1fr9dc"}],["circle",{cx:"12",cy:"13",r:"1",key:"49l61u"}]]),jP=i("folder-down",[["path",{d:"M20 20a2 2 0 0 0 2-2V8a2 2 0 0 0-2-2h-7.9a2 2 0 0 1-1.69-.9L9.6 3.9A2 2 0 0 0 7.93 3H4a2 2 0 0 0-2 2v13a2 2 0 0 0 2 2Z",key:"1kt360"}],["path",{d:"M12 10v6",key:"1bos4e"}],["path",{d:"m15 13-3 3-3-3",key:"6j2sf0"}]]),jQ=i("folder-git-2",[["path",{d:"M9 20H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h3.9a2 2 0 0 1 1.69.9l.81 1.2a2 2 0 0 0 1.67.9H20a2 2 0 0 1 2 2v5",key:"1w6njk"}],["circle",{cx:"13",cy:"12",r:"2",key:"1j92g6"}],["path",{d:"M18 19c-2.8 0-5-2.2-5-5v8",key:"pkpw2h"}],["circle",{cx:"20",cy:"19",r:"2",key:"1obnsp"}]]),jR=i("folder-git",[["circle",{cx:"12",cy:"13",r:"2",key:"1c1ljs"}],["path",{d:"M20 20a2 2 0 0 0 2-2V8a2 2 0 0 0-2-2h-7.9a2 2 0 0 1-1.69-.9L9.6 3.9A2 2 0 0 0 7.93 3H4a2 2 0 0 0-2 2v13a2 2 0 0 0 2 2Z",key:"1kt360"}],["path",{d:"M14 13h3",key:"1dgedf"}],["path",{d:"M7 13h3",key:"1pygq7"}]]),jS=i("folder-heart",[["path",{d:"M11 20H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h3.9a2 2 0 0 1 1.69.9l.81 1.2a2 2 0 0 0 1.67.9H20a2 2 0 0 1 2 2v1.5",key:"6hud8k"}],["path",{d:"M13.9 17.45c-1.2-1.2-1.14-2.8-.2-3.73a2.43 2.43 0 0 1 3.44 0l.36.34.34-.34a2.43 2.43 0 0 1 3.45-.01c.95.95 1 2.53-.2 3.74L17.5 21Z",key:"wpff58"}]]),jT=i("folder-input",[["path",{d:"M2 9V5a2 2 0 0 1 2-2h3.9a2 2 0 0 1 1.69.9l.81 1.2a2 2 0 0 0 1.67.9H20a2 2 0 0 1 2 2v10a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2v-1",key:"fm4g5t"}],["path",{d:"M2 13h10",key:"pgb2dq"}],["path",{d:"m9 16 3-3-3-3",key:"6m91ic"}]]),jU=i("folder-kanban",[["path",{d:"M4 20h16a2 2 0 0 0 2-2V8a2 2 0 0 0-2-2h-7.93a2 2 0 0 1-1.66-.9l-.82-1.2A2 2 0 0 0 7.93 3H4a2 2 0 0 0-2 2v13c0 1.1.9 2 2 2Z",key:"1fr9dc"}],["path",{d:"M8 10v4",key:"tgpxqk"}],["path",{d:"M12 10v2",key:"hh53o1"}],["path",{d:"M16 10v6",key:"1d6xys"}]]),jV=i("folder-key",[["circle",{cx:"16",cy:"20",r:"2",key:"1vifvg"}],["path",{d:"M10 20H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h3.9a2 2 0 0 1 1.69.9l.81 1.2a2 2 0 0 0 1.67.9H20a2 2 0 0 1 2 2v2",key:"3hgo9p"}],["path",{d:"m22 14-4.5 4.5",key:"1ef6z8"}],["path",{d:"m21 15 1 1",key:"1ejcpy"}]]),jW=i("folder-minus",[["path",{d:"M9 13h6",key:"1uhe8q"}],["path",{d:"M20 20a2 2 0 0 0 2-2V8a2 2 0 0 0-2-2h-7.9a2 2 0 0 1-1.69-.9L9.6 3.9A2 2 0 0 0 7.93 3H4a2 2 0 0 0-2 2v13a2 2 0 0 0 2 2Z",key:"1kt360"}]]),jX=i("folder-lock",[["rect",{width:"8",height:"5",x:"14",y:"17",rx:"1",key:"19aais"}],["path",{d:"M10 20H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h3.9a2 2 0 0 1 1.69.9l.81 1.2a2 2 0 0 0 1.67.9H20a2 2 0 0 1 2 2v2.5",key:"1w6v7t"}],["path",{d:"M20 17v-2a2 2 0 1 0-4 0v2",key:"pwaxnr"}]]),jY=i("folder-open-dot",[["path",{d:"m6 14 1.45-2.9A2 2 0 0 1 9.24 10H20a2 2 0 0 1 1.94 2.5l-1.55 6a2 2 0 0 1-1.94 1.5H4a2 2 0 0 1-2-2V5c0-1.1.9-2 2-2h3.93a2 2 0 0 1 1.66.9l.82 1.2a2 2 0 0 0 1.66.9H18a2 2 0 0 1 2 2v2",key:"1nmvlm"}],["circle",{cx:"14",cy:"15",r:"1",key:"1gm4qj"}]]),jZ=i("folder-open",[["path",{d:"m6 14 1.5-2.9A2 2 0 0 1 9.24 10H20a2 2 0 0 1 1.94 2.5l-1.54 6a2 2 0 0 1-1.95 1.5H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h3.9a2 2 0 0 1 1.69.9l.81 1.2a2 2 0 0 0 1.67.9H18a2 2 0 0 1 2 2v2",key:"usdka0"}]]),j$=i("folder-output",[["path",{d:"M2 7.5V5a2 2 0 0 1 2-2h3.9a2 2 0 0 1 1.69.9l.81 1.2a2 2 0 0 0 1.67.9H20a2 2 0 0 1 2 2v10a2 2 0 0 1-2 2H4a2 2 0 0 1-2-1.5",key:"1yk7aj"}],["path",{d:"M2 13h10",key:"pgb2dq"}],["path",{d:"m5 10-3 3 3 3",key:"1r8ie0"}]]),j_=i("folder-pen",[["path",{d:"M2 11.5V5a2 2 0 0 1 2-2h3.9c.7 0 1.3.3 1.7.9l.8 1.2c.4.6 1 .9 1.7.9H20a2 2 0 0 1 2 2v10a2 2 0 0 1-2 2h-9.5",key:"a8xqs0"}],["path",{d:"M11.378 13.626a1 1 0 1 0-3.004-3.004l-5.01 5.012a2 2 0 0 0-.506.854l-.837 2.87a.5.5 0 0 0 .62.62l2.87-.837a2 2 0 0 0 .854-.506z",key:"1saktj"}]]),j0=i("folder-plus",[["path",{d:"M12 10v6",key:"1bos4e"}],["path",{d:"M9 13h6",key:"1uhe8q"}],["path",{d:"M20 20a2 2 0 0 0 2-2V8a2 2 0 0 0-2-2h-7.9a2 2 0 0 1-1.69-.9L9.6 3.9A2 2 0 0 0 7.93 3H4a2 2 0 0 0-2 2v13a2 2 0 0 0 2 2Z",key:"1kt360"}]]),j1=i("folder-root",[["path",{d:"M4 20h16a2 2 0 0 0 2-2V8a2 2 0 0 0-2-2h-7.93a2 2 0 0 1-1.66-.9l-.82-1.2A2 2 0 0 0 7.93 3H4a2 2 0 0 0-2 2v13c0 1.1.9 2 2 2Z",key:"1fr9dc"}],["circle",{cx:"12",cy:"13",r:"2",key:"1c1ljs"}],["path",{d:"M12 15v5",key:"11xva1"}]]),j2=i("folder-search-2",[["circle",{cx:"11.5",cy:"12.5",r:"2.5",key:"1ea5ju"}],["path",{d:"M20 20a2 2 0 0 0 2-2V8a2 2 0 0 0-2-2h-7.9a2 2 0 0 1-1.69-.9L9.6 3.9A2 2 0 0 0 7.93 3H4a2 2 0 0 0-2 2v13a2 2 0 0 0 2 2Z",key:"1kt360"}],["path",{d:"M13.3 14.3 15 16",key:"1y4v1n"}]]),j3=i("folder-search",[["path",{d:"M10.7 20H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h3.9a2 2 0 0 1 1.69.9l.81 1.2a2 2 0 0 0 1.67.9H20a2 2 0 0 1 2 2v4.1",key:"1bw5m7"}],["path",{d:"m21 21-1.9-1.9",key:"1g2n9r"}],["circle",{cx:"17",cy:"17",r:"3",key:"18b49y"}]]),j4=i("folder-symlink",[["path",{d:"M2 9V5a2 2 0 0 1 2-2h3.9a2 2 0 0 1 1.69.9l.81 1.2a2 2 0 0 0 1.67.9H20a2 2 0 0 1 2 2v10a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2v-3a2 2 0 0 1 2-2h7",key:"x1c07l"}],["path",{d:"m8 16 3-3-3-3",key:"rlqrt1"}]]),j5=i("folder-sync",[["path",{d:"M9 20H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h3.9a2 2 0 0 1 1.69.9l.81 1.2a2 2 0 0 0 1.67.9H20a2 2 0 0 1 2 2v.5",key:"1dkoa9"}],["path",{d:"M12 10v4h4",key:"1czhmt"}],["path",{d:"m12 14 1.535-1.605a5 5 0 0 1 8 1.5",key:"lvuxfi"}],["path",{d:"M22 22v-4h-4",key:"1ewp4q"}],["path",{d:"m22 18-1.535 1.605a5 5 0 0 1-8-1.5",key:"14ync0"}]]),j6=i("folder-tree",[["path",{d:"M20 10a1 1 0 0 0 1-1V6a1 1 0 0 0-1-1h-2.5a1 1 0 0 1-.8-.4l-.9-1.2A1 1 0 0 0 15 3h-2a1 1 0 0 0-1 1v5a1 1 0 0 0 1 1Z",key:"hod4my"}],["path",{d:"M20 21a1 1 0 0 0 1-1v-3a1 1 0 0 0-1-1h-2.9a1 1 0 0 1-.88-.55l-.42-.85a1 1 0 0 0-.92-.6H13a1 1 0 0 0-1 1v5a1 1 0 0 0 1 1Z",key:"w4yl2u"}],["path",{d:"M3 5a2 2 0 0 0 2 2h3",key:"f2jnh7"}],["path",{d:"M3 3v13a2 2 0 0 0 2 2h3",key:"k8epm1"}]]),j7=i("folder-up",[["path",{d:"M20 20a2 2 0 0 0 2-2V8a2 2 0 0 0-2-2h-7.9a2 2 0 0 1-1.69-.9L9.6 3.9A2 2 0 0 0 7.93 3H4a2 2 0 0 0-2 2v13a2 2 0 0 0 2 2Z",key:"1kt360"}],["path",{d:"M12 10v6",key:"1bos4e"}],["path",{d:"m9 13 3-3 3 3",key:"1pxg3c"}]]),j8=i("folder-x",[["path",{d:"M20 20a2 2 0 0 0 2-2V8a2 2 0 0 0-2-2h-7.9a2 2 0 0 1-1.69-.9L9.6 3.9A2 2 0 0 0 7.93 3H4a2 2 0 0 0-2 2v13a2 2 0 0 0 2 2Z",key:"1kt360"}],["path",{d:"m9.5 10.5 5 5",key:"ra9qjz"}],["path",{d:"m14.5 10.5-5 5",key:"l2rkpq"}]]),j9=i("folder",[["path",{d:"M20 20a2 2 0 0 0 2-2V8a2 2 0 0 0-2-2h-7.9a2 2 0 0 1-1.69-.9L9.6 3.9A2 2 0 0 0 7.93 3H4a2 2 0 0 0-2 2v13a2 2 0 0 0 2 2Z",key:"1kt360"}]]),ka=i("folders",[["path",{d:"M20 17a2 2 0 0 0 2-2V9a2 2 0 0 0-2-2h-3.9a2 2 0 0 1-1.69-.9l-.81-1.2a2 2 0 0 0-1.67-.9H8a2 2 0 0 0-2 2v9a2 2 0 0 0 2 2Z",key:"4u7rpt"}],["path",{d:"M2 8v11a2 2 0 0 0 2 2h14",key:"1eicx1"}]]),kb=i("footprints",[["path",{d:"M4 16v-2.38C4 11.5 2.97 10.5 3 8c.03-2.72 1.49-6 4.5-6C9.37 2 10 3.8 10 5.5c0 3.11-2 5.66-2 8.68V16a2 2 0 1 1-4 0Z",key:"1dudjm"}],["path",{d:"M20 20v-2.38c0-2.12 1.03-3.12 1-5.62-.03-2.72-1.49-6-4.5-6C14.63 6 14 7.8 14 9.5c0 3.11 2 5.66 2 8.68V20a2 2 0 1 0 4 0Z",key:"l2t8xc"}],["path",{d:"M16 17h4",key:"1dejxt"}],["path",{d:"M4 13h4",key:"1bwh8b"}]]),kc=i("forklift",[["path",{d:"M12 12H5a2 2 0 0 0-2 2v5",key:"7zsz91"}],["circle",{cx:"13",cy:"19",r:"2",key:"wjnkru"}],["circle",{cx:"5",cy:"19",r:"2",key:"v8kfzx"}],["path",{d:"M8 19h3m5-17v17h6M6 12V7c0-1.1.9-2 2-2h3l5 5",key:"13bk1p"}]]),kd=i("forward",[["path",{d:"m15 17 5-5-5-5",key:"nf172w"}],["path",{d:"M4 18v-2a4 4 0 0 1 4-4h12",key:"jmiej9"}]]),ke=i("frame",[["line",{x1:"22",x2:"2",y1:"6",y2:"6",key:"15w7dq"}],["line",{x1:"22",x2:"2",y1:"18",y2:"18",key:"1ip48p"}],["line",{x1:"6",x2:"6",y1:"2",y2:"22",key:"a2lnyx"}],["line",{x1:"18",x2:"18",y1:"2",y2:"22",key:"8vb6jd"}]]),kf=i("framer",[["path",{d:"M5 16V9h14V2H5l14 14h-7m-7 0 7 7v-7m-7 0h7",key:"1a2nng"}]]),kg=i("frown",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"M16 16s-1.5-2-4-2-4 2-4 2",key:"epbg0q"}],["line",{x1:"9",x2:"9.01",y1:"9",y2:"9",key:"yxxnd0"}],["line",{x1:"15",x2:"15.01",y1:"9",y2:"9",key:"1p4y9e"}]]),kh=i("fuel",[["line",{x1:"3",x2:"15",y1:"22",y2:"22",key:"xegly4"}],["line",{x1:"4",x2:"14",y1:"9",y2:"9",key:"xcnuvu"}],["path",{d:"M14 22V4a2 2 0 0 0-2-2H6a2 2 0 0 0-2 2v18",key:"16j0yd"}],["path",{d:"M14 13h2a2 2 0 0 1 2 2v2a2 2 0 0 0 2 2a2 2 0 0 0 2-2V9.83a2 2 0 0 0-.59-1.42L18 5",key:"7cu91f"}]]),ki=i("fullscreen",[["path",{d:"M3 7V5a2 2 0 0 1 2-2h2",key:"aa7l1z"}],["path",{d:"M17 3h2a2 2 0 0 1 2 2v2",key:"4qcy5o"}],["path",{d:"M21 17v2a2 2 0 0 1-2 2h-2",key:"6vwrx8"}],["path",{d:"M7 21H5a2 2 0 0 1-2-2v-2",key:"ioqczr"}],["rect",{width:"10",height:"8",x:"7",y:"8",rx:"1",key:"vys8me"}]]),kj=i("funnel-plus",[["path",{d:"M13.354 3H3a1 1 0 0 0-.742 1.67l7.225 7.989A2 2 0 0 1 10 14v6a1 1 0 0 0 .553.895l2 1A1 1 0 0 0 14 21v-7a2 2 0 0 1 .517-1.341l1.218-1.348",key:"8mvsmf"}],["path",{d:"M16 6h6",key:"1dogtp"}],["path",{d:"M19 3v6",key:"1ytpjt"}]]),kk=i("funnel-x",[["path",{d:"M12.531 3H3a1 1 0 0 0-.742 1.67l7.225 7.989A2 2 0 0 1 10 14v6a1 1 0 0 0 .553.895l2 1A1 1 0 0 0 14 21v-7a2 2 0 0 1 .517-1.341l.427-.473",key:"ol2ft2"}],["path",{d:"m16.5 3.5 5 5",key:"15e6fa"}],["path",{d:"m21.5 3.5-5 5",key:"m0lwru"}]]),kl=i("funnel",[["path",{d:"M10 20a1 1 0 0 0 .553.895l2 1A1 1 0 0 0 14 21v-7a2 2 0 0 1 .517-1.341L21.74 4.67A1 1 0 0 0 21 3H3a1 1 0 0 0-.742 1.67l7.225 7.989A2 2 0 0 1 10 14z",key:"sc7q7i"}]]),km=i("gallery-horizontal-end",[["path",{d:"M2 7v10",key:"a2pl2d"}],["path",{d:"M6 5v14",key:"1kq3d7"}],["rect",{width:"12",height:"18",x:"10",y:"3",rx:"2",key:"13i7bc"}]]),kn=i("gallery-horizontal",[["path",{d:"M2 3v18",key:"pzttux"}],["rect",{width:"12",height:"18",x:"6",y:"3",rx:"2",key:"btr8bg"}],["path",{d:"M22 3v18",key:"6jf3v"}]]),ko=i("gallery-thumbnails",[["rect",{width:"18",height:"14",x:"3",y:"3",rx:"2",key:"74y24f"}],["path",{d:"M4 21h1",key:"16zlid"}],["path",{d:"M9 21h1",key:"15o7lz"}],["path",{d:"M14 21h1",key:"v9vybs"}],["path",{d:"M19 21h1",key:"edywat"}]]),kp=i("gallery-vertical-end",[["path",{d:"M7 2h10",key:"nczekb"}],["path",{d:"M5 6h14",key:"u2x4p"}],["rect",{width:"18",height:"12",x:"3",y:"10",rx:"2",key:"l0tzu3"}]]),kq=i("gallery-vertical",[["path",{d:"M3 2h18",key:"15qxfx"}],["rect",{width:"18",height:"12",x:"3",y:"6",rx:"2",key:"1439r6"}],["path",{d:"M3 22h18",key:"8prr45"}]]),kr=i("gamepad-2",[["line",{x1:"6",x2:"10",y1:"11",y2:"11",key:"1gktln"}],["line",{x1:"8",x2:"8",y1:"9",y2:"13",key:"qnk9ow"}],["line",{x1:"15",x2:"15.01",y1:"12",y2:"12",key:"krot7o"}],["line",{x1:"18",x2:"18.01",y1:"10",y2:"10",key:"1lcuu1"}],["path",{d:"M17.32 5H6.68a4 4 0 0 0-3.978 3.59c-.006.052-.01.101-.017.152C2.604 9.416 2 14.456 2 16a3 3 0 0 0 3 3c1 0 1.5-.5 2-1l1.414-1.414A2 2 0 0 1 9.828 16h4.344a2 2 0 0 1 1.414.586L17 18c.5.5 1 1 2 1a3 3 0 0 0 3-3c0-1.545-.604-6.584-.685-7.258-.007-.05-.011-.1-.017-.151A4 4 0 0 0 17.32 5z",key:"mfqc10"}]]),ks=i("gamepad",[["line",{x1:"6",x2:"10",y1:"12",y2:"12",key:"161bw2"}],["line",{x1:"8",x2:"8",y1:"10",y2:"14",key:"1i6ji0"}],["line",{x1:"15",x2:"15.01",y1:"13",y2:"13",key:"dqpgro"}],["line",{x1:"18",x2:"18.01",y1:"11",y2:"11",key:"meh2c"}],["rect",{width:"20",height:"12",x:"2",y:"6",rx:"2",key:"9lu3g6"}]]),kt=i("gauge",[["path",{d:"m12 14 4-4",key:"9kzdfg"}],["path",{d:"M3.34 19a10 10 0 1 1 17.32 0",key:"19p75a"}]]),ku=i("gavel",[["path",{d:"m14.5 12.5-8 8a2.119 2.119 0 1 1-3-3l8-8",key:"15492f"}],["path",{d:"m16 16 6-6",key:"vzrcl6"}],["path",{d:"m8 8 6-6",key:"18bi4p"}],["path",{d:"m9 7 8 8",key:"5jnvq1"}],["path",{d:"m21 11-8-8",key:"z4y7zo"}]]),kv=i("gem",[["path",{d:"M6 3h12l4 6-10 13L2 9Z",key:"1pcd5k"}],["path",{d:"M11 3 8 9l4 13 4-13-3-6",key:"1fcu3u"}],["path",{d:"M2 9h20",key:"16fsjt"}]]),kw=i("georgian-lari",[["path",{d:"M11.5 21a7.5 7.5 0 1 1 7.35-9",key:"1gyj8k"}],["path",{d:"M13 12V3",key:"18om2a"}],["path",{d:"M4 21h16",key:"1h09gz"}],["path",{d:"M9 12V3",key:"geutu0"}]]),kx=i("ghost",[["path",{d:"M9 10h.01",key:"qbtxuw"}],["path",{d:"M15 10h.01",key:"1qmjsl"}],["path",{d:"M12 2a8 8 0 0 0-8 8v12l3-3 2.5 2.5L12 19l2.5 2.5L17 19l3 3V10a8 8 0 0 0-8-8z",key:"uwwb07"}]]),ky=i("gift",[["rect",{x:"3",y:"8",width:"18",height:"4",rx:"1",key:"bkv52"}],["path",{d:"M12 8v13",key:"1c76mn"}],["path",{d:"M19 12v7a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2v-7",key:"6wjy6b"}],["path",{d:"M7.5 8a2.5 2.5 0 0 1 0-5A4.8 8 0 0 1 12 8a4.8 8 0 0 1 4.5-5 2.5 2.5 0 0 1 0 5",key:"1ihvrl"}]]),kz=i("git-branch-plus",[["path",{d:"M6 3v12",key:"qpgusn"}],["path",{d:"M18 9a3 3 0 1 0 0-6 3 3 0 0 0 0 6z",key:"1d02ji"}],["path",{d:"M6 21a3 3 0 1 0 0-6 3 3 0 0 0 0 6z",key:"chk6ph"}],["path",{d:"M15 6a9 9 0 0 0-9 9",key:"or332x"}],["path",{d:"M18 15v6",key:"9wciyi"}],["path",{d:"M21 18h-6",key:"139f0c"}]]),kA=i("git-branch",[["line",{x1:"6",x2:"6",y1:"3",y2:"15",key:"17qcm7"}],["circle",{cx:"18",cy:"6",r:"3",key:"1h7g24"}],["circle",{cx:"6",cy:"18",r:"3",key:"fqmcym"}],["path",{d:"M18 9a9 9 0 0 1-9 9",key:"n2h4wq"}]]),kB=i("git-commit-horizontal",[["circle",{cx:"12",cy:"12",r:"3",key:"1v7zrd"}],["line",{x1:"3",x2:"9",y1:"12",y2:"12",key:"1dyftd"}],["line",{x1:"15",x2:"21",y1:"12",y2:"12",key:"oup4p8"}]]),kC=i("git-commit-vertical",[["path",{d:"M12 3v6",key:"1holv5"}],["circle",{cx:"12",cy:"12",r:"3",key:"1v7zrd"}],["path",{d:"M12 15v6",key:"a9ows0"}]]),kD=i("git-compare-arrows",[["circle",{cx:"5",cy:"6",r:"3",key:"1qnov2"}],["path",{d:"M12 6h5a2 2 0 0 1 2 2v7",key:"1yj91y"}],["path",{d:"m15 9-3-3 3-3",key:"1lwv8l"}],["circle",{cx:"19",cy:"18",r:"3",key:"1qljk2"}],["path",{d:"M12 18H7a2 2 0 0 1-2-2V9",key:"16sdep"}],["path",{d:"m9 15 3 3-3 3",key:"1m3kbl"}]]),kE=i("git-fork",[["circle",{cx:"12",cy:"18",r:"3",key:"1mpf1b"}],["circle",{cx:"6",cy:"6",r:"3",key:"1lh9wr"}],["circle",{cx:"18",cy:"6",r:"3",key:"1h7g24"}],["path",{d:"M18 9v2c0 .6-.4 1-1 1H7c-.6 0-1-.4-1-1V9",key:"1uq4wg"}],["path",{d:"M12 12v3",key:"158kv8"}]]),kF=i("git-compare",[["circle",{cx:"18",cy:"18",r:"3",key:"1xkwt0"}],["circle",{cx:"6",cy:"6",r:"3",key:"1lh9wr"}],["path",{d:"M13 6h3a2 2 0 0 1 2 2v7",key:"1yeb86"}],["path",{d:"M11 18H8a2 2 0 0 1-2-2V9",key:"19pyzm"}]]),kG=i("git-graph",[["circle",{cx:"5",cy:"6",r:"3",key:"1qnov2"}],["path",{d:"M5 9v6",key:"158jrl"}],["circle",{cx:"5",cy:"18",r:"3",key:"104gr9"}],["path",{d:"M12 3v18",key:"108xh3"}],["circle",{cx:"19",cy:"6",r:"3",key:"108a5v"}],["path",{d:"M16 15.7A9 9 0 0 0 19 9",key:"1e3vqb"}]]),kH=i("git-merge",[["circle",{cx:"18",cy:"18",r:"3",key:"1xkwt0"}],["circle",{cx:"6",cy:"6",r:"3",key:"1lh9wr"}],["path",{d:"M6 21V9a9 9 0 0 0 9 9",key:"7kw0sc"}]]),kI=i("git-pull-request-arrow",[["circle",{cx:"5",cy:"6",r:"3",key:"1qnov2"}],["path",{d:"M5 9v12",key:"ih889a"}],["circle",{cx:"19",cy:"18",r:"3",key:"1qljk2"}],["path",{d:"m15 9-3-3 3-3",key:"1lwv8l"}],["path",{d:"M12 6h5a2 2 0 0 1 2 2v7",key:"1yj91y"}]]),kJ=i("git-pull-request-closed",[["circle",{cx:"6",cy:"6",r:"3",key:"1lh9wr"}],["path",{d:"M6 9v12",key:"1sc30k"}],["path",{d:"m21 3-6 6",key:"16nqsk"}],["path",{d:"m21 9-6-6",key:"9j17rh"}],["path",{d:"M18 11.5V15",key:"65xf6f"}],["circle",{cx:"18",cy:"18",r:"3",key:"1xkwt0"}]]),kK=i("git-pull-request-create-arrow",[["circle",{cx:"5",cy:"6",r:"3",key:"1qnov2"}],["path",{d:"M5 9v12",key:"ih889a"}],["path",{d:"m15 9-3-3 3-3",key:"1lwv8l"}],["path",{d:"M12 6h5a2 2 0 0 1 2 2v3",key:"1rbwk6"}],["path",{d:"M19 15v6",key:"10aioa"}],["path",{d:"M22 18h-6",key:"1d5gi5"}]]),kL=i("git-pull-request-create",[["circle",{cx:"6",cy:"6",r:"3",key:"1lh9wr"}],["path",{d:"M6 9v12",key:"1sc30k"}],["path",{d:"M13 6h3a2 2 0 0 1 2 2v3",key:"1jb6z3"}],["path",{d:"M18 15v6",key:"9wciyi"}],["path",{d:"M21 18h-6",key:"139f0c"}]]),kM=i("git-pull-request-draft",[["circle",{cx:"18",cy:"18",r:"3",key:"1xkwt0"}],["circle",{cx:"6",cy:"6",r:"3",key:"1lh9wr"}],["path",{d:"M18 6V5",key:"1oao2s"}],["path",{d:"M18 11v-1",key:"11c8tz"}],["line",{x1:"6",x2:"6",y1:"9",y2:"21",key:"rroup"}]]),kN=i("git-pull-request",[["circle",{cx:"18",cy:"18",r:"3",key:"1xkwt0"}],["circle",{cx:"6",cy:"6",r:"3",key:"1lh9wr"}],["path",{d:"M13 6h3a2 2 0 0 1 2 2v7",key:"1yeb86"}],["line",{x1:"6",x2:"6",y1:"9",y2:"21",key:"rroup"}]]),kO=i("github",[["path",{d:"M15 22v-4a4.8 4.8 0 0 0-1-3.5c3 0 6-2 6-5.5.08-1.25-.27-2.48-1-3.5.28-1.15.28-2.35 0-3.5 0 0-1 0-3 1.5-2.64-.5-5.36-.5-8 0C6 2 5 2 5 2c-.3 1.15-.3 2.35 0 3.5A5.403 5.403 0 0 0 4 9c0 3.5 3 5.5 6 5.5-.39.49-.68 1.05-.85 1.65-.17.6-.22 1.23-.15 1.85v4",key:"tonef"}],["path",{d:"M9 18c-4.51 2-5-2-7-2",key:"9comsn"}]]),kP=i("gitlab",[["path",{d:"m22 13.29-3.33-10a.42.42 0 0 0-.14-.18.38.38 0 0 0-.22-.11.39.39 0 0 0-.23.07.42.42 0 0 0-.14.18l-2.26 6.67H8.32L6.1 3.26a.42.42 0 0 0-.1-.18.38.38 0 0 0-.26-.08.39.39 0 0 0-.23.07.42.42 0 0 0-.14.18L2 13.29a.74.74 0 0 0 .27.83L12 21l9.69-6.88a.71.71 0 0 0 .31-.83Z",key:"148pdi"}]]),kQ=i("glass-water",[["path",{d:"M5.116 4.104A1 1 0 0 1 6.11 3h11.78a1 1 0 0 1 .994 1.105L17.19 20.21A2 2 0 0 1 15.2 22H8.8a2 2 0 0 1-2-1.79z",key:"p55z4y"}],["path",{d:"M6 12a5 5 0 0 1 6 0 5 5 0 0 0 6 0",key:"mjntcy"}]]),kR=i("glasses",[["circle",{cx:"6",cy:"15",r:"4",key:"vux9w4"}],["circle",{cx:"18",cy:"15",r:"4",key:"18o8ve"}],["path",{d:"M14 15a2 2 0 0 0-2-2 2 2 0 0 0-2 2",key:"1ag4bs"}],["path",{d:"M2.5 13 5 7c.7-1.3 1.4-2 3-2",key:"1hm1gs"}],["path",{d:"M21.5 13 19 7c-.7-1.3-1.5-2-3-2",key:"1r31ai"}]]),kS=i("globe-lock",[["path",{d:"M15.686 15A14.5 14.5 0 0 1 12 22a14.5 14.5 0 0 1 0-20 10 10 0 1 0 9.542 13",key:"qkt0x6"}],["path",{d:"M2 12h8.5",key:"ovaggd"}],["path",{d:"M20 6V4a2 2 0 1 0-4 0v2",key:"1of5e8"}],["rect",{width:"8",height:"5",x:"14",y:"6",rx:"1",key:"1fmf51"}]]),kT=i("globe",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"M12 2a14.5 14.5 0 0 0 0 20 14.5 14.5 0 0 0 0-20",key:"13o1zl"}],["path",{d:"M2 12h20",key:"9i4pu4"}]]),kU=i("goal",[["path",{d:"M12 13V2l8 4-8 4",key:"5wlwwj"}],["path",{d:"M20.561 10.222a9 9 0 1 1-12.55-5.29",key:"1c0wjv"}],["path",{d:"M8.002 9.997a5 5 0 1 0 8.9 2.02",key:"gb1g7m"}]]),kV=i("gpu",[["path",{d:"M2 21V3",key:"1bzk4w"}],["path",{d:"M2 5h18a2 2 0 0 1 2 2v8a2 2 0 0 1-2 2H2.26",key:"1d64pi"}],["path",{d:"M7 17v3a1 1 0 0 0 1 1h5a1 1 0 0 0 1-1v-3",key:"5hbqbf"}],["circle",{cx:"16",cy:"11",r:"2",key:"qt15rb"}],["circle",{cx:"8",cy:"11",r:"2",key:"ssideg"}]]),kW=i("grab",[["path",{d:"M18 11.5V9a2 2 0 0 0-2-2a2 2 0 0 0-2 2v1.4",key:"edstyy"}],["path",{d:"M14 10V8a2 2 0 0 0-2-2a2 2 0 0 0-2 2v2",key:"19wdwo"}],["path",{d:"M10 9.9V9a2 2 0 0 0-2-2a2 2 0 0 0-2 2v5",key:"1lugqo"}],["path",{d:"M6 14a2 2 0 0 0-2-2a2 2 0 0 0-2 2",key:"1hbeus"}],["path",{d:"M18 11a2 2 0 1 1 4 0v3a8 8 0 0 1-8 8h-4a8 8 0 0 1-8-8 2 2 0 1 1 4 0",key:"1etffm"}]]),kX=i("graduation-cap",[["path",{d:"M21.42 10.922a1 1 0 0 0-.019-1.838L12.83 5.18a2 2 0 0 0-1.66 0L2.6 9.08a1 1 0 0 0 0 1.832l8.57 3.908a2 2 0 0 0 1.66 0z",key:"j76jl0"}],["path",{d:"M22 10v6",key:"1lu8f3"}],["path",{d:"M6 12.5V16a6 3 0 0 0 12 0v-3.5",key:"1r8lef"}]]),kY=i("grape",[["path",{d:"M22 5V2l-5.89 5.89",key:"1eenpo"}],["circle",{cx:"16.6",cy:"15.89",r:"3",key:"xjtalx"}],["circle",{cx:"8.11",cy:"7.4",r:"3",key:"u2fv6i"}],["circle",{cx:"12.35",cy:"11.65",r:"3",key:"i6i8g7"}],["circle",{cx:"13.91",cy:"5.85",r:"3",key:"6ye0dv"}],["circle",{cx:"18.15",cy:"10.09",r:"3",key:"snx9no"}],["circle",{cx:"6.56",cy:"13.2",r:"3",key:"17x4xg"}],["circle",{cx:"10.8",cy:"17.44",r:"3",key:"1hogw9"}],["circle",{cx:"5",cy:"19",r:"3",key:"1sn6vo"}]]),kZ=i("grid-2x2-check",[["path",{d:"M12 3v17a1 1 0 0 1-1 1H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2v6a1 1 0 0 1-1 1H3",key:"11za1p"}],["path",{d:"m16 19 2 2 4-4",key:"1b14m6"}]]),k$=i("grid-2x2-plus",[["path",{d:"M12 3v17a1 1 0 0 1-1 1H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2v6a1 1 0 0 1-1 1H3",key:"11za1p"}],["path",{d:"M16 19h6",key:"xwg31i"}],["path",{d:"M19 22v-6",key:"qhmiwi"}]]),k_=i("grid-2x2-x",[["path",{d:"M12 3v17a1 1 0 0 1-1 1H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2v6a1 1 0 0 1-1 1H3",key:"11za1p"}],["path",{d:"m16 16 5 5",key:"8tpb07"}],["path",{d:"m16 21 5-5",key:"193jll"}]]),k0=i("grid-2x2",[["path",{d:"M12 3v18",key:"108xh3"}],["path",{d:"M3 12h18",key:"1i2n21"}],["rect",{x:"3",y:"3",width:"18",height:"18",rx:"2",key:"h1oib"}]]),k1=i("grid-3x2",[["path",{d:"M15 3v18",key:"14nvp0"}],["path",{d:"M3 12h18",key:"1i2n21"}],["path",{d:"M9 3v18",key:"fh3hqa"}],["rect",{x:"3",y:"3",width:"18",height:"18",rx:"2",key:"h1oib"}]]),k2=i("grid-3x3",[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",key:"afitv7"}],["path",{d:"M3 9h18",key:"1pudct"}],["path",{d:"M3 15h18",key:"5xshup"}],["path",{d:"M9 3v18",key:"fh3hqa"}],["path",{d:"M15 3v18",key:"14nvp0"}]]),k3=i("grip-horizontal",[["circle",{cx:"12",cy:"9",r:"1",key:"124mty"}],["circle",{cx:"19",cy:"9",r:"1",key:"1ruzo2"}],["circle",{cx:"5",cy:"9",r:"1",key:"1a8b28"}],["circle",{cx:"12",cy:"15",r:"1",key:"1e56xg"}],["circle",{cx:"19",cy:"15",r:"1",key:"1a92ep"}],["circle",{cx:"5",cy:"15",r:"1",key:"5r1jwy"}]]),k4=i("grip-vertical",[["circle",{cx:"9",cy:"12",r:"1",key:"1vctgf"}],["circle",{cx:"9",cy:"5",r:"1",key:"hp0tcf"}],["circle",{cx:"9",cy:"19",r:"1",key:"fkjjf6"}],["circle",{cx:"15",cy:"12",r:"1",key:"1tmaij"}],["circle",{cx:"15",cy:"5",r:"1",key:"19l28e"}],["circle",{cx:"15",cy:"19",r:"1",key:"f4zoj3"}]]),k5=i("grip",[["circle",{cx:"12",cy:"5",r:"1",key:"gxeob9"}],["circle",{cx:"19",cy:"5",r:"1",key:"w8mnmm"}],["circle",{cx:"5",cy:"5",r:"1",key:"lttvr7"}],["circle",{cx:"12",cy:"12",r:"1",key:"41hilf"}],["circle",{cx:"19",cy:"12",r:"1",key:"1wjl8i"}],["circle",{cx:"5",cy:"12",r:"1",key:"1pcz8c"}],["circle",{cx:"12",cy:"19",r:"1",key:"lyex9k"}],["circle",{cx:"19",cy:"19",r:"1",key:"shf9b7"}],["circle",{cx:"5",cy:"19",r:"1",key:"bfqh0e"}]]),k6=i("guitar",[["path",{d:"m11.9 12.1 4.514-4.514",key:"109xqo"}],["path",{d:"M20.1 2.3a1 1 0 0 0-1.4 0l-1.114 1.114A2 2 0 0 0 17 4.828v1.344a2 2 0 0 1-.586 1.414A2 2 0 0 1 17.828 7h1.344a2 2 0 0 0 1.414-.586L21.7 5.3a1 1 0 0 0 0-1.4z",key:"txyc8t"}],["path",{d:"m6 16 2 2",key:"16qmzd"}],["path",{d:"M8.23 9.85A3 3 0 0 1 11 8a5 5 0 0 1 5 5 3 3 0 0 1-1.85 2.77l-.92.38A2 2 0 0 0 12 18a4 4 0 0 1-4 4 6 6 0 0 1-6-6 4 4 0 0 1 4-4 2 2 0 0 0 1.85-1.23z",key:"1de1vg"}]]),k7=i("group",[["path",{d:"M3 7V5c0-1.1.9-2 2-2h2",key:"adw53z"}],["path",{d:"M17 3h2c1.1 0 2 .9 2 2v2",key:"an4l38"}],["path",{d:"M21 17v2c0 1.1-.9 2-2 2h-2",key:"144t0e"}],["path",{d:"M7 21H5c-1.1 0-2-.9-2-2v-2",key:"rtnfgi"}],["rect",{width:"7",height:"5",x:"7",y:"7",rx:"1",key:"1eyiv7"}],["rect",{width:"7",height:"5",x:"10",y:"12",rx:"1",key:"1qlmkx"}]]),k8=i("ham",[["path",{d:"M13.144 21.144A7.274 10.445 45 1 0 2.856 10.856",key:"1k1t7q"}],["path",{d:"M13.144 21.144A7.274 4.365 45 0 0 2.856 10.856a7.274 4.365 45 0 0 10.288 10.288",key:"153t1g"}],["path",{d:"M16.565 10.435 18.6 8.4a2.501 2.501 0 1 0 1.65-4.65 2.5 2.5 0 1 0-4.66 1.66l-2.024 2.025",key:"gzrt0n"}],["path",{d:"m8.5 16.5-1-1",key:"otr954"}]]),k9=i("hamburger",[["path",{d:"M12 16H4a2 2 0 1 1 0-4h16a2 2 0 1 1 0 4h-4.25",key:"5dloqd"}],["path",{d:"M5 12a2 2 0 0 1-2-2 9 7 0 0 1 18 0 2 2 0 0 1-2 2",key:"1vl3my"}],["path",{d:"M5 16a2 2 0 0 0-2 2 3 3 0 0 0 3 3h12a3 3 0 0 0 3-3 2 2 0 0 0-2-2q0 0 0 0",key:"1us75o"}],["path",{d:"m6.67 12 6.13 4.6a2 2 0 0 0 2.8-.4l3.15-4.2",key:"qqzweh"}]]),la=i("hammer",[["path",{d:"m15 12-8.373 8.373a1 1 0 1 1-3-3L12 9",key:"eefl8a"}],["path",{d:"m18 15 4-4",key:"16gjal"}],["path",{d:"m21.5 11.5-1.914-1.914A2 2 0 0 1 19 8.172V7l-2.26-2.26a6 6 0 0 0-4.202-1.756L9 2.96l.92.82A6.18 6.18 0 0 1 12 8.4V10l2 2h1.172a2 2 0 0 1 1.414.586L18.5 14.5",key:"b7pghm"}]]),lb=i("hand-coins",[["path",{d:"M11 15h2a2 2 0 1 0 0-4h-3c-.6 0-1.1.2-1.4.6L3 17",key:"geh8rc"}],["path",{d:"m7 21 1.6-1.4c.3-.4.8-.6 1.4-.6h4c1.1 0 2.1-.4 2.8-1.2l4.6-4.4a2 2 0 0 0-2.75-2.91l-4.2 3.9",key:"1fto5m"}],["path",{d:"m2 16 6 6",key:"1pfhp9"}],["circle",{cx:"16",cy:"9",r:"2.9",key:"1n0dlu"}],["circle",{cx:"6",cy:"5",r:"3",key:"151irh"}]]),lc=i("hand-heart",[["path",{d:"M11 14h2a2 2 0 1 0 0-4h-3c-.6 0-1.1.2-1.4.6L3 16",key:"1ifwr1"}],["path",{d:"m7 20 1.6-1.4c.3-.4.8-.6 1.4-.6h4c1.1 0 2.1-.4 2.8-1.2l4.6-4.4a2 2 0 0 0-2.75-2.91l-4.2 3.9",key:"17abbs"}],["path",{d:"m2 15 6 6",key:"10dquu"}],["path",{d:"M19.5 8.5c.7-.7 1.5-1.6 1.5-2.7A2.73 2.73 0 0 0 16 4a2.78 2.78 0 0 0-5 1.8c0 1.2.8 2 1.5 2.8L16 12Z",key:"1h3036"}]]),ld=i("hand-helping",[["path",{d:"M11 12h2a2 2 0 1 0 0-4h-3c-.6 0-1.1.2-1.4.6L3 14",key:"1j4xps"}],["path",{d:"m7 18 1.6-1.4c.3-.4.8-.6 1.4-.6h4c1.1 0 2.1-.4 2.8-1.2l4.6-4.4a2 2 0 0 0-2.75-2.91l-4.2 3.9",key:"uospg8"}],["path",{d:"m2 13 6 6",key:"16e5sb"}]]),le=i("hand-metal",[["path",{d:"M18 12.5V10a2 2 0 0 0-2-2a2 2 0 0 0-2 2v1.4",key:"wc6myp"}],["path",{d:"M14 11V9a2 2 0 1 0-4 0v2",key:"94qvcw"}],["path",{d:"M10 10.5V5a2 2 0 1 0-4 0v9",key:"m1ah89"}],["path",{d:"m7 15-1.76-1.76a2 2 0 0 0-2.83 2.82l3.6 3.6C7.5 21.14 9.2 22 12 22h2a8 8 0 0 0 8-8V7a2 2 0 1 0-4 0v5",key:"t1skq1"}]]),lf=i("hand-platter",[["path",{d:"M12 3V2",key:"ar7q03"}],["path",{d:"m15.4 17.4 3.2-2.8a2 2 0 1 1 2.8 2.9l-3.6 3.3c-.7.8-1.7 1.2-2.8 1.2h-4c-1.1 0-2.1-.4-2.8-1.2l-1.302-1.464A1 1 0 0 0 6.151 19H5",key:"n2g93r"}],["path",{d:"M2 14h12a2 2 0 0 1 0 4h-2",key:"1o2jem"}],["path",{d:"M4 10h16",key:"img6z1"}],["path",{d:"M5 10a7 7 0 0 1 14 0",key:"1ega1o"}],["path",{d:"M5 14v6a1 1 0 0 1-1 1H2",key:"1hescx"}]]),lg=i("hand",[["path",{d:"M18 11V6a2 2 0 0 0-2-2a2 2 0 0 0-2 2",key:"1fvzgz"}],["path",{d:"M14 10V4a2 2 0 0 0-2-2a2 2 0 0 0-2 2v2",key:"1kc0my"}],["path",{d:"M10 10.5V6a2 2 0 0 0-2-2a2 2 0 0 0-2 2v8",key:"10h0bg"}],["path",{d:"M18 8a2 2 0 1 1 4 0v6a8 8 0 0 1-8 8h-2c-2.8 0-4.5-.86-5.99-2.34l-3.6-3.6a2 2 0 0 1 2.83-2.82L7 15",key:"1s1gnw"}]]),lh=i("handshake",[["path",{d:"m11 17 2 2a1 1 0 1 0 3-3",key:"efffak"}],["path",{d:"m14 14 2.5 2.5a1 1 0 1 0 3-3l-3.88-3.88a3 3 0 0 0-4.24 0l-.88.88a1 1 0 1 1-3-3l2.81-2.81a5.79 5.79 0 0 1 7.06-.87l.47.28a2 2 0 0 0 1.42.25L21 4",key:"9pr0kb"}],["path",{d:"m21 3 1 11h-2",key:"1tisrp"}],["path",{d:"M3 3 2 14l6.5 6.5a1 1 0 1 0 3-3",key:"1uvwmv"}],["path",{d:"M3 4h8",key:"1ep09j"}]]),li=i("hard-drive-download",[["path",{d:"M12 2v8",key:"1q4o3n"}],["path",{d:"m16 6-4 4-4-4",key:"6wukr"}],["rect",{width:"20",height:"8",x:"2",y:"14",rx:"2",key:"w68u3i"}],["path",{d:"M6 18h.01",key:"uhywen"}],["path",{d:"M10 18h.01",key:"h775k"}]]),lj=i("hard-drive-upload",[["path",{d:"m16 6-4-4-4 4",key:"13yo43"}],["path",{d:"M12 2v8",key:"1q4o3n"}],["rect",{width:"20",height:"8",x:"2",y:"14",rx:"2",key:"w68u3i"}],["path",{d:"M6 18h.01",key:"uhywen"}],["path",{d:"M10 18h.01",key:"h775k"}]]),lk=i("hard-drive",[["line",{x1:"22",x2:"2",y1:"12",y2:"12",key:"1y58io"}],["path",{d:"M5.45 5.11 2 12v6a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2v-6l-3.45-6.89A2 2 0 0 0 16.76 4H7.24a2 2 0 0 0-1.79 1.11z",key:"oot6mr"}],["line",{x1:"6",x2:"6.01",y1:"16",y2:"16",key:"sgf278"}],["line",{x1:"10",x2:"10.01",y1:"16",y2:"16",key:"1l4acy"}]]),ll=i("hard-hat",[["path",{d:"M10 10V5a1 1 0 0 1 1-1h2a1 1 0 0 1 1 1v5",key:"1p9q5i"}],["path",{d:"M14 6a6 6 0 0 1 6 6v3",key:"1hnv84"}],["path",{d:"M4 15v-3a6 6 0 0 1 6-6",key:"9ciidu"}],["rect",{x:"2",y:"15",width:"20",height:"4",rx:"1",key:"g3x8cw"}]]),lm=i("hash",[["line",{x1:"4",x2:"20",y1:"9",y2:"9",key:"4lhtct"}],["line",{x1:"4",x2:"20",y1:"15",y2:"15",key:"vyu0kd"}],["line",{x1:"10",x2:"8",y1:"3",y2:"21",key:"1ggp8o"}],["line",{x1:"16",x2:"14",y1:"3",y2:"21",key:"weycgp"}]]),ln=i("haze",[["path",{d:"m5.2 6.2 1.4 1.4",key:"17imol"}],["path",{d:"M2 13h2",key:"13gyu8"}],["path",{d:"M20 13h2",key:"16rner"}],["path",{d:"m17.4 7.6 1.4-1.4",key:"t4xlah"}],["path",{d:"M22 17H2",key:"1gtaj3"}],["path",{d:"M22 21H2",key:"1gy6en"}],["path",{d:"M16 13a4 4 0 0 0-8 0",key:"1dyczq"}],["path",{d:"M12 5V2.5",key:"1vytko"}]]),lo=i("hdmi-port",[["path",{d:"M22 9a1 1 0 0 0-1-1H3a1 1 0 0 0-1 1v4a1 1 0 0 0 1 1h1l2 2h12l2-2h1a1 1 0 0 0 1-1Z",key:"2128wb"}],["path",{d:"M7.5 12h9",key:"1t0ckc"}]]),lp=i("heading-1",[["path",{d:"M4 12h8",key:"17cfdx"}],["path",{d:"M4 18V6",key:"1rz3zl"}],["path",{d:"M12 18V6",key:"zqpxq5"}],["path",{d:"m17 12 3-2v8",key:"1hhhft"}]]),lq=i("heading-2",[["path",{d:"M4 12h8",key:"17cfdx"}],["path",{d:"M4 18V6",key:"1rz3zl"}],["path",{d:"M12 18V6",key:"zqpxq5"}],["path",{d:"M21 18h-4c0-4 4-3 4-6 0-1.5-2-2.5-4-1",key:"9jr5yi"}]]),lr=i("heading-3",[["path",{d:"M4 12h8",key:"17cfdx"}],["path",{d:"M4 18V6",key:"1rz3zl"}],["path",{d:"M12 18V6",key:"zqpxq5"}],["path",{d:"M17.5 10.5c1.7-1 3.5 0 3.5 1.5a2 2 0 0 1-2 2",key:"68ncm8"}],["path",{d:"M17 17.5c2 1.5 4 .3 4-1.5a2 2 0 0 0-2-2",key:"1ejuhz"}]]),ls=i("heading-4",[["path",{d:"M12 18V6",key:"zqpxq5"}],["path",{d:"M17 10v3a1 1 0 0 0 1 1h3",key:"tj5zdr"}],["path",{d:"M21 10v8",key:"1kdml4"}],["path",{d:"M4 12h8",key:"17cfdx"}],["path",{d:"M4 18V6",key:"1rz3zl"}]]),lt=i("heading-5",[["path",{d:"M4 12h8",key:"17cfdx"}],["path",{d:"M4 18V6",key:"1rz3zl"}],["path",{d:"M12 18V6",key:"zqpxq5"}],["path",{d:"M17 13v-3h4",key:"1nvgqp"}],["path",{d:"M17 17.7c.4.2.8.3 1.3.3 1.5 0 2.7-1.1 2.7-2.5S19.8 13 18.3 13H17",key:"2nebdn"}]]),lu=i("heading-6",[["path",{d:"M4 12h8",key:"17cfdx"}],["path",{d:"M4 18V6",key:"1rz3zl"}],["path",{d:"M12 18V6",key:"zqpxq5"}],["circle",{cx:"19",cy:"16",r:"2",key:"15mx69"}],["path",{d:"M20 10c-2 2-3 3.5-3 6",key:"f35dl0"}]]),lv=i("heading",[["path",{d:"M6 12h12",key:"8npq4p"}],["path",{d:"M6 20V4",key:"1w1bmo"}],["path",{d:"M18 20V4",key:"o2hl4u"}]]),lw=i("headphone-off",[["path",{d:"M21 14h-1.343",key:"1jdnxi"}],["path",{d:"M9.128 3.47A9 9 0 0 1 21 12v3.343",key:"6kipu2"}],["path",{d:"m2 2 20 20",key:"1ooewy"}],["path",{d:"M20.414 20.414A2 2 0 0 1 19 21h-1a2 2 0 0 1-2-2v-3",key:"9x50f4"}],["path",{d:"M3 14h3a2 2 0 0 1 2 2v3a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-7a9 9 0 0 1 2.636-6.364",key:"1bkxnm"}]]),lx=i("headphones",[["path",{d:"M3 14h3a2 2 0 0 1 2 2v3a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-7a9 9 0 0 1 18 0v7a2 2 0 0 1-2 2h-1a2 2 0 0 1-2-2v-3a2 2 0 0 1 2-2h3",key:"1xhozi"}]]),ly=i("headset",[["path",{d:"M3 11h3a2 2 0 0 1 2 2v3a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-5Zm0 0a9 9 0 1 1 18 0m0 0v5a2 2 0 0 1-2 2h-1a2 2 0 0 1-2-2v-3a2 2 0 0 1 2-2h3Z",key:"12oyoe"}],["path",{d:"M21 16v2a4 4 0 0 1-4 4h-5",key:"1x7m43"}]]),lz=i("heart-crack",[["path",{d:"M19 14c1.49-1.46 3-3.21 3-5.5A5.5 5.5 0 0 0 16.5 3c-1.76 0-3 .5-4.5 2-1.5-1.5-2.74-2-4.5-2A5.5 5.5 0 0 0 2 8.5c0 2.3 1.5 4.05 3 5.5l7 7Z",key:"c3ymky"}],["path",{d:"m12 13-1-1 2-2-3-3 2-2",key:"xjdxli"}]]),lA=i("heart-handshake",[["path",{d:"M19 14c1.49-1.46 3-3.21 3-5.5A5.5 5.5 0 0 0 16.5 3c-1.76 0-3 .5-4.5 2-1.5-1.5-2.74-2-4.5-2A5.5 5.5 0 0 0 2 8.5c0 2.3 1.5 4.05 3 5.5l7 7Z",key:"c3ymky"}],["path",{d:"M12 5 9.04 7.96a2.17 2.17 0 0 0 0 3.08c.82.82 2.13.85 3 .07l2.07-1.9a2.82 2.82 0 0 1 3.79 0l2.96 2.66",key:"4oyue0"}],["path",{d:"m18 15-2-2",key:"60u0ii"}],["path",{d:"m15 18-2-2",key:"6p76be"}]]),lB=i("heart-off",[["line",{x1:"2",y1:"2",x2:"22",y2:"22",key:"1w4vcy"}],["path",{d:"M16.5 16.5 12 21l-7-7c-1.5-1.45-3-3.2-3-5.5a5.5 5.5 0 0 1 2.14-4.35",key:"3mpagl"}],["path",{d:"M8.76 3.1c1.15.22 2.13.78 3.24 1.9 1.5-1.5 2.74-2 4.5-2A5.5 5.5 0 0 1 22 8.5c0 2.12-1.3 3.78-2.67 5.17",key:"1gh3v3"}]]),lC=i("heart-minus",[["path",{d:"M13.5 19.5 12 21l-7-7c-1.5-1.45-3-3.2-3-5.5A5.5 5.5 0 0 1 7.5 3c1.76 0 3 .5 4.5 2 1.5-1.5 2.74-2 4.5-2a5.5 5.5 0 0 1 5.402 6.5",key:"vd0vy5"}],["path",{d:"M15 15h6",key:"1u4692"}]]),lD=i("heart-plus",[["path",{d:"M13.5 19.5 12 21l-7-7c-1.5-1.45-3-3.2-3-5.5A5.5 5.5 0 0 1 7.5 3c1.76 0 3 .5 4.5 2 1.5-1.5 2.74-2 4.5-2a5.5 5.5 0 0 1 5.402 6.5",key:"vd0vy5"}],["path",{d:"M15 15h6",key:"1u4692"}],["path",{d:"M18 12v6",key:"1houu1"}]]),lE=i("heart-pulse",[["path",{d:"M19 14c1.49-1.46 3-3.21 3-5.5A5.5 5.5 0 0 0 16.5 3c-1.76 0-3 .5-4.5 2-1.5-1.5-2.74-2-4.5-2A5.5 5.5 0 0 0 2 8.5c0 2.3 1.5 4.05 3 5.5l7 7Z",key:"c3ymky"}],["path",{d:"M3.22 12H9.5l.5-1 2 4.5 2-7 1.5 3.5h5.27",key:"1uw2ng"}]]),lF=i("heart",[["path",{d:"M19 14c1.49-1.46 3-3.21 3-5.5A5.5 5.5 0 0 0 16.5 3c-1.76 0-3 .5-4.5 2-1.5-1.5-2.74-2-4.5-2A5.5 5.5 0 0 0 2 8.5c0 2.3 1.5 4.05 3 5.5l7 7Z",key:"c3ymky"}]]),lG=i("heater",[["path",{d:"M11 8c2-3-2-3 0-6",key:"1ldv5m"}],["path",{d:"M15.5 8c2-3-2-3 0-6",key:"1otqoz"}],["path",{d:"M6 10h.01",key:"1lbq93"}],["path",{d:"M6 14h.01",key:"zudwn7"}],["path",{d:"M10 16v-4",key:"1c25yv"}],["path",{d:"M14 16v-4",key:"1dkbt8"}],["path",{d:"M18 16v-4",key:"1yg9me"}],["path",{d:"M20 6a2 2 0 0 1 2 2v10a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h3",key:"1ubg90"}],["path",{d:"M5 20v2",key:"1abpe8"}],["path",{d:"M19 20v2",key:"kqn6ft"}]]),lH=i("hexagon",[["path",{d:"M21 16V8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73l7 4a2 2 0 0 0 2 0l7-4A2 2 0 0 0 21 16z",key:"yt0hxn"}]]),lI=i("highlighter",[["path",{d:"m9 11-6 6v3h9l3-3",key:"1a3l36"}],["path",{d:"m22 12-4.6 4.6a2 2 0 0 1-2.8 0l-5.2-5.2a2 2 0 0 1 0-2.8L14 4",key:"14a9rk"}]]),lJ=i("history",[["path",{d:"M3 12a9 9 0 1 0 9-9 9.75 9.75 0 0 0-6.74 2.74L3 8",key:"1357e3"}],["path",{d:"M3 3v5h5",key:"1xhq8a"}],["path",{d:"M12 7v5l4 2",key:"1fdv2h"}]]),lK=i("hop-off",[["path",{d:"M10.82 16.12c1.69.6 3.91.79 5.18.85.28.01.53-.09.7-.27",key:"qyzcap"}],["path",{d:"M11.14 20.57c.52.24 2.44 1.12 4.08 1.37.46.06.86-.25.9-.71.12-1.52-.3-3.43-.5-4.28",key:"y078lb"}],["path",{d:"M16.13 21.05c1.65.63 3.68.84 4.87.91a.9.9 0 0 0 .7-.26",key:"1utre3"}],["path",{d:"M17.99 5.52a20.83 20.83 0 0 1 3.15 4.5.8.8 0 0 1-.68 1.13c-1.17.1-2.5.02-3.9-.25",key:"17o9hm"}],["path",{d:"M20.57 11.14c.24.52 1.12 2.44 1.37 4.08.04.3-.08.59-.31.75",key:"1d1n4p"}],["path",{d:"M4.93 4.93a10 10 0 0 0-.67 13.4c.35.43.96.4 1.17-.12.69-1.71 1.07-5.07 1.07-6.71 1.34.45 3.1.9 4.88.62a.85.85 0 0 0 .48-.24",key:"9uv3tt"}],["path",{d:"M5.52 17.99c1.05.95 2.91 2.42 4.5 3.15a.8.8 0 0 0 1.13-.68c.2-2.34-.33-5.3-1.57-8.28",key:"1292wz"}],["path",{d:"M8.35 2.68a10 10 0 0 1 9.98 1.58c.43.35.4.96-.12 1.17-1.5.6-4.3.98-6.07 1.05",key:"7ozu9p"}],["path",{d:"m2 2 20 20",key:"1ooewy"}]]),lL=i("hop",[["path",{d:"M10.82 16.12c1.69.6 3.91.79 5.18.85.55.03 1-.42.97-.97-.06-1.27-.26-3.5-.85-5.18",key:"18lxf1"}],["path",{d:"M11.5 6.5c1.64 0 5-.38 6.71-1.07.52-.2.55-.82.12-1.17A10 10 0 0 0 4.26 18.33c.35.43.96.4 1.17-.12.69-1.71 1.07-5.07 1.07-6.71 1.34.45 3.1.9 4.88.62a.88.88 0 0 0 .73-.74c.3-2.14-.15-3.5-.61-4.88",key:"vtfxrw"}],["path",{d:"M15.62 16.95c.2.85.62 2.76.5 4.28a.77.77 0 0 1-.9.7 16.64 16.64 0 0 1-4.08-1.36",key:"13hl71"}],["path",{d:"M16.13 21.05c1.65.63 3.68.84 4.87.91a.9.9 0 0 0 .96-.96 17.68 17.68 0 0 0-.9-4.87",key:"1sl8oj"}],["path",{d:"M16.94 15.62c.86.2 2.77.62 4.29.5a.77.77 0 0 0 .7-.9 16.64 16.64 0 0 0-1.36-4.08",key:"19c6kt"}],["path",{d:"M17.99 5.52a20.82 20.82 0 0 1 3.15 4.5.8.8 0 0 1-.68 1.13c-2.33.2-5.3-.32-8.27-1.57",key:"85ghs3"}],["path",{d:"M4.93 4.93 3 3a.7.7 0 0 1 0-1",key:"x087yj"}],["path",{d:"M9.58 12.18c1.24 2.98 1.77 5.95 1.57 8.28a.8.8 0 0 1-1.13.68 20.82 20.82 0 0 1-4.5-3.15",key:"11xdqo"}]]),lM=i("hospital",[["path",{d:"M12 6v4",key:"16clxf"}],["path",{d:"M14 14h-4",key:"esezmu"}],["path",{d:"M14 18h-4",key:"16mqa2"}],["path",{d:"M14 8h-4",key:"z8ypaz"}],["path",{d:"M18 12h2a2 2 0 0 1 2 2v6a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2v-9a2 2 0 0 1 2-2h2",key:"b1k337"}],["path",{d:"M18 22V4a2 2 0 0 0-2-2H8a2 2 0 0 0-2 2v18",key:"16g51d"}]]),lN=i("hotel",[["path",{d:"M10 22v-6.57",key:"1wmca3"}],["path",{d:"M12 11h.01",key:"z322tv"}],["path",{d:"M12 7h.01",key:"1ivr5q"}],["path",{d:"M14 15.43V22",key:"1q2vjd"}],["path",{d:"M15 16a5 5 0 0 0-6 0",key:"o9wqvi"}],["path",{d:"M16 11h.01",key:"xkw8gn"}],["path",{d:"M16 7h.01",key:"1kdx03"}],["path",{d:"M8 11h.01",key:"1dfujw"}],["path",{d:"M8 7h.01",key:"1vti4s"}],["rect",{x:"4",y:"2",width:"16",height:"20",rx:"2",key:"1uxh74"}]]),lO=i("hourglass",[["path",{d:"M5 22h14",key:"ehvnwv"}],["path",{d:"M5 2h14",key:"pdyrp9"}],["path",{d:"M17 22v-4.172a2 2 0 0 0-.586-1.414L12 12l-4.414 4.414A2 2 0 0 0 7 17.828V22",key:"1d314k"}],["path",{d:"M7 2v4.172a2 2 0 0 0 .586 1.414L12 12l4.414-4.414A2 2 0 0 0 17 6.172V2",key:"1vvvr6"}]]),lP=i("house-plug",[["path",{d:"M10 12V8.964",key:"1vll13"}],["path",{d:"M14 12V8.964",key:"1x3qvg"}],["path",{d:"M15 12a1 1 0 0 1 1 1v2a2 2 0 0 1-2 2h-4a2 2 0 0 1-2-2v-2a1 1 0 0 1 1-1z",key:"ppykja"}],["path",{d:"M8.5 21H5a2 2 0 0 1-2-2v-9a2 2 0 0 1 .709-1.528l7-5.999a2 2 0 0 1 2.582 0l7 5.999A2 2 0 0 1 21 10v9a2 2 0 0 1-2 2h-5a2 2 0 0 1-2-2v-2",key:"1gvg2z"}]]),lQ=i("house-plus",[["path",{d:"M12.662 21H5a2 2 0 0 1-2-2v-9a2 2 0 0 1 .709-1.528l7-5.999a2 2 0 0 1 2.582 0l7 5.999A2 2 0 0 1 21 10v2.475",key:"uubd2h"}],["path",{d:"M14.959 12.717A1 1 0 0 0 14 12h-4a1 1 0 0 0-1 1v8",key:"p7f341"}],["path",{d:"M15 18h6",key:"3b3c90"}],["path",{d:"M18 15v6",key:"9wciyi"}]]),lR=i("house",[["path",{d:"M15 21v-8a1 1 0 0 0-1-1h-4a1 1 0 0 0-1 1v8",key:"5wwlr5"}],["path",{d:"M3 10a2 2 0 0 1 .709-1.528l7-5.999a2 2 0 0 1 2.582 0l7 5.999A2 2 0 0 1 21 10v9a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2z",key:"1d0kgt"}]]),lS=i("house-wifi",[["path",{d:"M9.5 13.866a4 4 0 0 1 5 .01",key:"1wy54i"}],["path",{d:"M12 17h.01",key:"p32p05"}],["path",{d:"M3 10a2 2 0 0 1 .709-1.528l7-5.999a2 2 0 0 1 2.582 0l7 5.999A2 2 0 0 1 21 10v9a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2z",key:"1d0kgt"}],["path",{d:"M7 10.754a8 8 0 0 1 10 0",key:"exoy2g"}]]),lT=i("ice-cream-bowl",[["path",{d:"M12 17c5 0 8-2.69 8-6H4c0 3.31 3 6 8 6m-4 4h8m-4-3v3M5.14 11a3.5 3.5 0 1 1 6.71 0",key:"1uxfcu"}],["path",{d:"M12.14 11a3.5 3.5 0 1 1 6.71 0",key:"4k3m1s"}],["path",{d:"M15.5 6.5a3.5 3.5 0 1 0-7 0",key:"zmuahr"}]]),lU=i("ice-cream-cone",[["path",{d:"m7 11 4.08 10.35a1 1 0 0 0 1.84 0L17 11",key:"1v6356"}],["path",{d:"M17 7A5 5 0 0 0 7 7",key:"151p3v"}],["path",{d:"M17 7a2 2 0 0 1 0 4H7a2 2 0 0 1 0-4",key:"1sdaij"}]]),lV=i("id-card-lanyard",[["path",{d:"M13.5 8h-3",key:"xvov4w"}],["path",{d:"m15 2-1 2h3a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2h3",key:"16uttc"}],["path",{d:"M16.899 22A5 5 0 0 0 7.1 22",key:"1d0ppr"}],["path",{d:"m9 2 3 6",key:"1o7bd9"}],["circle",{cx:"12",cy:"15",r:"3",key:"g36mzq"}]]),lW=i("id-card",[["path",{d:"M16 10h2",key:"8sgtl7"}],["path",{d:"M16 14h2",key:"epxaof"}],["path",{d:"M6.17 15a3 3 0 0 1 5.66 0",key:"n6f512"}],["circle",{cx:"9",cy:"11",r:"2",key:"yxgjnd"}],["rect",{x:"2",y:"5",width:"20",height:"14",rx:"2",key:"qneu4z"}]]),lX=i("image-down",[["path",{d:"M10.3 21H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2v10l-3.1-3.1a2 2 0 0 0-2.814.014L6 21",key:"9csbqa"}],["path",{d:"m14 19 3 3v-5.5",key:"9ldu5r"}],["path",{d:"m17 22 3-3",key:"1nkfve"}],["circle",{cx:"9",cy:"9",r:"2",key:"af1f0g"}]]),lY=i("image-minus",[["path",{d:"M21 9v10a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h7",key:"m87ecr"}],["line",{x1:"16",x2:"22",y1:"5",y2:"5",key:"ez7e4s"}],["circle",{cx:"9",cy:"9",r:"2",key:"af1f0g"}],["path",{d:"m21 15-3.086-3.086a2 2 0 0 0-2.828 0L6 21",key:"1xmnt7"}]]),lZ=i("image-off",[["line",{x1:"2",x2:"22",y1:"2",y2:"22",key:"a6p6uj"}],["path",{d:"M10.41 10.41a2 2 0 1 1-2.83-2.83",key:"1bzlo9"}],["line",{x1:"13.5",x2:"6",y1:"13.5",y2:"21",key:"1q0aeu"}],["line",{x1:"18",x2:"21",y1:"12",y2:"15",key:"5mozeu"}],["path",{d:"M3.59 3.59A1.99 1.99 0 0 0 3 5v14a2 2 0 0 0 2 2h14c.55 0 1.052-.22 1.41-.59",key:"mmje98"}],["path",{d:"M21 15V5a2 2 0 0 0-2-2H9",key:"43el77"}]]),l$=i("image-play",[["path",{d:"m11 16-5 5",key:"j5f7ct"}],["path",{d:"M11 21H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2v6.5",key:"7s81lt"}],["path",{d:"M15.765 22a.5.5 0 0 1-.765-.424V13.38a.5.5 0 0 1 .765-.424l5.878 3.674a1 1 0 0 1 0 1.696z",key:"1omb6s"}],["circle",{cx:"9",cy:"9",r:"2",key:"af1f0g"}]]),l_=i("image-plus",[["path",{d:"M16 5h6",key:"1vod17"}],["path",{d:"M19 2v6",key:"4bpg5p"}],["path",{d:"M21 11.5V19a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h7.5",key:"1ue2ih"}],["path",{d:"m21 15-3.086-3.086a2 2 0 0 0-2.828 0L6 21",key:"1xmnt7"}],["circle",{cx:"9",cy:"9",r:"2",key:"af1f0g"}]]),l0=i("image-up",[["path",{d:"M10.3 21H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2v10l-3.1-3.1a2 2 0 0 0-2.814.014L6 21",key:"9csbqa"}],["path",{d:"m14 19.5 3-3 3 3",key:"9vmjn0"}],["path",{d:"M17 22v-5.5",key:"1aa6fl"}],["circle",{cx:"9",cy:"9",r:"2",key:"af1f0g"}]]),l1=i("image-upscale",[["path",{d:"M16 3h5v5",key:"1806ms"}],["path",{d:"M17 21h2a2 2 0 0 0 2-2",key:"130fy9"}],["path",{d:"M21 12v3",key:"1wzk3p"}],["path",{d:"m21 3-5 5",key:"1g5oa7"}],["path",{d:"M3 7V5a2 2 0 0 1 2-2",key:"kk3yz1"}],["path",{d:"m5 21 4.144-4.144a1.21 1.21 0 0 1 1.712 0L13 19",key:"fyekpt"}],["path",{d:"M9 3h3",key:"d52fa"}],["rect",{x:"3",y:"11",width:"10",height:"10",rx:"1",key:"1wpmix"}]]),l2=i("image",[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",ry:"2",key:"1m3agn"}],["circle",{cx:"9",cy:"9",r:"2",key:"af1f0g"}],["path",{d:"m21 15-3.086-3.086a2 2 0 0 0-2.828 0L6 21",key:"1xmnt7"}]]),l3=i("images",[["path",{d:"M18 22H4a2 2 0 0 1-2-2V6",key:"pblm9e"}],["path",{d:"m22 13-1.296-1.296a2.41 2.41 0 0 0-3.408 0L11 18",key:"nf6bnh"}],["circle",{cx:"12",cy:"8",r:"2",key:"1822b1"}],["rect",{width:"16",height:"16",x:"6",y:"2",rx:"2",key:"12espp"}]]),l4=i("import",[["path",{d:"M12 3v12",key:"1x0j5s"}],["path",{d:"m8 11 4 4 4-4",key:"1dohi6"}],["path",{d:"M8 5H4a2 2 0 0 0-2 2v10a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2V7a2 2 0 0 0-2-2h-4",key:"1ywtjm"}]]),l5=i("inbox",[["polyline",{points:"22 12 16 12 14 15 10 15 8 12 2 12",key:"o97t9d"}],["path",{d:"M5.45 5.11 2 12v6a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2v-6l-3.45-6.89A2 2 0 0 0 16.76 4H7.24a2 2 0 0 0-1.79 1.11z",key:"oot6mr"}]]),l6=i("indent-decrease",[["path",{d:"M21 12H11",key:"wd7e0v"}],["path",{d:"M21 18H11",key:"4wu86t"}],["path",{d:"M21 6H11",key:"6dy1d6"}],["path",{d:"m7 8-4 4 4 4",key:"o5hrat"}]]),l7=i("indent-increase",[["path",{d:"M21 12H11",key:"wd7e0v"}],["path",{d:"M21 18H11",key:"4wu86t"}],["path",{d:"M21 6H11",key:"6dy1d6"}],["path",{d:"m3 8 4 4-4 4",key:"1a3j6y"}]]),l8=i("indian-rupee",[["path",{d:"M6 3h12",key:"ggurg9"}],["path",{d:"M6 8h12",key:"6g4wlu"}],["path",{d:"m6 13 8.5 8",key:"u1kupk"}],["path",{d:"M6 13h3",key:"wdp6ag"}],["path",{d:"M9 13c6.667 0 6.667-10 0-10",key:"1nkvk2"}]]),l9=i("infinity",[["path",{d:"M6 16c5 0 7-8 12-8a4 4 0 0 1 0 8c-5 0-7-8-12-8a4 4 0 1 0 0 8",key:"18ogeb"}]]),ma=i("info",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"M12 16v-4",key:"1dtifu"}],["path",{d:"M12 8h.01",key:"e9boi3"}]]),mb=i("instagram",[["rect",{width:"20",height:"20",x:"2",y:"2",rx:"5",ry:"5",key:"2e1cvw"}],["path",{d:"M16 11.37A4 4 0 1 1 12.63 8 4 4 0 0 1 16 11.37z",key:"9exkf1"}],["line",{x1:"17.5",x2:"17.51",y1:"6.5",y2:"6.5",key:"r4j83e"}]]),mc=i("inspection-panel",[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",key:"afitv7"}],["path",{d:"M7 7h.01",key:"7u93v4"}],["path",{d:"M17 7h.01",key:"14a9sn"}],["path",{d:"M7 17h.01",key:"19xn7k"}],["path",{d:"M17 17h.01",key:"1sd3ek"}]]),md=i("italic",[["line",{x1:"19",x2:"10",y1:"4",y2:"4",key:"15jd3p"}],["line",{x1:"14",x2:"5",y1:"20",y2:"20",key:"bu0au3"}],["line",{x1:"15",x2:"9",y1:"4",y2:"20",key:"uljnxc"}]]),me=i("iteration-ccw",[["path",{d:"m16 14 4 4-4 4",key:"hkso8o"}],["path",{d:"M20 10a8 8 0 1 0-8 8h8",key:"1bik7b"}]]),mf=i("iteration-cw",[["path",{d:"M4 10a8 8 0 1 1 8 8H4",key:"svv66n"}],["path",{d:"m8 22-4-4 4-4",key:"6g7gki"}]]),mg=i("japanese-yen",[["path",{d:"M12 9.5V21m0-11.5L6 3m6 6.5L18 3",key:"2ej80x"}],["path",{d:"M6 15h12",key:"1hwgt5"}],["path",{d:"M6 11h12",key:"wf4gp6"}]]),mh=i("joystick",[["path",{d:"M21 17a2 2 0 0 0-2-2H5a2 2 0 0 0-2 2v2a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-2Z",key:"jg2n2t"}],["path",{d:"M6 15v-2",key:"gd6mvg"}],["path",{d:"M12 15V9",key:"8c7uyn"}],["circle",{cx:"12",cy:"6",r:"3",key:"1gm2ql"}]]),mi=i("kanban",[["path",{d:"M6 5v11",key:"mdvv1e"}],["path",{d:"M12 5v6",key:"14ar3b"}],["path",{d:"M18 5v14",key:"7ji314"}]]),mj=i("key-round",[["path",{d:"M2.586 17.414A2 2 0 0 0 2 18.828V21a1 1 0 0 0 1 1h3a1 1 0 0 0 1-1v-1a1 1 0 0 1 1-1h1a1 1 0 0 0 1-1v-1a1 1 0 0 1 1-1h.172a2 2 0 0 0 1.414-.586l.814-.814a6.5 6.5 0 1 0-4-4z",key:"1s6t7t"}],["circle",{cx:"16.5",cy:"7.5",r:".5",fill:"currentColor",key:"w0ekpg"}]]),mk=i("key-square",[["path",{d:"M12.4 2.7a2.5 2.5 0 0 1 3.4 0l5.5 5.5a2.5 2.5 0 0 1 0 3.4l-3.7 3.7a2.5 2.5 0 0 1-3.4 0L8.7 9.8a2.5 2.5 0 0 1 0-3.4z",key:"165ttr"}],["path",{d:"m14 7 3 3",key:"1r5n42"}],["path",{d:"m9.4 10.6-6.814 6.814A2 2 0 0 0 2 18.828V21a1 1 0 0 0 1 1h3a1 1 0 0 0 1-1v-1a1 1 0 0 1 1-1h1a1 1 0 0 0 1-1v-1a1 1 0 0 1 1-1h.172a2 2 0 0 0 1.414-.586l.814-.814",key:"1ubxi2"}]]),ml=i("key",[["path",{d:"m15.5 7.5 2.3 2.3a1 1 0 0 0 1.4 0l2.1-2.1a1 1 0 0 0 0-1.4L19 4",key:"g0fldk"}],["path",{d:"m21 2-9.6 9.6",key:"1j0ho8"}],["circle",{cx:"7.5",cy:"15.5",r:"5.5",key:"yqb3hr"}]]),mm=i("keyboard-off",[["path",{d:"M 20 4 A2 2 0 0 1 22 6",key:"1g1fkt"}],["path",{d:"M 22 6 L 22 16.41",key:"1qjg3w"}],["path",{d:"M 7 16 L 16 16",key:"n0yqwb"}],["path",{d:"M 9.69 4 L 20 4",key:"kbpcgx"}],["path",{d:"M14 8h.01",key:"1primd"}],["path",{d:"M18 8h.01",key:"emo2bl"}],["path",{d:"m2 2 20 20",key:"1ooewy"}],["path",{d:"M20 20H4a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2",key:"s23sx2"}],["path",{d:"M6 8h.01",key:"x9i8wu"}],["path",{d:"M8 12h.01",key:"czm47f"}]]),mn=i("keyboard-music",[["rect",{width:"20",height:"16",x:"2",y:"4",rx:"2",key:"18n3k1"}],["path",{d:"M6 8h4",key:"utf9t1"}],["path",{d:"M14 8h.01",key:"1primd"}],["path",{d:"M18 8h.01",key:"emo2bl"}],["path",{d:"M2 12h20",key:"9i4pu4"}],["path",{d:"M6 12v4",key:"dy92yo"}],["path",{d:"M10 12v4",key:"1fxnav"}],["path",{d:"M14 12v4",key:"1hft58"}],["path",{d:"M18 12v4",key:"tjjnbz"}]]),mo=i("lamp-ceiling",[["path",{d:"M12 2v5",key:"nd4vlx"}],["path",{d:"M14.829 15.998a3 3 0 1 1-5.658 0",key:"1pybiy"}],["path",{d:"M20.92 14.606A1 1 0 0 1 20 16H4a1 1 0 0 1-.92-1.394l3-7A1 1 0 0 1 7 7h10a1 1 0 0 1 .92.606z",key:"ma1wor"}]]),mp=i("keyboard",[["path",{d:"M10 8h.01",key:"1r9ogq"}],["path",{d:"M12 12h.01",key:"1mp3jc"}],["path",{d:"M14 8h.01",key:"1primd"}],["path",{d:"M16 12h.01",key:"1l6xoz"}],["path",{d:"M18 8h.01",key:"emo2bl"}],["path",{d:"M6 8h.01",key:"x9i8wu"}],["path",{d:"M7 16h10",key:"wp8him"}],["path",{d:"M8 12h.01",key:"czm47f"}],["rect",{width:"20",height:"16",x:"2",y:"4",rx:"2",key:"18n3k1"}]]),mq=i("lamp-desk",[["path",{d:"M10.293 2.293a1 1 0 0 1 1.414 0l2.5 2.5 5.994 1.227a1 1 0 0 1 .506 1.687l-7 7a1 1 0 0 1-1.687-.506l-1.227-5.994-2.5-2.5a1 1 0 0 1 0-1.414z",key:"sb8slu"}],["path",{d:"m14.207 4.793-3.414 3.414",key:"m2x3oj"}],["path",{d:"M3 20a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v1a1 1 0 0 1-1 1H4a1 1 0 0 1-1-1z",key:"8b3myj"}],["path",{d:"m9.086 6.5-4.793 4.793a1 1 0 0 0-.18 1.17L7 18",key:"43s6cu"}]]),mr=i("lamp-floor",[["path",{d:"M12 10v12",key:"6ubwww"}],["path",{d:"M17.929 7.629A1 1 0 0 1 17 9H7a1 1 0 0 1-.928-1.371l2-5A1 1 0 0 1 9 2h6a1 1 0 0 1 .928.629z",key:"1o95gh"}],["path",{d:"M9 22h6",key:"1rlq3v"}]]),ms=i("lamp-wall-down",[["path",{d:"M19.929 18.629A1 1 0 0 1 19 20H9a1 1 0 0 1-.928-1.371l2-5A1 1 0 0 1 11 13h6a1 1 0 0 1 .928.629z",key:"u4w2d7"}],["path",{d:"M6 3a2 2 0 0 1 2 2v2a2 2 0 0 1-2 2H5a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1z",key:"15356w"}],["path",{d:"M8 6h4a2 2 0 0 1 2 2v5",key:"1m6m7x"}]]),mt=i("lamp-wall-up",[["path",{d:"M19.929 9.629A1 1 0 0 1 19 11H9a1 1 0 0 1-.928-1.371l2-5A1 1 0 0 1 11 4h6a1 1 0 0 1 .928.629z",key:"1uvrbf"}],["path",{d:"M6 15a2 2 0 0 1 2 2v2a2 2 0 0 1-2 2H5a1 1 0 0 1-1-1v-4a1 1 0 0 1 1-1z",key:"154r2a"}],["path",{d:"M8 18h4a2 2 0 0 0 2-2v-5",key:"z9mbu0"}]]),mu=i("lamp",[["path",{d:"M12 12v6",key:"3ahymv"}],["path",{d:"M4.077 10.615A1 1 0 0 0 5 12h14a1 1 0 0 0 .923-1.385l-3.077-7.384A2 2 0 0 0 15 2H9a2 2 0 0 0-1.846 1.23Z",key:"1l7kg2"}],["path",{d:"M8 20a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v1a1 1 0 0 1-1 1H9a1 1 0 0 1-1-1z",key:"1mmzpi"}]]),mv=i("land-plot",[["path",{d:"m12 8 6-3-6-3v10",key:"mvpnpy"}],["path",{d:"m8 11.99-5.5 3.14a1 1 0 0 0 0 1.74l8.5 4.86a2 2 0 0 0 2 0l8.5-4.86a1 1 0 0 0 0-1.74L16 12",key:"ek95tt"}],["path",{d:"m6.49 12.85 11.02 6.3",key:"1kt42w"}],["path",{d:"M17.51 12.85 6.5 19.15",key:"v55bdg"}]]),mw=i("landmark",[["path",{d:"M10 18v-7",key:"wt116b"}],["path",{d:"M11.12 2.198a2 2 0 0 1 1.76.006l7.866 3.847c.476.233.31.949-.22.949H3.474c-.53 0-.695-.716-.22-.949z",key:"1m329m"}],["path",{d:"M14 18v-7",key:"vav6t3"}],["path",{d:"M18 18v-7",key:"aexdmj"}],["path",{d:"M3 22h18",key:"8prr45"}],["path",{d:"M6 18v-7",key:"1ivflk"}]]),mx=i("languages",[["path",{d:"m5 8 6 6",key:"1wu5hv"}],["path",{d:"m4 14 6-6 2-3",key:"1k1g8d"}],["path",{d:"M2 5h12",key:"or177f"}],["path",{d:"M7 2h1",key:"1t2jsx"}],["path",{d:"m22 22-5-10-5 10",key:"don7ne"}],["path",{d:"M14 18h6",key:"1m8k6r"}]]),my=i("laptop-minimal-check",[["path",{d:"M2 20h20",key:"owomy5"}],["path",{d:"m9 10 2 2 4-4",key:"1gnqz4"}],["rect",{x:"3",y:"4",width:"18",height:"12",rx:"2",key:"8ur36m"}]]),mz=i("laptop-minimal",[["rect",{width:"18",height:"12",x:"3",y:"4",rx:"2",ry:"2",key:"1qhy41"}],["line",{x1:"2",x2:"22",y1:"20",y2:"20",key:"ni3hll"}]]),mA=i("laptop",[["path",{d:"M18 5a2 2 0 0 1 2 2v8.526a2 2 0 0 0 .212.897l1.068 2.127a1 1 0 0 1-.9 1.45H3.62a1 1 0 0 1-.9-1.45l1.068-2.127A2 2 0 0 0 4 15.526V7a2 2 0 0 1 2-2z",key:"1pdavp"}],["path",{d:"M20.054 15.987H3.946",key:"14rxg9"}]]),mB=i("lasso-select",[["path",{d:"M7 22a5 5 0 0 1-2-4",key:"umushi"}],["path",{d:"M7 16.93c.96.43 1.96.74 2.99.91",key:"ybbtv3"}],["path",{d:"M3.34 14A6.8 6.8 0 0 1 2 10c0-4.42 4.48-8 10-8s10 3.58 10 8a7.19 7.19 0 0 1-.33 2",key:"gt5e1w"}],["path",{d:"M5 18a2 2 0 1 0 0-4 2 2 0 0 0 0 4z",key:"bq3ynw"}],["path",{d:"M14.33 22h-.09a.35.35 0 0 1-.24-.32v-10a.34.34 0 0 1 .33-.34c.08 0 .15.03.21.08l7.34 6a.33.33 0 0 1-.21.59h-4.49l-2.57 3.85a.35.35 0 0 1-.28.14z",key:"72q637"}]]),mC=i("lasso",[["path",{d:"M7 22a5 5 0 0 1-2-4",key:"umushi"}],["path",{d:"M3.3 14A6.8 6.8 0 0 1 2 10c0-4.4 4.5-8 10-8s10 3.6 10 8-4.5 8-10 8a12 12 0 0 1-5-1",key:"146dds"}],["path",{d:"M5 18a2 2 0 1 0 0-4 2 2 0 0 0 0 4z",key:"bq3ynw"}]]),mD=i("layers-2",[["path",{d:"M13 13.74a2 2 0 0 1-2 0L2.5 8.87a1 1 0 0 1 0-1.74L11 2.26a2 2 0 0 1 2 0l8.5 4.87a1 1 0 0 1 0 1.74z",key:"15q6uc"}],["path",{d:"m20 14.285 1.5.845a1 1 0 0 1 0 1.74L13 21.74a2 2 0 0 1-2 0l-8.5-4.87a1 1 0 0 1 0-1.74l1.5-.845",key:"byia6g"}]]),mE=i("laugh",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"M18 13a6 6 0 0 1-6 5 6 6 0 0 1-6-5h12Z",key:"b2q4dd"}],["line",{x1:"9",x2:"9.01",y1:"9",y2:"9",key:"yxxnd0"}],["line",{x1:"15",x2:"15.01",y1:"9",y2:"9",key:"1p4y9e"}]]),mF=i("layers",[["path",{d:"M12.83 2.18a2 2 0 0 0-1.66 0L2.6 6.08a1 1 0 0 0 0 1.83l8.58 3.91a2 2 0 0 0 1.66 0l8.58-3.9a1 1 0 0 0 0-1.83z",key:"zw3jo"}],["path",{d:"M2 12a1 1 0 0 0 .58.91l8.6 3.91a2 2 0 0 0 1.65 0l8.58-3.9A1 1 0 0 0 22 12",key:"1wduqc"}],["path",{d:"M2 17a1 1 0 0 0 .58.91l8.6 3.91a2 2 0 0 0 1.65 0l8.58-3.9A1 1 0 0 0 22 17",key:"kqbvx6"}]]),mG=i("layout-dashboard",[["rect",{width:"7",height:"9",x:"3",y:"3",rx:"1",key:"10lvy0"}],["rect",{width:"7",height:"5",x:"14",y:"3",rx:"1",key:"16une8"}],["rect",{width:"7",height:"9",x:"14",y:"12",rx:"1",key:"1hutg5"}],["rect",{width:"7",height:"5",x:"3",y:"16",rx:"1",key:"ldoo1y"}]]),mH=i("layout-list",[["rect",{width:"7",height:"7",x:"3",y:"3",rx:"1",key:"1g98yp"}],["rect",{width:"7",height:"7",x:"3",y:"14",rx:"1",key:"1bb6yr"}],["path",{d:"M14 4h7",key:"3xa0d5"}],["path",{d:"M14 9h7",key:"1icrd9"}],["path",{d:"M14 15h7",key:"1mj8o2"}],["path",{d:"M14 20h7",key:"11slyb"}]]),mI=i("layout-grid",[["rect",{width:"7",height:"7",x:"3",y:"3",rx:"1",key:"1g98yp"}],["rect",{width:"7",height:"7",x:"14",y:"3",rx:"1",key:"6d4xhi"}],["rect",{width:"7",height:"7",x:"14",y:"14",rx:"1",key:"nxv5o0"}],["rect",{width:"7",height:"7",x:"3",y:"14",rx:"1",key:"1bb6yr"}]]),mJ=i("layout-panel-left",[["rect",{width:"7",height:"18",x:"3",y:"3",rx:"1",key:"2obqm"}],["rect",{width:"7",height:"7",x:"14",y:"3",rx:"1",key:"6d4xhi"}],["rect",{width:"7",height:"7",x:"14",y:"14",rx:"1",key:"nxv5o0"}]]),mK=i("layout-panel-top",[["rect",{width:"18",height:"7",x:"3",y:"3",rx:"1",key:"f1a2em"}],["rect",{width:"7",height:"7",x:"3",y:"14",rx:"1",key:"1bb6yr"}],["rect",{width:"7",height:"7",x:"14",y:"14",rx:"1",key:"nxv5o0"}]]),mL=i("layout-template",[["rect",{width:"18",height:"7",x:"3",y:"3",rx:"1",key:"f1a2em"}],["rect",{width:"9",height:"7",x:"3",y:"14",rx:"1",key:"jqznyg"}],["rect",{width:"5",height:"7",x:"16",y:"14",rx:"1",key:"q5h2i8"}]]),mM=i("leaf",[["path",{d:"M11 20A7 7 0 0 1 9.8 6.1C15.5 5 17 4.48 19 2c1 2 2 4.18 2 8 0 5.5-4.78 10-10 10Z",key:"nnexq3"}],["path",{d:"M2 21c0-3 1.85-5.36 5.08-6C9.5 14.52 12 13 13 12",key:"mt58a7"}]]),mN=i("leafy-green",[["path",{d:"M2 22c1.25-.987 2.27-1.975 3.9-2.2a5.56 5.56 0 0 1 3.8 1.5 4 4 0 0 0 6.187-2.353 3.5 3.5 0 0 0 3.69-5.116A3.5 3.5 0 0 0 20.95 8 3.5 3.5 0 1 0 16 3.05a3.5 3.5 0 0 0-5.831 1.373 3.5 3.5 0 0 0-5.116 3.69 4 4 0 0 0-2.348 6.155C3.499 15.42 4.409 16.712 4.2 18.1 3.926 19.743 3.014 20.732 2 22",key:"1134nt"}],["path",{d:"M2 22 17 7",key:"1q7jp2"}]]),mO=i("lectern",[["path",{d:"M16 12h3a2 2 0 0 0 1.902-1.38l1.056-3.333A1 1 0 0 0 21 6H3a1 1 0 0 0-.958 1.287l1.056 3.334A2 2 0 0 0 5 12h3",key:"13jjxg"}],["path",{d:"M18 6V3a1 1 0 0 0-1-1h-3",key:"1550fe"}],["rect",{width:"8",height:"12",x:"8",y:"10",rx:"1",key:"qmu8b6"}]]),mP=i("letter-text",[["path",{d:"M15 12h6",key:"upa0zy"}],["path",{d:"M15 6h6",key:"1jlkvy"}],["path",{d:"m3 13 3.553-7.724a.5.5 0 0 1 .894 0L11 13",key:"blevx4"}],["path",{d:"M3 18h18",key:"1h113x"}],["path",{d:"M3.92 11h6.16",key:"1bqo8m"}]]),mQ=i("library-big",[["rect",{width:"8",height:"18",x:"3",y:"3",rx:"1",key:"oynpb5"}],["path",{d:"M7 3v18",key:"bbkbws"}],["path",{d:"M20.4 18.9c.2.5-.1 1.1-.6 1.3l-1.9.7c-.5.2-1.1-.1-1.3-.6L11.1 5.1c-.2-.5.1-1.1.6-1.3l1.9-.7c.5-.2 1.1.1 1.3.6Z",key:"1qboyk"}]]),mR=i("library",[["path",{d:"m16 6 4 14",key:"ji33uf"}],["path",{d:"M12 6v14",key:"1n7gus"}],["path",{d:"M8 8v12",key:"1gg7y9"}],["path",{d:"M4 4v16",key:"6qkkli"}]]),mS=i("life-buoy",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"m4.93 4.93 4.24 4.24",key:"1ymg45"}],["path",{d:"m14.83 9.17 4.24-4.24",key:"1cb5xl"}],["path",{d:"m14.83 14.83 4.24 4.24",key:"q42g0n"}],["path",{d:"m9.17 14.83-4.24 4.24",key:"bqpfvv"}],["circle",{cx:"12",cy:"12",r:"4",key:"4exip2"}]]),mT=i("ligature",[["path",{d:"M14 12h2v8",key:"c1fccl"}],["path",{d:"M14 20h4",key:"lzx1xo"}],["path",{d:"M6 12h4",key:"a4o3ry"}],["path",{d:"M6 20h4",key:"1i6q5t"}],["path",{d:"M8 20V8a4 4 0 0 1 7.464-2",key:"wk9t6r"}]]),mU=i("lightbulb",[["path",{d:"M15 14c.2-1 .7-1.7 1.5-2.5 1-.9 1.5-2.2 1.5-3.5A6 6 0 0 0 6 8c0 1 .2 2.2 1.5 3.5.7.7 1.3 1.5 1.5 2.5",key:"1gvzjb"}],["path",{d:"M9 18h6",key:"x1upvd"}],["path",{d:"M10 22h4",key:"ceow96"}]]),mV=i("lightbulb-off",[["path",{d:"M16.8 11.2c.8-.9 1.2-2 1.2-3.2a6 6 0 0 0-9.3-5",key:"1fkcox"}],["path",{d:"m2 2 20 20",key:"1ooewy"}],["path",{d:"M6.3 6.3a4.67 4.67 0 0 0 1.2 5.2c.7.7 1.3 1.5 1.5 2.5",key:"10m8kw"}],["path",{d:"M9 18h6",key:"x1upvd"}],["path",{d:"M10 22h4",key:"ceow96"}]]),mW=i("line-squiggle",[["path",{d:"M7 3.5c5-2 7 2.5 3 4C1.5 10 2 15 5 16c5 2 9-10 14-7s.5 13.5-4 12c-5-2.5.5-11 6-2",key:"1lrphd"}]]),mX=i("link-2-off",[["path",{d:"M9 17H7A5 5 0 0 1 7 7",key:"10o201"}],["path",{d:"M15 7h2a5 5 0 0 1 4 8",key:"1d3206"}],["line",{x1:"8",x2:"12",y1:"12",y2:"12",key:"rvw6j4"}],["line",{x1:"2",x2:"22",y1:"2",y2:"22",key:"a6p6uj"}]]),mY=i("link-2",[["path",{d:"M9 17H7A5 5 0 0 1 7 7h2",key:"8i5ue5"}],["path",{d:"M15 7h2a5 5 0 1 1 0 10h-2",key:"1b9ql8"}],["line",{x1:"8",x2:"16",y1:"12",y2:"12",key:"1jonct"}]]),mZ=i("link",[["path",{d:"M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71",key:"1cjeqo"}],["path",{d:"M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71",key:"19qd67"}]]),m$=i("list-check",[["path",{d:"M11 18H3",key:"n3j2dh"}],["path",{d:"m15 18 2 2 4-4",key:"1szwhi"}],["path",{d:"M16 12H3",key:"1a2rj7"}],["path",{d:"M16 6H3",key:"1wxfjs"}]]),m_=i("linkedin",[["path",{d:"M16 8a6 6 0 0 1 6 6v7h-4v-7a2 2 0 0 0-2-2 2 2 0 0 0-2 2v7h-4v-7a6 6 0 0 1 6-6z",key:"c2jq9f"}],["rect",{width:"4",height:"12",x:"2",y:"9",key:"mk3on5"}],["circle",{cx:"4",cy:"4",r:"2",key:"bt5ra8"}]]),m0=i("list-checks",[["path",{d:"m3 17 2 2 4-4",key:"1jhpwq"}],["path",{d:"m3 7 2 2 4-4",key:"1obspn"}],["path",{d:"M13 6h8",key:"15sg57"}],["path",{d:"M13 12h8",key:"h98zly"}],["path",{d:"M13 18h8",key:"oe0vm4"}]]),m1=i("list-collapse",[["path",{d:"M10 12h11",key:"6m4ad9"}],["path",{d:"M10 18h11",key:"11hvi2"}],["path",{d:"M10 6h11",key:"c7qv1k"}],["path",{d:"m3 10 3-3-3-3",key:"i7pm08"}],["path",{d:"m3 20 3-3-3-3",key:"20gx1n"}]]),m2=i("list-end",[["path",{d:"M16 12H3",key:"1a2rj7"}],["path",{d:"M16 6H3",key:"1wxfjs"}],["path",{d:"M10 18H3",key:"13769t"}],["path",{d:"M21 6v10a2 2 0 0 1-2 2h-5",key:"ilrcs8"}],["path",{d:"m16 16-2 2 2 2",key:"kkc6pm"}]]),m3=i("list-filter-plus",[["path",{d:"M10 18h4",key:"1ulq68"}],["path",{d:"M11 6H3",key:"1u26ik"}],["path",{d:"M15 6h6",key:"1jlkvy"}],["path",{d:"M18 9V3",key:"xwwp7m"}],["path",{d:"M7 12h8",key:"7a1bxv"}]]),m4=i("list-filter",[["path",{d:"M3 6h18",key:"d0wm0j"}],["path",{d:"M7 12h10",key:"b7w52i"}],["path",{d:"M10 18h4",key:"1ulq68"}]]),m5=i("list-minus",[["path",{d:"M11 12H3",key:"51ecnj"}],["path",{d:"M16 6H3",key:"1wxfjs"}],["path",{d:"M16 18H3",key:"12xzn7"}],["path",{d:"M21 12h-6",key:"bt1uis"}]]),m6=i("list-music",[["path",{d:"M21 15V6",key:"h1cx4g"}],["path",{d:"M18.5 18a2.5 2.5 0 1 0 0-5 2.5 2.5 0 0 0 0 5Z",key:"8saifv"}],["path",{d:"M12 12H3",key:"18klou"}],["path",{d:"M16 6H3",key:"1wxfjs"}],["path",{d:"M12 18H3",key:"11ftsu"}]]),m7=i("list-ordered",[["path",{d:"M10 12h11",key:"6m4ad9"}],["path",{d:"M10 18h11",key:"11hvi2"}],["path",{d:"M10 6h11",key:"c7qv1k"}],["path",{d:"M4 10h2",key:"16xx2s"}],["path",{d:"M4 6h1v4",key:"cnovpq"}],["path",{d:"M6 18H4c0-1 2-2 2-3s-1-1.5-2-1",key:"m9a95d"}]]),m8=i("list-plus",[["path",{d:"M11 12H3",key:"51ecnj"}],["path",{d:"M16 6H3",key:"1wxfjs"}],["path",{d:"M16 18H3",key:"12xzn7"}],["path",{d:"M18 9v6",key:"1twb98"}],["path",{d:"M21 12h-6",key:"bt1uis"}]]),m9=i("list-restart",[["path",{d:"M21 6H3",key:"1jwq7v"}],["path",{d:"M7 12H3",key:"13ou7f"}],["path",{d:"M7 18H3",key:"1sijw9"}],["path",{d:"M12 18a5 5 0 0 0 9-3 4.5 4.5 0 0 0-4.5-4.5c-1.33 0-2.54.54-3.41 1.41L11 14",key:"qth677"}],["path",{d:"M11 10v4h4",key:"172dkj"}]]),na=i("list-start",[["path",{d:"M16 12H3",key:"1a2rj7"}],["path",{d:"M16 18H3",key:"12xzn7"}],["path",{d:"M10 6H3",key:"lf8lx7"}],["path",{d:"M21 18V8a2 2 0 0 0-2-2h-5",key:"1hghli"}],["path",{d:"m16 8-2-2 2-2",key:"160uvd"}]]),nb=i("list-todo",[["rect",{x:"3",y:"5",width:"6",height:"6",rx:"1",key:"1defrl"}],["path",{d:"m3 17 2 2 4-4",key:"1jhpwq"}],["path",{d:"M13 6h8",key:"15sg57"}],["path",{d:"M13 12h8",key:"h98zly"}],["path",{d:"M13 18h8",key:"oe0vm4"}]]),nc=i("list-tree",[["path",{d:"M21 12h-8",key:"1bmf0i"}],["path",{d:"M21 6H8",key:"1pqkrb"}],["path",{d:"M21 18h-8",key:"1tm79t"}],["path",{d:"M3 6v4c0 1.1.9 2 2 2h3",key:"1ywdgy"}],["path",{d:"M3 10v6c0 1.1.9 2 2 2h3",key:"2wc746"}]]),nd=i("list-video",[["path",{d:"M12 12H3",key:"18klou"}],["path",{d:"M16 6H3",key:"1wxfjs"}],["path",{d:"M12 18H3",key:"11ftsu"}],["path",{d:"m16 12 5 3-5 3v-6Z",key:"zpskkp"}]]),ne=i("list-x",[["path",{d:"M11 12H3",key:"51ecnj"}],["path",{d:"M16 6H3",key:"1wxfjs"}],["path",{d:"M16 18H3",key:"12xzn7"}],["path",{d:"m19 10-4 4",key:"1tz659"}],["path",{d:"m15 10 4 4",key:"1n7nei"}]]),nf=i("list",[["path",{d:"M3 12h.01",key:"nlz23k"}],["path",{d:"M3 18h.01",key:"1tta3j"}],["path",{d:"M3 6h.01",key:"1rqtza"}],["path",{d:"M8 12h13",key:"1za7za"}],["path",{d:"M8 18h13",key:"1lx6n3"}],["path",{d:"M8 6h13",key:"ik3vkj"}]]),ng=i("loader-circle",[["path",{d:"M21 12a9 9 0 1 1-6.219-8.56",key:"13zald"}]]),nh=i("loader-pinwheel",[["path",{d:"M22 12a1 1 0 0 1-10 0 1 1 0 0 0-10 0",key:"1lzz15"}],["path",{d:"M7 20.7a1 1 0 1 1 5-8.7 1 1 0 1 0 5-8.6",key:"1gnrpi"}],["path",{d:"M7 3.3a1 1 0 1 1 5 8.6 1 1 0 1 0 5 8.6",key:"u9yy5q"}],["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}]]),ni=i("loader",[["path",{d:"M12 2v4",key:"3427ic"}],["path",{d:"m16.2 7.8 2.9-2.9",key:"r700ao"}],["path",{d:"M18 12h4",key:"wj9ykh"}],["path",{d:"m16.2 16.2 2.9 2.9",key:"1bxg5t"}],["path",{d:"M12 18v4",key:"jadmvz"}],["path",{d:"m4.9 19.1 2.9-2.9",key:"bwix9q"}],["path",{d:"M2 12h4",key:"j09sii"}],["path",{d:"m4.9 4.9 2.9 2.9",key:"giyufr"}]]),nj=i("locate-off",[["path",{d:"M12 19v3",key:"npa21l"}],["path",{d:"M12 2v3",key:"qbqxhf"}],["path",{d:"M18.89 13.24a7 7 0 0 0-8.13-8.13",key:"1v9jrh"}],["path",{d:"M19 12h3",key:"osuazr"}],["path",{d:"M2 12h3",key:"1wrr53"}],["path",{d:"m2 2 20 20",key:"1ooewy"}],["path",{d:"M7.05 7.05a7 7 0 0 0 9.9 9.9",key:"rc5l2e"}]]),nk=i("locate-fixed",[["line",{x1:"2",x2:"5",y1:"12",y2:"12",key:"bvdh0s"}],["line",{x1:"19",x2:"22",y1:"12",y2:"12",key:"1tbv5k"}],["line",{x1:"12",x2:"12",y1:"2",y2:"5",key:"11lu5j"}],["line",{x1:"12",x2:"12",y1:"19",y2:"22",key:"x3vr5v"}],["circle",{cx:"12",cy:"12",r:"7",key:"fim9np"}],["circle",{cx:"12",cy:"12",r:"3",key:"1v7zrd"}]]),nl=i("locate",[["line",{x1:"2",x2:"5",y1:"12",y2:"12",key:"bvdh0s"}],["line",{x1:"19",x2:"22",y1:"12",y2:"12",key:"1tbv5k"}],["line",{x1:"12",x2:"12",y1:"2",y2:"5",key:"11lu5j"}],["line",{x1:"12",x2:"12",y1:"19",y2:"22",key:"x3vr5v"}],["circle",{cx:"12",cy:"12",r:"7",key:"fim9np"}]]),nm=i("location-edit",[["path",{d:"M17.97 9.304A8 8 0 0 0 2 10c0 4.69 4.887 9.562 7.022 11.468",key:"1fahp3"}],["path",{d:"M21.378 16.626a1 1 0 0 0-3.004-3.004l-4.01 4.012a2 2 0 0 0-.506.854l-.837 2.87a.5.5 0 0 0 .62.62l2.87-.837a2 2 0 0 0 .854-.506z",key:"1817ys"}],["circle",{cx:"10",cy:"10",r:"3",key:"1ns7v1"}]]),nn=i("lock-keyhole-open",[["circle",{cx:"12",cy:"16",r:"1",key:"1au0dj"}],["rect",{width:"18",height:"12",x:"3",y:"10",rx:"2",key:"l0tzu3"}],["path",{d:"M7 10V7a5 5 0 0 1 9.33-2.5",key:"car5b7"}]]),no=i("lock-keyhole",[["circle",{cx:"12",cy:"16",r:"1",key:"1au0dj"}],["rect",{x:"3",y:"10",width:"18",height:"12",rx:"2",key:"6s8ecr"}],["path",{d:"M7 10V7a5 5 0 0 1 10 0v3",key:"1pqi11"}]]),np=i("lock-open",[["rect",{width:"18",height:"11",x:"3",y:"11",rx:"2",ry:"2",key:"1w4ew1"}],["path",{d:"M7 11V7a5 5 0 0 1 9.9-1",key:"1mm8w8"}]]),nq=i("log-in",[["path",{d:"m10 17 5-5-5-5",key:"1bsop3"}],["path",{d:"M15 12H3",key:"6jk70r"}],["path",{d:"M15 3h4a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2h-4",key:"u53s6r"}]]),nr=i("lock",[["rect",{width:"18",height:"11",x:"3",y:"11",rx:"2",ry:"2",key:"1w4ew1"}],["path",{d:"M7 11V7a5 5 0 0 1 10 0v4",key:"fwvmzm"}]]),ns=i("log-out",[["path",{d:"m16 17 5-5-5-5",key:"1bji2h"}],["path",{d:"M21 12H9",key:"dn1m92"}],["path",{d:"M9 21H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h4",key:"1uf3rs"}]]),nt=i("logs",[["path",{d:"M13 12h8",key:"h98zly"}],["path",{d:"M13 18h8",key:"oe0vm4"}],["path",{d:"M13 6h8",key:"15sg57"}],["path",{d:"M3 12h1",key:"lp3yf2"}],["path",{d:"M3 18h1",key:"1eiwyy"}],["path",{d:"M3 6h1",key:"rgxa97"}],["path",{d:"M8 12h1",key:"1con00"}],["path",{d:"M8 18h1",key:"13wk12"}],["path",{d:"M8 6h1",key:"tn6mkg"}]]),nu=i("lollipop",[["circle",{cx:"11",cy:"11",r:"8",key:"4ej97u"}],["path",{d:"m21 21-4.3-4.3",key:"1qie3q"}],["path",{d:"M11 11a2 2 0 0 0 4 0 4 4 0 0 0-8 0 6 6 0 0 0 12 0",key:"107gwy"}]]),nv=i("luggage",[["path",{d:"M6 20a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h12a2 2 0 0 1 2 2v10a2 2 0 0 1-2 2",key:"1m57jg"}],["path",{d:"M8 18V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v14",key:"1l99gc"}],["path",{d:"M10 20h4",key:"ni2waw"}],["circle",{cx:"16",cy:"20",r:"2",key:"1vifvg"}],["circle",{cx:"8",cy:"20",r:"2",key:"ckkr5m"}]]),nw=i("magnet",[["path",{d:"m6 15-4-4 6.75-6.77a7.79 7.79 0 0 1 11 11L13 22l-4-4 6.39-6.36a2.14 2.14 0 0 0-3-3L6 15",key:"1i3lhw"}],["path",{d:"m5 8 4 4",key:"j6kj7e"}],["path",{d:"m12 15 4 4",key:"lnac28"}]]),nx=i("mail-check",[["path",{d:"M22 13V6a2 2 0 0 0-2-2H4a2 2 0 0 0-2 2v12c0 1.1.9 2 2 2h8",key:"12jkf8"}],["path",{d:"m22 7-8.97 5.7a1.94 1.94 0 0 1-2.06 0L2 7",key:"1ocrg3"}],["path",{d:"m16 19 2 2 4-4",key:"1b14m6"}]]),ny=i("mail-minus",[["path",{d:"M22 15V6a2 2 0 0 0-2-2H4a2 2 0 0 0-2 2v12c0 1.1.9 2 2 2h8",key:"fuxbkv"}],["path",{d:"m22 7-8.97 5.7a1.94 1.94 0 0 1-2.06 0L2 7",key:"1ocrg3"}],["path",{d:"M16 19h6",key:"xwg31i"}]]),nz=i("mail-open",[["path",{d:"M21.2 8.4c.5.38.8.97.8 1.6v10a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2V10a2 2 0 0 1 .8-1.6l8-6a2 2 0 0 1 2.4 0l8 6Z",key:"1jhwl8"}],["path",{d:"m22 10-8.97 5.7a1.94 1.94 0 0 1-2.06 0L2 10",key:"1qfld7"}]]),nA=i("mail-plus",[["path",{d:"M22 13V6a2 2 0 0 0-2-2H4a2 2 0 0 0-2 2v12c0 1.1.9 2 2 2h8",key:"12jkf8"}],["path",{d:"m22 7-8.97 5.7a1.94 1.94 0 0 1-2.06 0L2 7",key:"1ocrg3"}],["path",{d:"M19 16v6",key:"tddt3s"}],["path",{d:"M16 19h6",key:"xwg31i"}]]),nB=i("mail-question-mark",[["path",{d:"M22 10.5V6a2 2 0 0 0-2-2H4a2 2 0 0 0-2 2v12c0 1.1.9 2 2 2h12.5",key:"e61zoh"}],["path",{d:"m22 7-8.97 5.7a1.94 1.94 0 0 1-2.06 0L2 7",key:"1ocrg3"}],["path",{d:"M18 15.28c.2-.4.5-.8.9-1a2.1 2.1 0 0 1 2.6.4c.3.4.5.8.5 1.3 0 1.3-2 2-2 2",key:"7z9rxb"}],["path",{d:"M20 22v.01",key:"12bgn6"}]]),nC=i("mail-search",[["path",{d:"M22 12.5V6a2 2 0 0 0-2-2H4a2 2 0 0 0-2 2v12c0 1.1.9 2 2 2h7.5",key:"w80f2v"}],["path",{d:"m22 7-8.97 5.7a1.94 1.94 0 0 1-2.06 0L2 7",key:"1ocrg3"}],["path",{d:"M18 21a3 3 0 1 0 0-6 3 3 0 0 0 0 6Z",key:"8lzu5m"}],["circle",{cx:"18",cy:"18",r:"3",key:"1xkwt0"}],["path",{d:"m22 22-1.5-1.5",key:"1x83k4"}]]),nD=i("mail-warning",[["path",{d:"M22 10.5V6a2 2 0 0 0-2-2H4a2 2 0 0 0-2 2v12c0 1.1.9 2 2 2h12.5",key:"e61zoh"}],["path",{d:"m22 7-8.97 5.7a1.94 1.94 0 0 1-2.06 0L2 7",key:"1ocrg3"}],["path",{d:"M20 14v4",key:"1hm744"}],["path",{d:"M20 22v.01",key:"12bgn6"}]]),nE=i("mail-x",[["path",{d:"M22 13V6a2 2 0 0 0-2-2H4a2 2 0 0 0-2 2v12c0 1.1.9 2 2 2h9",key:"1j9vog"}],["path",{d:"m22 7-8.97 5.7a1.94 1.94 0 0 1-2.06 0L2 7",key:"1ocrg3"}],["path",{d:"m17 17 4 4",key:"1b3523"}],["path",{d:"m21 17-4 4",key:"uinynz"}]]),nF=i("mail",[["path",{d:"m22 7-8.991 5.727a2 2 0 0 1-2.009 0L2 7",key:"132q7q"}],["rect",{x:"2",y:"4",width:"20",height:"16",rx:"2",key:"izxlao"}]]),nG=i("mailbox",[["path",{d:"M22 17a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2V9.5C2 7 4 5 6.5 5H18c2.2 0 4 1.8 4 4v8Z",key:"1lbycx"}],["polyline",{points:"15,9 18,9 18,11",key:"1pm9c0"}],["path",{d:"M6.5 5C9 5 11 7 11 9.5V17a2 2 0 0 1-2 2",key:"15i455"}],["line",{x1:"6",x2:"7",y1:"10",y2:"10",key:"1e2scm"}]]),nH=i("mails",[["rect",{width:"16",height:"13",x:"6",y:"4",rx:"2",key:"1drq3f"}],["path",{d:"m22 7-7.1 3.78c-.57.3-1.23.3-1.8 0L6 7",key:"xn252p"}],["path",{d:"M2 8v11c0 1.1.9 2 2 2h14",key:"n13cji"}]]),nI=i("map-pin-check-inside",[["path",{d:"M20 10c0 4.993-5.539 10.193-7.399 11.799a1 1 0 0 1-1.202 0C9.539 20.193 4 14.993 4 10a8 8 0 0 1 16 0",key:"1r0f0z"}],["path",{d:"m9 10 2 2 4-4",key:"1gnqz4"}]]),nJ=i("map-pin-check",[["path",{d:"M19.43 12.935c.357-.967.57-1.955.57-2.935a8 8 0 0 0-16 0c0 4.993 5.539 10.193 7.399 11.799a1 1 0 0 0 1.202 0 32.197 32.197 0 0 0 .813-.728",key:"1dq61d"}],["circle",{cx:"12",cy:"10",r:"3",key:"ilqhr7"}],["path",{d:"m16 18 2 2 4-4",key:"1mkfmb"}]]),nK=i("map-pin-house",[["path",{d:"M15 22a1 1 0 0 1-1-1v-4a1 1 0 0 1 .445-.832l3-2a1 1 0 0 1 1.11 0l3 2A1 1 0 0 1 22 17v4a1 1 0 0 1-1 1z",key:"1p1rcz"}],["path",{d:"M18 10a8 8 0 0 0-16 0c0 4.993 5.539 10.193 7.399 11.799a1 1 0 0 0 .601.2",key:"mcbcs9"}],["path",{d:"M18 22v-3",key:"1t1ugv"}],["circle",{cx:"10",cy:"10",r:"3",key:"1ns7v1"}]]),nL=i("map-pin-minus-inside",[["path",{d:"M20 10c0 4.993-5.539 10.193-7.399 11.799a1 1 0 0 1-1.202 0C9.539 20.193 4 14.993 4 10a8 8 0 0 1 16 0",key:"1r0f0z"}],["path",{d:"M9 10h6",key:"9gxzsh"}]]),nM=i("map-pin-minus",[["path",{d:"M18.977 14C19.6 12.701 20 11.343 20 10a8 8 0 0 0-16 0c0 4.993 5.539 10.193 7.399 11.799a1 1 0 0 0 1.202 0 32 32 0 0 0 .824-.738",key:"11uxia"}],["circle",{cx:"12",cy:"10",r:"3",key:"ilqhr7"}],["path",{d:"M16 18h6",key:"987eiv"}]]),nN=i("map-pin-off",[["path",{d:"M12.75 7.09a3 3 0 0 1 2.16 2.16",key:"1d4wjd"}],["path",{d:"M17.072 17.072c-1.634 2.17-3.527 3.912-4.471 4.727a1 1 0 0 1-1.202 0C9.539 20.193 4 14.993 4 10a8 8 0 0 1 1.432-4.568",key:"12yil7"}],["path",{d:"m2 2 20 20",key:"1ooewy"}],["path",{d:"M8.475 2.818A8 8 0 0 1 20 10c0 1.183-.31 2.377-.81 3.533",key:"lhrkcz"}],["path",{d:"M9.13 9.13a3 3 0 0 0 3.74 3.74",key:"13wojd"}]]),nO=i("map-pin-plus-inside",[["path",{d:"M20 10c0 4.993-5.539 10.193-7.399 11.799a1 1 0 0 1-1.202 0C9.539 20.193 4 14.993 4 10a8 8 0 0 1 16 0",key:"1r0f0z"}],["path",{d:"M12 7v6",key:"lw1j43"}],["path",{d:"M9 10h6",key:"9gxzsh"}]]),nP=i("map-pin-plus",[["path",{d:"M19.914 11.105A7.298 7.298 0 0 0 20 10a8 8 0 0 0-16 0c0 4.993 5.539 10.193 7.399 11.799a1 1 0 0 0 1.202 0 32 32 0 0 0 .824-.738",key:"fcdtly"}],["circle",{cx:"12",cy:"10",r:"3",key:"ilqhr7"}],["path",{d:"M16 18h6",key:"987eiv"}],["path",{d:"M19 15v6",key:"10aioa"}]]),nQ=i("map-pin-x-inside",[["path",{d:"M20 10c0 4.993-5.539 10.193-7.399 11.799a1 1 0 0 1-1.202 0C9.539 20.193 4 14.993 4 10a8 8 0 0 1 16 0",key:"1r0f0z"}],["path",{d:"m14.5 7.5-5 5",key:"3lb6iw"}],["path",{d:"m9.5 7.5 5 5",key:"ko136h"}]]),nR=i("map-pin-x",[["path",{d:"M19.752 11.901A7.78 7.78 0 0 0 20 10a8 8 0 0 0-16 0c0 4.993 5.539 10.193 7.399 11.799a1 1 0 0 0 1.202 0 19 19 0 0 0 .09-.077",key:"y0ewhp"}],["circle",{cx:"12",cy:"10",r:"3",key:"ilqhr7"}],["path",{d:"m21.5 15.5-5 5",key:"11iqnx"}],["path",{d:"m21.5 20.5-5-5",key:"1bylgx"}]]),nS=i("map-pin",[["path",{d:"M20 10c0 4.993-5.539 10.193-7.399 11.799a1 1 0 0 1-1.202 0C9.539 20.193 4 14.993 4 10a8 8 0 0 1 16 0",key:"1r0f0z"}],["circle",{cx:"12",cy:"10",r:"3",key:"ilqhr7"}]]),nT=i("map-pinned",[["path",{d:"M18 8c0 3.613-3.869 7.429-5.393 8.795a1 1 0 0 1-1.214 0C9.87 15.429 6 11.613 6 8a6 6 0 0 1 12 0",key:"11u0oz"}],["circle",{cx:"12",cy:"8",r:"2",key:"1822b1"}],["path",{d:"M8.714 14h-3.71a1 1 0 0 0-.948.683l-2.004 6A1 1 0 0 0 3 22h18a1 1 0 0 0 .948-1.316l-2-6a1 1 0 0 0-.949-.684h-3.712",key:"q8zwxj"}]]),nU=i("map-plus",[["path",{d:"m11 19-1.106-.552a2 2 0 0 0-1.788 0l-3.659 1.83A1 1 0 0 1 3 19.381V6.618a1 1 0 0 1 .553-.894l4.553-2.277a2 2 0 0 1 1.788 0l4.212 2.106a2 2 0 0 0 1.788 0l3.659-1.83A1 1 0 0 1 21 4.619V12",key:"svfegj"}],["path",{d:"M15 5.764V12",key:"1ocw4k"}],["path",{d:"M18 15v6",key:"9wciyi"}],["path",{d:"M21 18h-6",key:"139f0c"}],["path",{d:"M9 3.236v15",key:"1uimfh"}]]),nV=i("map",[["path",{d:"M14.106 5.553a2 2 0 0 0 1.788 0l3.659-1.83A1 1 0 0 1 21 4.619v12.764a1 1 0 0 1-.553.894l-4.553 2.277a2 2 0 0 1-1.788 0l-4.212-2.106a2 2 0 0 0-1.788 0l-3.659 1.83A1 1 0 0 1 3 19.381V6.618a1 1 0 0 1 .553-.894l4.553-2.277a2 2 0 0 1 1.788 0z",key:"169xi5"}],["path",{d:"M15 5.764v15",key:"1pn4in"}],["path",{d:"M9 3.236v15",key:"1uimfh"}]]),nW=i("mars-stroke",[["path",{d:"m14 6 4 4",key:"1q72g9"}],["path",{d:"M17 3h4v4",key:"19p9u1"}],["path",{d:"m21 3-7.75 7.75",key:"1cjbfd"}],["circle",{cx:"9",cy:"15",r:"6",key:"bx5svt"}]]),nX=i("mars",[["path",{d:"M16 3h5v5",key:"1806ms"}],["path",{d:"m21 3-6.75 6.75",key:"pv0uzu"}],["circle",{cx:"10",cy:"14",r:"6",key:"1qwbdc"}]]),nY=i("maximize-2",[["path",{d:"M15 3h6v6",key:"1q9fwt"}],["path",{d:"m21 3-7 7",key:"1l2asr"}],["path",{d:"m3 21 7-7",key:"tjx5ai"}],["path",{d:"M9 21H3v-6",key:"wtvkvv"}]]),nZ=i("martini",[["path",{d:"M8 22h8",key:"rmew8v"}],["path",{d:"M12 11v11",key:"ur9y6a"}],["path",{d:"m19 3-7 8-7-8Z",key:"1sgpiw"}]]),n$=i("maximize",[["path",{d:"M8 3H5a2 2 0 0 0-2 2v3",key:"1dcmit"}],["path",{d:"M21 8V5a2 2 0 0 0-2-2h-3",key:"1e4gt3"}],["path",{d:"M3 16v3a2 2 0 0 0 2 2h3",key:"wsl5sc"}],["path",{d:"M16 21h3a2 2 0 0 0 2-2v-3",key:"18trek"}]]),n_=i("medal",[["path",{d:"M7.21 15 2.66 7.14a2 2 0 0 1 .13-2.2L4.4 2.8A2 2 0 0 1 6 2h12a2 2 0 0 1 1.6.8l1.6 2.14a2 2 0 0 1 .14 2.2L16.79 15",key:"143lza"}],["path",{d:"M11 12 5.12 2.2",key:"qhuxz6"}],["path",{d:"m13 12 5.88-9.8",key:"hbye0f"}],["path",{d:"M8 7h8",key:"i86dvs"}],["circle",{cx:"12",cy:"17",r:"5",key:"qbz8iq"}],["path",{d:"M12 18v-2h-.5",key:"fawc4q"}]]),n0=i("megaphone-off",[["path",{d:"M11.636 6A13 13 0 0 0 19.4 3.2 1 1 0 0 1 21 4v11.344",key:"bycexp"}],["path",{d:"M14.378 14.357A13 13 0 0 0 11 14H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h1",key:"1t17s6"}],["path",{d:"m2 2 20 20",key:"1ooewy"}],["path",{d:"M6 14a12 12 0 0 0 2.4 7.2 2 2 0 0 0 3.2-2.4A8 8 0 0 1 10 14",key:"1853fq"}],["path",{d:"M8 8v6",key:"aieo6v"}]]),n1=i("megaphone",[["path",{d:"M11 6a13 13 0 0 0 8.4-2.8A1 1 0 0 1 21 4v12a1 1 0 0 1-1.6.8A13 13 0 0 0 11 14H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2z",key:"q8bfy3"}],["path",{d:"M6 14a12 12 0 0 0 2.4 7.2 2 2 0 0 0 3.2-2.4A8 8 0 0 1 10 14",key:"1853fq"}],["path",{d:"M8 6v8",key:"15ugcq"}]]),n2=i("meh",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["line",{x1:"8",x2:"16",y1:"15",y2:"15",key:"1xb1d9"}],["line",{x1:"9",x2:"9.01",y1:"9",y2:"9",key:"yxxnd0"}],["line",{x1:"15",x2:"15.01",y1:"9",y2:"9",key:"1p4y9e"}]]),n3=i("memory-stick",[["path",{d:"M6 19v-3",key:"1nvgqn"}],["path",{d:"M10 19v-3",key:"iu8nkm"}],["path",{d:"M14 19v-3",key:"kcehxu"}],["path",{d:"M18 19v-3",key:"1vh91z"}],["path",{d:"M8 11V9",key:"63erz4"}],["path",{d:"M16 11V9",key:"fru6f3"}],["path",{d:"M12 11V9",key:"ha00sb"}],["path",{d:"M2 15h20",key:"16ne18"}],["path",{d:"M2 7a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2v1.1a2 2 0 0 0 0 3.837V17a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2v-5.1a2 2 0 0 0 0-3.837Z",key:"lhddv3"}]]),n4=i("menu",[["path",{d:"M4 12h16",key:"1lakjw"}],["path",{d:"M4 18h16",key:"19g7jn"}],["path",{d:"M4 6h16",key:"1o0s65"}]]),n5=i("merge",[["path",{d:"m8 6 4-4 4 4",key:"ybng9g"}],["path",{d:"M12 2v10.3a4 4 0 0 1-1.172 2.872L4 22",key:"1hyw0i"}],["path",{d:"m20 22-5-5",key:"1m27yz"}]]),n6=i("message-circle-code",[["path",{d:"M10 9.5 8 12l2 2.5",key:"3mjy60"}],["path",{d:"m14 9.5 2 2.5-2 2.5",key:"1bir2l"}],["path",{d:"M7.9 20A9 9 0 1 0 4 16.1L2 22z",key:"k85zhp"}]]),n7=i("message-circle-heart",[["path",{d:"M7.9 20A9 9 0 1 0 4 16.1L2 22Z",key:"vv11sd"}],["path",{d:"M15.8 9.2a2.5 2.5 0 0 0-3.5 0l-.3.4-.35-.3a2.42 2.42 0 1 0-3.2 3.6l3.6 3.5 3.6-3.5c1.2-1.2 1.1-2.7.2-3.7",key:"43lnbm"}]]),n8=i("message-circle-dashed",[["path",{d:"M13.5 3.1c-.5 0-1-.1-1.5-.1s-1 .1-1.5.1",key:"16ll65"}],["path",{d:"M19.3 6.8a10.45 10.45 0 0 0-2.1-2.1",key:"1nq77a"}],["path",{d:"M20.9 13.5c.1-.5.1-1 .1-1.5s-.1-1-.1-1.5",key:"1sf7wn"}],["path",{d:"M17.2 19.3a10.45 10.45 0 0 0 2.1-2.1",key:"x1hs5g"}],["path",{d:"M10.5 20.9c.5.1 1 .1 1.5.1s1-.1 1.5-.1",key:"19m18z"}],["path",{d:"M3.5 17.5 2 22l4.5-1.5",key:"1f36qi"}],["path",{d:"M3.1 10.5c0 .5-.1 1-.1 1.5s.1 1 .1 1.5",key:"1vz3ju"}],["path",{d:"M6.8 4.7a10.45 10.45 0 0 0-2.1 2.1",key:"19f9do"}]]),n9=i("message-circle-more",[["path",{d:"M7.9 20A9 9 0 1 0 4 16.1L2 22Z",key:"vv11sd"}],["path",{d:"M8 12h.01",key:"czm47f"}],["path",{d:"M12 12h.01",key:"1mp3jc"}],["path",{d:"M16 12h.01",key:"1l6xoz"}]]),oa=i("message-circle-off",[["path",{d:"M20.5 14.9A9 9 0 0 0 9.1 3.5",key:"1iebmn"}],["path",{d:"m2 2 20 20",key:"1ooewy"}],["path",{d:"M5.6 5.6C3 8.3 2.2 12.5 4 16l-2 6 6-2c3.4 1.8 7.6 1.1 10.3-1.7",key:"1ov8ce"}]]),ob=i("message-circle-plus",[["path",{d:"M7.9 20A9 9 0 1 0 4 16.1L2 22Z",key:"vv11sd"}],["path",{d:"M8 12h8",key:"1wcyev"}],["path",{d:"M12 8v8",key:"napkw2"}]]),oc=i("message-circle-question-mark",[["path",{d:"M7.9 20A9 9 0 1 0 4 16.1L2 22Z",key:"vv11sd"}],["path",{d:"M9.09 9a3 3 0 0 1 5.83 1c0 2-3 3-3 3",key:"1u773s"}],["path",{d:"M12 17h.01",key:"p32p05"}]]),od=i("message-circle-reply",[["path",{d:"M7.9 20A9 9 0 1 0 4 16.1L2 22Z",key:"vv11sd"}],["path",{d:"m10 15-3-3 3-3",key:"1pgupc"}],["path",{d:"M7 12h7a2 2 0 0 1 2 2v1",key:"1gheu4"}]]),oe=i("message-circle-warning",[["path",{d:"M7.9 20A9 9 0 1 0 4 16.1L2 22Z",key:"vv11sd"}],["path",{d:"M12 8v4",key:"1got3b"}],["path",{d:"M12 16h.01",key:"1drbdi"}]]),of=i("message-circle-x",[["path",{d:"M7.9 20A9 9 0 1 0 4 16.1L2 22Z",key:"vv11sd"}],["path",{d:"m15 9-6 6",key:"1uzhvr"}],["path",{d:"m9 9 6 6",key:"z0biqf"}]]),og=i("message-circle",[["path",{d:"M7.9 20A9 9 0 1 0 4 16.1L2 22Z",key:"vv11sd"}]]),oh=i("message-square-code",[["path",{d:"M10 7.5 8 10l2 2.5",key:"xb17xw"}],["path",{d:"m14 7.5 2 2.5-2 2.5",key:"5rap1v"}],["path",{d:"M21 15a2 2 0 0 1-2 2H7l-4 4V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2z",key:"1lielz"}]]),oi=i("message-square-dashed",[["path",{d:"M10 17H7l-4 4v-7",key:"1r71xu"}],["path",{d:"M14 17h1",key:"nufu4t"}],["path",{d:"M14 3h1",key:"1ec4yj"}],["path",{d:"M19 3a2 2 0 0 1 2 2",key:"18rm91"}],["path",{d:"M21 14v1a2 2 0 0 1-2 2",key:"29akq3"}],["path",{d:"M21 9v1",key:"mxsmne"}],["path",{d:"M3 9v1",key:"1r0deq"}],["path",{d:"M5 3a2 2 0 0 0-2 2",key:"y57alp"}],["path",{d:"M9 3h1",key:"1yesri"}]]),oj=i("message-square-diff",[["path",{d:"m5 19-2 2V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2v10a2 2 0 0 1-2 2",key:"1xuzuj"}],["path",{d:"M9 10h6",key:"9gxzsh"}],["path",{d:"M12 7v6",key:"lw1j43"}],["path",{d:"M9 17h6",key:"r8uit2"}]]),ok=i("message-square-dot",[["path",{d:"M11.7 3H5a2 2 0 0 0-2 2v16l4-4h12a2 2 0 0 0 2-2v-2.7",key:"uodpkb"}],["circle",{cx:"18",cy:"6",r:"3",key:"1h7g24"}]]),ol=i("message-square-heart",[["path",{d:"M21 15a2 2 0 0 1-2 2H7l-4 4V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2z",key:"1lielz"}],["path",{d:"M14.8 7.5a1.84 1.84 0 0 0-2.6 0l-.2.3-.3-.3a1.84 1.84 0 1 0-2.4 2.8L12 13l2.7-2.7c.9-.9.8-2.1.1-2.8",key:"1blaws"}]]),om=i("message-square-lock",[["path",{d:"M19 15v-2a2 2 0 1 0-4 0v2",key:"h3d1vz"}],["path",{d:"M9 17H7l-4 4V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2v3.5",key:"xsnnhn"}],["rect",{x:"13",y:"15",width:"8",height:"5",rx:"1",key:"1ccwuk"}]]),on=i("message-square-more",[["path",{d:"M21 15a2 2 0 0 1-2 2H7l-4 4V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2z",key:"1lielz"}],["path",{d:"M8 10h.01",key:"19clt8"}],["path",{d:"M12 10h.01",key:"1nrarc"}],["path",{d:"M16 10h.01",key:"1m94wz"}]]),oo=i("message-square-off",[["path",{d:"M21 15V5a2 2 0 0 0-2-2H9",key:"43el77"}],["path",{d:"m2 2 20 20",key:"1ooewy"}],["path",{d:"M3.6 3.6c-.4.3-.6.8-.6 1.4v16l4-4h10",key:"pwpm4a"}]]),op=i("message-square-plus",[["path",{d:"M21 15a2 2 0 0 1-2 2H7l-4 4V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2z",key:"1lielz"}],["path",{d:"M12 7v6",key:"lw1j43"}],["path",{d:"M9 10h6",key:"9gxzsh"}]]),oq=i("message-square-quote",[["path",{d:"M21 15a2 2 0 0 1-2 2H7l-4 4V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2z",key:"1lielz"}],["path",{d:"M8 12a2 2 0 0 0 2-2V8H8",key:"1jfesj"}],["path",{d:"M14 12a2 2 0 0 0 2-2V8h-2",key:"1dq9mh"}]]),or=i("message-square-reply",[["path",{d:"M21 15a2 2 0 0 1-2 2H7l-4 4V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2z",key:"1lielz"}],["path",{d:"m10 7-3 3 3 3",key:"1eugdv"}],["path",{d:"M17 13v-1a2 2 0 0 0-2-2H7",key:"ernfh3"}]]),os=i("message-square-share",[["path",{d:"M21 12v3a2 2 0 0 1-2 2H7l-4 4V5a2 2 0 0 1 2-2h7",key:"tqtdkg"}],["path",{d:"M16 3h5v5",key:"1806ms"}],["path",{d:"m16 8 5-5",key:"15mbrl"}]]),ot=i("message-square-text",[["path",{d:"M21 15a2 2 0 0 1-2 2H7l-4 4V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2z",key:"1lielz"}],["path",{d:"M13 8H7",key:"14i4kc"}],["path",{d:"M17 12H7",key:"16if0g"}]]),ou=i("message-square-warning",[["path",{d:"M21 15a2 2 0 0 1-2 2H7l-4 4V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2z",key:"1lielz"}],["path",{d:"M12 7v2",key:"stiyo7"}],["path",{d:"M12 13h.01",key:"y0uutt"}]]),ov=i("message-square-x",[["path",{d:"M21 15a2 2 0 0 1-2 2H7l-4 4V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2z",key:"1lielz"}],["path",{d:"m14.5 7.5-5 5",key:"3lb6iw"}],["path",{d:"m9.5 7.5 5 5",key:"ko136h"}]]),ow=i("message-square",[["path",{d:"M21 15a2 2 0 0 1-2 2H7l-4 4V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2z",key:"1lielz"}]]),ox=i("messages-square",[["path",{d:"M14 9a2 2 0 0 1-2 2H6l-4 4V4a2 2 0 0 1 2-2h8a2 2 0 0 1 2 2z",key:"p1xzt8"}],["path",{d:"M18 9h2a2 2 0 0 1 2 2v11l-4-4h-6a2 2 0 0 1-2-2v-1",key:"1cx29u"}]]),oy=i("mic-off",[["line",{x1:"2",x2:"22",y1:"2",y2:"22",key:"a6p6uj"}],["path",{d:"M18.89 13.23A7.12 7.12 0 0 0 19 12v-2",key:"80xlxr"}],["path",{d:"M5 10v2a7 7 0 0 0 12 5",key:"p2k8kg"}],["path",{d:"M15 9.34V5a3 3 0 0 0-5.68-1.33",key:"1gzdoj"}],["path",{d:"M9 9v3a3 3 0 0 0 5.12 2.12",key:"r2i35w"}],["line",{x1:"12",x2:"12",y1:"19",y2:"22",key:"x3vr5v"}]]),oz=i("mic-vocal",[["path",{d:"m11 7.601-5.994 8.19a1 1 0 0 0 .1 1.298l.817.818a1 1 0 0 0 1.314.087L15.09 12",key:"80a601"}],["path",{d:"M16.5 21.174C15.5 20.5 14.372 20 13 20c-2.058 0-3.928 2.356-6 2-2.072-.356-2.775-3.369-1.5-4.5",key:"j0ngtp"}],["circle",{cx:"16",cy:"7",r:"5",key:"d08jfb"}]]),oA=i("mic",[["path",{d:"M12 19v3",key:"npa21l"}],["path",{d:"M19 10v2a7 7 0 0 1-14 0v-2",key:"1vc78b"}],["rect",{x:"9",y:"2",width:"6",height:"13",rx:"3",key:"s6n7sd"}]]),oB=i("microchip",[["path",{d:"M18 12h2",key:"quuxs7"}],["path",{d:"M18 16h2",key:"zsn3lv"}],["path",{d:"M18 20h2",key:"9x5y9y"}],["path",{d:"M18 4h2",key:"1luxfb"}],["path",{d:"M18 8h2",key:"nxqzg"}],["path",{d:"M4 12h2",key:"1ltxp0"}],["path",{d:"M4 16h2",key:"8a5zha"}],["path",{d:"M4 20h2",key:"27dk57"}],["path",{d:"M4 4h2",key:"10groj"}],["path",{d:"M4 8h2",key:"18vq6w"}],["path",{d:"M8 2a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h8a2 2 0 0 0 2-2V4a2 2 0 0 0-2-2h-1.5c-.276 0-.494.227-.562.495a2 2 0 0 1-3.876 0C9.994 2.227 9.776 2 9.5 2z",key:"1681fp"}]]),oC=i("microscope",[["path",{d:"M6 18h8",key:"1borvv"}],["path",{d:"M3 22h18",key:"8prr45"}],["path",{d:"M14 22a7 7 0 1 0 0-14h-1",key:"1jwaiy"}],["path",{d:"M9 14h2",key:"197e7h"}],["path",{d:"M9 12a2 2 0 0 1-2-2V6h6v4a2 2 0 0 1-2 2Z",key:"1bmzmy"}],["path",{d:"M12 6V3a1 1 0 0 0-1-1H9a1 1 0 0 0-1 1v3",key:"1drr47"}]]),oD=i("microwave",[["rect",{width:"20",height:"15",x:"2",y:"4",rx:"2",key:"2no95f"}],["rect",{width:"8",height:"7",x:"6",y:"8",rx:"1",key:"zh9wx"}],["path",{d:"M18 8v7",key:"o5zi4n"}],["path",{d:"M6 19v2",key:"1loha6"}],["path",{d:"M18 19v2",key:"1dawf0"}]]),oE=i("milestone",[["path",{d:"M12 13v8",key:"1l5pq0"}],["path",{d:"M12 3v3",key:"1n5kay"}],["path",{d:"M4 6a1 1 0 0 0-1 1v5a1 1 0 0 0 1 1h13a2 2 0 0 0 1.152-.365l3.424-2.317a1 1 0 0 0 0-1.635l-3.424-2.318A2 2 0 0 0 17 6z",key:"1btarq"}]]),oF=i("milk-off",[["path",{d:"M8 2h8",key:"1ssgc1"}],["path",{d:"M9 2v1.343M15 2v2.789a4 4 0 0 0 .672 2.219l.656.984a4 4 0 0 1 .672 2.22v1.131M7.8 7.8l-.128.192A4 4 0 0 0 7 10.212V20a2 2 0 0 0 2 2h6a2 2 0 0 0 2-2v-3",key:"y0ejgx"}],["path",{d:"M7 15a6.47 6.47 0 0 1 5 0 6.472 6.472 0 0 0 3.435.435",key:"iaxqsy"}],["line",{x1:"2",x2:"22",y1:"2",y2:"22",key:"a6p6uj"}]]),oG=i("milk",[["path",{d:"M8 2h8",key:"1ssgc1"}],["path",{d:"M9 2v2.789a4 4 0 0 1-.672 2.219l-.656.984A4 4 0 0 0 7 10.212V20a2 2 0 0 0 2 2h6a2 2 0 0 0 2-2v-9.789a4 4 0 0 0-.672-2.219l-.656-.984A4 4 0 0 1 15 4.788V2",key:"qtp12x"}],["path",{d:"M7 15a6.472 6.472 0 0 1 5 0 6.47 6.47 0 0 0 5 0",key:"ygeh44"}]]),oH=i("minimize-2",[["path",{d:"m14 10 7-7",key:"oa77jy"}],["path",{d:"M20 10h-6V4",key:"mjg0md"}],["path",{d:"m3 21 7-7",key:"tjx5ai"}],["path",{d:"M4 14h6v6",key:"rmj7iw"}]]),oI=i("minimize",[["path",{d:"M8 3v3a2 2 0 0 1-2 2H3",key:"hohbtr"}],["path",{d:"M21 8h-3a2 2 0 0 1-2-2V3",key:"5jw1f3"}],["path",{d:"M3 16h3a2 2 0 0 1 2 2v3",key:"198tvr"}],["path",{d:"M16 21v-3a2 2 0 0 1 2-2h3",key:"ph8mxp"}]]),oJ=i("minus",[["path",{d:"M5 12h14",key:"1ays0h"}]]),oK=i("monitor-check",[["path",{d:"m9 10 2 2 4-4",key:"1gnqz4"}],["rect",{width:"20",height:"14",x:"2",y:"3",rx:"2",key:"48i651"}],["path",{d:"M12 17v4",key:"1riwvh"}],["path",{d:"M8 21h8",key:"1ev6f3"}]]),oL=i("monitor-cog",[["path",{d:"M12 17v4",key:"1riwvh"}],["path",{d:"m14.305 7.53.923-.382",key:"1mlnsw"}],["path",{d:"m15.228 4.852-.923-.383",key:"82mpwg"}],["path",{d:"m16.852 3.228-.383-.924",key:"ln4sir"}],["path",{d:"m16.852 8.772-.383.923",key:"1dejw0"}],["path",{d:"m19.148 3.228.383-.924",key:"192kgf"}],["path",{d:"m19.53 9.696-.382-.924",key:"fiavlr"}],["path",{d:"m20.772 4.852.924-.383",key:"1j8mgp"}],["path",{d:"m20.772 7.148.924.383",key:"zix9be"}],["path",{d:"M22 13v2a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h7",key:"1tnzv8"}],["path",{d:"M8 21h8",key:"1ev6f3"}],["circle",{cx:"18",cy:"6",r:"3",key:"1h7g24"}]]),oM=i("monitor-dot",[["circle",{cx:"19",cy:"6",r:"3",key:"108a5v"}],["path",{d:"M22 12v3a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h9",key:"1fet9y"}],["path",{d:"M12 17v4",key:"1riwvh"}],["path",{d:"M8 21h8",key:"1ev6f3"}]]),oN=i("monitor-down",[["path",{d:"M12 13V7",key:"h0r20n"}],["path",{d:"m15 10-3 3-3-3",key:"lzhmyn"}],["rect",{width:"20",height:"14",x:"2",y:"3",rx:"2",key:"48i651"}],["path",{d:"M12 17v4",key:"1riwvh"}],["path",{d:"M8 21h8",key:"1ev6f3"}]]),oO=i("monitor-off",[["path",{d:"M17 17H4a2 2 0 0 1-2-2V5c0-1.5 1-2 1-2",key:"k0q8oc"}],["path",{d:"M22 15V5a2 2 0 0 0-2-2H9",key:"cp1ac0"}],["path",{d:"M8 21h8",key:"1ev6f3"}],["path",{d:"M12 17v4",key:"1riwvh"}],["path",{d:"m2 2 20 20",key:"1ooewy"}]]),oP=i("monitor-pause",[["path",{d:"M10 13V7",key:"1u13u9"}],["path",{d:"M14 13V7",key:"1vj9om"}],["rect",{width:"20",height:"14",x:"2",y:"3",rx:"2",key:"48i651"}],["path",{d:"M12 17v4",key:"1riwvh"}],["path",{d:"M8 21h8",key:"1ev6f3"}]]),oQ=i("monitor-play",[["path",{d:"M10 7.75a.75.75 0 0 1 1.142-.638l3.664 2.249a.75.75 0 0 1 0 1.278l-3.664 2.25a.75.75 0 0 1-1.142-.64z",key:"1pctta"}],["path",{d:"M12 17v4",key:"1riwvh"}],["path",{d:"M8 21h8",key:"1ev6f3"}],["rect",{x:"2",y:"3",width:"20",height:"14",rx:"2",key:"x3v2xh"}]]),oR=i("monitor-smartphone",[["path",{d:"M18 8V6a2 2 0 0 0-2-2H4a2 2 0 0 0-2 2v7a2 2 0 0 0 2 2h8",key:"10dyio"}],["path",{d:"M10 19v-3.96 3.15",key:"1irgej"}],["path",{d:"M7 19h5",key:"qswx4l"}],["rect",{width:"6",height:"10",x:"16",y:"12",rx:"2",key:"1egngj"}]]),oS=i("monitor-stop",[["path",{d:"M12 17v4",key:"1riwvh"}],["path",{d:"M8 21h8",key:"1ev6f3"}],["rect",{x:"2",y:"3",width:"20",height:"14",rx:"2",key:"x3v2xh"}],["rect",{x:"9",y:"7",width:"6",height:"6",rx:"1",key:"5m2oou"}]]),oT=i("monitor-up",[["path",{d:"m9 10 3-3 3 3",key:"11gsxs"}],["path",{d:"M12 13V7",key:"h0r20n"}],["rect",{width:"20",height:"14",x:"2",y:"3",rx:"2",key:"48i651"}],["path",{d:"M12 17v4",key:"1riwvh"}],["path",{d:"M8 21h8",key:"1ev6f3"}]]),oU=i("monitor-speaker",[["path",{d:"M5.5 20H8",key:"1k40s5"}],["path",{d:"M17 9h.01",key:"1j24nn"}],["rect",{width:"10",height:"16",x:"12",y:"4",rx:"2",key:"ixliua"}],["path",{d:"M8 6H4a2 2 0 0 0-2 2v6a2 2 0 0 0 2 2h4",key:"1mp6e1"}],["circle",{cx:"17",cy:"15",r:"1",key:"tqvash"}]]),oV=i("monitor-x",[["path",{d:"m14.5 12.5-5-5",key:"1jahn5"}],["path",{d:"m9.5 12.5 5-5",key:"1k2t7b"}],["rect",{width:"20",height:"14",x:"2",y:"3",rx:"2",key:"48i651"}],["path",{d:"M12 17v4",key:"1riwvh"}],["path",{d:"M8 21h8",key:"1ev6f3"}]]),oW=i("monitor",[["rect",{width:"20",height:"14",x:"2",y:"3",rx:"2",key:"48i651"}],["line",{x1:"8",x2:"16",y1:"21",y2:"21",key:"1svkeh"}],["line",{x1:"12",x2:"12",y1:"17",y2:"21",key:"vw1qmm"}]]),oX=i("moon-star",[["path",{d:"M12 3a6 6 0 0 0 9 9 9 9 0 1 1-9-9",key:"4ay0iu"}],["path",{d:"M20 3v4",key:"1olli1"}],["path",{d:"M22 5h-4",key:"1gvqau"}]]),oY=i("moon",[["path",{d:"M12 3a6 6 0 0 0 9 9 9 9 0 1 1-9-9Z",key:"a7tn18"}]]),oZ=i("mountain-snow",[["path",{d:"m8 3 4 8 5-5 5 15H2L8 3z",key:"otkl63"}],["path",{d:"M4.14 15.08c2.62-1.57 5.24-1.43 7.86.42 2.74 1.94 5.49 2 8.23.19",key:"1pvmmp"}]]),o$=i("mountain",[["path",{d:"m8 3 4 8 5-5 5 15H2L8 3z",key:"otkl63"}]]),o_=i("mouse-off",[["path",{d:"M12 6v.343",key:"1gyhex"}],["path",{d:"M18.218 18.218A7 7 0 0 1 5 15V9a7 7 0 0 1 .782-3.218",key:"ukzz01"}],["path",{d:"M19 13.343V9A7 7 0 0 0 8.56 2.902",key:"104jy9"}],["path",{d:"M22 22 2 2",key:"1r8tn9"}]]),o0=i("mouse-pointer-2",[["path",{d:"M4.037 4.688a.495.495 0 0 1 .651-.651l16 6.5a.5.5 0 0 1-.063.947l-6.124 1.58a2 2 0 0 0-1.438 1.435l-1.579 6.126a.5.5 0 0 1-.947.063z",key:"edeuup"}]]),o1=i("mouse-pointer-click",[["path",{d:"M14 4.1 12 6",key:"ita8i4"}],["path",{d:"m5.1 8-2.9-.8",key:"1go3kf"}],["path",{d:"m6 12-1.9 2",key:"mnht97"}],["path",{d:"M7.2 2.2 8 5.1",key:"1cfko1"}],["path",{d:"M9.037 9.69a.498.498 0 0 1 .653-.653l11 4.5a.5.5 0 0 1-.074.949l-4.349 1.041a1 1 0 0 0-.74.739l-1.04 4.35a.5.5 0 0 1-.95.074z",key:"s0h3yz"}]]),o2=i("mouse-pointer-ban",[["path",{d:"M2.034 2.681a.498.498 0 0 1 .647-.647l9 3.5a.5.5 0 0 1-.033.944L8.204 7.545a1 1 0 0 0-.66.66l-1.066 3.443a.5.5 0 0 1-.944.033z",key:"11pp1i"}],["circle",{cx:"16",cy:"16",r:"6",key:"qoo3c4"}],["path",{d:"m11.8 11.8 8.4 8.4",key:"oogvdj"}]]),o3=i("mouse-pointer",[["path",{d:"M12.586 12.586 19 19",key:"ea5xo7"}],["path",{d:"M3.688 3.037a.497.497 0 0 0-.651.651l6.5 15.999a.501.501 0 0 0 .947-.062l1.569-6.083a2 2 0 0 1 1.448-1.479l6.124-1.579a.5.5 0 0 0 .063-.947z",key:"277e5u"}]]),o4=i("mouse",[["rect",{x:"5",y:"2",width:"14",height:"20",rx:"7",key:"11ol66"}],["path",{d:"M12 6v4",key:"16clxf"}]]),o5=i("move-3d",[["path",{d:"M5 3v16h16",key:"1mqmf9"}],["path",{d:"m5 19 6-6",key:"jh6hbb"}],["path",{d:"m2 6 3-3 3 3",key:"tkyvxa"}],["path",{d:"m18 16 3 3-3 3",key:"1d4glt"}]]),o6=i("move-diagonal-2",[["path",{d:"M19 13v6h-6",key:"1hxl6d"}],["path",{d:"M5 11V5h6",key:"12e2xe"}],["path",{d:"m5 5 14 14",key:"11anup"}]]),o7=i("move-diagonal",[["path",{d:"M11 19H5v-6",key:"8awifj"}],["path",{d:"M13 5h6v6",key:"7voy1q"}],["path",{d:"M19 5 5 19",key:"wwaj1z"}]]),o8=i("move-down-left",[["path",{d:"M11 19H5V13",key:"1akmht"}],["path",{d:"M19 5L5 19",key:"72u4yj"}]]),o9=i("move-down-right",[["path",{d:"M19 13V19H13",key:"10vkzq"}],["path",{d:"M5 5L19 19",key:"5zm2fv"}]]),pa=i("move-down",[["path",{d:"M8 18L12 22L16 18",key:"cskvfv"}],["path",{d:"M12 2V22",key:"r89rzk"}]]),pb=i("move-horizontal",[["path",{d:"m18 8 4 4-4 4",key:"1ak13k"}],["path",{d:"M2 12h20",key:"9i4pu4"}],["path",{d:"m6 8-4 4 4 4",key:"15zrgr"}]]),pc=i("move-left",[["path",{d:"M6 8L2 12L6 16",key:"kyvwex"}],["path",{d:"M2 12H22",key:"1m8cig"}]]),pd=i("move-up-left",[["path",{d:"M5 11V5H11",key:"3q78g9"}],["path",{d:"M5 5L19 19",key:"5zm2fv"}]]),pe=i("move-right",[["path",{d:"M18 8L22 12L18 16",key:"1r0oui"}],["path",{d:"M2 12H22",key:"1m8cig"}]]),pf=i("move-up-right",[["path",{d:"M13 5H19V11",key:"1n1gyv"}],["path",{d:"M19 5L5 19",key:"72u4yj"}]]),pg=i("move-up",[["path",{d:"M8 6L12 2L16 6",key:"1yvkyx"}],["path",{d:"M12 2V22",key:"r89rzk"}]]),ph=i("move-vertical",[["path",{d:"M12 2v20",key:"t6zp3m"}],["path",{d:"m8 18 4 4 4-4",key:"bh5tu3"}],["path",{d:"m8 6 4-4 4 4",key:"ybng9g"}]]),pi=i("move",[["path",{d:"M12 2v20",key:"t6zp3m"}],["path",{d:"m15 19-3 3-3-3",key:"11eu04"}],["path",{d:"m19 9 3 3-3 3",key:"1mg7y2"}],["path",{d:"M2 12h20",key:"9i4pu4"}],["path",{d:"m5 9-3 3 3 3",key:"j64kie"}],["path",{d:"m9 5 3-3 3 3",key:"l8vdw6"}]]),pj=i("music-2",[["circle",{cx:"8",cy:"18",r:"4",key:"1fc0mg"}],["path",{d:"M12 18V2l7 4",key:"g04rme"}]]),pk=i("music-3",[["circle",{cx:"12",cy:"18",r:"4",key:"m3r9ws"}],["path",{d:"M16 18V2",key:"40x2m5"}]]),pl=i("music-4",[["path",{d:"M9 18V5l12-2v13",key:"1jmyc2"}],["path",{d:"m9 9 12-2",key:"1e64n2"}],["circle",{cx:"6",cy:"18",r:"3",key:"fqmcym"}],["circle",{cx:"18",cy:"16",r:"3",key:"1hluhg"}]]),pm=i("music",[["path",{d:"M9 18V5l12-2v13",key:"1jmyc2"}],["circle",{cx:"6",cy:"18",r:"3",key:"fqmcym"}],["circle",{cx:"18",cy:"16",r:"3",key:"1hluhg"}]]),pn=i("navigation-2-off",[["path",{d:"M9.31 9.31 5 21l7-4 7 4-1.17-3.17",key:"qoq2o2"}],["path",{d:"M14.53 8.88 12 2l-1.17 3.17",key:"k3sjzy"}],["line",{x1:"2",x2:"22",y1:"2",y2:"22",key:"a6p6uj"}]]),po=i("navigation-2",[["polygon",{points:"12 2 19 21 12 17 5 21 12 2",key:"x8c0qg"}]]),pp=i("navigation-off",[["path",{d:"M8.43 8.43 3 11l8 2 2 8 2.57-5.43",key:"1vdtb7"}],["path",{d:"M17.39 11.73 22 2l-9.73 4.61",key:"tya3r6"}],["line",{x1:"2",x2:"22",y1:"2",y2:"22",key:"a6p6uj"}]]),pq=i("navigation",[["polygon",{points:"3 11 22 2 13 21 11 13 3 11",key:"1ltx0t"}]]),pr=i("network",[["rect",{x:"16",y:"16",width:"6",height:"6",rx:"1",key:"4q2zg0"}],["rect",{x:"2",y:"16",width:"6",height:"6",rx:"1",key:"8cvhb9"}],["rect",{x:"9",y:"2",width:"6",height:"6",rx:"1",key:"1egb70"}],["path",{d:"M5 16v-3a1 1 0 0 1 1-1h12a1 1 0 0 1 1 1v3",key:"1jsf9p"}],["path",{d:"M12 12V8",key:"2874zd"}]]),ps=i("newspaper",[["path",{d:"M15 18h-5",key:"95g1m2"}],["path",{d:"M18 14h-8",key:"sponae"}],["path",{d:"M4 22h16a2 2 0 0 0 2-2V4a2 2 0 0 0-2-2H8a2 2 0 0 0-2 2v16a2 2 0 0 1-4 0v-9a2 2 0 0 1 2-2h2",key:"39pd36"}],["rect",{width:"8",height:"4",x:"10",y:"6",rx:"1",key:"aywv1n"}]]),pt=i("nfc",[["path",{d:"M6 8.32a7.43 7.43 0 0 1 0 7.36",key:"9iaqei"}],["path",{d:"M9.46 6.21a11.76 11.76 0 0 1 0 11.58",key:"1yha7l"}],["path",{d:"M12.91 4.1a15.91 15.91 0 0 1 .01 15.8",key:"4iu2gk"}],["path",{d:"M16.37 2a20.16 20.16 0 0 1 0 20",key:"sap9u2"}]]),pu=i("non-binary",[["path",{d:"M12 2v10",key:"mnfbl"}],["path",{d:"m8.5 4 7 4",key:"m1xjk3"}],["path",{d:"m8.5 8 7-4",key:"t0m5j6"}],["circle",{cx:"12",cy:"17",r:"5",key:"qbz8iq"}]]),pv=i("notebook-pen",[["path",{d:"M13.4 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2v-7.4",key:"re6nr2"}],["path",{d:"M2 6h4",key:"aawbzj"}],["path",{d:"M2 10h4",key:"l0bgd4"}],["path",{d:"M2 14h4",key:"1gsvsf"}],["path",{d:"M2 18h4",key:"1bu2t1"}],["path",{d:"M21.378 5.626a1 1 0 1 0-3.004-3.004l-5.01 5.012a2 2 0 0 0-.506.854l-.837 2.87a.5.5 0 0 0 .62.62l2.87-.837a2 2 0 0 0 .854-.506z",key:"pqwjuv"}]]),pw=i("notebook-tabs",[["path",{d:"M2 6h4",key:"aawbzj"}],["path",{d:"M2 10h4",key:"l0bgd4"}],["path",{d:"M2 14h4",key:"1gsvsf"}],["path",{d:"M2 18h4",key:"1bu2t1"}],["rect",{width:"16",height:"20",x:"4",y:"2",rx:"2",key:"1nb95v"}],["path",{d:"M15 2v20",key:"dcj49h"}],["path",{d:"M15 7h5",key:"1xj5lc"}],["path",{d:"M15 12h5",key:"w5shd9"}],["path",{d:"M15 17h5",key:"1qaofu"}]]),px=i("notebook-text",[["path",{d:"M2 6h4",key:"aawbzj"}],["path",{d:"M2 10h4",key:"l0bgd4"}],["path",{d:"M2 14h4",key:"1gsvsf"}],["path",{d:"M2 18h4",key:"1bu2t1"}],["rect",{width:"16",height:"20",x:"4",y:"2",rx:"2",key:"1nb95v"}],["path",{d:"M9.5 8h5",key:"11mslq"}],["path",{d:"M9.5 12H16",key:"ktog6x"}],["path",{d:"M9.5 16H14",key:"p1seyn"}]]),py=i("notebook",[["path",{d:"M2 6h4",key:"aawbzj"}],["path",{d:"M2 10h4",key:"l0bgd4"}],["path",{d:"M2 14h4",key:"1gsvsf"}],["path",{d:"M2 18h4",key:"1bu2t1"}],["rect",{width:"16",height:"20",x:"4",y:"2",rx:"2",key:"1nb95v"}],["path",{d:"M16 2v20",key:"rotuqe"}]]),pz=i("notepad-text-dashed",[["path",{d:"M8 2v4",key:"1cmpym"}],["path",{d:"M12 2v4",key:"3427ic"}],["path",{d:"M16 2v4",key:"4m81vk"}],["path",{d:"M16 4h2a2 2 0 0 1 2 2v2",key:"j91f56"}],["path",{d:"M20 12v2",key:"w8o0tu"}],["path",{d:"M20 18v2a2 2 0 0 1-2 2h-1",key:"1c9ggx"}],["path",{d:"M13 22h-2",key:"191ugt"}],["path",{d:"M7 22H6a2 2 0 0 1-2-2v-2",key:"1rt9px"}],["path",{d:"M4 14v-2",key:"1v0sqh"}],["path",{d:"M4 8V6a2 2 0 0 1 2-2h2",key:"1mwabg"}],["path",{d:"M8 10h6",key:"3oa6kw"}],["path",{d:"M8 14h8",key:"1fgep2"}],["path",{d:"M8 18h5",key:"17enja"}]]),pA=i("notepad-text",[["path",{d:"M8 2v4",key:"1cmpym"}],["path",{d:"M12 2v4",key:"3427ic"}],["path",{d:"M16 2v4",key:"4m81vk"}],["rect",{width:"16",height:"18",x:"4",y:"4",rx:"2",key:"1u9h20"}],["path",{d:"M8 10h6",key:"3oa6kw"}],["path",{d:"M8 14h8",key:"1fgep2"}],["path",{d:"M8 18h5",key:"17enja"}]]),pB=i("nut-off",[["path",{d:"M12 4V2",key:"1k5q1u"}],["path",{d:"M5 10v4a7.004 7.004 0 0 0 5.277 6.787c.412.104.802.292 1.102.592L12 22l.621-.621c.3-.3.69-.488 1.102-.592a7.01 7.01 0 0 0 4.125-2.939",key:"1xcvy9"}],["path",{d:"M19 10v3.343",key:"163tfc"}],["path",{d:"M12 12c-1.349-.573-1.905-1.005-2.5-2-.546.902-1.048 1.353-2.5 2-1.018-.644-1.46-1.08-2-2-1.028.71-1.69.918-3 1 1.081-1.048 1.757-2.03 2-3 .194-.776.84-1.551 1.79-2.21m11.654 5.997c.887-.457 1.28-.891 1.556-1.787 1.032.916 1.683 1.157 3 1-1.297-1.036-1.758-2.03-2-3-.5-2-4-4-8-4-.74 0-1.461.068-2.15.192",key:"17914v"}],["line",{x1:"2",x2:"22",y1:"2",y2:"22",key:"a6p6uj"}]]),pC=i("nut",[["path",{d:"M12 4V2",key:"1k5q1u"}],["path",{d:"M5 10v4a7.004 7.004 0 0 0 5.277 6.787c.412.104.802.292 1.102.592L12 22l.621-.621c.3-.3.69-.488 1.102-.592A7.003 7.003 0 0 0 19 14v-4",key:"1tgyif"}],["path",{d:"M12 4C8 4 4.5 6 4 8c-.243.97-.919 1.952-2 3 1.31-.082 1.972-.29 3-1 .54.92.982 1.356 2 2 1.452-.647 1.954-1.098 2.5-2 .595.995 1.151 1.427 2.5 2 1.31-.621 1.862-1.058 2.5-2 .629.977 1.162 1.423 2.5 2 1.209-.548 1.68-.967 2-2 1.032.916 1.683 1.157 3 1-1.297-1.036-1.758-2.03-2-3-.5-2-4-4-8-4Z",key:"tnsqj"}]]),pD=i("octagon-alert",[["path",{d:"M12 16h.01",key:"1drbdi"}],["path",{d:"M12 8v4",key:"1got3b"}],["path",{d:"M15.312 2a2 2 0 0 1 1.414.586l4.688 4.688A2 2 0 0 1 22 8.688v6.624a2 2 0 0 1-.586 1.414l-4.688 4.688a2 2 0 0 1-1.414.586H8.688a2 2 0 0 1-1.414-.586l-4.688-4.688A2 2 0 0 1 2 15.312V8.688a2 2 0 0 1 .586-1.414l4.688-4.688A2 2 0 0 1 8.688 2z",key:"1fd625"}]]),pE=i("octagon-minus",[["path",{d:"M2.586 16.726A2 2 0 0 1 2 15.312V8.688a2 2 0 0 1 .586-1.414l4.688-4.688A2 2 0 0 1 8.688 2h6.624a2 2 0 0 1 1.414.586l4.688 4.688A2 2 0 0 1 22 8.688v6.624a2 2 0 0 1-.586 1.414l-4.688 4.688a2 2 0 0 1-1.414.586H8.688a2 2 0 0 1-1.414-.586z",key:"2d38gg"}],["path",{d:"M8 12h8",key:"1wcyev"}]]),pF=i("octagon-pause",[["path",{d:"M10 15V9",key:"1lckn7"}],["path",{d:"M14 15V9",key:"1muqhk"}],["path",{d:"M2.586 16.726A2 2 0 0 1 2 15.312V8.688a2 2 0 0 1 .586-1.414l4.688-4.688A2 2 0 0 1 8.688 2h6.624a2 2 0 0 1 1.414.586l4.688 4.688A2 2 0 0 1 22 8.688v6.624a2 2 0 0 1-.586 1.414l-4.688 4.688a2 2 0 0 1-1.414.586H8.688a2 2 0 0 1-1.414-.586z",key:"2d38gg"}]]),pG=i("octagon-x",[["path",{d:"m15 9-6 6",key:"1uzhvr"}],["path",{d:"M2.586 16.726A2 2 0 0 1 2 15.312V8.688a2 2 0 0 1 .586-1.414l4.688-4.688A2 2 0 0 1 8.688 2h6.624a2 2 0 0 1 1.414.586l4.688 4.688A2 2 0 0 1 22 8.688v6.624a2 2 0 0 1-.586 1.414l-4.688 4.688a2 2 0 0 1-1.414.586H8.688a2 2 0 0 1-1.414-.586z",key:"2d38gg"}],["path",{d:"m9 9 6 6",key:"z0biqf"}]]),pH=i("octagon",[["path",{d:"M2.586 16.726A2 2 0 0 1 2 15.312V8.688a2 2 0 0 1 .586-1.414l4.688-4.688A2 2 0 0 1 8.688 2h6.624a2 2 0 0 1 1.414.586l4.688 4.688A2 2 0 0 1 22 8.688v6.624a2 2 0 0 1-.586 1.414l-4.688 4.688a2 2 0 0 1-1.414.586H8.688a2 2 0 0 1-1.414-.586z",key:"2d38gg"}]]),pI=i("omega",[["path",{d:"M3 20h4.5a.5.5 0 0 0 .5-.5v-.282a.52.52 0 0 0-.247-.437 8 8 0 1 1 8.494-.001.52.52 0 0 0-.247.438v.282a.5.5 0 0 0 .5.5H21",key:"1x94xo"}]]),pJ=i("option",[["path",{d:"M3 3h6l6 18h6",key:"ph9rgk"}],["path",{d:"M14 3h7",key:"16f0ms"}]]),pK=i("orbit",[["path",{d:"M20.341 6.484A10 10 0 0 1 10.266 21.85",key:"1enhxb"}],["path",{d:"M3.659 17.516A10 10 0 0 1 13.74 2.152",key:"1crzgf"}],["circle",{cx:"12",cy:"12",r:"3",key:"1v7zrd"}],["circle",{cx:"19",cy:"5",r:"2",key:"mhkx31"}],["circle",{cx:"5",cy:"19",r:"2",key:"v8kfzx"}]]),pL=i("origami",[["path",{d:"M12 12V4a1 1 0 0 1 1-1h6.297a1 1 0 0 1 .651 1.759l-4.696 4.025",key:"1bx4vc"}],["path",{d:"m12 21-7.414-7.414A2 2 0 0 1 4 12.172V6.415a1.002 1.002 0 0 1 1.707-.707L20 20.009",key:"1h3km6"}],["path",{d:"m12.214 3.381 8.414 14.966a1 1 0 0 1-.167 1.199l-1.168 1.163a1 1 0 0 1-.706.291H6.351a1 1 0 0 1-.625-.219L3.25 18.8a1 1 0 0 1 .631-1.781l4.165.027",key:"1hj4wg"}]]),pM=i("package-2",[["path",{d:"M12 3v6",key:"1holv5"}],["path",{d:"M16.76 3a2 2 0 0 1 1.8 1.1l2.23 4.479a2 2 0 0 1 .21.891V19a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V9.472a2 2 0 0 1 .211-.894L5.45 4.1A2 2 0 0 1 7.24 3z",key:"187q7i"}],["path",{d:"M3.054 9.013h17.893",key:"grwhos"}]]),pN=i("package-check",[["path",{d:"m16 16 2 2 4-4",key:"gfu2re"}],["path",{d:"M21 10V8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73l7 4a2 2 0 0 0 2 0l2-1.14",key:"e7tb2h"}],["path",{d:"m7.5 4.27 9 5.15",key:"1c824w"}],["polyline",{points:"3.29 7 12 12 20.71 7",key:"ousv84"}],["line",{x1:"12",x2:"12",y1:"22",y2:"12",key:"a4e8g8"}]]),pO=i("package-minus",[["path",{d:"M16 16h6",key:"100bgy"}],["path",{d:"M21 10V8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73l7 4a2 2 0 0 0 2 0l2-1.14",key:"e7tb2h"}],["path",{d:"m7.5 4.27 9 5.15",key:"1c824w"}],["polyline",{points:"3.29 7 12 12 20.71 7",key:"ousv84"}],["line",{x1:"12",x2:"12",y1:"22",y2:"12",key:"a4e8g8"}]]),pP=i("package-open",[["path",{d:"M12 22v-9",key:"x3hkom"}],["path",{d:"M15.17 2.21a1.67 1.67 0 0 1 1.63 0L21 4.57a1.93 1.93 0 0 1 0 3.36L8.82 14.79a1.655 1.655 0 0 1-1.64 0L3 12.43a1.93 1.93 0 0 1 0-3.36z",key:"2ntwy6"}],["path",{d:"M20 13v3.87a2.06 2.06 0 0 1-1.11 1.83l-6 3.08a1.93 1.93 0 0 1-1.78 0l-6-3.08A2.06 2.06 0 0 1 4 16.87V13",key:"1pmm1c"}],["path",{d:"M21 12.43a1.93 1.93 0 0 0 0-3.36L8.83 2.2a1.64 1.64 0 0 0-1.63 0L3 4.57a1.93 1.93 0 0 0 0 3.36l12.18 6.86a1.636 1.636 0 0 0 1.63 0z",key:"12ttoo"}]]),pQ=i("package-plus",[["path",{d:"M16 16h6",key:"100bgy"}],["path",{d:"M19 13v6",key:"85cyf1"}],["path",{d:"M21 10V8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73l7 4a2 2 0 0 0 2 0l2-1.14",key:"e7tb2h"}],["path",{d:"m7.5 4.27 9 5.15",key:"1c824w"}],["polyline",{points:"3.29 7 12 12 20.71 7",key:"ousv84"}],["line",{x1:"12",x2:"12",y1:"22",y2:"12",key:"a4e8g8"}]]),pR=i("package-search",[["path",{d:"M21 10V8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73l7 4a2 2 0 0 0 2 0l2-1.14",key:"e7tb2h"}],["path",{d:"m7.5 4.27 9 5.15",key:"1c824w"}],["polyline",{points:"3.29 7 12 12 20.71 7",key:"ousv84"}],["line",{x1:"12",x2:"12",y1:"22",y2:"12",key:"a4e8g8"}],["circle",{cx:"18.5",cy:"15.5",r:"2.5",key:"b5zd12"}],["path",{d:"M20.27 17.27 22 19",key:"1l4muz"}]]),pS=i("package-x",[["path",{d:"M21 10V8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73l7 4a2 2 0 0 0 2 0l2-1.14",key:"e7tb2h"}],["path",{d:"m7.5 4.27 9 5.15",key:"1c824w"}],["polyline",{points:"3.29 7 12 12 20.71 7",key:"ousv84"}],["line",{x1:"12",x2:"12",y1:"22",y2:"12",key:"a4e8g8"}],["path",{d:"m17 13 5 5m-5 0 5-5",key:"im3w4b"}]]),pT=i("package",[["path",{d:"M11 21.73a2 2 0 0 0 2 0l7-4A2 2 0 0 0 21 16V8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73z",key:"1a0edw"}],["path",{d:"M12 22V12",key:"d0xqtd"}],["polyline",{points:"3.29 7 12 12 20.71 7",key:"ousv84"}],["path",{d:"m7.5 4.27 9 5.15",key:"1c824w"}]]),pU=i("paint-bucket",[["path",{d:"m19 11-8-8-8.6 8.6a2 2 0 0 0 0 2.8l5.2 5.2c.8.8 2 .8 2.8 0L19 11Z",key:"irua1i"}],["path",{d:"m5 2 5 5",key:"1lls2c"}],["path",{d:"M2 13h15",key:"1hkzvu"}],["path",{d:"M22 20a2 2 0 1 1-4 0c0-1.6 1.7-2.4 2-4 .3 1.6 2 2.4 2 4Z",key:"xk76lq"}]]),pV=i("paint-roller",[["rect",{width:"16",height:"6",x:"2",y:"2",rx:"2",key:"jcyz7m"}],["path",{d:"M10 16v-2a2 2 0 0 1 2-2h8a2 2 0 0 0 2-2V7a2 2 0 0 0-2-2h-2",key:"1b9h7c"}],["rect",{width:"4",height:"6",x:"8",y:"16",rx:"1",key:"d6e7yl"}]]),pW=i("paintbrush-vertical",[["path",{d:"M10 2v2",key:"7u0qdc"}],["path",{d:"M14 2v4",key:"qmzblu"}],["path",{d:"M17 2a1 1 0 0 1 1 1v9H6V3a1 1 0 0 1 1-1z",key:"ycvu00"}],["path",{d:"M6 12a1 1 0 0 0-1 1v1a2 2 0 0 0 2 2h2a1 1 0 0 1 1 1v2.9a2 2 0 1 0 4 0V17a1 1 0 0 1 1-1h2a2 2 0 0 0 2-2v-1a1 1 0 0 0-1-1",key:"iw4wnp"}]]),pX=i("paintbrush",[["path",{d:"m14.622 17.897-10.68-2.913",key:"vj2p1u"}],["path",{d:"M18.376 2.622a1 1 0 1 1 3.002 3.002L17.36 9.643a.5.5 0 0 0 0 .707l.944.944a2.41 2.41 0 0 1 0 3.408l-.944.944a.5.5 0 0 1-.707 0L8.354 7.348a.5.5 0 0 1 0-.707l.944-.944a2.41 2.41 0 0 1 3.408 0l.944.944a.5.5 0 0 0 .707 0z",key:"18tc5c"}],["path",{d:"M9 8c-1.804 2.71-3.97 3.46-6.583 3.948a.507.507 0 0 0-.302.819l7.32 8.883a1 1 0 0 0 1.185.204C12.735 20.405 16 16.792 16 15",key:"ytzfxy"}]]),pY=i("palette",[["path",{d:"M12 22a1 1 0 0 1 0-20 10 9 0 0 1 10 9 5 5 0 0 1-5 5h-2.25a1.75 1.75 0 0 0-1.4 2.8l.3.4a1.75 1.75 0 0 1-1.4 2.8z",key:"e79jfc"}],["circle",{cx:"13.5",cy:"6.5",r:".5",fill:"currentColor",key:"1okk4w"}],["circle",{cx:"17.5",cy:"10.5",r:".5",fill:"currentColor",key:"f64h9f"}],["circle",{cx:"6.5",cy:"12.5",r:".5",fill:"currentColor",key:"qy21gx"}],["circle",{cx:"8.5",cy:"7.5",r:".5",fill:"currentColor",key:"fotxhn"}]]),pZ=i("panda",[["path",{d:"M11.25 17.25h1.5L12 18z",key:"1wmwwj"}],["path",{d:"m15 12 2 2",key:"k60wz4"}],["path",{d:"M18 6.5a.5.5 0 0 0-.5-.5",key:"1ch4h4"}],["path",{d:"M20.69 9.67a4.5 4.5 0 1 0-7.04-5.5 8.35 8.35 0 0 0-3.3 0 4.5 4.5 0 1 0-7.04 5.5C2.49 11.2 2 12.88 2 14.5 2 19.47 6.48 22 12 22s10-2.53 10-7.5c0-1.62-.48-3.3-1.3-4.83",key:"1c660l"}],["path",{d:"M6 6.5a.495.495 0 0 1 .5-.5",key:"eviuep"}],["path",{d:"m9 12-2 2",key:"326nkw"}]]),p$=i("panel-bottom-close",[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",key:"afitv7"}],["path",{d:"M3 15h18",key:"5xshup"}],["path",{d:"m15 8-3 3-3-3",key:"1oxy1z"}]]),p_=i("panel-bottom-dashed",[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",key:"afitv7"}],["path",{d:"M14 15h1",key:"171nev"}],["path",{d:"M19 15h2",key:"1vnucp"}],["path",{d:"M3 15h2",key:"8bym0q"}],["path",{d:"M9 15h1",key:"1tg3ks"}]]),p0=i("panel-bottom-open",[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",key:"afitv7"}],["path",{d:"M3 15h18",key:"5xshup"}],["path",{d:"m9 10 3-3 3 3",key:"11gsxs"}]]),p1=i("panel-bottom",[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",key:"afitv7"}],["path",{d:"M3 15h18",key:"5xshup"}]]),p2=i("panel-left-dashed",[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",key:"afitv7"}],["path",{d:"M9 14v1",key:"askpd8"}],["path",{d:"M9 19v2",key:"16tejx"}],["path",{d:"M9 3v2",key:"1noubl"}],["path",{d:"M9 9v1",key:"19ebxg"}]]),p3=i("panel-left-close",[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",key:"afitv7"}],["path",{d:"M9 3v18",key:"fh3hqa"}],["path",{d:"m16 15-3-3 3-3",key:"14y99z"}]]),p4=i("panel-left-open",[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",key:"afitv7"}],["path",{d:"M9 3v18",key:"fh3hqa"}],["path",{d:"m14 9 3 3-3 3",key:"8010ee"}]]),p5=i("panel-left",[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",key:"afitv7"}],["path",{d:"M9 3v18",key:"fh3hqa"}]]),p6=i("panel-right-close",[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",key:"afitv7"}],["path",{d:"M15 3v18",key:"14nvp0"}],["path",{d:"m8 9 3 3-3 3",key:"12hl5m"}]]),p7=i("panel-right-dashed",[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",key:"afitv7"}],["path",{d:"M15 14v1",key:"ilsfch"}],["path",{d:"M15 19v2",key:"1fst2f"}],["path",{d:"M15 3v2",key:"z204g4"}],["path",{d:"M15 9v1",key:"z2a8b1"}]]),p8=i("panel-right-open",[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",key:"afitv7"}],["path",{d:"M15 3v18",key:"14nvp0"}],["path",{d:"m10 15-3-3 3-3",key:"1pgupc"}]]),p9=i("panel-right",[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",key:"afitv7"}],["path",{d:"M15 3v18",key:"14nvp0"}]]),qa=i("panel-top-close",[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",key:"afitv7"}],["path",{d:"M3 9h18",key:"1pudct"}],["path",{d:"m9 16 3-3 3 3",key:"1idcnm"}]]),qb=i("panel-top-dashed",[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",key:"afitv7"}],["path",{d:"M14 9h1",key:"l0svgy"}],["path",{d:"M19 9h2",key:"te2zfg"}],["path",{d:"M3 9h2",key:"1h4ldw"}],["path",{d:"M9 9h1",key:"15jzuz"}]]),qc=i("panel-top-open",[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",key:"afitv7"}],["path",{d:"M3 9h18",key:"1pudct"}],["path",{d:"m15 14-3 3-3-3",key:"g215vf"}]]),qd=i("panel-top",[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",key:"afitv7"}],["path",{d:"M3 9h18",key:"1pudct"}]]),qe=i("panels-left-bottom",[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",key:"afitv7"}],["path",{d:"M9 3v18",key:"fh3hqa"}],["path",{d:"M9 15h12",key:"5ijen5"}]]),qf=i("panels-right-bottom",[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",key:"afitv7"}],["path",{d:"M3 15h12",key:"1wkqb3"}],["path",{d:"M15 3v18",key:"14nvp0"}]]),qg=i("panels-top-left",[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",key:"afitv7"}],["path",{d:"M3 9h18",key:"1pudct"}],["path",{d:"M9 21V9",key:"1oto5p"}]]),qh=i("paperclip",[["path",{d:"m16 6-8.414 8.586a2 2 0 0 0 2.829 2.829l8.414-8.586a4 4 0 1 0-5.657-5.657l-8.379 8.551a6 6 0 1 0 8.485 8.485l8.379-8.551",key:"1miecu"}]]),qi=i("parentheses",[["path",{d:"M8 21s-4-3-4-9 4-9 4-9",key:"uto9ud"}],["path",{d:"M16 3s4 3 4 9-4 9-4 9",key:"4w2vsq"}]]),qj=i("parking-meter",[["path",{d:"M11 15h2",key:"199qp6"}],["path",{d:"M12 12v3",key:"158kv8"}],["path",{d:"M12 19v3",key:"npa21l"}],["path",{d:"M15.282 19a1 1 0 0 0 .948-.68l2.37-6.988a7 7 0 1 0-13.2 0l2.37 6.988a1 1 0 0 0 .948.68z",key:"1jofit"}],["path",{d:"M9 9a3 3 0 1 1 6 0",key:"jdoeu8"}]]),qk=i("party-popper",[["path",{d:"M5.8 11.3 2 22l10.7-3.79",key:"gwxi1d"}],["path",{d:"M4 3h.01",key:"1vcuye"}],["path",{d:"M22 8h.01",key:"1mrtc2"}],["path",{d:"M15 2h.01",key:"1cjtqr"}],["path",{d:"M22 20h.01",key:"1mrys2"}],["path",{d:"m22 2-2.24.75a2.9 2.9 0 0 0-1.96 3.12c.1.86-.57 1.63-1.45 1.63h-.38c-.86 0-1.6.6-1.76 1.44L14 10",key:"hbicv8"}],["path",{d:"m22 13-.82-.33c-.86-.34-1.82.2-1.98 1.11c-.11.7-.72 1.22-1.43 1.22H17",key:"1i94pl"}],["path",{d:"m11 2 .33.82c.34.86-.2 1.82-1.11 1.98C9.52 4.9 9 5.52 9 6.23V7",key:"1cofks"}],["path",{d:"M11 13c1.93 1.93 2.83 4.17 2 5-.83.83-3.07-.07-5-2-1.93-1.93-2.83-4.17-2-5 .83-.83 3.07.07 5 2Z",key:"4kbmks"}]]),ql=i("pause",[["rect",{x:"14",y:"4",width:"4",height:"16",rx:"1",key:"zuxfzm"}],["rect",{x:"6",y:"4",width:"4",height:"16",rx:"1",key:"1okwgv"}]]),qm=i("paw-print",[["circle",{cx:"11",cy:"4",r:"2",key:"vol9p0"}],["circle",{cx:"18",cy:"8",r:"2",key:"17gozi"}],["circle",{cx:"20",cy:"16",r:"2",key:"1v9bxh"}],["path",{d:"M9 10a5 5 0 0 1 5 5v3.5a3.5 3.5 0 0 1-6.84 1.045Q6.52 17.48 4.46 16.84A3.5 3.5 0 0 1 5.5 10Z",key:"1ydw1z"}]]),qn=i("pc-case",[["rect",{width:"14",height:"20",x:"5",y:"2",rx:"2",key:"1uq1d7"}],["path",{d:"M15 14h.01",key:"1kp3bh"}],["path",{d:"M9 6h6",key:"dgm16u"}],["path",{d:"M9 10h6",key:"9gxzsh"}]]),qo=i("pen-off",[["path",{d:"m10 10-6.157 6.162a2 2 0 0 0-.5.833l-1.322 4.36a.5.5 0 0 0 .622.624l4.358-1.323a2 2 0 0 0 .83-.5L14 13.982",key:"bjo8r8"}],["path",{d:"m12.829 7.172 4.359-4.346a1 1 0 1 1 3.986 3.986l-4.353 4.353",key:"16h5ne"}],["path",{d:"m2 2 20 20",key:"1ooewy"}]]),qp=i("pen-line",[["path",{d:"M12 20h9",key:"t2du7b"}],["path",{d:"M16.376 3.622a1 1 0 0 1 3.002 3.002L7.368 18.635a2 2 0 0 1-.855.506l-2.872.838a.5.5 0 0 1-.62-.62l.838-2.872a2 2 0 0 1 .506-.854z",key:"1ykcvy"}]]),qq=i("pen-tool",[["path",{d:"M15.707 21.293a1 1 0 0 1-1.414 0l-1.586-1.586a1 1 0 0 1 0-1.414l5.586-5.586a1 1 0 0 1 1.414 0l1.586 1.586a1 1 0 0 1 0 1.414z",key:"nt11vn"}],["path",{d:"m18 13-1.375-6.874a1 1 0 0 0-.746-.776L3.235 2.028a1 1 0 0 0-1.207 1.207L5.35 15.879a1 1 0 0 0 .776.746L13 18",key:"15qc1e"}],["path",{d:"m2.3 2.3 7.286 7.286",key:"1wuzzi"}],["circle",{cx:"11",cy:"11",r:"2",key:"xmgehs"}]]),qr=i("pen",[["path",{d:"M21.174 6.812a1 1 0 0 0-3.986-3.987L3.842 16.174a2 2 0 0 0-.5.83l-1.321 4.352a.5.5 0 0 0 .623.622l4.353-1.32a2 2 0 0 0 .83-.497z",key:"1a8usu"}]]),qs=i("pencil-off",[["path",{d:"m10 10-6.157 6.162a2 2 0 0 0-.5.833l-1.322 4.36a.5.5 0 0 0 .622.624l4.358-1.323a2 2 0 0 0 .83-.5L14 13.982",key:"bjo8r8"}],["path",{d:"m12.829 7.172 4.359-4.346a1 1 0 1 1 3.986 3.986l-4.353 4.353",key:"16h5ne"}],["path",{d:"m15 5 4 4",key:"1mk7zo"}],["path",{d:"m2 2 20 20",key:"1ooewy"}]]),qt=i("pencil-line",[["path",{d:"M12 20h9",key:"t2du7b"}],["path",{d:"M16.376 3.622a1 1 0 0 1 3.002 3.002L7.368 18.635a2 2 0 0 1-.855.506l-2.872.838a.5.5 0 0 1-.62-.62l.838-2.872a2 2 0 0 1 .506-.854z",key:"1ykcvy"}],["path",{d:"m15 5 3 3",key:"1w25hb"}]]),qu=i("pencil-ruler",[["path",{d:"M13 7 8.7 2.7a2.41 2.41 0 0 0-3.4 0L2.7 5.3a2.41 2.41 0 0 0 0 3.4L7 13",key:"orapub"}],["path",{d:"m8 6 2-2",key:"115y1s"}],["path",{d:"m18 16 2-2",key:"ee94s4"}],["path",{d:"m17 11 4.3 4.3c.94.94.94 2.46 0 3.4l-2.6 2.6c-.94.94-2.46.94-3.4 0L11 17",key:"cfq27r"}],["path",{d:"M21.174 6.812a1 1 0 0 0-3.986-3.987L3.842 16.174a2 2 0 0 0-.5.83l-1.321 4.352a.5.5 0 0 0 .623.622l4.353-1.32a2 2 0 0 0 .83-.497z",key:"1a8usu"}],["path",{d:"m15 5 4 4",key:"1mk7zo"}]]),qv=i("pencil",[["path",{d:"M21.174 6.812a1 1 0 0 0-3.986-3.987L3.842 16.174a2 2 0 0 0-.5.83l-1.321 4.352a.5.5 0 0 0 .623.622l4.353-1.32a2 2 0 0 0 .83-.497z",key:"1a8usu"}],["path",{d:"m15 5 4 4",key:"1mk7zo"}]]),qw=i("pentagon",[["path",{d:"M10.83 2.38a2 2 0 0 1 2.34 0l8 5.74a2 2 0 0 1 .73 2.25l-3.04 9.26a2 2 0 0 1-1.9 1.37H7.04a2 2 0 0 1-1.9-1.37L2.1 10.37a2 2 0 0 1 .73-2.25z",key:"2hea0t"}]]),qx=i("percent",[["line",{x1:"19",x2:"5",y1:"5",y2:"19",key:"1x9vlm"}],["circle",{cx:"6.5",cy:"6.5",r:"2.5",key:"4mh3h7"}],["circle",{cx:"17.5",cy:"17.5",r:"2.5",key:"1mdrzq"}]]),qy=i("person-standing",[["circle",{cx:"12",cy:"5",r:"1",key:"gxeob9"}],["path",{d:"m9 20 3-6 3 6",key:"se2kox"}],["path",{d:"m6 8 6 2 6-2",key:"4o3us4"}],["path",{d:"M12 10v4",key:"1kjpxc"}]]),qz=i("philippine-peso",[["path",{d:"M20 11H4",key:"6ut86h"}],["path",{d:"M20 7H4",key:"zbl0bi"}],["path",{d:"M7 21V4a1 1 0 0 1 1-1h4a1 1 0 0 1 0 12H7",key:"1ana5r"}]]),qA=i("phone-call",[["path",{d:"M13 2a9 9 0 0 1 9 9",key:"1itnx2"}],["path",{d:"M13 6a5 5 0 0 1 5 5",key:"11nki7"}],["path",{d:"M13.832 16.568a1 1 0 0 0 1.213-.303l.355-.465A2 2 0 0 1 17 15h3a2 2 0 0 1 2 2v3a2 2 0 0 1-2 2A18 18 0 0 1 2 4a2 2 0 0 1 2-2h3a2 2 0 0 1 2 2v3a2 2 0 0 1-.8 1.6l-.468.351a1 1 0 0 0-.292 1.233 14 14 0 0 0 6.392 6.384",key:"9njp5v"}]]),qB=i("phone-forwarded",[["path",{d:"M14 6h8",key:"yd68k4"}],["path",{d:"m18 2 4 4-4 4",key:"pucp1d"}],["path",{d:"M13.832 16.568a1 1 0 0 0 1.213-.303l.355-.465A2 2 0 0 1 17 15h3a2 2 0 0 1 2 2v3a2 2 0 0 1-2 2A18 18 0 0 1 2 4a2 2 0 0 1 2-2h3a2 2 0 0 1 2 2v3a2 2 0 0 1-.8 1.6l-.468.351a1 1 0 0 0-.292 1.233 14 14 0 0 0 6.392 6.384",key:"9njp5v"}]]),qC=i("phone-incoming",[["path",{d:"M16 2v6h6",key:"1mfrl5"}],["path",{d:"m22 2-6 6",key:"6f0sa0"}],["path",{d:"M13.832 16.568a1 1 0 0 0 1.213-.303l.355-.465A2 2 0 0 1 17 15h3a2 2 0 0 1 2 2v3a2 2 0 0 1-2 2A18 18 0 0 1 2 4a2 2 0 0 1 2-2h3a2 2 0 0 1 2 2v3a2 2 0 0 1-.8 1.6l-.468.351a1 1 0 0 0-.292 1.233 14 14 0 0 0 6.392 6.384",key:"9njp5v"}]]),qD=i("phone-missed",[["path",{d:"m16 2 6 6",key:"1gw87d"}],["path",{d:"m22 2-6 6",key:"6f0sa0"}],["path",{d:"M13.832 16.568a1 1 0 0 0 1.213-.303l.355-.465A2 2 0 0 1 17 15h3a2 2 0 0 1 2 2v3a2 2 0 0 1-2 2A18 18 0 0 1 2 4a2 2 0 0 1 2-2h3a2 2 0 0 1 2 2v3a2 2 0 0 1-.8 1.6l-.468.351a1 1 0 0 0-.292 1.233 14 14 0 0 0 6.392 6.384",key:"9njp5v"}]]),qE=i("phone-off",[["path",{d:"M10.1 13.9a14 14 0 0 0 3.732 2.668 1 1 0 0 0 1.213-.303l.355-.465A2 2 0 0 1 17 15h3a2 2 0 0 1 2 2v3a2 2 0 0 1-2 2 18 18 0 0 1-12.728-5.272",key:"1wngk7"}],["path",{d:"M22 2 2 22",key:"y4kqgn"}],["path",{d:"M4.76 13.582A18 18 0 0 1 2 4a2 2 0 0 1 2-2h3a2 2 0 0 1 2 2v3a2 2 0 0 1-.8 1.6l-.468.351a1 1 0 0 0-.292 1.233 14 14 0 0 0 .244.473",key:"10hv5p"}]]),qF=i("phone-outgoing",[["path",{d:"m16 8 6-6",key:"oawc05"}],["path",{d:"M22 8V2h-6",key:"oqy2zc"}],["path",{d:"M13.832 16.568a1 1 0 0 0 1.213-.303l.355-.465A2 2 0 0 1 17 15h3a2 2 0 0 1 2 2v3a2 2 0 0 1-2 2A18 18 0 0 1 2 4a2 2 0 0 1 2-2h3a2 2 0 0 1 2 2v3a2 2 0 0 1-.8 1.6l-.468.351a1 1 0 0 0-.292 1.233 14 14 0 0 0 6.392 6.384",key:"9njp5v"}]]),qG=i("phone",[["path",{d:"M13.832 16.568a1 1 0 0 0 1.213-.303l.355-.465A2 2 0 0 1 17 15h3a2 2 0 0 1 2 2v3a2 2 0 0 1-2 2A18 18 0 0 1 2 4a2 2 0 0 1 2-2h3a2 2 0 0 1 2 2v3a2 2 0 0 1-.8 1.6l-.468.351a1 1 0 0 0-.292 1.233 14 14 0 0 0 6.392 6.384",key:"9njp5v"}]]),qH=i("pi",[["line",{x1:"9",x2:"9",y1:"4",y2:"20",key:"ovs5a5"}],["path",{d:"M4 7c0-1.7 1.3-3 3-3h13",key:"10pag4"}],["path",{d:"M18 20c-1.7 0-3-1.3-3-3V4",key:"1gaosr"}]]),qI=i("piano",[["path",{d:"M18.5 8c-1.4 0-2.6-.8-3.2-2A6.87 6.87 0 0 0 2 9v11a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2v-8.5C22 9.6 20.4 8 18.5 8",key:"lag0yf"}],["path",{d:"M2 14h20",key:"myj16y"}],["path",{d:"M6 14v4",key:"9ng0ue"}],["path",{d:"M10 14v4",key:"1v8uk5"}],["path",{d:"M14 14v4",key:"1tqops"}],["path",{d:"M18 14v4",key:"18uqwm"}]]),qJ=i("pickaxe",[["path",{d:"M14.531 12.469 6.619 20.38a1 1 0 1 1-3-3l7.912-7.912",key:"we99rg"}],["path",{d:"M15.686 4.314A12.5 12.5 0 0 0 5.461 2.958 1 1 0 0 0 5.58 4.71a22 22 0 0 1 6.318 3.393",key:"1w6hck"}],["path",{d:"M17.7 3.7a1 1 0 0 0-1.4 0l-4.6 4.6a1 1 0 0 0 0 1.4l2.6 2.6a1 1 0 0 0 1.4 0l4.6-4.6a1 1 0 0 0 0-1.4z",key:"15hgfx"}],["path",{d:"M19.686 8.314a12.501 12.501 0 0 1 1.356 10.225 1 1 0 0 1-1.751-.119 22 22 0 0 0-3.393-6.319",key:"452b4h"}]]),qK=i("picture-in-picture-2",[["path",{d:"M21 9V6a2 2 0 0 0-2-2H4a2 2 0 0 0-2 2v10c0 1.1.9 2 2 2h4",key:"daa4of"}],["rect",{width:"10",height:"7",x:"12",y:"13",rx:"2",key:"1nb8gs"}]]),qL=i("picture-in-picture",[["path",{d:"M2 10h6V4",key:"zwrco"}],["path",{d:"m2 4 6 6",key:"ug085t"}],["path",{d:"M21 10V7a2 2 0 0 0-2-2h-7",key:"git5jr"}],["path",{d:"M3 14v2a2 2 0 0 0 2 2h3",key:"1f7fh3"}],["rect",{x:"12",y:"14",width:"10",height:"7",rx:"1",key:"1wjs3o"}]]),qM=i("piggy-bank",[["path",{d:"M11 17h3v2a1 1 0 0 0 1 1h2a1 1 0 0 0 1-1v-3a3.16 3.16 0 0 0 2-2h1a1 1 0 0 0 1-1v-2a1 1 0 0 0-1-1h-1a5 5 0 0 0-2-4V3a4 4 0 0 0-3.2 1.6l-.3.4H11a6 6 0 0 0-6 6v1a5 5 0 0 0 2 4v3a1 1 0 0 0 1 1h2a1 1 0 0 0 1-1z",key:"1piglc"}],["path",{d:"M16 10h.01",key:"1m94wz"}],["path",{d:"M2 8v1a2 2 0 0 0 2 2h1",key:"1env43"}]]),qN=i("pilcrow-left",[["path",{d:"M14 3v11",key:"mlfb7b"}],["path",{d:"M14 9h-3a3 3 0 0 1 0-6h9",key:"1ulc19"}],["path",{d:"M18 3v11",key:"1phi0r"}],["path",{d:"M22 18H2l4-4",key:"yt65j9"}],["path",{d:"m6 22-4-4",key:"6jgyf5"}]]),qO=i("pilcrow-right",[["path",{d:"M10 3v11",key:"o3l5kj"}],["path",{d:"M10 9H7a1 1 0 0 1 0-6h8",key:"1wb1nc"}],["path",{d:"M14 3v11",key:"mlfb7b"}],["path",{d:"m18 14 4 4H2",key:"4r8io1"}],["path",{d:"m22 18-4 4",key:"1hjjrd"}]]),qP=i("pilcrow",[["path",{d:"M13 4v16",key:"8vvj80"}],["path",{d:"M17 4v16",key:"7dpous"}],["path",{d:"M19 4H9.5a4.5 4.5 0 0 0 0 9H13",key:"sh4n9v"}]]),qQ=i("pill-bottle",[["path",{d:"M18 11h-4a1 1 0 0 0-1 1v5a1 1 0 0 0 1 1h4",key:"17ldeb"}],["path",{d:"M6 7v13a2 2 0 0 0 2 2h8a2 2 0 0 0 2-2V7",key:"nc37y6"}],["rect",{width:"16",height:"5",x:"4",y:"2",rx:"1",key:"3jeezo"}]]),qR=i("pill",[["path",{d:"m10.5 20.5 10-10a4.95 4.95 0 1 0-7-7l-10 10a4.95 4.95 0 1 0 7 7Z",key:"wa1lgi"}],["path",{d:"m8.5 8.5 7 7",key:"rvfmvr"}]]),qS=i("pin-off",[["path",{d:"M12 17v5",key:"bb1du9"}],["path",{d:"M15 9.34V7a1 1 0 0 1 1-1 2 2 0 0 0 0-4H7.89",key:"znwnzq"}],["path",{d:"m2 2 20 20",key:"1ooewy"}],["path",{d:"M9 9v1.76a2 2 0 0 1-1.11 1.79l-1.78.9A2 2 0 0 0 5 15.24V16a1 1 0 0 0 1 1h11",key:"c9qhm2"}]]),qT=i("pin",[["path",{d:"M12 17v5",key:"bb1du9"}],["path",{d:"M9 10.76a2 2 0 0 1-1.11 1.79l-1.78.9A2 2 0 0 0 5 15.24V16a1 1 0 0 0 1 1h12a1 1 0 0 0 1-1v-.76a2 2 0 0 0-1.11-1.79l-1.78-.9A2 2 0 0 1 15 10.76V7a1 1 0 0 1 1-1 2 2 0 0 0 0-4H8a2 2 0 0 0 0 4 1 1 0 0 1 1 1z",key:"1nkz8b"}]]),qU=i("pipette",[["path",{d:"m12 9-8.414 8.414A2 2 0 0 0 3 18.828v1.344a2 2 0 0 1-.586 1.414A2 2 0 0 1 3.828 21h1.344a2 2 0 0 0 1.414-.586L15 12",key:"1y3wsu"}],["path",{d:"m18 9 .4.4a1 1 0 1 1-3 3l-3.8-3.8a1 1 0 1 1 3-3l.4.4 3.4-3.4a1 1 0 1 1 3 3z",key:"110lr1"}],["path",{d:"m2 22 .414-.414",key:"jhxm08"}]]),qV=i("pizza",[["path",{d:"m12 14-1 1",key:"11onhr"}],["path",{d:"m13.75 18.25-1.25 1.42",key:"1yisr3"}],["path",{d:"M17.775 5.654a15.68 15.68 0 0 0-12.121 12.12",key:"1qtqk6"}],["path",{d:"M18.8 9.3a1 1 0 0 0 2.1 7.7",key:"fbbbr2"}],["path",{d:"M21.964 20.732a1 1 0 0 1-1.232 1.232l-18-5a1 1 0 0 1-.695-1.232A19.68 19.68 0 0 1 15.732 2.037a1 1 0 0 1 1.232.695z",key:"1hyfdd"}]]),qW=i("plane-landing",[["path",{d:"M2 22h20",key:"272qi7"}],["path",{d:"M3.77 10.77 2 9l2-4.5 1.1.55c.55.28.9.84.9 1.45s.35 1.17.9 1.45L8 8.5l3-6 1.05.53a2 2 0 0 1 1.09 1.52l.72 5.4a2 2 0 0 0 1.09 1.52l4.4 2.2c.42.22.78.55 1.01.96l.6 1.03c.49.88-.06 1.98-1.06 2.1l-1.18.15c-.47.06-.95-.02-1.37-.24L4.29 11.15a2 2 0 0 1-.52-.38Z",key:"1ma21e"}]]),qX=i("plane-takeoff",[["path",{d:"M2 22h20",key:"272qi7"}],["path",{d:"M6.36 17.4 4 17l-2-4 1.1-.55a2 2 0 0 1 1.8 0l.17.1a2 2 0 0 0 1.8 0L8 12 5 6l.9-.45a2 2 0 0 1 2.09.2l4.02 3a2 2 0 0 0 2.1.2l4.19-2.06a2.41 2.41 0 0 1 1.73-.17L21 7a1.4 1.4 0 0 1 .87 1.99l-.38.76c-.23.46-.6.84-1.07 1.08L7.58 17.2a2 2 0 0 1-1.22.18Z",key:"fkigj9"}]]),qY=i("plane",[["path",{d:"M17.8 19.2 16 11l3.5-3.5C21 6 21.5 4 21 3c-1-.5-3 0-4.5 1.5L13 8 4.8 6.2c-.5-.1-.9.1-1.1.5l-.3.5c-.2.5-.1 1 .3 1.3L9 12l-2 3H4l-1 1 3 2 2 3 1-1v-3l3-2 3.5 5.3c.3.4.8.5 1.3.3l.5-.2c.4-.3.6-.7.5-1.2z",key:"1v9wt8"}]]),qZ=i("play",[["polygon",{points:"6 3 20 12 6 21 6 3",key:"1oa8hb"}]]),q$=i("plug-2",[["path",{d:"M9 2v6",key:"17ngun"}],["path",{d:"M15 2v6",key:"s7yy2p"}],["path",{d:"M12 17v5",key:"bb1du9"}],["path",{d:"M5 8h14",key:"pcz4l3"}],["path",{d:"M6 11V8h12v3a6 6 0 1 1-12 0Z",key:"wtfw2c"}]]),q_=i("plug-zap",[["path",{d:"M6.3 20.3a2.4 2.4 0 0 0 3.4 0L12 18l-6-6-2.3 2.3a2.4 2.4 0 0 0 0 3.4Z",key:"goz73y"}],["path",{d:"m2 22 3-3",key:"19mgm9"}],["path",{d:"M7.5 13.5 10 11",key:"7xgeeb"}],["path",{d:"M10.5 16.5 13 14",key:"10btkg"}],["path",{d:"m18 3-4 4h6l-4 4",key:"16psg9"}]]),q0=i("plug",[["path",{d:"M12 22v-5",key:"1ega77"}],["path",{d:"M9 8V2",key:"14iosj"}],["path",{d:"M15 8V2",key:"18g5xt"}],["path",{d:"M18 8v5a4 4 0 0 1-4 4h-4a4 4 0 0 1-4-4V8Z",key:"osxo6l"}]]),q1=i("plus",[["path",{d:"M5 12h14",key:"1ays0h"}],["path",{d:"M12 5v14",key:"s699le"}]]),q2=i("pocket",[["path",{d:"M20 3a2 2 0 0 1 2 2v6a1 1 0 0 1-20 0V5a2 2 0 0 1 2-2z",key:"1uodqw"}],["path",{d:"m8 10 4 4 4-4",key:"1mxd5q"}]]),q3=i("pocket-knife",[["path",{d:"M3 2v1c0 1 2 1 2 2S3 6 3 7s2 1 2 2-2 1-2 2 2 1 2 2",key:"19w3oe"}],["path",{d:"M18 6h.01",key:"1v4wsw"}],["path",{d:"M6 18h.01",key:"uhywen"}],["path",{d:"M20.83 8.83a4 4 0 0 0-5.66-5.66l-12 12a4 4 0 1 0 5.66 5.66Z",key:"6fykxj"}],["path",{d:"M18 11.66V22a4 4 0 0 0 4-4V6",key:"1utzek"}]]),q4=i("podcast",[["path",{d:"M16.85 18.58a9 9 0 1 0-9.7 0",key:"d71mpg"}],["path",{d:"M8 14a5 5 0 1 1 8 0",key:"fc81rn"}],["circle",{cx:"12",cy:"11",r:"1",key:"1gvufo"}],["path",{d:"M13 17a1 1 0 1 0-2 0l.5 4.5a.5.5 0 1 0 1 0Z",key:"za5kbj"}]]),q5=i("pointer-off",[["path",{d:"M10 4.5V4a2 2 0 0 0-2.41-1.957",key:"jsi14n"}],["path",{d:"M13.9 8.4a2 2 0 0 0-1.26-1.295",key:"hirc7f"}],["path",{d:"M21.7 16.2A8 8 0 0 0 22 14v-3a2 2 0 1 0-4 0v-1a2 2 0 0 0-3.63-1.158",key:"1jxb2e"}],["path",{d:"m7 15-1.8-1.8a2 2 0 0 0-2.79 2.86L6 19.7a7.74 7.74 0 0 0 6 2.3h2a8 8 0 0 0 5.657-2.343",key:"10r7hm"}],["path",{d:"M6 6v8",key:"tv5xkp"}],["path",{d:"m2 2 20 20",key:"1ooewy"}]]),q6=i("pointer",[["path",{d:"M22 14a8 8 0 0 1-8 8",key:"56vcr3"}],["path",{d:"M18 11v-1a2 2 0 0 0-2-2a2 2 0 0 0-2 2",key:"1agjmk"}],["path",{d:"M14 10V9a2 2 0 0 0-2-2a2 2 0 0 0-2 2v1",key:"wdbh2u"}],["path",{d:"M10 9.5V4a2 2 0 0 0-2-2a2 2 0 0 0-2 2v10",key:"1ibuk9"}],["path",{d:"M18 11a2 2 0 1 1 4 0v3a8 8 0 0 1-8 8h-2c-2.8 0-4.5-.86-5.99-2.34l-3.6-3.6a2 2 0 0 1 2.83-2.82L7 15",key:"g6ys72"}]]),q7=i("popcorn",[["path",{d:"M18 8a2 2 0 0 0 0-4 2 2 0 0 0-4 0 2 2 0 0 0-4 0 2 2 0 0 0-4 0 2 2 0 0 0 0 4",key:"10td1f"}],["path",{d:"M10 22 9 8",key:"yjptiv"}],["path",{d:"m14 22 1-14",key:"8jwc8b"}],["path",{d:"M20 8c.5 0 .9.4.8 1l-2.6 12c-.1.5-.7 1-1.2 1H7c-.6 0-1.1-.4-1.2-1L3.2 9c-.1-.6.3-1 .8-1Z",key:"1qo33t"}]]),q8=i("popsicle",[["path",{d:"M18.6 14.4c.8-.8.8-2 0-2.8l-8.1-8.1a4.95 4.95 0 1 0-7.1 7.1l8.1 8.1c.9.7 2.1.7 2.9-.1Z",key:"1o68ps"}],["path",{d:"m22 22-5.5-5.5",key:"17o70y"}]]),q9=i("pound-sterling",[["path",{d:"M18 7c0-5.333-8-5.333-8 0",key:"1prm2n"}],["path",{d:"M10 7v14",key:"18tmcs"}],["path",{d:"M6 21h12",key:"4dkmi1"}],["path",{d:"M6 13h10",key:"ybwr4a"}]]),ra=i("power-off",[["path",{d:"M18.36 6.64A9 9 0 0 1 20.77 15",key:"dxknvb"}],["path",{d:"M6.16 6.16a9 9 0 1 0 12.68 12.68",key:"1x7qb5"}],["path",{d:"M12 2v4",key:"3427ic"}],["path",{d:"m2 2 20 20",key:"1ooewy"}]]),rb=i("power",[["path",{d:"M12 2v10",key:"mnfbl"}],["path",{d:"M18.4 6.6a9 9 0 1 1-12.77.04",key:"obofu9"}]]),rc=i("presentation",[["path",{d:"M2 3h20",key:"91anmk"}],["path",{d:"M21 3v11a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V3",key:"2k9sn8"}],["path",{d:"m7 21 5-5 5 5",key:"bip4we"}]]),rd=i("printer-check",[["path",{d:"M13.5 22H7a1 1 0 0 1-1-1v-6a1 1 0 0 1 1-1h10a1 1 0 0 1 1 1v.5",key:"qeb09x"}],["path",{d:"m16 19 2 2 4-4",key:"1b14m6"}],["path",{d:"M6 18H4a2 2 0 0 1-2-2v-5a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2v2",key:"1md90i"}],["path",{d:"M6 9V3a1 1 0 0 1 1-1h10a1 1 0 0 1 1 1v6",key:"1itne7"}]]),re=i("printer",[["path",{d:"M6 18H4a2 2 0 0 1-2-2v-5a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2v5a2 2 0 0 1-2 2h-2",key:"143wyd"}],["path",{d:"M6 9V3a1 1 0 0 1 1-1h10a1 1 0 0 1 1 1v6",key:"1itne7"}],["rect",{x:"6",y:"14",width:"12",height:"8",rx:"1",key:"1ue0tg"}]]),rf=i("projector",[["path",{d:"M5 7 3 5",key:"1yys58"}],["path",{d:"M9 6V3",key:"1ptz9u"}],["path",{d:"m13 7 2-2",key:"1w3vmq"}],["circle",{cx:"9",cy:"13",r:"3",key:"1mma13"}],["path",{d:"M11.83 12H20a2 2 0 0 1 2 2v4a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2v-4a2 2 0 0 1 2-2h2.17",key:"2frwzc"}],["path",{d:"M16 16h2",key:"dnq2od"}]]),rg=i("proportions",[["rect",{width:"20",height:"16",x:"2",y:"4",rx:"2",key:"18n3k1"}],["path",{d:"M12 9v11",key:"1fnkrn"}],["path",{d:"M2 9h13a2 2 0 0 1 2 2v9",key:"11z3ex"}]]),rh=i("puzzle",[["path",{d:"M15.39 4.39a1 1 0 0 0 1.68-.474 2.5 2.5 0 1 1 3.014 3.015 1 1 0 0 0-.474 1.68l1.683 1.682a2.414 2.414 0 0 1 0 3.414L19.61 15.39a1 1 0 0 1-1.68-.474 2.5 2.5 0 1 0-3.014 3.015 1 1 0 0 1 .474 1.68l-1.683 1.682a2.414 2.414 0 0 1-3.414 0L8.61 19.61a1 1 0 0 0-1.68.474 2.5 2.5 0 1 1-3.014-3.015 1 1 0 0 0 .474-1.68l-1.683-1.682a2.414 2.414 0 0 1 0-3.414L4.39 8.61a1 1 0 0 1 1.68.474 2.5 2.5 0 1 0 3.014-3.015 1 1 0 0 1-.474-1.68l1.683-1.682a2.414 2.414 0 0 1 3.414 0z",key:"w46dr5"}]]),ri=i("pyramid",[["path",{d:"M2.5 16.88a1 1 0 0 1-.32-1.43l9-13.02a1 1 0 0 1 1.64 0l9 13.01a1 1 0 0 1-.32 1.44l-8.51 4.86a2 2 0 0 1-1.98 0Z",key:"aenxs0"}],["path",{d:"M12 2v20",key:"t6zp3m"}]]),rj=i("qr-code",[["rect",{width:"5",height:"5",x:"3",y:"3",rx:"1",key:"1tu5fj"}],["rect",{width:"5",height:"5",x:"16",y:"3",rx:"1",key:"1v8r4q"}],["rect",{width:"5",height:"5",x:"3",y:"16",rx:"1",key:"1x03jg"}],["path",{d:"M21 16h-3a2 2 0 0 0-2 2v3",key:"177gqh"}],["path",{d:"M21 21v.01",key:"ents32"}],["path",{d:"M12 7v3a2 2 0 0 1-2 2H7",key:"8crl2c"}],["path",{d:"M3 12h.01",key:"nlz23k"}],["path",{d:"M12 3h.01",key:"n36tog"}],["path",{d:"M12 16v.01",key:"133mhm"}],["path",{d:"M16 12h1",key:"1slzba"}],["path",{d:"M21 12v.01",key:"1lwtk9"}],["path",{d:"M12 21v-1",key:"1880an"}]]),rk=i("quote",[["path",{d:"M16 3a2 2 0 0 0-2 2v6a2 2 0 0 0 2 2 1 1 0 0 1 1 1v1a2 2 0 0 1-2 2 1 1 0 0 0-1 1v2a1 1 0 0 0 1 1 6 6 0 0 0 6-6V5a2 2 0 0 0-2-2z",key:"rib7q0"}],["path",{d:"M5 3a2 2 0 0 0-2 2v6a2 2 0 0 0 2 2 1 1 0 0 1 1 1v1a2 2 0 0 1-2 2 1 1 0 0 0-1 1v2a1 1 0 0 0 1 1 6 6 0 0 0 6-6V5a2 2 0 0 0-2-2z",key:"1ymkrd"}]]),rl=i("rabbit",[["path",{d:"M13 16a3 3 0 0 1 2.24 5",key:"1epib5"}],["path",{d:"M18 12h.01",key:"yjnet6"}],["path",{d:"M18 21h-8a4 4 0 0 1-4-4 7 7 0 0 1 7-7h.2L9.6 6.4a1 1 0 1 1 2.8-2.8L15.8 7h.2c3.3 0 6 2.7 6 6v1a2 2 0 0 1-2 2h-1a3 3 0 0 0-3 3",key:"ue9ozu"}],["path",{d:"M20 8.54V4a2 2 0 1 0-4 0v3",key:"49iql8"}],["path",{d:"M7.612 12.524a3 3 0 1 0-1.6 4.3",key:"1e33i0"}]]),rm=i("radar",[["path",{d:"M19.07 4.93A10 10 0 0 0 6.99 3.34",key:"z3du51"}],["path",{d:"M4 6h.01",key:"oypzma"}],["path",{d:"M2.29 9.62A10 10 0 1 0 21.31 8.35",key:"qzzz0"}],["path",{d:"M16.24 7.76A6 6 0 1 0 8.23 16.67",key:"1yjesh"}],["path",{d:"M12 18h.01",key:"mhygvu"}],["path",{d:"M17.99 11.66A6 6 0 0 1 15.77 16.67",key:"1u2y91"}],["circle",{cx:"12",cy:"12",r:"2",key:"1c9p78"}],["path",{d:"m13.41 10.59 5.66-5.66",key:"mhq4k0"}]]),rn=i("radical",[["path",{d:"M3 12h3.28a1 1 0 0 1 .948.684l2.298 7.934a.5.5 0 0 0 .96-.044L13.82 4.771A1 1 0 0 1 14.792 4H21",key:"1mqj8i"}]]),ro=i("radiation",[["path",{d:"M12 12h.01",key:"1mp3jc"}],["path",{d:"M14 15.4641a4 4 0 0 1-4 0L7.52786 19.74597 A 1 1 0 0 0 7.99303 21.16211 10 10 0 0 0 16.00697 21.16211 1 1 0 0 0 16.47214 19.74597z",key:"1y4lzb"}],["path",{d:"M16 12a4 4 0 0 0-2-3.464l2.472-4.282a1 1 0 0 1 1.46-.305 10 10 0 0 1 4.006 6.94A1 1 0 0 1 21 12z",key:"163ggk"}],["path",{d:"M8 12a4 4 0 0 1 2-3.464L7.528 4.254a1 1 0 0 0-1.46-.305 10 10 0 0 0-4.006 6.94A1 1 0 0 0 3 12z",key:"1l9i0b"}]]),rp=i("radio-receiver",[["path",{d:"M5 16v2",key:"g5qcv5"}],["path",{d:"M19 16v2",key:"1gbaio"}],["rect",{width:"20",height:"8",x:"2",y:"8",rx:"2",key:"vjsjur"}],["path",{d:"M18 12h.01",key:"yjnet6"}]]),rq=i("radio-tower",[["path",{d:"M4.9 16.1C1 12.2 1 5.8 4.9 1.9",key:"s0qx1y"}],["path",{d:"M7.8 4.7a6.14 6.14 0 0 0-.8 7.5",key:"1idnkw"}],["circle",{cx:"12",cy:"9",r:"2",key:"1092wv"}],["path",{d:"M16.2 4.8c2 2 2.26 5.11.8 7.47",key:"ojru2q"}],["path",{d:"M19.1 1.9a9.96 9.96 0 0 1 0 14.1",key:"rhi7fg"}],["path",{d:"M9.5 18h5",key:"mfy3pd"}],["path",{d:"m8 22 4-11 4 11",key:"25yftu"}]]),rr=i("radius",[["path",{d:"M20.34 17.52a10 10 0 1 0-2.82 2.82",key:"fydyku"}],["circle",{cx:"19",cy:"19",r:"2",key:"17f5cg"}],["path",{d:"m13.41 13.41 4.18 4.18",key:"1gqbwc"}],["circle",{cx:"12",cy:"12",r:"2",key:"1c9p78"}]]),rs=i("radio",[["path",{d:"M16.247 7.761a6 6 0 0 1 0 8.478",key:"1fwjs5"}],["path",{d:"M19.075 4.933a10 10 0 0 1 0 14.134",key:"ehdyv1"}],["path",{d:"M4.925 19.067a10 10 0 0 1 0-14.134",key:"1q22gi"}],["path",{d:"M7.753 16.239a6 6 0 0 1 0-8.478",key:"r2q7qm"}],["circle",{cx:"12",cy:"12",r:"2",key:"1c9p78"}]]),rt=i("rail-symbol",[["path",{d:"M5 15h14",key:"m0yey3"}],["path",{d:"M5 9h14",key:"7tsvo6"}],["path",{d:"m14 20-5-5 6-6-5-5",key:"1jo42i"}]]),ru=i("rainbow",[["path",{d:"M22 17a10 10 0 0 0-20 0",key:"ozegv"}],["path",{d:"M6 17a6 6 0 0 1 12 0",key:"5giftw"}],["path",{d:"M10 17a2 2 0 0 1 4 0",key:"gnsikk"}]]),rv=i("rat",[["path",{d:"M13 22H4a2 2 0 0 1 0-4h12",key:"bt3f23"}],["path",{d:"M13.236 18a3 3 0 0 0-2.2-5",key:"1tbvmo"}],["path",{d:"M16 9h.01",key:"1bdo4e"}],["path",{d:"M16.82 3.94a3 3 0 1 1 3.237 4.868l1.815 2.587a1.5 1.5 0 0 1-1.5 2.1l-2.872-.453a3 3 0 0 0-3.5 3",key:"9ch7kn"}],["path",{d:"M17 4.988a3 3 0 1 0-5.2 2.052A7 7 0 0 0 4 14.015 4 4 0 0 0 8 18",key:"3s7e9i"}]]),rw=i("ratio",[["rect",{width:"12",height:"20",x:"6",y:"2",rx:"2",key:"1oxtiu"}],["rect",{width:"20",height:"12",x:"2",y:"6",rx:"2",key:"9lu3g6"}]]),rx=i("receipt-euro",[["path",{d:"M4 2v20l2-1 2 1 2-1 2 1 2-1 2 1 2-1 2 1V2l-2 1-2-1-2 1-2-1-2 1-2-1-2 1Z",key:"q3az6g"}],["path",{d:"M8 12h5",key:"1g6qi8"}],["path",{d:"M16 9.5a4 4 0 1 0 0 5.2",key:"b2px4r"}]]),ry=i("receipt-cent",[["path",{d:"M4 2v20l2-1 2 1 2-1 2 1 2-1 2 1 2-1 2 1V2l-2 1-2-1-2 1-2-1-2 1-2-1-2 1Z",key:"q3az6g"}],["path",{d:"M12 6.5v11",key:"ecfhkf"}],["path",{d:"M15 9.4a4 4 0 1 0 0 5.2",key:"1makmb"}]]),rz=i("receipt-indian-rupee",[["path",{d:"M4 2v20l2-1 2 1 2-1 2 1 2-1 2 1 2-1 2 1V2l-2 1-2-1-2 1-2-1-2 1-2-1-2 1Z",key:"q3az6g"}],["path",{d:"M8 7h8",key:"i86dvs"}],["path",{d:"M12 17.5 8 15h1a4 4 0 0 0 0-8",key:"grpkl4"}],["path",{d:"M8 11h8",key:"vwpz6n"}]]),rA=i("receipt-japanese-yen",[["path",{d:"M4 2v20l2-1 2 1 2-1 2 1 2-1 2 1 2-1 2 1V2l-2 1-2-1-2 1-2-1-2 1-2-1-2 1Z",key:"q3az6g"}],["path",{d:"m12 10 3-3",key:"1mc12w"}],["path",{d:"m9 7 3 3v7.5",key:"39i0xv"}],["path",{d:"M9 11h6",key:"1fldmi"}],["path",{d:"M9 15h6",key:"cctwl0"}]]),rB=i("receipt-pound-sterling",[["path",{d:"M4 2v20l2-1 2 1 2-1 2 1 2-1 2 1 2-1 2 1V2l-2 1-2-1-2 1-2-1-2 1-2-1-2 1Z",key:"q3az6g"}],["path",{d:"M8 13h5",key:"1k9z8w"}],["path",{d:"M10 17V9.5a2.5 2.5 0 0 1 5 0",key:"1dzgp0"}],["path",{d:"M8 17h7",key:"8mjdqu"}]]),rC=i("receipt-russian-ruble",[["path",{d:"M4 2v20l2-1 2 1 2-1 2 1 2-1 2 1 2-1 2 1V2l-2 1-2-1-2 1-2-1-2 1-2-1-2 1Z",key:"q3az6g"}],["path",{d:"M8 15h5",key:"vxg57a"}],["path",{d:"M8 11h5a2 2 0 1 0 0-4h-3v10",key:"1usi5u"}]]),rD=i("receipt-swiss-franc",[["path",{d:"M4 2v20l2-1 2 1 2-1 2 1 2-1 2 1 2-1 2 1V2l-2 1-2-1-2 1-2-1-2 1-2-1-2 1Z",key:"q3az6g"}],["path",{d:"M10 17V7h5",key:"k7jq18"}],["path",{d:"M10 11h4",key:"1i0mka"}],["path",{d:"M8 15h5",key:"vxg57a"}]]),rE=i("receipt-text",[["path",{d:"M4 2v20l2-1 2 1 2-1 2 1 2-1 2 1 2-1 2 1V2l-2 1-2-1-2 1-2-1-2 1-2-1-2 1Z",key:"q3az6g"}],["path",{d:"M14 8H8",key:"1l3xfs"}],["path",{d:"M16 12H8",key:"1fr5h0"}],["path",{d:"M13 16H8",key:"wsln4y"}]]),rF=i("rectangle-circle",[["path",{d:"M14 4v16H3a1 1 0 0 1-1-1V5a1 1 0 0 1 1-1z",key:"1m5n7q"}],["circle",{cx:"14",cy:"12",r:"8",key:"1pag6k"}]]),rG=i("receipt",[["path",{d:"M4 2v20l2-1 2 1 2-1 2 1 2-1 2 1 2-1 2 1V2l-2 1-2-1-2 1-2-1-2 1-2-1-2 1Z",key:"q3az6g"}],["path",{d:"M16 8h-6a2 2 0 1 0 0 4h4a2 2 0 1 1 0 4H8",key:"1h4pet"}],["path",{d:"M12 17.5v-11",key:"1jc1ny"}]]),rH=i("rectangle-ellipsis",[["rect",{width:"20",height:"12",x:"2",y:"6",rx:"2",key:"9lu3g6"}],["path",{d:"M12 12h.01",key:"1mp3jc"}],["path",{d:"M17 12h.01",key:"1m0b6t"}],["path",{d:"M7 12h.01",key:"eqddd0"}]]),rI=i("rectangle-goggles",[["path",{d:"M20 6a2 2 0 0 1 2 2v8a2 2 0 0 1-2 2h-4a2 2 0 0 1-1.6-.8l-1.6-2.13a1 1 0 0 0-1.6 0L9.6 17.2A2 2 0 0 1 8 18H4a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2z",key:"d5y1f"}]]),rJ=i("rectangle-horizontal",[["rect",{width:"20",height:"12",x:"2",y:"6",rx:"2",key:"9lu3g6"}]]),rK=i("recycle",[["path",{d:"M7 19H4.815a1.83 1.83 0 0 1-1.57-.881 1.785 1.785 0 0 1-.004-1.784L7.196 9.5",key:"x6z5xu"}],["path",{d:"M11 19h8.203a1.83 1.83 0 0 0 1.556-.89 1.784 1.784 0 0 0 0-1.775l-1.226-2.12",key:"1x4zh5"}],["path",{d:"m14 16-3 3 3 3",key:"f6jyew"}],["path",{d:"M8.293 13.596 7.196 9.5 3.1 10.598",key:"wf1obh"}],["path",{d:"m9.344 5.811 1.093-1.892A1.83 1.83 0 0 1 11.985 3a1.784 1.784 0 0 1 1.546.888l3.943 6.843",key:"9tzpgr"}],["path",{d:"m13.378 9.633 4.096 1.098 1.097-4.096",key:"1oe83g"}]]),rL=i("rectangle-vertical",[["rect",{width:"12",height:"20",x:"6",y:"2",rx:"2",key:"1oxtiu"}]]),rM=i("redo-dot",[["circle",{cx:"12",cy:"17",r:"1",key:"1ixnty"}],["path",{d:"M21 7v6h-6",key:"3ptur4"}],["path",{d:"M3 17a9 9 0 0 1 9-9 9 9 0 0 1 6 2.3l3 2.7",key:"1kgawr"}]]),rN=i("redo-2",[["path",{d:"m15 14 5-5-5-5",key:"12vg1m"}],["path",{d:"M20 9H9.5A5.5 5.5 0 0 0 4 14.5A5.5 5.5 0 0 0 9.5 20H13",key:"6uklza"}]]),rO=i("redo",[["path",{d:"M21 7v6h-6",key:"3ptur4"}],["path",{d:"M3 17a9 9 0 0 1 9-9 9 9 0 0 1 6 2.3l3 2.7",key:"1kgawr"}]]),rP=i("refresh-ccw-dot",[["path",{d:"M3 2v6h6",key:"18ldww"}],["path",{d:"M21 12A9 9 0 0 0 6 5.3L3 8",key:"1pbrqz"}],["path",{d:"M21 22v-6h-6",key:"usdfbe"}],["path",{d:"M3 12a9 9 0 0 0 15 6.7l3-2.7",key:"1hosoe"}],["circle",{cx:"12",cy:"12",r:"1",key:"41hilf"}]]),rQ=i("refresh-ccw",[["path",{d:"M21 12a9 9 0 0 0-9-9 9.75 9.75 0 0 0-6.74 2.74L3 8",key:"14sxne"}],["path",{d:"M3 3v5h5",key:"1xhq8a"}],["path",{d:"M3 12a9 9 0 0 0 9 9 9.75 9.75 0 0 0 6.74-2.74L21 16",key:"1hlbsb"}],["path",{d:"M16 16h5v5",key:"ccwih5"}]]),rR=i("refresh-cw-off",[["path",{d:"M21 8L18.74 5.74A9.75 9.75 0 0 0 12 3C11 3 10.03 3.16 9.13 3.47",key:"1krf6h"}],["path",{d:"M8 16H3v5",key:"1cv678"}],["path",{d:"M3 12C3 9.51 4 7.26 5.64 5.64",key:"ruvoct"}],["path",{d:"m3 16 2.26 2.26A9.75 9.75 0 0 0 12 21c2.49 0 4.74-1 6.36-2.64",key:"19q130"}],["path",{d:"M21 12c0 1-.16 1.97-.47 2.87",key:"4w8emr"}],["path",{d:"M21 3v5h-5",key:"1q7to0"}],["path",{d:"M22 22 2 2",key:"1r8tn9"}]]),rS=i("refresh-cw",[["path",{d:"M3 12a9 9 0 0 1 9-9 9.75 9.75 0 0 1 6.74 2.74L21 8",key:"v9h5vc"}],["path",{d:"M21 3v5h-5",key:"1q7to0"}],["path",{d:"M21 12a9 9 0 0 1-9 9 9.75 9.75 0 0 1-6.74-2.74L3 16",key:"3uifl3"}],["path",{d:"M8 16H3v5",key:"1cv678"}]]),rT=i("refrigerator",[["path",{d:"M5 6a4 4 0 0 1 4-4h6a4 4 0 0 1 4 4v14a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2V6Z",key:"fpq118"}],["path",{d:"M5 10h14",key:"elsbfy"}],["path",{d:"M15 7v6",key:"1nx30x"}]]),rU=i("regex",[["path",{d:"M17 3v10",key:"15fgeh"}],["path",{d:"m12.67 5.5 8.66 5",key:"1gpheq"}],["path",{d:"m12.67 10.5 8.66-5",key:"1dkfa6"}],["path",{d:"M9 17a2 2 0 0 0-2-2H5a2 2 0 0 0-2 2v2a2 2 0 0 0 2 2h2a2 2 0 0 0 2-2v-2z",key:"swwfx4"}]]),rV=i("remove-formatting",[["path",{d:"M4 7V4h16v3",key:"9msm58"}],["path",{d:"M5 20h6",key:"1h6pxn"}],["path",{d:"M13 4 8 20",key:"kqq6aj"}],["path",{d:"m15 15 5 5",key:"me55sn"}],["path",{d:"m20 15-5 5",key:"11p7ol"}]]),rW=i("repeat-2",[["path",{d:"m2 9 3-3 3 3",key:"1ltn5i"}],["path",{d:"M13 18H7a2 2 0 0 1-2-2V6",key:"1r6tfw"}],["path",{d:"m22 15-3 3-3-3",key:"4rnwn2"}],["path",{d:"M11 6h6a2 2 0 0 1 2 2v10",key:"2f72bc"}]]),rX=i("repeat",[["path",{d:"m17 2 4 4-4 4",key:"nntrym"}],["path",{d:"M3 11v-1a4 4 0 0 1 4-4h14",key:"84bu3i"}],["path",{d:"m7 22-4-4 4-4",key:"1wqhfi"}],["path",{d:"M21 13v1a4 4 0 0 1-4 4H3",key:"1rx37r"}]]),rY=i("repeat-1",[["path",{d:"m17 2 4 4-4 4",key:"nntrym"}],["path",{d:"M3 11v-1a4 4 0 0 1 4-4h14",key:"84bu3i"}],["path",{d:"m7 22-4-4 4-4",key:"1wqhfi"}],["path",{d:"M21 13v1a4 4 0 0 1-4 4H3",key:"1rx37r"}],["path",{d:"M11 10h1v4",key:"70cz1p"}]]),rZ=i("replace-all",[["path",{d:"M14 14a2 2 0 0 1 2 2v4a2 2 0 0 1-2 2",key:"1yyzbs"}],["path",{d:"M14 4a2 2 0 0 1 2-2",key:"1w2hp7"}],["path",{d:"M16 10a2 2 0 0 1-2-2",key:"shjach"}],["path",{d:"M20 14a2 2 0 0 1 2 2v4a2 2 0 0 1-2 2",key:"zfj4xr"}],["path",{d:"M20 2a2 2 0 0 1 2 2",key:"188mtx"}],["path",{d:"M22 8a2 2 0 0 1-2 2",key:"ddf4tu"}],["path",{d:"m3 7 3 3 3-3",key:"x25e72"}],["path",{d:"M6 10V5a 3 3 0 0 1 3-3h1",key:"1ageje"}],["rect",{x:"2",y:"14",width:"8",height:"8",rx:"2",key:"4rksxw"}]]),r$=i("replace",[["path",{d:"M14 4a2 2 0 0 1 2-2",key:"1w2hp7"}],["path",{d:"M16 10a2 2 0 0 1-2-2",key:"shjach"}],["path",{d:"M20 2a2 2 0 0 1 2 2",key:"188mtx"}],["path",{d:"M22 8a2 2 0 0 1-2 2",key:"ddf4tu"}],["path",{d:"m3 7 3 3 3-3",key:"x25e72"}],["path",{d:"M6 10V5a3 3 0 0 1 3-3h1",key:"3y3t5z"}],["rect",{x:"2",y:"14",width:"8",height:"8",rx:"2",key:"4rksxw"}]]),r_=i("reply-all",[["path",{d:"m12 17-5-5 5-5",key:"1s3y5u"}],["path",{d:"M22 18v-2a4 4 0 0 0-4-4H7",key:"1fcyog"}],["path",{d:"m7 17-5-5 5-5",key:"1ed8i2"}]]),r0=i("reply",[["path",{d:"M20 18v-2a4 4 0 0 0-4-4H4",key:"5vmcpk"}],["path",{d:"m9 17-5-5 5-5",key:"nvlc11"}]]),r1=i("rewind",[["polygon",{points:"11 19 2 12 11 5 11 19",key:"14yba5"}],["polygon",{points:"22 19 13 12 22 5 22 19",key:"1pi1cj"}]]),r2=i("ribbon",[["path",{d:"M12 11.22C11 9.997 10 9 10 8a2 2 0 0 1 4 0c0 1-.998 2.002-2.01 3.22",key:"1rnhq3"}],["path",{d:"m12 18 2.57-3.5",key:"116vt7"}],["path",{d:"M6.243 9.016a7 7 0 0 1 11.507-.009",key:"10dq0b"}],["path",{d:"M9.35 14.53 12 11.22",key:"tdsyp2"}],["path",{d:"M9.35 14.53C7.728 12.246 6 10.221 6 7a6 5 0 0 1 12 0c-.005 3.22-1.778 5.235-3.43 7.5l3.557 4.527a1 1 0 0 1-.203 1.43l-1.894 1.36a1 1 0 0 1-1.384-.215L12 18l-2.679 3.593a1 1 0 0 1-1.39.213l-1.865-1.353a1 1 0 0 1-.203-1.422z",key:"nmifey"}]]),r3=i("rocket",[["path",{d:"M4.5 16.5c-1.5 1.26-2 5-2 5s3.74-.5 5-2c.71-.84.7-2.13-.09-2.91a2.18 2.18 0 0 0-2.91-.09z",key:"m3kijz"}],["path",{d:"m12 15-3-3a22 22 0 0 1 2-3.95A12.88 12.88 0 0 1 22 2c0 2.72-.78 7.5-6 11a22.35 22.35 0 0 1-4 2z",key:"1fmvmk"}],["path",{d:"M9 12H4s.55-3.03 2-4c1.62-1.08 5 0 5 0",key:"1f8sc4"}],["path",{d:"M12 15v5s3.03-.55 4-2c1.08-1.62 0-5 0-5",key:"qeys4"}]]),r4=i("rocking-chair",[["polyline",{points:"3.5 2 6.5 12.5 18 12.5",key:"y3iy52"}],["line",{x1:"9.5",x2:"5.5",y1:"12.5",y2:"20",key:"19vg5i"}],["line",{x1:"15",x2:"18.5",y1:"12.5",y2:"20",key:"1inpmv"}],["path",{d:"M2.75 18a13 13 0 0 0 18.5 0",key:"1nquas"}]]),r5=i("roller-coaster",[["path",{d:"M6 19V5",key:"1r845m"}],["path",{d:"M10 19V6.8",key:"9j2tfs"}],["path",{d:"M14 19v-7.8",key:"10s8qv"}],["path",{d:"M18 5v4",key:"1tajlv"}],["path",{d:"M18 19v-6",key:"ielfq3"}],["path",{d:"M22 19V9",key:"158nzp"}],["path",{d:"M2 19V9a4 4 0 0 1 4-4c2 0 4 1.33 6 4s4 4 6 4a4 4 0 1 0-3-6.65",key:"1930oh"}]]),r6=i("rotate-3d",[["path",{d:"M16.466 7.5C15.643 4.237 13.952 2 12 2 9.239 2 7 6.477 7 12s2.239 10 5 10c.342 0 .677-.069 1-.2",key:"10n0gc"}],["path",{d:"m15.194 13.707 3.814 1.86-1.86 3.814",key:"16shm9"}],["path",{d:"M19 15.57c-1.804.885-4.274 1.43-7 1.43-5.523 0-10-2.239-10-5s4.477-5 10-5c4.838 0 8.873 1.718 9.8 4",key:"1lxi77"}]]),r7=i("rotate-ccw-key",[["path",{d:"m14.5 9.5 1 1",key:"159eiq"}],["path",{d:"m15.5 8.5-4 4",key:"iirg3q"}],["path",{d:"M3 12a9 9 0 1 0 9-9 9.74 9.74 0 0 0-6.74 2.74L3 8",key:"g2jlw"}],["path",{d:"M3 3v5h5",key:"1xhq8a"}],["circle",{cx:"10",cy:"14",r:"2",key:"1239so"}]]),r8=i("rotate-ccw-square",[["path",{d:"M20 9V7a2 2 0 0 0-2-2h-6",key:"19z8uc"}],["path",{d:"m15 2-3 3 3 3",key:"177bxs"}],["path",{d:"M20 13v5a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V7a2 2 0 0 1 2-2h2",key:"d36hnl"}]]),r9=i("rotate-ccw",[["path",{d:"M3 12a9 9 0 1 0 9-9 9.75 9.75 0 0 0-6.74 2.74L3 8",key:"1357e3"}],["path",{d:"M3 3v5h5",key:"1xhq8a"}]]),sa=i("rotate-cw-square",[["path",{d:"M12 5H6a2 2 0 0 0-2 2v3",key:"l96uqu"}],["path",{d:"m9 8 3-3-3-3",key:"1gzgc3"}],["path",{d:"M4 14v4a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7a2 2 0 0 0-2-2h-2",key:"1w2k5h"}]]),sb=i("rotate-cw",[["path",{d:"M21 12a9 9 0 1 1-9-9c2.52 0 4.93 1 6.74 2.74L21 8",key:"1p45f6"}],["path",{d:"M21 3v5h-5",key:"1q7to0"}]]),sc=i("route-off",[["circle",{cx:"6",cy:"19",r:"3",key:"1kj8tv"}],["path",{d:"M9 19h8.5c.4 0 .9-.1 1.3-.2",key:"1effex"}],["path",{d:"M5.2 5.2A3.5 3.53 0 0 0 6.5 12H12",key:"k9y2ds"}],["path",{d:"m2 2 20 20",key:"1ooewy"}],["path",{d:"M21 15.3a3.5 3.5 0 0 0-3.3-3.3",key:"11nlu2"}],["path",{d:"M15 5h-4.3",key:"6537je"}],["circle",{cx:"18",cy:"5",r:"3",key:"gq8acd"}]]),sd=i("route",[["circle",{cx:"6",cy:"19",r:"3",key:"1kj8tv"}],["path",{d:"M9 19h8.5a3.5 3.5 0 0 0 0-7h-11a3.5 3.5 0 0 1 0-7H15",key:"1d8sl"}],["circle",{cx:"18",cy:"5",r:"3",key:"gq8acd"}]]),se=i("router",[["rect",{width:"20",height:"8",x:"2",y:"14",rx:"2",key:"w68u3i"}],["path",{d:"M6.01 18H6",key:"19vcac"}],["path",{d:"M10.01 18H10",key:"uamcmx"}],["path",{d:"M15 10v4",key:"qjz1xs"}],["path",{d:"M17.84 7.17a4 4 0 0 0-5.66 0",key:"1rif40"}],["path",{d:"M20.66 4.34a8 8 0 0 0-11.31 0",key:"6a5xfq"}]]),sf=i("rows-2",[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",key:"afitv7"}],["path",{d:"M3 12h18",key:"1i2n21"}]]),sg=i("rows-3",[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",key:"afitv7"}],["path",{d:"M21 9H3",key:"1338ky"}],["path",{d:"M21 15H3",key:"9uk58r"}]]),sh=i("rows-4",[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",key:"afitv7"}],["path",{d:"M21 7.5H3",key:"1hm9pq"}],["path",{d:"M21 12H3",key:"2avoz0"}],["path",{d:"M21 16.5H3",key:"n7jzkj"}]]),si=i("rss",[["path",{d:"M4 11a9 9 0 0 1 9 9",key:"pv89mb"}],["path",{d:"M4 4a16 16 0 0 1 16 16",key:"k0647b"}],["circle",{cx:"5",cy:"19",r:"1",key:"bfqh0e"}]]),sj=i("ruler-dimension-line",[["path",{d:"M12 15v-3.014",key:"aw6ppf"}],["path",{d:"M16 15v-3.014",key:"9e0vc7"}],["path",{d:"M20 6H4",key:"1lfz86"}],["path",{d:"M20 8V4",key:"1l2g47"}],["path",{d:"M4 8V4",key:"sppxzt"}],["path",{d:"M8 15v-3.014",key:"when08"}],["rect",{x:"3",y:"12",width:"18",height:"7",rx:"1",key:"1ucwdz"}]]),sk=i("ruler",[["path",{d:"M21.3 15.3a2.4 2.4 0 0 1 0 3.4l-2.6 2.6a2.4 2.4 0 0 1-3.4 0L2.7 8.7a2.41 2.41 0 0 1 0-3.4l2.6-2.6a2.41 2.41 0 0 1 3.4 0Z",key:"icamh8"}],["path",{d:"m14.5 12.5 2-2",key:"inckbg"}],["path",{d:"m11.5 9.5 2-2",key:"fmmyf7"}],["path",{d:"m8.5 6.5 2-2",key:"vc6u1g"}],["path",{d:"m17.5 15.5 2-2",key:"wo5hmg"}]]),sl=i("russian-ruble",[["path",{d:"M6 11h8a4 4 0 0 0 0-8H9v18",key:"18ai8t"}],["path",{d:"M6 15h8",key:"1y8f6l"}]]),sm=i("sailboat",[["path",{d:"M22 18H2a4 4 0 0 0 4 4h12a4 4 0 0 0 4-4Z",key:"1404fh"}],["path",{d:"M21 14 10 2 3 14h18Z",key:"1nzg7v"}],["path",{d:"M10 2v16",key:"1labyt"}]]),sn=i("salad",[["path",{d:"M7 21h10",key:"1b0cd5"}],["path",{d:"M12 21a9 9 0 0 0 9-9H3a9 9 0 0 0 9 9Z",key:"4rw317"}],["path",{d:"M11.38 12a2.4 2.4 0 0 1-.4-4.77 2.4 2.4 0 0 1 3.2-2.77 2.4 2.4 0 0 1 3.47-.63 2.4 2.4 0 0 1 3.37 3.37 2.4 2.4 0 0 1-1.1 3.7 2.51 2.51 0 0 1 .03 1.1",key:"10xrj0"}],["path",{d:"m13 12 4-4",key:"1hckqy"}],["path",{d:"M10.9 7.25A3.99 3.99 0 0 0 4 10c0 .73.2 1.41.54 2",key:"1p4srx"}]]),so=i("sandwich",[["path",{d:"m2.37 11.223 8.372-6.777a2 2 0 0 1 2.516 0l8.371 6.777",key:"f1wd0e"}],["path",{d:"M21 15a1 1 0 0 1 1 1v2a1 1 0 0 1-1 1h-5.25",key:"1pfu07"}],["path",{d:"M3 15a1 1 0 0 0-1 1v2a1 1 0 0 0 1 1h9",key:"1oq9qw"}],["path",{d:"m6.67 15 6.13 4.6a2 2 0 0 0 2.8-.4l3.15-4.2",key:"1fnwu5"}],["rect",{width:"20",height:"4",x:"2",y:"11",rx:"1",key:"itshg"}]]),sp=i("satellite-dish",[["path",{d:"M4 10a7.31 7.31 0 0 0 10 10Z",key:"1fzpp3"}],["path",{d:"m9 15 3-3",key:"88sc13"}],["path",{d:"M17 13a6 6 0 0 0-6-6",key:"15cc6u"}],["path",{d:"M21 13A10 10 0 0 0 11 3",key:"11nf8s"}]]),sq=i("satellite",[["path",{d:"m13.5 6.5-3.148-3.148a1.205 1.205 0 0 0-1.704 0L6.352 5.648a1.205 1.205 0 0 0 0 1.704L9.5 10.5",key:"dzhfyz"}],["path",{d:"M16.5 7.5 19 5",key:"1ltcjm"}],["path",{d:"m17.5 10.5 3.148 3.148a1.205 1.205 0 0 1 0 1.704l-2.296 2.296a1.205 1.205 0 0 1-1.704 0L13.5 14.5",key:"nfoymv"}],["path",{d:"M9 21a6 6 0 0 0-6-6",key:"1iajcf"}],["path",{d:"M9.352 10.648a1.205 1.205 0 0 0 0 1.704l2.296 2.296a1.205 1.205 0 0 0 1.704 0l4.296-4.296a1.205 1.205 0 0 0 0-1.704l-2.296-2.296a1.205 1.205 0 0 0-1.704 0z",key:"nv9zqy"}]]),sr=i("saudi-riyal",[["path",{d:"m20 19.5-5.5 1.2",key:"1aenhr"}],["path",{d:"M14.5 4v11.22a1 1 0 0 0 1.242.97L20 15.2",key:"2rtezt"}],["path",{d:"m2.978 19.351 5.549-1.363A2 2 0 0 0 10 16V2",key:"1kbm92"}],["path",{d:"M20 10 4 13.5",key:"8nums9"}]]),ss=i("save-all",[["path",{d:"M10 2v3a1 1 0 0 0 1 1h5",key:"1xspal"}],["path",{d:"M18 18v-6a1 1 0 0 0-1-1h-6a1 1 0 0 0-1 1v6",key:"1ra60u"}],["path",{d:"M18 22H4a2 2 0 0 1-2-2V6",key:"pblm9e"}],["path",{d:"M8 18a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9.172a2 2 0 0 1 1.414.586l2.828 2.828A2 2 0 0 1 22 6.828V16a2 2 0 0 1-2.01 2z",key:"1yve0x"}]]),st=i("save-off",[["path",{d:"M13 13H8a1 1 0 0 0-1 1v7",key:"h8g396"}],["path",{d:"M14 8h1",key:"1lfen6"}],["path",{d:"M17 21v-4",key:"1yknxs"}],["path",{d:"m2 2 20 20",key:"1ooewy"}],["path",{d:"M20.41 20.41A2 2 0 0 1 19 21H5a2 2 0 0 1-2-2V5a2 2 0 0 1 .59-1.41",key:"1t4vdl"}],["path",{d:"M29.5 11.5s5 5 4 5",key:"zzn4i6"}],["path",{d:"M9 3h6.2a2 2 0 0 1 1.4.6l3.8 3.8a2 2 0 0 1 .6 1.4V15",key:"24cby9"}]]),su=i("save",[["path",{d:"M15.2 3a2 2 0 0 1 1.4.6l3.8 3.8a2 2 0 0 1 .6 1.4V19a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2z",key:"1c8476"}],["path",{d:"M17 21v-7a1 1 0 0 0-1-1H8a1 1 0 0 0-1 1v7",key:"1ydtos"}],["path",{d:"M7 3v4a1 1 0 0 0 1 1h7",key:"t51u73"}]]),sv=i("scale-3d",[["path",{d:"M5 7v11a1 1 0 0 0 1 1h11",key:"13dt1j"}],["path",{d:"M5.293 18.707 11 13",key:"ezgbsx"}],["circle",{cx:"19",cy:"19",r:"2",key:"17f5cg"}],["circle",{cx:"5",cy:"5",r:"2",key:"1gwv83"}]]),sw=i("scale",[["path",{d:"m16 16 3-8 3 8c-.87.65-1.92 1-3 1s-2.13-.35-3-1Z",key:"7g6ntu"}],["path",{d:"m2 16 3-8 3 8c-.87.65-1.92 1-3 1s-2.13-.35-3-1Z",key:"ijws7r"}],["path",{d:"M7 21h10",key:"1b0cd5"}],["path",{d:"M12 3v18",key:"108xh3"}],["path",{d:"M3 7h2c2 0 5-1 7-2 2 1 5 2 7 2h2",key:"3gwbw2"}]]),sx=i("scaling",[["path",{d:"M12 3H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7",key:"1m0v6g"}],["path",{d:"M14 15H9v-5",key:"pi4jk9"}],["path",{d:"M16 3h5v5",key:"1806ms"}],["path",{d:"M21 3 9 15",key:"15kdhq"}]]),sy=i("scan-barcode",[["path",{d:"M3 7V5a2 2 0 0 1 2-2h2",key:"aa7l1z"}],["path",{d:"M17 3h2a2 2 0 0 1 2 2v2",key:"4qcy5o"}],["path",{d:"M21 17v2a2 2 0 0 1-2 2h-2",key:"6vwrx8"}],["path",{d:"M7 21H5a2 2 0 0 1-2-2v-2",key:"ioqczr"}],["path",{d:"M8 7v10",key:"23sfjj"}],["path",{d:"M12 7v10",key:"jspqdw"}],["path",{d:"M17 7v10",key:"578dap"}]]),sz=i("scan-eye",[["path",{d:"M3 7V5a2 2 0 0 1 2-2h2",key:"aa7l1z"}],["path",{d:"M17 3h2a2 2 0 0 1 2 2v2",key:"4qcy5o"}],["path",{d:"M21 17v2a2 2 0 0 1-2 2h-2",key:"6vwrx8"}],["path",{d:"M7 21H5a2 2 0 0 1-2-2v-2",key:"ioqczr"}],["circle",{cx:"12",cy:"12",r:"1",key:"41hilf"}],["path",{d:"M18.944 12.33a1 1 0 0 0 0-.66 7.5 7.5 0 0 0-13.888 0 1 1 0 0 0 0 .66 7.5 7.5 0 0 0 13.888 0",key:"11ak4c"}]]),sA=i("scan-face",[["path",{d:"M3 7V5a2 2 0 0 1 2-2h2",key:"aa7l1z"}],["path",{d:"M17 3h2a2 2 0 0 1 2 2v2",key:"4qcy5o"}],["path",{d:"M21 17v2a2 2 0 0 1-2 2h-2",key:"6vwrx8"}],["path",{d:"M7 21H5a2 2 0 0 1-2-2v-2",key:"ioqczr"}],["path",{d:"M8 14s1.5 2 4 2 4-2 4-2",key:"1y1vjs"}],["path",{d:"M9 9h.01",key:"1q5me6"}],["path",{d:"M15 9h.01",key:"x1ddxp"}]]),sB=i("scan-heart",[["path",{d:"M11.246 16.657a1 1 0 0 0 1.508 0l3.57-4.101A2.75 2.75 0 1 0 12 9.168a2.75 2.75 0 1 0-4.324 3.388z",key:"1algrk"}],["path",{d:"M17 3h2a2 2 0 0 1 2 2v2",key:"4qcy5o"}],["path",{d:"M21 17v2a2 2 0 0 1-2 2h-2",key:"6vwrx8"}],["path",{d:"M3 7V5a2 2 0 0 1 2-2h2",key:"aa7l1z"}],["path",{d:"M7 21H5a2 2 0 0 1-2-2v-2",key:"ioqczr"}]]),sC=i("scan-line",[["path",{d:"M3 7V5a2 2 0 0 1 2-2h2",key:"aa7l1z"}],["path",{d:"M17 3h2a2 2 0 0 1 2 2v2",key:"4qcy5o"}],["path",{d:"M21 17v2a2 2 0 0 1-2 2h-2",key:"6vwrx8"}],["path",{d:"M7 21H5a2 2 0 0 1-2-2v-2",key:"ioqczr"}],["path",{d:"M7 12h10",key:"b7w52i"}]]),sD=i("scan-qr-code",[["path",{d:"M17 12v4a1 1 0 0 1-1 1h-4",key:"uk4fdo"}],["path",{d:"M17 3h2a2 2 0 0 1 2 2v2",key:"4qcy5o"}],["path",{d:"M17 8V7",key:"q2g9wo"}],["path",{d:"M21 17v2a2 2 0 0 1-2 2h-2",key:"6vwrx8"}],["path",{d:"M3 7V5a2 2 0 0 1 2-2h2",key:"aa7l1z"}],["path",{d:"M7 17h.01",key:"19xn7k"}],["path",{d:"M7 21H5a2 2 0 0 1-2-2v-2",key:"ioqczr"}],["rect",{x:"7",y:"7",width:"5",height:"5",rx:"1",key:"m9kyts"}]]),sE=i("scan-search",[["path",{d:"M3 7V5a2 2 0 0 1 2-2h2",key:"aa7l1z"}],["path",{d:"M17 3h2a2 2 0 0 1 2 2v2",key:"4qcy5o"}],["path",{d:"M21 17v2a2 2 0 0 1-2 2h-2",key:"6vwrx8"}],["path",{d:"M7 21H5a2 2 0 0 1-2-2v-2",key:"ioqczr"}],["circle",{cx:"12",cy:"12",r:"3",key:"1v7zrd"}],["path",{d:"m16 16-1.9-1.9",key:"1dq9hf"}]]),sF=i("scan-text",[["path",{d:"M3 7V5a2 2 0 0 1 2-2h2",key:"aa7l1z"}],["path",{d:"M17 3h2a2 2 0 0 1 2 2v2",key:"4qcy5o"}],["path",{d:"M21 17v2a2 2 0 0 1-2 2h-2",key:"6vwrx8"}],["path",{d:"M7 21H5a2 2 0 0 1-2-2v-2",key:"ioqczr"}],["path",{d:"M7 8h8",key:"1jbsf9"}],["path",{d:"M7 12h10",key:"b7w52i"}],["path",{d:"M7 16h6",key:"1vyc9m"}]]),sG=i("scan",[["path",{d:"M3 7V5a2 2 0 0 1 2-2h2",key:"aa7l1z"}],["path",{d:"M17 3h2a2 2 0 0 1 2 2v2",key:"4qcy5o"}],["path",{d:"M21 17v2a2 2 0 0 1-2 2h-2",key:"6vwrx8"}],["path",{d:"M7 21H5a2 2 0 0 1-2-2v-2",key:"ioqczr"}]]),sH=i("school",[["path",{d:"M14 22v-4a2 2 0 1 0-4 0v4",key:"hhkicm"}],["path",{d:"m18 10 3.447 1.724a1 1 0 0 1 .553.894V20a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2v-7.382a1 1 0 0 1 .553-.894L6 10",key:"1xqip1"}],["path",{d:"M18 5v17",key:"1sw6gf"}],["path",{d:"m4 6 7.106-3.553a2 2 0 0 1 1.788 0L20 6",key:"9d2mlk"}],["path",{d:"M6 5v17",key:"1xfsm0"}],["circle",{cx:"12",cy:"9",r:"2",key:"1092wv"}]]),sI=i("scissors-line-dashed",[["path",{d:"M5.42 9.42 8 12",key:"12pkuq"}],["circle",{cx:"4",cy:"8",r:"2",key:"107mxr"}],["path",{d:"m14 6-8.58 8.58",key:"gvzu5l"}],["circle",{cx:"4",cy:"16",r:"2",key:"1ehqvc"}],["path",{d:"M10.8 14.8 14 18",key:"ax7m9r"}],["path",{d:"M16 12h-2",key:"10asgb"}],["path",{d:"M22 12h-2",key:"14jgyd"}]]),sJ=i("scissors",[["circle",{cx:"6",cy:"6",r:"3",key:"1lh9wr"}],["path",{d:"M8.12 8.12 12 12",key:"1alkpv"}],["path",{d:"M20 4 8.12 15.88",key:"xgtan2"}],["circle",{cx:"6",cy:"18",r:"3",key:"fqmcym"}],["path",{d:"M14.8 14.8 20 20",key:"ptml3r"}]]),sK=i("screen-share-off",[["path",{d:"M13 3H4a2 2 0 0 0-2 2v10a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2v-3",key:"i8wdob"}],["path",{d:"M8 21h8",key:"1ev6f3"}],["path",{d:"M12 17v4",key:"1riwvh"}],["path",{d:"m22 3-5 5",key:"12jva0"}],["path",{d:"m17 3 5 5",key:"k36vhe"}]]),sL=i("screen-share",[["path",{d:"M13 3H4a2 2 0 0 0-2 2v10a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2v-3",key:"i8wdob"}],["path",{d:"M8 21h8",key:"1ev6f3"}],["path",{d:"M12 17v4",key:"1riwvh"}],["path",{d:"m17 8 5-5",key:"fqif7o"}],["path",{d:"M17 3h5v5",key:"1o3tu8"}]]),sM=i("scroll-text",[["path",{d:"M15 12h-5",key:"r7krc0"}],["path",{d:"M15 8h-5",key:"1khuty"}],["path",{d:"M19 17V5a2 2 0 0 0-2-2H4",key:"zz82l3"}],["path",{d:"M8 21h12a2 2 0 0 0 2-2v-1a1 1 0 0 0-1-1H11a1 1 0 0 0-1 1v1a2 2 0 1 1-4 0V5a2 2 0 1 0-4 0v2a1 1 0 0 0 1 1h3",key:"1ph1d7"}]]),sN=i("scroll",[["path",{d:"M19 17V5a2 2 0 0 0-2-2H4",key:"zz82l3"}],["path",{d:"M8 21h12a2 2 0 0 0 2-2v-1a1 1 0 0 0-1-1H11a1 1 0 0 0-1 1v1a2 2 0 1 1-4 0V5a2 2 0 1 0-4 0v2a1 1 0 0 0 1 1h3",key:"1ph1d7"}]]),sO=i("search-check",[["path",{d:"m8 11 2 2 4-4",key:"1sed1v"}],["circle",{cx:"11",cy:"11",r:"8",key:"4ej97u"}],["path",{d:"m21 21-4.3-4.3",key:"1qie3q"}]]),sP=i("search-code",[["path",{d:"m13 13.5 2-2.5-2-2.5",key:"1rvxrh"}],["path",{d:"m21 21-4.3-4.3",key:"1qie3q"}],["path",{d:"M9 8.5 7 11l2 2.5",key:"6ffwbx"}],["circle",{cx:"11",cy:"11",r:"8",key:"4ej97u"}]]),sQ=i("search-slash",[["path",{d:"m13.5 8.5-5 5",key:"1cs55j"}],["circle",{cx:"11",cy:"11",r:"8",key:"4ej97u"}],["path",{d:"m21 21-4.3-4.3",key:"1qie3q"}]]),sR=i("search-x",[["path",{d:"m13.5 8.5-5 5",key:"1cs55j"}],["path",{d:"m8.5 8.5 5 5",key:"a8mexj"}],["circle",{cx:"11",cy:"11",r:"8",key:"4ej97u"}],["path",{d:"m21 21-4.3-4.3",key:"1qie3q"}]]),sS=i("search",[["path",{d:"m21 21-4.34-4.34",key:"14j7rj"}],["circle",{cx:"11",cy:"11",r:"8",key:"4ej97u"}]]),sT=i("section",[["path",{d:"M16 5a4 3 0 0 0-8 0c0 4 8 3 8 7a4 3 0 0 1-8 0",key:"vqan6v"}],["path",{d:"M8 19a4 3 0 0 0 8 0c0-4-8-3-8-7a4 3 0 0 1 8 0",key:"wdjd8o"}]]),sU=i("send-horizontal",[["path",{d:"M3.714 3.048a.498.498 0 0 0-.683.627l2.843 7.627a2 2 0 0 1 0 1.396l-2.842 7.627a.498.498 0 0 0 .682.627l18-8.5a.5.5 0 0 0 0-.904z",key:"117uat"}],["path",{d:"M6 12h16",key:"s4cdu5"}]]),sV=i("send-to-back",[["rect",{x:"14",y:"14",width:"8",height:"8",rx:"2",key:"1b0bso"}],["rect",{x:"2",y:"2",width:"8",height:"8",rx:"2",key:"1x09vl"}],["path",{d:"M7 14v1a2 2 0 0 0 2 2h1",key:"pao6x6"}],["path",{d:"M14 7h1a2 2 0 0 1 2 2v1",key:"19tdru"}]]),sW=i("send",[["path",{d:"M14.536 21.686a.5.5 0 0 0 .937-.024l6.5-19a.496.496 0 0 0-.635-.635l-19 6.5a.5.5 0 0 0-.024.937l7.93 3.18a2 2 0 0 1 1.112 1.11z",key:"1ffxy3"}],["path",{d:"m21.854 2.147-10.94 10.939",key:"12cjpa"}]]),sX=i("separator-horizontal",[["path",{d:"m16 16-4 4-4-4",key:"3dv8je"}],["path",{d:"M3 12h18",key:"1i2n21"}],["path",{d:"m8 8 4-4 4 4",key:"2bscm2"}]]),sY=i("separator-vertical",[["path",{d:"M12 3v18",key:"108xh3"}],["path",{d:"m16 16 4-4-4-4",key:"1js579"}],["path",{d:"m8 8-4 4 4 4",key:"1whems"}]]),sZ=i("server-cog",[["path",{d:"m10.852 14.772-.383.923",key:"11vil6"}],["path",{d:"M13.148 14.772a3 3 0 1 0-2.296-5.544l-.383-.923",key:"1v3clb"}],["path",{d:"m13.148 9.228.383-.923",key:"t2zzyc"}],["path",{d:"m13.53 15.696-.382-.924a3 3 0 1 1-2.296-5.544",key:"1bxfiv"}],["path",{d:"m14.772 10.852.923-.383",key:"k9m8cz"}],["path",{d:"m14.772 13.148.923.383",key:"1xvhww"}],["path",{d:"M4.5 10H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2v4a2 2 0 0 1-2 2h-.5",key:"tn8das"}],["path",{d:"M4.5 14H4a2 2 0 0 0-2 2v4a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2v-4a2 2 0 0 0-2-2h-.5",key:"1g2pve"}],["path",{d:"M6 18h.01",key:"uhywen"}],["path",{d:"M6 6h.01",key:"1utrut"}],["path",{d:"m9.228 10.852-.923-.383",key:"1wtb30"}],["path",{d:"m9.228 13.148-.923.383",key:"1a830x"}]]),s$=i("server-crash",[["path",{d:"M6 10H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2v4a2 2 0 0 1-2 2h-2",key:"4b9dqc"}],["path",{d:"M6 14H4a2 2 0 0 0-2 2v4a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2v-4a2 2 0 0 0-2-2h-2",key:"22nnkd"}],["path",{d:"M6 6h.01",key:"1utrut"}],["path",{d:"M6 18h.01",key:"uhywen"}],["path",{d:"m13 6-4 6h6l-4 6",key:"14hqih"}]]),s_=i("server-off",[["path",{d:"M7 2h13a2 2 0 0 1 2 2v4a2 2 0 0 1-2 2h-5",key:"bt2siv"}],["path",{d:"M10 10 2.5 2.5C2 2 2 2.5 2 5v3a2 2 0 0 0 2 2h6z",key:"1hjrv1"}],["path",{d:"M22 17v-1a2 2 0 0 0-2-2h-1",key:"1iynyr"}],["path",{d:"M4 14a2 2 0 0 0-2 2v4a2 2 0 0 0 2 2h16.5l1-.5.5.5-8-8H4z",key:"161ggg"}],["path",{d:"M6 18h.01",key:"uhywen"}],["path",{d:"m2 2 20 20",key:"1ooewy"}]]),s0=i("server",[["rect",{width:"20",height:"8",x:"2",y:"2",rx:"2",ry:"2",key:"ngkwjq"}],["rect",{width:"20",height:"8",x:"2",y:"14",rx:"2",ry:"2",key:"iecqi9"}],["line",{x1:"6",x2:"6.01",y1:"6",y2:"6",key:"16zg32"}],["line",{x1:"6",x2:"6.01",y1:"18",y2:"18",key:"nzw8ys"}]]),s1=i("settings-2",[["path",{d:"M14 17H5",key:"gfn3mx"}],["path",{d:"M19 7h-9",key:"6i9tg"}],["circle",{cx:"17",cy:"17",r:"3",key:"18b49y"}],["circle",{cx:"7",cy:"7",r:"3",key:"dfmy0x"}]]),s2=i("settings",[["path",{d:"M12.22 2h-.44a2 2 0 0 0-2 2v.18a2 2 0 0 1-1 1.73l-.43.25a2 2 0 0 1-2 0l-.15-.08a2 2 0 0 0-2.73.73l-.22.38a2 2 0 0 0 .73 2.73l.15.1a2 2 0 0 1 1 1.72v.51a2 2 0 0 1-1 1.74l-.15.09a2 2 0 0 0-.73 2.73l.22.38a2 2 0 0 0 2.73.73l.15-.08a2 2 0 0 1 2 0l.43.25a2 2 0 0 1 1 1.73V20a2 2 0 0 0 2 2h.44a2 2 0 0 0 2-2v-.18a2 2 0 0 1 1-1.73l.43-.25a2 2 0 0 1 2 0l.15.08a2 2 0 0 0 2.73-.73l.22-.39a2 2 0 0 0-.73-2.73l-.15-.08a2 2 0 0 1-1-1.74v-.5a2 2 0 0 1 1-1.74l.15-.09a2 2 0 0 0 .73-2.73l-.22-.38a2 2 0 0 0-2.73-.73l-.15.08a2 2 0 0 1-2 0l-.43-.25a2 2 0 0 1-1-1.73V4a2 2 0 0 0-2-2z",key:"1qme2f"}],["circle",{cx:"12",cy:"12",r:"3",key:"1v7zrd"}]]),s3=i("shapes",[["path",{d:"M8.3 10a.7.7 0 0 1-.626-1.079L11.4 3a.7.7 0 0 1 1.198-.043L16.3 8.9a.7.7 0 0 1-.572 1.1Z",key:"1bo67w"}],["rect",{x:"3",y:"14",width:"7",height:"7",rx:"1",key:"1bkyp8"}],["circle",{cx:"17.5",cy:"17.5",r:"3.5",key:"w3z12y"}]]),s4=i("share-2",[["circle",{cx:"18",cy:"5",r:"3",key:"gq8acd"}],["circle",{cx:"6",cy:"12",r:"3",key:"w7nqdw"}],["circle",{cx:"18",cy:"19",r:"3",key:"1xt0gg"}],["line",{x1:"8.59",x2:"15.42",y1:"13.51",y2:"17.49",key:"47mynk"}],["line",{x1:"15.41",x2:"8.59",y1:"6.51",y2:"10.49",key:"1n3mei"}]]),s5=i("share",[["path",{d:"M12 2v13",key:"1km8f5"}],["path",{d:"m16 6-4-4-4 4",key:"13yo43"}],["path",{d:"M4 12v8a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2v-8",key:"1b2hhj"}]]),s6=i("sheet",[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",ry:"2",key:"1m3agn"}],["line",{x1:"3",x2:"21",y1:"9",y2:"9",key:"1vqk6q"}],["line",{x1:"3",x2:"21",y1:"15",y2:"15",key:"o2sbyz"}],["line",{x1:"9",x2:"9",y1:"9",y2:"21",key:"1ib60c"}],["line",{x1:"15",x2:"15",y1:"9",y2:"21",key:"1n26ft"}]]),s7=i("shell",[["path",{d:"M14 11a2 2 0 1 1-4 0 4 4 0 0 1 8 0 6 6 0 0 1-12 0 8 8 0 0 1 16 0 10 10 0 1 1-20 0 11.93 11.93 0 0 1 2.42-7.22 2 2 0 1 1 3.16 2.44",key:"1cn552"}]]),s8=i("shield-alert",[["path",{d:"M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z",key:"oel41y"}],["path",{d:"M12 8v4",key:"1got3b"}],["path",{d:"M12 16h.01",key:"1drbdi"}]]),s9=i("shield-ban",[["path",{d:"M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z",key:"oel41y"}],["path",{d:"m4.243 5.21 14.39 12.472",key:"1c9a7c"}]]),ta=i("shield-check",[["path",{d:"M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z",key:"oel41y"}],["path",{d:"m9 12 2 2 4-4",key:"dzmm74"}]]),tb=i("shield-half",[["path",{d:"M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z",key:"oel41y"}],["path",{d:"M12 22V2",key:"zs6s6o"}]]),tc=i("shield-ellipsis",[["path",{d:"M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z",key:"oel41y"}],["path",{d:"M8 12h.01",key:"czm47f"}],["path",{d:"M12 12h.01",key:"1mp3jc"}],["path",{d:"M16 12h.01",key:"1l6xoz"}]]),td=i("shield-minus",[["path",{d:"M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z",key:"oel41y"}],["path",{d:"M9 12h6",key:"1c52cq"}]]),te=i("shield-off",[["path",{d:"m2 2 20 20",key:"1ooewy"}],["path",{d:"M5 5a1 1 0 0 0-1 1v7c0 5 3.5 7.5 7.67 8.94a1 1 0 0 0 .67.01c2.35-.82 4.48-1.97 5.9-3.71",key:"1jlk70"}],["path",{d:"M9.309 3.652A12.252 12.252 0 0 0 11.24 2.28a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1v7a9.784 9.784 0 0 1-.08 1.264",key:"18rp1v"}]]),tf=i("shield-plus",[["path",{d:"M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z",key:"oel41y"}],["path",{d:"M9 12h6",key:"1c52cq"}],["path",{d:"M12 9v6",key:"199k2o"}]]),tg=i("shield-user",[["path",{d:"M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z",key:"oel41y"}],["path",{d:"M6.376 18.91a6 6 0 0 1 11.249.003",key:"hnjrf2"}],["circle",{cx:"12",cy:"11",r:"4",key:"1gt34v"}]]),th=i("shield-question-mark",[["path",{d:"M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z",key:"oel41y"}],["path",{d:"M9.1 9a3 3 0 0 1 5.82 1c0 2-3 3-3 3",key:"mhlwft"}],["path",{d:"M12 17h.01",key:"p32p05"}]]),ti=i("shield-x",[["path",{d:"M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z",key:"oel41y"}],["path",{d:"m14.5 9.5-5 5",key:"17q4r4"}],["path",{d:"m9.5 9.5 5 5",key:"18nt4w"}]]),tj=i("shield",[["path",{d:"M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z",key:"oel41y"}]]),tk=i("ship-wheel",[["circle",{cx:"12",cy:"12",r:"8",key:"46899m"}],["path",{d:"M12 2v7.5",key:"1e5rl5"}],["path",{d:"m19 5-5.23 5.23",key:"1ezxxf"}],["path",{d:"M22 12h-7.5",key:"le1719"}],["path",{d:"m19 19-5.23-5.23",key:"p3fmgn"}],["path",{d:"M12 14.5V22",key:"dgcmos"}],["path",{d:"M10.23 13.77 5 19",key:"qwopd4"}],["path",{d:"M9.5 12H2",key:"r7bup8"}],["path",{d:"M10.23 10.23 5 5",key:"k2y7lj"}],["circle",{cx:"12",cy:"12",r:"2.5",key:"ix0uyj"}]]),tl=i("ship",[["path",{d:"M12 10.189V14",key:"1p8cqu"}],["path",{d:"M12 2v3",key:"qbqxhf"}],["path",{d:"M19 13V7a2 2 0 0 0-2-2H7a2 2 0 0 0-2 2v6",key:"qpkstq"}],["path",{d:"M19.38 20A11.6 11.6 0 0 0 21 14l-8.188-3.639a2 2 0 0 0-1.624 0L3 14a11.6 11.6 0 0 0 2.81 7.76",key:"7tigtc"}],["path",{d:"M2 21c.6.5 1.2 1 2.5 1 2.5 0 2.5-2 5-2 1.3 0 1.9.5 2.5 1s1.2 1 2.5 1c2.5 0 2.5-2 5-2 1.3 0 1.9.5 2.5 1",key:"1924j5"}]]),tm=i("shirt",[["path",{d:"M20.38 3.46 16 2a4 4 0 0 1-8 0L3.62 3.46a2 2 0 0 0-1.34 2.23l.58 3.47a1 1 0 0 0 .99.84H6v10c0 1.1.9 2 2 2h8a2 2 0 0 0 2-2V10h2.15a1 1 0 0 0 .99-.84l.58-3.47a2 2 0 0 0-1.34-2.23z",key:"1wgbhj"}]]),tn=i("shopping-bag",[["path",{d:"M16 10a4 4 0 0 1-8 0",key:"1ltviw"}],["path",{d:"M3.103 6.034h17.794",key:"awc11p"}],["path",{d:"M3.4 5.467a2 2 0 0 0-.4 1.2V20a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2V6.667a2 2 0 0 0-.4-1.2l-2-2.667A2 2 0 0 0 17 2H7a2 2 0 0 0-1.6.8z",key:"o988cm"}]]),to=i("shopping-basket",[["path",{d:"m15 11-1 9",key:"5wnq3a"}],["path",{d:"m19 11-4-7",key:"cnml18"}],["path",{d:"M2 11h20",key:"3eubbj"}],["path",{d:"m3.5 11 1.6 7.4a2 2 0 0 0 2 1.6h9.8a2 2 0 0 0 2-1.6l1.7-7.4",key:"yiazzp"}],["path",{d:"M4.5 15.5h15",key:"13mye1"}],["path",{d:"m5 11 4-7",key:"116ra9"}],["path",{d:"m9 11 1 9",key:"1ojof7"}]]),tp=i("shopping-cart",[["circle",{cx:"8",cy:"21",r:"1",key:"jimo8o"}],["circle",{cx:"19",cy:"21",r:"1",key:"13723u"}],["path",{d:"M2.05 2.05h2l2.66 12.42a2 2 0 0 0 2 1.58h9.78a2 2 0 0 0 1.95-1.57l1.65-7.43H5.12",key:"9zh506"}]]),tq=i("shovel",[["path",{d:"M2 22v-5l5-5 5 5-5 5z",key:"1fh25c"}],["path",{d:"M9.5 14.5 16 8",key:"1smz5x"}],["path",{d:"m17 2 5 5-.5.5a3.53 3.53 0 0 1-5 0s0 0 0 0a3.53 3.53 0 0 1 0-5L17 2",key:"1q8uv5"}]]),tr=i("shower-head",[["path",{d:"m4 4 2.5 2.5",key:"uv2vmf"}],["path",{d:"M13.5 6.5a4.95 4.95 0 0 0-7 7",key:"frdkwv"}],["path",{d:"M15 5 5 15",key:"1ag8rq"}],["path",{d:"M14 17v.01",key:"eokfpp"}],["path",{d:"M10 16v.01",key:"14uyyl"}],["path",{d:"M13 13v.01",key:"1v1k97"}],["path",{d:"M16 10v.01",key:"5169yg"}],["path",{d:"M11 20v.01",key:"cj92p8"}],["path",{d:"M17 14v.01",key:"11cswd"}],["path",{d:"M20 11v.01",key:"19e0od"}]]),ts=i("shredder",[["path",{d:"M10 22v-5",key:"sfixh4"}],["path",{d:"M14 19v-2",key:"pdve8j"}],["path",{d:"M14 2v4a2 2 0 0 0 2 2h4",key:"tnqrlb"}],["path",{d:"M18 20v-3",key:"uox2gk"}],["path",{d:"M2 13h20",key:"5evz65"}],["path",{d:"M20 13V7l-5-5H6a2 2 0 0 0-2 2v9",key:"1rnpe2"}],["path",{d:"M6 20v-3",key:"c6pdcb"}]]),tt=i("shrimp",[["path",{d:"M11 12h.01",key:"1lr4k6"}],["path",{d:"M13 22c.5-.5 1.12-1 2.5-1-1.38 0-2-.5-2.5-1",key:"fatpdi"}],["path",{d:"M14 2a3.28 3.28 0 0 1-3.227 1.798l-6.17-.561A2.387 2.387 0 1 0 4.387 8H15.5a1 1 0 0 1 0 13 1 1 0 0 0 0-5H12a7 7 0 0 1-7-7V8",key:"kehrqe"}],["path",{d:"M14 8a8.5 8.5 0 0 1 0 8",key:"1imjx2"}],["path",{d:"M16 16c2 0 4.5-4 4-6",key:"z0nejz"}]]),tu=i("shrink",[["path",{d:"m15 15 6 6m-6-6v4.8m0-4.8h4.8",key:"17vawe"}],["path",{d:"M9 19.8V15m0 0H4.2M9 15l-6 6",key:"chjx8e"}],["path",{d:"M15 4.2V9m0 0h4.8M15 9l6-6",key:"lav6yq"}],["path",{d:"M9 4.2V9m0 0H4.2M9 9 3 3",key:"1pxi2q"}]]),tv=i("shrub",[["path",{d:"M12 22v-5.172a2 2 0 0 0-.586-1.414L9.5 13.5",key:"1p17fm"}],["path",{d:"M14.5 14.5 12 17",key:"dy5w4y"}],["path",{d:"M17 8.8A6 6 0 0 1 13.8 20H10A6.5 6.5 0 0 1 7 8a5 5 0 0 1 10 0z",key:"6z7b3o"}]]),tw=i("shuffle",[["path",{d:"m18 14 4 4-4 4",key:"10pe0f"}],["path",{d:"m18 2 4 4-4 4",key:"pucp1d"}],["path",{d:"M2 18h1.973a4 4 0 0 0 3.3-1.7l5.454-8.6a4 4 0 0 1 3.3-1.7H22",key:"1ailkh"}],["path",{d:"M2 6h1.972a4 4 0 0 1 3.6 2.2",key:"km57vx"}],["path",{d:"M22 18h-6.041a4 4 0 0 1-3.3-1.8l-.359-.45",key:"os18l9"}]]),tx=i("sigma",[["path",{d:"M18 7V5a1 1 0 0 0-1-1H6.5a.5.5 0 0 0-.4.8l4.5 6a2 2 0 0 1 0 2.4l-4.5 6a.5.5 0 0 0 .4.8H17a1 1 0 0 0 1-1v-2",key:"wuwx1p"}]]),ty=i("signal-high",[["path",{d:"M2 20h.01",key:"4haj6o"}],["path",{d:"M7 20v-4",key:"j294jx"}],["path",{d:"M12 20v-8",key:"i3yub9"}],["path",{d:"M17 20V8",key:"1tkaf5"}]]),tz=i("signal-low",[["path",{d:"M2 20h.01",key:"4haj6o"}],["path",{d:"M7 20v-4",key:"j294jx"}]]),tA=i("signal-medium",[["path",{d:"M2 20h.01",key:"4haj6o"}],["path",{d:"M7 20v-4",key:"j294jx"}],["path",{d:"M12 20v-8",key:"i3yub9"}]]),tB=i("signal-zero",[["path",{d:"M2 20h.01",key:"4haj6o"}]]),tC=i("signal",[["path",{d:"M2 20h.01",key:"4haj6o"}],["path",{d:"M7 20v-4",key:"j294jx"}],["path",{d:"M12 20v-8",key:"i3yub9"}],["path",{d:"M17 20V8",key:"1tkaf5"}],["path",{d:"M22 4v16",key:"sih9yq"}]]),tD=i("signature",[["path",{d:"m21 17-2.156-1.868A.5.5 0 0 0 18 15.5v.5a1 1 0 0 1-1 1h-2a1 1 0 0 1-1-1c0-2.545-3.991-3.97-8.5-4a1 1 0 0 0 0 5c4.153 0 4.745-11.295 5.708-13.5a2.5 2.5 0 1 1 3.31 3.284",key:"y32ogt"}],["path",{d:"M3 21h18",key:"itz85i"}]]),tE=i("signpost-big",[["path",{d:"M10 9H4L2 7l2-2h6",key:"1hq7x2"}],["path",{d:"M14 5h6l2 2-2 2h-6",key:"bv62ej"}],["path",{d:"M10 22V4a2 2 0 1 1 4 0v18",key:"eqpcf2"}],["path",{d:"M8 22h8",key:"rmew8v"}]]),tF=i("siren",[["path",{d:"M7 18v-6a5 5 0 1 1 10 0v6",key:"pcx96s"}],["path",{d:"M5 21a1 1 0 0 0 1 1h12a1 1 0 0 0 1-1v-1a2 2 0 0 0-2-2H7a2 2 0 0 0-2 2z",key:"1b4s83"}],["path",{d:"M21 12h1",key:"jtio3y"}],["path",{d:"M18.5 4.5 18 5",key:"g5sp9y"}],["path",{d:"M2 12h1",key:"1uaihz"}],["path",{d:"M12 2v1",key:"11qlp1"}],["path",{d:"m4.929 4.929.707.707",key:"1i51kw"}],["path",{d:"M12 12v6",key:"3ahymv"}]]),tG=i("signpost",[["path",{d:"M12 13v8",key:"1l5pq0"}],["path",{d:"M12 3v3",key:"1n5kay"}],["path",{d:"M18 6a2 2 0 0 1 1.387.56l2.307 2.22a1 1 0 0 1 0 1.44l-2.307 2.22A2 2 0 0 1 18 13H6a2 2 0 0 1-1.387-.56l-2.306-2.22a1 1 0 0 1 0-1.44l2.306-2.22A2 2 0 0 1 6 6z",key:"gqqp9m"}]]),tH=i("skip-back",[["polygon",{points:"19 20 9 12 19 4 19 20",key:"o2sva"}],["line",{x1:"5",x2:"5",y1:"19",y2:"5",key:"1ocqjk"}]]),tI=i("skull",[["path",{d:"m12.5 17-.5-1-.5 1h1z",key:"3me087"}],["path",{d:"M15 22a1 1 0 0 0 1-1v-1a2 2 0 0 0 1.56-3.25 8 8 0 1 0-11.12 0A2 2 0 0 0 8 20v1a1 1 0 0 0 1 1z",key:"1o5pge"}],["circle",{cx:"15",cy:"12",r:"1",key:"1tmaij"}],["circle",{cx:"9",cy:"12",r:"1",key:"1vctgf"}]]),tJ=i("skip-forward",[["polygon",{points:"5 4 15 12 5 20 5 4",key:"16p6eg"}],["line",{x1:"19",x2:"19",y1:"5",y2:"19",key:"futhcm"}]]),tK=i("slack",[["rect",{width:"3",height:"8",x:"13",y:"2",rx:"1.5",key:"diqz80"}],["path",{d:"M19 8.5V10h1.5A1.5 1.5 0 1 0 19 8.5",key:"183iwg"}],["rect",{width:"3",height:"8",x:"8",y:"14",rx:"1.5",key:"hqg7r1"}],["path",{d:"M5 15.5V14H3.5A1.5 1.5 0 1 0 5 15.5",key:"76g71w"}],["rect",{width:"8",height:"3",x:"14",y:"13",rx:"1.5",key:"1kmz0a"}],["path",{d:"M15.5 19H14v1.5a1.5 1.5 0 1 0 1.5-1.5",key:"jc4sz0"}],["rect",{width:"8",height:"3",x:"2",y:"8",rx:"1.5",key:"1omvl4"}],["path",{d:"M8.5 5H10V3.5A1.5 1.5 0 1 0 8.5 5",key:"16f3cl"}]]),tL=i("slash",[["path",{d:"M22 2 2 22",key:"y4kqgn"}]]),tM=i("slice",[["path",{d:"M11 16.586V19a1 1 0 0 1-1 1H2L18.37 3.63a1 1 0 1 1 3 3l-9.663 9.663a1 1 0 0 1-1.414 0L8 14",key:"1sllp5"}]]),tN=i("sliders-horizontal",[["line",{x1:"21",x2:"14",y1:"4",y2:"4",key:"obuewd"}],["line",{x1:"10",x2:"3",y1:"4",y2:"4",key:"1q6298"}],["line",{x1:"21",x2:"12",y1:"12",y2:"12",key:"1iu8h1"}],["line",{x1:"8",x2:"3",y1:"12",y2:"12",key:"ntss68"}],["line",{x1:"21",x2:"16",y1:"20",y2:"20",key:"14d8ph"}],["line",{x1:"12",x2:"3",y1:"20",y2:"20",key:"m0wm8r"}],["line",{x1:"14",x2:"14",y1:"2",y2:"6",key:"14e1ph"}],["line",{x1:"8",x2:"8",y1:"10",y2:"14",key:"1i6ji0"}],["line",{x1:"16",x2:"16",y1:"18",y2:"22",key:"1lctlv"}]]),tO=i("sliders-vertical",[["line",{x1:"4",x2:"4",y1:"21",y2:"14",key:"1p332r"}],["line",{x1:"4",x2:"4",y1:"10",y2:"3",key:"gb41h5"}],["line",{x1:"12",x2:"12",y1:"21",y2:"12",key:"hf2csr"}],["line",{x1:"12",x2:"12",y1:"8",y2:"3",key:"1kfi7u"}],["line",{x1:"20",x2:"20",y1:"21",y2:"16",key:"1lhrwl"}],["line",{x1:"20",x2:"20",y1:"12",y2:"3",key:"16vvfq"}],["line",{x1:"2",x2:"6",y1:"14",y2:"14",key:"1uebub"}],["line",{x1:"10",x2:"14",y1:"8",y2:"8",key:"1yglbp"}],["line",{x1:"18",x2:"22",y1:"16",y2:"16",key:"1jxqpz"}]]),tP=i("smartphone-charging",[["rect",{width:"14",height:"20",x:"5",y:"2",rx:"2",ry:"2",key:"1yt0o3"}],["path",{d:"M12.667 8 10 12h4l-2.667 4",key:"h9lk2d"}]]),tQ=i("smartphone-nfc",[["rect",{width:"7",height:"12",x:"2",y:"6",rx:"1",key:"5nje8w"}],["path",{d:"M13 8.32a7.43 7.43 0 0 1 0 7.36",key:"1g306n"}],["path",{d:"M16.46 6.21a11.76 11.76 0 0 1 0 11.58",key:"uqvjvo"}],["path",{d:"M19.91 4.1a15.91 15.91 0 0 1 .01 15.8",key:"ujntz3"}]]),tR=i("smartphone",[["rect",{width:"14",height:"20",x:"5",y:"2",rx:"2",ry:"2",key:"1yt0o3"}],["path",{d:"M12 18h.01",key:"mhygvu"}]]),tS=i("smile-plus",[["path",{d:"M22 11v1a10 10 0 1 1-9-10",key:"ew0xw9"}],["path",{d:"M8 14s1.5 2 4 2 4-2 4-2",key:"1y1vjs"}],["line",{x1:"9",x2:"9.01",y1:"9",y2:"9",key:"yxxnd0"}],["line",{x1:"15",x2:"15.01",y1:"9",y2:"9",key:"1p4y9e"}],["path",{d:"M16 5h6",key:"1vod17"}],["path",{d:"M19 2v6",key:"4bpg5p"}]]),tT=i("smile",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"M8 14s1.5 2 4 2 4-2 4-2",key:"1y1vjs"}],["line",{x1:"9",x2:"9.01",y1:"9",y2:"9",key:"yxxnd0"}],["line",{x1:"15",x2:"15.01",y1:"9",y2:"9",key:"1p4y9e"}]]),tU=i("snail",[["path",{d:"M2 13a6 6 0 1 0 12 0 4 4 0 1 0-8 0 2 2 0 0 0 4 0",key:"hneq2s"}],["circle",{cx:"10",cy:"13",r:"8",key:"194lz3"}],["path",{d:"M2 21h12c4.4 0 8-3.6 8-8V7a2 2 0 1 0-4 0v6",key:"ixqyt7"}],["path",{d:"M18 3 19.1 5.2",key:"9tjm43"}],["path",{d:"M22 3 20.9 5.2",key:"j3odrs"}]]),tV=i("snowflake",[["path",{d:"m10 20-1.25-2.5L6 18",key:"18frcb"}],["path",{d:"M10 4 8.75 6.5 6 6",key:"7mghy3"}],["path",{d:"m14 20 1.25-2.5L18 18",key:"1chtki"}],["path",{d:"m14 4 1.25 2.5L18 6",key:"1b4wsy"}],["path",{d:"m17 21-3-6h-4",key:"15hhxa"}],["path",{d:"m17 3-3 6 1.5 3",key:"11697g"}],["path",{d:"M2 12h6.5L10 9",key:"kv9z4n"}],["path",{d:"m20 10-1.5 2 1.5 2",key:"1swlpi"}],["path",{d:"M22 12h-6.5L14 15",key:"1mxi28"}],["path",{d:"m4 10 1.5 2L4 14",key:"k9enpj"}],["path",{d:"m7 21 3-6-1.5-3",key:"j8hb9u"}],["path",{d:"m7 3 3 6h4",key:"1otusx"}]]),tW=i("sofa",[["path",{d:"M20 9V6a2 2 0 0 0-2-2H6a2 2 0 0 0-2 2v3",key:"1dgpiv"}],["path",{d:"M2 16a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2v-5a2 2 0 0 0-4 0v1.5a.5.5 0 0 1-.5.5h-11a.5.5 0 0 1-.5-.5V11a2 2 0 0 0-4 0z",key:"xacw8m"}],["path",{d:"M4 18v2",key:"jwo5n2"}],["path",{d:"M20 18v2",key:"1ar1qi"}],["path",{d:"M12 4v9",key:"oqhhn3"}]]),tX=i("soap-dispenser-droplet",[["path",{d:"M10.5 2v4",key:"1xt6in"}],["path",{d:"M14 2H7a2 2 0 0 0-2 2",key:"e6xig3"}],["path",{d:"M19.29 14.76A6.67 6.67 0 0 1 17 11a6.6 6.6 0 0 1-2.29 3.76c-1.15.92-1.71 2.04-1.71 3.19 0 2.22 1.8 4.05 4 4.05s4-1.83 4-4.05c0-1.16-.57-2.26-1.71-3.19",key:"adq7uc"}],["path",{d:"M9.607 21H6a2 2 0 0 1-2-2v-7a2 2 0 0 1 2-2h7V7a1 1 0 0 0-1-1H9a1 1 0 0 0-1 1v3",key:"t9hm96"}]]),tY=i("soup",[["path",{d:"M12 21a9 9 0 0 0 9-9H3a9 9 0 0 0 9 9Z",key:"4rw317"}],["path",{d:"M7 21h10",key:"1b0cd5"}],["path",{d:"M19.5 12 22 6",key:"shfsr5"}],["path",{d:"M16.25 3c.27.1.8.53.75 1.36-.06.83-.93 1.2-1 2.02-.05.78.34 1.24.73 1.62",key:"rpc6vp"}],["path",{d:"M11.25 3c.27.1.8.53.74 1.36-.05.83-.93 1.2-.98 2.02-.06.78.33 1.24.72 1.62",key:"1lf63m"}],["path",{d:"M6.25 3c.27.1.8.53.75 1.36-.06.83-.93 1.2-1 2.02-.05.78.34 1.24.74 1.62",key:"97tijn"}]]),tZ=i("space",[["path",{d:"M22 17v1c0 .5-.5 1-1 1H3c-.5 0-1-.5-1-1v-1",key:"lt2kga"}]]),t$=i("spade",[["path",{d:"M5 9c-1.5 1.5-3 3.2-3 5.5A5.5 5.5 0 0 0 7.5 20c1.8 0 3-.5 4.5-2 1.5 1.5 2.7 2 4.5 2a5.5 5.5 0 0 0 5.5-5.5c0-2.3-1.5-4-3-5.5l-7-7-7 7Z",key:"40bo9n"}],["path",{d:"M12 18v4",key:"jadmvz"}]]),t_=i("sparkle",[["path",{d:"M9.937 15.5A2 2 0 0 0 8.5 14.063l-6.135-1.582a.5.5 0 0 1 0-.962L8.5 9.936A2 2 0 0 0 9.937 8.5l1.582-6.135a.5.5 0 0 1 .963 0L14.063 8.5A2 2 0 0 0 15.5 9.937l6.135 1.581a.5.5 0 0 1 0 .964L15.5 14.063a2 2 0 0 0-1.437 1.437l-1.582 6.135a.5.5 0 0 1-.963 0z",key:"4pj2yx"}]]),t0=i("sparkles",[["path",{d:"M9.937 15.5A2 2 0 0 0 8.5 14.063l-6.135-1.582a.5.5 0 0 1 0-.962L8.5 9.936A2 2 0 0 0 9.937 8.5l1.582-6.135a.5.5 0 0 1 .963 0L14.063 8.5A2 2 0 0 0 15.5 9.937l6.135 1.581a.5.5 0 0 1 0 .964L15.5 14.063a2 2 0 0 0-1.437 1.437l-1.582 6.135a.5.5 0 0 1-.963 0z",key:"4pj2yx"}],["path",{d:"M20 3v4",key:"1olli1"}],["path",{d:"M22 5h-4",key:"1gvqau"}],["path",{d:"M4 17v2",key:"vumght"}],["path",{d:"M5 18H3",key:"zchphs"}]]),t1=i("speaker",[["rect",{width:"16",height:"20",x:"4",y:"2",rx:"2",key:"1nb95v"}],["path",{d:"M12 6h.01",key:"1vi96p"}],["circle",{cx:"12",cy:"14",r:"4",key:"1jruaj"}],["path",{d:"M12 14h.01",key:"1etili"}]]),t2=i("speech",[["path",{d:"M8.8 20v-4.1l1.9.2a2.3 2.3 0 0 0 2.164-2.1V8.3A5.37 5.37 0 0 0 2 8.25c0 2.8.656 3.054 1 4.55a5.77 5.77 0 0 1 .029 2.758L2 20",key:"11atix"}],["path",{d:"M19.8 17.8a7.5 7.5 0 0 0 .003-10.603",key:"yol142"}],["path",{d:"M17 15a3.5 3.5 0 0 0-.025-4.975",key:"ssbmkc"}]]),t3=i("spell-check-2",[["path",{d:"m6 16 6-12 6 12",key:"1b4byz"}],["path",{d:"M8 12h8",key:"1wcyev"}],["path",{d:"M4 21c1.1 0 1.1-1 2.3-1s1.1 1 2.3 1c1.1 0 1.1-1 2.3-1 1.1 0 1.1 1 2.3 1 1.1 0 1.1-1 2.3-1 1.1 0 1.1 1 2.3 1 1.1 0 1.1-1 2.3-1",key:"8mdmtu"}]]),t4=i("spell-check",[["path",{d:"m6 16 6-12 6 12",key:"1b4byz"}],["path",{d:"M8 12h8",key:"1wcyev"}],["path",{d:"m16 20 2 2 4-4",key:"13tcca"}]]),t5=i("spline-pointer",[["path",{d:"M12.034 12.681a.498.498 0 0 1 .647-.647l9 3.5a.5.5 0 0 1-.033.943l-3.444 1.068a1 1 0 0 0-.66.66l-1.067 3.443a.5.5 0 0 1-.943.033z",key:"xwnzip"}],["path",{d:"M5 17A12 12 0 0 1 17 5",key:"1okkup"}],["circle",{cx:"19",cy:"5",r:"2",key:"mhkx31"}],["circle",{cx:"5",cy:"19",r:"2",key:"v8kfzx"}]]),t6=i("spline",[["circle",{cx:"19",cy:"5",r:"2",key:"mhkx31"}],["circle",{cx:"5",cy:"19",r:"2",key:"v8kfzx"}],["path",{d:"M5 17A12 12 0 0 1 17 5",key:"1okkup"}]]),t7=i("split",[["path",{d:"M16 3h5v5",key:"1806ms"}],["path",{d:"M8 3H3v5",key:"15dfkv"}],["path",{d:"M12 22v-8.3a4 4 0 0 0-1.172-2.872L3 3",key:"1qrqzj"}],["path",{d:"m15 9 6-6",key:"ko1vev"}]]),t8=i("spool",[["path",{d:"M17 13.44 4.442 17.082A2 2 0 0 0 4.982 21H19a2 2 0 0 0 .558-3.921l-1.115-.32A2 2 0 0 1 17 14.837V7.66",key:"13vns8"}],["path",{d:"m7 10.56 12.558-3.642A2 2 0 0 0 19.018 3H5a2 2 0 0 0-.558 3.921l1.115.32A2 2 0 0 1 7 9.163v7.178",key:"s8x3u0"}]]),t9=i("spray-can",[["path",{d:"M3 3h.01",key:"159qn6"}],["path",{d:"M7 5h.01",key:"1hq22a"}],["path",{d:"M11 7h.01",key:"1osv80"}],["path",{d:"M3 7h.01",key:"1xzrh3"}],["path",{d:"M7 9h.01",key:"19b3jx"}],["path",{d:"M3 11h.01",key:"1eifu7"}],["rect",{width:"4",height:"4",x:"15",y:"5",key:"mri9e4"}],["path",{d:"m19 9 2 2v10c0 .6-.4 1-1 1h-6c-.6 0-1-.4-1-1V11l2-2",key:"aib6hk"}],["path",{d:"m13 14 8-2",key:"1d7bmk"}],["path",{d:"m13 19 8-2",key:"1y2vml"}]]),ua=i("sprout",[["path",{d:"M7 20h10",key:"e6iznv"}],["path",{d:"M10 20c5.5-2.5.8-6.4 3-10",key:"161w41"}],["path",{d:"M9.5 9.4c1.1.8 1.8 2.2 2.3 3.7-2 .4-3.5.4-4.8-.3-1.2-.6-2.3-1.9-3-4.2 2.8-.5 4.4 0 5.5.8z",key:"9gtqwd"}],["path",{d:"M14.1 6a7 7 0 0 0-1.1 4c1.9-.1 3.3-.6 4.3-1.4 1-1 1.6-2.3 1.7-4.6-2.7.1-4 1-4.9 2z",key:"bkxnd2"}]]),ub=i("square-activity",[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",key:"afitv7"}],["path",{d:"M17 12h-2l-2 5-2-10-2 5H7",key:"15hlnc"}]]),uc=i("square-arrow-down-left",[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",key:"afitv7"}],["path",{d:"m16 8-8 8",key:"166keh"}],["path",{d:"M16 16H8V8",key:"1w2ppm"}]]),ud=i("square-arrow-down-right",[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",key:"afitv7"}],["path",{d:"m8 8 8 8",key:"1imecy"}],["path",{d:"M16 8v8H8",key:"1lbpgo"}]]),ue=i("square-arrow-down",[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",key:"afitv7"}],["path",{d:"M12 8v8",key:"napkw2"}],["path",{d:"m8 12 4 4 4-4",key:"k98ssh"}]]),uf=i("square-arrow-left",[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",key:"afitv7"}],["path",{d:"m12 8-4 4 4 4",key:"15vm53"}],["path",{d:"M16 12H8",key:"1fr5h0"}]]),ug=i("square-arrow-out-down-left",[["path",{d:"M13 21h6a2 2 0 0 0 2-2V5a2 2 0 0 0-2-2H5a2 2 0 0 0-2 2v6",key:"14qz4y"}],["path",{d:"m3 21 9-9",key:"1jfql5"}],["path",{d:"M9 21H3v-6",key:"wtvkvv"}]]),uh=i("square-arrow-out-down-right",[["path",{d:"M21 11V5a2 2 0 0 0-2-2H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h6",key:"14rsvq"}],["path",{d:"m21 21-9-9",key:"1et2py"}],["path",{d:"M21 15v6h-6",key:"1jko0i"}]]),ui=i("square-arrow-out-up-right",[["path",{d:"M21 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h6",key:"y09zxi"}],["path",{d:"m21 3-9 9",key:"mpx6sq"}],["path",{d:"M15 3h6v6",key:"1q9fwt"}]]),uj=i("square-arrow-right",[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",key:"afitv7"}],["path",{d:"M8 12h8",key:"1wcyev"}],["path",{d:"m12 16 4-4-4-4",key:"1i9zcv"}]]),uk=i("square-arrow-out-up-left",[["path",{d:"M13 3h6a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-6",key:"14mv1t"}],["path",{d:"m3 3 9 9",key:"rks13r"}],["path",{d:"M3 9V3h6",key:"ira0h2"}]]),ul=i("square-arrow-up-left",[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",key:"afitv7"}],["path",{d:"M8 16V8h8",key:"19xb1h"}],["path",{d:"M16 16 8 8",key:"1qdy8n"}]]),um=i("square-arrow-up-right",[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",key:"afitv7"}],["path",{d:"M8 8h8v8",key:"b65dnt"}],["path",{d:"m8 16 8-8",key:"13b9ih"}]]),un=i("square-arrow-up",[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",key:"afitv7"}],["path",{d:"m16 12-4-4-4 4",key:"177agl"}],["path",{d:"M12 16V8",key:"1sbj14"}]]),uo=i("square-asterisk",[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",key:"afitv7"}],["path",{d:"M12 8v8",key:"napkw2"}],["path",{d:"m8.5 14 7-4",key:"12hpby"}],["path",{d:"m8.5 10 7 4",key:"wwy2dy"}]]),up=i("square-bottom-dashed-scissors",[["path",{d:"M4 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2v16a2 2 0 0 1-2 2",key:"1vzg26"}],["path",{d:"M10 22H8",key:"euku7a"}],["path",{d:"M16 22h-2",key:"18d249"}],["circle",{cx:"8",cy:"8",r:"2",key:"14cg06"}],["path",{d:"M9.414 9.414 12 12",key:"qz4lzr"}],["path",{d:"M14.8 14.8 18 18",key:"11flf1"}],["circle",{cx:"8",cy:"16",r:"2",key:"1acxsx"}],["path",{d:"m18 6-8.586 8.586",key:"11kzk1"}]]),uq=i("square-chart-gantt",[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",key:"afitv7"}],["path",{d:"M9 8h7",key:"kbo1nt"}],["path",{d:"M8 12h6",key:"ikassy"}],["path",{d:"M11 16h5",key:"oq65wt"}]]),ur=i("square-check-big",[["path",{d:"M21 10.656V19a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h12.344",key:"2acyp4"}],["path",{d:"m9 11 3 3L22 4",key:"1pflzl"}]]),us=i("square-check",[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",key:"afitv7"}],["path",{d:"m9 12 2 2 4-4",key:"dzmm74"}]]),ut=i("square-chevron-down",[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",key:"afitv7"}],["path",{d:"m16 10-4 4-4-4",key:"894hmk"}]]),uu=i("square-chevron-left",[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",key:"afitv7"}],["path",{d:"m14 16-4-4 4-4",key:"ojs7w8"}]]),uv=i("square-chevron-right",[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",key:"afitv7"}],["path",{d:"m10 8 4 4-4 4",key:"1wy4r4"}]]),uw=i("square-chevron-up",[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",key:"afitv7"}],["path",{d:"m8 14 4-4 4 4",key:"fy2ptz"}]]),ux=i("square-code",[["path",{d:"m10 9-3 3 3 3",key:"1oro0q"}],["path",{d:"m14 15 3-3-3-3",key:"bz13h7"}],["rect",{x:"3",y:"3",width:"18",height:"18",rx:"2",key:"h1oib"}]]),uy=i("square-dashed-bottom-code",[["path",{d:"M10 9.5 8 12l2 2.5",key:"3mjy60"}],["path",{d:"M14 21h1",key:"v9vybs"}],["path",{d:"m14 9.5 2 2.5-2 2.5",key:"1bir2l"}],["path",{d:"M5 21a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2",key:"as5y1o"}],["path",{d:"M9 21h1",key:"15o7lz"}]]),uz=i("square-dashed-bottom",[["path",{d:"M5 21a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2",key:"as5y1o"}],["path",{d:"M9 21h1",key:"15o7lz"}],["path",{d:"M14 21h1",key:"v9vybs"}]]),uA=i("square-dashed-kanban",[["path",{d:"M8 7v7",key:"1x2jlm"}],["path",{d:"M12 7v4",key:"xawao1"}],["path",{d:"M16 7v9",key:"1hp2iy"}],["path",{d:"M5 3a2 2 0 0 0-2 2",key:"y57alp"}],["path",{d:"M9 3h1",key:"1yesri"}],["path",{d:"M14 3h1",key:"1ec4yj"}],["path",{d:"M19 3a2 2 0 0 1 2 2",key:"18rm91"}],["path",{d:"M21 9v1",key:"mxsmne"}],["path",{d:"M21 14v1",key:"169vum"}],["path",{d:"M21 19a2 2 0 0 1-2 2",key:"1j7049"}],["path",{d:"M14 21h1",key:"v9vybs"}],["path",{d:"M9 21h1",key:"15o7lz"}],["path",{d:"M5 21a2 2 0 0 1-2-2",key:"sbafld"}],["path",{d:"M3 14v1",key:"vnatye"}],["path",{d:"M3 9v1",key:"1r0deq"}]]),uB=i("square-dashed-mouse-pointer",[["path",{d:"M12.034 12.681a.498.498 0 0 1 .647-.647l9 3.5a.5.5 0 0 1-.033.943l-3.444 1.068a1 1 0 0 0-.66.66l-1.067 3.443a.5.5 0 0 1-.943.033z",key:"xwnzip"}],["path",{d:"M5 3a2 2 0 0 0-2 2",key:"y57alp"}],["path",{d:"M19 3a2 2 0 0 1 2 2",key:"18rm91"}],["path",{d:"M5 21a2 2 0 0 1-2-2",key:"sbafld"}],["path",{d:"M9 3h1",key:"1yesri"}],["path",{d:"M9 21h2",key:"1qve2z"}],["path",{d:"M14 3h1",key:"1ec4yj"}],["path",{d:"M3 9v1",key:"1r0deq"}],["path",{d:"M21 9v2",key:"p14lih"}],["path",{d:"M3 14v1",key:"vnatye"}]]),uC=i("square-dashed-top-solid",[["path",{d:"M14 21h1",key:"v9vybs"}],["path",{d:"M21 14v1",key:"169vum"}],["path",{d:"M21 19a2 2 0 0 1-2 2",key:"1j7049"}],["path",{d:"M21 9v1",key:"mxsmne"}],["path",{d:"M3 14v1",key:"vnatye"}],["path",{d:"M3 5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2",key:"89voep"}],["path",{d:"M3 9v1",key:"1r0deq"}],["path",{d:"M5 21a2 2 0 0 1-2-2",key:"sbafld"}],["path",{d:"M9 21h1",key:"15o7lz"}]]),uD=i("square-dashed",[["path",{d:"M5 3a2 2 0 0 0-2 2",key:"y57alp"}],["path",{d:"M19 3a2 2 0 0 1 2 2",key:"18rm91"}],["path",{d:"M21 19a2 2 0 0 1-2 2",key:"1j7049"}],["path",{d:"M5 21a2 2 0 0 1-2-2",key:"sbafld"}],["path",{d:"M9 3h1",key:"1yesri"}],["path",{d:"M9 21h1",key:"15o7lz"}],["path",{d:"M14 3h1",key:"1ec4yj"}],["path",{d:"M14 21h1",key:"v9vybs"}],["path",{d:"M3 9v1",key:"1r0deq"}],["path",{d:"M21 9v1",key:"mxsmne"}],["path",{d:"M3 14v1",key:"vnatye"}],["path",{d:"M21 14v1",key:"169vum"}]]),uE=i("square-divide",[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",ry:"2",key:"1m3agn"}],["line",{x1:"8",x2:"16",y1:"12",y2:"12",key:"1jonct"}],["line",{x1:"12",x2:"12",y1:"16",y2:"16",key:"aqc6ln"}],["line",{x1:"12",x2:"12",y1:"8",y2:"8",key:"1mkcni"}]]),uF=i("square-dot",[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",key:"afitv7"}],["circle",{cx:"12",cy:"12",r:"1",key:"41hilf"}]]),uG=i("square-equal",[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",key:"afitv7"}],["path",{d:"M7 10h10",key:"1101jm"}],["path",{d:"M7 14h10",key:"1mhdw3"}]]),uH=i("square-function",[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",ry:"2",key:"1m3agn"}],["path",{d:"M9 17c2 0 2.8-1 2.8-2.8V10c0-2 1-3.3 3.2-3",key:"m1af9g"}],["path",{d:"M9 11.2h5.7",key:"3zgcl2"}]]),uI=i("square-kanban",[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",key:"afitv7"}],["path",{d:"M8 7v7",key:"1x2jlm"}],["path",{d:"M12 7v4",key:"xawao1"}],["path",{d:"M16 7v9",key:"1hp2iy"}]]),uJ=i("square-library",[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",key:"afitv7"}],["path",{d:"M7 7v10",key:"d5nglc"}],["path",{d:"M11 7v10",key:"pptsnr"}],["path",{d:"m15 7 2 10",key:"1m7qm5"}]]),uK=i("square-m",[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",key:"afitv7"}],["path",{d:"M8 16V8l4 4 4-4v8",key:"141u4e"}]]),uL=i("square-menu",[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",key:"afitv7"}],["path",{d:"M7 8h10",key:"1jw688"}],["path",{d:"M7 12h10",key:"b7w52i"}],["path",{d:"M7 16h10",key:"wp8him"}]]),uM=i("square-minus",[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",key:"afitv7"}],["path",{d:"M8 12h8",key:"1wcyev"}]]),uN=i("square-mouse-pointer",[["path",{d:"M12.034 12.681a.498.498 0 0 1 .647-.647l9 3.5a.5.5 0 0 1-.033.943l-3.444 1.068a1 1 0 0 0-.66.66l-1.067 3.443a.5.5 0 0 1-.943.033z",key:"xwnzip"}],["path",{d:"M21 11V5a2 2 0 0 0-2-2H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h6",key:"14rsvq"}]]),uO=i("square-parking-off",[["path",{d:"M3.6 3.6A2 2 0 0 1 5 3h14a2 2 0 0 1 2 2v14a2 2 0 0 1-.59 1.41",key:"9l1ft6"}],["path",{d:"M3 8.7V19a2 2 0 0 0 2 2h10.3",key:"17knke"}],["path",{d:"m2 2 20 20",key:"1ooewy"}],["path",{d:"M13 13a3 3 0 1 0 0-6H9v2",key:"uoagbd"}],["path",{d:"M9 17v-2.3",key:"1jxgo2"}]]),uP=i("square-parking",[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",key:"afitv7"}],["path",{d:"M9 17V7h4a3 3 0 0 1 0 6H9",key:"1dfk2c"}]]),uQ=i("square-pen",[["path",{d:"M12 3H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7",key:"1m0v6g"}],["path",{d:"M18.375 2.625a1 1 0 0 1 3 3l-9.013 9.014a2 2 0 0 1-.853.505l-2.873.84a.5.5 0 0 1-.62-.62l.84-2.873a2 2 0 0 1 .506-.852z",key:"ohrbg2"}]]),uR=i("square-percent",[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",key:"afitv7"}],["path",{d:"m15 9-6 6",key:"1uzhvr"}],["path",{d:"M9 9h.01",key:"1q5me6"}],["path",{d:"M15 15h.01",key:"lqbp3k"}]]),uS=i("square-pi",[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",key:"afitv7"}],["path",{d:"M7 7h10",key:"udp07y"}],["path",{d:"M10 7v10",key:"i1d9ee"}],["path",{d:"M16 17a2 2 0 0 1-2-2V7",key:"ftwdc7"}]]),uT=i("square-pilcrow",[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",key:"afitv7"}],["path",{d:"M12 12H9.5a2.5 2.5 0 0 1 0-5H17",key:"1l9586"}],["path",{d:"M12 7v10",key:"jspqdw"}],["path",{d:"M16 7v10",key:"lavkr4"}]]),uU=i("square-play",[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",key:"afitv7"}],["path",{d:"m9 8 6 4-6 4Z",key:"f1r3lt"}]]),uV=i("square-plus",[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",key:"afitv7"}],["path",{d:"M8 12h8",key:"1wcyev"}],["path",{d:"M12 8v8",key:"napkw2"}]]),uW=i("square-power",[["path",{d:"M12 7v4",key:"xawao1"}],["path",{d:"M7.998 9.003a5 5 0 1 0 8-.005",key:"1pek45"}],["rect",{x:"3",y:"3",width:"18",height:"18",rx:"2",key:"h1oib"}]]),uX=i("square-radical",[["path",{d:"M7 12h2l2 5 2-10h4",key:"1fxv6h"}],["rect",{x:"3",y:"3",width:"18",height:"18",rx:"2",key:"h1oib"}]]),uY=i("square-round-corner",[["path",{d:"M21 11a8 8 0 0 0-8-8",key:"1lxwo5"}],["path",{d:"M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h4",key:"1dv2y5"}]]),uZ=i("square-scissors",[["rect",{width:"20",height:"20",x:"2",y:"2",rx:"2",key:"1btzen"}],["circle",{cx:"8",cy:"8",r:"2",key:"14cg06"}],["path",{d:"M9.414 9.414 12 12",key:"qz4lzr"}],["path",{d:"M14.8 14.8 18 18",key:"11flf1"}],["circle",{cx:"8",cy:"16",r:"2",key:"1acxsx"}],["path",{d:"m18 6-8.586 8.586",key:"11kzk1"}]]),u$=i("square-sigma",[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",key:"afitv7"}],["path",{d:"M16 8.9V7H8l4 5-4 5h8v-1.9",key:"9nih0i"}]]),u_=i("square-slash",[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",key:"afitv7"}],["line",{x1:"9",x2:"15",y1:"15",y2:"9",key:"1dfufj"}]]),u0=i("square-split-horizontal",[["path",{d:"M8 19H5c-1 0-2-1-2-2V7c0-1 1-2 2-2h3",key:"lubmu8"}],["path",{d:"M16 5h3c1 0 2 1 2 2v10c0 1-1 2-2 2h-3",key:"1ag34g"}],["line",{x1:"12",x2:"12",y1:"4",y2:"20",key:"1tx1rr"}]]),u1=i("square-split-vertical",[["path",{d:"M5 8V5c0-1 1-2 2-2h10c1 0 2 1 2 2v3",key:"1pi83i"}],["path",{d:"M19 16v3c0 1-1 2-2 2H7c-1 0-2-1-2-2v-3",key:"ido5k7"}],["line",{x1:"4",x2:"20",y1:"12",y2:"12",key:"1e0a9i"}]]),u2=i("square-square",[["rect",{x:"3",y:"3",width:"18",height:"18",rx:"2",key:"h1oib"}],["rect",{x:"8",y:"8",width:"8",height:"8",rx:"1",key:"z9xiuo"}]]),u3=i("square-stack",[["path",{d:"M4 10c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h4c1.1 0 2 .9 2 2",key:"4i38lg"}],["path",{d:"M10 16c-1.1 0-2-.9-2-2v-4c0-1.1.9-2 2-2h4c1.1 0 2 .9 2 2",key:"mlte4a"}],["rect",{width:"8",height:"8",x:"14",y:"14",rx:"2",key:"1fa9i4"}]]),u4=i("square-terminal",[["path",{d:"m7 11 2-2-2-2",key:"1lz0vl"}],["path",{d:"M11 13h4",key:"1p7l4v"}],["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",ry:"2",key:"1m3agn"}]]),u5=i("square-user-round",[["path",{d:"M18 21a6 6 0 0 0-12 0",key:"kaz2du"}],["circle",{cx:"12",cy:"11",r:"4",key:"1gt34v"}],["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",key:"afitv7"}]]),u6=i("square-user",[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",key:"afitv7"}],["circle",{cx:"12",cy:"10",r:"3",key:"ilqhr7"}],["path",{d:"M7 21v-2a2 2 0 0 1 2-2h6a2 2 0 0 1 2 2v2",key:"1m6ac2"}]]),u7=i("square-x",[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",ry:"2",key:"1m3agn"}],["path",{d:"m15 9-6 6",key:"1uzhvr"}],["path",{d:"m9 9 6 6",key:"z0biqf"}]]),u8=i("square",[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",key:"afitv7"}]]),u9=i("squares-exclude",[["path",{d:"M16 12v2a2 2 0 0 1-2 2H9a1 1 0 0 0-1 1v3a2 2 0 0 0 2 2h10a2 2 0 0 0 2-2V10a2 2 0 0 0-2-2h0",key:"1mcohs"}],["path",{d:"M4 16a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h10a2 2 0 0 1 2 2v3a1 1 0 0 1-1 1h-5a2 2 0 0 0-2 2v2",key:"1r1efp"}]]),va=i("squares-intersect",[["path",{d:"M10 22a2 2 0 0 1-2-2",key:"i7yj1i"}],["path",{d:"M14 2a2 2 0 0 1 2 2",key:"170a0m"}],["path",{d:"M16 22h-2",key:"18d249"}],["path",{d:"M2 10V8",key:"7yj4fe"}],["path",{d:"M2 4a2 2 0 0 1 2-2",key:"ddgnws"}],["path",{d:"M20 8a2 2 0 0 1 2 2",key:"1770vt"}],["path",{d:"M22 14v2",key:"iot8ja"}],["path",{d:"M22 20a2 2 0 0 1-2 2",key:"qj8q6g"}],["path",{d:"M4 16a2 2 0 0 1-2-2",key:"1dnafg"}],["path",{d:"M8 10a2 2 0 0 1 2-2h5a1 1 0 0 1 1 1v5a2 2 0 0 1-2 2H9a1 1 0 0 1-1-1z",key:"ci6f0b"}],["path",{d:"M8 2h2",key:"1gmkwm"}]]),vb=i("squares-subtract",[["path",{d:"M10 22a2 2 0 0 1-2-2",key:"i7yj1i"}],["path",{d:"M16 22h-2",key:"18d249"}],["path",{d:"M16 4a2 2 0 0 0-2-2H4a2 2 0 0 0-2 2v10a2 2 0 0 0 2 2h3a1 1 0 0 0 1-1v-5a2 2 0 0 1 2-2h5a1 1 0 0 0 1-1z",key:"1njgbb"}],["path",{d:"M20 8a2 2 0 0 1 2 2",key:"1770vt"}],["path",{d:"M22 14v2",key:"iot8ja"}],["path",{d:"M22 20a2 2 0 0 1-2 2",key:"qj8q6g"}]]),vc=i("squares-unite",[["path",{d:"M4 16a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h10a2 2 0 0 1 2 2v3a1 1 0 0 0 1 1h3a2 2 0 0 1 2 2v10a2 2 0 0 1-2 2H10a2 2 0 0 1-2-2v-3a1 1 0 0 0-1-1z",key:"17jnth"}]]),vd=i("squircle-dashed",[["path",{d:"M13.77 3.043a34 34 0 0 0-3.54 0",key:"1oaobr"}],["path",{d:"M13.771 20.956a33 33 0 0 1-3.541.001",key:"95iq0j"}],["path",{d:"M20.18 17.74c-.51 1.15-1.29 1.93-2.439 2.44",key:"1u6qty"}],["path",{d:"M20.18 6.259c-.51-1.148-1.291-1.929-2.44-2.438",key:"1ew6g6"}],["path",{d:"M20.957 10.23a33 33 0 0 1 0 3.54",key:"1l9npr"}],["path",{d:"M3.043 10.23a34 34 0 0 0 .001 3.541",key:"1it6jm"}],["path",{d:"M6.26 20.179c-1.15-.508-1.93-1.29-2.44-2.438",key:"14uchd"}],["path",{d:"M6.26 3.82c-1.149.51-1.93 1.291-2.44 2.44",key:"8k4agb"}]]),ve=i("squircle",[["path",{d:"M12 3c7.2 0 9 1.8 9 9s-1.8 9-9 9-9-1.8-9-9 1.8-9 9-9",key:"garfkc"}]]),vf=i("squirrel",[["path",{d:"M15.236 22a3 3 0 0 0-2.2-5",key:"21bitc"}],["path",{d:"M16 20a3 3 0 0 1 3-3h1a2 2 0 0 0 2-2v-2a4 4 0 0 0-4-4V4",key:"oh0fg0"}],["path",{d:"M18 13h.01",key:"9veqaj"}],["path",{d:"M18 6a4 4 0 0 0-4 4 7 7 0 0 0-7 7c0-5 4-5 4-10.5a4.5 4.5 0 1 0-9 0 2.5 2.5 0 0 0 5 0C7 10 3 11 3 17c0 2.8 2.2 5 5 5h10",key:"980v8a"}]]),vg=i("stamp",[["path",{d:"M14 13V8.5C14 7 15 7 15 5a3 3 0 0 0-6 0c0 2 1 2 1 3.5V13",key:"i9gjdv"}],["path",{d:"M20 15.5a2.5 2.5 0 0 0-2.5-2.5h-11A2.5 2.5 0 0 0 4 15.5V17a1 1 0 0 0 1 1h14a1 1 0 0 0 1-1z",key:"1vzg3v"}],["path",{d:"M5 22h14",key:"ehvnwv"}]]),vh=i("star-half",[["path",{d:"M12 18.338a2.1 2.1 0 0 0-.987.244L6.396 21.01a.53.53 0 0 1-.77-.56l.881-5.139a2.12 2.12 0 0 0-.611-1.879L2.16 9.795a.53.53 0 0 1 .294-.906l5.165-.755a2.12 2.12 0 0 0 1.597-1.16l2.309-4.679A.53.53 0 0 1 12 2",key:"2ksp49"}]]),vi=i("star-off",[["path",{d:"M8.34 8.34 2 9.27l5 4.87L5.82 21 12 17.77 18.18 21l-.59-3.43",key:"16m0ql"}],["path",{d:"M18.42 12.76 22 9.27l-6.91-1L12 2l-1.44 2.91",key:"1vt8nq"}],["line",{x1:"2",x2:"22",y1:"2",y2:"22",key:"a6p6uj"}]]),vj=i("star",[["path",{d:"M11.525 2.295a.53.53 0 0 1 .95 0l2.31 4.679a2.123 2.123 0 0 0 1.595 1.16l5.166.756a.53.53 0 0 1 .294.904l-3.736 3.638a2.123 2.123 0 0 0-.611 1.878l.882 5.14a.53.53 0 0 1-.771.56l-4.618-2.428a2.122 2.122 0 0 0-1.973 0L6.396 21.01a.53.53 0 0 1-.77-.56l.881-5.139a2.122 2.122 0 0 0-.611-1.879L2.16 9.795a.53.53 0 0 1 .294-.906l5.165-.755a2.122 2.122 0 0 0 1.597-1.16z",key:"r04s7s"}]]),vk=i("step-back",[["line",{x1:"18",x2:"18",y1:"20",y2:"4",key:"cun8e5"}],["polygon",{points:"14,20 4,12 14,4",key:"ypakod"}]]),vl=i("step-forward",[["line",{x1:"6",x2:"6",y1:"4",y2:"20",key:"fy8qot"}],["polygon",{points:"10,4 20,12 10,20",key:"1mc1pf"}]]),vm=i("stethoscope",[["path",{d:"M11 2v2",key:"1539x4"}],["path",{d:"M5 2v2",key:"1yf1q8"}],["path",{d:"M5 3H4a2 2 0 0 0-2 2v4a6 6 0 0 0 12 0V5a2 2 0 0 0-2-2h-1",key:"rb5t3r"}],["path",{d:"M8 15a6 6 0 0 0 12 0v-3",key:"x18d4x"}],["circle",{cx:"20",cy:"10",r:"2",key:"ts1r5v"}]]),vn=i("sticker",[["path",{d:"M15.5 3H5a2 2 0 0 0-2 2v14c0 1.1.9 2 2 2h14a2 2 0 0 0 2-2V8.5L15.5 3Z",key:"1wis1t"}],["path",{d:"M14 3v4a2 2 0 0 0 2 2h4",key:"36rjfy"}],["path",{d:"M8 13h.01",key:"1sbv64"}],["path",{d:"M16 13h.01",key:"wip0gl"}],["path",{d:"M10 16s.8 1 2 1c1.3 0 2-1 2-1",key:"1vvgv3"}]]),vo=i("sticky-note",[["path",{d:"M16 3H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2V8Z",key:"qazsjp"}],["path",{d:"M15 3v4a2 2 0 0 0 2 2h4",key:"40519r"}]]),vp=i("store",[["path",{d:"m2 7 4.41-4.41A2 2 0 0 1 7.83 2h8.34a2 2 0 0 1 1.42.59L22 7",key:"ztvudi"}],["path",{d:"M4 12v8a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2v-8",key:"1b2hhj"}],["path",{d:"M15 22v-4a2 2 0 0 0-2-2h-2a2 2 0 0 0-2 2v4",key:"2ebpfo"}],["path",{d:"M2 7h20",key:"1fcdvo"}],["path",{d:"M22 7v3a2 2 0 0 1-2 2a2.7 2.7 0 0 1-1.59-.63.7.7 0 0 0-.82 0A2.7 2.7 0 0 1 16 12a2.7 2.7 0 0 1-1.59-.63.7.7 0 0 0-.82 0A2.7 2.7 0 0 1 12 12a2.7 2.7 0 0 1-1.59-.63.7.7 0 0 0-.82 0A2.7 2.7 0 0 1 8 12a2.7 2.7 0 0 1-1.59-.63.7.7 0 0 0-.82 0A2.7 2.7 0 0 1 4 12a2 2 0 0 1-2-2V7",key:"6c3vgh"}]]),vq=i("stretch-horizontal",[["rect",{width:"20",height:"6",x:"2",y:"4",rx:"2",key:"qdearl"}],["rect",{width:"20",height:"6",x:"2",y:"14",rx:"2",key:"1xrn6j"}]]),vr=i("stretch-vertical",[["rect",{width:"6",height:"20",x:"4",y:"2",rx:"2",key:"19qu7m"}],["rect",{width:"6",height:"20",x:"14",y:"2",rx:"2",key:"24v0nk"}]]),vs=i("strikethrough",[["path",{d:"M16 4H9a3 3 0 0 0-2.83 4",key:"43sutm"}],["path",{d:"M14 12a4 4 0 0 1 0 8H6",key:"nlfj13"}],["line",{x1:"4",x2:"20",y1:"12",y2:"12",key:"1e0a9i"}]]),vt=i("subscript",[["path",{d:"m4 5 8 8",key:"1eunvl"}],["path",{d:"m12 5-8 8",key:"1ah0jp"}],["path",{d:"M20 19h-4c0-1.5.44-2 1.5-2.5S20 15.33 20 14c0-.47-.17-.93-.48-1.29a2.11 2.11 0 0 0-2.62-.44c-.42.24-.74.62-.9 1.07",key:"e8ta8j"}]]),vu=i("sun-dim",[["circle",{cx:"12",cy:"12",r:"4",key:"4exip2"}],["path",{d:"M12 4h.01",key:"1ujb9j"}],["path",{d:"M20 12h.01",key:"1ykeid"}],["path",{d:"M12 20h.01",key:"zekei9"}],["path",{d:"M4 12h.01",key:"158zrr"}],["path",{d:"M17.657 6.343h.01",key:"31pqzk"}],["path",{d:"M17.657 17.657h.01",key:"jehnf4"}],["path",{d:"M6.343 17.657h.01",key:"gdk6ow"}],["path",{d:"M6.343 6.343h.01",key:"1uurf0"}]]),vv=i("sun-medium",[["circle",{cx:"12",cy:"12",r:"4",key:"4exip2"}],["path",{d:"M12 3v1",key:"1asbbs"}],["path",{d:"M12 20v1",key:"1wcdkc"}],["path",{d:"M3 12h1",key:"lp3yf2"}],["path",{d:"M20 12h1",key:"1vloll"}],["path",{d:"m18.364 5.636-.707.707",key:"1hakh0"}],["path",{d:"m6.343 17.657-.707.707",key:"18m9nf"}],["path",{d:"m5.636 5.636.707.707",key:"1xv1c5"}],["path",{d:"m17.657 17.657.707.707",key:"vl76zb"}]]),vw=i("sun-moon",[["path",{d:"M12 2v2",key:"tus03m"}],["path",{d:"M13 8.129A4 4 0 0 1 15.873 11",key:"my0cn3"}],["path",{d:"m19 5-1.256 1.256",key:"1yg6a6"}],["path",{d:"M20 12h2",key:"1q8mjw"}],["path",{d:"M9 8a5 5 0 1 0 7 7 7 7 0 1 1-7-7",key:"4qob92"}]]),vx=i("sun-snow",[["path",{d:"M10 21v-1",key:"1u8rkd"}],["path",{d:"M10 4V3",key:"pkzwkn"}],["path",{d:"M10 9a3 3 0 0 0 0 6",key:"gv75dk"}],["path",{d:"m14 20 1.25-2.5L18 18",key:"1chtki"}],["path",{d:"m14 4 1.25 2.5L18 6",key:"1b4wsy"}],["path",{d:"m17 21-3-6 1.5-3H22",key:"o5qa3v"}],["path",{d:"m17 3-3 6 1.5 3",key:"11697g"}],["path",{d:"M2 12h1",key:"1uaihz"}],["path",{d:"m20 10-1.5 2 1.5 2",key:"1swlpi"}],["path",{d:"m3.64 18.36.7-.7",key:"105rm9"}],["path",{d:"m4.34 6.34-.7-.7",key:"d3unjp"}]]),vy=i("sun",[["circle",{cx:"12",cy:"12",r:"4",key:"4exip2"}],["path",{d:"M12 2v2",key:"tus03m"}],["path",{d:"M12 20v2",key:"1lh1kg"}],["path",{d:"m4.93 4.93 1.41 1.41",key:"149t6j"}],["path",{d:"m17.66 17.66 1.41 1.41",key:"ptbguv"}],["path",{d:"M2 12h2",key:"1t8f8n"}],["path",{d:"M20 12h2",key:"1q8mjw"}],["path",{d:"m6.34 17.66-1.41 1.41",key:"1m8zz5"}],["path",{d:"m19.07 4.93-1.41 1.41",key:"1shlcs"}]]),vz=i("sunrise",[["path",{d:"M12 2v8",key:"1q4o3n"}],["path",{d:"m4.93 10.93 1.41 1.41",key:"2a7f42"}],["path",{d:"M2 18h2",key:"j10viu"}],["path",{d:"M20 18h2",key:"wocana"}],["path",{d:"m19.07 10.93-1.41 1.41",key:"15zs5n"}],["path",{d:"M22 22H2",key:"19qnx5"}],["path",{d:"m8 6 4-4 4 4",key:"ybng9g"}],["path",{d:"M16 18a4 4 0 0 0-8 0",key:"1lzouq"}]]),vA=i("superscript",[["path",{d:"m4 19 8-8",key:"hr47gm"}],["path",{d:"m12 19-8-8",key:"1dhhmo"}],["path",{d:"M20 12h-4c0-1.5.442-2 1.5-2.5S20 8.334 20 7.002c0-.472-.17-.93-.484-1.29a2.105 2.105 0 0 0-2.617-.436c-.42.239-.738.614-.899 1.06",key:"1dfcux"}]]),vB=i("sunset",[["path",{d:"M12 10V2",key:"16sf7g"}],["path",{d:"m4.93 10.93 1.41 1.41",key:"2a7f42"}],["path",{d:"M2 18h2",key:"j10viu"}],["path",{d:"M20 18h2",key:"wocana"}],["path",{d:"m19.07 10.93-1.41 1.41",key:"15zs5n"}],["path",{d:"M22 22H2",key:"19qnx5"}],["path",{d:"m16 6-4 4-4-4",key:"6wukr"}],["path",{d:"M16 18a4 4 0 0 0-8 0",key:"1lzouq"}]]),vC=i("swatch-book",[["path",{d:"M11 17a4 4 0 0 1-8 0V5a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2Z",key:"1ldrpk"}],["path",{d:"M16.7 13H19a2 2 0 0 1 2 2v4a2 2 0 0 1-2 2H7",key:"11i5po"}],["path",{d:"M 7 17h.01",key:"1euzgo"}],["path",{d:"m11 8 2.3-2.3a2.4 2.4 0 0 1 3.404.004L18.6 7.6a2.4 2.4 0 0 1 .026 3.434L9.9 19.8",key:"o2gii7"}]]),vD=i("swiss-franc",[["path",{d:"M10 21V3h8",key:"br2l0g"}],["path",{d:"M6 16h9",key:"2py0wn"}],["path",{d:"M10 9.5h7",key:"13dmhz"}]]),vE=i("switch-camera",[["path",{d:"M11 19H4a2 2 0 0 1-2-2V7a2 2 0 0 1 2-2h5",key:"mtk2lu"}],["path",{d:"M13 5h7a2 2 0 0 1 2 2v10a2 2 0 0 1-2 2h-5",key:"120jsl"}],["circle",{cx:"12",cy:"12",r:"3",key:"1v7zrd"}],["path",{d:"m18 22-3-3 3-3",key:"kgdoj7"}],["path",{d:"m6 2 3 3-3 3",key:"1fnbkv"}]]),vF=i("sword",[["polyline",{points:"14.5 17.5 3 6 3 3 6 3 17.5 14.5",key:"1hfsw2"}],["line",{x1:"13",x2:"19",y1:"19",y2:"13",key:"1vrmhu"}],["line",{x1:"16",x2:"20",y1:"16",y2:"20",key:"1bron3"}],["line",{x1:"19",x2:"21",y1:"21",y2:"19",key:"13pww6"}]]),vG=i("swords",[["polyline",{points:"14.5 17.5 3 6 3 3 6 3 17.5 14.5",key:"1hfsw2"}],["line",{x1:"13",x2:"19",y1:"19",y2:"13",key:"1vrmhu"}],["line",{x1:"16",x2:"20",y1:"16",y2:"20",key:"1bron3"}],["line",{x1:"19",x2:"21",y1:"21",y2:"19",key:"13pww6"}],["polyline",{points:"14.5 6.5 18 3 21 3 21 6 17.5 9.5",key:"hbey2j"}],["line",{x1:"5",x2:"9",y1:"14",y2:"18",key:"1hf58s"}],["line",{x1:"7",x2:"4",y1:"17",y2:"20",key:"pidxm4"}],["line",{x1:"3",x2:"5",y1:"19",y2:"21",key:"1pehsh"}]]),vH=i("syringe",[["path",{d:"m18 2 4 4",key:"22kx64"}],["path",{d:"m17 7 3-3",key:"1w1zoj"}],["path",{d:"M19 9 8.7 19.3c-1 1-2.5 1-3.4 0l-.6-.6c-1-1-1-2.5 0-3.4L15 5",key:"1exhtz"}],["path",{d:"m9 11 4 4",key:"rovt3i"}],["path",{d:"m5 19-3 3",key:"59f2uf"}],["path",{d:"m14 4 6 6",key:"yqp9t2"}]]),vI=i("table-2",[["path",{d:"M9 3H5a2 2 0 0 0-2 2v4m6-6h10a2 2 0 0 1 2 2v4M9 3v18m0 0h10a2 2 0 0 0 2-2V9M9 21H5a2 2 0 0 1-2-2V9m0 0h18",key:"gugj83"}]]),vJ=i("table-cells-merge",[["path",{d:"M12 21v-6",key:"lihzve"}],["path",{d:"M12 9V3",key:"da5inc"}],["path",{d:"M3 15h18",key:"5xshup"}],["path",{d:"M3 9h18",key:"1pudct"}],["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",key:"afitv7"}]]),vK=i("table-cells-split",[["path",{d:"M12 15V9",key:"8c7uyn"}],["path",{d:"M3 15h18",key:"5xshup"}],["path",{d:"M3 9h18",key:"1pudct"}],["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",key:"afitv7"}]]),vL=i("table-columns-split",[["path",{d:"M14 14v2",key:"w2a1xv"}],["path",{d:"M14 20v2",key:"1lq872"}],["path",{d:"M14 2v2",key:"6buw04"}],["path",{d:"M14 8v2",key:"i67w9a"}],["path",{d:"M2 15h8",key:"82wtch"}],["path",{d:"M2 3h6a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H2",key:"up0l64"}],["path",{d:"M2 9h8",key:"yelfik"}],["path",{d:"M22 15h-4",key:"1es58f"}],["path",{d:"M22 3h-2a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h2",key:"pdjoqf"}],["path",{d:"M22 9h-4",key:"1luja7"}],["path",{d:"M5 3v18",key:"14hmio"}]]),vM=i("table-of-contents",[["path",{d:"M16 12H3",key:"1a2rj7"}],["path",{d:"M16 18H3",key:"12xzn7"}],["path",{d:"M16 6H3",key:"1wxfjs"}],["path",{d:"M21 12h.01",key:"msek7k"}],["path",{d:"M21 18h.01",key:"1e8rq1"}],["path",{d:"M21 6h.01",key:"1koanj"}]]),vN=i("table-properties",[["path",{d:"M15 3v18",key:"14nvp0"}],["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",key:"afitv7"}],["path",{d:"M21 9H3",key:"1338ky"}],["path",{d:"M21 15H3",key:"9uk58r"}]]),vO=i("table-rows-split",[["path",{d:"M14 10h2",key:"1lstlu"}],["path",{d:"M15 22v-8",key:"1fwwgm"}],["path",{d:"M15 2v4",key:"1044rn"}],["path",{d:"M2 10h2",key:"1r8dkt"}],["path",{d:"M20 10h2",key:"1ug425"}],["path",{d:"M3 19h18",key:"awlh7x"}],["path",{d:"M3 22v-6a2 2 135 0 1 2-2h14a2 2 45 0 1 2 2v6",key:"ibqhof"}],["path",{d:"M3 2v2a2 2 45 0 0 2 2h14a2 2 135 0 0 2-2V2",key:"1uenja"}],["path",{d:"M8 10h2",key:"66od0"}],["path",{d:"M9 22v-8",key:"fmnu31"}],["path",{d:"M9 2v4",key:"j1yeou"}]]),vP=i("table",[["path",{d:"M12 3v18",key:"108xh3"}],["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",key:"afitv7"}],["path",{d:"M3 9h18",key:"1pudct"}],["path",{d:"M3 15h18",key:"5xshup"}]]),vQ=i("tablet-smartphone",[["rect",{width:"10",height:"14",x:"3",y:"8",rx:"2",key:"1vrsiq"}],["path",{d:"M5 4a2 2 0 0 1 2-2h12a2 2 0 0 1 2 2v16a2 2 0 0 1-2 2h-2.4",key:"1j4zmg"}],["path",{d:"M8 18h.01",key:"lrp35t"}]]),vR=i("tablet",[["rect",{width:"16",height:"20",x:"4",y:"2",rx:"2",ry:"2",key:"76otgf"}],["line",{x1:"12",x2:"12.01",y1:"18",y2:"18",key:"1dp563"}]]),vS=i("tablets",[["circle",{cx:"7",cy:"7",r:"5",key:"x29byf"}],["circle",{cx:"17",cy:"17",r:"5",key:"1op1d2"}],["path",{d:"M12 17h10",key:"ls21zv"}],["path",{d:"m3.46 10.54 7.08-7.08",key:"1rehiu"}]]),vT=i("tag",[["path",{d:"M12.586 2.586A2 2 0 0 0 11.172 2H4a2 2 0 0 0-2 2v7.172a2 2 0 0 0 .586 1.414l8.704 8.704a2.426 2.426 0 0 0 3.42 0l6.58-6.58a2.426 2.426 0 0 0 0-3.42z",key:"vktsd0"}],["circle",{cx:"7.5",cy:"7.5",r:".5",fill:"currentColor",key:"kqv944"}]]),vU=i("tags",[["path",{d:"m15 5 6.3 6.3a2.4 2.4 0 0 1 0 3.4L17 19",key:"1cbfv1"}],["path",{d:"M9.586 5.586A2 2 0 0 0 8.172 5H3a1 1 0 0 0-1 1v5.172a2 2 0 0 0 .586 1.414L8.29 18.29a2.426 2.426 0 0 0 3.42 0l3.58-3.58a2.426 2.426 0 0 0 0-3.42z",key:"135mg7"}],["circle",{cx:"6.5",cy:"9.5",r:".5",fill:"currentColor",key:"5pm5xn"}]]),vV=i("tally-1",[["path",{d:"M4 4v16",key:"6qkkli"}]]),vW=i("tally-2",[["path",{d:"M4 4v16",key:"6qkkli"}],["path",{d:"M9 4v16",key:"81ygyz"}]]),vX=i("tally-3",[["path",{d:"M4 4v16",key:"6qkkli"}],["path",{d:"M9 4v16",key:"81ygyz"}],["path",{d:"M14 4v16",key:"12vmem"}]]),vY=i("tally-4",[["path",{d:"M4 4v16",key:"6qkkli"}],["path",{d:"M9 4v16",key:"81ygyz"}],["path",{d:"M14 4v16",key:"12vmem"}],["path",{d:"M19 4v16",key:"8ij5ei"}]]),vZ=i("tally-5",[["path",{d:"M4 4v16",key:"6qkkli"}],["path",{d:"M9 4v16",key:"81ygyz"}],["path",{d:"M14 4v16",key:"12vmem"}],["path",{d:"M19 4v16",key:"8ij5ei"}],["path",{d:"M22 6 2 18",key:"h9moai"}]]),v$=i("tangent",[["circle",{cx:"17",cy:"4",r:"2",key:"y5j2s2"}],["path",{d:"M15.59 5.41 5.41 15.59",key:"l0vprr"}],["circle",{cx:"4",cy:"17",r:"2",key:"9p4efm"}],["path",{d:"M12 22s-4-9-1.5-11.5S22 12 22 12",key:"1twk4o"}]]),v_=i("target",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["circle",{cx:"12",cy:"12",r:"6",key:"1vlfrh"}],["circle",{cx:"12",cy:"12",r:"2",key:"1c9p78"}]]),v0=i("telescope",[["path",{d:"m10.065 12.493-6.18 1.318a.934.934 0 0 1-1.108-.702l-.537-2.15a1.07 1.07 0 0 1 .691-1.265l13.504-4.44",key:"k4qptu"}],["path",{d:"m13.56 11.747 4.332-.924",key:"19l80z"}],["path",{d:"m16 21-3.105-6.21",key:"7oh9d"}],["path",{d:"M16.485 5.94a2 2 0 0 1 1.455-2.425l1.09-.272a1 1 0 0 1 1.212.727l1.515 6.06a1 1 0 0 1-.727 1.213l-1.09.272a2 2 0 0 1-2.425-1.455z",key:"m7xp4m"}],["path",{d:"m6.158 8.633 1.114 4.456",key:"74o979"}],["path",{d:"m8 21 3.105-6.21",key:"1fvxut"}],["circle",{cx:"12",cy:"13",r:"2",key:"1c1ljs"}]]),v1=i("tent-tree",[["circle",{cx:"4",cy:"4",r:"2",key:"bt5ra8"}],["path",{d:"m14 5 3-3 3 3",key:"1sorif"}],["path",{d:"m14 10 3-3 3 3",key:"1jyi9h"}],["path",{d:"M17 14V2",key:"8ymqnk"}],["path",{d:"M17 14H7l-5 8h20Z",key:"13ar7p"}],["path",{d:"M8 14v8",key:"1ghmqk"}],["path",{d:"m9 14 5 8",key:"13pgi6"}]]),v2=i("tent",[["path",{d:"M3.5 21 14 3",key:"1szst5"}],["path",{d:"M20.5 21 10 3",key:"1310c3"}],["path",{d:"M15.5 21 12 15l-3.5 6",key:"1ddtfw"}],["path",{d:"M2 21h20",key:"1nyx9w"}]]),v3=i("terminal",[["path",{d:"M12 19h8",key:"baeox8"}],["path",{d:"m4 17 6-6-6-6",key:"1yngyt"}]]),v4=i("test-tube-diagonal",[["path",{d:"M21 7 6.82 21.18a2.83 2.83 0 0 1-3.99-.01a2.83 2.83 0 0 1 0-4L17 3",key:"1ub6xw"}],["path",{d:"m16 2 6 6",key:"1gw87d"}],["path",{d:"M12 16H4",key:"1cjfip"}]]),v5=i("test-tube",[["path",{d:"M14.5 2v17.5c0 1.4-1.1 2.5-2.5 2.5c-1.4 0-2.5-1.1-2.5-2.5V2",key:"125lnx"}],["path",{d:"M8.5 2h7",key:"csnxdl"}],["path",{d:"M14.5 16h-5",key:"1ox875"}]]),v6=i("test-tubes",[["path",{d:"M9 2v17.5A2.5 2.5 0 0 1 6.5 22A2.5 2.5 0 0 1 4 19.5V2",key:"1hjrqt"}],["path",{d:"M20 2v17.5a2.5 2.5 0 0 1-2.5 2.5a2.5 2.5 0 0 1-2.5-2.5V2",key:"16lc8n"}],["path",{d:"M3 2h7",key:"7s29d5"}],["path",{d:"M14 2h7",key:"7sicin"}],["path",{d:"M9 16H4",key:"1bfye3"}],["path",{d:"M20 16h-5",key:"ddnjpe"}]]),v7=i("text-cursor-input",[["path",{d:"M12 20h-1a2 2 0 0 1-2-2 2 2 0 0 1-2 2H6",key:"1528k5"}],["path",{d:"M13 8h7a2 2 0 0 1 2 2v4a2 2 0 0 1-2 2h-7",key:"13ksps"}],["path",{d:"M5 16H4a2 2 0 0 1-2-2v-4a2 2 0 0 1 2-2h1",key:"1n9rhb"}],["path",{d:"M6 4h1a2 2 0 0 1 2 2 2 2 0 0 1 2-2h1",key:"1mj8rg"}],["path",{d:"M9 6v12",key:"velyjx"}]]),v8=i("text-quote",[["path",{d:"M17 6H3",key:"16j9eg"}],["path",{d:"M21 12H8",key:"scolzb"}],["path",{d:"M21 18H8",key:"1wfozv"}],["path",{d:"M3 12v6",key:"fv4c87"}]]),v9=i("text-cursor",[["path",{d:"M17 22h-1a4 4 0 0 1-4-4V6a4 4 0 0 1 4-4h1",key:"uvaxm9"}],["path",{d:"M7 22h1a4 4 0 0 0 4-4v-1",key:"11xy8d"}],["path",{d:"M7 2h1a4 4 0 0 1 4 4v1",key:"1uw06m"}]]),wa=i("text-search",[["path",{d:"M21 6H3",key:"1jwq7v"}],["path",{d:"M10 12H3",key:"1ulcyk"}],["path",{d:"M10 18H3",key:"13769t"}],["circle",{cx:"17",cy:"15",r:"3",key:"1upz2a"}],["path",{d:"m21 19-1.9-1.9",key:"dwi7p8"}]]),wb=i("text-select",[["path",{d:"M14 21h1",key:"v9vybs"}],["path",{d:"M14 3h1",key:"1ec4yj"}],["path",{d:"M19 3a2 2 0 0 1 2 2",key:"18rm91"}],["path",{d:"M21 14v1",key:"169vum"}],["path",{d:"M21 19a2 2 0 0 1-2 2",key:"1j7049"}],["path",{d:"M21 9v1",key:"mxsmne"}],["path",{d:"M3 14v1",key:"vnatye"}],["path",{d:"M3 9v1",key:"1r0deq"}],["path",{d:"M5 21a2 2 0 0 1-2-2",key:"sbafld"}],["path",{d:"M5 3a2 2 0 0 0-2 2",key:"y57alp"}],["path",{d:"M7 12h10",key:"b7w52i"}],["path",{d:"M7 16h6",key:"1vyc9m"}],["path",{d:"M7 8h8",key:"1jbsf9"}],["path",{d:"M9 21h1",key:"15o7lz"}],["path",{d:"M9 3h1",key:"1yesri"}]]),wc=i("text",[["path",{d:"M15 18H3",key:"olowqp"}],["path",{d:"M17 6H3",key:"16j9eg"}],["path",{d:"M21 12H3",key:"2avoz0"}]]),wd=i("theater",[["path",{d:"M2 10s3-3 3-8",key:"3xiif0"}],["path",{d:"M22 10s-3-3-3-8",key:"ioaa5q"}],["path",{d:"M10 2c0 4.4-3.6 8-8 8",key:"16fkpi"}],["path",{d:"M14 2c0 4.4 3.6 8 8 8",key:"b9eulq"}],["path",{d:"M2 10s2 2 2 5",key:"1au1lb"}],["path",{d:"M22 10s-2 2-2 5",key:"qi2y5e"}],["path",{d:"M8 15h8",key:"45n4r"}],["path",{d:"M2 22v-1a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v1",key:"1vsc2m"}],["path",{d:"M14 22v-1a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v1",key:"hrha4u"}]]),we=i("thermometer-snowflake",[["path",{d:"m10 20-1.25-2.5L6 18",key:"18frcb"}],["path",{d:"M10 4 8.75 6.5 6 6",key:"7mghy3"}],["path",{d:"M10.585 15H10",key:"4nqulp"}],["path",{d:"M2 12h6.5L10 9",key:"kv9z4n"}],["path",{d:"M20 14.54a4 4 0 1 1-4 0V4a2 2 0 0 1 4 0z",key:"yu0u2z"}],["path",{d:"m4 10 1.5 2L4 14",key:"k9enpj"}],["path",{d:"m7 21 3-6-1.5-3",key:"j8hb9u"}],["path",{d:"m7 3 3 6h2",key:"1bbqgq"}]]),wf=i("thermometer-sun",[["path",{d:"M12 9a4 4 0 0 0-2 7.5",key:"1jvsq6"}],["path",{d:"M12 3v2",key:"1w22ol"}],["path",{d:"m6.6 18.4-1.4 1.4",key:"w2yidj"}],["path",{d:"M20 4v10.54a4 4 0 1 1-4 0V4a2 2 0 0 1 4 0Z",key:"iof6y5"}],["path",{d:"M4 13H2",key:"118le4"}],["path",{d:"M6.34 7.34 4.93 5.93",key:"1brd51"}]]),wg=i("thermometer",[["path",{d:"M14 4v10.54a4 4 0 1 1-4 0V4a2 2 0 0 1 4 0Z",key:"17jzev"}]]),wh=i("thumbs-down",[["path",{d:"M17 14V2",key:"8ymqnk"}],["path",{d:"M9 18.12 10 14H4.17a2 2 0 0 1-1.92-2.56l2.33-8A2 2 0 0 1 6.5 2H20a2 2 0 0 1 2 2v8a2 2 0 0 1-2 2h-2.76a2 2 0 0 0-1.79 1.11L12 22a3.13 3.13 0 0 1-3-3.88Z",key:"m61m77"}]]),wi=i("thumbs-up",[["path",{d:"M7 10v12",key:"1qc93n"}],["path",{d:"M15 5.88 14 10h5.83a2 2 0 0 1 1.92 2.56l-2.33 8A2 2 0 0 1 17.5 22H4a2 2 0 0 1-2-2v-8a2 2 0 0 1 2-2h2.76a2 2 0 0 0 1.79-1.11L12 2a3.13 3.13 0 0 1 3 3.88Z",key:"emmmcr"}]]),wj=i("ticket-check",[["path",{d:"M2 9a3 3 0 0 1 0 6v2a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2v-2a3 3 0 0 1 0-6V7a2 2 0 0 0-2-2H4a2 2 0 0 0-2 2Z",key:"qn84l0"}],["path",{d:"m9 12 2 2 4-4",key:"dzmm74"}]]),wk=i("ticket-minus",[["path",{d:"M2 9a3 3 0 0 1 0 6v2a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2v-2a3 3 0 0 1 0-6V7a2 2 0 0 0-2-2H4a2 2 0 0 0-2 2Z",key:"qn84l0"}],["path",{d:"M9 12h6",key:"1c52cq"}]]),wl=i("ticket-percent",[["path",{d:"M2 9a3 3 0 1 1 0 6v2a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2v-2a3 3 0 1 1 0-6V7a2 2 0 0 0-2-2H4a2 2 0 0 0-2 2Z",key:"1l48ns"}],["path",{d:"M9 9h.01",key:"1q5me6"}],["path",{d:"m15 9-6 6",key:"1uzhvr"}],["path",{d:"M15 15h.01",key:"lqbp3k"}]]),wm=i("ticket-plus",[["path",{d:"M2 9a3 3 0 0 1 0 6v2a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2v-2a3 3 0 0 1 0-6V7a2 2 0 0 0-2-2H4a2 2 0 0 0-2 2Z",key:"qn84l0"}],["path",{d:"M9 12h6",key:"1c52cq"}],["path",{d:"M12 9v6",key:"199k2o"}]]),wn=i("ticket-slash",[["path",{d:"M2 9a3 3 0 0 1 0 6v2a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2v-2a3 3 0 0 1 0-6V7a2 2 0 0 0-2-2H4a2 2 0 0 0-2 2Z",key:"qn84l0"}],["path",{d:"m9.5 14.5 5-5",key:"qviqfa"}]]),wo=i("ticket-x",[["path",{d:"M2 9a3 3 0 0 1 0 6v2a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2v-2a3 3 0 0 1 0-6V7a2 2 0 0 0-2-2H4a2 2 0 0 0-2 2Z",key:"qn84l0"}],["path",{d:"m9.5 14.5 5-5",key:"qviqfa"}],["path",{d:"m9.5 9.5 5 5",key:"18nt4w"}]]),wp=i("ticket",[["path",{d:"M2 9a3 3 0 0 1 0 6v2a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2v-2a3 3 0 0 1 0-6V7a2 2 0 0 0-2-2H4a2 2 0 0 0-2 2Z",key:"qn84l0"}],["path",{d:"M13 5v2",key:"dyzc3o"}],["path",{d:"M13 17v2",key:"1ont0d"}],["path",{d:"M13 11v2",key:"1wjjxi"}]]),wq=i("tickets-plane",[["path",{d:"M10.5 17h1.227a2 2 0 0 0 1.345-.52L18 12",key:"16muxl"}],["path",{d:"m12 13.5 3.75.5",key:"1i9qhk"}],["path",{d:"m4.5 8 10.58-5.06a1 1 0 0 1 1.342.488L18.5 8",key:"12lg5p"}],["path",{d:"M6 10V8",key:"1y41hn"}],["path",{d:"M6 14v1",key:"cao2tf"}],["path",{d:"M6 19v2",key:"1loha6"}],["rect",{x:"2",y:"8",width:"20",height:"13",rx:"2",key:"p3bz5l"}]]),wr=i("tickets",[["path",{d:"m4.5 8 10.58-5.06a1 1 0 0 1 1.342.488L18.5 8",key:"12lg5p"}],["path",{d:"M6 10V8",key:"1y41hn"}],["path",{d:"M6 14v1",key:"cao2tf"}],["path",{d:"M6 19v2",key:"1loha6"}],["rect",{x:"2",y:"8",width:"20",height:"13",rx:"2",key:"p3bz5l"}]]),ws=i("timer-off",[["path",{d:"M10 2h4",key:"n1abiw"}],["path",{d:"M4.6 11a8 8 0 0 0 1.7 8.7 8 8 0 0 0 8.7 1.7",key:"10he05"}],["path",{d:"M7.4 7.4a8 8 0 0 1 10.3 1 8 8 0 0 1 .9 10.2",key:"15f7sh"}],["path",{d:"m2 2 20 20",key:"1ooewy"}],["path",{d:"M12 12v-2",key:"fwoke6"}]]),wt=i("timer-reset",[["path",{d:"M10 2h4",key:"n1abiw"}],["path",{d:"M12 14v-4",key:"1evpnu"}],["path",{d:"M4 13a8 8 0 0 1 8-7 8 8 0 1 1-5.3 14L4 17.6",key:"1ts96g"}],["path",{d:"M9 17H4v5",key:"8t5av"}]]),wu=i("timer",[["line",{x1:"10",x2:"14",y1:"2",y2:"2",key:"14vaq8"}],["line",{x1:"12",x2:"15",y1:"14",y2:"11",key:"17fdiu"}],["circle",{cx:"12",cy:"14",r:"8",key:"1e1u0o"}]]),wv=i("toggle-left",[["circle",{cx:"9",cy:"12",r:"3",key:"u3jwor"}],["rect",{width:"20",height:"14",x:"2",y:"5",rx:"7",key:"g7kal2"}]]),ww=i("toggle-right",[["circle",{cx:"15",cy:"12",r:"3",key:"1afu0r"}],["rect",{width:"20",height:"14",x:"2",y:"5",rx:"7",key:"g7kal2"}]]),wx=i("toilet",[["path",{d:"M7 12h13a1 1 0 0 1 1 1 5 5 0 0 1-5 5h-.598a.5.5 0 0 0-.424.765l1.544 2.47a.5.5 0 0 1-.424.765H5.402a.5.5 0 0 1-.424-.765L7 18",key:"kc4kqr"}],["path",{d:"M8 18a5 5 0 0 1-5-5V4a2 2 0 0 1 2-2h8a2 2 0 0 1 2 2v8",key:"1tqs57"}]]),wy=i("tool-case",[["path",{d:"M10 15h4",key:"192ueg"}],["path",{d:"m14.817 10.995-.971-1.45 1.034-1.232a2 2 0 0 0-2.025-3.238l-1.82.364L9.91 3.885a2 2 0 0 0-3.625.748L6.141 6.55l-1.725.426a2 2 0 0 0-.19 3.756l.657.27",key:"xbnumr"}],["path",{d:"m18.822 10.995 2.26-5.38a1 1 0 0 0-.557-1.318L16.954 2.9a1 1 0 0 0-1.281.533l-.924 2.122",key:"eaw7gc"}],["path",{d:"M4 12.006A1 1 0 0 1 4.994 11H19a1 1 0 0 1 1 1v7a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2z",key:"1vaooh"}]]),wz=i("tornado",[["path",{d:"M21 4H3",key:"1hwok0"}],["path",{d:"M18 8H6",key:"41n648"}],["path",{d:"M19 12H9",key:"1g4lpz"}],["path",{d:"M16 16h-6",key:"1j5d54"}],["path",{d:"M11 20H9",key:"39obr8"}]]),wA=i("torus",[["ellipse",{cx:"12",cy:"11",rx:"3",ry:"2",key:"1b2qxu"}],["ellipse",{cx:"12",cy:"12.5",rx:"10",ry:"8.5",key:"h8emeu"}]]),wB=i("touchpad",[["rect",{width:"20",height:"16",x:"2",y:"4",rx:"2",key:"18n3k1"}],["path",{d:"M2 14h20",key:"myj16y"}],["path",{d:"M12 20v-6",key:"1rm09r"}]]),wC=i("touchpad-off",[["path",{d:"M12 20v-6",key:"1rm09r"}],["path",{d:"M19.656 14H22",key:"170xzr"}],["path",{d:"M2 14h12",key:"d8icqz"}],["path",{d:"m2 2 20 20",key:"1ooewy"}],["path",{d:"M20 20H4a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2",key:"s23sx2"}],["path",{d:"M9.656 4H20a2 2 0 0 1 2 2v10.344",key:"ovjcvl"}]]),wD=i("tower-control",[["path",{d:"M18.2 12.27 20 6H4l1.8 6.27a1 1 0 0 0 .95.73h10.5a1 1 0 0 0 .96-.73Z",key:"1pledb"}],["path",{d:"M8 13v9",key:"hmv0ci"}],["path",{d:"M16 22v-9",key:"ylnf1u"}],["path",{d:"m9 6 1 7",key:"dpdgam"}],["path",{d:"m15 6-1 7",key:"ls7zgu"}],["path",{d:"M12 6V2",key:"1pj48d"}],["path",{d:"M13 2h-2",key:"mj6ths"}]]),wE=i("toy-brick",[["rect",{width:"18",height:"12",x:"3",y:"8",rx:"1",key:"158fvp"}],["path",{d:"M10 8V5c0-.6-.4-1-1-1H6a1 1 0 0 0-1 1v3",key:"s0042v"}],["path",{d:"M19 8V5c0-.6-.4-1-1-1h-3a1 1 0 0 0-1 1v3",key:"9wmeh2"}]]),wF=i("tractor",[["path",{d:"m10 11 11 .9a1 1 0 0 1 .8 1.1l-.665 4.158a1 1 0 0 1-.988.842H20",key:"she1j9"}],["path",{d:"M16 18h-5",key:"bq60fd"}],["path",{d:"M18 5a1 1 0 0 0-1 1v5.573",key:"1kv8ia"}],["path",{d:"M3 4h8.129a1 1 0 0 1 .99.863L13 11.246",key:"1q1ert"}],["path",{d:"M4 11V4",key:"9ft8pt"}],["path",{d:"M7 15h.01",key:"k5ht0j"}],["path",{d:"M8 10.1V4",key:"1jgyzo"}],["circle",{cx:"18",cy:"18",r:"2",key:"1emm8v"}],["circle",{cx:"7",cy:"15",r:"5",key:"ddtuc"}]]),wG=i("traffic-cone",[["path",{d:"M16.05 10.966a5 2.5 0 0 1-8.1 0",key:"m5jpwb"}],["path",{d:"m16.923 14.049 4.48 2.04a1 1 0 0 1 .001 1.831l-8.574 3.9a2 2 0 0 1-1.66 0l-8.574-3.91a1 1 0 0 1 0-1.83l4.484-2.04",key:"rbg3g8"}],["path",{d:"M16.949 14.14a5 2.5 0 1 1-9.9 0L10.063 3.5a2 2 0 0 1 3.874 0z",key:"vap8c8"}],["path",{d:"M9.194 6.57a5 2.5 0 0 0 5.61 0",key:"15hn5c"}]]),wH=i("train-front-tunnel",[["path",{d:"M2 22V12a10 10 0 1 1 20 0v10",key:"o0fyp0"}],["path",{d:"M15 6.8v1.4a3 2.8 0 1 1-6 0V6.8",key:"m8q3n9"}],["path",{d:"M10 15h.01",key:"44in9x"}],["path",{d:"M14 15h.01",key:"5mohn5"}],["path",{d:"M10 19a4 4 0 0 1-4-4v-3a6 6 0 1 1 12 0v3a4 4 0 0 1-4 4Z",key:"hckbmu"}],["path",{d:"m9 19-2 3",key:"iij7hm"}],["path",{d:"m15 19 2 3",key:"npx8sa"}]]),wI=i("train-front",[["path",{d:"M8 3.1V7a4 4 0 0 0 8 0V3.1",key:"1v71zp"}],["path",{d:"m9 15-1-1",key:"1yrq24"}],["path",{d:"m15 15 1-1",key:"1t0d6s"}],["path",{d:"M9 19c-2.8 0-5-2.2-5-5v-4a8 8 0 0 1 16 0v4c0 2.8-2.2 5-5 5Z",key:"1p0hjs"}],["path",{d:"m8 19-2 3",key:"13i0xs"}],["path",{d:"m16 19 2 3",key:"xo31yx"}]]),wJ=i("train-track",[["path",{d:"M2 17 17 2",key:"18b09t"}],["path",{d:"m2 14 8 8",key:"1gv9hu"}],["path",{d:"m5 11 8 8",key:"189pqp"}],["path",{d:"m8 8 8 8",key:"1imecy"}],["path",{d:"m11 5 8 8",key:"ummqn6"}],["path",{d:"m14 2 8 8",key:"1vk7dn"}],["path",{d:"M7 22 22 7",key:"15mb1i"}]]),wK=i("tram-front",[["rect",{width:"16",height:"16",x:"4",y:"3",rx:"2",key:"1wxw4b"}],["path",{d:"M4 11h16",key:"mpoxn0"}],["path",{d:"M12 3v8",key:"1h2ygw"}],["path",{d:"m8 19-2 3",key:"13i0xs"}],["path",{d:"m18 22-2-3",key:"1p0ohu"}],["path",{d:"M8 15h.01",key:"a7atzg"}],["path",{d:"M16 15h.01",key:"rnfrdf"}]]),wL=i("transgender",[["path",{d:"M12 16v6",key:"c8a4gj"}],["path",{d:"M14 20h-4",key:"m8m19d"}],["path",{d:"M18 2h4v4",key:"1341mj"}],["path",{d:"m2 2 7.17 7.17",key:"13q8l2"}],["path",{d:"M2 5.355V2h3.357",key:"18136r"}],["path",{d:"m22 2-7.17 7.17",key:"1epvy4"}],["path",{d:"M8 5 5 8",key:"mgbjhz"}],["circle",{cx:"12",cy:"12",r:"4",key:"4exip2"}]]),wM=i("trash-2",[["path",{d:"M3 6h18",key:"d0wm0j"}],["path",{d:"M19 6v14c0 1-1 2-2 2H7c-1 0-2-1-2-2V6",key:"4alrt4"}],["path",{d:"M8 6V4c0-1 1-2 2-2h4c1 0 2 1 2 2v2",key:"v07s0e"}],["line",{x1:"10",x2:"10",y1:"11",y2:"17",key:"1uufr5"}],["line",{x1:"14",x2:"14",y1:"11",y2:"17",key:"xtxkd"}]]),wN=i("trash",[["path",{d:"M3 6h18",key:"d0wm0j"}],["path",{d:"M19 6v14c0 1-1 2-2 2H7c-1 0-2-1-2-2V6",key:"4alrt4"}],["path",{d:"M8 6V4c0-1 1-2 2-2h4c1 0 2 1 2 2v2",key:"v07s0e"}]]),wO=i("tree-deciduous",[["path",{d:"M8 19a4 4 0 0 1-2.24-7.32A3.5 3.5 0 0 1 9 6.03V6a3 3 0 1 1 6 0v.04a3.5 3.5 0 0 1 3.24 5.65A4 4 0 0 1 16 19Z",key:"oadzkq"}],["path",{d:"M12 19v3",key:"npa21l"}]]),wP=i("tree-palm",[["path",{d:"M13 8c0-2.76-2.46-5-5.5-5S2 5.24 2 8h2l1-1 1 1h4",key:"foxbe7"}],["path",{d:"M13 7.14A5.82 5.82 0 0 1 16.5 6c3.04 0 5.5 2.24 5.5 5h-3l-1-1-1 1h-3",key:"18arnh"}],["path",{d:"M5.89 9.71c-2.15 2.15-2.3 5.47-.35 7.43l4.24-4.25.7-.7.71-.71 2.12-2.12c-1.95-1.96-5.27-1.8-7.42.35",key:"ywahnh"}],["path",{d:"M11 15.5c.5 2.5-.17 4.5-1 6.5h4c2-5.5-.5-12-1-14",key:"ft0feo"}]]),wQ=i("tree-pine",[["path",{d:"m17 14 3 3.3a1 1 0 0 1-.7 1.7H4.7a1 1 0 0 1-.7-1.7L7 14h-.3a1 1 0 0 1-.7-1.7L9 9h-.2A1 1 0 0 1 8 7.3L12 3l4 4.3a1 1 0 0 1-.8 1.7H15l3 3.3a1 1 0 0 1-.7 1.7H17Z",key:"cpyugq"}],["path",{d:"M12 22v-3",key:"kmzjlo"}]]),wR=i("trees",[["path",{d:"M10 10v.2A3 3 0 0 1 8.9 16H5a3 3 0 0 1-1-5.8V10a3 3 0 0 1 6 0Z",key:"1l6gj6"}],["path",{d:"M7 16v6",key:"1a82de"}],["path",{d:"M13 19v3",key:"13sx9i"}],["path",{d:"M12 19h8.3a1 1 0 0 0 .7-1.7L18 14h.3a1 1 0 0 0 .7-1.7L16 9h.2a1 1 0 0 0 .8-1.7L13 3l-1.4 1.5",key:"1sj9kv"}]]),wS=i("trending-down",[["path",{d:"M16 17h6v-6",key:"t6n2it"}],["path",{d:"m22 17-8.5-8.5-5 5L2 7",key:"x473p"}]]),wT=i("trello",[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",ry:"2",key:"1m3agn"}],["rect",{width:"3",height:"9",x:"7",y:"7",key:"14n3xi"}],["rect",{width:"3",height:"5",x:"14",y:"7",key:"s4azjd"}]]),wU=i("trending-up-down",[["path",{d:"M14.828 14.828 21 21",key:"ar5fw7"}],["path",{d:"M21 16v5h-5",key:"1ck2sf"}],["path",{d:"m21 3-9 9-4-4-6 6",key:"1h02xo"}],["path",{d:"M21 8V3h-5",key:"1qoq8a"}]]),wV=i("trending-up",[["path",{d:"M16 7h6v6",key:"box55l"}],["path",{d:"m22 7-8.5 8.5-5-5L2 17",key:"1t1m79"}]]),wW=i("triangle-alert",[["path",{d:"m21.73 18-8-14a2 2 0 0 0-3.48 0l-8 14A2 2 0 0 0 4 21h16a2 2 0 0 0 1.73-3",key:"wmoenq"}],["path",{d:"M12 9v4",key:"juzpu7"}],["path",{d:"M12 17h.01",key:"p32p05"}]]),wX=i("triangle-dashed",[["path",{d:"M10.17 4.193a2 2 0 0 1 3.666.013",key:"pltmmw"}],["path",{d:"M14 21h2",key:"v4qezv"}],["path",{d:"m15.874 7.743 1 1.732",key:"10m0iw"}],["path",{d:"m18.849 12.952 1 1.732",key:"zadnam"}],["path",{d:"M21.824 18.18a2 2 0 0 1-1.835 2.824",key:"fvwuk4"}],["path",{d:"M4.024 21a2 2 0 0 1-1.839-2.839",key:"1e1kah"}],["path",{d:"m5.136 12.952-1 1.732",key:"1u4ldi"}],["path",{d:"M8 21h2",key:"i9zjee"}],["path",{d:"m8.102 7.743-1 1.732",key:"1zzo4u"}]]),wY=i("triangle-right",[["path",{d:"M22 18a2 2 0 0 1-2 2H3c-1.1 0-1.3-.6-.4-1.3L20.4 4.3c.9-.7 1.6-.4 1.6.7Z",key:"183wce"}]]),wZ=i("triangle",[["path",{d:"M13.73 4a2 2 0 0 0-3.46 0l-8 14A2 2 0 0 0 4 21h16a2 2 0 0 0 1.73-3Z",key:"14u9p9"}]]),w$=i("trophy",[["path",{d:"M10 14.66v1.626a2 2 0 0 1-.976 1.696A5 5 0 0 0 7 21.978",key:"1n3hpd"}],["path",{d:"M14 14.66v1.626a2 2 0 0 0 .976 1.696A5 5 0 0 1 17 21.978",key:"rfe1zi"}],["path",{d:"M18 9h1.5a1 1 0 0 0 0-5H18",key:"7xy6bh"}],["path",{d:"M4 22h16",key:"57wxv0"}],["path",{d:"M6 9a6 6 0 0 0 12 0V3a1 1 0 0 0-1-1H7a1 1 0 0 0-1 1z",key:"1mhfuq"}],["path",{d:"M6 9H4.5a1 1 0 0 1 0-5H6",key:"tex48p"}]]),w_=i("truck-electric",[["path",{d:"M14 19V7a2 2 0 0 0-2-2H9",key:"15peso"}],["path",{d:"M15 19H9",key:"18q6dt"}],["path",{d:"M19 19h2a1 1 0 0 0 1-1v-3.65a1 1 0 0 0-.22-.62L18.3 9.38a1 1 0 0 0-.78-.38H14",key:"1dkp3j"}],["path",{d:"M2 13v5a1 1 0 0 0 1 1h2",key:"pkmmzz"}],["path",{d:"M4 3 2.15 5.15a.495.495 0 0 0 .35.86h2.15a.47.47 0 0 1 .35.86L3 9.02",key:"1n26pd"}],["circle",{cx:"17",cy:"19",r:"2",key:"1nxcgd"}],["circle",{cx:"7",cy:"19",r:"2",key:"gzo7y7"}]]),w0=i("truck",[["path",{d:"M14 18V6a2 2 0 0 0-2-2H4a2 2 0 0 0-2 2v11a1 1 0 0 0 1 1h2",key:"wrbu53"}],["path",{d:"M15 18H9",key:"1lyqi6"}],["path",{d:"M19 18h2a1 1 0 0 0 1-1v-3.65a1 1 0 0 0-.22-.624l-3.48-4.35A1 1 0 0 0 17.52 8H14",key:"lysw3i"}],["circle",{cx:"17",cy:"18",r:"2",key:"332jqn"}],["circle",{cx:"7",cy:"18",r:"2",key:"19iecd"}]]),w1=i("turtle",[["path",{d:"m12 10 2 4v3a1 1 0 0 0 1 1h2a1 1 0 0 0 1-1v-3a8 8 0 1 0-16 0v3a1 1 0 0 0 1 1h2a1 1 0 0 0 1-1v-3l2-4h4Z",key:"1lbbv7"}],["path",{d:"M4.82 7.9 8 10",key:"m9wose"}],["path",{d:"M15.18 7.9 12 10",key:"p8dp2u"}],["path",{d:"M16.93 10H20a2 2 0 0 1 0 4H2",key:"12nsm7"}]]),w2=i("tv-minimal",[["path",{d:"M7 21h10",key:"1b0cd5"}],["rect",{width:"20",height:"14",x:"2",y:"3",rx:"2",key:"48i651"}]]),w3=i("tv-minimal-play",[["path",{d:"M10 7.75a.75.75 0 0 1 1.142-.638l3.664 2.249a.75.75 0 0 1 0 1.278l-3.664 2.25a.75.75 0 0 1-1.142-.64z",key:"1pctta"}],["path",{d:"M7 21h10",key:"1b0cd5"}],["rect",{width:"20",height:"14",x:"2",y:"3",rx:"2",key:"48i651"}]]),w4=i("tv",[["path",{d:"m17 2-5 5-5-5",key:"16satq"}],["rect",{width:"20",height:"15",x:"2",y:"7",rx:"2",key:"1e6viu"}]]),w5=i("twitch",[["path",{d:"M21 2H3v16h5v4l4-4h5l4-4V2zm-10 9V7m5 4V7",key:"c0yzno"}]]),w6=i("twitter",[["path",{d:"M22 4s-.7 2.1-2 3.4c1.6 10-9.4 17.3-18 11.6 2.2.1 4.4-.6 6-2C3 15.5.5 9.6 3 5c2.2 2.6 5.6 4.1 9 4-.9-4.2 4-6.6 7-3.8 1.1 0 3-1.2 3-1.2z",key:"pff0z6"}]]),w7=i("type",[["path",{d:"M12 4v16",key:"1654pz"}],["path",{d:"M4 7V5a1 1 0 0 1 1-1h14a1 1 0 0 1 1 1v2",key:"e0r10z"}],["path",{d:"M9 20h6",key:"s66wpe"}]]),w8=i("type-outline",[["path",{d:"M14 16.5a.5.5 0 0 0 .5.5h.5a2 2 0 0 1 0 4H9a2 2 0 0 1 0-4h.5a.5.5 0 0 0 .5-.5v-9a.5.5 0 0 0-.5-.5h-3a.5.5 0 0 0-.5.5V8a2 2 0 0 1-4 0V5a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2v3a2 2 0 0 1-4 0v-.5a.5.5 0 0 0-.5-.5h-3a.5.5 0 0 0-.5.5Z",key:"1reda3"}]]),w9=i("umbrella-off",[["path",{d:"M12 2v1",key:"11qlp1"}],["path",{d:"M15.5 21a1.85 1.85 0 0 1-3.5-1v-8H2a10 10 0 0 1 3.428-6.575",key:"eki10q"}],["path",{d:"M17.5 12H22A10 10 0 0 0 9.004 3.455",key:"n2ayka"}],["path",{d:"m2 2 20 20",key:"1ooewy"}]]),xa=i("umbrella",[["path",{d:"M22 12a10.06 10.06 1 0 0-20 0Z",key:"1teyop"}],["path",{d:"M12 12v8a2 2 0 0 0 4 0",key:"ulpmoc"}],["path",{d:"M12 2v1",key:"11qlp1"}]]),xb=i("underline",[["path",{d:"M6 4v6a6 6 0 0 0 12 0V4",key:"9kb039"}],["line",{x1:"4",x2:"20",y1:"20",y2:"20",key:"nun2al"}]]),xc=i("undo-2",[["path",{d:"M9 14 4 9l5-5",key:"102s5s"}],["path",{d:"M4 9h10.5a5.5 5.5 0 0 1 5.5 5.5a5.5 5.5 0 0 1-5.5 5.5H11",key:"f3b9sd"}]]),xd=i("undo-dot",[["path",{d:"M21 17a9 9 0 0 0-15-6.7L3 13",key:"8mp6z9"}],["path",{d:"M3 7v6h6",key:"1v2h90"}],["circle",{cx:"12",cy:"17",r:"1",key:"1ixnty"}]]),xe=i("undo",[["path",{d:"M3 7v6h6",key:"1v2h90"}],["path",{d:"M21 17a9 9 0 0 0-9-9 9 9 0 0 0-6 2.3L3 13",key:"1r6uu6"}]]),xf=i("unfold-horizontal",[["path",{d:"M16 12h6",key:"15xry1"}],["path",{d:"M8 12H2",key:"1jqql6"}],["path",{d:"M12 2v2",key:"tus03m"}],["path",{d:"M12 8v2",key:"1woqiv"}],["path",{d:"M12 14v2",key:"8jcxud"}],["path",{d:"M12 20v2",key:"1lh1kg"}],["path",{d:"m19 15 3-3-3-3",key:"wjy7rq"}],["path",{d:"m5 9-3 3 3 3",key:"j64kie"}]]),xg=i("unfold-vertical",[["path",{d:"M12 22v-6",key:"6o8u61"}],["path",{d:"M12 8V2",key:"1wkif3"}],["path",{d:"M4 12H2",key:"rhcxmi"}],["path",{d:"M10 12H8",key:"s88cx1"}],["path",{d:"M16 12h-2",key:"10asgb"}],["path",{d:"M22 12h-2",key:"14jgyd"}],["path",{d:"m15 19-3 3-3-3",key:"11eu04"}],["path",{d:"m15 5-3-3-3 3",key:"itvq4r"}]]),xh=i("ungroup",[["rect",{width:"8",height:"6",x:"5",y:"4",rx:"1",key:"nzclkv"}],["rect",{width:"8",height:"6",x:"11",y:"14",rx:"1",key:"4tytwb"}]]),xi=i("university",[["path",{d:"M14 21v-3a2 2 0 0 0-4 0v3",key:"1rgiei"}],["path",{d:"M18 12h.01",key:"yjnet6"}],["path",{d:"M18 16h.01",key:"plv8zi"}],["path",{d:"M22 7a1 1 0 0 0-1-1h-2a2 2 0 0 1-1.143-.359L13.143 2.36a2 2 0 0 0-2.286-.001L6.143 5.64A2 2 0 0 1 5 6H3a1 1 0 0 0-1 1v12a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2z",key:"1ogmi3"}],["path",{d:"M6 12h.01",key:"c2rlol"}],["path",{d:"M6 16h.01",key:"1pmjb7"}],["circle",{cx:"12",cy:"10",r:"2",key:"1yojzk"}]]),xj=i("unlink-2",[["path",{d:"M15 7h2a5 5 0 0 1 0 10h-2m-6 0H7A5 5 0 0 1 7 7h2",key:"1re2ne"}]]),xk=i("unlink",[["path",{d:"m18.84 12.25 1.72-1.71h-.02a5.004 5.004 0 0 0-.12-7.07 5.006 5.006 0 0 0-6.95 0l-1.72 1.71",key:"yqzxt4"}],["path",{d:"m5.17 11.75-1.71 1.71a5.004 5.004 0 0 0 .12 7.07 5.006 5.006 0 0 0 6.95 0l1.71-1.71",key:"4qinb0"}],["line",{x1:"8",x2:"8",y1:"2",y2:"5",key:"1041cp"}],["line",{x1:"2",x2:"5",y1:"8",y2:"8",key:"14m1p5"}],["line",{x1:"16",x2:"16",y1:"19",y2:"22",key:"rzdirn"}],["line",{x1:"19",x2:"22",y1:"16",y2:"16",key:"ox905f"}]]),xl=i("unplug",[["path",{d:"m19 5 3-3",key:"yk6iyv"}],["path",{d:"m2 22 3-3",key:"19mgm9"}],["path",{d:"M6.3 20.3a2.4 2.4 0 0 0 3.4 0L12 18l-6-6-2.3 2.3a2.4 2.4 0 0 0 0 3.4Z",key:"goz73y"}],["path",{d:"M7.5 13.5 10 11",key:"7xgeeb"}],["path",{d:"M10.5 16.5 13 14",key:"10btkg"}],["path",{d:"m12 6 6 6 2.3-2.3a2.4 2.4 0 0 0 0-3.4l-2.6-2.6a2.4 2.4 0 0 0-3.4 0Z",key:"1snsnr"}]]),xm=i("upload",[["path",{d:"M12 3v12",key:"1x0j5s"}],["path",{d:"m17 8-5-5-5 5",key:"7q97r8"}],["path",{d:"M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4",key:"ih7n3h"}]]),xn=i("usb",[["circle",{cx:"10",cy:"7",r:"1",key:"dypaad"}],["circle",{cx:"4",cy:"20",r:"1",key:"22iqad"}],["path",{d:"M4.7 19.3 19 5",key:"1enqfc"}],["path",{d:"m21 3-3 1 2 2Z",key:"d3ov82"}],["path",{d:"M9.26 7.68 5 12l2 5",key:"1esawj"}],["path",{d:"m10 14 5 2 3.5-3.5",key:"v8oal5"}],["path",{d:"m18 12 1-1 1 1-1 1Z",key:"1bh22v"}]]),xo=i("user-check",[["path",{d:"m16 11 2 2 4-4",key:"9rsbq5"}],["path",{d:"M16 21v-2a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v2",key:"1yyitq"}],["circle",{cx:"9",cy:"7",r:"4",key:"nufk8"}]]),xp=i("user-cog",[["path",{d:"M10 15H6a4 4 0 0 0-4 4v2",key:"1nfge6"}],["path",{d:"m14.305 16.53.923-.382",key:"1itpsq"}],["path",{d:"m15.228 13.852-.923-.383",key:"eplpkm"}],["path",{d:"m16.852 12.228-.383-.923",key:"13v3q0"}],["path",{d:"m16.852 17.772-.383.924",key:"1i8mnm"}],["path",{d:"m19.148 12.228.383-.923",key:"1q8j1v"}],["path",{d:"m19.53 18.696-.382-.924",key:"vk1qj3"}],["path",{d:"m20.772 13.852.924-.383",key:"n880s0"}],["path",{d:"m20.772 16.148.924.383",key:"1g6xey"}],["circle",{cx:"18",cy:"15",r:"3",key:"gjjjvw"}],["circle",{cx:"9",cy:"7",r:"4",key:"nufk8"}]]),xq=i("user-lock",[["circle",{cx:"10",cy:"7",r:"4",key:"e45bow"}],["path",{d:"M10.3 15H7a4 4 0 0 0-4 4v2",key:"3bnktk"}],["path",{d:"M15 15.5V14a2 2 0 0 1 4 0v1.5",key:"12ym5i"}],["rect",{width:"8",height:"5",x:"13",y:"16",rx:".899",key:"4p176n"}]]),xr=i("user-minus",[["path",{d:"M16 21v-2a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v2",key:"1yyitq"}],["circle",{cx:"9",cy:"7",r:"4",key:"nufk8"}],["line",{x1:"22",x2:"16",y1:"11",y2:"11",key:"1shjgl"}]]),xs=i("user-pen",[["path",{d:"M11.5 15H7a4 4 0 0 0-4 4v2",key:"15lzij"}],["path",{d:"M21.378 16.626a1 1 0 0 0-3.004-3.004l-4.01 4.012a2 2 0 0 0-.506.854l-.837 2.87a.5.5 0 0 0 .62.62l2.87-.837a2 2 0 0 0 .854-.506z",key:"1817ys"}],["circle",{cx:"10",cy:"7",r:"4",key:"e45bow"}]]),xt=i("user-plus",[["path",{d:"M16 21v-2a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v2",key:"1yyitq"}],["circle",{cx:"9",cy:"7",r:"4",key:"nufk8"}],["line",{x1:"19",x2:"19",y1:"8",y2:"14",key:"1bvyxn"}],["line",{x1:"22",x2:"16",y1:"11",y2:"11",key:"1shjgl"}]]),xu=i("user-round-check",[["path",{d:"M2 21a8 8 0 0 1 13.292-6",key:"bjp14o"}],["circle",{cx:"10",cy:"8",r:"5",key:"o932ke"}],["path",{d:"m16 19 2 2 4-4",key:"1b14m6"}]]),xv=i("user-round-cog",[["path",{d:"m14.305 19.53.923-.382",key:"3m78fa"}],["path",{d:"m15.228 16.852-.923-.383",key:"npixar"}],["path",{d:"m16.852 15.228-.383-.923",key:"5xggr7"}],["path",{d:"m16.852 20.772-.383.924",key:"dpfhf9"}],["path",{d:"m19.148 15.228.383-.923",key:"1reyyz"}],["path",{d:"m19.53 21.696-.382-.924",key:"1goivc"}],["path",{d:"M2 21a8 8 0 0 1 10.434-7.62",key:"1yezr2"}],["path",{d:"m20.772 16.852.924-.383",key:"htqkph"}],["path",{d:"m20.772 19.148.924.383",key:"9w9pjp"}],["circle",{cx:"10",cy:"8",r:"5",key:"o932ke"}],["circle",{cx:"18",cy:"18",r:"3",key:"1xkwt0"}]]),xw=i("user-round-minus",[["path",{d:"M2 21a8 8 0 0 1 13.292-6",key:"bjp14o"}],["circle",{cx:"10",cy:"8",r:"5",key:"o932ke"}],["path",{d:"M22 19h-6",key:"vcuq98"}]]),xx=i("user-round-pen",[["path",{d:"M2 21a8 8 0 0 1 10.821-7.487",key:"1c8h7z"}],["path",{d:"M21.378 16.626a1 1 0 0 0-3.004-3.004l-4.01 4.012a2 2 0 0 0-.506.854l-.837 2.87a.5.5 0 0 0 .62.62l2.87-.837a2 2 0 0 0 .854-.506z",key:"1817ys"}],["circle",{cx:"10",cy:"8",r:"5",key:"o932ke"}]]),xy=i("user-round-plus",[["path",{d:"M2 21a8 8 0 0 1 13.292-6",key:"bjp14o"}],["circle",{cx:"10",cy:"8",r:"5",key:"o932ke"}],["path",{d:"M19 16v6",key:"tddt3s"}],["path",{d:"M22 19h-6",key:"vcuq98"}]]),xz=i("user-round-search",[["circle",{cx:"10",cy:"8",r:"5",key:"o932ke"}],["path",{d:"M2 21a8 8 0 0 1 10.434-7.62",key:"1yezr2"}],["circle",{cx:"18",cy:"18",r:"3",key:"1xkwt0"}],["path",{d:"m22 22-1.9-1.9",key:"1e5ubv"}]]),xA=i("user-round-x",[["path",{d:"M2 21a8 8 0 0 1 11.873-7",key:"74fkxq"}],["circle",{cx:"10",cy:"8",r:"5",key:"o932ke"}],["path",{d:"m17 17 5 5",key:"p7ous7"}],["path",{d:"m22 17-5 5",key:"gqnmv0"}]]),xB=i("user-round",[["circle",{cx:"12",cy:"8",r:"5",key:"1hypcn"}],["path",{d:"M20 21a8 8 0 0 0-16 0",key:"rfgkzh"}]]),xC=i("user-search",[["circle",{cx:"10",cy:"7",r:"4",key:"e45bow"}],["path",{d:"M10.3 15H7a4 4 0 0 0-4 4v2",key:"3bnktk"}],["circle",{cx:"17",cy:"17",r:"3",key:"18b49y"}],["path",{d:"m21 21-1.9-1.9",key:"1g2n9r"}]]),xD=i("user-x",[["path",{d:"M16 21v-2a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v2",key:"1yyitq"}],["circle",{cx:"9",cy:"7",r:"4",key:"nufk8"}],["line",{x1:"17",x2:"22",y1:"8",y2:"13",key:"3nzzx3"}],["line",{x1:"22",x2:"17",y1:"8",y2:"13",key:"1swrse"}]]),xE=i("user",[["path",{d:"M19 21v-2a4 4 0 0 0-4-4H9a4 4 0 0 0-4 4v2",key:"975kel"}],["circle",{cx:"12",cy:"7",r:"4",key:"17ys0d"}]]),xF=i("users-round",[["path",{d:"M18 21a8 8 0 0 0-16 0",key:"3ypg7q"}],["circle",{cx:"10",cy:"8",r:"5",key:"o932ke"}],["path",{d:"M22 20c0-3.37-2-6.5-4-8a5 5 0 0 0-.45-8.3",key:"10s06x"}]]),xG=i("users",[["path",{d:"M16 21v-2a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v2",key:"1yyitq"}],["path",{d:"M16 3.128a4 4 0 0 1 0 7.744",key:"16gr8j"}],["path",{d:"M22 21v-2a4 4 0 0 0-3-3.87",key:"kshegd"}],["circle",{cx:"9",cy:"7",r:"4",key:"nufk8"}]]),xH=i("utensils-crossed",[["path",{d:"m16 2-2.3 2.3a3 3 0 0 0 0 4.2l1.8 1.8a3 3 0 0 0 4.2 0L22 8",key:"n7qcjb"}],["path",{d:"M15 15 3.3 3.3a4.2 4.2 0 0 0 0 6l7.3 7.3c.7.7 2 .7 2.8 0L15 15Zm0 0 7 7",key:"d0u48b"}],["path",{d:"m2.1 21.8 6.4-6.3",key:"yn04lh"}],["path",{d:"m19 5-7 7",key:"194lzd"}]]),xI=i("utensils",[["path",{d:"M3 2v7c0 1.1.9 2 2 2h4a2 2 0 0 0 2-2V2",key:"cjf0a3"}],["path",{d:"M7 2v20",key:"1473qp"}],["path",{d:"M21 15V2a5 5 0 0 0-5 5v6c0 1.1.9 2 2 2h3Zm0 0v7",key:"j28e5"}]]),xJ=i("variable",[["path",{d:"M8 21s-4-3-4-9 4-9 4-9",key:"uto9ud"}],["path",{d:"M16 3s4 3 4 9-4 9-4 9",key:"4w2vsq"}],["line",{x1:"15",x2:"9",y1:"9",y2:"15",key:"f7djnv"}],["line",{x1:"9",x2:"15",y1:"9",y2:"15",key:"1shsy8"}]]),xK=i("utility-pole",[["path",{d:"M12 2v20",key:"t6zp3m"}],["path",{d:"M2 5h20",key:"1fs1ex"}],["path",{d:"M3 3v2",key:"9imdir"}],["path",{d:"M7 3v2",key:"n0os7"}],["path",{d:"M17 3v2",key:"1l2re6"}],["path",{d:"M21 3v2",key:"1duuac"}],["path",{d:"m19 5-7 7-7-7",key:"133zxf"}]]),xL=i("vault",[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",key:"afitv7"}],["circle",{cx:"7.5",cy:"7.5",r:".5",fill:"currentColor",key:"kqv944"}],["path",{d:"m7.9 7.9 2.7 2.7",key:"hpeyl3"}],["circle",{cx:"16.5",cy:"7.5",r:".5",fill:"currentColor",key:"w0ekpg"}],["path",{d:"m13.4 10.6 2.7-2.7",key:"264c1n"}],["circle",{cx:"7.5",cy:"16.5",r:".5",fill:"currentColor",key:"nkw3mc"}],["path",{d:"m7.9 16.1 2.7-2.7",key:"p81g5e"}],["circle",{cx:"16.5",cy:"16.5",r:".5",fill:"currentColor",key:"fubopw"}],["path",{d:"m13.4 13.4 2.7 2.7",key:"abhel3"}],["circle",{cx:"12",cy:"12",r:"2",key:"1c9p78"}]]),xM=i("vector-square",[["path",{d:"M19.5 7a24 24 0 0 1 0 10",key:"8n60xe"}],["path",{d:"M4.5 7a24 24 0 0 0 0 10",key:"2lmadr"}],["path",{d:"M7 19.5a24 24 0 0 0 10 0",key:"1q94o2"}],["path",{d:"M7 4.5a24 24 0 0 1 10 0",key:"2z8ypa"}],["rect",{x:"17",y:"17",width:"5",height:"5",rx:"1",key:"1ac74s"}],["rect",{x:"17",y:"2",width:"5",height:"5",rx:"1",key:"1e7h5j"}],["rect",{x:"2",y:"17",width:"5",height:"5",rx:"1",key:"1t4eah"}],["rect",{x:"2",y:"2",width:"5",height:"5",rx:"1",key:"940dhs"}]]),xN=i("vegan",[["path",{d:"M16 8q6 0 6-6-6 0-6 6",key:"qsyyc4"}],["path",{d:"M17.41 3.59a10 10 0 1 0 3 3",key:"41m9h7"}],["path",{d:"M2 2a26.6 26.6 0 0 1 10 20c.9-6.82 1.5-9.5 4-14",key:"qiv7li"}]]),xO=i("venetian-mask",[["path",{d:"M18 11c-1.5 0-2.5.5-3 2",key:"1fod00"}],["path",{d:"M4 6a2 2 0 0 0-2 2v4a5 5 0 0 0 5 5 8 8 0 0 1 5 2 8 8 0 0 1 5-2 5 5 0 0 0 5-5V8a2 2 0 0 0-2-2h-3a8 8 0 0 0-5 2 8 8 0 0 0-5-2z",key:"d70hit"}],["path",{d:"M6 11c1.5 0 2.5.5 3 2",key:"136fht"}]]),xP=i("venus-and-mars",[["path",{d:"M10 20h4",key:"ni2waw"}],["path",{d:"M12 16v6",key:"c8a4gj"}],["path",{d:"M17 2h4v4",key:"vhe59"}],["path",{d:"m21 2-5.46 5.46",key:"19kypf"}],["circle",{cx:"12",cy:"11",r:"5",key:"16gxyc"}]]),xQ=i("venus",[["path",{d:"M12 15v7",key:"t2xh3l"}],["path",{d:"M9 19h6",key:"456am0"}],["circle",{cx:"12",cy:"9",r:"6",key:"1nw4tq"}]]),xR=i("vibrate-off",[["path",{d:"m2 8 2 2-2 2 2 2-2 2",key:"sv1b1"}],["path",{d:"m22 8-2 2 2 2-2 2 2 2",key:"101i4y"}],["path",{d:"M8 8v10c0 .55.45 1 1 1h6c.55 0 1-.45 1-1v-2",key:"1hbad5"}],["path",{d:"M16 10.34V6c0-.55-.45-1-1-1h-4.34",key:"1x5tf0"}],["line",{x1:"2",x2:"22",y1:"2",y2:"22",key:"a6p6uj"}]]),xS=i("vibrate",[["path",{d:"m2 8 2 2-2 2 2 2-2 2",key:"sv1b1"}],["path",{d:"m22 8-2 2 2 2-2 2 2 2",key:"101i4y"}],["rect",{width:"8",height:"14",x:"8",y:"5",rx:"1",key:"1oyrl4"}]]),xT=i("video-off",[["path",{d:"M10.66 6H14a2 2 0 0 1 2 2v2.5l5.248-3.062A.5.5 0 0 1 22 7.87v8.196",key:"w8jjjt"}],["path",{d:"M16 16a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h2",key:"1xawa7"}],["path",{d:"m2 2 20 20",key:"1ooewy"}]]),xU=i("video",[["path",{d:"m16 13 5.223 3.482a.5.5 0 0 0 .777-.416V7.87a.5.5 0 0 0-.752-.432L16 10.5",key:"ftymec"}],["rect",{x:"2",y:"6",width:"14",height:"12",rx:"2",key:"158x01"}]]),xV=i("videotape",[["rect",{width:"20",height:"16",x:"2",y:"4",rx:"2",key:"18n3k1"}],["path",{d:"M2 8h20",key:"d11cs7"}],["circle",{cx:"8",cy:"14",r:"2",key:"1k2qr5"}],["path",{d:"M8 12h8",key:"1wcyev"}],["circle",{cx:"16",cy:"14",r:"2",key:"14k7lr"}]]),xW=i("view",[["path",{d:"M21 17v2a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-2",key:"mrq65r"}],["path",{d:"M21 7V5a2 2 0 0 0-2-2H5a2 2 0 0 0-2 2v2",key:"be3xqs"}],["circle",{cx:"12",cy:"12",r:"1",key:"41hilf"}],["path",{d:"M18.944 12.33a1 1 0 0 0 0-.66 7.5 7.5 0 0 0-13.888 0 1 1 0 0 0 0 .66 7.5 7.5 0 0 0 13.888 0",key:"11ak4c"}]]),xX=i("voicemail",[["circle",{cx:"6",cy:"12",r:"4",key:"1ehtga"}],["circle",{cx:"18",cy:"12",r:"4",key:"4vafl8"}],["line",{x1:"6",x2:"18",y1:"16",y2:"16",key:"pmt8us"}]]),xY=i("volleyball",[["path",{d:"M11.1 7.1a16.55 16.55 0 0 1 10.9 4",key:"2880wi"}],["path",{d:"M12 12a12.6 12.6 0 0 1-8.7 5",key:"113sja"}],["path",{d:"M16.8 13.6a16.55 16.55 0 0 1-9 7.5",key:"1qmsgl"}],["path",{d:"M20.7 17a12.8 12.8 0 0 0-8.7-5 13.3 13.3 0 0 1 0-10",key:"1bmeqp"}],["path",{d:"M6.3 3.8a16.55 16.55 0 0 0 1.9 11.5",key:"iekzv9"}],["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}]]),xZ=i("volume-1",[["path",{d:"M11 4.702a.705.705 0 0 0-1.203-.498L6.413 7.587A1.4 1.4 0 0 1 5.416 8H3a1 1 0 0 0-1 1v6a1 1 0 0 0 1 1h2.416a1.4 1.4 0 0 1 .997.413l3.383 3.384A.705.705 0 0 0 11 19.298z",key:"uqj9uw"}],["path",{d:"M16 9a5 5 0 0 1 0 6",key:"1q6k2b"}]]),x$=i("volume-2",[["path",{d:"M11 4.702a.705.705 0 0 0-1.203-.498L6.413 7.587A1.4 1.4 0 0 1 5.416 8H3a1 1 0 0 0-1 1v6a1 1 0 0 0 1 1h2.416a1.4 1.4 0 0 1 .997.413l3.383 3.384A.705.705 0 0 0 11 19.298z",key:"uqj9uw"}],["path",{d:"M16 9a5 5 0 0 1 0 6",key:"1q6k2b"}],["path",{d:"M19.364 18.364a9 9 0 0 0 0-12.728",key:"ijwkga"}]]),x_=i("volume-off",[["path",{d:"M16 9a5 5 0 0 1 .95 2.293",key:"1fgyg8"}],["path",{d:"M19.364 5.636a9 9 0 0 1 1.889 9.96",key:"l3zxae"}],["path",{d:"m2 2 20 20",key:"1ooewy"}],["path",{d:"m7 7-.587.587A1.4 1.4 0 0 1 5.416 8H3a1 1 0 0 0-1 1v6a1 1 0 0 0 1 1h2.416a1.4 1.4 0 0 1 .997.413l3.383 3.384A.705.705 0 0 0 11 19.298V11",key:"1gbwow"}],["path",{d:"M9.828 4.172A.686.686 0 0 1 11 4.657v.686",key:"s2je0y"}]]),x0=i("volume-x",[["path",{d:"M11 4.702a.705.705 0 0 0-1.203-.498L6.413 7.587A1.4 1.4 0 0 1 5.416 8H3a1 1 0 0 0-1 1v6a1 1 0 0 0 1 1h2.416a1.4 1.4 0 0 1 .997.413l3.383 3.384A.705.705 0 0 0 11 19.298z",key:"uqj9uw"}],["line",{x1:"22",x2:"16",y1:"9",y2:"15",key:"1ewh16"}],["line",{x1:"16",x2:"22",y1:"9",y2:"15",key:"5ykzw1"}]]),x1=i("volume",[["path",{d:"M11 4.702a.705.705 0 0 0-1.203-.498L6.413 7.587A1.4 1.4 0 0 1 5.416 8H3a1 1 0 0 0-1 1v6a1 1 0 0 0 1 1h2.416a1.4 1.4 0 0 1 .997.413l3.383 3.384A.705.705 0 0 0 11 19.298z",key:"uqj9uw"}]]),x2=i("vote",[["path",{d:"m9 12 2 2 4-4",key:"dzmm74"}],["path",{d:"M5 7c0-1.1.9-2 2-2h10a2 2 0 0 1 2 2v12H5V7Z",key:"1ezoue"}],["path",{d:"M22 19H2",key:"nuriw5"}]]),x3=i("wallet-cards",[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",key:"afitv7"}],["path",{d:"M3 9a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2",key:"4125el"}],["path",{d:"M3 11h3c.8 0 1.6.3 2.1.9l1.1.9c1.6 1.6 4.1 1.6 5.7 0l1.1-.9c.5-.5 1.3-.9 2.1-.9H21",key:"1dpki6"}]]),x4=i("wallet-minimal",[["path",{d:"M17 14h.01",key:"7oqj8z"}],["path",{d:"M7 7h12a2 2 0 0 1 2 2v10a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h14",key:"u1rqew"}]]),x5=i("wallet",[["path",{d:"M19 7V4a1 1 0 0 0-1-1H5a2 2 0 0 0 0 4h15a1 1 0 0 1 1 1v4h-3a2 2 0 0 0 0 4h3a1 1 0 0 0 1-1v-2a1 1 0 0 0-1-1",key:"18etb6"}],["path",{d:"M3 5v14a2 2 0 0 0 2 2h15a1 1 0 0 0 1-1v-4",key:"xoc0q4"}]]),x6=i("wallpaper",[["circle",{cx:"8",cy:"9",r:"2",key:"gjzl9d"}],["path",{d:"m9 17 6.1-6.1a2 2 0 0 1 2.81.01L22 15V5a2 2 0 0 0-2-2H4a2 2 0 0 0-2 2v10a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2",key:"69xh40"}],["path",{d:"M8 21h8",key:"1ev6f3"}],["path",{d:"M12 17v4",key:"1riwvh"}]]),x7=i("wand-sparkles",[["path",{d:"m21.64 3.64-1.28-1.28a1.21 1.21 0 0 0-1.72 0L2.36 18.64a1.21 1.21 0 0 0 0 1.72l1.28 1.28a1.2 1.2 0 0 0 1.72 0L21.64 5.36a1.2 1.2 0 0 0 0-1.72",key:"ul74o6"}],["path",{d:"m14 7 3 3",key:"1r5n42"}],["path",{d:"M5 6v4",key:"ilb8ba"}],["path",{d:"M19 14v4",key:"blhpug"}],["path",{d:"M10 2v2",key:"7u0qdc"}],["path",{d:"M7 8H3",key:"zfb6yr"}],["path",{d:"M21 16h-4",key:"1cnmox"}],["path",{d:"M11 3H9",key:"1obp7u"}]]),x8=i("wand",[["path",{d:"M15 4V2",key:"z1p9b7"}],["path",{d:"M15 16v-2",key:"px0unx"}],["path",{d:"M8 9h2",key:"1g203m"}],["path",{d:"M20 9h2",key:"19tzq7"}],["path",{d:"M17.8 11.8 19 13",key:"yihg8r"}],["path",{d:"M15 9h.01",key:"x1ddxp"}],["path",{d:"M17.8 6.2 19 5",key:"fd4us0"}],["path",{d:"m3 21 9-9",key:"1jfql5"}],["path",{d:"M12.2 6.2 11 5",key:"i3da3b"}]]),x9=i("warehouse",[["path",{d:"M18 21V10a1 1 0 0 0-1-1H7a1 1 0 0 0-1 1v11",key:"pb2vm6"}],["path",{d:"M22 19a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2V8a2 2 0 0 1 1.132-1.803l7.95-3.974a2 2 0 0 1 1.837 0l7.948 3.974A2 2 0 0 1 22 8z",key:"doq5xv"}],["path",{d:"M6 13h12",key:"yf64js"}],["path",{d:"M6 17h12",key:"1jwigz"}]]),ya=i("washing-machine",[["path",{d:"M3 6h3",key:"155dbl"}],["path",{d:"M17 6h.01",key:"e2y6kg"}],["rect",{width:"18",height:"20",x:"3",y:"2",rx:"2",key:"od3kk9"}],["circle",{cx:"12",cy:"13",r:"5",key:"nlbqau"}],["path",{d:"M12 18a2.5 2.5 0 0 0 0-5 2.5 2.5 0 0 1 0-5",key:"17lach"}]]),yb=i("watch",[["path",{d:"M12 10v2.2l1.6 1",key:"n3r21l"}],["path",{d:"m16.13 7.66-.81-4.05a2 2 0 0 0-2-1.61h-2.68a2 2 0 0 0-2 1.61l-.78 4.05",key:"18k57s"}],["path",{d:"m7.88 16.36.8 4a2 2 0 0 0 2 1.61h2.72a2 2 0 0 0 2-1.61l.81-4.05",key:"16ny36"}],["circle",{cx:"12",cy:"12",r:"6",key:"1vlfrh"}]]),yc=i("waves-ladder",[["path",{d:"M19 5a2 2 0 0 0-2 2v11",key:"s41o68"}],["path",{d:"M2 18c.6.5 1.2 1 2.5 1 2.5 0 2.5-2 5-2 2.6 0 2.4 2 5 2 2.5 0 2.5-2 5-2 1.3 0 1.9.5 2.5 1",key:"rd2r6e"}],["path",{d:"M7 13h10",key:"1rwob1"}],["path",{d:"M7 9h10",key:"12czzb"}],["path",{d:"M9 5a2 2 0 0 0-2 2v11",key:"x0q4gh"}]]),yd=i("waves",[["path",{d:"M2 6c.6.5 1.2 1 2.5 1C7 7 7 5 9.5 5c2.6 0 2.4 2 5 2 2.5 0 2.5-2 5-2 1.3 0 1.9.5 2.5 1",key:"knzxuh"}],["path",{d:"M2 12c.6.5 1.2 1 2.5 1 2.5 0 2.5-2 5-2 2.6 0 2.4 2 5 2 2.5 0 2.5-2 5-2 1.3 0 1.9.5 2.5 1",key:"2jd2cc"}],["path",{d:"M2 18c.6.5 1.2 1 2.5 1 2.5 0 2.5-2 5-2 2.6 0 2.4 2 5 2 2.5 0 2.5-2 5-2 1.3 0 1.9.5 2.5 1",key:"rd2r6e"}]]),ye=i("waypoints",[["circle",{cx:"12",cy:"4.5",r:"2.5",key:"r5ysbb"}],["path",{d:"m10.2 6.3-3.9 3.9",key:"1nzqf6"}],["circle",{cx:"4.5",cy:"12",r:"2.5",key:"jydg6v"}],["path",{d:"M7 12h10",key:"b7w52i"}],["circle",{cx:"19.5",cy:"12",r:"2.5",key:"1piiel"}],["path",{d:"m13.8 17.7 3.9-3.9",key:"1wyg1y"}],["circle",{cx:"12",cy:"19.5",r:"2.5",key:"13o1pw"}]]),yf=i("webcam",[["circle",{cx:"12",cy:"10",r:"8",key:"1gshiw"}],["circle",{cx:"12",cy:"10",r:"3",key:"ilqhr7"}],["path",{d:"M7 22h10",key:"10w4w3"}],["path",{d:"M12 22v-4",key:"1utk9m"}]]),yg=i("webhook-off",[["path",{d:"M17 17h-5c-1.09-.02-1.94.92-2.5 1.9A3 3 0 1 1 2.57 15",key:"1tvl6x"}],["path",{d:"M9 3.4a4 4 0 0 1 6.52.66",key:"q04jfq"}],["path",{d:"m6 17 3.1-5.8a2.5 2.5 0 0 0 .057-2.05",key:"azowf0"}],["path",{d:"M20.3 20.3a4 4 0 0 1-2.3.7",key:"5joiws"}],["path",{d:"M18.6 13a4 4 0 0 1 3.357 3.414",key:"cangb8"}],["path",{d:"m12 6 .6 1",key:"tpjl1n"}],["path",{d:"m2 2 20 20",key:"1ooewy"}]]),yh=i("webhook",[["path",{d:"M18 16.98h-5.99c-1.1 0-1.95.94-2.48 1.9A4 4 0 0 1 2 17c.01-.7.2-1.4.57-2",key:"q3hayz"}],["path",{d:"m6 17 3.13-5.78c.53-.97.1-2.18-.5-3.1a4 4 0 1 1 6.89-4.06",key:"1go1hn"}],["path",{d:"m12 6 3.13 5.73C15.66 12.7 16.9 13 18 13a4 4 0 0 1 0 8",key:"qlwsc0"}]]),yi=i("weight",[["circle",{cx:"12",cy:"5",r:"3",key:"rqqgnr"}],["path",{d:"M6.5 8a2 2 0 0 0-1.905 1.46L2.1 18.5A2 2 0 0 0 4 21h16a2 2 0 0 0 1.925-2.54L19.4 9.5A2 2 0 0 0 17.48 8Z",key:"56o5sh"}]]),yj=i("wheat-off",[["path",{d:"m2 22 10-10",key:"28ilpk"}],["path",{d:"m16 8-1.17 1.17",key:"1qqm82"}],["path",{d:"M3.47 12.53 5 11l1.53 1.53a3.5 3.5 0 0 1 0 4.94L5 19l-1.53-1.53a3.5 3.5 0 0 1 0-4.94Z",key:"1rdhi6"}],["path",{d:"m8 8-.53.53a3.5 3.5 0 0 0 0 4.94L9 15l1.53-1.53c.55-.55.88-1.25.98-1.97",key:"4wz8re"}],["path",{d:"M10.91 5.26c.15-.26.34-.51.56-.73L13 3l1.53 1.53a3.5 3.5 0 0 1 .28 4.62",key:"rves66"}],["path",{d:"M20 2h2v2a4 4 0 0 1-4 4h-2V6a4 4 0 0 1 4-4Z",key:"19rau1"}],["path",{d:"M11.47 17.47 13 19l-1.53 1.53a3.5 3.5 0 0 1-4.94 0L5 19l1.53-1.53a3.5 3.5 0 0 1 4.94 0Z",key:"tc8ph9"}],["path",{d:"m16 16-.53.53a3.5 3.5 0 0 1-4.94 0L9 15l1.53-1.53a3.49 3.49 0 0 1 1.97-.98",key:"ak46r"}],["path",{d:"M18.74 13.09c.26-.15.51-.34.73-.56L21 11l-1.53-1.53a3.5 3.5 0 0 0-4.62-.28",key:"1tw520"}],["line",{x1:"2",x2:"22",y1:"2",y2:"22",key:"a6p6uj"}]]),yk=i("wheat",[["path",{d:"M2 22 16 8",key:"60hf96"}],["path",{d:"M3.47 12.53 5 11l1.53 1.53a3.5 3.5 0 0 1 0 4.94L5 19l-1.53-1.53a3.5 3.5 0 0 1 0-4.94Z",key:"1rdhi6"}],["path",{d:"M7.47 8.53 9 7l1.53 1.53a3.5 3.5 0 0 1 0 4.94L9 15l-1.53-1.53a3.5 3.5 0 0 1 0-4.94Z",key:"1sdzmb"}],["path",{d:"M11.47 4.53 13 3l1.53 1.53a3.5 3.5 0 0 1 0 4.94L13 11l-1.53-1.53a3.5 3.5 0 0 1 0-4.94Z",key:"eoatbi"}],["path",{d:"M20 2h2v2a4 4 0 0 1-4 4h-2V6a4 4 0 0 1 4-4Z",key:"19rau1"}],["path",{d:"M11.47 17.47 13 19l-1.53 1.53a3.5 3.5 0 0 1-4.94 0L5 19l1.53-1.53a3.5 3.5 0 0 1 4.94 0Z",key:"tc8ph9"}],["path",{d:"M15.47 13.47 17 15l-1.53 1.53a3.5 3.5 0 0 1-4.94 0L9 15l1.53-1.53a3.5 3.5 0 0 1 4.94 0Z",key:"2m8kc5"}],["path",{d:"M19.47 9.47 21 11l-1.53 1.53a3.5 3.5 0 0 1-4.94 0L13 11l1.53-1.53a3.5 3.5 0 0 1 4.94 0Z",key:"vex3ng"}]]),yl=i("whole-word",[["circle",{cx:"7",cy:"12",r:"3",key:"12clwm"}],["path",{d:"M10 9v6",key:"17i7lo"}],["circle",{cx:"17",cy:"12",r:"3",key:"gl7c2s"}],["path",{d:"M14 7v8",key:"dl84cr"}],["path",{d:"M22 17v1c0 .5-.5 1-1 1H3c-.5 0-1-.5-1-1v-1",key:"lt2kga"}]]),ym=i("wifi-cog",[["path",{d:"m14.305 19.53.923-.382",key:"3m78fa"}],["path",{d:"m15.228 16.852-.923-.383",key:"npixar"}],["path",{d:"m16.852 15.228-.383-.923",key:"5xggr7"}],["path",{d:"m16.852 20.772-.383.924",key:"dpfhf9"}],["path",{d:"m19.148 15.228.383-.923",key:"1reyyz"}],["path",{d:"m19.53 21.696-.382-.924",key:"1goivc"}],["path",{d:"M2 7.82a15 15 0 0 1 20 0",key:"1ovjuk"}],["path",{d:"m20.772 16.852.924-.383",key:"htqkph"}],["path",{d:"m20.772 19.148.924.383",key:"9w9pjp"}],["path",{d:"M5 11.858a10 10 0 0 1 11.5-1.785",key:"3sn16i"}],["path",{d:"M8.5 15.429a5 5 0 0 1 2.413-1.31",key:"1pxovh"}],["circle",{cx:"18",cy:"18",r:"3",key:"1xkwt0"}]]),yn=i("wifi-high",[["path",{d:"M12 20h.01",key:"zekei9"}],["path",{d:"M5 12.859a10 10 0 0 1 14 0",key:"1x1e6c"}],["path",{d:"M8.5 16.429a5 5 0 0 1 7 0",key:"1bycff"}]]),yo=i("wifi-low",[["path",{d:"M12 20h.01",key:"zekei9"}],["path",{d:"M8.5 16.429a5 5 0 0 1 7 0",key:"1bycff"}]]),yp=i("wifi-off",[["path",{d:"M12 20h.01",key:"zekei9"}],["path",{d:"M8.5 16.429a5 5 0 0 1 7 0",key:"1bycff"}],["path",{d:"M5 12.859a10 10 0 0 1 5.17-2.69",key:"1dl1wf"}],["path",{d:"M19 12.859a10 10 0 0 0-2.007-1.523",key:"4k23kn"}],["path",{d:"M2 8.82a15 15 0 0 1 4.177-2.643",key:"1grhjp"}],["path",{d:"M22 8.82a15 15 0 0 0-11.288-3.764",key:"z3jwby"}],["path",{d:"m2 2 20 20",key:"1ooewy"}]]),yq=i("wifi-pen",[["path",{d:"M2 8.82a15 15 0 0 1 20 0",key:"dnpr2z"}],["path",{d:"M21.378 16.626a1 1 0 0 0-3.004-3.004l-4.01 4.012a2 2 0 0 0-.506.854l-.837 2.87a.5.5 0 0 0 .62.62l2.87-.837a2 2 0 0 0 .854-.506z",key:"1817ys"}],["path",{d:"M5 12.859a10 10 0 0 1 10.5-2.222",key:"rpb7oy"}],["path",{d:"M8.5 16.429a5 5 0 0 1 3-1.406",key:"r8bmzl"}]]),yr=i("wifi-zero",[["path",{d:"M12 20h.01",key:"zekei9"}]]),ys=i("wifi",[["path",{d:"M12 20h.01",key:"zekei9"}],["path",{d:"M2 8.82a15 15 0 0 1 20 0",key:"dnpr2z"}],["path",{d:"M5 12.859a10 10 0 0 1 14 0",key:"1x1e6c"}],["path",{d:"M8.5 16.429a5 5 0 0 1 7 0",key:"1bycff"}]]),yt=i("wind-arrow-down",[["path",{d:"M10 2v8",key:"d4bbey"}],["path",{d:"M12.8 21.6A2 2 0 1 0 14 18H2",key:"19kp1d"}],["path",{d:"M17.5 10a2.5 2.5 0 1 1 2 4H2",key:"19kpjc"}],["path",{d:"m6 6 4 4 4-4",key:"k13n16"}]]),yu=i("wine-off",[["path",{d:"M8 22h8",key:"rmew8v"}],["path",{d:"M7 10h3m7 0h-1.343",key:"v48bem"}],["path",{d:"M12 15v7",key:"t2xh3l"}],["path",{d:"M7.307 7.307A12.33 12.33 0 0 0 7 10a5 5 0 0 0 7.391 4.391M8.638 2.981C8.75 2.668 8.872 2.34 9 2h6c1.5 4 2 6 2 8 0 .407-.05.809-.145 1.198",key:"1ymjlu"}],["line",{x1:"2",x2:"22",y1:"2",y2:"22",key:"a6p6uj"}]]),yv=i("wind",[["path",{d:"M12.8 19.6A2 2 0 1 0 14 16H2",key:"148xed"}],["path",{d:"M17.5 8a2.5 2.5 0 1 1 2 4H2",key:"1u4tom"}],["path",{d:"M9.8 4.4A2 2 0 1 1 11 8H2",key:"75valh"}]]),yw=i("wine",[["path",{d:"M8 22h8",key:"rmew8v"}],["path",{d:"M7 10h10",key:"1101jm"}],["path",{d:"M12 15v7",key:"t2xh3l"}],["path",{d:"M12 15a5 5 0 0 0 5-5c0-2-.5-4-2-8H9c-1.5 4-2 6-2 8a5 5 0 0 0 5 5Z",key:"10ffi3"}]]),yx=i("workflow",[["rect",{width:"8",height:"8",x:"3",y:"3",rx:"2",key:"by2w9f"}],["path",{d:"M7 11v4a2 2 0 0 0 2 2h4",key:"xkn7yn"}],["rect",{width:"8",height:"8",x:"13",y:"13",rx:"2",key:"1cgmvn"}]]),yy=i("worm",[["path",{d:"m19 12-1.5 3",key:"9bcu4o"}],["path",{d:"M19.63 18.81 22 20",key:"121v98"}],["path",{d:"M6.47 8.23a1.68 1.68 0 0 1 2.44 1.93l-.64 2.08a6.76 6.76 0 0 0 10.16 7.67l.42-.27a1 1 0 1 0-2.73-4.21l-.42.27a1.76 1.76 0 0 1-2.63-1.99l.64-2.08A6.66 6.66 0 0 0 3.94 3.9l-.7.4a1 1 0 1 0 2.55 4.34z",key:"1tij6q"}]]),yz=i("wrap-text",[["path",{d:"m16 16-2 2 2 2",key:"kkc6pm"}],["path",{d:"M3 12h15a3 3 0 1 1 0 6h-4",key:"1cl7v7"}],["path",{d:"M3 18h7",key:"sq21v6"}],["path",{d:"M3 6h18",key:"d0wm0j"}]]),yA=i("wrench",[["path",{d:"M14.7 6.3a1 1 0 0 0 0 1.4l1.6 1.6a1 1 0 0 0 1.4 0l3.77-3.77a6 6 0 0 1-7.94 7.94l-6.91 6.91a2.12 2.12 0 0 1-3-3l6.91-6.91a6 6 0 0 1 7.94-7.94l-3.76 3.76z",key:"cbrjhi"}]]),yB=i("x",[["path",{d:"M18 6 6 18",key:"1bl5f8"}],["path",{d:"m6 6 12 12",key:"d8bk6v"}]]),yC=i("youtube",[["path",{d:"M2.5 17a24.12 24.12 0 0 1 0-10 2 2 0 0 1 1.4-1.4 49.56 49.56 0 0 1 16.2 0A2 2 0 0 1 21.5 7a24.12 24.12 0 0 1 0 10 2 2 0 0 1-1.4 1.4 49.55 49.55 0 0 1-16.2 0A2 2 0 0 1 2.5 17",key:"1q2vi4"}],["path",{d:"m10 15 5-3-5-3z",key:"1jp15x"}]]),yD=i("zap-off",[["path",{d:"M10.513 4.856 13.12 2.17a.5.5 0 0 1 .86.46l-1.377 4.317",key:"193nxd"}],["path",{d:"M15.656 10H20a1 1 0 0 1 .78 1.63l-1.72 1.773",key:"27a7lr"}],["path",{d:"M16.273 16.273 10.88 21.83a.5.5 0 0 1-.86-.46l1.92-6.02A1 1 0 0 0 11 14H4a1 1 0 0 1-.78-1.63l4.507-4.643",key:"1e0qe9"}],["path",{d:"m2 2 20 20",key:"1ooewy"}]]),yE=i("zap",[["path",{d:"M4 14a1 1 0 0 1-.78-1.63l9.9-10.2a.5.5 0 0 1 .86.46l-1.92 6.02A1 1 0 0 0 13 10h7a1 1 0 0 1 .78 1.63l-9.9 10.2a.5.5 0 0 1-.86-.46l1.92-6.02A1 1 0 0 0 11 14z",key:"1xq2db"}]]),yF=i("zoom-in",[["circle",{cx:"11",cy:"11",r:"8",key:"4ej97u"}],["line",{x1:"21",x2:"16.65",y1:"21",y2:"16.65",key:"13gj7c"}],["line",{x1:"11",x2:"11",y1:"8",y2:"14",key:"1vmskp"}],["line",{x1:"8",x2:"14",y1:"11",y2:"11",key:"durymu"}]]);i("zoom-out",[["circle",{cx:"11",cy:"11",r:"8",key:"4ej97u"}],["line",{x1:"21",x2:"16.65",y1:"21",y2:"16.65",key:"13gj7c"}],["line",{x1:"8",x2:"14",y1:"11",y2:"11",key:"durymu"}]]),b.EsT=ei,b.azJ=cV,b.rAV=eW,b.qzq=kT,b.oUU=lx,b.W1t=n4,b.vEG=ow,b.kM6=rX,b.oxo=ta,b.MWd=xo},617:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),Object.defineProperty(b,"hasBasePath",{enumerable:!0,get:function(){return e}});let d=c(9596);function e(a){return(0,d.pathHasPrefix)(a,"")}("function"==typeof b.default||"object"==typeof b.default&&null!==b.default)&&void 0===b.default.__esModule&&(Object.defineProperty(b.default,"__esModule",{value:!0}),Object.assign(b.default,b),a.exports=b.default)},651:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),Object.defineProperty(b,"isLocalURL",{enumerable:!0,get:function(){return f}});let d=c(4718),e=c(617);function f(a){if(!(0,d.isAbsoluteUrl)(a))return!0;try{let b=(0,d.getLocationOrigin)(),c=new URL(a,b);return c.origin===b&&(0,e.hasBasePath)(c.pathname)}catch(a){return!1}}},1169:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),Object.defineProperty(b,"addLocale",{enumerable:!0,get:function(){return d}}),c(7779);let d=function(a){for(var b=arguments.length,c=Array(b>1?b-1:0),d=1;d{"use strict";function d(a,b,c,d){return!1}Object.defineProperty(b,"__esModule",{value:!0}),Object.defineProperty(b,"getDomainLocale",{enumerable:!0,get:function(){return d}}),c(7779),("function"==typeof b.default||"object"==typeof b.default&&null!==b.default)&&void 0===b.default.__esModule&&(Object.defineProperty(b.default,"__esModule",{value:!0}),Object.assign(b.default,b),a.exports=b.default)},2088:(a,b,c)=>{"use strict";a.exports=c(3885).vendored.contexts.RouterContext},2417:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),Object.defineProperty(b,"getRouteMatcher",{enumerable:!0,get:function(){return e}});let d=c(4718);function e(a){let{re:b,groups:c}=a;return a=>{let e=b.exec(a);if(!e)return!1;let f=a=>{try{return decodeURIComponent(a)}catch(a){throw Object.defineProperty(new d.DecodeError("failed to decode param"),"__NEXT_ERROR_CODE",{value:"E528",enumerable:!1,configurable:!0})}},g={};for(let[a,b]of Object.entries(c)){let c=e[b.pos];void 0!==c&&(b.repeat?g[a]=c.split("/").map(a=>f(a)):g[a]=f(c))}return g}}},2848:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),!function(a,b){for(var c in b)Object.defineProperty(a,c,{enumerable:!0,get:b[c]})}(b,{formatUrl:function(){return f},formatWithValidation:function(){return h},urlObjectKeys:function(){return g}});let d=c(3147)._(c(7536)),e=/https?|ftp|gopher|file/;function f(a){let{auth:b,hostname:c}=a,f=a.protocol||"",g=a.pathname||"",h=a.hash||"",i=a.query||"",j=!1;b=b?encodeURIComponent(b).replace(/%3A/i,":")+"@":"",a.host?j=b+a.host:c&&(j=b+(~c.indexOf(":")?"["+c+"]":c),a.port&&(j+=":"+a.port)),i&&"object"==typeof i&&(i=String(d.urlQueryToSearchParams(i)));let k=a.search||i&&"?"+i||"";return f&&!f.endsWith(":")&&(f+=":"),a.slashes||(!f||e.test(f))&&!1!==j?(j="//"+(j||""),g&&"/"!==g[0]&&(g="/"+g)):j||(j=""),h&&"#"!==h[0]&&(h="#"+h),k&&"?"!==k[0]&&(k="?"+k),""+f+j+(g=g.replace(/[?#]/g,encodeURIComponent))+(k=k.replace("#","%23"))+h}let g=["auth","hash","host","hostname","href","path","pathname","port","protocol","query","search","slashes"];function h(a){return f(a)}},3563:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),Object.defineProperty(b,"interpolateAs",{enumerable:!0,get:function(){return f}});let d=c(2417),e=c(3898);function f(a,b,c){let f="",g=(0,e.getRouteRegex)(a),h=g.groups,i=(b!==a?(0,d.getRouteMatcher)(g)(b):"")||c;f=a;let j=Object.keys(h);return j.every(a=>{let b=i[a]||"",{repeat:c,optional:d}=h[a],e="["+(c?"...":"")+a+"]";return d&&(e=(b?"":"/")+"["+e+"]"),c&&!Array.isArray(b)&&(b=[b]),(d||a in i)&&(f=f.replace(e,c?b.map(a=>encodeURIComponent(a)).join("/"):encodeURIComponent(b))||"/")})||(f=""),{params:j,result:f}}},3898:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),!function(a,b){for(var c in b)Object.defineProperty(a,c,{enumerable:!0,get:b[c]})}(b,{getNamedMiddlewareRegex:function(){return p},getNamedRouteRegex:function(){return o},getRouteRegex:function(){return l},parseParameter:function(){return i}});let d=c(2072),e=c(6580),f=c(8900),g=c(1730),h=/^([^[]*)\[((?:\[[^\]]*\])|[^\]]+)\](.*)$/;function i(a){let b=a.match(h);return b?j(b[2]):j(a)}function j(a){let b=a.startsWith("[")&&a.endsWith("]");b&&(a=a.slice(1,-1));let c=a.startsWith("...");return c&&(a=a.slice(3)),{key:a,repeat:c,optional:b}}function k(a,b,c){let d={},i=1,k=[];for(let l of(0,g.removeTrailingSlash)(a).slice(1).split("/")){let a=e.INTERCEPTION_ROUTE_MARKERS.find(a=>l.startsWith(a)),g=l.match(h);if(a&&g&&g[2]){let{key:b,optional:c,repeat:e}=j(g[2]);d[b]={pos:i++,repeat:e,optional:c},k.push("/"+(0,f.escapeStringRegexp)(a)+"([^/]+?)")}else if(g&&g[2]){let{key:a,repeat:b,optional:e}=j(g[2]);d[a]={pos:i++,repeat:b,optional:e},c&&g[1]&&k.push("/"+(0,f.escapeStringRegexp)(g[1]));let h=b?e?"(?:/(.+?))?":"/(.+?)":"/([^/]+?)";c&&g[1]&&(h=h.substring(1)),k.push(h)}else k.push("/"+(0,f.escapeStringRegexp)(l));b&&g&&g[3]&&k.push((0,f.escapeStringRegexp)(g[3]))}return{parameterizedRoute:k.join(""),groups:d}}function l(a,b){let{includeSuffix:c=!1,includePrefix:d=!1,excludeOptionalTrailingSlash:e=!1}=void 0===b?{}:b,{parameterizedRoute:f,groups:g}=k(a,c,d),h=f;return e||(h+="(?:/)?"),{re:RegExp("^"+h+"$"),groups:g}}function m(a){let b,{interceptionMarker:c,getSafeRouteKey:d,segment:e,routeKeys:g,keyPrefix:h,backreferenceDuplicateKeys:i}=a,{key:k,optional:l,repeat:m}=j(e),n=k.replace(/\W/g,"");h&&(n=""+h+n);let o=!1;(0===n.length||n.length>30)&&(o=!0),isNaN(parseInt(n.slice(0,1)))||(o=!0),o&&(n=d());let p=n in g;h?g[n]=""+h+k:g[n]=k;let q=c?(0,f.escapeStringRegexp)(c):"";return b=p&&i?"\\k<"+n+">":m?"(?<"+n+">.+?)":"(?<"+n+">[^/]+?)",l?"(?:/"+q+b+")?":"/"+q+b}function n(a,b,c,i,j){let k,l=(k=0,()=>{let a="",b=++k;for(;b>0;)a+=String.fromCharCode(97+(b-1)%26),b=Math.floor((b-1)/26);return a}),n={},o=[];for(let k of(0,g.removeTrailingSlash)(a).slice(1).split("/")){let a=e.INTERCEPTION_ROUTE_MARKERS.some(a=>k.startsWith(a)),g=k.match(h);if(a&&g&&g[2])o.push(m({getSafeRouteKey:l,interceptionMarker:g[1],segment:g[2],routeKeys:n,keyPrefix:b?d.NEXT_INTERCEPTION_MARKER_PREFIX:void 0,backreferenceDuplicateKeys:j}));else if(g&&g[2]){i&&g[1]&&o.push("/"+(0,f.escapeStringRegexp)(g[1]));let a=m({getSafeRouteKey:l,segment:g[2],routeKeys:n,keyPrefix:b?d.NEXT_QUERY_PARAM_PREFIX:void 0,backreferenceDuplicateKeys:j});i&&g[1]&&(a=a.substring(1)),o.push(a)}else o.push("/"+(0,f.escapeStringRegexp)(k));c&&g&&g[3]&&o.push((0,f.escapeStringRegexp)(g[3]))}return{namedParameterizedRoute:o.join(""),routeKeys:n}}function o(a,b){var c,d,e;let f=n(a,b.prefixRouteKeys,null!=(c=b.includeSuffix)&&c,null!=(d=b.includePrefix)&&d,null!=(e=b.backreferenceDuplicateKeys)&&e),g=f.namedParameterizedRoute;return b.excludeOptionalTrailingSlash||(g+="(?:/)?"),{...l(a,b),namedRegex:"^"+g+"$",routeKeys:f.routeKeys}}function p(a,b){let{parameterizedRoute:c}=k(a,!1,!1),{catchAll:d=!0}=b;if("/"===c)return{namedRegex:"^/"+(d?".*":"")+"$"};let{namedParameterizedRoute:e}=n(a,!1,!1,!1,!1);return{namedRegex:"^"+e+(d?"(?:(/.*)?)":"")+"$"}}},4013:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),!function(a,b){for(var c in b)Object.defineProperty(a,c,{enumerable:!0,get:b[c]})}(b,{default:function(){return u},useLinkStatus:function(){return t}});let d=c(3147),e=c(8732),f=d._(c(2015)),g=c(6231),h=c(651),i=c(2848),j=c(4718),k=c(1169),l=c(2088),m=c(6152),n=c(1311),o=c(6092),p=c(9871);function q(a){return"string"==typeof a?a:(0,i.formatUrl)(a)}c(9281);let r=f.default.forwardRef(function(a,b){let c,d,{href:i,as:r,children:s,prefetch:t=null,passHref:u,replace:v,shallow:w,scroll:x,locale:y,onClick:z,onNavigate:A,onMouseEnter:B,onTouchStart:C,legacyBehavior:D=!1,...E}=a;c=s,D&&("string"==typeof c||"number"==typeof c)&&(c=(0,e.jsx)("a",{children:c}));let F=f.default.useContext(l.RouterContext),G=!1!==t,{href:H,as:I}=f.default.useMemo(()=>{if(!F){let a=q(i);return{href:a,as:r?q(r):a}}let[a,b]=(0,g.resolveHref)(F,i,!0);return{href:a,as:r?(0,g.resolveHref)(F,r):b||a}},[F,i,r]),J=f.default.useRef(H),K=f.default.useRef(I);D&&(d=f.default.Children.only(c));let L=D?d&&"object"==typeof d&&d.ref:b,[M,N,O]=(0,m.useIntersection)({rootMargin:"200px"}),P=f.default.useCallback(a=>{(K.current!==I||J.current!==H)&&(O(),K.current=I,J.current=H),M(a)},[I,H,O,M]),Q=(0,p.useMergedRef)(P,L);f.default.useEffect(()=>{},[I,H,N,y,G,null==F?void 0:F.locale,F]);let R={ref:Q,onClick(a){D||"function"!=typeof z||z(a),D&&d.props&&"function"==typeof d.props.onClick&&d.props.onClick(a),F&&(a.defaultPrevented||function(a,b,c,d,e,f,g,i,j){let{nodeName:k}=a.currentTarget;if(!("A"===k.toUpperCase()&&function(a){let b=a.currentTarget.getAttribute("target");return b&&"_self"!==b||a.metaKey||a.ctrlKey||a.shiftKey||a.altKey||a.nativeEvent&&2===a.nativeEvent.which}(a)||a.currentTarget.hasAttribute("download"))){if(!(0,h.isLocalURL)(c)){e&&(a.preventDefault(),location.replace(c));return}a.preventDefault(),(()=>{if(j){let a=!1;if(j({preventDefault:()=>{a=!0}}),a)return}let a=null==g||g;"beforePopState"in b?b[e?"replace":"push"](c,d,{shallow:f,locale:i,scroll:a}):b[e?"replace":"push"](d||c,{scroll:a})})()}}(a,F,H,I,v,w,x,y,A))},onMouseEnter(a){D||"function"!=typeof B||B(a),D&&d.props&&"function"==typeof d.props.onMouseEnter&&d.props.onMouseEnter(a)},onTouchStart:function(a){D||"function"!=typeof C||C(a),D&&d.props&&"function"==typeof d.props.onTouchStart&&d.props.onTouchStart(a)}};if((0,j.isAbsoluteUrl)(I))R.href=I;else if(!D||u||"a"===d.type&&!("href"in d.props)){let a=void 0!==y?y:null==F?void 0:F.locale;R.href=(null==F?void 0:F.isLocaleDomain)&&(0,n.getDomainLocale)(I,a,null==F?void 0:F.locales,null==F?void 0:F.domainLocales)||(0,o.addBasePath)((0,k.addLocale)(I,a,null==F?void 0:F.defaultLocale))}return D?f.default.cloneElement(d,R):(0,e.jsx)("a",{...E,...R,children:c})}),s=(0,f.createContext)({pending:!1}),t=()=>(0,f.useContext)(s),u=r;("function"==typeof b.default||"object"==typeof b.default&&null!==b.default)&&void 0===b.default.__esModule&&(Object.defineProperty(b.default,"__esModule",{value:!0}),Object.assign(b.default,b),a.exports=b.default)},4841:(a,b)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),!function(a,b){for(var c in b)Object.defineProperty(a,c,{enumerable:!0,get:b[c]})}(b,{cancelIdleCallback:function(){return d},requestIdleCallback:function(){return c}});let c="undefined"!=typeof self&&self.requestIdleCallback&&self.requestIdleCallback.bind(window)||function(a){let b=Date.now();return self.setTimeout(function(){a({didTimeout:!1,timeRemaining:function(){return Math.max(0,50-(Date.now()-b))}})},1)},d="undefined"!=typeof self&&self.cancelIdleCallback&&self.cancelIdleCallback.bind(window)||function(a){return clearTimeout(a)};("function"==typeof b.default||"object"==typeof b.default&&null!==b.default)&&void 0===b.default.__esModule&&(Object.defineProperty(b.default,"__esModule",{value:!0}),Object.assign(b.default,b),a.exports=b.default)},6092:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),Object.defineProperty(b,"addBasePath",{enumerable:!0,get:function(){return f}});let d=c(6655),e=c(7779);function f(a,b){return(0,e.normalizePathTrailingSlash)((0,d.addPathPrefix)(a,""))}("function"==typeof b.default||"object"==typeof b.default&&null!==b.default)&&void 0===b.default.__esModule&&(Object.defineProperty(b.default,"__esModule",{value:!0}),Object.assign(b.default,b),a.exports=b.default)},6152:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),Object.defineProperty(b,"useIntersection",{enumerable:!0,get:function(){return i}});let d=c(2015),e=c(4841),f="function"==typeof IntersectionObserver,g=new Map,h=[];function i(a){let{rootRef:b,rootMargin:c,disabled:i}=a,j=i||!f,[k,l]=(0,d.useState)(!1),m=(0,d.useRef)(null),n=(0,d.useCallback)(a=>{m.current=a},[]);return(0,d.useEffect)(()=>{if(f){if(j||k)return;let a=m.current;if(a&&a.tagName)return function(a,b,c){let{id:d,observer:e,elements:f}=function(a){let b,c={root:a.root||null,margin:a.rootMargin||""},d=h.find(a=>a.root===c.root&&a.margin===c.margin);if(d&&(b=g.get(d)))return b;let e=new Map;return b={id:c,observer:new IntersectionObserver(a=>{a.forEach(a=>{let b=e.get(a.target),c=a.isIntersecting||a.intersectionRatio>0;b&&c&&b(c)})},a),elements:e},h.push(c),g.set(c,b),b}(c);return f.set(a,b),e.observe(a),function(){if(f.delete(a),e.unobserve(a),0===f.size){e.disconnect(),g.delete(d);let a=h.findIndex(a=>a.root===d.root&&a.margin===d.margin);a>-1&&h.splice(a,1)}}}(a,a=>a&&l(a),{root:null==b?void 0:b.current,rootMargin:c})}else if(!k){let a=(0,e.requestIdleCallback)(()=>l(!0));return()=>(0,e.cancelIdleCallback)(a)}},[j,c,b,k,m.current]),[n,k,(0,d.useCallback)(()=>{l(!1)},[])]}("function"==typeof b.default||"object"==typeof b.default&&null!==b.default)&&void 0===b.default.__esModule&&(Object.defineProperty(b.default,"__esModule",{value:!0}),Object.assign(b.default,b),a.exports=b.default)},6231:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),Object.defineProperty(b,"resolveHref",{enumerable:!0,get:function(){return l}});let d=c(7536),e=c(2848),f=c(8410),g=c(4718),h=c(7779),i=c(651),j=c(6275),k=c(3563);function l(a,b,c){let l,m="string"==typeof b?b:(0,e.formatWithValidation)(b),n=m.match(/^[a-z][a-z0-9+.-]*:\/\//i),o=n?m.slice(n[0].length):m;if((o.split("?",1)[0]||"").match(/(\/\/|\\)/)){console.error("Invalid href '"+m+"' passed to next/router in page: '"+a.pathname+"'. Repeated forward-slashes (//) or backslashes \\ are not valid in the href.");let b=(0,g.normalizeRepeatedSlashes)(o);m=(n?n[0]:"")+b}if(!(0,i.isLocalURL)(m))return c?[m]:m;try{l=new URL(m.startsWith("#")?a.asPath:a.pathname,"http://n")}catch(a){l=new URL("/","http://n")}try{let a=new URL(m,l);a.pathname=(0,h.normalizePathTrailingSlash)(a.pathname);let b="";if((0,j.isDynamicRoute)(a.pathname)&&a.searchParams&&c){let c=(0,d.searchParamsToUrlQuery)(a.searchParams),{result:g,params:h}=(0,k.interpolateAs)(a.pathname,a.pathname,c);g&&(b=(0,e.formatWithValidation)({pathname:g,hash:a.hash,query:(0,f.omit)(c,h)}))}let g=a.origin===l.origin?a.href.slice(a.origin.length):a.href;return c?[g,b||g]:g}catch(a){return c?[m]:m}}("function"==typeof b.default||"object"==typeof b.default&&null!==b.default)&&void 0===b.default.__esModule&&(Object.defineProperty(b.default,"__esModule",{value:!0}),Object.assign(b.default,b),a.exports=b.default)},7536:(a,b)=>{"use strict";function c(a){let b={};for(let[c,d]of a.entries()){let a=b[c];void 0===a?b[c]=d:Array.isArray(a)?a.push(d):b[c]=[a,d]}return b}function d(a){return"string"==typeof a?a:("number"!=typeof a||isNaN(a))&&"boolean"!=typeof a?"":String(a)}function e(a){let b=new URLSearchParams;for(let[c,e]of Object.entries(a))if(Array.isArray(e))for(let a of e)b.append(c,d(a));else b.set(c,d(e));return b}function f(a){for(var b=arguments.length,c=Array(b>1?b-1:0),d=1;d{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),Object.defineProperty(b,"normalizePathTrailingSlash",{enumerable:!0,get:function(){return f}});let d=c(1730),e=c(6290),f=a=>{if(!a.startsWith("/"))return a;let{pathname:b,query:c,hash:f}=(0,e.parsePath)(a);return""+(0,d.removeTrailingSlash)(b)+c+f};("function"==typeof b.default||"object"==typeof b.default&&null!==b.default)&&void 0===b.default.__esModule&&(Object.defineProperty(b.default,"__esModule",{value:!0}),Object.assign(b.default,b),a.exports=b.default)},8410:(a,b)=>{"use strict";function c(a,b){let c={};return Object.keys(a).forEach(d=>{b.includes(d)||(c[d]=a[d])}),c}Object.defineProperty(b,"__esModule",{value:!0}),Object.defineProperty(b,"omit",{enumerable:!0,get:function(){return c}})},8900:(a,b)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),Object.defineProperty(b,"escapeStringRegexp",{enumerable:!0,get:function(){return e}});let c=/[|\\{}()[\]^$+*?.-]/,d=/[|\\{}()[\]^$+*?.-]/g;function e(a){return c.test(a)?a.replace(d,"\\$&"):a}},9281:(a,b)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),Object.defineProperty(b,"errorOnce",{enumerable:!0,get:function(){return c}});let c=a=>{}},9871:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),Object.defineProperty(b,"useMergedRef",{enumerable:!0,get:function(){return e}});let d=c(2015);function e(a,b){let c=(0,d.useRef)(null),e=(0,d.useRef)(null);return(0,d.useCallback)(d=>{if(null===d){let a=c.current;a&&(c.current=null,a());let b=e.current;b&&(e.current=null,b())}else a&&(c.current=f(a,d)),b&&(e.current=f(b,d))},[a,b])}function f(a,b){if("function"!=typeof a)return a.current=b,()=>{a.current=null};{let c=a(b);return"function"==typeof c?c:()=>a(null)}}("function"==typeof b.default||"object"==typeof b.default&&null!==b.default)&&void 0===b.default.__esModule&&(Object.defineProperty(b.default,"__esModule",{value:!0}),Object.assign(b.default,b),a.exports=b.default)},9918:(a,b,c)=>{a.exports=c(4013)}}; \ No newline at end of file +exports.id=450,exports.ids=[450],exports.modules={37:(a,b,c)=>{"use strict";var d=c(2015);let e=a=>{let b=a.replace(/^([A-Z])|[\s-_]+(\w)/g,(a,b,c)=>c?c.toUpperCase():b.toLowerCase());return b.charAt(0).toUpperCase()+b.slice(1)},f=(...a)=>a.filter((a,b,c)=>!!a&&""!==a.trim()&&c.indexOf(a)===b).join(" ").trim();var g={xmlns:"http://www.w3.org/2000/svg",width:24,height:24,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"};let h=d.forwardRef(({color:a="currentColor",size:b=24,strokeWidth:c=2,absoluteStrokeWidth:e,className:h="",children:i,iconNode:j,...k},l)=>d.createElement("svg",{ref:l,...g,width:b,height:b,stroke:a,strokeWidth:e?24*Number(c)/Number(b):c,className:f("lucide",h),...!i&&!(a=>{for(let b in a)if(b.startsWith("aria-")||"role"===b||"title"===b)return!0})(k)&&{"aria-hidden":"true"},...k},[...j.map(([a,b])=>d.createElement(a,b)),...Array.isArray(i)?i:[i]])),i=(a,b)=>{let c=d.forwardRef(({className:c,...g},i)=>d.createElement(h,{ref:i,iconNode:b,className:f(`lucide-${e(a).replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase()}`,`lucide-${a}`,c),...g}));return c.displayName=e(a),c},j=i("a-arrow-down",[["path",{d:"M3.5 13h6",key:"p1my2r"}],["path",{d:"m2 16 4.5-9 4.5 9",key:"ndf0b3"}],["path",{d:"M18 7v9",key:"pknjwm"}],["path",{d:"m14 12 4 4 4-4",key:"buelq4"}]]),k=i("a-large-small",[["path",{d:"M21 14h-5",key:"1vh23k"}],["path",{d:"M16 16v-3.5a2.5 2.5 0 0 1 5 0V16",key:"1wh10o"}],["path",{d:"M4.5 13h6",key:"dfilno"}],["path",{d:"m3 16 4.5-9 4.5 9",key:"2dxa0e"}]]),l=i("a-arrow-up",[["path",{d:"M3.5 13h6",key:"p1my2r"}],["path",{d:"m2 16 4.5-9 4.5 9",key:"ndf0b3"}],["path",{d:"M18 16V7",key:"ty0viw"}],["path",{d:"m14 11 4-4 4 4",key:"1pu57t"}]]),m=i("accessibility",[["circle",{cx:"16",cy:"4",r:"1",key:"1grugj"}],["path",{d:"m18 19 1-7-6 1",key:"r0i19z"}],["path",{d:"m5 8 3-3 5.5 3-2.36 3.5",key:"9ptxx2"}],["path",{d:"M4.24 14.5a5 5 0 0 0 6.88 6",key:"10kmtu"}],["path",{d:"M13.76 17.5a5 5 0 0 0-6.88-6",key:"2qq6rc"}]]),n=i("activity",[["path",{d:"M22 12h-2.48a2 2 0 0 0-1.93 1.46l-2.35 8.36a.25.25 0 0 1-.48 0L9.24 2.18a.25.25 0 0 0-.48 0l-2.35 8.36A2 2 0 0 1 4.49 12H2",key:"169zse"}]]),o=i("air-vent",[["path",{d:"M18 17.5a2.5 2.5 0 1 1-4 2.03V12",key:"yd12zl"}],["path",{d:"M6 12H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2v5a2 2 0 0 1-2 2h-2",key:"larmp2"}],["path",{d:"M6 8h12",key:"6g4wlu"}],["path",{d:"M6.6 15.572A2 2 0 1 0 10 17v-5",key:"1x1kqn"}]]),p=i("airplay",[["path",{d:"M5 17H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2v10a2 2 0 0 1-2 2h-1",key:"ns4c3b"}],["path",{d:"m12 15 5 6H7Z",key:"14qnn2"}]]),q=i("alarm-clock-check",[["circle",{cx:"12",cy:"13",r:"8",key:"3y4lt7"}],["path",{d:"M5 3 2 6",key:"18tl5t"}],["path",{d:"m22 6-3-3",key:"1opdir"}],["path",{d:"M6.38 18.7 4 21",key:"17xu3x"}],["path",{d:"M17.64 18.67 20 21",key:"kv2oe2"}],["path",{d:"m9 13 2 2 4-4",key:"6343dt"}]]),r=i("alarm-clock-minus",[["circle",{cx:"12",cy:"13",r:"8",key:"3y4lt7"}],["path",{d:"M5 3 2 6",key:"18tl5t"}],["path",{d:"m22 6-3-3",key:"1opdir"}],["path",{d:"M6.38 18.7 4 21",key:"17xu3x"}],["path",{d:"M17.64 18.67 20 21",key:"kv2oe2"}],["path",{d:"M9 13h6",key:"1uhe8q"}]]),s=i("alarm-clock-off",[["path",{d:"M6.87 6.87a8 8 0 1 0 11.26 11.26",key:"3on8tj"}],["path",{d:"M19.9 14.25a8 8 0 0 0-9.15-9.15",key:"15ghsc"}],["path",{d:"m22 6-3-3",key:"1opdir"}],["path",{d:"M6.26 18.67 4 21",key:"yzmioq"}],["path",{d:"m2 2 20 20",key:"1ooewy"}],["path",{d:"M4 4 2 6",key:"1ycko6"}]]),t=i("alarm-clock-plus",[["circle",{cx:"12",cy:"13",r:"8",key:"3y4lt7"}],["path",{d:"M5 3 2 6",key:"18tl5t"}],["path",{d:"m22 6-3-3",key:"1opdir"}],["path",{d:"M6.38 18.7 4 21",key:"17xu3x"}],["path",{d:"M17.64 18.67 20 21",key:"kv2oe2"}],["path",{d:"M12 10v6",key:"1bos4e"}],["path",{d:"M9 13h6",key:"1uhe8q"}]]),u=i("alarm-clock",[["circle",{cx:"12",cy:"13",r:"8",key:"3y4lt7"}],["path",{d:"M12 9v4l2 2",key:"1c63tq"}],["path",{d:"M5 3 2 6",key:"18tl5t"}],["path",{d:"m22 6-3-3",key:"1opdir"}],["path",{d:"M6.38 18.7 4 21",key:"17xu3x"}],["path",{d:"M17.64 18.67 20 21",key:"kv2oe2"}]]),v=i("alarm-smoke",[["path",{d:"M11 21c0-2.5 2-2.5 2-5",key:"1sicvv"}],["path",{d:"M16 21c0-2.5 2-2.5 2-5",key:"1o3eny"}],["path",{d:"m19 8-.8 3a1.25 1.25 0 0 1-1.2 1H7a1.25 1.25 0 0 1-1.2-1L5 8",key:"1bvca4"}],["path",{d:"M21 3a1 1 0 0 1 1 1v2a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2V4a1 1 0 0 1 1-1z",key:"x3qr1j"}],["path",{d:"M6 21c0-2.5 2-2.5 2-5",key:"i3w1gp"}]]),w=i("album",[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",ry:"2",key:"1m3agn"}],["polyline",{points:"11 3 11 11 14 8 17 11 17 3",key:"1wcwz3"}]]),x=i("align-center-horizontal",[["path",{d:"M2 12h20",key:"9i4pu4"}],["path",{d:"M10 16v4a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2v-4",key:"11f1s0"}],["path",{d:"M10 8V4a2 2 0 0 0-2-2H6a2 2 0 0 0-2 2v4",key:"t14dx9"}],["path",{d:"M20 16v1a2 2 0 0 1-2 2h-2a2 2 0 0 1-2-2v-1",key:"1w07xs"}],["path",{d:"M14 8V7c0-1.1.9-2 2-2h2a2 2 0 0 1 2 2v1",key:"1apec2"}]]),y=i("align-center-vertical",[["path",{d:"M12 2v20",key:"t6zp3m"}],["path",{d:"M8 10H4a2 2 0 0 1-2-2V6c0-1.1.9-2 2-2h4",key:"14d6g8"}],["path",{d:"M16 10h4a2 2 0 0 0 2-2V6a2 2 0 0 0-2-2h-4",key:"1e2lrw"}],["path",{d:"M8 20H7a2 2 0 0 1-2-2v-2c0-1.1.9-2 2-2h1",key:"1fkdwx"}],["path",{d:"M16 14h1a2 2 0 0 1 2 2v2a2 2 0 0 1-2 2h-1",key:"1euafb"}]]),z=i("align-center",[["path",{d:"M17 12H7",key:"16if0g"}],["path",{d:"M19 18H5",key:"18s9l3"}],["path",{d:"M21 6H3",key:"1jwq7v"}]]),A=i("align-end-horizontal",[["rect",{width:"6",height:"16",x:"4",y:"2",rx:"2",key:"z5wdxg"}],["rect",{width:"6",height:"9",x:"14",y:"9",rx:"2",key:"um7a8w"}],["path",{d:"M22 22H2",key:"19qnx5"}]]),B=i("align-end-vertical",[["rect",{width:"16",height:"6",x:"2",y:"4",rx:"2",key:"10wcwx"}],["rect",{width:"9",height:"6",x:"9",y:"14",rx:"2",key:"4p5bwg"}],["path",{d:"M22 22V2",key:"12ipfv"}]]),C=i("align-horizontal-distribute-center",[["rect",{width:"6",height:"14",x:"4",y:"5",rx:"2",key:"1wwnby"}],["rect",{width:"6",height:"10",x:"14",y:"7",rx:"2",key:"1fe6j6"}],["path",{d:"M17 22v-5",key:"4b6g73"}],["path",{d:"M17 7V2",key:"hnrr36"}],["path",{d:"M7 22v-3",key:"1r4jpn"}],["path",{d:"M7 5V2",key:"liy1u9"}]]),D=i("align-horizontal-distribute-end",[["rect",{width:"6",height:"14",x:"4",y:"5",rx:"2",key:"1wwnby"}],["rect",{width:"6",height:"10",x:"14",y:"7",rx:"2",key:"1fe6j6"}],["path",{d:"M10 2v20",key:"uyc634"}],["path",{d:"M20 2v20",key:"1tx262"}]]),E=i("align-horizontal-distribute-start",[["rect",{width:"6",height:"14",x:"4",y:"5",rx:"2",key:"1wwnby"}],["rect",{width:"6",height:"10",x:"14",y:"7",rx:"2",key:"1fe6j6"}],["path",{d:"M4 2v20",key:"gtpd5x"}],["path",{d:"M14 2v20",key:"tg6bpw"}]]),F=i("align-horizontal-justify-center",[["rect",{width:"6",height:"14",x:"2",y:"5",rx:"2",key:"dy24zr"}],["rect",{width:"6",height:"10",x:"16",y:"7",rx:"2",key:"13zkjt"}],["path",{d:"M12 2v20",key:"t6zp3m"}]]),G=i("align-horizontal-justify-end",[["rect",{width:"6",height:"14",x:"2",y:"5",rx:"2",key:"dy24zr"}],["rect",{width:"6",height:"10",x:"12",y:"7",rx:"2",key:"1ht384"}],["path",{d:"M22 2v20",key:"40qfg1"}]]),H=i("align-horizontal-justify-start",[["rect",{width:"6",height:"14",x:"6",y:"5",rx:"2",key:"hsirpf"}],["rect",{width:"6",height:"10",x:"16",y:"7",rx:"2",key:"13zkjt"}],["path",{d:"M2 2v20",key:"1ivd8o"}]]),I=i("align-horizontal-space-around",[["rect",{width:"6",height:"10",x:"9",y:"7",rx:"2",key:"yn7j0q"}],["path",{d:"M4 22V2",key:"tsjzd3"}],["path",{d:"M20 22V2",key:"1bnhr8"}]]),J=i("align-horizontal-space-between",[["rect",{width:"6",height:"14",x:"3",y:"5",rx:"2",key:"j77dae"}],["rect",{width:"6",height:"10",x:"15",y:"7",rx:"2",key:"bq30hj"}],["path",{d:"M3 2v20",key:"1d2pfg"}],["path",{d:"M21 2v20",key:"p059bm"}]]),K=i("align-justify",[["path",{d:"M3 12h18",key:"1i2n21"}],["path",{d:"M3 18h18",key:"1h113x"}],["path",{d:"M3 6h18",key:"d0wm0j"}]]),L=i("align-left",[["path",{d:"M15 12H3",key:"6jk70r"}],["path",{d:"M17 18H3",key:"1amg6g"}],["path",{d:"M21 6H3",key:"1jwq7v"}]]),M=i("align-right",[["path",{d:"M21 12H9",key:"dn1m92"}],["path",{d:"M21 18H7",key:"1ygte8"}],["path",{d:"M21 6H3",key:"1jwq7v"}]]),N=i("align-start-horizontal",[["rect",{width:"6",height:"16",x:"4",y:"6",rx:"2",key:"1n4dg1"}],["rect",{width:"6",height:"9",x:"14",y:"6",rx:"2",key:"17khns"}],["path",{d:"M22 2H2",key:"fhrpnj"}]]),O=i("align-start-vertical",[["rect",{width:"9",height:"6",x:"6",y:"14",rx:"2",key:"lpm2y7"}],["rect",{width:"16",height:"6",x:"6",y:"4",rx:"2",key:"rdj6ps"}],["path",{d:"M2 2v20",key:"1ivd8o"}]]),P=i("align-vertical-distribute-center",[["path",{d:"M22 17h-3",key:"1lwga1"}],["path",{d:"M22 7h-5",key:"o2endc"}],["path",{d:"M5 17H2",key:"1gx9xc"}],["path",{d:"M7 7H2",key:"6bq26l"}],["rect",{x:"5",y:"14",width:"14",height:"6",rx:"2",key:"1qrzuf"}],["rect",{x:"7",y:"4",width:"10",height:"6",rx:"2",key:"we8e9z"}]]),Q=i("align-vertical-distribute-end",[["rect",{width:"14",height:"6",x:"5",y:"14",rx:"2",key:"jmoj9s"}],["rect",{width:"10",height:"6",x:"7",y:"4",rx:"2",key:"aza5on"}],["path",{d:"M2 20h20",key:"owomy5"}],["path",{d:"M2 10h20",key:"1ir3d8"}]]),R=i("align-vertical-distribute-start",[["rect",{width:"14",height:"6",x:"5",y:"14",rx:"2",key:"jmoj9s"}],["rect",{width:"10",height:"6",x:"7",y:"4",rx:"2",key:"aza5on"}],["path",{d:"M2 14h20",key:"myj16y"}],["path",{d:"M2 4h20",key:"mda7wb"}]]),S=i("align-vertical-justify-center",[["rect",{width:"14",height:"6",x:"5",y:"16",rx:"2",key:"1i8z2d"}],["rect",{width:"10",height:"6",x:"7",y:"2",rx:"2",key:"ypihtt"}],["path",{d:"M2 12h20",key:"9i4pu4"}]]),T=i("align-vertical-justify-end",[["rect",{width:"14",height:"6",x:"5",y:"12",rx:"2",key:"4l4tp2"}],["rect",{width:"10",height:"6",x:"7",y:"2",rx:"2",key:"ypihtt"}],["path",{d:"M2 22h20",key:"272qi7"}]]),U=i("align-vertical-justify-start",[["rect",{width:"14",height:"6",x:"5",y:"16",rx:"2",key:"1i8z2d"}],["rect",{width:"10",height:"6",x:"7",y:"6",rx:"2",key:"13squh"}],["path",{d:"M2 2h20",key:"1ennik"}]]),V=i("align-vertical-space-around",[["rect",{width:"10",height:"6",x:"7",y:"9",rx:"2",key:"b1zbii"}],["path",{d:"M22 20H2",key:"1p1f7z"}],["path",{d:"M22 4H2",key:"1b7qnq"}]]),W=i("align-vertical-space-between",[["rect",{width:"14",height:"6",x:"5",y:"15",rx:"2",key:"1w91an"}],["rect",{width:"10",height:"6",x:"7",y:"3",rx:"2",key:"17wqzy"}],["path",{d:"M2 21h20",key:"1nyx9w"}],["path",{d:"M2 3h20",key:"91anmk"}]]),X=i("ambulance",[["path",{d:"M10 10H6",key:"1bsnug"}],["path",{d:"M14 18V6a2 2 0 0 0-2-2H4a2 2 0 0 0-2 2v11a1 1 0 0 0 1 1h2",key:"wrbu53"}],["path",{d:"M19 18h2a1 1 0 0 0 1-1v-3.28a1 1 0 0 0-.684-.948l-1.923-.641a1 1 0 0 1-.578-.502l-1.539-3.076A1 1 0 0 0 16.382 8H14",key:"lrkjwd"}],["path",{d:"M8 8v4",key:"1fwk8c"}],["path",{d:"M9 18h6",key:"x1upvd"}],["circle",{cx:"17",cy:"18",r:"2",key:"332jqn"}],["circle",{cx:"7",cy:"18",r:"2",key:"19iecd"}]]),Y=i("ampersand",[["path",{d:"M17.5 12c0 4.4-3.6 8-8 8A4.5 4.5 0 0 1 5 15.5c0-6 8-4 8-8.5a3 3 0 1 0-6 0c0 3 2.5 8.5 12 13",key:"1o9ehi"}],["path",{d:"M16 12h3",key:"4uvgyw"}]]),Z=i("ampersands",[["path",{d:"M10 17c-5-3-7-7-7-9a2 2 0 0 1 4 0c0 2.5-5 2.5-5 6 0 1.7 1.3 3 3 3 2.8 0 5-2.2 5-5",key:"12lh1k"}],["path",{d:"M22 17c-5-3-7-7-7-9a2 2 0 0 1 4 0c0 2.5-5 2.5-5 6 0 1.7 1.3 3 3 3 2.8 0 5-2.2 5-5",key:"173c68"}]]),$=i("amphora",[["path",{d:"M10 2v5.632c0 .424-.272.795-.653.982A6 6 0 0 0 6 14c.006 4 3 7 5 8",key:"1h8rid"}],["path",{d:"M10 5H8a2 2 0 0 0 0 4h.68",key:"3ezsi6"}],["path",{d:"M14 2v5.632c0 .424.272.795.652.982A6 6 0 0 1 18 14c0 4-3 7-5 8",key:"yt6q09"}],["path",{d:"M14 5h2a2 2 0 0 1 0 4h-.68",key:"8f95yk"}],["path",{d:"M18 22H6",key:"mg6kv4"}],["path",{d:"M9 2h6",key:"1jrp98"}]]),_=i("anchor",[["path",{d:"M12 22V8",key:"qkxhtm"}],["path",{d:"M5 12H2a10 10 0 0 0 20 0h-3",key:"1hv3nh"}],["circle",{cx:"12",cy:"5",r:"3",key:"rqqgnr"}]]),aa=i("angry",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"M16 16s-1.5-2-4-2-4 2-4 2",key:"epbg0q"}],["path",{d:"M7.5 8 10 9",key:"olxxln"}],["path",{d:"m14 9 2.5-1",key:"1j6cij"}],["path",{d:"M9 10h.01",key:"qbtxuw"}],["path",{d:"M15 10h.01",key:"1qmjsl"}]]),ab=i("annoyed",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"M8 15h8",key:"45n4r"}],["path",{d:"M8 9h2",key:"1g203m"}],["path",{d:"M14 9h2",key:"116p9w"}]]),ac=i("antenna",[["path",{d:"M2 12 7 2",key:"117k30"}],["path",{d:"m7 12 5-10",key:"1tvx22"}],["path",{d:"m12 12 5-10",key:"ev1o1a"}],["path",{d:"m17 12 5-10",key:"1e4ti3"}],["path",{d:"M4.5 7h15",key:"vlsxkz"}],["path",{d:"M12 16v6",key:"c8a4gj"}]]),ad=i("anvil",[["path",{d:"M7 10H6a4 4 0 0 1-4-4 1 1 0 0 1 1-1h4",key:"1hjpb6"}],["path",{d:"M7 5a1 1 0 0 1 1-1h13a1 1 0 0 1 1 1 7 7 0 0 1-7 7H8a1 1 0 0 1-1-1z",key:"1qn45f"}],["path",{d:"M9 12v5",key:"3anwtq"}],["path",{d:"M15 12v5",key:"5xh3zn"}],["path",{d:"M5 20a3 3 0 0 1 3-3h8a3 3 0 0 1 3 3 1 1 0 0 1-1 1H6a1 1 0 0 1-1-1",key:"1fi4x8"}]]),ae=i("aperture",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"m14.31 8 5.74 9.94",key:"1y6ab4"}],["path",{d:"M9.69 8h11.48",key:"1wxppr"}],["path",{d:"m7.38 12 5.74-9.94",key:"1grp0k"}],["path",{d:"M9.69 16 3.95 6.06",key:"libnyf"}],["path",{d:"M14.31 16H2.83",key:"x5fava"}],["path",{d:"m16.62 12-5.74 9.94",key:"1vwawt"}]]),af=i("app-window-mac",[["rect",{width:"20",height:"16",x:"2",y:"4",rx:"2",key:"18n3k1"}],["path",{d:"M6 8h.01",key:"x9i8wu"}],["path",{d:"M10 8h.01",key:"1r9ogq"}],["path",{d:"M14 8h.01",key:"1primd"}]]),ag=i("app-window",[["rect",{x:"2",y:"4",width:"20",height:"16",rx:"2",key:"izxlao"}],["path",{d:"M10 4v4",key:"pp8u80"}],["path",{d:"M2 8h20",key:"d11cs7"}],["path",{d:"M6 4v4",key:"1svtjw"}]]),ah=i("apple",[["path",{d:"M12 20.94c1.5 0 2.75 1.06 4 1.06 3 0 6-8 6-12.22A4.91 4.91 0 0 0 17 5c-2.22 0-4 1.44-5 2-1-.56-2.78-2-5-2a4.9 4.9 0 0 0-5 4.78C2 14 5 22 8 22c1.25 0 2.5-1.06 4-1.06Z",key:"3s7exb"}],["path",{d:"M10 2c1 .5 2 2 2 5",key:"fcco2y"}]]),ai=i("archive-restore",[["rect",{width:"20",height:"5",x:"2",y:"3",rx:"1",key:"1wp1u1"}],["path",{d:"M4 8v11a2 2 0 0 0 2 2h2",key:"tvwodi"}],["path",{d:"M20 8v11a2 2 0 0 1-2 2h-2",key:"1gkqxj"}],["path",{d:"m9 15 3-3 3 3",key:"1pd0qc"}],["path",{d:"M12 12v9",key:"192myk"}]]),aj=i("archive-x",[["rect",{width:"20",height:"5",x:"2",y:"3",rx:"1",key:"1wp1u1"}],["path",{d:"M4 8v11a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8",key:"1s80jp"}],["path",{d:"m9.5 17 5-5",key:"nakeu6"}],["path",{d:"m9.5 12 5 5",key:"1hccrj"}]]),ak=i("archive",[["rect",{width:"20",height:"5",x:"2",y:"3",rx:"1",key:"1wp1u1"}],["path",{d:"M4 8v11a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8",key:"1s80jp"}],["path",{d:"M10 12h4",key:"a56b0p"}]]),al=i("armchair",[["path",{d:"M19 9V6a2 2 0 0 0-2-2H7a2 2 0 0 0-2 2v3",key:"irtipd"}],["path",{d:"M3 16a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-5a2 2 0 0 0-4 0v1.5a.5.5 0 0 1-.5.5h-9a.5.5 0 0 1-.5-.5V11a2 2 0 0 0-4 0z",key:"1qyhux"}],["path",{d:"M5 18v2",key:"ppbyun"}],["path",{d:"M19 18v2",key:"gy7782"}]]),am=i("arrow-big-down-dash",[["path",{d:"M15 5H9",key:"1tp3ed"}],["path",{d:"M15 9v3h4l-7 7-7-7h4V9z",key:"ncdc4b"}]]),an=i("arrow-big-down",[["path",{d:"M15 6v6h4l-7 7-7-7h4V6h6z",key:"1thax2"}]]),ao=i("arrow-big-left-dash",[["path",{d:"M19 15V9",key:"1hci5f"}],["path",{d:"M15 15h-3v4l-7-7 7-7v4h3v6z",key:"16tjna"}]]),ap=i("arrow-big-left",[["path",{d:"M18 15h-6v4l-7-7 7-7v4h6v6z",key:"lbrdak"}]]),aq=i("arrow-big-right-dash",[["path",{d:"M5 9v6",key:"158jrl"}],["path",{d:"M9 9h3V5l7 7-7 7v-4H9V9z",key:"1sg2xn"}]]),ar=i("arrow-big-right",[["path",{d:"M6 9h6V5l7 7-7 7v-4H6V9z",key:"7fvt9c"}]]),as=i("arrow-big-up-dash",[["path",{d:"M9 19h6",key:"456am0"}],["path",{d:"M9 15v-3H5l7-7 7 7h-4v3H9z",key:"1r2uve"}]]),at=i("arrow-big-up",[["path",{d:"M9 18v-6H5l7-7 7 7h-4v6H9z",key:"1x06kx"}]]),au=i("arrow-down-0-1",[["path",{d:"m3 16 4 4 4-4",key:"1co6wj"}],["path",{d:"M7 20V4",key:"1yoxec"}],["rect",{x:"15",y:"4",width:"4",height:"6",ry:"2",key:"1bwicg"}],["path",{d:"M17 20v-6h-2",key:"1qp1so"}],["path",{d:"M15 20h4",key:"1j968p"}]]),av=i("arrow-down-1-0",[["path",{d:"m3 16 4 4 4-4",key:"1co6wj"}],["path",{d:"M7 20V4",key:"1yoxec"}],["path",{d:"M17 10V4h-2",key:"zcsr5x"}],["path",{d:"M15 10h4",key:"id2lce"}],["rect",{x:"15",y:"14",width:"4",height:"6",ry:"2",key:"33xykx"}]]),aw=i("arrow-down-a-z",[["path",{d:"m3 16 4 4 4-4",key:"1co6wj"}],["path",{d:"M7 20V4",key:"1yoxec"}],["path",{d:"M20 8h-5",key:"1vsyxs"}],["path",{d:"M15 10V6.5a2.5 2.5 0 0 1 5 0V10",key:"ag13bf"}],["path",{d:"M15 14h5l-5 6h5",key:"ur5jdg"}]]),ax=i("arrow-down-from-line",[["path",{d:"M19 3H5",key:"1236rx"}],["path",{d:"M12 21V7",key:"gj6g52"}],["path",{d:"m6 15 6 6 6-6",key:"h15q88"}]]),ay=i("arrow-down-left",[["path",{d:"M17 7 7 17",key:"15tmo1"}],["path",{d:"M17 17H7V7",key:"1org7z"}]]),az=i("arrow-down-narrow-wide",[["path",{d:"m3 16 4 4 4-4",key:"1co6wj"}],["path",{d:"M7 20V4",key:"1yoxec"}],["path",{d:"M11 4h4",key:"6d7r33"}],["path",{d:"M11 8h7",key:"djye34"}],["path",{d:"M11 12h10",key:"1438ji"}]]),aA=i("arrow-down-right",[["path",{d:"m7 7 10 10",key:"1fmybs"}],["path",{d:"M17 7v10H7",key:"6fjiku"}]]),aB=i("arrow-down-to-dot",[["path",{d:"M12 2v14",key:"jyx4ut"}],["path",{d:"m19 9-7 7-7-7",key:"1oe3oy"}],["circle",{cx:"12",cy:"21",r:"1",key:"o0uj5v"}]]),aC=i("arrow-down-to-line",[["path",{d:"M12 17V3",key:"1cwfxf"}],["path",{d:"m6 11 6 6 6-6",key:"12ii2o"}],["path",{d:"M19 21H5",key:"150jfl"}]]),aD=i("arrow-down-up",[["path",{d:"m3 16 4 4 4-4",key:"1co6wj"}],["path",{d:"M7 20V4",key:"1yoxec"}],["path",{d:"m21 8-4-4-4 4",key:"1c9v7m"}],["path",{d:"M17 4v16",key:"7dpous"}]]),aE=i("arrow-down-wide-narrow",[["path",{d:"m3 16 4 4 4-4",key:"1co6wj"}],["path",{d:"M7 20V4",key:"1yoxec"}],["path",{d:"M11 4h10",key:"1w87gc"}],["path",{d:"M11 8h7",key:"djye34"}],["path",{d:"M11 12h4",key:"q8tih4"}]]),aF=i("arrow-down-z-a",[["path",{d:"m3 16 4 4 4-4",key:"1co6wj"}],["path",{d:"M7 4v16",key:"1glfcx"}],["path",{d:"M15 4h5l-5 6h5",key:"8asdl1"}],["path",{d:"M15 20v-3.5a2.5 2.5 0 0 1 5 0V20",key:"r6l5cz"}],["path",{d:"M20 18h-5",key:"18j1r2"}]]),aG=i("arrow-down",[["path",{d:"M12 5v14",key:"s699le"}],["path",{d:"m19 12-7 7-7-7",key:"1idqje"}]]),aH=i("arrow-left-from-line",[["path",{d:"m9 6-6 6 6 6",key:"7v63n9"}],["path",{d:"M3 12h14",key:"13k4hi"}],["path",{d:"M21 19V5",key:"b4bplr"}]]),aI=i("arrow-left-right",[["path",{d:"M8 3 4 7l4 4",key:"9rb6wj"}],["path",{d:"M4 7h16",key:"6tx8e3"}],["path",{d:"m16 21 4-4-4-4",key:"siv7j2"}],["path",{d:"M20 17H4",key:"h6l3hr"}]]),aJ=i("arrow-left-to-line",[["path",{d:"M3 19V5",key:"rwsyhb"}],["path",{d:"m13 6-6 6 6 6",key:"1yhaz7"}],["path",{d:"M7 12h14",key:"uoisry"}]]),aK=i("arrow-left",[["path",{d:"m12 19-7-7 7-7",key:"1l729n"}],["path",{d:"M19 12H5",key:"x3x0zl"}]]),aL=i("arrow-right-left",[["path",{d:"m16 3 4 4-4 4",key:"1x1c3m"}],["path",{d:"M20 7H4",key:"zbl0bi"}],["path",{d:"m8 21-4-4 4-4",key:"h9nckh"}],["path",{d:"M4 17h16",key:"g4d7ey"}]]),aM=i("arrow-right-to-line",[["path",{d:"M17 12H3",key:"8awo09"}],["path",{d:"m11 18 6-6-6-6",key:"8c2y43"}],["path",{d:"M21 5v14",key:"nzette"}]]),aN=i("arrow-right-from-line",[["path",{d:"M3 5v14",key:"1nt18q"}],["path",{d:"M21 12H7",key:"13ipq5"}],["path",{d:"m15 18 6-6-6-6",key:"6tx3qv"}]]),aO=i("arrow-right",[["path",{d:"M5 12h14",key:"1ays0h"}],["path",{d:"m12 5 7 7-7 7",key:"xquz4c"}]]),aP=i("arrow-up-0-1",[["path",{d:"m3 8 4-4 4 4",key:"11wl7u"}],["path",{d:"M7 4v16",key:"1glfcx"}],["rect",{x:"15",y:"4",width:"4",height:"6",ry:"2",key:"1bwicg"}],["path",{d:"M17 20v-6h-2",key:"1qp1so"}],["path",{d:"M15 20h4",key:"1j968p"}]]),aQ=i("arrow-up-1-0",[["path",{d:"m3 8 4-4 4 4",key:"11wl7u"}],["path",{d:"M7 4v16",key:"1glfcx"}],["path",{d:"M17 10V4h-2",key:"zcsr5x"}],["path",{d:"M15 10h4",key:"id2lce"}],["rect",{x:"15",y:"14",width:"4",height:"6",ry:"2",key:"33xykx"}]]),aR=i("arrow-up-a-z",[["path",{d:"m3 8 4-4 4 4",key:"11wl7u"}],["path",{d:"M7 4v16",key:"1glfcx"}],["path",{d:"M20 8h-5",key:"1vsyxs"}],["path",{d:"M15 10V6.5a2.5 2.5 0 0 1 5 0V10",key:"ag13bf"}],["path",{d:"M15 14h5l-5 6h5",key:"ur5jdg"}]]),aS=i("arrow-up-down",[["path",{d:"m21 16-4 4-4-4",key:"f6ql7i"}],["path",{d:"M17 20V4",key:"1ejh1v"}],["path",{d:"m3 8 4-4 4 4",key:"11wl7u"}],["path",{d:"M7 4v16",key:"1glfcx"}]]),aT=i("arrow-up-from-dot",[["path",{d:"m5 9 7-7 7 7",key:"1hw5ic"}],["path",{d:"M12 16V2",key:"ywoabb"}],["circle",{cx:"12",cy:"21",r:"1",key:"o0uj5v"}]]),aU=i("arrow-up-from-line",[["path",{d:"m18 9-6-6-6 6",key:"kcunyi"}],["path",{d:"M12 3v14",key:"7cf3v8"}],["path",{d:"M5 21h14",key:"11awu3"}]]),aV=i("arrow-up-left",[["path",{d:"M7 17V7h10",key:"11bw93"}],["path",{d:"M17 17 7 7",key:"2786uv"}]]),aW=i("arrow-up-narrow-wide",[["path",{d:"m3 8 4-4 4 4",key:"11wl7u"}],["path",{d:"M7 4v16",key:"1glfcx"}],["path",{d:"M11 12h4",key:"q8tih4"}],["path",{d:"M11 16h7",key:"uosisv"}],["path",{d:"M11 20h10",key:"jvxblo"}]]),aX=i("arrow-up-right",[["path",{d:"M7 7h10v10",key:"1tivn9"}],["path",{d:"M7 17 17 7",key:"1vkiza"}]]),aY=i("arrow-up-to-line",[["path",{d:"M5 3h14",key:"7usisc"}],["path",{d:"m18 13-6-6-6 6",key:"1kf1n9"}],["path",{d:"M12 7v14",key:"1akyts"}]]),aZ=i("arrow-up-wide-narrow",[["path",{d:"m3 8 4-4 4 4",key:"11wl7u"}],["path",{d:"M7 4v16",key:"1glfcx"}],["path",{d:"M11 12h10",key:"1438ji"}],["path",{d:"M11 16h7",key:"uosisv"}],["path",{d:"M11 20h4",key:"1krc32"}]]),a$=i("arrow-up-z-a",[["path",{d:"m3 8 4-4 4 4",key:"11wl7u"}],["path",{d:"M7 4v16",key:"1glfcx"}],["path",{d:"M15 4h5l-5 6h5",key:"8asdl1"}],["path",{d:"M15 20v-3.5a2.5 2.5 0 0 1 5 0V20",key:"r6l5cz"}],["path",{d:"M20 18h-5",key:"18j1r2"}]]),a_=i("arrow-up",[["path",{d:"m5 12 7-7 7 7",key:"hav0vg"}],["path",{d:"M12 19V5",key:"x0mq9r"}]]),a0=i("arrows-up-from-line",[["path",{d:"m4 6 3-3 3 3",key:"9aidw8"}],["path",{d:"M7 17V3",key:"19qxw1"}],["path",{d:"m14 6 3-3 3 3",key:"6iy689"}],["path",{d:"M17 17V3",key:"o0fmgi"}],["path",{d:"M4 21h16",key:"1h09gz"}]]),a1=i("asterisk",[["path",{d:"M12 6v12",key:"1vza4d"}],["path",{d:"M17.196 9 6.804 15",key:"1ah31z"}],["path",{d:"m6.804 9 10.392 6",key:"1b6pxd"}]]),a2=i("at-sign",[["circle",{cx:"12",cy:"12",r:"4",key:"4exip2"}],["path",{d:"M16 8v5a3 3 0 0 0 6 0v-1a10 10 0 1 0-4 8",key:"7n84p3"}]]),a3=i("atom",[["circle",{cx:"12",cy:"12",r:"1",key:"41hilf"}],["path",{d:"M20.2 20.2c2.04-2.03.02-7.36-4.5-11.9-4.54-4.52-9.87-6.54-11.9-4.5-2.04 2.03-.02 7.36 4.5 11.9 4.54 4.52 9.87 6.54 11.9 4.5Z",key:"1l2ple"}],["path",{d:"M15.7 15.7c4.52-4.54 6.54-9.87 4.5-11.9-2.03-2.04-7.36-.02-11.9 4.5-4.52 4.54-6.54 9.87-4.5 11.9 2.03 2.04 7.36.02 11.9-4.5Z",key:"1wam0m"}]]),a4=i("audio-lines",[["path",{d:"M2 10v3",key:"1fnikh"}],["path",{d:"M6 6v11",key:"11sgs0"}],["path",{d:"M10 3v18",key:"yhl04a"}],["path",{d:"M14 8v7",key:"3a1oy3"}],["path",{d:"M18 5v13",key:"123xd1"}],["path",{d:"M22 10v3",key:"154ddg"}]]),a5=i("audio-waveform",[["path",{d:"M2 13a2 2 0 0 0 2-2V7a2 2 0 0 1 4 0v13a2 2 0 0 0 4 0V4a2 2 0 0 1 4 0v13a2 2 0 0 0 4 0v-4a2 2 0 0 1 2-2",key:"57tc96"}]]),a6=i("award",[["path",{d:"m15.477 12.89 1.515 8.526a.5.5 0 0 1-.81.47l-3.58-2.687a1 1 0 0 0-1.197 0l-3.586 2.686a.5.5 0 0 1-.81-.469l1.514-8.526",key:"1yiouv"}],["circle",{cx:"12",cy:"8",r:"6",key:"1vp47v"}]]),a7=i("axe",[["path",{d:"m14 12-8.381 8.38a1 1 0 0 1-3.001-3L11 9",key:"5z9253"}],["path",{d:"M15 15.5a.5.5 0 0 0 .5.5A6.5 6.5 0 0 0 22 9.5a.5.5 0 0 0-.5-.5h-1.672a2 2 0 0 1-1.414-.586l-5.062-5.062a1.205 1.205 0 0 0-1.704 0L9.352 5.648a1.205 1.205 0 0 0 0 1.704l5.062 5.062A2 2 0 0 1 15 13.828z",key:"19zklq"}]]),a8=i("axis-3d",[["path",{d:"M13.5 10.5 15 9",key:"1nsxvm"}],["path",{d:"M4 4v15a1 1 0 0 0 1 1h15",key:"1w6lkd"}],["path",{d:"M4.293 19.707 6 18",key:"3g1p8c"}],["path",{d:"m9 15 1.5-1.5",key:"1xfbes"}]]),a9=i("baby",[["path",{d:"M10 16c.5.3 1.2.5 2 .5s1.5-.2 2-.5",key:"1u7htd"}],["path",{d:"M15 12h.01",key:"1k8ypt"}],["path",{d:"M19.38 6.813A9 9 0 0 1 20.8 10.2a2 2 0 0 1 0 3.6 9 9 0 0 1-17.6 0 2 2 0 0 1 0-3.6A9 9 0 0 1 12 3c2 0 3.5 1.1 3.5 2.5s-.9 2.5-2 2.5c-.8 0-1.5-.4-1.5-1",key:"11xh7x"}],["path",{d:"M9 12h.01",key:"157uk2"}]]),ba=i("backpack",[["path",{d:"M4 10a4 4 0 0 1 4-4h8a4 4 0 0 1 4 4v10a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2z",key:"1ol0lm"}],["path",{d:"M8 10h8",key:"c7uz4u"}],["path",{d:"M8 18h8",key:"1no2b1"}],["path",{d:"M8 22v-6a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v6",key:"1fr6do"}],["path",{d:"M9 6V4a2 2 0 0 1 2-2h2a2 2 0 0 1 2 2v2",key:"donm21"}]]),bb=i("badge-alert",[["path",{d:"M3.85 8.62a4 4 0 0 1 4.78-4.77 4 4 0 0 1 6.74 0 4 4 0 0 1 4.78 4.78 4 4 0 0 1 0 6.74 4 4 0 0 1-4.77 4.78 4 4 0 0 1-6.75 0 4 4 0 0 1-4.78-4.77 4 4 0 0 1 0-6.76Z",key:"3c2336"}],["line",{x1:"12",x2:"12",y1:"8",y2:"12",key:"1pkeuh"}],["line",{x1:"12",x2:"12.01",y1:"16",y2:"16",key:"4dfq90"}]]),bc=i("badge-cent",[["path",{d:"M3.85 8.62a4 4 0 0 1 4.78-4.77 4 4 0 0 1 6.74 0 4 4 0 0 1 4.78 4.78 4 4 0 0 1 0 6.74 4 4 0 0 1-4.77 4.78 4 4 0 0 1-6.75 0 4 4 0 0 1-4.78-4.77 4 4 0 0 1 0-6.76Z",key:"3c2336"}],["path",{d:"M12 7v10",key:"jspqdw"}],["path",{d:"M15.4 10a4 4 0 1 0 0 4",key:"2eqtx8"}]]),bd=i("badge-check",[["path",{d:"M3.85 8.62a4 4 0 0 1 4.78-4.77 4 4 0 0 1 6.74 0 4 4 0 0 1 4.78 4.78 4 4 0 0 1 0 6.74 4 4 0 0 1-4.77 4.78 4 4 0 0 1-6.75 0 4 4 0 0 1-4.78-4.77 4 4 0 0 1 0-6.76Z",key:"3c2336"}],["path",{d:"m9 12 2 2 4-4",key:"dzmm74"}]]),be=i("badge-dollar-sign",[["path",{d:"M3.85 8.62a4 4 0 0 1 4.78-4.77 4 4 0 0 1 6.74 0 4 4 0 0 1 4.78 4.78 4 4 0 0 1 0 6.74 4 4 0 0 1-4.77 4.78 4 4 0 0 1-6.75 0 4 4 0 0 1-4.78-4.77 4 4 0 0 1 0-6.76Z",key:"3c2336"}],["path",{d:"M16 8h-6a2 2 0 1 0 0 4h4a2 2 0 1 1 0 4H8",key:"1h4pet"}],["path",{d:"M12 18V6",key:"zqpxq5"}]]),bf=i("badge-euro",[["path",{d:"M3.85 8.62a4 4 0 0 1 4.78-4.77 4 4 0 0 1 6.74 0 4 4 0 0 1 4.78 4.78 4 4 0 0 1 0 6.74 4 4 0 0 1-4.77 4.78 4 4 0 0 1-6.75 0 4 4 0 0 1-4.78-4.77 4 4 0 0 1 0-6.76Z",key:"3c2336"}],["path",{d:"M7 12h5",key:"gblrwe"}],["path",{d:"M15 9.4a4 4 0 1 0 0 5.2",key:"1makmb"}]]),bg=i("badge-indian-rupee",[["path",{d:"M3.85 8.62a4 4 0 0 1 4.78-4.77 4 4 0 0 1 6.74 0 4 4 0 0 1 4.78 4.78 4 4 0 0 1 0 6.74 4 4 0 0 1-4.77 4.78 4 4 0 0 1-6.75 0 4 4 0 0 1-4.78-4.77 4 4 0 0 1 0-6.76Z",key:"3c2336"}],["path",{d:"M8 8h8",key:"1bis0t"}],["path",{d:"M8 12h8",key:"1wcyev"}],["path",{d:"m13 17-5-1h1a4 4 0 0 0 0-8",key:"nu2bwa"}]]),bh=i("badge-info",[["path",{d:"M3.85 8.62a4 4 0 0 1 4.78-4.77 4 4 0 0 1 6.74 0 4 4 0 0 1 4.78 4.78 4 4 0 0 1 0 6.74 4 4 0 0 1-4.77 4.78 4 4 0 0 1-6.75 0 4 4 0 0 1-4.78-4.77 4 4 0 0 1 0-6.76Z",key:"3c2336"}],["line",{x1:"12",x2:"12",y1:"16",y2:"12",key:"1y1yb1"}],["line",{x1:"12",x2:"12.01",y1:"8",y2:"8",key:"110wyk"}]]),bi=i("badge-japanese-yen",[["path",{d:"M3.85 8.62a4 4 0 0 1 4.78-4.77 4 4 0 0 1 6.74 0 4 4 0 0 1 4.78 4.78 4 4 0 0 1 0 6.74 4 4 0 0 1-4.77 4.78 4 4 0 0 1-6.75 0 4 4 0 0 1-4.78-4.77 4 4 0 0 1 0-6.76Z",key:"3c2336"}],["path",{d:"m9 8 3 3v7",key:"17yadx"}],["path",{d:"m12 11 3-3",key:"p4cfq1"}],["path",{d:"M9 12h6",key:"1c52cq"}],["path",{d:"M9 16h6",key:"8wimt3"}]]),bj=i("badge-minus",[["path",{d:"M3.85 8.62a4 4 0 0 1 4.78-4.77 4 4 0 0 1 6.74 0 4 4 0 0 1 4.78 4.78 4 4 0 0 1 0 6.74 4 4 0 0 1-4.77 4.78 4 4 0 0 1-6.75 0 4 4 0 0 1-4.78-4.77 4 4 0 0 1 0-6.76Z",key:"3c2336"}],["line",{x1:"8",x2:"16",y1:"12",y2:"12",key:"1jonct"}]]),bk=i("badge-percent",[["path",{d:"M3.85 8.62a4 4 0 0 1 4.78-4.77 4 4 0 0 1 6.74 0 4 4 0 0 1 4.78 4.78 4 4 0 0 1 0 6.74 4 4 0 0 1-4.77 4.78 4 4 0 0 1-6.75 0 4 4 0 0 1-4.78-4.77 4 4 0 0 1 0-6.76Z",key:"3c2336"}],["path",{d:"m15 9-6 6",key:"1uzhvr"}],["path",{d:"M9 9h.01",key:"1q5me6"}],["path",{d:"M15 15h.01",key:"lqbp3k"}]]),bl=i("badge-plus",[["path",{d:"M3.85 8.62a4 4 0 0 1 4.78-4.77 4 4 0 0 1 6.74 0 4 4 0 0 1 4.78 4.78 4 4 0 0 1 0 6.74 4 4 0 0 1-4.77 4.78 4 4 0 0 1-6.75 0 4 4 0 0 1-4.78-4.77 4 4 0 0 1 0-6.76Z",key:"3c2336"}],["line",{x1:"12",x2:"12",y1:"8",y2:"16",key:"10p56q"}],["line",{x1:"8",x2:"16",y1:"12",y2:"12",key:"1jonct"}]]),bm=i("badge-pound-sterling",[["path",{d:"M3.85 8.62a4 4 0 0 1 4.78-4.77 4 4 0 0 1 6.74 0 4 4 0 0 1 4.78 4.78 4 4 0 0 1 0 6.74 4 4 0 0 1-4.77 4.78 4 4 0 0 1-6.75 0 4 4 0 0 1-4.78-4.77 4 4 0 0 1 0-6.76Z",key:"3c2336"}],["path",{d:"M8 12h4",key:"qz6y1c"}],["path",{d:"M10 16V9.5a2.5 2.5 0 0 1 5 0",key:"3mlbjk"}],["path",{d:"M8 16h7",key:"sbedsn"}]]),bn=i("badge-question-mark",[["path",{d:"M3.85 8.62a4 4 0 0 1 4.78-4.77 4 4 0 0 1 6.74 0 4 4 0 0 1 4.78 4.78 4 4 0 0 1 0 6.74 4 4 0 0 1-4.77 4.78 4 4 0 0 1-6.75 0 4 4 0 0 1-4.78-4.77 4 4 0 0 1 0-6.76Z",key:"3c2336"}],["path",{d:"M9.09 9a3 3 0 0 1 5.83 1c0 2-3 3-3 3",key:"1u773s"}],["line",{x1:"12",x2:"12.01",y1:"17",y2:"17",key:"io3f8k"}]]),bo=i("badge-russian-ruble",[["path",{d:"M3.85 8.62a4 4 0 0 1 4.78-4.77 4 4 0 0 1 6.74 0 4 4 0 0 1 4.78 4.78 4 4 0 0 1 0 6.74 4 4 0 0 1-4.77 4.78 4 4 0 0 1-6.75 0 4 4 0 0 1-4.78-4.77 4 4 0 0 1 0-6.76Z",key:"3c2336"}],["path",{d:"M9 16h5",key:"1syiyw"}],["path",{d:"M9 12h5a2 2 0 1 0 0-4h-3v9",key:"1ge9c1"}]]),bp=i("badge-swiss-franc",[["path",{d:"M3.85 8.62a4 4 0 0 1 4.78-4.77 4 4 0 0 1 6.74 0 4 4 0 0 1 4.78 4.78 4 4 0 0 1 0 6.74 4 4 0 0 1-4.77 4.78 4 4 0 0 1-6.75 0 4 4 0 0 1-4.78-4.77 4 4 0 0 1 0-6.76Z",key:"3c2336"}],["path",{d:"M11 17V8h4",key:"1bfq6y"}],["path",{d:"M11 12h3",key:"2eqnfz"}],["path",{d:"M9 16h4",key:"1skf3a"}]]),bq=i("badge-x",[["path",{d:"M3.85 8.62a4 4 0 0 1 4.78-4.77 4 4 0 0 1 6.74 0 4 4 0 0 1 4.78 4.78 4 4 0 0 1 0 6.74 4 4 0 0 1-4.77 4.78 4 4 0 0 1-6.75 0 4 4 0 0 1-4.78-4.77 4 4 0 0 1 0-6.76Z",key:"3c2336"}],["line",{x1:"15",x2:"9",y1:"9",y2:"15",key:"f7djnv"}],["line",{x1:"9",x2:"15",y1:"9",y2:"15",key:"1shsy8"}]]),br=i("badge",[["path",{d:"M3.85 8.62a4 4 0 0 1 4.78-4.77 4 4 0 0 1 6.74 0 4 4 0 0 1 4.78 4.78 4 4 0 0 1 0 6.74 4 4 0 0 1-4.77 4.78 4 4 0 0 1-6.75 0 4 4 0 0 1-4.78-4.77 4 4 0 0 1 0-6.76Z",key:"3c2336"}]]),bs=i("baggage-claim",[["path",{d:"M22 18H6a2 2 0 0 1-2-2V7a2 2 0 0 0-2-2",key:"4irg2o"}],["path",{d:"M17 14V4a2 2 0 0 0-2-2h-1a2 2 0 0 0-2 2v10",key:"14fcyx"}],["rect",{width:"13",height:"8",x:"8",y:"6",rx:"1",key:"o6oiis"}],["circle",{cx:"18",cy:"20",r:"2",key:"t9985n"}],["circle",{cx:"9",cy:"20",r:"2",key:"e5v82j"}]]),bt=i("ban",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"m4.9 4.9 14.2 14.2",key:"1m5liu"}]]),bu=i("banana",[["path",{d:"M4 13c3.5-2 8-2 10 2a5.5 5.5 0 0 1 8 5",key:"1cscit"}],["path",{d:"M5.15 17.89c5.52-1.52 8.65-6.89 7-12C11.55 4 11.5 2 13 2c3.22 0 5 5.5 5 8 0 6.5-4.2 12-10.49 12C5.11 22 2 22 2 20c0-1.5 1.14-1.55 3.15-2.11Z",key:"1y1nbv"}]]),bv=i("bandage",[["path",{d:"M10 10.01h.01",key:"1e9xi7"}],["path",{d:"M10 14.01h.01",key:"ac23bv"}],["path",{d:"M14 10.01h.01",key:"2wfrvf"}],["path",{d:"M14 14.01h.01",key:"8tw8yn"}],["path",{d:"M18 6v11.5",key:"dkbidh"}],["path",{d:"M6 6v12",key:"vkc79e"}],["rect",{x:"2",y:"6",width:"20",height:"12",rx:"2",key:"1wpnh2"}]]),bw=i("banknote-arrow-down",[["path",{d:"M12 18H4a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2v5",key:"x6cv4u"}],["path",{d:"m16 19 3 3 3-3",key:"1ibux0"}],["path",{d:"M18 12h.01",key:"yjnet6"}],["path",{d:"M19 16v6",key:"tddt3s"}],["path",{d:"M6 12h.01",key:"c2rlol"}],["circle",{cx:"12",cy:"12",r:"2",key:"1c9p78"}]]),bx=i("banknote-arrow-up",[["path",{d:"M12 18H4a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2v5",key:"x6cv4u"}],["path",{d:"M18 12h.01",key:"yjnet6"}],["path",{d:"M19 22v-6",key:"qhmiwi"}],["path",{d:"m22 19-3-3-3 3",key:"rn6bg2"}],["path",{d:"M6 12h.01",key:"c2rlol"}],["circle",{cx:"12",cy:"12",r:"2",key:"1c9p78"}]]),by=i("banknote-x",[["path",{d:"M13 18H4a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2v5",key:"16nib6"}],["path",{d:"m17 17 5 5",key:"p7ous7"}],["path",{d:"M18 12h.01",key:"yjnet6"}],["path",{d:"m22 17-5 5",key:"gqnmv0"}],["path",{d:"M6 12h.01",key:"c2rlol"}],["circle",{cx:"12",cy:"12",r:"2",key:"1c9p78"}]]),bz=i("barcode",[["path",{d:"M3 5v14",key:"1nt18q"}],["path",{d:"M8 5v14",key:"1ybrkv"}],["path",{d:"M12 5v14",key:"s699le"}],["path",{d:"M17 5v14",key:"ycjyhj"}],["path",{d:"M21 5v14",key:"nzette"}]]),bA=i("banknote",[["rect",{width:"20",height:"12",x:"2",y:"6",rx:"2",key:"9lu3g6"}],["circle",{cx:"12",cy:"12",r:"2",key:"1c9p78"}],["path",{d:"M6 12h.01M18 12h.01",key:"113zkx"}]]),bB=i("barrel",[["path",{d:"M10 3a41 41 0 0 0 0 18",key:"1qcnzb"}],["path",{d:"M14 3a41 41 0 0 1 0 18",key:"547vd4"}],["path",{d:"M17 3a2 2 0 0 1 1.68.92 15.25 15.25 0 0 1 0 16.16A2 2 0 0 1 17 21H7a2 2 0 0 1-1.68-.92 15.25 15.25 0 0 1 0-16.16A2 2 0 0 1 7 3z",key:"1wepyy"}],["path",{d:"M3.84 17h16.32",key:"1wh981"}],["path",{d:"M3.84 7h16.32",key:"19jf4x"}]]),bC=i("baseline",[["path",{d:"M4 20h16",key:"14thso"}],["path",{d:"m6 16 6-12 6 12",key:"1b4byz"}],["path",{d:"M8 12h8",key:"1wcyev"}]]),bD=i("bath",[["path",{d:"M10 4 8 6",key:"1rru8s"}],["path",{d:"M17 19v2",key:"ts1sot"}],["path",{d:"M2 12h20",key:"9i4pu4"}],["path",{d:"M7 19v2",key:"12npes"}],["path",{d:"M9 5 7.621 3.621A2.121 2.121 0 0 0 4 5v12a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2v-5",key:"14ym8i"}]]),bE=i("battery-charging",[["path",{d:"m11 7-3 5h4l-3 5",key:"b4a64w"}],["path",{d:"M14.856 6H16a2 2 0 0 1 2 2v8a2 2 0 0 1-2 2h-2.935",key:"lre1cr"}],["path",{d:"M22 14v-4",key:"14q9d5"}],["path",{d:"M5.14 18H4a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h2.936",key:"13q5k0"}]]),bF=i("battery-full",[["path",{d:"M10 10v4",key:"1mb2ec"}],["path",{d:"M14 10v4",key:"1nt88p"}],["path",{d:"M22 14v-4",key:"14q9d5"}],["path",{d:"M6 10v4",key:"1n77qd"}],["rect",{x:"2",y:"6",width:"16",height:"12",rx:"2",key:"13zb55"}]]),bG=i("battery-low",[["path",{d:"M22 14v-4",key:"14q9d5"}],["path",{d:"M6 14v-4",key:"14a6bd"}],["rect",{x:"2",y:"6",width:"16",height:"12",rx:"2",key:"13zb55"}]]),bH=i("battery-medium",[["path",{d:"M10 14v-4",key:"suye4c"}],["path",{d:"M22 14v-4",key:"14q9d5"}],["path",{d:"M6 14v-4",key:"14a6bd"}],["rect",{x:"2",y:"6",width:"16",height:"12",rx:"2",key:"13zb55"}]]),bI=i("battery-plus",[["path",{d:"M10 9v6",key:"17i7lo"}],["path",{d:"M12.543 6H16a2 2 0 0 1 2 2v8a2 2 0 0 1-2 2h-3.605",key:"o09yah"}],["path",{d:"M22 14v-4",key:"14q9d5"}],["path",{d:"M7 12h6",key:"iekk3h"}],["path",{d:"M7.606 18H4a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h3.606",key:"xyqvf1"}]]),bJ=i("battery-warning",[["path",{d:"M10 17h.01",key:"nbq80n"}],["path",{d:"M10 7v6",key:"nne03l"}],["path",{d:"M14 6h2a2 2 0 0 1 2 2v8a2 2 0 0 1-2 2h-2",key:"1m83kb"}],["path",{d:"M22 14v-4",key:"14q9d5"}],["path",{d:"M6 18H4a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h2",key:"h8lgfh"}]]),bK=i("battery",[["path",{d:"M 22 14 L 22 10",key:"nqc4tb"}],["rect",{x:"2",y:"6",width:"16",height:"12",rx:"2",key:"13zb55"}]]),bL=i("beaker",[["path",{d:"M4.5 3h15",key:"c7n0jr"}],["path",{d:"M6 3v16a2 2 0 0 0 2 2h8a2 2 0 0 0 2-2V3",key:"m1uhx7"}],["path",{d:"M6 14h12",key:"4cwo0f"}]]),bM=i("bean-off",[["path",{d:"M9 9c-.64.64-1.521.954-2.402 1.165A6 6 0 0 0 8 22a13.96 13.96 0 0 0 9.9-4.1",key:"bq3udt"}],["path",{d:"M10.75 5.093A6 6 0 0 1 22 8c0 2.411-.61 4.68-1.683 6.66",key:"17ccse"}],["path",{d:"M5.341 10.62a4 4 0 0 0 6.487 1.208M10.62 5.341a4.015 4.015 0 0 1 2.039 2.04",key:"18zqgq"}],["line",{x1:"2",x2:"22",y1:"2",y2:"22",key:"a6p6uj"}]]),bN=i("bed-double",[["path",{d:"M2 20v-8a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2v8",key:"1k78r4"}],["path",{d:"M4 10V6a2 2 0 0 1 2-2h12a2 2 0 0 1 2 2v4",key:"fb3tl2"}],["path",{d:"M12 4v6",key:"1dcgq2"}],["path",{d:"M2 18h20",key:"ajqnye"}]]),bO=i("bean",[["path",{d:"M10.165 6.598C9.954 7.478 9.64 8.36 9 9c-.64.64-1.521.954-2.402 1.165A6 6 0 0 0 8 22c7.732 0 14-6.268 14-14a6 6 0 0 0-11.835-1.402Z",key:"1tvzk7"}],["path",{d:"M5.341 10.62a4 4 0 1 0 5.279-5.28",key:"2cyri2"}]]),bP=i("bed-single",[["path",{d:"M3 20v-8a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2v8",key:"1wm6mi"}],["path",{d:"M5 10V6a2 2 0 0 1 2-2h10a2 2 0 0 1 2 2v4",key:"4k93s5"}],["path",{d:"M3 18h18",key:"1h113x"}]]),bQ=i("bed",[["path",{d:"M2 4v16",key:"vw9hq8"}],["path",{d:"M2 8h18a2 2 0 0 1 2 2v10",key:"1dgv2r"}],["path",{d:"M2 17h20",key:"18nfp3"}],["path",{d:"M6 8v9",key:"1yriud"}]]),bR=i("beer-off",[["path",{d:"M13 13v5",key:"igwfh0"}],["path",{d:"M17 11.47V8",key:"16yw0g"}],["path",{d:"M17 11h1a3 3 0 0 1 2.745 4.211",key:"1xbt65"}],["path",{d:"m2 2 20 20",key:"1ooewy"}],["path",{d:"M5 8v12a2 2 0 0 0 2 2h8a2 2 0 0 0 2-2v-3",key:"c55o3e"}],["path",{d:"M7.536 7.535C6.766 7.649 6.154 8 5.5 8a2.5 2.5 0 0 1-1.768-4.268",key:"1ydug7"}],["path",{d:"M8.727 3.204C9.306 2.767 9.885 2 11 2c1.56 0 2 1.5 3 1.5s1.72-.5 2.5-.5a1 1 0 1 1 0 5c-.78 0-1.5-.5-2.5-.5a3.149 3.149 0 0 0-.842.12",key:"q81o7q"}],["path",{d:"M9 14.6V18",key:"20ek98"}]]),bS=i("beef",[["path",{d:"M16.4 13.7A6.5 6.5 0 1 0 6.28 6.6c-1.1 3.13-.78 3.9-3.18 6.08A3 3 0 0 0 5 18c4 0 8.4-1.8 11.4-4.3",key:"cisjcv"}],["path",{d:"m18.5 6 2.19 4.5a6.48 6.48 0 0 1-2.29 7.2C15.4 20.2 11 22 7 22a3 3 0 0 1-2.68-1.66L2.4 16.5",key:"5byaag"}],["circle",{cx:"12.5",cy:"8.5",r:"2.5",key:"9738u8"}]]),bT=i("beer",[["path",{d:"M17 11h1a3 3 0 0 1 0 6h-1",key:"1yp76v"}],["path",{d:"M9 12v6",key:"1u1cab"}],["path",{d:"M13 12v6",key:"1sugkk"}],["path",{d:"M14 7.5c-1 0-1.44.5-3 .5s-2-.5-3-.5-1.72.5-2.5.5a2.5 2.5 0 0 1 0-5c.78 0 1.57.5 2.5.5S9.44 2 11 2s2 1.5 3 1.5 1.72-.5 2.5-.5a2.5 2.5 0 0 1 0 5c-.78 0-1.5-.5-2.5-.5Z",key:"1510fo"}],["path",{d:"M5 8v12a2 2 0 0 0 2 2h8a2 2 0 0 0 2-2V8",key:"19jb7n"}]]),bU=i("bell-dot",[["path",{d:"M10.268 21a2 2 0 0 0 3.464 0",key:"vwvbt9"}],["path",{d:"M13.916 2.314A6 6 0 0 0 6 8c0 4.499-1.411 5.956-2.74 7.327A1 1 0 0 0 4 17h16a1 1 0 0 0 .74-1.673 9 9 0 0 1-.585-.665",key:"1tip0g"}],["circle",{cx:"18",cy:"8",r:"3",key:"1g0gzu"}]]),bV=i("bell-electric",[["path",{d:"M18.518 17.347A7 7 0 0 1 14 19",key:"1emhpo"}],["path",{d:"M18.8 4A11 11 0 0 1 20 9",key:"127b67"}],["path",{d:"M9 9h.01",key:"1q5me6"}],["circle",{cx:"20",cy:"16",r:"2",key:"1v9bxh"}],["circle",{cx:"9",cy:"9",r:"7",key:"p2h5vp"}],["rect",{x:"4",y:"16",width:"10",height:"6",rx:"2",key:"bfnviv"}]]),bW=i("bell-minus",[["path",{d:"M10.268 21a2 2 0 0 0 3.464 0",key:"vwvbt9"}],["path",{d:"M15 8h6",key:"8ybuxh"}],["path",{d:"M16.243 3.757A6 6 0 0 0 6 8c0 4.499-1.411 5.956-2.738 7.326A1 1 0 0 0 4 17h16a1 1 0 0 0 .74-1.673A9.4 9.4 0 0 1 18.667 12",key:"bdwj86"}]]),bX=i("bell-off",[["path",{d:"M10.268 21a2 2 0 0 0 3.464 0",key:"vwvbt9"}],["path",{d:"M17 17H4a1 1 0 0 1-.74-1.673C4.59 13.956 6 12.499 6 8a6 6 0 0 1 .258-1.742",key:"178tsu"}],["path",{d:"m2 2 20 20",key:"1ooewy"}],["path",{d:"M8.668 3.01A6 6 0 0 1 18 8c0 2.687.77 4.653 1.707 6.05",key:"1hqiys"}]]),bY=i("bell-plus",[["path",{d:"M10.268 21a2 2 0 0 0 3.464 0",key:"vwvbt9"}],["path",{d:"M15 8h6",key:"8ybuxh"}],["path",{d:"M18 5v6",key:"g5ayrv"}],["path",{d:"M20.002 14.464a9 9 0 0 0 .738.863A1 1 0 0 1 20 17H4a1 1 0 0 1-.74-1.673C4.59 13.956 6 12.499 6 8a6 6 0 0 1 8.75-5.332",key:"1abcvy"}]]),bZ=i("bell-ring",[["path",{d:"M10.268 21a2 2 0 0 0 3.464 0",key:"vwvbt9"}],["path",{d:"M22 8c0-2.3-.8-4.3-2-6",key:"5bb3ad"}],["path",{d:"M3.262 15.326A1 1 0 0 0 4 17h16a1 1 0 0 0 .74-1.673C19.41 13.956 18 12.499 18 8A6 6 0 0 0 6 8c0 4.499-1.411 5.956-2.738 7.326",key:"11g9vi"}],["path",{d:"M4 2C2.8 3.7 2 5.7 2 8",key:"tap9e0"}]]),b$=i("bell",[["path",{d:"M10.268 21a2 2 0 0 0 3.464 0",key:"vwvbt9"}],["path",{d:"M3.262 15.326A1 1 0 0 0 4 17h16a1 1 0 0 0 .74-1.673C19.41 13.956 18 12.499 18 8A6 6 0 0 0 6 8c0 4.499-1.411 5.956-2.738 7.326",key:"11g9vi"}]]),b_=i("between-horizontal-end",[["rect",{width:"13",height:"7",x:"3",y:"3",rx:"1",key:"11xb64"}],["path",{d:"m22 15-3-3 3-3",key:"26chmm"}],["rect",{width:"13",height:"7",x:"3",y:"14",rx:"1",key:"k6ky7n"}]]),b0=i("between-horizontal-start",[["rect",{width:"13",height:"7",x:"8",y:"3",rx:"1",key:"pkso9a"}],["path",{d:"m2 9 3 3-3 3",key:"1agib5"}],["rect",{width:"13",height:"7",x:"8",y:"14",rx:"1",key:"1q5fc1"}]]),b1=i("between-vertical-end",[["rect",{width:"7",height:"13",x:"3",y:"3",rx:"1",key:"1fdu0f"}],["path",{d:"m9 22 3-3 3 3",key:"17z65a"}],["rect",{width:"7",height:"13",x:"14",y:"3",rx:"1",key:"1squn4"}]]),b2=i("between-vertical-start",[["rect",{width:"7",height:"13",x:"3",y:"8",rx:"1",key:"1fjrkv"}],["path",{d:"m15 2-3 3-3-3",key:"1uh6eb"}],["rect",{width:"7",height:"13",x:"14",y:"8",rx:"1",key:"w3fjg8"}]]),b3=i("biceps-flexed",[["path",{d:"M12.409 13.017A5 5 0 0 1 22 15c0 3.866-4 7-9 7-4.077 0-8.153-.82-10.371-2.462-.426-.316-.631-.832-.62-1.362C2.118 12.723 2.627 2 10 2a3 3 0 0 1 3 3 2 2 0 0 1-2 2c-1.105 0-1.64-.444-2-1",key:"1pmlyh"}],["path",{d:"M15 14a5 5 0 0 0-7.584 2",key:"5rb254"}],["path",{d:"M9.964 6.825C8.019 7.977 9.5 13 8 15",key:"kbvsx9"}]]),b4=i("bike",[["circle",{cx:"18.5",cy:"17.5",r:"3.5",key:"15x4ox"}],["circle",{cx:"5.5",cy:"17.5",r:"3.5",key:"1noe27"}],["circle",{cx:"15",cy:"5",r:"1",key:"19l28e"}],["path",{d:"M12 17.5V14l-3-3 4-3 2 3h2",key:"1npguv"}]]),b5=i("binary",[["rect",{x:"14",y:"14",width:"4",height:"6",rx:"2",key:"p02svl"}],["rect",{x:"6",y:"4",width:"4",height:"6",rx:"2",key:"xm4xkj"}],["path",{d:"M6 20h4",key:"1i6q5t"}],["path",{d:"M14 10h4",key:"ru81e7"}],["path",{d:"M6 14h2v6",key:"16z9wg"}],["path",{d:"M14 4h2v6",key:"1idq9u"}]]),b6=i("binoculars",[["path",{d:"M10 10h4",key:"tcdvrf"}],["path",{d:"M19 7V4a1 1 0 0 0-1-1h-2a1 1 0 0 0-1 1v3",key:"3apit1"}],["path",{d:"M20 21a2 2 0 0 0 2-2v-3.851c0-1.39-2-2.962-2-4.829V8a1 1 0 0 0-1-1h-4a1 1 0 0 0-1 1v11a2 2 0 0 0 2 2z",key:"rhpgnw"}],["path",{d:"M 22 16 L 2 16",key:"14lkq7"}],["path",{d:"M4 21a2 2 0 0 1-2-2v-3.851c0-1.39 2-2.962 2-4.829V8a1 1 0 0 1 1-1h4a1 1 0 0 1 1 1v11a2 2 0 0 1-2 2z",key:"104b3k"}],["path",{d:"M9 7V4a1 1 0 0 0-1-1H6a1 1 0 0 0-1 1v3",key:"14fczp"}]]),b7=i("biohazard",[["circle",{cx:"12",cy:"11.9",r:"2",key:"e8h31w"}],["path",{d:"M6.7 3.4c-.9 2.5 0 5.2 2.2 6.7C6.5 9 3.7 9.6 2 11.6",key:"17bolr"}],["path",{d:"m8.9 10.1 1.4.8",key:"15ezny"}],["path",{d:"M17.3 3.4c.9 2.5 0 5.2-2.2 6.7 2.4-1.2 5.2-.6 6.9 1.5",key:"wtwa5u"}],["path",{d:"m15.1 10.1-1.4.8",key:"1r0b28"}],["path",{d:"M16.7 20.8c-2.6-.4-4.6-2.6-4.7-5.3-.2 2.6-2.1 4.8-4.7 5.2",key:"m7qszh"}],["path",{d:"M12 13.9v1.6",key:"zfyyim"}],["path",{d:"M13.5 5.4c-1-.2-2-.2-3 0",key:"1bi9q0"}],["path",{d:"M17 16.4c.7-.7 1.2-1.6 1.5-2.5",key:"1rhjqw"}],["path",{d:"M5.5 13.9c.3.9.8 1.8 1.5 2.5",key:"8gsud3"}]]),b8=i("bird",[["path",{d:"M16 7h.01",key:"1kdx03"}],["path",{d:"M3.4 18H12a8 8 0 0 0 8-8V7a4 4 0 0 0-7.28-2.3L2 20",key:"oj1oa8"}],["path",{d:"m20 7 2 .5-2 .5",key:"12nv4d"}],["path",{d:"M10 18v3",key:"1yea0a"}],["path",{d:"M14 17.75V21",key:"1pymcb"}],["path",{d:"M7 18a6 6 0 0 0 3.84-10.61",key:"1npnn0"}]]),b9=i("bitcoin",[["path",{d:"M11.767 19.089c4.924.868 6.14-6.025 1.216-6.894m-1.216 6.894L5.86 18.047m5.908 1.042-.347 1.97m1.563-8.864c4.924.869 6.14-6.025 1.215-6.893m-1.215 6.893-3.94-.694m5.155-6.2L8.29 4.26m5.908 1.042.348-1.97M7.48 20.364l3.126-17.727",key:"yr8idg"}]]),ca=i("blend",[["circle",{cx:"9",cy:"9",r:"7",key:"p2h5vp"}],["circle",{cx:"15",cy:"15",r:"7",key:"19ennj"}]]),cb=i("blinds",[["path",{d:"M3 3h18",key:"o7r712"}],["path",{d:"M20 7H8",key:"gd2fo2"}],["path",{d:"M20 11H8",key:"1ynp89"}],["path",{d:"M10 19h10",key:"19hjk5"}],["path",{d:"M8 15h12",key:"1yqzne"}],["path",{d:"M4 3v14",key:"fggqzn"}],["circle",{cx:"4",cy:"19",r:"2",key:"p3m9r0"}]]),cc=i("blocks",[["path",{d:"M10 22V7a1 1 0 0 0-1-1H4a2 2 0 0 0-2 2v12a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2v-5a1 1 0 0 0-1-1H2",key:"1ah6g2"}],["rect",{x:"14",y:"2",width:"8",height:"8",rx:"1",key:"88lufb"}]]),cd=i("bluetooth-connected",[["path",{d:"m7 7 10 10-5 5V2l5 5L7 17",key:"1q5490"}],["line",{x1:"18",x2:"21",y1:"12",y2:"12",key:"1rsjjs"}],["line",{x1:"3",x2:"6",y1:"12",y2:"12",key:"11yl8c"}]]),ce=i("bluetooth-off",[["path",{d:"m17 17-5 5V12l-5 5",key:"v5aci6"}],["path",{d:"m2 2 20 20",key:"1ooewy"}],["path",{d:"M14.5 9.5 17 7l-5-5v4.5",key:"1kddfz"}]]),cf=i("bluetooth-searching",[["path",{d:"m7 7 10 10-5 5V2l5 5L7 17",key:"1q5490"}],["path",{d:"M20.83 14.83a4 4 0 0 0 0-5.66",key:"k8tn1j"}],["path",{d:"M18 12h.01",key:"yjnet6"}]]),cg=i("bluetooth",[["path",{d:"m7 7 10 10-5 5V2l5 5L7 17",key:"1q5490"}]]),ch=i("bold",[["path",{d:"M6 12h9a4 4 0 0 1 0 8H7a1 1 0 0 1-1-1V5a1 1 0 0 1 1-1h7a4 4 0 0 1 0 8",key:"mg9rjx"}]]),ci=i("bolt",[["path",{d:"M21 16V8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73l7 4a2 2 0 0 0 2 0l7-4A2 2 0 0 0 21 16z",key:"yt0hxn"}],["circle",{cx:"12",cy:"12",r:"4",key:"4exip2"}]]),cj=i("bomb",[["circle",{cx:"11",cy:"13",r:"9",key:"hd149"}],["path",{d:"M14.35 4.65 16.3 2.7a2.41 2.41 0 0 1 3.4 0l1.6 1.6a2.4 2.4 0 0 1 0 3.4l-1.95 1.95",key:"jp4j1b"}],["path",{d:"m22 2-1.5 1.5",key:"ay92ug"}]]),ck=i("bone",[["path",{d:"M17 10c.7-.7 1.69 0 2.5 0a2.5 2.5 0 1 0 0-5 .5.5 0 0 1-.5-.5 2.5 2.5 0 1 0-5 0c0 .81.7 1.8 0 2.5l-7 7c-.7.7-1.69 0-2.5 0a2.5 2.5 0 0 0 0 5c.28 0 .5.22.5.5a2.5 2.5 0 1 0 5 0c0-.81-.7-1.8 0-2.5Z",key:"w610uw"}]]),cl=i("book-a",[["path",{d:"M4 19.5v-15A2.5 2.5 0 0 1 6.5 2H19a1 1 0 0 1 1 1v18a1 1 0 0 1-1 1H6.5a1 1 0 0 1 0-5H20",key:"k3hazp"}],["path",{d:"m8 13 4-7 4 7",key:"4rari8"}],["path",{d:"M9.1 11h5.7",key:"1gkovt"}]]),cm=i("book-audio",[["path",{d:"M12 6v7",key:"1f6ttz"}],["path",{d:"M16 8v3",key:"gejaml"}],["path",{d:"M4 19.5v-15A2.5 2.5 0 0 1 6.5 2H19a1 1 0 0 1 1 1v18a1 1 0 0 1-1 1H6.5a1 1 0 0 1 0-5H20",key:"k3hazp"}],["path",{d:"M8 8v3",key:"1qzp49"}]]),cn=i("book-alert",[["path",{d:"M12 13h.01",key:"y0uutt"}],["path",{d:"M12 6v3",key:"1m4b9j"}],["path",{d:"M4 19.5v-15A2.5 2.5 0 0 1 6.5 2H19a1 1 0 0 1 1 1v18a1 1 0 0 1-1 1H6.5a1 1 0 0 1 0-5H20",key:"k3hazp"}]]),co=i("book-check",[["path",{d:"M4 19.5v-15A2.5 2.5 0 0 1 6.5 2H19a1 1 0 0 1 1 1v18a1 1 0 0 1-1 1H6.5a1 1 0 0 1 0-5H20",key:"k3hazp"}],["path",{d:"m9 9.5 2 2 4-4",key:"1dth82"}]]),cp=i("book-copy",[["path",{d:"M2 16V4a2 2 0 0 1 2-2h11",key:"spzkk5"}],["path",{d:"M22 18H11a2 2 0 1 0 0 4h10.5a.5.5 0 0 0 .5-.5v-15a.5.5 0 0 0-.5-.5H11a2 2 0 0 0-2 2v12",key:"1wz07i"}],["path",{d:"M5 14H4a2 2 0 1 0 0 4h1",key:"16gqf9"}]]),cq=i("book-dashed",[["path",{d:"M12 17h1.5",key:"1gkc67"}],["path",{d:"M12 22h1.5",key:"1my7sn"}],["path",{d:"M12 2h1.5",key:"19tvb7"}],["path",{d:"M17.5 22H19a1 1 0 0 0 1-1",key:"10akbh"}],["path",{d:"M17.5 2H19a1 1 0 0 1 1 1v1.5",key:"1vrfjs"}],["path",{d:"M20 14v3h-2.5",key:"1naeju"}],["path",{d:"M20 8.5V10",key:"1ctpfu"}],["path",{d:"M4 10V8.5",key:"1o3zg5"}],["path",{d:"M4 19.5V14",key:"ob81pf"}],["path",{d:"M4 4.5A2.5 2.5 0 0 1 6.5 2H8",key:"s8vcyb"}],["path",{d:"M8 22H6.5a1 1 0 0 1 0-5H8",key:"1cu73q"}]]),cr=i("book-down",[["path",{d:"M12 13V7",key:"h0r20n"}],["path",{d:"M4 19.5v-15A2.5 2.5 0 0 1 6.5 2H19a1 1 0 0 1 1 1v18a1 1 0 0 1-1 1H6.5a1 1 0 0 1 0-5H20",key:"k3hazp"}],["path",{d:"m9 10 3 3 3-3",key:"zt5b4y"}]]),cs=i("book-headphones",[["path",{d:"M4 19.5v-15A2.5 2.5 0 0 1 6.5 2H19a1 1 0 0 1 1 1v18a1 1 0 0 1-1 1H6.5a1 1 0 0 1 0-5H20",key:"k3hazp"}],["path",{d:"M8 12v-2a4 4 0 0 1 8 0v2",key:"1vsqkj"}],["circle",{cx:"15",cy:"12",r:"1",key:"1tmaij"}],["circle",{cx:"9",cy:"12",r:"1",key:"1vctgf"}]]),ct=i("book-heart",[["path",{d:"M16 8.2A2.22 2.22 0 0 0 13.8 6c-.8 0-1.4.3-1.8.9-.4-.6-1-.9-1.8-.9A2.22 2.22 0 0 0 8 8.2c0 .6.3 1.2.7 1.6A226.652 226.652 0 0 0 12 13a404 404 0 0 0 3.3-3.1 2.413 2.413 0 0 0 .7-1.7",key:"1t75a8"}],["path",{d:"M4 19.5v-15A2.5 2.5 0 0 1 6.5 2H19a1 1 0 0 1 1 1v18a1 1 0 0 1-1 1H6.5a1 1 0 0 1 0-5H20",key:"k3hazp"}]]),cu=i("book-image",[["path",{d:"m20 13.7-2.1-2.1a2 2 0 0 0-2.8 0L9.7 17",key:"q6ojf0"}],["path",{d:"M4 19.5v-15A2.5 2.5 0 0 1 6.5 2H19a1 1 0 0 1 1 1v18a1 1 0 0 1-1 1H6.5a1 1 0 0 1 0-5H20",key:"k3hazp"}],["circle",{cx:"10",cy:"8",r:"2",key:"2qkj4p"}]]),cv=i("book-key",[["path",{d:"m19 3 1 1",key:"ze14oc"}],["path",{d:"m20 2-4.5 4.5",key:"1sppr8"}],["path",{d:"M20 7.898V21a1 1 0 0 1-1 1H6.5a1 1 0 0 1 0-5H20",key:"1xzogz"}],["path",{d:"M4 19.5v-15A2.5 2.5 0 0 1 6.5 2h7.844",key:"vtdg6h"}],["circle",{cx:"14",cy:"8",r:"2",key:"u49eql"}]]),cw=i("book-lock",[["path",{d:"M18 6V4a2 2 0 1 0-4 0v2",key:"1aquzs"}],["path",{d:"M20 15v6a1 1 0 0 1-1 1H6.5a1 1 0 0 1 0-5H20",key:"1rkj32"}],["path",{d:"M4 19.5v-15A2.5 2.5 0 0 1 6.5 2H10",key:"18wgow"}],["rect",{x:"12",y:"6",width:"8",height:"5",rx:"1",key:"73l30o"}]]),cx=i("book-marked",[["path",{d:"M10 2v8l3-3 3 3V2",key:"sqw3rj"}],["path",{d:"M4 19.5v-15A2.5 2.5 0 0 1 6.5 2H19a1 1 0 0 1 1 1v18a1 1 0 0 1-1 1H6.5a1 1 0 0 1 0-5H20",key:"k3hazp"}]]),cy=i("book-minus",[["path",{d:"M4 19.5v-15A2.5 2.5 0 0 1 6.5 2H19a1 1 0 0 1 1 1v18a1 1 0 0 1-1 1H6.5a1 1 0 0 1 0-5H20",key:"k3hazp"}],["path",{d:"M9 10h6",key:"9gxzsh"}]]),cz=i("book-open-check",[["path",{d:"M12 21V7",key:"gj6g52"}],["path",{d:"m16 12 2 2 4-4",key:"mdajum"}],["path",{d:"M22 6V4a1 1 0 0 0-1-1h-5a4 4 0 0 0-4 4 4 4 0 0 0-4-4H3a1 1 0 0 0-1 1v13a1 1 0 0 0 1 1h6a3 3 0 0 1 3 3 3 3 0 0 1 3-3h6a1 1 0 0 0 1-1v-1.3",key:"8arnkb"}]]),cA=i("book-open-text",[["path",{d:"M12 7v14",key:"1akyts"}],["path",{d:"M16 12h2",key:"7q9ll5"}],["path",{d:"M16 8h2",key:"msurwy"}],["path",{d:"M3 18a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h5a4 4 0 0 1 4 4 4 4 0 0 1 4-4h5a1 1 0 0 1 1 1v13a1 1 0 0 1-1 1h-6a3 3 0 0 0-3 3 3 3 0 0 0-3-3z",key:"ruj8y"}],["path",{d:"M6 12h2",key:"32wvfc"}],["path",{d:"M6 8h2",key:"30oboj"}]]),cB=i("book-open",[["path",{d:"M12 7v14",key:"1akyts"}],["path",{d:"M3 18a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h5a4 4 0 0 1 4 4 4 4 0 0 1 4-4h5a1 1 0 0 1 1 1v13a1 1 0 0 1-1 1h-6a3 3 0 0 0-3 3 3 3 0 0 0-3-3z",key:"ruj8y"}]]),cC=i("book-plus",[["path",{d:"M12 7v6",key:"lw1j43"}],["path",{d:"M4 19.5v-15A2.5 2.5 0 0 1 6.5 2H19a1 1 0 0 1 1 1v18a1 1 0 0 1-1 1H6.5a1 1 0 0 1 0-5H20",key:"k3hazp"}],["path",{d:"M9 10h6",key:"9gxzsh"}]]),cD=i("book-text",[["path",{d:"M4 19.5v-15A2.5 2.5 0 0 1 6.5 2H19a1 1 0 0 1 1 1v18a1 1 0 0 1-1 1H6.5a1 1 0 0 1 0-5H20",key:"k3hazp"}],["path",{d:"M8 11h8",key:"vwpz6n"}],["path",{d:"M8 7h6",key:"1f0q6e"}]]),cE=i("book-type",[["path",{d:"M10 13h4",key:"ytezjc"}],["path",{d:"M12 6v7",key:"1f6ttz"}],["path",{d:"M16 8V6H8v2",key:"x8j6u4"}],["path",{d:"M4 19.5v-15A2.5 2.5 0 0 1 6.5 2H19a1 1 0 0 1 1 1v18a1 1 0 0 1-1 1H6.5a1 1 0 0 1 0-5H20",key:"k3hazp"}]]),cF=i("book-up-2",[["path",{d:"M12 13V7",key:"h0r20n"}],["path",{d:"M18 2h1a1 1 0 0 1 1 1v18a1 1 0 0 1-1 1H6.5a1 1 0 0 1 0-5H20",key:"161d7n"}],["path",{d:"M4 19.5v-15A2.5 2.5 0 0 1 6.5 2",key:"1lorq7"}],["path",{d:"m9 10 3-3 3 3",key:"11gsxs"}],["path",{d:"m9 5 3-3 3 3",key:"l8vdw6"}]]),cG=i("book-up",[["path",{d:"M12 13V7",key:"h0r20n"}],["path",{d:"M4 19.5v-15A2.5 2.5 0 0 1 6.5 2H19a1 1 0 0 1 1 1v18a1 1 0 0 1-1 1H6.5a1 1 0 0 1 0-5H20",key:"k3hazp"}],["path",{d:"m9 10 3-3 3 3",key:"11gsxs"}]]),cH=i("book-x",[["path",{d:"m14.5 7-5 5",key:"dy991v"}],["path",{d:"M4 19.5v-15A2.5 2.5 0 0 1 6.5 2H19a1 1 0 0 1 1 1v18a1 1 0 0 1-1 1H6.5a1 1 0 0 1 0-5H20",key:"k3hazp"}],["path",{d:"m9.5 7 5 5",key:"s45iea"}]]),cI=i("book-user",[["path",{d:"M15 13a3 3 0 1 0-6 0",key:"10j68g"}],["path",{d:"M4 19.5v-15A2.5 2.5 0 0 1 6.5 2H19a1 1 0 0 1 1 1v18a1 1 0 0 1-1 1H6.5a1 1 0 0 1 0-5H20",key:"k3hazp"}],["circle",{cx:"12",cy:"8",r:"2",key:"1822b1"}]]),cJ=i("book",[["path",{d:"M4 19.5v-15A2.5 2.5 0 0 1 6.5 2H19a1 1 0 0 1 1 1v18a1 1 0 0 1-1 1H6.5a1 1 0 0 1 0-5H20",key:"k3hazp"}]]),cK=i("bookmark-check",[["path",{d:"m19 21-7-4-7 4V5a2 2 0 0 1 2-2h10a2 2 0 0 1 2 2Z",key:"169p4p"}],["path",{d:"m9 10 2 2 4-4",key:"1gnqz4"}]]),cL=i("bookmark-minus",[["path",{d:"m19 21-7-4-7 4V5a2 2 0 0 1 2-2h10a2 2 0 0 1 2 2v16z",key:"1fy3hk"}],["line",{x1:"15",x2:"9",y1:"10",y2:"10",key:"1gty7f"}]]),cM=i("bookmark-plus",[["path",{d:"m19 21-7-4-7 4V5a2 2 0 0 1 2-2h10a2 2 0 0 1 2 2v16z",key:"1fy3hk"}],["line",{x1:"12",x2:"12",y1:"7",y2:"13",key:"1cppfj"}],["line",{x1:"15",x2:"9",y1:"10",y2:"10",key:"1gty7f"}]]),cN=i("bookmark-x",[["path",{d:"m19 21-7-4-7 4V5a2 2 0 0 1 2-2h10a2 2 0 0 1 2 2Z",key:"169p4p"}],["path",{d:"m14.5 7.5-5 5",key:"3lb6iw"}],["path",{d:"m9.5 7.5 5 5",key:"ko136h"}]]),cO=i("bookmark",[["path",{d:"m19 21-7-4-7 4V5a2 2 0 0 1 2-2h10a2 2 0 0 1 2 2v16z",key:"1fy3hk"}]]),cP=i("boom-box",[["path",{d:"M4 9V5a2 2 0 0 1 2-2h12a2 2 0 0 1 2 2v4",key:"vvzvr1"}],["path",{d:"M8 8v1",key:"xcqmfk"}],["path",{d:"M12 8v1",key:"1rj8u4"}],["path",{d:"M16 8v1",key:"1q12zr"}],["rect",{width:"20",height:"12",x:"2",y:"9",rx:"2",key:"igpb89"}],["circle",{cx:"8",cy:"15",r:"2",key:"fa4a8s"}],["circle",{cx:"16",cy:"15",r:"2",key:"14c3ya"}]]),cQ=i("bot-message-square",[["path",{d:"M12 6V2H8",key:"1155em"}],["path",{d:"m8 18-4 4V8a2 2 0 0 1 2-2h12a2 2 0 0 1 2 2v8a2 2 0 0 1-2 2Z",key:"w2lp3e"}],["path",{d:"M2 12h2",key:"1t8f8n"}],["path",{d:"M9 11v2",key:"1ueba0"}],["path",{d:"M15 11v2",key:"i11awn"}],["path",{d:"M20 12h2",key:"1q8mjw"}]]),cR=i("bot-off",[["path",{d:"M13.67 8H18a2 2 0 0 1 2 2v4.33",key:"7az073"}],["path",{d:"M2 14h2",key:"vft8re"}],["path",{d:"M20 14h2",key:"4cs60a"}],["path",{d:"M22 22 2 2",key:"1r8tn9"}],["path",{d:"M8 8H6a2 2 0 0 0-2 2v8a2 2 0 0 0 2 2h12a2 2 0 0 0 1.414-.586",key:"s09a7a"}],["path",{d:"M9 13v2",key:"rq6x2g"}],["path",{d:"M9.67 4H12v2.33",key:"110xot"}]]),cS=i("bot",[["path",{d:"M12 8V4H8",key:"hb8ula"}],["rect",{width:"16",height:"12",x:"4",y:"8",rx:"2",key:"enze0r"}],["path",{d:"M2 14h2",key:"vft8re"}],["path",{d:"M20 14h2",key:"4cs60a"}],["path",{d:"M15 13v2",key:"1xurst"}],["path",{d:"M9 13v2",key:"rq6x2g"}]]),cT=i("bottle-wine",[["path",{d:"M10 3a1 1 0 0 1 1-1h2a1 1 0 0 1 1 1v2a6 6 0 0 0 1.2 3.6l.6.8A6 6 0 0 1 17 13v8a1 1 0 0 1-1 1H8a1 1 0 0 1-1-1v-8a6 6 0 0 1 1.2-3.6l.6-.8A6 6 0 0 0 10 5z",key:"blqgoc"}],["path",{d:"M17 13h-4a1 1 0 0 0-1 1v3a1 1 0 0 0 1 1h4",key:"43jbee"}]]),cU=i("bow-arrow",[["path",{d:"M17 3h4v4",key:"19p9u1"}],["path",{d:"M18.575 11.082a13 13 0 0 1 1.048 9.027 1.17 1.17 0 0 1-1.914.597L14 17",key:"12t3w9"}],["path",{d:"M7 10 3.29 6.29a1.17 1.17 0 0 1 .6-1.91 13 13 0 0 1 9.03 1.05",key:"ogng5l"}],["path",{d:"M7 14a1.7 1.7 0 0 0-1.207.5l-2.646 2.646A.5.5 0 0 0 3.5 18H5a1 1 0 0 1 1 1v1.5a.5.5 0 0 0 .854.354L9.5 18.207A1.7 1.7 0 0 0 10 17v-2a1 1 0 0 0-1-1z",key:"8v3fy2"}],["path",{d:"M9.707 14.293 21 3",key:"ydm3bn"}]]),cV=i("box",[["path",{d:"M21 8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73l7 4a2 2 0 0 0 2 0l7-4A2 2 0 0 0 21 16Z",key:"hh9hay"}],["path",{d:"m3.3 7 8.7 5 8.7-5",key:"g66t2b"}],["path",{d:"M12 22V12",key:"d0xqtd"}]]),cW=i("boxes",[["path",{d:"M2.97 12.92A2 2 0 0 0 2 14.63v3.24a2 2 0 0 0 .97 1.71l3 1.8a2 2 0 0 0 2.06 0L12 19v-5.5l-5-3-4.03 2.42Z",key:"lc1i9w"}],["path",{d:"m7 16.5-4.74-2.85",key:"1o9zyk"}],["path",{d:"m7 16.5 5-3",key:"va8pkn"}],["path",{d:"M7 16.5v5.17",key:"jnp8gn"}],["path",{d:"M12 13.5V19l3.97 2.38a2 2 0 0 0 2.06 0l3-1.8a2 2 0 0 0 .97-1.71v-3.24a2 2 0 0 0-.97-1.71L17 10.5l-5 3Z",key:"8zsnat"}],["path",{d:"m17 16.5-5-3",key:"8arw3v"}],["path",{d:"m17 16.5 4.74-2.85",key:"8rfmw"}],["path",{d:"M17 16.5v5.17",key:"k6z78m"}],["path",{d:"M7.97 4.42A2 2 0 0 0 7 6.13v4.37l5 3 5-3V6.13a2 2 0 0 0-.97-1.71l-3-1.8a2 2 0 0 0-2.06 0l-3 1.8Z",key:"1xygjf"}],["path",{d:"M12 8 7.26 5.15",key:"1vbdud"}],["path",{d:"m12 8 4.74-2.85",key:"3rx089"}],["path",{d:"M12 13.5V8",key:"1io7kd"}]]),cX=i("braces",[["path",{d:"M8 3H7a2 2 0 0 0-2 2v5a2 2 0 0 1-2 2 2 2 0 0 1 2 2v5c0 1.1.9 2 2 2h1",key:"ezmyqa"}],["path",{d:"M16 21h1a2 2 0 0 0 2-2v-5c0-1.1.9-2 2-2a2 2 0 0 1-2-2V5a2 2 0 0 0-2-2h-1",key:"e1hn23"}]]),cY=i("brackets",[["path",{d:"M16 3h3a1 1 0 0 1 1 1v16a1 1 0 0 1-1 1h-3",key:"1kt8lf"}],["path",{d:"M8 21H5a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h3",key:"gduv9"}]]),cZ=i("brain-circuit",[["path",{d:"M12 5a3 3 0 1 0-5.997.125 4 4 0 0 0-2.526 5.77 4 4 0 0 0 .556 6.588A4 4 0 1 0 12 18Z",key:"l5xja"}],["path",{d:"M9 13a4.5 4.5 0 0 0 3-4",key:"10igwf"}],["path",{d:"M6.003 5.125A3 3 0 0 0 6.401 6.5",key:"105sqy"}],["path",{d:"M3.477 10.896a4 4 0 0 1 .585-.396",key:"ql3yin"}],["path",{d:"M6 18a4 4 0 0 1-1.967-.516",key:"2e4loj"}],["path",{d:"M12 13h4",key:"1ku699"}],["path",{d:"M12 18h6a2 2 0 0 1 2 2v1",key:"105ag5"}],["path",{d:"M12 8h8",key:"1lhi5i"}],["path",{d:"M16 8V5a2 2 0 0 1 2-2",key:"u6izg6"}],["circle",{cx:"16",cy:"13",r:".5",key:"ry7gng"}],["circle",{cx:"18",cy:"3",r:".5",key:"1aiba7"}],["circle",{cx:"20",cy:"21",r:".5",key:"yhc1fs"}],["circle",{cx:"20",cy:"8",r:".5",key:"1e43v0"}]]),c$=i("brain-cog",[["path",{d:"m10.852 14.772-.383.923",key:"11vil6"}],["path",{d:"m10.852 9.228-.383-.923",key:"1fjppe"}],["path",{d:"m13.148 14.772.382.924",key:"je3va1"}],["path",{d:"m13.531 8.305-.383.923",key:"18epck"}],["path",{d:"m14.772 10.852.923-.383",key:"k9m8cz"}],["path",{d:"m14.772 13.148.923.383",key:"1xvhww"}],["path",{d:"M17.598 6.5A3 3 0 1 0 12 5a3 3 0 0 0-5.63-1.446 3 3 0 0 0-.368 1.571 4 4 0 0 0-2.525 5.771",key:"jcbbz1"}],["path",{d:"M17.998 5.125a4 4 0 0 1 2.525 5.771",key:"1kkn7e"}],["path",{d:"M19.505 10.294a4 4 0 0 1-1.5 7.706",key:"18bmuc"}],["path",{d:"M4.032 17.483A4 4 0 0 0 11.464 20c.18-.311.892-.311 1.072 0a4 4 0 0 0 7.432-2.516",key:"uozx0d"}],["path",{d:"M4.5 10.291A4 4 0 0 0 6 18",key:"whdemb"}],["path",{d:"M6.002 5.125a3 3 0 0 0 .4 1.375",key:"1kqy2g"}],["path",{d:"m9.228 10.852-.923-.383",key:"1wtb30"}],["path",{d:"m9.228 13.148-.923.383",key:"1a830x"}],["circle",{cx:"12",cy:"12",r:"3",key:"1v7zrd"}]]),c_=i("brain",[["path",{d:"M12 5a3 3 0 1 0-5.997.125 4 4 0 0 0-2.526 5.77 4 4 0 0 0 .556 6.588A4 4 0 1 0 12 18Z",key:"l5xja"}],["path",{d:"M12 5a3 3 0 1 1 5.997.125 4 4 0 0 1 2.526 5.77 4 4 0 0 1-.556 6.588A4 4 0 1 1 12 18Z",key:"ep3f8r"}],["path",{d:"M15 13a4.5 4.5 0 0 1-3-4 4.5 4.5 0 0 1-3 4",key:"1p4c4q"}],["path",{d:"M17.599 6.5a3 3 0 0 0 .399-1.375",key:"tmeiqw"}],["path",{d:"M6.003 5.125A3 3 0 0 0 6.401 6.5",key:"105sqy"}],["path",{d:"M3.477 10.896a4 4 0 0 1 .585-.396",key:"ql3yin"}],["path",{d:"M19.938 10.5a4 4 0 0 1 .585.396",key:"1qfode"}],["path",{d:"M6 18a4 4 0 0 1-1.967-.516",key:"2e4loj"}],["path",{d:"M19.967 17.484A4 4 0 0 1 18 18",key:"159ez6"}]]),c0=i("brick-wall-fire",[["path",{d:"M16 3v2.107",key:"gq8xun"}],["path",{d:"M17 9c1 3 2.5 3.5 3.5 4.5A5 5 0 0 1 22 17a5 5 0 0 1-10 0c0-.3 0-.6.1-.9a2 2 0 1 0 3.3-2C13 11.5 16 9 17 9",key:"1l2pih"}],["path",{d:"M21 8.274V5a2 2 0 0 0-2-2H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h3.938",key:"jrnqjp"}],["path",{d:"M3 15h5.253",key:"xqg7rb"}],["path",{d:"M3 9h8.228",key:"1ppb70"}],["path",{d:"M8 15v6",key:"1stoo3"}],["path",{d:"M8 3v6",key:"vlvjmk"}]]),c1=i("brick-wall",[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",key:"afitv7"}],["path",{d:"M12 9v6",key:"199k2o"}],["path",{d:"M16 15v6",key:"8rj2es"}],["path",{d:"M16 3v6",key:"1j6rpj"}],["path",{d:"M3 15h18",key:"5xshup"}],["path",{d:"M3 9h18",key:"1pudct"}],["path",{d:"M8 15v6",key:"1stoo3"}],["path",{d:"M8 3v6",key:"vlvjmk"}]]),c2=i("briefcase-business",[["path",{d:"M12 12h.01",key:"1mp3jc"}],["path",{d:"M16 6V4a2 2 0 0 0-2-2h-4a2 2 0 0 0-2 2v2",key:"1ksdt3"}],["path",{d:"M22 13a18.15 18.15 0 0 1-20 0",key:"12hx5q"}],["rect",{width:"20",height:"14",x:"2",y:"6",rx:"2",key:"i6l2r4"}]]),c3=i("briefcase-conveyor-belt",[["path",{d:"M10 20v2",key:"1n8e1g"}],["path",{d:"M14 20v2",key:"1lq872"}],["path",{d:"M18 20v2",key:"10uadw"}],["path",{d:"M21 20H3",key:"kdqkdp"}],["path",{d:"M6 20v2",key:"a9bc87"}],["path",{d:"M8 16V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v12",key:"17n9tx"}],["rect",{x:"4",y:"6",width:"16",height:"10",rx:"2",key:"1097i5"}]]),c4=i("briefcase-medical",[["path",{d:"M12 11v4",key:"a6ujw6"}],["path",{d:"M14 13h-4",key:"1pl8zg"}],["path",{d:"M16 6V4a2 2 0 0 0-2-2h-4a2 2 0 0 0-2 2v2",key:"1ksdt3"}],["path",{d:"M18 6v14",key:"1mu4gy"}],["path",{d:"M6 6v14",key:"1s15cj"}],["rect",{width:"20",height:"14",x:"2",y:"6",rx:"2",key:"i6l2r4"}]]),c5=i("briefcase",[["path",{d:"M16 20V4a2 2 0 0 0-2-2h-4a2 2 0 0 0-2 2v16",key:"jecpp"}],["rect",{width:"20",height:"14",x:"2",y:"6",rx:"2",key:"i6l2r4"}]]),c6=i("bring-to-front",[["rect",{x:"8",y:"8",width:"8",height:"8",rx:"2",key:"yj20xf"}],["path",{d:"M4 10a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2",key:"1ltk23"}],["path",{d:"M14 20a2 2 0 0 0 2 2h4a2 2 0 0 0 2-2v-4a2 2 0 0 0-2-2",key:"1q24h9"}]]),c7=i("brush-cleaning",[["path",{d:"m16 22-1-4",key:"1ow2iv"}],["path",{d:"M19 13.99a1 1 0 0 0 1-1V12a2 2 0 0 0-2-2h-3a1 1 0 0 1-1-1V4a2 2 0 0 0-4 0v5a1 1 0 0 1-1 1H6a2 2 0 0 0-2 2v.99a1 1 0 0 0 1 1",key:"iw8jdu"}],["path",{d:"M5 14h14l1.973 6.767A1 1 0 0 1 20 22H4a1 1 0 0 1-.973-1.233z",key:"1soew8"}],["path",{d:"m8 22 1-4",key:"s3unb"}]]),c8=i("brush",[["path",{d:"m11 10 3 3",key:"fzmg1i"}],["path",{d:"M6.5 21A3.5 3.5 0 1 0 3 17.5a2.62 2.62 0 0 1-.708 1.792A1 1 0 0 0 3 21z",key:"p4q2r7"}],["path",{d:"M9.969 17.031 21.378 5.624a1 1 0 0 0-3.002-3.002L6.967 14.031",key:"wy6l02"}]]),c9=i("bubbles",[["path",{d:"M7.2 14.8a2 2 0 0 1 2 2",key:"1tw9gg"}],["circle",{cx:"18.5",cy:"8.5",r:"3.5",key:"1wadoa"}],["circle",{cx:"7.5",cy:"16.5",r:"5.5",key:"6mdt3g"}],["circle",{cx:"7.5",cy:"4.5",r:"2.5",key:"637s54"}]]),da=i("bug-off",[["path",{d:"M15 7.13V6a3 3 0 0 0-5.14-2.1L8 2",key:"vl8zik"}],["path",{d:"M14.12 3.88 16 2",key:"qol33r"}],["path",{d:"M22 13h-4v-2a4 4 0 0 0-4-4h-1.3",key:"1ou0bd"}],["path",{d:"M20.97 5c0 2.1-1.6 3.8-3.5 4",key:"18gb23"}],["path",{d:"m2 2 20 20",key:"1ooewy"}],["path",{d:"M7.7 7.7A4 4 0 0 0 6 11v3a6 6 0 0 0 11.13 3.13",key:"1njkjs"}],["path",{d:"M12 20v-8",key:"i3yub9"}],["path",{d:"M6 13H2",key:"82j7cp"}],["path",{d:"M3 21c0-2.1 1.7-3.9 3.8-4",key:"4p0ekp"}]]),db=i("bug-play",[["path",{d:"M12.765 21.522a.5.5 0 0 1-.765-.424v-8.196a.5.5 0 0 1 .765-.424l5.878 3.674a1 1 0 0 1 0 1.696z",key:"17shqo"}],["path",{d:"M14.12 3.88 16 2",key:"qol33r"}],["path",{d:"M18 11a4 4 0 0 0-4-4h-4a4 4 0 0 0-4 4v3a6.1 6.1 0 0 0 2 4.5",key:"1tjixy"}],["path",{d:"M20.97 5c0 2.1-1.6 3.8-3.5 4",key:"18gb23"}],["path",{d:"M3 21c0-2.1 1.7-3.9 3.8-4",key:"4p0ekp"}],["path",{d:"M6 13H2",key:"82j7cp"}],["path",{d:"M6.53 9C4.6 8.8 3 7.1 3 5",key:"32zzws"}],["path",{d:"m8 2 1.88 1.88",key:"fmnt4t"}],["path",{d:"M9 7.13v-1a3.003 3.003 0 1 1 6 0v1",key:"d7y7pr"}]]),dc=i("bug",[["path",{d:"m8 2 1.88 1.88",key:"fmnt4t"}],["path",{d:"M14.12 3.88 16 2",key:"qol33r"}],["path",{d:"M9 7.13v-1a3.003 3.003 0 1 1 6 0v1",key:"d7y7pr"}],["path",{d:"M12 20c-3.3 0-6-2.7-6-6v-3a4 4 0 0 1 4-4h4a4 4 0 0 1 4 4v3c0 3.3-2.7 6-6 6",key:"xs1cw7"}],["path",{d:"M12 20v-9",key:"1qisl0"}],["path",{d:"M6.53 9C4.6 8.8 3 7.1 3 5",key:"32zzws"}],["path",{d:"M6 13H2",key:"82j7cp"}],["path",{d:"M3 21c0-2.1 1.7-3.9 3.8-4",key:"4p0ekp"}],["path",{d:"M20.97 5c0 2.1-1.6 3.8-3.5 4",key:"18gb23"}],["path",{d:"M22 13h-4",key:"1jl80f"}],["path",{d:"M17.2 17c2.1.1 3.8 1.9 3.8 4",key:"k3fwyw"}]]),dd=i("building-2",[["path",{d:"M6 22V4a2 2 0 0 1 2-2h8a2 2 0 0 1 2 2v18Z",key:"1b4qmf"}],["path",{d:"M6 12H4a2 2 0 0 0-2 2v6a2 2 0 0 0 2 2h2",key:"i71pzd"}],["path",{d:"M18 9h2a2 2 0 0 1 2 2v9a2 2 0 0 1-2 2h-2",key:"10jefs"}],["path",{d:"M10 6h4",key:"1itunk"}],["path",{d:"M10 10h4",key:"tcdvrf"}],["path",{d:"M10 14h4",key:"kelpxr"}],["path",{d:"M10 18h4",key:"1ulq68"}]]),de=i("building",[["rect",{width:"16",height:"20",x:"4",y:"2",rx:"2",ry:"2",key:"76otgf"}],["path",{d:"M9 22v-4h6v4",key:"r93iot"}],["path",{d:"M8 6h.01",key:"1dz90k"}],["path",{d:"M16 6h.01",key:"1x0f13"}],["path",{d:"M12 6h.01",key:"1vi96p"}],["path",{d:"M12 10h.01",key:"1nrarc"}],["path",{d:"M12 14h.01",key:"1etili"}],["path",{d:"M16 10h.01",key:"1m94wz"}],["path",{d:"M16 14h.01",key:"1gbofw"}],["path",{d:"M8 10h.01",key:"19clt8"}],["path",{d:"M8 14h.01",key:"6423bh"}]]),df=i("bus-front",[["path",{d:"M4 6 2 7",key:"1mqr15"}],["path",{d:"M10 6h4",key:"1itunk"}],["path",{d:"m22 7-2-1",key:"1umjhc"}],["rect",{width:"16",height:"16",x:"4",y:"3",rx:"2",key:"1wxw4b"}],["path",{d:"M4 11h16",key:"mpoxn0"}],["path",{d:"M8 15h.01",key:"a7atzg"}],["path",{d:"M16 15h.01",key:"rnfrdf"}],["path",{d:"M6 19v2",key:"1loha6"}],["path",{d:"M18 21v-2",key:"sqyl04"}]]),dg=i("bus",[["path",{d:"M8 6v6",key:"18i7km"}],["path",{d:"M15 6v6",key:"1sg6z9"}],["path",{d:"M2 12h19.6",key:"de5uta"}],["path",{d:"M18 18h3s.5-1.7.8-2.8c.1-.4.2-.8.2-1.2 0-.4-.1-.8-.2-1.2l-1.4-5C20.1 6.8 19.1 6 18 6H4a2 2 0 0 0-2 2v10h3",key:"1wwztk"}],["circle",{cx:"7",cy:"18",r:"2",key:"19iecd"}],["path",{d:"M9 18h5",key:"lrx6i"}],["circle",{cx:"16",cy:"18",r:"2",key:"1v4tcr"}]]),dh=i("cable-car",[["path",{d:"M10 3h.01",key:"lbucoy"}],["path",{d:"M14 2h.01",key:"1k8aa1"}],["path",{d:"m2 9 20-5",key:"1kz0j5"}],["path",{d:"M12 12V6.5",key:"1vbrij"}],["rect",{width:"16",height:"10",x:"4",y:"12",rx:"3",key:"if91er"}],["path",{d:"M9 12v5",key:"3anwtq"}],["path",{d:"M15 12v5",key:"5xh3zn"}],["path",{d:"M4 17h16",key:"g4d7ey"}]]),di=i("cable",[["path",{d:"M17 21v-2a1 1 0 0 1-1-1v-1a2 2 0 0 1 2-2h2a2 2 0 0 1 2 2v1a1 1 0 0 1-1 1",key:"10bnsj"}],["path",{d:"M19 15V6.5a1 1 0 0 0-7 0v11a1 1 0 0 1-7 0V9",key:"1eqmu1"}],["path",{d:"M21 21v-2h-4",key:"14zm7j"}],["path",{d:"M3 5h4V3",key:"z442eg"}],["path",{d:"M7 5a1 1 0 0 1 1 1v1a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2V6a1 1 0 0 1 1-1V3",key:"ebdjd7"}]]),dj=i("cake-slice",[["circle",{cx:"9",cy:"7",r:"2",key:"1305pl"}],["path",{d:"M7.2 7.9 3 11v9c0 .6.4 1 1 1h16c.6 0 1-.4 1-1v-9c0-2-3-6-7-8l-3.6 2.6",key:"xle13f"}],["path",{d:"M16 13H3",key:"1wpj08"}],["path",{d:"M16 17H3",key:"3lvfcd"}]]),dk=i("cake",[["path",{d:"M20 21v-8a2 2 0 0 0-2-2H6a2 2 0 0 0-2 2v8",key:"1w3rig"}],["path",{d:"M4 16s.5-1 2-1 2.5 2 4 2 2.5-2 4-2 2.5 2 4 2 2-1 2-1",key:"n2jgmb"}],["path",{d:"M2 21h20",key:"1nyx9w"}],["path",{d:"M7 8v3",key:"1qtyvj"}],["path",{d:"M12 8v3",key:"hwp4zt"}],["path",{d:"M17 8v3",key:"1i6e5u"}],["path",{d:"M7 4h.01",key:"1bh4kh"}],["path",{d:"M12 4h.01",key:"1ujb9j"}],["path",{d:"M17 4h.01",key:"1upcoc"}]]),dl=i("calculator",[["rect",{width:"16",height:"20",x:"4",y:"2",rx:"2",key:"1nb95v"}],["line",{x1:"8",x2:"16",y1:"6",y2:"6",key:"x4nwl0"}],["line",{x1:"16",x2:"16",y1:"14",y2:"18",key:"wjye3r"}],["path",{d:"M16 10h.01",key:"1m94wz"}],["path",{d:"M12 10h.01",key:"1nrarc"}],["path",{d:"M8 10h.01",key:"19clt8"}],["path",{d:"M12 14h.01",key:"1etili"}],["path",{d:"M8 14h.01",key:"6423bh"}],["path",{d:"M12 18h.01",key:"mhygvu"}],["path",{d:"M8 18h.01",key:"lrp35t"}]]),dm=i("calendar-1",[["path",{d:"M11 14h1v4",key:"fy54vd"}],["path",{d:"M16 2v4",key:"4m81vk"}],["path",{d:"M3 10h18",key:"8toen8"}],["path",{d:"M8 2v4",key:"1cmpym"}],["rect",{x:"3",y:"4",width:"18",height:"18",rx:"2",key:"12vinp"}]]),dn=i("calendar-arrow-down",[["path",{d:"m14 18 4 4 4-4",key:"1waygx"}],["path",{d:"M16 2v4",key:"4m81vk"}],["path",{d:"M18 14v8",key:"irew45"}],["path",{d:"M21 11.354V6a2 2 0 0 0-2-2H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h7.343",key:"bse4f3"}],["path",{d:"M3 10h18",key:"8toen8"}],["path",{d:"M8 2v4",key:"1cmpym"}]]),dp=i("calendar-arrow-up",[["path",{d:"m14 18 4-4 4 4",key:"ftkppy"}],["path",{d:"M16 2v4",key:"4m81vk"}],["path",{d:"M18 22v-8",key:"su0gjh"}],["path",{d:"M21 11.343V6a2 2 0 0 0-2-2H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h9",key:"1exg90"}],["path",{d:"M3 10h18",key:"8toen8"}],["path",{d:"M8 2v4",key:"1cmpym"}]]),dq=i("calendar-check-2",[["path",{d:"M8 2v4",key:"1cmpym"}],["path",{d:"M16 2v4",key:"4m81vk"}],["path",{d:"M21 14V6a2 2 0 0 0-2-2H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h8",key:"bce9hv"}],["path",{d:"M3 10h18",key:"8toen8"}],["path",{d:"m16 20 2 2 4-4",key:"13tcca"}]]),dr=i("calendar-check",[["path",{d:"M8 2v4",key:"1cmpym"}],["path",{d:"M16 2v4",key:"4m81vk"}],["rect",{width:"18",height:"18",x:"3",y:"4",rx:"2",key:"1hopcy"}],["path",{d:"M3 10h18",key:"8toen8"}],["path",{d:"m9 16 2 2 4-4",key:"19s6y9"}]]),ds=i("calendar-clock",[["path",{d:"M16 14v2.2l1.6 1",key:"fo4ql5"}],["path",{d:"M16 2v4",key:"4m81vk"}],["path",{d:"M21 7.5V6a2 2 0 0 0-2-2H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h3.5",key:"1osxxc"}],["path",{d:"M3 10h5",key:"r794hk"}],["path",{d:"M8 2v4",key:"1cmpym"}],["circle",{cx:"16",cy:"16",r:"6",key:"qoo3c4"}]]),dt=i("calendar-cog",[["path",{d:"m15.228 16.852-.923-.383",key:"npixar"}],["path",{d:"m15.228 19.148-.923.383",key:"51cr3n"}],["path",{d:"M16 2v4",key:"4m81vk"}],["path",{d:"m16.47 14.305.382.923",key:"obybxd"}],["path",{d:"m16.852 20.772-.383.924",key:"dpfhf9"}],["path",{d:"m19.148 15.228.383-.923",key:"1reyyz"}],["path",{d:"m19.53 21.696-.382-.924",key:"1goivc"}],["path",{d:"m20.772 16.852.924-.383",key:"htqkph"}],["path",{d:"m20.772 19.148.924.383",key:"9w9pjp"}],["path",{d:"M21 11V6a2 2 0 0 0-2-2H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h6",key:"1dju0s"}],["path",{d:"M3 10h18",key:"8toen8"}],["path",{d:"M8 2v4",key:"1cmpym"}],["circle",{cx:"18",cy:"18",r:"3",key:"1xkwt0"}]]),du=i("calendar-days",[["path",{d:"M8 2v4",key:"1cmpym"}],["path",{d:"M16 2v4",key:"4m81vk"}],["rect",{width:"18",height:"18",x:"3",y:"4",rx:"2",key:"1hopcy"}],["path",{d:"M3 10h18",key:"8toen8"}],["path",{d:"M8 14h.01",key:"6423bh"}],["path",{d:"M12 14h.01",key:"1etili"}],["path",{d:"M16 14h.01",key:"1gbofw"}],["path",{d:"M8 18h.01",key:"lrp35t"}],["path",{d:"M12 18h.01",key:"mhygvu"}],["path",{d:"M16 18h.01",key:"kzsmim"}]]),dv=i("calendar-fold",[["path",{d:"M8 2v4",key:"1cmpym"}],["path",{d:"M16 2v4",key:"4m81vk"}],["path",{d:"M21 17V6a2 2 0 0 0-2-2H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h11Z",key:"kg77oy"}],["path",{d:"M3 10h18",key:"8toen8"}],["path",{d:"M15 22v-4a2 2 0 0 1 2-2h4",key:"1gnbqr"}]]),dw=i("calendar-heart",[["path",{d:"M3 10h18V6a2 2 0 0 0-2-2H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h7",key:"136lmk"}],["path",{d:"M8 2v4",key:"1cmpym"}],["path",{d:"M16 2v4",key:"4m81vk"}],["path",{d:"M21.29 14.7a2.43 2.43 0 0 0-2.65-.52c-.3.12-.57.3-.8.53l-.34.34-.35-.34a2.43 2.43 0 0 0-2.65-.53c-.3.12-.56.3-.79.53-.95.94-1 2.53.2 3.74L17.5 22l3.6-3.55c1.2-1.21 1.14-2.8.19-3.74Z",key:"1t7hil"}]]),dx=i("calendar-minus-2",[["path",{d:"M8 2v4",key:"1cmpym"}],["path",{d:"M16 2v4",key:"4m81vk"}],["rect",{width:"18",height:"18",x:"3",y:"4",rx:"2",key:"1hopcy"}],["path",{d:"M3 10h18",key:"8toen8"}],["path",{d:"M10 16h4",key:"17e571"}]]),dy=i("calendar-minus",[["path",{d:"M16 19h6",key:"xwg31i"}],["path",{d:"M16 2v4",key:"4m81vk"}],["path",{d:"M21 15V6a2 2 0 0 0-2-2H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h8.5",key:"1scpom"}],["path",{d:"M3 10h18",key:"8toen8"}],["path",{d:"M8 2v4",key:"1cmpym"}]]),dz=i("calendar-off",[["path",{d:"M4.2 4.2A2 2 0 0 0 3 6v14a2 2 0 0 0 2 2h14a2 2 0 0 0 1.82-1.18",key:"16swn3"}],["path",{d:"M21 15.5V6a2 2 0 0 0-2-2H9.5",key:"yhw86o"}],["path",{d:"M16 2v4",key:"4m81vk"}],["path",{d:"M3 10h7",key:"1wap6i"}],["path",{d:"M21 10h-5.5",key:"quycpq"}],["path",{d:"m2 2 20 20",key:"1ooewy"}]]),dA=i("calendar-plus-2",[["path",{d:"M8 2v4",key:"1cmpym"}],["path",{d:"M16 2v4",key:"4m81vk"}],["rect",{width:"18",height:"18",x:"3",y:"4",rx:"2",key:"1hopcy"}],["path",{d:"M3 10h18",key:"8toen8"}],["path",{d:"M10 16h4",key:"17e571"}],["path",{d:"M12 14v4",key:"1thi36"}]]),dB=i("calendar-plus",[["path",{d:"M16 19h6",key:"xwg31i"}],["path",{d:"M16 2v4",key:"4m81vk"}],["path",{d:"M19 16v6",key:"tddt3s"}],["path",{d:"M21 12.598V6a2 2 0 0 0-2-2H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h8.5",key:"1glfrc"}],["path",{d:"M3 10h18",key:"8toen8"}],["path",{d:"M8 2v4",key:"1cmpym"}]]),dC=i("calendar-range",[["rect",{width:"18",height:"18",x:"3",y:"4",rx:"2",key:"1hopcy"}],["path",{d:"M16 2v4",key:"4m81vk"}],["path",{d:"M3 10h18",key:"8toen8"}],["path",{d:"M8 2v4",key:"1cmpym"}],["path",{d:"M17 14h-6",key:"bkmgh3"}],["path",{d:"M13 18H7",key:"bb0bb7"}],["path",{d:"M7 14h.01",key:"1qa3f1"}],["path",{d:"M17 18h.01",key:"1bdyru"}]]),dD=i("calendar-sync",[["path",{d:"M11 10v4h4",key:"172dkj"}],["path",{d:"m11 14 1.535-1.605a5 5 0 0 1 8 1.5",key:"vu0qm5"}],["path",{d:"M16 2v4",key:"4m81vk"}],["path",{d:"m21 18-1.535 1.605a5 5 0 0 1-8-1.5",key:"1qgeyt"}],["path",{d:"M21 22v-4h-4",key:"hrummi"}],["path",{d:"M21 8.5V6a2 2 0 0 0-2-2H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h4.3",key:"mctw84"}],["path",{d:"M3 10h4",key:"1el30a"}],["path",{d:"M8 2v4",key:"1cmpym"}]]),dE=i("calendar-search",[["path",{d:"M16 2v4",key:"4m81vk"}],["path",{d:"M21 11.75V6a2 2 0 0 0-2-2H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h7.25",key:"1jrsq6"}],["path",{d:"m22 22-1.875-1.875",key:"13zax7"}],["path",{d:"M3 10h18",key:"8toen8"}],["path",{d:"M8 2v4",key:"1cmpym"}],["circle",{cx:"18",cy:"18",r:"3",key:"1xkwt0"}]]),dF=i("calendar-x-2",[["path",{d:"M8 2v4",key:"1cmpym"}],["path",{d:"M16 2v4",key:"4m81vk"}],["path",{d:"M21 13V6a2 2 0 0 0-2-2H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h8",key:"3spt84"}],["path",{d:"M3 10h18",key:"8toen8"}],["path",{d:"m17 22 5-5",key:"1k6ppv"}],["path",{d:"m17 17 5 5",key:"p7ous7"}]]),dG=i("calendar-x",[["path",{d:"M8 2v4",key:"1cmpym"}],["path",{d:"M16 2v4",key:"4m81vk"}],["rect",{width:"18",height:"18",x:"3",y:"4",rx:"2",key:"1hopcy"}],["path",{d:"M3 10h18",key:"8toen8"}],["path",{d:"m14 14-4 4",key:"rymu2i"}],["path",{d:"m10 14 4 4",key:"3sz06r"}]]),dH=i("calendar",[["path",{d:"M8 2v4",key:"1cmpym"}],["path",{d:"M16 2v4",key:"4m81vk"}],["rect",{width:"18",height:"18",x:"3",y:"4",rx:"2",key:"1hopcy"}],["path",{d:"M3 10h18",key:"8toen8"}]]),dI=i("camera-off",[["line",{x1:"2",x2:"22",y1:"2",y2:"22",key:"a6p6uj"}],["path",{d:"M7 7H4a2 2 0 0 0-2 2v9a2 2 0 0 0 2 2h16",key:"qmtpty"}],["path",{d:"M9.5 4h5L17 7h3a2 2 0 0 1 2 2v7.5",key:"1ufyfc"}],["path",{d:"M14.121 15.121A3 3 0 1 1 9.88 10.88",key:"11zox6"}]]),dJ=i("camera",[["path",{d:"M14.5 4h-5L7 7H4a2 2 0 0 0-2 2v9a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2V9a2 2 0 0 0-2-2h-3l-2.5-3z",key:"1tc9qg"}],["circle",{cx:"12",cy:"13",r:"3",key:"1vg3eu"}]]),dK=i("candy-cane",[["path",{d:"M5.7 21a2 2 0 0 1-3.5-2l8.6-14a6 6 0 0 1 10.4 6 2 2 0 1 1-3.464-2 2 2 0 1 0-3.464-2Z",key:"isaq8g"}],["path",{d:"M17.75 7 15 2.1",key:"12x7e8"}],["path",{d:"M10.9 4.8 13 9",key:"100a87"}],["path",{d:"m7.9 9.7 2 4.4",key:"ntfhaj"}],["path",{d:"M4.9 14.7 7 18.9",key:"1x43jy"}]]),dL=i("candy-off",[["path",{d:"M10 10v7.9",key:"m8g9tt"}],["path",{d:"M11.802 6.145a5 5 0 0 1 6.053 6.053",key:"dn87i3"}],["path",{d:"M14 6.1v2.243",key:"1kzysn"}],["path",{d:"m15.5 15.571-.964.964a5 5 0 0 1-7.071 0 5 5 0 0 1 0-7.07l.964-.965",key:"3sxy18"}],["path",{d:"M16 7V3a1 1 0 0 1 1.707-.707 2.5 2.5 0 0 0 2.152.717 1 1 0 0 1 1.131 1.131 2.5 2.5 0 0 0 .717 2.152A1 1 0 0 1 21 8h-4",key:"gpb6xx"}],["path",{d:"m2 2 20 20",key:"1ooewy"}],["path",{d:"M8 17v4a1 1 0 0 1-1.707.707 2.5 2.5 0 0 0-2.152-.717 1 1 0 0 1-1.131-1.131 2.5 2.5 0 0 0-.717-2.152A1 1 0 0 1 3 16h4",key:"qexcha"}]]),dM=i("candy",[["path",{d:"M10 7v10.9",key:"1gynux"}],["path",{d:"M14 6.1V17",key:"116kdf"}],["path",{d:"M16 7V3a1 1 0 0 1 1.707-.707 2.5 2.5 0 0 0 2.152.717 1 1 0 0 1 1.131 1.131 2.5 2.5 0 0 0 .717 2.152A1 1 0 0 1 21 8h-4",key:"gpb6xx"}],["path",{d:"M16.536 7.465a5 5 0 0 0-7.072 0l-2 2a5 5 0 0 0 0 7.07 5 5 0 0 0 7.072 0l2-2a5 5 0 0 0 0-7.07",key:"1tsln4"}],["path",{d:"M8 17v4a1 1 0 0 1-1.707.707 2.5 2.5 0 0 0-2.152-.717 1 1 0 0 1-1.131-1.131 2.5 2.5 0 0 0-.717-2.152A1 1 0 0 1 3 16h4",key:"qexcha"}]]),dN=i("cannabis",[["path",{d:"M12 22v-4",key:"1utk9m"}],["path",{d:"M7 12c-1.5 0-4.5 1.5-5 3 3.5 1.5 6 1 6 1-1.5 1.5-2 3.5-2 5 2.5 0 4.5-1.5 6-3 1.5 1.5 3.5 3 6 3 0-1.5-.5-3.5-2-5 0 0 2.5.5 6-1-.5-1.5-3.5-3-5-3 1.5-1 4-4 4-6-2.5 0-5.5 1.5-7 3 0-2.5-.5-5-2-7-1.5 2-2 4.5-2 7-1.5-1.5-4.5-3-7-3 0 2 2.5 5 4 6",key:"1mezod"}]]),dO=i("captions-off",[["path",{d:"M10.5 5H19a2 2 0 0 1 2 2v8.5",key:"jqtk4d"}],["path",{d:"M17 11h-.5",key:"1961ue"}],["path",{d:"M19 19H5a2 2 0 0 1-2-2V7a2 2 0 0 1 2-2",key:"1keqsi"}],["path",{d:"m2 2 20 20",key:"1ooewy"}],["path",{d:"M7 11h4",key:"1o1z6v"}],["path",{d:"M7 15h2.5",key:"1ina1g"}]]),dP=i("captions",[["rect",{width:"18",height:"14",x:"3",y:"5",rx:"2",ry:"2",key:"12ruh7"}],["path",{d:"M7 15h4M15 15h2M7 11h2M13 11h4",key:"1ueiar"}]]),dQ=i("car-front",[["path",{d:"m21 8-2 2-1.5-3.7A2 2 0 0 0 15.646 5H8.4a2 2 0 0 0-1.903 1.257L5 10 3 8",key:"1imjwt"}],["path",{d:"M7 14h.01",key:"1qa3f1"}],["path",{d:"M17 14h.01",key:"7oqj8z"}],["rect",{width:"18",height:"8",x:"3",y:"10",rx:"2",key:"a7itu8"}],["path",{d:"M5 18v2",key:"ppbyun"}],["path",{d:"M19 18v2",key:"gy7782"}]]),dR=i("car-taxi-front",[["path",{d:"M10 2h4",key:"n1abiw"}],["path",{d:"m21 8-2 2-1.5-3.7A2 2 0 0 0 15.646 5H8.4a2 2 0 0 0-1.903 1.257L5 10 3 8",key:"1imjwt"}],["path",{d:"M7 14h.01",key:"1qa3f1"}],["path",{d:"M17 14h.01",key:"7oqj8z"}],["rect",{width:"18",height:"8",x:"3",y:"10",rx:"2",key:"a7itu8"}],["path",{d:"M5 18v2",key:"ppbyun"}],["path",{d:"M19 18v2",key:"gy7782"}]]),dS=i("caravan",[["path",{d:"M18 19V9a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v8a2 2 0 0 0 2 2h2",key:"19jm3t"}],["path",{d:"M2 9h3a1 1 0 0 1 1 1v2a1 1 0 0 1-1 1H2",key:"13hakp"}],["path",{d:"M22 17v1a1 1 0 0 1-1 1H10v-9a1 1 0 0 1 1-1h2a1 1 0 0 1 1 1v9",key:"1crci8"}],["circle",{cx:"8",cy:"19",r:"2",key:"t8fc5s"}]]),dT=i("card-sim",[["path",{d:"M12 14v4",key:"1thi36"}],["path",{d:"M14.172 2a2 2 0 0 1 1.414.586l3.828 3.828A2 2 0 0 1 20 7.828V20a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2z",key:"1o66bk"}],["path",{d:"M8 14h8",key:"1fgep2"}],["rect",{x:"8",y:"10",width:"8",height:"8",rx:"1",key:"1aonk6"}]]),dU=i("car",[["path",{d:"M19 17h2c.6 0 1-.4 1-1v-3c0-.9-.7-1.7-1.5-1.9C18.7 10.6 16 10 16 10s-1.3-1.4-2.2-2.3c-.5-.4-1.1-.7-1.8-.7H5c-.6 0-1.1.4-1.4.9l-1.4 2.9A3.7 3.7 0 0 0 2 12v4c0 .6.4 1 1 1h2",key:"5owen"}],["circle",{cx:"7",cy:"17",r:"2",key:"u2ysq9"}],["path",{d:"M9 17h6",key:"r8uit2"}],["circle",{cx:"17",cy:"17",r:"2",key:"axvx0g"}]]),dV=i("carrot",[["path",{d:"M2.27 21.7s9.87-3.5 12.73-6.36a4.5 4.5 0 0 0-6.36-6.37C5.77 11.84 2.27 21.7 2.27 21.7zM8.64 14l-2.05-2.04M15.34 15l-2.46-2.46",key:"rfqxbe"}],["path",{d:"M22 9s-1.33-2-3.5-2C16.86 7 15 9 15 9s1.33 2 3.5 2S22 9 22 9z",key:"6b25w4"}],["path",{d:"M15 2s-2 1.33-2 3.5S15 9 15 9s2-1.84 2-3.5C17 3.33 15 2 15 2z",key:"fn65lo"}]]),dW=i("case-lower",[["circle",{cx:"7",cy:"12",r:"3",key:"12clwm"}],["path",{d:"M10 9v6",key:"17i7lo"}],["circle",{cx:"17",cy:"12",r:"3",key:"gl7c2s"}],["path",{d:"M14 7v8",key:"dl84cr"}]]),dX=i("case-sensitive",[["path",{d:"m3 15 4-8 4 8",key:"1vwr6u"}],["path",{d:"M4 13h6",key:"1r9ots"}],["circle",{cx:"18",cy:"12",r:"3",key:"1kchzo"}],["path",{d:"M21 9v6",key:"anns31"}]]),dY=i("case-upper",[["path",{d:"m3 15 4-8 4 8",key:"1vwr6u"}],["path",{d:"M4 13h6",key:"1r9ots"}],["path",{d:"M15 11h4.5a2 2 0 0 1 0 4H15V7h4a2 2 0 0 1 0 4",key:"1sqfas"}]]),dZ=i("cassette-tape",[["rect",{width:"20",height:"16",x:"2",y:"4",rx:"2",key:"18n3k1"}],["circle",{cx:"8",cy:"10",r:"2",key:"1xl4ub"}],["path",{d:"M8 12h8",key:"1wcyev"}],["circle",{cx:"16",cy:"10",r:"2",key:"r14t7q"}],["path",{d:"m6 20 .7-2.9A1.4 1.4 0 0 1 8.1 16h7.8a1.4 1.4 0 0 1 1.4 1l.7 3",key:"l01ucn"}]]),d$=i("cast",[["path",{d:"M2 8V6a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2v12a2 2 0 0 1-2 2h-6",key:"3zrzxg"}],["path",{d:"M2 12a9 9 0 0 1 8 8",key:"g6cvee"}],["path",{d:"M2 16a5 5 0 0 1 4 4",key:"1y1dii"}],["line",{x1:"2",x2:"2.01",y1:"20",y2:"20",key:"xu2jvo"}]]),d_=i("castle",[["path",{d:"M22 20v-9H2v9a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2Z",key:"109fe4"}],["path",{d:"M18 11V4H6v7",key:"mon5oj"}],["path",{d:"M15 22v-4a3 3 0 0 0-3-3a3 3 0 0 0-3 3v4",key:"1k4jtn"}],["path",{d:"M22 11V9",key:"3zbp94"}],["path",{d:"M2 11V9",key:"1x5rnq"}],["path",{d:"M6 4V2",key:"1rsq15"}],["path",{d:"M18 4V2",key:"1jsdo1"}],["path",{d:"M10 4V2",key:"75d9ly"}],["path",{d:"M14 4V2",key:"8nj3z6"}]]),d0=i("cat",[["path",{d:"M12 5c.67 0 1.35.09 2 .26 1.78-2 5.03-2.84 6.42-2.26 1.4.58-.42 7-.42 7 .57 1.07 1 2.24 1 3.44C21 17.9 16.97 21 12 21s-9-3-9-7.56c0-1.25.5-2.4 1-3.44 0 0-1.89-6.42-.5-7 1.39-.58 4.72.23 6.5 2.23A9.04 9.04 0 0 1 12 5Z",key:"x6xyqk"}],["path",{d:"M8 14v.5",key:"1nzgdb"}],["path",{d:"M16 14v.5",key:"1lajdz"}],["path",{d:"M11.25 16.25h1.5L12 17l-.75-.75Z",key:"12kq1m"}]]),d1=i("cctv",[["path",{d:"M16.75 12h3.632a1 1 0 0 1 .894 1.447l-2.034 4.069a1 1 0 0 1-1.708.134l-2.124-2.97",key:"ir91b5"}],["path",{d:"M17.106 9.053a1 1 0 0 1 .447 1.341l-3.106 6.211a1 1 0 0 1-1.342.447L3.61 12.3a2.92 2.92 0 0 1-1.3-3.91L3.69 5.6a2.92 2.92 0 0 1 3.92-1.3z",key:"jlp8i1"}],["path",{d:"M2 19h3.76a2 2 0 0 0 1.8-1.1L9 15",key:"19bib8"}],["path",{d:"M2 21v-4",key:"l40lih"}],["path",{d:"M7 9h.01",key:"19b3jx"}]]),d2=i("chart-area",[["path",{d:"M3 3v16a2 2 0 0 0 2 2h16",key:"c24i48"}],["path",{d:"M7 11.207a.5.5 0 0 1 .146-.353l2-2a.5.5 0 0 1 .708 0l3.292 3.292a.5.5 0 0 0 .708 0l4.292-4.292a.5.5 0 0 1 .854.353V16a1 1 0 0 1-1 1H8a1 1 0 0 1-1-1z",key:"q0gr47"}]]),d3=i("chart-bar-big",[["path",{d:"M3 3v16a2 2 0 0 0 2 2h16",key:"c24i48"}],["rect",{x:"7",y:"13",width:"9",height:"4",rx:"1",key:"1iip1u"}],["rect",{x:"7",y:"5",width:"12",height:"4",rx:"1",key:"1anskk"}]]),d4=i("chart-bar-increasing",[["path",{d:"M3 3v16a2 2 0 0 0 2 2h16",key:"c24i48"}],["path",{d:"M7 11h8",key:"1feolt"}],["path",{d:"M7 16h12",key:"wsnu98"}],["path",{d:"M7 6h3",key:"w9rmul"}]]),d5=i("chart-bar-decreasing",[["path",{d:"M3 3v16a2 2 0 0 0 2 2h16",key:"c24i48"}],["path",{d:"M7 11h8",key:"1feolt"}],["path",{d:"M7 16h3",key:"ur6vzw"}],["path",{d:"M7 6h12",key:"sz5b0d"}]]),d6=i("chart-bar-stacked",[["path",{d:"M11 13v4",key:"vyy2rb"}],["path",{d:"M15 5v4",key:"1gx88a"}],["path",{d:"M3 3v16a2 2 0 0 0 2 2h16",key:"c24i48"}],["rect",{x:"7",y:"13",width:"9",height:"4",rx:"1",key:"1iip1u"}],["rect",{x:"7",y:"5",width:"12",height:"4",rx:"1",key:"1anskk"}]]),d7=i("chart-bar",[["path",{d:"M3 3v16a2 2 0 0 0 2 2h16",key:"c24i48"}],["path",{d:"M7 16h8",key:"srdodz"}],["path",{d:"M7 11h12",key:"127s9w"}],["path",{d:"M7 6h3",key:"w9rmul"}]]),d8=i("chart-candlestick",[["path",{d:"M9 5v4",key:"14uxtq"}],["rect",{width:"4",height:"6",x:"7",y:"9",rx:"1",key:"f4fvz0"}],["path",{d:"M9 15v2",key:"r5rk32"}],["path",{d:"M17 3v2",key:"1l2re6"}],["rect",{width:"4",height:"8",x:"15",y:"5",rx:"1",key:"z38je5"}],["path",{d:"M17 13v3",key:"5l0wba"}],["path",{d:"M3 3v16a2 2 0 0 0 2 2h16",key:"c24i48"}]]),d9=i("chart-column-big",[["path",{d:"M3 3v16a2 2 0 0 0 2 2h16",key:"c24i48"}],["rect",{x:"15",y:"5",width:"4",height:"12",rx:"1",key:"q8uenq"}],["rect",{x:"7",y:"8",width:"4",height:"9",rx:"1",key:"sr5ea"}]]),ea=i("chart-column-decreasing",[["path",{d:"M13 17V9",key:"1fwyjl"}],["path",{d:"M18 17v-3",key:"1sqioe"}],["path",{d:"M3 3v16a2 2 0 0 0 2 2h16",key:"c24i48"}],["path",{d:"M8 17V5",key:"1wzmnc"}]]),eb=i("chart-column-increasing",[["path",{d:"M13 17V9",key:"1fwyjl"}],["path",{d:"M18 17V5",key:"sfb6ij"}],["path",{d:"M3 3v16a2 2 0 0 0 2 2h16",key:"c24i48"}],["path",{d:"M8 17v-3",key:"17ska0"}]]),ec=i("chart-column-stacked",[["path",{d:"M11 13H7",key:"t0o9gq"}],["path",{d:"M19 9h-4",key:"rera1j"}],["path",{d:"M3 3v16a2 2 0 0 0 2 2h16",key:"c24i48"}],["rect",{x:"15",y:"5",width:"4",height:"12",rx:"1",key:"q8uenq"}],["rect",{x:"7",y:"8",width:"4",height:"9",rx:"1",key:"sr5ea"}]]),ed=i("chart-column",[["path",{d:"M3 3v16a2 2 0 0 0 2 2h16",key:"c24i48"}],["path",{d:"M18 17V9",key:"2bz60n"}],["path",{d:"M13 17V5",key:"1frdt8"}],["path",{d:"M8 17v-3",key:"17ska0"}]]),ee=i("chart-gantt",[["path",{d:"M10 6h8",key:"zvc2xc"}],["path",{d:"M12 16h6",key:"yi5mkt"}],["path",{d:"M3 3v16a2 2 0 0 0 2 2h16",key:"c24i48"}],["path",{d:"M8 11h7",key:"wz2hg0"}]]),ef=i("chart-line",[["path",{d:"M3 3v16a2 2 0 0 0 2 2h16",key:"c24i48"}],["path",{d:"m19 9-5 5-4-4-3 3",key:"2osh9i"}]]),eg=i("chart-network",[["path",{d:"m13.11 7.664 1.78 2.672",key:"go2gg9"}],["path",{d:"m14.162 12.788-3.324 1.424",key:"11x848"}],["path",{d:"m20 4-6.06 1.515",key:"1wxxh7"}],["path",{d:"M3 3v16a2 2 0 0 0 2 2h16",key:"c24i48"}],["circle",{cx:"12",cy:"6",r:"2",key:"1jj5th"}],["circle",{cx:"16",cy:"12",r:"2",key:"4ma0v8"}],["circle",{cx:"9",cy:"15",r:"2",key:"lf2ghp"}]]),eh=i("chart-no-axes-column-decreasing",[["path",{d:"M12 20V10",key:"g8npz5"}],["path",{d:"M18 20v-4",key:"8uic4z"}],["path",{d:"M6 20V4",key:"1w1bmo"}]]),ei=i("chart-no-axes-column-increasing",[["line",{x1:"12",x2:"12",y1:"20",y2:"10",key:"1vz5eb"}],["line",{x1:"18",x2:"18",y1:"20",y2:"4",key:"cun8e5"}],["line",{x1:"6",x2:"6",y1:"20",y2:"16",key:"hq0ia6"}]]),ej=i("chart-no-axes-column",[["line",{x1:"18",x2:"18",y1:"20",y2:"10",key:"1xfpm4"}],["line",{x1:"12",x2:"12",y1:"20",y2:"4",key:"be30l9"}],["line",{x1:"6",x2:"6",y1:"20",y2:"14",key:"1r4le6"}]]),ek=i("chart-no-axes-combined",[["path",{d:"M12 16v5",key:"zza2cw"}],["path",{d:"M16 14v7",key:"1g90b9"}],["path",{d:"M20 10v11",key:"1iqoj0"}],["path",{d:"m22 3-8.646 8.646a.5.5 0 0 1-.708 0L9.354 8.354a.5.5 0 0 0-.707 0L2 15",key:"1fw8x9"}],["path",{d:"M4 18v3",key:"1yp0dc"}],["path",{d:"M8 14v7",key:"n3cwzv"}]]),el=i("chart-no-axes-gantt",[["path",{d:"M8 6h10",key:"9lnwnk"}],["path",{d:"M6 12h9",key:"1g9pqf"}],["path",{d:"M11 18h7",key:"c8dzvl"}]]),em=i("chart-pie",[["path",{d:"M21 12c.552 0 1.005-.449.95-.998a10 10 0 0 0-8.953-8.951c-.55-.055-.998.398-.998.95v8a1 1 0 0 0 1 1z",key:"pzmjnu"}],["path",{d:"M21.21 15.89A10 10 0 1 1 8 2.83",key:"k2fpak"}]]),en=i("chart-scatter",[["circle",{cx:"7.5",cy:"7.5",r:".5",fill:"currentColor",key:"kqv944"}],["circle",{cx:"18.5",cy:"5.5",r:".5",fill:"currentColor",key:"lysivs"}],["circle",{cx:"11.5",cy:"11.5",r:".5",fill:"currentColor",key:"byv1b8"}],["circle",{cx:"7.5",cy:"16.5",r:".5",fill:"currentColor",key:"nkw3mc"}],["circle",{cx:"17.5",cy:"14.5",r:".5",fill:"currentColor",key:"1gjh6j"}],["path",{d:"M3 3v16a2 2 0 0 0 2 2h16",key:"c24i48"}]]),eo=i("chart-spline",[["path",{d:"M3 3v16a2 2 0 0 0 2 2h16",key:"c24i48"}],["path",{d:"M7 16c.5-2 1.5-7 4-7 2 0 2 3 4 3 2.5 0 4.5-5 5-7",key:"lw07rv"}]]),ep=i("check-check",[["path",{d:"M18 6 7 17l-5-5",key:"116fxf"}],["path",{d:"m22 10-7.5 7.5L13 16",key:"ke71qq"}]]),eq=i("check-line",[["path",{d:"M20 4L9 15",key:"1qkx8z"}],["path",{d:"M21 19L3 19",key:"100sma"}],["path",{d:"M9 15L4 10",key:"9zxff7"}]]),er=i("check",[["path",{d:"M20 6 9 17l-5-5",key:"1gmf2c"}]]),es=i("chef-hat",[["path",{d:"M17 21a1 1 0 0 0 1-1v-5.35c0-.457.316-.844.727-1.041a4 4 0 0 0-2.134-7.589 5 5 0 0 0-9.186 0 4 4 0 0 0-2.134 7.588c.411.198.727.585.727 1.041V20a1 1 0 0 0 1 1Z",key:"1qvrer"}],["path",{d:"M6 17h12",key:"1jwigz"}]]),et=i("cherry",[["path",{d:"M2 17a5 5 0 0 0 10 0c0-2.76-2.5-5-5-3-2.5-2-5 .24-5 3Z",key:"cvxqlc"}],["path",{d:"M12 17a5 5 0 0 0 10 0c0-2.76-2.5-5-5-3-2.5-2-5 .24-5 3Z",key:"1ostrc"}],["path",{d:"M7 14c3.22-2.91 4.29-8.75 5-12 1.66 2.38 4.94 9 5 12",key:"hqx58h"}],["path",{d:"M22 9c-4.29 0-7.14-2.33-10-7 5.71 0 10 4.67 10 7Z",key:"eykp1o"}]]),eu=i("chevron-down",[["path",{d:"m6 9 6 6 6-6",key:"qrunsl"}]]),ev=i("chevron-first",[["path",{d:"m17 18-6-6 6-6",key:"1yerx2"}],["path",{d:"M7 6v12",key:"1p53r6"}]]),ew=i("chevron-last",[["path",{d:"m7 18 6-6-6-6",key:"lwmzdw"}],["path",{d:"M17 6v12",key:"1o0aio"}]]),ex=i("chevron-left",[["path",{d:"m15 18-6-6 6-6",key:"1wnfg3"}]]),ey=i("chevron-right",[["path",{d:"m9 18 6-6-6-6",key:"mthhwq"}]]),ez=i("chevron-up",[["path",{d:"m18 15-6-6-6 6",key:"153udz"}]]),eA=i("chevrons-down-up",[["path",{d:"m7 20 5-5 5 5",key:"13a0gw"}],["path",{d:"m7 4 5 5 5-5",key:"1kwcof"}]]),eB=i("chevrons-down",[["path",{d:"m7 6 5 5 5-5",key:"1lc07p"}],["path",{d:"m7 13 5 5 5-5",key:"1d48rs"}]]),eC=i("chevrons-left-right-ellipsis",[["path",{d:"M12 12h.01",key:"1mp3jc"}],["path",{d:"M16 12h.01",key:"1l6xoz"}],["path",{d:"m17 7 5 5-5 5",key:"1xlxn0"}],["path",{d:"m7 7-5 5 5 5",key:"19njba"}],["path",{d:"M8 12h.01",key:"czm47f"}]]),eD=i("chevrons-left-right",[["path",{d:"m9 7-5 5 5 5",key:"j5w590"}],["path",{d:"m15 7 5 5-5 5",key:"1bl6da"}]]),eE=i("chevrons-left",[["path",{d:"m11 17-5-5 5-5",key:"13zhaf"}],["path",{d:"m18 17-5-5 5-5",key:"h8a8et"}]]),eF=i("chevrons-right-left",[["path",{d:"m20 17-5-5 5-5",key:"30x0n2"}],["path",{d:"m4 17 5-5-5-5",key:"16spf4"}]]),eG=i("chevrons-right",[["path",{d:"m6 17 5-5-5-5",key:"xnjwq"}],["path",{d:"m13 17 5-5-5-5",key:"17xmmf"}]]),eH=i("chevrons-up-down",[["path",{d:"m7 15 5 5 5-5",key:"1hf1tw"}],["path",{d:"m7 9 5-5 5 5",key:"sgt6xg"}]]),eI=i("chevrons-up",[["path",{d:"m17 11-5-5-5 5",key:"e8nh98"}],["path",{d:"m17 18-5-5-5 5",key:"2avn1x"}]]),eJ=i("chrome",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["circle",{cx:"12",cy:"12",r:"4",key:"4exip2"}],["line",{x1:"21.17",x2:"12",y1:"8",y2:"8",key:"a0cw5f"}],["line",{x1:"3.95",x2:"8.54",y1:"6.06",y2:"14",key:"1kftof"}],["line",{x1:"10.88",x2:"15.46",y1:"21.94",y2:"14",key:"1ymyh8"}]]),eK=i("cigarette-off",[["path",{d:"M12 12H3a1 1 0 0 0-1 1v2a1 1 0 0 0 1 1h13",key:"1gdiyg"}],["path",{d:"M18 8c0-2.5-2-2.5-2-5",key:"1il607"}],["path",{d:"m2 2 20 20",key:"1ooewy"}],["path",{d:"M21 12a1 1 0 0 1 1 1v2a1 1 0 0 1-.5.866",key:"166zjj"}],["path",{d:"M22 8c0-2.5-2-2.5-2-5",key:"1gah44"}],["path",{d:"M7 12v4",key:"jqww69"}]]),eL=i("church",[["path",{d:"M10 9h4",key:"u4k05v"}],["path",{d:"M12 7v5",key:"ma6bk"}],["path",{d:"M14 22v-4a2 2 0 0 0-4 0v4",key:"1pdhuj"}],["path",{d:"M18 22V5.618a1 1 0 0 0-.553-.894l-4.553-2.277a2 2 0 0 0-1.788 0L6.553 4.724A1 1 0 0 0 6 5.618V22",key:"1rkokr"}],["path",{d:"m18 7 3.447 1.724a1 1 0 0 1 .553.894V20a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2V9.618a1 1 0 0 1 .553-.894L6 7",key:"1w6esw"}]]),eM=i("cigarette",[["path",{d:"M17 12H3a1 1 0 0 0-1 1v2a1 1 0 0 0 1 1h14",key:"1mb5g1"}],["path",{d:"M18 8c0-2.5-2-2.5-2-5",key:"1il607"}],["path",{d:"M21 16a1 1 0 0 0 1-1v-2a1 1 0 0 0-1-1",key:"1yl5r7"}],["path",{d:"M22 8c0-2.5-2-2.5-2-5",key:"1gah44"}],["path",{d:"M7 12v4",key:"jqww69"}]]),eN=i("circle-alert",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["line",{x1:"12",x2:"12",y1:"8",y2:"12",key:"1pkeuh"}],["line",{x1:"12",x2:"12.01",y1:"16",y2:"16",key:"4dfq90"}]]),eO=i("circle-arrow-down",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"M12 8v8",key:"napkw2"}],["path",{d:"m8 12 4 4 4-4",key:"k98ssh"}]]),eP=i("circle-arrow-left",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"m12 8-4 4 4 4",key:"15vm53"}],["path",{d:"M16 12H8",key:"1fr5h0"}]]),eQ=i("circle-arrow-out-down-left",[["path",{d:"M2 12a10 10 0 1 1 10 10",key:"1yn6ov"}],["path",{d:"m2 22 10-10",key:"28ilpk"}],["path",{d:"M8 22H2v-6",key:"sulq54"}]]),eR=i("circle-arrow-out-down-right",[["path",{d:"M12 22a10 10 0 1 1 10-10",key:"130bv5"}],["path",{d:"M22 22 12 12",key:"131aw7"}],["path",{d:"M22 16v6h-6",key:"1gvm70"}]]),eS=i("circle-arrow-out-up-left",[["path",{d:"M2 8V2h6",key:"hiwtdz"}],["path",{d:"m2 2 10 10",key:"1oh8rs"}],["path",{d:"M12 2A10 10 0 1 1 2 12",key:"rrk4fa"}]]),eT=i("circle-arrow-out-up-right",[["path",{d:"M22 12A10 10 0 1 1 12 2",key:"1fm58d"}],["path",{d:"M22 2 12 12",key:"yg2myt"}],["path",{d:"M16 2h6v6",key:"zan5cs"}]]),eU=i("circle-arrow-right",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"m12 16 4-4-4-4",key:"1i9zcv"}],["path",{d:"M8 12h8",key:"1wcyev"}]]),eV=i("circle-arrow-up",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"m16 12-4-4-4 4",key:"177agl"}],["path",{d:"M12 16V8",key:"1sbj14"}]]),eW=i("circle-check-big",[["path",{d:"M21.801 10A10 10 0 1 1 17 3.335",key:"yps3ct"}],["path",{d:"m9 11 3 3L22 4",key:"1pflzl"}]]),eX=i("circle-check",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"m9 12 2 2 4-4",key:"dzmm74"}]]),eY=i("circle-chevron-down",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"m16 10-4 4-4-4",key:"894hmk"}]]),eZ=i("circle-chevron-left",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"m14 16-4-4 4-4",key:"ojs7w8"}]]),e$=i("circle-chevron-right",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"m10 8 4 4-4 4",key:"1wy4r4"}]]),e_=i("circle-chevron-up",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"m8 14 4-4 4 4",key:"fy2ptz"}]]),e0=i("circle-dashed",[["path",{d:"M10.1 2.182a10 10 0 0 1 3.8 0",key:"5ilxe3"}],["path",{d:"M13.9 21.818a10 10 0 0 1-3.8 0",key:"11zvb9"}],["path",{d:"M17.609 3.721a10 10 0 0 1 2.69 2.7",key:"1iw5b2"}],["path",{d:"M2.182 13.9a10 10 0 0 1 0-3.8",key:"c0bmvh"}],["path",{d:"M20.279 17.609a10 10 0 0 1-2.7 2.69",key:"1ruxm7"}],["path",{d:"M21.818 10.1a10 10 0 0 1 0 3.8",key:"qkgqxc"}],["path",{d:"M3.721 6.391a10 10 0 0 1 2.7-2.69",key:"1mcia2"}],["path",{d:"M6.391 20.279a10 10 0 0 1-2.69-2.7",key:"1fvljs"}]]),e1=i("circle-divide",[["line",{x1:"8",x2:"16",y1:"12",y2:"12",key:"1jonct"}],["line",{x1:"12",x2:"12",y1:"16",y2:"16",key:"aqc6ln"}],["line",{x1:"12",x2:"12",y1:"8",y2:"8",key:"1mkcni"}],["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}]]),e2=i("circle-dollar-sign",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"M16 8h-6a2 2 0 1 0 0 4h4a2 2 0 1 1 0 4H8",key:"1h4pet"}],["path",{d:"M12 18V6",key:"zqpxq5"}]]),e3=i("circle-dot-dashed",[["path",{d:"M10.1 2.18a9.93 9.93 0 0 1 3.8 0",key:"1qdqn0"}],["path",{d:"M17.6 3.71a9.95 9.95 0 0 1 2.69 2.7",key:"1bq7p6"}],["path",{d:"M21.82 10.1a9.93 9.93 0 0 1 0 3.8",key:"1rlaqf"}],["path",{d:"M20.29 17.6a9.95 9.95 0 0 1-2.7 2.69",key:"1xk03u"}],["path",{d:"M13.9 21.82a9.94 9.94 0 0 1-3.8 0",key:"l7re25"}],["path",{d:"M6.4 20.29a9.95 9.95 0 0 1-2.69-2.7",key:"1v18p6"}],["path",{d:"M2.18 13.9a9.93 9.93 0 0 1 0-3.8",key:"xdo6bj"}],["path",{d:"M3.71 6.4a9.95 9.95 0 0 1 2.7-2.69",key:"1jjmaz"}],["circle",{cx:"12",cy:"12",r:"1",key:"41hilf"}]]),e4=i("circle-dot",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["circle",{cx:"12",cy:"12",r:"1",key:"41hilf"}]]),e5=i("circle-ellipsis",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"M17 12h.01",key:"1m0b6t"}],["path",{d:"M12 12h.01",key:"1mp3jc"}],["path",{d:"M7 12h.01",key:"eqddd0"}]]),e6=i("circle-equal",[["path",{d:"M7 10h10",key:"1101jm"}],["path",{d:"M7 14h10",key:"1mhdw3"}],["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}]]),e7=i("circle-fading-arrow-up",[["path",{d:"M12 2a10 10 0 0 1 7.38 16.75",key:"175t95"}],["path",{d:"m16 12-4-4-4 4",key:"177agl"}],["path",{d:"M12 16V8",key:"1sbj14"}],["path",{d:"M2.5 8.875a10 10 0 0 0-.5 3",key:"1vce0s"}],["path",{d:"M2.83 16a10 10 0 0 0 2.43 3.4",key:"o3fkw4"}],["path",{d:"M4.636 5.235a10 10 0 0 1 .891-.857",key:"1szpfk"}],["path",{d:"M8.644 21.42a10 10 0 0 0 7.631-.38",key:"9yhvd4"}]]),e8=i("circle-fading-plus",[["path",{d:"M12 2a10 10 0 0 1 7.38 16.75",key:"175t95"}],["path",{d:"M12 8v8",key:"napkw2"}],["path",{d:"M16 12H8",key:"1fr5h0"}],["path",{d:"M2.5 8.875a10 10 0 0 0-.5 3",key:"1vce0s"}],["path",{d:"M2.83 16a10 10 0 0 0 2.43 3.4",key:"o3fkw4"}],["path",{d:"M4.636 5.235a10 10 0 0 1 .891-.857",key:"1szpfk"}],["path",{d:"M8.644 21.42a10 10 0 0 0 7.631-.38",key:"9yhvd4"}]]),e9=i("circle-gauge",[["path",{d:"M15.6 2.7a10 10 0 1 0 5.7 5.7",key:"1e0p6d"}],["circle",{cx:"12",cy:"12",r:"2",key:"1c9p78"}],["path",{d:"M13.4 10.6 19 5",key:"1kr7tw"}]]),fa=i("circle-minus",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"M8 12h8",key:"1wcyev"}]]),fb=i("circle-off",[["path",{d:"m2 2 20 20",key:"1ooewy"}],["path",{d:"M8.35 2.69A10 10 0 0 1 21.3 15.65",key:"1pfsoa"}],["path",{d:"M19.08 19.08A10 10 0 1 1 4.92 4.92",key:"1ablyi"}]]),fc=i("circle-parking-off",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"m5 5 14 14",key:"11anup"}],["path",{d:"M13 13a3 3 0 1 0 0-6H9v2",key:"uoagbd"}],["path",{d:"M9 17v-2.34",key:"a9qo08"}]]),fd=i("circle-parking",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"M9 17V7h4a3 3 0 0 1 0 6H9",key:"1dfk2c"}]]),fe=i("circle-pause",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["line",{x1:"10",x2:"10",y1:"15",y2:"9",key:"c1nkhi"}],["line",{x1:"14",x2:"14",y1:"15",y2:"9",key:"h65svq"}]]),ff=i("circle-percent",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"m15 9-6 6",key:"1uzhvr"}],["path",{d:"M9 9h.01",key:"1q5me6"}],["path",{d:"M15 15h.01",key:"lqbp3k"}]]),fg=i("circle-play",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["polygon",{points:"10 8 16 12 10 16 10 8",key:"1cimsy"}]]),fh=i("circle-plus",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"M8 12h8",key:"1wcyev"}],["path",{d:"M12 8v8",key:"napkw2"}]]),fi=i("circle-pound-sterling",[["path",{d:"M10 16V9.5a1 1 0 0 1 5 0",key:"1i1are"}],["path",{d:"M8 12h4",key:"qz6y1c"}],["path",{d:"M8 16h7",key:"sbedsn"}],["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}]]),fj=i("circle-power",[["path",{d:"M12 7v4",key:"xawao1"}],["path",{d:"M7.998 9.003a5 5 0 1 0 8-.005",key:"1pek45"}],["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}]]),fk=i("circle-question-mark",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"M9.09 9a3 3 0 0 1 5.83 1c0 2-3 3-3 3",key:"1u773s"}],["path",{d:"M12 17h.01",key:"p32p05"}]]),fl=i("circle-slash-2",[["path",{d:"M22 2 2 22",key:"y4kqgn"}],["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}]]),fm=i("circle-slash",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["line",{x1:"9",x2:"15",y1:"15",y2:"9",key:"1dfufj"}]]),fn=i("circle-small",[["circle",{cx:"12",cy:"12",r:"6",key:"1vlfrh"}]]),fo=i("circle-stop",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["rect",{x:"9",y:"9",width:"6",height:"6",rx:"1",key:"1ssd4o"}]]),fp=i("circle-user-round",[["path",{d:"M18 20a6 6 0 0 0-12 0",key:"1qehca"}],["circle",{cx:"12",cy:"10",r:"4",key:"1h16sb"}],["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}]]),fq=i("circle-user",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["circle",{cx:"12",cy:"10",r:"3",key:"ilqhr7"}],["path",{d:"M7 20.662V19a2 2 0 0 1 2-2h6a2 2 0 0 1 2 2v1.662",key:"154egf"}]]),fr=i("circle-x",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"m15 9-6 6",key:"1uzhvr"}],["path",{d:"m9 9 6 6",key:"z0biqf"}]]),fs=i("circle",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}]]),ft=i("circuit-board",[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",key:"afitv7"}],["path",{d:"M11 9h4a2 2 0 0 0 2-2V3",key:"1ve2rv"}],["circle",{cx:"9",cy:"9",r:"2",key:"af1f0g"}],["path",{d:"M7 21v-4a2 2 0 0 1 2-2h4",key:"1fwkro"}],["circle",{cx:"15",cy:"15",r:"2",key:"3i40o0"}]]),fu=i("citrus",[["path",{d:"M21.66 17.67a1.08 1.08 0 0 1-.04 1.6A12 12 0 0 1 4.73 2.38a1.1 1.1 0 0 1 1.61-.04z",key:"4ite01"}],["path",{d:"M19.65 15.66A8 8 0 0 1 8.35 4.34",key:"1gxipu"}],["path",{d:"m14 10-5.5 5.5",key:"92pfem"}],["path",{d:"M14 17.85V10H6.15",key:"xqmtsk"}]]),fv=i("clapperboard",[["path",{d:"M20.2 6 3 11l-.9-2.4c-.3-1.1.3-2.2 1.3-2.5l13.5-4c1.1-.3 2.2.3 2.5 1.3Z",key:"1tn4o7"}],["path",{d:"m6.2 5.3 3.1 3.9",key:"iuk76l"}],["path",{d:"m12.4 3.4 3.1 4",key:"6hsd6n"}],["path",{d:"M3 11h18v8a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2Z",key:"ltgou9"}]]),fw=i("clipboard-check",[["rect",{width:"8",height:"4",x:"8",y:"2",rx:"1",ry:"1",key:"tgr4d6"}],["path",{d:"M16 4h2a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2h2",key:"116196"}],["path",{d:"m9 14 2 2 4-4",key:"df797q"}]]),fx=i("clipboard-copy",[["rect",{width:"8",height:"4",x:"8",y:"2",rx:"1",ry:"1",key:"tgr4d6"}],["path",{d:"M8 4H6a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2v-2",key:"4jdomd"}],["path",{d:"M16 4h2a2 2 0 0 1 2 2v4",key:"3hqy98"}],["path",{d:"M21 14H11",key:"1bme5i"}],["path",{d:"m15 10-4 4 4 4",key:"5dvupr"}]]),fy=i("clipboard-list",[["rect",{width:"8",height:"4",x:"8",y:"2",rx:"1",ry:"1",key:"tgr4d6"}],["path",{d:"M16 4h2a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2h2",key:"116196"}],["path",{d:"M12 11h4",key:"1jrz19"}],["path",{d:"M12 16h4",key:"n85exb"}],["path",{d:"M8 11h.01",key:"1dfujw"}],["path",{d:"M8 16h.01",key:"18s6g9"}]]),fz=i("clipboard-minus",[["rect",{width:"8",height:"4",x:"8",y:"2",rx:"1",ry:"1",key:"tgr4d6"}],["path",{d:"M16 4h2a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2h2",key:"116196"}],["path",{d:"M9 14h6",key:"159ibu"}]]),fA=i("clipboard-paste",[["path",{d:"M11 14h10",key:"1w8e9d"}],["path",{d:"M16 4h2a2 2 0 0 1 2 2v1.344",key:"1e62lh"}],["path",{d:"m17 18 4-4-4-4",key:"z2g111"}],["path",{d:"M8 4H6a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h12a2 2 0 0 0 1.793-1.113",key:"bjbb7m"}],["rect",{x:"8",y:"2",width:"8",height:"4",rx:"1",key:"ublpy"}]]),fB=i("clipboard-pen-line",[["rect",{width:"8",height:"4",x:"8",y:"2",rx:"1",key:"1oijnt"}],["path",{d:"M8 4H6a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2v-.5",key:"1but9f"}],["path",{d:"M16 4h2a2 2 0 0 1 1.73 1",key:"1p8n7l"}],["path",{d:"M8 18h1",key:"13wk12"}],["path",{d:"M21.378 12.626a1 1 0 0 0-3.004-3.004l-4.01 4.012a2 2 0 0 0-.506.854l-.837 2.87a.5.5 0 0 0 .62.62l2.87-.837a2 2 0 0 0 .854-.506z",key:"2t3380"}]]),fC=i("clipboard-pen",[["rect",{width:"8",height:"4",x:"8",y:"2",rx:"1",key:"1oijnt"}],["path",{d:"M16 4h2a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2h-5.5",key:"cereej"}],["path",{d:"M4 13.5V6a2 2 0 0 1 2-2h2",key:"5ua5vh"}],["path",{d:"M13.378 15.626a1 1 0 1 0-3.004-3.004l-5.01 5.012a2 2 0 0 0-.506.854l-.837 2.87a.5.5 0 0 0 .62.62l2.87-.837a2 2 0 0 0 .854-.506z",key:"1y4qbx"}]]),fD=i("clipboard-plus",[["rect",{width:"8",height:"4",x:"8",y:"2",rx:"1",ry:"1",key:"tgr4d6"}],["path",{d:"M16 4h2a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2h2",key:"116196"}],["path",{d:"M9 14h6",key:"159ibu"}],["path",{d:"M12 17v-6",key:"1y8rbf"}]]),fE=i("clipboard-type",[["rect",{width:"8",height:"4",x:"8",y:"2",rx:"1",ry:"1",key:"tgr4d6"}],["path",{d:"M16 4h2a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2h2",key:"116196"}],["path",{d:"M9 12v-1h6v1",key:"iehl6m"}],["path",{d:"M11 17h2",key:"12w5me"}],["path",{d:"M12 11v6",key:"1bwqyc"}]]),fF=i("clipboard-x",[["rect",{width:"8",height:"4",x:"8",y:"2",rx:"1",ry:"1",key:"tgr4d6"}],["path",{d:"M16 4h2a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2h2",key:"116196"}],["path",{d:"m15 11-6 6",key:"1toa9n"}],["path",{d:"m9 11 6 6",key:"wlibny"}]]),fG=i("clipboard",[["rect",{width:"8",height:"4",x:"8",y:"2",rx:"1",ry:"1",key:"tgr4d6"}],["path",{d:"M16 4h2a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2h2",key:"116196"}]]),fH=i("clock-1",[["path",{d:"M12 6v6l2-4",key:"miptyd"}],["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}]]),fI=i("clock-10",[["path",{d:"M12 6v6l-4-2",key:"cedpoo"}],["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}]]),fJ=i("clock-11",[["path",{d:"M12 6v6l-2-4",key:"ns39ag"}],["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}]]),fK=i("clock-2",[["path",{d:"M12 6v6l4-2",key:"1r2kuh"}],["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}]]),fL=i("clock-12",[["path",{d:"M12 6v6",key:"1ipuwl"}],["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}]]),fM=i("clock-3",[["path",{d:"M12 6v6h4",key:"135r8i"}],["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}]]),fN=i("clock-4",[["path",{d:"M12 6v6l4 2",key:"mmk7yg"}],["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}]]),fO=i("clock-5",[["path",{d:"M12 6v6l2 4",key:"1287s9"}],["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}]]),fP=i("clock-6",[["path",{d:"M12 6v10",key:"wf7rdh"}],["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}]]),fQ=i("clock-7",[["path",{d:"M12 6v6l-2 4",key:"1095bu"}],["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}]]),fR=i("clock-8",[["path",{d:"M12 6v6l-4 2",key:"imc3wl"}],["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}]]),fS=i("clock-9",[["path",{d:"M12 6v6H8",key:"u39vzm"}],["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}]]),fT=i("clock-alert",[["path",{d:"M12 6v6l4 2",key:"mmk7yg"}],["path",{d:"M20 12v5",key:"12wsvk"}],["path",{d:"M20 21h.01",key:"1p6o6n"}],["path",{d:"M21.25 8.2A10 10 0 1 0 16 21.16",key:"17fp9f"}]]),fU=i("clock-arrow-down",[["path",{d:"M12 6v6l2 1",key:"19cm8n"}],["path",{d:"M12.337 21.994a10 10 0 1 1 9.588-8.767",key:"28moa"}],["path",{d:"m14 18 4 4 4-4",key:"1waygx"}],["path",{d:"M18 14v8",key:"irew45"}]]),fV=i("clock-arrow-up",[["path",{d:"M12 6v6l1.56.78",key:"14ed3g"}],["path",{d:"M13.227 21.925a10 10 0 1 1 8.767-9.588",key:"jwkls1"}],["path",{d:"m14 18 4-4 4 4",key:"ftkppy"}],["path",{d:"M18 22v-8",key:"su0gjh"}]]),fW=i("clock-fading",[["path",{d:"M12 2a10 10 0 0 1 7.38 16.75",key:"175t95"}],["path",{d:"M12 6v6l4 2",key:"mmk7yg"}],["path",{d:"M2.5 8.875a10 10 0 0 0-.5 3",key:"1vce0s"}],["path",{d:"M2.83 16a10 10 0 0 0 2.43 3.4",key:"o3fkw4"}],["path",{d:"M4.636 5.235a10 10 0 0 1 .891-.857",key:"1szpfk"}],["path",{d:"M8.644 21.42a10 10 0 0 0 7.631-.38",key:"9yhvd4"}]]),fX=i("clock-plus",[["path",{d:"M12 6v6l3.644 1.822",key:"1jmett"}],["path",{d:"M16 19h6",key:"xwg31i"}],["path",{d:"M19 16v6",key:"tddt3s"}],["path",{d:"M21.92 13.267a10 10 0 1 0-8.653 8.653",key:"1u0osk"}]]),fY=i("clock",[["path",{d:"M12 6v6l4 2",key:"mmk7yg"}],["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}]]),fZ=i("cloud-alert",[["path",{d:"M12 12v4",key:"tww15h"}],["path",{d:"M12 20h.01",key:"zekei9"}],["path",{d:"M17 18h.5a1 1 0 0 0 0-9h-1.79A7 7 0 1 0 7 17.708",key:"xsb5ju"}]]),f$=i("cloud-check",[["path",{d:"m17 15-5.5 5.5L9 18",key:"15q87x"}],["path",{d:"M5 17.743A7 7 0 1 1 15.71 10h1.79a4.5 4.5 0 0 1 1.5 8.742",key:"9ho6ki"}]]),f_=i("cloud-cog",[["path",{d:"m10.852 19.772-.383.924",key:"r7sl7d"}],["path",{d:"m13.148 14.228.383-.923",key:"1d5zpm"}],["path",{d:"M13.148 19.772a3 3 0 1 0-2.296-5.544l-.383-.923",key:"1ydik7"}],["path",{d:"m13.53 20.696-.382-.924a3 3 0 1 1-2.296-5.544",key:"1m1vsf"}],["path",{d:"m14.772 15.852.923-.383",key:"660p6e"}],["path",{d:"m14.772 18.148.923.383",key:"hrcpis"}],["path",{d:"M4.2 15.1a7 7 0 1 1 9.93-9.858A7 7 0 0 1 15.71 8h1.79a4.5 4.5 0 0 1 2.5 8.2",key:"j2q98n"}],["path",{d:"m9.228 15.852-.923-.383",key:"1p9ong"}],["path",{d:"m9.228 18.148-.923.383",key:"6558rz"}]]),f0=i("cloud-download",[["path",{d:"M12 13v8l-4-4",key:"1f5nwf"}],["path",{d:"m12 21 4-4",key:"1lfcce"}],["path",{d:"M4.393 15.269A7 7 0 1 1 15.71 8h1.79a4.5 4.5 0 0 1 2.436 8.284",key:"ui1hmy"}]]),f1=i("cloud-drizzle",[["path",{d:"M4 14.899A7 7 0 1 1 15.71 8h1.79a4.5 4.5 0 0 1 2.5 8.242",key:"1pljnt"}],["path",{d:"M8 19v1",key:"1dk2by"}],["path",{d:"M8 14v1",key:"84yxot"}],["path",{d:"M16 19v1",key:"v220m7"}],["path",{d:"M16 14v1",key:"g12gj6"}],["path",{d:"M12 21v1",key:"q8vafk"}],["path",{d:"M12 16v1",key:"1mx6rx"}]]),f2=i("cloud-fog",[["path",{d:"M4 14.899A7 7 0 1 1 15.71 8h1.79a4.5 4.5 0 0 1 2.5 8.242",key:"1pljnt"}],["path",{d:"M16 17H7",key:"pygtm1"}],["path",{d:"M17 21H9",key:"1u2q02"}]]),f3=i("cloud-hail",[["path",{d:"M4 14.899A7 7 0 1 1 15.71 8h1.79a4.5 4.5 0 0 1 2.5 8.242",key:"1pljnt"}],["path",{d:"M16 14v2",key:"a1is7l"}],["path",{d:"M8 14v2",key:"1e9m6t"}],["path",{d:"M16 20h.01",key:"xwek51"}],["path",{d:"M8 20h.01",key:"1vjney"}],["path",{d:"M12 16v2",key:"z66u1j"}],["path",{d:"M12 22h.01",key:"1urd7a"}]]),f4=i("cloud-lightning",[["path",{d:"M6 16.326A7 7 0 1 1 15.71 8h1.79a4.5 4.5 0 0 1 .5 8.973",key:"1cez44"}],["path",{d:"m13 12-3 5h4l-3 5",key:"1t22er"}]]),f5=i("cloud-moon-rain",[["path",{d:"M10.188 8.5A6 6 0 0 1 16 4a1 1 0 0 0 6 6 6 6 0 0 1-3 5.197",key:"erj67n"}],["path",{d:"M11 20v2",key:"174qtz"}],["path",{d:"M3 20a5 5 0 1 1 8.9-4H13a3 3 0 0 1 2 5.24",key:"1qmrp3"}],["path",{d:"M7 19v2",key:"12npes"}]]),f6=i("cloud-moon",[["path",{d:"M10.188 8.5A6 6 0 0 1 16 4a1 1 0 0 0 6 6 6 6 0 0 1-3 5.197",key:"erj67n"}],["path",{d:"M13 16a3 3 0 1 1 0 6H7a5 5 0 1 1 4.9-6Z",key:"p44pc9"}]]),f7=i("cloud-off",[["path",{d:"m2 2 20 20",key:"1ooewy"}],["path",{d:"M5.782 5.782A7 7 0 0 0 9 19h8.5a4.5 4.5 0 0 0 1.307-.193",key:"yfwify"}],["path",{d:"M21.532 16.5A4.5 4.5 0 0 0 17.5 10h-1.79A7.008 7.008 0 0 0 10 5.07",key:"jlfiyv"}]]),f8=i("cloud-rain",[["path",{d:"M4 14.899A7 7 0 1 1 15.71 8h1.79a4.5 4.5 0 0 1 2.5 8.242",key:"1pljnt"}],["path",{d:"M16 14v6",key:"1j4efv"}],["path",{d:"M8 14v6",key:"17c4r9"}],["path",{d:"M12 16v6",key:"c8a4gj"}]]),f9=i("cloud-rain-wind",[["path",{d:"M4 14.899A7 7 0 1 1 15.71 8h1.79a4.5 4.5 0 0 1 2.5 8.242",key:"1pljnt"}],["path",{d:"m9.2 22 3-7",key:"sb5f6j"}],["path",{d:"m9 13-3 7",key:"500co5"}],["path",{d:"m17 13-3 7",key:"8t2fiy"}]]),ga=i("cloud-snow",[["path",{d:"M4 14.899A7 7 0 1 1 15.71 8h1.79a4.5 4.5 0 0 1 2.5 8.242",key:"1pljnt"}],["path",{d:"M8 15h.01",key:"a7atzg"}],["path",{d:"M8 19h.01",key:"puxtts"}],["path",{d:"M12 17h.01",key:"p32p05"}],["path",{d:"M12 21h.01",key:"h35vbk"}],["path",{d:"M16 15h.01",key:"rnfrdf"}],["path",{d:"M16 19h.01",key:"1vcnzz"}]]),gb=i("cloud-sun-rain",[["path",{d:"M12 2v2",key:"tus03m"}],["path",{d:"m4.93 4.93 1.41 1.41",key:"149t6j"}],["path",{d:"M20 12h2",key:"1q8mjw"}],["path",{d:"m19.07 4.93-1.41 1.41",key:"1shlcs"}],["path",{d:"M15.947 12.65a4 4 0 0 0-5.925-4.128",key:"dpwdj0"}],["path",{d:"M3 20a5 5 0 1 1 8.9-4H13a3 3 0 0 1 2 5.24",key:"1qmrp3"}],["path",{d:"M11 20v2",key:"174qtz"}],["path",{d:"M7 19v2",key:"12npes"}]]),gc=i("cloud-sun",[["path",{d:"M12 2v2",key:"tus03m"}],["path",{d:"m4.93 4.93 1.41 1.41",key:"149t6j"}],["path",{d:"M20 12h2",key:"1q8mjw"}],["path",{d:"m19.07 4.93-1.41 1.41",key:"1shlcs"}],["path",{d:"M15.947 12.65a4 4 0 0 0-5.925-4.128",key:"dpwdj0"}],["path",{d:"M13 22H7a5 5 0 1 1 4.9-6H13a3 3 0 0 1 0 6Z",key:"s09mg5"}]]),gd=i("cloud-upload",[["path",{d:"M12 13v8",key:"1l5pq0"}],["path",{d:"M4 14.899A7 7 0 1 1 15.71 8h1.79a4.5 4.5 0 0 1 2.5 8.242",key:"1pljnt"}],["path",{d:"m8 17 4-4 4 4",key:"1quai1"}]]),ge=i("cloud",[["path",{d:"M17.5 19H9a7 7 0 1 1 6.71-9h1.79a4.5 4.5 0 1 1 0 9Z",key:"p7xjir"}]]),gf=i("clover",[["path",{d:"M16.17 7.83 2 22",key:"t58vo8"}],["path",{d:"M4.02 12a2.827 2.827 0 1 1 3.81-4.17A2.827 2.827 0 1 1 12 4.02a2.827 2.827 0 1 1 4.17 3.81A2.827 2.827 0 1 1 19.98 12a2.827 2.827 0 1 1-3.81 4.17A2.827 2.827 0 1 1 12 19.98a2.827 2.827 0 1 1-4.17-3.81A1 1 0 1 1 4 12",key:"17k36q"}],["path",{d:"m7.83 7.83 8.34 8.34",key:"1d7sxk"}]]),gg=i("cloudy",[["path",{d:"M17.5 21H9a7 7 0 1 1 6.71-9h1.79a4.5 4.5 0 1 1 0 9Z",key:"gqqjvc"}],["path",{d:"M22 10a3 3 0 0 0-3-3h-2.207a5.502 5.502 0 0 0-10.702.5",key:"1p2s76"}]]),gh=i("club",[["path",{d:"M17.28 9.05a5.5 5.5 0 1 0-10.56 0A5.5 5.5 0 1 0 12 17.66a5.5 5.5 0 1 0 5.28-8.6Z",key:"27yuqz"}],["path",{d:"M12 17.66L12 22",key:"ogfahf"}]]),gi=i("code-xml",[["path",{d:"m18 16 4-4-4-4",key:"1inbqp"}],["path",{d:"m6 8-4 4 4 4",key:"15zrgr"}],["path",{d:"m14.5 4-5 16",key:"e7oirm"}]]),gj=i("code",[["path",{d:"m16 18 6-6-6-6",key:"eg8j8"}],["path",{d:"m8 6-6 6 6 6",key:"ppft3o"}]]),gk=i("codepen",[["polygon",{points:"12 2 22 8.5 22 15.5 12 22 2 15.5 2 8.5 12 2",key:"srzb37"}],["line",{x1:"12",x2:"12",y1:"22",y2:"15.5",key:"1t73f2"}],["polyline",{points:"22 8.5 12 15.5 2 8.5",key:"ajlxae"}],["polyline",{points:"2 15.5 12 8.5 22 15.5",key:"susrui"}],["line",{x1:"12",x2:"12",y1:"2",y2:"8.5",key:"2cldga"}]]),gl=i("codesandbox",[["path",{d:"M21 16V8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73l7 4a2 2 0 0 0 2 0l7-4A2 2 0 0 0 21 16z",key:"yt0hxn"}],["polyline",{points:"7.5 4.21 12 6.81 16.5 4.21",key:"fabo96"}],["polyline",{points:"7.5 19.79 7.5 14.6 3 12",key:"z377f1"}],["polyline",{points:"21 12 16.5 14.6 16.5 19.79",key:"9nrev1"}],["polyline",{points:"3.27 6.96 12 12.01 20.73 6.96",key:"1180pa"}],["line",{x1:"12",x2:"12",y1:"22.08",y2:"12",key:"3z3uq6"}]]),gm=i("coffee",[["path",{d:"M10 2v2",key:"7u0qdc"}],["path",{d:"M14 2v2",key:"6buw04"}],["path",{d:"M16 8a1 1 0 0 1 1 1v8a4 4 0 0 1-4 4H7a4 4 0 0 1-4-4V9a1 1 0 0 1 1-1h14a4 4 0 1 1 0 8h-1",key:"pwadti"}],["path",{d:"M6 2v2",key:"colzsn"}]]),gn=i("cog",[["path",{d:"M12 20a8 8 0 1 0 0-16 8 8 0 0 0 0 16Z",key:"sobvz5"}],["path",{d:"M12 14a2 2 0 1 0 0-4 2 2 0 0 0 0 4Z",key:"11i496"}],["path",{d:"M12 2v2",key:"tus03m"}],["path",{d:"M12 22v-2",key:"1osdcq"}],["path",{d:"m17 20.66-1-1.73",key:"eq3orb"}],["path",{d:"M11 10.27 7 3.34",key:"16pf9h"}],["path",{d:"m20.66 17-1.73-1",key:"sg0v6f"}],["path",{d:"m3.34 7 1.73 1",key:"1ulond"}],["path",{d:"M14 12h8",key:"4f43i9"}],["path",{d:"M2 12h2",key:"1t8f8n"}],["path",{d:"m20.66 7-1.73 1",key:"1ow05n"}],["path",{d:"m3.34 17 1.73-1",key:"nuk764"}],["path",{d:"m17 3.34-1 1.73",key:"2wel8s"}],["path",{d:"m11 13.73-4 6.93",key:"794ttg"}]]),go=i("coins",[["circle",{cx:"8",cy:"8",r:"6",key:"3yglwk"}],["path",{d:"M18.09 10.37A6 6 0 1 1 10.34 18",key:"t5s6rm"}],["path",{d:"M7 6h1v4",key:"1obek4"}],["path",{d:"m16.71 13.88.7.71-2.82 2.82",key:"1rbuyh"}]]),gp=i("columns-2",[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",key:"afitv7"}],["path",{d:"M12 3v18",key:"108xh3"}]]),gq=i("columns-3-cog",[["path",{d:"M10.5 21H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2v5.5",key:"1g2yzs"}],["path",{d:"m14.3 19.6 1-.4",key:"11sv9r"}],["path",{d:"M15 3v7.5",key:"7lm50a"}],["path",{d:"m15.2 16.9-.9-.3",key:"1t7mvx"}],["path",{d:"m16.6 21.7.3-.9",key:"1j67ps"}],["path",{d:"m16.8 15.3-.4-1",key:"1ei7r6"}],["path",{d:"m19.1 15.2.3-.9",key:"18r7jp"}],["path",{d:"m19.6 21.7-.4-1",key:"z2vh2"}],["path",{d:"m20.7 16.8 1-.4",key:"19m87a"}],["path",{d:"m21.7 19.4-.9-.3",key:"1qgwi9"}],["path",{d:"M9 3v18",key:"fh3hqa"}],["circle",{cx:"18",cy:"18",r:"3",key:"1xkwt0"}]]),gr=i("columns-3",[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",key:"afitv7"}],["path",{d:"M9 3v18",key:"fh3hqa"}],["path",{d:"M15 3v18",key:"14nvp0"}]]),gs=i("columns-4",[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",key:"afitv7"}],["path",{d:"M7.5 3v18",key:"w0wo6v"}],["path",{d:"M12 3v18",key:"108xh3"}],["path",{d:"M16.5 3v18",key:"10tjh1"}]]),gt=i("combine",[["path",{d:"M10 18H5a3 3 0 0 1-3-3v-1",key:"ru65g8"}],["path",{d:"M14 2a2 2 0 0 1 2 2v4a2 2 0 0 1-2 2",key:"e30een"}],["path",{d:"M20 2a2 2 0 0 1 2 2v4a2 2 0 0 1-2 2",key:"2ahx8o"}],["path",{d:"m7 21 3-3-3-3",key:"127cv2"}],["rect",{x:"14",y:"14",width:"8",height:"8",rx:"2",key:"1b0bso"}],["rect",{x:"2",y:"2",width:"8",height:"8",rx:"2",key:"1x09vl"}]]),gu=i("command",[["path",{d:"M15 6v12a3 3 0 1 0 3-3H6a3 3 0 1 0 3 3V6a3 3 0 1 0-3 3h12a3 3 0 1 0-3-3",key:"11bfej"}]]),gv=i("compass",[["path",{d:"m16.24 7.76-1.804 5.411a2 2 0 0 1-1.265 1.265L7.76 16.24l1.804-5.411a2 2 0 0 1 1.265-1.265z",key:"9ktpf1"}],["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}]]),gw=i("component",[["path",{d:"M15.536 11.293a1 1 0 0 0 0 1.414l2.376 2.377a1 1 0 0 0 1.414 0l2.377-2.377a1 1 0 0 0 0-1.414l-2.377-2.377a1 1 0 0 0-1.414 0z",key:"1uwlt4"}],["path",{d:"M2.297 11.293a1 1 0 0 0 0 1.414l2.377 2.377a1 1 0 0 0 1.414 0l2.377-2.377a1 1 0 0 0 0-1.414L6.088 8.916a1 1 0 0 0-1.414 0z",key:"10291m"}],["path",{d:"M8.916 17.912a1 1 0 0 0 0 1.415l2.377 2.376a1 1 0 0 0 1.414 0l2.377-2.376a1 1 0 0 0 0-1.415l-2.377-2.376a1 1 0 0 0-1.414 0z",key:"1tqoq1"}],["path",{d:"M8.916 4.674a1 1 0 0 0 0 1.414l2.377 2.376a1 1 0 0 0 1.414 0l2.377-2.376a1 1 0 0 0 0-1.414l-2.377-2.377a1 1 0 0 0-1.414 0z",key:"1x6lto"}]]),gx=i("computer",[["rect",{width:"14",height:"8",x:"5",y:"2",rx:"2",key:"wc9tft"}],["rect",{width:"20",height:"8",x:"2",y:"14",rx:"2",key:"w68u3i"}],["path",{d:"M6 18h2",key:"rwmk9e"}],["path",{d:"M12 18h6",key:"aqd8w3"}]]),gy=i("concierge-bell",[["path",{d:"M3 20a1 1 0 0 1-1-1v-1a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2v1a1 1 0 0 1-1 1Z",key:"1pvr1r"}],["path",{d:"M20 16a8 8 0 1 0-16 0",key:"1pa543"}],["path",{d:"M12 4v4",key:"1bq03y"}],["path",{d:"M10 4h4",key:"1xpv9s"}]]),gz=i("cone",[["path",{d:"m20.9 18.55-8-15.98a1 1 0 0 0-1.8 0l-8 15.98",key:"53pte7"}],["ellipse",{cx:"12",cy:"19",rx:"9",ry:"3",key:"1ji25f"}]]),gA=i("construction",[["rect",{x:"2",y:"6",width:"20",height:"8",rx:"1",key:"1estib"}],["path",{d:"M17 14v7",key:"7m2elx"}],["path",{d:"M7 14v7",key:"1cm7wv"}],["path",{d:"M17 3v3",key:"1v4jwn"}],["path",{d:"M7 3v3",key:"7o6guu"}],["path",{d:"M10 14 2.3 6.3",key:"1023jk"}],["path",{d:"m14 6 7.7 7.7",key:"1s8pl2"}],["path",{d:"m8 6 8 8",key:"hl96qh"}]]),gB=i("contact-round",[["path",{d:"M16 2v2",key:"scm5qe"}],["path",{d:"M17.915 22a6 6 0 0 0-12 0",key:"suqz9p"}],["path",{d:"M8 2v2",key:"pbkmx"}],["circle",{cx:"12",cy:"12",r:"4",key:"4exip2"}],["rect",{x:"3",y:"4",width:"18",height:"18",rx:"2",key:"12vinp"}]]),gC=i("contact",[["path",{d:"M16 2v2",key:"scm5qe"}],["path",{d:"M7 22v-2a2 2 0 0 1 2-2h6a2 2 0 0 1 2 2v2",key:"1waht3"}],["path",{d:"M8 2v2",key:"pbkmx"}],["circle",{cx:"12",cy:"11",r:"3",key:"itu57m"}],["rect",{x:"3",y:"4",width:"18",height:"18",rx:"2",key:"12vinp"}]]),gD=i("container",[["path",{d:"M22 7.7c0-.6-.4-1.2-.8-1.5l-6.3-3.9a1.72 1.72 0 0 0-1.7 0l-10.3 6c-.5.2-.9.8-.9 1.4v6.6c0 .5.4 1.2.8 1.5l6.3 3.9a1.72 1.72 0 0 0 1.7 0l10.3-6c.5-.3.9-1 .9-1.5Z",key:"1t2lqe"}],["path",{d:"M10 21.9V14L2.1 9.1",key:"o7czzq"}],["path",{d:"m10 14 11.9-6.9",key:"zm5e20"}],["path",{d:"M14 19.8v-8.1",key:"159ecu"}],["path",{d:"M18 17.5V9.4",key:"11uown"}]]),gE=i("contrast",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"M12 18a6 6 0 0 0 0-12v12z",key:"j4l70d"}]]),gF=i("cookie",[["path",{d:"M12 2a10 10 0 1 0 10 10 4 4 0 0 1-5-5 4 4 0 0 1-5-5",key:"laymnq"}],["path",{d:"M8.5 8.5v.01",key:"ue8clq"}],["path",{d:"M16 15.5v.01",key:"14dtrp"}],["path",{d:"M12 12v.01",key:"u5ubse"}],["path",{d:"M11 17v.01",key:"1hyl5a"}],["path",{d:"M7 14v.01",key:"uct60s"}]]),gG=i("cooking-pot",[["path",{d:"M2 12h20",key:"9i4pu4"}],["path",{d:"M20 12v8a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2v-8",key:"u0tga0"}],["path",{d:"m4 8 16-4",key:"16g0ng"}],["path",{d:"m8.86 6.78-.45-1.81a2 2 0 0 1 1.45-2.43l1.94-.48a2 2 0 0 1 2.43 1.46l.45 1.8",key:"12cejc"}]]),gH=i("copy-check",[["path",{d:"m12 15 2 2 4-4",key:"2c609p"}],["rect",{width:"14",height:"14",x:"8",y:"8",rx:"2",ry:"2",key:"17jyea"}],["path",{d:"M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2",key:"zix9uf"}]]),gI=i("copy-minus",[["line",{x1:"12",x2:"18",y1:"15",y2:"15",key:"1nscbv"}],["rect",{width:"14",height:"14",x:"8",y:"8",rx:"2",ry:"2",key:"17jyea"}],["path",{d:"M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2",key:"zix9uf"}]]),gJ=i("copy-plus",[["line",{x1:"15",x2:"15",y1:"12",y2:"18",key:"1p7wdc"}],["line",{x1:"12",x2:"18",y1:"15",y2:"15",key:"1nscbv"}],["rect",{width:"14",height:"14",x:"8",y:"8",rx:"2",ry:"2",key:"17jyea"}],["path",{d:"M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2",key:"zix9uf"}]]),gK=i("copy-x",[["line",{x1:"12",x2:"18",y1:"12",y2:"18",key:"1rg63v"}],["line",{x1:"12",x2:"18",y1:"18",y2:"12",key:"ebkxgr"}],["rect",{width:"14",height:"14",x:"8",y:"8",rx:"2",ry:"2",key:"17jyea"}],["path",{d:"M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2",key:"zix9uf"}]]),gL=i("copy-slash",[["line",{x1:"12",x2:"18",y1:"18",y2:"12",key:"ebkxgr"}],["rect",{width:"14",height:"14",x:"8",y:"8",rx:"2",ry:"2",key:"17jyea"}],["path",{d:"M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2",key:"zix9uf"}]]),gM=i("copy",[["rect",{width:"14",height:"14",x:"8",y:"8",rx:"2",ry:"2",key:"17jyea"}],["path",{d:"M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2",key:"zix9uf"}]]),gN=i("copyright",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"M14.83 14.83a4 4 0 1 1 0-5.66",key:"1i56pz"}]]),gO=i("copyleft",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"M9.17 14.83a4 4 0 1 0 0-5.66",key:"1sveal"}]]),gP=i("corner-down-left",[["path",{d:"M20 4v7a4 4 0 0 1-4 4H4",key:"6o5b7l"}],["path",{d:"m9 10-5 5 5 5",key:"1kshq7"}]]),gQ=i("corner-down-right",[["path",{d:"m15 10 5 5-5 5",key:"qqa56n"}],["path",{d:"M4 4v7a4 4 0 0 0 4 4h12",key:"z08zvw"}]]),gR=i("corner-left-down",[["path",{d:"m14 15-5 5-5-5",key:"1eia93"}],["path",{d:"M20 4h-7a4 4 0 0 0-4 4v12",key:"nbpdq2"}]]),gS=i("corner-left-up",[["path",{d:"M14 9 9 4 4 9",key:"1af5af"}],["path",{d:"M20 20h-7a4 4 0 0 1-4-4V4",key:"1blwi3"}]]),gT=i("corner-right-down",[["path",{d:"m10 15 5 5 5-5",key:"1hpjnr"}],["path",{d:"M4 4h7a4 4 0 0 1 4 4v12",key:"wcbgct"}]]),gU=i("corner-right-up",[["path",{d:"m10 9 5-5 5 5",key:"9ctzwi"}],["path",{d:"M4 20h7a4 4 0 0 0 4-4V4",key:"1plgdj"}]]),gV=i("corner-up-left",[["path",{d:"M20 20v-7a4 4 0 0 0-4-4H4",key:"1nkjon"}],["path",{d:"M9 14 4 9l5-5",key:"102s5s"}]]),gW=i("corner-up-right",[["path",{d:"m15 14 5-5-5-5",key:"12vg1m"}],["path",{d:"M4 20v-7a4 4 0 0 1 4-4h12",key:"1lu4f8"}]]),gX=i("cpu",[["path",{d:"M12 20v2",key:"1lh1kg"}],["path",{d:"M12 2v2",key:"tus03m"}],["path",{d:"M17 20v2",key:"1rnc9c"}],["path",{d:"M17 2v2",key:"11trls"}],["path",{d:"M2 12h2",key:"1t8f8n"}],["path",{d:"M2 17h2",key:"7oei6x"}],["path",{d:"M2 7h2",key:"asdhe0"}],["path",{d:"M20 12h2",key:"1q8mjw"}],["path",{d:"M20 17h2",key:"1fpfkl"}],["path",{d:"M20 7h2",key:"1o8tra"}],["path",{d:"M7 20v2",key:"4gnj0m"}],["path",{d:"M7 2v2",key:"1i4yhu"}],["rect",{x:"4",y:"4",width:"16",height:"16",rx:"2",key:"1vbyd7"}],["rect",{x:"8",y:"8",width:"8",height:"8",rx:"1",key:"z9xiuo"}]]),gY=i("creative-commons",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"M10 9.3a2.8 2.8 0 0 0-3.5 1 3.1 3.1 0 0 0 0 3.4 2.7 2.7 0 0 0 3.5 1",key:"1ss3eq"}],["path",{d:"M17 9.3a2.8 2.8 0 0 0-3.5 1 3.1 3.1 0 0 0 0 3.4 2.7 2.7 0 0 0 3.5 1",key:"1od56t"}]]),gZ=i("credit-card",[["rect",{width:"20",height:"14",x:"2",y:"5",rx:"2",key:"ynyp8z"}],["line",{x1:"2",x2:"22",y1:"10",y2:"10",key:"1b3vmo"}]]),g$=i("croissant",[["path",{d:"m4.6 13.11 5.79-3.21c1.89-1.05 4.79 1.78 3.71 3.71l-3.22 5.81C8.8 23.16.79 15.23 4.6 13.11Z",key:"1ozxlb"}],["path",{d:"m10.5 9.5-1-2.29C9.2 6.48 8.8 6 8 6H4.5C2.79 6 2 6.5 2 8.5a7.71 7.71 0 0 0 2 4.83",key:"ffuyb5"}],["path",{d:"M8 6c0-1.55.24-4-2-4-2 0-2.5 2.17-2.5 4",key:"osnpzi"}],["path",{d:"m14.5 13.5 2.29 1c.73.3 1.21.7 1.21 1.5v3.5c0 1.71-.5 2.5-2.5 2.5a7.71 7.71 0 0 1-4.83-2",key:"1vubaw"}],["path",{d:"M18 16c1.55 0 4-.24 4 2 0 2-2.17 2.5-4 2.5",key:"wxr772"}]]),g_=i("crop",[["path",{d:"M6 2v14a2 2 0 0 0 2 2h14",key:"ron5a4"}],["path",{d:"M18 22V8a2 2 0 0 0-2-2H2",key:"7s9ehn"}]]),g0=i("cross",[["path",{d:"M4 9a2 2 0 0 0-2 2v2a2 2 0 0 0 2 2h4a1 1 0 0 1 1 1v4a2 2 0 0 0 2 2h2a2 2 0 0 0 2-2v-4a1 1 0 0 1 1-1h4a2 2 0 0 0 2-2v-2a2 2 0 0 0-2-2h-4a1 1 0 0 1-1-1V4a2 2 0 0 0-2-2h-2a2 2 0 0 0-2 2v4a1 1 0 0 1-1 1z",key:"1xbrqy"}]]),g1=i("crosshair",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["line",{x1:"22",x2:"18",y1:"12",y2:"12",key:"l9bcsi"}],["line",{x1:"6",x2:"2",y1:"12",y2:"12",key:"13hhkx"}],["line",{x1:"12",x2:"12",y1:"6",y2:"2",key:"10w3f3"}],["line",{x1:"12",x2:"12",y1:"22",y2:"18",key:"15g9kq"}]]),g2=i("crown",[["path",{d:"M11.562 3.266a.5.5 0 0 1 .876 0L15.39 8.87a1 1 0 0 0 1.516.294L21.183 5.5a.5.5 0 0 1 .798.519l-2.834 10.246a1 1 0 0 1-.956.734H5.81a1 1 0 0 1-.957-.734L2.02 6.02a.5.5 0 0 1 .798-.519l4.276 3.664a1 1 0 0 0 1.516-.294z",key:"1vdc57"}],["path",{d:"M5 21h14",key:"11awu3"}]]),g3=i("cuboid",[["path",{d:"m21.12 6.4-6.05-4.06a2 2 0 0 0-2.17-.05L2.95 8.41a2 2 0 0 0-.95 1.7v5.82a2 2 0 0 0 .88 1.66l6.05 4.07a2 2 0 0 0 2.17.05l9.95-6.12a2 2 0 0 0 .95-1.7V8.06a2 2 0 0 0-.88-1.66Z",key:"1u2ovd"}],["path",{d:"M10 22v-8L2.25 9.15",key:"11pn4q"}],["path",{d:"m10 14 11.77-6.87",key:"1kt1wh"}]]),g4=i("cup-soda",[["path",{d:"m6 8 1.75 12.28a2 2 0 0 0 2 1.72h4.54a2 2 0 0 0 2-1.72L18 8",key:"8166m8"}],["path",{d:"M5 8h14",key:"pcz4l3"}],["path",{d:"M7 15a6.47 6.47 0 0 1 5 0 6.47 6.47 0 0 0 5 0",key:"yjz344"}],["path",{d:"m12 8 1-6h2",key:"3ybfa4"}]]),g5=i("currency",[["circle",{cx:"12",cy:"12",r:"8",key:"46899m"}],["line",{x1:"3",x2:"6",y1:"3",y2:"6",key:"1jkytn"}],["line",{x1:"21",x2:"18",y1:"3",y2:"6",key:"14zfjt"}],["line",{x1:"3",x2:"6",y1:"21",y2:"18",key:"iusuec"}],["line",{x1:"21",x2:"18",y1:"21",y2:"18",key:"yj2dd7"}]]),g6=i("cylinder",[["ellipse",{cx:"12",cy:"5",rx:"9",ry:"3",key:"msslwz"}],["path",{d:"M3 5v14a9 3 0 0 0 18 0V5",key:"aqi0yr"}]]),g7=i("dam",[["path",{d:"M11 11.31c1.17.56 1.54 1.69 3.5 1.69 2.5 0 2.5-2 5-2 1.3 0 1.9.5 2.5 1",key:"157kva"}],["path",{d:"M11.75 18c.35.5 1.45 1 2.75 1 2.5 0 2.5-2 5-2 1.3 0 1.9.5 2.5 1",key:"d7q6m6"}],["path",{d:"M2 10h4",key:"l0bgd4"}],["path",{d:"M2 14h4",key:"1gsvsf"}],["path",{d:"M2 18h4",key:"1bu2t1"}],["path",{d:"M2 6h4",key:"aawbzj"}],["path",{d:"M7 3a1 1 0 0 0-1 1v16a1 1 0 0 0 1 1h4a1 1 0 0 0 1-1L10 4a1 1 0 0 0-1-1z",key:"pr6s65"}]]),g8=i("database-backup",[["ellipse",{cx:"12",cy:"5",rx:"9",ry:"3",key:"msslwz"}],["path",{d:"M3 12a9 3 0 0 0 5 2.69",key:"1ui2ym"}],["path",{d:"M21 9.3V5",key:"6k6cib"}],["path",{d:"M3 5v14a9 3 0 0 0 6.47 2.88",key:"i62tjy"}],["path",{d:"M12 12v4h4",key:"1bxaet"}],["path",{d:"M13 20a5 5 0 0 0 9-3 4.5 4.5 0 0 0-4.5-4.5c-1.33 0-2.54.54-3.41 1.41L12 16",key:"1f4ei9"}]]),g9=i("database-zap",[["ellipse",{cx:"12",cy:"5",rx:"9",ry:"3",key:"msslwz"}],["path",{d:"M3 5V19A9 3 0 0 0 15 21.84",key:"14ibmq"}],["path",{d:"M21 5V8",key:"1marbg"}],["path",{d:"M21 12L18 17H22L19 22",key:"zafso"}],["path",{d:"M3 12A9 3 0 0 0 14.59 14.87",key:"1y4wr8"}]]),ha=i("database",[["ellipse",{cx:"12",cy:"5",rx:"9",ry:"3",key:"msslwz"}],["path",{d:"M3 5V19A9 3 0 0 0 21 19V5",key:"1wlel7"}],["path",{d:"M3 12A9 3 0 0 0 21 12",key:"mv7ke4"}]]),hb=i("decimals-arrow-left",[["path",{d:"m13 21-3-3 3-3",key:"s3o1nf"}],["path",{d:"M20 18H10",key:"14r3mt"}],["path",{d:"M3 11h.01",key:"1eifu7"}],["rect",{x:"6",y:"3",width:"5",height:"8",rx:"2.5",key:"v9paqo"}]]),hc=i("decimals-arrow-right",[["path",{d:"M10 18h10",key:"1y5s8o"}],["path",{d:"m17 21 3-3-3-3",key:"1ammt0"}],["path",{d:"M3 11h.01",key:"1eifu7"}],["rect",{x:"15",y:"3",width:"5",height:"8",rx:"2.5",key:"76md6a"}],["rect",{x:"6",y:"3",width:"5",height:"8",rx:"2.5",key:"v9paqo"}]]),hd=i("delete",[["path",{d:"M10 5a2 2 0 0 0-1.344.519l-6.328 5.74a1 1 0 0 0 0 1.481l6.328 5.741A2 2 0 0 0 10 19h10a2 2 0 0 0 2-2V7a2 2 0 0 0-2-2z",key:"1yo7s0"}],["path",{d:"m12 9 6 6",key:"anjzzh"}],["path",{d:"m18 9-6 6",key:"1fp51s"}]]),he=i("dessert",[["path",{d:"M10.162 3.167A10 10 0 0 0 2 13a2 2 0 0 0 4 0v-1a2 2 0 0 1 4 0v4a2 2 0 0 0 4 0v-4a2 2 0 0 1 4 0v1a2 2 0 0 0 4-.006 10 10 0 0 0-8.161-9.826",key:"xi88qy"}],["path",{d:"M20.804 14.869a9 9 0 0 1-17.608 0",key:"1r28rg"}],["circle",{cx:"12",cy:"4",r:"2",key:"muu5ef"}]]),hf=i("diamond-minus",[["path",{d:"M2.7 10.3a2.41 2.41 0 0 0 0 3.41l7.59 7.59a2.41 2.41 0 0 0 3.41 0l7.59-7.59a2.41 2.41 0 0 0 0-3.41L13.7 2.71a2.41 2.41 0 0 0-3.41 0z",key:"1ey20j"}],["path",{d:"M8 12h8",key:"1wcyev"}]]),hg=i("diameter",[["circle",{cx:"19",cy:"19",r:"2",key:"17f5cg"}],["circle",{cx:"5",cy:"5",r:"2",key:"1gwv83"}],["path",{d:"M6.48 3.66a10 10 0 0 1 13.86 13.86",key:"xr8kdq"}],["path",{d:"m6.41 6.41 11.18 11.18",key:"uhpjw7"}],["path",{d:"M3.66 6.48a10 10 0 0 0 13.86 13.86",key:"cldpwv"}]]),hh=i("diamond-percent",[["path",{d:"M2.7 10.3a2.41 2.41 0 0 0 0 3.41l7.59 7.59a2.41 2.41 0 0 0 3.41 0l7.59-7.59a2.41 2.41 0 0 0 0-3.41L13.7 2.71a2.41 2.41 0 0 0-3.41 0Z",key:"1tpxz2"}],["path",{d:"M9.2 9.2h.01",key:"1b7bvt"}],["path",{d:"m14.5 9.5-5 5",key:"17q4r4"}],["path",{d:"M14.7 14.8h.01",key:"17nsh4"}]]),hi=i("diamond-plus",[["path",{d:"M12 8v8",key:"napkw2"}],["path",{d:"M2.7 10.3a2.41 2.41 0 0 0 0 3.41l7.59 7.59a2.41 2.41 0 0 0 3.41 0l7.59-7.59a2.41 2.41 0 0 0 0-3.41L13.7 2.71a2.41 2.41 0 0 0-3.41 0z",key:"1ey20j"}],["path",{d:"M8 12h8",key:"1wcyev"}]]),hj=i("diamond",[["path",{d:"M2.7 10.3a2.41 2.41 0 0 0 0 3.41l7.59 7.59a2.41 2.41 0 0 0 3.41 0l7.59-7.59a2.41 2.41 0 0 0 0-3.41l-7.59-7.59a2.41 2.41 0 0 0-3.41 0Z",key:"1f1r0c"}]]),hk=i("dice-1",[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",ry:"2",key:"1m3agn"}],["path",{d:"M12 12h.01",key:"1mp3jc"}]]),hl=i("dice-2",[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",ry:"2",key:"1m3agn"}],["path",{d:"M15 9h.01",key:"x1ddxp"}],["path",{d:"M9 15h.01",key:"fzyn71"}]]),hm=i("dice-3",[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",ry:"2",key:"1m3agn"}],["path",{d:"M16 8h.01",key:"cr5u4v"}],["path",{d:"M12 12h.01",key:"1mp3jc"}],["path",{d:"M8 16h.01",key:"18s6g9"}]]),hn=i("dice-4",[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",ry:"2",key:"1m3agn"}],["path",{d:"M16 8h.01",key:"cr5u4v"}],["path",{d:"M8 8h.01",key:"1e4136"}],["path",{d:"M8 16h.01",key:"18s6g9"}],["path",{d:"M16 16h.01",key:"1f9h7w"}]]),ho=i("dice-5",[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",ry:"2",key:"1m3agn"}],["path",{d:"M16 8h.01",key:"cr5u4v"}],["path",{d:"M8 8h.01",key:"1e4136"}],["path",{d:"M8 16h.01",key:"18s6g9"}],["path",{d:"M16 16h.01",key:"1f9h7w"}],["path",{d:"M12 12h.01",key:"1mp3jc"}]]),hp=i("dice-6",[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",ry:"2",key:"1m3agn"}],["path",{d:"M16 8h.01",key:"cr5u4v"}],["path",{d:"M16 12h.01",key:"1l6xoz"}],["path",{d:"M16 16h.01",key:"1f9h7w"}],["path",{d:"M8 8h.01",key:"1e4136"}],["path",{d:"M8 12h.01",key:"czm47f"}],["path",{d:"M8 16h.01",key:"18s6g9"}]]),hq=i("dices",[["rect",{width:"12",height:"12",x:"2",y:"10",rx:"2",ry:"2",key:"6agr2n"}],["path",{d:"m17.92 14 3.5-3.5a2.24 2.24 0 0 0 0-3l-5-4.92a2.24 2.24 0 0 0-3 0L10 6",key:"1o487t"}],["path",{d:"M6 18h.01",key:"uhywen"}],["path",{d:"M10 14h.01",key:"ssrbsk"}],["path",{d:"M15 6h.01",key:"cblpky"}],["path",{d:"M18 9h.01",key:"2061c0"}]]),hr=i("diff",[["path",{d:"M12 3v14",key:"7cf3v8"}],["path",{d:"M5 10h14",key:"elsbfy"}],["path",{d:"M5 21h14",key:"11awu3"}]]),hs=i("disc-2",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["circle",{cx:"12",cy:"12",r:"4",key:"4exip2"}],["path",{d:"M12 12h.01",key:"1mp3jc"}]]),ht=i("disc-3",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"M6 12c0-1.7.7-3.2 1.8-4.2",key:"oqkarx"}],["circle",{cx:"12",cy:"12",r:"2",key:"1c9p78"}],["path",{d:"M18 12c0 1.7-.7 3.2-1.8 4.2",key:"1eah9h"}]]),hu=i("disc-album",[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",key:"afitv7"}],["circle",{cx:"12",cy:"12",r:"5",key:"nd82uf"}],["path",{d:"M12 12h.01",key:"1mp3jc"}]]),hv=i("disc",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["circle",{cx:"12",cy:"12",r:"2",key:"1c9p78"}]]),hw=i("divide",[["circle",{cx:"12",cy:"6",r:"1",key:"1bh7o1"}],["line",{x1:"5",x2:"19",y1:"12",y2:"12",key:"13b5wn"}],["circle",{cx:"12",cy:"18",r:"1",key:"lqb9t5"}]]),hx=i("dna-off",[["path",{d:"M15 2c-1.35 1.5-2.092 3-2.5 4.5L14 8",key:"1bivrr"}],["path",{d:"m17 6-2.891-2.891",key:"xu6p2f"}],["path",{d:"M2 15c3.333-3 6.667-3 10-3",key:"nxix30"}],["path",{d:"m2 2 20 20",key:"1ooewy"}],["path",{d:"m20 9 .891.891",key:"3xwk7g"}],["path",{d:"M22 9c-1.5 1.35-3 2.092-4.5 2.5l-1-1",key:"18cutr"}],["path",{d:"M3.109 14.109 4 15",key:"q76aoh"}],["path",{d:"m6.5 12.5 1 1",key:"cs35ky"}],["path",{d:"m7 18 2.891 2.891",key:"1sisit"}],["path",{d:"M9 22c1.35-1.5 2.092-3 2.5-4.5L10 16",key:"rlvei3"}]]),hy=i("dna",[["path",{d:"m10 16 1.5 1.5",key:"11lckj"}],["path",{d:"m14 8-1.5-1.5",key:"1ohn8i"}],["path",{d:"M15 2c-1.798 1.998-2.518 3.995-2.807 5.993",key:"80uv8i"}],["path",{d:"m16.5 10.5 1 1",key:"696xn5"}],["path",{d:"m17 6-2.891-2.891",key:"xu6p2f"}],["path",{d:"M2 15c6.667-6 13.333 0 20-6",key:"1pyr53"}],["path",{d:"m20 9 .891.891",key:"3xwk7g"}],["path",{d:"M3.109 14.109 4 15",key:"q76aoh"}],["path",{d:"m6.5 12.5 1 1",key:"cs35ky"}],["path",{d:"m7 18 2.891 2.891",key:"1sisit"}],["path",{d:"M9 22c1.798-1.998 2.518-3.995 2.807-5.993",key:"q3hbxp"}]]),hz=i("dock",[["path",{d:"M2 8h20",key:"d11cs7"}],["rect",{width:"20",height:"16",x:"2",y:"4",rx:"2",key:"18n3k1"}],["path",{d:"M6 16h12",key:"u522kt"}]]),hA=i("dog",[["path",{d:"M11.25 16.25h1.5L12 17z",key:"w7jh35"}],["path",{d:"M16 14v.5",key:"1lajdz"}],["path",{d:"M4.42 11.247A13.152 13.152 0 0 0 4 14.556C4 18.728 7.582 21 12 21s8-2.272 8-6.444a11.702 11.702 0 0 0-.493-3.309",key:"u7s9ue"}],["path",{d:"M8 14v.5",key:"1nzgdb"}],["path",{d:"M8.5 8.5c-.384 1.05-1.083 2.028-2.344 2.5-1.931.722-3.576-.297-3.656-1-.113-.994 1.177-6.53 4-7 1.923-.321 3.651.845 3.651 2.235A7.497 7.497 0 0 1 14 5.277c0-1.39 1.844-2.598 3.767-2.277 2.823.47 4.113 6.006 4 7-.08.703-1.725 1.722-3.656 1-1.261-.472-1.855-1.45-2.239-2.5",key:"v8hric"}]]),hB=i("dollar-sign",[["line",{x1:"12",x2:"12",y1:"2",y2:"22",key:"7eqyqh"}],["path",{d:"M17 5H9.5a3.5 3.5 0 0 0 0 7h5a3.5 3.5 0 0 1 0 7H6",key:"1b0p4s"}]]),hC=i("door-closed-locked",[["path",{d:"M10 12h.01",key:"1kxr2c"}],["path",{d:"M18 9V6a2 2 0 0 0-2-2H8a2 2 0 0 0-2 2v14",key:"1bnhmg"}],["path",{d:"M2 20h8",key:"10ntw1"}],["path",{d:"M20 17v-2a2 2 0 1 0-4 0v2",key:"pwaxnr"}],["rect",{x:"14",y:"17",width:"8",height:"5",rx:"1",key:"15pjcy"}]]),hD=i("donut",[["path",{d:"M20.5 10a2.5 2.5 0 0 1-2.4-3H18a2.95 2.95 0 0 1-2.6-4.4 10 10 0 1 0 6.3 7.1c-.3.2-.8.3-1.2.3",key:"19sr3x"}],["circle",{cx:"12",cy:"12",r:"3",key:"1v7zrd"}]]),hE=i("door-closed",[["path",{d:"M10 12h.01",key:"1kxr2c"}],["path",{d:"M18 20V6a2 2 0 0 0-2-2H8a2 2 0 0 0-2 2v14",key:"36qu9e"}],["path",{d:"M2 20h20",key:"owomy5"}]]),hF=i("dot",[["circle",{cx:"12.1",cy:"12.1",r:"1",key:"18d7e5"}]]),hG=i("download",[["path",{d:"M12 15V3",key:"m9g1x1"}],["path",{d:"M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4",key:"ih7n3h"}],["path",{d:"m7 10 5 5 5-5",key:"brsn70"}]]),hH=i("door-open",[["path",{d:"M11 20H2",key:"nlcfvz"}],["path",{d:"M11 4.562v16.157a1 1 0 0 0 1.242.97L19 20V5.562a2 2 0 0 0-1.515-1.94l-4-1A2 2 0 0 0 11 4.561z",key:"au4z13"}],["path",{d:"M11 4H8a2 2 0 0 0-2 2v14",key:"74r1mk"}],["path",{d:"M14 12h.01",key:"1jfl7z"}],["path",{d:"M22 20h-3",key:"vhrsz"}]]),hI=i("drafting-compass",[["path",{d:"m12.99 6.74 1.93 3.44",key:"iwagvd"}],["path",{d:"M19.136 12a10 10 0 0 1-14.271 0",key:"ppmlo4"}],["path",{d:"m21 21-2.16-3.84",key:"vylbct"}],["path",{d:"m3 21 8.02-14.26",key:"1ssaw4"}],["circle",{cx:"12",cy:"5",r:"2",key:"f1ur92"}]]),hJ=i("drama",[["path",{d:"M10 11h.01",key:"d2at3l"}],["path",{d:"M14 6h.01",key:"k028ub"}],["path",{d:"M18 6h.01",key:"1v4wsw"}],["path",{d:"M6.5 13.1h.01",key:"1748ia"}],["path",{d:"M22 5c0 9-4 12-6 12s-6-3-6-12c0-2 2-3 6-3s6 1 6 3",key:"172yzv"}],["path",{d:"M17.4 9.9c-.8.8-2 .8-2.8 0",key:"1obv0w"}],["path",{d:"M10.1 7.1C9 7.2 7.7 7.7 6 8.6c-3.5 2-4.7 3.9-3.7 5.6 4.5 7.8 9.5 8.4 11.2 7.4.9-.5 1.9-2.1 1.9-4.7",key:"rqjl8i"}],["path",{d:"M9.1 16.5c.3-1.1 1.4-1.7 2.4-1.4",key:"1mr6wy"}]]),hK=i("dribbble",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"M19.13 5.09C15.22 9.14 10 10.44 2.25 10.94",key:"hpej1"}],["path",{d:"M21.75 12.84c-6.62-1.41-12.14 1-16.38 6.32",key:"1tr44o"}],["path",{d:"M8.56 2.75c4.37 6 6 9.42 8 17.72",key:"kbh691"}]]),hL=i("drill",[["path",{d:"M10 18a1 1 0 0 1 1 1v2a1 1 0 0 1-1 1H5a3 3 0 0 1-3-3 1 1 0 0 1 1-1z",key:"ioqxb1"}],["path",{d:"M13 10H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a1 1 0 0 1 1 1v6a1 1 0 0 1-1 1l-.81 3.242a1 1 0 0 1-.97.758H8",key:"1rs59n"}],["path",{d:"M14 4h3a1 1 0 0 1 1 1v2a1 1 0 0 1-1 1h-3",key:"105ega"}],["path",{d:"M18 6h4",key:"66u95g"}],["path",{d:"m5 10-2 8",key:"xt2lic"}],["path",{d:"m7 18 2-8",key:"1bzku2"}]]),hM=i("drone",[["path",{d:"M10 10 7 7",key:"zp14k7"}],["path",{d:"m10 14-3 3",key:"1jrpxk"}],["path",{d:"m14 10 3-3",key:"7tigam"}],["path",{d:"m14 14 3 3",key:"vm23p3"}],["path",{d:"M14.205 4.139a4 4 0 1 1 5.439 5.863",key:"1tm5p2"}],["path",{d:"M19.637 14a4 4 0 1 1-5.432 5.868",key:"16egi2"}],["path",{d:"M4.367 10a4 4 0 1 1 5.438-5.862",key:"1wta6a"}],["path",{d:"M9.795 19.862a4 4 0 1 1-5.429-5.873",key:"q39hpv"}],["rect",{x:"10",y:"8",width:"4",height:"8",rx:"1",key:"phrjt1"}]]),hN=i("droplet-off",[["path",{d:"M18.715 13.186C18.29 11.858 17.384 10.607 16 9.5c-2-1.6-3.5-4-4-6.5a10.7 10.7 0 0 1-.884 2.586",key:"8suz2t"}],["path",{d:"m2 2 20 20",key:"1ooewy"}],["path",{d:"M8.795 8.797A11 11 0 0 1 8 9.5C6 11.1 5 13 5 15a7 7 0 0 0 13.222 3.208",key:"19dw9m"}]]),hO=i("droplet",[["path",{d:"M12 22a7 7 0 0 0 7-7c0-2-1-3.9-3-5.5s-3.5-4-4-6.5c-.5 2.5-2 4.9-4 6.5C6 11.1 5 13 5 15a7 7 0 0 0 7 7z",key:"c7niix"}]]),hP=i("droplets",[["path",{d:"M7 16.3c2.2 0 4-1.83 4-4.05 0-1.16-.57-2.26-1.71-3.19S7.29 6.75 7 5.3c-.29 1.45-1.14 2.84-2.29 3.76S3 11.1 3 12.25c0 2.22 1.8 4.05 4 4.05z",key:"1ptgy4"}],["path",{d:"M12.56 6.6A10.97 10.97 0 0 0 14 3.02c.5 2.5 2 4.9 4 6.5s3 3.5 3 5.5a6.98 6.98 0 0 1-11.91 4.97",key:"1sl1rz"}]]),hQ=i("drum",[["path",{d:"m2 2 8 8",key:"1v6059"}],["path",{d:"m22 2-8 8",key:"173r8a"}],["ellipse",{cx:"12",cy:"9",rx:"10",ry:"5",key:"liohsx"}],["path",{d:"M7 13.4v7.9",key:"1yi6u9"}],["path",{d:"M12 14v8",key:"1tn2tj"}],["path",{d:"M17 13.4v7.9",key:"eqz2v3"}],["path",{d:"M2 9v8a10 5 0 0 0 20 0V9",key:"1750ul"}]]),hR=i("drumstick",[["path",{d:"M15.4 15.63a7.875 6 135 1 1 6.23-6.23 4.5 3.43 135 0 0-6.23 6.23",key:"1dtqwm"}],["path",{d:"m8.29 12.71-2.6 2.6a2.5 2.5 0 1 0-1.65 4.65A2.5 2.5 0 1 0 8.7 18.3l2.59-2.59",key:"1oq1fw"}]]),hS=i("dumbbell",[["path",{d:"M17.596 12.768a2 2 0 1 0 2.829-2.829l-1.768-1.767a2 2 0 0 0 2.828-2.829l-2.828-2.828a2 2 0 0 0-2.829 2.828l-1.767-1.768a2 2 0 1 0-2.829 2.829z",key:"9m4mmf"}],["path",{d:"m2.5 21.5 1.4-1.4",key:"17g3f0"}],["path",{d:"m20.1 3.9 1.4-1.4",key:"1qn309"}],["path",{d:"M5.343 21.485a2 2 0 1 0 2.829-2.828l1.767 1.768a2 2 0 1 0 2.829-2.829l-6.364-6.364a2 2 0 1 0-2.829 2.829l1.768 1.767a2 2 0 0 0-2.828 2.829z",key:"1t2c92"}],["path",{d:"m9.6 14.4 4.8-4.8",key:"6umqxw"}]]),hT=i("ear-off",[["path",{d:"M6 18.5a3.5 3.5 0 1 0 7 0c0-1.57.92-2.52 2.04-3.46",key:"1qngmn"}],["path",{d:"M6 8.5c0-.75.13-1.47.36-2.14",key:"b06bma"}],["path",{d:"M8.8 3.15A6.5 6.5 0 0 1 19 8.5c0 1.63-.44 2.81-1.09 3.76",key:"g10hsz"}],["path",{d:"M12.5 6A2.5 2.5 0 0 1 15 8.5M10 13a2 2 0 0 0 1.82-1.18",key:"ygzou7"}],["line",{x1:"2",x2:"22",y1:"2",y2:"22",key:"a6p6uj"}]]),hU=i("ear",[["path",{d:"M6 8.5a6.5 6.5 0 1 1 13 0c0 6-6 6-6 10a3.5 3.5 0 1 1-7 0",key:"1dfaln"}],["path",{d:"M15 8.5a2.5 2.5 0 0 0-5 0v1a2 2 0 1 1 0 4",key:"1qnva7"}]]),hV=i("earth-lock",[["path",{d:"M7 3.34V5a3 3 0 0 0 3 3",key:"w732o8"}],["path",{d:"M11 21.95V18a2 2 0 0 0-2-2 2 2 0 0 1-2-2v-1a2 2 0 0 0-2-2H2.05",key:"f02343"}],["path",{d:"M21.54 15H17a2 2 0 0 0-2 2v4.54",key:"1djwo0"}],["path",{d:"M12 2a10 10 0 1 0 9.54 13",key:"zjsr6q"}],["path",{d:"M20 6V4a2 2 0 1 0-4 0v2",key:"1of5e8"}],["rect",{width:"8",height:"5",x:"14",y:"6",rx:"1",key:"1fmf51"}]]),hW=i("earth",[["path",{d:"M21.54 15H17a2 2 0 0 0-2 2v4.54",key:"1djwo0"}],["path",{d:"M7 3.34V5a3 3 0 0 0 3 3a2 2 0 0 1 2 2c0 1.1.9 2 2 2a2 2 0 0 0 2-2c0-1.1.9-2 2-2h3.17",key:"1tzkfa"}],["path",{d:"M11 21.95V18a2 2 0 0 0-2-2a2 2 0 0 1-2-2v-1a2 2 0 0 0-2-2H2.05",key:"14pb5j"}],["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}]]),hX=i("eclipse",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"M12 2a7 7 0 1 0 10 10",key:"1yuj32"}]]),hY=i("egg-fried",[["circle",{cx:"11.5",cy:"12.5",r:"3.5",key:"1cl1mi"}],["path",{d:"M3 8c0-3.5 2.5-6 6.5-6 5 0 4.83 3 7.5 5s5 2 5 6c0 4.5-2.5 6.5-7 6.5-2.5 0-2.5 2.5-6 2.5s-7-2-7-5.5c0-3 1.5-3 1.5-5C3.5 10 3 9 3 8Z",key:"165ef9"}]]),hZ=i("egg-off",[["path",{d:"m2 2 20 20",key:"1ooewy"}],["path",{d:"M20 14.347V14c0-6-4-12-8-12-1.078 0-2.157.436-3.157 1.19",key:"13g2jy"}],["path",{d:"M6.206 6.21C4.871 8.4 4 11.2 4 14a8 8 0 0 0 14.568 4.568",key:"1581id"}]]),h$=i("egg",[["path",{d:"M12 2C8 2 4 8 4 14a8 8 0 0 0 16 0c0-6-4-12-8-12",key:"1le142"}]]),h_=i("ellipsis-vertical",[["circle",{cx:"12",cy:"12",r:"1",key:"41hilf"}],["circle",{cx:"12",cy:"5",r:"1",key:"gxeob9"}],["circle",{cx:"12",cy:"19",r:"1",key:"lyex9k"}]]),h0=i("ellipsis",[["circle",{cx:"12",cy:"12",r:"1",key:"41hilf"}],["circle",{cx:"19",cy:"12",r:"1",key:"1wjl8i"}],["circle",{cx:"5",cy:"12",r:"1",key:"1pcz8c"}]]),h1=i("equal-not",[["line",{x1:"5",x2:"19",y1:"9",y2:"9",key:"1nwqeh"}],["line",{x1:"5",x2:"19",y1:"15",y2:"15",key:"g8yjpy"}],["line",{x1:"19",x2:"5",y1:"5",y2:"19",key:"1x9vlm"}]]),h2=i("equal-approximately",[["path",{d:"M5 15a6.5 6.5 0 0 1 7 0 6.5 6.5 0 0 0 7 0",key:"yrdkhy"}],["path",{d:"M5 9a6.5 6.5 0 0 1 7 0 6.5 6.5 0 0 0 7 0",key:"gzkvyz"}]]),h3=i("equal",[["line",{x1:"5",x2:"19",y1:"9",y2:"9",key:"1nwqeh"}],["line",{x1:"5",x2:"19",y1:"15",y2:"15",key:"g8yjpy"}]]),h4=i("eraser",[["path",{d:"M21 21H8a2 2 0 0 1-1.42-.587l-3.994-3.999a2 2 0 0 1 0-2.828l10-10a2 2 0 0 1 2.829 0l5.999 6a2 2 0 0 1 0 2.828L12.834 21",key:"g5wo59"}],["path",{d:"m5.082 11.09 8.828 8.828",key:"1wx5vj"}]]),h5=i("ethernet-port",[["path",{d:"m15 20 3-3h2a2 2 0 0 0 2-2V6a2 2 0 0 0-2-2H4a2 2 0 0 0-2 2v9a2 2 0 0 0 2 2h2l3 3z",key:"rbahqx"}],["path",{d:"M6 8v1",key:"1636ez"}],["path",{d:"M10 8v1",key:"1talb4"}],["path",{d:"M14 8v1",key:"1rsfgr"}],["path",{d:"M18 8v1",key:"gnkwox"}]]),h6=i("euro",[["path",{d:"M4 10h12",key:"1y6xl8"}],["path",{d:"M4 14h9",key:"1loblj"}],["path",{d:"M19 6a7.7 7.7 0 0 0-5.2-2A7.9 7.9 0 0 0 6 12c0 4.4 3.5 8 7.8 8 2 0 3.8-.8 5.2-2",key:"1j6lzo"}]]),h7=i("expand",[["path",{d:"m15 15 6 6",key:"1s409w"}],["path",{d:"m15 9 6-6",key:"ko1vev"}],["path",{d:"M21 16v5h-5",key:"1ck2sf"}],["path",{d:"M21 8V3h-5",key:"1qoq8a"}],["path",{d:"M3 16v5h5",key:"1t08am"}],["path",{d:"m3 21 6-6",key:"wwnumi"}],["path",{d:"M3 8V3h5",key:"1ln10m"}],["path",{d:"M9 9 3 3",key:"v551iv"}]]),h8=i("external-link",[["path",{d:"M15 3h6v6",key:"1q9fwt"}],["path",{d:"M10 14 21 3",key:"gplh6r"}],["path",{d:"M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6",key:"a6xqqp"}]]),h9=i("eye-closed",[["path",{d:"m15 18-.722-3.25",key:"1j64jw"}],["path",{d:"M2 8a10.645 10.645 0 0 0 20 0",key:"1e7gxb"}],["path",{d:"m20 15-1.726-2.05",key:"1cnuld"}],["path",{d:"m4 15 1.726-2.05",key:"1dsqqd"}],["path",{d:"m9 18 .722-3.25",key:"ypw2yx"}]]),ia=i("eye-off",[["path",{d:"M10.733 5.076a10.744 10.744 0 0 1 11.205 6.575 1 1 0 0 1 0 .696 10.747 10.747 0 0 1-1.444 2.49",key:"ct8e1f"}],["path",{d:"M14.084 14.158a3 3 0 0 1-4.242-4.242",key:"151rxh"}],["path",{d:"M17.479 17.499a10.75 10.75 0 0 1-15.417-5.151 1 1 0 0 1 0-.696 10.75 10.75 0 0 1 4.446-5.143",key:"13bj9a"}],["path",{d:"m2 2 20 20",key:"1ooewy"}]]),ib=i("eye",[["path",{d:"M2.062 12.348a1 1 0 0 1 0-.696 10.75 10.75 0 0 1 19.876 0 1 1 0 0 1 0 .696 10.75 10.75 0 0 1-19.876 0",key:"1nclc0"}],["circle",{cx:"12",cy:"12",r:"3",key:"1v7zrd"}]]),ic=i("facebook",[["path",{d:"M18 2h-3a5 5 0 0 0-5 5v3H7v4h3v8h4v-8h3l1-4h-4V7a1 1 0 0 1 1-1h3z",key:"1jg4f8"}]]),id=i("factory",[["path",{d:"M12 16h.01",key:"1drbdi"}],["path",{d:"M16 16h.01",key:"1f9h7w"}],["path",{d:"M3 19a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2V8.5a.5.5 0 0 0-.769-.422l-4.462 2.844A.5.5 0 0 1 15 10.5v-2a.5.5 0 0 0-.769-.422L9.77 10.922A.5.5 0 0 1 9 10.5V5a2 2 0 0 0-2-2H5a2 2 0 0 0-2 2z",key:"1iv0i2"}],["path",{d:"M8 16h.01",key:"18s6g9"}]]),ie=i("fan",[["path",{d:"M10.827 16.379a6.082 6.082 0 0 1-8.618-7.002l5.412 1.45a6.082 6.082 0 0 1 7.002-8.618l-1.45 5.412a6.082 6.082 0 0 1 8.618 7.002l-5.412-1.45a6.082 6.082 0 0 1-7.002 8.618l1.45-5.412Z",key:"484a7f"}],["path",{d:"M12 12v.01",key:"u5ubse"}]]),ig=i("fast-forward",[["polygon",{points:"13 19 22 12 13 5 13 19",key:"587y9g"}],["polygon",{points:"2 19 11 12 2 5 2 19",key:"3pweh0"}]]),ih=i("feather",[["path",{d:"M12.67 19a2 2 0 0 0 1.416-.588l6.154-6.172a6 6 0 0 0-8.49-8.49L5.586 9.914A2 2 0 0 0 5 11.328V18a1 1 0 0 0 1 1z",key:"18jl4k"}],["path",{d:"M16 8 2 22",key:"vp34q"}],["path",{d:"M17.5 15H9",key:"1oz8nu"}]]),ii=i("fence",[["path",{d:"M4 3 2 5v15c0 .6.4 1 1 1h2c.6 0 1-.4 1-1V5Z",key:"1n2rgs"}],["path",{d:"M6 8h4",key:"utf9t1"}],["path",{d:"M6 18h4",key:"12yh4b"}],["path",{d:"m12 3-2 2v15c0 .6.4 1 1 1h2c.6 0 1-.4 1-1V5Z",key:"3ha7mj"}],["path",{d:"M14 8h4",key:"1r8wg2"}],["path",{d:"M14 18h4",key:"1t3kbu"}],["path",{d:"m20 3-2 2v15c0 .6.4 1 1 1h2c.6 0 1-.4 1-1V5Z",key:"dfd4e2"}]]),ij=i("ferris-wheel",[["circle",{cx:"12",cy:"12",r:"2",key:"1c9p78"}],["path",{d:"M12 2v4",key:"3427ic"}],["path",{d:"m6.8 15-3.5 2",key:"hjy98k"}],["path",{d:"m20.7 7-3.5 2",key:"f08gto"}],["path",{d:"M6.8 9 3.3 7",key:"1aevh4"}],["path",{d:"m20.7 17-3.5-2",key:"1liqo3"}],["path",{d:"m9 22 3-8 3 8",key:"wees03"}],["path",{d:"M8 22h8",key:"rmew8v"}],["path",{d:"M18 18.7a9 9 0 1 0-12 0",key:"dhzg4g"}]]),ik=i("figma",[["path",{d:"M5 5.5A3.5 3.5 0 0 1 8.5 2H12v7H8.5A3.5 3.5 0 0 1 5 5.5z",key:"1340ok"}],["path",{d:"M12 2h3.5a3.5 3.5 0 1 1 0 7H12V2z",key:"1hz3m3"}],["path",{d:"M12 12.5a3.5 3.5 0 1 1 7 0 3.5 3.5 0 1 1-7 0z",key:"1oz8n2"}],["path",{d:"M5 19.5A3.5 3.5 0 0 1 8.5 16H12v3.5a3.5 3.5 0 1 1-7 0z",key:"1ff65i"}],["path",{d:"M5 12.5A3.5 3.5 0 0 1 8.5 9H12v7H8.5A3.5 3.5 0 0 1 5 12.5z",key:"pdip6e"}]]),il=i("file-archive",[["path",{d:"M10 12v-1",key:"v7bkov"}],["path",{d:"M10 18v-2",key:"1cjy8d"}],["path",{d:"M10 7V6",key:"dljcrl"}],["path",{d:"M14 2v4a2 2 0 0 0 2 2h4",key:"tnqrlb"}],["path",{d:"M15.5 22H18a2 2 0 0 0 2-2V7l-5-5H6a2 2 0 0 0-2 2v16a2 2 0 0 0 .274 1.01",key:"gkbcor"}],["circle",{cx:"10",cy:"20",r:"2",key:"1xzdoj"}]]),im=i("file-audio-2",[["path",{d:"M4 22h14a2 2 0 0 0 2-2V7l-5-5H6a2 2 0 0 0-2 2v2",key:"17k7jt"}],["path",{d:"M14 2v4a2 2 0 0 0 2 2h4",key:"tnqrlb"}],["circle",{cx:"3",cy:"17",r:"1",key:"vo6nti"}],["path",{d:"M2 17v-3a4 4 0 0 1 8 0v3",key:"1ggdre"}],["circle",{cx:"9",cy:"17",r:"1",key:"bc1fq4"}]]),io=i("file-audio",[["path",{d:"M17.5 22h.5a2 2 0 0 0 2-2V7l-5-5H6a2 2 0 0 0-2 2v3",key:"rslqgf"}],["path",{d:"M14 2v4a2 2 0 0 0 2 2h4",key:"tnqrlb"}],["path",{d:"M2 19a2 2 0 1 1 4 0v1a2 2 0 1 1-4 0v-4a6 6 0 0 1 12 0v4a2 2 0 1 1-4 0v-1a2 2 0 1 1 4 0",key:"9f7x3i"}]]),ip=i("file-axis-3d",[["path",{d:"M15 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7Z",key:"1rqfz7"}],["path",{d:"M14 2v4a2 2 0 0 0 2 2h4",key:"tnqrlb"}],["path",{d:"m8 18 4-4",key:"12zab0"}],["path",{d:"M8 10v8h8",key:"tlaukw"}]]),iq=i("file-badge-2",[["path",{d:"m13.69 12.479 1.29 4.88a.5.5 0 0 1-.697.591l-1.844-.849a1 1 0 0 0-.88.001l-1.846.85a.5.5 0 0 1-.693-.593l1.29-4.88",key:"7a4gmr"}],["path",{d:"M15 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7z",key:"1mlx9k"}],["circle",{cx:"12",cy:"10",r:"3",key:"ilqhr7"}]]),ir=i("file-badge",[["path",{d:"M12 22h6a2 2 0 0 0 2-2V7l-5-5H6a2 2 0 0 0-2 2v3.072",key:"n6s66f"}],["path",{d:"M14 2v4a2 2 0 0 0 2 2h4",key:"tnqrlb"}],["path",{d:"m6.69 16.479 1.29 4.88a.5.5 0 0 1-.698.591l-1.843-.849a1 1 0 0 0-.88.001l-1.846.85a.5.5 0 0 1-.693-.593l1.29-4.88",key:"1e6yvx"}],["circle",{cx:"5",cy:"14",r:"3",key:"ufru5t"}]]),is=i("file-box",[["path",{d:"M14.5 22H18a2 2 0 0 0 2-2V7l-5-5H6a2 2 0 0 0-2 2v4",key:"16lz6z"}],["path",{d:"M14 2v4a2 2 0 0 0 2 2h4",key:"tnqrlb"}],["path",{d:"M3 13.1a2 2 0 0 0-1 1.76v3.24a2 2 0 0 0 .97 1.78L6 21.7a2 2 0 0 0 2.03.01L11 19.9a2 2 0 0 0 1-1.76V14.9a2 2 0 0 0-.97-1.78L8 11.3a2 2 0 0 0-2.03-.01Z",key:"99pj1s"}],["path",{d:"M7 17v5",key:"1yj1jh"}],["path",{d:"M11.7 14.2 7 17l-4.7-2.8",key:"1yk8tc"}]]),it=i("file-chart-column-increasing",[["path",{d:"M15 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7Z",key:"1rqfz7"}],["path",{d:"M14 2v4a2 2 0 0 0 2 2h4",key:"tnqrlb"}],["path",{d:"M8 18v-2",key:"qcmpov"}],["path",{d:"M12 18v-4",key:"q1q25u"}],["path",{d:"M16 18v-6",key:"15y0np"}]]),iu=i("file-chart-column",[["path",{d:"M15 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7Z",key:"1rqfz7"}],["path",{d:"M14 2v4a2 2 0 0 0 2 2h4",key:"tnqrlb"}],["path",{d:"M8 18v-1",key:"zg0ygc"}],["path",{d:"M12 18v-6",key:"17g6i2"}],["path",{d:"M16 18v-3",key:"j5jt4h"}]]),iv=i("file-chart-pie",[["path",{d:"M14 2v4a2 2 0 0 0 2 2h4",key:"tnqrlb"}],["path",{d:"M16 22h2a2 2 0 0 0 2-2V7l-5-5H6a2 2 0 0 0-2 2v3.5",key:"13ddob"}],["path",{d:"M4.017 11.512a6 6 0 1 0 8.466 8.475",key:"s6vs5t"}],["path",{d:"M9 16a1 1 0 0 1-1-1v-4c0-.552.45-1.008.995-.917a6 6 0 0 1 4.922 4.922c.091.544-.365.995-.917.995z",key:"1dl6s6"}]]),iw=i("file-chart-line",[["path",{d:"M15 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7Z",key:"1rqfz7"}],["path",{d:"M14 2v4a2 2 0 0 0 2 2h4",key:"tnqrlb"}],["path",{d:"m16 13-3.5 3.5-2-2L8 17",key:"zz7yod"}]]),ix=i("file-check-2",[["path",{d:"M4 22h14a2 2 0 0 0 2-2V7l-5-5H6a2 2 0 0 0-2 2v4",key:"1pf5j1"}],["path",{d:"M14 2v4a2 2 0 0 0 2 2h4",key:"tnqrlb"}],["path",{d:"m3 15 2 2 4-4",key:"1lhrkk"}]]),iy=i("file-check",[["path",{d:"M15 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7Z",key:"1rqfz7"}],["path",{d:"M14 2v4a2 2 0 0 0 2 2h4",key:"tnqrlb"}],["path",{d:"m9 15 2 2 4-4",key:"1grp1n"}]]),iz=i("file-code-2",[["path",{d:"M4 22h14a2 2 0 0 0 2-2V7l-5-5H6a2 2 0 0 0-2 2v4",key:"1pf5j1"}],["path",{d:"M14 2v4a2 2 0 0 0 2 2h4",key:"tnqrlb"}],["path",{d:"m5 12-3 3 3 3",key:"oke12k"}],["path",{d:"m9 18 3-3-3-3",key:"112psh"}]]),iA=i("file-clock",[["path",{d:"M14 2v4a2 2 0 0 0 2 2h4",key:"tnqrlb"}],["path",{d:"M16 22h2a2 2 0 0 0 2-2V7l-5-5H6a2 2 0 0 0-2 2v3",key:"37hlfg"}],["path",{d:"M8 14v2.2l1.6 1",key:"6m4bie"}],["circle",{cx:"8",cy:"16",r:"6",key:"10v15b"}]]),iB=i("file-code",[["path",{d:"M10 12.5 8 15l2 2.5",key:"1tg20x"}],["path",{d:"m14 12.5 2 2.5-2 2.5",key:"yinavb"}],["path",{d:"M14 2v4a2 2 0 0 0 2 2h4",key:"tnqrlb"}],["path",{d:"M15 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7z",key:"1mlx9k"}]]),iC=i("file-cog",[["path",{d:"M14 2v4a2 2 0 0 0 2 2h4",key:"tnqrlb"}],["path",{d:"m2.305 15.53.923-.382",key:"yfp9st"}],["path",{d:"m3.228 12.852-.924-.383",key:"bckynb"}],["path",{d:"M4.677 21.5a2 2 0 0 0 1.313.5H18a2 2 0 0 0 2-2V7l-5-5H6a2 2 0 0 0-2 2v2.5",key:"1yo3oz"}],["path",{d:"m4.852 11.228-.383-.923",key:"1j88i9"}],["path",{d:"m4.852 16.772-.383.924",key:"sag1dv"}],["path",{d:"m7.148 11.228.383-.923",key:"rj39hk"}],["path",{d:"m7.53 17.696-.382-.924",key:"1uu5cs"}],["path",{d:"m8.772 12.852.923-.383",key:"13811l"}],["path",{d:"m8.772 15.148.923.383",key:"z1a5l0"}],["circle",{cx:"6",cy:"14",r:"3",key:"a1xfv6"}]]),iD=i("file-diff",[["path",{d:"M15 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7Z",key:"1rqfz7"}],["path",{d:"M9 10h6",key:"9gxzsh"}],["path",{d:"M12 13V7",key:"h0r20n"}],["path",{d:"M9 17h6",key:"r8uit2"}]]),iE=i("file-digit",[["path",{d:"M4 22h14a2 2 0 0 0 2-2V7l-5-5H6a2 2 0 0 0-2 2v4",key:"1pf5j1"}],["path",{d:"M14 2v4a2 2 0 0 0 2 2h4",key:"tnqrlb"}],["rect",{width:"4",height:"6",x:"2",y:"12",rx:"2",key:"jm304g"}],["path",{d:"M10 12h2v6",key:"12zw74"}],["path",{d:"M10 18h4",key:"1ulq68"}]]),iF=i("file-down",[["path",{d:"M15 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7Z",key:"1rqfz7"}],["path",{d:"M14 2v4a2 2 0 0 0 2 2h4",key:"tnqrlb"}],["path",{d:"M12 18v-6",key:"17g6i2"}],["path",{d:"m9 15 3 3 3-3",key:"1npd3o"}]]),iG=i("file-heart",[["path",{d:"M4 22h14a2 2 0 0 0 2-2V7l-5-5H6a2 2 0 0 0-2 2v2",key:"17k7jt"}],["path",{d:"M14 2v4a2 2 0 0 0 2 2h4",key:"tnqrlb"}],["path",{d:"M10.29 10.7a2.43 2.43 0 0 0-2.66-.52c-.29.12-.56.3-.78.53l-.35.34-.35-.34a2.43 2.43 0 0 0-2.65-.53c-.3.12-.56.3-.79.53-.95.94-1 2.53.2 3.74L6.5 18l3.6-3.55c1.2-1.21 1.14-2.8.19-3.74Z",key:"1c1fso"}]]),iH=i("file-image",[["path",{d:"M15 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7Z",key:"1rqfz7"}],["path",{d:"M14 2v4a2 2 0 0 0 2 2h4",key:"tnqrlb"}],["circle",{cx:"10",cy:"12",r:"2",key:"737tya"}],["path",{d:"m20 17-1.296-1.296a2.41 2.41 0 0 0-3.408 0L9 22",key:"wt3hpn"}]]),iI=i("file-input",[["path",{d:"M4 22h14a2 2 0 0 0 2-2V7l-5-5H6a2 2 0 0 0-2 2v4",key:"1pf5j1"}],["path",{d:"M14 2v4a2 2 0 0 0 2 2h4",key:"tnqrlb"}],["path",{d:"M2 15h10",key:"jfw4w8"}],["path",{d:"m9 18 3-3-3-3",key:"112psh"}]]),iJ=i("file-json-2",[["path",{d:"M4 22h14a2 2 0 0 0 2-2V7l-5-5H6a2 2 0 0 0-2 2v4",key:"1pf5j1"}],["path",{d:"M14 2v4a2 2 0 0 0 2 2h4",key:"tnqrlb"}],["path",{d:"M4 12a1 1 0 0 0-1 1v1a1 1 0 0 1-1 1 1 1 0 0 1 1 1v1a1 1 0 0 0 1 1",key:"fq0c9t"}],["path",{d:"M8 18a1 1 0 0 0 1-1v-1a1 1 0 0 1 1-1 1 1 0 0 1-1-1v-1a1 1 0 0 0-1-1",key:"4gibmv"}]]),iK=i("file-json",[["path",{d:"M15 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7Z",key:"1rqfz7"}],["path",{d:"M14 2v4a2 2 0 0 0 2 2h4",key:"tnqrlb"}],["path",{d:"M10 12a1 1 0 0 0-1 1v1a1 1 0 0 1-1 1 1 1 0 0 1 1 1v1a1 1 0 0 0 1 1",key:"1oajmo"}],["path",{d:"M14 18a1 1 0 0 0 1-1v-1a1 1 0 0 1 1-1 1 1 0 0 1-1-1v-1a1 1 0 0 0-1-1",key:"mpwhp6"}]]),iL=i("file-key-2",[["path",{d:"M4 22h14a2 2 0 0 0 2-2V7l-5-5H6a2 2 0 0 0-2 2v6",key:"rc0qvx"}],["path",{d:"M14 2v4a2 2 0 0 0 2 2h4",key:"tnqrlb"}],["circle",{cx:"4",cy:"16",r:"2",key:"1ehqvc"}],["path",{d:"m10 10-4.5 4.5",key:"7fwrp6"}],["path",{d:"m9 11 1 1",key:"wa6s5q"}]]),iM=i("file-key",[["path",{d:"M15 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7Z",key:"1rqfz7"}],["circle",{cx:"10",cy:"16",r:"2",key:"4ckbqe"}],["path",{d:"m16 10-4.5 4.5",key:"7p3ebg"}],["path",{d:"m15 11 1 1",key:"1bsyx3"}]]),iN=i("file-lock-2",[["path",{d:"M4 22h14a2 2 0 0 0 2-2V7l-5-5H6a2 2 0 0 0-2 2v1",key:"jmtmu2"}],["path",{d:"M14 2v4a2 2 0 0 0 2 2h4",key:"tnqrlb"}],["rect",{width:"8",height:"5",x:"2",y:"13",rx:"1",key:"10y5wo"}],["path",{d:"M8 13v-2a2 2 0 1 0-4 0v2",key:"1pdxzg"}]]),iO=i("file-lock",[["path",{d:"M15 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7Z",key:"1rqfz7"}],["rect",{width:"8",height:"6",x:"8",y:"12",rx:"1",key:"3yr8at"}],["path",{d:"M10 12v-2a2 2 0 1 1 4 0v2",key:"j4i8d"}]]),iP=i("file-minus-2",[["path",{d:"M4 22h14a2 2 0 0 0 2-2V7l-5-5H6a2 2 0 0 0-2 2v4",key:"1pf5j1"}],["path",{d:"M14 2v4a2 2 0 0 0 2 2h4",key:"tnqrlb"}],["path",{d:"M3 15h6",key:"4e2qda"}]]),iQ=i("file-minus",[["path",{d:"M15 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7Z",key:"1rqfz7"}],["path",{d:"M14 2v4a2 2 0 0 0 2 2h4",key:"tnqrlb"}],["path",{d:"M9 15h6",key:"cctwl0"}]]),iR=i("file-music",[["path",{d:"M10.5 22H18a2 2 0 0 0 2-2V7l-5-5H6a2 2 0 0 0-2 2v8.4",key:"1d3kfm"}],["path",{d:"M8 18v-7.7L16 9v7",key:"1oie6o"}],["circle",{cx:"14",cy:"16",r:"2",key:"1bzzi3"}],["circle",{cx:"6",cy:"18",r:"2",key:"1fncim"}]]),iS=i("file-output",[["path",{d:"M14 2v4a2 2 0 0 0 2 2h4",key:"tnqrlb"}],["path",{d:"M4 7V4a2 2 0 0 1 2-2 2 2 0 0 0-2 2",key:"1vk7w2"}],["path",{d:"M4.063 20.999a2 2 0 0 0 2 1L18 22a2 2 0 0 0 2-2V7l-5-5H6",key:"1jink5"}],["path",{d:"m5 11-3 3",key:"1dgrs4"}],["path",{d:"m5 17-3-3h10",key:"1mvvaf"}]]),iT=i("file-pen-line",[["path",{d:"m18 5-2.414-2.414A2 2 0 0 0 14.172 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2",key:"142zxg"}],["path",{d:"M21.378 12.626a1 1 0 0 0-3.004-3.004l-4.01 4.012a2 2 0 0 0-.506.854l-.837 2.87a.5.5 0 0 0 .62.62l2.87-.837a2 2 0 0 0 .854-.506z",key:"2t3380"}],["path",{d:"M8 18h1",key:"13wk12"}]]),iU=i("file-pen",[["path",{d:"M12.5 22H18a2 2 0 0 0 2-2V7l-5-5H6a2 2 0 0 0-2 2v9.5",key:"1couwa"}],["path",{d:"M14 2v4a2 2 0 0 0 2 2h4",key:"tnqrlb"}],["path",{d:"M13.378 15.626a1 1 0 1 0-3.004-3.004l-5.01 5.012a2 2 0 0 0-.506.854l-.837 2.87a.5.5 0 0 0 .62.62l2.87-.837a2 2 0 0 0 .854-.506z",key:"1y4qbx"}]]),iV=i("file-plus-2",[["path",{d:"M4 22h14a2 2 0 0 0 2-2V7l-5-5H6a2 2 0 0 0-2 2v4",key:"1pf5j1"}],["path",{d:"M14 2v4a2 2 0 0 0 2 2h4",key:"tnqrlb"}],["path",{d:"M3 15h6",key:"4e2qda"}],["path",{d:"M6 12v6",key:"1u72j0"}]]),iW=i("file-plus",[["path",{d:"M15 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7Z",key:"1rqfz7"}],["path",{d:"M14 2v4a2 2 0 0 0 2 2h4",key:"tnqrlb"}],["path",{d:"M9 15h6",key:"cctwl0"}],["path",{d:"M12 18v-6",key:"17g6i2"}]]),iX=i("file-question-mark",[["path",{d:"M12 17h.01",key:"p32p05"}],["path",{d:"M15 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7z",key:"1mlx9k"}],["path",{d:"M9.1 9a3 3 0 0 1 5.82 1c0 2-3 3-3 3",key:"mhlwft"}]]),iY=i("file-scan",[["path",{d:"M20 10V7l-5-5H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h4",key:"1rdf37"}],["path",{d:"M14 2v4a2 2 0 0 0 2 2h4",key:"tnqrlb"}],["path",{d:"M16 14a2 2 0 0 0-2 2",key:"ceaadl"}],["path",{d:"M20 14a2 2 0 0 1 2 2",key:"1ny6zw"}],["path",{d:"M20 22a2 2 0 0 0 2-2",key:"1l9q4k"}],["path",{d:"M16 22a2 2 0 0 1-2-2",key:"1wqh5n"}]]),iZ=i("file-search-2",[["path",{d:"M15 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7Z",key:"1rqfz7"}],["path",{d:"M14 2v4a2 2 0 0 0 2 2h4",key:"tnqrlb"}],["circle",{cx:"11.5",cy:"14.5",r:"2.5",key:"1bq0ko"}],["path",{d:"M13.3 16.3 15 18",key:"2quom7"}]]),i$=i("file-search",[["path",{d:"M14 2v4a2 2 0 0 0 2 2h4",key:"tnqrlb"}],["path",{d:"M4.268 21a2 2 0 0 0 1.727 1H18a2 2 0 0 0 2-2V7l-5-5H6a2 2 0 0 0-2 2v3",key:"ms7g94"}],["path",{d:"m9 18-1.5-1.5",key:"1j6qii"}],["circle",{cx:"5",cy:"14",r:"3",key:"ufru5t"}]]),i_=i("file-sliders",[["path",{d:"M15 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7Z",key:"1rqfz7"}],["path",{d:"M14 2v4a2 2 0 0 0 2 2h4",key:"tnqrlb"}],["path",{d:"M8 12h8",key:"1wcyev"}],["path",{d:"M10 11v2",key:"1s651w"}],["path",{d:"M8 17h8",key:"wh5c61"}],["path",{d:"M14 16v2",key:"12fp5e"}]]),i0=i("file-spreadsheet",[["path",{d:"M15 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7Z",key:"1rqfz7"}],["path",{d:"M14 2v4a2 2 0 0 0 2 2h4",key:"tnqrlb"}],["path",{d:"M8 13h2",key:"yr2amv"}],["path",{d:"M14 13h2",key:"un5t4a"}],["path",{d:"M8 17h2",key:"2yhykz"}],["path",{d:"M14 17h2",key:"10kma7"}]]),i1=i("file-stack",[["path",{d:"M21 7h-3a2 2 0 0 1-2-2V2",key:"9rb54x"}],["path",{d:"M21 6v6.5c0 .8-.7 1.5-1.5 1.5h-7c-.8 0-1.5-.7-1.5-1.5v-9c0-.8.7-1.5 1.5-1.5H17Z",key:"1059l0"}],["path",{d:"M7 8v8.8c0 .3.2.6.4.8.2.2.5.4.8.4H15",key:"16874u"}],["path",{d:"M3 12v8.8c0 .3.2.6.4.8.2.2.5.4.8.4H11",key:"k2ox98"}]]),i2=i("file-symlink",[["path",{d:"m10 18 3-3-3-3",key:"18f6ys"}],["path",{d:"M14 2v4a2 2 0 0 0 2 2h4",key:"tnqrlb"}],["path",{d:"M4 11V4a2 2 0 0 1 2-2h9l5 5v13a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2v-3a2 2 0 0 1 2-2h7",key:"50q2rw"}]]),i3=i("file-terminal",[["path",{d:"M15 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7Z",key:"1rqfz7"}],["path",{d:"M14 2v4a2 2 0 0 0 2 2h4",key:"tnqrlb"}],["path",{d:"m8 16 2-2-2-2",key:"10vzyd"}],["path",{d:"M12 18h4",key:"1wd2n7"}]]),i4=i("file-text",[["path",{d:"M15 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7Z",key:"1rqfz7"}],["path",{d:"M14 2v4a2 2 0 0 0 2 2h4",key:"tnqrlb"}],["path",{d:"M10 9H8",key:"b1mrlr"}],["path",{d:"M16 13H8",key:"t4e002"}],["path",{d:"M16 17H8",key:"z1uh3a"}]]),i5=i("file-type-2",[["path",{d:"M4 22h14a2 2 0 0 0 2-2V7l-5-5H6a2 2 0 0 0-2 2v4",key:"1pf5j1"}],["path",{d:"M14 2v4a2 2 0 0 0 2 2h4",key:"tnqrlb"}],["path",{d:"M2 13v-1h6v1",key:"1dh9dg"}],["path",{d:"M5 12v6",key:"150t9c"}],["path",{d:"M4 18h2",key:"1xrofg"}]]),i6=i("file-type",[["path",{d:"M15 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7Z",key:"1rqfz7"}],["path",{d:"M14 2v4a2 2 0 0 0 2 2h4",key:"tnqrlb"}],["path",{d:"M9 13v-1h6v1",key:"1bb014"}],["path",{d:"M12 12v6",key:"3ahymv"}],["path",{d:"M11 18h2",key:"12mj7e"}]]),i7=i("file-up",[["path",{d:"M15 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7Z",key:"1rqfz7"}],["path",{d:"M14 2v4a2 2 0 0 0 2 2h4",key:"tnqrlb"}],["path",{d:"M12 12v6",key:"3ahymv"}],["path",{d:"m15 15-3-3-3 3",key:"15xj92"}]]),i8=i("file-video-2",[["path",{d:"M4 22h14a2 2 0 0 0 2-2V7l-5-5H6a2 2 0 0 0-2 2v4",key:"1pf5j1"}],["path",{d:"M14 2v4a2 2 0 0 0 2 2h4",key:"tnqrlb"}],["rect",{width:"8",height:"6",x:"2",y:"12",rx:"1",key:"1a6c1e"}],["path",{d:"m10 15.5 4 2.5v-6l-4 2.5",key:"t7cp39"}]]),i9=i("file-user",[["path",{d:"M14 2v4a2 2 0 0 0 2 2h4",key:"tnqrlb"}],["path",{d:"M15 18a3 3 0 1 0-6 0",key:"16awa0"}],["path",{d:"M15 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7z",key:"1mlx9k"}],["circle",{cx:"12",cy:"13",r:"2",key:"1c1ljs"}]]),ja=i("file-video",[["path",{d:"M15 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7Z",key:"1rqfz7"}],["path",{d:"M14 2v4a2 2 0 0 0 2 2h4",key:"tnqrlb"}],["path",{d:"m10 11 5 3-5 3v-6Z",key:"7ntvm4"}]]),jb=i("file-volume-2",[["path",{d:"M15 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7Z",key:"1rqfz7"}],["path",{d:"M14 2v4a2 2 0 0 0 2 2h4",key:"tnqrlb"}],["path",{d:"M8 15h.01",key:"a7atzg"}],["path",{d:"M11.5 13.5a2.5 2.5 0 0 1 0 3",key:"1fccat"}],["path",{d:"M15 12a5 5 0 0 1 0 6",key:"ps46cm"}]]),jc=i("file-volume",[["path",{d:"M11 11a5 5 0 0 1 0 6",key:"193qb2"}],["path",{d:"M14 2v4a2 2 0 0 0 2 2h4",key:"tnqrlb"}],["path",{d:"M4 6.765V4a2 2 0 0 1 2-2h9l5 5v13a2 2 0 0 1-2 2H6a2 2 0 0 1-.93-.23",key:"ifyjnl"}],["path",{d:"M7 10.51a.5.5 0 0 0-.826-.38l-1.893 1.628A1 1 0 0 1 3.63 12H2.5a.5.5 0 0 0-.5.5v3a.5.5 0 0 0 .5.5h1.129a1 1 0 0 1 .652.242l1.893 1.63a.5.5 0 0 0 .826-.38z",key:"mk8rxu"}]]),jd=i("file-warning",[["path",{d:"M15 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7Z",key:"1rqfz7"}],["path",{d:"M12 9v4",key:"juzpu7"}],["path",{d:"M12 17h.01",key:"p32p05"}]]),je=i("file-x-2",[["path",{d:"M4 22h14a2 2 0 0 0 2-2V7l-5-5H6a2 2 0 0 0-2 2v4",key:"1pf5j1"}],["path",{d:"M14 2v4a2 2 0 0 0 2 2h4",key:"tnqrlb"}],["path",{d:"m8 12.5-5 5",key:"b853mi"}],["path",{d:"m3 12.5 5 5",key:"1qls4r"}]]),jf=i("file-x",[["path",{d:"M15 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7Z",key:"1rqfz7"}],["path",{d:"M14 2v4a2 2 0 0 0 2 2h4",key:"tnqrlb"}],["path",{d:"m14.5 12.5-5 5",key:"b62r18"}],["path",{d:"m9.5 12.5 5 5",key:"1rk7el"}]]),jg=i("file",[["path",{d:"M15 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7Z",key:"1rqfz7"}],["path",{d:"M14 2v4a2 2 0 0 0 2 2h4",key:"tnqrlb"}]]),jh=i("files",[["path",{d:"M20 7h-3a2 2 0 0 1-2-2V2",key:"x099mo"}],["path",{d:"M9 18a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h7l4 4v10a2 2 0 0 1-2 2Z",key:"18t6ie"}],["path",{d:"M3 7.6v12.8A1.6 1.6 0 0 0 4.6 22h9.8",key:"1nja0z"}]]),ji=i("film",[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",key:"afitv7"}],["path",{d:"M7 3v18",key:"bbkbws"}],["path",{d:"M3 7.5h4",key:"zfgn84"}],["path",{d:"M3 12h18",key:"1i2n21"}],["path",{d:"M3 16.5h4",key:"1230mu"}],["path",{d:"M17 3v18",key:"in4fa5"}],["path",{d:"M17 7.5h4",key:"myr1c1"}],["path",{d:"M17 16.5h4",key:"go4c1d"}]]),jj=i("fingerprint",[["path",{d:"M12 10a2 2 0 0 0-2 2c0 1.02-.1 2.51-.26 4",key:"1nerag"}],["path",{d:"M14 13.12c0 2.38 0 6.38-1 8.88",key:"o46ks0"}],["path",{d:"M17.29 21.02c.12-.6.43-2.3.5-3.02",key:"ptglia"}],["path",{d:"M2 12a10 10 0 0 1 18-6",key:"ydlgp0"}],["path",{d:"M2 16h.01",key:"1gqxmh"}],["path",{d:"M21.8 16c.2-2 .131-5.354 0-6",key:"drycrb"}],["path",{d:"M5 19.5C5.5 18 6 15 6 12a6 6 0 0 1 .34-2",key:"1tidbn"}],["path",{d:"M8.65 22c.21-.66.45-1.32.57-2",key:"13wd9y"}],["path",{d:"M9 6.8a6 6 0 0 1 9 5.2v2",key:"1fr1j5"}]]),jk=i("fire-extinguisher",[["path",{d:"M15 6.5V3a1 1 0 0 0-1-1h-2a1 1 0 0 0-1 1v3.5",key:"sqyvz"}],["path",{d:"M9 18h8",key:"i7pszb"}],["path",{d:"M18 3h-3",key:"7idoqj"}],["path",{d:"M11 3a6 6 0 0 0-6 6v11",key:"1v5je3"}],["path",{d:"M5 13h4",key:"svpcxo"}],["path",{d:"M17 10a4 4 0 0 0-8 0v10a2 2 0 0 0 2 2h4a2 2 0 0 0 2-2Z",key:"vsjego"}]]),jl=i("fish-off",[["path",{d:"M18 12.47v.03m0-.5v.47m-.475 5.056A6.744 6.744 0 0 1 15 18c-3.56 0-7.56-2.53-8.5-6 .348-1.28 1.114-2.433 2.121-3.38m3.444-2.088A8.802 8.802 0 0 1 15 6c3.56 0 6.06 2.54 7 6-.309 1.14-.786 2.177-1.413 3.058",key:"1j1hse"}],["path",{d:"M7 10.67C7 8 5.58 5.97 2.73 5.5c-1 1.5-1 5 .23 6.5-1.24 1.5-1.24 5-.23 6.5C5.58 18.03 7 16 7 13.33m7.48-4.372A9.77 9.77 0 0 1 16 6.07m0 11.86a9.77 9.77 0 0 1-1.728-3.618",key:"1q46z8"}],["path",{d:"m16.01 17.93-.23 1.4A2 2 0 0 1 13.8 21H9.5a5.96 5.96 0 0 0 1.49-3.98M8.53 3h5.27a2 2 0 0 1 1.98 1.67l.23 1.4M2 2l20 20",key:"1407gh"}]]),jm=i("fish-symbol",[["path",{d:"M2 16s9-15 20-4C11 23 2 8 2 8",key:"h4oh4o"}]]),jn=i("fish",[["path",{d:"M6.5 12c.94-3.46 4.94-6 8.5-6 3.56 0 6.06 2.54 7 6-.94 3.47-3.44 6-7 6s-7.56-2.53-8.5-6Z",key:"15baut"}],["path",{d:"M18 12v.5",key:"18hhni"}],["path",{d:"M16 17.93a9.77 9.77 0 0 1 0-11.86",key:"16dt7o"}],["path",{d:"M7 10.67C7 8 5.58 5.97 2.73 5.5c-1 1.5-1 5 .23 6.5-1.24 1.5-1.24 5-.23 6.5C5.58 18.03 7 16 7 13.33",key:"l9di03"}],["path",{d:"M10.46 7.26C10.2 5.88 9.17 4.24 8 3h5.8a2 2 0 0 1 1.98 1.67l.23 1.4",key:"1kjonw"}],["path",{d:"m16.01 17.93-.23 1.4A2 2 0 0 1 13.8 21H9.5a5.96 5.96 0 0 0 1.49-3.98",key:"1zlm23"}]]),jo=i("flag-off",[["path",{d:"M16 16c-3 0-5-2-8-2a6 6 0 0 0-4 1.528",key:"1q158e"}],["path",{d:"m2 2 20 20",key:"1ooewy"}],["path",{d:"M4 22V4",key:"1plyxx"}],["path",{d:"M7.656 2H8c3 0 5 2 7.333 2q2 0 3.067-.8A1 1 0 0 1 20 4v10.347",key:"xj1b71"}]]),jp=i("flag-triangle-left",[["path",{d:"M17 22V2L7 7l10 5",key:"1rmf0r"}]]),jq=i("flag-triangle-right",[["path",{d:"M7 22V2l10 5-10 5",key:"17n18y"}]]),jr=i("flag",[["path",{d:"M4 22V4a1 1 0 0 1 .4-.8A6 6 0 0 1 8 2c3 0 5 2 7.333 2q2 0 3.067-.8A1 1 0 0 1 20 4v10a1 1 0 0 1-.4.8A6 6 0 0 1 16 16c-3 0-5-2-8-2a6 6 0 0 0-4 1.528",key:"1jaruq"}]]),js=i("flame-kindling",[["path",{d:"M12 2c1 3 2.5 3.5 3.5 4.5A5 5 0 0 1 17 10a5 5 0 1 1-10 0c0-.3 0-.6.1-.9a2 2 0 1 0 3.3-2C8 4.5 11 2 12 2Z",key:"1ir223"}],["path",{d:"m5 22 14-4",key:"1brv4h"}],["path",{d:"m5 18 14 4",key:"lgyyje"}]]),jt=i("flame",[["path",{d:"M8.5 14.5A2.5 2.5 0 0 0 11 12c0-1.38-.5-2-1-3-1.072-2.143-.224-4.054 2-6 .5 2.5 2 4.9 4 6.5 2 1.6 3 3.5 3 5.5a7 7 0 1 1-14 0c0-1.153.433-2.294 1-3a2.5 2.5 0 0 0 2.5 2.5z",key:"96xj49"}]]),ju=i("flashlight-off",[["path",{d:"M16 16v4a2 2 0 0 1-2 2h-4a2 2 0 0 1-2-2V10c0-2-2-2-2-4",key:"1r120k"}],["path",{d:"M7 2h11v4c0 2-2 2-2 4v1",key:"dz1920"}],["line",{x1:"11",x2:"18",y1:"6",y2:"6",key:"bi1vpe"}],["line",{x1:"2",x2:"22",y1:"2",y2:"22",key:"a6p6uj"}]]),jv=i("flashlight",[["path",{d:"M18 6c0 2-2 2-2 4v10a2 2 0 0 1-2 2h-4a2 2 0 0 1-2-2V10c0-2-2-2-2-4V2h12z",key:"1orkel"}],["line",{x1:"6",x2:"18",y1:"6",y2:"6",key:"1z11jq"}],["line",{x1:"12",x2:"12",y1:"12",y2:"12",key:"1f4yc1"}]]),jw=i("flask-conical-off",[["path",{d:"M10 2v2.343",key:"15t272"}],["path",{d:"M14 2v6.343",key:"sxr80q"}],["path",{d:"m2 2 20 20",key:"1ooewy"}],["path",{d:"M20 20a2 2 0 0 1-2 2H6a2 2 0 0 1-1.755-2.96l5.227-9.563",key:"k0duyd"}],["path",{d:"M6.453 15H15",key:"1f0z33"}],["path",{d:"M8.5 2h7",key:"csnxdl"}]]),jx=i("flask-conical",[["path",{d:"M14 2v6a2 2 0 0 0 .245.96l5.51 10.08A2 2 0 0 1 18 22H6a2 2 0 0 1-1.755-2.96l5.51-10.08A2 2 0 0 0 10 8V2",key:"18mbvz"}],["path",{d:"M6.453 15h11.094",key:"3shlmq"}],["path",{d:"M8.5 2h7",key:"csnxdl"}]]),jy=i("flask-round",[["path",{d:"M10 2v6.292a7 7 0 1 0 4 0V2",key:"1s42pc"}],["path",{d:"M5 15h14",key:"m0yey3"}],["path",{d:"M8.5 2h7",key:"csnxdl"}]]),jz=i("flip-horizontal-2",[["path",{d:"m3 7 5 5-5 5V7",key:"couhi7"}],["path",{d:"m21 7-5 5 5 5V7",key:"6ouia7"}],["path",{d:"M12 20v2",key:"1lh1kg"}],["path",{d:"M12 14v2",key:"8jcxud"}],["path",{d:"M12 8v2",key:"1woqiv"}],["path",{d:"M12 2v2",key:"tus03m"}]]),jA=i("flip-horizontal",[["path",{d:"M8 3H5a2 2 0 0 0-2 2v14c0 1.1.9 2 2 2h3",key:"1i73f7"}],["path",{d:"M16 3h3a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2h-3",key:"saxlbk"}],["path",{d:"M12 20v2",key:"1lh1kg"}],["path",{d:"M12 14v2",key:"8jcxud"}],["path",{d:"M12 8v2",key:"1woqiv"}],["path",{d:"M12 2v2",key:"tus03m"}]]),jB=i("flip-vertical-2",[["path",{d:"m17 3-5 5-5-5h10",key:"1ftt6x"}],["path",{d:"m17 21-5-5-5 5h10",key:"1m0wmu"}],["path",{d:"M4 12H2",key:"rhcxmi"}],["path",{d:"M10 12H8",key:"s88cx1"}],["path",{d:"M16 12h-2",key:"10asgb"}],["path",{d:"M22 12h-2",key:"14jgyd"}]]),jC=i("flip-vertical",[["path",{d:"M21 8V5a2 2 0 0 0-2-2H5a2 2 0 0 0-2 2v3",key:"14bfxa"}],["path",{d:"M21 16v3a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-3",key:"14rx03"}],["path",{d:"M4 12H2",key:"rhcxmi"}],["path",{d:"M10 12H8",key:"s88cx1"}],["path",{d:"M16 12h-2",key:"10asgb"}],["path",{d:"M22 12h-2",key:"14jgyd"}]]),jD=i("flower-2",[["path",{d:"M12 5a3 3 0 1 1 3 3m-3-3a3 3 0 1 0-3 3m3-3v1M9 8a3 3 0 1 0 3 3M9 8h1m5 0a3 3 0 1 1-3 3m3-3h-1m-2 3v-1",key:"3pnvol"}],["circle",{cx:"12",cy:"8",r:"2",key:"1822b1"}],["path",{d:"M12 10v12",key:"6ubwww"}],["path",{d:"M12 22c4.2 0 7-1.667 7-5-4.2 0-7 1.667-7 5Z",key:"9hd38g"}],["path",{d:"M12 22c-4.2 0-7-1.667-7-5 4.2 0 7 1.667 7 5Z",key:"ufn41s"}]]),jE=i("flower",[["circle",{cx:"12",cy:"12",r:"3",key:"1v7zrd"}],["path",{d:"M12 16.5A4.5 4.5 0 1 1 7.5 12 4.5 4.5 0 1 1 12 7.5a4.5 4.5 0 1 1 4.5 4.5 4.5 4.5 0 1 1-4.5 4.5",key:"14wa3c"}],["path",{d:"M12 7.5V9",key:"1oy5b0"}],["path",{d:"M7.5 12H9",key:"eltsq1"}],["path",{d:"M16.5 12H15",key:"vk5kw4"}],["path",{d:"M12 16.5V15",key:"k7eayi"}],["path",{d:"m8 8 1.88 1.88",key:"nxy4qf"}],["path",{d:"M14.12 9.88 16 8",key:"1lst6k"}],["path",{d:"m8 16 1.88-1.88",key:"h2eex1"}],["path",{d:"M14.12 14.12 16 16",key:"uqkrx3"}]]),jF=i("focus",[["circle",{cx:"12",cy:"12",r:"3",key:"1v7zrd"}],["path",{d:"M3 7V5a2 2 0 0 1 2-2h2",key:"aa7l1z"}],["path",{d:"M17 3h2a2 2 0 0 1 2 2v2",key:"4qcy5o"}],["path",{d:"M21 17v2a2 2 0 0 1-2 2h-2",key:"6vwrx8"}],["path",{d:"M7 21H5a2 2 0 0 1-2-2v-2",key:"ioqczr"}]]),jG=i("fold-horizontal",[["path",{d:"M2 12h6",key:"1wqiqv"}],["path",{d:"M22 12h-6",key:"1eg9hc"}],["path",{d:"M12 2v2",key:"tus03m"}],["path",{d:"M12 8v2",key:"1woqiv"}],["path",{d:"M12 14v2",key:"8jcxud"}],["path",{d:"M12 20v2",key:"1lh1kg"}],["path",{d:"m19 9-3 3 3 3",key:"12ol22"}],["path",{d:"m5 15 3-3-3-3",key:"1kdhjc"}]]),jH=i("fold-vertical",[["path",{d:"M12 22v-6",key:"6o8u61"}],["path",{d:"M12 8V2",key:"1wkif3"}],["path",{d:"M4 12H2",key:"rhcxmi"}],["path",{d:"M10 12H8",key:"s88cx1"}],["path",{d:"M16 12h-2",key:"10asgb"}],["path",{d:"M22 12h-2",key:"14jgyd"}],["path",{d:"m15 19-3-3-3 3",key:"e37ymu"}],["path",{d:"m15 5-3 3-3-3",key:"19d6lf"}]]),jI=i("folder-archive",[["circle",{cx:"15",cy:"19",r:"2",key:"u2pros"}],["path",{d:"M20.9 19.8A2 2 0 0 0 22 18V8a2 2 0 0 0-2-2h-7.9a2 2 0 0 1-1.69-.9L9.6 3.9A2 2 0 0 0 7.93 3H4a2 2 0 0 0-2 2v13a2 2 0 0 0 2 2h5.1",key:"1jj40k"}],["path",{d:"M15 11v-1",key:"cntcp"}],["path",{d:"M15 17v-2",key:"1279jj"}]]),jJ=i("folder-check",[["path",{d:"M20 20a2 2 0 0 0 2-2V8a2 2 0 0 0-2-2h-7.9a2 2 0 0 1-1.69-.9L9.6 3.9A2 2 0 0 0 7.93 3H4a2 2 0 0 0-2 2v13a2 2 0 0 0 2 2Z",key:"1kt360"}],["path",{d:"m9 13 2 2 4-4",key:"6343dt"}]]),jK=i("folder-clock",[["path",{d:"M16 14v2.2l1.6 1",key:"fo4ql5"}],["path",{d:"M7 20H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h3.9a2 2 0 0 1 1.69.9l.81 1.2a2 2 0 0 0 1.67.9H20a2 2 0 0 1 2 2",key:"1urifu"}],["circle",{cx:"16",cy:"16",r:"6",key:"qoo3c4"}]]),jL=i("folder-closed",[["path",{d:"M20 20a2 2 0 0 0 2-2V8a2 2 0 0 0-2-2h-7.9a2 2 0 0 1-1.69-.9L9.6 3.9A2 2 0 0 0 7.93 3H4a2 2 0 0 0-2 2v13a2 2 0 0 0 2 2Z",key:"1kt360"}],["path",{d:"M2 10h20",key:"1ir3d8"}]]),jM=i("folder-code",[["path",{d:"M10 10.5 8 13l2 2.5",key:"m4t9c1"}],["path",{d:"m14 10.5 2 2.5-2 2.5",key:"14w2eb"}],["path",{d:"M20 20a2 2 0 0 0 2-2V8a2 2 0 0 0-2-2h-7.9a2 2 0 0 1-1.69-.9L9.6 3.9A2 2 0 0 0 7.93 3H4a2 2 0 0 0-2 2v13a2 2 0 0 0 2 2z",key:"1u1bxd"}]]),jN=i("folder-cog",[["path",{d:"M10.3 20H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h3.98a2 2 0 0 1 1.69.9l.66 1.2A2 2 0 0 0 12 6h8a2 2 0 0 1 2 2v3.3",key:"128dxu"}],["path",{d:"m14.305 19.53.923-.382",key:"3m78fa"}],["path",{d:"m15.228 16.852-.923-.383",key:"npixar"}],["path",{d:"m16.852 15.228-.383-.923",key:"5xggr7"}],["path",{d:"m16.852 20.772-.383.924",key:"dpfhf9"}],["path",{d:"m19.148 15.228.383-.923",key:"1reyyz"}],["path",{d:"m19.53 21.696-.382-.924",key:"1goivc"}],["path",{d:"m20.772 16.852.924-.383",key:"htqkph"}],["path",{d:"m20.772 19.148.924.383",key:"9w9pjp"}],["circle",{cx:"18",cy:"18",r:"3",key:"1xkwt0"}]]),jO=i("folder-dot",[["path",{d:"M4 20h16a2 2 0 0 0 2-2V8a2 2 0 0 0-2-2h-7.93a2 2 0 0 1-1.66-.9l-.82-1.2A2 2 0 0 0 7.93 3H4a2 2 0 0 0-2 2v13c0 1.1.9 2 2 2Z",key:"1fr9dc"}],["circle",{cx:"12",cy:"13",r:"1",key:"49l61u"}]]),jP=i("folder-down",[["path",{d:"M20 20a2 2 0 0 0 2-2V8a2 2 0 0 0-2-2h-7.9a2 2 0 0 1-1.69-.9L9.6 3.9A2 2 0 0 0 7.93 3H4a2 2 0 0 0-2 2v13a2 2 0 0 0 2 2Z",key:"1kt360"}],["path",{d:"M12 10v6",key:"1bos4e"}],["path",{d:"m15 13-3 3-3-3",key:"6j2sf0"}]]),jQ=i("folder-git-2",[["path",{d:"M9 20H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h3.9a2 2 0 0 1 1.69.9l.81 1.2a2 2 0 0 0 1.67.9H20a2 2 0 0 1 2 2v5",key:"1w6njk"}],["circle",{cx:"13",cy:"12",r:"2",key:"1j92g6"}],["path",{d:"M18 19c-2.8 0-5-2.2-5-5v8",key:"pkpw2h"}],["circle",{cx:"20",cy:"19",r:"2",key:"1obnsp"}]]),jR=i("folder-git",[["circle",{cx:"12",cy:"13",r:"2",key:"1c1ljs"}],["path",{d:"M20 20a2 2 0 0 0 2-2V8a2 2 0 0 0-2-2h-7.9a2 2 0 0 1-1.69-.9L9.6 3.9A2 2 0 0 0 7.93 3H4a2 2 0 0 0-2 2v13a2 2 0 0 0 2 2Z",key:"1kt360"}],["path",{d:"M14 13h3",key:"1dgedf"}],["path",{d:"M7 13h3",key:"1pygq7"}]]),jS=i("folder-heart",[["path",{d:"M11 20H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h3.9a2 2 0 0 1 1.69.9l.81 1.2a2 2 0 0 0 1.67.9H20a2 2 0 0 1 2 2v1.5",key:"6hud8k"}],["path",{d:"M13.9 17.45c-1.2-1.2-1.14-2.8-.2-3.73a2.43 2.43 0 0 1 3.44 0l.36.34.34-.34a2.43 2.43 0 0 1 3.45-.01c.95.95 1 2.53-.2 3.74L17.5 21Z",key:"wpff58"}]]),jT=i("folder-input",[["path",{d:"M2 9V5a2 2 0 0 1 2-2h3.9a2 2 0 0 1 1.69.9l.81 1.2a2 2 0 0 0 1.67.9H20a2 2 0 0 1 2 2v10a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2v-1",key:"fm4g5t"}],["path",{d:"M2 13h10",key:"pgb2dq"}],["path",{d:"m9 16 3-3-3-3",key:"6m91ic"}]]),jU=i("folder-kanban",[["path",{d:"M4 20h16a2 2 0 0 0 2-2V8a2 2 0 0 0-2-2h-7.93a2 2 0 0 1-1.66-.9l-.82-1.2A2 2 0 0 0 7.93 3H4a2 2 0 0 0-2 2v13c0 1.1.9 2 2 2Z",key:"1fr9dc"}],["path",{d:"M8 10v4",key:"tgpxqk"}],["path",{d:"M12 10v2",key:"hh53o1"}],["path",{d:"M16 10v6",key:"1d6xys"}]]),jV=i("folder-key",[["circle",{cx:"16",cy:"20",r:"2",key:"1vifvg"}],["path",{d:"M10 20H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h3.9a2 2 0 0 1 1.69.9l.81 1.2a2 2 0 0 0 1.67.9H20a2 2 0 0 1 2 2v2",key:"3hgo9p"}],["path",{d:"m22 14-4.5 4.5",key:"1ef6z8"}],["path",{d:"m21 15 1 1",key:"1ejcpy"}]]),jW=i("folder-minus",[["path",{d:"M9 13h6",key:"1uhe8q"}],["path",{d:"M20 20a2 2 0 0 0 2-2V8a2 2 0 0 0-2-2h-7.9a2 2 0 0 1-1.69-.9L9.6 3.9A2 2 0 0 0 7.93 3H4a2 2 0 0 0-2 2v13a2 2 0 0 0 2 2Z",key:"1kt360"}]]),jX=i("folder-lock",[["rect",{width:"8",height:"5",x:"14",y:"17",rx:"1",key:"19aais"}],["path",{d:"M10 20H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h3.9a2 2 0 0 1 1.69.9l.81 1.2a2 2 0 0 0 1.67.9H20a2 2 0 0 1 2 2v2.5",key:"1w6v7t"}],["path",{d:"M20 17v-2a2 2 0 1 0-4 0v2",key:"pwaxnr"}]]),jY=i("folder-open-dot",[["path",{d:"m6 14 1.45-2.9A2 2 0 0 1 9.24 10H20a2 2 0 0 1 1.94 2.5l-1.55 6a2 2 0 0 1-1.94 1.5H4a2 2 0 0 1-2-2V5c0-1.1.9-2 2-2h3.93a2 2 0 0 1 1.66.9l.82 1.2a2 2 0 0 0 1.66.9H18a2 2 0 0 1 2 2v2",key:"1nmvlm"}],["circle",{cx:"14",cy:"15",r:"1",key:"1gm4qj"}]]),jZ=i("folder-open",[["path",{d:"m6 14 1.5-2.9A2 2 0 0 1 9.24 10H20a2 2 0 0 1 1.94 2.5l-1.54 6a2 2 0 0 1-1.95 1.5H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h3.9a2 2 0 0 1 1.69.9l.81 1.2a2 2 0 0 0 1.67.9H18a2 2 0 0 1 2 2v2",key:"usdka0"}]]),j$=i("folder-output",[["path",{d:"M2 7.5V5a2 2 0 0 1 2-2h3.9a2 2 0 0 1 1.69.9l.81 1.2a2 2 0 0 0 1.67.9H20a2 2 0 0 1 2 2v10a2 2 0 0 1-2 2H4a2 2 0 0 1-2-1.5",key:"1yk7aj"}],["path",{d:"M2 13h10",key:"pgb2dq"}],["path",{d:"m5 10-3 3 3 3",key:"1r8ie0"}]]),j_=i("folder-pen",[["path",{d:"M2 11.5V5a2 2 0 0 1 2-2h3.9c.7 0 1.3.3 1.7.9l.8 1.2c.4.6 1 .9 1.7.9H20a2 2 0 0 1 2 2v10a2 2 0 0 1-2 2h-9.5",key:"a8xqs0"}],["path",{d:"M11.378 13.626a1 1 0 1 0-3.004-3.004l-5.01 5.012a2 2 0 0 0-.506.854l-.837 2.87a.5.5 0 0 0 .62.62l2.87-.837a2 2 0 0 0 .854-.506z",key:"1saktj"}]]),j0=i("folder-plus",[["path",{d:"M12 10v6",key:"1bos4e"}],["path",{d:"M9 13h6",key:"1uhe8q"}],["path",{d:"M20 20a2 2 0 0 0 2-2V8a2 2 0 0 0-2-2h-7.9a2 2 0 0 1-1.69-.9L9.6 3.9A2 2 0 0 0 7.93 3H4a2 2 0 0 0-2 2v13a2 2 0 0 0 2 2Z",key:"1kt360"}]]),j1=i("folder-root",[["path",{d:"M4 20h16a2 2 0 0 0 2-2V8a2 2 0 0 0-2-2h-7.93a2 2 0 0 1-1.66-.9l-.82-1.2A2 2 0 0 0 7.93 3H4a2 2 0 0 0-2 2v13c0 1.1.9 2 2 2Z",key:"1fr9dc"}],["circle",{cx:"12",cy:"13",r:"2",key:"1c1ljs"}],["path",{d:"M12 15v5",key:"11xva1"}]]),j2=i("folder-search-2",[["circle",{cx:"11.5",cy:"12.5",r:"2.5",key:"1ea5ju"}],["path",{d:"M20 20a2 2 0 0 0 2-2V8a2 2 0 0 0-2-2h-7.9a2 2 0 0 1-1.69-.9L9.6 3.9A2 2 0 0 0 7.93 3H4a2 2 0 0 0-2 2v13a2 2 0 0 0 2 2Z",key:"1kt360"}],["path",{d:"M13.3 14.3 15 16",key:"1y4v1n"}]]),j3=i("folder-search",[["path",{d:"M10.7 20H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h3.9a2 2 0 0 1 1.69.9l.81 1.2a2 2 0 0 0 1.67.9H20a2 2 0 0 1 2 2v4.1",key:"1bw5m7"}],["path",{d:"m21 21-1.9-1.9",key:"1g2n9r"}],["circle",{cx:"17",cy:"17",r:"3",key:"18b49y"}]]),j4=i("folder-symlink",[["path",{d:"M2 9V5a2 2 0 0 1 2-2h3.9a2 2 0 0 1 1.69.9l.81 1.2a2 2 0 0 0 1.67.9H20a2 2 0 0 1 2 2v10a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2v-3a2 2 0 0 1 2-2h7",key:"x1c07l"}],["path",{d:"m8 16 3-3-3-3",key:"rlqrt1"}]]),j5=i("folder-sync",[["path",{d:"M9 20H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h3.9a2 2 0 0 1 1.69.9l.81 1.2a2 2 0 0 0 1.67.9H20a2 2 0 0 1 2 2v.5",key:"1dkoa9"}],["path",{d:"M12 10v4h4",key:"1czhmt"}],["path",{d:"m12 14 1.535-1.605a5 5 0 0 1 8 1.5",key:"lvuxfi"}],["path",{d:"M22 22v-4h-4",key:"1ewp4q"}],["path",{d:"m22 18-1.535 1.605a5 5 0 0 1-8-1.5",key:"14ync0"}]]),j6=i("folder-tree",[["path",{d:"M20 10a1 1 0 0 0 1-1V6a1 1 0 0 0-1-1h-2.5a1 1 0 0 1-.8-.4l-.9-1.2A1 1 0 0 0 15 3h-2a1 1 0 0 0-1 1v5a1 1 0 0 0 1 1Z",key:"hod4my"}],["path",{d:"M20 21a1 1 0 0 0 1-1v-3a1 1 0 0 0-1-1h-2.9a1 1 0 0 1-.88-.55l-.42-.85a1 1 0 0 0-.92-.6H13a1 1 0 0 0-1 1v5a1 1 0 0 0 1 1Z",key:"w4yl2u"}],["path",{d:"M3 5a2 2 0 0 0 2 2h3",key:"f2jnh7"}],["path",{d:"M3 3v13a2 2 0 0 0 2 2h3",key:"k8epm1"}]]),j7=i("folder-up",[["path",{d:"M20 20a2 2 0 0 0 2-2V8a2 2 0 0 0-2-2h-7.9a2 2 0 0 1-1.69-.9L9.6 3.9A2 2 0 0 0 7.93 3H4a2 2 0 0 0-2 2v13a2 2 0 0 0 2 2Z",key:"1kt360"}],["path",{d:"M12 10v6",key:"1bos4e"}],["path",{d:"m9 13 3-3 3 3",key:"1pxg3c"}]]),j8=i("folder-x",[["path",{d:"M20 20a2 2 0 0 0 2-2V8a2 2 0 0 0-2-2h-7.9a2 2 0 0 1-1.69-.9L9.6 3.9A2 2 0 0 0 7.93 3H4a2 2 0 0 0-2 2v13a2 2 0 0 0 2 2Z",key:"1kt360"}],["path",{d:"m9.5 10.5 5 5",key:"ra9qjz"}],["path",{d:"m14.5 10.5-5 5",key:"l2rkpq"}]]),j9=i("folder",[["path",{d:"M20 20a2 2 0 0 0 2-2V8a2 2 0 0 0-2-2h-7.9a2 2 0 0 1-1.69-.9L9.6 3.9A2 2 0 0 0 7.93 3H4a2 2 0 0 0-2 2v13a2 2 0 0 0 2 2Z",key:"1kt360"}]]),ka=i("folders",[["path",{d:"M20 17a2 2 0 0 0 2-2V9a2 2 0 0 0-2-2h-3.9a2 2 0 0 1-1.69-.9l-.81-1.2a2 2 0 0 0-1.67-.9H8a2 2 0 0 0-2 2v9a2 2 0 0 0 2 2Z",key:"4u7rpt"}],["path",{d:"M2 8v11a2 2 0 0 0 2 2h14",key:"1eicx1"}]]),kb=i("footprints",[["path",{d:"M4 16v-2.38C4 11.5 2.97 10.5 3 8c.03-2.72 1.49-6 4.5-6C9.37 2 10 3.8 10 5.5c0 3.11-2 5.66-2 8.68V16a2 2 0 1 1-4 0Z",key:"1dudjm"}],["path",{d:"M20 20v-2.38c0-2.12 1.03-3.12 1-5.62-.03-2.72-1.49-6-4.5-6C14.63 6 14 7.8 14 9.5c0 3.11 2 5.66 2 8.68V20a2 2 0 1 0 4 0Z",key:"l2t8xc"}],["path",{d:"M16 17h4",key:"1dejxt"}],["path",{d:"M4 13h4",key:"1bwh8b"}]]),kc=i("forklift",[["path",{d:"M12 12H5a2 2 0 0 0-2 2v5",key:"7zsz91"}],["circle",{cx:"13",cy:"19",r:"2",key:"wjnkru"}],["circle",{cx:"5",cy:"19",r:"2",key:"v8kfzx"}],["path",{d:"M8 19h3m5-17v17h6M6 12V7c0-1.1.9-2 2-2h3l5 5",key:"13bk1p"}]]),kd=i("forward",[["path",{d:"m15 17 5-5-5-5",key:"nf172w"}],["path",{d:"M4 18v-2a4 4 0 0 1 4-4h12",key:"jmiej9"}]]),ke=i("frame",[["line",{x1:"22",x2:"2",y1:"6",y2:"6",key:"15w7dq"}],["line",{x1:"22",x2:"2",y1:"18",y2:"18",key:"1ip48p"}],["line",{x1:"6",x2:"6",y1:"2",y2:"22",key:"a2lnyx"}],["line",{x1:"18",x2:"18",y1:"2",y2:"22",key:"8vb6jd"}]]),kf=i("framer",[["path",{d:"M5 16V9h14V2H5l14 14h-7m-7 0 7 7v-7m-7 0h7",key:"1a2nng"}]]),kg=i("frown",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"M16 16s-1.5-2-4-2-4 2-4 2",key:"epbg0q"}],["line",{x1:"9",x2:"9.01",y1:"9",y2:"9",key:"yxxnd0"}],["line",{x1:"15",x2:"15.01",y1:"9",y2:"9",key:"1p4y9e"}]]),kh=i("fuel",[["line",{x1:"3",x2:"15",y1:"22",y2:"22",key:"xegly4"}],["line",{x1:"4",x2:"14",y1:"9",y2:"9",key:"xcnuvu"}],["path",{d:"M14 22V4a2 2 0 0 0-2-2H6a2 2 0 0 0-2 2v18",key:"16j0yd"}],["path",{d:"M14 13h2a2 2 0 0 1 2 2v2a2 2 0 0 0 2 2a2 2 0 0 0 2-2V9.83a2 2 0 0 0-.59-1.42L18 5",key:"7cu91f"}]]),ki=i("fullscreen",[["path",{d:"M3 7V5a2 2 0 0 1 2-2h2",key:"aa7l1z"}],["path",{d:"M17 3h2a2 2 0 0 1 2 2v2",key:"4qcy5o"}],["path",{d:"M21 17v2a2 2 0 0 1-2 2h-2",key:"6vwrx8"}],["path",{d:"M7 21H5a2 2 0 0 1-2-2v-2",key:"ioqczr"}],["rect",{width:"10",height:"8",x:"7",y:"8",rx:"1",key:"vys8me"}]]),kj=i("funnel-plus",[["path",{d:"M13.354 3H3a1 1 0 0 0-.742 1.67l7.225 7.989A2 2 0 0 1 10 14v6a1 1 0 0 0 .553.895l2 1A1 1 0 0 0 14 21v-7a2 2 0 0 1 .517-1.341l1.218-1.348",key:"8mvsmf"}],["path",{d:"M16 6h6",key:"1dogtp"}],["path",{d:"M19 3v6",key:"1ytpjt"}]]),kk=i("funnel-x",[["path",{d:"M12.531 3H3a1 1 0 0 0-.742 1.67l7.225 7.989A2 2 0 0 1 10 14v6a1 1 0 0 0 .553.895l2 1A1 1 0 0 0 14 21v-7a2 2 0 0 1 .517-1.341l.427-.473",key:"ol2ft2"}],["path",{d:"m16.5 3.5 5 5",key:"15e6fa"}],["path",{d:"m21.5 3.5-5 5",key:"m0lwru"}]]),kl=i("funnel",[["path",{d:"M10 20a1 1 0 0 0 .553.895l2 1A1 1 0 0 0 14 21v-7a2 2 0 0 1 .517-1.341L21.74 4.67A1 1 0 0 0 21 3H3a1 1 0 0 0-.742 1.67l7.225 7.989A2 2 0 0 1 10 14z",key:"sc7q7i"}]]),km=i("gallery-horizontal-end",[["path",{d:"M2 7v10",key:"a2pl2d"}],["path",{d:"M6 5v14",key:"1kq3d7"}],["rect",{width:"12",height:"18",x:"10",y:"3",rx:"2",key:"13i7bc"}]]),kn=i("gallery-horizontal",[["path",{d:"M2 3v18",key:"pzttux"}],["rect",{width:"12",height:"18",x:"6",y:"3",rx:"2",key:"btr8bg"}],["path",{d:"M22 3v18",key:"6jf3v"}]]),ko=i("gallery-thumbnails",[["rect",{width:"18",height:"14",x:"3",y:"3",rx:"2",key:"74y24f"}],["path",{d:"M4 21h1",key:"16zlid"}],["path",{d:"M9 21h1",key:"15o7lz"}],["path",{d:"M14 21h1",key:"v9vybs"}],["path",{d:"M19 21h1",key:"edywat"}]]),kp=i("gallery-vertical-end",[["path",{d:"M7 2h10",key:"nczekb"}],["path",{d:"M5 6h14",key:"u2x4p"}],["rect",{width:"18",height:"12",x:"3",y:"10",rx:"2",key:"l0tzu3"}]]),kq=i("gallery-vertical",[["path",{d:"M3 2h18",key:"15qxfx"}],["rect",{width:"18",height:"12",x:"3",y:"6",rx:"2",key:"1439r6"}],["path",{d:"M3 22h18",key:"8prr45"}]]),kr=i("gamepad-2",[["line",{x1:"6",x2:"10",y1:"11",y2:"11",key:"1gktln"}],["line",{x1:"8",x2:"8",y1:"9",y2:"13",key:"qnk9ow"}],["line",{x1:"15",x2:"15.01",y1:"12",y2:"12",key:"krot7o"}],["line",{x1:"18",x2:"18.01",y1:"10",y2:"10",key:"1lcuu1"}],["path",{d:"M17.32 5H6.68a4 4 0 0 0-3.978 3.59c-.006.052-.01.101-.017.152C2.604 9.416 2 14.456 2 16a3 3 0 0 0 3 3c1 0 1.5-.5 2-1l1.414-1.414A2 2 0 0 1 9.828 16h4.344a2 2 0 0 1 1.414.586L17 18c.5.5 1 1 2 1a3 3 0 0 0 3-3c0-1.545-.604-6.584-.685-7.258-.007-.05-.011-.1-.017-.151A4 4 0 0 0 17.32 5z",key:"mfqc10"}]]),ks=i("gamepad",[["line",{x1:"6",x2:"10",y1:"12",y2:"12",key:"161bw2"}],["line",{x1:"8",x2:"8",y1:"10",y2:"14",key:"1i6ji0"}],["line",{x1:"15",x2:"15.01",y1:"13",y2:"13",key:"dqpgro"}],["line",{x1:"18",x2:"18.01",y1:"11",y2:"11",key:"meh2c"}],["rect",{width:"20",height:"12",x:"2",y:"6",rx:"2",key:"9lu3g6"}]]),kt=i("gauge",[["path",{d:"m12 14 4-4",key:"9kzdfg"}],["path",{d:"M3.34 19a10 10 0 1 1 17.32 0",key:"19p75a"}]]),ku=i("gavel",[["path",{d:"m14.5 12.5-8 8a2.119 2.119 0 1 1-3-3l8-8",key:"15492f"}],["path",{d:"m16 16 6-6",key:"vzrcl6"}],["path",{d:"m8 8 6-6",key:"18bi4p"}],["path",{d:"m9 7 8 8",key:"5jnvq1"}],["path",{d:"m21 11-8-8",key:"z4y7zo"}]]),kv=i("gem",[["path",{d:"M6 3h12l4 6-10 13L2 9Z",key:"1pcd5k"}],["path",{d:"M11 3 8 9l4 13 4-13-3-6",key:"1fcu3u"}],["path",{d:"M2 9h20",key:"16fsjt"}]]),kw=i("georgian-lari",[["path",{d:"M11.5 21a7.5 7.5 0 1 1 7.35-9",key:"1gyj8k"}],["path",{d:"M13 12V3",key:"18om2a"}],["path",{d:"M4 21h16",key:"1h09gz"}],["path",{d:"M9 12V3",key:"geutu0"}]]),kx=i("ghost",[["path",{d:"M9 10h.01",key:"qbtxuw"}],["path",{d:"M15 10h.01",key:"1qmjsl"}],["path",{d:"M12 2a8 8 0 0 0-8 8v12l3-3 2.5 2.5L12 19l2.5 2.5L17 19l3 3V10a8 8 0 0 0-8-8z",key:"uwwb07"}]]),ky=i("gift",[["rect",{x:"3",y:"8",width:"18",height:"4",rx:"1",key:"bkv52"}],["path",{d:"M12 8v13",key:"1c76mn"}],["path",{d:"M19 12v7a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2v-7",key:"6wjy6b"}],["path",{d:"M7.5 8a2.5 2.5 0 0 1 0-5A4.8 8 0 0 1 12 8a4.8 8 0 0 1 4.5-5 2.5 2.5 0 0 1 0 5",key:"1ihvrl"}]]),kz=i("git-branch-plus",[["path",{d:"M6 3v12",key:"qpgusn"}],["path",{d:"M18 9a3 3 0 1 0 0-6 3 3 0 0 0 0 6z",key:"1d02ji"}],["path",{d:"M6 21a3 3 0 1 0 0-6 3 3 0 0 0 0 6z",key:"chk6ph"}],["path",{d:"M15 6a9 9 0 0 0-9 9",key:"or332x"}],["path",{d:"M18 15v6",key:"9wciyi"}],["path",{d:"M21 18h-6",key:"139f0c"}]]),kA=i("git-branch",[["line",{x1:"6",x2:"6",y1:"3",y2:"15",key:"17qcm7"}],["circle",{cx:"18",cy:"6",r:"3",key:"1h7g24"}],["circle",{cx:"6",cy:"18",r:"3",key:"fqmcym"}],["path",{d:"M18 9a9 9 0 0 1-9 9",key:"n2h4wq"}]]),kB=i("git-commit-horizontal",[["circle",{cx:"12",cy:"12",r:"3",key:"1v7zrd"}],["line",{x1:"3",x2:"9",y1:"12",y2:"12",key:"1dyftd"}],["line",{x1:"15",x2:"21",y1:"12",y2:"12",key:"oup4p8"}]]),kC=i("git-commit-vertical",[["path",{d:"M12 3v6",key:"1holv5"}],["circle",{cx:"12",cy:"12",r:"3",key:"1v7zrd"}],["path",{d:"M12 15v6",key:"a9ows0"}]]),kD=i("git-compare-arrows",[["circle",{cx:"5",cy:"6",r:"3",key:"1qnov2"}],["path",{d:"M12 6h5a2 2 0 0 1 2 2v7",key:"1yj91y"}],["path",{d:"m15 9-3-3 3-3",key:"1lwv8l"}],["circle",{cx:"19",cy:"18",r:"3",key:"1qljk2"}],["path",{d:"M12 18H7a2 2 0 0 1-2-2V9",key:"16sdep"}],["path",{d:"m9 15 3 3-3 3",key:"1m3kbl"}]]),kE=i("git-fork",[["circle",{cx:"12",cy:"18",r:"3",key:"1mpf1b"}],["circle",{cx:"6",cy:"6",r:"3",key:"1lh9wr"}],["circle",{cx:"18",cy:"6",r:"3",key:"1h7g24"}],["path",{d:"M18 9v2c0 .6-.4 1-1 1H7c-.6 0-1-.4-1-1V9",key:"1uq4wg"}],["path",{d:"M12 12v3",key:"158kv8"}]]),kF=i("git-compare",[["circle",{cx:"18",cy:"18",r:"3",key:"1xkwt0"}],["circle",{cx:"6",cy:"6",r:"3",key:"1lh9wr"}],["path",{d:"M13 6h3a2 2 0 0 1 2 2v7",key:"1yeb86"}],["path",{d:"M11 18H8a2 2 0 0 1-2-2V9",key:"19pyzm"}]]),kG=i("git-graph",[["circle",{cx:"5",cy:"6",r:"3",key:"1qnov2"}],["path",{d:"M5 9v6",key:"158jrl"}],["circle",{cx:"5",cy:"18",r:"3",key:"104gr9"}],["path",{d:"M12 3v18",key:"108xh3"}],["circle",{cx:"19",cy:"6",r:"3",key:"108a5v"}],["path",{d:"M16 15.7A9 9 0 0 0 19 9",key:"1e3vqb"}]]),kH=i("git-merge",[["circle",{cx:"18",cy:"18",r:"3",key:"1xkwt0"}],["circle",{cx:"6",cy:"6",r:"3",key:"1lh9wr"}],["path",{d:"M6 21V9a9 9 0 0 0 9 9",key:"7kw0sc"}]]),kI=i("git-pull-request-arrow",[["circle",{cx:"5",cy:"6",r:"3",key:"1qnov2"}],["path",{d:"M5 9v12",key:"ih889a"}],["circle",{cx:"19",cy:"18",r:"3",key:"1qljk2"}],["path",{d:"m15 9-3-3 3-3",key:"1lwv8l"}],["path",{d:"M12 6h5a2 2 0 0 1 2 2v7",key:"1yj91y"}]]),kJ=i("git-pull-request-closed",[["circle",{cx:"6",cy:"6",r:"3",key:"1lh9wr"}],["path",{d:"M6 9v12",key:"1sc30k"}],["path",{d:"m21 3-6 6",key:"16nqsk"}],["path",{d:"m21 9-6-6",key:"9j17rh"}],["path",{d:"M18 11.5V15",key:"65xf6f"}],["circle",{cx:"18",cy:"18",r:"3",key:"1xkwt0"}]]),kK=i("git-pull-request-create-arrow",[["circle",{cx:"5",cy:"6",r:"3",key:"1qnov2"}],["path",{d:"M5 9v12",key:"ih889a"}],["path",{d:"m15 9-3-3 3-3",key:"1lwv8l"}],["path",{d:"M12 6h5a2 2 0 0 1 2 2v3",key:"1rbwk6"}],["path",{d:"M19 15v6",key:"10aioa"}],["path",{d:"M22 18h-6",key:"1d5gi5"}]]),kL=i("git-pull-request-create",[["circle",{cx:"6",cy:"6",r:"3",key:"1lh9wr"}],["path",{d:"M6 9v12",key:"1sc30k"}],["path",{d:"M13 6h3a2 2 0 0 1 2 2v3",key:"1jb6z3"}],["path",{d:"M18 15v6",key:"9wciyi"}],["path",{d:"M21 18h-6",key:"139f0c"}]]),kM=i("git-pull-request-draft",[["circle",{cx:"18",cy:"18",r:"3",key:"1xkwt0"}],["circle",{cx:"6",cy:"6",r:"3",key:"1lh9wr"}],["path",{d:"M18 6V5",key:"1oao2s"}],["path",{d:"M18 11v-1",key:"11c8tz"}],["line",{x1:"6",x2:"6",y1:"9",y2:"21",key:"rroup"}]]),kN=i("git-pull-request",[["circle",{cx:"18",cy:"18",r:"3",key:"1xkwt0"}],["circle",{cx:"6",cy:"6",r:"3",key:"1lh9wr"}],["path",{d:"M13 6h3a2 2 0 0 1 2 2v7",key:"1yeb86"}],["line",{x1:"6",x2:"6",y1:"9",y2:"21",key:"rroup"}]]),kO=i("github",[["path",{d:"M15 22v-4a4.8 4.8 0 0 0-1-3.5c3 0 6-2 6-5.5.08-1.25-.27-2.48-1-3.5.28-1.15.28-2.35 0-3.5 0 0-1 0-3 1.5-2.64-.5-5.36-.5-8 0C6 2 5 2 5 2c-.3 1.15-.3 2.35 0 3.5A5.403 5.403 0 0 0 4 9c0 3.5 3 5.5 6 5.5-.39.49-.68 1.05-.85 1.65-.17.6-.22 1.23-.15 1.85v4",key:"tonef"}],["path",{d:"M9 18c-4.51 2-5-2-7-2",key:"9comsn"}]]),kP=i("gitlab",[["path",{d:"m22 13.29-3.33-10a.42.42 0 0 0-.14-.18.38.38 0 0 0-.22-.11.39.39 0 0 0-.23.07.42.42 0 0 0-.14.18l-2.26 6.67H8.32L6.1 3.26a.42.42 0 0 0-.1-.18.38.38 0 0 0-.26-.08.39.39 0 0 0-.23.07.42.42 0 0 0-.14.18L2 13.29a.74.74 0 0 0 .27.83L12 21l9.69-6.88a.71.71 0 0 0 .31-.83Z",key:"148pdi"}]]),kQ=i("glass-water",[["path",{d:"M5.116 4.104A1 1 0 0 1 6.11 3h11.78a1 1 0 0 1 .994 1.105L17.19 20.21A2 2 0 0 1 15.2 22H8.8a2 2 0 0 1-2-1.79z",key:"p55z4y"}],["path",{d:"M6 12a5 5 0 0 1 6 0 5 5 0 0 0 6 0",key:"mjntcy"}]]),kR=i("glasses",[["circle",{cx:"6",cy:"15",r:"4",key:"vux9w4"}],["circle",{cx:"18",cy:"15",r:"4",key:"18o8ve"}],["path",{d:"M14 15a2 2 0 0 0-2-2 2 2 0 0 0-2 2",key:"1ag4bs"}],["path",{d:"M2.5 13 5 7c.7-1.3 1.4-2 3-2",key:"1hm1gs"}],["path",{d:"M21.5 13 19 7c-.7-1.3-1.5-2-3-2",key:"1r31ai"}]]),kS=i("globe-lock",[["path",{d:"M15.686 15A14.5 14.5 0 0 1 12 22a14.5 14.5 0 0 1 0-20 10 10 0 1 0 9.542 13",key:"qkt0x6"}],["path",{d:"M2 12h8.5",key:"ovaggd"}],["path",{d:"M20 6V4a2 2 0 1 0-4 0v2",key:"1of5e8"}],["rect",{width:"8",height:"5",x:"14",y:"6",rx:"1",key:"1fmf51"}]]),kT=i("globe",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"M12 2a14.5 14.5 0 0 0 0 20 14.5 14.5 0 0 0 0-20",key:"13o1zl"}],["path",{d:"M2 12h20",key:"9i4pu4"}]]),kU=i("goal",[["path",{d:"M12 13V2l8 4-8 4",key:"5wlwwj"}],["path",{d:"M20.561 10.222a9 9 0 1 1-12.55-5.29",key:"1c0wjv"}],["path",{d:"M8.002 9.997a5 5 0 1 0 8.9 2.02",key:"gb1g7m"}]]),kV=i("gpu",[["path",{d:"M2 21V3",key:"1bzk4w"}],["path",{d:"M2 5h18a2 2 0 0 1 2 2v8a2 2 0 0 1-2 2H2.26",key:"1d64pi"}],["path",{d:"M7 17v3a1 1 0 0 0 1 1h5a1 1 0 0 0 1-1v-3",key:"5hbqbf"}],["circle",{cx:"16",cy:"11",r:"2",key:"qt15rb"}],["circle",{cx:"8",cy:"11",r:"2",key:"ssideg"}]]),kW=i("grab",[["path",{d:"M18 11.5V9a2 2 0 0 0-2-2a2 2 0 0 0-2 2v1.4",key:"edstyy"}],["path",{d:"M14 10V8a2 2 0 0 0-2-2a2 2 0 0 0-2 2v2",key:"19wdwo"}],["path",{d:"M10 9.9V9a2 2 0 0 0-2-2a2 2 0 0 0-2 2v5",key:"1lugqo"}],["path",{d:"M6 14a2 2 0 0 0-2-2a2 2 0 0 0-2 2",key:"1hbeus"}],["path",{d:"M18 11a2 2 0 1 1 4 0v3a8 8 0 0 1-8 8h-4a8 8 0 0 1-8-8 2 2 0 1 1 4 0",key:"1etffm"}]]),kX=i("graduation-cap",[["path",{d:"M21.42 10.922a1 1 0 0 0-.019-1.838L12.83 5.18a2 2 0 0 0-1.66 0L2.6 9.08a1 1 0 0 0 0 1.832l8.57 3.908a2 2 0 0 0 1.66 0z",key:"j76jl0"}],["path",{d:"M22 10v6",key:"1lu8f3"}],["path",{d:"M6 12.5V16a6 3 0 0 0 12 0v-3.5",key:"1r8lef"}]]),kY=i("grape",[["path",{d:"M22 5V2l-5.89 5.89",key:"1eenpo"}],["circle",{cx:"16.6",cy:"15.89",r:"3",key:"xjtalx"}],["circle",{cx:"8.11",cy:"7.4",r:"3",key:"u2fv6i"}],["circle",{cx:"12.35",cy:"11.65",r:"3",key:"i6i8g7"}],["circle",{cx:"13.91",cy:"5.85",r:"3",key:"6ye0dv"}],["circle",{cx:"18.15",cy:"10.09",r:"3",key:"snx9no"}],["circle",{cx:"6.56",cy:"13.2",r:"3",key:"17x4xg"}],["circle",{cx:"10.8",cy:"17.44",r:"3",key:"1hogw9"}],["circle",{cx:"5",cy:"19",r:"3",key:"1sn6vo"}]]),kZ=i("grid-2x2-check",[["path",{d:"M12 3v17a1 1 0 0 1-1 1H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2v6a1 1 0 0 1-1 1H3",key:"11za1p"}],["path",{d:"m16 19 2 2 4-4",key:"1b14m6"}]]),k$=i("grid-2x2-plus",[["path",{d:"M12 3v17a1 1 0 0 1-1 1H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2v6a1 1 0 0 1-1 1H3",key:"11za1p"}],["path",{d:"M16 19h6",key:"xwg31i"}],["path",{d:"M19 22v-6",key:"qhmiwi"}]]),k_=i("grid-2x2-x",[["path",{d:"M12 3v17a1 1 0 0 1-1 1H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2v6a1 1 0 0 1-1 1H3",key:"11za1p"}],["path",{d:"m16 16 5 5",key:"8tpb07"}],["path",{d:"m16 21 5-5",key:"193jll"}]]),k0=i("grid-2x2",[["path",{d:"M12 3v18",key:"108xh3"}],["path",{d:"M3 12h18",key:"1i2n21"}],["rect",{x:"3",y:"3",width:"18",height:"18",rx:"2",key:"h1oib"}]]),k1=i("grid-3x2",[["path",{d:"M15 3v18",key:"14nvp0"}],["path",{d:"M3 12h18",key:"1i2n21"}],["path",{d:"M9 3v18",key:"fh3hqa"}],["rect",{x:"3",y:"3",width:"18",height:"18",rx:"2",key:"h1oib"}]]),k2=i("grid-3x3",[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",key:"afitv7"}],["path",{d:"M3 9h18",key:"1pudct"}],["path",{d:"M3 15h18",key:"5xshup"}],["path",{d:"M9 3v18",key:"fh3hqa"}],["path",{d:"M15 3v18",key:"14nvp0"}]]),k3=i("grip-horizontal",[["circle",{cx:"12",cy:"9",r:"1",key:"124mty"}],["circle",{cx:"19",cy:"9",r:"1",key:"1ruzo2"}],["circle",{cx:"5",cy:"9",r:"1",key:"1a8b28"}],["circle",{cx:"12",cy:"15",r:"1",key:"1e56xg"}],["circle",{cx:"19",cy:"15",r:"1",key:"1a92ep"}],["circle",{cx:"5",cy:"15",r:"1",key:"5r1jwy"}]]),k4=i("grip-vertical",[["circle",{cx:"9",cy:"12",r:"1",key:"1vctgf"}],["circle",{cx:"9",cy:"5",r:"1",key:"hp0tcf"}],["circle",{cx:"9",cy:"19",r:"1",key:"fkjjf6"}],["circle",{cx:"15",cy:"12",r:"1",key:"1tmaij"}],["circle",{cx:"15",cy:"5",r:"1",key:"19l28e"}],["circle",{cx:"15",cy:"19",r:"1",key:"f4zoj3"}]]),k5=i("grip",[["circle",{cx:"12",cy:"5",r:"1",key:"gxeob9"}],["circle",{cx:"19",cy:"5",r:"1",key:"w8mnmm"}],["circle",{cx:"5",cy:"5",r:"1",key:"lttvr7"}],["circle",{cx:"12",cy:"12",r:"1",key:"41hilf"}],["circle",{cx:"19",cy:"12",r:"1",key:"1wjl8i"}],["circle",{cx:"5",cy:"12",r:"1",key:"1pcz8c"}],["circle",{cx:"12",cy:"19",r:"1",key:"lyex9k"}],["circle",{cx:"19",cy:"19",r:"1",key:"shf9b7"}],["circle",{cx:"5",cy:"19",r:"1",key:"bfqh0e"}]]),k6=i("guitar",[["path",{d:"m11.9 12.1 4.514-4.514",key:"109xqo"}],["path",{d:"M20.1 2.3a1 1 0 0 0-1.4 0l-1.114 1.114A2 2 0 0 0 17 4.828v1.344a2 2 0 0 1-.586 1.414A2 2 0 0 1 17.828 7h1.344a2 2 0 0 0 1.414-.586L21.7 5.3a1 1 0 0 0 0-1.4z",key:"txyc8t"}],["path",{d:"m6 16 2 2",key:"16qmzd"}],["path",{d:"M8.23 9.85A3 3 0 0 1 11 8a5 5 0 0 1 5 5 3 3 0 0 1-1.85 2.77l-.92.38A2 2 0 0 0 12 18a4 4 0 0 1-4 4 6 6 0 0 1-6-6 4 4 0 0 1 4-4 2 2 0 0 0 1.85-1.23z",key:"1de1vg"}]]),k7=i("group",[["path",{d:"M3 7V5c0-1.1.9-2 2-2h2",key:"adw53z"}],["path",{d:"M17 3h2c1.1 0 2 .9 2 2v2",key:"an4l38"}],["path",{d:"M21 17v2c0 1.1-.9 2-2 2h-2",key:"144t0e"}],["path",{d:"M7 21H5c-1.1 0-2-.9-2-2v-2",key:"rtnfgi"}],["rect",{width:"7",height:"5",x:"7",y:"7",rx:"1",key:"1eyiv7"}],["rect",{width:"7",height:"5",x:"10",y:"12",rx:"1",key:"1qlmkx"}]]),k8=i("ham",[["path",{d:"M13.144 21.144A7.274 10.445 45 1 0 2.856 10.856",key:"1k1t7q"}],["path",{d:"M13.144 21.144A7.274 4.365 45 0 0 2.856 10.856a7.274 4.365 45 0 0 10.288 10.288",key:"153t1g"}],["path",{d:"M16.565 10.435 18.6 8.4a2.501 2.501 0 1 0 1.65-4.65 2.5 2.5 0 1 0-4.66 1.66l-2.024 2.025",key:"gzrt0n"}],["path",{d:"m8.5 16.5-1-1",key:"otr954"}]]),k9=i("hamburger",[["path",{d:"M12 16H4a2 2 0 1 1 0-4h16a2 2 0 1 1 0 4h-4.25",key:"5dloqd"}],["path",{d:"M5 12a2 2 0 0 1-2-2 9 7 0 0 1 18 0 2 2 0 0 1-2 2",key:"1vl3my"}],["path",{d:"M5 16a2 2 0 0 0-2 2 3 3 0 0 0 3 3h12a3 3 0 0 0 3-3 2 2 0 0 0-2-2q0 0 0 0",key:"1us75o"}],["path",{d:"m6.67 12 6.13 4.6a2 2 0 0 0 2.8-.4l3.15-4.2",key:"qqzweh"}]]),la=i("hammer",[["path",{d:"m15 12-8.373 8.373a1 1 0 1 1-3-3L12 9",key:"eefl8a"}],["path",{d:"m18 15 4-4",key:"16gjal"}],["path",{d:"m21.5 11.5-1.914-1.914A2 2 0 0 1 19 8.172V7l-2.26-2.26a6 6 0 0 0-4.202-1.756L9 2.96l.92.82A6.18 6.18 0 0 1 12 8.4V10l2 2h1.172a2 2 0 0 1 1.414.586L18.5 14.5",key:"b7pghm"}]]),lb=i("hand-coins",[["path",{d:"M11 15h2a2 2 0 1 0 0-4h-3c-.6 0-1.1.2-1.4.6L3 17",key:"geh8rc"}],["path",{d:"m7 21 1.6-1.4c.3-.4.8-.6 1.4-.6h4c1.1 0 2.1-.4 2.8-1.2l4.6-4.4a2 2 0 0 0-2.75-2.91l-4.2 3.9",key:"1fto5m"}],["path",{d:"m2 16 6 6",key:"1pfhp9"}],["circle",{cx:"16",cy:"9",r:"2.9",key:"1n0dlu"}],["circle",{cx:"6",cy:"5",r:"3",key:"151irh"}]]),lc=i("hand-heart",[["path",{d:"M11 14h2a2 2 0 1 0 0-4h-3c-.6 0-1.1.2-1.4.6L3 16",key:"1ifwr1"}],["path",{d:"m7 20 1.6-1.4c.3-.4.8-.6 1.4-.6h4c1.1 0 2.1-.4 2.8-1.2l4.6-4.4a2 2 0 0 0-2.75-2.91l-4.2 3.9",key:"17abbs"}],["path",{d:"m2 15 6 6",key:"10dquu"}],["path",{d:"M19.5 8.5c.7-.7 1.5-1.6 1.5-2.7A2.73 2.73 0 0 0 16 4a2.78 2.78 0 0 0-5 1.8c0 1.2.8 2 1.5 2.8L16 12Z",key:"1h3036"}]]),ld=i("hand-helping",[["path",{d:"M11 12h2a2 2 0 1 0 0-4h-3c-.6 0-1.1.2-1.4.6L3 14",key:"1j4xps"}],["path",{d:"m7 18 1.6-1.4c.3-.4.8-.6 1.4-.6h4c1.1 0 2.1-.4 2.8-1.2l4.6-4.4a2 2 0 0 0-2.75-2.91l-4.2 3.9",key:"uospg8"}],["path",{d:"m2 13 6 6",key:"16e5sb"}]]),le=i("hand-metal",[["path",{d:"M18 12.5V10a2 2 0 0 0-2-2a2 2 0 0 0-2 2v1.4",key:"wc6myp"}],["path",{d:"M14 11V9a2 2 0 1 0-4 0v2",key:"94qvcw"}],["path",{d:"M10 10.5V5a2 2 0 1 0-4 0v9",key:"m1ah89"}],["path",{d:"m7 15-1.76-1.76a2 2 0 0 0-2.83 2.82l3.6 3.6C7.5 21.14 9.2 22 12 22h2a8 8 0 0 0 8-8V7a2 2 0 1 0-4 0v5",key:"t1skq1"}]]),lf=i("hand-platter",[["path",{d:"M12 3V2",key:"ar7q03"}],["path",{d:"m15.4 17.4 3.2-2.8a2 2 0 1 1 2.8 2.9l-3.6 3.3c-.7.8-1.7 1.2-2.8 1.2h-4c-1.1 0-2.1-.4-2.8-1.2l-1.302-1.464A1 1 0 0 0 6.151 19H5",key:"n2g93r"}],["path",{d:"M2 14h12a2 2 0 0 1 0 4h-2",key:"1o2jem"}],["path",{d:"M4 10h16",key:"img6z1"}],["path",{d:"M5 10a7 7 0 0 1 14 0",key:"1ega1o"}],["path",{d:"M5 14v6a1 1 0 0 1-1 1H2",key:"1hescx"}]]),lg=i("hand",[["path",{d:"M18 11V6a2 2 0 0 0-2-2a2 2 0 0 0-2 2",key:"1fvzgz"}],["path",{d:"M14 10V4a2 2 0 0 0-2-2a2 2 0 0 0-2 2v2",key:"1kc0my"}],["path",{d:"M10 10.5V6a2 2 0 0 0-2-2a2 2 0 0 0-2 2v8",key:"10h0bg"}],["path",{d:"M18 8a2 2 0 1 1 4 0v6a8 8 0 0 1-8 8h-2c-2.8 0-4.5-.86-5.99-2.34l-3.6-3.6a2 2 0 0 1 2.83-2.82L7 15",key:"1s1gnw"}]]),lh=i("handshake",[["path",{d:"m11 17 2 2a1 1 0 1 0 3-3",key:"efffak"}],["path",{d:"m14 14 2.5 2.5a1 1 0 1 0 3-3l-3.88-3.88a3 3 0 0 0-4.24 0l-.88.88a1 1 0 1 1-3-3l2.81-2.81a5.79 5.79 0 0 1 7.06-.87l.47.28a2 2 0 0 0 1.42.25L21 4",key:"9pr0kb"}],["path",{d:"m21 3 1 11h-2",key:"1tisrp"}],["path",{d:"M3 3 2 14l6.5 6.5a1 1 0 1 0 3-3",key:"1uvwmv"}],["path",{d:"M3 4h8",key:"1ep09j"}]]),li=i("hard-drive-download",[["path",{d:"M12 2v8",key:"1q4o3n"}],["path",{d:"m16 6-4 4-4-4",key:"6wukr"}],["rect",{width:"20",height:"8",x:"2",y:"14",rx:"2",key:"w68u3i"}],["path",{d:"M6 18h.01",key:"uhywen"}],["path",{d:"M10 18h.01",key:"h775k"}]]),lj=i("hard-drive-upload",[["path",{d:"m16 6-4-4-4 4",key:"13yo43"}],["path",{d:"M12 2v8",key:"1q4o3n"}],["rect",{width:"20",height:"8",x:"2",y:"14",rx:"2",key:"w68u3i"}],["path",{d:"M6 18h.01",key:"uhywen"}],["path",{d:"M10 18h.01",key:"h775k"}]]),lk=i("hard-drive",[["line",{x1:"22",x2:"2",y1:"12",y2:"12",key:"1y58io"}],["path",{d:"M5.45 5.11 2 12v6a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2v-6l-3.45-6.89A2 2 0 0 0 16.76 4H7.24a2 2 0 0 0-1.79 1.11z",key:"oot6mr"}],["line",{x1:"6",x2:"6.01",y1:"16",y2:"16",key:"sgf278"}],["line",{x1:"10",x2:"10.01",y1:"16",y2:"16",key:"1l4acy"}]]),ll=i("hard-hat",[["path",{d:"M10 10V5a1 1 0 0 1 1-1h2a1 1 0 0 1 1 1v5",key:"1p9q5i"}],["path",{d:"M14 6a6 6 0 0 1 6 6v3",key:"1hnv84"}],["path",{d:"M4 15v-3a6 6 0 0 1 6-6",key:"9ciidu"}],["rect",{x:"2",y:"15",width:"20",height:"4",rx:"1",key:"g3x8cw"}]]),lm=i("hash",[["line",{x1:"4",x2:"20",y1:"9",y2:"9",key:"4lhtct"}],["line",{x1:"4",x2:"20",y1:"15",y2:"15",key:"vyu0kd"}],["line",{x1:"10",x2:"8",y1:"3",y2:"21",key:"1ggp8o"}],["line",{x1:"16",x2:"14",y1:"3",y2:"21",key:"weycgp"}]]),ln=i("haze",[["path",{d:"m5.2 6.2 1.4 1.4",key:"17imol"}],["path",{d:"M2 13h2",key:"13gyu8"}],["path",{d:"M20 13h2",key:"16rner"}],["path",{d:"m17.4 7.6 1.4-1.4",key:"t4xlah"}],["path",{d:"M22 17H2",key:"1gtaj3"}],["path",{d:"M22 21H2",key:"1gy6en"}],["path",{d:"M16 13a4 4 0 0 0-8 0",key:"1dyczq"}],["path",{d:"M12 5V2.5",key:"1vytko"}]]),lo=i("hdmi-port",[["path",{d:"M22 9a1 1 0 0 0-1-1H3a1 1 0 0 0-1 1v4a1 1 0 0 0 1 1h1l2 2h12l2-2h1a1 1 0 0 0 1-1Z",key:"2128wb"}],["path",{d:"M7.5 12h9",key:"1t0ckc"}]]),lp=i("heading-1",[["path",{d:"M4 12h8",key:"17cfdx"}],["path",{d:"M4 18V6",key:"1rz3zl"}],["path",{d:"M12 18V6",key:"zqpxq5"}],["path",{d:"m17 12 3-2v8",key:"1hhhft"}]]),lq=i("heading-2",[["path",{d:"M4 12h8",key:"17cfdx"}],["path",{d:"M4 18V6",key:"1rz3zl"}],["path",{d:"M12 18V6",key:"zqpxq5"}],["path",{d:"M21 18h-4c0-4 4-3 4-6 0-1.5-2-2.5-4-1",key:"9jr5yi"}]]),lr=i("heading-3",[["path",{d:"M4 12h8",key:"17cfdx"}],["path",{d:"M4 18V6",key:"1rz3zl"}],["path",{d:"M12 18V6",key:"zqpxq5"}],["path",{d:"M17.5 10.5c1.7-1 3.5 0 3.5 1.5a2 2 0 0 1-2 2",key:"68ncm8"}],["path",{d:"M17 17.5c2 1.5 4 .3 4-1.5a2 2 0 0 0-2-2",key:"1ejuhz"}]]),ls=i("heading-4",[["path",{d:"M12 18V6",key:"zqpxq5"}],["path",{d:"M17 10v3a1 1 0 0 0 1 1h3",key:"tj5zdr"}],["path",{d:"M21 10v8",key:"1kdml4"}],["path",{d:"M4 12h8",key:"17cfdx"}],["path",{d:"M4 18V6",key:"1rz3zl"}]]),lt=i("heading-5",[["path",{d:"M4 12h8",key:"17cfdx"}],["path",{d:"M4 18V6",key:"1rz3zl"}],["path",{d:"M12 18V6",key:"zqpxq5"}],["path",{d:"M17 13v-3h4",key:"1nvgqp"}],["path",{d:"M17 17.7c.4.2.8.3 1.3.3 1.5 0 2.7-1.1 2.7-2.5S19.8 13 18.3 13H17",key:"2nebdn"}]]),lu=i("heading-6",[["path",{d:"M4 12h8",key:"17cfdx"}],["path",{d:"M4 18V6",key:"1rz3zl"}],["path",{d:"M12 18V6",key:"zqpxq5"}],["circle",{cx:"19",cy:"16",r:"2",key:"15mx69"}],["path",{d:"M20 10c-2 2-3 3.5-3 6",key:"f35dl0"}]]),lv=i("heading",[["path",{d:"M6 12h12",key:"8npq4p"}],["path",{d:"M6 20V4",key:"1w1bmo"}],["path",{d:"M18 20V4",key:"o2hl4u"}]]),lw=i("headphone-off",[["path",{d:"M21 14h-1.343",key:"1jdnxi"}],["path",{d:"M9.128 3.47A9 9 0 0 1 21 12v3.343",key:"6kipu2"}],["path",{d:"m2 2 20 20",key:"1ooewy"}],["path",{d:"M20.414 20.414A2 2 0 0 1 19 21h-1a2 2 0 0 1-2-2v-3",key:"9x50f4"}],["path",{d:"M3 14h3a2 2 0 0 1 2 2v3a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-7a9 9 0 0 1 2.636-6.364",key:"1bkxnm"}]]),lx=i("headphones",[["path",{d:"M3 14h3a2 2 0 0 1 2 2v3a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-7a9 9 0 0 1 18 0v7a2 2 0 0 1-2 2h-1a2 2 0 0 1-2-2v-3a2 2 0 0 1 2-2h3",key:"1xhozi"}]]),ly=i("headset",[["path",{d:"M3 11h3a2 2 0 0 1 2 2v3a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-5Zm0 0a9 9 0 1 1 18 0m0 0v5a2 2 0 0 1-2 2h-1a2 2 0 0 1-2-2v-3a2 2 0 0 1 2-2h3Z",key:"12oyoe"}],["path",{d:"M21 16v2a4 4 0 0 1-4 4h-5",key:"1x7m43"}]]),lz=i("heart-crack",[["path",{d:"M19 14c1.49-1.46 3-3.21 3-5.5A5.5 5.5 0 0 0 16.5 3c-1.76 0-3 .5-4.5 2-1.5-1.5-2.74-2-4.5-2A5.5 5.5 0 0 0 2 8.5c0 2.3 1.5 4.05 3 5.5l7 7Z",key:"c3ymky"}],["path",{d:"m12 13-1-1 2-2-3-3 2-2",key:"xjdxli"}]]),lA=i("heart-handshake",[["path",{d:"M19 14c1.49-1.46 3-3.21 3-5.5A5.5 5.5 0 0 0 16.5 3c-1.76 0-3 .5-4.5 2-1.5-1.5-2.74-2-4.5-2A5.5 5.5 0 0 0 2 8.5c0 2.3 1.5 4.05 3 5.5l7 7Z",key:"c3ymky"}],["path",{d:"M12 5 9.04 7.96a2.17 2.17 0 0 0 0 3.08c.82.82 2.13.85 3 .07l2.07-1.9a2.82 2.82 0 0 1 3.79 0l2.96 2.66",key:"4oyue0"}],["path",{d:"m18 15-2-2",key:"60u0ii"}],["path",{d:"m15 18-2-2",key:"6p76be"}]]),lB=i("heart-off",[["line",{x1:"2",y1:"2",x2:"22",y2:"22",key:"1w4vcy"}],["path",{d:"M16.5 16.5 12 21l-7-7c-1.5-1.45-3-3.2-3-5.5a5.5 5.5 0 0 1 2.14-4.35",key:"3mpagl"}],["path",{d:"M8.76 3.1c1.15.22 2.13.78 3.24 1.9 1.5-1.5 2.74-2 4.5-2A5.5 5.5 0 0 1 22 8.5c0 2.12-1.3 3.78-2.67 5.17",key:"1gh3v3"}]]),lC=i("heart-minus",[["path",{d:"M13.5 19.5 12 21l-7-7c-1.5-1.45-3-3.2-3-5.5A5.5 5.5 0 0 1 7.5 3c1.76 0 3 .5 4.5 2 1.5-1.5 2.74-2 4.5-2a5.5 5.5 0 0 1 5.402 6.5",key:"vd0vy5"}],["path",{d:"M15 15h6",key:"1u4692"}]]),lD=i("heart-plus",[["path",{d:"M13.5 19.5 12 21l-7-7c-1.5-1.45-3-3.2-3-5.5A5.5 5.5 0 0 1 7.5 3c1.76 0 3 .5 4.5 2 1.5-1.5 2.74-2 4.5-2a5.5 5.5 0 0 1 5.402 6.5",key:"vd0vy5"}],["path",{d:"M15 15h6",key:"1u4692"}],["path",{d:"M18 12v6",key:"1houu1"}]]),lE=i("heart-pulse",[["path",{d:"M19 14c1.49-1.46 3-3.21 3-5.5A5.5 5.5 0 0 0 16.5 3c-1.76 0-3 .5-4.5 2-1.5-1.5-2.74-2-4.5-2A5.5 5.5 0 0 0 2 8.5c0 2.3 1.5 4.05 3 5.5l7 7Z",key:"c3ymky"}],["path",{d:"M3.22 12H9.5l.5-1 2 4.5 2-7 1.5 3.5h5.27",key:"1uw2ng"}]]),lF=i("heart",[["path",{d:"M19 14c1.49-1.46 3-3.21 3-5.5A5.5 5.5 0 0 0 16.5 3c-1.76 0-3 .5-4.5 2-1.5-1.5-2.74-2-4.5-2A5.5 5.5 0 0 0 2 8.5c0 2.3 1.5 4.05 3 5.5l7 7Z",key:"c3ymky"}]]),lG=i("heater",[["path",{d:"M11 8c2-3-2-3 0-6",key:"1ldv5m"}],["path",{d:"M15.5 8c2-3-2-3 0-6",key:"1otqoz"}],["path",{d:"M6 10h.01",key:"1lbq93"}],["path",{d:"M6 14h.01",key:"zudwn7"}],["path",{d:"M10 16v-4",key:"1c25yv"}],["path",{d:"M14 16v-4",key:"1dkbt8"}],["path",{d:"M18 16v-4",key:"1yg9me"}],["path",{d:"M20 6a2 2 0 0 1 2 2v10a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h3",key:"1ubg90"}],["path",{d:"M5 20v2",key:"1abpe8"}],["path",{d:"M19 20v2",key:"kqn6ft"}]]),lH=i("hexagon",[["path",{d:"M21 16V8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73l7 4a2 2 0 0 0 2 0l7-4A2 2 0 0 0 21 16z",key:"yt0hxn"}]]),lI=i("highlighter",[["path",{d:"m9 11-6 6v3h9l3-3",key:"1a3l36"}],["path",{d:"m22 12-4.6 4.6a2 2 0 0 1-2.8 0l-5.2-5.2a2 2 0 0 1 0-2.8L14 4",key:"14a9rk"}]]),lJ=i("history",[["path",{d:"M3 12a9 9 0 1 0 9-9 9.75 9.75 0 0 0-6.74 2.74L3 8",key:"1357e3"}],["path",{d:"M3 3v5h5",key:"1xhq8a"}],["path",{d:"M12 7v5l4 2",key:"1fdv2h"}]]),lK=i("hop-off",[["path",{d:"M10.82 16.12c1.69.6 3.91.79 5.18.85.28.01.53-.09.7-.27",key:"qyzcap"}],["path",{d:"M11.14 20.57c.52.24 2.44 1.12 4.08 1.37.46.06.86-.25.9-.71.12-1.52-.3-3.43-.5-4.28",key:"y078lb"}],["path",{d:"M16.13 21.05c1.65.63 3.68.84 4.87.91a.9.9 0 0 0 .7-.26",key:"1utre3"}],["path",{d:"M17.99 5.52a20.83 20.83 0 0 1 3.15 4.5.8.8 0 0 1-.68 1.13c-1.17.1-2.5.02-3.9-.25",key:"17o9hm"}],["path",{d:"M20.57 11.14c.24.52 1.12 2.44 1.37 4.08.04.3-.08.59-.31.75",key:"1d1n4p"}],["path",{d:"M4.93 4.93a10 10 0 0 0-.67 13.4c.35.43.96.4 1.17-.12.69-1.71 1.07-5.07 1.07-6.71 1.34.45 3.1.9 4.88.62a.85.85 0 0 0 .48-.24",key:"9uv3tt"}],["path",{d:"M5.52 17.99c1.05.95 2.91 2.42 4.5 3.15a.8.8 0 0 0 1.13-.68c.2-2.34-.33-5.3-1.57-8.28",key:"1292wz"}],["path",{d:"M8.35 2.68a10 10 0 0 1 9.98 1.58c.43.35.4.96-.12 1.17-1.5.6-4.3.98-6.07 1.05",key:"7ozu9p"}],["path",{d:"m2 2 20 20",key:"1ooewy"}]]),lL=i("hop",[["path",{d:"M10.82 16.12c1.69.6 3.91.79 5.18.85.55.03 1-.42.97-.97-.06-1.27-.26-3.5-.85-5.18",key:"18lxf1"}],["path",{d:"M11.5 6.5c1.64 0 5-.38 6.71-1.07.52-.2.55-.82.12-1.17A10 10 0 0 0 4.26 18.33c.35.43.96.4 1.17-.12.69-1.71 1.07-5.07 1.07-6.71 1.34.45 3.1.9 4.88.62a.88.88 0 0 0 .73-.74c.3-2.14-.15-3.5-.61-4.88",key:"vtfxrw"}],["path",{d:"M15.62 16.95c.2.85.62 2.76.5 4.28a.77.77 0 0 1-.9.7 16.64 16.64 0 0 1-4.08-1.36",key:"13hl71"}],["path",{d:"M16.13 21.05c1.65.63 3.68.84 4.87.91a.9.9 0 0 0 .96-.96 17.68 17.68 0 0 0-.9-4.87",key:"1sl8oj"}],["path",{d:"M16.94 15.62c.86.2 2.77.62 4.29.5a.77.77 0 0 0 .7-.9 16.64 16.64 0 0 0-1.36-4.08",key:"19c6kt"}],["path",{d:"M17.99 5.52a20.82 20.82 0 0 1 3.15 4.5.8.8 0 0 1-.68 1.13c-2.33.2-5.3-.32-8.27-1.57",key:"85ghs3"}],["path",{d:"M4.93 4.93 3 3a.7.7 0 0 1 0-1",key:"x087yj"}],["path",{d:"M9.58 12.18c1.24 2.98 1.77 5.95 1.57 8.28a.8.8 0 0 1-1.13.68 20.82 20.82 0 0 1-4.5-3.15",key:"11xdqo"}]]),lM=i("hospital",[["path",{d:"M12 6v4",key:"16clxf"}],["path",{d:"M14 14h-4",key:"esezmu"}],["path",{d:"M14 18h-4",key:"16mqa2"}],["path",{d:"M14 8h-4",key:"z8ypaz"}],["path",{d:"M18 12h2a2 2 0 0 1 2 2v6a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2v-9a2 2 0 0 1 2-2h2",key:"b1k337"}],["path",{d:"M18 22V4a2 2 0 0 0-2-2H8a2 2 0 0 0-2 2v18",key:"16g51d"}]]),lN=i("hotel",[["path",{d:"M10 22v-6.57",key:"1wmca3"}],["path",{d:"M12 11h.01",key:"z322tv"}],["path",{d:"M12 7h.01",key:"1ivr5q"}],["path",{d:"M14 15.43V22",key:"1q2vjd"}],["path",{d:"M15 16a5 5 0 0 0-6 0",key:"o9wqvi"}],["path",{d:"M16 11h.01",key:"xkw8gn"}],["path",{d:"M16 7h.01",key:"1kdx03"}],["path",{d:"M8 11h.01",key:"1dfujw"}],["path",{d:"M8 7h.01",key:"1vti4s"}],["rect",{x:"4",y:"2",width:"16",height:"20",rx:"2",key:"1uxh74"}]]),lO=i("hourglass",[["path",{d:"M5 22h14",key:"ehvnwv"}],["path",{d:"M5 2h14",key:"pdyrp9"}],["path",{d:"M17 22v-4.172a2 2 0 0 0-.586-1.414L12 12l-4.414 4.414A2 2 0 0 0 7 17.828V22",key:"1d314k"}],["path",{d:"M7 2v4.172a2 2 0 0 0 .586 1.414L12 12l4.414-4.414A2 2 0 0 0 17 6.172V2",key:"1vvvr6"}]]),lP=i("house-plug",[["path",{d:"M10 12V8.964",key:"1vll13"}],["path",{d:"M14 12V8.964",key:"1x3qvg"}],["path",{d:"M15 12a1 1 0 0 1 1 1v2a2 2 0 0 1-2 2h-4a2 2 0 0 1-2-2v-2a1 1 0 0 1 1-1z",key:"ppykja"}],["path",{d:"M8.5 21H5a2 2 0 0 1-2-2v-9a2 2 0 0 1 .709-1.528l7-5.999a2 2 0 0 1 2.582 0l7 5.999A2 2 0 0 1 21 10v9a2 2 0 0 1-2 2h-5a2 2 0 0 1-2-2v-2",key:"1gvg2z"}]]),lQ=i("house-plus",[["path",{d:"M12.662 21H5a2 2 0 0 1-2-2v-9a2 2 0 0 1 .709-1.528l7-5.999a2 2 0 0 1 2.582 0l7 5.999A2 2 0 0 1 21 10v2.475",key:"uubd2h"}],["path",{d:"M14.959 12.717A1 1 0 0 0 14 12h-4a1 1 0 0 0-1 1v8",key:"p7f341"}],["path",{d:"M15 18h6",key:"3b3c90"}],["path",{d:"M18 15v6",key:"9wciyi"}]]),lR=i("house",[["path",{d:"M15 21v-8a1 1 0 0 0-1-1h-4a1 1 0 0 0-1 1v8",key:"5wwlr5"}],["path",{d:"M3 10a2 2 0 0 1 .709-1.528l7-5.999a2 2 0 0 1 2.582 0l7 5.999A2 2 0 0 1 21 10v9a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2z",key:"1d0kgt"}]]),lS=i("house-wifi",[["path",{d:"M9.5 13.866a4 4 0 0 1 5 .01",key:"1wy54i"}],["path",{d:"M12 17h.01",key:"p32p05"}],["path",{d:"M3 10a2 2 0 0 1 .709-1.528l7-5.999a2 2 0 0 1 2.582 0l7 5.999A2 2 0 0 1 21 10v9a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2z",key:"1d0kgt"}],["path",{d:"M7 10.754a8 8 0 0 1 10 0",key:"exoy2g"}]]),lT=i("ice-cream-bowl",[["path",{d:"M12 17c5 0 8-2.69 8-6H4c0 3.31 3 6 8 6m-4 4h8m-4-3v3M5.14 11a3.5 3.5 0 1 1 6.71 0",key:"1uxfcu"}],["path",{d:"M12.14 11a3.5 3.5 0 1 1 6.71 0",key:"4k3m1s"}],["path",{d:"M15.5 6.5a3.5 3.5 0 1 0-7 0",key:"zmuahr"}]]),lU=i("ice-cream-cone",[["path",{d:"m7 11 4.08 10.35a1 1 0 0 0 1.84 0L17 11",key:"1v6356"}],["path",{d:"M17 7A5 5 0 0 0 7 7",key:"151p3v"}],["path",{d:"M17 7a2 2 0 0 1 0 4H7a2 2 0 0 1 0-4",key:"1sdaij"}]]),lV=i("id-card-lanyard",[["path",{d:"M13.5 8h-3",key:"xvov4w"}],["path",{d:"m15 2-1 2h3a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2h3",key:"16uttc"}],["path",{d:"M16.899 22A5 5 0 0 0 7.1 22",key:"1d0ppr"}],["path",{d:"m9 2 3 6",key:"1o7bd9"}],["circle",{cx:"12",cy:"15",r:"3",key:"g36mzq"}]]),lW=i("id-card",[["path",{d:"M16 10h2",key:"8sgtl7"}],["path",{d:"M16 14h2",key:"epxaof"}],["path",{d:"M6.17 15a3 3 0 0 1 5.66 0",key:"n6f512"}],["circle",{cx:"9",cy:"11",r:"2",key:"yxgjnd"}],["rect",{x:"2",y:"5",width:"20",height:"14",rx:"2",key:"qneu4z"}]]),lX=i("image-down",[["path",{d:"M10.3 21H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2v10l-3.1-3.1a2 2 0 0 0-2.814.014L6 21",key:"9csbqa"}],["path",{d:"m14 19 3 3v-5.5",key:"9ldu5r"}],["path",{d:"m17 22 3-3",key:"1nkfve"}],["circle",{cx:"9",cy:"9",r:"2",key:"af1f0g"}]]),lY=i("image-minus",[["path",{d:"M21 9v10a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h7",key:"m87ecr"}],["line",{x1:"16",x2:"22",y1:"5",y2:"5",key:"ez7e4s"}],["circle",{cx:"9",cy:"9",r:"2",key:"af1f0g"}],["path",{d:"m21 15-3.086-3.086a2 2 0 0 0-2.828 0L6 21",key:"1xmnt7"}]]),lZ=i("image-off",[["line",{x1:"2",x2:"22",y1:"2",y2:"22",key:"a6p6uj"}],["path",{d:"M10.41 10.41a2 2 0 1 1-2.83-2.83",key:"1bzlo9"}],["line",{x1:"13.5",x2:"6",y1:"13.5",y2:"21",key:"1q0aeu"}],["line",{x1:"18",x2:"21",y1:"12",y2:"15",key:"5mozeu"}],["path",{d:"M3.59 3.59A1.99 1.99 0 0 0 3 5v14a2 2 0 0 0 2 2h14c.55 0 1.052-.22 1.41-.59",key:"mmje98"}],["path",{d:"M21 15V5a2 2 0 0 0-2-2H9",key:"43el77"}]]),l$=i("image-play",[["path",{d:"m11 16-5 5",key:"j5f7ct"}],["path",{d:"M11 21H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2v6.5",key:"7s81lt"}],["path",{d:"M15.765 22a.5.5 0 0 1-.765-.424V13.38a.5.5 0 0 1 .765-.424l5.878 3.674a1 1 0 0 1 0 1.696z",key:"1omb6s"}],["circle",{cx:"9",cy:"9",r:"2",key:"af1f0g"}]]),l_=i("image-plus",[["path",{d:"M16 5h6",key:"1vod17"}],["path",{d:"M19 2v6",key:"4bpg5p"}],["path",{d:"M21 11.5V19a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h7.5",key:"1ue2ih"}],["path",{d:"m21 15-3.086-3.086a2 2 0 0 0-2.828 0L6 21",key:"1xmnt7"}],["circle",{cx:"9",cy:"9",r:"2",key:"af1f0g"}]]),l0=i("image-up",[["path",{d:"M10.3 21H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2v10l-3.1-3.1a2 2 0 0 0-2.814.014L6 21",key:"9csbqa"}],["path",{d:"m14 19.5 3-3 3 3",key:"9vmjn0"}],["path",{d:"M17 22v-5.5",key:"1aa6fl"}],["circle",{cx:"9",cy:"9",r:"2",key:"af1f0g"}]]),l1=i("image-upscale",[["path",{d:"M16 3h5v5",key:"1806ms"}],["path",{d:"M17 21h2a2 2 0 0 0 2-2",key:"130fy9"}],["path",{d:"M21 12v3",key:"1wzk3p"}],["path",{d:"m21 3-5 5",key:"1g5oa7"}],["path",{d:"M3 7V5a2 2 0 0 1 2-2",key:"kk3yz1"}],["path",{d:"m5 21 4.144-4.144a1.21 1.21 0 0 1 1.712 0L13 19",key:"fyekpt"}],["path",{d:"M9 3h3",key:"d52fa"}],["rect",{x:"3",y:"11",width:"10",height:"10",rx:"1",key:"1wpmix"}]]),l2=i("image",[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",ry:"2",key:"1m3agn"}],["circle",{cx:"9",cy:"9",r:"2",key:"af1f0g"}],["path",{d:"m21 15-3.086-3.086a2 2 0 0 0-2.828 0L6 21",key:"1xmnt7"}]]),l3=i("images",[["path",{d:"M18 22H4a2 2 0 0 1-2-2V6",key:"pblm9e"}],["path",{d:"m22 13-1.296-1.296a2.41 2.41 0 0 0-3.408 0L11 18",key:"nf6bnh"}],["circle",{cx:"12",cy:"8",r:"2",key:"1822b1"}],["rect",{width:"16",height:"16",x:"6",y:"2",rx:"2",key:"12espp"}]]),l4=i("import",[["path",{d:"M12 3v12",key:"1x0j5s"}],["path",{d:"m8 11 4 4 4-4",key:"1dohi6"}],["path",{d:"M8 5H4a2 2 0 0 0-2 2v10a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2V7a2 2 0 0 0-2-2h-4",key:"1ywtjm"}]]),l5=i("inbox",[["polyline",{points:"22 12 16 12 14 15 10 15 8 12 2 12",key:"o97t9d"}],["path",{d:"M5.45 5.11 2 12v6a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2v-6l-3.45-6.89A2 2 0 0 0 16.76 4H7.24a2 2 0 0 0-1.79 1.11z",key:"oot6mr"}]]),l6=i("indent-decrease",[["path",{d:"M21 12H11",key:"wd7e0v"}],["path",{d:"M21 18H11",key:"4wu86t"}],["path",{d:"M21 6H11",key:"6dy1d6"}],["path",{d:"m7 8-4 4 4 4",key:"o5hrat"}]]),l7=i("indent-increase",[["path",{d:"M21 12H11",key:"wd7e0v"}],["path",{d:"M21 18H11",key:"4wu86t"}],["path",{d:"M21 6H11",key:"6dy1d6"}],["path",{d:"m3 8 4 4-4 4",key:"1a3j6y"}]]),l8=i("indian-rupee",[["path",{d:"M6 3h12",key:"ggurg9"}],["path",{d:"M6 8h12",key:"6g4wlu"}],["path",{d:"m6 13 8.5 8",key:"u1kupk"}],["path",{d:"M6 13h3",key:"wdp6ag"}],["path",{d:"M9 13c6.667 0 6.667-10 0-10",key:"1nkvk2"}]]),l9=i("infinity",[["path",{d:"M6 16c5 0 7-8 12-8a4 4 0 0 1 0 8c-5 0-7-8-12-8a4 4 0 1 0 0 8",key:"18ogeb"}]]),ma=i("info",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"M12 16v-4",key:"1dtifu"}],["path",{d:"M12 8h.01",key:"e9boi3"}]]),mb=i("instagram",[["rect",{width:"20",height:"20",x:"2",y:"2",rx:"5",ry:"5",key:"2e1cvw"}],["path",{d:"M16 11.37A4 4 0 1 1 12.63 8 4 4 0 0 1 16 11.37z",key:"9exkf1"}],["line",{x1:"17.5",x2:"17.51",y1:"6.5",y2:"6.5",key:"r4j83e"}]]),mc=i("inspection-panel",[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",key:"afitv7"}],["path",{d:"M7 7h.01",key:"7u93v4"}],["path",{d:"M17 7h.01",key:"14a9sn"}],["path",{d:"M7 17h.01",key:"19xn7k"}],["path",{d:"M17 17h.01",key:"1sd3ek"}]]),md=i("italic",[["line",{x1:"19",x2:"10",y1:"4",y2:"4",key:"15jd3p"}],["line",{x1:"14",x2:"5",y1:"20",y2:"20",key:"bu0au3"}],["line",{x1:"15",x2:"9",y1:"4",y2:"20",key:"uljnxc"}]]),me=i("iteration-ccw",[["path",{d:"m16 14 4 4-4 4",key:"hkso8o"}],["path",{d:"M20 10a8 8 0 1 0-8 8h8",key:"1bik7b"}]]),mf=i("iteration-cw",[["path",{d:"M4 10a8 8 0 1 1 8 8H4",key:"svv66n"}],["path",{d:"m8 22-4-4 4-4",key:"6g7gki"}]]),mg=i("japanese-yen",[["path",{d:"M12 9.5V21m0-11.5L6 3m6 6.5L18 3",key:"2ej80x"}],["path",{d:"M6 15h12",key:"1hwgt5"}],["path",{d:"M6 11h12",key:"wf4gp6"}]]),mh=i("joystick",[["path",{d:"M21 17a2 2 0 0 0-2-2H5a2 2 0 0 0-2 2v2a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-2Z",key:"jg2n2t"}],["path",{d:"M6 15v-2",key:"gd6mvg"}],["path",{d:"M12 15V9",key:"8c7uyn"}],["circle",{cx:"12",cy:"6",r:"3",key:"1gm2ql"}]]),mi=i("kanban",[["path",{d:"M6 5v11",key:"mdvv1e"}],["path",{d:"M12 5v6",key:"14ar3b"}],["path",{d:"M18 5v14",key:"7ji314"}]]),mj=i("key-round",[["path",{d:"M2.586 17.414A2 2 0 0 0 2 18.828V21a1 1 0 0 0 1 1h3a1 1 0 0 0 1-1v-1a1 1 0 0 1 1-1h1a1 1 0 0 0 1-1v-1a1 1 0 0 1 1-1h.172a2 2 0 0 0 1.414-.586l.814-.814a6.5 6.5 0 1 0-4-4z",key:"1s6t7t"}],["circle",{cx:"16.5",cy:"7.5",r:".5",fill:"currentColor",key:"w0ekpg"}]]),mk=i("key-square",[["path",{d:"M12.4 2.7a2.5 2.5 0 0 1 3.4 0l5.5 5.5a2.5 2.5 0 0 1 0 3.4l-3.7 3.7a2.5 2.5 0 0 1-3.4 0L8.7 9.8a2.5 2.5 0 0 1 0-3.4z",key:"165ttr"}],["path",{d:"m14 7 3 3",key:"1r5n42"}],["path",{d:"m9.4 10.6-6.814 6.814A2 2 0 0 0 2 18.828V21a1 1 0 0 0 1 1h3a1 1 0 0 0 1-1v-1a1 1 0 0 1 1-1h1a1 1 0 0 0 1-1v-1a1 1 0 0 1 1-1h.172a2 2 0 0 0 1.414-.586l.814-.814",key:"1ubxi2"}]]),ml=i("key",[["path",{d:"m15.5 7.5 2.3 2.3a1 1 0 0 0 1.4 0l2.1-2.1a1 1 0 0 0 0-1.4L19 4",key:"g0fldk"}],["path",{d:"m21 2-9.6 9.6",key:"1j0ho8"}],["circle",{cx:"7.5",cy:"15.5",r:"5.5",key:"yqb3hr"}]]),mm=i("keyboard-off",[["path",{d:"M 20 4 A2 2 0 0 1 22 6",key:"1g1fkt"}],["path",{d:"M 22 6 L 22 16.41",key:"1qjg3w"}],["path",{d:"M 7 16 L 16 16",key:"n0yqwb"}],["path",{d:"M 9.69 4 L 20 4",key:"kbpcgx"}],["path",{d:"M14 8h.01",key:"1primd"}],["path",{d:"M18 8h.01",key:"emo2bl"}],["path",{d:"m2 2 20 20",key:"1ooewy"}],["path",{d:"M20 20H4a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2",key:"s23sx2"}],["path",{d:"M6 8h.01",key:"x9i8wu"}],["path",{d:"M8 12h.01",key:"czm47f"}]]),mn=i("keyboard-music",[["rect",{width:"20",height:"16",x:"2",y:"4",rx:"2",key:"18n3k1"}],["path",{d:"M6 8h4",key:"utf9t1"}],["path",{d:"M14 8h.01",key:"1primd"}],["path",{d:"M18 8h.01",key:"emo2bl"}],["path",{d:"M2 12h20",key:"9i4pu4"}],["path",{d:"M6 12v4",key:"dy92yo"}],["path",{d:"M10 12v4",key:"1fxnav"}],["path",{d:"M14 12v4",key:"1hft58"}],["path",{d:"M18 12v4",key:"tjjnbz"}]]),mo=i("lamp-ceiling",[["path",{d:"M12 2v5",key:"nd4vlx"}],["path",{d:"M14.829 15.998a3 3 0 1 1-5.658 0",key:"1pybiy"}],["path",{d:"M20.92 14.606A1 1 0 0 1 20 16H4a1 1 0 0 1-.92-1.394l3-7A1 1 0 0 1 7 7h10a1 1 0 0 1 .92.606z",key:"ma1wor"}]]),mp=i("keyboard",[["path",{d:"M10 8h.01",key:"1r9ogq"}],["path",{d:"M12 12h.01",key:"1mp3jc"}],["path",{d:"M14 8h.01",key:"1primd"}],["path",{d:"M16 12h.01",key:"1l6xoz"}],["path",{d:"M18 8h.01",key:"emo2bl"}],["path",{d:"M6 8h.01",key:"x9i8wu"}],["path",{d:"M7 16h10",key:"wp8him"}],["path",{d:"M8 12h.01",key:"czm47f"}],["rect",{width:"20",height:"16",x:"2",y:"4",rx:"2",key:"18n3k1"}]]),mq=i("lamp-desk",[["path",{d:"M10.293 2.293a1 1 0 0 1 1.414 0l2.5 2.5 5.994 1.227a1 1 0 0 1 .506 1.687l-7 7a1 1 0 0 1-1.687-.506l-1.227-5.994-2.5-2.5a1 1 0 0 1 0-1.414z",key:"sb8slu"}],["path",{d:"m14.207 4.793-3.414 3.414",key:"m2x3oj"}],["path",{d:"M3 20a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v1a1 1 0 0 1-1 1H4a1 1 0 0 1-1-1z",key:"8b3myj"}],["path",{d:"m9.086 6.5-4.793 4.793a1 1 0 0 0-.18 1.17L7 18",key:"43s6cu"}]]),mr=i("lamp-floor",[["path",{d:"M12 10v12",key:"6ubwww"}],["path",{d:"M17.929 7.629A1 1 0 0 1 17 9H7a1 1 0 0 1-.928-1.371l2-5A1 1 0 0 1 9 2h6a1 1 0 0 1 .928.629z",key:"1o95gh"}],["path",{d:"M9 22h6",key:"1rlq3v"}]]),ms=i("lamp-wall-down",[["path",{d:"M19.929 18.629A1 1 0 0 1 19 20H9a1 1 0 0 1-.928-1.371l2-5A1 1 0 0 1 11 13h6a1 1 0 0 1 .928.629z",key:"u4w2d7"}],["path",{d:"M6 3a2 2 0 0 1 2 2v2a2 2 0 0 1-2 2H5a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1z",key:"15356w"}],["path",{d:"M8 6h4a2 2 0 0 1 2 2v5",key:"1m6m7x"}]]),mt=i("lamp-wall-up",[["path",{d:"M19.929 9.629A1 1 0 0 1 19 11H9a1 1 0 0 1-.928-1.371l2-5A1 1 0 0 1 11 4h6a1 1 0 0 1 .928.629z",key:"1uvrbf"}],["path",{d:"M6 15a2 2 0 0 1 2 2v2a2 2 0 0 1-2 2H5a1 1 0 0 1-1-1v-4a1 1 0 0 1 1-1z",key:"154r2a"}],["path",{d:"M8 18h4a2 2 0 0 0 2-2v-5",key:"z9mbu0"}]]),mu=i("lamp",[["path",{d:"M12 12v6",key:"3ahymv"}],["path",{d:"M4.077 10.615A1 1 0 0 0 5 12h14a1 1 0 0 0 .923-1.385l-3.077-7.384A2 2 0 0 0 15 2H9a2 2 0 0 0-1.846 1.23Z",key:"1l7kg2"}],["path",{d:"M8 20a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v1a1 1 0 0 1-1 1H9a1 1 0 0 1-1-1z",key:"1mmzpi"}]]),mv=i("land-plot",[["path",{d:"m12 8 6-3-6-3v10",key:"mvpnpy"}],["path",{d:"m8 11.99-5.5 3.14a1 1 0 0 0 0 1.74l8.5 4.86a2 2 0 0 0 2 0l8.5-4.86a1 1 0 0 0 0-1.74L16 12",key:"ek95tt"}],["path",{d:"m6.49 12.85 11.02 6.3",key:"1kt42w"}],["path",{d:"M17.51 12.85 6.5 19.15",key:"v55bdg"}]]),mw=i("landmark",[["path",{d:"M10 18v-7",key:"wt116b"}],["path",{d:"M11.12 2.198a2 2 0 0 1 1.76.006l7.866 3.847c.476.233.31.949-.22.949H3.474c-.53 0-.695-.716-.22-.949z",key:"1m329m"}],["path",{d:"M14 18v-7",key:"vav6t3"}],["path",{d:"M18 18v-7",key:"aexdmj"}],["path",{d:"M3 22h18",key:"8prr45"}],["path",{d:"M6 18v-7",key:"1ivflk"}]]),mx=i("languages",[["path",{d:"m5 8 6 6",key:"1wu5hv"}],["path",{d:"m4 14 6-6 2-3",key:"1k1g8d"}],["path",{d:"M2 5h12",key:"or177f"}],["path",{d:"M7 2h1",key:"1t2jsx"}],["path",{d:"m22 22-5-10-5 10",key:"don7ne"}],["path",{d:"M14 18h6",key:"1m8k6r"}]]),my=i("laptop-minimal-check",[["path",{d:"M2 20h20",key:"owomy5"}],["path",{d:"m9 10 2 2 4-4",key:"1gnqz4"}],["rect",{x:"3",y:"4",width:"18",height:"12",rx:"2",key:"8ur36m"}]]),mz=i("laptop-minimal",[["rect",{width:"18",height:"12",x:"3",y:"4",rx:"2",ry:"2",key:"1qhy41"}],["line",{x1:"2",x2:"22",y1:"20",y2:"20",key:"ni3hll"}]]),mA=i("laptop",[["path",{d:"M18 5a2 2 0 0 1 2 2v8.526a2 2 0 0 0 .212.897l1.068 2.127a1 1 0 0 1-.9 1.45H3.62a1 1 0 0 1-.9-1.45l1.068-2.127A2 2 0 0 0 4 15.526V7a2 2 0 0 1 2-2z",key:"1pdavp"}],["path",{d:"M20.054 15.987H3.946",key:"14rxg9"}]]),mB=i("lasso-select",[["path",{d:"M7 22a5 5 0 0 1-2-4",key:"umushi"}],["path",{d:"M7 16.93c.96.43 1.96.74 2.99.91",key:"ybbtv3"}],["path",{d:"M3.34 14A6.8 6.8 0 0 1 2 10c0-4.42 4.48-8 10-8s10 3.58 10 8a7.19 7.19 0 0 1-.33 2",key:"gt5e1w"}],["path",{d:"M5 18a2 2 0 1 0 0-4 2 2 0 0 0 0 4z",key:"bq3ynw"}],["path",{d:"M14.33 22h-.09a.35.35 0 0 1-.24-.32v-10a.34.34 0 0 1 .33-.34c.08 0 .15.03.21.08l7.34 6a.33.33 0 0 1-.21.59h-4.49l-2.57 3.85a.35.35 0 0 1-.28.14z",key:"72q637"}]]),mC=i("lasso",[["path",{d:"M7 22a5 5 0 0 1-2-4",key:"umushi"}],["path",{d:"M3.3 14A6.8 6.8 0 0 1 2 10c0-4.4 4.5-8 10-8s10 3.6 10 8-4.5 8-10 8a12 12 0 0 1-5-1",key:"146dds"}],["path",{d:"M5 18a2 2 0 1 0 0-4 2 2 0 0 0 0 4z",key:"bq3ynw"}]]),mD=i("layers-2",[["path",{d:"M13 13.74a2 2 0 0 1-2 0L2.5 8.87a1 1 0 0 1 0-1.74L11 2.26a2 2 0 0 1 2 0l8.5 4.87a1 1 0 0 1 0 1.74z",key:"15q6uc"}],["path",{d:"m20 14.285 1.5.845a1 1 0 0 1 0 1.74L13 21.74a2 2 0 0 1-2 0l-8.5-4.87a1 1 0 0 1 0-1.74l1.5-.845",key:"byia6g"}]]),mE=i("laugh",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"M18 13a6 6 0 0 1-6 5 6 6 0 0 1-6-5h12Z",key:"b2q4dd"}],["line",{x1:"9",x2:"9.01",y1:"9",y2:"9",key:"yxxnd0"}],["line",{x1:"15",x2:"15.01",y1:"9",y2:"9",key:"1p4y9e"}]]),mF=i("layers",[["path",{d:"M12.83 2.18a2 2 0 0 0-1.66 0L2.6 6.08a1 1 0 0 0 0 1.83l8.58 3.91a2 2 0 0 0 1.66 0l8.58-3.9a1 1 0 0 0 0-1.83z",key:"zw3jo"}],["path",{d:"M2 12a1 1 0 0 0 .58.91l8.6 3.91a2 2 0 0 0 1.65 0l8.58-3.9A1 1 0 0 0 22 12",key:"1wduqc"}],["path",{d:"M2 17a1 1 0 0 0 .58.91l8.6 3.91a2 2 0 0 0 1.65 0l8.58-3.9A1 1 0 0 0 22 17",key:"kqbvx6"}]]),mG=i("layout-dashboard",[["rect",{width:"7",height:"9",x:"3",y:"3",rx:"1",key:"10lvy0"}],["rect",{width:"7",height:"5",x:"14",y:"3",rx:"1",key:"16une8"}],["rect",{width:"7",height:"9",x:"14",y:"12",rx:"1",key:"1hutg5"}],["rect",{width:"7",height:"5",x:"3",y:"16",rx:"1",key:"ldoo1y"}]]),mH=i("layout-list",[["rect",{width:"7",height:"7",x:"3",y:"3",rx:"1",key:"1g98yp"}],["rect",{width:"7",height:"7",x:"3",y:"14",rx:"1",key:"1bb6yr"}],["path",{d:"M14 4h7",key:"3xa0d5"}],["path",{d:"M14 9h7",key:"1icrd9"}],["path",{d:"M14 15h7",key:"1mj8o2"}],["path",{d:"M14 20h7",key:"11slyb"}]]),mI=i("layout-grid",[["rect",{width:"7",height:"7",x:"3",y:"3",rx:"1",key:"1g98yp"}],["rect",{width:"7",height:"7",x:"14",y:"3",rx:"1",key:"6d4xhi"}],["rect",{width:"7",height:"7",x:"14",y:"14",rx:"1",key:"nxv5o0"}],["rect",{width:"7",height:"7",x:"3",y:"14",rx:"1",key:"1bb6yr"}]]),mJ=i("layout-panel-left",[["rect",{width:"7",height:"18",x:"3",y:"3",rx:"1",key:"2obqm"}],["rect",{width:"7",height:"7",x:"14",y:"3",rx:"1",key:"6d4xhi"}],["rect",{width:"7",height:"7",x:"14",y:"14",rx:"1",key:"nxv5o0"}]]),mK=i("layout-panel-top",[["rect",{width:"18",height:"7",x:"3",y:"3",rx:"1",key:"f1a2em"}],["rect",{width:"7",height:"7",x:"3",y:"14",rx:"1",key:"1bb6yr"}],["rect",{width:"7",height:"7",x:"14",y:"14",rx:"1",key:"nxv5o0"}]]),mL=i("layout-template",[["rect",{width:"18",height:"7",x:"3",y:"3",rx:"1",key:"f1a2em"}],["rect",{width:"9",height:"7",x:"3",y:"14",rx:"1",key:"jqznyg"}],["rect",{width:"5",height:"7",x:"16",y:"14",rx:"1",key:"q5h2i8"}]]),mM=i("leaf",[["path",{d:"M11 20A7 7 0 0 1 9.8 6.1C15.5 5 17 4.48 19 2c1 2 2 4.18 2 8 0 5.5-4.78 10-10 10Z",key:"nnexq3"}],["path",{d:"M2 21c0-3 1.85-5.36 5.08-6C9.5 14.52 12 13 13 12",key:"mt58a7"}]]),mN=i("leafy-green",[["path",{d:"M2 22c1.25-.987 2.27-1.975 3.9-2.2a5.56 5.56 0 0 1 3.8 1.5 4 4 0 0 0 6.187-2.353 3.5 3.5 0 0 0 3.69-5.116A3.5 3.5 0 0 0 20.95 8 3.5 3.5 0 1 0 16 3.05a3.5 3.5 0 0 0-5.831 1.373 3.5 3.5 0 0 0-5.116 3.69 4 4 0 0 0-2.348 6.155C3.499 15.42 4.409 16.712 4.2 18.1 3.926 19.743 3.014 20.732 2 22",key:"1134nt"}],["path",{d:"M2 22 17 7",key:"1q7jp2"}]]),mO=i("lectern",[["path",{d:"M16 12h3a2 2 0 0 0 1.902-1.38l1.056-3.333A1 1 0 0 0 21 6H3a1 1 0 0 0-.958 1.287l1.056 3.334A2 2 0 0 0 5 12h3",key:"13jjxg"}],["path",{d:"M18 6V3a1 1 0 0 0-1-1h-3",key:"1550fe"}],["rect",{width:"8",height:"12",x:"8",y:"10",rx:"1",key:"qmu8b6"}]]),mP=i("letter-text",[["path",{d:"M15 12h6",key:"upa0zy"}],["path",{d:"M15 6h6",key:"1jlkvy"}],["path",{d:"m3 13 3.553-7.724a.5.5 0 0 1 .894 0L11 13",key:"blevx4"}],["path",{d:"M3 18h18",key:"1h113x"}],["path",{d:"M3.92 11h6.16",key:"1bqo8m"}]]),mQ=i("library-big",[["rect",{width:"8",height:"18",x:"3",y:"3",rx:"1",key:"oynpb5"}],["path",{d:"M7 3v18",key:"bbkbws"}],["path",{d:"M20.4 18.9c.2.5-.1 1.1-.6 1.3l-1.9.7c-.5.2-1.1-.1-1.3-.6L11.1 5.1c-.2-.5.1-1.1.6-1.3l1.9-.7c.5-.2 1.1.1 1.3.6Z",key:"1qboyk"}]]),mR=i("library",[["path",{d:"m16 6 4 14",key:"ji33uf"}],["path",{d:"M12 6v14",key:"1n7gus"}],["path",{d:"M8 8v12",key:"1gg7y9"}],["path",{d:"M4 4v16",key:"6qkkli"}]]),mS=i("life-buoy",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"m4.93 4.93 4.24 4.24",key:"1ymg45"}],["path",{d:"m14.83 9.17 4.24-4.24",key:"1cb5xl"}],["path",{d:"m14.83 14.83 4.24 4.24",key:"q42g0n"}],["path",{d:"m9.17 14.83-4.24 4.24",key:"bqpfvv"}],["circle",{cx:"12",cy:"12",r:"4",key:"4exip2"}]]),mT=i("ligature",[["path",{d:"M14 12h2v8",key:"c1fccl"}],["path",{d:"M14 20h4",key:"lzx1xo"}],["path",{d:"M6 12h4",key:"a4o3ry"}],["path",{d:"M6 20h4",key:"1i6q5t"}],["path",{d:"M8 20V8a4 4 0 0 1 7.464-2",key:"wk9t6r"}]]),mU=i("lightbulb",[["path",{d:"M15 14c.2-1 .7-1.7 1.5-2.5 1-.9 1.5-2.2 1.5-3.5A6 6 0 0 0 6 8c0 1 .2 2.2 1.5 3.5.7.7 1.3 1.5 1.5 2.5",key:"1gvzjb"}],["path",{d:"M9 18h6",key:"x1upvd"}],["path",{d:"M10 22h4",key:"ceow96"}]]),mV=i("lightbulb-off",[["path",{d:"M16.8 11.2c.8-.9 1.2-2 1.2-3.2a6 6 0 0 0-9.3-5",key:"1fkcox"}],["path",{d:"m2 2 20 20",key:"1ooewy"}],["path",{d:"M6.3 6.3a4.67 4.67 0 0 0 1.2 5.2c.7.7 1.3 1.5 1.5 2.5",key:"10m8kw"}],["path",{d:"M9 18h6",key:"x1upvd"}],["path",{d:"M10 22h4",key:"ceow96"}]]),mW=i("line-squiggle",[["path",{d:"M7 3.5c5-2 7 2.5 3 4C1.5 10 2 15 5 16c5 2 9-10 14-7s.5 13.5-4 12c-5-2.5.5-11 6-2",key:"1lrphd"}]]),mX=i("link-2-off",[["path",{d:"M9 17H7A5 5 0 0 1 7 7",key:"10o201"}],["path",{d:"M15 7h2a5 5 0 0 1 4 8",key:"1d3206"}],["line",{x1:"8",x2:"12",y1:"12",y2:"12",key:"rvw6j4"}],["line",{x1:"2",x2:"22",y1:"2",y2:"22",key:"a6p6uj"}]]),mY=i("link-2",[["path",{d:"M9 17H7A5 5 0 0 1 7 7h2",key:"8i5ue5"}],["path",{d:"M15 7h2a5 5 0 1 1 0 10h-2",key:"1b9ql8"}],["line",{x1:"8",x2:"16",y1:"12",y2:"12",key:"1jonct"}]]),mZ=i("link",[["path",{d:"M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71",key:"1cjeqo"}],["path",{d:"M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71",key:"19qd67"}]]),m$=i("list-check",[["path",{d:"M11 18H3",key:"n3j2dh"}],["path",{d:"m15 18 2 2 4-4",key:"1szwhi"}],["path",{d:"M16 12H3",key:"1a2rj7"}],["path",{d:"M16 6H3",key:"1wxfjs"}]]),m_=i("linkedin",[["path",{d:"M16 8a6 6 0 0 1 6 6v7h-4v-7a2 2 0 0 0-2-2 2 2 0 0 0-2 2v7h-4v-7a6 6 0 0 1 6-6z",key:"c2jq9f"}],["rect",{width:"4",height:"12",x:"2",y:"9",key:"mk3on5"}],["circle",{cx:"4",cy:"4",r:"2",key:"bt5ra8"}]]),m0=i("list-checks",[["path",{d:"m3 17 2 2 4-4",key:"1jhpwq"}],["path",{d:"m3 7 2 2 4-4",key:"1obspn"}],["path",{d:"M13 6h8",key:"15sg57"}],["path",{d:"M13 12h8",key:"h98zly"}],["path",{d:"M13 18h8",key:"oe0vm4"}]]),m1=i("list-collapse",[["path",{d:"M10 12h11",key:"6m4ad9"}],["path",{d:"M10 18h11",key:"11hvi2"}],["path",{d:"M10 6h11",key:"c7qv1k"}],["path",{d:"m3 10 3-3-3-3",key:"i7pm08"}],["path",{d:"m3 20 3-3-3-3",key:"20gx1n"}]]),m2=i("list-end",[["path",{d:"M16 12H3",key:"1a2rj7"}],["path",{d:"M16 6H3",key:"1wxfjs"}],["path",{d:"M10 18H3",key:"13769t"}],["path",{d:"M21 6v10a2 2 0 0 1-2 2h-5",key:"ilrcs8"}],["path",{d:"m16 16-2 2 2 2",key:"kkc6pm"}]]),m3=i("list-filter-plus",[["path",{d:"M10 18h4",key:"1ulq68"}],["path",{d:"M11 6H3",key:"1u26ik"}],["path",{d:"M15 6h6",key:"1jlkvy"}],["path",{d:"M18 9V3",key:"xwwp7m"}],["path",{d:"M7 12h8",key:"7a1bxv"}]]),m4=i("list-filter",[["path",{d:"M3 6h18",key:"d0wm0j"}],["path",{d:"M7 12h10",key:"b7w52i"}],["path",{d:"M10 18h4",key:"1ulq68"}]]),m5=i("list-minus",[["path",{d:"M11 12H3",key:"51ecnj"}],["path",{d:"M16 6H3",key:"1wxfjs"}],["path",{d:"M16 18H3",key:"12xzn7"}],["path",{d:"M21 12h-6",key:"bt1uis"}]]),m6=i("list-music",[["path",{d:"M21 15V6",key:"h1cx4g"}],["path",{d:"M18.5 18a2.5 2.5 0 1 0 0-5 2.5 2.5 0 0 0 0 5Z",key:"8saifv"}],["path",{d:"M12 12H3",key:"18klou"}],["path",{d:"M16 6H3",key:"1wxfjs"}],["path",{d:"M12 18H3",key:"11ftsu"}]]),m7=i("list-ordered",[["path",{d:"M10 12h11",key:"6m4ad9"}],["path",{d:"M10 18h11",key:"11hvi2"}],["path",{d:"M10 6h11",key:"c7qv1k"}],["path",{d:"M4 10h2",key:"16xx2s"}],["path",{d:"M4 6h1v4",key:"cnovpq"}],["path",{d:"M6 18H4c0-1 2-2 2-3s-1-1.5-2-1",key:"m9a95d"}]]),m8=i("list-plus",[["path",{d:"M11 12H3",key:"51ecnj"}],["path",{d:"M16 6H3",key:"1wxfjs"}],["path",{d:"M16 18H3",key:"12xzn7"}],["path",{d:"M18 9v6",key:"1twb98"}],["path",{d:"M21 12h-6",key:"bt1uis"}]]),m9=i("list-restart",[["path",{d:"M21 6H3",key:"1jwq7v"}],["path",{d:"M7 12H3",key:"13ou7f"}],["path",{d:"M7 18H3",key:"1sijw9"}],["path",{d:"M12 18a5 5 0 0 0 9-3 4.5 4.5 0 0 0-4.5-4.5c-1.33 0-2.54.54-3.41 1.41L11 14",key:"qth677"}],["path",{d:"M11 10v4h4",key:"172dkj"}]]),na=i("list-start",[["path",{d:"M16 12H3",key:"1a2rj7"}],["path",{d:"M16 18H3",key:"12xzn7"}],["path",{d:"M10 6H3",key:"lf8lx7"}],["path",{d:"M21 18V8a2 2 0 0 0-2-2h-5",key:"1hghli"}],["path",{d:"m16 8-2-2 2-2",key:"160uvd"}]]),nb=i("list-todo",[["rect",{x:"3",y:"5",width:"6",height:"6",rx:"1",key:"1defrl"}],["path",{d:"m3 17 2 2 4-4",key:"1jhpwq"}],["path",{d:"M13 6h8",key:"15sg57"}],["path",{d:"M13 12h8",key:"h98zly"}],["path",{d:"M13 18h8",key:"oe0vm4"}]]),nc=i("list-tree",[["path",{d:"M21 12h-8",key:"1bmf0i"}],["path",{d:"M21 6H8",key:"1pqkrb"}],["path",{d:"M21 18h-8",key:"1tm79t"}],["path",{d:"M3 6v4c0 1.1.9 2 2 2h3",key:"1ywdgy"}],["path",{d:"M3 10v6c0 1.1.9 2 2 2h3",key:"2wc746"}]]),nd=i("list-video",[["path",{d:"M12 12H3",key:"18klou"}],["path",{d:"M16 6H3",key:"1wxfjs"}],["path",{d:"M12 18H3",key:"11ftsu"}],["path",{d:"m16 12 5 3-5 3v-6Z",key:"zpskkp"}]]),ne=i("list-x",[["path",{d:"M11 12H3",key:"51ecnj"}],["path",{d:"M16 6H3",key:"1wxfjs"}],["path",{d:"M16 18H3",key:"12xzn7"}],["path",{d:"m19 10-4 4",key:"1tz659"}],["path",{d:"m15 10 4 4",key:"1n7nei"}]]),nf=i("list",[["path",{d:"M3 12h.01",key:"nlz23k"}],["path",{d:"M3 18h.01",key:"1tta3j"}],["path",{d:"M3 6h.01",key:"1rqtza"}],["path",{d:"M8 12h13",key:"1za7za"}],["path",{d:"M8 18h13",key:"1lx6n3"}],["path",{d:"M8 6h13",key:"ik3vkj"}]]),ng=i("loader-circle",[["path",{d:"M21 12a9 9 0 1 1-6.219-8.56",key:"13zald"}]]),nh=i("loader-pinwheel",[["path",{d:"M22 12a1 1 0 0 1-10 0 1 1 0 0 0-10 0",key:"1lzz15"}],["path",{d:"M7 20.7a1 1 0 1 1 5-8.7 1 1 0 1 0 5-8.6",key:"1gnrpi"}],["path",{d:"M7 3.3a1 1 0 1 1 5 8.6 1 1 0 1 0 5 8.6",key:"u9yy5q"}],["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}]]),ni=i("loader",[["path",{d:"M12 2v4",key:"3427ic"}],["path",{d:"m16.2 7.8 2.9-2.9",key:"r700ao"}],["path",{d:"M18 12h4",key:"wj9ykh"}],["path",{d:"m16.2 16.2 2.9 2.9",key:"1bxg5t"}],["path",{d:"M12 18v4",key:"jadmvz"}],["path",{d:"m4.9 19.1 2.9-2.9",key:"bwix9q"}],["path",{d:"M2 12h4",key:"j09sii"}],["path",{d:"m4.9 4.9 2.9 2.9",key:"giyufr"}]]),nj=i("locate-off",[["path",{d:"M12 19v3",key:"npa21l"}],["path",{d:"M12 2v3",key:"qbqxhf"}],["path",{d:"M18.89 13.24a7 7 0 0 0-8.13-8.13",key:"1v9jrh"}],["path",{d:"M19 12h3",key:"osuazr"}],["path",{d:"M2 12h3",key:"1wrr53"}],["path",{d:"m2 2 20 20",key:"1ooewy"}],["path",{d:"M7.05 7.05a7 7 0 0 0 9.9 9.9",key:"rc5l2e"}]]),nk=i("locate-fixed",[["line",{x1:"2",x2:"5",y1:"12",y2:"12",key:"bvdh0s"}],["line",{x1:"19",x2:"22",y1:"12",y2:"12",key:"1tbv5k"}],["line",{x1:"12",x2:"12",y1:"2",y2:"5",key:"11lu5j"}],["line",{x1:"12",x2:"12",y1:"19",y2:"22",key:"x3vr5v"}],["circle",{cx:"12",cy:"12",r:"7",key:"fim9np"}],["circle",{cx:"12",cy:"12",r:"3",key:"1v7zrd"}]]),nl=i("locate",[["line",{x1:"2",x2:"5",y1:"12",y2:"12",key:"bvdh0s"}],["line",{x1:"19",x2:"22",y1:"12",y2:"12",key:"1tbv5k"}],["line",{x1:"12",x2:"12",y1:"2",y2:"5",key:"11lu5j"}],["line",{x1:"12",x2:"12",y1:"19",y2:"22",key:"x3vr5v"}],["circle",{cx:"12",cy:"12",r:"7",key:"fim9np"}]]),nm=i("location-edit",[["path",{d:"M17.97 9.304A8 8 0 0 0 2 10c0 4.69 4.887 9.562 7.022 11.468",key:"1fahp3"}],["path",{d:"M21.378 16.626a1 1 0 0 0-3.004-3.004l-4.01 4.012a2 2 0 0 0-.506.854l-.837 2.87a.5.5 0 0 0 .62.62l2.87-.837a2 2 0 0 0 .854-.506z",key:"1817ys"}],["circle",{cx:"10",cy:"10",r:"3",key:"1ns7v1"}]]),nn=i("lock-keyhole-open",[["circle",{cx:"12",cy:"16",r:"1",key:"1au0dj"}],["rect",{width:"18",height:"12",x:"3",y:"10",rx:"2",key:"l0tzu3"}],["path",{d:"M7 10V7a5 5 0 0 1 9.33-2.5",key:"car5b7"}]]),no=i("lock-keyhole",[["circle",{cx:"12",cy:"16",r:"1",key:"1au0dj"}],["rect",{x:"3",y:"10",width:"18",height:"12",rx:"2",key:"6s8ecr"}],["path",{d:"M7 10V7a5 5 0 0 1 10 0v3",key:"1pqi11"}]]),np=i("lock-open",[["rect",{width:"18",height:"11",x:"3",y:"11",rx:"2",ry:"2",key:"1w4ew1"}],["path",{d:"M7 11V7a5 5 0 0 1 9.9-1",key:"1mm8w8"}]]),nq=i("log-in",[["path",{d:"m10 17 5-5-5-5",key:"1bsop3"}],["path",{d:"M15 12H3",key:"6jk70r"}],["path",{d:"M15 3h4a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2h-4",key:"u53s6r"}]]),nr=i("lock",[["rect",{width:"18",height:"11",x:"3",y:"11",rx:"2",ry:"2",key:"1w4ew1"}],["path",{d:"M7 11V7a5 5 0 0 1 10 0v4",key:"fwvmzm"}]]),ns=i("log-out",[["path",{d:"m16 17 5-5-5-5",key:"1bji2h"}],["path",{d:"M21 12H9",key:"dn1m92"}],["path",{d:"M9 21H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h4",key:"1uf3rs"}]]),nt=i("logs",[["path",{d:"M13 12h8",key:"h98zly"}],["path",{d:"M13 18h8",key:"oe0vm4"}],["path",{d:"M13 6h8",key:"15sg57"}],["path",{d:"M3 12h1",key:"lp3yf2"}],["path",{d:"M3 18h1",key:"1eiwyy"}],["path",{d:"M3 6h1",key:"rgxa97"}],["path",{d:"M8 12h1",key:"1con00"}],["path",{d:"M8 18h1",key:"13wk12"}],["path",{d:"M8 6h1",key:"tn6mkg"}]]),nu=i("lollipop",[["circle",{cx:"11",cy:"11",r:"8",key:"4ej97u"}],["path",{d:"m21 21-4.3-4.3",key:"1qie3q"}],["path",{d:"M11 11a2 2 0 0 0 4 0 4 4 0 0 0-8 0 6 6 0 0 0 12 0",key:"107gwy"}]]),nv=i("luggage",[["path",{d:"M6 20a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h12a2 2 0 0 1 2 2v10a2 2 0 0 1-2 2",key:"1m57jg"}],["path",{d:"M8 18V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v14",key:"1l99gc"}],["path",{d:"M10 20h4",key:"ni2waw"}],["circle",{cx:"16",cy:"20",r:"2",key:"1vifvg"}],["circle",{cx:"8",cy:"20",r:"2",key:"ckkr5m"}]]),nw=i("magnet",[["path",{d:"m6 15-4-4 6.75-6.77a7.79 7.79 0 0 1 11 11L13 22l-4-4 6.39-6.36a2.14 2.14 0 0 0-3-3L6 15",key:"1i3lhw"}],["path",{d:"m5 8 4 4",key:"j6kj7e"}],["path",{d:"m12 15 4 4",key:"lnac28"}]]),nx=i("mail-check",[["path",{d:"M22 13V6a2 2 0 0 0-2-2H4a2 2 0 0 0-2 2v12c0 1.1.9 2 2 2h8",key:"12jkf8"}],["path",{d:"m22 7-8.97 5.7a1.94 1.94 0 0 1-2.06 0L2 7",key:"1ocrg3"}],["path",{d:"m16 19 2 2 4-4",key:"1b14m6"}]]),ny=i("mail-minus",[["path",{d:"M22 15V6a2 2 0 0 0-2-2H4a2 2 0 0 0-2 2v12c0 1.1.9 2 2 2h8",key:"fuxbkv"}],["path",{d:"m22 7-8.97 5.7a1.94 1.94 0 0 1-2.06 0L2 7",key:"1ocrg3"}],["path",{d:"M16 19h6",key:"xwg31i"}]]),nz=i("mail-open",[["path",{d:"M21.2 8.4c.5.38.8.97.8 1.6v10a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2V10a2 2 0 0 1 .8-1.6l8-6a2 2 0 0 1 2.4 0l8 6Z",key:"1jhwl8"}],["path",{d:"m22 10-8.97 5.7a1.94 1.94 0 0 1-2.06 0L2 10",key:"1qfld7"}]]),nA=i("mail-plus",[["path",{d:"M22 13V6a2 2 0 0 0-2-2H4a2 2 0 0 0-2 2v12c0 1.1.9 2 2 2h8",key:"12jkf8"}],["path",{d:"m22 7-8.97 5.7a1.94 1.94 0 0 1-2.06 0L2 7",key:"1ocrg3"}],["path",{d:"M19 16v6",key:"tddt3s"}],["path",{d:"M16 19h6",key:"xwg31i"}]]),nB=i("mail-question-mark",[["path",{d:"M22 10.5V6a2 2 0 0 0-2-2H4a2 2 0 0 0-2 2v12c0 1.1.9 2 2 2h12.5",key:"e61zoh"}],["path",{d:"m22 7-8.97 5.7a1.94 1.94 0 0 1-2.06 0L2 7",key:"1ocrg3"}],["path",{d:"M18 15.28c.2-.4.5-.8.9-1a2.1 2.1 0 0 1 2.6.4c.3.4.5.8.5 1.3 0 1.3-2 2-2 2",key:"7z9rxb"}],["path",{d:"M20 22v.01",key:"12bgn6"}]]),nC=i("mail-search",[["path",{d:"M22 12.5V6a2 2 0 0 0-2-2H4a2 2 0 0 0-2 2v12c0 1.1.9 2 2 2h7.5",key:"w80f2v"}],["path",{d:"m22 7-8.97 5.7a1.94 1.94 0 0 1-2.06 0L2 7",key:"1ocrg3"}],["path",{d:"M18 21a3 3 0 1 0 0-6 3 3 0 0 0 0 6Z",key:"8lzu5m"}],["circle",{cx:"18",cy:"18",r:"3",key:"1xkwt0"}],["path",{d:"m22 22-1.5-1.5",key:"1x83k4"}]]),nD=i("mail-warning",[["path",{d:"M22 10.5V6a2 2 0 0 0-2-2H4a2 2 0 0 0-2 2v12c0 1.1.9 2 2 2h12.5",key:"e61zoh"}],["path",{d:"m22 7-8.97 5.7a1.94 1.94 0 0 1-2.06 0L2 7",key:"1ocrg3"}],["path",{d:"M20 14v4",key:"1hm744"}],["path",{d:"M20 22v.01",key:"12bgn6"}]]),nE=i("mail-x",[["path",{d:"M22 13V6a2 2 0 0 0-2-2H4a2 2 0 0 0-2 2v12c0 1.1.9 2 2 2h9",key:"1j9vog"}],["path",{d:"m22 7-8.97 5.7a1.94 1.94 0 0 1-2.06 0L2 7",key:"1ocrg3"}],["path",{d:"m17 17 4 4",key:"1b3523"}],["path",{d:"m21 17-4 4",key:"uinynz"}]]),nF=i("mail",[["path",{d:"m22 7-8.991 5.727a2 2 0 0 1-2.009 0L2 7",key:"132q7q"}],["rect",{x:"2",y:"4",width:"20",height:"16",rx:"2",key:"izxlao"}]]),nG=i("mailbox",[["path",{d:"M22 17a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2V9.5C2 7 4 5 6.5 5H18c2.2 0 4 1.8 4 4v8Z",key:"1lbycx"}],["polyline",{points:"15,9 18,9 18,11",key:"1pm9c0"}],["path",{d:"M6.5 5C9 5 11 7 11 9.5V17a2 2 0 0 1-2 2",key:"15i455"}],["line",{x1:"6",x2:"7",y1:"10",y2:"10",key:"1e2scm"}]]),nH=i("mails",[["rect",{width:"16",height:"13",x:"6",y:"4",rx:"2",key:"1drq3f"}],["path",{d:"m22 7-7.1 3.78c-.57.3-1.23.3-1.8 0L6 7",key:"xn252p"}],["path",{d:"M2 8v11c0 1.1.9 2 2 2h14",key:"n13cji"}]]),nI=i("map-pin-check-inside",[["path",{d:"M20 10c0 4.993-5.539 10.193-7.399 11.799a1 1 0 0 1-1.202 0C9.539 20.193 4 14.993 4 10a8 8 0 0 1 16 0",key:"1r0f0z"}],["path",{d:"m9 10 2 2 4-4",key:"1gnqz4"}]]),nJ=i("map-pin-check",[["path",{d:"M19.43 12.935c.357-.967.57-1.955.57-2.935a8 8 0 0 0-16 0c0 4.993 5.539 10.193 7.399 11.799a1 1 0 0 0 1.202 0 32.197 32.197 0 0 0 .813-.728",key:"1dq61d"}],["circle",{cx:"12",cy:"10",r:"3",key:"ilqhr7"}],["path",{d:"m16 18 2 2 4-4",key:"1mkfmb"}]]),nK=i("map-pin-house",[["path",{d:"M15 22a1 1 0 0 1-1-1v-4a1 1 0 0 1 .445-.832l3-2a1 1 0 0 1 1.11 0l3 2A1 1 0 0 1 22 17v4a1 1 0 0 1-1 1z",key:"1p1rcz"}],["path",{d:"M18 10a8 8 0 0 0-16 0c0 4.993 5.539 10.193 7.399 11.799a1 1 0 0 0 .601.2",key:"mcbcs9"}],["path",{d:"M18 22v-3",key:"1t1ugv"}],["circle",{cx:"10",cy:"10",r:"3",key:"1ns7v1"}]]),nL=i("map-pin-minus-inside",[["path",{d:"M20 10c0 4.993-5.539 10.193-7.399 11.799a1 1 0 0 1-1.202 0C9.539 20.193 4 14.993 4 10a8 8 0 0 1 16 0",key:"1r0f0z"}],["path",{d:"M9 10h6",key:"9gxzsh"}]]),nM=i("map-pin-minus",[["path",{d:"M18.977 14C19.6 12.701 20 11.343 20 10a8 8 0 0 0-16 0c0 4.993 5.539 10.193 7.399 11.799a1 1 0 0 0 1.202 0 32 32 0 0 0 .824-.738",key:"11uxia"}],["circle",{cx:"12",cy:"10",r:"3",key:"ilqhr7"}],["path",{d:"M16 18h6",key:"987eiv"}]]),nN=i("map-pin-off",[["path",{d:"M12.75 7.09a3 3 0 0 1 2.16 2.16",key:"1d4wjd"}],["path",{d:"M17.072 17.072c-1.634 2.17-3.527 3.912-4.471 4.727a1 1 0 0 1-1.202 0C9.539 20.193 4 14.993 4 10a8 8 0 0 1 1.432-4.568",key:"12yil7"}],["path",{d:"m2 2 20 20",key:"1ooewy"}],["path",{d:"M8.475 2.818A8 8 0 0 1 20 10c0 1.183-.31 2.377-.81 3.533",key:"lhrkcz"}],["path",{d:"M9.13 9.13a3 3 0 0 0 3.74 3.74",key:"13wojd"}]]),nO=i("map-pin-plus-inside",[["path",{d:"M20 10c0 4.993-5.539 10.193-7.399 11.799a1 1 0 0 1-1.202 0C9.539 20.193 4 14.993 4 10a8 8 0 0 1 16 0",key:"1r0f0z"}],["path",{d:"M12 7v6",key:"lw1j43"}],["path",{d:"M9 10h6",key:"9gxzsh"}]]),nP=i("map-pin-plus",[["path",{d:"M19.914 11.105A7.298 7.298 0 0 0 20 10a8 8 0 0 0-16 0c0 4.993 5.539 10.193 7.399 11.799a1 1 0 0 0 1.202 0 32 32 0 0 0 .824-.738",key:"fcdtly"}],["circle",{cx:"12",cy:"10",r:"3",key:"ilqhr7"}],["path",{d:"M16 18h6",key:"987eiv"}],["path",{d:"M19 15v6",key:"10aioa"}]]),nQ=i("map-pin-x-inside",[["path",{d:"M20 10c0 4.993-5.539 10.193-7.399 11.799a1 1 0 0 1-1.202 0C9.539 20.193 4 14.993 4 10a8 8 0 0 1 16 0",key:"1r0f0z"}],["path",{d:"m14.5 7.5-5 5",key:"3lb6iw"}],["path",{d:"m9.5 7.5 5 5",key:"ko136h"}]]),nR=i("map-pin-x",[["path",{d:"M19.752 11.901A7.78 7.78 0 0 0 20 10a8 8 0 0 0-16 0c0 4.993 5.539 10.193 7.399 11.799a1 1 0 0 0 1.202 0 19 19 0 0 0 .09-.077",key:"y0ewhp"}],["circle",{cx:"12",cy:"10",r:"3",key:"ilqhr7"}],["path",{d:"m21.5 15.5-5 5",key:"11iqnx"}],["path",{d:"m21.5 20.5-5-5",key:"1bylgx"}]]),nS=i("map-pin",[["path",{d:"M20 10c0 4.993-5.539 10.193-7.399 11.799a1 1 0 0 1-1.202 0C9.539 20.193 4 14.993 4 10a8 8 0 0 1 16 0",key:"1r0f0z"}],["circle",{cx:"12",cy:"10",r:"3",key:"ilqhr7"}]]),nT=i("map-pinned",[["path",{d:"M18 8c0 3.613-3.869 7.429-5.393 8.795a1 1 0 0 1-1.214 0C9.87 15.429 6 11.613 6 8a6 6 0 0 1 12 0",key:"11u0oz"}],["circle",{cx:"12",cy:"8",r:"2",key:"1822b1"}],["path",{d:"M8.714 14h-3.71a1 1 0 0 0-.948.683l-2.004 6A1 1 0 0 0 3 22h18a1 1 0 0 0 .948-1.316l-2-6a1 1 0 0 0-.949-.684h-3.712",key:"q8zwxj"}]]),nU=i("map-plus",[["path",{d:"m11 19-1.106-.552a2 2 0 0 0-1.788 0l-3.659 1.83A1 1 0 0 1 3 19.381V6.618a1 1 0 0 1 .553-.894l4.553-2.277a2 2 0 0 1 1.788 0l4.212 2.106a2 2 0 0 0 1.788 0l3.659-1.83A1 1 0 0 1 21 4.619V12",key:"svfegj"}],["path",{d:"M15 5.764V12",key:"1ocw4k"}],["path",{d:"M18 15v6",key:"9wciyi"}],["path",{d:"M21 18h-6",key:"139f0c"}],["path",{d:"M9 3.236v15",key:"1uimfh"}]]),nV=i("map",[["path",{d:"M14.106 5.553a2 2 0 0 0 1.788 0l3.659-1.83A1 1 0 0 1 21 4.619v12.764a1 1 0 0 1-.553.894l-4.553 2.277a2 2 0 0 1-1.788 0l-4.212-2.106a2 2 0 0 0-1.788 0l-3.659 1.83A1 1 0 0 1 3 19.381V6.618a1 1 0 0 1 .553-.894l4.553-2.277a2 2 0 0 1 1.788 0z",key:"169xi5"}],["path",{d:"M15 5.764v15",key:"1pn4in"}],["path",{d:"M9 3.236v15",key:"1uimfh"}]]),nW=i("mars-stroke",[["path",{d:"m14 6 4 4",key:"1q72g9"}],["path",{d:"M17 3h4v4",key:"19p9u1"}],["path",{d:"m21 3-7.75 7.75",key:"1cjbfd"}],["circle",{cx:"9",cy:"15",r:"6",key:"bx5svt"}]]),nX=i("mars",[["path",{d:"M16 3h5v5",key:"1806ms"}],["path",{d:"m21 3-6.75 6.75",key:"pv0uzu"}],["circle",{cx:"10",cy:"14",r:"6",key:"1qwbdc"}]]),nY=i("maximize-2",[["path",{d:"M15 3h6v6",key:"1q9fwt"}],["path",{d:"m21 3-7 7",key:"1l2asr"}],["path",{d:"m3 21 7-7",key:"tjx5ai"}],["path",{d:"M9 21H3v-6",key:"wtvkvv"}]]),nZ=i("martini",[["path",{d:"M8 22h8",key:"rmew8v"}],["path",{d:"M12 11v11",key:"ur9y6a"}],["path",{d:"m19 3-7 8-7-8Z",key:"1sgpiw"}]]),n$=i("maximize",[["path",{d:"M8 3H5a2 2 0 0 0-2 2v3",key:"1dcmit"}],["path",{d:"M21 8V5a2 2 0 0 0-2-2h-3",key:"1e4gt3"}],["path",{d:"M3 16v3a2 2 0 0 0 2 2h3",key:"wsl5sc"}],["path",{d:"M16 21h3a2 2 0 0 0 2-2v-3",key:"18trek"}]]),n_=i("medal",[["path",{d:"M7.21 15 2.66 7.14a2 2 0 0 1 .13-2.2L4.4 2.8A2 2 0 0 1 6 2h12a2 2 0 0 1 1.6.8l1.6 2.14a2 2 0 0 1 .14 2.2L16.79 15",key:"143lza"}],["path",{d:"M11 12 5.12 2.2",key:"qhuxz6"}],["path",{d:"m13 12 5.88-9.8",key:"hbye0f"}],["path",{d:"M8 7h8",key:"i86dvs"}],["circle",{cx:"12",cy:"17",r:"5",key:"qbz8iq"}],["path",{d:"M12 18v-2h-.5",key:"fawc4q"}]]),n0=i("megaphone-off",[["path",{d:"M11.636 6A13 13 0 0 0 19.4 3.2 1 1 0 0 1 21 4v11.344",key:"bycexp"}],["path",{d:"M14.378 14.357A13 13 0 0 0 11 14H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h1",key:"1t17s6"}],["path",{d:"m2 2 20 20",key:"1ooewy"}],["path",{d:"M6 14a12 12 0 0 0 2.4 7.2 2 2 0 0 0 3.2-2.4A8 8 0 0 1 10 14",key:"1853fq"}],["path",{d:"M8 8v6",key:"aieo6v"}]]),n1=i("megaphone",[["path",{d:"M11 6a13 13 0 0 0 8.4-2.8A1 1 0 0 1 21 4v12a1 1 0 0 1-1.6.8A13 13 0 0 0 11 14H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2z",key:"q8bfy3"}],["path",{d:"M6 14a12 12 0 0 0 2.4 7.2 2 2 0 0 0 3.2-2.4A8 8 0 0 1 10 14",key:"1853fq"}],["path",{d:"M8 6v8",key:"15ugcq"}]]),n2=i("meh",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["line",{x1:"8",x2:"16",y1:"15",y2:"15",key:"1xb1d9"}],["line",{x1:"9",x2:"9.01",y1:"9",y2:"9",key:"yxxnd0"}],["line",{x1:"15",x2:"15.01",y1:"9",y2:"9",key:"1p4y9e"}]]),n3=i("memory-stick",[["path",{d:"M6 19v-3",key:"1nvgqn"}],["path",{d:"M10 19v-3",key:"iu8nkm"}],["path",{d:"M14 19v-3",key:"kcehxu"}],["path",{d:"M18 19v-3",key:"1vh91z"}],["path",{d:"M8 11V9",key:"63erz4"}],["path",{d:"M16 11V9",key:"fru6f3"}],["path",{d:"M12 11V9",key:"ha00sb"}],["path",{d:"M2 15h20",key:"16ne18"}],["path",{d:"M2 7a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2v1.1a2 2 0 0 0 0 3.837V17a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2v-5.1a2 2 0 0 0 0-3.837Z",key:"lhddv3"}]]),n4=i("menu",[["path",{d:"M4 12h16",key:"1lakjw"}],["path",{d:"M4 18h16",key:"19g7jn"}],["path",{d:"M4 6h16",key:"1o0s65"}]]),n5=i("merge",[["path",{d:"m8 6 4-4 4 4",key:"ybng9g"}],["path",{d:"M12 2v10.3a4 4 0 0 1-1.172 2.872L4 22",key:"1hyw0i"}],["path",{d:"m20 22-5-5",key:"1m27yz"}]]),n6=i("message-circle-code",[["path",{d:"M10 9.5 8 12l2 2.5",key:"3mjy60"}],["path",{d:"m14 9.5 2 2.5-2 2.5",key:"1bir2l"}],["path",{d:"M7.9 20A9 9 0 1 0 4 16.1L2 22z",key:"k85zhp"}]]),n7=i("message-circle-heart",[["path",{d:"M7.9 20A9 9 0 1 0 4 16.1L2 22Z",key:"vv11sd"}],["path",{d:"M15.8 9.2a2.5 2.5 0 0 0-3.5 0l-.3.4-.35-.3a2.42 2.42 0 1 0-3.2 3.6l3.6 3.5 3.6-3.5c1.2-1.2 1.1-2.7.2-3.7",key:"43lnbm"}]]),n8=i("message-circle-dashed",[["path",{d:"M13.5 3.1c-.5 0-1-.1-1.5-.1s-1 .1-1.5.1",key:"16ll65"}],["path",{d:"M19.3 6.8a10.45 10.45 0 0 0-2.1-2.1",key:"1nq77a"}],["path",{d:"M20.9 13.5c.1-.5.1-1 .1-1.5s-.1-1-.1-1.5",key:"1sf7wn"}],["path",{d:"M17.2 19.3a10.45 10.45 0 0 0 2.1-2.1",key:"x1hs5g"}],["path",{d:"M10.5 20.9c.5.1 1 .1 1.5.1s1-.1 1.5-.1",key:"19m18z"}],["path",{d:"M3.5 17.5 2 22l4.5-1.5",key:"1f36qi"}],["path",{d:"M3.1 10.5c0 .5-.1 1-.1 1.5s.1 1 .1 1.5",key:"1vz3ju"}],["path",{d:"M6.8 4.7a10.45 10.45 0 0 0-2.1 2.1",key:"19f9do"}]]),n9=i("message-circle-more",[["path",{d:"M7.9 20A9 9 0 1 0 4 16.1L2 22Z",key:"vv11sd"}],["path",{d:"M8 12h.01",key:"czm47f"}],["path",{d:"M12 12h.01",key:"1mp3jc"}],["path",{d:"M16 12h.01",key:"1l6xoz"}]]),oa=i("message-circle-off",[["path",{d:"M20.5 14.9A9 9 0 0 0 9.1 3.5",key:"1iebmn"}],["path",{d:"m2 2 20 20",key:"1ooewy"}],["path",{d:"M5.6 5.6C3 8.3 2.2 12.5 4 16l-2 6 6-2c3.4 1.8 7.6 1.1 10.3-1.7",key:"1ov8ce"}]]),ob=i("message-circle-plus",[["path",{d:"M7.9 20A9 9 0 1 0 4 16.1L2 22Z",key:"vv11sd"}],["path",{d:"M8 12h8",key:"1wcyev"}],["path",{d:"M12 8v8",key:"napkw2"}]]),oc=i("message-circle-question-mark",[["path",{d:"M7.9 20A9 9 0 1 0 4 16.1L2 22Z",key:"vv11sd"}],["path",{d:"M9.09 9a3 3 0 0 1 5.83 1c0 2-3 3-3 3",key:"1u773s"}],["path",{d:"M12 17h.01",key:"p32p05"}]]),od=i("message-circle-reply",[["path",{d:"M7.9 20A9 9 0 1 0 4 16.1L2 22Z",key:"vv11sd"}],["path",{d:"m10 15-3-3 3-3",key:"1pgupc"}],["path",{d:"M7 12h7a2 2 0 0 1 2 2v1",key:"1gheu4"}]]),oe=i("message-circle-warning",[["path",{d:"M7.9 20A9 9 0 1 0 4 16.1L2 22Z",key:"vv11sd"}],["path",{d:"M12 8v4",key:"1got3b"}],["path",{d:"M12 16h.01",key:"1drbdi"}]]),of=i("message-circle-x",[["path",{d:"M7.9 20A9 9 0 1 0 4 16.1L2 22Z",key:"vv11sd"}],["path",{d:"m15 9-6 6",key:"1uzhvr"}],["path",{d:"m9 9 6 6",key:"z0biqf"}]]),og=i("message-circle",[["path",{d:"M7.9 20A9 9 0 1 0 4 16.1L2 22Z",key:"vv11sd"}]]),oh=i("message-square-code",[["path",{d:"M10 7.5 8 10l2 2.5",key:"xb17xw"}],["path",{d:"m14 7.5 2 2.5-2 2.5",key:"5rap1v"}],["path",{d:"M21 15a2 2 0 0 1-2 2H7l-4 4V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2z",key:"1lielz"}]]),oi=i("message-square-dashed",[["path",{d:"M10 17H7l-4 4v-7",key:"1r71xu"}],["path",{d:"M14 17h1",key:"nufu4t"}],["path",{d:"M14 3h1",key:"1ec4yj"}],["path",{d:"M19 3a2 2 0 0 1 2 2",key:"18rm91"}],["path",{d:"M21 14v1a2 2 0 0 1-2 2",key:"29akq3"}],["path",{d:"M21 9v1",key:"mxsmne"}],["path",{d:"M3 9v1",key:"1r0deq"}],["path",{d:"M5 3a2 2 0 0 0-2 2",key:"y57alp"}],["path",{d:"M9 3h1",key:"1yesri"}]]),oj=i("message-square-diff",[["path",{d:"m5 19-2 2V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2v10a2 2 0 0 1-2 2",key:"1xuzuj"}],["path",{d:"M9 10h6",key:"9gxzsh"}],["path",{d:"M12 7v6",key:"lw1j43"}],["path",{d:"M9 17h6",key:"r8uit2"}]]),ok=i("message-square-dot",[["path",{d:"M11.7 3H5a2 2 0 0 0-2 2v16l4-4h12a2 2 0 0 0 2-2v-2.7",key:"uodpkb"}],["circle",{cx:"18",cy:"6",r:"3",key:"1h7g24"}]]),ol=i("message-square-heart",[["path",{d:"M21 15a2 2 0 0 1-2 2H7l-4 4V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2z",key:"1lielz"}],["path",{d:"M14.8 7.5a1.84 1.84 0 0 0-2.6 0l-.2.3-.3-.3a1.84 1.84 0 1 0-2.4 2.8L12 13l2.7-2.7c.9-.9.8-2.1.1-2.8",key:"1blaws"}]]),om=i("message-square-lock",[["path",{d:"M19 15v-2a2 2 0 1 0-4 0v2",key:"h3d1vz"}],["path",{d:"M9 17H7l-4 4V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2v3.5",key:"xsnnhn"}],["rect",{x:"13",y:"15",width:"8",height:"5",rx:"1",key:"1ccwuk"}]]),on=i("message-square-more",[["path",{d:"M21 15a2 2 0 0 1-2 2H7l-4 4V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2z",key:"1lielz"}],["path",{d:"M8 10h.01",key:"19clt8"}],["path",{d:"M12 10h.01",key:"1nrarc"}],["path",{d:"M16 10h.01",key:"1m94wz"}]]),oo=i("message-square-off",[["path",{d:"M21 15V5a2 2 0 0 0-2-2H9",key:"43el77"}],["path",{d:"m2 2 20 20",key:"1ooewy"}],["path",{d:"M3.6 3.6c-.4.3-.6.8-.6 1.4v16l4-4h10",key:"pwpm4a"}]]),op=i("message-square-plus",[["path",{d:"M21 15a2 2 0 0 1-2 2H7l-4 4V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2z",key:"1lielz"}],["path",{d:"M12 7v6",key:"lw1j43"}],["path",{d:"M9 10h6",key:"9gxzsh"}]]),oq=i("message-square-quote",[["path",{d:"M21 15a2 2 0 0 1-2 2H7l-4 4V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2z",key:"1lielz"}],["path",{d:"M8 12a2 2 0 0 0 2-2V8H8",key:"1jfesj"}],["path",{d:"M14 12a2 2 0 0 0 2-2V8h-2",key:"1dq9mh"}]]),or=i("message-square-reply",[["path",{d:"M21 15a2 2 0 0 1-2 2H7l-4 4V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2z",key:"1lielz"}],["path",{d:"m10 7-3 3 3 3",key:"1eugdv"}],["path",{d:"M17 13v-1a2 2 0 0 0-2-2H7",key:"ernfh3"}]]),os=i("message-square-share",[["path",{d:"M21 12v3a2 2 0 0 1-2 2H7l-4 4V5a2 2 0 0 1 2-2h7",key:"tqtdkg"}],["path",{d:"M16 3h5v5",key:"1806ms"}],["path",{d:"m16 8 5-5",key:"15mbrl"}]]),ot=i("message-square-text",[["path",{d:"M21 15a2 2 0 0 1-2 2H7l-4 4V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2z",key:"1lielz"}],["path",{d:"M13 8H7",key:"14i4kc"}],["path",{d:"M17 12H7",key:"16if0g"}]]),ou=i("message-square-warning",[["path",{d:"M21 15a2 2 0 0 1-2 2H7l-4 4V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2z",key:"1lielz"}],["path",{d:"M12 7v2",key:"stiyo7"}],["path",{d:"M12 13h.01",key:"y0uutt"}]]),ov=i("message-square-x",[["path",{d:"M21 15a2 2 0 0 1-2 2H7l-4 4V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2z",key:"1lielz"}],["path",{d:"m14.5 7.5-5 5",key:"3lb6iw"}],["path",{d:"m9.5 7.5 5 5",key:"ko136h"}]]),ow=i("message-square",[["path",{d:"M21 15a2 2 0 0 1-2 2H7l-4 4V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2z",key:"1lielz"}]]),ox=i("messages-square",[["path",{d:"M14 9a2 2 0 0 1-2 2H6l-4 4V4a2 2 0 0 1 2-2h8a2 2 0 0 1 2 2z",key:"p1xzt8"}],["path",{d:"M18 9h2a2 2 0 0 1 2 2v11l-4-4h-6a2 2 0 0 1-2-2v-1",key:"1cx29u"}]]),oy=i("mic-off",[["line",{x1:"2",x2:"22",y1:"2",y2:"22",key:"a6p6uj"}],["path",{d:"M18.89 13.23A7.12 7.12 0 0 0 19 12v-2",key:"80xlxr"}],["path",{d:"M5 10v2a7 7 0 0 0 12 5",key:"p2k8kg"}],["path",{d:"M15 9.34V5a3 3 0 0 0-5.68-1.33",key:"1gzdoj"}],["path",{d:"M9 9v3a3 3 0 0 0 5.12 2.12",key:"r2i35w"}],["line",{x1:"12",x2:"12",y1:"19",y2:"22",key:"x3vr5v"}]]),oz=i("mic-vocal",[["path",{d:"m11 7.601-5.994 8.19a1 1 0 0 0 .1 1.298l.817.818a1 1 0 0 0 1.314.087L15.09 12",key:"80a601"}],["path",{d:"M16.5 21.174C15.5 20.5 14.372 20 13 20c-2.058 0-3.928 2.356-6 2-2.072-.356-2.775-3.369-1.5-4.5",key:"j0ngtp"}],["circle",{cx:"16",cy:"7",r:"5",key:"d08jfb"}]]),oA=i("mic",[["path",{d:"M12 19v3",key:"npa21l"}],["path",{d:"M19 10v2a7 7 0 0 1-14 0v-2",key:"1vc78b"}],["rect",{x:"9",y:"2",width:"6",height:"13",rx:"3",key:"s6n7sd"}]]),oB=i("microchip",[["path",{d:"M18 12h2",key:"quuxs7"}],["path",{d:"M18 16h2",key:"zsn3lv"}],["path",{d:"M18 20h2",key:"9x5y9y"}],["path",{d:"M18 4h2",key:"1luxfb"}],["path",{d:"M18 8h2",key:"nxqzg"}],["path",{d:"M4 12h2",key:"1ltxp0"}],["path",{d:"M4 16h2",key:"8a5zha"}],["path",{d:"M4 20h2",key:"27dk57"}],["path",{d:"M4 4h2",key:"10groj"}],["path",{d:"M4 8h2",key:"18vq6w"}],["path",{d:"M8 2a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h8a2 2 0 0 0 2-2V4a2 2 0 0 0-2-2h-1.5c-.276 0-.494.227-.562.495a2 2 0 0 1-3.876 0C9.994 2.227 9.776 2 9.5 2z",key:"1681fp"}]]),oC=i("microscope",[["path",{d:"M6 18h8",key:"1borvv"}],["path",{d:"M3 22h18",key:"8prr45"}],["path",{d:"M14 22a7 7 0 1 0 0-14h-1",key:"1jwaiy"}],["path",{d:"M9 14h2",key:"197e7h"}],["path",{d:"M9 12a2 2 0 0 1-2-2V6h6v4a2 2 0 0 1-2 2Z",key:"1bmzmy"}],["path",{d:"M12 6V3a1 1 0 0 0-1-1H9a1 1 0 0 0-1 1v3",key:"1drr47"}]]),oD=i("microwave",[["rect",{width:"20",height:"15",x:"2",y:"4",rx:"2",key:"2no95f"}],["rect",{width:"8",height:"7",x:"6",y:"8",rx:"1",key:"zh9wx"}],["path",{d:"M18 8v7",key:"o5zi4n"}],["path",{d:"M6 19v2",key:"1loha6"}],["path",{d:"M18 19v2",key:"1dawf0"}]]),oE=i("milestone",[["path",{d:"M12 13v8",key:"1l5pq0"}],["path",{d:"M12 3v3",key:"1n5kay"}],["path",{d:"M4 6a1 1 0 0 0-1 1v5a1 1 0 0 0 1 1h13a2 2 0 0 0 1.152-.365l3.424-2.317a1 1 0 0 0 0-1.635l-3.424-2.318A2 2 0 0 0 17 6z",key:"1btarq"}]]),oF=i("milk-off",[["path",{d:"M8 2h8",key:"1ssgc1"}],["path",{d:"M9 2v1.343M15 2v2.789a4 4 0 0 0 .672 2.219l.656.984a4 4 0 0 1 .672 2.22v1.131M7.8 7.8l-.128.192A4 4 0 0 0 7 10.212V20a2 2 0 0 0 2 2h6a2 2 0 0 0 2-2v-3",key:"y0ejgx"}],["path",{d:"M7 15a6.47 6.47 0 0 1 5 0 6.472 6.472 0 0 0 3.435.435",key:"iaxqsy"}],["line",{x1:"2",x2:"22",y1:"2",y2:"22",key:"a6p6uj"}]]),oG=i("milk",[["path",{d:"M8 2h8",key:"1ssgc1"}],["path",{d:"M9 2v2.789a4 4 0 0 1-.672 2.219l-.656.984A4 4 0 0 0 7 10.212V20a2 2 0 0 0 2 2h6a2 2 0 0 0 2-2v-9.789a4 4 0 0 0-.672-2.219l-.656-.984A4 4 0 0 1 15 4.788V2",key:"qtp12x"}],["path",{d:"M7 15a6.472 6.472 0 0 1 5 0 6.47 6.47 0 0 0 5 0",key:"ygeh44"}]]),oH=i("minimize-2",[["path",{d:"m14 10 7-7",key:"oa77jy"}],["path",{d:"M20 10h-6V4",key:"mjg0md"}],["path",{d:"m3 21 7-7",key:"tjx5ai"}],["path",{d:"M4 14h6v6",key:"rmj7iw"}]]),oI=i("minimize",[["path",{d:"M8 3v3a2 2 0 0 1-2 2H3",key:"hohbtr"}],["path",{d:"M21 8h-3a2 2 0 0 1-2-2V3",key:"5jw1f3"}],["path",{d:"M3 16h3a2 2 0 0 1 2 2v3",key:"198tvr"}],["path",{d:"M16 21v-3a2 2 0 0 1 2-2h3",key:"ph8mxp"}]]),oJ=i("minus",[["path",{d:"M5 12h14",key:"1ays0h"}]]),oK=i("monitor-check",[["path",{d:"m9 10 2 2 4-4",key:"1gnqz4"}],["rect",{width:"20",height:"14",x:"2",y:"3",rx:"2",key:"48i651"}],["path",{d:"M12 17v4",key:"1riwvh"}],["path",{d:"M8 21h8",key:"1ev6f3"}]]),oL=i("monitor-cog",[["path",{d:"M12 17v4",key:"1riwvh"}],["path",{d:"m14.305 7.53.923-.382",key:"1mlnsw"}],["path",{d:"m15.228 4.852-.923-.383",key:"82mpwg"}],["path",{d:"m16.852 3.228-.383-.924",key:"ln4sir"}],["path",{d:"m16.852 8.772-.383.923",key:"1dejw0"}],["path",{d:"m19.148 3.228.383-.924",key:"192kgf"}],["path",{d:"m19.53 9.696-.382-.924",key:"fiavlr"}],["path",{d:"m20.772 4.852.924-.383",key:"1j8mgp"}],["path",{d:"m20.772 7.148.924.383",key:"zix9be"}],["path",{d:"M22 13v2a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h7",key:"1tnzv8"}],["path",{d:"M8 21h8",key:"1ev6f3"}],["circle",{cx:"18",cy:"6",r:"3",key:"1h7g24"}]]),oM=i("monitor-dot",[["circle",{cx:"19",cy:"6",r:"3",key:"108a5v"}],["path",{d:"M22 12v3a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h9",key:"1fet9y"}],["path",{d:"M12 17v4",key:"1riwvh"}],["path",{d:"M8 21h8",key:"1ev6f3"}]]),oN=i("monitor-down",[["path",{d:"M12 13V7",key:"h0r20n"}],["path",{d:"m15 10-3 3-3-3",key:"lzhmyn"}],["rect",{width:"20",height:"14",x:"2",y:"3",rx:"2",key:"48i651"}],["path",{d:"M12 17v4",key:"1riwvh"}],["path",{d:"M8 21h8",key:"1ev6f3"}]]),oO=i("monitor-off",[["path",{d:"M17 17H4a2 2 0 0 1-2-2V5c0-1.5 1-2 1-2",key:"k0q8oc"}],["path",{d:"M22 15V5a2 2 0 0 0-2-2H9",key:"cp1ac0"}],["path",{d:"M8 21h8",key:"1ev6f3"}],["path",{d:"M12 17v4",key:"1riwvh"}],["path",{d:"m2 2 20 20",key:"1ooewy"}]]),oP=i("monitor-pause",[["path",{d:"M10 13V7",key:"1u13u9"}],["path",{d:"M14 13V7",key:"1vj9om"}],["rect",{width:"20",height:"14",x:"2",y:"3",rx:"2",key:"48i651"}],["path",{d:"M12 17v4",key:"1riwvh"}],["path",{d:"M8 21h8",key:"1ev6f3"}]]),oQ=i("monitor-play",[["path",{d:"M10 7.75a.75.75 0 0 1 1.142-.638l3.664 2.249a.75.75 0 0 1 0 1.278l-3.664 2.25a.75.75 0 0 1-1.142-.64z",key:"1pctta"}],["path",{d:"M12 17v4",key:"1riwvh"}],["path",{d:"M8 21h8",key:"1ev6f3"}],["rect",{x:"2",y:"3",width:"20",height:"14",rx:"2",key:"x3v2xh"}]]),oR=i("monitor-smartphone",[["path",{d:"M18 8V6a2 2 0 0 0-2-2H4a2 2 0 0 0-2 2v7a2 2 0 0 0 2 2h8",key:"10dyio"}],["path",{d:"M10 19v-3.96 3.15",key:"1irgej"}],["path",{d:"M7 19h5",key:"qswx4l"}],["rect",{width:"6",height:"10",x:"16",y:"12",rx:"2",key:"1egngj"}]]),oS=i("monitor-stop",[["path",{d:"M12 17v4",key:"1riwvh"}],["path",{d:"M8 21h8",key:"1ev6f3"}],["rect",{x:"2",y:"3",width:"20",height:"14",rx:"2",key:"x3v2xh"}],["rect",{x:"9",y:"7",width:"6",height:"6",rx:"1",key:"5m2oou"}]]),oT=i("monitor-up",[["path",{d:"m9 10 3-3 3 3",key:"11gsxs"}],["path",{d:"M12 13V7",key:"h0r20n"}],["rect",{width:"20",height:"14",x:"2",y:"3",rx:"2",key:"48i651"}],["path",{d:"M12 17v4",key:"1riwvh"}],["path",{d:"M8 21h8",key:"1ev6f3"}]]),oU=i("monitor-speaker",[["path",{d:"M5.5 20H8",key:"1k40s5"}],["path",{d:"M17 9h.01",key:"1j24nn"}],["rect",{width:"10",height:"16",x:"12",y:"4",rx:"2",key:"ixliua"}],["path",{d:"M8 6H4a2 2 0 0 0-2 2v6a2 2 0 0 0 2 2h4",key:"1mp6e1"}],["circle",{cx:"17",cy:"15",r:"1",key:"tqvash"}]]),oV=i("monitor-x",[["path",{d:"m14.5 12.5-5-5",key:"1jahn5"}],["path",{d:"m9.5 12.5 5-5",key:"1k2t7b"}],["rect",{width:"20",height:"14",x:"2",y:"3",rx:"2",key:"48i651"}],["path",{d:"M12 17v4",key:"1riwvh"}],["path",{d:"M8 21h8",key:"1ev6f3"}]]),oW=i("monitor",[["rect",{width:"20",height:"14",x:"2",y:"3",rx:"2",key:"48i651"}],["line",{x1:"8",x2:"16",y1:"21",y2:"21",key:"1svkeh"}],["line",{x1:"12",x2:"12",y1:"17",y2:"21",key:"vw1qmm"}]]),oX=i("moon-star",[["path",{d:"M12 3a6 6 0 0 0 9 9 9 9 0 1 1-9-9",key:"4ay0iu"}],["path",{d:"M20 3v4",key:"1olli1"}],["path",{d:"M22 5h-4",key:"1gvqau"}]]),oY=i("moon",[["path",{d:"M12 3a6 6 0 0 0 9 9 9 9 0 1 1-9-9Z",key:"a7tn18"}]]),oZ=i("mountain-snow",[["path",{d:"m8 3 4 8 5-5 5 15H2L8 3z",key:"otkl63"}],["path",{d:"M4.14 15.08c2.62-1.57 5.24-1.43 7.86.42 2.74 1.94 5.49 2 8.23.19",key:"1pvmmp"}]]),o$=i("mountain",[["path",{d:"m8 3 4 8 5-5 5 15H2L8 3z",key:"otkl63"}]]),o_=i("mouse-off",[["path",{d:"M12 6v.343",key:"1gyhex"}],["path",{d:"M18.218 18.218A7 7 0 0 1 5 15V9a7 7 0 0 1 .782-3.218",key:"ukzz01"}],["path",{d:"M19 13.343V9A7 7 0 0 0 8.56 2.902",key:"104jy9"}],["path",{d:"M22 22 2 2",key:"1r8tn9"}]]),o0=i("mouse-pointer-2",[["path",{d:"M4.037 4.688a.495.495 0 0 1 .651-.651l16 6.5a.5.5 0 0 1-.063.947l-6.124 1.58a2 2 0 0 0-1.438 1.435l-1.579 6.126a.5.5 0 0 1-.947.063z",key:"edeuup"}]]),o1=i("mouse-pointer-click",[["path",{d:"M14 4.1 12 6",key:"ita8i4"}],["path",{d:"m5.1 8-2.9-.8",key:"1go3kf"}],["path",{d:"m6 12-1.9 2",key:"mnht97"}],["path",{d:"M7.2 2.2 8 5.1",key:"1cfko1"}],["path",{d:"M9.037 9.69a.498.498 0 0 1 .653-.653l11 4.5a.5.5 0 0 1-.074.949l-4.349 1.041a1 1 0 0 0-.74.739l-1.04 4.35a.5.5 0 0 1-.95.074z",key:"s0h3yz"}]]),o2=i("mouse-pointer-ban",[["path",{d:"M2.034 2.681a.498.498 0 0 1 .647-.647l9 3.5a.5.5 0 0 1-.033.944L8.204 7.545a1 1 0 0 0-.66.66l-1.066 3.443a.5.5 0 0 1-.944.033z",key:"11pp1i"}],["circle",{cx:"16",cy:"16",r:"6",key:"qoo3c4"}],["path",{d:"m11.8 11.8 8.4 8.4",key:"oogvdj"}]]),o3=i("mouse-pointer",[["path",{d:"M12.586 12.586 19 19",key:"ea5xo7"}],["path",{d:"M3.688 3.037a.497.497 0 0 0-.651.651l6.5 15.999a.501.501 0 0 0 .947-.062l1.569-6.083a2 2 0 0 1 1.448-1.479l6.124-1.579a.5.5 0 0 0 .063-.947z",key:"277e5u"}]]),o4=i("mouse",[["rect",{x:"5",y:"2",width:"14",height:"20",rx:"7",key:"11ol66"}],["path",{d:"M12 6v4",key:"16clxf"}]]),o5=i("move-3d",[["path",{d:"M5 3v16h16",key:"1mqmf9"}],["path",{d:"m5 19 6-6",key:"jh6hbb"}],["path",{d:"m2 6 3-3 3 3",key:"tkyvxa"}],["path",{d:"m18 16 3 3-3 3",key:"1d4glt"}]]),o6=i("move-diagonal-2",[["path",{d:"M19 13v6h-6",key:"1hxl6d"}],["path",{d:"M5 11V5h6",key:"12e2xe"}],["path",{d:"m5 5 14 14",key:"11anup"}]]),o7=i("move-diagonal",[["path",{d:"M11 19H5v-6",key:"8awifj"}],["path",{d:"M13 5h6v6",key:"7voy1q"}],["path",{d:"M19 5 5 19",key:"wwaj1z"}]]),o8=i("move-down-left",[["path",{d:"M11 19H5V13",key:"1akmht"}],["path",{d:"M19 5L5 19",key:"72u4yj"}]]),o9=i("move-down-right",[["path",{d:"M19 13V19H13",key:"10vkzq"}],["path",{d:"M5 5L19 19",key:"5zm2fv"}]]),pa=i("move-down",[["path",{d:"M8 18L12 22L16 18",key:"cskvfv"}],["path",{d:"M12 2V22",key:"r89rzk"}]]),pb=i("move-horizontal",[["path",{d:"m18 8 4 4-4 4",key:"1ak13k"}],["path",{d:"M2 12h20",key:"9i4pu4"}],["path",{d:"m6 8-4 4 4 4",key:"15zrgr"}]]),pc=i("move-left",[["path",{d:"M6 8L2 12L6 16",key:"kyvwex"}],["path",{d:"M2 12H22",key:"1m8cig"}]]),pd=i("move-up-left",[["path",{d:"M5 11V5H11",key:"3q78g9"}],["path",{d:"M5 5L19 19",key:"5zm2fv"}]]),pe=i("move-right",[["path",{d:"M18 8L22 12L18 16",key:"1r0oui"}],["path",{d:"M2 12H22",key:"1m8cig"}]]),pf=i("move-up-right",[["path",{d:"M13 5H19V11",key:"1n1gyv"}],["path",{d:"M19 5L5 19",key:"72u4yj"}]]),pg=i("move-up",[["path",{d:"M8 6L12 2L16 6",key:"1yvkyx"}],["path",{d:"M12 2V22",key:"r89rzk"}]]),ph=i("move-vertical",[["path",{d:"M12 2v20",key:"t6zp3m"}],["path",{d:"m8 18 4 4 4-4",key:"bh5tu3"}],["path",{d:"m8 6 4-4 4 4",key:"ybng9g"}]]),pi=i("move",[["path",{d:"M12 2v20",key:"t6zp3m"}],["path",{d:"m15 19-3 3-3-3",key:"11eu04"}],["path",{d:"m19 9 3 3-3 3",key:"1mg7y2"}],["path",{d:"M2 12h20",key:"9i4pu4"}],["path",{d:"m5 9-3 3 3 3",key:"j64kie"}],["path",{d:"m9 5 3-3 3 3",key:"l8vdw6"}]]),pj=i("music-2",[["circle",{cx:"8",cy:"18",r:"4",key:"1fc0mg"}],["path",{d:"M12 18V2l7 4",key:"g04rme"}]]),pk=i("music-3",[["circle",{cx:"12",cy:"18",r:"4",key:"m3r9ws"}],["path",{d:"M16 18V2",key:"40x2m5"}]]),pl=i("music-4",[["path",{d:"M9 18V5l12-2v13",key:"1jmyc2"}],["path",{d:"m9 9 12-2",key:"1e64n2"}],["circle",{cx:"6",cy:"18",r:"3",key:"fqmcym"}],["circle",{cx:"18",cy:"16",r:"3",key:"1hluhg"}]]),pm=i("music",[["path",{d:"M9 18V5l12-2v13",key:"1jmyc2"}],["circle",{cx:"6",cy:"18",r:"3",key:"fqmcym"}],["circle",{cx:"18",cy:"16",r:"3",key:"1hluhg"}]]),pn=i("navigation-2-off",[["path",{d:"M9.31 9.31 5 21l7-4 7 4-1.17-3.17",key:"qoq2o2"}],["path",{d:"M14.53 8.88 12 2l-1.17 3.17",key:"k3sjzy"}],["line",{x1:"2",x2:"22",y1:"2",y2:"22",key:"a6p6uj"}]]),po=i("navigation-2",[["polygon",{points:"12 2 19 21 12 17 5 21 12 2",key:"x8c0qg"}]]),pp=i("navigation-off",[["path",{d:"M8.43 8.43 3 11l8 2 2 8 2.57-5.43",key:"1vdtb7"}],["path",{d:"M17.39 11.73 22 2l-9.73 4.61",key:"tya3r6"}],["line",{x1:"2",x2:"22",y1:"2",y2:"22",key:"a6p6uj"}]]),pq=i("navigation",[["polygon",{points:"3 11 22 2 13 21 11 13 3 11",key:"1ltx0t"}]]),pr=i("network",[["rect",{x:"16",y:"16",width:"6",height:"6",rx:"1",key:"4q2zg0"}],["rect",{x:"2",y:"16",width:"6",height:"6",rx:"1",key:"8cvhb9"}],["rect",{x:"9",y:"2",width:"6",height:"6",rx:"1",key:"1egb70"}],["path",{d:"M5 16v-3a1 1 0 0 1 1-1h12a1 1 0 0 1 1 1v3",key:"1jsf9p"}],["path",{d:"M12 12V8",key:"2874zd"}]]),ps=i("newspaper",[["path",{d:"M15 18h-5",key:"95g1m2"}],["path",{d:"M18 14h-8",key:"sponae"}],["path",{d:"M4 22h16a2 2 0 0 0 2-2V4a2 2 0 0 0-2-2H8a2 2 0 0 0-2 2v16a2 2 0 0 1-4 0v-9a2 2 0 0 1 2-2h2",key:"39pd36"}],["rect",{width:"8",height:"4",x:"10",y:"6",rx:"1",key:"aywv1n"}]]),pt=i("nfc",[["path",{d:"M6 8.32a7.43 7.43 0 0 1 0 7.36",key:"9iaqei"}],["path",{d:"M9.46 6.21a11.76 11.76 0 0 1 0 11.58",key:"1yha7l"}],["path",{d:"M12.91 4.1a15.91 15.91 0 0 1 .01 15.8",key:"4iu2gk"}],["path",{d:"M16.37 2a20.16 20.16 0 0 1 0 20",key:"sap9u2"}]]),pu=i("non-binary",[["path",{d:"M12 2v10",key:"mnfbl"}],["path",{d:"m8.5 4 7 4",key:"m1xjk3"}],["path",{d:"m8.5 8 7-4",key:"t0m5j6"}],["circle",{cx:"12",cy:"17",r:"5",key:"qbz8iq"}]]),pv=i("notebook-pen",[["path",{d:"M13.4 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2v-7.4",key:"re6nr2"}],["path",{d:"M2 6h4",key:"aawbzj"}],["path",{d:"M2 10h4",key:"l0bgd4"}],["path",{d:"M2 14h4",key:"1gsvsf"}],["path",{d:"M2 18h4",key:"1bu2t1"}],["path",{d:"M21.378 5.626a1 1 0 1 0-3.004-3.004l-5.01 5.012a2 2 0 0 0-.506.854l-.837 2.87a.5.5 0 0 0 .62.62l2.87-.837a2 2 0 0 0 .854-.506z",key:"pqwjuv"}]]),pw=i("notebook-tabs",[["path",{d:"M2 6h4",key:"aawbzj"}],["path",{d:"M2 10h4",key:"l0bgd4"}],["path",{d:"M2 14h4",key:"1gsvsf"}],["path",{d:"M2 18h4",key:"1bu2t1"}],["rect",{width:"16",height:"20",x:"4",y:"2",rx:"2",key:"1nb95v"}],["path",{d:"M15 2v20",key:"dcj49h"}],["path",{d:"M15 7h5",key:"1xj5lc"}],["path",{d:"M15 12h5",key:"w5shd9"}],["path",{d:"M15 17h5",key:"1qaofu"}]]),px=i("notebook-text",[["path",{d:"M2 6h4",key:"aawbzj"}],["path",{d:"M2 10h4",key:"l0bgd4"}],["path",{d:"M2 14h4",key:"1gsvsf"}],["path",{d:"M2 18h4",key:"1bu2t1"}],["rect",{width:"16",height:"20",x:"4",y:"2",rx:"2",key:"1nb95v"}],["path",{d:"M9.5 8h5",key:"11mslq"}],["path",{d:"M9.5 12H16",key:"ktog6x"}],["path",{d:"M9.5 16H14",key:"p1seyn"}]]),py=i("notebook",[["path",{d:"M2 6h4",key:"aawbzj"}],["path",{d:"M2 10h4",key:"l0bgd4"}],["path",{d:"M2 14h4",key:"1gsvsf"}],["path",{d:"M2 18h4",key:"1bu2t1"}],["rect",{width:"16",height:"20",x:"4",y:"2",rx:"2",key:"1nb95v"}],["path",{d:"M16 2v20",key:"rotuqe"}]]),pz=i("notepad-text-dashed",[["path",{d:"M8 2v4",key:"1cmpym"}],["path",{d:"M12 2v4",key:"3427ic"}],["path",{d:"M16 2v4",key:"4m81vk"}],["path",{d:"M16 4h2a2 2 0 0 1 2 2v2",key:"j91f56"}],["path",{d:"M20 12v2",key:"w8o0tu"}],["path",{d:"M20 18v2a2 2 0 0 1-2 2h-1",key:"1c9ggx"}],["path",{d:"M13 22h-2",key:"191ugt"}],["path",{d:"M7 22H6a2 2 0 0 1-2-2v-2",key:"1rt9px"}],["path",{d:"M4 14v-2",key:"1v0sqh"}],["path",{d:"M4 8V6a2 2 0 0 1 2-2h2",key:"1mwabg"}],["path",{d:"M8 10h6",key:"3oa6kw"}],["path",{d:"M8 14h8",key:"1fgep2"}],["path",{d:"M8 18h5",key:"17enja"}]]),pA=i("notepad-text",[["path",{d:"M8 2v4",key:"1cmpym"}],["path",{d:"M12 2v4",key:"3427ic"}],["path",{d:"M16 2v4",key:"4m81vk"}],["rect",{width:"16",height:"18",x:"4",y:"4",rx:"2",key:"1u9h20"}],["path",{d:"M8 10h6",key:"3oa6kw"}],["path",{d:"M8 14h8",key:"1fgep2"}],["path",{d:"M8 18h5",key:"17enja"}]]),pB=i("nut-off",[["path",{d:"M12 4V2",key:"1k5q1u"}],["path",{d:"M5 10v4a7.004 7.004 0 0 0 5.277 6.787c.412.104.802.292 1.102.592L12 22l.621-.621c.3-.3.69-.488 1.102-.592a7.01 7.01 0 0 0 4.125-2.939",key:"1xcvy9"}],["path",{d:"M19 10v3.343",key:"163tfc"}],["path",{d:"M12 12c-1.349-.573-1.905-1.005-2.5-2-.546.902-1.048 1.353-2.5 2-1.018-.644-1.46-1.08-2-2-1.028.71-1.69.918-3 1 1.081-1.048 1.757-2.03 2-3 .194-.776.84-1.551 1.79-2.21m11.654 5.997c.887-.457 1.28-.891 1.556-1.787 1.032.916 1.683 1.157 3 1-1.297-1.036-1.758-2.03-2-3-.5-2-4-4-8-4-.74 0-1.461.068-2.15.192",key:"17914v"}],["line",{x1:"2",x2:"22",y1:"2",y2:"22",key:"a6p6uj"}]]),pC=i("nut",[["path",{d:"M12 4V2",key:"1k5q1u"}],["path",{d:"M5 10v4a7.004 7.004 0 0 0 5.277 6.787c.412.104.802.292 1.102.592L12 22l.621-.621c.3-.3.69-.488 1.102-.592A7.003 7.003 0 0 0 19 14v-4",key:"1tgyif"}],["path",{d:"M12 4C8 4 4.5 6 4 8c-.243.97-.919 1.952-2 3 1.31-.082 1.972-.29 3-1 .54.92.982 1.356 2 2 1.452-.647 1.954-1.098 2.5-2 .595.995 1.151 1.427 2.5 2 1.31-.621 1.862-1.058 2.5-2 .629.977 1.162 1.423 2.5 2 1.209-.548 1.68-.967 2-2 1.032.916 1.683 1.157 3 1-1.297-1.036-1.758-2.03-2-3-.5-2-4-4-8-4Z",key:"tnsqj"}]]),pD=i("octagon-alert",[["path",{d:"M12 16h.01",key:"1drbdi"}],["path",{d:"M12 8v4",key:"1got3b"}],["path",{d:"M15.312 2a2 2 0 0 1 1.414.586l4.688 4.688A2 2 0 0 1 22 8.688v6.624a2 2 0 0 1-.586 1.414l-4.688 4.688a2 2 0 0 1-1.414.586H8.688a2 2 0 0 1-1.414-.586l-4.688-4.688A2 2 0 0 1 2 15.312V8.688a2 2 0 0 1 .586-1.414l4.688-4.688A2 2 0 0 1 8.688 2z",key:"1fd625"}]]),pE=i("octagon-minus",[["path",{d:"M2.586 16.726A2 2 0 0 1 2 15.312V8.688a2 2 0 0 1 .586-1.414l4.688-4.688A2 2 0 0 1 8.688 2h6.624a2 2 0 0 1 1.414.586l4.688 4.688A2 2 0 0 1 22 8.688v6.624a2 2 0 0 1-.586 1.414l-4.688 4.688a2 2 0 0 1-1.414.586H8.688a2 2 0 0 1-1.414-.586z",key:"2d38gg"}],["path",{d:"M8 12h8",key:"1wcyev"}]]),pF=i("octagon-pause",[["path",{d:"M10 15V9",key:"1lckn7"}],["path",{d:"M14 15V9",key:"1muqhk"}],["path",{d:"M2.586 16.726A2 2 0 0 1 2 15.312V8.688a2 2 0 0 1 .586-1.414l4.688-4.688A2 2 0 0 1 8.688 2h6.624a2 2 0 0 1 1.414.586l4.688 4.688A2 2 0 0 1 22 8.688v6.624a2 2 0 0 1-.586 1.414l-4.688 4.688a2 2 0 0 1-1.414.586H8.688a2 2 0 0 1-1.414-.586z",key:"2d38gg"}]]),pG=i("octagon-x",[["path",{d:"m15 9-6 6",key:"1uzhvr"}],["path",{d:"M2.586 16.726A2 2 0 0 1 2 15.312V8.688a2 2 0 0 1 .586-1.414l4.688-4.688A2 2 0 0 1 8.688 2h6.624a2 2 0 0 1 1.414.586l4.688 4.688A2 2 0 0 1 22 8.688v6.624a2 2 0 0 1-.586 1.414l-4.688 4.688a2 2 0 0 1-1.414.586H8.688a2 2 0 0 1-1.414-.586z",key:"2d38gg"}],["path",{d:"m9 9 6 6",key:"z0biqf"}]]),pH=i("octagon",[["path",{d:"M2.586 16.726A2 2 0 0 1 2 15.312V8.688a2 2 0 0 1 .586-1.414l4.688-4.688A2 2 0 0 1 8.688 2h6.624a2 2 0 0 1 1.414.586l4.688 4.688A2 2 0 0 1 22 8.688v6.624a2 2 0 0 1-.586 1.414l-4.688 4.688a2 2 0 0 1-1.414.586H8.688a2 2 0 0 1-1.414-.586z",key:"2d38gg"}]]),pI=i("omega",[["path",{d:"M3 20h4.5a.5.5 0 0 0 .5-.5v-.282a.52.52 0 0 0-.247-.437 8 8 0 1 1 8.494-.001.52.52 0 0 0-.247.438v.282a.5.5 0 0 0 .5.5H21",key:"1x94xo"}]]),pJ=i("option",[["path",{d:"M3 3h6l6 18h6",key:"ph9rgk"}],["path",{d:"M14 3h7",key:"16f0ms"}]]),pK=i("orbit",[["path",{d:"M20.341 6.484A10 10 0 0 1 10.266 21.85",key:"1enhxb"}],["path",{d:"M3.659 17.516A10 10 0 0 1 13.74 2.152",key:"1crzgf"}],["circle",{cx:"12",cy:"12",r:"3",key:"1v7zrd"}],["circle",{cx:"19",cy:"5",r:"2",key:"mhkx31"}],["circle",{cx:"5",cy:"19",r:"2",key:"v8kfzx"}]]),pL=i("origami",[["path",{d:"M12 12V4a1 1 0 0 1 1-1h6.297a1 1 0 0 1 .651 1.759l-4.696 4.025",key:"1bx4vc"}],["path",{d:"m12 21-7.414-7.414A2 2 0 0 1 4 12.172V6.415a1.002 1.002 0 0 1 1.707-.707L20 20.009",key:"1h3km6"}],["path",{d:"m12.214 3.381 8.414 14.966a1 1 0 0 1-.167 1.199l-1.168 1.163a1 1 0 0 1-.706.291H6.351a1 1 0 0 1-.625-.219L3.25 18.8a1 1 0 0 1 .631-1.781l4.165.027",key:"1hj4wg"}]]),pM=i("package-2",[["path",{d:"M12 3v6",key:"1holv5"}],["path",{d:"M16.76 3a2 2 0 0 1 1.8 1.1l2.23 4.479a2 2 0 0 1 .21.891V19a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V9.472a2 2 0 0 1 .211-.894L5.45 4.1A2 2 0 0 1 7.24 3z",key:"187q7i"}],["path",{d:"M3.054 9.013h17.893",key:"grwhos"}]]),pN=i("package-check",[["path",{d:"m16 16 2 2 4-4",key:"gfu2re"}],["path",{d:"M21 10V8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73l7 4a2 2 0 0 0 2 0l2-1.14",key:"e7tb2h"}],["path",{d:"m7.5 4.27 9 5.15",key:"1c824w"}],["polyline",{points:"3.29 7 12 12 20.71 7",key:"ousv84"}],["line",{x1:"12",x2:"12",y1:"22",y2:"12",key:"a4e8g8"}]]),pO=i("package-minus",[["path",{d:"M16 16h6",key:"100bgy"}],["path",{d:"M21 10V8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73l7 4a2 2 0 0 0 2 0l2-1.14",key:"e7tb2h"}],["path",{d:"m7.5 4.27 9 5.15",key:"1c824w"}],["polyline",{points:"3.29 7 12 12 20.71 7",key:"ousv84"}],["line",{x1:"12",x2:"12",y1:"22",y2:"12",key:"a4e8g8"}]]),pP=i("package-open",[["path",{d:"M12 22v-9",key:"x3hkom"}],["path",{d:"M15.17 2.21a1.67 1.67 0 0 1 1.63 0L21 4.57a1.93 1.93 0 0 1 0 3.36L8.82 14.79a1.655 1.655 0 0 1-1.64 0L3 12.43a1.93 1.93 0 0 1 0-3.36z",key:"2ntwy6"}],["path",{d:"M20 13v3.87a2.06 2.06 0 0 1-1.11 1.83l-6 3.08a1.93 1.93 0 0 1-1.78 0l-6-3.08A2.06 2.06 0 0 1 4 16.87V13",key:"1pmm1c"}],["path",{d:"M21 12.43a1.93 1.93 0 0 0 0-3.36L8.83 2.2a1.64 1.64 0 0 0-1.63 0L3 4.57a1.93 1.93 0 0 0 0 3.36l12.18 6.86a1.636 1.636 0 0 0 1.63 0z",key:"12ttoo"}]]),pQ=i("package-plus",[["path",{d:"M16 16h6",key:"100bgy"}],["path",{d:"M19 13v6",key:"85cyf1"}],["path",{d:"M21 10V8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73l7 4a2 2 0 0 0 2 0l2-1.14",key:"e7tb2h"}],["path",{d:"m7.5 4.27 9 5.15",key:"1c824w"}],["polyline",{points:"3.29 7 12 12 20.71 7",key:"ousv84"}],["line",{x1:"12",x2:"12",y1:"22",y2:"12",key:"a4e8g8"}]]),pR=i("package-search",[["path",{d:"M21 10V8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73l7 4a2 2 0 0 0 2 0l2-1.14",key:"e7tb2h"}],["path",{d:"m7.5 4.27 9 5.15",key:"1c824w"}],["polyline",{points:"3.29 7 12 12 20.71 7",key:"ousv84"}],["line",{x1:"12",x2:"12",y1:"22",y2:"12",key:"a4e8g8"}],["circle",{cx:"18.5",cy:"15.5",r:"2.5",key:"b5zd12"}],["path",{d:"M20.27 17.27 22 19",key:"1l4muz"}]]),pS=i("package-x",[["path",{d:"M21 10V8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73l7 4a2 2 0 0 0 2 0l2-1.14",key:"e7tb2h"}],["path",{d:"m7.5 4.27 9 5.15",key:"1c824w"}],["polyline",{points:"3.29 7 12 12 20.71 7",key:"ousv84"}],["line",{x1:"12",x2:"12",y1:"22",y2:"12",key:"a4e8g8"}],["path",{d:"m17 13 5 5m-5 0 5-5",key:"im3w4b"}]]),pT=i("package",[["path",{d:"M11 21.73a2 2 0 0 0 2 0l7-4A2 2 0 0 0 21 16V8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73z",key:"1a0edw"}],["path",{d:"M12 22V12",key:"d0xqtd"}],["polyline",{points:"3.29 7 12 12 20.71 7",key:"ousv84"}],["path",{d:"m7.5 4.27 9 5.15",key:"1c824w"}]]),pU=i("paint-bucket",[["path",{d:"m19 11-8-8-8.6 8.6a2 2 0 0 0 0 2.8l5.2 5.2c.8.8 2 .8 2.8 0L19 11Z",key:"irua1i"}],["path",{d:"m5 2 5 5",key:"1lls2c"}],["path",{d:"M2 13h15",key:"1hkzvu"}],["path",{d:"M22 20a2 2 0 1 1-4 0c0-1.6 1.7-2.4 2-4 .3 1.6 2 2.4 2 4Z",key:"xk76lq"}]]),pV=i("paint-roller",[["rect",{width:"16",height:"6",x:"2",y:"2",rx:"2",key:"jcyz7m"}],["path",{d:"M10 16v-2a2 2 0 0 1 2-2h8a2 2 0 0 0 2-2V7a2 2 0 0 0-2-2h-2",key:"1b9h7c"}],["rect",{width:"4",height:"6",x:"8",y:"16",rx:"1",key:"d6e7yl"}]]),pW=i("paintbrush-vertical",[["path",{d:"M10 2v2",key:"7u0qdc"}],["path",{d:"M14 2v4",key:"qmzblu"}],["path",{d:"M17 2a1 1 0 0 1 1 1v9H6V3a1 1 0 0 1 1-1z",key:"ycvu00"}],["path",{d:"M6 12a1 1 0 0 0-1 1v1a2 2 0 0 0 2 2h2a1 1 0 0 1 1 1v2.9a2 2 0 1 0 4 0V17a1 1 0 0 1 1-1h2a2 2 0 0 0 2-2v-1a1 1 0 0 0-1-1",key:"iw4wnp"}]]),pX=i("paintbrush",[["path",{d:"m14.622 17.897-10.68-2.913",key:"vj2p1u"}],["path",{d:"M18.376 2.622a1 1 0 1 1 3.002 3.002L17.36 9.643a.5.5 0 0 0 0 .707l.944.944a2.41 2.41 0 0 1 0 3.408l-.944.944a.5.5 0 0 1-.707 0L8.354 7.348a.5.5 0 0 1 0-.707l.944-.944a2.41 2.41 0 0 1 3.408 0l.944.944a.5.5 0 0 0 .707 0z",key:"18tc5c"}],["path",{d:"M9 8c-1.804 2.71-3.97 3.46-6.583 3.948a.507.507 0 0 0-.302.819l7.32 8.883a1 1 0 0 0 1.185.204C12.735 20.405 16 16.792 16 15",key:"ytzfxy"}]]),pY=i("palette",[["path",{d:"M12 22a1 1 0 0 1 0-20 10 9 0 0 1 10 9 5 5 0 0 1-5 5h-2.25a1.75 1.75 0 0 0-1.4 2.8l.3.4a1.75 1.75 0 0 1-1.4 2.8z",key:"e79jfc"}],["circle",{cx:"13.5",cy:"6.5",r:".5",fill:"currentColor",key:"1okk4w"}],["circle",{cx:"17.5",cy:"10.5",r:".5",fill:"currentColor",key:"f64h9f"}],["circle",{cx:"6.5",cy:"12.5",r:".5",fill:"currentColor",key:"qy21gx"}],["circle",{cx:"8.5",cy:"7.5",r:".5",fill:"currentColor",key:"fotxhn"}]]),pZ=i("panda",[["path",{d:"M11.25 17.25h1.5L12 18z",key:"1wmwwj"}],["path",{d:"m15 12 2 2",key:"k60wz4"}],["path",{d:"M18 6.5a.5.5 0 0 0-.5-.5",key:"1ch4h4"}],["path",{d:"M20.69 9.67a4.5 4.5 0 1 0-7.04-5.5 8.35 8.35 0 0 0-3.3 0 4.5 4.5 0 1 0-7.04 5.5C2.49 11.2 2 12.88 2 14.5 2 19.47 6.48 22 12 22s10-2.53 10-7.5c0-1.62-.48-3.3-1.3-4.83",key:"1c660l"}],["path",{d:"M6 6.5a.495.495 0 0 1 .5-.5",key:"eviuep"}],["path",{d:"m9 12-2 2",key:"326nkw"}]]),p$=i("panel-bottom-close",[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",key:"afitv7"}],["path",{d:"M3 15h18",key:"5xshup"}],["path",{d:"m15 8-3 3-3-3",key:"1oxy1z"}]]),p_=i("panel-bottom-dashed",[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",key:"afitv7"}],["path",{d:"M14 15h1",key:"171nev"}],["path",{d:"M19 15h2",key:"1vnucp"}],["path",{d:"M3 15h2",key:"8bym0q"}],["path",{d:"M9 15h1",key:"1tg3ks"}]]),p0=i("panel-bottom-open",[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",key:"afitv7"}],["path",{d:"M3 15h18",key:"5xshup"}],["path",{d:"m9 10 3-3 3 3",key:"11gsxs"}]]),p1=i("panel-bottom",[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",key:"afitv7"}],["path",{d:"M3 15h18",key:"5xshup"}]]),p2=i("panel-left-dashed",[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",key:"afitv7"}],["path",{d:"M9 14v1",key:"askpd8"}],["path",{d:"M9 19v2",key:"16tejx"}],["path",{d:"M9 3v2",key:"1noubl"}],["path",{d:"M9 9v1",key:"19ebxg"}]]),p3=i("panel-left-close",[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",key:"afitv7"}],["path",{d:"M9 3v18",key:"fh3hqa"}],["path",{d:"m16 15-3-3 3-3",key:"14y99z"}]]),p4=i("panel-left-open",[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",key:"afitv7"}],["path",{d:"M9 3v18",key:"fh3hqa"}],["path",{d:"m14 9 3 3-3 3",key:"8010ee"}]]),p5=i("panel-left",[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",key:"afitv7"}],["path",{d:"M9 3v18",key:"fh3hqa"}]]),p6=i("panel-right-close",[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",key:"afitv7"}],["path",{d:"M15 3v18",key:"14nvp0"}],["path",{d:"m8 9 3 3-3 3",key:"12hl5m"}]]),p7=i("panel-right-dashed",[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",key:"afitv7"}],["path",{d:"M15 14v1",key:"ilsfch"}],["path",{d:"M15 19v2",key:"1fst2f"}],["path",{d:"M15 3v2",key:"z204g4"}],["path",{d:"M15 9v1",key:"z2a8b1"}]]),p8=i("panel-right-open",[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",key:"afitv7"}],["path",{d:"M15 3v18",key:"14nvp0"}],["path",{d:"m10 15-3-3 3-3",key:"1pgupc"}]]),p9=i("panel-right",[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",key:"afitv7"}],["path",{d:"M15 3v18",key:"14nvp0"}]]),qa=i("panel-top-close",[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",key:"afitv7"}],["path",{d:"M3 9h18",key:"1pudct"}],["path",{d:"m9 16 3-3 3 3",key:"1idcnm"}]]),qb=i("panel-top-dashed",[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",key:"afitv7"}],["path",{d:"M14 9h1",key:"l0svgy"}],["path",{d:"M19 9h2",key:"te2zfg"}],["path",{d:"M3 9h2",key:"1h4ldw"}],["path",{d:"M9 9h1",key:"15jzuz"}]]),qc=i("panel-top-open",[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",key:"afitv7"}],["path",{d:"M3 9h18",key:"1pudct"}],["path",{d:"m15 14-3 3-3-3",key:"g215vf"}]]),qd=i("panel-top",[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",key:"afitv7"}],["path",{d:"M3 9h18",key:"1pudct"}]]),qe=i("panels-left-bottom",[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",key:"afitv7"}],["path",{d:"M9 3v18",key:"fh3hqa"}],["path",{d:"M9 15h12",key:"5ijen5"}]]),qf=i("panels-right-bottom",[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",key:"afitv7"}],["path",{d:"M3 15h12",key:"1wkqb3"}],["path",{d:"M15 3v18",key:"14nvp0"}]]),qg=i("panels-top-left",[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",key:"afitv7"}],["path",{d:"M3 9h18",key:"1pudct"}],["path",{d:"M9 21V9",key:"1oto5p"}]]),qh=i("paperclip",[["path",{d:"m16 6-8.414 8.586a2 2 0 0 0 2.829 2.829l8.414-8.586a4 4 0 1 0-5.657-5.657l-8.379 8.551a6 6 0 1 0 8.485 8.485l8.379-8.551",key:"1miecu"}]]),qi=i("parentheses",[["path",{d:"M8 21s-4-3-4-9 4-9 4-9",key:"uto9ud"}],["path",{d:"M16 3s4 3 4 9-4 9-4 9",key:"4w2vsq"}]]),qj=i("parking-meter",[["path",{d:"M11 15h2",key:"199qp6"}],["path",{d:"M12 12v3",key:"158kv8"}],["path",{d:"M12 19v3",key:"npa21l"}],["path",{d:"M15.282 19a1 1 0 0 0 .948-.68l2.37-6.988a7 7 0 1 0-13.2 0l2.37 6.988a1 1 0 0 0 .948.68z",key:"1jofit"}],["path",{d:"M9 9a3 3 0 1 1 6 0",key:"jdoeu8"}]]),qk=i("party-popper",[["path",{d:"M5.8 11.3 2 22l10.7-3.79",key:"gwxi1d"}],["path",{d:"M4 3h.01",key:"1vcuye"}],["path",{d:"M22 8h.01",key:"1mrtc2"}],["path",{d:"M15 2h.01",key:"1cjtqr"}],["path",{d:"M22 20h.01",key:"1mrys2"}],["path",{d:"m22 2-2.24.75a2.9 2.9 0 0 0-1.96 3.12c.1.86-.57 1.63-1.45 1.63h-.38c-.86 0-1.6.6-1.76 1.44L14 10",key:"hbicv8"}],["path",{d:"m22 13-.82-.33c-.86-.34-1.82.2-1.98 1.11c-.11.7-.72 1.22-1.43 1.22H17",key:"1i94pl"}],["path",{d:"m11 2 .33.82c.34.86-.2 1.82-1.11 1.98C9.52 4.9 9 5.52 9 6.23V7",key:"1cofks"}],["path",{d:"M11 13c1.93 1.93 2.83 4.17 2 5-.83.83-3.07-.07-5-2-1.93-1.93-2.83-4.17-2-5 .83-.83 3.07.07 5 2Z",key:"4kbmks"}]]),ql=i("pause",[["rect",{x:"14",y:"4",width:"4",height:"16",rx:"1",key:"zuxfzm"}],["rect",{x:"6",y:"4",width:"4",height:"16",rx:"1",key:"1okwgv"}]]),qm=i("paw-print",[["circle",{cx:"11",cy:"4",r:"2",key:"vol9p0"}],["circle",{cx:"18",cy:"8",r:"2",key:"17gozi"}],["circle",{cx:"20",cy:"16",r:"2",key:"1v9bxh"}],["path",{d:"M9 10a5 5 0 0 1 5 5v3.5a3.5 3.5 0 0 1-6.84 1.045Q6.52 17.48 4.46 16.84A3.5 3.5 0 0 1 5.5 10Z",key:"1ydw1z"}]]),qn=i("pc-case",[["rect",{width:"14",height:"20",x:"5",y:"2",rx:"2",key:"1uq1d7"}],["path",{d:"M15 14h.01",key:"1kp3bh"}],["path",{d:"M9 6h6",key:"dgm16u"}],["path",{d:"M9 10h6",key:"9gxzsh"}]]),qo=i("pen-off",[["path",{d:"m10 10-6.157 6.162a2 2 0 0 0-.5.833l-1.322 4.36a.5.5 0 0 0 .622.624l4.358-1.323a2 2 0 0 0 .83-.5L14 13.982",key:"bjo8r8"}],["path",{d:"m12.829 7.172 4.359-4.346a1 1 0 1 1 3.986 3.986l-4.353 4.353",key:"16h5ne"}],["path",{d:"m2 2 20 20",key:"1ooewy"}]]),qp=i("pen-line",[["path",{d:"M12 20h9",key:"t2du7b"}],["path",{d:"M16.376 3.622a1 1 0 0 1 3.002 3.002L7.368 18.635a2 2 0 0 1-.855.506l-2.872.838a.5.5 0 0 1-.62-.62l.838-2.872a2 2 0 0 1 .506-.854z",key:"1ykcvy"}]]),qq=i("pen-tool",[["path",{d:"M15.707 21.293a1 1 0 0 1-1.414 0l-1.586-1.586a1 1 0 0 1 0-1.414l5.586-5.586a1 1 0 0 1 1.414 0l1.586 1.586a1 1 0 0 1 0 1.414z",key:"nt11vn"}],["path",{d:"m18 13-1.375-6.874a1 1 0 0 0-.746-.776L3.235 2.028a1 1 0 0 0-1.207 1.207L5.35 15.879a1 1 0 0 0 .776.746L13 18",key:"15qc1e"}],["path",{d:"m2.3 2.3 7.286 7.286",key:"1wuzzi"}],["circle",{cx:"11",cy:"11",r:"2",key:"xmgehs"}]]),qr=i("pen",[["path",{d:"M21.174 6.812a1 1 0 0 0-3.986-3.987L3.842 16.174a2 2 0 0 0-.5.83l-1.321 4.352a.5.5 0 0 0 .623.622l4.353-1.32a2 2 0 0 0 .83-.497z",key:"1a8usu"}]]),qs=i("pencil-off",[["path",{d:"m10 10-6.157 6.162a2 2 0 0 0-.5.833l-1.322 4.36a.5.5 0 0 0 .622.624l4.358-1.323a2 2 0 0 0 .83-.5L14 13.982",key:"bjo8r8"}],["path",{d:"m12.829 7.172 4.359-4.346a1 1 0 1 1 3.986 3.986l-4.353 4.353",key:"16h5ne"}],["path",{d:"m15 5 4 4",key:"1mk7zo"}],["path",{d:"m2 2 20 20",key:"1ooewy"}]]),qt=i("pencil-line",[["path",{d:"M12 20h9",key:"t2du7b"}],["path",{d:"M16.376 3.622a1 1 0 0 1 3.002 3.002L7.368 18.635a2 2 0 0 1-.855.506l-2.872.838a.5.5 0 0 1-.62-.62l.838-2.872a2 2 0 0 1 .506-.854z",key:"1ykcvy"}],["path",{d:"m15 5 3 3",key:"1w25hb"}]]),qu=i("pencil-ruler",[["path",{d:"M13 7 8.7 2.7a2.41 2.41 0 0 0-3.4 0L2.7 5.3a2.41 2.41 0 0 0 0 3.4L7 13",key:"orapub"}],["path",{d:"m8 6 2-2",key:"115y1s"}],["path",{d:"m18 16 2-2",key:"ee94s4"}],["path",{d:"m17 11 4.3 4.3c.94.94.94 2.46 0 3.4l-2.6 2.6c-.94.94-2.46.94-3.4 0L11 17",key:"cfq27r"}],["path",{d:"M21.174 6.812a1 1 0 0 0-3.986-3.987L3.842 16.174a2 2 0 0 0-.5.83l-1.321 4.352a.5.5 0 0 0 .623.622l4.353-1.32a2 2 0 0 0 .83-.497z",key:"1a8usu"}],["path",{d:"m15 5 4 4",key:"1mk7zo"}]]),qv=i("pencil",[["path",{d:"M21.174 6.812a1 1 0 0 0-3.986-3.987L3.842 16.174a2 2 0 0 0-.5.83l-1.321 4.352a.5.5 0 0 0 .623.622l4.353-1.32a2 2 0 0 0 .83-.497z",key:"1a8usu"}],["path",{d:"m15 5 4 4",key:"1mk7zo"}]]),qw=i("pentagon",[["path",{d:"M10.83 2.38a2 2 0 0 1 2.34 0l8 5.74a2 2 0 0 1 .73 2.25l-3.04 9.26a2 2 0 0 1-1.9 1.37H7.04a2 2 0 0 1-1.9-1.37L2.1 10.37a2 2 0 0 1 .73-2.25z",key:"2hea0t"}]]),qx=i("percent",[["line",{x1:"19",x2:"5",y1:"5",y2:"19",key:"1x9vlm"}],["circle",{cx:"6.5",cy:"6.5",r:"2.5",key:"4mh3h7"}],["circle",{cx:"17.5",cy:"17.5",r:"2.5",key:"1mdrzq"}]]),qy=i("person-standing",[["circle",{cx:"12",cy:"5",r:"1",key:"gxeob9"}],["path",{d:"m9 20 3-6 3 6",key:"se2kox"}],["path",{d:"m6 8 6 2 6-2",key:"4o3us4"}],["path",{d:"M12 10v4",key:"1kjpxc"}]]),qz=i("philippine-peso",[["path",{d:"M20 11H4",key:"6ut86h"}],["path",{d:"M20 7H4",key:"zbl0bi"}],["path",{d:"M7 21V4a1 1 0 0 1 1-1h4a1 1 0 0 1 0 12H7",key:"1ana5r"}]]),qA=i("phone-call",[["path",{d:"M13 2a9 9 0 0 1 9 9",key:"1itnx2"}],["path",{d:"M13 6a5 5 0 0 1 5 5",key:"11nki7"}],["path",{d:"M13.832 16.568a1 1 0 0 0 1.213-.303l.355-.465A2 2 0 0 1 17 15h3a2 2 0 0 1 2 2v3a2 2 0 0 1-2 2A18 18 0 0 1 2 4a2 2 0 0 1 2-2h3a2 2 0 0 1 2 2v3a2 2 0 0 1-.8 1.6l-.468.351a1 1 0 0 0-.292 1.233 14 14 0 0 0 6.392 6.384",key:"9njp5v"}]]),qB=i("phone-forwarded",[["path",{d:"M14 6h8",key:"yd68k4"}],["path",{d:"m18 2 4 4-4 4",key:"pucp1d"}],["path",{d:"M13.832 16.568a1 1 0 0 0 1.213-.303l.355-.465A2 2 0 0 1 17 15h3a2 2 0 0 1 2 2v3a2 2 0 0 1-2 2A18 18 0 0 1 2 4a2 2 0 0 1 2-2h3a2 2 0 0 1 2 2v3a2 2 0 0 1-.8 1.6l-.468.351a1 1 0 0 0-.292 1.233 14 14 0 0 0 6.392 6.384",key:"9njp5v"}]]),qC=i("phone-incoming",[["path",{d:"M16 2v6h6",key:"1mfrl5"}],["path",{d:"m22 2-6 6",key:"6f0sa0"}],["path",{d:"M13.832 16.568a1 1 0 0 0 1.213-.303l.355-.465A2 2 0 0 1 17 15h3a2 2 0 0 1 2 2v3a2 2 0 0 1-2 2A18 18 0 0 1 2 4a2 2 0 0 1 2-2h3a2 2 0 0 1 2 2v3a2 2 0 0 1-.8 1.6l-.468.351a1 1 0 0 0-.292 1.233 14 14 0 0 0 6.392 6.384",key:"9njp5v"}]]),qD=i("phone-missed",[["path",{d:"m16 2 6 6",key:"1gw87d"}],["path",{d:"m22 2-6 6",key:"6f0sa0"}],["path",{d:"M13.832 16.568a1 1 0 0 0 1.213-.303l.355-.465A2 2 0 0 1 17 15h3a2 2 0 0 1 2 2v3a2 2 0 0 1-2 2A18 18 0 0 1 2 4a2 2 0 0 1 2-2h3a2 2 0 0 1 2 2v3a2 2 0 0 1-.8 1.6l-.468.351a1 1 0 0 0-.292 1.233 14 14 0 0 0 6.392 6.384",key:"9njp5v"}]]),qE=i("phone-off",[["path",{d:"M10.1 13.9a14 14 0 0 0 3.732 2.668 1 1 0 0 0 1.213-.303l.355-.465A2 2 0 0 1 17 15h3a2 2 0 0 1 2 2v3a2 2 0 0 1-2 2 18 18 0 0 1-12.728-5.272",key:"1wngk7"}],["path",{d:"M22 2 2 22",key:"y4kqgn"}],["path",{d:"M4.76 13.582A18 18 0 0 1 2 4a2 2 0 0 1 2-2h3a2 2 0 0 1 2 2v3a2 2 0 0 1-.8 1.6l-.468.351a1 1 0 0 0-.292 1.233 14 14 0 0 0 .244.473",key:"10hv5p"}]]),qF=i("phone-outgoing",[["path",{d:"m16 8 6-6",key:"oawc05"}],["path",{d:"M22 8V2h-6",key:"oqy2zc"}],["path",{d:"M13.832 16.568a1 1 0 0 0 1.213-.303l.355-.465A2 2 0 0 1 17 15h3a2 2 0 0 1 2 2v3a2 2 0 0 1-2 2A18 18 0 0 1 2 4a2 2 0 0 1 2-2h3a2 2 0 0 1 2 2v3a2 2 0 0 1-.8 1.6l-.468.351a1 1 0 0 0-.292 1.233 14 14 0 0 0 6.392 6.384",key:"9njp5v"}]]),qG=i("phone",[["path",{d:"M13.832 16.568a1 1 0 0 0 1.213-.303l.355-.465A2 2 0 0 1 17 15h3a2 2 0 0 1 2 2v3a2 2 0 0 1-2 2A18 18 0 0 1 2 4a2 2 0 0 1 2-2h3a2 2 0 0 1 2 2v3a2 2 0 0 1-.8 1.6l-.468.351a1 1 0 0 0-.292 1.233 14 14 0 0 0 6.392 6.384",key:"9njp5v"}]]),qH=i("pi",[["line",{x1:"9",x2:"9",y1:"4",y2:"20",key:"ovs5a5"}],["path",{d:"M4 7c0-1.7 1.3-3 3-3h13",key:"10pag4"}],["path",{d:"M18 20c-1.7 0-3-1.3-3-3V4",key:"1gaosr"}]]),qI=i("piano",[["path",{d:"M18.5 8c-1.4 0-2.6-.8-3.2-2A6.87 6.87 0 0 0 2 9v11a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2v-8.5C22 9.6 20.4 8 18.5 8",key:"lag0yf"}],["path",{d:"M2 14h20",key:"myj16y"}],["path",{d:"M6 14v4",key:"9ng0ue"}],["path",{d:"M10 14v4",key:"1v8uk5"}],["path",{d:"M14 14v4",key:"1tqops"}],["path",{d:"M18 14v4",key:"18uqwm"}]]),qJ=i("pickaxe",[["path",{d:"M14.531 12.469 6.619 20.38a1 1 0 1 1-3-3l7.912-7.912",key:"we99rg"}],["path",{d:"M15.686 4.314A12.5 12.5 0 0 0 5.461 2.958 1 1 0 0 0 5.58 4.71a22 22 0 0 1 6.318 3.393",key:"1w6hck"}],["path",{d:"M17.7 3.7a1 1 0 0 0-1.4 0l-4.6 4.6a1 1 0 0 0 0 1.4l2.6 2.6a1 1 0 0 0 1.4 0l4.6-4.6a1 1 0 0 0 0-1.4z",key:"15hgfx"}],["path",{d:"M19.686 8.314a12.501 12.501 0 0 1 1.356 10.225 1 1 0 0 1-1.751-.119 22 22 0 0 0-3.393-6.319",key:"452b4h"}]]),qK=i("picture-in-picture-2",[["path",{d:"M21 9V6a2 2 0 0 0-2-2H4a2 2 0 0 0-2 2v10c0 1.1.9 2 2 2h4",key:"daa4of"}],["rect",{width:"10",height:"7",x:"12",y:"13",rx:"2",key:"1nb8gs"}]]),qL=i("picture-in-picture",[["path",{d:"M2 10h6V4",key:"zwrco"}],["path",{d:"m2 4 6 6",key:"ug085t"}],["path",{d:"M21 10V7a2 2 0 0 0-2-2h-7",key:"git5jr"}],["path",{d:"M3 14v2a2 2 0 0 0 2 2h3",key:"1f7fh3"}],["rect",{x:"12",y:"14",width:"10",height:"7",rx:"1",key:"1wjs3o"}]]),qM=i("piggy-bank",[["path",{d:"M11 17h3v2a1 1 0 0 0 1 1h2a1 1 0 0 0 1-1v-3a3.16 3.16 0 0 0 2-2h1a1 1 0 0 0 1-1v-2a1 1 0 0 0-1-1h-1a5 5 0 0 0-2-4V3a4 4 0 0 0-3.2 1.6l-.3.4H11a6 6 0 0 0-6 6v1a5 5 0 0 0 2 4v3a1 1 0 0 0 1 1h2a1 1 0 0 0 1-1z",key:"1piglc"}],["path",{d:"M16 10h.01",key:"1m94wz"}],["path",{d:"M2 8v1a2 2 0 0 0 2 2h1",key:"1env43"}]]),qN=i("pilcrow-left",[["path",{d:"M14 3v11",key:"mlfb7b"}],["path",{d:"M14 9h-3a3 3 0 0 1 0-6h9",key:"1ulc19"}],["path",{d:"M18 3v11",key:"1phi0r"}],["path",{d:"M22 18H2l4-4",key:"yt65j9"}],["path",{d:"m6 22-4-4",key:"6jgyf5"}]]),qO=i("pilcrow-right",[["path",{d:"M10 3v11",key:"o3l5kj"}],["path",{d:"M10 9H7a1 1 0 0 1 0-6h8",key:"1wb1nc"}],["path",{d:"M14 3v11",key:"mlfb7b"}],["path",{d:"m18 14 4 4H2",key:"4r8io1"}],["path",{d:"m22 18-4 4",key:"1hjjrd"}]]),qP=i("pilcrow",[["path",{d:"M13 4v16",key:"8vvj80"}],["path",{d:"M17 4v16",key:"7dpous"}],["path",{d:"M19 4H9.5a4.5 4.5 0 0 0 0 9H13",key:"sh4n9v"}]]),qQ=i("pill-bottle",[["path",{d:"M18 11h-4a1 1 0 0 0-1 1v5a1 1 0 0 0 1 1h4",key:"17ldeb"}],["path",{d:"M6 7v13a2 2 0 0 0 2 2h8a2 2 0 0 0 2-2V7",key:"nc37y6"}],["rect",{width:"16",height:"5",x:"4",y:"2",rx:"1",key:"3jeezo"}]]),qR=i("pill",[["path",{d:"m10.5 20.5 10-10a4.95 4.95 0 1 0-7-7l-10 10a4.95 4.95 0 1 0 7 7Z",key:"wa1lgi"}],["path",{d:"m8.5 8.5 7 7",key:"rvfmvr"}]]),qS=i("pin-off",[["path",{d:"M12 17v5",key:"bb1du9"}],["path",{d:"M15 9.34V7a1 1 0 0 1 1-1 2 2 0 0 0 0-4H7.89",key:"znwnzq"}],["path",{d:"m2 2 20 20",key:"1ooewy"}],["path",{d:"M9 9v1.76a2 2 0 0 1-1.11 1.79l-1.78.9A2 2 0 0 0 5 15.24V16a1 1 0 0 0 1 1h11",key:"c9qhm2"}]]),qT=i("pin",[["path",{d:"M12 17v5",key:"bb1du9"}],["path",{d:"M9 10.76a2 2 0 0 1-1.11 1.79l-1.78.9A2 2 0 0 0 5 15.24V16a1 1 0 0 0 1 1h12a1 1 0 0 0 1-1v-.76a2 2 0 0 0-1.11-1.79l-1.78-.9A2 2 0 0 1 15 10.76V7a1 1 0 0 1 1-1 2 2 0 0 0 0-4H8a2 2 0 0 0 0 4 1 1 0 0 1 1 1z",key:"1nkz8b"}]]),qU=i("pipette",[["path",{d:"m12 9-8.414 8.414A2 2 0 0 0 3 18.828v1.344a2 2 0 0 1-.586 1.414A2 2 0 0 1 3.828 21h1.344a2 2 0 0 0 1.414-.586L15 12",key:"1y3wsu"}],["path",{d:"m18 9 .4.4a1 1 0 1 1-3 3l-3.8-3.8a1 1 0 1 1 3-3l.4.4 3.4-3.4a1 1 0 1 1 3 3z",key:"110lr1"}],["path",{d:"m2 22 .414-.414",key:"jhxm08"}]]),qV=i("pizza",[["path",{d:"m12 14-1 1",key:"11onhr"}],["path",{d:"m13.75 18.25-1.25 1.42",key:"1yisr3"}],["path",{d:"M17.775 5.654a15.68 15.68 0 0 0-12.121 12.12",key:"1qtqk6"}],["path",{d:"M18.8 9.3a1 1 0 0 0 2.1 7.7",key:"fbbbr2"}],["path",{d:"M21.964 20.732a1 1 0 0 1-1.232 1.232l-18-5a1 1 0 0 1-.695-1.232A19.68 19.68 0 0 1 15.732 2.037a1 1 0 0 1 1.232.695z",key:"1hyfdd"}]]),qW=i("plane-landing",[["path",{d:"M2 22h20",key:"272qi7"}],["path",{d:"M3.77 10.77 2 9l2-4.5 1.1.55c.55.28.9.84.9 1.45s.35 1.17.9 1.45L8 8.5l3-6 1.05.53a2 2 0 0 1 1.09 1.52l.72 5.4a2 2 0 0 0 1.09 1.52l4.4 2.2c.42.22.78.55 1.01.96l.6 1.03c.49.88-.06 1.98-1.06 2.1l-1.18.15c-.47.06-.95-.02-1.37-.24L4.29 11.15a2 2 0 0 1-.52-.38Z",key:"1ma21e"}]]),qX=i("plane-takeoff",[["path",{d:"M2 22h20",key:"272qi7"}],["path",{d:"M6.36 17.4 4 17l-2-4 1.1-.55a2 2 0 0 1 1.8 0l.17.1a2 2 0 0 0 1.8 0L8 12 5 6l.9-.45a2 2 0 0 1 2.09.2l4.02 3a2 2 0 0 0 2.1.2l4.19-2.06a2.41 2.41 0 0 1 1.73-.17L21 7a1.4 1.4 0 0 1 .87 1.99l-.38.76c-.23.46-.6.84-1.07 1.08L7.58 17.2a2 2 0 0 1-1.22.18Z",key:"fkigj9"}]]),qY=i("plane",[["path",{d:"M17.8 19.2 16 11l3.5-3.5C21 6 21.5 4 21 3c-1-.5-3 0-4.5 1.5L13 8 4.8 6.2c-.5-.1-.9.1-1.1.5l-.3.5c-.2.5-.1 1 .3 1.3L9 12l-2 3H4l-1 1 3 2 2 3 1-1v-3l3-2 3.5 5.3c.3.4.8.5 1.3.3l.5-.2c.4-.3.6-.7.5-1.2z",key:"1v9wt8"}]]),qZ=i("play",[["polygon",{points:"6 3 20 12 6 21 6 3",key:"1oa8hb"}]]),q$=i("plug-2",[["path",{d:"M9 2v6",key:"17ngun"}],["path",{d:"M15 2v6",key:"s7yy2p"}],["path",{d:"M12 17v5",key:"bb1du9"}],["path",{d:"M5 8h14",key:"pcz4l3"}],["path",{d:"M6 11V8h12v3a6 6 0 1 1-12 0Z",key:"wtfw2c"}]]),q_=i("plug-zap",[["path",{d:"M6.3 20.3a2.4 2.4 0 0 0 3.4 0L12 18l-6-6-2.3 2.3a2.4 2.4 0 0 0 0 3.4Z",key:"goz73y"}],["path",{d:"m2 22 3-3",key:"19mgm9"}],["path",{d:"M7.5 13.5 10 11",key:"7xgeeb"}],["path",{d:"M10.5 16.5 13 14",key:"10btkg"}],["path",{d:"m18 3-4 4h6l-4 4",key:"16psg9"}]]),q0=i("plug",[["path",{d:"M12 22v-5",key:"1ega77"}],["path",{d:"M9 8V2",key:"14iosj"}],["path",{d:"M15 8V2",key:"18g5xt"}],["path",{d:"M18 8v5a4 4 0 0 1-4 4h-4a4 4 0 0 1-4-4V8Z",key:"osxo6l"}]]),q1=i("plus",[["path",{d:"M5 12h14",key:"1ays0h"}],["path",{d:"M12 5v14",key:"s699le"}]]),q2=i("pocket",[["path",{d:"M20 3a2 2 0 0 1 2 2v6a1 1 0 0 1-20 0V5a2 2 0 0 1 2-2z",key:"1uodqw"}],["path",{d:"m8 10 4 4 4-4",key:"1mxd5q"}]]),q3=i("pocket-knife",[["path",{d:"M3 2v1c0 1 2 1 2 2S3 6 3 7s2 1 2 2-2 1-2 2 2 1 2 2",key:"19w3oe"}],["path",{d:"M18 6h.01",key:"1v4wsw"}],["path",{d:"M6 18h.01",key:"uhywen"}],["path",{d:"M20.83 8.83a4 4 0 0 0-5.66-5.66l-12 12a4 4 0 1 0 5.66 5.66Z",key:"6fykxj"}],["path",{d:"M18 11.66V22a4 4 0 0 0 4-4V6",key:"1utzek"}]]),q4=i("podcast",[["path",{d:"M16.85 18.58a9 9 0 1 0-9.7 0",key:"d71mpg"}],["path",{d:"M8 14a5 5 0 1 1 8 0",key:"fc81rn"}],["circle",{cx:"12",cy:"11",r:"1",key:"1gvufo"}],["path",{d:"M13 17a1 1 0 1 0-2 0l.5 4.5a.5.5 0 1 0 1 0Z",key:"za5kbj"}]]),q5=i("pointer-off",[["path",{d:"M10 4.5V4a2 2 0 0 0-2.41-1.957",key:"jsi14n"}],["path",{d:"M13.9 8.4a2 2 0 0 0-1.26-1.295",key:"hirc7f"}],["path",{d:"M21.7 16.2A8 8 0 0 0 22 14v-3a2 2 0 1 0-4 0v-1a2 2 0 0 0-3.63-1.158",key:"1jxb2e"}],["path",{d:"m7 15-1.8-1.8a2 2 0 0 0-2.79 2.86L6 19.7a7.74 7.74 0 0 0 6 2.3h2a8 8 0 0 0 5.657-2.343",key:"10r7hm"}],["path",{d:"M6 6v8",key:"tv5xkp"}],["path",{d:"m2 2 20 20",key:"1ooewy"}]]),q6=i("pointer",[["path",{d:"M22 14a8 8 0 0 1-8 8",key:"56vcr3"}],["path",{d:"M18 11v-1a2 2 0 0 0-2-2a2 2 0 0 0-2 2",key:"1agjmk"}],["path",{d:"M14 10V9a2 2 0 0 0-2-2a2 2 0 0 0-2 2v1",key:"wdbh2u"}],["path",{d:"M10 9.5V4a2 2 0 0 0-2-2a2 2 0 0 0-2 2v10",key:"1ibuk9"}],["path",{d:"M18 11a2 2 0 1 1 4 0v3a8 8 0 0 1-8 8h-2c-2.8 0-4.5-.86-5.99-2.34l-3.6-3.6a2 2 0 0 1 2.83-2.82L7 15",key:"g6ys72"}]]),q7=i("popcorn",[["path",{d:"M18 8a2 2 0 0 0 0-4 2 2 0 0 0-4 0 2 2 0 0 0-4 0 2 2 0 0 0-4 0 2 2 0 0 0 0 4",key:"10td1f"}],["path",{d:"M10 22 9 8",key:"yjptiv"}],["path",{d:"m14 22 1-14",key:"8jwc8b"}],["path",{d:"M20 8c.5 0 .9.4.8 1l-2.6 12c-.1.5-.7 1-1.2 1H7c-.6 0-1.1-.4-1.2-1L3.2 9c-.1-.6.3-1 .8-1Z",key:"1qo33t"}]]),q8=i("popsicle",[["path",{d:"M18.6 14.4c.8-.8.8-2 0-2.8l-8.1-8.1a4.95 4.95 0 1 0-7.1 7.1l8.1 8.1c.9.7 2.1.7 2.9-.1Z",key:"1o68ps"}],["path",{d:"m22 22-5.5-5.5",key:"17o70y"}]]),q9=i("pound-sterling",[["path",{d:"M18 7c0-5.333-8-5.333-8 0",key:"1prm2n"}],["path",{d:"M10 7v14",key:"18tmcs"}],["path",{d:"M6 21h12",key:"4dkmi1"}],["path",{d:"M6 13h10",key:"ybwr4a"}]]),ra=i("power-off",[["path",{d:"M18.36 6.64A9 9 0 0 1 20.77 15",key:"dxknvb"}],["path",{d:"M6.16 6.16a9 9 0 1 0 12.68 12.68",key:"1x7qb5"}],["path",{d:"M12 2v4",key:"3427ic"}],["path",{d:"m2 2 20 20",key:"1ooewy"}]]),rb=i("power",[["path",{d:"M12 2v10",key:"mnfbl"}],["path",{d:"M18.4 6.6a9 9 0 1 1-12.77.04",key:"obofu9"}]]),rc=i("presentation",[["path",{d:"M2 3h20",key:"91anmk"}],["path",{d:"M21 3v11a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V3",key:"2k9sn8"}],["path",{d:"m7 21 5-5 5 5",key:"bip4we"}]]),rd=i("printer-check",[["path",{d:"M13.5 22H7a1 1 0 0 1-1-1v-6a1 1 0 0 1 1-1h10a1 1 0 0 1 1 1v.5",key:"qeb09x"}],["path",{d:"m16 19 2 2 4-4",key:"1b14m6"}],["path",{d:"M6 18H4a2 2 0 0 1-2-2v-5a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2v2",key:"1md90i"}],["path",{d:"M6 9V3a1 1 0 0 1 1-1h10a1 1 0 0 1 1 1v6",key:"1itne7"}]]),re=i("printer",[["path",{d:"M6 18H4a2 2 0 0 1-2-2v-5a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2v5a2 2 0 0 1-2 2h-2",key:"143wyd"}],["path",{d:"M6 9V3a1 1 0 0 1 1-1h10a1 1 0 0 1 1 1v6",key:"1itne7"}],["rect",{x:"6",y:"14",width:"12",height:"8",rx:"1",key:"1ue0tg"}]]),rf=i("projector",[["path",{d:"M5 7 3 5",key:"1yys58"}],["path",{d:"M9 6V3",key:"1ptz9u"}],["path",{d:"m13 7 2-2",key:"1w3vmq"}],["circle",{cx:"9",cy:"13",r:"3",key:"1mma13"}],["path",{d:"M11.83 12H20a2 2 0 0 1 2 2v4a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2v-4a2 2 0 0 1 2-2h2.17",key:"2frwzc"}],["path",{d:"M16 16h2",key:"dnq2od"}]]),rg=i("proportions",[["rect",{width:"20",height:"16",x:"2",y:"4",rx:"2",key:"18n3k1"}],["path",{d:"M12 9v11",key:"1fnkrn"}],["path",{d:"M2 9h13a2 2 0 0 1 2 2v9",key:"11z3ex"}]]),rh=i("puzzle",[["path",{d:"M15.39 4.39a1 1 0 0 0 1.68-.474 2.5 2.5 0 1 1 3.014 3.015 1 1 0 0 0-.474 1.68l1.683 1.682a2.414 2.414 0 0 1 0 3.414L19.61 15.39a1 1 0 0 1-1.68-.474 2.5 2.5 0 1 0-3.014 3.015 1 1 0 0 1 .474 1.68l-1.683 1.682a2.414 2.414 0 0 1-3.414 0L8.61 19.61a1 1 0 0 0-1.68.474 2.5 2.5 0 1 1-3.014-3.015 1 1 0 0 0 .474-1.68l-1.683-1.682a2.414 2.414 0 0 1 0-3.414L4.39 8.61a1 1 0 0 1 1.68.474 2.5 2.5 0 1 0 3.014-3.015 1 1 0 0 1-.474-1.68l1.683-1.682a2.414 2.414 0 0 1 3.414 0z",key:"w46dr5"}]]),ri=i("pyramid",[["path",{d:"M2.5 16.88a1 1 0 0 1-.32-1.43l9-13.02a1 1 0 0 1 1.64 0l9 13.01a1 1 0 0 1-.32 1.44l-8.51 4.86a2 2 0 0 1-1.98 0Z",key:"aenxs0"}],["path",{d:"M12 2v20",key:"t6zp3m"}]]),rj=i("qr-code",[["rect",{width:"5",height:"5",x:"3",y:"3",rx:"1",key:"1tu5fj"}],["rect",{width:"5",height:"5",x:"16",y:"3",rx:"1",key:"1v8r4q"}],["rect",{width:"5",height:"5",x:"3",y:"16",rx:"1",key:"1x03jg"}],["path",{d:"M21 16h-3a2 2 0 0 0-2 2v3",key:"177gqh"}],["path",{d:"M21 21v.01",key:"ents32"}],["path",{d:"M12 7v3a2 2 0 0 1-2 2H7",key:"8crl2c"}],["path",{d:"M3 12h.01",key:"nlz23k"}],["path",{d:"M12 3h.01",key:"n36tog"}],["path",{d:"M12 16v.01",key:"133mhm"}],["path",{d:"M16 12h1",key:"1slzba"}],["path",{d:"M21 12v.01",key:"1lwtk9"}],["path",{d:"M12 21v-1",key:"1880an"}]]),rk=i("quote",[["path",{d:"M16 3a2 2 0 0 0-2 2v6a2 2 0 0 0 2 2 1 1 0 0 1 1 1v1a2 2 0 0 1-2 2 1 1 0 0 0-1 1v2a1 1 0 0 0 1 1 6 6 0 0 0 6-6V5a2 2 0 0 0-2-2z",key:"rib7q0"}],["path",{d:"M5 3a2 2 0 0 0-2 2v6a2 2 0 0 0 2 2 1 1 0 0 1 1 1v1a2 2 0 0 1-2 2 1 1 0 0 0-1 1v2a1 1 0 0 0 1 1 6 6 0 0 0 6-6V5a2 2 0 0 0-2-2z",key:"1ymkrd"}]]),rl=i("rabbit",[["path",{d:"M13 16a3 3 0 0 1 2.24 5",key:"1epib5"}],["path",{d:"M18 12h.01",key:"yjnet6"}],["path",{d:"M18 21h-8a4 4 0 0 1-4-4 7 7 0 0 1 7-7h.2L9.6 6.4a1 1 0 1 1 2.8-2.8L15.8 7h.2c3.3 0 6 2.7 6 6v1a2 2 0 0 1-2 2h-1a3 3 0 0 0-3 3",key:"ue9ozu"}],["path",{d:"M20 8.54V4a2 2 0 1 0-4 0v3",key:"49iql8"}],["path",{d:"M7.612 12.524a3 3 0 1 0-1.6 4.3",key:"1e33i0"}]]),rm=i("radar",[["path",{d:"M19.07 4.93A10 10 0 0 0 6.99 3.34",key:"z3du51"}],["path",{d:"M4 6h.01",key:"oypzma"}],["path",{d:"M2.29 9.62A10 10 0 1 0 21.31 8.35",key:"qzzz0"}],["path",{d:"M16.24 7.76A6 6 0 1 0 8.23 16.67",key:"1yjesh"}],["path",{d:"M12 18h.01",key:"mhygvu"}],["path",{d:"M17.99 11.66A6 6 0 0 1 15.77 16.67",key:"1u2y91"}],["circle",{cx:"12",cy:"12",r:"2",key:"1c9p78"}],["path",{d:"m13.41 10.59 5.66-5.66",key:"mhq4k0"}]]),rn=i("radical",[["path",{d:"M3 12h3.28a1 1 0 0 1 .948.684l2.298 7.934a.5.5 0 0 0 .96-.044L13.82 4.771A1 1 0 0 1 14.792 4H21",key:"1mqj8i"}]]),ro=i("radiation",[["path",{d:"M12 12h.01",key:"1mp3jc"}],["path",{d:"M14 15.4641a4 4 0 0 1-4 0L7.52786 19.74597 A 1 1 0 0 0 7.99303 21.16211 10 10 0 0 0 16.00697 21.16211 1 1 0 0 0 16.47214 19.74597z",key:"1y4lzb"}],["path",{d:"M16 12a4 4 0 0 0-2-3.464l2.472-4.282a1 1 0 0 1 1.46-.305 10 10 0 0 1 4.006 6.94A1 1 0 0 1 21 12z",key:"163ggk"}],["path",{d:"M8 12a4 4 0 0 1 2-3.464L7.528 4.254a1 1 0 0 0-1.46-.305 10 10 0 0 0-4.006 6.94A1 1 0 0 0 3 12z",key:"1l9i0b"}]]),rp=i("radio-receiver",[["path",{d:"M5 16v2",key:"g5qcv5"}],["path",{d:"M19 16v2",key:"1gbaio"}],["rect",{width:"20",height:"8",x:"2",y:"8",rx:"2",key:"vjsjur"}],["path",{d:"M18 12h.01",key:"yjnet6"}]]),rq=i("radio-tower",[["path",{d:"M4.9 16.1C1 12.2 1 5.8 4.9 1.9",key:"s0qx1y"}],["path",{d:"M7.8 4.7a6.14 6.14 0 0 0-.8 7.5",key:"1idnkw"}],["circle",{cx:"12",cy:"9",r:"2",key:"1092wv"}],["path",{d:"M16.2 4.8c2 2 2.26 5.11.8 7.47",key:"ojru2q"}],["path",{d:"M19.1 1.9a9.96 9.96 0 0 1 0 14.1",key:"rhi7fg"}],["path",{d:"M9.5 18h5",key:"mfy3pd"}],["path",{d:"m8 22 4-11 4 11",key:"25yftu"}]]),rr=i("radius",[["path",{d:"M20.34 17.52a10 10 0 1 0-2.82 2.82",key:"fydyku"}],["circle",{cx:"19",cy:"19",r:"2",key:"17f5cg"}],["path",{d:"m13.41 13.41 4.18 4.18",key:"1gqbwc"}],["circle",{cx:"12",cy:"12",r:"2",key:"1c9p78"}]]),rs=i("radio",[["path",{d:"M16.247 7.761a6 6 0 0 1 0 8.478",key:"1fwjs5"}],["path",{d:"M19.075 4.933a10 10 0 0 1 0 14.134",key:"ehdyv1"}],["path",{d:"M4.925 19.067a10 10 0 0 1 0-14.134",key:"1q22gi"}],["path",{d:"M7.753 16.239a6 6 0 0 1 0-8.478",key:"r2q7qm"}],["circle",{cx:"12",cy:"12",r:"2",key:"1c9p78"}]]),rt=i("rail-symbol",[["path",{d:"M5 15h14",key:"m0yey3"}],["path",{d:"M5 9h14",key:"7tsvo6"}],["path",{d:"m14 20-5-5 6-6-5-5",key:"1jo42i"}]]),ru=i("rainbow",[["path",{d:"M22 17a10 10 0 0 0-20 0",key:"ozegv"}],["path",{d:"M6 17a6 6 0 0 1 12 0",key:"5giftw"}],["path",{d:"M10 17a2 2 0 0 1 4 0",key:"gnsikk"}]]),rv=i("rat",[["path",{d:"M13 22H4a2 2 0 0 1 0-4h12",key:"bt3f23"}],["path",{d:"M13.236 18a3 3 0 0 0-2.2-5",key:"1tbvmo"}],["path",{d:"M16 9h.01",key:"1bdo4e"}],["path",{d:"M16.82 3.94a3 3 0 1 1 3.237 4.868l1.815 2.587a1.5 1.5 0 0 1-1.5 2.1l-2.872-.453a3 3 0 0 0-3.5 3",key:"9ch7kn"}],["path",{d:"M17 4.988a3 3 0 1 0-5.2 2.052A7 7 0 0 0 4 14.015 4 4 0 0 0 8 18",key:"3s7e9i"}]]),rw=i("ratio",[["rect",{width:"12",height:"20",x:"6",y:"2",rx:"2",key:"1oxtiu"}],["rect",{width:"20",height:"12",x:"2",y:"6",rx:"2",key:"9lu3g6"}]]),rx=i("receipt-euro",[["path",{d:"M4 2v20l2-1 2 1 2-1 2 1 2-1 2 1 2-1 2 1V2l-2 1-2-1-2 1-2-1-2 1-2-1-2 1Z",key:"q3az6g"}],["path",{d:"M8 12h5",key:"1g6qi8"}],["path",{d:"M16 9.5a4 4 0 1 0 0 5.2",key:"b2px4r"}]]),ry=i("receipt-cent",[["path",{d:"M4 2v20l2-1 2 1 2-1 2 1 2-1 2 1 2-1 2 1V2l-2 1-2-1-2 1-2-1-2 1-2-1-2 1Z",key:"q3az6g"}],["path",{d:"M12 6.5v11",key:"ecfhkf"}],["path",{d:"M15 9.4a4 4 0 1 0 0 5.2",key:"1makmb"}]]),rz=i("receipt-indian-rupee",[["path",{d:"M4 2v20l2-1 2 1 2-1 2 1 2-1 2 1 2-1 2 1V2l-2 1-2-1-2 1-2-1-2 1-2-1-2 1Z",key:"q3az6g"}],["path",{d:"M8 7h8",key:"i86dvs"}],["path",{d:"M12 17.5 8 15h1a4 4 0 0 0 0-8",key:"grpkl4"}],["path",{d:"M8 11h8",key:"vwpz6n"}]]),rA=i("receipt-japanese-yen",[["path",{d:"M4 2v20l2-1 2 1 2-1 2 1 2-1 2 1 2-1 2 1V2l-2 1-2-1-2 1-2-1-2 1-2-1-2 1Z",key:"q3az6g"}],["path",{d:"m12 10 3-3",key:"1mc12w"}],["path",{d:"m9 7 3 3v7.5",key:"39i0xv"}],["path",{d:"M9 11h6",key:"1fldmi"}],["path",{d:"M9 15h6",key:"cctwl0"}]]),rB=i("receipt-pound-sterling",[["path",{d:"M4 2v20l2-1 2 1 2-1 2 1 2-1 2 1 2-1 2 1V2l-2 1-2-1-2 1-2-1-2 1-2-1-2 1Z",key:"q3az6g"}],["path",{d:"M8 13h5",key:"1k9z8w"}],["path",{d:"M10 17V9.5a2.5 2.5 0 0 1 5 0",key:"1dzgp0"}],["path",{d:"M8 17h7",key:"8mjdqu"}]]),rC=i("receipt-russian-ruble",[["path",{d:"M4 2v20l2-1 2 1 2-1 2 1 2-1 2 1 2-1 2 1V2l-2 1-2-1-2 1-2-1-2 1-2-1-2 1Z",key:"q3az6g"}],["path",{d:"M8 15h5",key:"vxg57a"}],["path",{d:"M8 11h5a2 2 0 1 0 0-4h-3v10",key:"1usi5u"}]]),rD=i("receipt-swiss-franc",[["path",{d:"M4 2v20l2-1 2 1 2-1 2 1 2-1 2 1 2-1 2 1V2l-2 1-2-1-2 1-2-1-2 1-2-1-2 1Z",key:"q3az6g"}],["path",{d:"M10 17V7h5",key:"k7jq18"}],["path",{d:"M10 11h4",key:"1i0mka"}],["path",{d:"M8 15h5",key:"vxg57a"}]]),rE=i("receipt-text",[["path",{d:"M4 2v20l2-1 2 1 2-1 2 1 2-1 2 1 2-1 2 1V2l-2 1-2-1-2 1-2-1-2 1-2-1-2 1Z",key:"q3az6g"}],["path",{d:"M14 8H8",key:"1l3xfs"}],["path",{d:"M16 12H8",key:"1fr5h0"}],["path",{d:"M13 16H8",key:"wsln4y"}]]),rF=i("rectangle-circle",[["path",{d:"M14 4v16H3a1 1 0 0 1-1-1V5a1 1 0 0 1 1-1z",key:"1m5n7q"}],["circle",{cx:"14",cy:"12",r:"8",key:"1pag6k"}]]),rG=i("receipt",[["path",{d:"M4 2v20l2-1 2 1 2-1 2 1 2-1 2 1 2-1 2 1V2l-2 1-2-1-2 1-2-1-2 1-2-1-2 1Z",key:"q3az6g"}],["path",{d:"M16 8h-6a2 2 0 1 0 0 4h4a2 2 0 1 1 0 4H8",key:"1h4pet"}],["path",{d:"M12 17.5v-11",key:"1jc1ny"}]]),rH=i("rectangle-ellipsis",[["rect",{width:"20",height:"12",x:"2",y:"6",rx:"2",key:"9lu3g6"}],["path",{d:"M12 12h.01",key:"1mp3jc"}],["path",{d:"M17 12h.01",key:"1m0b6t"}],["path",{d:"M7 12h.01",key:"eqddd0"}]]),rI=i("rectangle-goggles",[["path",{d:"M20 6a2 2 0 0 1 2 2v8a2 2 0 0 1-2 2h-4a2 2 0 0 1-1.6-.8l-1.6-2.13a1 1 0 0 0-1.6 0L9.6 17.2A2 2 0 0 1 8 18H4a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2z",key:"d5y1f"}]]),rJ=i("rectangle-horizontal",[["rect",{width:"20",height:"12",x:"2",y:"6",rx:"2",key:"9lu3g6"}]]),rK=i("recycle",[["path",{d:"M7 19H4.815a1.83 1.83 0 0 1-1.57-.881 1.785 1.785 0 0 1-.004-1.784L7.196 9.5",key:"x6z5xu"}],["path",{d:"M11 19h8.203a1.83 1.83 0 0 0 1.556-.89 1.784 1.784 0 0 0 0-1.775l-1.226-2.12",key:"1x4zh5"}],["path",{d:"m14 16-3 3 3 3",key:"f6jyew"}],["path",{d:"M8.293 13.596 7.196 9.5 3.1 10.598",key:"wf1obh"}],["path",{d:"m9.344 5.811 1.093-1.892A1.83 1.83 0 0 1 11.985 3a1.784 1.784 0 0 1 1.546.888l3.943 6.843",key:"9tzpgr"}],["path",{d:"m13.378 9.633 4.096 1.098 1.097-4.096",key:"1oe83g"}]]),rL=i("rectangle-vertical",[["rect",{width:"12",height:"20",x:"6",y:"2",rx:"2",key:"1oxtiu"}]]),rM=i("redo-dot",[["circle",{cx:"12",cy:"17",r:"1",key:"1ixnty"}],["path",{d:"M21 7v6h-6",key:"3ptur4"}],["path",{d:"M3 17a9 9 0 0 1 9-9 9 9 0 0 1 6 2.3l3 2.7",key:"1kgawr"}]]),rN=i("redo-2",[["path",{d:"m15 14 5-5-5-5",key:"12vg1m"}],["path",{d:"M20 9H9.5A5.5 5.5 0 0 0 4 14.5A5.5 5.5 0 0 0 9.5 20H13",key:"6uklza"}]]),rO=i("redo",[["path",{d:"M21 7v6h-6",key:"3ptur4"}],["path",{d:"M3 17a9 9 0 0 1 9-9 9 9 0 0 1 6 2.3l3 2.7",key:"1kgawr"}]]),rP=i("refresh-ccw-dot",[["path",{d:"M3 2v6h6",key:"18ldww"}],["path",{d:"M21 12A9 9 0 0 0 6 5.3L3 8",key:"1pbrqz"}],["path",{d:"M21 22v-6h-6",key:"usdfbe"}],["path",{d:"M3 12a9 9 0 0 0 15 6.7l3-2.7",key:"1hosoe"}],["circle",{cx:"12",cy:"12",r:"1",key:"41hilf"}]]),rQ=i("refresh-ccw",[["path",{d:"M21 12a9 9 0 0 0-9-9 9.75 9.75 0 0 0-6.74 2.74L3 8",key:"14sxne"}],["path",{d:"M3 3v5h5",key:"1xhq8a"}],["path",{d:"M3 12a9 9 0 0 0 9 9 9.75 9.75 0 0 0 6.74-2.74L21 16",key:"1hlbsb"}],["path",{d:"M16 16h5v5",key:"ccwih5"}]]),rR=i("refresh-cw-off",[["path",{d:"M21 8L18.74 5.74A9.75 9.75 0 0 0 12 3C11 3 10.03 3.16 9.13 3.47",key:"1krf6h"}],["path",{d:"M8 16H3v5",key:"1cv678"}],["path",{d:"M3 12C3 9.51 4 7.26 5.64 5.64",key:"ruvoct"}],["path",{d:"m3 16 2.26 2.26A9.75 9.75 0 0 0 12 21c2.49 0 4.74-1 6.36-2.64",key:"19q130"}],["path",{d:"M21 12c0 1-.16 1.97-.47 2.87",key:"4w8emr"}],["path",{d:"M21 3v5h-5",key:"1q7to0"}],["path",{d:"M22 22 2 2",key:"1r8tn9"}]]),rS=i("refresh-cw",[["path",{d:"M3 12a9 9 0 0 1 9-9 9.75 9.75 0 0 1 6.74 2.74L21 8",key:"v9h5vc"}],["path",{d:"M21 3v5h-5",key:"1q7to0"}],["path",{d:"M21 12a9 9 0 0 1-9 9 9.75 9.75 0 0 1-6.74-2.74L3 16",key:"3uifl3"}],["path",{d:"M8 16H3v5",key:"1cv678"}]]),rT=i("refrigerator",[["path",{d:"M5 6a4 4 0 0 1 4-4h6a4 4 0 0 1 4 4v14a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2V6Z",key:"fpq118"}],["path",{d:"M5 10h14",key:"elsbfy"}],["path",{d:"M15 7v6",key:"1nx30x"}]]),rU=i("regex",[["path",{d:"M17 3v10",key:"15fgeh"}],["path",{d:"m12.67 5.5 8.66 5",key:"1gpheq"}],["path",{d:"m12.67 10.5 8.66-5",key:"1dkfa6"}],["path",{d:"M9 17a2 2 0 0 0-2-2H5a2 2 0 0 0-2 2v2a2 2 0 0 0 2 2h2a2 2 0 0 0 2-2v-2z",key:"swwfx4"}]]),rV=i("remove-formatting",[["path",{d:"M4 7V4h16v3",key:"9msm58"}],["path",{d:"M5 20h6",key:"1h6pxn"}],["path",{d:"M13 4 8 20",key:"kqq6aj"}],["path",{d:"m15 15 5 5",key:"me55sn"}],["path",{d:"m20 15-5 5",key:"11p7ol"}]]),rW=i("repeat-2",[["path",{d:"m2 9 3-3 3 3",key:"1ltn5i"}],["path",{d:"M13 18H7a2 2 0 0 1-2-2V6",key:"1r6tfw"}],["path",{d:"m22 15-3 3-3-3",key:"4rnwn2"}],["path",{d:"M11 6h6a2 2 0 0 1 2 2v10",key:"2f72bc"}]]),rX=i("repeat",[["path",{d:"m17 2 4 4-4 4",key:"nntrym"}],["path",{d:"M3 11v-1a4 4 0 0 1 4-4h14",key:"84bu3i"}],["path",{d:"m7 22-4-4 4-4",key:"1wqhfi"}],["path",{d:"M21 13v1a4 4 0 0 1-4 4H3",key:"1rx37r"}]]),rY=i("repeat-1",[["path",{d:"m17 2 4 4-4 4",key:"nntrym"}],["path",{d:"M3 11v-1a4 4 0 0 1 4-4h14",key:"84bu3i"}],["path",{d:"m7 22-4-4 4-4",key:"1wqhfi"}],["path",{d:"M21 13v1a4 4 0 0 1-4 4H3",key:"1rx37r"}],["path",{d:"M11 10h1v4",key:"70cz1p"}]]),rZ=i("replace-all",[["path",{d:"M14 14a2 2 0 0 1 2 2v4a2 2 0 0 1-2 2",key:"1yyzbs"}],["path",{d:"M14 4a2 2 0 0 1 2-2",key:"1w2hp7"}],["path",{d:"M16 10a2 2 0 0 1-2-2",key:"shjach"}],["path",{d:"M20 14a2 2 0 0 1 2 2v4a2 2 0 0 1-2 2",key:"zfj4xr"}],["path",{d:"M20 2a2 2 0 0 1 2 2",key:"188mtx"}],["path",{d:"M22 8a2 2 0 0 1-2 2",key:"ddf4tu"}],["path",{d:"m3 7 3 3 3-3",key:"x25e72"}],["path",{d:"M6 10V5a 3 3 0 0 1 3-3h1",key:"1ageje"}],["rect",{x:"2",y:"14",width:"8",height:"8",rx:"2",key:"4rksxw"}]]),r$=i("replace",[["path",{d:"M14 4a2 2 0 0 1 2-2",key:"1w2hp7"}],["path",{d:"M16 10a2 2 0 0 1-2-2",key:"shjach"}],["path",{d:"M20 2a2 2 0 0 1 2 2",key:"188mtx"}],["path",{d:"M22 8a2 2 0 0 1-2 2",key:"ddf4tu"}],["path",{d:"m3 7 3 3 3-3",key:"x25e72"}],["path",{d:"M6 10V5a3 3 0 0 1 3-3h1",key:"3y3t5z"}],["rect",{x:"2",y:"14",width:"8",height:"8",rx:"2",key:"4rksxw"}]]),r_=i("reply-all",[["path",{d:"m12 17-5-5 5-5",key:"1s3y5u"}],["path",{d:"M22 18v-2a4 4 0 0 0-4-4H7",key:"1fcyog"}],["path",{d:"m7 17-5-5 5-5",key:"1ed8i2"}]]),r0=i("reply",[["path",{d:"M20 18v-2a4 4 0 0 0-4-4H4",key:"5vmcpk"}],["path",{d:"m9 17-5-5 5-5",key:"nvlc11"}]]),r1=i("rewind",[["polygon",{points:"11 19 2 12 11 5 11 19",key:"14yba5"}],["polygon",{points:"22 19 13 12 22 5 22 19",key:"1pi1cj"}]]),r2=i("ribbon",[["path",{d:"M12 11.22C11 9.997 10 9 10 8a2 2 0 0 1 4 0c0 1-.998 2.002-2.01 3.22",key:"1rnhq3"}],["path",{d:"m12 18 2.57-3.5",key:"116vt7"}],["path",{d:"M6.243 9.016a7 7 0 0 1 11.507-.009",key:"10dq0b"}],["path",{d:"M9.35 14.53 12 11.22",key:"tdsyp2"}],["path",{d:"M9.35 14.53C7.728 12.246 6 10.221 6 7a6 5 0 0 1 12 0c-.005 3.22-1.778 5.235-3.43 7.5l3.557 4.527a1 1 0 0 1-.203 1.43l-1.894 1.36a1 1 0 0 1-1.384-.215L12 18l-2.679 3.593a1 1 0 0 1-1.39.213l-1.865-1.353a1 1 0 0 1-.203-1.422z",key:"nmifey"}]]),r3=i("rocket",[["path",{d:"M4.5 16.5c-1.5 1.26-2 5-2 5s3.74-.5 5-2c.71-.84.7-2.13-.09-2.91a2.18 2.18 0 0 0-2.91-.09z",key:"m3kijz"}],["path",{d:"m12 15-3-3a22 22 0 0 1 2-3.95A12.88 12.88 0 0 1 22 2c0 2.72-.78 7.5-6 11a22.35 22.35 0 0 1-4 2z",key:"1fmvmk"}],["path",{d:"M9 12H4s.55-3.03 2-4c1.62-1.08 5 0 5 0",key:"1f8sc4"}],["path",{d:"M12 15v5s3.03-.55 4-2c1.08-1.62 0-5 0-5",key:"qeys4"}]]),r4=i("rocking-chair",[["polyline",{points:"3.5 2 6.5 12.5 18 12.5",key:"y3iy52"}],["line",{x1:"9.5",x2:"5.5",y1:"12.5",y2:"20",key:"19vg5i"}],["line",{x1:"15",x2:"18.5",y1:"12.5",y2:"20",key:"1inpmv"}],["path",{d:"M2.75 18a13 13 0 0 0 18.5 0",key:"1nquas"}]]),r5=i("roller-coaster",[["path",{d:"M6 19V5",key:"1r845m"}],["path",{d:"M10 19V6.8",key:"9j2tfs"}],["path",{d:"M14 19v-7.8",key:"10s8qv"}],["path",{d:"M18 5v4",key:"1tajlv"}],["path",{d:"M18 19v-6",key:"ielfq3"}],["path",{d:"M22 19V9",key:"158nzp"}],["path",{d:"M2 19V9a4 4 0 0 1 4-4c2 0 4 1.33 6 4s4 4 6 4a4 4 0 1 0-3-6.65",key:"1930oh"}]]),r6=i("rotate-3d",[["path",{d:"M16.466 7.5C15.643 4.237 13.952 2 12 2 9.239 2 7 6.477 7 12s2.239 10 5 10c.342 0 .677-.069 1-.2",key:"10n0gc"}],["path",{d:"m15.194 13.707 3.814 1.86-1.86 3.814",key:"16shm9"}],["path",{d:"M19 15.57c-1.804.885-4.274 1.43-7 1.43-5.523 0-10-2.239-10-5s4.477-5 10-5c4.838 0 8.873 1.718 9.8 4",key:"1lxi77"}]]),r7=i("rotate-ccw-key",[["path",{d:"m14.5 9.5 1 1",key:"159eiq"}],["path",{d:"m15.5 8.5-4 4",key:"iirg3q"}],["path",{d:"M3 12a9 9 0 1 0 9-9 9.74 9.74 0 0 0-6.74 2.74L3 8",key:"g2jlw"}],["path",{d:"M3 3v5h5",key:"1xhq8a"}],["circle",{cx:"10",cy:"14",r:"2",key:"1239so"}]]),r8=i("rotate-ccw-square",[["path",{d:"M20 9V7a2 2 0 0 0-2-2h-6",key:"19z8uc"}],["path",{d:"m15 2-3 3 3 3",key:"177bxs"}],["path",{d:"M20 13v5a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V7a2 2 0 0 1 2-2h2",key:"d36hnl"}]]),r9=i("rotate-ccw",[["path",{d:"M3 12a9 9 0 1 0 9-9 9.75 9.75 0 0 0-6.74 2.74L3 8",key:"1357e3"}],["path",{d:"M3 3v5h5",key:"1xhq8a"}]]),sa=i("rotate-cw-square",[["path",{d:"M12 5H6a2 2 0 0 0-2 2v3",key:"l96uqu"}],["path",{d:"m9 8 3-3-3-3",key:"1gzgc3"}],["path",{d:"M4 14v4a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7a2 2 0 0 0-2-2h-2",key:"1w2k5h"}]]),sb=i("rotate-cw",[["path",{d:"M21 12a9 9 0 1 1-9-9c2.52 0 4.93 1 6.74 2.74L21 8",key:"1p45f6"}],["path",{d:"M21 3v5h-5",key:"1q7to0"}]]),sc=i("route-off",[["circle",{cx:"6",cy:"19",r:"3",key:"1kj8tv"}],["path",{d:"M9 19h8.5c.4 0 .9-.1 1.3-.2",key:"1effex"}],["path",{d:"M5.2 5.2A3.5 3.53 0 0 0 6.5 12H12",key:"k9y2ds"}],["path",{d:"m2 2 20 20",key:"1ooewy"}],["path",{d:"M21 15.3a3.5 3.5 0 0 0-3.3-3.3",key:"11nlu2"}],["path",{d:"M15 5h-4.3",key:"6537je"}],["circle",{cx:"18",cy:"5",r:"3",key:"gq8acd"}]]),sd=i("route",[["circle",{cx:"6",cy:"19",r:"3",key:"1kj8tv"}],["path",{d:"M9 19h8.5a3.5 3.5 0 0 0 0-7h-11a3.5 3.5 0 0 1 0-7H15",key:"1d8sl"}],["circle",{cx:"18",cy:"5",r:"3",key:"gq8acd"}]]),se=i("router",[["rect",{width:"20",height:"8",x:"2",y:"14",rx:"2",key:"w68u3i"}],["path",{d:"M6.01 18H6",key:"19vcac"}],["path",{d:"M10.01 18H10",key:"uamcmx"}],["path",{d:"M15 10v4",key:"qjz1xs"}],["path",{d:"M17.84 7.17a4 4 0 0 0-5.66 0",key:"1rif40"}],["path",{d:"M20.66 4.34a8 8 0 0 0-11.31 0",key:"6a5xfq"}]]),sf=i("rows-2",[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",key:"afitv7"}],["path",{d:"M3 12h18",key:"1i2n21"}]]),sg=i("rows-3",[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",key:"afitv7"}],["path",{d:"M21 9H3",key:"1338ky"}],["path",{d:"M21 15H3",key:"9uk58r"}]]),sh=i("rows-4",[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",key:"afitv7"}],["path",{d:"M21 7.5H3",key:"1hm9pq"}],["path",{d:"M21 12H3",key:"2avoz0"}],["path",{d:"M21 16.5H3",key:"n7jzkj"}]]),si=i("rss",[["path",{d:"M4 11a9 9 0 0 1 9 9",key:"pv89mb"}],["path",{d:"M4 4a16 16 0 0 1 16 16",key:"k0647b"}],["circle",{cx:"5",cy:"19",r:"1",key:"bfqh0e"}]]),sj=i("ruler-dimension-line",[["path",{d:"M12 15v-3.014",key:"aw6ppf"}],["path",{d:"M16 15v-3.014",key:"9e0vc7"}],["path",{d:"M20 6H4",key:"1lfz86"}],["path",{d:"M20 8V4",key:"1l2g47"}],["path",{d:"M4 8V4",key:"sppxzt"}],["path",{d:"M8 15v-3.014",key:"when08"}],["rect",{x:"3",y:"12",width:"18",height:"7",rx:"1",key:"1ucwdz"}]]),sk=i("ruler",[["path",{d:"M21.3 15.3a2.4 2.4 0 0 1 0 3.4l-2.6 2.6a2.4 2.4 0 0 1-3.4 0L2.7 8.7a2.41 2.41 0 0 1 0-3.4l2.6-2.6a2.41 2.41 0 0 1 3.4 0Z",key:"icamh8"}],["path",{d:"m14.5 12.5 2-2",key:"inckbg"}],["path",{d:"m11.5 9.5 2-2",key:"fmmyf7"}],["path",{d:"m8.5 6.5 2-2",key:"vc6u1g"}],["path",{d:"m17.5 15.5 2-2",key:"wo5hmg"}]]),sl=i("russian-ruble",[["path",{d:"M6 11h8a4 4 0 0 0 0-8H9v18",key:"18ai8t"}],["path",{d:"M6 15h8",key:"1y8f6l"}]]),sm=i("sailboat",[["path",{d:"M22 18H2a4 4 0 0 0 4 4h12a4 4 0 0 0 4-4Z",key:"1404fh"}],["path",{d:"M21 14 10 2 3 14h18Z",key:"1nzg7v"}],["path",{d:"M10 2v16",key:"1labyt"}]]),sn=i("salad",[["path",{d:"M7 21h10",key:"1b0cd5"}],["path",{d:"M12 21a9 9 0 0 0 9-9H3a9 9 0 0 0 9 9Z",key:"4rw317"}],["path",{d:"M11.38 12a2.4 2.4 0 0 1-.4-4.77 2.4 2.4 0 0 1 3.2-2.77 2.4 2.4 0 0 1 3.47-.63 2.4 2.4 0 0 1 3.37 3.37 2.4 2.4 0 0 1-1.1 3.7 2.51 2.51 0 0 1 .03 1.1",key:"10xrj0"}],["path",{d:"m13 12 4-4",key:"1hckqy"}],["path",{d:"M10.9 7.25A3.99 3.99 0 0 0 4 10c0 .73.2 1.41.54 2",key:"1p4srx"}]]),so=i("sandwich",[["path",{d:"m2.37 11.223 8.372-6.777a2 2 0 0 1 2.516 0l8.371 6.777",key:"f1wd0e"}],["path",{d:"M21 15a1 1 0 0 1 1 1v2a1 1 0 0 1-1 1h-5.25",key:"1pfu07"}],["path",{d:"M3 15a1 1 0 0 0-1 1v2a1 1 0 0 0 1 1h9",key:"1oq9qw"}],["path",{d:"m6.67 15 6.13 4.6a2 2 0 0 0 2.8-.4l3.15-4.2",key:"1fnwu5"}],["rect",{width:"20",height:"4",x:"2",y:"11",rx:"1",key:"itshg"}]]),sp=i("satellite-dish",[["path",{d:"M4 10a7.31 7.31 0 0 0 10 10Z",key:"1fzpp3"}],["path",{d:"m9 15 3-3",key:"88sc13"}],["path",{d:"M17 13a6 6 0 0 0-6-6",key:"15cc6u"}],["path",{d:"M21 13A10 10 0 0 0 11 3",key:"11nf8s"}]]),sq=i("satellite",[["path",{d:"m13.5 6.5-3.148-3.148a1.205 1.205 0 0 0-1.704 0L6.352 5.648a1.205 1.205 0 0 0 0 1.704L9.5 10.5",key:"dzhfyz"}],["path",{d:"M16.5 7.5 19 5",key:"1ltcjm"}],["path",{d:"m17.5 10.5 3.148 3.148a1.205 1.205 0 0 1 0 1.704l-2.296 2.296a1.205 1.205 0 0 1-1.704 0L13.5 14.5",key:"nfoymv"}],["path",{d:"M9 21a6 6 0 0 0-6-6",key:"1iajcf"}],["path",{d:"M9.352 10.648a1.205 1.205 0 0 0 0 1.704l2.296 2.296a1.205 1.205 0 0 0 1.704 0l4.296-4.296a1.205 1.205 0 0 0 0-1.704l-2.296-2.296a1.205 1.205 0 0 0-1.704 0z",key:"nv9zqy"}]]),sr=i("saudi-riyal",[["path",{d:"m20 19.5-5.5 1.2",key:"1aenhr"}],["path",{d:"M14.5 4v11.22a1 1 0 0 0 1.242.97L20 15.2",key:"2rtezt"}],["path",{d:"m2.978 19.351 5.549-1.363A2 2 0 0 0 10 16V2",key:"1kbm92"}],["path",{d:"M20 10 4 13.5",key:"8nums9"}]]),ss=i("save-all",[["path",{d:"M10 2v3a1 1 0 0 0 1 1h5",key:"1xspal"}],["path",{d:"M18 18v-6a1 1 0 0 0-1-1h-6a1 1 0 0 0-1 1v6",key:"1ra60u"}],["path",{d:"M18 22H4a2 2 0 0 1-2-2V6",key:"pblm9e"}],["path",{d:"M8 18a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9.172a2 2 0 0 1 1.414.586l2.828 2.828A2 2 0 0 1 22 6.828V16a2 2 0 0 1-2.01 2z",key:"1yve0x"}]]),st=i("save-off",[["path",{d:"M13 13H8a1 1 0 0 0-1 1v7",key:"h8g396"}],["path",{d:"M14 8h1",key:"1lfen6"}],["path",{d:"M17 21v-4",key:"1yknxs"}],["path",{d:"m2 2 20 20",key:"1ooewy"}],["path",{d:"M20.41 20.41A2 2 0 0 1 19 21H5a2 2 0 0 1-2-2V5a2 2 0 0 1 .59-1.41",key:"1t4vdl"}],["path",{d:"M29.5 11.5s5 5 4 5",key:"zzn4i6"}],["path",{d:"M9 3h6.2a2 2 0 0 1 1.4.6l3.8 3.8a2 2 0 0 1 .6 1.4V15",key:"24cby9"}]]),su=i("save",[["path",{d:"M15.2 3a2 2 0 0 1 1.4.6l3.8 3.8a2 2 0 0 1 .6 1.4V19a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2z",key:"1c8476"}],["path",{d:"M17 21v-7a1 1 0 0 0-1-1H8a1 1 0 0 0-1 1v7",key:"1ydtos"}],["path",{d:"M7 3v4a1 1 0 0 0 1 1h7",key:"t51u73"}]]),sv=i("scale-3d",[["path",{d:"M5 7v11a1 1 0 0 0 1 1h11",key:"13dt1j"}],["path",{d:"M5.293 18.707 11 13",key:"ezgbsx"}],["circle",{cx:"19",cy:"19",r:"2",key:"17f5cg"}],["circle",{cx:"5",cy:"5",r:"2",key:"1gwv83"}]]),sw=i("scale",[["path",{d:"m16 16 3-8 3 8c-.87.65-1.92 1-3 1s-2.13-.35-3-1Z",key:"7g6ntu"}],["path",{d:"m2 16 3-8 3 8c-.87.65-1.92 1-3 1s-2.13-.35-3-1Z",key:"ijws7r"}],["path",{d:"M7 21h10",key:"1b0cd5"}],["path",{d:"M12 3v18",key:"108xh3"}],["path",{d:"M3 7h2c2 0 5-1 7-2 2 1 5 2 7 2h2",key:"3gwbw2"}]]),sx=i("scaling",[["path",{d:"M12 3H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7",key:"1m0v6g"}],["path",{d:"M14 15H9v-5",key:"pi4jk9"}],["path",{d:"M16 3h5v5",key:"1806ms"}],["path",{d:"M21 3 9 15",key:"15kdhq"}]]),sy=i("scan-barcode",[["path",{d:"M3 7V5a2 2 0 0 1 2-2h2",key:"aa7l1z"}],["path",{d:"M17 3h2a2 2 0 0 1 2 2v2",key:"4qcy5o"}],["path",{d:"M21 17v2a2 2 0 0 1-2 2h-2",key:"6vwrx8"}],["path",{d:"M7 21H5a2 2 0 0 1-2-2v-2",key:"ioqczr"}],["path",{d:"M8 7v10",key:"23sfjj"}],["path",{d:"M12 7v10",key:"jspqdw"}],["path",{d:"M17 7v10",key:"578dap"}]]),sz=i("scan-eye",[["path",{d:"M3 7V5a2 2 0 0 1 2-2h2",key:"aa7l1z"}],["path",{d:"M17 3h2a2 2 0 0 1 2 2v2",key:"4qcy5o"}],["path",{d:"M21 17v2a2 2 0 0 1-2 2h-2",key:"6vwrx8"}],["path",{d:"M7 21H5a2 2 0 0 1-2-2v-2",key:"ioqczr"}],["circle",{cx:"12",cy:"12",r:"1",key:"41hilf"}],["path",{d:"M18.944 12.33a1 1 0 0 0 0-.66 7.5 7.5 0 0 0-13.888 0 1 1 0 0 0 0 .66 7.5 7.5 0 0 0 13.888 0",key:"11ak4c"}]]),sA=i("scan-face",[["path",{d:"M3 7V5a2 2 0 0 1 2-2h2",key:"aa7l1z"}],["path",{d:"M17 3h2a2 2 0 0 1 2 2v2",key:"4qcy5o"}],["path",{d:"M21 17v2a2 2 0 0 1-2 2h-2",key:"6vwrx8"}],["path",{d:"M7 21H5a2 2 0 0 1-2-2v-2",key:"ioqczr"}],["path",{d:"M8 14s1.5 2 4 2 4-2 4-2",key:"1y1vjs"}],["path",{d:"M9 9h.01",key:"1q5me6"}],["path",{d:"M15 9h.01",key:"x1ddxp"}]]),sB=i("scan-heart",[["path",{d:"M11.246 16.657a1 1 0 0 0 1.508 0l3.57-4.101A2.75 2.75 0 1 0 12 9.168a2.75 2.75 0 1 0-4.324 3.388z",key:"1algrk"}],["path",{d:"M17 3h2a2 2 0 0 1 2 2v2",key:"4qcy5o"}],["path",{d:"M21 17v2a2 2 0 0 1-2 2h-2",key:"6vwrx8"}],["path",{d:"M3 7V5a2 2 0 0 1 2-2h2",key:"aa7l1z"}],["path",{d:"M7 21H5a2 2 0 0 1-2-2v-2",key:"ioqczr"}]]),sC=i("scan-line",[["path",{d:"M3 7V5a2 2 0 0 1 2-2h2",key:"aa7l1z"}],["path",{d:"M17 3h2a2 2 0 0 1 2 2v2",key:"4qcy5o"}],["path",{d:"M21 17v2a2 2 0 0 1-2 2h-2",key:"6vwrx8"}],["path",{d:"M7 21H5a2 2 0 0 1-2-2v-2",key:"ioqczr"}],["path",{d:"M7 12h10",key:"b7w52i"}]]),sD=i("scan-qr-code",[["path",{d:"M17 12v4a1 1 0 0 1-1 1h-4",key:"uk4fdo"}],["path",{d:"M17 3h2a2 2 0 0 1 2 2v2",key:"4qcy5o"}],["path",{d:"M17 8V7",key:"q2g9wo"}],["path",{d:"M21 17v2a2 2 0 0 1-2 2h-2",key:"6vwrx8"}],["path",{d:"M3 7V5a2 2 0 0 1 2-2h2",key:"aa7l1z"}],["path",{d:"M7 17h.01",key:"19xn7k"}],["path",{d:"M7 21H5a2 2 0 0 1-2-2v-2",key:"ioqczr"}],["rect",{x:"7",y:"7",width:"5",height:"5",rx:"1",key:"m9kyts"}]]),sE=i("scan-search",[["path",{d:"M3 7V5a2 2 0 0 1 2-2h2",key:"aa7l1z"}],["path",{d:"M17 3h2a2 2 0 0 1 2 2v2",key:"4qcy5o"}],["path",{d:"M21 17v2a2 2 0 0 1-2 2h-2",key:"6vwrx8"}],["path",{d:"M7 21H5a2 2 0 0 1-2-2v-2",key:"ioqczr"}],["circle",{cx:"12",cy:"12",r:"3",key:"1v7zrd"}],["path",{d:"m16 16-1.9-1.9",key:"1dq9hf"}]]),sF=i("scan-text",[["path",{d:"M3 7V5a2 2 0 0 1 2-2h2",key:"aa7l1z"}],["path",{d:"M17 3h2a2 2 0 0 1 2 2v2",key:"4qcy5o"}],["path",{d:"M21 17v2a2 2 0 0 1-2 2h-2",key:"6vwrx8"}],["path",{d:"M7 21H5a2 2 0 0 1-2-2v-2",key:"ioqczr"}],["path",{d:"M7 8h8",key:"1jbsf9"}],["path",{d:"M7 12h10",key:"b7w52i"}],["path",{d:"M7 16h6",key:"1vyc9m"}]]),sG=i("scan",[["path",{d:"M3 7V5a2 2 0 0 1 2-2h2",key:"aa7l1z"}],["path",{d:"M17 3h2a2 2 0 0 1 2 2v2",key:"4qcy5o"}],["path",{d:"M21 17v2a2 2 0 0 1-2 2h-2",key:"6vwrx8"}],["path",{d:"M7 21H5a2 2 0 0 1-2-2v-2",key:"ioqczr"}]]),sH=i("school",[["path",{d:"M14 22v-4a2 2 0 1 0-4 0v4",key:"hhkicm"}],["path",{d:"m18 10 3.447 1.724a1 1 0 0 1 .553.894V20a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2v-7.382a1 1 0 0 1 .553-.894L6 10",key:"1xqip1"}],["path",{d:"M18 5v17",key:"1sw6gf"}],["path",{d:"m4 6 7.106-3.553a2 2 0 0 1 1.788 0L20 6",key:"9d2mlk"}],["path",{d:"M6 5v17",key:"1xfsm0"}],["circle",{cx:"12",cy:"9",r:"2",key:"1092wv"}]]),sI=i("scissors-line-dashed",[["path",{d:"M5.42 9.42 8 12",key:"12pkuq"}],["circle",{cx:"4",cy:"8",r:"2",key:"107mxr"}],["path",{d:"m14 6-8.58 8.58",key:"gvzu5l"}],["circle",{cx:"4",cy:"16",r:"2",key:"1ehqvc"}],["path",{d:"M10.8 14.8 14 18",key:"ax7m9r"}],["path",{d:"M16 12h-2",key:"10asgb"}],["path",{d:"M22 12h-2",key:"14jgyd"}]]),sJ=i("scissors",[["circle",{cx:"6",cy:"6",r:"3",key:"1lh9wr"}],["path",{d:"M8.12 8.12 12 12",key:"1alkpv"}],["path",{d:"M20 4 8.12 15.88",key:"xgtan2"}],["circle",{cx:"6",cy:"18",r:"3",key:"fqmcym"}],["path",{d:"M14.8 14.8 20 20",key:"ptml3r"}]]),sK=i("screen-share-off",[["path",{d:"M13 3H4a2 2 0 0 0-2 2v10a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2v-3",key:"i8wdob"}],["path",{d:"M8 21h8",key:"1ev6f3"}],["path",{d:"M12 17v4",key:"1riwvh"}],["path",{d:"m22 3-5 5",key:"12jva0"}],["path",{d:"m17 3 5 5",key:"k36vhe"}]]),sL=i("screen-share",[["path",{d:"M13 3H4a2 2 0 0 0-2 2v10a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2v-3",key:"i8wdob"}],["path",{d:"M8 21h8",key:"1ev6f3"}],["path",{d:"M12 17v4",key:"1riwvh"}],["path",{d:"m17 8 5-5",key:"fqif7o"}],["path",{d:"M17 3h5v5",key:"1o3tu8"}]]),sM=i("scroll-text",[["path",{d:"M15 12h-5",key:"r7krc0"}],["path",{d:"M15 8h-5",key:"1khuty"}],["path",{d:"M19 17V5a2 2 0 0 0-2-2H4",key:"zz82l3"}],["path",{d:"M8 21h12a2 2 0 0 0 2-2v-1a1 1 0 0 0-1-1H11a1 1 0 0 0-1 1v1a2 2 0 1 1-4 0V5a2 2 0 1 0-4 0v2a1 1 0 0 0 1 1h3",key:"1ph1d7"}]]),sN=i("scroll",[["path",{d:"M19 17V5a2 2 0 0 0-2-2H4",key:"zz82l3"}],["path",{d:"M8 21h12a2 2 0 0 0 2-2v-1a1 1 0 0 0-1-1H11a1 1 0 0 0-1 1v1a2 2 0 1 1-4 0V5a2 2 0 1 0-4 0v2a1 1 0 0 0 1 1h3",key:"1ph1d7"}]]),sO=i("search-check",[["path",{d:"m8 11 2 2 4-4",key:"1sed1v"}],["circle",{cx:"11",cy:"11",r:"8",key:"4ej97u"}],["path",{d:"m21 21-4.3-4.3",key:"1qie3q"}]]),sP=i("search-code",[["path",{d:"m13 13.5 2-2.5-2-2.5",key:"1rvxrh"}],["path",{d:"m21 21-4.3-4.3",key:"1qie3q"}],["path",{d:"M9 8.5 7 11l2 2.5",key:"6ffwbx"}],["circle",{cx:"11",cy:"11",r:"8",key:"4ej97u"}]]),sQ=i("search-slash",[["path",{d:"m13.5 8.5-5 5",key:"1cs55j"}],["circle",{cx:"11",cy:"11",r:"8",key:"4ej97u"}],["path",{d:"m21 21-4.3-4.3",key:"1qie3q"}]]),sR=i("search-x",[["path",{d:"m13.5 8.5-5 5",key:"1cs55j"}],["path",{d:"m8.5 8.5 5 5",key:"a8mexj"}],["circle",{cx:"11",cy:"11",r:"8",key:"4ej97u"}],["path",{d:"m21 21-4.3-4.3",key:"1qie3q"}]]),sS=i("search",[["path",{d:"m21 21-4.34-4.34",key:"14j7rj"}],["circle",{cx:"11",cy:"11",r:"8",key:"4ej97u"}]]),sT=i("section",[["path",{d:"M16 5a4 3 0 0 0-8 0c0 4 8 3 8 7a4 3 0 0 1-8 0",key:"vqan6v"}],["path",{d:"M8 19a4 3 0 0 0 8 0c0-4-8-3-8-7a4 3 0 0 1 8 0",key:"wdjd8o"}]]),sU=i("send-horizontal",[["path",{d:"M3.714 3.048a.498.498 0 0 0-.683.627l2.843 7.627a2 2 0 0 1 0 1.396l-2.842 7.627a.498.498 0 0 0 .682.627l18-8.5a.5.5 0 0 0 0-.904z",key:"117uat"}],["path",{d:"M6 12h16",key:"s4cdu5"}]]),sV=i("send-to-back",[["rect",{x:"14",y:"14",width:"8",height:"8",rx:"2",key:"1b0bso"}],["rect",{x:"2",y:"2",width:"8",height:"8",rx:"2",key:"1x09vl"}],["path",{d:"M7 14v1a2 2 0 0 0 2 2h1",key:"pao6x6"}],["path",{d:"M14 7h1a2 2 0 0 1 2 2v1",key:"19tdru"}]]),sW=i("send",[["path",{d:"M14.536 21.686a.5.5 0 0 0 .937-.024l6.5-19a.496.496 0 0 0-.635-.635l-19 6.5a.5.5 0 0 0-.024.937l7.93 3.18a2 2 0 0 1 1.112 1.11z",key:"1ffxy3"}],["path",{d:"m21.854 2.147-10.94 10.939",key:"12cjpa"}]]),sX=i("separator-horizontal",[["path",{d:"m16 16-4 4-4-4",key:"3dv8je"}],["path",{d:"M3 12h18",key:"1i2n21"}],["path",{d:"m8 8 4-4 4 4",key:"2bscm2"}]]),sY=i("separator-vertical",[["path",{d:"M12 3v18",key:"108xh3"}],["path",{d:"m16 16 4-4-4-4",key:"1js579"}],["path",{d:"m8 8-4 4 4 4",key:"1whems"}]]),sZ=i("server-cog",[["path",{d:"m10.852 14.772-.383.923",key:"11vil6"}],["path",{d:"M13.148 14.772a3 3 0 1 0-2.296-5.544l-.383-.923",key:"1v3clb"}],["path",{d:"m13.148 9.228.383-.923",key:"t2zzyc"}],["path",{d:"m13.53 15.696-.382-.924a3 3 0 1 1-2.296-5.544",key:"1bxfiv"}],["path",{d:"m14.772 10.852.923-.383",key:"k9m8cz"}],["path",{d:"m14.772 13.148.923.383",key:"1xvhww"}],["path",{d:"M4.5 10H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2v4a2 2 0 0 1-2 2h-.5",key:"tn8das"}],["path",{d:"M4.5 14H4a2 2 0 0 0-2 2v4a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2v-4a2 2 0 0 0-2-2h-.5",key:"1g2pve"}],["path",{d:"M6 18h.01",key:"uhywen"}],["path",{d:"M6 6h.01",key:"1utrut"}],["path",{d:"m9.228 10.852-.923-.383",key:"1wtb30"}],["path",{d:"m9.228 13.148-.923.383",key:"1a830x"}]]),s$=i("server-crash",[["path",{d:"M6 10H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2v4a2 2 0 0 1-2 2h-2",key:"4b9dqc"}],["path",{d:"M6 14H4a2 2 0 0 0-2 2v4a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2v-4a2 2 0 0 0-2-2h-2",key:"22nnkd"}],["path",{d:"M6 6h.01",key:"1utrut"}],["path",{d:"M6 18h.01",key:"uhywen"}],["path",{d:"m13 6-4 6h6l-4 6",key:"14hqih"}]]),s_=i("server-off",[["path",{d:"M7 2h13a2 2 0 0 1 2 2v4a2 2 0 0 1-2 2h-5",key:"bt2siv"}],["path",{d:"M10 10 2.5 2.5C2 2 2 2.5 2 5v3a2 2 0 0 0 2 2h6z",key:"1hjrv1"}],["path",{d:"M22 17v-1a2 2 0 0 0-2-2h-1",key:"1iynyr"}],["path",{d:"M4 14a2 2 0 0 0-2 2v4a2 2 0 0 0 2 2h16.5l1-.5.5.5-8-8H4z",key:"161ggg"}],["path",{d:"M6 18h.01",key:"uhywen"}],["path",{d:"m2 2 20 20",key:"1ooewy"}]]),s0=i("server",[["rect",{width:"20",height:"8",x:"2",y:"2",rx:"2",ry:"2",key:"ngkwjq"}],["rect",{width:"20",height:"8",x:"2",y:"14",rx:"2",ry:"2",key:"iecqi9"}],["line",{x1:"6",x2:"6.01",y1:"6",y2:"6",key:"16zg32"}],["line",{x1:"6",x2:"6.01",y1:"18",y2:"18",key:"nzw8ys"}]]),s1=i("settings-2",[["path",{d:"M14 17H5",key:"gfn3mx"}],["path",{d:"M19 7h-9",key:"6i9tg"}],["circle",{cx:"17",cy:"17",r:"3",key:"18b49y"}],["circle",{cx:"7",cy:"7",r:"3",key:"dfmy0x"}]]),s2=i("settings",[["path",{d:"M12.22 2h-.44a2 2 0 0 0-2 2v.18a2 2 0 0 1-1 1.73l-.43.25a2 2 0 0 1-2 0l-.15-.08a2 2 0 0 0-2.73.73l-.22.38a2 2 0 0 0 .73 2.73l.15.1a2 2 0 0 1 1 1.72v.51a2 2 0 0 1-1 1.74l-.15.09a2 2 0 0 0-.73 2.73l.22.38a2 2 0 0 0 2.73.73l.15-.08a2 2 0 0 1 2 0l.43.25a2 2 0 0 1 1 1.73V20a2 2 0 0 0 2 2h.44a2 2 0 0 0 2-2v-.18a2 2 0 0 1 1-1.73l.43-.25a2 2 0 0 1 2 0l.15.08a2 2 0 0 0 2.73-.73l.22-.39a2 2 0 0 0-.73-2.73l-.15-.08a2 2 0 0 1-1-1.74v-.5a2 2 0 0 1 1-1.74l.15-.09a2 2 0 0 0 .73-2.73l-.22-.38a2 2 0 0 0-2.73-.73l-.15.08a2 2 0 0 1-2 0l-.43-.25a2 2 0 0 1-1-1.73V4a2 2 0 0 0-2-2z",key:"1qme2f"}],["circle",{cx:"12",cy:"12",r:"3",key:"1v7zrd"}]]),s3=i("shapes",[["path",{d:"M8.3 10a.7.7 0 0 1-.626-1.079L11.4 3a.7.7 0 0 1 1.198-.043L16.3 8.9a.7.7 0 0 1-.572 1.1Z",key:"1bo67w"}],["rect",{x:"3",y:"14",width:"7",height:"7",rx:"1",key:"1bkyp8"}],["circle",{cx:"17.5",cy:"17.5",r:"3.5",key:"w3z12y"}]]),s4=i("share-2",[["circle",{cx:"18",cy:"5",r:"3",key:"gq8acd"}],["circle",{cx:"6",cy:"12",r:"3",key:"w7nqdw"}],["circle",{cx:"18",cy:"19",r:"3",key:"1xt0gg"}],["line",{x1:"8.59",x2:"15.42",y1:"13.51",y2:"17.49",key:"47mynk"}],["line",{x1:"15.41",x2:"8.59",y1:"6.51",y2:"10.49",key:"1n3mei"}]]),s5=i("share",[["path",{d:"M12 2v13",key:"1km8f5"}],["path",{d:"m16 6-4-4-4 4",key:"13yo43"}],["path",{d:"M4 12v8a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2v-8",key:"1b2hhj"}]]),s6=i("sheet",[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",ry:"2",key:"1m3agn"}],["line",{x1:"3",x2:"21",y1:"9",y2:"9",key:"1vqk6q"}],["line",{x1:"3",x2:"21",y1:"15",y2:"15",key:"o2sbyz"}],["line",{x1:"9",x2:"9",y1:"9",y2:"21",key:"1ib60c"}],["line",{x1:"15",x2:"15",y1:"9",y2:"21",key:"1n26ft"}]]),s7=i("shell",[["path",{d:"M14 11a2 2 0 1 1-4 0 4 4 0 0 1 8 0 6 6 0 0 1-12 0 8 8 0 0 1 16 0 10 10 0 1 1-20 0 11.93 11.93 0 0 1 2.42-7.22 2 2 0 1 1 3.16 2.44",key:"1cn552"}]]),s8=i("shield-alert",[["path",{d:"M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z",key:"oel41y"}],["path",{d:"M12 8v4",key:"1got3b"}],["path",{d:"M12 16h.01",key:"1drbdi"}]]),s9=i("shield-ban",[["path",{d:"M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z",key:"oel41y"}],["path",{d:"m4.243 5.21 14.39 12.472",key:"1c9a7c"}]]),ta=i("shield-check",[["path",{d:"M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z",key:"oel41y"}],["path",{d:"m9 12 2 2 4-4",key:"dzmm74"}]]),tb=i("shield-half",[["path",{d:"M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z",key:"oel41y"}],["path",{d:"M12 22V2",key:"zs6s6o"}]]),tc=i("shield-ellipsis",[["path",{d:"M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z",key:"oel41y"}],["path",{d:"M8 12h.01",key:"czm47f"}],["path",{d:"M12 12h.01",key:"1mp3jc"}],["path",{d:"M16 12h.01",key:"1l6xoz"}]]),td=i("shield-minus",[["path",{d:"M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z",key:"oel41y"}],["path",{d:"M9 12h6",key:"1c52cq"}]]),te=i("shield-off",[["path",{d:"m2 2 20 20",key:"1ooewy"}],["path",{d:"M5 5a1 1 0 0 0-1 1v7c0 5 3.5 7.5 7.67 8.94a1 1 0 0 0 .67.01c2.35-.82 4.48-1.97 5.9-3.71",key:"1jlk70"}],["path",{d:"M9.309 3.652A12.252 12.252 0 0 0 11.24 2.28a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1v7a9.784 9.784 0 0 1-.08 1.264",key:"18rp1v"}]]),tf=i("shield-plus",[["path",{d:"M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z",key:"oel41y"}],["path",{d:"M9 12h6",key:"1c52cq"}],["path",{d:"M12 9v6",key:"199k2o"}]]),tg=i("shield-user",[["path",{d:"M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z",key:"oel41y"}],["path",{d:"M6.376 18.91a6 6 0 0 1 11.249.003",key:"hnjrf2"}],["circle",{cx:"12",cy:"11",r:"4",key:"1gt34v"}]]),th=i("shield-question-mark",[["path",{d:"M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z",key:"oel41y"}],["path",{d:"M9.1 9a3 3 0 0 1 5.82 1c0 2-3 3-3 3",key:"mhlwft"}],["path",{d:"M12 17h.01",key:"p32p05"}]]),ti=i("shield-x",[["path",{d:"M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z",key:"oel41y"}],["path",{d:"m14.5 9.5-5 5",key:"17q4r4"}],["path",{d:"m9.5 9.5 5 5",key:"18nt4w"}]]),tj=i("shield",[["path",{d:"M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z",key:"oel41y"}]]),tk=i("ship-wheel",[["circle",{cx:"12",cy:"12",r:"8",key:"46899m"}],["path",{d:"M12 2v7.5",key:"1e5rl5"}],["path",{d:"m19 5-5.23 5.23",key:"1ezxxf"}],["path",{d:"M22 12h-7.5",key:"le1719"}],["path",{d:"m19 19-5.23-5.23",key:"p3fmgn"}],["path",{d:"M12 14.5V22",key:"dgcmos"}],["path",{d:"M10.23 13.77 5 19",key:"qwopd4"}],["path",{d:"M9.5 12H2",key:"r7bup8"}],["path",{d:"M10.23 10.23 5 5",key:"k2y7lj"}],["circle",{cx:"12",cy:"12",r:"2.5",key:"ix0uyj"}]]),tl=i("ship",[["path",{d:"M12 10.189V14",key:"1p8cqu"}],["path",{d:"M12 2v3",key:"qbqxhf"}],["path",{d:"M19 13V7a2 2 0 0 0-2-2H7a2 2 0 0 0-2 2v6",key:"qpkstq"}],["path",{d:"M19.38 20A11.6 11.6 0 0 0 21 14l-8.188-3.639a2 2 0 0 0-1.624 0L3 14a11.6 11.6 0 0 0 2.81 7.76",key:"7tigtc"}],["path",{d:"M2 21c.6.5 1.2 1 2.5 1 2.5 0 2.5-2 5-2 1.3 0 1.9.5 2.5 1s1.2 1 2.5 1c2.5 0 2.5-2 5-2 1.3 0 1.9.5 2.5 1",key:"1924j5"}]]),tm=i("shirt",[["path",{d:"M20.38 3.46 16 2a4 4 0 0 1-8 0L3.62 3.46a2 2 0 0 0-1.34 2.23l.58 3.47a1 1 0 0 0 .99.84H6v10c0 1.1.9 2 2 2h8a2 2 0 0 0 2-2V10h2.15a1 1 0 0 0 .99-.84l.58-3.47a2 2 0 0 0-1.34-2.23z",key:"1wgbhj"}]]),tn=i("shopping-bag",[["path",{d:"M16 10a4 4 0 0 1-8 0",key:"1ltviw"}],["path",{d:"M3.103 6.034h17.794",key:"awc11p"}],["path",{d:"M3.4 5.467a2 2 0 0 0-.4 1.2V20a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2V6.667a2 2 0 0 0-.4-1.2l-2-2.667A2 2 0 0 0 17 2H7a2 2 0 0 0-1.6.8z",key:"o988cm"}]]),to=i("shopping-basket",[["path",{d:"m15 11-1 9",key:"5wnq3a"}],["path",{d:"m19 11-4-7",key:"cnml18"}],["path",{d:"M2 11h20",key:"3eubbj"}],["path",{d:"m3.5 11 1.6 7.4a2 2 0 0 0 2 1.6h9.8a2 2 0 0 0 2-1.6l1.7-7.4",key:"yiazzp"}],["path",{d:"M4.5 15.5h15",key:"13mye1"}],["path",{d:"m5 11 4-7",key:"116ra9"}],["path",{d:"m9 11 1 9",key:"1ojof7"}]]),tp=i("shopping-cart",[["circle",{cx:"8",cy:"21",r:"1",key:"jimo8o"}],["circle",{cx:"19",cy:"21",r:"1",key:"13723u"}],["path",{d:"M2.05 2.05h2l2.66 12.42a2 2 0 0 0 2 1.58h9.78a2 2 0 0 0 1.95-1.57l1.65-7.43H5.12",key:"9zh506"}]]),tq=i("shovel",[["path",{d:"M2 22v-5l5-5 5 5-5 5z",key:"1fh25c"}],["path",{d:"M9.5 14.5 16 8",key:"1smz5x"}],["path",{d:"m17 2 5 5-.5.5a3.53 3.53 0 0 1-5 0s0 0 0 0a3.53 3.53 0 0 1 0-5L17 2",key:"1q8uv5"}]]),tr=i("shower-head",[["path",{d:"m4 4 2.5 2.5",key:"uv2vmf"}],["path",{d:"M13.5 6.5a4.95 4.95 0 0 0-7 7",key:"frdkwv"}],["path",{d:"M15 5 5 15",key:"1ag8rq"}],["path",{d:"M14 17v.01",key:"eokfpp"}],["path",{d:"M10 16v.01",key:"14uyyl"}],["path",{d:"M13 13v.01",key:"1v1k97"}],["path",{d:"M16 10v.01",key:"5169yg"}],["path",{d:"M11 20v.01",key:"cj92p8"}],["path",{d:"M17 14v.01",key:"11cswd"}],["path",{d:"M20 11v.01",key:"19e0od"}]]),ts=i("shredder",[["path",{d:"M10 22v-5",key:"sfixh4"}],["path",{d:"M14 19v-2",key:"pdve8j"}],["path",{d:"M14 2v4a2 2 0 0 0 2 2h4",key:"tnqrlb"}],["path",{d:"M18 20v-3",key:"uox2gk"}],["path",{d:"M2 13h20",key:"5evz65"}],["path",{d:"M20 13V7l-5-5H6a2 2 0 0 0-2 2v9",key:"1rnpe2"}],["path",{d:"M6 20v-3",key:"c6pdcb"}]]),tt=i("shrimp",[["path",{d:"M11 12h.01",key:"1lr4k6"}],["path",{d:"M13 22c.5-.5 1.12-1 2.5-1-1.38 0-2-.5-2.5-1",key:"fatpdi"}],["path",{d:"M14 2a3.28 3.28 0 0 1-3.227 1.798l-6.17-.561A2.387 2.387 0 1 0 4.387 8H15.5a1 1 0 0 1 0 13 1 1 0 0 0 0-5H12a7 7 0 0 1-7-7V8",key:"kehrqe"}],["path",{d:"M14 8a8.5 8.5 0 0 1 0 8",key:"1imjx2"}],["path",{d:"M16 16c2 0 4.5-4 4-6",key:"z0nejz"}]]),tu=i("shrink",[["path",{d:"m15 15 6 6m-6-6v4.8m0-4.8h4.8",key:"17vawe"}],["path",{d:"M9 19.8V15m0 0H4.2M9 15l-6 6",key:"chjx8e"}],["path",{d:"M15 4.2V9m0 0h4.8M15 9l6-6",key:"lav6yq"}],["path",{d:"M9 4.2V9m0 0H4.2M9 9 3 3",key:"1pxi2q"}]]),tv=i("shrub",[["path",{d:"M12 22v-5.172a2 2 0 0 0-.586-1.414L9.5 13.5",key:"1p17fm"}],["path",{d:"M14.5 14.5 12 17",key:"dy5w4y"}],["path",{d:"M17 8.8A6 6 0 0 1 13.8 20H10A6.5 6.5 0 0 1 7 8a5 5 0 0 1 10 0z",key:"6z7b3o"}]]),tw=i("shuffle",[["path",{d:"m18 14 4 4-4 4",key:"10pe0f"}],["path",{d:"m18 2 4 4-4 4",key:"pucp1d"}],["path",{d:"M2 18h1.973a4 4 0 0 0 3.3-1.7l5.454-8.6a4 4 0 0 1 3.3-1.7H22",key:"1ailkh"}],["path",{d:"M2 6h1.972a4 4 0 0 1 3.6 2.2",key:"km57vx"}],["path",{d:"M22 18h-6.041a4 4 0 0 1-3.3-1.8l-.359-.45",key:"os18l9"}]]),tx=i("sigma",[["path",{d:"M18 7V5a1 1 0 0 0-1-1H6.5a.5.5 0 0 0-.4.8l4.5 6a2 2 0 0 1 0 2.4l-4.5 6a.5.5 0 0 0 .4.8H17a1 1 0 0 0 1-1v-2",key:"wuwx1p"}]]),ty=i("signal-high",[["path",{d:"M2 20h.01",key:"4haj6o"}],["path",{d:"M7 20v-4",key:"j294jx"}],["path",{d:"M12 20v-8",key:"i3yub9"}],["path",{d:"M17 20V8",key:"1tkaf5"}]]),tz=i("signal-low",[["path",{d:"M2 20h.01",key:"4haj6o"}],["path",{d:"M7 20v-4",key:"j294jx"}]]),tA=i("signal-medium",[["path",{d:"M2 20h.01",key:"4haj6o"}],["path",{d:"M7 20v-4",key:"j294jx"}],["path",{d:"M12 20v-8",key:"i3yub9"}]]),tB=i("signal-zero",[["path",{d:"M2 20h.01",key:"4haj6o"}]]),tC=i("signal",[["path",{d:"M2 20h.01",key:"4haj6o"}],["path",{d:"M7 20v-4",key:"j294jx"}],["path",{d:"M12 20v-8",key:"i3yub9"}],["path",{d:"M17 20V8",key:"1tkaf5"}],["path",{d:"M22 4v16",key:"sih9yq"}]]),tD=i("signature",[["path",{d:"m21 17-2.156-1.868A.5.5 0 0 0 18 15.5v.5a1 1 0 0 1-1 1h-2a1 1 0 0 1-1-1c0-2.545-3.991-3.97-8.5-4a1 1 0 0 0 0 5c4.153 0 4.745-11.295 5.708-13.5a2.5 2.5 0 1 1 3.31 3.284",key:"y32ogt"}],["path",{d:"M3 21h18",key:"itz85i"}]]),tE=i("signpost-big",[["path",{d:"M10 9H4L2 7l2-2h6",key:"1hq7x2"}],["path",{d:"M14 5h6l2 2-2 2h-6",key:"bv62ej"}],["path",{d:"M10 22V4a2 2 0 1 1 4 0v18",key:"eqpcf2"}],["path",{d:"M8 22h8",key:"rmew8v"}]]),tF=i("siren",[["path",{d:"M7 18v-6a5 5 0 1 1 10 0v6",key:"pcx96s"}],["path",{d:"M5 21a1 1 0 0 0 1 1h12a1 1 0 0 0 1-1v-1a2 2 0 0 0-2-2H7a2 2 0 0 0-2 2z",key:"1b4s83"}],["path",{d:"M21 12h1",key:"jtio3y"}],["path",{d:"M18.5 4.5 18 5",key:"g5sp9y"}],["path",{d:"M2 12h1",key:"1uaihz"}],["path",{d:"M12 2v1",key:"11qlp1"}],["path",{d:"m4.929 4.929.707.707",key:"1i51kw"}],["path",{d:"M12 12v6",key:"3ahymv"}]]),tG=i("signpost",[["path",{d:"M12 13v8",key:"1l5pq0"}],["path",{d:"M12 3v3",key:"1n5kay"}],["path",{d:"M18 6a2 2 0 0 1 1.387.56l2.307 2.22a1 1 0 0 1 0 1.44l-2.307 2.22A2 2 0 0 1 18 13H6a2 2 0 0 1-1.387-.56l-2.306-2.22a1 1 0 0 1 0-1.44l2.306-2.22A2 2 0 0 1 6 6z",key:"gqqp9m"}]]),tH=i("skip-back",[["polygon",{points:"19 20 9 12 19 4 19 20",key:"o2sva"}],["line",{x1:"5",x2:"5",y1:"19",y2:"5",key:"1ocqjk"}]]),tI=i("skull",[["path",{d:"m12.5 17-.5-1-.5 1h1z",key:"3me087"}],["path",{d:"M15 22a1 1 0 0 0 1-1v-1a2 2 0 0 0 1.56-3.25 8 8 0 1 0-11.12 0A2 2 0 0 0 8 20v1a1 1 0 0 0 1 1z",key:"1o5pge"}],["circle",{cx:"15",cy:"12",r:"1",key:"1tmaij"}],["circle",{cx:"9",cy:"12",r:"1",key:"1vctgf"}]]),tJ=i("skip-forward",[["polygon",{points:"5 4 15 12 5 20 5 4",key:"16p6eg"}],["line",{x1:"19",x2:"19",y1:"5",y2:"19",key:"futhcm"}]]),tK=i("slack",[["rect",{width:"3",height:"8",x:"13",y:"2",rx:"1.5",key:"diqz80"}],["path",{d:"M19 8.5V10h1.5A1.5 1.5 0 1 0 19 8.5",key:"183iwg"}],["rect",{width:"3",height:"8",x:"8",y:"14",rx:"1.5",key:"hqg7r1"}],["path",{d:"M5 15.5V14H3.5A1.5 1.5 0 1 0 5 15.5",key:"76g71w"}],["rect",{width:"8",height:"3",x:"14",y:"13",rx:"1.5",key:"1kmz0a"}],["path",{d:"M15.5 19H14v1.5a1.5 1.5 0 1 0 1.5-1.5",key:"jc4sz0"}],["rect",{width:"8",height:"3",x:"2",y:"8",rx:"1.5",key:"1omvl4"}],["path",{d:"M8.5 5H10V3.5A1.5 1.5 0 1 0 8.5 5",key:"16f3cl"}]]),tL=i("slash",[["path",{d:"M22 2 2 22",key:"y4kqgn"}]]),tM=i("slice",[["path",{d:"M11 16.586V19a1 1 0 0 1-1 1H2L18.37 3.63a1 1 0 1 1 3 3l-9.663 9.663a1 1 0 0 1-1.414 0L8 14",key:"1sllp5"}]]),tN=i("sliders-horizontal",[["line",{x1:"21",x2:"14",y1:"4",y2:"4",key:"obuewd"}],["line",{x1:"10",x2:"3",y1:"4",y2:"4",key:"1q6298"}],["line",{x1:"21",x2:"12",y1:"12",y2:"12",key:"1iu8h1"}],["line",{x1:"8",x2:"3",y1:"12",y2:"12",key:"ntss68"}],["line",{x1:"21",x2:"16",y1:"20",y2:"20",key:"14d8ph"}],["line",{x1:"12",x2:"3",y1:"20",y2:"20",key:"m0wm8r"}],["line",{x1:"14",x2:"14",y1:"2",y2:"6",key:"14e1ph"}],["line",{x1:"8",x2:"8",y1:"10",y2:"14",key:"1i6ji0"}],["line",{x1:"16",x2:"16",y1:"18",y2:"22",key:"1lctlv"}]]),tO=i("sliders-vertical",[["line",{x1:"4",x2:"4",y1:"21",y2:"14",key:"1p332r"}],["line",{x1:"4",x2:"4",y1:"10",y2:"3",key:"gb41h5"}],["line",{x1:"12",x2:"12",y1:"21",y2:"12",key:"hf2csr"}],["line",{x1:"12",x2:"12",y1:"8",y2:"3",key:"1kfi7u"}],["line",{x1:"20",x2:"20",y1:"21",y2:"16",key:"1lhrwl"}],["line",{x1:"20",x2:"20",y1:"12",y2:"3",key:"16vvfq"}],["line",{x1:"2",x2:"6",y1:"14",y2:"14",key:"1uebub"}],["line",{x1:"10",x2:"14",y1:"8",y2:"8",key:"1yglbp"}],["line",{x1:"18",x2:"22",y1:"16",y2:"16",key:"1jxqpz"}]]),tP=i("smartphone-charging",[["rect",{width:"14",height:"20",x:"5",y:"2",rx:"2",ry:"2",key:"1yt0o3"}],["path",{d:"M12.667 8 10 12h4l-2.667 4",key:"h9lk2d"}]]),tQ=i("smartphone-nfc",[["rect",{width:"7",height:"12",x:"2",y:"6",rx:"1",key:"5nje8w"}],["path",{d:"M13 8.32a7.43 7.43 0 0 1 0 7.36",key:"1g306n"}],["path",{d:"M16.46 6.21a11.76 11.76 0 0 1 0 11.58",key:"uqvjvo"}],["path",{d:"M19.91 4.1a15.91 15.91 0 0 1 .01 15.8",key:"ujntz3"}]]),tR=i("smartphone",[["rect",{width:"14",height:"20",x:"5",y:"2",rx:"2",ry:"2",key:"1yt0o3"}],["path",{d:"M12 18h.01",key:"mhygvu"}]]),tS=i("smile-plus",[["path",{d:"M22 11v1a10 10 0 1 1-9-10",key:"ew0xw9"}],["path",{d:"M8 14s1.5 2 4 2 4-2 4-2",key:"1y1vjs"}],["line",{x1:"9",x2:"9.01",y1:"9",y2:"9",key:"yxxnd0"}],["line",{x1:"15",x2:"15.01",y1:"9",y2:"9",key:"1p4y9e"}],["path",{d:"M16 5h6",key:"1vod17"}],["path",{d:"M19 2v6",key:"4bpg5p"}]]),tT=i("smile",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"M8 14s1.5 2 4 2 4-2 4-2",key:"1y1vjs"}],["line",{x1:"9",x2:"9.01",y1:"9",y2:"9",key:"yxxnd0"}],["line",{x1:"15",x2:"15.01",y1:"9",y2:"9",key:"1p4y9e"}]]),tU=i("snail",[["path",{d:"M2 13a6 6 0 1 0 12 0 4 4 0 1 0-8 0 2 2 0 0 0 4 0",key:"hneq2s"}],["circle",{cx:"10",cy:"13",r:"8",key:"194lz3"}],["path",{d:"M2 21h12c4.4 0 8-3.6 8-8V7a2 2 0 1 0-4 0v6",key:"ixqyt7"}],["path",{d:"M18 3 19.1 5.2",key:"9tjm43"}],["path",{d:"M22 3 20.9 5.2",key:"j3odrs"}]]),tV=i("snowflake",[["path",{d:"m10 20-1.25-2.5L6 18",key:"18frcb"}],["path",{d:"M10 4 8.75 6.5 6 6",key:"7mghy3"}],["path",{d:"m14 20 1.25-2.5L18 18",key:"1chtki"}],["path",{d:"m14 4 1.25 2.5L18 6",key:"1b4wsy"}],["path",{d:"m17 21-3-6h-4",key:"15hhxa"}],["path",{d:"m17 3-3 6 1.5 3",key:"11697g"}],["path",{d:"M2 12h6.5L10 9",key:"kv9z4n"}],["path",{d:"m20 10-1.5 2 1.5 2",key:"1swlpi"}],["path",{d:"M22 12h-6.5L14 15",key:"1mxi28"}],["path",{d:"m4 10 1.5 2L4 14",key:"k9enpj"}],["path",{d:"m7 21 3-6-1.5-3",key:"j8hb9u"}],["path",{d:"m7 3 3 6h4",key:"1otusx"}]]),tW=i("sofa",[["path",{d:"M20 9V6a2 2 0 0 0-2-2H6a2 2 0 0 0-2 2v3",key:"1dgpiv"}],["path",{d:"M2 16a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2v-5a2 2 0 0 0-4 0v1.5a.5.5 0 0 1-.5.5h-11a.5.5 0 0 1-.5-.5V11a2 2 0 0 0-4 0z",key:"xacw8m"}],["path",{d:"M4 18v2",key:"jwo5n2"}],["path",{d:"M20 18v2",key:"1ar1qi"}],["path",{d:"M12 4v9",key:"oqhhn3"}]]),tX=i("soap-dispenser-droplet",[["path",{d:"M10.5 2v4",key:"1xt6in"}],["path",{d:"M14 2H7a2 2 0 0 0-2 2",key:"e6xig3"}],["path",{d:"M19.29 14.76A6.67 6.67 0 0 1 17 11a6.6 6.6 0 0 1-2.29 3.76c-1.15.92-1.71 2.04-1.71 3.19 0 2.22 1.8 4.05 4 4.05s4-1.83 4-4.05c0-1.16-.57-2.26-1.71-3.19",key:"adq7uc"}],["path",{d:"M9.607 21H6a2 2 0 0 1-2-2v-7a2 2 0 0 1 2-2h7V7a1 1 0 0 0-1-1H9a1 1 0 0 0-1 1v3",key:"t9hm96"}]]),tY=i("soup",[["path",{d:"M12 21a9 9 0 0 0 9-9H3a9 9 0 0 0 9 9Z",key:"4rw317"}],["path",{d:"M7 21h10",key:"1b0cd5"}],["path",{d:"M19.5 12 22 6",key:"shfsr5"}],["path",{d:"M16.25 3c.27.1.8.53.75 1.36-.06.83-.93 1.2-1 2.02-.05.78.34 1.24.73 1.62",key:"rpc6vp"}],["path",{d:"M11.25 3c.27.1.8.53.74 1.36-.05.83-.93 1.2-.98 2.02-.06.78.33 1.24.72 1.62",key:"1lf63m"}],["path",{d:"M6.25 3c.27.1.8.53.75 1.36-.06.83-.93 1.2-1 2.02-.05.78.34 1.24.74 1.62",key:"97tijn"}]]),tZ=i("space",[["path",{d:"M22 17v1c0 .5-.5 1-1 1H3c-.5 0-1-.5-1-1v-1",key:"lt2kga"}]]),t$=i("spade",[["path",{d:"M5 9c-1.5 1.5-3 3.2-3 5.5A5.5 5.5 0 0 0 7.5 20c1.8 0 3-.5 4.5-2 1.5 1.5 2.7 2 4.5 2a5.5 5.5 0 0 0 5.5-5.5c0-2.3-1.5-4-3-5.5l-7-7-7 7Z",key:"40bo9n"}],["path",{d:"M12 18v4",key:"jadmvz"}]]),t_=i("sparkle",[["path",{d:"M9.937 15.5A2 2 0 0 0 8.5 14.063l-6.135-1.582a.5.5 0 0 1 0-.962L8.5 9.936A2 2 0 0 0 9.937 8.5l1.582-6.135a.5.5 0 0 1 .963 0L14.063 8.5A2 2 0 0 0 15.5 9.937l6.135 1.581a.5.5 0 0 1 0 .964L15.5 14.063a2 2 0 0 0-1.437 1.437l-1.582 6.135a.5.5 0 0 1-.963 0z",key:"4pj2yx"}]]),t0=i("sparkles",[["path",{d:"M9.937 15.5A2 2 0 0 0 8.5 14.063l-6.135-1.582a.5.5 0 0 1 0-.962L8.5 9.936A2 2 0 0 0 9.937 8.5l1.582-6.135a.5.5 0 0 1 .963 0L14.063 8.5A2 2 0 0 0 15.5 9.937l6.135 1.581a.5.5 0 0 1 0 .964L15.5 14.063a2 2 0 0 0-1.437 1.437l-1.582 6.135a.5.5 0 0 1-.963 0z",key:"4pj2yx"}],["path",{d:"M20 3v4",key:"1olli1"}],["path",{d:"M22 5h-4",key:"1gvqau"}],["path",{d:"M4 17v2",key:"vumght"}],["path",{d:"M5 18H3",key:"zchphs"}]]),t1=i("speaker",[["rect",{width:"16",height:"20",x:"4",y:"2",rx:"2",key:"1nb95v"}],["path",{d:"M12 6h.01",key:"1vi96p"}],["circle",{cx:"12",cy:"14",r:"4",key:"1jruaj"}],["path",{d:"M12 14h.01",key:"1etili"}]]),t2=i("speech",[["path",{d:"M8.8 20v-4.1l1.9.2a2.3 2.3 0 0 0 2.164-2.1V8.3A5.37 5.37 0 0 0 2 8.25c0 2.8.656 3.054 1 4.55a5.77 5.77 0 0 1 .029 2.758L2 20",key:"11atix"}],["path",{d:"M19.8 17.8a7.5 7.5 0 0 0 .003-10.603",key:"yol142"}],["path",{d:"M17 15a3.5 3.5 0 0 0-.025-4.975",key:"ssbmkc"}]]),t3=i("spell-check-2",[["path",{d:"m6 16 6-12 6 12",key:"1b4byz"}],["path",{d:"M8 12h8",key:"1wcyev"}],["path",{d:"M4 21c1.1 0 1.1-1 2.3-1s1.1 1 2.3 1c1.1 0 1.1-1 2.3-1 1.1 0 1.1 1 2.3 1 1.1 0 1.1-1 2.3-1 1.1 0 1.1 1 2.3 1 1.1 0 1.1-1 2.3-1",key:"8mdmtu"}]]),t4=i("spell-check",[["path",{d:"m6 16 6-12 6 12",key:"1b4byz"}],["path",{d:"M8 12h8",key:"1wcyev"}],["path",{d:"m16 20 2 2 4-4",key:"13tcca"}]]),t5=i("spline-pointer",[["path",{d:"M12.034 12.681a.498.498 0 0 1 .647-.647l9 3.5a.5.5 0 0 1-.033.943l-3.444 1.068a1 1 0 0 0-.66.66l-1.067 3.443a.5.5 0 0 1-.943.033z",key:"xwnzip"}],["path",{d:"M5 17A12 12 0 0 1 17 5",key:"1okkup"}],["circle",{cx:"19",cy:"5",r:"2",key:"mhkx31"}],["circle",{cx:"5",cy:"19",r:"2",key:"v8kfzx"}]]),t6=i("spline",[["circle",{cx:"19",cy:"5",r:"2",key:"mhkx31"}],["circle",{cx:"5",cy:"19",r:"2",key:"v8kfzx"}],["path",{d:"M5 17A12 12 0 0 1 17 5",key:"1okkup"}]]),t7=i("split",[["path",{d:"M16 3h5v5",key:"1806ms"}],["path",{d:"M8 3H3v5",key:"15dfkv"}],["path",{d:"M12 22v-8.3a4 4 0 0 0-1.172-2.872L3 3",key:"1qrqzj"}],["path",{d:"m15 9 6-6",key:"ko1vev"}]]),t8=i("spool",[["path",{d:"M17 13.44 4.442 17.082A2 2 0 0 0 4.982 21H19a2 2 0 0 0 .558-3.921l-1.115-.32A2 2 0 0 1 17 14.837V7.66",key:"13vns8"}],["path",{d:"m7 10.56 12.558-3.642A2 2 0 0 0 19.018 3H5a2 2 0 0 0-.558 3.921l1.115.32A2 2 0 0 1 7 9.163v7.178",key:"s8x3u0"}]]),t9=i("spray-can",[["path",{d:"M3 3h.01",key:"159qn6"}],["path",{d:"M7 5h.01",key:"1hq22a"}],["path",{d:"M11 7h.01",key:"1osv80"}],["path",{d:"M3 7h.01",key:"1xzrh3"}],["path",{d:"M7 9h.01",key:"19b3jx"}],["path",{d:"M3 11h.01",key:"1eifu7"}],["rect",{width:"4",height:"4",x:"15",y:"5",key:"mri9e4"}],["path",{d:"m19 9 2 2v10c0 .6-.4 1-1 1h-6c-.6 0-1-.4-1-1V11l2-2",key:"aib6hk"}],["path",{d:"m13 14 8-2",key:"1d7bmk"}],["path",{d:"m13 19 8-2",key:"1y2vml"}]]),ua=i("sprout",[["path",{d:"M7 20h10",key:"e6iznv"}],["path",{d:"M10 20c5.5-2.5.8-6.4 3-10",key:"161w41"}],["path",{d:"M9.5 9.4c1.1.8 1.8 2.2 2.3 3.7-2 .4-3.5.4-4.8-.3-1.2-.6-2.3-1.9-3-4.2 2.8-.5 4.4 0 5.5.8z",key:"9gtqwd"}],["path",{d:"M14.1 6a7 7 0 0 0-1.1 4c1.9-.1 3.3-.6 4.3-1.4 1-1 1.6-2.3 1.7-4.6-2.7.1-4 1-4.9 2z",key:"bkxnd2"}]]),ub=i("square-activity",[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",key:"afitv7"}],["path",{d:"M17 12h-2l-2 5-2-10-2 5H7",key:"15hlnc"}]]),uc=i("square-arrow-down-left",[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",key:"afitv7"}],["path",{d:"m16 8-8 8",key:"166keh"}],["path",{d:"M16 16H8V8",key:"1w2ppm"}]]),ud=i("square-arrow-down-right",[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",key:"afitv7"}],["path",{d:"m8 8 8 8",key:"1imecy"}],["path",{d:"M16 8v8H8",key:"1lbpgo"}]]),ue=i("square-arrow-down",[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",key:"afitv7"}],["path",{d:"M12 8v8",key:"napkw2"}],["path",{d:"m8 12 4 4 4-4",key:"k98ssh"}]]),uf=i("square-arrow-left",[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",key:"afitv7"}],["path",{d:"m12 8-4 4 4 4",key:"15vm53"}],["path",{d:"M16 12H8",key:"1fr5h0"}]]),ug=i("square-arrow-out-down-left",[["path",{d:"M13 21h6a2 2 0 0 0 2-2V5a2 2 0 0 0-2-2H5a2 2 0 0 0-2 2v6",key:"14qz4y"}],["path",{d:"m3 21 9-9",key:"1jfql5"}],["path",{d:"M9 21H3v-6",key:"wtvkvv"}]]),uh=i("square-arrow-out-down-right",[["path",{d:"M21 11V5a2 2 0 0 0-2-2H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h6",key:"14rsvq"}],["path",{d:"m21 21-9-9",key:"1et2py"}],["path",{d:"M21 15v6h-6",key:"1jko0i"}]]),ui=i("square-arrow-out-up-right",[["path",{d:"M21 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h6",key:"y09zxi"}],["path",{d:"m21 3-9 9",key:"mpx6sq"}],["path",{d:"M15 3h6v6",key:"1q9fwt"}]]),uj=i("square-arrow-right",[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",key:"afitv7"}],["path",{d:"M8 12h8",key:"1wcyev"}],["path",{d:"m12 16 4-4-4-4",key:"1i9zcv"}]]),uk=i("square-arrow-out-up-left",[["path",{d:"M13 3h6a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-6",key:"14mv1t"}],["path",{d:"m3 3 9 9",key:"rks13r"}],["path",{d:"M3 9V3h6",key:"ira0h2"}]]),ul=i("square-arrow-up-left",[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",key:"afitv7"}],["path",{d:"M8 16V8h8",key:"19xb1h"}],["path",{d:"M16 16 8 8",key:"1qdy8n"}]]),um=i("square-arrow-up-right",[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",key:"afitv7"}],["path",{d:"M8 8h8v8",key:"b65dnt"}],["path",{d:"m8 16 8-8",key:"13b9ih"}]]),un=i("square-arrow-up",[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",key:"afitv7"}],["path",{d:"m16 12-4-4-4 4",key:"177agl"}],["path",{d:"M12 16V8",key:"1sbj14"}]]),uo=i("square-asterisk",[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",key:"afitv7"}],["path",{d:"M12 8v8",key:"napkw2"}],["path",{d:"m8.5 14 7-4",key:"12hpby"}],["path",{d:"m8.5 10 7 4",key:"wwy2dy"}]]),up=i("square-bottom-dashed-scissors",[["path",{d:"M4 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2v16a2 2 0 0 1-2 2",key:"1vzg26"}],["path",{d:"M10 22H8",key:"euku7a"}],["path",{d:"M16 22h-2",key:"18d249"}],["circle",{cx:"8",cy:"8",r:"2",key:"14cg06"}],["path",{d:"M9.414 9.414 12 12",key:"qz4lzr"}],["path",{d:"M14.8 14.8 18 18",key:"11flf1"}],["circle",{cx:"8",cy:"16",r:"2",key:"1acxsx"}],["path",{d:"m18 6-8.586 8.586",key:"11kzk1"}]]),uq=i("square-chart-gantt",[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",key:"afitv7"}],["path",{d:"M9 8h7",key:"kbo1nt"}],["path",{d:"M8 12h6",key:"ikassy"}],["path",{d:"M11 16h5",key:"oq65wt"}]]),ur=i("square-check-big",[["path",{d:"M21 10.656V19a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h12.344",key:"2acyp4"}],["path",{d:"m9 11 3 3L22 4",key:"1pflzl"}]]),us=i("square-check",[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",key:"afitv7"}],["path",{d:"m9 12 2 2 4-4",key:"dzmm74"}]]),ut=i("square-chevron-down",[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",key:"afitv7"}],["path",{d:"m16 10-4 4-4-4",key:"894hmk"}]]),uu=i("square-chevron-left",[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",key:"afitv7"}],["path",{d:"m14 16-4-4 4-4",key:"ojs7w8"}]]),uv=i("square-chevron-right",[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",key:"afitv7"}],["path",{d:"m10 8 4 4-4 4",key:"1wy4r4"}]]),uw=i("square-chevron-up",[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",key:"afitv7"}],["path",{d:"m8 14 4-4 4 4",key:"fy2ptz"}]]),ux=i("square-code",[["path",{d:"m10 9-3 3 3 3",key:"1oro0q"}],["path",{d:"m14 15 3-3-3-3",key:"bz13h7"}],["rect",{x:"3",y:"3",width:"18",height:"18",rx:"2",key:"h1oib"}]]),uy=i("square-dashed-bottom-code",[["path",{d:"M10 9.5 8 12l2 2.5",key:"3mjy60"}],["path",{d:"M14 21h1",key:"v9vybs"}],["path",{d:"m14 9.5 2 2.5-2 2.5",key:"1bir2l"}],["path",{d:"M5 21a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2",key:"as5y1o"}],["path",{d:"M9 21h1",key:"15o7lz"}]]),uz=i("square-dashed-bottom",[["path",{d:"M5 21a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2",key:"as5y1o"}],["path",{d:"M9 21h1",key:"15o7lz"}],["path",{d:"M14 21h1",key:"v9vybs"}]]),uA=i("square-dashed-kanban",[["path",{d:"M8 7v7",key:"1x2jlm"}],["path",{d:"M12 7v4",key:"xawao1"}],["path",{d:"M16 7v9",key:"1hp2iy"}],["path",{d:"M5 3a2 2 0 0 0-2 2",key:"y57alp"}],["path",{d:"M9 3h1",key:"1yesri"}],["path",{d:"M14 3h1",key:"1ec4yj"}],["path",{d:"M19 3a2 2 0 0 1 2 2",key:"18rm91"}],["path",{d:"M21 9v1",key:"mxsmne"}],["path",{d:"M21 14v1",key:"169vum"}],["path",{d:"M21 19a2 2 0 0 1-2 2",key:"1j7049"}],["path",{d:"M14 21h1",key:"v9vybs"}],["path",{d:"M9 21h1",key:"15o7lz"}],["path",{d:"M5 21a2 2 0 0 1-2-2",key:"sbafld"}],["path",{d:"M3 14v1",key:"vnatye"}],["path",{d:"M3 9v1",key:"1r0deq"}]]),uB=i("square-dashed-mouse-pointer",[["path",{d:"M12.034 12.681a.498.498 0 0 1 .647-.647l9 3.5a.5.5 0 0 1-.033.943l-3.444 1.068a1 1 0 0 0-.66.66l-1.067 3.443a.5.5 0 0 1-.943.033z",key:"xwnzip"}],["path",{d:"M5 3a2 2 0 0 0-2 2",key:"y57alp"}],["path",{d:"M19 3a2 2 0 0 1 2 2",key:"18rm91"}],["path",{d:"M5 21a2 2 0 0 1-2-2",key:"sbafld"}],["path",{d:"M9 3h1",key:"1yesri"}],["path",{d:"M9 21h2",key:"1qve2z"}],["path",{d:"M14 3h1",key:"1ec4yj"}],["path",{d:"M3 9v1",key:"1r0deq"}],["path",{d:"M21 9v2",key:"p14lih"}],["path",{d:"M3 14v1",key:"vnatye"}]]),uC=i("square-dashed-top-solid",[["path",{d:"M14 21h1",key:"v9vybs"}],["path",{d:"M21 14v1",key:"169vum"}],["path",{d:"M21 19a2 2 0 0 1-2 2",key:"1j7049"}],["path",{d:"M21 9v1",key:"mxsmne"}],["path",{d:"M3 14v1",key:"vnatye"}],["path",{d:"M3 5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2",key:"89voep"}],["path",{d:"M3 9v1",key:"1r0deq"}],["path",{d:"M5 21a2 2 0 0 1-2-2",key:"sbafld"}],["path",{d:"M9 21h1",key:"15o7lz"}]]),uD=i("square-dashed",[["path",{d:"M5 3a2 2 0 0 0-2 2",key:"y57alp"}],["path",{d:"M19 3a2 2 0 0 1 2 2",key:"18rm91"}],["path",{d:"M21 19a2 2 0 0 1-2 2",key:"1j7049"}],["path",{d:"M5 21a2 2 0 0 1-2-2",key:"sbafld"}],["path",{d:"M9 3h1",key:"1yesri"}],["path",{d:"M9 21h1",key:"15o7lz"}],["path",{d:"M14 3h1",key:"1ec4yj"}],["path",{d:"M14 21h1",key:"v9vybs"}],["path",{d:"M3 9v1",key:"1r0deq"}],["path",{d:"M21 9v1",key:"mxsmne"}],["path",{d:"M3 14v1",key:"vnatye"}],["path",{d:"M21 14v1",key:"169vum"}]]),uE=i("square-divide",[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",ry:"2",key:"1m3agn"}],["line",{x1:"8",x2:"16",y1:"12",y2:"12",key:"1jonct"}],["line",{x1:"12",x2:"12",y1:"16",y2:"16",key:"aqc6ln"}],["line",{x1:"12",x2:"12",y1:"8",y2:"8",key:"1mkcni"}]]),uF=i("square-dot",[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",key:"afitv7"}],["circle",{cx:"12",cy:"12",r:"1",key:"41hilf"}]]),uG=i("square-equal",[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",key:"afitv7"}],["path",{d:"M7 10h10",key:"1101jm"}],["path",{d:"M7 14h10",key:"1mhdw3"}]]),uH=i("square-function",[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",ry:"2",key:"1m3agn"}],["path",{d:"M9 17c2 0 2.8-1 2.8-2.8V10c0-2 1-3.3 3.2-3",key:"m1af9g"}],["path",{d:"M9 11.2h5.7",key:"3zgcl2"}]]),uI=i("square-kanban",[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",key:"afitv7"}],["path",{d:"M8 7v7",key:"1x2jlm"}],["path",{d:"M12 7v4",key:"xawao1"}],["path",{d:"M16 7v9",key:"1hp2iy"}]]),uJ=i("square-library",[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",key:"afitv7"}],["path",{d:"M7 7v10",key:"d5nglc"}],["path",{d:"M11 7v10",key:"pptsnr"}],["path",{d:"m15 7 2 10",key:"1m7qm5"}]]),uK=i("square-m",[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",key:"afitv7"}],["path",{d:"M8 16V8l4 4 4-4v8",key:"141u4e"}]]),uL=i("square-menu",[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",key:"afitv7"}],["path",{d:"M7 8h10",key:"1jw688"}],["path",{d:"M7 12h10",key:"b7w52i"}],["path",{d:"M7 16h10",key:"wp8him"}]]),uM=i("square-minus",[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",key:"afitv7"}],["path",{d:"M8 12h8",key:"1wcyev"}]]),uN=i("square-mouse-pointer",[["path",{d:"M12.034 12.681a.498.498 0 0 1 .647-.647l9 3.5a.5.5 0 0 1-.033.943l-3.444 1.068a1 1 0 0 0-.66.66l-1.067 3.443a.5.5 0 0 1-.943.033z",key:"xwnzip"}],["path",{d:"M21 11V5a2 2 0 0 0-2-2H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h6",key:"14rsvq"}]]),uO=i("square-parking-off",[["path",{d:"M3.6 3.6A2 2 0 0 1 5 3h14a2 2 0 0 1 2 2v14a2 2 0 0 1-.59 1.41",key:"9l1ft6"}],["path",{d:"M3 8.7V19a2 2 0 0 0 2 2h10.3",key:"17knke"}],["path",{d:"m2 2 20 20",key:"1ooewy"}],["path",{d:"M13 13a3 3 0 1 0 0-6H9v2",key:"uoagbd"}],["path",{d:"M9 17v-2.3",key:"1jxgo2"}]]),uP=i("square-parking",[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",key:"afitv7"}],["path",{d:"M9 17V7h4a3 3 0 0 1 0 6H9",key:"1dfk2c"}]]),uQ=i("square-pen",[["path",{d:"M12 3H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7",key:"1m0v6g"}],["path",{d:"M18.375 2.625a1 1 0 0 1 3 3l-9.013 9.014a2 2 0 0 1-.853.505l-2.873.84a.5.5 0 0 1-.62-.62l.84-2.873a2 2 0 0 1 .506-.852z",key:"ohrbg2"}]]),uR=i("square-percent",[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",key:"afitv7"}],["path",{d:"m15 9-6 6",key:"1uzhvr"}],["path",{d:"M9 9h.01",key:"1q5me6"}],["path",{d:"M15 15h.01",key:"lqbp3k"}]]),uS=i("square-pi",[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",key:"afitv7"}],["path",{d:"M7 7h10",key:"udp07y"}],["path",{d:"M10 7v10",key:"i1d9ee"}],["path",{d:"M16 17a2 2 0 0 1-2-2V7",key:"ftwdc7"}]]),uT=i("square-pilcrow",[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",key:"afitv7"}],["path",{d:"M12 12H9.5a2.5 2.5 0 0 1 0-5H17",key:"1l9586"}],["path",{d:"M12 7v10",key:"jspqdw"}],["path",{d:"M16 7v10",key:"lavkr4"}]]),uU=i("square-play",[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",key:"afitv7"}],["path",{d:"m9 8 6 4-6 4Z",key:"f1r3lt"}]]),uV=i("square-plus",[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",key:"afitv7"}],["path",{d:"M8 12h8",key:"1wcyev"}],["path",{d:"M12 8v8",key:"napkw2"}]]),uW=i("square-power",[["path",{d:"M12 7v4",key:"xawao1"}],["path",{d:"M7.998 9.003a5 5 0 1 0 8-.005",key:"1pek45"}],["rect",{x:"3",y:"3",width:"18",height:"18",rx:"2",key:"h1oib"}]]),uX=i("square-radical",[["path",{d:"M7 12h2l2 5 2-10h4",key:"1fxv6h"}],["rect",{x:"3",y:"3",width:"18",height:"18",rx:"2",key:"h1oib"}]]),uY=i("square-round-corner",[["path",{d:"M21 11a8 8 0 0 0-8-8",key:"1lxwo5"}],["path",{d:"M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h4",key:"1dv2y5"}]]),uZ=i("square-scissors",[["rect",{width:"20",height:"20",x:"2",y:"2",rx:"2",key:"1btzen"}],["circle",{cx:"8",cy:"8",r:"2",key:"14cg06"}],["path",{d:"M9.414 9.414 12 12",key:"qz4lzr"}],["path",{d:"M14.8 14.8 18 18",key:"11flf1"}],["circle",{cx:"8",cy:"16",r:"2",key:"1acxsx"}],["path",{d:"m18 6-8.586 8.586",key:"11kzk1"}]]),u$=i("square-sigma",[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",key:"afitv7"}],["path",{d:"M16 8.9V7H8l4 5-4 5h8v-1.9",key:"9nih0i"}]]),u_=i("square-slash",[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",key:"afitv7"}],["line",{x1:"9",x2:"15",y1:"15",y2:"9",key:"1dfufj"}]]),u0=i("square-split-horizontal",[["path",{d:"M8 19H5c-1 0-2-1-2-2V7c0-1 1-2 2-2h3",key:"lubmu8"}],["path",{d:"M16 5h3c1 0 2 1 2 2v10c0 1-1 2-2 2h-3",key:"1ag34g"}],["line",{x1:"12",x2:"12",y1:"4",y2:"20",key:"1tx1rr"}]]),u1=i("square-split-vertical",[["path",{d:"M5 8V5c0-1 1-2 2-2h10c1 0 2 1 2 2v3",key:"1pi83i"}],["path",{d:"M19 16v3c0 1-1 2-2 2H7c-1 0-2-1-2-2v-3",key:"ido5k7"}],["line",{x1:"4",x2:"20",y1:"12",y2:"12",key:"1e0a9i"}]]),u2=i("square-square",[["rect",{x:"3",y:"3",width:"18",height:"18",rx:"2",key:"h1oib"}],["rect",{x:"8",y:"8",width:"8",height:"8",rx:"1",key:"z9xiuo"}]]),u3=i("square-stack",[["path",{d:"M4 10c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h4c1.1 0 2 .9 2 2",key:"4i38lg"}],["path",{d:"M10 16c-1.1 0-2-.9-2-2v-4c0-1.1.9-2 2-2h4c1.1 0 2 .9 2 2",key:"mlte4a"}],["rect",{width:"8",height:"8",x:"14",y:"14",rx:"2",key:"1fa9i4"}]]),u4=i("square-terminal",[["path",{d:"m7 11 2-2-2-2",key:"1lz0vl"}],["path",{d:"M11 13h4",key:"1p7l4v"}],["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",ry:"2",key:"1m3agn"}]]),u5=i("square-user-round",[["path",{d:"M18 21a6 6 0 0 0-12 0",key:"kaz2du"}],["circle",{cx:"12",cy:"11",r:"4",key:"1gt34v"}],["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",key:"afitv7"}]]),u6=i("square-user",[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",key:"afitv7"}],["circle",{cx:"12",cy:"10",r:"3",key:"ilqhr7"}],["path",{d:"M7 21v-2a2 2 0 0 1 2-2h6a2 2 0 0 1 2 2v2",key:"1m6ac2"}]]),u7=i("square-x",[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",ry:"2",key:"1m3agn"}],["path",{d:"m15 9-6 6",key:"1uzhvr"}],["path",{d:"m9 9 6 6",key:"z0biqf"}]]),u8=i("square",[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",key:"afitv7"}]]),u9=i("squares-exclude",[["path",{d:"M16 12v2a2 2 0 0 1-2 2H9a1 1 0 0 0-1 1v3a2 2 0 0 0 2 2h10a2 2 0 0 0 2-2V10a2 2 0 0 0-2-2h0",key:"1mcohs"}],["path",{d:"M4 16a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h10a2 2 0 0 1 2 2v3a1 1 0 0 1-1 1h-5a2 2 0 0 0-2 2v2",key:"1r1efp"}]]),va=i("squares-intersect",[["path",{d:"M10 22a2 2 0 0 1-2-2",key:"i7yj1i"}],["path",{d:"M14 2a2 2 0 0 1 2 2",key:"170a0m"}],["path",{d:"M16 22h-2",key:"18d249"}],["path",{d:"M2 10V8",key:"7yj4fe"}],["path",{d:"M2 4a2 2 0 0 1 2-2",key:"ddgnws"}],["path",{d:"M20 8a2 2 0 0 1 2 2",key:"1770vt"}],["path",{d:"M22 14v2",key:"iot8ja"}],["path",{d:"M22 20a2 2 0 0 1-2 2",key:"qj8q6g"}],["path",{d:"M4 16a2 2 0 0 1-2-2",key:"1dnafg"}],["path",{d:"M8 10a2 2 0 0 1 2-2h5a1 1 0 0 1 1 1v5a2 2 0 0 1-2 2H9a1 1 0 0 1-1-1z",key:"ci6f0b"}],["path",{d:"M8 2h2",key:"1gmkwm"}]]),vb=i("squares-subtract",[["path",{d:"M10 22a2 2 0 0 1-2-2",key:"i7yj1i"}],["path",{d:"M16 22h-2",key:"18d249"}],["path",{d:"M16 4a2 2 0 0 0-2-2H4a2 2 0 0 0-2 2v10a2 2 0 0 0 2 2h3a1 1 0 0 0 1-1v-5a2 2 0 0 1 2-2h5a1 1 0 0 0 1-1z",key:"1njgbb"}],["path",{d:"M20 8a2 2 0 0 1 2 2",key:"1770vt"}],["path",{d:"M22 14v2",key:"iot8ja"}],["path",{d:"M22 20a2 2 0 0 1-2 2",key:"qj8q6g"}]]),vc=i("squares-unite",[["path",{d:"M4 16a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h10a2 2 0 0 1 2 2v3a1 1 0 0 0 1 1h3a2 2 0 0 1 2 2v10a2 2 0 0 1-2 2H10a2 2 0 0 1-2-2v-3a1 1 0 0 0-1-1z",key:"17jnth"}]]),vd=i("squircle-dashed",[["path",{d:"M13.77 3.043a34 34 0 0 0-3.54 0",key:"1oaobr"}],["path",{d:"M13.771 20.956a33 33 0 0 1-3.541.001",key:"95iq0j"}],["path",{d:"M20.18 17.74c-.51 1.15-1.29 1.93-2.439 2.44",key:"1u6qty"}],["path",{d:"M20.18 6.259c-.51-1.148-1.291-1.929-2.44-2.438",key:"1ew6g6"}],["path",{d:"M20.957 10.23a33 33 0 0 1 0 3.54",key:"1l9npr"}],["path",{d:"M3.043 10.23a34 34 0 0 0 .001 3.541",key:"1it6jm"}],["path",{d:"M6.26 20.179c-1.15-.508-1.93-1.29-2.44-2.438",key:"14uchd"}],["path",{d:"M6.26 3.82c-1.149.51-1.93 1.291-2.44 2.44",key:"8k4agb"}]]),ve=i("squircle",[["path",{d:"M12 3c7.2 0 9 1.8 9 9s-1.8 9-9 9-9-1.8-9-9 1.8-9 9-9",key:"garfkc"}]]),vf=i("squirrel",[["path",{d:"M15.236 22a3 3 0 0 0-2.2-5",key:"21bitc"}],["path",{d:"M16 20a3 3 0 0 1 3-3h1a2 2 0 0 0 2-2v-2a4 4 0 0 0-4-4V4",key:"oh0fg0"}],["path",{d:"M18 13h.01",key:"9veqaj"}],["path",{d:"M18 6a4 4 0 0 0-4 4 7 7 0 0 0-7 7c0-5 4-5 4-10.5a4.5 4.5 0 1 0-9 0 2.5 2.5 0 0 0 5 0C7 10 3 11 3 17c0 2.8 2.2 5 5 5h10",key:"980v8a"}]]),vg=i("stamp",[["path",{d:"M14 13V8.5C14 7 15 7 15 5a3 3 0 0 0-6 0c0 2 1 2 1 3.5V13",key:"i9gjdv"}],["path",{d:"M20 15.5a2.5 2.5 0 0 0-2.5-2.5h-11A2.5 2.5 0 0 0 4 15.5V17a1 1 0 0 0 1 1h14a1 1 0 0 0 1-1z",key:"1vzg3v"}],["path",{d:"M5 22h14",key:"ehvnwv"}]]),vh=i("star-half",[["path",{d:"M12 18.338a2.1 2.1 0 0 0-.987.244L6.396 21.01a.53.53 0 0 1-.77-.56l.881-5.139a2.12 2.12 0 0 0-.611-1.879L2.16 9.795a.53.53 0 0 1 .294-.906l5.165-.755a2.12 2.12 0 0 0 1.597-1.16l2.309-4.679A.53.53 0 0 1 12 2",key:"2ksp49"}]]),vi=i("star-off",[["path",{d:"M8.34 8.34 2 9.27l5 4.87L5.82 21 12 17.77 18.18 21l-.59-3.43",key:"16m0ql"}],["path",{d:"M18.42 12.76 22 9.27l-6.91-1L12 2l-1.44 2.91",key:"1vt8nq"}],["line",{x1:"2",x2:"22",y1:"2",y2:"22",key:"a6p6uj"}]]),vj=i("star",[["path",{d:"M11.525 2.295a.53.53 0 0 1 .95 0l2.31 4.679a2.123 2.123 0 0 0 1.595 1.16l5.166.756a.53.53 0 0 1 .294.904l-3.736 3.638a2.123 2.123 0 0 0-.611 1.878l.882 5.14a.53.53 0 0 1-.771.56l-4.618-2.428a2.122 2.122 0 0 0-1.973 0L6.396 21.01a.53.53 0 0 1-.77-.56l.881-5.139a2.122 2.122 0 0 0-.611-1.879L2.16 9.795a.53.53 0 0 1 .294-.906l5.165-.755a2.122 2.122 0 0 0 1.597-1.16z",key:"r04s7s"}]]),vk=i("step-back",[["line",{x1:"18",x2:"18",y1:"20",y2:"4",key:"cun8e5"}],["polygon",{points:"14,20 4,12 14,4",key:"ypakod"}]]),vl=i("step-forward",[["line",{x1:"6",x2:"6",y1:"4",y2:"20",key:"fy8qot"}],["polygon",{points:"10,4 20,12 10,20",key:"1mc1pf"}]]),vm=i("stethoscope",[["path",{d:"M11 2v2",key:"1539x4"}],["path",{d:"M5 2v2",key:"1yf1q8"}],["path",{d:"M5 3H4a2 2 0 0 0-2 2v4a6 6 0 0 0 12 0V5a2 2 0 0 0-2-2h-1",key:"rb5t3r"}],["path",{d:"M8 15a6 6 0 0 0 12 0v-3",key:"x18d4x"}],["circle",{cx:"20",cy:"10",r:"2",key:"ts1r5v"}]]),vn=i("sticker",[["path",{d:"M15.5 3H5a2 2 0 0 0-2 2v14c0 1.1.9 2 2 2h14a2 2 0 0 0 2-2V8.5L15.5 3Z",key:"1wis1t"}],["path",{d:"M14 3v4a2 2 0 0 0 2 2h4",key:"36rjfy"}],["path",{d:"M8 13h.01",key:"1sbv64"}],["path",{d:"M16 13h.01",key:"wip0gl"}],["path",{d:"M10 16s.8 1 2 1c1.3 0 2-1 2-1",key:"1vvgv3"}]]),vo=i("sticky-note",[["path",{d:"M16 3H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2V8Z",key:"qazsjp"}],["path",{d:"M15 3v4a2 2 0 0 0 2 2h4",key:"40519r"}]]),vp=i("store",[["path",{d:"m2 7 4.41-4.41A2 2 0 0 1 7.83 2h8.34a2 2 0 0 1 1.42.59L22 7",key:"ztvudi"}],["path",{d:"M4 12v8a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2v-8",key:"1b2hhj"}],["path",{d:"M15 22v-4a2 2 0 0 0-2-2h-2a2 2 0 0 0-2 2v4",key:"2ebpfo"}],["path",{d:"M2 7h20",key:"1fcdvo"}],["path",{d:"M22 7v3a2 2 0 0 1-2 2a2.7 2.7 0 0 1-1.59-.63.7.7 0 0 0-.82 0A2.7 2.7 0 0 1 16 12a2.7 2.7 0 0 1-1.59-.63.7.7 0 0 0-.82 0A2.7 2.7 0 0 1 12 12a2.7 2.7 0 0 1-1.59-.63.7.7 0 0 0-.82 0A2.7 2.7 0 0 1 8 12a2.7 2.7 0 0 1-1.59-.63.7.7 0 0 0-.82 0A2.7 2.7 0 0 1 4 12a2 2 0 0 1-2-2V7",key:"6c3vgh"}]]),vq=i("stretch-horizontal",[["rect",{width:"20",height:"6",x:"2",y:"4",rx:"2",key:"qdearl"}],["rect",{width:"20",height:"6",x:"2",y:"14",rx:"2",key:"1xrn6j"}]]),vr=i("stretch-vertical",[["rect",{width:"6",height:"20",x:"4",y:"2",rx:"2",key:"19qu7m"}],["rect",{width:"6",height:"20",x:"14",y:"2",rx:"2",key:"24v0nk"}]]),vs=i("strikethrough",[["path",{d:"M16 4H9a3 3 0 0 0-2.83 4",key:"43sutm"}],["path",{d:"M14 12a4 4 0 0 1 0 8H6",key:"nlfj13"}],["line",{x1:"4",x2:"20",y1:"12",y2:"12",key:"1e0a9i"}]]),vt=i("subscript",[["path",{d:"m4 5 8 8",key:"1eunvl"}],["path",{d:"m12 5-8 8",key:"1ah0jp"}],["path",{d:"M20 19h-4c0-1.5.44-2 1.5-2.5S20 15.33 20 14c0-.47-.17-.93-.48-1.29a2.11 2.11 0 0 0-2.62-.44c-.42.24-.74.62-.9 1.07",key:"e8ta8j"}]]),vu=i("sun-dim",[["circle",{cx:"12",cy:"12",r:"4",key:"4exip2"}],["path",{d:"M12 4h.01",key:"1ujb9j"}],["path",{d:"M20 12h.01",key:"1ykeid"}],["path",{d:"M12 20h.01",key:"zekei9"}],["path",{d:"M4 12h.01",key:"158zrr"}],["path",{d:"M17.657 6.343h.01",key:"31pqzk"}],["path",{d:"M17.657 17.657h.01",key:"jehnf4"}],["path",{d:"M6.343 17.657h.01",key:"gdk6ow"}],["path",{d:"M6.343 6.343h.01",key:"1uurf0"}]]),vv=i("sun-medium",[["circle",{cx:"12",cy:"12",r:"4",key:"4exip2"}],["path",{d:"M12 3v1",key:"1asbbs"}],["path",{d:"M12 20v1",key:"1wcdkc"}],["path",{d:"M3 12h1",key:"lp3yf2"}],["path",{d:"M20 12h1",key:"1vloll"}],["path",{d:"m18.364 5.636-.707.707",key:"1hakh0"}],["path",{d:"m6.343 17.657-.707.707",key:"18m9nf"}],["path",{d:"m5.636 5.636.707.707",key:"1xv1c5"}],["path",{d:"m17.657 17.657.707.707",key:"vl76zb"}]]),vw=i("sun-moon",[["path",{d:"M12 2v2",key:"tus03m"}],["path",{d:"M13 8.129A4 4 0 0 1 15.873 11",key:"my0cn3"}],["path",{d:"m19 5-1.256 1.256",key:"1yg6a6"}],["path",{d:"M20 12h2",key:"1q8mjw"}],["path",{d:"M9 8a5 5 0 1 0 7 7 7 7 0 1 1-7-7",key:"4qob92"}]]),vx=i("sun-snow",[["path",{d:"M10 21v-1",key:"1u8rkd"}],["path",{d:"M10 4V3",key:"pkzwkn"}],["path",{d:"M10 9a3 3 0 0 0 0 6",key:"gv75dk"}],["path",{d:"m14 20 1.25-2.5L18 18",key:"1chtki"}],["path",{d:"m14 4 1.25 2.5L18 6",key:"1b4wsy"}],["path",{d:"m17 21-3-6 1.5-3H22",key:"o5qa3v"}],["path",{d:"m17 3-3 6 1.5 3",key:"11697g"}],["path",{d:"M2 12h1",key:"1uaihz"}],["path",{d:"m20 10-1.5 2 1.5 2",key:"1swlpi"}],["path",{d:"m3.64 18.36.7-.7",key:"105rm9"}],["path",{d:"m4.34 6.34-.7-.7",key:"d3unjp"}]]),vy=i("sun",[["circle",{cx:"12",cy:"12",r:"4",key:"4exip2"}],["path",{d:"M12 2v2",key:"tus03m"}],["path",{d:"M12 20v2",key:"1lh1kg"}],["path",{d:"m4.93 4.93 1.41 1.41",key:"149t6j"}],["path",{d:"m17.66 17.66 1.41 1.41",key:"ptbguv"}],["path",{d:"M2 12h2",key:"1t8f8n"}],["path",{d:"M20 12h2",key:"1q8mjw"}],["path",{d:"m6.34 17.66-1.41 1.41",key:"1m8zz5"}],["path",{d:"m19.07 4.93-1.41 1.41",key:"1shlcs"}]]),vz=i("sunrise",[["path",{d:"M12 2v8",key:"1q4o3n"}],["path",{d:"m4.93 10.93 1.41 1.41",key:"2a7f42"}],["path",{d:"M2 18h2",key:"j10viu"}],["path",{d:"M20 18h2",key:"wocana"}],["path",{d:"m19.07 10.93-1.41 1.41",key:"15zs5n"}],["path",{d:"M22 22H2",key:"19qnx5"}],["path",{d:"m8 6 4-4 4 4",key:"ybng9g"}],["path",{d:"M16 18a4 4 0 0 0-8 0",key:"1lzouq"}]]),vA=i("superscript",[["path",{d:"m4 19 8-8",key:"hr47gm"}],["path",{d:"m12 19-8-8",key:"1dhhmo"}],["path",{d:"M20 12h-4c0-1.5.442-2 1.5-2.5S20 8.334 20 7.002c0-.472-.17-.93-.484-1.29a2.105 2.105 0 0 0-2.617-.436c-.42.239-.738.614-.899 1.06",key:"1dfcux"}]]),vB=i("sunset",[["path",{d:"M12 10V2",key:"16sf7g"}],["path",{d:"m4.93 10.93 1.41 1.41",key:"2a7f42"}],["path",{d:"M2 18h2",key:"j10viu"}],["path",{d:"M20 18h2",key:"wocana"}],["path",{d:"m19.07 10.93-1.41 1.41",key:"15zs5n"}],["path",{d:"M22 22H2",key:"19qnx5"}],["path",{d:"m16 6-4 4-4-4",key:"6wukr"}],["path",{d:"M16 18a4 4 0 0 0-8 0",key:"1lzouq"}]]),vC=i("swatch-book",[["path",{d:"M11 17a4 4 0 0 1-8 0V5a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2Z",key:"1ldrpk"}],["path",{d:"M16.7 13H19a2 2 0 0 1 2 2v4a2 2 0 0 1-2 2H7",key:"11i5po"}],["path",{d:"M 7 17h.01",key:"1euzgo"}],["path",{d:"m11 8 2.3-2.3a2.4 2.4 0 0 1 3.404.004L18.6 7.6a2.4 2.4 0 0 1 .026 3.434L9.9 19.8",key:"o2gii7"}]]),vD=i("swiss-franc",[["path",{d:"M10 21V3h8",key:"br2l0g"}],["path",{d:"M6 16h9",key:"2py0wn"}],["path",{d:"M10 9.5h7",key:"13dmhz"}]]),vE=i("switch-camera",[["path",{d:"M11 19H4a2 2 0 0 1-2-2V7a2 2 0 0 1 2-2h5",key:"mtk2lu"}],["path",{d:"M13 5h7a2 2 0 0 1 2 2v10a2 2 0 0 1-2 2h-5",key:"120jsl"}],["circle",{cx:"12",cy:"12",r:"3",key:"1v7zrd"}],["path",{d:"m18 22-3-3 3-3",key:"kgdoj7"}],["path",{d:"m6 2 3 3-3 3",key:"1fnbkv"}]]),vF=i("sword",[["polyline",{points:"14.5 17.5 3 6 3 3 6 3 17.5 14.5",key:"1hfsw2"}],["line",{x1:"13",x2:"19",y1:"19",y2:"13",key:"1vrmhu"}],["line",{x1:"16",x2:"20",y1:"16",y2:"20",key:"1bron3"}],["line",{x1:"19",x2:"21",y1:"21",y2:"19",key:"13pww6"}]]),vG=i("swords",[["polyline",{points:"14.5 17.5 3 6 3 3 6 3 17.5 14.5",key:"1hfsw2"}],["line",{x1:"13",x2:"19",y1:"19",y2:"13",key:"1vrmhu"}],["line",{x1:"16",x2:"20",y1:"16",y2:"20",key:"1bron3"}],["line",{x1:"19",x2:"21",y1:"21",y2:"19",key:"13pww6"}],["polyline",{points:"14.5 6.5 18 3 21 3 21 6 17.5 9.5",key:"hbey2j"}],["line",{x1:"5",x2:"9",y1:"14",y2:"18",key:"1hf58s"}],["line",{x1:"7",x2:"4",y1:"17",y2:"20",key:"pidxm4"}],["line",{x1:"3",x2:"5",y1:"19",y2:"21",key:"1pehsh"}]]),vH=i("syringe",[["path",{d:"m18 2 4 4",key:"22kx64"}],["path",{d:"m17 7 3-3",key:"1w1zoj"}],["path",{d:"M19 9 8.7 19.3c-1 1-2.5 1-3.4 0l-.6-.6c-1-1-1-2.5 0-3.4L15 5",key:"1exhtz"}],["path",{d:"m9 11 4 4",key:"rovt3i"}],["path",{d:"m5 19-3 3",key:"59f2uf"}],["path",{d:"m14 4 6 6",key:"yqp9t2"}]]),vI=i("table-2",[["path",{d:"M9 3H5a2 2 0 0 0-2 2v4m6-6h10a2 2 0 0 1 2 2v4M9 3v18m0 0h10a2 2 0 0 0 2-2V9M9 21H5a2 2 0 0 1-2-2V9m0 0h18",key:"gugj83"}]]),vJ=i("table-cells-merge",[["path",{d:"M12 21v-6",key:"lihzve"}],["path",{d:"M12 9V3",key:"da5inc"}],["path",{d:"M3 15h18",key:"5xshup"}],["path",{d:"M3 9h18",key:"1pudct"}],["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",key:"afitv7"}]]),vK=i("table-cells-split",[["path",{d:"M12 15V9",key:"8c7uyn"}],["path",{d:"M3 15h18",key:"5xshup"}],["path",{d:"M3 9h18",key:"1pudct"}],["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",key:"afitv7"}]]),vL=i("table-columns-split",[["path",{d:"M14 14v2",key:"w2a1xv"}],["path",{d:"M14 20v2",key:"1lq872"}],["path",{d:"M14 2v2",key:"6buw04"}],["path",{d:"M14 8v2",key:"i67w9a"}],["path",{d:"M2 15h8",key:"82wtch"}],["path",{d:"M2 3h6a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H2",key:"up0l64"}],["path",{d:"M2 9h8",key:"yelfik"}],["path",{d:"M22 15h-4",key:"1es58f"}],["path",{d:"M22 3h-2a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h2",key:"pdjoqf"}],["path",{d:"M22 9h-4",key:"1luja7"}],["path",{d:"M5 3v18",key:"14hmio"}]]),vM=i("table-of-contents",[["path",{d:"M16 12H3",key:"1a2rj7"}],["path",{d:"M16 18H3",key:"12xzn7"}],["path",{d:"M16 6H3",key:"1wxfjs"}],["path",{d:"M21 12h.01",key:"msek7k"}],["path",{d:"M21 18h.01",key:"1e8rq1"}],["path",{d:"M21 6h.01",key:"1koanj"}]]),vN=i("table-properties",[["path",{d:"M15 3v18",key:"14nvp0"}],["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",key:"afitv7"}],["path",{d:"M21 9H3",key:"1338ky"}],["path",{d:"M21 15H3",key:"9uk58r"}]]),vO=i("table-rows-split",[["path",{d:"M14 10h2",key:"1lstlu"}],["path",{d:"M15 22v-8",key:"1fwwgm"}],["path",{d:"M15 2v4",key:"1044rn"}],["path",{d:"M2 10h2",key:"1r8dkt"}],["path",{d:"M20 10h2",key:"1ug425"}],["path",{d:"M3 19h18",key:"awlh7x"}],["path",{d:"M3 22v-6a2 2 135 0 1 2-2h14a2 2 45 0 1 2 2v6",key:"ibqhof"}],["path",{d:"M3 2v2a2 2 45 0 0 2 2h14a2 2 135 0 0 2-2V2",key:"1uenja"}],["path",{d:"M8 10h2",key:"66od0"}],["path",{d:"M9 22v-8",key:"fmnu31"}],["path",{d:"M9 2v4",key:"j1yeou"}]]),vP=i("table",[["path",{d:"M12 3v18",key:"108xh3"}],["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",key:"afitv7"}],["path",{d:"M3 9h18",key:"1pudct"}],["path",{d:"M3 15h18",key:"5xshup"}]]),vQ=i("tablet-smartphone",[["rect",{width:"10",height:"14",x:"3",y:"8",rx:"2",key:"1vrsiq"}],["path",{d:"M5 4a2 2 0 0 1 2-2h12a2 2 0 0 1 2 2v16a2 2 0 0 1-2 2h-2.4",key:"1j4zmg"}],["path",{d:"M8 18h.01",key:"lrp35t"}]]),vR=i("tablet",[["rect",{width:"16",height:"20",x:"4",y:"2",rx:"2",ry:"2",key:"76otgf"}],["line",{x1:"12",x2:"12.01",y1:"18",y2:"18",key:"1dp563"}]]),vS=i("tablets",[["circle",{cx:"7",cy:"7",r:"5",key:"x29byf"}],["circle",{cx:"17",cy:"17",r:"5",key:"1op1d2"}],["path",{d:"M12 17h10",key:"ls21zv"}],["path",{d:"m3.46 10.54 7.08-7.08",key:"1rehiu"}]]),vT=i("tag",[["path",{d:"M12.586 2.586A2 2 0 0 0 11.172 2H4a2 2 0 0 0-2 2v7.172a2 2 0 0 0 .586 1.414l8.704 8.704a2.426 2.426 0 0 0 3.42 0l6.58-6.58a2.426 2.426 0 0 0 0-3.42z",key:"vktsd0"}],["circle",{cx:"7.5",cy:"7.5",r:".5",fill:"currentColor",key:"kqv944"}]]),vU=i("tags",[["path",{d:"m15 5 6.3 6.3a2.4 2.4 0 0 1 0 3.4L17 19",key:"1cbfv1"}],["path",{d:"M9.586 5.586A2 2 0 0 0 8.172 5H3a1 1 0 0 0-1 1v5.172a2 2 0 0 0 .586 1.414L8.29 18.29a2.426 2.426 0 0 0 3.42 0l3.58-3.58a2.426 2.426 0 0 0 0-3.42z",key:"135mg7"}],["circle",{cx:"6.5",cy:"9.5",r:".5",fill:"currentColor",key:"5pm5xn"}]]),vV=i("tally-1",[["path",{d:"M4 4v16",key:"6qkkli"}]]),vW=i("tally-2",[["path",{d:"M4 4v16",key:"6qkkli"}],["path",{d:"M9 4v16",key:"81ygyz"}]]),vX=i("tally-3",[["path",{d:"M4 4v16",key:"6qkkli"}],["path",{d:"M9 4v16",key:"81ygyz"}],["path",{d:"M14 4v16",key:"12vmem"}]]),vY=i("tally-4",[["path",{d:"M4 4v16",key:"6qkkli"}],["path",{d:"M9 4v16",key:"81ygyz"}],["path",{d:"M14 4v16",key:"12vmem"}],["path",{d:"M19 4v16",key:"8ij5ei"}]]),vZ=i("tally-5",[["path",{d:"M4 4v16",key:"6qkkli"}],["path",{d:"M9 4v16",key:"81ygyz"}],["path",{d:"M14 4v16",key:"12vmem"}],["path",{d:"M19 4v16",key:"8ij5ei"}],["path",{d:"M22 6 2 18",key:"h9moai"}]]),v$=i("tangent",[["circle",{cx:"17",cy:"4",r:"2",key:"y5j2s2"}],["path",{d:"M15.59 5.41 5.41 15.59",key:"l0vprr"}],["circle",{cx:"4",cy:"17",r:"2",key:"9p4efm"}],["path",{d:"M12 22s-4-9-1.5-11.5S22 12 22 12",key:"1twk4o"}]]),v_=i("target",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["circle",{cx:"12",cy:"12",r:"6",key:"1vlfrh"}],["circle",{cx:"12",cy:"12",r:"2",key:"1c9p78"}]]),v0=i("telescope",[["path",{d:"m10.065 12.493-6.18 1.318a.934.934 0 0 1-1.108-.702l-.537-2.15a1.07 1.07 0 0 1 .691-1.265l13.504-4.44",key:"k4qptu"}],["path",{d:"m13.56 11.747 4.332-.924",key:"19l80z"}],["path",{d:"m16 21-3.105-6.21",key:"7oh9d"}],["path",{d:"M16.485 5.94a2 2 0 0 1 1.455-2.425l1.09-.272a1 1 0 0 1 1.212.727l1.515 6.06a1 1 0 0 1-.727 1.213l-1.09.272a2 2 0 0 1-2.425-1.455z",key:"m7xp4m"}],["path",{d:"m6.158 8.633 1.114 4.456",key:"74o979"}],["path",{d:"m8 21 3.105-6.21",key:"1fvxut"}],["circle",{cx:"12",cy:"13",r:"2",key:"1c1ljs"}]]),v1=i("tent-tree",[["circle",{cx:"4",cy:"4",r:"2",key:"bt5ra8"}],["path",{d:"m14 5 3-3 3 3",key:"1sorif"}],["path",{d:"m14 10 3-3 3 3",key:"1jyi9h"}],["path",{d:"M17 14V2",key:"8ymqnk"}],["path",{d:"M17 14H7l-5 8h20Z",key:"13ar7p"}],["path",{d:"M8 14v8",key:"1ghmqk"}],["path",{d:"m9 14 5 8",key:"13pgi6"}]]),v2=i("tent",[["path",{d:"M3.5 21 14 3",key:"1szst5"}],["path",{d:"M20.5 21 10 3",key:"1310c3"}],["path",{d:"M15.5 21 12 15l-3.5 6",key:"1ddtfw"}],["path",{d:"M2 21h20",key:"1nyx9w"}]]),v3=i("terminal",[["path",{d:"M12 19h8",key:"baeox8"}],["path",{d:"m4 17 6-6-6-6",key:"1yngyt"}]]),v4=i("test-tube-diagonal",[["path",{d:"M21 7 6.82 21.18a2.83 2.83 0 0 1-3.99-.01a2.83 2.83 0 0 1 0-4L17 3",key:"1ub6xw"}],["path",{d:"m16 2 6 6",key:"1gw87d"}],["path",{d:"M12 16H4",key:"1cjfip"}]]),v5=i("test-tube",[["path",{d:"M14.5 2v17.5c0 1.4-1.1 2.5-2.5 2.5c-1.4 0-2.5-1.1-2.5-2.5V2",key:"125lnx"}],["path",{d:"M8.5 2h7",key:"csnxdl"}],["path",{d:"M14.5 16h-5",key:"1ox875"}]]),v6=i("test-tubes",[["path",{d:"M9 2v17.5A2.5 2.5 0 0 1 6.5 22A2.5 2.5 0 0 1 4 19.5V2",key:"1hjrqt"}],["path",{d:"M20 2v17.5a2.5 2.5 0 0 1-2.5 2.5a2.5 2.5 0 0 1-2.5-2.5V2",key:"16lc8n"}],["path",{d:"M3 2h7",key:"7s29d5"}],["path",{d:"M14 2h7",key:"7sicin"}],["path",{d:"M9 16H4",key:"1bfye3"}],["path",{d:"M20 16h-5",key:"ddnjpe"}]]),v7=i("text-cursor-input",[["path",{d:"M12 20h-1a2 2 0 0 1-2-2 2 2 0 0 1-2 2H6",key:"1528k5"}],["path",{d:"M13 8h7a2 2 0 0 1 2 2v4a2 2 0 0 1-2 2h-7",key:"13ksps"}],["path",{d:"M5 16H4a2 2 0 0 1-2-2v-4a2 2 0 0 1 2-2h1",key:"1n9rhb"}],["path",{d:"M6 4h1a2 2 0 0 1 2 2 2 2 0 0 1 2-2h1",key:"1mj8rg"}],["path",{d:"M9 6v12",key:"velyjx"}]]),v8=i("text-quote",[["path",{d:"M17 6H3",key:"16j9eg"}],["path",{d:"M21 12H8",key:"scolzb"}],["path",{d:"M21 18H8",key:"1wfozv"}],["path",{d:"M3 12v6",key:"fv4c87"}]]),v9=i("text-cursor",[["path",{d:"M17 22h-1a4 4 0 0 1-4-4V6a4 4 0 0 1 4-4h1",key:"uvaxm9"}],["path",{d:"M7 22h1a4 4 0 0 0 4-4v-1",key:"11xy8d"}],["path",{d:"M7 2h1a4 4 0 0 1 4 4v1",key:"1uw06m"}]]),wa=i("text-search",[["path",{d:"M21 6H3",key:"1jwq7v"}],["path",{d:"M10 12H3",key:"1ulcyk"}],["path",{d:"M10 18H3",key:"13769t"}],["circle",{cx:"17",cy:"15",r:"3",key:"1upz2a"}],["path",{d:"m21 19-1.9-1.9",key:"dwi7p8"}]]),wb=i("text-select",[["path",{d:"M14 21h1",key:"v9vybs"}],["path",{d:"M14 3h1",key:"1ec4yj"}],["path",{d:"M19 3a2 2 0 0 1 2 2",key:"18rm91"}],["path",{d:"M21 14v1",key:"169vum"}],["path",{d:"M21 19a2 2 0 0 1-2 2",key:"1j7049"}],["path",{d:"M21 9v1",key:"mxsmne"}],["path",{d:"M3 14v1",key:"vnatye"}],["path",{d:"M3 9v1",key:"1r0deq"}],["path",{d:"M5 21a2 2 0 0 1-2-2",key:"sbafld"}],["path",{d:"M5 3a2 2 0 0 0-2 2",key:"y57alp"}],["path",{d:"M7 12h10",key:"b7w52i"}],["path",{d:"M7 16h6",key:"1vyc9m"}],["path",{d:"M7 8h8",key:"1jbsf9"}],["path",{d:"M9 21h1",key:"15o7lz"}],["path",{d:"M9 3h1",key:"1yesri"}]]),wc=i("text",[["path",{d:"M15 18H3",key:"olowqp"}],["path",{d:"M17 6H3",key:"16j9eg"}],["path",{d:"M21 12H3",key:"2avoz0"}]]),wd=i("theater",[["path",{d:"M2 10s3-3 3-8",key:"3xiif0"}],["path",{d:"M22 10s-3-3-3-8",key:"ioaa5q"}],["path",{d:"M10 2c0 4.4-3.6 8-8 8",key:"16fkpi"}],["path",{d:"M14 2c0 4.4 3.6 8 8 8",key:"b9eulq"}],["path",{d:"M2 10s2 2 2 5",key:"1au1lb"}],["path",{d:"M22 10s-2 2-2 5",key:"qi2y5e"}],["path",{d:"M8 15h8",key:"45n4r"}],["path",{d:"M2 22v-1a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v1",key:"1vsc2m"}],["path",{d:"M14 22v-1a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v1",key:"hrha4u"}]]),we=i("thermometer-snowflake",[["path",{d:"m10 20-1.25-2.5L6 18",key:"18frcb"}],["path",{d:"M10 4 8.75 6.5 6 6",key:"7mghy3"}],["path",{d:"M10.585 15H10",key:"4nqulp"}],["path",{d:"M2 12h6.5L10 9",key:"kv9z4n"}],["path",{d:"M20 14.54a4 4 0 1 1-4 0V4a2 2 0 0 1 4 0z",key:"yu0u2z"}],["path",{d:"m4 10 1.5 2L4 14",key:"k9enpj"}],["path",{d:"m7 21 3-6-1.5-3",key:"j8hb9u"}],["path",{d:"m7 3 3 6h2",key:"1bbqgq"}]]),wf=i("thermometer-sun",[["path",{d:"M12 9a4 4 0 0 0-2 7.5",key:"1jvsq6"}],["path",{d:"M12 3v2",key:"1w22ol"}],["path",{d:"m6.6 18.4-1.4 1.4",key:"w2yidj"}],["path",{d:"M20 4v10.54a4 4 0 1 1-4 0V4a2 2 0 0 1 4 0Z",key:"iof6y5"}],["path",{d:"M4 13H2",key:"118le4"}],["path",{d:"M6.34 7.34 4.93 5.93",key:"1brd51"}]]),wg=i("thermometer",[["path",{d:"M14 4v10.54a4 4 0 1 1-4 0V4a2 2 0 0 1 4 0Z",key:"17jzev"}]]),wh=i("thumbs-down",[["path",{d:"M17 14V2",key:"8ymqnk"}],["path",{d:"M9 18.12 10 14H4.17a2 2 0 0 1-1.92-2.56l2.33-8A2 2 0 0 1 6.5 2H20a2 2 0 0 1 2 2v8a2 2 0 0 1-2 2h-2.76a2 2 0 0 0-1.79 1.11L12 22a3.13 3.13 0 0 1-3-3.88Z",key:"m61m77"}]]),wi=i("thumbs-up",[["path",{d:"M7 10v12",key:"1qc93n"}],["path",{d:"M15 5.88 14 10h5.83a2 2 0 0 1 1.92 2.56l-2.33 8A2 2 0 0 1 17.5 22H4a2 2 0 0 1-2-2v-8a2 2 0 0 1 2-2h2.76a2 2 0 0 0 1.79-1.11L12 2a3.13 3.13 0 0 1 3 3.88Z",key:"emmmcr"}]]),wj=i("ticket-check",[["path",{d:"M2 9a3 3 0 0 1 0 6v2a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2v-2a3 3 0 0 1 0-6V7a2 2 0 0 0-2-2H4a2 2 0 0 0-2 2Z",key:"qn84l0"}],["path",{d:"m9 12 2 2 4-4",key:"dzmm74"}]]),wk=i("ticket-minus",[["path",{d:"M2 9a3 3 0 0 1 0 6v2a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2v-2a3 3 0 0 1 0-6V7a2 2 0 0 0-2-2H4a2 2 0 0 0-2 2Z",key:"qn84l0"}],["path",{d:"M9 12h6",key:"1c52cq"}]]),wl=i("ticket-percent",[["path",{d:"M2 9a3 3 0 1 1 0 6v2a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2v-2a3 3 0 1 1 0-6V7a2 2 0 0 0-2-2H4a2 2 0 0 0-2 2Z",key:"1l48ns"}],["path",{d:"M9 9h.01",key:"1q5me6"}],["path",{d:"m15 9-6 6",key:"1uzhvr"}],["path",{d:"M15 15h.01",key:"lqbp3k"}]]),wm=i("ticket-plus",[["path",{d:"M2 9a3 3 0 0 1 0 6v2a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2v-2a3 3 0 0 1 0-6V7a2 2 0 0 0-2-2H4a2 2 0 0 0-2 2Z",key:"qn84l0"}],["path",{d:"M9 12h6",key:"1c52cq"}],["path",{d:"M12 9v6",key:"199k2o"}]]),wn=i("ticket-slash",[["path",{d:"M2 9a3 3 0 0 1 0 6v2a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2v-2a3 3 0 0 1 0-6V7a2 2 0 0 0-2-2H4a2 2 0 0 0-2 2Z",key:"qn84l0"}],["path",{d:"m9.5 14.5 5-5",key:"qviqfa"}]]),wo=i("ticket-x",[["path",{d:"M2 9a3 3 0 0 1 0 6v2a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2v-2a3 3 0 0 1 0-6V7a2 2 0 0 0-2-2H4a2 2 0 0 0-2 2Z",key:"qn84l0"}],["path",{d:"m9.5 14.5 5-5",key:"qviqfa"}],["path",{d:"m9.5 9.5 5 5",key:"18nt4w"}]]),wp=i("ticket",[["path",{d:"M2 9a3 3 0 0 1 0 6v2a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2v-2a3 3 0 0 1 0-6V7a2 2 0 0 0-2-2H4a2 2 0 0 0-2 2Z",key:"qn84l0"}],["path",{d:"M13 5v2",key:"dyzc3o"}],["path",{d:"M13 17v2",key:"1ont0d"}],["path",{d:"M13 11v2",key:"1wjjxi"}]]),wq=i("tickets-plane",[["path",{d:"M10.5 17h1.227a2 2 0 0 0 1.345-.52L18 12",key:"16muxl"}],["path",{d:"m12 13.5 3.75.5",key:"1i9qhk"}],["path",{d:"m4.5 8 10.58-5.06a1 1 0 0 1 1.342.488L18.5 8",key:"12lg5p"}],["path",{d:"M6 10V8",key:"1y41hn"}],["path",{d:"M6 14v1",key:"cao2tf"}],["path",{d:"M6 19v2",key:"1loha6"}],["rect",{x:"2",y:"8",width:"20",height:"13",rx:"2",key:"p3bz5l"}]]),wr=i("tickets",[["path",{d:"m4.5 8 10.58-5.06a1 1 0 0 1 1.342.488L18.5 8",key:"12lg5p"}],["path",{d:"M6 10V8",key:"1y41hn"}],["path",{d:"M6 14v1",key:"cao2tf"}],["path",{d:"M6 19v2",key:"1loha6"}],["rect",{x:"2",y:"8",width:"20",height:"13",rx:"2",key:"p3bz5l"}]]),ws=i("timer-off",[["path",{d:"M10 2h4",key:"n1abiw"}],["path",{d:"M4.6 11a8 8 0 0 0 1.7 8.7 8 8 0 0 0 8.7 1.7",key:"10he05"}],["path",{d:"M7.4 7.4a8 8 0 0 1 10.3 1 8 8 0 0 1 .9 10.2",key:"15f7sh"}],["path",{d:"m2 2 20 20",key:"1ooewy"}],["path",{d:"M12 12v-2",key:"fwoke6"}]]),wt=i("timer-reset",[["path",{d:"M10 2h4",key:"n1abiw"}],["path",{d:"M12 14v-4",key:"1evpnu"}],["path",{d:"M4 13a8 8 0 0 1 8-7 8 8 0 1 1-5.3 14L4 17.6",key:"1ts96g"}],["path",{d:"M9 17H4v5",key:"8t5av"}]]),wu=i("timer",[["line",{x1:"10",x2:"14",y1:"2",y2:"2",key:"14vaq8"}],["line",{x1:"12",x2:"15",y1:"14",y2:"11",key:"17fdiu"}],["circle",{cx:"12",cy:"14",r:"8",key:"1e1u0o"}]]),wv=i("toggle-left",[["circle",{cx:"9",cy:"12",r:"3",key:"u3jwor"}],["rect",{width:"20",height:"14",x:"2",y:"5",rx:"7",key:"g7kal2"}]]),ww=i("toggle-right",[["circle",{cx:"15",cy:"12",r:"3",key:"1afu0r"}],["rect",{width:"20",height:"14",x:"2",y:"5",rx:"7",key:"g7kal2"}]]),wx=i("toilet",[["path",{d:"M7 12h13a1 1 0 0 1 1 1 5 5 0 0 1-5 5h-.598a.5.5 0 0 0-.424.765l1.544 2.47a.5.5 0 0 1-.424.765H5.402a.5.5 0 0 1-.424-.765L7 18",key:"kc4kqr"}],["path",{d:"M8 18a5 5 0 0 1-5-5V4a2 2 0 0 1 2-2h8a2 2 0 0 1 2 2v8",key:"1tqs57"}]]),wy=i("tool-case",[["path",{d:"M10 15h4",key:"192ueg"}],["path",{d:"m14.817 10.995-.971-1.45 1.034-1.232a2 2 0 0 0-2.025-3.238l-1.82.364L9.91 3.885a2 2 0 0 0-3.625.748L6.141 6.55l-1.725.426a2 2 0 0 0-.19 3.756l.657.27",key:"xbnumr"}],["path",{d:"m18.822 10.995 2.26-5.38a1 1 0 0 0-.557-1.318L16.954 2.9a1 1 0 0 0-1.281.533l-.924 2.122",key:"eaw7gc"}],["path",{d:"M4 12.006A1 1 0 0 1 4.994 11H19a1 1 0 0 1 1 1v7a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2z",key:"1vaooh"}]]),wz=i("tornado",[["path",{d:"M21 4H3",key:"1hwok0"}],["path",{d:"M18 8H6",key:"41n648"}],["path",{d:"M19 12H9",key:"1g4lpz"}],["path",{d:"M16 16h-6",key:"1j5d54"}],["path",{d:"M11 20H9",key:"39obr8"}]]),wA=i("torus",[["ellipse",{cx:"12",cy:"11",rx:"3",ry:"2",key:"1b2qxu"}],["ellipse",{cx:"12",cy:"12.5",rx:"10",ry:"8.5",key:"h8emeu"}]]),wB=i("touchpad",[["rect",{width:"20",height:"16",x:"2",y:"4",rx:"2",key:"18n3k1"}],["path",{d:"M2 14h20",key:"myj16y"}],["path",{d:"M12 20v-6",key:"1rm09r"}]]),wC=i("touchpad-off",[["path",{d:"M12 20v-6",key:"1rm09r"}],["path",{d:"M19.656 14H22",key:"170xzr"}],["path",{d:"M2 14h12",key:"d8icqz"}],["path",{d:"m2 2 20 20",key:"1ooewy"}],["path",{d:"M20 20H4a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2",key:"s23sx2"}],["path",{d:"M9.656 4H20a2 2 0 0 1 2 2v10.344",key:"ovjcvl"}]]),wD=i("tower-control",[["path",{d:"M18.2 12.27 20 6H4l1.8 6.27a1 1 0 0 0 .95.73h10.5a1 1 0 0 0 .96-.73Z",key:"1pledb"}],["path",{d:"M8 13v9",key:"hmv0ci"}],["path",{d:"M16 22v-9",key:"ylnf1u"}],["path",{d:"m9 6 1 7",key:"dpdgam"}],["path",{d:"m15 6-1 7",key:"ls7zgu"}],["path",{d:"M12 6V2",key:"1pj48d"}],["path",{d:"M13 2h-2",key:"mj6ths"}]]),wE=i("toy-brick",[["rect",{width:"18",height:"12",x:"3",y:"8",rx:"1",key:"158fvp"}],["path",{d:"M10 8V5c0-.6-.4-1-1-1H6a1 1 0 0 0-1 1v3",key:"s0042v"}],["path",{d:"M19 8V5c0-.6-.4-1-1-1h-3a1 1 0 0 0-1 1v3",key:"9wmeh2"}]]),wF=i("tractor",[["path",{d:"m10 11 11 .9a1 1 0 0 1 .8 1.1l-.665 4.158a1 1 0 0 1-.988.842H20",key:"she1j9"}],["path",{d:"M16 18h-5",key:"bq60fd"}],["path",{d:"M18 5a1 1 0 0 0-1 1v5.573",key:"1kv8ia"}],["path",{d:"M3 4h8.129a1 1 0 0 1 .99.863L13 11.246",key:"1q1ert"}],["path",{d:"M4 11V4",key:"9ft8pt"}],["path",{d:"M7 15h.01",key:"k5ht0j"}],["path",{d:"M8 10.1V4",key:"1jgyzo"}],["circle",{cx:"18",cy:"18",r:"2",key:"1emm8v"}],["circle",{cx:"7",cy:"15",r:"5",key:"ddtuc"}]]),wG=i("traffic-cone",[["path",{d:"M16.05 10.966a5 2.5 0 0 1-8.1 0",key:"m5jpwb"}],["path",{d:"m16.923 14.049 4.48 2.04a1 1 0 0 1 .001 1.831l-8.574 3.9a2 2 0 0 1-1.66 0l-8.574-3.91a1 1 0 0 1 0-1.83l4.484-2.04",key:"rbg3g8"}],["path",{d:"M16.949 14.14a5 2.5 0 1 1-9.9 0L10.063 3.5a2 2 0 0 1 3.874 0z",key:"vap8c8"}],["path",{d:"M9.194 6.57a5 2.5 0 0 0 5.61 0",key:"15hn5c"}]]),wH=i("train-front-tunnel",[["path",{d:"M2 22V12a10 10 0 1 1 20 0v10",key:"o0fyp0"}],["path",{d:"M15 6.8v1.4a3 2.8 0 1 1-6 0V6.8",key:"m8q3n9"}],["path",{d:"M10 15h.01",key:"44in9x"}],["path",{d:"M14 15h.01",key:"5mohn5"}],["path",{d:"M10 19a4 4 0 0 1-4-4v-3a6 6 0 1 1 12 0v3a4 4 0 0 1-4 4Z",key:"hckbmu"}],["path",{d:"m9 19-2 3",key:"iij7hm"}],["path",{d:"m15 19 2 3",key:"npx8sa"}]]),wI=i("train-front",[["path",{d:"M8 3.1V7a4 4 0 0 0 8 0V3.1",key:"1v71zp"}],["path",{d:"m9 15-1-1",key:"1yrq24"}],["path",{d:"m15 15 1-1",key:"1t0d6s"}],["path",{d:"M9 19c-2.8 0-5-2.2-5-5v-4a8 8 0 0 1 16 0v4c0 2.8-2.2 5-5 5Z",key:"1p0hjs"}],["path",{d:"m8 19-2 3",key:"13i0xs"}],["path",{d:"m16 19 2 3",key:"xo31yx"}]]),wJ=i("train-track",[["path",{d:"M2 17 17 2",key:"18b09t"}],["path",{d:"m2 14 8 8",key:"1gv9hu"}],["path",{d:"m5 11 8 8",key:"189pqp"}],["path",{d:"m8 8 8 8",key:"1imecy"}],["path",{d:"m11 5 8 8",key:"ummqn6"}],["path",{d:"m14 2 8 8",key:"1vk7dn"}],["path",{d:"M7 22 22 7",key:"15mb1i"}]]),wK=i("tram-front",[["rect",{width:"16",height:"16",x:"4",y:"3",rx:"2",key:"1wxw4b"}],["path",{d:"M4 11h16",key:"mpoxn0"}],["path",{d:"M12 3v8",key:"1h2ygw"}],["path",{d:"m8 19-2 3",key:"13i0xs"}],["path",{d:"m18 22-2-3",key:"1p0ohu"}],["path",{d:"M8 15h.01",key:"a7atzg"}],["path",{d:"M16 15h.01",key:"rnfrdf"}]]),wL=i("transgender",[["path",{d:"M12 16v6",key:"c8a4gj"}],["path",{d:"M14 20h-4",key:"m8m19d"}],["path",{d:"M18 2h4v4",key:"1341mj"}],["path",{d:"m2 2 7.17 7.17",key:"13q8l2"}],["path",{d:"M2 5.355V2h3.357",key:"18136r"}],["path",{d:"m22 2-7.17 7.17",key:"1epvy4"}],["path",{d:"M8 5 5 8",key:"mgbjhz"}],["circle",{cx:"12",cy:"12",r:"4",key:"4exip2"}]]),wM=i("trash-2",[["path",{d:"M3 6h18",key:"d0wm0j"}],["path",{d:"M19 6v14c0 1-1 2-2 2H7c-1 0-2-1-2-2V6",key:"4alrt4"}],["path",{d:"M8 6V4c0-1 1-2 2-2h4c1 0 2 1 2 2v2",key:"v07s0e"}],["line",{x1:"10",x2:"10",y1:"11",y2:"17",key:"1uufr5"}],["line",{x1:"14",x2:"14",y1:"11",y2:"17",key:"xtxkd"}]]),wN=i("trash",[["path",{d:"M3 6h18",key:"d0wm0j"}],["path",{d:"M19 6v14c0 1-1 2-2 2H7c-1 0-2-1-2-2V6",key:"4alrt4"}],["path",{d:"M8 6V4c0-1 1-2 2-2h4c1 0 2 1 2 2v2",key:"v07s0e"}]]),wO=i("tree-deciduous",[["path",{d:"M8 19a4 4 0 0 1-2.24-7.32A3.5 3.5 0 0 1 9 6.03V6a3 3 0 1 1 6 0v.04a3.5 3.5 0 0 1 3.24 5.65A4 4 0 0 1 16 19Z",key:"oadzkq"}],["path",{d:"M12 19v3",key:"npa21l"}]]),wP=i("tree-palm",[["path",{d:"M13 8c0-2.76-2.46-5-5.5-5S2 5.24 2 8h2l1-1 1 1h4",key:"foxbe7"}],["path",{d:"M13 7.14A5.82 5.82 0 0 1 16.5 6c3.04 0 5.5 2.24 5.5 5h-3l-1-1-1 1h-3",key:"18arnh"}],["path",{d:"M5.89 9.71c-2.15 2.15-2.3 5.47-.35 7.43l4.24-4.25.7-.7.71-.71 2.12-2.12c-1.95-1.96-5.27-1.8-7.42.35",key:"ywahnh"}],["path",{d:"M11 15.5c.5 2.5-.17 4.5-1 6.5h4c2-5.5-.5-12-1-14",key:"ft0feo"}]]),wQ=i("tree-pine",[["path",{d:"m17 14 3 3.3a1 1 0 0 1-.7 1.7H4.7a1 1 0 0 1-.7-1.7L7 14h-.3a1 1 0 0 1-.7-1.7L9 9h-.2A1 1 0 0 1 8 7.3L12 3l4 4.3a1 1 0 0 1-.8 1.7H15l3 3.3a1 1 0 0 1-.7 1.7H17Z",key:"cpyugq"}],["path",{d:"M12 22v-3",key:"kmzjlo"}]]),wR=i("trees",[["path",{d:"M10 10v.2A3 3 0 0 1 8.9 16H5a3 3 0 0 1-1-5.8V10a3 3 0 0 1 6 0Z",key:"1l6gj6"}],["path",{d:"M7 16v6",key:"1a82de"}],["path",{d:"M13 19v3",key:"13sx9i"}],["path",{d:"M12 19h8.3a1 1 0 0 0 .7-1.7L18 14h.3a1 1 0 0 0 .7-1.7L16 9h.2a1 1 0 0 0 .8-1.7L13 3l-1.4 1.5",key:"1sj9kv"}]]),wS=i("trending-down",[["path",{d:"M16 17h6v-6",key:"t6n2it"}],["path",{d:"m22 17-8.5-8.5-5 5L2 7",key:"x473p"}]]),wT=i("trello",[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",ry:"2",key:"1m3agn"}],["rect",{width:"3",height:"9",x:"7",y:"7",key:"14n3xi"}],["rect",{width:"3",height:"5",x:"14",y:"7",key:"s4azjd"}]]),wU=i("trending-up-down",[["path",{d:"M14.828 14.828 21 21",key:"ar5fw7"}],["path",{d:"M21 16v5h-5",key:"1ck2sf"}],["path",{d:"m21 3-9 9-4-4-6 6",key:"1h02xo"}],["path",{d:"M21 8V3h-5",key:"1qoq8a"}]]),wV=i("trending-up",[["path",{d:"M16 7h6v6",key:"box55l"}],["path",{d:"m22 7-8.5 8.5-5-5L2 17",key:"1t1m79"}]]),wW=i("triangle-alert",[["path",{d:"m21.73 18-8-14a2 2 0 0 0-3.48 0l-8 14A2 2 0 0 0 4 21h16a2 2 0 0 0 1.73-3",key:"wmoenq"}],["path",{d:"M12 9v4",key:"juzpu7"}],["path",{d:"M12 17h.01",key:"p32p05"}]]),wX=i("triangle-dashed",[["path",{d:"M10.17 4.193a2 2 0 0 1 3.666.013",key:"pltmmw"}],["path",{d:"M14 21h2",key:"v4qezv"}],["path",{d:"m15.874 7.743 1 1.732",key:"10m0iw"}],["path",{d:"m18.849 12.952 1 1.732",key:"zadnam"}],["path",{d:"M21.824 18.18a2 2 0 0 1-1.835 2.824",key:"fvwuk4"}],["path",{d:"M4.024 21a2 2 0 0 1-1.839-2.839",key:"1e1kah"}],["path",{d:"m5.136 12.952-1 1.732",key:"1u4ldi"}],["path",{d:"M8 21h2",key:"i9zjee"}],["path",{d:"m8.102 7.743-1 1.732",key:"1zzo4u"}]]),wY=i("triangle-right",[["path",{d:"M22 18a2 2 0 0 1-2 2H3c-1.1 0-1.3-.6-.4-1.3L20.4 4.3c.9-.7 1.6-.4 1.6.7Z",key:"183wce"}]]),wZ=i("triangle",[["path",{d:"M13.73 4a2 2 0 0 0-3.46 0l-8 14A2 2 0 0 0 4 21h16a2 2 0 0 0 1.73-3Z",key:"14u9p9"}]]),w$=i("trophy",[["path",{d:"M10 14.66v1.626a2 2 0 0 1-.976 1.696A5 5 0 0 0 7 21.978",key:"1n3hpd"}],["path",{d:"M14 14.66v1.626a2 2 0 0 0 .976 1.696A5 5 0 0 1 17 21.978",key:"rfe1zi"}],["path",{d:"M18 9h1.5a1 1 0 0 0 0-5H18",key:"7xy6bh"}],["path",{d:"M4 22h16",key:"57wxv0"}],["path",{d:"M6 9a6 6 0 0 0 12 0V3a1 1 0 0 0-1-1H7a1 1 0 0 0-1 1z",key:"1mhfuq"}],["path",{d:"M6 9H4.5a1 1 0 0 1 0-5H6",key:"tex48p"}]]),w_=i("truck-electric",[["path",{d:"M14 19V7a2 2 0 0 0-2-2H9",key:"15peso"}],["path",{d:"M15 19H9",key:"18q6dt"}],["path",{d:"M19 19h2a1 1 0 0 0 1-1v-3.65a1 1 0 0 0-.22-.62L18.3 9.38a1 1 0 0 0-.78-.38H14",key:"1dkp3j"}],["path",{d:"M2 13v5a1 1 0 0 0 1 1h2",key:"pkmmzz"}],["path",{d:"M4 3 2.15 5.15a.495.495 0 0 0 .35.86h2.15a.47.47 0 0 1 .35.86L3 9.02",key:"1n26pd"}],["circle",{cx:"17",cy:"19",r:"2",key:"1nxcgd"}],["circle",{cx:"7",cy:"19",r:"2",key:"gzo7y7"}]]),w0=i("truck",[["path",{d:"M14 18V6a2 2 0 0 0-2-2H4a2 2 0 0 0-2 2v11a1 1 0 0 0 1 1h2",key:"wrbu53"}],["path",{d:"M15 18H9",key:"1lyqi6"}],["path",{d:"M19 18h2a1 1 0 0 0 1-1v-3.65a1 1 0 0 0-.22-.624l-3.48-4.35A1 1 0 0 0 17.52 8H14",key:"lysw3i"}],["circle",{cx:"17",cy:"18",r:"2",key:"332jqn"}],["circle",{cx:"7",cy:"18",r:"2",key:"19iecd"}]]),w1=i("turtle",[["path",{d:"m12 10 2 4v3a1 1 0 0 0 1 1h2a1 1 0 0 0 1-1v-3a8 8 0 1 0-16 0v3a1 1 0 0 0 1 1h2a1 1 0 0 0 1-1v-3l2-4h4Z",key:"1lbbv7"}],["path",{d:"M4.82 7.9 8 10",key:"m9wose"}],["path",{d:"M15.18 7.9 12 10",key:"p8dp2u"}],["path",{d:"M16.93 10H20a2 2 0 0 1 0 4H2",key:"12nsm7"}]]),w2=i("tv-minimal",[["path",{d:"M7 21h10",key:"1b0cd5"}],["rect",{width:"20",height:"14",x:"2",y:"3",rx:"2",key:"48i651"}]]),w3=i("tv-minimal-play",[["path",{d:"M10 7.75a.75.75 0 0 1 1.142-.638l3.664 2.249a.75.75 0 0 1 0 1.278l-3.664 2.25a.75.75 0 0 1-1.142-.64z",key:"1pctta"}],["path",{d:"M7 21h10",key:"1b0cd5"}],["rect",{width:"20",height:"14",x:"2",y:"3",rx:"2",key:"48i651"}]]),w4=i("tv",[["path",{d:"m17 2-5 5-5-5",key:"16satq"}],["rect",{width:"20",height:"15",x:"2",y:"7",rx:"2",key:"1e6viu"}]]),w5=i("twitch",[["path",{d:"M21 2H3v16h5v4l4-4h5l4-4V2zm-10 9V7m5 4V7",key:"c0yzno"}]]),w6=i("twitter",[["path",{d:"M22 4s-.7 2.1-2 3.4c1.6 10-9.4 17.3-18 11.6 2.2.1 4.4-.6 6-2C3 15.5.5 9.6 3 5c2.2 2.6 5.6 4.1 9 4-.9-4.2 4-6.6 7-3.8 1.1 0 3-1.2 3-1.2z",key:"pff0z6"}]]),w7=i("type",[["path",{d:"M12 4v16",key:"1654pz"}],["path",{d:"M4 7V5a1 1 0 0 1 1-1h14a1 1 0 0 1 1 1v2",key:"e0r10z"}],["path",{d:"M9 20h6",key:"s66wpe"}]]),w8=i("type-outline",[["path",{d:"M14 16.5a.5.5 0 0 0 .5.5h.5a2 2 0 0 1 0 4H9a2 2 0 0 1 0-4h.5a.5.5 0 0 0 .5-.5v-9a.5.5 0 0 0-.5-.5h-3a.5.5 0 0 0-.5.5V8a2 2 0 0 1-4 0V5a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2v3a2 2 0 0 1-4 0v-.5a.5.5 0 0 0-.5-.5h-3a.5.5 0 0 0-.5.5Z",key:"1reda3"}]]),w9=i("umbrella-off",[["path",{d:"M12 2v1",key:"11qlp1"}],["path",{d:"M15.5 21a1.85 1.85 0 0 1-3.5-1v-8H2a10 10 0 0 1 3.428-6.575",key:"eki10q"}],["path",{d:"M17.5 12H22A10 10 0 0 0 9.004 3.455",key:"n2ayka"}],["path",{d:"m2 2 20 20",key:"1ooewy"}]]),xa=i("umbrella",[["path",{d:"M22 12a10.06 10.06 1 0 0-20 0Z",key:"1teyop"}],["path",{d:"M12 12v8a2 2 0 0 0 4 0",key:"ulpmoc"}],["path",{d:"M12 2v1",key:"11qlp1"}]]),xb=i("underline",[["path",{d:"M6 4v6a6 6 0 0 0 12 0V4",key:"9kb039"}],["line",{x1:"4",x2:"20",y1:"20",y2:"20",key:"nun2al"}]]),xc=i("undo-2",[["path",{d:"M9 14 4 9l5-5",key:"102s5s"}],["path",{d:"M4 9h10.5a5.5 5.5 0 0 1 5.5 5.5a5.5 5.5 0 0 1-5.5 5.5H11",key:"f3b9sd"}]]),xd=i("undo-dot",[["path",{d:"M21 17a9 9 0 0 0-15-6.7L3 13",key:"8mp6z9"}],["path",{d:"M3 7v6h6",key:"1v2h90"}],["circle",{cx:"12",cy:"17",r:"1",key:"1ixnty"}]]),xe=i("undo",[["path",{d:"M3 7v6h6",key:"1v2h90"}],["path",{d:"M21 17a9 9 0 0 0-9-9 9 9 0 0 0-6 2.3L3 13",key:"1r6uu6"}]]),xf=i("unfold-horizontal",[["path",{d:"M16 12h6",key:"15xry1"}],["path",{d:"M8 12H2",key:"1jqql6"}],["path",{d:"M12 2v2",key:"tus03m"}],["path",{d:"M12 8v2",key:"1woqiv"}],["path",{d:"M12 14v2",key:"8jcxud"}],["path",{d:"M12 20v2",key:"1lh1kg"}],["path",{d:"m19 15 3-3-3-3",key:"wjy7rq"}],["path",{d:"m5 9-3 3 3 3",key:"j64kie"}]]),xg=i("unfold-vertical",[["path",{d:"M12 22v-6",key:"6o8u61"}],["path",{d:"M12 8V2",key:"1wkif3"}],["path",{d:"M4 12H2",key:"rhcxmi"}],["path",{d:"M10 12H8",key:"s88cx1"}],["path",{d:"M16 12h-2",key:"10asgb"}],["path",{d:"M22 12h-2",key:"14jgyd"}],["path",{d:"m15 19-3 3-3-3",key:"11eu04"}],["path",{d:"m15 5-3-3-3 3",key:"itvq4r"}]]),xh=i("ungroup",[["rect",{width:"8",height:"6",x:"5",y:"4",rx:"1",key:"nzclkv"}],["rect",{width:"8",height:"6",x:"11",y:"14",rx:"1",key:"4tytwb"}]]),xi=i("university",[["path",{d:"M14 21v-3a2 2 0 0 0-4 0v3",key:"1rgiei"}],["path",{d:"M18 12h.01",key:"yjnet6"}],["path",{d:"M18 16h.01",key:"plv8zi"}],["path",{d:"M22 7a1 1 0 0 0-1-1h-2a2 2 0 0 1-1.143-.359L13.143 2.36a2 2 0 0 0-2.286-.001L6.143 5.64A2 2 0 0 1 5 6H3a1 1 0 0 0-1 1v12a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2z",key:"1ogmi3"}],["path",{d:"M6 12h.01",key:"c2rlol"}],["path",{d:"M6 16h.01",key:"1pmjb7"}],["circle",{cx:"12",cy:"10",r:"2",key:"1yojzk"}]]),xj=i("unlink-2",[["path",{d:"M15 7h2a5 5 0 0 1 0 10h-2m-6 0H7A5 5 0 0 1 7 7h2",key:"1re2ne"}]]),xk=i("unlink",[["path",{d:"m18.84 12.25 1.72-1.71h-.02a5.004 5.004 0 0 0-.12-7.07 5.006 5.006 0 0 0-6.95 0l-1.72 1.71",key:"yqzxt4"}],["path",{d:"m5.17 11.75-1.71 1.71a5.004 5.004 0 0 0 .12 7.07 5.006 5.006 0 0 0 6.95 0l1.71-1.71",key:"4qinb0"}],["line",{x1:"8",x2:"8",y1:"2",y2:"5",key:"1041cp"}],["line",{x1:"2",x2:"5",y1:"8",y2:"8",key:"14m1p5"}],["line",{x1:"16",x2:"16",y1:"19",y2:"22",key:"rzdirn"}],["line",{x1:"19",x2:"22",y1:"16",y2:"16",key:"ox905f"}]]),xl=i("unplug",[["path",{d:"m19 5 3-3",key:"yk6iyv"}],["path",{d:"m2 22 3-3",key:"19mgm9"}],["path",{d:"M6.3 20.3a2.4 2.4 0 0 0 3.4 0L12 18l-6-6-2.3 2.3a2.4 2.4 0 0 0 0 3.4Z",key:"goz73y"}],["path",{d:"M7.5 13.5 10 11",key:"7xgeeb"}],["path",{d:"M10.5 16.5 13 14",key:"10btkg"}],["path",{d:"m12 6 6 6 2.3-2.3a2.4 2.4 0 0 0 0-3.4l-2.6-2.6a2.4 2.4 0 0 0-3.4 0Z",key:"1snsnr"}]]),xm=i("upload",[["path",{d:"M12 3v12",key:"1x0j5s"}],["path",{d:"m17 8-5-5-5 5",key:"7q97r8"}],["path",{d:"M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4",key:"ih7n3h"}]]),xn=i("usb",[["circle",{cx:"10",cy:"7",r:"1",key:"dypaad"}],["circle",{cx:"4",cy:"20",r:"1",key:"22iqad"}],["path",{d:"M4.7 19.3 19 5",key:"1enqfc"}],["path",{d:"m21 3-3 1 2 2Z",key:"d3ov82"}],["path",{d:"M9.26 7.68 5 12l2 5",key:"1esawj"}],["path",{d:"m10 14 5 2 3.5-3.5",key:"v8oal5"}],["path",{d:"m18 12 1-1 1 1-1 1Z",key:"1bh22v"}]]),xo=i("user-check",[["path",{d:"m16 11 2 2 4-4",key:"9rsbq5"}],["path",{d:"M16 21v-2a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v2",key:"1yyitq"}],["circle",{cx:"9",cy:"7",r:"4",key:"nufk8"}]]),xp=i("user-cog",[["path",{d:"M10 15H6a4 4 0 0 0-4 4v2",key:"1nfge6"}],["path",{d:"m14.305 16.53.923-.382",key:"1itpsq"}],["path",{d:"m15.228 13.852-.923-.383",key:"eplpkm"}],["path",{d:"m16.852 12.228-.383-.923",key:"13v3q0"}],["path",{d:"m16.852 17.772-.383.924",key:"1i8mnm"}],["path",{d:"m19.148 12.228.383-.923",key:"1q8j1v"}],["path",{d:"m19.53 18.696-.382-.924",key:"vk1qj3"}],["path",{d:"m20.772 13.852.924-.383",key:"n880s0"}],["path",{d:"m20.772 16.148.924.383",key:"1g6xey"}],["circle",{cx:"18",cy:"15",r:"3",key:"gjjjvw"}],["circle",{cx:"9",cy:"7",r:"4",key:"nufk8"}]]),xq=i("user-lock",[["circle",{cx:"10",cy:"7",r:"4",key:"e45bow"}],["path",{d:"M10.3 15H7a4 4 0 0 0-4 4v2",key:"3bnktk"}],["path",{d:"M15 15.5V14a2 2 0 0 1 4 0v1.5",key:"12ym5i"}],["rect",{width:"8",height:"5",x:"13",y:"16",rx:".899",key:"4p176n"}]]),xr=i("user-minus",[["path",{d:"M16 21v-2a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v2",key:"1yyitq"}],["circle",{cx:"9",cy:"7",r:"4",key:"nufk8"}],["line",{x1:"22",x2:"16",y1:"11",y2:"11",key:"1shjgl"}]]),xs=i("user-pen",[["path",{d:"M11.5 15H7a4 4 0 0 0-4 4v2",key:"15lzij"}],["path",{d:"M21.378 16.626a1 1 0 0 0-3.004-3.004l-4.01 4.012a2 2 0 0 0-.506.854l-.837 2.87a.5.5 0 0 0 .62.62l2.87-.837a2 2 0 0 0 .854-.506z",key:"1817ys"}],["circle",{cx:"10",cy:"7",r:"4",key:"e45bow"}]]),xt=i("user-plus",[["path",{d:"M16 21v-2a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v2",key:"1yyitq"}],["circle",{cx:"9",cy:"7",r:"4",key:"nufk8"}],["line",{x1:"19",x2:"19",y1:"8",y2:"14",key:"1bvyxn"}],["line",{x1:"22",x2:"16",y1:"11",y2:"11",key:"1shjgl"}]]),xu=i("user-round-check",[["path",{d:"M2 21a8 8 0 0 1 13.292-6",key:"bjp14o"}],["circle",{cx:"10",cy:"8",r:"5",key:"o932ke"}],["path",{d:"m16 19 2 2 4-4",key:"1b14m6"}]]),xv=i("user-round-cog",[["path",{d:"m14.305 19.53.923-.382",key:"3m78fa"}],["path",{d:"m15.228 16.852-.923-.383",key:"npixar"}],["path",{d:"m16.852 15.228-.383-.923",key:"5xggr7"}],["path",{d:"m16.852 20.772-.383.924",key:"dpfhf9"}],["path",{d:"m19.148 15.228.383-.923",key:"1reyyz"}],["path",{d:"m19.53 21.696-.382-.924",key:"1goivc"}],["path",{d:"M2 21a8 8 0 0 1 10.434-7.62",key:"1yezr2"}],["path",{d:"m20.772 16.852.924-.383",key:"htqkph"}],["path",{d:"m20.772 19.148.924.383",key:"9w9pjp"}],["circle",{cx:"10",cy:"8",r:"5",key:"o932ke"}],["circle",{cx:"18",cy:"18",r:"3",key:"1xkwt0"}]]),xw=i("user-round-minus",[["path",{d:"M2 21a8 8 0 0 1 13.292-6",key:"bjp14o"}],["circle",{cx:"10",cy:"8",r:"5",key:"o932ke"}],["path",{d:"M22 19h-6",key:"vcuq98"}]]),xx=i("user-round-pen",[["path",{d:"M2 21a8 8 0 0 1 10.821-7.487",key:"1c8h7z"}],["path",{d:"M21.378 16.626a1 1 0 0 0-3.004-3.004l-4.01 4.012a2 2 0 0 0-.506.854l-.837 2.87a.5.5 0 0 0 .62.62l2.87-.837a2 2 0 0 0 .854-.506z",key:"1817ys"}],["circle",{cx:"10",cy:"8",r:"5",key:"o932ke"}]]),xy=i("user-round-plus",[["path",{d:"M2 21a8 8 0 0 1 13.292-6",key:"bjp14o"}],["circle",{cx:"10",cy:"8",r:"5",key:"o932ke"}],["path",{d:"M19 16v6",key:"tddt3s"}],["path",{d:"M22 19h-6",key:"vcuq98"}]]),xz=i("user-round-search",[["circle",{cx:"10",cy:"8",r:"5",key:"o932ke"}],["path",{d:"M2 21a8 8 0 0 1 10.434-7.62",key:"1yezr2"}],["circle",{cx:"18",cy:"18",r:"3",key:"1xkwt0"}],["path",{d:"m22 22-1.9-1.9",key:"1e5ubv"}]]),xA=i("user-round-x",[["path",{d:"M2 21a8 8 0 0 1 11.873-7",key:"74fkxq"}],["circle",{cx:"10",cy:"8",r:"5",key:"o932ke"}],["path",{d:"m17 17 5 5",key:"p7ous7"}],["path",{d:"m22 17-5 5",key:"gqnmv0"}]]),xB=i("user-round",[["circle",{cx:"12",cy:"8",r:"5",key:"1hypcn"}],["path",{d:"M20 21a8 8 0 0 0-16 0",key:"rfgkzh"}]]),xC=i("user-search",[["circle",{cx:"10",cy:"7",r:"4",key:"e45bow"}],["path",{d:"M10.3 15H7a4 4 0 0 0-4 4v2",key:"3bnktk"}],["circle",{cx:"17",cy:"17",r:"3",key:"18b49y"}],["path",{d:"m21 21-1.9-1.9",key:"1g2n9r"}]]),xD=i("user-x",[["path",{d:"M16 21v-2a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v2",key:"1yyitq"}],["circle",{cx:"9",cy:"7",r:"4",key:"nufk8"}],["line",{x1:"17",x2:"22",y1:"8",y2:"13",key:"3nzzx3"}],["line",{x1:"22",x2:"17",y1:"8",y2:"13",key:"1swrse"}]]),xE=i("user",[["path",{d:"M19 21v-2a4 4 0 0 0-4-4H9a4 4 0 0 0-4 4v2",key:"975kel"}],["circle",{cx:"12",cy:"7",r:"4",key:"17ys0d"}]]),xF=i("users-round",[["path",{d:"M18 21a8 8 0 0 0-16 0",key:"3ypg7q"}],["circle",{cx:"10",cy:"8",r:"5",key:"o932ke"}],["path",{d:"M22 20c0-3.37-2-6.5-4-8a5 5 0 0 0-.45-8.3",key:"10s06x"}]]),xG=i("users",[["path",{d:"M16 21v-2a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v2",key:"1yyitq"}],["path",{d:"M16 3.128a4 4 0 0 1 0 7.744",key:"16gr8j"}],["path",{d:"M22 21v-2a4 4 0 0 0-3-3.87",key:"kshegd"}],["circle",{cx:"9",cy:"7",r:"4",key:"nufk8"}]]),xH=i("utensils-crossed",[["path",{d:"m16 2-2.3 2.3a3 3 0 0 0 0 4.2l1.8 1.8a3 3 0 0 0 4.2 0L22 8",key:"n7qcjb"}],["path",{d:"M15 15 3.3 3.3a4.2 4.2 0 0 0 0 6l7.3 7.3c.7.7 2 .7 2.8 0L15 15Zm0 0 7 7",key:"d0u48b"}],["path",{d:"m2.1 21.8 6.4-6.3",key:"yn04lh"}],["path",{d:"m19 5-7 7",key:"194lzd"}]]),xI=i("utensils",[["path",{d:"M3 2v7c0 1.1.9 2 2 2h4a2 2 0 0 0 2-2V2",key:"cjf0a3"}],["path",{d:"M7 2v20",key:"1473qp"}],["path",{d:"M21 15V2a5 5 0 0 0-5 5v6c0 1.1.9 2 2 2h3Zm0 0v7",key:"j28e5"}]]),xJ=i("variable",[["path",{d:"M8 21s-4-3-4-9 4-9 4-9",key:"uto9ud"}],["path",{d:"M16 3s4 3 4 9-4 9-4 9",key:"4w2vsq"}],["line",{x1:"15",x2:"9",y1:"9",y2:"15",key:"f7djnv"}],["line",{x1:"9",x2:"15",y1:"9",y2:"15",key:"1shsy8"}]]),xK=i("utility-pole",[["path",{d:"M12 2v20",key:"t6zp3m"}],["path",{d:"M2 5h20",key:"1fs1ex"}],["path",{d:"M3 3v2",key:"9imdir"}],["path",{d:"M7 3v2",key:"n0os7"}],["path",{d:"M17 3v2",key:"1l2re6"}],["path",{d:"M21 3v2",key:"1duuac"}],["path",{d:"m19 5-7 7-7-7",key:"133zxf"}]]),xL=i("vault",[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",key:"afitv7"}],["circle",{cx:"7.5",cy:"7.5",r:".5",fill:"currentColor",key:"kqv944"}],["path",{d:"m7.9 7.9 2.7 2.7",key:"hpeyl3"}],["circle",{cx:"16.5",cy:"7.5",r:".5",fill:"currentColor",key:"w0ekpg"}],["path",{d:"m13.4 10.6 2.7-2.7",key:"264c1n"}],["circle",{cx:"7.5",cy:"16.5",r:".5",fill:"currentColor",key:"nkw3mc"}],["path",{d:"m7.9 16.1 2.7-2.7",key:"p81g5e"}],["circle",{cx:"16.5",cy:"16.5",r:".5",fill:"currentColor",key:"fubopw"}],["path",{d:"m13.4 13.4 2.7 2.7",key:"abhel3"}],["circle",{cx:"12",cy:"12",r:"2",key:"1c9p78"}]]),xM=i("vector-square",[["path",{d:"M19.5 7a24 24 0 0 1 0 10",key:"8n60xe"}],["path",{d:"M4.5 7a24 24 0 0 0 0 10",key:"2lmadr"}],["path",{d:"M7 19.5a24 24 0 0 0 10 0",key:"1q94o2"}],["path",{d:"M7 4.5a24 24 0 0 1 10 0",key:"2z8ypa"}],["rect",{x:"17",y:"17",width:"5",height:"5",rx:"1",key:"1ac74s"}],["rect",{x:"17",y:"2",width:"5",height:"5",rx:"1",key:"1e7h5j"}],["rect",{x:"2",y:"17",width:"5",height:"5",rx:"1",key:"1t4eah"}],["rect",{x:"2",y:"2",width:"5",height:"5",rx:"1",key:"940dhs"}]]),xN=i("vegan",[["path",{d:"M16 8q6 0 6-6-6 0-6 6",key:"qsyyc4"}],["path",{d:"M17.41 3.59a10 10 0 1 0 3 3",key:"41m9h7"}],["path",{d:"M2 2a26.6 26.6 0 0 1 10 20c.9-6.82 1.5-9.5 4-14",key:"qiv7li"}]]),xO=i("venetian-mask",[["path",{d:"M18 11c-1.5 0-2.5.5-3 2",key:"1fod00"}],["path",{d:"M4 6a2 2 0 0 0-2 2v4a5 5 0 0 0 5 5 8 8 0 0 1 5 2 8 8 0 0 1 5-2 5 5 0 0 0 5-5V8a2 2 0 0 0-2-2h-3a8 8 0 0 0-5 2 8 8 0 0 0-5-2z",key:"d70hit"}],["path",{d:"M6 11c1.5 0 2.5.5 3 2",key:"136fht"}]]),xP=i("venus-and-mars",[["path",{d:"M10 20h4",key:"ni2waw"}],["path",{d:"M12 16v6",key:"c8a4gj"}],["path",{d:"M17 2h4v4",key:"vhe59"}],["path",{d:"m21 2-5.46 5.46",key:"19kypf"}],["circle",{cx:"12",cy:"11",r:"5",key:"16gxyc"}]]),xQ=i("venus",[["path",{d:"M12 15v7",key:"t2xh3l"}],["path",{d:"M9 19h6",key:"456am0"}],["circle",{cx:"12",cy:"9",r:"6",key:"1nw4tq"}]]),xR=i("vibrate-off",[["path",{d:"m2 8 2 2-2 2 2 2-2 2",key:"sv1b1"}],["path",{d:"m22 8-2 2 2 2-2 2 2 2",key:"101i4y"}],["path",{d:"M8 8v10c0 .55.45 1 1 1h6c.55 0 1-.45 1-1v-2",key:"1hbad5"}],["path",{d:"M16 10.34V6c0-.55-.45-1-1-1h-4.34",key:"1x5tf0"}],["line",{x1:"2",x2:"22",y1:"2",y2:"22",key:"a6p6uj"}]]),xS=i("vibrate",[["path",{d:"m2 8 2 2-2 2 2 2-2 2",key:"sv1b1"}],["path",{d:"m22 8-2 2 2 2-2 2 2 2",key:"101i4y"}],["rect",{width:"8",height:"14",x:"8",y:"5",rx:"1",key:"1oyrl4"}]]),xT=i("video-off",[["path",{d:"M10.66 6H14a2 2 0 0 1 2 2v2.5l5.248-3.062A.5.5 0 0 1 22 7.87v8.196",key:"w8jjjt"}],["path",{d:"M16 16a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h2",key:"1xawa7"}],["path",{d:"m2 2 20 20",key:"1ooewy"}]]),xU=i("video",[["path",{d:"m16 13 5.223 3.482a.5.5 0 0 0 .777-.416V7.87a.5.5 0 0 0-.752-.432L16 10.5",key:"ftymec"}],["rect",{x:"2",y:"6",width:"14",height:"12",rx:"2",key:"158x01"}]]),xV=i("videotape",[["rect",{width:"20",height:"16",x:"2",y:"4",rx:"2",key:"18n3k1"}],["path",{d:"M2 8h20",key:"d11cs7"}],["circle",{cx:"8",cy:"14",r:"2",key:"1k2qr5"}],["path",{d:"M8 12h8",key:"1wcyev"}],["circle",{cx:"16",cy:"14",r:"2",key:"14k7lr"}]]),xW=i("view",[["path",{d:"M21 17v2a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-2",key:"mrq65r"}],["path",{d:"M21 7V5a2 2 0 0 0-2-2H5a2 2 0 0 0-2 2v2",key:"be3xqs"}],["circle",{cx:"12",cy:"12",r:"1",key:"41hilf"}],["path",{d:"M18.944 12.33a1 1 0 0 0 0-.66 7.5 7.5 0 0 0-13.888 0 1 1 0 0 0 0 .66 7.5 7.5 0 0 0 13.888 0",key:"11ak4c"}]]),xX=i("voicemail",[["circle",{cx:"6",cy:"12",r:"4",key:"1ehtga"}],["circle",{cx:"18",cy:"12",r:"4",key:"4vafl8"}],["line",{x1:"6",x2:"18",y1:"16",y2:"16",key:"pmt8us"}]]),xY=i("volleyball",[["path",{d:"M11.1 7.1a16.55 16.55 0 0 1 10.9 4",key:"2880wi"}],["path",{d:"M12 12a12.6 12.6 0 0 1-8.7 5",key:"113sja"}],["path",{d:"M16.8 13.6a16.55 16.55 0 0 1-9 7.5",key:"1qmsgl"}],["path",{d:"M20.7 17a12.8 12.8 0 0 0-8.7-5 13.3 13.3 0 0 1 0-10",key:"1bmeqp"}],["path",{d:"M6.3 3.8a16.55 16.55 0 0 0 1.9 11.5",key:"iekzv9"}],["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}]]),xZ=i("volume-1",[["path",{d:"M11 4.702a.705.705 0 0 0-1.203-.498L6.413 7.587A1.4 1.4 0 0 1 5.416 8H3a1 1 0 0 0-1 1v6a1 1 0 0 0 1 1h2.416a1.4 1.4 0 0 1 .997.413l3.383 3.384A.705.705 0 0 0 11 19.298z",key:"uqj9uw"}],["path",{d:"M16 9a5 5 0 0 1 0 6",key:"1q6k2b"}]]),x$=i("volume-2",[["path",{d:"M11 4.702a.705.705 0 0 0-1.203-.498L6.413 7.587A1.4 1.4 0 0 1 5.416 8H3a1 1 0 0 0-1 1v6a1 1 0 0 0 1 1h2.416a1.4 1.4 0 0 1 .997.413l3.383 3.384A.705.705 0 0 0 11 19.298z",key:"uqj9uw"}],["path",{d:"M16 9a5 5 0 0 1 0 6",key:"1q6k2b"}],["path",{d:"M19.364 18.364a9 9 0 0 0 0-12.728",key:"ijwkga"}]]),x_=i("volume-off",[["path",{d:"M16 9a5 5 0 0 1 .95 2.293",key:"1fgyg8"}],["path",{d:"M19.364 5.636a9 9 0 0 1 1.889 9.96",key:"l3zxae"}],["path",{d:"m2 2 20 20",key:"1ooewy"}],["path",{d:"m7 7-.587.587A1.4 1.4 0 0 1 5.416 8H3a1 1 0 0 0-1 1v6a1 1 0 0 0 1 1h2.416a1.4 1.4 0 0 1 .997.413l3.383 3.384A.705.705 0 0 0 11 19.298V11",key:"1gbwow"}],["path",{d:"M9.828 4.172A.686.686 0 0 1 11 4.657v.686",key:"s2je0y"}]]),x0=i("volume-x",[["path",{d:"M11 4.702a.705.705 0 0 0-1.203-.498L6.413 7.587A1.4 1.4 0 0 1 5.416 8H3a1 1 0 0 0-1 1v6a1 1 0 0 0 1 1h2.416a1.4 1.4 0 0 1 .997.413l3.383 3.384A.705.705 0 0 0 11 19.298z",key:"uqj9uw"}],["line",{x1:"22",x2:"16",y1:"9",y2:"15",key:"1ewh16"}],["line",{x1:"16",x2:"22",y1:"9",y2:"15",key:"5ykzw1"}]]),x1=i("volume",[["path",{d:"M11 4.702a.705.705 0 0 0-1.203-.498L6.413 7.587A1.4 1.4 0 0 1 5.416 8H3a1 1 0 0 0-1 1v6a1 1 0 0 0 1 1h2.416a1.4 1.4 0 0 1 .997.413l3.383 3.384A.705.705 0 0 0 11 19.298z",key:"uqj9uw"}]]),x2=i("vote",[["path",{d:"m9 12 2 2 4-4",key:"dzmm74"}],["path",{d:"M5 7c0-1.1.9-2 2-2h10a2 2 0 0 1 2 2v12H5V7Z",key:"1ezoue"}],["path",{d:"M22 19H2",key:"nuriw5"}]]),x3=i("wallet-cards",[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",key:"afitv7"}],["path",{d:"M3 9a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2",key:"4125el"}],["path",{d:"M3 11h3c.8 0 1.6.3 2.1.9l1.1.9c1.6 1.6 4.1 1.6 5.7 0l1.1-.9c.5-.5 1.3-.9 2.1-.9H21",key:"1dpki6"}]]),x4=i("wallet-minimal",[["path",{d:"M17 14h.01",key:"7oqj8z"}],["path",{d:"M7 7h12a2 2 0 0 1 2 2v10a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h14",key:"u1rqew"}]]),x5=i("wallet",[["path",{d:"M19 7V4a1 1 0 0 0-1-1H5a2 2 0 0 0 0 4h15a1 1 0 0 1 1 1v4h-3a2 2 0 0 0 0 4h3a1 1 0 0 0 1-1v-2a1 1 0 0 0-1-1",key:"18etb6"}],["path",{d:"M3 5v14a2 2 0 0 0 2 2h15a1 1 0 0 0 1-1v-4",key:"xoc0q4"}]]),x6=i("wallpaper",[["circle",{cx:"8",cy:"9",r:"2",key:"gjzl9d"}],["path",{d:"m9 17 6.1-6.1a2 2 0 0 1 2.81.01L22 15V5a2 2 0 0 0-2-2H4a2 2 0 0 0-2 2v10a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2",key:"69xh40"}],["path",{d:"M8 21h8",key:"1ev6f3"}],["path",{d:"M12 17v4",key:"1riwvh"}]]),x7=i("wand-sparkles",[["path",{d:"m21.64 3.64-1.28-1.28a1.21 1.21 0 0 0-1.72 0L2.36 18.64a1.21 1.21 0 0 0 0 1.72l1.28 1.28a1.2 1.2 0 0 0 1.72 0L21.64 5.36a1.2 1.2 0 0 0 0-1.72",key:"ul74o6"}],["path",{d:"m14 7 3 3",key:"1r5n42"}],["path",{d:"M5 6v4",key:"ilb8ba"}],["path",{d:"M19 14v4",key:"blhpug"}],["path",{d:"M10 2v2",key:"7u0qdc"}],["path",{d:"M7 8H3",key:"zfb6yr"}],["path",{d:"M21 16h-4",key:"1cnmox"}],["path",{d:"M11 3H9",key:"1obp7u"}]]),x8=i("wand",[["path",{d:"M15 4V2",key:"z1p9b7"}],["path",{d:"M15 16v-2",key:"px0unx"}],["path",{d:"M8 9h2",key:"1g203m"}],["path",{d:"M20 9h2",key:"19tzq7"}],["path",{d:"M17.8 11.8 19 13",key:"yihg8r"}],["path",{d:"M15 9h.01",key:"x1ddxp"}],["path",{d:"M17.8 6.2 19 5",key:"fd4us0"}],["path",{d:"m3 21 9-9",key:"1jfql5"}],["path",{d:"M12.2 6.2 11 5",key:"i3da3b"}]]),x9=i("warehouse",[["path",{d:"M18 21V10a1 1 0 0 0-1-1H7a1 1 0 0 0-1 1v11",key:"pb2vm6"}],["path",{d:"M22 19a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2V8a2 2 0 0 1 1.132-1.803l7.95-3.974a2 2 0 0 1 1.837 0l7.948 3.974A2 2 0 0 1 22 8z",key:"doq5xv"}],["path",{d:"M6 13h12",key:"yf64js"}],["path",{d:"M6 17h12",key:"1jwigz"}]]),ya=i("washing-machine",[["path",{d:"M3 6h3",key:"155dbl"}],["path",{d:"M17 6h.01",key:"e2y6kg"}],["rect",{width:"18",height:"20",x:"3",y:"2",rx:"2",key:"od3kk9"}],["circle",{cx:"12",cy:"13",r:"5",key:"nlbqau"}],["path",{d:"M12 18a2.5 2.5 0 0 0 0-5 2.5 2.5 0 0 1 0-5",key:"17lach"}]]),yb=i("watch",[["path",{d:"M12 10v2.2l1.6 1",key:"n3r21l"}],["path",{d:"m16.13 7.66-.81-4.05a2 2 0 0 0-2-1.61h-2.68a2 2 0 0 0-2 1.61l-.78 4.05",key:"18k57s"}],["path",{d:"m7.88 16.36.8 4a2 2 0 0 0 2 1.61h2.72a2 2 0 0 0 2-1.61l.81-4.05",key:"16ny36"}],["circle",{cx:"12",cy:"12",r:"6",key:"1vlfrh"}]]),yc=i("waves-ladder",[["path",{d:"M19 5a2 2 0 0 0-2 2v11",key:"s41o68"}],["path",{d:"M2 18c.6.5 1.2 1 2.5 1 2.5 0 2.5-2 5-2 2.6 0 2.4 2 5 2 2.5 0 2.5-2 5-2 1.3 0 1.9.5 2.5 1",key:"rd2r6e"}],["path",{d:"M7 13h10",key:"1rwob1"}],["path",{d:"M7 9h10",key:"12czzb"}],["path",{d:"M9 5a2 2 0 0 0-2 2v11",key:"x0q4gh"}]]),yd=i("waves",[["path",{d:"M2 6c.6.5 1.2 1 2.5 1C7 7 7 5 9.5 5c2.6 0 2.4 2 5 2 2.5 0 2.5-2 5-2 1.3 0 1.9.5 2.5 1",key:"knzxuh"}],["path",{d:"M2 12c.6.5 1.2 1 2.5 1 2.5 0 2.5-2 5-2 2.6 0 2.4 2 5 2 2.5 0 2.5-2 5-2 1.3 0 1.9.5 2.5 1",key:"2jd2cc"}],["path",{d:"M2 18c.6.5 1.2 1 2.5 1 2.5 0 2.5-2 5-2 2.6 0 2.4 2 5 2 2.5 0 2.5-2 5-2 1.3 0 1.9.5 2.5 1",key:"rd2r6e"}]]),ye=i("waypoints",[["circle",{cx:"12",cy:"4.5",r:"2.5",key:"r5ysbb"}],["path",{d:"m10.2 6.3-3.9 3.9",key:"1nzqf6"}],["circle",{cx:"4.5",cy:"12",r:"2.5",key:"jydg6v"}],["path",{d:"M7 12h10",key:"b7w52i"}],["circle",{cx:"19.5",cy:"12",r:"2.5",key:"1piiel"}],["path",{d:"m13.8 17.7 3.9-3.9",key:"1wyg1y"}],["circle",{cx:"12",cy:"19.5",r:"2.5",key:"13o1pw"}]]),yf=i("webcam",[["circle",{cx:"12",cy:"10",r:"8",key:"1gshiw"}],["circle",{cx:"12",cy:"10",r:"3",key:"ilqhr7"}],["path",{d:"M7 22h10",key:"10w4w3"}],["path",{d:"M12 22v-4",key:"1utk9m"}]]),yg=i("webhook-off",[["path",{d:"M17 17h-5c-1.09-.02-1.94.92-2.5 1.9A3 3 0 1 1 2.57 15",key:"1tvl6x"}],["path",{d:"M9 3.4a4 4 0 0 1 6.52.66",key:"q04jfq"}],["path",{d:"m6 17 3.1-5.8a2.5 2.5 0 0 0 .057-2.05",key:"azowf0"}],["path",{d:"M20.3 20.3a4 4 0 0 1-2.3.7",key:"5joiws"}],["path",{d:"M18.6 13a4 4 0 0 1 3.357 3.414",key:"cangb8"}],["path",{d:"m12 6 .6 1",key:"tpjl1n"}],["path",{d:"m2 2 20 20",key:"1ooewy"}]]),yh=i("webhook",[["path",{d:"M18 16.98h-5.99c-1.1 0-1.95.94-2.48 1.9A4 4 0 0 1 2 17c.01-.7.2-1.4.57-2",key:"q3hayz"}],["path",{d:"m6 17 3.13-5.78c.53-.97.1-2.18-.5-3.1a4 4 0 1 1 6.89-4.06",key:"1go1hn"}],["path",{d:"m12 6 3.13 5.73C15.66 12.7 16.9 13 18 13a4 4 0 0 1 0 8",key:"qlwsc0"}]]),yi=i("weight",[["circle",{cx:"12",cy:"5",r:"3",key:"rqqgnr"}],["path",{d:"M6.5 8a2 2 0 0 0-1.905 1.46L2.1 18.5A2 2 0 0 0 4 21h16a2 2 0 0 0 1.925-2.54L19.4 9.5A2 2 0 0 0 17.48 8Z",key:"56o5sh"}]]),yj=i("wheat-off",[["path",{d:"m2 22 10-10",key:"28ilpk"}],["path",{d:"m16 8-1.17 1.17",key:"1qqm82"}],["path",{d:"M3.47 12.53 5 11l1.53 1.53a3.5 3.5 0 0 1 0 4.94L5 19l-1.53-1.53a3.5 3.5 0 0 1 0-4.94Z",key:"1rdhi6"}],["path",{d:"m8 8-.53.53a3.5 3.5 0 0 0 0 4.94L9 15l1.53-1.53c.55-.55.88-1.25.98-1.97",key:"4wz8re"}],["path",{d:"M10.91 5.26c.15-.26.34-.51.56-.73L13 3l1.53 1.53a3.5 3.5 0 0 1 .28 4.62",key:"rves66"}],["path",{d:"M20 2h2v2a4 4 0 0 1-4 4h-2V6a4 4 0 0 1 4-4Z",key:"19rau1"}],["path",{d:"M11.47 17.47 13 19l-1.53 1.53a3.5 3.5 0 0 1-4.94 0L5 19l1.53-1.53a3.5 3.5 0 0 1 4.94 0Z",key:"tc8ph9"}],["path",{d:"m16 16-.53.53a3.5 3.5 0 0 1-4.94 0L9 15l1.53-1.53a3.49 3.49 0 0 1 1.97-.98",key:"ak46r"}],["path",{d:"M18.74 13.09c.26-.15.51-.34.73-.56L21 11l-1.53-1.53a3.5 3.5 0 0 0-4.62-.28",key:"1tw520"}],["line",{x1:"2",x2:"22",y1:"2",y2:"22",key:"a6p6uj"}]]),yk=i("wheat",[["path",{d:"M2 22 16 8",key:"60hf96"}],["path",{d:"M3.47 12.53 5 11l1.53 1.53a3.5 3.5 0 0 1 0 4.94L5 19l-1.53-1.53a3.5 3.5 0 0 1 0-4.94Z",key:"1rdhi6"}],["path",{d:"M7.47 8.53 9 7l1.53 1.53a3.5 3.5 0 0 1 0 4.94L9 15l-1.53-1.53a3.5 3.5 0 0 1 0-4.94Z",key:"1sdzmb"}],["path",{d:"M11.47 4.53 13 3l1.53 1.53a3.5 3.5 0 0 1 0 4.94L13 11l-1.53-1.53a3.5 3.5 0 0 1 0-4.94Z",key:"eoatbi"}],["path",{d:"M20 2h2v2a4 4 0 0 1-4 4h-2V6a4 4 0 0 1 4-4Z",key:"19rau1"}],["path",{d:"M11.47 17.47 13 19l-1.53 1.53a3.5 3.5 0 0 1-4.94 0L5 19l1.53-1.53a3.5 3.5 0 0 1 4.94 0Z",key:"tc8ph9"}],["path",{d:"M15.47 13.47 17 15l-1.53 1.53a3.5 3.5 0 0 1-4.94 0L9 15l1.53-1.53a3.5 3.5 0 0 1 4.94 0Z",key:"2m8kc5"}],["path",{d:"M19.47 9.47 21 11l-1.53 1.53a3.5 3.5 0 0 1-4.94 0L13 11l1.53-1.53a3.5 3.5 0 0 1 4.94 0Z",key:"vex3ng"}]]),yl=i("whole-word",[["circle",{cx:"7",cy:"12",r:"3",key:"12clwm"}],["path",{d:"M10 9v6",key:"17i7lo"}],["circle",{cx:"17",cy:"12",r:"3",key:"gl7c2s"}],["path",{d:"M14 7v8",key:"dl84cr"}],["path",{d:"M22 17v1c0 .5-.5 1-1 1H3c-.5 0-1-.5-1-1v-1",key:"lt2kga"}]]),ym=i("wifi-cog",[["path",{d:"m14.305 19.53.923-.382",key:"3m78fa"}],["path",{d:"m15.228 16.852-.923-.383",key:"npixar"}],["path",{d:"m16.852 15.228-.383-.923",key:"5xggr7"}],["path",{d:"m16.852 20.772-.383.924",key:"dpfhf9"}],["path",{d:"m19.148 15.228.383-.923",key:"1reyyz"}],["path",{d:"m19.53 21.696-.382-.924",key:"1goivc"}],["path",{d:"M2 7.82a15 15 0 0 1 20 0",key:"1ovjuk"}],["path",{d:"m20.772 16.852.924-.383",key:"htqkph"}],["path",{d:"m20.772 19.148.924.383",key:"9w9pjp"}],["path",{d:"M5 11.858a10 10 0 0 1 11.5-1.785",key:"3sn16i"}],["path",{d:"M8.5 15.429a5 5 0 0 1 2.413-1.31",key:"1pxovh"}],["circle",{cx:"18",cy:"18",r:"3",key:"1xkwt0"}]]),yn=i("wifi-high",[["path",{d:"M12 20h.01",key:"zekei9"}],["path",{d:"M5 12.859a10 10 0 0 1 14 0",key:"1x1e6c"}],["path",{d:"M8.5 16.429a5 5 0 0 1 7 0",key:"1bycff"}]]),yo=i("wifi-low",[["path",{d:"M12 20h.01",key:"zekei9"}],["path",{d:"M8.5 16.429a5 5 0 0 1 7 0",key:"1bycff"}]]),yp=i("wifi-off",[["path",{d:"M12 20h.01",key:"zekei9"}],["path",{d:"M8.5 16.429a5 5 0 0 1 7 0",key:"1bycff"}],["path",{d:"M5 12.859a10 10 0 0 1 5.17-2.69",key:"1dl1wf"}],["path",{d:"M19 12.859a10 10 0 0 0-2.007-1.523",key:"4k23kn"}],["path",{d:"M2 8.82a15 15 0 0 1 4.177-2.643",key:"1grhjp"}],["path",{d:"M22 8.82a15 15 0 0 0-11.288-3.764",key:"z3jwby"}],["path",{d:"m2 2 20 20",key:"1ooewy"}]]),yq=i("wifi-pen",[["path",{d:"M2 8.82a15 15 0 0 1 20 0",key:"dnpr2z"}],["path",{d:"M21.378 16.626a1 1 0 0 0-3.004-3.004l-4.01 4.012a2 2 0 0 0-.506.854l-.837 2.87a.5.5 0 0 0 .62.62l2.87-.837a2 2 0 0 0 .854-.506z",key:"1817ys"}],["path",{d:"M5 12.859a10 10 0 0 1 10.5-2.222",key:"rpb7oy"}],["path",{d:"M8.5 16.429a5 5 0 0 1 3-1.406",key:"r8bmzl"}]]),yr=i("wifi-zero",[["path",{d:"M12 20h.01",key:"zekei9"}]]),ys=i("wifi",[["path",{d:"M12 20h.01",key:"zekei9"}],["path",{d:"M2 8.82a15 15 0 0 1 20 0",key:"dnpr2z"}],["path",{d:"M5 12.859a10 10 0 0 1 14 0",key:"1x1e6c"}],["path",{d:"M8.5 16.429a5 5 0 0 1 7 0",key:"1bycff"}]]),yt=i("wind-arrow-down",[["path",{d:"M10 2v8",key:"d4bbey"}],["path",{d:"M12.8 21.6A2 2 0 1 0 14 18H2",key:"19kp1d"}],["path",{d:"M17.5 10a2.5 2.5 0 1 1 2 4H2",key:"19kpjc"}],["path",{d:"m6 6 4 4 4-4",key:"k13n16"}]]),yu=i("wine-off",[["path",{d:"M8 22h8",key:"rmew8v"}],["path",{d:"M7 10h3m7 0h-1.343",key:"v48bem"}],["path",{d:"M12 15v7",key:"t2xh3l"}],["path",{d:"M7.307 7.307A12.33 12.33 0 0 0 7 10a5 5 0 0 0 7.391 4.391M8.638 2.981C8.75 2.668 8.872 2.34 9 2h6c1.5 4 2 6 2 8 0 .407-.05.809-.145 1.198",key:"1ymjlu"}],["line",{x1:"2",x2:"22",y1:"2",y2:"22",key:"a6p6uj"}]]),yv=i("wind",[["path",{d:"M12.8 19.6A2 2 0 1 0 14 16H2",key:"148xed"}],["path",{d:"M17.5 8a2.5 2.5 0 1 1 2 4H2",key:"1u4tom"}],["path",{d:"M9.8 4.4A2 2 0 1 1 11 8H2",key:"75valh"}]]),yw=i("wine",[["path",{d:"M8 22h8",key:"rmew8v"}],["path",{d:"M7 10h10",key:"1101jm"}],["path",{d:"M12 15v7",key:"t2xh3l"}],["path",{d:"M12 15a5 5 0 0 0 5-5c0-2-.5-4-2-8H9c-1.5 4-2 6-2 8a5 5 0 0 0 5 5Z",key:"10ffi3"}]]),yx=i("workflow",[["rect",{width:"8",height:"8",x:"3",y:"3",rx:"2",key:"by2w9f"}],["path",{d:"M7 11v4a2 2 0 0 0 2 2h4",key:"xkn7yn"}],["rect",{width:"8",height:"8",x:"13",y:"13",rx:"2",key:"1cgmvn"}]]),yy=i("worm",[["path",{d:"m19 12-1.5 3",key:"9bcu4o"}],["path",{d:"M19.63 18.81 22 20",key:"121v98"}],["path",{d:"M6.47 8.23a1.68 1.68 0 0 1 2.44 1.93l-.64 2.08a6.76 6.76 0 0 0 10.16 7.67l.42-.27a1 1 0 1 0-2.73-4.21l-.42.27a1.76 1.76 0 0 1-2.63-1.99l.64-2.08A6.66 6.66 0 0 0 3.94 3.9l-.7.4a1 1 0 1 0 2.55 4.34z",key:"1tij6q"}]]),yz=i("wrap-text",[["path",{d:"m16 16-2 2 2 2",key:"kkc6pm"}],["path",{d:"M3 12h15a3 3 0 1 1 0 6h-4",key:"1cl7v7"}],["path",{d:"M3 18h7",key:"sq21v6"}],["path",{d:"M3 6h18",key:"d0wm0j"}]]),yA=i("wrench",[["path",{d:"M14.7 6.3a1 1 0 0 0 0 1.4l1.6 1.6a1 1 0 0 0 1.4 0l3.77-3.77a6 6 0 0 1-7.94 7.94l-6.91 6.91a2.12 2.12 0 0 1-3-3l6.91-6.91a6 6 0 0 1 7.94-7.94l-3.76 3.76z",key:"cbrjhi"}]]),yB=i("x",[["path",{d:"M18 6 6 18",key:"1bl5f8"}],["path",{d:"m6 6 12 12",key:"d8bk6v"}]]),yC=i("youtube",[["path",{d:"M2.5 17a24.12 24.12 0 0 1 0-10 2 2 0 0 1 1.4-1.4 49.56 49.56 0 0 1 16.2 0A2 2 0 0 1 21.5 7a24.12 24.12 0 0 1 0 10 2 2 0 0 1-1.4 1.4 49.55 49.55 0 0 1-16.2 0A2 2 0 0 1 2.5 17",key:"1q2vi4"}],["path",{d:"m10 15 5-3-5-3z",key:"1jp15x"}]]),yD=i("zap-off",[["path",{d:"M10.513 4.856 13.12 2.17a.5.5 0 0 1 .86.46l-1.377 4.317",key:"193nxd"}],["path",{d:"M15.656 10H20a1 1 0 0 1 .78 1.63l-1.72 1.773",key:"27a7lr"}],["path",{d:"M16.273 16.273 10.88 21.83a.5.5 0 0 1-.86-.46l1.92-6.02A1 1 0 0 0 11 14H4a1 1 0 0 1-.78-1.63l4.507-4.643",key:"1e0qe9"}],["path",{d:"m2 2 20 20",key:"1ooewy"}]]),yE=i("zap",[["path",{d:"M4 14a1 1 0 0 1-.78-1.63l9.9-10.2a.5.5 0 0 1 .86.46l-1.92 6.02A1 1 0 0 0 13 10h7a1 1 0 0 1 .78 1.63l-9.9 10.2a.5.5 0 0 1-.86-.46l1.92-6.02A1 1 0 0 0 11 14z",key:"1xq2db"}]]),yF=i("zoom-in",[["circle",{cx:"11",cy:"11",r:"8",key:"4ej97u"}],["line",{x1:"21",x2:"16.65",y1:"21",y2:"16.65",key:"13gj7c"}],["line",{x1:"11",x2:"11",y1:"8",y2:"14",key:"1vmskp"}],["line",{x1:"8",x2:"14",y1:"11",y2:"11",key:"durymu"}]]);i("zoom-out",[["circle",{cx:"11",cy:"11",r:"8",key:"4ej97u"}],["line",{x1:"21",x2:"16.65",y1:"21",y2:"16.65",key:"13gj7c"}],["line",{x1:"8",x2:"14",y1:"11",y2:"11",key:"durymu"}]]),b.RIJ=eN,b.Qpb=aO,b.wAm=a6,b.EsT=ei,b.azJ=cV,b.VvS=dH,b.Jlk=er,b.rAV=eW,b.zD7=fY,b.dJT=kl,b.qzq=kT,b.oUU=lx,b.B1N=lF,b.mNh=fk,b.gE4=nF,b.sDd=nS,b.W1t=n4,b.oFn=og,b.vEG=ow,b.Mdu=ps,b.bcf=qG,b.jGG=qZ,b.kM6=rX,b.vji=sS,b.Vnp=sW,b.ekZ=tj,b.oxo=ta,b.FEq=vj,b.vwO=vT,b.DTr=v_,b.ntg=wV,b.MWd=xo,b.zWC=xG,b.KqI=yE},617:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),Object.defineProperty(b,"hasBasePath",{enumerable:!0,get:function(){return e}});let d=c(9596);function e(a){return(0,d.pathHasPrefix)(a,"")}("function"==typeof b.default||"object"==typeof b.default&&null!==b.default)&&void 0===b.default.__esModule&&(Object.defineProperty(b.default,"__esModule",{value:!0}),Object.assign(b.default,b),a.exports=b.default)},651:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),Object.defineProperty(b,"isLocalURL",{enumerable:!0,get:function(){return f}});let d=c(4718),e=c(617);function f(a){if(!(0,d.isAbsoluteUrl)(a))return!0;try{let b=(0,d.getLocationOrigin)(),c=new URL(a,b);return c.origin===b&&(0,e.hasBasePath)(c.pathname)}catch(a){return!1}}},1169:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),Object.defineProperty(b,"addLocale",{enumerable:!0,get:function(){return d}}),c(7779);let d=function(a){for(var b=arguments.length,c=Array(b>1?b-1:0),d=1;d{"use strict";function d(a,b,c,d){return!1}Object.defineProperty(b,"__esModule",{value:!0}),Object.defineProperty(b,"getDomainLocale",{enumerable:!0,get:function(){return d}}),c(7779),("function"==typeof b.default||"object"==typeof b.default&&null!==b.default)&&void 0===b.default.__esModule&&(Object.defineProperty(b.default,"__esModule",{value:!0}),Object.assign(b.default,b),a.exports=b.default)},2088:(a,b,c)=>{"use strict";a.exports=c(3885).vendored.contexts.RouterContext},2417:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),Object.defineProperty(b,"getRouteMatcher",{enumerable:!0,get:function(){return e}});let d=c(4718);function e(a){let{re:b,groups:c}=a;return a=>{let e=b.exec(a);if(!e)return!1;let f=a=>{try{return decodeURIComponent(a)}catch(a){throw Object.defineProperty(new d.DecodeError("failed to decode param"),"__NEXT_ERROR_CODE",{value:"E528",enumerable:!1,configurable:!0})}},g={};for(let[a,b]of Object.entries(c)){let c=e[b.pos];void 0!==c&&(b.repeat?g[a]=c.split("/").map(a=>f(a)):g[a]=f(c))}return g}}},2848:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),!function(a,b){for(var c in b)Object.defineProperty(a,c,{enumerable:!0,get:b[c]})}(b,{formatUrl:function(){return f},formatWithValidation:function(){return h},urlObjectKeys:function(){return g}});let d=c(3147)._(c(7536)),e=/https?|ftp|gopher|file/;function f(a){let{auth:b,hostname:c}=a,f=a.protocol||"",g=a.pathname||"",h=a.hash||"",i=a.query||"",j=!1;b=b?encodeURIComponent(b).replace(/%3A/i,":")+"@":"",a.host?j=b+a.host:c&&(j=b+(~c.indexOf(":")?"["+c+"]":c),a.port&&(j+=":"+a.port)),i&&"object"==typeof i&&(i=String(d.urlQueryToSearchParams(i)));let k=a.search||i&&"?"+i||"";return f&&!f.endsWith(":")&&(f+=":"),a.slashes||(!f||e.test(f))&&!1!==j?(j="//"+(j||""),g&&"/"!==g[0]&&(g="/"+g)):j||(j=""),h&&"#"!==h[0]&&(h="#"+h),k&&"?"!==k[0]&&(k="?"+k),""+f+j+(g=g.replace(/[?#]/g,encodeURIComponent))+(k=k.replace("#","%23"))+h}let g=["auth","hash","host","hostname","href","path","pathname","port","protocol","query","search","slashes"];function h(a){return f(a)}},3563:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),Object.defineProperty(b,"interpolateAs",{enumerable:!0,get:function(){return f}});let d=c(2417),e=c(3898);function f(a,b,c){let f="",g=(0,e.getRouteRegex)(a),h=g.groups,i=(b!==a?(0,d.getRouteMatcher)(g)(b):"")||c;f=a;let j=Object.keys(h);return j.every(a=>{let b=i[a]||"",{repeat:c,optional:d}=h[a],e="["+(c?"...":"")+a+"]";return d&&(e=(b?"":"/")+"["+e+"]"),c&&!Array.isArray(b)&&(b=[b]),(d||a in i)&&(f=f.replace(e,c?b.map(a=>encodeURIComponent(a)).join("/"):encodeURIComponent(b))||"/")})||(f=""),{params:j,result:f}}},3898:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),!function(a,b){for(var c in b)Object.defineProperty(a,c,{enumerable:!0,get:b[c]})}(b,{getNamedMiddlewareRegex:function(){return p},getNamedRouteRegex:function(){return o},getRouteRegex:function(){return l},parseParameter:function(){return i}});let d=c(2072),e=c(6580),f=c(8900),g=c(1730),h=/^([^[]*)\[((?:\[[^\]]*\])|[^\]]+)\](.*)$/;function i(a){let b=a.match(h);return b?j(b[2]):j(a)}function j(a){let b=a.startsWith("[")&&a.endsWith("]");b&&(a=a.slice(1,-1));let c=a.startsWith("...");return c&&(a=a.slice(3)),{key:a,repeat:c,optional:b}}function k(a,b,c){let d={},i=1,k=[];for(let l of(0,g.removeTrailingSlash)(a).slice(1).split("/")){let a=e.INTERCEPTION_ROUTE_MARKERS.find(a=>l.startsWith(a)),g=l.match(h);if(a&&g&&g[2]){let{key:b,optional:c,repeat:e}=j(g[2]);d[b]={pos:i++,repeat:e,optional:c},k.push("/"+(0,f.escapeStringRegexp)(a)+"([^/]+?)")}else if(g&&g[2]){let{key:a,repeat:b,optional:e}=j(g[2]);d[a]={pos:i++,repeat:b,optional:e},c&&g[1]&&k.push("/"+(0,f.escapeStringRegexp)(g[1]));let h=b?e?"(?:/(.+?))?":"/(.+?)":"/([^/]+?)";c&&g[1]&&(h=h.substring(1)),k.push(h)}else k.push("/"+(0,f.escapeStringRegexp)(l));b&&g&&g[3]&&k.push((0,f.escapeStringRegexp)(g[3]))}return{parameterizedRoute:k.join(""),groups:d}}function l(a,b){let{includeSuffix:c=!1,includePrefix:d=!1,excludeOptionalTrailingSlash:e=!1}=void 0===b?{}:b,{parameterizedRoute:f,groups:g}=k(a,c,d),h=f;return e||(h+="(?:/)?"),{re:RegExp("^"+h+"$"),groups:g}}function m(a){let b,{interceptionMarker:c,getSafeRouteKey:d,segment:e,routeKeys:g,keyPrefix:h,backreferenceDuplicateKeys:i}=a,{key:k,optional:l,repeat:m}=j(e),n=k.replace(/\W/g,"");h&&(n=""+h+n);let o=!1;(0===n.length||n.length>30)&&(o=!0),isNaN(parseInt(n.slice(0,1)))||(o=!0),o&&(n=d());let p=n in g;h?g[n]=""+h+k:g[n]=k;let q=c?(0,f.escapeStringRegexp)(c):"";return b=p&&i?"\\k<"+n+">":m?"(?<"+n+">.+?)":"(?<"+n+">[^/]+?)",l?"(?:/"+q+b+")?":"/"+q+b}function n(a,b,c,i,j){let k,l=(k=0,()=>{let a="",b=++k;for(;b>0;)a+=String.fromCharCode(97+(b-1)%26),b=Math.floor((b-1)/26);return a}),n={},o=[];for(let k of(0,g.removeTrailingSlash)(a).slice(1).split("/")){let a=e.INTERCEPTION_ROUTE_MARKERS.some(a=>k.startsWith(a)),g=k.match(h);if(a&&g&&g[2])o.push(m({getSafeRouteKey:l,interceptionMarker:g[1],segment:g[2],routeKeys:n,keyPrefix:b?d.NEXT_INTERCEPTION_MARKER_PREFIX:void 0,backreferenceDuplicateKeys:j}));else if(g&&g[2]){i&&g[1]&&o.push("/"+(0,f.escapeStringRegexp)(g[1]));let a=m({getSafeRouteKey:l,segment:g[2],routeKeys:n,keyPrefix:b?d.NEXT_QUERY_PARAM_PREFIX:void 0,backreferenceDuplicateKeys:j});i&&g[1]&&(a=a.substring(1)),o.push(a)}else o.push("/"+(0,f.escapeStringRegexp)(k));c&&g&&g[3]&&o.push((0,f.escapeStringRegexp)(g[3]))}return{namedParameterizedRoute:o.join(""),routeKeys:n}}function o(a,b){var c,d,e;let f=n(a,b.prefixRouteKeys,null!=(c=b.includeSuffix)&&c,null!=(d=b.includePrefix)&&d,null!=(e=b.backreferenceDuplicateKeys)&&e),g=f.namedParameterizedRoute;return b.excludeOptionalTrailingSlash||(g+="(?:/)?"),{...l(a,b),namedRegex:"^"+g+"$",routeKeys:f.routeKeys}}function p(a,b){let{parameterizedRoute:c}=k(a,!1,!1),{catchAll:d=!0}=b;if("/"===c)return{namedRegex:"^/"+(d?".*":"")+"$"};let{namedParameterizedRoute:e}=n(a,!1,!1,!1,!1);return{namedRegex:"^"+e+(d?"(?:(/.*)?)":"")+"$"}}},4013:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),!function(a,b){for(var c in b)Object.defineProperty(a,c,{enumerable:!0,get:b[c]})}(b,{default:function(){return u},useLinkStatus:function(){return t}});let d=c(3147),e=c(8732),f=d._(c(2015)),g=c(6231),h=c(651),i=c(2848),j=c(4718),k=c(1169),l=c(2088),m=c(6152),n=c(1311),o=c(6092),p=c(9871);function q(a){return"string"==typeof a?a:(0,i.formatUrl)(a)}c(9281);let r=f.default.forwardRef(function(a,b){let c,d,{href:i,as:r,children:s,prefetch:t=null,passHref:u,replace:v,shallow:w,scroll:x,locale:y,onClick:z,onNavigate:A,onMouseEnter:B,onTouchStart:C,legacyBehavior:D=!1,...E}=a;c=s,D&&("string"==typeof c||"number"==typeof c)&&(c=(0,e.jsx)("a",{children:c}));let F=f.default.useContext(l.RouterContext),G=!1!==t,{href:H,as:I}=f.default.useMemo(()=>{if(!F){let a=q(i);return{href:a,as:r?q(r):a}}let[a,b]=(0,g.resolveHref)(F,i,!0);return{href:a,as:r?(0,g.resolveHref)(F,r):b||a}},[F,i,r]),J=f.default.useRef(H),K=f.default.useRef(I);D&&(d=f.default.Children.only(c));let L=D?d&&"object"==typeof d&&d.ref:b,[M,N,O]=(0,m.useIntersection)({rootMargin:"200px"}),P=f.default.useCallback(a=>{(K.current!==I||J.current!==H)&&(O(),K.current=I,J.current=H),M(a)},[I,H,O,M]),Q=(0,p.useMergedRef)(P,L);f.default.useEffect(()=>{},[I,H,N,y,G,null==F?void 0:F.locale,F]);let R={ref:Q,onClick(a){D||"function"!=typeof z||z(a),D&&d.props&&"function"==typeof d.props.onClick&&d.props.onClick(a),F&&(a.defaultPrevented||function(a,b,c,d,e,f,g,i,j){let{nodeName:k}=a.currentTarget;if(!("A"===k.toUpperCase()&&function(a){let b=a.currentTarget.getAttribute("target");return b&&"_self"!==b||a.metaKey||a.ctrlKey||a.shiftKey||a.altKey||a.nativeEvent&&2===a.nativeEvent.which}(a)||a.currentTarget.hasAttribute("download"))){if(!(0,h.isLocalURL)(c)){e&&(a.preventDefault(),location.replace(c));return}a.preventDefault(),(()=>{if(j){let a=!1;if(j({preventDefault:()=>{a=!0}}),a)return}let a=null==g||g;"beforePopState"in b?b[e?"replace":"push"](c,d,{shallow:f,locale:i,scroll:a}):b[e?"replace":"push"](d||c,{scroll:a})})()}}(a,F,H,I,v,w,x,y,A))},onMouseEnter(a){D||"function"!=typeof B||B(a),D&&d.props&&"function"==typeof d.props.onMouseEnter&&d.props.onMouseEnter(a)},onTouchStart:function(a){D||"function"!=typeof C||C(a),D&&d.props&&"function"==typeof d.props.onTouchStart&&d.props.onTouchStart(a)}};if((0,j.isAbsoluteUrl)(I))R.href=I;else if(!D||u||"a"===d.type&&!("href"in d.props)){let a=void 0!==y?y:null==F?void 0:F.locale;R.href=(null==F?void 0:F.isLocaleDomain)&&(0,n.getDomainLocale)(I,a,null==F?void 0:F.locales,null==F?void 0:F.domainLocales)||(0,o.addBasePath)((0,k.addLocale)(I,a,null==F?void 0:F.defaultLocale))}return D?f.default.cloneElement(d,R):(0,e.jsx)("a",{...E,...R,children:c})}),s=(0,f.createContext)({pending:!1}),t=()=>(0,f.useContext)(s),u=r;("function"==typeof b.default||"object"==typeof b.default&&null!==b.default)&&void 0===b.default.__esModule&&(Object.defineProperty(b.default,"__esModule",{value:!0}),Object.assign(b.default,b),a.exports=b.default)},4841:(a,b)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),!function(a,b){for(var c in b)Object.defineProperty(a,c,{enumerable:!0,get:b[c]})}(b,{cancelIdleCallback:function(){return d},requestIdleCallback:function(){return c}});let c="undefined"!=typeof self&&self.requestIdleCallback&&self.requestIdleCallback.bind(window)||function(a){let b=Date.now();return self.setTimeout(function(){a({didTimeout:!1,timeRemaining:function(){return Math.max(0,50-(Date.now()-b))}})},1)},d="undefined"!=typeof self&&self.cancelIdleCallback&&self.cancelIdleCallback.bind(window)||function(a){return clearTimeout(a)};("function"==typeof b.default||"object"==typeof b.default&&null!==b.default)&&void 0===b.default.__esModule&&(Object.defineProperty(b.default,"__esModule",{value:!0}),Object.assign(b.default,b),a.exports=b.default)},6092:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),Object.defineProperty(b,"addBasePath",{enumerable:!0,get:function(){return f}});let d=c(6655),e=c(7779);function f(a,b){return(0,e.normalizePathTrailingSlash)((0,d.addPathPrefix)(a,""))}("function"==typeof b.default||"object"==typeof b.default&&null!==b.default)&&void 0===b.default.__esModule&&(Object.defineProperty(b.default,"__esModule",{value:!0}),Object.assign(b.default,b),a.exports=b.default)},6152:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),Object.defineProperty(b,"useIntersection",{enumerable:!0,get:function(){return i}});let d=c(2015),e=c(4841),f="function"==typeof IntersectionObserver,g=new Map,h=[];function i(a){let{rootRef:b,rootMargin:c,disabled:i}=a,j=i||!f,[k,l]=(0,d.useState)(!1),m=(0,d.useRef)(null),n=(0,d.useCallback)(a=>{m.current=a},[]);return(0,d.useEffect)(()=>{if(f){if(j||k)return;let a=m.current;if(a&&a.tagName)return function(a,b,c){let{id:d,observer:e,elements:f}=function(a){let b,c={root:a.root||null,margin:a.rootMargin||""},d=h.find(a=>a.root===c.root&&a.margin===c.margin);if(d&&(b=g.get(d)))return b;let e=new Map;return b={id:c,observer:new IntersectionObserver(a=>{a.forEach(a=>{let b=e.get(a.target),c=a.isIntersecting||a.intersectionRatio>0;b&&c&&b(c)})},a),elements:e},h.push(c),g.set(c,b),b}(c);return f.set(a,b),e.observe(a),function(){if(f.delete(a),e.unobserve(a),0===f.size){e.disconnect(),g.delete(d);let a=h.findIndex(a=>a.root===d.root&&a.margin===d.margin);a>-1&&h.splice(a,1)}}}(a,a=>a&&l(a),{root:null==b?void 0:b.current,rootMargin:c})}else if(!k){let a=(0,e.requestIdleCallback)(()=>l(!0));return()=>(0,e.cancelIdleCallback)(a)}},[j,c,b,k,m.current]),[n,k,(0,d.useCallback)(()=>{l(!1)},[])]}("function"==typeof b.default||"object"==typeof b.default&&null!==b.default)&&void 0===b.default.__esModule&&(Object.defineProperty(b.default,"__esModule",{value:!0}),Object.assign(b.default,b),a.exports=b.default)},6231:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),Object.defineProperty(b,"resolveHref",{enumerable:!0,get:function(){return l}});let d=c(7536),e=c(2848),f=c(8410),g=c(4718),h=c(7779),i=c(651),j=c(6275),k=c(3563);function l(a,b,c){let l,m="string"==typeof b?b:(0,e.formatWithValidation)(b),n=m.match(/^[a-z][a-z0-9+.-]*:\/\//i),o=n?m.slice(n[0].length):m;if((o.split("?",1)[0]||"").match(/(\/\/|\\)/)){console.error("Invalid href '"+m+"' passed to next/router in page: '"+a.pathname+"'. Repeated forward-slashes (//) or backslashes \\ are not valid in the href.");let b=(0,g.normalizeRepeatedSlashes)(o);m=(n?n[0]:"")+b}if(!(0,i.isLocalURL)(m))return c?[m]:m;try{l=new URL(m.startsWith("#")?a.asPath:a.pathname,"http://n")}catch(a){l=new URL("/","http://n")}try{let a=new URL(m,l);a.pathname=(0,h.normalizePathTrailingSlash)(a.pathname);let b="";if((0,j.isDynamicRoute)(a.pathname)&&a.searchParams&&c){let c=(0,d.searchParamsToUrlQuery)(a.searchParams),{result:g,params:h}=(0,k.interpolateAs)(a.pathname,a.pathname,c);g&&(b=(0,e.formatWithValidation)({pathname:g,hash:a.hash,query:(0,f.omit)(c,h)}))}let g=a.origin===l.origin?a.href.slice(a.origin.length):a.href;return c?[g,b||g]:g}catch(a){return c?[m]:m}}("function"==typeof b.default||"object"==typeof b.default&&null!==b.default)&&void 0===b.default.__esModule&&(Object.defineProperty(b.default,"__esModule",{value:!0}),Object.assign(b.default,b),a.exports=b.default)},7536:(a,b)=>{"use strict";function c(a){let b={};for(let[c,d]of a.entries()){let a=b[c];void 0===a?b[c]=d:Array.isArray(a)?a.push(d):b[c]=[a,d]}return b}function d(a){return"string"==typeof a?a:("number"!=typeof a||isNaN(a))&&"boolean"!=typeof a?"":String(a)}function e(a){let b=new URLSearchParams;for(let[c,e]of Object.entries(a))if(Array.isArray(e))for(let a of e)b.append(c,d(a));else b.set(c,d(e));return b}function f(a){for(var b=arguments.length,c=Array(b>1?b-1:0),d=1;d{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),Object.defineProperty(b,"normalizePathTrailingSlash",{enumerable:!0,get:function(){return f}});let d=c(1730),e=c(6290),f=a=>{if(!a.startsWith("/"))return a;let{pathname:b,query:c,hash:f}=(0,e.parsePath)(a);return/\.[^/]+\/?$/.test(b)?""+(0,d.removeTrailingSlash)(b)+c+f:b.endsWith("/")?""+b+c+f:b+"/"+c+f};("function"==typeof b.default||"object"==typeof b.default&&null!==b.default)&&void 0===b.default.__esModule&&(Object.defineProperty(b.default,"__esModule",{value:!0}),Object.assign(b.default,b),a.exports=b.default)},8410:(a,b)=>{"use strict";function c(a,b){let c={};return Object.keys(a).forEach(d=>{b.includes(d)||(c[d]=a[d])}),c}Object.defineProperty(b,"__esModule",{value:!0}),Object.defineProperty(b,"omit",{enumerable:!0,get:function(){return c}})},8900:(a,b)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),Object.defineProperty(b,"escapeStringRegexp",{enumerable:!0,get:function(){return e}});let c=/[|\\{}()[\]^$+*?.-]/,d=/[|\\{}()[\]^$+*?.-]/g;function e(a){return c.test(a)?a.replace(d,"\\$&"):a}},9281:(a,b)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),Object.defineProperty(b,"errorOnce",{enumerable:!0,get:function(){return c}});let c=a=>{}},9871:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),Object.defineProperty(b,"useMergedRef",{enumerable:!0,get:function(){return e}});let d=c(2015);function e(a,b){let c=(0,d.useRef)(null),e=(0,d.useRef)(null);return(0,d.useCallback)(d=>{if(null===d){let a=c.current;a&&(c.current=null,a());let b=e.current;b&&(e.current=null,b())}else a&&(c.current=f(a,d)),b&&(e.current=f(b,d))},[a,b])}function f(a,b){if("function"!=typeof a)return a.current=b,()=>{a.current=null};{let c=a(b);return"function"==typeof c?c:()=>a(null)}}("function"==typeof b.default||"object"==typeof b.default&&null!==b.default)&&void 0===b.default.__esModule&&(Object.defineProperty(b.default,"__esModule",{value:!0}),Object.assign(b.default,b),a.exports=b.default)},9918:(a,b,c)=>{a.exports=c(4013)}}; \ No newline at end of file diff --git a/.next/server/middleware-build-manifest.js b/.next/server/middleware-build-manifest.js index 3d40cfd..9652b4e 100644 --- a/.next/server/middleware-build-manifest.js +++ b/.next/server/middleware-build-manifest.js @@ -1 +1 @@ -globalThis.__BUILD_MANIFEST={polyfillFiles:["static/chunks/polyfills-42372ed130431b0a.js"],devFiles:[],ampDevFiles:[],lowPriorityFiles:[],rootMainFiles:[],rootMainFilesTree:{},pages:{"/":["static/chunks/webpack-057da668910d4143.js","static/chunks/framework-768692517470e708.js","static/chunks/main-1d517099cd2b8fe7.js","static/chunks/752-7be3646714fa7c4b.js","static/chunks/pages/index-f0d56cc007c09baf.js"],"/_app":["static/chunks/webpack-057da668910d4143.js","static/chunks/framework-768692517470e708.js","static/chunks/main-1d517099cd2b8fe7.js","static/css/d1d52e078040944a.css","static/chunks/pages/_app-48e49d6afe408d10.js"],"/_error":["static/chunks/webpack-057da668910d4143.js","static/chunks/framework-768692517470e708.js","static/chunks/main-1d517099cd2b8fe7.js","static/chunks/pages/_error-7ddc2730f944d98a.js"],"/about":["static/chunks/webpack-057da668910d4143.js","static/chunks/framework-768692517470e708.js","static/chunks/main-1d517099cd2b8fe7.js","static/chunks/752-7be3646714fa7c4b.js","static/chunks/pages/about-2092805e7bd2ab57.js"],"/cases":["static/chunks/webpack-057da668910d4143.js","static/chunks/framework-768692517470e708.js","static/chunks/main-1d517099cd2b8fe7.js","static/chunks/752-7be3646714fa7c4b.js","static/chunks/pages/cases-7fc60f7f3779c332.js"],"/contact":["static/chunks/webpack-057da668910d4143.js","static/chunks/framework-768692517470e708.js","static/chunks/main-1d517099cd2b8fe7.js","static/chunks/752-7be3646714fa7c4b.js","static/chunks/pages/contact-eb714edd6749b939.js"],"/features":["static/chunks/webpack-057da668910d4143.js","static/chunks/framework-768692517470e708.js","static/chunks/main-1d517099cd2b8fe7.js","static/chunks/752-7be3646714fa7c4b.js","static/chunks/pages/features-c01c43eb1fe58456.js"],"/login":["static/chunks/webpack-057da668910d4143.js","static/chunks/framework-768692517470e708.js","static/chunks/main-1d517099cd2b8fe7.js","static/chunks/752-7be3646714fa7c4b.js","static/chunks/pages/login-770246fe6d4a26b5.js"],"/news":["static/chunks/webpack-057da668910d4143.js","static/chunks/framework-768692517470e708.js","static/chunks/main-1d517099cd2b8fe7.js","static/chunks/752-7be3646714fa7c4b.js","static/chunks/pages/news-eab647df9653169a.js"],"/pricing":["static/chunks/webpack-057da668910d4143.js","static/chunks/framework-768692517470e708.js","static/chunks/main-1d517099cd2b8fe7.js","static/chunks/752-7be3646714fa7c4b.js","static/chunks/pages/pricing-20dc30b818da4890.js"]},ampFirstPages:[]},globalThis.__BUILD_MANIFEST.lowPriorityFiles=["/static/"+process.env.__NEXT_BUILD_ID+"/_buildManifest.js",,"/static/"+process.env.__NEXT_BUILD_ID+"/_ssgManifest.js"]; \ No newline at end of file +globalThis.__BUILD_MANIFEST={polyfillFiles:["static/chunks/polyfills-42372ed130431b0a.js"],devFiles:[],ampDevFiles:[],lowPriorityFiles:[],rootMainFiles:[],rootMainFilesTree:{},pages:{"/":["static/chunks/webpack-22e55b39fad5ed53.js","static/chunks/framework-768692517470e708.js","static/chunks/main-068b7b110c4638d3.js","static/chunks/822-da9f524f13859791.js","static/chunks/137-bf054b6a146af08a.js","static/chunks/918-4bc07682571d1dac.js","static/chunks/pages/index-8037d7b3ac028ae8.js"],"/_app":["static/chunks/webpack-22e55b39fad5ed53.js","static/chunks/framework-768692517470e708.js","static/chunks/main-068b7b110c4638d3.js","static/css/95bb1a7173c0b876.css","static/chunks/pages/_app-48e49d6afe408d10.js"],"/_error":["static/chunks/webpack-22e55b39fad5ed53.js","static/chunks/framework-768692517470e708.js","static/chunks/main-068b7b110c4638d3.js","static/chunks/pages/_error-7ddc2730f944d98a.js"],"/about":["static/chunks/webpack-22e55b39fad5ed53.js","static/chunks/framework-768692517470e708.js","static/chunks/main-068b7b110c4638d3.js","static/chunks/822-da9f524f13859791.js","static/chunks/137-bf054b6a146af08a.js","static/chunks/pages/about-d81811cf16393363.js"],"/cases":["static/chunks/webpack-22e55b39fad5ed53.js","static/chunks/framework-768692517470e708.js","static/chunks/main-068b7b110c4638d3.js","static/chunks/822-da9f524f13859791.js","static/chunks/137-bf054b6a146af08a.js","static/chunks/pages/cases-f9b95c7b9db01f71.js"],"/contact":["static/chunks/webpack-22e55b39fad5ed53.js","static/chunks/framework-768692517470e708.js","static/chunks/main-068b7b110c4638d3.js","static/chunks/822-da9f524f13859791.js","static/chunks/pages/contact-61de0e28887a09bd.js"],"/features":["static/chunks/webpack-22e55b39fad5ed53.js","static/chunks/framework-768692517470e708.js","static/chunks/main-068b7b110c4638d3.js","static/chunks/822-da9f524f13859791.js","static/chunks/137-bf054b6a146af08a.js","static/chunks/918-4bc07682571d1dac.js","static/chunks/pages/features-93fbae3d8fbd8394.js"],"/login":["static/chunks/webpack-22e55b39fad5ed53.js","static/chunks/framework-768692517470e708.js","static/chunks/main-068b7b110c4638d3.js","static/chunks/822-da9f524f13859791.js","static/chunks/0-28af0524fadc5ec4.js","static/chunks/pages/login-22d7626a42cf752e.js"],"/news":["static/chunks/webpack-22e55b39fad5ed53.js","static/chunks/framework-768692517470e708.js","static/chunks/main-068b7b110c4638d3.js","static/chunks/822-da9f524f13859791.js","static/chunks/pages/news-121e3e413bdad17d.js"],"/news/[slug]":["static/chunks/webpack-22e55b39fad5ed53.js","static/chunks/framework-768692517470e708.js","static/chunks/main-068b7b110c4638d3.js","static/chunks/822-da9f524f13859791.js","static/chunks/pages/news/[slug]-6186471bb0713168.js"],"/pricing":["static/chunks/webpack-22e55b39fad5ed53.js","static/chunks/framework-768692517470e708.js","static/chunks/main-068b7b110c4638d3.js","static/chunks/822-da9f524f13859791.js","static/chunks/pages/pricing-dca7adf04ef74762.js"]},ampFirstPages:[]},globalThis.__BUILD_MANIFEST.lowPriorityFiles=["/static/"+process.env.__NEXT_BUILD_ID+"/_buildManifest.js",,"/static/"+process.env.__NEXT_BUILD_ID+"/_ssgManifest.js"]; \ No newline at end of file diff --git a/.next/server/pages-manifest.json b/.next/server/pages-manifest.json index 5b9ae8b..0171947 100644 --- a/.next/server/pages-manifest.json +++ b/.next/server/pages-manifest.json @@ -2,14 +2,15 @@ "/_app": "pages/_app.js", "/about": "pages/about.html", "/api/sitemap/[lang]": "pages/api/sitemap/[lang].js", - "/_error": "pages/_error.js", "/cases": "pages/cases.html", "/contact": "pages/contact.html", "/features": "pages/features.html", "/": "pages/index.html", "/login": "pages/login.html", - "/news": "pages/news.html", "/pricing": "pages/pricing.html", + "/_error": "pages/_error.js", + "/news": "pages/news.js", + "/news/[slug]": "pages/news/[slug].js", "/_document": "pages/_document.js", "/404": "pages/404.html" } \ No newline at end of file diff --git a/.next/server/pages/404.html b/.next/server/pages/404.html index 7e2b25b..33cd339 100644 --- a/.next/server/pages/404.html +++ b/.next/server/pages/404.html @@ -1 +1 @@ -404: This page could not be found

404

This page could not be found.

\ No newline at end of file +404: This page could not be found

404

This page could not be found.

\ No newline at end of file diff --git a/.next/server/pages/500.html b/.next/server/pages/500.html index e8b2055..134bdab 100644 --- a/.next/server/pages/500.html +++ b/.next/server/pages/500.html @@ -1 +1 @@ -500: Internal Server Error

500

Internal Server Error.

\ No newline at end of file +500: Internal Server Error

500

Internal Server Error.

\ No newline at end of file diff --git a/.next/server/pages/about.html b/.next/server/pages/about.html index 87c26c4..77a98b8 100644 --- a/.next/server/pages/about.html +++ b/.next/server/pages/about.html @@ -1 +1 @@ -

关于我们

CloudProxy 致力于为全球用户提供高性能、可靠、安全的云加速服务。我们的核心团队来自 AWS、阿里云等一线云计算厂商,拥有多年的网络优化和运维经验。

自成立以来,我们已为数百家企业提供定制化加速解决方案,覆盖电商、游戏、金融、教育等多个行业,帮助客户显著提升网站访问速度和稳定性。

使命

让全球互联网无障碍连接,推动业务高速增长。

愿景

成为全球领先的云网络加速平台。

价值观

客户为先,技术驱动,持续创新。

\ No newline at end of file +

关于我们

我们是一支充满激情的团队,致力于通过创新的云加速技术, 为全球企业提供更快、更安全、更可靠的网络服务。

我们的使命

让全球互联网无障碍连接,推动业务高速增长

我们的愿景

成为全球领先的云网络加速平台

我们的价值观

客户为先,技术驱动,持续创新

我们的故事

Pinnovate Cloud 成立于 2020 年,是一家专注于云网络加速技术的创新公司。 我们的核心团队来自 AWS、阿里云、腾讯云等全球领先的云计算厂商, 拥有超过 15 年的网络优化和运维经验。

自成立以来,我们已为全球 500+ 家企业提供定制化加速解决方案, 覆盖电商、游戏、金融、教育、医疗等多个行业, 帮助客户显著提升网站访问速度和业务稳定性。

全球覆盖

50+ 全球节点,覆盖主要国家和地区

极速性能

平均延迟 < 50ms,性能提升 50%+

安全可靠

企业级安全防护,99.9% 可用性保障

专业团队

来自一线云厂商的技术专家团队

行业认可

获得多项技术专利和行业认证

客户成功

99.9% 客户满意度,持续优化服务

技术实力

我们拥有业界领先的技术栈和丰富的实践经验, 为客户提供最优质的云加速服务。

99.9%

CDN 技术

缓存命中率

50ms

智能路由

平均延迟

100%

安全防护

DDoS 防护

50+

全球节点

覆盖地区

客户评价

听听我们的客户怎么说

张总
技术总监
某大型电商平台

"Pinnovate Cloud 的加速服务帮助我们显著提升了全球用户的访问体验,转化率提升了近30%。"

李经理
运营总监
知名游戏公司

"通过 Pinnovate Cloud 的游戏加速服务,我们的玩家在全球范围内都能享受到流畅的游戏体验。"

王总
CTO
大型金融机构

"Pinnovate Cloud 不仅提供了卓越的性能优化,更重要的是保证了我们金融系统的安全性。"

我们的团队

我们拥有一支来自全球顶尖科技公司的专业团队, 在云计算、网络优化和网络安全领域拥有丰富的经验。

💻

技术团队

来自 AWS、阿里云等一线云服务商的技术专家

15+ 年经验
🎯

产品团队

深度理解用户需求,持续优化产品体验

10+ 年经验
⚙️

运营团队

7×24 小时专业运维,确保服务稳定可靠

99.9% 可用性

发展历程

从初创公司到行业领先,我们始终专注于技术创新和客户价值创造。

🚀2020

公司成立

Pinnovate Cloud 正式成立,专注于云加速技术研发

💰2021

首轮融资

获得知名投资机构 A 轮融资,加速技术研发

🌍2022

全球扩张

部署全球 20+ 节点,服务覆盖主要地区

🤖2023

技术突破

发布 AI 智能路由技术,性能提升 50%

🏆2024

行业领先

服务客户超过 500+,成为行业标杆

加入我们的旅程

我们正在寻找志同道合的伙伴,一起推动云加速技术的发展, 为全球用户创造更好的网络体验。

\ No newline at end of file diff --git a/.next/server/pages/api/sitemap/[lang].js b/.next/server/pages/api/sitemap/[lang].js index 15cff57..c6ecd2f 100644 --- a/.next/server/pages/api/sitemap/[lang].js +++ b/.next/server/pages/api/sitemap/[lang].js @@ -1,4 +1,4 @@ (()=>{var a={};a.id=123,a.ids=[123],a.modules={718:(a,b,c)=>{"use strict";c.r(b),c.d(b,{config:()=>t,default:()=>s,handler:()=>v});var d={};c.r(d),c.d(d,{default:()=>p});var e=c(9046),f=c(8667),g=c(3480),h=c(6435);let i=require("fs");var j=c.n(i);let k=require("path");var l=c.n(k);let m=require("gray-matter");var n=c.n(m);let o=l().join(process.cwd(),"content");async function p(a,b){let{lang:c}=a.query,d=process.env.SITE_URL||"https://your-domain.com",e=(function(a){let b=l().join(o,a);return j().existsSync(b)?j().readdirSync(b).filter(a=>a.endsWith(".md")).map(a=>{let c=l().join(b,a),{data:d}=n()(j().readFileSync(c,"utf-8"));return{slug:[a.replace(/\.md$/,"")],frontmatter:d}}):[]})(c).filter(a=>a.frontmatter.sitemap).map(a=>`${d}/${c}/${a.slug.join("/")}daily`).join(""),f=` ${e} -`;b.setHeader("Content-Type","application/xml"),b.write(f),b.end()}var q=c(8112),r=c(8766);let s=(0,h.M)(d,"default"),t=(0,h.M)(d,"config"),u=new g.PagesAPIRouteModule({definition:{kind:f.A.PAGES_API,page:"/api/sitemap/[lang]",pathname:"/api/sitemap/[lang]",bundlePath:"",filename:""},userland:d,distDir:".next",projectDir:""});async function v(a,b,c){let d=await u.prepare(a,b,{srcPage:"/api/sitemap/[lang]"});if(!d){b.statusCode=400,b.end("Bad Request"),null==c.waitUntil||c.waitUntil.call(c,Promise.resolve());return}let{query:f,params:g,prerenderManifest:h}=d;try{let c=a.method||"GET",d=(0,q.getTracer)(),e=d.getActiveScopeSpan(),i=u.instrumentationOnRequestError.bind(u),j=async e=>u.render(a,b,{query:{...f,...g},params:g,allowedRevalidateHeaderKeys:void 0,multiZoneDraftMode:!0,trustHostHeader:void 0,previewProps:h.preview,propagateError:!1,dev:u.isDev,page:"/api/sitemap/[lang]",projectDir:"",onError:(...b)=>i(a,...b)}).finally(()=>{if(!e)return;e.setAttributes({"http.status_code":b.statusCode,"next.rsc":!1});let f=d.getRootSpanAttributes();if(!f)return;if(f.get("next.span_type")!==r.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${f.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let g=f.get("next.route");if(g){let a=`${c} ${g}`;e.setAttributes({"next.route":g,"http.route":g,"next.span_name":a}),e.updateName(a)}else e.updateName(`${c} ${a.url}`)});e?await j(e):await d.withPropagatedContext(a.headers,()=>d.trace(r.BaseServerSpan.handleRequest,{spanName:`${c} ${a.url}`,kind:q.SpanKind.SERVER,attributes:{"http.method":c,"http.target":a.url}},j))}catch(a){if(u.isDev)throw a;(0,e.sendError)(b,500,"Internal Server Error")}finally{null==c.waitUntil||c.waitUntil.call(c,Promise.resolve())}}},1254:a=>{(()=>{"use strict";"undefined"!=typeof __nccwpck_require__&&(__nccwpck_require__.ab=__dirname+"/");var b={};(()=>{b.parse=function(b,c){if("string"!=typeof b)throw TypeError("argument str must be a string");for(var e={},f=b.split(d),g=(c||{}).decode||a,h=0;h{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),Object.defineProperty(b,"ReflectAdapter",{enumerable:!0,get:function(){return c}});class c{static get(a,b,c){let d=Reflect.get(a,b,c);return"function"==typeof d?d.bind(a):d}static set(a,b,c,d){return Reflect.set(a,b,c,d)}static has(a,b){return Reflect.has(a,b)}static deleteProperty(a,b){return Reflect.deleteProperty(a,b)}}},1922:(a,b)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),!function(a,b){for(var c in b)Object.defineProperty(a,c,{enumerable:!0,get:b[c]})}(b,{ACTION_SUFFIX:function(){return l},APP_DIR_ALIAS:function(){return F},CACHE_ONE_YEAR:function(){return x},DOT_NEXT_ALIAS:function(){return D},ESLINT_DEFAULT_DIRS:function(){return Z},GSP_NO_RETURNED_VALUE:function(){return T},GSSP_COMPONENT_MEMBER_ERROR:function(){return W},GSSP_NO_RETURNED_VALUE:function(){return U},INFINITE_CACHE:function(){return y},INSTRUMENTATION_HOOK_FILENAME:function(){return B},MATCHED_PATH_HEADER:function(){return e},MIDDLEWARE_FILENAME:function(){return z},MIDDLEWARE_LOCATION_REGEXP:function(){return A},NEXT_BODY_SUFFIX:function(){return o},NEXT_CACHE_IMPLICIT_TAG_ID:function(){return w},NEXT_CACHE_REVALIDATED_TAGS_HEADER:function(){return q},NEXT_CACHE_REVALIDATE_TAG_TOKEN_HEADER:function(){return r},NEXT_CACHE_SOFT_TAG_MAX_LENGTH:function(){return v},NEXT_CACHE_TAGS_HEADER:function(){return p},NEXT_CACHE_TAG_MAX_ITEMS:function(){return t},NEXT_CACHE_TAG_MAX_LENGTH:function(){return u},NEXT_DATA_SUFFIX:function(){return m},NEXT_INTERCEPTION_MARKER_PREFIX:function(){return d},NEXT_META_SUFFIX:function(){return n},NEXT_QUERY_PARAM_PREFIX:function(){return c},NEXT_RESUME_HEADER:function(){return s},NON_STANDARD_NODE_ENV:function(){return X},PAGES_DIR_ALIAS:function(){return C},PRERENDER_REVALIDATE_HEADER:function(){return f},PRERENDER_REVALIDATE_ONLY_GENERATED_HEADER:function(){return g},PUBLIC_DIR_MIDDLEWARE_CONFLICT:function(){return N},ROOT_DIR_ALIAS:function(){return E},RSC_ACTION_CLIENT_WRAPPER_ALIAS:function(){return M},RSC_ACTION_ENCRYPTION_ALIAS:function(){return L},RSC_ACTION_PROXY_ALIAS:function(){return I},RSC_ACTION_VALIDATE_ALIAS:function(){return H},RSC_CACHE_WRAPPER_ALIAS:function(){return J},RSC_DYNAMIC_IMPORT_WRAPPER_ALIAS:function(){return K},RSC_MOD_REF_PROXY_ALIAS:function(){return G},RSC_PREFETCH_SUFFIX:function(){return h},RSC_SEGMENTS_DIR_SUFFIX:function(){return i},RSC_SEGMENT_SUFFIX:function(){return j},RSC_SUFFIX:function(){return k},SERVER_PROPS_EXPORT_ERROR:function(){return S},SERVER_PROPS_GET_INIT_PROPS_CONFLICT:function(){return P},SERVER_PROPS_SSG_CONFLICT:function(){return Q},SERVER_RUNTIME:function(){return $},SSG_FALLBACK_EXPORT_ERROR:function(){return Y},SSG_GET_INITIAL_PROPS_CONFLICT:function(){return O},STATIC_STATUS_PAGE_GET_INITIAL_PROPS_ERROR:function(){return R},UNSTABLE_REVALIDATE_RENAME_ERROR:function(){return V},WEBPACK_LAYERS:function(){return aa},WEBPACK_RESOURCE_QUERIES:function(){return ab}});let c="nxtP",d="nxtI",e="x-matched-path",f="x-prerender-revalidate",g="x-prerender-revalidate-if-generated",h=".prefetch.rsc",i=".segments",j=".segment.rsc",k=".rsc",l=".action",m=".json",n=".meta",o=".body",p="x-next-cache-tags",q="x-next-revalidated-tags",r="x-next-revalidate-tag-token",s="next-resume",t=128,u=256,v=1024,w="_N_T_",x=31536e3,y=0xfffffffe,z="middleware",A=`(?:src/)?${z}`,B="instrumentation",C="private-next-pages",D="private-dot-next",E="private-next-root-dir",F="private-next-app-dir",G="private-next-rsc-mod-ref-proxy",H="private-next-rsc-action-validate",I="private-next-rsc-server-reference",J="private-next-rsc-cache-wrapper",K="private-next-rsc-track-dynamic-import",L="private-next-rsc-action-encryption",M="private-next-rsc-action-client-wrapper",N="You can not have a '_next' folder inside of your public folder. This conflicts with the internal '/_next' route. https://nextjs.org/docs/messages/public-next-folder-conflict",O="You can not use getInitialProps with getStaticProps. To use SSG, please remove your getInitialProps",P="You can not use getInitialProps with getServerSideProps. Please remove getInitialProps.",Q="You can not use getStaticProps or getStaticPaths with getServerSideProps. To use SSG, please remove getServerSideProps",R="can not have getInitialProps/getServerSideProps, https://nextjs.org/docs/messages/404-get-initial-props",S="pages with `getServerSideProps` can not be exported. See more info here: https://nextjs.org/docs/messages/gssp-export",T="Your `getStaticProps` function did not return an object. Did you forget to add a `return`?",U="Your `getServerSideProps` function did not return an object. Did you forget to add a `return`?",V="The `unstable_revalidate` property is available for general use.\nPlease use `revalidate` instead.",W="can not be attached to a page's component and must be exported from the page. See more info here: https://nextjs.org/docs/messages/gssp-component-member",X='You are using a non-standard "NODE_ENV" value in your environment. This creates inconsistencies in the project and is strongly advised against. Read more: https://nextjs.org/docs/messages/non-standard-node-env',Y="Pages with `fallback` enabled in `getStaticPaths` can not be exported. See more info here: https://nextjs.org/docs/messages/ssg-fallback-true-export",Z=["app","pages","components","lib","src"],$={edge:"edge",experimentalEdge:"experimental-edge",nodejs:"nodejs"},_={shared:"shared",reactServerComponents:"rsc",serverSideRendering:"ssr",actionBrowser:"action-browser",apiNode:"api-node",apiEdge:"api-edge",middleware:"middleware",instrument:"instrument",edgeAsset:"edge-asset",appPagesBrowser:"app-pages-browser",pagesDirBrowser:"pages-dir-browser",pagesDirEdge:"pages-dir-edge",pagesDirNode:"pages-dir-node"},aa={..._,GROUP:{builtinReact:[_.reactServerComponents,_.actionBrowser],serverOnly:[_.reactServerComponents,_.actionBrowser,_.instrument,_.middleware],neutralTarget:[_.apiNode,_.apiEdge],clientOnly:[_.serverSideRendering,_.appPagesBrowser],bundled:[_.reactServerComponents,_.actionBrowser,_.serverSideRendering,_.appPagesBrowser,_.shared,_.instrument,_.middleware],appPages:[_.reactServerComponents,_.serverSideRendering,_.appPagesBrowser,_.actionBrowser]}},ab={edgeSSREntry:"__next_edge_ssr_entry__",metadata:"__next_metadata__",metadataRoute:"__next_metadata_route__",metadataImageMeta:"__next_metadata_image_meta__"}},3176:a=>{(()=>{"use strict";var b={491:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.ContextAPI=void 0;let d=c(223),e=c(172),f=c(930),g="context",h=new d.NoopContextManager;class i{constructor(){}static getInstance(){return this._instance||(this._instance=new i),this._instance}setGlobalContextManager(a){return(0,e.registerGlobal)(g,a,f.DiagAPI.instance())}active(){return this._getContextManager().active()}with(a,b,c,...d){return this._getContextManager().with(a,b,c,...d)}bind(a,b){return this._getContextManager().bind(a,b)}_getContextManager(){return(0,e.getGlobal)(g)||h}disable(){this._getContextManager().disable(),(0,e.unregisterGlobal)(g,f.DiagAPI.instance())}}b.ContextAPI=i},930:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.DiagAPI=void 0;let d=c(56),e=c(912),f=c(957),g=c(172);class h{constructor(){function a(a){return function(...b){let c=(0,g.getGlobal)("diag");if(c)return c[a](...b)}}let b=this;b.setLogger=(a,c={logLevel:f.DiagLogLevel.INFO})=>{var d,h,i;if(a===b){let a=Error("Cannot use diag as the logger for itself. Please use a DiagLogger implementation like ConsoleDiagLogger or a custom implementation");return b.error(null!=(d=a.stack)?d:a.message),!1}"number"==typeof c&&(c={logLevel:c});let j=(0,g.getGlobal)("diag"),k=(0,e.createLogLevelDiagLogger)(null!=(h=c.logLevel)?h:f.DiagLogLevel.INFO,a);if(j&&!c.suppressOverrideMessage){let a=null!=(i=Error().stack)?i:"";j.warn(`Current logger will be overwritten from ${a}`),k.warn(`Current logger will overwrite one already registered from ${a}`)}return(0,g.registerGlobal)("diag",k,b,!0)},b.disable=()=>{(0,g.unregisterGlobal)("diag",b)},b.createComponentLogger=a=>new d.DiagComponentLogger(a),b.verbose=a("verbose"),b.debug=a("debug"),b.info=a("info"),b.warn=a("warn"),b.error=a("error")}static instance(){return this._instance||(this._instance=new h),this._instance}}b.DiagAPI=h},653:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.MetricsAPI=void 0;let d=c(660),e=c(172),f=c(930),g="metrics";class h{constructor(){}static getInstance(){return this._instance||(this._instance=new h),this._instance}setGlobalMeterProvider(a){return(0,e.registerGlobal)(g,a,f.DiagAPI.instance())}getMeterProvider(){return(0,e.getGlobal)(g)||d.NOOP_METER_PROVIDER}getMeter(a,b,c){return this.getMeterProvider().getMeter(a,b,c)}disable(){(0,e.unregisterGlobal)(g,f.DiagAPI.instance())}}b.MetricsAPI=h},181:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.PropagationAPI=void 0;let d=c(172),e=c(874),f=c(194),g=c(277),h=c(369),i=c(930),j="propagation",k=new e.NoopTextMapPropagator;class l{constructor(){this.createBaggage=h.createBaggage,this.getBaggage=g.getBaggage,this.getActiveBaggage=g.getActiveBaggage,this.setBaggage=g.setBaggage,this.deleteBaggage=g.deleteBaggage}static getInstance(){return this._instance||(this._instance=new l),this._instance}setGlobalPropagator(a){return(0,d.registerGlobal)(j,a,i.DiagAPI.instance())}inject(a,b,c=f.defaultTextMapSetter){return this._getGlobalPropagator().inject(a,b,c)}extract(a,b,c=f.defaultTextMapGetter){return this._getGlobalPropagator().extract(a,b,c)}fields(){return this._getGlobalPropagator().fields()}disable(){(0,d.unregisterGlobal)(j,i.DiagAPI.instance())}_getGlobalPropagator(){return(0,d.getGlobal)(j)||k}}b.PropagationAPI=l},997:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.TraceAPI=void 0;let d=c(172),e=c(846),f=c(139),g=c(607),h=c(930),i="trace";class j{constructor(){this._proxyTracerProvider=new e.ProxyTracerProvider,this.wrapSpanContext=f.wrapSpanContext,this.isSpanContextValid=f.isSpanContextValid,this.deleteSpan=g.deleteSpan,this.getSpan=g.getSpan,this.getActiveSpan=g.getActiveSpan,this.getSpanContext=g.getSpanContext,this.setSpan=g.setSpan,this.setSpanContext=g.setSpanContext}static getInstance(){return this._instance||(this._instance=new j),this._instance}setGlobalTracerProvider(a){let b=(0,d.registerGlobal)(i,this._proxyTracerProvider,h.DiagAPI.instance());return b&&this._proxyTracerProvider.setDelegate(a),b}getTracerProvider(){return(0,d.getGlobal)(i)||this._proxyTracerProvider}getTracer(a,b){return this.getTracerProvider().getTracer(a,b)}disable(){(0,d.unregisterGlobal)(i,h.DiagAPI.instance()),this._proxyTracerProvider=new e.ProxyTracerProvider}}b.TraceAPI=j},277:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.deleteBaggage=b.setBaggage=b.getActiveBaggage=b.getBaggage=void 0;let d=c(491),e=(0,c(780).createContextKey)("OpenTelemetry Baggage Key");function f(a){return a.getValue(e)||void 0}b.getBaggage=f,b.getActiveBaggage=function(){return f(d.ContextAPI.getInstance().active())},b.setBaggage=function(a,b){return a.setValue(e,b)},b.deleteBaggage=function(a){return a.deleteValue(e)}},993:(a,b)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.BaggageImpl=void 0;class c{constructor(a){this._entries=a?new Map(a):new Map}getEntry(a){let b=this._entries.get(a);if(b)return Object.assign({},b)}getAllEntries(){return Array.from(this._entries.entries()).map(([a,b])=>[a,b])}setEntry(a,b){let d=new c(this._entries);return d._entries.set(a,b),d}removeEntry(a){let b=new c(this._entries);return b._entries.delete(a),b}removeEntries(...a){let b=new c(this._entries);for(let c of a)b._entries.delete(c);return b}clear(){return new c}}b.BaggageImpl=c},830:(a,b)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.baggageEntryMetadataSymbol=void 0,b.baggageEntryMetadataSymbol=Symbol("BaggageEntryMetadata")},369:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.baggageEntryMetadataFromString=b.createBaggage=void 0;let d=c(930),e=c(993),f=c(830),g=d.DiagAPI.instance();b.createBaggage=function(a={}){return new e.BaggageImpl(new Map(Object.entries(a)))},b.baggageEntryMetadataFromString=function(a){return"string"!=typeof a&&(g.error(`Cannot create baggage metadata from unknown type: ${typeof a}`),a=""),{__TYPE__:f.baggageEntryMetadataSymbol,toString:()=>a}}},67:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.context=void 0,b.context=c(491).ContextAPI.getInstance()},223:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.NoopContextManager=void 0;let d=c(780);class e{active(){return d.ROOT_CONTEXT}with(a,b,c,...d){return b.call(c,...d)}bind(a,b){return b}enable(){return this}disable(){return this}}b.NoopContextManager=e},780:(a,b)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.ROOT_CONTEXT=b.createContextKey=void 0,b.createContextKey=function(a){return Symbol.for(a)};class c{constructor(a){let b=this;b._currentContext=a?new Map(a):new Map,b.getValue=a=>b._currentContext.get(a),b.setValue=(a,d)=>{let e=new c(b._currentContext);return e._currentContext.set(a,d),e},b.deleteValue=a=>{let d=new c(b._currentContext);return d._currentContext.delete(a),d}}}b.ROOT_CONTEXT=new c},506:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.diag=void 0,b.diag=c(930).DiagAPI.instance()},56:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.DiagComponentLogger=void 0;let d=c(172);class e{constructor(a){this._namespace=a.namespace||"DiagComponentLogger"}debug(...a){return f("debug",this._namespace,a)}error(...a){return f("error",this._namespace,a)}info(...a){return f("info",this._namespace,a)}warn(...a){return f("warn",this._namespace,a)}verbose(...a){return f("verbose",this._namespace,a)}}function f(a,b,c){let e=(0,d.getGlobal)("diag");if(e)return c.unshift(b),e[a](...c)}b.DiagComponentLogger=e},972:(a,b)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.DiagConsoleLogger=void 0;let c=[{n:"error",c:"error"},{n:"warn",c:"warn"},{n:"info",c:"info"},{n:"debug",c:"debug"},{n:"verbose",c:"trace"}];class d{constructor(){for(let a=0;a{Object.defineProperty(b,"__esModule",{value:!0}),b.createLogLevelDiagLogger=void 0;let d=c(957);b.createLogLevelDiagLogger=function(a,b){function c(c,d){let e=b[c];return"function"==typeof e&&a>=d?e.bind(b):function(){}}return ad.DiagLogLevel.ALL&&(a=d.DiagLogLevel.ALL),b=b||{},{error:c("error",d.DiagLogLevel.ERROR),warn:c("warn",d.DiagLogLevel.WARN),info:c("info",d.DiagLogLevel.INFO),debug:c("debug",d.DiagLogLevel.DEBUG),verbose:c("verbose",d.DiagLogLevel.VERBOSE)}}},957:(a,b)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.DiagLogLevel=void 0,function(a){a[a.NONE=0]="NONE",a[a.ERROR=30]="ERROR",a[a.WARN=50]="WARN",a[a.INFO=60]="INFO",a[a.DEBUG=70]="DEBUG",a[a.VERBOSE=80]="VERBOSE",a[a.ALL=9999]="ALL"}(b.DiagLogLevel||(b.DiagLogLevel={}))},172:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.unregisterGlobal=b.getGlobal=b.registerGlobal=void 0;let d=c(200),e=c(521),f=c(130),g=e.VERSION.split(".")[0],h=Symbol.for(`opentelemetry.js.api.${g}`),i=d._globalThis;b.registerGlobal=function(a,b,c,d=!1){var f;let g=i[h]=null!=(f=i[h])?f:{version:e.VERSION};if(!d&&g[a]){let b=Error(`@opentelemetry/api: Attempted duplicate registration of API: ${a}`);return c.error(b.stack||b.message),!1}if(g.version!==e.VERSION){let b=Error(`@opentelemetry/api: Registration of version v${g.version} for ${a} does not match previously registered API v${e.VERSION}`);return c.error(b.stack||b.message),!1}return g[a]=b,c.debug(`@opentelemetry/api: Registered a global for ${a} v${e.VERSION}.`),!0},b.getGlobal=function(a){var b,c;let d=null==(b=i[h])?void 0:b.version;if(d&&(0,f.isCompatible)(d))return null==(c=i[h])?void 0:c[a]},b.unregisterGlobal=function(a,b){b.debug(`@opentelemetry/api: Unregistering a global for ${a} v${e.VERSION}.`);let c=i[h];c&&delete c[a]}},130:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.isCompatible=b._makeCompatibilityCheck=void 0;let d=c(521),e=/^(\d+)\.(\d+)\.(\d+)(-(.+))?$/;function f(a){let b=new Set([a]),c=new Set,d=a.match(e);if(!d)return()=>!1;let f={major:+d[1],minor:+d[2],patch:+d[3],prerelease:d[4]};if(null!=f.prerelease)return function(b){return b===a};function g(a){return c.add(a),!1}return function(a){if(b.has(a))return!0;if(c.has(a))return!1;let d=a.match(e);if(!d)return g(a);let h={major:+d[1],minor:+d[2],patch:+d[3],prerelease:d[4]};if(null!=h.prerelease||f.major!==h.major)return g(a);if(0===f.major)return f.minor===h.minor&&f.patch<=h.patch?(b.add(a),!0):g(a);return f.minor<=h.minor?(b.add(a),!0):g(a)}}b._makeCompatibilityCheck=f,b.isCompatible=f(d.VERSION)},886:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.metrics=void 0,b.metrics=c(653).MetricsAPI.getInstance()},901:(a,b)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.ValueType=void 0,function(a){a[a.INT=0]="INT",a[a.DOUBLE=1]="DOUBLE"}(b.ValueType||(b.ValueType={}))},102:(a,b)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.createNoopMeter=b.NOOP_OBSERVABLE_UP_DOWN_COUNTER_METRIC=b.NOOP_OBSERVABLE_GAUGE_METRIC=b.NOOP_OBSERVABLE_COUNTER_METRIC=b.NOOP_UP_DOWN_COUNTER_METRIC=b.NOOP_HISTOGRAM_METRIC=b.NOOP_COUNTER_METRIC=b.NOOP_METER=b.NoopObservableUpDownCounterMetric=b.NoopObservableGaugeMetric=b.NoopObservableCounterMetric=b.NoopObservableMetric=b.NoopHistogramMetric=b.NoopUpDownCounterMetric=b.NoopCounterMetric=b.NoopMetric=b.NoopMeter=void 0;class c{constructor(){}createHistogram(a,c){return b.NOOP_HISTOGRAM_METRIC}createCounter(a,c){return b.NOOP_COUNTER_METRIC}createUpDownCounter(a,c){return b.NOOP_UP_DOWN_COUNTER_METRIC}createObservableGauge(a,c){return b.NOOP_OBSERVABLE_GAUGE_METRIC}createObservableCounter(a,c){return b.NOOP_OBSERVABLE_COUNTER_METRIC}createObservableUpDownCounter(a,c){return b.NOOP_OBSERVABLE_UP_DOWN_COUNTER_METRIC}addBatchObservableCallback(a,b){}removeBatchObservableCallback(a){}}b.NoopMeter=c;class d{}b.NoopMetric=d;class e extends d{add(a,b){}}b.NoopCounterMetric=e;class f extends d{add(a,b){}}b.NoopUpDownCounterMetric=f;class g extends d{record(a,b){}}b.NoopHistogramMetric=g;class h{addCallback(a){}removeCallback(a){}}b.NoopObservableMetric=h;class i extends h{}b.NoopObservableCounterMetric=i;class j extends h{}b.NoopObservableGaugeMetric=j;class k extends h{}b.NoopObservableUpDownCounterMetric=k,b.NOOP_METER=new c,b.NOOP_COUNTER_METRIC=new e,b.NOOP_HISTOGRAM_METRIC=new g,b.NOOP_UP_DOWN_COUNTER_METRIC=new f,b.NOOP_OBSERVABLE_COUNTER_METRIC=new i,b.NOOP_OBSERVABLE_GAUGE_METRIC=new j,b.NOOP_OBSERVABLE_UP_DOWN_COUNTER_METRIC=new k,b.createNoopMeter=function(){return b.NOOP_METER}},660:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.NOOP_METER_PROVIDER=b.NoopMeterProvider=void 0;let d=c(102);class e{getMeter(a,b,c){return d.NOOP_METER}}b.NoopMeterProvider=e,b.NOOP_METER_PROVIDER=new e},200:function(a,b,c){var d=this&&this.__createBinding||(Object.create?function(a,b,c,d){void 0===d&&(d=c),Object.defineProperty(a,d,{enumerable:!0,get:function(){return b[c]}})}:function(a,b,c,d){void 0===d&&(d=c),a[d]=b[c]}),e=this&&this.__exportStar||function(a,b){for(var c in a)"default"===c||Object.prototype.hasOwnProperty.call(b,c)||d(b,a,c)};Object.defineProperty(b,"__esModule",{value:!0}),e(c(46),b)},651:(a,b)=>{Object.defineProperty(b,"__esModule",{value:!0}),b._globalThis=void 0,b._globalThis="object"==typeof globalThis?globalThis:global},46:function(a,b,c){var d=this&&this.__createBinding||(Object.create?function(a,b,c,d){void 0===d&&(d=c),Object.defineProperty(a,d,{enumerable:!0,get:function(){return b[c]}})}:function(a,b,c,d){void 0===d&&(d=c),a[d]=b[c]}),e=this&&this.__exportStar||function(a,b){for(var c in a)"default"===c||Object.prototype.hasOwnProperty.call(b,c)||d(b,a,c)};Object.defineProperty(b,"__esModule",{value:!0}),e(c(651),b)},939:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.propagation=void 0,b.propagation=c(181).PropagationAPI.getInstance()},874:(a,b)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.NoopTextMapPropagator=void 0;class c{inject(a,b){}extract(a,b){return a}fields(){return[]}}b.NoopTextMapPropagator=c},194:(a,b)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.defaultTextMapSetter=b.defaultTextMapGetter=void 0,b.defaultTextMapGetter={get(a,b){if(null!=a)return a[b]},keys:a=>null==a?[]:Object.keys(a)},b.defaultTextMapSetter={set(a,b,c){null!=a&&(a[b]=c)}}},845:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.trace=void 0,b.trace=c(997).TraceAPI.getInstance()},403:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.NonRecordingSpan=void 0;let d=c(476);class e{constructor(a=d.INVALID_SPAN_CONTEXT){this._spanContext=a}spanContext(){return this._spanContext}setAttribute(a,b){return this}setAttributes(a){return this}addEvent(a,b){return this}setStatus(a){return this}updateName(a){return this}end(a){}isRecording(){return!1}recordException(a,b){}}b.NonRecordingSpan=e},614:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.NoopTracer=void 0;let d=c(491),e=c(607),f=c(403),g=c(139),h=d.ContextAPI.getInstance();class i{startSpan(a,b,c=h.active()){var d;if(null==b?void 0:b.root)return new f.NonRecordingSpan;let i=c&&(0,e.getSpanContext)(c);return"object"==typeof(d=i)&&"string"==typeof d.spanId&&"string"==typeof d.traceId&&"number"==typeof d.traceFlags&&(0,g.isSpanContextValid)(i)?new f.NonRecordingSpan(i):new f.NonRecordingSpan}startActiveSpan(a,b,c,d){let f,g,i;if(arguments.length<2)return;2==arguments.length?i=b:3==arguments.length?(f=b,i=c):(f=b,g=c,i=d);let j=null!=g?g:h.active(),k=this.startSpan(a,f,j),l=(0,e.setSpan)(j,k);return h.with(l,i,void 0,k)}}b.NoopTracer=i},124:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.NoopTracerProvider=void 0;let d=c(614);class e{getTracer(a,b,c){return new d.NoopTracer}}b.NoopTracerProvider=e},125:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.ProxyTracer=void 0;let d=new(c(614)).NoopTracer;class e{constructor(a,b,c,d){this._provider=a,this.name=b,this.version=c,this.options=d}startSpan(a,b,c){return this._getTracer().startSpan(a,b,c)}startActiveSpan(a,b,c,d){let e=this._getTracer();return Reflect.apply(e.startActiveSpan,e,arguments)}_getTracer(){if(this._delegate)return this._delegate;let a=this._provider.getDelegateTracer(this.name,this.version,this.options);return a?(this._delegate=a,this._delegate):d}}b.ProxyTracer=e},846:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.ProxyTracerProvider=void 0;let d=c(125),e=new(c(124)).NoopTracerProvider;class f{getTracer(a,b,c){var e;return null!=(e=this.getDelegateTracer(a,b,c))?e:new d.ProxyTracer(this,a,b,c)}getDelegate(){var a;return null!=(a=this._delegate)?a:e}setDelegate(a){this._delegate=a}getDelegateTracer(a,b,c){var d;return null==(d=this._delegate)?void 0:d.getTracer(a,b,c)}}b.ProxyTracerProvider=f},996:(a,b)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.SamplingDecision=void 0,function(a){a[a.NOT_RECORD=0]="NOT_RECORD",a[a.RECORD=1]="RECORD",a[a.RECORD_AND_SAMPLED=2]="RECORD_AND_SAMPLED"}(b.SamplingDecision||(b.SamplingDecision={}))},607:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.getSpanContext=b.setSpanContext=b.deleteSpan=b.setSpan=b.getActiveSpan=b.getSpan=void 0;let d=c(780),e=c(403),f=c(491),g=(0,d.createContextKey)("OpenTelemetry Context Key SPAN");function h(a){return a.getValue(g)||void 0}function i(a,b){return a.setValue(g,b)}b.getSpan=h,b.getActiveSpan=function(){return h(f.ContextAPI.getInstance().active())},b.setSpan=i,b.deleteSpan=function(a){return a.deleteValue(g)},b.setSpanContext=function(a,b){return i(a,new e.NonRecordingSpan(b))},b.getSpanContext=function(a){var b;return null==(b=h(a))?void 0:b.spanContext()}},325:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.TraceStateImpl=void 0;let d=c(564);class e{constructor(a){this._internalState=new Map,a&&this._parse(a)}set(a,b){let c=this._clone();return c._internalState.has(a)&&c._internalState.delete(a),c._internalState.set(a,b),c}unset(a){let b=this._clone();return b._internalState.delete(a),b}get(a){return this._internalState.get(a)}serialize(){return this._keys().reduce((a,b)=>(a.push(b+"="+this.get(b)),a),[]).join(",")}_parse(a){!(a.length>512)&&(this._internalState=a.split(",").reverse().reduce((a,b)=>{let c=b.trim(),e=c.indexOf("=");if(-1!==e){let f=c.slice(0,e),g=c.slice(e+1,b.length);(0,d.validateKey)(f)&&(0,d.validateValue)(g)&&a.set(f,g)}return a},new Map),this._internalState.size>32&&(this._internalState=new Map(Array.from(this._internalState.entries()).reverse().slice(0,32))))}_keys(){return Array.from(this._internalState.keys()).reverse()}_clone(){let a=new e;return a._internalState=new Map(this._internalState),a}}b.TraceStateImpl=e},564:(a,b)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.validateValue=b.validateKey=void 0;let c="[_0-9a-z-*/]",d=`[a-z]${c}{0,255}`,e=`[a-z0-9]${c}{0,240}@[a-z]${c}{0,13}`,f=RegExp(`^(?:${d}|${e})$`),g=/^[ -~]{0,255}[!-~]$/,h=/,|=/;b.validateKey=function(a){return f.test(a)},b.validateValue=function(a){return g.test(a)&&!h.test(a)}},98:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.createTraceState=void 0;let d=c(325);b.createTraceState=function(a){return new d.TraceStateImpl(a)}},476:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.INVALID_SPAN_CONTEXT=b.INVALID_TRACEID=b.INVALID_SPANID=void 0;let d=c(475);b.INVALID_SPANID="0000000000000000",b.INVALID_TRACEID="00000000000000000000000000000000",b.INVALID_SPAN_CONTEXT={traceId:b.INVALID_TRACEID,spanId:b.INVALID_SPANID,traceFlags:d.TraceFlags.NONE}},357:(a,b)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.SpanKind=void 0,function(a){a[a.INTERNAL=0]="INTERNAL",a[a.SERVER=1]="SERVER",a[a.CLIENT=2]="CLIENT",a[a.PRODUCER=3]="PRODUCER",a[a.CONSUMER=4]="CONSUMER"}(b.SpanKind||(b.SpanKind={}))},139:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.wrapSpanContext=b.isSpanContextValid=b.isValidSpanId=b.isValidTraceId=void 0;let d=c(476),e=c(403),f=/^([0-9a-f]{32})$/i,g=/^[0-9a-f]{16}$/i;function h(a){return f.test(a)&&a!==d.INVALID_TRACEID}function i(a){return g.test(a)&&a!==d.INVALID_SPANID}b.isValidTraceId=h,b.isValidSpanId=i,b.isSpanContextValid=function(a){return h(a.traceId)&&i(a.spanId)},b.wrapSpanContext=function(a){return new e.NonRecordingSpan(a)}},847:(a,b)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.SpanStatusCode=void 0,function(a){a[a.UNSET=0]="UNSET",a[a.OK=1]="OK",a[a.ERROR=2]="ERROR"}(b.SpanStatusCode||(b.SpanStatusCode={}))},475:(a,b)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.TraceFlags=void 0,function(a){a[a.NONE=0]="NONE",a[a.SAMPLED=1]="SAMPLED"}(b.TraceFlags||(b.TraceFlags={}))},521:(a,b)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.VERSION=void 0,b.VERSION="1.6.0"}},c={};function d(a){var e=c[a];if(void 0!==e)return e.exports;var f=c[a]={exports:{}},g=!0;try{b[a].call(f.exports,f,f.exports,d),g=!1}finally{g&&delete c[a]}return f.exports}d.ab=__dirname+"/";var e={};(()=>{Object.defineProperty(e,"__esModule",{value:!0}),e.trace=e.propagation=e.metrics=e.diag=e.context=e.INVALID_SPAN_CONTEXT=e.INVALID_TRACEID=e.INVALID_SPANID=e.isValidSpanId=e.isValidTraceId=e.isSpanContextValid=e.createTraceState=e.TraceFlags=e.SpanStatusCode=e.SpanKind=e.SamplingDecision=e.ProxyTracerProvider=e.ProxyTracer=e.defaultTextMapSetter=e.defaultTextMapGetter=e.ValueType=e.createNoopMeter=e.DiagLogLevel=e.DiagConsoleLogger=e.ROOT_CONTEXT=e.createContextKey=e.baggageEntryMetadataFromString=void 0;var a=d(369);Object.defineProperty(e,"baggageEntryMetadataFromString",{enumerable:!0,get:function(){return a.baggageEntryMetadataFromString}});var b=d(780);Object.defineProperty(e,"createContextKey",{enumerable:!0,get:function(){return b.createContextKey}}),Object.defineProperty(e,"ROOT_CONTEXT",{enumerable:!0,get:function(){return b.ROOT_CONTEXT}});var c=d(972);Object.defineProperty(e,"DiagConsoleLogger",{enumerable:!0,get:function(){return c.DiagConsoleLogger}});var f=d(957);Object.defineProperty(e,"DiagLogLevel",{enumerable:!0,get:function(){return f.DiagLogLevel}});var g=d(102);Object.defineProperty(e,"createNoopMeter",{enumerable:!0,get:function(){return g.createNoopMeter}});var h=d(901);Object.defineProperty(e,"ValueType",{enumerable:!0,get:function(){return h.ValueType}});var i=d(194);Object.defineProperty(e,"defaultTextMapGetter",{enumerable:!0,get:function(){return i.defaultTextMapGetter}}),Object.defineProperty(e,"defaultTextMapSetter",{enumerable:!0,get:function(){return i.defaultTextMapSetter}});var j=d(125);Object.defineProperty(e,"ProxyTracer",{enumerable:!0,get:function(){return j.ProxyTracer}});var k=d(846);Object.defineProperty(e,"ProxyTracerProvider",{enumerable:!0,get:function(){return k.ProxyTracerProvider}});var l=d(996);Object.defineProperty(e,"SamplingDecision",{enumerable:!0,get:function(){return l.SamplingDecision}});var m=d(357);Object.defineProperty(e,"SpanKind",{enumerable:!0,get:function(){return m.SpanKind}});var n=d(847);Object.defineProperty(e,"SpanStatusCode",{enumerable:!0,get:function(){return n.SpanStatusCode}});var o=d(475);Object.defineProperty(e,"TraceFlags",{enumerable:!0,get:function(){return o.TraceFlags}});var p=d(98);Object.defineProperty(e,"createTraceState",{enumerable:!0,get:function(){return p.createTraceState}});var q=d(139);Object.defineProperty(e,"isSpanContextValid",{enumerable:!0,get:function(){return q.isSpanContextValid}}),Object.defineProperty(e,"isValidTraceId",{enumerable:!0,get:function(){return q.isValidTraceId}}),Object.defineProperty(e,"isValidSpanId",{enumerable:!0,get:function(){return q.isValidSpanId}});var r=d(476);Object.defineProperty(e,"INVALID_SPANID",{enumerable:!0,get:function(){return r.INVALID_SPANID}}),Object.defineProperty(e,"INVALID_TRACEID",{enumerable:!0,get:function(){return r.INVALID_TRACEID}}),Object.defineProperty(e,"INVALID_SPAN_CONTEXT",{enumerable:!0,get:function(){return r.INVALID_SPAN_CONTEXT}});let s=d(67);Object.defineProperty(e,"context",{enumerable:!0,get:function(){return s.context}});let t=d(506);Object.defineProperty(e,"diag",{enumerable:!0,get:function(){return t.diag}});let u=d(886);Object.defineProperty(e,"metrics",{enumerable:!0,get:function(){return u.metrics}});let v=d(939);Object.defineProperty(e,"propagation",{enumerable:!0,get:function(){return v.propagation}});let w=d(845);Object.defineProperty(e,"trace",{enumerable:!0,get:function(){return w.trace}}),e.default={context:s.context,diag:t.diag,metrics:u.metrics,propagation:v.propagation,trace:w.trace}})(),a.exports=e})()},3459:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),!function(a,b){for(var c in b)Object.defineProperty(a,c,{enumerable:!0,get:b[c]})}(b,{HeadersAdapter:function(){return f},ReadonlyHeadersError:function(){return e}});let d=c(1518);class e extends Error{constructor(){super("Headers cannot be modified. Read more: https://nextjs.org/docs/app/api-reference/functions/headers")}static callable(){throw new e}}class f extends Headers{constructor(a){super(),this.headers=new Proxy(a,{get(b,c,e){if("symbol"==typeof c)return d.ReflectAdapter.get(b,c,e);let f=c.toLowerCase(),g=Object.keys(a).find(a=>a.toLowerCase()===f);if(void 0!==g)return d.ReflectAdapter.get(b,g,e)},set(b,c,e,f){if("symbol"==typeof c)return d.ReflectAdapter.set(b,c,e,f);let g=c.toLowerCase(),h=Object.keys(a).find(a=>a.toLowerCase()===g);return d.ReflectAdapter.set(b,h??c,e,f)},has(b,c){if("symbol"==typeof c)return d.ReflectAdapter.has(b,c);let e=c.toLowerCase(),f=Object.keys(a).find(a=>a.toLowerCase()===e);return void 0!==f&&d.ReflectAdapter.has(b,f)},deleteProperty(b,c){if("symbol"==typeof c)return d.ReflectAdapter.deleteProperty(b,c);let e=c.toLowerCase(),f=Object.keys(a).find(a=>a.toLowerCase()===e);return void 0===f||d.ReflectAdapter.deleteProperty(b,f)}})}static seal(a){return new Proxy(a,{get(a,b,c){switch(b){case"append":case"delete":case"set":return e.callable;default:return d.ReflectAdapter.get(a,b,c)}}})}merge(a){return Array.isArray(a)?a.join(", "):a}static from(a){return a instanceof Headers?a:new f(a)}append(a,b){let c=this.headers[a];"string"==typeof c?this.headers[a]=[c,b]:Array.isArray(c)?c.push(b):this.headers[a]=b}delete(a){delete this.headers[a]}get(a){let b=this.headers[a];return void 0!==b?this.merge(b):null}has(a){return void 0!==this.headers[a]}set(a,b){this.headers[a]=b}forEach(a,b){for(let[c,d]of this.entries())a.call(b,d,c,this)}*entries(){for(let a of Object.keys(this.headers)){let b=a.toLowerCase(),c=this.get(b);yield[b,c]}}*keys(){for(let a of Object.keys(this.headers)){let b=a.toLowerCase();yield b}}*values(){for(let a of Object.keys(this.headers)){let b=this.get(a);yield b}}[Symbol.iterator](){return this.entries()}}},3480:(a,b,c)=>{"use strict";a.exports=c(5600)},5183:(a,b)=>{"use strict";function c(a){return null!==a&&"object"==typeof a&&"then"in a&&"function"==typeof a.then}Object.defineProperty(b,"__esModule",{value:!0}),Object.defineProperty(b,"isThenable",{enumerable:!0,get:function(){return c}})},5600:a=>{"use strict";a.exports=require("next/dist/compiled/next-server/pages-api.runtime.prod.js")},6435:(a,b)=>{"use strict";Object.defineProperty(b,"M",{enumerable:!0,get:function(){return function a(b,c){return c in b?b[c]:"then"in b&&"function"==typeof b.then?b.then(b=>a(b,c)):"function"==typeof b&&"default"===c?b:void 0}}})},8112:(a,b,c)=>{"use strict";let d;Object.defineProperty(b,"__esModule",{value:!0}),!function(a,b){for(var c in b)Object.defineProperty(a,c,{enumerable:!0,get:b[c]})}(b,{BubbledError:function(){return m},SpanKind:function(){return k},SpanStatusCode:function(){return j},getTracer:function(){return u},isBubbledError:function(){return n}});let e=c(8766),f=c(5183);try{d=c(3176)}catch(a){d=c(3176)}let{context:g,propagation:h,trace:i,SpanStatusCode:j,SpanKind:k,ROOT_CONTEXT:l}=d;class m extends Error{constructor(a,b){super(),this.bubble=a,this.result=b}}function n(a){return"object"==typeof a&&null!==a&&a instanceof m}let o=(a,b)=>{n(b)&&b.bubble?a.setAttribute("next.bubble",!0):(b&&a.recordException(b),a.setStatus({code:j.ERROR,message:null==b?void 0:b.message})),a.end()},p=new Map,q=d.createContextKey("next.rootSpanId"),r=0,s={set(a,b,c){a.push({key:b,value:c})}};class t{getTracerInstance(){return i.getTracer("next.js","0.0.1")}getContext(){return g}getTracePropagationData(){let a=g.active(),b=[];return h.inject(a,b,s),b}getActiveScopeSpan(){return i.getSpan(null==g?void 0:g.active())}withPropagatedContext(a,b,c){let d=g.active();if(i.getSpanContext(d))return b();let e=h.extract(d,a,c);return g.with(e,b)}trace(...a){var b;let[c,d,h]=a,{fn:j,options:k}="function"==typeof d?{fn:d,options:{}}:{fn:h,options:{...d}},m=k.spanName??c;if(!e.NextVanillaSpanAllowlist.includes(c)&&"1"!==process.env.NEXT_OTEL_VERBOSE||k.hideSpan)return j();let n=this.getSpanContext((null==k?void 0:k.parentSpan)??this.getActiveScopeSpan()),s=!1;n?(null==(b=i.getSpanContext(n))?void 0:b.isRemote)&&(s=!0):(n=(null==g?void 0:g.active())??l,s=!0);let t=r++;return k.attributes={"next.span_name":m,"next.span_type":c,...k.attributes},g.with(n.setValue(q,t),()=>this.getTracerInstance().startActiveSpan(m,k,a=>{let b="performance"in globalThis&&"measure"in performance?globalThis.performance.now():void 0,d=()=>{p.delete(t),b&&process.env.NEXT_OTEL_PERFORMANCE_PREFIX&&e.LogSpanAllowList.includes(c||"")&&performance.measure(`${process.env.NEXT_OTEL_PERFORMANCE_PREFIX}:next-${(c.split(".").pop()||"").replace(/[A-Z]/g,a=>"-"+a.toLowerCase())}`,{start:b,end:performance.now()})};s&&p.set(t,new Map(Object.entries(k.attributes??{})));try{if(j.length>1)return j(a,b=>o(a,b));let b=j(a);if((0,f.isThenable)(b))return b.then(b=>(a.end(),b)).catch(b=>{throw o(a,b),b}).finally(d);return a.end(),d(),b}catch(b){throw o(a,b),d(),b}}))}wrap(...a){let b=this,[c,d,f]=3===a.length?a:[a[0],{},a[1]];return e.NextVanillaSpanAllowlist.includes(c)||"1"===process.env.NEXT_OTEL_VERBOSE?function(){let a=d;"function"==typeof a&&"function"==typeof f&&(a=a.apply(this,arguments));let e=arguments.length-1,h=arguments[e];if("function"!=typeof h)return b.trace(c,a,()=>f.apply(this,arguments));{let d=b.getContext().bind(g.active(),h);return b.trace(c,a,(a,b)=>(arguments[e]=function(a){return null==b||b(a),d.apply(this,arguments)},f.apply(this,arguments)))}}:f}startSpan(...a){let[b,c]=a,d=this.getSpanContext((null==c?void 0:c.parentSpan)??this.getActiveScopeSpan());return this.getTracerInstance().startSpan(b,c,d)}getSpanContext(a){return a?i.setSpan(g.active(),a):void 0}getRootSpanAttributes(){let a=g.active().getValue(q);return p.get(a)}setRootSpanAttribute(a,b){let c=g.active().getValue(q),d=p.get(c);d&&d.set(a,b)}}let u=(()=>{let a=new t;return()=>a})()},8667:(a,b)=>{"use strict";Object.defineProperty(b,"A",{enumerable:!0,get:function(){return c}});var c=function(a){return a.PAGES="PAGES",a.PAGES_API="PAGES_API",a.APP_PAGE="APP_PAGE",a.APP_ROUTE="APP_ROUTE",a.IMAGE="IMAGE",a}({})},8766:(a,b)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),!function(a,b){for(var c in b)Object.defineProperty(a,c,{enumerable:!0,get:b[c]})}(b,{AppRenderSpan:function(){return i},AppRouteRouteHandlersSpan:function(){return l},BaseServerSpan:function(){return c},LoadComponentsSpan:function(){return d},LogSpanAllowList:function(){return p},MiddlewareSpan:function(){return n},NextNodeServerSpan:function(){return f},NextServerSpan:function(){return e},NextVanillaSpanAllowlist:function(){return o},NodeSpan:function(){return k},RenderSpan:function(){return h},ResolveMetadataSpan:function(){return m},RouterSpan:function(){return j},StartServerSpan:function(){return g}});var c=function(a){return a.handleRequest="BaseServer.handleRequest",a.run="BaseServer.run",a.pipe="BaseServer.pipe",a.getStaticHTML="BaseServer.getStaticHTML",a.render="BaseServer.render",a.renderToResponseWithComponents="BaseServer.renderToResponseWithComponents",a.renderToResponse="BaseServer.renderToResponse",a.renderToHTML="BaseServer.renderToHTML",a.renderError="BaseServer.renderError",a.renderErrorToResponse="BaseServer.renderErrorToResponse",a.renderErrorToHTML="BaseServer.renderErrorToHTML",a.render404="BaseServer.render404",a}(c||{}),d=function(a){return a.loadDefaultErrorComponents="LoadComponents.loadDefaultErrorComponents",a.loadComponents="LoadComponents.loadComponents",a}(d||{}),e=function(a){return a.getRequestHandler="NextServer.getRequestHandler",a.getServer="NextServer.getServer",a.getServerRequestHandler="NextServer.getServerRequestHandler",a.createServer="createServer.createServer",a}(e||{}),f=function(a){return a.compression="NextNodeServer.compression",a.getBuildId="NextNodeServer.getBuildId",a.createComponentTree="NextNodeServer.createComponentTree",a.clientComponentLoading="NextNodeServer.clientComponentLoading",a.getLayoutOrPageModule="NextNodeServer.getLayoutOrPageModule",a.generateStaticRoutes="NextNodeServer.generateStaticRoutes",a.generateFsStaticRoutes="NextNodeServer.generateFsStaticRoutes",a.generatePublicRoutes="NextNodeServer.generatePublicRoutes",a.generateImageRoutes="NextNodeServer.generateImageRoutes.route",a.sendRenderResult="NextNodeServer.sendRenderResult",a.proxyRequest="NextNodeServer.proxyRequest",a.runApi="NextNodeServer.runApi",a.render="NextNodeServer.render",a.renderHTML="NextNodeServer.renderHTML",a.imageOptimizer="NextNodeServer.imageOptimizer",a.getPagePath="NextNodeServer.getPagePath",a.getRoutesManifest="NextNodeServer.getRoutesManifest",a.findPageComponents="NextNodeServer.findPageComponents",a.getFontManifest="NextNodeServer.getFontManifest",a.getServerComponentManifest="NextNodeServer.getServerComponentManifest",a.getRequestHandler="NextNodeServer.getRequestHandler",a.renderToHTML="NextNodeServer.renderToHTML",a.renderError="NextNodeServer.renderError",a.renderErrorToHTML="NextNodeServer.renderErrorToHTML",a.render404="NextNodeServer.render404",a.startResponse="NextNodeServer.startResponse",a.route="route",a.onProxyReq="onProxyReq",a.apiResolver="apiResolver",a.internalFetch="internalFetch",a}(f||{}),g=function(a){return a.startServer="startServer.startServer",a}(g||{}),h=function(a){return a.getServerSideProps="Render.getServerSideProps",a.getStaticProps="Render.getStaticProps",a.renderToString="Render.renderToString",a.renderDocument="Render.renderDocument",a.createBodyResult="Render.createBodyResult",a}(h||{}),i=function(a){return a.renderToString="AppRender.renderToString",a.renderToReadableStream="AppRender.renderToReadableStream",a.getBodyResult="AppRender.getBodyResult",a.fetch="AppRender.fetch",a}(i||{}),j=function(a){return a.executeRoute="Router.executeRoute",a}(j||{}),k=function(a){return a.runHandler="Node.runHandler",a}(k||{}),l=function(a){return a.runHandler="AppRouteRouteHandlers.runHandler",a}(l||{}),m=function(a){return a.generateMetadata="ResolveMetadata.generateMetadata",a.generateViewport="ResolveMetadata.generateViewport",a}(m||{}),n=function(a){return a.execute="Middleware.execute",a}(n||{});let o=["Middleware.execute","BaseServer.handleRequest","Render.getServerSideProps","Render.getStaticProps","AppRender.fetch","AppRender.getBodyResult","Render.renderDocument","Node.runHandler","AppRouteRouteHandlers.runHandler","ResolveMetadata.generateMetadata","ResolveMetadata.generateViewport","NextNodeServer.createComponentTree","NextNodeServer.findPageComponents","NextNodeServer.getLayoutOrPageModule","NextNodeServer.startResponse","NextNodeServer.clientComponentLoading"],p=["NextNodeServer.findPageComponents","NextNodeServer.createComponentTree","NextNodeServer.clientComponentLoading"]},9046:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),!function(a,b){for(var c in b)Object.defineProperty(a,c,{enumerable:!0,get:b[c]})}(b,{ApiError:function(){return r},COOKIE_NAME_PRERENDER_BYPASS:function(){return l},COOKIE_NAME_PRERENDER_DATA:function(){return m},RESPONSE_LIMIT_DEFAULT:function(){return n},SYMBOL_CLEARED_COOKIES:function(){return p},SYMBOL_PREVIEW_DATA:function(){return o},checkIsOnDemandRevalidate:function(){return k},clearPreviewData:function(){return q},redirect:function(){return j},sendError:function(){return s},sendStatusCode:function(){return i},setLazyProp:function(){return t},wrapApiHandler:function(){return h}});let d=c(3459),e=c(1922),f=c(8112),g=c(8766);function h(a,b){return(...c)=>((0,f.getTracer)().setRootSpanAttribute("next.route",a),(0,f.getTracer)().trace(g.NodeSpan.runHandler,{spanName:`executing api route (pages) ${a}`},()=>b(...c)))}function i(a,b){return a.statusCode=b,a}function j(a,b,c){if("string"==typeof b&&(c=b,b=307),"number"!=typeof b||"string"!=typeof c)throw Object.defineProperty(Error("Invalid redirect arguments. Please use a single argument URL, e.g. res.redirect('/destination') or use a status code and URL, e.g. res.redirect(307, '/destination')."),"__NEXT_ERROR_CODE",{value:"E389",enumerable:!1,configurable:!0});return a.writeHead(b,{Location:c}),a.write(c),a.end(),a}function k(a,b){let c=d.HeadersAdapter.from(a.headers);return{isOnDemandRevalidate:c.get(e.PRERENDER_REVALIDATE_HEADER)===b.previewModeId,revalidateOnlyGenerated:c.has(e.PRERENDER_REVALIDATE_ONLY_GENERATED_HEADER)}}let l="__prerender_bypass",m="__next_preview_data",n=4194304,o=Symbol(m),p=Symbol(l);function q(a,b={}){if(p in a)return a;let{serialize:d}=c(1254),e=a.getHeader("Set-Cookie");return a.setHeader("Set-Cookie",[..."string"==typeof e?[e]:Array.isArray(e)?e:[],d(l,"",{expires:new Date(0),httpOnly:!0,sameSite:"none",secure:!0,path:"/",...void 0!==b.path?{path:b.path}:void 0}),d(m,"",{expires:new Date(0),httpOnly:!0,sameSite:"none",secure:!0,path:"/",...void 0!==b.path?{path:b.path}:void 0})]),Object.defineProperty(a,p,{value:!0,enumerable:!1}),a}class r extends Error{constructor(a,b){super(b),this.statusCode=a}}function s(a,b,c){a.statusCode=b,a.statusMessage=c,a.end(c)}function t({req:a},b,c){let d={configurable:!0,enumerable:!0},e={...d,writable:!0};Object.defineProperty(a,b,{...d,get:()=>{let d=c();return Object.defineProperty(a,b,{...e,value:d}),d},set:c=>{Object.defineProperty(a,b,{...e,value:c})}})}}};var b=require("../../../webpack-api-runtime.js");b.C(a);var c=b(b.s=718);module.exports=c})(); \ No newline at end of file +`;b.setHeader("Content-Type","application/xml"),b.write(f),b.end()}l().join(o,"news");var q=c(8112),r=c(8766);let s=(0,h.M)(d,"default"),t=(0,h.M)(d,"config"),u=new g.PagesAPIRouteModule({definition:{kind:f.A.PAGES_API,page:"/api/sitemap/[lang]",pathname:"/api/sitemap/[lang]",bundlePath:"",filename:""},userland:d,distDir:".next",projectDir:""});async function v(a,b,c){let d=await u.prepare(a,b,{srcPage:"/api/sitemap/[lang]"});if(!d){b.statusCode=400,b.end("Bad Request"),null==c.waitUntil||c.waitUntil.call(c,Promise.resolve());return}let{query:f,params:g,prerenderManifest:h}=d;try{let c=a.method||"GET",d=(0,q.getTracer)(),e=d.getActiveScopeSpan(),i=u.instrumentationOnRequestError.bind(u),j=async e=>u.render(a,b,{query:{...f,...g},params:g,allowedRevalidateHeaderKeys:void 0,multiZoneDraftMode:!0,trustHostHeader:void 0,previewProps:h.preview,propagateError:!1,dev:u.isDev,page:"/api/sitemap/[lang]",projectDir:"",onError:(...b)=>i(a,...b)}).finally(()=>{if(!e)return;e.setAttributes({"http.status_code":b.statusCode,"next.rsc":!1});let f=d.getRootSpanAttributes();if(!f)return;if(f.get("next.span_type")!==r.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${f.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let g=f.get("next.route");if(g){let a=`${c} ${g}`;e.setAttributes({"next.route":g,"http.route":g,"next.span_name":a}),e.updateName(a)}else e.updateName(`${c} ${a.url}`)});e?await j(e):await d.withPropagatedContext(a.headers,()=>d.trace(r.BaseServerSpan.handleRequest,{spanName:`${c} ${a.url}`,kind:q.SpanKind.SERVER,attributes:{"http.method":c,"http.target":a.url}},j))}catch(a){if(u.isDev)throw a;(0,e.sendError)(b,500,"Internal Server Error")}finally{null==c.waitUntil||c.waitUntil.call(c,Promise.resolve())}}},1254:a=>{(()=>{"use strict";"undefined"!=typeof __nccwpck_require__&&(__nccwpck_require__.ab=__dirname+"/");var b={};(()=>{b.parse=function(b,c){if("string"!=typeof b)throw TypeError("argument str must be a string");for(var e={},f=b.split(d),g=(c||{}).decode||a,h=0;h{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),Object.defineProperty(b,"ReflectAdapter",{enumerable:!0,get:function(){return c}});class c{static get(a,b,c){let d=Reflect.get(a,b,c);return"function"==typeof d?d.bind(a):d}static set(a,b,c,d){return Reflect.set(a,b,c,d)}static has(a,b){return Reflect.has(a,b)}static deleteProperty(a,b){return Reflect.deleteProperty(a,b)}}},1922:(a,b)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),!function(a,b){for(var c in b)Object.defineProperty(a,c,{enumerable:!0,get:b[c]})}(b,{ACTION_SUFFIX:function(){return l},APP_DIR_ALIAS:function(){return F},CACHE_ONE_YEAR:function(){return x},DOT_NEXT_ALIAS:function(){return D},ESLINT_DEFAULT_DIRS:function(){return Z},GSP_NO_RETURNED_VALUE:function(){return T},GSSP_COMPONENT_MEMBER_ERROR:function(){return W},GSSP_NO_RETURNED_VALUE:function(){return U},INFINITE_CACHE:function(){return y},INSTRUMENTATION_HOOK_FILENAME:function(){return B},MATCHED_PATH_HEADER:function(){return e},MIDDLEWARE_FILENAME:function(){return z},MIDDLEWARE_LOCATION_REGEXP:function(){return A},NEXT_BODY_SUFFIX:function(){return o},NEXT_CACHE_IMPLICIT_TAG_ID:function(){return w},NEXT_CACHE_REVALIDATED_TAGS_HEADER:function(){return q},NEXT_CACHE_REVALIDATE_TAG_TOKEN_HEADER:function(){return r},NEXT_CACHE_SOFT_TAG_MAX_LENGTH:function(){return v},NEXT_CACHE_TAGS_HEADER:function(){return p},NEXT_CACHE_TAG_MAX_ITEMS:function(){return t},NEXT_CACHE_TAG_MAX_LENGTH:function(){return u},NEXT_DATA_SUFFIX:function(){return m},NEXT_INTERCEPTION_MARKER_PREFIX:function(){return d},NEXT_META_SUFFIX:function(){return n},NEXT_QUERY_PARAM_PREFIX:function(){return c},NEXT_RESUME_HEADER:function(){return s},NON_STANDARD_NODE_ENV:function(){return X},PAGES_DIR_ALIAS:function(){return C},PRERENDER_REVALIDATE_HEADER:function(){return f},PRERENDER_REVALIDATE_ONLY_GENERATED_HEADER:function(){return g},PUBLIC_DIR_MIDDLEWARE_CONFLICT:function(){return N},ROOT_DIR_ALIAS:function(){return E},RSC_ACTION_CLIENT_WRAPPER_ALIAS:function(){return M},RSC_ACTION_ENCRYPTION_ALIAS:function(){return L},RSC_ACTION_PROXY_ALIAS:function(){return I},RSC_ACTION_VALIDATE_ALIAS:function(){return H},RSC_CACHE_WRAPPER_ALIAS:function(){return J},RSC_DYNAMIC_IMPORT_WRAPPER_ALIAS:function(){return K},RSC_MOD_REF_PROXY_ALIAS:function(){return G},RSC_PREFETCH_SUFFIX:function(){return h},RSC_SEGMENTS_DIR_SUFFIX:function(){return i},RSC_SEGMENT_SUFFIX:function(){return j},RSC_SUFFIX:function(){return k},SERVER_PROPS_EXPORT_ERROR:function(){return S},SERVER_PROPS_GET_INIT_PROPS_CONFLICT:function(){return P},SERVER_PROPS_SSG_CONFLICT:function(){return Q},SERVER_RUNTIME:function(){return $},SSG_FALLBACK_EXPORT_ERROR:function(){return Y},SSG_GET_INITIAL_PROPS_CONFLICT:function(){return O},STATIC_STATUS_PAGE_GET_INITIAL_PROPS_ERROR:function(){return R},UNSTABLE_REVALIDATE_RENAME_ERROR:function(){return V},WEBPACK_LAYERS:function(){return aa},WEBPACK_RESOURCE_QUERIES:function(){return ab}});let c="nxtP",d="nxtI",e="x-matched-path",f="x-prerender-revalidate",g="x-prerender-revalidate-if-generated",h=".prefetch.rsc",i=".segments",j=".segment.rsc",k=".rsc",l=".action",m=".json",n=".meta",o=".body",p="x-next-cache-tags",q="x-next-revalidated-tags",r="x-next-revalidate-tag-token",s="next-resume",t=128,u=256,v=1024,w="_N_T_",x=31536e3,y=0xfffffffe,z="middleware",A=`(?:src/)?${z}`,B="instrumentation",C="private-next-pages",D="private-dot-next",E="private-next-root-dir",F="private-next-app-dir",G="private-next-rsc-mod-ref-proxy",H="private-next-rsc-action-validate",I="private-next-rsc-server-reference",J="private-next-rsc-cache-wrapper",K="private-next-rsc-track-dynamic-import",L="private-next-rsc-action-encryption",M="private-next-rsc-action-client-wrapper",N="You can not have a '_next' folder inside of your public folder. This conflicts with the internal '/_next' route. https://nextjs.org/docs/messages/public-next-folder-conflict",O="You can not use getInitialProps with getStaticProps. To use SSG, please remove your getInitialProps",P="You can not use getInitialProps with getServerSideProps. Please remove getInitialProps.",Q="You can not use getStaticProps or getStaticPaths with getServerSideProps. To use SSG, please remove getServerSideProps",R="can not have getInitialProps/getServerSideProps, https://nextjs.org/docs/messages/404-get-initial-props",S="pages with `getServerSideProps` can not be exported. See more info here: https://nextjs.org/docs/messages/gssp-export",T="Your `getStaticProps` function did not return an object. Did you forget to add a `return`?",U="Your `getServerSideProps` function did not return an object. Did you forget to add a `return`?",V="The `unstable_revalidate` property is available for general use.\nPlease use `revalidate` instead.",W="can not be attached to a page's component and must be exported from the page. See more info here: https://nextjs.org/docs/messages/gssp-component-member",X='You are using a non-standard "NODE_ENV" value in your environment. This creates inconsistencies in the project and is strongly advised against. Read more: https://nextjs.org/docs/messages/non-standard-node-env',Y="Pages with `fallback` enabled in `getStaticPaths` can not be exported. See more info here: https://nextjs.org/docs/messages/ssg-fallback-true-export",Z=["app","pages","components","lib","src"],$={edge:"edge",experimentalEdge:"experimental-edge",nodejs:"nodejs"},_={shared:"shared",reactServerComponents:"rsc",serverSideRendering:"ssr",actionBrowser:"action-browser",apiNode:"api-node",apiEdge:"api-edge",middleware:"middleware",instrument:"instrument",edgeAsset:"edge-asset",appPagesBrowser:"app-pages-browser",pagesDirBrowser:"pages-dir-browser",pagesDirEdge:"pages-dir-edge",pagesDirNode:"pages-dir-node"},aa={..._,GROUP:{builtinReact:[_.reactServerComponents,_.actionBrowser],serverOnly:[_.reactServerComponents,_.actionBrowser,_.instrument,_.middleware],neutralTarget:[_.apiNode,_.apiEdge],clientOnly:[_.serverSideRendering,_.appPagesBrowser],bundled:[_.reactServerComponents,_.actionBrowser,_.serverSideRendering,_.appPagesBrowser,_.shared,_.instrument,_.middleware],appPages:[_.reactServerComponents,_.serverSideRendering,_.appPagesBrowser,_.actionBrowser]}},ab={edgeSSREntry:"__next_edge_ssr_entry__",metadata:"__next_metadata__",metadataRoute:"__next_metadata_route__",metadataImageMeta:"__next_metadata_image_meta__"}},3176:a=>{(()=>{"use strict";var b={491:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.ContextAPI=void 0;let d=c(223),e=c(172),f=c(930),g="context",h=new d.NoopContextManager;class i{constructor(){}static getInstance(){return this._instance||(this._instance=new i),this._instance}setGlobalContextManager(a){return(0,e.registerGlobal)(g,a,f.DiagAPI.instance())}active(){return this._getContextManager().active()}with(a,b,c,...d){return this._getContextManager().with(a,b,c,...d)}bind(a,b){return this._getContextManager().bind(a,b)}_getContextManager(){return(0,e.getGlobal)(g)||h}disable(){this._getContextManager().disable(),(0,e.unregisterGlobal)(g,f.DiagAPI.instance())}}b.ContextAPI=i},930:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.DiagAPI=void 0;let d=c(56),e=c(912),f=c(957),g=c(172);class h{constructor(){function a(a){return function(...b){let c=(0,g.getGlobal)("diag");if(c)return c[a](...b)}}let b=this;b.setLogger=(a,c={logLevel:f.DiagLogLevel.INFO})=>{var d,h,i;if(a===b){let a=Error("Cannot use diag as the logger for itself. Please use a DiagLogger implementation like ConsoleDiagLogger or a custom implementation");return b.error(null!=(d=a.stack)?d:a.message),!1}"number"==typeof c&&(c={logLevel:c});let j=(0,g.getGlobal)("diag"),k=(0,e.createLogLevelDiagLogger)(null!=(h=c.logLevel)?h:f.DiagLogLevel.INFO,a);if(j&&!c.suppressOverrideMessage){let a=null!=(i=Error().stack)?i:"";j.warn(`Current logger will be overwritten from ${a}`),k.warn(`Current logger will overwrite one already registered from ${a}`)}return(0,g.registerGlobal)("diag",k,b,!0)},b.disable=()=>{(0,g.unregisterGlobal)("diag",b)},b.createComponentLogger=a=>new d.DiagComponentLogger(a),b.verbose=a("verbose"),b.debug=a("debug"),b.info=a("info"),b.warn=a("warn"),b.error=a("error")}static instance(){return this._instance||(this._instance=new h),this._instance}}b.DiagAPI=h},653:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.MetricsAPI=void 0;let d=c(660),e=c(172),f=c(930),g="metrics";class h{constructor(){}static getInstance(){return this._instance||(this._instance=new h),this._instance}setGlobalMeterProvider(a){return(0,e.registerGlobal)(g,a,f.DiagAPI.instance())}getMeterProvider(){return(0,e.getGlobal)(g)||d.NOOP_METER_PROVIDER}getMeter(a,b,c){return this.getMeterProvider().getMeter(a,b,c)}disable(){(0,e.unregisterGlobal)(g,f.DiagAPI.instance())}}b.MetricsAPI=h},181:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.PropagationAPI=void 0;let d=c(172),e=c(874),f=c(194),g=c(277),h=c(369),i=c(930),j="propagation",k=new e.NoopTextMapPropagator;class l{constructor(){this.createBaggage=h.createBaggage,this.getBaggage=g.getBaggage,this.getActiveBaggage=g.getActiveBaggage,this.setBaggage=g.setBaggage,this.deleteBaggage=g.deleteBaggage}static getInstance(){return this._instance||(this._instance=new l),this._instance}setGlobalPropagator(a){return(0,d.registerGlobal)(j,a,i.DiagAPI.instance())}inject(a,b,c=f.defaultTextMapSetter){return this._getGlobalPropagator().inject(a,b,c)}extract(a,b,c=f.defaultTextMapGetter){return this._getGlobalPropagator().extract(a,b,c)}fields(){return this._getGlobalPropagator().fields()}disable(){(0,d.unregisterGlobal)(j,i.DiagAPI.instance())}_getGlobalPropagator(){return(0,d.getGlobal)(j)||k}}b.PropagationAPI=l},997:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.TraceAPI=void 0;let d=c(172),e=c(846),f=c(139),g=c(607),h=c(930),i="trace";class j{constructor(){this._proxyTracerProvider=new e.ProxyTracerProvider,this.wrapSpanContext=f.wrapSpanContext,this.isSpanContextValid=f.isSpanContextValid,this.deleteSpan=g.deleteSpan,this.getSpan=g.getSpan,this.getActiveSpan=g.getActiveSpan,this.getSpanContext=g.getSpanContext,this.setSpan=g.setSpan,this.setSpanContext=g.setSpanContext}static getInstance(){return this._instance||(this._instance=new j),this._instance}setGlobalTracerProvider(a){let b=(0,d.registerGlobal)(i,this._proxyTracerProvider,h.DiagAPI.instance());return b&&this._proxyTracerProvider.setDelegate(a),b}getTracerProvider(){return(0,d.getGlobal)(i)||this._proxyTracerProvider}getTracer(a,b){return this.getTracerProvider().getTracer(a,b)}disable(){(0,d.unregisterGlobal)(i,h.DiagAPI.instance()),this._proxyTracerProvider=new e.ProxyTracerProvider}}b.TraceAPI=j},277:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.deleteBaggage=b.setBaggage=b.getActiveBaggage=b.getBaggage=void 0;let d=c(491),e=(0,c(780).createContextKey)("OpenTelemetry Baggage Key");function f(a){return a.getValue(e)||void 0}b.getBaggage=f,b.getActiveBaggage=function(){return f(d.ContextAPI.getInstance().active())},b.setBaggage=function(a,b){return a.setValue(e,b)},b.deleteBaggage=function(a){return a.deleteValue(e)}},993:(a,b)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.BaggageImpl=void 0;class c{constructor(a){this._entries=a?new Map(a):new Map}getEntry(a){let b=this._entries.get(a);if(b)return Object.assign({},b)}getAllEntries(){return Array.from(this._entries.entries()).map(([a,b])=>[a,b])}setEntry(a,b){let d=new c(this._entries);return d._entries.set(a,b),d}removeEntry(a){let b=new c(this._entries);return b._entries.delete(a),b}removeEntries(...a){let b=new c(this._entries);for(let c of a)b._entries.delete(c);return b}clear(){return new c}}b.BaggageImpl=c},830:(a,b)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.baggageEntryMetadataSymbol=void 0,b.baggageEntryMetadataSymbol=Symbol("BaggageEntryMetadata")},369:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.baggageEntryMetadataFromString=b.createBaggage=void 0;let d=c(930),e=c(993),f=c(830),g=d.DiagAPI.instance();b.createBaggage=function(a={}){return new e.BaggageImpl(new Map(Object.entries(a)))},b.baggageEntryMetadataFromString=function(a){return"string"!=typeof a&&(g.error(`Cannot create baggage metadata from unknown type: ${typeof a}`),a=""),{__TYPE__:f.baggageEntryMetadataSymbol,toString:()=>a}}},67:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.context=void 0,b.context=c(491).ContextAPI.getInstance()},223:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.NoopContextManager=void 0;let d=c(780);class e{active(){return d.ROOT_CONTEXT}with(a,b,c,...d){return b.call(c,...d)}bind(a,b){return b}enable(){return this}disable(){return this}}b.NoopContextManager=e},780:(a,b)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.ROOT_CONTEXT=b.createContextKey=void 0,b.createContextKey=function(a){return Symbol.for(a)};class c{constructor(a){let b=this;b._currentContext=a?new Map(a):new Map,b.getValue=a=>b._currentContext.get(a),b.setValue=(a,d)=>{let e=new c(b._currentContext);return e._currentContext.set(a,d),e},b.deleteValue=a=>{let d=new c(b._currentContext);return d._currentContext.delete(a),d}}}b.ROOT_CONTEXT=new c},506:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.diag=void 0,b.diag=c(930).DiagAPI.instance()},56:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.DiagComponentLogger=void 0;let d=c(172);class e{constructor(a){this._namespace=a.namespace||"DiagComponentLogger"}debug(...a){return f("debug",this._namespace,a)}error(...a){return f("error",this._namespace,a)}info(...a){return f("info",this._namespace,a)}warn(...a){return f("warn",this._namespace,a)}verbose(...a){return f("verbose",this._namespace,a)}}function f(a,b,c){let e=(0,d.getGlobal)("diag");if(e)return c.unshift(b),e[a](...c)}b.DiagComponentLogger=e},972:(a,b)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.DiagConsoleLogger=void 0;let c=[{n:"error",c:"error"},{n:"warn",c:"warn"},{n:"info",c:"info"},{n:"debug",c:"debug"},{n:"verbose",c:"trace"}];class d{constructor(){for(let a=0;a{Object.defineProperty(b,"__esModule",{value:!0}),b.createLogLevelDiagLogger=void 0;let d=c(957);b.createLogLevelDiagLogger=function(a,b){function c(c,d){let e=b[c];return"function"==typeof e&&a>=d?e.bind(b):function(){}}return ad.DiagLogLevel.ALL&&(a=d.DiagLogLevel.ALL),b=b||{},{error:c("error",d.DiagLogLevel.ERROR),warn:c("warn",d.DiagLogLevel.WARN),info:c("info",d.DiagLogLevel.INFO),debug:c("debug",d.DiagLogLevel.DEBUG),verbose:c("verbose",d.DiagLogLevel.VERBOSE)}}},957:(a,b)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.DiagLogLevel=void 0,function(a){a[a.NONE=0]="NONE",a[a.ERROR=30]="ERROR",a[a.WARN=50]="WARN",a[a.INFO=60]="INFO",a[a.DEBUG=70]="DEBUG",a[a.VERBOSE=80]="VERBOSE",a[a.ALL=9999]="ALL"}(b.DiagLogLevel||(b.DiagLogLevel={}))},172:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.unregisterGlobal=b.getGlobal=b.registerGlobal=void 0;let d=c(200),e=c(521),f=c(130),g=e.VERSION.split(".")[0],h=Symbol.for(`opentelemetry.js.api.${g}`),i=d._globalThis;b.registerGlobal=function(a,b,c,d=!1){var f;let g=i[h]=null!=(f=i[h])?f:{version:e.VERSION};if(!d&&g[a]){let b=Error(`@opentelemetry/api: Attempted duplicate registration of API: ${a}`);return c.error(b.stack||b.message),!1}if(g.version!==e.VERSION){let b=Error(`@opentelemetry/api: Registration of version v${g.version} for ${a} does not match previously registered API v${e.VERSION}`);return c.error(b.stack||b.message),!1}return g[a]=b,c.debug(`@opentelemetry/api: Registered a global for ${a} v${e.VERSION}.`),!0},b.getGlobal=function(a){var b,c;let d=null==(b=i[h])?void 0:b.version;if(d&&(0,f.isCompatible)(d))return null==(c=i[h])?void 0:c[a]},b.unregisterGlobal=function(a,b){b.debug(`@opentelemetry/api: Unregistering a global for ${a} v${e.VERSION}.`);let c=i[h];c&&delete c[a]}},130:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.isCompatible=b._makeCompatibilityCheck=void 0;let d=c(521),e=/^(\d+)\.(\d+)\.(\d+)(-(.+))?$/;function f(a){let b=new Set([a]),c=new Set,d=a.match(e);if(!d)return()=>!1;let f={major:+d[1],minor:+d[2],patch:+d[3],prerelease:d[4]};if(null!=f.prerelease)return function(b){return b===a};function g(a){return c.add(a),!1}return function(a){if(b.has(a))return!0;if(c.has(a))return!1;let d=a.match(e);if(!d)return g(a);let h={major:+d[1],minor:+d[2],patch:+d[3],prerelease:d[4]};if(null!=h.prerelease||f.major!==h.major)return g(a);if(0===f.major)return f.minor===h.minor&&f.patch<=h.patch?(b.add(a),!0):g(a);return f.minor<=h.minor?(b.add(a),!0):g(a)}}b._makeCompatibilityCheck=f,b.isCompatible=f(d.VERSION)},886:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.metrics=void 0,b.metrics=c(653).MetricsAPI.getInstance()},901:(a,b)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.ValueType=void 0,function(a){a[a.INT=0]="INT",a[a.DOUBLE=1]="DOUBLE"}(b.ValueType||(b.ValueType={}))},102:(a,b)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.createNoopMeter=b.NOOP_OBSERVABLE_UP_DOWN_COUNTER_METRIC=b.NOOP_OBSERVABLE_GAUGE_METRIC=b.NOOP_OBSERVABLE_COUNTER_METRIC=b.NOOP_UP_DOWN_COUNTER_METRIC=b.NOOP_HISTOGRAM_METRIC=b.NOOP_COUNTER_METRIC=b.NOOP_METER=b.NoopObservableUpDownCounterMetric=b.NoopObservableGaugeMetric=b.NoopObservableCounterMetric=b.NoopObservableMetric=b.NoopHistogramMetric=b.NoopUpDownCounterMetric=b.NoopCounterMetric=b.NoopMetric=b.NoopMeter=void 0;class c{constructor(){}createHistogram(a,c){return b.NOOP_HISTOGRAM_METRIC}createCounter(a,c){return b.NOOP_COUNTER_METRIC}createUpDownCounter(a,c){return b.NOOP_UP_DOWN_COUNTER_METRIC}createObservableGauge(a,c){return b.NOOP_OBSERVABLE_GAUGE_METRIC}createObservableCounter(a,c){return b.NOOP_OBSERVABLE_COUNTER_METRIC}createObservableUpDownCounter(a,c){return b.NOOP_OBSERVABLE_UP_DOWN_COUNTER_METRIC}addBatchObservableCallback(a,b){}removeBatchObservableCallback(a){}}b.NoopMeter=c;class d{}b.NoopMetric=d;class e extends d{add(a,b){}}b.NoopCounterMetric=e;class f extends d{add(a,b){}}b.NoopUpDownCounterMetric=f;class g extends d{record(a,b){}}b.NoopHistogramMetric=g;class h{addCallback(a){}removeCallback(a){}}b.NoopObservableMetric=h;class i extends h{}b.NoopObservableCounterMetric=i;class j extends h{}b.NoopObservableGaugeMetric=j;class k extends h{}b.NoopObservableUpDownCounterMetric=k,b.NOOP_METER=new c,b.NOOP_COUNTER_METRIC=new e,b.NOOP_HISTOGRAM_METRIC=new g,b.NOOP_UP_DOWN_COUNTER_METRIC=new f,b.NOOP_OBSERVABLE_COUNTER_METRIC=new i,b.NOOP_OBSERVABLE_GAUGE_METRIC=new j,b.NOOP_OBSERVABLE_UP_DOWN_COUNTER_METRIC=new k,b.createNoopMeter=function(){return b.NOOP_METER}},660:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.NOOP_METER_PROVIDER=b.NoopMeterProvider=void 0;let d=c(102);class e{getMeter(a,b,c){return d.NOOP_METER}}b.NoopMeterProvider=e,b.NOOP_METER_PROVIDER=new e},200:function(a,b,c){var d=this&&this.__createBinding||(Object.create?function(a,b,c,d){void 0===d&&(d=c),Object.defineProperty(a,d,{enumerable:!0,get:function(){return b[c]}})}:function(a,b,c,d){void 0===d&&(d=c),a[d]=b[c]}),e=this&&this.__exportStar||function(a,b){for(var c in a)"default"===c||Object.prototype.hasOwnProperty.call(b,c)||d(b,a,c)};Object.defineProperty(b,"__esModule",{value:!0}),e(c(46),b)},651:(a,b)=>{Object.defineProperty(b,"__esModule",{value:!0}),b._globalThis=void 0,b._globalThis="object"==typeof globalThis?globalThis:global},46:function(a,b,c){var d=this&&this.__createBinding||(Object.create?function(a,b,c,d){void 0===d&&(d=c),Object.defineProperty(a,d,{enumerable:!0,get:function(){return b[c]}})}:function(a,b,c,d){void 0===d&&(d=c),a[d]=b[c]}),e=this&&this.__exportStar||function(a,b){for(var c in a)"default"===c||Object.prototype.hasOwnProperty.call(b,c)||d(b,a,c)};Object.defineProperty(b,"__esModule",{value:!0}),e(c(651),b)},939:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.propagation=void 0,b.propagation=c(181).PropagationAPI.getInstance()},874:(a,b)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.NoopTextMapPropagator=void 0;class c{inject(a,b){}extract(a,b){return a}fields(){return[]}}b.NoopTextMapPropagator=c},194:(a,b)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.defaultTextMapSetter=b.defaultTextMapGetter=void 0,b.defaultTextMapGetter={get(a,b){if(null!=a)return a[b]},keys:a=>null==a?[]:Object.keys(a)},b.defaultTextMapSetter={set(a,b,c){null!=a&&(a[b]=c)}}},845:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.trace=void 0,b.trace=c(997).TraceAPI.getInstance()},403:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.NonRecordingSpan=void 0;let d=c(476);class e{constructor(a=d.INVALID_SPAN_CONTEXT){this._spanContext=a}spanContext(){return this._spanContext}setAttribute(a,b){return this}setAttributes(a){return this}addEvent(a,b){return this}setStatus(a){return this}updateName(a){return this}end(a){}isRecording(){return!1}recordException(a,b){}}b.NonRecordingSpan=e},614:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.NoopTracer=void 0;let d=c(491),e=c(607),f=c(403),g=c(139),h=d.ContextAPI.getInstance();class i{startSpan(a,b,c=h.active()){var d;if(null==b?void 0:b.root)return new f.NonRecordingSpan;let i=c&&(0,e.getSpanContext)(c);return"object"==typeof(d=i)&&"string"==typeof d.spanId&&"string"==typeof d.traceId&&"number"==typeof d.traceFlags&&(0,g.isSpanContextValid)(i)?new f.NonRecordingSpan(i):new f.NonRecordingSpan}startActiveSpan(a,b,c,d){let f,g,i;if(arguments.length<2)return;2==arguments.length?i=b:3==arguments.length?(f=b,i=c):(f=b,g=c,i=d);let j=null!=g?g:h.active(),k=this.startSpan(a,f,j),l=(0,e.setSpan)(j,k);return h.with(l,i,void 0,k)}}b.NoopTracer=i},124:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.NoopTracerProvider=void 0;let d=c(614);class e{getTracer(a,b,c){return new d.NoopTracer}}b.NoopTracerProvider=e},125:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.ProxyTracer=void 0;let d=new(c(614)).NoopTracer;class e{constructor(a,b,c,d){this._provider=a,this.name=b,this.version=c,this.options=d}startSpan(a,b,c){return this._getTracer().startSpan(a,b,c)}startActiveSpan(a,b,c,d){let e=this._getTracer();return Reflect.apply(e.startActiveSpan,e,arguments)}_getTracer(){if(this._delegate)return this._delegate;let a=this._provider.getDelegateTracer(this.name,this.version,this.options);return a?(this._delegate=a,this._delegate):d}}b.ProxyTracer=e},846:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.ProxyTracerProvider=void 0;let d=c(125),e=new(c(124)).NoopTracerProvider;class f{getTracer(a,b,c){var e;return null!=(e=this.getDelegateTracer(a,b,c))?e:new d.ProxyTracer(this,a,b,c)}getDelegate(){var a;return null!=(a=this._delegate)?a:e}setDelegate(a){this._delegate=a}getDelegateTracer(a,b,c){var d;return null==(d=this._delegate)?void 0:d.getTracer(a,b,c)}}b.ProxyTracerProvider=f},996:(a,b)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.SamplingDecision=void 0,function(a){a[a.NOT_RECORD=0]="NOT_RECORD",a[a.RECORD=1]="RECORD",a[a.RECORD_AND_SAMPLED=2]="RECORD_AND_SAMPLED"}(b.SamplingDecision||(b.SamplingDecision={}))},607:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.getSpanContext=b.setSpanContext=b.deleteSpan=b.setSpan=b.getActiveSpan=b.getSpan=void 0;let d=c(780),e=c(403),f=c(491),g=(0,d.createContextKey)("OpenTelemetry Context Key SPAN");function h(a){return a.getValue(g)||void 0}function i(a,b){return a.setValue(g,b)}b.getSpan=h,b.getActiveSpan=function(){return h(f.ContextAPI.getInstance().active())},b.setSpan=i,b.deleteSpan=function(a){return a.deleteValue(g)},b.setSpanContext=function(a,b){return i(a,new e.NonRecordingSpan(b))},b.getSpanContext=function(a){var b;return null==(b=h(a))?void 0:b.spanContext()}},325:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.TraceStateImpl=void 0;let d=c(564);class e{constructor(a){this._internalState=new Map,a&&this._parse(a)}set(a,b){let c=this._clone();return c._internalState.has(a)&&c._internalState.delete(a),c._internalState.set(a,b),c}unset(a){let b=this._clone();return b._internalState.delete(a),b}get(a){return this._internalState.get(a)}serialize(){return this._keys().reduce((a,b)=>(a.push(b+"="+this.get(b)),a),[]).join(",")}_parse(a){!(a.length>512)&&(this._internalState=a.split(",").reverse().reduce((a,b)=>{let c=b.trim(),e=c.indexOf("=");if(-1!==e){let f=c.slice(0,e),g=c.slice(e+1,b.length);(0,d.validateKey)(f)&&(0,d.validateValue)(g)&&a.set(f,g)}return a},new Map),this._internalState.size>32&&(this._internalState=new Map(Array.from(this._internalState.entries()).reverse().slice(0,32))))}_keys(){return Array.from(this._internalState.keys()).reverse()}_clone(){let a=new e;return a._internalState=new Map(this._internalState),a}}b.TraceStateImpl=e},564:(a,b)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.validateValue=b.validateKey=void 0;let c="[_0-9a-z-*/]",d=`[a-z]${c}{0,255}`,e=`[a-z0-9]${c}{0,240}@[a-z]${c}{0,13}`,f=RegExp(`^(?:${d}|${e})$`),g=/^[ -~]{0,255}[!-~]$/,h=/,|=/;b.validateKey=function(a){return f.test(a)},b.validateValue=function(a){return g.test(a)&&!h.test(a)}},98:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.createTraceState=void 0;let d=c(325);b.createTraceState=function(a){return new d.TraceStateImpl(a)}},476:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.INVALID_SPAN_CONTEXT=b.INVALID_TRACEID=b.INVALID_SPANID=void 0;let d=c(475);b.INVALID_SPANID="0000000000000000",b.INVALID_TRACEID="00000000000000000000000000000000",b.INVALID_SPAN_CONTEXT={traceId:b.INVALID_TRACEID,spanId:b.INVALID_SPANID,traceFlags:d.TraceFlags.NONE}},357:(a,b)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.SpanKind=void 0,function(a){a[a.INTERNAL=0]="INTERNAL",a[a.SERVER=1]="SERVER",a[a.CLIENT=2]="CLIENT",a[a.PRODUCER=3]="PRODUCER",a[a.CONSUMER=4]="CONSUMER"}(b.SpanKind||(b.SpanKind={}))},139:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.wrapSpanContext=b.isSpanContextValid=b.isValidSpanId=b.isValidTraceId=void 0;let d=c(476),e=c(403),f=/^([0-9a-f]{32})$/i,g=/^[0-9a-f]{16}$/i;function h(a){return f.test(a)&&a!==d.INVALID_TRACEID}function i(a){return g.test(a)&&a!==d.INVALID_SPANID}b.isValidTraceId=h,b.isValidSpanId=i,b.isSpanContextValid=function(a){return h(a.traceId)&&i(a.spanId)},b.wrapSpanContext=function(a){return new e.NonRecordingSpan(a)}},847:(a,b)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.SpanStatusCode=void 0,function(a){a[a.UNSET=0]="UNSET",a[a.OK=1]="OK",a[a.ERROR=2]="ERROR"}(b.SpanStatusCode||(b.SpanStatusCode={}))},475:(a,b)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.TraceFlags=void 0,function(a){a[a.NONE=0]="NONE",a[a.SAMPLED=1]="SAMPLED"}(b.TraceFlags||(b.TraceFlags={}))},521:(a,b)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.VERSION=void 0,b.VERSION="1.6.0"}},c={};function d(a){var e=c[a];if(void 0!==e)return e.exports;var f=c[a]={exports:{}},g=!0;try{b[a].call(f.exports,f,f.exports,d),g=!1}finally{g&&delete c[a]}return f.exports}d.ab=__dirname+"/";var e={};(()=>{Object.defineProperty(e,"__esModule",{value:!0}),e.trace=e.propagation=e.metrics=e.diag=e.context=e.INVALID_SPAN_CONTEXT=e.INVALID_TRACEID=e.INVALID_SPANID=e.isValidSpanId=e.isValidTraceId=e.isSpanContextValid=e.createTraceState=e.TraceFlags=e.SpanStatusCode=e.SpanKind=e.SamplingDecision=e.ProxyTracerProvider=e.ProxyTracer=e.defaultTextMapSetter=e.defaultTextMapGetter=e.ValueType=e.createNoopMeter=e.DiagLogLevel=e.DiagConsoleLogger=e.ROOT_CONTEXT=e.createContextKey=e.baggageEntryMetadataFromString=void 0;var a=d(369);Object.defineProperty(e,"baggageEntryMetadataFromString",{enumerable:!0,get:function(){return a.baggageEntryMetadataFromString}});var b=d(780);Object.defineProperty(e,"createContextKey",{enumerable:!0,get:function(){return b.createContextKey}}),Object.defineProperty(e,"ROOT_CONTEXT",{enumerable:!0,get:function(){return b.ROOT_CONTEXT}});var c=d(972);Object.defineProperty(e,"DiagConsoleLogger",{enumerable:!0,get:function(){return c.DiagConsoleLogger}});var f=d(957);Object.defineProperty(e,"DiagLogLevel",{enumerable:!0,get:function(){return f.DiagLogLevel}});var g=d(102);Object.defineProperty(e,"createNoopMeter",{enumerable:!0,get:function(){return g.createNoopMeter}});var h=d(901);Object.defineProperty(e,"ValueType",{enumerable:!0,get:function(){return h.ValueType}});var i=d(194);Object.defineProperty(e,"defaultTextMapGetter",{enumerable:!0,get:function(){return i.defaultTextMapGetter}}),Object.defineProperty(e,"defaultTextMapSetter",{enumerable:!0,get:function(){return i.defaultTextMapSetter}});var j=d(125);Object.defineProperty(e,"ProxyTracer",{enumerable:!0,get:function(){return j.ProxyTracer}});var k=d(846);Object.defineProperty(e,"ProxyTracerProvider",{enumerable:!0,get:function(){return k.ProxyTracerProvider}});var l=d(996);Object.defineProperty(e,"SamplingDecision",{enumerable:!0,get:function(){return l.SamplingDecision}});var m=d(357);Object.defineProperty(e,"SpanKind",{enumerable:!0,get:function(){return m.SpanKind}});var n=d(847);Object.defineProperty(e,"SpanStatusCode",{enumerable:!0,get:function(){return n.SpanStatusCode}});var o=d(475);Object.defineProperty(e,"TraceFlags",{enumerable:!0,get:function(){return o.TraceFlags}});var p=d(98);Object.defineProperty(e,"createTraceState",{enumerable:!0,get:function(){return p.createTraceState}});var q=d(139);Object.defineProperty(e,"isSpanContextValid",{enumerable:!0,get:function(){return q.isSpanContextValid}}),Object.defineProperty(e,"isValidTraceId",{enumerable:!0,get:function(){return q.isValidTraceId}}),Object.defineProperty(e,"isValidSpanId",{enumerable:!0,get:function(){return q.isValidSpanId}});var r=d(476);Object.defineProperty(e,"INVALID_SPANID",{enumerable:!0,get:function(){return r.INVALID_SPANID}}),Object.defineProperty(e,"INVALID_TRACEID",{enumerable:!0,get:function(){return r.INVALID_TRACEID}}),Object.defineProperty(e,"INVALID_SPAN_CONTEXT",{enumerable:!0,get:function(){return r.INVALID_SPAN_CONTEXT}});let s=d(67);Object.defineProperty(e,"context",{enumerable:!0,get:function(){return s.context}});let t=d(506);Object.defineProperty(e,"diag",{enumerable:!0,get:function(){return t.diag}});let u=d(886);Object.defineProperty(e,"metrics",{enumerable:!0,get:function(){return u.metrics}});let v=d(939);Object.defineProperty(e,"propagation",{enumerable:!0,get:function(){return v.propagation}});let w=d(845);Object.defineProperty(e,"trace",{enumerable:!0,get:function(){return w.trace}}),e.default={context:s.context,diag:t.diag,metrics:u.metrics,propagation:v.propagation,trace:w.trace}})(),a.exports=e})()},3459:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),!function(a,b){for(var c in b)Object.defineProperty(a,c,{enumerable:!0,get:b[c]})}(b,{HeadersAdapter:function(){return f},ReadonlyHeadersError:function(){return e}});let d=c(1518);class e extends Error{constructor(){super("Headers cannot be modified. Read more: https://nextjs.org/docs/app/api-reference/functions/headers")}static callable(){throw new e}}class f extends Headers{constructor(a){super(),this.headers=new Proxy(a,{get(b,c,e){if("symbol"==typeof c)return d.ReflectAdapter.get(b,c,e);let f=c.toLowerCase(),g=Object.keys(a).find(a=>a.toLowerCase()===f);if(void 0!==g)return d.ReflectAdapter.get(b,g,e)},set(b,c,e,f){if("symbol"==typeof c)return d.ReflectAdapter.set(b,c,e,f);let g=c.toLowerCase(),h=Object.keys(a).find(a=>a.toLowerCase()===g);return d.ReflectAdapter.set(b,h??c,e,f)},has(b,c){if("symbol"==typeof c)return d.ReflectAdapter.has(b,c);let e=c.toLowerCase(),f=Object.keys(a).find(a=>a.toLowerCase()===e);return void 0!==f&&d.ReflectAdapter.has(b,f)},deleteProperty(b,c){if("symbol"==typeof c)return d.ReflectAdapter.deleteProperty(b,c);let e=c.toLowerCase(),f=Object.keys(a).find(a=>a.toLowerCase()===e);return void 0===f||d.ReflectAdapter.deleteProperty(b,f)}})}static seal(a){return new Proxy(a,{get(a,b,c){switch(b){case"append":case"delete":case"set":return e.callable;default:return d.ReflectAdapter.get(a,b,c)}}})}merge(a){return Array.isArray(a)?a.join(", "):a}static from(a){return a instanceof Headers?a:new f(a)}append(a,b){let c=this.headers[a];"string"==typeof c?this.headers[a]=[c,b]:Array.isArray(c)?c.push(b):this.headers[a]=b}delete(a){delete this.headers[a]}get(a){let b=this.headers[a];return void 0!==b?this.merge(b):null}has(a){return void 0!==this.headers[a]}set(a,b){this.headers[a]=b}forEach(a,b){for(let[c,d]of this.entries())a.call(b,d,c,this)}*entries(){for(let a of Object.keys(this.headers)){let b=a.toLowerCase(),c=this.get(b);yield[b,c]}}*keys(){for(let a of Object.keys(this.headers)){let b=a.toLowerCase();yield b}}*values(){for(let a of Object.keys(this.headers)){let b=this.get(a);yield b}}[Symbol.iterator](){return this.entries()}}},3480:(a,b,c)=>{"use strict";a.exports=c(5600)},5183:(a,b)=>{"use strict";function c(a){return null!==a&&"object"==typeof a&&"then"in a&&"function"==typeof a.then}Object.defineProperty(b,"__esModule",{value:!0}),Object.defineProperty(b,"isThenable",{enumerable:!0,get:function(){return c}})},5600:a=>{"use strict";a.exports=require("next/dist/compiled/next-server/pages-api.runtime.prod.js")},6435:(a,b)=>{"use strict";Object.defineProperty(b,"M",{enumerable:!0,get:function(){return function a(b,c){return c in b?b[c]:"then"in b&&"function"==typeof b.then?b.then(b=>a(b,c)):"function"==typeof b&&"default"===c?b:void 0}}})},8112:(a,b,c)=>{"use strict";let d;Object.defineProperty(b,"__esModule",{value:!0}),!function(a,b){for(var c in b)Object.defineProperty(a,c,{enumerable:!0,get:b[c]})}(b,{BubbledError:function(){return m},SpanKind:function(){return k},SpanStatusCode:function(){return j},getTracer:function(){return u},isBubbledError:function(){return n}});let e=c(8766),f=c(5183);try{d=c(3176)}catch(a){d=c(3176)}let{context:g,propagation:h,trace:i,SpanStatusCode:j,SpanKind:k,ROOT_CONTEXT:l}=d;class m extends Error{constructor(a,b){super(),this.bubble=a,this.result=b}}function n(a){return"object"==typeof a&&null!==a&&a instanceof m}let o=(a,b)=>{n(b)&&b.bubble?a.setAttribute("next.bubble",!0):(b&&a.recordException(b),a.setStatus({code:j.ERROR,message:null==b?void 0:b.message})),a.end()},p=new Map,q=d.createContextKey("next.rootSpanId"),r=0,s={set(a,b,c){a.push({key:b,value:c})}};class t{getTracerInstance(){return i.getTracer("next.js","0.0.1")}getContext(){return g}getTracePropagationData(){let a=g.active(),b=[];return h.inject(a,b,s),b}getActiveScopeSpan(){return i.getSpan(null==g?void 0:g.active())}withPropagatedContext(a,b,c){let d=g.active();if(i.getSpanContext(d))return b();let e=h.extract(d,a,c);return g.with(e,b)}trace(...a){var b;let[c,d,h]=a,{fn:j,options:k}="function"==typeof d?{fn:d,options:{}}:{fn:h,options:{...d}},m=k.spanName??c;if(!e.NextVanillaSpanAllowlist.includes(c)&&"1"!==process.env.NEXT_OTEL_VERBOSE||k.hideSpan)return j();let n=this.getSpanContext((null==k?void 0:k.parentSpan)??this.getActiveScopeSpan()),s=!1;n?(null==(b=i.getSpanContext(n))?void 0:b.isRemote)&&(s=!0):(n=(null==g?void 0:g.active())??l,s=!0);let t=r++;return k.attributes={"next.span_name":m,"next.span_type":c,...k.attributes},g.with(n.setValue(q,t),()=>this.getTracerInstance().startActiveSpan(m,k,a=>{let b="performance"in globalThis&&"measure"in performance?globalThis.performance.now():void 0,d=()=>{p.delete(t),b&&process.env.NEXT_OTEL_PERFORMANCE_PREFIX&&e.LogSpanAllowList.includes(c||"")&&performance.measure(`${process.env.NEXT_OTEL_PERFORMANCE_PREFIX}:next-${(c.split(".").pop()||"").replace(/[A-Z]/g,a=>"-"+a.toLowerCase())}`,{start:b,end:performance.now()})};s&&p.set(t,new Map(Object.entries(k.attributes??{})));try{if(j.length>1)return j(a,b=>o(a,b));let b=j(a);if((0,f.isThenable)(b))return b.then(b=>(a.end(),b)).catch(b=>{throw o(a,b),b}).finally(d);return a.end(),d(),b}catch(b){throw o(a,b),d(),b}}))}wrap(...a){let b=this,[c,d,f]=3===a.length?a:[a[0],{},a[1]];return e.NextVanillaSpanAllowlist.includes(c)||"1"===process.env.NEXT_OTEL_VERBOSE?function(){let a=d;"function"==typeof a&&"function"==typeof f&&(a=a.apply(this,arguments));let e=arguments.length-1,h=arguments[e];if("function"!=typeof h)return b.trace(c,a,()=>f.apply(this,arguments));{let d=b.getContext().bind(g.active(),h);return b.trace(c,a,(a,b)=>(arguments[e]=function(a){return null==b||b(a),d.apply(this,arguments)},f.apply(this,arguments)))}}:f}startSpan(...a){let[b,c]=a,d=this.getSpanContext((null==c?void 0:c.parentSpan)??this.getActiveScopeSpan());return this.getTracerInstance().startSpan(b,c,d)}getSpanContext(a){return a?i.setSpan(g.active(),a):void 0}getRootSpanAttributes(){let a=g.active().getValue(q);return p.get(a)}setRootSpanAttribute(a,b){let c=g.active().getValue(q),d=p.get(c);d&&d.set(a,b)}}let u=(()=>{let a=new t;return()=>a})()},8667:(a,b)=>{"use strict";Object.defineProperty(b,"A",{enumerable:!0,get:function(){return c}});var c=function(a){return a.PAGES="PAGES",a.PAGES_API="PAGES_API",a.APP_PAGE="APP_PAGE",a.APP_ROUTE="APP_ROUTE",a.IMAGE="IMAGE",a}({})},8766:(a,b)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),!function(a,b){for(var c in b)Object.defineProperty(a,c,{enumerable:!0,get:b[c]})}(b,{AppRenderSpan:function(){return i},AppRouteRouteHandlersSpan:function(){return l},BaseServerSpan:function(){return c},LoadComponentsSpan:function(){return d},LogSpanAllowList:function(){return p},MiddlewareSpan:function(){return n},NextNodeServerSpan:function(){return f},NextServerSpan:function(){return e},NextVanillaSpanAllowlist:function(){return o},NodeSpan:function(){return k},RenderSpan:function(){return h},ResolveMetadataSpan:function(){return m},RouterSpan:function(){return j},StartServerSpan:function(){return g}});var c=function(a){return a.handleRequest="BaseServer.handleRequest",a.run="BaseServer.run",a.pipe="BaseServer.pipe",a.getStaticHTML="BaseServer.getStaticHTML",a.render="BaseServer.render",a.renderToResponseWithComponents="BaseServer.renderToResponseWithComponents",a.renderToResponse="BaseServer.renderToResponse",a.renderToHTML="BaseServer.renderToHTML",a.renderError="BaseServer.renderError",a.renderErrorToResponse="BaseServer.renderErrorToResponse",a.renderErrorToHTML="BaseServer.renderErrorToHTML",a.render404="BaseServer.render404",a}(c||{}),d=function(a){return a.loadDefaultErrorComponents="LoadComponents.loadDefaultErrorComponents",a.loadComponents="LoadComponents.loadComponents",a}(d||{}),e=function(a){return a.getRequestHandler="NextServer.getRequestHandler",a.getServer="NextServer.getServer",a.getServerRequestHandler="NextServer.getServerRequestHandler",a.createServer="createServer.createServer",a}(e||{}),f=function(a){return a.compression="NextNodeServer.compression",a.getBuildId="NextNodeServer.getBuildId",a.createComponentTree="NextNodeServer.createComponentTree",a.clientComponentLoading="NextNodeServer.clientComponentLoading",a.getLayoutOrPageModule="NextNodeServer.getLayoutOrPageModule",a.generateStaticRoutes="NextNodeServer.generateStaticRoutes",a.generateFsStaticRoutes="NextNodeServer.generateFsStaticRoutes",a.generatePublicRoutes="NextNodeServer.generatePublicRoutes",a.generateImageRoutes="NextNodeServer.generateImageRoutes.route",a.sendRenderResult="NextNodeServer.sendRenderResult",a.proxyRequest="NextNodeServer.proxyRequest",a.runApi="NextNodeServer.runApi",a.render="NextNodeServer.render",a.renderHTML="NextNodeServer.renderHTML",a.imageOptimizer="NextNodeServer.imageOptimizer",a.getPagePath="NextNodeServer.getPagePath",a.getRoutesManifest="NextNodeServer.getRoutesManifest",a.findPageComponents="NextNodeServer.findPageComponents",a.getFontManifest="NextNodeServer.getFontManifest",a.getServerComponentManifest="NextNodeServer.getServerComponentManifest",a.getRequestHandler="NextNodeServer.getRequestHandler",a.renderToHTML="NextNodeServer.renderToHTML",a.renderError="NextNodeServer.renderError",a.renderErrorToHTML="NextNodeServer.renderErrorToHTML",a.render404="NextNodeServer.render404",a.startResponse="NextNodeServer.startResponse",a.route="route",a.onProxyReq="onProxyReq",a.apiResolver="apiResolver",a.internalFetch="internalFetch",a}(f||{}),g=function(a){return a.startServer="startServer.startServer",a}(g||{}),h=function(a){return a.getServerSideProps="Render.getServerSideProps",a.getStaticProps="Render.getStaticProps",a.renderToString="Render.renderToString",a.renderDocument="Render.renderDocument",a.createBodyResult="Render.createBodyResult",a}(h||{}),i=function(a){return a.renderToString="AppRender.renderToString",a.renderToReadableStream="AppRender.renderToReadableStream",a.getBodyResult="AppRender.getBodyResult",a.fetch="AppRender.fetch",a}(i||{}),j=function(a){return a.executeRoute="Router.executeRoute",a}(j||{}),k=function(a){return a.runHandler="Node.runHandler",a}(k||{}),l=function(a){return a.runHandler="AppRouteRouteHandlers.runHandler",a}(l||{}),m=function(a){return a.generateMetadata="ResolveMetadata.generateMetadata",a.generateViewport="ResolveMetadata.generateViewport",a}(m||{}),n=function(a){return a.execute="Middleware.execute",a}(n||{});let o=["Middleware.execute","BaseServer.handleRequest","Render.getServerSideProps","Render.getStaticProps","AppRender.fetch","AppRender.getBodyResult","Render.renderDocument","Node.runHandler","AppRouteRouteHandlers.runHandler","ResolveMetadata.generateMetadata","ResolveMetadata.generateViewport","NextNodeServer.createComponentTree","NextNodeServer.findPageComponents","NextNodeServer.getLayoutOrPageModule","NextNodeServer.startResponse","NextNodeServer.clientComponentLoading"],p=["NextNodeServer.findPageComponents","NextNodeServer.createComponentTree","NextNodeServer.clientComponentLoading"]},9046:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),!function(a,b){for(var c in b)Object.defineProperty(a,c,{enumerable:!0,get:b[c]})}(b,{ApiError:function(){return r},COOKIE_NAME_PRERENDER_BYPASS:function(){return l},COOKIE_NAME_PRERENDER_DATA:function(){return m},RESPONSE_LIMIT_DEFAULT:function(){return n},SYMBOL_CLEARED_COOKIES:function(){return p},SYMBOL_PREVIEW_DATA:function(){return o},checkIsOnDemandRevalidate:function(){return k},clearPreviewData:function(){return q},redirect:function(){return j},sendError:function(){return s},sendStatusCode:function(){return i},setLazyProp:function(){return t},wrapApiHandler:function(){return h}});let d=c(3459),e=c(1922),f=c(8112),g=c(8766);function h(a,b){return(...c)=>((0,f.getTracer)().setRootSpanAttribute("next.route",a),(0,f.getTracer)().trace(g.NodeSpan.runHandler,{spanName:`executing api route (pages) ${a}`},()=>b(...c)))}function i(a,b){return a.statusCode=b,a}function j(a,b,c){if("string"==typeof b&&(c=b,b=307),"number"!=typeof b||"string"!=typeof c)throw Object.defineProperty(Error("Invalid redirect arguments. Please use a single argument URL, e.g. res.redirect('/destination') or use a status code and URL, e.g. res.redirect(307, '/destination')."),"__NEXT_ERROR_CODE",{value:"E389",enumerable:!1,configurable:!0});return a.writeHead(b,{Location:c}),a.write(c),a.end(),a}function k(a,b){let c=d.HeadersAdapter.from(a.headers);return{isOnDemandRevalidate:c.get(e.PRERENDER_REVALIDATE_HEADER)===b.previewModeId,revalidateOnlyGenerated:c.has(e.PRERENDER_REVALIDATE_ONLY_GENERATED_HEADER)}}let l="__prerender_bypass",m="__next_preview_data",n=4194304,o=Symbol(m),p=Symbol(l);function q(a,b={}){if(p in a)return a;let{serialize:d}=c(1254),e=a.getHeader("Set-Cookie");return a.setHeader("Set-Cookie",[..."string"==typeof e?[e]:Array.isArray(e)?e:[],d(l,"",{expires:new Date(0),httpOnly:!0,sameSite:"none",secure:!0,path:"/",...void 0!==b.path?{path:b.path}:void 0}),d(m,"",{expires:new Date(0),httpOnly:!0,sameSite:"none",secure:!0,path:"/",...void 0!==b.path?{path:b.path}:void 0})]),Object.defineProperty(a,p,{value:!0,enumerable:!1}),a}class r extends Error{constructor(a,b){super(b),this.statusCode=a}}function s(a,b,c){a.statusCode=b,a.statusMessage=c,a.end(c)}function t({req:a},b,c){let d={configurable:!0,enumerable:!0},e={...d,writable:!0};Object.defineProperty(a,b,{...d,get:()=>{let d=c();return Object.defineProperty(a,b,{...e,value:d}),d},set:c=>{Object.defineProperty(a,b,{...e,value:c})}})}}};var b=require("../../../webpack-api-runtime.js");b.C(a);var c=b(b.s=718);module.exports=c})(); \ No newline at end of file diff --git a/.next/server/pages/api/sitemap/[lang].js.nft.json b/.next/server/pages/api/sitemap/[lang].js.nft.json index 290a5ae..5dee8ed 100644 --- a/.next/server/pages/api/sitemap/[lang].js.nft.json +++ b/.next/server/pages/api/sitemap/[lang].js.nft.json @@ -1 +1 @@ -{"version":1,"files":["../../../../../node_modules/esprima/dist/esprima.js","../../../../../node_modules/esprima/package.json","../../../../../node_modules/extend-shallow/index.js","../../../../../node_modules/extend-shallow/package.json","../../../../../node_modules/gray-matter/index.js","../../../../../node_modules/gray-matter/lib/defaults.js","../../../../../node_modules/gray-matter/lib/engine.js","../../../../../node_modules/gray-matter/lib/engines.js","../../../../../node_modules/gray-matter/lib/excerpt.js","../../../../../node_modules/gray-matter/lib/parse.js","../../../../../node_modules/gray-matter/lib/stringify.js","../../../../../node_modules/gray-matter/lib/to-file.js","../../../../../node_modules/gray-matter/lib/utils.js","../../../../../node_modules/gray-matter/package.json","../../../../../node_modules/is-extendable/index.js","../../../../../node_modules/is-extendable/package.json","../../../../../node_modules/js-yaml/index.js","../../../../../node_modules/js-yaml/lib/js-yaml.js","../../../../../node_modules/js-yaml/lib/js-yaml/common.js","../../../../../node_modules/js-yaml/lib/js-yaml/dumper.js","../../../../../node_modules/js-yaml/lib/js-yaml/exception.js","../../../../../node_modules/js-yaml/lib/js-yaml/loader.js","../../../../../node_modules/js-yaml/lib/js-yaml/mark.js","../../../../../node_modules/js-yaml/lib/js-yaml/schema.js","../../../../../node_modules/js-yaml/lib/js-yaml/schema/core.js","../../../../../node_modules/js-yaml/lib/js-yaml/schema/default_full.js","../../../../../node_modules/js-yaml/lib/js-yaml/schema/default_safe.js","../../../../../node_modules/js-yaml/lib/js-yaml/schema/failsafe.js","../../../../../node_modules/js-yaml/lib/js-yaml/schema/json.js","../../../../../node_modules/js-yaml/lib/js-yaml/type.js","../../../../../node_modules/js-yaml/lib/js-yaml/type/binary.js","../../../../../node_modules/js-yaml/lib/js-yaml/type/bool.js","../../../../../node_modules/js-yaml/lib/js-yaml/type/float.js","../../../../../node_modules/js-yaml/lib/js-yaml/type/int.js","../../../../../node_modules/js-yaml/lib/js-yaml/type/js/function.js","../../../../../node_modules/js-yaml/lib/js-yaml/type/js/regexp.js","../../../../../node_modules/js-yaml/lib/js-yaml/type/js/undefined.js","../../../../../node_modules/js-yaml/lib/js-yaml/type/map.js","../../../../../node_modules/js-yaml/lib/js-yaml/type/merge.js","../../../../../node_modules/js-yaml/lib/js-yaml/type/null.js","../../../../../node_modules/js-yaml/lib/js-yaml/type/omap.js","../../../../../node_modules/js-yaml/lib/js-yaml/type/pairs.js","../../../../../node_modules/js-yaml/lib/js-yaml/type/seq.js","../../../../../node_modules/js-yaml/lib/js-yaml/type/set.js","../../../../../node_modules/js-yaml/lib/js-yaml/type/str.js","../../../../../node_modules/js-yaml/lib/js-yaml/type/timestamp.js","../../../../../node_modules/js-yaml/package.json","../../../../../node_modules/kind-of/index.js","../../../../../node_modules/kind-of/package.json","../../../../../node_modules/next/dist/client/components/app-router-headers.js","../../../../../node_modules/next/dist/compiled/@opentelemetry/api/index.js","../../../../../node_modules/next/dist/compiled/@opentelemetry/api/package.json","../../../../../node_modules/next/dist/compiled/bytes/index.js","../../../../../node_modules/next/dist/compiled/bytes/package.json","../../../../../node_modules/next/dist/compiled/jsonwebtoken/index.js","../../../../../node_modules/next/dist/compiled/jsonwebtoken/package.json","../../../../../node_modules/next/dist/compiled/next-server/pages-api.runtime.prod.js","../../../../../node_modules/next/dist/compiled/raw-body/index.js","../../../../../node_modules/next/dist/compiled/raw-body/package.json","../../../../../node_modules/next/dist/lib/constants.js","../../../../../node_modules/next/dist/lib/interop-default.js","../../../../../node_modules/next/dist/lib/is-error.js","../../../../../node_modules/next/dist/lib/semver-noop.js","../../../../../node_modules/next/dist/server/app-render/async-local-storage.js","../../../../../node_modules/next/dist/server/app-render/work-async-storage-instance.js","../../../../../node_modules/next/dist/server/app-render/work-async-storage.external.js","../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage-instance.js","../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage.external.js","../../../../../node_modules/next/dist/server/lib/cache-handlers/default.external.js","../../../../../node_modules/next/dist/server/lib/incremental-cache/memory-cache.external.js","../../../../../node_modules/next/dist/server/lib/incremental-cache/shared-cache-controls.external.js","../../../../../node_modules/next/dist/server/lib/incremental-cache/tags-manifest.external.js","../../../../../node_modules/next/dist/server/lib/lru-cache.js","../../../../../node_modules/next/dist/server/lib/router-utils/instrumentation-globals.external.js","../../../../../node_modules/next/dist/server/lib/trace/constants.js","../../../../../node_modules/next/dist/server/lib/trace/tracer.js","../../../../../node_modules/next/dist/server/load-manifest.external.js","../../../../../node_modules/next/dist/server/response-cache/types.js","../../../../../node_modules/next/dist/shared/lib/deep-freeze.js","../../../../../node_modules/next/dist/shared/lib/is-plain-object.js","../../../../../node_modules/next/dist/shared/lib/is-thenable.js","../../../../../node_modules/next/package.json","../../../../../node_modules/section-matter/index.js","../../../../../node_modules/section-matter/package.json","../../../../../node_modules/strip-bom-string/index.js","../../../../../node_modules/strip-bom-string/package.json","../../../../../package.json","../../../../package.json","../../../webpack-api-runtime.js"]} \ No newline at end of file +{"version":1,"files":["../../../../../content/news/_example.md","../../../../../content/news/global-expansion.md","../../../../../content/news/product-launch.md","../../../../../content/news/security-enhancement.md","../../../../../content/news/technology-update.md","../../../../../node_modules/esprima/dist/esprima.js","../../../../../node_modules/esprima/package.json","../../../../../node_modules/extend-shallow/index.js","../../../../../node_modules/extend-shallow/package.json","../../../../../node_modules/gray-matter/index.js","../../../../../node_modules/gray-matter/lib/defaults.js","../../../../../node_modules/gray-matter/lib/engine.js","../../../../../node_modules/gray-matter/lib/engines.js","../../../../../node_modules/gray-matter/lib/excerpt.js","../../../../../node_modules/gray-matter/lib/parse.js","../../../../../node_modules/gray-matter/lib/stringify.js","../../../../../node_modules/gray-matter/lib/to-file.js","../../../../../node_modules/gray-matter/lib/utils.js","../../../../../node_modules/gray-matter/package.json","../../../../../node_modules/is-extendable/index.js","../../../../../node_modules/is-extendable/package.json","../../../../../node_modules/js-yaml/index.js","../../../../../node_modules/js-yaml/lib/js-yaml.js","../../../../../node_modules/js-yaml/lib/js-yaml/common.js","../../../../../node_modules/js-yaml/lib/js-yaml/dumper.js","../../../../../node_modules/js-yaml/lib/js-yaml/exception.js","../../../../../node_modules/js-yaml/lib/js-yaml/loader.js","../../../../../node_modules/js-yaml/lib/js-yaml/mark.js","../../../../../node_modules/js-yaml/lib/js-yaml/schema.js","../../../../../node_modules/js-yaml/lib/js-yaml/schema/core.js","../../../../../node_modules/js-yaml/lib/js-yaml/schema/default_full.js","../../../../../node_modules/js-yaml/lib/js-yaml/schema/default_safe.js","../../../../../node_modules/js-yaml/lib/js-yaml/schema/failsafe.js","../../../../../node_modules/js-yaml/lib/js-yaml/schema/json.js","../../../../../node_modules/js-yaml/lib/js-yaml/type.js","../../../../../node_modules/js-yaml/lib/js-yaml/type/binary.js","../../../../../node_modules/js-yaml/lib/js-yaml/type/bool.js","../../../../../node_modules/js-yaml/lib/js-yaml/type/float.js","../../../../../node_modules/js-yaml/lib/js-yaml/type/int.js","../../../../../node_modules/js-yaml/lib/js-yaml/type/js/function.js","../../../../../node_modules/js-yaml/lib/js-yaml/type/js/regexp.js","../../../../../node_modules/js-yaml/lib/js-yaml/type/js/undefined.js","../../../../../node_modules/js-yaml/lib/js-yaml/type/map.js","../../../../../node_modules/js-yaml/lib/js-yaml/type/merge.js","../../../../../node_modules/js-yaml/lib/js-yaml/type/null.js","../../../../../node_modules/js-yaml/lib/js-yaml/type/omap.js","../../../../../node_modules/js-yaml/lib/js-yaml/type/pairs.js","../../../../../node_modules/js-yaml/lib/js-yaml/type/seq.js","../../../../../node_modules/js-yaml/lib/js-yaml/type/set.js","../../../../../node_modules/js-yaml/lib/js-yaml/type/str.js","../../../../../node_modules/js-yaml/lib/js-yaml/type/timestamp.js","../../../../../node_modules/js-yaml/package.json","../../../../../node_modules/kind-of/index.js","../../../../../node_modules/kind-of/package.json","../../../../../node_modules/next/dist/client/components/app-router-headers.js","../../../../../node_modules/next/dist/compiled/@opentelemetry/api/index.js","../../../../../node_modules/next/dist/compiled/@opentelemetry/api/package.json","../../../../../node_modules/next/dist/compiled/bytes/index.js","../../../../../node_modules/next/dist/compiled/bytes/package.json","../../../../../node_modules/next/dist/compiled/jsonwebtoken/index.js","../../../../../node_modules/next/dist/compiled/jsonwebtoken/package.json","../../../../../node_modules/next/dist/compiled/next-server/pages-api.runtime.prod.js","../../../../../node_modules/next/dist/compiled/raw-body/index.js","../../../../../node_modules/next/dist/compiled/raw-body/package.json","../../../../../node_modules/next/dist/lib/constants.js","../../../../../node_modules/next/dist/lib/interop-default.js","../../../../../node_modules/next/dist/lib/is-error.js","../../../../../node_modules/next/dist/lib/semver-noop.js","../../../../../node_modules/next/dist/server/app-render/async-local-storage.js","../../../../../node_modules/next/dist/server/app-render/work-async-storage-instance.js","../../../../../node_modules/next/dist/server/app-render/work-async-storage.external.js","../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage-instance.js","../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage.external.js","../../../../../node_modules/next/dist/server/lib/cache-handlers/default.external.js","../../../../../node_modules/next/dist/server/lib/incremental-cache/memory-cache.external.js","../../../../../node_modules/next/dist/server/lib/incremental-cache/shared-cache-controls.external.js","../../../../../node_modules/next/dist/server/lib/incremental-cache/tags-manifest.external.js","../../../../../node_modules/next/dist/server/lib/lru-cache.js","../../../../../node_modules/next/dist/server/lib/router-utils/instrumentation-globals.external.js","../../../../../node_modules/next/dist/server/lib/trace/constants.js","../../../../../node_modules/next/dist/server/lib/trace/tracer.js","../../../../../node_modules/next/dist/server/load-manifest.external.js","../../../../../node_modules/next/dist/server/response-cache/types.js","../../../../../node_modules/next/dist/shared/lib/deep-freeze.js","../../../../../node_modules/next/dist/shared/lib/is-plain-object.js","../../../../../node_modules/next/dist/shared/lib/is-thenable.js","../../../../../node_modules/next/package.json","../../../../../node_modules/section-matter/index.js","../../../../../node_modules/section-matter/package.json","../../../../../node_modules/strip-bom-string/index.js","../../../../../node_modules/strip-bom-string/package.json","../../../../../package.json","../../../../package.json","../../../webpack-api-runtime.js"]} \ No newline at end of file diff --git a/.next/server/pages/cases.html b/.next/server/pages/cases.html index 5f6e033..f322cfe 100644 --- a/.next/server/pages/cases.html +++ b/.next/server/pages/cases.html @@ -1 +1 @@ - \ No newline at end of file +

客户成功案例

看看我们如何帮助全球企业提升网络性能,实现业务增长。 从初创公司到大型企业,我们为各种规模的客户提供定制化解决方案。

500+

服务客户

99.9%

客户满意度

50%

平均性能提升

50+

覆盖国家

服务行业

🛒

电商零售

🎮

在线游戏

💳

金融服务

🎓

教育培训

🏥

医疗健康

🎬

媒体娱乐

成功案例详情

深入了解我们如何帮助不同行业的客户实现业务目标,提升用户体验和运营效率。

某大型电商平台

电商零售

电商零售

电商平台全球加速

为全球领先的电商平台提供CDN加速服务,显著提升用户体验和转化率。

2.1秒
页面加载速度
提升 65%
45ms
全球访问延迟
降低 70%
CDN加速全球部署性能优化

"Pinnovate Cloud 的加速服务帮助我们显著提升了全球用户的访问体验,转化率提升了近30%,这对我们的业务增长起到了关键作用。"

张总
技术总监

知名游戏公司

在线游戏

在线游戏

在线游戏低延迟优化

为多人在线游戏提供全球低延迟网络优化,确保玩家获得流畅的游戏体验。

35ms
游戏延迟
降低 60%
99.9%
连接稳定性
提升 25%
游戏加速低延迟全球节点

"通过 Pinnovate Cloud 的游戏加速服务,我们的玩家在全球范围内都能享受到流畅的游戏体验,玩家满意度大幅提升。"

李经理
运营总监

大型金融机构

金融服务

金融服务

金融平台安全加速

为金融机构提供安全可靠的网络加速服务,确保交易系统的稳定性和安全性。

99.99%
系统可用性
提升 0.1%
120ms
交易响应时间
降低 50%
金融安全高可用合规认证

"Pinnovate Cloud 不仅提供了卓越的性能优化,更重要的是保证了我们金融系统的安全性和稳定性,完全符合我们的合规要求。"

王总
CTO

知名教育机构

教育培训

教育培训

在线教育平台优化

为在线教育平台提供视频流媒体加速,确保全球学生能够流畅观看课程内容。

1.2秒
视频加载时间
提升 75%
0.5秒
缓冲时间
降低 80%
视频加速流媒体教育

"Pinnovate Cloud 的视频加速服务让我们的在线课程在全球范围内都能流畅播放,学生的学习体验得到了显著改善。"

陈教授
技术负责人

想要了解您的行业案例?

我们为各行各业提供定制化的云加速解决方案。联系我们的专家团队,了解如何为您的业务量身定制最佳方案。

\ No newline at end of file diff --git a/.next/server/pages/contact.html b/.next/server/pages/contact.html index c062bd9..387f19b 100644 --- a/.next/server/pages/contact.html +++ b/.next/server/pages/contact.html @@ -1 +1 @@ - \ No newline at end of file +

联系我们

我们随时准备为您提供帮助。无论您有任何问题、建议或需要技术支持, 我们的专业团队都会尽快回复您。

WhatsApp

7×24 小时技术支持

+1 917-402-9875

邮件支持

24 小时内回复

support@pinnovatecloud.com

Telegram

即时响应

@pinnovatecloud

发送消息

填写下面的表单,我们的团队会在 24 小时内回复您。

联系信息

公司地址

全球远程办公

总部位于美国纽约

WhatsApp

+1 917-402-9875

7×24 小时技术支持

邮箱地址

support@pinnovatecloud.com

info@pinnovatecloud.com

Telegram

@pinnovatecloud

即时响应支持

在线客服

需要即时帮助?我们的在线客服团队随时为您服务。

响应时间

  • • 在线客服:即时响应
  • • 邮件支持:24 小时内
  • • 电话支持:7×24 小时
  • • 紧急问题:1 小时内

常见问题

以下是一些客户经常询问的问题,也许能帮助您快速找到答案。

如何开始使用 CloudProxy 服务?

您可以通过我们的官网注册账号,选择适合的套餐,然后按照指引完成配置。我们提供详细的文档和视频教程。

支持哪些支付方式?

我们支持支付宝、微信支付、银行卡支付等多种支付方式,也支持企业对公转账。

如何获得技术支持?

您可以通过工单系统、在线客服、电话或邮件联系我们。我们提供 7×24 小时技术支持服务。

是否提供免费试用?

是的,我们为所有新用户提供 15 天免费试用,无需信用卡,让您充分体验我们的服务。

如何升级或降级套餐?

您可以在控制面板中随时升级或降级套餐,变更会在下个计费周期生效。

数据安全如何保障?

我们采用企业级安全防护,包括端到端加密、DDoS 防护、安全审计等多重保障措施。

没有找到您要的答案?

立即联系我们
\ No newline at end of file diff --git a/.next/server/pages/features.html b/.next/server/pages/features.html index 391e82e..ebb3786 100644 --- a/.next/server/pages/features.html +++ b/.next/server/pages/features.html @@ -1 +1 @@ -

全局加速

自动选择最优节点,降低跨境延迟。

智能路由

基于流量与地域,动态切换链路。

可视化面板

实时监控带宽、连接数与性能指标。

\ No newline at end of file +

产品与服务

我们提供全球领先的云加速服务,通过智能路由和分布式节点网络, 为您的业务提供稳定、安全、高效的技术解决方案

核心产品特性

我们提供业界领先的云加速服务,通过先进的技术架构和智能算法, 为您的业务提供稳定、安全、高效的技术解决方案

全球节点网络

覆盖全球主要地区的分布式节点,确保就近访问

  • 50+ 全球节点
  • 平均延迟 &lt; 50ms
  • 99.9% 可用性

智能路由优化

基于实时网络状况,自动选择最优传输路径

  • 动态路径选择
  • 负载均衡
  • 故障自动切换

实时监控面板

全面的性能监控和数据分析,让您随时掌握服务状态

  • 实时性能指标
  • 详细使用报告
  • 自定义告警

企业级安全

多层安全防护,保障数据传输和存储安全

  • 端到端加密
  • DDoS 防护
  • 安全审计

极速性能

优化的传输协议和缓存机制,提供极致访问速度

  • HTTP/3 支持
  • 智能缓存
  • 压缩优化

团队协作

完善的权限管理和团队协作功能

  • 多用户管理
  • 权限控制
  • 操作日志

7×24 支持

全天候技术支持,确保您的业务稳定运行

  • 即时响应
  • 专业技术团队
  • 多渠道支持

SLA 保障

严格的服务等级协议,确保服务质量

  • 99.9% 可用性
  • 性能保证
  • 赔偿机制

技术架构优势

基于云原生架构,采用微服务设计,确保系统的高可用性和可扩展性

99.9%

服务可用性

企业级 SLA 保障

< 50ms

平均延迟

全球节点优化

50+

全球节点

覆盖主要地区

核心优势

企业级安全防护

  • 多层加密与物理隔离,SO 27001 认证
  • 99.99% SLA 可用性保障, 自动容灾备份

极致性价比

  • 年付88折,企业长期合作成本直降12%
  • 免费试用15天+新用户千元代金券

无边界技术架构

  • 分布式计算节点,全球低延迟访问
  • 弹性伸缩资源满足高并发需求

专家客服团队

  • 7×24 小时响应,1 小时紧急介入
  • 中英文支持,覆盖全球主要时区

智能运维管理

  • AI 驱动资源调度,节省 15% 成本
  • 一键部署与运维,降低企业 IT 运维成本

我们的服务

全球加速服务

覆盖全球主要地区的节点网络,为您的应用提供低延迟、高可用的访问体验

  • • 全球 50+ 节点覆盖
  • • 平均延迟 < 50ms
  • • 99.9% 可用性保证

安全防护服务

企业级安全防护,多层加密保护,确保您的数据安全和业务连续性

  • • 端到端加密传输
  • • DDoS 攻击防护
  • • 实时安全监控

智能运维管理

AI 驱动的智能运维,自动化资源调度,降低运维成本,提升服务效率

  • • 智能资源调度
  • • 自动化运维
  • • 实时性能监控

定制化解决方案

根据您的业务需求,提供量身定制的技术解决方案和专业的咨询服务

  • • 个性化配置
  • • 专业技术咨询
  • • 7×24 技术支持

性能优化服务

专业的性能优化团队,帮助您提升应用性能,优化用户体验

  • • 性能诊断分析
  • • 优化方案制定
  • • 持续性能监控

培训与支持

提供全面的技术培训和持续的技术支持,确保您的团队能够充分利用我们的服务

  • • 技术培训课程
  • • 在线文档支持
  • • 社区技术支持

灵活的定价方案

选择最适合您业务需求的方案,所有方案都包含免费试用和专业技术支持

基础版

适合个人用户和小型项目

¥100/月¥120
限时优惠
  • 全球 20+ 节点接入
  • 基础智能路由
  • 社区支持
  • 基础监控面板
  • 5GB 月流量
  • 标准 SLA
选择方案
最受欢迎

专业版

适合中小企业和成长型项目

¥300/月¥400
限时优惠
  • 全球 50+ 节点接入
  • 高级智能路由
  • 实时监控面板
  • 邮件 + 电话支持
  • 50GB 月流量
  • 高级安全防护
  • API 接口访问
  • 99.9% SLA 保障
立即开始

企业版

适合大型企业和关键业务

¥800/月¥1000
限时优惠
  • 全球 100+ 节点接入
  • 专属线路优化
  • 7×24 专业技术支持
  • 定制 SLA 协议
  • 无限流量
  • 企业级安全防护
  • 专属客户经理
  • 定制化解决方案
  • 99.99% SLA 保障
选择方案

为什么选择我们?

🆓

免费试用

所有方案都提供 15 天免费试用

💰

年付优惠

年付享受 88 折优惠,节省更多成本

🔄

随时升级

支持随时升级或降级,灵活调整

准备好加速您的云服务了吗?

立即开始免费试用,体验全球领先的云加速服务。 无需信用卡,15 天免费试用,专业技术支持。

15 天免费试用

无需信用卡,立即开始体验

专业技术支持

7×24 小时专家团队支持

快速部署

5 分钟内完成配置部署

已有超过 10,000+ 企业选择我们

99.9%
50+
24/7
15天

可用性保障 • 全球节点 • 技术支持 • 免费试用

\ No newline at end of file diff --git a/.next/server/pages/features.js.nft.json b/.next/server/pages/features.js.nft.json index a71a443..7fbf00d 100644 --- a/.next/server/pages/features.js.nft.json +++ b/.next/server/pages/features.js.nft.json @@ -1 +1 @@ -{"version":1,"files":["../webpack-runtime.js","../chunks/616.js","../chunks/326.js","../chunks/450.js","../../../package.json"]} \ No newline at end of file +{"version":1,"files":["../webpack-runtime.js","../chunks/616.js","../chunks/326.js","../chunks/450.js","../chunks/62.js","../../../package.json"]} \ No newline at end of file diff --git a/.next/server/pages/index.html b/.next/server/pages/index.html index 22842bb..8e69646 100644 --- a/.next/server/pages/index.html +++ b/.next/server/pages/index.html @@ -1 +1 @@ -

无限云,服务无界

稳定无极限,优惠趁现在!年付88折,月付95折!

CloudProxy Illustration

全局加速

自动选择最优节点,降低跨境延迟。

智能路由

基于流量与地域,动态切换链路。

可视化面板

实时监控带宽、连接数与性能指标。

开通流程

选择产品
联系销售
沟通业务
开通账户
+

核心优势

企业级安全防护

  • 多层加密与物理隔离,SO 27001 认证
  • 99.99% SLA 可用性保障, 自动容灾备份

极致性价比

  • 年付88折,企业长期合作成本直降12%
  • 免费试用15天+新用户千元代金券

无边界技术架构

  • 分布式计算节点,全球低延迟访问
  • 弹性伸缩资源满足高并发需求

专家客服团队

  • 7×24 小时响应,1 小时紧急介入
  • 中英文支持,覆盖全球主要时区
Alice

CloudProxy 让我在海外部署的服务延迟降低了 60%!

Alice

Bob

简单易用的控制面板,实时网络指标一目了然。

Bob

准备好加速您的云服务了吗?

查看方案
\ No newline at end of file +

无限云,服务无界

稳定无极限,优惠趁现在!年付88折,月付95折!

Pinnovate Cloud Illustration

核心产品特性

我们提供业界领先的云加速服务,通过先进的技术架构和智能算法, 为您的业务提供稳定、安全、高效的技术解决方案

全球节点网络

覆盖全球主要地区的分布式节点,确保就近访问

  • 50+ 全球节点
  • 平均延迟 &lt; 50ms
  • 99.9% 可用性

智能路由优化

基于实时网络状况,自动选择最优传输路径

  • 动态路径选择
  • 负载均衡
  • 故障自动切换

实时监控面板

全面的性能监控和数据分析,让您随时掌握服务状态

  • 实时性能指标
  • 详细使用报告
  • 自定义告警

企业级安全

多层安全防护,保障数据传输和存储安全

  • 端到端加密
  • DDoS 防护
  • 安全审计

极速性能

优化的传输协议和缓存机制,提供极致访问速度

  • HTTP/3 支持
  • 智能缓存
  • 压缩优化

团队协作

完善的权限管理和团队协作功能

  • 多用户管理
  • 权限控制
  • 操作日志

7×24 支持

全天候技术支持,确保您的业务稳定运行

  • 即时响应
  • 专业技术团队
  • 多渠道支持

SLA 保障

严格的服务等级协议,确保服务质量

  • 99.9% 可用性
  • 性能保证
  • 赔偿机制

技术架构优势

基于云原生架构,采用微服务设计,确保系统的高可用性和可扩展性

99.9%

服务可用性

企业级 SLA 保障

< 50ms

平均延迟

全球节点优化

50+

全球节点

覆盖主要地区

开通流程

选择产品
联系销售
沟通业务
开通账户
+

核心优势

企业级安全防护

  • 多层加密与物理隔离,SO 27001 认证
  • 99.99% SLA 可用性保障, 自动容灾备份

极致性价比

  • 年付88折,企业长期合作成本直降12%
  • 免费试用15天+新用户千元代金券

无边界技术架构

  • 分布式计算节点,全球低延迟访问
  • 弹性伸缩资源满足高并发需求

专家客服团队

  • 7×24 小时响应,1 小时紧急介入
  • 中英文支持,覆盖全球主要时区

智能运维管理

  • AI 驱动资源调度,节省 15% 成本
  • 一键部署与运维,降低企业 IT 运维成本
Alice

CloudProxy 让我在海外部署的服务延迟降低了 60%!

Alice

Bob

简单易用的控制面板,实时网络指标一目了然。

Bob

准备好加速您的云服务了吗?

立即开始免费试用,体验全球领先的云加速服务。 无需信用卡,15 天免费试用,专业技术支持。

15 天免费试用

无需信用卡,立即开始体验

专业技术支持

7×24 小时专家团队支持

快速部署

5 分钟内完成配置部署

已有超过 10,000+ 企业选择我们

99.9%
50+
24/7
15天

可用性保障 • 全球节点 • 技术支持 • 免费试用

\ No newline at end of file diff --git a/.next/server/pages/index.js.nft.json b/.next/server/pages/index.js.nft.json index b567be9..c4f809d 100644 --- a/.next/server/pages/index.js.nft.json +++ b/.next/server/pages/index.js.nft.json @@ -1 +1 @@ -{"version":1,"files":["../../../node_modules/@swc/helpers/_/_interop_require_wildcard/package.json","../../../node_modules/@swc/helpers/cjs/_interop_require_wildcard.cjs","../../../node_modules/@swc/helpers/package.json","../../../node_modules/client-only/index.js","../../../node_modules/client-only/package.json","../../../node_modules/next/dist/client/components/app-router-headers.js","../../../node_modules/next/dist/compiled/@opentelemetry/api/index.js","../../../node_modules/next/dist/compiled/@opentelemetry/api/package.json","../../../node_modules/next/dist/compiled/jsonwebtoken/index.js","../../../node_modules/next/dist/compiled/jsonwebtoken/package.json","../../../node_modules/next/dist/compiled/next-server/pages.runtime.prod.js","../../../node_modules/next/dist/lib/constants.js","../../../node_modules/next/dist/lib/interop-default.js","../../../node_modules/next/dist/lib/is-error.js","../../../node_modules/next/dist/lib/semver-noop.js","../../../node_modules/next/dist/server/app-render/async-local-storage.js","../../../node_modules/next/dist/server/app-render/work-async-storage-instance.js","../../../node_modules/next/dist/server/app-render/work-async-storage.external.js","../../../node_modules/next/dist/server/app-render/work-unit-async-storage-instance.js","../../../node_modules/next/dist/server/app-render/work-unit-async-storage.external.js","../../../node_modules/next/dist/server/lib/cache-handlers/default.external.js","../../../node_modules/next/dist/server/lib/incremental-cache/memory-cache.external.js","../../../node_modules/next/dist/server/lib/incremental-cache/shared-cache-controls.external.js","../../../node_modules/next/dist/server/lib/incremental-cache/tags-manifest.external.js","../../../node_modules/next/dist/server/lib/lru-cache.js","../../../node_modules/next/dist/server/lib/router-utils/instrumentation-globals.external.js","../../../node_modules/next/dist/server/lib/trace/constants.js","../../../node_modules/next/dist/server/lib/trace/tracer.js","../../../node_modules/next/dist/server/load-manifest.external.js","../../../node_modules/next/dist/server/response-cache/types.js","../../../node_modules/next/dist/shared/lib/deep-freeze.js","../../../node_modules/next/dist/shared/lib/is-plain-object.js","../../../node_modules/next/dist/shared/lib/is-thenable.js","../../../node_modules/next/dist/shared/lib/no-fallback-error.external.js","../../../node_modules/next/dist/shared/lib/page-path/normalize-data-path.js","../../../node_modules/next/dist/shared/lib/router/utils/add-path-prefix.js","../../../node_modules/next/dist/shared/lib/router/utils/format-url.js","../../../node_modules/next/dist/shared/lib/router/utils/html-bots.js","../../../node_modules/next/dist/shared/lib/router/utils/is-bot.js","../../../node_modules/next/dist/shared/lib/router/utils/parse-path.js","../../../node_modules/next/dist/shared/lib/router/utils/querystring.js","../../../node_modules/next/dist/shared/lib/router/utils/remove-trailing-slash.js","../../../node_modules/next/dist/shared/lib/utils.js","../../../node_modules/next/package.json","../../../node_modules/react-dom/cjs/react-dom-server-legacy.browser.development.js","../../../node_modules/react-dom/cjs/react-dom-server-legacy.browser.production.js","../../../node_modules/react-dom/cjs/react-dom-server.browser.development.js","../../../node_modules/react-dom/cjs/react-dom-server.browser.production.js","../../../node_modules/react-dom/cjs/react-dom-server.edge.development.js","../../../node_modules/react-dom/cjs/react-dom-server.edge.production.js","../../../node_modules/react-dom/cjs/react-dom.development.js","../../../node_modules/react-dom/cjs/react-dom.production.js","../../../node_modules/react-dom/index.js","../../../node_modules/react-dom/package.json","../../../node_modules/react-dom/server.browser.js","../../../node_modules/react-dom/server.edge.js","../../../node_modules/react/cjs/react-jsx-runtime.development.js","../../../node_modules/react/cjs/react-jsx-runtime.production.js","../../../node_modules/react/cjs/react.development.js","../../../node_modules/react/cjs/react.production.js","../../../node_modules/react/index.js","../../../node_modules/react/jsx-runtime.js","../../../node_modules/react/package.json","../../../node_modules/styled-jsx/dist/index/index.js","../../../node_modules/styled-jsx/index.js","../../../node_modules/styled-jsx/package.json","../../../package.json","../../package.json","../chunks/326.js","../chunks/450.js","../chunks/616.js","../webpack-runtime.js"]} \ No newline at end of file +{"version":1,"files":["../../../node_modules/@swc/helpers/_/_interop_require_wildcard/package.json","../../../node_modules/@swc/helpers/cjs/_interop_require_wildcard.cjs","../../../node_modules/@swc/helpers/package.json","../../../node_modules/client-only/index.js","../../../node_modules/client-only/package.json","../../../node_modules/next/dist/client/components/app-router-headers.js","../../../node_modules/next/dist/compiled/@opentelemetry/api/index.js","../../../node_modules/next/dist/compiled/@opentelemetry/api/package.json","../../../node_modules/next/dist/compiled/jsonwebtoken/index.js","../../../node_modules/next/dist/compiled/jsonwebtoken/package.json","../../../node_modules/next/dist/compiled/next-server/pages.runtime.prod.js","../../../node_modules/next/dist/lib/constants.js","../../../node_modules/next/dist/lib/interop-default.js","../../../node_modules/next/dist/lib/is-error.js","../../../node_modules/next/dist/lib/semver-noop.js","../../../node_modules/next/dist/server/app-render/async-local-storage.js","../../../node_modules/next/dist/server/app-render/work-async-storage-instance.js","../../../node_modules/next/dist/server/app-render/work-async-storage.external.js","../../../node_modules/next/dist/server/app-render/work-unit-async-storage-instance.js","../../../node_modules/next/dist/server/app-render/work-unit-async-storage.external.js","../../../node_modules/next/dist/server/lib/cache-handlers/default.external.js","../../../node_modules/next/dist/server/lib/incremental-cache/memory-cache.external.js","../../../node_modules/next/dist/server/lib/incremental-cache/shared-cache-controls.external.js","../../../node_modules/next/dist/server/lib/incremental-cache/tags-manifest.external.js","../../../node_modules/next/dist/server/lib/lru-cache.js","../../../node_modules/next/dist/server/lib/router-utils/instrumentation-globals.external.js","../../../node_modules/next/dist/server/lib/trace/constants.js","../../../node_modules/next/dist/server/lib/trace/tracer.js","../../../node_modules/next/dist/server/load-manifest.external.js","../../../node_modules/next/dist/server/response-cache/types.js","../../../node_modules/next/dist/shared/lib/deep-freeze.js","../../../node_modules/next/dist/shared/lib/is-plain-object.js","../../../node_modules/next/dist/shared/lib/is-thenable.js","../../../node_modules/next/dist/shared/lib/no-fallback-error.external.js","../../../node_modules/next/dist/shared/lib/page-path/normalize-data-path.js","../../../node_modules/next/dist/shared/lib/router/utils/add-path-prefix.js","../../../node_modules/next/dist/shared/lib/router/utils/format-url.js","../../../node_modules/next/dist/shared/lib/router/utils/html-bots.js","../../../node_modules/next/dist/shared/lib/router/utils/is-bot.js","../../../node_modules/next/dist/shared/lib/router/utils/parse-path.js","../../../node_modules/next/dist/shared/lib/router/utils/querystring.js","../../../node_modules/next/dist/shared/lib/router/utils/remove-trailing-slash.js","../../../node_modules/next/dist/shared/lib/utils.js","../../../node_modules/next/package.json","../../../node_modules/react-dom/cjs/react-dom-server-legacy.browser.development.js","../../../node_modules/react-dom/cjs/react-dom-server-legacy.browser.production.js","../../../node_modules/react-dom/cjs/react-dom-server.browser.development.js","../../../node_modules/react-dom/cjs/react-dom-server.browser.production.js","../../../node_modules/react-dom/cjs/react-dom-server.edge.development.js","../../../node_modules/react-dom/cjs/react-dom-server.edge.production.js","../../../node_modules/react-dom/cjs/react-dom.development.js","../../../node_modules/react-dom/cjs/react-dom.production.js","../../../node_modules/react-dom/index.js","../../../node_modules/react-dom/package.json","../../../node_modules/react-dom/server.browser.js","../../../node_modules/react-dom/server.edge.js","../../../node_modules/react/cjs/react-jsx-runtime.development.js","../../../node_modules/react/cjs/react-jsx-runtime.production.js","../../../node_modules/react/cjs/react.development.js","../../../node_modules/react/cjs/react.production.js","../../../node_modules/react/index.js","../../../node_modules/react/jsx-runtime.js","../../../node_modules/react/package.json","../../../node_modules/styled-jsx/dist/index/index.js","../../../node_modules/styled-jsx/index.js","../../../node_modules/styled-jsx/package.json","../../../package.json","../../package.json","../chunks/326.js","../chunks/450.js","../chunks/616.js","../chunks/62.js","../webpack-runtime.js"]} \ No newline at end of file diff --git a/.next/server/pages/login.html b/.next/server/pages/login.html index cb102c8..79b85ab 100644 --- a/.next/server/pages/login.html +++ b/.next/server/pages/login.html @@ -1 +1 @@ - \ No newline at end of file +

登录

\ No newline at end of file diff --git a/.next/server/pages/news.html b/.next/server/pages/news.html index 40d3218..2e6bebf 100644 --- a/.next/server/pages/news.html +++ b/.next/server/pages/news.html @@ -1 +1 @@ - \ No newline at end of file +

新闻资讯

了解最新的产品动态、技术更新和行业资讯,掌握云加速服务的最新发展

5

新闻资讯

13

分类标签

实时

更新状态

最新资讯

最新

技术更新:HTTP/3 协议全面支持

我们正式宣布全面支持 HTTP/3 协议,为用户提供更快的网络传输体验。

技术更新HTTP/3
最新

产品发布:全新 AI 加速方案

推出基于 AI 路由的网络加速方案,全球节点智能择优。

发布产品
最新

平台升级维护公告

计划于 06/20 进行例行维护,届时服务可能短暂中断。

公告维护

找到 5 条新闻

热门

平台升级维护公告

计划于 06/20 进行例行维护,届时服务可能短暂中断。

公告维护
阅读全文
2 分钟阅读
\ No newline at end of file diff --git a/.next/server/pages/news.js.nft.json b/.next/server/pages/news.js.nft.json index a71a443..11f4d70 100644 --- a/.next/server/pages/news.js.nft.json +++ b/.next/server/pages/news.js.nft.json @@ -1 +1 @@ -{"version":1,"files":["../webpack-runtime.js","../chunks/616.js","../chunks/326.js","../chunks/450.js","../../../package.json"]} \ No newline at end of file +{"version":1,"files":["../../../content/news/_example.md","../../../content/news/global-expansion.md","../../../content/news/product-launch.md","../../../content/news/security-enhancement.md","../../../content/news/technology-update.md","../../../node_modules/@swc/helpers/_/_interop_require_wildcard/package.json","../../../node_modules/@swc/helpers/cjs/_interop_require_wildcard.cjs","../../../node_modules/@swc/helpers/package.json","../../../node_modules/client-only/index.js","../../../node_modules/client-only/package.json","../../../node_modules/esprima/dist/esprima.js","../../../node_modules/esprima/package.json","../../../node_modules/extend-shallow/index.js","../../../node_modules/extend-shallow/package.json","../../../node_modules/gray-matter/index.js","../../../node_modules/gray-matter/lib/defaults.js","../../../node_modules/gray-matter/lib/engine.js","../../../node_modules/gray-matter/lib/engines.js","../../../node_modules/gray-matter/lib/excerpt.js","../../../node_modules/gray-matter/lib/parse.js","../../../node_modules/gray-matter/lib/stringify.js","../../../node_modules/gray-matter/lib/to-file.js","../../../node_modules/gray-matter/lib/utils.js","../../../node_modules/gray-matter/package.json","../../../node_modules/is-extendable/index.js","../../../node_modules/is-extendable/package.json","../../../node_modules/js-yaml/index.js","../../../node_modules/js-yaml/lib/js-yaml.js","../../../node_modules/js-yaml/lib/js-yaml/common.js","../../../node_modules/js-yaml/lib/js-yaml/dumper.js","../../../node_modules/js-yaml/lib/js-yaml/exception.js","../../../node_modules/js-yaml/lib/js-yaml/loader.js","../../../node_modules/js-yaml/lib/js-yaml/mark.js","../../../node_modules/js-yaml/lib/js-yaml/schema.js","../../../node_modules/js-yaml/lib/js-yaml/schema/core.js","../../../node_modules/js-yaml/lib/js-yaml/schema/default_full.js","../../../node_modules/js-yaml/lib/js-yaml/schema/default_safe.js","../../../node_modules/js-yaml/lib/js-yaml/schema/failsafe.js","../../../node_modules/js-yaml/lib/js-yaml/schema/json.js","../../../node_modules/js-yaml/lib/js-yaml/type.js","../../../node_modules/js-yaml/lib/js-yaml/type/binary.js","../../../node_modules/js-yaml/lib/js-yaml/type/bool.js","../../../node_modules/js-yaml/lib/js-yaml/type/float.js","../../../node_modules/js-yaml/lib/js-yaml/type/int.js","../../../node_modules/js-yaml/lib/js-yaml/type/js/function.js","../../../node_modules/js-yaml/lib/js-yaml/type/js/regexp.js","../../../node_modules/js-yaml/lib/js-yaml/type/js/undefined.js","../../../node_modules/js-yaml/lib/js-yaml/type/map.js","../../../node_modules/js-yaml/lib/js-yaml/type/merge.js","../../../node_modules/js-yaml/lib/js-yaml/type/null.js","../../../node_modules/js-yaml/lib/js-yaml/type/omap.js","../../../node_modules/js-yaml/lib/js-yaml/type/pairs.js","../../../node_modules/js-yaml/lib/js-yaml/type/seq.js","../../../node_modules/js-yaml/lib/js-yaml/type/set.js","../../../node_modules/js-yaml/lib/js-yaml/type/str.js","../../../node_modules/js-yaml/lib/js-yaml/type/timestamp.js","../../../node_modules/js-yaml/package.json","../../../node_modules/kind-of/index.js","../../../node_modules/kind-of/package.json","../../../node_modules/next/dist/client/components/app-router-headers.js","../../../node_modules/next/dist/compiled/@opentelemetry/api/index.js","../../../node_modules/next/dist/compiled/@opentelemetry/api/package.json","../../../node_modules/next/dist/compiled/jsonwebtoken/index.js","../../../node_modules/next/dist/compiled/jsonwebtoken/package.json","../../../node_modules/next/dist/compiled/next-server/pages.runtime.prod.js","../../../node_modules/next/dist/lib/constants.js","../../../node_modules/next/dist/lib/interop-default.js","../../../node_modules/next/dist/lib/is-error.js","../../../node_modules/next/dist/lib/semver-noop.js","../../../node_modules/next/dist/server/app-render/async-local-storage.js","../../../node_modules/next/dist/server/app-render/work-async-storage-instance.js","../../../node_modules/next/dist/server/app-render/work-async-storage.external.js","../../../node_modules/next/dist/server/app-render/work-unit-async-storage-instance.js","../../../node_modules/next/dist/server/app-render/work-unit-async-storage.external.js","../../../node_modules/next/dist/server/lib/cache-handlers/default.external.js","../../../node_modules/next/dist/server/lib/incremental-cache/memory-cache.external.js","../../../node_modules/next/dist/server/lib/incremental-cache/shared-cache-controls.external.js","../../../node_modules/next/dist/server/lib/incremental-cache/tags-manifest.external.js","../../../node_modules/next/dist/server/lib/lru-cache.js","../../../node_modules/next/dist/server/lib/router-utils/instrumentation-globals.external.js","../../../node_modules/next/dist/server/lib/trace/constants.js","../../../node_modules/next/dist/server/lib/trace/tracer.js","../../../node_modules/next/dist/server/load-manifest.external.js","../../../node_modules/next/dist/server/response-cache/types.js","../../../node_modules/next/dist/shared/lib/deep-freeze.js","../../../node_modules/next/dist/shared/lib/is-plain-object.js","../../../node_modules/next/dist/shared/lib/is-thenable.js","../../../node_modules/next/dist/shared/lib/no-fallback-error.external.js","../../../node_modules/next/dist/shared/lib/page-path/normalize-data-path.js","../../../node_modules/next/dist/shared/lib/router/utils/add-path-prefix.js","../../../node_modules/next/dist/shared/lib/router/utils/format-url.js","../../../node_modules/next/dist/shared/lib/router/utils/html-bots.js","../../../node_modules/next/dist/shared/lib/router/utils/is-bot.js","../../../node_modules/next/dist/shared/lib/router/utils/parse-path.js","../../../node_modules/next/dist/shared/lib/router/utils/querystring.js","../../../node_modules/next/dist/shared/lib/router/utils/remove-trailing-slash.js","../../../node_modules/next/dist/shared/lib/utils.js","../../../node_modules/next/package.json","../../../node_modules/react-dom/cjs/react-dom-server-legacy.browser.development.js","../../../node_modules/react-dom/cjs/react-dom-server-legacy.browser.production.js","../../../node_modules/react-dom/cjs/react-dom-server.browser.development.js","../../../node_modules/react-dom/cjs/react-dom-server.browser.production.js","../../../node_modules/react-dom/cjs/react-dom-server.edge.development.js","../../../node_modules/react-dom/cjs/react-dom-server.edge.production.js","../../../node_modules/react-dom/cjs/react-dom.development.js","../../../node_modules/react-dom/cjs/react-dom.production.js","../../../node_modules/react-dom/index.js","../../../node_modules/react-dom/package.json","../../../node_modules/react-dom/server.browser.js","../../../node_modules/react-dom/server.edge.js","../../../node_modules/react/cjs/react-jsx-runtime.development.js","../../../node_modules/react/cjs/react-jsx-runtime.production.js","../../../node_modules/react/cjs/react.development.js","../../../node_modules/react/cjs/react.production.js","../../../node_modules/react/index.js","../../../node_modules/react/jsx-runtime.js","../../../node_modules/react/package.json","../../../node_modules/section-matter/index.js","../../../node_modules/section-matter/package.json","../../../node_modules/strip-bom-string/index.js","../../../node_modules/strip-bom-string/package.json","../../../node_modules/styled-jsx/dist/index/index.js","../../../node_modules/styled-jsx/index.js","../../../node_modules/styled-jsx/package.json","../../../package.json","../../package.json","../chunks/326.js","../chunks/450.js","../chunks/616.js","../chunks/864.js","../webpack-runtime.js"]} \ No newline at end of file diff --git a/.next/server/pages/pricing.html b/.next/server/pages/pricing.html index e3d0d40..30cc06f 100644 --- a/.next/server/pages/pricing.html +++ b/.next/server/pages/pricing.html @@ -1 +1 @@ -

基础版

¥100/月

  • 全球节点接入
  • 社区支持
选择

专业版

¥300/月

  • 智能路由
  • 高级面板
  • 邮件支持
推荐

企业版

¥800/月

  • 专属线路
  • 24/7 支持
  • 定制 SLA
选择
\ No newline at end of file +

灵活的定价方案

选择最适合您业务需求的方案,所有方案都包含免费试用和专业技术支持

基础版

适合个人用户和小型项目

¥100/月¥120
限时优惠
  • 全球 20+ 节点接入
  • 基础智能路由
  • 社区支持
  • 基础监控面板
  • 5GB 月流量
  • 标准 SLA
选择方案
最受欢迎

专业版

适合中小企业和成长型项目

¥300/月¥400
限时优惠
  • 全球 50+ 节点接入
  • 高级智能路由
  • 实时监控面板
  • 邮件 + 电话支持
  • 50GB 月流量
  • 高级安全防护
  • API 接口访问
  • 99.9% SLA 保障
立即开始

企业版

适合大型企业和关键业务

¥800/月¥1000
限时优惠
  • 全球 100+ 节点接入
  • 专属线路优化
  • 7×24 专业技术支持
  • 定制 SLA 协议
  • 无限流量
  • 企业级安全防护
  • 专属客户经理
  • 定制化解决方案
  • 99.99% SLA 保障
选择方案

为什么选择我们?

🆓

免费试用

所有方案都提供 15 天免费试用

💰

年付优惠

年付享受 88 折优惠,节省更多成本

🔄

随时升级

支持随时升级或降级,灵活调整

\ No newline at end of file diff --git a/.next/server/webpack-runtime.js b/.next/server/webpack-runtime.js index 876ca83..f28fd38 100644 --- a/.next/server/webpack-runtime.js +++ b/.next/server/webpack-runtime.js @@ -1 +1 @@ -(()=>{"use strict";var a={},b={};function c(d){var e=b[d];if(void 0!==e)return e.exports;var f=b[d]={exports:{}},g=!0;try{a[d](f,f.exports,c),g=!1}finally{g&&delete b[d]}return f.exports}c.m=a,c.n=a=>{var b=a&&a.__esModule?()=>a.default:()=>a;return c.d(b,{a:b}),b},c.d=(a,b)=>{for(var d in b)c.o(b,d)&&!c.o(a,d)&&Object.defineProperty(a,d,{enumerable:!0,get:b[d]})},c.f={},c.e=a=>Promise.all(Object.keys(c.f).reduce((b,d)=>(c.f[d](a,b),b),[])),c.u=a=>""+a+".js",c.o=(a,b)=>Object.prototype.hasOwnProperty.call(a,b),c.r=a=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(a,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(a,"__esModule",{value:!0})},c.X=(a,b,d)=>{var e=b;d||(b=a,d=()=>c(c.s=e)),b.map(c.e,c);var f=d();return void 0===f?a:f},(()=>{var a={311:1},b=b=>{var d=b.modules,e=b.ids,f=b.runtime;for(var g in d)c.o(d,g)&&(c.m[g]=d[g]);f&&f(c);for(var h=0;h{a[d]||(311!=d?b(require("./chunks/"+c.u(d))):a[d]=1)},module.exports=c,c.C=b})()})(); \ No newline at end of file +(()=>{"use strict";var a={},b={};function c(d){var e=b[d];if(void 0!==e)return e.exports;var f=b[d]={exports:{}},g=!0;try{a[d](f,f.exports,c),g=!1}finally{g&&delete b[d]}return f.exports}c.m=a,(()=>{var a="function"==typeof Symbol?Symbol("webpack queues"):"__webpack_queues__",b="function"==typeof Symbol?Symbol("webpack exports"):"__webpack_exports__",d="function"==typeof Symbol?Symbol("webpack error"):"__webpack_error__",e=a=>{a&&a.d<1&&(a.d=1,a.forEach(a=>a.r--),a.forEach(a=>a.r--?a.r++:a()))};c.a=(c,f,g)=>{g&&((h=[]).d=-1);var h,i,j,k,l=new Set,m=c.exports,n=new Promise((a,b)=>{k=b,j=a});n[b]=m,n[a]=a=>(h&&a(h),l.forEach(a),n.catch(a=>{})),c.exports=n,f(c=>{i=c.map(c=>{if(null!==c&&"object"==typeof c){if(c[a])return c;if(c.then){var f=[];f.d=0,c.then(a=>{g[b]=a,e(f)},a=>{g[d]=a,e(f)});var g={};return g[a]=a=>a(f),g}}var h={};return h[a]=a=>{},h[b]=c,h});var f,g=()=>i.map(a=>{if(a[d])throw a[d];return a[b]}),j=new Promise(b=>{(f=()=>b(g)).r=0;var c=a=>a!==h&&!l.has(a)&&(l.add(a),a&&!a.d&&(f.r++,a.push(f)));i.map(b=>b[a](c))});return f.r?j:g()},a=>(a?k(n[d]=a):j(m),e(h))),h&&h.d<0&&(h.d=0)}})(),c.n=a=>{var b=a&&a.__esModule?()=>a.default:()=>a;return c.d(b,{a:b}),b},c.d=(a,b)=>{for(var d in b)c.o(b,d)&&!c.o(a,d)&&Object.defineProperty(a,d,{enumerable:!0,get:b[d]})},c.f={},c.e=a=>Promise.all(Object.keys(c.f).reduce((b,d)=>(c.f[d](a,b),b),[])),c.u=a=>""+a+".js",c.o=(a,b)=>Object.prototype.hasOwnProperty.call(a,b),c.r=a=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(a,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(a,"__esModule",{value:!0})},c.X=(a,b,d)=>{var e=b;d||(b=a,d=()=>c(c.s=e)),b.map(c.e,c);var f=d();return void 0===f?a:f},(()=>{var a={311:1},b=b=>{var d=b.modules,e=b.ids,f=b.runtime;for(var g in d)c.o(d,g)&&(c.m[g]=d[g]);f&&f(c);for(var h=0;h{a[d]||(311!=d?b(require("./chunks/"+c.u(d))):a[d]=1)},module.exports=c,c.C=b})()})(); \ No newline at end of file diff --git a/.next/static/chunks/752-7be3646714fa7c4b.js b/.next/static/chunks/752-7be3646714fa7c4b.js deleted file mode 100644 index e1c97ed..0000000 --- a/.next/static/chunks/752-7be3646714fa7c4b.js +++ /dev/null @@ -1 +0,0 @@ -(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[752],{1026:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"useMergedRef",{enumerable:!0,get:function(){return l}});let n=r(4232);function l(e,t){let r=(0,n.useRef)(null),l=(0,n.useRef)(null);return(0,n.useCallback)(n=>{if(null===n){let e=r.current;e&&(r.current=null,e());let t=l.current;t&&(l.current=null,t())}else e&&(r.current=o(e,n)),t&&(l.current=o(t,n))},[e,t])}function o(e,t){if("function"!=typeof e)return e.current=t,()=>{e.current=null};{let r=e(t);return"function"==typeof r?r:()=>e(null)}}("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},1639:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),!function(e,t){for(var r in t)Object.defineProperty(e,r,{enumerable:!0,get:t[r]})}(t,{default:function(){return k},useLinkStatus:function(){return j}});let n=r(8365),l=r(7876),o=n._(r(4232)),u=r(6658),a=r(1851),f=r(6225),i=r(8407),c=r(2696),s=r(8265),d=r(2343),p=r(8940),h=r(7469),y=r(1026);r(3724);let b=new Set;function v(e,t,r,n){if((0,a.isLocalURL)(t)){if(!n.bypassPrefetchedCheck){let l=t+"%"+r+"%"+(void 0!==n.locale?n.locale:"locale"in e?e.locale:void 0);if(b.has(l))return;b.add(l)}e.prefetch(t,r,n).catch(e=>{})}}function g(e){return"string"==typeof e?e:(0,f.formatUrl)(e)}let m=o.default.forwardRef(function(e,t){let r,n,{href:f,as:b,children:m,prefetch:_=null,passHref:j,replace:k,shallow:M,scroll:C,locale:w,onClick:O,onNavigate:P,onMouseEnter:x,onTouchStart:E,legacyBehavior:L=!1,...R}=e;r=m,L&&("string"==typeof r||"number"==typeof r)&&(r=(0,l.jsx)("a",{children:r}));let A=o.default.useContext(s.RouterContext),I=!1!==_,{href:N,as:S}=o.default.useMemo(()=>{if(!A){let e=g(f);return{href:e,as:b?g(b):e}}let[e,t]=(0,u.resolveHref)(A,f,!0);return{href:e,as:b?(0,u.resolveHref)(A,b):t||e}},[A,f,b]),T=o.default.useRef(N),U=o.default.useRef(S);L&&(n=o.default.Children.only(r));let D=L?n&&"object"==typeof n&&n.ref:t,[K,W,z]=(0,d.useIntersection)({rootMargin:"200px"}),B=o.default.useCallback(e=>{(U.current!==S||T.current!==N)&&(z(),U.current=S,T.current=N),K(e)},[S,N,z,K]),H=(0,y.useMergedRef)(B,D);o.default.useEffect(()=>{A&&W&&I&&v(A,N,S,{locale:w})},[S,N,W,w,I,null==A?void 0:A.locale,A]);let Z={ref:H,onClick(e){L||"function"!=typeof O||O(e),L&&n.props&&"function"==typeof n.props.onClick&&n.props.onClick(e),A&&(e.defaultPrevented||function(e,t,r,n,l,o,u,f,i){let{nodeName:c}=e.currentTarget;if(!("A"===c.toUpperCase()&&function(e){let t=e.currentTarget.getAttribute("target");return t&&"_self"!==t||e.metaKey||e.ctrlKey||e.shiftKey||e.altKey||e.nativeEvent&&2===e.nativeEvent.which}(e)||e.currentTarget.hasAttribute("download"))){if(!(0,a.isLocalURL)(r)){l&&(e.preventDefault(),location.replace(r));return}e.preventDefault(),(()=>{if(i){let e=!1;if(i({preventDefault:()=>{e=!0}}),e)return}let e=null==u||u;"beforePopState"in t?t[l?"replace":"push"](r,n,{shallow:o,locale:f,scroll:e}):t[l?"replace":"push"](n||r,{scroll:e})})()}}(e,A,N,S,k,M,C,w,P))},onMouseEnter(e){L||"function"!=typeof x||x(e),L&&n.props&&"function"==typeof n.props.onMouseEnter&&n.props.onMouseEnter(e),A&&v(A,N,S,{locale:w,priority:!0,bypassPrefetchedCheck:!0})},onTouchStart:function(e){L||"function"!=typeof E||E(e),L&&n.props&&"function"==typeof n.props.onTouchStart&&n.props.onTouchStart(e),A&&v(A,N,S,{locale:w,priority:!0,bypassPrefetchedCheck:!0})}};if((0,i.isAbsoluteUrl)(S))Z.href=S;else if(!L||j||"a"===n.type&&!("href"in n.props)){let e=void 0!==w?w:null==A?void 0:A.locale;Z.href=(null==A?void 0:A.isLocaleDomain)&&(0,p.getDomainLocale)(S,e,null==A?void 0:A.locales,null==A?void 0:A.domainLocales)||(0,h.addBasePath)((0,c.addLocale)(S,e,null==A?void 0:A.defaultLocale))}return L?o.default.cloneElement(n,Z):(0,l.jsx)("a",{...R,...Z,children:r})}),_=(0,o.createContext)({pending:!1}),j=()=>(0,o.useContext)(_),k=m;("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},1713:(e,t,r)=>{"use strict";r.d(t,{A:()=>f});var n=r(4232);let l=e=>{let t=e.replace(/^([A-Z])|[\s-_]+(\w)/g,(e,t,r)=>r?r.toUpperCase():t.toLowerCase());return t.charAt(0).toUpperCase()+t.slice(1)},o=function(){for(var e=arguments.length,t=Array(e),r=0;r!!e&&""!==e.trim()&&r.indexOf(e)===t).join(" ").trim()};var u={xmlns:"http://www.w3.org/2000/svg",width:24,height:24,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"};let a=(0,n.forwardRef)((e,t)=>{let{color:r="currentColor",size:l=24,strokeWidth:a=2,absoluteStrokeWidth:f,className:i="",children:c,iconNode:s,...d}=e;return(0,n.createElement)("svg",{ref:t,...u,width:l,height:l,stroke:r,strokeWidth:f?24*Number(a)/Number(l):a,className:o("lucide",i),...!c&&!(e=>{for(let t in e)if(t.startsWith("aria-")||"role"===t||"title"===t)return!0})(d)&&{"aria-hidden":"true"},...d},[...s.map(e=>{let[t,r]=e;return(0,n.createElement)(t,r)}),...Array.isArray(c)?c:[c]])}),f=(e,t)=>{let r=(0,n.forwardRef)((r,u)=>{let{className:f,...i}=r;return(0,n.createElement)(a,{ref:u,iconNode:t,className:o("lucide-".concat(l(e).replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase()),"lucide-".concat(e),f),...i})});return r.displayName=l(e),r}},2343:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"useIntersection",{enumerable:!0,get:function(){return f}});let n=r(4232),l=r(4754),o="function"==typeof IntersectionObserver,u=new Map,a=[];function f(e){let{rootRef:t,rootMargin:r,disabled:f}=e,i=f||!o,[c,s]=(0,n.useState)(!1),d=(0,n.useRef)(null),p=(0,n.useCallback)(e=>{d.current=e},[]);return(0,n.useEffect)(()=>{if(o){if(i||c)return;let e=d.current;if(e&&e.tagName)return function(e,t,r){let{id:n,observer:l,elements:o}=function(e){let t,r={root:e.root||null,margin:e.rootMargin||""},n=a.find(e=>e.root===r.root&&e.margin===r.margin);if(n&&(t=u.get(n)))return t;let l=new Map;return t={id:r,observer:new IntersectionObserver(e=>{e.forEach(e=>{let t=l.get(e.target),r=e.isIntersecting||e.intersectionRatio>0;t&&r&&t(r)})},e),elements:l},a.push(r),u.set(r,t),t}(r);return o.set(e,t),l.observe(e),function(){if(o.delete(e),l.unobserve(e),0===o.size){l.disconnect(),u.delete(n);let e=a.findIndex(e=>e.root===n.root&&e.margin===n.margin);e>-1&&a.splice(e,1)}}}(e,e=>e&&s(e),{root:null==t?void 0:t.current,rootMargin:r})}else if(!c){let e=(0,l.requestIdleCallback)(()=>s(!0));return()=>(0,l.cancelIdleCallback)(e)}},[i,r,t,c,d.current]),[p,c,(0,n.useCallback)(()=>{s(!1)},[])]}("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},3724:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"errorOnce",{enumerable:!0,get:function(){return r}});let r=e=>{}},8230:(e,t,r)=>{e.exports=r(1639)},8447:(e,t,r)=>{"use strict";r.d(t,{A:()=>n});let n=(0,r(1713).A)("menu",[["path",{d:"M4 12h16",key:"1lakjw"}],["path",{d:"M4 18h16",key:"19g7jn"}],["path",{d:"M4 6h16",key:"1o0s65"}]])},8940:(e,t,r)=>{"use strict";function n(e,t,r,n){return!1}Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"getDomainLocale",{enumerable:!0,get:function(){return n}}),r(7810),("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)}}]); \ No newline at end of file diff --git a/.next/static/chunks/main-1d517099cd2b8fe7.js b/.next/static/chunks/main-1d517099cd2b8fe7.js deleted file mode 100644 index b8b36fe..0000000 --- a/.next/static/chunks/main-1d517099cd2b8fe7.js +++ /dev/null @@ -1 +0,0 @@ -(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[792],{72:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"ImageConfigContext",{enumerable:!0,get:function(){return o}});let n=r(4252)._(r(4232)),a=r(6904),o=n.default.createContext(a.imageConfigDefault)},95:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),!function(e,t){for(var r in t)Object.defineProperty(e,r,{enumerable:!0,get:t[r]})}(t,{APP_BUILD_MANIFEST:function(){return b},APP_CLIENT_INTERNALS:function(){return Q},APP_PATHS_MANIFEST:function(){return m},APP_PATH_ROUTES_MANIFEST:function(){return g},BARREL_OPTIMIZATION_PREFIX:function(){return X},BLOCKED_PAGES:function(){return U},BUILD_ID_FILE:function(){return D},BUILD_MANIFEST:function(){return E},CLIENT_PUBLIC_FILES_PATH:function(){return F},CLIENT_REFERENCE_MANIFEST:function(){return W},CLIENT_STATIC_FILES_PATH:function(){return B},CLIENT_STATIC_FILES_RUNTIME_AMP:function(){return Z},CLIENT_STATIC_FILES_RUNTIME_MAIN:function(){return K},CLIENT_STATIC_FILES_RUNTIME_MAIN_APP:function(){return $},CLIENT_STATIC_FILES_RUNTIME_POLYFILLS:function(){return et},CLIENT_STATIC_FILES_RUNTIME_POLYFILLS_SYMBOL:function(){return er},CLIENT_STATIC_FILES_RUNTIME_REACT_REFRESH:function(){return J},CLIENT_STATIC_FILES_RUNTIME_WEBPACK:function(){return ee},COMPILER_INDEXES:function(){return o},COMPILER_NAMES:function(){return a},CONFIG_FILES:function(){return L},DEFAULT_RUNTIME_WEBPACK:function(){return en},DEFAULT_SANS_SERIF_FONT:function(){return el},DEFAULT_SERIF_FONT:function(){return eu},DEV_CLIENT_MIDDLEWARE_MANIFEST:function(){return N},DEV_CLIENT_PAGES_MANIFEST:function(){return w},DYNAMIC_CSS_MANIFEST:function(){return Y},EDGE_RUNTIME_WEBPACK:function(){return ea},EDGE_UNSUPPORTED_NODE_APIS:function(){return ep},EXPORT_DETAIL:function(){return O},EXPORT_MARKER:function(){return v},FUNCTIONS_CONFIG_MANIFEST:function(){return y},IMAGES_MANIFEST:function(){return j},INTERCEPTION_ROUTE_REWRITE_MANIFEST:function(){return z},MIDDLEWARE_BUILD_MANIFEST:function(){return q},MIDDLEWARE_MANIFEST:function(){return C},MIDDLEWARE_REACT_LOADABLE_MANIFEST:function(){return V},MODERN_BROWSERSLIST_TARGET:function(){return n.default},NEXT_BUILTIN_DOCUMENT:function(){return H},NEXT_FONT_MANIFEST:function(){return R},PAGES_MANIFEST:function(){return h},PHASE_DEVELOPMENT_SERVER:function(){return f},PHASE_EXPORT:function(){return l},PHASE_INFO:function(){return p},PHASE_PRODUCTION_BUILD:function(){return s},PHASE_PRODUCTION_SERVER:function(){return c},PHASE_TEST:function(){return d},PRERENDER_MANIFEST:function(){return S},REACT_LOADABLE_MANIFEST:function(){return M},ROUTES_MANIFEST:function(){return T},RSC_MODULE_TYPES:function(){return ed},SERVER_DIRECTORY:function(){return x},SERVER_FILES_MANIFEST:function(){return A},SERVER_PROPS_ID:function(){return ei},SERVER_REFERENCE_MANIFEST:function(){return G},STATIC_PROPS_ID:function(){return eo},STATIC_STATUS_PAGES:function(){return es},STRING_LITERAL_DROP_BUNDLE:function(){return k},SUBRESOURCE_INTEGRITY_MANIFEST:function(){return P},SYSTEM_ENTRYPOINTS:function(){return eh},TRACE_OUTPUT_VERSION:function(){return ec},TURBOPACK_CLIENT_MIDDLEWARE_MANIFEST:function(){return I},TURBO_TRACE_DEFAULT_MEMORY_LIMIT:function(){return ef},UNDERSCORE_NOT_FOUND_ROUTE:function(){return i},UNDERSCORE_NOT_FOUND_ROUTE_ENTRY:function(){return u},WEBPACK_STATS:function(){return _}});let n=r(4252)._(r(877)),a={client:"client",server:"server",edgeServer:"edge-server"},o={[a.client]:0,[a.server]:1,[a.edgeServer]:2},i="/_not-found",u=""+i+"/page",l="phase-export",s="phase-production-build",c="phase-production-server",f="phase-development-server",d="phase-test",p="phase-info",h="pages-manifest.json",_="webpack-stats.json",m="app-paths-manifest.json",g="app-path-routes-manifest.json",E="build-manifest.json",b="app-build-manifest.json",y="functions-config-manifest.json",P="subresource-integrity-manifest",R="next-font-manifest",v="export-marker.json",O="export-detail.json",S="prerender-manifest.json",T="routes-manifest.json",j="images-manifest.json",A="required-server-files.json",w="_devPagesManifest.json",C="middleware-manifest.json",I="_clientMiddlewareManifest.json",N="_devMiddlewareManifest.json",M="react-loadable-manifest.json",x="server",L=["next.config.js","next.config.mjs","next.config.ts"],D="BUILD_ID",U=["/_document","/_app","/_error"],F="public",B="static",k="__NEXT_DROP_CLIENT_FILE__",H="__NEXT_BUILTIN_DOCUMENT__",X="__barrel_optimize__",W="client-reference-manifest",G="server-reference-manifest",q="middleware-build-manifest",V="middleware-react-loadable-manifest",z="interception-route-rewrite-manifest",Y="dynamic-css-manifest",K="main",$=""+K+"-app",Q="app-pages-internals",J="react-refresh",Z="amp",ee="webpack",et="polyfills",er=Symbol(et),en="webpack-runtime",ea="edge-runtime-webpack",eo="__N_SSG",ei="__N_SSP",eu={name:"Times New Roman",xAvgCharWidth:821,azAvgWidth:854.3953488372093,unitsPerEm:2048},el={name:"Arial",xAvgCharWidth:904,azAvgWidth:934.5116279069767,unitsPerEm:2048},es=["/500"],ec=1,ef=6e3,ed={client:"client",server:"server"},ep=["clearImmediate","setImmediate","BroadcastChannel","ByteLengthQueuingStrategy","CompressionStream","CountQueuingStrategy","DecompressionStream","DomException","MessageChannel","MessageEvent","MessagePort","ReadableByteStreamController","ReadableStreamBYOBRequest","ReadableStreamDefaultController","TransformStreamDefaultController","WritableStreamDefaultController"],eh=new Set([K,J,Z,$]);("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},178:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"denormalizePagePath",{enumerable:!0,get:function(){return o}});let n=r(1426),a=r(3416);function o(e){let t=(0,a.normalizePathSep)(e);return t.startsWith("/index/")&&!(0,n.isDynamicRoute)(t)?t.slice(6):"/index"!==t?t:"/"}},187:(e,t)=>{"use strict";function r(e,t){let r={};return Object.keys(e).forEach(n=>{t.includes(n)||(r[n]=e[n])}),r}Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"omit",{enumerable:!0,get:function(){return r}})},296:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),!function(e,t){for(var r in t)Object.defineProperty(e,r,{enumerable:!0,get:t[r]})}(t,{getSortedRouteObjects:function(){return a},getSortedRoutes:function(){return n}});class r{insert(e){this._insert(e.split("/").filter(Boolean),[],!1)}smoosh(){return this._smoosh()}_smoosh(e){void 0===e&&(e="/");let t=[...this.children.keys()].sort();null!==this.slugName&&t.splice(t.indexOf("[]"),1),null!==this.restSlugName&&t.splice(t.indexOf("[...]"),1),null!==this.optionalRestSlugName&&t.splice(t.indexOf("[[...]]"),1);let r=t.map(t=>this.children.get(t)._smoosh(""+e+t+"/")).reduce((e,t)=>[...e,...t],[]);if(null!==this.slugName&&r.push(...this.children.get("[]")._smoosh(e+"["+this.slugName+"]/")),!this.placeholder){let t="/"===e?"/":e.slice(0,-1);if(null!=this.optionalRestSlugName)throw Object.defineProperty(Error('You cannot define a route with the same specificity as a optional catch-all route ("'+t+'" and "'+t+"[[..."+this.optionalRestSlugName+']]").'),"__NEXT_ERROR_CODE",{value:"E458",enumerable:!1,configurable:!0});r.unshift(t)}return null!==this.restSlugName&&r.push(...this.children.get("[...]")._smoosh(e+"[..."+this.restSlugName+"]/")),null!==this.optionalRestSlugName&&r.push(...this.children.get("[[...]]")._smoosh(e+"[[..."+this.optionalRestSlugName+"]]/")),r}_insert(e,t,n){if(0===e.length){this.placeholder=!1;return}if(n)throw Object.defineProperty(Error("Catch-all must be the last part of the URL."),"__NEXT_ERROR_CODE",{value:"E392",enumerable:!1,configurable:!0});let a=e[0];if(a.startsWith("[")&&a.endsWith("]")){let r=a.slice(1,-1),i=!1;if(r.startsWith("[")&&r.endsWith("]")&&(r=r.slice(1,-1),i=!0),r.startsWith("…"))throw Object.defineProperty(Error("Detected a three-dot character ('…') at ('"+r+"'). Did you mean ('...')?"),"__NEXT_ERROR_CODE",{value:"E147",enumerable:!1,configurable:!0});if(r.startsWith("...")&&(r=r.substring(3),n=!0),r.startsWith("[")||r.endsWith("]"))throw Object.defineProperty(Error("Segment names may not start or end with extra brackets ('"+r+"')."),"__NEXT_ERROR_CODE",{value:"E421",enumerable:!1,configurable:!0});if(r.startsWith("."))throw Object.defineProperty(Error("Segment names may not start with erroneous periods ('"+r+"')."),"__NEXT_ERROR_CODE",{value:"E288",enumerable:!1,configurable:!0});function o(e,r){if(null!==e&&e!==r)throw Object.defineProperty(Error("You cannot use different slug names for the same dynamic path ('"+e+"' !== '"+r+"')."),"__NEXT_ERROR_CODE",{value:"E337",enumerable:!1,configurable:!0});t.forEach(e=>{if(e===r)throw Object.defineProperty(Error('You cannot have the same slug name "'+r+'" repeat within a single dynamic path'),"__NEXT_ERROR_CODE",{value:"E247",enumerable:!1,configurable:!0});if(e.replace(/\W/g,"")===a.replace(/\W/g,""))throw Object.defineProperty(Error('You cannot have the slug names "'+e+'" and "'+r+'" differ only by non-word symbols within a single dynamic path'),"__NEXT_ERROR_CODE",{value:"E499",enumerable:!1,configurable:!0})}),t.push(r)}if(n)if(i){if(null!=this.restSlugName)throw Object.defineProperty(Error('You cannot use both an required and optional catch-all route at the same level ("[...'+this.restSlugName+']" and "'+e[0]+'" ).'),"__NEXT_ERROR_CODE",{value:"E299",enumerable:!1,configurable:!0});o(this.optionalRestSlugName,r),this.optionalRestSlugName=r,a="[[...]]"}else{if(null!=this.optionalRestSlugName)throw Object.defineProperty(Error('You cannot use both an optional and required catch-all route at the same level ("[[...'+this.optionalRestSlugName+']]" and "'+e[0]+'").'),"__NEXT_ERROR_CODE",{value:"E300",enumerable:!1,configurable:!0});o(this.restSlugName,r),this.restSlugName=r,a="[...]"}else{if(i)throw Object.defineProperty(Error('Optional route parameters are not yet supported ("'+e[0]+'").'),"__NEXT_ERROR_CODE",{value:"E435",enumerable:!1,configurable:!0});o(this.slugName,r),this.slugName=r,a="[]"}}this.children.has(a)||this.children.set(a,new r),this.children.get(a)._insert(e.slice(1),t,n)}constructor(){this.placeholder=!0,this.children=new Map,this.slugName=null,this.restSlugName=null,this.optionalRestSlugName=null}}function n(e){let t=new r;return e.forEach(e=>t.insert(e)),t.smoosh()}function a(e,t){let r={},a=[];for(let n=0;ne[r[t]])}},546:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"warnOnce",{enumerable:!0,get:function(){return r}});let r=e=>{}},641:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"default",{enumerable:!0,get:function(){return d}});let n=r(4252),a=r(7469),o=r(3872),i=n._(r(8804)),u=r(2696),l=r(8346),s=r(9960),c=r(9517),f=r(9591);r(95);class d{getPageList(){return(0,f.getClientBuildManifest)().then(e=>e.sortedPages)}getMiddleware(){return window.__MIDDLEWARE_MATCHERS=[],window.__MIDDLEWARE_MATCHERS}getDataHref(e){let{asPath:t,href:r,locale:n}=e,{pathname:f,query:d,search:p}=(0,s.parseRelativeUrl)(r),{pathname:h}=(0,s.parseRelativeUrl)(t),_=(0,c.removeTrailingSlash)(f);if("/"!==_[0])throw Object.defineProperty(Error('Route name should start with a "/", got "'+_+'"'),"__NEXT_ERROR_CODE",{value:"E303",enumerable:!1,configurable:!0});var m=e.skipInterpolation?h:(0,l.isDynamicRoute)(_)?(0,o.interpolateAs)(f,h,d).result:_;let g=(0,i.default)((0,c.removeTrailingSlash)((0,u.addLocale)(m,n)),".json");return(0,a.addBasePath)("/_next/data/"+this.buildId+g+p,!0)}_isSsg(e){return this.promisedSsgManifest.then(t=>t.has(e))}loadPage(e){return this.routeLoader.loadRoute(e).then(e=>{if("component"in e)return{page:e.component,mod:e.exports,styleSheets:e.styles.map(e=>({href:e.href,text:e.content}))};throw e.error})}prefetch(e){return this.routeLoader.prefetch(e)}constructor(e,t){this.routeLoader=(0,f.createRouteLoader)(t),this.buildId=e,this.assetPrefix=t,this.promisedSsgManifest=new Promise(e=>{window.__SSG_MANIFEST?e(window.__SSG_MANIFEST):window.__SSG_MANIFEST_CB=()=>{e(window.__SSG_MANIFEST)}})}}("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},692:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),!function(e,t){for(var r in t)Object.defineProperty(e,r,{enumerable:!0,get:t[r]})}(t,{PathnameContextProviderAdapter:function(){return p},adaptForAppRouterInstance:function(){return c},adaptForPathParams:function(){return d},adaptForSearchParams:function(){return f}});let n=r(8365),a=r(7876),o=n._(r(4232)),i=r(6394),u=r(1426),l=r(8400),s=r(9645);function c(e){return{back(){e.back()},forward(){e.forward()},refresh(){e.reload()},hmrRefresh(){},push(t,r){let{scroll:n}=void 0===r?{}:r;e.push(t,void 0,{scroll:n})},replace(t,r){let{scroll:n}=void 0===r?{}:r;e.replace(t,void 0,{scroll:n})},prefetch(t){e.prefetch(t)}}}function f(e){return e.isReady&&e.query?(0,l.asPathToSearchParams)(e.asPath):new URLSearchParams}function d(e){if(!e.isReady||!e.query)return null;let t={};for(let r of Object.keys((0,s.getRouteRegex)(e.pathname).groups))t[r]=e.query[r];return t}function p(e){let{children:t,router:r,...n}=e,l=(0,o.useRef)(n.isAutoExport),s=(0,o.useMemo)(()=>{let e,t=l.current;if(t&&(l.current=!1),(0,u.isDynamicRoute)(r.pathname)&&(r.isFallback||t&&!r.isReady))return null;try{e=new URL(r.asPath,"http://f")}catch(e){return"/"}return e.pathname},[r.asPath,r.isFallback,r.isReady,r.pathname]);return(0,a.jsx)(i.PathnameContext.Provider,{value:s,children:t})}},795:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),!function(e,t){for(var r in t)Object.defineProperty(e,r,{enumerable:!0,get:t[r]})}(t,{RouteAnnouncer:function(){return l},default:function(){return s}});let n=r(4252),a=r(7876),o=n._(r(4232)),i=r(8253),u={border:0,clip:"rect(0 0 0 0)",height:"1px",margin:"-1px",overflow:"hidden",padding:0,position:"absolute",top:0,width:"1px",whiteSpace:"nowrap",wordWrap:"normal"},l=()=>{let{asPath:e}=(0,i.useRouter)(),[t,r]=o.default.useState(""),n=o.default.useRef(e);return o.default.useEffect(()=>{if(n.current!==e)if(n.current=e,document.title)r(document.title);else{var t;let n=document.querySelector("h1");r((null!=(t=null==n?void 0:n.innerText)?t:null==n?void 0:n.textContent)||e)}},[e]),(0,a.jsx)("p",{"aria-live":"assertive",id:"__next-route-announcer__",role:"alert",style:u,children:t})},s=l;("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},866:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"hasBasePath",{enumerable:!0,get:function(){return a}});let n=r(3563);function a(e){return(0,n.pathHasPrefix)(e,"")}("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},877:e=>{"use strict";e.exports=["chrome 64","edge 79","firefox 67","opera 51","safari 12"]},919:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"formatNextPathnameInfo",{enumerable:!0,get:function(){return u}});let n=r(9517),a=r(5214),o=r(2091),i=r(7986);function u(e){let t=(0,i.addLocale)(e.pathname,e.locale,e.buildId?void 0:e.defaultLocale,e.ignorePrefix);return(e.buildId||!e.trailingSlash)&&(t=(0,n.removeTrailingSlash)(t)),e.buildId&&(t=(0,o.addPathSuffix)((0,a.addPathPrefix)(t,"/_next/data/"+e.buildId),"/"===e.pathname?"index.json":".json")),t=(0,a.addPathPrefix)(t,e.basePath),!e.buildId&&e.trailingSlash?t.endsWith("/")?t:(0,o.addPathSuffix)(t,"/"):(0,n.removeTrailingSlash)(t)}},1039:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"detectDomainLocale",{enumerable:!0,get:function(){return r}});let r=function(){for(var e=arguments.length,t=Array(e),r=0;r{"trimStart"in String.prototype||(String.prototype.trimStart=String.prototype.trimLeft),"trimEnd"in String.prototype||(String.prototype.trimEnd=String.prototype.trimRight),"description"in Symbol.prototype||Object.defineProperty(Symbol.prototype,"description",{configurable:!0,get:function(){var e=/\((.*)\)/.exec(this.toString());return e?e[1]:void 0}}),Array.prototype.flat||(Array.prototype.flat=function(e,t){return t=this.concat.apply([],this),e>1&&t.some(Array.isArray)?t.flat(e-1):t},Array.prototype.flatMap=function(e,t){return this.map(e,t).flat()}),Promise.prototype.finally||(Promise.prototype.finally=function(e){if("function"!=typeof e)return this.then(e,e);var t=this.constructor||Promise;return this.then(function(r){return t.resolve(e()).then(function(){return r})},function(r){return t.resolve(e()).then(function(){throw r})})}),Object.fromEntries||(Object.fromEntries=function(e){return Array.from(e).reduce(function(e,t){return e[t[0]]=t[1],e},{})}),Array.prototype.at||(Array.prototype.at=function(e){var t=Math.trunc(e)||0;if(t<0&&(t+=this.length),!(t<0||t>=this.length))return this[t]}),Object.hasOwn||(Object.hasOwn=function(e,t){if(null==e)throw TypeError("Cannot convert undefined or null to object");return Object.prototype.hasOwnProperty.call(Object(e),t)}),"canParse"in URL||(URL.canParse=function(e,t){try{return new URL(e,t),!0}catch(e){return!1}})},1426:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),!function(e,t){for(var r in t)Object.defineProperty(e,r,{enumerable:!0,get:t[r]})}(t,{getSortedRouteObjects:function(){return n.getSortedRouteObjects},getSortedRoutes:function(){return n.getSortedRoutes},isDynamicRoute:function(){return a.isDynamicRoute}});let n=r(296),a=r(8346)},1530:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),!function(e,t){for(var r in t)Object.defineProperty(e,r,{enumerable:!0,get:t[r]})}(t,{HTML_LIMITED_BOT_UA_RE:function(){return n.HTML_LIMITED_BOT_UA_RE},HTML_LIMITED_BOT_UA_RE_STRING:function(){return o},getBotType:function(){return l},isBot:function(){return u}});let n=r(6032),a=/google/i,o=n.HTML_LIMITED_BOT_UA_RE.source;function i(e){return n.HTML_LIMITED_BOT_UA_RE.test(e)}function u(e){return a.test(e)||i(e)}function l(e){return a.test(e)?"dom":i(e)?"html":void 0}},1670:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"isNextRouterError",{enumerable:!0,get:function(){return o}});let n=r(3794),a=r(5318);function o(e){return(0,a.isRedirectError)(e)||(0,n.isHTTPAccessFallbackError)(e)}("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},1851:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"isLocalURL",{enumerable:!0,get:function(){return o}});let n=r(8407),a=r(866);function o(e){if(!(0,n.isAbsoluteUrl)(e))return!0;try{let t=(0,n.getLocationOrigin)(),r=new URL(e,t);return r.origin===t&&(0,a.hasBasePath)(r.pathname)}catch(e){return!1}}},2091:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"addPathSuffix",{enumerable:!0,get:function(){return a}});let n=r(8059);function a(e,t){if(!e.startsWith("/")||!t)return e;let{pathname:r,query:a,hash:o}=(0,n.parsePath)(e);return""+r+t+a+o}},2193:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),r(6919),r(7647);let n=r(6656);window.next={version:n.version,get router(){return n.router},emitter:n.emitter},(0,n.initialize)({}).then(()=>(0,n.hydrate)()).catch(console.error),("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},2326:(e,t)=>{"use strict";function r(e){return"/api"===e||!!(null==e?void 0:e.startsWith("/api/"))}Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"isAPIRoute",{enumerable:!0,get:function(){return r}})},2696:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"addLocale",{enumerable:!0,get:function(){return n}}),r(7810);let n=function(e){for(var t=arguments.length,r=Array(t>1?t-1:0),n=1;n{"use strict";function r(e){return"("===e[0]&&e.endsWith(")")}function n(e){return e.startsWith("@")&&"@children"!==e}function a(e,t){if(e.includes(o)){let e=JSON.stringify(t);return"{}"!==e?o+"?"+e:o}return e}Object.defineProperty(t,"__esModule",{value:!0}),!function(e,t){for(var r in t)Object.defineProperty(e,r,{enumerable:!0,get:t[r]})}(t,{DEFAULT_SEGMENT_KEY:function(){return i},PAGE_SEGMENT_KEY:function(){return o},addSearchParamsIfPageSegment:function(){return a},isGroupSegment:function(){return r},isParallelRouteSegment:function(){return n}});let o="__PAGE__",i="__DEFAULT__"},2875:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),!function(e,t){for(var r in t)Object.defineProperty(e,r,{enumerable:!0,get:t[r]})}(t,{AppRouterContext:function(){return a},GlobalLayoutRouterContext:function(){return i},LayoutRouterContext:function(){return o},MissingSlotContext:function(){return l},TemplateContext:function(){return u}});let n=r(4252)._(r(4232)),a=n.default.createContext(null),o=n.default.createContext(null),i=n.default.createContext(null),u=n.default.createContext(null),l=n.default.createContext(new Set)},3137:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"escapeStringRegexp",{enumerable:!0,get:function(){return a}});let r=/[|\\{}()[\]^$+*?.-]/,n=/[|\\{}()[\]^$+*?.-]/g;function a(e){return r.test(e)?e.replace(n,"\\$&"):e}},3365:(e,t,r)=>{"use strict";function n(e,t){return e}Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"removeLocale",{enumerable:!0,get:function(){return n}}),r(8059),("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},3416:(e,t)=>{"use strict";function r(e){return e.replace(/\\/g,"/")}Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"normalizePathSep",{enumerable:!0,get:function(){return r}})},3420:(e,t)=>{"use strict";let r;Object.defineProperty(t,"__esModule",{value:!0}),!function(e,t){for(var r in t)Object.defineProperty(e,r,{enumerable:!0,get:t[r]})}(t,{default:function(){return n},setConfig:function(){return a}});let n=()=>r;function a(e){r=e}},3498:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"getNextPathnameInfo",{enumerable:!0,get:function(){return i}});let n=r(6237),a=r(4385),o=r(3563);function i(e,t){var r,i;let{basePath:u,i18n:l,trailingSlash:s}=null!=(r=t.nextConfig)?r:{},c={pathname:e,trailingSlash:"/"!==e?e.endsWith("/"):s};u&&(0,o.pathHasPrefix)(c.pathname,u)&&(c.pathname=(0,a.removePathPrefix)(c.pathname,u),c.basePath=u);let f=c.pathname;if(c.pathname.startsWith("/_next/data/")&&c.pathname.endsWith(".json")){let e=c.pathname.replace(/^\/_next\/data\//,"").replace(/\.json$/,"").split("/");c.buildId=e[0],f="index"!==e[1]?"/"+e.slice(1).join("/"):"/",!0===t.parseData&&(c.pathname=f)}if(l){let e=t.i18nProvider?t.i18nProvider.analyze(c.pathname):(0,n.normalizeLocalePath)(c.pathname,l.locales);c.locale=e.detectedLocale,c.pathname=null!=(i=e.pathname)?i:c.pathname,!e.detectedLocale&&c.buildId&&(e=t.i18nProvider?t.i18nProvider.analyze(f):(0,n.normalizeLocalePath)(f,l.locales)).detectedLocale&&(c.locale=e.detectedLocale)}return c}},3542:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"default",{enumerable:!0,get:function(){return i}});let n=r(4252)._(r(8460));class a{end(e){if("ended"===this.state.state)throw Object.defineProperty(Error("Span has already ended"),"__NEXT_ERROR_CODE",{value:"E17",enumerable:!1,configurable:!0});this.state={state:"ended",endTime:null!=e?e:Date.now()},this.onSpanEnd(this)}constructor(e,t,r){var n,a;this.name=e,this.attributes=null!=(n=t.attributes)?n:{},this.startTime=null!=(a=t.startTime)?a:Date.now(),this.onSpanEnd=r,this.state={state:"inprogress"}}}class o{startSpan(e,t){return new a(e,t,this.handleSpanEnd)}onSpanEnd(e){return this._emitter.on("spanend",e),()=>{this._emitter.off("spanend",e)}}constructor(){this._emitter=(0,n.default)(),this.handleSpanEnd=e=>{this._emitter.emit("spanend",e)}}}let i=new o;("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},3563:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"pathHasPrefix",{enumerable:!0,get:function(){return a}});let n=r(8059);function a(e,t){if("string"!=typeof e)return!1;let{pathname:r}=(0,n.parsePath)(e);return r===t||r.startsWith(t+"/")}},3794:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),!function(e,t){for(var r in t)Object.defineProperty(e,r,{enumerable:!0,get:t[r]})}(t,{HTTPAccessErrorStatus:function(){return r},HTTP_ERROR_FALLBACK_ERROR_CODE:function(){return a},getAccessFallbackErrorTypeByStatus:function(){return u},getAccessFallbackHTTPStatus:function(){return i},isHTTPAccessFallbackError:function(){return o}});let r={NOT_FOUND:404,FORBIDDEN:403,UNAUTHORIZED:401},n=new Set(Object.values(r)),a="NEXT_HTTP_ERROR_FALLBACK";function o(e){if("object"!=typeof e||null===e||!("digest"in e)||"string"!=typeof e.digest)return!1;let[t,r]=e.digest.split(";");return t===a&&n.has(Number(r))}function i(e){return Number(e.digest.split(";")[1])}function u(e){switch(e){case 401:return"unauthorized";case 403:return"forbidden";case 404:return"not-found";default:return}}("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},3872:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"interpolateAs",{enumerable:!0,get:function(){return o}});let n=r(6808),a=r(9645);function o(e,t,r){let o="",i=(0,a.getRouteRegex)(e),u=i.groups,l=(t!==e?(0,n.getRouteMatcher)(i)(t):"")||r;o=e;let s=Object.keys(u);return s.every(e=>{let t=l[e]||"",{repeat:r,optional:n}=u[e],a="["+(r?"...":"")+e+"]";return n&&(a=(t?"":"/")+"["+a+"]"),r&&!Array.isArray(t)&&(t=[t]),(n||e in l)&&(o=o.replace(a,r?t.map(e=>encodeURIComponent(e)).join("/"):encodeURIComponent(t))||"/")})||(o=""),{params:s,result:o}}},4014:(e,t)=>{"use strict";function r(e,t){let r=Object.keys(e);if(r.length!==Object.keys(t).length)return!1;for(let n=r.length;n--;){let a=r[n];if("query"===a){let r=Object.keys(e.query);if(r.length!==Object.keys(t.query).length)return!1;for(let n=r.length;n--;){let a=r[n];if(!t.query.hasOwnProperty(a)||e.query[a]!==t.query[a])return!1}}else if(!t.hasOwnProperty(a)||e[a]!==t[a])return!1}return!0}Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"compareRouterStates",{enumerable:!0,get:function(){return r}})},4020:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),!function(e,t){for(var r in t)Object.defineProperty(e,r,{enumerable:!0,get:t[r]})}(t,{normalizeAppPath:function(){return o},normalizeRscURL:function(){return i}});let n=r(7465),a=r(2835);function o(e){return(0,n.ensureLeadingSlash)(e.split("/").reduce((e,t,r,n)=>!t||(0,a.isGroupSegment)(t)||"@"===t[0]||("page"===t||"route"===t)&&r===n.length-1?e:e+"/"+t,""))}function i(e){return e.replace(/\.rsc($|\?)/,"$1")}},4030:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),!function(e,t){for(var r in t)Object.defineProperty(e,r,{enumerable:!0,get:t[r]})}(t,{isRecoverableError:function(){return l},onRecoverableError:function(){return s}});let n=r(4252),a=r(5346),o=n._(r(6240)),i=r(9898),u=new WeakSet;function l(e){return u.has(e)}let s=(e,t)=>{let r=(0,o.default)(e)&&"cause"in e?e.cause:e;(0,a.isBailoutToCSRError)(r)||(0,i.reportGlobalError)(r)};("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},4252:(e,t,r)=>{"use strict";function n(e){return e&&e.__esModule?e:{default:e}}r.r(t),r.d(t,{_:()=>n})},4385:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"removePathPrefix",{enumerable:!0,get:function(){return a}});let n=r(3563);function a(e,t){if(!(0,n.pathHasPrefix)(e,t))return e;let r=e.slice(t.length);return r.startsWith("/")?r:"/"+r}},4571:(e,t,r)=>{"use strict";function n(e,t){if(void 0===t&&(t={}),t.onlyHashChange)return void e();let r=document.documentElement;r.dataset.scrollBehavior;let n=r.style.scrollBehavior;r.style.scrollBehavior="auto",t.dontForceLayout||r.getClientRects(),e(),r.style.scrollBehavior=n}Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"disableSmoothScrollDuringRouteTransition",{enumerable:!0,get:function(){return n}}),r(546)},4754:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),!function(e,t){for(var r in t)Object.defineProperty(e,r,{enumerable:!0,get:t[r]})}(t,{cancelIdleCallback:function(){return n},requestIdleCallback:function(){return r}});let r="undefined"!=typeof self&&self.requestIdleCallback&&self.requestIdleCallback.bind(window)||function(e){let t=Date.now();return self.setTimeout(function(){e({didTimeout:!1,timeRemaining:function(){return Math.max(0,50-(Date.now()-t))}})},1)},n="undefined"!=typeof self&&self.cancelIdleCallback&&self.cancelIdleCallback.bind(window)||function(e){return clearTimeout(e)};("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},4929:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),!function(e,t){for(var r in t)Object.defineProperty(e,r,{enumerable:!0,get:t[r]})}(t,{createKey:function(){return G},default:function(){return z},matchesMiddleware:function(){return D}});let n=r(4252),a=r(8365),o=r(9517),i=r(9591),u=r(7195),l=a._(r(6240)),s=r(178),c=r(6237),f=n._(r(8460)),d=r(8407),p=r(8346),h=r(9960),_=r(6808),m=r(9645),g=r(6225);r(1039);let E=r(8059),b=r(2696),y=r(3365),P=r(6814),R=r(7469),v=r(866),O=r(6658),S=r(2326),T=r(3498),j=r(919),A=r(4014),w=r(1851),C=r(1530),I=r(187),N=r(3872),M=r(4571),x=r(9308);function L(){return Object.assign(Object.defineProperty(Error("Route Cancelled"),"__NEXT_ERROR_CODE",{value:"E315",enumerable:!1,configurable:!0}),{cancelled:!0})}async function D(e){let t=await Promise.resolve(e.router.pageLoader.getMiddleware());if(!t)return!1;let{pathname:r}=(0,E.parsePath)(e.asPath),n=(0,v.hasBasePath)(r)?(0,P.removeBasePath)(r):r,a=(0,R.addBasePath)((0,b.addLocale)(n,e.locale));return t.some(e=>new RegExp(e.regexp).test(a))}function U(e){let t=(0,d.getLocationOrigin)();return e.startsWith(t)?e.substring(t.length):e}function F(e,t,r){let[n,a]=(0,O.resolveHref)(e,t,!0),o=(0,d.getLocationOrigin)(),i=n.startsWith(o),u=a&&a.startsWith(o);n=U(n),a=a?U(a):a;let l=i?n:(0,R.addBasePath)(n),s=r?U((0,O.resolveHref)(e,r)):a||n;return{url:l,as:u?s:(0,R.addBasePath)(s)}}function B(e,t){let r=(0,o.removeTrailingSlash)((0,s.denormalizePagePath)(e));return"/404"===r||"/_error"===r?e:(t.includes(r)||t.some(t=>{if((0,p.isDynamicRoute)(t)&&(0,m.getRouteRegex)(t).re.test(r))return e=t,!0}),(0,o.removeTrailingSlash)(e))}async function k(e){if(!await D(e)||!e.fetchData)return null;let t=await e.fetchData(),r=await function(e,t,r){let n={basePath:r.router.basePath,i18n:{locales:r.router.locales},trailingSlash:!1},a=t.headers.get("x-nextjs-rewrite"),u=a||t.headers.get("x-nextjs-matched-path"),l=t.headers.get(x.MATCHED_PATH_HEADER);if(!l||u||l.includes("__next_data_catchall")||l.includes("/_error")||l.includes("/404")||(u=l),u){if(u.startsWith("/")){let t=(0,h.parseRelativeUrl)(u),l=(0,T.getNextPathnameInfo)(t.pathname,{nextConfig:n,parseData:!0}),s=(0,o.removeTrailingSlash)(l.pathname);return Promise.all([r.router.pageLoader.getPageList(),(0,i.getClientBuildManifest)()]).then(o=>{let[i,{__rewrites:u}]=o,f=(0,b.addLocale)(l.pathname,l.locale);if((0,p.isDynamicRoute)(f)||!a&&i.includes((0,c.normalizeLocalePath)((0,P.removeBasePath)(f),r.router.locales).pathname)){let r=(0,T.getNextPathnameInfo)((0,h.parseRelativeUrl)(e).pathname,{nextConfig:n,parseData:!0});t.pathname=f=(0,R.addBasePath)(r.pathname)}if(!i.includes(s)){let e=B(s,i);e!==s&&(s=e)}let d=i.includes(s)?s:B((0,c.normalizeLocalePath)((0,P.removeBasePath)(t.pathname),r.router.locales).pathname,i);if((0,p.isDynamicRoute)(d)){let e=(0,_.getRouteMatcher)((0,m.getRouteRegex)(d))(f);Object.assign(t.query,e||{})}return{type:"rewrite",parsedAs:t,resolvedHref:d}})}let t=(0,E.parsePath)(e);return Promise.resolve({type:"redirect-external",destination:""+(0,j.formatNextPathnameInfo)({...(0,T.getNextPathnameInfo)(t.pathname,{nextConfig:n,parseData:!0}),defaultLocale:r.router.defaultLocale,buildId:""})+t.query+t.hash})}let s=t.headers.get("x-nextjs-redirect");if(s){if(s.startsWith("/")){let e=(0,E.parsePath)(s),t=(0,j.formatNextPathnameInfo)({...(0,T.getNextPathnameInfo)(e.pathname,{nextConfig:n,parseData:!0}),defaultLocale:r.router.defaultLocale,buildId:""});return Promise.resolve({type:"redirect-internal",newAs:""+t+e.query+e.hash,newUrl:""+t+e.query+e.hash})}return Promise.resolve({type:"redirect-external",destination:s})}return Promise.resolve({type:"next"})}(t.dataHref,t.response,e);return{dataHref:t.dataHref,json:t.json,response:t.response,text:t.text,cacheKey:t.cacheKey,effect:r}}let H=Symbol("SSG_DATA_NOT_FOUND");function X(e){try{return JSON.parse(e)}catch(e){return null}}function W(e){let{dataHref:t,inflightCache:r,isPrefetch:n,hasMiddleware:a,isServerRender:o,parseJSON:u,persistCache:l,isBackground:s,unstable_skipClientCache:c}=e,{href:f}=new URL(t,window.location.href),d=e=>{var s;return(function e(t,r,n){return fetch(t,{credentials:"same-origin",method:n.method||"GET",headers:Object.assign({},n.headers,{"x-nextjs-data":"1"})}).then(a=>!a.ok&&r>1&&a.status>=500?e(t,r-1,n):a)})(t,o?3:1,{headers:Object.assign({},n?{purpose:"prefetch"}:{},n&&a?{"x-middleware-prefetch":"1"}:{},{}),method:null!=(s=null==e?void 0:e.method)?s:"GET"}).then(r=>r.ok&&(null==e?void 0:e.method)==="HEAD"?{dataHref:t,response:r,text:"",json:{},cacheKey:f}:r.text().then(e=>{if(!r.ok){if(a&&[301,302,307,308].includes(r.status))return{dataHref:t,response:r,text:e,json:{},cacheKey:f};if(404===r.status){var n;if(null==(n=X(e))?void 0:n.notFound)return{dataHref:t,json:{notFound:H},response:r,text:e,cacheKey:f}}let u=Object.defineProperty(Error("Failed to load static props"),"__NEXT_ERROR_CODE",{value:"E124",enumerable:!1,configurable:!0});throw o||(0,i.markAssetError)(u),u}return{dataHref:t,json:u?X(e):null,response:r,text:e,cacheKey:f}})).then(e=>(l&&"no-cache"!==e.response.headers.get("x-middleware-cache")||delete r[f],e)).catch(e=>{throw c||delete r[f],("Failed to fetch"===e.message||"NetworkError when attempting to fetch resource."===e.message||"Load failed"===e.message)&&(0,i.markAssetError)(e),e})};return c&&l?d({}).then(e=>("no-cache"!==e.response.headers.get("x-middleware-cache")&&(r[f]=Promise.resolve(e)),e)):void 0!==r[f]?r[f]:r[f]=d(s?{method:"HEAD"}:{})}function G(){return Math.random().toString(36).slice(2,10)}function q(e){let{url:t,router:r}=e;if(t===(0,R.addBasePath)((0,b.addLocale)(r.asPath,r.locale)))throw Object.defineProperty(Error("Invariant: attempted to hard navigate to the same URL "+t+" "+location.href),"__NEXT_ERROR_CODE",{value:"E282",enumerable:!1,configurable:!0});window.location.href=t}let V=e=>{let{route:t,router:r}=e,n=!1,a=r.clc=()=>{n=!0};return()=>{if(n){let e=Object.defineProperty(Error('Abort fetching component for route: "'+t+'"'),"__NEXT_ERROR_CODE",{value:"E483",enumerable:!1,configurable:!0});throw e.cancelled=!0,e}a===r.clc&&(r.clc=null)}};class z{reload(){window.location.reload()}back(){window.history.back()}forward(){window.history.forward()}push(e,t,r){return void 0===r&&(r={}),{url:e,as:t}=F(this,e,t),this.change("pushState",e,t,r)}replace(e,t,r){return void 0===r&&(r={}),{url:e,as:t}=F(this,e,t),this.change("replaceState",e,t,r)}async _bfl(e,t,n,a){{if(!this._bfl_s&&!this._bfl_d){let t,o,{BloomFilter:u}=r(5254);try{({__routerFilterStatic:t,__routerFilterDynamic:o}=await (0,i.getClientBuildManifest)())}catch(t){if(console.error(t),a)return!0;return q({url:(0,R.addBasePath)((0,b.addLocale)(e,n||this.locale,this.defaultLocale)),router:this}),new Promise(()=>{})}(null==t?void 0:t.numHashes)&&(this._bfl_s=new u(t.numItems,t.errorRate),this._bfl_s.import(t)),(null==o?void 0:o.numHashes)&&(this._bfl_d=new u(o.numItems,o.errorRate),this._bfl_d.import(o))}let c=!1,f=!1;for(let{as:r,allowMatchCurrent:i}of[{as:e},{as:t}])if(r){let t=(0,o.removeTrailingSlash)(new URL(r,"http://n").pathname),d=(0,R.addBasePath)((0,b.addLocale)(t,n||this.locale));if(i||t!==(0,o.removeTrailingSlash)(new URL(this.asPath,"http://n").pathname)){var u,l,s;for(let e of(c=c||!!(null==(u=this._bfl_s)?void 0:u.contains(t))||!!(null==(l=this._bfl_s)?void 0:l.contains(d)),[t,d])){let t=e.split("/");for(let e=0;!f&&e{})}}}}return!1}async change(e,t,r,n,a){var s,c,f,O,S,T,j,C,M;let x,U;if(!(0,w.isLocalURL)(t))return q({url:t,router:this}),!1;let k=1===n._h;k||n.shallow||await this._bfl(r,void 0,n.locale);let X=k||n._shouldResolveHref||(0,E.parsePath)(t).pathname===(0,E.parsePath)(r).pathname,W={...this.state},G=!0!==this.isReady;this.isReady=!0;let V=this.isSsr;if(k||(this.isSsr=!1),k&&this.clc)return!1;let Y=W.locale;d.ST&&performance.mark("routeChange");let{shallow:K=!1,scroll:$=!0}=n,Q={shallow:K};this._inFlightRoute&&this.clc&&(V||z.events.emit("routeChangeError",L(),this._inFlightRoute,Q),this.clc(),this.clc=null),r=(0,R.addBasePath)((0,b.addLocale)((0,v.hasBasePath)(r)?(0,P.removeBasePath)(r):r,n.locale,this.defaultLocale));let J=(0,y.removeLocale)((0,v.hasBasePath)(r)?(0,P.removeBasePath)(r):r,W.locale);this._inFlightRoute=r;let Z=Y!==W.locale;if(!k&&this.onlyAHashChange(J)&&!Z){W.asPath=J,z.events.emit("hashChangeStart",r,Q),this.changeState(e,t,r,{...n,scroll:!1}),$&&this.scrollToHash(J);try{await this.set(W,this.components[W.route],null)}catch(e){throw(0,l.default)(e)&&e.cancelled&&z.events.emit("routeChangeError",e,J,Q),e}return z.events.emit("hashChangeComplete",r,Q),!0}let ee=(0,h.parseRelativeUrl)(t),{pathname:et,query:er}=ee;try{[x,{__rewrites:U}]=await Promise.all([this.pageLoader.getPageList(),(0,i.getClientBuildManifest)(),this.pageLoader.getMiddleware()])}catch(e){return q({url:r,router:this}),!1}this.urlIsNew(J)||Z||(e="replaceState");let en=r;et=et?(0,o.removeTrailingSlash)((0,P.removeBasePath)(et)):et;let ea=(0,o.removeTrailingSlash)(et),eo=r.startsWith("/")&&(0,h.parseRelativeUrl)(r).pathname;if(null==(s=this.components[et])?void 0:s.__appRouter)return q({url:r,router:this}),new Promise(()=>{});let ei=!!(eo&&ea!==eo&&(!(0,p.isDynamicRoute)(ea)||!(0,_.getRouteMatcher)((0,m.getRouteRegex)(ea))(eo))),eu=!n.shallow&&await D({asPath:r,locale:W.locale,router:this});if(k&&eu&&(X=!1),X&&"/_error"!==et&&(n._shouldResolveHref=!0,ee.pathname=B(et,x),ee.pathname!==et&&(et=ee.pathname,ee.pathname=(0,R.addBasePath)(et),eu||(t=(0,g.formatWithValidation)(ee)))),!(0,w.isLocalURL)(r))return q({url:r,router:this}),!1;en=(0,y.removeLocale)((0,P.removeBasePath)(en),W.locale),ea=(0,o.removeTrailingSlash)(et);let el=!1;if((0,p.isDynamicRoute)(ea)){let e=(0,h.parseRelativeUrl)(en),n=e.pathname,a=(0,m.getRouteRegex)(ea);el=(0,_.getRouteMatcher)(a)(n);let o=ea===n,i=o?(0,N.interpolateAs)(ea,n,er):{};if(el&&(!o||i.result))o?r=(0,g.formatWithValidation)(Object.assign({},e,{pathname:i.result,query:(0,I.omit)(er,i.params)})):Object.assign(er,el);else{let e=Object.keys(a.groups).filter(e=>!er[e]&&!a.groups[e].optional);if(e.length>0&&!eu)throw Object.defineProperty(Error((o?"The provided `href` ("+t+") value is missing query values ("+e.join(", ")+") to be interpolated properly. ":"The provided `as` value ("+n+") is incompatible with the `href` value ("+ea+"). ")+"Read more: https://nextjs.org/docs/messages/"+(o?"href-interpolation-failed":"incompatible-href-as")),"__NEXT_ERROR_CODE",{value:"E344",enumerable:!1,configurable:!0})}}k||z.events.emit("routeChangeStart",r,Q);let es="/404"===this.pathname||"/_error"===this.pathname;try{let o=await this.getRouteInfo({route:ea,pathname:et,query:er,as:r,resolvedAs:en,routeProps:Q,locale:W.locale,isPreview:W.isPreview,hasMiddleware:eu,unstable_skipClientCache:n.unstable_skipClientCache,isQueryUpdating:k&&!this.isFallback,isMiddlewareRewrite:ei});if(k||n.shallow||await this._bfl(r,"resolvedAs"in o?o.resolvedAs:void 0,W.locale),"route"in o&&eu){ea=et=o.route||ea,Q.shallow||(er=Object.assign({},o.query||{},er));let e=(0,v.hasBasePath)(ee.pathname)?(0,P.removeBasePath)(ee.pathname):ee.pathname;if(el&&et!==e&&Object.keys(el).forEach(e=>{el&&er[e]===el[e]&&delete er[e]}),(0,p.isDynamicRoute)(et)){let e=!Q.shallow&&o.resolvedAs?o.resolvedAs:(0,R.addBasePath)((0,b.addLocale)(new URL(r,location.href).pathname,W.locale),!0);(0,v.hasBasePath)(e)&&(e=(0,P.removeBasePath)(e));let t=(0,m.getRouteRegex)(et),n=(0,_.getRouteMatcher)(t)(new URL(e,location.href).pathname);n&&Object.assign(er,n)}}if("type"in o)if("redirect-internal"===o.type)return this.change(e,o.newUrl,o.newAs,n);else return q({url:o.destination,router:this}),new Promise(()=>{});let i=o.Component;if(i&&i.unstable_scriptLoader&&[].concat(i.unstable_scriptLoader()).forEach(e=>{(0,u.handleClientScriptLoad)(e.props)}),(o.__N_SSG||o.__N_SSP)&&o.props){if(o.props.pageProps&&o.props.pageProps.__N_REDIRECT){n.locale=!1;let t=o.props.pageProps.__N_REDIRECT;if(t.startsWith("/")&&!1!==o.props.pageProps.__N_REDIRECT_BASE_PATH){let r=(0,h.parseRelativeUrl)(t);r.pathname=B(r.pathname,x);let{url:a,as:o}=F(this,t,t);return this.change(e,a,o,n)}return q({url:t,router:this}),new Promise(()=>{})}if(W.isPreview=!!o.props.__N_PREVIEW,o.props.notFound===H){let e;try{await this.fetchComponent("/404"),e="/404"}catch(t){e="/_error"}if(o=await this.getRouteInfo({route:e,pathname:e,query:er,as:r,resolvedAs:en,routeProps:{shallow:!1},locale:W.locale,isPreview:W.isPreview,isNotFound:!0}),"type"in o)throw Object.defineProperty(Error("Unexpected middleware effect on /404"),"__NEXT_ERROR_CODE",{value:"E158",enumerable:!1,configurable:!0})}}k&&"/_error"===this.pathname&&(null==(f=self.__NEXT_DATA__.props)||null==(c=f.pageProps)?void 0:c.statusCode)===500&&(null==(O=o.props)?void 0:O.pageProps)&&(o.props.pageProps.statusCode=500);let s=n.shallow&&W.route===(null!=(S=o.route)?S:ea),d=null!=(T=n.scroll)?T:!k&&!s,g=null!=a?a:d?{x:0,y:0}:null,E={...W,route:ea,pathname:et,query:er,asPath:J,isFallback:!1};if(k&&es){if(o=await this.getRouteInfo({route:this.pathname,pathname:this.pathname,query:er,as:r,resolvedAs:en,routeProps:{shallow:!1},locale:W.locale,isPreview:W.isPreview,isQueryUpdating:k&&!this.isFallback}),"type"in o)throw Object.defineProperty(Error("Unexpected middleware effect on "+this.pathname),"__NEXT_ERROR_CODE",{value:"E225",enumerable:!1,configurable:!0});"/_error"===this.pathname&&(null==(C=self.__NEXT_DATA__.props)||null==(j=C.pageProps)?void 0:j.statusCode)===500&&(null==(M=o.props)?void 0:M.pageProps)&&(o.props.pageProps.statusCode=500);try{await this.set(E,o,g)}catch(e){throw(0,l.default)(e)&&e.cancelled&&z.events.emit("routeChangeError",e,J,Q),e}return!0}if(z.events.emit("beforeHistoryChange",r,Q),this.changeState(e,t,r,n),!(k&&!g&&!G&&!Z&&(0,A.compareRouterStates)(E,this.state))){try{await this.set(E,o,g)}catch(e){if(e.cancelled)o.error=o.error||e;else throw e}if(o.error)throw k||z.events.emit("routeChangeError",o.error,J,Q),o.error;k||z.events.emit("routeChangeComplete",r,Q),d&&/#.+$/.test(r)&&this.scrollToHash(r)}return!0}catch(e){if((0,l.default)(e)&&e.cancelled)return!1;throw e}}changeState(e,t,r,n){void 0===n&&(n={}),("pushState"!==e||(0,d.getURL)()!==r)&&(this._shallow=n.shallow,window.history[e]({url:t,as:r,options:n,__N:!0,key:this._key="pushState"!==e?this._key:G()},"",r))}async handleRouteInfoError(e,t,r,n,a,o){if(e.cancelled)throw e;if((0,i.isAssetError)(e)||o)throw z.events.emit("routeChangeError",e,n,a),q({url:n,router:this}),L();console.error(e);try{let n,{page:a,styleSheets:o}=await this.fetchComponent("/_error"),i={props:n,Component:a,styleSheets:o,err:e,error:e};if(!i.props)try{i.props=await this.getInitialProps(a,{err:e,pathname:t,query:r})}catch(e){console.error("Error in error page `getInitialProps`: ",e),i.props={}}return i}catch(e){return this.handleRouteInfoError((0,l.default)(e)?e:Object.defineProperty(Error(e+""),"__NEXT_ERROR_CODE",{value:"E394",enumerable:!1,configurable:!0}),t,r,n,a,!0)}}async getRouteInfo(e){let{route:t,pathname:r,query:n,as:a,resolvedAs:i,routeProps:u,locale:s,hasMiddleware:f,isPreview:d,unstable_skipClientCache:p,isQueryUpdating:h,isMiddlewareRewrite:_,isNotFound:m}=e,E=t;try{var b,y,R,v;let e=this.components[E];if(u.shallow&&e&&this.route===E)return e;let t=V({route:E,router:this});f&&(e=void 0);let l=!e||"initial"in e?void 0:e,O={dataHref:this.pageLoader.getDataHref({href:(0,g.formatWithValidation)({pathname:r,query:n}),skipInterpolation:!0,asPath:m?"/404":i,locale:s}),hasMiddleware:!0,isServerRender:this.isSsr,parseJSON:!0,inflightCache:h?this.sbc:this.sdc,persistCache:!d,isPrefetch:!1,unstable_skipClientCache:p,isBackground:h},T=h&&!_?null:await k({fetchData:()=>W(O),asPath:m?"/404":i,locale:s,router:this}).catch(e=>{if(h)return null;throw e});if(T&&("/_error"===r||"/404"===r)&&(T.effect=void 0),h&&(T?T.json=self.__NEXT_DATA__.props:T={json:self.__NEXT_DATA__.props}),t(),(null==T||null==(b=T.effect)?void 0:b.type)==="redirect-internal"||(null==T||null==(y=T.effect)?void 0:y.type)==="redirect-external")return T.effect;if((null==T||null==(R=T.effect)?void 0:R.type)==="rewrite"){let t=(0,o.removeTrailingSlash)(T.effect.resolvedHref),a=await this.pageLoader.getPageList();if((!h||a.includes(t))&&(E=t,r=T.effect.resolvedHref,n={...n,...T.effect.parsedAs.query},i=(0,P.removeBasePath)((0,c.normalizeLocalePath)(T.effect.parsedAs.pathname,this.locales).pathname),e=this.components[E],u.shallow&&e&&this.route===E&&!f))return{...e,route:E}}if((0,S.isAPIRoute)(E))return q({url:a,router:this}),new Promise(()=>{});let j=l||await this.fetchComponent(E).then(e=>({Component:e.page,styleSheets:e.styleSheets,__N_SSG:e.mod.__N_SSG,__N_SSP:e.mod.__N_SSP})),A=null==T||null==(v=T.response)?void 0:v.headers.get("x-middleware-skip"),w=j.__N_SSG||j.__N_SSP;A&&(null==T?void 0:T.dataHref)&&delete this.sdc[T.dataHref];let{props:C,cacheKey:I}=await this._getData(async()=>{if(w){if((null==T?void 0:T.json)&&!A)return{cacheKey:T.cacheKey,props:T.json};let e=(null==T?void 0:T.dataHref)?T.dataHref:this.pageLoader.getDataHref({href:(0,g.formatWithValidation)({pathname:r,query:n}),asPath:i,locale:s}),t=await W({dataHref:e,isServerRender:this.isSsr,parseJSON:!0,inflightCache:A?{}:this.sdc,persistCache:!d,isPrefetch:!1,unstable_skipClientCache:p});return{cacheKey:t.cacheKey,props:t.json||{}}}return{headers:{},props:await this.getInitialProps(j.Component,{pathname:r,query:n,asPath:a,locale:s,locales:this.locales,defaultLocale:this.defaultLocale})}});return j.__N_SSP&&O.dataHref&&I&&delete this.sdc[I],this.isPreview||!j.__N_SSG||h||W(Object.assign({},O,{isBackground:!0,persistCache:!1,inflightCache:this.sbc})).catch(()=>{}),C.pageProps=Object.assign({},C.pageProps),j.props=C,j.route=E,j.query=n,j.resolvedAs=i,this.components[E]=j,j}catch(e){return this.handleRouteInfoError((0,l.getProperError)(e),r,n,a,u)}}set(e,t,r){return this.state=e,this.sub(t,this.components["/_app"].Component,r)}beforePopState(e){this._bps=e}onlyAHashChange(e){if(!this.asPath)return!1;let[t,r]=this.asPath.split("#",2),[n,a]=e.split("#",2);return!!a&&t===n&&r===a||t===n&&r!==a}scrollToHash(e){let[,t=""]=e.split("#",2);(0,M.disableSmoothScrollDuringRouteTransition)(()=>{if(""===t||"top"===t)return void window.scrollTo(0,0);let e=decodeURIComponent(t),r=document.getElementById(e);if(r)return void r.scrollIntoView();let n=document.getElementsByName(e)[0];n&&n.scrollIntoView()},{onlyHashChange:this.onlyAHashChange(e)})}urlIsNew(e){return this.asPath!==e}async prefetch(e,t,r){if(void 0===t&&(t=e),void 0===r&&(r={}),(0,C.isBot)(window.navigator.userAgent))return;let n=(0,h.parseRelativeUrl)(e),a=n.pathname,{pathname:i,query:u}=n,l=i,s=await this.pageLoader.getPageList(),c=t,f=void 0!==r.locale?r.locale||void 0:this.locale,d=await D({asPath:t,locale:f,router:this});n.pathname=B(n.pathname,s),(0,p.isDynamicRoute)(n.pathname)&&(i=n.pathname,n.pathname=i,Object.assign(u,(0,_.getRouteMatcher)((0,m.getRouteRegex)(n.pathname))((0,E.parsePath)(t).pathname)||{}),d||(e=(0,g.formatWithValidation)(n)));let b=await k({fetchData:()=>W({dataHref:this.pageLoader.getDataHref({href:(0,g.formatWithValidation)({pathname:l,query:u}),skipInterpolation:!0,asPath:c,locale:f}),hasMiddleware:!0,isServerRender:!1,parseJSON:!0,inflightCache:this.sdc,persistCache:!this.isPreview,isPrefetch:!0}),asPath:t,locale:f,router:this});if((null==b?void 0:b.effect.type)==="rewrite"&&(n.pathname=b.effect.resolvedHref,i=b.effect.resolvedHref,u={...u,...b.effect.parsedAs.query},c=b.effect.parsedAs.pathname,e=(0,g.formatWithValidation)(n)),(null==b?void 0:b.effect.type)==="redirect-external")return;let y=(0,o.removeTrailingSlash)(i);await this._bfl(t,c,r.locale,!0)&&(this.components[a]={__appRouter:!0}),await Promise.all([this.pageLoader._isSsg(y).then(t=>!!t&&W({dataHref:(null==b?void 0:b.json)?null==b?void 0:b.dataHref:this.pageLoader.getDataHref({href:e,asPath:c,locale:f}),isServerRender:!1,parseJSON:!0,inflightCache:this.sdc,persistCache:!this.isPreview,isPrefetch:!0,unstable_skipClientCache:r.unstable_skipClientCache||r.priority&&!0}).then(()=>!1).catch(()=>!1)),this.pageLoader[r.priority?"loadPage":"prefetch"](y)])}async fetchComponent(e){let t=V({route:e,router:this});try{let r=await this.pageLoader.loadPage(e);return t(),r}catch(e){throw t(),e}}_getData(e){let t=!1,r=()=>{t=!0};return this.clc=r,e().then(e=>{if(r===this.clc&&(this.clc=null),t){let e=Object.defineProperty(Error("Loading initial props cancelled"),"__NEXT_ERROR_CODE",{value:"E405",enumerable:!1,configurable:!0});throw e.cancelled=!0,e}return e})}getInitialProps(e,t){let{Component:r}=this.components["/_app"],n=this._wrapApp(r);return t.AppTree=n,(0,d.loadGetInitialProps)(r,{AppTree:n,Component:e,router:this,ctx:t})}get route(){return this.state.route}get pathname(){return this.state.pathname}get query(){return this.state.query}get asPath(){return this.state.asPath}get locale(){return this.state.locale}get isFallback(){return this.state.isFallback}get isPreview(){return this.state.isPreview}constructor(e,t,r,{initialProps:n,pageLoader:a,App:i,wrapApp:u,Component:l,err:s,subscription:c,isFallback:f,locale:_,locales:m,defaultLocale:E,domainLocales:b,isPreview:y}){this.sdc={},this.sbc={},this.isFirstPopStateEvent=!0,this._key=G(),this.onPopState=e=>{let t,{isFirstPopStateEvent:r}=this;this.isFirstPopStateEvent=!1;let n=e.state;if(!n){let{pathname:e,query:t}=this;this.changeState("replaceState",(0,g.formatWithValidation)({pathname:(0,R.addBasePath)(e),query:t}),(0,d.getURL)());return}if(n.__NA)return void window.location.reload();if(!n.__N||r&&this.locale===n.options.locale&&n.as===this.asPath)return;let{url:a,as:o,options:i,key:u}=n;this._key=u;let{pathname:l}=(0,h.parseRelativeUrl)(a);(!this.isSsr||o!==(0,R.addBasePath)(this.asPath)||l!==(0,R.addBasePath)(this.pathname))&&(!this._bps||this._bps(n))&&this.change("replaceState",a,o,Object.assign({},i,{shallow:i.shallow&&this._shallow,locale:i.locale||this.defaultLocale,_h:0}),t)};let P=(0,o.removeTrailingSlash)(e);this.components={},"/_error"!==e&&(this.components[P]={Component:l,initial:!0,props:n,err:s,__N_SSG:n&&n.__N_SSG,__N_SSP:n&&n.__N_SSP}),this.components["/_app"]={Component:i,styleSheets:[]},this.events=z.events,this.pageLoader=a;let v=(0,p.isDynamicRoute)(e)&&self.__NEXT_DATA__.autoExport;if(this.basePath="",this.sub=c,this.clc=null,this._wrapApp=u,this.isSsr=!0,this.isLocaleDomain=!1,this.isReady=!!(self.__NEXT_DATA__.gssp||self.__NEXT_DATA__.gip||self.__NEXT_DATA__.isExperimentalCompile||self.__NEXT_DATA__.appGip&&!self.__NEXT_DATA__.gsp||!v&&!self.location.search),this.state={route:P,pathname:e,query:t,asPath:v?e:r,isPreview:!!y,locale:void 0,isFallback:f},this._initialMatchesMiddlewarePromise=Promise.resolve(!1),!r.startsWith("//")){let n={locale:_},a=(0,d.getURL)();this._initialMatchesMiddlewarePromise=D({router:this,locale:_,asPath:a}).then(o=>(n._shouldResolveHref=r!==e,this.changeState("replaceState",o?a:(0,g.formatWithValidation)({pathname:(0,R.addBasePath)(e),query:t}),a,n),o))}window.addEventListener("popstate",this.onPopState)}}z.events=(0,f.default)()},5214:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"addPathPrefix",{enumerable:!0,get:function(){return a}});let n=r(8059);function a(e,t){if(!e.startsWith("/")||!t)return e;let{pathname:r,query:a,hash:o}=(0,n.parsePath)(e);return""+t+r+a+o}},5254:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"BloomFilter",{enumerable:!0,get:function(){return r}});class r{static from(e,t){void 0===t&&(t=1e-4);let n=new r(e.length,t);for(let t of e)n.add(t);return n}export(){return{numItems:this.numItems,errorRate:this.errorRate,numBits:this.numBits,numHashes:this.numHashes,bitArray:this.bitArray}}import(e){this.numItems=e.numItems,this.errorRate=e.errorRate,this.numBits=e.numBits,this.numHashes=e.numHashes,this.bitArray=e.bitArray}add(e){this.getHashValues(e).forEach(e=>{this.bitArray[e]=1})}contains(e){return this.getHashValues(e).every(e=>this.bitArray[e])}getHashValues(e){let t=[];for(let r=1;r<=this.numHashes;r++){let n=function(e){let t=0;for(let r=0;r>>13,t=Math.imul(t,0x5bd1e995);return t>>>0}(""+e+r)%this.numBits;t.push(n)}return t}constructor(e,t=1e-4){this.numItems=e,this.errorRate=t,this.numBits=Math.ceil(-(e*Math.log(t))/(Math.log(2)*Math.log(2))),this.numHashes=Math.ceil(this.numBits/e*Math.log(2)),this.bitArray=Array(this.numBits).fill(0)}}},5318:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),!function(e,t){for(var r in t)Object.defineProperty(e,r,{enumerable:!0,get:t[r]})}(t,{REDIRECT_ERROR_CODE:function(){return a},RedirectType:function(){return o},isRedirectError:function(){return i}});let n=r(8316),a="NEXT_REDIRECT";var o=function(e){return e.push="push",e.replace="replace",e}({});function i(e){if("object"!=typeof e||null===e||!("digest"in e)||"string"!=typeof e.digest)return!1;let t=e.digest.split(";"),[r,o]=t,i=t.slice(2,-2).join(";"),u=Number(t.at(-2));return r===a&&("replace"===o||"push"===o)&&"string"==typeof i&&!isNaN(u)&&u in n.RedirectStatusCode}("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},5346:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),!function(e,t){for(var r in t)Object.defineProperty(e,r,{enumerable:!0,get:t[r]})}(t,{BailoutToCSRError:function(){return n},isBailoutToCSRError:function(){return a}});let r="BAILOUT_TO_CLIENT_SIDE_RENDERING";class n extends Error{constructor(e){super("Bail out to client-side rendering: "+e),this.reason=e,this.digest=r}}function a(e){return"object"==typeof e&&null!==e&&"digest"in e&&e.digest===r}},5647:(e,t)=>{"use strict";let r;function n(e){var t;return(null==(t=function(){if(void 0===r){var e;r=(null==(e=window.trustedTypes)?void 0:e.createPolicy("nextjs",{createHTML:e=>e,createScript:e=>e,createScriptURL:e=>e}))||null}return r}())?void 0:t.createScriptURL(e))||e}Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"__unsafeCreateTrustedScriptURL",{enumerable:!0,get:function(){return n}}),("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},5805:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"Portal",{enumerable:!0,get:function(){return o}});let n=r(4232),a=r(8477),o=e=>{let{children:t,type:r}=e,[o,i]=(0,n.useState)(null);return(0,n.useEffect)(()=>{let e=document.createElement(r);return document.body.appendChild(e),i(e),()=>{document.body.removeChild(e)}},[r]),o?(0,a.createPortal)(t,o):null};("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},6032:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"HTML_LIMITED_BOT_UA_RE",{enumerable:!0,get:function(){return r}});let r=/Mediapartners-Google|Chrome-Lighthouse|Slurp|DuckDuckBot|baiduspider|yandex|sogou|bitlybot|tumblr|vkShare|quora link preview|redditbot|ia_archiver|Bingbot|BingPreview|applebot|facebookexternalhit|facebookcatalog|Twitterbot|LinkedInBot|Slackbot|Discordbot|WhatsApp|SkypeUriPreview|Yeti/i},6225:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),!function(e,t){for(var r in t)Object.defineProperty(e,r,{enumerable:!0,get:t[r]})}(t,{formatUrl:function(){return o},formatWithValidation:function(){return u},urlObjectKeys:function(){return i}});let n=r(8365)._(r(7139)),a=/https?|ftp|gopher|file/;function o(e){let{auth:t,hostname:r}=e,o=e.protocol||"",i=e.pathname||"",u=e.hash||"",l=e.query||"",s=!1;t=t?encodeURIComponent(t).replace(/%3A/i,":")+"@":"",e.host?s=t+e.host:r&&(s=t+(~r.indexOf(":")?"["+r+"]":r),e.port&&(s+=":"+e.port)),l&&"object"==typeof l&&(l=String(n.urlQueryToSearchParams(l)));let c=e.search||l&&"?"+l||"";return o&&!o.endsWith(":")&&(o+=":"),e.slashes||(!o||a.test(o))&&!1!==s?(s="//"+(s||""),i&&"/"!==i[0]&&(i="/"+i)):s||(s=""),u&&"#"!==u[0]&&(u="#"+u),c&&"?"!==c[0]&&(c="?"+c),""+o+s+(i=i.replace(/[?#]/g,encodeURIComponent))+(c=c.replace("#","%23"))+u}let i=["auth","hash","host","hostname","href","path","pathname","port","protocol","query","search","slashes"];function u(e){return o(e)}},6237:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"normalizeLocalePath",{enumerable:!0,get:function(){return n}});let r=new WeakMap;function n(e,t){let n;if(!t)return{pathname:e};let a=r.get(t);a||(a=t.map(e=>e.toLowerCase()),r.set(t,a));let o=e.split("/",2);if(!o[1])return{pathname:e};let i=o[1].toLowerCase(),u=a.indexOf(i);return u<0?{pathname:e}:(n=t[u],{pathname:e=e.slice(n.length+1)||"/",detectedLocale:n})}},6240:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),!function(e,t){for(var r in t)Object.defineProperty(e,r,{enumerable:!0,get:t[r]})}(t,{default:function(){return a},getProperError:function(){return o}});let n=r(7925);function a(e){return"object"==typeof e&&null!==e&&"name"in e&&"message"in e}function o(e){return a(e)?e:Object.defineProperty(Error((0,n.isPlainObject)(e)?function(e){let t=new WeakSet;return JSON.stringify(e,(e,r)=>{if("object"==typeof r&&null!==r){if(t.has(r))return"[Circular]";t.add(r)}return r})}(e):e+""),"__NEXT_ERROR_CODE",{value:"E394",enumerable:!1,configurable:!0})}},6394:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),!function(e,t){for(var r in t)Object.defineProperty(e,r,{enumerable:!0,get:t[r]})}(t,{PathParamsContext:function(){return i},PathnameContext:function(){return o},SearchParamsContext:function(){return a}});let n=r(4232),a=(0,n.createContext)(null),o=(0,n.createContext)(null),i=(0,n.createContext)(null)},6443:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),!function(e,t){for(var r in t)Object.defineProperty(e,r,{enumerable:!0,get:t[r]})}(t,{INTERCEPTION_ROUTE_MARKERS:function(){return a},extractInterceptionRouteInformation:function(){return i},isInterceptionRouteAppPath:function(){return o}});let n=r(4020),a=["(..)(..)","(.)","(..)","(...)"];function o(e){return void 0!==e.split("/").find(e=>a.find(t=>e.startsWith(t)))}function i(e){let t,r,o;for(let n of e.split("/"))if(r=a.find(e=>n.startsWith(e))){[t,o]=e.split(r,2);break}if(!t||!r||!o)throw Object.defineProperty(Error("Invalid interception route: "+e+". Must be in the format //(..|...|..)(..)/"),"__NEXT_ERROR_CODE",{value:"E269",enumerable:!1,configurable:!0});switch(t=(0,n.normalizeAppPath)(t),r){case"(.)":o="/"===t?"/"+o:t+"/"+o;break;case"(..)":if("/"===t)throw Object.defineProperty(Error("Invalid interception route: "+e+". Cannot use (..) marker at the root level, use (.) instead."),"__NEXT_ERROR_CODE",{value:"E207",enumerable:!1,configurable:!0});o=t.split("/").slice(0,-1).concat(o).join("/");break;case"(...)":o="/"+o;break;case"(..)(..)":let i=t.split("/");if(i.length<=2)throw Object.defineProperty(Error("Invalid interception route: "+e+". Cannot use (..)(..) marker at the root level or one level up."),"__NEXT_ERROR_CODE",{value:"E486",enumerable:!1,configurable:!0});o=i.slice(0,-2).concat(o).join("/");break;default:throw Object.defineProperty(Error("Invariant: unexpected marker"),"__NEXT_ERROR_CODE",{value:"E112",enumerable:!1,configurable:!0})}return{interceptingRoute:t,interceptedRoute:o}}},6656:(e,t,r)=>{"use strict";let n,a,o,i,u,l,s,c,f,d,p,h;Object.defineProperty(t,"__esModule",{value:!0}),!function(e,t){for(var r in t)Object.defineProperty(e,r,{enumerable:!0,get:t[r]})}(t,{emitter:function(){return H},hydrate:function(){return eu},initialize:function(){return q},router:function(){return n},version:function(){return k}});let _=r(4252),m=r(7876);r(1291);let g=_._(r(4232)),E=_._(r(8944)),b=r(6834),y=_._(r(8460)),P=r(8265),R=r(4571),v=r(8346),O=r(7139),S=r(3420),T=r(8407),j=r(5805),A=_._(r(8660)),w=_._(r(641)),C=r(795),I=r(8253),N=r(6240),M=r(72),x=r(6814),L=r(866),D=r(2875),U=r(692),F=r(6394),B=r(4030);r(3542),r(1670);let k="15.4.1",H=(0,y.default)(),X=e=>[].slice.call(e),W=!1;class G extends g.default.Component{componentDidCatch(e,t){this.props.fn(e,t)}componentDidMount(){this.scrollToHash(),n.isSsr&&(a.isFallback||a.nextExport&&((0,v.isDynamicRoute)(n.pathname)||location.search||W)||a.props&&a.props.__N_SSG&&(location.search||W))&&n.replace(n.pathname+"?"+String((0,O.assign)((0,O.urlQueryToSearchParams)(n.query),new URLSearchParams(location.search))),o,{_h:1,shallow:!a.isFallback&&!W}).catch(e=>{if(!e.cancelled)throw e})}componentDidUpdate(){this.scrollToHash()}scrollToHash(){let{hash:e}=location;if(!(e=e&&e.substring(1)))return;let t=document.getElementById(e);t&&setTimeout(()=>t.scrollIntoView(),0)}render(){return this.props.children}}async function q(e){void 0===e&&(e={}),a=JSON.parse(document.getElementById("__NEXT_DATA__").textContent),window.__NEXT_DATA__=a,h=a.defaultLocale;let t=a.assetPrefix||"";if(self.__next_set_public_path__(""+t+"/_next/"),(0,S.setConfig)({serverRuntimeConfig:{},publicRuntimeConfig:a.runtimeConfig||{}}),o=(0,T.getURL)(),(0,L.hasBasePath)(o)&&(o=(0,x.removeBasePath)(o)),a.scriptLoader){let{initScriptLoader:e}=r(7195);e(a.scriptLoader)}i=new w.default(a.buildId,t);let s=e=>{let[t,r]=e;return i.routeLoader.onEntrypoint(t,r)};return window.__NEXT_P&&window.__NEXT_P.map(e=>setTimeout(()=>s(e),0)),window.__NEXT_P=[],window.__NEXT_P.push=s,(l=(0,A.default)()).getIsSsr=()=>n.isSsr,u=document.getElementById("__next"),{assetPrefix:t}}function V(e,t){return(0,m.jsx)(e,{...t})}function z(e){var t;let{children:r}=e,a=g.default.useMemo(()=>(0,U.adaptForAppRouterInstance)(n),[]);return(0,m.jsx)(G,{fn:e=>K({App:f,err:e}).catch(e=>console.error("Error rendering page: ",e)),children:(0,m.jsx)(D.AppRouterContext.Provider,{value:a,children:(0,m.jsx)(F.SearchParamsContext.Provider,{value:(0,U.adaptForSearchParams)(n),children:(0,m.jsx)(U.PathnameContextProviderAdapter,{router:n,isAutoExport:null!=(t=self.__NEXT_DATA__.autoExport)&&t,children:(0,m.jsx)(F.PathParamsContext.Provider,{value:(0,U.adaptForPathParams)(n),children:(0,m.jsx)(P.RouterContext.Provider,{value:(0,I.makePublicRouterInstance)(n),children:(0,m.jsx)(b.HeadManagerContext.Provider,{value:l,children:(0,m.jsx)(M.ImageConfigContext.Provider,{value:{deviceSizes:[640,750,828,1080,1200,1920,2048,3840],imageSizes:[16,32,48,64,96,128,256,384],path:"/_next/image",loader:"default",dangerouslyAllowSVG:!1,unoptimized:!1},children:r})})})})})})})})}let Y=e=>t=>{let r={...t,Component:p,err:a.err,router:n};return(0,m.jsx)(z,{children:V(e,r)})};function K(e){let{App:t,err:u}=e;return console.error(u),console.error("A client-side exception has occurred, see here for more info: https://nextjs.org/docs/messages/client-side-exception-occurred"),i.loadPage("/_error").then(n=>{let{page:a,styleSheets:o}=n;return(null==s?void 0:s.Component)===a?r.e(100).then(r.t.bind(r,4100,23)).then(n=>r.e(57).then(r.t.bind(r,57,23)).then(r=>(e.App=t=r.default,n))).then(e=>({ErrorComponent:e.default,styleSheets:[]})):{ErrorComponent:a,styleSheets:o}}).then(r=>{var i;let{ErrorComponent:l,styleSheets:s}=r,c=Y(t),f={Component:l,AppTree:c,router:n,ctx:{err:u,pathname:a.page,query:a.query,asPath:o,AppTree:c}};return Promise.resolve((null==(i=e.props)?void 0:i.err)?e.props:(0,T.loadGetInitialProps)(t,f)).then(t=>eo({...e,err:u,Component:l,styleSheets:s,props:t}))})}function $(e){let{callback:t}=e;return g.default.useLayoutEffect(()=>t(),[t]),null}let Q={navigationStart:"navigationStart",beforeRender:"beforeRender",afterRender:"afterRender",afterHydrate:"afterHydrate",routeChange:"routeChange"},J={hydration:"Next.js-hydration",beforeHydration:"Next.js-before-hydration",routeChangeToRender:"Next.js-route-change-to-render",render:"Next.js-render"},Z=null,ee=!0;function et(){[Q.beforeRender,Q.afterHydrate,Q.afterRender,Q.routeChange].forEach(e=>performance.clearMarks(e))}function er(){T.ST&&(performance.mark(Q.afterHydrate),performance.getEntriesByName(Q.beforeRender,"mark").length&&(performance.measure(J.beforeHydration,Q.navigationStart,Q.beforeRender),performance.measure(J.hydration,Q.beforeRender,Q.afterHydrate)),d&&performance.getEntriesByName(J.hydration).forEach(d),et())}function en(){if(!T.ST)return;performance.mark(Q.afterRender);let e=performance.getEntriesByName(Q.routeChange,"mark");e.length&&(performance.getEntriesByName(Q.beforeRender,"mark").length&&(performance.measure(J.routeChangeToRender,e[0].name,Q.beforeRender),performance.measure(J.render,Q.beforeRender,Q.afterRender),d&&(performance.getEntriesByName(J.render).forEach(d),performance.getEntriesByName(J.routeChangeToRender).forEach(d))),et(),[J.routeChangeToRender,J.render].forEach(e=>performance.clearMeasures(e)))}function ea(e){let{callbacks:t,children:r}=e;return g.default.useLayoutEffect(()=>t.forEach(e=>e()),[t]),r}function eo(e){let t,r,{App:a,Component:o,props:i,err:l}=e,f="initial"in e?void 0:e.styleSheets;o=o||s.Component;let d={...i=i||s.props,Component:o,err:l,router:n};s=d;let p=!1,h=new Promise((e,t)=>{c&&c(),r=()=>{c=null,e()},c=()=>{p=!0,c=null;let e=Object.defineProperty(Error("Cancel rendering route"),"__NEXT_ERROR_CODE",{value:"E503",enumerable:!1,configurable:!0});e.cancelled=!0,t(e)}});function _(){r()}!function(){if(!f)return;let e=new Set(X(document.querySelectorAll("style[data-n-href]")).map(e=>e.getAttribute("data-n-href"))),t=document.querySelector("noscript[data-n-css]"),r=null==t?void 0:t.getAttribute("data-n-css");f.forEach(t=>{let{href:n,text:a}=t;if(!e.has(n)){let e=document.createElement("style");e.setAttribute("data-n-href",n),e.setAttribute("media","x"),r&&e.setAttribute("nonce",r),document.head.appendChild(e),e.appendChild(document.createTextNode(a))}})}();let b=(0,m.jsxs)(m.Fragment,{children:[(0,m.jsx)($,{callback:function(){if(f&&!p){let e=new Set(f.map(e=>e.href)),t=X(document.querySelectorAll("style[data-n-href]")),r=t.map(e=>e.getAttribute("data-n-href"));for(let n=0;n{let{href:t}=e,r=document.querySelector('style[data-n-href="'+t+'"]');r&&(n.parentNode.insertBefore(r,n.nextSibling),n=r)}),X(document.querySelectorAll("link[data-n-p]")).forEach(e=>{e.parentNode.removeChild(e)})}if(e.scroll){let{x:t,y:r}=e.scroll;(0,R.disableSmoothScrollDuringRouteTransition)(()=>{window.scrollTo(t,r)})}}}),(0,m.jsxs)(z,{children:[V(a,d),(0,m.jsx)(j.Portal,{type:"next-route-announcer",children:(0,m.jsx)(C.RouteAnnouncer,{})})]})]});var y=u;T.ST&&performance.mark(Q.beforeRender);let P=(t=ee?er:en,(0,m.jsx)(ea,{callbacks:[t,_],children:(0,m.jsx)(g.default.StrictMode,{children:b})}));return Z?(0,g.default.startTransition)(()=>{Z.render(P)}):(Z=E.default.hydrateRoot(y,P,{onRecoverableError:B.onRecoverableError}),ee=!1),h}async function ei(e){if(e.err&&(void 0===e.Component||!e.isHydratePass))return void await K(e);try{await eo(e)}catch(r){let t=(0,N.getProperError)(r);if(t.cancelled)throw t;await K({...e,err:t})}}async function eu(e){let t=a.err;try{let e=await i.routeLoader.whenEntrypoint("/_app");if("error"in e)throw e.error;let{component:t,exports:r}=e;f=t,r&&r.reportWebVitals&&(d=e=>{let t,{id:n,name:a,startTime:o,value:i,duration:u,entryType:l,entries:s,attribution:c}=e,f=Date.now()+"-"+(Math.floor(Math.random()*(9e12-1))+1e12);s&&s.length&&(t=s[0].startTime);let d={id:n||f,name:a,startTime:o||t,value:null==i?u:i,label:"mark"===l||"measure"===l?"custom":"web-vital"};c&&(d.attribution=c),r.reportWebVitals(d)});let n=await i.routeLoader.whenEntrypoint(a.page);if("error"in n)throw n.error;p=n.component}catch(e){t=(0,N.getProperError)(e)}window.__NEXT_PRELOADREADY&&await window.__NEXT_PRELOADREADY(a.dynamicIds),n=(0,I.createRouter)(a.page,a.query,o,{initialProps:a.props,pageLoader:i,App:f,Component:p,wrapApp:Y,err:t,isFallback:!!a.isFallback,subscription:(e,t,r)=>ei(Object.assign({},e,{App:t,scroll:r})),locale:a.locale,locales:a.locales,defaultLocale:h,domainLocales:a.domainLocales,isPreview:a.isPreview}),W=await n._initialMatchesMiddlewarePromise;let r={App:f,initial:!0,Component:p,props:a.props,err:t,isHydratePass:!0};(null==e?void 0:e.beforeRender)&&await e.beforeRender(),ei(r)}("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},6658:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"resolveHref",{enumerable:!0,get:function(){return f}});let n=r(7139),a=r(6225),o=r(187),i=r(8407),u=r(7810),l=r(1851),s=r(1426),c=r(3872);function f(e,t,r){let f,d="string"==typeof t?t:(0,a.formatWithValidation)(t),p=d.match(/^[a-z][a-z0-9+.-]*:\/\//i),h=p?d.slice(p[0].length):d;if((h.split("?",1)[0]||"").match(/(\/\/|\\)/)){console.error("Invalid href '"+d+"' passed to next/router in page: '"+e.pathname+"'. Repeated forward-slashes (//) or backslashes \\ are not valid in the href.");let t=(0,i.normalizeRepeatedSlashes)(h);d=(p?p[0]:"")+t}if(!(0,l.isLocalURL)(d))return r?[d]:d;try{f=new URL(d.startsWith("#")?e.asPath:e.pathname,"http://n")}catch(e){f=new URL("/","http://n")}try{let e=new URL(d,f);e.pathname=(0,u.normalizePathTrailingSlash)(e.pathname);let t="";if((0,s.isDynamicRoute)(e.pathname)&&e.searchParams&&r){let r=(0,n.searchParamsToUrlQuery)(e.searchParams),{result:i,params:u}=(0,c.interpolateAs)(e.pathname,e.pathname,r);i&&(t=(0,a.formatWithValidation)({pathname:i,hash:e.hash,query:(0,o.omit)(r,u)}))}let i=e.origin===f.origin?e.href.slice(e.origin.length):e.href;return r?[i,t||i]:i}catch(e){return r?[d]:d}}("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},6808:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"getRouteMatcher",{enumerable:!0,get:function(){return a}});let n=r(8407);function a(e){let{re:t,groups:r}=e;return e=>{let a=t.exec(e);if(!a)return!1;let o=e=>{try{return decodeURIComponent(e)}catch(e){throw Object.defineProperty(new n.DecodeError("failed to decode param"),"__NEXT_ERROR_CODE",{value:"E528",enumerable:!1,configurable:!0})}},i={};for(let[e,t]of Object.entries(r)){let r=a[t.pos];void 0!==r&&(t.repeat?i[e]=r.split("/").map(e=>o(e)):i[e]=o(r))}return i}}},6814:(e,t,r)=>{"use strict";function n(e){return e}Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"removeBasePath",{enumerable:!0,get:function(){return n}}),r(866),("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},6834:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"HeadManagerContext",{enumerable:!0,get:function(){return n}});let n=r(4252)._(r(4232)).default.createContext({})},6886:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"setAttributesFromProps",{enumerable:!0,get:function(){return o}});let r={acceptCharset:"accept-charset",className:"class",htmlFor:"for",httpEquiv:"http-equiv",noModule:"noModule"},n=["onLoad","onReady","dangerouslySetInnerHTML","children","onError","strategy","stylesheets"];function a(e){return["async","defer","noModule"].includes(e)}function o(e,t){for(let[o,i]of Object.entries(t)){if(!t.hasOwnProperty(o)||n.includes(o)||void 0===i)continue;let u=r[o]||o.toLowerCase();"SCRIPT"===e.tagName&&a(u)?e[u]=!!i:e.setAttribute(u,String(i)),(!1===i||"SCRIPT"===e.tagName&&a(u)&&(!i||"false"===i))&&(e.setAttribute(u,""),e.removeAttribute(u))}}("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},6904:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),!function(e,t){for(var r in t)Object.defineProperty(e,r,{enumerable:!0,get:t[r]})}(t,{VALID_LOADERS:function(){return r},imageConfigDefault:function(){return n}});let r=["default","imgix","cloudinary","akamai","custom"],n={deviceSizes:[640,750,828,1080,1200,1920,2048,3840],imageSizes:[16,32,48,64,96,128,256,384],path:"/_next/image",loader:"default",loaderFile:"",domains:[],disableStaticImages:!1,minimumCacheTTL:60,formats:["image/webp"],dangerouslyAllowSVG:!1,contentSecurityPolicy:"script-src 'none'; frame-src 'none'; sandbox;",contentDispositionType:"attachment",localPatterns:void 0,remotePatterns:[],qualities:void 0,unoptimized:!1}},6919:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),r(8757),self.__next_set_public_path__=e=>{r.p=e},("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},7137:(e,t)=>{"use strict";function r(e){return e.split("/").map(e=>encodeURIComponent(e)).join("/")}Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"encodeURIPath",{enumerable:!0,get:function(){return r}})},7139:(e,t)=>{"use strict";function r(e){let t={};for(let[r,n]of e.entries()){let e=t[r];void 0===e?t[r]=n:Array.isArray(e)?e.push(n):t[r]=[e,n]}return t}function n(e){return"string"==typeof e?e:("number"!=typeof e||isNaN(e))&&"boolean"!=typeof e?"":String(e)}function a(e){let t=new URLSearchParams;for(let[r,a]of Object.entries(e))if(Array.isArray(a))for(let e of a)t.append(r,n(e));else t.set(r,n(a));return t}function o(e){for(var t=arguments.length,r=Array(t>1?t-1:0),n=1;n{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),!function(e,t){for(var r in t)Object.defineProperty(e,r,{enumerable:!0,get:t[r]})}(t,{default:function(){return g},handleClientScriptLoad:function(){return h},initScriptLoader:function(){return _}});let n=r(4252),a=r(8365),o=r(7876),i=n._(r(8477)),u=a._(r(4232)),l=r(6834),s=r(6886),c=r(4754),f=new Map,d=new Set,p=e=>{let{src:t,id:r,onLoad:n=()=>{},onReady:a=null,dangerouslySetInnerHTML:o,children:u="",strategy:l="afterInteractive",onError:c,stylesheets:p}=e,h=r||t;if(h&&d.has(h))return;if(f.has(t)){d.add(h),f.get(t).then(n,c);return}let _=()=>{a&&a(),d.add(h)},m=document.createElement("script"),g=new Promise((e,t)=>{m.addEventListener("load",function(t){e(),n&&n.call(this,t),_()}),m.addEventListener("error",function(e){t(e)})}).catch(function(e){c&&c(e)});o?(m.innerHTML=o.__html||"",_()):u?(m.textContent="string"==typeof u?u:Array.isArray(u)?u.join(""):"",_()):t&&(m.src=t,f.set(t,g)),(0,s.setAttributesFromProps)(m,e),"worker"===l&&m.setAttribute("type","text/partytown"),m.setAttribute("data-nscript",l),p&&(e=>{if(i.default.preinit)return e.forEach(e=>{i.default.preinit(e,{as:"style"})});{let t=document.head;e.forEach(e=>{let r=document.createElement("link");r.type="text/css",r.rel="stylesheet",r.href=e,t.appendChild(r)})}})(p),document.body.appendChild(m)};function h(e){let{strategy:t="afterInteractive"}=e;"lazyOnload"===t?window.addEventListener("load",()=>{(0,c.requestIdleCallback)(()=>p(e))}):p(e)}function _(e){e.forEach(h),[...document.querySelectorAll('[data-nscript="beforeInteractive"]'),...document.querySelectorAll('[data-nscript="beforePageRender"]')].forEach(e=>{let t=e.id||e.getAttribute("src");d.add(t)})}function m(e){let{id:t,src:r="",onLoad:n=()=>{},onReady:a=null,strategy:s="afterInteractive",onError:f,stylesheets:h,..._}=e,{updateScripts:m,scripts:g,getIsSsr:E,appDir:b,nonce:y}=(0,u.useContext)(l.HeadManagerContext);y=_.nonce||y;let P=(0,u.useRef)(!1);(0,u.useEffect)(()=>{let e=t||r;P.current||(a&&e&&d.has(e)&&a(),P.current=!0)},[a,t,r]);let R=(0,u.useRef)(!1);if((0,u.useEffect)(()=>{if(!R.current){if("afterInteractive"===s)p(e);else"lazyOnload"===s&&("complete"===document.readyState?(0,c.requestIdleCallback)(()=>p(e)):window.addEventListener("load",()=>{(0,c.requestIdleCallback)(()=>p(e))}));R.current=!0}},[e,s]),("beforeInteractive"===s||"worker"===s)&&(m?(g[s]=(g[s]||[]).concat([{id:t,src:r,onLoad:n,onReady:a,onError:f,..._,nonce:y}]),m(g)):E&&E()?d.add(t||r):E&&!E()&&p({...e,nonce:y})),b){if(h&&h.forEach(e=>{i.default.preinit(e,{as:"style"})}),"beforeInteractive"===s)if(!r)return _.dangerouslySetInnerHTML&&(_.children=_.dangerouslySetInnerHTML.__html,delete _.dangerouslySetInnerHTML),(0,o.jsx)("script",{nonce:y,dangerouslySetInnerHTML:{__html:"(self.__next_s=self.__next_s||[]).push("+JSON.stringify([0,{..._,id:t}])+")"}});else return i.default.preload(r,_.integrity?{as:"script",integrity:_.integrity,nonce:y,crossOrigin:_.crossOrigin}:{as:"script",nonce:y,crossOrigin:_.crossOrigin}),(0,o.jsx)("script",{nonce:y,dangerouslySetInnerHTML:{__html:"(self.__next_s=self.__next_s||[]).push("+JSON.stringify([r,{..._,id:t}])+")"}});"afterInteractive"===s&&r&&i.default.preload(r,_.integrity?{as:"script",integrity:_.integrity,nonce:y,crossOrigin:_.crossOrigin}:{as:"script",nonce:y,crossOrigin:_.crossOrigin})}return null}Object.defineProperty(m,"__nextScript",{value:!0});let g=m;("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},7465:(e,t)=>{"use strict";function r(e){return e.startsWith("/")?e:"/"+e}Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"ensureLeadingSlash",{enumerable:!0,get:function(){return r}})},7469:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"addBasePath",{enumerable:!0,get:function(){return o}});let n=r(5214),a=r(7810);function o(e,t){return(0,a.normalizePathTrailingSlash)((0,n.addPathPrefix)(e,""))}("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},7647:(e,t,r)=>{"use strict";e.exports=r(9393)},7810:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"normalizePathTrailingSlash",{enumerable:!0,get:function(){return o}});let n=r(9517),a=r(8059),o=e=>{if(!e.startsWith("/"))return e;let{pathname:t,query:r,hash:o}=(0,a.parsePath)(e);return""+(0,n.removeTrailingSlash)(t)+r+o};("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},7925:(e,t)=>{"use strict";function r(e){return Object.prototype.toString.call(e)}function n(e){if("[object Object]"!==r(e))return!1;let t=Object.getPrototypeOf(e);return null===t||t.hasOwnProperty("isPrototypeOf")}Object.defineProperty(t,"__esModule",{value:!0}),!function(e,t){for(var r in t)Object.defineProperty(e,r,{enumerable:!0,get:t[r]})}(t,{getObjectClassLabel:function(){return r},isPlainObject:function(){return n}})},7986:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"addLocale",{enumerable:!0,get:function(){return o}});let n=r(5214),a=r(3563);function o(e,t,r,o){if(!t||t===r)return e;let i=e.toLowerCase();return!o&&((0,a.pathHasPrefix)(i,"/api")||(0,a.pathHasPrefix)(i,"/"+t.toLowerCase()))?e:(0,n.addPathPrefix)(e,"/"+t)}},8059:(e,t)=>{"use strict";function r(e){let t=e.indexOf("#"),r=e.indexOf("?"),n=r>-1&&(t<0||r-1?{pathname:e.substring(0,n?r:t),query:n?e.substring(r,t>-1?t:void 0):"",hash:t>-1?e.slice(t):""}:{pathname:e,query:"",hash:""}}Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"parsePath",{enumerable:!0,get:function(){return r}})},8253:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),!function(e,t){for(var r in t)Object.defineProperty(e,r,{enumerable:!0,get:t[r]})}(t,{Router:function(){return o.default},createRouter:function(){return _},default:function(){return p},makePublicRouterInstance:function(){return m},useRouter:function(){return h},withRouter:function(){return l.default}});let n=r(4252),a=n._(r(4232)),o=n._(r(4929)),i=r(8265),u=n._(r(6240)),l=n._(r(8538)),s={router:null,readyCallbacks:[],ready(e){if(this.router)return e();this.readyCallbacks.push(e)}},c=["pathname","route","query","asPath","components","isFallback","basePath","locale","locales","defaultLocale","isReady","isPreview","isLocaleDomain","domainLocales"],f=["push","replace","reload","back","prefetch","beforePopState"];function d(){if(!s.router)throw Object.defineProperty(Error('No router instance found.\nYou should only use "next/router" on the client side of your app.\n'),"__NEXT_ERROR_CODE",{value:"E394",enumerable:!1,configurable:!0});return s.router}Object.defineProperty(s,"events",{get:()=>o.default.events}),c.forEach(e=>{Object.defineProperty(s,e,{get:()=>d()[e]})}),f.forEach(e=>{s[e]=function(){for(var t=arguments.length,r=Array(t),n=0;n{s.ready(()=>{o.default.events.on(e,function(){for(var t=arguments.length,r=Array(t),n=0;ne()),s.readyCallbacks=[],s.router}function m(e){let t={};for(let r of c){if("object"==typeof e[r]){t[r]=Object.assign(Array.isArray(e[r])?[]:{},e[r]);continue}t[r]=e[r]}return t.events=o.default.events,f.forEach(r=>{t[r]=function(){for(var t=arguments.length,n=Array(t),a=0;a{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"RouterContext",{enumerable:!0,get:function(){return n}});let n=r(4252)._(r(4232)).default.createContext(null)},8316:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"RedirectStatusCode",{enumerable:!0,get:function(){return r}});var r=function(e){return e[e.SeeOther=303]="SeeOther",e[e.TemporaryRedirect=307]="TemporaryRedirect",e[e.PermanentRedirect=308]="PermanentRedirect",e}({});("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},8346:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"isDynamicRoute",{enumerable:!0,get:function(){return i}});let n=r(6443),a=/\/[^/]*\[[^/]+\][^/]*(?=\/|$)/,o=/\/\[[^/]+\](?=\/|$)/;function i(e,t){return(void 0===t&&(t=!0),(0,n.isInterceptionRouteAppPath)(e)&&(e=(0,n.extractInterceptionRouteInformation)(e).interceptedRoute),t)?o.test(e):a.test(e)}},8365:(e,t,r)=>{"use strict";function n(e){if("function"!=typeof WeakMap)return null;var t=new WeakMap,r=new WeakMap;return(n=function(e){return e?r:t})(e)}function a(e,t){if(!t&&e&&e.__esModule)return e;if(null===e||"object"!=typeof e&&"function"!=typeof e)return{default:e};var r=n(t);if(r&&r.has(e))return r.get(e);var a={__proto__:null},o=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var i in e)if("default"!==i&&Object.prototype.hasOwnProperty.call(e,i)){var u=o?Object.getOwnPropertyDescriptor(e,i):null;u&&(u.get||u.set)?Object.defineProperty(a,i,u):a[i]=e[i]}return a.default=e,r&&r.set(e,a),a}r.r(t),r.d(t,{_:()=>a})},8400:(e,t)=>{"use strict";function r(e){return new URL(e,"http://n").searchParams}Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"asPathToSearchParams",{enumerable:!0,get:function(){return r}})},8407:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),!function(e,t){for(var r in t)Object.defineProperty(e,r,{enumerable:!0,get:t[r]})}(t,{DecodeError:function(){return h},MiddlewareNotFoundError:function(){return E},MissingStaticPage:function(){return g},NormalizeError:function(){return _},PageNotFoundError:function(){return m},SP:function(){return d},ST:function(){return p},WEB_VITALS:function(){return r},execOnce:function(){return n},getDisplayName:function(){return l},getLocationOrigin:function(){return i},getURL:function(){return u},isAbsoluteUrl:function(){return o},isResSent:function(){return s},loadGetInitialProps:function(){return f},normalizeRepeatedSlashes:function(){return c},stringifyError:function(){return b}});let r=["CLS","FCP","FID","INP","LCP","TTFB"];function n(e){let t,r=!1;return function(){for(var n=arguments.length,a=Array(n),o=0;oa.test(e);function i(){let{protocol:e,hostname:t,port:r}=window.location;return e+"//"+t+(r?":"+r:"")}function u(){let{href:e}=window.location,t=i();return e.substring(t.length)}function l(e){return"string"==typeof e?e:e.displayName||e.name||"Unknown"}function s(e){return e.finished||e.headersSent}function c(e){let t=e.split("?");return t[0].replace(/\\/g,"/").replace(/\/\/+/g,"/")+(t[1]?"?"+t.slice(1).join("?"):"")}async function f(e,t){let r=t.res||t.ctx&&t.ctx.res;if(!e.getInitialProps)return t.ctx&&t.Component?{pageProps:await f(t.Component,t.ctx)}:{};let n=await e.getInitialProps(t);if(r&&s(r))return n;if(!n)throw Object.defineProperty(Error('"'+l(e)+'.getInitialProps()" should resolve to an object. But found "'+n+'" instead.'),"__NEXT_ERROR_CODE",{value:"E394",enumerable:!1,configurable:!0});return n}let d="undefined"!=typeof performance,p=d&&["mark","measure","getEntriesByName"].every(e=>"function"==typeof performance[e]);class h extends Error{}class _ extends Error{}class m extends Error{constructor(e){super(),this.code="ENOENT",this.name="PageNotFoundError",this.message="Cannot find module for page: "+e}}class g extends Error{constructor(e,t){super(),this.message="Failed to load static file for page: "+e+" "+t}}class E extends Error{constructor(){super(),this.code="ENOENT",this.message="Cannot find the middleware module"}}function b(e){return JSON.stringify({message:e.message,stack:e.stack})}},8460:(e,t)=>{"use strict";function r(){let e=Object.create(null);return{on(t,r){(e[t]||(e[t]=[])).push(r)},off(t,r){e[t]&&e[t].splice(e[t].indexOf(r)>>>0,1)},emit(t){for(var r=arguments.length,n=Array(r>1?r-1:0),a=1;a{e(...n)})}}}Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"default",{enumerable:!0,get:function(){return r}})},8538:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"default",{enumerable:!0,get:function(){return o}}),r(4252);let n=r(7876);r(4232);let a=r(8253);function o(e){function t(t){return(0,n.jsx)(e,{router:(0,a.useRouter)(),...t})}return t.getInitialProps=e.getInitialProps,t.origGetInitialProps=e.origGetInitialProps,t}("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},8660:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),!function(e,t){for(var r in t)Object.defineProperty(e,r,{enumerable:!0,get:t[r]})}(t,{default:function(){return o},isEqualNode:function(){return a}});let n=r(6886);function a(e,t){if(e instanceof HTMLElement&&t instanceof HTMLElement){let r=t.getAttribute("nonce");if(r&&!e.getAttribute("nonce")){let n=t.cloneNode(!0);return n.setAttribute("nonce",""),n.nonce=r,r===e.nonce&&e.isEqualNode(n)}}return e.isEqualNode(t)}function o(){return{mountedInstances:new Set,updateHead:e=>{let t={};e.forEach(e=>{if("link"===e.type&&e.props["data-optimized-fonts"])if(document.querySelector('style[data-href="'+e.props["data-href"]+'"]'))return;else e.props.href=e.props["data-href"],e.props["data-href"]=void 0;let r=t[e.type]||[];r.push(e),t[e.type]=r});let r=t.title?t.title[0]:null,o="";if(r){let{children:e}=r.props;o="string"==typeof e?e:Array.isArray(e)?e.join(""):""}o!==document.title&&(document.title=o),["meta","base","link","style","script"].forEach(e=>{((e,t)=>{let r=document.querySelector("head");if(!r)return;let o=new Set(r.querySelectorAll(""+e+"[data-next-head]"));if("meta"===e){let e=r.querySelector("meta[charset]");null!==e&&o.add(e)}let i=[];for(let e=0;e{"use strict";function r(){return""}Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"getDeploymentIdQueryOrEmptyString",{enumerable:!0,get:function(){return r}})},8804:(e,t)=>{"use strict";function r(e,t){return void 0===t&&(t=""),("/"===e?"/index":/^\/index(\/|$)/.test(e)?"/index"+e:e)+t}Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"default",{enumerable:!0,get:function(){return r}})},9308:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),!function(e,t){for(var r in t)Object.defineProperty(e,r,{enumerable:!0,get:t[r]})}(t,{ACTION_SUFFIX:function(){return f},APP_DIR_ALIAS:function(){return I},CACHE_ONE_YEAR:function(){return v},DOT_NEXT_ALIAS:function(){return w},ESLINT_DEFAULT_DIRS:function(){return Q},GSP_NO_RETURNED_VALUE:function(){return q},GSSP_COMPONENT_MEMBER_ERROR:function(){return Y},GSSP_NO_RETURNED_VALUE:function(){return V},INFINITE_CACHE:function(){return O},INSTRUMENTATION_HOOK_FILENAME:function(){return j},MATCHED_PATH_HEADER:function(){return a},MIDDLEWARE_FILENAME:function(){return S},MIDDLEWARE_LOCATION_REGEXP:function(){return T},NEXT_BODY_SUFFIX:function(){return h},NEXT_CACHE_IMPLICIT_TAG_ID:function(){return R},NEXT_CACHE_REVALIDATED_TAGS_HEADER:function(){return m},NEXT_CACHE_REVALIDATE_TAG_TOKEN_HEADER:function(){return g},NEXT_CACHE_SOFT_TAG_MAX_LENGTH:function(){return P},NEXT_CACHE_TAGS_HEADER:function(){return _},NEXT_CACHE_TAG_MAX_ITEMS:function(){return b},NEXT_CACHE_TAG_MAX_LENGTH:function(){return y},NEXT_DATA_SUFFIX:function(){return d},NEXT_INTERCEPTION_MARKER_PREFIX:function(){return n},NEXT_META_SUFFIX:function(){return p},NEXT_QUERY_PARAM_PREFIX:function(){return r},NEXT_RESUME_HEADER:function(){return E},NON_STANDARD_NODE_ENV:function(){return K},PAGES_DIR_ALIAS:function(){return A},PRERENDER_REVALIDATE_HEADER:function(){return o},PRERENDER_REVALIDATE_ONLY_GENERATED_HEADER:function(){return i},PUBLIC_DIR_MIDDLEWARE_CONFLICT:function(){return B},ROOT_DIR_ALIAS:function(){return C},RSC_ACTION_CLIENT_WRAPPER_ALIAS:function(){return F},RSC_ACTION_ENCRYPTION_ALIAS:function(){return U},RSC_ACTION_PROXY_ALIAS:function(){return x},RSC_ACTION_VALIDATE_ALIAS:function(){return M},RSC_CACHE_WRAPPER_ALIAS:function(){return L},RSC_DYNAMIC_IMPORT_WRAPPER_ALIAS:function(){return D},RSC_MOD_REF_PROXY_ALIAS:function(){return N},RSC_PREFETCH_SUFFIX:function(){return u},RSC_SEGMENTS_DIR_SUFFIX:function(){return l},RSC_SEGMENT_SUFFIX:function(){return s},RSC_SUFFIX:function(){return c},SERVER_PROPS_EXPORT_ERROR:function(){return G},SERVER_PROPS_GET_INIT_PROPS_CONFLICT:function(){return H},SERVER_PROPS_SSG_CONFLICT:function(){return X},SERVER_RUNTIME:function(){return J},SSG_FALLBACK_EXPORT_ERROR:function(){return $},SSG_GET_INITIAL_PROPS_CONFLICT:function(){return k},STATIC_STATUS_PAGE_GET_INITIAL_PROPS_ERROR:function(){return W},UNSTABLE_REVALIDATE_RENAME_ERROR:function(){return z},WEBPACK_LAYERS:function(){return ee},WEBPACK_RESOURCE_QUERIES:function(){return et}});let r="nxtP",n="nxtI",a="x-matched-path",o="x-prerender-revalidate",i="x-prerender-revalidate-if-generated",u=".prefetch.rsc",l=".segments",s=".segment.rsc",c=".rsc",f=".action",d=".json",p=".meta",h=".body",_="x-next-cache-tags",m="x-next-revalidated-tags",g="x-next-revalidate-tag-token",E="next-resume",b=128,y=256,P=1024,R="_N_T_",v=31536e3,O=0xfffffffe,S="middleware",T=`(?:src/)?${S}`,j="instrumentation",A="private-next-pages",w="private-dot-next",C="private-next-root-dir",I="private-next-app-dir",N="private-next-rsc-mod-ref-proxy",M="private-next-rsc-action-validate",x="private-next-rsc-server-reference",L="private-next-rsc-cache-wrapper",D="private-next-rsc-track-dynamic-import",U="private-next-rsc-action-encryption",F="private-next-rsc-action-client-wrapper",B="You can not have a '_next' folder inside of your public folder. This conflicts with the internal '/_next' route. https://nextjs.org/docs/messages/public-next-folder-conflict",k="You can not use getInitialProps with getStaticProps. To use SSG, please remove your getInitialProps",H="You can not use getInitialProps with getServerSideProps. Please remove getInitialProps.",X="You can not use getStaticProps or getStaticPaths with getServerSideProps. To use SSG, please remove getServerSideProps",W="can not have getInitialProps/getServerSideProps, https://nextjs.org/docs/messages/404-get-initial-props",G="pages with `getServerSideProps` can not be exported. See more info here: https://nextjs.org/docs/messages/gssp-export",q="Your `getStaticProps` function did not return an object. Did you forget to add a `return`?",V="Your `getServerSideProps` function did not return an object. Did you forget to add a `return`?",z="The `unstable_revalidate` property is available for general use.\nPlease use `revalidate` instead.",Y="can not be attached to a page's component and must be exported from the page. See more info here: https://nextjs.org/docs/messages/gssp-component-member",K='You are using a non-standard "NODE_ENV" value in your environment. This creates inconsistencies in the project and is strongly advised against. Read more: https://nextjs.org/docs/messages/non-standard-node-env',$="Pages with `fallback` enabled in `getStaticPaths` can not be exported. See more info here: https://nextjs.org/docs/messages/ssg-fallback-true-export",Q=["app","pages","components","lib","src"],J={edge:"edge",experimentalEdge:"experimental-edge",nodejs:"nodejs"},Z={shared:"shared",reactServerComponents:"rsc",serverSideRendering:"ssr",actionBrowser:"action-browser",apiNode:"api-node",apiEdge:"api-edge",middleware:"middleware",instrument:"instrument",edgeAsset:"edge-asset",appPagesBrowser:"app-pages-browser",pagesDirBrowser:"pages-dir-browser",pagesDirEdge:"pages-dir-edge",pagesDirNode:"pages-dir-node"},ee={...Z,GROUP:{builtinReact:[Z.reactServerComponents,Z.actionBrowser],serverOnly:[Z.reactServerComponents,Z.actionBrowser,Z.instrument,Z.middleware],neutralTarget:[Z.apiNode,Z.apiEdge],clientOnly:[Z.serverSideRendering,Z.appPagesBrowser],bundled:[Z.reactServerComponents,Z.actionBrowser,Z.serverSideRendering,Z.appPagesBrowser,Z.shared,Z.instrument,Z.middleware],appPages:[Z.reactServerComponents,Z.serverSideRendering,Z.appPagesBrowser,Z.actionBrowser]}},et={edgeSSREntry:"__next_edge_ssr_entry__",metadata:"__next_metadata__",metadataRoute:"__next_metadata_route__",metadataImageMeta:"__next_metadata_image_meta__"}},9393:()=>{},9517:(e,t)=>{"use strict";function r(e){return e.replace(/\/$/,"")||"/"}Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"removeTrailingSlash",{enumerable:!0,get:function(){return r}})},9591:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),!function(e,t){for(var r in t)Object.defineProperty(e,r,{enumerable:!0,get:t[r]})}(t,{createRouteLoader:function(){return m},getClientBuildManifest:function(){return h},isAssetError:function(){return c},markAssetError:function(){return s}}),r(4252),r(8804);let n=r(5647),a=r(4754),o=r(8757),i=r(7137);function u(e,t,r){let n,a=t.get(e);if(a)return"future"in a?a.future:Promise.resolve(a);let o=new Promise(e=>{n=e});return t.set(e,{resolve:n,future:o}),r?r().then(e=>(n(e),e)).catch(r=>{throw t.delete(e),r}):o}let l=Symbol("ASSET_LOAD_ERROR");function s(e){return Object.defineProperty(e,l,{})}function c(e){return e&&l in e}let f=function(e){try{return e=document.createElement("link"),!!window.MSInputMethodContext&&!!document.documentMode||e.relList.supports("prefetch")}catch(e){return!1}}(),d=()=>(0,o.getDeploymentIdQueryOrEmptyString)();function p(e,t,r){return new Promise((n,o)=>{let i=!1;e.then(e=>{i=!0,n(e)}).catch(o),(0,a.requestIdleCallback)(()=>setTimeout(()=>{i||o(r)},t))})}function h(){return self.__BUILD_MANIFEST?Promise.resolve(self.__BUILD_MANIFEST):p(new Promise(e=>{let t=self.__BUILD_MANIFEST_CB;self.__BUILD_MANIFEST_CB=()=>{e(self.__BUILD_MANIFEST),t&&t()}}),3800,s(Object.defineProperty(Error("Failed to load client build manifest"),"__NEXT_ERROR_CODE",{value:"E273",enumerable:!1,configurable:!0})))}function _(e,t){return h().then(r=>{if(!(t in r))throw s(Object.defineProperty(Error("Failed to lookup route: "+t),"__NEXT_ERROR_CODE",{value:"E446",enumerable:!1,configurable:!0}));let a=r[t].map(t=>e+"/_next/"+(0,i.encodeURIPath)(t));return{scripts:a.filter(e=>e.endsWith(".js")).map(e=>(0,n.__unsafeCreateTrustedScriptURL)(e)+d()),css:a.filter(e=>e.endsWith(".css")).map(e=>e+d())}})}function m(e){let t=new Map,r=new Map,n=new Map,o=new Map;function i(e){{var t;let n=r.get(e.toString());return n?n:document.querySelector('script[src^="'+e+'"]')?Promise.resolve():(r.set(e.toString(),n=new Promise((r,n)=>{(t=document.createElement("script")).onload=r,t.onerror=()=>n(s(Object.defineProperty(Error("Failed to load script: "+e),"__NEXT_ERROR_CODE",{value:"E74",enumerable:!1,configurable:!0}))),t.crossOrigin=void 0,t.src=e,document.body.appendChild(t)})),n)}}function l(e){let t=n.get(e);return t||n.set(e,t=fetch(e,{credentials:"same-origin"}).then(t=>{if(!t.ok)throw Object.defineProperty(Error("Failed to load stylesheet: "+e),"__NEXT_ERROR_CODE",{value:"E189",enumerable:!1,configurable:!0});return t.text().then(t=>({href:e,content:t}))}).catch(e=>{throw s(e)})),t}return{whenEntrypoint:e=>u(e,t),onEntrypoint(e,r){(r?Promise.resolve().then(()=>r()).then(e=>({component:e&&e.default||e,exports:e}),e=>({error:e})):Promise.resolve(void 0)).then(r=>{let n=t.get(e);n&&"resolve"in n?r&&(t.set(e,r),n.resolve(r)):(r?t.set(e,r):t.delete(e),o.delete(e))})},loadRoute(r,n){return u(r,o,()=>{let a;return p(_(e,r).then(e=>{let{scripts:n,css:a}=e;return Promise.all([t.has(r)?[]:Promise.all(n.map(i)),Promise.all(a.map(l))])}).then(e=>this.whenEntrypoint(r).then(t=>({entrypoint:t,styles:e[1]}))),3800,s(Object.defineProperty(Error("Route did not complete loading: "+r),"__NEXT_ERROR_CODE",{value:"E12",enumerable:!1,configurable:!0}))).then(e=>{let{entrypoint:t,styles:r}=e,n=Object.assign({styles:r},t);return"error"in t?t:n}).catch(e=>{if(n)throw e;return{error:e}}).finally(()=>null==a?void 0:a())})},prefetch(t){let r;return(r=navigator.connection)&&(r.saveData||/2g/.test(r.effectiveType))?Promise.resolve():_(e,t).then(e=>Promise.all(f?e.scripts.map(e=>{var t,r,n;return t=e.toString(),r="script",new Promise((e,a)=>{let o='\n link[rel="prefetch"][href^="'+t+'"],\n link[rel="preload"][href^="'+t+'"],\n script[src^="'+t+'"]';if(document.querySelector(o))return e();n=document.createElement("link"),r&&(n.as=r),n.rel="prefetch",n.crossOrigin=void 0,n.onload=e,n.onerror=()=>a(s(Object.defineProperty(Error("Failed to prefetch: "+t),"__NEXT_ERROR_CODE",{value:"E268",enumerable:!1,configurable:!0}))),n.href=t,document.head.appendChild(n)})}):[])).then(()=>{(0,a.requestIdleCallback)(()=>this.loadRoute(t,!0).catch(()=>{}))}).catch(()=>{})}}}("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},9645:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),!function(e,t){for(var r in t)Object.defineProperty(e,r,{enumerable:!0,get:t[r]})}(t,{getNamedMiddlewareRegex:function(){return _},getNamedRouteRegex:function(){return h},getRouteRegex:function(){return f},parseParameter:function(){return l}});let n=r(9308),a=r(6443),o=r(3137),i=r(9517),u=/^([^[]*)\[((?:\[[^\]]*\])|[^\]]+)\](.*)$/;function l(e){let t=e.match(u);return t?s(t[2]):s(e)}function s(e){let t=e.startsWith("[")&&e.endsWith("]");t&&(e=e.slice(1,-1));let r=e.startsWith("...");return r&&(e=e.slice(3)),{key:e,repeat:r,optional:t}}function c(e,t,r){let n={},l=1,c=[];for(let f of(0,i.removeTrailingSlash)(e).slice(1).split("/")){let e=a.INTERCEPTION_ROUTE_MARKERS.find(e=>f.startsWith(e)),i=f.match(u);if(e&&i&&i[2]){let{key:t,optional:r,repeat:a}=s(i[2]);n[t]={pos:l++,repeat:a,optional:r},c.push("/"+(0,o.escapeStringRegexp)(e)+"([^/]+?)")}else if(i&&i[2]){let{key:e,repeat:t,optional:a}=s(i[2]);n[e]={pos:l++,repeat:t,optional:a},r&&i[1]&&c.push("/"+(0,o.escapeStringRegexp)(i[1]));let u=t?a?"(?:/(.+?))?":"/(.+?)":"/([^/]+?)";r&&i[1]&&(u=u.substring(1)),c.push(u)}else c.push("/"+(0,o.escapeStringRegexp)(f));t&&i&&i[3]&&c.push((0,o.escapeStringRegexp)(i[3]))}return{parameterizedRoute:c.join(""),groups:n}}function f(e,t){let{includeSuffix:r=!1,includePrefix:n=!1,excludeOptionalTrailingSlash:a=!1}=void 0===t?{}:t,{parameterizedRoute:o,groups:i}=c(e,r,n),u=o;return a||(u+="(?:/)?"),{re:RegExp("^"+u+"$"),groups:i}}function d(e){let t,{interceptionMarker:r,getSafeRouteKey:n,segment:a,routeKeys:i,keyPrefix:u,backreferenceDuplicateKeys:l}=e,{key:c,optional:f,repeat:d}=s(a),p=c.replace(/\W/g,"");u&&(p=""+u+p);let h=!1;(0===p.length||p.length>30)&&(h=!0),isNaN(parseInt(p.slice(0,1)))||(h=!0),h&&(p=n());let _=p in i;u?i[p]=""+u+c:i[p]=c;let m=r?(0,o.escapeStringRegexp)(r):"";return t=_&&l?"\\k<"+p+">":d?"(?<"+p+">.+?)":"(?<"+p+">[^/]+?)",f?"(?:/"+m+t+")?":"/"+m+t}function p(e,t,r,l,s){let c,f=(c=0,()=>{let e="",t=++c;for(;t>0;)e+=String.fromCharCode(97+(t-1)%26),t=Math.floor((t-1)/26);return e}),p={},h=[];for(let c of(0,i.removeTrailingSlash)(e).slice(1).split("/")){let e=a.INTERCEPTION_ROUTE_MARKERS.some(e=>c.startsWith(e)),i=c.match(u);if(e&&i&&i[2])h.push(d({getSafeRouteKey:f,interceptionMarker:i[1],segment:i[2],routeKeys:p,keyPrefix:t?n.NEXT_INTERCEPTION_MARKER_PREFIX:void 0,backreferenceDuplicateKeys:s}));else if(i&&i[2]){l&&i[1]&&h.push("/"+(0,o.escapeStringRegexp)(i[1]));let e=d({getSafeRouteKey:f,segment:i[2],routeKeys:p,keyPrefix:t?n.NEXT_QUERY_PARAM_PREFIX:void 0,backreferenceDuplicateKeys:s});l&&i[1]&&(e=e.substring(1)),h.push(e)}else h.push("/"+(0,o.escapeStringRegexp)(c));r&&i&&i[3]&&h.push((0,o.escapeStringRegexp)(i[3]))}return{namedParameterizedRoute:h.join(""),routeKeys:p}}function h(e,t){var r,n,a;let o=p(e,t.prefixRouteKeys,null!=(r=t.includeSuffix)&&r,null!=(n=t.includePrefix)&&n,null!=(a=t.backreferenceDuplicateKeys)&&a),i=o.namedParameterizedRoute;return t.excludeOptionalTrailingSlash||(i+="(?:/)?"),{...f(e,t),namedRegex:"^"+i+"$",routeKeys:o.routeKeys}}function _(e,t){let{parameterizedRoute:r}=c(e,!1,!1),{catchAll:n=!0}=t;if("/"===r)return{namedRegex:"^/"+(n?".*":"")+"$"};let{namedParameterizedRoute:a}=p(e,!1,!1,!1,!1);return{namedRegex:"^"+a+(n?"(?:(/.*)?)":"")+"$"}}},9742:e=>{var t,r,n,a=e.exports={};function o(){throw Error("setTimeout has not been defined")}function i(){throw Error("clearTimeout has not been defined")}try{t="function"==typeof setTimeout?setTimeout:o}catch(e){t=o}try{r="function"==typeof clearTimeout?clearTimeout:i}catch(e){r=i}function u(e){if(t===setTimeout)return setTimeout(e,0);if((t===o||!t)&&setTimeout)return t=setTimeout,setTimeout(e,0);try{return t(e,0)}catch(r){try{return t.call(null,e,0)}catch(r){return t.call(this,e,0)}}}var l=[],s=!1,c=-1;function f(){s&&n&&(s=!1,n.length?l=n.concat(l):c=-1,l.length&&d())}function d(){if(!s){var e=u(f);s=!0;for(var t=l.length;t;){for(n=l,l=[];++c1)for(var r=1;r{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"reportGlobalError",{enumerable:!0,get:function(){return r}});let r="function"==typeof reportError?reportError:e=>{globalThis.console.error(e)};("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},9960:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"parseRelativeUrl",{enumerable:!0,get:function(){return o}});let n=r(8407),a=r(7139);function o(e,t,r){void 0===r&&(r=!0);let o=new URL((0,n.getLocationOrigin)()),i=t?new URL(t,o):e.startsWith(".")?new URL(window.location.href):o,{pathname:u,searchParams:l,search:s,hash:c,href:f,origin:d}=new URL(e,i);if(d!==o.origin)throw Object.defineProperty(Error("invariant: invalid relative URL, router received "+e),"__NEXT_ERROR_CODE",{value:"E159",enumerable:!1,configurable:!0});return{pathname:u,query:r?(0,a.searchParamsToUrlQuery)(l):void 0,search:s,hash:c,href:f.slice(d.length),slashes:void 0}}}},e=>{e.O(0,[593],()=>e(e.s=2193)),_N_E=e.O()}]); \ No newline at end of file diff --git a/.next/static/chunks/pages/about-2092805e7bd2ab57.js b/.next/static/chunks/pages/about-2092805e7bd2ab57.js deleted file mode 100644 index e6a2148..0000000 --- a/.next/static/chunks/pages/about-2092805e7bd2ab57.js +++ /dev/null @@ -1 +0,0 @@ -(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[239],{3608:(e,r,s)=>{(window.__NEXT_P=window.__NEXT_P||[]).push(["/about",function(){return s(7222)}])},4518:(e,r,s)=>{"use strict";s.d(r,{A:()=>t});var a=s(7876);function t(){return(0,a.jsx)("footer",{className:"fixed bottom-0 left-0 w-full bg-background border-t py-4",children:(0,a.jsxs)("div",{className:"container mx-auto flex justify-between items-center text-sm text-primary",children:[(0,a.jsx)("p",{children:"\xa9 2025 CloudProxy 服务"}),(0,a.jsxs)("div",{className:"space-x-4",children:[(0,a.jsx)("a",{href:"#","aria-label":"Twitter",children:"Twitter"}),(0,a.jsx)("a",{href:"#","aria-label":"GitHub",children:"GitHub"}),(0,a.jsx)("a",{href:"#","aria-label":"LinkedIn",children:"LinkedIn"})]})]})})}},7222:(e,r,s)=>{"use strict";s.r(r),s.d(r,{default:()=>i});var a=s(7876),t=s(8139);function n(){return(0,a.jsx)("section",{className:"px-6 py-section bg-background",children:(0,a.jsxs)("div",{className:"max-w-screen-md mx-auto space-y-section",children:[(0,a.jsx)("h2",{className:"text-3xl font-semibold text-center",children:"关于我们"}),(0,a.jsx)("p",{className:"text-base leading-relaxed",children:"CloudProxy 致力于为全球用户提供高性能、可靠、安全的云加速服务。我们的核心团队来自 AWS、阿里云等一线云计算厂商,拥有多年的网络优化和运维经验。"}),(0,a.jsx)("p",{className:"text-base leading-relaxed",children:"自成立以来,我们已为数百家企业提供定制化加速解决方案,覆盖电商、游戏、金融、教育等多个行业,帮助客户显著提升网站访问速度和稳定性。"}),(0,a.jsxs)("div",{className:"grid grid-cols-1 md:grid-cols-3 gap-8 text-center",children:[(0,a.jsxs)("div",{children:[(0,a.jsx)("h3",{className:"text-2xl font-medium",children:"使命"}),(0,a.jsx)("p",{className:"mt-2 text-sm text-gray-600",children:"让全球互联网无障碍连接,推动业务高速增长。"})]}),(0,a.jsxs)("div",{children:[(0,a.jsx)("h3",{className:"text-2xl font-medium",children:"愿景"}),(0,a.jsx)("p",{className:"mt-2 text-sm text-gray-600",children:"成为全球领先的云网络加速平台。"})]}),(0,a.jsxs)("div",{children:[(0,a.jsx)("h3",{className:"text-2xl font-medium",children:"价值观"}),(0,a.jsx)("p",{className:"mt-2 text-sm text-gray-600",children:"客户为先,技术驱动,持续创新。"})]})]})]})})}var l=s(4518);function i(){return(0,a.jsxs)("div",{className:"pt-16 pb-12 bg-background",children:[(0,a.jsx)(t.A,{}),(0,a.jsx)("main",{children:(0,a.jsx)(n,{})}),(0,a.jsx)(l.A,{})]})}},8139:(e,r,s)=>{"use strict";s.d(r,{A:()=>x});var a=s(7876),t=s(4232),n=s(8230),l=s.n(n),i=s(8447);function c(e){let{open:r,onClose:s}=e;return(0,a.jsxs)("aside",{className:"fixed inset-y-0 right-0 w-64 bg-background shadow-lg transform transition-transform duration-300 "+(r?"translate-x-0":"translate-x-full"),children:[(0,a.jsx)("button",{onClick:s,className:"p-4 focus:outline-none text-primary",children:"✕ 关闭"}),(0,a.jsxs)("nav",{className:"flex flex-col p-6 gap-6 font-medium",children:[(0,a.jsx)(l(),{href:"/features",legacyBehavior:!0,children:(0,a.jsx)("a",{onClick:s,className:"hover:text-accent",children:"特性"})}),(0,a.jsx)(l(),{href:"/pricing",legacyBehavior:!0,children:(0,a.jsx)("a",{onClick:s,className:"hover:text-accent",children:"定价"})}),(0,a.jsx)(l(),{href:"/contact",legacyBehavior:!0,children:(0,a.jsx)("a",{onClick:s,className:"hover:text-accent",children:"联系我们"})})]})]})}function x(){let[e,r]=(0,t.useState)(!1);return(0,a.jsxs)("header",{className:"fixed top-0 left-0 w-full bg-background shadow-sm z-50",children:[(0,a.jsxs)("div",{className:"container mx-auto flex items-center justify-between h-16 px-4",children:[(0,a.jsxs)("div",{className:"flex items-center space-x-4",children:[(0,a.jsx)("button",{className:"md:hidden p-2 focus:outline-none",onClick:()=>r(!0),children:(0,a.jsx)(i.A,{className:"h-6 w-6 text-primary"})}),(0,a.jsx)(l(),{href:"/",children:(0,a.jsx)("img",{src:"/logo.png",alt:"CloudProxy",className:"h-8 w-8"})}),(0,a.jsxs)("nav",{className:"hidden md:flex items-center space-x-4",children:[(0,a.jsx)(l(),{href:"/",className:"text-primary font-semibold",children:"首页"}),(0,a.jsx)(l(),{href:"/features",className:"text-gray-600 hover:text-primary",children:"产品与服务"}),(0,a.jsx)(l(),{href:"/news",className:"text-gray-600 hover:text-primary",children:"新闻资讯"}),(0,a.jsx)(l(),{href:"/cases",className:"text-gray-600 hover:text-primary",children:"客户案例"}),(0,a.jsx)(l(),{href:"/about",className:"text-gray-600 hover:text-primary",children:"关于我们"})]})]}),(0,a.jsxs)("div",{className:"flex items-center space-x-4",children:[(0,a.jsx)(l(),{href:"/login",className:"px-4 py-1 border border-primary rounded-full text-primary hover:bg-primary hover:text-white transition",children:"Log in"}),(0,a.jsx)("a",{href:"https://instagram.com",target:"_blank",rel:"noopener noreferrer",children:(0,a.jsx)("i",{className:"fab fa-instagram text-gray-600 hover:text-primary"})}),(0,a.jsx)("a",{href:"https://facebook.com",target:"_blank",rel:"noopener noreferrer",children:(0,a.jsx)("i",{className:"fab fa-facebook text-gray-600 hover:text-primary"})}),(0,a.jsx)("a",{href:"https://twitter.com",target:"_blank",rel:"noopener noreferrer",children:(0,a.jsx)("i",{className:"fab fa-twitter text-gray-600 hover:text-primary"})})]})]}),(0,a.jsx)(c,{open:e,onClose:()=>r(!1)})]})}}},e=>{e.O(0,[752,636,593,792],()=>e(e.s=3608)),_N_E=e.O()}]); \ No newline at end of file diff --git a/.next/static/chunks/pages/cases-7fc60f7f3779c332.js b/.next/static/chunks/pages/cases-7fc60f7f3779c332.js deleted file mode 100644 index cf79996..0000000 --- a/.next/static/chunks/pages/cases-7fc60f7f3779c332.js +++ /dev/null @@ -1 +0,0 @@ -(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[415],{620:(e,r,s)=>{(window.__NEXT_P=window.__NEXT_P||[]).push(["/cases",function(){return s(3269)}])},3269:(e,r,s)=>{"use strict";s.r(r),s.d(r,{default:()=>l});var a=s(7876),t=s(8139),i=s(4232);function n(){let[e,r]=(0,i.useState)([]);return(0,i.useEffect)(()=>{r([{id:"1",name:"电商平台加速",image:"/cases/ecommerce.jpg",description:"帮助某大型电商客户降低页面加载时间30%..."},{id:"2",name:"游戏联机稳定",image:"/cases/gaming.jpg",description:"为游戏公司提供全球节点加速,延迟稳定在50ms以内..."}])},[]),(0,a.jsxs)("section",{className:"px-6 py-section bg-background",children:[(0,a.jsx)("h2",{className:"text-3xl font-semibold mb-8",children:"客户案例"}),(0,a.jsx)("div",{className:"grid grid-cols-1 md:grid-cols-2 gap-8",children:e.map(e=>(0,a.jsxs)("div",{className:"bg-gray-50 rounded-lg overflow-hidden hover:shadow-lg",children:[(0,a.jsx)("img",{src:e.image,alt:e.name,className:"w-full h-48 object-cover"}),(0,a.jsxs)("div",{className:"p-4",children:[(0,a.jsx)("h3",{className:"text-xl font-medium mb-2",children:e.name}),(0,a.jsx)("p",{className:"text-gray-700 text-sm",children:e.description})]})]},e.id))})]})}var c=s(4518);function l(){return(0,a.jsxs)("div",{className:"pt-16 pb-12 bg-background",children:[(0,a.jsx)(t.A,{}),(0,a.jsx)("main",{children:(0,a.jsx)(n,{})}),(0,a.jsx)(c.A,{})]})}},4518:(e,r,s)=>{"use strict";s.d(r,{A:()=>t});var a=s(7876);function t(){return(0,a.jsx)("footer",{className:"fixed bottom-0 left-0 w-full bg-background border-t py-4",children:(0,a.jsxs)("div",{className:"container mx-auto flex justify-between items-center text-sm text-primary",children:[(0,a.jsx)("p",{children:"\xa9 2025 CloudProxy 服务"}),(0,a.jsxs)("div",{className:"space-x-4",children:[(0,a.jsx)("a",{href:"#","aria-label":"Twitter",children:"Twitter"}),(0,a.jsx)("a",{href:"#","aria-label":"GitHub",children:"GitHub"}),(0,a.jsx)("a",{href:"#","aria-label":"LinkedIn",children:"LinkedIn"})]})]})})}},8139:(e,r,s)=>{"use strict";s.d(r,{A:()=>o});var a=s(7876),t=s(4232),i=s(8230),n=s.n(i),c=s(8447);function l(e){let{open:r,onClose:s}=e;return(0,a.jsxs)("aside",{className:"fixed inset-y-0 right-0 w-64 bg-background shadow-lg transform transition-transform duration-300 "+(r?"translate-x-0":"translate-x-full"),children:[(0,a.jsx)("button",{onClick:s,className:"p-4 focus:outline-none text-primary",children:"✕ 关闭"}),(0,a.jsxs)("nav",{className:"flex flex-col p-6 gap-6 font-medium",children:[(0,a.jsx)(n(),{href:"/features",legacyBehavior:!0,children:(0,a.jsx)("a",{onClick:s,className:"hover:text-accent",children:"特性"})}),(0,a.jsx)(n(),{href:"/pricing",legacyBehavior:!0,children:(0,a.jsx)("a",{onClick:s,className:"hover:text-accent",children:"定价"})}),(0,a.jsx)(n(),{href:"/contact",legacyBehavior:!0,children:(0,a.jsx)("a",{onClick:s,className:"hover:text-accent",children:"联系我们"})})]})]})}function o(){let[e,r]=(0,t.useState)(!1);return(0,a.jsxs)("header",{className:"fixed top-0 left-0 w-full bg-background shadow-sm z-50",children:[(0,a.jsxs)("div",{className:"container mx-auto flex items-center justify-between h-16 px-4",children:[(0,a.jsxs)("div",{className:"flex items-center space-x-4",children:[(0,a.jsx)("button",{className:"md:hidden p-2 focus:outline-none",onClick:()=>r(!0),children:(0,a.jsx)(c.A,{className:"h-6 w-6 text-primary"})}),(0,a.jsx)(n(),{href:"/",children:(0,a.jsx)("img",{src:"/logo.png",alt:"CloudProxy",className:"h-8 w-8"})}),(0,a.jsxs)("nav",{className:"hidden md:flex items-center space-x-4",children:[(0,a.jsx)(n(),{href:"/",className:"text-primary font-semibold",children:"首页"}),(0,a.jsx)(n(),{href:"/features",className:"text-gray-600 hover:text-primary",children:"产品与服务"}),(0,a.jsx)(n(),{href:"/news",className:"text-gray-600 hover:text-primary",children:"新闻资讯"}),(0,a.jsx)(n(),{href:"/cases",className:"text-gray-600 hover:text-primary",children:"客户案例"}),(0,a.jsx)(n(),{href:"/about",className:"text-gray-600 hover:text-primary",children:"关于我们"})]})]}),(0,a.jsxs)("div",{className:"flex items-center space-x-4",children:[(0,a.jsx)(n(),{href:"/login",className:"px-4 py-1 border border-primary rounded-full text-primary hover:bg-primary hover:text-white transition",children:"Log in"}),(0,a.jsx)("a",{href:"https://instagram.com",target:"_blank",rel:"noopener noreferrer",children:(0,a.jsx)("i",{className:"fab fa-instagram text-gray-600 hover:text-primary"})}),(0,a.jsx)("a",{href:"https://facebook.com",target:"_blank",rel:"noopener noreferrer",children:(0,a.jsx)("i",{className:"fab fa-facebook text-gray-600 hover:text-primary"})}),(0,a.jsx)("a",{href:"https://twitter.com",target:"_blank",rel:"noopener noreferrer",children:(0,a.jsx)("i",{className:"fab fa-twitter text-gray-600 hover:text-primary"})})]})]}),(0,a.jsx)(l,{open:e,onClose:()=>r(!1)})]})}}},e=>{e.O(0,[752,636,593,792],()=>e(e.s=620)),_N_E=e.O()}]); \ No newline at end of file diff --git a/.next/static/chunks/pages/contact-eb714edd6749b939.js b/.next/static/chunks/pages/contact-eb714edd6749b939.js deleted file mode 100644 index 6057239..0000000 --- a/.next/static/chunks/pages/contact-eb714edd6749b939.js +++ /dev/null @@ -1 +0,0 @@ -(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[364],{1966:(e,a,r)=>{"use strict";r.r(a),r.d(a,{default:()=>c});var s=r(7876),t=r(8139),n=r(4232);function l(){let[e,a]=(0,n.useState)({name:"",email:"",msg:""}),[r,t]=(0,n.useState)("");return(0,s.jsx)("section",{className:"px-6 py-section bg-background",children:(0,s.jsxs)("div",{className:"max-w-screen-sm mx-auto space-y-6",children:[(0,s.jsx)("h2",{className:"text-3xl font-light text-center",children:"联系我们"}),r&&(0,s.jsx)("p",{className:"text-red-500 text-sm",children:r}),(0,s.jsxs)("form",{className:"flex flex-col space-y-4",onSubmit:a=>{if(a.preventDefault(),!e.name||!e.email||!e.msg)return void t("所有字段均为必填")},children:[(0,s.jsx)("input",{type:"text",placeholder:"姓名",className:"border p-3 rounded",value:e.name,onChange:r=>a({...e,name:r.target.value})}),(0,s.jsx)("input",{type:"email",placeholder:"邮箱",className:"border p-3 rounded",value:e.email,onChange:r=>a({...e,email:r.target.value})}),(0,s.jsx)("textarea",{placeholder:"留言",rows:5,className:"border p-3 rounded",value:e.msg,onChange:r=>a({...e,msg:r.target.value})}),(0,s.jsx)("button",{type:"submit",className:"py-3 bg-accent text-white rounded disabled:opacity-50",disabled:!e.name||!e.email||!e.msg,children:"发送"})]})]})})}var i=r(4518);function c(){return(0,s.jsxs)("div",{className:"pt-16 pb-12 bg-background",children:[(0,s.jsx)(t.A,{}),(0,s.jsx)("main",{children:(0,s.jsx)(l,{})}),(0,s.jsx)(i.A,{})]})}},4518:(e,a,r)=>{"use strict";r.d(a,{A:()=>t});var s=r(7876);function t(){return(0,s.jsx)("footer",{className:"fixed bottom-0 left-0 w-full bg-background border-t py-4",children:(0,s.jsxs)("div",{className:"container mx-auto flex justify-between items-center text-sm text-primary",children:[(0,s.jsx)("p",{children:"\xa9 2025 CloudProxy 服务"}),(0,s.jsxs)("div",{className:"space-x-4",children:[(0,s.jsx)("a",{href:"#","aria-label":"Twitter",children:"Twitter"}),(0,s.jsx)("a",{href:"#","aria-label":"GitHub",children:"GitHub"}),(0,s.jsx)("a",{href:"#","aria-label":"LinkedIn",children:"LinkedIn"})]})]})})}},5276:(e,a,r)=>{(window.__NEXT_P=window.__NEXT_P||[]).push(["/contact",function(){return r(1966)}])},8139:(e,a,r)=>{"use strict";r.d(a,{A:()=>o});var s=r(7876),t=r(4232),n=r(8230),l=r.n(n),i=r(8447);function c(e){let{open:a,onClose:r}=e;return(0,s.jsxs)("aside",{className:"fixed inset-y-0 right-0 w-64 bg-background shadow-lg transform transition-transform duration-300 "+(a?"translate-x-0":"translate-x-full"),children:[(0,s.jsx)("button",{onClick:r,className:"p-4 focus:outline-none text-primary",children:"✕ 关闭"}),(0,s.jsxs)("nav",{className:"flex flex-col p-6 gap-6 font-medium",children:[(0,s.jsx)(l(),{href:"/features",legacyBehavior:!0,children:(0,s.jsx)("a",{onClick:r,className:"hover:text-accent",children:"特性"})}),(0,s.jsx)(l(),{href:"/pricing",legacyBehavior:!0,children:(0,s.jsx)("a",{onClick:r,className:"hover:text-accent",children:"定价"})}),(0,s.jsx)(l(),{href:"/contact",legacyBehavior:!0,children:(0,s.jsx)("a",{onClick:r,className:"hover:text-accent",children:"联系我们"})})]})]})}function o(){let[e,a]=(0,t.useState)(!1);return(0,s.jsxs)("header",{className:"fixed top-0 left-0 w-full bg-background shadow-sm z-50",children:[(0,s.jsxs)("div",{className:"container mx-auto flex items-center justify-between h-16 px-4",children:[(0,s.jsxs)("div",{className:"flex items-center space-x-4",children:[(0,s.jsx)("button",{className:"md:hidden p-2 focus:outline-none",onClick:()=>a(!0),children:(0,s.jsx)(i.A,{className:"h-6 w-6 text-primary"})}),(0,s.jsx)(l(),{href:"/",children:(0,s.jsx)("img",{src:"/logo.png",alt:"CloudProxy",className:"h-8 w-8"})}),(0,s.jsxs)("nav",{className:"hidden md:flex items-center space-x-4",children:[(0,s.jsx)(l(),{href:"/",className:"text-primary font-semibold",children:"首页"}),(0,s.jsx)(l(),{href:"/features",className:"text-gray-600 hover:text-primary",children:"产品与服务"}),(0,s.jsx)(l(),{href:"/news",className:"text-gray-600 hover:text-primary",children:"新闻资讯"}),(0,s.jsx)(l(),{href:"/cases",className:"text-gray-600 hover:text-primary",children:"客户案例"}),(0,s.jsx)(l(),{href:"/about",className:"text-gray-600 hover:text-primary",children:"关于我们"})]})]}),(0,s.jsxs)("div",{className:"flex items-center space-x-4",children:[(0,s.jsx)(l(),{href:"/login",className:"px-4 py-1 border border-primary rounded-full text-primary hover:bg-primary hover:text-white transition",children:"Log in"}),(0,s.jsx)("a",{href:"https://instagram.com",target:"_blank",rel:"noopener noreferrer",children:(0,s.jsx)("i",{className:"fab fa-instagram text-gray-600 hover:text-primary"})}),(0,s.jsx)("a",{href:"https://facebook.com",target:"_blank",rel:"noopener noreferrer",children:(0,s.jsx)("i",{className:"fab fa-facebook text-gray-600 hover:text-primary"})}),(0,s.jsx)("a",{href:"https://twitter.com",target:"_blank",rel:"noopener noreferrer",children:(0,s.jsx)("i",{className:"fab fa-twitter text-gray-600 hover:text-primary"})})]})]}),(0,s.jsx)(c,{open:e,onClose:()=>a(!1)})]})}}},e=>{e.O(0,[752,636,593,792],()=>e(e.s=5276)),_N_E=e.O()}]); \ No newline at end of file diff --git a/.next/static/chunks/pages/features-c01c43eb1fe58456.js b/.next/static/chunks/pages/features-c01c43eb1fe58456.js deleted file mode 100644 index b0ef1ba..0000000 --- a/.next/static/chunks/pages/features-c01c43eb1fe58456.js +++ /dev/null @@ -1 +0,0 @@ -(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[469],{769:(e,r,s)=>{"use strict";s.d(r,{A:()=>a});let a=(0,s(1713).A)("globe",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"M12 2a14.5 14.5 0 0 0 0 20 14.5 14.5 0 0 0 0-20",key:"13o1zl"}],["path",{d:"M2 12h20",key:"9i4pu4"}]])},2898:(e,r,s)=>{(window.__NEXT_P=window.__NEXT_P||[]).push(["/features",function(){return s(7362)}])},3070:(e,r,s)=>{"use strict";s.d(r,{A:()=>c});var a=s(7876),t=s(769),n=s(1713);let l=(0,n.A)("repeat",[["path",{d:"m17 2 4 4-4 4",key:"nntrym"}],["path",{d:"M3 11v-1a4 4 0 0 1 4-4h14",key:"84bu3i"}],["path",{d:"m7 22-4-4 4-4",key:"1wqhfi"}],["path",{d:"M21 13v1a4 4 0 0 1-4 4H3",key:"1rx37r"}]]),i=(0,n.A)("chart-no-axes-column-increasing",[["line",{x1:"12",x2:"12",y1:"20",y2:"10",key:"1vz5eb"}],["line",{x1:"18",x2:"18",y1:"20",y2:"4",key:"cun8e5"}],["line",{x1:"6",x2:"6",y1:"20",y2:"16",key:"hq0ia6"}]]);function c(){return(0,a.jsx)("section",{id:"features",className:"px-6",children:(0,a.jsxs)("div",{className:"max-w-screen-lg mx-auto grid grid-cols-1 md:grid-cols-3 gap-12",children:[(0,a.jsxs)("div",{className:"flex flex-col items-center text-center p-6 hover:shadow-lg transition",children:[(0,a.jsx)(t.A,{className:"h-12 w-12 text-accent mb-4"}),(0,a.jsx)("h3",{className:"text-xl font-medium mb-2",children:"全局加速"}),(0,a.jsx)("p",{className:"leading-relaxed text-sm",children:"自动选择最优节点,降低跨境延迟。"})]}),(0,a.jsxs)("div",{className:"flex flex-col items-center text-center p-6 hover:shadow-lg transition",children:[(0,a.jsx)(l,{className:"h-12 w-12 text-accent mb-4"}),(0,a.jsx)("h3",{className:"text-xl font-medium mb-2",children:"智能路由"}),(0,a.jsx)("p",{className:"leading-relaxed text-sm",children:"基于流量与地域,动态切换链路。"})]}),(0,a.jsxs)("div",{className:"flex flex-col items-center text-center p-6 hover:shadow-lg transition",children:[(0,a.jsx)(i,{className:"h-12 w-12 text-accent mb-4"}),(0,a.jsx)("h3",{className:"text-xl font-medium mb-2",children:"可视化面板"}),(0,a.jsx)("p",{className:"leading-relaxed text-sm",children:"实时监控带宽、连接数与性能指标。"})]})]})})}},4518:(e,r,s)=>{"use strict";s.d(r,{A:()=>t});var a=s(7876);function t(){return(0,a.jsx)("footer",{className:"fixed bottom-0 left-0 w-full bg-background border-t py-4",children:(0,a.jsxs)("div",{className:"container mx-auto flex justify-between items-center text-sm text-primary",children:[(0,a.jsx)("p",{children:"\xa9 2025 CloudProxy 服务"}),(0,a.jsxs)("div",{className:"space-x-4",children:[(0,a.jsx)("a",{href:"#","aria-label":"Twitter",children:"Twitter"}),(0,a.jsx)("a",{href:"#","aria-label":"GitHub",children:"GitHub"}),(0,a.jsx)("a",{href:"#","aria-label":"LinkedIn",children:"LinkedIn"})]})]})})}},7362:(e,r,s)=>{"use strict";s.r(r),s.d(r,{default:()=>i});var a=s(7876),t=s(8139),n=s(3070),l=s(4518);function i(){return(0,a.jsxs)("div",{className:"pt-16 pb-12 bg-background",children:[(0,a.jsx)(t.A,{}),(0,a.jsx)("main",{children:(0,a.jsx)(n.A,{})}),(0,a.jsx)(l.A,{})]})}},8139:(e,r,s)=>{"use strict";s.d(r,{A:()=>x});var a=s(7876),t=s(4232),n=s(8230),l=s.n(n),i=s(8447);function c(e){let{open:r,onClose:s}=e;return(0,a.jsxs)("aside",{className:"fixed inset-y-0 right-0 w-64 bg-background shadow-lg transform transition-transform duration-300 "+(r?"translate-x-0":"translate-x-full"),children:[(0,a.jsx)("button",{onClick:s,className:"p-4 focus:outline-none text-primary",children:"✕ 关闭"}),(0,a.jsxs)("nav",{className:"flex flex-col p-6 gap-6 font-medium",children:[(0,a.jsx)(l(),{href:"/features",legacyBehavior:!0,children:(0,a.jsx)("a",{onClick:s,className:"hover:text-accent",children:"特性"})}),(0,a.jsx)(l(),{href:"/pricing",legacyBehavior:!0,children:(0,a.jsx)("a",{onClick:s,className:"hover:text-accent",children:"定价"})}),(0,a.jsx)(l(),{href:"/contact",legacyBehavior:!0,children:(0,a.jsx)("a",{onClick:s,className:"hover:text-accent",children:"联系我们"})})]})]})}function x(){let[e,r]=(0,t.useState)(!1);return(0,a.jsxs)("header",{className:"fixed top-0 left-0 w-full bg-background shadow-sm z-50",children:[(0,a.jsxs)("div",{className:"container mx-auto flex items-center justify-between h-16 px-4",children:[(0,a.jsxs)("div",{className:"flex items-center space-x-4",children:[(0,a.jsx)("button",{className:"md:hidden p-2 focus:outline-none",onClick:()=>r(!0),children:(0,a.jsx)(i.A,{className:"h-6 w-6 text-primary"})}),(0,a.jsx)(l(),{href:"/",children:(0,a.jsx)("img",{src:"/logo.png",alt:"CloudProxy",className:"h-8 w-8"})}),(0,a.jsxs)("nav",{className:"hidden md:flex items-center space-x-4",children:[(0,a.jsx)(l(),{href:"/",className:"text-primary font-semibold",children:"首页"}),(0,a.jsx)(l(),{href:"/features",className:"text-gray-600 hover:text-primary",children:"产品与服务"}),(0,a.jsx)(l(),{href:"/news",className:"text-gray-600 hover:text-primary",children:"新闻资讯"}),(0,a.jsx)(l(),{href:"/cases",className:"text-gray-600 hover:text-primary",children:"客户案例"}),(0,a.jsx)(l(),{href:"/about",className:"text-gray-600 hover:text-primary",children:"关于我们"})]})]}),(0,a.jsxs)("div",{className:"flex items-center space-x-4",children:[(0,a.jsx)(l(),{href:"/login",className:"px-4 py-1 border border-primary rounded-full text-primary hover:bg-primary hover:text-white transition",children:"Log in"}),(0,a.jsx)("a",{href:"https://instagram.com",target:"_blank",rel:"noopener noreferrer",children:(0,a.jsx)("i",{className:"fab fa-instagram text-gray-600 hover:text-primary"})}),(0,a.jsx)("a",{href:"https://facebook.com",target:"_blank",rel:"noopener noreferrer",children:(0,a.jsx)("i",{className:"fab fa-facebook text-gray-600 hover:text-primary"})}),(0,a.jsx)("a",{href:"https://twitter.com",target:"_blank",rel:"noopener noreferrer",children:(0,a.jsx)("i",{className:"fab fa-twitter text-gray-600 hover:text-primary"})})]})]}),(0,a.jsx)(c,{open:e,onClose:()=>r(!1)})]})}}},e=>{e.O(0,[752,636,593,792],()=>e(e.s=2898)),_N_E=e.O()}]); \ No newline at end of file diff --git a/.next/static/chunks/pages/index-f0d56cc007c09baf.js b/.next/static/chunks/pages/index-f0d56cc007c09baf.js deleted file mode 100644 index 83b4ae4..0000000 --- a/.next/static/chunks/pages/index-f0d56cc007c09baf.js +++ /dev/null @@ -1 +0,0 @@ -(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[332],{769:(e,a,s)=>{"use strict";s.d(a,{A:()=>t});let t=(0,s(1713).A)("globe",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"M12 2a14.5 14.5 0 0 0 0 20 14.5 14.5 0 0 0 0-20",key:"13o1zl"}],["path",{d:"M2 12h20",key:"9i4pu4"}]])},3070:(e,a,s)=>{"use strict";s.d(a,{A:()=>i});var t=s(7876),r=s(769),c=s(1713);let l=(0,c.A)("repeat",[["path",{d:"m17 2 4 4-4 4",key:"nntrym"}],["path",{d:"M3 11v-1a4 4 0 0 1 4-4h14",key:"84bu3i"}],["path",{d:"m7 22-4-4 4-4",key:"1wqhfi"}],["path",{d:"M21 13v1a4 4 0 0 1-4 4H3",key:"1rx37r"}]]),n=(0,c.A)("chart-no-axes-column-increasing",[["line",{x1:"12",x2:"12",y1:"20",y2:"10",key:"1vz5eb"}],["line",{x1:"18",x2:"18",y1:"20",y2:"4",key:"cun8e5"}],["line",{x1:"6",x2:"6",y1:"20",y2:"16",key:"hq0ia6"}]]);function i(){return(0,t.jsx)("section",{id:"features",className:"px-6",children:(0,t.jsxs)("div",{className:"max-w-screen-lg mx-auto grid grid-cols-1 md:grid-cols-3 gap-12",children:[(0,t.jsxs)("div",{className:"flex flex-col items-center text-center p-6 hover:shadow-lg transition",children:[(0,t.jsx)(r.A,{className:"h-12 w-12 text-accent mb-4"}),(0,t.jsx)("h3",{className:"text-xl font-medium mb-2",children:"全局加速"}),(0,t.jsx)("p",{className:"leading-relaxed text-sm",children:"自动选择最优节点,降低跨境延迟。"})]}),(0,t.jsxs)("div",{className:"flex flex-col items-center text-center p-6 hover:shadow-lg transition",children:[(0,t.jsx)(l,{className:"h-12 w-12 text-accent mb-4"}),(0,t.jsx)("h3",{className:"text-xl font-medium mb-2",children:"智能路由"}),(0,t.jsx)("p",{className:"leading-relaxed text-sm",children:"基于流量与地域,动态切换链路。"})]}),(0,t.jsxs)("div",{className:"flex flex-col items-center text-center p-6 hover:shadow-lg transition",children:[(0,t.jsx)(n,{className:"h-12 w-12 text-accent mb-4"}),(0,t.jsx)("h3",{className:"text-xl font-medium mb-2",children:"可视化面板"}),(0,t.jsx)("p",{className:"leading-relaxed text-sm",children:"实时监控带宽、连接数与性能指标。"})]})]})})}},4518:(e,a,s)=>{"use strict";s.d(a,{A:()=>r});var t=s(7876);function r(){return(0,t.jsx)("footer",{className:"fixed bottom-0 left-0 w-full bg-background border-t py-4",children:(0,t.jsxs)("div",{className:"container mx-auto flex justify-between items-center text-sm text-primary",children:[(0,t.jsx)("p",{children:"\xa9 2025 CloudProxy 服务"}),(0,t.jsxs)("div",{className:"space-x-4",children:[(0,t.jsx)("a",{href:"#","aria-label":"Twitter",children:"Twitter"}),(0,t.jsx)("a",{href:"#","aria-label":"GitHub",children:"GitHub"}),(0,t.jsx)("a",{href:"#","aria-label":"LinkedIn",children:"LinkedIn"})]})]})})}},6760:(e,a,s)=>{(window.__NEXT_P=window.__NEXT_P||[]).push(["/",function(){return s(9182)}])},8139:(e,a,s)=>{"use strict";s.d(a,{A:()=>x});var t=s(7876),r=s(4232),c=s(8230),l=s.n(c),n=s(8447);function i(e){let{open:a,onClose:s}=e;return(0,t.jsxs)("aside",{className:"fixed inset-y-0 right-0 w-64 bg-background shadow-lg transform transition-transform duration-300 "+(a?"translate-x-0":"translate-x-full"),children:[(0,t.jsx)("button",{onClick:s,className:"p-4 focus:outline-none text-primary",children:"✕ 关闭"}),(0,t.jsxs)("nav",{className:"flex flex-col p-6 gap-6 font-medium",children:[(0,t.jsx)(l(),{href:"/features",legacyBehavior:!0,children:(0,t.jsx)("a",{onClick:s,className:"hover:text-accent",children:"特性"})}),(0,t.jsx)(l(),{href:"/pricing",legacyBehavior:!0,children:(0,t.jsx)("a",{onClick:s,className:"hover:text-accent",children:"定价"})}),(0,t.jsx)(l(),{href:"/contact",legacyBehavior:!0,children:(0,t.jsx)("a",{onClick:s,className:"hover:text-accent",children:"联系我们"})})]})]})}function x(){let[e,a]=(0,r.useState)(!1);return(0,t.jsxs)("header",{className:"fixed top-0 left-0 w-full bg-background shadow-sm z-50",children:[(0,t.jsxs)("div",{className:"container mx-auto flex items-center justify-between h-16 px-4",children:[(0,t.jsxs)("div",{className:"flex items-center space-x-4",children:[(0,t.jsx)("button",{className:"md:hidden p-2 focus:outline-none",onClick:()=>a(!0),children:(0,t.jsx)(n.A,{className:"h-6 w-6 text-primary"})}),(0,t.jsx)(l(),{href:"/",children:(0,t.jsx)("img",{src:"/logo.png",alt:"CloudProxy",className:"h-8 w-8"})}),(0,t.jsxs)("nav",{className:"hidden md:flex items-center space-x-4",children:[(0,t.jsx)(l(),{href:"/",className:"text-primary font-semibold",children:"首页"}),(0,t.jsx)(l(),{href:"/features",className:"text-gray-600 hover:text-primary",children:"产品与服务"}),(0,t.jsx)(l(),{href:"/news",className:"text-gray-600 hover:text-primary",children:"新闻资讯"}),(0,t.jsx)(l(),{href:"/cases",className:"text-gray-600 hover:text-primary",children:"客户案例"}),(0,t.jsx)(l(),{href:"/about",className:"text-gray-600 hover:text-primary",children:"关于我们"})]})]}),(0,t.jsxs)("div",{className:"flex items-center space-x-4",children:[(0,t.jsx)(l(),{href:"/login",className:"px-4 py-1 border border-primary rounded-full text-primary hover:bg-primary hover:text-white transition",children:"Log in"}),(0,t.jsx)("a",{href:"https://instagram.com",target:"_blank",rel:"noopener noreferrer",children:(0,t.jsx)("i",{className:"fab fa-instagram text-gray-600 hover:text-primary"})}),(0,t.jsx)("a",{href:"https://facebook.com",target:"_blank",rel:"noopener noreferrer",children:(0,t.jsx)("i",{className:"fab fa-facebook text-gray-600 hover:text-primary"})}),(0,t.jsx)("a",{href:"https://twitter.com",target:"_blank",rel:"noopener noreferrer",children:(0,t.jsx)("i",{className:"fab fa-twitter text-gray-600 hover:text-primary"})})]})]}),(0,t.jsx)(i,{open:e,onClose:()=>a(!1)})]})}},9182:(e,a,s)=>{"use strict";s.r(a),s.d(a,{default:()=>g});var t=s(7876),r=s(8139);function c(){return(0,t.jsx)("section",{className:"mt-16 bg-gray-100",children:(0,t.jsxs)("div",{className:"container mx-auto flex flex-col md:flex-row items-center justify-between min-h-[60vh] px-6 py-12",children:[(0,t.jsxs)("div",{className:"md:w-1/2 space-y-6",children:[(0,t.jsx)("h1",{className:"text-5xl font-bold text-primary",children:"无限云,服务无界"}),(0,t.jsx)("p",{className:"text-xl text-gray-700",children:"稳定无极限,优惠趁现在!年付88折,月付95折!"}),(0,t.jsxs)("div",{className:"flex items-center space-x-4",children:[(0,t.jsx)("a",{href:"/pricing",className:"px-6 py-3 bg-accent text-white rounded-lg hover:opacity-90 transition",children:"立即抢购"}),(0,t.jsx)("a",{href:"/contact",className:"px-6 py-3 border border-primary text-primary rounded-lg hover:bg-primary hover:text-white transition",children:"联系我们"})]})]}),(0,t.jsx)("div",{className:"md:w-1/2 mt-8 md:mt-0 flex justify-center",children:(0,t.jsx)("img",{src:"/hero-graphic.png",alt:"CloudProxy Illustration",className:"max-w-full h-auto rounded shadow-lg"})})]})})}var l=s(3070);let n=[{name:"Alice",content:"CloudProxy 让我在海外部署的服务延迟降低了 60%!",avatar:"/avatars/alice.jpg"},{name:"Bob",content:"简单易用的控制面板,实时网络指标一目了然。",avatar:"/avatars/bob.jpg"}];function i(){return(0,t.jsx)("section",{className:"px-6 py-section bg-background",children:(0,t.jsx)("div",{className:"max-w-screen-md mx-auto space-y-12",children:n.map(e=>(0,t.jsxs)("div",{className:"flex items-center gap-6",children:[(0,t.jsx)("img",{src:e.avatar,alt:e.name,className:"h-16 w-16 rounded-full"}),(0,t.jsxs)("div",{children:[(0,t.jsxs)("p",{className:"italic",children:["“",e.content,"”"]}),(0,t.jsxs)("p",{className:"mt-2 font-medium",children:["— ",e.name]})]})]},e.name))})})}function x(){return(0,t.jsxs)("section",{className:"px-6 py-section bg-accent text-white text-center",children:[(0,t.jsx)("h2",{className:"text-2xl font-medium mb-4",children:"准备好加速您的云服务了吗?"}),(0,t.jsx)("a",{href:"/pricing",className:"inline-block px-8 py-3 bg-background text-accent rounded-lg font-medium hover:opacity-90 transition",children:"查看方案"})]})}var d=s(4518),o=s(1713);let m=(0,o.A)("circle-check-big",[["path",{d:"M21.801 10A10 10 0 1 1 17 3.335",key:"yps3ct"}],["path",{d:"m9 11 3 3L22 4",key:"1pflzl"}]]),h=(0,o.A)("message-square",[["path",{d:"M21 15a2 2 0 0 1-2 2H7l-4 4V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2z",key:"1lielz"}]]),p=(0,o.A)("headphones",[["path",{d:"M3 14h3a2 2 0 0 1 2 2v3a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-7a9 9 0 0 1 18 0v7a2 2 0 0 1-2 2h-1a2 2 0 0 1-2-2v-3a2 2 0 0 1 2-2h3",key:"1xhozi"}]]),f=[{icon:m,label:"选择产品"},{icon:h,label:"联系销售"},{icon:p,label:"沟通业务"},{icon:(0,o.A)("user-check",[["path",{d:"m16 11 2 2 4-4",key:"9rsbq5"}],["path",{d:"M16 21v-2a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v2",key:"1yyitq"}],["circle",{cx:"9",cy:"7",r:"4",key:"nufk8"}]]),label:"开通账户"}];function j(){return(0,t.jsxs)("section",{className:"px-6 py-section bg-background",children:[(0,t.jsx)("h2",{className:"text-3xl font-semibold text-center mb-12",children:"开通流程"}),(0,t.jsx)("div",{className:"max-w-screen-lg mx-auto flex justify-between items-center",children:f.map((e,a)=>{let{icon:s,label:r}=e;return(0,t.jsxs)("div",{className:"flex flex-col items-center text-center",children:[(0,t.jsx)(s,{className:"h-12 w-12 text-accent mb-4"}),(0,t.jsx)("div",{className:"h-0.5 bg-accent w-24 mb-2"}),(0,t.jsx)("span",{className:"text-base text-primary",children:r})]},r)})})]})}let u=[{icon:(0,o.A)("shield-check",[["path",{d:"M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z",key:"oel41y"}],["path",{d:"m9 12 2 2 4-4",key:"dzmm74"}]]),title:"企业级安全防护",points:["多层加密与物理隔离,SO 27001 认证","99.99% SLA 可用性保障, 自动容灾备份"]},{icon:(0,o.A)("box",[["path",{d:"M21 8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73l7 4a2 2 0 0 0 2 0l7-4A2 2 0 0 0 21 16Z",key:"hh9hay"}],["path",{d:"m3.3 7 8.7 5 8.7-5",key:"g66t2b"}],["path",{d:"M12 22V12",key:"d0xqtd"}]]),title:"极致性价比",points:["年付88折,企业长期合作成本直降12%","免费试用15天+新用户千元代金券"]},{icon:s(769).A,title:"无边界技术架构",points:["分布式计算节点,全球低延迟访问","弹性伸缩资源满足高并发需求"]},{icon:p,title:"专家客服团队",points:["7\xd724 小时响应,1 小时紧急介入","中英文支持,覆盖全球主要时区"]}];function y(){return(0,t.jsx)("section",{className:"px-6 py-section bg-background",children:(0,t.jsxs)("div",{className:"max-w-screen-xl mx-auto",children:[(0,t.jsx)("h2",{className:"text-3xl font-semibold text-center mb-section",children:"核心优势"}),(0,t.jsx)("div",{className:"grid grid-cols-1 md:grid-cols-5 gap-6",children:u.map(e=>{let{icon:a,title:s,points:r}=e;return(0,t.jsxs)("div",{className:"flex flex-col items-center text-center p-4 bg-gray-50 rounded-lg",children:[(0,t.jsx)(a,{className:"h-10 w-10 text-accent mb-3"}),(0,t.jsx)("h3",{className:"font-medium mb-2",children:s}),(0,t.jsx)("ul",{className:"text-sm leading-relaxed",children:r.map((e,a)=>(0,t.jsxs)("li",{children:["• ",e]},a))})]},s)})})]})})}function g(){return(0,t.jsxs)("div",{className:"pt-16 pb-24 bg-background",children:[(0,t.jsx)(r.A,{}),(0,t.jsxs)("main",{children:[(0,t.jsx)(c,{}),(0,t.jsx)(l.A,{}),(0,t.jsx)(j,{}),"+ ",(0,t.jsx)(y,{}),(0,t.jsx)(i,{}),(0,t.jsx)(x,{})]}),(0,t.jsx)(d.A,{})]})}}},e=>{e.O(0,[752,636,593,792],()=>e(e.s=6760)),_N_E=e.O()}]); \ No newline at end of file diff --git a/.next/static/chunks/pages/login-770246fe6d4a26b5.js b/.next/static/chunks/pages/login-770246fe6d4a26b5.js deleted file mode 100644 index 0ada56f..0000000 --- a/.next/static/chunks/pages/login-770246fe6d4a26b5.js +++ /dev/null @@ -1 +0,0 @@ -(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[295],{2202:(e,t,r)=>{"use strict";function n(){throw Object.defineProperty(Error("`forbidden()` is experimental and only allowed to be enabled when `experimental.authInterrupts` is enabled."),"__NEXT_ERROR_CODE",{value:"E488",enumerable:!1,configurable:!0})}Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"forbidden",{enumerable:!0,get:function(){return n}}),r(3794).HTTP_ERROR_FALLBACK_ERROR_CODE,("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},2647:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"notFound",{enumerable:!0,get:function(){return a}});let n=""+r(3794).HTTP_ERROR_FALLBACK_ERROR_CODE+";404";function a(){let e=Object.defineProperty(Error(n),"__NEXT_ERROR_CODE",{value:"E394",enumerable:!1,configurable:!0});throw e.digest=n,e}("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},4e3:(e,t,r)=>{e.exports=r(4895)},4167:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"unstable_rethrow",{enumerable:!0,get:function(){return n}});let n=r(4685).unstable_rethrow;("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},4269:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),!function(e,t){for(var r in t)Object.defineProperty(e,r,{enumerable:!0,get:t[r]})}(t,{getRedirectError:function(){return u},getRedirectStatusCodeFromError:function(){return c},getRedirectTypeFromError:function(){return d},getURLFromRedirectError:function(){return i},permanentRedirect:function(){return s},redirect:function(){return l}});let n=r(8316),a=r(5318),o=void 0;function u(e,t,r){void 0===r&&(r=n.RedirectStatusCode.TemporaryRedirect);let o=Object.defineProperty(Error(a.REDIRECT_ERROR_CODE),"__NEXT_ERROR_CODE",{value:"E394",enumerable:!1,configurable:!0});return o.digest=a.REDIRECT_ERROR_CODE+";"+t+";"+e+";"+r+";",o}function l(e,t){var r;throw null!=t||(t=(null==o||null==(r=o.getStore())?void 0:r.isAction)?a.RedirectType.push:a.RedirectType.replace),u(e,t,n.RedirectStatusCode.TemporaryRedirect)}function s(e,t){throw void 0===t&&(t=a.RedirectType.replace),u(e,t,n.RedirectStatusCode.PermanentRedirect)}function i(e){return(0,a.isRedirectError)(e)?e.digest.split(";").slice(2,-2).join(";"):null}function d(e){if(!(0,a.isRedirectError)(e))throw Object.defineProperty(Error("Not a redirect error"),"__NEXT_ERROR_CODE",{value:"E260",enumerable:!1,configurable:!0});return e.digest.split(";",2)[1]}function c(e){if(!(0,a.isRedirectError)(e))throw Object.defineProperty(Error("Not a redirect error"),"__NEXT_ERROR_CODE",{value:"E260",enumerable:!1,configurable:!0});return Number(e.digest.split(";").at(-2))}("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},4512:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),!function(e,t){for(var r in t)Object.defineProperty(e,r,{enumerable:!0,get:t[r]})}(t,{ServerInsertedHTMLContext:function(){return a},useServerInsertedHTML:function(){return o}});let n=r(8365)._(r(4232)),a=n.default.createContext(null);function o(e){let t=(0,n.useContext)(a);t&&t(e)}},4518:(e,t,r)=>{"use strict";r.d(t,{A:()=>a});var n=r(7876);function a(){return(0,n.jsx)("footer",{className:"fixed bottom-0 left-0 w-full bg-background border-t py-4",children:(0,n.jsxs)("div",{className:"container mx-auto flex justify-between items-center text-sm text-primary",children:[(0,n.jsx)("p",{children:"\xa9 2025 CloudProxy 服务"}),(0,n.jsxs)("div",{className:"space-x-4",children:[(0,n.jsx)("a",{href:"#","aria-label":"Twitter",children:"Twitter"}),(0,n.jsx)("a",{href:"#","aria-label":"GitHub",children:"GitHub"}),(0,n.jsx)("a",{href:"#","aria-label":"LinkedIn",children:"LinkedIn"})]})]})})}},4685:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"unstable_rethrow",{enumerable:!0,get:function(){return function e(t){if((0,a.isNextRouterError)(t)||(0,n.isBailoutToCSRError)(t))throw t;t instanceof Error&&"cause"in t&&e(t.cause)}}});let n=r(5346),a=r(1670);("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},4895:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),!function(e,t){for(var r in t)Object.defineProperty(e,r,{enumerable:!0,get:t[r]})}(t,{ReadonlyURLSearchParams:function(){return s.ReadonlyURLSearchParams},RedirectType:function(){return s.RedirectType},ServerInsertedHTMLContext:function(){return i.ServerInsertedHTMLContext},forbidden:function(){return s.forbidden},notFound:function(){return s.notFound},permanentRedirect:function(){return s.permanentRedirect},redirect:function(){return s.redirect},unauthorized:function(){return s.unauthorized},unstable_rethrow:function(){return s.unstable_rethrow},useParams:function(){return h},usePathname:function(){return f},useRouter:function(){return p},useSearchParams:function(){return c},useSelectedLayoutSegment:function(){return b},useSelectedLayoutSegments:function(){return m},useServerInsertedHTML:function(){return i.useServerInsertedHTML}});let n=r(4232),a=r(2875),o=r(6394),u=r(5172),l=r(2835),s=r(6382),i=r(4512),d=void 0;function c(){let e=(0,n.useContext)(o.SearchParamsContext);return(0,n.useMemo)(()=>e?new s.ReadonlyURLSearchParams(e):null,[e])}function f(){return null==d||d("usePathname()"),(0,n.useContext)(o.PathnameContext)}function p(){let e=(0,n.useContext)(a.AppRouterContext);if(null===e)throw Object.defineProperty(Error("invariant expected app router to be mounted"),"__NEXT_ERROR_CODE",{value:"E238",enumerable:!1,configurable:!0});return e}function h(){return null==d||d("useParams()"),(0,n.useContext)(o.PathParamsContext)}function m(e){void 0===e&&(e="children"),null==d||d("useSelectedLayoutSegments()");let t=(0,n.useContext)(a.LayoutRouterContext);return t?function e(t,r,n,a){let o;if(void 0===n&&(n=!0),void 0===a&&(a=[]),n)o=t[1][r];else{var s;let e=t[1];o=null!=(s=e.children)?s:Object.values(e)[0]}if(!o)return a;let i=o[0],d=(0,u.getSegmentValue)(i);return!d||d.startsWith(l.PAGE_SEGMENT_KEY)?a:(a.push(d),e(o,r,!1,a))}(t.parentTree,e):null}function b(e){void 0===e&&(e="children"),null==d||d("useSelectedLayoutSegment()");let t=m(e);if(!t||0===t.length)return null;let r="children"===e?t[0]:t[t.length-1];return r===l.DEFAULT_SEGMENT_KEY?null:r}("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},5172:(e,t)=>{"use strict";function r(e){return Array.isArray(e)?e[1]:e}Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"getSegmentValue",{enumerable:!0,get:function(){return r}}),("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},6382:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),!function(e,t){for(var r in t)Object.defineProperty(e,r,{enumerable:!0,get:t[r]})}(t,{ReadonlyURLSearchParams:function(){return d},RedirectType:function(){return a.RedirectType},forbidden:function(){return u.forbidden},notFound:function(){return o.notFound},permanentRedirect:function(){return n.permanentRedirect},redirect:function(){return n.redirect},unauthorized:function(){return l.unauthorized},unstable_rethrow:function(){return s.unstable_rethrow}});let n=r(4269),a=r(5318),o=r(2647),u=r(2202),l=r(8475),s=r(4167);class i extends Error{constructor(){super("Method unavailable on `ReadonlyURLSearchParams`. Read more: https://nextjs.org/docs/app/api-reference/functions/use-search-params#updating-searchparams")}}class d extends URLSearchParams{append(){throw new i}delete(){throw new i}set(){throw new i}sort(){throw new i}}("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},7984:(e,t,r)=>{(window.__NEXT_P=window.__NEXT_P||[]).push(["/login",function(){return r(9784)}])},8139:(e,t,r)=>{"use strict";r.d(t,{A:()=>i});var n=r(7876),a=r(4232),o=r(8230),u=r.n(o),l=r(8447);function s(e){let{open:t,onClose:r}=e;return(0,n.jsxs)("aside",{className:"fixed inset-y-0 right-0 w-64 bg-background shadow-lg transform transition-transform duration-300 "+(t?"translate-x-0":"translate-x-full"),children:[(0,n.jsx)("button",{onClick:r,className:"p-4 focus:outline-none text-primary",children:"✕ 关闭"}),(0,n.jsxs)("nav",{className:"flex flex-col p-6 gap-6 font-medium",children:[(0,n.jsx)(u(),{href:"/features",legacyBehavior:!0,children:(0,n.jsx)("a",{onClick:r,className:"hover:text-accent",children:"特性"})}),(0,n.jsx)(u(),{href:"/pricing",legacyBehavior:!0,children:(0,n.jsx)("a",{onClick:r,className:"hover:text-accent",children:"定价"})}),(0,n.jsx)(u(),{href:"/contact",legacyBehavior:!0,children:(0,n.jsx)("a",{onClick:r,className:"hover:text-accent",children:"联系我们"})})]})]})}function i(){let[e,t]=(0,a.useState)(!1);return(0,n.jsxs)("header",{className:"fixed top-0 left-0 w-full bg-background shadow-sm z-50",children:[(0,n.jsxs)("div",{className:"container mx-auto flex items-center justify-between h-16 px-4",children:[(0,n.jsxs)("div",{className:"flex items-center space-x-4",children:[(0,n.jsx)("button",{className:"md:hidden p-2 focus:outline-none",onClick:()=>t(!0),children:(0,n.jsx)(l.A,{className:"h-6 w-6 text-primary"})}),(0,n.jsx)(u(),{href:"/",children:(0,n.jsx)("img",{src:"/logo.png",alt:"CloudProxy",className:"h-8 w-8"})}),(0,n.jsxs)("nav",{className:"hidden md:flex items-center space-x-4",children:[(0,n.jsx)(u(),{href:"/",className:"text-primary font-semibold",children:"首页"}),(0,n.jsx)(u(),{href:"/features",className:"text-gray-600 hover:text-primary",children:"产品与服务"}),(0,n.jsx)(u(),{href:"/news",className:"text-gray-600 hover:text-primary",children:"新闻资讯"}),(0,n.jsx)(u(),{href:"/cases",className:"text-gray-600 hover:text-primary",children:"客户案例"}),(0,n.jsx)(u(),{href:"/about",className:"text-gray-600 hover:text-primary",children:"关于我们"})]})]}),(0,n.jsxs)("div",{className:"flex items-center space-x-4",children:[(0,n.jsx)(u(),{href:"/login",className:"px-4 py-1 border border-primary rounded-full text-primary hover:bg-primary hover:text-white transition",children:"Log in"}),(0,n.jsx)("a",{href:"https://instagram.com",target:"_blank",rel:"noopener noreferrer",children:(0,n.jsx)("i",{className:"fab fa-instagram text-gray-600 hover:text-primary"})}),(0,n.jsx)("a",{href:"https://facebook.com",target:"_blank",rel:"noopener noreferrer",children:(0,n.jsx)("i",{className:"fab fa-facebook text-gray-600 hover:text-primary"})}),(0,n.jsx)("a",{href:"https://twitter.com",target:"_blank",rel:"noopener noreferrer",children:(0,n.jsx)("i",{className:"fab fa-twitter text-gray-600 hover:text-primary"})})]})]}),(0,n.jsx)(s,{open:e,onClose:()=>t(!1)})]})}},8475:(e,t,r)=>{"use strict";function n(){throw Object.defineProperty(Error("`unauthorized()` is experimental and only allowed to be used when `experimental.authInterrupts` is enabled."),"__NEXT_ERROR_CODE",{value:"E411",enumerable:!1,configurable:!0})}Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"unauthorized",{enumerable:!0,get:function(){return n}}),r(3794).HTTP_ERROR_FALLBACK_ERROR_CODE,("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},9784:(e,t,r)=>{"use strict";r.r(t),r.d(t,{default:()=>d});var n=r(7876),a=r(8139),o=r(4232),u=r(4e3);let l={username:"admin",password:"password123"};function s(){let e=(0,u.useRouter)(),[t,r]=(0,o.useState)({username:"",password:""}),[a,s]=(0,o.useState)("");return(0,n.jsxs)("section",{className:"px-6 py-section bg-background max-w-md mx-auto",children:[(0,n.jsx)("h2",{className:"text-3xl font-semibold text-center mb-6",children:"登录"}),a&&(0,n.jsx)("p",{className:"text-red-500 text-sm mb-4",children:a}),(0,n.jsxs)("form",{className:"flex flex-col space-y-4",onSubmit:r=>{r.preventDefault(),t.username===l.username&&t.password===l.password?(localStorage.setItem("token","mock-token"),e.push("/")):s("用户名或密码错误")},children:[(0,n.jsx)("input",{type:"text",placeholder:"用户名",className:"border p-3 rounded",value:t.username,onChange:e=>r({...t,username:e.target.value})}),(0,n.jsx)("input",{type:"password",placeholder:"密码",className:"border p-3 rounded",value:t.password,onChange:e=>r({...t,password:e.target.value})}),(0,n.jsx)("button",{type:"submit",className:"py-3 bg-accent text-white rounded disabled:opacity-50",children:"登录"})]})]})}var i=r(4518);function d(){return(0,n.jsxs)("div",{className:"pt-16 pb-12 bg-background",children:[(0,n.jsx)(a.A,{}),(0,n.jsx)("main",{children:(0,n.jsx)(s,{})}),(0,n.jsx)(i.A,{})]})}}},e=>{e.O(0,[752,636,593,792],()=>e(e.s=7984)),_N_E=e.O()}]); \ No newline at end of file diff --git a/.next/static/chunks/pages/news-eab647df9653169a.js b/.next/static/chunks/pages/news-eab647df9653169a.js deleted file mode 100644 index 8e619ca..0000000 --- a/.next/static/chunks/pages/news-eab647df9653169a.js +++ /dev/null @@ -1 +0,0 @@ -(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[277],{2630:(e,r,s)=>{(window.__NEXT_P=window.__NEXT_P||[]).push(["/news",function(){return s(6811)}])},4518:(e,r,s)=>{"use strict";s.d(r,{A:()=>t});var a=s(7876);function t(){return(0,a.jsx)("footer",{className:"fixed bottom-0 left-0 w-full bg-background border-t py-4",children:(0,a.jsxs)("div",{className:"container mx-auto flex justify-between items-center text-sm text-primary",children:[(0,a.jsx)("p",{children:"\xa9 2025 CloudProxy 服务"}),(0,a.jsxs)("div",{className:"space-x-4",children:[(0,a.jsx)("a",{href:"#","aria-label":"Twitter",children:"Twitter"}),(0,a.jsx)("a",{href:"#","aria-label":"GitHub",children:"GitHub"}),(0,a.jsx)("a",{href:"#","aria-label":"LinkedIn",children:"LinkedIn"})]})]})})}},6811:(e,r,s)=>{"use strict";s.r(r),s.d(r,{default:()=>c});var a=s(7876),t=s(8139),n=s(4232);function i(){let[e,r]=(0,n.useState)([]);return(0,n.useEffect)(()=>{r([{id:"1",title:"产品发布:全新加速方案",date:"2025-07-01",summary:"推出基于 AI 路由的网络加速方案..."},{id:"2",title:"平台升级维护公告",date:"2025-06-15",summary:"计划于06/20进行例行维护,届时服务可能短暂中断..."}])},[]),(0,a.jsxs)("section",{className:"px-6 py-section bg-background",children:[(0,a.jsx)("h2",{className:"text-3xl font-semibold mb-8",children:"新闻资讯"}),(0,a.jsx)("div",{className:"space-y-6",children:e.map(e=>(0,a.jsxs)("article",{className:"p-4 bg-gray-50 rounded-lg hover:shadow",children:[(0,a.jsx)("h3",{className:"text-xl font-medium",children:e.title}),(0,a.jsx)("time",{className:"text-sm text-gray-500",children:e.date}),(0,a.jsx)("p",{className:"mt-2 text-gray-700 text-sm",children:e.summary})]},e.id))})]})}var l=s(4518);function c(){return(0,a.jsxs)("div",{className:"pt-16 pb-12 bg-background",children:[(0,a.jsx)(t.A,{}),(0,a.jsx)("main",{children:(0,a.jsx)(i,{})}),(0,a.jsx)(l.A,{})]})}},8139:(e,r,s)=>{"use strict";s.d(r,{A:()=>x});var a=s(7876),t=s(4232),n=s(8230),i=s.n(n),l=s(8447);function c(e){let{open:r,onClose:s}=e;return(0,a.jsxs)("aside",{className:"fixed inset-y-0 right-0 w-64 bg-background shadow-lg transform transition-transform duration-300 "+(r?"translate-x-0":"translate-x-full"),children:[(0,a.jsx)("button",{onClick:s,className:"p-4 focus:outline-none text-primary",children:"✕ 关闭"}),(0,a.jsxs)("nav",{className:"flex flex-col p-6 gap-6 font-medium",children:[(0,a.jsx)(i(),{href:"/features",legacyBehavior:!0,children:(0,a.jsx)("a",{onClick:s,className:"hover:text-accent",children:"特性"})}),(0,a.jsx)(i(),{href:"/pricing",legacyBehavior:!0,children:(0,a.jsx)("a",{onClick:s,className:"hover:text-accent",children:"定价"})}),(0,a.jsx)(i(),{href:"/contact",legacyBehavior:!0,children:(0,a.jsx)("a",{onClick:s,className:"hover:text-accent",children:"联系我们"})})]})]})}function x(){let[e,r]=(0,t.useState)(!1);return(0,a.jsxs)("header",{className:"fixed top-0 left-0 w-full bg-background shadow-sm z-50",children:[(0,a.jsxs)("div",{className:"container mx-auto flex items-center justify-between h-16 px-4",children:[(0,a.jsxs)("div",{className:"flex items-center space-x-4",children:[(0,a.jsx)("button",{className:"md:hidden p-2 focus:outline-none",onClick:()=>r(!0),children:(0,a.jsx)(l.A,{className:"h-6 w-6 text-primary"})}),(0,a.jsx)(i(),{href:"/",children:(0,a.jsx)("img",{src:"/logo.png",alt:"CloudProxy",className:"h-8 w-8"})}),(0,a.jsxs)("nav",{className:"hidden md:flex items-center space-x-4",children:[(0,a.jsx)(i(),{href:"/",className:"text-primary font-semibold",children:"首页"}),(0,a.jsx)(i(),{href:"/features",className:"text-gray-600 hover:text-primary",children:"产品与服务"}),(0,a.jsx)(i(),{href:"/news",className:"text-gray-600 hover:text-primary",children:"新闻资讯"}),(0,a.jsx)(i(),{href:"/cases",className:"text-gray-600 hover:text-primary",children:"客户案例"}),(0,a.jsx)(i(),{href:"/about",className:"text-gray-600 hover:text-primary",children:"关于我们"})]})]}),(0,a.jsxs)("div",{className:"flex items-center space-x-4",children:[(0,a.jsx)(i(),{href:"/login",className:"px-4 py-1 border border-primary rounded-full text-primary hover:bg-primary hover:text-white transition",children:"Log in"}),(0,a.jsx)("a",{href:"https://instagram.com",target:"_blank",rel:"noopener noreferrer",children:(0,a.jsx)("i",{className:"fab fa-instagram text-gray-600 hover:text-primary"})}),(0,a.jsx)("a",{href:"https://facebook.com",target:"_blank",rel:"noopener noreferrer",children:(0,a.jsx)("i",{className:"fab fa-facebook text-gray-600 hover:text-primary"})}),(0,a.jsx)("a",{href:"https://twitter.com",target:"_blank",rel:"noopener noreferrer",children:(0,a.jsx)("i",{className:"fab fa-twitter text-gray-600 hover:text-primary"})})]})]}),(0,a.jsx)(c,{open:e,onClose:()=>r(!1)})]})}}},e=>{e.O(0,[752,636,593,792],()=>e(e.s=2630)),_N_E=e.O()}]); \ No newline at end of file diff --git a/.next/static/chunks/pages/pricing-20dc30b818da4890.js b/.next/static/chunks/pages/pricing-20dc30b818da4890.js deleted file mode 100644 index f633015..0000000 --- a/.next/static/chunks/pages/pricing-20dc30b818da4890.js +++ /dev/null @@ -1 +0,0 @@ -(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[18],{2309:(e,r,a)=>{"use strict";a.r(r),a.d(r,{default:()=>i});var s=a(7876),t=a(8139);function n(){return(0,s.jsx)("section",{className:"px-6 py-section bg-background",children:(0,s.jsx)("div",{className:"max-w-screen-lg mx-auto grid grid-cols-1 md:grid-cols-3 gap-8",children:[{name:"基础版",price:"\xa5100/月",features:["全球节点接入","社区支持"],recommended:!1},{name:"专业版",price:"\xa5300/月",features:["智能路由","高级面板","邮件支持"],recommended:!0},{name:"企业版",price:"\xa5800/月",features:["专属线路","24/7 支持","定制 SLA"],recommended:!1}].map(e=>(0,s.jsxs)("div",{className:"border p-6 rounded-lg flex flex-col justify-between ".concat(e.recommended?"border-accent shadow-lg":"border-gray-200"),children:[(0,s.jsxs)("div",{children:[(0,s.jsx)("h3",{className:"text-2xl font-medium mb-2",children:e.name}),(0,s.jsx)("p",{className:"text-3xl font-semibold mb-4",children:e.price}),(0,s.jsx)("ul",{className:"list-disc list-inside space-y-2 text-sm",children:e.features.map(e=>(0,s.jsx)("li",{children:e},e))})]}),(0,s.jsx)("a",{href:"/contact",className:"mt-6 px-4 py-2 rounded-lg text-center font-medium transition ".concat(e.recommended?"bg-accent text-white hover:opacity-90":"bg-transparent border border-primary hover:bg-primary hover:text-white"),children:e.recommended?"推荐":"选择"})]},e.name))})})}var c=a(4518);function i(){return(0,s.jsxs)("div",{className:"pt-16 pb-12 bg-background",children:[(0,s.jsx)(t.A,{}),(0,s.jsx)("main",{children:(0,s.jsx)(n,{})}),(0,s.jsx)(c.A,{})]})}},4518:(e,r,a)=>{"use strict";a.d(r,{A:()=>t});var s=a(7876);function t(){return(0,s.jsx)("footer",{className:"fixed bottom-0 left-0 w-full bg-background border-t py-4",children:(0,s.jsxs)("div",{className:"container mx-auto flex justify-between items-center text-sm text-primary",children:[(0,s.jsx)("p",{children:"\xa9 2025 CloudProxy 服务"}),(0,s.jsxs)("div",{className:"space-x-4",children:[(0,s.jsx)("a",{href:"#","aria-label":"Twitter",children:"Twitter"}),(0,s.jsx)("a",{href:"#","aria-label":"GitHub",children:"GitHub"}),(0,s.jsx)("a",{href:"#","aria-label":"LinkedIn",children:"LinkedIn"})]})]})})}},6152:(e,r,a)=>{(window.__NEXT_P=window.__NEXT_P||[]).push(["/pricing",function(){return a(2309)}])},8139:(e,r,a)=>{"use strict";a.d(r,{A:()=>o});var s=a(7876),t=a(4232),n=a(8230),c=a.n(n),i=a(8447);function l(e){let{open:r,onClose:a}=e;return(0,s.jsxs)("aside",{className:"fixed inset-y-0 right-0 w-64 bg-background shadow-lg transform transition-transform duration-300 "+(r?"translate-x-0":"translate-x-full"),children:[(0,s.jsx)("button",{onClick:a,className:"p-4 focus:outline-none text-primary",children:"✕ 关闭"}),(0,s.jsxs)("nav",{className:"flex flex-col p-6 gap-6 font-medium",children:[(0,s.jsx)(c(),{href:"/features",legacyBehavior:!0,children:(0,s.jsx)("a",{onClick:a,className:"hover:text-accent",children:"特性"})}),(0,s.jsx)(c(),{href:"/pricing",legacyBehavior:!0,children:(0,s.jsx)("a",{onClick:a,className:"hover:text-accent",children:"定价"})}),(0,s.jsx)(c(),{href:"/contact",legacyBehavior:!0,children:(0,s.jsx)("a",{onClick:a,className:"hover:text-accent",children:"联系我们"})})]})]})}function o(){let[e,r]=(0,t.useState)(!1);return(0,s.jsxs)("header",{className:"fixed top-0 left-0 w-full bg-background shadow-sm z-50",children:[(0,s.jsxs)("div",{className:"container mx-auto flex items-center justify-between h-16 px-4",children:[(0,s.jsxs)("div",{className:"flex items-center space-x-4",children:[(0,s.jsx)("button",{className:"md:hidden p-2 focus:outline-none",onClick:()=>r(!0),children:(0,s.jsx)(i.A,{className:"h-6 w-6 text-primary"})}),(0,s.jsx)(c(),{href:"/",children:(0,s.jsx)("img",{src:"/logo.png",alt:"CloudProxy",className:"h-8 w-8"})}),(0,s.jsxs)("nav",{className:"hidden md:flex items-center space-x-4",children:[(0,s.jsx)(c(),{href:"/",className:"text-primary font-semibold",children:"首页"}),(0,s.jsx)(c(),{href:"/features",className:"text-gray-600 hover:text-primary",children:"产品与服务"}),(0,s.jsx)(c(),{href:"/news",className:"text-gray-600 hover:text-primary",children:"新闻资讯"}),(0,s.jsx)(c(),{href:"/cases",className:"text-gray-600 hover:text-primary",children:"客户案例"}),(0,s.jsx)(c(),{href:"/about",className:"text-gray-600 hover:text-primary",children:"关于我们"})]})]}),(0,s.jsxs)("div",{className:"flex items-center space-x-4",children:[(0,s.jsx)(c(),{href:"/login",className:"px-4 py-1 border border-primary rounded-full text-primary hover:bg-primary hover:text-white transition",children:"Log in"}),(0,s.jsx)("a",{href:"https://instagram.com",target:"_blank",rel:"noopener noreferrer",children:(0,s.jsx)("i",{className:"fab fa-instagram text-gray-600 hover:text-primary"})}),(0,s.jsx)("a",{href:"https://facebook.com",target:"_blank",rel:"noopener noreferrer",children:(0,s.jsx)("i",{className:"fab fa-facebook text-gray-600 hover:text-primary"})}),(0,s.jsx)("a",{href:"https://twitter.com",target:"_blank",rel:"noopener noreferrer",children:(0,s.jsx)("i",{className:"fab fa-twitter text-gray-600 hover:text-primary"})})]})]}),(0,s.jsx)(l,{open:e,onClose:()=>r(!1)})]})}}},e=>{e.O(0,[752,636,593,792],()=>e(e.s=6152)),_N_E=e.O()}]); \ No newline at end of file diff --git a/.next/static/chunks/webpack-057da668910d4143.js b/.next/static/chunks/webpack-057da668910d4143.js deleted file mode 100644 index 81448ab..0000000 --- a/.next/static/chunks/webpack-057da668910d4143.js +++ /dev/null @@ -1 +0,0 @@ -(()=>{"use strict";var e={},t={};function r(o){var n=t[o];if(void 0!==n)return n.exports;var a=t[o]={exports:{}},i=!0;try{e[o](a,a.exports,r),i=!1}finally{i&&delete t[o]}return a.exports}r.m=e,(()=>{var e=[];r.O=(t,o,n,a)=>{if(o){a=a||0;for(var i=e.length;i>0&&e[i-1][2]>a;i--)e[i]=e[i-1];e[i]=[o,n,a];return}for(var u=1/0,i=0;i=a)&&Object.keys(r.O).every(e=>r.O[e](o[d]))?o.splice(d--,1):(l=!1,a{var t=e&&e.__esModule?()=>e.default:()=>e;return r.d(t,{a:t}),t},(()=>{var e,t=Object.getPrototypeOf?e=>Object.getPrototypeOf(e):e=>e.__proto__;r.t=function(o,n){if(1&n&&(o=this(o)),8&n||"object"==typeof o&&o&&(4&n&&o.__esModule||16&n&&"function"==typeof o.then))return o;var a=Object.create(null);r.r(a);var i={};e=e||[null,t({}),t([]),t(t)];for(var u=2&n&&o;"object"==typeof u&&!~e.indexOf(u);u=t(u))Object.getOwnPropertyNames(u).forEach(e=>i[e]=()=>o[e]);return i.default=()=>o,r.d(a,i),a}})(),r.d=(e,t)=>{for(var o in t)r.o(t,o)&&!r.o(e,o)&&Object.defineProperty(e,o,{enumerable:!0,get:t[o]})},r.f={},r.e=e=>Promise.all(Object.keys(r.f).reduce((t,o)=>(r.f[o](e,t),t),[])),r.u=e=>"static/chunks/"+e+"."+({57:"268c8c590d7f2802",100:"dbdf1ef205c72caf"})[e]+".js",r.miniCssF=e=>{},r.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),(()=>{var e={},t="_N_E:";r.l=(o,n,a,i)=>{if(e[o])return void e[o].push(n);if(void 0!==a)for(var u,l,d=document.getElementsByTagName("script"),c=0;c{u.onerror=u.onload=null,clearTimeout(p);var n=e[o];if(delete e[o],u.parentNode&&u.parentNode.removeChild(u),n&&n.forEach(e=>e(r)),t)return t(r)},p=setTimeout(s.bind(null,void 0,{type:"timeout",target:u}),12e4);u.onerror=s.bind(null,u.onerror),u.onload=s.bind(null,u.onload),l&&document.head.appendChild(u)}})(),r.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},(()=>{var e;r.tt=()=>(void 0===e&&(e={createScriptURL:e=>e},"undefined"!=typeof trustedTypes&&trustedTypes.createPolicy&&(e=trustedTypes.createPolicy("nextjs#bundler",e))),e)})(),r.tu=e=>r.tt().createScriptURL(e),r.p="/_next/",(()=>{var e={68:0};r.f.j=(t,o)=>{var n=r.o(e,t)?e[t]:void 0;if(0!==n)if(n)o.push(n[2]);else if(68!=t){var a=new Promise((r,o)=>n=e[t]=[r,o]);o.push(n[2]=a);var i=r.p+r.u(t),u=Error();r.l(i,o=>{if(r.o(e,t)&&(0!==(n=e[t])&&(e[t]=void 0),n)){var a=o&&("load"===o.type?"missing":o.type),i=o&&o.target&&o.target.src;u.message="Loading chunk "+t+" failed.\n("+a+": "+i+")",u.name="ChunkLoadError",u.type=a,u.request=i,n[1](u)}},"chunk-"+t,t)}else e[t]=0},r.O.j=t=>0===e[t];var t=(t,o)=>{var n,a,[i,u,l]=o,d=0;if(i.some(t=>0!==e[t])){for(n in u)r.o(u,n)&&(r.m[n]=u[n]);if(l)var c=l(r)}for(t&&t(o);d:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-right:calc(1rem * var(--tw-space-x-reverse));margin-left:calc(1rem * calc(1 - var(--tw-space-x-reverse)))}.space-y-12>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(3rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(3rem * var(--tw-space-y-reverse))}.space-y-2>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(.5rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.5rem * var(--tw-space-y-reverse))}.space-y-4>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(1rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1rem * var(--tw-space-y-reverse))}.space-y-6>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(1.5rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1.5rem * var(--tw-space-y-reverse))}.space-y-section>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(4rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(4rem * var(--tw-space-y-reverse))}.overflow-hidden{overflow:hidden}.rounded{border-radius:.25rem}.rounded-full{border-radius:9999px}.rounded-lg{border-radius:.5rem}.border{border-width:1px}.border-t{border-top-width:1px}.border-accent{--tw-border-opacity:1;border-color:rgb(0 106 255/var(--tw-border-opacity,1))}.border-gray-200{--tw-border-opacity:1;border-color:rgb(229 231 235/var(--tw-border-opacity,1))}.border-primary{--tw-border-opacity:1;border-color:rgb(51 51 51/var(--tw-border-opacity,1))}.bg-accent{--tw-bg-opacity:1;background-color:rgb(0 106 255/var(--tw-bg-opacity,1))}.bg-background{--tw-bg-opacity:1;background-color:rgb(255 255 255/var(--tw-bg-opacity,1))}.bg-gray-100{--tw-bg-opacity:1;background-color:rgb(243 244 246/var(--tw-bg-opacity,1))}.bg-gray-50{--tw-bg-opacity:1;background-color:rgb(249 250 251/var(--tw-bg-opacity,1))}.bg-transparent{background-color:transparent}.object-cover{-o-object-fit:cover;object-fit:cover}.p-2{padding:.5rem}.p-3{padding:.75rem}.p-4{padding:1rem}.p-6{padding:1.5rem}.px-4{padding-left:1rem;padding-right:1rem}.px-6{padding-left:1.5rem;padding-right:1.5rem}.px-8{padding-left:2rem;padding-right:2rem}.py-1{padding-top:.25rem;padding-bottom:.25rem}.py-12{padding-top:3rem;padding-bottom:3rem}.py-2{padding-top:.5rem;padding-bottom:.5rem}.py-3{padding-top:.75rem;padding-bottom:.75rem}.py-4{padding-top:1rem;padding-bottom:1rem}.py-section{padding-top:4rem;padding-bottom:4rem}.pb-12{padding-bottom:3rem}.pb-24{padding-bottom:6rem}.pt-16{padding-top:4rem}.text-center{text-align:center}.text-2xl{font-size:1.5rem;line-height:2rem}.text-3xl{font-size:1.875rem;line-height:2.25rem}.text-5xl{font-size:3rem;line-height:1}.text-base{font-size:1rem;line-height:1.5rem}.text-sm{font-size:.875rem;line-height:1.25rem}.text-xl{font-size:1.25rem;line-height:1.75rem}.font-bold{font-weight:700}.font-light{font-weight:300}.font-medium{font-weight:500}.font-semibold{font-weight:600}.italic{font-style:italic}.leading-relaxed{line-height:1.625}.text-accent{--tw-text-opacity:1;color:rgb(0 106 255/var(--tw-text-opacity,1))}.text-gray-500{--tw-text-opacity:1;color:rgb(107 114 128/var(--tw-text-opacity,1))}.text-gray-600{--tw-text-opacity:1;color:rgb(75 85 99/var(--tw-text-opacity,1))}.text-gray-700{--tw-text-opacity:1;color:rgb(55 65 81/var(--tw-text-opacity,1))}.text-primary{--tw-text-opacity:1;color:rgb(51 51 51/var(--tw-text-opacity,1))}.text-red-500{--tw-text-opacity:1;color:rgb(239 68 68/var(--tw-text-opacity,1))}.text-white{--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity,1))}.shadow-lg{--tw-shadow:0 10px 15px -3px rgb(0 0 0/0.1),0 4px 6px -4px rgb(0 0 0/0.1);--tw-shadow-colored:0 10px 15px -3px var(--tw-shadow-color),0 4px 6px -4px var(--tw-shadow-color)}.shadow-lg,.shadow-sm{box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.shadow-sm{--tw-shadow:0 1px 2px 0 rgb(0 0 0/0.05);--tw-shadow-colored:0 1px 2px 0 var(--tw-shadow-color)}.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.transition{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,-webkit-backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter,-webkit-backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-transform{transition-property:transform;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.duration-300{transition-duration:.3s}body{--tw-bg-opacity:1;background-color:rgb(255 255 255/var(--tw-bg-opacity,1));font-family:Inter,sans-serif;--tw-text-opacity:1;color:rgb(51 51 51/var(--tw-text-opacity,1))}main{display:flex;flex-direction:column;gap:4rem}.hover\:bg-primary:hover{--tw-bg-opacity:1;background-color:rgb(51 51 51/var(--tw-bg-opacity,1))}.hover\:text-accent:hover{--tw-text-opacity:1;color:rgb(0 106 255/var(--tw-text-opacity,1))}.hover\:text-primary:hover{--tw-text-opacity:1;color:rgb(51 51 51/var(--tw-text-opacity,1))}.hover\:text-white:hover{--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity,1))}.hover\:opacity-90:hover{opacity:.9}.hover\:shadow:hover{--tw-shadow:0 1px 3px 0 rgb(0 0 0/0.1),0 1px 2px -1px rgb(0 0 0/0.1);--tw-shadow-colored:0 1px 3px 0 var(--tw-shadow-color),0 1px 2px -1px var(--tw-shadow-color)}.hover\:shadow-lg:hover,.hover\:shadow:hover{box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.hover\:shadow-lg:hover{--tw-shadow:0 10px 15px -3px rgb(0 0 0/0.1),0 4px 6px -4px rgb(0 0 0/0.1);--tw-shadow-colored:0 10px 15px -3px var(--tw-shadow-color),0 4px 6px -4px var(--tw-shadow-color)}.focus\:outline-none:focus{outline:2px solid transparent;outline-offset:2px}.disabled\:opacity-50:disabled{opacity:.5}@media (min-width:768px){.md\:mt-0{margin-top:0}.md\:flex{display:flex}.md\:hidden{display:none}.md\:w-1\/2{width:50%}.md\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.md\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.md\:grid-cols-5{grid-template-columns:repeat(5,minmax(0,1fr))}.md\:flex-row{flex-direction:row}} \ No newline at end of file diff --git a/.next/static/zlAH2cHTsaxKzxppe1EeC/_buildManifest.js b/.next/static/zlAH2cHTsaxKzxppe1EeC/_buildManifest.js deleted file mode 100644 index b151e92..0000000 --- a/.next/static/zlAH2cHTsaxKzxppe1EeC/_buildManifest.js +++ /dev/null @@ -1 +0,0 @@ -self.__BUILD_MANIFEST=function(s,e,a,t){return{__rewrites:{afterFiles:[],beforeFiles:[],fallback:[]},__routerFilterStatic:{numItems:0,errorRate:1e-4,numBits:0,numHashes:null,bitArray:[]},__routerFilterDynamic:{numItems:e,errorRate:1e-4,numBits:e,numHashes:null,bitArray:[]},"/":[s,"static/chunks/pages/index-f0d56cc007c09baf.js"],"/_error":["static/chunks/pages/_error-7ddc2730f944d98a.js"],"/about":[s,"static/chunks/pages/about-2092805e7bd2ab57.js"],"/cases":[s,"static/chunks/pages/cases-7fc60f7f3779c332.js"],"/contact":[s,"static/chunks/pages/contact-eb714edd6749b939.js"],"/features":[s,"static/chunks/pages/features-c01c43eb1fe58456.js"],"/login":[s,"static/chunks/pages/login-770246fe6d4a26b5.js"],"/news":[s,"static/chunks/pages/news-eab647df9653169a.js"],"/pricing":[s,"static/chunks/pages/pricing-20dc30b818da4890.js"],sortedPages:["/","/_app","/_error","/about","/cases","/contact","/features","/login","/news","/pricing"]}}("static/chunks/752-7be3646714fa7c4b.js",0,1e-4,null),self.__BUILD_MANIFEST_CB&&self.__BUILD_MANIFEST_CB(); \ No newline at end of file diff --git a/.next/static/zlAH2cHTsaxKzxppe1EeC/_ssgManifest.js b/.next/static/zlAH2cHTsaxKzxppe1EeC/_ssgManifest.js deleted file mode 100644 index 0511aa8..0000000 --- a/.next/static/zlAH2cHTsaxKzxppe1EeC/_ssgManifest.js +++ /dev/null @@ -1 +0,0 @@ -self.__SSG_MANIFEST=new Set,self.__SSG_MANIFEST_CB&&self.__SSG_MANIFEST_CB(); \ No newline at end of file diff --git a/.next/trace b/.next/trace index a649644..bf2482a 100644 --- a/.next/trace +++ b/.next/trace @@ -1,6 +1,3 @@ -[{"name":"generate-buildid","duration":349,"timestamp":62582820630,"id":4,"parentId":1,"tags":{},"startTime":1752658275983,"traceId":"348090f4f4adc525"},{"name":"load-custom-routes","duration":562,"timestamp":62582821148,"id":5,"parentId":1,"tags":{},"startTime":1752658275983,"traceId":"348090f4f4adc525"},{"name":"create-dist-dir","duration":791,"timestamp":62582962748,"id":6,"parentId":1,"tags":{},"startTime":1752658276125,"traceId":"348090f4f4adc525"},{"name":"verify-and-lint","duration":234357,"timestamp":62583031543,"id":8,"parentId":1,"tags":{},"startTime":1752658276194,"traceId":"348090f4f4adc525"},{"name":"verify-typescript-setup","duration":3337054,"timestamp":62582970767,"id":7,"parentId":1,"tags":{},"startTime":1752658276133,"traceId":"348090f4f4adc525"},{"name":"collect-pages","duration":9014,"timestamp":62586310803,"id":9,"parentId":1,"tags":{},"startTime":1752658279473,"traceId":"348090f4f4adc525"},{"name":"create-pages-mapping","duration":1452,"timestamp":62586328099,"id":10,"parentId":1,"tags":{},"startTime":1752658279490,"traceId":"348090f4f4adc525"},{"name":"public-dir-conflict-check","duration":3659,"timestamp":62586330014,"id":11,"parentId":1,"tags":{},"startTime":1752658279492,"traceId":"348090f4f4adc525"},{"name":"generate-routes-manifest","duration":7271,"timestamp":62586334406,"id":12,"parentId":1,"tags":{},"startTime":1752658279497,"traceId":"348090f4f4adc525"},{"name":"create-entrypoints","duration":49651,"timestamp":62587832908,"id":16,"parentId":14,"tags":{},"startTime":1752658280995,"traceId":"348090f4f4adc525"},{"name":"generate-webpack-config","duration":525272,"timestamp":62587882802,"id":17,"parentId":15,"tags":{},"startTime":1752658281045,"traceId":"348090f4f4adc525"},{"name":"next-trace-entrypoint-plugin","duration":6571,"timestamp":62588654603,"id":19,"parentId":18,"tags":{},"startTime":1752658281817,"traceId":"348090f4f4adc525"},{"name":"build-module","duration":79355,"timestamp":62588807098,"id":37,"parentId":24,"tags":{"name":"E:\\百战计划\\run\\aws-proxy-site\\node_modules\\next\\dist\\build\\webpack\\loaders\\next-route-loader\\index.js?kind=PAGES&page=%2F_error&preferredRegion=&absolutePagePath=next%2Fdist%2Fpages%2F_error&absoluteAppPath=private-next-pages%2F_app.tsx&absoluteDocumentPath=next%2Fdist%2Fpages%2F_document&middlewareConfigBase64=e30%3D!","layer":"pages-dir-node"},"startTime":1752658281969,"traceId":"348090f4f4adc525"},{"name":"build-module","duration":107608,"timestamp":62588803919,"id":35,"parentId":22,"tags":{"name":"E:\\百战计划\\run\\aws-proxy-site\\node_modules\\next\\dist\\build\\webpack\\loaders\\next-route-loader\\index.js?kind=PAGES&page=%2Fabout&preferredRegion=&absolutePagePath=private-next-pages%2Fabout.tsx&absoluteAppPath=private-next-pages%2F_app.tsx&absoluteDocumentPath=next%2Fdist%2Fpages%2F_document&middlewareConfigBase64=e30%3D!","layer":"pages-dir-node"},"startTime":1752658281966,"traceId":"348090f4f4adc525"},{"name":"build-module","duration":125386,"timestamp":62588807419,"id":38,"parentId":25,"tags":{"name":"E:\\百战计划\\run\\aws-proxy-site\\node_modules\\next\\dist\\build\\webpack\\loaders\\next-route-loader\\index.js?kind=PAGES&page=%2Fcases&preferredRegion=&absolutePagePath=private-next-pages%2Fcases.tsx&absoluteAppPath=private-next-pages%2F_app.tsx&absoluteDocumentPath=next%2Fdist%2Fpages%2F_document&middlewareConfigBase64=e30%3D!","layer":"pages-dir-node"},"startTime":1752658281969,"traceId":"348090f4f4adc525"},{"name":"build-module","duration":162659,"timestamp":62588807803,"id":39,"parentId":26,"tags":{"name":"E:\\百战计划\\run\\aws-proxy-site\\node_modules\\next\\dist\\build\\webpack\\loaders\\next-route-loader\\index.js?kind=PAGES&page=%2Fcontact&preferredRegion=&absolutePagePath=private-next-pages%2Fcontact.tsx&absoluteAppPath=private-next-pages%2F_app.tsx&absoluteDocumentPath=next%2Fdist%2Fpages%2F_document&middlewareConfigBase64=e30%3D!","layer":"pages-dir-node"},"startTime":1752658281970,"traceId":"348090f4f4adc525"},{"name":"build-module","duration":181046,"timestamp":62588808525,"id":41,"parentId":28,"tags":{"name":"E:\\百战计划\\run\\aws-proxy-site\\node_modules\\next\\dist\\build\\webpack\\loaders\\next-route-loader\\index.js?kind=PAGES&page=%2F&preferredRegion=&absolutePagePath=private-next-pages%2Findex.tsx&absoluteAppPath=private-next-pages%2F_app.tsx&absoluteDocumentPath=next%2Fdist%2Fpages%2F_document&middlewareConfigBase64=e30%3D!","layer":"pages-dir-node"},"startTime":1752658281970,"traceId":"348090f4f4adc525"},{"name":"build-module","duration":193058,"timestamp":62588808238,"id":40,"parentId":27,"tags":{"name":"E:\\百战计划\\run\\aws-proxy-site\\node_modules\\next\\dist\\build\\webpack\\loaders\\next-route-loader\\index.js?kind=PAGES&page=%2Ffeatures&preferredRegion=&absolutePagePath=private-next-pages%2Ffeatures.tsx&absoluteAppPath=private-next-pages%2F_app.tsx&absoluteDocumentPath=next%2Fdist%2Fpages%2F_document&middlewareConfigBase64=e30%3D!","layer":"pages-dir-node"},"startTime":1752658281970,"traceId":"348090f4f4adc525"},{"name":"build-module","duration":204370,"timestamp":62588809065,"id":42,"parentId":29,"tags":{"name":"E:\\百战计划\\run\\aws-proxy-site\\node_modules\\next\\dist\\build\\webpack\\loaders\\next-route-loader\\index.js?kind=PAGES&page=%2Flogin&preferredRegion=&absolutePagePath=private-next-pages%2Flogin.tsx&absoluteAppPath=private-next-pages%2F_app.tsx&absoluteDocumentPath=next%2Fdist%2Fpages%2F_document&middlewareConfigBase64=e30%3D!","layer":"pages-dir-node"},"startTime":1752658281971,"traceId":"348090f4f4adc525"},{"name":"build-module","duration":222075,"timestamp":62588809439,"id":43,"parentId":30,"tags":{"name":"E:\\百战计划\\run\\aws-proxy-site\\node_modules\\next\\dist\\build\\webpack\\loaders\\next-route-loader\\index.js?kind=PAGES&page=%2Fnews&preferredRegion=&absolutePagePath=private-next-pages%2Fnews.tsx&absoluteAppPath=private-next-pages%2F_app.tsx&absoluteDocumentPath=next%2Fdist%2Fpages%2F_document&middlewareConfigBase64=e30%3D!","layer":"pages-dir-node"},"startTime":1752658281971,"traceId":"348090f4f4adc525"},{"name":"build-module","duration":233997,"timestamp":62588809814,"id":44,"parentId":31,"tags":{"name":"E:\\百战计划\\run\\aws-proxy-site\\node_modules\\next\\dist\\build\\webpack\\loaders\\next-route-loader\\index.js?kind=PAGES&page=%2Fpricing&preferredRegion=&absolutePagePath=private-next-pages%2Fpricing.tsx&absoluteAppPath=private-next-pages%2F_app.tsx&absoluteDocumentPath=next%2Fdist%2Fpages%2F_document&middlewareConfigBase64=e30%3D!","layer":"pages-dir-node"},"startTime":1752658281972,"traceId":"348090f4f4adc525"},{"name":"build-module-tsx","duration":248304,"timestamp":62588798889,"id":33,"parentId":21,"tags":{"name":"E:\\百战计划\\run\\aws-proxy-site\\pages\\_app.tsx","layer":"pages-dir-node"},"startTime":1752658281961,"traceId":"348090f4f4adc525"},{"name":"build-module-js","duration":297246,"timestamp":62588802735,"id":34,"parentId":32,"tags":{"name":"E:\\百战计划\\run\\aws-proxy-site\\node_modules\\next\\dist\\pages\\_document.js","layer":"pages-dir-node"},"startTime":1752658281965,"traceId":"348090f4f4adc525"},{"name":"build-module","duration":308797,"timestamp":62588805873,"id":36,"parentId":23,"tags":{"name":"E:\\百战计划\\run\\aws-proxy-site\\node_modules\\next\\dist\\build\\webpack\\loaders\\next-route-loader\\index.js?kind=PAGES_API&page=%2Fapi%2Fsitemap%2F%5Blang%5D&preferredRegion=&absolutePagePath=private-next-pages%2Fapi%2Fsitemap%2F%5Blang%5D.ts&middlewareConfigBase64=e30%3D!","layer":"api-node"},"startTime":1752658281968,"traceId":"348090f4f4adc525"},{"name":"build-module","duration":598,"timestamp":62589186942,"id":45,"parentId":37,"tags":{"name":"next/dist/shared/lib/router/utils/format-url","layer":null},"startTime":1752658282349,"traceId":"348090f4f4adc525"},{"name":"build-module","duration":71,"timestamp":62589187640,"id":46,"parentId":37,"tags":{"name":"next/dist/shared/lib/page-path/normalize-data-path","layer":null},"startTime":1752658282350,"traceId":"348090f4f4adc525"},{"name":"build-module","duration":39,"timestamp":62589187752,"id":47,"parentId":37,"tags":{"name":"next/dist/shared/lib/utils","layer":null},"startTime":1752658282350,"traceId":"348090f4f4adc525"},{"name":"build-module-external","duration":40,"timestamp":62589187841,"id":48,"parentId":37,"tags":{"name":"next/dist/shared/lib/no-fallback-error.external","layer":null},"startTime":1752658282350,"traceId":"348090f4f4adc525"},{"name":"build-module","duration":29,"timestamp":62589187919,"id":49,"parentId":37,"tags":{"name":"next/dist/shared/lib/router/utils/is-bot","layer":null},"startTime":1752658282350,"traceId":"348090f4f4adc525"},{"name":"build-module","duration":55,"timestamp":62589188151,"id":50,"parentId":37,"tags":{"name":"next/dist/shared/lib/router/utils/add-path-prefix","layer":null},"startTime":1752658282350,"traceId":"348090f4f4adc525"},{"name":"build-module","duration":29,"timestamp":62589188234,"id":51,"parentId":37,"tags":{"name":"next/dist/shared/lib/router/utils/remove-trailing-slash","layer":null},"startTime":1752658282350,"traceId":"348090f4f4adc525"},{"name":"build-module-js","duration":28982,"timestamp":62589188310,"id":52,"parentId":37,"tags":{"name":"E:\\百战计划\\run\\aws-proxy-site\\node_modules\\next\\dist\\pages\\_error.js","layer":"pages-dir-node"},"startTime":1752658282350,"traceId":"348090f4f4adc525"},{"name":"build-module","duration":68,"timestamp":62589224771,"id":66,"parentId":33,"tags":{"name":"react/jsx-runtime","layer":null},"startTime":1752658282387,"traceId":"348090f4f4adc525"},{"name":"build-module","duration":32,"timestamp":62589224883,"id":67,"parentId":34,"tags":{"name":"react","layer":null},"startTime":1752658282387,"traceId":"348090f4f4adc525"},{"name":"build-module-js","duration":51612,"timestamp":62589188608,"id":53,"parentId":37,"tags":{"name":"E:\\百战计划\\run\\aws-proxy-site\\node_modules\\next\\dist\\server\\route-kind.js","layer":"pages-dir-node"},"startTime":1752658282350,"traceId":"348090f4f4adc525"},{"name":"build-module-js","duration":16511,"timestamp":62589224948,"id":68,"parentId":36,"tags":{"name":"E:\\百战计划\\run\\aws-proxy-site\\node_modules\\next\\dist\\server\\route-kind.js","layer":"api-node"},"startTime":1752658282387,"traceId":"348090f4f4adc525"},{"name":"build-module-js","duration":54688,"timestamp":62589189524,"id":55,"parentId":37,"tags":{"name":"E:\\百战计划\\run\\aws-proxy-site\\node_modules\\next\\dist\\server\\send-payload.js","layer":"pages-dir-node"},"startTime":1752658282351,"traceId":"348090f4f4adc525"},{"name":"build-module-js","duration":56221,"timestamp":62589189373,"id":54,"parentId":37,"tags":{"name":"E:\\百战计划\\run\\aws-proxy-site\\node_modules\\next\\dist\\server\\request-meta.js","layer":"pages-dir-node"},"startTime":1752658282351,"traceId":"348090f4f4adc525"},{"name":"build-module-js","duration":60566,"timestamp":62589189617,"id":56,"parentId":37,"tags":{"name":"E:\\百战计划\\run\\aws-proxy-site\\node_modules\\next\\dist\\server\\render-result.js","layer":"pages-dir-node"},"startTime":1752658282352,"traceId":"348090f4f4adc525"},{"name":"build-module-js","duration":62070,"timestamp":62589190027,"id":61,"parentId":37,"tags":{"name":"E:\\百战计划\\run\\aws-proxy-site\\node_modules\\next\\dist\\lib\\redirect-status.js","layer":"pages-dir-node"},"startTime":1752658282352,"traceId":"348090f4f4adc525"},{"name":"build-module-js","duration":63177,"timestamp":62589189849,"id":59,"parentId":37,"tags":{"name":"E:\\百战计划\\run\\aws-proxy-site\\node_modules\\next\\dist\\server\\instrumentation\\utils.js","layer":"pages-dir-node"},"startTime":1752658282352,"traceId":"348090f4f4adc525"},{"name":"build-module-js","duration":68055,"timestamp":62589190096,"id":62,"parentId":37,"tags":{"name":"E:\\百战计划\\run\\aws-proxy-site\\node_modules\\next\\dist\\lib\\constants.js","layer":"pages-dir-node"},"startTime":1752658282352,"traceId":"348090f4f4adc525"},{"name":"build-module-js","duration":73559,"timestamp":62589190172,"id":63,"parentId":37,"tags":{"name":"E:\\百战计划\\run\\aws-proxy-site\\node_modules\\next\\dist\\server\\lib\\trace\\constants.js","layer":"pages-dir-node"},"startTime":1752658282352,"traceId":"348090f4f4adc525"},{"name":"build-module-js","duration":43979,"timestamp":62589225799,"id":71,"parentId":36,"tags":{"name":"E:\\百战计划\\run\\aws-proxy-site\\node_modules\\next\\dist\\server\\lib\\trace\\constants.js","layer":"api-node"},"startTime":1752658282388,"traceId":"348090f4f4adc525"},{"name":"build-module-js","duration":91488,"timestamp":62589190242,"id":64,"parentId":37,"tags":{"name":"E:\\百战计划\\run\\aws-proxy-site\\node_modules\\next\\dist\\server\\lib\\trace\\tracer.js","layer":"pages-dir-node"},"startTime":1752658282352,"traceId":"348090f4f4adc525"},{"name":"build-module-js","duration":66153,"timestamp":62589225760,"id":70,"parentId":36,"tags":{"name":"E:\\百战计划\\run\\aws-proxy-site\\node_modules\\next\\dist\\server\\lib\\trace\\tracer.js","layer":"api-node"},"startTime":1752658282388,"traceId":"348090f4f4adc525"},{"name":"build-module-js","duration":103098,"timestamp":62589189776,"id":58,"parentId":37,"tags":{"name":"E:\\百战计划\\run\\aws-proxy-site\\node_modules\\next\\dist\\server\\app-render\\interop-default.js","layer":"pages-dir-node"},"startTime":1752658282352,"traceId":"348090f4f4adc525"},{"name":"build-module-js","duration":109643,"timestamp":62589190306,"id":65,"parentId":37,"tags":{"name":"E:\\百战计划\\run\\aws-proxy-site\\node_modules\\next\\dist\\server\\response-cache\\utils.js","layer":"pages-dir-node"},"startTime":1752658282352,"traceId":"348090f4f4adc525"},{"name":"build-module-js","duration":112435,"timestamp":62589189927,"id":60,"parentId":37,"tags":{"name":"E:\\百战计划\\run\\aws-proxy-site\\node_modules\\next\\dist\\server\\lib\\cache-control.js","layer":"pages-dir-node"},"startTime":1752658282352,"traceId":"348090f4f4adc525"},{"name":"build-module-js","duration":78354,"timestamp":62589225921,"id":73,"parentId":37,"tags":{"name":"E:\\百战计划\\run\\aws-proxy-site\\node_modules\\next\\dist\\client\\components\\redirect-status-code.js","layer":"pages-dir-node"},"startTime":1752658282388,"traceId":"348090f4f4adc525"},{"name":"build-module-js","duration":115657,"timestamp":62589189699,"id":57,"parentId":37,"tags":{"name":"E:\\百战计划\\run\\aws-proxy-site\\node_modules\\next\\dist\\build\\templates\\helpers.js","layer":"pages-dir-node"},"startTime":1752658282352,"traceId":"348090f4f4adc525"},{"name":"build-module-js","duration":80976,"timestamp":62589225701,"id":69,"parentId":36,"tags":{"name":"E:\\百战计划\\run\\aws-proxy-site\\node_modules\\next\\dist\\build\\templates\\helpers.js","layer":"api-node"},"startTime":1752658282388,"traceId":"348090f4f4adc525"},{"name":"build-module-tsx","duration":75569,"timestamp":62589234620,"id":74,"parentId":35,"tags":{"name":"E:\\百战计划\\run\\aws-proxy-site\\pages\\about.tsx","layer":"pages-dir-node"},"startTime":1752658282397,"traceId":"348090f4f4adc525"},{"name":"build-module-tsx","duration":76010,"timestamp":62589234973,"id":75,"parentId":38,"tags":{"name":"E:\\百战计划\\run\\aws-proxy-site\\pages\\cases.tsx","layer":"pages-dir-node"},"startTime":1752658282397,"traceId":"348090f4f4adc525"},{"name":"build-module-js","duration":110145,"timestamp":62589225834,"id":72,"parentId":37,"tags":{"name":"E:\\百战计划\\run\\aws-proxy-site\\node_modules\\next\\dist\\server\\route-modules\\pages\\module.compiled.js","layer":"pages-dir-node"},"startTime":1752658282388,"traceId":"348090f4f4adc525"},{"name":"build-module-tsx","duration":10428,"timestamp":62589329461,"id":83,"parentId":41,"tags":{"name":"E:\\百战计划\\run\\aws-proxy-site\\pages\\index.tsx","layer":"pages-dir-node"},"startTime":1752658282491,"traceId":"348090f4f4adc525"},{"name":"build-module-tsx","duration":11327,"timestamp":62589329161,"id":82,"parentId":39,"tags":{"name":"E:\\百战计划\\run\\aws-proxy-site\\pages\\contact.tsx","layer":"pages-dir-node"},"startTime":1752658282491,"traceId":"348090f4f4adc525"},{"name":"build-module-js","duration":45435,"timestamp":62589316609,"id":78,"parentId":34,"tags":{"name":"E:\\百战计划\\run\\aws-proxy-site\\node_modules\\next\\dist\\lib\\pretty-bytes.js","layer":"pages-dir-node"},"startTime":1752658282478,"traceId":"348090f4f4adc525"},{"name":"build-module-js","duration":47687,"timestamp":62589316270,"id":77,"parentId":34,"tags":{"name":"E:\\百战计划\\run\\aws-proxy-site\\node_modules\\next\\dist\\lib\\is-error.js","layer":"pages-dir-node"},"startTime":1752658282478,"traceId":"348090f4f4adc525"},{"name":"build-module-js","duration":47605,"timestamp":62589316937,"id":81,"parentId":34,"tags":{"name":"E:\\百战计划\\run\\aws-proxy-site\\node_modules\\next\\dist\\server\\lib\\trace\\utils.js","layer":"pages-dir-node"},"startTime":1752658282479,"traceId":"348090f4f4adc525"},{"name":"build-module-js","duration":49344,"timestamp":62589316094,"id":76,"parentId":34,"tags":{"name":"E:\\百战计划\\run\\aws-proxy-site\\node_modules\\next\\dist\\server\\get-page-files.js","layer":"pages-dir-node"},"startTime":1752658282478,"traceId":"348090f4f4adc525"},{"name":"build-module-js","duration":51117,"timestamp":62589316825,"id":80,"parentId":34,"tags":{"name":"E:\\百战计划\\run\\aws-proxy-site\\node_modules\\next\\dist\\server\\utils.js","layer":"pages-dir-node"},"startTime":1752658282479,"traceId":"348090f4f4adc525"},{"name":"build-module-js","duration":53289,"timestamp":62589316743,"id":79,"parentId":34,"tags":{"name":"E:\\百战计划\\run\\aws-proxy-site\\node_modules\\next\\dist\\server\\htmlescape.js","layer":"pages-dir-node"},"startTime":1752658282479,"traceId":"348090f4f4adc525"},{"name":"build-module-js","duration":63,"timestamp":62589371692,"id":87,"parentId":72,"tags":{"name":"next/dist/compiled/next-server/pages.runtime.prod.js","layer":null},"startTime":1752658282534,"traceId":"348090f4f4adc525"},{"name":"build-module-tsx","duration":29898,"timestamp":62589356626,"id":85,"parentId":40,"tags":{"name":"E:\\百战计划\\run\\aws-proxy-site\\pages\\features.tsx","layer":"pages-dir-node"},"startTime":1752658282519,"traceId":"348090f4f4adc525"},{"name":"build-module-tsx","duration":17596,"timestamp":62589371781,"id":88,"parentId":44,"tags":{"name":"E:\\百战计划\\run\\aws-proxy-site\\pages\\pricing.tsx","layer":"pages-dir-node"},"startTime":1752658282534,"traceId":"348090f4f4adc525"},{"name":"build-module-tsx","duration":18058,"timestamp":62589372317,"id":90,"parentId":42,"tags":{"name":"E:\\百战计划\\run\\aws-proxy-site\\pages\\login.tsx","layer":"pages-dir-node"},"startTime":1752658282534,"traceId":"348090f4f4adc525"},{"name":"build-module-tsx","duration":19005,"timestamp":62589372089,"id":89,"parentId":43,"tags":{"name":"E:\\百战计划\\run\\aws-proxy-site\\pages\\news.tsx","layer":"pages-dir-node"},"startTime":1752658282534,"traceId":"348090f4f4adc525"},{"name":"build-module-js","duration":18929,"timestamp":62589372807,"id":92,"parentId":34,"tags":{"name":"E:\\百战计划\\run\\aws-proxy-site\\node_modules\\next\\dist\\shared\\lib\\encode-uri-path.js","layer":"pages-dir-node"},"startTime":1752658282535,"traceId":"348090f4f4adc525"},{"name":"build-module-js","duration":20904,"timestamp":62589373377,"id":98,"parentId":55,"tags":{"name":"E:\\百战计划\\run\\aws-proxy-site\\node_modules\\next\\dist\\client\\components\\app-router-headers.js","layer":"pages-dir-node"},"startTime":1752658282535,"traceId":"348090f4f4adc525"},{"name":"build-module-js","duration":27658,"timestamp":62589372656,"id":91,"parentId":34,"tags":{"name":"E:\\百战计划\\run\\aws-proxy-site\\node_modules\\next\\dist\\shared\\lib\\constants.js","layer":"pages-dir-node"},"startTime":1752658282535,"traceId":"348090f4f4adc525"},{"name":"build-module-js","duration":27815,"timestamp":62589373468,"id":99,"parentId":64,"tags":{"name":"E:\\百战计划\\run\\aws-proxy-site\\node_modules\\next\\dist\\shared\\lib\\is-thenable.js","layer":"pages-dir-node"},"startTime":1752658282535,"traceId":"348090f4f4adc525"},{"name":"build-module-js","duration":37144,"timestamp":62589372942,"id":93,"parentId":52,"tags":{"name":"E:\\百战计划\\run\\aws-proxy-site\\node_modules\\next\\dist\\shared\\lib\\head.js","layer":"pages-dir-node"},"startTime":1752658282535,"traceId":"348090f4f4adc525"},{"name":"build-module-js","duration":41550,"timestamp":62589373215,"id":96,"parentId":55,"tags":{"name":"E:\\百战计划\\run\\aws-proxy-site\\node_modules\\next\\dist\\shared\\lib\\utils.js","layer":"pages-dir-node"},"startTime":1752658282535,"traceId":"348090f4f4adc525"},{"name":"build-module-js","duration":42340,"timestamp":62589373560,"id":100,"parentId":70,"tags":{"name":"E:\\百战计划\\run\\aws-proxy-site\\node_modules\\next\\dist\\shared\\lib\\is-thenable.js","layer":"api-node"},"startTime":1752658282535,"traceId":"348090f4f4adc525"},{"name":"build-module-js","duration":86494,"timestamp":62589337030,"id":84,"parentId":36,"tags":{"name":"E:\\百战计划\\run\\aws-proxy-site\\node_modules\\next\\dist\\server\\route-modules\\pages-api\\module.compiled.js","layer":"api-node"},"startTime":1752658282499,"traceId":"348090f4f4adc525"},{"name":"build-module-js","duration":78171,"timestamp":62589357113,"id":86,"parentId":37,"tags":{"name":"E:\\百战计划\\run\\aws-proxy-site\\node_modules\\next\\dist\\server\\response-cache\\index.js","layer":"pages-dir-node"},"startTime":1752658282519,"traceId":"348090f4f4adc525"},{"name":"build-module-js","duration":74308,"timestamp":62589373060,"id":94,"parentId":56,"tags":{"name":"E:\\百战计划\\run\\aws-proxy-site\\node_modules\\next\\dist\\server\\pipe-readable.js","layer":"pages-dir-node"},"startTime":1752658282535,"traceId":"348090f4f4adc525"},{"name":"build-module-js","duration":75786,"timestamp":62589373308,"id":97,"parentId":65,"tags":{"name":"E:\\百战计划\\run\\aws-proxy-site\\node_modules\\next\\dist\\server\\response-cache\\types.js","layer":"pages-dir-node"},"startTime":1752658282535,"traceId":"348090f4f4adc525"},{"name":"build-module-js","duration":78291,"timestamp":62589373149,"id":95,"parentId":55,"tags":{"name":"E:\\百战计划\\run\\aws-proxy-site\\node_modules\\next\\dist\\server\\lib\\etag.js","layer":"pages-dir-node"},"startTime":1752658282535,"traceId":"348090f4f4adc525"},{"name":"build-module-js","duration":90,"timestamp":62589458376,"id":102,"parentId":84,"tags":{"name":"next/dist/compiled/next-server/pages-api.runtime.prod.js","layer":null},"startTime":1752658282620,"traceId":"348090f4f4adc525"},{"name":"build-module-js","duration":20953,"timestamp":62589458512,"id":103,"parentId":77,"tags":{"name":"E:\\百战计划\\run\\aws-proxy-site\\node_modules\\next\\dist\\shared\\lib\\is-plain-object.js","layer":"pages-dir-node"},"startTime":1752658282620,"traceId":"348090f4f4adc525"},{"name":"build-module-ts","duration":23534,"timestamp":62589458784,"id":104,"parentId":36,"tags":{"name":"E:\\百战计划\\run\\aws-proxy-site\\pages\\api\\sitemap\\[lang].ts","layer":"api-node"},"startTime":1752658282621,"traceId":"348090f4f4adc525"},{"name":"build-module-js","duration":84828,"timestamp":62589424992,"id":101,"parentId":56,"tags":{"name":"E:\\百战计划\\run\\aws-proxy-site\\node_modules\\next\\dist\\server\\stream-utils\\node-web-streams-helper.js","layer":"pages-dir-node"},"startTime":1752658282587,"traceId":"348090f4f4adc525"},{"name":"build-module-js","duration":35489,"timestamp":62589483556,"id":106,"parentId":91,"tags":{"name":"E:\\百战计划\\run\\aws-proxy-site\\node_modules\\next\\dist\\shared\\lib\\modern-browserslist-target.js","layer":"pages-dir-node"},"startTime":1752658282645,"traceId":"348090f4f4adc525"},{"name":"build-module-js","duration":37053,"timestamp":62589483819,"id":107,"parentId":93,"tags":{"name":"E:\\百战计划\\run\\aws-proxy-site\\node_modules\\next\\dist\\shared\\lib\\amp-mode.js","layer":"pages-dir-node"},"startTime":1752658282646,"traceId":"348090f4f4adc525"},{"name":"build-module-js","duration":40007,"timestamp":62589483145,"id":105,"parentId":93,"tags":{"name":"E:\\百战计划\\run\\aws-proxy-site\\node_modules\\next\\dist\\shared\\lib\\side-effect.js","layer":"pages-dir-node"},"startTime":1752658282645,"traceId":"348090f4f4adc525"},{"name":"build-module-js","duration":21202,"timestamp":62589524977,"id":109,"parentId":76,"tags":{"name":"E:\\百战计划\\run\\aws-proxy-site\\node_modules\\next\\dist\\shared\\lib\\page-path\\denormalize-page-path.js","layer":"pages-dir-node"},"startTime":1752658282687,"traceId":"348090f4f4adc525"},{"name":"build-module-js","duration":23175,"timestamp":62589525197,"id":110,"parentId":76,"tags":{"name":"E:\\百战计划\\run\\aws-proxy-site\\node_modules\\next\\dist\\shared\\lib\\page-path\\normalize-page-path.js","layer":"pages-dir-node"},"startTime":1752658282687,"traceId":"348090f4f4adc525"},{"name":"build-module-js","duration":6810,"timestamp":62589549860,"id":112,"parentId":93,"tags":{"name":"E:\\百战计划\\run\\aws-proxy-site\\node_modules\\next\\dist\\shared\\lib\\utils\\warn-once.js","layer":"pages-dir-node"},"startTime":1752658282712,"traceId":"348090f4f4adc525"},{"name":"build-module","duration":183,"timestamp":62589567923,"id":119,"parentId":110,"tags":{"name":"path","layer":null},"startTime":1752658282730,"traceId":"348090f4f4adc525"},{"name":"build-module-js","duration":48999,"timestamp":62589524785,"id":108,"parentId":36,"tags":{"name":"E:\\百战计划\\run\\aws-proxy-site\\node_modules\\next\\dist\\server\\api-utils\\index.js","layer":"api-node"},"startTime":1752658282687,"traceId":"348090f4f4adc525"},{"name":"build-module-css","duration":1924,"timestamp":62589578320,"id":120,"parentId":33,"tags":{"name":"E:\\百战计划\\run\\aws-proxy-site\\styles\\globals.css","layer":"pages-dir-node"},"startTime":1752658282740,"traceId":"348090f4f4adc525"},{"name":"build-module-js","duration":36564,"timestamp":62589550183,"id":113,"parentId":86,"tags":{"name":"E:\\百战计划\\run\\aws-proxy-site\\node_modules\\next\\dist\\lib\\batcher.js","layer":"pages-dir-node"},"startTime":1752658282712,"traceId":"348090f4f4adc525"},{"name":"build-module-js","duration":37997,"timestamp":62589550375,"id":114,"parentId":86,"tags":{"name":"E:\\百战计划\\run\\aws-proxy-site\\node_modules\\next\\dist\\lib\\scheduler.js","layer":"pages-dir-node"},"startTime":1752658282712,"traceId":"348090f4f4adc525"},{"name":"build-module-js","duration":40222,"timestamp":62589549538,"id":111,"parentId":34,"tags":{"name":"E:\\百战计划\\run\\aws-proxy-site\\node_modules\\next\\dist\\server\\route-modules\\pages\\vendored\\contexts\\html-context.js","layer":"pages-dir-node"},"startTime":1752658282711,"traceId":"348090f4f4adc525"},{"name":"add-entry","duration":930977,"timestamp":62588674220,"id":21,"parentId":20,"tags":{"request":"private-next-pages/_app.tsx"},"startTime":1752658281836,"traceId":"348090f4f4adc525"},{"name":"build-module-js","duration":55966,"timestamp":62589557214,"id":117,"parentId":94,"tags":{"name":"E:\\百战计划\\run\\aws-proxy-site\\node_modules\\next\\dist\\lib\\detached-promise.js","layer":"pages-dir-node"},"startTime":1752658282719,"traceId":"348090f4f4adc525"},{"name":"build-module-js","duration":57493,"timestamp":62589557384,"id":118,"parentId":94,"tags":{"name":"E:\\百战计划\\run\\aws-proxy-site\\node_modules\\next\\dist\\server\\client-component-renderer-logger.js","layer":"pages-dir-node"},"startTime":1752658282719,"traceId":"348090f4f4adc525"},{"name":"build-module-js","duration":58639,"timestamp":62589556827,"id":115,"parentId":93,"tags":{"name":"E:\\百战计划\\run\\aws-proxy-site\\node_modules\\next\\dist\\server\\route-modules\\pages\\vendored\\contexts\\amp-context.js","layer":"pages-dir-node"},"startTime":1752658282719,"traceId":"348090f4f4adc525"},{"name":"build-module-js","duration":58967,"timestamp":62589557063,"id":116,"parentId":93,"tags":{"name":"E:\\百战计划\\run\\aws-proxy-site\\node_modules\\next\\dist\\server\\route-modules\\pages\\vendored\\contexts\\head-manager-context.js","layer":"pages-dir-node"},"startTime":1752658282719,"traceId":"348090f4f4adc525"}] -[{"name":"build-module-js","duration":10637,"timestamp":62589606914,"id":126,"parentId":109,"tags":{"name":"E:\\百战计划\\run\\aws-proxy-site\\node_modules\\next\\dist\\shared\\lib\\page-path\\normalize-path-sep.js","layer":"pages-dir-node"},"startTime":1752658282769,"traceId":"348090f4f4adc525"},{"name":"build-module-js","duration":11827,"timestamp":62589606632,"id":125,"parentId":110,"tags":{"name":"E:\\百战计划\\run\\aws-proxy-site\\node_modules\\next\\dist\\shared\\lib\\page-path\\ensure-leading-slash.js","layer":"pages-dir-node"},"startTime":1752658282769,"traceId":"348090f4f4adc525"},{"name":"build-module-js","duration":7323,"timestamp":62589619074,"id":127,"parentId":108,"tags":{"name":"E:\\百战计划\\run\\aws-proxy-site\\node_modules\\next\\dist\\lib\\constants.js","layer":"api-node"},"startTime":1752658282781,"traceId":"348090f4f4adc525"},{"name":"build-module-js","duration":19125,"timestamp":62589619260,"id":128,"parentId":101,"tags":{"name":"E:\\百战计划\\run\\aws-proxy-site\\node_modules\\next\\dist\\shared\\lib\\errors\\constants.js","layer":"pages-dir-node"},"startTime":1752658282781,"traceId":"348090f4f4adc525"},{"name":"build-module-tsx","duration":19490,"timestamp":62589619970,"id":131,"parentId":74,"tags":{"name":"E:\\百战计划\\run\\aws-proxy-site\\components\\About.tsx","layer":"pages-dir-node"},"startTime":1752658282782,"traceId":"348090f4f4adc525"},{"name":"build-module-js","duration":20988,"timestamp":62589619510,"id":129,"parentId":101,"tags":{"name":"E:\\百战计划\\run\\aws-proxy-site\\node_modules\\next\\dist\\shared\\lib\\segment-cache\\output-export-prefetch-encoding.js","layer":"pages-dir-node"},"startTime":1752658282781,"traceId":"348090f4f4adc525"},{"name":"build-module-tsx","duration":22522,"timestamp":62589619680,"id":130,"parentId":74,"tags":{"name":"E:\\百战计划\\run\\aws-proxy-site\\components\\Navbar.tsx","layer":"pages-dir-node"},"startTime":1752658282782,"traceId":"348090f4f4adc525"},{"name":"build-module-tsx","duration":23006,"timestamp":62589620535,"id":133,"parentId":75,"tags":{"name":"E:\\百战计划\\run\\aws-proxy-site\\components\\CaseList.tsx","layer":"pages-dir-node"},"startTime":1752658282782,"traceId":"348090f4f4adc525"},{"name":"build-module-tsx","duration":23842,"timestamp":62589620798,"id":134,"parentId":83,"tags":{"name":"E:\\百战计划\\run\\aws-proxy-site\\components\\Hero.tsx","layer":"pages-dir-node"},"startTime":1752658282783,"traceId":"348090f4f4adc525"},{"name":"build-module-tsx","duration":24571,"timestamp":62589621048,"id":135,"parentId":83,"tags":{"name":"E:\\百战计划\\run\\aws-proxy-site\\components\\Testimonials.tsx","layer":"pages-dir-node"},"startTime":1752658282783,"traceId":"348090f4f4adc525"},{"name":"build-module-tsx","duration":26175,"timestamp":62589620254,"id":132,"parentId":74,"tags":{"name":"E:\\百战计划\\run\\aws-proxy-site\\components\\Footer.tsx","layer":"pages-dir-node"},"startTime":1752658282782,"traceId":"348090f4f4adc525"},{"name":"build-module-tsx","duration":29452,"timestamp":62589621550,"id":137,"parentId":83,"tags":{"name":"E:\\百战计划\\run\\aws-proxy-site\\components\\Cta.tsx","layer":"pages-dir-node"},"startTime":1752658282783,"traceId":"348090f4f4adc525"},{"name":"build-module-tsx","duration":30578,"timestamp":62589621295,"id":136,"parentId":83,"tags":{"name":"E:\\百战计划\\run\\aws-proxy-site\\components\\Features.tsx","layer":"pages-dir-node"},"startTime":1752658282783,"traceId":"348090f4f4adc525"},{"name":"build-module-tsx","duration":30950,"timestamp":62589621795,"id":138,"parentId":83,"tags":{"name":"E:\\百战计划\\run\\aws-proxy-site\\components\\Process.tsx","layer":"pages-dir-node"},"startTime":1752658282784,"traceId":"348090f4f4adc525"},{"name":"build-module-js","duration":74396,"timestamp":62589579641,"id":123,"parentId":101,"tags":{"name":"E:\\百战计划\\run\\aws-proxy-site\\node_modules\\next\\dist\\server\\stream-utils\\encoded-tags.js","layer":"pages-dir-node"},"startTime":1752658282742,"traceId":"348090f4f4adc525"},{"name":"build-module-js","duration":99594,"timestamp":62589579440,"id":121,"parentId":64,"tags":{"name":"E:\\百战计划\\run\\aws-proxy-site\\node_modules\\next\\dist\\compiled\\@opentelemetry\\api\\index.js","layer":"pages-dir-node"},"startTime":1752658282741,"traceId":"348090f4f4adc525"},{"name":"build-module-js","duration":121114,"timestamp":62589579583,"id":122,"parentId":70,"tags":{"name":"E:\\百战计划\\run\\aws-proxy-site\\node_modules\\next\\dist\\compiled\\@opentelemetry\\api\\index.js","layer":"api-node"},"startTime":1752658282741,"traceId":"348090f4f4adc525"},{"name":"build-module-js","duration":122641,"timestamp":62589579707,"id":124,"parentId":101,"tags":{"name":"E:\\百战计划\\run\\aws-proxy-site\\node_modules\\next\\dist\\server\\stream-utils\\uint8array-helpers.js","layer":"pages-dir-node"},"startTime":1752658282742,"traceId":"348090f4f4adc525"},{"name":"build-module-js","duration":73272,"timestamp":62589647056,"id":139,"parentId":55,"tags":{"name":"E:\\百战计划\\run\\aws-proxy-site\\node_modules\\next\\dist\\compiled\\fresh\\index.js","layer":"pages-dir-node"},"startTime":1752658282809,"traceId":"348090f4f4adc525"},{"name":"build-module-tsx","duration":10877,"timestamp":62589711334,"id":144,"parentId":88,"tags":{"name":"E:\\百战计划\\run\\aws-proxy-site\\components\\Pricing.tsx","layer":"pages-dir-node"},"startTime":1752658282873,"traceId":"348090f4f4adc525"},{"name":"build-module-tsx","duration":12299,"timestamp":62589711076,"id":143,"parentId":90,"tags":{"name":"E:\\百战计划\\run\\aws-proxy-site\\components\\Login.tsx","layer":"pages-dir-node"},"startTime":1752658282873,"traceId":"348090f4f4adc525"},{"name":"build-module-tsx","duration":13593,"timestamp":62589710717,"id":142,"parentId":82,"tags":{"name":"E:\\百战计划\\run\\aws-proxy-site\\components\\Contact.tsx","layer":"pages-dir-node"},"startTime":1752658282873,"traceId":"348090f4f4adc525"},{"name":"build-module-tsx","duration":13678,"timestamp":62589711518,"id":145,"parentId":83,"tags":{"name":"E:\\百战计划\\run\\aws-proxy-site\\components\\CoreAdvantages.tsx","layer":"pages-dir-node"},"startTime":1752658282873,"traceId":"348090f4f4adc525"},{"name":"build-module-tsx","duration":14495,"timestamp":62589711680,"id":146,"parentId":89,"tags":{"name":"E:\\百战计划\\run\\aws-proxy-site\\components\\NewsList.tsx","layer":"pages-dir-node"},"startTime":1752658282874,"traceId":"348090f4f4adc525"},{"name":"build-module-js","duration":26455,"timestamp":62589703796,"id":140,"parentId":94,"tags":{"name":"E:\\百战计划\\run\\aws-proxy-site\\node_modules\\next\\dist\\server\\web\\spec-extension\\adapters\\next-request.js","layer":"pages-dir-node"},"startTime":1752658282866,"traceId":"348090f4f4adc525"},{"name":"build-module-js","duration":31733,"timestamp":62589703965,"id":141,"parentId":108,"tags":{"name":"E:\\百战计划\\run\\aws-proxy-site\\node_modules\\next\\dist\\server\\web\\spec-extension\\adapters\\headers.js","layer":"api-node"},"startTime":1752658282866,"traceId":"348090f4f4adc525"},{"name":"build-module-js","duration":10972,"timestamp":62589737797,"id":147,"parentId":130,"tags":{"name":"E:\\百战计划\\run\\aws-proxy-site\\node_modules\\next\\link.js","layer":"pages-dir-node"},"startTime":1752658282900,"traceId":"348090f4f4adc525"},{"name":"build-module-js","duration":5681,"timestamp":62589756979,"id":148,"parentId":143,"tags":{"name":"E:\\百战计划\\run\\aws-proxy-site\\node_modules\\next\\navigation.js","layer":"pages-dir-node"},"startTime":1752658282919,"traceId":"348090f4f4adc525"},{"name":"build-module-js","duration":4230,"timestamp":62589759941,"id":154,"parentId":109,"tags":{"name":"E:\\百战计划\\run\\aws-proxy-site\\node_modules\\next\\dist\\shared\\lib\\router\\utils\\index.js","layer":"pages-dir-node"},"startTime":1752658282922,"traceId":"348090f4f4adc525"},{"name":"build-module-js","duration":8822,"timestamp":62589759168,"id":149,"parentId":140,"tags":{"name":"E:\\百战计划\\run\\aws-proxy-site\\node_modules\\next\\dist\\server\\web\\utils.js","layer":"pages-dir-node"},"startTime":1752658282921,"traceId":"348090f4f4adc525"},{"name":"build-module-js","duration":10951,"timestamp":62589759298,"id":150,"parentId":140,"tags":{"name":"E:\\百战计划\\run\\aws-proxy-site\\node_modules\\next\\dist\\server\\web\\spec-extension\\request.js","layer":"pages-dir-node"},"startTime":1752658282921,"traceId":"348090f4f4adc525"},{"name":"build-module-cjs","duration":13169,"timestamp":62589759544,"id":153,"parentId":93,"tags":{"name":"E:\\百战计划\\run\\aws-proxy-site\\node_modules\\@swc\\helpers\\cjs\\_interop_require_wildcard.cjs","layer":"pages-dir-node"},"startTime":1752658282921,"traceId":"348090f4f4adc525"},{"name":"build-module-cjs","duration":13717,"timestamp":62589759457,"id":152,"parentId":52,"tags":{"name":"E:\\百战计划\\run\\aws-proxy-site\\node_modules\\@swc\\helpers\\cjs\\_interop_require_default.cjs","layer":"pages-dir-node"},"startTime":1752658282921,"traceId":"348090f4f4adc525"},{"name":"build-module-js","duration":14719,"timestamp":62589759378,"id":151,"parentId":141,"tags":{"name":"E:\\百战计划\\run\\aws-proxy-site\\node_modules\\next\\dist\\server\\web\\spec-extension\\adapters\\reflect.js","layer":"api-node"},"startTime":1752658282921,"traceId":"348090f4f4adc525"},{"name":"build-module-ts","duration":15071,"timestamp":62589764549,"id":156,"parentId":104,"tags":{"name":"E:\\百战计划\\run\\aws-proxy-site\\lib\\content.ts","layer":"api-node"},"startTime":1752658282926,"traceId":"348090f4f4adc525"},{"name":"build-module-js","duration":20595,"timestamp":62589760096,"id":155,"parentId":140,"tags":{"name":"E:\\百战计划\\run\\aws-proxy-site\\node_modules\\next\\dist\\server\\base-http\\helpers.js","layer":"pages-dir-node"},"startTime":1752658282922,"traceId":"348090f4f4adc525"},{"name":"build-module-js","duration":16885,"timestamp":62589774763,"id":158,"parentId":147,"tags":{"name":"E:\\百战计划\\run\\aws-proxy-site\\node_modules\\next\\dist\\client\\link.js","layer":"pages-dir-node"},"startTime":1752658282937,"traceId":"348090f4f4adc525"},{"name":"build-module-js","duration":35615,"timestamp":62589764812,"id":157,"parentId":108,"tags":{"name":"E:\\百战计划\\run\\aws-proxy-site\\node_modules\\next\\dist\\compiled\\cookie\\index.js","layer":"api-node"},"startTime":1752658282927,"traceId":"348090f4f4adc525"},{"name":"build-module-tsx","duration":12419,"timestamp":62589792380,"id":159,"parentId":130,"tags":{"name":"E:\\百战计划\\run\\aws-proxy-site\\components\\Sidebar.tsx","layer":"pages-dir-node"},"startTime":1752658282954,"traceId":"348090f4f4adc525"},{"name":"build-module","duration":97,"timestamp":62589805169,"id":160,"parentId":156,"tags":{"name":"fs","layer":null},"startTime":1752658282967,"traceId":"348090f4f4adc525"},{"name":"build-module-js","duration":13099,"timestamp":62589805297,"id":161,"parentId":148,"tags":{"name":"E:\\百战计划\\run\\aws-proxy-site\\node_modules\\next\\dist\\client\\components\\navigation.js","layer":"pages-dir-node"},"startTime":1752658282967,"traceId":"348090f4f4adc525"},{"name":"build-module-js","duration":12274,"timestamp":62589807207,"id":163,"parentId":154,"tags":{"name":"E:\\百战计划\\run\\aws-proxy-site\\node_modules\\next\\dist\\shared\\lib\\router\\utils\\is-dynamic.js","layer":"pages-dir-node"},"startTime":1752658282969,"traceId":"348090f4f4adc525"},{"name":"build-module-js","duration":16613,"timestamp":62589807021,"id":162,"parentId":154,"tags":{"name":"E:\\百战计划\\run\\aws-proxy-site\\node_modules\\next\\dist\\shared\\lib\\router\\utils\\sorted-routes.js","layer":"pages-dir-node"},"startTime":1752658282969,"traceId":"348090f4f4adc525"},{"name":"build-module-js","duration":8318,"timestamp":62589825405,"id":168,"parentId":158,"tags":{"name":"E:\\百战计划\\run\\aws-proxy-site\\node_modules\\next\\dist\\client\\add-base-path.js","layer":"pages-dir-node"},"startTime":1752658282987,"traceId":"348090f4f4adc525"},{"name":"build-module-js","duration":9976,"timestamp":62589825104,"id":167,"parentId":158,"tags":{"name":"E:\\百战计划\\run\\aws-proxy-site\\node_modules\\next\\dist\\client\\get-domain-locale.js","layer":"pages-dir-node"},"startTime":1752658282987,"traceId":"348090f4f4adc525"},{"name":"build-module-js","duration":10607,"timestamp":62589825692,"id":169,"parentId":158,"tags":{"name":"E:\\百战计划\\run\\aws-proxy-site\\node_modules\\next\\dist\\client\\add-locale.js","layer":"pages-dir-node"},"startTime":1752658282988,"traceId":"348090f4f4adc525"},{"name":"build-module-js","duration":12640,"timestamp":62589825826,"id":170,"parentId":158,"tags":{"name":"E:\\百战计划\\run\\aws-proxy-site\\node_modules\\next\\dist\\client\\resolve-href.js","layer":"pages-dir-node"},"startTime":1752658282988,"traceId":"348090f4f4adc525"},{"name":"build-module-js","duration":13066,"timestamp":62589825922,"id":171,"parentId":158,"tags":{"name":"E:\\百战计划\\run\\aws-proxy-site\\node_modules\\next\\dist\\shared\\lib\\utils\\error-once.js","layer":"pages-dir-node"},"startTime":1752658282988,"traceId":"348090f4f4adc525"},{"name":"build-module-js","duration":13988,"timestamp":62589826083,"id":173,"parentId":158,"tags":{"name":"E:\\百战计划\\run\\aws-proxy-site\\node_modules\\next\\dist\\client\\use-merged-ref.js","layer":"pages-dir-node"},"startTime":1752658282988,"traceId":"348090f4f4adc525"},{"name":"build-module-js","duration":15419,"timestamp":62589826160,"id":174,"parentId":158,"tags":{"name":"E:\\百战计划\\run\\aws-proxy-site\\node_modules\\next\\dist\\shared\\lib\\router\\utils\\is-local-url.js","layer":"pages-dir-node"},"startTime":1752658282988,"traceId":"348090f4f4adc525"},{"name":"build-module-js","duration":25135,"timestamp":62589826004,"id":172,"parentId":158,"tags":{"name":"E:\\百战计划\\run\\aws-proxy-site\\node_modules\\next\\dist\\client\\use-intersection.js","layer":"pages-dir-node"},"startTime":1752658282988,"traceId":"348090f4f4adc525"},{"name":"build-module-js","duration":44343,"timestamp":62589807480,"id":166,"parentId":150,"tags":{"name":"E:\\百战计划\\run\\aws-proxy-site\\node_modules\\next\\dist\\server\\web\\spec-extension\\cookies.js","layer":"pages-dir-node"},"startTime":1752658282969,"traceId":"348090f4f4adc525"},{"name":"build-module-js","duration":47745,"timestamp":62589807316,"id":164,"parentId":150,"tags":{"name":"E:\\百战计划\\run\\aws-proxy-site\\node_modules\\next\\dist\\server\\web\\next-url.js","layer":"pages-dir-node"},"startTime":1752658282969,"traceId":"348090f4f4adc525"},{"name":"build-module-js","duration":48450,"timestamp":62589807407,"id":165,"parentId":150,"tags":{"name":"E:\\百战计划\\run\\aws-proxy-site\\node_modules\\next\\dist\\server\\web\\error.js","layer":"pages-dir-node"},"startTime":1752658282969,"traceId":"348090f4f4adc525"},{"name":"build-module-js","duration":32069,"timestamp":62589826243,"id":175,"parentId":158,"tags":{"name":"E:\\百战计划\\run\\aws-proxy-site\\node_modules\\next\\dist\\shared\\lib\\router\\utils\\format-url.js","layer":"pages-dir-node"},"startTime":1752658282988,"traceId":"348090f4f4adc525"},{"name":"build-module-js","duration":9454,"timestamp":62589872612,"id":177,"parentId":161,"tags":{"name":"E:\\百战计划\\run\\aws-proxy-site\\node_modules\\next\\dist\\shared\\lib\\segment.js","layer":"pages-dir-node"},"startTime":1752658283034,"traceId":"348090f4f4adc525"},{"name":"build-module-js","duration":10925,"timestamp":62589872797,"id":178,"parentId":161,"tags":{"name":"E:\\百战计划\\run\\aws-proxy-site\\node_modules\\next\\dist\\client\\components\\navigation.react-server.js","layer":"pages-dir-node"},"startTime":1752658283035,"traceId":"348090f4f4adc525"},{"name":"build-module-js","duration":11608,"timestamp":62589873179,"id":181,"parentId":161,"tags":{"name":"E:\\百战计划\\run\\aws-proxy-site\\node_modules\\next\\dist\\client\\components\\bailout-to-client-rendering.js","layer":"pages-dir-node"},"startTime":1752658283035,"traceId":"348090f4f4adc525"},{"name":"build-module-js","duration":14204,"timestamp":62589872996,"id":180,"parentId":163,"tags":{"name":"E:\\百战计划\\run\\aws-proxy-site\\node_modules\\next\\dist\\shared\\lib\\router\\utils\\interception-routes.js","layer":"pages-dir-node"},"startTime":1752658283035,"traceId":"348090f4f4adc525"},{"name":"build-module-js","duration":13540,"timestamp":62589879337,"id":186,"parentId":168,"tags":{"name":"E:\\百战计划\\run\\aws-proxy-site\\node_modules\\next\\dist\\shared\\lib\\router\\utils\\add-path-prefix.js","layer":"pages-dir-node"},"startTime":1752658283041,"traceId":"348090f4f4adc525"},{"name":"build-module-js","duration":14559,"timestamp":62589879628,"id":189,"parentId":174,"tags":{"name":"E:\\百战计划\\run\\aws-proxy-site\\node_modules\\next\\dist\\client\\has-base-path.js","layer":"pages-dir-node"},"startTime":1752658283042,"traceId":"348090f4f4adc525"},{"name":"build-module-js","duration":16560,"timestamp":62589879453,"id":187,"parentId":168,"tags":{"name":"E:\\百战计划\\run\\aws-proxy-site\\node_modules\\next\\dist\\client\\normalize-trailing-slash.js","layer":"pages-dir-node"},"startTime":1752658283041,"traceId":"348090f4f4adc525"},{"name":"build-module-js","duration":18870,"timestamp":62589879546,"id":188,"parentId":170,"tags":{"name":"E:\\百战计划\\run\\aws-proxy-site\\node_modules\\next\\dist\\shared\\lib\\router\\utils\\querystring.js","layer":"pages-dir-node"},"startTime":1752658283041,"traceId":"348090f4f4adc525"},{"name":"build-module-js","duration":19403,"timestamp":62589879832,"id":191,"parentId":170,"tags":{"name":"E:\\百战计划\\run\\aws-proxy-site\\node_modules\\next\\dist\\shared\\lib\\router\\utils\\omit.js","layer":"pages-dir-node"},"startTime":1752658283042,"traceId":"348090f4f4adc525"},{"name":"build-module-js","duration":21172,"timestamp":62589879732,"id":190,"parentId":170,"tags":{"name":"E:\\百战计划\\run\\aws-proxy-site\\node_modules\\next\\dist\\shared\\lib\\router\\utils\\interpolate-as.js","layer":"pages-dir-node"},"startTime":1752658283042,"traceId":"348090f4f4adc525"},{"name":"build-module-js","duration":36079,"timestamp":62589867661,"id":176,"parentId":158,"tags":{"name":"E:\\百战计划\\run\\aws-proxy-site\\node_modules\\next\\dist\\server\\route-modules\\pages\\vendored\\contexts\\router-context.js","layer":"pages-dir-node"},"startTime":1752658283030,"traceId":"348090f4f4adc525"},{"name":"build-module-js","duration":16535,"timestamp":62589889168,"id":192,"parentId":164,"tags":{"name":"E:\\百战计划\\run\\aws-proxy-site\\node_modules\\next\\dist\\shared\\lib\\get-hostname.js","layer":"pages-dir-node"},"startTime":1752658283051,"traceId":"348090f4f4adc525"},{"name":"build-module-js","duration":17447,"timestamp":62589889347,"id":193,"parentId":164,"tags":{"name":"E:\\百战计划\\run\\aws-proxy-site\\node_modules\\next\\dist\\shared\\lib\\router\\utils\\format-next-pathname-info.js","layer":"pages-dir-node"},"startTime":1752658283051,"traceId":"348090f4f4adc525"},{"name":"build-module-js","duration":25253,"timestamp":62589889589,"id":195,"parentId":164,"tags":{"name":"E:\\百战计划\\run\\aws-proxy-site\\node_modules\\next\\dist\\shared\\lib\\router\\utils\\get-next-pathname-info.js","layer":"pages-dir-node"},"startTime":1752658283051,"traceId":"348090f4f4adc525"},{"name":"build-module-js","duration":27199,"timestamp":62589889458,"id":194,"parentId":172,"tags":{"name":"E:\\百战计划\\run\\aws-proxy-site\\node_modules\\next\\dist\\client\\request-idle-callback.js","layer":"pages-dir-node"},"startTime":1752658283051,"traceId":"348090f4f4adc525"},{"name":"build-module-js","duration":59308,"timestamp":62589872903,"id":179,"parentId":161,"tags":{"name":"E:\\百战计划\\run\\aws-proxy-site\\node_modules\\next\\dist\\server\\app-render\\dynamic-rendering.js","layer":"pages-dir-node"},"startTime":1752658283035,"traceId":"348090f4f4adc525"},{"name":"build-module-js","duration":13248,"timestamp":62589934027,"id":199,"parentId":161,"tags":{"name":"E:\\百战计划\\run\\aws-proxy-site\\node_modules\\next\\dist\\client\\components\\router-reducer\\reducers\\get-segment-value.js","layer":"pages-dir-node"},"startTime":1752658283096,"traceId":"348090f4f4adc525"},{"name":"build-module-js","duration":13789,"timestamp":62589934263,"id":200,"parentId":164,"tags":{"name":"E:\\百战计划\\run\\aws-proxy-site\\node_modules\\next\\dist\\shared\\lib\\i18n\\detect-domain-locale.js","layer":"pages-dir-node"},"startTime":1752658283096,"traceId":"348090f4f4adc525"},{"name":"build-module-external","duration":97,"timestamp":62589965413,"id":207,"parentId":181,"tags":{"name":"../../server/app-render/work-unit-async-storage.external","layer":null},"startTime":1752658283127,"traceId":"348090f4f4adc525"},{"name":"build-module-external","duration":30,"timestamp":62589965561,"id":208,"parentId":181,"tags":{"name":"../../server/app-render/work-async-storage.external","layer":null},"startTime":1752658283127,"traceId":"348090f4f4adc525"},{"name":"build-module-js","duration":215044,"timestamp":62589879212,"id":184,"parentId":138,"tags":{"name":"__barrel_optimize__?names=CheckCircle,Headphones,MessageSquare,UserCheck!=!E:\\百战计划\\run\\aws-proxy-site\\node_modules\\lucide-react\\dist\\cjs\\lucide-react.js","layer":"pages-dir-node"},"startTime":1752658283041,"traceId":"348090f4f4adc525"},{"name":"build-module-js","duration":188155,"timestamp":62589909787,"id":196,"parentId":161,"tags":{"name":"E:\\百战计划\\run\\aws-proxy-site\\node_modules\\next\\dist\\server\\route-modules\\pages\\vendored\\contexts\\app-router-context.js","layer":"pages-dir-node"},"startTime":1752658283072,"traceId":"348090f4f4adc525"},{"name":"build-module-js","duration":188288,"timestamp":62589910163,"id":198,"parentId":161,"tags":{"name":"E:\\百战计划\\run\\aws-proxy-site\\node_modules\\next\\dist\\server\\route-modules\\pages\\vendored\\contexts\\server-inserted-html.js","layer":"pages-dir-node"},"startTime":1752658283072,"traceId":"348090f4f4adc525"},{"name":"build-module-js","duration":188881,"timestamp":62589909994,"id":197,"parentId":161,"tags":{"name":"E:\\百战计划\\run\\aws-proxy-site\\node_modules\\next\\dist\\server\\route-modules\\pages\\vendored\\contexts\\hooks-client-context.js","layer":"pages-dir-node"},"startTime":1752658283072,"traceId":"348090f4f4adc525"},{"name":"build-module-js","duration":141272,"timestamp":62589964574,"id":201,"parentId":178,"tags":{"name":"E:\\百战计划\\run\\aws-proxy-site\\node_modules\\next\\dist\\client\\components\\redirect.js","layer":"pages-dir-node"},"startTime":1752658283126,"traceId":"348090f4f4adc525"},{"name":"build-module-js","duration":145273,"timestamp":62589964812,"id":202,"parentId":178,"tags":{"name":"E:\\百战计划\\run\\aws-proxy-site\\node_modules\\next\\dist\\client\\components\\not-found.js","layer":"pages-dir-node"},"startTime":1752658283127,"traceId":"348090f4f4adc525"},{"name":"build-module-js","duration":231398,"timestamp":62589879282,"id":185,"parentId":145,"tags":{"name":"__barrel_optimize__?names=Box,Globe,Headphones,ShieldCheck!=!E:\\百战计划\\run\\aws-proxy-site\\node_modules\\lucide-react\\dist\\cjs\\lucide-react.js","layer":"pages-dir-node"},"startTime":1752658283041,"traceId":"348090f4f4adc525"},{"name":"build-module-js","duration":147234,"timestamp":62589964966,"id":203,"parentId":178,"tags":{"name":"E:\\百战计划\\run\\aws-proxy-site\\node_modules\\next\\dist\\client\\components\\redirect-error.js","layer":"pages-dir-node"},"startTime":1752658283127,"traceId":"348090f4f4adc525"},{"name":"build-module-js","duration":148122,"timestamp":62589965088,"id":204,"parentId":178,"tags":{"name":"E:\\百战计划\\run\\aws-proxy-site\\node_modules\\next\\dist\\client\\components\\forbidden.js","layer":"pages-dir-node"},"startTime":1752658283127,"traceId":"348090f4f4adc525"},{"name":"build-module-js","duration":148498,"timestamp":62589965325,"id":206,"parentId":178,"tags":{"name":"E:\\百战计划\\run\\aws-proxy-site\\node_modules\\next\\dist\\client\\components\\unstable-rethrow.js","layer":"pages-dir-node"},"startTime":1752658283127,"traceId":"348090f4f4adc525"},{"name":"build-module-js","duration":149867,"timestamp":62589965234,"id":205,"parentId":178,"tags":{"name":"E:\\百战计划\\run\\aws-proxy-site\\node_modules\\next\\dist\\client\\components\\unauthorized.js","layer":"pages-dir-node"},"startTime":1752658283127,"traceId":"348090f4f4adc525"},{"name":"build-module-js","duration":146333,"timestamp":62589969608,"id":210,"parentId":189,"tags":{"name":"E:\\百战计划\\run\\aws-proxy-site\\node_modules\\next\\dist\\shared\\lib\\router\\utils\\path-has-prefix.js","layer":"pages-dir-node"},"startTime":1752658283131,"traceId":"348090f4f4adc525"},{"name":"build-module-js","duration":147567,"timestamp":62589969245,"id":209,"parentId":180,"tags":{"name":"E:\\百战计划\\run\\aws-proxy-site\\node_modules\\next\\dist\\shared\\lib\\router\\utils\\app-paths.js","layer":"pages-dir-node"},"startTime":1752658283131,"traceId":"348090f4f4adc525"},{"name":"build-module-js","duration":239976,"timestamp":62589877217,"id":182,"parentId":130,"tags":{"name":"__barrel_optimize__?names=Menu!=!E:\\百战计划\\run\\aws-proxy-site\\node_modules\\lucide-react\\dist\\cjs\\lucide-react.js","layer":"pages-dir-node"},"startTime":1752658283039,"traceId":"348090f4f4adc525"},{"name":"build-module-js","duration":147826,"timestamp":62589969778,"id":211,"parentId":187,"tags":{"name":"E:\\百战计划\\run\\aws-proxy-site\\node_modules\\next\\dist\\shared\\lib\\router\\utils\\remove-trailing-slash.js","layer":"pages-dir-node"},"startTime":1752658283132,"traceId":"348090f4f4adc525"},{"name":"build-module-js","duration":148382,"timestamp":62589969924,"id":212,"parentId":190,"tags":{"name":"E:\\百战计划\\run\\aws-proxy-site\\node_modules\\next\\dist\\shared\\lib\\router\\utils\\route-matcher.js","layer":"pages-dir-node"},"startTime":1752658283132,"traceId":"348090f4f4adc525"},{"name":"build-module-js","duration":239625,"timestamp":62589879009,"id":183,"parentId":136,"tags":{"name":"__barrel_optimize__?names=BarChart,Globe,Repeat!=!E:\\百战计划\\run\\aws-proxy-site\\node_modules\\lucide-react\\dist\\cjs\\lucide-react.js","layer":"pages-dir-node"},"startTime":1752658283041,"traceId":"348090f4f4adc525"},{"name":"build-module-js","duration":149118,"timestamp":62589970070,"id":213,"parentId":187,"tags":{"name":"E:\\百战计划\\run\\aws-proxy-site\\node_modules\\next\\dist\\shared\\lib\\router\\utils\\parse-path.js","layer":"pages-dir-node"},"startTime":1752658283132,"traceId":"348090f4f4adc525"},{"name":"build-module-js","duration":149342,"timestamp":62589970375,"id":215,"parentId":193,"tags":{"name":"E:\\百战计划\\run\\aws-proxy-site\\node_modules\\next\\dist\\shared\\lib\\router\\utils\\add-path-suffix.js","layer":"pages-dir-node"},"startTime":1752658283132,"traceId":"348090f4f4adc525"},{"name":"build-module-js","duration":150230,"timestamp":62589970488,"id":216,"parentId":193,"tags":{"name":"E:\\百战计划\\run\\aws-proxy-site\\node_modules\\next\\dist\\shared\\lib\\router\\utils\\add-locale.js","layer":"pages-dir-node"},"startTime":1752658283132,"traceId":"348090f4f4adc525"},{"name":"build-module-js","duration":156110,"timestamp":62589970240,"id":214,"parentId":190,"tags":{"name":"E:\\百战计划\\run\\aws-proxy-site\\node_modules\\next\\dist\\shared\\lib\\router\\utils\\route-regex.js","layer":"pages-dir-node"},"startTime":1752658283132,"traceId":"348090f4f4adc525"},{"name":"add-entry","duration":1457613,"timestamp":62588675960,"id":32,"parentId":20,"tags":{"request":"next/dist/pages/_document"},"startTime":1752658281838,"traceId":"348090f4f4adc525"},{"name":"build-module-js","duration":8711,"timestamp":62590128171,"id":220,"parentId":179,"tags":{"name":"E:\\百战计划\\run\\aws-proxy-site\\node_modules\\next\\dist\\client\\components\\hooks-server-context.js","layer":"pages-dir-node"},"startTime":1752658283290,"traceId":"348090f4f4adc525"},{"name":"build-module-js","duration":9167,"timestamp":62590128354,"id":222,"parentId":195,"tags":{"name":"E:\\百战计划\\run\\aws-proxy-site\\node_modules\\next\\dist\\shared\\lib\\router\\utils\\remove-path-prefix.js","layer":"pages-dir-node"},"startTime":1752658283290,"traceId":"348090f4f4adc525"},{"name":"build-module-js","duration":13550,"timestamp":62590128468,"id":223,"parentId":195,"tags":{"name":"E:\\百战计划\\run\\aws-proxy-site\\node_modules\\next\\dist\\shared\\lib\\i18n\\normalize-locale-path.js","layer":"pages-dir-node"},"startTime":1752658283290,"traceId":"348090f4f4adc525"},{"name":"build-module-js","duration":15645,"timestamp":62590127963,"id":218,"parentId":181,"tags":{"name":"E:\\百战计划\\run\\aws-proxy-site\\node_modules\\next\\dist\\shared\\lib\\lazy-dynamic\\bailout-to-csr.js","layer":"pages-dir-node"},"startTime":1752658283290,"traceId":"348090f4f4adc525"}] -[{"name":"build-module-js","duration":16942,"timestamp":62590128270,"id":221,"parentId":179,"tags":{"name":"E:\\百战计划\\run\\aws-proxy-site\\node_modules\\next\\dist\\client\\components\\static-generation-bailout.js","layer":"pages-dir-node"},"startTime":1752658283290,"traceId":"348090f4f4adc525"},{"name":"build-module-external","duration":81,"timestamp":62590147601,"id":225,"parentId":201,"tags":{"name":"../../server/app-render/action-async-storage.external","layer":null},"startTime":1752658283309,"traceId":"348090f4f4adc525"},{"name":"build-module-js","duration":22408,"timestamp":62590128071,"id":219,"parentId":179,"tags":{"name":"E:\\百战计划\\run\\aws-proxy-site\\node_modules\\next\\dist\\server\\dynamic-rendering-utils.js","layer":"pages-dir-node"},"startTime":1752658283290,"traceId":"348090f4f4adc525"},{"name":"build-module-js","duration":11084,"timestamp":62590145419,"id":224,"parentId":179,"tags":{"name":"E:\\百战计划\\run\\aws-proxy-site\\node_modules\\next\\dist\\lib\\metadata\\metadata-constants.js","layer":"pages-dir-node"},"startTime":1752658283307,"traceId":"348090f4f4adc525"},{"name":"build-module-js","duration":5362,"timestamp":62590154705,"id":227,"parentId":214,"tags":{"name":"E:\\百战计划\\run\\aws-proxy-site\\node_modules\\next\\dist\\shared\\lib\\escape-regexp.js","layer":"pages-dir-node"},"startTime":1752658283317,"traceId":"348090f4f4adc525"},{"name":"build-module-js","duration":6708,"timestamp":62590154431,"id":226,"parentId":206,"tags":{"name":"E:\\百战计划\\run\\aws-proxy-site\\node_modules\\next\\dist\\client\\components\\unstable-rethrow.server.js","layer":"pages-dir-node"},"startTime":1752658283316,"traceId":"348090f4f4adc525"},{"name":"build-module-js","duration":9650,"timestamp":62590162963,"id":228,"parentId":202,"tags":{"name":"E:\\百战计划\\run\\aws-proxy-site\\node_modules\\next\\dist\\client\\components\\http-access-fallback\\http-access-fallback.js","layer":"pages-dir-node"},"startTime":1752658283325,"traceId":"348090f4f4adc525"},{"name":"build-module-js","duration":3319,"timestamp":62590176806,"id":230,"parentId":226,"tags":{"name":"E:\\百战计划\\run\\aws-proxy-site\\node_modules\\next\\dist\\client\\components\\is-next-router-error.js","layer":"pages-dir-node"},"startTime":1752658283339,"traceId":"348090f4f4adc525"},{"name":"build-module-js","duration":13670,"timestamp":62590172841,"id":229,"parentId":166,"tags":{"name":"E:\\百战计划\\run\\aws-proxy-site\\node_modules\\next\\dist\\compiled\\@edge-runtime\\cookies\\index.js","layer":"pages-dir-node"},"startTime":1752658283335,"traceId":"348090f4f4adc525"},{"name":"add-entry","duration":1511718,"timestamp":62588675502,"id":24,"parentId":20,"tags":{"request":"next-route-loader?kind=PAGES&page=%2F_error&preferredRegion=&absolutePagePath=next%2Fdist%2Fpages%2F_error&absoluteAppPath=private-next-pages%2F_app.tsx&absoluteDocumentPath=next%2Fdist%2Fpages%2F_document&middlewareConfigBase64=e30%3D!"},"startTime":1752658281838,"traceId":"348090f4f4adc525"},{"name":"build-module-js","duration":2654,"timestamp":62590186980,"id":231,"parentId":226,"tags":{"name":"E:\\百战计划\\run\\aws-proxy-site\\node_modules\\next\\dist\\server\\lib\\router-utils\\is-postpone.js","layer":"pages-dir-node"},"startTime":1752658283349,"traceId":"348090f4f4adc525"},{"name":"build-module","duration":74,"timestamp":62590286202,"id":232,"parentId":156,"tags":{"name":"gray-matter","layer":null},"startTime":1752658283448,"traceId":"348090f4f4adc525"},{"name":"add-entry","duration":1610891,"timestamp":62588675455,"id":23,"parentId":20,"tags":{"request":"next-route-loader?kind=PAGES_API&page=%2Fapi%2Fsitemap%2F%5Blang%5D&preferredRegion=&absolutePagePath=private-next-pages%2Fapi%2Fsitemap%2F%5Blang%5D.ts&middlewareConfigBase64=e30%3D!"},"startTime":1752658281837,"traceId":"348090f4f4adc525"},{"name":"build-module-js","duration":552701,"timestamp":62590127742,"id":217,"parentId":184,"tags":{"name":"E:\\百战计划\\run\\aws-proxy-site\\node_modules\\lucide-react\\dist\\cjs\\lucide-react.js","layer":"pages-dir-node"},"startTime":1752658283290,"traceId":"348090f4f4adc525"},{"name":"add-entry","duration":2007263,"timestamp":62588675368,"id":22,"parentId":20,"tags":{"request":"next-route-loader?kind=PAGES&page=%2Fabout&preferredRegion=&absolutePagePath=private-next-pages%2Fabout.tsx&absoluteAppPath=private-next-pages%2F_app.tsx&absoluteDocumentPath=next%2Fdist%2Fpages%2F_document&middlewareConfigBase64=e30%3D!"},"startTime":1752658281837,"traceId":"348090f4f4adc525"},{"name":"add-entry","duration":2006941,"timestamp":62588675710,"id":25,"parentId":20,"tags":{"request":"next-route-loader?kind=PAGES&page=%2Fcases&preferredRegion=&absolutePagePath=private-next-pages%2Fcases.tsx&absoluteAppPath=private-next-pages%2F_app.tsx&absoluteDocumentPath=next%2Fdist%2Fpages%2F_document&middlewareConfigBase64=e30%3D!"},"startTime":1752658281838,"traceId":"348090f4f4adc525"},{"name":"add-entry","duration":2006916,"timestamp":62588675745,"id":26,"parentId":20,"tags":{"request":"next-route-loader?kind=PAGES&page=%2Fcontact&preferredRegion=&absolutePagePath=private-next-pages%2Fcontact.tsx&absoluteAppPath=private-next-pages%2F_app.tsx&absoluteDocumentPath=next%2Fdist%2Fpages%2F_document&middlewareConfigBase64=e30%3D!"},"startTime":1752658281838,"traceId":"348090f4f4adc525"},{"name":"add-entry","duration":2006739,"timestamp":62588675929,"id":31,"parentId":20,"tags":{"request":"next-route-loader?kind=PAGES&page=%2Fpricing&preferredRegion=&absolutePagePath=private-next-pages%2Fpricing.tsx&absoluteAppPath=private-next-pages%2F_app.tsx&absoluteDocumentPath=next%2Fdist%2Fpages%2F_document&middlewareConfigBase64=e30%3D!"},"startTime":1752658281838,"traceId":"348090f4f4adc525"},{"name":"add-entry","duration":2006866,"timestamp":62588675809,"id":29,"parentId":20,"tags":{"request":"next-route-loader?kind=PAGES&page=%2Flogin&preferredRegion=&absolutePagePath=private-next-pages%2Flogin.tsx&absoluteAppPath=private-next-pages%2F_app.tsx&absoluteDocumentPath=next%2Fdist%2Fpages%2F_document&middlewareConfigBase64=e30%3D!"},"startTime":1752658281838,"traceId":"348090f4f4adc525"},{"name":"add-entry","duration":2006833,"timestamp":62588675865,"id":30,"parentId":20,"tags":{"request":"next-route-loader?kind=PAGES&page=%2Fnews&preferredRegion=&absolutePagePath=private-next-pages%2Fnews.tsx&absoluteAppPath=private-next-pages%2F_app.tsx&absoluteDocumentPath=next%2Fdist%2Fpages%2F_document&middlewareConfigBase64=e30%3D!"},"startTime":1752658281838,"traceId":"348090f4f4adc525"},{"name":"add-entry","duration":2006916,"timestamp":62588675791,"id":28,"parentId":20,"tags":{"request":"next-route-loader?kind=PAGES&page=%2F&preferredRegion=&absolutePagePath=private-next-pages%2Findex.tsx&absoluteAppPath=private-next-pages%2F_app.tsx&absoluteDocumentPath=next%2Fdist%2Fpages%2F_document&middlewareConfigBase64=e30%3D!"},"startTime":1752658281838,"traceId":"348090f4f4adc525"},{"name":"add-entry","duration":2006941,"timestamp":62588675772,"id":27,"parentId":20,"tags":{"request":"next-route-loader?kind=PAGES&page=%2Ffeatures&preferredRegion=&absolutePagePath=private-next-pages%2Ffeatures.tsx&absoluteAppPath=private-next-pages%2F_app.tsx&absoluteDocumentPath=next%2Fdist%2Fpages%2F_document&middlewareConfigBase64=e30%3D!"},"startTime":1752658281838,"traceId":"348090f4f4adc525"},{"name":"make","duration":2009626,"timestamp":62588673661,"id":20,"parentId":18,"tags":{},"startTime":1752658281836,"traceId":"348090f4f4adc525"},{"name":"get-entries","duration":665,"timestamp":62590685919,"id":234,"parentId":233,"tags":{},"startTime":1752658283848,"traceId":"348090f4f4adc525"},{"name":"node-file-trace-plugin","duration":209569,"timestamp":62590691622,"id":235,"parentId":233,"tags":{"traceEntryCount":"22"},"startTime":1752658283854,"traceId":"348090f4f4adc525"},{"name":"collect-traced-files","duration":2110,"timestamp":62590901211,"id":236,"parentId":233,"tags":{},"startTime":1752658284063,"traceId":"348090f4f4adc525"},{"name":"finish-modules","duration":217814,"timestamp":62590685520,"id":233,"parentId":19,"tags":{},"startTime":1752658283847,"traceId":"348090f4f4adc525"},{"name":"chunk-graph","duration":14636,"timestamp":62591025866,"id":238,"parentId":237,"tags":{},"startTime":1752658284188,"traceId":"348090f4f4adc525"},{"name":"optimize-modules","duration":57,"timestamp":62591040706,"id":240,"parentId":237,"tags":{},"startTime":1752658284203,"traceId":"348090f4f4adc525"},{"name":"optimize-chunks","duration":21597,"timestamp":62591040944,"id":241,"parentId":237,"tags":{},"startTime":1752658284203,"traceId":"348090f4f4adc525"},{"name":"optimize-tree","duration":234,"timestamp":62591062684,"id":242,"parentId":237,"tags":{},"startTime":1752658284225,"traceId":"348090f4f4adc525"},{"name":"optimize-chunk-modules","duration":20996,"timestamp":62591063087,"id":243,"parentId":237,"tags":{},"startTime":1752658284225,"traceId":"348090f4f4adc525"},{"name":"optimize","duration":43751,"timestamp":62591040616,"id":239,"parentId":237,"tags":{},"startTime":1752658284203,"traceId":"348090f4f4adc525"},{"name":"module-hash","duration":24583,"timestamp":62591147364,"id":244,"parentId":237,"tags":{},"startTime":1752658284309,"traceId":"348090f4f4adc525"},{"name":"code-generation","duration":201508,"timestamp":62591172061,"id":245,"parentId":237,"tags":{},"startTime":1752658284334,"traceId":"348090f4f4adc525"},{"name":"hash","duration":14503,"timestamp":62591382051,"id":246,"parentId":237,"tags":{},"startTime":1752658284544,"traceId":"348090f4f4adc525"},{"name":"code-generation-jobs","duration":1002,"timestamp":62591396550,"id":247,"parentId":237,"tags":{},"startTime":1752658284558,"traceId":"348090f4f4adc525"},{"name":"module-assets","duration":426,"timestamp":62591397440,"id":248,"parentId":237,"tags":{},"startTime":1752658284559,"traceId":"348090f4f4adc525"},{"name":"create-chunk-assets","duration":14734,"timestamp":62591397892,"id":249,"parentId":237,"tags":{},"startTime":1752658284560,"traceId":"348090f4f4adc525"},{"name":"minify-js","duration":99294,"timestamp":62591433355,"id":251,"parentId":250,"tags":{"name":"../pages/_app.js","cache":"MISS"},"startTime":1752658284595,"traceId":"348090f4f4adc525"},{"name":"minify-js","duration":99719,"timestamp":62591437484,"id":252,"parentId":250,"tags":{"name":"../pages/about.js","cache":"MISS"},"startTime":1752658284599,"traceId":"348090f4f4adc525"},{"name":"minify-js","duration":91135,"timestamp":62591446548,"id":254,"parentId":250,"tags":{"name":"../pages/_error.js","cache":"MISS"},"startTime":1752658284608,"traceId":"348090f4f4adc525"},{"name":"minify-js","duration":95344,"timestamp":62591448989,"id":255,"parentId":250,"tags":{"name":"../pages/cases.js","cache":"MISS"},"startTime":1752658284611,"traceId":"348090f4f4adc525"},{"name":"minify-js","duration":97842,"timestamp":62591450444,"id":256,"parentId":250,"tags":{"name":"../pages/contact.js","cache":"MISS"},"startTime":1752658284612,"traceId":"348090f4f4adc525"},{"name":"minify-js","duration":98061,"timestamp":62591451810,"id":257,"parentId":250,"tags":{"name":"../pages/features.js","cache":"MISS"},"startTime":1752658284614,"traceId":"348090f4f4adc525"},{"name":"minify-js","duration":114861,"timestamp":62591443217,"id":253,"parentId":250,"tags":{"name":"../pages/api/sitemap/[lang].js","cache":"MISS"},"startTime":1752658284605,"traceId":"348090f4f4adc525"},{"name":"minify-js","duration":105708,"timestamp":62591453144,"id":258,"parentId":250,"tags":{"name":"../pages/index.js","cache":"MISS"},"startTime":1752658284615,"traceId":"348090f4f4adc525"},{"name":"minify-js","duration":88484,"timestamp":62591470911,"id":262,"parentId":250,"tags":{"name":"../pages/_document.js","cache":"MISS"},"startTime":1752658284633,"traceId":"348090f4f4adc525"},{"name":"minify-js","duration":93022,"timestamp":62591467198,"id":260,"parentId":250,"tags":{"name":"../pages/news.js","cache":"MISS"},"startTime":1752658284629,"traceId":"348090f4f4adc525"},{"name":"minify-js","duration":90014,"timestamp":62591471052,"id":263,"parentId":250,"tags":{"name":"../webpack-runtime.js","cache":"MISS"},"startTime":1752658284633,"traceId":"348090f4f4adc525"},{"name":"minify-js","duration":91227,"timestamp":62591471609,"id":264,"parentId":250,"tags":{"name":"../webpack-api-runtime.js","cache":"MISS"},"startTime":1752658284633,"traceId":"348090f4f4adc525"},{"name":"minify-js","duration":101843,"timestamp":62591469298,"id":261,"parentId":250,"tags":{"name":"../pages/pricing.js","cache":"MISS"},"startTime":1752658284631,"traceId":"348090f4f4adc525"},{"name":"minify-js","duration":129734,"timestamp":62591455815,"id":259,"parentId":250,"tags":{"name":"../pages/login.js","cache":"MISS"},"startTime":1752658284618,"traceId":"348090f4f4adc525"},{"name":"minify-js","duration":134040,"timestamp":62591474772,"id":266,"parentId":250,"tags":{"name":"326.js","cache":"MISS"},"startTime":1752658284637,"traceId":"348090f4f4adc525"},{"name":"minify-js","duration":145874,"timestamp":62591471794,"id":265,"parentId":250,"tags":{"name":"616.js","cache":"MISS"},"startTime":1752658284634,"traceId":"348090f4f4adc525"},{"name":"minify-js","duration":1942083,"timestamp":62591478890,"id":267,"parentId":250,"tags":{"name":"450.js","cache":"MISS"},"startTime":1752658284641,"traceId":"348090f4f4adc525"},{"name":"minify-webpack-plugin-optimize","duration":2003162,"timestamp":62591417838,"id":250,"parentId":18,"tags":{"compilationName":"server","mangle":"[object Object]"},"startTime":1752658284580,"traceId":"348090f4f4adc525"},{"name":"css-minimizer-plugin","duration":324,"timestamp":62593421354,"id":268,"parentId":18,"tags":{},"startTime":1752658286583,"traceId":"348090f4f4adc525"},{"name":"create-trace-assets","duration":3822,"timestamp":62593422007,"id":269,"parentId":19,"tags":{},"startTime":1752658286584,"traceId":"348090f4f4adc525"},{"name":"seal","duration":2421618,"timestamp":62591007347,"id":237,"parentId":18,"tags":{},"startTime":1752658284169,"traceId":"348090f4f4adc525"},{"name":"webpack-compilation","duration":4780096,"timestamp":62588649637,"id":18,"parentId":15,"tags":{"name":"server"},"startTime":1752658281812,"traceId":"348090f4f4adc525"},{"name":"emit","duration":13854,"timestamp":62593430460,"id":270,"parentId":15,"tags":{},"startTime":1752658286592,"traceId":"348090f4f4adc525"},{"name":"webpack-close","duration":446865,"timestamp":62593446178,"id":271,"parentId":15,"tags":{"name":"server"},"startTime":1752658286608,"traceId":"348090f4f4adc525"},{"name":"webpack-generate-error-stats","duration":5063,"timestamp":62593893162,"id":272,"parentId":271,"tags":{},"startTime":1752658287055,"traceId":"348090f4f4adc525"},{"name":"run-webpack-compiler","duration":6065725,"timestamp":62587832899,"id":15,"parentId":14,"tags":{},"startTime":1752658280995,"traceId":"348090f4f4adc525"},{"name":"format-webpack-messages","duration":222,"timestamp":62593898649,"id":273,"parentId":14,"tags":{},"startTime":1752658287061,"traceId":"348090f4f4adc525"},{"name":"worker-main-server","duration":6066924,"timestamp":62587832275,"id":14,"parentId":1,"tags":{},"startTime":1752658280994,"traceId":"348090f4f4adc525"},{"name":"create-entrypoints","duration":39148,"timestamp":62595323651,"id":276,"parentId":274,"tags":{},"startTime":1752658288486,"traceId":"348090f4f4adc525"},{"name":"generate-webpack-config","duration":499280,"timestamp":62595363212,"id":277,"parentId":275,"tags":{},"startTime":1752658288525,"traceId":"348090f4f4adc525"},{"name":"make","duration":685,"timestamp":62596062174,"id":279,"parentId":278,"tags":{},"startTime":1752658289224,"traceId":"348090f4f4adc525"},{"name":"chunk-graph","duration":1273,"timestamp":62596068551,"id":281,"parentId":280,"tags":{},"startTime":1752658289230,"traceId":"348090f4f4adc525"},{"name":"optimize-modules","duration":69,"timestamp":62596070093,"id":283,"parentId":280,"tags":{},"startTime":1752658289232,"traceId":"348090f4f4adc525"},{"name":"optimize-chunks","duration":2003,"timestamp":62596070342,"id":284,"parentId":280,"tags":{},"startTime":1752658289232,"traceId":"348090f4f4adc525"},{"name":"optimize-tree","duration":218,"timestamp":62596072500,"id":285,"parentId":280,"tags":{},"startTime":1752658289234,"traceId":"348090f4f4adc525"},{"name":"optimize-chunk-modules","duration":1046,"timestamp":62596073153,"id":286,"parentId":280,"tags":{},"startTime":1752658289235,"traceId":"348090f4f4adc525"},{"name":"optimize","duration":4619,"timestamp":62596069977,"id":282,"parentId":280,"tags":{},"startTime":1752658289232,"traceId":"348090f4f4adc525"},{"name":"module-hash","duration":170,"timestamp":62596076603,"id":287,"parentId":280,"tags":{},"startTime":1752658289238,"traceId":"348090f4f4adc525"},{"name":"code-generation","duration":491,"timestamp":62596076870,"id":288,"parentId":280,"tags":{},"startTime":1752658289239,"traceId":"348090f4f4adc525"},{"name":"hash","duration":792,"timestamp":62596078147,"id":289,"parentId":280,"tags":{},"startTime":1752658289240,"traceId":"348090f4f4adc525"},{"name":"code-generation-jobs","duration":313,"timestamp":62596078935,"id":290,"parentId":280,"tags":{},"startTime":1752658289241,"traceId":"348090f4f4adc525"},{"name":"module-assets","duration":157,"timestamp":62596079186,"id":291,"parentId":280,"tags":{},"startTime":1752658289241,"traceId":"348090f4f4adc525"},{"name":"create-chunk-assets","duration":387,"timestamp":62596079363,"id":292,"parentId":280,"tags":{},"startTime":1752658289241,"traceId":"348090f4f4adc525"},{"name":"minify-js","duration":10809,"timestamp":62596093633,"id":294,"parentId":293,"tags":{"name":"interception-route-rewrite-manifest.js","cache":"MISS"},"startTime":1752658289256,"traceId":"348090f4f4adc525"},{"name":"minify-webpack-plugin-optimize","duration":15484,"timestamp":62596088980,"id":293,"parentId":278,"tags":{"compilationName":"edge-server","mangle":"[object Object]"},"startTime":1752658289251,"traceId":"348090f4f4adc525"},{"name":"css-minimizer-plugin","duration":269,"timestamp":62596104710,"id":295,"parentId":278,"tags":{},"startTime":1752658289267,"traceId":"348090f4f4adc525"},{"name":"seal","duration":42274,"timestamp":62596067325,"id":280,"parentId":278,"tags":{},"startTime":1752658289229,"traceId":"348090f4f4adc525"},{"name":"webpack-compilation","duration":62384,"timestamp":62596047729,"id":278,"parentId":275,"tags":{"name":"edge-server"},"startTime":1752658289210,"traceId":"348090f4f4adc525"},{"name":"emit","duration":4787,"timestamp":62596110757,"id":296,"parentId":275,"tags":{},"startTime":1752658289273,"traceId":"348090f4f4adc525"},{"name":"webpack-close","duration":22251,"timestamp":62596117321,"id":297,"parentId":275,"tags":{"name":"edge-server"},"startTime":1752658289279,"traceId":"348090f4f4adc525"},{"name":"webpack-generate-error-stats","duration":5123,"timestamp":62596139678,"id":298,"parentId":297,"tags":{},"startTime":1752658289302,"traceId":"348090f4f4adc525"},{"name":"run-webpack-compiler","duration":821261,"timestamp":62595323639,"id":275,"parentId":274,"tags":{},"startTime":1752658288486,"traceId":"348090f4f4adc525"},{"name":"format-webpack-messages","duration":169,"timestamp":62596144911,"id":299,"parentId":274,"tags":{},"startTime":1752658289307,"traceId":"348090f4f4adc525"},{"name":"worker-main-edge-server","duration":822415,"timestamp":62595322941,"id":274,"parentId":1,"tags":{},"startTime":1752658288485,"traceId":"348090f4f4adc525"},{"name":"create-entrypoints","duration":43287,"timestamp":62597499092,"id":302,"parentId":300,"tags":{},"startTime":1752658290661,"traceId":"348090f4f4adc525"},{"name":"generate-webpack-config","duration":566216,"timestamp":62597542631,"id":303,"parentId":301,"tags":{},"startTime":1752658290705,"traceId":"348090f4f4adc525"},{"name":"next-client-pages-loader","duration":1096,"timestamp":62598410492,"id":319,"parentId":318,"tags":{"absolutePagePath":"private-next-pages/_app.tsx"},"startTime":1752658291572,"traceId":"348090f4f4adc525"},{"name":"build-module","duration":25892,"timestamp":62598404387,"id":318,"parentId":307,"tags":{"name":"E:\\百战计划\\run\\aws-proxy-site\\node_modules\\next\\dist\\build\\webpack\\loaders\\next-client-pages-loader.js?absolutePagePath=private-next-pages%2F_app.tsx&page=%2F_app!","layer":"pages-dir-browser"},"startTime":1752658291566,"traceId":"348090f4f4adc525"},{"name":"next-client-pages-loader","duration":212,"timestamp":62598430853,"id":321,"parentId":320,"tags":{"absolutePagePath":"next/dist/pages/_error"},"startTime":1752658291593,"traceId":"348090f4f4adc525"},{"name":"build-module","duration":2377,"timestamp":62598430684,"id":320,"parentId":309,"tags":{"name":"E:\\百战计划\\run\\aws-proxy-site\\node_modules\\next\\dist\\build\\webpack\\loaders\\next-client-pages-loader.js?absolutePagePath=next%2Fdist%2Fpages%2F_error&page=%2F_error!","layer":"pages-dir-browser"},"startTime":1752658291593,"traceId":"348090f4f4adc525"},{"name":"next-client-pages-loader","duration":60,"timestamp":62598433293,"id":323,"parentId":322,"tags":{"absolutePagePath":"private-next-pages/about.tsx"},"startTime":1752658291595,"traceId":"348090f4f4adc525"},{"name":"build-module","duration":2387,"timestamp":62598433131,"id":322,"parentId":310,"tags":{"name":"E:\\百战计划\\run\\aws-proxy-site\\node_modules\\next\\dist\\build\\webpack\\loaders\\next-client-pages-loader.js?absolutePagePath=private-next-pages%2Fabout.tsx&page=%2Fabout!","layer":"pages-dir-browser"},"startTime":1752658291595,"traceId":"348090f4f4adc525"}] -[{"name":"next-client-pages-loader","duration":55,"timestamp":62598435715,"id":325,"parentId":324,"tags":{"absolutePagePath":"private-next-pages/cases.tsx"},"startTime":1752658291598,"traceId":"348090f4f4adc525"},{"name":"build-module","duration":1801,"timestamp":62598435574,"id":324,"parentId":311,"tags":{"name":"E:\\百战计划\\run\\aws-proxy-site\\node_modules\\next\\dist\\build\\webpack\\loaders\\next-client-pages-loader.js?absolutePagePath=private-next-pages%2Fcases.tsx&page=%2Fcases!","layer":"pages-dir-browser"},"startTime":1752658291598,"traceId":"348090f4f4adc525"},{"name":"next-client-pages-loader","duration":75,"timestamp":62598437645,"id":327,"parentId":326,"tags":{"absolutePagePath":"private-next-pages/contact.tsx"},"startTime":1752658291600,"traceId":"348090f4f4adc525"},{"name":"build-module","duration":1789,"timestamp":62598437463,"id":326,"parentId":312,"tags":{"name":"E:\\百战计划\\run\\aws-proxy-site\\node_modules\\next\\dist\\build\\webpack\\loaders\\next-client-pages-loader.js?absolutePagePath=private-next-pages%2Fcontact.tsx&page=%2Fcontact!","layer":"pages-dir-browser"},"startTime":1752658291599,"traceId":"348090f4f4adc525"},{"name":"next-client-pages-loader","duration":47,"timestamp":62598439463,"id":329,"parentId":328,"tags":{"absolutePagePath":"private-next-pages/features.tsx"},"startTime":1752658291601,"traceId":"348090f4f4adc525"},{"name":"build-module","duration":1555,"timestamp":62598439299,"id":328,"parentId":313,"tags":{"name":"E:\\百战计划\\run\\aws-proxy-site\\node_modules\\next\\dist\\build\\webpack\\loaders\\next-client-pages-loader.js?absolutePagePath=private-next-pages%2Ffeatures.tsx&page=%2Ffeatures!","layer":"pages-dir-browser"},"startTime":1752658291601,"traceId":"348090f4f4adc525"},{"name":"next-client-pages-loader","duration":46,"timestamp":62598441046,"id":331,"parentId":330,"tags":{"absolutePagePath":"private-next-pages/index.tsx"},"startTime":1752658291603,"traceId":"348090f4f4adc525"},{"name":"build-module","duration":1462,"timestamp":62598440901,"id":330,"parentId":314,"tags":{"name":"E:\\百战计划\\run\\aws-proxy-site\\node_modules\\next\\dist\\build\\webpack\\loaders\\next-client-pages-loader.js?absolutePagePath=private-next-pages%2Findex.tsx&page=%2F!","layer":"pages-dir-browser"},"startTime":1752658291603,"traceId":"348090f4f4adc525"},{"name":"next-client-pages-loader","duration":50,"timestamp":62598442560,"id":333,"parentId":332,"tags":{"absolutePagePath":"private-next-pages/login.tsx"},"startTime":1752658291605,"traceId":"348090f4f4adc525"},{"name":"build-module","duration":1430,"timestamp":62598442405,"id":332,"parentId":315,"tags":{"name":"E:\\百战计划\\run\\aws-proxy-site\\node_modules\\next\\dist\\build\\webpack\\loaders\\next-client-pages-loader.js?absolutePagePath=private-next-pages%2Flogin.tsx&page=%2Flogin!","layer":"pages-dir-browser"},"startTime":1752658291604,"traceId":"348090f4f4adc525"},{"name":"next-client-pages-loader","duration":140,"timestamp":62598444112,"id":335,"parentId":334,"tags":{"absolutePagePath":"private-next-pages/news.tsx"},"startTime":1752658291606,"traceId":"348090f4f4adc525"},{"name":"build-module","duration":1594,"timestamp":62598443881,"id":334,"parentId":316,"tags":{"name":"E:\\百战计划\\run\\aws-proxy-site\\node_modules\\next\\dist\\build\\webpack\\loaders\\next-client-pages-loader.js?absolutePagePath=private-next-pages%2Fnews.tsx&page=%2Fnews!","layer":"pages-dir-browser"},"startTime":1752658291606,"traceId":"348090f4f4adc525"},{"name":"next-client-pages-loader","duration":75,"timestamp":62598445949,"id":337,"parentId":336,"tags":{"absolutePagePath":"private-next-pages/pricing.tsx"},"startTime":1752658291608,"traceId":"348090f4f4adc525"},{"name":"build-module","duration":1396,"timestamp":62598445715,"id":336,"parentId":317,"tags":{"name":"E:\\百战计划\\run\\aws-proxy-site\\node_modules\\next\\dist\\build\\webpack\\loaders\\next-client-pages-loader.js?absolutePagePath=private-next-pages%2Fpricing.tsx&page=%2Fpricing!","layer":"pages-dir-browser"},"startTime":1752658291608,"traceId":"348090f4f4adc525"},{"name":"build-module-js","duration":32600,"timestamp":62598458704,"id":338,"parentId":306,"tags":{"name":"E:\\百战计划\\run\\aws-proxy-site\\node_modules\\next\\dist\\client\\next.js","layer":"pages-dir-browser"},"startTime":1752658291621,"traceId":"348090f4f4adc525"},{"name":"build-module-js","duration":51734,"timestamp":62598460634,"id":339,"parentId":308,"tags":{"name":"E:\\百战计划\\run\\aws-proxy-site\\node_modules\\next\\dist\\client\\router.js","layer":"pages-dir-browser"},"startTime":1752658291623,"traceId":"348090f4f4adc525"},{"name":"build-module-js","duration":53316,"timestamp":62598468217,"id":340,"parentId":320,"tags":{"name":"E:\\百战计划\\run\\aws-proxy-site\\node_modules\\next\\dist\\pages\\_error.js","layer":"pages-dir-browser"},"startTime":1752658291630,"traceId":"348090f4f4adc525"},{"name":"build-module-tsx","duration":19904,"timestamp":62598524514,"id":341,"parentId":318,"tags":{"name":"E:\\百战计划\\run\\aws-proxy-site\\pages\\_app.tsx","layer":"pages-dir-browser"},"startTime":1752658291687,"traceId":"348090f4f4adc525"},{"name":"build-module-tsx","duration":21644,"timestamp":62598525455,"id":343,"parentId":324,"tags":{"name":"E:\\百战计划\\run\\aws-proxy-site\\pages\\cases.tsx","layer":"pages-dir-browser"},"startTime":1752658291687,"traceId":"348090f4f4adc525"},{"name":"build-module-tsx","duration":22643,"timestamp":62598525766,"id":344,"parentId":326,"tags":{"name":"E:\\百战计划\\run\\aws-proxy-site\\pages\\contact.tsx","layer":"pages-dir-browser"},"startTime":1752658291688,"traceId":"348090f4f4adc525"},{"name":"build-module-tsx","duration":24334,"timestamp":62598524969,"id":342,"parentId":322,"tags":{"name":"E:\\百战计划\\run\\aws-proxy-site\\pages\\about.tsx","layer":"pages-dir-browser"},"startTime":1752658291687,"traceId":"348090f4f4adc525"},{"name":"build-module-tsx","duration":24305,"timestamp":62598526372,"id":346,"parentId":330,"tags":{"name":"E:\\百战计划\\run\\aws-proxy-site\\pages\\index.tsx","layer":"pages-dir-browser"},"startTime":1752658291688,"traceId":"348090f4f4adc525"},{"name":"build-module-tsx","duration":26066,"timestamp":62598526027,"id":345,"parentId":328,"tags":{"name":"E:\\百战计划\\run\\aws-proxy-site\\pages\\features.tsx","layer":"pages-dir-browser"},"startTime":1752658291688,"traceId":"348090f4f4adc525"},{"name":"build-module-tsx","duration":25426,"timestamp":62598527502,"id":348,"parentId":334,"tags":{"name":"E:\\百战计划\\run\\aws-proxy-site\\pages\\news.tsx","layer":"pages-dir-browser"},"startTime":1752658291689,"traceId":"348090f4f4adc525"},{"name":"build-module-tsx","duration":27202,"timestamp":62598527089,"id":347,"parentId":332,"tags":{"name":"E:\\百战计划\\run\\aws-proxy-site\\pages\\login.tsx","layer":"pages-dir-browser"},"startTime":1752658291689,"traceId":"348090f4f4adc525"},{"name":"build-module-tsx","duration":27318,"timestamp":62598527882,"id":349,"parentId":336,"tags":{"name":"E:\\百战计划\\run\\aws-proxy-site\\pages\\pricing.tsx","layer":"pages-dir-browser"},"startTime":1752658291690,"traceId":"348090f4f4adc525"},{"name":"build-module-js","duration":13764,"timestamp":62598576199,"id":350,"parentId":338,"tags":{"name":"E:\\百战计划\\run\\aws-proxy-site\\node_modules\\next\\dist\\client\\webpack.js","layer":"pages-dir-browser"},"startTime":1752658291738,"traceId":"348090f4f4adc525"},{"name":"build-module-js","duration":13346,"timestamp":62598583555,"id":351,"parentId":339,"tags":{"name":"E:\\百战计划\\run\\aws-proxy-site\\node_modules\\next\\dist\\client\\with-router.js","layer":"pages-dir-browser"},"startTime":1752658291746,"traceId":"348090f4f4adc525"},{"name":"build-module-js","duration":56464,"timestamp":62598583848,"id":352,"parentId":338,"tags":{"name":"E:\\百战计划\\run\\aws-proxy-site\\node_modules\\next\\dist\\client\\index.js","layer":"pages-dir-browser"},"startTime":1752658291746,"traceId":"348090f4f4adc525"},{"name":"build-module-js","duration":21216,"timestamp":62598649423,"id":355,"parentId":339,"tags":{"name":"E:\\百战计划\\run\\aws-proxy-site\\node_modules\\next\\dist\\shared\\lib\\router-context.shared-runtime.js","layer":"pages-dir-browser"},"startTime":1752658291811,"traceId":"348090f4f4adc525"},{"name":"build-module-js","duration":36727,"timestamp":62598650045,"id":356,"parentId":340,"tags":{"name":"E:\\百战计划\\run\\aws-proxy-site\\node_modules\\next\\dist\\shared\\lib\\head.js","layer":"pages-dir-browser"},"startTime":1752658291812,"traceId":"348090f4f4adc525"},{"name":"build-module-js","duration":106029,"timestamp":62598592313,"id":354,"parentId":339,"tags":{"name":"E:\\百战计划\\run\\aws-proxy-site\\node_modules\\next\\dist\\lib\\is-error.js","layer":"pages-dir-browser"},"startTime":1752658291754,"traceId":"348090f4f4adc525"},{"name":"build-module-js","duration":112707,"timestamp":62598591506,"id":353,"parentId":338,"tags":{"name":"E:\\百战计划\\run\\aws-proxy-site\\node_modules\\next\\dist\\lib\\require-instrumentation-client.js","layer":"pages-dir-browser"},"startTime":1752658291753,"traceId":"348090f4f4adc525"},{"name":"build-module-js","duration":174407,"timestamp":62598650490,"id":357,"parentId":339,"tags":{"name":"E:\\百战计划\\run\\aws-proxy-site\\node_modules\\next\\dist\\shared\\lib\\router\\router.js","layer":"pages-dir-browser"},"startTime":1752658291812,"traceId":"348090f4f4adc525"},{"name":"build-module-js","duration":16959,"timestamp":62598861760,"id":363,"parentId":352,"tags":{"name":"E:\\百战计划\\run\\aws-proxy-site\\node_modules\\next\\dist\\client\\remove-base-path.js","layer":"pages-dir-browser"},"startTime":1752658292024,"traceId":"348090f4f4adc525"},{"name":"build-module-js","duration":19845,"timestamp":62598861289,"id":361,"parentId":352,"tags":{"name":"E:\\百战计划\\run\\aws-proxy-site\\node_modules\\next\\dist\\client\\route-announcer.js","layer":"pages-dir-browser"},"startTime":1752658292023,"traceId":"348090f4f4adc525"},{"name":"build-module-js","duration":25496,"timestamp":62598861905,"id":364,"parentId":352,"tags":{"name":"E:\\百战计划\\run\\aws-proxy-site\\node_modules\\next\\dist\\client\\has-base-path.js","layer":"pages-dir-browser"},"startTime":1752658292024,"traceId":"348090f4f4adc525"},{"name":"build-module-js","duration":32867,"timestamp":62598861490,"id":362,"parentId":352,"tags":{"name":"E:\\百战计划\\run\\aws-proxy-site\\node_modules\\next\\dist\\client\\page-loader.js","layer":"pages-dir-browser"},"startTime":1752658292023,"traceId":"348090f4f4adc525"},{"name":"build-module-js","duration":38022,"timestamp":62598860969,"id":360,"parentId":352,"tags":{"name":"E:\\百战计划\\run\\aws-proxy-site\\node_modules\\next\\dist\\client\\head-manager.js","layer":"pages-dir-browser"},"startTime":1752658292023,"traceId":"348090f4f4adc525"},{"name":"build-module-js","duration":38547,"timestamp":62598862147,"id":366,"parentId":352,"tags":{"name":"E:\\百战计划\\run\\aws-proxy-site\\node_modules\\next\\dist\\pages\\_app.js","layer":"pages-dir-browser"},"startTime":1752658292024,"traceId":"348090f4f4adc525"},{"name":"build-module-js","duration":39163,"timestamp":62598862284,"id":367,"parentId":352,"tags":{"name":"E:\\百战计划\\run\\aws-proxy-site\\node_modules\\next\\dist\\shared\\lib\\head-manager-context.shared-runtime.js","layer":"pages-dir-browser"},"startTime":1752658292024,"traceId":"348090f4f4adc525"},{"name":"build-module-js","duration":40909,"timestamp":62598862412,"id":368,"parentId":352,"tags":{"name":"E:\\百战计划\\run\\aws-proxy-site\\node_modules\\next\\dist\\shared\\lib\\mitt.js","layer":"pages-dir-browser"},"startTime":1752658292024,"traceId":"348090f4f4adc525"},{"name":"build-module-js","duration":42224,"timestamp":62598862541,"id":369,"parentId":352,"tags":{"name":"E:\\百战计划\\run\\aws-proxy-site\\node_modules\\next\\dist\\shared\\lib\\runtime-config.external.js","layer":"pages-dir-browser"},"startTime":1752658292025,"traceId":"348090f4f4adc525"},{"name":"build-module-js","duration":63138,"timestamp":62598862029,"id":365,"parentId":352,"tags":{"name":"E:\\百战计划\\run\\aws-proxy-site\\node_modules\\next\\dist\\client\\script.js","layer":"pages-dir-browser"},"startTime":1752658292024,"traceId":"348090f4f4adc525"},{"name":"build-module-js","duration":64739,"timestamp":62598862795,"id":371,"parentId":352,"tags":{"name":"E:\\百战计划\\run\\aws-proxy-site\\node_modules\\next\\dist\\shared\\lib\\app-router-context.shared-runtime.js","layer":"pages-dir-browser"},"startTime":1752658292025,"traceId":"348090f4f4adc525"},{"name":"build-module-js","duration":74731,"timestamp":62598862672,"id":370,"parentId":352,"tags":{"name":"E:\\百战计划\\run\\aws-proxy-site\\node_modules\\next\\dist\\shared\\lib\\utils.js","layer":"pages-dir-browser"},"startTime":1752658292025,"traceId":"348090f4f4adc525"},{"name":"build-module-js","duration":78030,"timestamp":62598882671,"id":372,"parentId":352,"tags":{"name":"E:\\百战计划\\run\\aws-proxy-site\\node_modules\\next\\dist\\shared\\lib\\image-config-context.shared-runtime.js","layer":"pages-dir-browser"},"startTime":1752658292045,"traceId":"348090f4f4adc525"},{"name":"build-module-js","duration":78745,"timestamp":62598882907,"id":373,"parentId":352,"tags":{"name":"E:\\百战计划\\run\\aws-proxy-site\\node_modules\\next\\dist\\shared\\lib\\hooks-client-context.shared-runtime.js","layer":"pages-dir-browser"},"startTime":1752658292045,"traceId":"348090f4f4adc525"},{"name":"build-module-js","duration":78835,"timestamp":62598883421,"id":375,"parentId":356,"tags":{"name":"E:\\百战计划\\run\\aws-proxy-site\\node_modules\\next\\dist\\shared\\lib\\amp-context.shared-runtime.js","layer":"pages-dir-browser"},"startTime":1752658292045,"traceId":"348090f4f4adc525"},{"name":"build-module-js","duration":81756,"timestamp":62598883069,"id":374,"parentId":352,"tags":{"name":"E:\\百战计划\\run\\aws-proxy-site\\node_modules\\next\\dist\\shared\\lib\\router\\adapters.js","layer":"pages-dir-browser"},"startTime":1752658292045,"traceId":"348090f4f4adc525"},{"name":"build-module-js","duration":82981,"timestamp":62598883545,"id":376,"parentId":356,"tags":{"name":"E:\\百战计划\\run\\aws-proxy-site\\node_modules\\next\\dist\\shared\\lib\\side-effect.js","layer":"pages-dir-browser"},"startTime":1752658292046,"traceId":"348090f4f4adc525"},{"name":"build-module-js","duration":21729,"timestamp":62598949024,"id":378,"parentId":352,"tags":{"name":"E:\\百战计划\\run\\aws-proxy-site\\node_modules\\next\\dist\\shared\\lib\\router\\utils\\is-dynamic.js","layer":"pages-dir-browser"},"startTime":1752658292111,"traceId":"348090f4f4adc525"},{"name":"build-module-js","duration":22627,"timestamp":62598948776,"id":377,"parentId":356,"tags":{"name":"E:\\百战计划\\run\\aws-proxy-site\\node_modules\\next\\dist\\shared\\lib\\amp-mode.js","layer":"pages-dir-browser"},"startTime":1752658292111,"traceId":"348090f4f4adc525"},{"name":"build-module-js","duration":23028,"timestamp":62598949250,"id":380,"parentId":352,"tags":{"name":"E:\\百战计划\\run\\aws-proxy-site\\node_modules\\next\\dist\\shared\\lib\\router\\utils\\disable-smooth-scroll.js","layer":"pages-dir-browser"},"startTime":1752658292111,"traceId":"348090f4f4adc525"},{"name":"build-module-js","duration":24751,"timestamp":62598949159,"id":379,"parentId":352,"tags":{"name":"E:\\百战计划\\run\\aws-proxy-site\\node_modules\\next\\dist\\shared\\lib\\router\\utils\\querystring.js","layer":"pages-dir-browser"},"startTime":1752658292111,"traceId":"348090f4f4adc525"},{"name":"build-module-js","duration":25602,"timestamp":62598949487,"id":382,"parentId":352,"tags":{"name":"E:\\百战计划\\run\\aws-proxy-site\\node_modules\\next\\dist\\client\\components\\is-next-router-error.js","layer":"pages-dir-browser"},"startTime":1752658292111,"traceId":"348090f4f4adc525"},{"name":"build-module-js","duration":26034,"timestamp":62598950102,"id":386,"parentId":357,"tags":{"name":"E:\\百战计划\\run\\aws-proxy-site\\node_modules\\next\\dist\\shared\\lib\\router\\utils\\remove-trailing-slash.js","layer":"pages-dir-browser"},"startTime":1752658292112,"traceId":"348090f4f4adc525"},{"name":"build-module-js","duration":27037,"timestamp":62598949956,"id":385,"parentId":354,"tags":{"name":"E:\\百战计划\\run\\aws-proxy-site\\node_modules\\next\\dist\\shared\\lib\\is-plain-object.js","layer":"pages-dir-browser"},"startTime":1752658292112,"traceId":"348090f4f4adc525"},{"name":"build-module-js","duration":29868,"timestamp":62598949666,"id":383,"parentId":352,"tags":{"name":"E:\\百战计划\\run\\aws-proxy-site\\node_modules\\next\\dist\\client\\tracing\\tracer.js","layer":"pages-dir-browser"},"startTime":1752658292112,"traceId":"348090f4f4adc525"},{"name":"build-module-js","duration":32443,"timestamp":62598949810,"id":384,"parentId":352,"tags":{"name":"E:\\百战计划\\run\\aws-proxy-site\\node_modules\\next\\dist\\client\\react-client-callbacks\\on-recoverable-error.js","layer":"pages-dir-browser"},"startTime":1752658292112,"traceId":"348090f4f4adc525"},{"name":"build-module-js","duration":33399,"timestamp":62598950301,"id":388,"parentId":357,"tags":{"name":"E:\\百战计划\\run\\aws-proxy-site\\node_modules\\next\\dist\\shared\\lib\\router\\utils\\parse-relative-url.js","layer":"pages-dir-browser"},"startTime":1752658292112,"traceId":"348090f4f4adc525"},{"name":"build-module-js","duration":58270,"timestamp":62598950209,"id":387,"parentId":357,"tags":{"name":"E:\\百战计划\\run\\aws-proxy-site\\node_modules\\next\\dist\\client\\route-loader.js","layer":"pages-dir-browser"},"startTime":1752658292112,"traceId":"348090f4f4adc525"},{"name":"build-module-js","duration":153064,"timestamp":62598860574,"id":358,"parentId":350,"tags":{"name":"E:\\百战计划\\run\\aws-proxy-site\\node_modules\\next\\dist\\build\\deployment-id.js","layer":"pages-dir-browser"},"startTime":1752658292023,"traceId":"348090f4f4adc525"},{"name":"build-module-js","duration":153519,"timestamp":62598860820,"id":359,"parentId":341,"tags":{"name":"E:\\百战计划\\run\\aws-proxy-site\\node_modules\\react\\jsx-runtime.js","layer":"pages-dir-browser"},"startTime":1752658292023,"traceId":"348090f4f4adc525"},{"name":"build-module-tsx","duration":29360,"timestamp":62598986861,"id":391,"parentId":343,"tags":{"name":"E:\\百战计划\\run\\aws-proxy-site\\components\\Footer.tsx","layer":"pages-dir-browser"},"startTime":1752658292149,"traceId":"348090f4f4adc525"},{"name":"build-module-tsx","duration":31112,"timestamp":62598986433,"id":390,"parentId":343,"tags":{"name":"E:\\百战计划\\run\\aws-proxy-site\\components\\CaseList.tsx","layer":"pages-dir-browser"},"startTime":1752658292148,"traceId":"348090f4f4adc525"},{"name":"build-module-tsx","duration":33170,"timestamp":62598986005,"id":389,"parentId":343,"tags":{"name":"E:\\百战计划\\run\\aws-proxy-site\\components\\Navbar.tsx","layer":"pages-dir-browser"},"startTime":1752658292148,"traceId":"348090f4f4adc525"},{"name":"build-module-tsx","duration":33417,"timestamp":62598987252,"id":392,"parentId":344,"tags":{"name":"E:\\百战计划\\run\\aws-proxy-site\\components\\Contact.tsx","layer":"pages-dir-browser"},"startTime":1752658292149,"traceId":"348090f4f4adc525"},{"name":"build-module-tsx","duration":33987,"timestamp":62598987567,"id":393,"parentId":342,"tags":{"name":"E:\\百战计划\\run\\aws-proxy-site\\components\\About.tsx","layer":"pages-dir-browser"},"startTime":1752658292150,"traceId":"348090f4f4adc525"},{"name":"build-module-tsx","duration":34531,"timestamp":62598987898,"id":394,"parentId":346,"tags":{"name":"E:\\百战计划\\run\\aws-proxy-site\\components\\Features.tsx","layer":"pages-dir-browser"},"startTime":1752658292150,"traceId":"348090f4f4adc525"},{"name":"build-module-js","duration":34608,"timestamp":62598988385,"id":396,"parentId":356,"tags":{"name":"E:\\百战计划\\run\\aws-proxy-site\\node_modules\\next\\dist\\shared\\lib\\utils\\warn-once.js","layer":"pages-dir-browser"},"startTime":1752658292150,"traceId":"348090f4f4adc525"},{"name":"build-module-tsx","duration":35887,"timestamp":62598988126,"id":395,"parentId":346,"tags":{"name":"E:\\百战计划\\run\\aws-proxy-site\\components\\Hero.tsx","layer":"pages-dir-browser"},"startTime":1752658292150,"traceId":"348090f4f4adc525"},{"name":"build-module-js","duration":36892,"timestamp":62598988649,"id":399,"parentId":357,"tags":{"name":"E:\\百战计划\\run\\aws-proxy-site\\node_modules\\next\\dist\\client\\add-base-path.js","layer":"pages-dir-browser"},"startTime":1752658292151,"traceId":"348090f4f4adc525"},{"name":"build-module-js","duration":38456,"timestamp":62598988573,"id":398,"parentId":357,"tags":{"name":"E:\\百战计划\\run\\aws-proxy-site\\node_modules\\next\\dist\\client\\add-locale.js","layer":"pages-dir-browser"},"startTime":1752658292151,"traceId":"348090f4f4adc525"},{"name":"build-module-js","duration":39582,"timestamp":62598988488,"id":397,"parentId":357,"tags":{"name":"E:\\百战计划\\run\\aws-proxy-site\\node_modules\\next\\dist\\client\\detect-domain-locale.js","layer":"pages-dir-browser"},"startTime":1752658292150,"traceId":"348090f4f4adc525"},{"name":"build-module-js","duration":40285,"timestamp":62598988739,"id":400,"parentId":357,"tags":{"name":"E:\\百战计划\\run\\aws-proxy-site\\node_modules\\next\\dist\\client\\remove-locale.js","layer":"pages-dir-browser"},"startTime":1752658292151,"traceId":"348090f4f4adc525"},{"name":"build-module-js","duration":44157,"timestamp":62598989149,"id":403,"parentId":357,"tags":{"name":"E:\\百战计划\\run\\aws-proxy-site\\node_modules\\next\\dist\\shared\\lib\\router\\utils\\route-matcher.js","layer":"pages-dir-browser"},"startTime":1752658292151,"traceId":"348090f4f4adc525"},{"name":"build-module-js","duration":47331,"timestamp":62598988911,"id":401,"parentId":357,"tags":{"name":"E:\\百战计划\\run\\aws-proxy-site\\node_modules\\next\\dist\\client\\resolve-href.js","layer":"pages-dir-browser"},"startTime":1752658292151,"traceId":"348090f4f4adc525"},{"name":"build-module-js","duration":60248,"timestamp":62598989443,"id":404,"parentId":357,"tags":{"name":"E:\\百战计划\\run\\aws-proxy-site\\node_modules\\next\\dist\\shared\\lib\\router\\utils\\route-regex.js","layer":"pages-dir-browser"},"startTime":1752658292151,"traceId":"348090f4f4adc525"},{"name":"build-module-js","duration":122520,"timestamp":62598949339,"id":381,"parentId":352,"tags":{"name":"E:\\百战计划\\run\\aws-proxy-site\\node_modules\\next\\dist\\build\\polyfills\\polyfill-module.js","layer":"pages-dir-browser"},"startTime":1752658292111,"traceId":"348090f4f4adc525"},{"name":"build-module-js","duration":18318,"timestamp":62599057425,"id":405,"parentId":357,"tags":{"name":"E:\\百战计划\\run\\aws-proxy-site\\node_modules\\next\\dist\\shared\\lib\\router\\utils\\parse-path.js","layer":"pages-dir-browser"},"startTime":1752658292219,"traceId":"348090f4f4adc525"},{"name":"build-module-js","duration":18947,"timestamp":62599057916,"id":408,"parentId":357,"tags":{"name":"E:\\百战计划\\run\\aws-proxy-site\\node_modules\\next\\dist\\shared\\lib\\router\\utils\\format-next-pathname-info.js","layer":"pages-dir-browser"},"startTime":1752658292220,"traceId":"348090f4f4adc525"},{"name":"build-module-js","duration":24269,"timestamp":62599057785,"id":407,"parentId":357,"tags":{"name":"E:\\百战计划\\run\\aws-proxy-site\\node_modules\\next\\dist\\shared\\lib\\router\\utils\\get-next-pathname-info.js","layer":"pages-dir-browser"},"startTime":1752658292220,"traceId":"348090f4f4adc525"},{"name":"build-module-js","duration":27601,"timestamp":62599057661,"id":406,"parentId":357,"tags":{"name":"E:\\百战计划\\run\\aws-proxy-site\\node_modules\\next\\dist\\shared\\lib\\router\\utils\\format-url.js","layer":"pages-dir-browser"},"startTime":1752658292220,"traceId":"348090f4f4adc525"},{"name":"build-module-tsx","duration":28149,"timestamp":62599058211,"id":410,"parentId":346,"tags":{"name":"E:\\百战计划\\run\\aws-proxy-site\\components\\Cta.tsx","layer":"pages-dir-browser"},"startTime":1752658292220,"traceId":"348090f4f4adc525"},{"name":"build-module-tsx","duration":29581,"timestamp":62599058016,"id":409,"parentId":346,"tags":{"name":"E:\\百战计划\\run\\aws-proxy-site\\components\\Testimonials.tsx","layer":"pages-dir-browser"},"startTime":1752658292220,"traceId":"348090f4f4adc525"},{"name":"build-module-js","duration":29852,"timestamp":62599058583,"id":412,"parentId":357,"tags":{"name":"E:\\百战计划\\run\\aws-proxy-site\\node_modules\\next\\dist\\shared\\lib\\page-path\\denormalize-page-path.js","layer":"pages-dir-browser"},"startTime":1752658292221,"traceId":"348090f4f4adc525"},{"name":"build-module-js","duration":31099,"timestamp":62599058383,"id":411,"parentId":357,"tags":{"name":"E:\\百战计划\\run\\aws-proxy-site\\node_modules\\next\\dist\\shared\\lib\\i18n\\normalize-locale-path.js","layer":"pages-dir-browser"},"startTime":1752658292220,"traceId":"348090f4f4adc525"},{"name":"build-module-js","duration":31575,"timestamp":62599058927,"id":415,"parentId":357,"tags":{"name":"E:\\百战计划\\run\\aws-proxy-site\\node_modules\\next\\dist\\shared\\lib\\router\\utils\\compare-states.js","layer":"pages-dir-browser"},"startTime":1752658292221,"traceId":"348090f4f4adc525"},{"name":"build-module-js","duration":35014,"timestamp":62599058794,"id":414,"parentId":357,"tags":{"name":"E:\\百战计划\\run\\aws-proxy-site\\node_modules\\next\\dist\\shared\\lib\\bloom-filter.js","layer":"pages-dir-browser"},"startTime":1752658292221,"traceId":"348090f4f4adc525"},{"name":"build-module-js","duration":113702,"timestamp":62598989023,"id":402,"parentId":357,"tags":{"name":"E:\\百战计划\\run\\aws-proxy-site\\node_modules\\next\\dist\\lib\\is-api-route.js","layer":"pages-dir-browser"},"startTime":1752658292151,"traceId":"348090f4f4adc525"},{"name":"build-module-js","duration":10517,"timestamp":62599096280,"id":418,"parentId":357,"tags":{"name":"E:\\百战计划\\run\\aws-proxy-site\\node_modules\\next\\dist\\shared\\lib\\router\\utils\\omit.js","layer":"pages-dir-browser"},"startTime":1752658292258,"traceId":"348090f4f4adc525"},{"name":"build-module-js","duration":12136,"timestamp":62599095874,"id":416,"parentId":357,"tags":{"name":"E:\\百战计划\\run\\aws-proxy-site\\node_modules\\next\\dist\\shared\\lib\\router\\utils\\is-local-url.js","layer":"pages-dir-browser"},"startTime":1752658292258,"traceId":"348090f4f4adc525"},{"name":"build-module-js","duration":13153,"timestamp":62599096118,"id":417,"parentId":357,"tags":{"name":"E:\\百战计划\\run\\aws-proxy-site\\node_modules\\next\\dist\\shared\\lib\\router\\utils\\is-bot.js","layer":"pages-dir-browser"},"startTime":1752658292258,"traceId":"348090f4f4adc525"},{"name":"build-module-js","duration":14187,"timestamp":62599096409,"id":419,"parentId":357,"tags":{"name":"E:\\百战计划\\run\\aws-proxy-site\\node_modules\\next\\dist\\shared\\lib\\router\\utils\\interpolate-as.js","layer":"pages-dir-browser"},"startTime":1752658292258,"traceId":"348090f4f4adc525"},{"name":"build-module-js","duration":14748,"timestamp":62599096597,"id":421,"parentId":364,"tags":{"name":"E:\\百战计划\\run\\aws-proxy-site\\node_modules\\next\\dist\\shared\\lib\\router\\utils\\path-has-prefix.js","layer":"pages-dir-browser"},"startTime":1752658292259,"traceId":"348090f4f4adc525"},{"name":"build-module-js","duration":16547,"timestamp":62599096507,"id":420,"parentId":365,"tags":{"name":"E:\\百战计划\\run\\aws-proxy-site\\node_modules\\next\\dist\\client\\request-idle-callback.js","layer":"pages-dir-browser"},"startTime":1752658292258,"traceId":"348090f4f4adc525"},{"name":"build-module-js","duration":27072,"timestamp":62599096773,"id":423,"parentId":360,"tags":{"name":"E:\\百战计划\\run\\aws-proxy-site\\node_modules\\next\\dist\\client\\set-attributes-from-props.js","layer":"pages-dir-browser"},"startTime":1752658292259,"traceId":"348090f4f4adc525"},{"name":"build-module-js","duration":27831,"timestamp":62599096871,"id":424,"parentId":362,"tags":{"name":"E:\\百战计划\\run\\aws-proxy-site\\node_modules\\next\\dist\\shared\\lib\\router\\utils\\get-asset-path-from-route.js","layer":"pages-dir-browser"},"startTime":1752658292259,"traceId":"348090f4f4adc525"},{"name":"build-module-js","duration":33060,"timestamp":62599096685,"id":422,"parentId":362,"tags":{"name":"E:\\百战计划\\run\\aws-proxy-site\\node_modules\\next\\dist\\shared\\lib\\constants.js","layer":"pages-dir-browser"},"startTime":1752658292259,"traceId":"348090f4f4adc525"},{"name":"build-module-tsx","duration":19754,"timestamp":62599114444,"id":425,"parentId":346,"tags":{"name":"E:\\百战计划\\run\\aws-proxy-site\\components\\Process.tsx","layer":"pages-dir-browser"},"startTime":1752658292276,"traceId":"348090f4f4adc525"}] -[{"name":"build-module-tsx","duration":19866,"timestamp":62599115532,"id":428,"parentId":348,"tags":{"name":"E:\\百战计划\\run\\aws-proxy-site\\components\\NewsList.tsx","layer":"pages-dir-browser"},"startTime":1752658292278,"traceId":"348090f4f4adc525"},{"name":"build-module-tsx","duration":21572,"timestamp":62599114935,"id":426,"parentId":346,"tags":{"name":"E:\\百战计划\\run\\aws-proxy-site\\components\\CoreAdvantages.tsx","layer":"pages-dir-browser"},"startTime":1752658292277,"traceId":"348090f4f4adc525"},{"name":"build-module-tsx","duration":22809,"timestamp":62599115227,"id":427,"parentId":349,"tags":{"name":"E:\\百战计划\\run\\aws-proxy-site\\components\\Pricing.tsx","layer":"pages-dir-browser"},"startTime":1752658292277,"traceId":"348090f4f4adc525"},{"name":"build-module-js","duration":23362,"timestamp":62599116161,"id":431,"parentId":372,"tags":{"name":"E:\\百战计划\\run\\aws-proxy-site\\node_modules\\next\\dist\\shared\\lib\\image-config.js","layer":"pages-dir-browser"},"startTime":1752658292278,"traceId":"348090f4f4adc525"},{"name":"build-module-tsx","duration":25560,"timestamp":62599115763,"id":429,"parentId":347,"tags":{"name":"E:\\百战计划\\run\\aws-proxy-site\\components\\Login.tsx","layer":"pages-dir-browser"},"startTime":1752658292278,"traceId":"348090f4f4adc525"},{"name":"build-module-js","duration":41376,"timestamp":62599116298,"id":432,"parentId":382,"tags":{"name":"E:\\百战计划\\run\\aws-proxy-site\\node_modules\\next\\dist\\client\\components\\redirect-error.js","layer":"pages-dir-browser"},"startTime":1752658292278,"traceId":"348090f4f4adc525"},{"name":"build-module-js","duration":42031,"timestamp":62599116682,"id":435,"parentId":374,"tags":{"name":"E:\\百战计划\\run\\aws-proxy-site\\node_modules\\next\\dist\\shared\\lib\\router\\utils\\as-path-to-search-params.js","layer":"pages-dir-browser"},"startTime":1752658292279,"traceId":"348090f4f4adc525"},{"name":"build-module-js","duration":43187,"timestamp":62599116526,"id":434,"parentId":384,"tags":{"name":"E:\\百战计划\\run\\aws-proxy-site\\node_modules\\next\\dist\\client\\react-client-callbacks\\report-global-error.js","layer":"pages-dir-browser"},"startTime":1752658292279,"traceId":"348090f4f4adc525"},{"name":"build-module-js","duration":45819,"timestamp":62599116418,"id":433,"parentId":378,"tags":{"name":"E:\\百战计划\\run\\aws-proxy-site\\node_modules\\next\\dist\\shared\\lib\\router\\utils\\interception-routes.js","layer":"pages-dir-browser"},"startTime":1752658292278,"traceId":"348090f4f4adc525"},{"name":"build-module-js","duration":110786,"timestamp":62599058682,"id":413,"parentId":357,"tags":{"name":"E:\\百战计划\\run\\aws-proxy-site\\node_modules\\next\\dist\\lib\\constants.js","layer":"pages-dir-browser"},"startTime":1752658292221,"traceId":"348090f4f4adc525"},{"name":"build-module-js","duration":35529,"timestamp":62599152406,"id":441,"parentId":399,"tags":{"name":"E:\\百战计划\\run\\aws-proxy-site\\node_modules\\next\\dist\\shared\\lib\\router\\utils\\add-path-prefix.js","layer":"pages-dir-browser"},"startTime":1752658292314,"traceId":"348090f4f4adc525"},{"name":"build-module-js","duration":36636,"timestamp":62599152257,"id":440,"parentId":387,"tags":{"name":"E:\\百战计划\\run\\aws-proxy-site\\node_modules\\next\\dist\\shared\\lib\\encode-uri-path.js","layer":"pages-dir-browser"},"startTime":1752658292314,"traceId":"348090f4f4adc525"},{"name":"build-module-js","duration":39140,"timestamp":62599151846,"id":438,"parentId":399,"tags":{"name":"E:\\百战计划\\run\\aws-proxy-site\\node_modules\\next\\dist\\client\\normalize-trailing-slash.js","layer":"pages-dir-browser"},"startTime":1752658292314,"traceId":"348090f4f4adc525"},{"name":"build-module-js","duration":40027,"timestamp":62599152095,"id":439,"parentId":387,"tags":{"name":"E:\\百战计划\\run\\aws-proxy-site\\node_modules\\next\\dist\\client\\trusted-types.js","layer":"pages-dir-browser"},"startTime":1752658292314,"traceId":"348090f4f4adc525"},{"name":"build-module-js","duration":20895,"timestamp":62599173230,"id":444,"parentId":384,"tags":{"name":"E:\\百战计划\\run\\aws-proxy-site\\node_modules\\next\\dist\\shared\\lib\\lazy-dynamic\\bailout-to-csr.js","layer":"pages-dir-browser"},"startTime":1752658292335,"traceId":"348090f4f4adc525"},{"name":"build-module-js","duration":21868,"timestamp":62599173353,"id":445,"parentId":404,"tags":{"name":"E:\\百战计划\\run\\aws-proxy-site\\node_modules\\next\\dist\\shared\\lib\\escape-regexp.js","layer":"pages-dir-browser"},"startTime":1752658292335,"traceId":"348090f4f4adc525"},{"name":"build-module-js","duration":24309,"timestamp":62599172859,"id":442,"parentId":382,"tags":{"name":"E:\\百战计划\\run\\aws-proxy-site\\node_modules\\next\\dist\\client\\components\\http-access-fallback\\http-access-fallback.js","layer":"pages-dir-browser"},"startTime":1752658292335,"traceId":"348090f4f4adc525"},{"name":"build-module-js","duration":87516,"timestamp":62599116028,"id":430,"parentId":352,"tags":{"name":"E:\\百战计划\\run\\aws-proxy-site\\node_modules\\react-dom\\client.js","layer":"pages-dir-browser"},"startTime":1752658292278,"traceId":"348090f4f4adc525"},{"name":"build-module-js","duration":20990,"timestamp":62599198735,"id":447,"parentId":412,"tags":{"name":"E:\\百战计划\\run\\aws-proxy-site\\node_modules\\next\\dist\\shared\\lib\\page-path\\normalize-path-sep.js","layer":"pages-dir-browser"},"startTime":1752658292361,"traceId":"348090f4f4adc525"},{"name":"build-module-js","duration":21833,"timestamp":62599198904,"id":448,"parentId":408,"tags":{"name":"E:\\百战计划\\run\\aws-proxy-site\\node_modules\\next\\dist\\shared\\lib\\router\\utils\\add-path-suffix.js","layer":"pages-dir-browser"},"startTime":1752658292361,"traceId":"348090f4f4adc525"},{"name":"build-module-js","duration":22503,"timestamp":62599199037,"id":449,"parentId":407,"tags":{"name":"E:\\百战计划\\run\\aws-proxy-site\\node_modules\\next\\dist\\shared\\lib\\router\\utils\\remove-path-prefix.js","layer":"pages-dir-browser"},"startTime":1752658292361,"traceId":"348090f4f4adc525"},{"name":"build-module-js","duration":25964,"timestamp":62599198481,"id":446,"parentId":352,"tags":{"name":"E:\\百战计划\\run\\aws-proxy-site\\node_modules\\next\\dist\\client\\portal\\index.js","layer":"pages-dir-browser"},"startTime":1752658292360,"traceId":"348090f4f4adc525"},{"name":"build-module-js","duration":26520,"timestamp":62599199153,"id":450,"parentId":408,"tags":{"name":"E:\\百战计划\\run\\aws-proxy-site\\node_modules\\next\\dist\\shared\\lib\\router\\utils\\add-locale.js","layer":"pages-dir-browser"},"startTime":1752658292361,"traceId":"348090f4f4adc525"},{"name":"build-module-js","duration":74555,"timestamp":62599151490,"id":437,"parentId":389,"tags":{"name":"E:\\百战计划\\run\\aws-proxy-site\\node_modules\\next\\link.js","layer":"pages-dir-browser"},"startTime":1752658292313,"traceId":"348090f4f4adc525"},{"name":"build-module-js","duration":59186,"timestamp":62599173094,"id":443,"parentId":359,"tags":{"name":"E:\\百战计划\\run\\aws-proxy-site\\node_modules\\react\\cjs\\react-jsx-runtime.production.js","layer":"pages-dir-browser"},"startTime":1752658292335,"traceId":"348090f4f4adc525"},{"name":"build-module-js","duration":9774,"timestamp":62599228211,"id":454,"parentId":417,"tags":{"name":"E:\\百战计划\\run\\aws-proxy-site\\node_modules\\next\\dist\\shared\\lib\\router\\utils\\html-bots.js","layer":"pages-dir-browser"},"startTime":1752658292390,"traceId":"348090f4f4adc525"},{"name":"build-module-js","duration":7231,"timestamp":62599234084,"id":455,"parentId":422,"tags":{"name":"E:\\百战计划\\run\\aws-proxy-site\\node_modules\\next\\dist\\shared\\lib\\modern-browserslist-target.js","layer":"pages-dir-browser"},"startTime":1752658292396,"traceId":"348090f4f4adc525"},{"name":"build-module-js","duration":8106,"timestamp":62599234482,"id":457,"parentId":432,"tags":{"name":"E:\\百战计划\\run\\aws-proxy-site\\node_modules\\next\\dist\\client\\components\\redirect-status-code.js","layer":"pages-dir-browser"},"startTime":1752658292396,"traceId":"348090f4f4adc525"},{"name":"build-module-js","duration":9930,"timestamp":62599234616,"id":458,"parentId":433,"tags":{"name":"E:\\百战计划\\run\\aws-proxy-site\\node_modules\\next\\dist\\shared\\lib\\router\\utils\\app-paths.js","layer":"pages-dir-browser"},"startTime":1752658292397,"traceId":"348090f4f4adc525"},{"name":"build-module-js","duration":30334,"timestamp":62599215614,"id":452,"parentId":339,"tags":{"name":"E:\\百战计划\\run\\aws-proxy-site\\node_modules\\react\\index.js","layer":"pages-dir-browser"},"startTime":1752658292378,"traceId":"348090f4f4adc525"},{"name":"build-module-tsx","duration":5989,"timestamp":62599247866,"id":460,"parentId":389,"tags":{"name":"E:\\百战计划\\run\\aws-proxy-site\\components\\Sidebar.tsx","layer":"pages-dir-browser"},"startTime":1752658292410,"traceId":"348090f4f4adc525"},{"name":"build-module-js","duration":7355,"timestamp":62599247593,"id":459,"parentId":374,"tags":{"name":"E:\\百战计划\\run\\aws-proxy-site\\node_modules\\next\\dist\\shared\\lib\\router\\utils\\index.js","layer":"pages-dir-browser"},"startTime":1752658292410,"traceId":"348090f4f4adc525"},{"name":"build-module-js","duration":22133,"timestamp":62599234324,"id":456,"parentId":429,"tags":{"name":"E:\\百战计划\\run\\aws-proxy-site\\node_modules\\next\\navigation.js","layer":"pages-dir-browser"},"startTime":1752658292396,"traceId":"348090f4f4adc525"},{"name":"build-module","duration":89,"timestamp":62600342714,"id":464,"parentId":353,"tags":{"layer":null},"startTime":1752658293505,"traceId":"348090f4f4adc525"},{"name":"build-module-js","duration":1119228,"timestamp":62599251831,"id":462,"parentId":437,"tags":{"name":"E:\\百战计划\\run\\aws-proxy-site\\node_modules\\next\\dist\\client\\link.js","layer":"pages-dir-browser"},"startTime":1752658292414,"traceId":"348090f4f4adc525"},{"name":"build-module-js","duration":1381361,"timestamp":62599251639,"id":461,"parentId":430,"tags":{"name":"E:\\百战计划\\run\\aws-proxy-site\\node_modules\\react-dom\\cjs\\react-dom-client.production.js","layer":"pages-dir-browser"},"startTime":1752658292414,"traceId":"348090f4f4adc525"},{"name":"postcss-process","duration":802909,"timestamp":62600015637,"id":463,"parentId":453,"tags":{},"startTime":1752658293178,"traceId":"348090f4f4adc525"},{"name":"postcss-loader","duration":1602587,"timestamp":62599216171,"id":453,"parentId":451,"tags":{},"startTime":1752658292378,"traceId":"348090f4f4adc525"},{"name":"css-loader","duration":66303,"timestamp":62600819230,"id":471,"parentId":451,"tags":{"astUsed":"true"},"startTime":1752658293981,"traceId":"348090f4f4adc525"},{"name":"build-module-js","duration":504082,"timestamp":62600383846,"id":469,"parentId":458,"tags":{"name":"E:\\百战计划\\run\\aws-proxy-site\\node_modules\\next\\dist\\shared\\lib\\page-path\\ensure-leading-slash.js","layer":"pages-dir-browser"},"startTime":1752658293546,"traceId":"348090f4f4adc525"},{"name":"build-module-js","duration":504955,"timestamp":62600383665,"id":468,"parentId":458,"tags":{"name":"E:\\百战计划\\run\\aws-proxy-site\\node_modules\\next\\dist\\shared\\lib\\segment.js","layer":"pages-dir-browser"},"startTime":1752658293546,"traceId":"348090f4f4adc525"},{"name":"build-module-js","duration":521971,"timestamp":62600378996,"id":465,"parentId":452,"tags":{"name":"E:\\百战计划\\run\\aws-proxy-site\\node_modules\\react\\cjs\\react.production.js","layer":"pages-dir-browser"},"startTime":1752658293541,"traceId":"348090f4f4adc525"},{"name":"build-module-js","duration":16739,"timestamp":62600890895,"id":472,"parentId":456,"tags":{"name":"E:\\百战计划\\run\\aws-proxy-site\\node_modules\\next\\dist\\client\\components\\navigation.js","layer":"pages-dir-browser"},"startTime":1752658294053,"traceId":"348090f4f4adc525"},{"name":"build-module-js","duration":19476,"timestamp":62600891158,"id":473,"parentId":459,"tags":{"name":"E:\\百战计划\\run\\aws-proxy-site\\node_modules\\next\\dist\\shared\\lib\\router\\utils\\sorted-routes.js","layer":"pages-dir-browser"},"startTime":1752658294053,"traceId":"348090f4f4adc525"},{"name":"build-module-js","duration":529554,"timestamp":62600383551,"id":467,"parentId":356,"tags":{"name":"E:\\百战计划\\run\\aws-proxy-site\\node_modules\\@swc\\helpers\\esm\\_interop_require_wildcard.js","layer":"pages-dir-browser"},"startTime":1752658293546,"traceId":"348090f4f4adc525"},{"name":"build-module-js","duration":530806,"timestamp":62600382699,"id":466,"parentId":339,"tags":{"name":"E:\\百战计划\\run\\aws-proxy-site\\node_modules\\@swc\\helpers\\esm\\_interop_require_default.js","layer":"pages-dir-browser"},"startTime":1752658293545,"traceId":"348090f4f4adc525"},{"name":"build-module-js","duration":13987,"timestamp":62600903923,"id":474,"parentId":462,"tags":{"name":"E:\\百战计划\\run\\aws-proxy-site\\node_modules\\next\\dist\\shared\\lib\\utils\\error-once.js","layer":"pages-dir-browser"},"startTime":1752658294066,"traceId":"348090f4f4adc525"},{"name":"build-module-js","duration":14619,"timestamp":62600904341,"id":477,"parentId":462,"tags":{"name":"E:\\百战计划\\run\\aws-proxy-site\\node_modules\\next\\dist\\client\\use-merged-ref.js","layer":"pages-dir-browser"},"startTime":1752658294066,"traceId":"348090f4f4adc525"},{"name":"build-module-js","duration":15549,"timestamp":62600904250,"id":476,"parentId":462,"tags":{"name":"E:\\百战计划\\run\\aws-proxy-site\\node_modules\\next\\dist\\client\\get-domain-locale.js","layer":"pages-dir-browser"},"startTime":1752658294066,"traceId":"348090f4f4adc525"},{"name":"build-module-js","duration":17359,"timestamp":62600904137,"id":475,"parentId":462,"tags":{"name":"E:\\百战计划\\run\\aws-proxy-site\\node_modules\\next\\dist\\client\\use-intersection.js","layer":"pages-dir-browser"},"startTime":1752658294066,"traceId":"348090f4f4adc525"},{"name":"build-module-js","duration":287370,"timestamp":62600634895,"id":470,"parentId":365,"tags":{"name":"E:\\百战计划\\run\\aws-proxy-site\\node_modules\\react-dom\\index.js","layer":"pages-dir-browser"},"startTime":1752658293797,"traceId":"348090f4f4adc525"},{"name":"build-module-js","duration":6278,"timestamp":62600932188,"id":480,"parentId":472,"tags":{"name":"E:\\百战计划\\run\\aws-proxy-site\\node_modules\\next\\dist\\shared\\lib\\server-inserted-html.shared-runtime.js","layer":"pages-dir-browser"},"startTime":1752658294094,"traceId":"348090f4f4adc525"},{"name":"build-module-js","duration":8541,"timestamp":62600931785,"id":478,"parentId":472,"tags":{"name":"E:\\百战计划\\run\\aws-proxy-site\\node_modules\\next\\dist\\client\\components\\navigation.react-server.js","layer":"pages-dir-browser"},"startTime":1752658294094,"traceId":"348090f4f4adc525"},{"name":"build-module-js","duration":17607,"timestamp":62600932049,"id":479,"parentId":470,"tags":{"name":"E:\\百战计划\\run\\aws-proxy-site\\node_modules\\react-dom\\cjs\\react-dom.production.js","layer":"pages-dir-browser"},"startTime":1752658294094,"traceId":"348090f4f4adc525"},{"name":"build-module-js","duration":11609,"timestamp":62600943983,"id":485,"parentId":472,"tags":{"name":"E:\\百战计划\\run\\aws-proxy-site\\node_modules\\next\\dist\\client\\components\\router-reducer\\reducers\\get-segment-value.js","layer":"pages-dir-browser"},"startTime":1752658294106,"traceId":"348090f4f4adc525"},{"name":"build-module-js","duration":69179,"timestamp":62600933971,"id":481,"parentId":389,"tags":{"name":"__barrel_optimize__?names=Menu!=!E:\\百战计划\\run\\aws-proxy-site\\node_modules\\lucide-react\\dist\\esm\\lucide-react.js","layer":"pages-dir-browser"},"startTime":1752658294096,"traceId":"348090f4f4adc525"},{"name":"build-module-js","duration":78459,"timestamp":62600935850,"id":483,"parentId":425,"tags":{"name":"__barrel_optimize__?names=CheckCircle,Headphones,MessageSquare,UserCheck!=!E:\\百战计划\\run\\aws-proxy-site\\node_modules\\lucide-react\\dist\\esm\\lucide-react.js","layer":"pages-dir-browser"},"startTime":1752658294098,"traceId":"348090f4f4adc525"},{"name":"build-module-js","duration":90273,"timestamp":62600935962,"id":484,"parentId":426,"tags":{"name":"__barrel_optimize__?names=Box,Globe,Headphones,ShieldCheck!=!E:\\百战计划\\run\\aws-proxy-site\\node_modules\\lucide-react\\dist\\esm\\lucide-react.js","layer":"pages-dir-browser"},"startTime":1752658294098,"traceId":"348090f4f4adc525"},{"name":"build-module-js","duration":101102,"timestamp":62600935672,"id":482,"parentId":394,"tags":{"name":"__barrel_optimize__?names=BarChart,Globe,Repeat!=!E:\\百战计划\\run\\aws-proxy-site\\node_modules\\lucide-react\\dist\\esm\\lucide-react.js","layer":"pages-dir-browser"},"startTime":1752658294098,"traceId":"348090f4f4adc525"},{"name":"build-module-js","duration":57741,"timestamp":62600981040,"id":487,"parentId":478,"tags":{"name":"E:\\百战计划\\run\\aws-proxy-site\\node_modules\\next\\dist\\client\\components\\not-found.js","layer":"pages-dir-browser"},"startTime":1752658294143,"traceId":"348090f4f4adc525"},{"name":"build-module-js","duration":59275,"timestamp":62600981241,"id":488,"parentId":478,"tags":{"name":"E:\\百战计划\\run\\aws-proxy-site\\node_modules\\next\\dist\\client\\components\\unauthorized.js","layer":"pages-dir-browser"},"startTime":1752658294143,"traceId":"348090f4f4adc525"},{"name":"build-module-js","duration":60230,"timestamp":62600981540,"id":489,"parentId":478,"tags":{"name":"E:\\百战计划\\run\\aws-proxy-site\\node_modules\\next\\dist\\client\\components\\forbidden.js","layer":"pages-dir-browser"},"startTime":1752658294144,"traceId":"348090f4f4adc525"},{"name":"build-module-css","duration":1836962,"timestamp":62599205583,"id":451,"parentId":436,"tags":{"name":"E:\\百战计划\\run\\aws-proxy-site\\styles\\globals.css.webpack[javascript/auto]!=!E:\\百战计划\\run\\aws-proxy-site\\node_modules\\next\\dist\\build\\webpack\\loaders\\css-loader\\src\\index.js??ruleSet[1].rules[7].oneOf[13].use[1]!E:\\百战计划\\run\\aws-proxy-site\\node_modules\\next\\dist\\build\\webpack\\loaders\\postcss-loader\\src\\index.js??ruleSet[1].rules[7].oneOf[13].use[2]!E:\\百战计划\\run\\aws-proxy-site\\styles\\globals.css","layer":null},"startTime":1752658292368,"traceId":"348090f4f4adc525"},{"name":"build-module-js","duration":64166,"timestamp":62600980715,"id":486,"parentId":478,"tags":{"name":"E:\\百战计划\\run\\aws-proxy-site\\node_modules\\next\\dist\\client\\components\\redirect.js","layer":"pages-dir-browser"},"startTime":1752658294143,"traceId":"348090f4f4adc525"},{"name":"build-module-js","duration":63022,"timestamp":62600983555,"id":490,"parentId":478,"tags":{"name":"E:\\百战计划\\run\\aws-proxy-site\\node_modules\\next\\dist\\client\\components\\unstable-rethrow.js","layer":"pages-dir-browser"},"startTime":1752658294146,"traceId":"348090f4f4adc525"},{"name":"build-module-js","duration":5518,"timestamp":62601062489,"id":496,"parentId":483,"tags":{"name":"E:\\百战计划\\run\\aws-proxy-site\\node_modules\\lucide-react\\dist\\esm\\icons\\headphones.js","layer":"pages-dir-browser"},"startTime":1752658294224,"traceId":"348090f4f4adc525"},{"name":"build-module-js","duration":6859,"timestamp":62601062265,"id":495,"parentId":483,"tags":{"name":"E:\\百战计划\\run\\aws-proxy-site\\node_modules\\lucide-react\\dist\\esm\\icons\\circle-check-big.js","layer":"pages-dir-browser"},"startTime":1752658294224,"traceId":"348090f4f4adc525"},{"name":"build-module-js","duration":7757,"timestamp":62601062147,"id":494,"parentId":481,"tags":{"name":"E:\\百战计划\\run\\aws-proxy-site\\node_modules\\lucide-react\\dist\\esm\\icons\\menu.js","layer":"pages-dir-browser"},"startTime":1752658294224,"traceId":"348090f4f4adc525"},{"name":"build-module-js","duration":10123,"timestamp":62601061955,"id":493,"parentId":490,"tags":{"name":"E:\\百战计划\\run\\aws-proxy-site\\node_modules\\next\\dist\\client\\components\\unstable-rethrow.browser.js","layer":"pages-dir-browser"},"startTime":1752658294224,"traceId":"348090f4f4adc525"},{"name":"build-module-js","duration":10199,"timestamp":62601062728,"id":498,"parentId":484,"tags":{"name":"E:\\百战计划\\run\\aws-proxy-site\\node_modules\\lucide-react\\dist\\esm\\icons\\globe.js","layer":"pages-dir-browser"},"startTime":1752658294225,"traceId":"348090f4f4adc525"},{"name":"build-module-js","duration":10794,"timestamp":62601062822,"id":499,"parentId":484,"tags":{"name":"E:\\百战计划\\run\\aws-proxy-site\\node_modules\\lucide-react\\dist\\esm\\icons\\box.js","layer":"pages-dir-browser"},"startTime":1752658294225,"traceId":"348090f4f4adc525"},{"name":"build-module-js","duration":11636,"timestamp":62601062628,"id":497,"parentId":483,"tags":{"name":"E:\\百战计划\\run\\aws-proxy-site\\node_modules\\lucide-react\\dist\\esm\\icons\\message-square.js","layer":"pages-dir-browser"},"startTime":1752658294225,"traceId":"348090f4f4adc525"},{"name":"build-module-js","duration":11911,"timestamp":62601062922,"id":500,"parentId":483,"tags":{"name":"E:\\百战计划\\run\\aws-proxy-site\\node_modules\\lucide-react\\dist\\esm\\icons\\user-check.js","layer":"pages-dir-browser"},"startTime":1752658294225,"traceId":"348090f4f4adc525"},{"name":"build-module-js","duration":12699,"timestamp":62601063040,"id":501,"parentId":484,"tags":{"name":"E:\\百战计划\\run\\aws-proxy-site\\node_modules\\lucide-react\\dist\\esm\\icons\\shield-check.js","layer":"pages-dir-browser"},"startTime":1752658294225,"traceId":"348090f4f4adc525"},{"name":"build-module-js","duration":13154,"timestamp":62601063273,"id":503,"parentId":482,"tags":{"name":"E:\\百战计划\\run\\aws-proxy-site\\node_modules\\lucide-react\\dist\\esm\\icons\\repeat.js","layer":"pages-dir-browser"},"startTime":1752658294225,"traceId":"348090f4f4adc525"},{"name":"build-module-js","duration":13932,"timestamp":62601063144,"id":502,"parentId":482,"tags":{"name":"E:\\百战计划\\run\\aws-proxy-site\\node_modules\\lucide-react\\dist\\esm\\icons\\chart-no-axes-column-increasing.js","layer":"pages-dir-browser"},"startTime":1752658294225,"traceId":"348090f4f4adc525"},{"name":"build-module-js","duration":20567,"timestamp":62601061142,"id":491,"parentId":461,"tags":{"name":"E:\\百战计划\\run\\aws-proxy-site\\node_modules\\process\\browser.js","layer":"pages-dir-browser"},"startTime":1752658294223,"traceId":"348090f4f4adc525"},{"name":"add-entry","duration":2754482,"timestamp":62598327796,"id":308,"parentId":305,"tags":{"request":"E:\\百战计划\\run\\aws-proxy-site\\node_modules\\next\\dist\\client\\router.js"},"startTime":1752658291490,"traceId":"348090f4f4adc525"},{"name":"add-entry","duration":2754511,"timestamp":62598327844,"id":309,"parentId":305,"tags":{"request":"next-client-pages-loader?absolutePagePath=next%2Fdist%2Fpages%2F_error&page=%2F_error!"},"startTime":1752658291490,"traceId":"348090f4f4adc525"},{"name":"build-module-js","duration":22657,"timestamp":62601061799,"id":492,"parentId":461,"tags":{"name":"E:\\百战计划\\run\\aws-proxy-site\\node_modules\\scheduler\\index.js","layer":"pages-dir-browser"},"startTime":1752658294224,"traceId":"348090f4f4adc525"},{"name":"build-module-js","duration":23007,"timestamp":62601063357,"id":504,"parentId":451,"tags":{"name":"E:\\百战计划\\run\\aws-proxy-site\\node_modules\\next\\dist\\build\\webpack\\loaders\\css-loader\\src\\runtime\\api.js","layer":null},"startTime":1752658294225,"traceId":"348090f4f4adc525"},{"name":"build-module-css","duration":1968126,"timestamp":62599144780,"id":436,"parentId":341,"tags":{"name":"E:\\百战计划\\run\\aws-proxy-site\\styles\\globals.css","layer":"pages-dir-browser"},"startTime":1752658292307,"traceId":"348090f4f4adc525"},{"name":"build-module","duration":374,"timestamp":62601114678,"id":506,"parentId":436,"tags":{},"startTime":1752658294277,"traceId":"348090f4f4adc525"},{"name":"add-entry","duration":2787581,"timestamp":62598327707,"id":307,"parentId":305,"tags":{"request":"next-client-pages-loader?absolutePagePath=private-next-pages%2F_app.tsx&page=%2F_app!"},"startTime":1752658291490,"traceId":"348090f4f4adc525"},{"name":"build-module-js","duration":3260,"timestamp":62601113633,"id":505,"parentId":496,"tags":{"name":"E:\\百战计划\\run\\aws-proxy-site\\node_modules\\lucide-react\\dist\\esm\\createLucideIcon.js","layer":"pages-dir-browser"},"startTime":1752658294276,"traceId":"348090f4f4adc525"},{"name":"build-module-js","duration":6340,"timestamp":62601118883,"id":507,"parentId":492,"tags":{"name":"E:\\百战计划\\run\\aws-proxy-site\\node_modules\\scheduler\\cjs\\scheduler.production.js","layer":"pages-dir-browser"},"startTime":1752658294281,"traceId":"348090f4f4adc525"},{"name":"add-entry","duration":2798857,"timestamp":62598326585,"id":306,"parentId":305,"tags":{"request":"./node_modules/next/dist/client/next.js"},"startTime":1752658291489,"traceId":"348090f4f4adc525"},{"name":"build-module-js","duration":6159,"timestamp":62601120416,"id":508,"parentId":505,"tags":{"name":"E:\\百战计划\\run\\aws-proxy-site\\node_modules\\lucide-react\\dist\\esm\\Icon.js","layer":"pages-dir-browser"},"startTime":1752658294282,"traceId":"348090f4f4adc525"},{"name":"build-module-js","duration":1758,"timestamp":62601129276,"id":510,"parentId":508,"tags":{"name":"E:\\百战计划\\run\\aws-proxy-site\\node_modules\\lucide-react\\dist\\esm\\defaultAttributes.js","layer":"pages-dir-browser"},"startTime":1752658294291,"traceId":"348090f4f4adc525"},{"name":"build-module-js","duration":3859,"timestamp":62601128386,"id":509,"parentId":505,"tags":{"name":"E:\\百战计划\\run\\aws-proxy-site\\node_modules\\lucide-react\\dist\\esm\\shared\\src\\utils.js","layer":"pages-dir-browser"},"startTime":1752658294290,"traceId":"348090f4f4adc525"},{"name":"add-entry","duration":2804489,"timestamp":62598327925,"id":311,"parentId":305,"tags":{"request":"next-client-pages-loader?absolutePagePath=private-next-pages%2Fcases.tsx&page=%2Fcases!"},"startTime":1752658291490,"traceId":"348090f4f4adc525"},{"name":"add-entry","duration":2804495,"timestamp":62598327947,"id":312,"parentId":305,"tags":{"request":"next-client-pages-loader?absolutePagePath=private-next-pages%2Fcontact.tsx&page=%2Fcontact!"},"startTime":1752658291490,"traceId":"348090f4f4adc525"},{"name":"add-entry","duration":2804563,"timestamp":62598327892,"id":310,"parentId":305,"tags":{"request":"next-client-pages-loader?absolutePagePath=private-next-pages%2Fabout.tsx&page=%2Fabout!"},"startTime":1752658291490,"traceId":"348090f4f4adc525"},{"name":"add-entry","duration":2804227,"timestamp":62598328257,"id":316,"parentId":305,"tags":{"request":"next-client-pages-loader?absolutePagePath=private-next-pages%2Fnews.tsx&page=%2Fnews!"},"startTime":1752658291490,"traceId":"348090f4f4adc525"},{"name":"add-entry","duration":2804304,"timestamp":62598328191,"id":315,"parentId":305,"tags":{"request":"next-client-pages-loader?absolutePagePath=private-next-pages%2Flogin.tsx&page=%2Flogin!"},"startTime":1752658291490,"traceId":"348090f4f4adc525"},{"name":"add-entry","duration":2804411,"timestamp":62598328287,"id":317,"parentId":305,"tags":{"request":"next-client-pages-loader?absolutePagePath=private-next-pages%2Fpricing.tsx&page=%2Fpricing!"},"startTime":1752658291490,"traceId":"348090f4f4adc525"},{"name":"add-entry","duration":2804744,"timestamp":62598327982,"id":314,"parentId":305,"tags":{"request":"next-client-pages-loader?absolutePagePath=private-next-pages%2Findex.tsx&page=%2F!"},"startTime":1752658291490,"traceId":"348090f4f4adc525"},{"name":"add-entry","duration":2804768,"timestamp":62598327966,"id":313,"parentId":305,"tags":{"request":"next-client-pages-loader?absolutePagePath=private-next-pages%2Ffeatures.tsx&page=%2Ffeatures!"},"startTime":1752658291490,"traceId":"348090f4f4adc525"},{"name":"make","duration":2807552,"timestamp":62598325659,"id":305,"parentId":304,"tags":{},"startTime":1752658291488,"traceId":"348090f4f4adc525"},{"name":"chunk-graph","duration":11561,"timestamp":62601167196,"id":512,"parentId":511,"tags":{},"startTime":1752658294329,"traceId":"348090f4f4adc525"},{"name":"optimize-modules","duration":46,"timestamp":62601178943,"id":514,"parentId":511,"tags":{},"startTime":1752658294341,"traceId":"348090f4f4adc525"}] -[{"name":"optimize-chunks","duration":11943,"timestamp":62601179156,"id":515,"parentId":511,"tags":{},"startTime":1752658294341,"traceId":"348090f4f4adc525"},{"name":"optimize-tree","duration":210,"timestamp":62601191253,"id":516,"parentId":511,"tags":{},"startTime":1752658294353,"traceId":"348090f4f4adc525"},{"name":"optimize-chunk-modules","duration":15429,"timestamp":62601191615,"id":517,"parentId":511,"tags":{},"startTime":1752658294354,"traceId":"348090f4f4adc525"},{"name":"optimize","duration":28363,"timestamp":62601178859,"id":513,"parentId":511,"tags":{},"startTime":1752658294341,"traceId":"348090f4f4adc525"},{"name":"module-hash","duration":13437,"timestamp":62601221429,"id":518,"parentId":511,"tags":{},"startTime":1752658294383,"traceId":"348090f4f4adc525"},{"name":"code-generation","duration":57398,"timestamp":62601234955,"id":519,"parentId":511,"tags":{},"startTime":1752658294397,"traceId":"348090f4f4adc525"},{"name":"hash","duration":15236,"timestamp":62601298248,"id":520,"parentId":511,"tags":{},"startTime":1752658294460,"traceId":"348090f4f4adc525"},{"name":"code-generation-jobs","duration":1032,"timestamp":62601313480,"id":521,"parentId":511,"tags":{},"startTime":1752658294475,"traceId":"348090f4f4adc525"},{"name":"module-assets","duration":610,"timestamp":62601314350,"id":522,"parentId":511,"tags":{},"startTime":1752658294476,"traceId":"348090f4f4adc525"},{"name":"create-chunk-assets","duration":14069,"timestamp":62601315018,"id":523,"parentId":511,"tags":{},"startTime":1752658294477,"traceId":"348090f4f4adc525"},{"name":"NextJsBuildManifest-generateClientManifest","duration":2699,"timestamp":62601341360,"id":525,"parentId":304,"tags":{},"startTime":1752658294503,"traceId":"348090f4f4adc525"},{"name":"NextJsBuildManifest-createassets","duration":4448,"timestamp":62601339648,"id":524,"parentId":304,"tags":{},"startTime":1752658294502,"traceId":"348090f4f4adc525"},{"name":"minify-js","duration":31639,"timestamp":62601374434,"id":528,"parentId":526,"tags":{"name":"static/chunks/pages/_app-03a3fa43f84590c8.js","cache":"MISS"},"startTime":1752658294536,"traceId":"348090f4f4adc525"},{"name":"minify-js","duration":31097,"timestamp":62601375753,"id":530,"parentId":526,"tags":{"name":"static/chunks/pages/about-ae872b868f21c5b9.js","cache":"MISS"},"startTime":1752658294538,"traceId":"348090f4f4adc525"},{"name":"minify-js","duration":34177,"timestamp":62601374731,"id":529,"parentId":526,"tags":{"name":"static/chunks/pages/_error-6ec08a5eb38240fa.js","cache":"MISS"},"startTime":1752658294537,"traceId":"348090f4f4adc525"},{"name":"minify-js","duration":32456,"timestamp":62601377056,"id":531,"parentId":526,"tags":{"name":"static/chunks/pages/cases-57ebe15470c155ab.js","cache":"MISS"},"startTime":1752658294539,"traceId":"348090f4f4adc525"},{"name":"minify-js","duration":31633,"timestamp":62601378417,"id":532,"parentId":526,"tags":{"name":"static/chunks/pages/contact-73e36b1a2da846b5.js","cache":"MISS"},"startTime":1752658294540,"traceId":"348090f4f4adc525"},{"name":"minify-js","duration":33077,"timestamp":62601379202,"id":533,"parentId":526,"tags":{"name":"static/chunks/pages/features-76a2af1fe1806a63.js","cache":"MISS"},"startTime":1752658294541,"traceId":"348090f4f4adc525"},{"name":"minify-js","duration":31615,"timestamp":62601383414,"id":536,"parentId":526,"tags":{"name":"static/chunks/pages/news-dc111a0c34c1a2ab.js","cache":"MISS"},"startTime":1752658294545,"traceId":"348090f4f4adc525"},{"name":"minify-js","duration":35686,"timestamp":62601380241,"id":534,"parentId":526,"tags":{"name":"static/chunks/pages/index-e60e286fc69fad24.js","cache":"MISS"},"startTime":1752658294542,"traceId":"348090f4f4adc525"},{"name":"minify-js","duration":35255,"timestamp":62601383896,"id":537,"parentId":526,"tags":{"name":"static/chunks/pages/pricing-1becf3af46020548.js","cache":"MISS"},"startTime":1752658294546,"traceId":"348090f4f4adc525"},{"name":"minify-js","duration":38687,"timestamp":62601382072,"id":535,"parentId":526,"tags":{"name":"static/chunks/pages/login-cfa516a3467df9fd.js","cache":"MISS"},"startTime":1752658294544,"traceId":"348090f4f4adc525"},{"name":"minify-js","duration":36794,"timestamp":62601384831,"id":540,"parentId":526,"tags":{"name":"static/chunks/57.f97f7659fb27e1e2.js","cache":"MISS"},"startTime":1752658294547,"traceId":"348090f4f4adc525"},{"name":"minify-js","duration":38108,"timestamp":62601384258,"id":538,"parentId":526,"tags":{"name":"static/chunks/webpack-9558efccbc60ea64.js","cache":"MISS"},"startTime":1752658294546,"traceId":"348090f4f4adc525"},{"name":"minify-js","duration":39613,"timestamp":62601384639,"id":539,"parentId":526,"tags":{"name":"static/chunks/100.d617beda7db0cddb.js","cache":"MISS"},"startTime":1752658294547,"traceId":"348090f4f4adc525"},{"name":"minify-js","duration":26777,"timestamp":62601397660,"id":543,"parentId":526,"tags":{"name":"server/middleware-react-loadable-manifest.js","cache":"MISS"},"startTime":1752658294560,"traceId":"348090f4f4adc525"},{"name":"minify-js","duration":26774,"timestamp":62601397874,"id":544,"parentId":526,"tags":{"name":"server/dynamic-css-manifest.js","cache":"MISS"},"startTime":1752658294560,"traceId":"348090f4f4adc525"},{"name":"minify-js","duration":26889,"timestamp":62601397957,"id":545,"parentId":526,"tags":{"name":"static/zlAH2cHTsaxKzxppe1EeC/_ssgManifest.js","cache":"MISS"},"startTime":1752658294560,"traceId":"348090f4f4adc525"},{"name":"minify-js","duration":27260,"timestamp":62601398030,"id":546,"parentId":526,"tags":{"name":"server/middleware-build-manifest.js","cache":"MISS"},"startTime":1752658294560,"traceId":"348090f4f4adc525"},{"name":"minify-js","duration":27624,"timestamp":62601398098,"id":547,"parentId":526,"tags":{"name":"static/zlAH2cHTsaxKzxppe1EeC/_buildManifest.js","cache":"MISS"},"startTime":1752658294560,"traceId":"348090f4f4adc525"},{"name":"minify-js","duration":27711,"timestamp":62601398163,"id":548,"parentId":526,"tags":{"name":"server/next-font-manifest.js","cache":"MISS"},"startTime":1752658294560,"traceId":"348090f4f4adc525"},{"name":"minify-js","duration":36232,"timestamp":62601395798,"id":542,"parentId":526,"tags":{"name":"static/chunks/752-afdd53f0e4457086.js","cache":"MISS"},"startTime":1752658294558,"traceId":"348090f4f4adc525"},{"name":"minify-js","duration":150749,"timestamp":62601355277,"id":527,"parentId":526,"tags":{"name":"static/chunks/main-1ea820c2fdc15eda.js","cache":"MISS"},"startTime":1752658294517,"traceId":"348090f4f4adc525"},{"name":"minify-js","duration":267898,"timestamp":62601384959,"id":541,"parentId":526,"tags":{"name":"static/chunks/framework-e6bdb77d64dc475c.js","cache":"MISS"},"startTime":1752658294547,"traceId":"348090f4f4adc525"},{"name":"minify-webpack-plugin-optimize","duration":307714,"timestamp":62601345167,"id":526,"parentId":304,"tags":{"compilationName":"client","mangle":"[object Object]"},"startTime":1752658294507,"traceId":"348090f4f4adc525"},{"name":"minify-css","duration":796912,"timestamp":62601653518,"id":550,"parentId":549,"tags":{"file":"static/css/bdd3b9c762d3e7b8.css","cache":"MISS"},"startTime":1752658294816,"traceId":"348090f4f4adc525"},{"name":"css-minimizer-plugin","duration":797273,"timestamp":62601653176,"id":549,"parentId":304,"tags":{},"startTime":1752658294815,"traceId":"348090f4f4adc525"},{"name":"seal","duration":1307585,"timestamp":62601153850,"id":511,"parentId":304,"tags":{},"startTime":1752658294316,"traceId":"348090f4f4adc525"},{"name":"webpack-compilation","duration":4150843,"timestamp":62598311159,"id":304,"parentId":301,"tags":{"name":"client"},"startTime":1752658291473,"traceId":"348090f4f4adc525"},{"name":"emit","duration":14701,"timestamp":62602462666,"id":551,"parentId":301,"tags":{},"startTime":1752658295625,"traceId":"348090f4f4adc525"},{"name":"webpack-close","duration":219646,"timestamp":62602479796,"id":552,"parentId":301,"tags":{"name":"client"},"startTime":1752658295642,"traceId":"348090f4f4adc525"},{"name":"webpack-generate-error-stats","duration":4418,"timestamp":62602699572,"id":553,"parentId":552,"tags":{},"startTime":1752658295862,"traceId":"348090f4f4adc525"},{"name":"run-webpack-compiler","duration":5205320,"timestamp":62597499081,"id":301,"parentId":300,"tags":{},"startTime":1752658290661,"traceId":"348090f4f4adc525"},{"name":"format-webpack-messages","duration":156,"timestamp":62602704413,"id":554,"parentId":300,"tags":{},"startTime":1752658295866,"traceId":"348090f4f4adc525"},{"name":"worker-main-client","duration":5206366,"timestamp":62597498404,"id":300,"parentId":1,"tags":{},"startTime":1752658290660,"traceId":"348090f4f4adc525"},{"name":"check-static-error-page","duration":5666,"timestamp":62603514447,"id":558,"parentId":557,"tags":{},"startTime":1752658296677,"traceId":"348090f4f4adc525"},{"name":"check-page","duration":3448,"timestamp":62603559928,"id":561,"parentId":557,"tags":{"page":"/_document"},"startTime":1752658296722,"traceId":"348090f4f4adc525"},{"name":"check-page","duration":5163,"timestamp":62603559322,"id":560,"parentId":557,"tags":{"page":"/_error"},"startTime":1752658296721,"traceId":"348090f4f4adc525"},{"name":"check-page","duration":11585,"timestamp":62603556444,"id":559,"parentId":557,"tags":{"page":"/_app"},"startTime":1752658296719,"traceId":"348090f4f4adc525"},{"name":"check-page","duration":8534,"timestamp":62603560254,"id":563,"parentId":557,"tags":{"page":"/api/sitemap/[lang]"},"startTime":1752658296722,"traceId":"348090f4f4adc525"},{"name":"is-page-static","duration":924878,"timestamp":62603569572,"id":574,"parentId":566,"tags":{},"startTime":1752658296732,"traceId":"348090f4f4adc525"},{"name":"check-page","duration":933871,"timestamp":62603560706,"id":566,"parentId":557,"tags":{"page":"/features"},"startTime":1752658296723,"traceId":"348090f4f4adc525"},{"name":"is-page-static","duration":926452,"timestamp":62603568303,"id":571,"parentId":562,"tags":{},"startTime":1752658296730,"traceId":"348090f4f4adc525"},{"name":"check-page","duration":934742,"timestamp":62603560063,"id":562,"parentId":557,"tags":{"page":"/about"},"startTime":1752658296722,"traceId":"348090f4f4adc525"},{"name":"is-page-static","duration":924709,"timestamp":62603570796,"id":578,"parentId":570,"tags":{},"startTime":1752658296733,"traceId":"348090f4f4adc525"},{"name":"check-page","duration":934464,"timestamp":62603561118,"id":570,"parentId":557,"tags":{"page":"/pricing"},"startTime":1752658296723,"traceId":"348090f4f4adc525"},{"name":"is-page-static","duration":927951,"timestamp":62603568866,"id":572,"parentId":564,"tags":{},"startTime":1752658296731,"traceId":"348090f4f4adc525"},{"name":"check-page","duration":936417,"timestamp":62603560505,"id":564,"parentId":557,"tags":{"page":"/cases"},"startTime":1752658296723,"traceId":"348090f4f4adc525"},{"name":"is-page-static","duration":931341,"timestamp":62603570522,"id":577,"parentId":569,"tags":{},"startTime":1752658296733,"traceId":"348090f4f4adc525"},{"name":"check-page","duration":941309,"timestamp":62603560919,"id":569,"parentId":557,"tags":{"page":"/news"},"startTime":1752658296723,"traceId":"348090f4f4adc525"},{"name":"is-page-static","duration":936103,"timestamp":62603570266,"id":576,"parentId":567,"tags":{},"startTime":1752658296732,"traceId":"348090f4f4adc525"},{"name":"check-page","duration":945705,"timestamp":62603560756,"id":567,"parentId":557,"tags":{"page":"/"},"startTime":1752658296723,"traceId":"348090f4f4adc525"},{"name":"is-page-static","duration":941538,"timestamp":62603569255,"id":573,"parentId":565,"tags":{},"startTime":1752658296731,"traceId":"348090f4f4adc525"},{"name":"check-page","duration":950245,"timestamp":62603560641,"id":565,"parentId":557,"tags":{"page":"/contact"},"startTime":1752658296723,"traceId":"348090f4f4adc525"},{"name":"is-page-static","duration":943786,"timestamp":62603569846,"id":575,"parentId":568,"tags":{},"startTime":1752658296732,"traceId":"348090f4f4adc525"},{"name":"check-page","duration":952867,"timestamp":62603560845,"id":568,"parentId":557,"tags":{"page":"/login"},"startTime":1752658296723,"traceId":"348090f4f4adc525"},{"name":"static-check","duration":1000136,"timestamp":62603513622,"id":557,"parentId":1,"tags":{},"startTime":1752658296676,"traceId":"348090f4f4adc525"},{"name":"generate-required-server-files","duration":1515,"timestamp":62604523336,"id":580,"parentId":1,"tags":{},"startTime":1752658297685,"traceId":"348090f4f4adc525"},{"name":"write-routes-manifest","duration":6543,"timestamp":62604549509,"id":582,"parentId":1,"tags":{},"startTime":1752658297712,"traceId":"348090f4f4adc525"},{"name":"load-dotenv","duration":87,"timestamp":62605320729,"id":585,"parentId":584,"tags":{},"startTime":1752658298483,"traceId":"348090f4f4adc525"},{"name":"run-export-path-map","duration":396,"timestamp":62605809130,"id":586,"parentId":584,"tags":{},"startTime":1752658298971,"traceId":"348090f4f4adc525"},{"name":"next-export","duration":2330869,"timestamp":62605319106,"id":584,"parentId":1,"tags":{},"startTime":1752658298481,"traceId":"348090f4f4adc525"},{"name":"move-exported-page","duration":144467,"timestamp":62607875012,"id":587,"parentId":583,"tags":{},"startTime":1752658301037,"traceId":"348090f4f4adc525"},{"name":"move-exported-page","duration":58181,"timestamp":62608019535,"id":588,"parentId":583,"tags":{},"startTime":1752658301182,"traceId":"348090f4f4adc525"},{"name":"move-exported-page","duration":45255,"timestamp":62608077905,"id":589,"parentId":583,"tags":{},"startTime":1752658301240,"traceId":"348090f4f4adc525"},{"name":"move-exported-page","duration":47447,"timestamp":62608123295,"id":590,"parentId":583,"tags":{},"startTime":1752658301285,"traceId":"348090f4f4adc525"},{"name":"move-exported-page","duration":51449,"timestamp":62608171020,"id":591,"parentId":583,"tags":{},"startTime":1752658301333,"traceId":"348090f4f4adc525"},{"name":"move-exported-page","duration":69509,"timestamp":62608222614,"id":592,"parentId":583,"tags":{},"startTime":1752658301385,"traceId":"348090f4f4adc525"},{"name":"move-exported-page","duration":53273,"timestamp":62608292245,"id":593,"parentId":583,"tags":{},"startTime":1752658301454,"traceId":"348090f4f4adc525"},{"name":"move-exported-page","duration":69096,"timestamp":62608345665,"id":594,"parentId":583,"tags":{},"startTime":1752658301508,"traceId":"348090f4f4adc525"},{"name":"move-exported-page","duration":80328,"timestamp":62608414868,"id":595,"parentId":583,"tags":{},"startTime":1752658301577,"traceId":"348090f4f4adc525"},{"name":"move-exported-page","duration":57640,"timestamp":62608495342,"id":596,"parentId":583,"tags":{},"startTime":1752658301658,"traceId":"348090f4f4adc525"},{"name":"static-generation","duration":3456619,"timestamp":62605304271,"id":583,"parentId":1,"tags":{},"startTime":1752658298466,"traceId":"348090f4f4adc525"},{"name":"write-routes-manifest","duration":47968,"timestamp":62608760927,"id":597,"parentId":1,"tags":{},"startTime":1752658301923,"traceId":"348090f4f4adc525"},{"name":"node-file-trace-build","duration":16851703,"timestamp":62604532565,"id":581,"parentId":1,"tags":{"isTurbotrace":"false"},"startTime":1752658297695,"traceId":"348090f4f4adc525"},{"name":"apply-include-excludes","duration":2250,"timestamp":62621384325,"id":598,"parentId":1,"tags":{},"startTime":1752658314546,"traceId":"348090f4f4adc525"},{"name":"print-tree-view","duration":13705,"timestamp":62621388839,"id":599,"parentId":1,"tags":{},"startTime":1752658314551,"traceId":"348090f4f4adc525"},{"name":"telemetry-flush","duration":183,"timestamp":62621402600,"id":600,"parentId":1,"tags":{},"startTime":1752658314565,"traceId":"348090f4f4adc525"},{"name":"next-build","duration":38827876,"timestamp":62582574944,"id":1,"tags":{"buildMode":"default","isTurboBuild":"false","version":"15.4.1","has-custom-webpack-config":"false","use-build-worker":"true"},"startTime":1752658275737,"traceId":"348090f4f4adc525"}] +[{"name":"generate-buildid","duration":574,"timestamp":135504878644,"id":4,"parentId":1,"tags":{},"startTime":1757915000328,"traceId":"61ce0652e28e4948"},{"name":"load-custom-routes","duration":5930,"timestamp":135504879513,"id":5,"parentId":1,"tags":{},"startTime":1757915000329,"traceId":"61ce0652e28e4948"},{"name":"create-dist-dir","duration":746,"timestamp":135505138029,"id":6,"parentId":1,"tags":{},"startTime":1757915000588,"traceId":"61ce0652e28e4948"},{"name":"verify-and-lint","duration":399742,"timestamp":135505311433,"id":8,"parentId":1,"tags":{},"startTime":1757915000761,"traceId":"61ce0652e28e4948"},{"name":"verify-typescript-setup","duration":9146752,"timestamp":135505182529,"id":7,"parentId":1,"tags":{},"startTime":1757915000632,"traceId":"61ce0652e28e4948"},{"name":"collect-pages","duration":14475,"timestamp":135514332288,"id":9,"parentId":1,"tags":{},"startTime":1757915009782,"traceId":"61ce0652e28e4948"},{"name":"create-pages-mapping","duration":1959,"timestamp":135514351055,"id":10,"parentId":1,"tags":{},"startTime":1757915009801,"traceId":"61ce0652e28e4948"},{"name":"public-dir-conflict-check","duration":5220,"timestamp":135514353603,"id":11,"parentId":1,"tags":{},"startTime":1757915009803,"traceId":"61ce0652e28e4948"},{"name":"generate-routes-manifest","duration":8083,"timestamp":135514359846,"id":12,"parentId":1,"tags":{},"startTime":1757915009809,"traceId":"61ce0652e28e4948"},{"name":"create-entrypoints","duration":114215,"timestamp":135516978893,"id":16,"parentId":14,"tags":{},"startTime":1757915012428,"traceId":"61ce0652e28e4948"},{"name":"generate-webpack-config","duration":941538,"timestamp":135517093612,"id":17,"parentId":15,"tags":{},"startTime":1757915012543,"traceId":"61ce0652e28e4948"},{"name":"next-trace-entrypoint-plugin","duration":4863,"timestamp":135518416513,"id":19,"parentId":18,"tags":{},"startTime":1757915013866,"traceId":"61ce0652e28e4948"},{"name":"add-entry","duration":492286,"timestamp":135518432978,"id":21,"parentId":20,"tags":{"request":"private-next-pages/_app.tsx"},"startTime":1757915013882,"traceId":"61ce0652e28e4948"},{"name":"add-entry","duration":694139,"timestamp":135518434111,"id":23,"parentId":20,"tags":{"request":"next-route-loader?kind=PAGES_API&page=%2Fapi%2Fsitemap%2F%5Blang%5D&preferredRegion=&absolutePagePath=private-next-pages%2Fapi%2Fsitemap%2F%5Blang%5D.ts&middlewareConfigBase64=e30%3D!"},"startTime":1757915013883,"traceId":"61ce0652e28e4948"},{"name":"add-entry","duration":698688,"timestamp":135518434760,"id":33,"parentId":20,"tags":{"request":"next/dist/pages/_document"},"startTime":1757915013884,"traceId":"61ce0652e28e4948"},{"name":"add-entry","duration":721797,"timestamp":135518434642,"id":30,"parentId":20,"tags":{"request":"next-route-loader?kind=PAGES&page=%2F_error&preferredRegion=&absolutePagePath=next%2Fdist%2Fpages%2F_error&absoluteAppPath=private-next-pages%2F_app.tsx&absoluteDocumentPath=next%2Fdist%2Fpages%2F_document&middlewareConfigBase64=e30%3D!"},"startTime":1757915013884,"traceId":"61ce0652e28e4948"},{"name":"add-entry","duration":731168,"timestamp":135518434032,"id":22,"parentId":20,"tags":{"request":"next-route-loader?kind=PAGES&page=%2Fabout&preferredRegion=&absolutePagePath=private-next-pages%2Fabout.tsx&absoluteAppPath=private-next-pages%2F_app.tsx&absoluteDocumentPath=next%2Fdist%2Fpages%2F_document&middlewareConfigBase64=e30%3D!"},"startTime":1757915013883,"traceId":"61ce0652e28e4948"},{"name":"add-entry","duration":731084,"timestamp":135518434152,"id":24,"parentId":20,"tags":{"request":"next-route-loader?kind=PAGES&page=%2Fcases&preferredRegion=&absolutePagePath=private-next-pages%2Fcases.tsx&absoluteAppPath=private-next-pages%2F_app.tsx&absoluteDocumentPath=next%2Fdist%2Fpages%2F_document&middlewareConfigBase64=e30%3D!"},"startTime":1757915013883,"traceId":"61ce0652e28e4948"},{"name":"add-entry","duration":731206,"timestamp":135518434187,"id":25,"parentId":20,"tags":{"request":"next-route-loader?kind=PAGES&page=%2Fcontact&preferredRegion=&absolutePagePath=private-next-pages%2Fcontact.tsx&absoluteAppPath=private-next-pages%2F_app.tsx&absoluteDocumentPath=next%2Fdist%2Fpages%2F_document&middlewareConfigBase64=e30%3D!"},"startTime":1757915013883,"traceId":"61ce0652e28e4948"},{"name":"add-entry","duration":731211,"timestamp":135518434212,"id":26,"parentId":20,"tags":{"request":"next-route-loader?kind=PAGES&page=%2Ffeatures&preferredRegion=&absolutePagePath=private-next-pages%2Ffeatures.tsx&absoluteAppPath=private-next-pages%2F_app.tsx&absoluteDocumentPath=next%2Fdist%2Fpages%2F_document&middlewareConfigBase64=e30%3D!"},"startTime":1757915013883,"traceId":"61ce0652e28e4948"},{"name":"add-entry","duration":731202,"timestamp":135518434236,"id":27,"parentId":20,"tags":{"request":"next-route-loader?kind=PAGES&page=%2F&preferredRegion=&absolutePagePath=private-next-pages%2Findex.tsx&absoluteAppPath=private-next-pages%2F_app.tsx&absoluteDocumentPath=next%2Fdist%2Fpages%2F_document&middlewareConfigBase64=e30%3D!"},"startTime":1757915013883,"traceId":"61ce0652e28e4948"},{"name":"add-entry","duration":731177,"timestamp":135518434283,"id":29,"parentId":20,"tags":{"request":"next-route-loader?kind=PAGES&page=%2Fpricing&preferredRegion=&absolutePagePath=private-next-pages%2Fpricing.tsx&absoluteAppPath=private-next-pages%2F_app.tsx&absoluteDocumentPath=next%2Fdist%2Fpages%2F_document&middlewareConfigBase64=e30%3D!"},"startTime":1757915013884,"traceId":"61ce0652e28e4948"},{"name":"add-entry","duration":730744,"timestamp":135518434729,"id":31,"parentId":20,"tags":{"request":"next-route-loader?kind=PAGES&page=%2Fnews&preferredRegion=&absolutePagePath=private-next-pages%2Fnews.tsx&absoluteAppPath=private-next-pages%2F_app.tsx&absoluteDocumentPath=next%2Fdist%2Fpages%2F_document&middlewareConfigBase64=e30%3D!"},"startTime":1757915013884,"traceId":"61ce0652e28e4948"},{"name":"add-entry","duration":731804,"timestamp":135518434261,"id":28,"parentId":20,"tags":{"request":"next-route-loader?kind=PAGES&page=%2Flogin&preferredRegion=&absolutePagePath=private-next-pages%2Flogin.tsx&absoluteAppPath=private-next-pages%2F_app.tsx&absoluteDocumentPath=next%2Fdist%2Fpages%2F_document&middlewareConfigBase64=e30%3D!"},"startTime":1757915013883,"traceId":"61ce0652e28e4948"},{"name":"add-entry","duration":793676,"timestamp":135518434746,"id":32,"parentId":20,"tags":{"request":"next-route-loader?kind=PAGES&page=%2Fnews%2F%5Bslug%5D&preferredRegion=&absolutePagePath=private-next-pages%2Fnews%2F%5Bslug%5D.tsx&absoluteAppPath=private-next-pages%2F_app.tsx&absoluteDocumentPath=next%2Fdist%2Fpages%2F_document&middlewareConfigBase64=e30%3D!"},"startTime":1757915013884,"traceId":"61ce0652e28e4948"},{"name":"make","duration":796949,"timestamp":135518432414,"id":20,"parentId":18,"tags":{},"startTime":1757915013882,"traceId":"61ce0652e28e4948"},{"name":"get-entries","duration":958,"timestamp":135519232086,"id":35,"parentId":34,"tags":{},"startTime":1757915014681,"traceId":"61ce0652e28e4948"},{"name":"node-file-trace-plugin","duration":682447,"timestamp":135519241561,"id":36,"parentId":34,"tags":{"traceEntryCount":"24"},"startTime":1757915014691,"traceId":"61ce0652e28e4948"},{"name":"collect-traced-files","duration":4361,"timestamp":135519924030,"id":37,"parentId":34,"tags":{},"startTime":1757915015373,"traceId":"61ce0652e28e4948"},{"name":"finish-modules","duration":696742,"timestamp":135519231668,"id":34,"parentId":19,"tags":{},"startTime":1757915014681,"traceId":"61ce0652e28e4948"},{"name":"chunk-graph","duration":31049,"timestamp":135520280101,"id":39,"parentId":38,"tags":{},"startTime":1757915015729,"traceId":"61ce0652e28e4948"},{"name":"optimize-modules","duration":89,"timestamp":135520311511,"id":41,"parentId":38,"tags":{},"startTime":1757915015761,"traceId":"61ce0652e28e4948"},{"name":"optimize-chunks","duration":39407,"timestamp":135520311859,"id":42,"parentId":38,"tags":{},"startTime":1757915015761,"traceId":"61ce0652e28e4948"},{"name":"optimize-tree","duration":426,"timestamp":135520351516,"id":43,"parentId":38,"tags":{},"startTime":1757915015801,"traceId":"61ce0652e28e4948"},{"name":"optimize-chunk-modules","duration":39030,"timestamp":135520352211,"id":44,"parentId":38,"tags":{},"startTime":1757915015801,"traceId":"61ce0652e28e4948"},{"name":"optimize","duration":80095,"timestamp":135520311341,"id":40,"parentId":38,"tags":{},"startTime":1757915015761,"traceId":"61ce0652e28e4948"},{"name":"module-hash","duration":39420,"timestamp":135520599898,"id":45,"parentId":38,"tags":{},"startTime":1757915016049,"traceId":"61ce0652e28e4948"},{"name":"code-generation","duration":10636,"timestamp":135520639483,"id":46,"parentId":38,"tags":{},"startTime":1757915016089,"traceId":"61ce0652e28e4948"},{"name":"hash","duration":26958,"timestamp":135520667559,"id":47,"parentId":38,"tags":{},"startTime":1757915016117,"traceId":"61ce0652e28e4948"},{"name":"code-generation-jobs","duration":1254,"timestamp":135520694503,"id":48,"parentId":38,"tags":{},"startTime":1757915016144,"traceId":"61ce0652e28e4948"},{"name":"module-assets","duration":661,"timestamp":135520695582,"id":49,"parentId":38,"tags":{},"startTime":1757915016145,"traceId":"61ce0652e28e4948"},{"name":"create-chunk-assets","duration":7122,"timestamp":135520696312,"id":50,"parentId":38,"tags":{},"startTime":1757915016146,"traceId":"61ce0652e28e4948"},{"name":"minify-js","duration":1134,"timestamp":135520729063,"id":52,"parentId":51,"tags":{"name":"../pages/_app.js","cache":"HIT"},"startTime":1757915016178,"traceId":"61ce0652e28e4948"},{"name":"minify-js","duration":651,"timestamp":135520729561,"id":53,"parentId":51,"tags":{"name":"../pages/about.js","cache":"HIT"},"startTime":1757915016179,"traceId":"61ce0652e28e4948"},{"name":"minify-js","duration":595,"timestamp":135520729621,"id":54,"parentId":51,"tags":{"name":"../pages/api/sitemap/[lang].js","cache":"HIT"},"startTime":1757915016179,"traceId":"61ce0652e28e4948"},{"name":"minify-js","duration":565,"timestamp":135520729654,"id":55,"parentId":51,"tags":{"name":"../pages/cases.js","cache":"HIT"},"startTime":1757915016179,"traceId":"61ce0652e28e4948"},{"name":"minify-js","duration":541,"timestamp":135520729680,"id":56,"parentId":51,"tags":{"name":"../pages/contact.js","cache":"HIT"},"startTime":1757915016179,"traceId":"61ce0652e28e4948"},{"name":"minify-js","duration":521,"timestamp":135520729709,"id":57,"parentId":51,"tags":{"name":"../pages/features.js","cache":"HIT"},"startTime":1757915016179,"traceId":"61ce0652e28e4948"},{"name":"minify-js","duration":500,"timestamp":135520729733,"id":58,"parentId":51,"tags":{"name":"../pages/index.js","cache":"HIT"},"startTime":1757915016179,"traceId":"61ce0652e28e4948"},{"name":"minify-js","duration":472,"timestamp":135520729764,"id":59,"parentId":51,"tags":{"name":"../pages/login.js","cache":"HIT"},"startTime":1757915016179,"traceId":"61ce0652e28e4948"},{"name":"minify-js","duration":447,"timestamp":135520729792,"id":60,"parentId":51,"tags":{"name":"../pages/pricing.js","cache":"HIT"},"startTime":1757915016179,"traceId":"61ce0652e28e4948"},{"name":"minify-js","duration":254,"timestamp":135520729987,"id":61,"parentId":51,"tags":{"name":"../pages/_error.js","cache":"HIT"},"startTime":1757915016179,"traceId":"61ce0652e28e4948"},{"name":"minify-js","duration":205,"timestamp":135520730039,"id":62,"parentId":51,"tags":{"name":"../pages/news.js","cache":"HIT"},"startTime":1757915016179,"traceId":"61ce0652e28e4948"},{"name":"minify-js","duration":178,"timestamp":135520730070,"id":63,"parentId":51,"tags":{"name":"../pages/news/[slug].js","cache":"HIT"},"startTime":1757915016179,"traceId":"61ce0652e28e4948"},{"name":"minify-js","duration":164,"timestamp":135520730087,"id":64,"parentId":51,"tags":{"name":"../pages/_document.js","cache":"HIT"},"startTime":1757915016179,"traceId":"61ce0652e28e4948"},{"name":"minify-js","duration":152,"timestamp":135520730101,"id":65,"parentId":51,"tags":{"name":"../webpack-runtime.js","cache":"HIT"},"startTime":1757915016179,"traceId":"61ce0652e28e4948"},{"name":"minify-js","duration":141,"timestamp":135520730114,"id":66,"parentId":51,"tags":{"name":"../webpack-api-runtime.js","cache":"HIT"},"startTime":1757915016179,"traceId":"61ce0652e28e4948"},{"name":"minify-js","duration":128,"timestamp":135520730130,"id":67,"parentId":51,"tags":{"name":"616.js","cache":"HIT"},"startTime":1757915016179,"traceId":"61ce0652e28e4948"},{"name":"minify-js","duration":117,"timestamp":135520730144,"id":68,"parentId":51,"tags":{"name":"326.js","cache":"HIT"},"startTime":1757915016179,"traceId":"61ce0652e28e4948"},{"name":"minify-js","duration":106,"timestamp":135520730157,"id":69,"parentId":51,"tags":{"name":"450.js","cache":"HIT"},"startTime":1757915016179,"traceId":"61ce0652e28e4948"},{"name":"minify-js","duration":95,"timestamp":135520730170,"id":70,"parentId":51,"tags":{"name":"62.js","cache":"HIT"},"startTime":1757915016179,"traceId":"61ce0652e28e4948"},{"name":"minify-js","duration":84,"timestamp":135520730184,"id":71,"parentId":51,"tags":{"name":"864.js","cache":"HIT"},"startTime":1757915016179,"traceId":"61ce0652e28e4948"},{"name":"minify-webpack-plugin-optimize","duration":15492,"timestamp":135520714817,"id":51,"parentId":18,"tags":{"compilationName":"server","mangle":"[object Object]"},"startTime":1757915016164,"traceId":"61ce0652e28e4948"},{"name":"css-minimizer-plugin","duration":379,"timestamp":135520730676,"id":72,"parentId":18,"tags":{},"startTime":1757915016180,"traceId":"61ce0652e28e4948"},{"name":"create-trace-assets","duration":7000,"timestamp":135520731776,"id":73,"parentId":19,"tags":{},"startTime":1757915016181,"traceId":"61ce0652e28e4948"},{"name":"seal","duration":511663,"timestamp":135520233993,"id":38,"parentId":18,"tags":{},"startTime":1757915015683,"traceId":"61ce0652e28e4948"},{"name":"webpack-compilation","duration":2333374,"timestamp":135518412819,"id":18,"parentId":15,"tags":{"name":"server"},"startTime":1757915013862,"traceId":"61ce0652e28e4948"},{"name":"emit","duration":29170,"timestamp":135520746989,"id":74,"parentId":15,"tags":{},"startTime":1757915016196,"traceId":"61ce0652e28e4948"},{"name":"webpack-close","duration":1882,"timestamp":135520780733,"id":75,"parentId":15,"tags":{"name":"server"},"startTime":1757915016230,"traceId":"61ce0652e28e4948"},{"name":"webpack-generate-error-stats","duration":8858,"timestamp":135520782738,"id":76,"parentId":75,"tags":{},"startTime":1757915016232,"traceId":"61ce0652e28e4948"},{"name":"run-webpack-compiler","duration":3813474,"timestamp":135516978876,"id":15,"parentId":14,"tags":{},"startTime":1757915012428,"traceId":"61ce0652e28e4948"},{"name":"format-webpack-messages","duration":251,"timestamp":135520792373,"id":77,"parentId":14,"tags":{},"startTime":1757915016242,"traceId":"61ce0652e28e4948"},{"name":"worker-main-server","duration":3815327,"timestamp":135516977761,"id":14,"parentId":1,"tags":{},"startTime":1757915012427,"traceId":"61ce0652e28e4948"},{"name":"create-entrypoints","duration":77921,"timestamp":135523082408,"id":80,"parentId":78,"tags":{},"startTime":1757915018532,"traceId":"61ce0652e28e4948"},{"name":"generate-webpack-config","duration":1400586,"timestamp":135523160845,"id":81,"parentId":79,"tags":{},"startTime":1757915018610,"traceId":"61ce0652e28e4948"},{"name":"make","duration":589,"timestamp":135524842816,"id":83,"parentId":82,"tags":{},"startTime":1757915020292,"traceId":"61ce0652e28e4948"},{"name":"chunk-graph","duration":1584,"timestamp":135524849461,"id":85,"parentId":84,"tags":{},"startTime":1757915020299,"traceId":"61ce0652e28e4948"},{"name":"optimize-modules","duration":63,"timestamp":135524851328,"id":87,"parentId":84,"tags":{},"startTime":1757915020300,"traceId":"61ce0652e28e4948"},{"name":"optimize-chunks","duration":1763,"timestamp":135524851565,"id":88,"parentId":84,"tags":{},"startTime":1757915020301,"traceId":"61ce0652e28e4948"},{"name":"optimize-tree","duration":233,"timestamp":135524853479,"id":89,"parentId":84,"tags":{},"startTime":1757915020303,"traceId":"61ce0652e28e4948"},{"name":"optimize-chunk-modules","duration":1113,"timestamp":135524854110,"id":90,"parentId":84,"tags":{},"startTime":1757915020303,"traceId":"61ce0652e28e4948"},{"name":"optimize","duration":4191,"timestamp":135524851207,"id":86,"parentId":84,"tags":{},"startTime":1757915020300,"traceId":"61ce0652e28e4948"},{"name":"module-hash","duration":167,"timestamp":135524857310,"id":91,"parentId":84,"tags":{},"startTime":1757915020306,"traceId":"61ce0652e28e4948"},{"name":"code-generation","duration":391,"timestamp":135524857558,"id":92,"parentId":84,"tags":{},"startTime":1757915020307,"traceId":"61ce0652e28e4948"},{"name":"hash","duration":737,"timestamp":135524858421,"id":93,"parentId":84,"tags":{},"startTime":1757915020308,"traceId":"61ce0652e28e4948"},{"name":"code-generation-jobs","duration":245,"timestamp":135524859152,"id":94,"parentId":84,"tags":{},"startTime":1757915020308,"traceId":"61ce0652e28e4948"},{"name":"module-assets","duration":159,"timestamp":135524859337,"id":95,"parentId":84,"tags":{},"startTime":1757915020308,"traceId":"61ce0652e28e4948"},{"name":"create-chunk-assets","duration":347,"timestamp":135524859514,"id":96,"parentId":84,"tags":{},"startTime":1757915020309,"traceId":"61ce0652e28e4948"},{"name":"minify-js","duration":324,"timestamp":135524886423,"id":98,"parentId":97,"tags":{"name":"interception-route-rewrite-manifest.js","cache":"HIT"},"startTime":1757915020336,"traceId":"61ce0652e28e4948"},{"name":"minify-webpack-plugin-optimize","duration":6111,"timestamp":135524880655,"id":97,"parentId":82,"tags":{"compilationName":"edge-server","mangle":"[object Object]"},"startTime":1757915020330,"traceId":"61ce0652e28e4948"},{"name":"css-minimizer-plugin","duration":218,"timestamp":135524886935,"id":99,"parentId":82,"tags":{},"startTime":1757915020336,"traceId":"61ce0652e28e4948"},{"name":"seal","duration":43458,"timestamp":135524848067,"id":84,"parentId":82,"tags":{},"startTime":1757915020297,"traceId":"61ce0652e28e4948"},{"name":"webpack-compilation","duration":64345,"timestamp":135524827688,"id":82,"parentId":79,"tags":{"name":"edge-server"},"startTime":1757915020277,"traceId":"61ce0652e28e4948"},{"name":"emit","duration":4260,"timestamp":135524892758,"id":100,"parentId":79,"tags":{},"startTime":1757915020342,"traceId":"61ce0652e28e4948"},{"name":"webpack-close","duration":2193,"timestamp":135524899912,"id":101,"parentId":79,"tags":{"name":"edge-server"},"startTime":1757915020349,"traceId":"61ce0652e28e4948"},{"name":"webpack-generate-error-stats","duration":4638,"timestamp":135524902208,"id":102,"parentId":101,"tags":{},"startTime":1757915020351,"traceId":"61ce0652e28e4948"},{"name":"run-webpack-compiler","duration":1824627,"timestamp":135523082395,"id":79,"parentId":78,"tags":{},"startTime":1757915018532,"traceId":"61ce0652e28e4948"},{"name":"format-webpack-messages","duration":204,"timestamp":135524907034,"id":103,"parentId":78,"tags":{},"startTime":1757915020356,"traceId":"61ce0652e28e4948"},{"name":"worker-main-edge-server","duration":1826227,"timestamp":135523081348,"id":78,"parentId":1,"tags":{},"startTime":1757915018530,"traceId":"61ce0652e28e4948"},{"name":"create-entrypoints","duration":37472,"timestamp":135526329943,"id":106,"parentId":104,"tags":{},"startTime":1757915021779,"traceId":"61ce0652e28e4948"},{"name":"generate-webpack-config","duration":731502,"timestamp":135526367946,"id":107,"parentId":105,"tags":{},"startTime":1757915021817,"traceId":"61ce0652e28e4948"}] +[{"name":"add-entry","duration":785206,"timestamp":135527461737,"id":111,"parentId":109,"tags":{"request":"next-client-pages-loader?absolutePagePath=private-next-pages%2F_app.tsx&page=%2F_app!"},"startTime":1757915022911,"traceId":"61ce0652e28e4948"},{"name":"add-entry","duration":785364,"timestamp":135527461961,"id":113,"parentId":109,"tags":{"request":"next-client-pages-loader?absolutePagePath=next%2Fdist%2Fpages%2F_error&page=%2F_error!"},"startTime":1757915022911,"traceId":"61ce0652e28e4948"},{"name":"add-entry","duration":785513,"timestamp":135527461872,"id":112,"parentId":109,"tags":{"request":"D:\\dongyun-projects\\two\\node_modules\\next\\dist\\client\\router.js"},"startTime":1757915022911,"traceId":"61ce0652e28e4948"},{"name":"add-entry","duration":791902,"timestamp":135527463017,"id":121,"parentId":109,"tags":{"request":"next-client-pages-loader?absolutePagePath=private-next-pages%2Fnews%2F%5Bslug%5D.tsx&page=%2Fnews%2F%5Bslug%5D!"},"startTime":1757915022912,"traceId":"61ce0652e28e4948"},{"name":"add-entry","duration":792760,"timestamp":135527462259,"id":114,"parentId":109,"tags":{"request":"next-client-pages-loader?absolutePagePath=private-next-pages%2Fabout.tsx&page=%2Fabout!"},"startTime":1757915022911,"traceId":"61ce0652e28e4948"},{"name":"add-entry","duration":792704,"timestamp":135527462377,"id":116,"parentId":109,"tags":{"request":"next-client-pages-loader?absolutePagePath=private-next-pages%2Fcontact.tsx&page=%2Fcontact!"},"startTime":1757915022912,"traceId":"61ce0652e28e4948"},{"name":"add-entry","duration":792110,"timestamp":135527463027,"id":122,"parentId":109,"tags":{"request":"next-client-pages-loader?absolutePagePath=private-next-pages%2Fnews.tsx&page=%2Fnews!"},"startTime":1757915022912,"traceId":"61ce0652e28e4948"},{"name":"add-entry","duration":793226,"timestamp":135527462338,"id":115,"parentId":109,"tags":{"request":"next-client-pages-loader?absolutePagePath=private-next-pages%2Fcases.tsx&page=%2Fcases!"},"startTime":1757915022912,"traceId":"61ce0652e28e4948"},{"name":"add-entry","duration":792713,"timestamp":135527462991,"id":120,"parentId":109,"tags":{"request":"next-client-pages-loader?absolutePagePath=private-next-pages%2Fpricing.tsx&page=%2Fpricing!"},"startTime":1757915022912,"traceId":"61ce0652e28e4948"},{"name":"add-entry","duration":793391,"timestamp":135527462414,"id":117,"parentId":109,"tags":{"request":"next-client-pages-loader?absolutePagePath=private-next-pages%2Ffeatures.tsx&page=%2Ffeatures!"},"startTime":1757915022912,"traceId":"61ce0652e28e4948"},{"name":"add-entry","duration":793385,"timestamp":135527462445,"id":118,"parentId":109,"tags":{"request":"next-client-pages-loader?absolutePagePath=private-next-pages%2Findex.tsx&page=%2F!"},"startTime":1757915022912,"traceId":"61ce0652e28e4948"},{"name":"add-entry","duration":796791,"timestamp":135527459069,"id":110,"parentId":109,"tags":{"request":"./node_modules/next/dist/client/next.js"},"startTime":1757915022908,"traceId":"61ce0652e28e4948"},{"name":"add-entry","duration":793958,"timestamp":135527462887,"id":119,"parentId":109,"tags":{"request":"next-client-pages-loader?absolutePagePath=private-next-pages%2Flogin.tsx&page=%2Flogin!"},"startTime":1757915022912,"traceId":"61ce0652e28e4948"},{"name":"make","duration":801296,"timestamp":135527456619,"id":109,"parentId":108,"tags":{},"startTime":1757915022906,"traceId":"61ce0652e28e4948"},{"name":"chunk-graph","duration":22298,"timestamp":135528322541,"id":124,"parentId":123,"tags":{},"startTime":1757915023772,"traceId":"61ce0652e28e4948"},{"name":"optimize-modules","duration":103,"timestamp":135528345230,"id":126,"parentId":123,"tags":{},"startTime":1757915023794,"traceId":"61ce0652e28e4948"},{"name":"optimize-chunks","duration":35346,"timestamp":135528345615,"id":127,"parentId":123,"tags":{},"startTime":1757915023795,"traceId":"61ce0652e28e4948"},{"name":"optimize-tree","duration":506,"timestamp":135528381225,"id":128,"parentId":123,"tags":{},"startTime":1757915023830,"traceId":"61ce0652e28e4948"},{"name":"optimize-chunk-modules","duration":47763,"timestamp":135528382753,"id":129,"parentId":123,"tags":{},"startTime":1757915023832,"traceId":"61ce0652e28e4948"},{"name":"optimize","duration":85988,"timestamp":135528345048,"id":125,"parentId":123,"tags":{},"startTime":1757915023794,"traceId":"61ce0652e28e4948"},{"name":"module-hash","duration":54668,"timestamp":135528487318,"id":130,"parentId":123,"tags":{},"startTime":1757915023937,"traceId":"61ce0652e28e4948"},{"name":"code-generation","duration":9649,"timestamp":135528542153,"id":131,"parentId":123,"tags":{},"startTime":1757915023991,"traceId":"61ce0652e28e4948"},{"name":"hash","duration":65032,"timestamp":135528573422,"id":132,"parentId":123,"tags":{},"startTime":1757915024023,"traceId":"61ce0652e28e4948"},{"name":"code-generation-jobs","duration":2170,"timestamp":135528638444,"id":133,"parentId":123,"tags":{},"startTime":1757915024088,"traceId":"61ce0652e28e4948"},{"name":"module-assets","duration":1924,"timestamp":135528640274,"id":134,"parentId":123,"tags":{},"startTime":1757915024089,"traceId":"61ce0652e28e4948"},{"name":"create-chunk-assets","duration":18369,"timestamp":135528642304,"id":135,"parentId":123,"tags":{},"startTime":1757915024092,"traceId":"61ce0652e28e4948"},{"name":"NextJsBuildManifest-generateClientManifest","duration":7717,"timestamp":135528678130,"id":137,"parentId":108,"tags":{},"startTime":1757915024127,"traceId":"61ce0652e28e4948"},{"name":"NextJsBuildManifest-createassets","duration":13890,"timestamp":135528672010,"id":136,"parentId":108,"tags":{},"startTime":1757915024121,"traceId":"61ce0652e28e4948"},{"name":"minify-js","duration":3747,"timestamp":135528709192,"id":139,"parentId":138,"tags":{"name":"static/chunks/main-864c60fbb6041a6c.js","cache":"HIT"},"startTime":1757915024158,"traceId":"61ce0652e28e4948"},{"name":"minify-js","duration":3210,"timestamp":135528709752,"id":140,"parentId":138,"tags":{"name":"static/chunks/pages/_app-d010fa8501b72db7.js","cache":"HIT"},"startTime":1757915024159,"traceId":"61ce0652e28e4948"},{"name":"minify-js","duration":3117,"timestamp":135528709849,"id":141,"parentId":138,"tags":{"name":"static/chunks/pages/_error-508916c159404f2b.js","cache":"HIT"},"startTime":1757915024159,"traceId":"61ce0652e28e4948"},{"name":"minify-js","duration":3076,"timestamp":135528709894,"id":142,"parentId":138,"tags":{"name":"static/chunks/pages/about-20c50d92f2b67f92.js","cache":"HIT"},"startTime":1757915024159,"traceId":"61ce0652e28e4948"},{"name":"minify-js","duration":3046,"timestamp":135528709928,"id":143,"parentId":138,"tags":{"name":"static/chunks/pages/cases-a22429f995d91658.js","cache":"HIT"},"startTime":1757915024159,"traceId":"61ce0652e28e4948"},{"name":"minify-js","duration":3015,"timestamp":135528709961,"id":144,"parentId":138,"tags":{"name":"static/chunks/pages/contact-63a602c898fe1bd8.js","cache":"HIT"},"startTime":1757915024159,"traceId":"61ce0652e28e4948"},{"name":"minify-js","duration":2992,"timestamp":135528709987,"id":145,"parentId":138,"tags":{"name":"static/chunks/pages/features-c16104c38e1d41a1.js","cache":"HIT"},"startTime":1757915024159,"traceId":"61ce0652e28e4948"},{"name":"minify-js","duration":2972,"timestamp":135528710011,"id":146,"parentId":138,"tags":{"name":"static/chunks/pages/index-106d67ad5d973aaa.js","cache":"HIT"},"startTime":1757915024159,"traceId":"61ce0652e28e4948"},{"name":"minify-js","duration":2930,"timestamp":135528710056,"id":147,"parentId":138,"tags":{"name":"static/chunks/pages/login-6fb54e456dd6ae39.js","cache":"HIT"},"startTime":1757915024159,"traceId":"61ce0652e28e4948"},{"name":"minify-js","duration":2645,"timestamp":135528710358,"id":148,"parentId":138,"tags":{"name":"static/chunks/pages/pricing-a54fc9e0c508c28a.js","cache":"HIT"},"startTime":1757915024160,"traceId":"61ce0652e28e4948"},{"name":"minify-js","duration":2567,"timestamp":135528710441,"id":149,"parentId":138,"tags":{"name":"static/chunks/pages/news/[slug]-e49ed9099bd33fb5.js","cache":"HIT"},"startTime":1757915024160,"traceId":"61ce0652e28e4948"},{"name":"minify-js","duration":2523,"timestamp":135528710488,"id":150,"parentId":138,"tags":{"name":"static/chunks/pages/news-2c413ae0969c01db.js","cache":"HIT"},"startTime":1757915024160,"traceId":"61ce0652e28e4948"},{"name":"minify-js","duration":2495,"timestamp":135528710518,"id":151,"parentId":138,"tags":{"name":"static/chunks/webpack-a5664a727b6e6e4d.js","cache":"HIT"},"startTime":1757915024160,"traceId":"61ce0652e28e4948"},{"name":"minify-js","duration":2479,"timestamp":135528710537,"id":152,"parentId":138,"tags":{"name":"static/chunks/100.1738b77ff099c511.js","cache":"HIT"},"startTime":1757915024160,"traceId":"61ce0652e28e4948"},{"name":"minify-js","duration":2462,"timestamp":135528710559,"id":153,"parentId":138,"tags":{"name":"static/chunks/57.b96581a532751a82.js","cache":"HIT"},"startTime":1757915024160,"traceId":"61ce0652e28e4948"},{"name":"minify-js","duration":2440,"timestamp":135528710584,"id":154,"parentId":138,"tags":{"name":"static/chunks/framework-c2d63e3daabf35c2.js","cache":"HIT"},"startTime":1757915024160,"traceId":"61ce0652e28e4948"},{"name":"minify-js","duration":2420,"timestamp":135528710607,"id":155,"parentId":138,"tags":{"name":"static/chunks/822-9add010b17ee2e55.js","cache":"HIT"},"startTime":1757915024160,"traceId":"61ce0652e28e4948"},{"name":"minify-js","duration":2404,"timestamp":135528710626,"id":156,"parentId":138,"tags":{"name":"static/chunks/0-0a1136b7ffe4972c.js","cache":"HIT"},"startTime":1757915024160,"traceId":"61ce0652e28e4948"},{"name":"minify-js","duration":2389,"timestamp":135528710645,"id":157,"parentId":138,"tags":{"name":"static/chunks/137-670ca5080e02c25d.js","cache":"HIT"},"startTime":1757915024160,"traceId":"61ce0652e28e4948"},{"name":"minify-js","duration":2372,"timestamp":135528710665,"id":158,"parentId":138,"tags":{"name":"static/chunks/918-fee9358705239b9f.js","cache":"HIT"},"startTime":1757915024160,"traceId":"61ce0652e28e4948"},{"name":"minify-js","duration":2357,"timestamp":135528710683,"id":159,"parentId":138,"tags":{"name":"server/middleware-react-loadable-manifest.js","cache":"HIT"},"startTime":1757915024160,"traceId":"61ce0652e28e4948"},{"name":"minify-js","duration":2280,"timestamp":135528710763,"id":160,"parentId":138,"tags":{"name":"server/dynamic-css-manifest.js","cache":"HIT"},"startTime":1757915024160,"traceId":"61ce0652e28e4948"},{"name":"minify-js","duration":346,"timestamp":135528712701,"id":162,"parentId":138,"tags":{"name":"server/middleware-build-manifest.js","cache":"HIT"},"startTime":1757915024162,"traceId":"61ce0652e28e4948"},{"name":"minify-js","duration":147,"timestamp":135528712903,"id":164,"parentId":138,"tags":{"name":"server/next-font-manifest.js","cache":"HIT"},"startTime":1757915024162,"traceId":"61ce0652e28e4948"},{"name":"minify-js","duration":82126,"timestamp":135528710783,"id":161,"parentId":138,"tags":{"name":"static/BC55hDkCbKdePlWWvs1u_/_ssgManifest.js","cache":"MISS"},"startTime":1757915024160,"traceId":"61ce0652e28e4948"},{"name":"minify-js","duration":80340,"timestamp":135528712765,"id":163,"parentId":138,"tags":{"name":"static/BC55hDkCbKdePlWWvs1u_/_buildManifest.js","cache":"MISS"},"startTime":1757915024162,"traceId":"61ce0652e28e4948"},{"name":"minify-webpack-plugin-optimize","duration":105078,"timestamp":135528688055,"id":138,"parentId":108,"tags":{"compilationName":"client","mangle":"[object Object]"},"startTime":1757915024137,"traceId":"61ce0652e28e4948"},{"name":"minify-css","duration":219,"timestamp":135528793954,"id":166,"parentId":165,"tags":{"file":"static/css/9e8273561a9c0a14.css","cache":"HIT"},"startTime":1757915024243,"traceId":"61ce0652e28e4948"},{"name":"css-minimizer-plugin","duration":646,"timestamp":135528793538,"id":165,"parentId":108,"tags":{},"startTime":1757915024243,"traceId":"61ce0652e28e4948"},{"name":"seal","duration":522054,"timestamp":135528293603,"id":123,"parentId":108,"tags":{},"startTime":1757915023743,"traceId":"61ce0652e28e4948"},{"name":"webpack-compilation","duration":1392991,"timestamp":135527423586,"id":108,"parentId":105,"tags":{"name":"client"},"startTime":1757915022873,"traceId":"61ce0652e28e4948"},{"name":"emit","duration":26895,"timestamp":135528817860,"id":167,"parentId":105,"tags":{},"startTime":1757915024267,"traceId":"61ce0652e28e4948"},{"name":"webpack-close","duration":251890,"timestamp":135528848481,"id":168,"parentId":105,"tags":{"name":"client"},"startTime":1757915024298,"traceId":"61ce0652e28e4948"},{"name":"webpack-generate-error-stats","duration":8541,"timestamp":135529100535,"id":169,"parentId":168,"tags":{},"startTime":1757915024550,"traceId":"61ce0652e28e4948"},{"name":"run-webpack-compiler","duration":2779784,"timestamp":135526329934,"id":105,"parentId":104,"tags":{},"startTime":1757915021779,"traceId":"61ce0652e28e4948"},{"name":"format-webpack-messages","duration":260,"timestamp":135529109741,"id":170,"parentId":104,"tags":{},"startTime":1757915024559,"traceId":"61ce0652e28e4948"},{"name":"worker-main-client","duration":2781124,"timestamp":135526329324,"id":104,"parentId":1,"tags":{},"startTime":1757915021779,"traceId":"61ce0652e28e4948"},{"name":"check-static-error-page","duration":13154,"timestamp":135529748754,"id":174,"parentId":173,"tags":{},"startTime":1757915025198,"traceId":"61ce0652e28e4948"},{"name":"check-page","duration":3652,"timestamp":135530156423,"id":177,"parentId":173,"tags":{"page":"/_document"},"startTime":1757915025606,"traceId":"61ce0652e28e4948"},{"name":"check-page","duration":4700,"timestamp":135530156174,"id":176,"parentId":173,"tags":{"page":"/_error"},"startTime":1757915025606,"traceId":"61ce0652e28e4948"},{"name":"check-page","duration":8957,"timestamp":135530153741,"id":175,"parentId":173,"tags":{"page":"/_app"},"startTime":1757915025603,"traceId":"61ce0652e28e4948"},{"name":"check-page","duration":6302,"timestamp":135530156602,"id":179,"parentId":173,"tags":{"page":"/api/sitemap/[lang]"},"startTime":1757915025606,"traceId":"61ce0652e28e4948"},{"name":"is-page-static","duration":1890866,"timestamp":135530165399,"id":193,"parentId":184,"tags":{},"startTime":1757915025615,"traceId":"61ce0652e28e4948"},{"name":"check-page","duration":1899167,"timestamp":135530157258,"id":184,"parentId":173,"tags":{"page":"/login"},"startTime":1757915025607,"traceId":"61ce0652e28e4948"},{"name":"is-page-static","duration":1968060,"timestamp":135530163232,"id":188,"parentId":178,"tags":{},"startTime":1757915025613,"traceId":"61ce0652e28e4948"},{"name":"check-page","duration":1974982,"timestamp":135530156515,"id":178,"parentId":173,"tags":{"page":"/about"},"startTime":1757915025606,"traceId":"61ce0652e28e4948"},{"name":"is-page-static","duration":2044959,"timestamp":135530248844,"id":194,"parentId":187,"tags":{},"startTime":1757915025698,"traceId":"61ce0652e28e4948"},{"name":"check-page","duration":2136352,"timestamp":135530157523,"id":187,"parentId":173,"tags":{"page":"/pricing"},"startTime":1757915025607,"traceId":"61ce0652e28e4948"},{"name":"is-page-static","duration":2162682,"timestamp":135530164190,"id":189,"parentId":180,"tags":{},"startTime":1757915025614,"traceId":"61ce0652e28e4948"},{"name":"check-page","duration":2170410,"timestamp":135530156681,"id":180,"parentId":173,"tags":{"page":"/cases"},"startTime":1757915025606,"traceId":"61ce0652e28e4948"},{"name":"is-page-static","duration":2041248,"timestamp":135530348852,"id":196,"parentId":185,"tags":{},"startTime":1757915025798,"traceId":"61ce0652e28e4948"},{"name":"check-page","duration":2233540,"timestamp":135530157379,"id":185,"parentId":173,"tags":{"page":"/news"},"startTime":1757915025607,"traceId":"61ce0652e28e4948"},{"name":"is-page-static","duration":2078076,"timestamp":135530341720,"id":195,"parentId":186,"tags":{},"startTime":1757915025791,"traceId":"61ce0652e28e4948"},{"name":"check-page","duration":2262654,"timestamp":135530157458,"id":186,"parentId":173,"tags":{"page":"/news/[slug]"},"startTime":1757915025607,"traceId":"61ce0652e28e4948"},{"name":"is-page-static","duration":2336919,"timestamp":135530164903,"id":191,"parentId":182,"tags":{},"startTime":1757915025615,"traceId":"61ce0652e28e4948"},{"name":"check-page","duration":2345153,"timestamp":135530156799,"id":182,"parentId":173,"tags":{"page":"/features"},"startTime":1757915025606,"traceId":"61ce0652e28e4948"},{"name":"is-page-static","duration":2412024,"timestamp":135530165253,"id":192,"parentId":183,"tags":{},"startTime":1757915025615,"traceId":"61ce0652e28e4948"},{"name":"check-page","duration":2420377,"timestamp":135530156943,"id":183,"parentId":173,"tags":{"page":"/"},"startTime":1757915025607,"traceId":"61ce0652e28e4948"},{"name":"is-page-static","duration":2496735,"timestamp":135530164658,"id":190,"parentId":181,"tags":{},"startTime":1757915025614,"traceId":"61ce0652e28e4948"},{"name":"check-page","duration":2504729,"timestamp":135530156742,"id":181,"parentId":173,"tags":{"page":"/contact"},"startTime":1757915025606,"traceId":"61ce0652e28e4948"},{"name":"static-check","duration":2914214,"timestamp":135529747338,"id":173,"parentId":1,"tags":{},"startTime":1757915025197,"traceId":"61ce0652e28e4948"},{"name":"generate-required-server-files","duration":1502,"timestamp":135532662583,"id":198,"parentId":1,"tags":{},"startTime":1757915028112,"traceId":"61ce0652e28e4948"},{"name":"write-routes-manifest","duration":19310,"timestamp":135532712763,"id":200,"parentId":1,"tags":{},"startTime":1757915028162,"traceId":"61ce0652e28e4948"},{"name":"load-dotenv","duration":118,"timestamp":135535188299,"id":203,"parentId":202,"tags":{},"startTime":1757915030638,"traceId":"61ce0652e28e4948"},{"name":"run-export-path-map","duration":823,"timestamp":135536322603,"id":204,"parentId":202,"tags":{},"startTime":1757915031772,"traceId":"61ce0652e28e4948"},{"name":"next-export","duration":5233775,"timestamp":135535184109,"id":202,"parentId":1,"tags":{},"startTime":1757915030634,"traceId":"61ce0652e28e4948"},{"name":"move-exported-page","duration":123741,"timestamp":135540735294,"id":205,"parentId":201,"tags":{},"startTime":1757915036185,"traceId":"61ce0652e28e4948"},{"name":"move-exported-page","duration":102789,"timestamp":135540859062,"id":206,"parentId":201,"tags":{},"startTime":1757915036309,"traceId":"61ce0652e28e4948"},{"name":"move-exported-page","duration":130461,"timestamp":135540962005,"id":207,"parentId":201,"tags":{},"startTime":1757915036412,"traceId":"61ce0652e28e4948"},{"name":"move-exported-page","duration":135255,"timestamp":135541092582,"id":208,"parentId":201,"tags":{},"startTime":1757915036542,"traceId":"61ce0652e28e4948"},{"name":"move-exported-page","duration":112493,"timestamp":135541227993,"id":209,"parentId":201,"tags":{},"startTime":1757915036678,"traceId":"61ce0652e28e4948"},{"name":"move-exported-page","duration":196465,"timestamp":135541340697,"id":210,"parentId":201,"tags":{},"startTime":1757915036790,"traceId":"61ce0652e28e4948"},{"name":"move-exported-page","duration":64029,"timestamp":135541537281,"id":211,"parentId":201,"tags":{},"startTime":1757915036987,"traceId":"61ce0652e28e4948"}] +[{"name":"move-exported-page","duration":51232,"timestamp":135541601809,"id":212,"parentId":201,"tags":{},"startTime":1757915037051,"traceId":"61ce0652e28e4948"},{"name":"move-exported-page","duration":72057,"timestamp":135541653128,"id":213,"parentId":201,"tags":{},"startTime":1757915037103,"traceId":"61ce0652e28e4948"},{"name":"move-exported-page","duration":47038,"timestamp":135541725275,"id":214,"parentId":201,"tags":{},"startTime":1757915037175,"traceId":"61ce0652e28e4948"},{"name":"move-exported-page","duration":39122,"timestamp":135541772341,"id":215,"parentId":201,"tags":{},"startTime":1757915037222,"traceId":"61ce0652e28e4948"},{"name":"move-exported-page","duration":130400,"timestamp":135541811849,"id":216,"parentId":201,"tags":{},"startTime":1757915037261,"traceId":"61ce0652e28e4948"},{"name":"move-exported-page","duration":46522,"timestamp":135541942278,"id":217,"parentId":201,"tags":{},"startTime":1757915037392,"traceId":"61ce0652e28e4948"},{"name":"move-exported-page","duration":93027,"timestamp":135541988996,"id":218,"parentId":201,"tags":{},"startTime":1757915037439,"traceId":"61ce0652e28e4948"},{"name":"move-exported-page","duration":64003,"timestamp":135542082052,"id":219,"parentId":201,"tags":{},"startTime":1757915037532,"traceId":"61ce0652e28e4948"},{"name":"move-exported-page","duration":68576,"timestamp":135542146248,"id":220,"parentId":201,"tags":{},"startTime":1757915037596,"traceId":"61ce0652e28e4948"},{"name":"move-exported-page","duration":61297,"timestamp":135542214854,"id":221,"parentId":201,"tags":{},"startTime":1757915037664,"traceId":"61ce0652e28e4948"},{"name":"move-exported-page","duration":112686,"timestamp":135542276366,"id":222,"parentId":201,"tags":{},"startTime":1757915037726,"traceId":"61ce0652e28e4948"},{"name":"move-exported-page","duration":55095,"timestamp":135542389087,"id":223,"parentId":201,"tags":{},"startTime":1757915037839,"traceId":"61ce0652e28e4948"},{"name":"move-exported-page","duration":1206031,"timestamp":135542444362,"id":224,"parentId":201,"tags":{},"startTime":1757915037894,"traceId":"61ce0652e28e4948"},{"name":"move-exported-page","duration":42243,"timestamp":135543650421,"id":225,"parentId":201,"tags":{},"startTime":1757915039100,"traceId":"61ce0652e28e4948"},{"name":"static-generation","duration":10681444,"timestamp":135535151615,"id":201,"parentId":1,"tags":{},"startTime":1757915030601,"traceId":"61ce0652e28e4948"},{"name":"write-routes-manifest","duration":270233,"timestamp":135545833095,"id":226,"parentId":1,"tags":{},"startTime":1757915041283,"traceId":"61ce0652e28e4948"},{"name":"node-file-trace-build","duration":23002027,"timestamp":135532676744,"id":199,"parentId":1,"tags":{"isTurbotrace":"false"},"startTime":1757915028126,"traceId":"61ce0652e28e4948"},{"name":"apply-include-excludes","duration":2766,"timestamp":135555678798,"id":227,"parentId":1,"tags":{},"startTime":1757915051128,"traceId":"61ce0652e28e4948"},{"name":"load-dotenv","duration":26,"timestamp":135555682798,"id":229,"parentId":228,"tags":{},"startTime":1757915051132,"traceId":"61ce0652e28e4948"},{"name":"copy-next-static-directory","duration":18769,"timestamp":135555751312,"id":230,"parentId":228,"tags":{},"startTime":1757915051201,"traceId":"61ce0652e28e4948"},{"name":"is-next-image-imported","duration":991,"timestamp":135555770160,"id":231,"parentId":228,"tags":{},"startTime":1757915051220,"traceId":"61ce0652e28e4948"},{"name":"run-export-path-map","duration":94,"timestamp":135555771518,"id":232,"parentId":228,"tags":{},"startTime":1757915051221,"traceId":"61ce0652e28e4948"},{"name":"copy-public-directory","duration":4668,"timestamp":135555773956,"id":233,"parentId":228,"tags":{},"startTime":1757915051224,"traceId":"61ce0652e28e4948"},{"name":"next-export","duration":2562638,"timestamp":135555682783,"id":228,"parentId":1,"tags":{},"startTime":1757915051132,"traceId":"61ce0652e28e4948"},{"name":"print-tree-view","duration":12798,"timestamp":135558246131,"id":234,"parentId":1,"tags":{},"startTime":1757915053696,"traceId":"61ce0652e28e4948"},{"name":"telemetry-flush","duration":210,"timestamp":135558258985,"id":235,"parentId":1,"tags":{},"startTime":1757915053709,"traceId":"61ce0652e28e4948"},{"name":"next-build","duration":53979686,"timestamp":135504279538,"id":1,"tags":{"buildMode":"default","isTurboBuild":"false","version":"15.4.1","has-custom-webpack-config":"false","use-build-worker":"true"},"startTime":1757914999729,"traceId":"61ce0652e28e4948"}] diff --git a/DEPLOYMENT.md b/DEPLOYMENT.md new file mode 100644 index 0000000..eca6a24 --- /dev/null +++ b/DEPLOYMENT.md @@ -0,0 +1,181 @@ +# Pinnovate Cloud 部署指南 + +## 快速部署 + +### 使用 PowerShell 脚本(推荐) + +```powershell +# 静态网站部署 +.\deploy.ps1 -Platform static + +# Vercel 部署 +.\deploy.ps1 -Platform vercel + +# Netlify 部署 +.\deploy.ps1 -Platform netlify + +# GitHub Pages 部署 +.\deploy.ps1 -Platform github + +# Docker 部署 +.\deploy.ps1 -Platform docker +``` + +### 手动部署 + +#### 1. 静态网站部署 + +```bash +# 安装依赖 +npm ci + +# 构建静态网站 +npm run build:static + +# 部署 out/ 目录到任何静态文件服务器 +``` + +#### 2. Vercel 部署 + +```bash +# 安装 Vercel CLI +npm i -g vercel + +# 部署 +vercel --prod +``` + +#### 3. Netlify 部署 + +```bash +# 安装 Netlify CLI +npm i -g netlify-cli + +# 构建并部署 +npm run build:static +netlify deploy --prod --dir=out +``` + +#### 4. Docker 部署 + +```bash +# 构建镜像 +docker build -t pinnovate-cloud . + +# 运行容器 +docker run -p 80:80 pinnovate-cloud + +# 或使用 Docker Compose +docker-compose up -d +``` + +#### 5. GitHub Pages 部署 + +1. 推送代码到 GitHub 仓库 +2. 启用 GitHub Pages +3. 选择 GitHub Actions 作为源 +4. 工作流将自动构建和部署 + +## 部署前检查 + +### 1. 环境要求 + +- Node.js 18+ +- npm 8+ +- Git + +### 2. 构建测试 + +```bash +# 类型检查 +npx tsc --noEmit + +# 构建测试 +npm run build + +# 静态构建测试 +npm run build:static +``` + +### 3. 本地预览 + +```bash +# 开发模式 +npm run dev + +# 生产模式预览 +npm run build +npm run start +``` + +## 部署配置 + +### 环境变量 + +创建 `.env.local` 文件: + +```env +NEXT_PUBLIC_SITE_URL=https://yourdomain.com +NEXT_PUBLIC_CONTACT_EMAIL=support@pinnovatecloud.com +NEXT_PUBLIC_WHATSAPP=+19174029875 +NEXT_PUBLIC_TELEGRAM=@pinnovatecloud +``` + +### 域名配置 + +1. **自定义域名**:在部署平台配置自定义域名 +2. **SSL 证书**:大多数平台自动提供 SSL +3. **DNS 设置**:配置 CNAME 或 A 记录 + +## 监控和维护 + +### 1. 性能监控 + +- 使用 Vercel Analytics +- 配置 Google Analytics +- 设置 Core Web Vitals 监控 + +### 2. 错误监控 + +- 集成 Sentry 错误监控 +- 设置错误告警 +- 定期检查日志 + +### 3. 内容更新 + +- 新闻内容:编辑 `content/news/` 目录下的 Markdown 文件 +- 联系信息:更新 `components/Contact.tsx` +- 公司信息:更新 `components/About.tsx` + +## 故障排除 + +### 常见问题 + +1. **构建失败** + - 检查 TypeScript 错误:`npx tsc --noEmit` + - 检查依赖版本兼容性 + - 清理缓存:`npm run clean` + +2. **部署失败** + - 检查环境变量配置 + - 验证构建输出 + - 查看部署日志 + +3. **页面无法访问** + - 检查域名配置 + - 验证 SSL 证书 + - 检查 CDN 缓存 + +### 获取帮助 + +- 📧 邮箱:support@pinnovatecloud.com +- 💬 WhatsApp:+1 917-402-9875 +- 📱 Telegram:@pinnovatecloud + +## 更新日志 + +- v1.0.0 - 初始版本,支持静态网站生成 +- 支持多种部署平台 +- 完整的响应式设计 +- 集成表单处理 +- 内容管理系统 diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..8deb201 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,32 @@ +# 多阶段构建 +FROM node:18-alpine AS base + +# 安装依赖阶段 +FROM base AS deps +WORKDIR /app +COPY package*.json ./ +RUN npm ci --only=production + +# 构建阶段 +FROM base AS builder +WORKDIR /app +COPY package*.json ./ +RUN npm ci +COPY . . +RUN npm run build:static + +# 生产阶段 - 静态文件服务 +FROM nginx:alpine AS runner +WORKDIR /usr/share/nginx/html + +# 复制静态文件 +COPY --from=builder /app/out . + +# 复制 nginx 配置 +COPY nginx.conf /etc/nginx/nginx.conf + +# 暴露端口 +EXPOSE 80 + +# 启动 nginx +CMD ["nginx", "-g", "daemon off;"] diff --git a/README.md b/README.md index 1ea142f..c45fada 100644 --- a/README.md +++ b/README.md @@ -44,7 +44,32 @@ npm run dev ``` 访问 http://localhost:3000 +### 快速部署 +```bash +# 1. 生成静态文件 +npm run build:static + +# 2. 部署到 Vercel (推荐) +npx vercel + +# 3. 或部署到 Netlify +npx netlify deploy --dir=out --prod +``` + ### 构建与部署 + +#### 静态站点生成 (SSG) +```bash +# 生成静态文件 +npm run build:static + +# 或者使用传统方式 +npm run export +``` + +静态文件将生成在 `out/` 目录中,可以直接部署到任何静态托管服务。 + +#### 服务器端渲染 (SSR) ```bash # 构建生产版本 npm run build @@ -95,7 +120,14 @@ pinnovate-cloud/ ├── tailwind.config.js # Tailwind 配置 ├── next.config.js # Next.js 配置 ├── tsconfig.json # TypeScript 配置 -└── package.json # 项目依赖 +├── package.json # 项目依赖 +├── vercel.json # Vercel 部署配置 +├── netlify.toml # Netlify 部署配置 +├── Dockerfile # Docker 容器配置 +├── docker-compose.yml # Docker Compose 配置 +├── nginx.conf # Nginx 服务器配置 +└── .github/workflows/ # GitHub Actions 工作流 + └── deploy.yml ``` ## 🎯 核心功能 @@ -147,19 +179,140 @@ colors: { ## 🚀 部署建议 -### Vercel 部署 +### 静态站点部署 (推荐) + +#### 1. 生成静态文件 +```bash +# 生成静态文件到 out/ 目录 +npm run build:static +``` + +#### 2. 部署到各种平台 + +**Vercel (推荐)** ```bash # 安装 Vercel CLI npm i -g vercel # 部署到 Vercel vercel + +# 或者直接连接 GitHub 仓库自动部署 ``` -### 其他平台 -- **Netlify** - 支持静态站点部署 -- **AWS S3 + CloudFront** - 企业级部署方案 -- **Docker** - 容器化部署 +**Netlify** +```bash +# 方法1: 拖拽 out/ 目录到 Netlify +# 方法2: 连接 GitHub 仓库,设置构建命令: npm run build:static +# 方法3: 使用 Netlify CLI +npm i -g netlify-cli +netlify deploy --dir=out +``` + +**GitHub Pages** +```bash +# 1. 将 out/ 目录内容推送到 gh-pages 分支 +# 2. 在仓库设置中启用 GitHub Pages +# 3. 选择 gh-pages 分支作为源 +``` + +**AWS S3 + CloudFront** +```bash +# 1. 将 out/ 目录内容上传到 S3 存储桶 +# 2. 配置 CloudFront 分发 +# 3. 设置自定义域名和 SSL 证书 +``` + +**Nginx 静态托管** +```bash +# 1. 将 out/ 目录内容复制到 Nginx 网站根目录 +# 2. 配置 Nginx 虚拟主机 +# 3. 启用 gzip 压缩和缓存 +``` + +### 服务器端部署 + +#### Docker 部署 +```dockerfile +# Dockerfile +FROM node:18-alpine +WORKDIR /app +COPY package*.json ./ +RUN npm ci --only=production +COPY . . +RUN npm run build +EXPOSE 3000 +CMD ["npm", "start"] +``` + +```bash +# 构建和运行 +docker build -t pinnovate-cloud . +docker run -p 3000:3000 pinnovate-cloud +``` + +#### PM2 部署 +```bash +# 安装 PM2 +npm i -g pm2 + +# 构建项目 +npm run build + +# 使用 PM2 启动 +pm2 start npm --name "pinnovate-cloud" -- start + +# 保存 PM2 配置 +pm2 save +pm2 startup +``` + +### 部署配置 + +#### 环境变量 +创建 `.env.production` 文件: +```env +NODE_ENV=production +NEXT_PUBLIC_SITE_URL=https://yourdomain.com +NEXT_PUBLIC_API_URL=https://api.yourdomain.com +``` + +#### 性能优化 +- 启用 CDN 加速 +- 配置图片压缩 +- 启用 Gzip 压缩 +- 设置适当的缓存策略 + +### 部署配置文件 + +项目包含多种部署配置,可根据需要选择: + +#### Vercel 部署 +- `vercel.json` - Vercel 平台配置 +- 支持自动部署和预览 +- 包含安全头和缓存策略 + +#### Netlify 部署 +- `netlify.toml` - Netlify 平台配置 +- 支持表单处理和重定向 +- 包含构建命令和环境变量 + +#### Docker 部署 +- `Dockerfile` - 多阶段构建配置 +- `docker-compose.yml` - 容器编排配置 +- `nginx.conf` - Nginx 服务器配置 +- 支持生产环境部署 + +#### GitHub Actions +- `.github/workflows/deploy.yml` - 自动部署工作流 +- 支持 GitHub Pages 部署 +- 包含构建和部署步骤 + +### 监控和维护 +- 使用 Vercel Analytics 或 Google Analytics +- 配置错误监控 (Sentry) +- 设置性能监控 +- 定期更新依赖包 ## 📄 许可证 diff --git a/build/build-manifest.json b/build/build-manifest.json deleted file mode 100644 index c937272..0000000 --- a/build/build-manifest.json +++ /dev/null @@ -1,38 +0,0 @@ -{ - "polyfillFiles": [ - "static/chunks/polyfills.js" - ], - "devFiles": [ - "static/chunks/react-refresh.js" - ], - "ampDevFiles": [], - "lowPriorityFiles": [ - "static/development/_buildManifest.js", - "static/development/_ssgManifest.js" - ], - "rootMainFiles": [], - "rootMainFilesTree": {}, - "pages": { - "/": [ - "static/chunks/webpack.js", - "static/chunks/main.js", - "static/chunks/pages/index.js" - ], - "/_app": [ - "static/chunks/webpack.js", - "static/chunks/main.js", - "static/chunks/pages/_app.js" - ], - "/_error": [ - "static/chunks/webpack.js", - "static/chunks/main.js", - "static/chunks/pages/_error.js" - ], - "/news": [ - "static/chunks/webpack.js", - "static/chunks/main.js", - "static/chunks/pages/news.js" - ] - }, - "ampFirstPages": [] -} \ No newline at end of file diff --git a/build/cache/.rscinfo b/build/cache/.rscinfo deleted file mode 100644 index c9010b8..0000000 --- a/build/cache/.rscinfo +++ /dev/null @@ -1 +0,0 @@ -{"encryption.key":"y2+Ayv+zY2OmriQM/MqHPYIZiLz48VRHox8V/XbrRSk=","encryption.expire_at":1758874756515} \ No newline at end of file diff --git a/build/cache/chrome-devtools-workspace-uuid b/build/cache/chrome-devtools-workspace-uuid deleted file mode 100644 index 2e1bcff..0000000 --- a/build/cache/chrome-devtools-workspace-uuid +++ /dev/null @@ -1 +0,0 @@ -557a90d3-5741-4229-8f97-aee2f62927aa \ No newline at end of file diff --git a/build/cache/webpack/client-development-fallback/0.pack.gz b/build/cache/webpack/client-development-fallback/0.pack.gz deleted file mode 100644 index 2d2bb37..0000000 Binary files a/build/cache/webpack/client-development-fallback/0.pack.gz and /dev/null differ diff --git a/build/cache/webpack/client-development-fallback/index.pack.gz b/build/cache/webpack/client-development-fallback/index.pack.gz deleted file mode 100644 index 8690e02..0000000 Binary files a/build/cache/webpack/client-development-fallback/index.pack.gz and /dev/null differ diff --git a/build/cache/webpack/client-development/0.pack.gz b/build/cache/webpack/client-development/0.pack.gz deleted file mode 100644 index 633b1a4..0000000 Binary files a/build/cache/webpack/client-development/0.pack.gz and /dev/null differ diff --git a/build/cache/webpack/client-development/1.pack.gz b/build/cache/webpack/client-development/1.pack.gz deleted file mode 100644 index a2f2210..0000000 Binary files a/build/cache/webpack/client-development/1.pack.gz and /dev/null differ diff --git a/build/cache/webpack/client-development/10.pack.gz b/build/cache/webpack/client-development/10.pack.gz deleted file mode 100644 index 3b42bfe..0000000 Binary files a/build/cache/webpack/client-development/10.pack.gz and /dev/null differ diff --git a/build/cache/webpack/client-development/11.pack.gz b/build/cache/webpack/client-development/11.pack.gz deleted file mode 100644 index f9dd8b4..0000000 Binary files a/build/cache/webpack/client-development/11.pack.gz and /dev/null differ diff --git a/build/cache/webpack/client-development/12.pack.gz b/build/cache/webpack/client-development/12.pack.gz deleted file mode 100644 index aa22ab7..0000000 Binary files a/build/cache/webpack/client-development/12.pack.gz and /dev/null differ diff --git a/build/cache/webpack/client-development/13.pack.gz b/build/cache/webpack/client-development/13.pack.gz deleted file mode 100644 index 157bb03..0000000 Binary files a/build/cache/webpack/client-development/13.pack.gz and /dev/null differ diff --git a/build/cache/webpack/client-development/14.pack.gz b/build/cache/webpack/client-development/14.pack.gz deleted file mode 100644 index 9d3a0f4..0000000 Binary files a/build/cache/webpack/client-development/14.pack.gz and /dev/null differ diff --git a/build/cache/webpack/client-development/15.pack.gz b/build/cache/webpack/client-development/15.pack.gz deleted file mode 100644 index 04d530a..0000000 Binary files a/build/cache/webpack/client-development/15.pack.gz and /dev/null differ diff --git a/build/cache/webpack/client-development/16.pack.gz b/build/cache/webpack/client-development/16.pack.gz deleted file mode 100644 index 6fdcfbe..0000000 Binary files a/build/cache/webpack/client-development/16.pack.gz and /dev/null differ diff --git a/build/cache/webpack/client-development/17.pack.gz b/build/cache/webpack/client-development/17.pack.gz deleted file mode 100644 index 57a52b7..0000000 Binary files a/build/cache/webpack/client-development/17.pack.gz and /dev/null differ diff --git a/build/cache/webpack/client-development/2.pack.gz b/build/cache/webpack/client-development/2.pack.gz deleted file mode 100644 index 05c518c..0000000 Binary files a/build/cache/webpack/client-development/2.pack.gz and /dev/null differ diff --git a/build/cache/webpack/client-development/3.pack.gz b/build/cache/webpack/client-development/3.pack.gz deleted file mode 100644 index 4c73800..0000000 Binary files a/build/cache/webpack/client-development/3.pack.gz and /dev/null differ diff --git a/build/cache/webpack/client-development/4.pack.gz b/build/cache/webpack/client-development/4.pack.gz deleted file mode 100644 index 31b854b..0000000 Binary files a/build/cache/webpack/client-development/4.pack.gz and /dev/null differ diff --git a/build/cache/webpack/client-development/5.pack.gz b/build/cache/webpack/client-development/5.pack.gz deleted file mode 100644 index 6b749cc..0000000 Binary files a/build/cache/webpack/client-development/5.pack.gz and /dev/null differ diff --git a/build/cache/webpack/client-development/6.pack.gz b/build/cache/webpack/client-development/6.pack.gz deleted file mode 100644 index 0d4b54a..0000000 Binary files a/build/cache/webpack/client-development/6.pack.gz and /dev/null differ diff --git a/build/cache/webpack/client-development/7.pack.gz b/build/cache/webpack/client-development/7.pack.gz deleted file mode 100644 index 0627562..0000000 Binary files a/build/cache/webpack/client-development/7.pack.gz and /dev/null differ diff --git a/build/cache/webpack/client-development/8.pack.gz b/build/cache/webpack/client-development/8.pack.gz deleted file mode 100644 index c49cce3..0000000 Binary files a/build/cache/webpack/client-development/8.pack.gz and /dev/null differ diff --git a/build/cache/webpack/client-development/9.pack.gz b/build/cache/webpack/client-development/9.pack.gz deleted file mode 100644 index b5f17dd..0000000 Binary files a/build/cache/webpack/client-development/9.pack.gz and /dev/null differ diff --git a/build/cache/webpack/client-development/index.pack.gz b/build/cache/webpack/client-development/index.pack.gz deleted file mode 100644 index 805b25f..0000000 Binary files a/build/cache/webpack/client-development/index.pack.gz and /dev/null differ diff --git a/build/cache/webpack/client-development/index.pack.gz.old b/build/cache/webpack/client-development/index.pack.gz.old deleted file mode 100644 index 80aa1d5..0000000 Binary files a/build/cache/webpack/client-development/index.pack.gz.old and /dev/null differ diff --git a/build/cache/webpack/server-development/0.pack.gz b/build/cache/webpack/server-development/0.pack.gz deleted file mode 100644 index aae4e3f..0000000 Binary files a/build/cache/webpack/server-development/0.pack.gz and /dev/null differ diff --git a/build/cache/webpack/server-development/1.pack.gz b/build/cache/webpack/server-development/1.pack.gz deleted file mode 100644 index ed0684b..0000000 Binary files a/build/cache/webpack/server-development/1.pack.gz and /dev/null differ diff --git a/build/cache/webpack/server-development/10.pack.gz b/build/cache/webpack/server-development/10.pack.gz deleted file mode 100644 index e0987a9..0000000 Binary files a/build/cache/webpack/server-development/10.pack.gz and /dev/null differ diff --git a/build/cache/webpack/server-development/11.pack.gz b/build/cache/webpack/server-development/11.pack.gz deleted file mode 100644 index 9aab5e3..0000000 Binary files a/build/cache/webpack/server-development/11.pack.gz and /dev/null differ diff --git a/build/cache/webpack/server-development/12.pack.gz b/build/cache/webpack/server-development/12.pack.gz deleted file mode 100644 index 0ff49fe..0000000 Binary files a/build/cache/webpack/server-development/12.pack.gz and /dev/null differ diff --git a/build/cache/webpack/server-development/2.pack.gz b/build/cache/webpack/server-development/2.pack.gz deleted file mode 100644 index 8a26db7..0000000 Binary files a/build/cache/webpack/server-development/2.pack.gz and /dev/null differ diff --git a/build/cache/webpack/server-development/3.pack.gz b/build/cache/webpack/server-development/3.pack.gz deleted file mode 100644 index b3bc8cb..0000000 Binary files a/build/cache/webpack/server-development/3.pack.gz and /dev/null differ diff --git a/build/cache/webpack/server-development/4.pack.gz b/build/cache/webpack/server-development/4.pack.gz deleted file mode 100644 index 584c7c5..0000000 Binary files a/build/cache/webpack/server-development/4.pack.gz and /dev/null differ diff --git a/build/cache/webpack/server-development/5.pack.gz b/build/cache/webpack/server-development/5.pack.gz deleted file mode 100644 index abb518f..0000000 Binary files a/build/cache/webpack/server-development/5.pack.gz and /dev/null differ diff --git a/build/cache/webpack/server-development/6.pack.gz b/build/cache/webpack/server-development/6.pack.gz deleted file mode 100644 index 7c32ec2..0000000 Binary files a/build/cache/webpack/server-development/6.pack.gz and /dev/null differ diff --git a/build/cache/webpack/server-development/7.pack.gz b/build/cache/webpack/server-development/7.pack.gz deleted file mode 100644 index fb76bc0..0000000 Binary files a/build/cache/webpack/server-development/7.pack.gz and /dev/null differ diff --git a/build/cache/webpack/server-development/8.pack.gz b/build/cache/webpack/server-development/8.pack.gz deleted file mode 100644 index 11e4588..0000000 Binary files a/build/cache/webpack/server-development/8.pack.gz and /dev/null differ diff --git a/build/cache/webpack/server-development/9.pack.gz b/build/cache/webpack/server-development/9.pack.gz deleted file mode 100644 index e9ba3e5..0000000 Binary files a/build/cache/webpack/server-development/9.pack.gz and /dev/null differ diff --git a/build/cache/webpack/server-development/index.pack.gz b/build/cache/webpack/server-development/index.pack.gz deleted file mode 100644 index 64a15d8..0000000 Binary files a/build/cache/webpack/server-development/index.pack.gz and /dev/null differ diff --git a/build/cache/webpack/server-development/index.pack.gz.old b/build/cache/webpack/server-development/index.pack.gz.old deleted file mode 100644 index dc027f0..0000000 Binary files a/build/cache/webpack/server-development/index.pack.gz.old and /dev/null differ diff --git a/build/package.json b/build/package.json deleted file mode 100644 index 7156107..0000000 --- a/build/package.json +++ /dev/null @@ -1 +0,0 @@ -{"type": "commonjs"} \ No newline at end of file diff --git a/build/prerender-manifest.json b/build/prerender-manifest.json deleted file mode 100644 index e56615f..0000000 --- a/build/prerender-manifest.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "version": 4, - "routes": {}, - "dynamicRoutes": {}, - "notFoundRoutes": [], - "preview": { - "previewModeId": "2f217fc743730155491d473472702b6e", - "previewModeSigningKey": "55eb5786f1180026097269917d0b711d02aa12326b3e47cdd584eb4176e6236e", - "previewModeEncryptionKey": "44a6b2bdd863fe88f78f12a4f9eb0e20878b4228d6abdb49d134e98259b3f938" - } -} \ No newline at end of file diff --git a/build/react-loadable-manifest.json b/build/react-loadable-manifest.json deleted file mode 100644 index e89057b..0000000 --- a/build/react-loadable-manifest.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "node_modules\\next\\dist\\client\\index.js -> ../pages/_app": { - "id": "node_modules\\next\\dist\\client\\index.js -> ../pages/_app", - "files": [ - "static/chunks/_pages-dir-browser_node_modules_next_dist_pages__app_js.js" - ] - }, - "node_modules\\next\\dist\\client\\index.js -> ../pages/_error": { - "id": "node_modules\\next\\dist\\client\\index.js -> ../pages/_error", - "files": [ - "static/chunks/_pages-dir-browser_node_modules_next_dist_pages__error_js.js" - ] - } -} \ No newline at end of file diff --git a/build/routes-manifest.json b/build/routes-manifest.json deleted file mode 100644 index 8263120..0000000 --- a/build/routes-manifest.json +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"caseSensitive":false,"basePath":"","rewrites":{"beforeFiles":[],"afterFiles":[],"fallback":[]},"redirects":[{"source":"/:path+/","destination":"/:path+","permanent":true,"internal":true,"regex":"^(?:\\/((?:[^\\/]+?)(?:\\/(?:[^\\/]+?))*))\\/$"}],"headers":[]} \ No newline at end of file diff --git a/build/server/interception-route-rewrite-manifest.js b/build/server/interception-route-rewrite-manifest.js deleted file mode 100644 index 82d3ab1..0000000 --- a/build/server/interception-route-rewrite-manifest.js +++ /dev/null @@ -1 +0,0 @@ -self.__INTERCEPTION_ROUTE_REWRITE_MANIFEST="[]" \ No newline at end of file diff --git a/build/server/middleware-build-manifest.js b/build/server/middleware-build-manifest.js deleted file mode 100644 index 12818a9..0000000 --- a/build/server/middleware-build-manifest.js +++ /dev/null @@ -1,40 +0,0 @@ -globalThis.__BUILD_MANIFEST = { - "polyfillFiles": [ - "static/chunks/polyfills.js" - ], - "devFiles": [ - "static/chunks/react-refresh.js" - ], - "ampDevFiles": [], - "lowPriorityFiles": [], - "rootMainFiles": [], - "rootMainFilesTree": {}, - "pages": { - "/": [ - "static/chunks/webpack.js", - "static/chunks/main.js", - "static/chunks/pages/index.js" - ], - "/_app": [ - "static/chunks/webpack.js", - "static/chunks/main.js", - "static/chunks/pages/_app.js" - ], - "/_error": [ - "static/chunks/webpack.js", - "static/chunks/main.js", - "static/chunks/pages/_error.js" - ], - "/news": [ - "static/chunks/webpack.js", - "static/chunks/main.js", - "static/chunks/pages/news.js" - ] - }, - "ampFirstPages": [] -}; -globalThis.__BUILD_MANIFEST.lowPriorityFiles = [ -"/static/" + process.env.__NEXT_BUILD_ID + "/_buildManifest.js", -,"/static/" + process.env.__NEXT_BUILD_ID + "/_ssgManifest.js", - -]; \ No newline at end of file diff --git a/build/server/middleware-manifest.json b/build/server/middleware-manifest.json deleted file mode 100644 index 33872a3..0000000 --- a/build/server/middleware-manifest.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "version": 3, - "middleware": {}, - "functions": {}, - "sortedMiddleware": [] -} \ No newline at end of file diff --git a/build/server/middleware-react-loadable-manifest.js b/build/server/middleware-react-loadable-manifest.js deleted file mode 100644 index a75251c..0000000 --- a/build/server/middleware-react-loadable-manifest.js +++ /dev/null @@ -1 +0,0 @@ -self.__REACT_LOADABLE_MANIFEST="{\"node_modules\\\\next\\\\dist\\\\client\\\\index.js -> ../pages/_app\":{\"id\":\"node_modules\\\\next\\\\dist\\\\client\\\\index.js -> ../pages/_app\",\"files\":[\"static/chunks/_pages-dir-browser_node_modules_next_dist_pages__app_js.js\"]},\"node_modules\\\\next\\\\dist\\\\client\\\\index.js -> ../pages/_error\":{\"id\":\"node_modules\\\\next\\\\dist\\\\client\\\\index.js -> ../pages/_error\",\"files\":[\"static/chunks/_pages-dir-browser_node_modules_next_dist_pages__error_js.js\"]}}" \ No newline at end of file diff --git a/build/server/next-font-manifest.js b/build/server/next-font-manifest.js deleted file mode 100644 index 5cc97eb..0000000 --- a/build/server/next-font-manifest.js +++ /dev/null @@ -1 +0,0 @@ -self.__NEXT_FONT_MANIFEST="{\"pages\":{},\"app\":{},\"appUsingSizeAdjust\":false,\"pagesUsingSizeAdjust\":false}" \ No newline at end of file diff --git a/build/server/next-font-manifest.json b/build/server/next-font-manifest.json deleted file mode 100644 index 25f78e7..0000000 --- a/build/server/next-font-manifest.json +++ /dev/null @@ -1 +0,0 @@ -{"pages":{},"app":{},"appUsingSizeAdjust":false,"pagesUsingSizeAdjust":false} \ No newline at end of file diff --git a/build/server/pages-manifest.json b/build/server/pages-manifest.json deleted file mode 100644 index ac9f1f6..0000000 --- a/build/server/pages-manifest.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "/_app": "pages/_app.js", - "/_error": "pages/_error.js", - "/_document": "pages/_document.js", - "/": "pages/index.js", - "/news": "pages/news.js" -} \ No newline at end of file diff --git a/build/server/pages/_app.js b/build/server/pages/_app.js deleted file mode 100644 index e212969..0000000 --- a/build/server/pages/_app.js +++ /dev/null @@ -1,57 +0,0 @@ -/* - * ATTENTION: An "eval-source-map" devtool has been used. - * This devtool is neither made for production nor for readable output files. - * It uses "eval()" calls to create a separate source file with attached SourceMaps in the browser devtools. - * If you are trying to read the output file, select a different devtool (https://webpack.js.org/configuration/devtool/) - * or disable the default devtool with "devtool: false". - * If you are looking for production-ready output files, see mode: "production" (https://webpack.js.org/configuration/mode/). - */ -(() => { -var exports = {}; -exports.id = "pages/_app"; -exports.ids = ["pages/_app"]; -exports.modules = { - -/***/ "(pages-dir-node)/./pages/_app.tsx": -/*!************************!*\ - !*** ./pages/_app.tsx ***! - \************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react/jsx-dev-runtime */ \"react/jsx-dev-runtime\");\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _styles_globals_css__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../styles/globals.css */ \"(pages-dir-node)/./styles/globals.css\");\n/* harmony import */ var _styles_globals_css__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_styles_globals_css__WEBPACK_IMPORTED_MODULE_1__);\n\n\nfunction MyApp({ Component, pageProps }) {\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(Component, {\n ...pageProps\n }, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\pages\\\\_app.tsx\",\n lineNumber: 5,\n columnNumber: 10\n }, this);\n}\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (MyApp);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1ub2RlKS8uL3BhZ2VzL19hcHAudHN4IiwibWFwcGluZ3MiOiI7Ozs7Ozs7OztBQUErQjtBQUcvQixTQUFTQSxNQUFNLEVBQUVDLFNBQVMsRUFBRUMsU0FBUyxFQUFZO0lBQy9DLHFCQUFPLDhEQUFDRDtRQUFXLEdBQUdDLFNBQVM7Ozs7OztBQUNqQztBQUVBLGlFQUFlRixLQUFLQSxFQUFDIiwic291cmNlcyI6WyJEOlxcZG9uZ3l1bi1wcm9qZWN0c1xcdHdvXFxwYWdlc1xcX2FwcC50c3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICcuLi9zdHlsZXMvZ2xvYmFscy5jc3MnO1xyXG5pbXBvcnQgdHlwZSB7IEFwcFByb3BzIH0gZnJvbSAnbmV4dC9hcHAnO1xyXG5cclxuZnVuY3Rpb24gTXlBcHAoeyBDb21wb25lbnQsIHBhZ2VQcm9wcyB9OiBBcHBQcm9wcykge1xyXG4gIHJldHVybiA8Q29tcG9uZW50IHsuLi5wYWdlUHJvcHN9IC8+O1xyXG59XHJcblxyXG5leHBvcnQgZGVmYXVsdCBNeUFwcDsiXSwibmFtZXMiOlsiTXlBcHAiLCJDb21wb25lbnQiLCJwYWdlUHJvcHMiXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(pages-dir-node)/./pages/_app.tsx\n"); - -/***/ }), - -/***/ "(pages-dir-node)/./styles/globals.css": -/*!****************************!*\ - !*** ./styles/globals.css ***! - \****************************/ -/***/ (() => { - - - -/***/ }), - -/***/ "react/jsx-dev-runtime": -/*!****************************************!*\ - !*** external "react/jsx-dev-runtime" ***! - \****************************************/ -/***/ ((module) => { - -"use strict"; -module.exports = require("react/jsx-dev-runtime"); - -/***/ }) - -}; -; - -// load runtime -var __webpack_require__ = require("../webpack-runtime.js"); -__webpack_require__.C(exports); -var __webpack_exec__ = (moduleId) => (__webpack_require__(__webpack_require__.s = moduleId)) -var __webpack_exports__ = (__webpack_exec__("(pages-dir-node)/./pages/_app.tsx")); -module.exports = __webpack_exports__; - -})(); \ No newline at end of file diff --git a/build/server/pages/_document.js b/build/server/pages/_document.js deleted file mode 100644 index 97cbf4d..0000000 --- a/build/server/pages/_document.js +++ /dev/null @@ -1,66 +0,0 @@ -"use strict"; -/* - * ATTENTION: An "eval-source-map" devtool has been used. - * This devtool is neither made for production nor for readable output files. - * It uses "eval()" calls to create a separate source file with attached SourceMaps in the browser devtools. - * If you are trying to read the output file, select a different devtool (https://webpack.js.org/configuration/devtool/) - * or disable the default devtool with "devtool: false". - * If you are looking for production-ready output files, see mode: "production" (https://webpack.js.org/configuration/mode/). - */ -(() => { -var exports = {}; -exports.id = "pages/_document"; -exports.ids = ["pages/_document"]; -exports.modules = { - -/***/ "next/dist/compiled/next-server/pages.runtime.dev.js": -/*!**********************************************************************!*\ - !*** external "next/dist/compiled/next-server/pages.runtime.dev.js" ***! - \**********************************************************************/ -/***/ ((module) => { - -module.exports = require("next/dist/compiled/next-server/pages.runtime.dev.js"); - -/***/ }), - -/***/ "path": -/*!***********************!*\ - !*** external "path" ***! - \***********************/ -/***/ ((module) => { - -module.exports = require("path"); - -/***/ }), - -/***/ "react": -/*!************************!*\ - !*** external "react" ***! - \************************/ -/***/ ((module) => { - -module.exports = require("react"); - -/***/ }), - -/***/ "react/jsx-runtime": -/*!************************************!*\ - !*** external "react/jsx-runtime" ***! - \************************************/ -/***/ ((module) => { - -module.exports = require("react/jsx-runtime"); - -/***/ }) - -}; -; - -// load runtime -var __webpack_require__ = require("../webpack-runtime.js"); -__webpack_require__.C(exports); -var __webpack_exec__ = (moduleId) => (__webpack_require__(__webpack_require__.s = moduleId)) -var __webpack_exports__ = __webpack_require__.X(0, ["vendor-chunks/next","vendor-chunks/@swc"], () => (__webpack_exec__("(pages-dir-node)/./node_modules/next/dist/pages/_document.js"))); -module.exports = __webpack_exports__; - -})(); \ No newline at end of file diff --git a/build/server/pages/_error.js b/build/server/pages/_error.js deleted file mode 100644 index b6d9c97..0000000 --- a/build/server/pages/_error.js +++ /dev/null @@ -1,189 +0,0 @@ -/* - * ATTENTION: An "eval-source-map" devtool has been used. - * This devtool is neither made for production nor for readable output files. - * It uses "eval()" calls to create a separate source file with attached SourceMaps in the browser devtools. - * If you are trying to read the output file, select a different devtool (https://webpack.js.org/configuration/devtool/) - * or disable the default devtool with "devtool: false". - * If you are looking for production-ready output files, see mode: "production" (https://webpack.js.org/configuration/mode/). - */ -(() => { -var exports = {}; -exports.id = "pages/_error"; -exports.ids = ["pages/_error"]; -exports.modules = { - -/***/ "(pages-dir-node)/./node_modules/next/dist/build/webpack/loaders/next-route-loader/index.js?kind=PAGES&page=%2F_error&preferredRegion=&absolutePagePath=private-next-pages%2F_error&absoluteAppPath=private-next-pages%2F_app&absoluteDocumentPath=private-next-pages%2F_document&middlewareConfigBase64=e30%3D!": -/*!******************************************************************************************************************************************************************************************************************************************************************************************************!*\ - !*** ./node_modules/next/dist/build/webpack/loaders/next-route-loader/index.js?kind=PAGES&page=%2F_error&preferredRegion=&absolutePagePath=private-next-pages%2F_error&absoluteAppPath=private-next-pages%2F_app&absoluteDocumentPath=private-next-pages%2F_document&middlewareConfigBase64=e30%3D! ***! - \******************************************************************************************************************************************************************************************************************************************************************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ config: () => (/* binding */ config),\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__),\n/* harmony export */ getServerSideProps: () => (/* binding */ getServerSideProps),\n/* harmony export */ getStaticPaths: () => (/* binding */ getStaticPaths),\n/* harmony export */ getStaticProps: () => (/* binding */ getStaticProps),\n/* harmony export */ handler: () => (/* binding */ handler),\n/* harmony export */ reportWebVitals: () => (/* binding */ reportWebVitals),\n/* harmony export */ routeModule: () => (/* binding */ routeModule),\n/* harmony export */ unstable_getServerProps: () => (/* binding */ unstable_getServerProps),\n/* harmony export */ unstable_getServerSideProps: () => (/* binding */ unstable_getServerSideProps),\n/* harmony export */ unstable_getStaticParams: () => (/* binding */ unstable_getStaticParams),\n/* harmony export */ unstable_getStaticPaths: () => (/* binding */ unstable_getStaticPaths),\n/* harmony export */ unstable_getStaticProps: () => (/* binding */ unstable_getStaticProps)\n/* harmony export */ });\n/* harmony import */ var next_dist_server_route_modules_pages_module_compiled__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! next/dist/server/route-modules/pages/module.compiled */ \"(pages-dir-node)/./node_modules/next/dist/server/route-modules/pages/module.compiled.js\");\n/* harmony import */ var next_dist_server_route_modules_pages_module_compiled__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(next_dist_server_route_modules_pages_module_compiled__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var next_dist_server_route_kind__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! next/dist/server/route-kind */ \"(pages-dir-node)/./node_modules/next/dist/server/route-kind.js\");\n/* harmony import */ var next_dist_server_lib_trace_constants__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! next/dist/server/lib/trace/constants */ \"(pages-dir-node)/./node_modules/next/dist/server/lib/trace/constants.js\");\n/* harmony import */ var next_dist_server_lib_trace_constants__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(next_dist_server_lib_trace_constants__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var next_dist_server_lib_trace_tracer__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! next/dist/server/lib/trace/tracer */ \"(pages-dir-node)/./node_modules/next/dist/server/lib/trace/tracer.js\");\n/* harmony import */ var next_dist_server_lib_trace_tracer__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(next_dist_server_lib_trace_tracer__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var next_dist_shared_lib_router_utils_format_url__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! next/dist/shared/lib/router/utils/format-url */ \"next/dist/shared/lib/router/utils/format-url\");\n/* harmony import */ var next_dist_shared_lib_router_utils_format_url__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(next_dist_shared_lib_router_utils_format_url__WEBPACK_IMPORTED_MODULE_4__);\n/* harmony import */ var next_dist_server_request_meta__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! next/dist/server/request-meta */ \"(pages-dir-node)/./node_modules/next/dist/server/request-meta.js\");\n/* harmony import */ var next_dist_server_request_meta__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(next_dist_server_request_meta__WEBPACK_IMPORTED_MODULE_5__);\n/* harmony import */ var next_dist_server_app_render_interop_default__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! next/dist/server/app-render/interop-default */ \"(pages-dir-node)/./node_modules/next/dist/server/app-render/interop-default.js\");\n/* harmony import */ var next_dist_server_instrumentation_utils__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! next/dist/server/instrumentation/utils */ \"(pages-dir-node)/./node_modules/next/dist/server/instrumentation/utils.js\");\n/* harmony import */ var next_dist_shared_lib_page_path_normalize_data_path__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! next/dist/shared/lib/page-path/normalize-data-path */ \"next/dist/shared/lib/page-path/normalize-data-path\");\n/* harmony import */ var next_dist_shared_lib_page_path_normalize_data_path__WEBPACK_IMPORTED_MODULE_8___default = /*#__PURE__*/__webpack_require__.n(next_dist_shared_lib_page_path_normalize_data_path__WEBPACK_IMPORTED_MODULE_8__);\n/* harmony import */ var next_dist_server_response_cache__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! next/dist/server/response-cache */ \"(pages-dir-node)/./node_modules/next/dist/server/response-cache/index.js\");\n/* harmony import */ var next_dist_server_response_cache__WEBPACK_IMPORTED_MODULE_9___default = /*#__PURE__*/__webpack_require__.n(next_dist_server_response_cache__WEBPACK_IMPORTED_MODULE_9__);\n/* harmony import */ var next_dist_build_templates_helpers__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! next/dist/build/templates/helpers */ \"(pages-dir-node)/./node_modules/next/dist/build/templates/helpers.js\");\n/* harmony import */ var private_next_pages_document__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! private-next-pages/_document */ \"(pages-dir-node)/./node_modules/next/dist/pages/_document.js\");\n/* harmony import */ var private_next_pages_document__WEBPACK_IMPORTED_MODULE_11___default = /*#__PURE__*/__webpack_require__.n(private_next_pages_document__WEBPACK_IMPORTED_MODULE_11__);\n/* harmony import */ var private_next_pages_app__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! private-next-pages/_app */ \"(pages-dir-node)/./pages/_app.tsx\");\n/* harmony import */ var private_next_pages_error__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! private-next-pages/_error */ \"(pages-dir-node)/./node_modules/next/dist/pages/_error.js\");\n/* harmony import */ var private_next_pages_error__WEBPACK_IMPORTED_MODULE_13___default = /*#__PURE__*/__webpack_require__.n(private_next_pages_error__WEBPACK_IMPORTED_MODULE_13__);\n/* harmony import */ var next_dist_server_lib_cache_control__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! next/dist/server/lib/cache-control */ \"(pages-dir-node)/./node_modules/next/dist/server/lib/cache-control.js\");\n/* harmony import */ var next_dist_shared_lib_utils__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! next/dist/shared/lib/utils */ \"next/dist/shared/lib/utils\");\n/* harmony import */ var next_dist_shared_lib_utils__WEBPACK_IMPORTED_MODULE_15___default = /*#__PURE__*/__webpack_require__.n(next_dist_shared_lib_utils__WEBPACK_IMPORTED_MODULE_15__);\n/* harmony import */ var next_dist_lib_redirect_status__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! next/dist/lib/redirect-status */ \"(pages-dir-node)/./node_modules/next/dist/lib/redirect-status.js\");\n/* harmony import */ var next_dist_lib_redirect_status__WEBPACK_IMPORTED_MODULE_16___default = /*#__PURE__*/__webpack_require__.n(next_dist_lib_redirect_status__WEBPACK_IMPORTED_MODULE_16__);\n/* harmony import */ var next_dist_lib_constants__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! next/dist/lib/constants */ \"(pages-dir-node)/./node_modules/next/dist/lib/constants.js\");\n/* harmony import */ var next_dist_lib_constants__WEBPACK_IMPORTED_MODULE_17___default = /*#__PURE__*/__webpack_require__.n(next_dist_lib_constants__WEBPACK_IMPORTED_MODULE_17__);\n/* harmony import */ var next_dist_server_send_payload__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! next/dist/server/send-payload */ \"(pages-dir-node)/./node_modules/next/dist/server/send-payload.js\");\n/* harmony import */ var next_dist_server_send_payload__WEBPACK_IMPORTED_MODULE_18___default = /*#__PURE__*/__webpack_require__.n(next_dist_server_send_payload__WEBPACK_IMPORTED_MODULE_18__);\n/* harmony import */ var next_dist_server_render_result__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(/*! next/dist/server/render-result */ \"(pages-dir-node)/./node_modules/next/dist/server/render-result.js\");\n/* harmony import */ var next_dist_server_response_cache_utils__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(/*! next/dist/server/response-cache/utils */ \"(pages-dir-node)/./node_modules/next/dist/server/response-cache/utils.js\");\n/* harmony import */ var next_dist_server_response_cache_utils__WEBPACK_IMPORTED_MODULE_20___default = /*#__PURE__*/__webpack_require__.n(next_dist_server_response_cache_utils__WEBPACK_IMPORTED_MODULE_20__);\n/* harmony import */ var next_dist_shared_lib_no_fallback_error_external__WEBPACK_IMPORTED_MODULE_21__ = __webpack_require__(/*! next/dist/shared/lib/no-fallback-error.external */ \"next/dist/shared/lib/no-fallback-error.external\");\n/* harmony import */ var next_dist_shared_lib_no_fallback_error_external__WEBPACK_IMPORTED_MODULE_21___default = /*#__PURE__*/__webpack_require__.n(next_dist_shared_lib_no_fallback_error_external__WEBPACK_IMPORTED_MODULE_21__);\n/* harmony import */ var next_dist_client_components_redirect_status_code__WEBPACK_IMPORTED_MODULE_22__ = __webpack_require__(/*! next/dist/client/components/redirect-status-code */ \"(pages-dir-node)/./node_modules/next/dist/client/components/redirect-status-code.js\");\n/* harmony import */ var next_dist_client_components_redirect_status_code__WEBPACK_IMPORTED_MODULE_22___default = /*#__PURE__*/__webpack_require__.n(next_dist_client_components_redirect_status_code__WEBPACK_IMPORTED_MODULE_22__);\n/* harmony import */ var next_dist_shared_lib_router_utils_is_bot__WEBPACK_IMPORTED_MODULE_23__ = __webpack_require__(/*! next/dist/shared/lib/router/utils/is-bot */ \"next/dist/shared/lib/router/utils/is-bot\");\n/* harmony import */ var next_dist_shared_lib_router_utils_is_bot__WEBPACK_IMPORTED_MODULE_23___default = /*#__PURE__*/__webpack_require__.n(next_dist_shared_lib_router_utils_is_bot__WEBPACK_IMPORTED_MODULE_23__);\n/* harmony import */ var next_dist_shared_lib_router_utils_add_path_prefix__WEBPACK_IMPORTED_MODULE_24__ = __webpack_require__(/*! next/dist/shared/lib/router/utils/add-path-prefix */ \"next/dist/shared/lib/router/utils/add-path-prefix\");\n/* harmony import */ var next_dist_shared_lib_router_utils_add_path_prefix__WEBPACK_IMPORTED_MODULE_24___default = /*#__PURE__*/__webpack_require__.n(next_dist_shared_lib_router_utils_add_path_prefix__WEBPACK_IMPORTED_MODULE_24__);\n/* harmony import */ var next_dist_shared_lib_router_utils_remove_trailing_slash__WEBPACK_IMPORTED_MODULE_25__ = __webpack_require__(/*! next/dist/shared/lib/router/utils/remove-trailing-slash */ \"next/dist/shared/lib/router/utils/remove-trailing-slash\");\n/* harmony import */ var next_dist_shared_lib_router_utils_remove_trailing_slash__WEBPACK_IMPORTED_MODULE_25___default = /*#__PURE__*/__webpack_require__.n(next_dist_shared_lib_router_utils_remove_trailing_slash__WEBPACK_IMPORTED_MODULE_25__);\n\n\n\n\n\n\n\n\n\n\n\n// Import the app and document modules.\n\n\n// Import the userland code.\n\n\n\n\n\n\n\n\n\n\n\n\n\n// Re-export the component (should be the default export).\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ((0,next_dist_build_templates_helpers__WEBPACK_IMPORTED_MODULE_10__.hoist)(private_next_pages_error__WEBPACK_IMPORTED_MODULE_13__, 'default'));\n// Re-export methods.\nconst getStaticProps = (0,next_dist_build_templates_helpers__WEBPACK_IMPORTED_MODULE_10__.hoist)(private_next_pages_error__WEBPACK_IMPORTED_MODULE_13__, 'getStaticProps');\nconst getStaticPaths = (0,next_dist_build_templates_helpers__WEBPACK_IMPORTED_MODULE_10__.hoist)(private_next_pages_error__WEBPACK_IMPORTED_MODULE_13__, 'getStaticPaths');\nconst getServerSideProps = (0,next_dist_build_templates_helpers__WEBPACK_IMPORTED_MODULE_10__.hoist)(private_next_pages_error__WEBPACK_IMPORTED_MODULE_13__, 'getServerSideProps');\nconst config = (0,next_dist_build_templates_helpers__WEBPACK_IMPORTED_MODULE_10__.hoist)(private_next_pages_error__WEBPACK_IMPORTED_MODULE_13__, 'config');\nconst reportWebVitals = (0,next_dist_build_templates_helpers__WEBPACK_IMPORTED_MODULE_10__.hoist)(private_next_pages_error__WEBPACK_IMPORTED_MODULE_13__, 'reportWebVitals');\n// Re-export legacy methods.\nconst unstable_getStaticProps = (0,next_dist_build_templates_helpers__WEBPACK_IMPORTED_MODULE_10__.hoist)(private_next_pages_error__WEBPACK_IMPORTED_MODULE_13__, 'unstable_getStaticProps');\nconst unstable_getStaticPaths = (0,next_dist_build_templates_helpers__WEBPACK_IMPORTED_MODULE_10__.hoist)(private_next_pages_error__WEBPACK_IMPORTED_MODULE_13__, 'unstable_getStaticPaths');\nconst unstable_getStaticParams = (0,next_dist_build_templates_helpers__WEBPACK_IMPORTED_MODULE_10__.hoist)(private_next_pages_error__WEBPACK_IMPORTED_MODULE_13__, 'unstable_getStaticParams');\nconst unstable_getServerProps = (0,next_dist_build_templates_helpers__WEBPACK_IMPORTED_MODULE_10__.hoist)(private_next_pages_error__WEBPACK_IMPORTED_MODULE_13__, 'unstable_getServerProps');\nconst unstable_getServerSideProps = (0,next_dist_build_templates_helpers__WEBPACK_IMPORTED_MODULE_10__.hoist)(private_next_pages_error__WEBPACK_IMPORTED_MODULE_13__, 'unstable_getServerSideProps');\n// Create and export the route module that will be consumed.\nconst routeModule = new next_dist_server_route_modules_pages_module_compiled__WEBPACK_IMPORTED_MODULE_0__.PagesRouteModule({\n definition: {\n kind: next_dist_server_route_kind__WEBPACK_IMPORTED_MODULE_1__.RouteKind.PAGES,\n page: \"/_error\",\n pathname: \"/_error\",\n // The following aren't used in production.\n bundlePath: '',\n filename: ''\n },\n distDir: \"build\" || 0,\n projectDir: false || '',\n components: {\n // default export might not exist when optimized for data only\n App: private_next_pages_app__WEBPACK_IMPORTED_MODULE_12__[\"default\"],\n Document: (private_next_pages_document__WEBPACK_IMPORTED_MODULE_11___default())\n },\n userland: private_next_pages_error__WEBPACK_IMPORTED_MODULE_13__\n});\nasync function handler(req, res, ctx) {\n var _serverFilesManifest_config_experimental, _serverFilesManifest_config;\n let srcPage = \"/_error\";\n // turbopack doesn't normalize `/index` in the page name\n // so we need to to process dynamic routes properly\n // TODO: fix turbopack providing differing value from webpack\n if (false) {} else if (srcPage === '/index') {\n // we always normalize /index specifically\n srcPage = '/';\n }\n const multiZoneDraftMode = \"false\";\n const prepareResult = await routeModule.prepare(req, res, {\n srcPage,\n multiZoneDraftMode\n });\n if (!prepareResult) {\n res.statusCode = 400;\n res.end('Bad Request');\n ctx.waitUntil == null ? void 0 : ctx.waitUntil.call(ctx, Promise.resolve());\n return;\n }\n const { buildId, query, params, parsedUrl, originalQuery, originalPathname, buildManifest, nextFontManifest, serverFilesManifest, reactLoadableManifest, prerenderManifest, isDraftMode, isOnDemandRevalidate, revalidateOnlyGenerated, locale, locales, defaultLocale, routerServerContext, nextConfig, resolvedPathname } = prepareResult;\n const isExperimentalCompile = serverFilesManifest == null ? void 0 : (_serverFilesManifest_config = serverFilesManifest.config) == null ? void 0 : (_serverFilesManifest_config_experimental = _serverFilesManifest_config.experimental) == null ? void 0 : _serverFilesManifest_config_experimental.isExperimentalCompile;\n const hasServerProps = Boolean(getServerSideProps);\n const hasStaticProps = Boolean(getStaticProps);\n const hasStaticPaths = Boolean(getStaticPaths);\n const hasGetInitialProps = Boolean(((private_next_pages_error__WEBPACK_IMPORTED_MODULE_13___default()) || private_next_pages_error__WEBPACK_IMPORTED_MODULE_13__).getInitialProps);\n const isAmp = query.amp && config.amp;\n let cacheKey = null;\n let isIsrFallback = false;\n let isNextDataRequest = prepareResult.isNextDataRequest && (hasStaticProps || hasServerProps);\n const is404Page = srcPage === '/404';\n const is500Page = srcPage === '/500';\n const isErrorPage = srcPage === '/_error';\n if (!routeModule.isDev && !isDraftMode && hasStaticProps) {\n cacheKey = `${locale ? `/${locale}` : ''}${(srcPage === '/' || resolvedPathname === '/') && locale ? '' : resolvedPathname}${isAmp ? '.amp' : ''}`;\n if (is404Page || is500Page || isErrorPage) {\n cacheKey = `${locale ? `/${locale}` : ''}${srcPage}${isAmp ? '.amp' : ''}`;\n }\n // ensure /index and / is normalized to one key\n cacheKey = cacheKey === '/index' ? '/' : cacheKey;\n }\n if (hasStaticPaths && !isDraftMode) {\n const decodedPathname = (0,next_dist_shared_lib_router_utils_remove_trailing_slash__WEBPACK_IMPORTED_MODULE_25__.removeTrailingSlash)(locale ? (0,next_dist_shared_lib_router_utils_add_path_prefix__WEBPACK_IMPORTED_MODULE_24__.addPathPrefix)(resolvedPathname, `/${locale}`) : resolvedPathname);\n const isPrerendered = Boolean(prerenderManifest.routes[decodedPathname]) || prerenderManifest.notFoundRoutes.includes(decodedPathname);\n const prerenderInfo = prerenderManifest.dynamicRoutes[srcPage];\n if (prerenderInfo) {\n if (prerenderInfo.fallback === false && !isPrerendered) {\n throw new next_dist_shared_lib_no_fallback_error_external__WEBPACK_IMPORTED_MODULE_21__.NoFallbackError();\n }\n if (typeof prerenderInfo.fallback === 'string' && !isPrerendered && !isNextDataRequest) {\n isIsrFallback = true;\n }\n }\n }\n // When serving a bot request, we want to serve a blocking render and not\n // the prerendered page. This ensures that the correct content is served\n // to the bot in the head.\n if (isIsrFallback && (0,next_dist_shared_lib_router_utils_is_bot__WEBPACK_IMPORTED_MODULE_23__.isBot)(req.headers['user-agent'] || '') || (0,next_dist_server_request_meta__WEBPACK_IMPORTED_MODULE_5__.getRequestMeta)(req, 'minimalMode')) {\n isIsrFallback = false;\n }\n const tracer = (0,next_dist_server_lib_trace_tracer__WEBPACK_IMPORTED_MODULE_3__.getTracer)();\n const activeSpan = tracer.getActiveScopeSpan();\n try {\n const method = req.method || 'GET';\n const resolvedUrl = (0,next_dist_shared_lib_router_utils_format_url__WEBPACK_IMPORTED_MODULE_4__.formatUrl)({\n pathname: nextConfig.trailingSlash ? parsedUrl.pathname : (0,next_dist_shared_lib_router_utils_remove_trailing_slash__WEBPACK_IMPORTED_MODULE_25__.removeTrailingSlash)(parsedUrl.pathname || '/'),\n // make sure to only add query values from original URL\n query: hasStaticProps ? {} : originalQuery\n });\n const publicRuntimeConfig = (routerServerContext == null ? void 0 : routerServerContext.publicRuntimeConfig) || nextConfig.publicRuntimeConfig;\n const handleResponse = async (span)=>{\n const responseGenerator = async ({ previousCacheEntry })=>{\n var _previousCacheEntry_value;\n const doRender = async ()=>{\n try {\n var _nextConfig_i18n, _nextConfig_experimental_amp, _nextConfig_experimental_amp1;\n return await routeModule.render(req, res, {\n query: hasStaticProps && !isExperimentalCompile ? {\n ...params,\n ...isAmp ? {\n amp: query.amp\n } : {}\n } : {\n ...query,\n ...params\n },\n params,\n page: srcPage,\n renderContext: {\n isDraftMode,\n isFallback: isIsrFallback,\n developmentNotFoundSourcePage: (0,next_dist_server_request_meta__WEBPACK_IMPORTED_MODULE_5__.getRequestMeta)(req, 'developmentNotFoundSourcePage')\n },\n sharedContext: {\n buildId,\n customServer: Boolean(routerServerContext == null ? void 0 : routerServerContext.isCustomServer) || undefined,\n deploymentId: false\n },\n renderOpts: {\n params,\n routeModule,\n page: srcPage,\n pageConfig: config || {},\n Component: (0,next_dist_server_app_render_interop_default__WEBPACK_IMPORTED_MODULE_6__.interopDefault)(private_next_pages_error__WEBPACK_IMPORTED_MODULE_13__),\n ComponentMod: private_next_pages_error__WEBPACK_IMPORTED_MODULE_13__,\n getStaticProps,\n getStaticPaths,\n getServerSideProps,\n supportsDynamicResponse: !hasStaticProps,\n buildManifest,\n nextFontManifest,\n reactLoadableManifest,\n assetPrefix: nextConfig.assetPrefix,\n strictNextHead: Boolean(nextConfig.experimental.strictNextHead),\n previewProps: prerenderManifest.preview,\n images: nextConfig.images,\n nextConfigOutput: nextConfig.output,\n optimizeCss: Boolean(nextConfig.experimental.optimizeCss),\n nextScriptWorkers: Boolean(nextConfig.experimental.nextScriptWorkers),\n domainLocales: (_nextConfig_i18n = nextConfig.i18n) == null ? void 0 : _nextConfig_i18n.domains,\n crossOrigin: nextConfig.crossOrigin,\n multiZoneDraftMode,\n basePath: nextConfig.basePath,\n canonicalBase: nextConfig.amp.canonicalBase || '',\n ampOptimizerConfig: (_nextConfig_experimental_amp = nextConfig.experimental.amp) == null ? void 0 : _nextConfig_experimental_amp.optimizer,\n disableOptimizedLoading: nextConfig.experimental.disableOptimizedLoading,\n largePageDataBytes: nextConfig.experimental.largePageDataBytes,\n // Only the `publicRuntimeConfig` key is exposed to the client side\n // It'll be rendered as part of __NEXT_DATA__ on the client side\n runtimeConfig: Object.keys(publicRuntimeConfig).length > 0 ? publicRuntimeConfig : undefined,\n isExperimentalCompile,\n experimental: {\n clientTraceMetadata: nextConfig.experimental.clientTraceMetadata || []\n },\n locale,\n locales,\n defaultLocale,\n setIsrStatus: routerServerContext == null ? void 0 : routerServerContext.setIsrStatus,\n isNextDataRequest: isNextDataRequest && (hasServerProps || hasStaticProps),\n resolvedUrl,\n // For getServerSideProps and getInitialProps we need to ensure we use the original URL\n // and not the resolved URL to prevent a hydration mismatch on\n // asPath\n resolvedAsPath: hasServerProps || hasGetInitialProps ? (0,next_dist_shared_lib_router_utils_format_url__WEBPACK_IMPORTED_MODULE_4__.formatUrl)({\n // we use the original URL pathname less the _next/data prefix if\n // present\n pathname: isNextDataRequest ? (0,next_dist_shared_lib_page_path_normalize_data_path__WEBPACK_IMPORTED_MODULE_8__.normalizeDataPath)(originalPathname) : originalPathname,\n query: originalQuery\n }) : resolvedUrl,\n isOnDemandRevalidate,\n ErrorDebug: (0,next_dist_server_request_meta__WEBPACK_IMPORTED_MODULE_5__.getRequestMeta)(req, 'PagesErrorDebug'),\n err: (0,next_dist_server_request_meta__WEBPACK_IMPORTED_MODULE_5__.getRequestMeta)(req, 'invokeError'),\n dev: routeModule.isDev,\n // needed for experimental.optimizeCss feature\n distDir: `${routeModule.projectDir}/${routeModule.distDir}`,\n ampSkipValidation: (_nextConfig_experimental_amp1 = nextConfig.experimental.amp) == null ? void 0 : _nextConfig_experimental_amp1.skipValidation,\n ampValidator: (0,next_dist_server_request_meta__WEBPACK_IMPORTED_MODULE_5__.getRequestMeta)(req, 'ampValidator')\n }\n }).then((renderResult)=>{\n const { metadata } = renderResult;\n let cacheControl = metadata.cacheControl;\n if ('isNotFound' in metadata && metadata.isNotFound) {\n return {\n value: null,\n cacheControl\n };\n }\n // Handle `isRedirect`.\n if (metadata.isRedirect) {\n return {\n value: {\n kind: next_dist_server_response_cache__WEBPACK_IMPORTED_MODULE_9__.CachedRouteKind.REDIRECT,\n props: metadata.pageData ?? metadata.flightData\n },\n cacheControl\n };\n }\n return {\n value: {\n kind: next_dist_server_response_cache__WEBPACK_IMPORTED_MODULE_9__.CachedRouteKind.PAGES,\n html: renderResult,\n pageData: renderResult.metadata.pageData,\n headers: renderResult.metadata.headers,\n status: renderResult.metadata.statusCode\n },\n cacheControl\n };\n }).finally(()=>{\n if (!span) return;\n span.setAttributes({\n 'http.status_code': res.statusCode,\n 'next.rsc': false\n });\n const rootSpanAttributes = tracer.getRootSpanAttributes();\n // We were unable to get attributes, probably OTEL is not enabled\n if (!rootSpanAttributes) {\n return;\n }\n if (rootSpanAttributes.get('next.span_type') !== next_dist_server_lib_trace_constants__WEBPACK_IMPORTED_MODULE_2__.BaseServerSpan.handleRequest) {\n console.warn(`Unexpected root span type '${rootSpanAttributes.get('next.span_type')}'. Please report this Next.js issue https://github.com/vercel/next.js`);\n return;\n }\n const route = rootSpanAttributes.get('next.route');\n if (route) {\n const name = `${method} ${route}`;\n span.setAttributes({\n 'next.route': route,\n 'http.route': route,\n 'next.span_name': name\n });\n span.updateName(name);\n } else {\n span.updateName(`${method} ${req.url}`);\n }\n });\n } catch (err) {\n // if this is a background revalidate we need to report\n // the request error here as it won't be bubbled\n if (previousCacheEntry == null ? void 0 : previousCacheEntry.isStale) {\n await routeModule.onRequestError(req, err, {\n routerKind: 'Pages Router',\n routePath: srcPage,\n routeType: 'render',\n revalidateReason: (0,next_dist_server_instrumentation_utils__WEBPACK_IMPORTED_MODULE_7__.getRevalidateReason)({\n isRevalidate: hasStaticProps,\n isOnDemandRevalidate\n })\n }, routerServerContext);\n }\n throw err;\n }\n };\n // if we've already generated this page we no longer\n // serve the fallback\n if (previousCacheEntry) {\n isIsrFallback = false;\n }\n if (isIsrFallback) {\n const fallbackResponse = await routeModule.getResponseCache(req).get(routeModule.isDev ? null : locale ? `/${locale}${srcPage}` : srcPage, async ({ previousCacheEntry: previousFallbackCacheEntry = null })=>{\n if (!routeModule.isDev) {\n return (0,next_dist_server_response_cache_utils__WEBPACK_IMPORTED_MODULE_20__.toResponseCacheEntry)(previousFallbackCacheEntry);\n }\n return doRender();\n }, {\n routeKind: next_dist_server_route_kind__WEBPACK_IMPORTED_MODULE_1__.RouteKind.PAGES,\n isFallback: true,\n isRoutePPREnabled: false,\n isOnDemandRevalidate: false,\n incrementalCache: await routeModule.getIncrementalCache(req, nextConfig, prerenderManifest),\n waitUntil: ctx.waitUntil\n });\n if (fallbackResponse) {\n // Remove the cache control from the response to prevent it from being\n // used in the surrounding cache.\n delete fallbackResponse.cacheControl;\n fallbackResponse.isMiss = true;\n return fallbackResponse;\n }\n }\n if (!(0,next_dist_server_request_meta__WEBPACK_IMPORTED_MODULE_5__.getRequestMeta)(req, 'minimalMode') && isOnDemandRevalidate && revalidateOnlyGenerated && !previousCacheEntry) {\n res.statusCode = 404;\n // on-demand revalidate always sets this header\n res.setHeader('x-nextjs-cache', 'REVALIDATED');\n res.end('This page could not be found');\n return null;\n }\n if (isIsrFallback && (previousCacheEntry == null ? void 0 : (_previousCacheEntry_value = previousCacheEntry.value) == null ? void 0 : _previousCacheEntry_value.kind) === next_dist_server_response_cache__WEBPACK_IMPORTED_MODULE_9__.CachedRouteKind.PAGES) {\n return {\n value: {\n kind: next_dist_server_response_cache__WEBPACK_IMPORTED_MODULE_9__.CachedRouteKind.PAGES,\n html: new next_dist_server_render_result__WEBPACK_IMPORTED_MODULE_19__[\"default\"](Buffer.from(previousCacheEntry.value.html), {\n contentType: 'text/html;utf-8',\n metadata: {\n statusCode: previousCacheEntry.value.status,\n headers: previousCacheEntry.value.headers\n }\n }),\n pageData: {},\n status: previousCacheEntry.value.status,\n headers: previousCacheEntry.value.headers\n },\n cacheControl: {\n revalidate: 0,\n expire: undefined\n }\n };\n }\n return doRender();\n };\n const result = await routeModule.handleResponse({\n cacheKey,\n req,\n nextConfig,\n routeKind: next_dist_server_route_kind__WEBPACK_IMPORTED_MODULE_1__.RouteKind.PAGES,\n isOnDemandRevalidate,\n revalidateOnlyGenerated,\n waitUntil: ctx.waitUntil,\n responseGenerator: responseGenerator,\n prerenderManifest\n });\n // if we got a cache hit this wasn't an ISR fallback\n // but it wasn't generated during build so isn't in the\n // prerender-manifest\n if (isIsrFallback && !(result == null ? void 0 : result.isMiss)) {\n isIsrFallback = false;\n }\n // response is finished is no cache entry\n if (!result) {\n return;\n }\n if (hasStaticProps && !(0,next_dist_server_request_meta__WEBPACK_IMPORTED_MODULE_5__.getRequestMeta)(req, 'minimalMode')) {\n res.setHeader('x-nextjs-cache', isOnDemandRevalidate ? 'REVALIDATED' : result.isMiss ? 'MISS' : result.isStale ? 'STALE' : 'HIT');\n }\n let cacheControl;\n if (!hasStaticProps || isIsrFallback) {\n if (!res.getHeader('Cache-Control')) {\n cacheControl = {\n revalidate: 0,\n expire: undefined\n };\n }\n } else if (is404Page) {\n const notFoundRevalidate = (0,next_dist_server_request_meta__WEBPACK_IMPORTED_MODULE_5__.getRequestMeta)(req, 'notFoundRevalidate');\n cacheControl = {\n revalidate: typeof notFoundRevalidate === 'undefined' ? 0 : notFoundRevalidate,\n expire: undefined\n };\n } else if (is500Page) {\n cacheControl = {\n revalidate: 0,\n expire: undefined\n };\n } else if (result.cacheControl) {\n // If the cache entry has a cache control with a revalidate value that's\n // a number, use it.\n if (typeof result.cacheControl.revalidate === 'number') {\n var _result_cacheControl;\n if (result.cacheControl.revalidate < 1) {\n throw Object.defineProperty(new Error(`Invalid revalidate configuration provided: ${result.cacheControl.revalidate} < 1`), \"__NEXT_ERROR_CODE\", {\n value: \"E22\",\n enumerable: false,\n configurable: true\n });\n }\n cacheControl = {\n revalidate: result.cacheControl.revalidate,\n expire: ((_result_cacheControl = result.cacheControl) == null ? void 0 : _result_cacheControl.expire) ?? nextConfig.expireTime\n };\n } else {\n // revalidate: false\n cacheControl = {\n revalidate: next_dist_lib_constants__WEBPACK_IMPORTED_MODULE_17__.CACHE_ONE_YEAR,\n expire: undefined\n };\n }\n }\n // If cache control is already set on the response we don't\n // override it to allow users to customize it via next.config\n if (cacheControl && !res.getHeader('Cache-Control')) {\n res.setHeader('Cache-Control', (0,next_dist_server_lib_cache_control__WEBPACK_IMPORTED_MODULE_14__.getCacheControlHeader)(cacheControl));\n }\n // notFound: true case\n if (!result.value) {\n var _result_cacheControl1;\n // add revalidate metadata before rendering 404 page\n // so that we can use this as source of truth for the\n // cache-control header instead of what the 404 page returns\n // for the revalidate value\n (0,next_dist_server_request_meta__WEBPACK_IMPORTED_MODULE_5__.addRequestMeta)(req, 'notFoundRevalidate', (_result_cacheControl1 = result.cacheControl) == null ? void 0 : _result_cacheControl1.revalidate);\n res.statusCode = 404;\n if (isNextDataRequest) {\n res.end('{\"notFound\":true}');\n return;\n }\n // TODO: should route-module itself handle rendering the 404\n if (routerServerContext == null ? void 0 : routerServerContext.render404) {\n await routerServerContext.render404(req, res, parsedUrl, false);\n } else {\n res.end('This page could not be found');\n }\n return;\n }\n if (result.value.kind === next_dist_server_response_cache__WEBPACK_IMPORTED_MODULE_9__.CachedRouteKind.REDIRECT) {\n if (isNextDataRequest) {\n res.setHeader('content-type', 'application/json');\n res.end(JSON.stringify(result.value.props));\n return;\n } else {\n const handleRedirect = (pageData)=>{\n const redirect = {\n destination: pageData.pageProps.__N_REDIRECT,\n statusCode: pageData.pageProps.__N_REDIRECT_STATUS,\n basePath: pageData.pageProps.__N_REDIRECT_BASE_PATH\n };\n const statusCode = (0,next_dist_lib_redirect_status__WEBPACK_IMPORTED_MODULE_16__.getRedirectStatus)(redirect);\n const { basePath } = nextConfig;\n if (basePath && redirect.basePath !== false && redirect.destination.startsWith('/')) {\n redirect.destination = `${basePath}${redirect.destination}`;\n }\n if (redirect.destination.startsWith('/')) {\n redirect.destination = (0,next_dist_shared_lib_utils__WEBPACK_IMPORTED_MODULE_15__.normalizeRepeatedSlashes)(redirect.destination);\n }\n res.statusCode = statusCode;\n res.setHeader('Location', redirect.destination);\n if (statusCode === next_dist_client_components_redirect_status_code__WEBPACK_IMPORTED_MODULE_22__.RedirectStatusCode.PermanentRedirect) {\n res.setHeader('Refresh', `0;url=${redirect.destination}`);\n }\n res.end(redirect.destination);\n };\n await handleRedirect(result.value.props);\n return null;\n }\n }\n if (result.value.kind !== next_dist_server_response_cache__WEBPACK_IMPORTED_MODULE_9__.CachedRouteKind.PAGES) {\n throw Object.defineProperty(new Error(`Invariant: received non-pages cache entry in pages handler`), \"__NEXT_ERROR_CODE\", {\n value: \"E695\",\n enumerable: false,\n configurable: true\n });\n }\n // In dev, we should not cache pages for any reason.\n if (routeModule.isDev) {\n res.setHeader('Cache-Control', 'no-store, must-revalidate');\n }\n // Draft mode should never be cached\n if (isDraftMode) {\n res.setHeader('Cache-Control', 'private, no-cache, no-store, max-age=0, must-revalidate');\n }\n // when invoking _error before pages/500 we don't actually\n // send the _error response\n if ((0,next_dist_server_request_meta__WEBPACK_IMPORTED_MODULE_5__.getRequestMeta)(req, 'customErrorRender') || isErrorPage && (0,next_dist_server_request_meta__WEBPACK_IMPORTED_MODULE_5__.getRequestMeta)(req, 'minimalMode') && res.statusCode === 500) {\n return null;\n }\n await (0,next_dist_server_send_payload__WEBPACK_IMPORTED_MODULE_18__.sendRenderResult)({\n req,\n res,\n // If we are rendering the error page it's not a data request\n // anymore\n result: isNextDataRequest && !isErrorPage && !is500Page ? new next_dist_server_render_result__WEBPACK_IMPORTED_MODULE_19__[\"default\"](Buffer.from(JSON.stringify(result.value.pageData)), {\n contentType: 'application/json',\n metadata: result.value.html.metadata\n }) : result.value.html,\n generateEtags: nextConfig.generateEtags,\n poweredByHeader: nextConfig.poweredByHeader,\n cacheControl: routeModule.isDev ? undefined : cacheControl,\n type: isNextDataRequest ? 'json' : 'html'\n });\n };\n // TODO: activeSpan code path is for when wrapped by\n // next-server can be removed when this is no longer used\n if (activeSpan) {\n await handleResponse();\n } else {\n await tracer.withPropagatedContext(req.headers, ()=>tracer.trace(next_dist_server_lib_trace_constants__WEBPACK_IMPORTED_MODULE_2__.BaseServerSpan.handleRequest, {\n spanName: `${method} ${req.url}`,\n kind: next_dist_server_lib_trace_tracer__WEBPACK_IMPORTED_MODULE_3__.SpanKind.SERVER,\n attributes: {\n 'http.method': method,\n 'http.target': req.url\n }\n }, handleResponse));\n }\n } catch (err) {\n await routeModule.onRequestError(req, err, {\n routerKind: 'Pages Router',\n routePath: srcPage,\n routeType: 'render',\n revalidateReason: (0,next_dist_server_instrumentation_utils__WEBPACK_IMPORTED_MODULE_7__.getRevalidateReason)({\n isRevalidate: hasStaticProps,\n isOnDemandRevalidate\n })\n }, routerServerContext);\n // rethrow so that we can handle serving error page\n throw err;\n }\n}\n\n//# sourceMappingURL=pages.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1ub2RlKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvYnVpbGQvd2VicGFjay9sb2FkZXJzL25leHQtcm91dGUtbG9hZGVyL2luZGV4LmpzP2tpbmQ9UEFHRVMmcGFnZT0lMkZfZXJyb3ImcHJlZmVycmVkUmVnaW9uPSZhYnNvbHV0ZVBhZ2VQYXRoPXByaXZhdGUtbmV4dC1wYWdlcyUyRl9lcnJvciZhYnNvbHV0ZUFwcFBhdGg9cHJpdmF0ZS1uZXh0LXBhZ2VzJTJGX2FwcCZhYnNvbHV0ZURvY3VtZW50UGF0aD1wcml2YXRlLW5leHQtcGFnZXMlMkZfZG9jdW1lbnQmbWlkZGxld2FyZUNvbmZpZ0Jhc2U2ND1lMzAlM0QhIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBd0Y7QUFDaEM7QUFDYztBQUNFO0FBQ0M7QUFDTTtBQUNGO0FBQ0E7QUFDVTtBQUNyQjtBQUNSO0FBQzFEO0FBQ3lEO0FBQ1Y7QUFDL0M7QUFDc0Q7QUFDcUI7QUFDTDtBQUNKO0FBQ1Q7QUFDUTtBQUNQO0FBQ21CO0FBQ0s7QUFDSTtBQUNyQjtBQUNpQjtBQUNZO0FBQzlGO0FBQ0EsaUVBQWUseUVBQUssQ0FBQyxzREFBUSxZQUFZLEVBQUM7QUFDMUM7QUFDTyx1QkFBdUIseUVBQUssQ0FBQyxzREFBUTtBQUNyQyx1QkFBdUIseUVBQUssQ0FBQyxzREFBUTtBQUNyQywyQkFBMkIseUVBQUssQ0FBQyxzREFBUTtBQUN6QyxlQUFlLHlFQUFLLENBQUMsc0RBQVE7QUFDN0Isd0JBQXdCLHlFQUFLLENBQUMsc0RBQVE7QUFDN0M7QUFDTyxnQ0FBZ0MseUVBQUssQ0FBQyxzREFBUTtBQUM5QyxnQ0FBZ0MseUVBQUssQ0FBQyxzREFBUTtBQUM5QyxpQ0FBaUMseUVBQUssQ0FBQyxzREFBUTtBQUMvQyxnQ0FBZ0MseUVBQUssQ0FBQyxzREFBUTtBQUM5QyxvQ0FBb0MseUVBQUssQ0FBQyxzREFBUTtBQUN6RDtBQUNPLHdCQUF3QixrR0FBZ0I7QUFDL0M7QUFDQSxjQUFjLGtFQUFTO0FBQ3ZCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0wsYUFBYSxPQUFvQyxJQUFJLENBQUU7QUFDdkQsZ0JBQWdCLE1BQXVDO0FBQ3ZEO0FBQ0E7QUFDQSxhQUFhLCtEQUFXO0FBQ3hCLGtCQUFrQixxRUFBZ0I7QUFDbEMsS0FBSztBQUNMLFlBQVk7QUFDWixDQUFDO0FBQ007QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsUUFBUSxLQUFxQixFQUFFLEVBRTFCLENBQUM7QUFDTjtBQUNBO0FBQ0E7QUFDQSwrQkFBK0IsT0FBd0M7QUFDdkU7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFlBQVksb1RBQW9UO0FBQ2hVO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esd0NBQXdDLGtFQUFnQixJQUFJLHNEQUFRO0FBQ3BFO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxzQkFBc0IsYUFBYSxPQUFPLE9BQU8sRUFBRSxnRkFBZ0YsRUFBRSxvQkFBb0I7QUFDeko7QUFDQSwwQkFBMEIsYUFBYSxPQUFPLE9BQU8sRUFBRSxRQUFRLEVBQUUsb0JBQW9CO0FBQ3JGO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxnQ0FBZ0MsNkdBQW1CLFVBQVUsaUdBQWEsdUJBQXVCLE9BQU87QUFDeEc7QUFDQTtBQUNBO0FBQ0E7QUFDQSwwQkFBMEIsNkZBQWU7QUFDekM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EseUJBQXlCLGdGQUFLLHFDQUFxQyw2RUFBYztBQUNqRjtBQUNBO0FBQ0EsbUJBQW1CLDRFQUFTO0FBQzVCO0FBQ0E7QUFDQTtBQUNBLDRCQUE0Qix1RkFBUztBQUNyQyxzRUFBc0UsNkdBQW1CO0FBQ3pGO0FBQ0EsdUNBQXVDO0FBQ3ZDLFNBQVM7QUFDVDtBQUNBO0FBQ0EsK0NBQStDLG9CQUFvQjtBQUNuRTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxrQ0FBa0M7QUFDbEMsOEJBQThCO0FBQzlCO0FBQ0E7QUFDQSw2QkFBNkI7QUFDN0I7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLCtEQUErRCw2RUFBYztBQUM3RSw2QkFBNkI7QUFDN0I7QUFDQTtBQUNBO0FBQ0EsOENBQThDLEtBQThCO0FBQzVFLDZCQUE2QjtBQUM3QjtBQUNBO0FBQ0E7QUFDQTtBQUNBLHdEQUF3RDtBQUN4RCwyQ0FBMkMsMkZBQWMsQ0FBQyxzREFBUTtBQUNsRSw4Q0FBOEMsc0RBQVE7QUFDdEQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxpQ0FBaUM7QUFDakM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsdUZBQXVGLHVGQUFTO0FBQ2hHO0FBQ0E7QUFDQSxrRUFBa0UscUdBQWlCO0FBQ25GO0FBQ0EsaUNBQWlDO0FBQ2pDO0FBQ0EsNENBQTRDLDZFQUFjO0FBQzFELHFDQUFxQyw2RUFBYztBQUNuRDtBQUNBO0FBQ0EsNENBQTRDLHVCQUF1QixHQUFHLG9CQUFvQjtBQUMxRjtBQUNBLDhDQUE4Qyw2RUFBYztBQUM1RDtBQUNBLHlCQUF5QjtBQUN6QixvQ0FBb0MsV0FBVztBQUMvQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsOENBQThDLDRFQUFlO0FBQzdEO0FBQ0EscUNBQXFDO0FBQ3JDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSwwQ0FBMEMsNEVBQWU7QUFDekQ7QUFDQTtBQUNBO0FBQ0E7QUFDQSxpQ0FBaUM7QUFDakM7QUFDQTtBQUNBLHlCQUF5QjtBQUN6QjtBQUNBO0FBQ0E7QUFDQTtBQUNBLDZCQUE2QjtBQUM3QjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsNkVBQTZFLGdGQUFjO0FBQzNGLDJFQUEyRSx5Q0FBeUM7QUFDcEg7QUFDQTtBQUNBO0FBQ0E7QUFDQSxnREFBZ0QsUUFBUSxFQUFFLE1BQU07QUFDaEU7QUFDQTtBQUNBO0FBQ0E7QUFDQSxpQ0FBaUM7QUFDakM7QUFDQSw4QkFBOEI7QUFDOUIsbURBQW1ELFFBQVEsRUFBRSxRQUFRO0FBQ3JFO0FBQ0EseUJBQXlCO0FBQ3pCLHNCQUFzQjtBQUN0QjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGtEQUFrRCwyRkFBbUI7QUFDckU7QUFDQTtBQUNBLGlDQUFpQztBQUNqQyw2QkFBNkI7QUFDN0I7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxpSUFBaUksT0FBTyxFQUFFLFFBQVEsc0JBQXNCLHVEQUF1RDtBQUMvTjtBQUNBLG1DQUFtQyw0RkFBb0I7QUFDdkQ7QUFDQTtBQUNBLHFCQUFxQjtBQUNyQixtQ0FBbUMsa0VBQVM7QUFDNUM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHFCQUFxQjtBQUNyQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EscUJBQXFCLDZFQUFjO0FBQ25DO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLDBMQUEwTCw0RUFBZTtBQUN6TTtBQUNBO0FBQ0Esa0NBQWtDLDRFQUFlO0FBQ2pELHNDQUFzQyx1RUFBWTtBQUNsRCx3REFBd0Q7QUFDeEQ7QUFDQTtBQUNBO0FBQ0E7QUFDQSw2QkFBNkI7QUFDN0Isd0NBQXdDO0FBQ3hDO0FBQ0E7QUFDQSx5QkFBeUI7QUFDekI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsMkJBQTJCLGtFQUFTO0FBQ3BDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxhQUFhO0FBQ2I7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxtQ0FBbUMsNkVBQWM7QUFDakQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxjQUFjO0FBQ2QsMkNBQTJDLDZFQUFjO0FBQ3pEO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsY0FBYztBQUNkO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsY0FBYztBQUNkO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSw0R0FBNEcsZ0NBQWdDO0FBQzVJO0FBQ0E7QUFDQTtBQUNBLHlCQUF5QjtBQUN6QjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esa0JBQWtCO0FBQ2xCO0FBQ0E7QUFDQSxvQ0FBb0Msb0VBQWM7QUFDbEQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSwrQ0FBK0MsMEZBQXFCO0FBQ3BFO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxnQkFBZ0IsNkVBQWM7QUFDOUI7QUFDQTtBQUNBLDhCQUE4QixnQkFBZ0I7QUFDOUM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGtCQUFrQjtBQUNsQjtBQUNBO0FBQ0E7QUFDQTtBQUNBLHNDQUFzQyw0RUFBZTtBQUNyRDtBQUNBO0FBQ0E7QUFDQTtBQUNBLGtCQUFrQjtBQUNsQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSwyQ0FBMkMsaUZBQWlCO0FBQzVELGdDQUFnQyxXQUFXO0FBQzNDO0FBQ0Esc0RBQXNELFNBQVMsRUFBRSxxQkFBcUI7QUFDdEY7QUFDQTtBQUNBLG1EQUFtRCxxRkFBd0I7QUFDM0U7QUFDQTtBQUNBO0FBQ0EsMkNBQTJDLGlHQUFrQjtBQUM3RCx3REFBd0QsTUFBTSxxQkFBcUI7QUFDbkY7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxzQ0FBc0MsNEVBQWU7QUFDckQ7QUFDQTtBQUNBO0FBQ0E7QUFDQSxpQkFBaUI7QUFDakI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGdCQUFnQiw2RUFBYyw2Q0FBNkMsNkVBQWM7QUFDekY7QUFDQTtBQUNBLGtCQUFrQixnRkFBZ0I7QUFDbEM7QUFDQTtBQUNBO0FBQ0E7QUFDQSw4RUFBOEUsdUVBQVk7QUFDMUY7QUFDQTtBQUNBLGlCQUFpQjtBQUNqQjtBQUNBO0FBQ0E7QUFDQTtBQUNBLGFBQWE7QUFDYjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsVUFBVTtBQUNWLDZFQUE2RSxnRkFBYztBQUMzRixpQ0FBaUMsUUFBUSxFQUFFLFFBQVE7QUFDbkQsMEJBQTBCLHVFQUFRO0FBQ2xDO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsaUJBQWlCO0FBQ2pCO0FBQ0EsTUFBTTtBQUNOO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsOEJBQThCLDJGQUFtQjtBQUNqRDtBQUNBO0FBQ0EsYUFBYTtBQUNiLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQTs7QUFFQSIsInNvdXJjZXMiOlsiIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFBhZ2VzUm91dGVNb2R1bGUgfSBmcm9tIFwibmV4dC9kaXN0L3NlcnZlci9yb3V0ZS1tb2R1bGVzL3BhZ2VzL21vZHVsZS5jb21waWxlZFwiO1xuaW1wb3J0IHsgUm91dGVLaW5kIH0gZnJvbSBcIm5leHQvZGlzdC9zZXJ2ZXIvcm91dGUta2luZFwiO1xuaW1wb3J0IHsgQmFzZVNlcnZlclNwYW4gfSBmcm9tIFwibmV4dC9kaXN0L3NlcnZlci9saWIvdHJhY2UvY29uc3RhbnRzXCI7XG5pbXBvcnQgeyBnZXRUcmFjZXIsIFNwYW5LaW5kIH0gZnJvbSBcIm5leHQvZGlzdC9zZXJ2ZXIvbGliL3RyYWNlL3RyYWNlclwiO1xuaW1wb3J0IHsgZm9ybWF0VXJsIH0gZnJvbSBcIm5leHQvZGlzdC9zaGFyZWQvbGliL3JvdXRlci91dGlscy9mb3JtYXQtdXJsXCI7XG5pbXBvcnQgeyBhZGRSZXF1ZXN0TWV0YSwgZ2V0UmVxdWVzdE1ldGEgfSBmcm9tIFwibmV4dC9kaXN0L3NlcnZlci9yZXF1ZXN0LW1ldGFcIjtcbmltcG9ydCB7IGludGVyb3BEZWZhdWx0IH0gZnJvbSBcIm5leHQvZGlzdC9zZXJ2ZXIvYXBwLXJlbmRlci9pbnRlcm9wLWRlZmF1bHRcIjtcbmltcG9ydCB7IGdldFJldmFsaWRhdGVSZWFzb24gfSBmcm9tIFwibmV4dC9kaXN0L3NlcnZlci9pbnN0cnVtZW50YXRpb24vdXRpbHNcIjtcbmltcG9ydCB7IG5vcm1hbGl6ZURhdGFQYXRoIH0gZnJvbSBcIm5leHQvZGlzdC9zaGFyZWQvbGliL3BhZ2UtcGF0aC9ub3JtYWxpemUtZGF0YS1wYXRoXCI7XG5pbXBvcnQgeyBDYWNoZWRSb3V0ZUtpbmQgfSBmcm9tIFwibmV4dC9kaXN0L3NlcnZlci9yZXNwb25zZS1jYWNoZVwiO1xuaW1wb3J0IHsgaG9pc3QgfSBmcm9tIFwibmV4dC9kaXN0L2J1aWxkL3RlbXBsYXRlcy9oZWxwZXJzXCI7XG4vLyBJbXBvcnQgdGhlIGFwcCBhbmQgZG9jdW1lbnQgbW9kdWxlcy5cbmltcG9ydCAqIGFzIGRvY3VtZW50IGZyb20gXCJwcml2YXRlLW5leHQtcGFnZXMvX2RvY3VtZW50XCI7XG5pbXBvcnQgKiBhcyBhcHAgZnJvbSBcInByaXZhdGUtbmV4dC1wYWdlcy9fYXBwXCI7XG4vLyBJbXBvcnQgdGhlIHVzZXJsYW5kIGNvZGUuXG5pbXBvcnQgKiBhcyB1c2VybGFuZCBmcm9tIFwicHJpdmF0ZS1uZXh0LXBhZ2VzL19lcnJvclwiO1xuaW1wb3J0IHsgZ2V0Q2FjaGVDb250cm9sSGVhZGVyIH0gZnJvbSBcIm5leHQvZGlzdC9zZXJ2ZXIvbGliL2NhY2hlLWNvbnRyb2xcIjtcbmltcG9ydCB7IG5vcm1hbGl6ZVJlcGVhdGVkU2xhc2hlcyB9IGZyb20gXCJuZXh0L2Rpc3Qvc2hhcmVkL2xpYi91dGlsc1wiO1xuaW1wb3J0IHsgZ2V0UmVkaXJlY3RTdGF0dXMgfSBmcm9tIFwibmV4dC9kaXN0L2xpYi9yZWRpcmVjdC1zdGF0dXNcIjtcbmltcG9ydCB7IENBQ0hFX09ORV9ZRUFSIH0gZnJvbSBcIm5leHQvZGlzdC9saWIvY29uc3RhbnRzXCI7XG5pbXBvcnQgeyBzZW5kUmVuZGVyUmVzdWx0IH0gZnJvbSBcIm5leHQvZGlzdC9zZXJ2ZXIvc2VuZC1wYXlsb2FkXCI7XG5pbXBvcnQgUmVuZGVyUmVzdWx0IGZyb20gXCJuZXh0L2Rpc3Qvc2VydmVyL3JlbmRlci1yZXN1bHRcIjtcbmltcG9ydCB7IHRvUmVzcG9uc2VDYWNoZUVudHJ5IH0gZnJvbSBcIm5leHQvZGlzdC9zZXJ2ZXIvcmVzcG9uc2UtY2FjaGUvdXRpbHNcIjtcbmltcG9ydCB7IE5vRmFsbGJhY2tFcnJvciB9IGZyb20gXCJuZXh0L2Rpc3Qvc2hhcmVkL2xpYi9uby1mYWxsYmFjay1lcnJvci5leHRlcm5hbFwiO1xuaW1wb3J0IHsgUmVkaXJlY3RTdGF0dXNDb2RlIH0gZnJvbSBcIm5leHQvZGlzdC9jbGllbnQvY29tcG9uZW50cy9yZWRpcmVjdC1zdGF0dXMtY29kZVwiO1xuaW1wb3J0IHsgaXNCb3QgfSBmcm9tIFwibmV4dC9kaXN0L3NoYXJlZC9saWIvcm91dGVyL3V0aWxzL2lzLWJvdFwiO1xuaW1wb3J0IHsgYWRkUGF0aFByZWZpeCB9IGZyb20gXCJuZXh0L2Rpc3Qvc2hhcmVkL2xpYi9yb3V0ZXIvdXRpbHMvYWRkLXBhdGgtcHJlZml4XCI7XG5pbXBvcnQgeyByZW1vdmVUcmFpbGluZ1NsYXNoIH0gZnJvbSBcIm5leHQvZGlzdC9zaGFyZWQvbGliL3JvdXRlci91dGlscy9yZW1vdmUtdHJhaWxpbmctc2xhc2hcIjtcbi8vIFJlLWV4cG9ydCB0aGUgY29tcG9uZW50IChzaG91bGQgYmUgdGhlIGRlZmF1bHQgZXhwb3J0KS5cbmV4cG9ydCBkZWZhdWx0IGhvaXN0KHVzZXJsYW5kLCAnZGVmYXVsdCcpO1xuLy8gUmUtZXhwb3J0IG1ldGhvZHMuXG5leHBvcnQgY29uc3QgZ2V0U3RhdGljUHJvcHMgPSBob2lzdCh1c2VybGFuZCwgJ2dldFN0YXRpY1Byb3BzJyk7XG5leHBvcnQgY29uc3QgZ2V0U3RhdGljUGF0aHMgPSBob2lzdCh1c2VybGFuZCwgJ2dldFN0YXRpY1BhdGhzJyk7XG5leHBvcnQgY29uc3QgZ2V0U2VydmVyU2lkZVByb3BzID0gaG9pc3QodXNlcmxhbmQsICdnZXRTZXJ2ZXJTaWRlUHJvcHMnKTtcbmV4cG9ydCBjb25zdCBjb25maWcgPSBob2lzdCh1c2VybGFuZCwgJ2NvbmZpZycpO1xuZXhwb3J0IGNvbnN0IHJlcG9ydFdlYlZpdGFscyA9IGhvaXN0KHVzZXJsYW5kLCAncmVwb3J0V2ViVml0YWxzJyk7XG4vLyBSZS1leHBvcnQgbGVnYWN5IG1ldGhvZHMuXG5leHBvcnQgY29uc3QgdW5zdGFibGVfZ2V0U3RhdGljUHJvcHMgPSBob2lzdCh1c2VybGFuZCwgJ3Vuc3RhYmxlX2dldFN0YXRpY1Byb3BzJyk7XG5leHBvcnQgY29uc3QgdW5zdGFibGVfZ2V0U3RhdGljUGF0aHMgPSBob2lzdCh1c2VybGFuZCwgJ3Vuc3RhYmxlX2dldFN0YXRpY1BhdGhzJyk7XG5leHBvcnQgY29uc3QgdW5zdGFibGVfZ2V0U3RhdGljUGFyYW1zID0gaG9pc3QodXNlcmxhbmQsICd1bnN0YWJsZV9nZXRTdGF0aWNQYXJhbXMnKTtcbmV4cG9ydCBjb25zdCB1bnN0YWJsZV9nZXRTZXJ2ZXJQcm9wcyA9IGhvaXN0KHVzZXJsYW5kLCAndW5zdGFibGVfZ2V0U2VydmVyUHJvcHMnKTtcbmV4cG9ydCBjb25zdCB1bnN0YWJsZV9nZXRTZXJ2ZXJTaWRlUHJvcHMgPSBob2lzdCh1c2VybGFuZCwgJ3Vuc3RhYmxlX2dldFNlcnZlclNpZGVQcm9wcycpO1xuLy8gQ3JlYXRlIGFuZCBleHBvcnQgdGhlIHJvdXRlIG1vZHVsZSB0aGF0IHdpbGwgYmUgY29uc3VtZWQuXG5leHBvcnQgY29uc3Qgcm91dGVNb2R1bGUgPSBuZXcgUGFnZXNSb3V0ZU1vZHVsZSh7XG4gICAgZGVmaW5pdGlvbjoge1xuICAgICAgICBraW5kOiBSb3V0ZUtpbmQuUEFHRVMsXG4gICAgICAgIHBhZ2U6IFwiL19lcnJvclwiLFxuICAgICAgICBwYXRobmFtZTogXCIvX2Vycm9yXCIsXG4gICAgICAgIC8vIFRoZSBmb2xsb3dpbmcgYXJlbid0IHVzZWQgaW4gcHJvZHVjdGlvbi5cbiAgICAgICAgYnVuZGxlUGF0aDogJycsXG4gICAgICAgIGZpbGVuYW1lOiAnJ1xuICAgIH0sXG4gICAgZGlzdERpcjogcHJvY2Vzcy5lbnYuX19ORVhUX1JFTEFUSVZFX0RJU1RfRElSIHx8ICcnLFxuICAgIHByb2plY3REaXI6IHByb2Nlc3MuZW52Ll9fTkVYVF9SRUxBVElWRV9QUk9KRUNUX0RJUiB8fCAnJyxcbiAgICBjb21wb25lbnRzOiB7XG4gICAgICAgIC8vIGRlZmF1bHQgZXhwb3J0IG1pZ2h0IG5vdCBleGlzdCB3aGVuIG9wdGltaXplZCBmb3IgZGF0YSBvbmx5XG4gICAgICAgIEFwcDogYXBwLmRlZmF1bHQsXG4gICAgICAgIERvY3VtZW50OiBkb2N1bWVudC5kZWZhdWx0XG4gICAgfSxcbiAgICB1c2VybGFuZFxufSk7XG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gaGFuZGxlcihyZXEsIHJlcywgY3R4KSB7XG4gICAgdmFyIF9zZXJ2ZXJGaWxlc01hbmlmZXN0X2NvbmZpZ19leHBlcmltZW50YWwsIF9zZXJ2ZXJGaWxlc01hbmlmZXN0X2NvbmZpZztcbiAgICBsZXQgc3JjUGFnZSA9IFwiL19lcnJvclwiO1xuICAgIC8vIHR1cmJvcGFjayBkb2Vzbid0IG5vcm1hbGl6ZSBgL2luZGV4YCBpbiB0aGUgcGFnZSBuYW1lXG4gICAgLy8gc28gd2UgbmVlZCB0byB0byBwcm9jZXNzIGR5bmFtaWMgcm91dGVzIHByb3Blcmx5XG4gICAgLy8gVE9ETzogZml4IHR1cmJvcGFjayBwcm92aWRpbmcgZGlmZmVyaW5nIHZhbHVlIGZyb20gd2VicGFja1xuICAgIGlmIChwcm9jZXNzLmVudi5UVVJCT1BBQ0spIHtcbiAgICAgICAgc3JjUGFnZSA9IHNyY1BhZ2UucmVwbGFjZSgvXFwvaW5kZXgkLywgJycpIHx8ICcvJztcbiAgICB9IGVsc2UgaWYgKHNyY1BhZ2UgPT09ICcvaW5kZXgnKSB7XG4gICAgICAgIC8vIHdlIGFsd2F5cyBub3JtYWxpemUgL2luZGV4IHNwZWNpZmljYWxseVxuICAgICAgICBzcmNQYWdlID0gJy8nO1xuICAgIH1cbiAgICBjb25zdCBtdWx0aVpvbmVEcmFmdE1vZGUgPSBwcm9jZXNzLmVudi5fX05FWFRfTVVMVElfWk9ORV9EUkFGVF9NT0RFO1xuICAgIGNvbnN0IHByZXBhcmVSZXN1bHQgPSBhd2FpdCByb3V0ZU1vZHVsZS5wcmVwYXJlKHJlcSwgcmVzLCB7XG4gICAgICAgIHNyY1BhZ2UsXG4gICAgICAgIG11bHRpWm9uZURyYWZ0TW9kZVxuICAgIH0pO1xuICAgIGlmICghcHJlcGFyZVJlc3VsdCkge1xuICAgICAgICByZXMuc3RhdHVzQ29kZSA9IDQwMDtcbiAgICAgICAgcmVzLmVuZCgnQmFkIFJlcXVlc3QnKTtcbiAgICAgICAgY3R4LndhaXRVbnRpbCA9PSBudWxsID8gdm9pZCAwIDogY3R4LndhaXRVbnRpbC5jYWxsKGN0eCwgUHJvbWlzZS5yZXNvbHZlKCkpO1xuICAgICAgICByZXR1cm47XG4gICAgfVxuICAgIGNvbnN0IHsgYnVpbGRJZCwgcXVlcnksIHBhcmFtcywgcGFyc2VkVXJsLCBvcmlnaW5hbFF1ZXJ5LCBvcmlnaW5hbFBhdGhuYW1lLCBidWlsZE1hbmlmZXN0LCBuZXh0Rm9udE1hbmlmZXN0LCBzZXJ2ZXJGaWxlc01hbmlmZXN0LCByZWFjdExvYWRhYmxlTWFuaWZlc3QsIHByZXJlbmRlck1hbmlmZXN0LCBpc0RyYWZ0TW9kZSwgaXNPbkRlbWFuZFJldmFsaWRhdGUsIHJldmFsaWRhdGVPbmx5R2VuZXJhdGVkLCBsb2NhbGUsIGxvY2FsZXMsIGRlZmF1bHRMb2NhbGUsIHJvdXRlclNlcnZlckNvbnRleHQsIG5leHRDb25maWcsIHJlc29sdmVkUGF0aG5hbWUgfSA9IHByZXBhcmVSZXN1bHQ7XG4gICAgY29uc3QgaXNFeHBlcmltZW50YWxDb21waWxlID0gc2VydmVyRmlsZXNNYW5pZmVzdCA9PSBudWxsID8gdm9pZCAwIDogKF9zZXJ2ZXJGaWxlc01hbmlmZXN0X2NvbmZpZyA9IHNlcnZlckZpbGVzTWFuaWZlc3QuY29uZmlnKSA9PSBudWxsID8gdm9pZCAwIDogKF9zZXJ2ZXJGaWxlc01hbmlmZXN0X2NvbmZpZ19leHBlcmltZW50YWwgPSBfc2VydmVyRmlsZXNNYW5pZmVzdF9jb25maWcuZXhwZXJpbWVudGFsKSA9PSBudWxsID8gdm9pZCAwIDogX3NlcnZlckZpbGVzTWFuaWZlc3RfY29uZmlnX2V4cGVyaW1lbnRhbC5pc0V4cGVyaW1lbnRhbENvbXBpbGU7XG4gICAgY29uc3QgaGFzU2VydmVyUHJvcHMgPSBCb29sZWFuKGdldFNlcnZlclNpZGVQcm9wcyk7XG4gICAgY29uc3QgaGFzU3RhdGljUHJvcHMgPSBCb29sZWFuKGdldFN0YXRpY1Byb3BzKTtcbiAgICBjb25zdCBoYXNTdGF0aWNQYXRocyA9IEJvb2xlYW4oZ2V0U3RhdGljUGF0aHMpO1xuICAgIGNvbnN0IGhhc0dldEluaXRpYWxQcm9wcyA9IEJvb2xlYW4oKHVzZXJsYW5kLmRlZmF1bHQgfHwgdXNlcmxhbmQpLmdldEluaXRpYWxQcm9wcyk7XG4gICAgY29uc3QgaXNBbXAgPSBxdWVyeS5hbXAgJiYgY29uZmlnLmFtcDtcbiAgICBsZXQgY2FjaGVLZXkgPSBudWxsO1xuICAgIGxldCBpc0lzckZhbGxiYWNrID0gZmFsc2U7XG4gICAgbGV0IGlzTmV4dERhdGFSZXF1ZXN0ID0gcHJlcGFyZVJlc3VsdC5pc05leHREYXRhUmVxdWVzdCAmJiAoaGFzU3RhdGljUHJvcHMgfHwgaGFzU2VydmVyUHJvcHMpO1xuICAgIGNvbnN0IGlzNDA0UGFnZSA9IHNyY1BhZ2UgPT09ICcvNDA0JztcbiAgICBjb25zdCBpczUwMFBhZ2UgPSBzcmNQYWdlID09PSAnLzUwMCc7XG4gICAgY29uc3QgaXNFcnJvclBhZ2UgPSBzcmNQYWdlID09PSAnL19lcnJvcic7XG4gICAgaWYgKCFyb3V0ZU1vZHVsZS5pc0RldiAmJiAhaXNEcmFmdE1vZGUgJiYgaGFzU3RhdGljUHJvcHMpIHtcbiAgICAgICAgY2FjaGVLZXkgPSBgJHtsb2NhbGUgPyBgLyR7bG9jYWxlfWAgOiAnJ30keyhzcmNQYWdlID09PSAnLycgfHwgcmVzb2x2ZWRQYXRobmFtZSA9PT0gJy8nKSAmJiBsb2NhbGUgPyAnJyA6IHJlc29sdmVkUGF0aG5hbWV9JHtpc0FtcCA/ICcuYW1wJyA6ICcnfWA7XG4gICAgICAgIGlmIChpczQwNFBhZ2UgfHwgaXM1MDBQYWdlIHx8IGlzRXJyb3JQYWdlKSB7XG4gICAgICAgICAgICBjYWNoZUtleSA9IGAke2xvY2FsZSA/IGAvJHtsb2NhbGV9YCA6ICcnfSR7c3JjUGFnZX0ke2lzQW1wID8gJy5hbXAnIDogJyd9YDtcbiAgICAgICAgfVxuICAgICAgICAvLyBlbnN1cmUgL2luZGV4IGFuZCAvIGlzIG5vcm1hbGl6ZWQgdG8gb25lIGtleVxuICAgICAgICBjYWNoZUtleSA9IGNhY2hlS2V5ID09PSAnL2luZGV4JyA/ICcvJyA6IGNhY2hlS2V5O1xuICAgIH1cbiAgICBpZiAoaGFzU3RhdGljUGF0aHMgJiYgIWlzRHJhZnRNb2RlKSB7XG4gICAgICAgIGNvbnN0IGRlY29kZWRQYXRobmFtZSA9IHJlbW92ZVRyYWlsaW5nU2xhc2gobG9jYWxlID8gYWRkUGF0aFByZWZpeChyZXNvbHZlZFBhdGhuYW1lLCBgLyR7bG9jYWxlfWApIDogcmVzb2x2ZWRQYXRobmFtZSk7XG4gICAgICAgIGNvbnN0IGlzUHJlcmVuZGVyZWQgPSBCb29sZWFuKHByZXJlbmRlck1hbmlmZXN0LnJvdXRlc1tkZWNvZGVkUGF0aG5hbWVdKSB8fCBwcmVyZW5kZXJNYW5pZmVzdC5ub3RGb3VuZFJvdXRlcy5pbmNsdWRlcyhkZWNvZGVkUGF0aG5hbWUpO1xuICAgICAgICBjb25zdCBwcmVyZW5kZXJJbmZvID0gcHJlcmVuZGVyTWFuaWZlc3QuZHluYW1pY1JvdXRlc1tzcmNQYWdlXTtcbiAgICAgICAgaWYgKHByZXJlbmRlckluZm8pIHtcbiAgICAgICAgICAgIGlmIChwcmVyZW5kZXJJbmZvLmZhbGxiYWNrID09PSBmYWxzZSAmJiAhaXNQcmVyZW5kZXJlZCkge1xuICAgICAgICAgICAgICAgIHRocm93IG5ldyBOb0ZhbGxiYWNrRXJyb3IoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmICh0eXBlb2YgcHJlcmVuZGVySW5mby5mYWxsYmFjayA9PT0gJ3N0cmluZycgJiYgIWlzUHJlcmVuZGVyZWQgJiYgIWlzTmV4dERhdGFSZXF1ZXN0KSB7XG4gICAgICAgICAgICAgICAgaXNJc3JGYWxsYmFjayA9IHRydWU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG4gICAgLy8gV2hlbiBzZXJ2aW5nIGEgYm90IHJlcXVlc3QsIHdlIHdhbnQgdG8gc2VydmUgYSBibG9ja2luZyByZW5kZXIgYW5kIG5vdFxuICAgIC8vIHRoZSBwcmVyZW5kZXJlZCBwYWdlLiBUaGlzIGVuc3VyZXMgdGhhdCB0aGUgY29ycmVjdCBjb250ZW50IGlzIHNlcnZlZFxuICAgIC8vIHRvIHRoZSBib3QgaW4gdGhlIGhlYWQuXG4gICAgaWYgKGlzSXNyRmFsbGJhY2sgJiYgaXNCb3QocmVxLmhlYWRlcnNbJ3VzZXItYWdlbnQnXSB8fCAnJykgfHwgZ2V0UmVxdWVzdE1ldGEocmVxLCAnbWluaW1hbE1vZGUnKSkge1xuICAgICAgICBpc0lzckZhbGxiYWNrID0gZmFsc2U7XG4gICAgfVxuICAgIGNvbnN0IHRyYWNlciA9IGdldFRyYWNlcigpO1xuICAgIGNvbnN0IGFjdGl2ZVNwYW4gPSB0cmFjZXIuZ2V0QWN0aXZlU2NvcGVTcGFuKCk7XG4gICAgdHJ5IHtcbiAgICAgICAgY29uc3QgbWV0aG9kID0gcmVxLm1ldGhvZCB8fCAnR0VUJztcbiAgICAgICAgY29uc3QgcmVzb2x2ZWRVcmwgPSBmb3JtYXRVcmwoe1xuICAgICAgICAgICAgcGF0aG5hbWU6IG5leHRDb25maWcudHJhaWxpbmdTbGFzaCA/IHBhcnNlZFVybC5wYXRobmFtZSA6IHJlbW92ZVRyYWlsaW5nU2xhc2gocGFyc2VkVXJsLnBhdGhuYW1lIHx8ICcvJyksXG4gICAgICAgICAgICAvLyBtYWtlIHN1cmUgdG8gb25seSBhZGQgcXVlcnkgdmFsdWVzIGZyb20gb3JpZ2luYWwgVVJMXG4gICAgICAgICAgICBxdWVyeTogaGFzU3RhdGljUHJvcHMgPyB7fSA6IG9yaWdpbmFsUXVlcnlcbiAgICAgICAgfSk7XG4gICAgICAgIGNvbnN0IHB1YmxpY1J1bnRpbWVDb25maWcgPSAocm91dGVyU2VydmVyQ29udGV4dCA9PSBudWxsID8gdm9pZCAwIDogcm91dGVyU2VydmVyQ29udGV4dC5wdWJsaWNSdW50aW1lQ29uZmlnKSB8fCBuZXh0Q29uZmlnLnB1YmxpY1J1bnRpbWVDb25maWc7XG4gICAgICAgIGNvbnN0IGhhbmRsZVJlc3BvbnNlID0gYXN5bmMgKHNwYW4pPT57XG4gICAgICAgICAgICBjb25zdCByZXNwb25zZUdlbmVyYXRvciA9IGFzeW5jICh7IHByZXZpb3VzQ2FjaGVFbnRyeSB9KT0+e1xuICAgICAgICAgICAgICAgIHZhciBfcHJldmlvdXNDYWNoZUVudHJ5X3ZhbHVlO1xuICAgICAgICAgICAgICAgIGNvbnN0IGRvUmVuZGVyID0gYXN5bmMgKCk9PntcbiAgICAgICAgICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBfbmV4dENvbmZpZ19pMThuLCBfbmV4dENvbmZpZ19leHBlcmltZW50YWxfYW1wLCBfbmV4dENvbmZpZ19leHBlcmltZW50YWxfYW1wMTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBhd2FpdCByb3V0ZU1vZHVsZS5yZW5kZXIocmVxLCByZXMsIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBxdWVyeTogaGFzU3RhdGljUHJvcHMgJiYgIWlzRXhwZXJpbWVudGFsQ29tcGlsZSA/IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLi4ucGFyYW1zLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuLi5pc0FtcCA/IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFtcDogcXVlcnkuYW1wXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gOiB7fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC4uLnF1ZXJ5LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuLi5wYXJhbXNcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhcmFtcyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYWdlOiBzcmNQYWdlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlbmRlckNvbnRleHQ6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaXNEcmFmdE1vZGUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlzRmFsbGJhY2s6IGlzSXNyRmFsbGJhY2ssXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRldmVsb3BtZW50Tm90Rm91bmRTb3VyY2VQYWdlOiBnZXRSZXF1ZXN0TWV0YShyZXEsICdkZXZlbG9wbWVudE5vdEZvdW5kU291cmNlUGFnZScpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaGFyZWRDb250ZXh0OiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJ1aWxkSWQsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGN1c3RvbVNlcnZlcjogQm9vbGVhbihyb3V0ZXJTZXJ2ZXJDb250ZXh0ID09IG51bGwgPyB2b2lkIDAgOiByb3V0ZXJTZXJ2ZXJDb250ZXh0LmlzQ3VzdG9tU2VydmVyKSB8fCB1bmRlZmluZWQsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlcGxveW1lbnRJZDogcHJvY2Vzcy5lbnYuTkVYVF9ERVBMT1lNRU5UX0lEXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZW5kZXJPcHRzOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhcmFtcyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcm91dGVNb2R1bGUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhZ2U6IHNyY1BhZ2UsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhZ2VDb25maWc6IGNvbmZpZyB8fCB7fSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ29tcG9uZW50OiBpbnRlcm9wRGVmYXVsdCh1c2VybGFuZCksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENvbXBvbmVudE1vZDogdXNlcmxhbmQsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdldFN0YXRpY1Byb3BzLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnZXRTdGF0aWNQYXRocyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2V0U2VydmVyU2lkZVByb3BzLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdXBwb3J0c0R5bmFtaWNSZXNwb25zZTogIWhhc1N0YXRpY1Byb3BzLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBidWlsZE1hbmlmZXN0LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXh0Rm9udE1hbmlmZXN0LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZWFjdExvYWRhYmxlTWFuaWZlc3QsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFzc2V0UHJlZml4OiBuZXh0Q29uZmlnLmFzc2V0UHJlZml4LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJpY3ROZXh0SGVhZDogQm9vbGVhbihuZXh0Q29uZmlnLmV4cGVyaW1lbnRhbC5zdHJpY3ROZXh0SGVhZCksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByZXZpZXdQcm9wczogcHJlcmVuZGVyTWFuaWZlc3QucHJldmlldyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW1hZ2VzOiBuZXh0Q29uZmlnLmltYWdlcyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV4dENvbmZpZ091dHB1dDogbmV4dENvbmZpZy5vdXRwdXQsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9wdGltaXplQ3NzOiBCb29sZWFuKG5leHRDb25maWcuZXhwZXJpbWVudGFsLm9wdGltaXplQ3NzKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV4dFNjcmlwdFdvcmtlcnM6IEJvb2xlYW4obmV4dENvbmZpZy5leHBlcmltZW50YWwubmV4dFNjcmlwdFdvcmtlcnMpLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkb21haW5Mb2NhbGVzOiAoX25leHRDb25maWdfaTE4biA9IG5leHRDb25maWcuaTE4bikgPT0gbnVsbCA/IHZvaWQgMCA6IF9uZXh0Q29uZmlnX2kxOG4uZG9tYWlucyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3Jvc3NPcmlnaW46IG5leHRDb25maWcuY3Jvc3NPcmlnaW4sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG11bHRpWm9uZURyYWZ0TW9kZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYmFzZVBhdGg6IG5leHRDb25maWcuYmFzZVBhdGgsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhbm9uaWNhbEJhc2U6IG5leHRDb25maWcuYW1wLmNhbm9uaWNhbEJhc2UgfHwgJycsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFtcE9wdGltaXplckNvbmZpZzogKF9uZXh0Q29uZmlnX2V4cGVyaW1lbnRhbF9hbXAgPSBuZXh0Q29uZmlnLmV4cGVyaW1lbnRhbC5hbXApID09IG51bGwgPyB2b2lkIDAgOiBfbmV4dENvbmZpZ19leHBlcmltZW50YWxfYW1wLm9wdGltaXplcixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlzYWJsZU9wdGltaXplZExvYWRpbmc6IG5leHRDb25maWcuZXhwZXJpbWVudGFsLmRpc2FibGVPcHRpbWl6ZWRMb2FkaW5nLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXJnZVBhZ2VEYXRhQnl0ZXM6IG5leHRDb25maWcuZXhwZXJpbWVudGFsLmxhcmdlUGFnZURhdGFCeXRlcyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gT25seSB0aGUgYHB1YmxpY1J1bnRpbWVDb25maWdgIGtleSBpcyBleHBvc2VkIHRvIHRoZSBjbGllbnQgc2lkZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBJdCdsbCBiZSByZW5kZXJlZCBhcyBwYXJ0IG9mIF9fTkVYVF9EQVRBX18gb24gdGhlIGNsaWVudCBzaWRlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJ1bnRpbWVDb25maWc6IE9iamVjdC5rZXlzKHB1YmxpY1J1bnRpbWVDb25maWcpLmxlbmd0aCA+IDAgPyBwdWJsaWNSdW50aW1lQ29uZmlnIDogdW5kZWZpbmVkLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpc0V4cGVyaW1lbnRhbENvbXBpbGUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV4cGVyaW1lbnRhbDoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xpZW50VHJhY2VNZXRhZGF0YTogbmV4dENvbmZpZy5leHBlcmltZW50YWwuY2xpZW50VHJhY2VNZXRhZGF0YSB8fCBbXVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb2NhbGUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvY2FsZXMsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlZmF1bHRMb2NhbGUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNldElzclN0YXR1czogcm91dGVyU2VydmVyQ29udGV4dCA9PSBudWxsID8gdm9pZCAwIDogcm91dGVyU2VydmVyQ29udGV4dC5zZXRJc3JTdGF0dXMsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlzTmV4dERhdGFSZXF1ZXN0OiBpc05leHREYXRhUmVxdWVzdCAmJiAoaGFzU2VydmVyUHJvcHMgfHwgaGFzU3RhdGljUHJvcHMpLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXNvbHZlZFVybCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gRm9yIGdldFNlcnZlclNpZGVQcm9wcyBhbmQgZ2V0SW5pdGlhbFByb3BzIHdlIG5lZWQgdG8gZW5zdXJlIHdlIHVzZSB0aGUgb3JpZ2luYWwgVVJMXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGFuZCBub3QgdGhlIHJlc29sdmVkIFVSTCB0byBwcmV2ZW50IGEgaHlkcmF0aW9uIG1pc21hdGNoIG9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGFzUGF0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXNvbHZlZEFzUGF0aDogaGFzU2VydmVyUHJvcHMgfHwgaGFzR2V0SW5pdGlhbFByb3BzID8gZm9ybWF0VXJsKHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHdlIHVzZSB0aGUgb3JpZ2luYWwgVVJMIHBhdGhuYW1lIGxlc3MgdGhlIF9uZXh0L2RhdGEgcHJlZml4IGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBwcmVzZW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXRobmFtZTogaXNOZXh0RGF0YVJlcXVlc3QgPyBub3JtYWxpemVEYXRhUGF0aChvcmlnaW5hbFBhdGhuYW1lKSA6IG9yaWdpbmFsUGF0aG5hbWUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBxdWVyeTogb3JpZ2luYWxRdWVyeVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KSA6IHJlc29sdmVkVXJsLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpc09uRGVtYW5kUmV2YWxpZGF0ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRXJyb3JEZWJ1ZzogZ2V0UmVxdWVzdE1ldGEocmVxLCAnUGFnZXNFcnJvckRlYnVnJyksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVycjogZ2V0UmVxdWVzdE1ldGEocmVxLCAnaW52b2tlRXJyb3InKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGV2OiByb3V0ZU1vZHVsZS5pc0RldixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gbmVlZGVkIGZvciBleHBlcmltZW50YWwub3B0aW1pemVDc3MgZmVhdHVyZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaXN0RGlyOiBgJHtyb3V0ZU1vZHVsZS5wcm9qZWN0RGlyfS8ke3JvdXRlTW9kdWxlLmRpc3REaXJ9YCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYW1wU2tpcFZhbGlkYXRpb246IChfbmV4dENvbmZpZ19leHBlcmltZW50YWxfYW1wMSA9IG5leHRDb25maWcuZXhwZXJpbWVudGFsLmFtcCkgPT0gbnVsbCA/IHZvaWQgMCA6IF9uZXh0Q29uZmlnX2V4cGVyaW1lbnRhbF9hbXAxLnNraXBWYWxpZGF0aW9uLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbXBWYWxpZGF0b3I6IGdldFJlcXVlc3RNZXRhKHJlcSwgJ2FtcFZhbGlkYXRvcicpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgfSkudGhlbigocmVuZGVyUmVzdWx0KT0+e1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHsgbWV0YWRhdGEgfSA9IHJlbmRlclJlc3VsdDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgY2FjaGVDb250cm9sID0gbWV0YWRhdGEuY2FjaGVDb250cm9sO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICgnaXNOb3RGb3VuZCcgaW4gbWV0YWRhdGEgJiYgbWV0YWRhdGEuaXNOb3RGb3VuZCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWU6IG51bGwsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYWNoZUNvbnRyb2xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gSGFuZGxlIGBpc1JlZGlyZWN0YC5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAobWV0YWRhdGEuaXNSZWRpcmVjdCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWU6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBraW5kOiBDYWNoZWRSb3V0ZUtpbmQuUkVESVJFQ1QsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJvcHM6IG1ldGFkYXRhLnBhZ2VEYXRhID8/IG1ldGFkYXRhLmZsaWdodERhdGFcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYWNoZUNvbnRyb2xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWU6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtpbmQ6IENhY2hlZFJvdXRlS2luZC5QQUdFUyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGh0bWw6IHJlbmRlclJlc3VsdCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhZ2VEYXRhOiByZW5kZXJSZXN1bHQubWV0YWRhdGEucGFnZURhdGEsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWFkZXJzOiByZW5kZXJSZXN1bHQubWV0YWRhdGEuaGVhZGVycyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXR1czogcmVuZGVyUmVzdWx0Lm1ldGFkYXRhLnN0YXR1c0NvZGVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FjaGVDb250cm9sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pLmZpbmFsbHkoKCk9PntcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoIXNwYW4pIHJldHVybjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzcGFuLnNldEF0dHJpYnV0ZXMoe1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnaHR0cC5zdGF0dXNfY29kZSc6IHJlcy5zdGF0dXNDb2RlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnbmV4dC5yc2MnOiBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHJvb3RTcGFuQXR0cmlidXRlcyA9IHRyYWNlci5nZXRSb290U3BhbkF0dHJpYnV0ZXMoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBXZSB3ZXJlIHVuYWJsZSB0byBnZXQgYXR0cmlidXRlcywgcHJvYmFibHkgT1RFTCBpcyBub3QgZW5hYmxlZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICghcm9vdFNwYW5BdHRyaWJ1dGVzKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHJvb3RTcGFuQXR0cmlidXRlcy5nZXQoJ25leHQuc3Bhbl90eXBlJykgIT09IEJhc2VTZXJ2ZXJTcGFuLmhhbmRsZVJlcXVlc3QpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc29sZS53YXJuKGBVbmV4cGVjdGVkIHJvb3Qgc3BhbiB0eXBlICcke3Jvb3RTcGFuQXR0cmlidXRlcy5nZXQoJ25leHQuc3Bhbl90eXBlJyl9Jy4gUGxlYXNlIHJlcG9ydCB0aGlzIE5leHQuanMgaXNzdWUgaHR0cHM6Ly9naXRodWIuY29tL3ZlcmNlbC9uZXh0LmpzYCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgcm91dGUgPSByb290U3BhbkF0dHJpYnV0ZXMuZ2V0KCduZXh0LnJvdXRlJyk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHJvdXRlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IG5hbWUgPSBgJHttZXRob2R9ICR7cm91dGV9YDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Bhbi5zZXRBdHRyaWJ1dGVzKHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICduZXh0LnJvdXRlJzogcm91dGUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnaHR0cC5yb3V0ZSc6IHJvdXRlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ25leHQuc3Bhbl9uYW1lJzogbmFtZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Bhbi51cGRhdGVOYW1lKG5hbWUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNwYW4udXBkYXRlTmFtZShgJHttZXRob2R9ICR7cmVxLnVybH1gKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBpZiB0aGlzIGlzIGEgYmFja2dyb3VuZCByZXZhbGlkYXRlIHdlIG5lZWQgdG8gcmVwb3J0XG4gICAgICAgICAgICAgICAgICAgICAgICAvLyB0aGUgcmVxdWVzdCBlcnJvciBoZXJlIGFzIGl0IHdvbid0IGJlIGJ1YmJsZWRcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChwcmV2aW91c0NhY2hlRW50cnkgPT0gbnVsbCA/IHZvaWQgMCA6IHByZXZpb3VzQ2FjaGVFbnRyeS5pc1N0YWxlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYXdhaXQgcm91dGVNb2R1bGUub25SZXF1ZXN0RXJyb3IocmVxLCBlcnIsIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcm91dGVyS2luZDogJ1BhZ2VzIFJvdXRlcicsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJvdXRlUGF0aDogc3JjUGFnZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcm91dGVUeXBlOiAncmVuZGVyJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV2YWxpZGF0ZVJlYXNvbjogZ2V0UmV2YWxpZGF0ZVJlYXNvbih7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpc1JldmFsaWRhdGU6IGhhc1N0YXRpY1Byb3BzLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaXNPbkRlbWFuZFJldmFsaWRhdGVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LCByb3V0ZXJTZXJ2ZXJDb250ZXh0KTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIHRocm93IGVycjtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgLy8gaWYgd2UndmUgYWxyZWFkeSBnZW5lcmF0ZWQgdGhpcyBwYWdlIHdlIG5vIGxvbmdlclxuICAgICAgICAgICAgICAgIC8vIHNlcnZlIHRoZSBmYWxsYmFja1xuICAgICAgICAgICAgICAgIGlmIChwcmV2aW91c0NhY2hlRW50cnkpIHtcbiAgICAgICAgICAgICAgICAgICAgaXNJc3JGYWxsYmFjayA9IGZhbHNlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBpZiAoaXNJc3JGYWxsYmFjaykge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBmYWxsYmFja1Jlc3BvbnNlID0gYXdhaXQgcm91dGVNb2R1bGUuZ2V0UmVzcG9uc2VDYWNoZShyZXEpLmdldChyb3V0ZU1vZHVsZS5pc0RldiA/IG51bGwgOiBsb2NhbGUgPyBgLyR7bG9jYWxlfSR7c3JjUGFnZX1gIDogc3JjUGFnZSwgYXN5bmMgKHsgcHJldmlvdXNDYWNoZUVudHJ5OiBwcmV2aW91c0ZhbGxiYWNrQ2FjaGVFbnRyeSA9IG51bGwgfSk9PntcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICghcm91dGVNb2R1bGUuaXNEZXYpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gdG9SZXNwb25zZUNhY2hlRW50cnkocHJldmlvdXNGYWxsYmFja0NhY2hlRW50cnkpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGRvUmVuZGVyKCk7XG4gICAgICAgICAgICAgICAgICAgIH0sIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJvdXRlS2luZDogUm91dGVLaW5kLlBBR0VTLFxuICAgICAgICAgICAgICAgICAgICAgICAgaXNGYWxsYmFjazogdHJ1ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGlzUm91dGVQUFJFbmFibGVkOiBmYWxzZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGlzT25EZW1hbmRSZXZhbGlkYXRlOiBmYWxzZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGluY3JlbWVudGFsQ2FjaGU6IGF3YWl0IHJvdXRlTW9kdWxlLmdldEluY3JlbWVudGFsQ2FjaGUocmVxLCBuZXh0Q29uZmlnLCBwcmVyZW5kZXJNYW5pZmVzdCksXG4gICAgICAgICAgICAgICAgICAgICAgICB3YWl0VW50aWw6IGN0eC53YWl0VW50aWxcbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgIGlmIChmYWxsYmFja1Jlc3BvbnNlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBSZW1vdmUgdGhlIGNhY2hlIGNvbnRyb2wgZnJvbSB0aGUgcmVzcG9uc2UgdG8gcHJldmVudCBpdCBmcm9tIGJlaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAvLyB1c2VkIGluIHRoZSBzdXJyb3VuZGluZyBjYWNoZS5cbiAgICAgICAgICAgICAgICAgICAgICAgIGRlbGV0ZSBmYWxsYmFja1Jlc3BvbnNlLmNhY2hlQ29udHJvbDtcbiAgICAgICAgICAgICAgICAgICAgICAgIGZhbGxiYWNrUmVzcG9uc2UuaXNNaXNzID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxsYmFja1Jlc3BvbnNlO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGlmICghZ2V0UmVxdWVzdE1ldGEocmVxLCAnbWluaW1hbE1vZGUnKSAmJiBpc09uRGVtYW5kUmV2YWxpZGF0ZSAmJiByZXZhbGlkYXRlT25seUdlbmVyYXRlZCAmJiAhcHJldmlvdXNDYWNoZUVudHJ5KSB7XG4gICAgICAgICAgICAgICAgICAgIHJlcy5zdGF0dXNDb2RlID0gNDA0O1xuICAgICAgICAgICAgICAgICAgICAvLyBvbi1kZW1hbmQgcmV2YWxpZGF0ZSBhbHdheXMgc2V0cyB0aGlzIGhlYWRlclxuICAgICAgICAgICAgICAgICAgICByZXMuc2V0SGVhZGVyKCd4LW5leHRqcy1jYWNoZScsICdSRVZBTElEQVRFRCcpO1xuICAgICAgICAgICAgICAgICAgICByZXMuZW5kKCdUaGlzIHBhZ2UgY291bGQgbm90IGJlIGZvdW5kJyk7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBpZiAoaXNJc3JGYWxsYmFjayAmJiAocHJldmlvdXNDYWNoZUVudHJ5ID09IG51bGwgPyB2b2lkIDAgOiAoX3ByZXZpb3VzQ2FjaGVFbnRyeV92YWx1ZSA9IHByZXZpb3VzQ2FjaGVFbnRyeS52YWx1ZSkgPT0gbnVsbCA/IHZvaWQgMCA6IF9wcmV2aW91c0NhY2hlRW50cnlfdmFsdWUua2luZCkgPT09IENhY2hlZFJvdXRlS2luZC5QQUdFUykge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWU6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBraW5kOiBDYWNoZWRSb3V0ZUtpbmQuUEFHRVMsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaHRtbDogbmV3IFJlbmRlclJlc3VsdChCdWZmZXIuZnJvbShwcmV2aW91c0NhY2hlRW50cnkudmFsdWUuaHRtbCksIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udGVudFR5cGU6ICd0ZXh0L2h0bWw7dXRmLTgnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtZXRhZGF0YToge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhdHVzQ29kZTogcHJldmlvdXNDYWNoZUVudHJ5LnZhbHVlLnN0YXR1cyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlYWRlcnM6IHByZXZpb3VzQ2FjaGVFbnRyeS52YWx1ZS5oZWFkZXJzXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYWdlRGF0YToge30sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhdHVzOiBwcmV2aW91c0NhY2hlRW50cnkudmFsdWUuc3RhdHVzLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlYWRlcnM6IHByZXZpb3VzQ2FjaGVFbnRyeS52YWx1ZS5oZWFkZXJzXG4gICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgY2FjaGVDb250cm9sOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV2YWxpZGF0ZTogMCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBleHBpcmU6IHVuZGVmaW5lZFxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICByZXR1cm4gZG9SZW5kZXIoKTtcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgICBjb25zdCByZXN1bHQgPSBhd2FpdCByb3V0ZU1vZHVsZS5oYW5kbGVSZXNwb25zZSh7XG4gICAgICAgICAgICAgICAgY2FjaGVLZXksXG4gICAgICAgICAgICAgICAgcmVxLFxuICAgICAgICAgICAgICAgIG5leHRDb25maWcsXG4gICAgICAgICAgICAgICAgcm91dGVLaW5kOiBSb3V0ZUtpbmQuUEFHRVMsXG4gICAgICAgICAgICAgICAgaXNPbkRlbWFuZFJldmFsaWRhdGUsXG4gICAgICAgICAgICAgICAgcmV2YWxpZGF0ZU9ubHlHZW5lcmF0ZWQsXG4gICAgICAgICAgICAgICAgd2FpdFVudGlsOiBjdHgud2FpdFVudGlsLFxuICAgICAgICAgICAgICAgIHJlc3BvbnNlR2VuZXJhdG9yOiByZXNwb25zZUdlbmVyYXRvcixcbiAgICAgICAgICAgICAgICBwcmVyZW5kZXJNYW5pZmVzdFxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAvLyBpZiB3ZSBnb3QgYSBjYWNoZSBoaXQgdGhpcyB3YXNuJ3QgYW4gSVNSIGZhbGxiYWNrXG4gICAgICAgICAgICAvLyBidXQgaXQgd2Fzbid0IGdlbmVyYXRlZCBkdXJpbmcgYnVpbGQgc28gaXNuJ3QgaW4gdGhlXG4gICAgICAgICAgICAvLyBwcmVyZW5kZXItbWFuaWZlc3RcbiAgICAgICAgICAgIGlmIChpc0lzckZhbGxiYWNrICYmICEocmVzdWx0ID09IG51bGwgPyB2b2lkIDAgOiByZXN1bHQuaXNNaXNzKSkge1xuICAgICAgICAgICAgICAgIGlzSXNyRmFsbGJhY2sgPSBmYWxzZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC8vIHJlc3BvbnNlIGlzIGZpbmlzaGVkIGlzIG5vIGNhY2hlIGVudHJ5XG4gICAgICAgICAgICBpZiAoIXJlc3VsdCkge1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChoYXNTdGF0aWNQcm9wcyAmJiAhZ2V0UmVxdWVzdE1ldGEocmVxLCAnbWluaW1hbE1vZGUnKSkge1xuICAgICAgICAgICAgICAgIHJlcy5zZXRIZWFkZXIoJ3gtbmV4dGpzLWNhY2hlJywgaXNPbkRlbWFuZFJldmFsaWRhdGUgPyAnUkVWQUxJREFURUQnIDogcmVzdWx0LmlzTWlzcyA/ICdNSVNTJyA6IHJlc3VsdC5pc1N0YWxlID8gJ1NUQUxFJyA6ICdISVQnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGxldCBjYWNoZUNvbnRyb2w7XG4gICAgICAgICAgICBpZiAoIWhhc1N0YXRpY1Byb3BzIHx8IGlzSXNyRmFsbGJhY2spIHtcbiAgICAgICAgICAgICAgICBpZiAoIXJlcy5nZXRIZWFkZXIoJ0NhY2hlLUNvbnRyb2wnKSkge1xuICAgICAgICAgICAgICAgICAgICBjYWNoZUNvbnRyb2wgPSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXZhbGlkYXRlOiAwLFxuICAgICAgICAgICAgICAgICAgICAgICAgZXhwaXJlOiB1bmRlZmluZWRcbiAgICAgICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9IGVsc2UgaWYgKGlzNDA0UGFnZSkge1xuICAgICAgICAgICAgICAgIGNvbnN0IG5vdEZvdW5kUmV2YWxpZGF0ZSA9IGdldFJlcXVlc3RNZXRhKHJlcSwgJ25vdEZvdW5kUmV2YWxpZGF0ZScpO1xuICAgICAgICAgICAgICAgIGNhY2hlQ29udHJvbCA9IHtcbiAgICAgICAgICAgICAgICAgICAgcmV2YWxpZGF0ZTogdHlwZW9mIG5vdEZvdW5kUmV2YWxpZGF0ZSA9PT0gJ3VuZGVmaW5lZCcgPyAwIDogbm90Rm91bmRSZXZhbGlkYXRlLFxuICAgICAgICAgICAgICAgICAgICBleHBpcmU6IHVuZGVmaW5lZFxuICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICB9IGVsc2UgaWYgKGlzNTAwUGFnZSkge1xuICAgICAgICAgICAgICAgIGNhY2hlQ29udHJvbCA9IHtcbiAgICAgICAgICAgICAgICAgICAgcmV2YWxpZGF0ZTogMCxcbiAgICAgICAgICAgICAgICAgICAgZXhwaXJlOiB1bmRlZmluZWRcbiAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgfSBlbHNlIGlmIChyZXN1bHQuY2FjaGVDb250cm9sKSB7XG4gICAgICAgICAgICAgICAgLy8gSWYgdGhlIGNhY2hlIGVudHJ5IGhhcyBhIGNhY2hlIGNvbnRyb2wgd2l0aCBhIHJldmFsaWRhdGUgdmFsdWUgdGhhdCdzXG4gICAgICAgICAgICAgICAgLy8gYSBudW1iZXIsIHVzZSBpdC5cbiAgICAgICAgICAgICAgICBpZiAodHlwZW9mIHJlc3VsdC5jYWNoZUNvbnRyb2wucmV2YWxpZGF0ZSA9PT0gJ251bWJlcicpIHtcbiAgICAgICAgICAgICAgICAgICAgdmFyIF9yZXN1bHRfY2FjaGVDb250cm9sO1xuICAgICAgICAgICAgICAgICAgICBpZiAocmVzdWx0LmNhY2hlQ29udHJvbC5yZXZhbGlkYXRlIDwgMSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3cgT2JqZWN0LmRlZmluZVByb3BlcnR5KG5ldyBFcnJvcihgSW52YWxpZCByZXZhbGlkYXRlIGNvbmZpZ3VyYXRpb24gcHJvdmlkZWQ6ICR7cmVzdWx0LmNhY2hlQ29udHJvbC5yZXZhbGlkYXRlfSA8IDFgKSwgXCJfX05FWFRfRVJST1JfQ09ERVwiLCB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWU6IFwiRTIyXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZW51bWVyYWJsZTogZmFsc2UsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBjYWNoZUNvbnRyb2wgPSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXZhbGlkYXRlOiByZXN1bHQuY2FjaGVDb250cm9sLnJldmFsaWRhdGUsXG4gICAgICAgICAgICAgICAgICAgICAgICBleHBpcmU6ICgoX3Jlc3VsdF9jYWNoZUNvbnRyb2wgPSByZXN1bHQuY2FjaGVDb250cm9sKSA9PSBudWxsID8gdm9pZCAwIDogX3Jlc3VsdF9jYWNoZUNvbnRyb2wuZXhwaXJlKSA/PyBuZXh0Q29uZmlnLmV4cGlyZVRpbWVcbiAgICAgICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAvLyByZXZhbGlkYXRlOiBmYWxzZVxuICAgICAgICAgICAgICAgICAgICBjYWNoZUNvbnRyb2wgPSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXZhbGlkYXRlOiBDQUNIRV9PTkVfWUVBUixcbiAgICAgICAgICAgICAgICAgICAgICAgIGV4cGlyZTogdW5kZWZpbmVkXG4gICAgICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgLy8gSWYgY2FjaGUgY29udHJvbCBpcyBhbHJlYWR5IHNldCBvbiB0aGUgcmVzcG9uc2Ugd2UgZG9uJ3RcbiAgICAgICAgICAgIC8vIG92ZXJyaWRlIGl0IHRvIGFsbG93IHVzZXJzIHRvIGN1c3RvbWl6ZSBpdCB2aWEgbmV4dC5jb25maWdcbiAgICAgICAgICAgIGlmIChjYWNoZUNvbnRyb2wgJiYgIXJlcy5nZXRIZWFkZXIoJ0NhY2hlLUNvbnRyb2wnKSkge1xuICAgICAgICAgICAgICAgIHJlcy5zZXRIZWFkZXIoJ0NhY2hlLUNvbnRyb2wnLCBnZXRDYWNoZUNvbnRyb2xIZWFkZXIoY2FjaGVDb250cm9sKSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAvLyBub3RGb3VuZDogdHJ1ZSBjYXNlXG4gICAgICAgICAgICBpZiAoIXJlc3VsdC52YWx1ZSkge1xuICAgICAgICAgICAgICAgIHZhciBfcmVzdWx0X2NhY2hlQ29udHJvbDE7XG4gICAgICAgICAgICAgICAgLy8gYWRkIHJldmFsaWRhdGUgbWV0YWRhdGEgYmVmb3JlIHJlbmRlcmluZyA0MDQgcGFnZVxuICAgICAgICAgICAgICAgIC8vIHNvIHRoYXQgd2UgY2FuIHVzZSB0aGlzIGFzIHNvdXJjZSBvZiB0cnV0aCBmb3IgdGhlXG4gICAgICAgICAgICAgICAgLy8gY2FjaGUtY29udHJvbCBoZWFkZXIgaW5zdGVhZCBvZiB3aGF0IHRoZSA0MDQgcGFnZSByZXR1cm5zXG4gICAgICAgICAgICAgICAgLy8gZm9yIHRoZSByZXZhbGlkYXRlIHZhbHVlXG4gICAgICAgICAgICAgICAgYWRkUmVxdWVzdE1ldGEocmVxLCAnbm90Rm91bmRSZXZhbGlkYXRlJywgKF9yZXN1bHRfY2FjaGVDb250cm9sMSA9IHJlc3VsdC5jYWNoZUNvbnRyb2wpID09IG51bGwgPyB2b2lkIDAgOiBfcmVzdWx0X2NhY2hlQ29udHJvbDEucmV2YWxpZGF0ZSk7XG4gICAgICAgICAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSA0MDQ7XG4gICAgICAgICAgICAgICAgaWYgKGlzTmV4dERhdGFSZXF1ZXN0KSB7XG4gICAgICAgICAgICAgICAgICAgIHJlcy5lbmQoJ3tcIm5vdEZvdW5kXCI6dHJ1ZX0nKTtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAvLyBUT0RPOiBzaG91bGQgcm91dGUtbW9kdWxlIGl0c2VsZiBoYW5kbGUgcmVuZGVyaW5nIHRoZSA0MDRcbiAgICAgICAgICAgICAgICBpZiAocm91dGVyU2VydmVyQ29udGV4dCA9PSBudWxsID8gdm9pZCAwIDogcm91dGVyU2VydmVyQ29udGV4dC5yZW5kZXI0MDQpIHtcbiAgICAgICAgICAgICAgICAgICAgYXdhaXQgcm91dGVyU2VydmVyQ29udGV4dC5yZW5kZXI0MDQocmVxLCByZXMsIHBhcnNlZFVybCwgZmFsc2UpO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHJlcy5lbmQoJ1RoaXMgcGFnZSBjb3VsZCBub3QgYmUgZm91bmQnKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKHJlc3VsdC52YWx1ZS5raW5kID09PSBDYWNoZWRSb3V0ZUtpbmQuUkVESVJFQ1QpIHtcbiAgICAgICAgICAgICAgICBpZiAoaXNOZXh0RGF0YVJlcXVlc3QpIHtcbiAgICAgICAgICAgICAgICAgICAgcmVzLnNldEhlYWRlcignY29udGVudC10eXBlJywgJ2FwcGxpY2F0aW9uL2pzb24nKTtcbiAgICAgICAgICAgICAgICAgICAgcmVzLmVuZChKU09OLnN0cmluZ2lmeShyZXN1bHQudmFsdWUucHJvcHMpKTtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGhhbmRsZVJlZGlyZWN0ID0gKHBhZ2VEYXRhKT0+e1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgcmVkaXJlY3QgPSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVzdGluYXRpb246IHBhZ2VEYXRhLnBhZ2VQcm9wcy5fX05fUkVESVJFQ1QsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhdHVzQ29kZTogcGFnZURhdGEucGFnZVByb3BzLl9fTl9SRURJUkVDVF9TVEFUVVMsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYmFzZVBhdGg6IHBhZ2VEYXRhLnBhZ2VQcm9wcy5fX05fUkVESVJFQ1RfQkFTRV9QQVRIXG4gICAgICAgICAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgc3RhdHVzQ29kZSA9IGdldFJlZGlyZWN0U3RhdHVzKHJlZGlyZWN0KTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHsgYmFzZVBhdGggfSA9IG5leHRDb25maWc7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoYmFzZVBhdGggJiYgcmVkaXJlY3QuYmFzZVBhdGggIT09IGZhbHNlICYmIHJlZGlyZWN0LmRlc3RpbmF0aW9uLnN0YXJ0c1dpdGgoJy8nKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlZGlyZWN0LmRlc3RpbmF0aW9uID0gYCR7YmFzZVBhdGh9JHtyZWRpcmVjdC5kZXN0aW5hdGlvbn1gO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHJlZGlyZWN0LmRlc3RpbmF0aW9uLnN0YXJ0c1dpdGgoJy8nKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlZGlyZWN0LmRlc3RpbmF0aW9uID0gbm9ybWFsaXplUmVwZWF0ZWRTbGFzaGVzKHJlZGlyZWN0LmRlc3RpbmF0aW9uKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIHJlcy5zdGF0dXNDb2RlID0gc3RhdHVzQ29kZTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlcy5zZXRIZWFkZXIoJ0xvY2F0aW9uJywgcmVkaXJlY3QuZGVzdGluYXRpb24pO1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHN0YXR1c0NvZGUgPT09IFJlZGlyZWN0U3RhdHVzQ29kZS5QZXJtYW5lbnRSZWRpcmVjdCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcy5zZXRIZWFkZXIoJ1JlZnJlc2gnLCBgMDt1cmw9JHtyZWRpcmVjdC5kZXN0aW5hdGlvbn1gKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIHJlcy5lbmQocmVkaXJlY3QuZGVzdGluYXRpb24pO1xuICAgICAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgICAgICBhd2FpdCBoYW5kbGVSZWRpcmVjdChyZXN1bHQudmFsdWUucHJvcHMpO1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAocmVzdWx0LnZhbHVlLmtpbmQgIT09IENhY2hlZFJvdXRlS2luZC5QQUdFUykge1xuICAgICAgICAgICAgICAgIHRocm93IE9iamVjdC5kZWZpbmVQcm9wZXJ0eShuZXcgRXJyb3IoYEludmFyaWFudDogcmVjZWl2ZWQgbm9uLXBhZ2VzIGNhY2hlIGVudHJ5IGluIHBhZ2VzIGhhbmRsZXJgKSwgXCJfX05FWFRfRVJST1JfQ09ERVwiLCB7XG4gICAgICAgICAgICAgICAgICAgIHZhbHVlOiBcIkU2OTVcIixcbiAgICAgICAgICAgICAgICAgICAgZW51bWVyYWJsZTogZmFsc2UsXG4gICAgICAgICAgICAgICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZVxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgLy8gSW4gZGV2LCB3ZSBzaG91bGQgbm90IGNhY2hlIHBhZ2VzIGZvciBhbnkgcmVhc29uLlxuICAgICAgICAgICAgaWYgKHJvdXRlTW9kdWxlLmlzRGV2KSB7XG4gICAgICAgICAgICAgICAgcmVzLnNldEhlYWRlcignQ2FjaGUtQ29udHJvbCcsICduby1zdG9yZSwgbXVzdC1yZXZhbGlkYXRlJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAvLyBEcmFmdCBtb2RlIHNob3VsZCBuZXZlciBiZSBjYWNoZWRcbiAgICAgICAgICAgIGlmIChpc0RyYWZ0TW9kZSkge1xuICAgICAgICAgICAgICAgIHJlcy5zZXRIZWFkZXIoJ0NhY2hlLUNvbnRyb2wnLCAncHJpdmF0ZSwgbm8tY2FjaGUsIG5vLXN0b3JlLCBtYXgtYWdlPTAsIG11c3QtcmV2YWxpZGF0ZScpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgLy8gd2hlbiBpbnZva2luZyBfZXJyb3IgYmVmb3JlIHBhZ2VzLzUwMCB3ZSBkb24ndCBhY3R1YWxseVxuICAgICAgICAgICAgLy8gc2VuZCB0aGUgX2Vycm9yIHJlc3BvbnNlXG4gICAgICAgICAgICBpZiAoZ2V0UmVxdWVzdE1ldGEocmVxLCAnY3VzdG9tRXJyb3JSZW5kZXInKSB8fCBpc0Vycm9yUGFnZSAmJiBnZXRSZXF1ZXN0TWV0YShyZXEsICdtaW5pbWFsTW9kZScpICYmIHJlcy5zdGF0dXNDb2RlID09PSA1MDApIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGF3YWl0IHNlbmRSZW5kZXJSZXN1bHQoe1xuICAgICAgICAgICAgICAgIHJlcSxcbiAgICAgICAgICAgICAgICByZXMsXG4gICAgICAgICAgICAgICAgLy8gSWYgd2UgYXJlIHJlbmRlcmluZyB0aGUgZXJyb3IgcGFnZSBpdCdzIG5vdCBhIGRhdGEgcmVxdWVzdFxuICAgICAgICAgICAgICAgIC8vIGFueW1vcmVcbiAgICAgICAgICAgICAgICByZXN1bHQ6IGlzTmV4dERhdGFSZXF1ZXN0ICYmICFpc0Vycm9yUGFnZSAmJiAhaXM1MDBQYWdlID8gbmV3IFJlbmRlclJlc3VsdChCdWZmZXIuZnJvbShKU09OLnN0cmluZ2lmeShyZXN1bHQudmFsdWUucGFnZURhdGEpKSwge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50VHlwZTogJ2FwcGxpY2F0aW9uL2pzb24nLFxuICAgICAgICAgICAgICAgICAgICBtZXRhZGF0YTogcmVzdWx0LnZhbHVlLmh0bWwubWV0YWRhdGFcbiAgICAgICAgICAgICAgICB9KSA6IHJlc3VsdC52YWx1ZS5odG1sLFxuICAgICAgICAgICAgICAgIGdlbmVyYXRlRXRhZ3M6IG5leHRDb25maWcuZ2VuZXJhdGVFdGFncyxcbiAgICAgICAgICAgICAgICBwb3dlcmVkQnlIZWFkZXI6IG5leHRDb25maWcucG93ZXJlZEJ5SGVhZGVyLFxuICAgICAgICAgICAgICAgIGNhY2hlQ29udHJvbDogcm91dGVNb2R1bGUuaXNEZXYgPyB1bmRlZmluZWQgOiBjYWNoZUNvbnRyb2wsXG4gICAgICAgICAgICAgICAgdHlwZTogaXNOZXh0RGF0YVJlcXVlc3QgPyAnanNvbicgOiAnaHRtbCdcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9O1xuICAgICAgICAvLyBUT0RPOiBhY3RpdmVTcGFuIGNvZGUgcGF0aCBpcyBmb3Igd2hlbiB3cmFwcGVkIGJ5XG4gICAgICAgIC8vIG5leHQtc2VydmVyIGNhbiBiZSByZW1vdmVkIHdoZW4gdGhpcyBpcyBubyBsb25nZXIgdXNlZFxuICAgICAgICBpZiAoYWN0aXZlU3Bhbikge1xuICAgICAgICAgICAgYXdhaXQgaGFuZGxlUmVzcG9uc2UoKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGF3YWl0IHRyYWNlci53aXRoUHJvcGFnYXRlZENvbnRleHQocmVxLmhlYWRlcnMsICgpPT50cmFjZXIudHJhY2UoQmFzZVNlcnZlclNwYW4uaGFuZGxlUmVxdWVzdCwge1xuICAgICAgICAgICAgICAgICAgICBzcGFuTmFtZTogYCR7bWV0aG9kfSAke3JlcS51cmx9YCxcbiAgICAgICAgICAgICAgICAgICAga2luZDogU3BhbktpbmQuU0VSVkVSLFxuICAgICAgICAgICAgICAgICAgICBhdHRyaWJ1dGVzOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAnaHR0cC5tZXRob2QnOiBtZXRob2QsXG4gICAgICAgICAgICAgICAgICAgICAgICAnaHR0cC50YXJnZXQnOiByZXEudXJsXG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9LCBoYW5kbGVSZXNwb25zZSkpO1xuICAgICAgICB9XG4gICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICAgIGF3YWl0IHJvdXRlTW9kdWxlLm9uUmVxdWVzdEVycm9yKHJlcSwgZXJyLCB7XG4gICAgICAgICAgICByb3V0ZXJLaW5kOiAnUGFnZXMgUm91dGVyJyxcbiAgICAgICAgICAgIHJvdXRlUGF0aDogc3JjUGFnZSxcbiAgICAgICAgICAgIHJvdXRlVHlwZTogJ3JlbmRlcicsXG4gICAgICAgICAgICByZXZhbGlkYXRlUmVhc29uOiBnZXRSZXZhbGlkYXRlUmVhc29uKHtcbiAgICAgICAgICAgICAgICBpc1JldmFsaWRhdGU6IGhhc1N0YXRpY1Byb3BzLFxuICAgICAgICAgICAgICAgIGlzT25EZW1hbmRSZXZhbGlkYXRlXG4gICAgICAgICAgICB9KVxuICAgICAgICB9LCByb3V0ZXJTZXJ2ZXJDb250ZXh0KTtcbiAgICAgICAgLy8gcmV0aHJvdyBzbyB0aGF0IHdlIGNhbiBoYW5kbGUgc2VydmluZyBlcnJvciBwYWdlXG4gICAgICAgIHRocm93IGVycjtcbiAgICB9XG59XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPXBhZ2VzLmpzLm1hcCJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(pages-dir-node)/./node_modules/next/dist/build/webpack/loaders/next-route-loader/index.js?kind=PAGES&page=%2F_error&preferredRegion=&absolutePagePath=private-next-pages%2F_error&absoluteAppPath=private-next-pages%2F_app&absoluteDocumentPath=private-next-pages%2F_document&middlewareConfigBase64=e30%3D!\n"); - -/***/ }), - -/***/ "(pages-dir-node)/./pages/_app.tsx": -/*!************************!*\ - !*** ./pages/_app.tsx ***! - \************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react/jsx-dev-runtime */ \"react/jsx-dev-runtime\");\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _styles_globals_css__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../styles/globals.css */ \"(pages-dir-node)/./styles/globals.css\");\n/* harmony import */ var _styles_globals_css__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_styles_globals_css__WEBPACK_IMPORTED_MODULE_1__);\n\n\nfunction MyApp({ Component, pageProps }) {\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(Component, {\n ...pageProps\n }, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\pages\\\\_app.tsx\",\n lineNumber: 5,\n columnNumber: 10\n }, this);\n}\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (MyApp);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1ub2RlKS8uL3BhZ2VzL19hcHAudHN4IiwibWFwcGluZ3MiOiI7Ozs7Ozs7OztBQUErQjtBQUcvQixTQUFTQSxNQUFNLEVBQUVDLFNBQVMsRUFBRUMsU0FBUyxFQUFZO0lBQy9DLHFCQUFPLDhEQUFDRDtRQUFXLEdBQUdDLFNBQVM7Ozs7OztBQUNqQztBQUVBLGlFQUFlRixLQUFLQSxFQUFDIiwic291cmNlcyI6WyJEOlxcZG9uZ3l1bi1wcm9qZWN0c1xcdHdvXFxwYWdlc1xcX2FwcC50c3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICcuLi9zdHlsZXMvZ2xvYmFscy5jc3MnO1xyXG5pbXBvcnQgdHlwZSB7IEFwcFByb3BzIH0gZnJvbSAnbmV4dC9hcHAnO1xyXG5cclxuZnVuY3Rpb24gTXlBcHAoeyBDb21wb25lbnQsIHBhZ2VQcm9wcyB9OiBBcHBQcm9wcykge1xyXG4gIHJldHVybiA8Q29tcG9uZW50IHsuLi5wYWdlUHJvcHN9IC8+O1xyXG59XHJcblxyXG5leHBvcnQgZGVmYXVsdCBNeUFwcDsiXSwibmFtZXMiOlsiTXlBcHAiLCJDb21wb25lbnQiLCJwYWdlUHJvcHMiXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(pages-dir-node)/./pages/_app.tsx\n"); - -/***/ }), - -/***/ "(pages-dir-node)/./styles/globals.css": -/*!****************************!*\ - !*** ./styles/globals.css ***! - \****************************/ -/***/ (() => { - - - -/***/ }), - -/***/ "next/dist/compiled/next-server/pages.runtime.dev.js": -/*!**********************************************************************!*\ - !*** external "next/dist/compiled/next-server/pages.runtime.dev.js" ***! - \**********************************************************************/ -/***/ ((module) => { - -"use strict"; -module.exports = require("next/dist/compiled/next-server/pages.runtime.dev.js"); - -/***/ }), - -/***/ "next/dist/shared/lib/no-fallback-error.external": -/*!******************************************************************!*\ - !*** external "next/dist/shared/lib/no-fallback-error.external" ***! - \******************************************************************/ -/***/ ((module) => { - -"use strict"; -module.exports = require("next/dist/shared/lib/no-fallback-error.external"); - -/***/ }), - -/***/ "next/dist/shared/lib/page-path/normalize-data-path": -/*!*********************************************************************!*\ - !*** external "next/dist/shared/lib/page-path/normalize-data-path" ***! - \*********************************************************************/ -/***/ ((module) => { - -"use strict"; -module.exports = require("next/dist/shared/lib/page-path/normalize-data-path"); - -/***/ }), - -/***/ "next/dist/shared/lib/router/utils/add-path-prefix": -/*!********************************************************************!*\ - !*** external "next/dist/shared/lib/router/utils/add-path-prefix" ***! - \********************************************************************/ -/***/ ((module) => { - -"use strict"; -module.exports = require("next/dist/shared/lib/router/utils/add-path-prefix"); - -/***/ }), - -/***/ "next/dist/shared/lib/router/utils/format-url": -/*!***************************************************************!*\ - !*** external "next/dist/shared/lib/router/utils/format-url" ***! - \***************************************************************/ -/***/ ((module) => { - -"use strict"; -module.exports = require("next/dist/shared/lib/router/utils/format-url"); - -/***/ }), - -/***/ "next/dist/shared/lib/router/utils/is-bot": -/*!***********************************************************!*\ - !*** external "next/dist/shared/lib/router/utils/is-bot" ***! - \***********************************************************/ -/***/ ((module) => { - -"use strict"; -module.exports = require("next/dist/shared/lib/router/utils/is-bot"); - -/***/ }), - -/***/ "next/dist/shared/lib/router/utils/remove-trailing-slash": -/*!**************************************************************************!*\ - !*** external "next/dist/shared/lib/router/utils/remove-trailing-slash" ***! - \**************************************************************************/ -/***/ ((module) => { - -"use strict"; -module.exports = require("next/dist/shared/lib/router/utils/remove-trailing-slash"); - -/***/ }), - -/***/ "next/dist/shared/lib/utils": -/*!*********************************************!*\ - !*** external "next/dist/shared/lib/utils" ***! - \*********************************************/ -/***/ ((module) => { - -"use strict"; -module.exports = require("next/dist/shared/lib/utils"); - -/***/ }), - -/***/ "path": -/*!***********************!*\ - !*** external "path" ***! - \***********************/ -/***/ ((module) => { - -"use strict"; -module.exports = require("path"); - -/***/ }), - -/***/ "react": -/*!************************!*\ - !*** external "react" ***! - \************************/ -/***/ ((module) => { - -"use strict"; -module.exports = require("react"); - -/***/ }), - -/***/ "react/jsx-dev-runtime": -/*!****************************************!*\ - !*** external "react/jsx-dev-runtime" ***! - \****************************************/ -/***/ ((module) => { - -"use strict"; -module.exports = require("react/jsx-dev-runtime"); - -/***/ }), - -/***/ "react/jsx-runtime": -/*!************************************!*\ - !*** external "react/jsx-runtime" ***! - \************************************/ -/***/ ((module) => { - -"use strict"; -module.exports = require("react/jsx-runtime"); - -/***/ }) - -}; -; - -// load runtime -var __webpack_require__ = require("../webpack-runtime.js"); -__webpack_require__.C(exports); -var __webpack_exec__ = (moduleId) => (__webpack_require__(__webpack_require__.s = moduleId)) -var __webpack_exports__ = __webpack_require__.X(0, ["vendor-chunks/next","vendor-chunks/@swc"], () => (__webpack_exec__("(pages-dir-node)/./node_modules/next/dist/build/webpack/loaders/next-route-loader/index.js?kind=PAGES&page=%2F_error&preferredRegion=&absolutePagePath=private-next-pages%2F_error&absoluteAppPath=private-next-pages%2F_app&absoluteDocumentPath=private-next-pages%2F_document&middlewareConfigBase64=e30%3D!"))); -module.exports = __webpack_exports__; - -})(); \ No newline at end of file diff --git a/build/server/pages/index.js b/build/server/pages/index.js deleted file mode 100644 index 49a4fd3..0000000 --- a/build/server/pages/index.js +++ /dev/null @@ -1,395 +0,0 @@ -/* - * ATTENTION: An "eval-source-map" devtool has been used. - * This devtool is neither made for production nor for readable output files. - * It uses "eval()" calls to create a separate source file with attached SourceMaps in the browser devtools. - * If you are trying to read the output file, select a different devtool (https://webpack.js.org/configuration/devtool/) - * or disable the default devtool with "devtool: false". - * If you are looking for production-ready output files, see mode: "production" (https://webpack.js.org/configuration/mode/). - */ -(() => { -var exports = {}; -exports.id = "pages/index"; -exports.ids = ["pages/index"]; -exports.modules = { - -/***/ "(pages-dir-node)/./components/CoreAdvantages.tsx": -/*!***************************************!*\ - !*** ./components/CoreAdvantages.tsx ***! - \***************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ CoreAdvantages)\n/* harmony export */ });\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react/jsx-dev-runtime */ \"react/jsx-dev-runtime\");\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _barrel_optimize_names_Box_Globe_Headphones_ShieldCheck_UserCheck_lucide_react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! __barrel_optimize__?names=Box,Globe,Headphones,ShieldCheck,UserCheck!=!lucide-react */ \"(pages-dir-node)/__barrel_optimize__?names=Box,Globe,Headphones,ShieldCheck,UserCheck!=!./node_modules/lucide-react/dist/cjs/lucide-react.js\");\n\n\nconst advantages = [\n {\n icon: _barrel_optimize_names_Box_Globe_Headphones_ShieldCheck_UserCheck_lucide_react__WEBPACK_IMPORTED_MODULE_1__.ShieldCheck,\n title: '企业级安全防护',\n points: [\n '多层加密与物理隔离,SO 27001 认证',\n '99.99% SLA 可用性保障, 自动容灾备份'\n ]\n },\n {\n icon: _barrel_optimize_names_Box_Globe_Headphones_ShieldCheck_UserCheck_lucide_react__WEBPACK_IMPORTED_MODULE_1__.Box,\n title: '极致性价比',\n points: [\n '年付88折,企业长期合作成本直降12%',\n '免费试用15天+新用户千元代金券'\n ]\n },\n {\n icon: _barrel_optimize_names_Box_Globe_Headphones_ShieldCheck_UserCheck_lucide_react__WEBPACK_IMPORTED_MODULE_1__.Globe,\n title: '无边界技术架构',\n points: [\n '分布式计算节点,全球低延迟访问',\n '弹性伸缩资源满足高并发需求'\n ]\n },\n {\n icon: _barrel_optimize_names_Box_Globe_Headphones_ShieldCheck_UserCheck_lucide_react__WEBPACK_IMPORTED_MODULE_1__.Headphones,\n title: '专家客服团队',\n points: [\n '7×24 小时响应,1 小时紧急介入',\n '中英文支持,覆盖全球主要时区'\n ]\n },\n {\n icon: _barrel_optimize_names_Box_Globe_Headphones_ShieldCheck_UserCheck_lucide_react__WEBPACK_IMPORTED_MODULE_1__.UserCheck,\n title: '智能运维管理',\n points: [\n 'AI 驱动资源调度,节省 15% 成本',\n '一键部署与运维,降低企业 IT 运维成本'\n ]\n }\n];\nfunction CoreAdvantages() {\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"section\", {\n className: \"px-6 py-section bg-background\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"max-w-screen-xl mx-auto\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"h2\", {\n className: \"text-3xl font-semibold text-center mb-section\",\n children: \"核心优势\"\n }, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\CoreAdvantages.tsx\",\n lineNumber: 15,\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-5 gap-6\",\n children: advantages.map(({ icon: Icon, title, points })=>/*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex flex-col items-center text-center p-4 bg-gray-50 rounded-lg\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(Icon, {\n className: \"h-10 w-10 text-accent mb-3\"\n }, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\CoreAdvantages.tsx\",\n lineNumber: 19,\n columnNumber: 15\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"h3\", {\n className: \"font-medium mb-2\",\n children: title\n }, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\CoreAdvantages.tsx\",\n lineNumber: 20,\n columnNumber: 15\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"ul\", {\n className: \"text-sm leading-relaxed\",\n children: points.map((p, i)=>/*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"li\", {\n children: [\n \"• \",\n p\n ]\n }, i, true, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\CoreAdvantages.tsx\",\n lineNumber: 22,\n columnNumber: 39\n }, this))\n }, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\CoreAdvantages.tsx\",\n lineNumber: 21,\n columnNumber: 15\n }, this)\n ]\n }, title, true, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\CoreAdvantages.tsx\",\n lineNumber: 18,\n columnNumber: 13\n }, this))\n }, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\CoreAdvantages.tsx\",\n lineNumber: 16,\n columnNumber: 9\n }, this)\n ]\n }, void 0, true, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\CoreAdvantages.tsx\",\n lineNumber: 14,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\CoreAdvantages.tsx\",\n lineNumber: 13,\n columnNumber: 5\n }, this);\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1ub2RlKS8uL2NvbXBvbmVudHMvQ29yZUFkdmFudGFnZXMudHN4IiwibWFwcGluZ3MiOiI7Ozs7Ozs7O0FBQThFO0FBRTlFLE1BQU1LLGFBQWE7SUFDakI7UUFBRUMsTUFBTU4sdUhBQVdBO1FBQUVPLE9BQU87UUFBV0MsUUFBUTtZQUFDO1lBQXlCO1NBQTJCO0lBQUM7SUFDckc7UUFBRUYsTUFBTUwsK0dBQUdBO1FBQUVNLE9BQU87UUFBU0MsUUFBUTtZQUFDO1lBQXNCO1NBQW1CO0lBQUM7SUFDaEY7UUFBRUYsTUFBTUosaUhBQUtBO1FBQUVLLE9BQU87UUFBV0MsUUFBUTtZQUFDO1lBQW1CO1NBQWdCO0lBQUM7SUFDOUU7UUFBRUYsTUFBTUgsc0hBQVVBO1FBQUVJLE9BQU87UUFBVUMsUUFBUTtZQUFDO1lBQXFCO1NBQWlCO0lBQUM7SUFDckY7UUFBRUYsTUFBTUYscUhBQVNBO1FBQUVHLE9BQU87UUFBVUMsUUFBUTtZQUFDO1lBQXNCO1NBQXVCO0lBQUM7Q0FDNUY7QUFFYyxTQUFTQztJQUN0QixxQkFDRSw4REFBQ0M7UUFBUUMsV0FBVTtrQkFDakIsNEVBQUNDO1lBQUlELFdBQVU7OzhCQUNiLDhEQUFDRTtvQkFBR0YsV0FBVTs4QkFBZ0Q7Ozs7Ozs4QkFDOUQsOERBQUNDO29CQUFJRCxXQUFVOzhCQUNaTixXQUFXUyxHQUFHLENBQUMsQ0FBQyxFQUFFUixNQUFNUyxJQUFJLEVBQUVSLEtBQUssRUFBRUMsTUFBTSxFQUFFLGlCQUM1Qyw4REFBQ0k7NEJBQWdCRCxXQUFVOzs4Q0FDekIsOERBQUNJO29DQUFLSixXQUFVOzs7Ozs7OENBQ2hCLDhEQUFDSztvQ0FBR0wsV0FBVTs4Q0FBb0JKOzs7Ozs7OENBQ2xDLDhEQUFDVTtvQ0FBR04sV0FBVTs4Q0FDWEgsT0FBT00sR0FBRyxDQUFDLENBQUNJLEdBQUdDLGtCQUFNLDhEQUFDQzs7Z0RBQVc7Z0RBQUdGOzsyQ0FBTkM7Ozs7Ozs7Ozs7OzJCQUp6Qlo7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQVl0QiIsInNvdXJjZXMiOlsiRDpcXGRvbmd5dW4tcHJvamVjdHNcXHR3b1xcY29tcG9uZW50c1xcQ29yZUFkdmFudGFnZXMudHN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFNoaWVsZENoZWNrLCBCb3gsIEdsb2JlLCBIZWFkcGhvbmVzLCBVc2VyQ2hlY2sgfSBmcm9tICdsdWNpZGUtcmVhY3QnO1xyXG5cclxuY29uc3QgYWR2YW50YWdlcyA9IFtcclxuICB7IGljb246IFNoaWVsZENoZWNrLCB0aXRsZTogJ+S8geS4mue6p+WuieWFqOmYsuaKpCcsIHBvaW50czogWyflpJrlsYLliqDlr4bkuI7niannkIbpmpTnprvvvIxTTyAyNzAwMSDorqTor4EnLCAnOTkuOTklIFNMQSDlj6/nlKjmgKfkv53pmpwsIOiHquWKqOWuueeBvuWkh+S7vSddIH0sXHJcbiAgeyBpY29uOiBCb3gsIHRpdGxlOiAn5p6B6Ie05oCn5Lu35q+UJywgcG9pbnRzOiBbJ+W5tOS7mDg45oqY77yM5LyB5Lia6ZW/5pyf5ZCI5L2c5oiQ5pys55u06ZmNMTIlJywn5YWN6LS56K+V55SoMTXlpKkr5paw55So5oi35Y2D5YWD5Luj6YeR5Yi4J10gfSxcclxuICB7IGljb246IEdsb2JlLCB0aXRsZTogJ+aXoOi+ueeVjOaKgOacr+aetuaehCcsIHBvaW50czogWyfliIbluIPlvI/orqHnrpfoioLngrnvvIzlhajnkIPkvY7lu7bov5/orr/pl64nLCAn5by55oCn5Ly457yp6LWE5rqQ5ruh6Laz6auY5bm25Y+R6ZyA5rGCJ10gfSxcclxuICB7IGljb246IEhlYWRwaG9uZXMsIHRpdGxlOiAn5LiT5a625a6i5pyN5Zui6ZifJywgcG9pbnRzOiBbJzfDlzI0IOWwj+aXtuWTjeW6lO+8jDEg5bCP5pe257Sn5oCl5LuL5YWlJywn5Lit6Iux5paH5pSv5oyB77yM6KaG55uW5YWo55CD5Li76KaB5pe25Yy6J10gfSxcclxuICB7IGljb246IFVzZXJDaGVjaywgdGl0bGU6ICfmmbrog73ov5Dnu7TnrqHnkIYnLCBwb2ludHM6IFsnQUkg6amx5Yqo6LWE5rqQ6LCD5bqm77yM6IqC55yBIDE1JSDmiJDmnKwnLCfkuIDplK7pg6jnvbLkuI7ov5Dnu7TvvIzpmY3kvY7kvIHkuJogSVQg6L+Q57u05oiQ5pysJ10gfSxcclxuXTtcclxuXHJcbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIENvcmVBZHZhbnRhZ2VzKCkge1xyXG4gIHJldHVybiAoXHJcbiAgICA8c2VjdGlvbiBjbGFzc05hbWU9XCJweC02IHB5LXNlY3Rpb24gYmctYmFja2dyb3VuZFwiPlxyXG4gICAgICA8ZGl2IGNsYXNzTmFtZT1cIm1heC13LXNjcmVlbi14bCBteC1hdXRvXCI+XHJcbiAgICAgICAgPGgyIGNsYXNzTmFtZT1cInRleHQtM3hsIGZvbnQtc2VtaWJvbGQgdGV4dC1jZW50ZXIgbWItc2VjdGlvblwiPuaguOW/g+S8mOWKvzwvaDI+XHJcbiAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJncmlkIGdyaWQtY29scy0xIG1kOmdyaWQtY29scy01IGdhcC02XCI+XHJcbiAgICAgICAgICB7YWR2YW50YWdlcy5tYXAoKHsgaWNvbjogSWNvbiwgdGl0bGUsIHBvaW50cyB9KSA9PiAoXHJcbiAgICAgICAgICAgIDxkaXYga2V5PXt0aXRsZX0gY2xhc3NOYW1lPVwiZmxleCBmbGV4LWNvbCBpdGVtcy1jZW50ZXIgdGV4dC1jZW50ZXIgcC00IGJnLWdyYXktNTAgcm91bmRlZC1sZ1wiPlxyXG4gICAgICAgICAgICAgIDxJY29uIGNsYXNzTmFtZT1cImgtMTAgdy0xMCB0ZXh0LWFjY2VudCBtYi0zXCIgLz5cclxuICAgICAgICAgICAgICA8aDMgY2xhc3NOYW1lPVwiZm9udC1tZWRpdW0gbWItMlwiPnt0aXRsZX08L2gzPlxyXG4gICAgICAgICAgICAgIDx1bCBjbGFzc05hbWU9XCJ0ZXh0LXNtIGxlYWRpbmctcmVsYXhlZFwiPlxyXG4gICAgICAgICAgICAgICAge3BvaW50cy5tYXAoKHAsIGkpID0+IDxsaSBrZXk9e2l9PuKAoiB7cH08L2xpPil9XHJcbiAgICAgICAgICAgICAgPC91bD5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICApKX1cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L3NlY3Rpb24+XHJcbiAgKTtcclxufSJdLCJuYW1lcyI6WyJTaGllbGRDaGVjayIsIkJveCIsIkdsb2JlIiwiSGVhZHBob25lcyIsIlVzZXJDaGVjayIsImFkdmFudGFnZXMiLCJpY29uIiwidGl0bGUiLCJwb2ludHMiLCJDb3JlQWR2YW50YWdlcyIsInNlY3Rpb24iLCJjbGFzc05hbWUiLCJkaXYiLCJoMiIsIm1hcCIsIkljb24iLCJoMyIsInVsIiwicCIsImkiLCJsaSJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(pages-dir-node)/./components/CoreAdvantages.tsx\n"); - -/***/ }), - -/***/ "(pages-dir-node)/./components/Cta.tsx": -/*!****************************!*\ - !*** ./components/Cta.tsx ***! - \****************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ Cta)\n/* harmony export */ });\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react/jsx-dev-runtime */ \"react/jsx-dev-runtime\");\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _barrel_optimize_names_ArrowRight_MessageCircle_Play_Zap_lucide_react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! __barrel_optimize__?names=ArrowRight,MessageCircle,Play,Zap!=!lucide-react */ \"(pages-dir-node)/__barrel_optimize__?names=ArrowRight,MessageCircle,Play,Zap!=!./node_modules/lucide-react/dist/cjs/lucide-react.js\");\n\n\nfunction Cta() {\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"section\", {\n className: \"px-6 py-20 bg-gradient-to-r from-accent via-blue-600 to-purple-600 text-white relative overflow-hidden\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"absolute inset-0 bg-black/10\"\n }, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\Cta.tsx\",\n lineNumber: 8,\n columnNumber: 7\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"absolute top-0 left-0 w-full h-full\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"absolute top-10 left-10 w-20 h-20 bg-white/10 rounded-full\"\n }, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\Cta.tsx\",\n lineNumber: 10,\n columnNumber: 9\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"absolute top-32 right-20 w-16 h-16 bg-white/5 rounded-full\"\n }, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\Cta.tsx\",\n lineNumber: 11,\n columnNumber: 9\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"absolute bottom-20 left-1/4 w-12 h-12 bg-white/10 rounded-full\"\n }, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\Cta.tsx\",\n lineNumber: 12,\n columnNumber: 9\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"absolute bottom-10 right-10 w-24 h-24 bg-white/5 rounded-full\"\n }, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\Cta.tsx\",\n lineNumber: 13,\n columnNumber: 9\n }, this)\n ]\n }, void 0, true, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\Cta.tsx\",\n lineNumber: 9,\n columnNumber: 7\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"relative max-w-screen-xl mx-auto text-center\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"mb-8\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"h2\", {\n className: \"text-4xl md:text-5xl font-bold mb-6\",\n children: [\n \"准备好加速您的\",\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n className: \"block text-transparent bg-clip-text bg-gradient-to-r from-yellow-300 to-orange-300\",\n children: \"云服务了吗?\"\n }, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\Cta.tsx\",\n lineNumber: 20,\n columnNumber: 13\n }, this)\n ]\n }, void 0, true, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\Cta.tsx\",\n lineNumber: 18,\n columnNumber: 11\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"p\", {\n className: \"text-xl text-blue-100 max-w-3xl mx-auto leading-relaxed\",\n children: \"立即开始免费试用,体验全球领先的云加速服务。 无需信用卡,15 天免费试用,专业技术支持。\"\n }, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\Cta.tsx\",\n lineNumber: 24,\n columnNumber: 11\n }, this)\n ]\n }, void 0, true, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\Cta.tsx\",\n lineNumber: 17,\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 gap-4 justify-center items-center mb-12\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"a\", {\n href: \"/contact\",\n className: \"group bg-white text-accent px-8 py-4 rounded-xl font-semibold text-lg hover:bg-gray-100 transition-all duration-300 shadow-lg hover:shadow-xl flex items-center\",\n children: [\n \"立即免费试用\",\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_barrel_optimize_names_ArrowRight_MessageCircle_Play_Zap_lucide_react__WEBPACK_IMPORTED_MODULE_1__.ArrowRight, {\n className: \"ml-2 w-5 h-5 group-hover:translate-x-1 transition-transform\"\n }, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\Cta.tsx\",\n lineNumber: 36,\n columnNumber: 13\n }, this)\n ]\n }, void 0, true, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\Cta.tsx\",\n lineNumber: 31,\n columnNumber: 11\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"a\", {\n href: \"/pricing\",\n className: \"group border-2 border-white text-white px-8 py-4 rounded-xl font-semibold text-lg hover:bg-white hover:text-accent transition-all duration-300 flex items-center\",\n children: [\n \"查看定价方案\",\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_barrel_optimize_names_ArrowRight_MessageCircle_Play_Zap_lucide_react__WEBPACK_IMPORTED_MODULE_1__.Play, {\n className: \"ml-2 w-5 h-5 group-hover:scale-110 transition-transform\"\n }, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\Cta.tsx\",\n lineNumber: 44,\n columnNumber: 13\n }, this)\n ]\n }, void 0, true, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\Cta.tsx\",\n lineNumber: 39,\n columnNumber: 11\n }, this)\n ]\n }, void 0, true, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\Cta.tsx\",\n lineNumber: 30,\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-3 gap-8 max-w-4xl mx-auto\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex flex-col items-center text-center\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"w-16 h-16 bg-white/20 rounded-full flex items-center justify-center mb-4\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_barrel_optimize_names_ArrowRight_MessageCircle_Play_Zap_lucide_react__WEBPACK_IMPORTED_MODULE_1__.Zap, {\n className: \"w-8 h-8 text-yellow-300\"\n }, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\Cta.tsx\",\n lineNumber: 52,\n columnNumber: 15\n }, this)\n }, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\Cta.tsx\",\n lineNumber: 51,\n columnNumber: 13\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"h3\", {\n className: \"text-lg font-semibold mb-2\",\n children: \"15 天免费试用\"\n }, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\Cta.tsx\",\n lineNumber: 54,\n columnNumber: 13\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"p\", {\n className: \"text-blue-100 text-sm\",\n children: \"无需信用卡,立即开始体验\"\n }, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\Cta.tsx\",\n lineNumber: 55,\n columnNumber: 13\n }, this)\n ]\n }, void 0, true, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\Cta.tsx\",\n lineNumber: 50,\n columnNumber: 11\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex flex-col items-center text-center\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"w-16 h-16 bg-white/20 rounded-full flex items-center justify-center mb-4\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_barrel_optimize_names_ArrowRight_MessageCircle_Play_Zap_lucide_react__WEBPACK_IMPORTED_MODULE_1__.MessageCircle, {\n className: \"w-8 h-8 text-green-300\"\n }, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\Cta.tsx\",\n lineNumber: 60,\n columnNumber: 15\n }, this)\n }, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\Cta.tsx\",\n lineNumber: 59,\n columnNumber: 13\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"h3\", {\n className: \"text-lg font-semibold mb-2\",\n children: \"专业技术支持\"\n }, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\Cta.tsx\",\n lineNumber: 62,\n columnNumber: 13\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"p\", {\n className: \"text-blue-100 text-sm\",\n children: \"7\\xd724 小时专家团队支持\"\n }, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\Cta.tsx\",\n lineNumber: 63,\n columnNumber: 13\n }, this)\n ]\n }, void 0, true, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\Cta.tsx\",\n lineNumber: 58,\n columnNumber: 11\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex flex-col items-center text-center\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"w-16 h-16 bg-white/20 rounded-full flex items-center justify-center mb-4\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_barrel_optimize_names_ArrowRight_MessageCircle_Play_Zap_lucide_react__WEBPACK_IMPORTED_MODULE_1__.ArrowRight, {\n className: \"w-8 h-8 text-purple-300\"\n }, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\Cta.tsx\",\n lineNumber: 68,\n columnNumber: 15\n }, this)\n }, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\Cta.tsx\",\n lineNumber: 67,\n columnNumber: 13\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"h3\", {\n className: \"text-lg font-semibold mb-2\",\n children: \"快速部署\"\n }, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\Cta.tsx\",\n lineNumber: 70,\n columnNumber: 13\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"p\", {\n className: \"text-blue-100 text-sm\",\n children: \"5 分钟内完成配置部署\"\n }, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\Cta.tsx\",\n lineNumber: 71,\n columnNumber: 13\n }, this)\n ]\n }, void 0, true, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\Cta.tsx\",\n lineNumber: 66,\n columnNumber: 11\n }, this)\n ]\n }, void 0, true, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\Cta.tsx\",\n lineNumber: 49,\n columnNumber: 9\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"mt-16 pt-8 border-t border-white/20\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"p\", {\n className: \"text-blue-200 text-sm mb-4\",\n children: \"已有超过 10,000+ 企业选择我们\"\n }, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\Cta.tsx\",\n lineNumber: 77,\n columnNumber: 11\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex flex-wrap justify-center items-center gap-8 opacity-80\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"text-2xl font-bold\",\n children: \"99.9%\"\n }, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\Cta.tsx\",\n lineNumber: 79,\n columnNumber: 13\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"text-gray-300\",\n children: \"•\"\n }, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\Cta.tsx\",\n lineNumber: 80,\n columnNumber: 13\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"text-2xl font-bold\",\n children: \"50+\"\n }, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\Cta.tsx\",\n lineNumber: 81,\n columnNumber: 13\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"text-gray-300\",\n children: \"•\"\n }, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\Cta.tsx\",\n lineNumber: 82,\n columnNumber: 13\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"text-2xl font-bold\",\n children: \"24/7\"\n }, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\Cta.tsx\",\n lineNumber: 83,\n columnNumber: 13\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"text-gray-300\",\n children: \"•\"\n }, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\Cta.tsx\",\n lineNumber: 84,\n columnNumber: 13\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"text-2xl font-bold\",\n children: \"15天\"\n }, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\Cta.tsx\",\n lineNumber: 85,\n columnNumber: 13\n }, this)\n ]\n }, void 0, true, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\Cta.tsx\",\n lineNumber: 78,\n columnNumber: 11\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"p\", {\n className: \"text-blue-200 text-xs mt-2\",\n children: \"可用性保障 • 全球节点 • 技术支持 • 免费试用\"\n }, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\Cta.tsx\",\n lineNumber: 87,\n columnNumber: 11\n }, this)\n ]\n }, void 0, true, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\Cta.tsx\",\n lineNumber: 76,\n columnNumber: 9\n }, this)\n ]\n }, void 0, true, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\Cta.tsx\",\n lineNumber: 16,\n columnNumber: 7\n }, this)\n ]\n }, void 0, true, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\Cta.tsx\",\n lineNumber: 6,\n columnNumber: 5\n }, this);\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1ub2RlKS8uL2NvbXBvbmVudHMvQ3RhLnRzeCIsIm1hcHBpbmdzIjoiOzs7Ozs7OztBQUNvRTtBQUVyRCxTQUFTSTtJQUN0QixxQkFDRSw4REFBQ0M7UUFBUUMsV0FBVTs7MEJBRWpCLDhEQUFDQztnQkFBSUQsV0FBVTs7Ozs7OzBCQUNmLDhEQUFDQztnQkFBSUQsV0FBVTs7a0NBQ2IsOERBQUNDO3dCQUFJRCxXQUFVOzs7Ozs7a0NBQ2YsOERBQUNDO3dCQUFJRCxXQUFVOzs7Ozs7a0NBQ2YsOERBQUNDO3dCQUFJRCxXQUFVOzs7Ozs7a0NBQ2YsOERBQUNDO3dCQUFJRCxXQUFVOzs7Ozs7Ozs7Ozs7MEJBR2pCLDhEQUFDQztnQkFBSUQsV0FBVTs7a0NBQ2IsOERBQUNDO3dCQUFJRCxXQUFVOzswQ0FDYiw4REFBQ0U7Z0NBQUdGLFdBQVU7O29DQUFzQztrREFFbEQsOERBQUNHO3dDQUFLSCxXQUFVO2tEQUFxRjs7Ozs7Ozs7Ozs7OzBDQUl2Ryw4REFBQ0k7Z0NBQUVKLFdBQVU7MENBQTBEOzs7Ozs7Ozs7Ozs7a0NBTXpFLDhEQUFDQzt3QkFBSUQsV0FBVTs7MENBQ2IsOERBQUNLO2dDQUNDQyxNQUFLO2dDQUNMTixXQUFVOztvQ0FDWDtrREFFQyw4REFBQ04sNkdBQVVBO3dDQUFDTSxXQUFVOzs7Ozs7Ozs7Ozs7MENBR3hCLDhEQUFDSztnQ0FDQ0MsTUFBSztnQ0FDTE4sV0FBVTs7b0NBQ1g7a0RBRUMsOERBQUNMLHVHQUFJQTt3Q0FBQ0ssV0FBVTs7Ozs7Ozs7Ozs7Ozs7Ozs7O2tDQUtwQiw4REFBQ0M7d0JBQUlELFdBQVU7OzBDQUNiLDhEQUFDQztnQ0FBSUQsV0FBVTs7a0RBQ2IsOERBQUNDO3dDQUFJRCxXQUFVO2tEQUNiLDRFQUFDSCxzR0FBR0E7NENBQUNHLFdBQVU7Ozs7Ozs7Ozs7O2tEQUVqQiw4REFBQ087d0NBQUdQLFdBQVU7a0RBQTZCOzs7Ozs7a0RBQzNDLDhEQUFDSTt3Q0FBRUosV0FBVTtrREFBd0I7Ozs7Ozs7Ozs7OzswQ0FHdkMsOERBQUNDO2dDQUFJRCxXQUFVOztrREFDYiw4REFBQ0M7d0NBQUlELFdBQVU7a0RBQ2IsNEVBQUNKLGdIQUFhQTs0Q0FBQ0ksV0FBVTs7Ozs7Ozs7Ozs7a0RBRTNCLDhEQUFDTzt3Q0FBR1AsV0FBVTtrREFBNkI7Ozs7OztrREFDM0MsOERBQUNJO3dDQUFFSixXQUFVO2tEQUF3Qjs7Ozs7Ozs7Ozs7OzBDQUd2Qyw4REFBQ0M7Z0NBQUlELFdBQVU7O2tEQUNiLDhEQUFDQzt3Q0FBSUQsV0FBVTtrREFDYiw0RUFBQ04sNkdBQVVBOzRDQUFDTSxXQUFVOzs7Ozs7Ozs7OztrREFFeEIsOERBQUNPO3dDQUFHUCxXQUFVO2tEQUE2Qjs7Ozs7O2tEQUMzQyw4REFBQ0k7d0NBQUVKLFdBQVU7a0RBQXdCOzs7Ozs7Ozs7Ozs7Ozs7Ozs7a0NBS3pDLDhEQUFDQzt3QkFBSUQsV0FBVTs7MENBQ2IsOERBQUNJO2dDQUFFSixXQUFVOzBDQUE2Qjs7Ozs7OzBDQUMxQyw4REFBQ0M7Z0NBQUlELFdBQVU7O2tEQUNiLDhEQUFDQzt3Q0FBSUQsV0FBVTtrREFBcUI7Ozs7OztrREFDcEMsOERBQUNDO3dDQUFJRCxXQUFVO2tEQUFnQjs7Ozs7O2tEQUMvQiw4REFBQ0M7d0NBQUlELFdBQVU7a0RBQXFCOzs7Ozs7a0RBQ3BDLDhEQUFDQzt3Q0FBSUQsV0FBVTtrREFBZ0I7Ozs7OztrREFDL0IsOERBQUNDO3dDQUFJRCxXQUFVO2tEQUFxQjs7Ozs7O2tEQUNwQyw4REFBQ0M7d0NBQUlELFdBQVU7a0RBQWdCOzs7Ozs7a0RBQy9CLDhEQUFDQzt3Q0FBSUQsV0FBVTtrREFBcUI7Ozs7Ozs7Ozs7OzswQ0FFdEMsOERBQUNJO2dDQUFFSixXQUFVOzBDQUE2Qjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBT3BEIiwic291cmNlcyI6WyJEOlxcZG9uZ3l1bi1wcm9qZWN0c1xcdHdvXFxjb21wb25lbnRzXFxDdGEudHN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBMaW5rIGZyb20gXCJuZXh0L2xpbmtcIjtcclxuaW1wb3J0IHsgQXJyb3dSaWdodCwgUGxheSwgTWVzc2FnZUNpcmNsZSwgWmFwIH0gZnJvbSAnbHVjaWRlLXJlYWN0JztcclxuXHJcbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIEN0YSgpIHtcclxuICByZXR1cm4gKFxyXG4gICAgPHNlY3Rpb24gY2xhc3NOYW1lPVwicHgtNiBweS0yMCBiZy1ncmFkaWVudC10by1yIGZyb20tYWNjZW50IHZpYS1ibHVlLTYwMCB0by1wdXJwbGUtNjAwIHRleHQtd2hpdGUgcmVsYXRpdmUgb3ZlcmZsb3ctaGlkZGVuXCI+XHJcbiAgICAgIHsvKiDog4zmma/oo4XppbAgKi99XHJcbiAgICAgIDxkaXYgY2xhc3NOYW1lPVwiYWJzb2x1dGUgaW5zZXQtMCBiZy1ibGFjay8xMFwiPjwvZGl2PlxyXG4gICAgICA8ZGl2IGNsYXNzTmFtZT1cImFic29sdXRlIHRvcC0wIGxlZnQtMCB3LWZ1bGwgaC1mdWxsXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJhYnNvbHV0ZSB0b3AtMTAgbGVmdC0xMCB3LTIwIGgtMjAgYmctd2hpdGUvMTAgcm91bmRlZC1mdWxsXCI+PC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJhYnNvbHV0ZSB0b3AtMzIgcmlnaHQtMjAgdy0xNiBoLTE2IGJnLXdoaXRlLzUgcm91bmRlZC1mdWxsXCI+PC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJhYnNvbHV0ZSBib3R0b20tMjAgbGVmdC0xLzQgdy0xMiBoLTEyIGJnLXdoaXRlLzEwIHJvdW5kZWQtZnVsbFwiPjwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiYWJzb2x1dGUgYm90dG9tLTEwIHJpZ2h0LTEwIHctMjQgaC0yNCBiZy13aGl0ZS81IHJvdW5kZWQtZnVsbFwiPjwvZGl2PlxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgXHJcbiAgICAgIDxkaXYgY2xhc3NOYW1lPVwicmVsYXRpdmUgbWF4LXctc2NyZWVuLXhsIG14LWF1dG8gdGV4dC1jZW50ZXJcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cIm1iLThcIj5cclxuICAgICAgICAgIDxoMiBjbGFzc05hbWU9XCJ0ZXh0LTR4bCBtZDp0ZXh0LTV4bCBmb250LWJvbGQgbWItNlwiPlxyXG4gICAgICAgICAgICDlh4blpIflpb3liqDpgJ/mgqjnmoRcclxuICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwiYmxvY2sgdGV4dC10cmFuc3BhcmVudCBiZy1jbGlwLXRleHQgYmctZ3JhZGllbnQtdG8tciBmcm9tLXllbGxvdy0zMDAgdG8tb3JhbmdlLTMwMFwiPlxyXG4gICAgICAgICAgICAgIOS6keacjeWKoeS6huWQl++8n1xyXG4gICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICA8L2gyPlxyXG4gICAgICAgICAgPHAgY2xhc3NOYW1lPVwidGV4dC14bCB0ZXh0LWJsdWUtMTAwIG1heC13LTN4bCBteC1hdXRvIGxlYWRpbmctcmVsYXhlZFwiPlxyXG4gICAgICAgICAgICDnq4vljbPlvIDlp4vlhY3otLnor5XnlKjvvIzkvZPpqozlhajnkIPpooblhYjnmoTkupHliqDpgJ/mnI3liqHjgIJcclxuICAgICAgICAgICAg5peg6ZyA5L+h55So5Y2h77yMMTUg5aSp5YWN6LS56K+V55So77yM5LiT5Lia5oqA5pyv5pSv5oyB44CCXHJcbiAgICAgICAgICA8L3A+XHJcbiAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZmxleCBmbGV4LWNvbCBzbTpmbGV4LXJvdyBnYXAtNCBqdXN0aWZ5LWNlbnRlciBpdGVtcy1jZW50ZXIgbWItMTJcIj5cclxuICAgICAgICAgIDxhXHJcbiAgICAgICAgICAgIGhyZWY9XCIvY29udGFjdFwiXHJcbiAgICAgICAgICAgIGNsYXNzTmFtZT1cImdyb3VwIGJnLXdoaXRlIHRleHQtYWNjZW50IHB4LTggcHktNCByb3VuZGVkLXhsIGZvbnQtc2VtaWJvbGQgdGV4dC1sZyBob3ZlcjpiZy1ncmF5LTEwMCB0cmFuc2l0aW9uLWFsbCBkdXJhdGlvbi0zMDAgc2hhZG93LWxnIGhvdmVyOnNoYWRvdy14bCBmbGV4IGl0ZW1zLWNlbnRlclwiXHJcbiAgICAgICAgICA+XHJcbiAgICAgICAgICAgIOeri+WNs+WFjei0ueivleeUqFxyXG4gICAgICAgICAgICA8QXJyb3dSaWdodCBjbGFzc05hbWU9XCJtbC0yIHctNSBoLTUgZ3JvdXAtaG92ZXI6dHJhbnNsYXRlLXgtMSB0cmFuc2l0aW9uLXRyYW5zZm9ybVwiIC8+XHJcbiAgICAgICAgICA8L2E+XHJcbiAgICAgICAgICBcclxuICAgICAgICAgIDxhXHJcbiAgICAgICAgICAgIGhyZWY9XCIvcHJpY2luZ1wiXHJcbiAgICAgICAgICAgIGNsYXNzTmFtZT1cImdyb3VwIGJvcmRlci0yIGJvcmRlci13aGl0ZSB0ZXh0LXdoaXRlIHB4LTggcHktNCByb3VuZGVkLXhsIGZvbnQtc2VtaWJvbGQgdGV4dC1sZyBob3ZlcjpiZy13aGl0ZSBob3Zlcjp0ZXh0LWFjY2VudCB0cmFuc2l0aW9uLWFsbCBkdXJhdGlvbi0zMDAgZmxleCBpdGVtcy1jZW50ZXJcIlxyXG4gICAgICAgICAgPlxyXG4gICAgICAgICAgICDmn6XnnIvlrprku7fmlrnmoYhcclxuICAgICAgICAgICAgPFBsYXkgY2xhc3NOYW1lPVwibWwtMiB3LTUgaC01IGdyb3VwLWhvdmVyOnNjYWxlLTExMCB0cmFuc2l0aW9uLXRyYW5zZm9ybVwiIC8+XHJcbiAgICAgICAgICA8L2E+XHJcbiAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgIHsvKiDnibnoibLkuq7ngrkgKi99XHJcbiAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJncmlkIGdyaWQtY29scy0xIG1kOmdyaWQtY29scy0zIGdhcC04IG1heC13LTR4bCBteC1hdXRvXCI+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImZsZXggZmxleC1jb2wgaXRlbXMtY2VudGVyIHRleHQtY2VudGVyXCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwidy0xNiBoLTE2IGJnLXdoaXRlLzIwIHJvdW5kZWQtZnVsbCBmbGV4IGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNlbnRlciBtYi00XCI+XHJcbiAgICAgICAgICAgICAgPFphcCBjbGFzc05hbWU9XCJ3LTggaC04IHRleHQteWVsbG93LTMwMFwiIC8+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8aDMgY2xhc3NOYW1lPVwidGV4dC1sZyBmb250LXNlbWlib2xkIG1iLTJcIj4xNSDlpKnlhY3otLnor5XnlKg8L2gzPlxyXG4gICAgICAgICAgICA8cCBjbGFzc05hbWU9XCJ0ZXh0LWJsdWUtMTAwIHRleHQtc21cIj7ml6DpnIDkv6HnlKjljaHvvIznq4vljbPlvIDlp4vkvZPpqow8L3A+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIFxyXG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJmbGV4IGZsZXgtY29sIGl0ZW1zLWNlbnRlciB0ZXh0LWNlbnRlclwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInctMTYgaC0xNiBiZy13aGl0ZS8yMCByb3VuZGVkLWZ1bGwgZmxleCBpdGVtcy1jZW50ZXIganVzdGlmeS1jZW50ZXIgbWItNFwiPlxyXG4gICAgICAgICAgICAgIDxNZXNzYWdlQ2lyY2xlIGNsYXNzTmFtZT1cInctOCBoLTggdGV4dC1ncmVlbi0zMDBcIiAvPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPGgzIGNsYXNzTmFtZT1cInRleHQtbGcgZm9udC1zZW1pYm9sZCBtYi0yXCI+5LiT5Lia5oqA5pyv5pSv5oyBPC9oMz5cclxuICAgICAgICAgICAgPHAgY2xhc3NOYW1lPVwidGV4dC1ibHVlLTEwMCB0ZXh0LXNtXCI+N8OXMjQg5bCP5pe25LiT5a625Zui6Zif5pSv5oyBPC9wPlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICBcclxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZmxleCBmbGV4LWNvbCBpdGVtcy1jZW50ZXIgdGV4dC1jZW50ZXJcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJ3LTE2IGgtMTYgYmctd2hpdGUvMjAgcm91bmRlZC1mdWxsIGZsZXggaXRlbXMtY2VudGVyIGp1c3RpZnktY2VudGVyIG1iLTRcIj5cclxuICAgICAgICAgICAgICA8QXJyb3dSaWdodCBjbGFzc05hbWU9XCJ3LTggaC04IHRleHQtcHVycGxlLTMwMFwiIC8+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8aDMgY2xhc3NOYW1lPVwidGV4dC1sZyBmb250LXNlbWlib2xkIG1iLTJcIj7lv6vpgJ/pg6jnvbI8L2gzPlxyXG4gICAgICAgICAgICA8cCBjbGFzc05hbWU9XCJ0ZXh0LWJsdWUtMTAwIHRleHQtc21cIj41IOWIhumSn+WGheWujOaIkOmFjee9rumDqOe9sjwvcD5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICB7Lyog5L+h5Lu75oyH5qCHICovfVxyXG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPVwibXQtMTYgcHQtOCBib3JkZXItdCBib3JkZXItd2hpdGUvMjBcIj5cclxuICAgICAgICAgIDxwIGNsYXNzTmFtZT1cInRleHQtYmx1ZS0yMDAgdGV4dC1zbSBtYi00XCI+5bey5pyJ6LaF6L+HIDEwLDAwMCsg5LyB5Lia6YCJ5oup5oiR5LusPC9wPlxyXG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJmbGV4IGZsZXgtd3JhcCBqdXN0aWZ5LWNlbnRlciBpdGVtcy1jZW50ZXIgZ2FwLTggb3BhY2l0eS04MFwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInRleHQtMnhsIGZvbnQtYm9sZFwiPjk5LjklPC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwidGV4dC1ncmF5LTMwMFwiPuKAojwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInRleHQtMnhsIGZvbnQtYm9sZFwiPjUwKzwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInRleHQtZ3JheS0zMDBcIj7igKI8L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJ0ZXh0LTJ4bCBmb250LWJvbGRcIj4yNC83PC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwidGV4dC1ncmF5LTMwMFwiPuKAojwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInRleHQtMnhsIGZvbnQtYm9sZFwiPjE15aSpPC9kaXY+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDxwIGNsYXNzTmFtZT1cInRleHQtYmx1ZS0yMDAgdGV4dC14cyBtdC0yXCI+XHJcbiAgICAgICAgICAgIOWPr+eUqOaAp+S/nemanCDigKIg5YWo55CD6IqC54K5IOKAoiDmioDmnK/mlK/mjIEg4oCiIOWFjei0ueivleeUqFxyXG4gICAgICAgICAgPC9wPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvc2VjdGlvbj5cclxuICApO1xyXG59Il0sIm5hbWVzIjpbIkFycm93UmlnaHQiLCJQbGF5IiwiTWVzc2FnZUNpcmNsZSIsIlphcCIsIkN0YSIsInNlY3Rpb24iLCJjbGFzc05hbWUiLCJkaXYiLCJoMiIsInNwYW4iLCJwIiwiYSIsImhyZWYiLCJoMyJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(pages-dir-node)/./components/Cta.tsx\n"); - -/***/ }), - -/***/ "(pages-dir-node)/./components/Features.tsx": -/*!*********************************!*\ - !*** ./components/Features.tsx ***! - \*********************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ Features)\n/* harmony export */ });\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react/jsx-dev-runtime */ \"react/jsx-dev-runtime\");\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _barrel_optimize_names_BarChart_CheckCircle_Clock_Globe_Repeat_Shield_Users_Zap_lucide_react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! __barrel_optimize__?names=BarChart,CheckCircle,Clock,Globe,Repeat,Shield,Users,Zap!=!lucide-react */ \"(pages-dir-node)/__barrel_optimize__?names=BarChart,CheckCircle,Clock,Globe,Repeat,Shield,Users,Zap!=!./node_modules/lucide-react/dist/cjs/lucide-react.js\");\n\n\nfunction Features() {\n const features = [\n {\n icon: _barrel_optimize_names_BarChart_CheckCircle_Clock_Globe_Repeat_Shield_Users_Zap_lucide_react__WEBPACK_IMPORTED_MODULE_1__.Globe,\n title: '全球节点网络',\n description: '覆盖全球主要地区的分布式节点,确保就近访问',\n details: [\n '50+ 全球节点',\n '平均延迟 < 50ms',\n '99.9% 可用性'\n ]\n },\n {\n icon: _barrel_optimize_names_BarChart_CheckCircle_Clock_Globe_Repeat_Shield_Users_Zap_lucide_react__WEBPACK_IMPORTED_MODULE_1__.Repeat,\n title: '智能路由优化',\n description: '基于实时网络状况,自动选择最优传输路径',\n details: [\n '动态路径选择',\n '负载均衡',\n '故障自动切换'\n ]\n },\n {\n icon: _barrel_optimize_names_BarChart_CheckCircle_Clock_Globe_Repeat_Shield_Users_Zap_lucide_react__WEBPACK_IMPORTED_MODULE_1__.BarChart,\n title: '实时监控面板',\n description: '全面的性能监控和数据分析,让您随时掌握服务状态',\n details: [\n '实时性能指标',\n '详细使用报告',\n '自定义告警'\n ]\n },\n {\n icon: _barrel_optimize_names_BarChart_CheckCircle_Clock_Globe_Repeat_Shield_Users_Zap_lucide_react__WEBPACK_IMPORTED_MODULE_1__.Shield,\n title: '企业级安全',\n description: '多层安全防护,保障数据传输和存储安全',\n details: [\n '端到端加密',\n 'DDoS 防护',\n '安全审计'\n ]\n },\n {\n icon: _barrel_optimize_names_BarChart_CheckCircle_Clock_Globe_Repeat_Shield_Users_Zap_lucide_react__WEBPACK_IMPORTED_MODULE_1__.Zap,\n title: '极速性能',\n description: '优化的传输协议和缓存机制,提供极致访问速度',\n details: [\n 'HTTP/3 支持',\n '智能缓存',\n '压缩优化'\n ]\n },\n {\n icon: _barrel_optimize_names_BarChart_CheckCircle_Clock_Globe_Repeat_Shield_Users_Zap_lucide_react__WEBPACK_IMPORTED_MODULE_1__.Users,\n title: '团队协作',\n description: '完善的权限管理和团队协作功能',\n details: [\n '多用户管理',\n '权限控制',\n '操作日志'\n ]\n },\n {\n icon: _barrel_optimize_names_BarChart_CheckCircle_Clock_Globe_Repeat_Shield_Users_Zap_lucide_react__WEBPACK_IMPORTED_MODULE_1__.Clock,\n title: '7×24 支持',\n description: '全天候技术支持,确保您的业务稳定运行',\n details: [\n '即时响应',\n '专业技术团队',\n '多渠道支持'\n ]\n },\n {\n icon: _barrel_optimize_names_BarChart_CheckCircle_Clock_Globe_Repeat_Shield_Users_Zap_lucide_react__WEBPACK_IMPORTED_MODULE_1__.CheckCircle,\n title: 'SLA 保障',\n description: '严格的服务等级协议,确保服务质量',\n details: [\n '99.9% 可用性',\n '性能保证',\n '赔偿机制'\n ]\n }\n ];\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"section\", {\n id: \"features\",\n className: \"px-6 py-16\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"max-w-screen-xl mx-auto\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"text-center mb-16\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"h2\", {\n className: \"text-3xl md:text-4xl font-bold text-primary mb-4\",\n children: \"核心产品特性\"\n }, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\Features.tsx\",\n lineNumber: 59,\n columnNumber: 11\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"p\", {\n className: \"text-xl text-gray-600 max-w-3xl mx-auto\",\n children: \"我们提供业界领先的云加速服务,通过先进的技术架构和智能算法, 为您的业务提供稳定、安全、高效的技术解决方案\"\n }, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\Features.tsx\",\n lineNumber: 62,\n columnNumber: 11\n }, this)\n ]\n }, void 0, true, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\Features.tsx\",\n lineNumber: 58,\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-4 gap-8\",\n children: features.map((feature, index)=>/*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"group bg-white p-6 rounded-xl shadow-md hover:shadow-xl transition-all duration-300 border border-gray-100 hover:border-accent/20\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex flex-col items-center text-center\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"w-16 h-16 bg-gradient-to-br from-accent/10 to-accent/20 rounded-xl flex items-center justify-center mb-4 group-hover:scale-110 transition-transform duration-300\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(feature.icon, {\n className: \"h-8 w-8 text-accent\"\n }, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\Features.tsx\",\n lineNumber: 76,\n columnNumber: 19\n }, this)\n }, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\Features.tsx\",\n lineNumber: 75,\n columnNumber: 17\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"h3\", {\n className: \"text-xl font-semibold mb-3 text-primary group-hover:text-accent transition-colors\",\n children: feature.title\n }, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\Features.tsx\",\n lineNumber: 78,\n columnNumber: 17\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"p\", {\n className: \"text-gray-600 mb-4 leading-relaxed\",\n children: feature.description\n }, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\Features.tsx\",\n lineNumber: 81,\n columnNumber: 17\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"ul\", {\n className: \"space-y-2 text-sm text-gray-500\",\n children: feature.details.map((detail, idx)=>/*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"li\", {\n className: \"flex items-center\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_barrel_optimize_names_BarChart_CheckCircle_Clock_Globe_Repeat_Shield_Users_Zap_lucide_react__WEBPACK_IMPORTED_MODULE_1__.CheckCircle, {\n className: \"h-4 w-4 text-green-500 mr-2 flex-shrink-0\"\n }, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\Features.tsx\",\n lineNumber: 87,\n columnNumber: 23\n }, this),\n detail\n ]\n }, idx, true, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\Features.tsx\",\n lineNumber: 86,\n columnNumber: 21\n }, this))\n }, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\Features.tsx\",\n lineNumber: 84,\n columnNumber: 17\n }, this)\n ]\n }, void 0, true, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\Features.tsx\",\n lineNumber: 74,\n columnNumber: 15\n }, this)\n }, index, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\Features.tsx\",\n lineNumber: 70,\n columnNumber: 13\n }, this))\n }, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\Features.tsx\",\n lineNumber: 68,\n columnNumber: 9\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"mt-20 bg-gradient-to-r from-blue-50 to-indigo-50 rounded-2xl p-8 md:p-12\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"text-center mb-8\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"h3\", {\n className: \"text-2xl md:text-3xl font-bold text-primary mb-4\",\n children: \"技术架构优势\"\n }, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\Features.tsx\",\n lineNumber: 100,\n columnNumber: 13\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"p\", {\n className: \"text-gray-600 max-w-2xl mx-auto\",\n children: \"基于云原生架构,采用微服务设计,确保系统的高可用性和可扩展性\"\n }, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\Features.tsx\",\n lineNumber: 103,\n columnNumber: 13\n }, this)\n ]\n }, void 0, true, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\Features.tsx\",\n lineNumber: 99,\n columnNumber: 11\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"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: \"text-center\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"w-20 h-20 bg-white rounded-full flex items-center justify-center mx-auto mb-4 shadow-lg\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n className: \"text-2xl font-bold text-accent\",\n children: \"99.9%\"\n }, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\Features.tsx\",\n lineNumber: 111,\n columnNumber: 17\n }, this)\n }, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\Features.tsx\",\n lineNumber: 110,\n columnNumber: 15\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"h4\", {\n className: \"text-lg font-semibold mb-2\",\n children: \"服务可用性\"\n }, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\Features.tsx\",\n lineNumber: 113,\n columnNumber: 15\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"p\", {\n className: \"text-gray-600 text-sm\",\n children: \"企业级 SLA 保障\"\n }, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\Features.tsx\",\n lineNumber: 114,\n columnNumber: 15\n }, this)\n ]\n }, void 0, true, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\Features.tsx\",\n lineNumber: 109,\n columnNumber: 13\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"text-center\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"w-20 h-20 bg-white rounded-full flex items-center justify-center mx-auto mb-4 shadow-lg\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n className: \"text-2xl font-bold text-accent\",\n children: \"< 50ms\"\n }, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\Features.tsx\",\n lineNumber: 119,\n columnNumber: 17\n }, this)\n }, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\Features.tsx\",\n lineNumber: 118,\n columnNumber: 15\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"h4\", {\n className: \"text-lg font-semibold mb-2\",\n children: \"平均延迟\"\n }, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\Features.tsx\",\n lineNumber: 121,\n columnNumber: 15\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"p\", {\n className: \"text-gray-600 text-sm\",\n children: \"全球节点优化\"\n }, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\Features.tsx\",\n lineNumber: 122,\n columnNumber: 15\n }, this)\n ]\n }, void 0, true, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\Features.tsx\",\n lineNumber: 117,\n columnNumber: 13\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"text-center\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"w-20 h-20 bg-white rounded-full flex items-center justify-center mx-auto mb-4 shadow-lg\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n className: \"text-2xl font-bold text-accent\",\n children: \"50+\"\n }, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\Features.tsx\",\n lineNumber: 127,\n columnNumber: 17\n }, this)\n }, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\Features.tsx\",\n lineNumber: 126,\n columnNumber: 15\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"h4\", {\n className: \"text-lg font-semibold mb-2\",\n children: \"全球节点\"\n }, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\Features.tsx\",\n lineNumber: 129,\n columnNumber: 15\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"p\", {\n className: \"text-gray-600 text-sm\",\n children: \"覆盖主要地区\"\n }, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\Features.tsx\",\n lineNumber: 130,\n columnNumber: 15\n }, this)\n ]\n }, void 0, true, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\Features.tsx\",\n lineNumber: 125,\n columnNumber: 13\n }, this)\n ]\n }, void 0, true, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\Features.tsx\",\n lineNumber: 108,\n columnNumber: 11\n }, this)\n ]\n }, void 0, true, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\Features.tsx\",\n lineNumber: 98,\n columnNumber: 9\n }, this)\n ]\n }, void 0, true, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\Features.tsx\",\n lineNumber: 57,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\Features.tsx\",\n lineNumber: 56,\n columnNumber: 5\n }, this);\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1ub2RlKS8uL2NvbXBvbmVudHMvRmVhdHVyZXMudHN4IiwibWFwcGluZ3MiOiI7Ozs7Ozs7O0FBQStGO0FBRWhGLFNBQVNRO0lBQ3RCLE1BQU1DLFdBQVc7UUFDZjtZQUNFQyxNQUFNViwrSEFBS0E7WUFDWFcsT0FBTztZQUNQQyxhQUFhO1lBQ2JDLFNBQVM7Z0JBQUM7Z0JBQVk7Z0JBQWtCO2FBQVk7UUFDdEQ7UUFDQTtZQUNFSCxNQUFNVCxnSUFBTUE7WUFDWlUsT0FBTztZQUNQQyxhQUFhO1lBQ2JDLFNBQVM7Z0JBQUM7Z0JBQVU7Z0JBQVE7YUFBUztRQUN2QztRQUNBO1lBQ0VILE1BQU1SLGtJQUFRQTtZQUNkUyxPQUFPO1lBQ1BDLGFBQWE7WUFDYkMsU0FBUztnQkFBQztnQkFBVTtnQkFBVTthQUFRO1FBQ3hDO1FBQ0E7WUFDRUgsTUFBTVAsZ0lBQU1BO1lBQ1pRLE9BQU87WUFDUEMsYUFBYTtZQUNiQyxTQUFTO2dCQUFDO2dCQUFTO2dCQUFXO2FBQU87UUFDdkM7UUFDQTtZQUNFSCxNQUFNTiw2SEFBR0E7WUFDVE8sT0FBTztZQUNQQyxhQUFhO1lBQ2JDLFNBQVM7Z0JBQUM7Z0JBQWE7Z0JBQVE7YUFBTztRQUN4QztRQUNBO1lBQ0VILE1BQU1MLCtIQUFLQTtZQUNYTSxPQUFPO1lBQ1BDLGFBQWE7WUFDYkMsU0FBUztnQkFBQztnQkFBUztnQkFBUTthQUFPO1FBQ3BDO1FBQ0E7WUFDRUgsTUFBTUosK0hBQUtBO1lBQ1hLLE9BQU87WUFDUEMsYUFBYTtZQUNiQyxTQUFTO2dCQUFDO2dCQUFRO2dCQUFVO2FBQVE7UUFDdEM7UUFDQTtZQUNFSCxNQUFNSCxxSUFBV0E7WUFDakJJLE9BQU87WUFDUEMsYUFBYTtZQUNiQyxTQUFTO2dCQUFDO2dCQUFhO2dCQUFRO2FBQU87UUFDeEM7S0FDRDtJQUVELHFCQUNFLDhEQUFDQztRQUFRQyxJQUFHO1FBQVdDLFdBQVU7a0JBQy9CLDRFQUFDQztZQUFJRCxXQUFVOzs4QkFDYiw4REFBQ0M7b0JBQUlELFdBQVU7O3NDQUNiLDhEQUFDRTs0QkFBR0YsV0FBVTtzQ0FBbUQ7Ozs7OztzQ0FHakUsOERBQUNHOzRCQUFFSCxXQUFVO3NDQUEwQzs7Ozs7Ozs7Ozs7OzhCQU16RCw4REFBQ0M7b0JBQUlELFdBQVU7OEJBQ1pQLFNBQVNXLEdBQUcsQ0FBQyxDQUFDQyxTQUFTQyxzQkFDdEIsOERBQUNMOzRCQUVDRCxXQUFVO3NDQUVWLDRFQUFDQztnQ0FBSUQsV0FBVTs7a0RBQ2IsOERBQUNDO3dDQUFJRCxXQUFVO2tEQUNiLDRFQUFDSyxRQUFRWCxJQUFJOzRDQUFDTSxXQUFVOzs7Ozs7Ozs7OztrREFFMUIsOERBQUNPO3dDQUFHUCxXQUFVO2tEQUNYSyxRQUFRVixLQUFLOzs7Ozs7a0RBRWhCLDhEQUFDUTt3Q0FBRUgsV0FBVTtrREFDVkssUUFBUVQsV0FBVzs7Ozs7O2tEQUV0Qiw4REFBQ1k7d0NBQUdSLFdBQVU7a0RBQ1hLLFFBQVFSLE9BQU8sQ0FBQ08sR0FBRyxDQUFDLENBQUNLLFFBQVFDLG9CQUM1Qiw4REFBQ0M7Z0RBQWFYLFdBQVU7O2tFQUN0Qiw4REFBQ1QscUlBQVdBO3dEQUFDUyxXQUFVOzs7Ozs7b0RBQ3RCUzs7K0NBRk1DOzs7Ozs7Ozs7Ozs7Ozs7OzJCQWZWSjs7Ozs7Ozs7Ozs4QkEyQlgsOERBQUNMO29CQUFJRCxXQUFVOztzQ0FDYiw4REFBQ0M7NEJBQUlELFdBQVU7OzhDQUNiLDhEQUFDTztvQ0FBR1AsV0FBVTs4Q0FBbUQ7Ozs7Ozs4Q0FHakUsOERBQUNHO29DQUFFSCxXQUFVOzhDQUFrQzs7Ozs7Ozs7Ozs7O3NDQUtqRCw4REFBQ0M7NEJBQUlELFdBQVU7OzhDQUNiLDhEQUFDQztvQ0FBSUQsV0FBVTs7c0RBQ2IsOERBQUNDOzRDQUFJRCxXQUFVO3NEQUNiLDRFQUFDWTtnREFBS1osV0FBVTswREFBaUM7Ozs7Ozs7Ozs7O3NEQUVuRCw4REFBQ2E7NENBQUdiLFdBQVU7c0RBQTZCOzs7Ozs7c0RBQzNDLDhEQUFDRzs0Q0FBRUgsV0FBVTtzREFBd0I7Ozs7Ozs7Ozs7Ozs4Q0FHdkMsOERBQUNDO29DQUFJRCxXQUFVOztzREFDYiw4REFBQ0M7NENBQUlELFdBQVU7c0RBQ2IsNEVBQUNZO2dEQUFLWixXQUFVOzBEQUFpQzs7Ozs7Ozs7Ozs7c0RBRW5ELDhEQUFDYTs0Q0FBR2IsV0FBVTtzREFBNkI7Ozs7OztzREFDM0MsOERBQUNHOzRDQUFFSCxXQUFVO3NEQUF3Qjs7Ozs7Ozs7Ozs7OzhDQUd2Qyw4REFBQ0M7b0NBQUlELFdBQVU7O3NEQUNiLDhEQUFDQzs0Q0FBSUQsV0FBVTtzREFDYiw0RUFBQ1k7Z0RBQUtaLFdBQVU7MERBQWlDOzs7Ozs7Ozs7OztzREFFbkQsOERBQUNhOzRDQUFHYixXQUFVO3NEQUE2Qjs7Ozs7O3NEQUMzQyw4REFBQ0c7NENBQUVILFdBQVU7c0RBQXdCOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQU9uRCIsInNvdXJjZXMiOlsiRDpcXGRvbmd5dW4tcHJvamVjdHNcXHR3b1xcY29tcG9uZW50c1xcRmVhdHVyZXMudHN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEdsb2JlLCBSZXBlYXQsIEJhckNoYXJ0LCBTaGllbGQsIFphcCwgVXNlcnMsIENsb2NrLCBDaGVja0NpcmNsZSB9IGZyb20gJ2x1Y2lkZS1yZWFjdCc7XHJcblxyXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBGZWF0dXJlcygpIHtcclxuICBjb25zdCBmZWF0dXJlcyA9IFtcclxuICAgIHtcclxuICAgICAgaWNvbjogR2xvYmUsXHJcbiAgICAgIHRpdGxlOiAn5YWo55CD6IqC54K5572R57ucJyxcclxuICAgICAgZGVzY3JpcHRpb246ICfopobnm5blhajnkIPkuLvopoHlnLDljLrnmoTliIbluIPlvI/oioLngrnvvIznoa7kv53lsLHov5Horr/pl64nLFxyXG4gICAgICBkZXRhaWxzOiBbJzUwKyDlhajnkIPoioLngrknLCAn5bmz5Z2H5bu26L+fICZsdDsgNTBtcycsICc5OS45JSDlj6/nlKjmgKcnXVxyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgaWNvbjogUmVwZWF0LFxyXG4gICAgICB0aXRsZTogJ+aZuuiDvei3r+eUseS8mOWMlicsXHJcbiAgICAgIGRlc2NyaXB0aW9uOiAn5Z+65LqO5a6e5pe2572R57uc54q25Ya177yM6Ieq5Yqo6YCJ5oup5pyA5LyY5Lyg6L6T6Lev5b6EJyxcclxuICAgICAgZGV0YWlsczogWyfliqjmgIHot6/lvoTpgInmi6knLCAn6LSf6L295Z2H6KGhJywgJ+aVhemanOiHquWKqOWIh+aNoiddXHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICBpY29uOiBCYXJDaGFydCxcclxuICAgICAgdGl0bGU6ICflrp7ml7bnm5HmjqfpnaLmnb8nLFxyXG4gICAgICBkZXNjcmlwdGlvbjogJ+WFqOmdoueahOaAp+iDveebkeaOp+WSjOaVsOaNruWIhuaekO+8jOiuqeaCqOmaj+aXtuaOjOaPoeacjeWKoeeKtuaAgScsXHJcbiAgICAgIGRldGFpbHM6IFsn5a6e5pe25oCn6IO95oyH5qCHJywgJ+ivpue7huS9v+eUqOaKpeWRiicsICfoh6rlrprkuYnlkYroraYnXVxyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgaWNvbjogU2hpZWxkLFxyXG4gICAgICB0aXRsZTogJ+S8geS4mue6p+WuieWFqCcsXHJcbiAgICAgIGRlc2NyaXB0aW9uOiAn5aSa5bGC5a6J5YWo6Ziy5oqk77yM5L+d6Zqc5pWw5o2u5Lyg6L6T5ZKM5a2Y5YKo5a6J5YWoJyxcclxuICAgICAgZGV0YWlsczogWyfnq6/liLDnq6/liqDlr4YnLCAnRERvUyDpmLLmiqQnLCAn5a6J5YWo5a6h6K6hJ11cclxuICAgIH0sXHJcbiAgICB7XHJcbiAgICAgIGljb246IFphcCxcclxuICAgICAgdGl0bGU6ICfmnoHpgJ/mgKfog70nLFxyXG4gICAgICBkZXNjcmlwdGlvbjogJ+S8mOWMlueahOS8oOi+k+WNj+iuruWSjOe8k+WtmOacuuWItu+8jOaPkOS+m+aegeiHtOiuv+mXrumAn+W6picsXHJcbiAgICAgIGRldGFpbHM6IFsnSFRUUC8zIOaUr+aMgScsICfmmbrog73nvJPlrZgnLCAn5Y6L57yp5LyY5YyWJ11cclxuICAgIH0sXHJcbiAgICB7XHJcbiAgICAgIGljb246IFVzZXJzLFxyXG4gICAgICB0aXRsZTogJ+WboumYn+WNj+S9nCcsXHJcbiAgICAgIGRlc2NyaXB0aW9uOiAn5a6M5ZaE55qE5p2D6ZmQ566h55CG5ZKM5Zui6Zif5Y2P5L2c5Yqf6IO9JyxcclxuICAgICAgZGV0YWlsczogWyflpJrnlKjmiLfnrqHnkIYnLCAn5p2D6ZmQ5o6n5Yi2JywgJ+aTjeS9nOaXpeW/lyddXHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICBpY29uOiBDbG9jayxcclxuICAgICAgdGl0bGU6ICc3w5cyNCDmlK/mjIEnLFxyXG4gICAgICBkZXNjcmlwdGlvbjogJ+WFqOWkqeWAmeaKgOacr+aUr+aMge+8jOehruS/neaCqOeahOS4muWKoeeos+Wumui/kOihjCcsXHJcbiAgICAgIGRldGFpbHM6IFsn5Y2z5pe25ZON5bqUJywgJ+S4k+S4muaKgOacr+WboumYnycsICflpJrmuKDpgZPmlK/mjIEnXVxyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgaWNvbjogQ2hlY2tDaXJjbGUsXHJcbiAgICAgIHRpdGxlOiAnU0xBIOS/nemanCcsXHJcbiAgICAgIGRlc2NyaXB0aW9uOiAn5Lil5qC855qE5pyN5Yqh562J57qn5Y2P6K6u77yM56Gu5L+d5pyN5Yqh6LSo6YePJyxcclxuICAgICAgZGV0YWlsczogWyc5OS45JSDlj6/nlKjmgKcnLCAn5oCn6IO95L+d6K+BJywgJ+i1lOWBv+acuuWItiddXHJcbiAgICB9XHJcbiAgXTtcclxuXHJcbiAgcmV0dXJuIChcclxuICAgIDxzZWN0aW9uIGlkPVwiZmVhdHVyZXNcIiBjbGFzc05hbWU9XCJweC02IHB5LTE2XCI+XHJcbiAgICAgIDxkaXYgY2xhc3NOYW1lPVwibWF4LXctc2NyZWVuLXhsIG14LWF1dG9cIj5cclxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInRleHQtY2VudGVyIG1iLTE2XCI+XHJcbiAgICAgICAgICA8aDIgY2xhc3NOYW1lPVwidGV4dC0zeGwgbWQ6dGV4dC00eGwgZm9udC1ib2xkIHRleHQtcHJpbWFyeSBtYi00XCI+XHJcbiAgICAgICAgICAgIOaguOW/g+S6p+WTgeeJueaAp1xyXG4gICAgICAgICAgPC9oMj5cclxuICAgICAgICAgIDxwIGNsYXNzTmFtZT1cInRleHQteGwgdGV4dC1ncmF5LTYwMCBtYXgtdy0zeGwgbXgtYXV0b1wiPlxyXG4gICAgICAgICAgICDmiJHku6zmj5DkvpvkuJrnlYzpooblhYjnmoTkupHliqDpgJ/mnI3liqHvvIzpgJrov4flhYjov5vnmoTmioDmnK/mnrbmnoTlkozmmbrog73nrpfms5XvvIxcclxuICAgICAgICAgICAg5Li65oKo55qE5Lia5Yqh5o+Q5L6b56iz5a6a44CB5a6J5YWo44CB6auY5pWI55qE5oqA5pyv6Kej5Yaz5pa55qGIXHJcbiAgICAgICAgICA8L3A+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgXHJcbiAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJncmlkIGdyaWQtY29scy0xIG1kOmdyaWQtY29scy0yIGxnOmdyaWQtY29scy00IGdhcC04XCI+XHJcbiAgICAgICAgICB7ZmVhdHVyZXMubWFwKChmZWF0dXJlLCBpbmRleCkgPT4gKFxyXG4gICAgICAgICAgICA8ZGl2IFxyXG4gICAgICAgICAgICAgIGtleT17aW5kZXh9XHJcbiAgICAgICAgICAgICAgY2xhc3NOYW1lPVwiZ3JvdXAgYmctd2hpdGUgcC02IHJvdW5kZWQteGwgc2hhZG93LW1kIGhvdmVyOnNoYWRvdy14bCB0cmFuc2l0aW9uLWFsbCBkdXJhdGlvbi0zMDAgYm9yZGVyIGJvcmRlci1ncmF5LTEwMCBob3Zlcjpib3JkZXItYWNjZW50LzIwXCJcclxuICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZmxleCBmbGV4LWNvbCBpdGVtcy1jZW50ZXIgdGV4dC1jZW50ZXJcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwidy0xNiBoLTE2IGJnLWdyYWRpZW50LXRvLWJyIGZyb20tYWNjZW50LzEwIHRvLWFjY2VudC8yMCByb3VuZGVkLXhsIGZsZXggaXRlbXMtY2VudGVyIGp1c3RpZnktY2VudGVyIG1iLTQgZ3JvdXAtaG92ZXI6c2NhbGUtMTEwIHRyYW5zaXRpb24tdHJhbnNmb3JtIGR1cmF0aW9uLTMwMFwiPlxyXG4gICAgICAgICAgICAgICAgICA8ZmVhdHVyZS5pY29uIGNsYXNzTmFtZT1cImgtOCB3LTggdGV4dC1hY2NlbnRcIiAvPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8aDMgY2xhc3NOYW1lPVwidGV4dC14bCBmb250LXNlbWlib2xkIG1iLTMgdGV4dC1wcmltYXJ5IGdyb3VwLWhvdmVyOnRleHQtYWNjZW50IHRyYW5zaXRpb24tY29sb3JzXCI+XHJcbiAgICAgICAgICAgICAgICAgIHtmZWF0dXJlLnRpdGxlfVxyXG4gICAgICAgICAgICAgICAgPC9oMz5cclxuICAgICAgICAgICAgICAgIDxwIGNsYXNzTmFtZT1cInRleHQtZ3JheS02MDAgbWItNCBsZWFkaW5nLXJlbGF4ZWRcIj5cclxuICAgICAgICAgICAgICAgICAge2ZlYXR1cmUuZGVzY3JpcHRpb259XHJcbiAgICAgICAgICAgICAgICA8L3A+XHJcbiAgICAgICAgICAgICAgICA8dWwgY2xhc3NOYW1lPVwic3BhY2UteS0yIHRleHQtc20gdGV4dC1ncmF5LTUwMFwiPlxyXG4gICAgICAgICAgICAgICAgICB7ZmVhdHVyZS5kZXRhaWxzLm1hcCgoZGV0YWlsLCBpZHgpID0+IChcclxuICAgICAgICAgICAgICAgICAgICA8bGkga2V5PXtpZHh9IGNsYXNzTmFtZT1cImZsZXggaXRlbXMtY2VudGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8Q2hlY2tDaXJjbGUgY2xhc3NOYW1lPVwiaC00IHctNCB0ZXh0LWdyZWVuLTUwMCBtci0yIGZsZXgtc2hyaW5rLTBcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAge2RldGFpbH1cclxuICAgICAgICAgICAgICAgICAgICA8L2xpPlxyXG4gICAgICAgICAgICAgICAgICApKX1cclxuICAgICAgICAgICAgICAgIDwvdWw+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgKSl9XHJcbiAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgIHsvKiDmioDmnK/mnrbmnoTlsZXnpLogKi99XHJcbiAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJtdC0yMCBiZy1ncmFkaWVudC10by1yIGZyb20tYmx1ZS01MCB0by1pbmRpZ28tNTAgcm91bmRlZC0yeGwgcC04IG1kOnAtMTJcIj5cclxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwidGV4dC1jZW50ZXIgbWItOFwiPlxyXG4gICAgICAgICAgICA8aDMgY2xhc3NOYW1lPVwidGV4dC0yeGwgbWQ6dGV4dC0zeGwgZm9udC1ib2xkIHRleHQtcHJpbWFyeSBtYi00XCI+XHJcbiAgICAgICAgICAgICAg5oqA5pyv5p625p6E5LyY5Yq/XHJcbiAgICAgICAgICAgIDwvaDM+XHJcbiAgICAgICAgICAgIDxwIGNsYXNzTmFtZT1cInRleHQtZ3JheS02MDAgbWF4LXctMnhsIG14LWF1dG9cIj5cclxuICAgICAgICAgICAgICDln7rkuo7kupHljp/nlJ/mnrbmnoTvvIzph4fnlKjlvq7mnI3liqHorr7orqHvvIznoa7kv53ns7vnu5/nmoTpq5jlj6/nlKjmgKflkozlj6/mianlsZXmgKdcclxuICAgICAgICAgICAgPC9wPlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICBcclxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZ3JpZCBncmlkLWNvbHMtMSBtZDpncmlkLWNvbHMtMyBnYXAtOFwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInRleHQtY2VudGVyXCI+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJ3LTIwIGgtMjAgYmctd2hpdGUgcm91bmRlZC1mdWxsIGZsZXggaXRlbXMtY2VudGVyIGp1c3RpZnktY2VudGVyIG14LWF1dG8gbWItNCBzaGFkb3ctbGdcIj5cclxuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cInRleHQtMnhsIGZvbnQtYm9sZCB0ZXh0LWFjY2VudFwiPjk5LjklPC9zcGFuPlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDxoNCBjbGFzc05hbWU9XCJ0ZXh0LWxnIGZvbnQtc2VtaWJvbGQgbWItMlwiPuacjeWKoeWPr+eUqOaApzwvaDQ+XHJcbiAgICAgICAgICAgICAgPHAgY2xhc3NOYW1lPVwidGV4dC1ncmF5LTYwMCB0ZXh0LXNtXCI+5LyB5Lia57qnIFNMQSDkv53pmpw8L3A+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICBcclxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJ0ZXh0LWNlbnRlclwiPlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwidy0yMCBoLTIwIGJnLXdoaXRlIHJvdW5kZWQtZnVsbCBmbGV4IGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNlbnRlciBteC1hdXRvIG1iLTQgc2hhZG93LWxnXCI+XHJcbiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJ0ZXh0LTJ4bCBmb250LWJvbGQgdGV4dC1hY2NlbnRcIj4mbHQ7IDUwbXM8L3NwYW4+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPGg0IGNsYXNzTmFtZT1cInRleHQtbGcgZm9udC1zZW1pYm9sZCBtYi0yXCI+5bmz5Z2H5bu26L+fPC9oND5cclxuICAgICAgICAgICAgICA8cCBjbGFzc05hbWU9XCJ0ZXh0LWdyYXktNjAwIHRleHQtc21cIj7lhajnkIPoioLngrnkvJjljJY8L3A+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICBcclxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJ0ZXh0LWNlbnRlclwiPlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwidy0yMCBoLTIwIGJnLXdoaXRlIHJvdW5kZWQtZnVsbCBmbGV4IGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNlbnRlciBteC1hdXRvIG1iLTQgc2hhZG93LWxnXCI+XHJcbiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJ0ZXh0LTJ4bCBmb250LWJvbGQgdGV4dC1hY2NlbnRcIj41MCs8L3NwYW4+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPGg0IGNsYXNzTmFtZT1cInRleHQtbGcgZm9udC1zZW1pYm9sZCBtYi0yXCI+5YWo55CD6IqC54K5PC9oND5cclxuICAgICAgICAgICAgICA8cCBjbGFzc05hbWU9XCJ0ZXh0LWdyYXktNjAwIHRleHQtc21cIj7opobnm5bkuLvopoHlnLDljLo8L3A+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9zZWN0aW9uPlxyXG4gICk7XHJcbn0iXSwibmFtZXMiOlsiR2xvYmUiLCJSZXBlYXQiLCJCYXJDaGFydCIsIlNoaWVsZCIsIlphcCIsIlVzZXJzIiwiQ2xvY2siLCJDaGVja0NpcmNsZSIsIkZlYXR1cmVzIiwiZmVhdHVyZXMiLCJpY29uIiwidGl0bGUiLCJkZXNjcmlwdGlvbiIsImRldGFpbHMiLCJzZWN0aW9uIiwiaWQiLCJjbGFzc05hbWUiLCJkaXYiLCJoMiIsInAiLCJtYXAiLCJmZWF0dXJlIiwiaW5kZXgiLCJoMyIsInVsIiwiZGV0YWlsIiwiaWR4IiwibGkiLCJzcGFuIiwiaDQiXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(pages-dir-node)/./components/Features.tsx\n"); - -/***/ }), - -/***/ "(pages-dir-node)/./components/Footer.tsx": -/*!*******************************!*\ - !*** ./components/Footer.tsx ***! - \*******************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ Footer)\n/* harmony export */ });\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react/jsx-dev-runtime */ \"react/jsx-dev-runtime\");\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _barrel_optimize_names_Mail_MessageCircle_Phone_lucide_react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! __barrel_optimize__?names=Mail,MessageCircle,Phone!=!lucide-react */ \"(pages-dir-node)/__barrel_optimize__?names=Mail,MessageCircle,Phone!=!./node_modules/lucide-react/dist/cjs/lucide-react.js\");\n\n\nfunction Footer() {\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"footer\", {\n className: \"bg-gray-900 text-white py-12\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"max-w-screen-xl mx-auto px-6\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"grid grid-cols-1 md:grid-cols-4 gap-8\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"md:col-span-2\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"h3\", {\n className: \"text-2xl font-bold mb-4\",\n children: \"Pinnovate Cloud\"\n }, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\Footer.tsx\",\n lineNumber: 10,\n columnNumber: 13\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"p\", {\n className: \"text-gray-300 mb-6 max-w-md\",\n children: \"专业的云加速服务提供商,为全球企业提供高性能、安全可靠的网络加速解决方案。\"\n }, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\Footer.tsx\",\n lineNumber: 11,\n columnNumber: 13\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"space-y-3\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex items-center gap-3\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_barrel_optimize_names_Mail_MessageCircle_Phone_lucide_react__WEBPACK_IMPORTED_MODULE_1__.Mail, {\n className: \"w-5 h-5 text-accent\"\n }, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\Footer.tsx\",\n lineNumber: 16,\n columnNumber: 17\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"a\", {\n href: \"mailto:support@pinnovatecloud.com\",\n className: \"text-gray-300 hover:text-white transition-colors\",\n children: \"support@pinnovatecloud.com\"\n }, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\Footer.tsx\",\n lineNumber: 17,\n columnNumber: 17\n }, this)\n ]\n }, void 0, true, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\Footer.tsx\",\n lineNumber: 15,\n columnNumber: 15\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex items-center gap-3\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_barrel_optimize_names_Mail_MessageCircle_Phone_lucide_react__WEBPACK_IMPORTED_MODULE_1__.Phone, {\n className: \"w-5 h-5 text-accent\"\n }, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\Footer.tsx\",\n lineNumber: 22,\n columnNumber: 17\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"a\", {\n href: \"https://wa.me/19174029875\",\n className: \"text-gray-300 hover:text-white transition-colors\",\n children: \"+1 917-402-9875\"\n }, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\Footer.tsx\",\n lineNumber: 23,\n columnNumber: 17\n }, this)\n ]\n }, void 0, true, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\Footer.tsx\",\n lineNumber: 21,\n columnNumber: 15\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex items-center gap-3\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_barrel_optimize_names_Mail_MessageCircle_Phone_lucide_react__WEBPACK_IMPORTED_MODULE_1__.MessageCircle, {\n className: \"w-5 h-5 text-accent\"\n }, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\Footer.tsx\",\n lineNumber: 28,\n columnNumber: 17\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"a\", {\n href: \"https://t.me/pinnovatecloud\",\n className: \"text-gray-300 hover:text-white transition-colors\",\n children: \"@pinnovatecloud\"\n }, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\Footer.tsx\",\n lineNumber: 29,\n columnNumber: 17\n }, this)\n ]\n }, void 0, true, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\Footer.tsx\",\n lineNumber: 27,\n columnNumber: 15\n }, this)\n ]\n }, void 0, true, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\Footer.tsx\",\n lineNumber: 14,\n columnNumber: 13\n }, this)\n ]\n }, void 0, true, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\Footer.tsx\",\n lineNumber: 9,\n columnNumber: 11\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)(\"h4\", {\n className: \"text-lg font-semibold mb-4\",\n children: \"服务\"\n }, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\Footer.tsx\",\n lineNumber: 38,\n columnNumber: 13\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"ul\", {\n className: \"space-y-2\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"li\", {\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"a\", {\n href: \"/features\",\n className: \"text-gray-300 hover:text-white transition-colors\",\n children: \"产品特性\"\n }, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\Footer.tsx\",\n lineNumber: 40,\n columnNumber: 19\n }, this)\n }, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\Footer.tsx\",\n lineNumber: 40,\n columnNumber: 15\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"li\", {\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"a\", {\n href: \"/pricing\",\n className: \"text-gray-300 hover:text-white transition-colors\",\n children: \"定价方案\"\n }, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\Footer.tsx\",\n lineNumber: 41,\n columnNumber: 19\n }, this)\n }, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\Footer.tsx\",\n lineNumber: 41,\n columnNumber: 15\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"li\", {\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"a\", {\n href: \"/cases\",\n className: \"text-gray-300 hover:text-white transition-colors\",\n children: \"客户案例\"\n }, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\Footer.tsx\",\n lineNumber: 42,\n columnNumber: 19\n }, this)\n }, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\Footer.tsx\",\n lineNumber: 42,\n columnNumber: 15\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"li\", {\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"a\", {\n href: \"/news\",\n className: \"text-gray-300 hover:text-white transition-colors\",\n children: \"新闻资讯\"\n }, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\Footer.tsx\",\n lineNumber: 43,\n columnNumber: 19\n }, this)\n }, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\Footer.tsx\",\n lineNumber: 43,\n columnNumber: 15\n }, this)\n ]\n }, void 0, true, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\Footer.tsx\",\n lineNumber: 39,\n columnNumber: 13\n }, this)\n ]\n }, void 0, true, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\Footer.tsx\",\n lineNumber: 37,\n columnNumber: 11\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)(\"h4\", {\n className: \"text-lg font-semibold mb-4\",\n children: \"支持\"\n }, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\Footer.tsx\",\n lineNumber: 49,\n columnNumber: 13\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"ul\", {\n className: \"space-y-2\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"li\", {\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"a\", {\n href: \"/contact\",\n className: \"text-gray-300 hover:text-white transition-colors\",\n children: \"联系我们\"\n }, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\Footer.tsx\",\n lineNumber: 51,\n columnNumber: 19\n }, this)\n }, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\Footer.tsx\",\n lineNumber: 51,\n columnNumber: 15\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"li\", {\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"a\", {\n href: \"/about\",\n className: \"text-gray-300 hover:text-white transition-colors\",\n children: \"关于我们\"\n }, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\Footer.tsx\",\n lineNumber: 52,\n columnNumber: 19\n }, this)\n }, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\Footer.tsx\",\n lineNumber: 52,\n columnNumber: 15\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"li\", {\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"a\", {\n href: \"#\",\n className: \"text-gray-300 hover:text-white transition-colors\",\n children: \"帮助中心\"\n }, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\Footer.tsx\",\n lineNumber: 53,\n columnNumber: 19\n }, this)\n }, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\Footer.tsx\",\n lineNumber: 53,\n columnNumber: 15\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"li\", {\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"a\", {\n href: \"#\",\n className: \"text-gray-300 hover:text-white transition-colors\",\n children: \"API 文档\"\n }, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\Footer.tsx\",\n lineNumber: 54,\n columnNumber: 19\n }, this)\n }, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\Footer.tsx\",\n lineNumber: 54,\n columnNumber: 15\n }, this)\n ]\n }, void 0, true, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\Footer.tsx\",\n lineNumber: 50,\n columnNumber: 13\n }, this)\n ]\n }, void 0, true, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\Footer.tsx\",\n lineNumber: 48,\n columnNumber: 11\n }, this)\n ]\n }, void 0, true, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\Footer.tsx\",\n lineNumber: 7,\n columnNumber: 9\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"border-t border-gray-700 mt-8 pt-8 flex flex-col md:flex-row justify-between items-center\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"p\", {\n className: \"text-gray-400 text-sm\",\n children: \"\\xa9 2025 Pinnovate Cloud. 保留所有权利。\"\n }, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\Footer.tsx\",\n lineNumber: 60,\n columnNumber: 11\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex space-x-6 mt-4 md:mt-0\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"a\", {\n href: \"https://t.me/pinnovatecloud\",\n className: \"text-gray-400 hover:text-white transition-colors\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_barrel_optimize_names_Mail_MessageCircle_Phone_lucide_react__WEBPACK_IMPORTED_MODULE_1__.MessageCircle, {\n className: \"w-5 h-5\"\n }, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\Footer.tsx\",\n lineNumber: 65,\n columnNumber: 15\n }, this)\n }, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\Footer.tsx\",\n lineNumber: 64,\n columnNumber: 13\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"a\", {\n href: \"https://wa.me/19174029875\",\n className: \"text-gray-400 hover:text-white transition-colors\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_barrel_optimize_names_Mail_MessageCircle_Phone_lucide_react__WEBPACK_IMPORTED_MODULE_1__.Phone, {\n className: \"w-5 h-5\"\n }, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\Footer.tsx\",\n lineNumber: 68,\n columnNumber: 15\n }, this)\n }, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\Footer.tsx\",\n lineNumber: 67,\n columnNumber: 13\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"a\", {\n href: \"mailto:support@pinnovatecloud.com\",\n className: \"text-gray-400 hover:text-white transition-colors\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_barrel_optimize_names_Mail_MessageCircle_Phone_lucide_react__WEBPACK_IMPORTED_MODULE_1__.Mail, {\n className: \"w-5 h-5\"\n }, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\Footer.tsx\",\n lineNumber: 71,\n columnNumber: 15\n }, this)\n }, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\Footer.tsx\",\n lineNumber: 70,\n columnNumber: 13\n }, this)\n ]\n }, void 0, true, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\Footer.tsx\",\n lineNumber: 63,\n columnNumber: 11\n }, this)\n ]\n }, void 0, true, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\Footer.tsx\",\n lineNumber: 59,\n columnNumber: 9\n }, this)\n ]\n }, void 0, true, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\Footer.tsx\",\n lineNumber: 6,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\Footer.tsx\",\n lineNumber: 5,\n columnNumber: 5\n }, this);\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1ub2RlKS8uL2NvbXBvbmVudHMvRm9vdGVyLnRzeCIsIm1hcHBpbmdzIjoiOzs7Ozs7OztBQUEwRDtBQUUzQyxTQUFTRztJQUN0QixxQkFDRSw4REFBQ0M7UUFBT0MsV0FBVTtrQkFDaEIsNEVBQUNDO1lBQUlELFdBQVU7OzhCQUNiLDhEQUFDQztvQkFBSUQsV0FBVTs7c0NBRWIsOERBQUNDOzRCQUFJRCxXQUFVOzs4Q0FDYiw4REFBQ0U7b0NBQUdGLFdBQVU7OENBQTBCOzs7Ozs7OENBQ3hDLDhEQUFDRztvQ0FBRUgsV0FBVTs4Q0FBOEI7Ozs7Ozs4Q0FHM0MsOERBQUNDO29DQUFJRCxXQUFVOztzREFDYiw4REFBQ0M7NENBQUlELFdBQVU7OzhEQUNiLDhEQUFDTCw4RkFBSUE7b0RBQUNLLFdBQVU7Ozs7Ozs4REFDaEIsOERBQUNJO29EQUFFQyxNQUFLO29EQUFvQ0wsV0FBVTs4REFBbUQ7Ozs7Ozs7Ozs7OztzREFJM0csOERBQUNDOzRDQUFJRCxXQUFVOzs4REFDYiw4REFBQ0gsK0ZBQUtBO29EQUFDRyxXQUFVOzs7Ozs7OERBQ2pCLDhEQUFDSTtvREFBRUMsTUFBSztvREFBNEJMLFdBQVU7OERBQW1EOzs7Ozs7Ozs7Ozs7c0RBSW5HLDhEQUFDQzs0Q0FBSUQsV0FBVTs7OERBQ2IsOERBQUNKLHVHQUFhQTtvREFBQ0ksV0FBVTs7Ozs7OzhEQUN6Qiw4REFBQ0k7b0RBQUVDLE1BQUs7b0RBQThCTCxXQUFVOzhEQUFtRDs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O3NDQVF6Ryw4REFBQ0M7OzhDQUNDLDhEQUFDSztvQ0FBR04sV0FBVTs4Q0FBNkI7Ozs7Ozs4Q0FDM0MsOERBQUNPO29DQUFHUCxXQUFVOztzREFDWiw4REFBQ1E7c0RBQUcsNEVBQUNKO2dEQUFFQyxNQUFLO2dEQUFZTCxXQUFVOzBEQUFtRDs7Ozs7Ozs7Ozs7c0RBQ3JGLDhEQUFDUTtzREFBRyw0RUFBQ0o7Z0RBQUVDLE1BQUs7Z0RBQVdMLFdBQVU7MERBQW1EOzs7Ozs7Ozs7OztzREFDcEYsOERBQUNRO3NEQUFHLDRFQUFDSjtnREFBRUMsTUFBSztnREFBU0wsV0FBVTswREFBbUQ7Ozs7Ozs7Ozs7O3NEQUNsRiw4REFBQ1E7c0RBQUcsNEVBQUNKO2dEQUFFQyxNQUFLO2dEQUFRTCxXQUFVOzBEQUFtRDs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7c0NBS3JGLDhEQUFDQzs7OENBQ0MsOERBQUNLO29DQUFHTixXQUFVOzhDQUE2Qjs7Ozs7OzhDQUMzQyw4REFBQ087b0NBQUdQLFdBQVU7O3NEQUNaLDhEQUFDUTtzREFBRyw0RUFBQ0o7Z0RBQUVDLE1BQUs7Z0RBQVdMLFdBQVU7MERBQW1EOzs7Ozs7Ozs7OztzREFDcEYsOERBQUNRO3NEQUFHLDRFQUFDSjtnREFBRUMsTUFBSztnREFBU0wsV0FBVTswREFBbUQ7Ozs7Ozs7Ozs7O3NEQUNsRiw4REFBQ1E7c0RBQUcsNEVBQUNKO2dEQUFFQyxNQUFLO2dEQUFJTCxXQUFVOzBEQUFtRDs7Ozs7Ozs7Ozs7c0RBQzdFLDhEQUFDUTtzREFBRyw0RUFBQ0o7Z0RBQUVDLE1BQUs7Z0RBQUlMLFdBQVU7MERBQW1EOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs4QkFLbkYsOERBQUNDO29CQUFJRCxXQUFVOztzQ0FDYiw4REFBQ0c7NEJBQUVILFdBQVU7c0NBQXdCOzs7Ozs7c0NBR3JDLDhEQUFDQzs0QkFBSUQsV0FBVTs7OENBQ2IsOERBQUNJO29DQUFFQyxNQUFLO29DQUE4QkwsV0FBVTs4Q0FDOUMsNEVBQUNKLHVHQUFhQTt3Q0FBQ0ksV0FBVTs7Ozs7Ozs7Ozs7OENBRTNCLDhEQUFDSTtvQ0FBRUMsTUFBSztvQ0FBNEJMLFdBQVU7OENBQzVDLDRFQUFDSCwrRkFBS0E7d0NBQUNHLFdBQVU7Ozs7Ozs7Ozs7OzhDQUVuQiw4REFBQ0k7b0NBQUVDLE1BQUs7b0NBQW9DTCxXQUFVOzhDQUNwRCw0RUFBQ0wsOEZBQUlBO3dDQUFDSyxXQUFVOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBTzlCIiwic291cmNlcyI6WyJEOlxcZG9uZ3l1bi1wcm9qZWN0c1xcdHdvXFxjb21wb25lbnRzXFxGb290ZXIudHN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE1haWwsIE1lc3NhZ2VDaXJjbGUsIFBob25lIH0gZnJvbSAnbHVjaWRlLXJlYWN0JztcclxuXHJcbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIEZvb3RlcigpIHtcclxuICByZXR1cm4gKFxyXG4gICAgPGZvb3RlciBjbGFzc05hbWU9XCJiZy1ncmF5LTkwMCB0ZXh0LXdoaXRlIHB5LTEyXCI+XHJcbiAgICAgIDxkaXYgY2xhc3NOYW1lPVwibWF4LXctc2NyZWVuLXhsIG14LWF1dG8gcHgtNlwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZ3JpZCBncmlkLWNvbHMtMSBtZDpncmlkLWNvbHMtNCBnYXAtOFwiPlxyXG4gICAgICAgICAgey8qIOWFrOWPuOS/oeaBryAqL31cclxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwibWQ6Y29sLXNwYW4tMlwiPlxyXG4gICAgICAgICAgICA8aDMgY2xhc3NOYW1lPVwidGV4dC0yeGwgZm9udC1ib2xkIG1iLTRcIj5QaW5ub3ZhdGUgQ2xvdWQ8L2gzPlxyXG4gICAgICAgICAgICA8cCBjbGFzc05hbWU9XCJ0ZXh0LWdyYXktMzAwIG1iLTYgbWF4LXctbWRcIj5cclxuICAgICAgICAgICAgICDkuJPkuJrnmoTkupHliqDpgJ/mnI3liqHmj5DkvpvllYbvvIzkuLrlhajnkIPkvIHkuJrmj5Dkvpvpq5jmgKfog73jgIHlronlhajlj6/pnaDnmoTnvZHnu5zliqDpgJ/op6PlhrPmlrnmoYjjgIJcclxuICAgICAgICAgICAgPC9wPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInNwYWNlLXktM1wiPlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZmxleCBpdGVtcy1jZW50ZXIgZ2FwLTNcIj5cclxuICAgICAgICAgICAgICAgIDxNYWlsIGNsYXNzTmFtZT1cInctNSBoLTUgdGV4dC1hY2NlbnRcIiAvPlxyXG4gICAgICAgICAgICAgICAgPGEgaHJlZj1cIm1haWx0bzpzdXBwb3J0QHBpbm5vdmF0ZWNsb3VkLmNvbVwiIGNsYXNzTmFtZT1cInRleHQtZ3JheS0zMDAgaG92ZXI6dGV4dC13aGl0ZSB0cmFuc2l0aW9uLWNvbG9yc1wiPlxyXG4gICAgICAgICAgICAgICAgICBzdXBwb3J0QHBpbm5vdmF0ZWNsb3VkLmNvbVxyXG4gICAgICAgICAgICAgICAgPC9hPlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZmxleCBpdGVtcy1jZW50ZXIgZ2FwLTNcIj5cclxuICAgICAgICAgICAgICAgIDxQaG9uZSBjbGFzc05hbWU9XCJ3LTUgaC01IHRleHQtYWNjZW50XCIgLz5cclxuICAgICAgICAgICAgICAgIDxhIGhyZWY9XCJodHRwczovL3dhLm1lLzE5MTc0MDI5ODc1XCIgY2xhc3NOYW1lPVwidGV4dC1ncmF5LTMwMCBob3Zlcjp0ZXh0LXdoaXRlIHRyYW5zaXRpb24tY29sb3JzXCI+XHJcbiAgICAgICAgICAgICAgICAgICsxIDkxNy00MDItOTg3NVxyXG4gICAgICAgICAgICAgICAgPC9hPlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZmxleCBpdGVtcy1jZW50ZXIgZ2FwLTNcIj5cclxuICAgICAgICAgICAgICAgIDxNZXNzYWdlQ2lyY2xlIGNsYXNzTmFtZT1cInctNSBoLTUgdGV4dC1hY2NlbnRcIiAvPlxyXG4gICAgICAgICAgICAgICAgPGEgaHJlZj1cImh0dHBzOi8vdC5tZS9waW5ub3ZhdGVjbG91ZFwiIGNsYXNzTmFtZT1cInRleHQtZ3JheS0zMDAgaG92ZXI6dGV4dC13aGl0ZSB0cmFuc2l0aW9uLWNvbG9yc1wiPlxyXG4gICAgICAgICAgICAgICAgICBAcGlubm92YXRlY2xvdWRcclxuICAgICAgICAgICAgICAgIDwvYT5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICB7Lyog5pyN5Yqh6ZO+5o6lICovfVxyXG4gICAgICAgICAgPGRpdj5cclxuICAgICAgICAgICAgPGg0IGNsYXNzTmFtZT1cInRleHQtbGcgZm9udC1zZW1pYm9sZCBtYi00XCI+5pyN5YqhPC9oND5cclxuICAgICAgICAgICAgPHVsIGNsYXNzTmFtZT1cInNwYWNlLXktMlwiPlxyXG4gICAgICAgICAgICAgIDxsaT48YSBocmVmPVwiL2ZlYXR1cmVzXCIgY2xhc3NOYW1lPVwidGV4dC1ncmF5LTMwMCBob3Zlcjp0ZXh0LXdoaXRlIHRyYW5zaXRpb24tY29sb3JzXCI+5Lqn5ZOB54m55oCnPC9hPjwvbGk+XHJcbiAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9XCIvcHJpY2luZ1wiIGNsYXNzTmFtZT1cInRleHQtZ3JheS0zMDAgaG92ZXI6dGV4dC13aGl0ZSB0cmFuc2l0aW9uLWNvbG9yc1wiPuWumuS7t+aWueahiDwvYT48L2xpPlxyXG4gICAgICAgICAgICAgIDxsaT48YSBocmVmPVwiL2Nhc2VzXCIgY2xhc3NOYW1lPVwidGV4dC1ncmF5LTMwMCBob3Zlcjp0ZXh0LXdoaXRlIHRyYW5zaXRpb24tY29sb3JzXCI+5a6i5oi35qGI5L6LPC9hPjwvbGk+XHJcbiAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9XCIvbmV3c1wiIGNsYXNzTmFtZT1cInRleHQtZ3JheS0zMDAgaG92ZXI6dGV4dC13aGl0ZSB0cmFuc2l0aW9uLWNvbG9yc1wiPuaWsOmXu+i1hOiurzwvYT48L2xpPlxyXG4gICAgICAgICAgICA8L3VsPlxyXG4gICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgey8qIOaUr+aMgemTvuaOpSAqL31cclxuICAgICAgICAgIDxkaXY+XHJcbiAgICAgICAgICAgIDxoNCBjbGFzc05hbWU9XCJ0ZXh0LWxnIGZvbnQtc2VtaWJvbGQgbWItNFwiPuaUr+aMgTwvaDQ+XHJcbiAgICAgICAgICAgIDx1bCBjbGFzc05hbWU9XCJzcGFjZS15LTJcIj5cclxuICAgICAgICAgICAgICA8bGk+PGEgaHJlZj1cIi9jb250YWN0XCIgY2xhc3NOYW1lPVwidGV4dC1ncmF5LTMwMCBob3Zlcjp0ZXh0LXdoaXRlIHRyYW5zaXRpb24tY29sb3JzXCI+6IGU57O75oiR5LusPC9hPjwvbGk+XHJcbiAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9XCIvYWJvdXRcIiBjbGFzc05hbWU9XCJ0ZXh0LWdyYXktMzAwIGhvdmVyOnRleHQtd2hpdGUgdHJhbnNpdGlvbi1jb2xvcnNcIj7lhbPkuo7miJHku6w8L2E+PC9saT5cclxuICAgICAgICAgICAgICA8bGk+PGEgaHJlZj1cIiNcIiBjbGFzc05hbWU9XCJ0ZXh0LWdyYXktMzAwIGhvdmVyOnRleHQtd2hpdGUgdHJhbnNpdGlvbi1jb2xvcnNcIj7luK7liqnkuK3lv4M8L2E+PC9saT5cclxuICAgICAgICAgICAgICA8bGk+PGEgaHJlZj1cIiNcIiBjbGFzc05hbWU9XCJ0ZXh0LWdyYXktMzAwIGhvdmVyOnRleHQtd2hpdGUgdHJhbnNpdGlvbi1jb2xvcnNcIj5BUEkg5paH5qGjPC9hPjwvbGk+XHJcbiAgICAgICAgICAgIDwvdWw+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJib3JkZXItdCBib3JkZXItZ3JheS03MDAgbXQtOCBwdC04IGZsZXggZmxleC1jb2wgbWQ6ZmxleC1yb3cganVzdGlmeS1iZXR3ZWVuIGl0ZW1zLWNlbnRlclwiPlxyXG4gICAgICAgICAgPHAgY2xhc3NOYW1lPVwidGV4dC1ncmF5LTQwMCB0ZXh0LXNtXCI+XHJcbiAgICAgICAgICAgICZjb3B5OyAyMDI1IFBpbm5vdmF0ZSBDbG91ZC4g5L+d55WZ5omA5pyJ5p2D5Yip44CCXHJcbiAgICAgICAgICA8L3A+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImZsZXggc3BhY2UteC02IG10LTQgbWQ6bXQtMFwiPlxyXG4gICAgICAgICAgICA8YSBocmVmPVwiaHR0cHM6Ly90Lm1lL3Bpbm5vdmF0ZWNsb3VkXCIgY2xhc3NOYW1lPVwidGV4dC1ncmF5LTQwMCBob3Zlcjp0ZXh0LXdoaXRlIHRyYW5zaXRpb24tY29sb3JzXCI+XHJcbiAgICAgICAgICAgICAgPE1lc3NhZ2VDaXJjbGUgY2xhc3NOYW1lPVwidy01IGgtNVwiIC8+XHJcbiAgICAgICAgICAgIDwvYT5cclxuICAgICAgICAgICAgPGEgaHJlZj1cImh0dHBzOi8vd2EubWUvMTkxNzQwMjk4NzVcIiBjbGFzc05hbWU9XCJ0ZXh0LWdyYXktNDAwIGhvdmVyOnRleHQtd2hpdGUgdHJhbnNpdGlvbi1jb2xvcnNcIj5cclxuICAgICAgICAgICAgICA8UGhvbmUgY2xhc3NOYW1lPVwidy01IGgtNVwiIC8+XHJcbiAgICAgICAgICAgIDwvYT5cclxuICAgICAgICAgICAgPGEgaHJlZj1cIm1haWx0bzpzdXBwb3J0QHBpbm5vdmF0ZWNsb3VkLmNvbVwiIGNsYXNzTmFtZT1cInRleHQtZ3JheS00MDAgaG92ZXI6dGV4dC13aGl0ZSB0cmFuc2l0aW9uLWNvbG9yc1wiPlxyXG4gICAgICAgICAgICAgIDxNYWlsIGNsYXNzTmFtZT1cInctNSBoLTVcIiAvPlxyXG4gICAgICAgICAgICA8L2E+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L2Zvb3Rlcj5cclxuICApO1xyXG59Il0sIm5hbWVzIjpbIk1haWwiLCJNZXNzYWdlQ2lyY2xlIiwiUGhvbmUiLCJGb290ZXIiLCJmb290ZXIiLCJjbGFzc05hbWUiLCJkaXYiLCJoMyIsInAiLCJhIiwiaHJlZiIsImg0IiwidWwiLCJsaSJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(pages-dir-node)/./components/Footer.tsx\n"); - -/***/ }), - -/***/ "(pages-dir-node)/./components/Hero.tsx": -/*!*****************************!*\ - !*** ./components/Hero.tsx ***! - \*****************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ Hero)\n/* harmony export */ });\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react/jsx-dev-runtime */ \"react/jsx-dev-runtime\");\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__);\n\nfunction Hero() {\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"section\", {\n className: \"mt-16 bg-gray-100\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"container mx-auto flex flex-col md:flex-row items-center justify-between min-h-[60vh] px-6 py-12\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"md:w-1/2 space-y-6\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"h1\", {\n className: \"text-5xl font-bold text-primary\",\n children: \"无限云,服务无界\"\n }, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\Hero.tsx\",\n lineNumber: 7,\n columnNumber: 11\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"p\", {\n className: \"text-xl text-gray-700\",\n children: \"稳定无极限,优惠趁现在!年付88折,月付95折!\"\n }, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\Hero.tsx\",\n lineNumber: 8,\n columnNumber: 11\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex items-center space-x-4\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"a\", {\n href: \"/pricing\",\n className: \"px-6 py-3 bg-accent text-white rounded-lg hover:opacity-90 transition\",\n children: \"立即抢购\"\n }, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\Hero.tsx\",\n lineNumber: 10,\n columnNumber: 13\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"a\", {\n href: \"/contact\",\n className: \"px-6 py-3 border border-primary text-primary rounded-lg hover:bg-primary hover:text-white transition\",\n children: \"联系我们\"\n }, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\Hero.tsx\",\n lineNumber: 16,\n columnNumber: 13\n }, this)\n ]\n }, void 0, true, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\Hero.tsx\",\n lineNumber: 9,\n columnNumber: 11\n }, this)\n ]\n }, void 0, true, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\Hero.tsx\",\n lineNumber: 6,\n columnNumber: 9\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"md:w-1/2 mt-8 md:mt-0 flex justify-center\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"img\", {\n src: \"/hero-graphic.png\",\n alt: \"Pinnovate Cloud Illustration\",\n className: \"max-w-full h-auto rounded shadow-lg\"\n }, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\Hero.tsx\",\n lineNumber: 26,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\Hero.tsx\",\n lineNumber: 25,\n columnNumber: 9\n }, this)\n ]\n }, void 0, true, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\Hero.tsx\",\n lineNumber: 4,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\Hero.tsx\",\n lineNumber: 3,\n columnNumber: 5\n }, this);\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1ub2RlKS8uL2NvbXBvbmVudHMvSGVyby50c3giLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQUFlLFNBQVNBO0lBQ3RCLHFCQUNFLDhEQUFDQztRQUFRQyxXQUFVO2tCQUNqQiw0RUFBQ0M7WUFBSUQsV0FBVTs7OEJBRWIsOERBQUNDO29CQUFJRCxXQUFVOztzQ0FDYiw4REFBQ0U7NEJBQUdGLFdBQVU7c0NBQWtDOzs7Ozs7c0NBQ2hELDhEQUFDRzs0QkFBRUgsV0FBVTtzQ0FBd0I7Ozs7OztzQ0FDckMsOERBQUNDOzRCQUFJRCxXQUFVOzs4Q0FDYiw4REFBQ0k7b0NBQ0NDLE1BQUs7b0NBQ0xMLFdBQVU7OENBQ1g7Ozs7Ozs4Q0FHRCw4REFBQ0k7b0NBQ0NDLE1BQUs7b0NBQ0xMLFdBQVU7OENBQ1g7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs4QkFNTCw4REFBQ0M7b0JBQUlELFdBQVU7OEJBQ2IsNEVBQUNNO3dCQUFJQyxLQUFJO3dCQUFvQkMsS0FBSTt3QkFBK0JSLFdBQVU7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFJakYiLCJzb3VyY2VzIjpbIkQ6XFxkb25neXVuLXByb2plY3RzXFx0d29cXGNvbXBvbmVudHNcXEhlcm8udHN4Il0sInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIEhlcm8oKSB7XHJcbiAgcmV0dXJuIChcclxuICAgIDxzZWN0aW9uIGNsYXNzTmFtZT1cIm10LTE2IGJnLWdyYXktMTAwXCI+XHJcbiAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29udGFpbmVyIG14LWF1dG8gZmxleCBmbGV4LWNvbCBtZDpmbGV4LXJvdyBpdGVtcy1jZW50ZXIganVzdGlmeS1iZXR3ZWVuIG1pbi1oLVs2MHZoXSBweC02IHB5LTEyXCI+XHJcbiAgICAgICAgey8qIOW3puS+p+aWh+WtlyAqL31cclxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cIm1kOnctMS8yIHNwYWNlLXktNlwiPlxyXG4gICAgICAgICAgPGgxIGNsYXNzTmFtZT1cInRleHQtNXhsIGZvbnQtYm9sZCB0ZXh0LXByaW1hcnlcIj7ml6DpmZDkupHvvIzmnI3liqHml6DnlYw8L2gxPlxyXG4gICAgICAgICAgPHAgY2xhc3NOYW1lPVwidGV4dC14bCB0ZXh0LWdyYXktNzAwXCI+56iz5a6a5peg5p6B6ZmQ77yM5LyY5oOg6LaB546w5Zyo77yB5bm05LuYODjmipjvvIzmnIjku5g5NeaKmO+8gTwvcD5cclxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZmxleCBpdGVtcy1jZW50ZXIgc3BhY2UteC00XCI+XHJcbiAgICAgICAgICAgIDxhXHJcbiAgICAgICAgICAgICAgaHJlZj1cIi9wcmljaW5nXCJcclxuICAgICAgICAgICAgICBjbGFzc05hbWU9XCJweC02IHB5LTMgYmctYWNjZW50IHRleHQtd2hpdGUgcm91bmRlZC1sZyBob3ZlcjpvcGFjaXR5LTkwIHRyYW5zaXRpb25cIlxyXG4gICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAg56uL5Y2z5oqi6LStXHJcbiAgICAgICAgICAgIDwvYT5cclxuICAgICAgICAgICAgPGFcclxuICAgICAgICAgICAgICBocmVmPVwiL2NvbnRhY3RcIlxyXG4gICAgICAgICAgICAgIGNsYXNzTmFtZT1cInB4LTYgcHktMyBib3JkZXIgYm9yZGVyLXByaW1hcnkgdGV4dC1wcmltYXJ5IHJvdW5kZWQtbGcgaG92ZXI6YmctcHJpbWFyeSBob3Zlcjp0ZXh0LXdoaXRlIHRyYW5zaXRpb25cIlxyXG4gICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAg6IGU57O75oiR5LusXHJcbiAgICAgICAgICAgIDwvYT5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIHsvKiDlj7PkvqfnpLrmhI/lm74gKi99XHJcbiAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJtZDp3LTEvMiBtdC04IG1kOm10LTAgZmxleCBqdXN0aWZ5LWNlbnRlclwiPlxyXG4gICAgICAgICAgPGltZyBzcmM9XCIvaGVyby1ncmFwaGljLnBuZ1wiIGFsdD1cIlBpbm5vdmF0ZSBDbG91ZCBJbGx1c3RyYXRpb25cIiBjbGFzc05hbWU9XCJtYXgtdy1mdWxsIGgtYXV0byByb3VuZGVkIHNoYWRvdy1sZ1wiIC8+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9zZWN0aW9uPlxyXG4gICl9Il0sIm5hbWVzIjpbIkhlcm8iLCJzZWN0aW9uIiwiY2xhc3NOYW1lIiwiZGl2IiwiaDEiLCJwIiwiYSIsImhyZWYiLCJpbWciLCJzcmMiLCJhbHQiXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(pages-dir-node)/./components/Hero.tsx\n"); - -/***/ }), - -/***/ "(pages-dir-node)/./components/Navbar.tsx": -/*!*******************************!*\ - !*** ./components/Navbar.tsx ***! - \*******************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ Navbar)\n/* harmony export */ });\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react/jsx-dev-runtime */ \"react/jsx-dev-runtime\");\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react */ \"react\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var next_link__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! next/link */ \"(pages-dir-node)/./node_modules/next/link.js\");\n/* harmony import */ var next_link__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(next_link__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var _barrel_optimize_names_Menu_lucide_react__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! __barrel_optimize__?names=Menu!=!lucide-react */ \"(pages-dir-node)/__barrel_optimize__?names=Menu!=!./node_modules/lucide-react/dist/cjs/lucide-react.js\");\n/* harmony import */ var _Sidebar__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./Sidebar */ \"(pages-dir-node)/./components/Sidebar.tsx\");\n\n\n\n\n\nfunction Navbar() {\n const [open, setOpen] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(false);\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"header\", {\n className: \"fixed top-0 left-0 w-full bg-background shadow-sm z-50\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"container mx-auto flex items-center justify-between h-16 px-4\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex items-center space-x-4\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"button\", {\n className: \"md:hidden p-2 focus:outline-none\",\n onClick: ()=>setOpen(true),\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_barrel_optimize_names_Menu_lucide_react__WEBPACK_IMPORTED_MODULE_4__.Menu, {\n className: \"h-6 w-6 text-primary\"\n }, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\Navbar.tsx\",\n lineNumber: 16,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\Navbar.tsx\",\n lineNumber: 15,\n columnNumber: 11\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)((next_link__WEBPACK_IMPORTED_MODULE_2___default()), {\n href: \"/\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"img\", {\n src: \"/logo.png\",\n alt: \"CloudProxy\",\n className: \"h-8 w-8\"\n }, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\Navbar.tsx\",\n lineNumber: 19,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\Navbar.tsx\",\n lineNumber: 18,\n columnNumber: 11\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"nav\", {\n className: \"hidden md:flex items-center space-x-4\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)((next_link__WEBPACK_IMPORTED_MODULE_2___default()), {\n href: \"/\",\n className: \"text-primary font-semibold\",\n children: \"首页\"\n }, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\Navbar.tsx\",\n lineNumber: 23,\n columnNumber: 13\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)((next_link__WEBPACK_IMPORTED_MODULE_2___default()), {\n href: \"/features\",\n className: \"text-gray-600 hover:text-primary\",\n children: \"产品与服务\"\n }, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\Navbar.tsx\",\n lineNumber: 24,\n columnNumber: 13\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)((next_link__WEBPACK_IMPORTED_MODULE_2___default()), {\n href: \"/news\",\n className: \"text-gray-600 hover:text-primary\",\n children: \"新闻资讯\"\n }, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\Navbar.tsx\",\n lineNumber: 25,\n columnNumber: 13\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)((next_link__WEBPACK_IMPORTED_MODULE_2___default()), {\n href: \"/cases\",\n className: \"text-gray-600 hover:text-primary\",\n children: \"客户案例\"\n }, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\Navbar.tsx\",\n lineNumber: 26,\n columnNumber: 13\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)((next_link__WEBPACK_IMPORTED_MODULE_2___default()), {\n href: \"/about\",\n className: \"text-gray-600 hover:text-primary\",\n children: \"关于我们\"\n }, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\Navbar.tsx\",\n lineNumber: 27,\n columnNumber: 13\n }, this)\n ]\n }, void 0, true, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\Navbar.tsx\",\n lineNumber: 22,\n columnNumber: 11\n }, this)\n ]\n }, void 0, true, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\Navbar.tsx\",\n lineNumber: 13,\n columnNumber: 9\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex items-center space-x-4\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)((next_link__WEBPACK_IMPORTED_MODULE_2___default()), {\n href: \"/contact\",\n className: \"px-4 py-1 border border-primary rounded-full text-primary hover:bg-primary hover:text-white transition\",\n children: \"联系我们\"\n }, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\Navbar.tsx\",\n lineNumber: 33,\n columnNumber: 11\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"a\", {\n href: \"https://instagram.com\",\n target: \"_blank\",\n rel: \"noopener noreferrer\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"i\", {\n className: \"fab fa-instagram text-gray-600 hover:text-primary\"\n }, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\Navbar.tsx\",\n lineNumber: 37,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\Navbar.tsx\",\n lineNumber: 36,\n columnNumber: 11\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"a\", {\n href: \"https://facebook.com\",\n target: \"_blank\",\n rel: \"noopener noreferrer\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"i\", {\n className: \"fab fa-facebook text-gray-600 hover:text-primary\"\n }, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\Navbar.tsx\",\n lineNumber: 40,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\Navbar.tsx\",\n lineNumber: 39,\n columnNumber: 11\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"a\", {\n href: \"https://twitter.com\",\n target: \"_blank\",\n rel: \"noopener noreferrer\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"i\", {\n className: \"fab fa-twitter text-gray-600 hover:text-primary\"\n }, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\Navbar.tsx\",\n lineNumber: 43,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\Navbar.tsx\",\n lineNumber: 42,\n columnNumber: 11\n }, this)\n ]\n }, void 0, true, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\Navbar.tsx\",\n lineNumber: 32,\n columnNumber: 9\n }, this)\n ]\n }, void 0, true, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\Navbar.tsx\",\n lineNumber: 11,\n columnNumber: 7\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_Sidebar__WEBPACK_IMPORTED_MODULE_3__[\"default\"], {\n open: open,\n onClose: ()=>setOpen(false)\n }, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\Navbar.tsx\",\n lineNumber: 49,\n columnNumber: 7\n }, this)\n ]\n }, void 0, true, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\Navbar.tsx\",\n lineNumber: 10,\n columnNumber: 5\n }, this);\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1ub2RlKS8uL2NvbXBvbmVudHMvTmF2YmFyLnRzeCIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7O0FBQWlDO0FBQ0o7QUFDTztBQUNKO0FBRWpCLFNBQVNJO0lBQ3RCLE1BQU0sQ0FBQ0MsTUFBTUMsUUFBUSxHQUFHTiwrQ0FBUUEsQ0FBQztJQUVqQyxxQkFDRSw4REFBQ087UUFBT0MsV0FBVTs7MEJBQ2hCLDhEQUFDQztnQkFBSUQsV0FBVTs7a0NBRWIsOERBQUNDO3dCQUFJRCxXQUFVOzswQ0FFYiw4REFBQ0U7Z0NBQU9GLFdBQVU7Z0NBQW1DRyxTQUFTLElBQU1MLFFBQVE7MENBQzFFLDRFQUFDSiwwRUFBSUE7b0NBQUNNLFdBQVU7Ozs7Ozs7Ozs7OzBDQUVsQiw4REFBQ1Asa0RBQUlBO2dDQUFDVyxNQUFLOzBDQUNULDRFQUFDQztvQ0FBSUMsS0FBSTtvQ0FBWUMsS0FBSTtvQ0FBYVAsV0FBVTs7Ozs7Ozs7Ozs7MENBR2xELDhEQUFDUTtnQ0FBSVIsV0FBVTs7a0RBQ2IsOERBQUNQLGtEQUFJQTt3Q0FBQ1csTUFBSzt3Q0FBSUosV0FBVTtrREFBNkI7Ozs7OztrREFDdEQsOERBQUNQLGtEQUFJQTt3Q0FBQ1csTUFBSzt3Q0FBWUosV0FBVTtrREFBbUM7Ozs7OztrREFDcEUsOERBQUNQLGtEQUFJQTt3Q0FBQ1csTUFBSzt3Q0FBUUosV0FBVTtrREFBbUM7Ozs7OztrREFDaEUsOERBQUNQLGtEQUFJQTt3Q0FBQ1csTUFBSzt3Q0FBU0osV0FBVTtrREFBbUM7Ozs7OztrREFDakUsOERBQUNQLGtEQUFJQTt3Q0FBQ1csTUFBSzt3Q0FBU0osV0FBVTtrREFBbUM7Ozs7Ozs7Ozs7Ozs7Ozs7OztrQ0FLckUsOERBQUNDO3dCQUFJRCxXQUFVOzswQ0FDYiw4REFBQ1Asa0RBQUlBO2dDQUFDVyxNQUFLO2dDQUFXSixXQUFVOzBDQUF5Rzs7Ozs7OzBDQUd6SSw4REFBQ1M7Z0NBQUVMLE1BQUs7Z0NBQXdCTSxRQUFPO2dDQUFTQyxLQUFJOzBDQUNsRCw0RUFBQ0M7b0NBQUVaLFdBQVU7Ozs7Ozs7Ozs7OzBDQUVmLDhEQUFDUztnQ0FBRUwsTUFBSztnQ0FBdUJNLFFBQU87Z0NBQVNDLEtBQUk7MENBQ2pELDRFQUFDQztvQ0FBRVosV0FBVTs7Ozs7Ozs7Ozs7MENBRWYsOERBQUNTO2dDQUFFTCxNQUFLO2dDQUFzQk0sUUFBTztnQ0FBU0MsS0FBSTswQ0FDaEQsNEVBQUNDO29DQUFFWixXQUFVOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OzswQkFNbkIsOERBQUNMLGdEQUFPQTtnQkFBQ0UsTUFBTUE7Z0JBQU1nQixTQUFTLElBQU1mLFFBQVE7Ozs7Ozs7Ozs7OztBQUUvQyIsInNvdXJjZXMiOlsiRDpcXGRvbmd5dW4tcHJvamVjdHNcXHR3b1xcY29tcG9uZW50c1xcTmF2YmFyLnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyB1c2VTdGF0ZSB9IGZyb20gJ3JlYWN0JztcclxuaW1wb3J0IExpbmsgZnJvbSAnbmV4dC9saW5rJztcclxuaW1wb3J0IHsgTWVudSB9IGZyb20gJ2x1Y2lkZS1yZWFjdCc7XHJcbmltcG9ydCBTaWRlYmFyIGZyb20gJy4vU2lkZWJhcic7XHJcblxyXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBOYXZiYXIoKSB7XHJcbiAgY29uc3QgW29wZW4sIHNldE9wZW5dID0gdXNlU3RhdGUoZmFsc2UpO1xyXG5cclxuICByZXR1cm4gKFxyXG4gICAgPGhlYWRlciBjbGFzc05hbWU9XCJmaXhlZCB0b3AtMCBsZWZ0LTAgdy1mdWxsIGJnLWJhY2tncm91bmQgc2hhZG93LXNtIHotNTBcIj5cclxuICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb250YWluZXIgbXgtYXV0byBmbGV4IGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWJldHdlZW4gaC0xNiBweC00XCI+XHJcbiAgICAgICAgey8qIOW3puS+pyBMb2dvICsg5a+86IiqICovfVxyXG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZmxleCBpdGVtcy1jZW50ZXIgc3BhY2UteC00XCI+XHJcbiAgICAgICAgICB7Lyog56e75Yqo56uv6I+c5Y2V5oyJ6ZKuICovfVxyXG4gICAgICAgICAgPGJ1dHRvbiBjbGFzc05hbWU9XCJtZDpoaWRkZW4gcC0yIGZvY3VzOm91dGxpbmUtbm9uZVwiIG9uQ2xpY2s9eygpID0+IHNldE9wZW4odHJ1ZSl9PlxyXG4gICAgICAgICAgICA8TWVudSBjbGFzc05hbWU9XCJoLTYgdy02IHRleHQtcHJpbWFyeVwiIC8+XHJcbiAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgIDxMaW5rIGhyZWY9XCIvXCI+XHJcbiAgICAgICAgICAgIDxpbWcgc3JjPVwiL2xvZ28ucG5nXCIgYWx0PVwiQ2xvdWRQcm94eVwiIGNsYXNzTmFtZT1cImgtOCB3LThcIiAvPlxyXG4gICAgICAgICAgPC9MaW5rPlxyXG4gICAgICAgICAgey8qIOahjOmdouerr+WvvOiIqumTvuaOpSAqL31cclxuICAgICAgICAgIDxuYXYgY2xhc3NOYW1lPVwiaGlkZGVuIG1kOmZsZXggaXRlbXMtY2VudGVyIHNwYWNlLXgtNFwiPlxyXG4gICAgICAgICAgICA8TGluayBocmVmPVwiL1wiIGNsYXNzTmFtZT1cInRleHQtcHJpbWFyeSBmb250LXNlbWlib2xkXCI+6aaW6aG1PC9MaW5rPlxyXG4gICAgICAgICAgICA8TGluayBocmVmPVwiL2ZlYXR1cmVzXCIgY2xhc3NOYW1lPVwidGV4dC1ncmF5LTYwMCBob3Zlcjp0ZXh0LXByaW1hcnlcIj7kuqflk4HkuI7mnI3liqE8L0xpbms+XHJcbiAgICAgICAgICAgIDxMaW5rIGhyZWY9XCIvbmV3c1wiIGNsYXNzTmFtZT1cInRleHQtZ3JheS02MDAgaG92ZXI6dGV4dC1wcmltYXJ5XCI+5paw6Ze76LWE6K6vPC9MaW5rPlxyXG4gICAgICAgICAgICA8TGluayBocmVmPVwiL2Nhc2VzXCIgY2xhc3NOYW1lPVwidGV4dC1ncmF5LTYwMCBob3Zlcjp0ZXh0LXByaW1hcnlcIj7lrqLmiLfmoYjkvos8L0xpbms+XHJcbiAgICAgICAgICAgIDxMaW5rIGhyZWY9XCIvYWJvdXRcIiBjbGFzc05hbWU9XCJ0ZXh0LWdyYXktNjAwIGhvdmVyOnRleHQtcHJpbWFyeVwiPuWFs+S6juaIkeS7rDwvTGluaz5cclxuICAgICAgICAgIDwvbmF2PlxyXG4gICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICB7Lyog5Y+z5L6n5pON5L2c5YWl5Y+jICovfVxyXG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZmxleCBpdGVtcy1jZW50ZXIgc3BhY2UteC00XCI+XHJcbiAgICAgICAgICA8TGluayBocmVmPVwiL2NvbnRhY3RcIiBjbGFzc05hbWU9XCJweC00IHB5LTEgYm9yZGVyIGJvcmRlci1wcmltYXJ5IHJvdW5kZWQtZnVsbCB0ZXh0LXByaW1hcnkgaG92ZXI6YmctcHJpbWFyeSBob3Zlcjp0ZXh0LXdoaXRlIHRyYW5zaXRpb25cIj5cclxuICAgICAgICAgICAg6IGU57O75oiR5LusXHJcbiAgICAgICAgICA8L0xpbms+XHJcbiAgICAgICAgICA8YSBocmVmPVwiaHR0cHM6Ly9pbnN0YWdyYW0uY29tXCIgdGFyZ2V0PVwiX2JsYW5rXCIgcmVsPVwibm9vcGVuZXIgbm9yZWZlcnJlclwiPlxyXG4gICAgICAgICAgICA8aSBjbGFzc05hbWU9XCJmYWIgZmEtaW5zdGFncmFtIHRleHQtZ3JheS02MDAgaG92ZXI6dGV4dC1wcmltYXJ5XCIgLz5cclxuICAgICAgICAgIDwvYT5cclxuICAgICAgICAgIDxhIGhyZWY9XCJodHRwczovL2ZhY2Vib29rLmNvbVwiIHRhcmdldD1cIl9ibGFua1wiIHJlbD1cIm5vb3BlbmVyIG5vcmVmZXJyZXJcIj5cclxuICAgICAgICAgICAgPGkgY2xhc3NOYW1lPVwiZmFiIGZhLWZhY2Vib29rIHRleHQtZ3JheS02MDAgaG92ZXI6dGV4dC1wcmltYXJ5XCIgLz5cclxuICAgICAgICAgIDwvYT5cclxuICAgICAgICAgIDxhIGhyZWY9XCJodHRwczovL3R3aXR0ZXIuY29tXCIgdGFyZ2V0PVwiX2JsYW5rXCIgcmVsPVwibm9vcGVuZXIgbm9yZWZlcnJlclwiPlxyXG4gICAgICAgICAgICA8aSBjbGFzc05hbWU9XCJmYWIgZmEtdHdpdHRlciB0ZXh0LWdyYXktNjAwIGhvdmVyOnRleHQtcHJpbWFyeVwiIC8+XHJcbiAgICAgICAgICA8L2E+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgey8qIOS+p+i+ueagjyAqL31cclxuICAgICAgPFNpZGViYXIgb3Blbj17b3Blbn0gb25DbG9zZT17KCkgPT4gc2V0T3BlbihmYWxzZSl9IC8+XHJcbiAgICA8L2hlYWRlcj5cclxuICApfSJdLCJuYW1lcyI6WyJ1c2VTdGF0ZSIsIkxpbmsiLCJNZW51IiwiU2lkZWJhciIsIk5hdmJhciIsIm9wZW4iLCJzZXRPcGVuIiwiaGVhZGVyIiwiY2xhc3NOYW1lIiwiZGl2IiwiYnV0dG9uIiwib25DbGljayIsImhyZWYiLCJpbWciLCJzcmMiLCJhbHQiLCJuYXYiLCJhIiwidGFyZ2V0IiwicmVsIiwiaSIsIm9uQ2xvc2UiXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(pages-dir-node)/./components/Navbar.tsx\n"); - -/***/ }), - -/***/ "(pages-dir-node)/./components/Process.tsx": -/*!********************************!*\ - !*** ./components/Process.tsx ***! - \********************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ Process)\n/* harmony export */ });\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react/jsx-dev-runtime */ \"react/jsx-dev-runtime\");\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _barrel_optimize_names_CheckCircle_Headphones_MessageSquare_UserCheck_lucide_react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! __barrel_optimize__?names=CheckCircle,Headphones,MessageSquare,UserCheck!=!lucide-react */ \"(pages-dir-node)/__barrel_optimize__?names=CheckCircle,Headphones,MessageSquare,UserCheck!=!./node_modules/lucide-react/dist/cjs/lucide-react.js\");\n\n\nconst steps = [\n {\n icon: _barrel_optimize_names_CheckCircle_Headphones_MessageSquare_UserCheck_lucide_react__WEBPACK_IMPORTED_MODULE_1__.CheckCircle,\n label: '选择产品'\n },\n {\n icon: _barrel_optimize_names_CheckCircle_Headphones_MessageSquare_UserCheck_lucide_react__WEBPACK_IMPORTED_MODULE_1__.MessageSquare,\n label: '联系销售'\n },\n {\n icon: _barrel_optimize_names_CheckCircle_Headphones_MessageSquare_UserCheck_lucide_react__WEBPACK_IMPORTED_MODULE_1__.Headphones,\n label: '沟通业务'\n },\n {\n icon: _barrel_optimize_names_CheckCircle_Headphones_MessageSquare_UserCheck_lucide_react__WEBPACK_IMPORTED_MODULE_1__.UserCheck,\n label: '开通账户'\n }\n];\nfunction Process() {\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"section\", {\n className: \"px-6 py-section bg-background\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"h2\", {\n className: \"text-3xl font-semibold text-center mb-12\",\n children: \"开通流程\"\n }, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\Process.tsx\",\n lineNumber: 14,\n columnNumber: 7\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"max-w-screen-lg mx-auto flex justify-between items-center\",\n children: steps.map(({ icon: Icon, label }, idx)=>/*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex flex-col items-center text-center\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(Icon, {\n className: \"h-12 w-12 text-accent mb-4\"\n }, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\Process.tsx\",\n lineNumber: 18,\n columnNumber: 13\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"h-0.5 bg-accent w-24 mb-2\"\n }, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\Process.tsx\",\n lineNumber: 19,\n columnNumber: 13\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n className: \"text-base text-primary\",\n children: label\n }, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\Process.tsx\",\n lineNumber: 20,\n columnNumber: 13\n }, this)\n ]\n }, label, true, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\Process.tsx\",\n lineNumber: 17,\n columnNumber: 11\n }, this))\n }, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\Process.tsx\",\n lineNumber: 15,\n columnNumber: 7\n }, this)\n ]\n }, void 0, true, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\Process.tsx\",\n lineNumber: 13,\n columnNumber: 5\n }, this);\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1ub2RlKS8uL2NvbXBvbmVudHMvUHJvY2Vzcy50c3giLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7QUFDaUY7QUFFakYsTUFBTUksUUFBUTtJQUNaO1FBQUVDLE1BQU1MLDJIQUFXQTtRQUFFTSxPQUFPO0lBQU87SUFDbkM7UUFBRUQsTUFBTUosNkhBQWFBO1FBQUVLLE9BQU87SUFBTztJQUNyQztRQUFFRCxNQUFNSCwwSEFBVUE7UUFBRUksT0FBTztJQUFPO0lBQ2xDO1FBQUVELE1BQU1GLHlIQUFTQTtRQUFFRyxPQUFPO0lBQU87Q0FDbEM7QUFFYyxTQUFTQztJQUN0QixxQkFDRSw4REFBQ0M7UUFBUUMsV0FBVTs7MEJBQ2pCLDhEQUFDQztnQkFBR0QsV0FBVTswQkFBMkM7Ozs7OzswQkFDekQsOERBQUNFO2dCQUFJRixXQUFVOzBCQUNaTCxNQUFNUSxHQUFHLENBQUMsQ0FBQyxFQUFFUCxNQUFNUSxJQUFJLEVBQUVQLEtBQUssRUFBRSxFQUFFUSxvQkFDakMsOERBQUNIO3dCQUFnQkYsV0FBVTs7MENBQ3pCLDhEQUFDSTtnQ0FBS0osV0FBVTs7Ozs7OzBDQUNoQiw4REFBQ0U7Z0NBQUlGLFdBQVU7Ozs7OzswQ0FDZiw4REFBQ007Z0NBQUtOLFdBQVU7MENBQTBCSDs7Ozs7Ozt1QkFIbENBOzs7Ozs7Ozs7Ozs7Ozs7O0FBU3BCIiwic291cmNlcyI6WyJEOlxcZG9uZ3l1bi1wcm9qZWN0c1xcdHdvXFxjb21wb25lbnRzXFxQcm9jZXNzLnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJcclxuaW1wb3J0IHsgQ2hlY2tDaXJjbGUsIE1lc3NhZ2VTcXVhcmUsIEhlYWRwaG9uZXMsIFVzZXJDaGVjayB9IGZyb20gJ2x1Y2lkZS1yZWFjdCc7XHJcblxyXG5jb25zdCBzdGVwcyA9IFtcclxuICB7IGljb246IENoZWNrQ2lyY2xlLCBsYWJlbDogJ+mAieaLqeS6p+WTgScgfSxcclxuICB7IGljb246IE1lc3NhZ2VTcXVhcmUsIGxhYmVsOiAn6IGU57O76ZSA5ZSuJyB9LFxyXG4gIHsgaWNvbjogSGVhZHBob25lcywgbGFiZWw6ICfmsp/pgJrkuJrliqEnIH0sXHJcbiAgeyBpY29uOiBVc2VyQ2hlY2ssIGxhYmVsOiAn5byA6YCa6LSm5oi3JyB9LFxyXG5dO1xyXG5cclxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gUHJvY2VzcygpIHtcclxuICByZXR1cm4gKFxyXG4gICAgPHNlY3Rpb24gY2xhc3NOYW1lPVwicHgtNiBweS1zZWN0aW9uIGJnLWJhY2tncm91bmRcIj5cclxuICAgICAgPGgyIGNsYXNzTmFtZT1cInRleHQtM3hsIGZvbnQtc2VtaWJvbGQgdGV4dC1jZW50ZXIgbWItMTJcIj7lvIDpgJrmtYHnqIs8L2gyPlxyXG4gICAgICA8ZGl2IGNsYXNzTmFtZT1cIm1heC13LXNjcmVlbi1sZyBteC1hdXRvIGZsZXgganVzdGlmeS1iZXR3ZWVuIGl0ZW1zLWNlbnRlclwiPlxyXG4gICAgICAgIHtzdGVwcy5tYXAoKHsgaWNvbjogSWNvbiwgbGFiZWwgfSwgaWR4KSA9PiAoXHJcbiAgICAgICAgICA8ZGl2IGtleT17bGFiZWx9IGNsYXNzTmFtZT1cImZsZXggZmxleC1jb2wgaXRlbXMtY2VudGVyIHRleHQtY2VudGVyXCI+XHJcbiAgICAgICAgICAgIDxJY29uIGNsYXNzTmFtZT1cImgtMTIgdy0xMiB0ZXh0LWFjY2VudCBtYi00XCIgLz5cclxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJoLTAuNSBiZy1hY2NlbnQgdy0yNCBtYi0yXCI+PC9kaXY+XHJcbiAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cInRleHQtYmFzZSB0ZXh0LXByaW1hcnlcIj57bGFiZWx9PC9zcGFuPlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgKSl9XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9zZWN0aW9uPlxyXG4gICk7XHJcbn0iXSwibmFtZXMiOlsiQ2hlY2tDaXJjbGUiLCJNZXNzYWdlU3F1YXJlIiwiSGVhZHBob25lcyIsIlVzZXJDaGVjayIsInN0ZXBzIiwiaWNvbiIsImxhYmVsIiwiUHJvY2VzcyIsInNlY3Rpb24iLCJjbGFzc05hbWUiLCJoMiIsImRpdiIsIm1hcCIsIkljb24iLCJpZHgiLCJzcGFuIl0sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(pages-dir-node)/./components/Process.tsx\n"); - -/***/ }), - -/***/ "(pages-dir-node)/./components/Sidebar.tsx": -/*!********************************!*\ - !*** ./components/Sidebar.tsx ***! - \********************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ Sidebar)\n/* harmony export */ });\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react/jsx-dev-runtime */ \"react/jsx-dev-runtime\");\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var next_link__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! next/link */ \"(pages-dir-node)/./node_modules/next/link.js\");\n/* harmony import */ var next_link__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(next_link__WEBPACK_IMPORTED_MODULE_1__);\n\n\nfunction Sidebar({ open, onClose }) {\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"aside\", {\n className: `fixed inset-y-0 right-0 w-64 bg-background shadow-lg transform transition-transform duration-300 ` + (open ? 'translate-x-0' : 'translate-x-full'),\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"button\", {\n onClick: onClose,\n className: \"p-4 focus:outline-none text-primary\",\n children: \"✕ 关闭\"\n }, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\Sidebar.tsx\",\n lineNumber: 11,\n columnNumber: 7\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"nav\", {\n className: \"flex flex-col p-6 gap-6 font-medium\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)((next_link__WEBPACK_IMPORTED_MODULE_1___default()), {\n href: \"/features\",\n legacyBehavior: true,\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"a\", {\n onClick: onClose,\n className: \"hover:text-accent\",\n children: \"特性\"\n }, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\Sidebar.tsx\",\n lineNumber: 14,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\Sidebar.tsx\",\n lineNumber: 13,\n columnNumber: 9\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)((next_link__WEBPACK_IMPORTED_MODULE_1___default()), {\n href: \"/pricing\",\n legacyBehavior: true,\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"a\", {\n onClick: onClose,\n className: \"hover:text-accent\",\n children: \"定价\"\n }, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\Sidebar.tsx\",\n lineNumber: 17,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\Sidebar.tsx\",\n lineNumber: 16,\n columnNumber: 9\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)((next_link__WEBPACK_IMPORTED_MODULE_1___default()), {\n href: \"/contact\",\n legacyBehavior: true,\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"a\", {\n onClick: onClose,\n className: \"hover:text-accent\",\n children: \"联系我们\"\n }, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\Sidebar.tsx\",\n lineNumber: 20,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\Sidebar.tsx\",\n lineNumber: 19,\n columnNumber: 9\n }, this)\n ]\n }, void 0, true, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\Sidebar.tsx\",\n lineNumber: 12,\n columnNumber: 7\n }, this)\n ]\n }, void 0, true, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\Sidebar.tsx\",\n lineNumber: 5,\n columnNumber: 5\n }, this);\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1ub2RlKS8uL2NvbXBvbmVudHMvU2lkZWJhci50c3giLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O0FBQTZCO0FBRWQsU0FBU0MsUUFBUSxFQUFFQyxJQUFJLEVBQUVDLE9BQU8sRUFBMEM7SUFDdkYscUJBQ0UsOERBQUNDO1FBQ0NDLFdBQ0UsQ0FBQyxpR0FBaUcsQ0FBQyxHQUNsR0gsQ0FBQUEsT0FBTyxrQkFBa0Isa0JBQWlCOzswQkFHN0MsOERBQUNJO2dCQUFPQyxTQUFTSjtnQkFBU0UsV0FBVTswQkFBc0M7Ozs7OzswQkFDMUUsOERBQUNHO2dCQUFJSCxXQUFVOztrQ0FDYiw4REFBQ0wsa0RBQUlBO3dCQUFDUyxNQUFLO3dCQUFZQyxjQUFjO2tDQUNuQyw0RUFBQ0M7NEJBQUVKLFNBQVNKOzRCQUFTRSxXQUFVO3NDQUFvQjs7Ozs7Ozs7Ozs7a0NBRXJELDhEQUFDTCxrREFBSUE7d0JBQUNTLE1BQUs7d0JBQVdDLGNBQWM7a0NBQ2xDLDRFQUFDQzs0QkFBRUosU0FBU0o7NEJBQVNFLFdBQVU7c0NBQW9COzs7Ozs7Ozs7OztrQ0FFckQsOERBQUNMLGtEQUFJQTt3QkFBQ1MsTUFBSzt3QkFBV0MsY0FBYztrQ0FDbEMsNEVBQUNDOzRCQUFFSixTQUFTSjs0QkFBU0UsV0FBVTtzQ0FBb0I7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBSzdEIiwic291cmNlcyI6WyJEOlxcZG9uZ3l1bi1wcm9qZWN0c1xcdHdvXFxjb21wb25lbnRzXFxTaWRlYmFyLnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgTGluayBmcm9tICduZXh0L2xpbmsnO1xyXG5cclxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gU2lkZWJhcih7IG9wZW4sIG9uQ2xvc2UgfTogeyBvcGVuOiBib29sZWFuOyBvbkNsb3NlOiAoKSA9PiB2b2lkIH0pIHtcclxuICByZXR1cm4gKFxyXG4gICAgPGFzaWRlXHJcbiAgICAgIGNsYXNzTmFtZT17XHJcbiAgICAgICAgYGZpeGVkIGluc2V0LXktMCByaWdodC0wIHctNjQgYmctYmFja2dyb3VuZCBzaGFkb3ctbGcgdHJhbnNmb3JtIHRyYW5zaXRpb24tdHJhbnNmb3JtIGR1cmF0aW9uLTMwMCBgICtcclxuICAgICAgICAob3BlbiA/ICd0cmFuc2xhdGUteC0wJyA6ICd0cmFuc2xhdGUteC1mdWxsJylcclxuICAgICAgfVxyXG4gICAgPlxyXG4gICAgICA8YnV0dG9uIG9uQ2xpY2s9e29uQ2xvc2V9IGNsYXNzTmFtZT1cInAtNCBmb2N1czpvdXRsaW5lLW5vbmUgdGV4dC1wcmltYXJ5XCI+4pyVIOWFs+mXrTwvYnV0dG9uPlxyXG4gICAgICA8bmF2IGNsYXNzTmFtZT1cImZsZXggZmxleC1jb2wgcC02IGdhcC02IGZvbnQtbWVkaXVtXCI+XHJcbiAgICAgICAgPExpbmsgaHJlZj1cIi9mZWF0dXJlc1wiIGxlZ2FjeUJlaGF2aW9yPlxyXG4gICAgICAgICAgPGEgb25DbGljaz17b25DbG9zZX0gY2xhc3NOYW1lPVwiaG92ZXI6dGV4dC1hY2NlbnRcIj7nibnmgKc8L2E+XHJcbiAgICAgICAgPC9MaW5rPlxyXG4gICAgICAgIDxMaW5rIGhyZWY9XCIvcHJpY2luZ1wiIGxlZ2FjeUJlaGF2aW9yPlxyXG4gICAgICAgICAgPGEgb25DbGljaz17b25DbG9zZX0gY2xhc3NOYW1lPVwiaG92ZXI6dGV4dC1hY2NlbnRcIj7lrprku7c8L2E+XHJcbiAgICAgICAgPC9MaW5rPlxyXG4gICAgICAgIDxMaW5rIGhyZWY9XCIvY29udGFjdFwiIGxlZ2FjeUJlaGF2aW9yPlxyXG4gICAgICAgICAgPGEgb25DbGljaz17b25DbG9zZX0gY2xhc3NOYW1lPVwiaG92ZXI6dGV4dC1hY2NlbnRcIj7ogZTns7vmiJHku6w8L2E+XHJcbiAgICAgICAgPC9MaW5rPlxyXG4gICAgICA8L25hdj5cclxuICAgIDwvYXNpZGU+XHJcbiAgKTtcclxufSJdLCJuYW1lcyI6WyJMaW5rIiwiU2lkZWJhciIsIm9wZW4iLCJvbkNsb3NlIiwiYXNpZGUiLCJjbGFzc05hbWUiLCJidXR0b24iLCJvbkNsaWNrIiwibmF2IiwiaHJlZiIsImxlZ2FjeUJlaGF2aW9yIiwiYSJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(pages-dir-node)/./components/Sidebar.tsx\n"); - -/***/ }), - -/***/ "(pages-dir-node)/./components/Testimonials.tsx": -/*!*************************************!*\ - !*** ./components/Testimonials.tsx ***! - \*************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ Testimonials)\n/* harmony export */ });\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react/jsx-dev-runtime */ \"react/jsx-dev-runtime\");\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__);\n\nconst testimonials = [\n {\n name: 'Alice',\n content: 'CloudProxy 让我在海外部署的服务延迟降低了 60%!',\n avatar: '/avatars/alice.jpg'\n },\n {\n name: 'Bob',\n content: '简单易用的控制面板,实时网络指标一目了然。',\n avatar: '/avatars/bob.jpg'\n }\n];\nfunction Testimonials() {\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"section\", {\n className: \"px-6 py-section bg-background\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"max-w-screen-md mx-auto space-y-12\",\n children: testimonials.map((t)=>/*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex items-center gap-6\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"img\", {\n src: t.avatar,\n alt: t.name,\n className: \"h-16 w-16 rounded-full\"\n }, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\Testimonials.tsx\",\n lineNumber: 12,\n columnNumber: 13\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)(\"p\", {\n className: \"italic\",\n children: [\n \"“\",\n t.content,\n \"”\"\n ]\n }, void 0, true, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\Testimonials.tsx\",\n lineNumber: 14,\n columnNumber: 15\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"p\", {\n className: \"mt-2 font-medium\",\n children: [\n \"— \",\n t.name\n ]\n }, void 0, true, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\Testimonials.tsx\",\n lineNumber: 15,\n columnNumber: 15\n }, this)\n ]\n }, void 0, true, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\Testimonials.tsx\",\n lineNumber: 13,\n columnNumber: 13\n }, this)\n ]\n }, t.name, true, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\Testimonials.tsx\",\n lineNumber: 11,\n columnNumber: 11\n }, this))\n }, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\Testimonials.tsx\",\n lineNumber: 9,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\Testimonials.tsx\",\n lineNumber: 8,\n columnNumber: 5\n }, this);\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1ub2RlKS8uL2NvbXBvbmVudHMvVGVzdGltb25pYWxzLnRzeCIsIm1hcHBpbmdzIjoiOzs7Ozs7O0FBQUEsTUFBTUEsZUFBZTtJQUNuQjtRQUFFQyxNQUFNO1FBQVNDLFNBQVM7UUFBbUNDLFFBQVE7SUFBcUI7SUFDMUY7UUFBRUYsTUFBTTtRQUFPQyxTQUFTO1FBQXlCQyxRQUFRO0lBQW1CO0NBQzdFO0FBRWMsU0FBU0M7SUFDdEIscUJBQ0UsOERBQUNDO1FBQVFDLFdBQVU7a0JBQ2pCLDRFQUFDQztZQUFJRCxXQUFVO3NCQUNaTixhQUFhUSxHQUFHLENBQUNDLENBQUFBLGtCQUNoQiw4REFBQ0Y7b0JBQWlCRCxXQUFVOztzQ0FDMUIsOERBQUNJOzRCQUFJQyxLQUFLRixFQUFFTixNQUFNOzRCQUFFUyxLQUFLSCxFQUFFUixJQUFJOzRCQUFFSyxXQUFVOzs7Ozs7c0NBQzNDLDhEQUFDQzs7OENBQ0MsOERBQUNNO29DQUFFUCxXQUFVOzt3Q0FBUzt3Q0FBRUcsRUFBRVAsT0FBTzt3Q0FBQzs7Ozs7Ozs4Q0FDbEMsOERBQUNXO29DQUFFUCxXQUFVOzt3Q0FBbUI7d0NBQUdHLEVBQUVSLElBQUk7Ozs7Ozs7Ozs7Ozs7O21CQUpuQ1EsRUFBRVIsSUFBSTs7Ozs7Ozs7Ozs7Ozs7O0FBVzFCIiwic291cmNlcyI6WyJEOlxcZG9uZ3l1bi1wcm9qZWN0c1xcdHdvXFxjb21wb25lbnRzXFxUZXN0aW1vbmlhbHMudHN4Il0sInNvdXJjZXNDb250ZW50IjpbImNvbnN0IHRlc3RpbW9uaWFscyA9IFtcclxuICB7IG5hbWU6ICdBbGljZScsIGNvbnRlbnQ6ICdDbG91ZFByb3h5IOiuqeaIkeWcqOa1t+WklumDqOe9sueahOacjeWKoeW7tui/n+mZjeS9juS6hiA2MCXvvIEnLCBhdmF0YXI6ICcvYXZhdGFycy9hbGljZS5qcGcnIH0sXHJcbiAgeyBuYW1lOiAnQm9iJywgY29udGVudDogJ+eugOWNleaYk+eUqOeahOaOp+WItumdouadv++8jOWunuaXtue9kee7nOaMh+agh+S4gOebruS6hueEtuOAgicsIGF2YXRhcjogJy9hdmF0YXJzL2JvYi5qcGcnIH0sXHJcbl07XHJcblxyXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBUZXN0aW1vbmlhbHMoKSB7XHJcbiAgcmV0dXJuIChcclxuICAgIDxzZWN0aW9uIGNsYXNzTmFtZT1cInB4LTYgcHktc2VjdGlvbiBiZy1iYWNrZ3JvdW5kXCI+XHJcbiAgICAgIDxkaXYgY2xhc3NOYW1lPVwibWF4LXctc2NyZWVuLW1kIG14LWF1dG8gc3BhY2UteS0xMlwiPlxyXG4gICAgICAgIHt0ZXN0aW1vbmlhbHMubWFwKHQgPT4gKFxyXG4gICAgICAgICAgPGRpdiBrZXk9e3QubmFtZX0gY2xhc3NOYW1lPVwiZmxleCBpdGVtcy1jZW50ZXIgZ2FwLTZcIj5cclxuICAgICAgICAgICAgPGltZyBzcmM9e3QuYXZhdGFyfSBhbHQ9e3QubmFtZX0gY2xhc3NOYW1lPVwiaC0xNiB3LTE2IHJvdW5kZWQtZnVsbFwiIC8+XHJcbiAgICAgICAgICAgIDxkaXY+XHJcbiAgICAgICAgICAgICAgPHAgY2xhc3NOYW1lPVwiaXRhbGljXCI+4oCce3QuY29udGVudH3igJ08L3A+XHJcbiAgICAgICAgICAgICAgPHAgY2xhc3NOYW1lPVwibXQtMiBmb250LW1lZGl1bVwiPuKAlCB7dC5uYW1lfTwvcD5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICApKX1cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L3NlY3Rpb24+XHJcbiAgKTtcclxufSJdLCJuYW1lcyI6WyJ0ZXN0aW1vbmlhbHMiLCJuYW1lIiwiY29udGVudCIsImF2YXRhciIsIlRlc3RpbW9uaWFscyIsInNlY3Rpb24iLCJjbGFzc05hbWUiLCJkaXYiLCJtYXAiLCJ0IiwiaW1nIiwic3JjIiwiYWx0IiwicCJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(pages-dir-node)/./components/Testimonials.tsx\n"); - -/***/ }), - -/***/ "(pages-dir-node)/./node_modules/next/dist/build/webpack/loaders/next-route-loader/index.js?kind=PAGES&page=%2F&preferredRegion=&absolutePagePath=.%2Fpages%5Cindex.tsx&absoluteAppPath=private-next-pages%2F_app&absoluteDocumentPath=private-next-pages%2F_document&middlewareConfigBase64=e30%3D!": -/*!******************************************************************************************************************************************************************************************************************************************************************************************!*\ - !*** ./node_modules/next/dist/build/webpack/loaders/next-route-loader/index.js?kind=PAGES&page=%2F&preferredRegion=&absolutePagePath=.%2Fpages%5Cindex.tsx&absoluteAppPath=private-next-pages%2F_app&absoluteDocumentPath=private-next-pages%2F_document&middlewareConfigBase64=e30%3D! ***! - \******************************************************************************************************************************************************************************************************************************************************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ config: () => (/* binding */ config),\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__),\n/* harmony export */ getServerSideProps: () => (/* binding */ getServerSideProps),\n/* harmony export */ getStaticPaths: () => (/* binding */ getStaticPaths),\n/* harmony export */ getStaticProps: () => (/* binding */ getStaticProps),\n/* harmony export */ handler: () => (/* binding */ handler),\n/* harmony export */ reportWebVitals: () => (/* binding */ reportWebVitals),\n/* harmony export */ routeModule: () => (/* binding */ routeModule),\n/* harmony export */ unstable_getServerProps: () => (/* binding */ unstable_getServerProps),\n/* harmony export */ unstable_getServerSideProps: () => (/* binding */ unstable_getServerSideProps),\n/* harmony export */ unstable_getStaticParams: () => (/* binding */ unstable_getStaticParams),\n/* harmony export */ unstable_getStaticPaths: () => (/* binding */ unstable_getStaticPaths),\n/* harmony export */ unstable_getStaticProps: () => (/* binding */ unstable_getStaticProps)\n/* harmony export */ });\n/* harmony import */ var next_dist_server_route_modules_pages_module_compiled__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! next/dist/server/route-modules/pages/module.compiled */ \"(pages-dir-node)/./node_modules/next/dist/server/route-modules/pages/module.compiled.js\");\n/* harmony import */ var next_dist_server_route_modules_pages_module_compiled__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(next_dist_server_route_modules_pages_module_compiled__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var next_dist_server_route_kind__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! next/dist/server/route-kind */ \"(pages-dir-node)/./node_modules/next/dist/server/route-kind.js\");\n/* harmony import */ var next_dist_server_lib_trace_constants__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! next/dist/server/lib/trace/constants */ \"(pages-dir-node)/./node_modules/next/dist/server/lib/trace/constants.js\");\n/* harmony import */ var next_dist_server_lib_trace_constants__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(next_dist_server_lib_trace_constants__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var next_dist_server_lib_trace_tracer__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! next/dist/server/lib/trace/tracer */ \"(pages-dir-node)/./node_modules/next/dist/server/lib/trace/tracer.js\");\n/* harmony import */ var next_dist_server_lib_trace_tracer__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(next_dist_server_lib_trace_tracer__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var next_dist_shared_lib_router_utils_format_url__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! next/dist/shared/lib/router/utils/format-url */ \"next/dist/shared/lib/router/utils/format-url\");\n/* harmony import */ var next_dist_shared_lib_router_utils_format_url__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(next_dist_shared_lib_router_utils_format_url__WEBPACK_IMPORTED_MODULE_4__);\n/* harmony import */ var next_dist_server_request_meta__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! next/dist/server/request-meta */ \"(pages-dir-node)/./node_modules/next/dist/server/request-meta.js\");\n/* harmony import */ var next_dist_server_request_meta__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(next_dist_server_request_meta__WEBPACK_IMPORTED_MODULE_5__);\n/* harmony import */ var next_dist_server_app_render_interop_default__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! next/dist/server/app-render/interop-default */ \"(pages-dir-node)/./node_modules/next/dist/server/app-render/interop-default.js\");\n/* harmony import */ var next_dist_server_instrumentation_utils__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! next/dist/server/instrumentation/utils */ \"(pages-dir-node)/./node_modules/next/dist/server/instrumentation/utils.js\");\n/* harmony import */ var next_dist_shared_lib_page_path_normalize_data_path__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! next/dist/shared/lib/page-path/normalize-data-path */ \"next/dist/shared/lib/page-path/normalize-data-path\");\n/* harmony import */ var next_dist_shared_lib_page_path_normalize_data_path__WEBPACK_IMPORTED_MODULE_8___default = /*#__PURE__*/__webpack_require__.n(next_dist_shared_lib_page_path_normalize_data_path__WEBPACK_IMPORTED_MODULE_8__);\n/* harmony import */ var next_dist_server_response_cache__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! next/dist/server/response-cache */ \"(pages-dir-node)/./node_modules/next/dist/server/response-cache/index.js\");\n/* harmony import */ var next_dist_server_response_cache__WEBPACK_IMPORTED_MODULE_9___default = /*#__PURE__*/__webpack_require__.n(next_dist_server_response_cache__WEBPACK_IMPORTED_MODULE_9__);\n/* harmony import */ var next_dist_build_templates_helpers__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! next/dist/build/templates/helpers */ \"(pages-dir-node)/./node_modules/next/dist/build/templates/helpers.js\");\n/* harmony import */ var private_next_pages_document__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! private-next-pages/_document */ \"(pages-dir-node)/./node_modules/next/dist/pages/_document.js\");\n/* harmony import */ var private_next_pages_document__WEBPACK_IMPORTED_MODULE_11___default = /*#__PURE__*/__webpack_require__.n(private_next_pages_document__WEBPACK_IMPORTED_MODULE_11__);\n/* harmony import */ var private_next_pages_app__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! private-next-pages/_app */ \"(pages-dir-node)/./pages/_app.tsx\");\n/* harmony import */ var _pages_index_tsx__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ./pages\\index.tsx */ \"(pages-dir-node)/./pages/index.tsx\");\n/* harmony import */ var next_dist_server_lib_cache_control__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! next/dist/server/lib/cache-control */ \"(pages-dir-node)/./node_modules/next/dist/server/lib/cache-control.js\");\n/* harmony import */ var next_dist_shared_lib_utils__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! next/dist/shared/lib/utils */ \"next/dist/shared/lib/utils\");\n/* harmony import */ var next_dist_shared_lib_utils__WEBPACK_IMPORTED_MODULE_15___default = /*#__PURE__*/__webpack_require__.n(next_dist_shared_lib_utils__WEBPACK_IMPORTED_MODULE_15__);\n/* harmony import */ var next_dist_lib_redirect_status__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! next/dist/lib/redirect-status */ \"(pages-dir-node)/./node_modules/next/dist/lib/redirect-status.js\");\n/* harmony import */ var next_dist_lib_redirect_status__WEBPACK_IMPORTED_MODULE_16___default = /*#__PURE__*/__webpack_require__.n(next_dist_lib_redirect_status__WEBPACK_IMPORTED_MODULE_16__);\n/* harmony import */ var next_dist_lib_constants__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! next/dist/lib/constants */ \"(pages-dir-node)/./node_modules/next/dist/lib/constants.js\");\n/* harmony import */ var next_dist_lib_constants__WEBPACK_IMPORTED_MODULE_17___default = /*#__PURE__*/__webpack_require__.n(next_dist_lib_constants__WEBPACK_IMPORTED_MODULE_17__);\n/* harmony import */ var next_dist_server_send_payload__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! next/dist/server/send-payload */ \"(pages-dir-node)/./node_modules/next/dist/server/send-payload.js\");\n/* harmony import */ var next_dist_server_send_payload__WEBPACK_IMPORTED_MODULE_18___default = /*#__PURE__*/__webpack_require__.n(next_dist_server_send_payload__WEBPACK_IMPORTED_MODULE_18__);\n/* harmony import */ var next_dist_server_render_result__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(/*! next/dist/server/render-result */ \"(pages-dir-node)/./node_modules/next/dist/server/render-result.js\");\n/* harmony import */ var next_dist_server_response_cache_utils__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(/*! next/dist/server/response-cache/utils */ \"(pages-dir-node)/./node_modules/next/dist/server/response-cache/utils.js\");\n/* harmony import */ var next_dist_server_response_cache_utils__WEBPACK_IMPORTED_MODULE_20___default = /*#__PURE__*/__webpack_require__.n(next_dist_server_response_cache_utils__WEBPACK_IMPORTED_MODULE_20__);\n/* harmony import */ var next_dist_shared_lib_no_fallback_error_external__WEBPACK_IMPORTED_MODULE_21__ = __webpack_require__(/*! next/dist/shared/lib/no-fallback-error.external */ \"next/dist/shared/lib/no-fallback-error.external\");\n/* harmony import */ var next_dist_shared_lib_no_fallback_error_external__WEBPACK_IMPORTED_MODULE_21___default = /*#__PURE__*/__webpack_require__.n(next_dist_shared_lib_no_fallback_error_external__WEBPACK_IMPORTED_MODULE_21__);\n/* harmony import */ var next_dist_client_components_redirect_status_code__WEBPACK_IMPORTED_MODULE_22__ = __webpack_require__(/*! next/dist/client/components/redirect-status-code */ \"(pages-dir-node)/./node_modules/next/dist/client/components/redirect-status-code.js\");\n/* harmony import */ var next_dist_client_components_redirect_status_code__WEBPACK_IMPORTED_MODULE_22___default = /*#__PURE__*/__webpack_require__.n(next_dist_client_components_redirect_status_code__WEBPACK_IMPORTED_MODULE_22__);\n/* harmony import */ var next_dist_shared_lib_router_utils_is_bot__WEBPACK_IMPORTED_MODULE_23__ = __webpack_require__(/*! next/dist/shared/lib/router/utils/is-bot */ \"next/dist/shared/lib/router/utils/is-bot\");\n/* harmony import */ var next_dist_shared_lib_router_utils_is_bot__WEBPACK_IMPORTED_MODULE_23___default = /*#__PURE__*/__webpack_require__.n(next_dist_shared_lib_router_utils_is_bot__WEBPACK_IMPORTED_MODULE_23__);\n/* harmony import */ var next_dist_shared_lib_router_utils_add_path_prefix__WEBPACK_IMPORTED_MODULE_24__ = __webpack_require__(/*! next/dist/shared/lib/router/utils/add-path-prefix */ \"next/dist/shared/lib/router/utils/add-path-prefix\");\n/* harmony import */ var next_dist_shared_lib_router_utils_add_path_prefix__WEBPACK_IMPORTED_MODULE_24___default = /*#__PURE__*/__webpack_require__.n(next_dist_shared_lib_router_utils_add_path_prefix__WEBPACK_IMPORTED_MODULE_24__);\n/* harmony import */ var next_dist_shared_lib_router_utils_remove_trailing_slash__WEBPACK_IMPORTED_MODULE_25__ = __webpack_require__(/*! next/dist/shared/lib/router/utils/remove-trailing-slash */ \"next/dist/shared/lib/router/utils/remove-trailing-slash\");\n/* harmony import */ var next_dist_shared_lib_router_utils_remove_trailing_slash__WEBPACK_IMPORTED_MODULE_25___default = /*#__PURE__*/__webpack_require__.n(next_dist_shared_lib_router_utils_remove_trailing_slash__WEBPACK_IMPORTED_MODULE_25__);\n\n\n\n\n\n\n\n\n\n\n\n// Import the app and document modules.\n\n\n// Import the userland code.\n\n\n\n\n\n\n\n\n\n\n\n\n\n// Re-export the component (should be the default export).\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ((0,next_dist_build_templates_helpers__WEBPACK_IMPORTED_MODULE_10__.hoist)(_pages_index_tsx__WEBPACK_IMPORTED_MODULE_13__, 'default'));\n// Re-export methods.\nconst getStaticProps = (0,next_dist_build_templates_helpers__WEBPACK_IMPORTED_MODULE_10__.hoist)(_pages_index_tsx__WEBPACK_IMPORTED_MODULE_13__, 'getStaticProps');\nconst getStaticPaths = (0,next_dist_build_templates_helpers__WEBPACK_IMPORTED_MODULE_10__.hoist)(_pages_index_tsx__WEBPACK_IMPORTED_MODULE_13__, 'getStaticPaths');\nconst getServerSideProps = (0,next_dist_build_templates_helpers__WEBPACK_IMPORTED_MODULE_10__.hoist)(_pages_index_tsx__WEBPACK_IMPORTED_MODULE_13__, 'getServerSideProps');\nconst config = (0,next_dist_build_templates_helpers__WEBPACK_IMPORTED_MODULE_10__.hoist)(_pages_index_tsx__WEBPACK_IMPORTED_MODULE_13__, 'config');\nconst reportWebVitals = (0,next_dist_build_templates_helpers__WEBPACK_IMPORTED_MODULE_10__.hoist)(_pages_index_tsx__WEBPACK_IMPORTED_MODULE_13__, 'reportWebVitals');\n// Re-export legacy methods.\nconst unstable_getStaticProps = (0,next_dist_build_templates_helpers__WEBPACK_IMPORTED_MODULE_10__.hoist)(_pages_index_tsx__WEBPACK_IMPORTED_MODULE_13__, 'unstable_getStaticProps');\nconst unstable_getStaticPaths = (0,next_dist_build_templates_helpers__WEBPACK_IMPORTED_MODULE_10__.hoist)(_pages_index_tsx__WEBPACK_IMPORTED_MODULE_13__, 'unstable_getStaticPaths');\nconst unstable_getStaticParams = (0,next_dist_build_templates_helpers__WEBPACK_IMPORTED_MODULE_10__.hoist)(_pages_index_tsx__WEBPACK_IMPORTED_MODULE_13__, 'unstable_getStaticParams');\nconst unstable_getServerProps = (0,next_dist_build_templates_helpers__WEBPACK_IMPORTED_MODULE_10__.hoist)(_pages_index_tsx__WEBPACK_IMPORTED_MODULE_13__, 'unstable_getServerProps');\nconst unstable_getServerSideProps = (0,next_dist_build_templates_helpers__WEBPACK_IMPORTED_MODULE_10__.hoist)(_pages_index_tsx__WEBPACK_IMPORTED_MODULE_13__, 'unstable_getServerSideProps');\n// Create and export the route module that will be consumed.\nconst routeModule = new next_dist_server_route_modules_pages_module_compiled__WEBPACK_IMPORTED_MODULE_0__.PagesRouteModule({\n definition: {\n kind: next_dist_server_route_kind__WEBPACK_IMPORTED_MODULE_1__.RouteKind.PAGES,\n page: \"/index\",\n pathname: \"/\",\n // The following aren't used in production.\n bundlePath: '',\n filename: ''\n },\n distDir: \"build\" || 0,\n projectDir: false || '',\n components: {\n // default export might not exist when optimized for data only\n App: private_next_pages_app__WEBPACK_IMPORTED_MODULE_12__[\"default\"],\n Document: (private_next_pages_document__WEBPACK_IMPORTED_MODULE_11___default())\n },\n userland: _pages_index_tsx__WEBPACK_IMPORTED_MODULE_13__\n});\nasync function handler(req, res, ctx) {\n var _serverFilesManifest_config_experimental, _serverFilesManifest_config;\n let srcPage = \"/index\";\n // turbopack doesn't normalize `/index` in the page name\n // so we need to to process dynamic routes properly\n // TODO: fix turbopack providing differing value from webpack\n if (false) {} else if (srcPage === '/index') {\n // we always normalize /index specifically\n srcPage = '/';\n }\n const multiZoneDraftMode = \"false\";\n const prepareResult = await routeModule.prepare(req, res, {\n srcPage,\n multiZoneDraftMode\n });\n if (!prepareResult) {\n res.statusCode = 400;\n res.end('Bad Request');\n ctx.waitUntil == null ? void 0 : ctx.waitUntil.call(ctx, Promise.resolve());\n return;\n }\n const { buildId, query, params, parsedUrl, originalQuery, originalPathname, buildManifest, nextFontManifest, serverFilesManifest, reactLoadableManifest, prerenderManifest, isDraftMode, isOnDemandRevalidate, revalidateOnlyGenerated, locale, locales, defaultLocale, routerServerContext, nextConfig, resolvedPathname } = prepareResult;\n const isExperimentalCompile = serverFilesManifest == null ? void 0 : (_serverFilesManifest_config = serverFilesManifest.config) == null ? void 0 : (_serverFilesManifest_config_experimental = _serverFilesManifest_config.experimental) == null ? void 0 : _serverFilesManifest_config_experimental.isExperimentalCompile;\n const hasServerProps = Boolean(getServerSideProps);\n const hasStaticProps = Boolean(getStaticProps);\n const hasStaticPaths = Boolean(getStaticPaths);\n const hasGetInitialProps = Boolean((_pages_index_tsx__WEBPACK_IMPORTED_MODULE_13__[\"default\"] || _pages_index_tsx__WEBPACK_IMPORTED_MODULE_13__).getInitialProps);\n const isAmp = query.amp && config.amp;\n let cacheKey = null;\n let isIsrFallback = false;\n let isNextDataRequest = prepareResult.isNextDataRequest && (hasStaticProps || hasServerProps);\n const is404Page = srcPage === '/404';\n const is500Page = srcPage === '/500';\n const isErrorPage = srcPage === '/_error';\n if (!routeModule.isDev && !isDraftMode && hasStaticProps) {\n cacheKey = `${locale ? `/${locale}` : ''}${(srcPage === '/' || resolvedPathname === '/') && locale ? '' : resolvedPathname}${isAmp ? '.amp' : ''}`;\n if (is404Page || is500Page || isErrorPage) {\n cacheKey = `${locale ? `/${locale}` : ''}${srcPage}${isAmp ? '.amp' : ''}`;\n }\n // ensure /index and / is normalized to one key\n cacheKey = cacheKey === '/index' ? '/' : cacheKey;\n }\n if (hasStaticPaths && !isDraftMode) {\n const decodedPathname = (0,next_dist_shared_lib_router_utils_remove_trailing_slash__WEBPACK_IMPORTED_MODULE_25__.removeTrailingSlash)(locale ? (0,next_dist_shared_lib_router_utils_add_path_prefix__WEBPACK_IMPORTED_MODULE_24__.addPathPrefix)(resolvedPathname, `/${locale}`) : resolvedPathname);\n const isPrerendered = Boolean(prerenderManifest.routes[decodedPathname]) || prerenderManifest.notFoundRoutes.includes(decodedPathname);\n const prerenderInfo = prerenderManifest.dynamicRoutes[srcPage];\n if (prerenderInfo) {\n if (prerenderInfo.fallback === false && !isPrerendered) {\n throw new next_dist_shared_lib_no_fallback_error_external__WEBPACK_IMPORTED_MODULE_21__.NoFallbackError();\n }\n if (typeof prerenderInfo.fallback === 'string' && !isPrerendered && !isNextDataRequest) {\n isIsrFallback = true;\n }\n }\n }\n // When serving a bot request, we want to serve a blocking render and not\n // the prerendered page. This ensures that the correct content is served\n // to the bot in the head.\n if (isIsrFallback && (0,next_dist_shared_lib_router_utils_is_bot__WEBPACK_IMPORTED_MODULE_23__.isBot)(req.headers['user-agent'] || '') || (0,next_dist_server_request_meta__WEBPACK_IMPORTED_MODULE_5__.getRequestMeta)(req, 'minimalMode')) {\n isIsrFallback = false;\n }\n const tracer = (0,next_dist_server_lib_trace_tracer__WEBPACK_IMPORTED_MODULE_3__.getTracer)();\n const activeSpan = tracer.getActiveScopeSpan();\n try {\n const method = req.method || 'GET';\n const resolvedUrl = (0,next_dist_shared_lib_router_utils_format_url__WEBPACK_IMPORTED_MODULE_4__.formatUrl)({\n pathname: nextConfig.trailingSlash ? parsedUrl.pathname : (0,next_dist_shared_lib_router_utils_remove_trailing_slash__WEBPACK_IMPORTED_MODULE_25__.removeTrailingSlash)(parsedUrl.pathname || '/'),\n // make sure to only add query values from original URL\n query: hasStaticProps ? {} : originalQuery\n });\n const publicRuntimeConfig = (routerServerContext == null ? void 0 : routerServerContext.publicRuntimeConfig) || nextConfig.publicRuntimeConfig;\n const handleResponse = async (span)=>{\n const responseGenerator = async ({ previousCacheEntry })=>{\n var _previousCacheEntry_value;\n const doRender = async ()=>{\n try {\n var _nextConfig_i18n, _nextConfig_experimental_amp, _nextConfig_experimental_amp1;\n return await routeModule.render(req, res, {\n query: hasStaticProps && !isExperimentalCompile ? {\n ...params,\n ...isAmp ? {\n amp: query.amp\n } : {}\n } : {\n ...query,\n ...params\n },\n params,\n page: srcPage,\n renderContext: {\n isDraftMode,\n isFallback: isIsrFallback,\n developmentNotFoundSourcePage: (0,next_dist_server_request_meta__WEBPACK_IMPORTED_MODULE_5__.getRequestMeta)(req, 'developmentNotFoundSourcePage')\n },\n sharedContext: {\n buildId,\n customServer: Boolean(routerServerContext == null ? void 0 : routerServerContext.isCustomServer) || undefined,\n deploymentId: false\n },\n renderOpts: {\n params,\n routeModule,\n page: srcPage,\n pageConfig: config || {},\n Component: (0,next_dist_server_app_render_interop_default__WEBPACK_IMPORTED_MODULE_6__.interopDefault)(_pages_index_tsx__WEBPACK_IMPORTED_MODULE_13__),\n ComponentMod: _pages_index_tsx__WEBPACK_IMPORTED_MODULE_13__,\n getStaticProps,\n getStaticPaths,\n getServerSideProps,\n supportsDynamicResponse: !hasStaticProps,\n buildManifest,\n nextFontManifest,\n reactLoadableManifest,\n assetPrefix: nextConfig.assetPrefix,\n strictNextHead: Boolean(nextConfig.experimental.strictNextHead),\n previewProps: prerenderManifest.preview,\n images: nextConfig.images,\n nextConfigOutput: nextConfig.output,\n optimizeCss: Boolean(nextConfig.experimental.optimizeCss),\n nextScriptWorkers: Boolean(nextConfig.experimental.nextScriptWorkers),\n domainLocales: (_nextConfig_i18n = nextConfig.i18n) == null ? void 0 : _nextConfig_i18n.domains,\n crossOrigin: nextConfig.crossOrigin,\n multiZoneDraftMode,\n basePath: nextConfig.basePath,\n canonicalBase: nextConfig.amp.canonicalBase || '',\n ampOptimizerConfig: (_nextConfig_experimental_amp = nextConfig.experimental.amp) == null ? void 0 : _nextConfig_experimental_amp.optimizer,\n disableOptimizedLoading: nextConfig.experimental.disableOptimizedLoading,\n largePageDataBytes: nextConfig.experimental.largePageDataBytes,\n // Only the `publicRuntimeConfig` key is exposed to the client side\n // It'll be rendered as part of __NEXT_DATA__ on the client side\n runtimeConfig: Object.keys(publicRuntimeConfig).length > 0 ? publicRuntimeConfig : undefined,\n isExperimentalCompile,\n experimental: {\n clientTraceMetadata: nextConfig.experimental.clientTraceMetadata || []\n },\n locale,\n locales,\n defaultLocale,\n setIsrStatus: routerServerContext == null ? void 0 : routerServerContext.setIsrStatus,\n isNextDataRequest: isNextDataRequest && (hasServerProps || hasStaticProps),\n resolvedUrl,\n // For getServerSideProps and getInitialProps we need to ensure we use the original URL\n // and not the resolved URL to prevent a hydration mismatch on\n // asPath\n resolvedAsPath: hasServerProps || hasGetInitialProps ? (0,next_dist_shared_lib_router_utils_format_url__WEBPACK_IMPORTED_MODULE_4__.formatUrl)({\n // we use the original URL pathname less the _next/data prefix if\n // present\n pathname: isNextDataRequest ? (0,next_dist_shared_lib_page_path_normalize_data_path__WEBPACK_IMPORTED_MODULE_8__.normalizeDataPath)(originalPathname) : originalPathname,\n query: originalQuery\n }) : resolvedUrl,\n isOnDemandRevalidate,\n ErrorDebug: (0,next_dist_server_request_meta__WEBPACK_IMPORTED_MODULE_5__.getRequestMeta)(req, 'PagesErrorDebug'),\n err: (0,next_dist_server_request_meta__WEBPACK_IMPORTED_MODULE_5__.getRequestMeta)(req, 'invokeError'),\n dev: routeModule.isDev,\n // needed for experimental.optimizeCss feature\n distDir: `${routeModule.projectDir}/${routeModule.distDir}`,\n ampSkipValidation: (_nextConfig_experimental_amp1 = nextConfig.experimental.amp) == null ? void 0 : _nextConfig_experimental_amp1.skipValidation,\n ampValidator: (0,next_dist_server_request_meta__WEBPACK_IMPORTED_MODULE_5__.getRequestMeta)(req, 'ampValidator')\n }\n }).then((renderResult)=>{\n const { metadata } = renderResult;\n let cacheControl = metadata.cacheControl;\n if ('isNotFound' in metadata && metadata.isNotFound) {\n return {\n value: null,\n cacheControl\n };\n }\n // Handle `isRedirect`.\n if (metadata.isRedirect) {\n return {\n value: {\n kind: next_dist_server_response_cache__WEBPACK_IMPORTED_MODULE_9__.CachedRouteKind.REDIRECT,\n props: metadata.pageData ?? metadata.flightData\n },\n cacheControl\n };\n }\n return {\n value: {\n kind: next_dist_server_response_cache__WEBPACK_IMPORTED_MODULE_9__.CachedRouteKind.PAGES,\n html: renderResult,\n pageData: renderResult.metadata.pageData,\n headers: renderResult.metadata.headers,\n status: renderResult.metadata.statusCode\n },\n cacheControl\n };\n }).finally(()=>{\n if (!span) return;\n span.setAttributes({\n 'http.status_code': res.statusCode,\n 'next.rsc': false\n });\n const rootSpanAttributes = tracer.getRootSpanAttributes();\n // We were unable to get attributes, probably OTEL is not enabled\n if (!rootSpanAttributes) {\n return;\n }\n if (rootSpanAttributes.get('next.span_type') !== next_dist_server_lib_trace_constants__WEBPACK_IMPORTED_MODULE_2__.BaseServerSpan.handleRequest) {\n console.warn(`Unexpected root span type '${rootSpanAttributes.get('next.span_type')}'. Please report this Next.js issue https://github.com/vercel/next.js`);\n return;\n }\n const route = rootSpanAttributes.get('next.route');\n if (route) {\n const name = `${method} ${route}`;\n span.setAttributes({\n 'next.route': route,\n 'http.route': route,\n 'next.span_name': name\n });\n span.updateName(name);\n } else {\n span.updateName(`${method} ${req.url}`);\n }\n });\n } catch (err) {\n // if this is a background revalidate we need to report\n // the request error here as it won't be bubbled\n if (previousCacheEntry == null ? void 0 : previousCacheEntry.isStale) {\n await routeModule.onRequestError(req, err, {\n routerKind: 'Pages Router',\n routePath: srcPage,\n routeType: 'render',\n revalidateReason: (0,next_dist_server_instrumentation_utils__WEBPACK_IMPORTED_MODULE_7__.getRevalidateReason)({\n isRevalidate: hasStaticProps,\n isOnDemandRevalidate\n })\n }, routerServerContext);\n }\n throw err;\n }\n };\n // if we've already generated this page we no longer\n // serve the fallback\n if (previousCacheEntry) {\n isIsrFallback = false;\n }\n if (isIsrFallback) {\n const fallbackResponse = await routeModule.getResponseCache(req).get(routeModule.isDev ? null : locale ? `/${locale}${srcPage}` : srcPage, async ({ previousCacheEntry: previousFallbackCacheEntry = null })=>{\n if (!routeModule.isDev) {\n return (0,next_dist_server_response_cache_utils__WEBPACK_IMPORTED_MODULE_20__.toResponseCacheEntry)(previousFallbackCacheEntry);\n }\n return doRender();\n }, {\n routeKind: next_dist_server_route_kind__WEBPACK_IMPORTED_MODULE_1__.RouteKind.PAGES,\n isFallback: true,\n isRoutePPREnabled: false,\n isOnDemandRevalidate: false,\n incrementalCache: await routeModule.getIncrementalCache(req, nextConfig, prerenderManifest),\n waitUntil: ctx.waitUntil\n });\n if (fallbackResponse) {\n // Remove the cache control from the response to prevent it from being\n // used in the surrounding cache.\n delete fallbackResponse.cacheControl;\n fallbackResponse.isMiss = true;\n return fallbackResponse;\n }\n }\n if (!(0,next_dist_server_request_meta__WEBPACK_IMPORTED_MODULE_5__.getRequestMeta)(req, 'minimalMode') && isOnDemandRevalidate && revalidateOnlyGenerated && !previousCacheEntry) {\n res.statusCode = 404;\n // on-demand revalidate always sets this header\n res.setHeader('x-nextjs-cache', 'REVALIDATED');\n res.end('This page could not be found');\n return null;\n }\n if (isIsrFallback && (previousCacheEntry == null ? void 0 : (_previousCacheEntry_value = previousCacheEntry.value) == null ? void 0 : _previousCacheEntry_value.kind) === next_dist_server_response_cache__WEBPACK_IMPORTED_MODULE_9__.CachedRouteKind.PAGES) {\n return {\n value: {\n kind: next_dist_server_response_cache__WEBPACK_IMPORTED_MODULE_9__.CachedRouteKind.PAGES,\n html: new next_dist_server_render_result__WEBPACK_IMPORTED_MODULE_19__[\"default\"](Buffer.from(previousCacheEntry.value.html), {\n contentType: 'text/html;utf-8',\n metadata: {\n statusCode: previousCacheEntry.value.status,\n headers: previousCacheEntry.value.headers\n }\n }),\n pageData: {},\n status: previousCacheEntry.value.status,\n headers: previousCacheEntry.value.headers\n },\n cacheControl: {\n revalidate: 0,\n expire: undefined\n }\n };\n }\n return doRender();\n };\n const result = await routeModule.handleResponse({\n cacheKey,\n req,\n nextConfig,\n routeKind: next_dist_server_route_kind__WEBPACK_IMPORTED_MODULE_1__.RouteKind.PAGES,\n isOnDemandRevalidate,\n revalidateOnlyGenerated,\n waitUntil: ctx.waitUntil,\n responseGenerator: responseGenerator,\n prerenderManifest\n });\n // if we got a cache hit this wasn't an ISR fallback\n // but it wasn't generated during build so isn't in the\n // prerender-manifest\n if (isIsrFallback && !(result == null ? void 0 : result.isMiss)) {\n isIsrFallback = false;\n }\n // response is finished is no cache entry\n if (!result) {\n return;\n }\n if (hasStaticProps && !(0,next_dist_server_request_meta__WEBPACK_IMPORTED_MODULE_5__.getRequestMeta)(req, 'minimalMode')) {\n res.setHeader('x-nextjs-cache', isOnDemandRevalidate ? 'REVALIDATED' : result.isMiss ? 'MISS' : result.isStale ? 'STALE' : 'HIT');\n }\n let cacheControl;\n if (!hasStaticProps || isIsrFallback) {\n if (!res.getHeader('Cache-Control')) {\n cacheControl = {\n revalidate: 0,\n expire: undefined\n };\n }\n } else if (is404Page) {\n const notFoundRevalidate = (0,next_dist_server_request_meta__WEBPACK_IMPORTED_MODULE_5__.getRequestMeta)(req, 'notFoundRevalidate');\n cacheControl = {\n revalidate: typeof notFoundRevalidate === 'undefined' ? 0 : notFoundRevalidate,\n expire: undefined\n };\n } else if (is500Page) {\n cacheControl = {\n revalidate: 0,\n expire: undefined\n };\n } else if (result.cacheControl) {\n // If the cache entry has a cache control with a revalidate value that's\n // a number, use it.\n if (typeof result.cacheControl.revalidate === 'number') {\n var _result_cacheControl;\n if (result.cacheControl.revalidate < 1) {\n throw Object.defineProperty(new Error(`Invalid revalidate configuration provided: ${result.cacheControl.revalidate} < 1`), \"__NEXT_ERROR_CODE\", {\n value: \"E22\",\n enumerable: false,\n configurable: true\n });\n }\n cacheControl = {\n revalidate: result.cacheControl.revalidate,\n expire: ((_result_cacheControl = result.cacheControl) == null ? void 0 : _result_cacheControl.expire) ?? nextConfig.expireTime\n };\n } else {\n // revalidate: false\n cacheControl = {\n revalidate: next_dist_lib_constants__WEBPACK_IMPORTED_MODULE_17__.CACHE_ONE_YEAR,\n expire: undefined\n };\n }\n }\n // If cache control is already set on the response we don't\n // override it to allow users to customize it via next.config\n if (cacheControl && !res.getHeader('Cache-Control')) {\n res.setHeader('Cache-Control', (0,next_dist_server_lib_cache_control__WEBPACK_IMPORTED_MODULE_14__.getCacheControlHeader)(cacheControl));\n }\n // notFound: true case\n if (!result.value) {\n var _result_cacheControl1;\n // add revalidate metadata before rendering 404 page\n // so that we can use this as source of truth for the\n // cache-control header instead of what the 404 page returns\n // for the revalidate value\n (0,next_dist_server_request_meta__WEBPACK_IMPORTED_MODULE_5__.addRequestMeta)(req, 'notFoundRevalidate', (_result_cacheControl1 = result.cacheControl) == null ? void 0 : _result_cacheControl1.revalidate);\n res.statusCode = 404;\n if (isNextDataRequest) {\n res.end('{\"notFound\":true}');\n return;\n }\n // TODO: should route-module itself handle rendering the 404\n if (routerServerContext == null ? void 0 : routerServerContext.render404) {\n await routerServerContext.render404(req, res, parsedUrl, false);\n } else {\n res.end('This page could not be found');\n }\n return;\n }\n if (result.value.kind === next_dist_server_response_cache__WEBPACK_IMPORTED_MODULE_9__.CachedRouteKind.REDIRECT) {\n if (isNextDataRequest) {\n res.setHeader('content-type', 'application/json');\n res.end(JSON.stringify(result.value.props));\n return;\n } else {\n const handleRedirect = (pageData)=>{\n const redirect = {\n destination: pageData.pageProps.__N_REDIRECT,\n statusCode: pageData.pageProps.__N_REDIRECT_STATUS,\n basePath: pageData.pageProps.__N_REDIRECT_BASE_PATH\n };\n const statusCode = (0,next_dist_lib_redirect_status__WEBPACK_IMPORTED_MODULE_16__.getRedirectStatus)(redirect);\n const { basePath } = nextConfig;\n if (basePath && redirect.basePath !== false && redirect.destination.startsWith('/')) {\n redirect.destination = `${basePath}${redirect.destination}`;\n }\n if (redirect.destination.startsWith('/')) {\n redirect.destination = (0,next_dist_shared_lib_utils__WEBPACK_IMPORTED_MODULE_15__.normalizeRepeatedSlashes)(redirect.destination);\n }\n res.statusCode = statusCode;\n res.setHeader('Location', redirect.destination);\n if (statusCode === next_dist_client_components_redirect_status_code__WEBPACK_IMPORTED_MODULE_22__.RedirectStatusCode.PermanentRedirect) {\n res.setHeader('Refresh', `0;url=${redirect.destination}`);\n }\n res.end(redirect.destination);\n };\n await handleRedirect(result.value.props);\n return null;\n }\n }\n if (result.value.kind !== next_dist_server_response_cache__WEBPACK_IMPORTED_MODULE_9__.CachedRouteKind.PAGES) {\n throw Object.defineProperty(new Error(`Invariant: received non-pages cache entry in pages handler`), \"__NEXT_ERROR_CODE\", {\n value: \"E695\",\n enumerable: false,\n configurable: true\n });\n }\n // In dev, we should not cache pages for any reason.\n if (routeModule.isDev) {\n res.setHeader('Cache-Control', 'no-store, must-revalidate');\n }\n // Draft mode should never be cached\n if (isDraftMode) {\n res.setHeader('Cache-Control', 'private, no-cache, no-store, max-age=0, must-revalidate');\n }\n // when invoking _error before pages/500 we don't actually\n // send the _error response\n if ((0,next_dist_server_request_meta__WEBPACK_IMPORTED_MODULE_5__.getRequestMeta)(req, 'customErrorRender') || isErrorPage && (0,next_dist_server_request_meta__WEBPACK_IMPORTED_MODULE_5__.getRequestMeta)(req, 'minimalMode') && res.statusCode === 500) {\n return null;\n }\n await (0,next_dist_server_send_payload__WEBPACK_IMPORTED_MODULE_18__.sendRenderResult)({\n req,\n res,\n // If we are rendering the error page it's not a data request\n // anymore\n result: isNextDataRequest && !isErrorPage && !is500Page ? new next_dist_server_render_result__WEBPACK_IMPORTED_MODULE_19__[\"default\"](Buffer.from(JSON.stringify(result.value.pageData)), {\n contentType: 'application/json',\n metadata: result.value.html.metadata\n }) : result.value.html,\n generateEtags: nextConfig.generateEtags,\n poweredByHeader: nextConfig.poweredByHeader,\n cacheControl: routeModule.isDev ? undefined : cacheControl,\n type: isNextDataRequest ? 'json' : 'html'\n });\n };\n // TODO: activeSpan code path is for when wrapped by\n // next-server can be removed when this is no longer used\n if (activeSpan) {\n await handleResponse();\n } else {\n await tracer.withPropagatedContext(req.headers, ()=>tracer.trace(next_dist_server_lib_trace_constants__WEBPACK_IMPORTED_MODULE_2__.BaseServerSpan.handleRequest, {\n spanName: `${method} ${req.url}`,\n kind: next_dist_server_lib_trace_tracer__WEBPACK_IMPORTED_MODULE_3__.SpanKind.SERVER,\n attributes: {\n 'http.method': method,\n 'http.target': req.url\n }\n }, handleResponse));\n }\n } catch (err) {\n await routeModule.onRequestError(req, err, {\n routerKind: 'Pages Router',\n routePath: srcPage,\n routeType: 'render',\n revalidateReason: (0,next_dist_server_instrumentation_utils__WEBPACK_IMPORTED_MODULE_7__.getRevalidateReason)({\n isRevalidate: hasStaticProps,\n isOnDemandRevalidate\n })\n }, routerServerContext);\n // rethrow so that we can handle serving error page\n throw err;\n }\n}\n\n//# sourceMappingURL=pages.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1ub2RlKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvYnVpbGQvd2VicGFjay9sb2FkZXJzL25leHQtcm91dGUtbG9hZGVyL2luZGV4LmpzP2tpbmQ9UEFHRVMmcGFnZT0lMkYmcHJlZmVycmVkUmVnaW9uPSZhYnNvbHV0ZVBhZ2VQYXRoPS4lMkZwYWdlcyU1Q2luZGV4LnRzeCZhYnNvbHV0ZUFwcFBhdGg9cHJpdmF0ZS1uZXh0LXBhZ2VzJTJGX2FwcCZhYnNvbHV0ZURvY3VtZW50UGF0aD1wcml2YXRlLW5leHQtcGFnZXMlMkZfZG9jdW1lbnQmbWlkZGxld2FyZUNvbmZpZ0Jhc2U2ND1lMzAlM0QhIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUF3RjtBQUNoQztBQUNjO0FBQ0U7QUFDQztBQUNNO0FBQ0Y7QUFDQTtBQUNVO0FBQ3JCO0FBQ1I7QUFDMUQ7QUFDeUQ7QUFDVjtBQUMvQztBQUMrQztBQUM0QjtBQUNMO0FBQ0o7QUFDVDtBQUNRO0FBQ1A7QUFDbUI7QUFDSztBQUNJO0FBQ3JCO0FBQ2lCO0FBQ1k7QUFDOUY7QUFDQSxpRUFBZSx5RUFBSyxDQUFDLDhDQUFRLFlBQVksRUFBQztBQUMxQztBQUNPLHVCQUF1Qix5RUFBSyxDQUFDLDhDQUFRO0FBQ3JDLHVCQUF1Qix5RUFBSyxDQUFDLDhDQUFRO0FBQ3JDLDJCQUEyQix5RUFBSyxDQUFDLDhDQUFRO0FBQ3pDLGVBQWUseUVBQUssQ0FBQyw4Q0FBUTtBQUM3Qix3QkFBd0IseUVBQUssQ0FBQyw4Q0FBUTtBQUM3QztBQUNPLGdDQUFnQyx5RUFBSyxDQUFDLDhDQUFRO0FBQzlDLGdDQUFnQyx5RUFBSyxDQUFDLDhDQUFRO0FBQzlDLGlDQUFpQyx5RUFBSyxDQUFDLDhDQUFRO0FBQy9DLGdDQUFnQyx5RUFBSyxDQUFDLDhDQUFRO0FBQzlDLG9DQUFvQyx5RUFBSyxDQUFDLDhDQUFRO0FBQ3pEO0FBQ08s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O0FBQ0EsZ0JBQWdCLDZFQUFjLDZDQUE2Qyw2RUFBYztBQUN6RjtBQUNBO0FBQ0Esa0JBQWtCLGdGQUFnQjtBQUNsQztBQUNBO0FBQ0E7QUFDQTtBQUNBLDhFQUE4RSx1RUFBWTtBQUMxRjtBQUNBO0FBQ0EsaUJBQWlCO0FBQ2pCO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsYUFBYTtBQUNiO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxVQUFVO0FBQ1YsNkVBQTZFLGdGQUFjO0FBQzNGLGlDQUFpQyxRQUFRLEVBQUUsUUFBUTtBQUNuRCwwQkFBMEIsdUVBQVE7QUFDbEM7QUFDQTtBQUNBO0FBQ0E7QUFDQSxpQkFBaUI7QUFDakI7QUFDQSxNQUFNO0FBQ047QUFDQTtBQUNBO0FBQ0E7QUFDQSw4QkFBOEIsMkZBQW1CO0FBQ2pEO0FBQ0E7QUFDQSxhQUFhO0FBQ2IsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBOztBQUVBIiwic291cmNlcyI6WyIiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUGFnZXNSb3V0ZU1vZHVsZSB9IGZyb20gXCJuZXh0L2Rpc3Qvc2VydmVyL3JvdXRlLW1vZHVsZXMvcGFnZXMvbW9kdWxlLmNvbXBpbGVkXCI7XG5pbXBvcnQgeyBSb3V0ZUtpbmQgfSBmcm9tIFwibmV4dC9kaXN0L3NlcnZlci9yb3V0ZS1raW5kXCI7XG5pbXBvcnQgeyBCYXNlU2VydmVyU3BhbiB9IGZyb20gXCJuZXh0L2Rpc3Qvc2VydmVyL2xpYi90cmFjZS9jb25zdGFudHNcIjtcbmltcG9ydCB7IGdldFRyYWNlciwgU3BhbktpbmQgfSBmcm9tIFwibmV4dC9kaXN0L3NlcnZlci9saWIvdHJhY2UvdHJhY2VyXCI7XG5pbXBvcnQgeyBmb3JtYXRVcmwgfSBmcm9tIFwibmV4dC9kaXN0L3NoYXJlZC9saWIvcm91dGVyL3V0aWxzL2Zvcm1hdC11cmxcIjtcbmltcG9ydCB7IGFkZFJlcXVlc3RNZXRhLCBnZXRSZXF1ZXN0TWV0YSB9IGZyb20gXCJuZXh0L2Rpc3Qvc2VydmVyL3JlcXVlc3QtbWV0YVwiO1xuaW1wb3J0IHsgaW50ZXJvcERlZmF1bHQgfSBmcm9tIFwibmV4dC9kaXN0L3NlcnZlci9hcHAtcmVuZGVyL2ludGVyb3AtZGVmYXVsdFwiO1xuaW1wb3J0IHsgZ2V0UmV2YWxpZGF0ZVJlYXNvbiB9IGZyb20gXCJuZXh0L2Rpc3Qvc2VydmVyL2luc3RydW1lbnRhdGlvbi91dGlsc1wiO1xuaW1wb3J0IHsgbm9ybWFsaXplRGF0YVBhdGggfSBmcm9tIFwibmV4dC9kaXN0L3NoYXJlZC9saWIvcGFnZS1wYXRoL25vcm1hbGl6ZS1kYXRhLXBhdGhcIjtcbmltcG9ydCB7IENhY2hlZFJvdXRlS2luZCB9IGZyb20gXCJuZXh0L2Rpc3Qvc2VydmVyL3Jlc3BvbnNlLWNhY2hlXCI7XG5pbXBvcnQgeyBob2lzdCB9IGZyb20gXCJuZXh0L2Rpc3QvYnVpbGQvdGVtcGxhdGVzL2hlbHBlcnNcIjtcbi8vIEltcG9ydCB0aGUgYXBwIGFuZCBkb2N1bWVudCBtb2R1bGVzLlxuaW1wb3J0ICogYXMgZG9jdW1lbnQgZnJvbSBcInByaXZhdGUtbmV4dC1wYWdlcy9fZG9jdW1lbnRcIjtcbmltcG9ydCAqIGFzIGFwcCBmcm9tIFwicHJpdmF0ZS1uZXh0LXBhZ2VzL19hcHBcIjtcbi8vIEltcG9ydCB0aGUgdXNlcmxhbmQgY29kZS5cbmltcG9ydCAqIGFzIHVzZXJsYW5kIGZyb20gXCIuL3BhZ2VzXFxcXGluZGV4LnRzeFwiO1xuaW1wb3J0IHsgZ2V0Q2FjaGVDb250cm9sSGVhZGVyIH0gZnJvbSBcIm5leHQvZGlzdC9zZXJ2ZXIvbGliL2NhY2hlLWNvbnRyb2xcIjtcbmltcG9ydCB7IG5vcm1hbGl6ZVJlcGVhdGVkU2xhc2hlcyB9IGZyb20gXCJuZXh0L2Rpc3Qvc2hhcmVkL2xpYi91dGlsc1wiO1xuaW1wb3J0IHsgZ2V0UmVkaXJlY3RTdGF0dXMgfSBmcm9tIFwibmV4dC9kaXN0L2xpYi9yZWRpcmVjdC1zdGF0dXNcIjtcbmltcG9ydCB7IENBQ0hFX09ORV9ZRUFSIH0gZnJvbSBcIm5leHQvZGlzdC9saWIvY29uc3RhbnRzXCI7XG5pbXBvcnQgeyBzZW5kUmVuZGVyUmVzdWx0IH0gZnJvbSBcIm5leHQvZGlzdC9zZXJ2ZXIvc2VuZC1wYXlsb2FkXCI7XG5pbXBvcnQgUmVuZGVyUmVzdWx0IGZyb20gXCJuZXh0L2Rpc3Qvc2VydmVyL3JlbmRlci1yZXN1bHRcIjtcbmltcG9ydCB7IHRvUmVzcG9uc2VDYWNoZUVudHJ5IH0gZnJvbSBcIm5leHQvZGlzdC9zZXJ2ZXIvcmVzcG9uc2UtY2FjaGUvdXRpbHNcIjtcbmltcG9ydCB7IE5vRmFsbGJhY2tFcnJvciB9IGZyb20gXCJuZXh0L2Rpc3Qvc2hhcmVkL2xpYi9uby1mYWxsYmFjay1lcnJvci5leHRlcm5hbFwiO1xuaW1wb3J0IHsgUmVkaXJlY3RTdGF0dXNDb2RlIH0gZnJvbSBcIm5leHQvZGlzdC9jbGllbnQvY29tcG9uZW50cy9yZWRpcmVjdC1zdGF0dXMtY29kZVwiO1xuaW1wb3J0IHsgaXNCb3QgfSBmcm9tIFwibmV4dC9kaXN0L3NoYXJlZC9saWIvcm91dGVyL3V0aWxzL2lzLWJvdFwiO1xuaW1wb3J0IHsgYWRkUGF0aFByZWZpeCB9IGZyb20gXCJuZXh0L2Rpc3Qvc2hhcmVkL2xpYi9yb3V0ZXIvdXRpbHMvYWRkLXBhdGgtcHJlZml4XCI7XG5pbXBvcnQgeyByZW1vdmVUcmFpbGluZ1NsYXNoIH0gZnJvbSBcIm5leHQvZGlzdC9zaGFyZWQvbGliL3JvdXRlci91dGlscy9yZW1vdmUtdHJhaWxpbmctc2xhc2hcIjtcbi8vIFJlLWV4cG9ydCB0aGUgY29tcG9uZW50IChzaG91bGQgYmUgdGhlIGRlZmF1bHQgZXhwb3J0KS5cbmV4cG9ydCBkZWZhdWx0IGhvaXN0KHVzZXJsYW5kLCAnZGVmYXVsdCcpO1xuLy8gUmUtZXhwb3J0IG1ldGhvZHMuXG5leHBvcnQgY29uc3QgZ2V0U3RhdGljUHJvcHMgPSBob2lzdCh1c2VybGFuZCwgJ2dldFN0YXRpY1Byb3BzJyk7XG5leHBvcnQgY29uc3QgZ2V0U3RhdGljUGF0aHMgPSBob2lzdCh1c2VybGFuZCwgJ2dldFN0YXRpY1BhdGhzJyk7XG5leHBvcnQgY29uc3QgZ2V0U2VydmVyU2lkZVByb3BzID0gaG9pc3QodXNlcmxhbmQsICdnZXRTZXJ2ZXJTaWRlUHJvcHMnKTtcbmV4cG9ydCBjb25zdCBjb25maWcgPSBob2lzdCh1c2VybGFuZCwgJ2NvbmZpZycpO1xuZXhwb3J0IGNvbnN0IHJlcG9ydFdlYlZpdGFscyA9IGhvaXN0KHVzZXJsYW5kLCAncmVwb3J0V2ViVml0YWxzJyk7XG4vLyBSZS1leHBvcnQgbGVnYWN5IG1ldGhvZHMuXG5leHBvcnQgY29uc3QgdW5zdGFibGVfZ2V0U3RhdGljUHJvcHMgPSBob2lzdCh1c2VybGFuZCwgJ3Vuc3RhYmxlX2dldFN0YXRpY1Byb3BzJyk7XG5leHBvcnQgY29uc3QgdW5zdGFibGVfZ2V0U3RhdGljUGF0aHMgPSBob2lzdCh1c2VybGFuZCwgJ3Vuc3RhYmxlX2dldFN0YXRpY1BhdGhzJyk7XG5leHBvcnQgY29uc3QgdW5zdGFibGVfZ2V0U3RhdGljUGFyYW1zID0gaG9pc3QodXNlcmxhbmQsICd1bnN0YWJsZV9nZXRTdGF0aWNQYXJhbXMnKTtcbmV4cG9ydCBjb25zdCB1bnN0YWJsZV9nZXRTZXJ2ZXJQcm9wcyA9IGhvaXN0KHVzZXJsYW5kLCAndW5zdGFibGVfZ2V0U2VydmVyUHJvcHMnKTtcbmV4cG9ydCBjb25zdCB1bnN0YWJsZV9nZXRTZXJ2ZXJTaWRlUHJvcHMgPSBob2lzdCh1c2VybGFuZCwgJ3Vuc3RhYmxlX2dldFNlcnZlclNpZGVQcm9wcycpO1xuLy8gQ3JlYXRlIGFuZCBleHBvcnQgdGhlIHJvdXRlIG1vZHVsZSB0aGF0IHdpbGwgYmUgY29uc3VtZWQuXG5leHBvcnQgY29uc3Qgcm91dGVNb2R1bGUgPSBuZXcgUGFnZXNSb3V0ZU1vZHVsZSh7XG4gICAgZGVmaW5pdGlvbjoge1xuICAgICAgICBraW5kOiBSb3V0ZUtpbmQuUEFHRVMsXG4gICAgICAgIHBhZ2U6IFwiL2luZGV4XCIsXG4gICAgICAgIHBhdGhuYW1lOiBcIi9cIixcbiAgICAgICAgLy8gVGhlIGZvbGxvd2luZyBhcmVuJ3QgdXNlZCBpbiBwcm9kdWN0aW9uLlxuICAgICAgICBidW5kbGVQYXRoOiAnJyxcbiAgICAgICAgZmlsZW5hbWU6ICcnXG4gICAgfSxcbiAgICBkaXN0RGlyOiBwcm9jZXNzLmVudi5fX05FWFRfUkVMQVRJVkVfRElTVF9ESVIgfHwgJycsXG4gICAgcHJvamVjdERpcjogcHJvY2Vzcy5lbnYuX19ORVhUX1JFTEFUSVZFX1BST0pFQ1RfRElSIHx8ICcnLFxuICAgIGNvbXBvbmVudHM6IHtcbiAgICAgICAgLy8gZGVmYXVsdCBleHBvcnQgbWlnaHQgbm90IGV4aXN0IHdoZW4gb3B0aW1pemVkIGZvciBkYXRhIG9ubHlcbiAgICAgICAgQXBwOiBhcHAuZGVmYXVsdCxcbiAgICAgICAgRG9jdW1lbnQ6IGRvY3VtZW50LmRlZmF1bHRcbiAgICB9LFxuICAgIHVzZXJsYW5kXG59KTtcbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBoYW5kbGVyKHJlcSwgcmVzLCBjdHgpIHtcbiAgICB2YXIgX3NlcnZlckZpbGVzTWFuaWZlc3RfY29uZmlnX2V4cGVyaW1lbnRhbCwgX3NlcnZlckZpbGVzTWFuaWZlc3RfY29uZmlnO1xuICAgIGxldCBzcmNQYWdlID0gXCIvaW5kZXhcIjtcbiAgICAvLyB0dXJib3BhY2sgZG9lc24ndCBub3JtYWxpemUgYC9pbmRleGAgaW4gdGhlIHBhZ2UgbmFtZVxuICAgIC8vIHNvIHdlIG5lZWQgdG8gdG8gcHJvY2VzcyBkeW5hbWljIHJvdXRlcyBwcm9wZXJseVxuICAgIC8vIFRPRE86IGZpeCB0dXJib3BhY2sgcHJvdmlkaW5nIGRpZmZlcmluZyB2YWx1ZSBmcm9tIHdlYnBhY2tcbiAgICBpZiAocHJvY2Vzcy5lbnYuVFVSQk9QQUNLKSB7XG4gICAgICAgIHNyY1BhZ2UgPSBzcmNQYWdlLnJlcGxhY2UoL1xcL2luZGV4JC8sICcnKSB8fCAnLyc7XG4gICAgfSBlbHNlIGlmIChzcmNQYWdlID09PSAnL2luZGV4Jykge1xuICAgICAgICAvLyB3ZSBhbHdheXMgbm9ybWFsaXplIC9pbmRleCBzcGVjaWZpY2FsbHlcbiAgICAgICAgc3JjUGFnZSA9ICcvJztcbiAgICB9XG4gICAgY29uc3QgbXVsdGlab25lRHJhZnRNb2RlID0gcHJvY2Vzcy5lbnYuX19ORVhUX01VTFRJX1pPTkVfRFJBRlRfTU9ERTtcbiAgICBjb25zdCBwcmVwYXJlUmVzdWx0ID0gYXdhaXQgcm91dGVNb2R1bGUucHJlcGFyZShyZXEsIHJlcywge1xuICAgICAgICBzcmNQYWdlLFxuICAgICAgICBtdWx0aVpvbmVEcmFmdE1vZGVcbiAgICB9KTtcbiAgICBpZiAoIXByZXBhcmVSZXN1bHQpIHtcbiAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSA0MDA7XG4gICAgICAgIHJlcy5lbmQoJ0JhZCBSZXF1ZXN0Jyk7XG4gICAgICAgIGN0eC53YWl0VW50aWwgPT0gbnVsbCA/IHZvaWQgMCA6IGN0eC53YWl0VW50aWwuY2FsbChjdHgsIFByb21pc2UucmVzb2x2ZSgpKTtcbiAgICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBjb25zdCB7IGJ1aWxkSWQsIHF1ZXJ5LCBwYXJhbXMsIHBhcnNlZFVybCwgb3JpZ2luYWxRdWVyeSwgb3JpZ2luYWxQYXRobmFtZSwgYnVpbGRNYW5pZmVzdCwgbmV4dEZvbnRNYW5pZmVzdCwgc2VydmVyRmlsZXNNYW5pZmVzdCwgcmVhY3RMb2FkYWJsZU1hbmlmZXN0LCBwcmVyZW5kZXJNYW5pZmVzdCwgaXNEcmFmdE1vZGUsIGlzT25EZW1hbmRSZXZhbGlkYXRlLCByZXZhbGlkYXRlT25seUdlbmVyYXRlZCwgbG9jYWxlLCBsb2NhbGVzLCBkZWZhdWx0TG9jYWxlLCByb3V0ZXJTZXJ2ZXJDb250ZXh0LCBuZXh0Q29uZmlnLCByZXNvbHZlZFBhdGhuYW1lIH0gPSBwcmVwYXJlUmVzdWx0O1xuICAgIGNvbnN0IGlzRXhwZXJpbWVudGFsQ29tcGlsZSA9IHNlcnZlckZpbGVzTWFuaWZlc3QgPT0gbnVsbCA/IHZvaWQgMCA6IChfc2VydmVyRmlsZXNNYW5pZmVzdF9jb25maWcgPSBzZXJ2ZXJGaWxlc01hbmlmZXN0LmNvbmZpZykgPT0gbnVsbCA/IHZvaWQgMCA6IChfc2VydmVyRmlsZXNNYW5pZmVzdF9jb25maWdfZXhwZXJpbWVudGFsID0gX3NlcnZlckZpbGVzTWFuaWZlc3RfY29uZmlnLmV4cGVyaW1lbnRhbCkgPT0gbnVsbCA/IHZvaWQgMCA6IF9zZXJ2ZXJGaWxlc01hbmlmZXN0X2NvbmZpZ19leHBlcmltZW50YWwuaXNFeHBlcmltZW50YWxDb21waWxlO1xuICAgIGNvbnN0IGhhc1NlcnZlclByb3BzID0gQm9vbGVhbihnZXRTZXJ2ZXJTaWRlUHJvcHMpO1xuICAgIGNvbnN0IGhhc1N0YXRpY1Byb3BzID0gQm9vbGVhbihnZXRTdGF0aWNQcm9wcyk7XG4gICAgY29uc3QgaGFzU3RhdGljUGF0aHMgPSBCb29sZWFuKGdldFN0YXRpY1BhdGhzKTtcbiAgICBjb25zdCBoYXNHZXRJbml0aWFsUHJvcHMgPSBCb29sZWFuKCh1c2VybGFuZC5kZWZhdWx0IHx8IHVzZXJsYW5kKS5nZXRJbml0aWFsUHJvcHMpO1xuICAgIGNvbnN0IGlzQW1wID0gcXVlcnkuYW1wICYmIGNvbmZpZy5hbXA7XG4gICAgbGV0IGNhY2hlS2V5ID0gbnVsbDtcbiAgICBsZXQgaXNJc3JGYWxsYmFjayA9IGZhbHNlO1xuICAgIGxldCBpc05leHREYXRhUmVxdWVzdCA9IHByZXBhcmVSZXN1bHQuaXNOZXh0RGF0YVJlcXVlc3QgJiYgKGhhc1N0YXRpY1Byb3BzIHx8IGhhc1NlcnZlclByb3BzKTtcbiAgICBjb25zdCBpczQwNFBhZ2UgPSBzcmNQYWdlID09PSAnLzQwNCc7XG4gICAgY29uc3QgaXM1MDBQYWdlID0gc3JjUGFnZSA9PT0gJy81MDAnO1xuICAgIGNvbnN0IGlzRXJyb3JQYWdlID0gc3JjUGFnZSA9PT0gJy9fZXJyb3InO1xuICAgIGlmICghcm91dGVNb2R1bGUuaXNEZXYgJiYgIWlzRHJhZnRNb2RlICYmIGhhc1N0YXRpY1Byb3BzKSB7XG4gICAgICAgIGNhY2hlS2V5ID0gYCR7bG9jYWxlID8gYC8ke2xvY2FsZX1gIDogJyd9JHsoc3JjUGFnZSA9PT0gJy8nIHx8IHJlc29sdmVkUGF0aG5hbWUgPT09ICcvJykgJiYgbG9jYWxlID8gJycgOiByZXNvbHZlZFBhdGhuYW1lfSR7aXNBbXAgPyAnLmFtcCcgOiAnJ31gO1xuICAgICAgICBpZiAoaXM0MDRQYWdlIHx8IGlzNTAwUGFnZSB8fCBpc0Vycm9yUGFnZSkge1xuICAgICAgICAgICAgY2FjaGVLZXkgPSBgJHtsb2NhbGUgPyBgLyR7bG9jYWxlfWAgOiAnJ30ke3NyY1BhZ2V9JHtpc0FtcCA/ICcuYW1wJyA6ICcnfWA7XG4gICAgICAgIH1cbiAgICAgICAgLy8gZW5zdXJlIC9pbmRleCBhbmQgLyBpcyBub3JtYWxpemVkIHRvIG9uZSBrZXlcbiAgICAgICAgY2FjaGVLZXkgPSBjYWNoZUtleSA9PT0gJy9pbmRleCcgPyAnLycgOiBjYWNoZUtleTtcbiAgICB9XG4gICAgaWYgKGhhc1N0YXRpY1BhdGhzICYmICFpc0RyYWZ0TW9kZSkge1xuICAgICAgICBjb25zdCBkZWNvZGVkUGF0aG5hbWUgPSByZW1vdmVUcmFpbGluZ1NsYXNoKGxvY2FsZSA/IGFkZFBhdGhQcmVmaXgocmVzb2x2ZWRQYXRobmFtZSwgYC8ke2xvY2FsZX1gKSA6IHJlc29sdmVkUGF0aG5hbWUpO1xuICAgICAgICBjb25zdCBpc1ByZXJlbmRlcmVkID0gQm9vbGVhbihwcmVyZW5kZXJNYW5pZmVzdC5yb3V0ZXNbZGVjb2RlZFBhdGhuYW1lXSkgfHwgcHJlcmVuZGVyTWFuaWZlc3Qubm90Rm91bmRSb3V0ZXMuaW5jbHVkZXMoZGVjb2RlZFBhdGhuYW1lKTtcbiAgICAgICAgY29uc3QgcHJlcmVuZGVySW5mbyA9IHByZXJlbmRlck1hbmlmZXN0LmR5bmFtaWNSb3V0ZXNbc3JjUGFnZV07XG4gICAgICAgIGlmIChwcmVyZW5kZXJJbmZvKSB7XG4gICAgICAgICAgICBpZiAocHJlcmVuZGVySW5mby5mYWxsYmFjayA9PT0gZmFsc2UgJiYgIWlzUHJlcmVuZGVyZWQpIHtcbiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgTm9GYWxsYmFja0Vycm9yKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAodHlwZW9mIHByZXJlbmRlckluZm8uZmFsbGJhY2sgPT09ICdzdHJpbmcnICYmICFpc1ByZXJlbmRlcmVkICYmICFpc05leHREYXRhUmVxdWVzdCkge1xuICAgICAgICAgICAgICAgIGlzSXNyRmFsbGJhY2sgPSB0cnVlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgIC8vIFdoZW4gc2VydmluZyBhIGJvdCByZXF1ZXN0LCB3ZSB3YW50IHRvIHNlcnZlIGEgYmxvY2tpbmcgcmVuZGVyIGFuZCBub3RcbiAgICAvLyB0aGUgcHJlcmVuZGVyZWQgcGFnZS4gVGhpcyBlbnN1cmVzIHRoYXQgdGhlIGNvcnJlY3QgY29udGVudCBpcyBzZXJ2ZWRcbiAgICAvLyB0byB0aGUgYm90IGluIHRoZSBoZWFkLlxuICAgIGlmIChpc0lzckZhbGxiYWNrICYmIGlzQm90KHJlcS5oZWFkZXJzWyd1c2VyLWFnZW50J10gfHwgJycpIHx8IGdldFJlcXVlc3RNZXRhKHJlcSwgJ21pbmltYWxNb2RlJykpIHtcbiAgICAgICAgaXNJc3JGYWxsYmFjayA9IGZhbHNlO1xuICAgIH1cbiAgICBjb25zdCB0cmFjZXIgPSBnZXRUcmFjZXIoKTtcbiAgICBjb25zdCBhY3RpdmVTcGFuID0gdHJhY2VyLmdldEFjdGl2ZVNjb3BlU3BhbigpO1xuICAgIHRyeSB7XG4gICAgICAgIGNvbnN0IG1ldGhvZCA9IHJlcS5tZXRob2QgfHwgJ0dFVCc7XG4gICAgICAgIGNvbnN0IHJlc29sdmVkVXJsID0gZm9ybWF0VXJsKHtcbiAgICAgICAgICAgIHBhdGhuYW1lOiBuZXh0Q29uZmlnLnRyYWlsaW5nU2xhc2ggPyBwYXJzZWRVcmwucGF0aG5hbWUgOiByZW1vdmVUcmFpbGluZ1NsYXNoKHBhcnNlZFVybC5wYXRobmFtZSB8fCAnLycpLFxuICAgICAgICAgICAgLy8gbWFrZSBzdXJlIHRvIG9ubHkgYWRkIHF1ZXJ5IHZhbHVlcyBmcm9tIG9yaWdpbmFsIFVSTFxuICAgICAgICAgICAgcXVlcnk6IGhhc1N0YXRpY1Byb3BzID8ge30gOiBvcmlnaW5hbFF1ZXJ5XG4gICAgICAgIH0pO1xuICAgICAgICBjb25zdCBwdWJsaWNSdW50aW1lQ29uZmlnID0gKHJvdXRlclNlcnZlckNvbnRleHQgPT0gbnVsbCA/IHZvaWQgMCA6IHJvdXRlclNlcnZlckNvbnRleHQucHVibGljUnVudGltZUNvbmZpZykgfHwgbmV4dENvbmZpZy5wdWJsaWNSdW50aW1lQ29uZmlnO1xuICAgICAgICBjb25zdCBoYW5kbGVSZXNwb25zZSA9IGFzeW5jIChzcGFuKT0+e1xuICAgICAgICAgICAgY29uc3QgcmVzcG9uc2VHZW5lcmF0b3IgPSBhc3luYyAoeyBwcmV2aW91c0NhY2hlRW50cnkgfSk9PntcbiAgICAgICAgICAgICAgICB2YXIgX3ByZXZpb3VzQ2FjaGVFbnRyeV92YWx1ZTtcbiAgICAgICAgICAgICAgICBjb25zdCBkb1JlbmRlciA9IGFzeW5jICgpPT57XG4gICAgICAgICAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB2YXIgX25leHRDb25maWdfaTE4biwgX25leHRDb25maWdfZXhwZXJpbWVudGFsX2FtcCwgX25leHRDb25maWdfZXhwZXJpbWVudGFsX2FtcDE7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gYXdhaXQgcm91dGVNb2R1bGUucmVuZGVyKHJlcSwgcmVzLCB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcXVlcnk6IGhhc1N0YXRpY1Byb3BzICYmICFpc0V4cGVyaW1lbnRhbENvbXBpbGUgPyB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC4uLnBhcmFtcyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLi4uaXNBbXAgPyB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbXA6IHF1ZXJ5LmFtcFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IDoge31cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IDoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuLi5xdWVyeSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLi4ucGFyYW1zXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXJhbXMsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFnZTogc3JjUGFnZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZW5kZXJDb250ZXh0OiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlzRHJhZnRNb2RlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpc0ZhbGxiYWNrOiBpc0lzckZhbGxiYWNrLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZXZlbG9wbWVudE5vdEZvdW5kU291cmNlUGFnZTogZ2V0UmVxdWVzdE1ldGEocmVxLCAnZGV2ZWxvcG1lbnROb3RGb3VuZFNvdXJjZVBhZ2UnKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc2hhcmVkQ29udGV4dDoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBidWlsZElkLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjdXN0b21TZXJ2ZXI6IEJvb2xlYW4ocm91dGVyU2VydmVyQ29udGV4dCA9PSBudWxsID8gdm9pZCAwIDogcm91dGVyU2VydmVyQ29udGV4dC5pc0N1c3RvbVNlcnZlcikgfHwgdW5kZWZpbmVkLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZXBsb3ltZW50SWQ6IHByb2Nlc3MuZW52Lk5FWFRfREVQTE9ZTUVOVF9JRFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVuZGVyT3B0czoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXJhbXMsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJvdXRlTW9kdWxlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYWdlOiBzcmNQYWdlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYWdlQ29uZmlnOiBjb25maWcgfHwge30sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENvbXBvbmVudDogaW50ZXJvcERlZmF1bHQodXNlcmxhbmQpLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDb21wb25lbnRNb2Q6IHVzZXJsYW5kLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnZXRTdGF0aWNQcm9wcyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2V0U3RhdGljUGF0aHMsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdldFNlcnZlclNpZGVQcm9wcyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3VwcG9ydHNEeW5hbWljUmVzcG9uc2U6ICFoYXNTdGF0aWNQcm9wcyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnVpbGRNYW5pZmVzdCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV4dEZvbnRNYW5pZmVzdCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVhY3RMb2FkYWJsZU1hbmlmZXN0LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhc3NldFByZWZpeDogbmV4dENvbmZpZy5hc3NldFByZWZpeCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RyaWN0TmV4dEhlYWQ6IEJvb2xlYW4obmV4dENvbmZpZy5leHBlcmltZW50YWwuc3RyaWN0TmV4dEhlYWQpLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcmV2aWV3UHJvcHM6IHByZXJlbmRlck1hbmlmZXN0LnByZXZpZXcsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGltYWdlczogbmV4dENvbmZpZy5pbWFnZXMsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5leHRDb25maWdPdXRwdXQ6IG5leHRDb25maWcub3V0cHV0LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvcHRpbWl6ZUNzczogQm9vbGVhbihuZXh0Q29uZmlnLmV4cGVyaW1lbnRhbC5vcHRpbWl6ZUNzcyksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5leHRTY3JpcHRXb3JrZXJzOiBCb29sZWFuKG5leHRDb25maWcuZXhwZXJpbWVudGFsLm5leHRTY3JpcHRXb3JrZXJzKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZG9tYWluTG9jYWxlczogKF9uZXh0Q29uZmlnX2kxOG4gPSBuZXh0Q29uZmlnLmkxOG4pID09IG51bGwgPyB2b2lkIDAgOiBfbmV4dENvbmZpZ19pMThuLmRvbWFpbnMsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNyb3NzT3JpZ2luOiBuZXh0Q29uZmlnLmNyb3NzT3JpZ2luLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtdWx0aVpvbmVEcmFmdE1vZGUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJhc2VQYXRoOiBuZXh0Q29uZmlnLmJhc2VQYXRoLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYW5vbmljYWxCYXNlOiBuZXh0Q29uZmlnLmFtcC5jYW5vbmljYWxCYXNlIHx8ICcnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbXBPcHRpbWl6ZXJDb25maWc6IChfbmV4dENvbmZpZ19leHBlcmltZW50YWxfYW1wID0gbmV4dENvbmZpZy5leHBlcmltZW50YWwuYW1wKSA9PSBudWxsID8gdm9pZCAwIDogX25leHRDb25maWdfZXhwZXJpbWVudGFsX2FtcC5vcHRpbWl6ZXIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpc2FibGVPcHRpbWl6ZWRMb2FkaW5nOiBuZXh0Q29uZmlnLmV4cGVyaW1lbnRhbC5kaXNhYmxlT3B0aW1pemVkTG9hZGluZyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGFyZ2VQYWdlRGF0YUJ5dGVzOiBuZXh0Q29uZmlnLmV4cGVyaW1lbnRhbC5sYXJnZVBhZ2VEYXRhQnl0ZXMsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIE9ubHkgdGhlIGBwdWJsaWNSdW50aW1lQ29uZmlnYCBrZXkgaXMgZXhwb3NlZCB0byB0aGUgY2xpZW50IHNpZGVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gSXQnbGwgYmUgcmVuZGVyZWQgYXMgcGFydCBvZiBfX05FWFRfREFUQV9fIG9uIHRoZSBjbGllbnQgc2lkZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBydW50aW1lQ29uZmlnOiBPYmplY3Qua2V5cyhwdWJsaWNSdW50aW1lQ29uZmlnKS5sZW5ndGggPiAwID8gcHVibGljUnVudGltZUNvbmZpZyA6IHVuZGVmaW5lZCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaXNFeHBlcmltZW50YWxDb21waWxlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBleHBlcmltZW50YWw6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsaWVudFRyYWNlTWV0YWRhdGE6IG5leHRDb25maWcuZXhwZXJpbWVudGFsLmNsaWVudFRyYWNlTWV0YWRhdGEgfHwgW11cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9jYWxlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb2NhbGVzLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZWZhdWx0TG9jYWxlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXRJc3JTdGF0dXM6IHJvdXRlclNlcnZlckNvbnRleHQgPT0gbnVsbCA/IHZvaWQgMCA6IHJvdXRlclNlcnZlckNvbnRleHQuc2V0SXNyU3RhdHVzLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpc05leHREYXRhUmVxdWVzdDogaXNOZXh0RGF0YVJlcXVlc3QgJiYgKGhhc1NlcnZlclByb3BzIHx8IGhhc1N0YXRpY1Byb3BzKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzb2x2ZWRVcmwsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIEZvciBnZXRTZXJ2ZXJTaWRlUHJvcHMgYW5kIGdldEluaXRpYWxQcm9wcyB3ZSBuZWVkIHRvIGVuc3VyZSB3ZSB1c2UgdGhlIG9yaWdpbmFsIFVSTFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBhbmQgbm90IHRoZSByZXNvbHZlZCBVUkwgdG8gcHJldmVudCBhIGh5ZHJhdGlvbiBtaXNtYXRjaCBvblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBhc1BhdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzb2x2ZWRBc1BhdGg6IGhhc1NlcnZlclByb3BzIHx8IGhhc0dldEluaXRpYWxQcm9wcyA/IGZvcm1hdFVybCh7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyB3ZSB1c2UgdGhlIG9yaWdpbmFsIFVSTCBwYXRobmFtZSBsZXNzIHRoZSBfbmV4dC9kYXRhIHByZWZpeCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gcHJlc2VudFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGF0aG5hbWU6IGlzTmV4dERhdGFSZXF1ZXN0ID8gbm9ybWFsaXplRGF0YVBhdGgob3JpZ2luYWxQYXRobmFtZSkgOiBvcmlnaW5hbFBhdGhuYW1lLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcXVlcnk6IG9yaWdpbmFsUXVlcnlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSkgOiByZXNvbHZlZFVybCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaXNPbkRlbWFuZFJldmFsaWRhdGUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVycm9yRGVidWc6IGdldFJlcXVlc3RNZXRhKHJlcSwgJ1BhZ2VzRXJyb3JEZWJ1ZycpLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlcnI6IGdldFJlcXVlc3RNZXRhKHJlcSwgJ2ludm9rZUVycm9yJyksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRldjogcm91dGVNb2R1bGUuaXNEZXYsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIG5lZWRlZCBmb3IgZXhwZXJpbWVudGFsLm9wdGltaXplQ3NzIGZlYXR1cmVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlzdERpcjogYCR7cm91dGVNb2R1bGUucHJvamVjdERpcn0vJHtyb3V0ZU1vZHVsZS5kaXN0RGlyfWAsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFtcFNraXBWYWxpZGF0aW9uOiAoX25leHRDb25maWdfZXhwZXJpbWVudGFsX2FtcDEgPSBuZXh0Q29uZmlnLmV4cGVyaW1lbnRhbC5hbXApID09IG51bGwgPyB2b2lkIDAgOiBfbmV4dENvbmZpZ19leHBlcmltZW50YWxfYW1wMS5za2lwVmFsaWRhdGlvbixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYW1wVmFsaWRhdG9yOiBnZXRSZXF1ZXN0TWV0YShyZXEsICdhbXBWYWxpZGF0b3InKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIH0pLnRoZW4oKHJlbmRlclJlc3VsdCk9PntcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB7IG1ldGFkYXRhIH0gPSByZW5kZXJSZXN1bHQ7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGNhY2hlQ29udHJvbCA9IG1ldGFkYXRhLmNhY2hlQ29udHJvbDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoJ2lzTm90Rm91bmQnIGluIG1ldGFkYXRhICYmIG1ldGFkYXRhLmlzTm90Rm91bmQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlOiBudWxsLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FjaGVDb250cm9sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIEhhbmRsZSBgaXNSZWRpcmVjdGAuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKG1ldGFkYXRhLmlzUmVkaXJlY3QpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAga2luZDogQ2FjaGVkUm91dGVLaW5kLlJFRElSRUNULFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByb3BzOiBtZXRhZGF0YS5wYWdlRGF0YSA/PyBtZXRhZGF0YS5mbGlnaHREYXRhXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FjaGVDb250cm9sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBraW5kOiBDYWNoZWRSb3V0ZUtpbmQuUEFHRVMsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBodG1sOiByZW5kZXJSZXN1bHQsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYWdlRGF0YTogcmVuZGVyUmVzdWx0Lm1ldGFkYXRhLnBhZ2VEYXRhLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVhZGVyczogcmVuZGVyUmVzdWx0Lm1ldGFkYXRhLmhlYWRlcnMsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGF0dXM6IHJlbmRlclJlc3VsdC5tZXRhZGF0YS5zdGF0dXNDb2RlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhY2hlQ29udHJvbFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgICAgICAgICB9KS5maW5hbGx5KCgpPT57XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCFzcGFuKSByZXR1cm47XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Bhbi5zZXRBdHRyaWJ1dGVzKHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2h0dHAuc3RhdHVzX2NvZGUnOiByZXMuc3RhdHVzQ29kZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ25leHQucnNjJzogZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCByb290U3BhbkF0dHJpYnV0ZXMgPSB0cmFjZXIuZ2V0Um9vdFNwYW5BdHRyaWJ1dGVzKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gV2Ugd2VyZSB1bmFibGUgdG8gZ2V0IGF0dHJpYnV0ZXMsIHByb2JhYmx5IE9URUwgaXMgbm90IGVuYWJsZWRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoIXJvb3RTcGFuQXR0cmlidXRlcykge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChyb290U3BhbkF0dHJpYnV0ZXMuZ2V0KCduZXh0LnNwYW5fdHlwZScpICE9PSBCYXNlU2VydmVyU3Bhbi5oYW5kbGVSZXF1ZXN0KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGUud2FybihgVW5leHBlY3RlZCByb290IHNwYW4gdHlwZSAnJHtyb290U3BhbkF0dHJpYnV0ZXMuZ2V0KCduZXh0LnNwYW5fdHlwZScpfScuIFBsZWFzZSByZXBvcnQgdGhpcyBOZXh0LmpzIGlzc3VlIGh0dHBzOi8vZ2l0aHViLmNvbS92ZXJjZWwvbmV4dC5qc2ApO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHJvdXRlID0gcm9vdFNwYW5BdHRyaWJ1dGVzLmdldCgnbmV4dC5yb3V0ZScpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChyb3V0ZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBuYW1lID0gYCR7bWV0aG9kfSAke3JvdXRlfWA7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNwYW4uc2V0QXR0cmlidXRlcyh7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnbmV4dC5yb3V0ZSc6IHJvdXRlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2h0dHAucm91dGUnOiByb3V0ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICduZXh0LnNwYW5fbmFtZSc6IG5hbWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNwYW4udXBkYXRlTmFtZShuYW1lKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzcGFuLnVwZGF0ZU5hbWUoYCR7bWV0aG9kfSAke3JlcS51cmx9YCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgICAgICAgICAgICAgICAgICAgLy8gaWYgdGhpcyBpcyBhIGJhY2tncm91bmQgcmV2YWxpZGF0ZSB3ZSBuZWVkIHRvIHJlcG9ydFxuICAgICAgICAgICAgICAgICAgICAgICAgLy8gdGhlIHJlcXVlc3QgZXJyb3IgaGVyZSBhcyBpdCB3b24ndCBiZSBidWJibGVkXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAocHJldmlvdXNDYWNoZUVudHJ5ID09IG51bGwgPyB2b2lkIDAgOiBwcmV2aW91c0NhY2hlRW50cnkuaXNTdGFsZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF3YWl0IHJvdXRlTW9kdWxlLm9uUmVxdWVzdEVycm9yKHJlcSwgZXJyLCB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJvdXRlcktpbmQ6ICdQYWdlcyBSb3V0ZXInLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByb3V0ZVBhdGg6IHNyY1BhZ2UsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJvdXRlVHlwZTogJ3JlbmRlcicsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldmFsaWRhdGVSZWFzb246IGdldFJldmFsaWRhdGVSZWFzb24oe1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaXNSZXZhbGlkYXRlOiBoYXNTdGF0aWNQcm9wcyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlzT25EZW1hbmRSZXZhbGlkYXRlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwgcm91dGVyU2VydmVyQ29udGV4dCk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICB0aHJvdyBlcnI7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgIC8vIGlmIHdlJ3ZlIGFscmVhZHkgZ2VuZXJhdGVkIHRoaXMgcGFnZSB3ZSBubyBsb25nZXJcbiAgICAgICAgICAgICAgICAvLyBzZXJ2ZSB0aGUgZmFsbGJhY2tcbiAgICAgICAgICAgICAgICBpZiAocHJldmlvdXNDYWNoZUVudHJ5KSB7XG4gICAgICAgICAgICAgICAgICAgIGlzSXNyRmFsbGJhY2sgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgaWYgKGlzSXNyRmFsbGJhY2spIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgZmFsbGJhY2tSZXNwb25zZSA9IGF3YWl0IHJvdXRlTW9kdWxlLmdldFJlc3BvbnNlQ2FjaGUocmVxKS5nZXQocm91dGVNb2R1bGUuaXNEZXYgPyBudWxsIDogbG9jYWxlID8gYC8ke2xvY2FsZX0ke3NyY1BhZ2V9YCA6IHNyY1BhZ2UsIGFzeW5jICh7IHByZXZpb3VzQ2FjaGVFbnRyeTogcHJldmlvdXNGYWxsYmFja0NhY2hlRW50cnkgPSBudWxsIH0pPT57XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoIXJvdXRlTW9kdWxlLmlzRGV2KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRvUmVzcG9uc2VDYWNoZUVudHJ5KHByZXZpb3VzRmFsbGJhY2tDYWNoZUVudHJ5KTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBkb1JlbmRlcigpO1xuICAgICAgICAgICAgICAgICAgICB9LCB7XG4gICAgICAgICAgICAgICAgICAgICAgICByb3V0ZUtpbmQ6IFJvdXRlS2luZC5QQUdFUyxcbiAgICAgICAgICAgICAgICAgICAgICAgIGlzRmFsbGJhY2s6IHRydWUsXG4gICAgICAgICAgICAgICAgICAgICAgICBpc1JvdXRlUFBSRW5hYmxlZDogZmFsc2UsXG4gICAgICAgICAgICAgICAgICAgICAgICBpc09uRGVtYW5kUmV2YWxpZGF0ZTogZmFsc2UsXG4gICAgICAgICAgICAgICAgICAgICAgICBpbmNyZW1lbnRhbENhY2hlOiBhd2FpdCByb3V0ZU1vZHVsZS5nZXRJbmNyZW1lbnRhbENhY2hlKHJlcSwgbmV4dENvbmZpZywgcHJlcmVuZGVyTWFuaWZlc3QpLFxuICAgICAgICAgICAgICAgICAgICAgICAgd2FpdFVudGlsOiBjdHgud2FpdFVudGlsXG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICBpZiAoZmFsbGJhY2tSZXNwb25zZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgLy8gUmVtb3ZlIHRoZSBjYWNoZSBjb250cm9sIGZyb20gdGhlIHJlc3BvbnNlIHRvIHByZXZlbnQgaXQgZnJvbSBiZWluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgLy8gdXNlZCBpbiB0aGUgc3Vycm91bmRpbmcgY2FjaGUuXG4gICAgICAgICAgICAgICAgICAgICAgICBkZWxldGUgZmFsbGJhY2tSZXNwb25zZS5jYWNoZUNvbnRyb2w7XG4gICAgICAgICAgICAgICAgICAgICAgICBmYWxsYmFja1Jlc3BvbnNlLmlzTWlzcyA9IHRydWU7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsbGJhY2tSZXNwb25zZTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBpZiAoIWdldFJlcXVlc3RNZXRhKHJlcSwgJ21pbmltYWxNb2RlJykgJiYgaXNPbkRlbWFuZFJldmFsaWRhdGUgJiYgcmV2YWxpZGF0ZU9ubHlHZW5lcmF0ZWQgJiYgIXByZXZpb3VzQ2FjaGVFbnRyeSkge1xuICAgICAgICAgICAgICAgICAgICByZXMuc3RhdHVzQ29kZSA9IDQwNDtcbiAgICAgICAgICAgICAgICAgICAgLy8gb24tZGVtYW5kIHJldmFsaWRhdGUgYWx3YXlzIHNldHMgdGhpcyBoZWFkZXJcbiAgICAgICAgICAgICAgICAgICAgcmVzLnNldEhlYWRlcigneC1uZXh0anMtY2FjaGUnLCAnUkVWQUxJREFURUQnKTtcbiAgICAgICAgICAgICAgICAgICAgcmVzLmVuZCgnVGhpcyBwYWdlIGNvdWxkIG5vdCBiZSBmb3VuZCcpO1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgaWYgKGlzSXNyRmFsbGJhY2sgJiYgKHByZXZpb3VzQ2FjaGVFbnRyeSA9PSBudWxsID8gdm9pZCAwIDogKF9wcmV2aW91c0NhY2hlRW50cnlfdmFsdWUgPSBwcmV2aW91c0NhY2hlRW50cnkudmFsdWUpID09IG51bGwgPyB2b2lkIDAgOiBfcHJldmlvdXNDYWNoZUVudHJ5X3ZhbHVlLmtpbmQpID09PSBDYWNoZWRSb3V0ZUtpbmQuUEFHRVMpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAga2luZDogQ2FjaGVkUm91dGVLaW5kLlBBR0VTLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGh0bWw6IG5ldyBSZW5kZXJSZXN1bHQoQnVmZmVyLmZyb20ocHJldmlvdXNDYWNoZUVudHJ5LnZhbHVlLmh0bWwpLCB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRlbnRUeXBlOiAndGV4dC9odG1sO3V0Zi04JyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWV0YWRhdGE6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXR1c0NvZGU6IHByZXZpb3VzQ2FjaGVFbnRyeS52YWx1ZS5zdGF0dXMsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWFkZXJzOiBwcmV2aW91c0NhY2hlRW50cnkudmFsdWUuaGVhZGVyc1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFnZURhdGE6IHt9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXR1czogcHJldmlvdXNDYWNoZUVudHJ5LnZhbHVlLnN0YXR1cyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWFkZXJzOiBwcmV2aW91c0NhY2hlRW50cnkudmFsdWUuaGVhZGVyc1xuICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGNhY2hlQ29udHJvbDoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldmFsaWRhdGU6IDAsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZXhwaXJlOiB1bmRlZmluZWRcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgcmV0dXJuIGRvUmVuZGVyKCk7XG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgcm91dGVNb2R1bGUuaGFuZGxlUmVzcG9uc2Uoe1xuICAgICAgICAgICAgICAgIGNhY2hlS2V5LFxuICAgICAgICAgICAgICAgIHJlcSxcbiAgICAgICAgICAgICAgICBuZXh0Q29uZmlnLFxuICAgICAgICAgICAgICAgIHJvdXRlS2luZDogUm91dGVLaW5kLlBBR0VTLFxuICAgICAgICAgICAgICAgIGlzT25EZW1hbmRSZXZhbGlkYXRlLFxuICAgICAgICAgICAgICAgIHJldmFsaWRhdGVPbmx5R2VuZXJhdGVkLFxuICAgICAgICAgICAgICAgIHdhaXRVbnRpbDogY3R4LndhaXRVbnRpbCxcbiAgICAgICAgICAgICAgICByZXNwb25zZUdlbmVyYXRvcjogcmVzcG9uc2VHZW5lcmF0b3IsXG4gICAgICAgICAgICAgICAgcHJlcmVuZGVyTWFuaWZlc3RcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgLy8gaWYgd2UgZ290IGEgY2FjaGUgaGl0IHRoaXMgd2Fzbid0IGFuIElTUiBmYWxsYmFja1xuICAgICAgICAgICAgLy8gYnV0IGl0IHdhc24ndCBnZW5lcmF0ZWQgZHVyaW5nIGJ1aWxkIHNvIGlzbid0IGluIHRoZVxuICAgICAgICAgICAgLy8gcHJlcmVuZGVyLW1hbmlmZXN0XG4gICAgICAgICAgICBpZiAoaXNJc3JGYWxsYmFjayAmJiAhKHJlc3VsdCA9PSBudWxsID8gdm9pZCAwIDogcmVzdWx0LmlzTWlzcykpIHtcbiAgICAgICAgICAgICAgICBpc0lzckZhbGxiYWNrID0gZmFsc2U7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAvLyByZXNwb25zZSBpcyBmaW5pc2hlZCBpcyBubyBjYWNoZSBlbnRyeVxuICAgICAgICAgICAgaWYgKCFyZXN1bHQpIHtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoaGFzU3RhdGljUHJvcHMgJiYgIWdldFJlcXVlc3RNZXRhKHJlcSwgJ21pbmltYWxNb2RlJykpIHtcbiAgICAgICAgICAgICAgICByZXMuc2V0SGVhZGVyKCd4LW5leHRqcy1jYWNoZScsIGlzT25EZW1hbmRSZXZhbGlkYXRlID8gJ1JFVkFMSURBVEVEJyA6IHJlc3VsdC5pc01pc3MgPyAnTUlTUycgOiByZXN1bHQuaXNTdGFsZSA/ICdTVEFMRScgOiAnSElUJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBsZXQgY2FjaGVDb250cm9sO1xuICAgICAgICAgICAgaWYgKCFoYXNTdGF0aWNQcm9wcyB8fCBpc0lzckZhbGxiYWNrKSB7XG4gICAgICAgICAgICAgICAgaWYgKCFyZXMuZ2V0SGVhZGVyKCdDYWNoZS1Db250cm9sJykpIHtcbiAgICAgICAgICAgICAgICAgICAgY2FjaGVDb250cm9sID0ge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV2YWxpZGF0ZTogMCxcbiAgICAgICAgICAgICAgICAgICAgICAgIGV4cGlyZTogdW5kZWZpbmVkXG4gICAgICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBlbHNlIGlmIChpczQwNFBhZ2UpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBub3RGb3VuZFJldmFsaWRhdGUgPSBnZXRSZXF1ZXN0TWV0YShyZXEsICdub3RGb3VuZFJldmFsaWRhdGUnKTtcbiAgICAgICAgICAgICAgICBjYWNoZUNvbnRyb2wgPSB7XG4gICAgICAgICAgICAgICAgICAgIHJldmFsaWRhdGU6IHR5cGVvZiBub3RGb3VuZFJldmFsaWRhdGUgPT09ICd1bmRlZmluZWQnID8gMCA6IG5vdEZvdW5kUmV2YWxpZGF0ZSxcbiAgICAgICAgICAgICAgICAgICAgZXhwaXJlOiB1bmRlZmluZWRcbiAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgfSBlbHNlIGlmIChpczUwMFBhZ2UpIHtcbiAgICAgICAgICAgICAgICBjYWNoZUNvbnRyb2wgPSB7XG4gICAgICAgICAgICAgICAgICAgIHJldmFsaWRhdGU6IDAsXG4gICAgICAgICAgICAgICAgICAgIGV4cGlyZTogdW5kZWZpbmVkXG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAocmVzdWx0LmNhY2hlQ29udHJvbCkge1xuICAgICAgICAgICAgICAgIC8vIElmIHRoZSBjYWNoZSBlbnRyeSBoYXMgYSBjYWNoZSBjb250cm9sIHdpdGggYSByZXZhbGlkYXRlIHZhbHVlIHRoYXQnc1xuICAgICAgICAgICAgICAgIC8vIGEgbnVtYmVyLCB1c2UgaXQuXG4gICAgICAgICAgICAgICAgaWYgKHR5cGVvZiByZXN1bHQuY2FjaGVDb250cm9sLnJldmFsaWRhdGUgPT09ICdudW1iZXInKSB7XG4gICAgICAgICAgICAgICAgICAgIHZhciBfcmVzdWx0X2NhY2hlQ29udHJvbDtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHJlc3VsdC5jYWNoZUNvbnRyb2wucmV2YWxpZGF0ZSA8IDEpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRocm93IE9iamVjdC5kZWZpbmVQcm9wZXJ0eShuZXcgRXJyb3IoYEludmFsaWQgcmV2YWxpZGF0ZSBjb25maWd1cmF0aW9uIHByb3ZpZGVkOiAke3Jlc3VsdC5jYWNoZUNvbnRyb2wucmV2YWxpZGF0ZX0gPCAxYCksIFwiX19ORVhUX0VSUk9SX0NPREVcIiwge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlOiBcIkUyMlwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVudW1lcmFibGU6IGZhbHNlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgY2FjaGVDb250cm9sID0ge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV2YWxpZGF0ZTogcmVzdWx0LmNhY2hlQ29udHJvbC5yZXZhbGlkYXRlLFxuICAgICAgICAgICAgICAgICAgICAgICAgZXhwaXJlOiAoKF9yZXN1bHRfY2FjaGVDb250cm9sID0gcmVzdWx0LmNhY2hlQ29udHJvbCkgPT0gbnVsbCA/IHZvaWQgMCA6IF9yZXN1bHRfY2FjaGVDb250cm9sLmV4cGlyZSkgPz8gbmV4dENvbmZpZy5leHBpcmVUaW1lXG4gICAgICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgLy8gcmV2YWxpZGF0ZTogZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgY2FjaGVDb250cm9sID0ge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV2YWxpZGF0ZTogQ0FDSEVfT05FX1lFQVIsXG4gICAgICAgICAgICAgICAgICAgICAgICBleHBpcmU6IHVuZGVmaW5lZFxuICAgICAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC8vIElmIGNhY2hlIGNvbnRyb2wgaXMgYWxyZWFkeSBzZXQgb24gdGhlIHJlc3BvbnNlIHdlIGRvbid0XG4gICAgICAgICAgICAvLyBvdmVycmlkZSBpdCB0byBhbGxvdyB1c2VycyB0byBjdXN0b21pemUgaXQgdmlhIG5leHQuY29uZmlnXG4gICAgICAgICAgICBpZiAoY2FjaGVDb250cm9sICYmICFyZXMuZ2V0SGVhZGVyKCdDYWNoZS1Db250cm9sJykpIHtcbiAgICAgICAgICAgICAgICByZXMuc2V0SGVhZGVyKCdDYWNoZS1Db250cm9sJywgZ2V0Q2FjaGVDb250cm9sSGVhZGVyKGNhY2hlQ29udHJvbCkpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgLy8gbm90Rm91bmQ6IHRydWUgY2FzZVxuICAgICAgICAgICAgaWYgKCFyZXN1bHQudmFsdWUpIHtcbiAgICAgICAgICAgICAgICB2YXIgX3Jlc3VsdF9jYWNoZUNvbnRyb2wxO1xuICAgICAgICAgICAgICAgIC8vIGFkZCByZXZhbGlkYXRlIG1ldGFkYXRhIGJlZm9yZSByZW5kZXJpbmcgNDA0IHBhZ2VcbiAgICAgICAgICAgICAgICAvLyBzbyB0aGF0IHdlIGNhbiB1c2UgdGhpcyBhcyBzb3VyY2Ugb2YgdHJ1dGggZm9yIHRoZVxuICAgICAgICAgICAgICAgIC8vIGNhY2hlLWNvbnRyb2wgaGVhZGVyIGluc3RlYWQgb2Ygd2hhdCB0aGUgNDA0IHBhZ2UgcmV0dXJuc1xuICAgICAgICAgICAgICAgIC8vIGZvciB0aGUgcmV2YWxpZGF0ZSB2YWx1ZVxuICAgICAgICAgICAgICAgIGFkZFJlcXVlc3RNZXRhKHJlcSwgJ25vdEZvdW5kUmV2YWxpZGF0ZScsIChfcmVzdWx0X2NhY2hlQ29udHJvbDEgPSByZXN1bHQuY2FjaGVDb250cm9sKSA9PSBudWxsID8gdm9pZCAwIDogX3Jlc3VsdF9jYWNoZUNvbnRyb2wxLnJldmFsaWRhdGUpO1xuICAgICAgICAgICAgICAgIHJlcy5zdGF0dXNDb2RlID0gNDA0O1xuICAgICAgICAgICAgICAgIGlmIChpc05leHREYXRhUmVxdWVzdCkge1xuICAgICAgICAgICAgICAgICAgICByZXMuZW5kKCd7XCJub3RGb3VuZFwiOnRydWV9Jyk7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgLy8gVE9ETzogc2hvdWxkIHJvdXRlLW1vZHVsZSBpdHNlbGYgaGFuZGxlIHJlbmRlcmluZyB0aGUgNDA0XG4gICAgICAgICAgICAgICAgaWYgKHJvdXRlclNlcnZlckNvbnRleHQgPT0gbnVsbCA/IHZvaWQgMCA6IHJvdXRlclNlcnZlckNvbnRleHQucmVuZGVyNDA0KSB7XG4gICAgICAgICAgICAgICAgICAgIGF3YWl0IHJvdXRlclNlcnZlckNvbnRleHQucmVuZGVyNDA0KHJlcSwgcmVzLCBwYXJzZWRVcmwsIGZhbHNlKTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICByZXMuZW5kKCdUaGlzIHBhZ2UgY291bGQgbm90IGJlIGZvdW5kJyk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChyZXN1bHQudmFsdWUua2luZCA9PT0gQ2FjaGVkUm91dGVLaW5kLlJFRElSRUNUKSB7XG4gICAgICAgICAgICAgICAgaWYgKGlzTmV4dERhdGFSZXF1ZXN0KSB7XG4gICAgICAgICAgICAgICAgICAgIHJlcy5zZXRIZWFkZXIoJ2NvbnRlbnQtdHlwZScsICdhcHBsaWNhdGlvbi9qc29uJyk7XG4gICAgICAgICAgICAgICAgICAgIHJlcy5lbmQoSlNPTi5zdHJpbmdpZnkocmVzdWx0LnZhbHVlLnByb3BzKSk7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBoYW5kbGVSZWRpcmVjdCA9IChwYWdlRGF0YSk9PntcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHJlZGlyZWN0ID0ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlc3RpbmF0aW9uOiBwYWdlRGF0YS5wYWdlUHJvcHMuX19OX1JFRElSRUNULFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXR1c0NvZGU6IHBhZ2VEYXRhLnBhZ2VQcm9wcy5fX05fUkVESVJFQ1RfU1RBVFVTLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJhc2VQYXRoOiBwYWdlRGF0YS5wYWdlUHJvcHMuX19OX1JFRElSRUNUX0JBU0VfUEFUSFxuICAgICAgICAgICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHN0YXR1c0NvZGUgPSBnZXRSZWRpcmVjdFN0YXR1cyhyZWRpcmVjdCk7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB7IGJhc2VQYXRoIH0gPSBuZXh0Q29uZmlnO1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGJhc2VQYXRoICYmIHJlZGlyZWN0LmJhc2VQYXRoICE9PSBmYWxzZSAmJiByZWRpcmVjdC5kZXN0aW5hdGlvbi5zdGFydHNXaXRoKCcvJykpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZWRpcmVjdC5kZXN0aW5hdGlvbiA9IGAke2Jhc2VQYXRofSR7cmVkaXJlY3QuZGVzdGluYXRpb259YDtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChyZWRpcmVjdC5kZXN0aW5hdGlvbi5zdGFydHNXaXRoKCcvJykpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZWRpcmVjdC5kZXN0aW5hdGlvbiA9IG5vcm1hbGl6ZVJlcGVhdGVkU2xhc2hlcyhyZWRpcmVjdC5kZXN0aW5hdGlvbik7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICByZXMuc3RhdHVzQ29kZSA9IHN0YXR1c0NvZGU7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXMuc2V0SGVhZGVyKCdMb2NhdGlvbicsIHJlZGlyZWN0LmRlc3RpbmF0aW9uKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChzdGF0dXNDb2RlID09PSBSZWRpcmVjdFN0YXR1c0NvZGUuUGVybWFuZW50UmVkaXJlY3QpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXMuc2V0SGVhZGVyKCdSZWZyZXNoJywgYDA7dXJsPSR7cmVkaXJlY3QuZGVzdGluYXRpb259YCk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICByZXMuZW5kKHJlZGlyZWN0LmRlc3RpbmF0aW9uKTtcbiAgICAgICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICAgICAgYXdhaXQgaGFuZGxlUmVkaXJlY3QocmVzdWx0LnZhbHVlLnByb3BzKTtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKHJlc3VsdC52YWx1ZS5raW5kICE9PSBDYWNoZWRSb3V0ZUtpbmQuUEFHRVMpIHtcbiAgICAgICAgICAgICAgICB0aHJvdyBPYmplY3QuZGVmaW5lUHJvcGVydHkobmV3IEVycm9yKGBJbnZhcmlhbnQ6IHJlY2VpdmVkIG5vbi1wYWdlcyBjYWNoZSBlbnRyeSBpbiBwYWdlcyBoYW5kbGVyYCksIFwiX19ORVhUX0VSUk9SX0NPREVcIiwge1xuICAgICAgICAgICAgICAgICAgICB2YWx1ZTogXCJFNjk1XCIsXG4gICAgICAgICAgICAgICAgICAgIGVudW1lcmFibGU6IGZhbHNlLFxuICAgICAgICAgICAgICAgICAgICBjb25maWd1cmFibGU6IHRydWVcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC8vIEluIGRldiwgd2Ugc2hvdWxkIG5vdCBjYWNoZSBwYWdlcyBmb3IgYW55IHJlYXNvbi5cbiAgICAgICAgICAgIGlmIChyb3V0ZU1vZHVsZS5pc0Rldikge1xuICAgICAgICAgICAgICAgIHJlcy5zZXRIZWFkZXIoJ0NhY2hlLUNvbnRyb2wnLCAnbm8tc3RvcmUsIG11c3QtcmV2YWxpZGF0ZScpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgLy8gRHJhZnQgbW9kZSBzaG91bGQgbmV2ZXIgYmUgY2FjaGVkXG4gICAgICAgICAgICBpZiAoaXNEcmFmdE1vZGUpIHtcbiAgICAgICAgICAgICAgICByZXMuc2V0SGVhZGVyKCdDYWNoZS1Db250cm9sJywgJ3ByaXZhdGUsIG5vLWNhY2hlLCBuby1zdG9yZSwgbWF4LWFnZT0wLCBtdXN0LXJldmFsaWRhdGUnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC8vIHdoZW4gaW52b2tpbmcgX2Vycm9yIGJlZm9yZSBwYWdlcy81MDAgd2UgZG9uJ3QgYWN0dWFsbHlcbiAgICAgICAgICAgIC8vIHNlbmQgdGhlIF9lcnJvciByZXNwb25zZVxuICAgICAgICAgICAgaWYgKGdldFJlcXVlc3RNZXRhKHJlcSwgJ2N1c3RvbUVycm9yUmVuZGVyJykgfHwgaXNFcnJvclBhZ2UgJiYgZ2V0UmVxdWVzdE1ldGEocmVxLCAnbWluaW1hbE1vZGUnKSAmJiByZXMuc3RhdHVzQ29kZSA9PT0gNTAwKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBhd2FpdCBzZW5kUmVuZGVyUmVzdWx0KHtcbiAgICAgICAgICAgICAgICByZXEsXG4gICAgICAgICAgICAgICAgcmVzLFxuICAgICAgICAgICAgICAgIC8vIElmIHdlIGFyZSByZW5kZXJpbmcgdGhlIGVycm9yIHBhZ2UgaXQncyBub3QgYSBkYXRhIHJlcXVlc3RcbiAgICAgICAgICAgICAgICAvLyBhbnltb3JlXG4gICAgICAgICAgICAgICAgcmVzdWx0OiBpc05leHREYXRhUmVxdWVzdCAmJiAhaXNFcnJvclBhZ2UgJiYgIWlzNTAwUGFnZSA/IG5ldyBSZW5kZXJSZXN1bHQoQnVmZmVyLmZyb20oSlNPTi5zdHJpbmdpZnkocmVzdWx0LnZhbHVlLnBhZ2VEYXRhKSksIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudFR5cGU6ICdhcHBsaWNhdGlvbi9qc29uJyxcbiAgICAgICAgICAgICAgICAgICAgbWV0YWRhdGE6IHJlc3VsdC52YWx1ZS5odG1sLm1ldGFkYXRhXG4gICAgICAgICAgICAgICAgfSkgOiByZXN1bHQudmFsdWUuaHRtbCxcbiAgICAgICAgICAgICAgICBnZW5lcmF0ZUV0YWdzOiBuZXh0Q29uZmlnLmdlbmVyYXRlRXRhZ3MsXG4gICAgICAgICAgICAgICAgcG93ZXJlZEJ5SGVhZGVyOiBuZXh0Q29uZmlnLnBvd2VyZWRCeUhlYWRlcixcbiAgICAgICAgICAgICAgICBjYWNoZUNvbnRyb2w6IHJvdXRlTW9kdWxlLmlzRGV2ID8gdW5kZWZpbmVkIDogY2FjaGVDb250cm9sLFxuICAgICAgICAgICAgICAgIHR5cGU6IGlzTmV4dERhdGFSZXF1ZXN0ID8gJ2pzb24nIDogJ2h0bWwnXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfTtcbiAgICAgICAgLy8gVE9ETzogYWN0aXZlU3BhbiBjb2RlIHBhdGggaXMgZm9yIHdoZW4gd3JhcHBlZCBieVxuICAgICAgICAvLyBuZXh0LXNlcnZlciBjYW4gYmUgcmVtb3ZlZCB3aGVuIHRoaXMgaXMgbm8gbG9uZ2VyIHVzZWRcbiAgICAgICAgaWYgKGFjdGl2ZVNwYW4pIHtcbiAgICAgICAgICAgIGF3YWl0IGhhbmRsZVJlc3BvbnNlKCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBhd2FpdCB0cmFjZXIud2l0aFByb3BhZ2F0ZWRDb250ZXh0KHJlcS5oZWFkZXJzLCAoKT0+dHJhY2VyLnRyYWNlKEJhc2VTZXJ2ZXJTcGFuLmhhbmRsZVJlcXVlc3QsIHtcbiAgICAgICAgICAgICAgICAgICAgc3Bhbk5hbWU6IGAke21ldGhvZH0gJHtyZXEudXJsfWAsXG4gICAgICAgICAgICAgICAgICAgIGtpbmQ6IFNwYW5LaW5kLlNFUlZFUixcbiAgICAgICAgICAgICAgICAgICAgYXR0cmlidXRlczoge1xuICAgICAgICAgICAgICAgICAgICAgICAgJ2h0dHAubWV0aG9kJzogbWV0aG9kLFxuICAgICAgICAgICAgICAgICAgICAgICAgJ2h0dHAudGFyZ2V0JzogcmVxLnVybFxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSwgaGFuZGxlUmVzcG9uc2UpKTtcbiAgICAgICAgfVxuICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgICBhd2FpdCByb3V0ZU1vZHVsZS5vblJlcXVlc3RFcnJvcihyZXEsIGVyciwge1xuICAgICAgICAgICAgcm91dGVyS2luZDogJ1BhZ2VzIFJvdXRlcicsXG4gICAgICAgICAgICByb3V0ZVBhdGg6IHNyY1BhZ2UsXG4gICAgICAgICAgICByb3V0ZVR5cGU6ICdyZW5kZXInLFxuICAgICAgICAgICAgcmV2YWxpZGF0ZVJlYXNvbjogZ2V0UmV2YWxpZGF0ZVJlYXNvbih7XG4gICAgICAgICAgICAgICAgaXNSZXZhbGlkYXRlOiBoYXNTdGF0aWNQcm9wcyxcbiAgICAgICAgICAgICAgICBpc09uRGVtYW5kUmV2YWxpZGF0ZVxuICAgICAgICAgICAgfSlcbiAgICAgICAgfSwgcm91dGVyU2VydmVyQ29udGV4dCk7XG4gICAgICAgIC8vIHJldGhyb3cgc28gdGhhdCB3ZSBjYW4gaGFuZGxlIHNlcnZpbmcgZXJyb3IgcGFnZVxuICAgICAgICB0aHJvdyBlcnI7XG4gICAgfVxufVxuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1wYWdlcy5qcy5tYXAiXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(pages-dir-node)/./node_modules/next/dist/build/webpack/loaders/next-route-loader/index.js?kind=PAGES&page=%2F&preferredRegion=&absolutePagePath=.%2Fpages%5Cindex.tsx&absoluteAppPath=private-next-pages%2F_app&absoluteDocumentPath=private-next-pages%2F_document&middlewareConfigBase64=e30%3D!\n"); - -/***/ }), - -/***/ "(pages-dir-node)/./pages/_app.tsx": -/*!************************!*\ - !*** ./pages/_app.tsx ***! - \************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react/jsx-dev-runtime */ \"react/jsx-dev-runtime\");\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _styles_globals_css__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../styles/globals.css */ \"(pages-dir-node)/./styles/globals.css\");\n/* harmony import */ var _styles_globals_css__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_styles_globals_css__WEBPACK_IMPORTED_MODULE_1__);\n\n\nfunction MyApp({ Component, pageProps }) {\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(Component, {\n ...pageProps\n }, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\pages\\\\_app.tsx\",\n lineNumber: 5,\n columnNumber: 10\n }, this);\n}\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (MyApp);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1ub2RlKS8uL3BhZ2VzL19hcHAudHN4IiwibWFwcGluZ3MiOiI7Ozs7Ozs7OztBQUErQjtBQUcvQixTQUFTQSxNQUFNLEVBQUVDLFNBQVMsRUFBRUMsU0FBUyxFQUFZO0lBQy9DLHFCQUFPLDhEQUFDRDtRQUFXLEdBQUdDLFNBQVM7Ozs7OztBQUNqQztBQUVBLGlFQUFlRixLQUFLQSxFQUFDIiwic291cmNlcyI6WyJEOlxcZG9uZ3l1bi1wcm9qZWN0c1xcdHdvXFxwYWdlc1xcX2FwcC50c3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICcuLi9zdHlsZXMvZ2xvYmFscy5jc3MnO1xyXG5pbXBvcnQgdHlwZSB7IEFwcFByb3BzIH0gZnJvbSAnbmV4dC9hcHAnO1xyXG5cclxuZnVuY3Rpb24gTXlBcHAoeyBDb21wb25lbnQsIHBhZ2VQcm9wcyB9OiBBcHBQcm9wcykge1xyXG4gIHJldHVybiA8Q29tcG9uZW50IHsuLi5wYWdlUHJvcHN9IC8+O1xyXG59XHJcblxyXG5leHBvcnQgZGVmYXVsdCBNeUFwcDsiXSwibmFtZXMiOlsiTXlBcHAiLCJDb21wb25lbnQiLCJwYWdlUHJvcHMiXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(pages-dir-node)/./pages/_app.tsx\n"); - -/***/ }), - -/***/ "(pages-dir-node)/./pages/index.tsx": -/*!*************************!*\ - !*** ./pages/index.tsx ***! - \*************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -eval("__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 */ \"react/jsx-dev-runtime\");\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _components_Navbar__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../components/Navbar */ \"(pages-dir-node)/./components/Navbar.tsx\");\n/* harmony import */ var _components_Hero__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../components/Hero */ \"(pages-dir-node)/./components/Hero.tsx\");\n/* harmony import */ var _components_Features__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../components/Features */ \"(pages-dir-node)/./components/Features.tsx\");\n/* harmony import */ var _components_Testimonials__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../components/Testimonials */ \"(pages-dir-node)/./components/Testimonials.tsx\");\n/* harmony import */ var _components_Cta__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../components/Cta */ \"(pages-dir-node)/./components/Cta.tsx\");\n/* harmony import */ var _components_Footer__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../components/Footer */ \"(pages-dir-node)/./components/Footer.tsx\");\n/* harmony import */ var _components_Process__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../components/Process */ \"(pages-dir-node)/./components/Process.tsx\");\n/* harmony import */ var _components_CoreAdvantages__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../components/CoreAdvantages */ \"(pages-dir-node)/./components/CoreAdvantages.tsx\");\n\n\n\n\n\n\n\n\n\nfunction Home() {\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"pt-16 pb-8 bg-background\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_Navbar__WEBPACK_IMPORTED_MODULE_1__[\"default\"], {}, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\pages\\\\index.tsx\",\n lineNumber: 13,\n columnNumber: 7\n }, this),\n /*#__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)(_components_Hero__WEBPACK_IMPORTED_MODULE_2__[\"default\"], {}, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\pages\\\\index.tsx\",\n lineNumber: 15,\n columnNumber: 9\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_Features__WEBPACK_IMPORTED_MODULE_3__[\"default\"], {}, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\pages\\\\index.tsx\",\n lineNumber: 16,\n columnNumber: 9\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_Process__WEBPACK_IMPORTED_MODULE_7__[\"default\"], {}, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\pages\\\\index.tsx\",\n lineNumber: 17,\n columnNumber: 10\n }, this),\n \"+ \",\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_CoreAdvantages__WEBPACK_IMPORTED_MODULE_8__[\"default\"], {}, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\pages\\\\index.tsx\",\n lineNumber: 18,\n columnNumber: 9\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_Testimonials__WEBPACK_IMPORTED_MODULE_4__[\"default\"], {}, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\pages\\\\index.tsx\",\n lineNumber: 19,\n columnNumber: 9\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_Cta__WEBPACK_IMPORTED_MODULE_5__[\"default\"], {}, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\pages\\\\index.tsx\",\n lineNumber: 20,\n columnNumber: 9\n }, this)\n ]\n }, void 0, true, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\pages\\\\index.tsx\",\n lineNumber: 14,\n columnNumber: 7\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_Footer__WEBPACK_IMPORTED_MODULE_6__[\"default\"], {}, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\pages\\\\index.tsx\",\n lineNumber: 22,\n columnNumber: 7\n }, this)\n ]\n }, void 0, true, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\pages\\\\index.tsx\",\n lineNumber: 12,\n columnNumber: 5\n }, this);\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1ub2RlKS8uL3BhZ2VzL2luZGV4LnRzeCIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7QUFBMEM7QUFDSjtBQUNRO0FBQ1E7QUFDbEI7QUFDTTtBQUNFO0FBQ2M7QUFFM0MsU0FBU1E7SUFDdEIscUJBQ0UsOERBQUNDO1FBQUlDLFdBQVU7OzBCQUNiLDhEQUFDViwwREFBTUE7Ozs7OzBCQUNQLDhEQUFDVzs7a0NBQ0MsOERBQUNWLHdEQUFJQTs7Ozs7a0NBQ0wsOERBQUNDLDREQUFRQTs7Ozs7a0NBQ1IsOERBQUNJLDJEQUFPQTs7Ozs7b0JBQUc7a0NBQ1osOERBQUNDLGtFQUFjQTs7Ozs7a0NBQ2YsOERBQUNKLGdFQUFZQTs7Ozs7a0NBQ2IsOERBQUNDLHVEQUFHQTs7Ozs7Ozs7Ozs7MEJBRU4sOERBQUNDLDBEQUFNQTs7Ozs7Ozs7Ozs7QUFHYiIsInNvdXJjZXMiOlsiRDpcXGRvbmd5dW4tcHJvamVjdHNcXHR3b1xccGFnZXNcXGluZGV4LnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgTmF2YmFyIGZyb20gJy4uL2NvbXBvbmVudHMvTmF2YmFyJztcclxuaW1wb3J0IEhlcm8gZnJvbSAnLi4vY29tcG9uZW50cy9IZXJvJztcclxuaW1wb3J0IEZlYXR1cmVzIGZyb20gJy4uL2NvbXBvbmVudHMvRmVhdHVyZXMnO1xyXG5pbXBvcnQgVGVzdGltb25pYWxzIGZyb20gJy4uL2NvbXBvbmVudHMvVGVzdGltb25pYWxzJztcclxuaW1wb3J0IEN0YSBmcm9tICcuLi9jb21wb25lbnRzL0N0YSc7XHJcbmltcG9ydCBGb290ZXIgZnJvbSAnLi4vY29tcG9uZW50cy9Gb290ZXInO1xyXG5pbXBvcnQgUHJvY2VzcyBmcm9tICcuLi9jb21wb25lbnRzL1Byb2Nlc3MnO1xyXG5pbXBvcnQgQ29yZUFkdmFudGFnZXMgZnJvbSAnLi4vY29tcG9uZW50cy9Db3JlQWR2YW50YWdlcyc7XHJcblxyXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBIb21lKCkge1xyXG4gIHJldHVybiAoXHJcbiAgICA8ZGl2IGNsYXNzTmFtZT1cInB0LTE2IHBiLTggYmctYmFja2dyb3VuZFwiPlxyXG4gICAgICA8TmF2YmFyIC8+XHJcbiAgICAgIDxtYWluPlxyXG4gICAgICAgIDxIZXJvIC8+XHJcbiAgICAgICAgPEZlYXR1cmVzIC8+XHJcbiAgICAgICAgIDxQcm9jZXNzIC8+XHJcbisgICAgICAgPENvcmVBZHZhbnRhZ2VzIC8+XHJcbiAgICAgICAgPFRlc3RpbW9uaWFscyAvPlxyXG4gICAgICAgIDxDdGEgLz5cclxuICAgICAgPC9tYWluPlxyXG4gICAgICA8Rm9vdGVyIC8+XHJcbiAgICA8L2Rpdj5cclxuICApO1xyXG59Il0sIm5hbWVzIjpbIk5hdmJhciIsIkhlcm8iLCJGZWF0dXJlcyIsIlRlc3RpbW9uaWFscyIsIkN0YSIsIkZvb3RlciIsIlByb2Nlc3MiLCJDb3JlQWR2YW50YWdlcyIsIkhvbWUiLCJkaXYiLCJjbGFzc05hbWUiLCJtYWluIl0sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(pages-dir-node)/./pages/index.tsx\n"); - -/***/ }), - -/***/ "(pages-dir-node)/./styles/globals.css": -/*!****************************!*\ - !*** ./styles/globals.css ***! - \****************************/ -/***/ (() => { - - - -/***/ }), - -/***/ "(pages-dir-node)/__barrel_optimize__?names=ArrowRight,MessageCircle,Play,Zap!=!./node_modules/lucide-react/dist/cjs/lucide-react.js": -/*!**************************************************************************************************************************!*\ - !*** __barrel_optimize__?names=ArrowRight,MessageCircle,Play,Zap!=!./node_modules/lucide-react/dist/cjs/lucide-react.js ***! - \**************************************************************************************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony import */ var D_dongyun_projects_two_node_modules_lucide_react_dist_cjs_lucide_react_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./node_modules/lucide-react/dist/cjs/lucide-react.js */ "(pages-dir-node)/./node_modules/lucide-react/dist/cjs/lucide-react.js"); -/* harmony reexport (unknown) */ var __WEBPACK_REEXPORT_OBJECT__ = {}; -/* harmony reexport (unknown) */ for(const __WEBPACK_IMPORT_KEY__ in D_dongyun_projects_two_node_modules_lucide_react_dist_cjs_lucide_react_js__WEBPACK_IMPORTED_MODULE_0__) if(__WEBPACK_IMPORT_KEY__ !== "default") __WEBPACK_REEXPORT_OBJECT__[__WEBPACK_IMPORT_KEY__] = () => D_dongyun_projects_two_node_modules_lucide_react_dist_cjs_lucide_react_js__WEBPACK_IMPORTED_MODULE_0__[__WEBPACK_IMPORT_KEY__] -/* harmony reexport (unknown) */ __webpack_require__.d(__webpack_exports__, __WEBPACK_REEXPORT_OBJECT__); - - -/***/ }), - -/***/ "(pages-dir-node)/__barrel_optimize__?names=BarChart,CheckCircle,Clock,Globe,Repeat,Shield,Users,Zap!=!./node_modules/lucide-react/dist/cjs/lucide-react.js": -/*!*************************************************************************************************************************************************!*\ - !*** __barrel_optimize__?names=BarChart,CheckCircle,Clock,Globe,Repeat,Shield,Users,Zap!=!./node_modules/lucide-react/dist/cjs/lucide-react.js ***! - \*************************************************************************************************************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony import */ var D_dongyun_projects_two_node_modules_lucide_react_dist_cjs_lucide_react_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./node_modules/lucide-react/dist/cjs/lucide-react.js */ "(pages-dir-node)/./node_modules/lucide-react/dist/cjs/lucide-react.js"); -/* harmony reexport (unknown) */ var __WEBPACK_REEXPORT_OBJECT__ = {}; -/* harmony reexport (unknown) */ for(const __WEBPACK_IMPORT_KEY__ in D_dongyun_projects_two_node_modules_lucide_react_dist_cjs_lucide_react_js__WEBPACK_IMPORTED_MODULE_0__) if(__WEBPACK_IMPORT_KEY__ !== "default") __WEBPACK_REEXPORT_OBJECT__[__WEBPACK_IMPORT_KEY__] = () => D_dongyun_projects_two_node_modules_lucide_react_dist_cjs_lucide_react_js__WEBPACK_IMPORTED_MODULE_0__[__WEBPACK_IMPORT_KEY__] -/* harmony reexport (unknown) */ __webpack_require__.d(__webpack_exports__, __WEBPACK_REEXPORT_OBJECT__); - - -/***/ }), - -/***/ "(pages-dir-node)/__barrel_optimize__?names=Box,Globe,Headphones,ShieldCheck,UserCheck!=!./node_modules/lucide-react/dist/cjs/lucide-react.js": -/*!***********************************************************************************************************************************!*\ - !*** __barrel_optimize__?names=Box,Globe,Headphones,ShieldCheck,UserCheck!=!./node_modules/lucide-react/dist/cjs/lucide-react.js ***! - \***********************************************************************************************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony import */ var D_dongyun_projects_two_node_modules_lucide_react_dist_cjs_lucide_react_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./node_modules/lucide-react/dist/cjs/lucide-react.js */ "(pages-dir-node)/./node_modules/lucide-react/dist/cjs/lucide-react.js"); -/* harmony reexport (unknown) */ var __WEBPACK_REEXPORT_OBJECT__ = {}; -/* harmony reexport (unknown) */ for(const __WEBPACK_IMPORT_KEY__ in D_dongyun_projects_two_node_modules_lucide_react_dist_cjs_lucide_react_js__WEBPACK_IMPORTED_MODULE_0__) if(__WEBPACK_IMPORT_KEY__ !== "default") __WEBPACK_REEXPORT_OBJECT__[__WEBPACK_IMPORT_KEY__] = () => D_dongyun_projects_two_node_modules_lucide_react_dist_cjs_lucide_react_js__WEBPACK_IMPORTED_MODULE_0__[__WEBPACK_IMPORT_KEY__] -/* harmony reexport (unknown) */ __webpack_require__.d(__webpack_exports__, __WEBPACK_REEXPORT_OBJECT__); - - -/***/ }), - -/***/ "(pages-dir-node)/__barrel_optimize__?names=CheckCircle,Headphones,MessageSquare,UserCheck!=!./node_modules/lucide-react/dist/cjs/lucide-react.js": -/*!***************************************************************************************************************************************!*\ - !*** __barrel_optimize__?names=CheckCircle,Headphones,MessageSquare,UserCheck!=!./node_modules/lucide-react/dist/cjs/lucide-react.js ***! - \***************************************************************************************************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony import */ var D_dongyun_projects_two_node_modules_lucide_react_dist_cjs_lucide_react_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./node_modules/lucide-react/dist/cjs/lucide-react.js */ "(pages-dir-node)/./node_modules/lucide-react/dist/cjs/lucide-react.js"); -/* harmony reexport (unknown) */ var __WEBPACK_REEXPORT_OBJECT__ = {}; -/* harmony reexport (unknown) */ for(const __WEBPACK_IMPORT_KEY__ in D_dongyun_projects_two_node_modules_lucide_react_dist_cjs_lucide_react_js__WEBPACK_IMPORTED_MODULE_0__) if(__WEBPACK_IMPORT_KEY__ !== "default") __WEBPACK_REEXPORT_OBJECT__[__WEBPACK_IMPORT_KEY__] = () => D_dongyun_projects_two_node_modules_lucide_react_dist_cjs_lucide_react_js__WEBPACK_IMPORTED_MODULE_0__[__WEBPACK_IMPORT_KEY__] -/* harmony reexport (unknown) */ __webpack_require__.d(__webpack_exports__, __WEBPACK_REEXPORT_OBJECT__); - - -/***/ }), - -/***/ "(pages-dir-node)/__barrel_optimize__?names=Mail,MessageCircle,Phone!=!./node_modules/lucide-react/dist/cjs/lucide-react.js": -/*!*****************************************************************************************************************!*\ - !*** __barrel_optimize__?names=Mail,MessageCircle,Phone!=!./node_modules/lucide-react/dist/cjs/lucide-react.js ***! - \*****************************************************************************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony import */ var D_dongyun_projects_two_node_modules_lucide_react_dist_cjs_lucide_react_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./node_modules/lucide-react/dist/cjs/lucide-react.js */ "(pages-dir-node)/./node_modules/lucide-react/dist/cjs/lucide-react.js"); -/* harmony reexport (unknown) */ var __WEBPACK_REEXPORT_OBJECT__ = {}; -/* harmony reexport (unknown) */ for(const __WEBPACK_IMPORT_KEY__ in D_dongyun_projects_two_node_modules_lucide_react_dist_cjs_lucide_react_js__WEBPACK_IMPORTED_MODULE_0__) if(__WEBPACK_IMPORT_KEY__ !== "default") __WEBPACK_REEXPORT_OBJECT__[__WEBPACK_IMPORT_KEY__] = () => D_dongyun_projects_two_node_modules_lucide_react_dist_cjs_lucide_react_js__WEBPACK_IMPORTED_MODULE_0__[__WEBPACK_IMPORT_KEY__] -/* harmony reexport (unknown) */ __webpack_require__.d(__webpack_exports__, __WEBPACK_REEXPORT_OBJECT__); - - -/***/ }), - -/***/ "(pages-dir-node)/__barrel_optimize__?names=Menu!=!./node_modules/lucide-react/dist/cjs/lucide-react.js": -/*!*********************************************************************************************!*\ - !*** __barrel_optimize__?names=Menu!=!./node_modules/lucide-react/dist/cjs/lucide-react.js ***! - \*********************************************************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony import */ var D_dongyun_projects_two_node_modules_lucide_react_dist_cjs_lucide_react_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./node_modules/lucide-react/dist/cjs/lucide-react.js */ "(pages-dir-node)/./node_modules/lucide-react/dist/cjs/lucide-react.js"); -/* harmony reexport (unknown) */ var __WEBPACK_REEXPORT_OBJECT__ = {}; -/* harmony reexport (unknown) */ for(const __WEBPACK_IMPORT_KEY__ in D_dongyun_projects_two_node_modules_lucide_react_dist_cjs_lucide_react_js__WEBPACK_IMPORTED_MODULE_0__) if(__WEBPACK_IMPORT_KEY__ !== "default") __WEBPACK_REEXPORT_OBJECT__[__WEBPACK_IMPORT_KEY__] = () => D_dongyun_projects_two_node_modules_lucide_react_dist_cjs_lucide_react_js__WEBPACK_IMPORTED_MODULE_0__[__WEBPACK_IMPORT_KEY__] -/* harmony reexport (unknown) */ __webpack_require__.d(__webpack_exports__, __WEBPACK_REEXPORT_OBJECT__); - - -/***/ }), - -/***/ "next/dist/compiled/next-server/pages.runtime.dev.js": -/*!**********************************************************************!*\ - !*** external "next/dist/compiled/next-server/pages.runtime.dev.js" ***! - \**********************************************************************/ -/***/ ((module) => { - -"use strict"; -module.exports = require("next/dist/compiled/next-server/pages.runtime.dev.js"); - -/***/ }), - -/***/ "next/dist/shared/lib/no-fallback-error.external": -/*!******************************************************************!*\ - !*** external "next/dist/shared/lib/no-fallback-error.external" ***! - \******************************************************************/ -/***/ ((module) => { - -"use strict"; -module.exports = require("next/dist/shared/lib/no-fallback-error.external"); - -/***/ }), - -/***/ "next/dist/shared/lib/page-path/normalize-data-path": -/*!*********************************************************************!*\ - !*** external "next/dist/shared/lib/page-path/normalize-data-path" ***! - \*********************************************************************/ -/***/ ((module) => { - -"use strict"; -module.exports = require("next/dist/shared/lib/page-path/normalize-data-path"); - -/***/ }), - -/***/ "next/dist/shared/lib/router/utils/add-path-prefix": -/*!********************************************************************!*\ - !*** external "next/dist/shared/lib/router/utils/add-path-prefix" ***! - \********************************************************************/ -/***/ ((module) => { - -"use strict"; -module.exports = require("next/dist/shared/lib/router/utils/add-path-prefix"); - -/***/ }), - -/***/ "next/dist/shared/lib/router/utils/format-url": -/*!***************************************************************!*\ - !*** external "next/dist/shared/lib/router/utils/format-url" ***! - \***************************************************************/ -/***/ ((module) => { - -"use strict"; -module.exports = require("next/dist/shared/lib/router/utils/format-url"); - -/***/ }), - -/***/ "next/dist/shared/lib/router/utils/is-bot": -/*!***********************************************************!*\ - !*** external "next/dist/shared/lib/router/utils/is-bot" ***! - \***********************************************************/ -/***/ ((module) => { - -"use strict"; -module.exports = require("next/dist/shared/lib/router/utils/is-bot"); - -/***/ }), - -/***/ "next/dist/shared/lib/router/utils/remove-trailing-slash": -/*!**************************************************************************!*\ - !*** external "next/dist/shared/lib/router/utils/remove-trailing-slash" ***! - \**************************************************************************/ -/***/ ((module) => { - -"use strict"; -module.exports = require("next/dist/shared/lib/router/utils/remove-trailing-slash"); - -/***/ }), - -/***/ "next/dist/shared/lib/utils": -/*!*********************************************!*\ - !*** external "next/dist/shared/lib/utils" ***! - \*********************************************/ -/***/ ((module) => { - -"use strict"; -module.exports = require("next/dist/shared/lib/utils"); - -/***/ }), - -/***/ "path": -/*!***********************!*\ - !*** external "path" ***! - \***********************/ -/***/ ((module) => { - -"use strict"; -module.exports = require("path"); - -/***/ }), - -/***/ "react": -/*!************************!*\ - !*** external "react" ***! - \************************/ -/***/ ((module) => { - -"use strict"; -module.exports = require("react"); - -/***/ }), - -/***/ "react/jsx-dev-runtime": -/*!****************************************!*\ - !*** external "react/jsx-dev-runtime" ***! - \****************************************/ -/***/ ((module) => { - -"use strict"; -module.exports = require("react/jsx-dev-runtime"); - -/***/ }), - -/***/ "react/jsx-runtime": -/*!************************************!*\ - !*** external "react/jsx-runtime" ***! - \************************************/ -/***/ ((module) => { - -"use strict"; -module.exports = require("react/jsx-runtime"); - -/***/ }) - -}; -; - -// load runtime -var __webpack_require__ = require("../webpack-runtime.js"); -__webpack_require__.C(exports); -var __webpack_exec__ = (moduleId) => (__webpack_require__(__webpack_require__.s = moduleId)) -var __webpack_exports__ = __webpack_require__.X(0, ["vendor-chunks/next","vendor-chunks/@swc","vendor-chunks/lucide-react"], () => (__webpack_exec__("(pages-dir-node)/./node_modules/next/dist/build/webpack/loaders/next-route-loader/index.js?kind=PAGES&page=%2F&preferredRegion=&absolutePagePath=.%2Fpages%5Cindex.tsx&absoluteAppPath=private-next-pages%2F_app&absoluteDocumentPath=private-next-pages%2F_document&middlewareConfigBase64=e30%3D!"))); -module.exports = __webpack_exports__; - -})(); \ No newline at end of file diff --git a/build/server/pages/news.js b/build/server/pages/news.js deleted file mode 100644 index 2780d0b..0000000 --- a/build/server/pages/news.js +++ /dev/null @@ -1,341 +0,0 @@ -/* - * ATTENTION: An "eval-source-map" devtool has been used. - * This devtool is neither made for production nor for readable output files. - * It uses "eval()" calls to create a separate source file with attached SourceMaps in the browser devtools. - * If you are trying to read the output file, select a different devtool (https://webpack.js.org/configuration/devtool/) - * or disable the default devtool with "devtool: false". - * If you are looking for production-ready output files, see mode: "production" (https://webpack.js.org/configuration/mode/). - */ -(() => { -var exports = {}; -exports.id = "pages/news"; -exports.ids = ["pages/news"]; -exports.modules = { - -/***/ "(pages-dir-node)/./components/Footer.tsx": -/*!*******************************!*\ - !*** ./components/Footer.tsx ***! - \*******************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ Footer)\n/* harmony export */ });\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react/jsx-dev-runtime */ \"react/jsx-dev-runtime\");\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _barrel_optimize_names_Mail_MessageCircle_Phone_lucide_react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! __barrel_optimize__?names=Mail,MessageCircle,Phone!=!lucide-react */ \"(pages-dir-node)/__barrel_optimize__?names=Mail,MessageCircle,Phone!=!./node_modules/lucide-react/dist/cjs/lucide-react.js\");\n\n\nfunction Footer() {\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"footer\", {\n className: \"bg-gray-900 text-white py-12\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"max-w-screen-xl mx-auto px-6\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"grid grid-cols-1 md:grid-cols-4 gap-8\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"md:col-span-2\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"h3\", {\n className: \"text-2xl font-bold mb-4\",\n children: \"Pinnovate Cloud\"\n }, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\Footer.tsx\",\n lineNumber: 10,\n columnNumber: 13\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"p\", {\n className: \"text-gray-300 mb-6 max-w-md\",\n children: \"专业的云加速服务提供商,为全球企业提供高性能、安全可靠的网络加速解决方案。\"\n }, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\Footer.tsx\",\n lineNumber: 11,\n columnNumber: 13\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"space-y-3\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex items-center gap-3\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_barrel_optimize_names_Mail_MessageCircle_Phone_lucide_react__WEBPACK_IMPORTED_MODULE_1__.Mail, {\n className: \"w-5 h-5 text-accent\"\n }, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\Footer.tsx\",\n lineNumber: 16,\n columnNumber: 17\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"a\", {\n href: \"mailto:support@pinnovatecloud.com\",\n className: \"text-gray-300 hover:text-white transition-colors\",\n children: \"support@pinnovatecloud.com\"\n }, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\Footer.tsx\",\n lineNumber: 17,\n columnNumber: 17\n }, this)\n ]\n }, void 0, true, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\Footer.tsx\",\n lineNumber: 15,\n columnNumber: 15\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex items-center gap-3\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_barrel_optimize_names_Mail_MessageCircle_Phone_lucide_react__WEBPACK_IMPORTED_MODULE_1__.Phone, {\n className: \"w-5 h-5 text-accent\"\n }, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\Footer.tsx\",\n lineNumber: 22,\n columnNumber: 17\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"a\", {\n href: \"https://wa.me/19174029875\",\n className: \"text-gray-300 hover:text-white transition-colors\",\n children: \"+1 917-402-9875\"\n }, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\Footer.tsx\",\n lineNumber: 23,\n columnNumber: 17\n }, this)\n ]\n }, void 0, true, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\Footer.tsx\",\n lineNumber: 21,\n columnNumber: 15\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex items-center gap-3\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_barrel_optimize_names_Mail_MessageCircle_Phone_lucide_react__WEBPACK_IMPORTED_MODULE_1__.MessageCircle, {\n className: \"w-5 h-5 text-accent\"\n }, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\Footer.tsx\",\n lineNumber: 28,\n columnNumber: 17\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"a\", {\n href: \"https://t.me/pinnovatecloud\",\n className: \"text-gray-300 hover:text-white transition-colors\",\n children: \"@pinnovatecloud\"\n }, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\Footer.tsx\",\n lineNumber: 29,\n columnNumber: 17\n }, this)\n ]\n }, void 0, true, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\Footer.tsx\",\n lineNumber: 27,\n columnNumber: 15\n }, this)\n ]\n }, void 0, true, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\Footer.tsx\",\n lineNumber: 14,\n columnNumber: 13\n }, this)\n ]\n }, void 0, true, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\Footer.tsx\",\n lineNumber: 9,\n columnNumber: 11\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)(\"h4\", {\n className: \"text-lg font-semibold mb-4\",\n children: \"服务\"\n }, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\Footer.tsx\",\n lineNumber: 38,\n columnNumber: 13\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"ul\", {\n className: \"space-y-2\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"li\", {\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"a\", {\n href: \"/features\",\n className: \"text-gray-300 hover:text-white transition-colors\",\n children: \"产品特性\"\n }, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\Footer.tsx\",\n lineNumber: 40,\n columnNumber: 19\n }, this)\n }, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\Footer.tsx\",\n lineNumber: 40,\n columnNumber: 15\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"li\", {\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"a\", {\n href: \"/pricing\",\n className: \"text-gray-300 hover:text-white transition-colors\",\n children: \"定价方案\"\n }, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\Footer.tsx\",\n lineNumber: 41,\n columnNumber: 19\n }, this)\n }, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\Footer.tsx\",\n lineNumber: 41,\n columnNumber: 15\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"li\", {\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"a\", {\n href: \"/cases\",\n className: \"text-gray-300 hover:text-white transition-colors\",\n children: \"客户案例\"\n }, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\Footer.tsx\",\n lineNumber: 42,\n columnNumber: 19\n }, this)\n }, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\Footer.tsx\",\n lineNumber: 42,\n columnNumber: 15\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"li\", {\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"a\", {\n href: \"/news\",\n className: \"text-gray-300 hover:text-white transition-colors\",\n children: \"新闻资讯\"\n }, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\Footer.tsx\",\n lineNumber: 43,\n columnNumber: 19\n }, this)\n }, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\Footer.tsx\",\n lineNumber: 43,\n columnNumber: 15\n }, this)\n ]\n }, void 0, true, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\Footer.tsx\",\n lineNumber: 39,\n columnNumber: 13\n }, this)\n ]\n }, void 0, true, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\Footer.tsx\",\n lineNumber: 37,\n columnNumber: 11\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)(\"h4\", {\n className: \"text-lg font-semibold mb-4\",\n children: \"支持\"\n }, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\Footer.tsx\",\n lineNumber: 49,\n columnNumber: 13\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"ul\", {\n className: \"space-y-2\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"li\", {\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"a\", {\n href: \"/contact\",\n className: \"text-gray-300 hover:text-white transition-colors\",\n children: \"联系我们\"\n }, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\Footer.tsx\",\n lineNumber: 51,\n columnNumber: 19\n }, this)\n }, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\Footer.tsx\",\n lineNumber: 51,\n columnNumber: 15\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"li\", {\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"a\", {\n href: \"/about\",\n className: \"text-gray-300 hover:text-white transition-colors\",\n children: \"关于我们\"\n }, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\Footer.tsx\",\n lineNumber: 52,\n columnNumber: 19\n }, this)\n }, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\Footer.tsx\",\n lineNumber: 52,\n columnNumber: 15\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"li\", {\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"a\", {\n href: \"#\",\n className: \"text-gray-300 hover:text-white transition-colors\",\n children: \"帮助中心\"\n }, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\Footer.tsx\",\n lineNumber: 53,\n columnNumber: 19\n }, this)\n }, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\Footer.tsx\",\n lineNumber: 53,\n columnNumber: 15\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"li\", {\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"a\", {\n href: \"#\",\n className: \"text-gray-300 hover:text-white transition-colors\",\n children: \"API 文档\"\n }, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\Footer.tsx\",\n lineNumber: 54,\n columnNumber: 19\n }, this)\n }, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\Footer.tsx\",\n lineNumber: 54,\n columnNumber: 15\n }, this)\n ]\n }, void 0, true, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\Footer.tsx\",\n lineNumber: 50,\n columnNumber: 13\n }, this)\n ]\n }, void 0, true, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\Footer.tsx\",\n lineNumber: 48,\n columnNumber: 11\n }, this)\n ]\n }, void 0, true, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\Footer.tsx\",\n lineNumber: 7,\n columnNumber: 9\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"border-t border-gray-700 mt-8 pt-8 flex flex-col md:flex-row justify-between items-center\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"p\", {\n className: \"text-gray-400 text-sm\",\n children: \"\\xa9 2025 Pinnovate Cloud. 保留所有权利。\"\n }, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\Footer.tsx\",\n lineNumber: 60,\n columnNumber: 11\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex space-x-6 mt-4 md:mt-0\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"a\", {\n href: \"https://t.me/pinnovatecloud\",\n className: \"text-gray-400 hover:text-white transition-colors\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_barrel_optimize_names_Mail_MessageCircle_Phone_lucide_react__WEBPACK_IMPORTED_MODULE_1__.MessageCircle, {\n className: \"w-5 h-5\"\n }, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\Footer.tsx\",\n lineNumber: 65,\n columnNumber: 15\n }, this)\n }, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\Footer.tsx\",\n lineNumber: 64,\n columnNumber: 13\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"a\", {\n href: \"https://wa.me/19174029875\",\n className: \"text-gray-400 hover:text-white transition-colors\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_barrel_optimize_names_Mail_MessageCircle_Phone_lucide_react__WEBPACK_IMPORTED_MODULE_1__.Phone, {\n className: \"w-5 h-5\"\n }, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\Footer.tsx\",\n lineNumber: 68,\n columnNumber: 15\n }, this)\n }, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\Footer.tsx\",\n lineNumber: 67,\n columnNumber: 13\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"a\", {\n href: \"mailto:support@pinnovatecloud.com\",\n className: \"text-gray-400 hover:text-white transition-colors\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_barrel_optimize_names_Mail_MessageCircle_Phone_lucide_react__WEBPACK_IMPORTED_MODULE_1__.Mail, {\n className: \"w-5 h-5\"\n }, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\Footer.tsx\",\n lineNumber: 71,\n columnNumber: 15\n }, this)\n }, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\Footer.tsx\",\n lineNumber: 70,\n columnNumber: 13\n }, this)\n ]\n }, void 0, true, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\Footer.tsx\",\n lineNumber: 63,\n columnNumber: 11\n }, this)\n ]\n }, void 0, true, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\Footer.tsx\",\n lineNumber: 59,\n columnNumber: 9\n }, this)\n ]\n }, void 0, true, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\Footer.tsx\",\n lineNumber: 6,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\Footer.tsx\",\n lineNumber: 5,\n columnNumber: 5\n }, this);\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1ub2RlKS8uL2NvbXBvbmVudHMvRm9vdGVyLnRzeCIsIm1hcHBpbmdzIjoiOzs7Ozs7OztBQUEwRDtBQUUzQyxTQUFTRztJQUN0QixxQkFDRSw4REFBQ0M7UUFBT0MsV0FBVTtrQkFDaEIsNEVBQUNDO1lBQUlELFdBQVU7OzhCQUNiLDhEQUFDQztvQkFBSUQsV0FBVTs7c0NBRWIsOERBQUNDOzRCQUFJRCxXQUFVOzs4Q0FDYiw4REFBQ0U7b0NBQUdGLFdBQVU7OENBQTBCOzs7Ozs7OENBQ3hDLDhEQUFDRztvQ0FBRUgsV0FBVTs4Q0FBOEI7Ozs7Ozs4Q0FHM0MsOERBQUNDO29DQUFJRCxXQUFVOztzREFDYiw4REFBQ0M7NENBQUlELFdBQVU7OzhEQUNiLDhEQUFDTCw4RkFBSUE7b0RBQUNLLFdBQVU7Ozs7Ozs4REFDaEIsOERBQUNJO29EQUFFQyxNQUFLO29EQUFvQ0wsV0FBVTs4REFBbUQ7Ozs7Ozs7Ozs7OztzREFJM0csOERBQUNDOzRDQUFJRCxXQUFVOzs4REFDYiw4REFBQ0gsK0ZBQUtBO29EQUFDRyxXQUFVOzs7Ozs7OERBQ2pCLDhEQUFDSTtvREFBRUMsTUFBSztvREFBNEJMLFdBQVU7OERBQW1EOzs7Ozs7Ozs7Ozs7c0RBSW5HLDhEQUFDQzs0Q0FBSUQsV0FBVTs7OERBQ2IsOERBQUNKLHVHQUFhQTtvREFBQ0ksV0FBVTs7Ozs7OzhEQUN6Qiw4REFBQ0k7b0RBQUVDLE1BQUs7b0RBQThCTCxXQUFVOzhEQUFtRDs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O3NDQVF6Ryw4REFBQ0M7OzhDQUNDLDhEQUFDSztvQ0FBR04sV0FBVTs4Q0FBNkI7Ozs7Ozs4Q0FDM0MsOERBQUNPO29DQUFHUCxXQUFVOztzREFDWiw4REFBQ1E7c0RBQUcsNEVBQUNKO2dEQUFFQyxNQUFLO2dEQUFZTCxXQUFVOzBEQUFtRDs7Ozs7Ozs7Ozs7c0RBQ3JGLDhEQUFDUTtzREFBRyw0RUFBQ0o7Z0RBQUVDLE1BQUs7Z0RBQVdMLFdBQVU7MERBQW1EOzs7Ozs7Ozs7OztzREFDcEYsOERBQUNRO3NEQUFHLDRFQUFDSjtnREFBRUMsTUFBSztnREFBU0wsV0FBVTswREFBbUQ7Ozs7Ozs7Ozs7O3NEQUNsRiw4REFBQ1E7c0RBQUcsNEVBQUNKO2dEQUFFQyxNQUFLO2dEQUFRTCxXQUFVOzBEQUFtRDs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7c0NBS3JGLDhEQUFDQzs7OENBQ0MsOERBQUNLO29DQUFHTixXQUFVOzhDQUE2Qjs7Ozs7OzhDQUMzQyw4REFBQ087b0NBQUdQLFdBQVU7O3NEQUNaLDhEQUFDUTtzREFBRyw0RUFBQ0o7Z0RBQUVDLE1BQUs7Z0RBQVdMLFdBQVU7MERBQW1EOzs7Ozs7Ozs7OztzREFDcEYsOERBQUNRO3NEQUFHLDRFQUFDSjtnREFBRUMsTUFBSztnREFBU0wsV0FBVTswREFBbUQ7Ozs7Ozs7Ozs7O3NEQUNsRiw4REFBQ1E7c0RBQUcsNEVBQUNKO2dEQUFFQyxNQUFLO2dEQUFJTCxXQUFVOzBEQUFtRDs7Ozs7Ozs7Ozs7c0RBQzdFLDhEQUFDUTtzREFBRyw0RUFBQ0o7Z0RBQUVDLE1BQUs7Z0RBQUlMLFdBQVU7MERBQW1EOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs4QkFLbkYsOERBQUNDO29CQUFJRCxXQUFVOztzQ0FDYiw4REFBQ0c7NEJBQUVILFdBQVU7c0NBQXdCOzs7Ozs7c0NBR3JDLDhEQUFDQzs0QkFBSUQsV0FBVTs7OENBQ2IsOERBQUNJO29DQUFFQyxNQUFLO29DQUE4QkwsV0FBVTs4Q0FDOUMsNEVBQUNKLHVHQUFhQTt3Q0FBQ0ksV0FBVTs7Ozs7Ozs7Ozs7OENBRTNCLDhEQUFDSTtvQ0FBRUMsTUFBSztvQ0FBNEJMLFdBQVU7OENBQzVDLDRFQUFDSCwrRkFBS0E7d0NBQUNHLFdBQVU7Ozs7Ozs7Ozs7OzhDQUVuQiw4REFBQ0k7b0NBQUVDLE1BQUs7b0NBQW9DTCxXQUFVOzhDQUNwRCw0RUFBQ0wsOEZBQUlBO3dDQUFDSyxXQUFVOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBTzlCIiwic291cmNlcyI6WyJEOlxcZG9uZ3l1bi1wcm9qZWN0c1xcdHdvXFxjb21wb25lbnRzXFxGb290ZXIudHN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE1haWwsIE1lc3NhZ2VDaXJjbGUsIFBob25lIH0gZnJvbSAnbHVjaWRlLXJlYWN0JztcclxuXHJcbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIEZvb3RlcigpIHtcclxuICByZXR1cm4gKFxyXG4gICAgPGZvb3RlciBjbGFzc05hbWU9XCJiZy1ncmF5LTkwMCB0ZXh0LXdoaXRlIHB5LTEyXCI+XHJcbiAgICAgIDxkaXYgY2xhc3NOYW1lPVwibWF4LXctc2NyZWVuLXhsIG14LWF1dG8gcHgtNlwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZ3JpZCBncmlkLWNvbHMtMSBtZDpncmlkLWNvbHMtNCBnYXAtOFwiPlxyXG4gICAgICAgICAgey8qIOWFrOWPuOS/oeaBryAqL31cclxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwibWQ6Y29sLXNwYW4tMlwiPlxyXG4gICAgICAgICAgICA8aDMgY2xhc3NOYW1lPVwidGV4dC0yeGwgZm9udC1ib2xkIG1iLTRcIj5QaW5ub3ZhdGUgQ2xvdWQ8L2gzPlxyXG4gICAgICAgICAgICA8cCBjbGFzc05hbWU9XCJ0ZXh0LWdyYXktMzAwIG1iLTYgbWF4LXctbWRcIj5cclxuICAgICAgICAgICAgICDkuJPkuJrnmoTkupHliqDpgJ/mnI3liqHmj5DkvpvllYbvvIzkuLrlhajnkIPkvIHkuJrmj5Dkvpvpq5jmgKfog73jgIHlronlhajlj6/pnaDnmoTnvZHnu5zliqDpgJ/op6PlhrPmlrnmoYjjgIJcclxuICAgICAgICAgICAgPC9wPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInNwYWNlLXktM1wiPlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZmxleCBpdGVtcy1jZW50ZXIgZ2FwLTNcIj5cclxuICAgICAgICAgICAgICAgIDxNYWlsIGNsYXNzTmFtZT1cInctNSBoLTUgdGV4dC1hY2NlbnRcIiAvPlxyXG4gICAgICAgICAgICAgICAgPGEgaHJlZj1cIm1haWx0bzpzdXBwb3J0QHBpbm5vdmF0ZWNsb3VkLmNvbVwiIGNsYXNzTmFtZT1cInRleHQtZ3JheS0zMDAgaG92ZXI6dGV4dC13aGl0ZSB0cmFuc2l0aW9uLWNvbG9yc1wiPlxyXG4gICAgICAgICAgICAgICAgICBzdXBwb3J0QHBpbm5vdmF0ZWNsb3VkLmNvbVxyXG4gICAgICAgICAgICAgICAgPC9hPlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZmxleCBpdGVtcy1jZW50ZXIgZ2FwLTNcIj5cclxuICAgICAgICAgICAgICAgIDxQaG9uZSBjbGFzc05hbWU9XCJ3LTUgaC01IHRleHQtYWNjZW50XCIgLz5cclxuICAgICAgICAgICAgICAgIDxhIGhyZWY9XCJodHRwczovL3dhLm1lLzE5MTc0MDI5ODc1XCIgY2xhc3NOYW1lPVwidGV4dC1ncmF5LTMwMCBob3Zlcjp0ZXh0LXdoaXRlIHRyYW5zaXRpb24tY29sb3JzXCI+XHJcbiAgICAgICAgICAgICAgICAgICsxIDkxNy00MDItOTg3NVxyXG4gICAgICAgICAgICAgICAgPC9hPlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZmxleCBpdGVtcy1jZW50ZXIgZ2FwLTNcIj5cclxuICAgICAgICAgICAgICAgIDxNZXNzYWdlQ2lyY2xlIGNsYXNzTmFtZT1cInctNSBoLTUgdGV4dC1hY2NlbnRcIiAvPlxyXG4gICAgICAgICAgICAgICAgPGEgaHJlZj1cImh0dHBzOi8vdC5tZS9waW5ub3ZhdGVjbG91ZFwiIGNsYXNzTmFtZT1cInRleHQtZ3JheS0zMDAgaG92ZXI6dGV4dC13aGl0ZSB0cmFuc2l0aW9uLWNvbG9yc1wiPlxyXG4gICAgICAgICAgICAgICAgICBAcGlubm92YXRlY2xvdWRcclxuICAgICAgICAgICAgICAgIDwvYT5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICB7Lyog5pyN5Yqh6ZO+5o6lICovfVxyXG4gICAgICAgICAgPGRpdj5cclxuICAgICAgICAgICAgPGg0IGNsYXNzTmFtZT1cInRleHQtbGcgZm9udC1zZW1pYm9sZCBtYi00XCI+5pyN5YqhPC9oND5cclxuICAgICAgICAgICAgPHVsIGNsYXNzTmFtZT1cInNwYWNlLXktMlwiPlxyXG4gICAgICAgICAgICAgIDxsaT48YSBocmVmPVwiL2ZlYXR1cmVzXCIgY2xhc3NOYW1lPVwidGV4dC1ncmF5LTMwMCBob3Zlcjp0ZXh0LXdoaXRlIHRyYW5zaXRpb24tY29sb3JzXCI+5Lqn5ZOB54m55oCnPC9hPjwvbGk+XHJcbiAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9XCIvcHJpY2luZ1wiIGNsYXNzTmFtZT1cInRleHQtZ3JheS0zMDAgaG92ZXI6dGV4dC13aGl0ZSB0cmFuc2l0aW9uLWNvbG9yc1wiPuWumuS7t+aWueahiDwvYT48L2xpPlxyXG4gICAgICAgICAgICAgIDxsaT48YSBocmVmPVwiL2Nhc2VzXCIgY2xhc3NOYW1lPVwidGV4dC1ncmF5LTMwMCBob3Zlcjp0ZXh0LXdoaXRlIHRyYW5zaXRpb24tY29sb3JzXCI+5a6i5oi35qGI5L6LPC9hPjwvbGk+XHJcbiAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9XCIvbmV3c1wiIGNsYXNzTmFtZT1cInRleHQtZ3JheS0zMDAgaG92ZXI6dGV4dC13aGl0ZSB0cmFuc2l0aW9uLWNvbG9yc1wiPuaWsOmXu+i1hOiurzwvYT48L2xpPlxyXG4gICAgICAgICAgICA8L3VsPlxyXG4gICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgey8qIOaUr+aMgemTvuaOpSAqL31cclxuICAgICAgICAgIDxkaXY+XHJcbiAgICAgICAgICAgIDxoNCBjbGFzc05hbWU9XCJ0ZXh0LWxnIGZvbnQtc2VtaWJvbGQgbWItNFwiPuaUr+aMgTwvaDQ+XHJcbiAgICAgICAgICAgIDx1bCBjbGFzc05hbWU9XCJzcGFjZS15LTJcIj5cclxuICAgICAgICAgICAgICA8bGk+PGEgaHJlZj1cIi9jb250YWN0XCIgY2xhc3NOYW1lPVwidGV4dC1ncmF5LTMwMCBob3Zlcjp0ZXh0LXdoaXRlIHRyYW5zaXRpb24tY29sb3JzXCI+6IGU57O75oiR5LusPC9hPjwvbGk+XHJcbiAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9XCIvYWJvdXRcIiBjbGFzc05hbWU9XCJ0ZXh0LWdyYXktMzAwIGhvdmVyOnRleHQtd2hpdGUgdHJhbnNpdGlvbi1jb2xvcnNcIj7lhbPkuo7miJHku6w8L2E+PC9saT5cclxuICAgICAgICAgICAgICA8bGk+PGEgaHJlZj1cIiNcIiBjbGFzc05hbWU9XCJ0ZXh0LWdyYXktMzAwIGhvdmVyOnRleHQtd2hpdGUgdHJhbnNpdGlvbi1jb2xvcnNcIj7luK7liqnkuK3lv4M8L2E+PC9saT5cclxuICAgICAgICAgICAgICA8bGk+PGEgaHJlZj1cIiNcIiBjbGFzc05hbWU9XCJ0ZXh0LWdyYXktMzAwIGhvdmVyOnRleHQtd2hpdGUgdHJhbnNpdGlvbi1jb2xvcnNcIj5BUEkg5paH5qGjPC9hPjwvbGk+XHJcbiAgICAgICAgICAgIDwvdWw+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJib3JkZXItdCBib3JkZXItZ3JheS03MDAgbXQtOCBwdC04IGZsZXggZmxleC1jb2wgbWQ6ZmxleC1yb3cganVzdGlmeS1iZXR3ZWVuIGl0ZW1zLWNlbnRlclwiPlxyXG4gICAgICAgICAgPHAgY2xhc3NOYW1lPVwidGV4dC1ncmF5LTQwMCB0ZXh0LXNtXCI+XHJcbiAgICAgICAgICAgICZjb3B5OyAyMDI1IFBpbm5vdmF0ZSBDbG91ZC4g5L+d55WZ5omA5pyJ5p2D5Yip44CCXHJcbiAgICAgICAgICA8L3A+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImZsZXggc3BhY2UteC02IG10LTQgbWQ6bXQtMFwiPlxyXG4gICAgICAgICAgICA8YSBocmVmPVwiaHR0cHM6Ly90Lm1lL3Bpbm5vdmF0ZWNsb3VkXCIgY2xhc3NOYW1lPVwidGV4dC1ncmF5LTQwMCBob3Zlcjp0ZXh0LXdoaXRlIHRyYW5zaXRpb24tY29sb3JzXCI+XHJcbiAgICAgICAgICAgICAgPE1lc3NhZ2VDaXJjbGUgY2xhc3NOYW1lPVwidy01IGgtNVwiIC8+XHJcbiAgICAgICAgICAgIDwvYT5cclxuICAgICAgICAgICAgPGEgaHJlZj1cImh0dHBzOi8vd2EubWUvMTkxNzQwMjk4NzVcIiBjbGFzc05hbWU9XCJ0ZXh0LWdyYXktNDAwIGhvdmVyOnRleHQtd2hpdGUgdHJhbnNpdGlvbi1jb2xvcnNcIj5cclxuICAgICAgICAgICAgICA8UGhvbmUgY2xhc3NOYW1lPVwidy01IGgtNVwiIC8+XHJcbiAgICAgICAgICAgIDwvYT5cclxuICAgICAgICAgICAgPGEgaHJlZj1cIm1haWx0bzpzdXBwb3J0QHBpbm5vdmF0ZWNsb3VkLmNvbVwiIGNsYXNzTmFtZT1cInRleHQtZ3JheS00MDAgaG92ZXI6dGV4dC13aGl0ZSB0cmFuc2l0aW9uLWNvbG9yc1wiPlxyXG4gICAgICAgICAgICAgIDxNYWlsIGNsYXNzTmFtZT1cInctNSBoLTVcIiAvPlxyXG4gICAgICAgICAgICA8L2E+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L2Zvb3Rlcj5cclxuICApO1xyXG59Il0sIm5hbWVzIjpbIk1haWwiLCJNZXNzYWdlQ2lyY2xlIiwiUGhvbmUiLCJGb290ZXIiLCJmb290ZXIiLCJjbGFzc05hbWUiLCJkaXYiLCJoMyIsInAiLCJhIiwiaHJlZiIsImg0IiwidWwiLCJsaSJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(pages-dir-node)/./components/Footer.tsx\n"); - -/***/ }), - -/***/ "(pages-dir-node)/./components/Navbar.tsx": -/*!*******************************!*\ - !*** ./components/Navbar.tsx ***! - \*******************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ Navbar)\n/* harmony export */ });\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react/jsx-dev-runtime */ \"react/jsx-dev-runtime\");\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react */ \"react\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var next_link__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! next/link */ \"(pages-dir-node)/./node_modules/next/link.js\");\n/* harmony import */ var next_link__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(next_link__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var _barrel_optimize_names_Menu_lucide_react__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! __barrel_optimize__?names=Menu!=!lucide-react */ \"(pages-dir-node)/__barrel_optimize__?names=Menu!=!./node_modules/lucide-react/dist/cjs/lucide-react.js\");\n/* harmony import */ var _Sidebar__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./Sidebar */ \"(pages-dir-node)/./components/Sidebar.tsx\");\n\n\n\n\n\nfunction Navbar() {\n const [open, setOpen] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(false);\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"header\", {\n className: \"fixed top-0 left-0 w-full bg-background shadow-sm z-50\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"container mx-auto flex items-center justify-between h-16 px-4\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex items-center space-x-4\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"button\", {\n className: \"md:hidden p-2 focus:outline-none\",\n onClick: ()=>setOpen(true),\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_barrel_optimize_names_Menu_lucide_react__WEBPACK_IMPORTED_MODULE_4__.Menu, {\n className: \"h-6 w-6 text-primary\"\n }, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\Navbar.tsx\",\n lineNumber: 16,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\Navbar.tsx\",\n lineNumber: 15,\n columnNumber: 11\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)((next_link__WEBPACK_IMPORTED_MODULE_2___default()), {\n href: \"/\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"img\", {\n src: \"/logo.png\",\n alt: \"CloudProxy\",\n className: \"h-8 w-8\"\n }, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\Navbar.tsx\",\n lineNumber: 19,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\Navbar.tsx\",\n lineNumber: 18,\n columnNumber: 11\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"nav\", {\n className: \"hidden md:flex items-center space-x-4\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)((next_link__WEBPACK_IMPORTED_MODULE_2___default()), {\n href: \"/\",\n className: \"text-primary font-semibold\",\n children: \"首页\"\n }, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\Navbar.tsx\",\n lineNumber: 23,\n columnNumber: 13\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)((next_link__WEBPACK_IMPORTED_MODULE_2___default()), {\n href: \"/features\",\n className: \"text-gray-600 hover:text-primary\",\n children: \"产品与服务\"\n }, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\Navbar.tsx\",\n lineNumber: 24,\n columnNumber: 13\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)((next_link__WEBPACK_IMPORTED_MODULE_2___default()), {\n href: \"/news\",\n className: \"text-gray-600 hover:text-primary\",\n children: \"新闻资讯\"\n }, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\Navbar.tsx\",\n lineNumber: 25,\n columnNumber: 13\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)((next_link__WEBPACK_IMPORTED_MODULE_2___default()), {\n href: \"/cases\",\n className: \"text-gray-600 hover:text-primary\",\n children: \"客户案例\"\n }, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\Navbar.tsx\",\n lineNumber: 26,\n columnNumber: 13\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)((next_link__WEBPACK_IMPORTED_MODULE_2___default()), {\n href: \"/about\",\n className: \"text-gray-600 hover:text-primary\",\n children: \"关于我们\"\n }, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\Navbar.tsx\",\n lineNumber: 27,\n columnNumber: 13\n }, this)\n ]\n }, void 0, true, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\Navbar.tsx\",\n lineNumber: 22,\n columnNumber: 11\n }, this)\n ]\n }, void 0, true, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\Navbar.tsx\",\n lineNumber: 13,\n columnNumber: 9\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex items-center space-x-4\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)((next_link__WEBPACK_IMPORTED_MODULE_2___default()), {\n href: \"/contact\",\n className: \"px-4 py-1 border border-primary rounded-full text-primary hover:bg-primary hover:text-white transition\",\n children: \"联系我们\"\n }, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\Navbar.tsx\",\n lineNumber: 33,\n columnNumber: 11\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"a\", {\n href: \"https://instagram.com\",\n target: \"_blank\",\n rel: \"noopener noreferrer\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"i\", {\n className: \"fab fa-instagram text-gray-600 hover:text-primary\"\n }, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\Navbar.tsx\",\n lineNumber: 37,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\Navbar.tsx\",\n lineNumber: 36,\n columnNumber: 11\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"a\", {\n href: \"https://facebook.com\",\n target: \"_blank\",\n rel: \"noopener noreferrer\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"i\", {\n className: \"fab fa-facebook text-gray-600 hover:text-primary\"\n }, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\Navbar.tsx\",\n lineNumber: 40,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\Navbar.tsx\",\n lineNumber: 39,\n columnNumber: 11\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"a\", {\n href: \"https://twitter.com\",\n target: \"_blank\",\n rel: \"noopener noreferrer\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"i\", {\n className: \"fab fa-twitter text-gray-600 hover:text-primary\"\n }, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\Navbar.tsx\",\n lineNumber: 43,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\Navbar.tsx\",\n lineNumber: 42,\n columnNumber: 11\n }, this)\n ]\n }, void 0, true, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\Navbar.tsx\",\n lineNumber: 32,\n columnNumber: 9\n }, this)\n ]\n }, void 0, true, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\Navbar.tsx\",\n lineNumber: 11,\n columnNumber: 7\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_Sidebar__WEBPACK_IMPORTED_MODULE_3__[\"default\"], {\n open: open,\n onClose: ()=>setOpen(false)\n }, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\Navbar.tsx\",\n lineNumber: 49,\n columnNumber: 7\n }, this)\n ]\n }, void 0, true, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\Navbar.tsx\",\n lineNumber: 10,\n columnNumber: 5\n }, this);\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1ub2RlKS8uL2NvbXBvbmVudHMvTmF2YmFyLnRzeCIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7O0FBQWlDO0FBQ0o7QUFDTztBQUNKO0FBRWpCLFNBQVNJO0lBQ3RCLE1BQU0sQ0FBQ0MsTUFBTUMsUUFBUSxHQUFHTiwrQ0FBUUEsQ0FBQztJQUVqQyxxQkFDRSw4REFBQ087UUFBT0MsV0FBVTs7MEJBQ2hCLDhEQUFDQztnQkFBSUQsV0FBVTs7a0NBRWIsOERBQUNDO3dCQUFJRCxXQUFVOzswQ0FFYiw4REFBQ0U7Z0NBQU9GLFdBQVU7Z0NBQW1DRyxTQUFTLElBQU1MLFFBQVE7MENBQzFFLDRFQUFDSiwwRUFBSUE7b0NBQUNNLFdBQVU7Ozs7Ozs7Ozs7OzBDQUVsQiw4REFBQ1Asa0RBQUlBO2dDQUFDVyxNQUFLOzBDQUNULDRFQUFDQztvQ0FBSUMsS0FBSTtvQ0FBWUMsS0FBSTtvQ0FBYVAsV0FBVTs7Ozs7Ozs7Ozs7MENBR2xELDhEQUFDUTtnQ0FBSVIsV0FBVTs7a0RBQ2IsOERBQUNQLGtEQUFJQTt3Q0FBQ1csTUFBSzt3Q0FBSUosV0FBVTtrREFBNkI7Ozs7OztrREFDdEQsOERBQUNQLGtEQUFJQTt3Q0FBQ1csTUFBSzt3Q0FBWUosV0FBVTtrREFBbUM7Ozs7OztrREFDcEUsOERBQUNQLGtEQUFJQTt3Q0FBQ1csTUFBSzt3Q0FBUUosV0FBVTtrREFBbUM7Ozs7OztrREFDaEUsOERBQUNQLGtEQUFJQTt3Q0FBQ1csTUFBSzt3Q0FBU0osV0FBVTtrREFBbUM7Ozs7OztrREFDakUsOERBQUNQLGtEQUFJQTt3Q0FBQ1csTUFBSzt3Q0FBU0osV0FBVTtrREFBbUM7Ozs7Ozs7Ozs7Ozs7Ozs7OztrQ0FLckUsOERBQUNDO3dCQUFJRCxXQUFVOzswQ0FDYiw4REFBQ1Asa0RBQUlBO2dDQUFDVyxNQUFLO2dDQUFXSixXQUFVOzBDQUF5Rzs7Ozs7OzBDQUd6SSw4REFBQ1M7Z0NBQUVMLE1BQUs7Z0NBQXdCTSxRQUFPO2dDQUFTQyxLQUFJOzBDQUNsRCw0RUFBQ0M7b0NBQUVaLFdBQVU7Ozs7Ozs7Ozs7OzBDQUVmLDhEQUFDUztnQ0FBRUwsTUFBSztnQ0FBdUJNLFFBQU87Z0NBQVNDLEtBQUk7MENBQ2pELDRFQUFDQztvQ0FBRVosV0FBVTs7Ozs7Ozs7Ozs7MENBRWYsOERBQUNTO2dDQUFFTCxNQUFLO2dDQUFzQk0sUUFBTztnQ0FBU0MsS0FBSTswQ0FDaEQsNEVBQUNDO29DQUFFWixXQUFVOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OzswQkFNbkIsOERBQUNMLGdEQUFPQTtnQkFBQ0UsTUFBTUE7Z0JBQU1nQixTQUFTLElBQU1mLFFBQVE7Ozs7Ozs7Ozs7OztBQUUvQyIsInNvdXJjZXMiOlsiRDpcXGRvbmd5dW4tcHJvamVjdHNcXHR3b1xcY29tcG9uZW50c1xcTmF2YmFyLnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyB1c2VTdGF0ZSB9IGZyb20gJ3JlYWN0JztcclxuaW1wb3J0IExpbmsgZnJvbSAnbmV4dC9saW5rJztcclxuaW1wb3J0IHsgTWVudSB9IGZyb20gJ2x1Y2lkZS1yZWFjdCc7XHJcbmltcG9ydCBTaWRlYmFyIGZyb20gJy4vU2lkZWJhcic7XHJcblxyXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBOYXZiYXIoKSB7XHJcbiAgY29uc3QgW29wZW4sIHNldE9wZW5dID0gdXNlU3RhdGUoZmFsc2UpO1xyXG5cclxuICByZXR1cm4gKFxyXG4gICAgPGhlYWRlciBjbGFzc05hbWU9XCJmaXhlZCB0b3AtMCBsZWZ0LTAgdy1mdWxsIGJnLWJhY2tncm91bmQgc2hhZG93LXNtIHotNTBcIj5cclxuICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb250YWluZXIgbXgtYXV0byBmbGV4IGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWJldHdlZW4gaC0xNiBweC00XCI+XHJcbiAgICAgICAgey8qIOW3puS+pyBMb2dvICsg5a+86IiqICovfVxyXG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZmxleCBpdGVtcy1jZW50ZXIgc3BhY2UteC00XCI+XHJcbiAgICAgICAgICB7Lyog56e75Yqo56uv6I+c5Y2V5oyJ6ZKuICovfVxyXG4gICAgICAgICAgPGJ1dHRvbiBjbGFzc05hbWU9XCJtZDpoaWRkZW4gcC0yIGZvY3VzOm91dGxpbmUtbm9uZVwiIG9uQ2xpY2s9eygpID0+IHNldE9wZW4odHJ1ZSl9PlxyXG4gICAgICAgICAgICA8TWVudSBjbGFzc05hbWU9XCJoLTYgdy02IHRleHQtcHJpbWFyeVwiIC8+XHJcbiAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgIDxMaW5rIGhyZWY9XCIvXCI+XHJcbiAgICAgICAgICAgIDxpbWcgc3JjPVwiL2xvZ28ucG5nXCIgYWx0PVwiQ2xvdWRQcm94eVwiIGNsYXNzTmFtZT1cImgtOCB3LThcIiAvPlxyXG4gICAgICAgICAgPC9MaW5rPlxyXG4gICAgICAgICAgey8qIOahjOmdouerr+WvvOiIqumTvuaOpSAqL31cclxuICAgICAgICAgIDxuYXYgY2xhc3NOYW1lPVwiaGlkZGVuIG1kOmZsZXggaXRlbXMtY2VudGVyIHNwYWNlLXgtNFwiPlxyXG4gICAgICAgICAgICA8TGluayBocmVmPVwiL1wiIGNsYXNzTmFtZT1cInRleHQtcHJpbWFyeSBmb250LXNlbWlib2xkXCI+6aaW6aG1PC9MaW5rPlxyXG4gICAgICAgICAgICA8TGluayBocmVmPVwiL2ZlYXR1cmVzXCIgY2xhc3NOYW1lPVwidGV4dC1ncmF5LTYwMCBob3Zlcjp0ZXh0LXByaW1hcnlcIj7kuqflk4HkuI7mnI3liqE8L0xpbms+XHJcbiAgICAgICAgICAgIDxMaW5rIGhyZWY9XCIvbmV3c1wiIGNsYXNzTmFtZT1cInRleHQtZ3JheS02MDAgaG92ZXI6dGV4dC1wcmltYXJ5XCI+5paw6Ze76LWE6K6vPC9MaW5rPlxyXG4gICAgICAgICAgICA8TGluayBocmVmPVwiL2Nhc2VzXCIgY2xhc3NOYW1lPVwidGV4dC1ncmF5LTYwMCBob3Zlcjp0ZXh0LXByaW1hcnlcIj7lrqLmiLfmoYjkvos8L0xpbms+XHJcbiAgICAgICAgICAgIDxMaW5rIGhyZWY9XCIvYWJvdXRcIiBjbGFzc05hbWU9XCJ0ZXh0LWdyYXktNjAwIGhvdmVyOnRleHQtcHJpbWFyeVwiPuWFs+S6juaIkeS7rDwvTGluaz5cclxuICAgICAgICAgIDwvbmF2PlxyXG4gICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICB7Lyog5Y+z5L6n5pON5L2c5YWl5Y+jICovfVxyXG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZmxleCBpdGVtcy1jZW50ZXIgc3BhY2UteC00XCI+XHJcbiAgICAgICAgICA8TGluayBocmVmPVwiL2NvbnRhY3RcIiBjbGFzc05hbWU9XCJweC00IHB5LTEgYm9yZGVyIGJvcmRlci1wcmltYXJ5IHJvdW5kZWQtZnVsbCB0ZXh0LXByaW1hcnkgaG92ZXI6YmctcHJpbWFyeSBob3Zlcjp0ZXh0LXdoaXRlIHRyYW5zaXRpb25cIj5cclxuICAgICAgICAgICAg6IGU57O75oiR5LusXHJcbiAgICAgICAgICA8L0xpbms+XHJcbiAgICAgICAgICA8YSBocmVmPVwiaHR0cHM6Ly9pbnN0YWdyYW0uY29tXCIgdGFyZ2V0PVwiX2JsYW5rXCIgcmVsPVwibm9vcGVuZXIgbm9yZWZlcnJlclwiPlxyXG4gICAgICAgICAgICA8aSBjbGFzc05hbWU9XCJmYWIgZmEtaW5zdGFncmFtIHRleHQtZ3JheS02MDAgaG92ZXI6dGV4dC1wcmltYXJ5XCIgLz5cclxuICAgICAgICAgIDwvYT5cclxuICAgICAgICAgIDxhIGhyZWY9XCJodHRwczovL2ZhY2Vib29rLmNvbVwiIHRhcmdldD1cIl9ibGFua1wiIHJlbD1cIm5vb3BlbmVyIG5vcmVmZXJyZXJcIj5cclxuICAgICAgICAgICAgPGkgY2xhc3NOYW1lPVwiZmFiIGZhLWZhY2Vib29rIHRleHQtZ3JheS02MDAgaG92ZXI6dGV4dC1wcmltYXJ5XCIgLz5cclxuICAgICAgICAgIDwvYT5cclxuICAgICAgICAgIDxhIGhyZWY9XCJodHRwczovL3R3aXR0ZXIuY29tXCIgdGFyZ2V0PVwiX2JsYW5rXCIgcmVsPVwibm9vcGVuZXIgbm9yZWZlcnJlclwiPlxyXG4gICAgICAgICAgICA8aSBjbGFzc05hbWU9XCJmYWIgZmEtdHdpdHRlciB0ZXh0LWdyYXktNjAwIGhvdmVyOnRleHQtcHJpbWFyeVwiIC8+XHJcbiAgICAgICAgICA8L2E+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgey8qIOS+p+i+ueagjyAqL31cclxuICAgICAgPFNpZGViYXIgb3Blbj17b3Blbn0gb25DbG9zZT17KCkgPT4gc2V0T3BlbihmYWxzZSl9IC8+XHJcbiAgICA8L2hlYWRlcj5cclxuICApfSJdLCJuYW1lcyI6WyJ1c2VTdGF0ZSIsIkxpbmsiLCJNZW51IiwiU2lkZWJhciIsIk5hdmJhciIsIm9wZW4iLCJzZXRPcGVuIiwiaGVhZGVyIiwiY2xhc3NOYW1lIiwiZGl2IiwiYnV0dG9uIiwib25DbGljayIsImhyZWYiLCJpbWciLCJzcmMiLCJhbHQiLCJuYXYiLCJhIiwidGFyZ2V0IiwicmVsIiwiaSIsIm9uQ2xvc2UiXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(pages-dir-node)/./components/Navbar.tsx\n"); - -/***/ }), - -/***/ "(pages-dir-node)/./components/NewsList.tsx": -/*!*********************************!*\ - !*** ./components/NewsList.tsx ***! - \*********************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ NewsList)\n/* harmony export */ });\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react/jsx-dev-runtime */ \"react/jsx-dev-runtime\");\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var next_link__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! next/link */ \"(pages-dir-node)/./node_modules/next/link.js\");\n/* harmony import */ var next_link__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(next_link__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! react */ \"react\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var _barrel_optimize_names_ArrowRight_Calendar_Clock_Filter_Search_Tag_lucide_react__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! __barrel_optimize__?names=ArrowRight,Calendar,Clock,Filter,Search,Tag!=!lucide-react */ \"(pages-dir-node)/__barrel_optimize__?names=ArrowRight,Calendar,Clock,Filter,Search,Tag!=!./node_modules/lucide-react/dist/cjs/lucide-react.js\");\n\n\n\n\nfunction NewsList({ news }) {\n const [searchTerm, setSearchTerm] = (0,react__WEBPACK_IMPORTED_MODULE_2__.useState)('');\n const [selectedCategory, setSelectedCategory] = (0,react__WEBPACK_IMPORTED_MODULE_2__.useState)('全部');\n const [sortBy, setSortBy] = (0,react__WEBPACK_IMPORTED_MODULE_2__.useState)('date');\n // 获取所有分类\n const categories = (0,react__WEBPACK_IMPORTED_MODULE_2__.useMemo)({\n \"NewsList.useMemo[categories]\": ()=>{\n const allTags = news.flatMap({\n \"NewsList.useMemo[categories].allTags\": (item)=>item.tags || []\n }[\"NewsList.useMemo[categories].allTags\"]);\n const uniqueTags = Array.from(new Set(allTags));\n return [\n '全部',\n ...uniqueTags\n ];\n }\n }[\"NewsList.useMemo[categories]\"], [\n news\n ]);\n // 过滤和排序新闻\n const filteredNews = (0,react__WEBPACK_IMPORTED_MODULE_2__.useMemo)({\n \"NewsList.useMemo[filteredNews]\": ()=>{\n let filtered = news.filter({\n \"NewsList.useMemo[filteredNews].filtered\": (item)=>{\n const matchesSearch = item.title.toLowerCase().includes(searchTerm.toLowerCase()) || item.summary?.toLowerCase().includes(searchTerm.toLowerCase()) || item.tags?.some({\n \"NewsList.useMemo[filteredNews].filtered\": (tag)=>tag.toLowerCase().includes(searchTerm.toLowerCase())\n }[\"NewsList.useMemo[filteredNews].filtered\"]);\n const matchesCategory = selectedCategory === '全部' || item.tags?.includes(selectedCategory);\n return matchesSearch && matchesCategory;\n }\n }[\"NewsList.useMemo[filteredNews].filtered\"]);\n // 排序\n filtered.sort({\n \"NewsList.useMemo[filteredNews]\": (a, b)=>{\n switch(sortBy){\n case 'date':\n return new Date(b.date).getTime() - new Date(a.date).getTime();\n case 'title':\n return a.title.localeCompare(b.title);\n default:\n return 0;\n }\n }\n }[\"NewsList.useMemo[filteredNews]\"]);\n return filtered;\n }\n }[\"NewsList.useMemo[filteredNews]\"], [\n news,\n searchTerm,\n selectedCategory,\n sortBy\n ]);\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"section\", {\n className: \"px-6 py-16 bg-gray-50\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"max-w-screen-xl mx-auto\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"bg-white rounded-2xl p-6 shadow-sm mb-8\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex flex-col lg:flex-row gap-4 items-center\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex-1 relative\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_barrel_optimize_names_ArrowRight_Calendar_Clock_Filter_Search_Tag_lucide_react__WEBPACK_IMPORTED_MODULE_3__.Search, {\n className: \"absolute left-3 top-1/2 transform -translate-y-1/2 text-gray-400 w-5 h-5\"\n }, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\NewsList.tsx\",\n lineNumber: 53,\n columnNumber: 15\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"input\", {\n type: \"text\",\n placeholder: \"搜索新闻标题、内容或标签...\",\n value: searchTerm,\n onChange: (e)=>setSearchTerm(e.target.value),\n className: \"w-full pl-10 pr-4 py-3 border border-gray-200 rounded-xl focus:ring-2 focus:ring-accent focus:border-transparent outline-none\"\n }, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\NewsList.tsx\",\n lineNumber: 54,\n columnNumber: 15\n }, this)\n ]\n }, void 0, true, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\NewsList.tsx\",\n lineNumber: 52,\n columnNumber: 13\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex items-center gap-2\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_barrel_optimize_names_ArrowRight_Calendar_Clock_Filter_Search_Tag_lucide_react__WEBPACK_IMPORTED_MODULE_3__.Filter, {\n className: \"w-5 h-5 text-gray-400\"\n }, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\NewsList.tsx\",\n lineNumber: 65,\n columnNumber: 15\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"select\", {\n value: selectedCategory,\n onChange: (e)=>setSelectedCategory(e.target.value),\n className: \"px-4 py-3 border border-gray-200 rounded-xl focus:ring-2 focus:ring-accent focus:border-transparent outline-none\",\n children: categories.map((category)=>/*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"option\", {\n value: category,\n children: category\n }, category, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\NewsList.tsx\",\n lineNumber: 72,\n columnNumber: 19\n }, this))\n }, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\NewsList.tsx\",\n lineNumber: 66,\n columnNumber: 15\n }, this)\n ]\n }, void 0, true, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\NewsList.tsx\",\n lineNumber: 64,\n columnNumber: 13\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex items-center gap-2\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_barrel_optimize_names_ArrowRight_Calendar_Clock_Filter_Search_Tag_lucide_react__WEBPACK_IMPORTED_MODULE_3__.Calendar, {\n className: \"w-5 h-5 text-gray-400\"\n }, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\NewsList.tsx\",\n lineNumber: 79,\n columnNumber: 15\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"select\", {\n value: sortBy,\n onChange: (e)=>setSortBy(e.target.value),\n className: \"px-4 py-3 border border-gray-200 rounded-xl focus:ring-2 focus:ring-accent focus:border-transparent outline-none\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"option\", {\n value: \"date\",\n children: \"按日期排序\"\n }, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\NewsList.tsx\",\n lineNumber: 85,\n columnNumber: 17\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"option\", {\n value: \"title\",\n children: \"按标题排序\"\n }, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\NewsList.tsx\",\n lineNumber: 86,\n columnNumber: 17\n }, this)\n ]\n }, void 0, true, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\NewsList.tsx\",\n lineNumber: 80,\n columnNumber: 15\n }, this)\n ]\n }, void 0, true, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\NewsList.tsx\",\n lineNumber: 78,\n columnNumber: 13\n }, this)\n ]\n }, void 0, true, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\NewsList.tsx\",\n lineNumber: 50,\n columnNumber: 11\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"mt-4 pt-4 border-t border-gray-100\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"p\", {\n className: \"text-sm text-gray-600\",\n children: [\n \"找到 \",\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n className: \"font-semibold text-accent\",\n children: filteredNews.length\n }, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\NewsList.tsx\",\n lineNumber: 94,\n columnNumber: 18\n }, this),\n \" 条新闻\",\n searchTerm && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n children: [\n \",关键词:\",\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n className: \"font-semibold\",\n children: [\n '\"',\n searchTerm,\n '\"'\n ]\n }, void 0, true, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\NewsList.tsx\",\n lineNumber: 96,\n columnNumber: 28\n }, this)\n ]\n }, void 0, true, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\NewsList.tsx\",\n lineNumber: 96,\n columnNumber: 17\n }, this),\n selectedCategory !== '全部' && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n children: [\n \",分类:\",\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n className: \"font-semibold\",\n children: selectedCategory\n }, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\NewsList.tsx\",\n lineNumber: 99,\n columnNumber: 27\n }, this)\n ]\n }, void 0, true, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\NewsList.tsx\",\n lineNumber: 99,\n columnNumber: 17\n }, this)\n ]\n }, void 0, true, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\NewsList.tsx\",\n lineNumber: 93,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\NewsList.tsx\",\n lineNumber: 92,\n columnNumber: 11\n }, this)\n ]\n }, void 0, true, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\NewsList.tsx\",\n lineNumber: 49,\n columnNumber: 9\n }, this),\n filteredNews.length === 0 ? /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"text-center py-16\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"w-24 h-24 bg-gray-100 rounded-full flex items-center justify-center mx-auto mb-4\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_barrel_optimize_names_ArrowRight_Calendar_Clock_Filter_Search_Tag_lucide_react__WEBPACK_IMPORTED_MODULE_3__.Search, {\n className: \"w-12 h-12 text-gray-400\"\n }, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\NewsList.tsx\",\n lineNumber: 109,\n columnNumber: 15\n }, this)\n }, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\NewsList.tsx\",\n lineNumber: 108,\n columnNumber: 13\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"h3\", {\n className: \"text-xl font-semibold text-gray-600 mb-2\",\n children: \"未找到相关新闻\"\n }, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\NewsList.tsx\",\n lineNumber: 111,\n columnNumber: 13\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"p\", {\n className: \"text-gray-500 mb-6\",\n children: \"请尝试调整搜索条件或筛选器\"\n }, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\NewsList.tsx\",\n lineNumber: 112,\n columnNumber: 13\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"button\", {\n onClick: ()=>{\n setSearchTerm('');\n setSelectedCategory('全部');\n },\n className: \"px-6 py-3 bg-accent text-white rounded-xl hover:bg-blue-700 transition-colors\",\n children: \"重置筛选\"\n }, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\NewsList.tsx\",\n lineNumber: 113,\n columnNumber: 13\n }, this)\n ]\n }, void 0, true, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\NewsList.tsx\",\n lineNumber: 107,\n columnNumber: 11\n }, this) : /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"grid grid-cols-1 lg:grid-cols-2 xl:grid-cols-3 gap-6\",\n children: filteredNews.map((item, index)=>/*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"article\", {\n className: \"group bg-white rounded-2xl shadow-sm hover:shadow-xl transition-all duration-300 border border-gray-100 hover:border-accent/20 overflow-hidden\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"p-6\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex items-start justify-between mb-4\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex items-center gap-2\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_barrel_optimize_names_ArrowRight_Calendar_Clock_Filter_Search_Tag_lucide_react__WEBPACK_IMPORTED_MODULE_3__.Clock, {\n className: \"w-4 h-4 text-gray-400\"\n }, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\NewsList.tsx\",\n lineNumber: 134,\n columnNumber: 23\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"time\", {\n className: \"text-sm text-gray-500\",\n children: item.date\n }, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\NewsList.tsx\",\n lineNumber: 135,\n columnNumber: 23\n }, this)\n ]\n }, void 0, true, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\NewsList.tsx\",\n lineNumber: 133,\n columnNumber: 21\n }, this),\n index < 3 && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n className: \"bg-gradient-to-r from-accent to-blue-600 text-white text-xs font-semibold px-3 py-1 rounded-full\",\n children: \"热门\"\n }, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\NewsList.tsx\",\n lineNumber: 138,\n columnNumber: 23\n }, this)\n ]\n }, void 0, true, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\NewsList.tsx\",\n lineNumber: 132,\n columnNumber: 19\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"h3\", {\n className: \"text-xl font-semibold text-primary mb-3 group-hover:text-accent transition-colors line-clamp-2\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)((next_link__WEBPACK_IMPORTED_MODULE_1___default()), {\n href: `/news/${item.slug}`,\n className: \"hover:underline\",\n children: item.title\n }, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\NewsList.tsx\",\n lineNumber: 146,\n columnNumber: 21\n }, this)\n }, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\NewsList.tsx\",\n lineNumber: 145,\n columnNumber: 19\n }, this),\n item.summary && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"p\", {\n className: \"text-gray-600 text-sm line-clamp-3 mb-4 leading-relaxed\",\n children: item.summary\n }, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\NewsList.tsx\",\n lineNumber: 153,\n columnNumber: 21\n }, this),\n item.tags && item.tags.length > 0 && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex flex-wrap gap-2 mb-4\",\n children: item.tags.map((tag)=>/*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n className: \"inline-flex items-center gap-1 px-3 py-1 text-xs bg-gray-100 text-gray-600 rounded-full hover:bg-accent hover:text-white transition-colors cursor-pointer\",\n onClick: ()=>setSelectedCategory(tag),\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_barrel_optimize_names_ArrowRight_Calendar_Clock_Filter_Search_Tag_lucide_react__WEBPACK_IMPORTED_MODULE_3__.Tag, {\n className: \"w-3 h-3\"\n }, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\NewsList.tsx\",\n lineNumber: 167,\n columnNumber: 27\n }, this),\n tag\n ]\n }, tag, true, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\NewsList.tsx\",\n lineNumber: 162,\n columnNumber: 25\n }, this))\n }, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\NewsList.tsx\",\n lineNumber: 160,\n columnNumber: 21\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex items-center justify-between pt-4 border-t border-gray-100\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)((next_link__WEBPACK_IMPORTED_MODULE_1___default()), {\n href: `/news/${item.slug}`,\n className: \"inline-flex items-center gap-2 text-accent hover:text-blue-700 font-medium text-sm group-hover:gap-3 transition-all\",\n children: [\n \"阅读全文\",\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_barrel_optimize_names_ArrowRight_Calendar_Clock_Filter_Search_Tag_lucide_react__WEBPACK_IMPORTED_MODULE_3__.ArrowRight, {\n className: \"w-4 h-4 group-hover:translate-x-1 transition-transform\"\n }, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\NewsList.tsx\",\n lineNumber: 181,\n columnNumber: 23\n }, this)\n ]\n }, void 0, true, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\NewsList.tsx\",\n lineNumber: 176,\n columnNumber: 21\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"text-xs text-gray-400\",\n children: [\n Math.ceil(Math.random() * 5) + 1,\n \" 分钟阅读\"\n ]\n }, void 0, true, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\NewsList.tsx\",\n lineNumber: 184,\n columnNumber: 21\n }, this)\n ]\n }, void 0, true, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\NewsList.tsx\",\n lineNumber: 175,\n columnNumber: 19\n }, this)\n ]\n }, void 0, true, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\NewsList.tsx\",\n lineNumber: 130,\n columnNumber: 17\n }, this)\n }, item.slug, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\NewsList.tsx\",\n lineNumber: 126,\n columnNumber: 15\n }, this))\n }, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\NewsList.tsx\",\n lineNumber: 124,\n columnNumber: 11\n }, this),\n filteredNews.length > 6 && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"text-center mt-12\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"button\", {\n className: \"px-8 py-3 bg-white border border-gray-200 text-primary rounded-xl hover:bg-gray-50 hover:border-accent transition-all duration-300 font-medium\",\n children: \"加载更多新闻\"\n }, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\NewsList.tsx\",\n lineNumber: 197,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\NewsList.tsx\",\n lineNumber: 196,\n columnNumber: 11\n }, this)\n ]\n }, void 0, true, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\NewsList.tsx\",\n lineNumber: 47,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\NewsList.tsx\",\n lineNumber: 46,\n columnNumber: 5\n }, this);\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1ub2RlKS8uL2NvbXBvbmVudHMvTmV3c0xpc3QudHN4IiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7OztBQUE2QjtBQUNhO0FBRXNDO0FBRWpFLFNBQVNTLFNBQVMsRUFBRUMsSUFBSSxFQUF3QjtJQUM3RCxNQUFNLENBQUNDLFlBQVlDLGNBQWMsR0FBR1gsK0NBQVFBLENBQUM7SUFDN0MsTUFBTSxDQUFDWSxrQkFBa0JDLG9CQUFvQixHQUFHYiwrQ0FBUUEsQ0FBQztJQUN6RCxNQUFNLENBQUNjLFFBQVFDLFVBQVUsR0FBR2YsK0NBQVFBLENBQUM7SUFFckMsU0FBUztJQUNULE1BQU1nQixhQUFhZiw4Q0FBT0E7d0NBQUM7WUFDekIsTUFBTWdCLFVBQVVSLEtBQUtTLE9BQU87d0RBQUNDLENBQUFBLE9BQVFBLEtBQUtDLElBQUksSUFBSSxFQUFFOztZQUNwRCxNQUFNQyxhQUFhQyxNQUFNQyxJQUFJLENBQUMsSUFBSUMsSUFBSVA7WUFDdEMsT0FBTztnQkFBQzttQkFBU0k7YUFBVztRQUM5Qjt1Q0FBRztRQUFDWjtLQUFLO0lBRVQsVUFBVTtJQUNWLE1BQU1nQixlQUFleEIsOENBQU9BOzBDQUFDO1lBQzNCLElBQUl5QixXQUFXakIsS0FBS2tCLE1BQU07MkRBQUNSLENBQUFBO29CQUN6QixNQUFNUyxnQkFBZ0JULEtBQUtVLEtBQUssQ0FBQ0MsV0FBVyxHQUFHQyxRQUFRLENBQUNyQixXQUFXb0IsV0FBVyxPQUN6RFgsS0FBS2EsT0FBTyxFQUFFRixjQUFjQyxTQUFTckIsV0FBV29CLFdBQVcsT0FDM0RYLEtBQUtDLElBQUksRUFBRWE7bUVBQUtDLENBQUFBLE1BQU9BLElBQUlKLFdBQVcsR0FBR0MsUUFBUSxDQUFDckIsV0FBV29CLFdBQVc7O29CQUU3RixNQUFNSyxrQkFBa0J2QixxQkFBcUIsUUFBUU8sS0FBS0MsSUFBSSxFQUFFVyxTQUFTbkI7b0JBRXpFLE9BQU9nQixpQkFBaUJPO2dCQUMxQjs7WUFFQSxLQUFLO1lBQ0xULFNBQVNVLElB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Ozs7Ozs7Ozs7Ozs7Ozs7MkJBMURuQ25ELEtBQUtnRCxJQUFJOzs7Ozs7Ozs7O2dCQW9FckIxQyxhQUFha0MsTUFBTSxHQUFHLG1CQUNyQiw4REFBQ2Q7b0JBQUlELFdBQVU7OEJBQ2IsNEVBQUNpQjt3QkFBT2pCLFdBQVU7a0NBQWlKOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBUS9LIiwic291cmNlcyI6WyJEOlxcZG9uZ3l1bi1wcm9qZWN0c1xcdHdvXFxjb21wb25lbnRzXFxOZXdzTGlzdC50c3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IExpbmsgZnJvbSAnbmV4dC9saW5rJztcclxuaW1wb3J0IHsgdXNlU3RhdGUsIHVzZU1lbW8gfSBmcm9tICdyZWFjdCc7XHJcbmltcG9ydCB7IE5ld3NJdGVtIH0gZnJvbSAnLi4vbGliL2NvbnRlbnQnO1xyXG5pbXBvcnQgeyBTZWFyY2gsIEZpbHRlciwgQ2FsZW5kYXIsIFRhZywgQXJyb3dSaWdodCwgQ2xvY2sgfSBmcm9tICdsdWNpZGUtcmVhY3QnO1xyXG5cclxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gTmV3c0xpc3QoeyBuZXdzIH06IHsgbmV3czogTmV3c0l0ZW1bXSB9KSB7XHJcbiAgY29uc3QgW3NlYXJjaFRlcm0sIHNldFNlYXJjaFRlcm1dID0gdXNlU3RhdGUoJycpO1xyXG4gIGNvbnN0IFtzZWxlY3RlZENhdGVnb3J5LCBzZXRTZWxlY3RlZENhdGVnb3J5XSA9IHVzZVN0YXRlKCflhajpg6gnKTtcclxuICBjb25zdCBbc29ydEJ5LCBzZXRTb3J0QnldID0gdXNlU3RhdGUoJ2RhdGUnKTtcclxuXHJcbiAgLy8g6I635Y+W5omA5pyJ5YiG57G7XHJcbiAgY29uc3QgY2F0ZWdvcmllcyA9IHVzZU1lbW8oKCkgPT4ge1xyXG4gICAgY29uc3QgYWxsVGFncyA9IG5ld3MuZmxhdE1hcChpdGVtID0+IGl0ZW0udGFncyB8fCBbXSk7XHJcbiAgICBjb25zdCB1bmlxdWVUYWdzID0gQXJyYXkuZnJvbShuZXcgU2V0KGFsbFRhZ3MpKTtcclxuICAgIHJldHVybiBbJ+WFqOmDqCcsIC4uLnVuaXF1ZVRhZ3NdO1xyXG4gIH0sIFtuZXdzXSk7XHJcblxyXG4gIC8vIOi/h+a7pOWSjOaOkuW6j+aWsOmXu1xyXG4gIGNvbnN0IGZpbHRlcmVkTmV3cyA9IHVzZU1lbW8oKCkgPT4ge1xyXG4gICAgbGV0IGZpbHRlcmVkID0gbmV3cy5maWx0ZXIoaXRlbSA9PiB7XHJcbiAgICAgIGNvbnN0IG1hdGNoZXNTZWFyY2ggPSBpdGVtLnRpdGxlLnRvTG93ZXJDYXNlKCkuaW5jbHVkZXMoc2VhcmNoVGVybS50b0xvd2VyQ2FzZSgpKSB8fFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICBpdGVtLnN1bW1hcnk/LnRvTG93ZXJDYXNlKCkuaW5jbHVkZXMoc2VhcmNoVGVybS50b0xvd2VyQ2FzZSgpKSB8fFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICBpdGVtLnRhZ3M/LnNvbWUodGFnID0+IHRhZy50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKHNlYXJjaFRlcm0udG9Mb3dlckNhc2UoKSkpO1xyXG4gICAgICBcclxuICAgICAgY29uc3QgbWF0Y2hlc0NhdGVnb3J5ID0gc2VsZWN0ZWRDYXRlZ29yeSA9PT0gJ+WFqOmDqCcgfHwgaXRlbS50YWdzPy5pbmNsdWRlcyhzZWxlY3RlZENhdGVnb3J5KTtcclxuICAgICAgXHJcbiAgICAgIHJldHVybiBtYXRjaGVzU2VhcmNoICYmIG1hdGNoZXNDYXRlZ29yeTtcclxuICAgIH0pO1xyXG5cclxuICAgIC8vIOaOkuW6j1xyXG4gICAgZmlsdGVyZWQuc29ydCgoYSwgYikgPT4ge1xyXG4gICAgICBzd2l0Y2ggKHNvcnRCeSkge1xyXG4gICAgICAgIGNhc2UgJ2RhdGUnOlxyXG4gICAgICAgICAgcmV0dXJuIG5ldyBEYXRlKGIuZGF0ZSkuZ2V0VGltZSgpIC0gbmV3IERhdGUoYS5kYXRlKS5nZXRUaW1lKCk7XHJcbiAgICAgICAgY2FzZSAndGl0bGUnOlxyXG4gICAgICAgICAgcmV0dXJuIGEudGl0bGUubG9jYWxlQ29tcGFyZShiLnRpdGxlKTtcclxuICAgICAgICBkZWZhdWx0OlxyXG4gICAgICAgICAgcmV0dXJuIDA7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG5cclxuICAgIHJldHVybiBmaWx0ZXJlZDtcclxuICB9LCBbbmV3cywgc2VhcmNoVGVybSwgc2VsZWN0ZWRDYXRlZ29yeSwgc29ydEJ5XSk7XHJcblxyXG4gIHJldHVybiAoXHJcbiAgICA8c2VjdGlvbiBjbGFzc05hbWU9XCJweC02IHB5LTE2IGJnLWdyYXktNTBcIj5cclxuICAgICAgPGRpdiBjbGFzc05hbWU9XCJtYXgtdy1zY3JlZW4teGwgbXgtYXV0b1wiPlxyXG4gICAgICAgIHsvKiDmkJzntKLlkoznrZvpgInljLrln58gKi99XHJcbiAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJiZy13aGl0ZSByb3VuZGVkLTJ4bCBwLTYgc2hhZG93LXNtIG1iLThcIj5cclxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZmxleCBmbGV4LWNvbCBsZzpmbGV4LXJvdyBnYXAtNCBpdGVtcy1jZW50ZXJcIj5cclxuICAgICAgICAgICAgey8qIOaQnOe0ouahhiAqL31cclxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJmbGV4LTEgcmVsYXRpdmVcIj5cclxuICAgICAgICAgICAgICA8U2VhcmNoIGNsYXNzTmFtZT1cImFic29sdXRlIGxlZnQtMyB0b3AtMS8yIHRyYW5zZm9ybSAtdHJhbnNsYXRlLXktMS8yIHRleHQtZ3JheS00MDAgdy01IGgtNVwiIC8+XHJcbiAgICAgICAgICAgICAgPGlucHV0XHJcbiAgICAgICAgICAgICAgICB0eXBlPVwidGV4dFwiXHJcbiAgICAgICAgICAgICAgICBwbGFjZWhvbGRlcj1cIuaQnOe0ouaWsOmXu+agh+mimOOAgeWGheWuueaIluagh+etvi4uLlwiXHJcbiAgICAgICAgICAgICAgICB2YWx1ZT17c2VhcmNoVGVybX1cclxuICAgICAgICAgICAgICAgIG9uQ2hhbmdlPXsoZSkgPT4gc2V0U2VhcmNoVGVybShlLnRhcmdldC52YWx1ZSl9XHJcbiAgICAgICAgICAgICAgICBjbGFzc05hbWU9XCJ3LWZ1bGwgcGwtMTAgcHItNCBweS0zIGJvcmRlciBib3JkZXItZ3JheS0yMDAgcm91bmRlZC14bCBmb2N1czpyaW5nLTIgZm9jdXM6cmluZy1hY2NlbnQgZm9jdXM6Ym9yZGVyLXRyYW5zcGFyZW50IG91dGxpbmUtbm9uZVwiXHJcbiAgICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICB7Lyog5YiG57G7562b6YCJICovfVxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImZsZXggaXRlbXMtY2VudGVyIGdhcC0yXCI+XHJcbiAgICAgICAgICAgICAgPEZpbHRlciBjbGFzc05hbWU9XCJ3LTUgaC01IHRleHQtZ3JheS00MDBcIiAvPlxyXG4gICAgICAgICAgICAgIDxzZWxlY3RcclxuICAgICAgICAgICAgICAgIHZhbHVlPXtzZWxlY3RlZENhdGVnb3J5fVxyXG4gICAgICAgICAgICAgICAgb25DaGFuZ2U9eyhlKSA9PiBzZXRTZWxlY3RlZENhdGVnb3J5KGUudGFyZ2V0LnZhbHVlKX1cclxuICAgICAgICAgICAgICAgIGNsYXNzTmFtZT1cInB4LTQgcHktMyBib3JkZXIgYm9yZGVyLWdyYXktMjAwIHJvdW5kZWQteGwgZm9jdXM6cmluZy0yIGZvY3VzOnJpbmctYWNjZW50IGZvY3VzOmJvcmRlci10cmFuc3BhcmVudCBvdXRsaW5lLW5vbmVcIlxyXG4gICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgIHtjYXRlZ29yaWVzLm1hcChjYXRlZ29yeSA9PiAoXHJcbiAgICAgICAgICAgICAgICAgIDxvcHRpb24ga2V5PXtjYXRlZ29yeX0gdmFsdWU9e2NhdGVnb3J5fT57Y2F0ZWdvcnl9PC9vcHRpb24+XHJcbiAgICAgICAgICAgICAgICApKX1cclxuICAgICAgICAgICAgICA8L3NlbGVjdD5cclxuICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICB7Lyog5o6S5bqP6YCJ5oupICovfVxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImZsZXggaXRlbXMtY2VudGVyIGdhcC0yXCI+XHJcbiAgICAgICAgICAgICAgPENhbGVuZGFyIGNsYXNzTmFtZT1cInctNSBoLTUgdGV4dC1ncmF5LTQwMFwiIC8+XHJcbiAgICAgICAgICAgICAgPHNlbGVjdFxyXG4gICAgICAgICAgICAgICAgdmFsdWU9e3NvcnRCeX1cclxuICAgICAgICAgICAgICAgIG9uQ2hhbmdlPXsoZSkgPT4gc2V0U29ydEJ5KGUudGFyZ2V0LnZhbHVlKX1cclxuICAgICAgICAgICAgICAgIGNsYXNzTmFtZT1cInB4LTQgcHktMyBib3JkZXIgYm9yZGVyLWdyYXktMjAwIHJvdW5kZWQteGwgZm9jdXM6cmluZy0yIGZvY3VzOnJpbmctYWNjZW50IGZvY3VzOmJvcmRlci10cmFuc3BhcmVudCBvdXRsaW5lLW5vbmVcIlxyXG4gICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9XCJkYXRlXCI+5oyJ5pel5pyf5o6S5bqPPC9vcHRpb24+XHJcbiAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPVwidGl0bGVcIj7mjInmoIfpopjmjpLluo88L29wdGlvbj5cclxuICAgICAgICAgICAgICA8L3NlbGVjdD5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICB7Lyog5pCc57Si57uT5p6c57uf6K6hICovfVxyXG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJtdC00IHB0LTQgYm9yZGVyLXQgYm9yZGVyLWdyYXktMTAwXCI+XHJcbiAgICAgICAgICAgIDxwIGNsYXNzTmFtZT1cInRleHQtc20gdGV4dC1ncmF5LTYwMFwiPlxyXG4gICAgICAgICAgICAgIOaJvuWIsCA8c3BhbiBjbGFzc05hbWU9XCJmb250LXNlbWlib2xkIHRleHQtYWNjZW50XCI+e2ZpbHRlcmVkTmV3cy5sZW5ndGh9PC9zcGFuPiDmnaHmlrDpl7tcclxuICAgICAgICAgICAgICB7c2VhcmNoVGVybSAmJiAoXHJcbiAgICAgICAgICAgICAgICA8c3Bhbj7vvIzlhbPplK7or43vvJo8c3BhbiBjbGFzc05hbWU9XCJmb250LXNlbWlib2xkXCI+XCJ7c2VhcmNoVGVybX1cIjwvc3Bhbj48L3NwYW4+XHJcbiAgICAgICAgICAgICAgKX1cclxuICAgICAgICAgICAgICB7c2VsZWN0ZWRDYXRlZ29yeSAhPT0gJ+WFqOmDqCcgJiYgKFxyXG4gICAgICAgICAgICAgICAgPHNwYW4+77yM5YiG57G777yaPHNwYW4gY2xhc3NOYW1lPVwiZm9udC1zZW1pYm9sZFwiPntzZWxlY3RlZENhdGVnb3J5fTwvc3Bhbj48L3NwYW4+XHJcbiAgICAgICAgICAgICAgKX1cclxuICAgICAgICAgICAgPC9wPlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgIHsvKiDmlrDpl7vliJfooaggKi99XHJcbiAgICAgICAge2ZpbHRlcmVkTmV3cy5sZW5ndGggPT09IDAgPyAoXHJcbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInRleHQtY2VudGVyIHB5LTE2XCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwidy0yNCBoLTI0IGJnLWdyYXktMTAwIHJvdW5kZWQtZnVsbCBmbGV4IGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNlbnRlciBteC1hdXRvIG1iLTRcIj5cclxuICAgICAgICAgICAgICA8U2VhcmNoIGNsYXNzTmFtZT1cInctMTIgaC0xMiB0ZXh0LWdyYXktNDAwXCIgLz5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxoMyBjbGFzc05hbWU9XCJ0ZXh0LXhsIGZvbnQtc2VtaWJvbGQgdGV4dC1ncmF5LTYwMCBtYi0yXCI+5pyq5om+5Yiw55u45YWz5paw6Ze7PC9oMz5cclxuICAgICAgICAgICAgPHAgY2xhc3NOYW1lPVwidGV4dC1ncmF5LTUwMCBtYi02XCI+6K+35bCd6K+V6LCD5pW05pCc57Si5p2h5Lu25oiW562b6YCJ5ZmoPC9wPlxyXG4gICAgICAgICAgICA8YnV0dG9uXHJcbiAgICAgICAgICAgICAgb25DbGljaz17KCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgc2V0U2VhcmNoVGVybSgnJyk7XHJcbiAgICAgICAgICAgICAgICBzZXRTZWxlY3RlZENhdGVnb3J5KCflhajpg6gnKTtcclxuICAgICAgICAgICAgICB9fVxyXG4gICAgICAgICAgICAgIGNsYXNzTmFtZT1cInB4LTYgcHktMyBiZy1hY2NlbnQgdGV4dC13aGl0ZSByb3VuZGVkLXhsIGhvdmVyOmJnLWJsdWUtNzAwIHRyYW5zaXRpb24tY29sb3JzXCJcclxuICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgIOmHjee9ruetm+mAiVxyXG4gICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICkgOiAoXHJcbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImdyaWQgZ3JpZC1jb2xzLTEgbGc6Z3JpZC1jb2xzLTIgeGw6Z3JpZC1jb2xzLTMgZ2FwLTZcIj5cclxuICAgICAgICAgICAge2ZpbHRlcmVkTmV3cy5tYXAoKGl0ZW0sIGluZGV4KSA9PiAoXHJcbiAgICAgICAgICAgICAgPGFydGljbGUgXHJcbiAgICAgICAgICAgICAgICBrZXk9e2l0ZW0uc2x1Z30gXHJcbiAgICAgICAgICAgICAgICBjbGFzc05hbWU9XCJncm91cCBiZy13aGl0ZSByb3VuZGVkLTJ4bCBzaGFkb3ctc20gaG92ZXI6c2hhZG93LXhsIHRyYW5zaXRpb24tYWxsIGR1cmF0aW9uLTMwMCBib3JkZXIgYm9yZGVyLWdyYXktMTAwIGhvdmVyOmJvcmRlci1hY2NlbnQvMjAgb3ZlcmZsb3ctaGlkZGVuXCJcclxuICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInAtNlwiPlxyXG4gICAgICAgICAgICAgICAgICB7Lyog5paw6Ze75aS06YOoICovfVxyXG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImZsZXggaXRlbXMtc3RhcnQganVzdGlmeS1iZXR3ZWVuIG1iLTRcIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImZsZXggaXRlbXMtY2VudGVyIGdhcC0yXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8Q2xvY2sgY2xhc3NOYW1lPVwidy00IGgtNCB0ZXh0LWdyYXktNDAwXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgIDx0aW1lIGNsYXNzTmFtZT1cInRleHQtc20gdGV4dC1ncmF5LTUwMFwiPntpdGVtLmRhdGV9PC90aW1lPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIHtpbmRleCA8IDMgJiYgKFxyXG4gICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwiYmctZ3JhZGllbnQtdG8tciBmcm9tLWFjY2VudCB0by1ibHVlLTYwMCB0ZXh0LXdoaXRlIHRleHQteHMgZm9udC1zZW1pYm9sZCBweC0zIHB5LTEgcm91bmRlZC1mdWxsXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIOeDremXqFxyXG4gICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICl9XHJcbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgICAgICAgey8qIOaWsOmXu+agh+mimCAqL31cclxuICAgICAgICAgICAgICAgICAgPGgzIGNsYXNzTmFtZT1cInRleHQteGwgZm9udC1zZW1pYm9sZCB0ZXh0LXByaW1hcnkgbWItMyBncm91cC1ob3Zlcjp0ZXh0LWFjY2VudCB0cmFuc2l0aW9uLWNvbG9ycyBsaW5lLWNsYW1wLTJcIj5cclxuICAgICAgICAgICAgICAgICAgICA8TGluayBocmVmPXtgL25ld3MvJHtpdGVtLnNsdWd9YH0gY2xhc3NOYW1lPVwiaG92ZXI6dW5kZXJsaW5lXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICB7aXRlbS50aXRsZX1cclxuICAgICAgICAgICAgICAgICAgICA8L0xpbms+XHJcbiAgICAgICAgICAgICAgICAgIDwvaDM+XHJcblxyXG4gICAgICAgICAgICAgICAgICB7Lyog5paw6Ze75pGY6KaBICovfVxyXG4gICAgICAgICAgICAgICAgICB7aXRlbS5zdW1tYXJ5ICYmIChcclxuICAgICAgICAgICAgICAgICAgICA8cCBjbGFzc05hbWU9XCJ0ZXh0LWdyYXktNjAwIHRleHQtc20gbGluZS1jbGFtcC0zIG1iLTQgbGVhZGluZy1yZWxheGVkXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICB7aXRlbS5zdW1tYXJ5fVxyXG4gICAgICAgICAgICAgICAgICAgIDwvcD5cclxuICAgICAgICAgICAgICAgICAgKX1cclxuXHJcbiAgICAgICAgICAgICAgICAgIHsvKiDmoIfnrb4gKi99XHJcbiAgICAgICAgICAgICAgICAgIHtpdGVtLnRhZ3MgJiYgaXRlbS50YWdzLmxlbmd0aCA+IDAgJiYgKFxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZmxleCBmbGV4LXdyYXAgZ2FwLTIgbWItNFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAge2l0ZW0udGFncy5tYXAodGFnID0+IChcclxuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAga2V5PXt0YWd9IFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT1cImlubGluZS1mbGV4IGl0ZW1zLWNlbnRlciBnYXAtMSBweC0zIHB5LTEgdGV4dC14cyBiZy1ncmF5LTEwMCB0ZXh0LWdyYXktNjAwIHJvdW5kZWQtZnVsbCBob3ZlcjpiZy1hY2NlbnQgaG92ZXI6dGV4dC13aGl0ZSB0cmFuc2l0aW9uLWNvbG9ycyBjdXJzb3ItcG9pbnRlclwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgb25DbGljaz17KCkgPT4gc2V0U2VsZWN0ZWRDYXRlZ29yeSh0YWcpfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPFRhZyBjbGFzc05hbWU9XCJ3LTMgaC0zXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICB7dGFnfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICApKX1cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgKX1cclxuXHJcbiAgICAgICAgICAgICAgICAgIHsvKiDpmIXor7vmm7TlpJrmjInpkq4gKi99XHJcbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZmxleCBpdGVtcy1jZW50ZXIganVzdGlmeS1iZXR3ZWVuIHB0LTQgYm9yZGVyLXQgYm9yZGVyLWdyYXktMTAwXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPExpbmsgXHJcbiAgICAgICAgICAgICAgICAgICAgICBocmVmPXtgL25ld3MvJHtpdGVtLnNsdWd9YH1cclxuICAgICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT1cImlubGluZS1mbGV4IGl0ZW1zLWNlbnRlciBnYXAtMiB0ZXh0LWFjY2VudCBob3Zlcjp0ZXh0LWJsdWUtNzAwIGZvbnQtbWVkaXVtIHRleHQtc20gZ3JvdXAtaG92ZXI6Z2FwLTMgdHJhbnNpdGlvbi1hbGxcIlxyXG4gICAgICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgICAgIOmYheivu+WFqOaWh1xyXG4gICAgICAgICAgICAgICAgICAgICAgPEFycm93UmlnaHQgY2xhc3NOYW1lPVwidy00IGgtNCBncm91cC1ob3Zlcjp0cmFuc2xhdGUteC0xIHRyYW5zaXRpb24tdHJhbnNmb3JtXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICA8L0xpbms+XHJcbiAgICAgICAgICAgICAgICAgICAgXHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJ0ZXh0LXhzIHRleHQtZ3JheS00MDBcIj5cclxuICAgICAgICAgICAgICAgICAgICAgIHtNYXRoLmNlaWwoTWF0aC5yYW5kb20oKSAqIDUpICsgMX0g5YiG6ZKf6ZiF6K+7XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPC9hcnRpY2xlPlxyXG4gICAgICAgICAgICApKX1cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICl9XHJcblxyXG4gICAgICAgIHsvKiDliqDovb3mm7TlpJrmjInpkq7vvIjlpoLmnpzmlrDpl7vlvojlpJrnmoTor53vvIkgKi99XHJcbiAgICAgICAge2ZpbHRlcmVkTmV3cy5sZW5ndGggPiA2ICYmIChcclxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwidGV4dC1jZW50ZXIgbXQtMTJcIj5cclxuICAgICAgICAgICAgPGJ1dHRvbiBjbGFzc05hbWU9XCJweC04IHB5LTMgYmctd2hpdGUgYm9yZGVyIGJvcmRlci1ncmF5LTIwMCB0ZXh0LXByaW1hcnkgcm91bmRlZC14bCBob3ZlcjpiZy1ncmF5LTUwIGhvdmVyOmJvcmRlci1hY2NlbnQgdHJhbnNpdGlvbi1hbGwgZHVyYXRpb24tMzAwIGZvbnQtbWVkaXVtXCI+XHJcbiAgICAgICAgICAgICAg5Yqg6L295pu05aSa5paw6Ze7XHJcbiAgICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgKX1cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L3NlY3Rpb24+XHJcbiAgKTtcclxufSJdLCJuYW1lcyI6WyJMaW5rIiwidXNlU3RhdGUiLCJ1c2VNZW1vIiwiU2VhcmNoIiwiRmlsdGVyIiwiQ2FsZW5kYXIiLCJUYWciLCJBcnJvd1JpZ2h0IiwiQ2xvY2siLCJOZXdzTGlzdCIsIm5ld3MiLCJzZWFyY2hUZXJtIiwic2V0U2VhcmNoVGVybSIsInNlbGVjdGVkQ2F0ZWdvcnkiLCJzZXRTZWxlY3RlZENhdGVnb3J5Iiwic29ydEJ5Iiwic2V0U29ydEJ5IiwiY2F0ZWdvcmllcyIsImFsbFRhZ3MiLCJmbGF0TWFwIiwiaXRlbSIsInRhZ3MiLCJ1bmlxdWVUYWdzIiwiQXJyYXkiLCJmcm9tIiwiU2V0IiwiZmlsdGVyZWROZXdzIiwiZmlsdGVyZWQiLCJmaWx0ZXIiLCJtYXRjaGVzU2VhcmNoIiwidGl0bGUiLCJ0b0xvd2VyQ2FzZSIsImluY2x1ZGVzIiwic3VtbWFyeSIsInNvbWUiLCJ0YWciLCJtYXRjaGVzQ2F0ZWdvcnkiLCJzb3J0IiwiYSIsImIiLCJEYXRlIiwiZGF0ZSIsImdldFRpbWUiLCJsb2NhbGVDb21wYXJlIiwic2VjdGlvbiIsImNsYXNzTmFtZSIsImRpdiIsImlucHV0IiwidHlwZSIsInBsYWNlaG9sZGVyIiwidmFsdWUiLCJvbkNoYW5nZSIsImUiLCJ0YXJnZXQiLCJzZWxlY3QiLCJtYXAiLCJjYXRlZ29yeSIsIm9wdGlvbiIsInAiLCJzcGFuIiwibGVuZ3RoIiwiaDMiLCJidXR0b24iLCJvbkNsaWNrIiwiaW5kZXgiLCJhcnRpY2xlIiwidGltZSIsImhyZWYiLCJzbHVnIiwiTWF0aCIsImNlaWwiLCJyYW5kb20iXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(pages-dir-node)/./components/NewsList.tsx\n"); - -/***/ }), - -/***/ "(pages-dir-node)/./components/Sidebar.tsx": -/*!********************************!*\ - !*** ./components/Sidebar.tsx ***! - \********************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ Sidebar)\n/* harmony export */ });\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react/jsx-dev-runtime */ \"react/jsx-dev-runtime\");\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var next_link__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! next/link */ \"(pages-dir-node)/./node_modules/next/link.js\");\n/* harmony import */ var next_link__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(next_link__WEBPACK_IMPORTED_MODULE_1__);\n\n\nfunction Sidebar({ open, onClose }) {\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"aside\", {\n className: `fixed inset-y-0 right-0 w-64 bg-background shadow-lg transform transition-transform duration-300 ` + (open ? 'translate-x-0' : 'translate-x-full'),\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"button\", {\n onClick: onClose,\n className: \"p-4 focus:outline-none text-primary\",\n children: \"✕ 关闭\"\n }, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\Sidebar.tsx\",\n lineNumber: 11,\n columnNumber: 7\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"nav\", {\n className: \"flex flex-col p-6 gap-6 font-medium\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)((next_link__WEBPACK_IMPORTED_MODULE_1___default()), {\n href: \"/features\",\n legacyBehavior: true,\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"a\", {\n onClick: onClose,\n className: \"hover:text-accent\",\n children: \"特性\"\n }, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\Sidebar.tsx\",\n lineNumber: 14,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\Sidebar.tsx\",\n lineNumber: 13,\n columnNumber: 9\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)((next_link__WEBPACK_IMPORTED_MODULE_1___default()), {\n href: \"/pricing\",\n legacyBehavior: true,\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"a\", {\n onClick: onClose,\n className: \"hover:text-accent\",\n children: \"定价\"\n }, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\Sidebar.tsx\",\n lineNumber: 17,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\Sidebar.tsx\",\n lineNumber: 16,\n columnNumber: 9\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)((next_link__WEBPACK_IMPORTED_MODULE_1___default()), {\n href: \"/contact\",\n legacyBehavior: true,\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"a\", {\n onClick: onClose,\n className: \"hover:text-accent\",\n children: \"联系我们\"\n }, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\Sidebar.tsx\",\n lineNumber: 20,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\Sidebar.tsx\",\n lineNumber: 19,\n columnNumber: 9\n }, this)\n ]\n }, void 0, true, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\Sidebar.tsx\",\n lineNumber: 12,\n columnNumber: 7\n }, this)\n ]\n }, void 0, true, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\Sidebar.tsx\",\n lineNumber: 5,\n columnNumber: 5\n }, this);\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1ub2RlKS8uL2NvbXBvbmVudHMvU2lkZWJhci50c3giLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O0FBQTZCO0FBRWQsU0FBU0MsUUFBUSxFQUFFQyxJQUFJLEVBQUVDLE9BQU8sRUFBMEM7SUFDdkYscUJBQ0UsOERBQUNDO1FBQ0NDLFdBQ0UsQ0FBQyxpR0FBaUcsQ0FBQyxHQUNsR0gsQ0FBQUEsT0FBTyxrQkFBa0Isa0JBQWlCOzswQkFHN0MsOERBQUNJO2dCQUFPQyxTQUFTSjtnQkFBU0UsV0FBVTswQkFBc0M7Ozs7OzswQkFDMUUsOERBQUNHO2dCQUFJSCxXQUFVOztrQ0FDYiw4REFBQ0wsa0RBQUlBO3dCQUFDUyxNQUFLO3dCQUFZQyxjQUFjO2tDQUNuQyw0RUFBQ0M7NEJBQUVKLFNBQVNKOzRCQUFTRSxXQUFVO3NDQUFvQjs7Ozs7Ozs7Ozs7a0NBRXJELDhEQUFDTCxrREFBSUE7d0JBQUNTLE1BQUs7d0JBQVdDLGNBQWM7a0NBQ2xDLDRFQUFDQzs0QkFBRUosU0FBU0o7NEJBQVNFLFdBQVU7c0NBQW9COzs7Ozs7Ozs7OztrQ0FFckQsOERBQUNMLGtEQUFJQTt3QkFBQ1MsTUFBSzt3QkFBV0MsY0FBYztrQ0FDbEMsNEVBQUNDOzRCQUFFSixTQUFTSjs0QkFBU0UsV0FBVTtzQ0FBb0I7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBSzdEIiwic291cmNlcyI6WyJEOlxcZG9uZ3l1bi1wcm9qZWN0c1xcdHdvXFxjb21wb25lbnRzXFxTaWRlYmFyLnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgTGluayBmcm9tICduZXh0L2xpbmsnO1xyXG5cclxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gU2lkZWJhcih7IG9wZW4sIG9uQ2xvc2UgfTogeyBvcGVuOiBib29sZWFuOyBvbkNsb3NlOiAoKSA9PiB2b2lkIH0pIHtcclxuICByZXR1cm4gKFxyXG4gICAgPGFzaWRlXHJcbiAgICAgIGNsYXNzTmFtZT17XHJcbiAgICAgICAgYGZpeGVkIGluc2V0LXktMCByaWdodC0wIHctNjQgYmctYmFja2dyb3VuZCBzaGFkb3ctbGcgdHJhbnNmb3JtIHRyYW5zaXRpb24tdHJhbnNmb3JtIGR1cmF0aW9uLTMwMCBgICtcclxuICAgICAgICAob3BlbiA/ICd0cmFuc2xhdGUteC0wJyA6ICd0cmFuc2xhdGUteC1mdWxsJylcclxuICAgICAgfVxyXG4gICAgPlxyXG4gICAgICA8YnV0dG9uIG9uQ2xpY2s9e29uQ2xvc2V9IGNsYXNzTmFtZT1cInAtNCBmb2N1czpvdXRsaW5lLW5vbmUgdGV4dC1wcmltYXJ5XCI+4pyVIOWFs+mXrTwvYnV0dG9uPlxyXG4gICAgICA8bmF2IGNsYXNzTmFtZT1cImZsZXggZmxleC1jb2wgcC02IGdhcC02IGZvbnQtbWVkaXVtXCI+XHJcbiAgICAgICAgPExpbmsgaHJlZj1cIi9mZWF0dXJlc1wiIGxlZ2FjeUJlaGF2aW9yPlxyXG4gICAgICAgICAgPGEgb25DbGljaz17b25DbG9zZX0gY2xhc3NOYW1lPVwiaG92ZXI6dGV4dC1hY2NlbnRcIj7nibnmgKc8L2E+XHJcbiAgICAgICAgPC9MaW5rPlxyXG4gICAgICAgIDxMaW5rIGhyZWY9XCIvcHJpY2luZ1wiIGxlZ2FjeUJlaGF2aW9yPlxyXG4gICAgICAgICAgPGEgb25DbGljaz17b25DbG9zZX0gY2xhc3NOYW1lPVwiaG92ZXI6dGV4dC1hY2NlbnRcIj7lrprku7c8L2E+XHJcbiAgICAgICAgPC9MaW5rPlxyXG4gICAgICAgIDxMaW5rIGhyZWY9XCIvY29udGFjdFwiIGxlZ2FjeUJlaGF2aW9yPlxyXG4gICAgICAgICAgPGEgb25DbGljaz17b25DbG9zZX0gY2xhc3NOYW1lPVwiaG92ZXI6dGV4dC1hY2NlbnRcIj7ogZTns7vmiJHku6w8L2E+XHJcbiAgICAgICAgPC9MaW5rPlxyXG4gICAgICA8L25hdj5cclxuICAgIDwvYXNpZGU+XHJcbiAgKTtcclxufSJdLCJuYW1lcyI6WyJMaW5rIiwiU2lkZWJhciIsIm9wZW4iLCJvbkNsb3NlIiwiYXNpZGUiLCJjbGFzc05hbWUiLCJidXR0b24iLCJvbkNsaWNrIiwibmF2IiwiaHJlZiIsImxlZ2FjeUJlaGF2aW9yIiwiYSJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(pages-dir-node)/./components/Sidebar.tsx\n"); - -/***/ }), - -/***/ "(pages-dir-node)/./lib/content.ts": -/*!************************!*\ - !*** ./lib/content.ts ***! - \************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ getAllNews: () => (/* binding */ getAllNews),\n/* harmony export */ getAllPosts: () => (/* binding */ getAllPosts),\n/* harmony export */ getNewsBySlug: () => (/* binding */ getNewsBySlug)\n/* harmony export */ });\n/* harmony import */ var fs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! fs */ \"fs\");\n/* harmony import */ var fs__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(fs__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var path__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! path */ \"path\");\n/* harmony import */ var path__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(path__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var gray_matter__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! gray-matter */ \"gray-matter\");\n/* harmony import */ var gray_matter__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(gray_matter__WEBPACK_IMPORTED_MODULE_2__);\n\n\n\nconst CONTENT_DIR = path__WEBPACK_IMPORTED_MODULE_1___default().join(process.cwd(), 'content');\nfunction getAllPosts(lang) {\n const dir = path__WEBPACK_IMPORTED_MODULE_1___default().join(CONTENT_DIR, lang);\n if (!fs__WEBPACK_IMPORTED_MODULE_0___default().existsSync(dir)) return [];\n return fs__WEBPACK_IMPORTED_MODULE_0___default().readdirSync(dir).filter((f)=>f.endsWith('.md')).map((file)=>{\n const full = path__WEBPACK_IMPORTED_MODULE_1___default().join(dir, file);\n const { data } = gray_matter__WEBPACK_IMPORTED_MODULE_2___default()(fs__WEBPACK_IMPORTED_MODULE_0___default().readFileSync(full, 'utf-8'));\n const slug = file.replace(/\\.md$/, '');\n return {\n slug: [\n slug\n ],\n frontmatter: data\n };\n });\n}\nconst NEWS_DIR = path__WEBPACK_IMPORTED_MODULE_1___default().join(CONTENT_DIR, 'news');\nfunction getAllNews() {\n if (!fs__WEBPACK_IMPORTED_MODULE_0___default().existsSync(NEWS_DIR)) return [];\n return fs__WEBPACK_IMPORTED_MODULE_0___default().readdirSync(NEWS_DIR).filter((f)=>f.endsWith('.md')).map((file)=>{\n const full = path__WEBPACK_IMPORTED_MODULE_1___default().join(NEWS_DIR, file);\n const { data } = gray_matter__WEBPACK_IMPORTED_MODULE_2___default()(fs__WEBPACK_IMPORTED_MODULE_0___default().readFileSync(full, 'utf-8'));\n const slug = file.replace(/\\.md$/, '');\n return {\n slug,\n title: String(data.title || slug),\n date: String(data.date || ''),\n summary: data.summary ? String(data.summary) : undefined,\n tags: Array.isArray(data.tags) ? data.tags.map(String) : undefined\n };\n }).sort((a, b)=>a.date < b.date ? 1 : -1);\n}\nfunction getNewsBySlug(slug) {\n const filepath = path__WEBPACK_IMPORTED_MODULE_1___default().join(NEWS_DIR, `${slug}.md`);\n if (!fs__WEBPACK_IMPORTED_MODULE_0___default().existsSync(filepath)) return null;\n const raw = fs__WEBPACK_IMPORTED_MODULE_0___default().readFileSync(filepath, 'utf-8');\n const { data, content } = gray_matter__WEBPACK_IMPORTED_MODULE_2___default()(raw);\n return {\n frontmatter: data,\n content\n };\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1ub2RlKS8uL2xpYi9jb250ZW50LnRzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7OztBQUFvQjtBQUNJO0FBQ1M7QUFHakMsTUFBTUcsY0FBY0YsZ0RBQVMsQ0FBQ0ksUUFBUUMsR0FBRyxJQUFJO0FBRXRDLFNBQVNDLFlBQVlDLElBQVk7SUFDdEMsTUFBTUMsTUFBTVIsZ0RBQVMsQ0FBQ0UsYUFBYUs7SUFDbkMsSUFBSSxDQUFDUixvREFBYSxDQUFDUyxNQUFNLE9BQU8sRUFBRTtJQUNsQyxPQUFPVCxxREFBYyxDQUFDUyxLQUNuQkcsTUFBTSxDQUFDQyxDQUFBQSxJQUFLQSxFQUFFQyxRQUFRLENBQUMsUUFDdkJDLEdBQUcsQ0FBQ0MsQ0FBQUE7UUFDSCxNQUFNQyxPQUFPaEIsZ0RBQVMsQ0FBQ1EsS0FBS087UUFDNUIsTUFBTSxFQUFFRSxJQUFJLEVBQUUsR0FBR2hCLGtEQUFNQSxDQUFDRixzREFBZSxDQUFDaUIsTUFBTTtRQUM5QyxNQUFNRyxPQUFPSixLQUFLSyxPQUFPLENBQUMsU0FBUztRQUNuQyxPQUFPO1lBQUVELE1BQU07Z0JBQUNBO2FBQUs7WUFBRUUsYUFBYUo7UUFBSztJQUMzQztBQUNKO0FBV0EsTUFBTUssV0FBV3RCLGdEQUFTLENBQUNFLGFBQWE7QUFFakMsU0FBU3FCO0lBQ2QsSUFBSSxDQUFDeEIsb0RBQWEsQ0FBQ3VCLFdBQVcsT0FBTyxFQUFFO0lBQ3ZDLE9BQU92QixxREFDTyxDQUFDdUIsVUFDWlgsTUFBTSxDQUFDQyxDQUFBQSxJQUFLQSxFQUFFQyxRQUFRLENBQUMsUUFDdkJDLEdBQUcsQ0FBQ0MsQ0FBQUE7UUFDSCxNQUFNQyxPQUFPaEIsZ0RBQVMsQ0FBQ3NCLFVBQVVQO1FBQ2pDLE1BQU0sRUFBRUUsSUFBSSxFQUFFLEdBQUdoQixrREFBTUEsQ0FBQ0Ysc0RBQWUsQ0FBQ2lCLE1BQU07UUFDOUMsTUFBTUcsT0FBT0osS0FBS0ssT0FBTyxDQUFDLFNBQVM7UUFDbkMsT0FBTztZQUNMRDtZQUNBSyxPQUFPQyxPQUFPUixLQUFLTyxLQUFLLElBQUlMO1lBQzVCTyxNQUFNRCxPQUFPUixLQUFLUyxJQUFJLElBQUk7WUFDMUJDLFNBQVNWLEtBQUtVLE9BQU8sR0FBR0YsT0FBT1IsS0FBS1UsT0FBTyxJQUFJQztZQUMvQ0MsTUFBTUMsTUFBTUMsT0FBTyxDQUFDZCxLQUFLWSxJQUFJLElBQUlaLEtBQUtZLElBQUksQ0FBQ2YsR0FBRyxDQUFDVyxVQUFVRztRQUMzRDtJQUNGLEdBQ0NJLElBQUksQ0FBQyxDQUFDQyxHQUFHQyxJQUFPRCxFQUFFUCxJQUFJLEdBQUdRLEVBQUVSLElBQUksR0FBRyxJQUFJLENBQUM7QUFDNUM7QUFFTyxTQUFTUyxjQUFjaEIsSUFBWTtJQUN4QyxNQUFNaUIsV0FBV3BDLGdEQUFTLENBQUNzQixVQUFVLEdBQUdILEtBQUssR0FBRyxDQUFDO0lBQ2pELElBQUksQ0FBQ3BCLG9EQUFhLENBQUNxQyxXQUFXLE9BQU87SUFDckMsTUFBTUMsTUFBTXRDLHNEQUFlLENBQUNxQyxVQUFVO0lBQ3RDLE1BQU0sRUFBRW5CLElBQUksRUFBRXFCLE9BQU8sRUFBRSxHQUFHckMsa0RBQU1BLENBQUNvQztJQUNqQyxPQUFPO1FBQUVoQixhQUFhSjtRQUFNcUI7SUFBUTtBQUN0QyIsInNvdXJjZXMiOlsiRDpcXGRvbmd5dW4tcHJvamVjdHNcXHR3b1xcbGliXFxjb250ZW50LnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBmcyBmcm9tICdmcyc7XHJcbmltcG9ydCBwYXRoIGZyb20gJ3BhdGgnO1xyXG5pbXBvcnQgbWF0dGVyIGZyb20gJ2dyYXktbWF0dGVyJztcclxuXHJcbnR5cGUgUG9zdERhdGEgPSB7IHNsdWc6IHN0cmluZ1tdOyBmcm9udG1hdHRlcjogUmVjb3JkPHN0cmluZywgYW55PiB9O1xyXG5jb25zdCBDT05URU5UX0RJUiA9IHBhdGguam9pbihwcm9jZXNzLmN3ZCgpLCAnY29udGVudCcpO1xyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGdldEFsbFBvc3RzKGxhbmc6IHN0cmluZyk6IFBvc3REYXRhW10ge1xyXG4gIGNvbnN0IGRpciA9IHBhdGguam9pbihDT05URU5UX0RJUiwgbGFuZyk7XHJcbiAgaWYgKCFmcy5leGlzdHNTeW5jKGRpcikpIHJldHVybiBbXTtcclxuICByZXR1cm4gZnMucmVhZGRpclN5bmMoZGlyKVxyXG4gICAgLmZpbHRlcihmID0+IGYuZW5kc1dpdGgoJy5tZCcpKVxyXG4gICAgLm1hcChmaWxlID0+IHtcclxuICAgICAgY29uc3QgZnVsbCA9IHBhdGguam9pbihkaXIsIGZpbGUpO1xyXG4gICAgICBjb25zdCB7IGRhdGEgfSA9IG1hdHRlcihmcy5yZWFkRmlsZVN5bmMoZnVsbCwgJ3V0Zi04JykpO1xyXG4gICAgICBjb25zdCBzbHVnID0gZmlsZS5yZXBsYWNlKC9cXC5tZCQvLCAnJyk7XHJcbiAgICAgIHJldHVybiB7IHNsdWc6IFtzbHVnXSwgZnJvbnRtYXR0ZXI6IGRhdGEgfTtcclxuICAgIH0pO1xyXG59XHJcblxyXG4vLyA9PT09PSBOZXdzIChNYXJrZG93biBDTVMpID09PT09XHJcbmV4cG9ydCB0eXBlIE5ld3NJdGVtID0ge1xyXG4gIHNsdWc6IHN0cmluZztcclxuICB0aXRsZTogc3RyaW5nO1xyXG4gIGRhdGU6IHN0cmluZztcclxuICBzdW1tYXJ5Pzogc3RyaW5nO1xyXG4gIHRhZ3M/OiBzdHJpbmdbXTtcclxufTtcclxuXHJcbmNvbnN0IE5FV1NfRElSID0gcGF0aC5qb2luKENPTlRFTlRfRElSLCAnbmV3cycpO1xyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGdldEFsbE5ld3MoKTogTmV3c0l0ZW1bXSB7XHJcbiAgaWYgKCFmcy5leGlzdHNTeW5jKE5FV1NfRElSKSkgcmV0dXJuIFtdO1xyXG4gIHJldHVybiBmc1xyXG4gICAgLnJlYWRkaXJTeW5jKE5FV1NfRElSKVxyXG4gICAgLmZpbHRlcihmID0+IGYuZW5kc1dpdGgoJy5tZCcpKVxyXG4gICAgLm1hcChmaWxlID0+IHtcclxuICAgICAgY29uc3QgZnVsbCA9IHBhdGguam9pbihORVdTX0RJUiwgZmlsZSk7XHJcbiAgICAgIGNvbnN0IHsgZGF0YSB9ID0gbWF0dGVyKGZzLnJlYWRGaWxlU3luYyhmdWxsLCAndXRmLTgnKSk7XHJcbiAgICAgIGNvbnN0IHNsdWcgPSBmaWxlLnJlcGxhY2UoL1xcLm1kJC8sICcnKTtcclxuICAgICAgcmV0dXJuIHtcclxuICAgICAgICBzbHVnLFxyXG4gICAgICAgIHRpdGxlOiBTdHJpbmcoZGF0YS50aXRsZSB8fCBzbHVnKSxcclxuICAgICAgICBkYXRlOiBTdHJpbmcoZGF0YS5kYXRlIHx8ICcnKSxcclxuICAgICAgICBzdW1tYXJ5OiBkYXRhLnN1bW1hcnkgPyBTdHJpbmcoZGF0YS5zdW1tYXJ5KSA6IHVuZGVmaW5lZCxcclxuICAgICAgICB0YWdzOiBBcnJheS5pc0FycmF5KGRhdGEudGFncykgPyBkYXRhLnRhZ3MubWFwKFN0cmluZykgOiB1bmRlZmluZWQsXHJcbiAgICAgIH0gYXMgTmV3c0l0ZW07XHJcbiAgICB9KVxyXG4gICAgLnNvcnQoKGEsIGIpID0+IChhLmRhdGUgPCBiLmRhdGUgPyAxIDogLTEpKTtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGdldE5ld3NCeVNsdWcoc2x1Zzogc3RyaW5nKTogeyBmcm9udG1hdHRlcjogUmVjb3JkPHN0cmluZywgYW55PjsgY29udGVudDogc3RyaW5nIH0gfCBudWxsIHtcclxuICBjb25zdCBmaWxlcGF0aCA9IHBhdGguam9pbihORVdTX0RJUiwgYCR7c2x1Z30ubWRgKTtcclxuICBpZiAoIWZzLmV4aXN0c1N5bmMoZmlsZXBhdGgpKSByZXR1cm4gbnVsbDtcclxuICBjb25zdCByYXcgPSBmcy5yZWFkRmlsZVN5bmMoZmlsZXBhdGgsICd1dGYtOCcpO1xyXG4gIGNvbnN0IHsgZGF0YSwgY29udGVudCB9ID0gbWF0dGVyKHJhdyk7XHJcbiAgcmV0dXJuIHsgZnJvbnRtYXR0ZXI6IGRhdGEsIGNvbnRlbnQgfTtcclxufSJdLCJuYW1lcyI6WyJmcyIsInBhdGgiLCJtYXR0ZXIiLCJDT05URU5UX0RJUiIsImpvaW4iLCJwcm9jZXNzIiwiY3dkIiwiZ2V0QWxsUG9zdHMiLCJsYW5nIiwiZGlyIiwiZXhpc3RzU3luYyIsInJlYWRkaXJTeW5jIiwiZmlsdGVyIiwiZiIsImVuZHNXaXRoIiwibWFwIiwiZmlsZSIsImZ1bGwiLCJkYXRhIiwicmVhZEZpbGVTeW5jIiwic2x1ZyIsInJlcGxhY2UiLCJmcm9udG1hdHRlciIsIk5FV1NfRElSIiwiZ2V0QWxsTmV3cyIsInRpdGxlIiwiU3RyaW5nIiwiZGF0ZSIsInN1bW1hcnkiLCJ1bmRlZmluZWQiLCJ0YWdzIiwiQXJyYXkiLCJpc0FycmF5Iiwic29ydCIsImEiLCJiIiwiZ2V0TmV3c0J5U2x1ZyIsImZpbGVwYXRoIiwicmF3IiwiY29udGVudCJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(pages-dir-node)/./lib/content.ts\n"); - -/***/ }), - -/***/ "(pages-dir-node)/./node_modules/next/dist/build/webpack/loaders/next-route-loader/index.js?kind=PAGES&page=%2Fnews&preferredRegion=&absolutePagePath=.%2Fpages%5Cnews.tsx&absoluteAppPath=private-next-pages%2F_app&absoluteDocumentPath=private-next-pages%2F_document&middlewareConfigBase64=e30%3D!": -/*!*********************************************************************************************************************************************************************************************************************************************************************************************!*\ - !*** ./node_modules/next/dist/build/webpack/loaders/next-route-loader/index.js?kind=PAGES&page=%2Fnews&preferredRegion=&absolutePagePath=.%2Fpages%5Cnews.tsx&absoluteAppPath=private-next-pages%2F_app&absoluteDocumentPath=private-next-pages%2F_document&middlewareConfigBase64=e30%3D! ***! - \*********************************************************************************************************************************************************************************************************************************************************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ config: () => (/* binding */ config),\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__),\n/* harmony export */ getServerSideProps: () => (/* binding */ getServerSideProps),\n/* harmony export */ getStaticPaths: () => (/* binding */ getStaticPaths),\n/* harmony export */ getStaticProps: () => (/* binding */ getStaticProps),\n/* harmony export */ handler: () => (/* binding */ handler),\n/* harmony export */ reportWebVitals: () => (/* binding */ reportWebVitals),\n/* harmony export */ routeModule: () => (/* binding */ routeModule),\n/* harmony export */ unstable_getServerProps: () => (/* binding */ unstable_getServerProps),\n/* harmony export */ unstable_getServerSideProps: () => (/* binding */ unstable_getServerSideProps),\n/* harmony export */ unstable_getStaticParams: () => (/* binding */ unstable_getStaticParams),\n/* harmony export */ unstable_getStaticPaths: () => (/* binding */ unstable_getStaticPaths),\n/* harmony export */ unstable_getStaticProps: () => (/* binding */ unstable_getStaticProps)\n/* harmony export */ });\n/* harmony import */ var next_dist_server_route_modules_pages_module_compiled__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! next/dist/server/route-modules/pages/module.compiled */ \"(pages-dir-node)/./node_modules/next/dist/server/route-modules/pages/module.compiled.js\");\n/* harmony import */ var next_dist_server_route_modules_pages_module_compiled__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(next_dist_server_route_modules_pages_module_compiled__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var next_dist_server_route_kind__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! next/dist/server/route-kind */ \"(pages-dir-node)/./node_modules/next/dist/server/route-kind.js\");\n/* harmony import */ var next_dist_server_lib_trace_constants__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! next/dist/server/lib/trace/constants */ \"(pages-dir-node)/./node_modules/next/dist/server/lib/trace/constants.js\");\n/* harmony import */ var next_dist_server_lib_trace_constants__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(next_dist_server_lib_trace_constants__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var next_dist_server_lib_trace_tracer__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! next/dist/server/lib/trace/tracer */ \"(pages-dir-node)/./node_modules/next/dist/server/lib/trace/tracer.js\");\n/* harmony import */ var next_dist_server_lib_trace_tracer__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(next_dist_server_lib_trace_tracer__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var next_dist_shared_lib_router_utils_format_url__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! next/dist/shared/lib/router/utils/format-url */ \"next/dist/shared/lib/router/utils/format-url\");\n/* harmony import */ var next_dist_shared_lib_router_utils_format_url__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(next_dist_shared_lib_router_utils_format_url__WEBPACK_IMPORTED_MODULE_4__);\n/* harmony import */ var next_dist_server_request_meta__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! next/dist/server/request-meta */ \"(pages-dir-node)/./node_modules/next/dist/server/request-meta.js\");\n/* harmony import */ var next_dist_server_request_meta__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(next_dist_server_request_meta__WEBPACK_IMPORTED_MODULE_5__);\n/* harmony import */ var next_dist_server_app_render_interop_default__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! next/dist/server/app-render/interop-default */ \"(pages-dir-node)/./node_modules/next/dist/server/app-render/interop-default.js\");\n/* harmony import */ var next_dist_server_instrumentation_utils__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! next/dist/server/instrumentation/utils */ \"(pages-dir-node)/./node_modules/next/dist/server/instrumentation/utils.js\");\n/* harmony import */ var next_dist_shared_lib_page_path_normalize_data_path__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! next/dist/shared/lib/page-path/normalize-data-path */ \"next/dist/shared/lib/page-path/normalize-data-path\");\n/* harmony import */ var next_dist_shared_lib_page_path_normalize_data_path__WEBPACK_IMPORTED_MODULE_8___default = /*#__PURE__*/__webpack_require__.n(next_dist_shared_lib_page_path_normalize_data_path__WEBPACK_IMPORTED_MODULE_8__);\n/* harmony import */ var next_dist_server_response_cache__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! next/dist/server/response-cache */ \"(pages-dir-node)/./node_modules/next/dist/server/response-cache/index.js\");\n/* harmony import */ var next_dist_server_response_cache__WEBPACK_IMPORTED_MODULE_9___default = /*#__PURE__*/__webpack_require__.n(next_dist_server_response_cache__WEBPACK_IMPORTED_MODULE_9__);\n/* harmony import */ var next_dist_build_templates_helpers__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! next/dist/build/templates/helpers */ \"(pages-dir-node)/./node_modules/next/dist/build/templates/helpers.js\");\n/* harmony import */ var private_next_pages_document__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! private-next-pages/_document */ \"(pages-dir-node)/./node_modules/next/dist/pages/_document.js\");\n/* harmony import */ var private_next_pages_document__WEBPACK_IMPORTED_MODULE_11___default = /*#__PURE__*/__webpack_require__.n(private_next_pages_document__WEBPACK_IMPORTED_MODULE_11__);\n/* harmony import */ var private_next_pages_app__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! private-next-pages/_app */ \"(pages-dir-node)/./pages/_app.tsx\");\n/* harmony import */ var _pages_news_tsx__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ./pages\\news.tsx */ \"(pages-dir-node)/./pages/news.tsx\");\n/* harmony import */ var next_dist_server_lib_cache_control__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! next/dist/server/lib/cache-control */ \"(pages-dir-node)/./node_modules/next/dist/server/lib/cache-control.js\");\n/* harmony import */ var next_dist_shared_lib_utils__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! next/dist/shared/lib/utils */ \"next/dist/shared/lib/utils\");\n/* harmony import */ var next_dist_shared_lib_utils__WEBPACK_IMPORTED_MODULE_15___default = /*#__PURE__*/__webpack_require__.n(next_dist_shared_lib_utils__WEBPACK_IMPORTED_MODULE_15__);\n/* harmony import */ var next_dist_lib_redirect_status__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! next/dist/lib/redirect-status */ \"(pages-dir-node)/./node_modules/next/dist/lib/redirect-status.js\");\n/* harmony import */ var next_dist_lib_redirect_status__WEBPACK_IMPORTED_MODULE_16___default = /*#__PURE__*/__webpack_require__.n(next_dist_lib_redirect_status__WEBPACK_IMPORTED_MODULE_16__);\n/* harmony import */ var next_dist_lib_constants__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! next/dist/lib/constants */ \"(pages-dir-node)/./node_modules/next/dist/lib/constants.js\");\n/* harmony import */ var next_dist_lib_constants__WEBPACK_IMPORTED_MODULE_17___default = /*#__PURE__*/__webpack_require__.n(next_dist_lib_constants__WEBPACK_IMPORTED_MODULE_17__);\n/* harmony import */ var next_dist_server_send_payload__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! next/dist/server/send-payload */ \"(pages-dir-node)/./node_modules/next/dist/server/send-payload.js\");\n/* harmony import */ var next_dist_server_send_payload__WEBPACK_IMPORTED_MODULE_18___default = /*#__PURE__*/__webpack_require__.n(next_dist_server_send_payload__WEBPACK_IMPORTED_MODULE_18__);\n/* harmony import */ var next_dist_server_render_result__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(/*! next/dist/server/render-result */ \"(pages-dir-node)/./node_modules/next/dist/server/render-result.js\");\n/* harmony import */ var next_dist_server_response_cache_utils__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(/*! next/dist/server/response-cache/utils */ \"(pages-dir-node)/./node_modules/next/dist/server/response-cache/utils.js\");\n/* harmony import */ var next_dist_server_response_cache_utils__WEBPACK_IMPORTED_MODULE_20___default = /*#__PURE__*/__webpack_require__.n(next_dist_server_response_cache_utils__WEBPACK_IMPORTED_MODULE_20__);\n/* harmony import */ var next_dist_shared_lib_no_fallback_error_external__WEBPACK_IMPORTED_MODULE_21__ = __webpack_require__(/*! next/dist/shared/lib/no-fallback-error.external */ \"next/dist/shared/lib/no-fallback-error.external\");\n/* harmony import */ var next_dist_shared_lib_no_fallback_error_external__WEBPACK_IMPORTED_MODULE_21___default = /*#__PURE__*/__webpack_require__.n(next_dist_shared_lib_no_fallback_error_external__WEBPACK_IMPORTED_MODULE_21__);\n/* harmony import */ var next_dist_client_components_redirect_status_code__WEBPACK_IMPORTED_MODULE_22__ = __webpack_require__(/*! next/dist/client/components/redirect-status-code */ \"(pages-dir-node)/./node_modules/next/dist/client/components/redirect-status-code.js\");\n/* harmony import */ var next_dist_client_components_redirect_status_code__WEBPACK_IMPORTED_MODULE_22___default = /*#__PURE__*/__webpack_require__.n(next_dist_client_components_redirect_status_code__WEBPACK_IMPORTED_MODULE_22__);\n/* harmony import */ var next_dist_shared_lib_router_utils_is_bot__WEBPACK_IMPORTED_MODULE_23__ = __webpack_require__(/*! next/dist/shared/lib/router/utils/is-bot */ \"next/dist/shared/lib/router/utils/is-bot\");\n/* harmony import */ var next_dist_shared_lib_router_utils_is_bot__WEBPACK_IMPORTED_MODULE_23___default = /*#__PURE__*/__webpack_require__.n(next_dist_shared_lib_router_utils_is_bot__WEBPACK_IMPORTED_MODULE_23__);\n/* harmony import */ var next_dist_shared_lib_router_utils_add_path_prefix__WEBPACK_IMPORTED_MODULE_24__ = __webpack_require__(/*! next/dist/shared/lib/router/utils/add-path-prefix */ \"next/dist/shared/lib/router/utils/add-path-prefix\");\n/* harmony import */ var next_dist_shared_lib_router_utils_add_path_prefix__WEBPACK_IMPORTED_MODULE_24___default = /*#__PURE__*/__webpack_require__.n(next_dist_shared_lib_router_utils_add_path_prefix__WEBPACK_IMPORTED_MODULE_24__);\n/* harmony import */ var next_dist_shared_lib_router_utils_remove_trailing_slash__WEBPACK_IMPORTED_MODULE_25__ = __webpack_require__(/*! next/dist/shared/lib/router/utils/remove-trailing-slash */ \"next/dist/shared/lib/router/utils/remove-trailing-slash\");\n/* harmony import */ var next_dist_shared_lib_router_utils_remove_trailing_slash__WEBPACK_IMPORTED_MODULE_25___default = /*#__PURE__*/__webpack_require__.n(next_dist_shared_lib_router_utils_remove_trailing_slash__WEBPACK_IMPORTED_MODULE_25__);\n\n\n\n\n\n\n\n\n\n\n\n// Import the app and document modules.\n\n\n// Import the userland code.\n\n\n\n\n\n\n\n\n\n\n\n\n\n// Re-export the component (should be the default export).\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ((0,next_dist_build_templates_helpers__WEBPACK_IMPORTED_MODULE_10__.hoist)(_pages_news_tsx__WEBPACK_IMPORTED_MODULE_13__, 'default'));\n// Re-export methods.\nconst getStaticProps = (0,next_dist_build_templates_helpers__WEBPACK_IMPORTED_MODULE_10__.hoist)(_pages_news_tsx__WEBPACK_IMPORTED_MODULE_13__, 'getStaticProps');\nconst getStaticPaths = (0,next_dist_build_templates_helpers__WEBPACK_IMPORTED_MODULE_10__.hoist)(_pages_news_tsx__WEBPACK_IMPORTED_MODULE_13__, 'getStaticPaths');\nconst getServerSideProps = (0,next_dist_build_templates_helpers__WEBPACK_IMPORTED_MODULE_10__.hoist)(_pages_news_tsx__WEBPACK_IMPORTED_MODULE_13__, 'getServerSideProps');\nconst config = (0,next_dist_build_templates_helpers__WEBPACK_IMPORTED_MODULE_10__.hoist)(_pages_news_tsx__WEBPACK_IMPORTED_MODULE_13__, 'config');\nconst reportWebVitals = (0,next_dist_build_templates_helpers__WEBPACK_IMPORTED_MODULE_10__.hoist)(_pages_news_tsx__WEBPACK_IMPORTED_MODULE_13__, 'reportWebVitals');\n// Re-export legacy methods.\nconst unstable_getStaticProps = (0,next_dist_build_templates_helpers__WEBPACK_IMPORTED_MODULE_10__.hoist)(_pages_news_tsx__WEBPACK_IMPORTED_MODULE_13__, 'unstable_getStaticProps');\nconst unstable_getStaticPaths = (0,next_dist_build_templates_helpers__WEBPACK_IMPORTED_MODULE_10__.hoist)(_pages_news_tsx__WEBPACK_IMPORTED_MODULE_13__, 'unstable_getStaticPaths');\nconst unstable_getStaticParams = (0,next_dist_build_templates_helpers__WEBPACK_IMPORTED_MODULE_10__.hoist)(_pages_news_tsx__WEBPACK_IMPORTED_MODULE_13__, 'unstable_getStaticParams');\nconst unstable_getServerProps = (0,next_dist_build_templates_helpers__WEBPACK_IMPORTED_MODULE_10__.hoist)(_pages_news_tsx__WEBPACK_IMPORTED_MODULE_13__, 'unstable_getServerProps');\nconst unstable_getServerSideProps = (0,next_dist_build_templates_helpers__WEBPACK_IMPORTED_MODULE_10__.hoist)(_pages_news_tsx__WEBPACK_IMPORTED_MODULE_13__, 'unstable_getServerSideProps');\n// Create and export the route module that will be consumed.\nconst routeModule = new next_dist_server_route_modules_pages_module_compiled__WEBPACK_IMPORTED_MODULE_0__.PagesRouteModule({\n definition: {\n kind: next_dist_server_route_kind__WEBPACK_IMPORTED_MODULE_1__.RouteKind.PAGES,\n page: \"/news\",\n pathname: \"/news\",\n // The following aren't used in production.\n bundlePath: '',\n filename: ''\n },\n distDir: \"build\" || 0,\n projectDir: false || '',\n components: {\n // default export might not exist when optimized for data only\n App: private_next_pages_app__WEBPACK_IMPORTED_MODULE_12__[\"default\"],\n Document: (private_next_pages_document__WEBPACK_IMPORTED_MODULE_11___default())\n },\n userland: _pages_news_tsx__WEBPACK_IMPORTED_MODULE_13__\n});\nasync function handler(req, res, ctx) {\n var _serverFilesManifest_config_experimental, _serverFilesManifest_config;\n let srcPage = \"/news\";\n // turbopack doesn't normalize `/index` in the page name\n // so we need to to process dynamic routes properly\n // TODO: fix turbopack providing differing value from webpack\n if (false) {} else if (srcPage === '/index') {\n // we always normalize /index specifically\n srcPage = '/';\n }\n const multiZoneDraftMode = \"false\";\n const prepareResult = await routeModule.prepare(req, res, {\n srcPage,\n multiZoneDraftMode\n });\n if (!prepareResult) {\n res.statusCode = 400;\n res.end('Bad Request');\n ctx.waitUntil == null ? void 0 : ctx.waitUntil.call(ctx, Promise.resolve());\n return;\n }\n const { buildId, query, params, parsedUrl, originalQuery, originalPathname, buildManifest, nextFontManifest, serverFilesManifest, reactLoadableManifest, prerenderManifest, isDraftMode, isOnDemandRevalidate, revalidateOnlyGenerated, locale, locales, defaultLocale, routerServerContext, nextConfig, resolvedPathname } = prepareResult;\n const isExperimentalCompile = serverFilesManifest == null ? void 0 : (_serverFilesManifest_config = serverFilesManifest.config) == null ? void 0 : (_serverFilesManifest_config_experimental = _serverFilesManifest_config.experimental) == null ? void 0 : _serverFilesManifest_config_experimental.isExperimentalCompile;\n const hasServerProps = Boolean(getServerSideProps);\n const hasStaticProps = Boolean(getStaticProps);\n const hasStaticPaths = Boolean(getStaticPaths);\n const hasGetInitialProps = Boolean((_pages_news_tsx__WEBPACK_IMPORTED_MODULE_13__[\"default\"] || _pages_news_tsx__WEBPACK_IMPORTED_MODULE_13__).getInitialProps);\n const isAmp = query.amp && config.amp;\n let cacheKey = null;\n let isIsrFallback = false;\n let isNextDataRequest = prepareResult.isNextDataRequest && (hasStaticProps || hasServerProps);\n const is404Page = srcPage === '/404';\n const is500Page = srcPage === '/500';\n const isErrorPage = srcPage === '/_error';\n if (!routeModule.isDev && !isDraftMode && hasStaticProps) {\n cacheKey = `${locale ? `/${locale}` : ''}${(srcPage === '/' || resolvedPathname === '/') && locale ? '' : resolvedPathname}${isAmp ? '.amp' : ''}`;\n if (is404Page || is500Page || isErrorPage) {\n cacheKey = `${locale ? `/${locale}` : ''}${srcPage}${isAmp ? '.amp' : ''}`;\n }\n // ensure /index and / is normalized to one key\n cacheKey = cacheKey === '/index' ? '/' : cacheKey;\n }\n if (hasStaticPaths && !isDraftMode) {\n const decodedPathname = (0,next_dist_shared_lib_router_utils_remove_trailing_slash__WEBPACK_IMPORTED_MODULE_25__.removeTrailingSlash)(locale ? (0,next_dist_shared_lib_router_utils_add_path_prefix__WEBPACK_IMPORTED_MODULE_24__.addPathPrefix)(resolvedPathname, `/${locale}`) : resolvedPathname);\n const isPrerendered = Boolean(prerenderManifest.routes[decodedPathname]) || prerenderManifest.notFoundRoutes.includes(decodedPathname);\n const prerenderInfo = prerenderManifest.dynamicRoutes[srcPage];\n if (prerenderInfo) {\n if (prerenderInfo.fallback === false && !isPrerendered) {\n throw new next_dist_shared_lib_no_fallback_error_external__WEBPACK_IMPORTED_MODULE_21__.NoFallbackError();\n }\n if (typeof prerenderInfo.fallback === 'string' && !isPrerendered && !isNextDataRequest) {\n isIsrFallback = true;\n }\n }\n }\n // When serving a bot request, we want to serve a blocking render and not\n // the prerendered page. This ensures that the correct content is served\n // to the bot in the head.\n if (isIsrFallback && (0,next_dist_shared_lib_router_utils_is_bot__WEBPACK_IMPORTED_MODULE_23__.isBot)(req.headers['user-agent'] || '') || (0,next_dist_server_request_meta__WEBPACK_IMPORTED_MODULE_5__.getRequestMeta)(req, 'minimalMode')) {\n isIsrFallback = false;\n }\n const tracer = (0,next_dist_server_lib_trace_tracer__WEBPACK_IMPORTED_MODULE_3__.getTracer)();\n const activeSpan = tracer.getActiveScopeSpan();\n try {\n const method = req.method || 'GET';\n const resolvedUrl = (0,next_dist_shared_lib_router_utils_format_url__WEBPACK_IMPORTED_MODULE_4__.formatUrl)({\n pathname: nextConfig.trailingSlash ? parsedUrl.pathname : (0,next_dist_shared_lib_router_utils_remove_trailing_slash__WEBPACK_IMPORTED_MODULE_25__.removeTrailingSlash)(parsedUrl.pathname || '/'),\n // make sure to only add query values from original URL\n query: hasStaticProps ? {} : originalQuery\n });\n const publicRuntimeConfig = (routerServerContext == null ? void 0 : routerServerContext.publicRuntimeConfig) || nextConfig.publicRuntimeConfig;\n const handleResponse = async (span)=>{\n const responseGenerator = async ({ previousCacheEntry })=>{\n var _previousCacheEntry_value;\n const doRender = async ()=>{\n try {\n var _nextConfig_i18n, _nextConfig_experimental_amp, _nextConfig_experimental_amp1;\n return await routeModule.render(req, res, {\n query: hasStaticProps && !isExperimentalCompile ? {\n ...params,\n ...isAmp ? {\n amp: query.amp\n } : {}\n } : {\n ...query,\n ...params\n },\n params,\n page: srcPage,\n renderContext: {\n isDraftMode,\n isFallback: isIsrFallback,\n developmentNotFoundSourcePage: (0,next_dist_server_request_meta__WEBPACK_IMPORTED_MODULE_5__.getRequestMeta)(req, 'developmentNotFoundSourcePage')\n },\n sharedContext: {\n buildId,\n customServer: Boolean(routerServerContext == null ? void 0 : routerServerContext.isCustomServer) || undefined,\n deploymentId: false\n },\n renderOpts: {\n params,\n routeModule,\n page: srcPage,\n pageConfig: config || {},\n Component: (0,next_dist_server_app_render_interop_default__WEBPACK_IMPORTED_MODULE_6__.interopDefault)(_pages_news_tsx__WEBPACK_IMPORTED_MODULE_13__),\n ComponentMod: _pages_news_tsx__WEBPACK_IMPORTED_MODULE_13__,\n getStaticProps,\n getStaticPaths,\n getServerSideProps,\n supportsDynamicResponse: !hasStaticProps,\n buildManifest,\n nextFontManifest,\n reactLoadableManifest,\n assetPrefix: nextConfig.assetPrefix,\n strictNextHead: Boolean(nextConfig.experimental.strictNextHead),\n previewProps: prerenderManifest.preview,\n images: nextConfig.images,\n nextConfigOutput: nextConfig.output,\n optimizeCss: Boolean(nextConfig.experimental.optimizeCss),\n nextScriptWorkers: Boolean(nextConfig.experimental.nextScriptWorkers),\n domainLocales: (_nextConfig_i18n = nextConfig.i18n) == null ? void 0 : _nextConfig_i18n.domains,\n crossOrigin: nextConfig.crossOrigin,\n multiZoneDraftMode,\n basePath: nextConfig.basePath,\n canonicalBase: nextConfig.amp.canonicalBase || '',\n ampOptimizerConfig: (_nextConfig_experimental_amp = nextConfig.experimental.amp) == null ? void 0 : _nextConfig_experimental_amp.optimizer,\n disableOptimizedLoading: nextConfig.experimental.disableOptimizedLoading,\n largePageDataBytes: nextConfig.experimental.largePageDataBytes,\n // Only the `publicRuntimeConfig` key is exposed to the client side\n // It'll be rendered as part of __NEXT_DATA__ on the client side\n runtimeConfig: Object.keys(publicRuntimeConfig).length > 0 ? publicRuntimeConfig : undefined,\n isExperimentalCompile,\n experimental: {\n clientTraceMetadata: nextConfig.experimental.clientTraceMetadata || []\n },\n locale,\n locales,\n defaultLocale,\n setIsrStatus: routerServerContext == null ? void 0 : routerServerContext.setIsrStatus,\n isNextDataRequest: isNextDataRequest && (hasServerProps || hasStaticProps),\n resolvedUrl,\n // For getServerSideProps and getInitialProps we need to ensure we use the original URL\n // and not the resolved URL to prevent a hydration mismatch on\n // asPath\n resolvedAsPath: hasServerProps || hasGetInitialProps ? (0,next_dist_shared_lib_router_utils_format_url__WEBPACK_IMPORTED_MODULE_4__.formatUrl)({\n // we use the original URL pathname less the _next/data prefix if\n // present\n pathname: isNextDataRequest ? (0,next_dist_shared_lib_page_path_normalize_data_path__WEBPACK_IMPORTED_MODULE_8__.normalizeDataPath)(originalPathname) : originalPathname,\n query: originalQuery\n }) : resolvedUrl,\n isOnDemandRevalidate,\n ErrorDebug: (0,next_dist_server_request_meta__WEBPACK_IMPORTED_MODULE_5__.getRequestMeta)(req, 'PagesErrorDebug'),\n err: (0,next_dist_server_request_meta__WEBPACK_IMPORTED_MODULE_5__.getRequestMeta)(req, 'invokeError'),\n dev: routeModule.isDev,\n // needed for experimental.optimizeCss feature\n distDir: `${routeModule.projectDir}/${routeModule.distDir}`,\n ampSkipValidation: (_nextConfig_experimental_amp1 = nextConfig.experimental.amp) == null ? void 0 : _nextConfig_experimental_amp1.skipValidation,\n ampValidator: (0,next_dist_server_request_meta__WEBPACK_IMPORTED_MODULE_5__.getRequestMeta)(req, 'ampValidator')\n }\n }).then((renderResult)=>{\n const { metadata } = renderResult;\n let cacheControl = metadata.cacheControl;\n if ('isNotFound' in metadata && metadata.isNotFound) {\n return {\n value: null,\n cacheControl\n };\n }\n // Handle `isRedirect`.\n if (metadata.isRedirect) {\n return {\n value: {\n kind: next_dist_server_response_cache__WEBPACK_IMPORTED_MODULE_9__.CachedRouteKind.REDIRECT,\n props: metadata.pageData ?? metadata.flightData\n },\n cacheControl\n };\n }\n return {\n value: {\n kind: next_dist_server_response_cache__WEBPACK_IMPORTED_MODULE_9__.CachedRouteKind.PAGES,\n html: renderResult,\n pageData: renderResult.metadata.pageData,\n headers: renderResult.metadata.headers,\n status: renderResult.metadata.statusCode\n },\n cacheControl\n };\n }).finally(()=>{\n if (!span) return;\n span.setAttributes({\n 'http.status_code': res.statusCode,\n 'next.rsc': false\n });\n const rootSpanAttributes = tracer.getRootSpanAttributes();\n // We were unable to get attributes, probably OTEL is not enabled\n if (!rootSpanAttributes) {\n return;\n }\n if (rootSpanAttributes.get('next.span_type') !== next_dist_server_lib_trace_constants__WEBPACK_IMPORTED_MODULE_2__.BaseServerSpan.handleRequest) {\n console.warn(`Unexpected root span type '${rootSpanAttributes.get('next.span_type')}'. Please report this Next.js issue https://github.com/vercel/next.js`);\n return;\n }\n const route = rootSpanAttributes.get('next.route');\n if (route) {\n const name = `${method} ${route}`;\n span.setAttributes({\n 'next.route': route,\n 'http.route': route,\n 'next.span_name': name\n });\n span.updateName(name);\n } else {\n span.updateName(`${method} ${req.url}`);\n }\n });\n } catch (err) {\n // if this is a background revalidate we need to report\n // the request error here as it won't be bubbled\n if (previousCacheEntry == null ? void 0 : previousCacheEntry.isStale) {\n await routeModule.onRequestError(req, err, {\n routerKind: 'Pages Router',\n routePath: srcPage,\n routeType: 'render',\n revalidateReason: (0,next_dist_server_instrumentation_utils__WEBPACK_IMPORTED_MODULE_7__.getRevalidateReason)({\n isRevalidate: hasStaticProps,\n isOnDemandRevalidate\n })\n }, routerServerContext);\n }\n throw err;\n }\n };\n // if we've already generated this page we no longer\n // serve the fallback\n if (previousCacheEntry) {\n isIsrFallback = false;\n }\n if (isIsrFallback) {\n const fallbackResponse = await routeModule.getResponseCache(req).get(routeModule.isDev ? null : locale ? `/${locale}${srcPage}` : srcPage, async ({ previousCacheEntry: previousFallbackCacheEntry = null })=>{\n if (!routeModule.isDev) {\n return (0,next_dist_server_response_cache_utils__WEBPACK_IMPORTED_MODULE_20__.toResponseCacheEntry)(previousFallbackCacheEntry);\n }\n return doRender();\n }, {\n routeKind: next_dist_server_route_kind__WEBPACK_IMPORTED_MODULE_1__.RouteKind.PAGES,\n isFallback: true,\n isRoutePPREnabled: false,\n isOnDemandRevalidate: false,\n incrementalCache: await routeModule.getIncrementalCache(req, nextConfig, prerenderManifest),\n waitUntil: ctx.waitUntil\n });\n if (fallbackResponse) {\n // Remove the cache control from the response to prevent it from being\n // used in the surrounding cache.\n delete fallbackResponse.cacheControl;\n fallbackResponse.isMiss = true;\n return fallbackResponse;\n }\n }\n if (!(0,next_dist_server_request_meta__WEBPACK_IMPORTED_MODULE_5__.getRequestMeta)(req, 'minimalMode') && isOnDemandRevalidate && revalidateOnlyGenerated && !previousCacheEntry) {\n res.statusCode = 404;\n // on-demand revalidate always sets this header\n res.setHeader('x-nextjs-cache', 'REVALIDATED');\n res.end('This page could not be found');\n return null;\n }\n if (isIsrFallback && (previousCacheEntry == null ? void 0 : (_previousCacheEntry_value = previousCacheEntry.value) == null ? void 0 : _previousCacheEntry_value.kind) === next_dist_server_response_cache__WEBPACK_IMPORTED_MODULE_9__.CachedRouteKind.PAGES) {\n return {\n value: {\n kind: next_dist_server_response_cache__WEBPACK_IMPORTED_MODULE_9__.CachedRouteKind.PAGES,\n html: new next_dist_server_render_result__WEBPACK_IMPORTED_MODULE_19__[\"default\"](Buffer.from(previousCacheEntry.value.html), {\n contentType: 'text/html;utf-8',\n metadata: {\n statusCode: previousCacheEntry.value.status,\n headers: previousCacheEntry.value.headers\n }\n }),\n pageData: {},\n status: previousCacheEntry.value.status,\n headers: previousCacheEntry.value.headers\n },\n cacheControl: {\n revalidate: 0,\n expire: undefined\n }\n };\n }\n return doRender();\n };\n const result = await routeModule.handleResponse({\n cacheKey,\n req,\n nextConfig,\n routeKind: next_dist_server_route_kind__WEBPACK_IMPORTED_MODULE_1__.RouteKind.PAGES,\n isOnDemandRevalidate,\n revalidateOnlyGenerated,\n waitUntil: ctx.waitUntil,\n responseGenerator: responseGenerator,\n prerenderManifest\n });\n // if we got a cache hit this wasn't an ISR fallback\n // but it wasn't generated during build so isn't in the\n // prerender-manifest\n if (isIsrFallback && !(result == null ? void 0 : result.isMiss)) {\n isIsrFallback = false;\n }\n // response is finished is no cache entry\n if (!result) {\n return;\n }\n if (hasStaticProps && !(0,next_dist_server_request_meta__WEBPACK_IMPORTED_MODULE_5__.getRequestMeta)(req, 'minimalMode')) {\n res.setHeader('x-nextjs-cache', isOnDemandRevalidate ? 'REVALIDATED' : result.isMiss ? 'MISS' : result.isStale ? 'STALE' : 'HIT');\n }\n let cacheControl;\n if (!hasStaticProps || isIsrFallback) {\n if (!res.getHeader('Cache-Control')) {\n cacheControl = {\n revalidate: 0,\n expire: undefined\n };\n }\n } else if (is404Page) {\n const notFoundRevalidate = (0,next_dist_server_request_meta__WEBPACK_IMPORTED_MODULE_5__.getRequestMeta)(req, 'notFoundRevalidate');\n cacheControl = {\n revalidate: typeof notFoundRevalidate === 'undefined' ? 0 : notFoundRevalidate,\n expire: undefined\n };\n } else if (is500Page) {\n cacheControl = {\n revalidate: 0,\n expire: undefined\n };\n } else if (result.cacheControl) {\n // If the cache entry has a cache control with a revalidate value that's\n // a number, use it.\n if (typeof result.cacheControl.revalidate === 'number') {\n var _result_cacheControl;\n if (result.cacheControl.revalidate < 1) {\n throw Object.defineProperty(new Error(`Invalid revalidate configuration provided: ${result.cacheControl.revalidate} < 1`), \"__NEXT_ERROR_CODE\", {\n value: \"E22\",\n enumerable: false,\n configurable: true\n });\n }\n cacheControl = {\n revalidate: result.cacheControl.revalidate,\n expire: ((_result_cacheControl = result.cacheControl) == null ? void 0 : _result_cacheControl.expire) ?? nextConfig.expireTime\n };\n } else {\n // revalidate: false\n cacheControl = {\n revalidate: next_dist_lib_constants__WEBPACK_IMPORTED_MODULE_17__.CACHE_ONE_YEAR,\n expire: undefined\n };\n }\n }\n // If cache control is already set on the response we don't\n // override it to allow users to customize it via next.config\n if (cacheControl && !res.getHeader('Cache-Control')) {\n res.setHeader('Cache-Control', (0,next_dist_server_lib_cache_control__WEBPACK_IMPORTED_MODULE_14__.getCacheControlHeader)(cacheControl));\n }\n // notFound: true case\n if (!result.value) {\n var _result_cacheControl1;\n // add revalidate metadata before rendering 404 page\n // so that we can use this as source of truth for the\n // cache-control header instead of what the 404 page returns\n // for the revalidate value\n (0,next_dist_server_request_meta__WEBPACK_IMPORTED_MODULE_5__.addRequestMeta)(req, 'notFoundRevalidate', (_result_cacheControl1 = result.cacheControl) == null ? void 0 : _result_cacheControl1.revalidate);\n res.statusCode = 404;\n if (isNextDataRequest) {\n res.end('{\"notFound\":true}');\n return;\n }\n // TODO: should route-module itself handle rendering the 404\n if (routerServerContext == null ? void 0 : routerServerContext.render404) {\n await routerServerContext.render404(req, res, parsedUrl, false);\n } else {\n res.end('This page could not be found');\n }\n return;\n }\n if (result.value.kind === next_dist_server_response_cache__WEBPACK_IMPORTED_MODULE_9__.CachedRouteKind.REDIRECT) {\n if (isNextDataRequest) {\n res.setHeader('content-type', 'application/json');\n res.end(JSON.stringify(result.value.props));\n return;\n } else {\n const handleRedirect = (pageData)=>{\n const redirect = {\n destination: pageData.pageProps.__N_REDIRECT,\n statusCode: pageData.pageProps.__N_REDIRECT_STATUS,\n basePath: pageData.pageProps.__N_REDIRECT_BASE_PATH\n };\n const statusCode = (0,next_dist_lib_redirect_status__WEBPACK_IMPORTED_MODULE_16__.getRedirectStatus)(redirect);\n const { basePath } = nextConfig;\n if (basePath && redirect.basePath !== false && redirect.destination.startsWith('/')) {\n redirect.destination = `${basePath}${redirect.destination}`;\n }\n if (redirect.destination.startsWith('/')) {\n redirect.destination = (0,next_dist_shared_lib_utils__WEBPACK_IMPORTED_MODULE_15__.normalizeRepeatedSlashes)(redirect.destination);\n }\n res.statusCode = statusCode;\n res.setHeader('Location', redirect.destination);\n if (statusCode === next_dist_client_components_redirect_status_code__WEBPACK_IMPORTED_MODULE_22__.RedirectStatusCode.PermanentRedirect) {\n res.setHeader('Refresh', `0;url=${redirect.destination}`);\n }\n res.end(redirect.destination);\n };\n await handleRedirect(result.value.props);\n return null;\n }\n }\n if (result.value.kind !== next_dist_server_response_cache__WEBPACK_IMPORTED_MODULE_9__.CachedRouteKind.PAGES) {\n throw Object.defineProperty(new Error(`Invariant: received non-pages cache entry in pages handler`), \"__NEXT_ERROR_CODE\", {\n value: \"E695\",\n enumerable: false,\n configurable: true\n });\n }\n // In dev, we should not cache pages for any reason.\n if (routeModule.isDev) {\n res.setHeader('Cache-Control', 'no-store, must-revalidate');\n }\n // Draft mode should never be cached\n if (isDraftMode) {\n res.setHeader('Cache-Control', 'private, no-cache, no-store, max-age=0, must-revalidate');\n }\n // when invoking _error before pages/500 we don't actually\n // send the _error response\n if ((0,next_dist_server_request_meta__WEBPACK_IMPORTED_MODULE_5__.getRequestMeta)(req, 'customErrorRender') || isErrorPage && (0,next_dist_server_request_meta__WEBPACK_IMPORTED_MODULE_5__.getRequestMeta)(req, 'minimalMode') && res.statusCode === 500) {\n return null;\n }\n await (0,next_dist_server_send_payload__WEBPACK_IMPORTED_MODULE_18__.sendRenderResult)({\n req,\n res,\n // If we are rendering the error page it's not a data request\n // anymore\n result: isNextDataRequest && !isErrorPage && !is500Page ? new next_dist_server_render_result__WEBPACK_IMPORTED_MODULE_19__[\"default\"](Buffer.from(JSON.stringify(result.value.pageData)), {\n contentType: 'application/json',\n metadata: result.value.html.metadata\n }) : result.value.html,\n generateEtags: nextConfig.generateEtags,\n poweredByHeader: nextConfig.poweredByHeader,\n cacheControl: routeModule.isDev ? undefined : cacheControl,\n type: isNextDataRequest ? 'json' : 'html'\n });\n };\n // TODO: activeSpan code path is for when wrapped by\n // next-server can be removed when this is no longer used\n if (activeSpan) {\n await handleResponse();\n } else {\n await tracer.withPropagatedContext(req.headers, ()=>tracer.trace(next_dist_server_lib_trace_constants__WEBPACK_IMPORTED_MODULE_2__.BaseServerSpan.handleRequest, {\n spanName: `${method} ${req.url}`,\n kind: next_dist_server_lib_trace_tracer__WEBPACK_IMPORTED_MODULE_3__.SpanKind.SERVER,\n attributes: {\n 'http.method': method,\n 'http.target': req.url\n }\n }, handleResponse));\n }\n } catch (err) {\n await routeModule.onRequestError(req, err, {\n routerKind: 'Pages Router',\n routePath: srcPage,\n routeType: 'render',\n revalidateReason: (0,next_dist_server_instrumentation_utils__WEBPACK_IMPORTED_MODULE_7__.getRevalidateReason)({\n isRevalidate: hasStaticProps,\n isOnDemandRevalidate\n })\n }, routerServerContext);\n // rethrow so that we can handle serving error page\n throw err;\n }\n}\n\n//# sourceMappingURL=pages.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1ub2RlKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvYnVpbGQvd2VicGFjay9sb2FkZXJzL25leHQtcm91dGUtbG9hZGVyL2luZGV4LmpzP2tpbmQ9UEFHRVMmcGFnZT0lMkZuZXdzJnByZWZlcnJlZFJlZ2lvbj0mYWJzb2x1dGVQYWdlUGF0aD0uJTJGcGFnZXMlNUNuZXdzLnRzeCZhYnNvbHV0ZUFwcFBhdGg9cHJpdmF0ZS1uZXh0LXBhZ2VzJTJGX2FwcCZhYnNvbHV0ZURvY3VtZW50UGF0aD1wcml2YXRlLW5leHQtcGFnZXMlMkZfZG9jdW1lbnQmbWlkZGxld2FyZUNvbmZpZ0Jhc2U2ND1lMzAlM0QhIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUF3RjtBQUNoQztBQUNjO0FBQ0U7QUFDQztBQUNNO0FBQ0Y7QUFDQTtBQUNVO0FBQ3JCO0FBQ1I7QUFDMUQ7QUFDeUQ7QUFDVjtBQUMvQztBQUM4QztBQUM2QjtBQUNMO0FBQ0o7QUFDVDtBQUNRO0FBQ1A7QUFDbUI7QUFDSztBQUNJO0FBQ3JCO0FBQ2lCO0FBQ1k7QUFDOUY7QUFDQSxpRUFBZSx5RUFBSyxDQUFDLDZDQUFRLFlBQVksRUFBQztBQUMxQztBQUNPLHVCQUF1Qix5RUFBSyxDQUFDLDZDQUFRO0FBQ3JDLHVCQUF1Qix5RUFBSyxDQUFDLDZDQUFRO0FBQ3JDLDJCQUEyQix5RUFBSyxDQUFDLDZDQUFRO0FBQ3pDLGVBQWUseUVBQUssQ0FBQyw2Q0FBUTtBQUM3Qix3QkFBd0IseUVBQUssQ0FBQyw2Q0FBUTtBQUM3QztBQUNPLGdDQUFnQyx5RUFBSyxDQUFDLDZDQUFRO0FBQzlDLGdDQUFnQyx5RUFBSyxDQUFDLDZDQUFRO0FBQzlDLGlDQUFpQyx5RUFBSyxDQUFDLDZDQUFRO0FBQy9DLGdDQUFnQyx5RUFBSyxDQUFDLDZDQUFRO0FBQzlDLG9DQUFvQyx5RUFBSyxDQUFDLDZDQUFRO0FBQ3pEO0FB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QUNBO0FBQ0EsZ0JBQWdCLDZFQUFjLDZDQUE2Qyw2RUFBYztBQUN6RjtBQUNBO0FBQ0Esa0JBQWtCLGdGQUFnQjtBQUNsQztBQUNBO0FBQ0E7QUFDQTtBQUNBLDhFQUE4RSx1RUFBWTtBQUMxRjtBQUNBO0FBQ0EsaUJBQWlCO0FBQ2pCO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsYUFBYTtBQUNiO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxVQUFVO0FBQ1YsNkVBQTZFLGdGQUFjO0FBQzNGLGlDQUFpQyxRQUFRLEVBQUUsUUFBUTtBQUNuRCwwQkFBMEIsdUVBQVE7QUFDbEM7QUFDQTtBQUNBO0FBQ0E7QUFDQSxpQkFBaUI7QUFDakI7QUFDQSxNQUFNO0FBQ047QUFDQTtBQUNBO0FBQ0E7QUFDQSw4QkFBOEIsMkZBQW1CO0FBQ2pEO0FBQ0E7QUFDQSxhQUFhO0FBQ2IsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBOztBQUVBIiwic291cmNlcyI6WyIiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUGFnZXNSb3V0ZU1vZHVsZSB9IGZyb20gXCJuZXh0L2Rpc3Qvc2VydmVyL3JvdXRlLW1vZHVsZXMvcGFnZXMvbW9kdWxlLmNvbXBpbGVkXCI7XG5pbXBvcnQgeyBSb3V0ZUtpbmQgfSBmcm9tIFwibmV4dC9kaXN0L3NlcnZlci9yb3V0ZS1raW5kXCI7XG5pbXBvcnQgeyBCYXNlU2VydmVyU3BhbiB9IGZyb20gXCJuZXh0L2Rpc3Qvc2VydmVyL2xpYi90cmFjZS9jb25zdGFudHNcIjtcbmltcG9ydCB7IGdldFRyYWNlciwgU3BhbktpbmQgfSBmcm9tIFwibmV4dC9kaXN0L3NlcnZlci9saWIvdHJhY2UvdHJhY2VyXCI7XG5pbXBvcnQgeyBmb3JtYXRVcmwgfSBmcm9tIFwibmV4dC9kaXN0L3NoYXJlZC9saWIvcm91dGVyL3V0aWxzL2Zvcm1hdC11cmxcIjtcbmltcG9ydCB7IGFkZFJlcXVlc3RNZXRhLCBnZXRSZXF1ZXN0TWV0YSB9IGZyb20gXCJuZXh0L2Rpc3Qvc2VydmVyL3JlcXVlc3QtbWV0YVwiO1xuaW1wb3J0IHsgaW50ZXJvcERlZmF1bHQgfSBmcm9tIFwibmV4dC9kaXN0L3NlcnZlci9hcHAtcmVuZGVyL2ludGVyb3AtZGVmYXVsdFwiO1xuaW1wb3J0IHsgZ2V0UmV2YWxpZGF0ZVJlYXNvbiB9IGZyb20gXCJuZXh0L2Rpc3Qvc2VydmVyL2luc3RydW1lbnRhdGlvbi91dGlsc1wiO1xuaW1wb3J0IHsgbm9ybWFsaXplRGF0YVBhdGggfSBmcm9tIFwibmV4dC9kaXN0L3NoYXJlZC9saWIvcGFnZS1wYXRoL25vcm1hbGl6ZS1kYXRhLXBhdGhcIjtcbmltcG9ydCB7IENhY2hlZFJvdXRlS2luZCB9IGZyb20gXCJuZXh0L2Rpc3Qvc2VydmVyL3Jlc3BvbnNlLWNhY2hlXCI7XG5pbXBvcnQgeyBob2lzdCB9IGZyb20gXCJuZXh0L2Rpc3QvYnVpbGQvdGVtcGxhdGVzL2hlbHBlcnNcIjtcbi8vIEltcG9ydCB0aGUgYXBwIGFuZCBkb2N1bWVudCBtb2R1bGVzLlxuaW1wb3J0ICogYXMgZG9jdW1lbnQgZnJvbSBcInByaXZhdGUtbmV4dC1wYWdlcy9fZG9jdW1lbnRcIjtcbmltcG9ydCAqIGFzIGFwcCBmcm9tIFwicHJpdmF0ZS1uZXh0LXBhZ2VzL19hcHBcIjtcbi8vIEltcG9ydCB0aGUgdXNlcmxhbmQgY29kZS5cbmltcG9ydCAqIGFzIHVzZXJsYW5kIGZyb20gXCIuL3BhZ2VzXFxcXG5ld3MudHN4XCI7XG5pbXBvcnQgeyBnZXRDYWNoZUNvbnRyb2xIZWFkZXIgfSBmcm9tIFwibmV4dC9kaXN0L3NlcnZlci9saWIvY2FjaGUtY29udHJvbFwiO1xuaW1wb3J0IHsgbm9ybWFsaXplUmVwZWF0ZWRTbGFzaGVzIH0gZnJvbSBcIm5leHQvZGlzdC9zaGFyZWQvbGliL3V0aWxzXCI7XG5pbXBvcnQgeyBnZXRSZWRpcmVjdFN0YXR1cyB9IGZyb20gXCJuZXh0L2Rpc3QvbGliL3JlZGlyZWN0LXN0YXR1c1wiO1xuaW1wb3J0IHsgQ0FDSEVfT05FX1lFQVIgfSBmcm9tIFwibmV4dC9kaXN0L2xpYi9jb25zdGFudHNcIjtcbmltcG9ydCB7IHNlbmRSZW5kZXJSZXN1bHQgfSBmcm9tIFwibmV4dC9kaXN0L3NlcnZlci9zZW5kLXBheWxvYWRcIjtcbmltcG9ydCBSZW5kZXJSZXN1bHQgZnJvbSBcIm5leHQvZGlzdC9zZXJ2ZXIvcmVuZGVyLXJlc3VsdFwiO1xuaW1wb3J0IHsgdG9SZXNwb25zZUNhY2hlRW50cnkgfSBmcm9tIFwibmV4dC9kaXN0L3NlcnZlci9yZXNwb25zZS1jYWNoZS91dGlsc1wiO1xuaW1wb3J0IHsgTm9GYWxsYmFja0Vycm9yIH0gZnJvbSBcIm5leHQvZGlzdC9zaGFyZWQvbGliL25vLWZhbGxiYWNrLWVycm9yLmV4dGVybmFsXCI7XG5pbXBvcnQgeyBSZWRpcmVjdFN0YXR1c0NvZGUgfSBmcm9tIFwibmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL3JlZGlyZWN0LXN0YXR1cy1jb2RlXCI7XG5pbXBvcnQgeyBpc0JvdCB9IGZyb20gXCJuZXh0L2Rpc3Qvc2hhcmVkL2xpYi9yb3V0ZXIvdXRpbHMvaXMtYm90XCI7XG5pbXBvcnQgeyBhZGRQYXRoUHJlZml4IH0gZnJvbSBcIm5leHQvZGlzdC9zaGFyZWQvbGliL3JvdXRlci91dGlscy9hZGQtcGF0aC1wcmVmaXhcIjtcbmltcG9ydCB7IHJlbW92ZVRyYWlsaW5nU2xhc2ggfSBmcm9tIFwibmV4dC9kaXN0L3NoYXJlZC9saWIvcm91dGVyL3V0aWxzL3JlbW92ZS10cmFpbGluZy1zbGFzaFwiO1xuLy8gUmUtZXhwb3J0IHRoZSBjb21wb25lbnQgKHNob3VsZCBiZSB0aGUgZGVmYXVsdCBleHBvcnQpLlxuZXhwb3J0IGRlZmF1bHQgaG9pc3QodXNlcmxhbmQsICdkZWZhdWx0Jyk7XG4vLyBSZS1leHBvcnQgbWV0aG9kcy5cbmV4cG9ydCBjb25zdCBnZXRTdGF0aWNQcm9wcyA9IGhvaXN0KHVzZXJsYW5kLCAnZ2V0U3RhdGljUHJvcHMnKTtcbmV4cG9ydCBjb25zdCBnZXRTdGF0aWNQYXRocyA9IGhvaXN0KHVzZXJsYW5kLCAnZ2V0U3RhdGljUGF0aHMnKTtcbmV4cG9ydCBjb25zdCBnZXRTZXJ2ZXJTaWRlUHJvcHMgPSBob2lzdCh1c2VybGFuZCwgJ2dldFNlcnZlclNpZGVQcm9wcycpO1xuZXhwb3J0IGNvbnN0IGNvbmZpZyA9IGhvaXN0KHVzZXJsYW5kLCAnY29uZmlnJyk7XG5leHBvcnQgY29uc3QgcmVwb3J0V2ViVml0YWxzID0gaG9pc3QodXNlcmxhbmQsICdyZXBvcnRXZWJWaXRhbHMnKTtcbi8vIFJlLWV4cG9ydCBsZWdhY3kgbWV0aG9kcy5cbmV4cG9ydCBjb25zdCB1bnN0YWJsZV9nZXRTdGF0aWNQcm9wcyA9IGhvaXN0KHVzZXJsYW5kLCAndW5zdGFibGVfZ2V0U3RhdGljUHJvcHMnKTtcbmV4cG9ydCBjb25zdCB1bnN0YWJsZV9nZXRTdGF0aWNQYXRocyA9IGhvaXN0KHVzZXJsYW5kLCAndW5zdGFibGVfZ2V0U3RhdGljUGF0aHMnKTtcbmV4cG9ydCBjb25zdCB1bnN0YWJsZV9nZXRTdGF0aWNQYXJhbXMgPSBob2lzdCh1c2VybGFuZCwgJ3Vuc3RhYmxlX2dldFN0YXRpY1BhcmFtcycpO1xuZXhwb3J0IGNvbnN0IHVuc3RhYmxlX2dldFNlcnZlclByb3BzID0gaG9pc3QodXNlcmxhbmQsICd1bnN0YWJsZV9nZXRTZXJ2ZXJQcm9wcycpO1xuZXhwb3J0IGNvbnN0IHVuc3RhYmxlX2dldFNlcnZlclNpZGVQcm9wcyA9IGhvaXN0KHVzZXJsYW5kLCAndW5zdGFibGVfZ2V0U2VydmVyU2lkZVByb3BzJyk7XG4vLyBDcmVhdGUgYW5kIGV4cG9ydCB0aGUgcm91dGUgbW9kdWxlIHRoYXQgd2lsbCBiZSBjb25zdW1lZC5cbmV4cG9ydCBjb25zdCByb3V0ZU1vZHVsZSA9IG5ldyBQYWdlc1JvdXRlTW9kdWxlKHtcbiAgICBkZWZpbml0aW9uOiB7XG4gICAgICAgIGtpbmQ6IFJvdXRlS2luZC5QQUdFUyxcbiAgICAgICAgcGFnZTogXCIvbmV3c1wiLFxuICAgICAgICBwYXRobmFtZTogXCIvbmV3c1wiLFxuICAgICAgICAvLyBUaGUgZm9sbG93aW5nIGFyZW4ndCB1c2VkIGluIHByb2R1Y3Rpb24uXG4gICAgICAgIGJ1bmRsZVBhdGg6ICcnLFxuICAgICAgICBmaWxlbmFtZTogJydcbiAgICB9LFxuICAgIGRpc3REaXI6IHByb2Nlc3MuZW52Ll9fTkVYVF9SRUxBVElWRV9ESVNUX0RJUiB8fCAnJyxcbiAgICBwcm9qZWN0RGlyOiBwcm9jZXNzLmVudi5fX05FWFRfUkVMQVRJVkVfUFJPSkVDVF9ESVIgfHwgJycsXG4gICAgY29tcG9uZW50czoge1xuICAgICAgICAvLyBkZWZhdWx0IGV4cG9ydCBtaWdodCBub3QgZXhpc3Qgd2hlbiBvcHRpbWl6ZWQgZm9yIGRhdGEgb25seVxuICAgICAgICBBcHA6IGFwcC5kZWZhdWx0LFxuICAgICAgICBEb2N1bWVudDogZG9jdW1lbnQuZGVmYXVsdFxuICAgIH0sXG4gICAgdXNlcmxhbmRcbn0pO1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGhhbmRsZXIocmVxLCByZXMsIGN0eCkge1xuICAgIHZhciBfc2VydmVyRmlsZXNNYW5pZmVzdF9jb25maWdfZXhwZXJpbWVudGFsLCBfc2VydmVyRmlsZXNNYW5pZmVzdF9jb25maWc7XG4gICAgbGV0IHNyY1BhZ2UgPSBcIi9uZXdzXCI7XG4gICAgLy8gdHVyYm9wYWNrIGRvZXNuJ3Qgbm9ybWFsaXplIGAvaW5kZXhgIGluIHRoZSBwYWdlIG5hbWVcbiAgICAvLyBzbyB3ZSBuZWVkIHRvIHRvIHByb2Nlc3MgZHluYW1pYyByb3V0ZXMgcHJvcGVybHlcbiAgICAvLyBUT0RPOiBmaXggdHVyYm9wYWNrIHByb3ZpZGluZyBkaWZmZXJpbmcgdmFsdWUgZnJvbSB3ZWJwYWNrXG4gICAgaWYgKHByb2Nlc3MuZW52LlRVUkJPUEFDSykge1xuICAgICAgICBzcmNQYWdlID0gc3JjUGFnZS5yZXBsYWNlKC9cXC9pbmRleCQvLCAnJykgfHwgJy8nO1xuICAgIH0gZWxzZSBpZiAoc3JjUGFnZSA9PT0gJy9pbmRleCcpIHtcbiAgICAgICAgLy8gd2UgYWx3YXlzIG5vcm1hbGl6ZSAvaW5kZXggc3BlY2lmaWNhbGx5XG4gICAgICAgIHNyY1BhZ2UgPSAnLyc7XG4gICAgfVxuICAgIGNvbnN0IG11bHRpWm9uZURyYWZ0TW9kZSA9IHByb2Nlc3MuZW52Ll9fTkVYVF9NVUxUSV9aT05FX0RSQUZUX01PREU7XG4gICAgY29uc3QgcHJlcGFyZVJlc3VsdCA9IGF3YWl0IHJvdXRlTW9kdWxlLnByZXBhcmUocmVxLCByZXMsIHtcbiAgICAgICAgc3JjUGFnZSxcbiAgICAgICAgbXVsdGlab25lRHJhZnRNb2RlXG4gICAgfSk7XG4gICAgaWYgKCFwcmVwYXJlUmVzdWx0KSB7XG4gICAgICAgIHJlcy5zdGF0dXNDb2RlID0gNDAwO1xuICAgICAgICByZXMuZW5kKCdCYWQgUmVxdWVzdCcpO1xuICAgICAgICBjdHgud2FpdFVudGlsID09IG51bGwgPyB2b2lkIDAgOiBjdHgud2FpdFVudGlsLmNhbGwoY3R4LCBQcm9taXNlLnJlc29sdmUoKSk7XG4gICAgICAgIHJldHVybjtcbiAgICB9XG4gICAgY29uc3QgeyBidWlsZElkLCBxdWVyeSwgcGFyYW1zLCBwYXJzZWRVcmwsIG9yaWdpbmFsUXVlcnksIG9yaWdpbmFsUGF0aG5hbWUsIGJ1aWxkTWFuaWZlc3QsIG5leHRGb250TWFuaWZlc3QsIHNlcnZlckZpbGVzTWFuaWZlc3QsIHJlYWN0TG9hZGFibGVNYW5pZmVzdCwgcHJlcmVuZGVyTWFuaWZlc3QsIGlzRHJhZnRNb2RlLCBpc09uRGVtYW5kUmV2YWxpZGF0ZSwgcmV2YWxpZGF0ZU9ubHlHZW5lcmF0ZWQsIGxvY2FsZSwgbG9jYWxlcywgZGVmYXVsdExvY2FsZSwgcm91dGVyU2VydmVyQ29udGV4dCwgbmV4dENvbmZpZywgcmVzb2x2ZWRQYXRobmFtZSB9ID0gcHJlcGFyZVJlc3VsdDtcbiAgICBjb25zdCBpc0V4cGVyaW1lbnRhbENvbXBpbGUgPSBzZXJ2ZXJGaWxlc01hbmlmZXN0ID09IG51bGwgPyB2b2lkIDAgOiAoX3NlcnZlckZpbGVzTWFuaWZlc3RfY29uZmlnID0gc2VydmVyRmlsZXNNYW5pZmVzdC5jb25maWcpID09IG51bGwgPyB2b2lkIDAgOiAoX3NlcnZlckZpbGVzTWFuaWZlc3RfY29uZmlnX2V4cGVyaW1lbnRhbCA9IF9zZXJ2ZXJGaWxlc01hbmlmZXN0X2NvbmZpZy5leHBlcmltZW50YWwpID09IG51bGwgPyB2b2lkIDAgOiBfc2VydmVyRmlsZXNNYW5pZmVzdF9jb25maWdfZXhwZXJpbWVudGFsLmlzRXhwZXJpbWVudGFsQ29tcGlsZTtcbiAgICBjb25zdCBoYXNTZXJ2ZXJQcm9wcyA9IEJvb2xlYW4oZ2V0U2VydmVyU2lkZVByb3BzKTtcbiAgICBjb25zdCBoYXNTdGF0aWNQcm9wcyA9IEJvb2xlYW4oZ2V0U3RhdGljUHJvcHMpO1xuICAgIGNvbnN0IGhhc1N0YXRpY1BhdGhzID0gQm9vbGVhbihnZXRTdGF0aWNQYXRocyk7XG4gICAgY29uc3QgaGFzR2V0SW5pdGlhbFByb3BzID0gQm9vbGVhbigodXNlcmxhbmQuZGVmYXVsdCB8fCB1c2VybGFuZCkuZ2V0SW5pdGlhbFByb3BzKTtcbiAgICBjb25zdCBpc0FtcCA9IHF1ZXJ5LmFtcCAmJiBjb25maWcuYW1wO1xuICAgIGxldCBjYWNoZUtleSA9IG51bGw7XG4gICAgbGV0IGlzSXNyRmFsbGJhY2sgPSBmYWxzZTtcbiAgICBsZXQgaXNOZXh0RGF0YVJlcXVlc3QgPSBwcmVwYXJlUmVzdWx0LmlzTmV4dERhdGFSZXF1ZXN0ICYmIChoYXNTdGF0aWNQcm9wcyB8fCBoYXNTZXJ2ZXJQcm9wcyk7XG4gICAgY29uc3QgaXM0MDRQYWdlID0gc3JjUGFnZSA9PT0gJy80MDQnO1xuICAgIGNvbnN0IGlzNTAwUGFnZSA9IHNyY1BhZ2UgPT09ICcvNTAwJztcbiAgICBjb25zdCBpc0Vycm9yUGFnZSA9IHNyY1BhZ2UgPT09ICcvX2Vycm9yJztcbiAgICBpZiAoIXJvdXRlTW9kdWxlLmlzRGV2ICYmICFpc0RyYWZ0TW9kZSAmJiBoYXNTdGF0aWNQcm9wcykge1xuICAgICAgICBjYWNoZUtleSA9IGAke2xvY2FsZSA/IGAvJHtsb2NhbGV9YCA6ICcnfSR7KHNyY1BhZ2UgPT09ICcvJyB8fCByZXNvbHZlZFBhdGhuYW1lID09PSAnLycpICYmIGxvY2FsZSA/ICcnIDogcmVzb2x2ZWRQYXRobmFtZX0ke2lzQW1wID8gJy5hbXAnIDogJyd9YDtcbiAgICAgICAgaWYgKGlzNDA0UGFnZSB8fCBpczUwMFBhZ2UgfHwgaXNFcnJvclBhZ2UpIHtcbiAgICAgICAgICAgIGNhY2hlS2V5ID0gYCR7bG9jYWxlID8gYC8ke2xvY2FsZX1gIDogJyd9JHtzcmNQYWdlfSR7aXNBbXAgPyAnLmFtcCcgOiAnJ31gO1xuICAgICAgICB9XG4gICAgICAgIC8vIGVuc3VyZSAvaW5kZXggYW5kIC8gaXMgbm9ybWFsaXplZCB0byBvbmUga2V5XG4gICAgICAgIGNhY2hlS2V5ID0gY2FjaGVLZXkgPT09ICcvaW5kZXgnID8gJy8nIDogY2FjaGVLZXk7XG4gICAgfVxuICAgIGlmIChoYXNTdGF0aWNQYXRocyAmJiAhaXNEcmFmdE1vZGUpIHtcbiAgICAgICAgY29uc3QgZGVjb2RlZFBhdGhuYW1lID0gcmVtb3ZlVHJhaWxpbmdTbGFzaChsb2NhbGUgPyBhZGRQYXRoUHJlZml4KHJlc29sdmVkUGF0aG5hbWUsIGAvJHtsb2NhbGV9YCkgOiByZXNvbHZlZFBhdGhuYW1lKTtcbiAgICAgICAgY29uc3QgaXNQcmVyZW5kZXJlZCA9IEJvb2xlYW4ocHJlcmVuZGVyTWFuaWZlc3Qucm91dGVzW2RlY29kZWRQYXRobmFtZV0pIHx8IHByZXJlbmRlck1hbmlmZXN0Lm5vdEZvdW5kUm91dGVzLmluY2x1ZGVzKGRlY29kZWRQYXRobmFtZSk7XG4gICAgICAgIGNvbnN0IHByZXJlbmRlckluZm8gPSBwcmVyZW5kZXJNYW5pZmVzdC5keW5hbWljUm91dGVzW3NyY1BhZ2VdO1xuICAgICAgICBpZiAocHJlcmVuZGVySW5mbykge1xuICAgICAgICAgICAgaWYgKHByZXJlbmRlckluZm8uZmFsbGJhY2sgPT09IGZhbHNlICYmICFpc1ByZXJlbmRlcmVkKSB7XG4gICAgICAgICAgICAgICAgdGhyb3cgbmV3IE5vRmFsbGJhY2tFcnJvcigpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKHR5cGVvZiBwcmVyZW5kZXJJbmZvLmZhbGxiYWNrID09PSAnc3RyaW5nJyAmJiAhaXNQcmVyZW5kZXJlZCAmJiAhaXNOZXh0RGF0YVJlcXVlc3QpIHtcbiAgICAgICAgICAgICAgICBpc0lzckZhbGxiYWNrID0gdHJ1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICAvLyBXaGVuIHNlcnZpbmcgYSBib3QgcmVxdWVzdCwgd2Ugd2FudCB0byBzZXJ2ZSBhIGJsb2NraW5nIHJlbmRlciBhbmQgbm90XG4gICAgLy8gdGhlIHByZXJlbmRlcmVkIHBhZ2UuIFRoaXMgZW5zdXJlcyB0aGF0IHRoZSBjb3JyZWN0IGNvbnRlbnQgaXMgc2VydmVkXG4gICAgLy8gdG8gdGhlIGJvdCBpbiB0aGUgaGVhZC5cbiAgICBpZiAoaXNJc3JGYWxsYmFjayAmJiBpc0JvdChyZXEuaGVhZGVyc1sndXNlci1hZ2VudCddIHx8ICcnKSB8fCBnZXRSZXF1ZXN0TWV0YShyZXEsICdtaW5pbWFsTW9kZScpKSB7XG4gICAgICAgIGlzSXNyRmFsbGJhY2sgPSBmYWxzZTtcbiAgICB9XG4gICAgY29uc3QgdHJhY2VyID0gZ2V0VHJhY2VyKCk7XG4gICAgY29uc3QgYWN0aXZlU3BhbiA9IHRyYWNlci5nZXRBY3RpdmVTY29wZVNwYW4oKTtcbiAgICB0cnkge1xuICAgICAgICBjb25zdCBtZXRob2QgPSByZXEubWV0aG9kIHx8ICdHRVQnO1xuICAgICAgICBjb25zdCByZXNvbHZlZFVybCA9IGZvcm1hdFVybCh7XG4gICAgICAgICAgICBwYXRobmFtZTogbmV4dENvbmZpZy50cmFpbGluZ1NsYXNoID8gcGFyc2VkVXJsLnBhdGhuYW1lIDogcmVtb3ZlVHJhaWxpbmdTbGFzaChwYXJzZWRVcmwucGF0aG5hbWUgfHwgJy8nKSxcbiAgICAgICAgICAgIC8vIG1ha2Ugc3VyZSB0byBvbmx5IGFkZCBxdWVyeSB2YWx1ZXMgZnJvbSBvcmlnaW5hbCBVUkxcbiAgICAgICAgICAgIHF1ZXJ5OiBoYXNTdGF0aWNQcm9wcyA/IHt9IDogb3JpZ2luYWxRdWVyeVxuICAgICAgICB9KTtcbiAgICAgICAgY29uc3QgcHVibGljUnVudGltZUNvbmZpZyA9IChyb3V0ZXJTZXJ2ZXJDb250ZXh0ID09IG51bGwgPyB2b2lkIDAgOiByb3V0ZXJTZXJ2ZXJDb250ZXh0LnB1YmxpY1J1bnRpbWVDb25maWcpIHx8IG5leHRDb25maWcucHVibGljUnVudGltZUNvbmZpZztcbiAgICAgICAgY29uc3QgaGFuZGxlUmVzcG9uc2UgPSBhc3luYyAoc3Bhbik9PntcbiAgICAgICAgICAgIGNvbnN0IHJlc3BvbnNlR2VuZXJhdG9yID0gYXN5bmMgKHsgcHJldmlvdXNDYWNoZUVudHJ5IH0pPT57XG4gICAgICAgICAgICAgICAgdmFyIF9wcmV2aW91c0NhY2hlRW50cnlfdmFsdWU7XG4gICAgICAgICAgICAgICAgY29uc3QgZG9SZW5kZXIgPSBhc3luYyAoKT0+e1xuICAgICAgICAgICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdmFyIF9uZXh0Q29uZmlnX2kxOG4sIF9uZXh0Q29uZmlnX2V4cGVyaW1lbnRhbF9hbXAsIF9uZXh0Q29uZmlnX2V4cGVyaW1lbnRhbF9hbXAxO1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGF3YWl0IHJvdXRlTW9kdWxlLnJlbmRlcihyZXEsIHJlcywge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHF1ZXJ5OiBoYXNTdGF0aWNQcm9wcyAmJiAhaXNFeHBlcmltZW50YWxDb21waWxlID8ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuLi5wYXJhbXMsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC4uLmlzQW1wID8ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYW1wOiBxdWVyeS5hbXBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSA6IHt9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSA6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLi4ucXVlcnksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC4uLnBhcmFtc1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFyYW1zLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhZ2U6IHNyY1BhZ2UsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVuZGVyQ29udGV4dDoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpc0RyYWZ0TW9kZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaXNGYWxsYmFjazogaXNJc3JGYWxsYmFjayxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGV2ZWxvcG1lbnROb3RGb3VuZFNvdXJjZVBhZ2U6IGdldFJlcXVlc3RNZXRhKHJlcSwgJ2RldmVsb3BtZW50Tm90Rm91bmRTb3VyY2VQYWdlJylcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNoYXJlZENvbnRleHQ6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnVpbGRJZCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3VzdG9tU2VydmVyOiBCb29sZWFuKHJvdXRlclNlcnZlckNvbnRleHQgPT0gbnVsbCA/IHZvaWQgMCA6IHJvdXRlclNlcnZlckNvbnRleHQuaXNDdXN0b21TZXJ2ZXIpIHx8IHVuZGVmaW5lZCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVwbG95bWVudElkOiBwcm9jZXNzLmVudi5ORVhUX0RFUExPWU1FTlRfSURcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlbmRlck9wdHM6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFyYW1zLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByb3V0ZU1vZHVsZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFnZTogc3JjUGFnZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFnZUNvbmZpZzogY29uZmlnIHx8IHt9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDb21wb25lbnQ6IGludGVyb3BEZWZhdWx0KHVzZXJsYW5kKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ29tcG9uZW50TW9kOiB1c2VybGFuZCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2V0U3RhdGljUHJvcHMsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdldFN0YXRpY1BhdGhzLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnZXRTZXJ2ZXJTaWRlUHJvcHMsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN1cHBvcnRzRHluYW1pY1Jlc3BvbnNlOiAhaGFzU3RhdGljUHJvcHMsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJ1aWxkTWFuaWZlc3QsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5leHRGb250TWFuaWZlc3QsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlYWN0TG9hZGFibGVNYW5pZmVzdCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXRQcmVmaXg6IG5leHRDb25maWcuYXNzZXRQcmVmaXgsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cmljdE5leHRIZWFkOiBCb29sZWFuKG5leHRDb25maWcuZXhwZXJpbWVudGFsLnN0cmljdE5leHRIZWFkKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJldmlld1Byb3BzOiBwcmVyZW5kZXJNYW5pZmVzdC5wcmV2aWV3LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbWFnZXM6IG5leHRDb25maWcuaW1hZ2VzLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXh0Q29uZmlnT3V0cHV0OiBuZXh0Q29uZmlnLm91dHB1dCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3B0aW1pemVDc3M6IEJvb2xlYW4obmV4dENvbmZpZy5leHBlcmltZW50YWwub3B0aW1pemVDc3MpLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXh0U2NyaXB0V29ya2VyczogQm9vbGVhbihuZXh0Q29uZmlnLmV4cGVyaW1lbnRhbC5uZXh0U2NyaXB0V29ya2VycyksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRvbWFpbkxvY2FsZXM6IChfbmV4dENvbmZpZ19pMThuID0gbmV4dENvbmZpZy5pMThuKSA9PSBudWxsID8gdm9pZCAwIDogX25leHRDb25maWdfaTE4bi5kb21haW5zLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjcm9zc09yaWdpbjogbmV4dENvbmZpZy5jcm9zc09yaWdpbixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbXVsdGlab25lRHJhZnRNb2RlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBiYXNlUGF0aDogbmV4dENvbmZpZy5iYXNlUGF0aCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2Fub25pY2FsQmFzZTogbmV4dENvbmZpZy5hbXAuY2Fub25pY2FsQmFzZSB8fCAnJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYW1wT3B0aW1pemVyQ29uZmlnOiAoX25leHRDb25maWdfZXhwZXJpbWVudGFsX2FtcCA9IG5leHRDb25maWcuZXhwZXJpbWVudGFsLmFtcCkgPT0gbnVsbCA/IHZvaWQgMCA6IF9uZXh0Q29uZmlnX2V4cGVyaW1lbnRhbF9hbXAub3B0aW1pemVyLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaXNhYmxlT3B0aW1pemVkTG9hZGluZzogbmV4dENvbmZpZy5leHBlcmltZW50YWwuZGlzYWJsZU9wdGltaXplZExvYWRpbmcsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhcmdlUGFnZURhdGFCeXRlczogbmV4dENvbmZpZy5leHBlcmltZW50YWwubGFyZ2VQYWdlRGF0YUJ5dGVzLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBPbmx5IHRoZSBgcHVibGljUnVudGltZUNvbmZpZ2Aga2V5IGlzIGV4cG9zZWQgdG8gdGhlIGNsaWVudCBzaWRlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIEl0J2xsIGJlIHJlbmRlcmVkIGFzIHBhcnQgb2YgX19ORVhUX0RBVEFfXyBvbiB0aGUgY2xpZW50IHNpZGVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcnVudGltZUNvbmZpZzogT2JqZWN0LmtleXMocHVibGljUnVudGltZUNvbmZpZykubGVuZ3RoID4gMCA/IHB1YmxpY1J1bnRpbWVDb25maWcgOiB1bmRlZmluZWQsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlzRXhwZXJpbWVudGFsQ29tcGlsZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXhwZXJpbWVudGFsOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGllbnRUcmFjZU1ldGFkYXRhOiBuZXh0Q29uZmlnLmV4cGVyaW1lbnRhbC5jbGllbnRUcmFjZU1ldGFkYXRhIHx8IFtdXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvY2FsZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9jYWxlcyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVmYXVsdExvY2FsZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0SXNyU3RhdHVzOiByb3V0ZXJTZXJ2ZXJDb250ZXh0ID09IG51bGwgPyB2b2lkIDAgOiByb3V0ZXJTZXJ2ZXJDb250ZXh0LnNldElzclN0YXR1cyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaXNOZXh0RGF0YVJlcXVlc3Q6IGlzTmV4dERhdGFSZXF1ZXN0ICYmIChoYXNTZXJ2ZXJQcm9wcyB8fCBoYXNTdGF0aWNQcm9wcyksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc29sdmVkVXJsLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBGb3IgZ2V0U2VydmVyU2lkZVByb3BzIGFuZCBnZXRJbml0aWFsUHJvcHMgd2UgbmVlZCB0byBlbnN1cmUgd2UgdXNlIHRoZSBvcmlnaW5hbCBVUkxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gYW5kIG5vdCB0aGUgcmVzb2x2ZWQgVVJMIHRvIHByZXZlbnQgYSBoeWRyYXRpb24gbWlzbWF0Y2ggb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gYXNQYXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc29sdmVkQXNQYXRoOiBoYXNTZXJ2ZXJQcm9wcyB8fCBoYXNHZXRJbml0aWFsUHJvcHMgPyBmb3JtYXRVcmwoe1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gd2UgdXNlIHRoZSBvcmlnaW5hbCBVUkwgcGF0aG5hbWUgbGVzcyB0aGUgX25leHQvZGF0YSBwcmVmaXggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHByZXNlbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhdGhuYW1lOiBpc05leHREYXRhUmVxdWVzdCA/IG5vcm1hbGl6ZURhdGFQYXRoKG9yaWdpbmFsUGF0aG5hbWUpIDogb3JpZ2luYWxQYXRobmFtZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHF1ZXJ5OiBvcmlnaW5hbFF1ZXJ5XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pIDogcmVzb2x2ZWRVcmwsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlzT25EZW1hbmRSZXZhbGlkYXRlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBFcnJvckRlYnVnOiBnZXRSZXF1ZXN0TWV0YShyZXEsICdQYWdlc0Vycm9yRGVidWcnKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXJyOiBnZXRSZXF1ZXN0TWV0YShyZXEsICdpbnZva2VFcnJvcicpLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZXY6IHJvdXRlTW9kdWxlLmlzRGV2LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBuZWVkZWQgZm9yIGV4cGVyaW1lbnRhbC5vcHRpbWl6ZUNzcyBmZWF0dXJlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpc3REaXI6IGAke3JvdXRlTW9kdWxlLnByb2plY3REaXJ9LyR7cm91dGVNb2R1bGUuZGlzdERpcn1gLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbXBTa2lwVmFsaWRhdGlvbjogKF9uZXh0Q29uZmlnX2V4cGVyaW1lbnRhbF9hbXAxID0gbmV4dENvbmZpZy5leHBlcmltZW50YWwuYW1wKSA9PSBudWxsID8gdm9pZCAwIDogX25leHRDb25maWdfZXhwZXJpbWVudGFsX2FtcDEuc2tpcFZhbGlkYXRpb24sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFtcFZhbGlkYXRvcjogZ2V0UmVxdWVzdE1ldGEocmVxLCAnYW1wVmFsaWRhdG9yJylcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICB9KS50aGVuKChyZW5kZXJSZXN1bHQpPT57XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgeyBtZXRhZGF0YSB9ID0gcmVuZGVyUmVzdWx0O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBjYWNoZUNvbnRyb2wgPSBtZXRhZGF0YS5jYWNoZUNvbnRyb2w7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCdpc05vdEZvdW5kJyBpbiBtZXRhZGF0YSAmJiBtZXRhZGF0YS5pc05vdEZvdW5kKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZTogbnVsbCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhY2hlQ29udHJvbFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBIYW5kbGUgYGlzUmVkaXJlY3RgLlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChtZXRhZGF0YS5pc1JlZGlyZWN0KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZToge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtpbmQ6IENhY2hlZFJvdXRlS2luZC5SRURJUkVDVCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcm9wczogbWV0YWRhdGEucGFnZURhdGEgPz8gbWV0YWRhdGEuZmxpZ2h0RGF0YVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhY2hlQ29udHJvbFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZToge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAga2luZDogQ2FjaGVkUm91dGVLaW5kLlBBR0VTLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaHRtbDogcmVuZGVyUmVzdWx0LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFnZURhdGE6IHJlbmRlclJlc3VsdC5tZXRhZGF0YS5wYWdlRGF0YSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlYWRlcnM6IHJlbmRlclJlc3VsdC5tZXRhZGF0YS5oZWFkZXJzLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhdHVzOiByZW5kZXJSZXN1bHQubWV0YWRhdGEuc3RhdHVzQ29kZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYWNoZUNvbnRyb2xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgICAgICAgICAgfSkuZmluYWxseSgoKT0+e1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICghc3BhbikgcmV0dXJuO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNwYW4uc2V0QXR0cmlidXRlcyh7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdodHRwLnN0YXR1c19jb2RlJzogcmVzLnN0YXR1c0NvZGUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICduZXh0LnJzYyc6IGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgcm9vdFNwYW5BdHRyaWJ1dGVzID0gdHJhY2VyLmdldFJvb3RTcGFuQXR0cmlidXRlcygpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFdlIHdlcmUgdW5hYmxlIHRvIGdldCBhdHRyaWJ1dGVzLCBwcm9iYWJseSBPVEVMIGlzIG5vdCBlbmFibGVkXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCFyb290U3BhbkF0dHJpYnV0ZXMpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAocm9vdFNwYW5BdHRyaWJ1dGVzLmdldCgnbmV4dC5zcGFuX3R5cGUnKSAhPT0gQmFzZVNlcnZlclNwYW4uaGFuZGxlUmVxdWVzdCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zb2xlLndhcm4oYFVuZXhwZWN0ZWQgcm9vdCBzcGFuIHR5cGUgJyR7cm9vdFNwYW5BdHRyaWJ1dGVzLmdldCgnbmV4dC5zcGFuX3R5cGUnKX0nLiBQbGVhc2UgcmVwb3J0IHRoaXMgTmV4dC5qcyBpc3N1ZSBodHRwczovL2dpdGh1Yi5jb20vdmVyY2VsL25leHQuanNgKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCByb3V0ZSA9IHJvb3RTcGFuQXR0cmlidXRlcy5nZXQoJ25leHQucm91dGUnKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAocm91dGUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgbmFtZSA9IGAke21ldGhvZH0gJHtyb3V0ZX1gO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzcGFuLnNldEF0dHJpYnV0ZXMoe1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ25leHQucm91dGUnOiByb3V0ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdodHRwLnJvdXRlJzogcm91dGUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnbmV4dC5zcGFuX25hbWUnOiBuYW1lXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzcGFuLnVwZGF0ZU5hbWUobmFtZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Bhbi51cGRhdGVOYW1lKGAke21ldGhvZH0gJHtyZXEudXJsfWApO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIGlmIHRoaXMgaXMgYSBiYWNrZ3JvdW5kIHJldmFsaWRhdGUgd2UgbmVlZCB0byByZXBvcnRcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIHRoZSByZXF1ZXN0IGVycm9yIGhlcmUgYXMgaXQgd29uJ3QgYmUgYnViYmxlZFxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHByZXZpb3VzQ2FjaGVFbnRyeSA9PSBudWxsID8gdm9pZCAwIDogcHJldmlvdXNDYWNoZUVudHJ5LmlzU3RhbGUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBhd2FpdCByb3V0ZU1vZHVsZS5vblJlcXVlc3RFcnJvcihyZXEsIGVyciwge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByb3V0ZXJLaW5kOiAnUGFnZXMgUm91dGVyJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcm91dGVQYXRoOiBzcmNQYWdlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByb3V0ZVR5cGU6ICdyZW5kZXInLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXZhbGlkYXRlUmVhc29uOiBnZXRSZXZhbGlkYXRlUmVhc29uKHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlzUmV2YWxpZGF0ZTogaGFzU3RhdGljUHJvcHMsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpc09uRGVtYW5kUmV2YWxpZGF0ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sIHJvdXRlclNlcnZlckNvbnRleHQpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3cgZXJyO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICAvLyBpZiB3ZSd2ZSBhbHJlYWR5IGdlbmVyYXRlZCB0aGlzIHBhZ2Ugd2Ugbm8gbG9uZ2VyXG4gICAgICAgICAgICAgICAgLy8gc2VydmUgdGhlIGZhbGxiYWNrXG4gICAgICAgICAgICAgICAgaWYgKHByZXZpb3VzQ2FjaGVFbnRyeSkge1xuICAgICAgICAgICAgICAgICAgICBpc0lzckZhbGxiYWNrID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGlmIChpc0lzckZhbGxiYWNrKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGZhbGxiYWNrUmVzcG9uc2UgPSBhd2FpdCByb3V0ZU1vZHVsZS5nZXRSZXNwb25zZUNhY2hlKHJlcSkuZ2V0KHJvdXRlTW9kdWxlLmlzRGV2ID8gbnVsbCA6IGxvY2FsZSA/IGAvJHtsb2NhbGV9JHtzcmNQYWdlfWAgOiBzcmNQYWdlLCBhc3luYyAoeyBwcmV2aW91c0NhY2hlRW50cnk6IHByZXZpb3VzRmFsbGJhY2tDYWNoZUVudHJ5ID0gbnVsbCB9KT0+e1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCFyb3V0ZU1vZHVsZS5pc0Rldikge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB0b1Jlc3BvbnNlQ2FjaGVFbnRyeShwcmV2aW91c0ZhbGxiYWNrQ2FjaGVFbnRyeSk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gZG9SZW5kZXIoKTtcbiAgICAgICAgICAgICAgICAgICAgfSwge1xuICAgICAgICAgICAgICAgICAgICAgICAgcm91dGVLaW5kOiBSb3V0ZUtpbmQuUEFHRVMsXG4gICAgICAgICAgICAgICAgICAgICAgICBpc0ZhbGxiYWNrOiB0cnVlLFxuICAgICAgICAgICAgICAgICAgICAgICAgaXNSb3V0ZVBQUkVuYWJsZWQ6IGZhbHNlLFxuICAgICAgICAgICAgICAgICAgICAgICAgaXNPbkRlbWFuZFJldmFsaWRhdGU6IGZhbHNlLFxuICAgICAgICAgICAgICAgICAgICAgICAgaW5jcmVtZW50YWxDYWNoZTogYXdhaXQgcm91dGVNb2R1bGUuZ2V0SW5jcmVtZW50YWxDYWNoZShyZXEsIG5leHRDb25maWcsIHByZXJlbmRlck1hbmlmZXN0KSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHdhaXRVbnRpbDogY3R4LndhaXRVbnRpbFxuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGZhbGxiYWNrUmVzcG9uc2UpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIFJlbW92ZSB0aGUgY2FjaGUgY29udHJvbCBmcm9tIHRoZSByZXNwb25zZSB0byBwcmV2ZW50IGl0IGZyb20gYmVpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIHVzZWQgaW4gdGhlIHN1cnJvdW5kaW5nIGNhY2hlLlxuICAgICAgICAgICAgICAgICAgICAgICAgZGVsZXRlIGZhbGxiYWNrUmVzcG9uc2UuY2FjaGVDb250cm9sO1xuICAgICAgICAgICAgICAgICAgICAgICAgZmFsbGJhY2tSZXNwb25zZS5pc01pc3MgPSB0cnVlO1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbGxiYWNrUmVzcG9uc2U7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgaWYgKCFnZXRSZXF1ZXN0TWV0YShyZXEsICdtaW5pbWFsTW9kZScpICYmIGlzT25EZW1hbmRSZXZhbGlkYXRlICYmIHJldmFsaWRhdGVPbmx5R2VuZXJhdGVkICYmICFwcmV2aW91c0NhY2hlRW50cnkpIHtcbiAgICAgICAgICAgICAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSA0MDQ7XG4gICAgICAgICAgICAgICAgICAgIC8vIG9uLWRlbWFuZCByZXZhbGlkYXRlIGFsd2F5cyBzZXRzIHRoaXMgaGVhZGVyXG4gICAgICAgICAgICAgICAgICAgIHJlcy5zZXRIZWFkZXIoJ3gtbmV4dGpzLWNhY2hlJywgJ1JFVkFMSURBVEVEJyk7XG4gICAgICAgICAgICAgICAgICAgIHJlcy5lbmQoJ1RoaXMgcGFnZSBjb3VsZCBub3QgYmUgZm91bmQnKTtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGlmIChpc0lzckZhbGxiYWNrICYmIChwcmV2aW91c0NhY2hlRW50cnkgPT0gbnVsbCA/IHZvaWQgMCA6IChfcHJldmlvdXNDYWNoZUVudHJ5X3ZhbHVlID0gcHJldmlvdXNDYWNoZUVudHJ5LnZhbHVlKSA9PSBudWxsID8gdm9pZCAwIDogX3ByZXZpb3VzQ2FjaGVFbnRyeV92YWx1ZS5raW5kKSA9PT0gQ2FjaGVkUm91dGVLaW5kLlBBR0VTKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZToge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtpbmQ6IENhY2hlZFJvdXRlS2luZC5QQUdFUyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBodG1sOiBuZXcgUmVuZGVyUmVzdWx0KEJ1ZmZlci5mcm9tKHByZXZpb3VzQ2FjaGVFbnRyeS52YWx1ZS5odG1sKSwge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb250ZW50VHlwZTogJ3RleHQvaHRtbDt1dGYtOCcsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1ldGFkYXRhOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGF0dXNDb2RlOiBwcmV2aW91c0NhY2hlRW50cnkudmFsdWUuc3RhdHVzLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVhZGVyczogcHJldmlvdXNDYWNoZUVudHJ5LnZhbHVlLmhlYWRlcnNcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhZ2VEYXRhOiB7fSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGF0dXM6IHByZXZpb3VzQ2FjaGVFbnRyeS52YWx1ZS5zdGF0dXMsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVhZGVyczogcHJldmlvdXNDYWNoZUVudHJ5LnZhbHVlLmhlYWRlcnNcbiAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICBjYWNoZUNvbnRyb2w6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXZhbGlkYXRlOiAwLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV4cGlyZTogdW5kZWZpbmVkXG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHJldHVybiBkb1JlbmRlcigpO1xuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IHJvdXRlTW9kdWxlLmhhbmRsZVJlc3BvbnNlKHtcbiAgICAgICAgICAgICAgICBjYWNoZUtleSxcbiAgICAgICAgICAgICAgICByZXEsXG4gICAgICAgICAgICAgICAgbmV4dENvbmZpZyxcbiAgICAgICAgICAgICAgICByb3V0ZUtpbmQ6IFJvdXRlS2luZC5QQUdFUyxcbiAgICAgICAgICAgICAgICBpc09uRGVtYW5kUmV2YWxpZGF0ZSxcbiAgICAgICAgICAgICAgICByZXZhbGlkYXRlT25seUdlbmVyYXRlZCxcbiAgICAgICAgICAgICAgICB3YWl0VW50aWw6IGN0eC53YWl0VW50aWwsXG4gICAgICAgICAgICAgICAgcmVzcG9uc2VHZW5lcmF0b3I6IHJlc3BvbnNlR2VuZXJhdG9yLFxuICAgICAgICAgICAgICAgIHByZXJlbmRlck1hbmlmZXN0XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIC8vIGlmIHdlIGdvdCBhIGNhY2hlIGhpdCB0aGlzIHdhc24ndCBhbiBJU1IgZmFsbGJhY2tcbiAgICAgICAgICAgIC8vIGJ1dCBpdCB3YXNuJ3QgZ2VuZXJhdGVkIGR1cmluZyBidWlsZCBzbyBpc24ndCBpbiB0aGVcbiAgICAgICAgICAgIC8vIHByZXJlbmRlci1tYW5pZmVzdFxuICAgICAgICAgICAgaWYgKGlzSXNyRmFsbGJhY2sgJiYgIShyZXN1bHQgPT0gbnVsbCA/IHZvaWQgMCA6IHJlc3VsdC5pc01pc3MpKSB7XG4gICAgICAgICAgICAgICAgaXNJc3JGYWxsYmFjayA9IGZhbHNlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgLy8gcmVzcG9uc2UgaXMgZmluaXNoZWQgaXMgbm8gY2FjaGUgZW50cnlcbiAgICAgICAgICAgIGlmICghcmVzdWx0KSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGhhc1N0YXRpY1Byb3BzICYmICFnZXRSZXF1ZXN0TWV0YShyZXEsICdtaW5pbWFsTW9kZScpKSB7XG4gICAgICAgICAgICAgICAgcmVzLnNldEhlYWRlcigneC1uZXh0anMtY2FjaGUnLCBpc09uRGVtYW5kUmV2YWxpZGF0ZSA/ICdSRVZBTElEQVRFRCcgOiByZXN1bHQuaXNNaXNzID8gJ01JU1MnIDogcmVzdWx0LmlzU3RhbGUgPyAnU1RBTEUnIDogJ0hJVCcpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgbGV0IGNhY2hlQ29udHJvbDtcbiAgICAgICAgICAgIGlmICghaGFzU3RhdGljUHJvcHMgfHwgaXNJc3JGYWxsYmFjaykge1xuICAgICAgICAgICAgICAgIGlmICghcmVzLmdldEhlYWRlcignQ2FjaGUtQ29udHJvbCcpKSB7XG4gICAgICAgICAgICAgICAgICAgIGNhY2hlQ29udHJvbCA9IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldmFsaWRhdGU6IDAsXG4gICAgICAgICAgICAgICAgICAgICAgICBleHBpcmU6IHVuZGVmaW5lZFxuICAgICAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0gZWxzZSBpZiAoaXM0MDRQYWdlKSB7XG4gICAgICAgICAgICAgICAgY29uc3Qgbm90Rm91bmRSZXZhbGlkYXRlID0gZ2V0UmVxdWVzdE1ldGEocmVxLCAnbm90Rm91bmRSZXZhbGlkYXRlJyk7XG4gICAgICAgICAgICAgICAgY2FjaGVDb250cm9sID0ge1xuICAgICAgICAgICAgICAgICAgICByZXZhbGlkYXRlOiB0eXBlb2Ygbm90Rm91bmRSZXZhbGlkYXRlID09PSAndW5kZWZpbmVkJyA/IDAgOiBub3RGb3VuZFJldmFsaWRhdGUsXG4gICAgICAgICAgICAgICAgICAgIGV4cGlyZTogdW5kZWZpbmVkXG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoaXM1MDBQYWdlKSB7XG4gICAgICAgICAgICAgICAgY2FjaGVDb250cm9sID0ge1xuICAgICAgICAgICAgICAgICAgICByZXZhbGlkYXRlOiAwLFxuICAgICAgICAgICAgICAgICAgICBleHBpcmU6IHVuZGVmaW5lZFxuICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICB9IGVsc2UgaWYgKHJlc3VsdC5jYWNoZUNvbnRyb2wpIHtcbiAgICAgICAgICAgICAgICAvLyBJZiB0aGUgY2FjaGUgZW50cnkgaGFzIGEgY2FjaGUgY29udHJvbCB3aXRoIGEgcmV2YWxpZGF0ZSB2YWx1ZSB0aGF0J3NcbiAgICAgICAgICAgICAgICAvLyBhIG51bWJlciwgdXNlIGl0LlxuICAgICAgICAgICAgICAgIGlmICh0eXBlb2YgcmVzdWx0LmNhY2hlQ29udHJvbC5yZXZhbGlkYXRlID09PSAnbnVtYmVyJykge1xuICAgICAgICAgICAgICAgICAgICB2YXIgX3Jlc3VsdF9jYWNoZUNvbnRyb2w7XG4gICAgICAgICAgICAgICAgICAgIGlmIChyZXN1bHQuY2FjaGVDb250cm9sLnJldmFsaWRhdGUgPCAxKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aHJvdyBPYmplY3QuZGVmaW5lUHJvcGVydHkobmV3IEVycm9yKGBJbnZhbGlkIHJldmFsaWRhdGUgY29uZmlndXJhdGlvbiBwcm92aWRlZDogJHtyZXN1bHQuY2FjaGVDb250cm9sLnJldmFsaWRhdGV9IDwgMWApLCBcIl9fTkVYVF9FUlJPUl9DT0RFXCIsIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZTogXCJFMjJcIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbnVtZXJhYmxlOiBmYWxzZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25maWd1cmFibGU6IHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGNhY2hlQ29udHJvbCA9IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldmFsaWRhdGU6IHJlc3VsdC5jYWNoZUNvbnRyb2wucmV2YWxpZGF0ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGV4cGlyZTogKChfcmVzdWx0X2NhY2hlQ29udHJvbCA9IHJlc3VsdC5jYWNoZUNvbnRyb2wpID09IG51bGwgPyB2b2lkIDAgOiBfcmVzdWx0X2NhY2hlQ29udHJvbC5leHBpcmUpID8/IG5leHRDb25maWcuZXhwaXJlVGltZVxuICAgICAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIC8vIHJldmFsaWRhdGU6IGZhbHNlXG4gICAgICAgICAgICAgICAgICAgIGNhY2hlQ29udHJvbCA9IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldmFsaWRhdGU6IENBQ0hFX09ORV9ZRUFSLFxuICAgICAgICAgICAgICAgICAgICAgICAgZXhwaXJlOiB1bmRlZmluZWRcbiAgICAgICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAvLyBJZiBjYWNoZSBjb250cm9sIGlzIGFscmVhZHkgc2V0IG9uIHRoZSByZXNwb25zZSB3ZSBkb24ndFxuICAgICAgICAgICAgLy8gb3ZlcnJpZGUgaXQgdG8gYWxsb3cgdXNlcnMgdG8gY3VzdG9taXplIGl0IHZpYSBuZXh0LmNvbmZpZ1xuICAgICAgICAgICAgaWYgKGNhY2hlQ29udHJvbCAmJiAhcmVzLmdldEhlYWRlcignQ2FjaGUtQ29udHJvbCcpKSB7XG4gICAgICAgICAgICAgICAgcmVzLnNldEhlYWRlcignQ2FjaGUtQ29udHJvbCcsIGdldENhY2hlQ29udHJvbEhlYWRlcihjYWNoZUNvbnRyb2wpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC8vIG5vdEZvdW5kOiB0cnVlIGNhc2VcbiAgICAgICAgICAgIGlmICghcmVzdWx0LnZhbHVlKSB7XG4gICAgICAgICAgICAgICAgdmFyIF9yZXN1bHRfY2FjaGVDb250cm9sMTtcbiAgICAgICAgICAgICAgICAvLyBhZGQgcmV2YWxpZGF0ZSBtZXRhZGF0YSBiZWZvcmUgcmVuZGVyaW5nIDQwNCBwYWdlXG4gICAgICAgICAgICAgICAgLy8gc28gdGhhdCB3ZSBjYW4gdXNlIHRoaXMgYXMgc291cmNlIG9mIHRydXRoIGZvciB0aGVcbiAgICAgICAgICAgICAgICAvLyBjYWNoZS1jb250cm9sIGhlYWRlciBpbnN0ZWFkIG9mIHdoYXQgdGhlIDQwNCBwYWdlIHJldHVybnNcbiAgICAgICAgICAgICAgICAvLyBmb3IgdGhlIHJldmFsaWRhdGUgdmFsdWVcbiAgICAgICAgICAgICAgICBhZGRSZXF1ZXN0TWV0YShyZXEsICdub3RGb3VuZFJldmFsaWRhdGUnLCAoX3Jlc3VsdF9jYWNoZUNvbnRyb2wxID0gcmVzdWx0LmNhY2hlQ29udHJvbCkgPT0gbnVsbCA/IHZvaWQgMCA6IF9yZXN1bHRfY2FjaGVDb250cm9sMS5yZXZhbGlkYXRlKTtcbiAgICAgICAgICAgICAgICByZXMuc3RhdHVzQ29kZSA9IDQwNDtcbiAgICAgICAgICAgICAgICBpZiAoaXNOZXh0RGF0YVJlcXVlc3QpIHtcbiAgICAgICAgICAgICAgICAgICAgcmVzLmVuZCgne1wibm90Rm91bmRcIjp0cnVlfScpO1xuICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIC8vIFRPRE86IHNob3VsZCByb3V0ZS1tb2R1bGUgaXRzZWxmIGhhbmRsZSByZW5kZXJpbmcgdGhlIDQwNFxuICAgICAgICAgICAgICAgIGlmIChyb3V0ZXJTZXJ2ZXJDb250ZXh0ID09IG51bGwgPyB2b2lkIDAgOiByb3V0ZXJTZXJ2ZXJDb250ZXh0LnJlbmRlcjQwNCkge1xuICAgICAgICAgICAgICAgICAgICBhd2FpdCByb3V0ZXJTZXJ2ZXJDb250ZXh0LnJlbmRlcjQwNChyZXEsIHJlcywgcGFyc2VkVXJsLCBmYWxzZSk7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgcmVzLmVuZCgnVGhpcyBwYWdlIGNvdWxkIG5vdCBiZSBmb3VuZCcpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAocmVzdWx0LnZhbHVlLmtpbmQgPT09IENhY2hlZFJvdXRlS2luZC5SRURJUkVDVCkge1xuICAgICAgICAgICAgICAgIGlmIChpc05leHREYXRhUmVxdWVzdCkge1xuICAgICAgICAgICAgICAgICAgICByZXMuc2V0SGVhZGVyKCdjb250ZW50LXR5cGUnLCAnYXBwbGljYXRpb24vanNvbicpO1xuICAgICAgICAgICAgICAgICAgICByZXMuZW5kKEpTT04uc3RyaW5naWZ5KHJlc3VsdC52YWx1ZS5wcm9wcykpO1xuICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgaGFuZGxlUmVkaXJlY3QgPSAocGFnZURhdGEpPT57XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCByZWRpcmVjdCA9IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZXN0aW5hdGlvbjogcGFnZURhdGEucGFnZVByb3BzLl9fTl9SRURJUkVDVCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGF0dXNDb2RlOiBwYWdlRGF0YS5wYWdlUHJvcHMuX19OX1JFRElSRUNUX1NUQVRVUyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBiYXNlUGF0aDogcGFnZURhdGEucGFnZVByb3BzLl9fTl9SRURJUkVDVF9CQVNFX1BBVEhcbiAgICAgICAgICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBzdGF0dXNDb2RlID0gZ2V0UmVkaXJlY3RTdGF0dXMocmVkaXJlY3QpO1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgeyBiYXNlUGF0aCB9ID0gbmV4dENvbmZpZztcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChiYXNlUGF0aCAmJiByZWRpcmVjdC5iYXNlUGF0aCAhPT0gZmFsc2UgJiYgcmVkaXJlY3QuZGVzdGluYXRpb24uc3RhcnRzV2l0aCgnLycpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVkaXJlY3QuZGVzdGluYXRpb24gPSBgJHtiYXNlUGF0aH0ke3JlZGlyZWN0LmRlc3RpbmF0aW9ufWA7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAocmVkaXJlY3QuZGVzdGluYXRpb24uc3RhcnRzV2l0aCgnLycpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVkaXJlY3QuZGVzdGluYXRpb24gPSBub3JtYWxpemVSZXBlYXRlZFNsYXNoZXMocmVkaXJlY3QuZGVzdGluYXRpb24pO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSBzdGF0dXNDb2RlO1xuICAgICAgICAgICAgICAgICAgICAgICAgcmVzLnNldEhlYWRlcignTG9jYXRpb24nLCByZWRpcmVjdC5kZXN0aW5hdGlvbik7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoc3RhdHVzQ29kZSA9PT0gUmVkaXJlY3RTdGF0dXNDb2RlLlBlcm1hbmVudFJlZGlyZWN0KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzLnNldEhlYWRlcignUmVmcmVzaCcsIGAwO3VybD0ke3JlZGlyZWN0LmRlc3RpbmF0aW9ufWApO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgcmVzLmVuZChyZWRpcmVjdC5kZXN0aW5hdGlvbik7XG4gICAgICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgICAgIGF3YWl0IGhhbmRsZVJlZGlyZWN0KHJlc3VsdC52YWx1ZS5wcm9wcyk7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChyZXN1bHQudmFsdWUua2luZCAhPT0gQ2FjaGVkUm91dGVLaW5kLlBBR0VTKSB7XG4gICAgICAgICAgICAgICAgdGhyb3cgT2JqZWN0LmRlZmluZVByb3BlcnR5KG5ldyBFcnJvcihgSW52YXJpYW50OiByZWNlaXZlZCBub24tcGFnZXMgY2FjaGUgZW50cnkgaW4gcGFnZXMgaGFuZGxlcmApLCBcIl9fTkVYVF9FUlJPUl9DT0RFXCIsIHtcbiAgICAgICAgICAgICAgICAgICAgdmFsdWU6IFwiRTY5NVwiLFxuICAgICAgICAgICAgICAgICAgICBlbnVtZXJhYmxlOiBmYWxzZSxcbiAgICAgICAgICAgICAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlXG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAvLyBJbiBkZXYsIHdlIHNob3VsZCBub3QgY2FjaGUgcGFnZXMgZm9yIGFueSByZWFzb24uXG4gICAgICAgICAgICBpZiAocm91dGVNb2R1bGUuaXNEZXYpIHtcbiAgICAgICAgICAgICAgICByZXMuc2V0SGVhZGVyKCdDYWNoZS1Db250cm9sJywgJ25vLXN0b3JlLCBtdXN0LXJldmFsaWRhdGUnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC8vIERyYWZ0IG1vZGUgc2hvdWxkIG5ldmVyIGJlIGNhY2hlZFxuICAgICAgICAgICAgaWYgKGlzRHJhZnRNb2RlKSB7XG4gICAgICAgICAgICAgICAgcmVzLnNldEhlYWRlcignQ2FjaGUtQ29udHJvbCcsICdwcml2YXRlLCBuby1jYWNoZSwgbm8tc3RvcmUsIG1heC1hZ2U9MCwgbXVzdC1yZXZhbGlkYXRlJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAvLyB3aGVuIGludm9raW5nIF9lcnJvciBiZWZvcmUgcGFnZXMvNTAwIHdlIGRvbid0IGFjdHVhbGx5XG4gICAgICAgICAgICAvLyBzZW5kIHRoZSBfZXJyb3IgcmVzcG9uc2VcbiAgICAgICAgICAgIGlmIChnZXRSZXF1ZXN0TWV0YShyZXEsICdjdXN0b21FcnJvclJlbmRlcicpIHx8IGlzRXJyb3JQYWdlICYmIGdldFJlcXVlc3RNZXRhKHJlcSwgJ21pbmltYWxNb2RlJykgJiYgcmVzLnN0YXR1c0NvZGUgPT09IDUwMCkge1xuICAgICAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgYXdhaXQgc2VuZFJlbmRlclJlc3VsdCh7XG4gICAgICAgICAgICAgICAgcmVxLFxuICAgICAgICAgICAgICAgIHJlcyxcbiAgICAgICAgICAgICAgICAvLyBJZiB3ZSBhcmUgcmVuZGVyaW5nIHRoZSBlcnJvciBwYWdlIGl0J3Mgbm90IGEgZGF0YSByZXF1ZXN0XG4gICAgICAgICAgICAgICAgLy8gYW55bW9yZVxuICAgICAgICAgICAgICAgIHJlc3VsdDogaXNOZXh0RGF0YVJlcXVlc3QgJiYgIWlzRXJyb3JQYWdlICYmICFpczUwMFBhZ2UgPyBuZXcgUmVuZGVyUmVzdWx0KEJ1ZmZlci5mcm9tKEpTT04uc3RyaW5naWZ5KHJlc3VsdC52YWx1ZS5wYWdlRGF0YSkpLCB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnRUeXBlOiAnYXBwbGljYXRpb24vanNvbicsXG4gICAgICAgICAgICAgICAgICAgIG1ldGFkYXRhOiByZXN1bHQudmFsdWUuaHRtbC5tZXRhZGF0YVxuICAgICAgICAgICAgICAgIH0pIDogcmVzdWx0LnZhbHVlLmh0bWwsXG4gICAgICAgICAgICAgICAgZ2VuZXJhdGVFdGFnczogbmV4dENvbmZpZy5nZW5lcmF0ZUV0YWdzLFxuICAgICAgICAgICAgICAgIHBvd2VyZWRCeUhlYWRlcjogbmV4dENvbmZpZy5wb3dlcmVkQnlIZWFkZXIsXG4gICAgICAgICAgICAgICAgY2FjaGVDb250cm9sOiByb3V0ZU1vZHVsZS5pc0RldiA/IHVuZGVmaW5lZCA6IGNhY2hlQ29udHJvbCxcbiAgICAgICAgICAgICAgICB0eXBlOiBpc05leHREYXRhUmVxdWVzdCA/ICdqc29uJyA6ICdodG1sJ1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH07XG4gICAgICAgIC8vIFRPRE86IGFjdGl2ZVNwYW4gY29kZSBwYXRoIGlzIGZvciB3aGVuIHdyYXBwZWQgYnlcbiAgICAgICAgLy8gbmV4dC1zZXJ2ZXIgY2FuIGJlIHJlbW92ZWQgd2hlbiB0aGlzIGlzIG5vIGxvbmdlciB1c2VkXG4gICAgICAgIGlmIChhY3RpdmVTcGFuKSB7XG4gICAgICAgICAgICBhd2FpdCBoYW5kbGVSZXNwb25zZSgpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgYXdhaXQgdHJhY2VyLndpdGhQcm9wYWdhdGVkQ29udGV4dChyZXEuaGVhZGVycywgKCk9PnRyYWNlci50cmFjZShCYXNlU2VydmVyU3Bhbi5oYW5kbGVSZXF1ZXN0LCB7XG4gICAgICAgICAgICAgICAgICAgIHNwYW5OYW1lOiBgJHttZXRob2R9ICR7cmVxLnVybH1gLFxuICAgICAgICAgICAgICAgICAgICBraW5kOiBTcGFuS2luZC5TRVJWRVIsXG4gICAgICAgICAgICAgICAgICAgIGF0dHJpYnV0ZXM6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICdodHRwLm1ldGhvZCc6IG1ldGhvZCxcbiAgICAgICAgICAgICAgICAgICAgICAgICdodHRwLnRhcmdldCc6IHJlcS51cmxcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0sIGhhbmRsZVJlc3BvbnNlKSk7XG4gICAgICAgIH1cbiAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgICAgYXdhaXQgcm91dGVNb2R1bGUub25SZXF1ZXN0RXJyb3IocmVxLCBlcnIsIHtcbiAgICAgICAgICAgIHJvdXRlcktpbmQ6ICdQYWdlcyBSb3V0ZXInLFxuICAgICAgICAgICAgcm91dGVQYXRoOiBzcmNQYWdlLFxuICAgICAgICAgICAgcm91dGVUeXBlOiAncmVuZGVyJyxcbiAgICAgICAgICAgIHJldmFsaWRhdGVSZWFzb246IGdldFJldmFsaWRhdGVSZWFzb24oe1xuICAgICAgICAgICAgICAgIGlzUmV2YWxpZGF0ZTogaGFzU3RhdGljUHJvcHMsXG4gICAgICAgICAgICAgICAgaXNPbkRlbWFuZFJldmFsaWRhdGVcbiAgICAgICAgICAgIH0pXG4gICAgICAgIH0sIHJvdXRlclNlcnZlckNvbnRleHQpO1xuICAgICAgICAvLyByZXRocm93IHNvIHRoYXQgd2UgY2FuIGhhbmRsZSBzZXJ2aW5nIGVycm9yIHBhZ2VcbiAgICAgICAgdGhyb3cgZXJyO1xuICAgIH1cbn1cblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9cGFnZXMuanMubWFwIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(pages-dir-node)/./node_modules/next/dist/build/webpack/loaders/next-route-loader/index.js?kind=PAGES&page=%2Fnews&preferredRegion=&absolutePagePath=.%2Fpages%5Cnews.tsx&absoluteAppPath=private-next-pages%2F_app&absoluteDocumentPath=private-next-pages%2F_document&middlewareConfigBase64=e30%3D!\n"); - -/***/ }), - -/***/ "(pages-dir-node)/./pages/_app.tsx": -/*!************************!*\ - !*** ./pages/_app.tsx ***! - \************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react/jsx-dev-runtime */ \"react/jsx-dev-runtime\");\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _styles_globals_css__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../styles/globals.css */ \"(pages-dir-node)/./styles/globals.css\");\n/* harmony import */ var _styles_globals_css__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_styles_globals_css__WEBPACK_IMPORTED_MODULE_1__);\n\n\nfunction MyApp({ Component, pageProps }) {\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(Component, {\n ...pageProps\n }, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\pages\\\\_app.tsx\",\n lineNumber: 5,\n columnNumber: 10\n }, this);\n}\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (MyApp);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1ub2RlKS8uL3BhZ2VzL19hcHAudHN4IiwibWFwcGluZ3MiOiI7Ozs7Ozs7OztBQUErQjtBQUcvQixTQUFTQSxNQUFNLEVBQUVDLFNBQVMsRUFBRUMsU0FBUyxFQUFZO0lBQy9DLHFCQUFPLDhEQUFDRDtRQUFXLEdBQUdDLFNBQVM7Ozs7OztBQUNqQztBQUVBLGlFQUFlRixLQUFLQSxFQUFDIiwic291cmNlcyI6WyJEOlxcZG9uZ3l1bi1wcm9qZWN0c1xcdHdvXFxwYWdlc1xcX2FwcC50c3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICcuLi9zdHlsZXMvZ2xvYmFscy5jc3MnO1xyXG5pbXBvcnQgdHlwZSB7IEFwcFByb3BzIH0gZnJvbSAnbmV4dC9hcHAnO1xyXG5cclxuZnVuY3Rpb24gTXlBcHAoeyBDb21wb25lbnQsIHBhZ2VQcm9wcyB9OiBBcHBQcm9wcykge1xyXG4gIHJldHVybiA8Q29tcG9uZW50IHsuLi5wYWdlUHJvcHN9IC8+O1xyXG59XHJcblxyXG5leHBvcnQgZGVmYXVsdCBNeUFwcDsiXSwibmFtZXMiOlsiTXlBcHAiLCJDb21wb25lbnQiLCJwYWdlUHJvcHMiXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(pages-dir-node)/./pages/_app.tsx\n"); - -/***/ }), - -/***/ "(pages-dir-node)/./pages/news.tsx": -/*!************************!*\ - !*** ./pages/news.tsx ***! - \************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ NewsPage),\n/* harmony export */ getStaticProps: () => (/* binding */ getStaticProps)\n/* harmony export */ });\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react/jsx-dev-runtime */ \"react/jsx-dev-runtime\");\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _components_Navbar__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../components/Navbar */ \"(pages-dir-node)/./components/Navbar.tsx\");\n/* harmony import */ var _components_NewsList__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../components/NewsList */ \"(pages-dir-node)/./components/NewsList.tsx\");\n/* harmony import */ var _components_Footer__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../components/Footer */ \"(pages-dir-node)/./components/Footer.tsx\");\n/* harmony import */ var _lib_content__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../lib/content */ \"(pages-dir-node)/./lib/content.ts\");\n/* harmony import */ var _barrel_optimize_names_Calendar_Newspaper_TrendingUp_lucide_react__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! __barrel_optimize__?names=Calendar,Newspaper,TrendingUp!=!lucide-react */ \"(pages-dir-node)/__barrel_optimize__?names=Calendar,Newspaper,TrendingUp!=!./node_modules/lucide-react/dist/cjs/lucide-react.js\");\n\n\n\n\n\n\nfunction NewsPage({ news }) {\n // 统计新闻数据\n const totalNews = news.length;\n const recentNews = news.slice(0, 3);\n const categories = Array.from(new Set(news.flatMap((item)=>item.tags || [])));\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"pt-16 bg-background\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_Navbar__WEBPACK_IMPORTED_MODULE_1__[\"default\"], {}, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\pages\\\\news.tsx\",\n lineNumber: 16,\n columnNumber: 7\n }, this),\n /*#__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)(\"section\", {\n className: \"px-6 py-16 bg-gradient-to-br from-blue-50 to-indigo-100\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"max-w-screen-xl mx-auto text-center\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"h1\", {\n className: \"text-4xl md:text-5xl font-bold text-primary mb-6\",\n children: \"新闻资讯\"\n }, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\pages\\\\news.tsx\",\n lineNumber: 21,\n columnNumber: 13\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"p\", {\n className: \"text-xl text-gray-600 max-w-3xl mx-auto leading-relaxed mb-8\",\n children: \"了解最新的产品动态、技术更新和行业资讯,掌握云加速服务的最新发展\"\n }, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\pages\\\\news.tsx\",\n lineNumber: 24,\n columnNumber: 13\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"grid grid-cols-1 md:grid-cols-3 gap-6 max-w-2xl mx-auto\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"bg-white/80 backdrop-blur-sm rounded-lg p-4 shadow-sm\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex items-center justify-center mb-2\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_barrel_optimize_names_Calendar_Newspaper_TrendingUp_lucide_react__WEBPACK_IMPORTED_MODULE_5__.Newspaper, {\n className: \"w-6 h-6 text-accent mr-2\"\n }, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\pages\\\\news.tsx\",\n lineNumber: 32,\n columnNumber: 19\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n className: \"text-2xl font-bold text-primary\",\n children: totalNews\n }, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\pages\\\\news.tsx\",\n lineNumber: 33,\n columnNumber: 19\n }, this)\n ]\n }, void 0, true, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\pages\\\\news.tsx\",\n lineNumber: 31,\n columnNumber: 17\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"p\", {\n className: \"text-sm text-gray-600\",\n children: \"新闻资讯\"\n }, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\pages\\\\news.tsx\",\n lineNumber: 35,\n columnNumber: 17\n }, this)\n ]\n }, void 0, true, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\pages\\\\news.tsx\",\n lineNumber: 30,\n columnNumber: 15\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"bg-white/80 backdrop-blur-sm rounded-lg p-4 shadow-sm\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex items-center justify-center mb-2\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_barrel_optimize_names_Calendar_Newspaper_TrendingUp_lucide_react__WEBPACK_IMPORTED_MODULE_5__.Calendar, {\n className: \"w-6 h-6 text-green-500 mr-2\"\n }, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\pages\\\\news.tsx\",\n lineNumber: 40,\n columnNumber: 19\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n className: \"text-2xl font-bold text-primary\",\n children: categories.length\n }, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\pages\\\\news.tsx\",\n lineNumber: 41,\n columnNumber: 19\n }, this)\n ]\n }, void 0, true, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\pages\\\\news.tsx\",\n lineNumber: 39,\n columnNumber: 17\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"p\", {\n className: \"text-sm text-gray-600\",\n children: \"分类标签\"\n }, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\pages\\\\news.tsx\",\n lineNumber: 43,\n columnNumber: 17\n }, this)\n ]\n }, void 0, true, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\pages\\\\news.tsx\",\n lineNumber: 38,\n columnNumber: 15\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"bg-white/80 backdrop-blur-sm rounded-lg p-4 shadow-sm\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex items-center justify-center mb-2\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_barrel_optimize_names_Calendar_Newspaper_TrendingUp_lucide_react__WEBPACK_IMPORTED_MODULE_5__.TrendingUp, {\n className: \"w-6 h-6 text-purple-500 mr-2\"\n }, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\pages\\\\news.tsx\",\n lineNumber: 48,\n columnNumber: 19\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n className: \"text-2xl font-bold text-primary\",\n children: \"实时\"\n }, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\pages\\\\news.tsx\",\n lineNumber: 49,\n columnNumber: 19\n }, this)\n ]\n }, void 0, true, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\pages\\\\news.tsx\",\n lineNumber: 47,\n columnNumber: 17\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"p\", {\n className: \"text-sm text-gray-600\",\n children: \"更新状态\"\n }, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\pages\\\\news.tsx\",\n lineNumber: 51,\n columnNumber: 17\n }, this)\n ]\n }, void 0, true, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\pages\\\\news.tsx\",\n lineNumber: 46,\n columnNumber: 15\n }, this)\n ]\n }, void 0, true, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\pages\\\\news.tsx\",\n lineNumber: 29,\n columnNumber: 13\n }, this)\n ]\n }, void 0, true, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\pages\\\\news.tsx\",\n lineNumber: 20,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\pages\\\\news.tsx\",\n lineNumber: 19,\n columnNumber: 9\n }, this),\n recentNews.length > 0 && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"section\", {\n className: \"px-6 py-12 bg-white\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"max-w-screen-xl mx-auto\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"h2\", {\n className: \"text-2xl font-bold text-primary mb-8 text-center\",\n children: \"最新资讯\"\n }, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\pages\\\\news.tsx\",\n lineNumber: 61,\n columnNumber: 15\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"grid grid-cols-1 md:grid-cols-3 gap-6\",\n children: recentNews.map((item, index)=>/*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"group bg-gray-50 rounded-xl p-6 hover:shadow-lg transition-all duration-300 border border-gray-100 hover:border-accent/20\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex items-center mb-3\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n className: \"bg-accent text-white text-xs font-semibold px-2 py-1 rounded-full mr-3\",\n children: \"最新\"\n }, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\pages\\\\news.tsx\",\n lineNumber: 66,\n columnNumber: 23\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"time\", {\n className: \"text-sm text-gray-500\",\n children: item.date\n }, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\pages\\\\news.tsx\",\n lineNumber: 69,\n columnNumber: 23\n }, this)\n ]\n }, void 0, true, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\pages\\\\news.tsx\",\n lineNumber: 65,\n columnNumber: 21\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"h3\", {\n className: \"text-lg font-semibold text-primary mb-2 group-hover:text-accent transition-colors line-clamp-2\",\n children: item.title\n }, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\pages\\\\news.tsx\",\n lineNumber: 71,\n columnNumber: 21\n }, this),\n item.summary && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"p\", {\n className: \"text-gray-600 text-sm line-clamp-3 mb-3\",\n children: item.summary\n }, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\pages\\\\news.tsx\",\n lineNumber: 75,\n columnNumber: 23\n }, this),\n item.tags && item.tags.length > 0 && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex flex-wrap gap-1\",\n children: item.tags.slice(0, 2).map((tag)=>/*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n className: \"px-2 py-1 text-xs bg-white border border-gray-200 rounded text-gray-600\",\n children: tag\n }, tag, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\pages\\\\news.tsx\",\n lineNumber: 82,\n columnNumber: 27\n }, this))\n }, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\pages\\\\news.tsx\",\n lineNumber: 80,\n columnNumber: 23\n }, this)\n ]\n }, item.slug, true, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\pages\\\\news.tsx\",\n lineNumber: 64,\n columnNumber: 19\n }, this))\n }, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\pages\\\\news.tsx\",\n lineNumber: 62,\n columnNumber: 15\n }, this)\n ]\n }, void 0, true, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\pages\\\\news.tsx\",\n lineNumber: 60,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\pages\\\\news.tsx\",\n lineNumber: 59,\n columnNumber: 11\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_NewsList__WEBPACK_IMPORTED_MODULE_2__[\"default\"], {\n news: news\n }, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\pages\\\\news.tsx\",\n lineNumber: 96,\n columnNumber: 9\n }, this)\n ]\n }, void 0, true, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\pages\\\\news.tsx\",\n lineNumber: 17,\n columnNumber: 7\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_Footer__WEBPACK_IMPORTED_MODULE_3__[\"default\"], {}, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\pages\\\\news.tsx\",\n lineNumber: 98,\n columnNumber: 7\n }, this)\n ]\n }, void 0, true, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\pages\\\\news.tsx\",\n lineNumber: 15,\n columnNumber: 5\n }, this);\n}\nconst getStaticProps = async ()=>{\n const news = (0,_lib_content__WEBPACK_IMPORTED_MODULE_4__.getAllNews)();\n return {\n props: {\n news\n }\n };\n};\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1ub2RlKS8uL3BhZ2VzL25ld3MudHN4IiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7QUFBMEM7QUFDSTtBQUNKO0FBRVk7QUFDUztBQUVoRCxTQUFTTyxTQUFTLEVBQUVDLElBQUksRUFBd0I7SUFDN0QsU0FBUztJQUNULE1BQU1DLFlBQVlELEtBQUtFLE1BQU07SUFDN0IsTUFBTUMsYUFBYUgsS0FBS0ksS0FBSyxDQUFDLEdBQUc7SUFDakMsTUFBTUMsYUFBYUMsTUFBTUMsSUFBSSxDQUFDLElBQUlDLElBQUlSLEtBQUtTLE9BQU8sQ0FBQ0MsQ0FBQUEsT0FBUUEsS0FBS0MsSUFBSSxJQUFJLEVBQUU7SUFFMUUscUJBQ0UsOERBQUNDO1FBQUlDLFdBQVU7OzBCQUNiLDhEQUFDckIsMERBQU1BOzs7OzswQkFDUCw4REFBQ3NCOztrQ0FFQyw4REFBQ0M7d0JBQVFGLFdBQVU7a0NBQ2pCLDRFQUFDRDs0QkFBSUMsV0FBVTs7OENBQ2IsOERBQUNHO29DQUFHSCxXQUFVOzhDQUFtRDs7Ozs7OzhDQUdqRSw4REFBQ0k7b0NBQUVKLFdBQVU7OENBQStEOzs7Ozs7OENBSzVFLDhEQUFDRDtvQ0FBSUMsV0FBVTs7c0RBQ2IsOERBQUNEOzRDQUFJQyxXQUFVOzs4REFDYiw4REFBQ0Q7b0RBQUlDLFdBQVU7O3NFQUNiLDhEQUFDaEIsd0dBQVNBOzREQUFDZ0IsV0FBVTs7Ozs7O3NFQUNyQiw4REFBQ0s7NERBQUtMLFdBQVU7c0VBQW1DWjs7Ozs7Ozs7Ozs7OzhEQUVyRCw4REFBQ2dCO29EQUFFSixXQUFVOzhEQUF3Qjs7Ozs7Ozs7Ozs7O3NEQUd2Qyw4REFBQ0Q7NENBQUlDLFdBQVU7OzhEQUNiLDhEQUFDRDtvREFBSUMsV0FBVTs7c0VBQ2IsOERBQUNqQix1R0FBUUE7NERBQUNpQixXQUFVOzs7Ozs7c0VBQ3BCLDhEQUFDSzs0REFBS0wsV0FBVTtzRUFBbUNSLFdBQVdILE1BQU07Ozs7Ozs7Ozs7Ozs4REFFdEUsOERBQUNlO29EQUFFSixXQUFVOzhEQUF3Qjs7Ozs7Ozs7Ozs7O3NEQUd2Qyw4REFBQ0Q7NENBQUlDLFdBQVU7OzhEQUNiLDhEQUFDRDtvREFBSUMsV0FBVTs7c0VBQ2IsOERBQUNmLHlHQUFVQTs0REFBQ2UsV0FBVTs7Ozs7O3NFQUN0Qiw4REFBQ0s7NERBQUtMLFdBQVU7c0VBQWtDOzs7Ozs7Ozs7Ozs7OERBRXBELDhEQUFDSTtvREFBRUosV0FBVTs4REFBd0I7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O29CQU81Q1YsV0FBV0QsTUFBTSxHQUFHLG1CQUNuQiw4REFBQ2E7d0JBQVFGLFdBQVU7a0NBQ2pCLDRFQUFDRDs0QkFBSUMsV0FBVTs7OENBQ2IsOERBQUNNO29DQUFHTixXQUFVOzhDQUFtRDs7Ozs7OzhDQUNqRSw4REFBQ0Q7b0NBQUlDLFdBQVU7OENBQ1pWLFdBQVdpQixHQUFHLENBQUMsQ0FBQ1YsTUFBTVcsc0JBQ3JCLDhEQUFDVDs0Q0FBb0JDLFdBQVU7OzhEQUM3Qiw4REFBQ0Q7b0RBQUlDLFdBQVU7O3NFQUNiLDhEQUFDSzs0REFBS0wsV0FBVTtzRUFBeUU7Ozs7OztzRUFHekYsOERBQUNTOzREQUFLVCxXQUFVO3NFQUF5QkgsS0FBS2EsSUFBSTs7Ozs7Ozs7Ozs7OzhEQUVwRCw4REFBQ0M7b0RBQUdYLFdBQVU7OERBQ1hILEtBQUtlLEtBQUs7Ozs7OztnREFFWmYsS0FBS2dCLE9BQU8sa0JBQ1gsOERBQUNUO29EQUFFSixXQUFVOzhEQUNWSCxLQUFLZ0IsT0FBTzs7Ozs7O2dEQUdoQmhCLEtBQUtDLElBQUksSUFBSUQsS0FBS0MsSUFBSSxDQUFDVCxNQUFNLEdBQUcsbUJBQy9CLDhEQUFDVTtvREFBSUMsV0FBVTs4REFDWkgsS0FBS0MsSUFBSSxDQUFDUCxLQUFLLENBQUMsR0FBRyxHQUFHZ0IsR0FBRyxDQUFDTyxDQUFBQSxvQkFDekIsOERBQUNUOzREQUFlTCxXQUFVO3NFQUN2QmM7MkRBRFFBOzs7Ozs7Ozs7OzsyQ0FsQlRqQixLQUFLa0IsSUFBSTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O2tDQWdDN0IsOERBQUNuQyw0REFBUUE7d0JBQUNPLE1BQU1BOzs7Ozs7Ozs7Ozs7MEJBRWxCLDhEQUFDTiwwREFBTUE7Ozs7Ozs7Ozs7O0FBR2I7QUFFTyxNQUFNbUMsaUJBQWlDO0lBQzVDLE1BQU03QixPQUFPTCx3REFBVUE7SUFDdkIsT0FBTztRQUFFbUMsT0FBTztZQUFFOUI7UUFBSztJQUFFO0FBQzNCLEVBQUMiLCJzb3VyY2VzIjpbIkQ6XFxkb25neXVuLXByb2plY3RzXFx0d29cXHBhZ2VzXFxuZXdzLnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgTmF2YmFyIGZyb20gJy4uL2NvbXBvbmVudHMvTmF2YmFyJztcclxuaW1wb3J0IE5ld3NMaXN0IGZyb20gJy4uL2NvbXBvbmVudHMvTmV3c0xpc3QnO1xyXG5pbXBvcnQgRm9vdGVyIGZyb20gJy4uL2NvbXBvbmVudHMvRm9vdGVyJztcclxuaW1wb3J0IHR5cGUgeyBHZXRTdGF0aWNQcm9wcyB9IGZyb20gJ25leHQnO1xyXG5pbXBvcnQgeyBnZXRBbGxOZXdzLCBOZXdzSXRlbSB9IGZyb20gJy4uL2xpYi9jb250ZW50JztcclxuaW1wb3J0IHsgQ2FsZW5kYXIsIE5ld3NwYXBlciwgVHJlbmRpbmdVcCB9IGZyb20gJ2x1Y2lkZS1yZWFjdCc7XHJcblxyXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBOZXdzUGFnZSh7IG5ld3MgfTogeyBuZXdzOiBOZXdzSXRlbVtdIH0pIHtcclxuICAvLyDnu5/orqHmlrDpl7vmlbDmja5cclxuICBjb25zdCB0b3RhbE5ld3MgPSBuZXdzLmxlbmd0aDtcclxuICBjb25zdCByZWNlbnROZXdzID0gbmV3cy5zbGljZSgwLCAzKTtcclxuICBjb25zdCBjYXRlZ29yaWVzID0gQXJyYXkuZnJvbShuZXcgU2V0KG5ld3MuZmxhdE1hcChpdGVtID0+IGl0ZW0udGFncyB8fCBbXSkpKTtcclxuXHJcbiAgcmV0dXJuIChcclxuICAgIDxkaXYgY2xhc3NOYW1lPVwicHQtMTYgYmctYmFja2dyb3VuZFwiPlxyXG4gICAgICA8TmF2YmFyIC8+XHJcbiAgICAgIDxtYWluPlxyXG4gICAgICAgIHsvKiDpobXpnaLmoIfpopjpg6jliIYgKi99XHJcbiAgICAgICAgPHNlY3Rpb24gY2xhc3NOYW1lPVwicHgtNiBweS0xNiBiZy1ncmFkaWVudC10by1iciBmcm9tLWJsdWUtNTAgdG8taW5kaWdvLTEwMFwiPlxyXG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJtYXgtdy1zY3JlZW4teGwgbXgtYXV0byB0ZXh0LWNlbnRlclwiPlxyXG4gICAgICAgICAgICA8aDEgY2xhc3NOYW1lPVwidGV4dC00eGwgbWQ6dGV4dC01eGwgZm9udC1ib2xkIHRleHQtcHJpbWFyeSBtYi02XCI+XHJcbiAgICAgICAgICAgICAg5paw6Ze76LWE6K6vXHJcbiAgICAgICAgICAgIDwvaDE+XHJcbiAgICAgICAgICAgIDxwIGNsYXNzTmFtZT1cInRleHQteGwgdGV4dC1ncmF5LTYwMCBtYXgtdy0zeGwgbXgtYXV0byBsZWFkaW5nLXJlbGF4ZWQgbWItOFwiPlxyXG4gICAgICAgICAgICAgIOS6huino+acgOaWsOeahOS6p+WTgeWKqOaAgeOAgeaKgOacr+abtOaWsOWSjOihjOS4mui1hOiur++8jOaOjOaPoeS6keWKoOmAn+acjeWKoeeahOacgOaWsOWPkeWxlVxyXG4gICAgICAgICAgICA8L3A+XHJcbiAgICAgICAgICAgIFxyXG4gICAgICAgICAgICB7Lyog57uf6K6h5L+h5oGvICovfVxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImdyaWQgZ3JpZC1jb2xzLTEgbWQ6Z3JpZC1jb2xzLTMgZ2FwLTYgbWF4LXctMnhsIG14LWF1dG9cIj5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImJnLXdoaXRlLzgwIGJhY2tkcm9wLWJsdXItc20gcm91bmRlZC1sZyBwLTQgc2hhZG93LXNtXCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImZsZXggaXRlbXMtY2VudGVyIGp1c3RpZnktY2VudGVyIG1iLTJcIj5cclxuICAgICAgICAgICAgICAgICAgPE5ld3NwYXBlciBjbGFzc05hbWU9XCJ3LTYgaC02IHRleHQtYWNjZW50IG1yLTJcIiAvPlxyXG4gICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJ0ZXh0LTJ4bCBmb250LWJvbGQgdGV4dC1wcmltYXJ5XCI+e3RvdGFsTmV3c308L3NwYW4+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDxwIGNsYXNzTmFtZT1cInRleHQtc20gdGV4dC1ncmF5LTYwMFwiPuaWsOmXu+i1hOiurzwvcD5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICBcclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImJnLXdoaXRlLzgwIGJhY2tkcm9wLWJsdXItc20gcm91bmRlZC1sZyBwLTQgc2hhZG93LXNtXCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImZsZXggaXRlbXMtY2VudGVyIGp1c3RpZnktY2VudGVyIG1iLTJcIj5cclxuICAgICAgICAgICAgICAgICAgPENhbGVuZGFyIGNsYXNzTmFtZT1cInctNiBoLTYgdGV4dC1ncmVlbi01MDAgbXItMlwiIC8+XHJcbiAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cInRleHQtMnhsIGZvbnQtYm9sZCB0ZXh0LXByaW1hcnlcIj57Y2F0ZWdvcmllcy5sZW5ndGh9PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8cCBjbGFzc05hbWU9XCJ0ZXh0LXNtIHRleHQtZ3JheS02MDBcIj7liIbnsbvmoIfnrb48L3A+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgXHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJiZy13aGl0ZS84MCBiYWNrZHJvcC1ibHVyLXNtIHJvdW5kZWQtbGcgcC00IHNoYWRvdy1zbVwiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJmbGV4IGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNlbnRlciBtYi0yXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxUcmVuZGluZ1VwIGNsYXNzTmFtZT1cInctNiBoLTYgdGV4dC1wdXJwbGUtNTAwIG1yLTJcIiAvPlxyXG4gICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJ0ZXh0LTJ4bCBmb250LWJvbGQgdGV4dC1wcmltYXJ5XCI+5a6e5pe2PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8cCBjbGFzc05hbWU9XCJ0ZXh0LXNtIHRleHQtZ3JheS02MDBcIj7mm7TmlrDnirbmgIE8L3A+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9zZWN0aW9uPlxyXG5cclxuICAgICAgICB7Lyog5pyA5paw6LWE6K6v6aKE6KeIICovfVxyXG4gICAgICAgIHtyZWNlbnROZXdzLmxlbmd0aCA+IDAgJiYgKFxyXG4gICAgICAgICAgPHNlY3Rpb24gY2xhc3NOYW1lPVwicHgtNiBweS0xMiBiZy13aGl0ZVwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cIm1heC13LXNjcmVlbi14bCBteC1hdXRvXCI+XHJcbiAgICAgICAgICAgICAgPGgyIGNsYXNzTmFtZT1cInRleHQtMnhsIGZvbnQtYm9sZCB0ZXh0LXByaW1hcnkgbWItOCB0ZXh0LWNlbnRlclwiPuacgOaWsOi1hOiurzwvaDI+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJncmlkIGdyaWQtY29scy0xIG1kOmdyaWQtY29scy0zIGdhcC02XCI+XHJcbiAgICAgICAgICAgICAgICB7cmVjZW50TmV3cy5tYXAoKGl0ZW0sIGluZGV4KSA9PiAoXHJcbiAgICAgICAgICAgICAgICAgIDxkaXYga2V5PXtpdGVtLnNsdWd9IGNsYXNzTmFtZT1cImdyb3VwIGJnLWdyYXktNTAgcm91bmRlZC14bCBwLTYgaG92ZXI6c2hhZG93LWxnIHRyYW5zaXRpb24tYWxsIGR1cmF0aW9uLTMwMCBib3JkZXIgYm9yZGVyLWdyYXktMTAwIGhvdmVyOmJvcmRlci1hY2NlbnQvMjBcIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImZsZXggaXRlbXMtY2VudGVyIG1iLTNcIj5cclxuICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cImJnLWFjY2VudCB0ZXh0LXdoaXRlIHRleHQteHMgZm9udC1zZW1pYm9sZCBweC0yIHB5LTEgcm91bmRlZC1mdWxsIG1yLTNcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAg5pyA5pawXHJcbiAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8dGltZSBjbGFzc05hbWU9XCJ0ZXh0LXNtIHRleHQtZ3JheS01MDBcIj57aXRlbS5kYXRlfTwvdGltZT5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8aDMgY2xhc3NOYW1lPVwidGV4dC1sZyBmb250LXNlbWlib2xkIHRleHQtcHJpbWFyeSBtYi0yIGdyb3VwLWhvdmVyOnRleHQtYWNjZW50IHRyYW5zaXRpb24tY29sb3JzIGxpbmUtY2xhbXAtMlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAge2l0ZW0udGl0bGV9XHJcbiAgICAgICAgICAgICAgICAgICAgPC9oMz5cclxuICAgICAgICAgICAgICAgICAgICB7aXRlbS5zdW1tYXJ5ICYmIChcclxuICAgICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzTmFtZT1cInRleHQtZ3JheS02MDAgdGV4dC1zbSBsaW5lLWNsYW1wLTMgbWItM1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICB7aXRlbS5zdW1tYXJ5fVxyXG4gICAgICAgICAgICAgICAgICAgICAgPC9wPlxyXG4gICAgICAgICAgICAgICAgICAgICl9XHJcbiAgICAgICAgICAgICAgICAgICAge2l0ZW0udGFncyAmJiBpdGVtLnRhZ3MubGVuZ3RoID4gMCAmJiAoXHJcbiAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImZsZXggZmxleC13cmFwIGdhcC0xXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHtpdGVtLnRhZ3Muc2xpY2UoMCwgMikubWFwKHRhZyA9PiAoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4ga2V5PXt0YWd9IGNsYXNzTmFtZT1cInB4LTIgcHktMSB0ZXh0LXhzIGJnLXdoaXRlIGJvcmRlciBib3JkZXItZ3JheS0yMDAgcm91bmRlZCB0ZXh0LWdyYXktNjAwXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7dGFnfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgKSl9XHJcbiAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICApfVxyXG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICkpfVxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvc2VjdGlvbj5cclxuICAgICAgICApfVxyXG5cclxuICAgICAgICB7Lyog5paw6Ze75YiX6KGoICovfVxyXG4gICAgICAgIDxOZXdzTGlzdCBuZXdzPXtuZXdzfSAvPlxyXG4gICAgICA8L21haW4+XHJcbiAgICAgIDxGb290ZXIgLz5cclxuICAgIDwvZGl2PlxyXG4gICk7XHJcbn1cclxuXHJcbmV4cG9ydCBjb25zdCBnZXRTdGF0aWNQcm9wczogR2V0U3RhdGljUHJvcHMgPSBhc3luYyAoKSA9PiB7XHJcbiAgY29uc3QgbmV3cyA9IGdldEFsbE5ld3MoKTtcclxuICByZXR1cm4geyBwcm9wczogeyBuZXdzIH0gfTtcclxufSJdLCJuYW1lcyI6WyJOYXZiYXIiLCJOZXdzTGlzdCIsIkZvb3RlciIsImdldEFsbE5ld3MiLCJDYWxlbmRhciIsIk5ld3NwYXBlciIsIlRyZW5kaW5nVXAiLCJOZXdzUGFnZSIsIm5ld3MiLCJ0b3RhbE5ld3MiLCJsZW5ndGgiLCJyZWNlbnROZXdzIiwic2xpY2UiLCJjYXRlZ29yaWVzIiwiQXJyYXkiLCJmcm9tIiwiU2V0IiwiZmxhdE1hcCIsIml0ZW0iLCJ0YWdzIiwiZGl2IiwiY2xhc3NOYW1lIiwibWFpbiIsInNlY3Rpb24iLCJoMSIsInAiLCJzcGFuIiwiaDIiLCJtYXAiLCJpbmRleCIsInRpbWUiLCJkYXRlIiwiaDMiLCJ0aXRsZSIsInN1bW1hcnkiLCJ0YWciLCJzbHVnIiwiZ2V0U3RhdGljUHJvcHMiLCJwcm9wcyJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(pages-dir-node)/./pages/news.tsx\n"); - -/***/ }), - -/***/ "(pages-dir-node)/./styles/globals.css": -/*!****************************!*\ - !*** ./styles/globals.css ***! - \****************************/ -/***/ (() => { - - - -/***/ }), - -/***/ "(pages-dir-node)/__barrel_optimize__?names=ArrowRight,Calendar,Clock,Filter,Search,Tag!=!./node_modules/lucide-react/dist/cjs/lucide-react.js": -/*!************************************************************************************************************************************!*\ - !*** __barrel_optimize__?names=ArrowRight,Calendar,Clock,Filter,Search,Tag!=!./node_modules/lucide-react/dist/cjs/lucide-react.js ***! - \************************************************************************************************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony import */ var D_dongyun_projects_two_node_modules_lucide_react_dist_cjs_lucide_react_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./node_modules/lucide-react/dist/cjs/lucide-react.js */ "(pages-dir-node)/./node_modules/lucide-react/dist/cjs/lucide-react.js"); -/* harmony reexport (unknown) */ var __WEBPACK_REEXPORT_OBJECT__ = {}; -/* harmony reexport (unknown) */ for(const __WEBPACK_IMPORT_KEY__ in D_dongyun_projects_two_node_modules_lucide_react_dist_cjs_lucide_react_js__WEBPACK_IMPORTED_MODULE_0__) if(__WEBPACK_IMPORT_KEY__ !== "default") __WEBPACK_REEXPORT_OBJECT__[__WEBPACK_IMPORT_KEY__] = () => D_dongyun_projects_two_node_modules_lucide_react_dist_cjs_lucide_react_js__WEBPACK_IMPORTED_MODULE_0__[__WEBPACK_IMPORT_KEY__] -/* harmony reexport (unknown) */ __webpack_require__.d(__webpack_exports__, __WEBPACK_REEXPORT_OBJECT__); - - -/***/ }), - -/***/ "(pages-dir-node)/__barrel_optimize__?names=Calendar,Newspaper,TrendingUp!=!./node_modules/lucide-react/dist/cjs/lucide-react.js": -/*!**********************************************************************************************************************!*\ - !*** __barrel_optimize__?names=Calendar,Newspaper,TrendingUp!=!./node_modules/lucide-react/dist/cjs/lucide-react.js ***! - \**********************************************************************************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony import */ var D_dongyun_projects_two_node_modules_lucide_react_dist_cjs_lucide_react_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./node_modules/lucide-react/dist/cjs/lucide-react.js */ "(pages-dir-node)/./node_modules/lucide-react/dist/cjs/lucide-react.js"); -/* harmony reexport (unknown) */ var __WEBPACK_REEXPORT_OBJECT__ = {}; -/* harmony reexport (unknown) */ for(const __WEBPACK_IMPORT_KEY__ in D_dongyun_projects_two_node_modules_lucide_react_dist_cjs_lucide_react_js__WEBPACK_IMPORTED_MODULE_0__) if(__WEBPACK_IMPORT_KEY__ !== "default") __WEBPACK_REEXPORT_OBJECT__[__WEBPACK_IMPORT_KEY__] = () => D_dongyun_projects_two_node_modules_lucide_react_dist_cjs_lucide_react_js__WEBPACK_IMPORTED_MODULE_0__[__WEBPACK_IMPORT_KEY__] -/* harmony reexport (unknown) */ __webpack_require__.d(__webpack_exports__, __WEBPACK_REEXPORT_OBJECT__); - - -/***/ }), - -/***/ "(pages-dir-node)/__barrel_optimize__?names=Mail,MessageCircle,Phone!=!./node_modules/lucide-react/dist/cjs/lucide-react.js": -/*!*****************************************************************************************************************!*\ - !*** __barrel_optimize__?names=Mail,MessageCircle,Phone!=!./node_modules/lucide-react/dist/cjs/lucide-react.js ***! - \*****************************************************************************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony import */ var D_dongyun_projects_two_node_modules_lucide_react_dist_cjs_lucide_react_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./node_modules/lucide-react/dist/cjs/lucide-react.js */ "(pages-dir-node)/./node_modules/lucide-react/dist/cjs/lucide-react.js"); -/* harmony reexport (unknown) */ var __WEBPACK_REEXPORT_OBJECT__ = {}; -/* harmony reexport (unknown) */ for(const __WEBPACK_IMPORT_KEY__ in D_dongyun_projects_two_node_modules_lucide_react_dist_cjs_lucide_react_js__WEBPACK_IMPORTED_MODULE_0__) if(__WEBPACK_IMPORT_KEY__ !== "default") __WEBPACK_REEXPORT_OBJECT__[__WEBPACK_IMPORT_KEY__] = () => D_dongyun_projects_two_node_modules_lucide_react_dist_cjs_lucide_react_js__WEBPACK_IMPORTED_MODULE_0__[__WEBPACK_IMPORT_KEY__] -/* harmony reexport (unknown) */ __webpack_require__.d(__webpack_exports__, __WEBPACK_REEXPORT_OBJECT__); - - -/***/ }), - -/***/ "(pages-dir-node)/__barrel_optimize__?names=Menu!=!./node_modules/lucide-react/dist/cjs/lucide-react.js": -/*!*********************************************************************************************!*\ - !*** __barrel_optimize__?names=Menu!=!./node_modules/lucide-react/dist/cjs/lucide-react.js ***! - \*********************************************************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony import */ var D_dongyun_projects_two_node_modules_lucide_react_dist_cjs_lucide_react_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./node_modules/lucide-react/dist/cjs/lucide-react.js */ "(pages-dir-node)/./node_modules/lucide-react/dist/cjs/lucide-react.js"); -/* harmony reexport (unknown) */ var __WEBPACK_REEXPORT_OBJECT__ = {}; -/* harmony reexport (unknown) */ for(const __WEBPACK_IMPORT_KEY__ in D_dongyun_projects_two_node_modules_lucide_react_dist_cjs_lucide_react_js__WEBPACK_IMPORTED_MODULE_0__) if(__WEBPACK_IMPORT_KEY__ !== "default") __WEBPACK_REEXPORT_OBJECT__[__WEBPACK_IMPORT_KEY__] = () => D_dongyun_projects_two_node_modules_lucide_react_dist_cjs_lucide_react_js__WEBPACK_IMPORTED_MODULE_0__[__WEBPACK_IMPORT_KEY__] -/* harmony reexport (unknown) */ __webpack_require__.d(__webpack_exports__, __WEBPACK_REEXPORT_OBJECT__); - - -/***/ }), - -/***/ "fs": -/*!*********************!*\ - !*** external "fs" ***! - \*********************/ -/***/ ((module) => { - -"use strict"; -module.exports = require("fs"); - -/***/ }), - -/***/ "gray-matter": -/*!******************************!*\ - !*** external "gray-matter" ***! - \******************************/ -/***/ ((module) => { - -"use strict"; -module.exports = require("gray-matter"); - -/***/ }), - -/***/ "next/dist/compiled/next-server/pages.runtime.dev.js": -/*!**********************************************************************!*\ - !*** external "next/dist/compiled/next-server/pages.runtime.dev.js" ***! - \**********************************************************************/ -/***/ ((module) => { - -"use strict"; -module.exports = require("next/dist/compiled/next-server/pages.runtime.dev.js"); - -/***/ }), - -/***/ "next/dist/shared/lib/no-fallback-error.external": -/*!******************************************************************!*\ - !*** external "next/dist/shared/lib/no-fallback-error.external" ***! - \******************************************************************/ -/***/ ((module) => { - -"use strict"; -module.exports = require("next/dist/shared/lib/no-fallback-error.external"); - -/***/ }), - -/***/ "next/dist/shared/lib/page-path/normalize-data-path": -/*!*********************************************************************!*\ - !*** external "next/dist/shared/lib/page-path/normalize-data-path" ***! - \*********************************************************************/ -/***/ ((module) => { - -"use strict"; -module.exports = require("next/dist/shared/lib/page-path/normalize-data-path"); - -/***/ }), - -/***/ "next/dist/shared/lib/router/utils/add-path-prefix": -/*!********************************************************************!*\ - !*** external "next/dist/shared/lib/router/utils/add-path-prefix" ***! - \********************************************************************/ -/***/ ((module) => { - -"use strict"; -module.exports = require("next/dist/shared/lib/router/utils/add-path-prefix"); - -/***/ }), - -/***/ "next/dist/shared/lib/router/utils/format-url": -/*!***************************************************************!*\ - !*** external "next/dist/shared/lib/router/utils/format-url" ***! - \***************************************************************/ -/***/ ((module) => { - -"use strict"; -module.exports = require("next/dist/shared/lib/router/utils/format-url"); - -/***/ }), - -/***/ "next/dist/shared/lib/router/utils/is-bot": -/*!***********************************************************!*\ - !*** external "next/dist/shared/lib/router/utils/is-bot" ***! - \***********************************************************/ -/***/ ((module) => { - -"use strict"; -module.exports = require("next/dist/shared/lib/router/utils/is-bot"); - -/***/ }), - -/***/ "next/dist/shared/lib/router/utils/remove-trailing-slash": -/*!**************************************************************************!*\ - !*** external "next/dist/shared/lib/router/utils/remove-trailing-slash" ***! - \**************************************************************************/ -/***/ ((module) => { - -"use strict"; -module.exports = require("next/dist/shared/lib/router/utils/remove-trailing-slash"); - -/***/ }), - -/***/ "next/dist/shared/lib/utils": -/*!*********************************************!*\ - !*** external "next/dist/shared/lib/utils" ***! - \*********************************************/ -/***/ ((module) => { - -"use strict"; -module.exports = require("next/dist/shared/lib/utils"); - -/***/ }), - -/***/ "path": -/*!***********************!*\ - !*** external "path" ***! - \***********************/ -/***/ ((module) => { - -"use strict"; -module.exports = require("path"); - -/***/ }), - -/***/ "react": -/*!************************!*\ - !*** external "react" ***! - \************************/ -/***/ ((module) => { - -"use strict"; -module.exports = require("react"); - -/***/ }), - -/***/ "react/jsx-dev-runtime": -/*!****************************************!*\ - !*** external "react/jsx-dev-runtime" ***! - \****************************************/ -/***/ ((module) => { - -"use strict"; -module.exports = require("react/jsx-dev-runtime"); - -/***/ }), - -/***/ "react/jsx-runtime": -/*!************************************!*\ - !*** external "react/jsx-runtime" ***! - \************************************/ -/***/ ((module) => { - -"use strict"; -module.exports = require("react/jsx-runtime"); - -/***/ }) - -}; -; - -// load runtime -var __webpack_require__ = require("../webpack-runtime.js"); -__webpack_require__.C(exports); -var __webpack_exec__ = (moduleId) => (__webpack_require__(__webpack_require__.s = moduleId)) -var __webpack_exports__ = __webpack_require__.X(0, ["vendor-chunks/next","vendor-chunks/@swc","vendor-chunks/lucide-react"], () => (__webpack_exec__("(pages-dir-node)/./node_modules/next/dist/build/webpack/loaders/next-route-loader/index.js?kind=PAGES&page=%2Fnews&preferredRegion=&absolutePagePath=.%2Fpages%5Cnews.tsx&absoluteAppPath=private-next-pages%2F_app&absoluteDocumentPath=private-next-pages%2F_document&middlewareConfigBase64=e30%3D!"))); -module.exports = __webpack_exports__; - -})(); \ No newline at end of file diff --git a/build/server/vendor-chunks/@swc.js b/build/server/vendor-chunks/@swc.js deleted file mode 100644 index c755702..0000000 --- a/build/server/vendor-chunks/@swc.js +++ /dev/null @@ -1,35 +0,0 @@ -"use strict"; -/* - * ATTENTION: An "eval-source-map" devtool has been used. - * This devtool is neither made for production nor for readable output files. - * It uses "eval()" calls to create a separate source file with attached SourceMaps in the browser devtools. - * If you are trying to read the output file, select a different devtool (https://webpack.js.org/configuration/devtool/) - * or disable the default devtool with "devtool: false". - * If you are looking for production-ready output files, see mode: "production" (https://webpack.js.org/configuration/mode/). - */ -exports.id = "vendor-chunks/@swc"; -exports.ids = ["vendor-chunks/@swc"]; -exports.modules = { - -/***/ "(pages-dir-node)/./node_modules/@swc/helpers/cjs/_interop_require_default.cjs": -/*!********************************************************************!*\ - !*** ./node_modules/@swc/helpers/cjs/_interop_require_default.cjs ***! - \********************************************************************/ -/***/ ((__unused_webpack_module, exports) => { - -eval("\n\nfunction _interop_require_default(obj) {\n return obj && obj.__esModule ? obj : { default: obj };\n}\nexports._ = _interop_require_default;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1ub2RlKS8uL25vZGVfbW9kdWxlcy9Ac3djL2hlbHBlcnMvY2pzL19pbnRlcm9wX3JlcXVpcmVfZGVmYXVsdC5janMiLCJtYXBwaW5ncyI6IkFBQWE7O0FBRWI7QUFDQSwyQ0FBMkM7QUFDM0M7QUFDQSxTQUFTIiwic291cmNlcyI6WyJEOlxcZG9uZ3l1bi1wcm9qZWN0c1xcdHdvXFxub2RlX21vZHVsZXNcXEBzd2NcXGhlbHBlcnNcXGNqc1xcX2ludGVyb3BfcmVxdWlyZV9kZWZhdWx0LmNqcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuZnVuY3Rpb24gX2ludGVyb3BfcmVxdWlyZV9kZWZhdWx0KG9iaikge1xuICAgIHJldHVybiBvYmogJiYgb2JqLl9fZXNNb2R1bGUgPyBvYmogOiB7IGRlZmF1bHQ6IG9iaiB9O1xufVxuZXhwb3J0cy5fID0gX2ludGVyb3BfcmVxdWlyZV9kZWZhdWx0O1xuIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(pages-dir-node)/./node_modules/@swc/helpers/cjs/_interop_require_default.cjs\n"); - -/***/ }), - -/***/ "(pages-dir-node)/./node_modules/@swc/helpers/cjs/_interop_require_wildcard.cjs": -/*!*********************************************************************!*\ - !*** ./node_modules/@swc/helpers/cjs/_interop_require_wildcard.cjs ***! - \*********************************************************************/ -/***/ ((__unused_webpack_module, exports) => { - -eval("\n\nfunction _getRequireWildcardCache(nodeInterop) {\n if (typeof WeakMap !== \"function\") return null;\n\n var cacheBabelInterop = new WeakMap();\n var cacheNodeInterop = new WeakMap();\n\n return (_getRequireWildcardCache = function(nodeInterop) {\n return nodeInterop ? cacheNodeInterop : cacheBabelInterop;\n })(nodeInterop);\n}\nfunction _interop_require_wildcard(obj, nodeInterop) {\n if (!nodeInterop && obj && obj.__esModule) return obj;\n if (obj === null || typeof obj !== \"object\" && typeof obj !== \"function\") return { default: obj };\n\n var cache = _getRequireWildcardCache(nodeInterop);\n\n if (cache && cache.has(obj)) return cache.get(obj);\n\n var newObj = { __proto__: null };\n var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;\n\n for (var key in obj) {\n if (key !== \"default\" && Object.prototype.hasOwnProperty.call(obj, key)) {\n var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;\n if (desc && (desc.get || desc.set)) Object.defineProperty(newObj, key, desc);\n else newObj[key] = obj[key];\n }\n }\n\n newObj.default = obj;\n\n if (cache) cache.set(obj, newObj);\n\n return newObj;\n}\nexports._ = _interop_require_wildcard;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1ub2RlKS8uL25vZGVfbW9kdWxlcy9Ac3djL2hlbHBlcnMvY2pzL19pbnRlcm9wX3JlcXVpcmVfd2lsZGNhcmQuY2pzIiwibWFwcGluZ3MiOiJBQUFhOztBQUViO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBLHVGQUF1Rjs7QUFFdkY7O0FBRUE7O0FBRUEsbUJBQW1CO0FBQ25COztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBOztBQUVBOztBQUVBO0FBQ0E7QUFDQSxTQUFTIiwic291cmNlcyI6WyJEOlxcZG9uZ3l1bi1wcm9qZWN0c1xcdHdvXFxub2RlX21vZHVsZXNcXEBzd2NcXGhlbHBlcnNcXGNqc1xcX2ludGVyb3BfcmVxdWlyZV93aWxkY2FyZC5janMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmZ1bmN0aW9uIF9nZXRSZXF1aXJlV2lsZGNhcmRDYWNoZShub2RlSW50ZXJvcCkge1xuICAgIGlmICh0eXBlb2YgV2Vha01hcCAhPT0gXCJmdW5jdGlvblwiKSByZXR1cm4gbnVsbDtcblxuICAgIHZhciBjYWNoZUJhYmVsSW50ZXJvcCA9IG5ldyBXZWFrTWFwKCk7XG4gICAgdmFyIGNhY2hlTm9kZUludGVyb3AgPSBuZXcgV2Vha01hcCgpO1xuXG4gICAgcmV0dXJuIChfZ2V0UmVxdWlyZVdpbGRjYXJkQ2FjaGUgPSBmdW5jdGlvbihub2RlSW50ZXJvcCkge1xuICAgICAgICByZXR1cm4gbm9kZUludGVyb3AgPyBjYWNoZU5vZGVJbnRlcm9wIDogY2FjaGVCYWJlbEludGVyb3A7XG4gICAgfSkobm9kZUludGVyb3ApO1xufVxuZnVuY3Rpb24gX2ludGVyb3BfcmVxdWlyZV93aWxkY2FyZChvYmosIG5vZGVJbnRlcm9wKSB7XG4gICAgaWYgKCFub2RlSW50ZXJvcCAmJiBvYmogJiYgb2JqLl9fZXNNb2R1bGUpIHJldHVybiBvYmo7XG4gICAgaWYgKG9iaiA9PT0gbnVsbCB8fCB0eXBlb2Ygb2JqICE9PSBcIm9iamVjdFwiICYmIHR5cGVvZiBvYmogIT09IFwiZnVuY3Rpb25cIikgcmV0dXJuIHsgZGVmYXVsdDogb2JqIH07XG5cbiAgICB2YXIgY2FjaGUgPSBfZ2V0UmVxdWlyZVdpbGRjYXJkQ2FjaGUobm9kZUludGVyb3ApO1xuXG4gICAgaWYgKGNhY2hlICYmIGNhY2hlLmhhcyhvYmopKSByZXR1cm4gY2FjaGUuZ2V0KG9iaik7XG5cbiAgICB2YXIgbmV3T2JqID0geyBfX3Byb3RvX186IG51bGwgfTtcbiAgICB2YXIgaGFzUHJvcGVydHlEZXNjcmlwdG9yID0gT2JqZWN0LmRlZmluZVByb3BlcnR5ICYmIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3I7XG5cbiAgICBmb3IgKHZhciBrZXkgaW4gb2JqKSB7XG4gICAgICAgIGlmIChrZXkgIT09IFwiZGVmYXVsdFwiICYmIE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChvYmosIGtleSkpIHtcbiAgICAgICAgICAgIHZhciBkZXNjID0gaGFzUHJvcGVydHlEZXNjcmlwdG9yID8gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihvYmosIGtleSkgOiBudWxsO1xuICAgICAgICAgICAgaWYgKGRlc2MgJiYgKGRlc2MuZ2V0IHx8IGRlc2Muc2V0KSkgT2JqZWN0LmRlZmluZVByb3BlcnR5KG5ld09iaiwga2V5LCBkZXNjKTtcbiAgICAgICAgICAgIGVsc2UgbmV3T2JqW2tleV0gPSBvYmpba2V5XTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG5ld09iai5kZWZhdWx0ID0gb2JqO1xuXG4gICAgaWYgKGNhY2hlKSBjYWNoZS5zZXQob2JqLCBuZXdPYmopO1xuXG4gICAgcmV0dXJuIG5ld09iajtcbn1cbmV4cG9ydHMuXyA9IF9pbnRlcm9wX3JlcXVpcmVfd2lsZGNhcmQ7XG4iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(pages-dir-node)/./node_modules/@swc/helpers/cjs/_interop_require_wildcard.cjs\n"); - -/***/ }) - -}; -; \ No newline at end of file diff --git a/build/server/vendor-chunks/lucide-react.js b/build/server/vendor-chunks/lucide-react.js deleted file mode 100644 index 1b05168..0000000 --- a/build/server/vendor-chunks/lucide-react.js +++ /dev/null @@ -1,25 +0,0 @@ -"use strict"; -/* - * ATTENTION: An "eval-source-map" devtool has been used. - * This devtool is neither made for production nor for readable output files. - * It uses "eval()" calls to create a separate source file with attached SourceMaps in the browser devtools. - * If you are trying to read the output file, select a different devtool (https://webpack.js.org/configuration/devtool/) - * or disable the default devtool with "devtool: false". - * If you are looking for production-ready output files, see mode: "production" (https://webpack.js.org/configuration/mode/). - */ -exports.id = "vendor-chunks/lucide-react"; -exports.ids = ["vendor-chunks/lucide-react"]; -exports.modules = { - -/***/ "(pages-dir-node)/./node_modules/lucide-react/dist/cjs/lucide-react.js": -/*!************************************************************!*\ - !*** ./node_modules/lucide-react/dist/cjs/lucide-react.js ***! - \************************************************************/ -/***/ ((__unused_webpack_module, exports, __webpack_require__) => { - -eval("/**\n * @license lucide-react v0.525.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */ \nvar react = __webpack_require__(/*! react */ \"react\");\nconst toKebabCase = (string)=>string.replace(/([a-z0-9])([A-Z])/g, \"$1-$2\").toLowerCase();\nconst toCamelCase = (string)=>string.replace(/^([A-Z])|[\\s-_]+(\\w)/g, (match, p1, p2)=>p2 ? p2.toUpperCase() : p1.toLowerCase());\nconst toPascalCase = (string)=>{\n const camelCase = toCamelCase(string);\n return camelCase.charAt(0).toUpperCase() + camelCase.slice(1);\n};\nconst mergeClasses = (...classes)=>classes.filter((className, index, array)=>{\n return Boolean(className) && className.trim() !== \"\" && array.indexOf(className) === index;\n }).join(\" \").trim();\nconst hasA11yProp = (props)=>{\n for(const prop in props){\n if (prop.startsWith(\"aria-\") || prop === \"role\" || prop === \"title\") {\n return true;\n }\n }\n};\nvar defaultAttributes = {\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 24,\n height: 24,\n viewBox: \"0 0 24 24\",\n fill: \"none\",\n stroke: \"currentColor\",\n strokeWidth: 2,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n};\nconst Icon = react.forwardRef(({ color = \"currentColor\", size = 24, strokeWidth = 2, absoluteStrokeWidth, className = \"\", children, iconNode, ...rest }, ref)=>react.createElement(\"svg\", {\n ref,\n ...defaultAttributes,\n width: size,\n height: size,\n stroke: color,\n strokeWidth: absoluteStrokeWidth ? Number(strokeWidth) * 24 / Number(size) : strokeWidth,\n className: mergeClasses(\"lucide\", className),\n ...!children && !hasA11yProp(rest) && {\n \"aria-hidden\": \"true\"\n },\n ...rest\n }, [\n ...iconNode.map(([tag, attrs])=>react.createElement(tag, attrs)),\n ...Array.isArray(children) ? children : [\n children\n ]\n ]));\nconst createLucideIcon = (iconName, iconNode)=>{\n const Component = react.forwardRef(({ className, ...props }, ref)=>react.createElement(Icon, {\n ref,\n iconNode,\n className: mergeClasses(`lucide-${toKebabCase(toPascalCase(iconName))}`, `lucide-${iconName}`, className),\n ...props\n }));\n Component.displayName = toPascalCase(iconName);\n return Component;\n};\nconst __iconNode$pa = [\n [\n \"path\",\n {\n d: \"M3.5 13h6\",\n key: \"p1my2r\"\n }\n ],\n [\n \"path\",\n {\n d: \"m2 16 4.5-9 4.5 9\",\n key: \"ndf0b3\"\n }\n ],\n [\n \"path\",\n {\n d: \"M18 7v9\",\n key: \"pknjwm\"\n }\n ],\n [\n \"path\",\n {\n d: \"m14 12 4 4 4-4\",\n key: \"buelq4\"\n }\n ]\n];\nconst AArrowDown = createLucideIcon(\"a-arrow-down\", __iconNode$pa);\nconst __iconNode$p9 = [\n [\n \"path\",\n {\n d: \"M21 14h-5\",\n key: \"1vh23k\"\n }\n ],\n [\n \"path\",\n {\n d: \"M16 16v-3.5a2.5 2.5 0 0 1 5 0V16\",\n key: \"1wh10o\"\n }\n ],\n [\n \"path\",\n {\n d: \"M4.5 13h6\",\n key: \"dfilno\"\n }\n ],\n [\n \"path\",\n {\n d: \"m3 16 4.5-9 4.5 9\",\n key: \"2dxa0e\"\n }\n ]\n];\nconst ALargeSmall = createLucideIcon(\"a-large-small\", __iconNode$p9);\nconst __iconNode$p8 = [\n [\n \"path\",\n {\n d: \"M3.5 13h6\",\n key: \"p1my2r\"\n }\n ],\n [\n \"path\",\n {\n d: \"m2 16 4.5-9 4.5 9\",\n key: \"ndf0b3\"\n }\n ],\n [\n \"path\",\n {\n d: \"M18 16V7\",\n key: \"ty0viw\"\n }\n ],\n [\n \"path\",\n {\n d: \"m14 11 4-4 4 4\",\n key: \"1pu57t\"\n }\n ]\n];\nconst AArrowUp = createLucideIcon(\"a-arrow-up\", __iconNode$p8);\nconst __iconNode$p7 = [\n [\n \"circle\",\n {\n cx: \"16\",\n cy: \"4\",\n r: \"1\",\n key: \"1grugj\"\n }\n ],\n [\n \"path\",\n {\n d: \"m18 19 1-7-6 1\",\n key: \"r0i19z\"\n }\n ],\n [\n \"path\",\n {\n d: \"m5 8 3-3 5.5 3-2.36 3.5\",\n key: \"9ptxx2\"\n }\n ],\n [\n \"path\",\n {\n d: \"M4.24 14.5a5 5 0 0 0 6.88 6\",\n key: \"10kmtu\"\n }\n ],\n [\n \"path\",\n {\n d: \"M13.76 17.5a5 5 0 0 0-6.88-6\",\n key: \"2qq6rc\"\n }\n ]\n];\nconst Accessibility = createLucideIcon(\"accessibility\", __iconNode$p7);\nconst __iconNode$p6 = [\n [\n \"path\",\n {\n d: \"M22 12h-2.48a2 2 0 0 0-1.93 1.46l-2.35 8.36a.25.25 0 0 1-.48 0L9.24 2.18a.25.25 0 0 0-.48 0l-2.35 8.36A2 2 0 0 1 4.49 12H2\",\n key: \"169zse\"\n }\n ]\n];\nconst Activity = createLucideIcon(\"activity\", __iconNode$p6);\nconst __iconNode$p5 = [\n [\n \"path\",\n {\n d: \"M18 17.5a2.5 2.5 0 1 1-4 2.03V12\",\n key: \"yd12zl\"\n }\n ],\n [\n \"path\",\n {\n d: \"M6 12H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2v5a2 2 0 0 1-2 2h-2\",\n key: \"larmp2\"\n }\n ],\n [\n \"path\",\n {\n d: \"M6 8h12\",\n key: \"6g4wlu\"\n }\n ],\n [\n \"path\",\n {\n d: \"M6.6 15.572A2 2 0 1 0 10 17v-5\",\n key: \"1x1kqn\"\n }\n ]\n];\nconst AirVent = createLucideIcon(\"air-vent\", __iconNode$p5);\nconst __iconNode$p4 = [\n [\n \"path\",\n {\n d: \"M5 17H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2v10a2 2 0 0 1-2 2h-1\",\n key: \"ns4c3b\"\n }\n ],\n [\n \"path\",\n {\n d: \"m12 15 5 6H7Z\",\n key: \"14qnn2\"\n }\n ]\n];\nconst Airplay = createLucideIcon(\"airplay\", __iconNode$p4);\nconst __iconNode$p3 = [\n [\n \"circle\",\n {\n cx: \"12\",\n cy: \"13\",\n r: \"8\",\n key: \"3y4lt7\"\n }\n ],\n [\n \"path\",\n {\n d: \"M5 3 2 6\",\n key: \"18tl5t\"\n }\n ],\n [\n \"path\",\n {\n d: \"m22 6-3-3\",\n key: \"1opdir\"\n }\n ],\n [\n \"path\",\n {\n d: \"M6.38 18.7 4 21\",\n key: \"17xu3x\"\n }\n ],\n [\n \"path\",\n {\n d: \"M17.64 18.67 20 21\",\n key: \"kv2oe2\"\n }\n ],\n [\n \"path\",\n {\n d: \"m9 13 2 2 4-4\",\n key: \"6343dt\"\n }\n ]\n];\nconst AlarmClockCheck = createLucideIcon(\"alarm-clock-check\", __iconNode$p3);\nconst __iconNode$p2 = [\n [\n \"circle\",\n {\n cx: \"12\",\n cy: \"13\",\n r: \"8\",\n key: \"3y4lt7\"\n }\n ],\n [\n \"path\",\n {\n d: \"M5 3 2 6\",\n key: \"18tl5t\"\n }\n ],\n [\n \"path\",\n {\n d: \"m22 6-3-3\",\n key: \"1opdir\"\n }\n ],\n [\n \"path\",\n {\n d: \"M6.38 18.7 4 21\",\n key: \"17xu3x\"\n }\n ],\n [\n \"path\",\n {\n d: \"M17.64 18.67 20 21\",\n key: \"kv2oe2\"\n }\n ],\n [\n \"path\",\n {\n d: \"M9 13h6\",\n key: \"1uhe8q\"\n }\n ]\n];\nconst AlarmClockMinus = createLucideIcon(\"alarm-clock-minus\", __iconNode$p2);\nconst __iconNode$p1 = [\n [\n \"path\",\n {\n d: \"M6.87 6.87a8 8 0 1 0 11.26 11.26\",\n key: \"3on8tj\"\n }\n ],\n [\n \"path\",\n {\n d: \"M19.9 14.25a8 8 0 0 0-9.15-9.15\",\n key: \"15ghsc\"\n }\n ],\n [\n \"path\",\n {\n d: \"m22 6-3-3\",\n key: \"1opdir\"\n }\n ],\n [\n \"path\",\n {\n d: \"M6.26 18.67 4 21\",\n key: \"yzmioq\"\n }\n ],\n [\n \"path\",\n {\n d: \"m2 2 20 20\",\n key: \"1ooewy\"\n }\n ],\n [\n \"path\",\n {\n d: \"M4 4 2 6\",\n key: \"1ycko6\"\n }\n ]\n];\nconst AlarmClockOff = createLucideIcon(\"alarm-clock-off\", __iconNode$p1);\nconst __iconNode$p0 = [\n [\n \"circle\",\n {\n cx: \"12\",\n cy: \"13\",\n r: \"8\",\n key: \"3y4lt7\"\n }\n ],\n [\n \"path\",\n {\n d: \"M5 3 2 6\",\n key: \"18tl5t\"\n }\n ],\n [\n \"path\",\n {\n d: \"m22 6-3-3\",\n key: \"1opdir\"\n }\n ],\n [\n \"path\",\n {\n d: \"M6.38 18.7 4 21\",\n key: \"17xu3x\"\n }\n ],\n [\n \"path\",\n {\n d: \"M17.64 18.67 20 21\",\n key: \"kv2oe2\"\n }\n ],\n [\n \"path\",\n {\n d: \"M12 10v6\",\n key: \"1bos4e\"\n }\n ],\n [\n \"path\",\n {\n d: \"M9 13h6\",\n key: \"1uhe8q\"\n }\n ]\n];\nconst AlarmClockPlus = createLucideIcon(\"alarm-clock-plus\", __iconNode$p0);\nconst __iconNode$o$ = [\n [\n \"circle\",\n {\n cx: \"12\",\n cy: \"13\",\n r: \"8\",\n key: \"3y4lt7\"\n }\n ],\n [\n \"path\",\n {\n d: \"M12 9v4l2 2\",\n key: \"1c63tq\"\n }\n ],\n [\n \"path\",\n {\n d: \"M5 3 2 6\",\n key: \"18tl5t\"\n }\n ],\n [\n \"path\",\n {\n d: \"m22 6-3-3\",\n key: \"1opdir\"\n }\n ],\n [\n \"path\",\n {\n d: \"M6.38 18.7 4 21\",\n key: \"17xu3x\"\n }\n ],\n [\n \"path\",\n {\n d: \"M17.64 18.67 20 21\",\n key: \"kv2oe2\"\n }\n ]\n];\nconst AlarmClock = createLucideIcon(\"alarm-clock\", __iconNode$o$);\nconst __iconNode$o_ = [\n [\n \"path\",\n {\n d: \"M11 21c0-2.5 2-2.5 2-5\",\n key: \"1sicvv\"\n }\n ],\n [\n \"path\",\n {\n d: \"M16 21c0-2.5 2-2.5 2-5\",\n key: \"1o3eny\"\n }\n ],\n [\n \"path\",\n {\n d: \"m19 8-.8 3a1.25 1.25 0 0 1-1.2 1H7a1.25 1.25 0 0 1-1.2-1L5 8\",\n key: \"1bvca4\"\n }\n ],\n [\n \"path\",\n {\n d: \"M21 3a1 1 0 0 1 1 1v2a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2V4a1 1 0 0 1 1-1z\",\n key: \"x3qr1j\"\n }\n ],\n [\n \"path\",\n {\n d: \"M6 21c0-2.5 2-2.5 2-5\",\n key: \"i3w1gp\"\n }\n ]\n];\nconst AlarmSmoke = createLucideIcon(\"alarm-smoke\", __iconNode$o_);\nconst __iconNode$oZ = [\n [\n \"rect\",\n {\n width: \"18\",\n height: \"18\",\n x: \"3\",\n y: \"3\",\n rx: \"2\",\n ry: \"2\",\n key: \"1m3agn\"\n }\n ],\n [\n \"polyline\",\n {\n points: \"11 3 11 11 14 8 17 11 17 3\",\n key: \"1wcwz3\"\n }\n ]\n];\nconst Album = createLucideIcon(\"album\", __iconNode$oZ);\nconst __iconNode$oY = [\n [\n \"path\",\n {\n d: \"M2 12h20\",\n key: \"9i4pu4\"\n }\n ],\n [\n \"path\",\n {\n d: \"M10 16v4a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2v-4\",\n key: \"11f1s0\"\n }\n ],\n [\n \"path\",\n {\n d: \"M10 8V4a2 2 0 0 0-2-2H6a2 2 0 0 0-2 2v4\",\n key: \"t14dx9\"\n }\n ],\n [\n \"path\",\n {\n d: \"M20 16v1a2 2 0 0 1-2 2h-2a2 2 0 0 1-2-2v-1\",\n key: \"1w07xs\"\n }\n ],\n [\n \"path\",\n {\n d: \"M14 8V7c0-1.1.9-2 2-2h2a2 2 0 0 1 2 2v1\",\n key: \"1apec2\"\n }\n ]\n];\nconst AlignCenterHorizontal = createLucideIcon(\"align-center-horizontal\", __iconNode$oY);\nconst __iconNode$oX = [\n [\n \"path\",\n {\n d: \"M12 2v20\",\n key: \"t6zp3m\"\n }\n ],\n [\n \"path\",\n {\n d: \"M8 10H4a2 2 0 0 1-2-2V6c0-1.1.9-2 2-2h4\",\n key: \"14d6g8\"\n }\n ],\n [\n \"path\",\n {\n d: \"M16 10h4a2 2 0 0 0 2-2V6a2 2 0 0 0-2-2h-4\",\n key: \"1e2lrw\"\n }\n ],\n [\n \"path\",\n {\n d: \"M8 20H7a2 2 0 0 1-2-2v-2c0-1.1.9-2 2-2h1\",\n key: \"1fkdwx\"\n }\n ],\n [\n \"path\",\n {\n d: \"M16 14h1a2 2 0 0 1 2 2v2a2 2 0 0 1-2 2h-1\",\n key: \"1euafb\"\n }\n ]\n];\nconst AlignCenterVertical = createLucideIcon(\"align-center-vertical\", __iconNode$oX);\nconst __iconNode$oW = [\n [\n \"path\",\n {\n d: \"M17 12H7\",\n key: \"16if0g\"\n }\n ],\n [\n \"path\",\n {\n d: \"M19 18H5\",\n key: \"18s9l3\"\n }\n ],\n [\n \"path\",\n {\n d: \"M21 6H3\",\n key: \"1jwq7v\"\n }\n ]\n];\nconst AlignCenter = createLucideIcon(\"align-center\", __iconNode$oW);\nconst __iconNode$oV = [\n [\n \"rect\",\n {\n width: \"6\",\n height: \"16\",\n x: \"4\",\n y: \"2\",\n rx: \"2\",\n key: \"z5wdxg\"\n }\n ],\n [\n \"rect\",\n {\n width: \"6\",\n height: \"9\",\n x: \"14\",\n y: \"9\",\n rx: \"2\",\n key: \"um7a8w\"\n }\n ],\n [\n \"path\",\n {\n d: \"M22 22H2\",\n key: \"19qnx5\"\n }\n ]\n];\nconst AlignEndHorizontal = createLucideIcon(\"align-end-horizontal\", __iconNode$oV);\nconst __iconNode$oU = [\n [\n \"rect\",\n {\n width: \"16\",\n height: \"6\",\n x: \"2\",\n y: \"4\",\n rx: \"2\",\n key: \"10wcwx\"\n }\n ],\n [\n \"rect\",\n {\n width: \"9\",\n height: \"6\",\n x: \"9\",\n y: \"14\",\n rx: \"2\",\n key: \"4p5bwg\"\n }\n ],\n [\n \"path\",\n {\n d: \"M22 22V2\",\n key: \"12ipfv\"\n }\n ]\n];\nconst AlignEndVertical = createLucideIcon(\"align-end-vertical\", __iconNode$oU);\nconst __iconNode$oT = [\n [\n \"rect\",\n {\n width: \"6\",\n height: \"14\",\n x: \"4\",\n y: \"5\",\n rx: \"2\",\n key: \"1wwnby\"\n }\n ],\n [\n \"rect\",\n {\n width: \"6\",\n height: \"10\",\n x: \"14\",\n y: \"7\",\n rx: \"2\",\n key: \"1fe6j6\"\n }\n ],\n [\n \"path\",\n {\n d: \"M17 22v-5\",\n key: \"4b6g73\"\n }\n ],\n [\n \"path\",\n {\n d: \"M17 7V2\",\n key: \"hnrr36\"\n }\n ],\n [\n \"path\",\n {\n d: \"M7 22v-3\",\n key: \"1r4jpn\"\n }\n ],\n [\n \"path\",\n {\n d: \"M7 5V2\",\n key: \"liy1u9\"\n }\n ]\n];\nconst AlignHorizontalDistributeCenter = createLucideIcon(\"align-horizontal-distribute-center\", __iconNode$oT);\nconst __iconNode$oS = [\n [\n \"rect\",\n {\n width: \"6\",\n height: \"14\",\n x: \"4\",\n y: \"5\",\n rx: \"2\",\n key: \"1wwnby\"\n }\n ],\n [\n \"rect\",\n {\n width: \"6\",\n height: \"10\",\n x: \"14\",\n y: \"7\",\n rx: \"2\",\n key: \"1fe6j6\"\n }\n ],\n [\n \"path\",\n {\n d: \"M10 2v20\",\n key: \"uyc634\"\n }\n ],\n [\n \"path\",\n {\n d: \"M20 2v20\",\n key: \"1tx262\"\n }\n ]\n];\nconst AlignHorizontalDistributeEnd = createLucideIcon(\"align-horizontal-distribute-end\", __iconNode$oS);\nconst __iconNode$oR = [\n [\n \"rect\",\n {\n width: \"6\",\n height: \"14\",\n x: \"4\",\n y: \"5\",\n rx: \"2\",\n key: \"1wwnby\"\n }\n ],\n [\n \"rect\",\n {\n width: \"6\",\n height: \"10\",\n x: \"14\",\n y: \"7\",\n rx: \"2\",\n key: \"1fe6j6\"\n }\n ],\n [\n \"path\",\n {\n d: \"M4 2v20\",\n key: \"gtpd5x\"\n }\n ],\n [\n \"path\",\n {\n d: \"M14 2v20\",\n key: \"tg6bpw\"\n }\n ]\n];\nconst AlignHorizontalDistributeStart = createLucideIcon(\"align-horizontal-distribute-start\", __iconNode$oR);\nconst __iconNode$oQ = [\n [\n \"rect\",\n {\n width: \"6\",\n height: \"14\",\n x: \"2\",\n y: \"5\",\n rx: \"2\",\n key: \"dy24zr\"\n }\n ],\n [\n \"rect\",\n {\n width: \"6\",\n height: \"10\",\n x: \"16\",\n y: \"7\",\n rx: \"2\",\n key: \"13zkjt\"\n }\n ],\n [\n \"path\",\n {\n d: \"M12 2v20\",\n key: \"t6zp3m\"\n }\n ]\n];\nconst AlignHorizontalJustifyCenter = createLucideIcon(\"align-horizontal-justify-center\", __iconNode$oQ);\nconst __iconNode$oP = [\n [\n \"rect\",\n {\n width: \"6\",\n height: \"14\",\n x: \"2\",\n y: \"5\",\n rx: \"2\",\n key: \"dy24zr\"\n }\n ],\n [\n \"rect\",\n {\n width: \"6\",\n height: \"10\",\n x: \"12\",\n y: \"7\",\n rx: \"2\",\n key: \"1ht384\"\n }\n ],\n [\n \"path\",\n {\n d: \"M22 2v20\",\n key: \"40qfg1\"\n }\n ]\n];\nconst AlignHorizontalJustifyEnd = createLucideIcon(\"align-horizontal-justify-end\", __iconNode$oP);\nconst __iconNode$oO = [\n [\n \"rect\",\n {\n width: \"6\",\n height: \"14\",\n x: \"6\",\n y: \"5\",\n rx: \"2\",\n key: \"hsirpf\"\n }\n ],\n [\n \"rect\",\n {\n width: \"6\",\n height: \"10\",\n x: \"16\",\n y: \"7\",\n rx: \"2\",\n key: \"13zkjt\"\n }\n ],\n [\n \"path\",\n {\n d: \"M2 2v20\",\n key: \"1ivd8o\"\n }\n ]\n];\nconst AlignHorizontalJustifyStart = createLucideIcon(\"align-horizontal-justify-start\", __iconNode$oO);\nconst __iconNode$oN = [\n [\n \"rect\",\n {\n width: \"6\",\n height: \"10\",\n x: \"9\",\n y: \"7\",\n rx: \"2\",\n key: \"yn7j0q\"\n }\n ],\n [\n \"path\",\n {\n d: \"M4 22V2\",\n key: \"tsjzd3\"\n }\n ],\n [\n \"path\",\n {\n d: \"M20 22V2\",\n key: \"1bnhr8\"\n }\n ]\n];\nconst AlignHorizontalSpaceAround = createLucideIcon(\"align-horizontal-space-around\", __iconNode$oN);\nconst __iconNode$oM = [\n [\n \"rect\",\n {\n width: \"6\",\n height: \"14\",\n x: \"3\",\n y: \"5\",\n rx: \"2\",\n key: \"j77dae\"\n }\n ],\n [\n \"rect\",\n {\n width: \"6\",\n height: \"10\",\n x: \"15\",\n y: \"7\",\n rx: \"2\",\n key: \"bq30hj\"\n }\n ],\n [\n \"path\",\n {\n d: \"M3 2v20\",\n key: \"1d2pfg\"\n }\n ],\n [\n \"path\",\n {\n d: \"M21 2v20\",\n key: \"p059bm\"\n }\n ]\n];\nconst AlignHorizontalSpaceBetween = createLucideIcon(\"align-horizontal-space-between\", __iconNode$oM);\nconst __iconNode$oL = [\n [\n \"path\",\n {\n d: \"M3 12h18\",\n key: \"1i2n21\"\n }\n ],\n [\n \"path\",\n {\n d: \"M3 18h18\",\n key: \"1h113x\"\n }\n ],\n [\n \"path\",\n {\n d: \"M3 6h18\",\n key: \"d0wm0j\"\n }\n ]\n];\nconst AlignJustify = createLucideIcon(\"align-justify\", __iconNode$oL);\nconst __iconNode$oK = [\n [\n \"path\",\n {\n d: \"M15 12H3\",\n key: \"6jk70r\"\n }\n ],\n [\n \"path\",\n {\n d: \"M17 18H3\",\n key: \"1amg6g\"\n }\n ],\n [\n \"path\",\n {\n d: \"M21 6H3\",\n key: \"1jwq7v\"\n }\n ]\n];\nconst AlignLeft = createLucideIcon(\"align-left\", __iconNode$oK);\nconst __iconNode$oJ = [\n [\n \"path\",\n {\n d: \"M21 12H9\",\n key: \"dn1m92\"\n }\n ],\n [\n \"path\",\n {\n d: \"M21 18H7\",\n key: \"1ygte8\"\n }\n ],\n [\n \"path\",\n {\n d: \"M21 6H3\",\n key: \"1jwq7v\"\n }\n ]\n];\nconst AlignRight = createLucideIcon(\"align-right\", __iconNode$oJ);\nconst __iconNode$oI = [\n [\n \"rect\",\n {\n width: \"6\",\n height: \"16\",\n x: \"4\",\n y: \"6\",\n rx: \"2\",\n key: \"1n4dg1\"\n }\n ],\n [\n \"rect\",\n {\n width: \"6\",\n height: \"9\",\n x: \"14\",\n y: \"6\",\n rx: \"2\",\n key: \"17khns\"\n }\n ],\n [\n \"path\",\n {\n d: \"M22 2H2\",\n key: \"fhrpnj\"\n }\n ]\n];\nconst AlignStartHorizontal = createLucideIcon(\"align-start-horizontal\", __iconNode$oI);\nconst __iconNode$oH = [\n [\n \"rect\",\n {\n width: \"9\",\n height: \"6\",\n x: \"6\",\n y: \"14\",\n rx: \"2\",\n key: \"lpm2y7\"\n }\n ],\n [\n \"rect\",\n {\n width: \"16\",\n height: \"6\",\n x: \"6\",\n y: \"4\",\n rx: \"2\",\n key: \"rdj6ps\"\n }\n ],\n [\n \"path\",\n {\n d: \"M2 2v20\",\n key: \"1ivd8o\"\n }\n ]\n];\nconst AlignStartVertical = createLucideIcon(\"align-start-vertical\", __iconNode$oH);\nconst __iconNode$oG = [\n [\n \"path\",\n {\n d: \"M22 17h-3\",\n key: \"1lwga1\"\n }\n ],\n [\n \"path\",\n {\n d: \"M22 7h-5\",\n key: \"o2endc\"\n }\n ],\n [\n \"path\",\n {\n d: \"M5 17H2\",\n key: \"1gx9xc\"\n }\n ],\n [\n \"path\",\n {\n d: \"M7 7H2\",\n key: \"6bq26l\"\n }\n ],\n [\n \"rect\",\n {\n x: \"5\",\n y: \"14\",\n width: \"14\",\n height: \"6\",\n rx: \"2\",\n key: \"1qrzuf\"\n }\n ],\n [\n \"rect\",\n {\n x: \"7\",\n y: \"4\",\n width: \"10\",\n height: \"6\",\n rx: \"2\",\n key: \"we8e9z\"\n }\n ]\n];\nconst AlignVerticalDistributeCenter = createLucideIcon(\"align-vertical-distribute-center\", __iconNode$oG);\nconst __iconNode$oF = [\n [\n \"rect\",\n {\n width: \"14\",\n height: \"6\",\n x: \"5\",\n y: \"14\",\n rx: \"2\",\n key: \"jmoj9s\"\n }\n ],\n [\n \"rect\",\n {\n width: \"10\",\n height: \"6\",\n x: \"7\",\n y: \"4\",\n rx: \"2\",\n key: \"aza5on\"\n }\n ],\n [\n \"path\",\n {\n d: \"M2 20h20\",\n key: \"owomy5\"\n }\n ],\n [\n \"path\",\n {\n d: \"M2 10h20\",\n key: \"1ir3d8\"\n }\n ]\n];\nconst AlignVerticalDistributeEnd = createLucideIcon(\"align-vertical-distribute-end\", __iconNode$oF);\nconst __iconNode$oE = [\n [\n \"rect\",\n {\n width: \"14\",\n height: \"6\",\n x: \"5\",\n y: \"14\",\n rx: \"2\",\n key: \"jmoj9s\"\n }\n ],\n [\n \"rect\",\n {\n width: \"10\",\n height: \"6\",\n x: \"7\",\n y: \"4\",\n rx: \"2\",\n key: \"aza5on\"\n }\n ],\n [\n \"path\",\n {\n d: \"M2 14h20\",\n key: \"myj16y\"\n }\n ],\n [\n \"path\",\n {\n d: \"M2 4h20\",\n key: \"mda7wb\"\n }\n ]\n];\nconst AlignVerticalDistributeStart = createLucideIcon(\"align-vertical-distribute-start\", __iconNode$oE);\nconst __iconNode$oD = [\n [\n \"rect\",\n {\n width: \"14\",\n height: \"6\",\n x: \"5\",\n y: \"16\",\n rx: \"2\",\n key: \"1i8z2d\"\n }\n ],\n [\n \"rect\",\n {\n width: \"10\",\n height: \"6\",\n x: \"7\",\n y: \"2\",\n rx: \"2\",\n key: \"ypihtt\"\n }\n ],\n [\n \"path\",\n {\n d: \"M2 12h20\",\n key: \"9i4pu4\"\n }\n ]\n];\nconst AlignVerticalJustifyCenter = createLucideIcon(\"align-vertical-justify-center\", __iconNode$oD);\nconst __iconNode$oC = [\n [\n \"rect\",\n {\n width: \"14\",\n height: \"6\",\n x: \"5\",\n y: \"12\",\n rx: \"2\",\n key: \"4l4tp2\"\n }\n ],\n [\n \"rect\",\n {\n width: \"10\",\n height: \"6\",\n x: \"7\",\n y: \"2\",\n rx: \"2\",\n key: \"ypihtt\"\n }\n ],\n [\n \"path\",\n {\n d: \"M2 22h20\",\n key: \"272qi7\"\n }\n ]\n];\nconst AlignVerticalJustifyEnd = createLucideIcon(\"align-vertical-justify-end\", __iconNode$oC);\nconst __iconNode$oB = [\n [\n \"rect\",\n {\n width: \"14\",\n height: \"6\",\n x: \"5\",\n y: \"16\",\n rx: \"2\",\n key: \"1i8z2d\"\n }\n ],\n [\n \"rect\",\n {\n width: \"10\",\n height: \"6\",\n x: \"7\",\n y: \"6\",\n rx: \"2\",\n key: \"13squh\"\n }\n ],\n [\n \"path\",\n {\n d: \"M2 2h20\",\n key: \"1ennik\"\n }\n ]\n];\nconst AlignVerticalJustifyStart = createLucideIcon(\"align-vertical-justify-start\", __iconNode$oB);\nconst __iconNode$oA = [\n [\n \"rect\",\n {\n width: \"10\",\n height: \"6\",\n x: \"7\",\n y: \"9\",\n rx: \"2\",\n key: \"b1zbii\"\n }\n ],\n [\n \"path\",\n {\n d: \"M22 20H2\",\n key: \"1p1f7z\"\n }\n ],\n [\n \"path\",\n {\n d: \"M22 4H2\",\n key: \"1b7qnq\"\n }\n ]\n];\nconst AlignVerticalSpaceAround = createLucideIcon(\"align-vertical-space-around\", __iconNode$oA);\nconst __iconNode$oz = [\n [\n \"rect\",\n {\n width: \"14\",\n height: \"6\",\n x: \"5\",\n y: \"15\",\n rx: \"2\",\n key: \"1w91an\"\n }\n ],\n [\n \"rect\",\n {\n width: \"10\",\n height: \"6\",\n x: \"7\",\n y: \"3\",\n rx: \"2\",\n key: \"17wqzy\"\n }\n ],\n [\n \"path\",\n {\n d: \"M2 21h20\",\n key: \"1nyx9w\"\n }\n ],\n [\n \"path\",\n {\n d: \"M2 3h20\",\n key: \"91anmk\"\n }\n ]\n];\nconst AlignVerticalSpaceBetween = createLucideIcon(\"align-vertical-space-between\", __iconNode$oz);\nconst __iconNode$oy = [\n [\n \"path\",\n {\n d: \"M10 10H6\",\n key: \"1bsnug\"\n }\n ],\n [\n \"path\",\n {\n d: \"M14 18V6a2 2 0 0 0-2-2H4a2 2 0 0 0-2 2v11a1 1 0 0 0 1 1h2\",\n key: \"wrbu53\"\n }\n ],\n [\n \"path\",\n {\n d: \"M19 18h2a1 1 0 0 0 1-1v-3.28a1 1 0 0 0-.684-.948l-1.923-.641a1 1 0 0 1-.578-.502l-1.539-3.076A1 1 0 0 0 16.382 8H14\",\n key: \"lrkjwd\"\n }\n ],\n [\n \"path\",\n {\n d: \"M8 8v4\",\n key: \"1fwk8c\"\n }\n ],\n [\n \"path\",\n {\n d: \"M9 18h6\",\n key: \"x1upvd\"\n }\n ],\n [\n \"circle\",\n {\n cx: \"17\",\n cy: \"18\",\n r: \"2\",\n key: \"332jqn\"\n }\n ],\n [\n \"circle\",\n {\n cx: \"7\",\n cy: \"18\",\n r: \"2\",\n key: \"19iecd\"\n }\n ]\n];\nconst Ambulance = createLucideIcon(\"ambulance\", __iconNode$oy);\nconst __iconNode$ox = [\n [\n \"path\",\n {\n d: \"M17.5 12c0 4.4-3.6 8-8 8A4.5 4.5 0 0 1 5 15.5c0-6 8-4 8-8.5a3 3 0 1 0-6 0c0 3 2.5 8.5 12 13\",\n key: \"1o9ehi\"\n }\n ],\n [\n \"path\",\n {\n d: \"M16 12h3\",\n key: \"4uvgyw\"\n }\n ]\n];\nconst Ampersand = createLucideIcon(\"ampersand\", __iconNode$ox);\nconst __iconNode$ow = [\n [\n \"path\",\n {\n d: \"M10 17c-5-3-7-7-7-9a2 2 0 0 1 4 0c0 2.5-5 2.5-5 6 0 1.7 1.3 3 3 3 2.8 0 5-2.2 5-5\",\n key: \"12lh1k\"\n }\n ],\n [\n \"path\",\n {\n d: \"M22 17c-5-3-7-7-7-9a2 2 0 0 1 4 0c0 2.5-5 2.5-5 6 0 1.7 1.3 3 3 3 2.8 0 5-2.2 5-5\",\n key: \"173c68\"\n }\n ]\n];\nconst Ampersands = createLucideIcon(\"ampersands\", __iconNode$ow);\nconst __iconNode$ov = [\n [\n \"path\",\n {\n d: \"M10 2v5.632c0 .424-.272.795-.653.982A6 6 0 0 0 6 14c.006 4 3 7 5 8\",\n key: \"1h8rid\"\n }\n ],\n [\n \"path\",\n {\n d: \"M10 5H8a2 2 0 0 0 0 4h.68\",\n key: \"3ezsi6\"\n }\n ],\n [\n \"path\",\n {\n d: \"M14 2v5.632c0 .424.272.795.652.982A6 6 0 0 1 18 14c0 4-3 7-5 8\",\n key: \"yt6q09\"\n }\n ],\n [\n \"path\",\n {\n d: \"M14 5h2a2 2 0 0 1 0 4h-.68\",\n key: \"8f95yk\"\n }\n ],\n [\n \"path\",\n {\n d: \"M18 22H6\",\n key: \"mg6kv4\"\n }\n ],\n [\n \"path\",\n {\n d: \"M9 2h6\",\n key: \"1jrp98\"\n }\n ]\n];\nconst Amphora = createLucideIcon(\"amphora\", __iconNode$ov);\nconst __iconNode$ou = [\n [\n \"path\",\n {\n d: \"M12 22V8\",\n key: \"qkxhtm\"\n }\n ],\n [\n \"path\",\n {\n d: \"M5 12H2a10 10 0 0 0 20 0h-3\",\n key: \"1hv3nh\"\n }\n ],\n [\n \"circle\",\n {\n cx: \"12\",\n cy: \"5\",\n r: \"3\",\n key: \"rqqgnr\"\n }\n ]\n];\nconst Anchor = createLucideIcon(\"anchor\", __iconNode$ou);\nconst __iconNode$ot = [\n [\n \"circle\",\n {\n cx: \"12\",\n cy: \"12\",\n r: \"10\",\n key: \"1mglay\"\n }\n ],\n [\n \"path\",\n {\n d: \"M16 16s-1.5-2-4-2-4 2-4 2\",\n key: \"epbg0q\"\n }\n ],\n [\n \"path\",\n {\n d: \"M7.5 8 10 9\",\n key: \"olxxln\"\n }\n ],\n [\n \"path\",\n {\n d: \"m14 9 2.5-1\",\n key: \"1j6cij\"\n }\n ],\n [\n \"path\",\n {\n d: \"M9 10h.01\",\n key: \"qbtxuw\"\n }\n ],\n [\n \"path\",\n {\n d: \"M15 10h.01\",\n key: \"1qmjsl\"\n }\n ]\n];\nconst Angry = createLucideIcon(\"angry\", __iconNode$ot);\nconst __iconNode$os = [\n [\n \"circle\",\n {\n cx: \"12\",\n cy: \"12\",\n r: \"10\",\n key: \"1mglay\"\n }\n ],\n [\n \"path\",\n {\n d: \"M8 15h8\",\n key: \"45n4r\"\n }\n ],\n [\n \"path\",\n {\n d: \"M8 9h2\",\n key: \"1g203m\"\n }\n ],\n [\n \"path\",\n {\n d: \"M14 9h2\",\n key: \"116p9w\"\n }\n ]\n];\nconst Annoyed = createLucideIcon(\"annoyed\", __iconNode$os);\nconst __iconNode$or = [\n [\n \"path\",\n {\n d: \"M2 12 7 2\",\n key: \"117k30\"\n }\n ],\n [\n \"path\",\n {\n d: \"m7 12 5-10\",\n key: \"1tvx22\"\n }\n ],\n [\n \"path\",\n {\n d: \"m12 12 5-10\",\n key: \"ev1o1a\"\n }\n ],\n [\n \"path\",\n {\n d: \"m17 12 5-10\",\n key: \"1e4ti3\"\n }\n ],\n [\n \"path\",\n {\n d: \"M4.5 7h15\",\n key: \"vlsxkz\"\n }\n ],\n [\n \"path\",\n {\n d: \"M12 16v6\",\n key: \"c8a4gj\"\n }\n ]\n];\nconst Antenna = createLucideIcon(\"antenna\", __iconNode$or);\nconst __iconNode$oq = [\n [\n \"path\",\n {\n d: \"M7 10H6a4 4 0 0 1-4-4 1 1 0 0 1 1-1h4\",\n key: \"1hjpb6\"\n }\n ],\n [\n \"path\",\n {\n d: \"M7 5a1 1 0 0 1 1-1h13a1 1 0 0 1 1 1 7 7 0 0 1-7 7H8a1 1 0 0 1-1-1z\",\n key: \"1qn45f\"\n }\n ],\n [\n \"path\",\n {\n d: \"M9 12v5\",\n key: \"3anwtq\"\n }\n ],\n [\n \"path\",\n {\n d: \"M15 12v5\",\n key: \"5xh3zn\"\n }\n ],\n [\n \"path\",\n {\n d: \"M5 20a3 3 0 0 1 3-3h8a3 3 0 0 1 3 3 1 1 0 0 1-1 1H6a1 1 0 0 1-1-1\",\n key: \"1fi4x8\"\n }\n ]\n];\nconst Anvil = createLucideIcon(\"anvil\", __iconNode$oq);\nconst __iconNode$op = [\n [\n \"circle\",\n {\n cx: \"12\",\n cy: \"12\",\n r: \"10\",\n key: \"1mglay\"\n }\n ],\n [\n \"path\",\n {\n d: \"m14.31 8 5.74 9.94\",\n key: \"1y6ab4\"\n }\n ],\n [\n \"path\",\n {\n d: \"M9.69 8h11.48\",\n key: \"1wxppr\"\n }\n ],\n [\n \"path\",\n {\n d: \"m7.38 12 5.74-9.94\",\n key: \"1grp0k\"\n }\n ],\n [\n \"path\",\n {\n d: \"M9.69 16 3.95 6.06\",\n key: \"libnyf\"\n }\n ],\n [\n \"path\",\n {\n d: \"M14.31 16H2.83\",\n key: \"x5fava\"\n }\n ],\n [\n \"path\",\n {\n d: \"m16.62 12-5.74 9.94\",\n key: \"1vwawt\"\n }\n ]\n];\nconst Aperture = createLucideIcon(\"aperture\", __iconNode$op);\nconst __iconNode$oo = [\n [\n \"rect\",\n {\n width: \"20\",\n height: \"16\",\n x: \"2\",\n y: \"4\",\n rx: \"2\",\n key: \"18n3k1\"\n }\n ],\n [\n \"path\",\n {\n d: \"M6 8h.01\",\n key: \"x9i8wu\"\n }\n ],\n [\n \"path\",\n {\n d: \"M10 8h.01\",\n key: \"1r9ogq\"\n }\n ],\n [\n \"path\",\n {\n d: \"M14 8h.01\",\n key: \"1primd\"\n }\n ]\n];\nconst AppWindowMac = createLucideIcon(\"app-window-mac\", __iconNode$oo);\nconst __iconNode$on = [\n [\n \"rect\",\n {\n x: \"2\",\n y: \"4\",\n width: \"20\",\n height: \"16\",\n rx: \"2\",\n key: \"izxlao\"\n }\n ],\n [\n \"path\",\n {\n d: \"M10 4v4\",\n key: \"pp8u80\"\n }\n ],\n [\n \"path\",\n {\n d: \"M2 8h20\",\n key: \"d11cs7\"\n }\n ],\n [\n \"path\",\n {\n d: \"M6 4v4\",\n key: \"1svtjw\"\n }\n ]\n];\nconst AppWindow = createLucideIcon(\"app-window\", __iconNode$on);\nconst __iconNode$om = [\n [\n \"path\",\n {\n d: \"M12 20.94c1.5 0 2.75 1.06 4 1.06 3 0 6-8 6-12.22A4.91 4.91 0 0 0 17 5c-2.22 0-4 1.44-5 2-1-.56-2.78-2-5-2a4.9 4.9 0 0 0-5 4.78C2 14 5 22 8 22c1.25 0 2.5-1.06 4-1.06Z\",\n key: \"3s7exb\"\n }\n ],\n [\n \"path\",\n {\n d: \"M10 2c1 .5 2 2 2 5\",\n key: \"fcco2y\"\n }\n ]\n];\nconst Apple = createLucideIcon(\"apple\", __iconNode$om);\nconst __iconNode$ol = [\n [\n \"rect\",\n {\n width: \"20\",\n height: \"5\",\n x: \"2\",\n y: \"3\",\n rx: \"1\",\n key: \"1wp1u1\"\n }\n ],\n [\n \"path\",\n {\n d: \"M4 8v11a2 2 0 0 0 2 2h2\",\n key: \"tvwodi\"\n }\n ],\n [\n \"path\",\n {\n d: \"M20 8v11a2 2 0 0 1-2 2h-2\",\n key: \"1gkqxj\"\n }\n ],\n [\n \"path\",\n {\n d: \"m9 15 3-3 3 3\",\n key: \"1pd0qc\"\n }\n ],\n [\n \"path\",\n {\n d: \"M12 12v9\",\n key: \"192myk\"\n }\n ]\n];\nconst ArchiveRestore = createLucideIcon(\"archive-restore\", __iconNode$ol);\nconst __iconNode$ok = [\n [\n \"rect\",\n {\n width: \"20\",\n height: \"5\",\n x: \"2\",\n y: \"3\",\n rx: \"1\",\n key: \"1wp1u1\"\n }\n ],\n [\n \"path\",\n {\n d: \"M4 8v11a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8\",\n key: \"1s80jp\"\n }\n ],\n [\n \"path\",\n {\n d: \"m9.5 17 5-5\",\n key: \"nakeu6\"\n }\n ],\n [\n \"path\",\n {\n d: \"m9.5 12 5 5\",\n key: \"1hccrj\"\n }\n ]\n];\nconst ArchiveX = createLucideIcon(\"archive-x\", __iconNode$ok);\nconst __iconNode$oj = [\n [\n \"rect\",\n {\n width: \"20\",\n height: \"5\",\n x: \"2\",\n y: \"3\",\n rx: \"1\",\n key: \"1wp1u1\"\n }\n ],\n [\n \"path\",\n {\n d: \"M4 8v11a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8\",\n key: \"1s80jp\"\n }\n ],\n [\n \"path\",\n {\n d: \"M10 12h4\",\n key: \"a56b0p\"\n }\n ]\n];\nconst Archive = createLucideIcon(\"archive\", __iconNode$oj);\nconst __iconNode$oi = [\n [\n \"path\",\n {\n d: \"M19 9V6a2 2 0 0 0-2-2H7a2 2 0 0 0-2 2v3\",\n key: \"irtipd\"\n }\n ],\n [\n \"path\",\n {\n d: \"M3 16a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-5a2 2 0 0 0-4 0v1.5a.5.5 0 0 1-.5.5h-9a.5.5 0 0 1-.5-.5V11a2 2 0 0 0-4 0z\",\n key: \"1qyhux\"\n }\n ],\n [\n \"path\",\n {\n d: \"M5 18v2\",\n key: \"ppbyun\"\n }\n ],\n [\n \"path\",\n {\n d: \"M19 18v2\",\n key: \"gy7782\"\n }\n ]\n];\nconst Armchair = createLucideIcon(\"armchair\", __iconNode$oi);\nconst __iconNode$oh = [\n [\n \"path\",\n {\n d: \"M15 5H9\",\n key: \"1tp3ed\"\n }\n ],\n [\n \"path\",\n {\n d: \"M15 9v3h4l-7 7-7-7h4V9z\",\n key: \"ncdc4b\"\n }\n ]\n];\nconst ArrowBigDownDash = createLucideIcon(\"arrow-big-down-dash\", __iconNode$oh);\nconst __iconNode$og = [\n [\n \"path\",\n {\n d: \"M15 6v6h4l-7 7-7-7h4V6h6z\",\n key: \"1thax2\"\n }\n ]\n];\nconst ArrowBigDown = createLucideIcon(\"arrow-big-down\", __iconNode$og);\nconst __iconNode$of = [\n [\n \"path\",\n {\n d: \"M19 15V9\",\n key: \"1hci5f\"\n }\n ],\n [\n \"path\",\n {\n d: \"M15 15h-3v4l-7-7 7-7v4h3v6z\",\n key: \"16tjna\"\n }\n ]\n];\nconst ArrowBigLeftDash = createLucideIcon(\"arrow-big-left-dash\", __iconNode$of);\nconst __iconNode$oe = [\n [\n \"path\",\n {\n d: \"M18 15h-6v4l-7-7 7-7v4h6v6z\",\n key: \"lbrdak\"\n }\n ]\n];\nconst ArrowBigLeft = createLucideIcon(\"arrow-big-left\", __iconNode$oe);\nconst __iconNode$od = [\n [\n \"path\",\n {\n d: \"M5 9v6\",\n key: \"158jrl\"\n }\n ],\n [\n \"path\",\n {\n d: \"M9 9h3V5l7 7-7 7v-4H9V9z\",\n key: \"1sg2xn\"\n }\n ]\n];\nconst ArrowBigRightDash = createLucideIcon(\"arrow-big-right-dash\", __iconNode$od);\nconst __iconNode$oc = [\n [\n \"path\",\n {\n d: \"M6 9h6V5l7 7-7 7v-4H6V9z\",\n key: \"7fvt9c\"\n }\n ]\n];\nconst ArrowBigRight = createLucideIcon(\"arrow-big-right\", __iconNode$oc);\nconst __iconNode$ob = [\n [\n \"path\",\n {\n d: \"M9 19h6\",\n key: \"456am0\"\n }\n ],\n [\n \"path\",\n {\n d: \"M9 15v-3H5l7-7 7 7h-4v3H9z\",\n key: \"1r2uve\"\n }\n ]\n];\nconst ArrowBigUpDash = createLucideIcon(\"arrow-big-up-dash\", __iconNode$ob);\nconst __iconNode$oa = [\n [\n \"path\",\n {\n d: \"M9 18v-6H5l7-7 7 7h-4v6H9z\",\n key: \"1x06kx\"\n }\n ]\n];\nconst ArrowBigUp = createLucideIcon(\"arrow-big-up\", __iconNode$oa);\nconst __iconNode$o9 = [\n [\n \"path\",\n {\n d: \"m3 16 4 4 4-4\",\n key: \"1co6wj\"\n }\n ],\n [\n \"path\",\n {\n d: \"M7 20V4\",\n key: \"1yoxec\"\n }\n ],\n [\n \"rect\",\n {\n x: \"15\",\n y: \"4\",\n width: \"4\",\n height: \"6\",\n ry: \"2\",\n key: \"1bwicg\"\n }\n ],\n [\n \"path\",\n {\n d: \"M17 20v-6h-2\",\n key: \"1qp1so\"\n }\n ],\n [\n \"path\",\n {\n d: \"M15 20h4\",\n key: \"1j968p\"\n }\n ]\n];\nconst ArrowDown01 = createLucideIcon(\"arrow-down-0-1\", __iconNode$o9);\nconst __iconNode$o8 = [\n [\n \"path\",\n {\n d: \"m3 16 4 4 4-4\",\n key: \"1co6wj\"\n }\n ],\n [\n \"path\",\n {\n d: \"M7 20V4\",\n key: \"1yoxec\"\n }\n ],\n [\n \"path\",\n {\n d: \"M17 10V4h-2\",\n key: \"zcsr5x\"\n }\n ],\n [\n \"path\",\n {\n d: \"M15 10h4\",\n key: \"id2lce\"\n }\n ],\n [\n \"rect\",\n {\n x: \"15\",\n y: \"14\",\n width: \"4\",\n height: \"6\",\n ry: \"2\",\n key: \"33xykx\"\n }\n ]\n];\nconst ArrowDown10 = createLucideIcon(\"arrow-down-1-0\", __iconNode$o8);\nconst __iconNode$o7 = [\n [\n \"path\",\n {\n d: \"m3 16 4 4 4-4\",\n key: \"1co6wj\"\n }\n ],\n [\n \"path\",\n {\n d: \"M7 20V4\",\n key: \"1yoxec\"\n }\n ],\n [\n \"path\",\n {\n d: \"M20 8h-5\",\n key: \"1vsyxs\"\n }\n ],\n [\n \"path\",\n {\n d: \"M15 10V6.5a2.5 2.5 0 0 1 5 0V10\",\n key: \"ag13bf\"\n }\n ],\n [\n \"path\",\n {\n d: \"M15 14h5l-5 6h5\",\n key: \"ur5jdg\"\n }\n ]\n];\nconst ArrowDownAZ = createLucideIcon(\"arrow-down-a-z\", __iconNode$o7);\nconst __iconNode$o6 = [\n [\n \"path\",\n {\n d: \"M19 3H5\",\n key: \"1236rx\"\n }\n ],\n [\n \"path\",\n {\n d: \"M12 21V7\",\n key: \"gj6g52\"\n }\n ],\n [\n \"path\",\n {\n d: \"m6 15 6 6 6-6\",\n key: \"h15q88\"\n }\n ]\n];\nconst ArrowDownFromLine = createLucideIcon(\"arrow-down-from-line\", __iconNode$o6);\nconst __iconNode$o5 = [\n [\n \"path\",\n {\n d: \"M17 7 7 17\",\n key: \"15tmo1\"\n }\n ],\n [\n \"path\",\n {\n d: \"M17 17H7V7\",\n key: \"1org7z\"\n }\n ]\n];\nconst ArrowDownLeft = createLucideIcon(\"arrow-down-left\", __iconNode$o5);\nconst __iconNode$o4 = [\n [\n \"path\",\n {\n d: \"m3 16 4 4 4-4\",\n key: \"1co6wj\"\n }\n ],\n [\n \"path\",\n {\n d: \"M7 20V4\",\n key: \"1yoxec\"\n }\n ],\n [\n \"path\",\n {\n d: \"M11 4h4\",\n key: \"6d7r33\"\n }\n ],\n [\n \"path\",\n {\n d: \"M11 8h7\",\n key: \"djye34\"\n }\n ],\n [\n \"path\",\n {\n d: \"M11 12h10\",\n key: \"1438ji\"\n }\n ]\n];\nconst ArrowDownNarrowWide = createLucideIcon(\"arrow-down-narrow-wide\", __iconNode$o4);\nconst __iconNode$o3 = [\n [\n \"path\",\n {\n d: \"m7 7 10 10\",\n key: \"1fmybs\"\n }\n ],\n [\n \"path\",\n {\n d: \"M17 7v10H7\",\n key: \"6fjiku\"\n }\n ]\n];\nconst ArrowDownRight = createLucideIcon(\"arrow-down-right\", __iconNode$o3);\nconst __iconNode$o2 = [\n [\n \"path\",\n {\n d: \"M12 2v14\",\n key: \"jyx4ut\"\n }\n ],\n [\n \"path\",\n {\n d: \"m19 9-7 7-7-7\",\n key: \"1oe3oy\"\n }\n ],\n [\n \"circle\",\n {\n cx: \"12\",\n cy: \"21\",\n r: \"1\",\n key: \"o0uj5v\"\n }\n ]\n];\nconst ArrowDownToDot = createLucideIcon(\"arrow-down-to-dot\", __iconNode$o2);\nconst __iconNode$o1 = [\n [\n \"path\",\n {\n d: \"M12 17V3\",\n key: \"1cwfxf\"\n }\n ],\n [\n \"path\",\n {\n d: \"m6 11 6 6 6-6\",\n key: \"12ii2o\"\n }\n ],\n [\n \"path\",\n {\n d: \"M19 21H5\",\n key: \"150jfl\"\n }\n ]\n];\nconst ArrowDownToLine = createLucideIcon(\"arrow-down-to-line\", __iconNode$o1);\nconst __iconNode$o0 = [\n [\n \"path\",\n {\n d: \"m3 16 4 4 4-4\",\n key: \"1co6wj\"\n }\n ],\n [\n \"path\",\n {\n d: \"M7 20V4\",\n key: \"1yoxec\"\n }\n ],\n [\n \"path\",\n {\n d: \"m21 8-4-4-4 4\",\n key: \"1c9v7m\"\n }\n ],\n [\n \"path\",\n {\n d: \"M17 4v16\",\n key: \"7dpous\"\n }\n ]\n];\nconst ArrowDownUp = createLucideIcon(\"arrow-down-up\", __iconNode$o0);\nconst __iconNode$n$ = [\n [\n \"path\",\n {\n d: \"m3 16 4 4 4-4\",\n key: \"1co6wj\"\n }\n ],\n [\n \"path\",\n {\n d: \"M7 20V4\",\n key: \"1yoxec\"\n }\n ],\n [\n \"path\",\n {\n d: \"M11 4h10\",\n key: \"1w87gc\"\n }\n ],\n [\n \"path\",\n {\n d: \"M11 8h7\",\n key: \"djye34\"\n }\n ],\n [\n \"path\",\n {\n d: \"M11 12h4\",\n key: \"q8tih4\"\n }\n ]\n];\nconst ArrowDownWideNarrow = createLucideIcon(\"arrow-down-wide-narrow\", __iconNode$n$);\nconst __iconNode$n_ = [\n [\n \"path\",\n {\n d: \"m3 16 4 4 4-4\",\n key: \"1co6wj\"\n }\n ],\n [\n \"path\",\n {\n d: \"M7 4v16\",\n key: \"1glfcx\"\n }\n ],\n [\n \"path\",\n {\n d: \"M15 4h5l-5 6h5\",\n key: \"8asdl1\"\n }\n ],\n [\n \"path\",\n {\n d: \"M15 20v-3.5a2.5 2.5 0 0 1 5 0V20\",\n key: \"r6l5cz\"\n }\n ],\n [\n \"path\",\n {\n d: \"M20 18h-5\",\n key: \"18j1r2\"\n }\n ]\n];\nconst ArrowDownZA = createLucideIcon(\"arrow-down-z-a\", __iconNode$n_);\nconst __iconNode$nZ = [\n [\n \"path\",\n {\n d: \"M12 5v14\",\n key: \"s699le\"\n }\n ],\n [\n \"path\",\n {\n d: \"m19 12-7 7-7-7\",\n key: \"1idqje\"\n }\n ]\n];\nconst ArrowDown = createLucideIcon(\"arrow-down\", __iconNode$nZ);\nconst __iconNode$nY = [\n [\n \"path\",\n {\n d: \"m9 6-6 6 6 6\",\n key: \"7v63n9\"\n }\n ],\n [\n \"path\",\n {\n d: \"M3 12h14\",\n key: \"13k4hi\"\n }\n ],\n [\n \"path\",\n {\n d: \"M21 19V5\",\n key: \"b4bplr\"\n }\n ]\n];\nconst ArrowLeftFromLine = createLucideIcon(\"arrow-left-from-line\", __iconNode$nY);\nconst __iconNode$nX = [\n [\n \"path\",\n {\n d: \"M8 3 4 7l4 4\",\n key: \"9rb6wj\"\n }\n ],\n [\n \"path\",\n {\n d: \"M4 7h16\",\n key: \"6tx8e3\"\n }\n ],\n [\n \"path\",\n {\n d: \"m16 21 4-4-4-4\",\n key: \"siv7j2\"\n }\n ],\n [\n \"path\",\n {\n d: \"M20 17H4\",\n key: \"h6l3hr\"\n }\n ]\n];\nconst ArrowLeftRight = createLucideIcon(\"arrow-left-right\", __iconNode$nX);\nconst __iconNode$nW = [\n [\n \"path\",\n {\n d: \"M3 19V5\",\n key: \"rwsyhb\"\n }\n ],\n [\n \"path\",\n {\n d: \"m13 6-6 6 6 6\",\n key: \"1yhaz7\"\n }\n ],\n [\n \"path\",\n {\n d: \"M7 12h14\",\n key: \"uoisry\"\n }\n ]\n];\nconst ArrowLeftToLine = createLucideIcon(\"arrow-left-to-line\", __iconNode$nW);\nconst __iconNode$nV = [\n [\n \"path\",\n {\n d: \"m12 19-7-7 7-7\",\n key: \"1l729n\"\n }\n ],\n [\n \"path\",\n {\n d: \"M19 12H5\",\n key: \"x3x0zl\"\n }\n ]\n];\nconst ArrowLeft = createLucideIcon(\"arrow-left\", __iconNode$nV);\nconst __iconNode$nU = [\n [\n \"path\",\n {\n d: \"m16 3 4 4-4 4\",\n key: \"1x1c3m\"\n }\n ],\n [\n \"path\",\n {\n d: \"M20 7H4\",\n key: \"zbl0bi\"\n }\n ],\n [\n \"path\",\n {\n d: \"m8 21-4-4 4-4\",\n key: \"h9nckh\"\n }\n ],\n [\n \"path\",\n {\n d: \"M4 17h16\",\n key: \"g4d7ey\"\n }\n ]\n];\nconst ArrowRightLeft = createLucideIcon(\"arrow-right-left\", __iconNode$nU);\nconst __iconNode$nT = [\n [\n \"path\",\n {\n d: \"M17 12H3\",\n key: \"8awo09\"\n }\n ],\n [\n \"path\",\n {\n d: \"m11 18 6-6-6-6\",\n key: \"8c2y43\"\n }\n ],\n [\n \"path\",\n {\n d: \"M21 5v14\",\n key: \"nzette\"\n }\n ]\n];\nconst ArrowRightToLine = createLucideIcon(\"arrow-right-to-line\", __iconNode$nT);\nconst __iconNode$nS = [\n [\n \"path\",\n {\n d: \"M3 5v14\",\n key: \"1nt18q\"\n }\n ],\n [\n \"path\",\n {\n d: \"M21 12H7\",\n key: \"13ipq5\"\n }\n ],\n [\n \"path\",\n {\n d: \"m15 18 6-6-6-6\",\n key: \"6tx3qv\"\n }\n ]\n];\nconst ArrowRightFromLine = createLucideIcon(\"arrow-right-from-line\", __iconNode$nS);\nconst __iconNode$nR = [\n [\n \"path\",\n {\n d: \"M5 12h14\",\n key: \"1ays0h\"\n }\n ],\n [\n \"path\",\n {\n d: \"m12 5 7 7-7 7\",\n key: \"xquz4c\"\n }\n ]\n];\nconst ArrowRight = createLucideIcon(\"arrow-right\", __iconNode$nR);\nconst __iconNode$nQ = [\n [\n \"path\",\n {\n d: \"m3 8 4-4 4 4\",\n key: \"11wl7u\"\n }\n ],\n [\n \"path\",\n {\n d: \"M7 4v16\",\n key: \"1glfcx\"\n }\n ],\n [\n \"rect\",\n {\n x: \"15\",\n y: \"4\",\n width: \"4\",\n height: \"6\",\n ry: \"2\",\n key: \"1bwicg\"\n }\n ],\n [\n \"path\",\n {\n d: \"M17 20v-6h-2\",\n key: \"1qp1so\"\n }\n ],\n [\n \"path\",\n {\n d: \"M15 20h4\",\n key: \"1j968p\"\n }\n ]\n];\nconst ArrowUp01 = createLucideIcon(\"arrow-up-0-1\", __iconNode$nQ);\nconst __iconNode$nP = [\n [\n \"path\",\n {\n d: \"m3 8 4-4 4 4\",\n key: \"11wl7u\"\n }\n ],\n [\n \"path\",\n {\n d: \"M7 4v16\",\n key: \"1glfcx\"\n }\n ],\n [\n \"path\",\n {\n d: \"M17 10V4h-2\",\n key: \"zcsr5x\"\n }\n ],\n [\n \"path\",\n {\n d: \"M15 10h4\",\n key: \"id2lce\"\n }\n ],\n [\n \"rect\",\n {\n x: \"15\",\n y: \"14\",\n width: \"4\",\n height: \"6\",\n ry: \"2\",\n key: \"33xykx\"\n }\n ]\n];\nconst ArrowUp10 = createLucideIcon(\"arrow-up-1-0\", __iconNode$nP);\nconst __iconNode$nO = [\n [\n \"path\",\n {\n d: \"m3 8 4-4 4 4\",\n key: \"11wl7u\"\n }\n ],\n [\n \"path\",\n {\n d: \"M7 4v16\",\n key: \"1glfcx\"\n }\n ],\n [\n \"path\",\n {\n d: \"M20 8h-5\",\n key: \"1vsyxs\"\n }\n ],\n [\n \"path\",\n {\n d: \"M15 10V6.5a2.5 2.5 0 0 1 5 0V10\",\n key: \"ag13bf\"\n }\n ],\n [\n \"path\",\n {\n d: \"M15 14h5l-5 6h5\",\n key: \"ur5jdg\"\n }\n ]\n];\nconst ArrowUpAZ = createLucideIcon(\"arrow-up-a-z\", __iconNode$nO);\nconst __iconNode$nN = [\n [\n \"path\",\n {\n d: \"m21 16-4 4-4-4\",\n key: \"f6ql7i\"\n }\n ],\n [\n \"path\",\n {\n d: \"M17 20V4\",\n key: \"1ejh1v\"\n }\n ],\n [\n \"path\",\n {\n d: \"m3 8 4-4 4 4\",\n key: \"11wl7u\"\n }\n ],\n [\n \"path\",\n {\n d: \"M7 4v16\",\n key: \"1glfcx\"\n }\n ]\n];\nconst ArrowUpDown = createLucideIcon(\"arrow-up-down\", __iconNode$nN);\nconst __iconNode$nM = [\n [\n \"path\",\n {\n d: \"m5 9 7-7 7 7\",\n key: \"1hw5ic\"\n }\n ],\n [\n \"path\",\n {\n d: \"M12 16V2\",\n key: \"ywoabb\"\n }\n ],\n [\n \"circle\",\n {\n cx: \"12\",\n cy: \"21\",\n r: \"1\",\n key: \"o0uj5v\"\n }\n ]\n];\nconst ArrowUpFromDot = createLucideIcon(\"arrow-up-from-dot\", __iconNode$nM);\nconst __iconNode$nL = [\n [\n \"path\",\n {\n d: \"m18 9-6-6-6 6\",\n key: \"kcunyi\"\n }\n ],\n [\n \"path\",\n {\n d: \"M12 3v14\",\n key: \"7cf3v8\"\n }\n ],\n [\n \"path\",\n {\n d: \"M5 21h14\",\n key: \"11awu3\"\n }\n ]\n];\nconst ArrowUpFromLine = createLucideIcon(\"arrow-up-from-line\", __iconNode$nL);\nconst __iconNode$nK = [\n [\n \"path\",\n {\n d: \"M7 17V7h10\",\n key: \"11bw93\"\n }\n ],\n [\n \"path\",\n {\n d: \"M17 17 7 7\",\n key: \"2786uv\"\n }\n ]\n];\nconst ArrowUpLeft = createLucideIcon(\"arrow-up-left\", __iconNode$nK);\nconst __iconNode$nJ = [\n [\n \"path\",\n {\n d: \"m3 8 4-4 4 4\",\n key: \"11wl7u\"\n }\n ],\n [\n \"path\",\n {\n d: \"M7 4v16\",\n key: \"1glfcx\"\n }\n ],\n [\n \"path\",\n {\n d: \"M11 12h4\",\n key: \"q8tih4\"\n }\n ],\n [\n \"path\",\n {\n d: \"M11 16h7\",\n key: \"uosisv\"\n }\n ],\n [\n \"path\",\n {\n d: \"M11 20h10\",\n key: \"jvxblo\"\n }\n ]\n];\nconst ArrowUpNarrowWide = createLucideIcon(\"arrow-up-narrow-wide\", __iconNode$nJ);\nconst __iconNode$nI = [\n [\n \"path\",\n {\n d: \"M7 7h10v10\",\n key: \"1tivn9\"\n }\n ],\n [\n \"path\",\n {\n d: \"M7 17 17 7\",\n key: \"1vkiza\"\n }\n ]\n];\nconst ArrowUpRight = createLucideIcon(\"arrow-up-right\", __iconNode$nI);\nconst __iconNode$nH = [\n [\n \"path\",\n {\n d: \"M5 3h14\",\n key: \"7usisc\"\n }\n ],\n [\n \"path\",\n {\n d: \"m18 13-6-6-6 6\",\n key: \"1kf1n9\"\n }\n ],\n [\n \"path\",\n {\n d: \"M12 7v14\",\n key: \"1akyts\"\n }\n ]\n];\nconst ArrowUpToLine = createLucideIcon(\"arrow-up-to-line\", __iconNode$nH);\nconst __iconNode$nG = [\n [\n \"path\",\n {\n d: \"m3 8 4-4 4 4\",\n key: \"11wl7u\"\n }\n ],\n [\n \"path\",\n {\n d: \"M7 4v16\",\n key: \"1glfcx\"\n }\n ],\n [\n \"path\",\n {\n d: \"M11 12h10\",\n key: \"1438ji\"\n }\n ],\n [\n \"path\",\n {\n d: \"M11 16h7\",\n key: \"uosisv\"\n }\n ],\n [\n \"path\",\n {\n d: \"M11 20h4\",\n key: \"1krc32\"\n }\n ]\n];\nconst ArrowUpWideNarrow = createLucideIcon(\"arrow-up-wide-narrow\", __iconNode$nG);\nconst __iconNode$nF = [\n [\n \"path\",\n {\n d: \"m3 8 4-4 4 4\",\n key: \"11wl7u\"\n }\n ],\n [\n \"path\",\n {\n d: \"M7 4v16\",\n key: \"1glfcx\"\n }\n ],\n [\n \"path\",\n {\n d: \"M15 4h5l-5 6h5\",\n key: \"8asdl1\"\n }\n ],\n [\n \"path\",\n {\n d: \"M15 20v-3.5a2.5 2.5 0 0 1 5 0V20\",\n key: \"r6l5cz\"\n }\n ],\n [\n \"path\",\n {\n d: \"M20 18h-5\",\n key: \"18j1r2\"\n }\n ]\n];\nconst ArrowUpZA = createLucideIcon(\"arrow-up-z-a\", __iconNode$nF);\nconst __iconNode$nE = [\n [\n \"path\",\n {\n d: \"m5 12 7-7 7 7\",\n key: \"hav0vg\"\n }\n ],\n [\n \"path\",\n {\n d: \"M12 19V5\",\n key: \"x0mq9r\"\n }\n ]\n];\nconst ArrowUp = createLucideIcon(\"arrow-up\", __iconNode$nE);\nconst __iconNode$nD = [\n [\n \"path\",\n {\n d: \"m4 6 3-3 3 3\",\n key: \"9aidw8\"\n }\n ],\n [\n \"path\",\n {\n d: \"M7 17V3\",\n key: \"19qxw1\"\n }\n ],\n [\n \"path\",\n {\n d: \"m14 6 3-3 3 3\",\n key: \"6iy689\"\n }\n ],\n [\n \"path\",\n {\n d: \"M17 17V3\",\n key: \"o0fmgi\"\n }\n ],\n [\n \"path\",\n {\n d: \"M4 21h16\",\n key: \"1h09gz\"\n }\n ]\n];\nconst ArrowsUpFromLine = createLucideIcon(\"arrows-up-from-line\", __iconNode$nD);\nconst __iconNode$nC = [\n [\n \"path\",\n {\n d: \"M12 6v12\",\n key: \"1vza4d\"\n }\n ],\n [\n \"path\",\n {\n d: \"M17.196 9 6.804 15\",\n key: \"1ah31z\"\n }\n ],\n [\n \"path\",\n {\n d: \"m6.804 9 10.392 6\",\n key: \"1b6pxd\"\n }\n ]\n];\nconst Asterisk = createLucideIcon(\"asterisk\", __iconNode$nC);\nconst __iconNode$nB = [\n [\n \"circle\",\n {\n cx: \"12\",\n cy: \"12\",\n r: \"4\",\n key: \"4exip2\"\n }\n ],\n [\n \"path\",\n {\n d: \"M16 8v5a3 3 0 0 0 6 0v-1a10 10 0 1 0-4 8\",\n key: \"7n84p3\"\n }\n ]\n];\nconst AtSign = createLucideIcon(\"at-sign\", __iconNode$nB);\nconst __iconNode$nA = [\n [\n \"circle\",\n {\n cx: \"12\",\n cy: \"12\",\n r: \"1\",\n key: \"41hilf\"\n }\n ],\n [\n \"path\",\n {\n d: \"M20.2 20.2c2.04-2.03.02-7.36-4.5-11.9-4.54-4.52-9.87-6.54-11.9-4.5-2.04 2.03-.02 7.36 4.5 11.9 4.54 4.52 9.87 6.54 11.9 4.5Z\",\n key: \"1l2ple\"\n }\n ],\n [\n \"path\",\n {\n d: \"M15.7 15.7c4.52-4.54 6.54-9.87 4.5-11.9-2.03-2.04-7.36-.02-11.9 4.5-4.52 4.54-6.54 9.87-4.5 11.9 2.03 2.04 7.36.02 11.9-4.5Z\",\n key: \"1wam0m\"\n }\n ]\n];\nconst Atom = createLucideIcon(\"atom\", __iconNode$nA);\nconst __iconNode$nz = [\n [\n \"path\",\n {\n d: \"M2 10v3\",\n key: \"1fnikh\"\n }\n ],\n [\n \"path\",\n {\n d: \"M6 6v11\",\n key: \"11sgs0\"\n }\n ],\n [\n \"path\",\n {\n d: \"M10 3v18\",\n key: \"yhl04a\"\n }\n ],\n [\n \"path\",\n {\n d: \"M14 8v7\",\n key: \"3a1oy3\"\n }\n ],\n [\n \"path\",\n {\n d: \"M18 5v13\",\n key: \"123xd1\"\n }\n ],\n [\n \"path\",\n {\n d: \"M22 10v3\",\n key: \"154ddg\"\n }\n ]\n];\nconst AudioLines = createLucideIcon(\"audio-lines\", __iconNode$nz);\nconst __iconNode$ny = [\n [\n \"path\",\n {\n d: \"M2 13a2 2 0 0 0 2-2V7a2 2 0 0 1 4 0v13a2 2 0 0 0 4 0V4a2 2 0 0 1 4 0v13a2 2 0 0 0 4 0v-4a2 2 0 0 1 2-2\",\n key: \"57tc96\"\n }\n ]\n];\nconst AudioWaveform = createLucideIcon(\"audio-waveform\", __iconNode$ny);\nconst __iconNode$nx = [\n [\n \"path\",\n {\n d: \"m15.477 12.89 1.515 8.526a.5.5 0 0 1-.81.47l-3.58-2.687a1 1 0 0 0-1.197 0l-3.586 2.686a.5.5 0 0 1-.81-.469l1.514-8.526\",\n key: \"1yiouv\"\n }\n ],\n [\n \"circle\",\n {\n cx: \"12\",\n cy: \"8\",\n r: \"6\",\n key: \"1vp47v\"\n }\n ]\n];\nconst Award = createLucideIcon(\"award\", __iconNode$nx);\nconst __iconNode$nw = [\n [\n \"path\",\n {\n d: \"m14 12-8.381 8.38a1 1 0 0 1-3.001-3L11 9\",\n key: \"5z9253\"\n }\n ],\n [\n \"path\",\n {\n d: \"M15 15.5a.5.5 0 0 0 .5.5A6.5 6.5 0 0 0 22 9.5a.5.5 0 0 0-.5-.5h-1.672a2 2 0 0 1-1.414-.586l-5.062-5.062a1.205 1.205 0 0 0-1.704 0L9.352 5.648a1.205 1.205 0 0 0 0 1.704l5.062 5.062A2 2 0 0 1 15 13.828z\",\n key: \"19zklq\"\n }\n ]\n];\nconst Axe = createLucideIcon(\"axe\", __iconNode$nw);\nconst __iconNode$nv = [\n [\n \"path\",\n {\n d: \"M13.5 10.5 15 9\",\n key: \"1nsxvm\"\n }\n ],\n [\n \"path\",\n {\n d: \"M4 4v15a1 1 0 0 0 1 1h15\",\n key: \"1w6lkd\"\n }\n ],\n [\n \"path\",\n {\n d: \"M4.293 19.707 6 18\",\n key: \"3g1p8c\"\n }\n ],\n [\n \"path\",\n {\n d: \"m9 15 1.5-1.5\",\n key: \"1xfbes\"\n }\n ]\n];\nconst Axis3d = createLucideIcon(\"axis-3d\", __iconNode$nv);\nconst __iconNode$nu = [\n [\n \"path\",\n {\n d: \"M10 16c.5.3 1.2.5 2 .5s1.5-.2 2-.5\",\n key: \"1u7htd\"\n }\n ],\n [\n \"path\",\n {\n d: \"M15 12h.01\",\n key: \"1k8ypt\"\n }\n ],\n [\n \"path\",\n {\n d: \"M19.38 6.813A9 9 0 0 1 20.8 10.2a2 2 0 0 1 0 3.6 9 9 0 0 1-17.6 0 2 2 0 0 1 0-3.6A9 9 0 0 1 12 3c2 0 3.5 1.1 3.5 2.5s-.9 2.5-2 2.5c-.8 0-1.5-.4-1.5-1\",\n key: \"11xh7x\"\n }\n ],\n [\n \"path\",\n {\n d: \"M9 12h.01\",\n key: \"157uk2\"\n }\n ]\n];\nconst Baby = createLucideIcon(\"baby\", __iconNode$nu);\nconst __iconNode$nt = [\n [\n \"path\",\n {\n d: \"M4 10a4 4 0 0 1 4-4h8a4 4 0 0 1 4 4v10a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2z\",\n key: \"1ol0lm\"\n }\n ],\n [\n \"path\",\n {\n d: \"M8 10h8\",\n key: \"c7uz4u\"\n }\n ],\n [\n \"path\",\n {\n d: \"M8 18h8\",\n key: \"1no2b1\"\n }\n ],\n [\n \"path\",\n {\n d: \"M8 22v-6a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v6\",\n key: \"1fr6do\"\n }\n ],\n [\n \"path\",\n {\n d: \"M9 6V4a2 2 0 0 1 2-2h2a2 2 0 0 1 2 2v2\",\n key: \"donm21\"\n }\n ]\n];\nconst Backpack = createLucideIcon(\"backpack\", __iconNode$nt);\nconst __iconNode$ns = [\n [\n \"path\",\n {\n d: \"M3.85 8.62a4 4 0 0 1 4.78-4.77 4 4 0 0 1 6.74 0 4 4 0 0 1 4.78 4.78 4 4 0 0 1 0 6.74 4 4 0 0 1-4.77 4.78 4 4 0 0 1-6.75 0 4 4 0 0 1-4.78-4.77 4 4 0 0 1 0-6.76Z\",\n key: \"3c2336\"\n }\n ],\n [\n \"line\",\n {\n x1: \"12\",\n x2: \"12\",\n y1: \"8\",\n y2: \"12\",\n key: \"1pkeuh\"\n }\n ],\n [\n \"line\",\n {\n x1: \"12\",\n x2: \"12.01\",\n y1: \"16\",\n y2: \"16\",\n key: \"4dfq90\"\n }\n ]\n];\nconst BadgeAlert = createLucideIcon(\"badge-alert\", __iconNode$ns);\nconst __iconNode$nr = [\n [\n \"path\",\n {\n d: \"M3.85 8.62a4 4 0 0 1 4.78-4.77 4 4 0 0 1 6.74 0 4 4 0 0 1 4.78 4.78 4 4 0 0 1 0 6.74 4 4 0 0 1-4.77 4.78 4 4 0 0 1-6.75 0 4 4 0 0 1-4.78-4.77 4 4 0 0 1 0-6.76Z\",\n key: \"3c2336\"\n }\n ],\n [\n \"path\",\n {\n d: \"M12 7v10\",\n key: \"jspqdw\"\n }\n ],\n [\n \"path\",\n {\n d: \"M15.4 10a4 4 0 1 0 0 4\",\n key: \"2eqtx8\"\n }\n ]\n];\nconst BadgeCent = createLucideIcon(\"badge-cent\", __iconNode$nr);\nconst __iconNode$nq = [\n [\n \"path\",\n {\n d: \"M3.85 8.62a4 4 0 0 1 4.78-4.77 4 4 0 0 1 6.74 0 4 4 0 0 1 4.78 4.78 4 4 0 0 1 0 6.74 4 4 0 0 1-4.77 4.78 4 4 0 0 1-6.75 0 4 4 0 0 1-4.78-4.77 4 4 0 0 1 0-6.76Z\",\n key: \"3c2336\"\n }\n ],\n [\n \"path\",\n {\n d: \"m9 12 2 2 4-4\",\n key: \"dzmm74\"\n }\n ]\n];\nconst BadgeCheck = createLucideIcon(\"badge-check\", __iconNode$nq);\nconst __iconNode$np = [\n [\n \"path\",\n {\n d: \"M3.85 8.62a4 4 0 0 1 4.78-4.77 4 4 0 0 1 6.74 0 4 4 0 0 1 4.78 4.78 4 4 0 0 1 0 6.74 4 4 0 0 1-4.77 4.78 4 4 0 0 1-6.75 0 4 4 0 0 1-4.78-4.77 4 4 0 0 1 0-6.76Z\",\n key: \"3c2336\"\n }\n ],\n [\n \"path\",\n {\n d: \"M16 8h-6a2 2 0 1 0 0 4h4a2 2 0 1 1 0 4H8\",\n key: \"1h4pet\"\n }\n ],\n [\n \"path\",\n {\n d: \"M12 18V6\",\n key: \"zqpxq5\"\n }\n ]\n];\nconst BadgeDollarSign = createLucideIcon(\"badge-dollar-sign\", __iconNode$np);\nconst __iconNode$no = [\n [\n \"path\",\n {\n d: \"M3.85 8.62a4 4 0 0 1 4.78-4.77 4 4 0 0 1 6.74 0 4 4 0 0 1 4.78 4.78 4 4 0 0 1 0 6.74 4 4 0 0 1-4.77 4.78 4 4 0 0 1-6.75 0 4 4 0 0 1-4.78-4.77 4 4 0 0 1 0-6.76Z\",\n key: \"3c2336\"\n }\n ],\n [\n \"path\",\n {\n d: \"M7 12h5\",\n key: \"gblrwe\"\n }\n ],\n [\n \"path\",\n {\n d: \"M15 9.4a4 4 0 1 0 0 5.2\",\n key: \"1makmb\"\n }\n ]\n];\nconst BadgeEuro = createLucideIcon(\"badge-euro\", __iconNode$no);\nconst __iconNode$nn = [\n [\n \"path\",\n {\n d: \"M3.85 8.62a4 4 0 0 1 4.78-4.77 4 4 0 0 1 6.74 0 4 4 0 0 1 4.78 4.78 4 4 0 0 1 0 6.74 4 4 0 0 1-4.77 4.78 4 4 0 0 1-6.75 0 4 4 0 0 1-4.78-4.77 4 4 0 0 1 0-6.76Z\",\n key: \"3c2336\"\n }\n ],\n [\n \"path\",\n {\n d: \"M8 8h8\",\n key: \"1bis0t\"\n }\n ],\n [\n \"path\",\n {\n d: \"M8 12h8\",\n key: \"1wcyev\"\n }\n ],\n [\n \"path\",\n {\n d: \"m13 17-5-1h1a4 4 0 0 0 0-8\",\n key: \"nu2bwa\"\n }\n ]\n];\nconst BadgeIndianRupee = createLucideIcon(\"badge-indian-rupee\", __iconNode$nn);\nconst __iconNode$nm = [\n [\n \"path\",\n {\n d: \"M3.85 8.62a4 4 0 0 1 4.78-4.77 4 4 0 0 1 6.74 0 4 4 0 0 1 4.78 4.78 4 4 0 0 1 0 6.74 4 4 0 0 1-4.77 4.78 4 4 0 0 1-6.75 0 4 4 0 0 1-4.78-4.77 4 4 0 0 1 0-6.76Z\",\n key: \"3c2336\"\n }\n ],\n [\n \"line\",\n {\n x1: \"12\",\n x2: \"12\",\n y1: \"16\",\n y2: \"12\",\n key: \"1y1yb1\"\n }\n ],\n [\n \"line\",\n {\n x1: \"12\",\n x2: \"12.01\",\n y1: \"8\",\n y2: \"8\",\n key: \"110wyk\"\n }\n ]\n];\nconst BadgeInfo = createLucideIcon(\"badge-info\", __iconNode$nm);\nconst __iconNode$nl = [\n [\n \"path\",\n {\n d: \"M3.85 8.62a4 4 0 0 1 4.78-4.77 4 4 0 0 1 6.74 0 4 4 0 0 1 4.78 4.78 4 4 0 0 1 0 6.74 4 4 0 0 1-4.77 4.78 4 4 0 0 1-6.75 0 4 4 0 0 1-4.78-4.77 4 4 0 0 1 0-6.76Z\",\n key: \"3c2336\"\n }\n ],\n [\n \"path\",\n {\n d: \"m9 8 3 3v7\",\n key: \"17yadx\"\n }\n ],\n [\n \"path\",\n {\n d: \"m12 11 3-3\",\n key: \"p4cfq1\"\n }\n ],\n [\n \"path\",\n {\n d: \"M9 12h6\",\n key: \"1c52cq\"\n }\n ],\n [\n \"path\",\n {\n d: \"M9 16h6\",\n key: \"8wimt3\"\n }\n ]\n];\nconst BadgeJapaneseYen = createLucideIcon(\"badge-japanese-yen\", __iconNode$nl);\nconst __iconNode$nk = [\n [\n \"path\",\n {\n d: \"M3.85 8.62a4 4 0 0 1 4.78-4.77 4 4 0 0 1 6.74 0 4 4 0 0 1 4.78 4.78 4 4 0 0 1 0 6.74 4 4 0 0 1-4.77 4.78 4 4 0 0 1-6.75 0 4 4 0 0 1-4.78-4.77 4 4 0 0 1 0-6.76Z\",\n key: \"3c2336\"\n }\n ],\n [\n \"line\",\n {\n x1: \"8\",\n x2: \"16\",\n y1: \"12\",\n y2: \"12\",\n key: \"1jonct\"\n }\n ]\n];\nconst BadgeMinus = createLucideIcon(\"badge-minus\", __iconNode$nk);\nconst __iconNode$nj = [\n [\n \"path\",\n {\n d: \"M3.85 8.62a4 4 0 0 1 4.78-4.77 4 4 0 0 1 6.74 0 4 4 0 0 1 4.78 4.78 4 4 0 0 1 0 6.74 4 4 0 0 1-4.77 4.78 4 4 0 0 1-6.75 0 4 4 0 0 1-4.78-4.77 4 4 0 0 1 0-6.76Z\",\n key: \"3c2336\"\n }\n ],\n [\n \"path\",\n {\n d: \"m15 9-6 6\",\n key: \"1uzhvr\"\n }\n ],\n [\n \"path\",\n {\n d: \"M9 9h.01\",\n key: \"1q5me6\"\n }\n ],\n [\n \"path\",\n {\n d: \"M15 15h.01\",\n key: \"lqbp3k\"\n }\n ]\n];\nconst BadgePercent = createLucideIcon(\"badge-percent\", __iconNode$nj);\nconst __iconNode$ni = [\n [\n \"path\",\n {\n d: \"M3.85 8.62a4 4 0 0 1 4.78-4.77 4 4 0 0 1 6.74 0 4 4 0 0 1 4.78 4.78 4 4 0 0 1 0 6.74 4 4 0 0 1-4.77 4.78 4 4 0 0 1-6.75 0 4 4 0 0 1-4.78-4.77 4 4 0 0 1 0-6.76Z\",\n key: \"3c2336\"\n }\n ],\n [\n \"line\",\n {\n x1: \"12\",\n x2: \"12\",\n y1: \"8\",\n y2: \"16\",\n key: \"10p56q\"\n }\n ],\n [\n \"line\",\n {\n x1: \"8\",\n x2: \"16\",\n y1: \"12\",\n y2: \"12\",\n key: \"1jonct\"\n }\n ]\n];\nconst BadgePlus = createLucideIcon(\"badge-plus\", __iconNode$ni);\nconst __iconNode$nh = [\n [\n \"path\",\n {\n d: \"M3.85 8.62a4 4 0 0 1 4.78-4.77 4 4 0 0 1 6.74 0 4 4 0 0 1 4.78 4.78 4 4 0 0 1 0 6.74 4 4 0 0 1-4.77 4.78 4 4 0 0 1-6.75 0 4 4 0 0 1-4.78-4.77 4 4 0 0 1 0-6.76Z\",\n key: \"3c2336\"\n }\n ],\n [\n \"path\",\n {\n d: \"M8 12h4\",\n key: \"qz6y1c\"\n }\n ],\n [\n \"path\",\n {\n d: \"M10 16V9.5a2.5 2.5 0 0 1 5 0\",\n key: \"3mlbjk\"\n }\n ],\n [\n \"path\",\n {\n d: \"M8 16h7\",\n key: \"sbedsn\"\n }\n ]\n];\nconst BadgePoundSterling = createLucideIcon(\"badge-pound-sterling\", __iconNode$nh);\nconst __iconNode$ng = [\n [\n \"path\",\n {\n d: \"M3.85 8.62a4 4 0 0 1 4.78-4.77 4 4 0 0 1 6.74 0 4 4 0 0 1 4.78 4.78 4 4 0 0 1 0 6.74 4 4 0 0 1-4.77 4.78 4 4 0 0 1-6.75 0 4 4 0 0 1-4.78-4.77 4 4 0 0 1 0-6.76Z\",\n key: \"3c2336\"\n }\n ],\n [\n \"path\",\n {\n d: \"M9.09 9a3 3 0 0 1 5.83 1c0 2-3 3-3 3\",\n key: \"1u773s\"\n }\n ],\n [\n \"line\",\n {\n x1: \"12\",\n x2: \"12.01\",\n y1: \"17\",\n y2: \"17\",\n key: \"io3f8k\"\n }\n ]\n];\nconst BadgeQuestionMark = createLucideIcon(\"badge-question-mark\", __iconNode$ng);\nconst __iconNode$nf = [\n [\n \"path\",\n {\n d: \"M3.85 8.62a4 4 0 0 1 4.78-4.77 4 4 0 0 1 6.74 0 4 4 0 0 1 4.78 4.78 4 4 0 0 1 0 6.74 4 4 0 0 1-4.77 4.78 4 4 0 0 1-6.75 0 4 4 0 0 1-4.78-4.77 4 4 0 0 1 0-6.76Z\",\n key: \"3c2336\"\n }\n ],\n [\n \"path\",\n {\n d: \"M9 16h5\",\n key: \"1syiyw\"\n }\n ],\n [\n \"path\",\n {\n d: \"M9 12h5a2 2 0 1 0 0-4h-3v9\",\n key: \"1ge9c1\"\n }\n ]\n];\nconst BadgeRussianRuble = createLucideIcon(\"badge-russian-ruble\", __iconNode$nf);\nconst __iconNode$ne = [\n [\n \"path\",\n {\n d: \"M3.85 8.62a4 4 0 0 1 4.78-4.77 4 4 0 0 1 6.74 0 4 4 0 0 1 4.78 4.78 4 4 0 0 1 0 6.74 4 4 0 0 1-4.77 4.78 4 4 0 0 1-6.75 0 4 4 0 0 1-4.78-4.77 4 4 0 0 1 0-6.76Z\",\n key: \"3c2336\"\n }\n ],\n [\n \"path\",\n {\n d: \"M11 17V8h4\",\n key: \"1bfq6y\"\n }\n ],\n [\n \"path\",\n {\n d: \"M11 12h3\",\n key: \"2eqnfz\"\n }\n ],\n [\n \"path\",\n {\n d: \"M9 16h4\",\n key: \"1skf3a\"\n }\n ]\n];\nconst BadgeSwissFranc = createLucideIcon(\"badge-swiss-franc\", __iconNode$ne);\nconst __iconNode$nd = [\n [\n \"path\",\n {\n d: \"M3.85 8.62a4 4 0 0 1 4.78-4.77 4 4 0 0 1 6.74 0 4 4 0 0 1 4.78 4.78 4 4 0 0 1 0 6.74 4 4 0 0 1-4.77 4.78 4 4 0 0 1-6.75 0 4 4 0 0 1-4.78-4.77 4 4 0 0 1 0-6.76Z\",\n key: \"3c2336\"\n }\n ],\n [\n \"line\",\n {\n x1: \"15\",\n x2: \"9\",\n y1: \"9\",\n y2: \"15\",\n key: \"f7djnv\"\n }\n ],\n [\n \"line\",\n {\n x1: \"9\",\n x2: \"15\",\n y1: \"9\",\n y2: \"15\",\n key: \"1shsy8\"\n }\n ]\n];\nconst BadgeX = createLucideIcon(\"badge-x\", __iconNode$nd);\nconst __iconNode$nc = [\n [\n \"path\",\n {\n d: \"M3.85 8.62a4 4 0 0 1 4.78-4.77 4 4 0 0 1 6.74 0 4 4 0 0 1 4.78 4.78 4 4 0 0 1 0 6.74 4 4 0 0 1-4.77 4.78 4 4 0 0 1-6.75 0 4 4 0 0 1-4.78-4.77 4 4 0 0 1 0-6.76Z\",\n key: \"3c2336\"\n }\n ]\n];\nconst Badge = createLucideIcon(\"badge\", __iconNode$nc);\nconst __iconNode$nb = [\n [\n \"path\",\n {\n d: \"M22 18H6a2 2 0 0 1-2-2V7a2 2 0 0 0-2-2\",\n key: \"4irg2o\"\n }\n ],\n [\n \"path\",\n {\n d: \"M17 14V4a2 2 0 0 0-2-2h-1a2 2 0 0 0-2 2v10\",\n key: \"14fcyx\"\n }\n ],\n [\n \"rect\",\n {\n width: \"13\",\n height: \"8\",\n x: \"8\",\n y: \"6\",\n rx: \"1\",\n key: \"o6oiis\"\n }\n ],\n [\n \"circle\",\n {\n cx: \"18\",\n cy: \"20\",\n r: \"2\",\n key: \"t9985n\"\n }\n ],\n [\n \"circle\",\n {\n cx: \"9\",\n cy: \"20\",\n r: \"2\",\n key: \"e5v82j\"\n }\n ]\n];\nconst BaggageClaim = createLucideIcon(\"baggage-claim\", __iconNode$nb);\nconst __iconNode$na = [\n [\n \"circle\",\n {\n cx: \"12\",\n cy: \"12\",\n r: \"10\",\n key: \"1mglay\"\n }\n ],\n [\n \"path\",\n {\n d: \"m4.9 4.9 14.2 14.2\",\n key: \"1m5liu\"\n }\n ]\n];\nconst Ban = createLucideIcon(\"ban\", __iconNode$na);\nconst __iconNode$n9 = [\n [\n \"path\",\n {\n d: \"M4 13c3.5-2 8-2 10 2a5.5 5.5 0 0 1 8 5\",\n key: \"1cscit\"\n }\n ],\n [\n \"path\",\n {\n d: \"M5.15 17.89c5.52-1.52 8.65-6.89 7-12C11.55 4 11.5 2 13 2c3.22 0 5 5.5 5 8 0 6.5-4.2 12-10.49 12C5.11 22 2 22 2 20c0-1.5 1.14-1.55 3.15-2.11Z\",\n key: \"1y1nbv\"\n }\n ]\n];\nconst Banana = createLucideIcon(\"banana\", __iconNode$n9);\nconst __iconNode$n8 = [\n [\n \"path\",\n {\n d: \"M10 10.01h.01\",\n key: \"1e9xi7\"\n }\n ],\n [\n \"path\",\n {\n d: \"M10 14.01h.01\",\n key: \"ac23bv\"\n }\n ],\n [\n \"path\",\n {\n d: \"M14 10.01h.01\",\n key: \"2wfrvf\"\n }\n ],\n [\n \"path\",\n {\n d: \"M14 14.01h.01\",\n key: \"8tw8yn\"\n }\n ],\n [\n \"path\",\n {\n d: \"M18 6v11.5\",\n key: \"dkbidh\"\n }\n ],\n [\n \"path\",\n {\n d: \"M6 6v12\",\n key: \"vkc79e\"\n }\n ],\n [\n \"rect\",\n {\n x: \"2\",\n y: \"6\",\n width: \"20\",\n height: \"12\",\n rx: \"2\",\n key: \"1wpnh2\"\n }\n ]\n];\nconst Bandage = createLucideIcon(\"bandage\", __iconNode$n8);\nconst __iconNode$n7 = [\n [\n \"path\",\n {\n d: \"M12 18H4a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2v5\",\n key: \"x6cv4u\"\n }\n ],\n [\n \"path\",\n {\n d: \"m16 19 3 3 3-3\",\n key: \"1ibux0\"\n }\n ],\n [\n \"path\",\n {\n d: \"M18 12h.01\",\n key: \"yjnet6\"\n }\n ],\n [\n \"path\",\n {\n d: \"M19 16v6\",\n key: \"tddt3s\"\n }\n ],\n [\n \"path\",\n {\n d: \"M6 12h.01\",\n key: \"c2rlol\"\n }\n ],\n [\n \"circle\",\n {\n cx: \"12\",\n cy: \"12\",\n r: \"2\",\n key: \"1c9p78\"\n }\n ]\n];\nconst BanknoteArrowDown = createLucideIcon(\"banknote-arrow-down\", __iconNode$n7);\nconst __iconNode$n6 = [\n [\n \"path\",\n {\n d: \"M12 18H4a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2v5\",\n key: \"x6cv4u\"\n }\n ],\n [\n \"path\",\n {\n d: \"M18 12h.01\",\n key: \"yjnet6\"\n }\n ],\n [\n \"path\",\n {\n d: \"M19 22v-6\",\n key: \"qhmiwi\"\n }\n ],\n [\n \"path\",\n {\n d: \"m22 19-3-3-3 3\",\n key: \"rn6bg2\"\n }\n ],\n [\n \"path\",\n {\n d: \"M6 12h.01\",\n key: \"c2rlol\"\n }\n ],\n [\n \"circle\",\n {\n cx: \"12\",\n cy: \"12\",\n r: \"2\",\n key: \"1c9p78\"\n }\n ]\n];\nconst BanknoteArrowUp = createLucideIcon(\"banknote-arrow-up\", __iconNode$n6);\nconst __iconNode$n5 = [\n [\n \"path\",\n {\n d: \"M13 18H4a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2v5\",\n key: \"16nib6\"\n }\n ],\n [\n \"path\",\n {\n d: \"m17 17 5 5\",\n key: \"p7ous7\"\n }\n ],\n [\n \"path\",\n {\n d: \"M18 12h.01\",\n key: \"yjnet6\"\n }\n ],\n [\n \"path\",\n {\n d: \"m22 17-5 5\",\n key: \"gqnmv0\"\n }\n ],\n [\n \"path\",\n {\n d: \"M6 12h.01\",\n key: \"c2rlol\"\n }\n ],\n [\n \"circle\",\n {\n cx: \"12\",\n cy: \"12\",\n r: \"2\",\n key: \"1c9p78\"\n }\n ]\n];\nconst BanknoteX = createLucideIcon(\"banknote-x\", __iconNode$n5);\nconst __iconNode$n4 = [\n [\n \"path\",\n {\n d: \"M3 5v14\",\n key: \"1nt18q\"\n }\n ],\n [\n \"path\",\n {\n d: \"M8 5v14\",\n key: \"1ybrkv\"\n }\n ],\n [\n \"path\",\n {\n d: \"M12 5v14\",\n key: \"s699le\"\n }\n ],\n [\n \"path\",\n {\n d: \"M17 5v14\",\n key: \"ycjyhj\"\n }\n ],\n [\n \"path\",\n {\n d: \"M21 5v14\",\n key: \"nzette\"\n }\n ]\n];\nconst Barcode = createLucideIcon(\"barcode\", __iconNode$n4);\nconst __iconNode$n3 = [\n [\n \"rect\",\n {\n width: \"20\",\n height: \"12\",\n x: \"2\",\n y: \"6\",\n rx: \"2\",\n key: \"9lu3g6\"\n }\n ],\n [\n \"circle\",\n {\n cx: \"12\",\n cy: \"12\",\n r: \"2\",\n key: \"1c9p78\"\n }\n ],\n [\n \"path\",\n {\n d: \"M6 12h.01M18 12h.01\",\n key: \"113zkx\"\n }\n ]\n];\nconst Banknote = createLucideIcon(\"banknote\", __iconNode$n3);\nconst __iconNode$n2 = [\n [\n \"path\",\n {\n d: \"M10 3a41 41 0 0 0 0 18\",\n key: \"1qcnzb\"\n }\n ],\n [\n \"path\",\n {\n d: \"M14 3a41 41 0 0 1 0 18\",\n key: \"547vd4\"\n }\n ],\n [\n \"path\",\n {\n d: \"M17 3a2 2 0 0 1 1.68.92 15.25 15.25 0 0 1 0 16.16A2 2 0 0 1 17 21H7a2 2 0 0 1-1.68-.92 15.25 15.25 0 0 1 0-16.16A2 2 0 0 1 7 3z\",\n key: \"1wepyy\"\n }\n ],\n [\n \"path\",\n {\n d: \"M3.84 17h16.32\",\n key: \"1wh981\"\n }\n ],\n [\n \"path\",\n {\n d: \"M3.84 7h16.32\",\n key: \"19jf4x\"\n }\n ]\n];\nconst Barrel = createLucideIcon(\"barrel\", __iconNode$n2);\nconst __iconNode$n1 = [\n [\n \"path\",\n {\n d: \"M4 20h16\",\n key: \"14thso\"\n }\n ],\n [\n \"path\",\n {\n d: \"m6 16 6-12 6 12\",\n key: \"1b4byz\"\n }\n ],\n [\n \"path\",\n {\n d: \"M8 12h8\",\n key: \"1wcyev\"\n }\n ]\n];\nconst Baseline = createLucideIcon(\"baseline\", __iconNode$n1);\nconst __iconNode$n0 = [\n [\n \"path\",\n {\n d: \"M10 4 8 6\",\n key: \"1rru8s\"\n }\n ],\n [\n \"path\",\n {\n d: \"M17 19v2\",\n key: \"ts1sot\"\n }\n ],\n [\n \"path\",\n {\n d: \"M2 12h20\",\n key: \"9i4pu4\"\n }\n ],\n [\n \"path\",\n {\n d: \"M7 19v2\",\n key: \"12npes\"\n }\n ],\n [\n \"path\",\n {\n d: \"M9 5 7.621 3.621A2.121 2.121 0 0 0 4 5v12a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2v-5\",\n key: \"14ym8i\"\n }\n ]\n];\nconst Bath = createLucideIcon(\"bath\", __iconNode$n0);\nconst __iconNode$m$ = [\n [\n \"path\",\n {\n d: \"m11 7-3 5h4l-3 5\",\n key: \"b4a64w\"\n }\n ],\n [\n \"path\",\n {\n d: \"M14.856 6H16a2 2 0 0 1 2 2v8a2 2 0 0 1-2 2h-2.935\",\n key: \"lre1cr\"\n }\n ],\n [\n \"path\",\n {\n d: \"M22 14v-4\",\n key: \"14q9d5\"\n }\n ],\n [\n \"path\",\n {\n d: \"M5.14 18H4a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h2.936\",\n key: \"13q5k0\"\n }\n ]\n];\nconst BatteryCharging = createLucideIcon(\"battery-charging\", __iconNode$m$);\nconst __iconNode$m_ = [\n [\n \"path\",\n {\n d: \"M10 10v4\",\n key: \"1mb2ec\"\n }\n ],\n [\n \"path\",\n {\n d: \"M14 10v4\",\n key: \"1nt88p\"\n }\n ],\n [\n \"path\",\n {\n d: \"M22 14v-4\",\n key: \"14q9d5\"\n }\n ],\n [\n \"path\",\n {\n d: \"M6 10v4\",\n key: \"1n77qd\"\n }\n ],\n [\n \"rect\",\n {\n x: \"2\",\n y: \"6\",\n width: \"16\",\n height: \"12\",\n rx: \"2\",\n key: \"13zb55\"\n }\n ]\n];\nconst BatteryFull = createLucideIcon(\"battery-full\", __iconNode$m_);\nconst __iconNode$mZ = [\n [\n \"path\",\n {\n d: \"M22 14v-4\",\n key: \"14q9d5\"\n }\n ],\n [\n \"path\",\n {\n d: \"M6 14v-4\",\n key: \"14a6bd\"\n }\n ],\n [\n \"rect\",\n {\n x: \"2\",\n y: \"6\",\n width: \"16\",\n height: \"12\",\n rx: \"2\",\n key: \"13zb55\"\n }\n ]\n];\nconst BatteryLow = createLucideIcon(\"battery-low\", __iconNode$mZ);\nconst __iconNode$mY = [\n [\n \"path\",\n {\n d: \"M10 14v-4\",\n key: \"suye4c\"\n }\n ],\n [\n \"path\",\n {\n d: \"M22 14v-4\",\n key: \"14q9d5\"\n }\n ],\n [\n \"path\",\n {\n d: \"M6 14v-4\",\n key: \"14a6bd\"\n }\n ],\n [\n \"rect\",\n {\n x: \"2\",\n y: \"6\",\n width: \"16\",\n height: \"12\",\n rx: \"2\",\n key: \"13zb55\"\n }\n ]\n];\nconst BatteryMedium = createLucideIcon(\"battery-medium\", __iconNode$mY);\nconst __iconNode$mX = [\n [\n \"path\",\n {\n d: \"M10 9v6\",\n key: \"17i7lo\"\n }\n ],\n [\n \"path\",\n {\n d: \"M12.543 6H16a2 2 0 0 1 2 2v8a2 2 0 0 1-2 2h-3.605\",\n key: \"o09yah\"\n }\n ],\n [\n \"path\",\n {\n d: \"M22 14v-4\",\n key: \"14q9d5\"\n }\n ],\n [\n \"path\",\n {\n d: \"M7 12h6\",\n key: \"iekk3h\"\n }\n ],\n [\n \"path\",\n {\n d: \"M7.606 18H4a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h3.606\",\n key: \"xyqvf1\"\n }\n ]\n];\nconst BatteryPlus = createLucideIcon(\"battery-plus\", __iconNode$mX);\nconst __iconNode$mW = [\n [\n \"path\",\n {\n d: \"M10 17h.01\",\n key: \"nbq80n\"\n }\n ],\n [\n \"path\",\n {\n d: \"M10 7v6\",\n key: \"nne03l\"\n }\n ],\n [\n \"path\",\n {\n d: \"M14 6h2a2 2 0 0 1 2 2v8a2 2 0 0 1-2 2h-2\",\n key: \"1m83kb\"\n }\n ],\n [\n \"path\",\n {\n d: \"M22 14v-4\",\n key: \"14q9d5\"\n }\n ],\n [\n \"path\",\n {\n d: \"M6 18H4a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h2\",\n key: \"h8lgfh\"\n }\n ]\n];\nconst BatteryWarning = createLucideIcon(\"battery-warning\", __iconNode$mW);\nconst __iconNode$mV = [\n [\n \"path\",\n {\n d: \"M 22 14 L 22 10\",\n key: \"nqc4tb\"\n }\n ],\n [\n \"rect\",\n {\n x: \"2\",\n y: \"6\",\n width: \"16\",\n height: \"12\",\n rx: \"2\",\n key: \"13zb55\"\n }\n ]\n];\nconst Battery = createLucideIcon(\"battery\", __iconNode$mV);\nconst __iconNode$mU = [\n [\n \"path\",\n {\n d: \"M4.5 3h15\",\n key: \"c7n0jr\"\n }\n ],\n [\n \"path\",\n {\n d: \"M6 3v16a2 2 0 0 0 2 2h8a2 2 0 0 0 2-2V3\",\n key: \"m1uhx7\"\n }\n ],\n [\n \"path\",\n {\n d: \"M6 14h12\",\n key: \"4cwo0f\"\n }\n ]\n];\nconst Beaker = createLucideIcon(\"beaker\", __iconNode$mU);\nconst __iconNode$mT = [\n [\n \"path\",\n {\n d: \"M9 9c-.64.64-1.521.954-2.402 1.165A6 6 0 0 0 8 22a13.96 13.96 0 0 0 9.9-4.1\",\n key: \"bq3udt\"\n }\n ],\n [\n \"path\",\n {\n d: \"M10.75 5.093A6 6 0 0 1 22 8c0 2.411-.61 4.68-1.683 6.66\",\n key: \"17ccse\"\n }\n ],\n [\n \"path\",\n {\n d: \"M5.341 10.62a4 4 0 0 0 6.487 1.208M10.62 5.341a4.015 4.015 0 0 1 2.039 2.04\",\n key: \"18zqgq\"\n }\n ],\n [\n \"line\",\n {\n x1: \"2\",\n x2: \"22\",\n y1: \"2\",\n y2: \"22\",\n key: \"a6p6uj\"\n }\n ]\n];\nconst BeanOff = createLucideIcon(\"bean-off\", __iconNode$mT);\nconst __iconNode$mS = [\n [\n \"path\",\n {\n d: \"M2 20v-8a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2v8\",\n key: \"1k78r4\"\n }\n ],\n [\n \"path\",\n {\n d: \"M4 10V6a2 2 0 0 1 2-2h12a2 2 0 0 1 2 2v4\",\n key: \"fb3tl2\"\n }\n ],\n [\n \"path\",\n {\n d: \"M12 4v6\",\n key: \"1dcgq2\"\n }\n ],\n [\n \"path\",\n {\n d: \"M2 18h20\",\n key: \"ajqnye\"\n }\n ]\n];\nconst BedDouble = createLucideIcon(\"bed-double\", __iconNode$mS);\nconst __iconNode$mR = [\n [\n \"path\",\n {\n d: \"M10.165 6.598C9.954 7.478 9.64 8.36 9 9c-.64.64-1.521.954-2.402 1.165A6 6 0 0 0 8 22c7.732 0 14-6.268 14-14a6 6 0 0 0-11.835-1.402Z\",\n key: \"1tvzk7\"\n }\n ],\n [\n \"path\",\n {\n d: \"M5.341 10.62a4 4 0 1 0 5.279-5.28\",\n key: \"2cyri2\"\n }\n ]\n];\nconst Bean = createLucideIcon(\"bean\", __iconNode$mR);\nconst __iconNode$mQ = [\n [\n \"path\",\n {\n d: \"M3 20v-8a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2v8\",\n key: \"1wm6mi\"\n }\n ],\n [\n \"path\",\n {\n d: \"M5 10V6a2 2 0 0 1 2-2h10a2 2 0 0 1 2 2v4\",\n key: \"4k93s5\"\n }\n ],\n [\n \"path\",\n {\n d: \"M3 18h18\",\n key: \"1h113x\"\n }\n ]\n];\nconst BedSingle = createLucideIcon(\"bed-single\", __iconNode$mQ);\nconst __iconNode$mP = [\n [\n \"path\",\n {\n d: \"M2 4v16\",\n key: \"vw9hq8\"\n }\n ],\n [\n \"path\",\n {\n d: \"M2 8h18a2 2 0 0 1 2 2v10\",\n key: \"1dgv2r\"\n }\n ],\n [\n \"path\",\n {\n d: \"M2 17h20\",\n key: \"18nfp3\"\n }\n ],\n [\n \"path\",\n {\n d: \"M6 8v9\",\n key: \"1yriud\"\n }\n ]\n];\nconst Bed = createLucideIcon(\"bed\", __iconNode$mP);\nconst __iconNode$mO = [\n [\n \"path\",\n {\n d: \"M13 13v5\",\n key: \"igwfh0\"\n }\n ],\n [\n \"path\",\n {\n d: \"M17 11.47V8\",\n key: \"16yw0g\"\n }\n ],\n [\n \"path\",\n {\n d: \"M17 11h1a3 3 0 0 1 2.745 4.211\",\n key: \"1xbt65\"\n }\n ],\n [\n \"path\",\n {\n d: \"m2 2 20 20\",\n key: \"1ooewy\"\n }\n ],\n [\n \"path\",\n {\n d: \"M5 8v12a2 2 0 0 0 2 2h8a2 2 0 0 0 2-2v-3\",\n key: \"c55o3e\"\n }\n ],\n [\n \"path\",\n {\n d: \"M7.536 7.535C6.766 7.649 6.154 8 5.5 8a2.5 2.5 0 0 1-1.768-4.268\",\n key: \"1ydug7\"\n }\n ],\n [\n \"path\",\n {\n d: \"M8.727 3.204C9.306 2.767 9.885 2 11 2c1.56 0 2 1.5 3 1.5s1.72-.5 2.5-.5a1 1 0 1 1 0 5c-.78 0-1.5-.5-2.5-.5a3.149 3.149 0 0 0-.842.12\",\n key: \"q81o7q\"\n }\n ],\n [\n \"path\",\n {\n d: \"M9 14.6V18\",\n key: \"20ek98\"\n }\n ]\n];\nconst BeerOff = createLucideIcon(\"beer-off\", __iconNode$mO);\nconst __iconNode$mN = [\n [\n \"path\",\n {\n d: \"M16.4 13.7A6.5 6.5 0 1 0 6.28 6.6c-1.1 3.13-.78 3.9-3.18 6.08A3 3 0 0 0 5 18c4 0 8.4-1.8 11.4-4.3\",\n key: \"cisjcv\"\n }\n ],\n [\n \"path\",\n {\n d: \"m18.5 6 2.19 4.5a6.48 6.48 0 0 1-2.29 7.2C15.4 20.2 11 22 7 22a3 3 0 0 1-2.68-1.66L2.4 16.5\",\n key: \"5byaag\"\n }\n ],\n [\n \"circle\",\n {\n cx: \"12.5\",\n cy: \"8.5\",\n r: \"2.5\",\n key: \"9738u8\"\n }\n ]\n];\nconst Beef = createLucideIcon(\"beef\", __iconNode$mN);\nconst __iconNode$mM = [\n [\n \"path\",\n {\n d: \"M17 11h1a3 3 0 0 1 0 6h-1\",\n key: \"1yp76v\"\n }\n ],\n [\n \"path\",\n {\n d: \"M9 12v6\",\n key: \"1u1cab\"\n }\n ],\n [\n \"path\",\n {\n d: \"M13 12v6\",\n key: \"1sugkk\"\n }\n ],\n [\n \"path\",\n {\n d: \"M14 7.5c-1 0-1.44.5-3 .5s-2-.5-3-.5-1.72.5-2.5.5a2.5 2.5 0 0 1 0-5c.78 0 1.57.5 2.5.5S9.44 2 11 2s2 1.5 3 1.5 1.72-.5 2.5-.5a2.5 2.5 0 0 1 0 5c-.78 0-1.5-.5-2.5-.5Z\",\n key: \"1510fo\"\n }\n ],\n [\n \"path\",\n {\n d: \"M5 8v12a2 2 0 0 0 2 2h8a2 2 0 0 0 2-2V8\",\n key: \"19jb7n\"\n }\n ]\n];\nconst Beer = createLucideIcon(\"beer\", __iconNode$mM);\nconst __iconNode$mL = [\n [\n \"path\",\n {\n d: \"M10.268 21a2 2 0 0 0 3.464 0\",\n key: \"vwvbt9\"\n }\n ],\n [\n \"path\",\n {\n d: \"M13.916 2.314A6 6 0 0 0 6 8c0 4.499-1.411 5.956-2.74 7.327A1 1 0 0 0 4 17h16a1 1 0 0 0 .74-1.673 9 9 0 0 1-.585-.665\",\n key: \"1tip0g\"\n }\n ],\n [\n \"circle\",\n {\n cx: \"18\",\n cy: \"8\",\n r: \"3\",\n key: \"1g0gzu\"\n }\n ]\n];\nconst BellDot = createLucideIcon(\"bell-dot\", __iconNode$mL);\nconst __iconNode$mK = [\n [\n \"path\",\n {\n d: \"M18.518 17.347A7 7 0 0 1 14 19\",\n key: \"1emhpo\"\n }\n ],\n [\n \"path\",\n {\n d: \"M18.8 4A11 11 0 0 1 20 9\",\n key: \"127b67\"\n }\n ],\n [\n \"path\",\n {\n d: \"M9 9h.01\",\n key: \"1q5me6\"\n }\n ],\n [\n \"circle\",\n {\n cx: \"20\",\n cy: \"16\",\n r: \"2\",\n key: \"1v9bxh\"\n }\n ],\n [\n \"circle\",\n {\n cx: \"9\",\n cy: \"9\",\n r: \"7\",\n key: \"p2h5vp\"\n }\n ],\n [\n \"rect\",\n {\n x: \"4\",\n y: \"16\",\n width: \"10\",\n height: \"6\",\n rx: \"2\",\n key: \"bfnviv\"\n }\n ]\n];\nconst BellElectric = createLucideIcon(\"bell-electric\", __iconNode$mK);\nconst __iconNode$mJ = [\n [\n \"path\",\n {\n d: \"M10.268 21a2 2 0 0 0 3.464 0\",\n key: \"vwvbt9\"\n }\n ],\n [\n \"path\",\n {\n d: \"M15 8h6\",\n key: \"8ybuxh\"\n }\n ],\n [\n \"path\",\n {\n d: \"M16.243 3.757A6 6 0 0 0 6 8c0 4.499-1.411 5.956-2.738 7.326A1 1 0 0 0 4 17h16a1 1 0 0 0 .74-1.673A9.4 9.4 0 0 1 18.667 12\",\n key: \"bdwj86\"\n }\n ]\n];\nconst BellMinus = createLucideIcon(\"bell-minus\", __iconNode$mJ);\nconst __iconNode$mI = [\n [\n \"path\",\n {\n d: \"M10.268 21a2 2 0 0 0 3.464 0\",\n key: \"vwvbt9\"\n }\n ],\n [\n \"path\",\n {\n d: \"M17 17H4a1 1 0 0 1-.74-1.673C4.59 13.956 6 12.499 6 8a6 6 0 0 1 .258-1.742\",\n key: \"178tsu\"\n }\n ],\n [\n \"path\",\n {\n d: \"m2 2 20 20\",\n key: \"1ooewy\"\n }\n ],\n [\n \"path\",\n {\n d: \"M8.668 3.01A6 6 0 0 1 18 8c0 2.687.77 4.653 1.707 6.05\",\n key: \"1hqiys\"\n }\n ]\n];\nconst BellOff = createLucideIcon(\"bell-off\", __iconNode$mI);\nconst __iconNode$mH = [\n [\n \"path\",\n {\n d: \"M10.268 21a2 2 0 0 0 3.464 0\",\n key: \"vwvbt9\"\n }\n ],\n [\n \"path\",\n {\n d: \"M15 8h6\",\n key: \"8ybuxh\"\n }\n ],\n [\n \"path\",\n {\n d: \"M18 5v6\",\n key: \"g5ayrv\"\n }\n ],\n [\n \"path\",\n {\n d: \"M20.002 14.464a9 9 0 0 0 .738.863A1 1 0 0 1 20 17H4a1 1 0 0 1-.74-1.673C4.59 13.956 6 12.499 6 8a6 6 0 0 1 8.75-5.332\",\n key: \"1abcvy\"\n }\n ]\n];\nconst BellPlus = createLucideIcon(\"bell-plus\", __iconNode$mH);\nconst __iconNode$mG = [\n [\n \"path\",\n {\n d: \"M10.268 21a2 2 0 0 0 3.464 0\",\n key: \"vwvbt9\"\n }\n ],\n [\n \"path\",\n {\n d: \"M22 8c0-2.3-.8-4.3-2-6\",\n key: \"5bb3ad\"\n }\n ],\n [\n \"path\",\n {\n d: \"M3.262 15.326A1 1 0 0 0 4 17h16a1 1 0 0 0 .74-1.673C19.41 13.956 18 12.499 18 8A6 6 0 0 0 6 8c0 4.499-1.411 5.956-2.738 7.326\",\n key: \"11g9vi\"\n }\n ],\n [\n \"path\",\n {\n d: \"M4 2C2.8 3.7 2 5.7 2 8\",\n key: \"tap9e0\"\n }\n ]\n];\nconst BellRing = createLucideIcon(\"bell-ring\", __iconNode$mG);\nconst __iconNode$mF = [\n [\n \"path\",\n {\n d: \"M10.268 21a2 2 0 0 0 3.464 0\",\n key: \"vwvbt9\"\n }\n ],\n [\n \"path\",\n {\n d: \"M3.262 15.326A1 1 0 0 0 4 17h16a1 1 0 0 0 .74-1.673C19.41 13.956 18 12.499 18 8A6 6 0 0 0 6 8c0 4.499-1.411 5.956-2.738 7.326\",\n key: \"11g9vi\"\n }\n ]\n];\nconst Bell = createLucideIcon(\"bell\", __iconNode$mF);\nconst __iconNode$mE = [\n [\n \"rect\",\n {\n width: \"13\",\n height: \"7\",\n x: \"3\",\n y: \"3\",\n rx: \"1\",\n key: \"11xb64\"\n }\n ],\n [\n \"path\",\n {\n d: \"m22 15-3-3 3-3\",\n key: \"26chmm\"\n }\n ],\n [\n \"rect\",\n {\n width: \"13\",\n height: \"7\",\n x: \"3\",\n y: \"14\",\n rx: \"1\",\n key: \"k6ky7n\"\n }\n ]\n];\nconst BetweenHorizontalEnd = createLucideIcon(\"between-horizontal-end\", __iconNode$mE);\nconst __iconNode$mD = [\n [\n \"rect\",\n {\n width: \"13\",\n height: \"7\",\n x: \"8\",\n y: \"3\",\n rx: \"1\",\n key: \"pkso9a\"\n }\n ],\n [\n \"path\",\n {\n d: \"m2 9 3 3-3 3\",\n key: \"1agib5\"\n }\n ],\n [\n \"rect\",\n {\n width: \"13\",\n height: \"7\",\n x: \"8\",\n y: \"14\",\n rx: \"1\",\n key: \"1q5fc1\"\n }\n ]\n];\nconst BetweenHorizontalStart = createLucideIcon(\"between-horizontal-start\", __iconNode$mD);\nconst __iconNode$mC = [\n [\n \"rect\",\n {\n width: \"7\",\n height: \"13\",\n x: \"3\",\n y: \"3\",\n rx: \"1\",\n key: \"1fdu0f\"\n }\n ],\n [\n \"path\",\n {\n d: \"m9 22 3-3 3 3\",\n key: \"17z65a\"\n }\n ],\n [\n \"rect\",\n {\n width: \"7\",\n height: \"13\",\n x: \"14\",\n y: \"3\",\n rx: \"1\",\n key: \"1squn4\"\n }\n ]\n];\nconst BetweenVerticalEnd = createLucideIcon(\"between-vertical-end\", __iconNode$mC);\nconst __iconNode$mB = [\n [\n \"rect\",\n {\n width: \"7\",\n height: \"13\",\n x: \"3\",\n y: \"8\",\n rx: \"1\",\n key: \"1fjrkv\"\n }\n ],\n [\n \"path\",\n {\n d: \"m15 2-3 3-3-3\",\n key: \"1uh6eb\"\n }\n ],\n [\n \"rect\",\n {\n width: \"7\",\n height: \"13\",\n x: \"14\",\n y: \"8\",\n rx: \"1\",\n key: \"w3fjg8\"\n }\n ]\n];\nconst BetweenVerticalStart = createLucideIcon(\"between-vertical-start\", __iconNode$mB);\nconst __iconNode$mA = [\n [\n \"path\",\n {\n d: \"M12.409 13.017A5 5 0 0 1 22 15c0 3.866-4 7-9 7-4.077 0-8.153-.82-10.371-2.462-.426-.316-.631-.832-.62-1.362C2.118 12.723 2.627 2 10 2a3 3 0 0 1 3 3 2 2 0 0 1-2 2c-1.105 0-1.64-.444-2-1\",\n key: \"1pmlyh\"\n }\n ],\n [\n \"path\",\n {\n d: \"M15 14a5 5 0 0 0-7.584 2\",\n key: \"5rb254\"\n }\n ],\n [\n \"path\",\n {\n d: \"M9.964 6.825C8.019 7.977 9.5 13 8 15\",\n key: \"kbvsx9\"\n }\n ]\n];\nconst BicepsFlexed = createLucideIcon(\"biceps-flexed\", __iconNode$mA);\nconst __iconNode$mz = [\n [\n \"circle\",\n {\n cx: \"18.5\",\n cy: \"17.5\",\n r: \"3.5\",\n key: \"15x4ox\"\n }\n ],\n [\n \"circle\",\n {\n cx: \"5.5\",\n cy: \"17.5\",\n r: \"3.5\",\n key: \"1noe27\"\n }\n ],\n [\n \"circle\",\n {\n cx: \"15\",\n cy: \"5\",\n r: \"1\",\n key: \"19l28e\"\n }\n ],\n [\n \"path\",\n {\n d: \"M12 17.5V14l-3-3 4-3 2 3h2\",\n key: \"1npguv\"\n }\n ]\n];\nconst Bike = createLucideIcon(\"bike\", __iconNode$mz);\nconst __iconNode$my = [\n [\n \"rect\",\n {\n x: \"14\",\n y: \"14\",\n width: \"4\",\n height: \"6\",\n rx: \"2\",\n key: \"p02svl\"\n }\n ],\n [\n \"rect\",\n {\n x: \"6\",\n y: \"4\",\n width: \"4\",\n height: \"6\",\n rx: \"2\",\n key: \"xm4xkj\"\n }\n ],\n [\n \"path\",\n {\n d: \"M6 20h4\",\n key: \"1i6q5t\"\n }\n ],\n [\n \"path\",\n {\n d: \"M14 10h4\",\n key: \"ru81e7\"\n }\n ],\n [\n \"path\",\n {\n d: \"M6 14h2v6\",\n key: \"16z9wg\"\n }\n ],\n [\n \"path\",\n {\n d: \"M14 4h2v6\",\n key: \"1idq9u\"\n }\n ]\n];\nconst Binary = createLucideIcon(\"binary\", __iconNode$my);\nconst __iconNode$mx = [\n [\n \"path\",\n {\n d: \"M10 10h4\",\n key: \"tcdvrf\"\n }\n ],\n [\n \"path\",\n {\n d: \"M19 7V4a1 1 0 0 0-1-1h-2a1 1 0 0 0-1 1v3\",\n key: \"3apit1\"\n }\n ],\n [\n \"path\",\n {\n d: \"M20 21a2 2 0 0 0 2-2v-3.851c0-1.39-2-2.962-2-4.829V8a1 1 0 0 0-1-1h-4a1 1 0 0 0-1 1v11a2 2 0 0 0 2 2z\",\n key: \"rhpgnw\"\n }\n ],\n [\n \"path\",\n {\n d: \"M 22 16 L 2 16\",\n key: \"14lkq7\"\n }\n ],\n [\n \"path\",\n {\n d: \"M4 21a2 2 0 0 1-2-2v-3.851c0-1.39 2-2.962 2-4.829V8a1 1 0 0 1 1-1h4a1 1 0 0 1 1 1v11a2 2 0 0 1-2 2z\",\n key: \"104b3k\"\n }\n ],\n [\n \"path\",\n {\n d: \"M9 7V4a1 1 0 0 0-1-1H6a1 1 0 0 0-1 1v3\",\n key: \"14fczp\"\n }\n ]\n];\nconst Binoculars = createLucideIcon(\"binoculars\", __iconNode$mx);\nconst __iconNode$mw = [\n [\n \"circle\",\n {\n cx: \"12\",\n cy: \"11.9\",\n r: \"2\",\n key: \"e8h31w\"\n }\n ],\n [\n \"path\",\n {\n d: \"M6.7 3.4c-.9 2.5 0 5.2 2.2 6.7C6.5 9 3.7 9.6 2 11.6\",\n key: \"17bolr\"\n }\n ],\n [\n \"path\",\n {\n d: \"m8.9 10.1 1.4.8\",\n key: \"15ezny\"\n }\n ],\n [\n \"path\",\n {\n d: \"M17.3 3.4c.9 2.5 0 5.2-2.2 6.7 2.4-1.2 5.2-.6 6.9 1.5\",\n key: \"wtwa5u\"\n }\n ],\n [\n \"path\",\n {\n d: \"m15.1 10.1-1.4.8\",\n key: \"1r0b28\"\n }\n ],\n [\n \"path\",\n {\n d: \"M16.7 20.8c-2.6-.4-4.6-2.6-4.7-5.3-.2 2.6-2.1 4.8-4.7 5.2\",\n key: \"m7qszh\"\n }\n ],\n [\n \"path\",\n {\n d: \"M12 13.9v1.6\",\n key: \"zfyyim\"\n }\n ],\n [\n \"path\",\n {\n d: \"M13.5 5.4c-1-.2-2-.2-3 0\",\n key: \"1bi9q0\"\n }\n ],\n [\n \"path\",\n {\n d: \"M17 16.4c.7-.7 1.2-1.6 1.5-2.5\",\n key: \"1rhjqw\"\n }\n ],\n [\n \"path\",\n {\n d: \"M5.5 13.9c.3.9.8 1.8 1.5 2.5\",\n key: \"8gsud3\"\n }\n ]\n];\nconst Biohazard = createLucideIcon(\"biohazard\", __iconNode$mw);\nconst __iconNode$mv = [\n [\n \"path\",\n {\n d: \"M16 7h.01\",\n key: \"1kdx03\"\n }\n ],\n [\n \"path\",\n {\n d: \"M3.4 18H12a8 8 0 0 0 8-8V7a4 4 0 0 0-7.28-2.3L2 20\",\n key: \"oj1oa8\"\n }\n ],\n [\n \"path\",\n {\n d: \"m20 7 2 .5-2 .5\",\n key: \"12nv4d\"\n }\n ],\n [\n \"path\",\n {\n d: \"M10 18v3\",\n key: \"1yea0a\"\n }\n ],\n [\n \"path\",\n {\n d: \"M14 17.75V21\",\n key: \"1pymcb\"\n }\n ],\n [\n \"path\",\n {\n d: \"M7 18a6 6 0 0 0 3.84-10.61\",\n key: \"1npnn0\"\n }\n ]\n];\nconst Bird = createLucideIcon(\"bird\", __iconNode$mv);\nconst __iconNode$mu = [\n [\n \"path\",\n {\n d: \"M11.767 19.089c4.924.868 6.14-6.025 1.216-6.894m-1.216 6.894L5.86 18.047m5.908 1.042-.347 1.97m1.563-8.864c4.924.869 6.14-6.025 1.215-6.893m-1.215 6.893-3.94-.694m5.155-6.2L8.29 4.26m5.908 1.042.348-1.97M7.48 20.364l3.126-17.727\",\n key: \"yr8idg\"\n }\n ]\n];\nconst Bitcoin = createLucideIcon(\"bitcoin\", __iconNode$mu);\nconst __iconNode$mt = [\n [\n \"circle\",\n {\n cx: \"9\",\n cy: \"9\",\n r: \"7\",\n key: \"p2h5vp\"\n }\n ],\n [\n \"circle\",\n {\n cx: \"15\",\n cy: \"15\",\n r: \"7\",\n key: \"19ennj\"\n }\n ]\n];\nconst Blend = createLucideIcon(\"blend\", __iconNode$mt);\nconst __iconNode$ms = [\n [\n \"path\",\n {\n d: \"M3 3h18\",\n key: \"o7r712\"\n }\n ],\n [\n \"path\",\n {\n d: \"M20 7H8\",\n key: \"gd2fo2\"\n }\n ],\n [\n \"path\",\n {\n d: \"M20 11H8\",\n key: \"1ynp89\"\n }\n ],\n [\n \"path\",\n {\n d: \"M10 19h10\",\n key: \"19hjk5\"\n }\n ],\n [\n \"path\",\n {\n d: \"M8 15h12\",\n key: \"1yqzne\"\n }\n ],\n [\n \"path\",\n {\n d: \"M4 3v14\",\n key: \"fggqzn\"\n }\n ],\n [\n \"circle\",\n {\n cx: \"4\",\n cy: \"19\",\n r: \"2\",\n key: \"p3m9r0\"\n }\n ]\n];\nconst Blinds = createLucideIcon(\"blinds\", __iconNode$ms);\nconst __iconNode$mr = [\n [\n \"path\",\n {\n d: \"M10 22V7a1 1 0 0 0-1-1H4a2 2 0 0 0-2 2v12a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2v-5a1 1 0 0 0-1-1H2\",\n key: \"1ah6g2\"\n }\n ],\n [\n \"rect\",\n {\n x: \"14\",\n y: \"2\",\n width: \"8\",\n height: \"8\",\n rx: \"1\",\n key: \"88lufb\"\n }\n ]\n];\nconst Blocks = createLucideIcon(\"blocks\", __iconNode$mr);\nconst __iconNode$mq = [\n [\n \"path\",\n {\n d: \"m7 7 10 10-5 5V2l5 5L7 17\",\n key: \"1q5490\"\n }\n ],\n [\n \"line\",\n {\n x1: \"18\",\n x2: \"21\",\n y1: \"12\",\n y2: \"12\",\n key: \"1rsjjs\"\n }\n ],\n [\n \"line\",\n {\n x1: \"3\",\n x2: \"6\",\n y1: \"12\",\n y2: \"12\",\n key: \"11yl8c\"\n }\n ]\n];\nconst BluetoothConnected = createLucideIcon(\"bluetooth-connected\", __iconNode$mq);\nconst __iconNode$mp = [\n [\n \"path\",\n {\n d: \"m17 17-5 5V12l-5 5\",\n key: \"v5aci6\"\n }\n ],\n [\n \"path\",\n {\n d: \"m2 2 20 20\",\n key: \"1ooewy\"\n }\n ],\n [\n \"path\",\n {\n d: \"M14.5 9.5 17 7l-5-5v4.5\",\n key: \"1kddfz\"\n }\n ]\n];\nconst BluetoothOff = createLucideIcon(\"bluetooth-off\", __iconNode$mp);\nconst __iconNode$mo = [\n [\n \"path\",\n {\n d: \"m7 7 10 10-5 5V2l5 5L7 17\",\n key: \"1q5490\"\n }\n ],\n [\n \"path\",\n {\n d: \"M20.83 14.83a4 4 0 0 0 0-5.66\",\n key: \"k8tn1j\"\n }\n ],\n [\n \"path\",\n {\n d: \"M18 12h.01\",\n key: \"yjnet6\"\n }\n ]\n];\nconst BluetoothSearching = createLucideIcon(\"bluetooth-searching\", __iconNode$mo);\nconst __iconNode$mn = [\n [\n \"path\",\n {\n d: \"m7 7 10 10-5 5V2l5 5L7 17\",\n key: \"1q5490\"\n }\n ]\n];\nconst Bluetooth = createLucideIcon(\"bluetooth\", __iconNode$mn);\nconst __iconNode$mm = [\n [\n \"path\",\n {\n d: \"M6 12h9a4 4 0 0 1 0 8H7a1 1 0 0 1-1-1V5a1 1 0 0 1 1-1h7a4 4 0 0 1 0 8\",\n key: \"mg9rjx\"\n }\n ]\n];\nconst Bold = createLucideIcon(\"bold\", __iconNode$mm);\nconst __iconNode$ml = [\n [\n \"path\",\n {\n d: \"M21 16V8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73l7 4a2 2 0 0 0 2 0l7-4A2 2 0 0 0 21 16z\",\n key: \"yt0hxn\"\n }\n ],\n [\n \"circle\",\n {\n cx: \"12\",\n cy: \"12\",\n r: \"4\",\n key: \"4exip2\"\n }\n ]\n];\nconst Bolt = createLucideIcon(\"bolt\", __iconNode$ml);\nconst __iconNode$mk = [\n [\n \"circle\",\n {\n cx: \"11\",\n cy: \"13\",\n r: \"9\",\n key: \"hd149\"\n }\n ],\n [\n \"path\",\n {\n d: \"M14.35 4.65 16.3 2.7a2.41 2.41 0 0 1 3.4 0l1.6 1.6a2.4 2.4 0 0 1 0 3.4l-1.95 1.95\",\n key: \"jp4j1b\"\n }\n ],\n [\n \"path\",\n {\n d: \"m22 2-1.5 1.5\",\n key: \"ay92ug\"\n }\n ]\n];\nconst Bomb = createLucideIcon(\"bomb\", __iconNode$mk);\nconst __iconNode$mj = [\n [\n \"path\",\n {\n d: \"M17 10c.7-.7 1.69 0 2.5 0a2.5 2.5 0 1 0 0-5 .5.5 0 0 1-.5-.5 2.5 2.5 0 1 0-5 0c0 .81.7 1.8 0 2.5l-7 7c-.7.7-1.69 0-2.5 0a2.5 2.5 0 0 0 0 5c.28 0 .5.22.5.5a2.5 2.5 0 1 0 5 0c0-.81-.7-1.8 0-2.5Z\",\n key: \"w610uw\"\n }\n ]\n];\nconst Bone = createLucideIcon(\"bone\", __iconNode$mj);\nconst __iconNode$mi = [\n [\n \"path\",\n {\n d: \"M4 19.5v-15A2.5 2.5 0 0 1 6.5 2H19a1 1 0 0 1 1 1v18a1 1 0 0 1-1 1H6.5a1 1 0 0 1 0-5H20\",\n key: \"k3hazp\"\n }\n ],\n [\n \"path\",\n {\n d: \"m8 13 4-7 4 7\",\n key: \"4rari8\"\n }\n ],\n [\n \"path\",\n {\n d: \"M9.1 11h5.7\",\n key: \"1gkovt\"\n }\n ]\n];\nconst BookA = createLucideIcon(\"book-a\", __iconNode$mi);\nconst __iconNode$mh = [\n [\n \"path\",\n {\n d: \"M12 6v7\",\n key: \"1f6ttz\"\n }\n ],\n [\n \"path\",\n {\n d: \"M16 8v3\",\n key: \"gejaml\"\n }\n ],\n [\n \"path\",\n {\n d: \"M4 19.5v-15A2.5 2.5 0 0 1 6.5 2H19a1 1 0 0 1 1 1v18a1 1 0 0 1-1 1H6.5a1 1 0 0 1 0-5H20\",\n key: \"k3hazp\"\n }\n ],\n [\n \"path\",\n {\n d: \"M8 8v3\",\n key: \"1qzp49\"\n }\n ]\n];\nconst BookAudio = createLucideIcon(\"book-audio\", __iconNode$mh);\nconst __iconNode$mg = [\n [\n \"path\",\n {\n d: \"M12 13h.01\",\n key: \"y0uutt\"\n }\n ],\n [\n \"path\",\n {\n d: \"M12 6v3\",\n key: \"1m4b9j\"\n }\n ],\n [\n \"path\",\n {\n d: \"M4 19.5v-15A2.5 2.5 0 0 1 6.5 2H19a1 1 0 0 1 1 1v18a1 1 0 0 1-1 1H6.5a1 1 0 0 1 0-5H20\",\n key: \"k3hazp\"\n }\n ]\n];\nconst BookAlert = createLucideIcon(\"book-alert\", __iconNode$mg);\nconst __iconNode$mf = [\n [\n \"path\",\n {\n d: \"M4 19.5v-15A2.5 2.5 0 0 1 6.5 2H19a1 1 0 0 1 1 1v18a1 1 0 0 1-1 1H6.5a1 1 0 0 1 0-5H20\",\n key: \"k3hazp\"\n }\n ],\n [\n \"path\",\n {\n d: \"m9 9.5 2 2 4-4\",\n key: \"1dth82\"\n }\n ]\n];\nconst BookCheck = createLucideIcon(\"book-check\", __iconNode$mf);\nconst __iconNode$me = [\n [\n \"path\",\n {\n d: \"M2 16V4a2 2 0 0 1 2-2h11\",\n key: \"spzkk5\"\n }\n ],\n [\n \"path\",\n {\n d: \"M22 18H11a2 2 0 1 0 0 4h10.5a.5.5 0 0 0 .5-.5v-15a.5.5 0 0 0-.5-.5H11a2 2 0 0 0-2 2v12\",\n key: \"1wz07i\"\n }\n ],\n [\n \"path\",\n {\n d: \"M5 14H4a2 2 0 1 0 0 4h1\",\n key: \"16gqf9\"\n }\n ]\n];\nconst BookCopy = createLucideIcon(\"book-copy\", __iconNode$me);\nconst __iconNode$md = [\n [\n \"path\",\n {\n d: \"M12 17h1.5\",\n key: \"1gkc67\"\n }\n ],\n [\n \"path\",\n {\n d: \"M12 22h1.5\",\n key: \"1my7sn\"\n }\n ],\n [\n \"path\",\n {\n d: \"M12 2h1.5\",\n key: \"19tvb7\"\n }\n ],\n [\n \"path\",\n {\n d: \"M17.5 22H19a1 1 0 0 0 1-1\",\n key: \"10akbh\"\n }\n ],\n [\n \"path\",\n {\n d: \"M17.5 2H19a1 1 0 0 1 1 1v1.5\",\n key: \"1vrfjs\"\n }\n ],\n [\n \"path\",\n {\n d: \"M20 14v3h-2.5\",\n key: \"1naeju\"\n }\n ],\n [\n \"path\",\n {\n d: \"M20 8.5V10\",\n key: \"1ctpfu\"\n }\n ],\n [\n \"path\",\n {\n d: \"M4 10V8.5\",\n key: \"1o3zg5\"\n }\n ],\n [\n \"path\",\n {\n d: \"M4 19.5V14\",\n key: \"ob81pf\"\n }\n ],\n [\n \"path\",\n {\n d: \"M4 4.5A2.5 2.5 0 0 1 6.5 2H8\",\n key: \"s8vcyb\"\n }\n ],\n [\n \"path\",\n {\n d: \"M8 22H6.5a1 1 0 0 1 0-5H8\",\n key: \"1cu73q\"\n }\n ]\n];\nconst BookDashed = createLucideIcon(\"book-dashed\", __iconNode$md);\nconst __iconNode$mc = [\n [\n \"path\",\n {\n d: \"M12 13V7\",\n key: \"h0r20n\"\n }\n ],\n [\n \"path\",\n {\n d: \"M4 19.5v-15A2.5 2.5 0 0 1 6.5 2H19a1 1 0 0 1 1 1v18a1 1 0 0 1-1 1H6.5a1 1 0 0 1 0-5H20\",\n key: \"k3hazp\"\n }\n ],\n [\n \"path\",\n {\n d: \"m9 10 3 3 3-3\",\n key: \"zt5b4y\"\n }\n ]\n];\nconst BookDown = createLucideIcon(\"book-down\", __iconNode$mc);\nconst __iconNode$mb = [\n [\n \"path\",\n {\n d: \"M4 19.5v-15A2.5 2.5 0 0 1 6.5 2H19a1 1 0 0 1 1 1v18a1 1 0 0 1-1 1H6.5a1 1 0 0 1 0-5H20\",\n key: \"k3hazp\"\n }\n ],\n [\n \"path\",\n {\n d: \"M8 12v-2a4 4 0 0 1 8 0v2\",\n key: \"1vsqkj\"\n }\n ],\n [\n \"circle\",\n {\n cx: \"15\",\n cy: \"12\",\n r: \"1\",\n key: \"1tmaij\"\n }\n ],\n [\n \"circle\",\n {\n cx: \"9\",\n cy: \"12\",\n r: \"1\",\n key: \"1vctgf\"\n }\n ]\n];\nconst BookHeadphones = createLucideIcon(\"book-headphones\", __iconNode$mb);\nconst __iconNode$ma = [\n [\n \"path\",\n {\n d: \"M16 8.2A2.22 2.22 0 0 0 13.8 6c-.8 0-1.4.3-1.8.9-.4-.6-1-.9-1.8-.9A2.22 2.22 0 0 0 8 8.2c0 .6.3 1.2.7 1.6A226.652 226.652 0 0 0 12 13a404 404 0 0 0 3.3-3.1 2.413 2.413 0 0 0 .7-1.7\",\n key: \"1t75a8\"\n }\n ],\n [\n \"path\",\n {\n d: \"M4 19.5v-15A2.5 2.5 0 0 1 6.5 2H19a1 1 0 0 1 1 1v18a1 1 0 0 1-1 1H6.5a1 1 0 0 1 0-5H20\",\n key: \"k3hazp\"\n }\n ]\n];\nconst BookHeart = createLucideIcon(\"book-heart\", __iconNode$ma);\nconst __iconNode$m9 = [\n [\n \"path\",\n {\n d: \"m20 13.7-2.1-2.1a2 2 0 0 0-2.8 0L9.7 17\",\n key: \"q6ojf0\"\n }\n ],\n [\n \"path\",\n {\n d: \"M4 19.5v-15A2.5 2.5 0 0 1 6.5 2H19a1 1 0 0 1 1 1v18a1 1 0 0 1-1 1H6.5a1 1 0 0 1 0-5H20\",\n key: \"k3hazp\"\n }\n ],\n [\n \"circle\",\n {\n cx: \"10\",\n cy: \"8\",\n r: \"2\",\n key: \"2qkj4p\"\n }\n ]\n];\nconst BookImage = createLucideIcon(\"book-image\", __iconNode$m9);\nconst __iconNode$m8 = [\n [\n \"path\",\n {\n d: \"m19 3 1 1\",\n key: \"ze14oc\"\n }\n ],\n [\n \"path\",\n {\n d: \"m20 2-4.5 4.5\",\n key: \"1sppr8\"\n }\n ],\n [\n \"path\",\n {\n d: \"M20 7.898V21a1 1 0 0 1-1 1H6.5a1 1 0 0 1 0-5H20\",\n key: \"1xzogz\"\n }\n ],\n [\n \"path\",\n {\n d: \"M4 19.5v-15A2.5 2.5 0 0 1 6.5 2h7.844\",\n key: \"vtdg6h\"\n }\n ],\n [\n \"circle\",\n {\n cx: \"14\",\n cy: \"8\",\n r: \"2\",\n key: \"u49eql\"\n }\n ]\n];\nconst BookKey = createLucideIcon(\"book-key\", __iconNode$m8);\nconst __iconNode$m7 = [\n [\n \"path\",\n {\n d: \"M18 6V4a2 2 0 1 0-4 0v2\",\n key: \"1aquzs\"\n }\n ],\n [\n \"path\",\n {\n d: \"M20 15v6a1 1 0 0 1-1 1H6.5a1 1 0 0 1 0-5H20\",\n key: \"1rkj32\"\n }\n ],\n [\n \"path\",\n {\n d: \"M4 19.5v-15A2.5 2.5 0 0 1 6.5 2H10\",\n key: \"18wgow\"\n }\n ],\n [\n \"rect\",\n {\n x: \"12\",\n y: \"6\",\n width: \"8\",\n height: \"5\",\n rx: \"1\",\n key: \"73l30o\"\n }\n ]\n];\nconst BookLock = createLucideIcon(\"book-lock\", __iconNode$m7);\nconst __iconNode$m6 = [\n [\n \"path\",\n {\n d: \"M10 2v8l3-3 3 3V2\",\n key: \"sqw3rj\"\n }\n ],\n [\n \"path\",\n {\n d: \"M4 19.5v-15A2.5 2.5 0 0 1 6.5 2H19a1 1 0 0 1 1 1v18a1 1 0 0 1-1 1H6.5a1 1 0 0 1 0-5H20\",\n key: \"k3hazp\"\n }\n ]\n];\nconst BookMarked = createLucideIcon(\"book-marked\", __iconNode$m6);\nconst __iconNode$m5 = [\n [\n \"path\",\n {\n d: \"M4 19.5v-15A2.5 2.5 0 0 1 6.5 2H19a1 1 0 0 1 1 1v18a1 1 0 0 1-1 1H6.5a1 1 0 0 1 0-5H20\",\n key: \"k3hazp\"\n }\n ],\n [\n \"path\",\n {\n d: \"M9 10h6\",\n key: \"9gxzsh\"\n }\n ]\n];\nconst BookMinus = createLucideIcon(\"book-minus\", __iconNode$m5);\nconst __iconNode$m4 = [\n [\n \"path\",\n {\n d: \"M12 21V7\",\n key: \"gj6g52\"\n }\n ],\n [\n \"path\",\n {\n d: \"m16 12 2 2 4-4\",\n key: \"mdajum\"\n }\n ],\n [\n \"path\",\n {\n d: \"M22 6V4a1 1 0 0 0-1-1h-5a4 4 0 0 0-4 4 4 4 0 0 0-4-4H3a1 1 0 0 0-1 1v13a1 1 0 0 0 1 1h6a3 3 0 0 1 3 3 3 3 0 0 1 3-3h6a1 1 0 0 0 1-1v-1.3\",\n key: \"8arnkb\"\n }\n ]\n];\nconst BookOpenCheck = createLucideIcon(\"book-open-check\", __iconNode$m4);\nconst __iconNode$m3 = [\n [\n \"path\",\n {\n d: \"M12 7v14\",\n key: \"1akyts\"\n }\n ],\n [\n \"path\",\n {\n d: \"M16 12h2\",\n key: \"7q9ll5\"\n }\n ],\n [\n \"path\",\n {\n d: \"M16 8h2\",\n key: \"msurwy\"\n }\n ],\n [\n \"path\",\n {\n d: \"M3 18a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h5a4 4 0 0 1 4 4 4 4 0 0 1 4-4h5a1 1 0 0 1 1 1v13a1 1 0 0 1-1 1h-6a3 3 0 0 0-3 3 3 3 0 0 0-3-3z\",\n key: \"ruj8y\"\n }\n ],\n [\n \"path\",\n {\n d: \"M6 12h2\",\n key: \"32wvfc\"\n }\n ],\n [\n \"path\",\n {\n d: \"M6 8h2\",\n key: \"30oboj\"\n }\n ]\n];\nconst BookOpenText = createLucideIcon(\"book-open-text\", __iconNode$m3);\nconst __iconNode$m2 = [\n [\n \"path\",\n {\n d: \"M12 7v14\",\n key: \"1akyts\"\n }\n ],\n [\n \"path\",\n {\n d: \"M3 18a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h5a4 4 0 0 1 4 4 4 4 0 0 1 4-4h5a1 1 0 0 1 1 1v13a1 1 0 0 1-1 1h-6a3 3 0 0 0-3 3 3 3 0 0 0-3-3z\",\n key: \"ruj8y\"\n }\n ]\n];\nconst BookOpen = createLucideIcon(\"book-open\", __iconNode$m2);\nconst __iconNode$m1 = [\n [\n \"path\",\n {\n d: \"M12 7v6\",\n key: \"lw1j43\"\n }\n ],\n [\n \"path\",\n {\n d: \"M4 19.5v-15A2.5 2.5 0 0 1 6.5 2H19a1 1 0 0 1 1 1v18a1 1 0 0 1-1 1H6.5a1 1 0 0 1 0-5H20\",\n key: \"k3hazp\"\n }\n ],\n [\n \"path\",\n {\n d: \"M9 10h6\",\n key: \"9gxzsh\"\n }\n ]\n];\nconst BookPlus = createLucideIcon(\"book-plus\", __iconNode$m1);\nconst __iconNode$m0 = [\n [\n \"path\",\n {\n d: \"M4 19.5v-15A2.5 2.5 0 0 1 6.5 2H19a1 1 0 0 1 1 1v18a1 1 0 0 1-1 1H6.5a1 1 0 0 1 0-5H20\",\n key: \"k3hazp\"\n }\n ],\n [\n \"path\",\n {\n d: \"M8 11h8\",\n key: \"vwpz6n\"\n }\n ],\n [\n \"path\",\n {\n d: \"M8 7h6\",\n key: \"1f0q6e\"\n }\n ]\n];\nconst BookText = createLucideIcon(\"book-text\", __iconNode$m0);\nconst __iconNode$l$ = [\n [\n \"path\",\n {\n d: \"M10 13h4\",\n key: \"ytezjc\"\n }\n ],\n [\n \"path\",\n {\n d: \"M12 6v7\",\n key: \"1f6ttz\"\n }\n ],\n [\n \"path\",\n {\n d: \"M16 8V6H8v2\",\n key: \"x8j6u4\"\n }\n ],\n [\n \"path\",\n {\n d: \"M4 19.5v-15A2.5 2.5 0 0 1 6.5 2H19a1 1 0 0 1 1 1v18a1 1 0 0 1-1 1H6.5a1 1 0 0 1 0-5H20\",\n key: \"k3hazp\"\n }\n ]\n];\nconst BookType = createLucideIcon(\"book-type\", __iconNode$l$);\nconst __iconNode$l_ = [\n [\n \"path\",\n {\n d: \"M12 13V7\",\n key: \"h0r20n\"\n }\n ],\n [\n \"path\",\n {\n d: \"M18 2h1a1 1 0 0 1 1 1v18a1 1 0 0 1-1 1H6.5a1 1 0 0 1 0-5H20\",\n key: \"161d7n\"\n }\n ],\n [\n \"path\",\n {\n d: \"M4 19.5v-15A2.5 2.5 0 0 1 6.5 2\",\n key: \"1lorq7\"\n }\n ],\n [\n \"path\",\n {\n d: \"m9 10 3-3 3 3\",\n key: \"11gsxs\"\n }\n ],\n [\n \"path\",\n {\n d: \"m9 5 3-3 3 3\",\n key: \"l8vdw6\"\n }\n ]\n];\nconst BookUp2 = createLucideIcon(\"book-up-2\", __iconNode$l_);\nconst __iconNode$lZ = [\n [\n \"path\",\n {\n d: \"M12 13V7\",\n key: \"h0r20n\"\n }\n ],\n [\n \"path\",\n {\n d: \"M4 19.5v-15A2.5 2.5 0 0 1 6.5 2H19a1 1 0 0 1 1 1v18a1 1 0 0 1-1 1H6.5a1 1 0 0 1 0-5H20\",\n key: \"k3hazp\"\n }\n ],\n [\n \"path\",\n {\n d: \"m9 10 3-3 3 3\",\n key: \"11gsxs\"\n }\n ]\n];\nconst BookUp = createLucideIcon(\"book-up\", __iconNode$lZ);\nconst __iconNode$lY = [\n [\n \"path\",\n {\n d: \"m14.5 7-5 5\",\n key: \"dy991v\"\n }\n ],\n [\n \"path\",\n {\n d: \"M4 19.5v-15A2.5 2.5 0 0 1 6.5 2H19a1 1 0 0 1 1 1v18a1 1 0 0 1-1 1H6.5a1 1 0 0 1 0-5H20\",\n key: \"k3hazp\"\n }\n ],\n [\n \"path\",\n {\n d: \"m9.5 7 5 5\",\n key: \"s45iea\"\n }\n ]\n];\nconst BookX = createLucideIcon(\"book-x\", __iconNode$lY);\nconst __iconNode$lX = [\n [\n \"path\",\n {\n d: \"M15 13a3 3 0 1 0-6 0\",\n key: \"10j68g\"\n }\n ],\n [\n \"path\",\n {\n d: \"M4 19.5v-15A2.5 2.5 0 0 1 6.5 2H19a1 1 0 0 1 1 1v18a1 1 0 0 1-1 1H6.5a1 1 0 0 1 0-5H20\",\n key: \"k3hazp\"\n }\n ],\n [\n \"circle\",\n {\n cx: \"12\",\n cy: \"8\",\n r: \"2\",\n key: \"1822b1\"\n }\n ]\n];\nconst BookUser = createLucideIcon(\"book-user\", __iconNode$lX);\nconst __iconNode$lW = [\n [\n \"path\",\n {\n d: \"M4 19.5v-15A2.5 2.5 0 0 1 6.5 2H19a1 1 0 0 1 1 1v18a1 1 0 0 1-1 1H6.5a1 1 0 0 1 0-5H20\",\n key: \"k3hazp\"\n }\n ]\n];\nconst Book = createLucideIcon(\"book\", __iconNode$lW);\nconst __iconNode$lV = [\n [\n \"path\",\n {\n d: \"m19 21-7-4-7 4V5a2 2 0 0 1 2-2h10a2 2 0 0 1 2 2Z\",\n key: \"169p4p\"\n }\n ],\n [\n \"path\",\n {\n d: \"m9 10 2 2 4-4\",\n key: \"1gnqz4\"\n }\n ]\n];\nconst BookmarkCheck = createLucideIcon(\"bookmark-check\", __iconNode$lV);\nconst __iconNode$lU = [\n [\n \"path\",\n {\n d: \"m19 21-7-4-7 4V5a2 2 0 0 1 2-2h10a2 2 0 0 1 2 2v16z\",\n key: \"1fy3hk\"\n }\n ],\n [\n \"line\",\n {\n x1: \"15\",\n x2: \"9\",\n y1: \"10\",\n y2: \"10\",\n key: \"1gty7f\"\n }\n ]\n];\nconst BookmarkMinus = createLucideIcon(\"bookmark-minus\", __iconNode$lU);\nconst __iconNode$lT = [\n [\n \"path\",\n {\n d: \"m19 21-7-4-7 4V5a2 2 0 0 1 2-2h10a2 2 0 0 1 2 2v16z\",\n key: \"1fy3hk\"\n }\n ],\n [\n \"line\",\n {\n x1: \"12\",\n x2: \"12\",\n y1: \"7\",\n y2: \"13\",\n key: \"1cppfj\"\n }\n ],\n [\n \"line\",\n {\n x1: \"15\",\n x2: \"9\",\n y1: \"10\",\n y2: \"10\",\n key: \"1gty7f\"\n }\n ]\n];\nconst BookmarkPlus = createLucideIcon(\"bookmark-plus\", __iconNode$lT);\nconst __iconNode$lS = [\n [\n \"path\",\n {\n d: \"m19 21-7-4-7 4V5a2 2 0 0 1 2-2h10a2 2 0 0 1 2 2Z\",\n key: \"169p4p\"\n }\n ],\n [\n \"path\",\n {\n d: \"m14.5 7.5-5 5\",\n key: \"3lb6iw\"\n }\n ],\n [\n \"path\",\n {\n d: \"m9.5 7.5 5 5\",\n key: \"ko136h\"\n }\n ]\n];\nconst BookmarkX = createLucideIcon(\"bookmark-x\", __iconNode$lS);\nconst __iconNode$lR = [\n [\n \"path\",\n {\n d: \"m19 21-7-4-7 4V5a2 2 0 0 1 2-2h10a2 2 0 0 1 2 2v16z\",\n key: \"1fy3hk\"\n }\n ]\n];\nconst Bookmark = createLucideIcon(\"bookmark\", __iconNode$lR);\nconst __iconNode$lQ = [\n [\n \"path\",\n {\n d: \"M4 9V5a2 2 0 0 1 2-2h12a2 2 0 0 1 2 2v4\",\n key: \"vvzvr1\"\n }\n ],\n [\n \"path\",\n {\n d: \"M8 8v1\",\n key: \"xcqmfk\"\n }\n ],\n [\n \"path\",\n {\n d: \"M12 8v1\",\n key: \"1rj8u4\"\n }\n ],\n [\n \"path\",\n {\n d: \"M16 8v1\",\n key: \"1q12zr\"\n }\n ],\n [\n \"rect\",\n {\n width: \"20\",\n height: \"12\",\n x: \"2\",\n y: \"9\",\n rx: \"2\",\n key: \"igpb89\"\n }\n ],\n [\n \"circle\",\n {\n cx: \"8\",\n cy: \"15\",\n r: \"2\",\n key: \"fa4a8s\"\n }\n ],\n [\n \"circle\",\n {\n cx: \"16\",\n cy: \"15\",\n r: \"2\",\n key: \"14c3ya\"\n }\n ]\n];\nconst BoomBox = createLucideIcon(\"boom-box\", __iconNode$lQ);\nconst __iconNode$lP = [\n [\n \"path\",\n {\n d: \"M12 6V2H8\",\n key: \"1155em\"\n }\n ],\n [\n \"path\",\n {\n d: \"m8 18-4 4V8a2 2 0 0 1 2-2h12a2 2 0 0 1 2 2v8a2 2 0 0 1-2 2Z\",\n key: \"w2lp3e\"\n }\n ],\n [\n \"path\",\n {\n d: \"M2 12h2\",\n key: \"1t8f8n\"\n }\n ],\n [\n \"path\",\n {\n d: \"M9 11v2\",\n key: \"1ueba0\"\n }\n ],\n [\n \"path\",\n {\n d: \"M15 11v2\",\n key: \"i11awn\"\n }\n ],\n [\n \"path\",\n {\n d: \"M20 12h2\",\n key: \"1q8mjw\"\n }\n ]\n];\nconst BotMessageSquare = createLucideIcon(\"bot-message-square\", __iconNode$lP);\nconst __iconNode$lO = [\n [\n \"path\",\n {\n d: \"M13.67 8H18a2 2 0 0 1 2 2v4.33\",\n key: \"7az073\"\n }\n ],\n [\n \"path\",\n {\n d: \"M2 14h2\",\n key: \"vft8re\"\n }\n ],\n [\n \"path\",\n {\n d: \"M20 14h2\",\n key: \"4cs60a\"\n }\n ],\n [\n \"path\",\n {\n d: \"M22 22 2 2\",\n key: \"1r8tn9\"\n }\n ],\n [\n \"path\",\n {\n d: \"M8 8H6a2 2 0 0 0-2 2v8a2 2 0 0 0 2 2h12a2 2 0 0 0 1.414-.586\",\n key: \"s09a7a\"\n }\n ],\n [\n \"path\",\n {\n d: \"M9 13v2\",\n key: \"rq6x2g\"\n }\n ],\n [\n \"path\",\n {\n d: \"M9.67 4H12v2.33\",\n key: \"110xot\"\n }\n ]\n];\nconst BotOff = createLucideIcon(\"bot-off\", __iconNode$lO);\nconst __iconNode$lN = [\n [\n \"path\",\n {\n d: \"M12 8V4H8\",\n key: \"hb8ula\"\n }\n ],\n [\n \"rect\",\n {\n width: \"16\",\n height: \"12\",\n x: \"4\",\n y: \"8\",\n rx: \"2\",\n key: \"enze0r\"\n }\n ],\n [\n \"path\",\n {\n d: \"M2 14h2\",\n key: \"vft8re\"\n }\n ],\n [\n \"path\",\n {\n d: \"M20 14h2\",\n key: \"4cs60a\"\n }\n ],\n [\n \"path\",\n {\n d: \"M15 13v2\",\n key: \"1xurst\"\n }\n ],\n [\n \"path\",\n {\n d: \"M9 13v2\",\n key: \"rq6x2g\"\n }\n ]\n];\nconst Bot = createLucideIcon(\"bot\", __iconNode$lN);\nconst __iconNode$lM = [\n [\n \"path\",\n {\n d: \"M10 3a1 1 0 0 1 1-1h2a1 1 0 0 1 1 1v2a6 6 0 0 0 1.2 3.6l.6.8A6 6 0 0 1 17 13v8a1 1 0 0 1-1 1H8a1 1 0 0 1-1-1v-8a6 6 0 0 1 1.2-3.6l.6-.8A6 6 0 0 0 10 5z\",\n key: \"blqgoc\"\n }\n ],\n [\n \"path\",\n {\n d: \"M17 13h-4a1 1 0 0 0-1 1v3a1 1 0 0 0 1 1h4\",\n key: \"43jbee\"\n }\n ]\n];\nconst BottleWine = createLucideIcon(\"bottle-wine\", __iconNode$lM);\nconst __iconNode$lL = [\n [\n \"path\",\n {\n d: \"M17 3h4v4\",\n key: \"19p9u1\"\n }\n ],\n [\n \"path\",\n {\n d: \"M18.575 11.082a13 13 0 0 1 1.048 9.027 1.17 1.17 0 0 1-1.914.597L14 17\",\n key: \"12t3w9\"\n }\n ],\n [\n \"path\",\n {\n d: \"M7 10 3.29 6.29a1.17 1.17 0 0 1 .6-1.91 13 13 0 0 1 9.03 1.05\",\n key: \"ogng5l\"\n }\n ],\n [\n \"path\",\n {\n d: \"M7 14a1.7 1.7 0 0 0-1.207.5l-2.646 2.646A.5.5 0 0 0 3.5 18H5a1 1 0 0 1 1 1v1.5a.5.5 0 0 0 .854.354L9.5 18.207A1.7 1.7 0 0 0 10 17v-2a1 1 0 0 0-1-1z\",\n key: \"8v3fy2\"\n }\n ],\n [\n \"path\",\n {\n d: \"M9.707 14.293 21 3\",\n key: \"ydm3bn\"\n }\n ]\n];\nconst BowArrow = createLucideIcon(\"bow-arrow\", __iconNode$lL);\nconst __iconNode$lK = [\n [\n \"path\",\n {\n d: \"M21 8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73l7 4a2 2 0 0 0 2 0l7-4A2 2 0 0 0 21 16Z\",\n key: \"hh9hay\"\n }\n ],\n [\n \"path\",\n {\n d: \"m3.3 7 8.7 5 8.7-5\",\n key: \"g66t2b\"\n }\n ],\n [\n \"path\",\n {\n d: \"M12 22V12\",\n key: \"d0xqtd\"\n }\n ]\n];\nconst Box = createLucideIcon(\"box\", __iconNode$lK);\nconst __iconNode$lJ = [\n [\n \"path\",\n {\n d: \"M2.97 12.92A2 2 0 0 0 2 14.63v3.24a2 2 0 0 0 .97 1.71l3 1.8a2 2 0 0 0 2.06 0L12 19v-5.5l-5-3-4.03 2.42Z\",\n key: \"lc1i9w\"\n }\n ],\n [\n \"path\",\n {\n d: \"m7 16.5-4.74-2.85\",\n key: \"1o9zyk\"\n }\n ],\n [\n \"path\",\n {\n d: \"m7 16.5 5-3\",\n key: \"va8pkn\"\n }\n ],\n [\n \"path\",\n {\n d: \"M7 16.5v5.17\",\n key: \"jnp8gn\"\n }\n ],\n [\n \"path\",\n {\n d: \"M12 13.5V19l3.97 2.38a2 2 0 0 0 2.06 0l3-1.8a2 2 0 0 0 .97-1.71v-3.24a2 2 0 0 0-.97-1.71L17 10.5l-5 3Z\",\n key: \"8zsnat\"\n }\n ],\n [\n \"path\",\n {\n d: \"m17 16.5-5-3\",\n key: \"8arw3v\"\n }\n ],\n [\n \"path\",\n {\n d: \"m17 16.5 4.74-2.85\",\n key: \"8rfmw\"\n }\n ],\n [\n \"path\",\n {\n d: \"M17 16.5v5.17\",\n key: \"k6z78m\"\n }\n ],\n [\n \"path\",\n {\n d: \"M7.97 4.42A2 2 0 0 0 7 6.13v4.37l5 3 5-3V6.13a2 2 0 0 0-.97-1.71l-3-1.8a2 2 0 0 0-2.06 0l-3 1.8Z\",\n key: \"1xygjf\"\n }\n ],\n [\n \"path\",\n {\n d: \"M12 8 7.26 5.15\",\n key: \"1vbdud\"\n }\n ],\n [\n \"path\",\n {\n d: \"m12 8 4.74-2.85\",\n key: \"3rx089\"\n }\n ],\n [\n \"path\",\n {\n d: \"M12 13.5V8\",\n key: \"1io7kd\"\n }\n ]\n];\nconst Boxes = createLucideIcon(\"boxes\", __iconNode$lJ);\nconst __iconNode$lI = [\n [\n \"path\",\n {\n d: \"M8 3H7a2 2 0 0 0-2 2v5a2 2 0 0 1-2 2 2 2 0 0 1 2 2v5c0 1.1.9 2 2 2h1\",\n key: \"ezmyqa\"\n }\n ],\n [\n \"path\",\n {\n d: \"M16 21h1a2 2 0 0 0 2-2v-5c0-1.1.9-2 2-2a2 2 0 0 1-2-2V5a2 2 0 0 0-2-2h-1\",\n key: \"e1hn23\"\n }\n ]\n];\nconst Braces = createLucideIcon(\"braces\", __iconNode$lI);\nconst __iconNode$lH = [\n [\n \"path\",\n {\n d: \"M16 3h3a1 1 0 0 1 1 1v16a1 1 0 0 1-1 1h-3\",\n key: \"1kt8lf\"\n }\n ],\n [\n \"path\",\n {\n d: \"M8 21H5a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h3\",\n key: \"gduv9\"\n }\n ]\n];\nconst Brackets = createLucideIcon(\"brackets\", __iconNode$lH);\nconst __iconNode$lG = [\n [\n \"path\",\n {\n d: \"M12 5a3 3 0 1 0-5.997.125 4 4 0 0 0-2.526 5.77 4 4 0 0 0 .556 6.588A4 4 0 1 0 12 18Z\",\n key: \"l5xja\"\n }\n ],\n [\n \"path\",\n {\n d: \"M9 13a4.5 4.5 0 0 0 3-4\",\n key: \"10igwf\"\n }\n ],\n [\n \"path\",\n {\n d: \"M6.003 5.125A3 3 0 0 0 6.401 6.5\",\n key: \"105sqy\"\n }\n ],\n [\n \"path\",\n {\n d: \"M3.477 10.896a4 4 0 0 1 .585-.396\",\n key: \"ql3yin\"\n }\n ],\n [\n \"path\",\n {\n d: \"M6 18a4 4 0 0 1-1.967-.516\",\n key: \"2e4loj\"\n }\n ],\n [\n \"path\",\n {\n d: \"M12 13h4\",\n key: \"1ku699\"\n }\n ],\n [\n \"path\",\n {\n d: \"M12 18h6a2 2 0 0 1 2 2v1\",\n key: \"105ag5\"\n }\n ],\n [\n \"path\",\n {\n d: \"M12 8h8\",\n key: \"1lhi5i\"\n }\n ],\n [\n \"path\",\n {\n d: \"M16 8V5a2 2 0 0 1 2-2\",\n key: \"u6izg6\"\n }\n ],\n [\n \"circle\",\n {\n cx: \"16\",\n cy: \"13\",\n r: \".5\",\n key: \"ry7gng\"\n }\n ],\n [\n \"circle\",\n {\n cx: \"18\",\n cy: \"3\",\n r: \".5\",\n key: \"1aiba7\"\n }\n ],\n [\n \"circle\",\n {\n cx: \"20\",\n cy: \"21\",\n r: \".5\",\n key: \"yhc1fs\"\n }\n ],\n [\n \"circle\",\n {\n cx: \"20\",\n cy: \"8\",\n r: \".5\",\n key: \"1e43v0\"\n }\n ]\n];\nconst BrainCircuit = createLucideIcon(\"brain-circuit\", __iconNode$lG);\nconst __iconNode$lF = [\n [\n \"path\",\n {\n d: \"m10.852 14.772-.383.923\",\n key: \"11vil6\"\n }\n ],\n [\n \"path\",\n {\n d: \"m10.852 9.228-.383-.923\",\n key: \"1fjppe\"\n }\n ],\n [\n \"path\",\n {\n d: \"m13.148 14.772.382.924\",\n key: \"je3va1\"\n }\n ],\n [\n \"path\",\n {\n d: \"m13.531 8.305-.383.923\",\n key: \"18epck\"\n }\n ],\n [\n \"path\",\n {\n d: \"m14.772 10.852.923-.383\",\n key: \"k9m8cz\"\n }\n ],\n [\n \"path\",\n {\n d: \"m14.772 13.148.923.383\",\n key: \"1xvhww\"\n }\n ],\n [\n \"path\",\n {\n d: \"M17.598 6.5A3 3 0 1 0 12 5a3 3 0 0 0-5.63-1.446 3 3 0 0 0-.368 1.571 4 4 0 0 0-2.525 5.771\",\n key: \"jcbbz1\"\n }\n ],\n [\n \"path\",\n {\n d: \"M17.998 5.125a4 4 0 0 1 2.525 5.771\",\n key: \"1kkn7e\"\n }\n ],\n [\n \"path\",\n {\n d: \"M19.505 10.294a4 4 0 0 1-1.5 7.706\",\n key: \"18bmuc\"\n }\n ],\n [\n \"path\",\n {\n d: \"M4.032 17.483A4 4 0 0 0 11.464 20c.18-.311.892-.311 1.072 0a4 4 0 0 0 7.432-2.516\",\n key: \"uozx0d\"\n }\n ],\n [\n \"path\",\n {\n d: \"M4.5 10.291A4 4 0 0 0 6 18\",\n key: \"whdemb\"\n }\n ],\n [\n \"path\",\n {\n d: \"M6.002 5.125a3 3 0 0 0 .4 1.375\",\n key: \"1kqy2g\"\n }\n ],\n [\n \"path\",\n {\n d: \"m9.228 10.852-.923-.383\",\n key: \"1wtb30\"\n }\n ],\n [\n \"path\",\n {\n d: \"m9.228 13.148-.923.383\",\n key: \"1a830x\"\n }\n ],\n [\n \"circle\",\n {\n cx: \"12\",\n cy: \"12\",\n r: \"3\",\n key: \"1v7zrd\"\n }\n ]\n];\nconst BrainCog = createLucideIcon(\"brain-cog\", __iconNode$lF);\nconst __iconNode$lE = [\n [\n \"path\",\n {\n d: \"M12 5a3 3 0 1 0-5.997.125 4 4 0 0 0-2.526 5.77 4 4 0 0 0 .556 6.588A4 4 0 1 0 12 18Z\",\n key: \"l5xja\"\n }\n ],\n [\n \"path\",\n {\n d: \"M12 5a3 3 0 1 1 5.997.125 4 4 0 0 1 2.526 5.77 4 4 0 0 1-.556 6.588A4 4 0 1 1 12 18Z\",\n key: \"ep3f8r\"\n }\n ],\n [\n \"path\",\n {\n d: \"M15 13a4.5 4.5 0 0 1-3-4 4.5 4.5 0 0 1-3 4\",\n key: \"1p4c4q\"\n }\n ],\n [\n \"path\",\n {\n d: \"M17.599 6.5a3 3 0 0 0 .399-1.375\",\n key: \"tmeiqw\"\n }\n ],\n [\n \"path\",\n {\n d: \"M6.003 5.125A3 3 0 0 0 6.401 6.5\",\n key: \"105sqy\"\n }\n ],\n [\n \"path\",\n {\n d: \"M3.477 10.896a4 4 0 0 1 .585-.396\",\n key: \"ql3yin\"\n }\n ],\n [\n \"path\",\n {\n d: \"M19.938 10.5a4 4 0 0 1 .585.396\",\n key: \"1qfode\"\n }\n ],\n [\n \"path\",\n {\n d: \"M6 18a4 4 0 0 1-1.967-.516\",\n key: \"2e4loj\"\n }\n ],\n [\n \"path\",\n {\n d: \"M19.967 17.484A4 4 0 0 1 18 18\",\n key: \"159ez6\"\n }\n ]\n];\nconst Brain = createLucideIcon(\"brain\", __iconNode$lE);\nconst __iconNode$lD = [\n [\n \"path\",\n {\n d: \"M16 3v2.107\",\n key: \"gq8xun\"\n }\n ],\n [\n \"path\",\n {\n d: \"M17 9c1 3 2.5 3.5 3.5 4.5A5 5 0 0 1 22 17a5 5 0 0 1-10 0c0-.3 0-.6.1-.9a2 2 0 1 0 3.3-2C13 11.5 16 9 17 9\",\n key: \"1l2pih\"\n }\n ],\n [\n \"path\",\n {\n d: \"M21 8.274V5a2 2 0 0 0-2-2H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h3.938\",\n key: \"jrnqjp\"\n }\n ],\n [\n \"path\",\n {\n d: \"M3 15h5.253\",\n key: \"xqg7rb\"\n }\n ],\n [\n \"path\",\n {\n d: \"M3 9h8.228\",\n key: \"1ppb70\"\n }\n ],\n [\n \"path\",\n {\n d: \"M8 15v6\",\n key: \"1stoo3\"\n }\n ],\n [\n \"path\",\n {\n d: \"M8 3v6\",\n key: \"vlvjmk\"\n }\n ]\n];\nconst BrickWallFire = createLucideIcon(\"brick-wall-fire\", __iconNode$lD);\nconst __iconNode$lC = [\n [\n \"rect\",\n {\n width: \"18\",\n height: \"18\",\n x: \"3\",\n y: \"3\",\n rx: \"2\",\n key: \"afitv7\"\n }\n ],\n [\n \"path\",\n {\n d: \"M12 9v6\",\n key: \"199k2o\"\n }\n ],\n [\n \"path\",\n {\n d: \"M16 15v6\",\n key: \"8rj2es\"\n }\n ],\n [\n \"path\",\n {\n d: \"M16 3v6\",\n key: \"1j6rpj\"\n }\n ],\n [\n \"path\",\n {\n d: \"M3 15h18\",\n key: \"5xshup\"\n }\n ],\n [\n \"path\",\n {\n d: \"M3 9h18\",\n key: \"1pudct\"\n }\n ],\n [\n \"path\",\n {\n d: \"M8 15v6\",\n key: \"1stoo3\"\n }\n ],\n [\n \"path\",\n {\n d: \"M8 3v6\",\n key: \"vlvjmk\"\n }\n ]\n];\nconst BrickWall = createLucideIcon(\"brick-wall\", __iconNode$lC);\nconst __iconNode$lB = [\n [\n \"path\",\n {\n d: \"M12 12h.01\",\n key: \"1mp3jc\"\n }\n ],\n [\n \"path\",\n {\n d: \"M16 6V4a2 2 0 0 0-2-2h-4a2 2 0 0 0-2 2v2\",\n key: \"1ksdt3\"\n }\n ],\n [\n \"path\",\n {\n d: \"M22 13a18.15 18.15 0 0 1-20 0\",\n key: \"12hx5q\"\n }\n ],\n [\n \"rect\",\n {\n width: \"20\",\n height: \"14\",\n x: \"2\",\n y: \"6\",\n rx: \"2\",\n key: \"i6l2r4\"\n }\n ]\n];\nconst BriefcaseBusiness = createLucideIcon(\"briefcase-business\", __iconNode$lB);\nconst __iconNode$lA = [\n [\n \"path\",\n {\n d: \"M10 20v2\",\n key: \"1n8e1g\"\n }\n ],\n [\n \"path\",\n {\n d: \"M14 20v2\",\n key: \"1lq872\"\n }\n ],\n [\n \"path\",\n {\n d: \"M18 20v2\",\n key: \"10uadw\"\n }\n ],\n [\n \"path\",\n {\n d: \"M21 20H3\",\n key: \"kdqkdp\"\n }\n ],\n [\n \"path\",\n {\n d: \"M6 20v2\",\n key: \"a9bc87\"\n }\n ],\n [\n \"path\",\n {\n d: \"M8 16V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v12\",\n key: \"17n9tx\"\n }\n ],\n [\n \"rect\",\n {\n x: \"4\",\n y: \"6\",\n width: \"16\",\n height: \"10\",\n rx: \"2\",\n key: \"1097i5\"\n }\n ]\n];\nconst BriefcaseConveyorBelt = createLucideIcon(\"briefcase-conveyor-belt\", __iconNode$lA);\nconst __iconNode$lz = [\n [\n \"path\",\n {\n d: \"M12 11v4\",\n key: \"a6ujw6\"\n }\n ],\n [\n \"path\",\n {\n d: \"M14 13h-4\",\n key: \"1pl8zg\"\n }\n ],\n [\n \"path\",\n {\n d: \"M16 6V4a2 2 0 0 0-2-2h-4a2 2 0 0 0-2 2v2\",\n key: \"1ksdt3\"\n }\n ],\n [\n \"path\",\n {\n d: \"M18 6v14\",\n key: \"1mu4gy\"\n }\n ],\n [\n \"path\",\n {\n d: \"M6 6v14\",\n key: \"1s15cj\"\n }\n ],\n [\n \"rect\",\n {\n width: \"20\",\n height: \"14\",\n x: \"2\",\n y: \"6\",\n rx: \"2\",\n key: \"i6l2r4\"\n }\n ]\n];\nconst BriefcaseMedical = createLucideIcon(\"briefcase-medical\", __iconNode$lz);\nconst __iconNode$ly = [\n [\n \"path\",\n {\n d: \"M16 20V4a2 2 0 0 0-2-2h-4a2 2 0 0 0-2 2v16\",\n key: \"jecpp\"\n }\n ],\n [\n \"rect\",\n {\n width: \"20\",\n height: \"14\",\n x: \"2\",\n y: \"6\",\n rx: \"2\",\n key: \"i6l2r4\"\n }\n ]\n];\nconst Briefcase = createLucideIcon(\"briefcase\", __iconNode$ly);\nconst __iconNode$lx = [\n [\n \"rect\",\n {\n x: \"8\",\n y: \"8\",\n width: \"8\",\n height: \"8\",\n rx: \"2\",\n key: \"yj20xf\"\n }\n ],\n [\n \"path\",\n {\n d: \"M4 10a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2\",\n key: \"1ltk23\"\n }\n ],\n [\n \"path\",\n {\n d: \"M14 20a2 2 0 0 0 2 2h4a2 2 0 0 0 2-2v-4a2 2 0 0 0-2-2\",\n key: \"1q24h9\"\n }\n ]\n];\nconst BringToFront = createLucideIcon(\"bring-to-front\", __iconNode$lx);\nconst __iconNode$lw = [\n [\n \"path\",\n {\n d: \"m16 22-1-4\",\n key: \"1ow2iv\"\n }\n ],\n [\n \"path\",\n {\n d: \"M19 13.99a1 1 0 0 0 1-1V12a2 2 0 0 0-2-2h-3a1 1 0 0 1-1-1V4a2 2 0 0 0-4 0v5a1 1 0 0 1-1 1H6a2 2 0 0 0-2 2v.99a1 1 0 0 0 1 1\",\n key: \"iw8jdu\"\n }\n ],\n [\n \"path\",\n {\n d: \"M5 14h14l1.973 6.767A1 1 0 0 1 20 22H4a1 1 0 0 1-.973-1.233z\",\n key: \"1soew8\"\n }\n ],\n [\n \"path\",\n {\n d: \"m8 22 1-4\",\n key: \"s3unb\"\n }\n ]\n];\nconst BrushCleaning = createLucideIcon(\"brush-cleaning\", __iconNode$lw);\nconst __iconNode$lv = [\n [\n \"path\",\n {\n d: \"m11 10 3 3\",\n key: \"fzmg1i\"\n }\n ],\n [\n \"path\",\n {\n d: \"M6.5 21A3.5 3.5 0 1 0 3 17.5a2.62 2.62 0 0 1-.708 1.792A1 1 0 0 0 3 21z\",\n key: \"p4q2r7\"\n }\n ],\n [\n \"path\",\n {\n d: \"M9.969 17.031 21.378 5.624a1 1 0 0 0-3.002-3.002L6.967 14.031\",\n key: \"wy6l02\"\n }\n ]\n];\nconst Brush = createLucideIcon(\"brush\", __iconNode$lv);\nconst __iconNode$lu = [\n [\n \"path\",\n {\n d: \"M7.2 14.8a2 2 0 0 1 2 2\",\n key: \"1tw9gg\"\n }\n ],\n [\n \"circle\",\n {\n cx: \"18.5\",\n cy: \"8.5\",\n r: \"3.5\",\n key: \"1wadoa\"\n }\n ],\n [\n \"circle\",\n {\n cx: \"7.5\",\n cy: \"16.5\",\n r: \"5.5\",\n key: \"6mdt3g\"\n }\n ],\n [\n \"circle\",\n {\n cx: \"7.5\",\n cy: \"4.5\",\n r: \"2.5\",\n key: \"637s54\"\n }\n ]\n];\nconst Bubbles = createLucideIcon(\"bubbles\", __iconNode$lu);\nconst __iconNode$lt = [\n [\n \"path\",\n {\n d: \"M15 7.13V6a3 3 0 0 0-5.14-2.1L8 2\",\n key: \"vl8zik\"\n }\n ],\n [\n \"path\",\n {\n d: \"M14.12 3.88 16 2\",\n key: \"qol33r\"\n }\n ],\n [\n \"path\",\n {\n d: \"M22 13h-4v-2a4 4 0 0 0-4-4h-1.3\",\n key: \"1ou0bd\"\n }\n ],\n [\n \"path\",\n {\n d: \"M20.97 5c0 2.1-1.6 3.8-3.5 4\",\n key: \"18gb23\"\n }\n ],\n [\n \"path\",\n {\n d: \"m2 2 20 20\",\n key: \"1ooewy\"\n }\n ],\n [\n \"path\",\n {\n d: \"M7.7 7.7A4 4 0 0 0 6 11v3a6 6 0 0 0 11.13 3.13\",\n key: \"1njkjs\"\n }\n ],\n [\n \"path\",\n {\n d: \"M12 20v-8\",\n key: \"i3yub9\"\n }\n ],\n [\n \"path\",\n {\n d: \"M6 13H2\",\n key: \"82j7cp\"\n }\n ],\n [\n \"path\",\n {\n d: \"M3 21c0-2.1 1.7-3.9 3.8-4\",\n key: \"4p0ekp\"\n }\n ]\n];\nconst BugOff = createLucideIcon(\"bug-off\", __iconNode$lt);\nconst __iconNode$ls = [\n [\n \"path\",\n {\n d: \"M12.765 21.522a.5.5 0 0 1-.765-.424v-8.196a.5.5 0 0 1 .765-.424l5.878 3.674a1 1 0 0 1 0 1.696z\",\n key: \"17shqo\"\n }\n ],\n [\n \"path\",\n {\n d: \"M14.12 3.88 16 2\",\n key: \"qol33r\"\n }\n ],\n [\n \"path\",\n {\n d: \"M18 11a4 4 0 0 0-4-4h-4a4 4 0 0 0-4 4v3a6.1 6.1 0 0 0 2 4.5\",\n key: \"1tjixy\"\n }\n ],\n [\n \"path\",\n {\n d: \"M20.97 5c0 2.1-1.6 3.8-3.5 4\",\n key: \"18gb23\"\n }\n ],\n [\n \"path\",\n {\n d: \"M3 21c0-2.1 1.7-3.9 3.8-4\",\n key: \"4p0ekp\"\n }\n ],\n [\n \"path\",\n {\n d: \"M6 13H2\",\n key: \"82j7cp\"\n }\n ],\n [\n \"path\",\n {\n d: \"M6.53 9C4.6 8.8 3 7.1 3 5\",\n key: \"32zzws\"\n }\n ],\n [\n \"path\",\n {\n d: \"m8 2 1.88 1.88\",\n key: \"fmnt4t\"\n }\n ],\n [\n \"path\",\n {\n d: \"M9 7.13v-1a3.003 3.003 0 1 1 6 0v1\",\n key: \"d7y7pr\"\n }\n ]\n];\nconst BugPlay = createLucideIcon(\"bug-play\", __iconNode$ls);\nconst __iconNode$lr = [\n [\n \"path\",\n {\n d: \"m8 2 1.88 1.88\",\n key: \"fmnt4t\"\n }\n ],\n [\n \"path\",\n {\n d: \"M14.12 3.88 16 2\",\n key: \"qol33r\"\n }\n ],\n [\n \"path\",\n {\n d: \"M9 7.13v-1a3.003 3.003 0 1 1 6 0v1\",\n key: \"d7y7pr\"\n }\n ],\n [\n \"path\",\n {\n d: \"M12 20c-3.3 0-6-2.7-6-6v-3a4 4 0 0 1 4-4h4a4 4 0 0 1 4 4v3c0 3.3-2.7 6-6 6\",\n key: \"xs1cw7\"\n }\n ],\n [\n \"path\",\n {\n d: \"M12 20v-9\",\n key: \"1qisl0\"\n }\n ],\n [\n \"path\",\n {\n d: \"M6.53 9C4.6 8.8 3 7.1 3 5\",\n key: \"32zzws\"\n }\n ],\n [\n \"path\",\n {\n d: \"M6 13H2\",\n key: \"82j7cp\"\n }\n ],\n [\n \"path\",\n {\n d: \"M3 21c0-2.1 1.7-3.9 3.8-4\",\n key: \"4p0ekp\"\n }\n ],\n [\n \"path\",\n {\n d: \"M20.97 5c0 2.1-1.6 3.8-3.5 4\",\n key: \"18gb23\"\n }\n ],\n [\n \"path\",\n {\n d: \"M22 13h-4\",\n key: \"1jl80f\"\n }\n ],\n [\n \"path\",\n {\n d: \"M17.2 17c2.1.1 3.8 1.9 3.8 4\",\n key: \"k3fwyw\"\n }\n ]\n];\nconst Bug = createLucideIcon(\"bug\", __iconNode$lr);\nconst __iconNode$lq = [\n [\n \"path\",\n {\n d: \"M6 22V4a2 2 0 0 1 2-2h8a2 2 0 0 1 2 2v18Z\",\n key: \"1b4qmf\"\n }\n ],\n [\n \"path\",\n {\n d: \"M6 12H4a2 2 0 0 0-2 2v6a2 2 0 0 0 2 2h2\",\n key: \"i71pzd\"\n }\n ],\n [\n \"path\",\n {\n d: \"M18 9h2a2 2 0 0 1 2 2v9a2 2 0 0 1-2 2h-2\",\n key: \"10jefs\"\n }\n ],\n [\n \"path\",\n {\n d: \"M10 6h4\",\n key: \"1itunk\"\n }\n ],\n [\n \"path\",\n {\n d: \"M10 10h4\",\n key: \"tcdvrf\"\n }\n ],\n [\n \"path\",\n {\n d: \"M10 14h4\",\n key: \"kelpxr\"\n }\n ],\n [\n \"path\",\n {\n d: \"M10 18h4\",\n key: \"1ulq68\"\n }\n ]\n];\nconst Building2 = createLucideIcon(\"building-2\", __iconNode$lq);\nconst __iconNode$lp = [\n [\n \"rect\",\n {\n width: \"16\",\n height: \"20\",\n x: \"4\",\n y: \"2\",\n rx: \"2\",\n ry: \"2\",\n key: \"76otgf\"\n }\n ],\n [\n \"path\",\n {\n d: \"M9 22v-4h6v4\",\n key: \"r93iot\"\n }\n ],\n [\n \"path\",\n {\n d: \"M8 6h.01\",\n key: \"1dz90k\"\n }\n ],\n [\n \"path\",\n {\n d: \"M16 6h.01\",\n key: \"1x0f13\"\n }\n ],\n [\n \"path\",\n {\n d: \"M12 6h.01\",\n key: \"1vi96p\"\n }\n ],\n [\n \"path\",\n {\n d: \"M12 10h.01\",\n key: \"1nrarc\"\n }\n ],\n [\n \"path\",\n {\n d: \"M12 14h.01\",\n key: \"1etili\"\n }\n ],\n [\n \"path\",\n {\n d: \"M16 10h.01\",\n key: \"1m94wz\"\n }\n ],\n [\n \"path\",\n {\n d: \"M16 14h.01\",\n key: \"1gbofw\"\n }\n ],\n [\n \"path\",\n {\n d: \"M8 10h.01\",\n key: \"19clt8\"\n }\n ],\n [\n \"path\",\n {\n d: \"M8 14h.01\",\n key: \"6423bh\"\n }\n ]\n];\nconst Building = createLucideIcon(\"building\", __iconNode$lp);\nconst __iconNode$lo = [\n [\n \"path\",\n {\n d: \"M4 6 2 7\",\n key: \"1mqr15\"\n }\n ],\n [\n \"path\",\n {\n d: \"M10 6h4\",\n key: \"1itunk\"\n }\n ],\n [\n \"path\",\n {\n d: \"m22 7-2-1\",\n key: \"1umjhc\"\n }\n ],\n [\n \"rect\",\n {\n width: \"16\",\n height: \"16\",\n x: \"4\",\n y: \"3\",\n rx: \"2\",\n key: \"1wxw4b\"\n }\n ],\n [\n \"path\",\n {\n d: \"M4 11h16\",\n key: \"mpoxn0\"\n }\n ],\n [\n \"path\",\n {\n d: \"M8 15h.01\",\n key: \"a7atzg\"\n }\n ],\n [\n \"path\",\n {\n d: \"M16 15h.01\",\n key: \"rnfrdf\"\n }\n ],\n [\n \"path\",\n {\n d: \"M6 19v2\",\n key: \"1loha6\"\n }\n ],\n [\n \"path\",\n {\n d: \"M18 21v-2\",\n key: \"sqyl04\"\n }\n ]\n];\nconst BusFront = createLucideIcon(\"bus-front\", __iconNode$lo);\nconst __iconNode$ln = [\n [\n \"path\",\n {\n d: \"M8 6v6\",\n key: \"18i7km\"\n }\n ],\n [\n \"path\",\n {\n d: \"M15 6v6\",\n key: \"1sg6z9\"\n }\n ],\n [\n \"path\",\n {\n d: \"M2 12h19.6\",\n key: \"de5uta\"\n }\n ],\n [\n \"path\",\n {\n d: \"M18 18h3s.5-1.7.8-2.8c.1-.4.2-.8.2-1.2 0-.4-.1-.8-.2-1.2l-1.4-5C20.1 6.8 19.1 6 18 6H4a2 2 0 0 0-2 2v10h3\",\n key: \"1wwztk\"\n }\n ],\n [\n \"circle\",\n {\n cx: \"7\",\n cy: \"18\",\n r: \"2\",\n key: \"19iecd\"\n }\n ],\n [\n \"path\",\n {\n d: \"M9 18h5\",\n key: \"lrx6i\"\n }\n ],\n [\n \"circle\",\n {\n cx: \"16\",\n cy: \"18\",\n r: \"2\",\n key: \"1v4tcr\"\n }\n ]\n];\nconst Bus = createLucideIcon(\"bus\", __iconNode$ln);\nconst __iconNode$lm = [\n [\n \"path\",\n {\n d: \"M10 3h.01\",\n key: \"lbucoy\"\n }\n ],\n [\n \"path\",\n {\n d: \"M14 2h.01\",\n key: \"1k8aa1\"\n }\n ],\n [\n \"path\",\n {\n d: \"m2 9 20-5\",\n key: \"1kz0j5\"\n }\n ],\n [\n \"path\",\n {\n d: \"M12 12V6.5\",\n key: \"1vbrij\"\n }\n ],\n [\n \"rect\",\n {\n width: \"16\",\n height: \"10\",\n x: \"4\",\n y: \"12\",\n rx: \"3\",\n key: \"if91er\"\n }\n ],\n [\n \"path\",\n {\n d: \"M9 12v5\",\n key: \"3anwtq\"\n }\n ],\n [\n \"path\",\n {\n d: \"M15 12v5\",\n key: \"5xh3zn\"\n }\n ],\n [\n \"path\",\n {\n d: \"M4 17h16\",\n key: \"g4d7ey\"\n }\n ]\n];\nconst CableCar = createLucideIcon(\"cable-car\", __iconNode$lm);\nconst __iconNode$ll = [\n [\n \"path\",\n {\n d: \"M17 21v-2a1 1 0 0 1-1-1v-1a2 2 0 0 1 2-2h2a2 2 0 0 1 2 2v1a1 1 0 0 1-1 1\",\n key: \"10bnsj\"\n }\n ],\n [\n \"path\",\n {\n d: \"M19 15V6.5a1 1 0 0 0-7 0v11a1 1 0 0 1-7 0V9\",\n key: \"1eqmu1\"\n }\n ],\n [\n \"path\",\n {\n d: \"M21 21v-2h-4\",\n key: \"14zm7j\"\n }\n ],\n [\n \"path\",\n {\n d: \"M3 5h4V3\",\n key: \"z442eg\"\n }\n ],\n [\n \"path\",\n {\n d: \"M7 5a1 1 0 0 1 1 1v1a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2V6a1 1 0 0 1 1-1V3\",\n key: \"ebdjd7\"\n }\n ]\n];\nconst Cable = createLucideIcon(\"cable\", __iconNode$ll);\nconst __iconNode$lk = [\n [\n \"circle\",\n {\n cx: \"9\",\n cy: \"7\",\n r: \"2\",\n key: \"1305pl\"\n }\n ],\n [\n \"path\",\n {\n d: \"M7.2 7.9 3 11v9c0 .6.4 1 1 1h16c.6 0 1-.4 1-1v-9c0-2-3-6-7-8l-3.6 2.6\",\n key: \"xle13f\"\n }\n ],\n [\n \"path\",\n {\n d: \"M16 13H3\",\n key: \"1wpj08\"\n }\n ],\n [\n \"path\",\n {\n d: \"M16 17H3\",\n key: \"3lvfcd\"\n }\n ]\n];\nconst CakeSlice = createLucideIcon(\"cake-slice\", __iconNode$lk);\nconst __iconNode$lj = [\n [\n \"path\",\n {\n d: \"M20 21v-8a2 2 0 0 0-2-2H6a2 2 0 0 0-2 2v8\",\n key: \"1w3rig\"\n }\n ],\n [\n \"path\",\n {\n d: \"M4 16s.5-1 2-1 2.5 2 4 2 2.5-2 4-2 2.5 2 4 2 2-1 2-1\",\n key: \"n2jgmb\"\n }\n ],\n [\n \"path\",\n {\n d: \"M2 21h20\",\n key: \"1nyx9w\"\n }\n ],\n [\n \"path\",\n {\n d: \"M7 8v3\",\n key: \"1qtyvj\"\n }\n ],\n [\n \"path\",\n {\n d: \"M12 8v3\",\n key: \"hwp4zt\"\n }\n ],\n [\n \"path\",\n {\n d: \"M17 8v3\",\n key: \"1i6e5u\"\n }\n ],\n [\n \"path\",\n {\n d: \"M7 4h.01\",\n key: \"1bh4kh\"\n }\n ],\n [\n \"path\",\n {\n d: \"M12 4h.01\",\n key: \"1ujb9j\"\n }\n ],\n [\n \"path\",\n {\n d: \"M17 4h.01\",\n key: \"1upcoc\"\n }\n ]\n];\nconst Cake = createLucideIcon(\"cake\", __iconNode$lj);\nconst __iconNode$li = [\n [\n \"rect\",\n {\n width: \"16\",\n height: \"20\",\n x: \"4\",\n y: \"2\",\n rx: \"2\",\n key: \"1nb95v\"\n }\n ],\n [\n \"line\",\n {\n x1: \"8\",\n x2: \"16\",\n y1: \"6\",\n y2: \"6\",\n key: \"x4nwl0\"\n }\n ],\n [\n \"line\",\n {\n x1: \"16\",\n x2: \"16\",\n y1: \"14\",\n y2: \"18\",\n key: \"wjye3r\"\n }\n ],\n [\n \"path\",\n {\n d: \"M16 10h.01\",\n key: \"1m94wz\"\n }\n ],\n [\n \"path\",\n {\n d: \"M12 10h.01\",\n key: \"1nrarc\"\n }\n ],\n [\n \"path\",\n {\n d: \"M8 10h.01\",\n key: \"19clt8\"\n }\n ],\n [\n \"path\",\n {\n d: \"M12 14h.01\",\n key: \"1etili\"\n }\n ],\n [\n \"path\",\n {\n d: \"M8 14h.01\",\n key: \"6423bh\"\n }\n ],\n [\n \"path\",\n {\n d: \"M12 18h.01\",\n key: \"mhygvu\"\n }\n ],\n [\n \"path\",\n {\n d: \"M8 18h.01\",\n key: \"lrp35t\"\n }\n ]\n];\nconst Calculator = createLucideIcon(\"calculator\", __iconNode$li);\nconst __iconNode$lh = [\n [\n \"path\",\n {\n d: \"M11 14h1v4\",\n key: \"fy54vd\"\n }\n ],\n [\n \"path\",\n {\n d: \"M16 2v4\",\n key: \"4m81vk\"\n }\n ],\n [\n \"path\",\n {\n d: \"M3 10h18\",\n key: \"8toen8\"\n }\n ],\n [\n \"path\",\n {\n d: \"M8 2v4\",\n key: \"1cmpym\"\n }\n ],\n [\n \"rect\",\n {\n x: \"3\",\n y: \"4\",\n width: \"18\",\n height: \"18\",\n rx: \"2\",\n key: \"12vinp\"\n }\n ]\n];\nconst Calendar1 = createLucideIcon(\"calendar-1\", __iconNode$lh);\nconst __iconNode$lg = [\n [\n \"path\",\n {\n d: \"m14 18 4 4 4-4\",\n key: \"1waygx\"\n }\n ],\n [\n \"path\",\n {\n d: \"M16 2v4\",\n key: \"4m81vk\"\n }\n ],\n [\n \"path\",\n {\n d: \"M18 14v8\",\n key: \"irew45\"\n }\n ],\n [\n \"path\",\n {\n d: \"M21 11.354V6a2 2 0 0 0-2-2H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h7.343\",\n key: \"bse4f3\"\n }\n ],\n [\n \"path\",\n {\n d: \"M3 10h18\",\n key: \"8toen8\"\n }\n ],\n [\n \"path\",\n {\n d: \"M8 2v4\",\n key: \"1cmpym\"\n }\n ]\n];\nconst CalendarArrowDown = createLucideIcon(\"calendar-arrow-down\", __iconNode$lg);\nconst __iconNode$lf = [\n [\n \"path\",\n {\n d: \"m14 18 4-4 4 4\",\n key: \"ftkppy\"\n }\n ],\n [\n \"path\",\n {\n d: \"M16 2v4\",\n key: \"4m81vk\"\n }\n ],\n [\n \"path\",\n {\n d: \"M18 22v-8\",\n key: \"su0gjh\"\n }\n ],\n [\n \"path\",\n {\n d: \"M21 11.343V6a2 2 0 0 0-2-2H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h9\",\n key: \"1exg90\"\n }\n ],\n [\n \"path\",\n {\n d: \"M3 10h18\",\n key: \"8toen8\"\n }\n ],\n [\n \"path\",\n {\n d: \"M8 2v4\",\n key: \"1cmpym\"\n }\n ]\n];\nconst CalendarArrowUp = createLucideIcon(\"calendar-arrow-up\", __iconNode$lf);\nconst __iconNode$le = [\n [\n \"path\",\n {\n d: \"M8 2v4\",\n key: \"1cmpym\"\n }\n ],\n [\n \"path\",\n {\n d: \"M16 2v4\",\n key: \"4m81vk\"\n }\n ],\n [\n \"path\",\n {\n d: \"M21 14V6a2 2 0 0 0-2-2H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h8\",\n key: \"bce9hv\"\n }\n ],\n [\n \"path\",\n {\n d: \"M3 10h18\",\n key: \"8toen8\"\n }\n ],\n [\n \"path\",\n {\n d: \"m16 20 2 2 4-4\",\n key: \"13tcca\"\n }\n ]\n];\nconst CalendarCheck2 = createLucideIcon(\"calendar-check-2\", __iconNode$le);\nconst __iconNode$ld = [\n [\n \"path\",\n {\n d: \"M8 2v4\",\n key: \"1cmpym\"\n }\n ],\n [\n \"path\",\n {\n d: \"M16 2v4\",\n key: \"4m81vk\"\n }\n ],\n [\n \"rect\",\n {\n width: \"18\",\n height: \"18\",\n x: \"3\",\n y: \"4\",\n rx: \"2\",\n key: \"1hopcy\"\n }\n ],\n [\n \"path\",\n {\n d: \"M3 10h18\",\n key: \"8toen8\"\n }\n ],\n [\n \"path\",\n {\n d: \"m9 16 2 2 4-4\",\n key: \"19s6y9\"\n }\n ]\n];\nconst CalendarCheck = createLucideIcon(\"calendar-check\", __iconNode$ld);\nconst __iconNode$lc = [\n [\n \"path\",\n {\n d: \"M16 14v2.2l1.6 1\",\n key: \"fo4ql5\"\n }\n ],\n [\n \"path\",\n {\n d: \"M16 2v4\",\n key: \"4m81vk\"\n }\n ],\n [\n \"path\",\n {\n d: \"M21 7.5V6a2 2 0 0 0-2-2H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h3.5\",\n key: \"1osxxc\"\n }\n ],\n [\n \"path\",\n {\n d: \"M3 10h5\",\n key: \"r794hk\"\n }\n ],\n [\n \"path\",\n {\n d: \"M8 2v4\",\n key: \"1cmpym\"\n }\n ],\n [\n \"circle\",\n {\n cx: \"16\",\n cy: \"16\",\n r: \"6\",\n key: \"qoo3c4\"\n }\n ]\n];\nconst CalendarClock = createLucideIcon(\"calendar-clock\", __iconNode$lc);\nconst __iconNode$lb = [\n [\n \"path\",\n {\n d: \"m15.228 16.852-.923-.383\",\n key: \"npixar\"\n }\n ],\n [\n \"path\",\n {\n d: \"m15.228 19.148-.923.383\",\n key: \"51cr3n\"\n }\n ],\n [\n \"path\",\n {\n d: \"M16 2v4\",\n key: \"4m81vk\"\n }\n ],\n [\n \"path\",\n {\n d: \"m16.47 14.305.382.923\",\n key: \"obybxd\"\n }\n ],\n [\n \"path\",\n {\n d: \"m16.852 20.772-.383.924\",\n key: \"dpfhf9\"\n }\n ],\n [\n \"path\",\n {\n d: \"m19.148 15.228.383-.923\",\n key: \"1reyyz\"\n }\n ],\n [\n \"path\",\n {\n d: \"m19.53 21.696-.382-.924\",\n key: \"1goivc\"\n }\n ],\n [\n \"path\",\n {\n d: \"m20.772 16.852.924-.383\",\n key: \"htqkph\"\n }\n ],\n [\n \"path\",\n {\n d: \"m20.772 19.148.924.383\",\n key: \"9w9pjp\"\n }\n ],\n [\n \"path\",\n {\n d: \"M21 11V6a2 2 0 0 0-2-2H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h6\",\n key: \"1dju0s\"\n }\n ],\n [\n \"path\",\n {\n d: \"M3 10h18\",\n key: \"8toen8\"\n }\n ],\n [\n \"path\",\n {\n d: \"M8 2v4\",\n key: \"1cmpym\"\n }\n ],\n [\n \"circle\",\n {\n cx: \"18\",\n cy: \"18\",\n r: \"3\",\n key: \"1xkwt0\"\n }\n ]\n];\nconst CalendarCog = createLucideIcon(\"calendar-cog\", __iconNode$lb);\nconst __iconNode$la = [\n [\n \"path\",\n {\n d: \"M8 2v4\",\n key: \"1cmpym\"\n }\n ],\n [\n \"path\",\n {\n d: \"M16 2v4\",\n key: \"4m81vk\"\n }\n ],\n [\n \"rect\",\n {\n width: \"18\",\n height: \"18\",\n x: \"3\",\n y: \"4\",\n rx: \"2\",\n key: \"1hopcy\"\n }\n ],\n [\n \"path\",\n {\n d: \"M3 10h18\",\n key: \"8toen8\"\n }\n ],\n [\n \"path\",\n {\n d: \"M8 14h.01\",\n key: \"6423bh\"\n }\n ],\n [\n \"path\",\n {\n d: \"M12 14h.01\",\n key: \"1etili\"\n }\n ],\n [\n \"path\",\n {\n d: \"M16 14h.01\",\n key: \"1gbofw\"\n }\n ],\n [\n \"path\",\n {\n d: \"M8 18h.01\",\n key: \"lrp35t\"\n }\n ],\n [\n \"path\",\n {\n d: \"M12 18h.01\",\n key: \"mhygvu\"\n }\n ],\n [\n \"path\",\n {\n d: \"M16 18h.01\",\n key: \"kzsmim\"\n }\n ]\n];\nconst CalendarDays = createLucideIcon(\"calendar-days\", __iconNode$la);\nconst __iconNode$l9 = [\n [\n \"path\",\n {\n d: \"M8 2v4\",\n key: \"1cmpym\"\n }\n ],\n [\n \"path\",\n {\n d: \"M16 2v4\",\n key: \"4m81vk\"\n }\n ],\n [\n \"path\",\n {\n d: \"M21 17V6a2 2 0 0 0-2-2H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h11Z\",\n key: \"kg77oy\"\n }\n ],\n [\n \"path\",\n {\n d: \"M3 10h18\",\n key: \"8toen8\"\n }\n ],\n [\n \"path\",\n {\n d: \"M15 22v-4a2 2 0 0 1 2-2h4\",\n key: \"1gnbqr\"\n }\n ]\n];\nconst CalendarFold = createLucideIcon(\"calendar-fold\", __iconNode$l9);\nconst __iconNode$l8 = [\n [\n \"path\",\n {\n d: \"M3 10h18V6a2 2 0 0 0-2-2H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h7\",\n key: \"136lmk\"\n }\n ],\n [\n \"path\",\n {\n d: \"M8 2v4\",\n key: \"1cmpym\"\n }\n ],\n [\n \"path\",\n {\n d: \"M16 2v4\",\n key: \"4m81vk\"\n }\n ],\n [\n \"path\",\n {\n d: \"M21.29 14.7a2.43 2.43 0 0 0-2.65-.52c-.3.12-.57.3-.8.53l-.34.34-.35-.34a2.43 2.43 0 0 0-2.65-.53c-.3.12-.56.3-.79.53-.95.94-1 2.53.2 3.74L17.5 22l3.6-3.55c1.2-1.21 1.14-2.8.19-3.74Z\",\n key: \"1t7hil\"\n }\n ]\n];\nconst CalendarHeart = createLucideIcon(\"calendar-heart\", __iconNode$l8);\nconst __iconNode$l7 = [\n [\n \"path\",\n {\n d: \"M8 2v4\",\n key: \"1cmpym\"\n }\n ],\n [\n \"path\",\n {\n d: \"M16 2v4\",\n key: \"4m81vk\"\n }\n ],\n [\n \"rect\",\n {\n width: \"18\",\n height: \"18\",\n x: \"3\",\n y: \"4\",\n rx: \"2\",\n key: \"1hopcy\"\n }\n ],\n [\n \"path\",\n {\n d: \"M3 10h18\",\n key: \"8toen8\"\n }\n ],\n [\n \"path\",\n {\n d: \"M10 16h4\",\n key: \"17e571\"\n }\n ]\n];\nconst CalendarMinus2 = createLucideIcon(\"calendar-minus-2\", __iconNode$l7);\nconst __iconNode$l6 = [\n [\n \"path\",\n {\n d: \"M16 19h6\",\n key: \"xwg31i\"\n }\n ],\n [\n \"path\",\n {\n d: \"M16 2v4\",\n key: \"4m81vk\"\n }\n ],\n [\n \"path\",\n {\n d: \"M21 15V6a2 2 0 0 0-2-2H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h8.5\",\n key: \"1scpom\"\n }\n ],\n [\n \"path\",\n {\n d: \"M3 10h18\",\n key: \"8toen8\"\n }\n ],\n [\n \"path\",\n {\n d: \"M8 2v4\",\n key: \"1cmpym\"\n }\n ]\n];\nconst CalendarMinus = createLucideIcon(\"calendar-minus\", __iconNode$l6);\nconst __iconNode$l5 = [\n [\n \"path\",\n {\n d: \"M4.2 4.2A2 2 0 0 0 3 6v14a2 2 0 0 0 2 2h14a2 2 0 0 0 1.82-1.18\",\n key: \"16swn3\"\n }\n ],\n [\n \"path\",\n {\n d: \"M21 15.5V6a2 2 0 0 0-2-2H9.5\",\n key: \"yhw86o\"\n }\n ],\n [\n \"path\",\n {\n d: \"M16 2v4\",\n key: \"4m81vk\"\n }\n ],\n [\n \"path\",\n {\n d: \"M3 10h7\",\n key: \"1wap6i\"\n }\n ],\n [\n \"path\",\n {\n d: \"M21 10h-5.5\",\n key: \"quycpq\"\n }\n ],\n [\n \"path\",\n {\n d: \"m2 2 20 20\",\n key: \"1ooewy\"\n }\n ]\n];\nconst CalendarOff = createLucideIcon(\"calendar-off\", __iconNode$l5);\nconst __iconNode$l4 = [\n [\n \"path\",\n {\n d: \"M8 2v4\",\n key: \"1cmpym\"\n }\n ],\n [\n \"path\",\n {\n d: \"M16 2v4\",\n key: \"4m81vk\"\n }\n ],\n [\n \"rect\",\n {\n width: \"18\",\n height: \"18\",\n x: \"3\",\n y: \"4\",\n rx: \"2\",\n key: \"1hopcy\"\n }\n ],\n [\n \"path\",\n {\n d: \"M3 10h18\",\n key: \"8toen8\"\n }\n ],\n [\n \"path\",\n {\n d: \"M10 16h4\",\n key: \"17e571\"\n }\n ],\n [\n \"path\",\n {\n d: \"M12 14v4\",\n key: \"1thi36\"\n }\n ]\n];\nconst CalendarPlus2 = createLucideIcon(\"calendar-plus-2\", __iconNode$l4);\nconst __iconNode$l3 = [\n [\n \"path\",\n {\n d: \"M16 19h6\",\n key: \"xwg31i\"\n }\n ],\n [\n \"path\",\n {\n d: \"M16 2v4\",\n key: \"4m81vk\"\n }\n ],\n [\n \"path\",\n {\n d: \"M19 16v6\",\n key: \"tddt3s\"\n }\n ],\n [\n \"path\",\n {\n d: \"M21 12.598V6a2 2 0 0 0-2-2H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h8.5\",\n key: \"1glfrc\"\n }\n ],\n [\n \"path\",\n {\n d: \"M3 10h18\",\n key: \"8toen8\"\n }\n ],\n [\n \"path\",\n {\n d: \"M8 2v4\",\n key: \"1cmpym\"\n }\n ]\n];\nconst CalendarPlus = createLucideIcon(\"calendar-plus\", __iconNode$l3);\nconst __iconNode$l2 = [\n [\n \"rect\",\n {\n width: \"18\",\n height: \"18\",\n x: \"3\",\n y: \"4\",\n rx: \"2\",\n key: \"1hopcy\"\n }\n ],\n [\n \"path\",\n {\n d: \"M16 2v4\",\n key: \"4m81vk\"\n }\n ],\n [\n \"path\",\n {\n d: \"M3 10h18\",\n key: \"8toen8\"\n }\n ],\n [\n \"path\",\n {\n d: \"M8 2v4\",\n key: \"1cmpym\"\n }\n ],\n [\n \"path\",\n {\n d: \"M17 14h-6\",\n key: \"bkmgh3\"\n }\n ],\n [\n \"path\",\n {\n d: \"M13 18H7\",\n key: \"bb0bb7\"\n }\n ],\n [\n \"path\",\n {\n d: \"M7 14h.01\",\n key: \"1qa3f1\"\n }\n ],\n [\n \"path\",\n {\n d: \"M17 18h.01\",\n key: \"1bdyru\"\n }\n ]\n];\nconst CalendarRange = createLucideIcon(\"calendar-range\", __iconNode$l2);\nconst __iconNode$l1 = [\n [\n \"path\",\n {\n d: \"M11 10v4h4\",\n key: \"172dkj\"\n }\n ],\n [\n \"path\",\n {\n d: \"m11 14 1.535-1.605a5 5 0 0 1 8 1.5\",\n key: \"vu0qm5\"\n }\n ],\n [\n \"path\",\n {\n d: \"M16 2v4\",\n key: \"4m81vk\"\n }\n ],\n [\n \"path\",\n {\n d: \"m21 18-1.535 1.605a5 5 0 0 1-8-1.5\",\n key: \"1qgeyt\"\n }\n ],\n [\n \"path\",\n {\n d: \"M21 22v-4h-4\",\n key: \"hrummi\"\n }\n ],\n [\n \"path\",\n {\n d: \"M21 8.5V6a2 2 0 0 0-2-2H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h4.3\",\n key: \"mctw84\"\n }\n ],\n [\n \"path\",\n {\n d: \"M3 10h4\",\n key: \"1el30a\"\n }\n ],\n [\n \"path\",\n {\n d: \"M8 2v4\",\n key: \"1cmpym\"\n }\n ]\n];\nconst CalendarSync = createLucideIcon(\"calendar-sync\", __iconNode$l1);\nconst __iconNode$l0 = [\n [\n \"path\",\n {\n d: \"M16 2v4\",\n key: \"4m81vk\"\n }\n ],\n [\n \"path\",\n {\n d: \"M21 11.75V6a2 2 0 0 0-2-2H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h7.25\",\n key: \"1jrsq6\"\n }\n ],\n [\n \"path\",\n {\n d: \"m22 22-1.875-1.875\",\n key: \"13zax7\"\n }\n ],\n [\n \"path\",\n {\n d: \"M3 10h18\",\n key: \"8toen8\"\n }\n ],\n [\n \"path\",\n {\n d: \"M8 2v4\",\n key: \"1cmpym\"\n }\n ],\n [\n \"circle\",\n {\n cx: \"18\",\n cy: \"18\",\n r: \"3\",\n key: \"1xkwt0\"\n }\n ]\n];\nconst CalendarSearch = createLucideIcon(\"calendar-search\", __iconNode$l0);\nconst __iconNode$k$ = [\n [\n \"path\",\n {\n d: \"M8 2v4\",\n key: \"1cmpym\"\n }\n ],\n [\n \"path\",\n {\n d: \"M16 2v4\",\n key: \"4m81vk\"\n }\n ],\n [\n \"path\",\n {\n d: \"M21 13V6a2 2 0 0 0-2-2H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h8\",\n key: \"3spt84\"\n }\n ],\n [\n \"path\",\n {\n d: \"M3 10h18\",\n key: \"8toen8\"\n }\n ],\n [\n \"path\",\n {\n d: \"m17 22 5-5\",\n key: \"1k6ppv\"\n }\n ],\n [\n \"path\",\n {\n d: \"m17 17 5 5\",\n key: \"p7ous7\"\n }\n ]\n];\nconst CalendarX2 = createLucideIcon(\"calendar-x-2\", __iconNode$k$);\nconst __iconNode$k_ = [\n [\n \"path\",\n {\n d: \"M8 2v4\",\n key: \"1cmpym\"\n }\n ],\n [\n \"path\",\n {\n d: \"M16 2v4\",\n key: \"4m81vk\"\n }\n ],\n [\n \"rect\",\n {\n width: \"18\",\n height: \"18\",\n x: \"3\",\n y: \"4\",\n rx: \"2\",\n key: \"1hopcy\"\n }\n ],\n [\n \"path\",\n {\n d: \"M3 10h18\",\n key: \"8toen8\"\n }\n ],\n [\n \"path\",\n {\n d: \"m14 14-4 4\",\n key: \"rymu2i\"\n }\n ],\n [\n \"path\",\n {\n d: \"m10 14 4 4\",\n key: \"3sz06r\"\n }\n ]\n];\nconst CalendarX = createLucideIcon(\"calendar-x\", __iconNode$k_);\nconst __iconNode$kZ = [\n [\n \"path\",\n {\n d: \"M8 2v4\",\n key: \"1cmpym\"\n }\n ],\n [\n \"path\",\n {\n d: \"M16 2v4\",\n key: \"4m81vk\"\n }\n ],\n [\n \"rect\",\n {\n width: \"18\",\n height: \"18\",\n x: \"3\",\n y: \"4\",\n rx: \"2\",\n key: \"1hopcy\"\n }\n ],\n [\n \"path\",\n {\n d: \"M3 10h18\",\n key: \"8toen8\"\n }\n ]\n];\nconst Calendar = createLucideIcon(\"calendar\", __iconNode$kZ);\nconst __iconNode$kY = [\n [\n \"line\",\n {\n x1: \"2\",\n x2: \"22\",\n y1: \"2\",\n y2: \"22\",\n key: \"a6p6uj\"\n }\n ],\n [\n \"path\",\n {\n d: \"M7 7H4a2 2 0 0 0-2 2v9a2 2 0 0 0 2 2h16\",\n key: \"qmtpty\"\n }\n ],\n [\n \"path\",\n {\n d: \"M9.5 4h5L17 7h3a2 2 0 0 1 2 2v7.5\",\n key: \"1ufyfc\"\n }\n ],\n [\n \"path\",\n {\n d: \"M14.121 15.121A3 3 0 1 1 9.88 10.88\",\n key: \"11zox6\"\n }\n ]\n];\nconst CameraOff = createLucideIcon(\"camera-off\", __iconNode$kY);\nconst __iconNode$kX = [\n [\n \"path\",\n {\n d: \"M14.5 4h-5L7 7H4a2 2 0 0 0-2 2v9a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2V9a2 2 0 0 0-2-2h-3l-2.5-3z\",\n key: \"1tc9qg\"\n }\n ],\n [\n \"circle\",\n {\n cx: \"12\",\n cy: \"13\",\n r: \"3\",\n key: \"1vg3eu\"\n }\n ]\n];\nconst Camera = createLucideIcon(\"camera\", __iconNode$kX);\nconst __iconNode$kW = [\n [\n \"path\",\n {\n d: \"M5.7 21a2 2 0 0 1-3.5-2l8.6-14a6 6 0 0 1 10.4 6 2 2 0 1 1-3.464-2 2 2 0 1 0-3.464-2Z\",\n key: \"isaq8g\"\n }\n ],\n [\n \"path\",\n {\n d: \"M17.75 7 15 2.1\",\n key: \"12x7e8\"\n }\n ],\n [\n \"path\",\n {\n d: \"M10.9 4.8 13 9\",\n key: \"100a87\"\n }\n ],\n [\n \"path\",\n {\n d: \"m7.9 9.7 2 4.4\",\n key: \"ntfhaj\"\n }\n ],\n [\n \"path\",\n {\n d: \"M4.9 14.7 7 18.9\",\n key: \"1x43jy\"\n }\n ]\n];\nconst CandyCane = createLucideIcon(\"candy-cane\", __iconNode$kW);\nconst __iconNode$kV = [\n [\n \"path\",\n {\n d: \"M10 10v7.9\",\n key: \"m8g9tt\"\n }\n ],\n [\n \"path\",\n {\n d: \"M11.802 6.145a5 5 0 0 1 6.053 6.053\",\n key: \"dn87i3\"\n }\n ],\n [\n \"path\",\n {\n d: \"M14 6.1v2.243\",\n key: \"1kzysn\"\n }\n ],\n [\n \"path\",\n {\n d: \"m15.5 15.571-.964.964a5 5 0 0 1-7.071 0 5 5 0 0 1 0-7.07l.964-.965\",\n key: \"3sxy18\"\n }\n ],\n [\n \"path\",\n {\n d: \"M16 7V3a1 1 0 0 1 1.707-.707 2.5 2.5 0 0 0 2.152.717 1 1 0 0 1 1.131 1.131 2.5 2.5 0 0 0 .717 2.152A1 1 0 0 1 21 8h-4\",\n key: \"gpb6xx\"\n }\n ],\n [\n \"path\",\n {\n d: \"m2 2 20 20\",\n key: \"1ooewy\"\n }\n ],\n [\n \"path\",\n {\n d: \"M8 17v4a1 1 0 0 1-1.707.707 2.5 2.5 0 0 0-2.152-.717 1 1 0 0 1-1.131-1.131 2.5 2.5 0 0 0-.717-2.152A1 1 0 0 1 3 16h4\",\n key: \"qexcha\"\n }\n ]\n];\nconst CandyOff = createLucideIcon(\"candy-off\", __iconNode$kV);\nconst __iconNode$kU = [\n [\n \"path\",\n {\n d: \"M10 7v10.9\",\n key: \"1gynux\"\n }\n ],\n [\n \"path\",\n {\n d: \"M14 6.1V17\",\n key: \"116kdf\"\n }\n ],\n [\n \"path\",\n {\n d: \"M16 7V3a1 1 0 0 1 1.707-.707 2.5 2.5 0 0 0 2.152.717 1 1 0 0 1 1.131 1.131 2.5 2.5 0 0 0 .717 2.152A1 1 0 0 1 21 8h-4\",\n key: \"gpb6xx\"\n }\n ],\n [\n \"path\",\n {\n d: \"M16.536 7.465a5 5 0 0 0-7.072 0l-2 2a5 5 0 0 0 0 7.07 5 5 0 0 0 7.072 0l2-2a5 5 0 0 0 0-7.07\",\n key: \"1tsln4\"\n }\n ],\n [\n \"path\",\n {\n d: \"M8 17v4a1 1 0 0 1-1.707.707 2.5 2.5 0 0 0-2.152-.717 1 1 0 0 1-1.131-1.131 2.5 2.5 0 0 0-.717-2.152A1 1 0 0 1 3 16h4\",\n key: \"qexcha\"\n }\n ]\n];\nconst Candy = createLucideIcon(\"candy\", __iconNode$kU);\nconst __iconNode$kT = [\n [\n \"path\",\n {\n d: \"M12 22v-4\",\n key: \"1utk9m\"\n }\n ],\n [\n \"path\",\n {\n d: \"M7 12c-1.5 0-4.5 1.5-5 3 3.5 1.5 6 1 6 1-1.5 1.5-2 3.5-2 5 2.5 0 4.5-1.5 6-3 1.5 1.5 3.5 3 6 3 0-1.5-.5-3.5-2-5 0 0 2.5.5 6-1-.5-1.5-3.5-3-5-3 1.5-1 4-4 4-6-2.5 0-5.5 1.5-7 3 0-2.5-.5-5-2-7-1.5 2-2 4.5-2 7-1.5-1.5-4.5-3-7-3 0 2 2.5 5 4 6\",\n key: \"1mezod\"\n }\n ]\n];\nconst Cannabis = createLucideIcon(\"cannabis\", __iconNode$kT);\nconst __iconNode$kS = [\n [\n \"path\",\n {\n d: \"M10.5 5H19a2 2 0 0 1 2 2v8.5\",\n key: \"jqtk4d\"\n }\n ],\n [\n \"path\",\n {\n d: \"M17 11h-.5\",\n key: \"1961ue\"\n }\n ],\n [\n \"path\",\n {\n d: \"M19 19H5a2 2 0 0 1-2-2V7a2 2 0 0 1 2-2\",\n key: \"1keqsi\"\n }\n ],\n [\n \"path\",\n {\n d: \"m2 2 20 20\",\n key: \"1ooewy\"\n }\n ],\n [\n \"path\",\n {\n d: \"M7 11h4\",\n key: \"1o1z6v\"\n }\n ],\n [\n \"path\",\n {\n d: \"M7 15h2.5\",\n key: \"1ina1g\"\n }\n ]\n];\nconst CaptionsOff = createLucideIcon(\"captions-off\", __iconNode$kS);\nconst __iconNode$kR = [\n [\n \"rect\",\n {\n width: \"18\",\n height: \"14\",\n x: \"3\",\n y: \"5\",\n rx: \"2\",\n ry: \"2\",\n key: \"12ruh7\"\n }\n ],\n [\n \"path\",\n {\n d: \"M7 15h4M15 15h2M7 11h2M13 11h4\",\n key: \"1ueiar\"\n }\n ]\n];\nconst Captions = createLucideIcon(\"captions\", __iconNode$kR);\nconst __iconNode$kQ = [\n [\n \"path\",\n {\n d: \"m21 8-2 2-1.5-3.7A2 2 0 0 0 15.646 5H8.4a2 2 0 0 0-1.903 1.257L5 10 3 8\",\n key: \"1imjwt\"\n }\n ],\n [\n \"path\",\n {\n d: \"M7 14h.01\",\n key: \"1qa3f1\"\n }\n ],\n [\n \"path\",\n {\n d: \"M17 14h.01\",\n key: \"7oqj8z\"\n }\n ],\n [\n \"rect\",\n {\n width: \"18\",\n height: \"8\",\n x: \"3\",\n y: \"10\",\n rx: \"2\",\n key: \"a7itu8\"\n }\n ],\n [\n \"path\",\n {\n d: \"M5 18v2\",\n key: \"ppbyun\"\n }\n ],\n [\n \"path\",\n {\n d: \"M19 18v2\",\n key: \"gy7782\"\n }\n ]\n];\nconst CarFront = createLucideIcon(\"car-front\", __iconNode$kQ);\nconst __iconNode$kP = [\n [\n \"path\",\n {\n d: \"M10 2h4\",\n key: \"n1abiw\"\n }\n ],\n [\n \"path\",\n {\n d: \"m21 8-2 2-1.5-3.7A2 2 0 0 0 15.646 5H8.4a2 2 0 0 0-1.903 1.257L5 10 3 8\",\n key: \"1imjwt\"\n }\n ],\n [\n \"path\",\n {\n d: \"M7 14h.01\",\n key: \"1qa3f1\"\n }\n ],\n [\n \"path\",\n {\n d: \"M17 14h.01\",\n key: \"7oqj8z\"\n }\n ],\n [\n \"rect\",\n {\n width: \"18\",\n height: \"8\",\n x: \"3\",\n y: \"10\",\n rx: \"2\",\n key: \"a7itu8\"\n }\n ],\n [\n \"path\",\n {\n d: \"M5 18v2\",\n key: \"ppbyun\"\n }\n ],\n [\n \"path\",\n {\n d: \"M19 18v2\",\n key: \"gy7782\"\n }\n ]\n];\nconst CarTaxiFront = createLucideIcon(\"car-taxi-front\", __iconNode$kP);\nconst __iconNode$kO = [\n [\n \"path\",\n {\n d: \"M18 19V9a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v8a2 2 0 0 0 2 2h2\",\n key: \"19jm3t\"\n }\n ],\n [\n \"path\",\n {\n d: \"M2 9h3a1 1 0 0 1 1 1v2a1 1 0 0 1-1 1H2\",\n key: \"13hakp\"\n }\n ],\n [\n \"path\",\n {\n d: \"M22 17v1a1 1 0 0 1-1 1H10v-9a1 1 0 0 1 1-1h2a1 1 0 0 1 1 1v9\",\n key: \"1crci8\"\n }\n ],\n [\n \"circle\",\n {\n cx: \"8\",\n cy: \"19\",\n r: \"2\",\n key: \"t8fc5s\"\n }\n ]\n];\nconst Caravan = createLucideIcon(\"caravan\", __iconNode$kO);\nconst __iconNode$kN = [\n [\n \"path\",\n {\n d: \"M12 14v4\",\n key: \"1thi36\"\n }\n ],\n [\n \"path\",\n {\n d: \"M14.172 2a2 2 0 0 1 1.414.586l3.828 3.828A2 2 0 0 1 20 7.828V20a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2z\",\n key: \"1o66bk\"\n }\n ],\n [\n \"path\",\n {\n d: \"M8 14h8\",\n key: \"1fgep2\"\n }\n ],\n [\n \"rect\",\n {\n x: \"8\",\n y: \"10\",\n width: \"8\",\n height: \"8\",\n rx: \"1\",\n key: \"1aonk6\"\n }\n ]\n];\nconst CardSim = createLucideIcon(\"card-sim\", __iconNode$kN);\nconst __iconNode$kM = [\n [\n \"path\",\n {\n d: \"M19 17h2c.6 0 1-.4 1-1v-3c0-.9-.7-1.7-1.5-1.9C18.7 10.6 16 10 16 10s-1.3-1.4-2.2-2.3c-.5-.4-1.1-.7-1.8-.7H5c-.6 0-1.1.4-1.4.9l-1.4 2.9A3.7 3.7 0 0 0 2 12v4c0 .6.4 1 1 1h2\",\n key: \"5owen\"\n }\n ],\n [\n \"circle\",\n {\n cx: \"7\",\n cy: \"17\",\n r: \"2\",\n key: \"u2ysq9\"\n }\n ],\n [\n \"path\",\n {\n d: \"M9 17h6\",\n key: \"r8uit2\"\n }\n ],\n [\n \"circle\",\n {\n cx: \"17\",\n cy: \"17\",\n r: \"2\",\n key: \"axvx0g\"\n }\n ]\n];\nconst Car = createLucideIcon(\"car\", __iconNode$kM);\nconst __iconNode$kL = [\n [\n \"path\",\n {\n d: \"M2.27 21.7s9.87-3.5 12.73-6.36a4.5 4.5 0 0 0-6.36-6.37C5.77 11.84 2.27 21.7 2.27 21.7zM8.64 14l-2.05-2.04M15.34 15l-2.46-2.46\",\n key: \"rfqxbe\"\n }\n ],\n [\n \"path\",\n {\n d: \"M22 9s-1.33-2-3.5-2C16.86 7 15 9 15 9s1.33 2 3.5 2S22 9 22 9z\",\n key: \"6b25w4\"\n }\n ],\n [\n \"path\",\n {\n d: \"M15 2s-2 1.33-2 3.5S15 9 15 9s2-1.84 2-3.5C17 3.33 15 2 15 2z\",\n key: \"fn65lo\"\n }\n ]\n];\nconst Carrot = createLucideIcon(\"carrot\", __iconNode$kL);\nconst __iconNode$kK = [\n [\n \"circle\",\n {\n cx: \"7\",\n cy: \"12\",\n r: \"3\",\n key: \"12clwm\"\n }\n ],\n [\n \"path\",\n {\n d: \"M10 9v6\",\n key: \"17i7lo\"\n }\n ],\n [\n \"circle\",\n {\n cx: \"17\",\n cy: \"12\",\n r: \"3\",\n key: \"gl7c2s\"\n }\n ],\n [\n \"path\",\n {\n d: \"M14 7v8\",\n key: \"dl84cr\"\n }\n ]\n];\nconst CaseLower = createLucideIcon(\"case-lower\", __iconNode$kK);\nconst __iconNode$kJ = [\n [\n \"path\",\n {\n d: \"m3 15 4-8 4 8\",\n key: \"1vwr6u\"\n }\n ],\n [\n \"path\",\n {\n d: \"M4 13h6\",\n key: \"1r9ots\"\n }\n ],\n [\n \"circle\",\n {\n cx: \"18\",\n cy: \"12\",\n r: \"3\",\n key: \"1kchzo\"\n }\n ],\n [\n \"path\",\n {\n d: \"M21 9v6\",\n key: \"anns31\"\n }\n ]\n];\nconst CaseSensitive = createLucideIcon(\"case-sensitive\", __iconNode$kJ);\nconst __iconNode$kI = [\n [\n \"path\",\n {\n d: \"m3 15 4-8 4 8\",\n key: \"1vwr6u\"\n }\n ],\n [\n \"path\",\n {\n d: \"M4 13h6\",\n key: \"1r9ots\"\n }\n ],\n [\n \"path\",\n {\n d: \"M15 11h4.5a2 2 0 0 1 0 4H15V7h4a2 2 0 0 1 0 4\",\n key: \"1sqfas\"\n }\n ]\n];\nconst CaseUpper = createLucideIcon(\"case-upper\", __iconNode$kI);\nconst __iconNode$kH = [\n [\n \"rect\",\n {\n width: \"20\",\n height: \"16\",\n x: \"2\",\n y: \"4\",\n rx: \"2\",\n key: \"18n3k1\"\n }\n ],\n [\n \"circle\",\n {\n cx: \"8\",\n cy: \"10\",\n r: \"2\",\n key: \"1xl4ub\"\n }\n ],\n [\n \"path\",\n {\n d: \"M8 12h8\",\n key: \"1wcyev\"\n }\n ],\n [\n \"circle\",\n {\n cx: \"16\",\n cy: \"10\",\n r: \"2\",\n key: \"r14t7q\"\n }\n ],\n [\n \"path\",\n {\n d: \"m6 20 .7-2.9A1.4 1.4 0 0 1 8.1 16h7.8a1.4 1.4 0 0 1 1.4 1l.7 3\",\n key: \"l01ucn\"\n }\n ]\n];\nconst CassetteTape = createLucideIcon(\"cassette-tape\", __iconNode$kH);\nconst __iconNode$kG = [\n [\n \"path\",\n {\n d: \"M2 8V6a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2v12a2 2 0 0 1-2 2h-6\",\n key: \"3zrzxg\"\n }\n ],\n [\n \"path\",\n {\n d: \"M2 12a9 9 0 0 1 8 8\",\n key: \"g6cvee\"\n }\n ],\n [\n \"path\",\n {\n d: \"M2 16a5 5 0 0 1 4 4\",\n key: \"1y1dii\"\n }\n ],\n [\n \"line\",\n {\n x1: \"2\",\n x2: \"2.01\",\n y1: \"20\",\n y2: \"20\",\n key: \"xu2jvo\"\n }\n ]\n];\nconst Cast = createLucideIcon(\"cast\", __iconNode$kG);\nconst __iconNode$kF = [\n [\n \"path\",\n {\n d: \"M22 20v-9H2v9a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2Z\",\n key: \"109fe4\"\n }\n ],\n [\n \"path\",\n {\n d: \"M18 11V4H6v7\",\n key: \"mon5oj\"\n }\n ],\n [\n \"path\",\n {\n d: \"M15 22v-4a3 3 0 0 0-3-3a3 3 0 0 0-3 3v4\",\n key: \"1k4jtn\"\n }\n ],\n [\n \"path\",\n {\n d: \"M22 11V9\",\n key: \"3zbp94\"\n }\n ],\n [\n \"path\",\n {\n d: \"M2 11V9\",\n key: \"1x5rnq\"\n }\n ],\n [\n \"path\",\n {\n d: \"M6 4V2\",\n key: \"1rsq15\"\n }\n ],\n [\n \"path\",\n {\n d: \"M18 4V2\",\n key: \"1jsdo1\"\n }\n ],\n [\n \"path\",\n {\n d: \"M10 4V2\",\n key: \"75d9ly\"\n }\n ],\n [\n \"path\",\n {\n d: \"M14 4V2\",\n key: \"8nj3z6\"\n }\n ]\n];\nconst Castle = createLucideIcon(\"castle\", __iconNode$kF);\nconst __iconNode$kE = [\n [\n \"path\",\n {\n d: \"M12 5c.67 0 1.35.09 2 .26 1.78-2 5.03-2.84 6.42-2.26 1.4.58-.42 7-.42 7 .57 1.07 1 2.24 1 3.44C21 17.9 16.97 21 12 21s-9-3-9-7.56c0-1.25.5-2.4 1-3.44 0 0-1.89-6.42-.5-7 1.39-.58 4.72.23 6.5 2.23A9.04 9.04 0 0 1 12 5Z\",\n key: \"x6xyqk\"\n }\n ],\n [\n \"path\",\n {\n d: \"M8 14v.5\",\n key: \"1nzgdb\"\n }\n ],\n [\n \"path\",\n {\n d: \"M16 14v.5\",\n key: \"1lajdz\"\n }\n ],\n [\n \"path\",\n {\n d: \"M11.25 16.25h1.5L12 17l-.75-.75Z\",\n key: \"12kq1m\"\n }\n ]\n];\nconst Cat = createLucideIcon(\"cat\", __iconNode$kE);\nconst __iconNode$kD = [\n [\n \"path\",\n {\n d: \"M16.75 12h3.632a1 1 0 0 1 .894 1.447l-2.034 4.069a1 1 0 0 1-1.708.134l-2.124-2.97\",\n key: \"ir91b5\"\n }\n ],\n [\n \"path\",\n {\n d: \"M17.106 9.053a1 1 0 0 1 .447 1.341l-3.106 6.211a1 1 0 0 1-1.342.447L3.61 12.3a2.92 2.92 0 0 1-1.3-3.91L3.69 5.6a2.92 2.92 0 0 1 3.92-1.3z\",\n key: \"jlp8i1\"\n }\n ],\n [\n \"path\",\n {\n d: \"M2 19h3.76a2 2 0 0 0 1.8-1.1L9 15\",\n key: \"19bib8\"\n }\n ],\n [\n \"path\",\n {\n d: \"M2 21v-4\",\n key: \"l40lih\"\n }\n ],\n [\n \"path\",\n {\n d: \"M7 9h.01\",\n key: \"19b3jx\"\n }\n ]\n];\nconst Cctv = createLucideIcon(\"cctv\", __iconNode$kD);\nconst __iconNode$kC = [\n [\n \"path\",\n {\n d: \"M3 3v16a2 2 0 0 0 2 2h16\",\n key: \"c24i48\"\n }\n ],\n [\n \"path\",\n {\n d: \"M7 11.207a.5.5 0 0 1 .146-.353l2-2a.5.5 0 0 1 .708 0l3.292 3.292a.5.5 0 0 0 .708 0l4.292-4.292a.5.5 0 0 1 .854.353V16a1 1 0 0 1-1 1H8a1 1 0 0 1-1-1z\",\n key: \"q0gr47\"\n }\n ]\n];\nconst ChartArea = createLucideIcon(\"chart-area\", __iconNode$kC);\nconst __iconNode$kB = [\n [\n \"path\",\n {\n d: \"M3 3v16a2 2 0 0 0 2 2h16\",\n key: \"c24i48\"\n }\n ],\n [\n \"rect\",\n {\n x: \"7\",\n y: \"13\",\n width: \"9\",\n height: \"4\",\n rx: \"1\",\n key: \"1iip1u\"\n }\n ],\n [\n \"rect\",\n {\n x: \"7\",\n y: \"5\",\n width: \"12\",\n height: \"4\",\n rx: \"1\",\n key: \"1anskk\"\n }\n ]\n];\nconst ChartBarBig = createLucideIcon(\"chart-bar-big\", __iconNode$kB);\nconst __iconNode$kA = [\n [\n \"path\",\n {\n d: \"M3 3v16a2 2 0 0 0 2 2h16\",\n key: \"c24i48\"\n }\n ],\n [\n \"path\",\n {\n d: \"M7 11h8\",\n key: \"1feolt\"\n }\n ],\n [\n \"path\",\n {\n d: \"M7 16h12\",\n key: \"wsnu98\"\n }\n ],\n [\n \"path\",\n {\n d: \"M7 6h3\",\n key: \"w9rmul\"\n }\n ]\n];\nconst ChartBarIncreasing = createLucideIcon(\"chart-bar-increasing\", __iconNode$kA);\nconst __iconNode$kz = [\n [\n \"path\",\n {\n d: \"M3 3v16a2 2 0 0 0 2 2h16\",\n key: \"c24i48\"\n }\n ],\n [\n \"path\",\n {\n d: \"M7 11h8\",\n key: \"1feolt\"\n }\n ],\n [\n \"path\",\n {\n d: \"M7 16h3\",\n key: \"ur6vzw\"\n }\n ],\n [\n \"path\",\n {\n d: \"M7 6h12\",\n key: \"sz5b0d\"\n }\n ]\n];\nconst ChartBarDecreasing = createLucideIcon(\"chart-bar-decreasing\", __iconNode$kz);\nconst __iconNode$ky = [\n [\n \"path\",\n {\n d: \"M11 13v4\",\n key: \"vyy2rb\"\n }\n ],\n [\n \"path\",\n {\n d: \"M15 5v4\",\n key: \"1gx88a\"\n }\n ],\n [\n \"path\",\n {\n d: \"M3 3v16a2 2 0 0 0 2 2h16\",\n key: \"c24i48\"\n }\n ],\n [\n \"rect\",\n {\n x: \"7\",\n y: \"13\",\n width: \"9\",\n height: \"4\",\n rx: \"1\",\n key: \"1iip1u\"\n }\n ],\n [\n \"rect\",\n {\n x: \"7\",\n y: \"5\",\n width: \"12\",\n height: \"4\",\n rx: \"1\",\n key: \"1anskk\"\n }\n ]\n];\nconst ChartBarStacked = createLucideIcon(\"chart-bar-stacked\", __iconNode$ky);\nconst __iconNode$kx = [\n [\n \"path\",\n {\n d: \"M3 3v16a2 2 0 0 0 2 2h16\",\n key: \"c24i48\"\n }\n ],\n [\n \"path\",\n {\n d: \"M7 16h8\",\n key: \"srdodz\"\n }\n ],\n [\n \"path\",\n {\n d: \"M7 11h12\",\n key: \"127s9w\"\n }\n ],\n [\n \"path\",\n {\n d: \"M7 6h3\",\n key: \"w9rmul\"\n }\n ]\n];\nconst ChartBar = createLucideIcon(\"chart-bar\", __iconNode$kx);\nconst __iconNode$kw = [\n [\n \"path\",\n {\n d: \"M9 5v4\",\n key: \"14uxtq\"\n }\n ],\n [\n \"rect\",\n {\n width: \"4\",\n height: \"6\",\n x: \"7\",\n y: \"9\",\n rx: \"1\",\n key: \"f4fvz0\"\n }\n ],\n [\n \"path\",\n {\n d: \"M9 15v2\",\n key: \"r5rk32\"\n }\n ],\n [\n \"path\",\n {\n d: \"M17 3v2\",\n key: \"1l2re6\"\n }\n ],\n [\n \"rect\",\n {\n width: \"4\",\n height: \"8\",\n x: \"15\",\n y: \"5\",\n rx: \"1\",\n key: \"z38je5\"\n }\n ],\n [\n \"path\",\n {\n d: \"M17 13v3\",\n key: \"5l0wba\"\n }\n ],\n [\n \"path\",\n {\n d: \"M3 3v16a2 2 0 0 0 2 2h16\",\n key: \"c24i48\"\n }\n ]\n];\nconst ChartCandlestick = createLucideIcon(\"chart-candlestick\", __iconNode$kw);\nconst __iconNode$kv = [\n [\n \"path\",\n {\n d: \"M3 3v16a2 2 0 0 0 2 2h16\",\n key: \"c24i48\"\n }\n ],\n [\n \"rect\",\n {\n x: \"15\",\n y: \"5\",\n width: \"4\",\n height: \"12\",\n rx: \"1\",\n key: \"q8uenq\"\n }\n ],\n [\n \"rect\",\n {\n x: \"7\",\n y: \"8\",\n width: \"4\",\n height: \"9\",\n rx: \"1\",\n key: \"sr5ea\"\n }\n ]\n];\nconst ChartColumnBig = createLucideIcon(\"chart-column-big\", __iconNode$kv);\nconst __iconNode$ku = [\n [\n \"path\",\n {\n d: \"M13 17V9\",\n key: \"1fwyjl\"\n }\n ],\n [\n \"path\",\n {\n d: \"M18 17v-3\",\n key: \"1sqioe\"\n }\n ],\n [\n \"path\",\n {\n d: \"M3 3v16a2 2 0 0 0 2 2h16\",\n key: \"c24i48\"\n }\n ],\n [\n \"path\",\n {\n d: \"M8 17V5\",\n key: \"1wzmnc\"\n }\n ]\n];\nconst ChartColumnDecreasing = createLucideIcon(\"chart-column-decreasing\", __iconNode$ku);\nconst __iconNode$kt = [\n [\n \"path\",\n {\n d: \"M13 17V9\",\n key: \"1fwyjl\"\n }\n ],\n [\n \"path\",\n {\n d: \"M18 17V5\",\n key: \"sfb6ij\"\n }\n ],\n [\n \"path\",\n {\n d: \"M3 3v16a2 2 0 0 0 2 2h16\",\n key: \"c24i48\"\n }\n ],\n [\n \"path\",\n {\n d: \"M8 17v-3\",\n key: \"17ska0\"\n }\n ]\n];\nconst ChartColumnIncreasing = createLucideIcon(\"chart-column-increasing\", __iconNode$kt);\nconst __iconNode$ks = [\n [\n \"path\",\n {\n d: \"M11 13H7\",\n key: \"t0o9gq\"\n }\n ],\n [\n \"path\",\n {\n d: \"M19 9h-4\",\n key: \"rera1j\"\n }\n ],\n [\n \"path\",\n {\n d: \"M3 3v16a2 2 0 0 0 2 2h16\",\n key: \"c24i48\"\n }\n ],\n [\n \"rect\",\n {\n x: \"15\",\n y: \"5\",\n width: \"4\",\n height: \"12\",\n rx: \"1\",\n key: \"q8uenq\"\n }\n ],\n [\n \"rect\",\n {\n x: \"7\",\n y: \"8\",\n width: \"4\",\n height: \"9\",\n rx: \"1\",\n key: \"sr5ea\"\n }\n ]\n];\nconst ChartColumnStacked = createLucideIcon(\"chart-column-stacked\", __iconNode$ks);\nconst __iconNode$kr = [\n [\n \"path\",\n {\n d: \"M3 3v16a2 2 0 0 0 2 2h16\",\n key: \"c24i48\"\n }\n ],\n [\n \"path\",\n {\n d: \"M18 17V9\",\n key: \"2bz60n\"\n }\n ],\n [\n \"path\",\n {\n d: \"M13 17V5\",\n key: \"1frdt8\"\n }\n ],\n [\n \"path\",\n {\n d: \"M8 17v-3\",\n key: \"17ska0\"\n }\n ]\n];\nconst ChartColumn = createLucideIcon(\"chart-column\", __iconNode$kr);\nconst __iconNode$kq = [\n [\n \"path\",\n {\n d: \"M10 6h8\",\n key: \"zvc2xc\"\n }\n ],\n [\n \"path\",\n {\n d: \"M12 16h6\",\n key: \"yi5mkt\"\n }\n ],\n [\n \"path\",\n {\n d: \"M3 3v16a2 2 0 0 0 2 2h16\",\n key: \"c24i48\"\n }\n ],\n [\n \"path\",\n {\n d: \"M8 11h7\",\n key: \"wz2hg0\"\n }\n ]\n];\nconst ChartGantt = createLucideIcon(\"chart-gantt\", __iconNode$kq);\nconst __iconNode$kp = [\n [\n \"path\",\n {\n d: \"M3 3v16a2 2 0 0 0 2 2h16\",\n key: \"c24i48\"\n }\n ],\n [\n \"path\",\n {\n d: \"m19 9-5 5-4-4-3 3\",\n key: \"2osh9i\"\n }\n ]\n];\nconst ChartLine = createLucideIcon(\"chart-line\", __iconNode$kp);\nconst __iconNode$ko = [\n [\n \"path\",\n {\n d: \"m13.11 7.664 1.78 2.672\",\n key: \"go2gg9\"\n }\n ],\n [\n \"path\",\n {\n d: \"m14.162 12.788-3.324 1.424\",\n key: \"11x848\"\n }\n ],\n [\n \"path\",\n {\n d: \"m20 4-6.06 1.515\",\n key: \"1wxxh7\"\n }\n ],\n [\n \"path\",\n {\n d: \"M3 3v16a2 2 0 0 0 2 2h16\",\n key: \"c24i48\"\n }\n ],\n [\n \"circle\",\n {\n cx: \"12\",\n cy: \"6\",\n r: \"2\",\n key: \"1jj5th\"\n }\n ],\n [\n \"circle\",\n {\n cx: \"16\",\n cy: \"12\",\n r: \"2\",\n key: \"4ma0v8\"\n }\n ],\n [\n \"circle\",\n {\n cx: \"9\",\n cy: \"15\",\n r: \"2\",\n key: \"lf2ghp\"\n }\n ]\n];\nconst ChartNetwork = createLucideIcon(\"chart-network\", __iconNode$ko);\nconst __iconNode$kn = [\n [\n \"path\",\n {\n d: \"M12 20V10\",\n key: \"g8npz5\"\n }\n ],\n [\n \"path\",\n {\n d: \"M18 20v-4\",\n key: \"8uic4z\"\n }\n ],\n [\n \"path\",\n {\n d: \"M6 20V4\",\n key: \"1w1bmo\"\n }\n ]\n];\nconst ChartNoAxesColumnDecreasing = createLucideIcon(\"chart-no-axes-column-decreasing\", __iconNode$kn);\nconst __iconNode$km = [\n [\n \"line\",\n {\n x1: \"12\",\n x2: \"12\",\n y1: \"20\",\n y2: \"10\",\n key: \"1vz5eb\"\n }\n ],\n [\n \"line\",\n {\n x1: \"18\",\n x2: \"18\",\n y1: \"20\",\n y2: \"4\",\n key: \"cun8e5\"\n }\n ],\n [\n \"line\",\n {\n x1: \"6\",\n x2: \"6\",\n y1: \"20\",\n y2: \"16\",\n key: \"hq0ia6\"\n }\n ]\n];\nconst ChartNoAxesColumnIncreasing = createLucideIcon(\"chart-no-axes-column-increasing\", __iconNode$km);\nconst __iconNode$kl = [\n [\n \"line\",\n {\n x1: \"18\",\n x2: \"18\",\n y1: \"20\",\n y2: \"10\",\n key: \"1xfpm4\"\n }\n ],\n [\n \"line\",\n {\n x1: \"12\",\n x2: \"12\",\n y1: \"20\",\n y2: \"4\",\n key: \"be30l9\"\n }\n ],\n [\n \"line\",\n {\n x1: \"6\",\n x2: \"6\",\n y1: \"20\",\n y2: \"14\",\n key: \"1r4le6\"\n }\n ]\n];\nconst ChartNoAxesColumn = createLucideIcon(\"chart-no-axes-column\", __iconNode$kl);\nconst __iconNode$kk = [\n [\n \"path\",\n {\n d: \"M12 16v5\",\n key: \"zza2cw\"\n }\n ],\n [\n \"path\",\n {\n d: \"M16 14v7\",\n key: \"1g90b9\"\n }\n ],\n [\n \"path\",\n {\n d: \"M20 10v11\",\n key: \"1iqoj0\"\n }\n ],\n [\n \"path\",\n {\n d: \"m22 3-8.646 8.646a.5.5 0 0 1-.708 0L9.354 8.354a.5.5 0 0 0-.707 0L2 15\",\n key: \"1fw8x9\"\n }\n ],\n [\n \"path\",\n {\n d: \"M4 18v3\",\n key: \"1yp0dc\"\n }\n ],\n [\n \"path\",\n {\n d: \"M8 14v7\",\n key: \"n3cwzv\"\n }\n ]\n];\nconst ChartNoAxesCombined = createLucideIcon(\"chart-no-axes-combined\", __iconNode$kk);\nconst __iconNode$kj = [\n [\n \"path\",\n {\n d: \"M8 6h10\",\n key: \"9lnwnk\"\n }\n ],\n [\n \"path\",\n {\n d: \"M6 12h9\",\n key: \"1g9pqf\"\n }\n ],\n [\n \"path\",\n {\n d: \"M11 18h7\",\n key: \"c8dzvl\"\n }\n ]\n];\nconst ChartNoAxesGantt = createLucideIcon(\"chart-no-axes-gantt\", __iconNode$kj);\nconst __iconNode$ki = [\n [\n \"path\",\n {\n d: \"M21 12c.552 0 1.005-.449.95-.998a10 10 0 0 0-8.953-8.951c-.55-.055-.998.398-.998.95v8a1 1 0 0 0 1 1z\",\n key: \"pzmjnu\"\n }\n ],\n [\n \"path\",\n {\n d: \"M21.21 15.89A10 10 0 1 1 8 2.83\",\n key: \"k2fpak\"\n }\n ]\n];\nconst ChartPie = createLucideIcon(\"chart-pie\", __iconNode$ki);\nconst __iconNode$kh = [\n [\n \"circle\",\n {\n cx: \"7.5\",\n cy: \"7.5\",\n r: \".5\",\n fill: \"currentColor\",\n key: \"kqv944\"\n }\n ],\n [\n \"circle\",\n {\n cx: \"18.5\",\n cy: \"5.5\",\n r: \".5\",\n fill: \"currentColor\",\n key: \"lysivs\"\n }\n ],\n [\n \"circle\",\n {\n cx: \"11.5\",\n cy: \"11.5\",\n r: \".5\",\n fill: \"currentColor\",\n key: \"byv1b8\"\n }\n ],\n [\n \"circle\",\n {\n cx: \"7.5\",\n cy: \"16.5\",\n r: \".5\",\n fill: \"currentColor\",\n key: \"nkw3mc\"\n }\n ],\n [\n \"circle\",\n {\n cx: \"17.5\",\n cy: \"14.5\",\n r: \".5\",\n fill: \"currentColor\",\n key: \"1gjh6j\"\n }\n ],\n [\n \"path\",\n {\n d: \"M3 3v16a2 2 0 0 0 2 2h16\",\n key: \"c24i48\"\n }\n ]\n];\nconst ChartScatter = createLucideIcon(\"chart-scatter\", __iconNode$kh);\nconst __iconNode$kg = [\n [\n \"path\",\n {\n d: \"M3 3v16a2 2 0 0 0 2 2h16\",\n key: \"c24i48\"\n }\n ],\n [\n \"path\",\n {\n d: \"M7 16c.5-2 1.5-7 4-7 2 0 2 3 4 3 2.5 0 4.5-5 5-7\",\n key: \"lw07rv\"\n }\n ]\n];\nconst ChartSpline = createLucideIcon(\"chart-spline\", __iconNode$kg);\nconst __iconNode$kf = [\n [\n \"path\",\n {\n d: \"M18 6 7 17l-5-5\",\n key: \"116fxf\"\n }\n ],\n [\n \"path\",\n {\n d: \"m22 10-7.5 7.5L13 16\",\n key: \"ke71qq\"\n }\n ]\n];\nconst CheckCheck = createLucideIcon(\"check-check\", __iconNode$kf);\nconst __iconNode$ke = [\n [\n \"path\",\n {\n d: \"M20 4L9 15\",\n key: \"1qkx8z\"\n }\n ],\n [\n \"path\",\n {\n d: \"M21 19L3 19\",\n key: \"100sma\"\n }\n ],\n [\n \"path\",\n {\n d: \"M9 15L4 10\",\n key: \"9zxff7\"\n }\n ]\n];\nconst CheckLine = createLucideIcon(\"check-line\", __iconNode$ke);\nconst __iconNode$kd = [\n [\n \"path\",\n {\n d: \"M20 6 9 17l-5-5\",\n key: \"1gmf2c\"\n }\n ]\n];\nconst Check = createLucideIcon(\"check\", __iconNode$kd);\nconst __iconNode$kc = [\n [\n \"path\",\n {\n d: \"M17 21a1 1 0 0 0 1-1v-5.35c0-.457.316-.844.727-1.041a4 4 0 0 0-2.134-7.589 5 5 0 0 0-9.186 0 4 4 0 0 0-2.134 7.588c.411.198.727.585.727 1.041V20a1 1 0 0 0 1 1Z\",\n key: \"1qvrer\"\n }\n ],\n [\n \"path\",\n {\n d: \"M6 17h12\",\n key: \"1jwigz\"\n }\n ]\n];\nconst ChefHat = createLucideIcon(\"chef-hat\", __iconNode$kc);\nconst __iconNode$kb = [\n [\n \"path\",\n {\n d: \"M2 17a5 5 0 0 0 10 0c0-2.76-2.5-5-5-3-2.5-2-5 .24-5 3Z\",\n key: \"cvxqlc\"\n }\n ],\n [\n \"path\",\n {\n d: \"M12 17a5 5 0 0 0 10 0c0-2.76-2.5-5-5-3-2.5-2-5 .24-5 3Z\",\n key: \"1ostrc\"\n }\n ],\n [\n \"path\",\n {\n d: \"M7 14c3.22-2.91 4.29-8.75 5-12 1.66 2.38 4.94 9 5 12\",\n key: \"hqx58h\"\n }\n ],\n [\n \"path\",\n {\n d: \"M22 9c-4.29 0-7.14-2.33-10-7 5.71 0 10 4.67 10 7Z\",\n key: \"eykp1o\"\n }\n ]\n];\nconst Cherry = createLucideIcon(\"cherry\", __iconNode$kb);\nconst __iconNode$ka = [\n [\n \"path\",\n {\n d: \"m6 9 6 6 6-6\",\n key: \"qrunsl\"\n }\n ]\n];\nconst ChevronDown = createLucideIcon(\"chevron-down\", __iconNode$ka);\nconst __iconNode$k9 = [\n [\n \"path\",\n {\n d: \"m17 18-6-6 6-6\",\n key: \"1yerx2\"\n }\n ],\n [\n \"path\",\n {\n d: \"M7 6v12\",\n key: \"1p53r6\"\n }\n ]\n];\nconst ChevronFirst = createLucideIcon(\"chevron-first\", __iconNode$k9);\nconst __iconNode$k8 = [\n [\n \"path\",\n {\n d: \"m7 18 6-6-6-6\",\n key: \"lwmzdw\"\n }\n ],\n [\n \"path\",\n {\n d: \"M17 6v12\",\n key: \"1o0aio\"\n }\n ]\n];\nconst ChevronLast = createLucideIcon(\"chevron-last\", __iconNode$k8);\nconst __iconNode$k7 = [\n [\n \"path\",\n {\n d: \"m15 18-6-6 6-6\",\n key: \"1wnfg3\"\n }\n ]\n];\nconst ChevronLeft = createLucideIcon(\"chevron-left\", __iconNode$k7);\nconst __iconNode$k6 = [\n [\n \"path\",\n {\n d: \"m9 18 6-6-6-6\",\n key: \"mthhwq\"\n }\n ]\n];\nconst ChevronRight = createLucideIcon(\"chevron-right\", __iconNode$k6);\nconst __iconNode$k5 = [\n [\n \"path\",\n {\n d: \"m18 15-6-6-6 6\",\n key: \"153udz\"\n }\n ]\n];\nconst ChevronUp = createLucideIcon(\"chevron-up\", __iconNode$k5);\nconst __iconNode$k4 = [\n [\n \"path\",\n {\n d: \"m7 20 5-5 5 5\",\n key: \"13a0gw\"\n }\n ],\n [\n \"path\",\n {\n d: \"m7 4 5 5 5-5\",\n key: \"1kwcof\"\n }\n ]\n];\nconst ChevronsDownUp = createLucideIcon(\"chevrons-down-up\", __iconNode$k4);\nconst __iconNode$k3 = [\n [\n \"path\",\n {\n d: \"m7 6 5 5 5-5\",\n key: \"1lc07p\"\n }\n ],\n [\n \"path\",\n {\n d: \"m7 13 5 5 5-5\",\n key: \"1d48rs\"\n }\n ]\n];\nconst ChevronsDown = createLucideIcon(\"chevrons-down\", __iconNode$k3);\nconst __iconNode$k2 = [\n [\n \"path\",\n {\n d: \"M12 12h.01\",\n key: \"1mp3jc\"\n }\n ],\n [\n \"path\",\n {\n d: \"M16 12h.01\",\n key: \"1l6xoz\"\n }\n ],\n [\n \"path\",\n {\n d: \"m17 7 5 5-5 5\",\n key: \"1xlxn0\"\n }\n ],\n [\n \"path\",\n {\n d: \"m7 7-5 5 5 5\",\n key: \"19njba\"\n }\n ],\n [\n \"path\",\n {\n d: \"M8 12h.01\",\n key: \"czm47f\"\n }\n ]\n];\nconst ChevronsLeftRightEllipsis = createLucideIcon(\"chevrons-left-right-ellipsis\", __iconNode$k2);\nconst __iconNode$k1 = [\n [\n \"path\",\n {\n d: \"m9 7-5 5 5 5\",\n key: \"j5w590\"\n }\n ],\n [\n \"path\",\n {\n d: \"m15 7 5 5-5 5\",\n key: \"1bl6da\"\n }\n ]\n];\nconst ChevronsLeftRight = createLucideIcon(\"chevrons-left-right\", __iconNode$k1);\nconst __iconNode$k0 = [\n [\n \"path\",\n {\n d: \"m11 17-5-5 5-5\",\n key: \"13zhaf\"\n }\n ],\n [\n \"path\",\n {\n d: \"m18 17-5-5 5-5\",\n key: \"h8a8et\"\n }\n ]\n];\nconst ChevronsLeft = createLucideIcon(\"chevrons-left\", __iconNode$k0);\nconst __iconNode$j$ = [\n [\n \"path\",\n {\n d: \"m20 17-5-5 5-5\",\n key: \"30x0n2\"\n }\n ],\n [\n \"path\",\n {\n d: \"m4 17 5-5-5-5\",\n key: \"16spf4\"\n }\n ]\n];\nconst ChevronsRightLeft = createLucideIcon(\"chevrons-right-left\", __iconNode$j$);\nconst __iconNode$j_ = [\n [\n \"path\",\n {\n d: \"m6 17 5-5-5-5\",\n key: \"xnjwq\"\n }\n ],\n [\n \"path\",\n {\n d: \"m13 17 5-5-5-5\",\n key: \"17xmmf\"\n }\n ]\n];\nconst ChevronsRight = createLucideIcon(\"chevrons-right\", __iconNode$j_);\nconst __iconNode$jZ = [\n [\n \"path\",\n {\n d: \"m7 15 5 5 5-5\",\n key: \"1hf1tw\"\n }\n ],\n [\n \"path\",\n {\n d: \"m7 9 5-5 5 5\",\n key: \"sgt6xg\"\n }\n ]\n];\nconst ChevronsUpDown = createLucideIcon(\"chevrons-up-down\", __iconNode$jZ);\nconst __iconNode$jY = [\n [\n \"path\",\n {\n d: \"m17 11-5-5-5 5\",\n key: \"e8nh98\"\n }\n ],\n [\n \"path\",\n {\n d: \"m17 18-5-5-5 5\",\n key: \"2avn1x\"\n }\n ]\n];\nconst ChevronsUp = createLucideIcon(\"chevrons-up\", __iconNode$jY);\nconst __iconNode$jX = [\n [\n \"circle\",\n {\n cx: \"12\",\n cy: \"12\",\n r: \"10\",\n key: \"1mglay\"\n }\n ],\n [\n \"circle\",\n {\n cx: \"12\",\n cy: \"12\",\n r: \"4\",\n key: \"4exip2\"\n }\n ],\n [\n \"line\",\n {\n x1: \"21.17\",\n x2: \"12\",\n y1: \"8\",\n y2: \"8\",\n key: \"a0cw5f\"\n }\n ],\n [\n \"line\",\n {\n x1: \"3.95\",\n x2: \"8.54\",\n y1: \"6.06\",\n y2: \"14\",\n key: \"1kftof\"\n }\n ],\n [\n \"line\",\n {\n x1: \"10.88\",\n x2: \"15.46\",\n y1: \"21.94\",\n y2: \"14\",\n key: \"1ymyh8\"\n }\n ]\n];\nconst Chrome = createLucideIcon(\"chrome\", __iconNode$jX);\nconst __iconNode$jW = [\n [\n \"path\",\n {\n d: \"M12 12H3a1 1 0 0 0-1 1v2a1 1 0 0 0 1 1h13\",\n key: \"1gdiyg\"\n }\n ],\n [\n \"path\",\n {\n d: \"M18 8c0-2.5-2-2.5-2-5\",\n key: \"1il607\"\n }\n ],\n [\n \"path\",\n {\n d: \"m2 2 20 20\",\n key: \"1ooewy\"\n }\n ],\n [\n \"path\",\n {\n d: \"M21 12a1 1 0 0 1 1 1v2a1 1 0 0 1-.5.866\",\n key: \"166zjj\"\n }\n ],\n [\n \"path\",\n {\n d: \"M22 8c0-2.5-2-2.5-2-5\",\n key: \"1gah44\"\n }\n ],\n [\n \"path\",\n {\n d: \"M7 12v4\",\n key: \"jqww69\"\n }\n ]\n];\nconst CigaretteOff = createLucideIcon(\"cigarette-off\", __iconNode$jW);\nconst __iconNode$jV = [\n [\n \"path\",\n {\n d: \"M10 9h4\",\n key: \"u4k05v\"\n }\n ],\n [\n \"path\",\n {\n d: \"M12 7v5\",\n key: \"ma6bk\"\n }\n ],\n [\n \"path\",\n {\n d: \"M14 22v-4a2 2 0 0 0-4 0v4\",\n key: \"1pdhuj\"\n }\n ],\n [\n \"path\",\n {\n d: \"M18 22V5.618a1 1 0 0 0-.553-.894l-4.553-2.277a2 2 0 0 0-1.788 0L6.553 4.724A1 1 0 0 0 6 5.618V22\",\n key: \"1rkokr\"\n }\n ],\n [\n \"path\",\n {\n d: \"m18 7 3.447 1.724a1 1 0 0 1 .553.894V20a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2V9.618a1 1 0 0 1 .553-.894L6 7\",\n key: \"1w6esw\"\n }\n ]\n];\nconst Church = createLucideIcon(\"church\", __iconNode$jV);\nconst __iconNode$jU = [\n [\n \"path\",\n {\n d: \"M17 12H3a1 1 0 0 0-1 1v2a1 1 0 0 0 1 1h14\",\n key: \"1mb5g1\"\n }\n ],\n [\n \"path\",\n {\n d: \"M18 8c0-2.5-2-2.5-2-5\",\n key: \"1il607\"\n }\n ],\n [\n \"path\",\n {\n d: \"M21 16a1 1 0 0 0 1-1v-2a1 1 0 0 0-1-1\",\n key: \"1yl5r7\"\n }\n ],\n [\n \"path\",\n {\n d: \"M22 8c0-2.5-2-2.5-2-5\",\n key: \"1gah44\"\n }\n ],\n [\n \"path\",\n {\n d: \"M7 12v4\",\n key: \"jqww69\"\n }\n ]\n];\nconst Cigarette = createLucideIcon(\"cigarette\", __iconNode$jU);\nconst __iconNode$jT = [\n [\n \"circle\",\n {\n cx: \"12\",\n cy: \"12\",\n r: \"10\",\n key: \"1mglay\"\n }\n ],\n [\n \"line\",\n {\n x1: \"12\",\n x2: \"12\",\n y1: \"8\",\n y2: \"12\",\n key: \"1pkeuh\"\n }\n ],\n [\n \"line\",\n {\n x1: \"12\",\n x2: \"12.01\",\n y1: \"16\",\n y2: \"16\",\n key: \"4dfq90\"\n }\n ]\n];\nconst CircleAlert = createLucideIcon(\"circle-alert\", __iconNode$jT);\nconst __iconNode$jS = [\n [\n \"circle\",\n {\n cx: \"12\",\n cy: \"12\",\n r: \"10\",\n key: \"1mglay\"\n }\n ],\n [\n \"path\",\n {\n d: \"M12 8v8\",\n key: \"napkw2\"\n }\n ],\n [\n \"path\",\n {\n d: \"m8 12 4 4 4-4\",\n key: \"k98ssh\"\n }\n ]\n];\nconst CircleArrowDown = createLucideIcon(\"circle-arrow-down\", __iconNode$jS);\nconst __iconNode$jR = [\n [\n \"circle\",\n {\n cx: \"12\",\n cy: \"12\",\n r: \"10\",\n key: \"1mglay\"\n }\n ],\n [\n \"path\",\n {\n d: \"m12 8-4 4 4 4\",\n key: \"15vm53\"\n }\n ],\n [\n \"path\",\n {\n d: \"M16 12H8\",\n key: \"1fr5h0\"\n }\n ]\n];\nconst CircleArrowLeft = createLucideIcon(\"circle-arrow-left\", __iconNode$jR);\nconst __iconNode$jQ = [\n [\n \"path\",\n {\n d: \"M2 12a10 10 0 1 1 10 10\",\n key: \"1yn6ov\"\n }\n ],\n [\n \"path\",\n {\n d: \"m2 22 10-10\",\n key: \"28ilpk\"\n }\n ],\n [\n \"path\",\n {\n d: \"M8 22H2v-6\",\n key: \"sulq54\"\n }\n ]\n];\nconst CircleArrowOutDownLeft = createLucideIcon(\"circle-arrow-out-down-left\", __iconNode$jQ);\nconst __iconNode$jP = [\n [\n \"path\",\n {\n d: \"M12 22a10 10 0 1 1 10-10\",\n key: \"130bv5\"\n }\n ],\n [\n \"path\",\n {\n d: \"M22 22 12 12\",\n key: \"131aw7\"\n }\n ],\n [\n \"path\",\n {\n d: \"M22 16v6h-6\",\n key: \"1gvm70\"\n }\n ]\n];\nconst CircleArrowOutDownRight = createLucideIcon(\"circle-arrow-out-down-right\", __iconNode$jP);\nconst __iconNode$jO = [\n [\n \"path\",\n {\n d: \"M2 8V2h6\",\n key: \"hiwtdz\"\n }\n ],\n [\n \"path\",\n {\n d: \"m2 2 10 10\",\n key: \"1oh8rs\"\n }\n ],\n [\n \"path\",\n {\n d: \"M12 2A10 10 0 1 1 2 12\",\n key: \"rrk4fa\"\n }\n ]\n];\nconst CircleArrowOutUpLeft = createLucideIcon(\"circle-arrow-out-up-left\", __iconNode$jO);\nconst __iconNode$jN = [\n [\n \"path\",\n {\n d: \"M22 12A10 10 0 1 1 12 2\",\n key: \"1fm58d\"\n }\n ],\n [\n \"path\",\n {\n d: \"M22 2 12 12\",\n key: \"yg2myt\"\n }\n ],\n [\n \"path\",\n {\n d: \"M16 2h6v6\",\n key: \"zan5cs\"\n }\n ]\n];\nconst CircleArrowOutUpRight = createLucideIcon(\"circle-arrow-out-up-right\", __iconNode$jN);\nconst __iconNode$jM = [\n [\n \"circle\",\n {\n cx: \"12\",\n cy: \"12\",\n r: \"10\",\n key: \"1mglay\"\n }\n ],\n [\n \"path\",\n {\n d: \"m12 16 4-4-4-4\",\n key: \"1i9zcv\"\n }\n ],\n [\n \"path\",\n {\n d: \"M8 12h8\",\n key: \"1wcyev\"\n }\n ]\n];\nconst CircleArrowRight = createLucideIcon(\"circle-arrow-right\", __iconNode$jM);\nconst __iconNode$jL = [\n [\n \"circle\",\n {\n cx: \"12\",\n cy: \"12\",\n r: \"10\",\n key: \"1mglay\"\n }\n ],\n [\n \"path\",\n {\n d: \"m16 12-4-4-4 4\",\n key: \"177agl\"\n }\n ],\n [\n \"path\",\n {\n d: \"M12 16V8\",\n key: \"1sbj14\"\n }\n ]\n];\nconst CircleArrowUp = createLucideIcon(\"circle-arrow-up\", __iconNode$jL);\nconst __iconNode$jK = [\n [\n \"path\",\n {\n d: \"M21.801 10A10 10 0 1 1 17 3.335\",\n key: \"yps3ct\"\n }\n ],\n [\n \"path\",\n {\n d: \"m9 11 3 3L22 4\",\n key: \"1pflzl\"\n }\n ]\n];\nconst CircleCheckBig = createLucideIcon(\"circle-check-big\", __iconNode$jK);\nconst __iconNode$jJ = [\n [\n \"circle\",\n {\n cx: \"12\",\n cy: \"12\",\n r: \"10\",\n key: \"1mglay\"\n }\n ],\n [\n \"path\",\n {\n d: \"m9 12 2 2 4-4\",\n key: \"dzmm74\"\n }\n ]\n];\nconst CircleCheck = createLucideIcon(\"circle-check\", __iconNode$jJ);\nconst __iconNode$jI = [\n [\n \"circle\",\n {\n cx: \"12\",\n cy: \"12\",\n r: \"10\",\n key: \"1mglay\"\n }\n ],\n [\n \"path\",\n {\n d: \"m16 10-4 4-4-4\",\n key: \"894hmk\"\n }\n ]\n];\nconst CircleChevronDown = createLucideIcon(\"circle-chevron-down\", __iconNode$jI);\nconst __iconNode$jH = [\n [\n \"circle\",\n {\n cx: \"12\",\n cy: \"12\",\n r: \"10\",\n key: \"1mglay\"\n }\n ],\n [\n \"path\",\n {\n d: \"m14 16-4-4 4-4\",\n key: \"ojs7w8\"\n }\n ]\n];\nconst CircleChevronLeft = createLucideIcon(\"circle-chevron-left\", __iconNode$jH);\nconst __iconNode$jG = [\n [\n \"circle\",\n {\n cx: \"12\",\n cy: \"12\",\n r: \"10\",\n key: \"1mglay\"\n }\n ],\n [\n \"path\",\n {\n d: \"m10 8 4 4-4 4\",\n key: \"1wy4r4\"\n }\n ]\n];\nconst CircleChevronRight = createLucideIcon(\"circle-chevron-right\", __iconNode$jG);\nconst __iconNode$jF = [\n [\n \"circle\",\n {\n cx: \"12\",\n cy: \"12\",\n r: \"10\",\n key: \"1mglay\"\n }\n ],\n [\n \"path\",\n {\n d: \"m8 14 4-4 4 4\",\n key: \"fy2ptz\"\n }\n ]\n];\nconst CircleChevronUp = createLucideIcon(\"circle-chevron-up\", __iconNode$jF);\nconst __iconNode$jE = [\n [\n \"path\",\n {\n d: \"M10.1 2.182a10 10 0 0 1 3.8 0\",\n key: \"5ilxe3\"\n }\n ],\n [\n \"path\",\n {\n d: \"M13.9 21.818a10 10 0 0 1-3.8 0\",\n key: \"11zvb9\"\n }\n ],\n [\n \"path\",\n {\n d: \"M17.609 3.721a10 10 0 0 1 2.69 2.7\",\n key: \"1iw5b2\"\n }\n ],\n [\n \"path\",\n {\n d: \"M2.182 13.9a10 10 0 0 1 0-3.8\",\n key: \"c0bmvh\"\n }\n ],\n [\n \"path\",\n {\n d: \"M20.279 17.609a10 10 0 0 1-2.7 2.69\",\n key: \"1ruxm7\"\n }\n ],\n [\n \"path\",\n {\n d: \"M21.818 10.1a10 10 0 0 1 0 3.8\",\n key: \"qkgqxc\"\n }\n ],\n [\n \"path\",\n {\n d: \"M3.721 6.391a10 10 0 0 1 2.7-2.69\",\n key: \"1mcia2\"\n }\n ],\n [\n \"path\",\n {\n d: \"M6.391 20.279a10 10 0 0 1-2.69-2.7\",\n key: \"1fvljs\"\n }\n ]\n];\nconst CircleDashed = createLucideIcon(\"circle-dashed\", __iconNode$jE);\nconst __iconNode$jD = [\n [\n \"line\",\n {\n x1: \"8\",\n x2: \"16\",\n y1: \"12\",\n y2: \"12\",\n key: \"1jonct\"\n }\n ],\n [\n \"line\",\n {\n x1: \"12\",\n x2: \"12\",\n y1: \"16\",\n y2: \"16\",\n key: \"aqc6ln\"\n }\n ],\n [\n \"line\",\n {\n x1: \"12\",\n x2: \"12\",\n y1: \"8\",\n y2: \"8\",\n key: \"1mkcni\"\n }\n ],\n [\n \"circle\",\n {\n cx: \"12\",\n cy: \"12\",\n r: \"10\",\n key: \"1mglay\"\n }\n ]\n];\nconst CircleDivide = createLucideIcon(\"circle-divide\", __iconNode$jD);\nconst __iconNode$jC = [\n [\n \"circle\",\n {\n cx: \"12\",\n cy: \"12\",\n r: \"10\",\n key: \"1mglay\"\n }\n ],\n [\n \"path\",\n {\n d: \"M16 8h-6a2 2 0 1 0 0 4h4a2 2 0 1 1 0 4H8\",\n key: \"1h4pet\"\n }\n ],\n [\n \"path\",\n {\n d: \"M12 18V6\",\n key: \"zqpxq5\"\n }\n ]\n];\nconst CircleDollarSign = createLucideIcon(\"circle-dollar-sign\", __iconNode$jC);\nconst __iconNode$jB = [\n [\n \"path\",\n {\n d: \"M10.1 2.18a9.93 9.93 0 0 1 3.8 0\",\n key: \"1qdqn0\"\n }\n ],\n [\n \"path\",\n {\n d: \"M17.6 3.71a9.95 9.95 0 0 1 2.69 2.7\",\n key: \"1bq7p6\"\n }\n ],\n [\n \"path\",\n {\n d: \"M21.82 10.1a9.93 9.93 0 0 1 0 3.8\",\n key: \"1rlaqf\"\n }\n ],\n [\n \"path\",\n {\n d: \"M20.29 17.6a9.95 9.95 0 0 1-2.7 2.69\",\n key: \"1xk03u\"\n }\n ],\n [\n \"path\",\n {\n d: \"M13.9 21.82a9.94 9.94 0 0 1-3.8 0\",\n key: \"l7re25\"\n }\n ],\n [\n \"path\",\n {\n d: \"M6.4 20.29a9.95 9.95 0 0 1-2.69-2.7\",\n key: \"1v18p6\"\n }\n ],\n [\n \"path\",\n {\n d: \"M2.18 13.9a9.93 9.93 0 0 1 0-3.8\",\n key: \"xdo6bj\"\n }\n ],\n [\n \"path\",\n {\n d: \"M3.71 6.4a9.95 9.95 0 0 1 2.7-2.69\",\n key: \"1jjmaz\"\n }\n ],\n [\n \"circle\",\n {\n cx: \"12\",\n cy: \"12\",\n r: \"1\",\n key: \"41hilf\"\n }\n ]\n];\nconst CircleDotDashed = createLucideIcon(\"circle-dot-dashed\", __iconNode$jB);\nconst __iconNode$jA = [\n [\n \"circle\",\n {\n cx: \"12\",\n cy: \"12\",\n r: \"10\",\n key: \"1mglay\"\n }\n ],\n [\n \"circle\",\n {\n cx: \"12\",\n cy: \"12\",\n r: \"1\",\n key: \"41hilf\"\n }\n ]\n];\nconst CircleDot = createLucideIcon(\"circle-dot\", __iconNode$jA);\nconst __iconNode$jz = [\n [\n \"circle\",\n {\n cx: \"12\",\n cy: \"12\",\n r: \"10\",\n key: \"1mglay\"\n }\n ],\n [\n \"path\",\n {\n d: \"M17 12h.01\",\n key: \"1m0b6t\"\n }\n ],\n [\n \"path\",\n {\n d: \"M12 12h.01\",\n key: \"1mp3jc\"\n }\n ],\n [\n \"path\",\n {\n d: \"M7 12h.01\",\n key: \"eqddd0\"\n }\n ]\n];\nconst CircleEllipsis = createLucideIcon(\"circle-ellipsis\", __iconNode$jz);\nconst __iconNode$jy = [\n [\n \"path\",\n {\n d: \"M7 10h10\",\n key: \"1101jm\"\n }\n ],\n [\n \"path\",\n {\n d: \"M7 14h10\",\n key: \"1mhdw3\"\n }\n ],\n [\n \"circle\",\n {\n cx: \"12\",\n cy: \"12\",\n r: \"10\",\n key: \"1mglay\"\n }\n ]\n];\nconst CircleEqual = createLucideIcon(\"circle-equal\", __iconNode$jy);\nconst __iconNode$jx = [\n [\n \"path\",\n {\n d: \"M12 2a10 10 0 0 1 7.38 16.75\",\n key: \"175t95\"\n }\n ],\n [\n \"path\",\n {\n d: \"m16 12-4-4-4 4\",\n key: \"177agl\"\n }\n ],\n [\n \"path\",\n {\n d: \"M12 16V8\",\n key: \"1sbj14\"\n }\n ],\n [\n \"path\",\n {\n d: \"M2.5 8.875a10 10 0 0 0-.5 3\",\n key: \"1vce0s\"\n }\n ],\n [\n \"path\",\n {\n d: \"M2.83 16a10 10 0 0 0 2.43 3.4\",\n key: \"o3fkw4\"\n }\n ],\n [\n \"path\",\n {\n d: \"M4.636 5.235a10 10 0 0 1 .891-.857\",\n key: \"1szpfk\"\n }\n ],\n [\n \"path\",\n {\n d: \"M8.644 21.42a10 10 0 0 0 7.631-.38\",\n key: \"9yhvd4\"\n }\n ]\n];\nconst CircleFadingArrowUp = createLucideIcon(\"circle-fading-arrow-up\", __iconNode$jx);\nconst __iconNode$jw = [\n [\n \"path\",\n {\n d: \"M12 2a10 10 0 0 1 7.38 16.75\",\n key: \"175t95\"\n }\n ],\n [\n \"path\",\n {\n d: \"M12 8v8\",\n key: \"napkw2\"\n }\n ],\n [\n \"path\",\n {\n d: \"M16 12H8\",\n key: \"1fr5h0\"\n }\n ],\n [\n \"path\",\n {\n d: \"M2.5 8.875a10 10 0 0 0-.5 3\",\n key: \"1vce0s\"\n }\n ],\n [\n \"path\",\n {\n d: \"M2.83 16a10 10 0 0 0 2.43 3.4\",\n key: \"o3fkw4\"\n }\n ],\n [\n \"path\",\n {\n d: \"M4.636 5.235a10 10 0 0 1 .891-.857\",\n key: \"1szpfk\"\n }\n ],\n [\n \"path\",\n {\n d: \"M8.644 21.42a10 10 0 0 0 7.631-.38\",\n key: \"9yhvd4\"\n }\n ]\n];\nconst CircleFadingPlus = createLucideIcon(\"circle-fading-plus\", __iconNode$jw);\nconst __iconNode$jv = [\n [\n \"path\",\n {\n d: \"M15.6 2.7a10 10 0 1 0 5.7 5.7\",\n key: \"1e0p6d\"\n }\n ],\n [\n \"circle\",\n {\n cx: \"12\",\n cy: \"12\",\n r: \"2\",\n key: \"1c9p78\"\n }\n ],\n [\n \"path\",\n {\n d: \"M13.4 10.6 19 5\",\n key: \"1kr7tw\"\n }\n ]\n];\nconst CircleGauge = createLucideIcon(\"circle-gauge\", __iconNode$jv);\nconst __iconNode$ju = [\n [\n \"circle\",\n {\n cx: \"12\",\n cy: \"12\",\n r: \"10\",\n key: \"1mglay\"\n }\n ],\n [\n \"path\",\n {\n d: \"M8 12h8\",\n key: \"1wcyev\"\n }\n ]\n];\nconst CircleMinus = createLucideIcon(\"circle-minus\", __iconNode$ju);\nconst __iconNode$jt = [\n [\n \"path\",\n {\n d: \"m2 2 20 20\",\n key: \"1ooewy\"\n }\n ],\n [\n \"path\",\n {\n d: \"M8.35 2.69A10 10 0 0 1 21.3 15.65\",\n key: \"1pfsoa\"\n }\n ],\n [\n \"path\",\n {\n d: \"M19.08 19.08A10 10 0 1 1 4.92 4.92\",\n key: \"1ablyi\"\n }\n ]\n];\nconst CircleOff = createLucideIcon(\"circle-off\", __iconNode$jt);\nconst __iconNode$js = [\n [\n \"circle\",\n {\n cx: \"12\",\n cy: \"12\",\n r: \"10\",\n key: \"1mglay\"\n }\n ],\n [\n \"path\",\n {\n d: \"m5 5 14 14\",\n key: \"11anup\"\n }\n ],\n [\n \"path\",\n {\n d: \"M13 13a3 3 0 1 0 0-6H9v2\",\n key: \"uoagbd\"\n }\n ],\n [\n \"path\",\n {\n d: \"M9 17v-2.34\",\n key: \"a9qo08\"\n }\n ]\n];\nconst CircleParkingOff = createLucideIcon(\"circle-parking-off\", __iconNode$js);\nconst __iconNode$jr = [\n [\n \"circle\",\n {\n cx: \"12\",\n cy: \"12\",\n r: \"10\",\n key: \"1mglay\"\n }\n ],\n [\n \"path\",\n {\n d: \"M9 17V7h4a3 3 0 0 1 0 6H9\",\n key: \"1dfk2c\"\n }\n ]\n];\nconst CircleParking = createLucideIcon(\"circle-parking\", __iconNode$jr);\nconst __iconNode$jq = [\n [\n \"circle\",\n {\n cx: \"12\",\n cy: \"12\",\n r: \"10\",\n key: \"1mglay\"\n }\n ],\n [\n \"line\",\n {\n x1: \"10\",\n x2: \"10\",\n y1: \"15\",\n y2: \"9\",\n key: \"c1nkhi\"\n }\n ],\n [\n \"line\",\n {\n x1: \"14\",\n x2: \"14\",\n y1: \"15\",\n y2: \"9\",\n key: \"h65svq\"\n }\n ]\n];\nconst CirclePause = createLucideIcon(\"circle-pause\", __iconNode$jq);\nconst __iconNode$jp = [\n [\n \"circle\",\n {\n cx: \"12\",\n cy: \"12\",\n r: \"10\",\n key: \"1mglay\"\n }\n ],\n [\n \"path\",\n {\n d: \"m15 9-6 6\",\n key: \"1uzhvr\"\n }\n ],\n [\n \"path\",\n {\n d: \"M9 9h.01\",\n key: \"1q5me6\"\n }\n ],\n [\n \"path\",\n {\n d: \"M15 15h.01\",\n key: \"lqbp3k\"\n }\n ]\n];\nconst CirclePercent = createLucideIcon(\"circle-percent\", __iconNode$jp);\nconst __iconNode$jo = [\n [\n \"circle\",\n {\n cx: \"12\",\n cy: \"12\",\n r: \"10\",\n key: \"1mglay\"\n }\n ],\n [\n \"polygon\",\n {\n points: \"10 8 16 12 10 16 10 8\",\n key: \"1cimsy\"\n }\n ]\n];\nconst CirclePlay = createLucideIcon(\"circle-play\", __iconNode$jo);\nconst __iconNode$jn = [\n [\n \"circle\",\n {\n cx: \"12\",\n cy: \"12\",\n r: \"10\",\n key: \"1mglay\"\n }\n ],\n [\n \"path\",\n {\n d: \"M8 12h8\",\n key: \"1wcyev\"\n }\n ],\n [\n \"path\",\n {\n d: \"M12 8v8\",\n key: \"napkw2\"\n }\n ]\n];\nconst CirclePlus = createLucideIcon(\"circle-plus\", __iconNode$jn);\nconst __iconNode$jm = [\n [\n \"path\",\n {\n d: \"M10 16V9.5a1 1 0 0 1 5 0\",\n key: \"1i1are\"\n }\n ],\n [\n \"path\",\n {\n d: \"M8 12h4\",\n key: \"qz6y1c\"\n }\n ],\n [\n \"path\",\n {\n d: \"M8 16h7\",\n key: \"sbedsn\"\n }\n ],\n [\n \"circle\",\n {\n cx: \"12\",\n cy: \"12\",\n r: \"10\",\n key: \"1mglay\"\n }\n ]\n];\nconst CirclePoundSterling = createLucideIcon(\"circle-pound-sterling\", __iconNode$jm);\nconst __iconNode$jl = [\n [\n \"path\",\n {\n d: \"M12 7v4\",\n key: \"xawao1\"\n }\n ],\n [\n \"path\",\n {\n d: \"M7.998 9.003a5 5 0 1 0 8-.005\",\n key: \"1pek45\"\n }\n ],\n [\n \"circle\",\n {\n cx: \"12\",\n cy: \"12\",\n r: \"10\",\n key: \"1mglay\"\n }\n ]\n];\nconst CirclePower = createLucideIcon(\"circle-power\", __iconNode$jl);\nconst __iconNode$jk = [\n [\n \"circle\",\n {\n cx: \"12\",\n cy: \"12\",\n r: \"10\",\n key: \"1mglay\"\n }\n ],\n [\n \"path\",\n {\n d: \"M9.09 9a3 3 0 0 1 5.83 1c0 2-3 3-3 3\",\n key: \"1u773s\"\n }\n ],\n [\n \"path\",\n {\n d: \"M12 17h.01\",\n key: \"p32p05\"\n }\n ]\n];\nconst CircleQuestionMark = createLucideIcon(\"circle-question-mark\", __iconNode$jk);\nconst __iconNode$jj = [\n [\n \"path\",\n {\n d: \"M22 2 2 22\",\n key: \"y4kqgn\"\n }\n ],\n [\n \"circle\",\n {\n cx: \"12\",\n cy: \"12\",\n r: \"10\",\n key: \"1mglay\"\n }\n ]\n];\nconst CircleSlash2 = createLucideIcon(\"circle-slash-2\", __iconNode$jj);\nconst __iconNode$ji = [\n [\n \"circle\",\n {\n cx: \"12\",\n cy: \"12\",\n r: \"10\",\n key: \"1mglay\"\n }\n ],\n [\n \"line\",\n {\n x1: \"9\",\n x2: \"15\",\n y1: \"15\",\n y2: \"9\",\n key: \"1dfufj\"\n }\n ]\n];\nconst CircleSlash = createLucideIcon(\"circle-slash\", __iconNode$ji);\nconst __iconNode$jh = [\n [\n \"circle\",\n {\n cx: \"12\",\n cy: \"12\",\n r: \"6\",\n key: \"1vlfrh\"\n }\n ]\n];\nconst CircleSmall = createLucideIcon(\"circle-small\", __iconNode$jh);\nconst __iconNode$jg = [\n [\n \"circle\",\n {\n cx: \"12\",\n cy: \"12\",\n r: \"10\",\n key: \"1mglay\"\n }\n ],\n [\n \"rect\",\n {\n x: \"9\",\n y: \"9\",\n width: \"6\",\n height: \"6\",\n rx: \"1\",\n key: \"1ssd4o\"\n }\n ]\n];\nconst CircleStop = createLucideIcon(\"circle-stop\", __iconNode$jg);\nconst __iconNode$jf = [\n [\n \"path\",\n {\n d: \"M18 20a6 6 0 0 0-12 0\",\n key: \"1qehca\"\n }\n ],\n [\n \"circle\",\n {\n cx: \"12\",\n cy: \"10\",\n r: \"4\",\n key: \"1h16sb\"\n }\n ],\n [\n \"circle\",\n {\n cx: \"12\",\n cy: \"12\",\n r: \"10\",\n key: \"1mglay\"\n }\n ]\n];\nconst CircleUserRound = createLucideIcon(\"circle-user-round\", __iconNode$jf);\nconst __iconNode$je = [\n [\n \"circle\",\n {\n cx: \"12\",\n cy: \"12\",\n r: \"10\",\n key: \"1mglay\"\n }\n ],\n [\n \"circle\",\n {\n cx: \"12\",\n cy: \"10\",\n r: \"3\",\n key: \"ilqhr7\"\n }\n ],\n [\n \"path\",\n {\n d: \"M7 20.662V19a2 2 0 0 1 2-2h6a2 2 0 0 1 2 2v1.662\",\n key: \"154egf\"\n }\n ]\n];\nconst CircleUser = createLucideIcon(\"circle-user\", __iconNode$je);\nconst __iconNode$jd = [\n [\n \"circle\",\n {\n cx: \"12\",\n cy: \"12\",\n r: \"10\",\n key: \"1mglay\"\n }\n ],\n [\n \"path\",\n {\n d: \"m15 9-6 6\",\n key: \"1uzhvr\"\n }\n ],\n [\n \"path\",\n {\n d: \"m9 9 6 6\",\n key: \"z0biqf\"\n }\n ]\n];\nconst CircleX = createLucideIcon(\"circle-x\", __iconNode$jd);\nconst __iconNode$jc = [\n [\n \"circle\",\n {\n cx: \"12\",\n cy: \"12\",\n r: \"10\",\n key: \"1mglay\"\n }\n ]\n];\nconst Circle = createLucideIcon(\"circle\", __iconNode$jc);\nconst __iconNode$jb = [\n [\n \"rect\",\n {\n width: \"18\",\n height: \"18\",\n x: \"3\",\n y: \"3\",\n rx: \"2\",\n key: \"afitv7\"\n }\n ],\n [\n \"path\",\n {\n d: \"M11 9h4a2 2 0 0 0 2-2V3\",\n key: \"1ve2rv\"\n }\n ],\n [\n \"circle\",\n {\n cx: \"9\",\n cy: \"9\",\n r: \"2\",\n key: \"af1f0g\"\n }\n ],\n [\n \"path\",\n {\n d: \"M7 21v-4a2 2 0 0 1 2-2h4\",\n key: \"1fwkro\"\n }\n ],\n [\n \"circle\",\n {\n cx: \"15\",\n cy: \"15\",\n r: \"2\",\n key: \"3i40o0\"\n }\n ]\n];\nconst CircuitBoard = createLucideIcon(\"circuit-board\", __iconNode$jb);\nconst __iconNode$ja = [\n [\n \"path\",\n {\n d: \"M21.66 17.67a1.08 1.08 0 0 1-.04 1.6A12 12 0 0 1 4.73 2.38a1.1 1.1 0 0 1 1.61-.04z\",\n key: \"4ite01\"\n }\n ],\n [\n \"path\",\n {\n d: \"M19.65 15.66A8 8 0 0 1 8.35 4.34\",\n key: \"1gxipu\"\n }\n ],\n [\n \"path\",\n {\n d: \"m14 10-5.5 5.5\",\n key: \"92pfem\"\n }\n ],\n [\n \"path\",\n {\n d: \"M14 17.85V10H6.15\",\n key: \"xqmtsk\"\n }\n ]\n];\nconst Citrus = createLucideIcon(\"citrus\", __iconNode$ja);\nconst __iconNode$j9 = [\n [\n \"path\",\n {\n d: \"M20.2 6 3 11l-.9-2.4c-.3-1.1.3-2.2 1.3-2.5l13.5-4c1.1-.3 2.2.3 2.5 1.3Z\",\n key: \"1tn4o7\"\n }\n ],\n [\n \"path\",\n {\n d: \"m6.2 5.3 3.1 3.9\",\n key: \"iuk76l\"\n }\n ],\n [\n \"path\",\n {\n d: \"m12.4 3.4 3.1 4\",\n key: \"6hsd6n\"\n }\n ],\n [\n \"path\",\n {\n d: \"M3 11h18v8a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2Z\",\n key: \"ltgou9\"\n }\n ]\n];\nconst Clapperboard = createLucideIcon(\"clapperboard\", __iconNode$j9);\nconst __iconNode$j8 = [\n [\n \"rect\",\n {\n width: \"8\",\n height: \"4\",\n x: \"8\",\n y: \"2\",\n rx: \"1\",\n ry: \"1\",\n key: \"tgr4d6\"\n }\n ],\n [\n \"path\",\n {\n d: \"M16 4h2a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2h2\",\n key: \"116196\"\n }\n ],\n [\n \"path\",\n {\n d: \"m9 14 2 2 4-4\",\n key: \"df797q\"\n }\n ]\n];\nconst ClipboardCheck = createLucideIcon(\"clipboard-check\", __iconNode$j8);\nconst __iconNode$j7 = [\n [\n \"rect\",\n {\n width: \"8\",\n height: \"4\",\n x: \"8\",\n y: \"2\",\n rx: \"1\",\n ry: \"1\",\n key: \"tgr4d6\"\n }\n ],\n [\n \"path\",\n {\n d: \"M8 4H6a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2v-2\",\n key: \"4jdomd\"\n }\n ],\n [\n \"path\",\n {\n d: \"M16 4h2a2 2 0 0 1 2 2v4\",\n key: \"3hqy98\"\n }\n ],\n [\n \"path\",\n {\n d: \"M21 14H11\",\n key: \"1bme5i\"\n }\n ],\n [\n \"path\",\n {\n d: \"m15 10-4 4 4 4\",\n key: \"5dvupr\"\n }\n ]\n];\nconst ClipboardCopy = createLucideIcon(\"clipboard-copy\", __iconNode$j7);\nconst __iconNode$j6 = [\n [\n \"rect\",\n {\n width: \"8\",\n height: \"4\",\n x: \"8\",\n y: \"2\",\n rx: \"1\",\n ry: \"1\",\n key: \"tgr4d6\"\n }\n ],\n [\n \"path\",\n {\n d: \"M16 4h2a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2h2\",\n key: \"116196\"\n }\n ],\n [\n \"path\",\n {\n d: \"M12 11h4\",\n key: \"1jrz19\"\n }\n ],\n [\n \"path\",\n {\n d: \"M12 16h4\",\n key: \"n85exb\"\n }\n ],\n [\n \"path\",\n {\n d: \"M8 11h.01\",\n key: \"1dfujw\"\n }\n ],\n [\n \"path\",\n {\n d: \"M8 16h.01\",\n key: \"18s6g9\"\n }\n ]\n];\nconst ClipboardList = createLucideIcon(\"clipboard-list\", __iconNode$j6);\nconst __iconNode$j5 = [\n [\n \"rect\",\n {\n width: \"8\",\n height: \"4\",\n x: \"8\",\n y: \"2\",\n rx: \"1\",\n ry: \"1\",\n key: \"tgr4d6\"\n }\n ],\n [\n \"path\",\n {\n d: \"M16 4h2a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2h2\",\n key: \"116196\"\n }\n ],\n [\n \"path\",\n {\n d: \"M9 14h6\",\n key: \"159ibu\"\n }\n ]\n];\nconst ClipboardMinus = createLucideIcon(\"clipboard-minus\", __iconNode$j5);\nconst __iconNode$j4 = [\n [\n \"path\",\n {\n d: \"M11 14h10\",\n key: \"1w8e9d\"\n }\n ],\n [\n \"path\",\n {\n d: \"M16 4h2a2 2 0 0 1 2 2v1.344\",\n key: \"1e62lh\"\n }\n ],\n [\n \"path\",\n {\n d: \"m17 18 4-4-4-4\",\n key: \"z2g111\"\n }\n ],\n [\n \"path\",\n {\n d: \"M8 4H6a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h12a2 2 0 0 0 1.793-1.113\",\n key: \"bjbb7m\"\n }\n ],\n [\n \"rect\",\n {\n x: \"8\",\n y: \"2\",\n width: \"8\",\n height: \"4\",\n rx: \"1\",\n key: \"ublpy\"\n }\n ]\n];\nconst ClipboardPaste = createLucideIcon(\"clipboard-paste\", __iconNode$j4);\nconst __iconNode$j3 = [\n [\n \"rect\",\n {\n width: \"8\",\n height: \"4\",\n x: \"8\",\n y: \"2\",\n rx: \"1\",\n key: \"1oijnt\"\n }\n ],\n [\n \"path\",\n {\n d: \"M8 4H6a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2v-.5\",\n key: \"1but9f\"\n }\n ],\n [\n \"path\",\n {\n d: \"M16 4h2a2 2 0 0 1 1.73 1\",\n key: \"1p8n7l\"\n }\n ],\n [\n \"path\",\n {\n d: \"M8 18h1\",\n key: \"13wk12\"\n }\n ],\n [\n \"path\",\n {\n d: \"M21.378 12.626a1 1 0 0 0-3.004-3.004l-4.01 4.012a2 2 0 0 0-.506.854l-.837 2.87a.5.5 0 0 0 .62.62l2.87-.837a2 2 0 0 0 .854-.506z\",\n key: \"2t3380\"\n }\n ]\n];\nconst ClipboardPenLine = createLucideIcon(\"clipboard-pen-line\", __iconNode$j3);\nconst __iconNode$j2 = [\n [\n \"rect\",\n {\n width: \"8\",\n height: \"4\",\n x: \"8\",\n y: \"2\",\n rx: \"1\",\n key: \"1oijnt\"\n }\n ],\n [\n \"path\",\n {\n d: \"M16 4h2a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2h-5.5\",\n key: \"cereej\"\n }\n ],\n [\n \"path\",\n {\n d: \"M4 13.5V6a2 2 0 0 1 2-2h2\",\n key: \"5ua5vh\"\n }\n ],\n [\n \"path\",\n {\n d: \"M13.378 15.626a1 1 0 1 0-3.004-3.004l-5.01 5.012a2 2 0 0 0-.506.854l-.837 2.87a.5.5 0 0 0 .62.62l2.87-.837a2 2 0 0 0 .854-.506z\",\n key: \"1y4qbx\"\n }\n ]\n];\nconst ClipboardPen = createLucideIcon(\"clipboard-pen\", __iconNode$j2);\nconst __iconNode$j1 = [\n [\n \"rect\",\n {\n width: \"8\",\n height: \"4\",\n x: \"8\",\n y: \"2\",\n rx: \"1\",\n ry: \"1\",\n key: \"tgr4d6\"\n }\n ],\n [\n \"path\",\n {\n d: \"M16 4h2a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2h2\",\n key: \"116196\"\n }\n ],\n [\n \"path\",\n {\n d: \"M9 14h6\",\n key: \"159ibu\"\n }\n ],\n [\n \"path\",\n {\n d: \"M12 17v-6\",\n key: \"1y8rbf\"\n }\n ]\n];\nconst ClipboardPlus = createLucideIcon(\"clipboard-plus\", __iconNode$j1);\nconst __iconNode$j0 = [\n [\n \"rect\",\n {\n width: \"8\",\n height: \"4\",\n x: \"8\",\n y: \"2\",\n rx: \"1\",\n ry: \"1\",\n key: \"tgr4d6\"\n }\n ],\n [\n \"path\",\n {\n d: \"M16 4h2a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2h2\",\n key: \"116196\"\n }\n ],\n [\n \"path\",\n {\n d: \"M9 12v-1h6v1\",\n key: \"iehl6m\"\n }\n ],\n [\n \"path\",\n {\n d: \"M11 17h2\",\n key: \"12w5me\"\n }\n ],\n [\n \"path\",\n {\n d: \"M12 11v6\",\n key: \"1bwqyc\"\n }\n ]\n];\nconst ClipboardType = createLucideIcon(\"clipboard-type\", __iconNode$j0);\nconst __iconNode$i$ = [\n [\n \"rect\",\n {\n width: \"8\",\n height: \"4\",\n x: \"8\",\n y: \"2\",\n rx: \"1\",\n ry: \"1\",\n key: \"tgr4d6\"\n }\n ],\n [\n \"path\",\n {\n d: \"M16 4h2a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2h2\",\n key: \"116196\"\n }\n ],\n [\n \"path\",\n {\n d: \"m15 11-6 6\",\n key: \"1toa9n\"\n }\n ],\n [\n \"path\",\n {\n d: \"m9 11 6 6\",\n key: \"wlibny\"\n }\n ]\n];\nconst ClipboardX = createLucideIcon(\"clipboard-x\", __iconNode$i$);\nconst __iconNode$i_ = [\n [\n \"rect\",\n {\n width: \"8\",\n height: \"4\",\n x: \"8\",\n y: \"2\",\n rx: \"1\",\n ry: \"1\",\n key: \"tgr4d6\"\n }\n ],\n [\n \"path\",\n {\n d: \"M16 4h2a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2h2\",\n key: \"116196\"\n }\n ]\n];\nconst Clipboard = createLucideIcon(\"clipboard\", __iconNode$i_);\nconst __iconNode$iZ = [\n [\n \"path\",\n {\n d: \"M12 6v6l2-4\",\n key: \"miptyd\"\n }\n ],\n [\n \"circle\",\n {\n cx: \"12\",\n cy: \"12\",\n r: \"10\",\n key: \"1mglay\"\n }\n ]\n];\nconst Clock1 = createLucideIcon(\"clock-1\", __iconNode$iZ);\nconst __iconNode$iY = [\n [\n \"path\",\n {\n d: \"M12 6v6l-4-2\",\n key: \"cedpoo\"\n }\n ],\n [\n \"circle\",\n {\n cx: \"12\",\n cy: \"12\",\n r: \"10\",\n key: \"1mglay\"\n }\n ]\n];\nconst Clock10 = createLucideIcon(\"clock-10\", __iconNode$iY);\nconst __iconNode$iX = [\n [\n \"path\",\n {\n d: \"M12 6v6l-2-4\",\n key: \"ns39ag\"\n }\n ],\n [\n \"circle\",\n {\n cx: \"12\",\n cy: \"12\",\n r: \"10\",\n key: \"1mglay\"\n }\n ]\n];\nconst Clock11 = createLucideIcon(\"clock-11\", __iconNode$iX);\nconst __iconNode$iW = [\n [\n \"path\",\n {\n d: \"M12 6v6l4-2\",\n key: \"1r2kuh\"\n }\n ],\n [\n \"circle\",\n {\n cx: \"12\",\n cy: \"12\",\n r: \"10\",\n key: \"1mglay\"\n }\n ]\n];\nconst Clock2 = createLucideIcon(\"clock-2\", __iconNode$iW);\nconst __iconNode$iV = [\n [\n \"path\",\n {\n d: \"M12 6v6\",\n key: \"1ipuwl\"\n }\n ],\n [\n \"circle\",\n {\n cx: \"12\",\n cy: \"12\",\n r: \"10\",\n key: \"1mglay\"\n }\n ]\n];\nconst Clock12 = createLucideIcon(\"clock-12\", __iconNode$iV);\nconst __iconNode$iU = [\n [\n \"path\",\n {\n d: \"M12 6v6h4\",\n key: \"135r8i\"\n }\n ],\n [\n \"circle\",\n {\n cx: \"12\",\n cy: \"12\",\n r: \"10\",\n key: \"1mglay\"\n }\n ]\n];\nconst Clock3 = createLucideIcon(\"clock-3\", __iconNode$iU);\nconst __iconNode$iT = [\n [\n \"path\",\n {\n d: \"M12 6v6l4 2\",\n key: \"mmk7yg\"\n }\n ],\n [\n \"circle\",\n {\n cx: \"12\",\n cy: \"12\",\n r: \"10\",\n key: \"1mglay\"\n }\n ]\n];\nconst Clock4 = createLucideIcon(\"clock-4\", __iconNode$iT);\nconst __iconNode$iS = [\n [\n \"path\",\n {\n d: \"M12 6v6l2 4\",\n key: \"1287s9\"\n }\n ],\n [\n \"circle\",\n {\n cx: \"12\",\n cy: \"12\",\n r: \"10\",\n key: \"1mglay\"\n }\n ]\n];\nconst Clock5 = createLucideIcon(\"clock-5\", __iconNode$iS);\nconst __iconNode$iR = [\n [\n \"path\",\n {\n d: \"M12 6v10\",\n key: \"wf7rdh\"\n }\n ],\n [\n \"circle\",\n {\n cx: \"12\",\n cy: \"12\",\n r: \"10\",\n key: \"1mglay\"\n }\n ]\n];\nconst Clock6 = createLucideIcon(\"clock-6\", __iconNode$iR);\nconst __iconNode$iQ = [\n [\n \"path\",\n {\n d: \"M12 6v6l-2 4\",\n key: \"1095bu\"\n }\n ],\n [\n \"circle\",\n {\n cx: \"12\",\n cy: \"12\",\n r: \"10\",\n key: \"1mglay\"\n }\n ]\n];\nconst Clock7 = createLucideIcon(\"clock-7\", __iconNode$iQ);\nconst __iconNode$iP = [\n [\n \"path\",\n {\n d: \"M12 6v6l-4 2\",\n key: \"imc3wl\"\n }\n ],\n [\n \"circle\",\n {\n cx: \"12\",\n cy: \"12\",\n r: \"10\",\n key: \"1mglay\"\n }\n ]\n];\nconst Clock8 = createLucideIcon(\"clock-8\", __iconNode$iP);\nconst __iconNode$iO = [\n [\n \"path\",\n {\n d: \"M12 6v6H8\",\n key: \"u39vzm\"\n }\n ],\n [\n \"circle\",\n {\n cx: \"12\",\n cy: \"12\",\n r: \"10\",\n key: \"1mglay\"\n }\n ]\n];\nconst Clock9 = createLucideIcon(\"clock-9\", __iconNode$iO);\nconst __iconNode$iN = [\n [\n \"path\",\n {\n d: \"M12 6v6l4 2\",\n key: \"mmk7yg\"\n }\n ],\n [\n \"path\",\n {\n d: \"M20 12v5\",\n key: \"12wsvk\"\n }\n ],\n [\n \"path\",\n {\n d: \"M20 21h.01\",\n key: \"1p6o6n\"\n }\n ],\n [\n \"path\",\n {\n d: \"M21.25 8.2A10 10 0 1 0 16 21.16\",\n key: \"17fp9f\"\n }\n ]\n];\nconst ClockAlert = createLucideIcon(\"clock-alert\", __iconNode$iN);\nconst __iconNode$iM = [\n [\n \"path\",\n {\n d: \"M12 6v6l2 1\",\n key: \"19cm8n\"\n }\n ],\n [\n \"path\",\n {\n d: \"M12.337 21.994a10 10 0 1 1 9.588-8.767\",\n key: \"28moa\"\n }\n ],\n [\n \"path\",\n {\n d: \"m14 18 4 4 4-4\",\n key: \"1waygx\"\n }\n ],\n [\n \"path\",\n {\n d: \"M18 14v8\",\n key: \"irew45\"\n }\n ]\n];\nconst ClockArrowDown = createLucideIcon(\"clock-arrow-down\", __iconNode$iM);\nconst __iconNode$iL = [\n [\n \"path\",\n {\n d: \"M12 6v6l1.56.78\",\n key: \"14ed3g\"\n }\n ],\n [\n \"path\",\n {\n d: \"M13.227 21.925a10 10 0 1 1 8.767-9.588\",\n key: \"jwkls1\"\n }\n ],\n [\n \"path\",\n {\n d: \"m14 18 4-4 4 4\",\n key: \"ftkppy\"\n }\n ],\n [\n \"path\",\n {\n d: \"M18 22v-8\",\n key: \"su0gjh\"\n }\n ]\n];\nconst ClockArrowUp = createLucideIcon(\"clock-arrow-up\", __iconNode$iL);\nconst __iconNode$iK = [\n [\n \"path\",\n {\n d: \"M12 2a10 10 0 0 1 7.38 16.75\",\n key: \"175t95\"\n }\n ],\n [\n \"path\",\n {\n d: \"M12 6v6l4 2\",\n key: \"mmk7yg\"\n }\n ],\n [\n \"path\",\n {\n d: \"M2.5 8.875a10 10 0 0 0-.5 3\",\n key: \"1vce0s\"\n }\n ],\n [\n \"path\",\n {\n d: \"M2.83 16a10 10 0 0 0 2.43 3.4\",\n key: \"o3fkw4\"\n }\n ],\n [\n \"path\",\n {\n d: \"M4.636 5.235a10 10 0 0 1 .891-.857\",\n key: \"1szpfk\"\n }\n ],\n [\n \"path\",\n {\n d: \"M8.644 21.42a10 10 0 0 0 7.631-.38\",\n key: \"9yhvd4\"\n }\n ]\n];\nconst ClockFading = createLucideIcon(\"clock-fading\", __iconNode$iK);\nconst __iconNode$iJ = [\n [\n \"path\",\n {\n d: \"M12 6v6l3.644 1.822\",\n key: \"1jmett\"\n }\n ],\n [\n \"path\",\n {\n d: \"M16 19h6\",\n key: \"xwg31i\"\n }\n ],\n [\n \"path\",\n {\n d: \"M19 16v6\",\n key: \"tddt3s\"\n }\n ],\n [\n \"path\",\n {\n d: \"M21.92 13.267a10 10 0 1 0-8.653 8.653\",\n key: \"1u0osk\"\n }\n ]\n];\nconst ClockPlus = createLucideIcon(\"clock-plus\", __iconNode$iJ);\nconst __iconNode$iI = [\n [\n \"path\",\n {\n d: \"M12 6v6l4 2\",\n key: \"mmk7yg\"\n }\n ],\n [\n \"circle\",\n {\n cx: \"12\",\n cy: \"12\",\n r: \"10\",\n key: \"1mglay\"\n }\n ]\n];\nconst Clock = createLucideIcon(\"clock\", __iconNode$iI);\nconst __iconNode$iH = [\n [\n \"path\",\n {\n d: \"M12 12v4\",\n key: \"tww15h\"\n }\n ],\n [\n \"path\",\n {\n d: \"M12 20h.01\",\n key: \"zekei9\"\n }\n ],\n [\n \"path\",\n {\n d: \"M17 18h.5a1 1 0 0 0 0-9h-1.79A7 7 0 1 0 7 17.708\",\n key: \"xsb5ju\"\n }\n ]\n];\nconst CloudAlert = createLucideIcon(\"cloud-alert\", __iconNode$iH);\nconst __iconNode$iG = [\n [\n \"path\",\n {\n d: \"m17 15-5.5 5.5L9 18\",\n key: \"15q87x\"\n }\n ],\n [\n \"path\",\n {\n d: \"M5 17.743A7 7 0 1 1 15.71 10h1.79a4.5 4.5 0 0 1 1.5 8.742\",\n key: \"9ho6ki\"\n }\n ]\n];\nconst CloudCheck = createLucideIcon(\"cloud-check\", __iconNode$iG);\nconst __iconNode$iF = [\n [\n \"path\",\n {\n d: \"m10.852 19.772-.383.924\",\n key: \"r7sl7d\"\n }\n ],\n [\n \"path\",\n {\n d: \"m13.148 14.228.383-.923\",\n key: \"1d5zpm\"\n }\n ],\n [\n \"path\",\n {\n d: \"M13.148 19.772a3 3 0 1 0-2.296-5.544l-.383-.923\",\n key: \"1ydik7\"\n }\n ],\n [\n \"path\",\n {\n d: \"m13.53 20.696-.382-.924a3 3 0 1 1-2.296-5.544\",\n key: \"1m1vsf\"\n }\n ],\n [\n \"path\",\n {\n d: \"m14.772 15.852.923-.383\",\n key: \"660p6e\"\n }\n ],\n [\n \"path\",\n {\n d: \"m14.772 18.148.923.383\",\n key: \"hrcpis\"\n }\n ],\n [\n \"path\",\n {\n d: \"M4.2 15.1a7 7 0 1 1 9.93-9.858A7 7 0 0 1 15.71 8h1.79a4.5 4.5 0 0 1 2.5 8.2\",\n key: \"j2q98n\"\n }\n ],\n [\n \"path\",\n {\n d: \"m9.228 15.852-.923-.383\",\n key: \"1p9ong\"\n }\n ],\n [\n \"path\",\n {\n d: \"m9.228 18.148-.923.383\",\n key: \"6558rz\"\n }\n ]\n];\nconst CloudCog = createLucideIcon(\"cloud-cog\", __iconNode$iF);\nconst __iconNode$iE = [\n [\n \"path\",\n {\n d: \"M12 13v8l-4-4\",\n key: \"1f5nwf\"\n }\n ],\n [\n \"path\",\n {\n d: \"m12 21 4-4\",\n key: \"1lfcce\"\n }\n ],\n [\n \"path\",\n {\n d: \"M4.393 15.269A7 7 0 1 1 15.71 8h1.79a4.5 4.5 0 0 1 2.436 8.284\",\n key: \"ui1hmy\"\n }\n ]\n];\nconst CloudDownload = createLucideIcon(\"cloud-download\", __iconNode$iE);\nconst __iconNode$iD = [\n [\n \"path\",\n {\n d: \"M4 14.899A7 7 0 1 1 15.71 8h1.79a4.5 4.5 0 0 1 2.5 8.242\",\n key: \"1pljnt\"\n }\n ],\n [\n \"path\",\n {\n d: \"M8 19v1\",\n key: \"1dk2by\"\n }\n ],\n [\n \"path\",\n {\n d: \"M8 14v1\",\n key: \"84yxot\"\n }\n ],\n [\n \"path\",\n {\n d: \"M16 19v1\",\n key: \"v220m7\"\n }\n ],\n [\n \"path\",\n {\n d: \"M16 14v1\",\n key: \"g12gj6\"\n }\n ],\n [\n \"path\",\n {\n d: \"M12 21v1\",\n key: \"q8vafk\"\n }\n ],\n [\n \"path\",\n {\n d: \"M12 16v1\",\n key: \"1mx6rx\"\n }\n ]\n];\nconst CloudDrizzle = createLucideIcon(\"cloud-drizzle\", __iconNode$iD);\nconst __iconNode$iC = [\n [\n \"path\",\n {\n d: \"M4 14.899A7 7 0 1 1 15.71 8h1.79a4.5 4.5 0 0 1 2.5 8.242\",\n key: \"1pljnt\"\n }\n ],\n [\n \"path\",\n {\n d: \"M16 17H7\",\n key: \"pygtm1\"\n }\n ],\n [\n \"path\",\n {\n d: \"M17 21H9\",\n key: \"1u2q02\"\n }\n ]\n];\nconst CloudFog = createLucideIcon(\"cloud-fog\", __iconNode$iC);\nconst __iconNode$iB = [\n [\n \"path\",\n {\n d: \"M4 14.899A7 7 0 1 1 15.71 8h1.79a4.5 4.5 0 0 1 2.5 8.242\",\n key: \"1pljnt\"\n }\n ],\n [\n \"path\",\n {\n d: \"M16 14v2\",\n key: \"a1is7l\"\n }\n ],\n [\n \"path\",\n {\n d: \"M8 14v2\",\n key: \"1e9m6t\"\n }\n ],\n [\n \"path\",\n {\n d: \"M16 20h.01\",\n key: \"xwek51\"\n }\n ],\n [\n \"path\",\n {\n d: \"M8 20h.01\",\n key: \"1vjney\"\n }\n ],\n [\n \"path\",\n {\n d: \"M12 16v2\",\n key: \"z66u1j\"\n }\n ],\n [\n \"path\",\n {\n d: \"M12 22h.01\",\n key: \"1urd7a\"\n }\n ]\n];\nconst CloudHail = createLucideIcon(\"cloud-hail\", __iconNode$iB);\nconst __iconNode$iA = [\n [\n \"path\",\n {\n d: \"M6 16.326A7 7 0 1 1 15.71 8h1.79a4.5 4.5 0 0 1 .5 8.973\",\n key: \"1cez44\"\n }\n ],\n [\n \"path\",\n {\n d: \"m13 12-3 5h4l-3 5\",\n key: \"1t22er\"\n }\n ]\n];\nconst CloudLightning = createLucideIcon(\"cloud-lightning\", __iconNode$iA);\nconst __iconNode$iz = [\n [\n \"path\",\n {\n d: \"M10.188 8.5A6 6 0 0 1 16 4a1 1 0 0 0 6 6 6 6 0 0 1-3 5.197\",\n key: \"erj67n\"\n }\n ],\n [\n \"path\",\n {\n d: \"M11 20v2\",\n key: \"174qtz\"\n }\n ],\n [\n \"path\",\n {\n d: \"M3 20a5 5 0 1 1 8.9-4H13a3 3 0 0 1 2 5.24\",\n key: \"1qmrp3\"\n }\n ],\n [\n \"path\",\n {\n d: \"M7 19v2\",\n key: \"12npes\"\n }\n ]\n];\nconst CloudMoonRain = createLucideIcon(\"cloud-moon-rain\", __iconNode$iz);\nconst __iconNode$iy = [\n [\n \"path\",\n {\n d: \"M10.188 8.5A6 6 0 0 1 16 4a1 1 0 0 0 6 6 6 6 0 0 1-3 5.197\",\n key: \"erj67n\"\n }\n ],\n [\n \"path\",\n {\n d: \"M13 16a3 3 0 1 1 0 6H7a5 5 0 1 1 4.9-6Z\",\n key: \"p44pc9\"\n }\n ]\n];\nconst CloudMoon = createLucideIcon(\"cloud-moon\", __iconNode$iy);\nconst __iconNode$ix = [\n [\n \"path\",\n {\n d: \"m2 2 20 20\",\n key: \"1ooewy\"\n }\n ],\n [\n \"path\",\n {\n d: \"M5.782 5.782A7 7 0 0 0 9 19h8.5a4.5 4.5 0 0 0 1.307-.193\",\n key: \"yfwify\"\n }\n ],\n [\n \"path\",\n {\n d: \"M21.532 16.5A4.5 4.5 0 0 0 17.5 10h-1.79A7.008 7.008 0 0 0 10 5.07\",\n key: \"jlfiyv\"\n }\n ]\n];\nconst CloudOff = createLucideIcon(\"cloud-off\", __iconNode$ix);\nconst __iconNode$iw = [\n [\n \"path\",\n {\n d: \"M4 14.899A7 7 0 1 1 15.71 8h1.79a4.5 4.5 0 0 1 2.5 8.242\",\n key: \"1pljnt\"\n }\n ],\n [\n \"path\",\n {\n d: \"M16 14v6\",\n key: \"1j4efv\"\n }\n ],\n [\n \"path\",\n {\n d: \"M8 14v6\",\n key: \"17c4r9\"\n }\n ],\n [\n \"path\",\n {\n d: \"M12 16v6\",\n key: \"c8a4gj\"\n }\n ]\n];\nconst CloudRain = createLucideIcon(\"cloud-rain\", __iconNode$iw);\nconst __iconNode$iv = [\n [\n \"path\",\n {\n d: \"M4 14.899A7 7 0 1 1 15.71 8h1.79a4.5 4.5 0 0 1 2.5 8.242\",\n key: \"1pljnt\"\n }\n ],\n [\n \"path\",\n {\n d: \"m9.2 22 3-7\",\n key: \"sb5f6j\"\n }\n ],\n [\n \"path\",\n {\n d: \"m9 13-3 7\",\n key: \"500co5\"\n }\n ],\n [\n \"path\",\n {\n d: \"m17 13-3 7\",\n key: \"8t2fiy\"\n }\n ]\n];\nconst CloudRainWind = createLucideIcon(\"cloud-rain-wind\", __iconNode$iv);\nconst __iconNode$iu = [\n [\n \"path\",\n {\n d: \"M4 14.899A7 7 0 1 1 15.71 8h1.79a4.5 4.5 0 0 1 2.5 8.242\",\n key: \"1pljnt\"\n }\n ],\n [\n \"path\",\n {\n d: \"M8 15h.01\",\n key: \"a7atzg\"\n }\n ],\n [\n \"path\",\n {\n d: \"M8 19h.01\",\n key: \"puxtts\"\n }\n ],\n [\n \"path\",\n {\n d: \"M12 17h.01\",\n key: \"p32p05\"\n }\n ],\n [\n \"path\",\n {\n d: \"M12 21h.01\",\n key: \"h35vbk\"\n }\n ],\n [\n \"path\",\n {\n d: \"M16 15h.01\",\n key: \"rnfrdf\"\n }\n ],\n [\n \"path\",\n {\n d: \"M16 19h.01\",\n key: \"1vcnzz\"\n }\n ]\n];\nconst CloudSnow = createLucideIcon(\"cloud-snow\", __iconNode$iu);\nconst __iconNode$it = [\n [\n \"path\",\n {\n d: \"M12 2v2\",\n key: \"tus03m\"\n }\n ],\n [\n \"path\",\n {\n d: \"m4.93 4.93 1.41 1.41\",\n key: \"149t6j\"\n }\n ],\n [\n \"path\",\n {\n d: \"M20 12h2\",\n key: \"1q8mjw\"\n }\n ],\n [\n \"path\",\n {\n d: \"m19.07 4.93-1.41 1.41\",\n key: \"1shlcs\"\n }\n ],\n [\n \"path\",\n {\n d: \"M15.947 12.65a4 4 0 0 0-5.925-4.128\",\n key: \"dpwdj0\"\n }\n ],\n [\n \"path\",\n {\n d: \"M3 20a5 5 0 1 1 8.9-4H13a3 3 0 0 1 2 5.24\",\n key: \"1qmrp3\"\n }\n ],\n [\n \"path\",\n {\n d: \"M11 20v2\",\n key: \"174qtz\"\n }\n ],\n [\n \"path\",\n {\n d: \"M7 19v2\",\n key: \"12npes\"\n }\n ]\n];\nconst CloudSunRain = createLucideIcon(\"cloud-sun-rain\", __iconNode$it);\nconst __iconNode$is = [\n [\n \"path\",\n {\n d: \"M12 2v2\",\n key: \"tus03m\"\n }\n ],\n [\n \"path\",\n {\n d: \"m4.93 4.93 1.41 1.41\",\n key: \"149t6j\"\n }\n ],\n [\n \"path\",\n {\n d: \"M20 12h2\",\n key: \"1q8mjw\"\n }\n ],\n [\n \"path\",\n {\n d: \"m19.07 4.93-1.41 1.41\",\n key: \"1shlcs\"\n }\n ],\n [\n \"path\",\n {\n d: \"M15.947 12.65a4 4 0 0 0-5.925-4.128\",\n key: \"dpwdj0\"\n }\n ],\n [\n \"path\",\n {\n d: \"M13 22H7a5 5 0 1 1 4.9-6H13a3 3 0 0 1 0 6Z\",\n key: \"s09mg5\"\n }\n ]\n];\nconst CloudSun = createLucideIcon(\"cloud-sun\", __iconNode$is);\nconst __iconNode$ir = [\n [\n \"path\",\n {\n d: \"M12 13v8\",\n key: \"1l5pq0\"\n }\n ],\n [\n \"path\",\n {\n d: \"M4 14.899A7 7 0 1 1 15.71 8h1.79a4.5 4.5 0 0 1 2.5 8.242\",\n key: \"1pljnt\"\n }\n ],\n [\n \"path\",\n {\n d: \"m8 17 4-4 4 4\",\n key: \"1quai1\"\n }\n ]\n];\nconst CloudUpload = createLucideIcon(\"cloud-upload\", __iconNode$ir);\nconst __iconNode$iq = [\n [\n \"path\",\n {\n d: \"M17.5 19H9a7 7 0 1 1 6.71-9h1.79a4.5 4.5 0 1 1 0 9Z\",\n key: \"p7xjir\"\n }\n ]\n];\nconst Cloud = createLucideIcon(\"cloud\", __iconNode$iq);\nconst __iconNode$ip = [\n [\n \"path\",\n {\n d: \"M16.17 7.83 2 22\",\n key: \"t58vo8\"\n }\n ],\n [\n \"path\",\n {\n d: \"M4.02 12a2.827 2.827 0 1 1 3.81-4.17A2.827 2.827 0 1 1 12 4.02a2.827 2.827 0 1 1 4.17 3.81A2.827 2.827 0 1 1 19.98 12a2.827 2.827 0 1 1-3.81 4.17A2.827 2.827 0 1 1 12 19.98a2.827 2.827 0 1 1-4.17-3.81A1 1 0 1 1 4 12\",\n key: \"17k36q\"\n }\n ],\n [\n \"path\",\n {\n d: \"m7.83 7.83 8.34 8.34\",\n key: \"1d7sxk\"\n }\n ]\n];\nconst Clover = createLucideIcon(\"clover\", __iconNode$ip);\nconst __iconNode$io = [\n [\n \"path\",\n {\n d: \"M17.5 21H9a7 7 0 1 1 6.71-9h1.79a4.5 4.5 0 1 1 0 9Z\",\n key: \"gqqjvc\"\n }\n ],\n [\n \"path\",\n {\n d: \"M22 10a3 3 0 0 0-3-3h-2.207a5.502 5.502 0 0 0-10.702.5\",\n key: \"1p2s76\"\n }\n ]\n];\nconst Cloudy = createLucideIcon(\"cloudy\", __iconNode$io);\nconst __iconNode$in = [\n [\n \"path\",\n {\n d: \"M17.28 9.05a5.5 5.5 0 1 0-10.56 0A5.5 5.5 0 1 0 12 17.66a5.5 5.5 0 1 0 5.28-8.6Z\",\n key: \"27yuqz\"\n }\n ],\n [\n \"path\",\n {\n d: \"M12 17.66L12 22\",\n key: \"ogfahf\"\n }\n ]\n];\nconst Club = createLucideIcon(\"club\", __iconNode$in);\nconst __iconNode$im = [\n [\n \"path\",\n {\n d: \"m18 16 4-4-4-4\",\n key: \"1inbqp\"\n }\n ],\n [\n \"path\",\n {\n d: \"m6 8-4 4 4 4\",\n key: \"15zrgr\"\n }\n ],\n [\n \"path\",\n {\n d: \"m14.5 4-5 16\",\n key: \"e7oirm\"\n }\n ]\n];\nconst CodeXml = createLucideIcon(\"code-xml\", __iconNode$im);\nconst __iconNode$il = [\n [\n \"path\",\n {\n d: \"m16 18 6-6-6-6\",\n key: \"eg8j8\"\n }\n ],\n [\n \"path\",\n {\n d: \"m8 6-6 6 6 6\",\n key: \"ppft3o\"\n }\n ]\n];\nconst Code = createLucideIcon(\"code\", __iconNode$il);\nconst __iconNode$ik = [\n [\n \"polygon\",\n {\n points: \"12 2 22 8.5 22 15.5 12 22 2 15.5 2 8.5 12 2\",\n key: \"srzb37\"\n }\n ],\n [\n \"line\",\n {\n x1: \"12\",\n x2: \"12\",\n y1: \"22\",\n y2: \"15.5\",\n key: \"1t73f2\"\n }\n ],\n [\n \"polyline\",\n {\n points: \"22 8.5 12 15.5 2 8.5\",\n key: \"ajlxae\"\n }\n ],\n [\n \"polyline\",\n {\n points: \"2 15.5 12 8.5 22 15.5\",\n key: \"susrui\"\n }\n ],\n [\n \"line\",\n {\n x1: \"12\",\n x2: \"12\",\n y1: \"2\",\n y2: \"8.5\",\n key: \"2cldga\"\n }\n ]\n];\nconst Codepen = createLucideIcon(\"codepen\", __iconNode$ik);\nconst __iconNode$ij = [\n [\n \"path\",\n {\n d: \"M21 16V8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73l7 4a2 2 0 0 0 2 0l7-4A2 2 0 0 0 21 16z\",\n key: \"yt0hxn\"\n }\n ],\n [\n \"polyline\",\n {\n points: \"7.5 4.21 12 6.81 16.5 4.21\",\n key: \"fabo96\"\n }\n ],\n [\n \"polyline\",\n {\n points: \"7.5 19.79 7.5 14.6 3 12\",\n key: \"z377f1\"\n }\n ],\n [\n \"polyline\",\n {\n points: \"21 12 16.5 14.6 16.5 19.79\",\n key: \"9nrev1\"\n }\n ],\n [\n \"polyline\",\n {\n points: \"3.27 6.96 12 12.01 20.73 6.96\",\n key: \"1180pa\"\n }\n ],\n [\n \"line\",\n {\n x1: \"12\",\n x2: \"12\",\n y1: \"22.08\",\n y2: \"12\",\n key: \"3z3uq6\"\n }\n ]\n];\nconst Codesandbox = createLucideIcon(\"codesandbox\", __iconNode$ij);\nconst __iconNode$ii = [\n [\n \"path\",\n {\n d: \"M10 2v2\",\n key: \"7u0qdc\"\n }\n ],\n [\n \"path\",\n {\n d: \"M14 2v2\",\n key: \"6buw04\"\n }\n ],\n [\n \"path\",\n {\n d: \"M16 8a1 1 0 0 1 1 1v8a4 4 0 0 1-4 4H7a4 4 0 0 1-4-4V9a1 1 0 0 1 1-1h14a4 4 0 1 1 0 8h-1\",\n key: \"pwadti\"\n }\n ],\n [\n \"path\",\n {\n d: \"M6 2v2\",\n key: \"colzsn\"\n }\n ]\n];\nconst Coffee = createLucideIcon(\"coffee\", __iconNode$ii);\nconst __iconNode$ih = [\n [\n \"path\",\n {\n d: \"M12 20a8 8 0 1 0 0-16 8 8 0 0 0 0 16Z\",\n key: \"sobvz5\"\n }\n ],\n [\n \"path\",\n {\n d: \"M12 14a2 2 0 1 0 0-4 2 2 0 0 0 0 4Z\",\n key: \"11i496\"\n }\n ],\n [\n \"path\",\n {\n d: \"M12 2v2\",\n key: \"tus03m\"\n }\n ],\n [\n \"path\",\n {\n d: \"M12 22v-2\",\n key: \"1osdcq\"\n }\n ],\n [\n \"path\",\n {\n d: \"m17 20.66-1-1.73\",\n key: \"eq3orb\"\n }\n ],\n [\n \"path\",\n {\n d: \"M11 10.27 7 3.34\",\n key: \"16pf9h\"\n }\n ],\n [\n \"path\",\n {\n d: \"m20.66 17-1.73-1\",\n key: \"sg0v6f\"\n }\n ],\n [\n \"path\",\n {\n d: \"m3.34 7 1.73 1\",\n key: \"1ulond\"\n }\n ],\n [\n \"path\",\n {\n d: \"M14 12h8\",\n key: \"4f43i9\"\n }\n ],\n [\n \"path\",\n {\n d: \"M2 12h2\",\n key: \"1t8f8n\"\n }\n ],\n [\n \"path\",\n {\n d: \"m20.66 7-1.73 1\",\n key: \"1ow05n\"\n }\n ],\n [\n \"path\",\n {\n d: \"m3.34 17 1.73-1\",\n key: \"nuk764\"\n }\n ],\n [\n \"path\",\n {\n d: \"m17 3.34-1 1.73\",\n key: \"2wel8s\"\n }\n ],\n [\n \"path\",\n {\n d: \"m11 13.73-4 6.93\",\n key: \"794ttg\"\n }\n ]\n];\nconst Cog = createLucideIcon(\"cog\", __iconNode$ih);\nconst __iconNode$ig = [\n [\n \"circle\",\n {\n cx: \"8\",\n cy: \"8\",\n r: \"6\",\n key: \"3yglwk\"\n }\n ],\n [\n \"path\",\n {\n d: \"M18.09 10.37A6 6 0 1 1 10.34 18\",\n key: \"t5s6rm\"\n }\n ],\n [\n \"path\",\n {\n d: \"M7 6h1v4\",\n key: \"1obek4\"\n }\n ],\n [\n \"path\",\n {\n d: \"m16.71 13.88.7.71-2.82 2.82\",\n key: \"1rbuyh\"\n }\n ]\n];\nconst Coins = createLucideIcon(\"coins\", __iconNode$ig);\nconst __iconNode$if = [\n [\n \"rect\",\n {\n width: \"18\",\n height: \"18\",\n x: \"3\",\n y: \"3\",\n rx: \"2\",\n key: \"afitv7\"\n }\n ],\n [\n \"path\",\n {\n d: \"M12 3v18\",\n key: \"108xh3\"\n }\n ]\n];\nconst Columns2 = createLucideIcon(\"columns-2\", __iconNode$if);\nconst __iconNode$ie = [\n [\n \"path\",\n {\n d: \"M10.5 21H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2v5.5\",\n key: \"1g2yzs\"\n }\n ],\n [\n \"path\",\n {\n d: \"m14.3 19.6 1-.4\",\n key: \"11sv9r\"\n }\n ],\n [\n \"path\",\n {\n d: \"M15 3v7.5\",\n key: \"7lm50a\"\n }\n ],\n [\n \"path\",\n {\n d: \"m15.2 16.9-.9-.3\",\n key: \"1t7mvx\"\n }\n ],\n [\n \"path\",\n {\n d: \"m16.6 21.7.3-.9\",\n key: \"1j67ps\"\n }\n ],\n [\n \"path\",\n {\n d: \"m16.8 15.3-.4-1\",\n key: \"1ei7r6\"\n }\n ],\n [\n \"path\",\n {\n d: \"m19.1 15.2.3-.9\",\n key: \"18r7jp\"\n }\n ],\n [\n \"path\",\n {\n d: \"m19.6 21.7-.4-1\",\n key: \"z2vh2\"\n }\n ],\n [\n \"path\",\n {\n d: \"m20.7 16.8 1-.4\",\n key: \"19m87a\"\n }\n ],\n [\n \"path\",\n {\n d: \"m21.7 19.4-.9-.3\",\n key: \"1qgwi9\"\n }\n ],\n [\n \"path\",\n {\n d: \"M9 3v18\",\n key: \"fh3hqa\"\n }\n ],\n [\n \"circle\",\n {\n cx: \"18\",\n cy: \"18\",\n r: \"3\",\n key: \"1xkwt0\"\n }\n ]\n];\nconst Columns3Cog = createLucideIcon(\"columns-3-cog\", __iconNode$ie);\nconst __iconNode$id = [\n [\n \"rect\",\n {\n width: \"18\",\n height: \"18\",\n x: \"3\",\n y: \"3\",\n rx: \"2\",\n key: \"afitv7\"\n }\n ],\n [\n \"path\",\n {\n d: \"M9 3v18\",\n key: \"fh3hqa\"\n }\n ],\n [\n \"path\",\n {\n d: \"M15 3v18\",\n key: \"14nvp0\"\n }\n ]\n];\nconst Columns3 = createLucideIcon(\"columns-3\", __iconNode$id);\nconst __iconNode$ic = [\n [\n \"rect\",\n {\n width: \"18\",\n height: \"18\",\n x: \"3\",\n y: \"3\",\n rx: \"2\",\n key: \"afitv7\"\n }\n ],\n [\n \"path\",\n {\n d: \"M7.5 3v18\",\n key: \"w0wo6v\"\n }\n ],\n [\n \"path\",\n {\n d: \"M12 3v18\",\n key: \"108xh3\"\n }\n ],\n [\n \"path\",\n {\n d: \"M16.5 3v18\",\n key: \"10tjh1\"\n }\n ]\n];\nconst Columns4 = createLucideIcon(\"columns-4\", __iconNode$ic);\nconst __iconNode$ib = [\n [\n \"path\",\n {\n d: \"M10 18H5a3 3 0 0 1-3-3v-1\",\n key: \"ru65g8\"\n }\n ],\n [\n \"path\",\n {\n d: \"M14 2a2 2 0 0 1 2 2v4a2 2 0 0 1-2 2\",\n key: \"e30een\"\n }\n ],\n [\n \"path\",\n {\n d: \"M20 2a2 2 0 0 1 2 2v4a2 2 0 0 1-2 2\",\n key: \"2ahx8o\"\n }\n ],\n [\n \"path\",\n {\n d: \"m7 21 3-3-3-3\",\n key: \"127cv2\"\n }\n ],\n [\n \"rect\",\n {\n x: \"14\",\n y: \"14\",\n width: \"8\",\n height: \"8\",\n rx: \"2\",\n key: \"1b0bso\"\n }\n ],\n [\n \"rect\",\n {\n x: \"2\",\n y: \"2\",\n width: \"8\",\n height: \"8\",\n rx: \"2\",\n key: \"1x09vl\"\n }\n ]\n];\nconst Combine = createLucideIcon(\"combine\", __iconNode$ib);\nconst __iconNode$ia = [\n [\n \"path\",\n {\n d: \"M15 6v12a3 3 0 1 0 3-3H6a3 3 0 1 0 3 3V6a3 3 0 1 0-3 3h12a3 3 0 1 0-3-3\",\n key: \"11bfej\"\n }\n ]\n];\nconst Command = createLucideIcon(\"command\", __iconNode$ia);\nconst __iconNode$i9 = [\n [\n \"path\",\n {\n d: \"m16.24 7.76-1.804 5.411a2 2 0 0 1-1.265 1.265L7.76 16.24l1.804-5.411a2 2 0 0 1 1.265-1.265z\",\n key: \"9ktpf1\"\n }\n ],\n [\n \"circle\",\n {\n cx: \"12\",\n cy: \"12\",\n r: \"10\",\n key: \"1mglay\"\n }\n ]\n];\nconst Compass = createLucideIcon(\"compass\", __iconNode$i9);\nconst __iconNode$i8 = [\n [\n \"path\",\n {\n d: \"M15.536 11.293a1 1 0 0 0 0 1.414l2.376 2.377a1 1 0 0 0 1.414 0l2.377-2.377a1 1 0 0 0 0-1.414l-2.377-2.377a1 1 0 0 0-1.414 0z\",\n key: \"1uwlt4\"\n }\n ],\n [\n \"path\",\n {\n d: \"M2.297 11.293a1 1 0 0 0 0 1.414l2.377 2.377a1 1 0 0 0 1.414 0l2.377-2.377a1 1 0 0 0 0-1.414L6.088 8.916a1 1 0 0 0-1.414 0z\",\n key: \"10291m\"\n }\n ],\n [\n \"path\",\n {\n d: \"M8.916 17.912a1 1 0 0 0 0 1.415l2.377 2.376a1 1 0 0 0 1.414 0l2.377-2.376a1 1 0 0 0 0-1.415l-2.377-2.376a1 1 0 0 0-1.414 0z\",\n key: \"1tqoq1\"\n }\n ],\n [\n \"path\",\n {\n d: \"M8.916 4.674a1 1 0 0 0 0 1.414l2.377 2.376a1 1 0 0 0 1.414 0l2.377-2.376a1 1 0 0 0 0-1.414l-2.377-2.377a1 1 0 0 0-1.414 0z\",\n key: \"1x6lto\"\n }\n ]\n];\nconst Component = createLucideIcon(\"component\", __iconNode$i8);\nconst __iconNode$i7 = [\n [\n \"rect\",\n {\n width: \"14\",\n height: \"8\",\n x: \"5\",\n y: \"2\",\n rx: \"2\",\n key: \"wc9tft\"\n }\n ],\n [\n \"rect\",\n {\n width: \"20\",\n height: \"8\",\n x: \"2\",\n y: \"14\",\n rx: \"2\",\n key: \"w68u3i\"\n }\n ],\n [\n \"path\",\n {\n d: \"M6 18h2\",\n key: \"rwmk9e\"\n }\n ],\n [\n \"path\",\n {\n d: \"M12 18h6\",\n key: \"aqd8w3\"\n }\n ]\n];\nconst Computer = createLucideIcon(\"computer\", __iconNode$i7);\nconst __iconNode$i6 = [\n [\n \"path\",\n {\n d: \"M3 20a1 1 0 0 1-1-1v-1a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2v1a1 1 0 0 1-1 1Z\",\n key: \"1pvr1r\"\n }\n ],\n [\n \"path\",\n {\n d: \"M20 16a8 8 0 1 0-16 0\",\n key: \"1pa543\"\n }\n ],\n [\n \"path\",\n {\n d: \"M12 4v4\",\n key: \"1bq03y\"\n }\n ],\n [\n \"path\",\n {\n d: \"M10 4h4\",\n key: \"1xpv9s\"\n }\n ]\n];\nconst ConciergeBell = createLucideIcon(\"concierge-bell\", __iconNode$i6);\nconst __iconNode$i5 = [\n [\n \"path\",\n {\n d: \"m20.9 18.55-8-15.98a1 1 0 0 0-1.8 0l-8 15.98\",\n key: \"53pte7\"\n }\n ],\n [\n \"ellipse\",\n {\n cx: \"12\",\n cy: \"19\",\n rx: \"9\",\n ry: \"3\",\n key: \"1ji25f\"\n }\n ]\n];\nconst Cone = createLucideIcon(\"cone\", __iconNode$i5);\nconst __iconNode$i4 = [\n [\n \"rect\",\n {\n x: \"2\",\n y: \"6\",\n width: \"20\",\n height: \"8\",\n rx: \"1\",\n key: \"1estib\"\n }\n ],\n [\n \"path\",\n {\n d: \"M17 14v7\",\n key: \"7m2elx\"\n }\n ],\n [\n \"path\",\n {\n d: \"M7 14v7\",\n key: \"1cm7wv\"\n }\n ],\n [\n \"path\",\n {\n d: \"M17 3v3\",\n key: \"1v4jwn\"\n }\n ],\n [\n \"path\",\n {\n d: \"M7 3v3\",\n key: \"7o6guu\"\n }\n ],\n [\n \"path\",\n {\n d: \"M10 14 2.3 6.3\",\n key: \"1023jk\"\n }\n ],\n [\n \"path\",\n {\n d: \"m14 6 7.7 7.7\",\n key: \"1s8pl2\"\n }\n ],\n [\n \"path\",\n {\n d: \"m8 6 8 8\",\n key: \"hl96qh\"\n }\n ]\n];\nconst Construction = createLucideIcon(\"construction\", __iconNode$i4);\nconst __iconNode$i3 = [\n [\n \"path\",\n {\n d: \"M16 2v2\",\n key: \"scm5qe\"\n }\n ],\n [\n \"path\",\n {\n d: \"M17.915 22a6 6 0 0 0-12 0\",\n key: \"suqz9p\"\n }\n ],\n [\n \"path\",\n {\n d: \"M8 2v2\",\n key: \"pbkmx\"\n }\n ],\n [\n \"circle\",\n {\n cx: \"12\",\n cy: \"12\",\n r: \"4\",\n key: \"4exip2\"\n }\n ],\n [\n \"rect\",\n {\n x: \"3\",\n y: \"4\",\n width: \"18\",\n height: \"18\",\n rx: \"2\",\n key: \"12vinp\"\n }\n ]\n];\nconst ContactRound = createLucideIcon(\"contact-round\", __iconNode$i3);\nconst __iconNode$i2 = [\n [\n \"path\",\n {\n d: \"M16 2v2\",\n key: \"scm5qe\"\n }\n ],\n [\n \"path\",\n {\n d: \"M7 22v-2a2 2 0 0 1 2-2h6a2 2 0 0 1 2 2v2\",\n key: \"1waht3\"\n }\n ],\n [\n \"path\",\n {\n d: \"M8 2v2\",\n key: \"pbkmx\"\n }\n ],\n [\n \"circle\",\n {\n cx: \"12\",\n cy: \"11\",\n r: \"3\",\n key: \"itu57m\"\n }\n ],\n [\n \"rect\",\n {\n x: \"3\",\n y: \"4\",\n width: \"18\",\n height: \"18\",\n rx: \"2\",\n key: \"12vinp\"\n }\n ]\n];\nconst Contact = createLucideIcon(\"contact\", __iconNode$i2);\nconst __iconNode$i1 = [\n [\n \"path\",\n {\n d: \"M22 7.7c0-.6-.4-1.2-.8-1.5l-6.3-3.9a1.72 1.72 0 0 0-1.7 0l-10.3 6c-.5.2-.9.8-.9 1.4v6.6c0 .5.4 1.2.8 1.5l6.3 3.9a1.72 1.72 0 0 0 1.7 0l10.3-6c.5-.3.9-1 .9-1.5Z\",\n key: \"1t2lqe\"\n }\n ],\n [\n \"path\",\n {\n d: \"M10 21.9V14L2.1 9.1\",\n key: \"o7czzq\"\n }\n ],\n [\n \"path\",\n {\n d: \"m10 14 11.9-6.9\",\n key: \"zm5e20\"\n }\n ],\n [\n \"path\",\n {\n d: \"M14 19.8v-8.1\",\n key: \"159ecu\"\n }\n ],\n [\n \"path\",\n {\n d: \"M18 17.5V9.4\",\n key: \"11uown\"\n }\n ]\n];\nconst Container = createLucideIcon(\"container\", __iconNode$i1);\nconst __iconNode$i0 = [\n [\n \"circle\",\n {\n cx: \"12\",\n cy: \"12\",\n r: \"10\",\n key: \"1mglay\"\n }\n ],\n [\n \"path\",\n {\n d: \"M12 18a6 6 0 0 0 0-12v12z\",\n key: \"j4l70d\"\n }\n ]\n];\nconst Contrast = createLucideIcon(\"contrast\", __iconNode$i0);\nconst __iconNode$h$ = [\n [\n \"path\",\n {\n d: \"M12 2a10 10 0 1 0 10 10 4 4 0 0 1-5-5 4 4 0 0 1-5-5\",\n key: \"laymnq\"\n }\n ],\n [\n \"path\",\n {\n d: \"M8.5 8.5v.01\",\n key: \"ue8clq\"\n }\n ],\n [\n \"path\",\n {\n d: \"M16 15.5v.01\",\n key: \"14dtrp\"\n }\n ],\n [\n \"path\",\n {\n d: \"M12 12v.01\",\n key: \"u5ubse\"\n }\n ],\n [\n \"path\",\n {\n d: \"M11 17v.01\",\n key: \"1hyl5a\"\n }\n ],\n [\n \"path\",\n {\n d: \"M7 14v.01\",\n key: \"uct60s\"\n }\n ]\n];\nconst Cookie = createLucideIcon(\"cookie\", __iconNode$h$);\nconst __iconNode$h_ = [\n [\n \"path\",\n {\n d: \"M2 12h20\",\n key: \"9i4pu4\"\n }\n ],\n [\n \"path\",\n {\n d: \"M20 12v8a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2v-8\",\n key: \"u0tga0\"\n }\n ],\n [\n \"path\",\n {\n d: \"m4 8 16-4\",\n key: \"16g0ng\"\n }\n ],\n [\n \"path\",\n {\n d: \"m8.86 6.78-.45-1.81a2 2 0 0 1 1.45-2.43l1.94-.48a2 2 0 0 1 2.43 1.46l.45 1.8\",\n key: \"12cejc\"\n }\n ]\n];\nconst CookingPot = createLucideIcon(\"cooking-pot\", __iconNode$h_);\nconst __iconNode$hZ = [\n [\n \"path\",\n {\n d: \"m12 15 2 2 4-4\",\n key: \"2c609p\"\n }\n ],\n [\n \"rect\",\n {\n width: \"14\",\n height: \"14\",\n x: \"8\",\n y: \"8\",\n rx: \"2\",\n ry: \"2\",\n key: \"17jyea\"\n }\n ],\n [\n \"path\",\n {\n d: \"M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2\",\n key: \"zix9uf\"\n }\n ]\n];\nconst CopyCheck = createLucideIcon(\"copy-check\", __iconNode$hZ);\nconst __iconNode$hY = [\n [\n \"line\",\n {\n x1: \"12\",\n x2: \"18\",\n y1: \"15\",\n y2: \"15\",\n key: \"1nscbv\"\n }\n ],\n [\n \"rect\",\n {\n width: \"14\",\n height: \"14\",\n x: \"8\",\n y: \"8\",\n rx: \"2\",\n ry: \"2\",\n key: \"17jyea\"\n }\n ],\n [\n \"path\",\n {\n d: \"M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2\",\n key: \"zix9uf\"\n }\n ]\n];\nconst CopyMinus = createLucideIcon(\"copy-minus\", __iconNode$hY);\nconst __iconNode$hX = [\n [\n \"line\",\n {\n x1: \"15\",\n x2: \"15\",\n y1: \"12\",\n y2: \"18\",\n key: \"1p7wdc\"\n }\n ],\n [\n \"line\",\n {\n x1: \"12\",\n x2: \"18\",\n y1: \"15\",\n y2: \"15\",\n key: \"1nscbv\"\n }\n ],\n [\n \"rect\",\n {\n width: \"14\",\n height: \"14\",\n x: \"8\",\n y: \"8\",\n rx: \"2\",\n ry: \"2\",\n key: \"17jyea\"\n }\n ],\n [\n \"path\",\n {\n d: \"M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2\",\n key: \"zix9uf\"\n }\n ]\n];\nconst CopyPlus = createLucideIcon(\"copy-plus\", __iconNode$hX);\nconst __iconNode$hW = [\n [\n \"line\",\n {\n x1: \"12\",\n x2: \"18\",\n y1: \"12\",\n y2: \"18\",\n key: \"1rg63v\"\n }\n ],\n [\n \"line\",\n {\n x1: \"12\",\n x2: \"18\",\n y1: \"18\",\n y2: \"12\",\n key: \"ebkxgr\"\n }\n ],\n [\n \"rect\",\n {\n width: \"14\",\n height: \"14\",\n x: \"8\",\n y: \"8\",\n rx: \"2\",\n ry: \"2\",\n key: \"17jyea\"\n }\n ],\n [\n \"path\",\n {\n d: \"M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2\",\n key: \"zix9uf\"\n }\n ]\n];\nconst CopyX = createLucideIcon(\"copy-x\", __iconNode$hW);\nconst __iconNode$hV = [\n [\n \"line\",\n {\n x1: \"12\",\n x2: \"18\",\n y1: \"18\",\n y2: \"12\",\n key: \"ebkxgr\"\n }\n ],\n [\n \"rect\",\n {\n width: \"14\",\n height: \"14\",\n x: \"8\",\n y: \"8\",\n rx: \"2\",\n ry: \"2\",\n key: \"17jyea\"\n }\n ],\n [\n \"path\",\n {\n d: \"M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2\",\n key: \"zix9uf\"\n }\n ]\n];\nconst CopySlash = createLucideIcon(\"copy-slash\", __iconNode$hV);\nconst __iconNode$hU = [\n [\n \"rect\",\n {\n width: \"14\",\n height: \"14\",\n x: \"8\",\n y: \"8\",\n rx: \"2\",\n ry: \"2\",\n key: \"17jyea\"\n }\n ],\n [\n \"path\",\n {\n d: \"M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2\",\n key: \"zix9uf\"\n }\n ]\n];\nconst Copy = createLucideIcon(\"copy\", __iconNode$hU);\nconst __iconNode$hT = [\n [\n \"circle\",\n {\n cx: \"12\",\n cy: \"12\",\n r: \"10\",\n key: \"1mglay\"\n }\n ],\n [\n \"path\",\n {\n d: \"M14.83 14.83a4 4 0 1 1 0-5.66\",\n key: \"1i56pz\"\n }\n ]\n];\nconst Copyright = createLucideIcon(\"copyright\", __iconNode$hT);\nconst __iconNode$hS = [\n [\n \"circle\",\n {\n cx: \"12\",\n cy: \"12\",\n r: \"10\",\n key: \"1mglay\"\n }\n ],\n [\n \"path\",\n {\n d: \"M9.17 14.83a4 4 0 1 0 0-5.66\",\n key: \"1sveal\"\n }\n ]\n];\nconst Copyleft = createLucideIcon(\"copyleft\", __iconNode$hS);\nconst __iconNode$hR = [\n [\n \"path\",\n {\n d: \"M20 4v7a4 4 0 0 1-4 4H4\",\n key: \"6o5b7l\"\n }\n ],\n [\n \"path\",\n {\n d: \"m9 10-5 5 5 5\",\n key: \"1kshq7\"\n }\n ]\n];\nconst CornerDownLeft = createLucideIcon(\"corner-down-left\", __iconNode$hR);\nconst __iconNode$hQ = [\n [\n \"path\",\n {\n d: \"m15 10 5 5-5 5\",\n key: \"qqa56n\"\n }\n ],\n [\n \"path\",\n {\n d: \"M4 4v7a4 4 0 0 0 4 4h12\",\n key: \"z08zvw\"\n }\n ]\n];\nconst CornerDownRight = createLucideIcon(\"corner-down-right\", __iconNode$hQ);\nconst __iconNode$hP = [\n [\n \"path\",\n {\n d: \"m14 15-5 5-5-5\",\n key: \"1eia93\"\n }\n ],\n [\n \"path\",\n {\n d: \"M20 4h-7a4 4 0 0 0-4 4v12\",\n key: \"nbpdq2\"\n }\n ]\n];\nconst CornerLeftDown = createLucideIcon(\"corner-left-down\", __iconNode$hP);\nconst __iconNode$hO = [\n [\n \"path\",\n {\n d: \"M14 9 9 4 4 9\",\n key: \"1af5af\"\n }\n ],\n [\n \"path\",\n {\n d: \"M20 20h-7a4 4 0 0 1-4-4V4\",\n key: \"1blwi3\"\n }\n ]\n];\nconst CornerLeftUp = createLucideIcon(\"corner-left-up\", __iconNode$hO);\nconst __iconNode$hN = [\n [\n \"path\",\n {\n d: \"m10 15 5 5 5-5\",\n key: \"1hpjnr\"\n }\n ],\n [\n \"path\",\n {\n d: \"M4 4h7a4 4 0 0 1 4 4v12\",\n key: \"wcbgct\"\n }\n ]\n];\nconst CornerRightDown = createLucideIcon(\"corner-right-down\", __iconNode$hN);\nconst __iconNode$hM = [\n [\n \"path\",\n {\n d: \"m10 9 5-5 5 5\",\n key: \"9ctzwi\"\n }\n ],\n [\n \"path\",\n {\n d: \"M4 20h7a4 4 0 0 0 4-4V4\",\n key: \"1plgdj\"\n }\n ]\n];\nconst CornerRightUp = createLucideIcon(\"corner-right-up\", __iconNode$hM);\nconst __iconNode$hL = [\n [\n \"path\",\n {\n d: \"M20 20v-7a4 4 0 0 0-4-4H4\",\n key: \"1nkjon\"\n }\n ],\n [\n \"path\",\n {\n d: \"M9 14 4 9l5-5\",\n key: \"102s5s\"\n }\n ]\n];\nconst CornerUpLeft = createLucideIcon(\"corner-up-left\", __iconNode$hL);\nconst __iconNode$hK = [\n [\n \"path\",\n {\n d: \"m15 14 5-5-5-5\",\n key: \"12vg1m\"\n }\n ],\n [\n \"path\",\n {\n d: \"M4 20v-7a4 4 0 0 1 4-4h12\",\n key: \"1lu4f8\"\n }\n ]\n];\nconst CornerUpRight = createLucideIcon(\"corner-up-right\", __iconNode$hK);\nconst __iconNode$hJ = [\n [\n \"path\",\n {\n d: \"M12 20v2\",\n key: \"1lh1kg\"\n }\n ],\n [\n \"path\",\n {\n d: \"M12 2v2\",\n key: \"tus03m\"\n }\n ],\n [\n \"path\",\n {\n d: \"M17 20v2\",\n key: \"1rnc9c\"\n }\n ],\n [\n \"path\",\n {\n d: \"M17 2v2\",\n key: \"11trls\"\n }\n ],\n [\n \"path\",\n {\n d: \"M2 12h2\",\n key: \"1t8f8n\"\n }\n ],\n [\n \"path\",\n {\n d: \"M2 17h2\",\n key: \"7oei6x\"\n }\n ],\n [\n \"path\",\n {\n d: \"M2 7h2\",\n key: \"asdhe0\"\n }\n ],\n [\n \"path\",\n {\n d: \"M20 12h2\",\n key: \"1q8mjw\"\n }\n ],\n [\n \"path\",\n {\n d: \"M20 17h2\",\n key: \"1fpfkl\"\n }\n ],\n [\n \"path\",\n {\n d: \"M20 7h2\",\n key: \"1o8tra\"\n }\n ],\n [\n \"path\",\n {\n d: \"M7 20v2\",\n key: \"4gnj0m\"\n }\n ],\n [\n \"path\",\n {\n d: \"M7 2v2\",\n key: \"1i4yhu\"\n }\n ],\n [\n \"rect\",\n {\n x: \"4\",\n y: \"4\",\n width: \"16\",\n height: \"16\",\n rx: \"2\",\n key: \"1vbyd7\"\n }\n ],\n [\n \"rect\",\n {\n x: \"8\",\n y: \"8\",\n width: \"8\",\n height: \"8\",\n rx: \"1\",\n key: \"z9xiuo\"\n }\n ]\n];\nconst Cpu = createLucideIcon(\"cpu\", __iconNode$hJ);\nconst __iconNode$hI = [\n [\n \"circle\",\n {\n cx: \"12\",\n cy: \"12\",\n r: \"10\",\n key: \"1mglay\"\n }\n ],\n [\n \"path\",\n {\n d: \"M10 9.3a2.8 2.8 0 0 0-3.5 1 3.1 3.1 0 0 0 0 3.4 2.7 2.7 0 0 0 3.5 1\",\n key: \"1ss3eq\"\n }\n ],\n [\n \"path\",\n {\n d: \"M17 9.3a2.8 2.8 0 0 0-3.5 1 3.1 3.1 0 0 0 0 3.4 2.7 2.7 0 0 0 3.5 1\",\n key: \"1od56t\"\n }\n ]\n];\nconst CreativeCommons = createLucideIcon(\"creative-commons\", __iconNode$hI);\nconst __iconNode$hH = [\n [\n \"rect\",\n {\n width: \"20\",\n height: \"14\",\n x: \"2\",\n y: \"5\",\n rx: \"2\",\n key: \"ynyp8z\"\n }\n ],\n [\n \"line\",\n {\n x1: \"2\",\n x2: \"22\",\n y1: \"10\",\n y2: \"10\",\n key: \"1b3vmo\"\n }\n ]\n];\nconst CreditCard = createLucideIcon(\"credit-card\", __iconNode$hH);\nconst __iconNode$hG = [\n [\n \"path\",\n {\n d: \"m4.6 13.11 5.79-3.21c1.89-1.05 4.79 1.78 3.71 3.71l-3.22 5.81C8.8 23.16.79 15.23 4.6 13.11Z\",\n key: \"1ozxlb\"\n }\n ],\n [\n \"path\",\n {\n d: \"m10.5 9.5-1-2.29C9.2 6.48 8.8 6 8 6H4.5C2.79 6 2 6.5 2 8.5a7.71 7.71 0 0 0 2 4.83\",\n key: \"ffuyb5\"\n }\n ],\n [\n \"path\",\n {\n d: \"M8 6c0-1.55.24-4-2-4-2 0-2.5 2.17-2.5 4\",\n key: \"osnpzi\"\n }\n ],\n [\n \"path\",\n {\n d: \"m14.5 13.5 2.29 1c.73.3 1.21.7 1.21 1.5v3.5c0 1.71-.5 2.5-2.5 2.5a7.71 7.71 0 0 1-4.83-2\",\n key: \"1vubaw\"\n }\n ],\n [\n \"path\",\n {\n d: \"M18 16c1.55 0 4-.24 4 2 0 2-2.17 2.5-4 2.5\",\n key: \"wxr772\"\n }\n ]\n];\nconst Croissant = createLucideIcon(\"croissant\", __iconNode$hG);\nconst __iconNode$hF = [\n [\n \"path\",\n {\n d: \"M6 2v14a2 2 0 0 0 2 2h14\",\n key: \"ron5a4\"\n }\n ],\n [\n \"path\",\n {\n d: \"M18 22V8a2 2 0 0 0-2-2H2\",\n key: \"7s9ehn\"\n }\n ]\n];\nconst Crop = createLucideIcon(\"crop\", __iconNode$hF);\nconst __iconNode$hE = [\n [\n \"path\",\n {\n d: \"M4 9a2 2 0 0 0-2 2v2a2 2 0 0 0 2 2h4a1 1 0 0 1 1 1v4a2 2 0 0 0 2 2h2a2 2 0 0 0 2-2v-4a1 1 0 0 1 1-1h4a2 2 0 0 0 2-2v-2a2 2 0 0 0-2-2h-4a1 1 0 0 1-1-1V4a2 2 0 0 0-2-2h-2a2 2 0 0 0-2 2v4a1 1 0 0 1-1 1z\",\n key: \"1xbrqy\"\n }\n ]\n];\nconst Cross = createLucideIcon(\"cross\", __iconNode$hE);\nconst __iconNode$hD = [\n [\n \"circle\",\n {\n cx: \"12\",\n cy: \"12\",\n r: \"10\",\n key: \"1mglay\"\n }\n ],\n [\n \"line\",\n {\n x1: \"22\",\n x2: \"18\",\n y1: \"12\",\n y2: \"12\",\n key: \"l9bcsi\"\n }\n ],\n [\n \"line\",\n {\n x1: \"6\",\n x2: \"2\",\n y1: \"12\",\n y2: \"12\",\n key: \"13hhkx\"\n }\n ],\n [\n \"line\",\n {\n x1: \"12\",\n x2: \"12\",\n y1: \"6\",\n y2: \"2\",\n key: \"10w3f3\"\n }\n ],\n [\n \"line\",\n {\n x1: \"12\",\n x2: \"12\",\n y1: \"22\",\n y2: \"18\",\n key: \"15g9kq\"\n }\n ]\n];\nconst Crosshair = createLucideIcon(\"crosshair\", __iconNode$hD);\nconst __iconNode$hC = [\n [\n \"path\",\n {\n d: \"M11.562 3.266a.5.5 0 0 1 .876 0L15.39 8.87a1 1 0 0 0 1.516.294L21.183 5.5a.5.5 0 0 1 .798.519l-2.834 10.246a1 1 0 0 1-.956.734H5.81a1 1 0 0 1-.957-.734L2.02 6.02a.5.5 0 0 1 .798-.519l4.276 3.664a1 1 0 0 0 1.516-.294z\",\n key: \"1vdc57\"\n }\n ],\n [\n \"path\",\n {\n d: \"M5 21h14\",\n key: \"11awu3\"\n }\n ]\n];\nconst Crown = createLucideIcon(\"crown\", __iconNode$hC);\nconst __iconNode$hB = [\n [\n \"path\",\n {\n d: \"m21.12 6.4-6.05-4.06a2 2 0 0 0-2.17-.05L2.95 8.41a2 2 0 0 0-.95 1.7v5.82a2 2 0 0 0 .88 1.66l6.05 4.07a2 2 0 0 0 2.17.05l9.95-6.12a2 2 0 0 0 .95-1.7V8.06a2 2 0 0 0-.88-1.66Z\",\n key: \"1u2ovd\"\n }\n ],\n [\n \"path\",\n {\n d: \"M10 22v-8L2.25 9.15\",\n key: \"11pn4q\"\n }\n ],\n [\n \"path\",\n {\n d: \"m10 14 11.77-6.87\",\n key: \"1kt1wh\"\n }\n ]\n];\nconst Cuboid = createLucideIcon(\"cuboid\", __iconNode$hB);\nconst __iconNode$hA = [\n [\n \"path\",\n {\n d: \"m6 8 1.75 12.28a2 2 0 0 0 2 1.72h4.54a2 2 0 0 0 2-1.72L18 8\",\n key: \"8166m8\"\n }\n ],\n [\n \"path\",\n {\n d: \"M5 8h14\",\n key: \"pcz4l3\"\n }\n ],\n [\n \"path\",\n {\n d: \"M7 15a6.47 6.47 0 0 1 5 0 6.47 6.47 0 0 0 5 0\",\n key: \"yjz344\"\n }\n ],\n [\n \"path\",\n {\n d: \"m12 8 1-6h2\",\n key: \"3ybfa4\"\n }\n ]\n];\nconst CupSoda = createLucideIcon(\"cup-soda\", __iconNode$hA);\nconst __iconNode$hz = [\n [\n \"circle\",\n {\n cx: \"12\",\n cy: \"12\",\n r: \"8\",\n key: \"46899m\"\n }\n ],\n [\n \"line\",\n {\n x1: \"3\",\n x2: \"6\",\n y1: \"3\",\n y2: \"6\",\n key: \"1jkytn\"\n }\n ],\n [\n \"line\",\n {\n x1: \"21\",\n x2: \"18\",\n y1: \"3\",\n y2: \"6\",\n key: \"14zfjt\"\n }\n ],\n [\n \"line\",\n {\n x1: \"3\",\n x2: \"6\",\n y1: \"21\",\n y2: \"18\",\n key: \"iusuec\"\n }\n ],\n [\n \"line\",\n {\n x1: \"21\",\n x2: \"18\",\n y1: \"21\",\n y2: \"18\",\n key: \"yj2dd7\"\n }\n ]\n];\nconst Currency = createLucideIcon(\"currency\", __iconNode$hz);\nconst __iconNode$hy = [\n [\n \"ellipse\",\n {\n cx: \"12\",\n cy: \"5\",\n rx: \"9\",\n ry: \"3\",\n key: \"msslwz\"\n }\n ],\n [\n \"path\",\n {\n d: \"M3 5v14a9 3 0 0 0 18 0V5\",\n key: \"aqi0yr\"\n }\n ]\n];\nconst Cylinder = createLucideIcon(\"cylinder\", __iconNode$hy);\nconst __iconNode$hx = [\n [\n \"path\",\n {\n d: \"M11 11.31c1.17.56 1.54 1.69 3.5 1.69 2.5 0 2.5-2 5-2 1.3 0 1.9.5 2.5 1\",\n key: \"157kva\"\n }\n ],\n [\n \"path\",\n {\n d: \"M11.75 18c.35.5 1.45 1 2.75 1 2.5 0 2.5-2 5-2 1.3 0 1.9.5 2.5 1\",\n key: \"d7q6m6\"\n }\n ],\n [\n \"path\",\n {\n d: \"M2 10h4\",\n key: \"l0bgd4\"\n }\n ],\n [\n \"path\",\n {\n d: \"M2 14h4\",\n key: \"1gsvsf\"\n }\n ],\n [\n \"path\",\n {\n d: \"M2 18h4\",\n key: \"1bu2t1\"\n }\n ],\n [\n \"path\",\n {\n d: \"M2 6h4\",\n key: \"aawbzj\"\n }\n ],\n [\n \"path\",\n {\n d: \"M7 3a1 1 0 0 0-1 1v16a1 1 0 0 0 1 1h4a1 1 0 0 0 1-1L10 4a1 1 0 0 0-1-1z\",\n key: \"pr6s65\"\n }\n ]\n];\nconst Dam = createLucideIcon(\"dam\", __iconNode$hx);\nconst __iconNode$hw = [\n [\n \"ellipse\",\n {\n cx: \"12\",\n cy: \"5\",\n rx: \"9\",\n ry: \"3\",\n key: \"msslwz\"\n }\n ],\n [\n \"path\",\n {\n d: \"M3 12a9 3 0 0 0 5 2.69\",\n key: \"1ui2ym\"\n }\n ],\n [\n \"path\",\n {\n d: \"M21 9.3V5\",\n key: \"6k6cib\"\n }\n ],\n [\n \"path\",\n {\n d: \"M3 5v14a9 3 0 0 0 6.47 2.88\",\n key: \"i62tjy\"\n }\n ],\n [\n \"path\",\n {\n d: \"M12 12v4h4\",\n key: \"1bxaet\"\n }\n ],\n [\n \"path\",\n {\n d: \"M13 20a5 5 0 0 0 9-3 4.5 4.5 0 0 0-4.5-4.5c-1.33 0-2.54.54-3.41 1.41L12 16\",\n key: \"1f4ei9\"\n }\n ]\n];\nconst DatabaseBackup = createLucideIcon(\"database-backup\", __iconNode$hw);\nconst __iconNode$hv = [\n [\n \"ellipse\",\n {\n cx: \"12\",\n cy: \"5\",\n rx: \"9\",\n ry: \"3\",\n key: \"msslwz\"\n }\n ],\n [\n \"path\",\n {\n d: \"M3 5V19A9 3 0 0 0 15 21.84\",\n key: \"14ibmq\"\n }\n ],\n [\n \"path\",\n {\n d: \"M21 5V8\",\n key: \"1marbg\"\n }\n ],\n [\n \"path\",\n {\n d: \"M21 12L18 17H22L19 22\",\n key: \"zafso\"\n }\n ],\n [\n \"path\",\n {\n d: \"M3 12A9 3 0 0 0 14.59 14.87\",\n key: \"1y4wr8\"\n }\n ]\n];\nconst DatabaseZap = createLucideIcon(\"database-zap\", __iconNode$hv);\nconst __iconNode$hu = [\n [\n \"ellipse\",\n {\n cx: \"12\",\n cy: \"5\",\n rx: \"9\",\n ry: \"3\",\n key: \"msslwz\"\n }\n ],\n [\n \"path\",\n {\n d: \"M3 5V19A9 3 0 0 0 21 19V5\",\n key: \"1wlel7\"\n }\n ],\n [\n \"path\",\n {\n d: \"M3 12A9 3 0 0 0 21 12\",\n key: \"mv7ke4\"\n }\n ]\n];\nconst Database = createLucideIcon(\"database\", __iconNode$hu);\nconst __iconNode$ht = [\n [\n \"path\",\n {\n d: \"m13 21-3-3 3-3\",\n key: \"s3o1nf\"\n }\n ],\n [\n \"path\",\n {\n d: \"M20 18H10\",\n key: \"14r3mt\"\n }\n ],\n [\n \"path\",\n {\n d: \"M3 11h.01\",\n key: \"1eifu7\"\n }\n ],\n [\n \"rect\",\n {\n x: \"6\",\n y: \"3\",\n width: \"5\",\n height: \"8\",\n rx: \"2.5\",\n key: \"v9paqo\"\n }\n ]\n];\nconst DecimalsArrowLeft = createLucideIcon(\"decimals-arrow-left\", __iconNode$ht);\nconst __iconNode$hs = [\n [\n \"path\",\n {\n d: \"M10 18h10\",\n key: \"1y5s8o\"\n }\n ],\n [\n \"path\",\n {\n d: \"m17 21 3-3-3-3\",\n key: \"1ammt0\"\n }\n ],\n [\n \"path\",\n {\n d: \"M3 11h.01\",\n key: \"1eifu7\"\n }\n ],\n [\n \"rect\",\n {\n x: \"15\",\n y: \"3\",\n width: \"5\",\n height: \"8\",\n rx: \"2.5\",\n key: \"76md6a\"\n }\n ],\n [\n \"rect\",\n {\n x: \"6\",\n y: \"3\",\n width: \"5\",\n height: \"8\",\n rx: \"2.5\",\n key: \"v9paqo\"\n }\n ]\n];\nconst DecimalsArrowRight = createLucideIcon(\"decimals-arrow-right\", __iconNode$hs);\nconst __iconNode$hr = [\n [\n \"path\",\n {\n d: \"M10 5a2 2 0 0 0-1.344.519l-6.328 5.74a1 1 0 0 0 0 1.481l6.328 5.741A2 2 0 0 0 10 19h10a2 2 0 0 0 2-2V7a2 2 0 0 0-2-2z\",\n key: \"1yo7s0\"\n }\n ],\n [\n \"path\",\n {\n d: \"m12 9 6 6\",\n key: \"anjzzh\"\n }\n ],\n [\n \"path\",\n {\n d: \"m18 9-6 6\",\n key: \"1fp51s\"\n }\n ]\n];\nconst Delete = createLucideIcon(\"delete\", __iconNode$hr);\nconst __iconNode$hq = [\n [\n \"path\",\n {\n d: \"M10.162 3.167A10 10 0 0 0 2 13a2 2 0 0 0 4 0v-1a2 2 0 0 1 4 0v4a2 2 0 0 0 4 0v-4a2 2 0 0 1 4 0v1a2 2 0 0 0 4-.006 10 10 0 0 0-8.161-9.826\",\n key: \"xi88qy\"\n }\n ],\n [\n \"path\",\n {\n d: \"M20.804 14.869a9 9 0 0 1-17.608 0\",\n key: \"1r28rg\"\n }\n ],\n [\n \"circle\",\n {\n cx: \"12\",\n cy: \"4\",\n r: \"2\",\n key: \"muu5ef\"\n }\n ]\n];\nconst Dessert = createLucideIcon(\"dessert\", __iconNode$hq);\nconst __iconNode$hp = [\n [\n \"path\",\n {\n d: \"M2.7 10.3a2.41 2.41 0 0 0 0 3.41l7.59 7.59a2.41 2.41 0 0 0 3.41 0l7.59-7.59a2.41 2.41 0 0 0 0-3.41L13.7 2.71a2.41 2.41 0 0 0-3.41 0z\",\n key: \"1ey20j\"\n }\n ],\n [\n \"path\",\n {\n d: \"M8 12h8\",\n key: \"1wcyev\"\n }\n ]\n];\nconst DiamondMinus = createLucideIcon(\"diamond-minus\", __iconNode$hp);\nconst __iconNode$ho = [\n [\n \"circle\",\n {\n cx: \"19\",\n cy: \"19\",\n r: \"2\",\n key: \"17f5cg\"\n }\n ],\n [\n \"circle\",\n {\n cx: \"5\",\n cy: \"5\",\n r: \"2\",\n key: \"1gwv83\"\n }\n ],\n [\n \"path\",\n {\n d: \"M6.48 3.66a10 10 0 0 1 13.86 13.86\",\n key: \"xr8kdq\"\n }\n ],\n [\n \"path\",\n {\n d: \"m6.41 6.41 11.18 11.18\",\n key: \"uhpjw7\"\n }\n ],\n [\n \"path\",\n {\n d: \"M3.66 6.48a10 10 0 0 0 13.86 13.86\",\n key: \"cldpwv\"\n }\n ]\n];\nconst Diameter = createLucideIcon(\"diameter\", __iconNode$ho);\nconst __iconNode$hn = [\n [\n \"path\",\n {\n d: \"M2.7 10.3a2.41 2.41 0 0 0 0 3.41l7.59 7.59a2.41 2.41 0 0 0 3.41 0l7.59-7.59a2.41 2.41 0 0 0 0-3.41L13.7 2.71a2.41 2.41 0 0 0-3.41 0Z\",\n key: \"1tpxz2\"\n }\n ],\n [\n \"path\",\n {\n d: \"M9.2 9.2h.01\",\n key: \"1b7bvt\"\n }\n ],\n [\n \"path\",\n {\n d: \"m14.5 9.5-5 5\",\n key: \"17q4r4\"\n }\n ],\n [\n \"path\",\n {\n d: \"M14.7 14.8h.01\",\n key: \"17nsh4\"\n }\n ]\n];\nconst DiamondPercent = createLucideIcon(\"diamond-percent\", __iconNode$hn);\nconst __iconNode$hm = [\n [\n \"path\",\n {\n d: \"M12 8v8\",\n key: \"napkw2\"\n }\n ],\n [\n \"path\",\n {\n d: \"M2.7 10.3a2.41 2.41 0 0 0 0 3.41l7.59 7.59a2.41 2.41 0 0 0 3.41 0l7.59-7.59a2.41 2.41 0 0 0 0-3.41L13.7 2.71a2.41 2.41 0 0 0-3.41 0z\",\n key: \"1ey20j\"\n }\n ],\n [\n \"path\",\n {\n d: \"M8 12h8\",\n key: \"1wcyev\"\n }\n ]\n];\nconst DiamondPlus = createLucideIcon(\"diamond-plus\", __iconNode$hm);\nconst __iconNode$hl = [\n [\n \"path\",\n {\n d: \"M2.7 10.3a2.41 2.41 0 0 0 0 3.41l7.59 7.59a2.41 2.41 0 0 0 3.41 0l7.59-7.59a2.41 2.41 0 0 0 0-3.41l-7.59-7.59a2.41 2.41 0 0 0-3.41 0Z\",\n key: \"1f1r0c\"\n }\n ]\n];\nconst Diamond = createLucideIcon(\"diamond\", __iconNode$hl);\nconst __iconNode$hk = [\n [\n \"rect\",\n {\n width: \"18\",\n height: \"18\",\n x: \"3\",\n y: \"3\",\n rx: \"2\",\n ry: \"2\",\n key: \"1m3agn\"\n }\n ],\n [\n \"path\",\n {\n d: \"M12 12h.01\",\n key: \"1mp3jc\"\n }\n ]\n];\nconst Dice1 = createLucideIcon(\"dice-1\", __iconNode$hk);\nconst __iconNode$hj = [\n [\n \"rect\",\n {\n width: \"18\",\n height: \"18\",\n x: \"3\",\n y: \"3\",\n rx: \"2\",\n ry: \"2\",\n key: \"1m3agn\"\n }\n ],\n [\n \"path\",\n {\n d: \"M15 9h.01\",\n key: \"x1ddxp\"\n }\n ],\n [\n \"path\",\n {\n d: \"M9 15h.01\",\n key: \"fzyn71\"\n }\n ]\n];\nconst Dice2 = createLucideIcon(\"dice-2\", __iconNode$hj);\nconst __iconNode$hi = [\n [\n \"rect\",\n {\n width: \"18\",\n height: \"18\",\n x: \"3\",\n y: \"3\",\n rx: \"2\",\n ry: \"2\",\n key: \"1m3agn\"\n }\n ],\n [\n \"path\",\n {\n d: \"M16 8h.01\",\n key: \"cr5u4v\"\n }\n ],\n [\n \"path\",\n {\n d: \"M12 12h.01\",\n key: \"1mp3jc\"\n }\n ],\n [\n \"path\",\n {\n d: \"M8 16h.01\",\n key: \"18s6g9\"\n }\n ]\n];\nconst Dice3 = createLucideIcon(\"dice-3\", __iconNode$hi);\nconst __iconNode$hh = [\n [\n \"rect\",\n {\n width: \"18\",\n height: \"18\",\n x: \"3\",\n y: \"3\",\n rx: \"2\",\n ry: \"2\",\n key: \"1m3agn\"\n }\n ],\n [\n \"path\",\n {\n d: \"M16 8h.01\",\n key: \"cr5u4v\"\n }\n ],\n [\n \"path\",\n {\n d: \"M8 8h.01\",\n key: \"1e4136\"\n }\n ],\n [\n \"path\",\n {\n d: \"M8 16h.01\",\n key: \"18s6g9\"\n }\n ],\n [\n \"path\",\n {\n d: \"M16 16h.01\",\n key: \"1f9h7w\"\n }\n ]\n];\nconst Dice4 = createLucideIcon(\"dice-4\", __iconNode$hh);\nconst __iconNode$hg = [\n [\n \"rect\",\n {\n width: \"18\",\n height: \"18\",\n x: \"3\",\n y: \"3\",\n rx: \"2\",\n ry: \"2\",\n key: \"1m3agn\"\n }\n ],\n [\n \"path\",\n {\n d: \"M16 8h.01\",\n key: \"cr5u4v\"\n }\n ],\n [\n \"path\",\n {\n d: \"M8 8h.01\",\n key: \"1e4136\"\n }\n ],\n [\n \"path\",\n {\n d: \"M8 16h.01\",\n key: \"18s6g9\"\n }\n ],\n [\n \"path\",\n {\n d: \"M16 16h.01\",\n key: \"1f9h7w\"\n }\n ],\n [\n \"path\",\n {\n d: \"M12 12h.01\",\n key: \"1mp3jc\"\n }\n ]\n];\nconst Dice5 = createLucideIcon(\"dice-5\", __iconNode$hg);\nconst __iconNode$hf = [\n [\n \"rect\",\n {\n width: \"18\",\n height: \"18\",\n x: \"3\",\n y: \"3\",\n rx: \"2\",\n ry: \"2\",\n key: \"1m3agn\"\n }\n ],\n [\n \"path\",\n {\n d: \"M16 8h.01\",\n key: \"cr5u4v\"\n }\n ],\n [\n \"path\",\n {\n d: \"M16 12h.01\",\n key: \"1l6xoz\"\n }\n ],\n [\n \"path\",\n {\n d: \"M16 16h.01\",\n key: \"1f9h7w\"\n }\n ],\n [\n \"path\",\n {\n d: \"M8 8h.01\",\n key: \"1e4136\"\n }\n ],\n [\n \"path\",\n {\n d: \"M8 12h.01\",\n key: \"czm47f\"\n }\n ],\n [\n \"path\",\n {\n d: \"M8 16h.01\",\n key: \"18s6g9\"\n }\n ]\n];\nconst Dice6 = createLucideIcon(\"dice-6\", __iconNode$hf);\nconst __iconNode$he = [\n [\n \"rect\",\n {\n width: \"12\",\n height: \"12\",\n x: \"2\",\n y: \"10\",\n rx: \"2\",\n ry: \"2\",\n key: \"6agr2n\"\n }\n ],\n [\n \"path\",\n {\n d: \"m17.92 14 3.5-3.5a2.24 2.24 0 0 0 0-3l-5-4.92a2.24 2.24 0 0 0-3 0L10 6\",\n key: \"1o487t\"\n }\n ],\n [\n \"path\",\n {\n d: \"M6 18h.01\",\n key: \"uhywen\"\n }\n ],\n [\n \"path\",\n {\n d: \"M10 14h.01\",\n key: \"ssrbsk\"\n }\n ],\n [\n \"path\",\n {\n d: \"M15 6h.01\",\n key: \"cblpky\"\n }\n ],\n [\n \"path\",\n {\n d: \"M18 9h.01\",\n key: \"2061c0\"\n }\n ]\n];\nconst Dices = createLucideIcon(\"dices\", __iconNode$he);\nconst __iconNode$hd = [\n [\n \"path\",\n {\n d: \"M12 3v14\",\n key: \"7cf3v8\"\n }\n ],\n [\n \"path\",\n {\n d: \"M5 10h14\",\n key: \"elsbfy\"\n }\n ],\n [\n \"path\",\n {\n d: \"M5 21h14\",\n key: \"11awu3\"\n }\n ]\n];\nconst Diff = createLucideIcon(\"diff\", __iconNode$hd);\nconst __iconNode$hc = [\n [\n \"circle\",\n {\n cx: \"12\",\n cy: \"12\",\n r: \"10\",\n key: \"1mglay\"\n }\n ],\n [\n \"circle\",\n {\n cx: \"12\",\n cy: \"12\",\n r: \"4\",\n key: \"4exip2\"\n }\n ],\n [\n \"path\",\n {\n d: \"M12 12h.01\",\n key: \"1mp3jc\"\n }\n ]\n];\nconst Disc2 = createLucideIcon(\"disc-2\", __iconNode$hc);\nconst __iconNode$hb = [\n [\n \"circle\",\n {\n cx: \"12\",\n cy: \"12\",\n r: \"10\",\n key: \"1mglay\"\n }\n ],\n [\n \"path\",\n {\n d: \"M6 12c0-1.7.7-3.2 1.8-4.2\",\n key: \"oqkarx\"\n }\n ],\n [\n \"circle\",\n {\n cx: \"12\",\n cy: \"12\",\n r: \"2\",\n key: \"1c9p78\"\n }\n ],\n [\n \"path\",\n {\n d: \"M18 12c0 1.7-.7 3.2-1.8 4.2\",\n key: \"1eah9h\"\n }\n ]\n];\nconst Disc3 = createLucideIcon(\"disc-3\", __iconNode$hb);\nconst __iconNode$ha = [\n [\n \"rect\",\n {\n width: \"18\",\n height: \"18\",\n x: \"3\",\n y: \"3\",\n rx: \"2\",\n key: \"afitv7\"\n }\n ],\n [\n \"circle\",\n {\n cx: \"12\",\n cy: \"12\",\n r: \"5\",\n key: \"nd82uf\"\n }\n ],\n [\n \"path\",\n {\n d: \"M12 12h.01\",\n key: \"1mp3jc\"\n }\n ]\n];\nconst DiscAlbum = createLucideIcon(\"disc-album\", __iconNode$ha);\nconst __iconNode$h9 = [\n [\n \"circle\",\n {\n cx: \"12\",\n cy: \"12\",\n r: \"10\",\n key: \"1mglay\"\n }\n ],\n [\n \"circle\",\n {\n cx: \"12\",\n cy: \"12\",\n r: \"2\",\n key: \"1c9p78\"\n }\n ]\n];\nconst Disc = createLucideIcon(\"disc\", __iconNode$h9);\nconst __iconNode$h8 = [\n [\n \"circle\",\n {\n cx: \"12\",\n cy: \"6\",\n r: \"1\",\n key: \"1bh7o1\"\n }\n ],\n [\n \"line\",\n {\n x1: \"5\",\n x2: \"19\",\n y1: \"12\",\n y2: \"12\",\n key: \"13b5wn\"\n }\n ],\n [\n \"circle\",\n {\n cx: \"12\",\n cy: \"18\",\n r: \"1\",\n key: \"lqb9t5\"\n }\n ]\n];\nconst Divide = createLucideIcon(\"divide\", __iconNode$h8);\nconst __iconNode$h7 = [\n [\n \"path\",\n {\n d: \"M15 2c-1.35 1.5-2.092 3-2.5 4.5L14 8\",\n key: \"1bivrr\"\n }\n ],\n [\n \"path\",\n {\n d: \"m17 6-2.891-2.891\",\n key: \"xu6p2f\"\n }\n ],\n [\n \"path\",\n {\n d: \"M2 15c3.333-3 6.667-3 10-3\",\n key: \"nxix30\"\n }\n ],\n [\n \"path\",\n {\n d: \"m2 2 20 20\",\n key: \"1ooewy\"\n }\n ],\n [\n \"path\",\n {\n d: \"m20 9 .891.891\",\n key: \"3xwk7g\"\n }\n ],\n [\n \"path\",\n {\n d: \"M22 9c-1.5 1.35-3 2.092-4.5 2.5l-1-1\",\n key: \"18cutr\"\n }\n ],\n [\n \"path\",\n {\n d: \"M3.109 14.109 4 15\",\n key: \"q76aoh\"\n }\n ],\n [\n \"path\",\n {\n d: \"m6.5 12.5 1 1\",\n key: \"cs35ky\"\n }\n ],\n [\n \"path\",\n {\n d: \"m7 18 2.891 2.891\",\n key: \"1sisit\"\n }\n ],\n [\n \"path\",\n {\n d: \"M9 22c1.35-1.5 2.092-3 2.5-4.5L10 16\",\n key: \"rlvei3\"\n }\n ]\n];\nconst DnaOff = createLucideIcon(\"dna-off\", __iconNode$h7);\nconst __iconNode$h6 = [\n [\n \"path\",\n {\n d: \"m10 16 1.5 1.5\",\n key: \"11lckj\"\n }\n ],\n [\n \"path\",\n {\n d: \"m14 8-1.5-1.5\",\n key: \"1ohn8i\"\n }\n ],\n [\n \"path\",\n {\n d: \"M15 2c-1.798 1.998-2.518 3.995-2.807 5.993\",\n key: \"80uv8i\"\n }\n ],\n [\n \"path\",\n {\n d: \"m16.5 10.5 1 1\",\n key: \"696xn5\"\n }\n ],\n [\n \"path\",\n {\n d: \"m17 6-2.891-2.891\",\n key: \"xu6p2f\"\n }\n ],\n [\n \"path\",\n {\n d: \"M2 15c6.667-6 13.333 0 20-6\",\n key: \"1pyr53\"\n }\n ],\n [\n \"path\",\n {\n d: \"m20 9 .891.891\",\n key: \"3xwk7g\"\n }\n ],\n [\n \"path\",\n {\n d: \"M3.109 14.109 4 15\",\n key: \"q76aoh\"\n }\n ],\n [\n \"path\",\n {\n d: \"m6.5 12.5 1 1\",\n key: \"cs35ky\"\n }\n ],\n [\n \"path\",\n {\n d: \"m7 18 2.891 2.891\",\n key: \"1sisit\"\n }\n ],\n [\n \"path\",\n {\n d: \"M9 22c1.798-1.998 2.518-3.995 2.807-5.993\",\n key: \"q3hbxp\"\n }\n ]\n];\nconst Dna = createLucideIcon(\"dna\", __iconNode$h6);\nconst __iconNode$h5 = [\n [\n \"path\",\n {\n d: \"M2 8h20\",\n key: \"d11cs7\"\n }\n ],\n [\n \"rect\",\n {\n width: \"20\",\n height: \"16\",\n x: \"2\",\n y: \"4\",\n rx: \"2\",\n key: \"18n3k1\"\n }\n ],\n [\n \"path\",\n {\n d: \"M6 16h12\",\n key: \"u522kt\"\n }\n ]\n];\nconst Dock = createLucideIcon(\"dock\", __iconNode$h5);\nconst __iconNode$h4 = [\n [\n \"path\",\n {\n d: \"M11.25 16.25h1.5L12 17z\",\n key: \"w7jh35\"\n }\n ],\n [\n \"path\",\n {\n d: \"M16 14v.5\",\n key: \"1lajdz\"\n }\n ],\n [\n \"path\",\n {\n d: \"M4.42 11.247A13.152 13.152 0 0 0 4 14.556C4 18.728 7.582 21 12 21s8-2.272 8-6.444a11.702 11.702 0 0 0-.493-3.309\",\n key: \"u7s9ue\"\n }\n ],\n [\n \"path\",\n {\n d: \"M8 14v.5\",\n key: \"1nzgdb\"\n }\n ],\n [\n \"path\",\n {\n d: \"M8.5 8.5c-.384 1.05-1.083 2.028-2.344 2.5-1.931.722-3.576-.297-3.656-1-.113-.994 1.177-6.53 4-7 1.923-.321 3.651.845 3.651 2.235A7.497 7.497 0 0 1 14 5.277c0-1.39 1.844-2.598 3.767-2.277 2.823.47 4.113 6.006 4 7-.08.703-1.725 1.722-3.656 1-1.261-.472-1.855-1.45-2.239-2.5\",\n key: \"v8hric\"\n }\n ]\n];\nconst Dog = createLucideIcon(\"dog\", __iconNode$h4);\nconst __iconNode$h3 = [\n [\n \"line\",\n {\n x1: \"12\",\n x2: \"12\",\n y1: \"2\",\n y2: \"22\",\n key: \"7eqyqh\"\n }\n ],\n [\n \"path\",\n {\n d: \"M17 5H9.5a3.5 3.5 0 0 0 0 7h5a3.5 3.5 0 0 1 0 7H6\",\n key: \"1b0p4s\"\n }\n ]\n];\nconst DollarSign = createLucideIcon(\"dollar-sign\", __iconNode$h3);\nconst __iconNode$h2 = [\n [\n \"path\",\n {\n d: \"M10 12h.01\",\n key: \"1kxr2c\"\n }\n ],\n [\n \"path\",\n {\n d: \"M18 9V6a2 2 0 0 0-2-2H8a2 2 0 0 0-2 2v14\",\n key: \"1bnhmg\"\n }\n ],\n [\n \"path\",\n {\n d: \"M2 20h8\",\n key: \"10ntw1\"\n }\n ],\n [\n \"path\",\n {\n d: \"M20 17v-2a2 2 0 1 0-4 0v2\",\n key: \"pwaxnr\"\n }\n ],\n [\n \"rect\",\n {\n x: \"14\",\n y: \"17\",\n width: \"8\",\n height: \"5\",\n rx: \"1\",\n key: \"15pjcy\"\n }\n ]\n];\nconst DoorClosedLocked = createLucideIcon(\"door-closed-locked\", __iconNode$h2);\nconst __iconNode$h1 = [\n [\n \"path\",\n {\n d: \"M20.5 10a2.5 2.5 0 0 1-2.4-3H18a2.95 2.95 0 0 1-2.6-4.4 10 10 0 1 0 6.3 7.1c-.3.2-.8.3-1.2.3\",\n key: \"19sr3x\"\n }\n ],\n [\n \"circle\",\n {\n cx: \"12\",\n cy: \"12\",\n r: \"3\",\n key: \"1v7zrd\"\n }\n ]\n];\nconst Donut = createLucideIcon(\"donut\", __iconNode$h1);\nconst __iconNode$h0 = [\n [\n \"path\",\n {\n d: \"M10 12h.01\",\n key: \"1kxr2c\"\n }\n ],\n [\n \"path\",\n {\n d: \"M18 20V6a2 2 0 0 0-2-2H8a2 2 0 0 0-2 2v14\",\n key: \"36qu9e\"\n }\n ],\n [\n \"path\",\n {\n d: \"M2 20h20\",\n key: \"owomy5\"\n }\n ]\n];\nconst DoorClosed = createLucideIcon(\"door-closed\", __iconNode$h0);\nconst __iconNode$g$ = [\n [\n \"circle\",\n {\n cx: \"12.1\",\n cy: \"12.1\",\n r: \"1\",\n key: \"18d7e5\"\n }\n ]\n];\nconst Dot = createLucideIcon(\"dot\", __iconNode$g$);\nconst __iconNode$g_ = [\n [\n \"path\",\n {\n d: \"M12 15V3\",\n key: \"m9g1x1\"\n }\n ],\n [\n \"path\",\n {\n d: \"M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4\",\n key: \"ih7n3h\"\n }\n ],\n [\n \"path\",\n {\n d: \"m7 10 5 5 5-5\",\n key: \"brsn70\"\n }\n ]\n];\nconst Download = createLucideIcon(\"download\", __iconNode$g_);\nconst __iconNode$gZ = [\n [\n \"path\",\n {\n d: \"M11 20H2\",\n key: \"nlcfvz\"\n }\n ],\n [\n \"path\",\n {\n d: \"M11 4.562v16.157a1 1 0 0 0 1.242.97L19 20V5.562a2 2 0 0 0-1.515-1.94l-4-1A2 2 0 0 0 11 4.561z\",\n key: \"au4z13\"\n }\n ],\n [\n \"path\",\n {\n d: \"M11 4H8a2 2 0 0 0-2 2v14\",\n key: \"74r1mk\"\n }\n ],\n [\n \"path\",\n {\n d: \"M14 12h.01\",\n key: \"1jfl7z\"\n }\n ],\n [\n \"path\",\n {\n d: \"M22 20h-3\",\n key: \"vhrsz\"\n }\n ]\n];\nconst DoorOpen = createLucideIcon(\"door-open\", __iconNode$gZ);\nconst __iconNode$gY = [\n [\n \"path\",\n {\n d: \"m12.99 6.74 1.93 3.44\",\n key: \"iwagvd\"\n }\n ],\n [\n \"path\",\n {\n d: \"M19.136 12a10 10 0 0 1-14.271 0\",\n key: \"ppmlo4\"\n }\n ],\n [\n \"path\",\n {\n d: \"m21 21-2.16-3.84\",\n key: \"vylbct\"\n }\n ],\n [\n \"path\",\n {\n d: \"m3 21 8.02-14.26\",\n key: \"1ssaw4\"\n }\n ],\n [\n \"circle\",\n {\n cx: \"12\",\n cy: \"5\",\n r: \"2\",\n key: \"f1ur92\"\n }\n ]\n];\nconst DraftingCompass = createLucideIcon(\"drafting-compass\", __iconNode$gY);\nconst __iconNode$gX = [\n [\n \"path\",\n {\n d: \"M10 11h.01\",\n key: \"d2at3l\"\n }\n ],\n [\n \"path\",\n {\n d: \"M14 6h.01\",\n key: \"k028ub\"\n }\n ],\n [\n \"path\",\n {\n d: \"M18 6h.01\",\n key: \"1v4wsw\"\n }\n ],\n [\n \"path\",\n {\n d: \"M6.5 13.1h.01\",\n key: \"1748ia\"\n }\n ],\n [\n \"path\",\n {\n d: \"M22 5c0 9-4 12-6 12s-6-3-6-12c0-2 2-3 6-3s6 1 6 3\",\n key: \"172yzv\"\n }\n ],\n [\n \"path\",\n {\n d: \"M17.4 9.9c-.8.8-2 .8-2.8 0\",\n key: \"1obv0w\"\n }\n ],\n [\n \"path\",\n {\n d: \"M10.1 7.1C9 7.2 7.7 7.7 6 8.6c-3.5 2-4.7 3.9-3.7 5.6 4.5 7.8 9.5 8.4 11.2 7.4.9-.5 1.9-2.1 1.9-4.7\",\n key: \"rqjl8i\"\n }\n ],\n [\n \"path\",\n {\n d: \"M9.1 16.5c.3-1.1 1.4-1.7 2.4-1.4\",\n key: \"1mr6wy\"\n }\n ]\n];\nconst Drama = createLucideIcon(\"drama\", __iconNode$gX);\nconst __iconNode$gW = [\n [\n \"circle\",\n {\n cx: \"12\",\n cy: \"12\",\n r: \"10\",\n key: \"1mglay\"\n }\n ],\n [\n \"path\",\n {\n d: \"M19.13 5.09C15.22 9.14 10 10.44 2.25 10.94\",\n key: \"hpej1\"\n }\n ],\n [\n \"path\",\n {\n d: \"M21.75 12.84c-6.62-1.41-12.14 1-16.38 6.32\",\n key: \"1tr44o\"\n }\n ],\n [\n \"path\",\n {\n d: \"M8.56 2.75c4.37 6 6 9.42 8 17.72\",\n key: \"kbh691\"\n }\n ]\n];\nconst Dribbble = createLucideIcon(\"dribbble\", __iconNode$gW);\nconst __iconNode$gV = [\n [\n \"path\",\n {\n d: \"M10 18a1 1 0 0 1 1 1v2a1 1 0 0 1-1 1H5a3 3 0 0 1-3-3 1 1 0 0 1 1-1z\",\n key: \"ioqxb1\"\n }\n ],\n [\n \"path\",\n {\n d: \"M13 10H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a1 1 0 0 1 1 1v6a1 1 0 0 1-1 1l-.81 3.242a1 1 0 0 1-.97.758H8\",\n key: \"1rs59n\"\n }\n ],\n [\n \"path\",\n {\n d: \"M14 4h3a1 1 0 0 1 1 1v2a1 1 0 0 1-1 1h-3\",\n key: \"105ega\"\n }\n ],\n [\n \"path\",\n {\n d: \"M18 6h4\",\n key: \"66u95g\"\n }\n ],\n [\n \"path\",\n {\n d: \"m5 10-2 8\",\n key: \"xt2lic\"\n }\n ],\n [\n \"path\",\n {\n d: \"m7 18 2-8\",\n key: \"1bzku2\"\n }\n ]\n];\nconst Drill = createLucideIcon(\"drill\", __iconNode$gV);\nconst __iconNode$gU = [\n [\n \"path\",\n {\n d: \"M10 10 7 7\",\n key: \"zp14k7\"\n }\n ],\n [\n \"path\",\n {\n d: \"m10 14-3 3\",\n key: \"1jrpxk\"\n }\n ],\n [\n \"path\",\n {\n d: \"m14 10 3-3\",\n key: \"7tigam\"\n }\n ],\n [\n \"path\",\n {\n d: \"m14 14 3 3\",\n key: \"vm23p3\"\n }\n ],\n [\n \"path\",\n {\n d: \"M14.205 4.139a4 4 0 1 1 5.439 5.863\",\n key: \"1tm5p2\"\n }\n ],\n [\n \"path\",\n {\n d: \"M19.637 14a4 4 0 1 1-5.432 5.868\",\n key: \"16egi2\"\n }\n ],\n [\n \"path\",\n {\n d: \"M4.367 10a4 4 0 1 1 5.438-5.862\",\n key: \"1wta6a\"\n }\n ],\n [\n \"path\",\n {\n d: \"M9.795 19.862a4 4 0 1 1-5.429-5.873\",\n key: \"q39hpv\"\n }\n ],\n [\n \"rect\",\n {\n x: \"10\",\n y: \"8\",\n width: \"4\",\n height: \"8\",\n rx: \"1\",\n key: \"phrjt1\"\n }\n ]\n];\nconst Drone = createLucideIcon(\"drone\", __iconNode$gU);\nconst __iconNode$gT = [\n [\n \"path\",\n {\n d: \"M18.715 13.186C18.29 11.858 17.384 10.607 16 9.5c-2-1.6-3.5-4-4-6.5a10.7 10.7 0 0 1-.884 2.586\",\n key: \"8suz2t\"\n }\n ],\n [\n \"path\",\n {\n d: \"m2 2 20 20\",\n key: \"1ooewy\"\n }\n ],\n [\n \"path\",\n {\n d: \"M8.795 8.797A11 11 0 0 1 8 9.5C6 11.1 5 13 5 15a7 7 0 0 0 13.222 3.208\",\n key: \"19dw9m\"\n }\n ]\n];\nconst DropletOff = createLucideIcon(\"droplet-off\", __iconNode$gT);\nconst __iconNode$gS = [\n [\n \"path\",\n {\n d: \"M12 22a7 7 0 0 0 7-7c0-2-1-3.9-3-5.5s-3.5-4-4-6.5c-.5 2.5-2 4.9-4 6.5C6 11.1 5 13 5 15a7 7 0 0 0 7 7z\",\n key: \"c7niix\"\n }\n ]\n];\nconst Droplet = createLucideIcon(\"droplet\", __iconNode$gS);\nconst __iconNode$gR = [\n [\n \"path\",\n {\n d: \"M7 16.3c2.2 0 4-1.83 4-4.05 0-1.16-.57-2.26-1.71-3.19S7.29 6.75 7 5.3c-.29 1.45-1.14 2.84-2.29 3.76S3 11.1 3 12.25c0 2.22 1.8 4.05 4 4.05z\",\n key: \"1ptgy4\"\n }\n ],\n [\n \"path\",\n {\n d: \"M12.56 6.6A10.97 10.97 0 0 0 14 3.02c.5 2.5 2 4.9 4 6.5s3 3.5 3 5.5a6.98 6.98 0 0 1-11.91 4.97\",\n key: \"1sl1rz\"\n }\n ]\n];\nconst Droplets = createLucideIcon(\"droplets\", __iconNode$gR);\nconst __iconNode$gQ = [\n [\n \"path\",\n {\n d: \"m2 2 8 8\",\n key: \"1v6059\"\n }\n ],\n [\n \"path\",\n {\n d: \"m22 2-8 8\",\n key: \"173r8a\"\n }\n ],\n [\n \"ellipse\",\n {\n cx: \"12\",\n cy: \"9\",\n rx: \"10\",\n ry: \"5\",\n key: \"liohsx\"\n }\n ],\n [\n \"path\",\n {\n d: \"M7 13.4v7.9\",\n key: \"1yi6u9\"\n }\n ],\n [\n \"path\",\n {\n d: \"M12 14v8\",\n key: \"1tn2tj\"\n }\n ],\n [\n \"path\",\n {\n d: \"M17 13.4v7.9\",\n key: \"eqz2v3\"\n }\n ],\n [\n \"path\",\n {\n d: \"M2 9v8a10 5 0 0 0 20 0V9\",\n key: \"1750ul\"\n }\n ]\n];\nconst Drum = createLucideIcon(\"drum\", __iconNode$gQ);\nconst __iconNode$gP = [\n [\n \"path\",\n {\n d: \"M15.4 15.63a7.875 6 135 1 1 6.23-6.23 4.5 3.43 135 0 0-6.23 6.23\",\n key: \"1dtqwm\"\n }\n ],\n [\n \"path\",\n {\n d: \"m8.29 12.71-2.6 2.6a2.5 2.5 0 1 0-1.65 4.65A2.5 2.5 0 1 0 8.7 18.3l2.59-2.59\",\n key: \"1oq1fw\"\n }\n ]\n];\nconst Drumstick = createLucideIcon(\"drumstick\", __iconNode$gP);\nconst __iconNode$gO = [\n [\n \"path\",\n {\n d: \"M17.596 12.768a2 2 0 1 0 2.829-2.829l-1.768-1.767a2 2 0 0 0 2.828-2.829l-2.828-2.828a2 2 0 0 0-2.829 2.828l-1.767-1.768a2 2 0 1 0-2.829 2.829z\",\n key: \"9m4mmf\"\n }\n ],\n [\n \"path\",\n {\n d: \"m2.5 21.5 1.4-1.4\",\n key: \"17g3f0\"\n }\n ],\n [\n \"path\",\n {\n d: \"m20.1 3.9 1.4-1.4\",\n key: \"1qn309\"\n }\n ],\n [\n \"path\",\n {\n d: \"M5.343 21.485a2 2 0 1 0 2.829-2.828l1.767 1.768a2 2 0 1 0 2.829-2.829l-6.364-6.364a2 2 0 1 0-2.829 2.829l1.768 1.767a2 2 0 0 0-2.828 2.829z\",\n key: \"1t2c92\"\n }\n ],\n [\n \"path\",\n {\n d: \"m9.6 14.4 4.8-4.8\",\n key: \"6umqxw\"\n }\n ]\n];\nconst Dumbbell = createLucideIcon(\"dumbbell\", __iconNode$gO);\nconst __iconNode$gN = [\n [\n \"path\",\n {\n d: \"M6 18.5a3.5 3.5 0 1 0 7 0c0-1.57.92-2.52 2.04-3.46\",\n key: \"1qngmn\"\n }\n ],\n [\n \"path\",\n {\n d: \"M6 8.5c0-.75.13-1.47.36-2.14\",\n key: \"b06bma\"\n }\n ],\n [\n \"path\",\n {\n d: \"M8.8 3.15A6.5 6.5 0 0 1 19 8.5c0 1.63-.44 2.81-1.09 3.76\",\n key: \"g10hsz\"\n }\n ],\n [\n \"path\",\n {\n d: \"M12.5 6A2.5 2.5 0 0 1 15 8.5M10 13a2 2 0 0 0 1.82-1.18\",\n key: \"ygzou7\"\n }\n ],\n [\n \"line\",\n {\n x1: \"2\",\n x2: \"22\",\n y1: \"2\",\n y2: \"22\",\n key: \"a6p6uj\"\n }\n ]\n];\nconst EarOff = createLucideIcon(\"ear-off\", __iconNode$gN);\nconst __iconNode$gM = [\n [\n \"path\",\n {\n d: \"M6 8.5a6.5 6.5 0 1 1 13 0c0 6-6 6-6 10a3.5 3.5 0 1 1-7 0\",\n key: \"1dfaln\"\n }\n ],\n [\n \"path\",\n {\n d: \"M15 8.5a2.5 2.5 0 0 0-5 0v1a2 2 0 1 1 0 4\",\n key: \"1qnva7\"\n }\n ]\n];\nconst Ear = createLucideIcon(\"ear\", __iconNode$gM);\nconst __iconNode$gL = [\n [\n \"path\",\n {\n d: \"M7 3.34V5a3 3 0 0 0 3 3\",\n key: \"w732o8\"\n }\n ],\n [\n \"path\",\n {\n d: \"M11 21.95V18a2 2 0 0 0-2-2 2 2 0 0 1-2-2v-1a2 2 0 0 0-2-2H2.05\",\n key: \"f02343\"\n }\n ],\n [\n \"path\",\n {\n d: \"M21.54 15H17a2 2 0 0 0-2 2v4.54\",\n key: \"1djwo0\"\n }\n ],\n [\n \"path\",\n {\n d: \"M12 2a10 10 0 1 0 9.54 13\",\n key: \"zjsr6q\"\n }\n ],\n [\n \"path\",\n {\n d: \"M20 6V4a2 2 0 1 0-4 0v2\",\n key: \"1of5e8\"\n }\n ],\n [\n \"rect\",\n {\n width: \"8\",\n height: \"5\",\n x: \"14\",\n y: \"6\",\n rx: \"1\",\n key: \"1fmf51\"\n }\n ]\n];\nconst EarthLock = createLucideIcon(\"earth-lock\", __iconNode$gL);\nconst __iconNode$gK = [\n [\n \"path\",\n {\n d: \"M21.54 15H17a2 2 0 0 0-2 2v4.54\",\n key: \"1djwo0\"\n }\n ],\n [\n \"path\",\n {\n d: \"M7 3.34V5a3 3 0 0 0 3 3a2 2 0 0 1 2 2c0 1.1.9 2 2 2a2 2 0 0 0 2-2c0-1.1.9-2 2-2h3.17\",\n key: \"1tzkfa\"\n }\n ],\n [\n \"path\",\n {\n d: \"M11 21.95V18a2 2 0 0 0-2-2a2 2 0 0 1-2-2v-1a2 2 0 0 0-2-2H2.05\",\n key: \"14pb5j\"\n }\n ],\n [\n \"circle\",\n {\n cx: \"12\",\n cy: \"12\",\n r: \"10\",\n key: \"1mglay\"\n }\n ]\n];\nconst Earth = createLucideIcon(\"earth\", __iconNode$gK);\nconst __iconNode$gJ = [\n [\n \"circle\",\n {\n cx: \"12\",\n cy: \"12\",\n r: \"10\",\n key: \"1mglay\"\n }\n ],\n [\n \"path\",\n {\n d: \"M12 2a7 7 0 1 0 10 10\",\n key: \"1yuj32\"\n }\n ]\n];\nconst Eclipse = createLucideIcon(\"eclipse\", __iconNode$gJ);\nconst __iconNode$gI = [\n [\n \"circle\",\n {\n cx: \"11.5\",\n cy: \"12.5\",\n r: \"3.5\",\n key: \"1cl1mi\"\n }\n ],\n [\n \"path\",\n {\n d: \"M3 8c0-3.5 2.5-6 6.5-6 5 0 4.83 3 7.5 5s5 2 5 6c0 4.5-2.5 6.5-7 6.5-2.5 0-2.5 2.5-6 2.5s-7-2-7-5.5c0-3 1.5-3 1.5-5C3.5 10 3 9 3 8Z\",\n key: \"165ef9\"\n }\n ]\n];\nconst EggFried = createLucideIcon(\"egg-fried\", __iconNode$gI);\nconst __iconNode$gH = [\n [\n \"path\",\n {\n d: \"m2 2 20 20\",\n key: \"1ooewy\"\n }\n ],\n [\n \"path\",\n {\n d: \"M20 14.347V14c0-6-4-12-8-12-1.078 0-2.157.436-3.157 1.19\",\n key: \"13g2jy\"\n }\n ],\n [\n \"path\",\n {\n d: \"M6.206 6.21C4.871 8.4 4 11.2 4 14a8 8 0 0 0 14.568 4.568\",\n key: \"1581id\"\n }\n ]\n];\nconst EggOff = createLucideIcon(\"egg-off\", __iconNode$gH);\nconst __iconNode$gG = [\n [\n \"path\",\n {\n d: \"M12 2C8 2 4 8 4 14a8 8 0 0 0 16 0c0-6-4-12-8-12\",\n key: \"1le142\"\n }\n ]\n];\nconst Egg = createLucideIcon(\"egg\", __iconNode$gG);\nconst __iconNode$gF = [\n [\n \"circle\",\n {\n cx: \"12\",\n cy: \"12\",\n r: \"1\",\n key: \"41hilf\"\n }\n ],\n [\n \"circle\",\n {\n cx: \"12\",\n cy: \"5\",\n r: \"1\",\n key: \"gxeob9\"\n }\n ],\n [\n \"circle\",\n {\n cx: \"12\",\n cy: \"19\",\n r: \"1\",\n key: \"lyex9k\"\n }\n ]\n];\nconst EllipsisVertical = createLucideIcon(\"ellipsis-vertical\", __iconNode$gF);\nconst __iconNode$gE = [\n [\n \"circle\",\n {\n cx: \"12\",\n cy: \"12\",\n r: \"1\",\n key: \"41hilf\"\n }\n ],\n [\n \"circle\",\n {\n cx: \"19\",\n cy: \"12\",\n r: \"1\",\n key: \"1wjl8i\"\n }\n ],\n [\n \"circle\",\n {\n cx: \"5\",\n cy: \"12\",\n r: \"1\",\n key: \"1pcz8c\"\n }\n ]\n];\nconst Ellipsis = createLucideIcon(\"ellipsis\", __iconNode$gE);\nconst __iconNode$gD = [\n [\n \"line\",\n {\n x1: \"5\",\n x2: \"19\",\n y1: \"9\",\n y2: \"9\",\n key: \"1nwqeh\"\n }\n ],\n [\n \"line\",\n {\n x1: \"5\",\n x2: \"19\",\n y1: \"15\",\n y2: \"15\",\n key: \"g8yjpy\"\n }\n ],\n [\n \"line\",\n {\n x1: \"19\",\n x2: \"5\",\n y1: \"5\",\n y2: \"19\",\n key: \"1x9vlm\"\n }\n ]\n];\nconst EqualNot = createLucideIcon(\"equal-not\", __iconNode$gD);\nconst __iconNode$gC = [\n [\n \"path\",\n {\n d: \"M5 15a6.5 6.5 0 0 1 7 0 6.5 6.5 0 0 0 7 0\",\n key: \"yrdkhy\"\n }\n ],\n [\n \"path\",\n {\n d: \"M5 9a6.5 6.5 0 0 1 7 0 6.5 6.5 0 0 0 7 0\",\n key: \"gzkvyz\"\n }\n ]\n];\nconst EqualApproximately = createLucideIcon(\"equal-approximately\", __iconNode$gC);\nconst __iconNode$gB = [\n [\n \"line\",\n {\n x1: \"5\",\n x2: \"19\",\n y1: \"9\",\n y2: \"9\",\n key: \"1nwqeh\"\n }\n ],\n [\n \"line\",\n {\n x1: \"5\",\n x2: \"19\",\n y1: \"15\",\n y2: \"15\",\n key: \"g8yjpy\"\n }\n ]\n];\nconst Equal = createLucideIcon(\"equal\", __iconNode$gB);\nconst __iconNode$gA = [\n [\n \"path\",\n {\n d: \"M21 21H8a2 2 0 0 1-1.42-.587l-3.994-3.999a2 2 0 0 1 0-2.828l10-10a2 2 0 0 1 2.829 0l5.999 6a2 2 0 0 1 0 2.828L12.834 21\",\n key: \"g5wo59\"\n }\n ],\n [\n \"path\",\n {\n d: \"m5.082 11.09 8.828 8.828\",\n key: \"1wx5vj\"\n }\n ]\n];\nconst Eraser = createLucideIcon(\"eraser\", __iconNode$gA);\nconst __iconNode$gz = [\n [\n \"path\",\n {\n d: \"m15 20 3-3h2a2 2 0 0 0 2-2V6a2 2 0 0 0-2-2H4a2 2 0 0 0-2 2v9a2 2 0 0 0 2 2h2l3 3z\",\n key: \"rbahqx\"\n }\n ],\n [\n \"path\",\n {\n d: \"M6 8v1\",\n key: \"1636ez\"\n }\n ],\n [\n \"path\",\n {\n d: \"M10 8v1\",\n key: \"1talb4\"\n }\n ],\n [\n \"path\",\n {\n d: \"M14 8v1\",\n key: \"1rsfgr\"\n }\n ],\n [\n \"path\",\n {\n d: \"M18 8v1\",\n key: \"gnkwox\"\n }\n ]\n];\nconst EthernetPort = createLucideIcon(\"ethernet-port\", __iconNode$gz);\nconst __iconNode$gy = [\n [\n \"path\",\n {\n d: \"M4 10h12\",\n key: \"1y6xl8\"\n }\n ],\n [\n \"path\",\n {\n d: \"M4 14h9\",\n key: \"1loblj\"\n }\n ],\n [\n \"path\",\n {\n d: \"M19 6a7.7 7.7 0 0 0-5.2-2A7.9 7.9 0 0 0 6 12c0 4.4 3.5 8 7.8 8 2 0 3.8-.8 5.2-2\",\n key: \"1j6lzo\"\n }\n ]\n];\nconst Euro = createLucideIcon(\"euro\", __iconNode$gy);\nconst __iconNode$gx = [\n [\n \"path\",\n {\n d: \"m15 15 6 6\",\n key: \"1s409w\"\n }\n ],\n [\n \"path\",\n {\n d: \"m15 9 6-6\",\n key: \"ko1vev\"\n }\n ],\n [\n \"path\",\n {\n d: \"M21 16v5h-5\",\n key: \"1ck2sf\"\n }\n ],\n [\n \"path\",\n {\n d: \"M21 8V3h-5\",\n key: \"1qoq8a\"\n }\n ],\n [\n \"path\",\n {\n d: \"M3 16v5h5\",\n key: \"1t08am\"\n }\n ],\n [\n \"path\",\n {\n d: \"m3 21 6-6\",\n key: \"wwnumi\"\n }\n ],\n [\n \"path\",\n {\n d: \"M3 8V3h5\",\n key: \"1ln10m\"\n }\n ],\n [\n \"path\",\n {\n d: \"M9 9 3 3\",\n key: \"v551iv\"\n }\n ]\n];\nconst Expand = createLucideIcon(\"expand\", __iconNode$gx);\nconst __iconNode$gw = [\n [\n \"path\",\n {\n d: \"M15 3h6v6\",\n key: \"1q9fwt\"\n }\n ],\n [\n \"path\",\n {\n d: \"M10 14 21 3\",\n key: \"gplh6r\"\n }\n ],\n [\n \"path\",\n {\n d: \"M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6\",\n key: \"a6xqqp\"\n }\n ]\n];\nconst ExternalLink = createLucideIcon(\"external-link\", __iconNode$gw);\nconst __iconNode$gv = [\n [\n \"path\",\n {\n d: \"m15 18-.722-3.25\",\n key: \"1j64jw\"\n }\n ],\n [\n \"path\",\n {\n d: \"M2 8a10.645 10.645 0 0 0 20 0\",\n key: \"1e7gxb\"\n }\n ],\n [\n \"path\",\n {\n d: \"m20 15-1.726-2.05\",\n key: \"1cnuld\"\n }\n ],\n [\n \"path\",\n {\n d: \"m4 15 1.726-2.05\",\n key: \"1dsqqd\"\n }\n ],\n [\n \"path\",\n {\n d: \"m9 18 .722-3.25\",\n key: \"ypw2yx\"\n }\n ]\n];\nconst EyeClosed = createLucideIcon(\"eye-closed\", __iconNode$gv);\nconst __iconNode$gu = [\n [\n \"path\",\n {\n d: \"M10.733 5.076a10.744 10.744 0 0 1 11.205 6.575 1 1 0 0 1 0 .696 10.747 10.747 0 0 1-1.444 2.49\",\n key: \"ct8e1f\"\n }\n ],\n [\n \"path\",\n {\n d: \"M14.084 14.158a3 3 0 0 1-4.242-4.242\",\n key: \"151rxh\"\n }\n ],\n [\n \"path\",\n {\n d: \"M17.479 17.499a10.75 10.75 0 0 1-15.417-5.151 1 1 0 0 1 0-.696 10.75 10.75 0 0 1 4.446-5.143\",\n key: \"13bj9a\"\n }\n ],\n [\n \"path\",\n {\n d: \"m2 2 20 20\",\n key: \"1ooewy\"\n }\n ]\n];\nconst EyeOff = createLucideIcon(\"eye-off\", __iconNode$gu);\nconst __iconNode$gt = [\n [\n \"path\",\n {\n d: \"M2.062 12.348a1 1 0 0 1 0-.696 10.75 10.75 0 0 1 19.876 0 1 1 0 0 1 0 .696 10.75 10.75 0 0 1-19.876 0\",\n key: \"1nclc0\"\n }\n ],\n [\n \"circle\",\n {\n cx: \"12\",\n cy: \"12\",\n r: \"3\",\n key: \"1v7zrd\"\n }\n ]\n];\nconst Eye = createLucideIcon(\"eye\", __iconNode$gt);\nconst __iconNode$gs = [\n [\n \"path\",\n {\n d: \"M18 2h-3a5 5 0 0 0-5 5v3H7v4h3v8h4v-8h3l1-4h-4V7a1 1 0 0 1 1-1h3z\",\n key: \"1jg4f8\"\n }\n ]\n];\nconst Facebook = createLucideIcon(\"facebook\", __iconNode$gs);\nconst __iconNode$gr = [\n [\n \"path\",\n {\n d: \"M12 16h.01\",\n key: \"1drbdi\"\n }\n ],\n [\n \"path\",\n {\n d: \"M16 16h.01\",\n key: \"1f9h7w\"\n }\n ],\n [\n \"path\",\n {\n d: \"M3 19a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2V8.5a.5.5 0 0 0-.769-.422l-4.462 2.844A.5.5 0 0 1 15 10.5v-2a.5.5 0 0 0-.769-.422L9.77 10.922A.5.5 0 0 1 9 10.5V5a2 2 0 0 0-2-2H5a2 2 0 0 0-2 2z\",\n key: \"1iv0i2\"\n }\n ],\n [\n \"path\",\n {\n d: \"M8 16h.01\",\n key: \"18s6g9\"\n }\n ]\n];\nconst Factory = createLucideIcon(\"factory\", __iconNode$gr);\nconst __iconNode$gq = [\n [\n \"path\",\n {\n d: \"M10.827 16.379a6.082 6.082 0 0 1-8.618-7.002l5.412 1.45a6.082 6.082 0 0 1 7.002-8.618l-1.45 5.412a6.082 6.082 0 0 1 8.618 7.002l-5.412-1.45a6.082 6.082 0 0 1-7.002 8.618l1.45-5.412Z\",\n key: \"484a7f\"\n }\n ],\n [\n \"path\",\n {\n d: \"M12 12v.01\",\n key: \"u5ubse\"\n }\n ]\n];\nconst Fan = createLucideIcon(\"fan\", __iconNode$gq);\nconst __iconNode$gp = [\n [\n \"polygon\",\n {\n points: \"13 19 22 12 13 5 13 19\",\n key: \"587y9g\"\n }\n ],\n [\n \"polygon\",\n {\n points: \"2 19 11 12 2 5 2 19\",\n key: \"3pweh0\"\n }\n ]\n];\nconst FastForward = createLucideIcon(\"fast-forward\", __iconNode$gp);\nconst __iconNode$go = [\n [\n \"path\",\n {\n d: \"M12.67 19a2 2 0 0 0 1.416-.588l6.154-6.172a6 6 0 0 0-8.49-8.49L5.586 9.914A2 2 0 0 0 5 11.328V18a1 1 0 0 0 1 1z\",\n key: \"18jl4k\"\n }\n ],\n [\n \"path\",\n {\n d: \"M16 8 2 22\",\n key: \"vp34q\"\n }\n ],\n [\n \"path\",\n {\n d: \"M17.5 15H9\",\n key: \"1oz8nu\"\n }\n ]\n];\nconst Feather = createLucideIcon(\"feather\", __iconNode$go);\nconst __iconNode$gn = [\n [\n \"path\",\n {\n d: \"M4 3 2 5v15c0 .6.4 1 1 1h2c.6 0 1-.4 1-1V5Z\",\n key: \"1n2rgs\"\n }\n ],\n [\n \"path\",\n {\n d: \"M6 8h4\",\n key: \"utf9t1\"\n }\n ],\n [\n \"path\",\n {\n d: \"M6 18h4\",\n key: \"12yh4b\"\n }\n ],\n [\n \"path\",\n {\n d: \"m12 3-2 2v15c0 .6.4 1 1 1h2c.6 0 1-.4 1-1V5Z\",\n key: \"3ha7mj\"\n }\n ],\n [\n \"path\",\n {\n d: \"M14 8h4\",\n key: \"1r8wg2\"\n }\n ],\n [\n \"path\",\n {\n d: \"M14 18h4\",\n key: \"1t3kbu\"\n }\n ],\n [\n \"path\",\n {\n d: \"m20 3-2 2v15c0 .6.4 1 1 1h2c.6 0 1-.4 1-1V5Z\",\n key: \"dfd4e2\"\n }\n ]\n];\nconst Fence = createLucideIcon(\"fence\", __iconNode$gn);\nconst __iconNode$gm = [\n [\n \"circle\",\n {\n cx: \"12\",\n cy: \"12\",\n r: \"2\",\n key: \"1c9p78\"\n }\n ],\n [\n \"path\",\n {\n d: \"M12 2v4\",\n key: \"3427ic\"\n }\n ],\n [\n \"path\",\n {\n d: \"m6.8 15-3.5 2\",\n key: \"hjy98k\"\n }\n ],\n [\n \"path\",\n {\n d: \"m20.7 7-3.5 2\",\n key: \"f08gto\"\n }\n ],\n [\n \"path\",\n {\n d: \"M6.8 9 3.3 7\",\n key: \"1aevh4\"\n }\n ],\n [\n \"path\",\n {\n d: \"m20.7 17-3.5-2\",\n key: \"1liqo3\"\n }\n ],\n [\n \"path\",\n {\n d: \"m9 22 3-8 3 8\",\n key: \"wees03\"\n }\n ],\n [\n \"path\",\n {\n d: \"M8 22h8\",\n key: \"rmew8v\"\n }\n ],\n [\n \"path\",\n {\n d: \"M18 18.7a9 9 0 1 0-12 0\",\n key: \"dhzg4g\"\n }\n ]\n];\nconst FerrisWheel = createLucideIcon(\"ferris-wheel\", __iconNode$gm);\nconst __iconNode$gl = [\n [\n \"path\",\n {\n d: \"M5 5.5A3.5 3.5 0 0 1 8.5 2H12v7H8.5A3.5 3.5 0 0 1 5 5.5z\",\n key: \"1340ok\"\n }\n ],\n [\n \"path\",\n {\n d: \"M12 2h3.5a3.5 3.5 0 1 1 0 7H12V2z\",\n key: \"1hz3m3\"\n }\n ],\n [\n \"path\",\n {\n d: \"M12 12.5a3.5 3.5 0 1 1 7 0 3.5 3.5 0 1 1-7 0z\",\n key: \"1oz8n2\"\n }\n ],\n [\n \"path\",\n {\n d: \"M5 19.5A3.5 3.5 0 0 1 8.5 16H12v3.5a3.5 3.5 0 1 1-7 0z\",\n key: \"1ff65i\"\n }\n ],\n [\n \"path\",\n {\n d: \"M5 12.5A3.5 3.5 0 0 1 8.5 9H12v7H8.5A3.5 3.5 0 0 1 5 12.5z\",\n key: \"pdip6e\"\n }\n ]\n];\nconst Figma = createLucideIcon(\"figma\", __iconNode$gl);\nconst __iconNode$gk = [\n [\n \"path\",\n {\n d: \"M10 12v-1\",\n key: \"v7bkov\"\n }\n ],\n [\n \"path\",\n {\n d: \"M10 18v-2\",\n key: \"1cjy8d\"\n }\n ],\n [\n \"path\",\n {\n d: \"M10 7V6\",\n key: \"dljcrl\"\n }\n ],\n [\n \"path\",\n {\n d: \"M14 2v4a2 2 0 0 0 2 2h4\",\n key: \"tnqrlb\"\n }\n ],\n [\n \"path\",\n {\n d: \"M15.5 22H18a2 2 0 0 0 2-2V7l-5-5H6a2 2 0 0 0-2 2v16a2 2 0 0 0 .274 1.01\",\n key: \"gkbcor\"\n }\n ],\n [\n \"circle\",\n {\n cx: \"10\",\n cy: \"20\",\n r: \"2\",\n key: \"1xzdoj\"\n }\n ]\n];\nconst FileArchive = createLucideIcon(\"file-archive\", __iconNode$gk);\nconst __iconNode$gj = [\n [\n \"path\",\n {\n d: \"M4 22h14a2 2 0 0 0 2-2V7l-5-5H6a2 2 0 0 0-2 2v2\",\n key: \"17k7jt\"\n }\n ],\n [\n \"path\",\n {\n d: \"M14 2v4a2 2 0 0 0 2 2h4\",\n key: \"tnqrlb\"\n }\n ],\n [\n \"circle\",\n {\n cx: \"3\",\n cy: \"17\",\n r: \"1\",\n key: \"vo6nti\"\n }\n ],\n [\n \"path\",\n {\n d: \"M2 17v-3a4 4 0 0 1 8 0v3\",\n key: \"1ggdre\"\n }\n ],\n [\n \"circle\",\n {\n cx: \"9\",\n cy: \"17\",\n r: \"1\",\n key: \"bc1fq4\"\n }\n ]\n];\nconst FileAudio2 = createLucideIcon(\"file-audio-2\", __iconNode$gj);\nconst __iconNode$gi = [\n [\n \"path\",\n {\n d: \"M17.5 22h.5a2 2 0 0 0 2-2V7l-5-5H6a2 2 0 0 0-2 2v3\",\n key: \"rslqgf\"\n }\n ],\n [\n \"path\",\n {\n d: \"M14 2v4a2 2 0 0 0 2 2h4\",\n key: \"tnqrlb\"\n }\n ],\n [\n \"path\",\n {\n d: \"M2 19a2 2 0 1 1 4 0v1a2 2 0 1 1-4 0v-4a6 6 0 0 1 12 0v4a2 2 0 1 1-4 0v-1a2 2 0 1 1 4 0\",\n key: \"9f7x3i\"\n }\n ]\n];\nconst FileAudio = createLucideIcon(\"file-audio\", __iconNode$gi);\nconst __iconNode$gh = [\n [\n \"path\",\n {\n d: \"M15 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7Z\",\n key: \"1rqfz7\"\n }\n ],\n [\n \"path\",\n {\n d: \"M14 2v4a2 2 0 0 0 2 2h4\",\n key: \"tnqrlb\"\n }\n ],\n [\n \"path\",\n {\n d: \"m8 18 4-4\",\n key: \"12zab0\"\n }\n ],\n [\n \"path\",\n {\n d: \"M8 10v8h8\",\n key: \"tlaukw\"\n }\n ]\n];\nconst FileAxis3d = createLucideIcon(\"file-axis-3d\", __iconNode$gh);\nconst __iconNode$gg = [\n [\n \"path\",\n {\n d: \"m13.69 12.479 1.29 4.88a.5.5 0 0 1-.697.591l-1.844-.849a1 1 0 0 0-.88.001l-1.846.85a.5.5 0 0 1-.693-.593l1.29-4.88\",\n key: \"7a4gmr\"\n }\n ],\n [\n \"path\",\n {\n d: \"M15 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7z\",\n key: \"1mlx9k\"\n }\n ],\n [\n \"circle\",\n {\n cx: \"12\",\n cy: \"10\",\n r: \"3\",\n key: \"ilqhr7\"\n }\n ]\n];\nconst FileBadge2 = createLucideIcon(\"file-badge-2\", __iconNode$gg);\nconst __iconNode$gf = [\n [\n \"path\",\n {\n d: \"M12 22h6a2 2 0 0 0 2-2V7l-5-5H6a2 2 0 0 0-2 2v3.072\",\n key: \"n6s66f\"\n }\n ],\n [\n \"path\",\n {\n d: \"M14 2v4a2 2 0 0 0 2 2h4\",\n key: \"tnqrlb\"\n }\n ],\n [\n \"path\",\n {\n d: \"m6.69 16.479 1.29 4.88a.5.5 0 0 1-.698.591l-1.843-.849a1 1 0 0 0-.88.001l-1.846.85a.5.5 0 0 1-.693-.593l1.29-4.88\",\n key: \"1e6yvx\"\n }\n ],\n [\n \"circle\",\n {\n cx: \"5\",\n cy: \"14\",\n r: \"3\",\n key: \"ufru5t\"\n }\n ]\n];\nconst FileBadge = createLucideIcon(\"file-badge\", __iconNode$gf);\nconst __iconNode$ge = [\n [\n \"path\",\n {\n d: \"M14.5 22H18a2 2 0 0 0 2-2V7l-5-5H6a2 2 0 0 0-2 2v4\",\n key: \"16lz6z\"\n }\n ],\n [\n \"path\",\n {\n d: \"M14 2v4a2 2 0 0 0 2 2h4\",\n key: \"tnqrlb\"\n }\n ],\n [\n \"path\",\n {\n d: \"M3 13.1a2 2 0 0 0-1 1.76v3.24a2 2 0 0 0 .97 1.78L6 21.7a2 2 0 0 0 2.03.01L11 19.9a2 2 0 0 0 1-1.76V14.9a2 2 0 0 0-.97-1.78L8 11.3a2 2 0 0 0-2.03-.01Z\",\n key: \"99pj1s\"\n }\n ],\n [\n \"path\",\n {\n d: \"M7 17v5\",\n key: \"1yj1jh\"\n }\n ],\n [\n \"path\",\n {\n d: \"M11.7 14.2 7 17l-4.7-2.8\",\n key: \"1yk8tc\"\n }\n ]\n];\nconst FileBox = createLucideIcon(\"file-box\", __iconNode$ge);\nconst __iconNode$gd = [\n [\n \"path\",\n {\n d: \"M15 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7Z\",\n key: \"1rqfz7\"\n }\n ],\n [\n \"path\",\n {\n d: \"M14 2v4a2 2 0 0 0 2 2h4\",\n key: \"tnqrlb\"\n }\n ],\n [\n \"path\",\n {\n d: \"M8 18v-2\",\n key: \"qcmpov\"\n }\n ],\n [\n \"path\",\n {\n d: \"M12 18v-4\",\n key: \"q1q25u\"\n }\n ],\n [\n \"path\",\n {\n d: \"M16 18v-6\",\n key: \"15y0np\"\n }\n ]\n];\nconst FileChartColumnIncreasing = createLucideIcon(\"file-chart-column-increasing\", __iconNode$gd);\nconst __iconNode$gc = [\n [\n \"path\",\n {\n d: \"M15 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7Z\",\n key: \"1rqfz7\"\n }\n ],\n [\n \"path\",\n {\n d: \"M14 2v4a2 2 0 0 0 2 2h4\",\n key: \"tnqrlb\"\n }\n ],\n [\n \"path\",\n {\n d: \"M8 18v-1\",\n key: \"zg0ygc\"\n }\n ],\n [\n \"path\",\n {\n d: \"M12 18v-6\",\n key: \"17g6i2\"\n }\n ],\n [\n \"path\",\n {\n d: \"M16 18v-3\",\n key: \"j5jt4h\"\n }\n ]\n];\nconst FileChartColumn = createLucideIcon(\"file-chart-column\", __iconNode$gc);\nconst __iconNode$gb = [\n [\n \"path\",\n {\n d: \"M14 2v4a2 2 0 0 0 2 2h4\",\n key: \"tnqrlb\"\n }\n ],\n [\n \"path\",\n {\n d: \"M16 22h2a2 2 0 0 0 2-2V7l-5-5H6a2 2 0 0 0-2 2v3.5\",\n key: \"13ddob\"\n }\n ],\n [\n \"path\",\n {\n d: \"M4.017 11.512a6 6 0 1 0 8.466 8.475\",\n key: \"s6vs5t\"\n }\n ],\n [\n \"path\",\n {\n d: \"M9 16a1 1 0 0 1-1-1v-4c0-.552.45-1.008.995-.917a6 6 0 0 1 4.922 4.922c.091.544-.365.995-.917.995z\",\n key: \"1dl6s6\"\n }\n ]\n];\nconst FileChartPie = createLucideIcon(\"file-chart-pie\", __iconNode$gb);\nconst __iconNode$ga = [\n [\n \"path\",\n {\n d: \"M15 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7Z\",\n key: \"1rqfz7\"\n }\n ],\n [\n \"path\",\n {\n d: \"M14 2v4a2 2 0 0 0 2 2h4\",\n key: \"tnqrlb\"\n }\n ],\n [\n \"path\",\n {\n d: \"m16 13-3.5 3.5-2-2L8 17\",\n key: \"zz7yod\"\n }\n ]\n];\nconst FileChartLine = createLucideIcon(\"file-chart-line\", __iconNode$ga);\nconst __iconNode$g9 = [\n [\n \"path\",\n {\n d: \"M4 22h14a2 2 0 0 0 2-2V7l-5-5H6a2 2 0 0 0-2 2v4\",\n key: \"1pf5j1\"\n }\n ],\n [\n \"path\",\n {\n d: \"M14 2v4a2 2 0 0 0 2 2h4\",\n key: \"tnqrlb\"\n }\n ],\n [\n \"path\",\n {\n d: \"m3 15 2 2 4-4\",\n key: \"1lhrkk\"\n }\n ]\n];\nconst FileCheck2 = createLucideIcon(\"file-check-2\", __iconNode$g9);\nconst __iconNode$g8 = [\n [\n \"path\",\n {\n d: \"M15 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7Z\",\n key: \"1rqfz7\"\n }\n ],\n [\n \"path\",\n {\n d: \"M14 2v4a2 2 0 0 0 2 2h4\",\n key: \"tnqrlb\"\n }\n ],\n [\n \"path\",\n {\n d: \"m9 15 2 2 4-4\",\n key: \"1grp1n\"\n }\n ]\n];\nconst FileCheck = createLucideIcon(\"file-check\", __iconNode$g8);\nconst __iconNode$g7 = [\n [\n \"path\",\n {\n d: \"M4 22h14a2 2 0 0 0 2-2V7l-5-5H6a2 2 0 0 0-2 2v4\",\n key: \"1pf5j1\"\n }\n ],\n [\n \"path\",\n {\n d: \"M14 2v4a2 2 0 0 0 2 2h4\",\n key: \"tnqrlb\"\n }\n ],\n [\n \"path\",\n {\n d: \"m5 12-3 3 3 3\",\n key: \"oke12k\"\n }\n ],\n [\n \"path\",\n {\n d: \"m9 18 3-3-3-3\",\n key: \"112psh\"\n }\n ]\n];\nconst FileCode2 = createLucideIcon(\"file-code-2\", __iconNode$g7);\nconst __iconNode$g6 = [\n [\n \"path\",\n {\n d: \"M14 2v4a2 2 0 0 0 2 2h4\",\n key: \"tnqrlb\"\n }\n ],\n [\n \"path\",\n {\n d: \"M16 22h2a2 2 0 0 0 2-2V7l-5-5H6a2 2 0 0 0-2 2v3\",\n key: \"37hlfg\"\n }\n ],\n [\n \"path\",\n {\n d: \"M8 14v2.2l1.6 1\",\n key: \"6m4bie\"\n }\n ],\n [\n \"circle\",\n {\n cx: \"8\",\n cy: \"16\",\n r: \"6\",\n key: \"10v15b\"\n }\n ]\n];\nconst FileClock = createLucideIcon(\"file-clock\", __iconNode$g6);\nconst __iconNode$g5 = [\n [\n \"path\",\n {\n d: \"M10 12.5 8 15l2 2.5\",\n key: \"1tg20x\"\n }\n ],\n [\n \"path\",\n {\n d: \"m14 12.5 2 2.5-2 2.5\",\n key: \"yinavb\"\n }\n ],\n [\n \"path\",\n {\n d: \"M14 2v4a2 2 0 0 0 2 2h4\",\n key: \"tnqrlb\"\n }\n ],\n [\n \"path\",\n {\n d: \"M15 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7z\",\n key: \"1mlx9k\"\n }\n ]\n];\nconst FileCode = createLucideIcon(\"file-code\", __iconNode$g5);\nconst __iconNode$g4 = [\n [\n \"path\",\n {\n d: \"M14 2v4a2 2 0 0 0 2 2h4\",\n key: \"tnqrlb\"\n }\n ],\n [\n \"path\",\n {\n d: \"m2.305 15.53.923-.382\",\n key: \"yfp9st\"\n }\n ],\n [\n \"path\",\n {\n d: \"m3.228 12.852-.924-.383\",\n key: \"bckynb\"\n }\n ],\n [\n \"path\",\n {\n d: \"M4.677 21.5a2 2 0 0 0 1.313.5H18a2 2 0 0 0 2-2V7l-5-5H6a2 2 0 0 0-2 2v2.5\",\n key: \"1yo3oz\"\n }\n ],\n [\n \"path\",\n {\n d: \"m4.852 11.228-.383-.923\",\n key: \"1j88i9\"\n }\n ],\n [\n \"path\",\n {\n d: \"m4.852 16.772-.383.924\",\n key: \"sag1dv\"\n }\n ],\n [\n \"path\",\n {\n d: \"m7.148 11.228.383-.923\",\n key: \"rj39hk\"\n }\n ],\n [\n \"path\",\n {\n d: \"m7.53 17.696-.382-.924\",\n key: \"1uu5cs\"\n }\n ],\n [\n \"path\",\n {\n d: \"m8.772 12.852.923-.383\",\n key: \"13811l\"\n }\n ],\n [\n \"path\",\n {\n d: \"m8.772 15.148.923.383\",\n key: \"z1a5l0\"\n }\n ],\n [\n \"circle\",\n {\n cx: \"6\",\n cy: \"14\",\n r: \"3\",\n key: \"a1xfv6\"\n }\n ]\n];\nconst FileCog = createLucideIcon(\"file-cog\", __iconNode$g4);\nconst __iconNode$g3 = [\n [\n \"path\",\n {\n d: \"M15 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7Z\",\n key: \"1rqfz7\"\n }\n ],\n [\n \"path\",\n {\n d: \"M9 10h6\",\n key: \"9gxzsh\"\n }\n ],\n [\n \"path\",\n {\n d: \"M12 13V7\",\n key: \"h0r20n\"\n }\n ],\n [\n \"path\",\n {\n d: \"M9 17h6\",\n key: \"r8uit2\"\n }\n ]\n];\nconst FileDiff = createLucideIcon(\"file-diff\", __iconNode$g3);\nconst __iconNode$g2 = [\n [\n \"path\",\n {\n d: \"M4 22h14a2 2 0 0 0 2-2V7l-5-5H6a2 2 0 0 0-2 2v4\",\n key: \"1pf5j1\"\n }\n ],\n [\n \"path\",\n {\n d: \"M14 2v4a2 2 0 0 0 2 2h4\",\n key: \"tnqrlb\"\n }\n ],\n [\n \"rect\",\n {\n width: \"4\",\n height: \"6\",\n x: \"2\",\n y: \"12\",\n rx: \"2\",\n key: \"jm304g\"\n }\n ],\n [\n \"path\",\n {\n d: \"M10 12h2v6\",\n key: \"12zw74\"\n }\n ],\n [\n \"path\",\n {\n d: \"M10 18h4\",\n key: \"1ulq68\"\n }\n ]\n];\nconst FileDigit = createLucideIcon(\"file-digit\", __iconNode$g2);\nconst __iconNode$g1 = [\n [\n \"path\",\n {\n d: \"M15 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7Z\",\n key: \"1rqfz7\"\n }\n ],\n [\n \"path\",\n {\n d: \"M14 2v4a2 2 0 0 0 2 2h4\",\n key: \"tnqrlb\"\n }\n ],\n [\n \"path\",\n {\n d: \"M12 18v-6\",\n key: \"17g6i2\"\n }\n ],\n [\n \"path\",\n {\n d: \"m9 15 3 3 3-3\",\n key: \"1npd3o\"\n }\n ]\n];\nconst FileDown = createLucideIcon(\"file-down\", __iconNode$g1);\nconst __iconNode$g0 = [\n [\n \"path\",\n {\n d: \"M4 22h14a2 2 0 0 0 2-2V7l-5-5H6a2 2 0 0 0-2 2v2\",\n key: \"17k7jt\"\n }\n ],\n [\n \"path\",\n {\n d: \"M14 2v4a2 2 0 0 0 2 2h4\",\n key: \"tnqrlb\"\n }\n ],\n [\n \"path\",\n {\n d: \"M10.29 10.7a2.43 2.43 0 0 0-2.66-.52c-.29.12-.56.3-.78.53l-.35.34-.35-.34a2.43 2.43 0 0 0-2.65-.53c-.3.12-.56.3-.79.53-.95.94-1 2.53.2 3.74L6.5 18l3.6-3.55c1.2-1.21 1.14-2.8.19-3.74Z\",\n key: \"1c1fso\"\n }\n ]\n];\nconst FileHeart = createLucideIcon(\"file-heart\", __iconNode$g0);\nconst __iconNode$f$ = [\n [\n \"path\",\n {\n d: \"M15 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7Z\",\n key: \"1rqfz7\"\n }\n ],\n [\n \"path\",\n {\n d: \"M14 2v4a2 2 0 0 0 2 2h4\",\n key: \"tnqrlb\"\n }\n ],\n [\n \"circle\",\n {\n cx: \"10\",\n cy: \"12\",\n r: \"2\",\n key: \"737tya\"\n }\n ],\n [\n \"path\",\n {\n d: \"m20 17-1.296-1.296a2.41 2.41 0 0 0-3.408 0L9 22\",\n key: \"wt3hpn\"\n }\n ]\n];\nconst FileImage = createLucideIcon(\"file-image\", __iconNode$f$);\nconst __iconNode$f_ = [\n [\n \"path\",\n {\n d: \"M4 22h14a2 2 0 0 0 2-2V7l-5-5H6a2 2 0 0 0-2 2v4\",\n key: \"1pf5j1\"\n }\n ],\n [\n \"path\",\n {\n d: \"M14 2v4a2 2 0 0 0 2 2h4\",\n key: \"tnqrlb\"\n }\n ],\n [\n \"path\",\n {\n d: \"M2 15h10\",\n key: \"jfw4w8\"\n }\n ],\n [\n \"path\",\n {\n d: \"m9 18 3-3-3-3\",\n key: \"112psh\"\n }\n ]\n];\nconst FileInput = createLucideIcon(\"file-input\", __iconNode$f_);\nconst __iconNode$fZ = [\n [\n \"path\",\n {\n d: \"M4 22h14a2 2 0 0 0 2-2V7l-5-5H6a2 2 0 0 0-2 2v4\",\n key: \"1pf5j1\"\n }\n ],\n [\n \"path\",\n {\n d: \"M14 2v4a2 2 0 0 0 2 2h4\",\n key: \"tnqrlb\"\n }\n ],\n [\n \"path\",\n {\n d: \"M4 12a1 1 0 0 0-1 1v1a1 1 0 0 1-1 1 1 1 0 0 1 1 1v1a1 1 0 0 0 1 1\",\n key: \"fq0c9t\"\n }\n ],\n [\n \"path\",\n {\n d: \"M8 18a1 1 0 0 0 1-1v-1a1 1 0 0 1 1-1 1 1 0 0 1-1-1v-1a1 1 0 0 0-1-1\",\n key: \"4gibmv\"\n }\n ]\n];\nconst FileJson2 = createLucideIcon(\"file-json-2\", __iconNode$fZ);\nconst __iconNode$fY = [\n [\n \"path\",\n {\n d: \"M15 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7Z\",\n key: \"1rqfz7\"\n }\n ],\n [\n \"path\",\n {\n d: \"M14 2v4a2 2 0 0 0 2 2h4\",\n key: \"tnqrlb\"\n }\n ],\n [\n \"path\",\n {\n d: \"M10 12a1 1 0 0 0-1 1v1a1 1 0 0 1-1 1 1 1 0 0 1 1 1v1a1 1 0 0 0 1 1\",\n key: \"1oajmo\"\n }\n ],\n [\n \"path\",\n {\n d: \"M14 18a1 1 0 0 0 1-1v-1a1 1 0 0 1 1-1 1 1 0 0 1-1-1v-1a1 1 0 0 0-1-1\",\n key: \"mpwhp6\"\n }\n ]\n];\nconst FileJson = createLucideIcon(\"file-json\", __iconNode$fY);\nconst __iconNode$fX = [\n [\n \"path\",\n {\n d: \"M4 22h14a2 2 0 0 0 2-2V7l-5-5H6a2 2 0 0 0-2 2v6\",\n key: \"rc0qvx\"\n }\n ],\n [\n \"path\",\n {\n d: \"M14 2v4a2 2 0 0 0 2 2h4\",\n key: \"tnqrlb\"\n }\n ],\n [\n \"circle\",\n {\n cx: \"4\",\n cy: \"16\",\n r: \"2\",\n key: \"1ehqvc\"\n }\n ],\n [\n \"path\",\n {\n d: \"m10 10-4.5 4.5\",\n key: \"7fwrp6\"\n }\n ],\n [\n \"path\",\n {\n d: \"m9 11 1 1\",\n key: \"wa6s5q\"\n }\n ]\n];\nconst FileKey2 = createLucideIcon(\"file-key-2\", __iconNode$fX);\nconst __iconNode$fW = [\n [\n \"path\",\n {\n d: \"M15 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7Z\",\n key: \"1rqfz7\"\n }\n ],\n [\n \"circle\",\n {\n cx: \"10\",\n cy: \"16\",\n r: \"2\",\n key: \"4ckbqe\"\n }\n ],\n [\n \"path\",\n {\n d: \"m16 10-4.5 4.5\",\n key: \"7p3ebg\"\n }\n ],\n [\n \"path\",\n {\n d: \"m15 11 1 1\",\n key: \"1bsyx3\"\n }\n ]\n];\nconst FileKey = createLucideIcon(\"file-key\", __iconNode$fW);\nconst __iconNode$fV = [\n [\n \"path\",\n {\n d: \"M4 22h14a2 2 0 0 0 2-2V7l-5-5H6a2 2 0 0 0-2 2v1\",\n key: \"jmtmu2\"\n }\n ],\n [\n \"path\",\n {\n d: \"M14 2v4a2 2 0 0 0 2 2h4\",\n key: \"tnqrlb\"\n }\n ],\n [\n \"rect\",\n {\n width: \"8\",\n height: \"5\",\n x: \"2\",\n y: \"13\",\n rx: \"1\",\n key: \"10y5wo\"\n }\n ],\n [\n \"path\",\n {\n d: \"M8 13v-2a2 2 0 1 0-4 0v2\",\n key: \"1pdxzg\"\n }\n ]\n];\nconst FileLock2 = createLucideIcon(\"file-lock-2\", __iconNode$fV);\nconst __iconNode$fU = [\n [\n \"path\",\n {\n d: \"M15 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7Z\",\n key: \"1rqfz7\"\n }\n ],\n [\n \"rect\",\n {\n width: \"8\",\n height: \"6\",\n x: \"8\",\n y: \"12\",\n rx: \"1\",\n key: \"3yr8at\"\n }\n ],\n [\n \"path\",\n {\n d: \"M10 12v-2a2 2 0 1 1 4 0v2\",\n key: \"j4i8d\"\n }\n ]\n];\nconst FileLock = createLucideIcon(\"file-lock\", __iconNode$fU);\nconst __iconNode$fT = [\n [\n \"path\",\n {\n d: \"M4 22h14a2 2 0 0 0 2-2V7l-5-5H6a2 2 0 0 0-2 2v4\",\n key: \"1pf5j1\"\n }\n ],\n [\n \"path\",\n {\n d: \"M14 2v4a2 2 0 0 0 2 2h4\",\n key: \"tnqrlb\"\n }\n ],\n [\n \"path\",\n {\n d: \"M3 15h6\",\n key: \"4e2qda\"\n }\n ]\n];\nconst FileMinus2 = createLucideIcon(\"file-minus-2\", __iconNode$fT);\nconst __iconNode$fS = [\n [\n \"path\",\n {\n d: \"M15 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7Z\",\n key: \"1rqfz7\"\n }\n ],\n [\n \"path\",\n {\n d: \"M14 2v4a2 2 0 0 0 2 2h4\",\n key: \"tnqrlb\"\n }\n ],\n [\n \"path\",\n {\n d: \"M9 15h6\",\n key: \"cctwl0\"\n }\n ]\n];\nconst FileMinus = createLucideIcon(\"file-minus\", __iconNode$fS);\nconst __iconNode$fR = [\n [\n \"path\",\n {\n d: \"M10.5 22H18a2 2 0 0 0 2-2V7l-5-5H6a2 2 0 0 0-2 2v8.4\",\n key: \"1d3kfm\"\n }\n ],\n [\n \"path\",\n {\n d: \"M8 18v-7.7L16 9v7\",\n key: \"1oie6o\"\n }\n ],\n [\n \"circle\",\n {\n cx: \"14\",\n cy: \"16\",\n r: \"2\",\n key: \"1bzzi3\"\n }\n ],\n [\n \"circle\",\n {\n cx: \"6\",\n cy: \"18\",\n r: \"2\",\n key: \"1fncim\"\n }\n ]\n];\nconst FileMusic = createLucideIcon(\"file-music\", __iconNode$fR);\nconst __iconNode$fQ = [\n [\n \"path\",\n {\n d: \"M14 2v4a2 2 0 0 0 2 2h4\",\n key: \"tnqrlb\"\n }\n ],\n [\n \"path\",\n {\n d: \"M4 7V4a2 2 0 0 1 2-2 2 2 0 0 0-2 2\",\n key: \"1vk7w2\"\n }\n ],\n [\n \"path\",\n {\n d: \"M4.063 20.999a2 2 0 0 0 2 1L18 22a2 2 0 0 0 2-2V7l-5-5H6\",\n key: \"1jink5\"\n }\n ],\n [\n \"path\",\n {\n d: \"m5 11-3 3\",\n key: \"1dgrs4\"\n }\n ],\n [\n \"path\",\n {\n d: \"m5 17-3-3h10\",\n key: \"1mvvaf\"\n }\n ]\n];\nconst FileOutput = createLucideIcon(\"file-output\", __iconNode$fQ);\nconst __iconNode$fP = [\n [\n \"path\",\n {\n d: \"m18 5-2.414-2.414A2 2 0 0 0 14.172 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2\",\n key: \"142zxg\"\n }\n ],\n [\n \"path\",\n {\n d: \"M21.378 12.626a1 1 0 0 0-3.004-3.004l-4.01 4.012a2 2 0 0 0-.506.854l-.837 2.87a.5.5 0 0 0 .62.62l2.87-.837a2 2 0 0 0 .854-.506z\",\n key: \"2t3380\"\n }\n ],\n [\n \"path\",\n {\n d: \"M8 18h1\",\n key: \"13wk12\"\n }\n ]\n];\nconst FilePenLine = createLucideIcon(\"file-pen-line\", __iconNode$fP);\nconst __iconNode$fO = [\n [\n \"path\",\n {\n d: \"M12.5 22H18a2 2 0 0 0 2-2V7l-5-5H6a2 2 0 0 0-2 2v9.5\",\n key: \"1couwa\"\n }\n ],\n [\n \"path\",\n {\n d: \"M14 2v4a2 2 0 0 0 2 2h4\",\n key: \"tnqrlb\"\n }\n ],\n [\n \"path\",\n {\n d: \"M13.378 15.626a1 1 0 1 0-3.004-3.004l-5.01 5.012a2 2 0 0 0-.506.854l-.837 2.87a.5.5 0 0 0 .62.62l2.87-.837a2 2 0 0 0 .854-.506z\",\n key: \"1y4qbx\"\n }\n ]\n];\nconst FilePen = createLucideIcon(\"file-pen\", __iconNode$fO);\nconst __iconNode$fN = [\n [\n \"path\",\n {\n d: \"M4 22h14a2 2 0 0 0 2-2V7l-5-5H6a2 2 0 0 0-2 2v4\",\n key: \"1pf5j1\"\n }\n ],\n [\n \"path\",\n {\n d: \"M14 2v4a2 2 0 0 0 2 2h4\",\n key: \"tnqrlb\"\n }\n ],\n [\n \"path\",\n {\n d: \"M3 15h6\",\n key: \"4e2qda\"\n }\n ],\n [\n \"path\",\n {\n d: \"M6 12v6\",\n key: \"1u72j0\"\n }\n ]\n];\nconst FilePlus2 = createLucideIcon(\"file-plus-2\", __iconNode$fN);\nconst __iconNode$fM = [\n [\n \"path\",\n {\n d: \"M15 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7Z\",\n key: \"1rqfz7\"\n }\n ],\n [\n \"path\",\n {\n d: \"M14 2v4a2 2 0 0 0 2 2h4\",\n key: \"tnqrlb\"\n }\n ],\n [\n \"path\",\n {\n d: \"M9 15h6\",\n key: \"cctwl0\"\n }\n ],\n [\n \"path\",\n {\n d: \"M12 18v-6\",\n key: \"17g6i2\"\n }\n ]\n];\nconst FilePlus = createLucideIcon(\"file-plus\", __iconNode$fM);\nconst __iconNode$fL = [\n [\n \"path\",\n {\n d: \"M12 17h.01\",\n key: \"p32p05\"\n }\n ],\n [\n \"path\",\n {\n d: \"M15 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7z\",\n key: \"1mlx9k\"\n }\n ],\n [\n \"path\",\n {\n d: \"M9.1 9a3 3 0 0 1 5.82 1c0 2-3 3-3 3\",\n key: \"mhlwft\"\n }\n ]\n];\nconst FileQuestionMark = createLucideIcon(\"file-question-mark\", __iconNode$fL);\nconst __iconNode$fK = [\n [\n \"path\",\n {\n d: \"M20 10V7l-5-5H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h4\",\n key: \"1rdf37\"\n }\n ],\n [\n \"path\",\n {\n d: \"M14 2v4a2 2 0 0 0 2 2h4\",\n key: \"tnqrlb\"\n }\n ],\n [\n \"path\",\n {\n d: \"M16 14a2 2 0 0 0-2 2\",\n key: \"ceaadl\"\n }\n ],\n [\n \"path\",\n {\n d: \"M20 14a2 2 0 0 1 2 2\",\n key: \"1ny6zw\"\n }\n ],\n [\n \"path\",\n {\n d: \"M20 22a2 2 0 0 0 2-2\",\n key: \"1l9q4k\"\n }\n ],\n [\n \"path\",\n {\n d: \"M16 22a2 2 0 0 1-2-2\",\n key: \"1wqh5n\"\n }\n ]\n];\nconst FileScan = createLucideIcon(\"file-scan\", __iconNode$fK);\nconst __iconNode$fJ = [\n [\n \"path\",\n {\n d: \"M15 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7Z\",\n key: \"1rqfz7\"\n }\n ],\n [\n \"path\",\n {\n d: \"M14 2v4a2 2 0 0 0 2 2h4\",\n key: \"tnqrlb\"\n }\n ],\n [\n \"circle\",\n {\n cx: \"11.5\",\n cy: \"14.5\",\n r: \"2.5\",\n key: \"1bq0ko\"\n }\n ],\n [\n \"path\",\n {\n d: \"M13.3 16.3 15 18\",\n key: \"2quom7\"\n }\n ]\n];\nconst FileSearch2 = createLucideIcon(\"file-search-2\", __iconNode$fJ);\nconst __iconNode$fI = [\n [\n \"path\",\n {\n d: \"M14 2v4a2 2 0 0 0 2 2h4\",\n key: \"tnqrlb\"\n }\n ],\n [\n \"path\",\n {\n d: \"M4.268 21a2 2 0 0 0 1.727 1H18a2 2 0 0 0 2-2V7l-5-5H6a2 2 0 0 0-2 2v3\",\n key: \"ms7g94\"\n }\n ],\n [\n \"path\",\n {\n d: \"m9 18-1.5-1.5\",\n key: \"1j6qii\"\n }\n ],\n [\n \"circle\",\n {\n cx: \"5\",\n cy: \"14\",\n r: \"3\",\n key: \"ufru5t\"\n }\n ]\n];\nconst FileSearch = createLucideIcon(\"file-search\", __iconNode$fI);\nconst __iconNode$fH = [\n [\n \"path\",\n {\n d: \"M15 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7Z\",\n key: \"1rqfz7\"\n }\n ],\n [\n \"path\",\n {\n d: \"M14 2v4a2 2 0 0 0 2 2h4\",\n key: \"tnqrlb\"\n }\n ],\n [\n \"path\",\n {\n d: \"M8 12h8\",\n key: \"1wcyev\"\n }\n ],\n [\n \"path\",\n {\n d: \"M10 11v2\",\n key: \"1s651w\"\n }\n ],\n [\n \"path\",\n {\n d: \"M8 17h8\",\n key: \"wh5c61\"\n }\n ],\n [\n \"path\",\n {\n d: \"M14 16v2\",\n key: \"12fp5e\"\n }\n ]\n];\nconst FileSliders = createLucideIcon(\"file-sliders\", __iconNode$fH);\nconst __iconNode$fG = [\n [\n \"path\",\n {\n d: \"M15 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7Z\",\n key: \"1rqfz7\"\n }\n ],\n [\n \"path\",\n {\n d: \"M14 2v4a2 2 0 0 0 2 2h4\",\n key: \"tnqrlb\"\n }\n ],\n [\n \"path\",\n {\n d: \"M8 13h2\",\n key: \"yr2amv\"\n }\n ],\n [\n \"path\",\n {\n d: \"M14 13h2\",\n key: \"un5t4a\"\n }\n ],\n [\n \"path\",\n {\n d: \"M8 17h2\",\n key: \"2yhykz\"\n }\n ],\n [\n \"path\",\n {\n d: \"M14 17h2\",\n key: \"10kma7\"\n }\n ]\n];\nconst FileSpreadsheet = createLucideIcon(\"file-spreadsheet\", __iconNode$fG);\nconst __iconNode$fF = [\n [\n \"path\",\n {\n d: \"M21 7h-3a2 2 0 0 1-2-2V2\",\n key: \"9rb54x\"\n }\n ],\n [\n \"path\",\n {\n d: \"M21 6v6.5c0 .8-.7 1.5-1.5 1.5h-7c-.8 0-1.5-.7-1.5-1.5v-9c0-.8.7-1.5 1.5-1.5H17Z\",\n key: \"1059l0\"\n }\n ],\n [\n \"path\",\n {\n d: \"M7 8v8.8c0 .3.2.6.4.8.2.2.5.4.8.4H15\",\n key: \"16874u\"\n }\n ],\n [\n \"path\",\n {\n d: \"M3 12v8.8c0 .3.2.6.4.8.2.2.5.4.8.4H11\",\n key: \"k2ox98\"\n }\n ]\n];\nconst FileStack = createLucideIcon(\"file-stack\", __iconNode$fF);\nconst __iconNode$fE = [\n [\n \"path\",\n {\n d: \"m10 18 3-3-3-3\",\n key: \"18f6ys\"\n }\n ],\n [\n \"path\",\n {\n d: \"M14 2v4a2 2 0 0 0 2 2h4\",\n key: \"tnqrlb\"\n }\n ],\n [\n \"path\",\n {\n d: \"M4 11V4a2 2 0 0 1 2-2h9l5 5v13a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2v-3a2 2 0 0 1 2-2h7\",\n key: \"50q2rw\"\n }\n ]\n];\nconst FileSymlink = createLucideIcon(\"file-symlink\", __iconNode$fE);\nconst __iconNode$fD = [\n [\n \"path\",\n {\n d: \"M15 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7Z\",\n key: \"1rqfz7\"\n }\n ],\n [\n \"path\",\n {\n d: \"M14 2v4a2 2 0 0 0 2 2h4\",\n key: \"tnqrlb\"\n }\n ],\n [\n \"path\",\n {\n d: \"m8 16 2-2-2-2\",\n key: \"10vzyd\"\n }\n ],\n [\n \"path\",\n {\n d: \"M12 18h4\",\n key: \"1wd2n7\"\n }\n ]\n];\nconst FileTerminal = createLucideIcon(\"file-terminal\", __iconNode$fD);\nconst __iconNode$fC = [\n [\n \"path\",\n {\n d: \"M15 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7Z\",\n key: \"1rqfz7\"\n }\n ],\n [\n \"path\",\n {\n d: \"M14 2v4a2 2 0 0 0 2 2h4\",\n key: \"tnqrlb\"\n }\n ],\n [\n \"path\",\n {\n d: \"M10 9H8\",\n key: \"b1mrlr\"\n }\n ],\n [\n \"path\",\n {\n d: \"M16 13H8\",\n key: \"t4e002\"\n }\n ],\n [\n \"path\",\n {\n d: \"M16 17H8\",\n key: \"z1uh3a\"\n }\n ]\n];\nconst FileText = createLucideIcon(\"file-text\", __iconNode$fC);\nconst __iconNode$fB = [\n [\n \"path\",\n {\n d: \"M4 22h14a2 2 0 0 0 2-2V7l-5-5H6a2 2 0 0 0-2 2v4\",\n key: \"1pf5j1\"\n }\n ],\n [\n \"path\",\n {\n d: \"M14 2v4a2 2 0 0 0 2 2h4\",\n key: \"tnqrlb\"\n }\n ],\n [\n \"path\",\n {\n d: \"M2 13v-1h6v1\",\n key: \"1dh9dg\"\n }\n ],\n [\n \"path\",\n {\n d: \"M5 12v6\",\n key: \"150t9c\"\n }\n ],\n [\n \"path\",\n {\n d: \"M4 18h2\",\n key: \"1xrofg\"\n }\n ]\n];\nconst FileType2 = createLucideIcon(\"file-type-2\", __iconNode$fB);\nconst __iconNode$fA = [\n [\n \"path\",\n {\n d: \"M15 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7Z\",\n key: \"1rqfz7\"\n }\n ],\n [\n \"path\",\n {\n d: \"M14 2v4a2 2 0 0 0 2 2h4\",\n key: \"tnqrlb\"\n }\n ],\n [\n \"path\",\n {\n d: \"M9 13v-1h6v1\",\n key: \"1bb014\"\n }\n ],\n [\n \"path\",\n {\n d: \"M12 12v6\",\n key: \"3ahymv\"\n }\n ],\n [\n \"path\",\n {\n d: \"M11 18h2\",\n key: \"12mj7e\"\n }\n ]\n];\nconst FileType = createLucideIcon(\"file-type\", __iconNode$fA);\nconst __iconNode$fz = [\n [\n \"path\",\n {\n d: \"M15 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7Z\",\n key: \"1rqfz7\"\n }\n ],\n [\n \"path\",\n {\n d: \"M14 2v4a2 2 0 0 0 2 2h4\",\n key: \"tnqrlb\"\n }\n ],\n [\n \"path\",\n {\n d: \"M12 12v6\",\n key: \"3ahymv\"\n }\n ],\n [\n \"path\",\n {\n d: \"m15 15-3-3-3 3\",\n key: \"15xj92\"\n }\n ]\n];\nconst FileUp = createLucideIcon(\"file-up\", __iconNode$fz);\nconst __iconNode$fy = [\n [\n \"path\",\n {\n d: \"M4 22h14a2 2 0 0 0 2-2V7l-5-5H6a2 2 0 0 0-2 2v4\",\n key: \"1pf5j1\"\n }\n ],\n [\n \"path\",\n {\n d: \"M14 2v4a2 2 0 0 0 2 2h4\",\n key: \"tnqrlb\"\n }\n ],\n [\n \"rect\",\n {\n width: \"8\",\n height: \"6\",\n x: \"2\",\n y: \"12\",\n rx: \"1\",\n key: \"1a6c1e\"\n }\n ],\n [\n \"path\",\n {\n d: \"m10 15.5 4 2.5v-6l-4 2.5\",\n key: \"t7cp39\"\n }\n ]\n];\nconst FileVideo2 = createLucideIcon(\"file-video-2\", __iconNode$fy);\nconst __iconNode$fx = [\n [\n \"path\",\n {\n d: \"M14 2v4a2 2 0 0 0 2 2h4\",\n key: \"tnqrlb\"\n }\n ],\n [\n \"path\",\n {\n d: \"M15 18a3 3 0 1 0-6 0\",\n key: \"16awa0\"\n }\n ],\n [\n \"path\",\n {\n d: \"M15 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7z\",\n key: \"1mlx9k\"\n }\n ],\n [\n \"circle\",\n {\n cx: \"12\",\n cy: \"13\",\n r: \"2\",\n key: \"1c1ljs\"\n }\n ]\n];\nconst FileUser = createLucideIcon(\"file-user\", __iconNode$fx);\nconst __iconNode$fw = [\n [\n \"path\",\n {\n d: \"M15 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7Z\",\n key: \"1rqfz7\"\n }\n ],\n [\n \"path\",\n {\n d: \"M14 2v4a2 2 0 0 0 2 2h4\",\n key: \"tnqrlb\"\n }\n ],\n [\n \"path\",\n {\n d: \"m10 11 5 3-5 3v-6Z\",\n key: \"7ntvm4\"\n }\n ]\n];\nconst FileVideo = createLucideIcon(\"file-video\", __iconNode$fw);\nconst __iconNode$fv = [\n [\n \"path\",\n {\n d: \"M15 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7Z\",\n key: \"1rqfz7\"\n }\n ],\n [\n \"path\",\n {\n d: \"M14 2v4a2 2 0 0 0 2 2h4\",\n key: \"tnqrlb\"\n }\n ],\n [\n \"path\",\n {\n d: \"M8 15h.01\",\n key: \"a7atzg\"\n }\n ],\n [\n \"path\",\n {\n d: \"M11.5 13.5a2.5 2.5 0 0 1 0 3\",\n key: \"1fccat\"\n }\n ],\n [\n \"path\",\n {\n d: \"M15 12a5 5 0 0 1 0 6\",\n key: \"ps46cm\"\n }\n ]\n];\nconst FileVolume2 = createLucideIcon(\"file-volume-2\", __iconNode$fv);\nconst __iconNode$fu = [\n [\n \"path\",\n {\n d: \"M11 11a5 5 0 0 1 0 6\",\n key: \"193qb2\"\n }\n ],\n [\n \"path\",\n {\n d: \"M14 2v4a2 2 0 0 0 2 2h4\",\n key: \"tnqrlb\"\n }\n ],\n [\n \"path\",\n {\n d: \"M4 6.765V4a2 2 0 0 1 2-2h9l5 5v13a2 2 0 0 1-2 2H6a2 2 0 0 1-.93-.23\",\n key: \"ifyjnl\"\n }\n ],\n [\n \"path\",\n {\n d: \"M7 10.51a.5.5 0 0 0-.826-.38l-1.893 1.628A1 1 0 0 1 3.63 12H2.5a.5.5 0 0 0-.5.5v3a.5.5 0 0 0 .5.5h1.129a1 1 0 0 1 .652.242l1.893 1.63a.5.5 0 0 0 .826-.38z\",\n key: \"mk8rxu\"\n }\n ]\n];\nconst FileVolume = createLucideIcon(\"file-volume\", __iconNode$fu);\nconst __iconNode$ft = [\n [\n \"path\",\n {\n d: \"M15 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7Z\",\n key: \"1rqfz7\"\n }\n ],\n [\n \"path\",\n {\n d: \"M12 9v4\",\n key: \"juzpu7\"\n }\n ],\n [\n \"path\",\n {\n d: \"M12 17h.01\",\n key: \"p32p05\"\n }\n ]\n];\nconst FileWarning = createLucideIcon(\"file-warning\", __iconNode$ft);\nconst __iconNode$fs = [\n [\n \"path\",\n {\n d: \"M4 22h14a2 2 0 0 0 2-2V7l-5-5H6a2 2 0 0 0-2 2v4\",\n key: \"1pf5j1\"\n }\n ],\n [\n \"path\",\n {\n d: \"M14 2v4a2 2 0 0 0 2 2h4\",\n key: \"tnqrlb\"\n }\n ],\n [\n \"path\",\n {\n d: \"m8 12.5-5 5\",\n key: \"b853mi\"\n }\n ],\n [\n \"path\",\n {\n d: \"m3 12.5 5 5\",\n key: \"1qls4r\"\n }\n ]\n];\nconst FileX2 = createLucideIcon(\"file-x-2\", __iconNode$fs);\nconst __iconNode$fr = [\n [\n \"path\",\n {\n d: \"M15 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7Z\",\n key: \"1rqfz7\"\n }\n ],\n [\n \"path\",\n {\n d: \"M14 2v4a2 2 0 0 0 2 2h4\",\n key: \"tnqrlb\"\n }\n ],\n [\n \"path\",\n {\n d: \"m14.5 12.5-5 5\",\n key: \"b62r18\"\n }\n ],\n [\n \"path\",\n {\n d: \"m9.5 12.5 5 5\",\n key: \"1rk7el\"\n }\n ]\n];\nconst FileX = createLucideIcon(\"file-x\", __iconNode$fr);\nconst __iconNode$fq = [\n [\n \"path\",\n {\n d: \"M15 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7Z\",\n key: \"1rqfz7\"\n }\n ],\n [\n \"path\",\n {\n d: \"M14 2v4a2 2 0 0 0 2 2h4\",\n key: \"tnqrlb\"\n }\n ]\n];\nconst File = createLucideIcon(\"file\", __iconNode$fq);\nconst __iconNode$fp = [\n [\n \"path\",\n {\n d: \"M20 7h-3a2 2 0 0 1-2-2V2\",\n key: \"x099mo\"\n }\n ],\n [\n \"path\",\n {\n d: \"M9 18a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h7l4 4v10a2 2 0 0 1-2 2Z\",\n key: \"18t6ie\"\n }\n ],\n [\n \"path\",\n {\n d: \"M3 7.6v12.8A1.6 1.6 0 0 0 4.6 22h9.8\",\n key: \"1nja0z\"\n }\n ]\n];\nconst Files = createLucideIcon(\"files\", __iconNode$fp);\nconst __iconNode$fo = [\n [\n \"rect\",\n {\n width: \"18\",\n height: \"18\",\n x: \"3\",\n y: \"3\",\n rx: \"2\",\n key: \"afitv7\"\n }\n ],\n [\n \"path\",\n {\n d: \"M7 3v18\",\n key: \"bbkbws\"\n }\n ],\n [\n \"path\",\n {\n d: \"M3 7.5h4\",\n key: \"zfgn84\"\n }\n ],\n [\n \"path\",\n {\n d: \"M3 12h18\",\n key: \"1i2n21\"\n }\n ],\n [\n \"path\",\n {\n d: \"M3 16.5h4\",\n key: \"1230mu\"\n }\n ],\n [\n \"path\",\n {\n d: \"M17 3v18\",\n key: \"in4fa5\"\n }\n ],\n [\n \"path\",\n {\n d: \"M17 7.5h4\",\n key: \"myr1c1\"\n }\n ],\n [\n \"path\",\n {\n d: \"M17 16.5h4\",\n key: \"go4c1d\"\n }\n ]\n];\nconst Film = createLucideIcon(\"film\", __iconNode$fo);\nconst __iconNode$fn = [\n [\n \"path\",\n {\n d: \"M12 10a2 2 0 0 0-2 2c0 1.02-.1 2.51-.26 4\",\n key: \"1nerag\"\n }\n ],\n [\n \"path\",\n {\n d: \"M14 13.12c0 2.38 0 6.38-1 8.88\",\n key: \"o46ks0\"\n }\n ],\n [\n \"path\",\n {\n d: \"M17.29 21.02c.12-.6.43-2.3.5-3.02\",\n key: \"ptglia\"\n }\n ],\n [\n \"path\",\n {\n d: \"M2 12a10 10 0 0 1 18-6\",\n key: \"ydlgp0\"\n }\n ],\n [\n \"path\",\n {\n d: \"M2 16h.01\",\n key: \"1gqxmh\"\n }\n ],\n [\n \"path\",\n {\n d: \"M21.8 16c.2-2 .131-5.354 0-6\",\n key: \"drycrb\"\n }\n ],\n [\n \"path\",\n {\n d: \"M5 19.5C5.5 18 6 15 6 12a6 6 0 0 1 .34-2\",\n key: \"1tidbn\"\n }\n ],\n [\n \"path\",\n {\n d: \"M8.65 22c.21-.66.45-1.32.57-2\",\n key: \"13wd9y\"\n }\n ],\n [\n \"path\",\n {\n d: \"M9 6.8a6 6 0 0 1 9 5.2v2\",\n key: \"1fr1j5\"\n }\n ]\n];\nconst Fingerprint = createLucideIcon(\"fingerprint\", __iconNode$fn);\nconst __iconNode$fm = [\n [\n \"path\",\n {\n d: \"M15 6.5V3a1 1 0 0 0-1-1h-2a1 1 0 0 0-1 1v3.5\",\n key: \"sqyvz\"\n }\n ],\n [\n \"path\",\n {\n d: \"M9 18h8\",\n key: \"i7pszb\"\n }\n ],\n [\n \"path\",\n {\n d: \"M18 3h-3\",\n key: \"7idoqj\"\n }\n ],\n [\n \"path\",\n {\n d: \"M11 3a6 6 0 0 0-6 6v11\",\n key: \"1v5je3\"\n }\n ],\n [\n \"path\",\n {\n d: \"M5 13h4\",\n key: \"svpcxo\"\n }\n ],\n [\n \"path\",\n {\n d: \"M17 10a4 4 0 0 0-8 0v10a2 2 0 0 0 2 2h4a2 2 0 0 0 2-2Z\",\n key: \"vsjego\"\n }\n ]\n];\nconst FireExtinguisher = createLucideIcon(\"fire-extinguisher\", __iconNode$fm);\nconst __iconNode$fl = [\n [\n \"path\",\n {\n d: \"M18 12.47v.03m0-.5v.47m-.475 5.056A6.744 6.744 0 0 1 15 18c-3.56 0-7.56-2.53-8.5-6 .348-1.28 1.114-2.433 2.121-3.38m3.444-2.088A8.802 8.802 0 0 1 15 6c3.56 0 6.06 2.54 7 6-.309 1.14-.786 2.177-1.413 3.058\",\n key: \"1j1hse\"\n }\n ],\n [\n \"path\",\n {\n d: \"M7 10.67C7 8 5.58 5.97 2.73 5.5c-1 1.5-1 5 .23 6.5-1.24 1.5-1.24 5-.23 6.5C5.58 18.03 7 16 7 13.33m7.48-4.372A9.77 9.77 0 0 1 16 6.07m0 11.86a9.77 9.77 0 0 1-1.728-3.618\",\n key: \"1q46z8\"\n }\n ],\n [\n \"path\",\n {\n d: \"m16.01 17.93-.23 1.4A2 2 0 0 1 13.8 21H9.5a5.96 5.96 0 0 0 1.49-3.98M8.53 3h5.27a2 2 0 0 1 1.98 1.67l.23 1.4M2 2l20 20\",\n key: \"1407gh\"\n }\n ]\n];\nconst FishOff = createLucideIcon(\"fish-off\", __iconNode$fl);\nconst __iconNode$fk = [\n [\n \"path\",\n {\n d: \"M2 16s9-15 20-4C11 23 2 8 2 8\",\n key: \"h4oh4o\"\n }\n ]\n];\nconst FishSymbol = createLucideIcon(\"fish-symbol\", __iconNode$fk);\nconst __iconNode$fj = [\n [\n \"path\",\n {\n d: \"M6.5 12c.94-3.46 4.94-6 8.5-6 3.56 0 6.06 2.54 7 6-.94 3.47-3.44 6-7 6s-7.56-2.53-8.5-6Z\",\n key: \"15baut\"\n }\n ],\n [\n \"path\",\n {\n d: \"M18 12v.5\",\n key: \"18hhni\"\n }\n ],\n [\n \"path\",\n {\n d: \"M16 17.93a9.77 9.77 0 0 1 0-11.86\",\n key: \"16dt7o\"\n }\n ],\n [\n \"path\",\n {\n d: \"M7 10.67C7 8 5.58 5.97 2.73 5.5c-1 1.5-1 5 .23 6.5-1.24 1.5-1.24 5-.23 6.5C5.58 18.03 7 16 7 13.33\",\n key: \"l9di03\"\n }\n ],\n [\n \"path\",\n {\n d: \"M10.46 7.26C10.2 5.88 9.17 4.24 8 3h5.8a2 2 0 0 1 1.98 1.67l.23 1.4\",\n key: \"1kjonw\"\n }\n ],\n [\n \"path\",\n {\n d: \"m16.01 17.93-.23 1.4A2 2 0 0 1 13.8 21H9.5a5.96 5.96 0 0 0 1.49-3.98\",\n key: \"1zlm23\"\n }\n ]\n];\nconst Fish = createLucideIcon(\"fish\", __iconNode$fj);\nconst __iconNode$fi = [\n [\n \"path\",\n {\n d: \"M16 16c-3 0-5-2-8-2a6 6 0 0 0-4 1.528\",\n key: \"1q158e\"\n }\n ],\n [\n \"path\",\n {\n d: \"m2 2 20 20\",\n key: \"1ooewy\"\n }\n ],\n [\n \"path\",\n {\n d: \"M4 22V4\",\n key: \"1plyxx\"\n }\n ],\n [\n \"path\",\n {\n d: \"M7.656 2H8c3 0 5 2 7.333 2q2 0 3.067-.8A1 1 0 0 1 20 4v10.347\",\n key: \"xj1b71\"\n }\n ]\n];\nconst FlagOff = createLucideIcon(\"flag-off\", __iconNode$fi);\nconst __iconNode$fh = [\n [\n \"path\",\n {\n d: \"M17 22V2L7 7l10 5\",\n key: \"1rmf0r\"\n }\n ]\n];\nconst FlagTriangleLeft = createLucideIcon(\"flag-triangle-left\", __iconNode$fh);\nconst __iconNode$fg = [\n [\n \"path\",\n {\n d: \"M7 22V2l10 5-10 5\",\n key: \"17n18y\"\n }\n ]\n];\nconst FlagTriangleRight = createLucideIcon(\"flag-triangle-right\", __iconNode$fg);\nconst __iconNode$ff = [\n [\n \"path\",\n {\n d: \"M4 22V4a1 1 0 0 1 .4-.8A6 6 0 0 1 8 2c3 0 5 2 7.333 2q2 0 3.067-.8A1 1 0 0 1 20 4v10a1 1 0 0 1-.4.8A6 6 0 0 1 16 16c-3 0-5-2-8-2a6 6 0 0 0-4 1.528\",\n key: \"1jaruq\"\n }\n ]\n];\nconst Flag = createLucideIcon(\"flag\", __iconNode$ff);\nconst __iconNode$fe = [\n [\n \"path\",\n {\n d: \"M12 2c1 3 2.5 3.5 3.5 4.5A5 5 0 0 1 17 10a5 5 0 1 1-10 0c0-.3 0-.6.1-.9a2 2 0 1 0 3.3-2C8 4.5 11 2 12 2Z\",\n key: \"1ir223\"\n }\n ],\n [\n \"path\",\n {\n d: \"m5 22 14-4\",\n key: \"1brv4h\"\n }\n ],\n [\n \"path\",\n {\n d: \"m5 18 14 4\",\n key: \"lgyyje\"\n }\n ]\n];\nconst FlameKindling = createLucideIcon(\"flame-kindling\", __iconNode$fe);\nconst __iconNode$fd = [\n [\n \"path\",\n {\n d: \"M8.5 14.5A2.5 2.5 0 0 0 11 12c0-1.38-.5-2-1-3-1.072-2.143-.224-4.054 2-6 .5 2.5 2 4.9 4 6.5 2 1.6 3 3.5 3 5.5a7 7 0 1 1-14 0c0-1.153.433-2.294 1-3a2.5 2.5 0 0 0 2.5 2.5z\",\n key: \"96xj49\"\n }\n ]\n];\nconst Flame = createLucideIcon(\"flame\", __iconNode$fd);\nconst __iconNode$fc = [\n [\n \"path\",\n {\n d: \"M16 16v4a2 2 0 0 1-2 2h-4a2 2 0 0 1-2-2V10c0-2-2-2-2-4\",\n key: \"1r120k\"\n }\n ],\n [\n \"path\",\n {\n d: \"M7 2h11v4c0 2-2 2-2 4v1\",\n key: \"dz1920\"\n }\n ],\n [\n \"line\",\n {\n x1: \"11\",\n x2: \"18\",\n y1: \"6\",\n y2: \"6\",\n key: \"bi1vpe\"\n }\n ],\n [\n \"line\",\n {\n x1: \"2\",\n x2: \"22\",\n y1: \"2\",\n y2: \"22\",\n key: \"a6p6uj\"\n }\n ]\n];\nconst FlashlightOff = createLucideIcon(\"flashlight-off\", __iconNode$fc);\nconst __iconNode$fb = [\n [\n \"path\",\n {\n d: \"M18 6c0 2-2 2-2 4v10a2 2 0 0 1-2 2h-4a2 2 0 0 1-2-2V10c0-2-2-2-2-4V2h12z\",\n key: \"1orkel\"\n }\n ],\n [\n \"line\",\n {\n x1: \"6\",\n x2: \"18\",\n y1: \"6\",\n y2: \"6\",\n key: \"1z11jq\"\n }\n ],\n [\n \"line\",\n {\n x1: \"12\",\n x2: \"12\",\n y1: \"12\",\n y2: \"12\",\n key: \"1f4yc1\"\n }\n ]\n];\nconst Flashlight = createLucideIcon(\"flashlight\", __iconNode$fb);\nconst __iconNode$fa = [\n [\n \"path\",\n {\n d: \"M10 2v2.343\",\n key: \"15t272\"\n }\n ],\n [\n \"path\",\n {\n d: \"M14 2v6.343\",\n key: \"sxr80q\"\n }\n ],\n [\n \"path\",\n {\n d: \"m2 2 20 20\",\n key: \"1ooewy\"\n }\n ],\n [\n \"path\",\n {\n d: \"M20 20a2 2 0 0 1-2 2H6a2 2 0 0 1-1.755-2.96l5.227-9.563\",\n key: \"k0duyd\"\n }\n ],\n [\n \"path\",\n {\n d: \"M6.453 15H15\",\n key: \"1f0z33\"\n }\n ],\n [\n \"path\",\n {\n d: \"M8.5 2h7\",\n key: \"csnxdl\"\n }\n ]\n];\nconst FlaskConicalOff = createLucideIcon(\"flask-conical-off\", __iconNode$fa);\nconst __iconNode$f9 = [\n [\n \"path\",\n {\n d: \"M14 2v6a2 2 0 0 0 .245.96l5.51 10.08A2 2 0 0 1 18 22H6a2 2 0 0 1-1.755-2.96l5.51-10.08A2 2 0 0 0 10 8V2\",\n key: \"18mbvz\"\n }\n ],\n [\n \"path\",\n {\n d: \"M6.453 15h11.094\",\n key: \"3shlmq\"\n }\n ],\n [\n \"path\",\n {\n d: \"M8.5 2h7\",\n key: \"csnxdl\"\n }\n ]\n];\nconst FlaskConical = createLucideIcon(\"flask-conical\", __iconNode$f9);\nconst __iconNode$f8 = [\n [\n \"path\",\n {\n d: \"M10 2v6.292a7 7 0 1 0 4 0V2\",\n key: \"1s42pc\"\n }\n ],\n [\n \"path\",\n {\n d: \"M5 15h14\",\n key: \"m0yey3\"\n }\n ],\n [\n \"path\",\n {\n d: \"M8.5 2h7\",\n key: \"csnxdl\"\n }\n ]\n];\nconst FlaskRound = createLucideIcon(\"flask-round\", __iconNode$f8);\nconst __iconNode$f7 = [\n [\n \"path\",\n {\n d: \"m3 7 5 5-5 5V7\",\n key: \"couhi7\"\n }\n ],\n [\n \"path\",\n {\n d: \"m21 7-5 5 5 5V7\",\n key: \"6ouia7\"\n }\n ],\n [\n \"path\",\n {\n d: \"M12 20v2\",\n key: \"1lh1kg\"\n }\n ],\n [\n \"path\",\n {\n d: \"M12 14v2\",\n key: \"8jcxud\"\n }\n ],\n [\n \"path\",\n {\n d: \"M12 8v2\",\n key: \"1woqiv\"\n }\n ],\n [\n \"path\",\n {\n d: \"M12 2v2\",\n key: \"tus03m\"\n }\n ]\n];\nconst FlipHorizontal2 = createLucideIcon(\"flip-horizontal-2\", __iconNode$f7);\nconst __iconNode$f6 = [\n [\n \"path\",\n {\n d: \"M8 3H5a2 2 0 0 0-2 2v14c0 1.1.9 2 2 2h3\",\n key: \"1i73f7\"\n }\n ],\n [\n \"path\",\n {\n d: \"M16 3h3a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2h-3\",\n key: \"saxlbk\"\n }\n ],\n [\n \"path\",\n {\n d: \"M12 20v2\",\n key: \"1lh1kg\"\n }\n ],\n [\n \"path\",\n {\n d: \"M12 14v2\",\n key: \"8jcxud\"\n }\n ],\n [\n \"path\",\n {\n d: \"M12 8v2\",\n key: \"1woqiv\"\n }\n ],\n [\n \"path\",\n {\n d: \"M12 2v2\",\n key: \"tus03m\"\n }\n ]\n];\nconst FlipHorizontal = createLucideIcon(\"flip-horizontal\", __iconNode$f6);\nconst __iconNode$f5 = [\n [\n \"path\",\n {\n d: \"m17 3-5 5-5-5h10\",\n key: \"1ftt6x\"\n }\n ],\n [\n \"path\",\n {\n d: \"m17 21-5-5-5 5h10\",\n key: \"1m0wmu\"\n }\n ],\n [\n \"path\",\n {\n d: \"M4 12H2\",\n key: \"rhcxmi\"\n }\n ],\n [\n \"path\",\n {\n d: \"M10 12H8\",\n key: \"s88cx1\"\n }\n ],\n [\n \"path\",\n {\n d: \"M16 12h-2\",\n key: \"10asgb\"\n }\n ],\n [\n \"path\",\n {\n d: \"M22 12h-2\",\n key: \"14jgyd\"\n }\n ]\n];\nconst FlipVertical2 = createLucideIcon(\"flip-vertical-2\", __iconNode$f5);\nconst __iconNode$f4 = [\n [\n \"path\",\n {\n d: \"M21 8V5a2 2 0 0 0-2-2H5a2 2 0 0 0-2 2v3\",\n key: \"14bfxa\"\n }\n ],\n [\n \"path\",\n {\n d: \"M21 16v3a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-3\",\n key: \"14rx03\"\n }\n ],\n [\n \"path\",\n {\n d: \"M4 12H2\",\n key: \"rhcxmi\"\n }\n ],\n [\n \"path\",\n {\n d: \"M10 12H8\",\n key: \"s88cx1\"\n }\n ],\n [\n \"path\",\n {\n d: \"M16 12h-2\",\n key: \"10asgb\"\n }\n ],\n [\n \"path\",\n {\n d: \"M22 12h-2\",\n key: \"14jgyd\"\n }\n ]\n];\nconst FlipVertical = createLucideIcon(\"flip-vertical\", __iconNode$f4);\nconst __iconNode$f3 = [\n [\n \"path\",\n {\n d: \"M12 5a3 3 0 1 1 3 3m-3-3a3 3 0 1 0-3 3m3-3v1M9 8a3 3 0 1 0 3 3M9 8h1m5 0a3 3 0 1 1-3 3m3-3h-1m-2 3v-1\",\n key: \"3pnvol\"\n }\n ],\n [\n \"circle\",\n {\n cx: \"12\",\n cy: \"8\",\n r: \"2\",\n key: \"1822b1\"\n }\n ],\n [\n \"path\",\n {\n d: \"M12 10v12\",\n key: \"6ubwww\"\n }\n ],\n [\n \"path\",\n {\n d: \"M12 22c4.2 0 7-1.667 7-5-4.2 0-7 1.667-7 5Z\",\n key: \"9hd38g\"\n }\n ],\n [\n \"path\",\n {\n d: \"M12 22c-4.2 0-7-1.667-7-5 4.2 0 7 1.667 7 5Z\",\n key: \"ufn41s\"\n }\n ]\n];\nconst Flower2 = createLucideIcon(\"flower-2\", __iconNode$f3);\nconst __iconNode$f2 = [\n [\n \"circle\",\n {\n cx: \"12\",\n cy: \"12\",\n r: \"3\",\n key: \"1v7zrd\"\n }\n ],\n [\n \"path\",\n {\n d: \"M12 16.5A4.5 4.5 0 1 1 7.5 12 4.5 4.5 0 1 1 12 7.5a4.5 4.5 0 1 1 4.5 4.5 4.5 4.5 0 1 1-4.5 4.5\",\n key: \"14wa3c\"\n }\n ],\n [\n \"path\",\n {\n d: \"M12 7.5V9\",\n key: \"1oy5b0\"\n }\n ],\n [\n \"path\",\n {\n d: \"M7.5 12H9\",\n key: \"eltsq1\"\n }\n ],\n [\n \"path\",\n {\n d: \"M16.5 12H15\",\n key: \"vk5kw4\"\n }\n ],\n [\n \"path\",\n {\n d: \"M12 16.5V15\",\n key: \"k7eayi\"\n }\n ],\n [\n \"path\",\n {\n d: \"m8 8 1.88 1.88\",\n key: \"nxy4qf\"\n }\n ],\n [\n \"path\",\n {\n d: \"M14.12 9.88 16 8\",\n key: \"1lst6k\"\n }\n ],\n [\n \"path\",\n {\n d: \"m8 16 1.88-1.88\",\n key: \"h2eex1\"\n }\n ],\n [\n \"path\",\n {\n d: \"M14.12 14.12 16 16\",\n key: \"uqkrx3\"\n }\n ]\n];\nconst Flower = createLucideIcon(\"flower\", __iconNode$f2);\nconst __iconNode$f1 = [\n [\n \"circle\",\n {\n cx: \"12\",\n cy: \"12\",\n r: \"3\",\n key: \"1v7zrd\"\n }\n ],\n [\n \"path\",\n {\n d: \"M3 7V5a2 2 0 0 1 2-2h2\",\n key: \"aa7l1z\"\n }\n ],\n [\n \"path\",\n {\n d: \"M17 3h2a2 2 0 0 1 2 2v2\",\n key: \"4qcy5o\"\n }\n ],\n [\n \"path\",\n {\n d: \"M21 17v2a2 2 0 0 1-2 2h-2\",\n key: \"6vwrx8\"\n }\n ],\n [\n \"path\",\n {\n d: \"M7 21H5a2 2 0 0 1-2-2v-2\",\n key: \"ioqczr\"\n }\n ]\n];\nconst Focus = createLucideIcon(\"focus\", __iconNode$f1);\nconst __iconNode$f0 = [\n [\n \"path\",\n {\n d: \"M2 12h6\",\n key: \"1wqiqv\"\n }\n ],\n [\n \"path\",\n {\n d: \"M22 12h-6\",\n key: \"1eg9hc\"\n }\n ],\n [\n \"path\",\n {\n d: \"M12 2v2\",\n key: \"tus03m\"\n }\n ],\n [\n \"path\",\n {\n d: \"M12 8v2\",\n key: \"1woqiv\"\n }\n ],\n [\n \"path\",\n {\n d: \"M12 14v2\",\n key: \"8jcxud\"\n }\n ],\n [\n \"path\",\n {\n d: \"M12 20v2\",\n key: \"1lh1kg\"\n }\n ],\n [\n \"path\",\n {\n d: \"m19 9-3 3 3 3\",\n key: \"12ol22\"\n }\n ],\n [\n \"path\",\n {\n d: \"m5 15 3-3-3-3\",\n key: \"1kdhjc\"\n }\n ]\n];\nconst FoldHorizontal = createLucideIcon(\"fold-horizontal\", __iconNode$f0);\nconst __iconNode$e$ = [\n [\n \"path\",\n {\n d: \"M12 22v-6\",\n key: \"6o8u61\"\n }\n ],\n [\n \"path\",\n {\n d: \"M12 8V2\",\n key: \"1wkif3\"\n }\n ],\n [\n \"path\",\n {\n d: \"M4 12H2\",\n key: \"rhcxmi\"\n }\n ],\n [\n \"path\",\n {\n d: \"M10 12H8\",\n key: \"s88cx1\"\n }\n ],\n [\n \"path\",\n {\n d: \"M16 12h-2\",\n key: \"10asgb\"\n }\n ],\n [\n \"path\",\n {\n d: \"M22 12h-2\",\n key: \"14jgyd\"\n }\n ],\n [\n \"path\",\n {\n d: \"m15 19-3-3-3 3\",\n key: \"e37ymu\"\n }\n ],\n [\n \"path\",\n {\n d: \"m15 5-3 3-3-3\",\n key: \"19d6lf\"\n }\n ]\n];\nconst FoldVertical = createLucideIcon(\"fold-vertical\", __iconNode$e$);\nconst __iconNode$e_ = [\n [\n \"circle\",\n {\n cx: \"15\",\n cy: \"19\",\n r: \"2\",\n key: \"u2pros\"\n }\n ],\n [\n \"path\",\n {\n d: \"M20.9 19.8A2 2 0 0 0 22 18V8a2 2 0 0 0-2-2h-7.9a2 2 0 0 1-1.69-.9L9.6 3.9A2 2 0 0 0 7.93 3H4a2 2 0 0 0-2 2v13a2 2 0 0 0 2 2h5.1\",\n key: \"1jj40k\"\n }\n ],\n [\n \"path\",\n {\n d: \"M15 11v-1\",\n key: \"cntcp\"\n }\n ],\n [\n \"path\",\n {\n d: \"M15 17v-2\",\n key: \"1279jj\"\n }\n ]\n];\nconst FolderArchive = createLucideIcon(\"folder-archive\", __iconNode$e_);\nconst __iconNode$eZ = [\n [\n \"path\",\n {\n d: \"M20 20a2 2 0 0 0 2-2V8a2 2 0 0 0-2-2h-7.9a2 2 0 0 1-1.69-.9L9.6 3.9A2 2 0 0 0 7.93 3H4a2 2 0 0 0-2 2v13a2 2 0 0 0 2 2Z\",\n key: \"1kt360\"\n }\n ],\n [\n \"path\",\n {\n d: \"m9 13 2 2 4-4\",\n key: \"6343dt\"\n }\n ]\n];\nconst FolderCheck = createLucideIcon(\"folder-check\", __iconNode$eZ);\nconst __iconNode$eY = [\n [\n \"path\",\n {\n d: \"M16 14v2.2l1.6 1\",\n key: \"fo4ql5\"\n }\n ],\n [\n \"path\",\n {\n d: \"M7 20H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h3.9a2 2 0 0 1 1.69.9l.81 1.2a2 2 0 0 0 1.67.9H20a2 2 0 0 1 2 2\",\n key: \"1urifu\"\n }\n ],\n [\n \"circle\",\n {\n cx: \"16\",\n cy: \"16\",\n r: \"6\",\n key: \"qoo3c4\"\n }\n ]\n];\nconst FolderClock = createLucideIcon(\"folder-clock\", __iconNode$eY);\nconst __iconNode$eX = [\n [\n \"path\",\n {\n d: \"M20 20a2 2 0 0 0 2-2V8a2 2 0 0 0-2-2h-7.9a2 2 0 0 1-1.69-.9L9.6 3.9A2 2 0 0 0 7.93 3H4a2 2 0 0 0-2 2v13a2 2 0 0 0 2 2Z\",\n key: \"1kt360\"\n }\n ],\n [\n \"path\",\n {\n d: \"M2 10h20\",\n key: \"1ir3d8\"\n }\n ]\n];\nconst FolderClosed = createLucideIcon(\"folder-closed\", __iconNode$eX);\nconst __iconNode$eW = [\n [\n \"path\",\n {\n d: \"M10 10.5 8 13l2 2.5\",\n key: \"m4t9c1\"\n }\n ],\n [\n \"path\",\n {\n d: \"m14 10.5 2 2.5-2 2.5\",\n key: \"14w2eb\"\n }\n ],\n [\n \"path\",\n {\n d: \"M20 20a2 2 0 0 0 2-2V8a2 2 0 0 0-2-2h-7.9a2 2 0 0 1-1.69-.9L9.6 3.9A2 2 0 0 0 7.93 3H4a2 2 0 0 0-2 2v13a2 2 0 0 0 2 2z\",\n key: \"1u1bxd\"\n }\n ]\n];\nconst FolderCode = createLucideIcon(\"folder-code\", __iconNode$eW);\nconst __iconNode$eV = [\n [\n \"path\",\n {\n d: \"M10.3 20H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h3.98a2 2 0 0 1 1.69.9l.66 1.2A2 2 0 0 0 12 6h8a2 2 0 0 1 2 2v3.3\",\n key: \"128dxu\"\n }\n ],\n [\n \"path\",\n {\n d: \"m14.305 19.53.923-.382\",\n key: \"3m78fa\"\n }\n ],\n [\n \"path\",\n {\n d: \"m15.228 16.852-.923-.383\",\n key: \"npixar\"\n }\n ],\n [\n \"path\",\n {\n d: \"m16.852 15.228-.383-.923\",\n key: \"5xggr7\"\n }\n ],\n [\n \"path\",\n {\n d: \"m16.852 20.772-.383.924\",\n key: \"dpfhf9\"\n }\n ],\n [\n \"path\",\n {\n d: \"m19.148 15.228.383-.923\",\n key: \"1reyyz\"\n }\n ],\n [\n \"path\",\n {\n d: \"m19.53 21.696-.382-.924\",\n key: \"1goivc\"\n }\n ],\n [\n \"path\",\n {\n d: \"m20.772 16.852.924-.383\",\n key: \"htqkph\"\n }\n ],\n [\n \"path\",\n {\n d: \"m20.772 19.148.924.383\",\n key: \"9w9pjp\"\n }\n ],\n [\n \"circle\",\n {\n cx: \"18\",\n cy: \"18\",\n r: \"3\",\n key: \"1xkwt0\"\n }\n ]\n];\nconst FolderCog = createLucideIcon(\"folder-cog\", __iconNode$eV);\nconst __iconNode$eU = [\n [\n \"path\",\n {\n d: \"M4 20h16a2 2 0 0 0 2-2V8a2 2 0 0 0-2-2h-7.93a2 2 0 0 1-1.66-.9l-.82-1.2A2 2 0 0 0 7.93 3H4a2 2 0 0 0-2 2v13c0 1.1.9 2 2 2Z\",\n key: \"1fr9dc\"\n }\n ],\n [\n \"circle\",\n {\n cx: \"12\",\n cy: \"13\",\n r: \"1\",\n key: \"49l61u\"\n }\n ]\n];\nconst FolderDot = createLucideIcon(\"folder-dot\", __iconNode$eU);\nconst __iconNode$eT = [\n [\n \"path\",\n {\n d: \"M20 20a2 2 0 0 0 2-2V8a2 2 0 0 0-2-2h-7.9a2 2 0 0 1-1.69-.9L9.6 3.9A2 2 0 0 0 7.93 3H4a2 2 0 0 0-2 2v13a2 2 0 0 0 2 2Z\",\n key: \"1kt360\"\n }\n ],\n [\n \"path\",\n {\n d: \"M12 10v6\",\n key: \"1bos4e\"\n }\n ],\n [\n \"path\",\n {\n d: \"m15 13-3 3-3-3\",\n key: \"6j2sf0\"\n }\n ]\n];\nconst FolderDown = createLucideIcon(\"folder-down\", __iconNode$eT);\nconst __iconNode$eS = [\n [\n \"path\",\n {\n d: \"M9 20H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h3.9a2 2 0 0 1 1.69.9l.81 1.2a2 2 0 0 0 1.67.9H20a2 2 0 0 1 2 2v5\",\n key: \"1w6njk\"\n }\n ],\n [\n \"circle\",\n {\n cx: \"13\",\n cy: \"12\",\n r: \"2\",\n key: \"1j92g6\"\n }\n ],\n [\n \"path\",\n {\n d: \"M18 19c-2.8 0-5-2.2-5-5v8\",\n key: \"pkpw2h\"\n }\n ],\n [\n \"circle\",\n {\n cx: \"20\",\n cy: \"19\",\n r: \"2\",\n key: \"1obnsp\"\n }\n ]\n];\nconst FolderGit2 = createLucideIcon(\"folder-git-2\", __iconNode$eS);\nconst __iconNode$eR = [\n [\n \"circle\",\n {\n cx: \"12\",\n cy: \"13\",\n r: \"2\",\n key: \"1c1ljs\"\n }\n ],\n [\n \"path\",\n {\n d: \"M20 20a2 2 0 0 0 2-2V8a2 2 0 0 0-2-2h-7.9a2 2 0 0 1-1.69-.9L9.6 3.9A2 2 0 0 0 7.93 3H4a2 2 0 0 0-2 2v13a2 2 0 0 0 2 2Z\",\n key: \"1kt360\"\n }\n ],\n [\n \"path\",\n {\n d: \"M14 13h3\",\n key: \"1dgedf\"\n }\n ],\n [\n \"path\",\n {\n d: \"M7 13h3\",\n key: \"1pygq7\"\n }\n ]\n];\nconst FolderGit = createLucideIcon(\"folder-git\", __iconNode$eR);\nconst __iconNode$eQ = [\n [\n \"path\",\n {\n d: \"M11 20H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h3.9a2 2 0 0 1 1.69.9l.81 1.2a2 2 0 0 0 1.67.9H20a2 2 0 0 1 2 2v1.5\",\n key: \"6hud8k\"\n }\n ],\n [\n \"path\",\n {\n d: \"M13.9 17.45c-1.2-1.2-1.14-2.8-.2-3.73a2.43 2.43 0 0 1 3.44 0l.36.34.34-.34a2.43 2.43 0 0 1 3.45-.01c.95.95 1 2.53-.2 3.74L17.5 21Z\",\n key: \"wpff58\"\n }\n ]\n];\nconst FolderHeart = createLucideIcon(\"folder-heart\", __iconNode$eQ);\nconst __iconNode$eP = [\n [\n \"path\",\n {\n d: \"M2 9V5a2 2 0 0 1 2-2h3.9a2 2 0 0 1 1.69.9l.81 1.2a2 2 0 0 0 1.67.9H20a2 2 0 0 1 2 2v10a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2v-1\",\n key: \"fm4g5t\"\n }\n ],\n [\n \"path\",\n {\n d: \"M2 13h10\",\n key: \"pgb2dq\"\n }\n ],\n [\n \"path\",\n {\n d: \"m9 16 3-3-3-3\",\n key: \"6m91ic\"\n }\n ]\n];\nconst FolderInput = createLucideIcon(\"folder-input\", __iconNode$eP);\nconst __iconNode$eO = [\n [\n \"path\",\n {\n d: \"M4 20h16a2 2 0 0 0 2-2V8a2 2 0 0 0-2-2h-7.93a2 2 0 0 1-1.66-.9l-.82-1.2A2 2 0 0 0 7.93 3H4a2 2 0 0 0-2 2v13c0 1.1.9 2 2 2Z\",\n key: \"1fr9dc\"\n }\n ],\n [\n \"path\",\n {\n d: \"M8 10v4\",\n key: \"tgpxqk\"\n }\n ],\n [\n \"path\",\n {\n d: \"M12 10v2\",\n key: \"hh53o1\"\n }\n ],\n [\n \"path\",\n {\n d: \"M16 10v6\",\n key: \"1d6xys\"\n }\n ]\n];\nconst FolderKanban = createLucideIcon(\"folder-kanban\", __iconNode$eO);\nconst __iconNode$eN = [\n [\n \"circle\",\n {\n cx: \"16\",\n cy: \"20\",\n r: \"2\",\n key: \"1vifvg\"\n }\n ],\n [\n \"path\",\n {\n d: \"M10 20H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h3.9a2 2 0 0 1 1.69.9l.81 1.2a2 2 0 0 0 1.67.9H20a2 2 0 0 1 2 2v2\",\n key: \"3hgo9p\"\n }\n ],\n [\n \"path\",\n {\n d: \"m22 14-4.5 4.5\",\n key: \"1ef6z8\"\n }\n ],\n [\n \"path\",\n {\n d: \"m21 15 1 1\",\n key: \"1ejcpy\"\n }\n ]\n];\nconst FolderKey = createLucideIcon(\"folder-key\", __iconNode$eN);\nconst __iconNode$eM = [\n [\n \"path\",\n {\n d: \"M9 13h6\",\n key: \"1uhe8q\"\n }\n ],\n [\n \"path\",\n {\n d: \"M20 20a2 2 0 0 0 2-2V8a2 2 0 0 0-2-2h-7.9a2 2 0 0 1-1.69-.9L9.6 3.9A2 2 0 0 0 7.93 3H4a2 2 0 0 0-2 2v13a2 2 0 0 0 2 2Z\",\n key: \"1kt360\"\n }\n ]\n];\nconst FolderMinus = createLucideIcon(\"folder-minus\", __iconNode$eM);\nconst __iconNode$eL = [\n [\n \"rect\",\n {\n width: \"8\",\n height: \"5\",\n x: \"14\",\n y: \"17\",\n rx: \"1\",\n key: \"19aais\"\n }\n ],\n [\n \"path\",\n {\n d: \"M10 20H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h3.9a2 2 0 0 1 1.69.9l.81 1.2a2 2 0 0 0 1.67.9H20a2 2 0 0 1 2 2v2.5\",\n key: \"1w6v7t\"\n }\n ],\n [\n \"path\",\n {\n d: \"M20 17v-2a2 2 0 1 0-4 0v2\",\n key: \"pwaxnr\"\n }\n ]\n];\nconst FolderLock = createLucideIcon(\"folder-lock\", __iconNode$eL);\nconst __iconNode$eK = [\n [\n \"path\",\n {\n d: \"m6 14 1.45-2.9A2 2 0 0 1 9.24 10H20a2 2 0 0 1 1.94 2.5l-1.55 6a2 2 0 0 1-1.94 1.5H4a2 2 0 0 1-2-2V5c0-1.1.9-2 2-2h3.93a2 2 0 0 1 1.66.9l.82 1.2a2 2 0 0 0 1.66.9H18a2 2 0 0 1 2 2v2\",\n key: \"1nmvlm\"\n }\n ],\n [\n \"circle\",\n {\n cx: \"14\",\n cy: \"15\",\n r: \"1\",\n key: \"1gm4qj\"\n }\n ]\n];\nconst FolderOpenDot = createLucideIcon(\"folder-open-dot\", __iconNode$eK);\nconst __iconNode$eJ = [\n [\n \"path\",\n {\n d: \"m6 14 1.5-2.9A2 2 0 0 1 9.24 10H20a2 2 0 0 1 1.94 2.5l-1.54 6a2 2 0 0 1-1.95 1.5H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h3.9a2 2 0 0 1 1.69.9l.81 1.2a2 2 0 0 0 1.67.9H18a2 2 0 0 1 2 2v2\",\n key: \"usdka0\"\n }\n ]\n];\nconst FolderOpen = createLucideIcon(\"folder-open\", __iconNode$eJ);\nconst __iconNode$eI = [\n [\n \"path\",\n {\n d: \"M2 7.5V5a2 2 0 0 1 2-2h3.9a2 2 0 0 1 1.69.9l.81 1.2a2 2 0 0 0 1.67.9H20a2 2 0 0 1 2 2v10a2 2 0 0 1-2 2H4a2 2 0 0 1-2-1.5\",\n key: \"1yk7aj\"\n }\n ],\n [\n \"path\",\n {\n d: \"M2 13h10\",\n key: \"pgb2dq\"\n }\n ],\n [\n \"path\",\n {\n d: \"m5 10-3 3 3 3\",\n key: \"1r8ie0\"\n }\n ]\n];\nconst FolderOutput = createLucideIcon(\"folder-output\", __iconNode$eI);\nconst __iconNode$eH = [\n [\n \"path\",\n {\n d: \"M2 11.5V5a2 2 0 0 1 2-2h3.9c.7 0 1.3.3 1.7.9l.8 1.2c.4.6 1 .9 1.7.9H20a2 2 0 0 1 2 2v10a2 2 0 0 1-2 2h-9.5\",\n key: \"a8xqs0\"\n }\n ],\n [\n \"path\",\n {\n d: \"M11.378 13.626a1 1 0 1 0-3.004-3.004l-5.01 5.012a2 2 0 0 0-.506.854l-.837 2.87a.5.5 0 0 0 .62.62l2.87-.837a2 2 0 0 0 .854-.506z\",\n key: \"1saktj\"\n }\n ]\n];\nconst FolderPen = createLucideIcon(\"folder-pen\", __iconNode$eH);\nconst __iconNode$eG = [\n [\n \"path\",\n {\n d: \"M12 10v6\",\n key: \"1bos4e\"\n }\n ],\n [\n \"path\",\n {\n d: \"M9 13h6\",\n key: \"1uhe8q\"\n }\n ],\n [\n \"path\",\n {\n d: \"M20 20a2 2 0 0 0 2-2V8a2 2 0 0 0-2-2h-7.9a2 2 0 0 1-1.69-.9L9.6 3.9A2 2 0 0 0 7.93 3H4a2 2 0 0 0-2 2v13a2 2 0 0 0 2 2Z\",\n key: \"1kt360\"\n }\n ]\n];\nconst FolderPlus = createLucideIcon(\"folder-plus\", __iconNode$eG);\nconst __iconNode$eF = [\n [\n \"path\",\n {\n d: \"M4 20h16a2 2 0 0 0 2-2V8a2 2 0 0 0-2-2h-7.93a2 2 0 0 1-1.66-.9l-.82-1.2A2 2 0 0 0 7.93 3H4a2 2 0 0 0-2 2v13c0 1.1.9 2 2 2Z\",\n key: \"1fr9dc\"\n }\n ],\n [\n \"circle\",\n {\n cx: \"12\",\n cy: \"13\",\n r: \"2\",\n key: \"1c1ljs\"\n }\n ],\n [\n \"path\",\n {\n d: \"M12 15v5\",\n key: \"11xva1\"\n }\n ]\n];\nconst FolderRoot = createLucideIcon(\"folder-root\", __iconNode$eF);\nconst __iconNode$eE = [\n [\n \"circle\",\n {\n cx: \"11.5\",\n cy: \"12.5\",\n r: \"2.5\",\n key: \"1ea5ju\"\n }\n ],\n [\n \"path\",\n {\n d: \"M20 20a2 2 0 0 0 2-2V8a2 2 0 0 0-2-2h-7.9a2 2 0 0 1-1.69-.9L9.6 3.9A2 2 0 0 0 7.93 3H4a2 2 0 0 0-2 2v13a2 2 0 0 0 2 2Z\",\n key: \"1kt360\"\n }\n ],\n [\n \"path\",\n {\n d: \"M13.3 14.3 15 16\",\n key: \"1y4v1n\"\n }\n ]\n];\nconst FolderSearch2 = createLucideIcon(\"folder-search-2\", __iconNode$eE);\nconst __iconNode$eD = [\n [\n \"path\",\n {\n d: \"M10.7 20H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h3.9a2 2 0 0 1 1.69.9l.81 1.2a2 2 0 0 0 1.67.9H20a2 2 0 0 1 2 2v4.1\",\n key: \"1bw5m7\"\n }\n ],\n [\n \"path\",\n {\n d: \"m21 21-1.9-1.9\",\n key: \"1g2n9r\"\n }\n ],\n [\n \"circle\",\n {\n cx: \"17\",\n cy: \"17\",\n r: \"3\",\n key: \"18b49y\"\n }\n ]\n];\nconst FolderSearch = createLucideIcon(\"folder-search\", __iconNode$eD);\nconst __iconNode$eC = [\n [\n \"path\",\n {\n d: \"M2 9V5a2 2 0 0 1 2-2h3.9a2 2 0 0 1 1.69.9l.81 1.2a2 2 0 0 0 1.67.9H20a2 2 0 0 1 2 2v10a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2v-3a2 2 0 0 1 2-2h7\",\n key: \"x1c07l\"\n }\n ],\n [\n \"path\",\n {\n d: \"m8 16 3-3-3-3\",\n key: \"rlqrt1\"\n }\n ]\n];\nconst FolderSymlink = createLucideIcon(\"folder-symlink\", __iconNode$eC);\nconst __iconNode$eB = [\n [\n \"path\",\n {\n d: \"M9 20H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h3.9a2 2 0 0 1 1.69.9l.81 1.2a2 2 0 0 0 1.67.9H20a2 2 0 0 1 2 2v.5\",\n key: \"1dkoa9\"\n }\n ],\n [\n \"path\",\n {\n d: \"M12 10v4h4\",\n key: \"1czhmt\"\n }\n ],\n [\n \"path\",\n {\n d: \"m12 14 1.535-1.605a5 5 0 0 1 8 1.5\",\n key: \"lvuxfi\"\n }\n ],\n [\n \"path\",\n {\n d: \"M22 22v-4h-4\",\n key: \"1ewp4q\"\n }\n ],\n [\n \"path\",\n {\n d: \"m22 18-1.535 1.605a5 5 0 0 1-8-1.5\",\n key: \"14ync0\"\n }\n ]\n];\nconst FolderSync = createLucideIcon(\"folder-sync\", __iconNode$eB);\nconst __iconNode$eA = [\n [\n \"path\",\n {\n d: \"M20 10a1 1 0 0 0 1-1V6a1 1 0 0 0-1-1h-2.5a1 1 0 0 1-.8-.4l-.9-1.2A1 1 0 0 0 15 3h-2a1 1 0 0 0-1 1v5a1 1 0 0 0 1 1Z\",\n key: \"hod4my\"\n }\n ],\n [\n \"path\",\n {\n d: \"M20 21a1 1 0 0 0 1-1v-3a1 1 0 0 0-1-1h-2.9a1 1 0 0 1-.88-.55l-.42-.85a1 1 0 0 0-.92-.6H13a1 1 0 0 0-1 1v5a1 1 0 0 0 1 1Z\",\n key: \"w4yl2u\"\n }\n ],\n [\n \"path\",\n {\n d: \"M3 5a2 2 0 0 0 2 2h3\",\n key: \"f2jnh7\"\n }\n ],\n [\n \"path\",\n {\n d: \"M3 3v13a2 2 0 0 0 2 2h3\",\n key: \"k8epm1\"\n }\n ]\n];\nconst FolderTree = createLucideIcon(\"folder-tree\", __iconNode$eA);\nconst __iconNode$ez = [\n [\n \"path\",\n {\n d: \"M20 20a2 2 0 0 0 2-2V8a2 2 0 0 0-2-2h-7.9a2 2 0 0 1-1.69-.9L9.6 3.9A2 2 0 0 0 7.93 3H4a2 2 0 0 0-2 2v13a2 2 0 0 0 2 2Z\",\n key: \"1kt360\"\n }\n ],\n [\n \"path\",\n {\n d: \"M12 10v6\",\n key: \"1bos4e\"\n }\n ],\n [\n \"path\",\n {\n d: \"m9 13 3-3 3 3\",\n key: \"1pxg3c\"\n }\n ]\n];\nconst FolderUp = createLucideIcon(\"folder-up\", __iconNode$ez);\nconst __iconNode$ey = [\n [\n \"path\",\n {\n d: \"M20 20a2 2 0 0 0 2-2V8a2 2 0 0 0-2-2h-7.9a2 2 0 0 1-1.69-.9L9.6 3.9A2 2 0 0 0 7.93 3H4a2 2 0 0 0-2 2v13a2 2 0 0 0 2 2Z\",\n key: \"1kt360\"\n }\n ],\n [\n \"path\",\n {\n d: \"m9.5 10.5 5 5\",\n key: \"ra9qjz\"\n }\n ],\n [\n \"path\",\n {\n d: \"m14.5 10.5-5 5\",\n key: \"l2rkpq\"\n }\n ]\n];\nconst FolderX = createLucideIcon(\"folder-x\", __iconNode$ey);\nconst __iconNode$ex = [\n [\n \"path\",\n {\n d: \"M20 20a2 2 0 0 0 2-2V8a2 2 0 0 0-2-2h-7.9a2 2 0 0 1-1.69-.9L9.6 3.9A2 2 0 0 0 7.93 3H4a2 2 0 0 0-2 2v13a2 2 0 0 0 2 2Z\",\n key: \"1kt360\"\n }\n ]\n];\nconst Folder = createLucideIcon(\"folder\", __iconNode$ex);\nconst __iconNode$ew = [\n [\n \"path\",\n {\n d: \"M20 17a2 2 0 0 0 2-2V9a2 2 0 0 0-2-2h-3.9a2 2 0 0 1-1.69-.9l-.81-1.2a2 2 0 0 0-1.67-.9H8a2 2 0 0 0-2 2v9a2 2 0 0 0 2 2Z\",\n key: \"4u7rpt\"\n }\n ],\n [\n \"path\",\n {\n d: \"M2 8v11a2 2 0 0 0 2 2h14\",\n key: \"1eicx1\"\n }\n ]\n];\nconst Folders = createLucideIcon(\"folders\", __iconNode$ew);\nconst __iconNode$ev = [\n [\n \"path\",\n {\n d: \"M4 16v-2.38C4 11.5 2.97 10.5 3 8c.03-2.72 1.49-6 4.5-6C9.37 2 10 3.8 10 5.5c0 3.11-2 5.66-2 8.68V16a2 2 0 1 1-4 0Z\",\n key: \"1dudjm\"\n }\n ],\n [\n \"path\",\n {\n d: \"M20 20v-2.38c0-2.12 1.03-3.12 1-5.62-.03-2.72-1.49-6-4.5-6C14.63 6 14 7.8 14 9.5c0 3.11 2 5.66 2 8.68V20a2 2 0 1 0 4 0Z\",\n key: \"l2t8xc\"\n }\n ],\n [\n \"path\",\n {\n d: \"M16 17h4\",\n key: \"1dejxt\"\n }\n ],\n [\n \"path\",\n {\n d: \"M4 13h4\",\n key: \"1bwh8b\"\n }\n ]\n];\nconst Footprints = createLucideIcon(\"footprints\", __iconNode$ev);\nconst __iconNode$eu = [\n [\n \"path\",\n {\n d: \"M12 12H5a2 2 0 0 0-2 2v5\",\n key: \"7zsz91\"\n }\n ],\n [\n \"circle\",\n {\n cx: \"13\",\n cy: \"19\",\n r: \"2\",\n key: \"wjnkru\"\n }\n ],\n [\n \"circle\",\n {\n cx: \"5\",\n cy: \"19\",\n r: \"2\",\n key: \"v8kfzx\"\n }\n ],\n [\n \"path\",\n {\n d: \"M8 19h3m5-17v17h6M6 12V7c0-1.1.9-2 2-2h3l5 5\",\n key: \"13bk1p\"\n }\n ]\n];\nconst Forklift = createLucideIcon(\"forklift\", __iconNode$eu);\nconst __iconNode$et = [\n [\n \"path\",\n {\n d: \"m15 17 5-5-5-5\",\n key: \"nf172w\"\n }\n ],\n [\n \"path\",\n {\n d: \"M4 18v-2a4 4 0 0 1 4-4h12\",\n key: \"jmiej9\"\n }\n ]\n];\nconst Forward = createLucideIcon(\"forward\", __iconNode$et);\nconst __iconNode$es = [\n [\n \"line\",\n {\n x1: \"22\",\n x2: \"2\",\n y1: \"6\",\n y2: \"6\",\n key: \"15w7dq\"\n }\n ],\n [\n \"line\",\n {\n x1: \"22\",\n x2: \"2\",\n y1: \"18\",\n y2: \"18\",\n key: \"1ip48p\"\n }\n ],\n [\n \"line\",\n {\n x1: \"6\",\n x2: \"6\",\n y1: \"2\",\n y2: \"22\",\n key: \"a2lnyx\"\n }\n ],\n [\n \"line\",\n {\n x1: \"18\",\n x2: \"18\",\n y1: \"2\",\n y2: \"22\",\n key: \"8vb6jd\"\n }\n ]\n];\nconst Frame = createLucideIcon(\"frame\", __iconNode$es);\nconst __iconNode$er = [\n [\n \"path\",\n {\n d: \"M5 16V9h14V2H5l14 14h-7m-7 0 7 7v-7m-7 0h7\",\n key: \"1a2nng\"\n }\n ]\n];\nconst Framer = createLucideIcon(\"framer\", __iconNode$er);\nconst __iconNode$eq = [\n [\n \"circle\",\n {\n cx: \"12\",\n cy: \"12\",\n r: \"10\",\n key: \"1mglay\"\n }\n ],\n [\n \"path\",\n {\n d: \"M16 16s-1.5-2-4-2-4 2-4 2\",\n key: \"epbg0q\"\n }\n ],\n [\n \"line\",\n {\n x1: \"9\",\n x2: \"9.01\",\n y1: \"9\",\n y2: \"9\",\n key: \"yxxnd0\"\n }\n ],\n [\n \"line\",\n {\n x1: \"15\",\n x2: \"15.01\",\n y1: \"9\",\n y2: \"9\",\n key: \"1p4y9e\"\n }\n ]\n];\nconst Frown = createLucideIcon(\"frown\", __iconNode$eq);\nconst __iconNode$ep = [\n [\n \"line\",\n {\n x1: \"3\",\n x2: \"15\",\n y1: \"22\",\n y2: \"22\",\n key: \"xegly4\"\n }\n ],\n [\n \"line\",\n {\n x1: \"4\",\n x2: \"14\",\n y1: \"9\",\n y2: \"9\",\n key: \"xcnuvu\"\n }\n ],\n [\n \"path\",\n {\n d: \"M14 22V4a2 2 0 0 0-2-2H6a2 2 0 0 0-2 2v18\",\n key: \"16j0yd\"\n }\n ],\n [\n \"path\",\n {\n d: \"M14 13h2a2 2 0 0 1 2 2v2a2 2 0 0 0 2 2a2 2 0 0 0 2-2V9.83a2 2 0 0 0-.59-1.42L18 5\",\n key: \"7cu91f\"\n }\n ]\n];\nconst Fuel = createLucideIcon(\"fuel\", __iconNode$ep);\nconst __iconNode$eo = [\n [\n \"path\",\n {\n d: \"M3 7V5a2 2 0 0 1 2-2h2\",\n key: \"aa7l1z\"\n }\n ],\n [\n \"path\",\n {\n d: \"M17 3h2a2 2 0 0 1 2 2v2\",\n key: \"4qcy5o\"\n }\n ],\n [\n \"path\",\n {\n d: \"M21 17v2a2 2 0 0 1-2 2h-2\",\n key: \"6vwrx8\"\n }\n ],\n [\n \"path\",\n {\n d: \"M7 21H5a2 2 0 0 1-2-2v-2\",\n key: \"ioqczr\"\n }\n ],\n [\n \"rect\",\n {\n width: \"10\",\n height: \"8\",\n x: \"7\",\n y: \"8\",\n rx: \"1\",\n key: \"vys8me\"\n }\n ]\n];\nconst Fullscreen = createLucideIcon(\"fullscreen\", __iconNode$eo);\nconst __iconNode$en = [\n [\n \"path\",\n {\n d: \"M13.354 3H3a1 1 0 0 0-.742 1.67l7.225 7.989A2 2 0 0 1 10 14v6a1 1 0 0 0 .553.895l2 1A1 1 0 0 0 14 21v-7a2 2 0 0 1 .517-1.341l1.218-1.348\",\n key: \"8mvsmf\"\n }\n ],\n [\n \"path\",\n {\n d: \"M16 6h6\",\n key: \"1dogtp\"\n }\n ],\n [\n \"path\",\n {\n d: \"M19 3v6\",\n key: \"1ytpjt\"\n }\n ]\n];\nconst FunnelPlus = createLucideIcon(\"funnel-plus\", __iconNode$en);\nconst __iconNode$em = [\n [\n \"path\",\n {\n d: \"M12.531 3H3a1 1 0 0 0-.742 1.67l7.225 7.989A2 2 0 0 1 10 14v6a1 1 0 0 0 .553.895l2 1A1 1 0 0 0 14 21v-7a2 2 0 0 1 .517-1.341l.427-.473\",\n key: \"ol2ft2\"\n }\n ],\n [\n \"path\",\n {\n d: \"m16.5 3.5 5 5\",\n key: \"15e6fa\"\n }\n ],\n [\n \"path\",\n {\n d: \"m21.5 3.5-5 5\",\n key: \"m0lwru\"\n }\n ]\n];\nconst FunnelX = createLucideIcon(\"funnel-x\", __iconNode$em);\nconst __iconNode$el = [\n [\n \"path\",\n {\n d: \"M10 20a1 1 0 0 0 .553.895l2 1A1 1 0 0 0 14 21v-7a2 2 0 0 1 .517-1.341L21.74 4.67A1 1 0 0 0 21 3H3a1 1 0 0 0-.742 1.67l7.225 7.989A2 2 0 0 1 10 14z\",\n key: \"sc7q7i\"\n }\n ]\n];\nconst Funnel = createLucideIcon(\"funnel\", __iconNode$el);\nconst __iconNode$ek = [\n [\n \"path\",\n {\n d: \"M2 7v10\",\n key: \"a2pl2d\"\n }\n ],\n [\n \"path\",\n {\n d: \"M6 5v14\",\n key: \"1kq3d7\"\n }\n ],\n [\n \"rect\",\n {\n width: \"12\",\n height: \"18\",\n x: \"10\",\n y: \"3\",\n rx: \"2\",\n key: \"13i7bc\"\n }\n ]\n];\nconst GalleryHorizontalEnd = createLucideIcon(\"gallery-horizontal-end\", __iconNode$ek);\nconst __iconNode$ej = [\n [\n \"path\",\n {\n d: \"M2 3v18\",\n key: \"pzttux\"\n }\n ],\n [\n \"rect\",\n {\n width: \"12\",\n height: \"18\",\n x: \"6\",\n y: \"3\",\n rx: \"2\",\n key: \"btr8bg\"\n }\n ],\n [\n \"path\",\n {\n d: \"M22 3v18\",\n key: \"6jf3v\"\n }\n ]\n];\nconst GalleryHorizontal = createLucideIcon(\"gallery-horizontal\", __iconNode$ej);\nconst __iconNode$ei = [\n [\n \"rect\",\n {\n width: \"18\",\n height: \"14\",\n x: \"3\",\n y: \"3\",\n rx: \"2\",\n key: \"74y24f\"\n }\n ],\n [\n \"path\",\n {\n d: \"M4 21h1\",\n key: \"16zlid\"\n }\n ],\n [\n \"path\",\n {\n d: \"M9 21h1\",\n key: \"15o7lz\"\n }\n ],\n [\n \"path\",\n {\n d: \"M14 21h1\",\n key: \"v9vybs\"\n }\n ],\n [\n \"path\",\n {\n d: \"M19 21h1\",\n key: \"edywat\"\n }\n ]\n];\nconst GalleryThumbnails = createLucideIcon(\"gallery-thumbnails\", __iconNode$ei);\nconst __iconNode$eh = [\n [\n \"path\",\n {\n d: \"M7 2h10\",\n key: \"nczekb\"\n }\n ],\n [\n \"path\",\n {\n d: \"M5 6h14\",\n key: \"u2x4p\"\n }\n ],\n [\n \"rect\",\n {\n width: \"18\",\n height: \"12\",\n x: \"3\",\n y: \"10\",\n rx: \"2\",\n key: \"l0tzu3\"\n }\n ]\n];\nconst GalleryVerticalEnd = createLucideIcon(\"gallery-vertical-end\", __iconNode$eh);\nconst __iconNode$eg = [\n [\n \"path\",\n {\n d: \"M3 2h18\",\n key: \"15qxfx\"\n }\n ],\n [\n \"rect\",\n {\n width: \"18\",\n height: \"12\",\n x: \"3\",\n y: \"6\",\n rx: \"2\",\n key: \"1439r6\"\n }\n ],\n [\n \"path\",\n {\n d: \"M3 22h18\",\n key: \"8prr45\"\n }\n ]\n];\nconst GalleryVertical = createLucideIcon(\"gallery-vertical\", __iconNode$eg);\nconst __iconNode$ef = [\n [\n \"line\",\n {\n x1: \"6\",\n x2: \"10\",\n y1: \"11\",\n y2: \"11\",\n key: \"1gktln\"\n }\n ],\n [\n \"line\",\n {\n x1: \"8\",\n x2: \"8\",\n y1: \"9\",\n y2: \"13\",\n key: \"qnk9ow\"\n }\n ],\n [\n \"line\",\n {\n x1: \"15\",\n x2: \"15.01\",\n y1: \"12\",\n y2: \"12\",\n key: \"krot7o\"\n }\n ],\n [\n \"line\",\n {\n x1: \"18\",\n x2: \"18.01\",\n y1: \"10\",\n y2: \"10\",\n key: \"1lcuu1\"\n }\n ],\n [\n \"path\",\n {\n d: \"M17.32 5H6.68a4 4 0 0 0-3.978 3.59c-.006.052-.01.101-.017.152C2.604 9.416 2 14.456 2 16a3 3 0 0 0 3 3c1 0 1.5-.5 2-1l1.414-1.414A2 2 0 0 1 9.828 16h4.344a2 2 0 0 1 1.414.586L17 18c.5.5 1 1 2 1a3 3 0 0 0 3-3c0-1.545-.604-6.584-.685-7.258-.007-.05-.011-.1-.017-.151A4 4 0 0 0 17.32 5z\",\n key: \"mfqc10\"\n }\n ]\n];\nconst Gamepad2 = createLucideIcon(\"gamepad-2\", __iconNode$ef);\nconst __iconNode$ee = [\n [\n \"line\",\n {\n x1: \"6\",\n x2: \"10\",\n y1: \"12\",\n y2: \"12\",\n key: \"161bw2\"\n }\n ],\n [\n \"line\",\n {\n x1: \"8\",\n x2: \"8\",\n y1: \"10\",\n y2: \"14\",\n key: \"1i6ji0\"\n }\n ],\n [\n \"line\",\n {\n x1: \"15\",\n x2: \"15.01\",\n y1: \"13\",\n y2: \"13\",\n key: \"dqpgro\"\n }\n ],\n [\n \"line\",\n {\n x1: \"18\",\n x2: \"18.01\",\n y1: \"11\",\n y2: \"11\",\n key: \"meh2c\"\n }\n ],\n [\n \"rect\",\n {\n width: \"20\",\n height: \"12\",\n x: \"2\",\n y: \"6\",\n rx: \"2\",\n key: \"9lu3g6\"\n }\n ]\n];\nconst Gamepad = createLucideIcon(\"gamepad\", __iconNode$ee);\nconst __iconNode$ed = [\n [\n \"path\",\n {\n d: \"m12 14 4-4\",\n key: \"9kzdfg\"\n }\n ],\n [\n \"path\",\n {\n d: \"M3.34 19a10 10 0 1 1 17.32 0\",\n key: \"19p75a\"\n }\n ]\n];\nconst Gauge = createLucideIcon(\"gauge\", __iconNode$ed);\nconst __iconNode$ec = [\n [\n \"path\",\n {\n d: \"m14.5 12.5-8 8a2.119 2.119 0 1 1-3-3l8-8\",\n key: \"15492f\"\n }\n ],\n [\n \"path\",\n {\n d: \"m16 16 6-6\",\n key: \"vzrcl6\"\n }\n ],\n [\n \"path\",\n {\n d: \"m8 8 6-6\",\n key: \"18bi4p\"\n }\n ],\n [\n \"path\",\n {\n d: \"m9 7 8 8\",\n key: \"5jnvq1\"\n }\n ],\n [\n \"path\",\n {\n d: \"m21 11-8-8\",\n key: \"z4y7zo\"\n }\n ]\n];\nconst Gavel = createLucideIcon(\"gavel\", __iconNode$ec);\nconst __iconNode$eb = [\n [\n \"path\",\n {\n d: \"M6 3h12l4 6-10 13L2 9Z\",\n key: \"1pcd5k\"\n }\n ],\n [\n \"path\",\n {\n d: \"M11 3 8 9l4 13 4-13-3-6\",\n key: \"1fcu3u\"\n }\n ],\n [\n \"path\",\n {\n d: \"M2 9h20\",\n key: \"16fsjt\"\n }\n ]\n];\nconst Gem = createLucideIcon(\"gem\", __iconNode$eb);\nconst __iconNode$ea = [\n [\n \"path\",\n {\n d: \"M11.5 21a7.5 7.5 0 1 1 7.35-9\",\n key: \"1gyj8k\"\n }\n ],\n [\n \"path\",\n {\n d: \"M13 12V3\",\n key: \"18om2a\"\n }\n ],\n [\n \"path\",\n {\n d: \"M4 21h16\",\n key: \"1h09gz\"\n }\n ],\n [\n \"path\",\n {\n d: \"M9 12V3\",\n key: \"geutu0\"\n }\n ]\n];\nconst GeorgianLari = createLucideIcon(\"georgian-lari\", __iconNode$ea);\nconst __iconNode$e9 = [\n [\n \"path\",\n {\n d: \"M9 10h.01\",\n key: \"qbtxuw\"\n }\n ],\n [\n \"path\",\n {\n d: \"M15 10h.01\",\n key: \"1qmjsl\"\n }\n ],\n [\n \"path\",\n {\n d: \"M12 2a8 8 0 0 0-8 8v12l3-3 2.5 2.5L12 19l2.5 2.5L17 19l3 3V10a8 8 0 0 0-8-8z\",\n key: \"uwwb07\"\n }\n ]\n];\nconst Ghost = createLucideIcon(\"ghost\", __iconNode$e9);\nconst __iconNode$e8 = [\n [\n \"rect\",\n {\n x: \"3\",\n y: \"8\",\n width: \"18\",\n height: \"4\",\n rx: \"1\",\n key: \"bkv52\"\n }\n ],\n [\n \"path\",\n {\n d: \"M12 8v13\",\n key: \"1c76mn\"\n }\n ],\n [\n \"path\",\n {\n d: \"M19 12v7a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2v-7\",\n key: \"6wjy6b\"\n }\n ],\n [\n \"path\",\n {\n d: \"M7.5 8a2.5 2.5 0 0 1 0-5A4.8 8 0 0 1 12 8a4.8 8 0 0 1 4.5-5 2.5 2.5 0 0 1 0 5\",\n key: \"1ihvrl\"\n }\n ]\n];\nconst Gift = createLucideIcon(\"gift\", __iconNode$e8);\nconst __iconNode$e7 = [\n [\n \"path\",\n {\n d: \"M6 3v12\",\n key: \"qpgusn\"\n }\n ],\n [\n \"path\",\n {\n d: \"M18 9a3 3 0 1 0 0-6 3 3 0 0 0 0 6z\",\n key: \"1d02ji\"\n }\n ],\n [\n \"path\",\n {\n d: \"M6 21a3 3 0 1 0 0-6 3 3 0 0 0 0 6z\",\n key: \"chk6ph\"\n }\n ],\n [\n \"path\",\n {\n d: \"M15 6a9 9 0 0 0-9 9\",\n key: \"or332x\"\n }\n ],\n [\n \"path\",\n {\n d: \"M18 15v6\",\n key: \"9wciyi\"\n }\n ],\n [\n \"path\",\n {\n d: \"M21 18h-6\",\n key: \"139f0c\"\n }\n ]\n];\nconst GitBranchPlus = createLucideIcon(\"git-branch-plus\", __iconNode$e7);\nconst __iconNode$e6 = [\n [\n \"line\",\n {\n x1: \"6\",\n x2: \"6\",\n y1: \"3\",\n y2: \"15\",\n key: \"17qcm7\"\n }\n ],\n [\n \"circle\",\n {\n cx: \"18\",\n cy: \"6\",\n r: \"3\",\n key: \"1h7g24\"\n }\n ],\n [\n \"circle\",\n {\n cx: \"6\",\n cy: \"18\",\n r: \"3\",\n key: \"fqmcym\"\n }\n ],\n [\n \"path\",\n {\n d: \"M18 9a9 9 0 0 1-9 9\",\n key: \"n2h4wq\"\n }\n ]\n];\nconst GitBranch = createLucideIcon(\"git-branch\", __iconNode$e6);\nconst __iconNode$e5 = [\n [\n \"circle\",\n {\n cx: \"12\",\n cy: \"12\",\n r: \"3\",\n key: \"1v7zrd\"\n }\n ],\n [\n \"line\",\n {\n x1: \"3\",\n x2: \"9\",\n y1: \"12\",\n y2: \"12\",\n key: \"1dyftd\"\n }\n ],\n [\n \"line\",\n {\n x1: \"15\",\n x2: \"21\",\n y1: \"12\",\n y2: \"12\",\n key: \"oup4p8\"\n }\n ]\n];\nconst GitCommitHorizontal = createLucideIcon(\"git-commit-horizontal\", __iconNode$e5);\nconst __iconNode$e4 = [\n [\n \"path\",\n {\n d: \"M12 3v6\",\n key: \"1holv5\"\n }\n ],\n [\n \"circle\",\n {\n cx: \"12\",\n cy: \"12\",\n r: \"3\",\n key: \"1v7zrd\"\n }\n ],\n [\n \"path\",\n {\n d: \"M12 15v6\",\n key: \"a9ows0\"\n }\n ]\n];\nconst GitCommitVertical = createLucideIcon(\"git-commit-vertical\", __iconNode$e4);\nconst __iconNode$e3 = [\n [\n \"circle\",\n {\n cx: \"5\",\n cy: \"6\",\n r: \"3\",\n key: \"1qnov2\"\n }\n ],\n [\n \"path\",\n {\n d: \"M12 6h5a2 2 0 0 1 2 2v7\",\n key: \"1yj91y\"\n }\n ],\n [\n \"path\",\n {\n d: \"m15 9-3-3 3-3\",\n key: \"1lwv8l\"\n }\n ],\n [\n \"circle\",\n {\n cx: \"19\",\n cy: \"18\",\n r: \"3\",\n key: \"1qljk2\"\n }\n ],\n [\n \"path\",\n {\n d: \"M12 18H7a2 2 0 0 1-2-2V9\",\n key: \"16sdep\"\n }\n ],\n [\n \"path\",\n {\n d: \"m9 15 3 3-3 3\",\n key: \"1m3kbl\"\n }\n ]\n];\nconst GitCompareArrows = createLucideIcon(\"git-compare-arrows\", __iconNode$e3);\nconst __iconNode$e2 = [\n [\n \"circle\",\n {\n cx: \"12\",\n cy: \"18\",\n r: \"3\",\n key: \"1mpf1b\"\n }\n ],\n [\n \"circle\",\n {\n cx: \"6\",\n cy: \"6\",\n r: \"3\",\n key: \"1lh9wr\"\n }\n ],\n [\n \"circle\",\n {\n cx: \"18\",\n cy: \"6\",\n r: \"3\",\n key: \"1h7g24\"\n }\n ],\n [\n \"path\",\n {\n d: \"M18 9v2c0 .6-.4 1-1 1H7c-.6 0-1-.4-1-1V9\",\n key: \"1uq4wg\"\n }\n ],\n [\n \"path\",\n {\n d: \"M12 12v3\",\n key: \"158kv8\"\n }\n ]\n];\nconst GitFork = createLucideIcon(\"git-fork\", __iconNode$e2);\nconst __iconNode$e1 = [\n [\n \"circle\",\n {\n cx: \"18\",\n cy: \"18\",\n r: \"3\",\n key: \"1xkwt0\"\n }\n ],\n [\n \"circle\",\n {\n cx: \"6\",\n cy: \"6\",\n r: \"3\",\n key: \"1lh9wr\"\n }\n ],\n [\n \"path\",\n {\n d: \"M13 6h3a2 2 0 0 1 2 2v7\",\n key: \"1yeb86\"\n }\n ],\n [\n \"path\",\n {\n d: \"M11 18H8a2 2 0 0 1-2-2V9\",\n key: \"19pyzm\"\n }\n ]\n];\nconst GitCompare = createLucideIcon(\"git-compare\", __iconNode$e1);\nconst __iconNode$e0 = [\n [\n \"circle\",\n {\n cx: \"5\",\n cy: \"6\",\n r: \"3\",\n key: \"1qnov2\"\n }\n ],\n [\n \"path\",\n {\n d: \"M5 9v6\",\n key: \"158jrl\"\n }\n ],\n [\n \"circle\",\n {\n cx: \"5\",\n cy: \"18\",\n r: \"3\",\n key: \"104gr9\"\n }\n ],\n [\n \"path\",\n {\n d: \"M12 3v18\",\n key: \"108xh3\"\n }\n ],\n [\n \"circle\",\n {\n cx: \"19\",\n cy: \"6\",\n r: \"3\",\n key: \"108a5v\"\n }\n ],\n [\n \"path\",\n {\n d: \"M16 15.7A9 9 0 0 0 19 9\",\n key: \"1e3vqb\"\n }\n ]\n];\nconst GitGraph = createLucideIcon(\"git-graph\", __iconNode$e0);\nconst __iconNode$d$ = [\n [\n \"circle\",\n {\n cx: \"18\",\n cy: \"18\",\n r: \"3\",\n key: \"1xkwt0\"\n }\n ],\n [\n \"circle\",\n {\n cx: \"6\",\n cy: \"6\",\n r: \"3\",\n key: \"1lh9wr\"\n }\n ],\n [\n \"path\",\n {\n d: \"M6 21V9a9 9 0 0 0 9 9\",\n key: \"7kw0sc\"\n }\n ]\n];\nconst GitMerge = createLucideIcon(\"git-merge\", __iconNode$d$);\nconst __iconNode$d_ = [\n [\n \"circle\",\n {\n cx: \"5\",\n cy: \"6\",\n r: \"3\",\n key: \"1qnov2\"\n }\n ],\n [\n \"path\",\n {\n d: \"M5 9v12\",\n key: \"ih889a\"\n }\n ],\n [\n \"circle\",\n {\n cx: \"19\",\n cy: \"18\",\n r: \"3\",\n key: \"1qljk2\"\n }\n ],\n [\n \"path\",\n {\n d: \"m15 9-3-3 3-3\",\n key: \"1lwv8l\"\n }\n ],\n [\n \"path\",\n {\n d: \"M12 6h5a2 2 0 0 1 2 2v7\",\n key: \"1yj91y\"\n }\n ]\n];\nconst GitPullRequestArrow = createLucideIcon(\"git-pull-request-arrow\", __iconNode$d_);\nconst __iconNode$dZ = [\n [\n \"circle\",\n {\n cx: \"6\",\n cy: \"6\",\n r: \"3\",\n key: \"1lh9wr\"\n }\n ],\n [\n \"path\",\n {\n d: \"M6 9v12\",\n key: \"1sc30k\"\n }\n ],\n [\n \"path\",\n {\n d: \"m21 3-6 6\",\n key: \"16nqsk\"\n }\n ],\n [\n \"path\",\n {\n d: \"m21 9-6-6\",\n key: \"9j17rh\"\n }\n ],\n [\n \"path\",\n {\n d: \"M18 11.5V15\",\n key: \"65xf6f\"\n }\n ],\n [\n \"circle\",\n {\n cx: \"18\",\n cy: \"18\",\n r: \"3\",\n key: \"1xkwt0\"\n }\n ]\n];\nconst GitPullRequestClosed = createLucideIcon(\"git-pull-request-closed\", __iconNode$dZ);\nconst __iconNode$dY = [\n [\n \"circle\",\n {\n cx: \"5\",\n cy: \"6\",\n r: \"3\",\n key: \"1qnov2\"\n }\n ],\n [\n \"path\",\n {\n d: \"M5 9v12\",\n key: \"ih889a\"\n }\n ],\n [\n \"path\",\n {\n d: \"m15 9-3-3 3-3\",\n key: \"1lwv8l\"\n }\n ],\n [\n \"path\",\n {\n d: \"M12 6h5a2 2 0 0 1 2 2v3\",\n key: \"1rbwk6\"\n }\n ],\n [\n \"path\",\n {\n d: \"M19 15v6\",\n key: \"10aioa\"\n }\n ],\n [\n \"path\",\n {\n d: \"M22 18h-6\",\n key: \"1d5gi5\"\n }\n ]\n];\nconst GitPullRequestCreateArrow = createLucideIcon(\"git-pull-request-create-arrow\", __iconNode$dY);\nconst __iconNode$dX = [\n [\n \"circle\",\n {\n cx: \"6\",\n cy: \"6\",\n r: \"3\",\n key: \"1lh9wr\"\n }\n ],\n [\n \"path\",\n {\n d: \"M6 9v12\",\n key: \"1sc30k\"\n }\n ],\n [\n \"path\",\n {\n d: \"M13 6h3a2 2 0 0 1 2 2v3\",\n key: \"1jb6z3\"\n }\n ],\n [\n \"path\",\n {\n d: \"M18 15v6\",\n key: \"9wciyi\"\n }\n ],\n [\n \"path\",\n {\n d: \"M21 18h-6\",\n key: \"139f0c\"\n }\n ]\n];\nconst GitPullRequestCreate = createLucideIcon(\"git-pull-request-create\", __iconNode$dX);\nconst __iconNode$dW = [\n [\n \"circle\",\n {\n cx: \"18\",\n cy: \"18\",\n r: \"3\",\n key: \"1xkwt0\"\n }\n ],\n [\n \"circle\",\n {\n cx: \"6\",\n cy: \"6\",\n r: \"3\",\n key: \"1lh9wr\"\n }\n ],\n [\n \"path\",\n {\n d: \"M18 6V5\",\n key: \"1oao2s\"\n }\n ],\n [\n \"path\",\n {\n d: \"M18 11v-1\",\n key: \"11c8tz\"\n }\n ],\n [\n \"line\",\n {\n x1: \"6\",\n x2: \"6\",\n y1: \"9\",\n y2: \"21\",\n key: \"rroup\"\n }\n ]\n];\nconst GitPullRequestDraft = createLucideIcon(\"git-pull-request-draft\", __iconNode$dW);\nconst __iconNode$dV = [\n [\n \"circle\",\n {\n cx: \"18\",\n cy: \"18\",\n r: \"3\",\n key: \"1xkwt0\"\n }\n ],\n [\n \"circle\",\n {\n cx: \"6\",\n cy: \"6\",\n r: \"3\",\n key: \"1lh9wr\"\n }\n ],\n [\n \"path\",\n {\n d: \"M13 6h3a2 2 0 0 1 2 2v7\",\n key: \"1yeb86\"\n }\n ],\n [\n \"line\",\n {\n x1: \"6\",\n x2: \"6\",\n y1: \"9\",\n y2: \"21\",\n key: \"rroup\"\n }\n ]\n];\nconst GitPullRequest = createLucideIcon(\"git-pull-request\", __iconNode$dV);\nconst __iconNode$dU = [\n [\n \"path\",\n {\n d: \"M15 22v-4a4.8 4.8 0 0 0-1-3.5c3 0 6-2 6-5.5.08-1.25-.27-2.48-1-3.5.28-1.15.28-2.35 0-3.5 0 0-1 0-3 1.5-2.64-.5-5.36-.5-8 0C6 2 5 2 5 2c-.3 1.15-.3 2.35 0 3.5A5.403 5.403 0 0 0 4 9c0 3.5 3 5.5 6 5.5-.39.49-.68 1.05-.85 1.65-.17.6-.22 1.23-.15 1.85v4\",\n key: \"tonef\"\n }\n ],\n [\n \"path\",\n {\n d: \"M9 18c-4.51 2-5-2-7-2\",\n key: \"9comsn\"\n }\n ]\n];\nconst Github = createLucideIcon(\"github\", __iconNode$dU);\nconst __iconNode$dT = [\n [\n \"path\",\n {\n d: \"m22 13.29-3.33-10a.42.42 0 0 0-.14-.18.38.38 0 0 0-.22-.11.39.39 0 0 0-.23.07.42.42 0 0 0-.14.18l-2.26 6.67H8.32L6.1 3.26a.42.42 0 0 0-.1-.18.38.38 0 0 0-.26-.08.39.39 0 0 0-.23.07.42.42 0 0 0-.14.18L2 13.29a.74.74 0 0 0 .27.83L12 21l9.69-6.88a.71.71 0 0 0 .31-.83Z\",\n key: \"148pdi\"\n }\n ]\n];\nconst Gitlab = createLucideIcon(\"gitlab\", __iconNode$dT);\nconst __iconNode$dS = [\n [\n \"path\",\n {\n d: \"M5.116 4.104A1 1 0 0 1 6.11 3h11.78a1 1 0 0 1 .994 1.105L17.19 20.21A2 2 0 0 1 15.2 22H8.8a2 2 0 0 1-2-1.79z\",\n key: \"p55z4y\"\n }\n ],\n [\n \"path\",\n {\n d: \"M6 12a5 5 0 0 1 6 0 5 5 0 0 0 6 0\",\n key: \"mjntcy\"\n }\n ]\n];\nconst GlassWater = createLucideIcon(\"glass-water\", __iconNode$dS);\nconst __iconNode$dR = [\n [\n \"circle\",\n {\n cx: \"6\",\n cy: \"15\",\n r: \"4\",\n key: \"vux9w4\"\n }\n ],\n [\n \"circle\",\n {\n cx: \"18\",\n cy: \"15\",\n r: \"4\",\n key: \"18o8ve\"\n }\n ],\n [\n \"path\",\n {\n d: \"M14 15a2 2 0 0 0-2-2 2 2 0 0 0-2 2\",\n key: \"1ag4bs\"\n }\n ],\n [\n \"path\",\n {\n d: \"M2.5 13 5 7c.7-1.3 1.4-2 3-2\",\n key: \"1hm1gs\"\n }\n ],\n [\n \"path\",\n {\n d: \"M21.5 13 19 7c-.7-1.3-1.5-2-3-2\",\n key: \"1r31ai\"\n }\n ]\n];\nconst Glasses = createLucideIcon(\"glasses\", __iconNode$dR);\nconst __iconNode$dQ = [\n [\n \"path\",\n {\n d: \"M15.686 15A14.5 14.5 0 0 1 12 22a14.5 14.5 0 0 1 0-20 10 10 0 1 0 9.542 13\",\n key: \"qkt0x6\"\n }\n ],\n [\n \"path\",\n {\n d: \"M2 12h8.5\",\n key: \"ovaggd\"\n }\n ],\n [\n \"path\",\n {\n d: \"M20 6V4a2 2 0 1 0-4 0v2\",\n key: \"1of5e8\"\n }\n ],\n [\n \"rect\",\n {\n width: \"8\",\n height: \"5\",\n x: \"14\",\n y: \"6\",\n rx: \"1\",\n key: \"1fmf51\"\n }\n ]\n];\nconst GlobeLock = createLucideIcon(\"globe-lock\", __iconNode$dQ);\nconst __iconNode$dP = [\n [\n \"circle\",\n {\n cx: \"12\",\n cy: \"12\",\n r: \"10\",\n key: \"1mglay\"\n }\n ],\n [\n \"path\",\n {\n d: \"M12 2a14.5 14.5 0 0 0 0 20 14.5 14.5 0 0 0 0-20\",\n key: \"13o1zl\"\n }\n ],\n [\n \"path\",\n {\n d: \"M2 12h20\",\n key: \"9i4pu4\"\n }\n ]\n];\nconst Globe = createLucideIcon(\"globe\", __iconNode$dP);\nconst __iconNode$dO = [\n [\n \"path\",\n {\n d: \"M12 13V2l8 4-8 4\",\n key: \"5wlwwj\"\n }\n ],\n [\n \"path\",\n {\n d: \"M20.561 10.222a9 9 0 1 1-12.55-5.29\",\n key: \"1c0wjv\"\n }\n ],\n [\n \"path\",\n {\n d: \"M8.002 9.997a5 5 0 1 0 8.9 2.02\",\n key: \"gb1g7m\"\n }\n ]\n];\nconst Goal = createLucideIcon(\"goal\", __iconNode$dO);\nconst __iconNode$dN = [\n [\n \"path\",\n {\n d: \"M2 21V3\",\n key: \"1bzk4w\"\n }\n ],\n [\n \"path\",\n {\n d: \"M2 5h18a2 2 0 0 1 2 2v8a2 2 0 0 1-2 2H2.26\",\n key: \"1d64pi\"\n }\n ],\n [\n \"path\",\n {\n d: \"M7 17v3a1 1 0 0 0 1 1h5a1 1 0 0 0 1-1v-3\",\n key: \"5hbqbf\"\n }\n ],\n [\n \"circle\",\n {\n cx: \"16\",\n cy: \"11\",\n r: \"2\",\n key: \"qt15rb\"\n }\n ],\n [\n \"circle\",\n {\n cx: \"8\",\n cy: \"11\",\n r: \"2\",\n key: \"ssideg\"\n }\n ]\n];\nconst Gpu = createLucideIcon(\"gpu\", __iconNode$dN);\nconst __iconNode$dM = [\n [\n \"path\",\n {\n d: \"M18 11.5V9a2 2 0 0 0-2-2a2 2 0 0 0-2 2v1.4\",\n key: \"edstyy\"\n }\n ],\n [\n \"path\",\n {\n d: \"M14 10V8a2 2 0 0 0-2-2a2 2 0 0 0-2 2v2\",\n key: \"19wdwo\"\n }\n ],\n [\n \"path\",\n {\n d: \"M10 9.9V9a2 2 0 0 0-2-2a2 2 0 0 0-2 2v5\",\n key: \"1lugqo\"\n }\n ],\n [\n \"path\",\n {\n d: \"M6 14a2 2 0 0 0-2-2a2 2 0 0 0-2 2\",\n key: \"1hbeus\"\n }\n ],\n [\n \"path\",\n {\n d: \"M18 11a2 2 0 1 1 4 0v3a8 8 0 0 1-8 8h-4a8 8 0 0 1-8-8 2 2 0 1 1 4 0\",\n key: \"1etffm\"\n }\n ]\n];\nconst Grab = createLucideIcon(\"grab\", __iconNode$dM);\nconst __iconNode$dL = [\n [\n \"path\",\n {\n d: \"M21.42 10.922a1 1 0 0 0-.019-1.838L12.83 5.18a2 2 0 0 0-1.66 0L2.6 9.08a1 1 0 0 0 0 1.832l8.57 3.908a2 2 0 0 0 1.66 0z\",\n key: \"j76jl0\"\n }\n ],\n [\n \"path\",\n {\n d: \"M22 10v6\",\n key: \"1lu8f3\"\n }\n ],\n [\n \"path\",\n {\n d: \"M6 12.5V16a6 3 0 0 0 12 0v-3.5\",\n key: \"1r8lef\"\n }\n ]\n];\nconst GraduationCap = createLucideIcon(\"graduation-cap\", __iconNode$dL);\nconst __iconNode$dK = [\n [\n \"path\",\n {\n d: \"M22 5V2l-5.89 5.89\",\n key: \"1eenpo\"\n }\n ],\n [\n \"circle\",\n {\n cx: \"16.6\",\n cy: \"15.89\",\n r: \"3\",\n key: \"xjtalx\"\n }\n ],\n [\n \"circle\",\n {\n cx: \"8.11\",\n cy: \"7.4\",\n r: \"3\",\n key: \"u2fv6i\"\n }\n ],\n [\n \"circle\",\n {\n cx: \"12.35\",\n cy: \"11.65\",\n r: \"3\",\n key: \"i6i8g7\"\n }\n ],\n [\n \"circle\",\n {\n cx: \"13.91\",\n cy: \"5.85\",\n r: \"3\",\n key: \"6ye0dv\"\n }\n ],\n [\n \"circle\",\n {\n cx: \"18.15\",\n cy: \"10.09\",\n r: \"3\",\n key: \"snx9no\"\n }\n ],\n [\n \"circle\",\n {\n cx: \"6.56\",\n cy: \"13.2\",\n r: \"3\",\n key: \"17x4xg\"\n }\n ],\n [\n \"circle\",\n {\n cx: \"10.8\",\n cy: \"17.44\",\n r: \"3\",\n key: \"1hogw9\"\n }\n ],\n [\n \"circle\",\n {\n cx: \"5\",\n cy: \"19\",\n r: \"3\",\n key: \"1sn6vo\"\n }\n ]\n];\nconst Grape = createLucideIcon(\"grape\", __iconNode$dK);\nconst __iconNode$dJ = [\n [\n \"path\",\n {\n d: \"M12 3v17a1 1 0 0 1-1 1H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2v6a1 1 0 0 1-1 1H3\",\n key: \"11za1p\"\n }\n ],\n [\n \"path\",\n {\n d: \"m16 19 2 2 4-4\",\n key: \"1b14m6\"\n }\n ]\n];\nconst Grid2x2Check = createLucideIcon(\"grid-2x2-check\", __iconNode$dJ);\nconst __iconNode$dI = [\n [\n \"path\",\n {\n d: \"M12 3v17a1 1 0 0 1-1 1H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2v6a1 1 0 0 1-1 1H3\",\n key: \"11za1p\"\n }\n ],\n [\n \"path\",\n {\n d: \"M16 19h6\",\n key: \"xwg31i\"\n }\n ],\n [\n \"path\",\n {\n d: \"M19 22v-6\",\n key: \"qhmiwi\"\n }\n ]\n];\nconst Grid2x2Plus = createLucideIcon(\"grid-2x2-plus\", __iconNode$dI);\nconst __iconNode$dH = [\n [\n \"path\",\n {\n d: \"M12 3v17a1 1 0 0 1-1 1H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2v6a1 1 0 0 1-1 1H3\",\n key: \"11za1p\"\n }\n ],\n [\n \"path\",\n {\n d: \"m16 16 5 5\",\n key: \"8tpb07\"\n }\n ],\n [\n \"path\",\n {\n d: \"m16 21 5-5\",\n key: \"193jll\"\n }\n ]\n];\nconst Grid2x2X = createLucideIcon(\"grid-2x2-x\", __iconNode$dH);\nconst __iconNode$dG = [\n [\n \"path\",\n {\n d: \"M12 3v18\",\n key: \"108xh3\"\n }\n ],\n [\n \"path\",\n {\n d: \"M3 12h18\",\n key: \"1i2n21\"\n }\n ],\n [\n \"rect\",\n {\n x: \"3\",\n y: \"3\",\n width: \"18\",\n height: \"18\",\n rx: \"2\",\n key: \"h1oib\"\n }\n ]\n];\nconst Grid2x2 = createLucideIcon(\"grid-2x2\", __iconNode$dG);\nconst __iconNode$dF = [\n [\n \"path\",\n {\n d: \"M15 3v18\",\n key: \"14nvp0\"\n }\n ],\n [\n \"path\",\n {\n d: \"M3 12h18\",\n key: \"1i2n21\"\n }\n ],\n [\n \"path\",\n {\n d: \"M9 3v18\",\n key: \"fh3hqa\"\n }\n ],\n [\n \"rect\",\n {\n x: \"3\",\n y: \"3\",\n width: \"18\",\n height: \"18\",\n rx: \"2\",\n key: \"h1oib\"\n }\n ]\n];\nconst Grid3x2 = createLucideIcon(\"grid-3x2\", __iconNode$dF);\nconst __iconNode$dE = [\n [\n \"rect\",\n {\n width: \"18\",\n height: \"18\",\n x: \"3\",\n y: \"3\",\n rx: \"2\",\n key: \"afitv7\"\n }\n ],\n [\n \"path\",\n {\n d: \"M3 9h18\",\n key: \"1pudct\"\n }\n ],\n [\n \"path\",\n {\n d: \"M3 15h18\",\n key: \"5xshup\"\n }\n ],\n [\n \"path\",\n {\n d: \"M9 3v18\",\n key: \"fh3hqa\"\n }\n ],\n [\n \"path\",\n {\n d: \"M15 3v18\",\n key: \"14nvp0\"\n }\n ]\n];\nconst Grid3x3 = createLucideIcon(\"grid-3x3\", __iconNode$dE);\nconst __iconNode$dD = [\n [\n \"circle\",\n {\n cx: \"12\",\n cy: \"9\",\n r: \"1\",\n key: \"124mty\"\n }\n ],\n [\n \"circle\",\n {\n cx: \"19\",\n cy: \"9\",\n r: \"1\",\n key: \"1ruzo2\"\n }\n ],\n [\n \"circle\",\n {\n cx: \"5\",\n cy: \"9\",\n r: \"1\",\n key: \"1a8b28\"\n }\n ],\n [\n \"circle\",\n {\n cx: \"12\",\n cy: \"15\",\n r: \"1\",\n key: \"1e56xg\"\n }\n ],\n [\n \"circle\",\n {\n cx: \"19\",\n cy: \"15\",\n r: \"1\",\n key: \"1a92ep\"\n }\n ],\n [\n \"circle\",\n {\n cx: \"5\",\n cy: \"15\",\n r: \"1\",\n key: \"5r1jwy\"\n }\n ]\n];\nconst GripHorizontal = createLucideIcon(\"grip-horizontal\", __iconNode$dD);\nconst __iconNode$dC = [\n [\n \"circle\",\n {\n cx: \"9\",\n cy: \"12\",\n r: \"1\",\n key: \"1vctgf\"\n }\n ],\n [\n \"circle\",\n {\n cx: \"9\",\n cy: \"5\",\n r: \"1\",\n key: \"hp0tcf\"\n }\n ],\n [\n \"circle\",\n {\n cx: \"9\",\n cy: \"19\",\n r: \"1\",\n key: \"fkjjf6\"\n }\n ],\n [\n \"circle\",\n {\n cx: \"15\",\n cy: \"12\",\n r: \"1\",\n key: \"1tmaij\"\n }\n ],\n [\n \"circle\",\n {\n cx: \"15\",\n cy: \"5\",\n r: \"1\",\n key: \"19l28e\"\n }\n ],\n [\n \"circle\",\n {\n cx: \"15\",\n cy: \"19\",\n r: \"1\",\n key: \"f4zoj3\"\n }\n ]\n];\nconst GripVertical = createLucideIcon(\"grip-vertical\", __iconNode$dC);\nconst __iconNode$dB = [\n [\n \"circle\",\n {\n cx: \"12\",\n cy: \"5\",\n r: \"1\",\n key: \"gxeob9\"\n }\n ],\n [\n \"circle\",\n {\n cx: \"19\",\n cy: \"5\",\n r: \"1\",\n key: \"w8mnmm\"\n }\n ],\n [\n \"circle\",\n {\n cx: \"5\",\n cy: \"5\",\n r: \"1\",\n key: \"lttvr7\"\n }\n ],\n [\n \"circle\",\n {\n cx: \"12\",\n cy: \"12\",\n r: \"1\",\n key: \"41hilf\"\n }\n ],\n [\n \"circle\",\n {\n cx: \"19\",\n cy: \"12\",\n r: \"1\",\n key: \"1wjl8i\"\n }\n ],\n [\n \"circle\",\n {\n cx: \"5\",\n cy: \"12\",\n r: \"1\",\n key: \"1pcz8c\"\n }\n ],\n [\n \"circle\",\n {\n cx: \"12\",\n cy: \"19\",\n r: \"1\",\n key: \"lyex9k\"\n }\n ],\n [\n \"circle\",\n {\n cx: \"19\",\n cy: \"19\",\n r: \"1\",\n key: \"shf9b7\"\n }\n ],\n [\n \"circle\",\n {\n cx: \"5\",\n cy: \"19\",\n r: \"1\",\n key: \"bfqh0e\"\n }\n ]\n];\nconst Grip = createLucideIcon(\"grip\", __iconNode$dB);\nconst __iconNode$dA = [\n [\n \"path\",\n {\n d: \"m11.9 12.1 4.514-4.514\",\n key: \"109xqo\"\n }\n ],\n [\n \"path\",\n {\n d: \"M20.1 2.3a1 1 0 0 0-1.4 0l-1.114 1.114A2 2 0 0 0 17 4.828v1.344a2 2 0 0 1-.586 1.414A2 2 0 0 1 17.828 7h1.344a2 2 0 0 0 1.414-.586L21.7 5.3a1 1 0 0 0 0-1.4z\",\n key: \"txyc8t\"\n }\n ],\n [\n \"path\",\n {\n d: \"m6 16 2 2\",\n key: \"16qmzd\"\n }\n ],\n [\n \"path\",\n {\n d: \"M8.23 9.85A3 3 0 0 1 11 8a5 5 0 0 1 5 5 3 3 0 0 1-1.85 2.77l-.92.38A2 2 0 0 0 12 18a4 4 0 0 1-4 4 6 6 0 0 1-6-6 4 4 0 0 1 4-4 2 2 0 0 0 1.85-1.23z\",\n key: \"1de1vg\"\n }\n ]\n];\nconst Guitar = createLucideIcon(\"guitar\", __iconNode$dA);\nconst __iconNode$dz = [\n [\n \"path\",\n {\n d: \"M3 7V5c0-1.1.9-2 2-2h2\",\n key: \"adw53z\"\n }\n ],\n [\n \"path\",\n {\n d: \"M17 3h2c1.1 0 2 .9 2 2v2\",\n key: \"an4l38\"\n }\n ],\n [\n \"path\",\n {\n d: \"M21 17v2c0 1.1-.9 2-2 2h-2\",\n key: \"144t0e\"\n }\n ],\n [\n \"path\",\n {\n d: \"M7 21H5c-1.1 0-2-.9-2-2v-2\",\n key: \"rtnfgi\"\n }\n ],\n [\n \"rect\",\n {\n width: \"7\",\n height: \"5\",\n x: \"7\",\n y: \"7\",\n rx: \"1\",\n key: \"1eyiv7\"\n }\n ],\n [\n \"rect\",\n {\n width: \"7\",\n height: \"5\",\n x: \"10\",\n y: \"12\",\n rx: \"1\",\n key: \"1qlmkx\"\n }\n ]\n];\nconst Group = createLucideIcon(\"group\", __iconNode$dz);\nconst __iconNode$dy = [\n [\n \"path\",\n {\n d: \"M13.144 21.144A7.274 10.445 45 1 0 2.856 10.856\",\n key: \"1k1t7q\"\n }\n ],\n [\n \"path\",\n {\n d: \"M13.144 21.144A7.274 4.365 45 0 0 2.856 10.856a7.274 4.365 45 0 0 10.288 10.288\",\n key: \"153t1g\"\n }\n ],\n [\n \"path\",\n {\n d: \"M16.565 10.435 18.6 8.4a2.501 2.501 0 1 0 1.65-4.65 2.5 2.5 0 1 0-4.66 1.66l-2.024 2.025\",\n key: \"gzrt0n\"\n }\n ],\n [\n \"path\",\n {\n d: \"m8.5 16.5-1-1\",\n key: \"otr954\"\n }\n ]\n];\nconst Ham = createLucideIcon(\"ham\", __iconNode$dy);\nconst __iconNode$dx = [\n [\n \"path\",\n {\n d: \"M12 16H4a2 2 0 1 1 0-4h16a2 2 0 1 1 0 4h-4.25\",\n key: \"5dloqd\"\n }\n ],\n [\n \"path\",\n {\n d: \"M5 12a2 2 0 0 1-2-2 9 7 0 0 1 18 0 2 2 0 0 1-2 2\",\n key: \"1vl3my\"\n }\n ],\n [\n \"path\",\n {\n d: \"M5 16a2 2 0 0 0-2 2 3 3 0 0 0 3 3h12a3 3 0 0 0 3-3 2 2 0 0 0-2-2q0 0 0 0\",\n key: \"1us75o\"\n }\n ],\n [\n \"path\",\n {\n d: \"m6.67 12 6.13 4.6a2 2 0 0 0 2.8-.4l3.15-4.2\",\n key: \"qqzweh\"\n }\n ]\n];\nconst Hamburger = createLucideIcon(\"hamburger\", __iconNode$dx);\nconst __iconNode$dw = [\n [\n \"path\",\n {\n d: \"m15 12-8.373 8.373a1 1 0 1 1-3-3L12 9\",\n key: \"eefl8a\"\n }\n ],\n [\n \"path\",\n {\n d: \"m18 15 4-4\",\n key: \"16gjal\"\n }\n ],\n [\n \"path\",\n {\n d: \"m21.5 11.5-1.914-1.914A2 2 0 0 1 19 8.172V7l-2.26-2.26a6 6 0 0 0-4.202-1.756L9 2.96l.92.82A6.18 6.18 0 0 1 12 8.4V10l2 2h1.172a2 2 0 0 1 1.414.586L18.5 14.5\",\n key: \"b7pghm\"\n }\n ]\n];\nconst Hammer = createLucideIcon(\"hammer\", __iconNode$dw);\nconst __iconNode$dv = [\n [\n \"path\",\n {\n d: \"M11 15h2a2 2 0 1 0 0-4h-3c-.6 0-1.1.2-1.4.6L3 17\",\n key: \"geh8rc\"\n }\n ],\n [\n \"path\",\n {\n d: \"m7 21 1.6-1.4c.3-.4.8-.6 1.4-.6h4c1.1 0 2.1-.4 2.8-1.2l4.6-4.4a2 2 0 0 0-2.75-2.91l-4.2 3.9\",\n key: \"1fto5m\"\n }\n ],\n [\n \"path\",\n {\n d: \"m2 16 6 6\",\n key: \"1pfhp9\"\n }\n ],\n [\n \"circle\",\n {\n cx: \"16\",\n cy: \"9\",\n r: \"2.9\",\n key: \"1n0dlu\"\n }\n ],\n [\n \"circle\",\n {\n cx: \"6\",\n cy: \"5\",\n r: \"3\",\n key: \"151irh\"\n }\n ]\n];\nconst HandCoins = createLucideIcon(\"hand-coins\", __iconNode$dv);\nconst __iconNode$du = [\n [\n \"path\",\n {\n d: \"M11 14h2a2 2 0 1 0 0-4h-3c-.6 0-1.1.2-1.4.6L3 16\",\n key: \"1ifwr1\"\n }\n ],\n [\n \"path\",\n {\n d: \"m7 20 1.6-1.4c.3-.4.8-.6 1.4-.6h4c1.1 0 2.1-.4 2.8-1.2l4.6-4.4a2 2 0 0 0-2.75-2.91l-4.2 3.9\",\n key: \"17abbs\"\n }\n ],\n [\n \"path\",\n {\n d: \"m2 15 6 6\",\n key: \"10dquu\"\n }\n ],\n [\n \"path\",\n {\n d: \"M19.5 8.5c.7-.7 1.5-1.6 1.5-2.7A2.73 2.73 0 0 0 16 4a2.78 2.78 0 0 0-5 1.8c0 1.2.8 2 1.5 2.8L16 12Z\",\n key: \"1h3036\"\n }\n ]\n];\nconst HandHeart = createLucideIcon(\"hand-heart\", __iconNode$du);\nconst __iconNode$dt = [\n [\n \"path\",\n {\n d: \"M11 12h2a2 2 0 1 0 0-4h-3c-.6 0-1.1.2-1.4.6L3 14\",\n key: \"1j4xps\"\n }\n ],\n [\n \"path\",\n {\n d: \"m7 18 1.6-1.4c.3-.4.8-.6 1.4-.6h4c1.1 0 2.1-.4 2.8-1.2l4.6-4.4a2 2 0 0 0-2.75-2.91l-4.2 3.9\",\n key: \"uospg8\"\n }\n ],\n [\n \"path\",\n {\n d: \"m2 13 6 6\",\n key: \"16e5sb\"\n }\n ]\n];\nconst HandHelping = createLucideIcon(\"hand-helping\", __iconNode$dt);\nconst __iconNode$ds = [\n [\n \"path\",\n {\n d: \"M18 12.5V10a2 2 0 0 0-2-2a2 2 0 0 0-2 2v1.4\",\n key: \"wc6myp\"\n }\n ],\n [\n \"path\",\n {\n d: \"M14 11V9a2 2 0 1 0-4 0v2\",\n key: \"94qvcw\"\n }\n ],\n [\n \"path\",\n {\n d: \"M10 10.5V5a2 2 0 1 0-4 0v9\",\n key: \"m1ah89\"\n }\n ],\n [\n \"path\",\n {\n d: \"m7 15-1.76-1.76a2 2 0 0 0-2.83 2.82l3.6 3.6C7.5 21.14 9.2 22 12 22h2a8 8 0 0 0 8-8V7a2 2 0 1 0-4 0v5\",\n key: \"t1skq1\"\n }\n ]\n];\nconst HandMetal = createLucideIcon(\"hand-metal\", __iconNode$ds);\nconst __iconNode$dr = [\n [\n \"path\",\n {\n d: \"M12 3V2\",\n key: \"ar7q03\"\n }\n ],\n [\n \"path\",\n {\n d: \"m15.4 17.4 3.2-2.8a2 2 0 1 1 2.8 2.9l-3.6 3.3c-.7.8-1.7 1.2-2.8 1.2h-4c-1.1 0-2.1-.4-2.8-1.2l-1.302-1.464A1 1 0 0 0 6.151 19H5\",\n key: \"n2g93r\"\n }\n ],\n [\n \"path\",\n {\n d: \"M2 14h12a2 2 0 0 1 0 4h-2\",\n key: \"1o2jem\"\n }\n ],\n [\n \"path\",\n {\n d: \"M4 10h16\",\n key: \"img6z1\"\n }\n ],\n [\n \"path\",\n {\n d: \"M5 10a7 7 0 0 1 14 0\",\n key: \"1ega1o\"\n }\n ],\n [\n \"path\",\n {\n d: \"M5 14v6a1 1 0 0 1-1 1H2\",\n key: \"1hescx\"\n }\n ]\n];\nconst HandPlatter = createLucideIcon(\"hand-platter\", __iconNode$dr);\nconst __iconNode$dq = [\n [\n \"path\",\n {\n d: \"M18 11V6a2 2 0 0 0-2-2a2 2 0 0 0-2 2\",\n key: \"1fvzgz\"\n }\n ],\n [\n \"path\",\n {\n d: \"M14 10V4a2 2 0 0 0-2-2a2 2 0 0 0-2 2v2\",\n key: \"1kc0my\"\n }\n ],\n [\n \"path\",\n {\n d: \"M10 10.5V6a2 2 0 0 0-2-2a2 2 0 0 0-2 2v8\",\n key: \"10h0bg\"\n }\n ],\n [\n \"path\",\n {\n d: \"M18 8a2 2 0 1 1 4 0v6a8 8 0 0 1-8 8h-2c-2.8 0-4.5-.86-5.99-2.34l-3.6-3.6a2 2 0 0 1 2.83-2.82L7 15\",\n key: \"1s1gnw\"\n }\n ]\n];\nconst Hand = createLucideIcon(\"hand\", __iconNode$dq);\nconst __iconNode$dp = [\n [\n \"path\",\n {\n d: \"m11 17 2 2a1 1 0 1 0 3-3\",\n key: \"efffak\"\n }\n ],\n [\n \"path\",\n {\n d: \"m14 14 2.5 2.5a1 1 0 1 0 3-3l-3.88-3.88a3 3 0 0 0-4.24 0l-.88.88a1 1 0 1 1-3-3l2.81-2.81a5.79 5.79 0 0 1 7.06-.87l.47.28a2 2 0 0 0 1.42.25L21 4\",\n key: \"9pr0kb\"\n }\n ],\n [\n \"path\",\n {\n d: \"m21 3 1 11h-2\",\n key: \"1tisrp\"\n }\n ],\n [\n \"path\",\n {\n d: \"M3 3 2 14l6.5 6.5a1 1 0 1 0 3-3\",\n key: \"1uvwmv\"\n }\n ],\n [\n \"path\",\n {\n d: \"M3 4h8\",\n key: \"1ep09j\"\n }\n ]\n];\nconst Handshake = createLucideIcon(\"handshake\", __iconNode$dp);\nconst __iconNode$do = [\n [\n \"path\",\n {\n d: \"M12 2v8\",\n key: \"1q4o3n\"\n }\n ],\n [\n \"path\",\n {\n d: \"m16 6-4 4-4-4\",\n key: \"6wukr\"\n }\n ],\n [\n \"rect\",\n {\n width: \"20\",\n height: \"8\",\n x: \"2\",\n y: \"14\",\n rx: \"2\",\n key: \"w68u3i\"\n }\n ],\n [\n \"path\",\n {\n d: \"M6 18h.01\",\n key: \"uhywen\"\n }\n ],\n [\n \"path\",\n {\n d: \"M10 18h.01\",\n key: \"h775k\"\n }\n ]\n];\nconst HardDriveDownload = createLucideIcon(\"hard-drive-download\", __iconNode$do);\nconst __iconNode$dn = [\n [\n \"path\",\n {\n d: \"m16 6-4-4-4 4\",\n key: \"13yo43\"\n }\n ],\n [\n \"path\",\n {\n d: \"M12 2v8\",\n key: \"1q4o3n\"\n }\n ],\n [\n \"rect\",\n {\n width: \"20\",\n height: \"8\",\n x: \"2\",\n y: \"14\",\n rx: \"2\",\n key: \"w68u3i\"\n }\n ],\n [\n \"path\",\n {\n d: \"M6 18h.01\",\n key: \"uhywen\"\n }\n ],\n [\n \"path\",\n {\n d: \"M10 18h.01\",\n key: \"h775k\"\n }\n ]\n];\nconst HardDriveUpload = createLucideIcon(\"hard-drive-upload\", __iconNode$dn);\nconst __iconNode$dm = [\n [\n \"line\",\n {\n x1: \"22\",\n x2: \"2\",\n y1: \"12\",\n y2: \"12\",\n key: \"1y58io\"\n }\n ],\n [\n \"path\",\n {\n d: \"M5.45 5.11 2 12v6a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2v-6l-3.45-6.89A2 2 0 0 0 16.76 4H7.24a2 2 0 0 0-1.79 1.11z\",\n key: \"oot6mr\"\n }\n ],\n [\n \"line\",\n {\n x1: \"6\",\n x2: \"6.01\",\n y1: \"16\",\n y2: \"16\",\n key: \"sgf278\"\n }\n ],\n [\n \"line\",\n {\n x1: \"10\",\n x2: \"10.01\",\n y1: \"16\",\n y2: \"16\",\n key: \"1l4acy\"\n }\n ]\n];\nconst HardDrive = createLucideIcon(\"hard-drive\", __iconNode$dm);\nconst __iconNode$dl = [\n [\n \"path\",\n {\n d: \"M10 10V5a1 1 0 0 1 1-1h2a1 1 0 0 1 1 1v5\",\n key: \"1p9q5i\"\n }\n ],\n [\n \"path\",\n {\n d: \"M14 6a6 6 0 0 1 6 6v3\",\n key: \"1hnv84\"\n }\n ],\n [\n \"path\",\n {\n d: \"M4 15v-3a6 6 0 0 1 6-6\",\n key: \"9ciidu\"\n }\n ],\n [\n \"rect\",\n {\n x: \"2\",\n y: \"15\",\n width: \"20\",\n height: \"4\",\n rx: \"1\",\n key: \"g3x8cw\"\n }\n ]\n];\nconst HardHat = createLucideIcon(\"hard-hat\", __iconNode$dl);\nconst __iconNode$dk = [\n [\n \"line\",\n {\n x1: \"4\",\n x2: \"20\",\n y1: \"9\",\n y2: \"9\",\n key: \"4lhtct\"\n }\n ],\n [\n \"line\",\n {\n x1: \"4\",\n x2: \"20\",\n y1: \"15\",\n y2: \"15\",\n key: \"vyu0kd\"\n }\n ],\n [\n \"line\",\n {\n x1: \"10\",\n x2: \"8\",\n y1: \"3\",\n y2: \"21\",\n key: \"1ggp8o\"\n }\n ],\n [\n \"line\",\n {\n x1: \"16\",\n x2: \"14\",\n y1: \"3\",\n y2: \"21\",\n key: \"weycgp\"\n }\n ]\n];\nconst Hash = createLucideIcon(\"hash\", __iconNode$dk);\nconst __iconNode$dj = [\n [\n \"path\",\n {\n d: \"m5.2 6.2 1.4 1.4\",\n key: \"17imol\"\n }\n ],\n [\n \"path\",\n {\n d: \"M2 13h2\",\n key: \"13gyu8\"\n }\n ],\n [\n \"path\",\n {\n d: \"M20 13h2\",\n key: \"16rner\"\n }\n ],\n [\n \"path\",\n {\n d: \"m17.4 7.6 1.4-1.4\",\n key: \"t4xlah\"\n }\n ],\n [\n \"path\",\n {\n d: \"M22 17H2\",\n key: \"1gtaj3\"\n }\n ],\n [\n \"path\",\n {\n d: \"M22 21H2\",\n key: \"1gy6en\"\n }\n ],\n [\n \"path\",\n {\n d: \"M16 13a4 4 0 0 0-8 0\",\n key: \"1dyczq\"\n }\n ],\n [\n \"path\",\n {\n d: \"M12 5V2.5\",\n key: \"1vytko\"\n }\n ]\n];\nconst Haze = createLucideIcon(\"haze\", __iconNode$dj);\nconst __iconNode$di = [\n [\n \"path\",\n {\n d: \"M22 9a1 1 0 0 0-1-1H3a1 1 0 0 0-1 1v4a1 1 0 0 0 1 1h1l2 2h12l2-2h1a1 1 0 0 0 1-1Z\",\n key: \"2128wb\"\n }\n ],\n [\n \"path\",\n {\n d: \"M7.5 12h9\",\n key: \"1t0ckc\"\n }\n ]\n];\nconst HdmiPort = createLucideIcon(\"hdmi-port\", __iconNode$di);\nconst __iconNode$dh = [\n [\n \"path\",\n {\n d: \"M4 12h8\",\n key: \"17cfdx\"\n }\n ],\n [\n \"path\",\n {\n d: \"M4 18V6\",\n key: \"1rz3zl\"\n }\n ],\n [\n \"path\",\n {\n d: \"M12 18V6\",\n key: \"zqpxq5\"\n }\n ],\n [\n \"path\",\n {\n d: \"m17 12 3-2v8\",\n key: \"1hhhft\"\n }\n ]\n];\nconst Heading1 = createLucideIcon(\"heading-1\", __iconNode$dh);\nconst __iconNode$dg = [\n [\n \"path\",\n {\n d: \"M4 12h8\",\n key: \"17cfdx\"\n }\n ],\n [\n \"path\",\n {\n d: \"M4 18V6\",\n key: \"1rz3zl\"\n }\n ],\n [\n \"path\",\n {\n d: \"M12 18V6\",\n key: \"zqpxq5\"\n }\n ],\n [\n \"path\",\n {\n d: \"M21 18h-4c0-4 4-3 4-6 0-1.5-2-2.5-4-1\",\n key: \"9jr5yi\"\n }\n ]\n];\nconst Heading2 = createLucideIcon(\"heading-2\", __iconNode$dg);\nconst __iconNode$df = [\n [\n \"path\",\n {\n d: \"M4 12h8\",\n key: \"17cfdx\"\n }\n ],\n [\n \"path\",\n {\n d: \"M4 18V6\",\n key: \"1rz3zl\"\n }\n ],\n [\n \"path\",\n {\n d: \"M12 18V6\",\n key: \"zqpxq5\"\n }\n ],\n [\n \"path\",\n {\n d: \"M17.5 10.5c1.7-1 3.5 0 3.5 1.5a2 2 0 0 1-2 2\",\n key: \"68ncm8\"\n }\n ],\n [\n \"path\",\n {\n d: \"M17 17.5c2 1.5 4 .3 4-1.5a2 2 0 0 0-2-2\",\n key: \"1ejuhz\"\n }\n ]\n];\nconst Heading3 = createLucideIcon(\"heading-3\", __iconNode$df);\nconst __iconNode$de = [\n [\n \"path\",\n {\n d: \"M12 18V6\",\n key: \"zqpxq5\"\n }\n ],\n [\n \"path\",\n {\n d: \"M17 10v3a1 1 0 0 0 1 1h3\",\n key: \"tj5zdr\"\n }\n ],\n [\n \"path\",\n {\n d: \"M21 10v8\",\n key: \"1kdml4\"\n }\n ],\n [\n \"path\",\n {\n d: \"M4 12h8\",\n key: \"17cfdx\"\n }\n ],\n [\n \"path\",\n {\n d: \"M4 18V6\",\n key: \"1rz3zl\"\n }\n ]\n];\nconst Heading4 = createLucideIcon(\"heading-4\", __iconNode$de);\nconst __iconNode$dd = [\n [\n \"path\",\n {\n d: \"M4 12h8\",\n key: \"17cfdx\"\n }\n ],\n [\n \"path\",\n {\n d: \"M4 18V6\",\n key: \"1rz3zl\"\n }\n ],\n [\n \"path\",\n {\n d: \"M12 18V6\",\n key: \"zqpxq5\"\n }\n ],\n [\n \"path\",\n {\n d: \"M17 13v-3h4\",\n key: \"1nvgqp\"\n }\n ],\n [\n \"path\",\n {\n d: \"M17 17.7c.4.2.8.3 1.3.3 1.5 0 2.7-1.1 2.7-2.5S19.8 13 18.3 13H17\",\n key: \"2nebdn\"\n }\n ]\n];\nconst Heading5 = createLucideIcon(\"heading-5\", __iconNode$dd);\nconst __iconNode$dc = [\n [\n \"path\",\n {\n d: \"M4 12h8\",\n key: \"17cfdx\"\n }\n ],\n [\n \"path\",\n {\n d: \"M4 18V6\",\n key: \"1rz3zl\"\n }\n ],\n [\n \"path\",\n {\n d: \"M12 18V6\",\n key: \"zqpxq5\"\n }\n ],\n [\n \"circle\",\n {\n cx: \"19\",\n cy: \"16\",\n r: \"2\",\n key: \"15mx69\"\n }\n ],\n [\n \"path\",\n {\n d: \"M20 10c-2 2-3 3.5-3 6\",\n key: \"f35dl0\"\n }\n ]\n];\nconst Heading6 = createLucideIcon(\"heading-6\", __iconNode$dc);\nconst __iconNode$db = [\n [\n \"path\",\n {\n d: \"M6 12h12\",\n key: \"8npq4p\"\n }\n ],\n [\n \"path\",\n {\n d: \"M6 20V4\",\n key: \"1w1bmo\"\n }\n ],\n [\n \"path\",\n {\n d: \"M18 20V4\",\n key: \"o2hl4u\"\n }\n ]\n];\nconst Heading = createLucideIcon(\"heading\", __iconNode$db);\nconst __iconNode$da = [\n [\n \"path\",\n {\n d: \"M21 14h-1.343\",\n key: \"1jdnxi\"\n }\n ],\n [\n \"path\",\n {\n d: \"M9.128 3.47A9 9 0 0 1 21 12v3.343\",\n key: \"6kipu2\"\n }\n ],\n [\n \"path\",\n {\n d: \"m2 2 20 20\",\n key: \"1ooewy\"\n }\n ],\n [\n \"path\",\n {\n d: \"M20.414 20.414A2 2 0 0 1 19 21h-1a2 2 0 0 1-2-2v-3\",\n key: \"9x50f4\"\n }\n ],\n [\n \"path\",\n {\n d: \"M3 14h3a2 2 0 0 1 2 2v3a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-7a9 9 0 0 1 2.636-6.364\",\n key: \"1bkxnm\"\n }\n ]\n];\nconst HeadphoneOff = createLucideIcon(\"headphone-off\", __iconNode$da);\nconst __iconNode$d9 = [\n [\n \"path\",\n {\n d: \"M3 14h3a2 2 0 0 1 2 2v3a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-7a9 9 0 0 1 18 0v7a2 2 0 0 1-2 2h-1a2 2 0 0 1-2-2v-3a2 2 0 0 1 2-2h3\",\n key: \"1xhozi\"\n }\n ]\n];\nconst Headphones = createLucideIcon(\"headphones\", __iconNode$d9);\nconst __iconNode$d8 = [\n [\n \"path\",\n {\n d: \"M3 11h3a2 2 0 0 1 2 2v3a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-5Zm0 0a9 9 0 1 1 18 0m0 0v5a2 2 0 0 1-2 2h-1a2 2 0 0 1-2-2v-3a2 2 0 0 1 2-2h3Z\",\n key: \"12oyoe\"\n }\n ],\n [\n \"path\",\n {\n d: \"M21 16v2a4 4 0 0 1-4 4h-5\",\n key: \"1x7m43\"\n }\n ]\n];\nconst Headset = createLucideIcon(\"headset\", __iconNode$d8);\nconst __iconNode$d7 = [\n [\n \"path\",\n {\n d: \"M19 14c1.49-1.46 3-3.21 3-5.5A5.5 5.5 0 0 0 16.5 3c-1.76 0-3 .5-4.5 2-1.5-1.5-2.74-2-4.5-2A5.5 5.5 0 0 0 2 8.5c0 2.3 1.5 4.05 3 5.5l7 7Z\",\n key: \"c3ymky\"\n }\n ],\n [\n \"path\",\n {\n d: \"m12 13-1-1 2-2-3-3 2-2\",\n key: \"xjdxli\"\n }\n ]\n];\nconst HeartCrack = createLucideIcon(\"heart-crack\", __iconNode$d7);\nconst __iconNode$d6 = [\n [\n \"path\",\n {\n d: \"M19 14c1.49-1.46 3-3.21 3-5.5A5.5 5.5 0 0 0 16.5 3c-1.76 0-3 .5-4.5 2-1.5-1.5-2.74-2-4.5-2A5.5 5.5 0 0 0 2 8.5c0 2.3 1.5 4.05 3 5.5l7 7Z\",\n key: \"c3ymky\"\n }\n ],\n [\n \"path\",\n {\n d: \"M12 5 9.04 7.96a2.17 2.17 0 0 0 0 3.08c.82.82 2.13.85 3 .07l2.07-1.9a2.82 2.82 0 0 1 3.79 0l2.96 2.66\",\n key: \"4oyue0\"\n }\n ],\n [\n \"path\",\n {\n d: \"m18 15-2-2\",\n key: \"60u0ii\"\n }\n ],\n [\n \"path\",\n {\n d: \"m15 18-2-2\",\n key: \"6p76be\"\n }\n ]\n];\nconst HeartHandshake = createLucideIcon(\"heart-handshake\", __iconNode$d6);\nconst __iconNode$d5 = [\n [\n \"line\",\n {\n x1: \"2\",\n y1: \"2\",\n x2: \"22\",\n y2: \"22\",\n key: \"1w4vcy\"\n }\n ],\n [\n \"path\",\n {\n d: \"M16.5 16.5 12 21l-7-7c-1.5-1.45-3-3.2-3-5.5a5.5 5.5 0 0 1 2.14-4.35\",\n key: \"3mpagl\"\n }\n ],\n [\n \"path\",\n {\n d: \"M8.76 3.1c1.15.22 2.13.78 3.24 1.9 1.5-1.5 2.74-2 4.5-2A5.5 5.5 0 0 1 22 8.5c0 2.12-1.3 3.78-2.67 5.17\",\n key: \"1gh3v3\"\n }\n ]\n];\nconst HeartOff = createLucideIcon(\"heart-off\", __iconNode$d5);\nconst __iconNode$d4 = [\n [\n \"path\",\n {\n d: \"M13.5 19.5 12 21l-7-7c-1.5-1.45-3-3.2-3-5.5A5.5 5.5 0 0 1 7.5 3c1.76 0 3 .5 4.5 2 1.5-1.5 2.74-2 4.5-2a5.5 5.5 0 0 1 5.402 6.5\",\n key: \"vd0vy5\"\n }\n ],\n [\n \"path\",\n {\n d: \"M15 15h6\",\n key: \"1u4692\"\n }\n ]\n];\nconst HeartMinus = createLucideIcon(\"heart-minus\", __iconNode$d4);\nconst __iconNode$d3 = [\n [\n \"path\",\n {\n d: \"M13.5 19.5 12 21l-7-7c-1.5-1.45-3-3.2-3-5.5A5.5 5.5 0 0 1 7.5 3c1.76 0 3 .5 4.5 2 1.5-1.5 2.74-2 4.5-2a5.5 5.5 0 0 1 5.402 6.5\",\n key: \"vd0vy5\"\n }\n ],\n [\n \"path\",\n {\n d: \"M15 15h6\",\n key: \"1u4692\"\n }\n ],\n [\n \"path\",\n {\n d: \"M18 12v6\",\n key: \"1houu1\"\n }\n ]\n];\nconst HeartPlus = createLucideIcon(\"heart-plus\", __iconNode$d3);\nconst __iconNode$d2 = [\n [\n \"path\",\n {\n d: \"M19 14c1.49-1.46 3-3.21 3-5.5A5.5 5.5 0 0 0 16.5 3c-1.76 0-3 .5-4.5 2-1.5-1.5-2.74-2-4.5-2A5.5 5.5 0 0 0 2 8.5c0 2.3 1.5 4.05 3 5.5l7 7Z\",\n key: \"c3ymky\"\n }\n ],\n [\n \"path\",\n {\n d: \"M3.22 12H9.5l.5-1 2 4.5 2-7 1.5 3.5h5.27\",\n key: \"1uw2ng\"\n }\n ]\n];\nconst HeartPulse = createLucideIcon(\"heart-pulse\", __iconNode$d2);\nconst __iconNode$d1 = [\n [\n \"path\",\n {\n d: \"M19 14c1.49-1.46 3-3.21 3-5.5A5.5 5.5 0 0 0 16.5 3c-1.76 0-3 .5-4.5 2-1.5-1.5-2.74-2-4.5-2A5.5 5.5 0 0 0 2 8.5c0 2.3 1.5 4.05 3 5.5l7 7Z\",\n key: \"c3ymky\"\n }\n ]\n];\nconst Heart = createLucideIcon(\"heart\", __iconNode$d1);\nconst __iconNode$d0 = [\n [\n \"path\",\n {\n d: \"M11 8c2-3-2-3 0-6\",\n key: \"1ldv5m\"\n }\n ],\n [\n \"path\",\n {\n d: \"M15.5 8c2-3-2-3 0-6\",\n key: \"1otqoz\"\n }\n ],\n [\n \"path\",\n {\n d: \"M6 10h.01\",\n key: \"1lbq93\"\n }\n ],\n [\n \"path\",\n {\n d: \"M6 14h.01\",\n key: \"zudwn7\"\n }\n ],\n [\n \"path\",\n {\n d: \"M10 16v-4\",\n key: \"1c25yv\"\n }\n ],\n [\n \"path\",\n {\n d: \"M14 16v-4\",\n key: \"1dkbt8\"\n }\n ],\n [\n \"path\",\n {\n d: \"M18 16v-4\",\n key: \"1yg9me\"\n }\n ],\n [\n \"path\",\n {\n d: \"M20 6a2 2 0 0 1 2 2v10a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h3\",\n key: \"1ubg90\"\n }\n ],\n [\n \"path\",\n {\n d: \"M5 20v2\",\n key: \"1abpe8\"\n }\n ],\n [\n \"path\",\n {\n d: \"M19 20v2\",\n key: \"kqn6ft\"\n }\n ]\n];\nconst Heater = createLucideIcon(\"heater\", __iconNode$d0);\nconst __iconNode$c$ = [\n [\n \"path\",\n {\n d: \"M21 16V8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73l7 4a2 2 0 0 0 2 0l7-4A2 2 0 0 0 21 16z\",\n key: \"yt0hxn\"\n }\n ]\n];\nconst Hexagon = createLucideIcon(\"hexagon\", __iconNode$c$);\nconst __iconNode$c_ = [\n [\n \"path\",\n {\n d: \"m9 11-6 6v3h9l3-3\",\n key: \"1a3l36\"\n }\n ],\n [\n \"path\",\n {\n d: \"m22 12-4.6 4.6a2 2 0 0 1-2.8 0l-5.2-5.2a2 2 0 0 1 0-2.8L14 4\",\n key: \"14a9rk\"\n }\n ]\n];\nconst Highlighter = createLucideIcon(\"highlighter\", __iconNode$c_);\nconst __iconNode$cZ = [\n [\n \"path\",\n {\n d: \"M3 12a9 9 0 1 0 9-9 9.75 9.75 0 0 0-6.74 2.74L3 8\",\n key: \"1357e3\"\n }\n ],\n [\n \"path\",\n {\n d: \"M3 3v5h5\",\n key: \"1xhq8a\"\n }\n ],\n [\n \"path\",\n {\n d: \"M12 7v5l4 2\",\n key: \"1fdv2h\"\n }\n ]\n];\nconst History = createLucideIcon(\"history\", __iconNode$cZ);\nconst __iconNode$cY = [\n [\n \"path\",\n {\n d: \"M10.82 16.12c1.69.6 3.91.79 5.18.85.28.01.53-.09.7-.27\",\n key: \"qyzcap\"\n }\n ],\n [\n \"path\",\n {\n d: \"M11.14 20.57c.52.24 2.44 1.12 4.08 1.37.46.06.86-.25.9-.71.12-1.52-.3-3.43-.5-4.28\",\n key: \"y078lb\"\n }\n ],\n [\n \"path\",\n {\n d: \"M16.13 21.05c1.65.63 3.68.84 4.87.91a.9.9 0 0 0 .7-.26\",\n key: \"1utre3\"\n }\n ],\n [\n \"path\",\n {\n d: \"M17.99 5.52a20.83 20.83 0 0 1 3.15 4.5.8.8 0 0 1-.68 1.13c-1.17.1-2.5.02-3.9-.25\",\n key: \"17o9hm\"\n }\n ],\n [\n \"path\",\n {\n d: \"M20.57 11.14c.24.52 1.12 2.44 1.37 4.08.04.3-.08.59-.31.75\",\n key: \"1d1n4p\"\n }\n ],\n [\n \"path\",\n {\n d: \"M4.93 4.93a10 10 0 0 0-.67 13.4c.35.43.96.4 1.17-.12.69-1.71 1.07-5.07 1.07-6.71 1.34.45 3.1.9 4.88.62a.85.85 0 0 0 .48-.24\",\n key: \"9uv3tt\"\n }\n ],\n [\n \"path\",\n {\n d: \"M5.52 17.99c1.05.95 2.91 2.42 4.5 3.15a.8.8 0 0 0 1.13-.68c.2-2.34-.33-5.3-1.57-8.28\",\n key: \"1292wz\"\n }\n ],\n [\n \"path\",\n {\n d: \"M8.35 2.68a10 10 0 0 1 9.98 1.58c.43.35.4.96-.12 1.17-1.5.6-4.3.98-6.07 1.05\",\n key: \"7ozu9p\"\n }\n ],\n [\n \"path\",\n {\n d: \"m2 2 20 20\",\n key: \"1ooewy\"\n }\n ]\n];\nconst HopOff = createLucideIcon(\"hop-off\", __iconNode$cY);\nconst __iconNode$cX = [\n [\n \"path\",\n {\n d: \"M10.82 16.12c1.69.6 3.91.79 5.18.85.55.03 1-.42.97-.97-.06-1.27-.26-3.5-.85-5.18\",\n key: \"18lxf1\"\n }\n ],\n [\n \"path\",\n {\n d: \"M11.5 6.5c1.64 0 5-.38 6.71-1.07.52-.2.55-.82.12-1.17A10 10 0 0 0 4.26 18.33c.35.43.96.4 1.17-.12.69-1.71 1.07-5.07 1.07-6.71 1.34.45 3.1.9 4.88.62a.88.88 0 0 0 .73-.74c.3-2.14-.15-3.5-.61-4.88\",\n key: \"vtfxrw\"\n }\n ],\n [\n \"path\",\n {\n d: \"M15.62 16.95c.2.85.62 2.76.5 4.28a.77.77 0 0 1-.9.7 16.64 16.64 0 0 1-4.08-1.36\",\n key: \"13hl71\"\n }\n ],\n [\n \"path\",\n {\n d: \"M16.13 21.05c1.65.63 3.68.84 4.87.91a.9.9 0 0 0 .96-.96 17.68 17.68 0 0 0-.9-4.87\",\n key: \"1sl8oj\"\n }\n ],\n [\n \"path\",\n {\n d: \"M16.94 15.62c.86.2 2.77.62 4.29.5a.77.77 0 0 0 .7-.9 16.64 16.64 0 0 0-1.36-4.08\",\n key: \"19c6kt\"\n }\n ],\n [\n \"path\",\n {\n d: \"M17.99 5.52a20.82 20.82 0 0 1 3.15 4.5.8.8 0 0 1-.68 1.13c-2.33.2-5.3-.32-8.27-1.57\",\n key: \"85ghs3\"\n }\n ],\n [\n \"path\",\n {\n d: \"M4.93 4.93 3 3a.7.7 0 0 1 0-1\",\n key: \"x087yj\"\n }\n ],\n [\n \"path\",\n {\n d: \"M9.58 12.18c1.24 2.98 1.77 5.95 1.57 8.28a.8.8 0 0 1-1.13.68 20.82 20.82 0 0 1-4.5-3.15\",\n key: \"11xdqo\"\n }\n ]\n];\nconst Hop = createLucideIcon(\"hop\", __iconNode$cX);\nconst __iconNode$cW = [\n [\n \"path\",\n {\n d: \"M12 6v4\",\n key: \"16clxf\"\n }\n ],\n [\n \"path\",\n {\n d: \"M14 14h-4\",\n key: \"esezmu\"\n }\n ],\n [\n \"path\",\n {\n d: \"M14 18h-4\",\n key: \"16mqa2\"\n }\n ],\n [\n \"path\",\n {\n d: \"M14 8h-4\",\n key: \"z8ypaz\"\n }\n ],\n [\n \"path\",\n {\n d: \"M18 12h2a2 2 0 0 1 2 2v6a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2v-9a2 2 0 0 1 2-2h2\",\n key: \"b1k337\"\n }\n ],\n [\n \"path\",\n {\n d: \"M18 22V4a2 2 0 0 0-2-2H8a2 2 0 0 0-2 2v18\",\n key: \"16g51d\"\n }\n ]\n];\nconst Hospital = createLucideIcon(\"hospital\", __iconNode$cW);\nconst __iconNode$cV = [\n [\n \"path\",\n {\n d: \"M10 22v-6.57\",\n key: \"1wmca3\"\n }\n ],\n [\n \"path\",\n {\n d: \"M12 11h.01\",\n key: \"z322tv\"\n }\n ],\n [\n \"path\",\n {\n d: \"M12 7h.01\",\n key: \"1ivr5q\"\n }\n ],\n [\n \"path\",\n {\n d: \"M14 15.43V22\",\n key: \"1q2vjd\"\n }\n ],\n [\n \"path\",\n {\n d: \"M15 16a5 5 0 0 0-6 0\",\n key: \"o9wqvi\"\n }\n ],\n [\n \"path\",\n {\n d: \"M16 11h.01\",\n key: \"xkw8gn\"\n }\n ],\n [\n \"path\",\n {\n d: \"M16 7h.01\",\n key: \"1kdx03\"\n }\n ],\n [\n \"path\",\n {\n d: \"M8 11h.01\",\n key: \"1dfujw\"\n }\n ],\n [\n \"path\",\n {\n d: \"M8 7h.01\",\n key: \"1vti4s\"\n }\n ],\n [\n \"rect\",\n {\n x: \"4\",\n y: \"2\",\n width: \"16\",\n height: \"20\",\n rx: \"2\",\n key: \"1uxh74\"\n }\n ]\n];\nconst Hotel = createLucideIcon(\"hotel\", __iconNode$cV);\nconst __iconNode$cU = [\n [\n \"path\",\n {\n d: \"M5 22h14\",\n key: \"ehvnwv\"\n }\n ],\n [\n \"path\",\n {\n d: \"M5 2h14\",\n key: \"pdyrp9\"\n }\n ],\n [\n \"path\",\n {\n d: \"M17 22v-4.172a2 2 0 0 0-.586-1.414L12 12l-4.414 4.414A2 2 0 0 0 7 17.828V22\",\n key: \"1d314k\"\n }\n ],\n [\n \"path\",\n {\n d: \"M7 2v4.172a2 2 0 0 0 .586 1.414L12 12l4.414-4.414A2 2 0 0 0 17 6.172V2\",\n key: \"1vvvr6\"\n }\n ]\n];\nconst Hourglass = createLucideIcon(\"hourglass\", __iconNode$cU);\nconst __iconNode$cT = [\n [\n \"path\",\n {\n d: \"M10 12V8.964\",\n key: \"1vll13\"\n }\n ],\n [\n \"path\",\n {\n d: \"M14 12V8.964\",\n key: \"1x3qvg\"\n }\n ],\n [\n \"path\",\n {\n d: \"M15 12a1 1 0 0 1 1 1v2a2 2 0 0 1-2 2h-4a2 2 0 0 1-2-2v-2a1 1 0 0 1 1-1z\",\n key: \"ppykja\"\n }\n ],\n [\n \"path\",\n {\n d: \"M8.5 21H5a2 2 0 0 1-2-2v-9a2 2 0 0 1 .709-1.528l7-5.999a2 2 0 0 1 2.582 0l7 5.999A2 2 0 0 1 21 10v9a2 2 0 0 1-2 2h-5a2 2 0 0 1-2-2v-2\",\n key: \"1gvg2z\"\n }\n ]\n];\nconst HousePlug = createLucideIcon(\"house-plug\", __iconNode$cT);\nconst __iconNode$cS = [\n [\n \"path\",\n {\n d: \"M12.662 21H5a2 2 0 0 1-2-2v-9a2 2 0 0 1 .709-1.528l7-5.999a2 2 0 0 1 2.582 0l7 5.999A2 2 0 0 1 21 10v2.475\",\n key: \"uubd2h\"\n }\n ],\n [\n \"path\",\n {\n d: \"M14.959 12.717A1 1 0 0 0 14 12h-4a1 1 0 0 0-1 1v8\",\n key: \"p7f341\"\n }\n ],\n [\n \"path\",\n {\n d: \"M15 18h6\",\n key: \"3b3c90\"\n }\n ],\n [\n \"path\",\n {\n d: \"M18 15v6\",\n key: \"9wciyi\"\n }\n ]\n];\nconst HousePlus = createLucideIcon(\"house-plus\", __iconNode$cS);\nconst __iconNode$cR = [\n [\n \"path\",\n {\n d: \"M15 21v-8a1 1 0 0 0-1-1h-4a1 1 0 0 0-1 1v8\",\n key: \"5wwlr5\"\n }\n ],\n [\n \"path\",\n {\n d: \"M3 10a2 2 0 0 1 .709-1.528l7-5.999a2 2 0 0 1 2.582 0l7 5.999A2 2 0 0 1 21 10v9a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2z\",\n key: \"1d0kgt\"\n }\n ]\n];\nconst House = createLucideIcon(\"house\", __iconNode$cR);\nconst __iconNode$cQ = [\n [\n \"path\",\n {\n d: \"M9.5 13.866a4 4 0 0 1 5 .01\",\n key: \"1wy54i\"\n }\n ],\n [\n \"path\",\n {\n d: \"M12 17h.01\",\n key: \"p32p05\"\n }\n ],\n [\n \"path\",\n {\n d: \"M3 10a2 2 0 0 1 .709-1.528l7-5.999a2 2 0 0 1 2.582 0l7 5.999A2 2 0 0 1 21 10v9a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2z\",\n key: \"1d0kgt\"\n }\n ],\n [\n \"path\",\n {\n d: \"M7 10.754a8 8 0 0 1 10 0\",\n key: \"exoy2g\"\n }\n ]\n];\nconst HouseWifi = createLucideIcon(\"house-wifi\", __iconNode$cQ);\nconst __iconNode$cP = [\n [\n \"path\",\n {\n d: \"M12 17c5 0 8-2.69 8-6H4c0 3.31 3 6 8 6m-4 4h8m-4-3v3M5.14 11a3.5 3.5 0 1 1 6.71 0\",\n key: \"1uxfcu\"\n }\n ],\n [\n \"path\",\n {\n d: \"M12.14 11a3.5 3.5 0 1 1 6.71 0\",\n key: \"4k3m1s\"\n }\n ],\n [\n \"path\",\n {\n d: \"M15.5 6.5a3.5 3.5 0 1 0-7 0\",\n key: \"zmuahr\"\n }\n ]\n];\nconst IceCreamBowl = createLucideIcon(\"ice-cream-bowl\", __iconNode$cP);\nconst __iconNode$cO = [\n [\n \"path\",\n {\n d: \"m7 11 4.08 10.35a1 1 0 0 0 1.84 0L17 11\",\n key: \"1v6356\"\n }\n ],\n [\n \"path\",\n {\n d: \"M17 7A5 5 0 0 0 7 7\",\n key: \"151p3v\"\n }\n ],\n [\n \"path\",\n {\n d: \"M17 7a2 2 0 0 1 0 4H7a2 2 0 0 1 0-4\",\n key: \"1sdaij\"\n }\n ]\n];\nconst IceCreamCone = createLucideIcon(\"ice-cream-cone\", __iconNode$cO);\nconst __iconNode$cN = [\n [\n \"path\",\n {\n d: \"M13.5 8h-3\",\n key: \"xvov4w\"\n }\n ],\n [\n \"path\",\n {\n d: \"m15 2-1 2h3a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2h3\",\n key: \"16uttc\"\n }\n ],\n [\n \"path\",\n {\n d: \"M16.899 22A5 5 0 0 0 7.1 22\",\n key: \"1d0ppr\"\n }\n ],\n [\n \"path\",\n {\n d: \"m9 2 3 6\",\n key: \"1o7bd9\"\n }\n ],\n [\n \"circle\",\n {\n cx: \"12\",\n cy: \"15\",\n r: \"3\",\n key: \"g36mzq\"\n }\n ]\n];\nconst IdCardLanyard = createLucideIcon(\"id-card-lanyard\", __iconNode$cN);\nconst __iconNode$cM = [\n [\n \"path\",\n {\n d: \"M16 10h2\",\n key: \"8sgtl7\"\n }\n ],\n [\n \"path\",\n {\n d: \"M16 14h2\",\n key: \"epxaof\"\n }\n ],\n [\n \"path\",\n {\n d: \"M6.17 15a3 3 0 0 1 5.66 0\",\n key: \"n6f512\"\n }\n ],\n [\n \"circle\",\n {\n cx: \"9\",\n cy: \"11\",\n r: \"2\",\n key: \"yxgjnd\"\n }\n ],\n [\n \"rect\",\n {\n x: \"2\",\n y: \"5\",\n width: \"20\",\n height: \"14\",\n rx: \"2\",\n key: \"qneu4z\"\n }\n ]\n];\nconst IdCard = createLucideIcon(\"id-card\", __iconNode$cM);\nconst __iconNode$cL = [\n [\n \"path\",\n {\n d: \"M10.3 21H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2v10l-3.1-3.1a2 2 0 0 0-2.814.014L6 21\",\n key: \"9csbqa\"\n }\n ],\n [\n \"path\",\n {\n d: \"m14 19 3 3v-5.5\",\n key: \"9ldu5r\"\n }\n ],\n [\n \"path\",\n {\n d: \"m17 22 3-3\",\n key: \"1nkfve\"\n }\n ],\n [\n \"circle\",\n {\n cx: \"9\",\n cy: \"9\",\n r: \"2\",\n key: \"af1f0g\"\n }\n ]\n];\nconst ImageDown = createLucideIcon(\"image-down\", __iconNode$cL);\nconst __iconNode$cK = [\n [\n \"path\",\n {\n d: \"M21 9v10a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h7\",\n key: \"m87ecr\"\n }\n ],\n [\n \"line\",\n {\n x1: \"16\",\n x2: \"22\",\n y1: \"5\",\n y2: \"5\",\n key: \"ez7e4s\"\n }\n ],\n [\n \"circle\",\n {\n cx: \"9\",\n cy: \"9\",\n r: \"2\",\n key: \"af1f0g\"\n }\n ],\n [\n \"path\",\n {\n d: \"m21 15-3.086-3.086a2 2 0 0 0-2.828 0L6 21\",\n key: \"1xmnt7\"\n }\n ]\n];\nconst ImageMinus = createLucideIcon(\"image-minus\", __iconNode$cK);\nconst __iconNode$cJ = [\n [\n \"line\",\n {\n x1: \"2\",\n x2: \"22\",\n y1: \"2\",\n y2: \"22\",\n key: \"a6p6uj\"\n }\n ],\n [\n \"path\",\n {\n d: \"M10.41 10.41a2 2 0 1 1-2.83-2.83\",\n key: \"1bzlo9\"\n }\n ],\n [\n \"line\",\n {\n x1: \"13.5\",\n x2: \"6\",\n y1: \"13.5\",\n y2: \"21\",\n key: \"1q0aeu\"\n }\n ],\n [\n \"line\",\n {\n x1: \"18\",\n x2: \"21\",\n y1: \"12\",\n y2: \"15\",\n key: \"5mozeu\"\n }\n ],\n [\n \"path\",\n {\n d: \"M3.59 3.59A1.99 1.99 0 0 0 3 5v14a2 2 0 0 0 2 2h14c.55 0 1.052-.22 1.41-.59\",\n key: \"mmje98\"\n }\n ],\n [\n \"path\",\n {\n d: \"M21 15V5a2 2 0 0 0-2-2H9\",\n key: \"43el77\"\n }\n ]\n];\nconst ImageOff = createLucideIcon(\"image-off\", __iconNode$cJ);\nconst __iconNode$cI = [\n [\n \"path\",\n {\n d: \"m11 16-5 5\",\n key: \"j5f7ct\"\n }\n ],\n [\n \"path\",\n {\n d: \"M11 21H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2v6.5\",\n key: \"7s81lt\"\n }\n ],\n [\n \"path\",\n {\n d: \"M15.765 22a.5.5 0 0 1-.765-.424V13.38a.5.5 0 0 1 .765-.424l5.878 3.674a1 1 0 0 1 0 1.696z\",\n key: \"1omb6s\"\n }\n ],\n [\n \"circle\",\n {\n cx: \"9\",\n cy: \"9\",\n r: \"2\",\n key: \"af1f0g\"\n }\n ]\n];\nconst ImagePlay = createLucideIcon(\"image-play\", __iconNode$cI);\nconst __iconNode$cH = [\n [\n \"path\",\n {\n d: \"M16 5h6\",\n key: \"1vod17\"\n }\n ],\n [\n \"path\",\n {\n d: \"M19 2v6\",\n key: \"4bpg5p\"\n }\n ],\n [\n \"path\",\n {\n d: \"M21 11.5V19a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h7.5\",\n key: \"1ue2ih\"\n }\n ],\n [\n \"path\",\n {\n d: \"m21 15-3.086-3.086a2 2 0 0 0-2.828 0L6 21\",\n key: \"1xmnt7\"\n }\n ],\n [\n \"circle\",\n {\n cx: \"9\",\n cy: \"9\",\n r: \"2\",\n key: \"af1f0g\"\n }\n ]\n];\nconst ImagePlus = createLucideIcon(\"image-plus\", __iconNode$cH);\nconst __iconNode$cG = [\n [\n \"path\",\n {\n d: \"M10.3 21H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2v10l-3.1-3.1a2 2 0 0 0-2.814.014L6 21\",\n key: \"9csbqa\"\n }\n ],\n [\n \"path\",\n {\n d: \"m14 19.5 3-3 3 3\",\n key: \"9vmjn0\"\n }\n ],\n [\n \"path\",\n {\n d: \"M17 22v-5.5\",\n key: \"1aa6fl\"\n }\n ],\n [\n \"circle\",\n {\n cx: \"9\",\n cy: \"9\",\n r: \"2\",\n key: \"af1f0g\"\n }\n ]\n];\nconst ImageUp = createLucideIcon(\"image-up\", __iconNode$cG);\nconst __iconNode$cF = [\n [\n \"path\",\n {\n d: \"M16 3h5v5\",\n key: \"1806ms\"\n }\n ],\n [\n \"path\",\n {\n d: \"M17 21h2a2 2 0 0 0 2-2\",\n key: \"130fy9\"\n }\n ],\n [\n \"path\",\n {\n d: \"M21 12v3\",\n key: \"1wzk3p\"\n }\n ],\n [\n \"path\",\n {\n d: \"m21 3-5 5\",\n key: \"1g5oa7\"\n }\n ],\n [\n \"path\",\n {\n d: \"M3 7V5a2 2 0 0 1 2-2\",\n key: \"kk3yz1\"\n }\n ],\n [\n \"path\",\n {\n d: \"m5 21 4.144-4.144a1.21 1.21 0 0 1 1.712 0L13 19\",\n key: \"fyekpt\"\n }\n ],\n [\n \"path\",\n {\n d: \"M9 3h3\",\n key: \"d52fa\"\n }\n ],\n [\n \"rect\",\n {\n x: \"3\",\n y: \"11\",\n width: \"10\",\n height: \"10\",\n rx: \"1\",\n key: \"1wpmix\"\n }\n ]\n];\nconst ImageUpscale = createLucideIcon(\"image-upscale\", __iconNode$cF);\nconst __iconNode$cE = [\n [\n \"rect\",\n {\n width: \"18\",\n height: \"18\",\n x: \"3\",\n y: \"3\",\n rx: \"2\",\n ry: \"2\",\n key: \"1m3agn\"\n }\n ],\n [\n \"circle\",\n {\n cx: \"9\",\n cy: \"9\",\n r: \"2\",\n key: \"af1f0g\"\n }\n ],\n [\n \"path\",\n {\n d: \"m21 15-3.086-3.086a2 2 0 0 0-2.828 0L6 21\",\n key: \"1xmnt7\"\n }\n ]\n];\nconst Image = createLucideIcon(\"image\", __iconNode$cE);\nconst __iconNode$cD = [\n [\n \"path\",\n {\n d: \"M18 22H4a2 2 0 0 1-2-2V6\",\n key: \"pblm9e\"\n }\n ],\n [\n \"path\",\n {\n d: \"m22 13-1.296-1.296a2.41 2.41 0 0 0-3.408 0L11 18\",\n key: \"nf6bnh\"\n }\n ],\n [\n \"circle\",\n {\n cx: \"12\",\n cy: \"8\",\n r: \"2\",\n key: \"1822b1\"\n }\n ],\n [\n \"rect\",\n {\n width: \"16\",\n height: \"16\",\n x: \"6\",\n y: \"2\",\n rx: \"2\",\n key: \"12espp\"\n }\n ]\n];\nconst Images = createLucideIcon(\"images\", __iconNode$cD);\nconst __iconNode$cC = [\n [\n \"path\",\n {\n d: \"M12 3v12\",\n key: \"1x0j5s\"\n }\n ],\n [\n \"path\",\n {\n d: \"m8 11 4 4 4-4\",\n key: \"1dohi6\"\n }\n ],\n [\n \"path\",\n {\n d: \"M8 5H4a2 2 0 0 0-2 2v10a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2V7a2 2 0 0 0-2-2h-4\",\n key: \"1ywtjm\"\n }\n ]\n];\nconst Import = createLucideIcon(\"import\", __iconNode$cC);\nconst __iconNode$cB = [\n [\n \"polyline\",\n {\n points: \"22 12 16 12 14 15 10 15 8 12 2 12\",\n key: \"o97t9d\"\n }\n ],\n [\n \"path\",\n {\n d: \"M5.45 5.11 2 12v6a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2v-6l-3.45-6.89A2 2 0 0 0 16.76 4H7.24a2 2 0 0 0-1.79 1.11z\",\n key: \"oot6mr\"\n }\n ]\n];\nconst Inbox = createLucideIcon(\"inbox\", __iconNode$cB);\nconst __iconNode$cA = [\n [\n \"path\",\n {\n d: \"M21 12H11\",\n key: \"wd7e0v\"\n }\n ],\n [\n \"path\",\n {\n d: \"M21 18H11\",\n key: \"4wu86t\"\n }\n ],\n [\n \"path\",\n {\n d: \"M21 6H11\",\n key: \"6dy1d6\"\n }\n ],\n [\n \"path\",\n {\n d: \"m7 8-4 4 4 4\",\n key: \"o5hrat\"\n }\n ]\n];\nconst IndentDecrease = createLucideIcon(\"indent-decrease\", __iconNode$cA);\nconst __iconNode$cz = [\n [\n \"path\",\n {\n d: \"M21 12H11\",\n key: \"wd7e0v\"\n }\n ],\n [\n \"path\",\n {\n d: \"M21 18H11\",\n key: \"4wu86t\"\n }\n ],\n [\n \"path\",\n {\n d: \"M21 6H11\",\n key: \"6dy1d6\"\n }\n ],\n [\n \"path\",\n {\n d: \"m3 8 4 4-4 4\",\n key: \"1a3j6y\"\n }\n ]\n];\nconst IndentIncrease = createLucideIcon(\"indent-increase\", __iconNode$cz);\nconst __iconNode$cy = [\n [\n \"path\",\n {\n d: \"M6 3h12\",\n key: \"ggurg9\"\n }\n ],\n [\n \"path\",\n {\n d: \"M6 8h12\",\n key: \"6g4wlu\"\n }\n ],\n [\n \"path\",\n {\n d: \"m6 13 8.5 8\",\n key: \"u1kupk\"\n }\n ],\n [\n \"path\",\n {\n d: \"M6 13h3\",\n key: \"wdp6ag\"\n }\n ],\n [\n \"path\",\n {\n d: \"M9 13c6.667 0 6.667-10 0-10\",\n key: \"1nkvk2\"\n }\n ]\n];\nconst IndianRupee = createLucideIcon(\"indian-rupee\", __iconNode$cy);\nconst __iconNode$cx = [\n [\n \"path\",\n {\n d: \"M6 16c5 0 7-8 12-8a4 4 0 0 1 0 8c-5 0-7-8-12-8a4 4 0 1 0 0 8\",\n key: \"18ogeb\"\n }\n ]\n];\nconst Infinity = createLucideIcon(\"infinity\", __iconNode$cx);\nconst __iconNode$cw = [\n [\n \"circle\",\n {\n cx: \"12\",\n cy: \"12\",\n r: \"10\",\n key: \"1mglay\"\n }\n ],\n [\n \"path\",\n {\n d: \"M12 16v-4\",\n key: \"1dtifu\"\n }\n ],\n [\n \"path\",\n {\n d: \"M12 8h.01\",\n key: \"e9boi3\"\n }\n ]\n];\nconst Info = createLucideIcon(\"info\", __iconNode$cw);\nconst __iconNode$cv = [\n [\n \"rect\",\n {\n width: \"20\",\n height: \"20\",\n x: \"2\",\n y: \"2\",\n rx: \"5\",\n ry: \"5\",\n key: \"2e1cvw\"\n }\n ],\n [\n \"path\",\n {\n d: \"M16 11.37A4 4 0 1 1 12.63 8 4 4 0 0 1 16 11.37z\",\n key: \"9exkf1\"\n }\n ],\n [\n \"line\",\n {\n x1: \"17.5\",\n x2: \"17.51\",\n y1: \"6.5\",\n y2: \"6.5\",\n key: \"r4j83e\"\n }\n ]\n];\nconst Instagram = createLucideIcon(\"instagram\", __iconNode$cv);\nconst __iconNode$cu = [\n [\n \"rect\",\n {\n width: \"18\",\n height: \"18\",\n x: \"3\",\n y: \"3\",\n rx: \"2\",\n key: \"afitv7\"\n }\n ],\n [\n \"path\",\n {\n d: \"M7 7h.01\",\n key: \"7u93v4\"\n }\n ],\n [\n \"path\",\n {\n d: \"M17 7h.01\",\n key: \"14a9sn\"\n }\n ],\n [\n \"path\",\n {\n d: \"M7 17h.01\",\n key: \"19xn7k\"\n }\n ],\n [\n \"path\",\n {\n d: \"M17 17h.01\",\n key: \"1sd3ek\"\n }\n ]\n];\nconst InspectionPanel = createLucideIcon(\"inspection-panel\", __iconNode$cu);\nconst __iconNode$ct = [\n [\n \"line\",\n {\n x1: \"19\",\n x2: \"10\",\n y1: \"4\",\n y2: \"4\",\n key: \"15jd3p\"\n }\n ],\n [\n \"line\",\n {\n x1: \"14\",\n x2: \"5\",\n y1: \"20\",\n y2: \"20\",\n key: \"bu0au3\"\n }\n ],\n [\n \"line\",\n {\n x1: \"15\",\n x2: \"9\",\n y1: \"4\",\n y2: \"20\",\n key: \"uljnxc\"\n }\n ]\n];\nconst Italic = createLucideIcon(\"italic\", __iconNode$ct);\nconst __iconNode$cs = [\n [\n \"path\",\n {\n d: \"m16 14 4 4-4 4\",\n key: \"hkso8o\"\n }\n ],\n [\n \"path\",\n {\n d: \"M20 10a8 8 0 1 0-8 8h8\",\n key: \"1bik7b\"\n }\n ]\n];\nconst IterationCcw = createLucideIcon(\"iteration-ccw\", __iconNode$cs);\nconst __iconNode$cr = [\n [\n \"path\",\n {\n d: \"M4 10a8 8 0 1 1 8 8H4\",\n key: \"svv66n\"\n }\n ],\n [\n \"path\",\n {\n d: \"m8 22-4-4 4-4\",\n key: \"6g7gki\"\n }\n ]\n];\nconst IterationCw = createLucideIcon(\"iteration-cw\", __iconNode$cr);\nconst __iconNode$cq = [\n [\n \"path\",\n {\n d: \"M12 9.5V21m0-11.5L6 3m6 6.5L18 3\",\n key: \"2ej80x\"\n }\n ],\n [\n \"path\",\n {\n d: \"M6 15h12\",\n key: \"1hwgt5\"\n }\n ],\n [\n \"path\",\n {\n d: \"M6 11h12\",\n key: \"wf4gp6\"\n }\n ]\n];\nconst JapaneseYen = createLucideIcon(\"japanese-yen\", __iconNode$cq);\nconst __iconNode$cp = [\n [\n \"path\",\n {\n d: \"M21 17a2 2 0 0 0-2-2H5a2 2 0 0 0-2 2v2a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-2Z\",\n key: \"jg2n2t\"\n }\n ],\n [\n \"path\",\n {\n d: \"M6 15v-2\",\n key: \"gd6mvg\"\n }\n ],\n [\n \"path\",\n {\n d: \"M12 15V9\",\n key: \"8c7uyn\"\n }\n ],\n [\n \"circle\",\n {\n cx: \"12\",\n cy: \"6\",\n r: \"3\",\n key: \"1gm2ql\"\n }\n ]\n];\nconst Joystick = createLucideIcon(\"joystick\", __iconNode$cp);\nconst __iconNode$co = [\n [\n \"path\",\n {\n d: \"M6 5v11\",\n key: \"mdvv1e\"\n }\n ],\n [\n \"path\",\n {\n d: \"M12 5v6\",\n key: \"14ar3b\"\n }\n ],\n [\n \"path\",\n {\n d: \"M18 5v14\",\n key: \"7ji314\"\n }\n ]\n];\nconst Kanban = createLucideIcon(\"kanban\", __iconNode$co);\nconst __iconNode$cn = [\n [\n \"path\",\n {\n d: \"M2.586 17.414A2 2 0 0 0 2 18.828V21a1 1 0 0 0 1 1h3a1 1 0 0 0 1-1v-1a1 1 0 0 1 1-1h1a1 1 0 0 0 1-1v-1a1 1 0 0 1 1-1h.172a2 2 0 0 0 1.414-.586l.814-.814a6.5 6.5 0 1 0-4-4z\",\n key: \"1s6t7t\"\n }\n ],\n [\n \"circle\",\n {\n cx: \"16.5\",\n cy: \"7.5\",\n r: \".5\",\n fill: \"currentColor\",\n key: \"w0ekpg\"\n }\n ]\n];\nconst KeyRound = createLucideIcon(\"key-round\", __iconNode$cn);\nconst __iconNode$cm = [\n [\n \"path\",\n {\n d: \"M12.4 2.7a2.5 2.5 0 0 1 3.4 0l5.5 5.5a2.5 2.5 0 0 1 0 3.4l-3.7 3.7a2.5 2.5 0 0 1-3.4 0L8.7 9.8a2.5 2.5 0 0 1 0-3.4z\",\n key: \"165ttr\"\n }\n ],\n [\n \"path\",\n {\n d: \"m14 7 3 3\",\n key: \"1r5n42\"\n }\n ],\n [\n \"path\",\n {\n d: \"m9.4 10.6-6.814 6.814A2 2 0 0 0 2 18.828V21a1 1 0 0 0 1 1h3a1 1 0 0 0 1-1v-1a1 1 0 0 1 1-1h1a1 1 0 0 0 1-1v-1a1 1 0 0 1 1-1h.172a2 2 0 0 0 1.414-.586l.814-.814\",\n key: \"1ubxi2\"\n }\n ]\n];\nconst KeySquare = createLucideIcon(\"key-square\", __iconNode$cm);\nconst __iconNode$cl = [\n [\n \"path\",\n {\n d: \"m15.5 7.5 2.3 2.3a1 1 0 0 0 1.4 0l2.1-2.1a1 1 0 0 0 0-1.4L19 4\",\n key: \"g0fldk\"\n }\n ],\n [\n \"path\",\n {\n d: \"m21 2-9.6 9.6\",\n key: \"1j0ho8\"\n }\n ],\n [\n \"circle\",\n {\n cx: \"7.5\",\n cy: \"15.5\",\n r: \"5.5\",\n key: \"yqb3hr\"\n }\n ]\n];\nconst Key = createLucideIcon(\"key\", __iconNode$cl);\nconst __iconNode$ck = [\n [\n \"path\",\n {\n d: \"M 20 4 A2 2 0 0 1 22 6\",\n key: \"1g1fkt\"\n }\n ],\n [\n \"path\",\n {\n d: \"M 22 6 L 22 16.41\",\n key: \"1qjg3w\"\n }\n ],\n [\n \"path\",\n {\n d: \"M 7 16 L 16 16\",\n key: \"n0yqwb\"\n }\n ],\n [\n \"path\",\n {\n d: \"M 9.69 4 L 20 4\",\n key: \"kbpcgx\"\n }\n ],\n [\n \"path\",\n {\n d: \"M14 8h.01\",\n key: \"1primd\"\n }\n ],\n [\n \"path\",\n {\n d: \"M18 8h.01\",\n key: \"emo2bl\"\n }\n ],\n [\n \"path\",\n {\n d: \"m2 2 20 20\",\n key: \"1ooewy\"\n }\n ],\n [\n \"path\",\n {\n d: \"M20 20H4a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2\",\n key: \"s23sx2\"\n }\n ],\n [\n \"path\",\n {\n d: \"M6 8h.01\",\n key: \"x9i8wu\"\n }\n ],\n [\n \"path\",\n {\n d: \"M8 12h.01\",\n key: \"czm47f\"\n }\n ]\n];\nconst KeyboardOff = createLucideIcon(\"keyboard-off\", __iconNode$ck);\nconst __iconNode$cj = [\n [\n \"rect\",\n {\n width: \"20\",\n height: \"16\",\n x: \"2\",\n y: \"4\",\n rx: \"2\",\n key: \"18n3k1\"\n }\n ],\n [\n \"path\",\n {\n d: \"M6 8h4\",\n key: \"utf9t1\"\n }\n ],\n [\n \"path\",\n {\n d: \"M14 8h.01\",\n key: \"1primd\"\n }\n ],\n [\n \"path\",\n {\n d: \"M18 8h.01\",\n key: \"emo2bl\"\n }\n ],\n [\n \"path\",\n {\n d: \"M2 12h20\",\n key: \"9i4pu4\"\n }\n ],\n [\n \"path\",\n {\n d: \"M6 12v4\",\n key: \"dy92yo\"\n }\n ],\n [\n \"path\",\n {\n d: \"M10 12v4\",\n key: \"1fxnav\"\n }\n ],\n [\n \"path\",\n {\n d: \"M14 12v4\",\n key: \"1hft58\"\n }\n ],\n [\n \"path\",\n {\n d: \"M18 12v4\",\n key: \"tjjnbz\"\n }\n ]\n];\nconst KeyboardMusic = createLucideIcon(\"keyboard-music\", __iconNode$cj);\nconst __iconNode$ci = [\n [\n \"path\",\n {\n d: \"M12 2v5\",\n key: \"nd4vlx\"\n }\n ],\n [\n \"path\",\n {\n d: \"M14.829 15.998a3 3 0 1 1-5.658 0\",\n key: \"1pybiy\"\n }\n ],\n [\n \"path\",\n {\n d: \"M20.92 14.606A1 1 0 0 1 20 16H4a1 1 0 0 1-.92-1.394l3-7A1 1 0 0 1 7 7h10a1 1 0 0 1 .92.606z\",\n key: \"ma1wor\"\n }\n ]\n];\nconst LampCeiling = createLucideIcon(\"lamp-ceiling\", __iconNode$ci);\nconst __iconNode$ch = [\n [\n \"path\",\n {\n d: \"M10 8h.01\",\n key: \"1r9ogq\"\n }\n ],\n [\n \"path\",\n {\n d: \"M12 12h.01\",\n key: \"1mp3jc\"\n }\n ],\n [\n \"path\",\n {\n d: \"M14 8h.01\",\n key: \"1primd\"\n }\n ],\n [\n \"path\",\n {\n d: \"M16 12h.01\",\n key: \"1l6xoz\"\n }\n ],\n [\n \"path\",\n {\n d: \"M18 8h.01\",\n key: \"emo2bl\"\n }\n ],\n [\n \"path\",\n {\n d: \"M6 8h.01\",\n key: \"x9i8wu\"\n }\n ],\n [\n \"path\",\n {\n d: \"M7 16h10\",\n key: \"wp8him\"\n }\n ],\n [\n \"path\",\n {\n d: \"M8 12h.01\",\n key: \"czm47f\"\n }\n ],\n [\n \"rect\",\n {\n width: \"20\",\n height: \"16\",\n x: \"2\",\n y: \"4\",\n rx: \"2\",\n key: \"18n3k1\"\n }\n ]\n];\nconst Keyboard = createLucideIcon(\"keyboard\", __iconNode$ch);\nconst __iconNode$cg = [\n [\n \"path\",\n {\n d: \"M10.293 2.293a1 1 0 0 1 1.414 0l2.5 2.5 5.994 1.227a1 1 0 0 1 .506 1.687l-7 7a1 1 0 0 1-1.687-.506l-1.227-5.994-2.5-2.5a1 1 0 0 1 0-1.414z\",\n key: \"sb8slu\"\n }\n ],\n [\n \"path\",\n {\n d: \"m14.207 4.793-3.414 3.414\",\n key: \"m2x3oj\"\n }\n ],\n [\n \"path\",\n {\n d: \"M3 20a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v1a1 1 0 0 1-1 1H4a1 1 0 0 1-1-1z\",\n key: \"8b3myj\"\n }\n ],\n [\n \"path\",\n {\n d: \"m9.086 6.5-4.793 4.793a1 1 0 0 0-.18 1.17L7 18\",\n key: \"43s6cu\"\n }\n ]\n];\nconst LampDesk = createLucideIcon(\"lamp-desk\", __iconNode$cg);\nconst __iconNode$cf = [\n [\n \"path\",\n {\n d: \"M12 10v12\",\n key: \"6ubwww\"\n }\n ],\n [\n \"path\",\n {\n d: \"M17.929 7.629A1 1 0 0 1 17 9H7a1 1 0 0 1-.928-1.371l2-5A1 1 0 0 1 9 2h6a1 1 0 0 1 .928.629z\",\n key: \"1o95gh\"\n }\n ],\n [\n \"path\",\n {\n d: \"M9 22h6\",\n key: \"1rlq3v\"\n }\n ]\n];\nconst LampFloor = createLucideIcon(\"lamp-floor\", __iconNode$cf);\nconst __iconNode$ce = [\n [\n \"path\",\n {\n d: \"M19.929 18.629A1 1 0 0 1 19 20H9a1 1 0 0 1-.928-1.371l2-5A1 1 0 0 1 11 13h6a1 1 0 0 1 .928.629z\",\n key: \"u4w2d7\"\n }\n ],\n [\n \"path\",\n {\n d: \"M6 3a2 2 0 0 1 2 2v2a2 2 0 0 1-2 2H5a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1z\",\n key: \"15356w\"\n }\n ],\n [\n \"path\",\n {\n d: \"M8 6h4a2 2 0 0 1 2 2v5\",\n key: \"1m6m7x\"\n }\n ]\n];\nconst LampWallDown = createLucideIcon(\"lamp-wall-down\", __iconNode$ce);\nconst __iconNode$cd = [\n [\n \"path\",\n {\n d: \"M19.929 9.629A1 1 0 0 1 19 11H9a1 1 0 0 1-.928-1.371l2-5A1 1 0 0 1 11 4h6a1 1 0 0 1 .928.629z\",\n key: \"1uvrbf\"\n }\n ],\n [\n \"path\",\n {\n d: \"M6 15a2 2 0 0 1 2 2v2a2 2 0 0 1-2 2H5a1 1 0 0 1-1-1v-4a1 1 0 0 1 1-1z\",\n key: \"154r2a\"\n }\n ],\n [\n \"path\",\n {\n d: \"M8 18h4a2 2 0 0 0 2-2v-5\",\n key: \"z9mbu0\"\n }\n ]\n];\nconst LampWallUp = createLucideIcon(\"lamp-wall-up\", __iconNode$cd);\nconst __iconNode$cc = [\n [\n \"path\",\n {\n d: \"M12 12v6\",\n key: \"3ahymv\"\n }\n ],\n [\n \"path\",\n {\n d: \"M4.077 10.615A1 1 0 0 0 5 12h14a1 1 0 0 0 .923-1.385l-3.077-7.384A2 2 0 0 0 15 2H9a2 2 0 0 0-1.846 1.23Z\",\n key: \"1l7kg2\"\n }\n ],\n [\n \"path\",\n {\n d: \"M8 20a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v1a1 1 0 0 1-1 1H9a1 1 0 0 1-1-1z\",\n key: \"1mmzpi\"\n }\n ]\n];\nconst Lamp = createLucideIcon(\"lamp\", __iconNode$cc);\nconst __iconNode$cb = [\n [\n \"path\",\n {\n d: \"m12 8 6-3-6-3v10\",\n key: \"mvpnpy\"\n }\n ],\n [\n \"path\",\n {\n d: \"m8 11.99-5.5 3.14a1 1 0 0 0 0 1.74l8.5 4.86a2 2 0 0 0 2 0l8.5-4.86a1 1 0 0 0 0-1.74L16 12\",\n key: \"ek95tt\"\n }\n ],\n [\n \"path\",\n {\n d: \"m6.49 12.85 11.02 6.3\",\n key: \"1kt42w\"\n }\n ],\n [\n \"path\",\n {\n d: \"M17.51 12.85 6.5 19.15\",\n key: \"v55bdg\"\n }\n ]\n];\nconst LandPlot = createLucideIcon(\"land-plot\", __iconNode$cb);\nconst __iconNode$ca = [\n [\n \"path\",\n {\n d: \"M10 18v-7\",\n key: \"wt116b\"\n }\n ],\n [\n \"path\",\n {\n d: \"M11.12 2.198a2 2 0 0 1 1.76.006l7.866 3.847c.476.233.31.949-.22.949H3.474c-.53 0-.695-.716-.22-.949z\",\n key: \"1m329m\"\n }\n ],\n [\n \"path\",\n {\n d: \"M14 18v-7\",\n key: \"vav6t3\"\n }\n ],\n [\n \"path\",\n {\n d: \"M18 18v-7\",\n key: \"aexdmj\"\n }\n ],\n [\n \"path\",\n {\n d: \"M3 22h18\",\n key: \"8prr45\"\n }\n ],\n [\n \"path\",\n {\n d: \"M6 18v-7\",\n key: \"1ivflk\"\n }\n ]\n];\nconst Landmark = createLucideIcon(\"landmark\", __iconNode$ca);\nconst __iconNode$c9 = [\n [\n \"path\",\n {\n d: \"m5 8 6 6\",\n key: \"1wu5hv\"\n }\n ],\n [\n \"path\",\n {\n d: \"m4 14 6-6 2-3\",\n key: \"1k1g8d\"\n }\n ],\n [\n \"path\",\n {\n d: \"M2 5h12\",\n key: \"or177f\"\n }\n ],\n [\n \"path\",\n {\n d: \"M7 2h1\",\n key: \"1t2jsx\"\n }\n ],\n [\n \"path\",\n {\n d: \"m22 22-5-10-5 10\",\n key: \"don7ne\"\n }\n ],\n [\n \"path\",\n {\n d: \"M14 18h6\",\n key: \"1m8k6r\"\n }\n ]\n];\nconst Languages = createLucideIcon(\"languages\", __iconNode$c9);\nconst __iconNode$c8 = [\n [\n \"path\",\n {\n d: \"M2 20h20\",\n key: \"owomy5\"\n }\n ],\n [\n \"path\",\n {\n d: \"m9 10 2 2 4-4\",\n key: \"1gnqz4\"\n }\n ],\n [\n \"rect\",\n {\n x: \"3\",\n y: \"4\",\n width: \"18\",\n height: \"12\",\n rx: \"2\",\n key: \"8ur36m\"\n }\n ]\n];\nconst LaptopMinimalCheck = createLucideIcon(\"laptop-minimal-check\", __iconNode$c8);\nconst __iconNode$c7 = [\n [\n \"rect\",\n {\n width: \"18\",\n height: \"12\",\n x: \"3\",\n y: \"4\",\n rx: \"2\",\n ry: \"2\",\n key: \"1qhy41\"\n }\n ],\n [\n \"line\",\n {\n x1: \"2\",\n x2: \"22\",\n y1: \"20\",\n y2: \"20\",\n key: \"ni3hll\"\n }\n ]\n];\nconst LaptopMinimal = createLucideIcon(\"laptop-minimal\", __iconNode$c7);\nconst __iconNode$c6 = [\n [\n \"path\",\n {\n d: \"M18 5a2 2 0 0 1 2 2v8.526a2 2 0 0 0 .212.897l1.068 2.127a1 1 0 0 1-.9 1.45H3.62a1 1 0 0 1-.9-1.45l1.068-2.127A2 2 0 0 0 4 15.526V7a2 2 0 0 1 2-2z\",\n key: \"1pdavp\"\n }\n ],\n [\n \"path\",\n {\n d: \"M20.054 15.987H3.946\",\n key: \"14rxg9\"\n }\n ]\n];\nconst Laptop = createLucideIcon(\"laptop\", __iconNode$c6);\nconst __iconNode$c5 = [\n [\n \"path\",\n {\n d: \"M7 22a5 5 0 0 1-2-4\",\n key: \"umushi\"\n }\n ],\n [\n \"path\",\n {\n d: \"M7 16.93c.96.43 1.96.74 2.99.91\",\n key: \"ybbtv3\"\n }\n ],\n [\n \"path\",\n {\n d: \"M3.34 14A6.8 6.8 0 0 1 2 10c0-4.42 4.48-8 10-8s10 3.58 10 8a7.19 7.19 0 0 1-.33 2\",\n key: \"gt5e1w\"\n }\n ],\n [\n \"path\",\n {\n d: \"M5 18a2 2 0 1 0 0-4 2 2 0 0 0 0 4z\",\n key: \"bq3ynw\"\n }\n ],\n [\n \"path\",\n {\n d: \"M14.33 22h-.09a.35.35 0 0 1-.24-.32v-10a.34.34 0 0 1 .33-.34c.08 0 .15.03.21.08l7.34 6a.33.33 0 0 1-.21.59h-4.49l-2.57 3.85a.35.35 0 0 1-.28.14z\",\n key: \"72q637\"\n }\n ]\n];\nconst LassoSelect = createLucideIcon(\"lasso-select\", __iconNode$c5);\nconst __iconNode$c4 = [\n [\n \"path\",\n {\n d: \"M7 22a5 5 0 0 1-2-4\",\n key: \"umushi\"\n }\n ],\n [\n \"path\",\n {\n d: \"M3.3 14A6.8 6.8 0 0 1 2 10c0-4.4 4.5-8 10-8s10 3.6 10 8-4.5 8-10 8a12 12 0 0 1-5-1\",\n key: \"146dds\"\n }\n ],\n [\n \"path\",\n {\n d: \"M5 18a2 2 0 1 0 0-4 2 2 0 0 0 0 4z\",\n key: \"bq3ynw\"\n }\n ]\n];\nconst Lasso = createLucideIcon(\"lasso\", __iconNode$c4);\nconst __iconNode$c3 = [\n [\n \"path\",\n {\n d: \"M13 13.74a2 2 0 0 1-2 0L2.5 8.87a1 1 0 0 1 0-1.74L11 2.26a2 2 0 0 1 2 0l8.5 4.87a1 1 0 0 1 0 1.74z\",\n key: \"15q6uc\"\n }\n ],\n [\n \"path\",\n {\n d: \"m20 14.285 1.5.845a1 1 0 0 1 0 1.74L13 21.74a2 2 0 0 1-2 0l-8.5-4.87a1 1 0 0 1 0-1.74l1.5-.845\",\n key: \"byia6g\"\n }\n ]\n];\nconst Layers2 = createLucideIcon(\"layers-2\", __iconNode$c3);\nconst __iconNode$c2 = [\n [\n \"circle\",\n {\n cx: \"12\",\n cy: \"12\",\n r: \"10\",\n key: \"1mglay\"\n }\n ],\n [\n \"path\",\n {\n d: \"M18 13a6 6 0 0 1-6 5 6 6 0 0 1-6-5h12Z\",\n key: \"b2q4dd\"\n }\n ],\n [\n \"line\",\n {\n x1: \"9\",\n x2: \"9.01\",\n y1: \"9\",\n y2: \"9\",\n key: \"yxxnd0\"\n }\n ],\n [\n \"line\",\n {\n x1: \"15\",\n x2: \"15.01\",\n y1: \"9\",\n y2: \"9\",\n key: \"1p4y9e\"\n }\n ]\n];\nconst Laugh = createLucideIcon(\"laugh\", __iconNode$c2);\nconst __iconNode$c1 = [\n [\n \"path\",\n {\n d: \"M12.83 2.18a2 2 0 0 0-1.66 0L2.6 6.08a1 1 0 0 0 0 1.83l8.58 3.91a2 2 0 0 0 1.66 0l8.58-3.9a1 1 0 0 0 0-1.83z\",\n key: \"zw3jo\"\n }\n ],\n [\n \"path\",\n {\n d: \"M2 12a1 1 0 0 0 .58.91l8.6 3.91a2 2 0 0 0 1.65 0l8.58-3.9A1 1 0 0 0 22 12\",\n key: \"1wduqc\"\n }\n ],\n [\n \"path\",\n {\n d: \"M2 17a1 1 0 0 0 .58.91l8.6 3.91a2 2 0 0 0 1.65 0l8.58-3.9A1 1 0 0 0 22 17\",\n key: \"kqbvx6\"\n }\n ]\n];\nconst Layers = createLucideIcon(\"layers\", __iconNode$c1);\nconst __iconNode$c0 = [\n [\n \"rect\",\n {\n width: \"7\",\n height: \"9\",\n x: \"3\",\n y: \"3\",\n rx: \"1\",\n key: \"10lvy0\"\n }\n ],\n [\n \"rect\",\n {\n width: \"7\",\n height: \"5\",\n x: \"14\",\n y: \"3\",\n rx: \"1\",\n key: \"16une8\"\n }\n ],\n [\n \"rect\",\n {\n width: \"7\",\n height: \"9\",\n x: \"14\",\n y: \"12\",\n rx: \"1\",\n key: \"1hutg5\"\n }\n ],\n [\n \"rect\",\n {\n width: \"7\",\n height: \"5\",\n x: \"3\",\n y: \"16\",\n rx: \"1\",\n key: \"ldoo1y\"\n }\n ]\n];\nconst LayoutDashboard = createLucideIcon(\"layout-dashboard\", __iconNode$c0);\nconst __iconNode$b$ = [\n [\n \"rect\",\n {\n width: \"7\",\n height: \"7\",\n x: \"3\",\n y: \"3\",\n rx: \"1\",\n key: \"1g98yp\"\n }\n ],\n [\n \"rect\",\n {\n width: \"7\",\n height: \"7\",\n x: \"3\",\n y: \"14\",\n rx: \"1\",\n key: \"1bb6yr\"\n }\n ],\n [\n \"path\",\n {\n d: \"M14 4h7\",\n key: \"3xa0d5\"\n }\n ],\n [\n \"path\",\n {\n d: \"M14 9h7\",\n key: \"1icrd9\"\n }\n ],\n [\n \"path\",\n {\n d: \"M14 15h7\",\n key: \"1mj8o2\"\n }\n ],\n [\n \"path\",\n {\n d: \"M14 20h7\",\n key: \"11slyb\"\n }\n ]\n];\nconst LayoutList = createLucideIcon(\"layout-list\", __iconNode$b$);\nconst __iconNode$b_ = [\n [\n \"rect\",\n {\n width: \"7\",\n height: \"7\",\n x: \"3\",\n y: \"3\",\n rx: \"1\",\n key: \"1g98yp\"\n }\n ],\n [\n \"rect\",\n {\n width: \"7\",\n height: \"7\",\n x: \"14\",\n y: \"3\",\n rx: \"1\",\n key: \"6d4xhi\"\n }\n ],\n [\n \"rect\",\n {\n width: \"7\",\n height: \"7\",\n x: \"14\",\n y: \"14\",\n rx: \"1\",\n key: \"nxv5o0\"\n }\n ],\n [\n \"rect\",\n {\n width: \"7\",\n height: \"7\",\n x: \"3\",\n y: \"14\",\n rx: \"1\",\n key: \"1bb6yr\"\n }\n ]\n];\nconst LayoutGrid = createLucideIcon(\"layout-grid\", __iconNode$b_);\nconst __iconNode$bZ = [\n [\n \"rect\",\n {\n width: \"7\",\n height: \"18\",\n x: \"3\",\n y: \"3\",\n rx: \"1\",\n key: \"2obqm\"\n }\n ],\n [\n \"rect\",\n {\n width: \"7\",\n height: \"7\",\n x: \"14\",\n y: \"3\",\n rx: \"1\",\n key: \"6d4xhi\"\n }\n ],\n [\n \"rect\",\n {\n width: \"7\",\n height: \"7\",\n x: \"14\",\n y: \"14\",\n rx: \"1\",\n key: \"nxv5o0\"\n }\n ]\n];\nconst LayoutPanelLeft = createLucideIcon(\"layout-panel-left\", __iconNode$bZ);\nconst __iconNode$bY = [\n [\n \"rect\",\n {\n width: \"18\",\n height: \"7\",\n x: \"3\",\n y: \"3\",\n rx: \"1\",\n key: \"f1a2em\"\n }\n ],\n [\n \"rect\",\n {\n width: \"7\",\n height: \"7\",\n x: \"3\",\n y: \"14\",\n rx: \"1\",\n key: \"1bb6yr\"\n }\n ],\n [\n \"rect\",\n {\n width: \"7\",\n height: \"7\",\n x: \"14\",\n y: \"14\",\n rx: \"1\",\n key: \"nxv5o0\"\n }\n ]\n];\nconst LayoutPanelTop = createLucideIcon(\"layout-panel-top\", __iconNode$bY);\nconst __iconNode$bX = [\n [\n \"rect\",\n {\n width: \"18\",\n height: \"7\",\n x: \"3\",\n y: \"3\",\n rx: \"1\",\n key: \"f1a2em\"\n }\n ],\n [\n \"rect\",\n {\n width: \"9\",\n height: \"7\",\n x: \"3\",\n y: \"14\",\n rx: \"1\",\n key: \"jqznyg\"\n }\n ],\n [\n \"rect\",\n {\n width: \"5\",\n height: \"7\",\n x: \"16\",\n y: \"14\",\n rx: \"1\",\n key: \"q5h2i8\"\n }\n ]\n];\nconst LayoutTemplate = createLucideIcon(\"layout-template\", __iconNode$bX);\nconst __iconNode$bW = [\n [\n \"path\",\n {\n d: \"M11 20A7 7 0 0 1 9.8 6.1C15.5 5 17 4.48 19 2c1 2 2 4.18 2 8 0 5.5-4.78 10-10 10Z\",\n key: \"nnexq3\"\n }\n ],\n [\n \"path\",\n {\n d: \"M2 21c0-3 1.85-5.36 5.08-6C9.5 14.52 12 13 13 12\",\n key: \"mt58a7\"\n }\n ]\n];\nconst Leaf = createLucideIcon(\"leaf\", __iconNode$bW);\nconst __iconNode$bV = [\n [\n \"path\",\n {\n d: \"M2 22c1.25-.987 2.27-1.975 3.9-2.2a5.56 5.56 0 0 1 3.8 1.5 4 4 0 0 0 6.187-2.353 3.5 3.5 0 0 0 3.69-5.116A3.5 3.5 0 0 0 20.95 8 3.5 3.5 0 1 0 16 3.05a3.5 3.5 0 0 0-5.831 1.373 3.5 3.5 0 0 0-5.116 3.69 4 4 0 0 0-2.348 6.155C3.499 15.42 4.409 16.712 4.2 18.1 3.926 19.743 3.014 20.732 2 22\",\n key: \"1134nt\"\n }\n ],\n [\n \"path\",\n {\n d: \"M2 22 17 7\",\n key: \"1q7jp2\"\n }\n ]\n];\nconst LeafyGreen = createLucideIcon(\"leafy-green\", __iconNode$bV);\nconst __iconNode$bU = [\n [\n \"path\",\n {\n d: \"M16 12h3a2 2 0 0 0 1.902-1.38l1.056-3.333A1 1 0 0 0 21 6H3a1 1 0 0 0-.958 1.287l1.056 3.334A2 2 0 0 0 5 12h3\",\n key: \"13jjxg\"\n }\n ],\n [\n \"path\",\n {\n d: \"M18 6V3a1 1 0 0 0-1-1h-3\",\n key: \"1550fe\"\n }\n ],\n [\n \"rect\",\n {\n width: \"8\",\n height: \"12\",\n x: \"8\",\n y: \"10\",\n rx: \"1\",\n key: \"qmu8b6\"\n }\n ]\n];\nconst Lectern = createLucideIcon(\"lectern\", __iconNode$bU);\nconst __iconNode$bT = [\n [\n \"path\",\n {\n d: \"M15 12h6\",\n key: \"upa0zy\"\n }\n ],\n [\n \"path\",\n {\n d: \"M15 6h6\",\n key: \"1jlkvy\"\n }\n ],\n [\n \"path\",\n {\n d: \"m3 13 3.553-7.724a.5.5 0 0 1 .894 0L11 13\",\n key: \"blevx4\"\n }\n ],\n [\n \"path\",\n {\n d: \"M3 18h18\",\n key: \"1h113x\"\n }\n ],\n [\n \"path\",\n {\n d: \"M3.92 11h6.16\",\n key: \"1bqo8m\"\n }\n ]\n];\nconst LetterText = createLucideIcon(\"letter-text\", __iconNode$bT);\nconst __iconNode$bS = [\n [\n \"rect\",\n {\n width: \"8\",\n height: \"18\",\n x: \"3\",\n y: \"3\",\n rx: \"1\",\n key: \"oynpb5\"\n }\n ],\n [\n \"path\",\n {\n d: \"M7 3v18\",\n key: \"bbkbws\"\n }\n ],\n [\n \"path\",\n {\n d: \"M20.4 18.9c.2.5-.1 1.1-.6 1.3l-1.9.7c-.5.2-1.1-.1-1.3-.6L11.1 5.1c-.2-.5.1-1.1.6-1.3l1.9-.7c.5-.2 1.1.1 1.3.6Z\",\n key: \"1qboyk\"\n }\n ]\n];\nconst LibraryBig = createLucideIcon(\"library-big\", __iconNode$bS);\nconst __iconNode$bR = [\n [\n \"path\",\n {\n d: \"m16 6 4 14\",\n key: \"ji33uf\"\n }\n ],\n [\n \"path\",\n {\n d: \"M12 6v14\",\n key: \"1n7gus\"\n }\n ],\n [\n \"path\",\n {\n d: \"M8 8v12\",\n key: \"1gg7y9\"\n }\n ],\n [\n \"path\",\n {\n d: \"M4 4v16\",\n key: \"6qkkli\"\n }\n ]\n];\nconst Library = createLucideIcon(\"library\", __iconNode$bR);\nconst __iconNode$bQ = [\n [\n \"circle\",\n {\n cx: \"12\",\n cy: \"12\",\n r: \"10\",\n key: \"1mglay\"\n }\n ],\n [\n \"path\",\n {\n d: \"m4.93 4.93 4.24 4.24\",\n key: \"1ymg45\"\n }\n ],\n [\n \"path\",\n {\n d: \"m14.83 9.17 4.24-4.24\",\n key: \"1cb5xl\"\n }\n ],\n [\n \"path\",\n {\n d: \"m14.83 14.83 4.24 4.24\",\n key: \"q42g0n\"\n }\n ],\n [\n \"path\",\n {\n d: \"m9.17 14.83-4.24 4.24\",\n key: \"bqpfvv\"\n }\n ],\n [\n \"circle\",\n {\n cx: \"12\",\n cy: \"12\",\n r: \"4\",\n key: \"4exip2\"\n }\n ]\n];\nconst LifeBuoy = createLucideIcon(\"life-buoy\", __iconNode$bQ);\nconst __iconNode$bP = [\n [\n \"path\",\n {\n d: \"M14 12h2v8\",\n key: \"c1fccl\"\n }\n ],\n [\n \"path\",\n {\n d: \"M14 20h4\",\n key: \"lzx1xo\"\n }\n ],\n [\n \"path\",\n {\n d: \"M6 12h4\",\n key: \"a4o3ry\"\n }\n ],\n [\n \"path\",\n {\n d: \"M6 20h4\",\n key: \"1i6q5t\"\n }\n ],\n [\n \"path\",\n {\n d: \"M8 20V8a4 4 0 0 1 7.464-2\",\n key: \"wk9t6r\"\n }\n ]\n];\nconst Ligature = createLucideIcon(\"ligature\", __iconNode$bP);\nconst __iconNode$bO = [\n [\n \"path\",\n {\n d: \"M15 14c.2-1 .7-1.7 1.5-2.5 1-.9 1.5-2.2 1.5-3.5A6 6 0 0 0 6 8c0 1 .2 2.2 1.5 3.5.7.7 1.3 1.5 1.5 2.5\",\n key: \"1gvzjb\"\n }\n ],\n [\n \"path\",\n {\n d: \"M9 18h6\",\n key: \"x1upvd\"\n }\n ],\n [\n \"path\",\n {\n d: \"M10 22h4\",\n key: \"ceow96\"\n }\n ]\n];\nconst Lightbulb = createLucideIcon(\"lightbulb\", __iconNode$bO);\nconst __iconNode$bN = [\n [\n \"path\",\n {\n d: \"M16.8 11.2c.8-.9 1.2-2 1.2-3.2a6 6 0 0 0-9.3-5\",\n key: \"1fkcox\"\n }\n ],\n [\n \"path\",\n {\n d: \"m2 2 20 20\",\n key: \"1ooewy\"\n }\n ],\n [\n \"path\",\n {\n d: \"M6.3 6.3a4.67 4.67 0 0 0 1.2 5.2c.7.7 1.3 1.5 1.5 2.5\",\n key: \"10m8kw\"\n }\n ],\n [\n \"path\",\n {\n d: \"M9 18h6\",\n key: \"x1upvd\"\n }\n ],\n [\n \"path\",\n {\n d: \"M10 22h4\",\n key: \"ceow96\"\n }\n ]\n];\nconst LightbulbOff = createLucideIcon(\"lightbulb-off\", __iconNode$bN);\nconst __iconNode$bM = [\n [\n \"path\",\n {\n d: \"M7 3.5c5-2 7 2.5 3 4C1.5 10 2 15 5 16c5 2 9-10 14-7s.5 13.5-4 12c-5-2.5.5-11 6-2\",\n key: \"1lrphd\"\n }\n ]\n];\nconst LineSquiggle = createLucideIcon(\"line-squiggle\", __iconNode$bM);\nconst __iconNode$bL = [\n [\n \"path\",\n {\n d: \"M9 17H7A5 5 0 0 1 7 7\",\n key: \"10o201\"\n }\n ],\n [\n \"path\",\n {\n d: \"M15 7h2a5 5 0 0 1 4 8\",\n key: \"1d3206\"\n }\n ],\n [\n \"line\",\n {\n x1: \"8\",\n x2: \"12\",\n y1: \"12\",\n y2: \"12\",\n key: \"rvw6j4\"\n }\n ],\n [\n \"line\",\n {\n x1: \"2\",\n x2: \"22\",\n y1: \"2\",\n y2: \"22\",\n key: \"a6p6uj\"\n }\n ]\n];\nconst Link2Off = createLucideIcon(\"link-2-off\", __iconNode$bL);\nconst __iconNode$bK = [\n [\n \"path\",\n {\n d: \"M9 17H7A5 5 0 0 1 7 7h2\",\n key: \"8i5ue5\"\n }\n ],\n [\n \"path\",\n {\n d: \"M15 7h2a5 5 0 1 1 0 10h-2\",\n key: \"1b9ql8\"\n }\n ],\n [\n \"line\",\n {\n x1: \"8\",\n x2: \"16\",\n y1: \"12\",\n y2: \"12\",\n key: \"1jonct\"\n }\n ]\n];\nconst Link2 = createLucideIcon(\"link-2\", __iconNode$bK);\nconst __iconNode$bJ = [\n [\n \"path\",\n {\n d: \"M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71\",\n key: \"1cjeqo\"\n }\n ],\n [\n \"path\",\n {\n d: \"M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71\",\n key: \"19qd67\"\n }\n ]\n];\nconst Link = createLucideIcon(\"link\", __iconNode$bJ);\nconst __iconNode$bI = [\n [\n \"path\",\n {\n d: \"M11 18H3\",\n key: \"n3j2dh\"\n }\n ],\n [\n \"path\",\n {\n d: \"m15 18 2 2 4-4\",\n key: \"1szwhi\"\n }\n ],\n [\n \"path\",\n {\n d: \"M16 12H3\",\n key: \"1a2rj7\"\n }\n ],\n [\n \"path\",\n {\n d: \"M16 6H3\",\n key: \"1wxfjs\"\n }\n ]\n];\nconst ListCheck = createLucideIcon(\"list-check\", __iconNode$bI);\nconst __iconNode$bH = [\n [\n \"path\",\n {\n d: \"M16 8a6 6 0 0 1 6 6v7h-4v-7a2 2 0 0 0-2-2 2 2 0 0 0-2 2v7h-4v-7a6 6 0 0 1 6-6z\",\n key: \"c2jq9f\"\n }\n ],\n [\n \"rect\",\n {\n width: \"4\",\n height: \"12\",\n x: \"2\",\n y: \"9\",\n key: \"mk3on5\"\n }\n ],\n [\n \"circle\",\n {\n cx: \"4\",\n cy: \"4\",\n r: \"2\",\n key: \"bt5ra8\"\n }\n ]\n];\nconst Linkedin = createLucideIcon(\"linkedin\", __iconNode$bH);\nconst __iconNode$bG = [\n [\n \"path\",\n {\n d: \"m3 17 2 2 4-4\",\n key: \"1jhpwq\"\n }\n ],\n [\n \"path\",\n {\n d: \"m3 7 2 2 4-4\",\n key: \"1obspn\"\n }\n ],\n [\n \"path\",\n {\n d: \"M13 6h8\",\n key: \"15sg57\"\n }\n ],\n [\n \"path\",\n {\n d: \"M13 12h8\",\n key: \"h98zly\"\n }\n ],\n [\n \"path\",\n {\n d: \"M13 18h8\",\n key: \"oe0vm4\"\n }\n ]\n];\nconst ListChecks = createLucideIcon(\"list-checks\", __iconNode$bG);\nconst __iconNode$bF = [\n [\n \"path\",\n {\n d: \"M10 12h11\",\n key: \"6m4ad9\"\n }\n ],\n [\n \"path\",\n {\n d: \"M10 18h11\",\n key: \"11hvi2\"\n }\n ],\n [\n \"path\",\n {\n d: \"M10 6h11\",\n key: \"c7qv1k\"\n }\n ],\n [\n \"path\",\n {\n d: \"m3 10 3-3-3-3\",\n key: \"i7pm08\"\n }\n ],\n [\n \"path\",\n {\n d: \"m3 20 3-3-3-3\",\n key: \"20gx1n\"\n }\n ]\n];\nconst ListCollapse = createLucideIcon(\"list-collapse\", __iconNode$bF);\nconst __iconNode$bE = [\n [\n \"path\",\n {\n d: \"M16 12H3\",\n key: \"1a2rj7\"\n }\n ],\n [\n \"path\",\n {\n d: \"M16 6H3\",\n key: \"1wxfjs\"\n }\n ],\n [\n \"path\",\n {\n d: \"M10 18H3\",\n key: \"13769t\"\n }\n ],\n [\n \"path\",\n {\n d: \"M21 6v10a2 2 0 0 1-2 2h-5\",\n key: \"ilrcs8\"\n }\n ],\n [\n \"path\",\n {\n d: \"m16 16-2 2 2 2\",\n key: \"kkc6pm\"\n }\n ]\n];\nconst ListEnd = createLucideIcon(\"list-end\", __iconNode$bE);\nconst __iconNode$bD = [\n [\n \"path\",\n {\n d: \"M10 18h4\",\n key: \"1ulq68\"\n }\n ],\n [\n \"path\",\n {\n d: \"M11 6H3\",\n key: \"1u26ik\"\n }\n ],\n [\n \"path\",\n {\n d: \"M15 6h6\",\n key: \"1jlkvy\"\n }\n ],\n [\n \"path\",\n {\n d: \"M18 9V3\",\n key: \"xwwp7m\"\n }\n ],\n [\n \"path\",\n {\n d: \"M7 12h8\",\n key: \"7a1bxv\"\n }\n ]\n];\nconst ListFilterPlus = createLucideIcon(\"list-filter-plus\", __iconNode$bD);\nconst __iconNode$bC = [\n [\n \"path\",\n {\n d: \"M3 6h18\",\n key: \"d0wm0j\"\n }\n ],\n [\n \"path\",\n {\n d: \"M7 12h10\",\n key: \"b7w52i\"\n }\n ],\n [\n \"path\",\n {\n d: \"M10 18h4\",\n key: \"1ulq68\"\n }\n ]\n];\nconst ListFilter = createLucideIcon(\"list-filter\", __iconNode$bC);\nconst __iconNode$bB = [\n [\n \"path\",\n {\n d: \"M11 12H3\",\n key: \"51ecnj\"\n }\n ],\n [\n \"path\",\n {\n d: \"M16 6H3\",\n key: \"1wxfjs\"\n }\n ],\n [\n \"path\",\n {\n d: \"M16 18H3\",\n key: \"12xzn7\"\n }\n ],\n [\n \"path\",\n {\n d: \"M21 12h-6\",\n key: \"bt1uis\"\n }\n ]\n];\nconst ListMinus = createLucideIcon(\"list-minus\", __iconNode$bB);\nconst __iconNode$bA = [\n [\n \"path\",\n {\n d: \"M21 15V6\",\n key: \"h1cx4g\"\n }\n ],\n [\n \"path\",\n {\n d: \"M18.5 18a2.5 2.5 0 1 0 0-5 2.5 2.5 0 0 0 0 5Z\",\n key: \"8saifv\"\n }\n ],\n [\n \"path\",\n {\n d: \"M12 12H3\",\n key: \"18klou\"\n }\n ],\n [\n \"path\",\n {\n d: \"M16 6H3\",\n key: \"1wxfjs\"\n }\n ],\n [\n \"path\",\n {\n d: \"M12 18H3\",\n key: \"11ftsu\"\n }\n ]\n];\nconst ListMusic = createLucideIcon(\"list-music\", __iconNode$bA);\nconst __iconNode$bz = [\n [\n \"path\",\n {\n d: \"M10 12h11\",\n key: \"6m4ad9\"\n }\n ],\n [\n \"path\",\n {\n d: \"M10 18h11\",\n key: \"11hvi2\"\n }\n ],\n [\n \"path\",\n {\n d: \"M10 6h11\",\n key: \"c7qv1k\"\n }\n ],\n [\n \"path\",\n {\n d: \"M4 10h2\",\n key: \"16xx2s\"\n }\n ],\n [\n \"path\",\n {\n d: \"M4 6h1v4\",\n key: \"cnovpq\"\n }\n ],\n [\n \"path\",\n {\n d: \"M6 18H4c0-1 2-2 2-3s-1-1.5-2-1\",\n key: \"m9a95d\"\n }\n ]\n];\nconst ListOrdered = createLucideIcon(\"list-ordered\", __iconNode$bz);\nconst __iconNode$by = [\n [\n \"path\",\n {\n d: \"M11 12H3\",\n key: \"51ecnj\"\n }\n ],\n [\n \"path\",\n {\n d: \"M16 6H3\",\n key: \"1wxfjs\"\n }\n ],\n [\n \"path\",\n {\n d: \"M16 18H3\",\n key: \"12xzn7\"\n }\n ],\n [\n \"path\",\n {\n d: \"M18 9v6\",\n key: \"1twb98\"\n }\n ],\n [\n \"path\",\n {\n d: \"M21 12h-6\",\n key: \"bt1uis\"\n }\n ]\n];\nconst ListPlus = createLucideIcon(\"list-plus\", __iconNode$by);\nconst __iconNode$bx = [\n [\n \"path\",\n {\n d: \"M21 6H3\",\n key: \"1jwq7v\"\n }\n ],\n [\n \"path\",\n {\n d: \"M7 12H3\",\n key: \"13ou7f\"\n }\n ],\n [\n \"path\",\n {\n d: \"M7 18H3\",\n key: \"1sijw9\"\n }\n ],\n [\n \"path\",\n {\n d: \"M12 18a5 5 0 0 0 9-3 4.5 4.5 0 0 0-4.5-4.5c-1.33 0-2.54.54-3.41 1.41L11 14\",\n key: \"qth677\"\n }\n ],\n [\n \"path\",\n {\n d: \"M11 10v4h4\",\n key: \"172dkj\"\n }\n ]\n];\nconst ListRestart = createLucideIcon(\"list-restart\", __iconNode$bx);\nconst __iconNode$bw = [\n [\n \"path\",\n {\n d: \"M16 12H3\",\n key: \"1a2rj7\"\n }\n ],\n [\n \"path\",\n {\n d: \"M16 18H3\",\n key: \"12xzn7\"\n }\n ],\n [\n \"path\",\n {\n d: \"M10 6H3\",\n key: \"lf8lx7\"\n }\n ],\n [\n \"path\",\n {\n d: \"M21 18V8a2 2 0 0 0-2-2h-5\",\n key: \"1hghli\"\n }\n ],\n [\n \"path\",\n {\n d: \"m16 8-2-2 2-2\",\n key: \"160uvd\"\n }\n ]\n];\nconst ListStart = createLucideIcon(\"list-start\", __iconNode$bw);\nconst __iconNode$bv = [\n [\n \"rect\",\n {\n x: \"3\",\n y: \"5\",\n width: \"6\",\n height: \"6\",\n rx: \"1\",\n key: \"1defrl\"\n }\n ],\n [\n \"path\",\n {\n d: \"m3 17 2 2 4-4\",\n key: \"1jhpwq\"\n }\n ],\n [\n \"path\",\n {\n d: \"M13 6h8\",\n key: \"15sg57\"\n }\n ],\n [\n \"path\",\n {\n d: \"M13 12h8\",\n key: \"h98zly\"\n }\n ],\n [\n \"path\",\n {\n d: \"M13 18h8\",\n key: \"oe0vm4\"\n }\n ]\n];\nconst ListTodo = createLucideIcon(\"list-todo\", __iconNode$bv);\nconst __iconNode$bu = [\n [\n \"path\",\n {\n d: \"M21 12h-8\",\n key: \"1bmf0i\"\n }\n ],\n [\n \"path\",\n {\n d: \"M21 6H8\",\n key: \"1pqkrb\"\n }\n ],\n [\n \"path\",\n {\n d: \"M21 18h-8\",\n key: \"1tm79t\"\n }\n ],\n [\n \"path\",\n {\n d: \"M3 6v4c0 1.1.9 2 2 2h3\",\n key: \"1ywdgy\"\n }\n ],\n [\n \"path\",\n {\n d: \"M3 10v6c0 1.1.9 2 2 2h3\",\n key: \"2wc746\"\n }\n ]\n];\nconst ListTree = createLucideIcon(\"list-tree\", __iconNode$bu);\nconst __iconNode$bt = [\n [\n \"path\",\n {\n d: \"M12 12H3\",\n key: \"18klou\"\n }\n ],\n [\n \"path\",\n {\n d: \"M16 6H3\",\n key: \"1wxfjs\"\n }\n ],\n [\n \"path\",\n {\n d: \"M12 18H3\",\n key: \"11ftsu\"\n }\n ],\n [\n \"path\",\n {\n d: \"m16 12 5 3-5 3v-6Z\",\n key: \"zpskkp\"\n }\n ]\n];\nconst ListVideo = createLucideIcon(\"list-video\", __iconNode$bt);\nconst __iconNode$bs = [\n [\n \"path\",\n {\n d: \"M11 12H3\",\n key: \"51ecnj\"\n }\n ],\n [\n \"path\",\n {\n d: \"M16 6H3\",\n key: \"1wxfjs\"\n }\n ],\n [\n \"path\",\n {\n d: \"M16 18H3\",\n key: \"12xzn7\"\n }\n ],\n [\n \"path\",\n {\n d: \"m19 10-4 4\",\n key: \"1tz659\"\n }\n ],\n [\n \"path\",\n {\n d: \"m15 10 4 4\",\n key: \"1n7nei\"\n }\n ]\n];\nconst ListX = createLucideIcon(\"list-x\", __iconNode$bs);\nconst __iconNode$br = [\n [\n \"path\",\n {\n d: \"M3 12h.01\",\n key: \"nlz23k\"\n }\n ],\n [\n \"path\",\n {\n d: \"M3 18h.01\",\n key: \"1tta3j\"\n }\n ],\n [\n \"path\",\n {\n d: \"M3 6h.01\",\n key: \"1rqtza\"\n }\n ],\n [\n \"path\",\n {\n d: \"M8 12h13\",\n key: \"1za7za\"\n }\n ],\n [\n \"path\",\n {\n d: \"M8 18h13\",\n key: \"1lx6n3\"\n }\n ],\n [\n \"path\",\n {\n d: \"M8 6h13\",\n key: \"ik3vkj\"\n }\n ]\n];\nconst List = createLucideIcon(\"list\", __iconNode$br);\nconst __iconNode$bq = [\n [\n \"path\",\n {\n d: \"M21 12a9 9 0 1 1-6.219-8.56\",\n key: \"13zald\"\n }\n ]\n];\nconst LoaderCircle = createLucideIcon(\"loader-circle\", __iconNode$bq);\nconst __iconNode$bp = [\n [\n \"path\",\n {\n d: \"M22 12a1 1 0 0 1-10 0 1 1 0 0 0-10 0\",\n key: \"1lzz15\"\n }\n ],\n [\n \"path\",\n {\n d: \"M7 20.7a1 1 0 1 1 5-8.7 1 1 0 1 0 5-8.6\",\n key: \"1gnrpi\"\n }\n ],\n [\n \"path\",\n {\n d: \"M7 3.3a1 1 0 1 1 5 8.6 1 1 0 1 0 5 8.6\",\n key: \"u9yy5q\"\n }\n ],\n [\n \"circle\",\n {\n cx: \"12\",\n cy: \"12\",\n r: \"10\",\n key: \"1mglay\"\n }\n ]\n];\nconst LoaderPinwheel = createLucideIcon(\"loader-pinwheel\", __iconNode$bp);\nconst __iconNode$bo = [\n [\n \"path\",\n {\n d: \"M12 2v4\",\n key: \"3427ic\"\n }\n ],\n [\n \"path\",\n {\n d: \"m16.2 7.8 2.9-2.9\",\n key: \"r700ao\"\n }\n ],\n [\n \"path\",\n {\n d: \"M18 12h4\",\n key: \"wj9ykh\"\n }\n ],\n [\n \"path\",\n {\n d: \"m16.2 16.2 2.9 2.9\",\n key: \"1bxg5t\"\n }\n ],\n [\n \"path\",\n {\n d: \"M12 18v4\",\n key: \"jadmvz\"\n }\n ],\n [\n \"path\",\n {\n d: \"m4.9 19.1 2.9-2.9\",\n key: \"bwix9q\"\n }\n ],\n [\n \"path\",\n {\n d: \"M2 12h4\",\n key: \"j09sii\"\n }\n ],\n [\n \"path\",\n {\n d: \"m4.9 4.9 2.9 2.9\",\n key: \"giyufr\"\n }\n ]\n];\nconst Loader = createLucideIcon(\"loader\", __iconNode$bo);\nconst __iconNode$bn = [\n [\n \"path\",\n {\n d: \"M12 19v3\",\n key: \"npa21l\"\n }\n ],\n [\n \"path\",\n {\n d: \"M12 2v3\",\n key: \"qbqxhf\"\n }\n ],\n [\n \"path\",\n {\n d: \"M18.89 13.24a7 7 0 0 0-8.13-8.13\",\n key: \"1v9jrh\"\n }\n ],\n [\n \"path\",\n {\n d: \"M19 12h3\",\n key: \"osuazr\"\n }\n ],\n [\n \"path\",\n {\n d: \"M2 12h3\",\n key: \"1wrr53\"\n }\n ],\n [\n \"path\",\n {\n d: \"m2 2 20 20\",\n key: \"1ooewy\"\n }\n ],\n [\n \"path\",\n {\n d: \"M7.05 7.05a7 7 0 0 0 9.9 9.9\",\n key: \"rc5l2e\"\n }\n ]\n];\nconst LocateOff = createLucideIcon(\"locate-off\", __iconNode$bn);\nconst __iconNode$bm = [\n [\n \"line\",\n {\n x1: \"2\",\n x2: \"5\",\n y1: \"12\",\n y2: \"12\",\n key: \"bvdh0s\"\n }\n ],\n [\n \"line\",\n {\n x1: \"19\",\n x2: \"22\",\n y1: \"12\",\n y2: \"12\",\n key: \"1tbv5k\"\n }\n ],\n [\n \"line\",\n {\n x1: \"12\",\n x2: \"12\",\n y1: \"2\",\n y2: \"5\",\n key: \"11lu5j\"\n }\n ],\n [\n \"line\",\n {\n x1: \"12\",\n x2: \"12\",\n y1: \"19\",\n y2: \"22\",\n key: \"x3vr5v\"\n }\n ],\n [\n \"circle\",\n {\n cx: \"12\",\n cy: \"12\",\n r: \"7\",\n key: \"fim9np\"\n }\n ],\n [\n \"circle\",\n {\n cx: \"12\",\n cy: \"12\",\n r: \"3\",\n key: \"1v7zrd\"\n }\n ]\n];\nconst LocateFixed = createLucideIcon(\"locate-fixed\", __iconNode$bm);\nconst __iconNode$bl = [\n [\n \"line\",\n {\n x1: \"2\",\n x2: \"5\",\n y1: \"12\",\n y2: \"12\",\n key: \"bvdh0s\"\n }\n ],\n [\n \"line\",\n {\n x1: \"19\",\n x2: \"22\",\n y1: \"12\",\n y2: \"12\",\n key: \"1tbv5k\"\n }\n ],\n [\n \"line\",\n {\n x1: \"12\",\n x2: \"12\",\n y1: \"2\",\n y2: \"5\",\n key: \"11lu5j\"\n }\n ],\n [\n \"line\",\n {\n x1: \"12\",\n x2: \"12\",\n y1: \"19\",\n y2: \"22\",\n key: \"x3vr5v\"\n }\n ],\n [\n \"circle\",\n {\n cx: \"12\",\n cy: \"12\",\n r: \"7\",\n key: \"fim9np\"\n }\n ]\n];\nconst Locate = createLucideIcon(\"locate\", __iconNode$bl);\nconst __iconNode$bk = [\n [\n \"path\",\n {\n d: \"M17.97 9.304A8 8 0 0 0 2 10c0 4.69 4.887 9.562 7.022 11.468\",\n key: \"1fahp3\"\n }\n ],\n [\n \"path\",\n {\n d: \"M21.378 16.626a1 1 0 0 0-3.004-3.004l-4.01 4.012a2 2 0 0 0-.506.854l-.837 2.87a.5.5 0 0 0 .62.62l2.87-.837a2 2 0 0 0 .854-.506z\",\n key: \"1817ys\"\n }\n ],\n [\n \"circle\",\n {\n cx: \"10\",\n cy: \"10\",\n r: \"3\",\n key: \"1ns7v1\"\n }\n ]\n];\nconst LocationEdit = createLucideIcon(\"location-edit\", __iconNode$bk);\nconst __iconNode$bj = [\n [\n \"circle\",\n {\n cx: \"12\",\n cy: \"16\",\n r: \"1\",\n key: \"1au0dj\"\n }\n ],\n [\n \"rect\",\n {\n width: \"18\",\n height: \"12\",\n x: \"3\",\n y: \"10\",\n rx: \"2\",\n key: \"l0tzu3\"\n }\n ],\n [\n \"path\",\n {\n d: \"M7 10V7a5 5 0 0 1 9.33-2.5\",\n key: \"car5b7\"\n }\n ]\n];\nconst LockKeyholeOpen = createLucideIcon(\"lock-keyhole-open\", __iconNode$bj);\nconst __iconNode$bi = [\n [\n \"circle\",\n {\n cx: \"12\",\n cy: \"16\",\n r: \"1\",\n key: \"1au0dj\"\n }\n ],\n [\n \"rect\",\n {\n x: \"3\",\n y: \"10\",\n width: \"18\",\n height: \"12\",\n rx: \"2\",\n key: \"6s8ecr\"\n }\n ],\n [\n \"path\",\n {\n d: \"M7 10V7a5 5 0 0 1 10 0v3\",\n key: \"1pqi11\"\n }\n ]\n];\nconst LockKeyhole = createLucideIcon(\"lock-keyhole\", __iconNode$bi);\nconst __iconNode$bh = [\n [\n \"rect\",\n {\n width: \"18\",\n height: \"11\",\n x: \"3\",\n y: \"11\",\n rx: \"2\",\n ry: \"2\",\n key: \"1w4ew1\"\n }\n ],\n [\n \"path\",\n {\n d: \"M7 11V7a5 5 0 0 1 9.9-1\",\n key: \"1mm8w8\"\n }\n ]\n];\nconst LockOpen = createLucideIcon(\"lock-open\", __iconNode$bh);\nconst __iconNode$bg = [\n [\n \"path\",\n {\n d: \"m10 17 5-5-5-5\",\n key: \"1bsop3\"\n }\n ],\n [\n \"path\",\n {\n d: \"M15 12H3\",\n key: \"6jk70r\"\n }\n ],\n [\n \"path\",\n {\n d: \"M15 3h4a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2h-4\",\n key: \"u53s6r\"\n }\n ]\n];\nconst LogIn = createLucideIcon(\"log-in\", __iconNode$bg);\nconst __iconNode$bf = [\n [\n \"rect\",\n {\n width: \"18\",\n height: \"11\",\n x: \"3\",\n y: \"11\",\n rx: \"2\",\n ry: \"2\",\n key: \"1w4ew1\"\n }\n ],\n [\n \"path\",\n {\n d: \"M7 11V7a5 5 0 0 1 10 0v4\",\n key: \"fwvmzm\"\n }\n ]\n];\nconst Lock = createLucideIcon(\"lock\", __iconNode$bf);\nconst __iconNode$be = [\n [\n \"path\",\n {\n d: \"m16 17 5-5-5-5\",\n key: \"1bji2h\"\n }\n ],\n [\n \"path\",\n {\n d: \"M21 12H9\",\n key: \"dn1m92\"\n }\n ],\n [\n \"path\",\n {\n d: \"M9 21H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h4\",\n key: \"1uf3rs\"\n }\n ]\n];\nconst LogOut = createLucideIcon(\"log-out\", __iconNode$be);\nconst __iconNode$bd = [\n [\n \"path\",\n {\n d: \"M13 12h8\",\n key: \"h98zly\"\n }\n ],\n [\n \"path\",\n {\n d: \"M13 18h8\",\n key: \"oe0vm4\"\n }\n ],\n [\n \"path\",\n {\n d: \"M13 6h8\",\n key: \"15sg57\"\n }\n ],\n [\n \"path\",\n {\n d: \"M3 12h1\",\n key: \"lp3yf2\"\n }\n ],\n [\n \"path\",\n {\n d: \"M3 18h1\",\n key: \"1eiwyy\"\n }\n ],\n [\n \"path\",\n {\n d: \"M3 6h1\",\n key: \"rgxa97\"\n }\n ],\n [\n \"path\",\n {\n d: \"M8 12h1\",\n key: \"1con00\"\n }\n ],\n [\n \"path\",\n {\n d: \"M8 18h1\",\n key: \"13wk12\"\n }\n ],\n [\n \"path\",\n {\n d: \"M8 6h1\",\n key: \"tn6mkg\"\n }\n ]\n];\nconst Logs = createLucideIcon(\"logs\", __iconNode$bd);\nconst __iconNode$bc = [\n [\n \"circle\",\n {\n cx: \"11\",\n cy: \"11\",\n r: \"8\",\n key: \"4ej97u\"\n }\n ],\n [\n \"path\",\n {\n d: \"m21 21-4.3-4.3\",\n key: \"1qie3q\"\n }\n ],\n [\n \"path\",\n {\n d: \"M11 11a2 2 0 0 0 4 0 4 4 0 0 0-8 0 6 6 0 0 0 12 0\",\n key: \"107gwy\"\n }\n ]\n];\nconst Lollipop = createLucideIcon(\"lollipop\", __iconNode$bc);\nconst __iconNode$bb = [\n [\n \"path\",\n {\n d: \"M6 20a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h12a2 2 0 0 1 2 2v10a2 2 0 0 1-2 2\",\n key: \"1m57jg\"\n }\n ],\n [\n \"path\",\n {\n d: \"M8 18V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v14\",\n key: \"1l99gc\"\n }\n ],\n [\n \"path\",\n {\n d: \"M10 20h4\",\n key: \"ni2waw\"\n }\n ],\n [\n \"circle\",\n {\n cx: \"16\",\n cy: \"20\",\n r: \"2\",\n key: \"1vifvg\"\n }\n ],\n [\n \"circle\",\n {\n cx: \"8\",\n cy: \"20\",\n r: \"2\",\n key: \"ckkr5m\"\n }\n ]\n];\nconst Luggage = createLucideIcon(\"luggage\", __iconNode$bb);\nconst __iconNode$ba = [\n [\n \"path\",\n {\n d: \"m6 15-4-4 6.75-6.77a7.79 7.79 0 0 1 11 11L13 22l-4-4 6.39-6.36a2.14 2.14 0 0 0-3-3L6 15\",\n key: \"1i3lhw\"\n }\n ],\n [\n \"path\",\n {\n d: \"m5 8 4 4\",\n key: \"j6kj7e\"\n }\n ],\n [\n \"path\",\n {\n d: \"m12 15 4 4\",\n key: \"lnac28\"\n }\n ]\n];\nconst Magnet = createLucideIcon(\"magnet\", __iconNode$ba);\nconst __iconNode$b9 = [\n [\n \"path\",\n {\n d: \"M22 13V6a2 2 0 0 0-2-2H4a2 2 0 0 0-2 2v12c0 1.1.9 2 2 2h8\",\n key: \"12jkf8\"\n }\n ],\n [\n \"path\",\n {\n d: \"m22 7-8.97 5.7a1.94 1.94 0 0 1-2.06 0L2 7\",\n key: \"1ocrg3\"\n }\n ],\n [\n \"path\",\n {\n d: \"m16 19 2 2 4-4\",\n key: \"1b14m6\"\n }\n ]\n];\nconst MailCheck = createLucideIcon(\"mail-check\", __iconNode$b9);\nconst __iconNode$b8 = [\n [\n \"path\",\n {\n d: \"M22 15V6a2 2 0 0 0-2-2H4a2 2 0 0 0-2 2v12c0 1.1.9 2 2 2h8\",\n key: \"fuxbkv\"\n }\n ],\n [\n \"path\",\n {\n d: \"m22 7-8.97 5.7a1.94 1.94 0 0 1-2.06 0L2 7\",\n key: \"1ocrg3\"\n }\n ],\n [\n \"path\",\n {\n d: \"M16 19h6\",\n key: \"xwg31i\"\n }\n ]\n];\nconst MailMinus = createLucideIcon(\"mail-minus\", __iconNode$b8);\nconst __iconNode$b7 = [\n [\n \"path\",\n {\n d: \"M21.2 8.4c.5.38.8.97.8 1.6v10a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2V10a2 2 0 0 1 .8-1.6l8-6a2 2 0 0 1 2.4 0l8 6Z\",\n key: \"1jhwl8\"\n }\n ],\n [\n \"path\",\n {\n d: \"m22 10-8.97 5.7a1.94 1.94 0 0 1-2.06 0L2 10\",\n key: \"1qfld7\"\n }\n ]\n];\nconst MailOpen = createLucideIcon(\"mail-open\", __iconNode$b7);\nconst __iconNode$b6 = [\n [\n \"path\",\n {\n d: \"M22 13V6a2 2 0 0 0-2-2H4a2 2 0 0 0-2 2v12c0 1.1.9 2 2 2h8\",\n key: \"12jkf8\"\n }\n ],\n [\n \"path\",\n {\n d: \"m22 7-8.97 5.7a1.94 1.94 0 0 1-2.06 0L2 7\",\n key: \"1ocrg3\"\n }\n ],\n [\n \"path\",\n {\n d: \"M19 16v6\",\n key: \"tddt3s\"\n }\n ],\n [\n \"path\",\n {\n d: \"M16 19h6\",\n key: \"xwg31i\"\n }\n ]\n];\nconst MailPlus = createLucideIcon(\"mail-plus\", __iconNode$b6);\nconst __iconNode$b5 = [\n [\n \"path\",\n {\n d: \"M22 10.5V6a2 2 0 0 0-2-2H4a2 2 0 0 0-2 2v12c0 1.1.9 2 2 2h12.5\",\n key: \"e61zoh\"\n }\n ],\n [\n \"path\",\n {\n d: \"m22 7-8.97 5.7a1.94 1.94 0 0 1-2.06 0L2 7\",\n key: \"1ocrg3\"\n }\n ],\n [\n \"path\",\n {\n d: \"M18 15.28c.2-.4.5-.8.9-1a2.1 2.1 0 0 1 2.6.4c.3.4.5.8.5 1.3 0 1.3-2 2-2 2\",\n key: \"7z9rxb\"\n }\n ],\n [\n \"path\",\n {\n d: \"M20 22v.01\",\n key: \"12bgn6\"\n }\n ]\n];\nconst MailQuestionMark = createLucideIcon(\"mail-question-mark\", __iconNode$b5);\nconst __iconNode$b4 = [\n [\n \"path\",\n {\n d: \"M22 12.5V6a2 2 0 0 0-2-2H4a2 2 0 0 0-2 2v12c0 1.1.9 2 2 2h7.5\",\n key: \"w80f2v\"\n }\n ],\n [\n \"path\",\n {\n d: \"m22 7-8.97 5.7a1.94 1.94 0 0 1-2.06 0L2 7\",\n key: \"1ocrg3\"\n }\n ],\n [\n \"path\",\n {\n d: \"M18 21a3 3 0 1 0 0-6 3 3 0 0 0 0 6Z\",\n key: \"8lzu5m\"\n }\n ],\n [\n \"circle\",\n {\n cx: \"18\",\n cy: \"18\",\n r: \"3\",\n key: \"1xkwt0\"\n }\n ],\n [\n \"path\",\n {\n d: \"m22 22-1.5-1.5\",\n key: \"1x83k4\"\n }\n ]\n];\nconst MailSearch = createLucideIcon(\"mail-search\", __iconNode$b4);\nconst __iconNode$b3 = [\n [\n \"path\",\n {\n d: \"M22 10.5V6a2 2 0 0 0-2-2H4a2 2 0 0 0-2 2v12c0 1.1.9 2 2 2h12.5\",\n key: \"e61zoh\"\n }\n ],\n [\n \"path\",\n {\n d: \"m22 7-8.97 5.7a1.94 1.94 0 0 1-2.06 0L2 7\",\n key: \"1ocrg3\"\n }\n ],\n [\n \"path\",\n {\n d: \"M20 14v4\",\n key: \"1hm744\"\n }\n ],\n [\n \"path\",\n {\n d: \"M20 22v.01\",\n key: \"12bgn6\"\n }\n ]\n];\nconst MailWarning = createLucideIcon(\"mail-warning\", __iconNode$b3);\nconst __iconNode$b2 = [\n [\n \"path\",\n {\n d: \"M22 13V6a2 2 0 0 0-2-2H4a2 2 0 0 0-2 2v12c0 1.1.9 2 2 2h9\",\n key: \"1j9vog\"\n }\n ],\n [\n \"path\",\n {\n d: \"m22 7-8.97 5.7a1.94 1.94 0 0 1-2.06 0L2 7\",\n key: \"1ocrg3\"\n }\n ],\n [\n \"path\",\n {\n d: \"m17 17 4 4\",\n key: \"1b3523\"\n }\n ],\n [\n \"path\",\n {\n d: \"m21 17-4 4\",\n key: \"uinynz\"\n }\n ]\n];\nconst MailX = createLucideIcon(\"mail-x\", __iconNode$b2);\nconst __iconNode$b1 = [\n [\n \"path\",\n {\n d: \"m22 7-8.991 5.727a2 2 0 0 1-2.009 0L2 7\",\n key: \"132q7q\"\n }\n ],\n [\n \"rect\",\n {\n x: \"2\",\n y: \"4\",\n width: \"20\",\n height: \"16\",\n rx: \"2\",\n key: \"izxlao\"\n }\n ]\n];\nconst Mail = createLucideIcon(\"mail\", __iconNode$b1);\nconst __iconNode$b0 = [\n [\n \"path\",\n {\n d: \"M22 17a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2V9.5C2 7 4 5 6.5 5H18c2.2 0 4 1.8 4 4v8Z\",\n key: \"1lbycx\"\n }\n ],\n [\n \"polyline\",\n {\n points: \"15,9 18,9 18,11\",\n key: \"1pm9c0\"\n }\n ],\n [\n \"path\",\n {\n d: \"M6.5 5C9 5 11 7 11 9.5V17a2 2 0 0 1-2 2\",\n key: \"15i455\"\n }\n ],\n [\n \"line\",\n {\n x1: \"6\",\n x2: \"7\",\n y1: \"10\",\n y2: \"10\",\n key: \"1e2scm\"\n }\n ]\n];\nconst Mailbox = createLucideIcon(\"mailbox\", __iconNode$b0);\nconst __iconNode$a$ = [\n [\n \"rect\",\n {\n width: \"16\",\n height: \"13\",\n x: \"6\",\n y: \"4\",\n rx: \"2\",\n key: \"1drq3f\"\n }\n ],\n [\n \"path\",\n {\n d: \"m22 7-7.1 3.78c-.57.3-1.23.3-1.8 0L6 7\",\n key: \"xn252p\"\n }\n ],\n [\n \"path\",\n {\n d: \"M2 8v11c0 1.1.9 2 2 2h14\",\n key: \"n13cji\"\n }\n ]\n];\nconst Mails = createLucideIcon(\"mails\", __iconNode$a$);\nconst __iconNode$a_ = [\n [\n \"path\",\n {\n d: \"M20 10c0 4.993-5.539 10.193-7.399 11.799a1 1 0 0 1-1.202 0C9.539 20.193 4 14.993 4 10a8 8 0 0 1 16 0\",\n key: \"1r0f0z\"\n }\n ],\n [\n \"path\",\n {\n d: \"m9 10 2 2 4-4\",\n key: \"1gnqz4\"\n }\n ]\n];\nconst MapPinCheckInside = createLucideIcon(\"map-pin-check-inside\", __iconNode$a_);\nconst __iconNode$aZ = [\n [\n \"path\",\n {\n d: \"M19.43 12.935c.357-.967.57-1.955.57-2.935a8 8 0 0 0-16 0c0 4.993 5.539 10.193 7.399 11.799a1 1 0 0 0 1.202 0 32.197 32.197 0 0 0 .813-.728\",\n key: \"1dq61d\"\n }\n ],\n [\n \"circle\",\n {\n cx: \"12\",\n cy: \"10\",\n r: \"3\",\n key: \"ilqhr7\"\n }\n ],\n [\n \"path\",\n {\n d: \"m16 18 2 2 4-4\",\n key: \"1mkfmb\"\n }\n ]\n];\nconst MapPinCheck = createLucideIcon(\"map-pin-check\", __iconNode$aZ);\nconst __iconNode$aY = [\n [\n \"path\",\n {\n d: \"M15 22a1 1 0 0 1-1-1v-4a1 1 0 0 1 .445-.832l3-2a1 1 0 0 1 1.11 0l3 2A1 1 0 0 1 22 17v4a1 1 0 0 1-1 1z\",\n key: \"1p1rcz\"\n }\n ],\n [\n \"path\",\n {\n d: \"M18 10a8 8 0 0 0-16 0c0 4.993 5.539 10.193 7.399 11.799a1 1 0 0 0 .601.2\",\n key: \"mcbcs9\"\n }\n ],\n [\n \"path\",\n {\n d: \"M18 22v-3\",\n key: \"1t1ugv\"\n }\n ],\n [\n \"circle\",\n {\n cx: \"10\",\n cy: \"10\",\n r: \"3\",\n key: \"1ns7v1\"\n }\n ]\n];\nconst MapPinHouse = createLucideIcon(\"map-pin-house\", __iconNode$aY);\nconst __iconNode$aX = [\n [\n \"path\",\n {\n d: \"M20 10c0 4.993-5.539 10.193-7.399 11.799a1 1 0 0 1-1.202 0C9.539 20.193 4 14.993 4 10a8 8 0 0 1 16 0\",\n key: \"1r0f0z\"\n }\n ],\n [\n \"path\",\n {\n d: \"M9 10h6\",\n key: \"9gxzsh\"\n }\n ]\n];\nconst MapPinMinusInside = createLucideIcon(\"map-pin-minus-inside\", __iconNode$aX);\nconst __iconNode$aW = [\n [\n \"path\",\n {\n d: \"M18.977 14C19.6 12.701 20 11.343 20 10a8 8 0 0 0-16 0c0 4.993 5.539 10.193 7.399 11.799a1 1 0 0 0 1.202 0 32 32 0 0 0 .824-.738\",\n key: \"11uxia\"\n }\n ],\n [\n \"circle\",\n {\n cx: \"12\",\n cy: \"10\",\n r: \"3\",\n key: \"ilqhr7\"\n }\n ],\n [\n \"path\",\n {\n d: \"M16 18h6\",\n key: \"987eiv\"\n }\n ]\n];\nconst MapPinMinus = createLucideIcon(\"map-pin-minus\", __iconNode$aW);\nconst __iconNode$aV = [\n [\n \"path\",\n {\n d: \"M12.75 7.09a3 3 0 0 1 2.16 2.16\",\n key: \"1d4wjd\"\n }\n ],\n [\n \"path\",\n {\n d: \"M17.072 17.072c-1.634 2.17-3.527 3.912-4.471 4.727a1 1 0 0 1-1.202 0C9.539 20.193 4 14.993 4 10a8 8 0 0 1 1.432-4.568\",\n key: \"12yil7\"\n }\n ],\n [\n \"path\",\n {\n d: \"m2 2 20 20\",\n key: \"1ooewy\"\n }\n ],\n [\n \"path\",\n {\n d: \"M8.475 2.818A8 8 0 0 1 20 10c0 1.183-.31 2.377-.81 3.533\",\n key: \"lhrkcz\"\n }\n ],\n [\n \"path\",\n {\n d: \"M9.13 9.13a3 3 0 0 0 3.74 3.74\",\n key: \"13wojd\"\n }\n ]\n];\nconst MapPinOff = createLucideIcon(\"map-pin-off\", __iconNode$aV);\nconst __iconNode$aU = [\n [\n \"path\",\n {\n d: \"M20 10c0 4.993-5.539 10.193-7.399 11.799a1 1 0 0 1-1.202 0C9.539 20.193 4 14.993 4 10a8 8 0 0 1 16 0\",\n key: \"1r0f0z\"\n }\n ],\n [\n \"path\",\n {\n d: \"M12 7v6\",\n key: \"lw1j43\"\n }\n ],\n [\n \"path\",\n {\n d: \"M9 10h6\",\n key: \"9gxzsh\"\n }\n ]\n];\nconst MapPinPlusInside = createLucideIcon(\"map-pin-plus-inside\", __iconNode$aU);\nconst __iconNode$aT = [\n [\n \"path\",\n {\n d: \"M19.914 11.105A7.298 7.298 0 0 0 20 10a8 8 0 0 0-16 0c0 4.993 5.539 10.193 7.399 11.799a1 1 0 0 0 1.202 0 32 32 0 0 0 .824-.738\",\n key: \"fcdtly\"\n }\n ],\n [\n \"circle\",\n {\n cx: \"12\",\n cy: \"10\",\n r: \"3\",\n key: \"ilqhr7\"\n }\n ],\n [\n \"path\",\n {\n d: \"M16 18h6\",\n key: \"987eiv\"\n }\n ],\n [\n \"path\",\n {\n d: \"M19 15v6\",\n key: \"10aioa\"\n }\n ]\n];\nconst MapPinPlus = createLucideIcon(\"map-pin-plus\", __iconNode$aT);\nconst __iconNode$aS = [\n [\n \"path\",\n {\n d: \"M20 10c0 4.993-5.539 10.193-7.399 11.799a1 1 0 0 1-1.202 0C9.539 20.193 4 14.993 4 10a8 8 0 0 1 16 0\",\n key: \"1r0f0z\"\n }\n ],\n [\n \"path\",\n {\n d: \"m14.5 7.5-5 5\",\n key: \"3lb6iw\"\n }\n ],\n [\n \"path\",\n {\n d: \"m9.5 7.5 5 5\",\n key: \"ko136h\"\n }\n ]\n];\nconst MapPinXInside = createLucideIcon(\"map-pin-x-inside\", __iconNode$aS);\nconst __iconNode$aR = [\n [\n \"path\",\n {\n d: \"M19.752 11.901A7.78 7.78 0 0 0 20 10a8 8 0 0 0-16 0c0 4.993 5.539 10.193 7.399 11.799a1 1 0 0 0 1.202 0 19 19 0 0 0 .09-.077\",\n key: \"y0ewhp\"\n }\n ],\n [\n \"circle\",\n {\n cx: \"12\",\n cy: \"10\",\n r: \"3\",\n key: \"ilqhr7\"\n }\n ],\n [\n \"path\",\n {\n d: \"m21.5 15.5-5 5\",\n key: \"11iqnx\"\n }\n ],\n [\n \"path\",\n {\n d: \"m21.5 20.5-5-5\",\n key: \"1bylgx\"\n }\n ]\n];\nconst MapPinX = createLucideIcon(\"map-pin-x\", __iconNode$aR);\nconst __iconNode$aQ = [\n [\n \"path\",\n {\n d: \"M20 10c0 4.993-5.539 10.193-7.399 11.799a1 1 0 0 1-1.202 0C9.539 20.193 4 14.993 4 10a8 8 0 0 1 16 0\",\n key: \"1r0f0z\"\n }\n ],\n [\n \"circle\",\n {\n cx: \"12\",\n cy: \"10\",\n r: \"3\",\n key: \"ilqhr7\"\n }\n ]\n];\nconst MapPin = createLucideIcon(\"map-pin\", __iconNode$aQ);\nconst __iconNode$aP = [\n [\n \"path\",\n {\n d: \"M18 8c0 3.613-3.869 7.429-5.393 8.795a1 1 0 0 1-1.214 0C9.87 15.429 6 11.613 6 8a6 6 0 0 1 12 0\",\n key: \"11u0oz\"\n }\n ],\n [\n \"circle\",\n {\n cx: \"12\",\n cy: \"8\",\n r: \"2\",\n key: \"1822b1\"\n }\n ],\n [\n \"path\",\n {\n d: \"M8.714 14h-3.71a1 1 0 0 0-.948.683l-2.004 6A1 1 0 0 0 3 22h18a1 1 0 0 0 .948-1.316l-2-6a1 1 0 0 0-.949-.684h-3.712\",\n key: \"q8zwxj\"\n }\n ]\n];\nconst MapPinned = createLucideIcon(\"map-pinned\", __iconNode$aP);\nconst __iconNode$aO = [\n [\n \"path\",\n {\n d: \"m11 19-1.106-.552a2 2 0 0 0-1.788 0l-3.659 1.83A1 1 0 0 1 3 19.381V6.618a1 1 0 0 1 .553-.894l4.553-2.277a2 2 0 0 1 1.788 0l4.212 2.106a2 2 0 0 0 1.788 0l3.659-1.83A1 1 0 0 1 21 4.619V12\",\n key: \"svfegj\"\n }\n ],\n [\n \"path\",\n {\n d: \"M15 5.764V12\",\n key: \"1ocw4k\"\n }\n ],\n [\n \"path\",\n {\n d: \"M18 15v6\",\n key: \"9wciyi\"\n }\n ],\n [\n \"path\",\n {\n d: \"M21 18h-6\",\n key: \"139f0c\"\n }\n ],\n [\n \"path\",\n {\n d: \"M9 3.236v15\",\n key: \"1uimfh\"\n }\n ]\n];\nconst MapPlus = createLucideIcon(\"map-plus\", __iconNode$aO);\nconst __iconNode$aN = [\n [\n \"path\",\n {\n d: \"M14.106 5.553a2 2 0 0 0 1.788 0l3.659-1.83A1 1 0 0 1 21 4.619v12.764a1 1 0 0 1-.553.894l-4.553 2.277a2 2 0 0 1-1.788 0l-4.212-2.106a2 2 0 0 0-1.788 0l-3.659 1.83A1 1 0 0 1 3 19.381V6.618a1 1 0 0 1 .553-.894l4.553-2.277a2 2 0 0 1 1.788 0z\",\n key: \"169xi5\"\n }\n ],\n [\n \"path\",\n {\n d: \"M15 5.764v15\",\n key: \"1pn4in\"\n }\n ],\n [\n \"path\",\n {\n d: \"M9 3.236v15\",\n key: \"1uimfh\"\n }\n ]\n];\nconst Map = createLucideIcon(\"map\", __iconNode$aN);\nconst __iconNode$aM = [\n [\n \"path\",\n {\n d: \"m14 6 4 4\",\n key: \"1q72g9\"\n }\n ],\n [\n \"path\",\n {\n d: \"M17 3h4v4\",\n key: \"19p9u1\"\n }\n ],\n [\n \"path\",\n {\n d: \"m21 3-7.75 7.75\",\n key: \"1cjbfd\"\n }\n ],\n [\n \"circle\",\n {\n cx: \"9\",\n cy: \"15\",\n r: \"6\",\n key: \"bx5svt\"\n }\n ]\n];\nconst MarsStroke = createLucideIcon(\"mars-stroke\", __iconNode$aM);\nconst __iconNode$aL = [\n [\n \"path\",\n {\n d: \"M16 3h5v5\",\n key: \"1806ms\"\n }\n ],\n [\n \"path\",\n {\n d: \"m21 3-6.75 6.75\",\n key: \"pv0uzu\"\n }\n ],\n [\n \"circle\",\n {\n cx: \"10\",\n cy: \"14\",\n r: \"6\",\n key: \"1qwbdc\"\n }\n ]\n];\nconst Mars = createLucideIcon(\"mars\", __iconNode$aL);\nconst __iconNode$aK = [\n [\n \"path\",\n {\n d: \"M15 3h6v6\",\n key: \"1q9fwt\"\n }\n ],\n [\n \"path\",\n {\n d: \"m21 3-7 7\",\n key: \"1l2asr\"\n }\n ],\n [\n \"path\",\n {\n d: \"m3 21 7-7\",\n key: \"tjx5ai\"\n }\n ],\n [\n \"path\",\n {\n d: \"M9 21H3v-6\",\n key: \"wtvkvv\"\n }\n ]\n];\nconst Maximize2 = createLucideIcon(\"maximize-2\", __iconNode$aK);\nconst __iconNode$aJ = [\n [\n \"path\",\n {\n d: \"M8 22h8\",\n key: \"rmew8v\"\n }\n ],\n [\n \"path\",\n {\n d: \"M12 11v11\",\n key: \"ur9y6a\"\n }\n ],\n [\n \"path\",\n {\n d: \"m19 3-7 8-7-8Z\",\n key: \"1sgpiw\"\n }\n ]\n];\nconst Martini = createLucideIcon(\"martini\", __iconNode$aJ);\nconst __iconNode$aI = [\n [\n \"path\",\n {\n d: \"M8 3H5a2 2 0 0 0-2 2v3\",\n key: \"1dcmit\"\n }\n ],\n [\n \"path\",\n {\n d: \"M21 8V5a2 2 0 0 0-2-2h-3\",\n key: \"1e4gt3\"\n }\n ],\n [\n \"path\",\n {\n d: \"M3 16v3a2 2 0 0 0 2 2h3\",\n key: \"wsl5sc\"\n }\n ],\n [\n \"path\",\n {\n d: \"M16 21h3a2 2 0 0 0 2-2v-3\",\n key: \"18trek\"\n }\n ]\n];\nconst Maximize = createLucideIcon(\"maximize\", __iconNode$aI);\nconst __iconNode$aH = [\n [\n \"path\",\n {\n d: \"M7.21 15 2.66 7.14a2 2 0 0 1 .13-2.2L4.4 2.8A2 2 0 0 1 6 2h12a2 2 0 0 1 1.6.8l1.6 2.14a2 2 0 0 1 .14 2.2L16.79 15\",\n key: \"143lza\"\n }\n ],\n [\n \"path\",\n {\n d: \"M11 12 5.12 2.2\",\n key: \"qhuxz6\"\n }\n ],\n [\n \"path\",\n {\n d: \"m13 12 5.88-9.8\",\n key: \"hbye0f\"\n }\n ],\n [\n \"path\",\n {\n d: \"M8 7h8\",\n key: \"i86dvs\"\n }\n ],\n [\n \"circle\",\n {\n cx: \"12\",\n cy: \"17\",\n r: \"5\",\n key: \"qbz8iq\"\n }\n ],\n [\n \"path\",\n {\n d: \"M12 18v-2h-.5\",\n key: \"fawc4q\"\n }\n ]\n];\nconst Medal = createLucideIcon(\"medal\", __iconNode$aH);\nconst __iconNode$aG = [\n [\n \"path\",\n {\n d: \"M11.636 6A13 13 0 0 0 19.4 3.2 1 1 0 0 1 21 4v11.344\",\n key: \"bycexp\"\n }\n ],\n [\n \"path\",\n {\n d: \"M14.378 14.357A13 13 0 0 0 11 14H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h1\",\n key: \"1t17s6\"\n }\n ],\n [\n \"path\",\n {\n d: \"m2 2 20 20\",\n key: \"1ooewy\"\n }\n ],\n [\n \"path\",\n {\n d: \"M6 14a12 12 0 0 0 2.4 7.2 2 2 0 0 0 3.2-2.4A8 8 0 0 1 10 14\",\n key: \"1853fq\"\n }\n ],\n [\n \"path\",\n {\n d: \"M8 8v6\",\n key: \"aieo6v\"\n }\n ]\n];\nconst MegaphoneOff = createLucideIcon(\"megaphone-off\", __iconNode$aG);\nconst __iconNode$aF = [\n [\n \"path\",\n {\n d: \"M11 6a13 13 0 0 0 8.4-2.8A1 1 0 0 1 21 4v12a1 1 0 0 1-1.6.8A13 13 0 0 0 11 14H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2z\",\n key: \"q8bfy3\"\n }\n ],\n [\n \"path\",\n {\n d: \"M6 14a12 12 0 0 0 2.4 7.2 2 2 0 0 0 3.2-2.4A8 8 0 0 1 10 14\",\n key: \"1853fq\"\n }\n ],\n [\n \"path\",\n {\n d: \"M8 6v8\",\n key: \"15ugcq\"\n }\n ]\n];\nconst Megaphone = createLucideIcon(\"megaphone\", __iconNode$aF);\nconst __iconNode$aE = [\n [\n \"circle\",\n {\n cx: \"12\",\n cy: \"12\",\n r: \"10\",\n key: \"1mglay\"\n }\n ],\n [\n \"line\",\n {\n x1: \"8\",\n x2: \"16\",\n y1: \"15\",\n y2: \"15\",\n key: \"1xb1d9\"\n }\n ],\n [\n \"line\",\n {\n x1: \"9\",\n x2: \"9.01\",\n y1: \"9\",\n y2: \"9\",\n key: \"yxxnd0\"\n }\n ],\n [\n \"line\",\n {\n x1: \"15\",\n x2: \"15.01\",\n y1: \"9\",\n y2: \"9\",\n key: \"1p4y9e\"\n }\n ]\n];\nconst Meh = createLucideIcon(\"meh\", __iconNode$aE);\nconst __iconNode$aD = [\n [\n \"path\",\n {\n d: \"M6 19v-3\",\n key: \"1nvgqn\"\n }\n ],\n [\n \"path\",\n {\n d: \"M10 19v-3\",\n key: \"iu8nkm\"\n }\n ],\n [\n \"path\",\n {\n d: \"M14 19v-3\",\n key: \"kcehxu\"\n }\n ],\n [\n \"path\",\n {\n d: \"M18 19v-3\",\n key: \"1vh91z\"\n }\n ],\n [\n \"path\",\n {\n d: \"M8 11V9\",\n key: \"63erz4\"\n }\n ],\n [\n \"path\",\n {\n d: \"M16 11V9\",\n key: \"fru6f3\"\n }\n ],\n [\n \"path\",\n {\n d: \"M12 11V9\",\n key: \"ha00sb\"\n }\n ],\n [\n \"path\",\n {\n d: \"M2 15h20\",\n key: \"16ne18\"\n }\n ],\n [\n \"path\",\n {\n d: \"M2 7a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2v1.1a2 2 0 0 0 0 3.837V17a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2v-5.1a2 2 0 0 0 0-3.837Z\",\n key: \"lhddv3\"\n }\n ]\n];\nconst MemoryStick = createLucideIcon(\"memory-stick\", __iconNode$aD);\nconst __iconNode$aC = [\n [\n \"path\",\n {\n d: \"M4 12h16\",\n key: \"1lakjw\"\n }\n ],\n [\n \"path\",\n {\n d: \"M4 18h16\",\n key: \"19g7jn\"\n }\n ],\n [\n \"path\",\n {\n d: \"M4 6h16\",\n key: \"1o0s65\"\n }\n ]\n];\nconst Menu = createLucideIcon(\"menu\", __iconNode$aC);\nconst __iconNode$aB = [\n [\n \"path\",\n {\n d: \"m8 6 4-4 4 4\",\n key: \"ybng9g\"\n }\n ],\n [\n \"path\",\n {\n d: \"M12 2v10.3a4 4 0 0 1-1.172 2.872L4 22\",\n key: \"1hyw0i\"\n }\n ],\n [\n \"path\",\n {\n d: \"m20 22-5-5\",\n key: \"1m27yz\"\n }\n ]\n];\nconst Merge = createLucideIcon(\"merge\", __iconNode$aB);\nconst __iconNode$aA = [\n [\n \"path\",\n {\n d: \"M10 9.5 8 12l2 2.5\",\n key: \"3mjy60\"\n }\n ],\n [\n \"path\",\n {\n d: \"m14 9.5 2 2.5-2 2.5\",\n key: \"1bir2l\"\n }\n ],\n [\n \"path\",\n {\n d: \"M7.9 20A9 9 0 1 0 4 16.1L2 22z\",\n key: \"k85zhp\"\n }\n ]\n];\nconst MessageCircleCode = createLucideIcon(\"message-circle-code\", __iconNode$aA);\nconst __iconNode$az = [\n [\n \"path\",\n {\n d: \"M7.9 20A9 9 0 1 0 4 16.1L2 22Z\",\n key: \"vv11sd\"\n }\n ],\n [\n \"path\",\n {\n d: \"M15.8 9.2a2.5 2.5 0 0 0-3.5 0l-.3.4-.35-.3a2.42 2.42 0 1 0-3.2 3.6l3.6 3.5 3.6-3.5c1.2-1.2 1.1-2.7.2-3.7\",\n key: \"43lnbm\"\n }\n ]\n];\nconst MessageCircleHeart = createLucideIcon(\"message-circle-heart\", __iconNode$az);\nconst __iconNode$ay = [\n [\n \"path\",\n {\n d: \"M13.5 3.1c-.5 0-1-.1-1.5-.1s-1 .1-1.5.1\",\n key: \"16ll65\"\n }\n ],\n [\n \"path\",\n {\n d: \"M19.3 6.8a10.45 10.45 0 0 0-2.1-2.1\",\n key: \"1nq77a\"\n }\n ],\n [\n \"path\",\n {\n d: \"M20.9 13.5c.1-.5.1-1 .1-1.5s-.1-1-.1-1.5\",\n key: \"1sf7wn\"\n }\n ],\n [\n \"path\",\n {\n d: \"M17.2 19.3a10.45 10.45 0 0 0 2.1-2.1\",\n key: \"x1hs5g\"\n }\n ],\n [\n \"path\",\n {\n d: \"M10.5 20.9c.5.1 1 .1 1.5.1s1-.1 1.5-.1\",\n key: \"19m18z\"\n }\n ],\n [\n \"path\",\n {\n d: \"M3.5 17.5 2 22l4.5-1.5\",\n key: \"1f36qi\"\n }\n ],\n [\n \"path\",\n {\n d: \"M3.1 10.5c0 .5-.1 1-.1 1.5s.1 1 .1 1.5\",\n key: \"1vz3ju\"\n }\n ],\n [\n \"path\",\n {\n d: \"M6.8 4.7a10.45 10.45 0 0 0-2.1 2.1\",\n key: \"19f9do\"\n }\n ]\n];\nconst MessageCircleDashed = createLucideIcon(\"message-circle-dashed\", __iconNode$ay);\nconst __iconNode$ax = [\n [\n \"path\",\n {\n d: \"M7.9 20A9 9 0 1 0 4 16.1L2 22Z\",\n key: \"vv11sd\"\n }\n ],\n [\n \"path\",\n {\n d: \"M8 12h.01\",\n key: \"czm47f\"\n }\n ],\n [\n \"path\",\n {\n d: \"M12 12h.01\",\n key: \"1mp3jc\"\n }\n ],\n [\n \"path\",\n {\n d: \"M16 12h.01\",\n key: \"1l6xoz\"\n }\n ]\n];\nconst MessageCircleMore = createLucideIcon(\"message-circle-more\", __iconNode$ax);\nconst __iconNode$aw = [\n [\n \"path\",\n {\n d: \"M20.5 14.9A9 9 0 0 0 9.1 3.5\",\n key: \"1iebmn\"\n }\n ],\n [\n \"path\",\n {\n d: \"m2 2 20 20\",\n key: \"1ooewy\"\n }\n ],\n [\n \"path\",\n {\n d: \"M5.6 5.6C3 8.3 2.2 12.5 4 16l-2 6 6-2c3.4 1.8 7.6 1.1 10.3-1.7\",\n key: \"1ov8ce\"\n }\n ]\n];\nconst MessageCircleOff = createLucideIcon(\"message-circle-off\", __iconNode$aw);\nconst __iconNode$av = [\n [\n \"path\",\n {\n d: \"M7.9 20A9 9 0 1 0 4 16.1L2 22Z\",\n key: \"vv11sd\"\n }\n ],\n [\n \"path\",\n {\n d: \"M8 12h8\",\n key: \"1wcyev\"\n }\n ],\n [\n \"path\",\n {\n d: \"M12 8v8\",\n key: \"napkw2\"\n }\n ]\n];\nconst MessageCirclePlus = createLucideIcon(\"message-circle-plus\", __iconNode$av);\nconst __iconNode$au = [\n [\n \"path\",\n {\n d: \"M7.9 20A9 9 0 1 0 4 16.1L2 22Z\",\n key: \"vv11sd\"\n }\n ],\n [\n \"path\",\n {\n d: \"M9.09 9a3 3 0 0 1 5.83 1c0 2-3 3-3 3\",\n key: \"1u773s\"\n }\n ],\n [\n \"path\",\n {\n d: \"M12 17h.01\",\n key: \"p32p05\"\n }\n ]\n];\nconst MessageCircleQuestionMark = createLucideIcon(\"message-circle-question-mark\", __iconNode$au);\nconst __iconNode$at = [\n [\n \"path\",\n {\n d: \"M7.9 20A9 9 0 1 0 4 16.1L2 22Z\",\n key: \"vv11sd\"\n }\n ],\n [\n \"path\",\n {\n d: \"m10 15-3-3 3-3\",\n key: \"1pgupc\"\n }\n ],\n [\n \"path\",\n {\n d: \"M7 12h7a2 2 0 0 1 2 2v1\",\n key: \"1gheu4\"\n }\n ]\n];\nconst MessageCircleReply = createLucideIcon(\"message-circle-reply\", __iconNode$at);\nconst __iconNode$as = [\n [\n \"path\",\n {\n d: \"M7.9 20A9 9 0 1 0 4 16.1L2 22Z\",\n key: \"vv11sd\"\n }\n ],\n [\n \"path\",\n {\n d: \"M12 8v4\",\n key: \"1got3b\"\n }\n ],\n [\n \"path\",\n {\n d: \"M12 16h.01\",\n key: \"1drbdi\"\n }\n ]\n];\nconst MessageCircleWarning = createLucideIcon(\"message-circle-warning\", __iconNode$as);\nconst __iconNode$ar = [\n [\n \"path\",\n {\n d: \"M7.9 20A9 9 0 1 0 4 16.1L2 22Z\",\n key: \"vv11sd\"\n }\n ],\n [\n \"path\",\n {\n d: \"m15 9-6 6\",\n key: \"1uzhvr\"\n }\n ],\n [\n \"path\",\n {\n d: \"m9 9 6 6\",\n key: \"z0biqf\"\n }\n ]\n];\nconst MessageCircleX = createLucideIcon(\"message-circle-x\", __iconNode$ar);\nconst __iconNode$aq = [\n [\n \"path\",\n {\n d: \"M7.9 20A9 9 0 1 0 4 16.1L2 22Z\",\n key: \"vv11sd\"\n }\n ]\n];\nconst MessageCircle = createLucideIcon(\"message-circle\", __iconNode$aq);\nconst __iconNode$ap = [\n [\n \"path\",\n {\n d: \"M10 7.5 8 10l2 2.5\",\n key: \"xb17xw\"\n }\n ],\n [\n \"path\",\n {\n d: \"m14 7.5 2 2.5-2 2.5\",\n key: \"5rap1v\"\n }\n ],\n [\n \"path\",\n {\n d: \"M21 15a2 2 0 0 1-2 2H7l-4 4V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2z\",\n key: \"1lielz\"\n }\n ]\n];\nconst MessageSquareCode = createLucideIcon(\"message-square-code\", __iconNode$ap);\nconst __iconNode$ao = [\n [\n \"path\",\n {\n d: \"M10 17H7l-4 4v-7\",\n key: \"1r71xu\"\n }\n ],\n [\n \"path\",\n {\n d: \"M14 17h1\",\n key: \"nufu4t\"\n }\n ],\n [\n \"path\",\n {\n d: \"M14 3h1\",\n key: \"1ec4yj\"\n }\n ],\n [\n \"path\",\n {\n d: \"M19 3a2 2 0 0 1 2 2\",\n key: \"18rm91\"\n }\n ],\n [\n \"path\",\n {\n d: \"M21 14v1a2 2 0 0 1-2 2\",\n key: \"29akq3\"\n }\n ],\n [\n \"path\",\n {\n d: \"M21 9v1\",\n key: \"mxsmne\"\n }\n ],\n [\n \"path\",\n {\n d: \"M3 9v1\",\n key: \"1r0deq\"\n }\n ],\n [\n \"path\",\n {\n d: \"M5 3a2 2 0 0 0-2 2\",\n key: \"y57alp\"\n }\n ],\n [\n \"path\",\n {\n d: \"M9 3h1\",\n key: \"1yesri\"\n }\n ]\n];\nconst MessageSquareDashed = createLucideIcon(\"message-square-dashed\", __iconNode$ao);\nconst __iconNode$an = [\n [\n \"path\",\n {\n d: \"m5 19-2 2V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2v10a2 2 0 0 1-2 2\",\n key: \"1xuzuj\"\n }\n ],\n [\n \"path\",\n {\n d: \"M9 10h6\",\n key: \"9gxzsh\"\n }\n ],\n [\n \"path\",\n {\n d: \"M12 7v6\",\n key: \"lw1j43\"\n }\n ],\n [\n \"path\",\n {\n d: \"M9 17h6\",\n key: \"r8uit2\"\n }\n ]\n];\nconst MessageSquareDiff = createLucideIcon(\"message-square-diff\", __iconNode$an);\nconst __iconNode$am = [\n [\n \"path\",\n {\n d: \"M11.7 3H5a2 2 0 0 0-2 2v16l4-4h12a2 2 0 0 0 2-2v-2.7\",\n key: \"uodpkb\"\n }\n ],\n [\n \"circle\",\n {\n cx: \"18\",\n cy: \"6\",\n r: \"3\",\n key: \"1h7g24\"\n }\n ]\n];\nconst MessageSquareDot = createLucideIcon(\"message-square-dot\", __iconNode$am);\nconst __iconNode$al = [\n [\n \"path\",\n {\n d: \"M21 15a2 2 0 0 1-2 2H7l-4 4V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2z\",\n key: \"1lielz\"\n }\n ],\n [\n \"path\",\n {\n d: \"M14.8 7.5a1.84 1.84 0 0 0-2.6 0l-.2.3-.3-.3a1.84 1.84 0 1 0-2.4 2.8L12 13l2.7-2.7c.9-.9.8-2.1.1-2.8\",\n key: \"1blaws\"\n }\n ]\n];\nconst MessageSquareHeart = createLucideIcon(\"message-square-heart\", __iconNode$al);\nconst __iconNode$ak = [\n [\n \"path\",\n {\n d: \"M19 15v-2a2 2 0 1 0-4 0v2\",\n key: \"h3d1vz\"\n }\n ],\n [\n \"path\",\n {\n d: \"M9 17H7l-4 4V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2v3.5\",\n key: \"xsnnhn\"\n }\n ],\n [\n \"rect\",\n {\n x: \"13\",\n y: \"15\",\n width: \"8\",\n height: \"5\",\n rx: \"1\",\n key: \"1ccwuk\"\n }\n ]\n];\nconst MessageSquareLock = createLucideIcon(\"message-square-lock\", __iconNode$ak);\nconst __iconNode$aj = [\n [\n \"path\",\n {\n d: \"M21 15a2 2 0 0 1-2 2H7l-4 4V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2z\",\n key: \"1lielz\"\n }\n ],\n [\n \"path\",\n {\n d: \"M8 10h.01\",\n key: \"19clt8\"\n }\n ],\n [\n \"path\",\n {\n d: \"M12 10h.01\",\n key: \"1nrarc\"\n }\n ],\n [\n \"path\",\n {\n d: \"M16 10h.01\",\n key: \"1m94wz\"\n }\n ]\n];\nconst MessageSquareMore = createLucideIcon(\"message-square-more\", __iconNode$aj);\nconst __iconNode$ai = [\n [\n \"path\",\n {\n d: \"M21 15V5a2 2 0 0 0-2-2H9\",\n key: \"43el77\"\n }\n ],\n [\n \"path\",\n {\n d: \"m2 2 20 20\",\n key: \"1ooewy\"\n }\n ],\n [\n \"path\",\n {\n d: \"M3.6 3.6c-.4.3-.6.8-.6 1.4v16l4-4h10\",\n key: \"pwpm4a\"\n }\n ]\n];\nconst MessageSquareOff = createLucideIcon(\"message-square-off\", __iconNode$ai);\nconst __iconNode$ah = [\n [\n \"path\",\n {\n d: \"M21 15a2 2 0 0 1-2 2H7l-4 4V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2z\",\n key: \"1lielz\"\n }\n ],\n [\n \"path\",\n {\n d: \"M12 7v6\",\n key: \"lw1j43\"\n }\n ],\n [\n \"path\",\n {\n d: \"M9 10h6\",\n key: \"9gxzsh\"\n }\n ]\n];\nconst MessageSquarePlus = createLucideIcon(\"message-square-plus\", __iconNode$ah);\nconst __iconNode$ag = [\n [\n \"path\",\n {\n d: \"M21 15a2 2 0 0 1-2 2H7l-4 4V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2z\",\n key: \"1lielz\"\n }\n ],\n [\n \"path\",\n {\n d: \"M8 12a2 2 0 0 0 2-2V8H8\",\n key: \"1jfesj\"\n }\n ],\n [\n \"path\",\n {\n d: \"M14 12a2 2 0 0 0 2-2V8h-2\",\n key: \"1dq9mh\"\n }\n ]\n];\nconst MessageSquareQuote = createLucideIcon(\"message-square-quote\", __iconNode$ag);\nconst __iconNode$af = [\n [\n \"path\",\n {\n d: \"M21 15a2 2 0 0 1-2 2H7l-4 4V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2z\",\n key: \"1lielz\"\n }\n ],\n [\n \"path\",\n {\n d: \"m10 7-3 3 3 3\",\n key: \"1eugdv\"\n }\n ],\n [\n \"path\",\n {\n d: \"M17 13v-1a2 2 0 0 0-2-2H7\",\n key: \"ernfh3\"\n }\n ]\n];\nconst MessageSquareReply = createLucideIcon(\"message-square-reply\", __iconNode$af);\nconst __iconNode$ae = [\n [\n \"path\",\n {\n d: \"M21 12v3a2 2 0 0 1-2 2H7l-4 4V5a2 2 0 0 1 2-2h7\",\n key: \"tqtdkg\"\n }\n ],\n [\n \"path\",\n {\n d: \"M16 3h5v5\",\n key: \"1806ms\"\n }\n ],\n [\n \"path\",\n {\n d: \"m16 8 5-5\",\n key: \"15mbrl\"\n }\n ]\n];\nconst MessageSquareShare = createLucideIcon(\"message-square-share\", __iconNode$ae);\nconst __iconNode$ad = [\n [\n \"path\",\n {\n d: \"M21 15a2 2 0 0 1-2 2H7l-4 4V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2z\",\n key: \"1lielz\"\n }\n ],\n [\n \"path\",\n {\n d: \"M13 8H7\",\n key: \"14i4kc\"\n }\n ],\n [\n \"path\",\n {\n d: \"M17 12H7\",\n key: \"16if0g\"\n }\n ]\n];\nconst MessageSquareText = createLucideIcon(\"message-square-text\", __iconNode$ad);\nconst __iconNode$ac = [\n [\n \"path\",\n {\n d: \"M21 15a2 2 0 0 1-2 2H7l-4 4V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2z\",\n key: \"1lielz\"\n }\n ],\n [\n \"path\",\n {\n d: \"M12 7v2\",\n key: \"stiyo7\"\n }\n ],\n [\n \"path\",\n {\n d: \"M12 13h.01\",\n key: \"y0uutt\"\n }\n ]\n];\nconst MessageSquareWarning = createLucideIcon(\"message-square-warning\", __iconNode$ac);\nconst __iconNode$ab = [\n [\n \"path\",\n {\n d: \"M21 15a2 2 0 0 1-2 2H7l-4 4V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2z\",\n key: \"1lielz\"\n }\n ],\n [\n \"path\",\n {\n d: \"m14.5 7.5-5 5\",\n key: \"3lb6iw\"\n }\n ],\n [\n \"path\",\n {\n d: \"m9.5 7.5 5 5\",\n key: \"ko136h\"\n }\n ]\n];\nconst MessageSquareX = createLucideIcon(\"message-square-x\", __iconNode$ab);\nconst __iconNode$aa = [\n [\n \"path\",\n {\n d: \"M21 15a2 2 0 0 1-2 2H7l-4 4V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2z\",\n key: \"1lielz\"\n }\n ]\n];\nconst MessageSquare = createLucideIcon(\"message-square\", __iconNode$aa);\nconst __iconNode$a9 = [\n [\n \"path\",\n {\n d: \"M14 9a2 2 0 0 1-2 2H6l-4 4V4a2 2 0 0 1 2-2h8a2 2 0 0 1 2 2z\",\n key: \"p1xzt8\"\n }\n ],\n [\n \"path\",\n {\n d: \"M18 9h2a2 2 0 0 1 2 2v11l-4-4h-6a2 2 0 0 1-2-2v-1\",\n key: \"1cx29u\"\n }\n ]\n];\nconst MessagesSquare = createLucideIcon(\"messages-square\", __iconNode$a9);\nconst __iconNode$a8 = [\n [\n \"line\",\n {\n x1: \"2\",\n x2: \"22\",\n y1: \"2\",\n y2: \"22\",\n key: \"a6p6uj\"\n }\n ],\n [\n \"path\",\n {\n d: \"M18.89 13.23A7.12 7.12 0 0 0 19 12v-2\",\n key: \"80xlxr\"\n }\n ],\n [\n \"path\",\n {\n d: \"M5 10v2a7 7 0 0 0 12 5\",\n key: \"p2k8kg\"\n }\n ],\n [\n \"path\",\n {\n d: \"M15 9.34V5a3 3 0 0 0-5.68-1.33\",\n key: \"1gzdoj\"\n }\n ],\n [\n \"path\",\n {\n d: \"M9 9v3a3 3 0 0 0 5.12 2.12\",\n key: \"r2i35w\"\n }\n ],\n [\n \"line\",\n {\n x1: \"12\",\n x2: \"12\",\n y1: \"19\",\n y2: \"22\",\n key: \"x3vr5v\"\n }\n ]\n];\nconst MicOff = createLucideIcon(\"mic-off\", __iconNode$a8);\nconst __iconNode$a7 = [\n [\n \"path\",\n {\n d: \"m11 7.601-5.994 8.19a1 1 0 0 0 .1 1.298l.817.818a1 1 0 0 0 1.314.087L15.09 12\",\n key: \"80a601\"\n }\n ],\n [\n \"path\",\n {\n d: \"M16.5 21.174C15.5 20.5 14.372 20 13 20c-2.058 0-3.928 2.356-6 2-2.072-.356-2.775-3.369-1.5-4.5\",\n key: \"j0ngtp\"\n }\n ],\n [\n \"circle\",\n {\n cx: \"16\",\n cy: \"7\",\n r: \"5\",\n key: \"d08jfb\"\n }\n ]\n];\nconst MicVocal = createLucideIcon(\"mic-vocal\", __iconNode$a7);\nconst __iconNode$a6 = [\n [\n \"path\",\n {\n d: \"M12 19v3\",\n key: \"npa21l\"\n }\n ],\n [\n \"path\",\n {\n d: \"M19 10v2a7 7 0 0 1-14 0v-2\",\n key: \"1vc78b\"\n }\n ],\n [\n \"rect\",\n {\n x: \"9\",\n y: \"2\",\n width: \"6\",\n height: \"13\",\n rx: \"3\",\n key: \"s6n7sd\"\n }\n ]\n];\nconst Mic = createLucideIcon(\"mic\", __iconNode$a6);\nconst __iconNode$a5 = [\n [\n \"path\",\n {\n d: \"M18 12h2\",\n key: \"quuxs7\"\n }\n ],\n [\n \"path\",\n {\n d: \"M18 16h2\",\n key: \"zsn3lv\"\n }\n ],\n [\n \"path\",\n {\n d: \"M18 20h2\",\n key: \"9x5y9y\"\n }\n ],\n [\n \"path\",\n {\n d: \"M18 4h2\",\n key: \"1luxfb\"\n }\n ],\n [\n \"path\",\n {\n d: \"M18 8h2\",\n key: \"nxqzg\"\n }\n ],\n [\n \"path\",\n {\n d: \"M4 12h2\",\n key: \"1ltxp0\"\n }\n ],\n [\n \"path\",\n {\n d: \"M4 16h2\",\n key: \"8a5zha\"\n }\n ],\n [\n \"path\",\n {\n d: \"M4 20h2\",\n key: \"27dk57\"\n }\n ],\n [\n \"path\",\n {\n d: \"M4 4h2\",\n key: \"10groj\"\n }\n ],\n [\n \"path\",\n {\n d: \"M4 8h2\",\n key: \"18vq6w\"\n }\n ],\n [\n \"path\",\n {\n d: \"M8 2a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h8a2 2 0 0 0 2-2V4a2 2 0 0 0-2-2h-1.5c-.276 0-.494.227-.562.495a2 2 0 0 1-3.876 0C9.994 2.227 9.776 2 9.5 2z\",\n key: \"1681fp\"\n }\n ]\n];\nconst Microchip = createLucideIcon(\"microchip\", __iconNode$a5);\nconst __iconNode$a4 = [\n [\n \"path\",\n {\n d: \"M6 18h8\",\n key: \"1borvv\"\n }\n ],\n [\n \"path\",\n {\n d: \"M3 22h18\",\n key: \"8prr45\"\n }\n ],\n [\n \"path\",\n {\n d: \"M14 22a7 7 0 1 0 0-14h-1\",\n key: \"1jwaiy\"\n }\n ],\n [\n \"path\",\n {\n d: \"M9 14h2\",\n key: \"197e7h\"\n }\n ],\n [\n \"path\",\n {\n d: \"M9 12a2 2 0 0 1-2-2V6h6v4a2 2 0 0 1-2 2Z\",\n key: \"1bmzmy\"\n }\n ],\n [\n \"path\",\n {\n d: \"M12 6V3a1 1 0 0 0-1-1H9a1 1 0 0 0-1 1v3\",\n key: \"1drr47\"\n }\n ]\n];\nconst Microscope = createLucideIcon(\"microscope\", __iconNode$a4);\nconst __iconNode$a3 = [\n [\n \"rect\",\n {\n width: \"20\",\n height: \"15\",\n x: \"2\",\n y: \"4\",\n rx: \"2\",\n key: \"2no95f\"\n }\n ],\n [\n \"rect\",\n {\n width: \"8\",\n height: \"7\",\n x: \"6\",\n y: \"8\",\n rx: \"1\",\n key: \"zh9wx\"\n }\n ],\n [\n \"path\",\n {\n d: \"M18 8v7\",\n key: \"o5zi4n\"\n }\n ],\n [\n \"path\",\n {\n d: \"M6 19v2\",\n key: \"1loha6\"\n }\n ],\n [\n \"path\",\n {\n d: \"M18 19v2\",\n key: \"1dawf0\"\n }\n ]\n];\nconst Microwave = createLucideIcon(\"microwave\", __iconNode$a3);\nconst __iconNode$a2 = [\n [\n \"path\",\n {\n d: \"M12 13v8\",\n key: \"1l5pq0\"\n }\n ],\n [\n \"path\",\n {\n d: \"M12 3v3\",\n key: \"1n5kay\"\n }\n ],\n [\n \"path\",\n {\n d: \"M4 6a1 1 0 0 0-1 1v5a1 1 0 0 0 1 1h13a2 2 0 0 0 1.152-.365l3.424-2.317a1 1 0 0 0 0-1.635l-3.424-2.318A2 2 0 0 0 17 6z\",\n key: \"1btarq\"\n }\n ]\n];\nconst Milestone = createLucideIcon(\"milestone\", __iconNode$a2);\nconst __iconNode$a1 = [\n [\n \"path\",\n {\n d: \"M8 2h8\",\n key: \"1ssgc1\"\n }\n ],\n [\n \"path\",\n {\n d: \"M9 2v1.343M15 2v2.789a4 4 0 0 0 .672 2.219l.656.984a4 4 0 0 1 .672 2.22v1.131M7.8 7.8l-.128.192A4 4 0 0 0 7 10.212V20a2 2 0 0 0 2 2h6a2 2 0 0 0 2-2v-3\",\n key: \"y0ejgx\"\n }\n ],\n [\n \"path\",\n {\n d: \"M7 15a6.47 6.47 0 0 1 5 0 6.472 6.472 0 0 0 3.435.435\",\n key: \"iaxqsy\"\n }\n ],\n [\n \"line\",\n {\n x1: \"2\",\n x2: \"22\",\n y1: \"2\",\n y2: \"22\",\n key: \"a6p6uj\"\n }\n ]\n];\nconst MilkOff = createLucideIcon(\"milk-off\", __iconNode$a1);\nconst __iconNode$a0 = [\n [\n \"path\",\n {\n d: \"M8 2h8\",\n key: \"1ssgc1\"\n }\n ],\n [\n \"path\",\n {\n d: \"M9 2v2.789a4 4 0 0 1-.672 2.219l-.656.984A4 4 0 0 0 7 10.212V20a2 2 0 0 0 2 2h6a2 2 0 0 0 2-2v-9.789a4 4 0 0 0-.672-2.219l-.656-.984A4 4 0 0 1 15 4.788V2\",\n key: \"qtp12x\"\n }\n ],\n [\n \"path\",\n {\n d: \"M7 15a6.472 6.472 0 0 1 5 0 6.47 6.47 0 0 0 5 0\",\n key: \"ygeh44\"\n }\n ]\n];\nconst Milk = createLucideIcon(\"milk\", __iconNode$a0);\nconst __iconNode$9$ = [\n [\n \"path\",\n {\n d: \"m14 10 7-7\",\n key: \"oa77jy\"\n }\n ],\n [\n \"path\",\n {\n d: \"M20 10h-6V4\",\n key: \"mjg0md\"\n }\n ],\n [\n \"path\",\n {\n d: \"m3 21 7-7\",\n key: \"tjx5ai\"\n }\n ],\n [\n \"path\",\n {\n d: \"M4 14h6v6\",\n key: \"rmj7iw\"\n }\n ]\n];\nconst Minimize2 = createLucideIcon(\"minimize-2\", __iconNode$9$);\nconst __iconNode$9_ = [\n [\n \"path\",\n {\n d: \"M8 3v3a2 2 0 0 1-2 2H3\",\n key: \"hohbtr\"\n }\n ],\n [\n \"path\",\n {\n d: \"M21 8h-3a2 2 0 0 1-2-2V3\",\n key: \"5jw1f3\"\n }\n ],\n [\n \"path\",\n {\n d: \"M3 16h3a2 2 0 0 1 2 2v3\",\n key: \"198tvr\"\n }\n ],\n [\n \"path\",\n {\n d: \"M16 21v-3a2 2 0 0 1 2-2h3\",\n key: \"ph8mxp\"\n }\n ]\n];\nconst Minimize = createLucideIcon(\"minimize\", __iconNode$9_);\nconst __iconNode$9Z = [\n [\n \"path\",\n {\n d: \"M5 12h14\",\n key: \"1ays0h\"\n }\n ]\n];\nconst Minus = createLucideIcon(\"minus\", __iconNode$9Z);\nconst __iconNode$9Y = [\n [\n \"path\",\n {\n d: \"m9 10 2 2 4-4\",\n key: \"1gnqz4\"\n }\n ],\n [\n \"rect\",\n {\n width: \"20\",\n height: \"14\",\n x: \"2\",\n y: \"3\",\n rx: \"2\",\n key: \"48i651\"\n }\n ],\n [\n \"path\",\n {\n d: \"M12 17v4\",\n key: \"1riwvh\"\n }\n ],\n [\n \"path\",\n {\n d: \"M8 21h8\",\n key: \"1ev6f3\"\n }\n ]\n];\nconst MonitorCheck = createLucideIcon(\"monitor-check\", __iconNode$9Y);\nconst __iconNode$9X = [\n [\n \"path\",\n {\n d: \"M12 17v4\",\n key: \"1riwvh\"\n }\n ],\n [\n \"path\",\n {\n d: \"m14.305 7.53.923-.382\",\n key: \"1mlnsw\"\n }\n ],\n [\n \"path\",\n {\n d: \"m15.228 4.852-.923-.383\",\n key: \"82mpwg\"\n }\n ],\n [\n \"path\",\n {\n d: \"m16.852 3.228-.383-.924\",\n key: \"ln4sir\"\n }\n ],\n [\n \"path\",\n {\n d: \"m16.852 8.772-.383.923\",\n key: \"1dejw0\"\n }\n ],\n [\n \"path\",\n {\n d: \"m19.148 3.228.383-.924\",\n key: \"192kgf\"\n }\n ],\n [\n \"path\",\n {\n d: \"m19.53 9.696-.382-.924\",\n key: \"fiavlr\"\n }\n ],\n [\n \"path\",\n {\n d: \"m20.772 4.852.924-.383\",\n key: \"1j8mgp\"\n }\n ],\n [\n \"path\",\n {\n d: \"m20.772 7.148.924.383\",\n key: \"zix9be\"\n }\n ],\n [\n \"path\",\n {\n d: \"M22 13v2a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h7\",\n key: \"1tnzv8\"\n }\n ],\n [\n \"path\",\n {\n d: \"M8 21h8\",\n key: \"1ev6f3\"\n }\n ],\n [\n \"circle\",\n {\n cx: \"18\",\n cy: \"6\",\n r: \"3\",\n key: \"1h7g24\"\n }\n ]\n];\nconst MonitorCog = createLucideIcon(\"monitor-cog\", __iconNode$9X);\nconst __iconNode$9W = [\n [\n \"circle\",\n {\n cx: \"19\",\n cy: \"6\",\n r: \"3\",\n key: \"108a5v\"\n }\n ],\n [\n \"path\",\n {\n d: \"M22 12v3a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h9\",\n key: \"1fet9y\"\n }\n ],\n [\n \"path\",\n {\n d: \"M12 17v4\",\n key: \"1riwvh\"\n }\n ],\n [\n \"path\",\n {\n d: \"M8 21h8\",\n key: \"1ev6f3\"\n }\n ]\n];\nconst MonitorDot = createLucideIcon(\"monitor-dot\", __iconNode$9W);\nconst __iconNode$9V = [\n [\n \"path\",\n {\n d: \"M12 13V7\",\n key: \"h0r20n\"\n }\n ],\n [\n \"path\",\n {\n d: \"m15 10-3 3-3-3\",\n key: \"lzhmyn\"\n }\n ],\n [\n \"rect\",\n {\n width: \"20\",\n height: \"14\",\n x: \"2\",\n y: \"3\",\n rx: \"2\",\n key: \"48i651\"\n }\n ],\n [\n \"path\",\n {\n d: \"M12 17v4\",\n key: \"1riwvh\"\n }\n ],\n [\n \"path\",\n {\n d: \"M8 21h8\",\n key: \"1ev6f3\"\n }\n ]\n];\nconst MonitorDown = createLucideIcon(\"monitor-down\", __iconNode$9V);\nconst __iconNode$9U = [\n [\n \"path\",\n {\n d: \"M17 17H4a2 2 0 0 1-2-2V5c0-1.5 1-2 1-2\",\n key: \"k0q8oc\"\n }\n ],\n [\n \"path\",\n {\n d: \"M22 15V5a2 2 0 0 0-2-2H9\",\n key: \"cp1ac0\"\n }\n ],\n [\n \"path\",\n {\n d: \"M8 21h8\",\n key: \"1ev6f3\"\n }\n ],\n [\n \"path\",\n {\n d: \"M12 17v4\",\n key: \"1riwvh\"\n }\n ],\n [\n \"path\",\n {\n d: \"m2 2 20 20\",\n key: \"1ooewy\"\n }\n ]\n];\nconst MonitorOff = createLucideIcon(\"monitor-off\", __iconNode$9U);\nconst __iconNode$9T = [\n [\n \"path\",\n {\n d: \"M10 13V7\",\n key: \"1u13u9\"\n }\n ],\n [\n \"path\",\n {\n d: \"M14 13V7\",\n key: \"1vj9om\"\n }\n ],\n [\n \"rect\",\n {\n width: \"20\",\n height: \"14\",\n x: \"2\",\n y: \"3\",\n rx: \"2\",\n key: \"48i651\"\n }\n ],\n [\n \"path\",\n {\n d: \"M12 17v4\",\n key: \"1riwvh\"\n }\n ],\n [\n \"path\",\n {\n d: \"M8 21h8\",\n key: \"1ev6f3\"\n }\n ]\n];\nconst MonitorPause = createLucideIcon(\"monitor-pause\", __iconNode$9T);\nconst __iconNode$9S = [\n [\n \"path\",\n {\n d: \"M10 7.75a.75.75 0 0 1 1.142-.638l3.664 2.249a.75.75 0 0 1 0 1.278l-3.664 2.25a.75.75 0 0 1-1.142-.64z\",\n key: \"1pctta\"\n }\n ],\n [\n \"path\",\n {\n d: \"M12 17v4\",\n key: \"1riwvh\"\n }\n ],\n [\n \"path\",\n {\n d: \"M8 21h8\",\n key: \"1ev6f3\"\n }\n ],\n [\n \"rect\",\n {\n x: \"2\",\n y: \"3\",\n width: \"20\",\n height: \"14\",\n rx: \"2\",\n key: \"x3v2xh\"\n }\n ]\n];\nconst MonitorPlay = createLucideIcon(\"monitor-play\", __iconNode$9S);\nconst __iconNode$9R = [\n [\n \"path\",\n {\n d: \"M18 8V6a2 2 0 0 0-2-2H4a2 2 0 0 0-2 2v7a2 2 0 0 0 2 2h8\",\n key: \"10dyio\"\n }\n ],\n [\n \"path\",\n {\n d: \"M10 19v-3.96 3.15\",\n key: \"1irgej\"\n }\n ],\n [\n \"path\",\n {\n d: \"M7 19h5\",\n key: \"qswx4l\"\n }\n ],\n [\n \"rect\",\n {\n width: \"6\",\n height: \"10\",\n x: \"16\",\n y: \"12\",\n rx: \"2\",\n key: \"1egngj\"\n }\n ]\n];\nconst MonitorSmartphone = createLucideIcon(\"monitor-smartphone\", __iconNode$9R);\nconst __iconNode$9Q = [\n [\n \"path\",\n {\n d: \"M12 17v4\",\n key: \"1riwvh\"\n }\n ],\n [\n \"path\",\n {\n d: \"M8 21h8\",\n key: \"1ev6f3\"\n }\n ],\n [\n \"rect\",\n {\n x: \"2\",\n y: \"3\",\n width: \"20\",\n height: \"14\",\n rx: \"2\",\n key: \"x3v2xh\"\n }\n ],\n [\n \"rect\",\n {\n x: \"9\",\n y: \"7\",\n width: \"6\",\n height: \"6\",\n rx: \"1\",\n key: \"5m2oou\"\n }\n ]\n];\nconst MonitorStop = createLucideIcon(\"monitor-stop\", __iconNode$9Q);\nconst __iconNode$9P = [\n [\n \"path\",\n {\n d: \"m9 10 3-3 3 3\",\n key: \"11gsxs\"\n }\n ],\n [\n \"path\",\n {\n d: \"M12 13V7\",\n key: \"h0r20n\"\n }\n ],\n [\n \"rect\",\n {\n width: \"20\",\n height: \"14\",\n x: \"2\",\n y: \"3\",\n rx: \"2\",\n key: \"48i651\"\n }\n ],\n [\n \"path\",\n {\n d: \"M12 17v4\",\n key: \"1riwvh\"\n }\n ],\n [\n \"path\",\n {\n d: \"M8 21h8\",\n key: \"1ev6f3\"\n }\n ]\n];\nconst MonitorUp = createLucideIcon(\"monitor-up\", __iconNode$9P);\nconst __iconNode$9O = [\n [\n \"path\",\n {\n d: \"M5.5 20H8\",\n key: \"1k40s5\"\n }\n ],\n [\n \"path\",\n {\n d: \"M17 9h.01\",\n key: \"1j24nn\"\n }\n ],\n [\n \"rect\",\n {\n width: \"10\",\n height: \"16\",\n x: \"12\",\n y: \"4\",\n rx: \"2\",\n key: \"ixliua\"\n }\n ],\n [\n \"path\",\n {\n d: \"M8 6H4a2 2 0 0 0-2 2v6a2 2 0 0 0 2 2h4\",\n key: \"1mp6e1\"\n }\n ],\n [\n \"circle\",\n {\n cx: \"17\",\n cy: \"15\",\n r: \"1\",\n key: \"tqvash\"\n }\n ]\n];\nconst MonitorSpeaker = createLucideIcon(\"monitor-speaker\", __iconNode$9O);\nconst __iconNode$9N = [\n [\n \"path\",\n {\n d: \"m14.5 12.5-5-5\",\n key: \"1jahn5\"\n }\n ],\n [\n \"path\",\n {\n d: \"m9.5 12.5 5-5\",\n key: \"1k2t7b\"\n }\n ],\n [\n \"rect\",\n {\n width: \"20\",\n height: \"14\",\n x: \"2\",\n y: \"3\",\n rx: \"2\",\n key: \"48i651\"\n }\n ],\n [\n \"path\",\n {\n d: \"M12 17v4\",\n key: \"1riwvh\"\n }\n ],\n [\n \"path\",\n {\n d: \"M8 21h8\",\n key: \"1ev6f3\"\n }\n ]\n];\nconst MonitorX = createLucideIcon(\"monitor-x\", __iconNode$9N);\nconst __iconNode$9M = [\n [\n \"rect\",\n {\n width: \"20\",\n height: \"14\",\n x: \"2\",\n y: \"3\",\n rx: \"2\",\n key: \"48i651\"\n }\n ],\n [\n \"line\",\n {\n x1: \"8\",\n x2: \"16\",\n y1: \"21\",\n y2: \"21\",\n key: \"1svkeh\"\n }\n ],\n [\n \"line\",\n {\n x1: \"12\",\n x2: \"12\",\n y1: \"17\",\n y2: \"21\",\n key: \"vw1qmm\"\n }\n ]\n];\nconst Monitor = createLucideIcon(\"monitor\", __iconNode$9M);\nconst __iconNode$9L = [\n [\n \"path\",\n {\n d: \"M12 3a6 6 0 0 0 9 9 9 9 0 1 1-9-9\",\n key: \"4ay0iu\"\n }\n ],\n [\n \"path\",\n {\n d: \"M20 3v4\",\n key: \"1olli1\"\n }\n ],\n [\n \"path\",\n {\n d: \"M22 5h-4\",\n key: \"1gvqau\"\n }\n ]\n];\nconst MoonStar = createLucideIcon(\"moon-star\", __iconNode$9L);\nconst __iconNode$9K = [\n [\n \"path\",\n {\n d: \"M12 3a6 6 0 0 0 9 9 9 9 0 1 1-9-9Z\",\n key: \"a7tn18\"\n }\n ]\n];\nconst Moon = createLucideIcon(\"moon\", __iconNode$9K);\nconst __iconNode$9J = [\n [\n \"path\",\n {\n d: \"m8 3 4 8 5-5 5 15H2L8 3z\",\n key: \"otkl63\"\n }\n ],\n [\n \"path\",\n {\n d: \"M4.14 15.08c2.62-1.57 5.24-1.43 7.86.42 2.74 1.94 5.49 2 8.23.19\",\n key: \"1pvmmp\"\n }\n ]\n];\nconst MountainSnow = createLucideIcon(\"mountain-snow\", __iconNode$9J);\nconst __iconNode$9I = [\n [\n \"path\",\n {\n d: \"m8 3 4 8 5-5 5 15H2L8 3z\",\n key: \"otkl63\"\n }\n ]\n];\nconst Mountain = createLucideIcon(\"mountain\", __iconNode$9I);\nconst __iconNode$9H = [\n [\n \"path\",\n {\n d: \"M12 6v.343\",\n key: \"1gyhex\"\n }\n ],\n [\n \"path\",\n {\n d: \"M18.218 18.218A7 7 0 0 1 5 15V9a7 7 0 0 1 .782-3.218\",\n key: \"ukzz01\"\n }\n ],\n [\n \"path\",\n {\n d: \"M19 13.343V9A7 7 0 0 0 8.56 2.902\",\n key: \"104jy9\"\n }\n ],\n [\n \"path\",\n {\n d: \"M22 22 2 2\",\n key: \"1r8tn9\"\n }\n ]\n];\nconst MouseOff = createLucideIcon(\"mouse-off\", __iconNode$9H);\nconst __iconNode$9G = [\n [\n \"path\",\n {\n d: \"M4.037 4.688a.495.495 0 0 1 .651-.651l16 6.5a.5.5 0 0 1-.063.947l-6.124 1.58a2 2 0 0 0-1.438 1.435l-1.579 6.126a.5.5 0 0 1-.947.063z\",\n key: \"edeuup\"\n }\n ]\n];\nconst MousePointer2 = createLucideIcon(\"mouse-pointer-2\", __iconNode$9G);\nconst __iconNode$9F = [\n [\n \"path\",\n {\n d: \"M14 4.1 12 6\",\n key: \"ita8i4\"\n }\n ],\n [\n \"path\",\n {\n d: \"m5.1 8-2.9-.8\",\n key: \"1go3kf\"\n }\n ],\n [\n \"path\",\n {\n d: \"m6 12-1.9 2\",\n key: \"mnht97\"\n }\n ],\n [\n \"path\",\n {\n d: \"M7.2 2.2 8 5.1\",\n key: \"1cfko1\"\n }\n ],\n [\n \"path\",\n {\n d: \"M9.037 9.69a.498.498 0 0 1 .653-.653l11 4.5a.5.5 0 0 1-.074.949l-4.349 1.041a1 1 0 0 0-.74.739l-1.04 4.35a.5.5 0 0 1-.95.074z\",\n key: \"s0h3yz\"\n }\n ]\n];\nconst MousePointerClick = createLucideIcon(\"mouse-pointer-click\", __iconNode$9F);\nconst __iconNode$9E = [\n [\n \"path\",\n {\n d: \"M2.034 2.681a.498.498 0 0 1 .647-.647l9 3.5a.5.5 0 0 1-.033.944L8.204 7.545a1 1 0 0 0-.66.66l-1.066 3.443a.5.5 0 0 1-.944.033z\",\n key: \"11pp1i\"\n }\n ],\n [\n \"circle\",\n {\n cx: \"16\",\n cy: \"16\",\n r: \"6\",\n key: \"qoo3c4\"\n }\n ],\n [\n \"path\",\n {\n d: \"m11.8 11.8 8.4 8.4\",\n key: \"oogvdj\"\n }\n ]\n];\nconst MousePointerBan = createLucideIcon(\"mouse-pointer-ban\", __iconNode$9E);\nconst __iconNode$9D = [\n [\n \"path\",\n {\n d: \"M12.586 12.586 19 19\",\n key: \"ea5xo7\"\n }\n ],\n [\n \"path\",\n {\n d: \"M3.688 3.037a.497.497 0 0 0-.651.651l6.5 15.999a.501.501 0 0 0 .947-.062l1.569-6.083a2 2 0 0 1 1.448-1.479l6.124-1.579a.5.5 0 0 0 .063-.947z\",\n key: \"277e5u\"\n }\n ]\n];\nconst MousePointer = createLucideIcon(\"mouse-pointer\", __iconNode$9D);\nconst __iconNode$9C = [\n [\n \"rect\",\n {\n x: \"5\",\n y: \"2\",\n width: \"14\",\n height: \"20\",\n rx: \"7\",\n key: \"11ol66\"\n }\n ],\n [\n \"path\",\n {\n d: \"M12 6v4\",\n key: \"16clxf\"\n }\n ]\n];\nconst Mouse = createLucideIcon(\"mouse\", __iconNode$9C);\nconst __iconNode$9B = [\n [\n \"path\",\n {\n d: \"M5 3v16h16\",\n key: \"1mqmf9\"\n }\n ],\n [\n \"path\",\n {\n d: \"m5 19 6-6\",\n key: \"jh6hbb\"\n }\n ],\n [\n \"path\",\n {\n d: \"m2 6 3-3 3 3\",\n key: \"tkyvxa\"\n }\n ],\n [\n \"path\",\n {\n d: \"m18 16 3 3-3 3\",\n key: \"1d4glt\"\n }\n ]\n];\nconst Move3d = createLucideIcon(\"move-3d\", __iconNode$9B);\nconst __iconNode$9A = [\n [\n \"path\",\n {\n d: \"M19 13v6h-6\",\n key: \"1hxl6d\"\n }\n ],\n [\n \"path\",\n {\n d: \"M5 11V5h6\",\n key: \"12e2xe\"\n }\n ],\n [\n \"path\",\n {\n d: \"m5 5 14 14\",\n key: \"11anup\"\n }\n ]\n];\nconst MoveDiagonal2 = createLucideIcon(\"move-diagonal-2\", __iconNode$9A);\nconst __iconNode$9z = [\n [\n \"path\",\n {\n d: \"M11 19H5v-6\",\n key: \"8awifj\"\n }\n ],\n [\n \"path\",\n {\n d: \"M13 5h6v6\",\n key: \"7voy1q\"\n }\n ],\n [\n \"path\",\n {\n d: \"M19 5 5 19\",\n key: \"wwaj1z\"\n }\n ]\n];\nconst MoveDiagonal = createLucideIcon(\"move-diagonal\", __iconNode$9z);\nconst __iconNode$9y = [\n [\n \"path\",\n {\n d: \"M11 19H5V13\",\n key: \"1akmht\"\n }\n ],\n [\n \"path\",\n {\n d: \"M19 5L5 19\",\n key: \"72u4yj\"\n }\n ]\n];\nconst MoveDownLeft = createLucideIcon(\"move-down-left\", __iconNode$9y);\nconst __iconNode$9x = [\n [\n \"path\",\n {\n d: \"M19 13V19H13\",\n key: \"10vkzq\"\n }\n ],\n [\n \"path\",\n {\n d: \"M5 5L19 19\",\n key: \"5zm2fv\"\n }\n ]\n];\nconst MoveDownRight = createLucideIcon(\"move-down-right\", __iconNode$9x);\nconst __iconNode$9w = [\n [\n \"path\",\n {\n d: \"M8 18L12 22L16 18\",\n key: \"cskvfv\"\n }\n ],\n [\n \"path\",\n {\n d: \"M12 2V22\",\n key: \"r89rzk\"\n }\n ]\n];\nconst MoveDown = createLucideIcon(\"move-down\", __iconNode$9w);\nconst __iconNode$9v = [\n [\n \"path\",\n {\n d: \"m18 8 4 4-4 4\",\n key: \"1ak13k\"\n }\n ],\n [\n \"path\",\n {\n d: \"M2 12h20\",\n key: \"9i4pu4\"\n }\n ],\n [\n \"path\",\n {\n d: \"m6 8-4 4 4 4\",\n key: \"15zrgr\"\n }\n ]\n];\nconst MoveHorizontal = createLucideIcon(\"move-horizontal\", __iconNode$9v);\nconst __iconNode$9u = [\n [\n \"path\",\n {\n d: \"M6 8L2 12L6 16\",\n key: \"kyvwex\"\n }\n ],\n [\n \"path\",\n {\n d: \"M2 12H22\",\n key: \"1m8cig\"\n }\n ]\n];\nconst MoveLeft = createLucideIcon(\"move-left\", __iconNode$9u);\nconst __iconNode$9t = [\n [\n \"path\",\n {\n d: \"M5 11V5H11\",\n key: \"3q78g9\"\n }\n ],\n [\n \"path\",\n {\n d: \"M5 5L19 19\",\n key: \"5zm2fv\"\n }\n ]\n];\nconst MoveUpLeft = createLucideIcon(\"move-up-left\", __iconNode$9t);\nconst __iconNode$9s = [\n [\n \"path\",\n {\n d: \"M18 8L22 12L18 16\",\n key: \"1r0oui\"\n }\n ],\n [\n \"path\",\n {\n d: \"M2 12H22\",\n key: \"1m8cig\"\n }\n ]\n];\nconst MoveRight = createLucideIcon(\"move-right\", __iconNode$9s);\nconst __iconNode$9r = [\n [\n \"path\",\n {\n d: \"M13 5H19V11\",\n key: \"1n1gyv\"\n }\n ],\n [\n \"path\",\n {\n d: \"M19 5L5 19\",\n key: \"72u4yj\"\n }\n ]\n];\nconst MoveUpRight = createLucideIcon(\"move-up-right\", __iconNode$9r);\nconst __iconNode$9q = [\n [\n \"path\",\n {\n d: \"M8 6L12 2L16 6\",\n key: \"1yvkyx\"\n }\n ],\n [\n \"path\",\n {\n d: \"M12 2V22\",\n key: \"r89rzk\"\n }\n ]\n];\nconst MoveUp = createLucideIcon(\"move-up\", __iconNode$9q);\nconst __iconNode$9p = [\n [\n \"path\",\n {\n d: \"M12 2v20\",\n key: \"t6zp3m\"\n }\n ],\n [\n \"path\",\n {\n d: \"m8 18 4 4 4-4\",\n key: \"bh5tu3\"\n }\n ],\n [\n \"path\",\n {\n d: \"m8 6 4-4 4 4\",\n key: \"ybng9g\"\n }\n ]\n];\nconst MoveVertical = createLucideIcon(\"move-vertical\", __iconNode$9p);\nconst __iconNode$9o = [\n [\n \"path\",\n {\n d: \"M12 2v20\",\n key: \"t6zp3m\"\n }\n ],\n [\n \"path\",\n {\n d: \"m15 19-3 3-3-3\",\n key: \"11eu04\"\n }\n ],\n [\n \"path\",\n {\n d: \"m19 9 3 3-3 3\",\n key: \"1mg7y2\"\n }\n ],\n [\n \"path\",\n {\n d: \"M2 12h20\",\n key: \"9i4pu4\"\n }\n ],\n [\n \"path\",\n {\n d: \"m5 9-3 3 3 3\",\n key: \"j64kie\"\n }\n ],\n [\n \"path\",\n {\n d: \"m9 5 3-3 3 3\",\n key: \"l8vdw6\"\n }\n ]\n];\nconst Move = createLucideIcon(\"move\", __iconNode$9o);\nconst __iconNode$9n = [\n [\n \"circle\",\n {\n cx: \"8\",\n cy: \"18\",\n r: \"4\",\n key: \"1fc0mg\"\n }\n ],\n [\n \"path\",\n {\n d: \"M12 18V2l7 4\",\n key: \"g04rme\"\n }\n ]\n];\nconst Music2 = createLucideIcon(\"music-2\", __iconNode$9n);\nconst __iconNode$9m = [\n [\n \"circle\",\n {\n cx: \"12\",\n cy: \"18\",\n r: \"4\",\n key: \"m3r9ws\"\n }\n ],\n [\n \"path\",\n {\n d: \"M16 18V2\",\n key: \"40x2m5\"\n }\n ]\n];\nconst Music3 = createLucideIcon(\"music-3\", __iconNode$9m);\nconst __iconNode$9l = [\n [\n \"path\",\n {\n d: \"M9 18V5l12-2v13\",\n key: \"1jmyc2\"\n }\n ],\n [\n \"path\",\n {\n d: \"m9 9 12-2\",\n key: \"1e64n2\"\n }\n ],\n [\n \"circle\",\n {\n cx: \"6\",\n cy: \"18\",\n r: \"3\",\n key: \"fqmcym\"\n }\n ],\n [\n \"circle\",\n {\n cx: \"18\",\n cy: \"16\",\n r: \"3\",\n key: \"1hluhg\"\n }\n ]\n];\nconst Music4 = createLucideIcon(\"music-4\", __iconNode$9l);\nconst __iconNode$9k = [\n [\n \"path\",\n {\n d: \"M9 18V5l12-2v13\",\n key: \"1jmyc2\"\n }\n ],\n [\n \"circle\",\n {\n cx: \"6\",\n cy: \"18\",\n r: \"3\",\n key: \"fqmcym\"\n }\n ],\n [\n \"circle\",\n {\n cx: \"18\",\n cy: \"16\",\n r: \"3\",\n key: \"1hluhg\"\n }\n ]\n];\nconst Music = createLucideIcon(\"music\", __iconNode$9k);\nconst __iconNode$9j = [\n [\n \"path\",\n {\n d: \"M9.31 9.31 5 21l7-4 7 4-1.17-3.17\",\n key: \"qoq2o2\"\n }\n ],\n [\n \"path\",\n {\n d: \"M14.53 8.88 12 2l-1.17 3.17\",\n key: \"k3sjzy\"\n }\n ],\n [\n \"line\",\n {\n x1: \"2\",\n x2: \"22\",\n y1: \"2\",\n y2: \"22\",\n key: \"a6p6uj\"\n }\n ]\n];\nconst Navigation2Off = createLucideIcon(\"navigation-2-off\", __iconNode$9j);\nconst __iconNode$9i = [\n [\n \"polygon\",\n {\n points: \"12 2 19 21 12 17 5 21 12 2\",\n key: \"x8c0qg\"\n }\n ]\n];\nconst Navigation2 = createLucideIcon(\"navigation-2\", __iconNode$9i);\nconst __iconNode$9h = [\n [\n \"path\",\n {\n d: \"M8.43 8.43 3 11l8 2 2 8 2.57-5.43\",\n key: \"1vdtb7\"\n }\n ],\n [\n \"path\",\n {\n d: \"M17.39 11.73 22 2l-9.73 4.61\",\n key: \"tya3r6\"\n }\n ],\n [\n \"line\",\n {\n x1: \"2\",\n x2: \"22\",\n y1: \"2\",\n y2: \"22\",\n key: \"a6p6uj\"\n }\n ]\n];\nconst NavigationOff = createLucideIcon(\"navigation-off\", __iconNode$9h);\nconst __iconNode$9g = [\n [\n \"polygon\",\n {\n points: \"3 11 22 2 13 21 11 13 3 11\",\n key: \"1ltx0t\"\n }\n ]\n];\nconst Navigation = createLucideIcon(\"navigation\", __iconNode$9g);\nconst __iconNode$9f = [\n [\n \"rect\",\n {\n x: \"16\",\n y: \"16\",\n width: \"6\",\n height: \"6\",\n rx: \"1\",\n key: \"4q2zg0\"\n }\n ],\n [\n \"rect\",\n {\n x: \"2\",\n y: \"16\",\n width: \"6\",\n height: \"6\",\n rx: \"1\",\n key: \"8cvhb9\"\n }\n ],\n [\n \"rect\",\n {\n x: \"9\",\n y: \"2\",\n width: \"6\",\n height: \"6\",\n rx: \"1\",\n key: \"1egb70\"\n }\n ],\n [\n \"path\",\n {\n d: \"M5 16v-3a1 1 0 0 1 1-1h12a1 1 0 0 1 1 1v3\",\n key: \"1jsf9p\"\n }\n ],\n [\n \"path\",\n {\n d: \"M12 12V8\",\n key: \"2874zd\"\n }\n ]\n];\nconst Network = createLucideIcon(\"network\", __iconNode$9f);\nconst __iconNode$9e = [\n [\n \"path\",\n {\n d: \"M15 18h-5\",\n key: \"95g1m2\"\n }\n ],\n [\n \"path\",\n {\n d: \"M18 14h-8\",\n key: \"sponae\"\n }\n ],\n [\n \"path\",\n {\n d: \"M4 22h16a2 2 0 0 0 2-2V4a2 2 0 0 0-2-2H8a2 2 0 0 0-2 2v16a2 2 0 0 1-4 0v-9a2 2 0 0 1 2-2h2\",\n key: \"39pd36\"\n }\n ],\n [\n \"rect\",\n {\n width: \"8\",\n height: \"4\",\n x: \"10\",\n y: \"6\",\n rx: \"1\",\n key: \"aywv1n\"\n }\n ]\n];\nconst Newspaper = createLucideIcon(\"newspaper\", __iconNode$9e);\nconst __iconNode$9d = [\n [\n \"path\",\n {\n d: \"M6 8.32a7.43 7.43 0 0 1 0 7.36\",\n key: \"9iaqei\"\n }\n ],\n [\n \"path\",\n {\n d: \"M9.46 6.21a11.76 11.76 0 0 1 0 11.58\",\n key: \"1yha7l\"\n }\n ],\n [\n \"path\",\n {\n d: \"M12.91 4.1a15.91 15.91 0 0 1 .01 15.8\",\n key: \"4iu2gk\"\n }\n ],\n [\n \"path\",\n {\n d: \"M16.37 2a20.16 20.16 0 0 1 0 20\",\n key: \"sap9u2\"\n }\n ]\n];\nconst Nfc = createLucideIcon(\"nfc\", __iconNode$9d);\nconst __iconNode$9c = [\n [\n \"path\",\n {\n d: \"M12 2v10\",\n key: \"mnfbl\"\n }\n ],\n [\n \"path\",\n {\n d: \"m8.5 4 7 4\",\n key: \"m1xjk3\"\n }\n ],\n [\n \"path\",\n {\n d: \"m8.5 8 7-4\",\n key: \"t0m5j6\"\n }\n ],\n [\n \"circle\",\n {\n cx: \"12\",\n cy: \"17\",\n r: \"5\",\n key: \"qbz8iq\"\n }\n ]\n];\nconst NonBinary = createLucideIcon(\"non-binary\", __iconNode$9c);\nconst __iconNode$9b = [\n [\n \"path\",\n {\n d: \"M13.4 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2v-7.4\",\n key: \"re6nr2\"\n }\n ],\n [\n \"path\",\n {\n d: \"M2 6h4\",\n key: \"aawbzj\"\n }\n ],\n [\n \"path\",\n {\n d: \"M2 10h4\",\n key: \"l0bgd4\"\n }\n ],\n [\n \"path\",\n {\n d: \"M2 14h4\",\n key: \"1gsvsf\"\n }\n ],\n [\n \"path\",\n {\n d: \"M2 18h4\",\n key: \"1bu2t1\"\n }\n ],\n [\n \"path\",\n {\n d: \"M21.378 5.626a1 1 0 1 0-3.004-3.004l-5.01 5.012a2 2 0 0 0-.506.854l-.837 2.87a.5.5 0 0 0 .62.62l2.87-.837a2 2 0 0 0 .854-.506z\",\n key: \"pqwjuv\"\n }\n ]\n];\nconst NotebookPen = createLucideIcon(\"notebook-pen\", __iconNode$9b);\nconst __iconNode$9a = [\n [\n \"path\",\n {\n d: \"M2 6h4\",\n key: \"aawbzj\"\n }\n ],\n [\n \"path\",\n {\n d: \"M2 10h4\",\n key: \"l0bgd4\"\n }\n ],\n [\n \"path\",\n {\n d: \"M2 14h4\",\n key: \"1gsvsf\"\n }\n ],\n [\n \"path\",\n {\n d: \"M2 18h4\",\n key: \"1bu2t1\"\n }\n ],\n [\n \"rect\",\n {\n width: \"16\",\n height: \"20\",\n x: \"4\",\n y: \"2\",\n rx: \"2\",\n key: \"1nb95v\"\n }\n ],\n [\n \"path\",\n {\n d: \"M15 2v20\",\n key: \"dcj49h\"\n }\n ],\n [\n \"path\",\n {\n d: \"M15 7h5\",\n key: \"1xj5lc\"\n }\n ],\n [\n \"path\",\n {\n d: \"M15 12h5\",\n key: \"w5shd9\"\n }\n ],\n [\n \"path\",\n {\n d: \"M15 17h5\",\n key: \"1qaofu\"\n }\n ]\n];\nconst NotebookTabs = createLucideIcon(\"notebook-tabs\", __iconNode$9a);\nconst __iconNode$99 = [\n [\n \"path\",\n {\n d: \"M2 6h4\",\n key: \"aawbzj\"\n }\n ],\n [\n \"path\",\n {\n d: \"M2 10h4\",\n key: \"l0bgd4\"\n }\n ],\n [\n \"path\",\n {\n d: \"M2 14h4\",\n key: \"1gsvsf\"\n }\n ],\n [\n \"path\",\n {\n d: \"M2 18h4\",\n key: \"1bu2t1\"\n }\n ],\n [\n \"rect\",\n {\n width: \"16\",\n height: \"20\",\n x: \"4\",\n y: \"2\",\n rx: \"2\",\n key: \"1nb95v\"\n }\n ],\n [\n \"path\",\n {\n d: \"M9.5 8h5\",\n key: \"11mslq\"\n }\n ],\n [\n \"path\",\n {\n d: \"M9.5 12H16\",\n key: \"ktog6x\"\n }\n ],\n [\n \"path\",\n {\n d: \"M9.5 16H14\",\n key: \"p1seyn\"\n }\n ]\n];\nconst NotebookText = createLucideIcon(\"notebook-text\", __iconNode$99);\nconst __iconNode$98 = [\n [\n \"path\",\n {\n d: \"M2 6h4\",\n key: \"aawbzj\"\n }\n ],\n [\n \"path\",\n {\n d: \"M2 10h4\",\n key: \"l0bgd4\"\n }\n ],\n [\n \"path\",\n {\n d: \"M2 14h4\",\n key: \"1gsvsf\"\n }\n ],\n [\n \"path\",\n {\n d: \"M2 18h4\",\n key: \"1bu2t1\"\n }\n ],\n [\n \"rect\",\n {\n width: \"16\",\n height: \"20\",\n x: \"4\",\n y: \"2\",\n rx: \"2\",\n key: \"1nb95v\"\n }\n ],\n [\n \"path\",\n {\n d: \"M16 2v20\",\n key: \"rotuqe\"\n }\n ]\n];\nconst Notebook = createLucideIcon(\"notebook\", __iconNode$98);\nconst __iconNode$97 = [\n [\n \"path\",\n {\n d: \"M8 2v4\",\n key: \"1cmpym\"\n }\n ],\n [\n \"path\",\n {\n d: \"M12 2v4\",\n key: \"3427ic\"\n }\n ],\n [\n \"path\",\n {\n d: \"M16 2v4\",\n key: \"4m81vk\"\n }\n ],\n [\n \"path\",\n {\n d: \"M16 4h2a2 2 0 0 1 2 2v2\",\n key: \"j91f56\"\n }\n ],\n [\n \"path\",\n {\n d: \"M20 12v2\",\n key: \"w8o0tu\"\n }\n ],\n [\n \"path\",\n {\n d: \"M20 18v2a2 2 0 0 1-2 2h-1\",\n key: \"1c9ggx\"\n }\n ],\n [\n \"path\",\n {\n d: \"M13 22h-2\",\n key: \"191ugt\"\n }\n ],\n [\n \"path\",\n {\n d: \"M7 22H6a2 2 0 0 1-2-2v-2\",\n key: \"1rt9px\"\n }\n ],\n [\n \"path\",\n {\n d: \"M4 14v-2\",\n key: \"1v0sqh\"\n }\n ],\n [\n \"path\",\n {\n d: \"M4 8V6a2 2 0 0 1 2-2h2\",\n key: \"1mwabg\"\n }\n ],\n [\n \"path\",\n {\n d: \"M8 10h6\",\n key: \"3oa6kw\"\n }\n ],\n [\n \"path\",\n {\n d: \"M8 14h8\",\n key: \"1fgep2\"\n }\n ],\n [\n \"path\",\n {\n d: \"M8 18h5\",\n key: \"17enja\"\n }\n ]\n];\nconst NotepadTextDashed = createLucideIcon(\"notepad-text-dashed\", __iconNode$97);\nconst __iconNode$96 = [\n [\n \"path\",\n {\n d: \"M8 2v4\",\n key: \"1cmpym\"\n }\n ],\n [\n \"path\",\n {\n d: \"M12 2v4\",\n key: \"3427ic\"\n }\n ],\n [\n \"path\",\n {\n d: \"M16 2v4\",\n key: \"4m81vk\"\n }\n ],\n [\n \"rect\",\n {\n width: \"16\",\n height: \"18\",\n x: \"4\",\n y: \"4\",\n rx: \"2\",\n key: \"1u9h20\"\n }\n ],\n [\n \"path\",\n {\n d: \"M8 10h6\",\n key: \"3oa6kw\"\n }\n ],\n [\n \"path\",\n {\n d: \"M8 14h8\",\n key: \"1fgep2\"\n }\n ],\n [\n \"path\",\n {\n d: \"M8 18h5\",\n key: \"17enja\"\n }\n ]\n];\nconst NotepadText = createLucideIcon(\"notepad-text\", __iconNode$96);\nconst __iconNode$95 = [\n [\n \"path\",\n {\n d: \"M12 4V2\",\n key: \"1k5q1u\"\n }\n ],\n [\n \"path\",\n {\n d: \"M5 10v4a7.004 7.004 0 0 0 5.277 6.787c.412.104.802.292 1.102.592L12 22l.621-.621c.3-.3.69-.488 1.102-.592a7.01 7.01 0 0 0 4.125-2.939\",\n key: \"1xcvy9\"\n }\n ],\n [\n \"path\",\n {\n d: \"M19 10v3.343\",\n key: \"163tfc\"\n }\n ],\n [\n \"path\",\n {\n d: \"M12 12c-1.349-.573-1.905-1.005-2.5-2-.546.902-1.048 1.353-2.5 2-1.018-.644-1.46-1.08-2-2-1.028.71-1.69.918-3 1 1.081-1.048 1.757-2.03 2-3 .194-.776.84-1.551 1.79-2.21m11.654 5.997c.887-.457 1.28-.891 1.556-1.787 1.032.916 1.683 1.157 3 1-1.297-1.036-1.758-2.03-2-3-.5-2-4-4-8-4-.74 0-1.461.068-2.15.192\",\n key: \"17914v\"\n }\n ],\n [\n \"line\",\n {\n x1: \"2\",\n x2: \"22\",\n y1: \"2\",\n y2: \"22\",\n key: \"a6p6uj\"\n }\n ]\n];\nconst NutOff = createLucideIcon(\"nut-off\", __iconNode$95);\nconst __iconNode$94 = [\n [\n \"path\",\n {\n d: \"M12 4V2\",\n key: \"1k5q1u\"\n }\n ],\n [\n \"path\",\n {\n d: \"M5 10v4a7.004 7.004 0 0 0 5.277 6.787c.412.104.802.292 1.102.592L12 22l.621-.621c.3-.3.69-.488 1.102-.592A7.003 7.003 0 0 0 19 14v-4\",\n key: \"1tgyif\"\n }\n ],\n [\n \"path\",\n {\n d: \"M12 4C8 4 4.5 6 4 8c-.243.97-.919 1.952-2 3 1.31-.082 1.972-.29 3-1 .54.92.982 1.356 2 2 1.452-.647 1.954-1.098 2.5-2 .595.995 1.151 1.427 2.5 2 1.31-.621 1.862-1.058 2.5-2 .629.977 1.162 1.423 2.5 2 1.209-.548 1.68-.967 2-2 1.032.916 1.683 1.157 3 1-1.297-1.036-1.758-2.03-2-3-.5-2-4-4-8-4Z\",\n key: \"tnsqj\"\n }\n ]\n];\nconst Nut = createLucideIcon(\"nut\", __iconNode$94);\nconst __iconNode$93 = [\n [\n \"path\",\n {\n d: \"M12 16h.01\",\n key: \"1drbdi\"\n }\n ],\n [\n \"path\",\n {\n d: \"M12 8v4\",\n key: \"1got3b\"\n }\n ],\n [\n \"path\",\n {\n d: \"M15.312 2a2 2 0 0 1 1.414.586l4.688 4.688A2 2 0 0 1 22 8.688v6.624a2 2 0 0 1-.586 1.414l-4.688 4.688a2 2 0 0 1-1.414.586H8.688a2 2 0 0 1-1.414-.586l-4.688-4.688A2 2 0 0 1 2 15.312V8.688a2 2 0 0 1 .586-1.414l4.688-4.688A2 2 0 0 1 8.688 2z\",\n key: \"1fd625\"\n }\n ]\n];\nconst OctagonAlert = createLucideIcon(\"octagon-alert\", __iconNode$93);\nconst __iconNode$92 = [\n [\n \"path\",\n {\n d: \"M2.586 16.726A2 2 0 0 1 2 15.312V8.688a2 2 0 0 1 .586-1.414l4.688-4.688A2 2 0 0 1 8.688 2h6.624a2 2 0 0 1 1.414.586l4.688 4.688A2 2 0 0 1 22 8.688v6.624a2 2 0 0 1-.586 1.414l-4.688 4.688a2 2 0 0 1-1.414.586H8.688a2 2 0 0 1-1.414-.586z\",\n key: \"2d38gg\"\n }\n ],\n [\n \"path\",\n {\n d: \"M8 12h8\",\n key: \"1wcyev\"\n }\n ]\n];\nconst OctagonMinus = createLucideIcon(\"octagon-minus\", __iconNode$92);\nconst __iconNode$91 = [\n [\n \"path\",\n {\n d: \"M10 15V9\",\n key: \"1lckn7\"\n }\n ],\n [\n \"path\",\n {\n d: \"M14 15V9\",\n key: \"1muqhk\"\n }\n ],\n [\n \"path\",\n {\n d: \"M2.586 16.726A2 2 0 0 1 2 15.312V8.688a2 2 0 0 1 .586-1.414l4.688-4.688A2 2 0 0 1 8.688 2h6.624a2 2 0 0 1 1.414.586l4.688 4.688A2 2 0 0 1 22 8.688v6.624a2 2 0 0 1-.586 1.414l-4.688 4.688a2 2 0 0 1-1.414.586H8.688a2 2 0 0 1-1.414-.586z\",\n key: \"2d38gg\"\n }\n ]\n];\nconst OctagonPause = createLucideIcon(\"octagon-pause\", __iconNode$91);\nconst __iconNode$90 = [\n [\n \"path\",\n {\n d: \"m15 9-6 6\",\n key: \"1uzhvr\"\n }\n ],\n [\n \"path\",\n {\n d: \"M2.586 16.726A2 2 0 0 1 2 15.312V8.688a2 2 0 0 1 .586-1.414l4.688-4.688A2 2 0 0 1 8.688 2h6.624a2 2 0 0 1 1.414.586l4.688 4.688A2 2 0 0 1 22 8.688v6.624a2 2 0 0 1-.586 1.414l-4.688 4.688a2 2 0 0 1-1.414.586H8.688a2 2 0 0 1-1.414-.586z\",\n key: \"2d38gg\"\n }\n ],\n [\n \"path\",\n {\n d: \"m9 9 6 6\",\n key: \"z0biqf\"\n }\n ]\n];\nconst OctagonX = createLucideIcon(\"octagon-x\", __iconNode$90);\nconst __iconNode$8$ = [\n [\n \"path\",\n {\n d: \"M2.586 16.726A2 2 0 0 1 2 15.312V8.688a2 2 0 0 1 .586-1.414l4.688-4.688A2 2 0 0 1 8.688 2h6.624a2 2 0 0 1 1.414.586l4.688 4.688A2 2 0 0 1 22 8.688v6.624a2 2 0 0 1-.586 1.414l-4.688 4.688a2 2 0 0 1-1.414.586H8.688a2 2 0 0 1-1.414-.586z\",\n key: \"2d38gg\"\n }\n ]\n];\nconst Octagon = createLucideIcon(\"octagon\", __iconNode$8$);\nconst __iconNode$8_ = [\n [\n \"path\",\n {\n d: \"M3 20h4.5a.5.5 0 0 0 .5-.5v-.282a.52.52 0 0 0-.247-.437 8 8 0 1 1 8.494-.001.52.52 0 0 0-.247.438v.282a.5.5 0 0 0 .5.5H21\",\n key: \"1x94xo\"\n }\n ]\n];\nconst Omega = createLucideIcon(\"omega\", __iconNode$8_);\nconst __iconNode$8Z = [\n [\n \"path\",\n {\n d: \"M3 3h6l6 18h6\",\n key: \"ph9rgk\"\n }\n ],\n [\n \"path\",\n {\n d: \"M14 3h7\",\n key: \"16f0ms\"\n }\n ]\n];\nconst Option = createLucideIcon(\"option\", __iconNode$8Z);\nconst __iconNode$8Y = [\n [\n \"path\",\n {\n d: \"M20.341 6.484A10 10 0 0 1 10.266 21.85\",\n key: \"1enhxb\"\n }\n ],\n [\n \"path\",\n {\n d: \"M3.659 17.516A10 10 0 0 1 13.74 2.152\",\n key: \"1crzgf\"\n }\n ],\n [\n \"circle\",\n {\n cx: \"12\",\n cy: \"12\",\n r: \"3\",\n key: \"1v7zrd\"\n }\n ],\n [\n \"circle\",\n {\n cx: \"19\",\n cy: \"5\",\n r: \"2\",\n key: \"mhkx31\"\n }\n ],\n [\n \"circle\",\n {\n cx: \"5\",\n cy: \"19\",\n r: \"2\",\n key: \"v8kfzx\"\n }\n ]\n];\nconst Orbit = createLucideIcon(\"orbit\", __iconNode$8Y);\nconst __iconNode$8X = [\n [\n \"path\",\n {\n d: \"M12 12V4a1 1 0 0 1 1-1h6.297a1 1 0 0 1 .651 1.759l-4.696 4.025\",\n key: \"1bx4vc\"\n }\n ],\n [\n \"path\",\n {\n d: \"m12 21-7.414-7.414A2 2 0 0 1 4 12.172V6.415a1.002 1.002 0 0 1 1.707-.707L20 20.009\",\n key: \"1h3km6\"\n }\n ],\n [\n \"path\",\n {\n d: \"m12.214 3.381 8.414 14.966a1 1 0 0 1-.167 1.199l-1.168 1.163a1 1 0 0 1-.706.291H6.351a1 1 0 0 1-.625-.219L3.25 18.8a1 1 0 0 1 .631-1.781l4.165.027\",\n key: \"1hj4wg\"\n }\n ]\n];\nconst Origami = createLucideIcon(\"origami\", __iconNode$8X);\nconst __iconNode$8W = [\n [\n \"path\",\n {\n d: \"M12 3v6\",\n key: \"1holv5\"\n }\n ],\n [\n \"path\",\n {\n d: \"M16.76 3a2 2 0 0 1 1.8 1.1l2.23 4.479a2 2 0 0 1 .21.891V19a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V9.472a2 2 0 0 1 .211-.894L5.45 4.1A2 2 0 0 1 7.24 3z\",\n key: \"187q7i\"\n }\n ],\n [\n \"path\",\n {\n d: \"M3.054 9.013h17.893\",\n key: \"grwhos\"\n }\n ]\n];\nconst Package2 = createLucideIcon(\"package-2\", __iconNode$8W);\nconst __iconNode$8V = [\n [\n \"path\",\n {\n d: \"m16 16 2 2 4-4\",\n key: \"gfu2re\"\n }\n ],\n [\n \"path\",\n {\n d: \"M21 10V8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73l7 4a2 2 0 0 0 2 0l2-1.14\",\n key: \"e7tb2h\"\n }\n ],\n [\n \"path\",\n {\n d: \"m7.5 4.27 9 5.15\",\n key: \"1c824w\"\n }\n ],\n [\n \"polyline\",\n {\n points: \"3.29 7 12 12 20.71 7\",\n key: \"ousv84\"\n }\n ],\n [\n \"line\",\n {\n x1: \"12\",\n x2: \"12\",\n y1: \"22\",\n y2: \"12\",\n key: \"a4e8g8\"\n }\n ]\n];\nconst PackageCheck = createLucideIcon(\"package-check\", __iconNode$8V);\nconst __iconNode$8U = [\n [\n \"path\",\n {\n d: \"M16 16h6\",\n key: \"100bgy\"\n }\n ],\n [\n \"path\",\n {\n d: \"M21 10V8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73l7 4a2 2 0 0 0 2 0l2-1.14\",\n key: \"e7tb2h\"\n }\n ],\n [\n \"path\",\n {\n d: \"m7.5 4.27 9 5.15\",\n key: \"1c824w\"\n }\n ],\n [\n \"polyline\",\n {\n points: \"3.29 7 12 12 20.71 7\",\n key: \"ousv84\"\n }\n ],\n [\n \"line\",\n {\n x1: \"12\",\n x2: \"12\",\n y1: \"22\",\n y2: \"12\",\n key: \"a4e8g8\"\n }\n ]\n];\nconst PackageMinus = createLucideIcon(\"package-minus\", __iconNode$8U);\nconst __iconNode$8T = [\n [\n \"path\",\n {\n d: \"M12 22v-9\",\n key: \"x3hkom\"\n }\n ],\n [\n \"path\",\n {\n d: \"M15.17 2.21a1.67 1.67 0 0 1 1.63 0L21 4.57a1.93 1.93 0 0 1 0 3.36L8.82 14.79a1.655 1.655 0 0 1-1.64 0L3 12.43a1.93 1.93 0 0 1 0-3.36z\",\n key: \"2ntwy6\"\n }\n ],\n [\n \"path\",\n {\n d: \"M20 13v3.87a2.06 2.06 0 0 1-1.11 1.83l-6 3.08a1.93 1.93 0 0 1-1.78 0l-6-3.08A2.06 2.06 0 0 1 4 16.87V13\",\n key: \"1pmm1c\"\n }\n ],\n [\n \"path\",\n {\n d: \"M21 12.43a1.93 1.93 0 0 0 0-3.36L8.83 2.2a1.64 1.64 0 0 0-1.63 0L3 4.57a1.93 1.93 0 0 0 0 3.36l12.18 6.86a1.636 1.636 0 0 0 1.63 0z\",\n key: \"12ttoo\"\n }\n ]\n];\nconst PackageOpen = createLucideIcon(\"package-open\", __iconNode$8T);\nconst __iconNode$8S = [\n [\n \"path\",\n {\n d: \"M16 16h6\",\n key: \"100bgy\"\n }\n ],\n [\n \"path\",\n {\n d: \"M19 13v6\",\n key: \"85cyf1\"\n }\n ],\n [\n \"path\",\n {\n d: \"M21 10V8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73l7 4a2 2 0 0 0 2 0l2-1.14\",\n key: \"e7tb2h\"\n }\n ],\n [\n \"path\",\n {\n d: \"m7.5 4.27 9 5.15\",\n key: \"1c824w\"\n }\n ],\n [\n \"polyline\",\n {\n points: \"3.29 7 12 12 20.71 7\",\n key: \"ousv84\"\n }\n ],\n [\n \"line\",\n {\n x1: \"12\",\n x2: \"12\",\n y1: \"22\",\n y2: \"12\",\n key: \"a4e8g8\"\n }\n ]\n];\nconst PackagePlus = createLucideIcon(\"package-plus\", __iconNode$8S);\nconst __iconNode$8R = [\n [\n \"path\",\n {\n d: \"M21 10V8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73l7 4a2 2 0 0 0 2 0l2-1.14\",\n key: \"e7tb2h\"\n }\n ],\n [\n \"path\",\n {\n d: \"m7.5 4.27 9 5.15\",\n key: \"1c824w\"\n }\n ],\n [\n \"polyline\",\n {\n points: \"3.29 7 12 12 20.71 7\",\n key: \"ousv84\"\n }\n ],\n [\n \"line\",\n {\n x1: \"12\",\n x2: \"12\",\n y1: \"22\",\n y2: \"12\",\n key: \"a4e8g8\"\n }\n ],\n [\n \"circle\",\n {\n cx: \"18.5\",\n cy: \"15.5\",\n r: \"2.5\",\n key: \"b5zd12\"\n }\n ],\n [\n \"path\",\n {\n d: \"M20.27 17.27 22 19\",\n key: \"1l4muz\"\n }\n ]\n];\nconst PackageSearch = createLucideIcon(\"package-search\", __iconNode$8R);\nconst __iconNode$8Q = [\n [\n \"path\",\n {\n d: \"M21 10V8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73l7 4a2 2 0 0 0 2 0l2-1.14\",\n key: \"e7tb2h\"\n }\n ],\n [\n \"path\",\n {\n d: \"m7.5 4.27 9 5.15\",\n key: \"1c824w\"\n }\n ],\n [\n \"polyline\",\n {\n points: \"3.29 7 12 12 20.71 7\",\n key: \"ousv84\"\n }\n ],\n [\n \"line\",\n {\n x1: \"12\",\n x2: \"12\",\n y1: \"22\",\n y2: \"12\",\n key: \"a4e8g8\"\n }\n ],\n [\n \"path\",\n {\n d: \"m17 13 5 5m-5 0 5-5\",\n key: \"im3w4b\"\n }\n ]\n];\nconst PackageX = createLucideIcon(\"package-x\", __iconNode$8Q);\nconst __iconNode$8P = [\n [\n \"path\",\n {\n d: \"M11 21.73a2 2 0 0 0 2 0l7-4A2 2 0 0 0 21 16V8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73z\",\n key: \"1a0edw\"\n }\n ],\n [\n \"path\",\n {\n d: \"M12 22V12\",\n key: \"d0xqtd\"\n }\n ],\n [\n \"polyline\",\n {\n points: \"3.29 7 12 12 20.71 7\",\n key: \"ousv84\"\n }\n ],\n [\n \"path\",\n {\n d: \"m7.5 4.27 9 5.15\",\n key: \"1c824w\"\n }\n ]\n];\nconst Package = createLucideIcon(\"package\", __iconNode$8P);\nconst __iconNode$8O = [\n [\n \"path\",\n {\n d: \"m19 11-8-8-8.6 8.6a2 2 0 0 0 0 2.8l5.2 5.2c.8.8 2 .8 2.8 0L19 11Z\",\n key: \"irua1i\"\n }\n ],\n [\n \"path\",\n {\n d: \"m5 2 5 5\",\n key: \"1lls2c\"\n }\n ],\n [\n \"path\",\n {\n d: \"M2 13h15\",\n key: \"1hkzvu\"\n }\n ],\n [\n \"path\",\n {\n d: \"M22 20a2 2 0 1 1-4 0c0-1.6 1.7-2.4 2-4 .3 1.6 2 2.4 2 4Z\",\n key: \"xk76lq\"\n }\n ]\n];\nconst PaintBucket = createLucideIcon(\"paint-bucket\", __iconNode$8O);\nconst __iconNode$8N = [\n [\n \"rect\",\n {\n width: \"16\",\n height: \"6\",\n x: \"2\",\n y: \"2\",\n rx: \"2\",\n key: \"jcyz7m\"\n }\n ],\n [\n \"path\",\n {\n d: \"M10 16v-2a2 2 0 0 1 2-2h8a2 2 0 0 0 2-2V7a2 2 0 0 0-2-2h-2\",\n key: \"1b9h7c\"\n }\n ],\n [\n \"rect\",\n {\n width: \"4\",\n height: \"6\",\n x: \"8\",\n y: \"16\",\n rx: \"1\",\n key: \"d6e7yl\"\n }\n ]\n];\nconst PaintRoller = createLucideIcon(\"paint-roller\", __iconNode$8N);\nconst __iconNode$8M = [\n [\n \"path\",\n {\n d: \"M10 2v2\",\n key: \"7u0qdc\"\n }\n ],\n [\n \"path\",\n {\n d: \"M14 2v4\",\n key: \"qmzblu\"\n }\n ],\n [\n \"path\",\n {\n d: \"M17 2a1 1 0 0 1 1 1v9H6V3a1 1 0 0 1 1-1z\",\n key: \"ycvu00\"\n }\n ],\n [\n \"path\",\n {\n d: \"M6 12a1 1 0 0 0-1 1v1a2 2 0 0 0 2 2h2a1 1 0 0 1 1 1v2.9a2 2 0 1 0 4 0V17a1 1 0 0 1 1-1h2a2 2 0 0 0 2-2v-1a1 1 0 0 0-1-1\",\n key: \"iw4wnp\"\n }\n ]\n];\nconst PaintbrushVertical = createLucideIcon(\"paintbrush-vertical\", __iconNode$8M);\nconst __iconNode$8L = [\n [\n \"path\",\n {\n d: \"m14.622 17.897-10.68-2.913\",\n key: \"vj2p1u\"\n }\n ],\n [\n \"path\",\n {\n d: \"M18.376 2.622a1 1 0 1 1 3.002 3.002L17.36 9.643a.5.5 0 0 0 0 .707l.944.944a2.41 2.41 0 0 1 0 3.408l-.944.944a.5.5 0 0 1-.707 0L8.354 7.348a.5.5 0 0 1 0-.707l.944-.944a2.41 2.41 0 0 1 3.408 0l.944.944a.5.5 0 0 0 .707 0z\",\n key: \"18tc5c\"\n }\n ],\n [\n \"path\",\n {\n d: \"M9 8c-1.804 2.71-3.97 3.46-6.583 3.948a.507.507 0 0 0-.302.819l7.32 8.883a1 1 0 0 0 1.185.204C12.735 20.405 16 16.792 16 15\",\n key: \"ytzfxy\"\n }\n ]\n];\nconst Paintbrush = createLucideIcon(\"paintbrush\", __iconNode$8L);\nconst __iconNode$8K = [\n [\n \"path\",\n {\n d: \"M12 22a1 1 0 0 1 0-20 10 9 0 0 1 10 9 5 5 0 0 1-5 5h-2.25a1.75 1.75 0 0 0-1.4 2.8l.3.4a1.75 1.75 0 0 1-1.4 2.8z\",\n key: \"e79jfc\"\n }\n ],\n [\n \"circle\",\n {\n cx: \"13.5\",\n cy: \"6.5\",\n r: \".5\",\n fill: \"currentColor\",\n key: \"1okk4w\"\n }\n ],\n [\n \"circle\",\n {\n cx: \"17.5\",\n cy: \"10.5\",\n r: \".5\",\n fill: \"currentColor\",\n key: \"f64h9f\"\n }\n ],\n [\n \"circle\",\n {\n cx: \"6.5\",\n cy: \"12.5\",\n r: \".5\",\n fill: \"currentColor\",\n key: \"qy21gx\"\n }\n ],\n [\n \"circle\",\n {\n cx: \"8.5\",\n cy: \"7.5\",\n r: \".5\",\n fill: \"currentColor\",\n key: \"fotxhn\"\n }\n ]\n];\nconst Palette = createLucideIcon(\"palette\", __iconNode$8K);\nconst __iconNode$8J = [\n [\n \"path\",\n {\n d: \"M11.25 17.25h1.5L12 18z\",\n key: \"1wmwwj\"\n }\n ],\n [\n \"path\",\n {\n d: \"m15 12 2 2\",\n key: \"k60wz4\"\n }\n ],\n [\n \"path\",\n {\n d: \"M18 6.5a.5.5 0 0 0-.5-.5\",\n key: \"1ch4h4\"\n }\n ],\n [\n \"path\",\n {\n d: \"M20.69 9.67a4.5 4.5 0 1 0-7.04-5.5 8.35 8.35 0 0 0-3.3 0 4.5 4.5 0 1 0-7.04 5.5C2.49 11.2 2 12.88 2 14.5 2 19.47 6.48 22 12 22s10-2.53 10-7.5c0-1.62-.48-3.3-1.3-4.83\",\n key: \"1c660l\"\n }\n ],\n [\n \"path\",\n {\n d: \"M6 6.5a.495.495 0 0 1 .5-.5\",\n key: \"eviuep\"\n }\n ],\n [\n \"path\",\n {\n d: \"m9 12-2 2\",\n key: \"326nkw\"\n }\n ]\n];\nconst Panda = createLucideIcon(\"panda\", __iconNode$8J);\nconst __iconNode$8I = [\n [\n \"rect\",\n {\n width: \"18\",\n height: \"18\",\n x: \"3\",\n y: \"3\",\n rx: \"2\",\n key: \"afitv7\"\n }\n ],\n [\n \"path\",\n {\n d: \"M3 15h18\",\n key: \"5xshup\"\n }\n ],\n [\n \"path\",\n {\n d: \"m15 8-3 3-3-3\",\n key: \"1oxy1z\"\n }\n ]\n];\nconst PanelBottomClose = createLucideIcon(\"panel-bottom-close\", __iconNode$8I);\nconst __iconNode$8H = [\n [\n \"rect\",\n {\n width: \"18\",\n height: \"18\",\n x: \"3\",\n y: \"3\",\n rx: \"2\",\n key: \"afitv7\"\n }\n ],\n [\n \"path\",\n {\n d: \"M14 15h1\",\n key: \"171nev\"\n }\n ],\n [\n \"path\",\n {\n d: \"M19 15h2\",\n key: \"1vnucp\"\n }\n ],\n [\n \"path\",\n {\n d: \"M3 15h2\",\n key: \"8bym0q\"\n }\n ],\n [\n \"path\",\n {\n d: \"M9 15h1\",\n key: \"1tg3ks\"\n }\n ]\n];\nconst PanelBottomDashed = createLucideIcon(\"panel-bottom-dashed\", __iconNode$8H);\nconst __iconNode$8G = [\n [\n \"rect\",\n {\n width: \"18\",\n height: \"18\",\n x: \"3\",\n y: \"3\",\n rx: \"2\",\n key: \"afitv7\"\n }\n ],\n [\n \"path\",\n {\n d: \"M3 15h18\",\n key: \"5xshup\"\n }\n ],\n [\n \"path\",\n {\n d: \"m9 10 3-3 3 3\",\n key: \"11gsxs\"\n }\n ]\n];\nconst PanelBottomOpen = createLucideIcon(\"panel-bottom-open\", __iconNode$8G);\nconst __iconNode$8F = [\n [\n \"rect\",\n {\n width: \"18\",\n height: \"18\",\n x: \"3\",\n y: \"3\",\n rx: \"2\",\n key: \"afitv7\"\n }\n ],\n [\n \"path\",\n {\n d: \"M3 15h18\",\n key: \"5xshup\"\n }\n ]\n];\nconst PanelBottom = createLucideIcon(\"panel-bottom\", __iconNode$8F);\nconst __iconNode$8E = [\n [\n \"rect\",\n {\n width: \"18\",\n height: \"18\",\n x: \"3\",\n y: \"3\",\n rx: \"2\",\n key: \"afitv7\"\n }\n ],\n [\n \"path\",\n {\n d: \"M9 14v1\",\n key: \"askpd8\"\n }\n ],\n [\n \"path\",\n {\n d: \"M9 19v2\",\n key: \"16tejx\"\n }\n ],\n [\n \"path\",\n {\n d: \"M9 3v2\",\n key: \"1noubl\"\n }\n ],\n [\n \"path\",\n {\n d: \"M9 9v1\",\n key: \"19ebxg\"\n }\n ]\n];\nconst PanelLeftDashed = createLucideIcon(\"panel-left-dashed\", __iconNode$8E);\nconst __iconNode$8D = [\n [\n \"rect\",\n {\n width: \"18\",\n height: \"18\",\n x: \"3\",\n y: \"3\",\n rx: \"2\",\n key: \"afitv7\"\n }\n ],\n [\n \"path\",\n {\n d: \"M9 3v18\",\n key: \"fh3hqa\"\n }\n ],\n [\n \"path\",\n {\n d: \"m16 15-3-3 3-3\",\n key: \"14y99z\"\n }\n ]\n];\nconst PanelLeftClose = createLucideIcon(\"panel-left-close\", __iconNode$8D);\nconst __iconNode$8C = [\n [\n \"rect\",\n {\n width: \"18\",\n height: \"18\",\n x: \"3\",\n y: \"3\",\n rx: \"2\",\n key: \"afitv7\"\n }\n ],\n [\n \"path\",\n {\n d: \"M9 3v18\",\n key: \"fh3hqa\"\n }\n ],\n [\n \"path\",\n {\n d: \"m14 9 3 3-3 3\",\n key: \"8010ee\"\n }\n ]\n];\nconst PanelLeftOpen = createLucideIcon(\"panel-left-open\", __iconNode$8C);\nconst __iconNode$8B = [\n [\n \"rect\",\n {\n width: \"18\",\n height: \"18\",\n x: \"3\",\n y: \"3\",\n rx: \"2\",\n key: \"afitv7\"\n }\n ],\n [\n \"path\",\n {\n d: \"M9 3v18\",\n key: \"fh3hqa\"\n }\n ]\n];\nconst PanelLeft = createLucideIcon(\"panel-left\", __iconNode$8B);\nconst __iconNode$8A = [\n [\n \"rect\",\n {\n width: \"18\",\n height: \"18\",\n x: \"3\",\n y: \"3\",\n rx: \"2\",\n key: \"afitv7\"\n }\n ],\n [\n \"path\",\n {\n d: \"M15 3v18\",\n key: \"14nvp0\"\n }\n ],\n [\n \"path\",\n {\n d: \"m8 9 3 3-3 3\",\n key: \"12hl5m\"\n }\n ]\n];\nconst PanelRightClose = createLucideIcon(\"panel-right-close\", __iconNode$8A);\nconst __iconNode$8z = [\n [\n \"rect\",\n {\n width: \"18\",\n height: \"18\",\n x: \"3\",\n y: \"3\",\n rx: \"2\",\n key: \"afitv7\"\n }\n ],\n [\n \"path\",\n {\n d: \"M15 14v1\",\n key: \"ilsfch\"\n }\n ],\n [\n \"path\",\n {\n d: \"M15 19v2\",\n key: \"1fst2f\"\n }\n ],\n [\n \"path\",\n {\n d: \"M15 3v2\",\n key: \"z204g4\"\n }\n ],\n [\n \"path\",\n {\n d: \"M15 9v1\",\n key: \"z2a8b1\"\n }\n ]\n];\nconst PanelRightDashed = createLucideIcon(\"panel-right-dashed\", __iconNode$8z);\nconst __iconNode$8y = [\n [\n \"rect\",\n {\n width: \"18\",\n height: \"18\",\n x: \"3\",\n y: \"3\",\n rx: \"2\",\n key: \"afitv7\"\n }\n ],\n [\n \"path\",\n {\n d: \"M15 3v18\",\n key: \"14nvp0\"\n }\n ],\n [\n \"path\",\n {\n d: \"m10 15-3-3 3-3\",\n key: \"1pgupc\"\n }\n ]\n];\nconst PanelRightOpen = createLucideIcon(\"panel-right-open\", __iconNode$8y);\nconst __iconNode$8x = [\n [\n \"rect\",\n {\n width: \"18\",\n height: \"18\",\n x: \"3\",\n y: \"3\",\n rx: \"2\",\n key: \"afitv7\"\n }\n ],\n [\n \"path\",\n {\n d: \"M15 3v18\",\n key: \"14nvp0\"\n }\n ]\n];\nconst PanelRight = createLucideIcon(\"panel-right\", __iconNode$8x);\nconst __iconNode$8w = [\n [\n \"rect\",\n {\n width: \"18\",\n height: \"18\",\n x: \"3\",\n y: \"3\",\n rx: \"2\",\n key: \"afitv7\"\n }\n ],\n [\n \"path\",\n {\n d: \"M3 9h18\",\n key: \"1pudct\"\n }\n ],\n [\n \"path\",\n {\n d: \"m9 16 3-3 3 3\",\n key: \"1idcnm\"\n }\n ]\n];\nconst PanelTopClose = createLucideIcon(\"panel-top-close\", __iconNode$8w);\nconst __iconNode$8v = [\n [\n \"rect\",\n {\n width: \"18\",\n height: \"18\",\n x: \"3\",\n y: \"3\",\n rx: \"2\",\n key: \"afitv7\"\n }\n ],\n [\n \"path\",\n {\n d: \"M14 9h1\",\n key: \"l0svgy\"\n }\n ],\n [\n \"path\",\n {\n d: \"M19 9h2\",\n key: \"te2zfg\"\n }\n ],\n [\n \"path\",\n {\n d: \"M3 9h2\",\n key: \"1h4ldw\"\n }\n ],\n [\n \"path\",\n {\n d: \"M9 9h1\",\n key: \"15jzuz\"\n }\n ]\n];\nconst PanelTopDashed = createLucideIcon(\"panel-top-dashed\", __iconNode$8v);\nconst __iconNode$8u = [\n [\n \"rect\",\n {\n width: \"18\",\n height: \"18\",\n x: \"3\",\n y: \"3\",\n rx: \"2\",\n key: \"afitv7\"\n }\n ],\n [\n \"path\",\n {\n d: \"M3 9h18\",\n key: \"1pudct\"\n }\n ],\n [\n \"path\",\n {\n d: \"m15 14-3 3-3-3\",\n key: \"g215vf\"\n }\n ]\n];\nconst PanelTopOpen = createLucideIcon(\"panel-top-open\", __iconNode$8u);\nconst __iconNode$8t = [\n [\n \"rect\",\n {\n width: \"18\",\n height: \"18\",\n x: \"3\",\n y: \"3\",\n rx: \"2\",\n key: \"afitv7\"\n }\n ],\n [\n \"path\",\n {\n d: \"M3 9h18\",\n key: \"1pudct\"\n }\n ]\n];\nconst PanelTop = createLucideIcon(\"panel-top\", __iconNode$8t);\nconst __iconNode$8s = [\n [\n \"rect\",\n {\n width: \"18\",\n height: \"18\",\n x: \"3\",\n y: \"3\",\n rx: \"2\",\n key: \"afitv7\"\n }\n ],\n [\n \"path\",\n {\n d: \"M9 3v18\",\n key: \"fh3hqa\"\n }\n ],\n [\n \"path\",\n {\n d: \"M9 15h12\",\n key: \"5ijen5\"\n }\n ]\n];\nconst PanelsLeftBottom = createLucideIcon(\"panels-left-bottom\", __iconNode$8s);\nconst __iconNode$8r = [\n [\n \"rect\",\n {\n width: \"18\",\n height: \"18\",\n x: \"3\",\n y: \"3\",\n rx: \"2\",\n key: \"afitv7\"\n }\n ],\n [\n \"path\",\n {\n d: \"M3 15h12\",\n key: \"1wkqb3\"\n }\n ],\n [\n \"path\",\n {\n d: \"M15 3v18\",\n key: \"14nvp0\"\n }\n ]\n];\nconst PanelsRightBottom = createLucideIcon(\"panels-right-bottom\", __iconNode$8r);\nconst __iconNode$8q = [\n [\n \"rect\",\n {\n width: \"18\",\n height: \"18\",\n x: \"3\",\n y: \"3\",\n rx: \"2\",\n key: \"afitv7\"\n }\n ],\n [\n \"path\",\n {\n d: \"M3 9h18\",\n key: \"1pudct\"\n }\n ],\n [\n \"path\",\n {\n d: \"M9 21V9\",\n key: \"1oto5p\"\n }\n ]\n];\nconst PanelsTopLeft = createLucideIcon(\"panels-top-left\", __iconNode$8q);\nconst __iconNode$8p = [\n [\n \"path\",\n {\n d: \"m16 6-8.414 8.586a2 2 0 0 0 2.829 2.829l8.414-8.586a4 4 0 1 0-5.657-5.657l-8.379 8.551a6 6 0 1 0 8.485 8.485l8.379-8.551\",\n key: \"1miecu\"\n }\n ]\n];\nconst Paperclip = createLucideIcon(\"paperclip\", __iconNode$8p);\nconst __iconNode$8o = [\n [\n \"path\",\n {\n d: \"M8 21s-4-3-4-9 4-9 4-9\",\n key: \"uto9ud\"\n }\n ],\n [\n \"path\",\n {\n d: \"M16 3s4 3 4 9-4 9-4 9\",\n key: \"4w2vsq\"\n }\n ]\n];\nconst Parentheses = createLucideIcon(\"parentheses\", __iconNode$8o);\nconst __iconNode$8n = [\n [\n \"path\",\n {\n d: \"M11 15h2\",\n key: \"199qp6\"\n }\n ],\n [\n \"path\",\n {\n d: \"M12 12v3\",\n key: \"158kv8\"\n }\n ],\n [\n \"path\",\n {\n d: \"M12 19v3\",\n key: \"npa21l\"\n }\n ],\n [\n \"path\",\n {\n d: \"M15.282 19a1 1 0 0 0 .948-.68l2.37-6.988a7 7 0 1 0-13.2 0l2.37 6.988a1 1 0 0 0 .948.68z\",\n key: \"1jofit\"\n }\n ],\n [\n \"path\",\n {\n d: \"M9 9a3 3 0 1 1 6 0\",\n key: \"jdoeu8\"\n }\n ]\n];\nconst ParkingMeter = createLucideIcon(\"parking-meter\", __iconNode$8n);\nconst __iconNode$8m = [\n [\n \"path\",\n {\n d: \"M5.8 11.3 2 22l10.7-3.79\",\n key: \"gwxi1d\"\n }\n ],\n [\n \"path\",\n {\n d: \"M4 3h.01\",\n key: \"1vcuye\"\n }\n ],\n [\n \"path\",\n {\n d: \"M22 8h.01\",\n key: \"1mrtc2\"\n }\n ],\n [\n \"path\",\n {\n d: \"M15 2h.01\",\n key: \"1cjtqr\"\n }\n ],\n [\n \"path\",\n {\n d: \"M22 20h.01\",\n key: \"1mrys2\"\n }\n ],\n [\n \"path\",\n {\n d: \"m22 2-2.24.75a2.9 2.9 0 0 0-1.96 3.12c.1.86-.57 1.63-1.45 1.63h-.38c-.86 0-1.6.6-1.76 1.44L14 10\",\n key: \"hbicv8\"\n }\n ],\n [\n \"path\",\n {\n d: \"m22 13-.82-.33c-.86-.34-1.82.2-1.98 1.11c-.11.7-.72 1.22-1.43 1.22H17\",\n key: \"1i94pl\"\n }\n ],\n [\n \"path\",\n {\n d: \"m11 2 .33.82c.34.86-.2 1.82-1.11 1.98C9.52 4.9 9 5.52 9 6.23V7\",\n key: \"1cofks\"\n }\n ],\n [\n \"path\",\n {\n d: \"M11 13c1.93 1.93 2.83 4.17 2 5-.83.83-3.07-.07-5-2-1.93-1.93-2.83-4.17-2-5 .83-.83 3.07.07 5 2Z\",\n key: \"4kbmks\"\n }\n ]\n];\nconst PartyPopper = createLucideIcon(\"party-popper\", __iconNode$8m);\nconst __iconNode$8l = [\n [\n \"rect\",\n {\n x: \"14\",\n y: \"4\",\n width: \"4\",\n height: \"16\",\n rx: \"1\",\n key: \"zuxfzm\"\n }\n ],\n [\n \"rect\",\n {\n x: \"6\",\n y: \"4\",\n width: \"4\",\n height: \"16\",\n rx: \"1\",\n key: \"1okwgv\"\n }\n ]\n];\nconst Pause = createLucideIcon(\"pause\", __iconNode$8l);\nconst __iconNode$8k = [\n [\n \"circle\",\n {\n cx: \"11\",\n cy: \"4\",\n r: \"2\",\n key: \"vol9p0\"\n }\n ],\n [\n \"circle\",\n {\n cx: \"18\",\n cy: \"8\",\n r: \"2\",\n key: \"17gozi\"\n }\n ],\n [\n \"circle\",\n {\n cx: \"20\",\n cy: \"16\",\n r: \"2\",\n key: \"1v9bxh\"\n }\n ],\n [\n \"path\",\n {\n d: \"M9 10a5 5 0 0 1 5 5v3.5a3.5 3.5 0 0 1-6.84 1.045Q6.52 17.48 4.46 16.84A3.5 3.5 0 0 1 5.5 10Z\",\n key: \"1ydw1z\"\n }\n ]\n];\nconst PawPrint = createLucideIcon(\"paw-print\", __iconNode$8k);\nconst __iconNode$8j = [\n [\n \"rect\",\n {\n width: \"14\",\n height: \"20\",\n x: \"5\",\n y: \"2\",\n rx: \"2\",\n key: \"1uq1d7\"\n }\n ],\n [\n \"path\",\n {\n d: \"M15 14h.01\",\n key: \"1kp3bh\"\n }\n ],\n [\n \"path\",\n {\n d: \"M9 6h6\",\n key: \"dgm16u\"\n }\n ],\n [\n \"path\",\n {\n d: \"M9 10h6\",\n key: \"9gxzsh\"\n }\n ]\n];\nconst PcCase = createLucideIcon(\"pc-case\", __iconNode$8j);\nconst __iconNode$8i = [\n [\n \"path\",\n {\n d: \"m10 10-6.157 6.162a2 2 0 0 0-.5.833l-1.322 4.36a.5.5 0 0 0 .622.624l4.358-1.323a2 2 0 0 0 .83-.5L14 13.982\",\n key: \"bjo8r8\"\n }\n ],\n [\n \"path\",\n {\n d: \"m12.829 7.172 4.359-4.346a1 1 0 1 1 3.986 3.986l-4.353 4.353\",\n key: \"16h5ne\"\n }\n ],\n [\n \"path\",\n {\n d: \"m2 2 20 20\",\n key: \"1ooewy\"\n }\n ]\n];\nconst PenOff = createLucideIcon(\"pen-off\", __iconNode$8i);\nconst __iconNode$8h = [\n [\n \"path\",\n {\n d: \"M12 20h9\",\n key: \"t2du7b\"\n }\n ],\n [\n \"path\",\n {\n d: \"M16.376 3.622a1 1 0 0 1 3.002 3.002L7.368 18.635a2 2 0 0 1-.855.506l-2.872.838a.5.5 0 0 1-.62-.62l.838-2.872a2 2 0 0 1 .506-.854z\",\n key: \"1ykcvy\"\n }\n ]\n];\nconst PenLine = createLucideIcon(\"pen-line\", __iconNode$8h);\nconst __iconNode$8g = [\n [\n \"path\",\n {\n d: \"M15.707 21.293a1 1 0 0 1-1.414 0l-1.586-1.586a1 1 0 0 1 0-1.414l5.586-5.586a1 1 0 0 1 1.414 0l1.586 1.586a1 1 0 0 1 0 1.414z\",\n key: \"nt11vn\"\n }\n ],\n [\n \"path\",\n {\n d: \"m18 13-1.375-6.874a1 1 0 0 0-.746-.776L3.235 2.028a1 1 0 0 0-1.207 1.207L5.35 15.879a1 1 0 0 0 .776.746L13 18\",\n key: \"15qc1e\"\n }\n ],\n [\n \"path\",\n {\n d: \"m2.3 2.3 7.286 7.286\",\n key: \"1wuzzi\"\n }\n ],\n [\n \"circle\",\n {\n cx: \"11\",\n cy: \"11\",\n r: \"2\",\n key: \"xmgehs\"\n }\n ]\n];\nconst PenTool = createLucideIcon(\"pen-tool\", __iconNode$8g);\nconst __iconNode$8f = [\n [\n \"path\",\n {\n d: \"M21.174 6.812a1 1 0 0 0-3.986-3.987L3.842 16.174a2 2 0 0 0-.5.83l-1.321 4.352a.5.5 0 0 0 .623.622l4.353-1.32a2 2 0 0 0 .83-.497z\",\n key: \"1a8usu\"\n }\n ]\n];\nconst Pen = createLucideIcon(\"pen\", __iconNode$8f);\nconst __iconNode$8e = [\n [\n \"path\",\n {\n d: \"m10 10-6.157 6.162a2 2 0 0 0-.5.833l-1.322 4.36a.5.5 0 0 0 .622.624l4.358-1.323a2 2 0 0 0 .83-.5L14 13.982\",\n key: \"bjo8r8\"\n }\n ],\n [\n \"path\",\n {\n d: \"m12.829 7.172 4.359-4.346a1 1 0 1 1 3.986 3.986l-4.353 4.353\",\n key: \"16h5ne\"\n }\n ],\n [\n \"path\",\n {\n d: \"m15 5 4 4\",\n key: \"1mk7zo\"\n }\n ],\n [\n \"path\",\n {\n d: \"m2 2 20 20\",\n key: \"1ooewy\"\n }\n ]\n];\nconst PencilOff = createLucideIcon(\"pencil-off\", __iconNode$8e);\nconst __iconNode$8d = [\n [\n \"path\",\n {\n d: \"M12 20h9\",\n key: \"t2du7b\"\n }\n ],\n [\n \"path\",\n {\n d: \"M16.376 3.622a1 1 0 0 1 3.002 3.002L7.368 18.635a2 2 0 0 1-.855.506l-2.872.838a.5.5 0 0 1-.62-.62l.838-2.872a2 2 0 0 1 .506-.854z\",\n key: \"1ykcvy\"\n }\n ],\n [\n \"path\",\n {\n d: \"m15 5 3 3\",\n key: \"1w25hb\"\n }\n ]\n];\nconst PencilLine = createLucideIcon(\"pencil-line\", __iconNode$8d);\nconst __iconNode$8c = [\n [\n \"path\",\n {\n d: \"M13 7 8.7 2.7a2.41 2.41 0 0 0-3.4 0L2.7 5.3a2.41 2.41 0 0 0 0 3.4L7 13\",\n key: \"orapub\"\n }\n ],\n [\n \"path\",\n {\n d: \"m8 6 2-2\",\n key: \"115y1s\"\n }\n ],\n [\n \"path\",\n {\n d: \"m18 16 2-2\",\n key: \"ee94s4\"\n }\n ],\n [\n \"path\",\n {\n d: \"m17 11 4.3 4.3c.94.94.94 2.46 0 3.4l-2.6 2.6c-.94.94-2.46.94-3.4 0L11 17\",\n key: \"cfq27r\"\n }\n ],\n [\n \"path\",\n {\n d: \"M21.174 6.812a1 1 0 0 0-3.986-3.987L3.842 16.174a2 2 0 0 0-.5.83l-1.321 4.352a.5.5 0 0 0 .623.622l4.353-1.32a2 2 0 0 0 .83-.497z\",\n key: \"1a8usu\"\n }\n ],\n [\n \"path\",\n {\n d: \"m15 5 4 4\",\n key: \"1mk7zo\"\n }\n ]\n];\nconst PencilRuler = createLucideIcon(\"pencil-ruler\", __iconNode$8c);\nconst __iconNode$8b = [\n [\n \"path\",\n {\n d: \"M21.174 6.812a1 1 0 0 0-3.986-3.987L3.842 16.174a2 2 0 0 0-.5.83l-1.321 4.352a.5.5 0 0 0 .623.622l4.353-1.32a2 2 0 0 0 .83-.497z\",\n key: \"1a8usu\"\n }\n ],\n [\n \"path\",\n {\n d: \"m15 5 4 4\",\n key: \"1mk7zo\"\n }\n ]\n];\nconst Pencil = createLucideIcon(\"pencil\", __iconNode$8b);\nconst __iconNode$8a = [\n [\n \"path\",\n {\n d: \"M10.83 2.38a2 2 0 0 1 2.34 0l8 5.74a2 2 0 0 1 .73 2.25l-3.04 9.26a2 2 0 0 1-1.9 1.37H7.04a2 2 0 0 1-1.9-1.37L2.1 10.37a2 2 0 0 1 .73-2.25z\",\n key: \"2hea0t\"\n }\n ]\n];\nconst Pentagon = createLucideIcon(\"pentagon\", __iconNode$8a);\nconst __iconNode$89 = [\n [\n \"line\",\n {\n x1: \"19\",\n x2: \"5\",\n y1: \"5\",\n y2: \"19\",\n key: \"1x9vlm\"\n }\n ],\n [\n \"circle\",\n {\n cx: \"6.5\",\n cy: \"6.5\",\n r: \"2.5\",\n key: \"4mh3h7\"\n }\n ],\n [\n \"circle\",\n {\n cx: \"17.5\",\n cy: \"17.5\",\n r: \"2.5\",\n key: \"1mdrzq\"\n }\n ]\n];\nconst Percent = createLucideIcon(\"percent\", __iconNode$89);\nconst __iconNode$88 = [\n [\n \"circle\",\n {\n cx: \"12\",\n cy: \"5\",\n r: \"1\",\n key: \"gxeob9\"\n }\n ],\n [\n \"path\",\n {\n d: \"m9 20 3-6 3 6\",\n key: \"se2kox\"\n }\n ],\n [\n \"path\",\n {\n d: \"m6 8 6 2 6-2\",\n key: \"4o3us4\"\n }\n ],\n [\n \"path\",\n {\n d: \"M12 10v4\",\n key: \"1kjpxc\"\n }\n ]\n];\nconst PersonStanding = createLucideIcon(\"person-standing\", __iconNode$88);\nconst __iconNode$87 = [\n [\n \"path\",\n {\n d: \"M20 11H4\",\n key: \"6ut86h\"\n }\n ],\n [\n \"path\",\n {\n d: \"M20 7H4\",\n key: \"zbl0bi\"\n }\n ],\n [\n \"path\",\n {\n d: \"M7 21V4a1 1 0 0 1 1-1h4a1 1 0 0 1 0 12H7\",\n key: \"1ana5r\"\n }\n ]\n];\nconst PhilippinePeso = createLucideIcon(\"philippine-peso\", __iconNode$87);\nconst __iconNode$86 = [\n [\n \"path\",\n {\n d: \"M13 2a9 9 0 0 1 9 9\",\n key: \"1itnx2\"\n }\n ],\n [\n \"path\",\n {\n d: \"M13 6a5 5 0 0 1 5 5\",\n key: \"11nki7\"\n }\n ],\n [\n \"path\",\n {\n d: \"M13.832 16.568a1 1 0 0 0 1.213-.303l.355-.465A2 2 0 0 1 17 15h3a2 2 0 0 1 2 2v3a2 2 0 0 1-2 2A18 18 0 0 1 2 4a2 2 0 0 1 2-2h3a2 2 0 0 1 2 2v3a2 2 0 0 1-.8 1.6l-.468.351a1 1 0 0 0-.292 1.233 14 14 0 0 0 6.392 6.384\",\n key: \"9njp5v\"\n }\n ]\n];\nconst PhoneCall = createLucideIcon(\"phone-call\", __iconNode$86);\nconst __iconNode$85 = [\n [\n \"path\",\n {\n d: \"M14 6h8\",\n key: \"yd68k4\"\n }\n ],\n [\n \"path\",\n {\n d: \"m18 2 4 4-4 4\",\n key: \"pucp1d\"\n }\n ],\n [\n \"path\",\n {\n d: \"M13.832 16.568a1 1 0 0 0 1.213-.303l.355-.465A2 2 0 0 1 17 15h3a2 2 0 0 1 2 2v3a2 2 0 0 1-2 2A18 18 0 0 1 2 4a2 2 0 0 1 2-2h3a2 2 0 0 1 2 2v3a2 2 0 0 1-.8 1.6l-.468.351a1 1 0 0 0-.292 1.233 14 14 0 0 0 6.392 6.384\",\n key: \"9njp5v\"\n }\n ]\n];\nconst PhoneForwarded = createLucideIcon(\"phone-forwarded\", __iconNode$85);\nconst __iconNode$84 = [\n [\n \"path\",\n {\n d: \"M16 2v6h6\",\n key: \"1mfrl5\"\n }\n ],\n [\n \"path\",\n {\n d: \"m22 2-6 6\",\n key: \"6f0sa0\"\n }\n ],\n [\n \"path\",\n {\n d: \"M13.832 16.568a1 1 0 0 0 1.213-.303l.355-.465A2 2 0 0 1 17 15h3a2 2 0 0 1 2 2v3a2 2 0 0 1-2 2A18 18 0 0 1 2 4a2 2 0 0 1 2-2h3a2 2 0 0 1 2 2v3a2 2 0 0 1-.8 1.6l-.468.351a1 1 0 0 0-.292 1.233 14 14 0 0 0 6.392 6.384\",\n key: \"9njp5v\"\n }\n ]\n];\nconst PhoneIncoming = createLucideIcon(\"phone-incoming\", __iconNode$84);\nconst __iconNode$83 = [\n [\n \"path\",\n {\n d: \"m16 2 6 6\",\n key: \"1gw87d\"\n }\n ],\n [\n \"path\",\n {\n d: \"m22 2-6 6\",\n key: \"6f0sa0\"\n }\n ],\n [\n \"path\",\n {\n d: \"M13.832 16.568a1 1 0 0 0 1.213-.303l.355-.465A2 2 0 0 1 17 15h3a2 2 0 0 1 2 2v3a2 2 0 0 1-2 2A18 18 0 0 1 2 4a2 2 0 0 1 2-2h3a2 2 0 0 1 2 2v3a2 2 0 0 1-.8 1.6l-.468.351a1 1 0 0 0-.292 1.233 14 14 0 0 0 6.392 6.384\",\n key: \"9njp5v\"\n }\n ]\n];\nconst PhoneMissed = createLucideIcon(\"phone-missed\", __iconNode$83);\nconst __iconNode$82 = [\n [\n \"path\",\n {\n d: \"M10.1 13.9a14 14 0 0 0 3.732 2.668 1 1 0 0 0 1.213-.303l.355-.465A2 2 0 0 1 17 15h3a2 2 0 0 1 2 2v3a2 2 0 0 1-2 2 18 18 0 0 1-12.728-5.272\",\n key: \"1wngk7\"\n }\n ],\n [\n \"path\",\n {\n d: \"M22 2 2 22\",\n key: \"y4kqgn\"\n }\n ],\n [\n \"path\",\n {\n d: \"M4.76 13.582A18 18 0 0 1 2 4a2 2 0 0 1 2-2h3a2 2 0 0 1 2 2v3a2 2 0 0 1-.8 1.6l-.468.351a1 1 0 0 0-.292 1.233 14 14 0 0 0 .244.473\",\n key: \"10hv5p\"\n }\n ]\n];\nconst PhoneOff = createLucideIcon(\"phone-off\", __iconNode$82);\nconst __iconNode$81 = [\n [\n \"path\",\n {\n d: \"m16 8 6-6\",\n key: \"oawc05\"\n }\n ],\n [\n \"path\",\n {\n d: \"M22 8V2h-6\",\n key: \"oqy2zc\"\n }\n ],\n [\n \"path\",\n {\n d: \"M13.832 16.568a1 1 0 0 0 1.213-.303l.355-.465A2 2 0 0 1 17 15h3a2 2 0 0 1 2 2v3a2 2 0 0 1-2 2A18 18 0 0 1 2 4a2 2 0 0 1 2-2h3a2 2 0 0 1 2 2v3a2 2 0 0 1-.8 1.6l-.468.351a1 1 0 0 0-.292 1.233 14 14 0 0 0 6.392 6.384\",\n key: \"9njp5v\"\n }\n ]\n];\nconst PhoneOutgoing = createLucideIcon(\"phone-outgoing\", __iconNode$81);\nconst __iconNode$80 = [\n [\n \"path\",\n {\n d: \"M13.832 16.568a1 1 0 0 0 1.213-.303l.355-.465A2 2 0 0 1 17 15h3a2 2 0 0 1 2 2v3a2 2 0 0 1-2 2A18 18 0 0 1 2 4a2 2 0 0 1 2-2h3a2 2 0 0 1 2 2v3a2 2 0 0 1-.8 1.6l-.468.351a1 1 0 0 0-.292 1.233 14 14 0 0 0 6.392 6.384\",\n key: \"9njp5v\"\n }\n ]\n];\nconst Phone = createLucideIcon(\"phone\", __iconNode$80);\nconst __iconNode$7$ = [\n [\n \"line\",\n {\n x1: \"9\",\n x2: \"9\",\n y1: \"4\",\n y2: \"20\",\n key: \"ovs5a5\"\n }\n ],\n [\n \"path\",\n {\n d: \"M4 7c0-1.7 1.3-3 3-3h13\",\n key: \"10pag4\"\n }\n ],\n [\n \"path\",\n {\n d: \"M18 20c-1.7 0-3-1.3-3-3V4\",\n key: \"1gaosr\"\n }\n ]\n];\nconst Pi = createLucideIcon(\"pi\", __iconNode$7$);\nconst __iconNode$7_ = [\n [\n \"path\",\n {\n d: \"M18.5 8c-1.4 0-2.6-.8-3.2-2A6.87 6.87 0 0 0 2 9v11a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2v-8.5C22 9.6 20.4 8 18.5 8\",\n key: \"lag0yf\"\n }\n ],\n [\n \"path\",\n {\n d: \"M2 14h20\",\n key: \"myj16y\"\n }\n ],\n [\n \"path\",\n {\n d: \"M6 14v4\",\n key: \"9ng0ue\"\n }\n ],\n [\n \"path\",\n {\n d: \"M10 14v4\",\n key: \"1v8uk5\"\n }\n ],\n [\n \"path\",\n {\n d: \"M14 14v4\",\n key: \"1tqops\"\n }\n ],\n [\n \"path\",\n {\n d: \"M18 14v4\",\n key: \"18uqwm\"\n }\n ]\n];\nconst Piano = createLucideIcon(\"piano\", __iconNode$7_);\nconst __iconNode$7Z = [\n [\n \"path\",\n {\n d: \"M14.531 12.469 6.619 20.38a1 1 0 1 1-3-3l7.912-7.912\",\n key: \"we99rg\"\n }\n ],\n [\n \"path\",\n {\n d: \"M15.686 4.314A12.5 12.5 0 0 0 5.461 2.958 1 1 0 0 0 5.58 4.71a22 22 0 0 1 6.318 3.393\",\n key: \"1w6hck\"\n }\n ],\n [\n \"path\",\n {\n d: \"M17.7 3.7a1 1 0 0 0-1.4 0l-4.6 4.6a1 1 0 0 0 0 1.4l2.6 2.6a1 1 0 0 0 1.4 0l4.6-4.6a1 1 0 0 0 0-1.4z\",\n key: \"15hgfx\"\n }\n ],\n [\n \"path\",\n {\n d: \"M19.686 8.314a12.501 12.501 0 0 1 1.356 10.225 1 1 0 0 1-1.751-.119 22 22 0 0 0-3.393-6.319\",\n key: \"452b4h\"\n }\n ]\n];\nconst Pickaxe = createLucideIcon(\"pickaxe\", __iconNode$7Z);\nconst __iconNode$7Y = [\n [\n \"path\",\n {\n d: \"M21 9V6a2 2 0 0 0-2-2H4a2 2 0 0 0-2 2v10c0 1.1.9 2 2 2h4\",\n key: \"daa4of\"\n }\n ],\n [\n \"rect\",\n {\n width: \"10\",\n height: \"7\",\n x: \"12\",\n y: \"13\",\n rx: \"2\",\n key: \"1nb8gs\"\n }\n ]\n];\nconst PictureInPicture2 = createLucideIcon(\"picture-in-picture-2\", __iconNode$7Y);\nconst __iconNode$7X = [\n [\n \"path\",\n {\n d: \"M2 10h6V4\",\n key: \"zwrco\"\n }\n ],\n [\n \"path\",\n {\n d: \"m2 4 6 6\",\n key: \"ug085t\"\n }\n ],\n [\n \"path\",\n {\n d: \"M21 10V7a2 2 0 0 0-2-2h-7\",\n key: \"git5jr\"\n }\n ],\n [\n \"path\",\n {\n d: \"M3 14v2a2 2 0 0 0 2 2h3\",\n key: \"1f7fh3\"\n }\n ],\n [\n \"rect\",\n {\n x: \"12\",\n y: \"14\",\n width: \"10\",\n height: \"7\",\n rx: \"1\",\n key: \"1wjs3o\"\n }\n ]\n];\nconst PictureInPicture = createLucideIcon(\"picture-in-picture\", __iconNode$7X);\nconst __iconNode$7W = [\n [\n \"path\",\n {\n d: \"M11 17h3v2a1 1 0 0 0 1 1h2a1 1 0 0 0 1-1v-3a3.16 3.16 0 0 0 2-2h1a1 1 0 0 0 1-1v-2a1 1 0 0 0-1-1h-1a5 5 0 0 0-2-4V3a4 4 0 0 0-3.2 1.6l-.3.4H11a6 6 0 0 0-6 6v1a5 5 0 0 0 2 4v3a1 1 0 0 0 1 1h2a1 1 0 0 0 1-1z\",\n key: \"1piglc\"\n }\n ],\n [\n \"path\",\n {\n d: \"M16 10h.01\",\n key: \"1m94wz\"\n }\n ],\n [\n \"path\",\n {\n d: \"M2 8v1a2 2 0 0 0 2 2h1\",\n key: \"1env43\"\n }\n ]\n];\nconst PiggyBank = createLucideIcon(\"piggy-bank\", __iconNode$7W);\nconst __iconNode$7V = [\n [\n \"path\",\n {\n d: \"M14 3v11\",\n key: \"mlfb7b\"\n }\n ],\n [\n \"path\",\n {\n d: \"M14 9h-3a3 3 0 0 1 0-6h9\",\n key: \"1ulc19\"\n }\n ],\n [\n \"path\",\n {\n d: \"M18 3v11\",\n key: \"1phi0r\"\n }\n ],\n [\n \"path\",\n {\n d: \"M22 18H2l4-4\",\n key: \"yt65j9\"\n }\n ],\n [\n \"path\",\n {\n d: \"m6 22-4-4\",\n key: \"6jgyf5\"\n }\n ]\n];\nconst PilcrowLeft = createLucideIcon(\"pilcrow-left\", __iconNode$7V);\nconst __iconNode$7U = [\n [\n \"path\",\n {\n d: \"M10 3v11\",\n key: \"o3l5kj\"\n }\n ],\n [\n \"path\",\n {\n d: \"M10 9H7a1 1 0 0 1 0-6h8\",\n key: \"1wb1nc\"\n }\n ],\n [\n \"path\",\n {\n d: \"M14 3v11\",\n key: \"mlfb7b\"\n }\n ],\n [\n \"path\",\n {\n d: \"m18 14 4 4H2\",\n key: \"4r8io1\"\n }\n ],\n [\n \"path\",\n {\n d: \"m22 18-4 4\",\n key: \"1hjjrd\"\n }\n ]\n];\nconst PilcrowRight = createLucideIcon(\"pilcrow-right\", __iconNode$7U);\nconst __iconNode$7T = [\n [\n \"path\",\n {\n d: \"M13 4v16\",\n key: \"8vvj80\"\n }\n ],\n [\n \"path\",\n {\n d: \"M17 4v16\",\n key: \"7dpous\"\n }\n ],\n [\n \"path\",\n {\n d: \"M19 4H9.5a4.5 4.5 0 0 0 0 9H13\",\n key: \"sh4n9v\"\n }\n ]\n];\nconst Pilcrow = createLucideIcon(\"pilcrow\", __iconNode$7T);\nconst __iconNode$7S = [\n [\n \"path\",\n {\n d: \"M18 11h-4a1 1 0 0 0-1 1v5a1 1 0 0 0 1 1h4\",\n key: \"17ldeb\"\n }\n ],\n [\n \"path\",\n {\n d: \"M6 7v13a2 2 0 0 0 2 2h8a2 2 0 0 0 2-2V7\",\n key: \"nc37y6\"\n }\n ],\n [\n \"rect\",\n {\n width: \"16\",\n height: \"5\",\n x: \"4\",\n y: \"2\",\n rx: \"1\",\n key: \"3jeezo\"\n }\n ]\n];\nconst PillBottle = createLucideIcon(\"pill-bottle\", __iconNode$7S);\nconst __iconNode$7R = [\n [\n \"path\",\n {\n d: \"m10.5 20.5 10-10a4.95 4.95 0 1 0-7-7l-10 10a4.95 4.95 0 1 0 7 7Z\",\n key: \"wa1lgi\"\n }\n ],\n [\n \"path\",\n {\n d: \"m8.5 8.5 7 7\",\n key: \"rvfmvr\"\n }\n ]\n];\nconst Pill = createLucideIcon(\"pill\", __iconNode$7R);\nconst __iconNode$7Q = [\n [\n \"path\",\n {\n d: \"M12 17v5\",\n key: \"bb1du9\"\n }\n ],\n [\n \"path\",\n {\n d: \"M15 9.34V7a1 1 0 0 1 1-1 2 2 0 0 0 0-4H7.89\",\n key: \"znwnzq\"\n }\n ],\n [\n \"path\",\n {\n d: \"m2 2 20 20\",\n key: \"1ooewy\"\n }\n ],\n [\n \"path\",\n {\n d: \"M9 9v1.76a2 2 0 0 1-1.11 1.79l-1.78.9A2 2 0 0 0 5 15.24V16a1 1 0 0 0 1 1h11\",\n key: \"c9qhm2\"\n }\n ]\n];\nconst PinOff = createLucideIcon(\"pin-off\", __iconNode$7Q);\nconst __iconNode$7P = [\n [\n \"path\",\n {\n d: \"M12 17v5\",\n key: \"bb1du9\"\n }\n ],\n [\n \"path\",\n {\n d: \"M9 10.76a2 2 0 0 1-1.11 1.79l-1.78.9A2 2 0 0 0 5 15.24V16a1 1 0 0 0 1 1h12a1 1 0 0 0 1-1v-.76a2 2 0 0 0-1.11-1.79l-1.78-.9A2 2 0 0 1 15 10.76V7a1 1 0 0 1 1-1 2 2 0 0 0 0-4H8a2 2 0 0 0 0 4 1 1 0 0 1 1 1z\",\n key: \"1nkz8b\"\n }\n ]\n];\nconst Pin = createLucideIcon(\"pin\", __iconNode$7P);\nconst __iconNode$7O = [\n [\n \"path\",\n {\n d: \"m12 9-8.414 8.414A2 2 0 0 0 3 18.828v1.344a2 2 0 0 1-.586 1.414A2 2 0 0 1 3.828 21h1.344a2 2 0 0 0 1.414-.586L15 12\",\n key: \"1y3wsu\"\n }\n ],\n [\n \"path\",\n {\n d: \"m18 9 .4.4a1 1 0 1 1-3 3l-3.8-3.8a1 1 0 1 1 3-3l.4.4 3.4-3.4a1 1 0 1 1 3 3z\",\n key: \"110lr1\"\n }\n ],\n [\n \"path\",\n {\n d: \"m2 22 .414-.414\",\n key: \"jhxm08\"\n }\n ]\n];\nconst Pipette = createLucideIcon(\"pipette\", __iconNode$7O);\nconst __iconNode$7N = [\n [\n \"path\",\n {\n d: \"m12 14-1 1\",\n key: \"11onhr\"\n }\n ],\n [\n \"path\",\n {\n d: \"m13.75 18.25-1.25 1.42\",\n key: \"1yisr3\"\n }\n ],\n [\n \"path\",\n {\n d: \"M17.775 5.654a15.68 15.68 0 0 0-12.121 12.12\",\n key: \"1qtqk6\"\n }\n ],\n [\n \"path\",\n {\n d: \"M18.8 9.3a1 1 0 0 0 2.1 7.7\",\n key: \"fbbbr2\"\n }\n ],\n [\n \"path\",\n {\n d: \"M21.964 20.732a1 1 0 0 1-1.232 1.232l-18-5a1 1 0 0 1-.695-1.232A19.68 19.68 0 0 1 15.732 2.037a1 1 0 0 1 1.232.695z\",\n key: \"1hyfdd\"\n }\n ]\n];\nconst Pizza = createLucideIcon(\"pizza\", __iconNode$7N);\nconst __iconNode$7M = [\n [\n \"path\",\n {\n d: \"M2 22h20\",\n key: \"272qi7\"\n }\n ],\n [\n \"path\",\n {\n d: \"M3.77 10.77 2 9l2-4.5 1.1.55c.55.28.9.84.9 1.45s.35 1.17.9 1.45L8 8.5l3-6 1.05.53a2 2 0 0 1 1.09 1.52l.72 5.4a2 2 0 0 0 1.09 1.52l4.4 2.2c.42.22.78.55 1.01.96l.6 1.03c.49.88-.06 1.98-1.06 2.1l-1.18.15c-.47.06-.95-.02-1.37-.24L4.29 11.15a2 2 0 0 1-.52-.38Z\",\n key: \"1ma21e\"\n }\n ]\n];\nconst PlaneLanding = createLucideIcon(\"plane-landing\", __iconNode$7M);\nconst __iconNode$7L = [\n [\n \"path\",\n {\n d: \"M2 22h20\",\n key: \"272qi7\"\n }\n ],\n [\n \"path\",\n {\n d: \"M6.36 17.4 4 17l-2-4 1.1-.55a2 2 0 0 1 1.8 0l.17.1a2 2 0 0 0 1.8 0L8 12 5 6l.9-.45a2 2 0 0 1 2.09.2l4.02 3a2 2 0 0 0 2.1.2l4.19-2.06a2.41 2.41 0 0 1 1.73-.17L21 7a1.4 1.4 0 0 1 .87 1.99l-.38.76c-.23.46-.6.84-1.07 1.08L7.58 17.2a2 2 0 0 1-1.22.18Z\",\n key: \"fkigj9\"\n }\n ]\n];\nconst PlaneTakeoff = createLucideIcon(\"plane-takeoff\", __iconNode$7L);\nconst __iconNode$7K = [\n [\n \"path\",\n {\n d: \"M17.8 19.2 16 11l3.5-3.5C21 6 21.5 4 21 3c-1-.5-3 0-4.5 1.5L13 8 4.8 6.2c-.5-.1-.9.1-1.1.5l-.3.5c-.2.5-.1 1 .3 1.3L9 12l-2 3H4l-1 1 3 2 2 3 1-1v-3l3-2 3.5 5.3c.3.4.8.5 1.3.3l.5-.2c.4-.3.6-.7.5-1.2z\",\n key: \"1v9wt8\"\n }\n ]\n];\nconst Plane = createLucideIcon(\"plane\", __iconNode$7K);\nconst __iconNode$7J = [\n [\n \"polygon\",\n {\n points: \"6 3 20 12 6 21 6 3\",\n key: \"1oa8hb\"\n }\n ]\n];\nconst Play = createLucideIcon(\"play\", __iconNode$7J);\nconst __iconNode$7I = [\n [\n \"path\",\n {\n d: \"M9 2v6\",\n key: \"17ngun\"\n }\n ],\n [\n \"path\",\n {\n d: \"M15 2v6\",\n key: \"s7yy2p\"\n }\n ],\n [\n \"path\",\n {\n d: \"M12 17v5\",\n key: \"bb1du9\"\n }\n ],\n [\n \"path\",\n {\n d: \"M5 8h14\",\n key: \"pcz4l3\"\n }\n ],\n [\n \"path\",\n {\n d: \"M6 11V8h12v3a6 6 0 1 1-12 0Z\",\n key: \"wtfw2c\"\n }\n ]\n];\nconst Plug2 = createLucideIcon(\"plug-2\", __iconNode$7I);\nconst __iconNode$7H = [\n [\n \"path\",\n {\n d: \"M6.3 20.3a2.4 2.4 0 0 0 3.4 0L12 18l-6-6-2.3 2.3a2.4 2.4 0 0 0 0 3.4Z\",\n key: \"goz73y\"\n }\n ],\n [\n \"path\",\n {\n d: \"m2 22 3-3\",\n key: \"19mgm9\"\n }\n ],\n [\n \"path\",\n {\n d: \"M7.5 13.5 10 11\",\n key: \"7xgeeb\"\n }\n ],\n [\n \"path\",\n {\n d: \"M10.5 16.5 13 14\",\n key: \"10btkg\"\n }\n ],\n [\n \"path\",\n {\n d: \"m18 3-4 4h6l-4 4\",\n key: \"16psg9\"\n }\n ]\n];\nconst PlugZap = createLucideIcon(\"plug-zap\", __iconNode$7H);\nconst __iconNode$7G = [\n [\n \"path\",\n {\n d: \"M12 22v-5\",\n key: \"1ega77\"\n }\n ],\n [\n \"path\",\n {\n d: \"M9 8V2\",\n key: \"14iosj\"\n }\n ],\n [\n \"path\",\n {\n d: \"M15 8V2\",\n key: \"18g5xt\"\n }\n ],\n [\n \"path\",\n {\n d: \"M18 8v5a4 4 0 0 1-4 4h-4a4 4 0 0 1-4-4V8Z\",\n key: \"osxo6l\"\n }\n ]\n];\nconst Plug = createLucideIcon(\"plug\", __iconNode$7G);\nconst __iconNode$7F = [\n [\n \"path\",\n {\n d: \"M5 12h14\",\n key: \"1ays0h\"\n }\n ],\n [\n \"path\",\n {\n d: \"M12 5v14\",\n key: \"s699le\"\n }\n ]\n];\nconst Plus = createLucideIcon(\"plus\", __iconNode$7F);\nconst __iconNode$7E = [\n [\n \"path\",\n {\n d: \"M20 3a2 2 0 0 1 2 2v6a1 1 0 0 1-20 0V5a2 2 0 0 1 2-2z\",\n key: \"1uodqw\"\n }\n ],\n [\n \"path\",\n {\n d: \"m8 10 4 4 4-4\",\n key: \"1mxd5q\"\n }\n ]\n];\nconst Pocket = createLucideIcon(\"pocket\", __iconNode$7E);\nconst __iconNode$7D = [\n [\n \"path\",\n {\n d: \"M3 2v1c0 1 2 1 2 2S3 6 3 7s2 1 2 2-2 1-2 2 2 1 2 2\",\n key: \"19w3oe\"\n }\n ],\n [\n \"path\",\n {\n d: \"M18 6h.01\",\n key: \"1v4wsw\"\n }\n ],\n [\n \"path\",\n {\n d: \"M6 18h.01\",\n key: \"uhywen\"\n }\n ],\n [\n \"path\",\n {\n d: \"M20.83 8.83a4 4 0 0 0-5.66-5.66l-12 12a4 4 0 1 0 5.66 5.66Z\",\n key: \"6fykxj\"\n }\n ],\n [\n \"path\",\n {\n d: \"M18 11.66V22a4 4 0 0 0 4-4V6\",\n key: \"1utzek\"\n }\n ]\n];\nconst PocketKnife = createLucideIcon(\"pocket-knife\", __iconNode$7D);\nconst __iconNode$7C = [\n [\n \"path\",\n {\n d: \"M16.85 18.58a9 9 0 1 0-9.7 0\",\n key: \"d71mpg\"\n }\n ],\n [\n \"path\",\n {\n d: \"M8 14a5 5 0 1 1 8 0\",\n key: \"fc81rn\"\n }\n ],\n [\n \"circle\",\n {\n cx: \"12\",\n cy: \"11\",\n r: \"1\",\n key: \"1gvufo\"\n }\n ],\n [\n \"path\",\n {\n d: \"M13 17a1 1 0 1 0-2 0l.5 4.5a.5.5 0 1 0 1 0Z\",\n key: \"za5kbj\"\n }\n ]\n];\nconst Podcast = createLucideIcon(\"podcast\", __iconNode$7C);\nconst __iconNode$7B = [\n [\n \"path\",\n {\n d: \"M10 4.5V4a2 2 0 0 0-2.41-1.957\",\n key: \"jsi14n\"\n }\n ],\n [\n \"path\",\n {\n d: \"M13.9 8.4a2 2 0 0 0-1.26-1.295\",\n key: \"hirc7f\"\n }\n ],\n [\n \"path\",\n {\n d: \"M21.7 16.2A8 8 0 0 0 22 14v-3a2 2 0 1 0-4 0v-1a2 2 0 0 0-3.63-1.158\",\n key: \"1jxb2e\"\n }\n ],\n [\n \"path\",\n {\n d: \"m7 15-1.8-1.8a2 2 0 0 0-2.79 2.86L6 19.7a7.74 7.74 0 0 0 6 2.3h2a8 8 0 0 0 5.657-2.343\",\n key: \"10r7hm\"\n }\n ],\n [\n \"path\",\n {\n d: \"M6 6v8\",\n key: \"tv5xkp\"\n }\n ],\n [\n \"path\",\n {\n d: \"m2 2 20 20\",\n key: \"1ooewy\"\n }\n ]\n];\nconst PointerOff = createLucideIcon(\"pointer-off\", __iconNode$7B);\nconst __iconNode$7A = [\n [\n \"path\",\n {\n d: \"M22 14a8 8 0 0 1-8 8\",\n key: \"56vcr3\"\n }\n ],\n [\n \"path\",\n {\n d: \"M18 11v-1a2 2 0 0 0-2-2a2 2 0 0 0-2 2\",\n key: \"1agjmk\"\n }\n ],\n [\n \"path\",\n {\n d: \"M14 10V9a2 2 0 0 0-2-2a2 2 0 0 0-2 2v1\",\n key: \"wdbh2u\"\n }\n ],\n [\n \"path\",\n {\n d: \"M10 9.5V4a2 2 0 0 0-2-2a2 2 0 0 0-2 2v10\",\n key: \"1ibuk9\"\n }\n ],\n [\n \"path\",\n {\n d: \"M18 11a2 2 0 1 1 4 0v3a8 8 0 0 1-8 8h-2c-2.8 0-4.5-.86-5.99-2.34l-3.6-3.6a2 2 0 0 1 2.83-2.82L7 15\",\n key: \"g6ys72\"\n }\n ]\n];\nconst Pointer = createLucideIcon(\"pointer\", __iconNode$7A);\nconst __iconNode$7z = [\n [\n \"path\",\n {\n d: \"M18 8a2 2 0 0 0 0-4 2 2 0 0 0-4 0 2 2 0 0 0-4 0 2 2 0 0 0-4 0 2 2 0 0 0 0 4\",\n key: \"10td1f\"\n }\n ],\n [\n \"path\",\n {\n d: \"M10 22 9 8\",\n key: \"yjptiv\"\n }\n ],\n [\n \"path\",\n {\n d: \"m14 22 1-14\",\n key: \"8jwc8b\"\n }\n ],\n [\n \"path\",\n {\n d: \"M20 8c.5 0 .9.4.8 1l-2.6 12c-.1.5-.7 1-1.2 1H7c-.6 0-1.1-.4-1.2-1L3.2 9c-.1-.6.3-1 .8-1Z\",\n key: \"1qo33t\"\n }\n ]\n];\nconst Popcorn = createLucideIcon(\"popcorn\", __iconNode$7z);\nconst __iconNode$7y = [\n [\n \"path\",\n {\n d: \"M18.6 14.4c.8-.8.8-2 0-2.8l-8.1-8.1a4.95 4.95 0 1 0-7.1 7.1l8.1 8.1c.9.7 2.1.7 2.9-.1Z\",\n key: \"1o68ps\"\n }\n ],\n [\n \"path\",\n {\n d: \"m22 22-5.5-5.5\",\n key: \"17o70y\"\n }\n ]\n];\nconst Popsicle = createLucideIcon(\"popsicle\", __iconNode$7y);\nconst __iconNode$7x = [\n [\n \"path\",\n {\n d: \"M18 7c0-5.333-8-5.333-8 0\",\n key: \"1prm2n\"\n }\n ],\n [\n \"path\",\n {\n d: \"M10 7v14\",\n key: \"18tmcs\"\n }\n ],\n [\n \"path\",\n {\n d: \"M6 21h12\",\n key: \"4dkmi1\"\n }\n ],\n [\n \"path\",\n {\n d: \"M6 13h10\",\n key: \"ybwr4a\"\n }\n ]\n];\nconst PoundSterling = createLucideIcon(\"pound-sterling\", __iconNode$7x);\nconst __iconNode$7w = [\n [\n \"path\",\n {\n d: \"M18.36 6.64A9 9 0 0 1 20.77 15\",\n key: \"dxknvb\"\n }\n ],\n [\n \"path\",\n {\n d: \"M6.16 6.16a9 9 0 1 0 12.68 12.68\",\n key: \"1x7qb5\"\n }\n ],\n [\n \"path\",\n {\n d: \"M12 2v4\",\n key: \"3427ic\"\n }\n ],\n [\n \"path\",\n {\n d: \"m2 2 20 20\",\n key: \"1ooewy\"\n }\n ]\n];\nconst PowerOff = createLucideIcon(\"power-off\", __iconNode$7w);\nconst __iconNode$7v = [\n [\n \"path\",\n {\n d: \"M12 2v10\",\n key: \"mnfbl\"\n }\n ],\n [\n \"path\",\n {\n d: \"M18.4 6.6a9 9 0 1 1-12.77.04\",\n key: \"obofu9\"\n }\n ]\n];\nconst Power = createLucideIcon(\"power\", __iconNode$7v);\nconst __iconNode$7u = [\n [\n \"path\",\n {\n d: \"M2 3h20\",\n key: \"91anmk\"\n }\n ],\n [\n \"path\",\n {\n d: \"M21 3v11a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V3\",\n key: \"2k9sn8\"\n }\n ],\n [\n \"path\",\n {\n d: \"m7 21 5-5 5 5\",\n key: \"bip4we\"\n }\n ]\n];\nconst Presentation = createLucideIcon(\"presentation\", __iconNode$7u);\nconst __iconNode$7t = [\n [\n \"path\",\n {\n d: \"M13.5 22H7a1 1 0 0 1-1-1v-6a1 1 0 0 1 1-1h10a1 1 0 0 1 1 1v.5\",\n key: \"qeb09x\"\n }\n ],\n [\n \"path\",\n {\n d: \"m16 19 2 2 4-4\",\n key: \"1b14m6\"\n }\n ],\n [\n \"path\",\n {\n d: \"M6 18H4a2 2 0 0 1-2-2v-5a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2v2\",\n key: \"1md90i\"\n }\n ],\n [\n \"path\",\n {\n d: \"M6 9V3a1 1 0 0 1 1-1h10a1 1 0 0 1 1 1v6\",\n key: \"1itne7\"\n }\n ]\n];\nconst PrinterCheck = createLucideIcon(\"printer-check\", __iconNode$7t);\nconst __iconNode$7s = [\n [\n \"path\",\n {\n d: \"M6 18H4a2 2 0 0 1-2-2v-5a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2v5a2 2 0 0 1-2 2h-2\",\n key: \"143wyd\"\n }\n ],\n [\n \"path\",\n {\n d: \"M6 9V3a1 1 0 0 1 1-1h10a1 1 0 0 1 1 1v6\",\n key: \"1itne7\"\n }\n ],\n [\n \"rect\",\n {\n x: \"6\",\n y: \"14\",\n width: \"12\",\n height: \"8\",\n rx: \"1\",\n key: \"1ue0tg\"\n }\n ]\n];\nconst Printer = createLucideIcon(\"printer\", __iconNode$7s);\nconst __iconNode$7r = [\n [\n \"path\",\n {\n d: \"M5 7 3 5\",\n key: \"1yys58\"\n }\n ],\n [\n \"path\",\n {\n d: \"M9 6V3\",\n key: \"1ptz9u\"\n }\n ],\n [\n \"path\",\n {\n d: \"m13 7 2-2\",\n key: \"1w3vmq\"\n }\n ],\n [\n \"circle\",\n {\n cx: \"9\",\n cy: \"13\",\n r: \"3\",\n key: \"1mma13\"\n }\n ],\n [\n \"path\",\n {\n d: \"M11.83 12H20a2 2 0 0 1 2 2v4a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2v-4a2 2 0 0 1 2-2h2.17\",\n key: \"2frwzc\"\n }\n ],\n [\n \"path\",\n {\n d: \"M16 16h2\",\n key: \"dnq2od\"\n }\n ]\n];\nconst Projector = createLucideIcon(\"projector\", __iconNode$7r);\nconst __iconNode$7q = [\n [\n \"rect\",\n {\n width: \"20\",\n height: \"16\",\n x: \"2\",\n y: \"4\",\n rx: \"2\",\n key: \"18n3k1\"\n }\n ],\n [\n \"path\",\n {\n d: \"M12 9v11\",\n key: \"1fnkrn\"\n }\n ],\n [\n \"path\",\n {\n d: \"M2 9h13a2 2 0 0 1 2 2v9\",\n key: \"11z3ex\"\n }\n ]\n];\nconst Proportions = createLucideIcon(\"proportions\", __iconNode$7q);\nconst __iconNode$7p = [\n [\n \"path\",\n {\n d: \"M15.39 4.39a1 1 0 0 0 1.68-.474 2.5 2.5 0 1 1 3.014 3.015 1 1 0 0 0-.474 1.68l1.683 1.682a2.414 2.414 0 0 1 0 3.414L19.61 15.39a1 1 0 0 1-1.68-.474 2.5 2.5 0 1 0-3.014 3.015 1 1 0 0 1 .474 1.68l-1.683 1.682a2.414 2.414 0 0 1-3.414 0L8.61 19.61a1 1 0 0 0-1.68.474 2.5 2.5 0 1 1-3.014-3.015 1 1 0 0 0 .474-1.68l-1.683-1.682a2.414 2.414 0 0 1 0-3.414L4.39 8.61a1 1 0 0 1 1.68.474 2.5 2.5 0 1 0 3.014-3.015 1 1 0 0 1-.474-1.68l1.683-1.682a2.414 2.414 0 0 1 3.414 0z\",\n key: \"w46dr5\"\n }\n ]\n];\nconst Puzzle = createLucideIcon(\"puzzle\", __iconNode$7p);\nconst __iconNode$7o = [\n [\n \"path\",\n {\n d: \"M2.5 16.88a1 1 0 0 1-.32-1.43l9-13.02a1 1 0 0 1 1.64 0l9 13.01a1 1 0 0 1-.32 1.44l-8.51 4.86a2 2 0 0 1-1.98 0Z\",\n key: \"aenxs0\"\n }\n ],\n [\n \"path\",\n {\n d: \"M12 2v20\",\n key: \"t6zp3m\"\n }\n ]\n];\nconst Pyramid = createLucideIcon(\"pyramid\", __iconNode$7o);\nconst __iconNode$7n = [\n [\n \"rect\",\n {\n width: \"5\",\n height: \"5\",\n x: \"3\",\n y: \"3\",\n rx: \"1\",\n key: \"1tu5fj\"\n }\n ],\n [\n \"rect\",\n {\n width: \"5\",\n height: \"5\",\n x: \"16\",\n y: \"3\",\n rx: \"1\",\n key: \"1v8r4q\"\n }\n ],\n [\n \"rect\",\n {\n width: \"5\",\n height: \"5\",\n x: \"3\",\n y: \"16\",\n rx: \"1\",\n key: \"1x03jg\"\n }\n ],\n [\n \"path\",\n {\n d: \"M21 16h-3a2 2 0 0 0-2 2v3\",\n key: \"177gqh\"\n }\n ],\n [\n \"path\",\n {\n d: \"M21 21v.01\",\n key: \"ents32\"\n }\n ],\n [\n \"path\",\n {\n d: \"M12 7v3a2 2 0 0 1-2 2H7\",\n key: \"8crl2c\"\n }\n ],\n [\n \"path\",\n {\n d: \"M3 12h.01\",\n key: \"nlz23k\"\n }\n ],\n [\n \"path\",\n {\n d: \"M12 3h.01\",\n key: \"n36tog\"\n }\n ],\n [\n \"path\",\n {\n d: \"M12 16v.01\",\n key: \"133mhm\"\n }\n ],\n [\n \"path\",\n {\n d: \"M16 12h1\",\n key: \"1slzba\"\n }\n ],\n [\n \"path\",\n {\n d: \"M21 12v.01\",\n key: \"1lwtk9\"\n }\n ],\n [\n \"path\",\n {\n d: \"M12 21v-1\",\n key: \"1880an\"\n }\n ]\n];\nconst QrCode = createLucideIcon(\"qr-code\", __iconNode$7n);\nconst __iconNode$7m = [\n [\n \"path\",\n {\n d: \"M16 3a2 2 0 0 0-2 2v6a2 2 0 0 0 2 2 1 1 0 0 1 1 1v1a2 2 0 0 1-2 2 1 1 0 0 0-1 1v2a1 1 0 0 0 1 1 6 6 0 0 0 6-6V5a2 2 0 0 0-2-2z\",\n key: \"rib7q0\"\n }\n ],\n [\n \"path\",\n {\n d: \"M5 3a2 2 0 0 0-2 2v6a2 2 0 0 0 2 2 1 1 0 0 1 1 1v1a2 2 0 0 1-2 2 1 1 0 0 0-1 1v2a1 1 0 0 0 1 1 6 6 0 0 0 6-6V5a2 2 0 0 0-2-2z\",\n key: \"1ymkrd\"\n }\n ]\n];\nconst Quote = createLucideIcon(\"quote\", __iconNode$7m);\nconst __iconNode$7l = [\n [\n \"path\",\n {\n d: \"M13 16a3 3 0 0 1 2.24 5\",\n key: \"1epib5\"\n }\n ],\n [\n \"path\",\n {\n d: \"M18 12h.01\",\n key: \"yjnet6\"\n }\n ],\n [\n \"path\",\n {\n d: \"M18 21h-8a4 4 0 0 1-4-4 7 7 0 0 1 7-7h.2L9.6 6.4a1 1 0 1 1 2.8-2.8L15.8 7h.2c3.3 0 6 2.7 6 6v1a2 2 0 0 1-2 2h-1a3 3 0 0 0-3 3\",\n key: \"ue9ozu\"\n }\n ],\n [\n \"path\",\n {\n d: \"M20 8.54V4a2 2 0 1 0-4 0v3\",\n key: \"49iql8\"\n }\n ],\n [\n \"path\",\n {\n d: \"M7.612 12.524a3 3 0 1 0-1.6 4.3\",\n key: \"1e33i0\"\n }\n ]\n];\nconst Rabbit = createLucideIcon(\"rabbit\", __iconNode$7l);\nconst __iconNode$7k = [\n [\n \"path\",\n {\n d: \"M19.07 4.93A10 10 0 0 0 6.99 3.34\",\n key: \"z3du51\"\n }\n ],\n [\n \"path\",\n {\n d: \"M4 6h.01\",\n key: \"oypzma\"\n }\n ],\n [\n \"path\",\n {\n d: \"M2.29 9.62A10 10 0 1 0 21.31 8.35\",\n key: \"qzzz0\"\n }\n ],\n [\n \"path\",\n {\n d: \"M16.24 7.76A6 6 0 1 0 8.23 16.67\",\n key: \"1yjesh\"\n }\n ],\n [\n \"path\",\n {\n d: \"M12 18h.01\",\n key: \"mhygvu\"\n }\n ],\n [\n \"path\",\n {\n d: \"M17.99 11.66A6 6 0 0 1 15.77 16.67\",\n key: \"1u2y91\"\n }\n ],\n [\n \"circle\",\n {\n cx: \"12\",\n cy: \"12\",\n r: \"2\",\n key: \"1c9p78\"\n }\n ],\n [\n \"path\",\n {\n d: \"m13.41 10.59 5.66-5.66\",\n key: \"mhq4k0\"\n }\n ]\n];\nconst Radar = createLucideIcon(\"radar\", __iconNode$7k);\nconst __iconNode$7j = [\n [\n \"path\",\n {\n d: \"M3 12h3.28a1 1 0 0 1 .948.684l2.298 7.934a.5.5 0 0 0 .96-.044L13.82 4.771A1 1 0 0 1 14.792 4H21\",\n key: \"1mqj8i\"\n }\n ]\n];\nconst Radical = createLucideIcon(\"radical\", __iconNode$7j);\nconst __iconNode$7i = [\n [\n \"path\",\n {\n d: \"M12 12h.01\",\n key: \"1mp3jc\"\n }\n ],\n [\n \"path\",\n {\n d: \"M14 15.4641a4 4 0 0 1-4 0L7.52786 19.74597 A 1 1 0 0 0 7.99303 21.16211 10 10 0 0 0 16.00697 21.16211 1 1 0 0 0 16.47214 19.74597z\",\n key: \"1y4lzb\"\n }\n ],\n [\n \"path\",\n {\n d: \"M16 12a4 4 0 0 0-2-3.464l2.472-4.282a1 1 0 0 1 1.46-.305 10 10 0 0 1 4.006 6.94A1 1 0 0 1 21 12z\",\n key: \"163ggk\"\n }\n ],\n [\n \"path\",\n {\n d: \"M8 12a4 4 0 0 1 2-3.464L7.528 4.254a1 1 0 0 0-1.46-.305 10 10 0 0 0-4.006 6.94A1 1 0 0 0 3 12z\",\n key: \"1l9i0b\"\n }\n ]\n];\nconst Radiation = createLucideIcon(\"radiation\", __iconNode$7i);\nconst __iconNode$7h = [\n [\n \"path\",\n {\n d: \"M5 16v2\",\n key: \"g5qcv5\"\n }\n ],\n [\n \"path\",\n {\n d: \"M19 16v2\",\n key: \"1gbaio\"\n }\n ],\n [\n \"rect\",\n {\n width: \"20\",\n height: \"8\",\n x: \"2\",\n y: \"8\",\n rx: \"2\",\n key: \"vjsjur\"\n }\n ],\n [\n \"path\",\n {\n d: \"M18 12h.01\",\n key: \"yjnet6\"\n }\n ]\n];\nconst RadioReceiver = createLucideIcon(\"radio-receiver\", __iconNode$7h);\nconst __iconNode$7g = [\n [\n \"path\",\n {\n d: \"M4.9 16.1C1 12.2 1 5.8 4.9 1.9\",\n key: \"s0qx1y\"\n }\n ],\n [\n \"path\",\n {\n d: \"M7.8 4.7a6.14 6.14 0 0 0-.8 7.5\",\n key: \"1idnkw\"\n }\n ],\n [\n \"circle\",\n {\n cx: \"12\",\n cy: \"9\",\n r: \"2\",\n key: \"1092wv\"\n }\n ],\n [\n \"path\",\n {\n d: \"M16.2 4.8c2 2 2.26 5.11.8 7.47\",\n key: \"ojru2q\"\n }\n ],\n [\n \"path\",\n {\n d: \"M19.1 1.9a9.96 9.96 0 0 1 0 14.1\",\n key: \"rhi7fg\"\n }\n ],\n [\n \"path\",\n {\n d: \"M9.5 18h5\",\n key: \"mfy3pd\"\n }\n ],\n [\n \"path\",\n {\n d: \"m8 22 4-11 4 11\",\n key: \"25yftu\"\n }\n ]\n];\nconst RadioTower = createLucideIcon(\"radio-tower\", __iconNode$7g);\nconst __iconNode$7f = [\n [\n \"path\",\n {\n d: \"M20.34 17.52a10 10 0 1 0-2.82 2.82\",\n key: \"fydyku\"\n }\n ],\n [\n \"circle\",\n {\n cx: \"19\",\n cy: \"19\",\n r: \"2\",\n key: \"17f5cg\"\n }\n ],\n [\n \"path\",\n {\n d: \"m13.41 13.41 4.18 4.18\",\n key: \"1gqbwc\"\n }\n ],\n [\n \"circle\",\n {\n cx: \"12\",\n cy: \"12\",\n r: \"2\",\n key: \"1c9p78\"\n }\n ]\n];\nconst Radius = createLucideIcon(\"radius\", __iconNode$7f);\nconst __iconNode$7e = [\n [\n \"path\",\n {\n d: \"M16.247 7.761a6 6 0 0 1 0 8.478\",\n key: \"1fwjs5\"\n }\n ],\n [\n \"path\",\n {\n d: \"M19.075 4.933a10 10 0 0 1 0 14.134\",\n key: \"ehdyv1\"\n }\n ],\n [\n \"path\",\n {\n d: \"M4.925 19.067a10 10 0 0 1 0-14.134\",\n key: \"1q22gi\"\n }\n ],\n [\n \"path\",\n {\n d: \"M7.753 16.239a6 6 0 0 1 0-8.478\",\n key: \"r2q7qm\"\n }\n ],\n [\n \"circle\",\n {\n cx: \"12\",\n cy: \"12\",\n r: \"2\",\n key: \"1c9p78\"\n }\n ]\n];\nconst Radio = createLucideIcon(\"radio\", __iconNode$7e);\nconst __iconNode$7d = [\n [\n \"path\",\n {\n d: \"M5 15h14\",\n key: \"m0yey3\"\n }\n ],\n [\n \"path\",\n {\n d: \"M5 9h14\",\n key: \"7tsvo6\"\n }\n ],\n [\n \"path\",\n {\n d: \"m14 20-5-5 6-6-5-5\",\n key: \"1jo42i\"\n }\n ]\n];\nconst RailSymbol = createLucideIcon(\"rail-symbol\", __iconNode$7d);\nconst __iconNode$7c = [\n [\n \"path\",\n {\n d: \"M22 17a10 10 0 0 0-20 0\",\n key: \"ozegv\"\n }\n ],\n [\n \"path\",\n {\n d: \"M6 17a6 6 0 0 1 12 0\",\n key: \"5giftw\"\n }\n ],\n [\n \"path\",\n {\n d: \"M10 17a2 2 0 0 1 4 0\",\n key: \"gnsikk\"\n }\n ]\n];\nconst Rainbow = createLucideIcon(\"rainbow\", __iconNode$7c);\nconst __iconNode$7b = [\n [\n \"path\",\n {\n d: \"M13 22H4a2 2 0 0 1 0-4h12\",\n key: \"bt3f23\"\n }\n ],\n [\n \"path\",\n {\n d: \"M13.236 18a3 3 0 0 0-2.2-5\",\n key: \"1tbvmo\"\n }\n ],\n [\n \"path\",\n {\n d: \"M16 9h.01\",\n key: \"1bdo4e\"\n }\n ],\n [\n \"path\",\n {\n d: \"M16.82 3.94a3 3 0 1 1 3.237 4.868l1.815 2.587a1.5 1.5 0 0 1-1.5 2.1l-2.872-.453a3 3 0 0 0-3.5 3\",\n key: \"9ch7kn\"\n }\n ],\n [\n \"path\",\n {\n d: \"M17 4.988a3 3 0 1 0-5.2 2.052A7 7 0 0 0 4 14.015 4 4 0 0 0 8 18\",\n key: \"3s7e9i\"\n }\n ]\n];\nconst Rat = createLucideIcon(\"rat\", __iconNode$7b);\nconst __iconNode$7a = [\n [\n \"rect\",\n {\n width: \"12\",\n height: \"20\",\n x: \"6\",\n y: \"2\",\n rx: \"2\",\n key: \"1oxtiu\"\n }\n ],\n [\n \"rect\",\n {\n width: \"20\",\n height: \"12\",\n x: \"2\",\n y: \"6\",\n rx: \"2\",\n key: \"9lu3g6\"\n }\n ]\n];\nconst Ratio = createLucideIcon(\"ratio\", __iconNode$7a);\nconst __iconNode$79 = [\n [\n \"path\",\n {\n d: \"M4 2v20l2-1 2 1 2-1 2 1 2-1 2 1 2-1 2 1V2l-2 1-2-1-2 1-2-1-2 1-2-1-2 1Z\",\n key: \"q3az6g\"\n }\n ],\n [\n \"path\",\n {\n d: \"M8 12h5\",\n key: \"1g6qi8\"\n }\n ],\n [\n \"path\",\n {\n d: \"M16 9.5a4 4 0 1 0 0 5.2\",\n key: \"b2px4r\"\n }\n ]\n];\nconst ReceiptEuro = createLucideIcon(\"receipt-euro\", __iconNode$79);\nconst __iconNode$78 = [\n [\n \"path\",\n {\n d: \"M4 2v20l2-1 2 1 2-1 2 1 2-1 2 1 2-1 2 1V2l-2 1-2-1-2 1-2-1-2 1-2-1-2 1Z\",\n key: \"q3az6g\"\n }\n ],\n [\n \"path\",\n {\n d: \"M12 6.5v11\",\n key: \"ecfhkf\"\n }\n ],\n [\n \"path\",\n {\n d: \"M15 9.4a4 4 0 1 0 0 5.2\",\n key: \"1makmb\"\n }\n ]\n];\nconst ReceiptCent = createLucideIcon(\"receipt-cent\", __iconNode$78);\nconst __iconNode$77 = [\n [\n \"path\",\n {\n d: \"M4 2v20l2-1 2 1 2-1 2 1 2-1 2 1 2-1 2 1V2l-2 1-2-1-2 1-2-1-2 1-2-1-2 1Z\",\n key: \"q3az6g\"\n }\n ],\n [\n \"path\",\n {\n d: \"M8 7h8\",\n key: \"i86dvs\"\n }\n ],\n [\n \"path\",\n {\n d: \"M12 17.5 8 15h1a4 4 0 0 0 0-8\",\n key: \"grpkl4\"\n }\n ],\n [\n \"path\",\n {\n d: \"M8 11h8\",\n key: \"vwpz6n\"\n }\n ]\n];\nconst ReceiptIndianRupee = createLucideIcon(\"receipt-indian-rupee\", __iconNode$77);\nconst __iconNode$76 = [\n [\n \"path\",\n {\n d: \"M4 2v20l2-1 2 1 2-1 2 1 2-1 2 1 2-1 2 1V2l-2 1-2-1-2 1-2-1-2 1-2-1-2 1Z\",\n key: \"q3az6g\"\n }\n ],\n [\n \"path\",\n {\n d: \"m12 10 3-3\",\n key: \"1mc12w\"\n }\n ],\n [\n \"path\",\n {\n d: \"m9 7 3 3v7.5\",\n key: \"39i0xv\"\n }\n ],\n [\n \"path\",\n {\n d: \"M9 11h6\",\n key: \"1fldmi\"\n }\n ],\n [\n \"path\",\n {\n d: \"M9 15h6\",\n key: \"cctwl0\"\n }\n ]\n];\nconst ReceiptJapaneseYen = createLucideIcon(\"receipt-japanese-yen\", __iconNode$76);\nconst __iconNode$75 = [\n [\n \"path\",\n {\n d: \"M4 2v20l2-1 2 1 2-1 2 1 2-1 2 1 2-1 2 1V2l-2 1-2-1-2 1-2-1-2 1-2-1-2 1Z\",\n key: \"q3az6g\"\n }\n ],\n [\n \"path\",\n {\n d: \"M8 13h5\",\n key: \"1k9z8w\"\n }\n ],\n [\n \"path\",\n {\n d: \"M10 17V9.5a2.5 2.5 0 0 1 5 0\",\n key: \"1dzgp0\"\n }\n ],\n [\n \"path\",\n {\n d: \"M8 17h7\",\n key: \"8mjdqu\"\n }\n ]\n];\nconst ReceiptPoundSterling = createLucideIcon(\"receipt-pound-sterling\", __iconNode$75);\nconst __iconNode$74 = [\n [\n \"path\",\n {\n d: \"M4 2v20l2-1 2 1 2-1 2 1 2-1 2 1 2-1 2 1V2l-2 1-2-1-2 1-2-1-2 1-2-1-2 1Z\",\n key: \"q3az6g\"\n }\n ],\n [\n \"path\",\n {\n d: \"M8 15h5\",\n key: \"vxg57a\"\n }\n ],\n [\n \"path\",\n {\n d: \"M8 11h5a2 2 0 1 0 0-4h-3v10\",\n key: \"1usi5u\"\n }\n ]\n];\nconst ReceiptRussianRuble = createLucideIcon(\"receipt-russian-ruble\", __iconNode$74);\nconst __iconNode$73 = [\n [\n \"path\",\n {\n d: \"M4 2v20l2-1 2 1 2-1 2 1 2-1 2 1 2-1 2 1V2l-2 1-2-1-2 1-2-1-2 1-2-1-2 1Z\",\n key: \"q3az6g\"\n }\n ],\n [\n \"path\",\n {\n d: \"M10 17V7h5\",\n key: \"k7jq18\"\n }\n ],\n [\n \"path\",\n {\n d: \"M10 11h4\",\n key: \"1i0mka\"\n }\n ],\n [\n \"path\",\n {\n d: \"M8 15h5\",\n key: \"vxg57a\"\n }\n ]\n];\nconst ReceiptSwissFranc = createLucideIcon(\"receipt-swiss-franc\", __iconNode$73);\nconst __iconNode$72 = [\n [\n \"path\",\n {\n d: \"M4 2v20l2-1 2 1 2-1 2 1 2-1 2 1 2-1 2 1V2l-2 1-2-1-2 1-2-1-2 1-2-1-2 1Z\",\n key: \"q3az6g\"\n }\n ],\n [\n \"path\",\n {\n d: \"M14 8H8\",\n key: \"1l3xfs\"\n }\n ],\n [\n \"path\",\n {\n d: \"M16 12H8\",\n key: \"1fr5h0\"\n }\n ],\n [\n \"path\",\n {\n d: \"M13 16H8\",\n key: \"wsln4y\"\n }\n ]\n];\nconst ReceiptText = createLucideIcon(\"receipt-text\", __iconNode$72);\nconst __iconNode$71 = [\n [\n \"path\",\n {\n d: \"M14 4v16H3a1 1 0 0 1-1-1V5a1 1 0 0 1 1-1z\",\n key: \"1m5n7q\"\n }\n ],\n [\n \"circle\",\n {\n cx: \"14\",\n cy: \"12\",\n r: \"8\",\n key: \"1pag6k\"\n }\n ]\n];\nconst RectangleCircle = createLucideIcon(\"rectangle-circle\", __iconNode$71);\nconst __iconNode$70 = [\n [\n \"path\",\n {\n d: \"M4 2v20l2-1 2 1 2-1 2 1 2-1 2 1 2-1 2 1V2l-2 1-2-1-2 1-2-1-2 1-2-1-2 1Z\",\n key: \"q3az6g\"\n }\n ],\n [\n \"path\",\n {\n d: \"M16 8h-6a2 2 0 1 0 0 4h4a2 2 0 1 1 0 4H8\",\n key: \"1h4pet\"\n }\n ],\n [\n \"path\",\n {\n d: \"M12 17.5v-11\",\n key: \"1jc1ny\"\n }\n ]\n];\nconst Receipt = createLucideIcon(\"receipt\", __iconNode$70);\nconst __iconNode$6$ = [\n [\n \"rect\",\n {\n width: \"20\",\n height: \"12\",\n x: \"2\",\n y: \"6\",\n rx: \"2\",\n key: \"9lu3g6\"\n }\n ],\n [\n \"path\",\n {\n d: \"M12 12h.01\",\n key: \"1mp3jc\"\n }\n ],\n [\n \"path\",\n {\n d: \"M17 12h.01\",\n key: \"1m0b6t\"\n }\n ],\n [\n \"path\",\n {\n d: \"M7 12h.01\",\n key: \"eqddd0\"\n }\n ]\n];\nconst RectangleEllipsis = createLucideIcon(\"rectangle-ellipsis\", __iconNode$6$);\nconst __iconNode$6_ = [\n [\n \"path\",\n {\n d: \"M20 6a2 2 0 0 1 2 2v8a2 2 0 0 1-2 2h-4a2 2 0 0 1-1.6-.8l-1.6-2.13a1 1 0 0 0-1.6 0L9.6 17.2A2 2 0 0 1 8 18H4a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2z\",\n key: \"d5y1f\"\n }\n ]\n];\nconst RectangleGoggles = createLucideIcon(\"rectangle-goggles\", __iconNode$6_);\nconst __iconNode$6Z = [\n [\n \"rect\",\n {\n width: \"20\",\n height: \"12\",\n x: \"2\",\n y: \"6\",\n rx: \"2\",\n key: \"9lu3g6\"\n }\n ]\n];\nconst RectangleHorizontal = createLucideIcon(\"rectangle-horizontal\", __iconNode$6Z);\nconst __iconNode$6Y = [\n [\n \"path\",\n {\n d: \"M7 19H4.815a1.83 1.83 0 0 1-1.57-.881 1.785 1.785 0 0 1-.004-1.784L7.196 9.5\",\n key: \"x6z5xu\"\n }\n ],\n [\n \"path\",\n {\n d: \"M11 19h8.203a1.83 1.83 0 0 0 1.556-.89 1.784 1.784 0 0 0 0-1.775l-1.226-2.12\",\n key: \"1x4zh5\"\n }\n ],\n [\n \"path\",\n {\n d: \"m14 16-3 3 3 3\",\n key: \"f6jyew\"\n }\n ],\n [\n \"path\",\n {\n d: \"M8.293 13.596 7.196 9.5 3.1 10.598\",\n key: \"wf1obh\"\n }\n ],\n [\n \"path\",\n {\n d: \"m9.344 5.811 1.093-1.892A1.83 1.83 0 0 1 11.985 3a1.784 1.784 0 0 1 1.546.888l3.943 6.843\",\n key: \"9tzpgr\"\n }\n ],\n [\n \"path\",\n {\n d: \"m13.378 9.633 4.096 1.098 1.097-4.096\",\n key: \"1oe83g\"\n }\n ]\n];\nconst Recycle = createLucideIcon(\"recycle\", __iconNode$6Y);\nconst __iconNode$6X = [\n [\n \"rect\",\n {\n width: \"12\",\n height: \"20\",\n x: \"6\",\n y: \"2\",\n rx: \"2\",\n key: \"1oxtiu\"\n }\n ]\n];\nconst RectangleVertical = createLucideIcon(\"rectangle-vertical\", __iconNode$6X);\nconst __iconNode$6W = [\n [\n \"circle\",\n {\n cx: \"12\",\n cy: \"17\",\n r: \"1\",\n key: \"1ixnty\"\n }\n ],\n [\n \"path\",\n {\n d: \"M21 7v6h-6\",\n key: \"3ptur4\"\n }\n ],\n [\n \"path\",\n {\n d: \"M3 17a9 9 0 0 1 9-9 9 9 0 0 1 6 2.3l3 2.7\",\n key: \"1kgawr\"\n }\n ]\n];\nconst RedoDot = createLucideIcon(\"redo-dot\", __iconNode$6W);\nconst __iconNode$6V = [\n [\n \"path\",\n {\n d: \"m15 14 5-5-5-5\",\n key: \"12vg1m\"\n }\n ],\n [\n \"path\",\n {\n d: \"M20 9H9.5A5.5 5.5 0 0 0 4 14.5A5.5 5.5 0 0 0 9.5 20H13\",\n key: \"6uklza\"\n }\n ]\n];\nconst Redo2 = createLucideIcon(\"redo-2\", __iconNode$6V);\nconst __iconNode$6U = [\n [\n \"path\",\n {\n d: \"M21 7v6h-6\",\n key: \"3ptur4\"\n }\n ],\n [\n \"path\",\n {\n d: \"M3 17a9 9 0 0 1 9-9 9 9 0 0 1 6 2.3l3 2.7\",\n key: \"1kgawr\"\n }\n ]\n];\nconst Redo = createLucideIcon(\"redo\", __iconNode$6U);\nconst __iconNode$6T = [\n [\n \"path\",\n {\n d: \"M3 2v6h6\",\n key: \"18ldww\"\n }\n ],\n [\n \"path\",\n {\n d: \"M21 12A9 9 0 0 0 6 5.3L3 8\",\n key: \"1pbrqz\"\n }\n ],\n [\n \"path\",\n {\n d: \"M21 22v-6h-6\",\n key: \"usdfbe\"\n }\n ],\n [\n \"path\",\n {\n d: \"M3 12a9 9 0 0 0 15 6.7l3-2.7\",\n key: \"1hosoe\"\n }\n ],\n [\n \"circle\",\n {\n cx: \"12\",\n cy: \"12\",\n r: \"1\",\n key: \"41hilf\"\n }\n ]\n];\nconst RefreshCcwDot = createLucideIcon(\"refresh-ccw-dot\", __iconNode$6T);\nconst __iconNode$6S = [\n [\n \"path\",\n {\n d: \"M21 12a9 9 0 0 0-9-9 9.75 9.75 0 0 0-6.74 2.74L3 8\",\n key: \"14sxne\"\n }\n ],\n [\n \"path\",\n {\n d: \"M3 3v5h5\",\n key: \"1xhq8a\"\n }\n ],\n [\n \"path\",\n {\n d: \"M3 12a9 9 0 0 0 9 9 9.75 9.75 0 0 0 6.74-2.74L21 16\",\n key: \"1hlbsb\"\n }\n ],\n [\n \"path\",\n {\n d: \"M16 16h5v5\",\n key: \"ccwih5\"\n }\n ]\n];\nconst RefreshCcw = createLucideIcon(\"refresh-ccw\", __iconNode$6S);\nconst __iconNode$6R = [\n [\n \"path\",\n {\n d: \"M21 8L18.74 5.74A9.75 9.75 0 0 0 12 3C11 3 10.03 3.16 9.13 3.47\",\n key: \"1krf6h\"\n }\n ],\n [\n \"path\",\n {\n d: \"M8 16H3v5\",\n key: \"1cv678\"\n }\n ],\n [\n \"path\",\n {\n d: \"M3 12C3 9.51 4 7.26 5.64 5.64\",\n key: \"ruvoct\"\n }\n ],\n [\n \"path\",\n {\n d: \"m3 16 2.26 2.26A9.75 9.75 0 0 0 12 21c2.49 0 4.74-1 6.36-2.64\",\n key: \"19q130\"\n }\n ],\n [\n \"path\",\n {\n d: \"M21 12c0 1-.16 1.97-.47 2.87\",\n key: \"4w8emr\"\n }\n ],\n [\n \"path\",\n {\n d: \"M21 3v5h-5\",\n key: \"1q7to0\"\n }\n ],\n [\n \"path\",\n {\n d: \"M22 22 2 2\",\n key: \"1r8tn9\"\n }\n ]\n];\nconst RefreshCwOff = createLucideIcon(\"refresh-cw-off\", __iconNode$6R);\nconst __iconNode$6Q = [\n [\n \"path\",\n {\n d: \"M3 12a9 9 0 0 1 9-9 9.75 9.75 0 0 1 6.74 2.74L21 8\",\n key: \"v9h5vc\"\n }\n ],\n [\n \"path\",\n {\n d: \"M21 3v5h-5\",\n key: \"1q7to0\"\n }\n ],\n [\n \"path\",\n {\n d: \"M21 12a9 9 0 0 1-9 9 9.75 9.75 0 0 1-6.74-2.74L3 16\",\n key: \"3uifl3\"\n }\n ],\n [\n \"path\",\n {\n d: \"M8 16H3v5\",\n key: \"1cv678\"\n }\n ]\n];\nconst RefreshCw = createLucideIcon(\"refresh-cw\", __iconNode$6Q);\nconst __iconNode$6P = [\n [\n \"path\",\n {\n d: \"M5 6a4 4 0 0 1 4-4h6a4 4 0 0 1 4 4v14a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2V6Z\",\n key: \"fpq118\"\n }\n ],\n [\n \"path\",\n {\n d: \"M5 10h14\",\n key: \"elsbfy\"\n }\n ],\n [\n \"path\",\n {\n d: \"M15 7v6\",\n key: \"1nx30x\"\n }\n ]\n];\nconst Refrigerator = createLucideIcon(\"refrigerator\", __iconNode$6P);\nconst __iconNode$6O = [\n [\n \"path\",\n {\n d: \"M17 3v10\",\n key: \"15fgeh\"\n }\n ],\n [\n \"path\",\n {\n d: \"m12.67 5.5 8.66 5\",\n key: \"1gpheq\"\n }\n ],\n [\n \"path\",\n {\n d: \"m12.67 10.5 8.66-5\",\n key: \"1dkfa6\"\n }\n ],\n [\n \"path\",\n {\n d: \"M9 17a2 2 0 0 0-2-2H5a2 2 0 0 0-2 2v2a2 2 0 0 0 2 2h2a2 2 0 0 0 2-2v-2z\",\n key: \"swwfx4\"\n }\n ]\n];\nconst Regex = createLucideIcon(\"regex\", __iconNode$6O);\nconst __iconNode$6N = [\n [\n \"path\",\n {\n d: \"M4 7V4h16v3\",\n key: \"9msm58\"\n }\n ],\n [\n \"path\",\n {\n d: \"M5 20h6\",\n key: \"1h6pxn\"\n }\n ],\n [\n \"path\",\n {\n d: \"M13 4 8 20\",\n key: \"kqq6aj\"\n }\n ],\n [\n \"path\",\n {\n d: \"m15 15 5 5\",\n key: \"me55sn\"\n }\n ],\n [\n \"path\",\n {\n d: \"m20 15-5 5\",\n key: \"11p7ol\"\n }\n ]\n];\nconst RemoveFormatting = createLucideIcon(\"remove-formatting\", __iconNode$6N);\nconst __iconNode$6M = [\n [\n \"path\",\n {\n d: \"m2 9 3-3 3 3\",\n key: \"1ltn5i\"\n }\n ],\n [\n \"path\",\n {\n d: \"M13 18H7a2 2 0 0 1-2-2V6\",\n key: \"1r6tfw\"\n }\n ],\n [\n \"path\",\n {\n d: \"m22 15-3 3-3-3\",\n key: \"4rnwn2\"\n }\n ],\n [\n \"path\",\n {\n d: \"M11 6h6a2 2 0 0 1 2 2v10\",\n key: \"2f72bc\"\n }\n ]\n];\nconst Repeat2 = createLucideIcon(\"repeat-2\", __iconNode$6M);\nconst __iconNode$6L = [\n [\n \"path\",\n {\n d: \"m17 2 4 4-4 4\",\n key: \"nntrym\"\n }\n ],\n [\n \"path\",\n {\n d: \"M3 11v-1a4 4 0 0 1 4-4h14\",\n key: \"84bu3i\"\n }\n ],\n [\n \"path\",\n {\n d: \"m7 22-4-4 4-4\",\n key: \"1wqhfi\"\n }\n ],\n [\n \"path\",\n {\n d: \"M21 13v1a4 4 0 0 1-4 4H3\",\n key: \"1rx37r\"\n }\n ]\n];\nconst Repeat = createLucideIcon(\"repeat\", __iconNode$6L);\nconst __iconNode$6K = [\n [\n \"path\",\n {\n d: \"m17 2 4 4-4 4\",\n key: \"nntrym\"\n }\n ],\n [\n \"path\",\n {\n d: \"M3 11v-1a4 4 0 0 1 4-4h14\",\n key: \"84bu3i\"\n }\n ],\n [\n \"path\",\n {\n d: \"m7 22-4-4 4-4\",\n key: \"1wqhfi\"\n }\n ],\n [\n \"path\",\n {\n d: \"M21 13v1a4 4 0 0 1-4 4H3\",\n key: \"1rx37r\"\n }\n ],\n [\n \"path\",\n {\n d: \"M11 10h1v4\",\n key: \"70cz1p\"\n }\n ]\n];\nconst Repeat1 = createLucideIcon(\"repeat-1\", __iconNode$6K);\nconst __iconNode$6J = [\n [\n \"path\",\n {\n d: \"M14 14a2 2 0 0 1 2 2v4a2 2 0 0 1-2 2\",\n key: \"1yyzbs\"\n }\n ],\n [\n \"path\",\n {\n d: \"M14 4a2 2 0 0 1 2-2\",\n key: \"1w2hp7\"\n }\n ],\n [\n \"path\",\n {\n d: \"M16 10a2 2 0 0 1-2-2\",\n key: \"shjach\"\n }\n ],\n [\n \"path\",\n {\n d: \"M20 14a2 2 0 0 1 2 2v4a2 2 0 0 1-2 2\",\n key: \"zfj4xr\"\n }\n ],\n [\n \"path\",\n {\n d: \"M20 2a2 2 0 0 1 2 2\",\n key: \"188mtx\"\n }\n ],\n [\n \"path\",\n {\n d: \"M22 8a2 2 0 0 1-2 2\",\n key: \"ddf4tu\"\n }\n ],\n [\n \"path\",\n {\n d: \"m3 7 3 3 3-3\",\n key: \"x25e72\"\n }\n ],\n [\n \"path\",\n {\n d: \"M6 10V5a 3 3 0 0 1 3-3h1\",\n key: \"1ageje\"\n }\n ],\n [\n \"rect\",\n {\n x: \"2\",\n y: \"14\",\n width: \"8\",\n height: \"8\",\n rx: \"2\",\n key: \"4rksxw\"\n }\n ]\n];\nconst ReplaceAll = createLucideIcon(\"replace-all\", __iconNode$6J);\nconst __iconNode$6I = [\n [\n \"path\",\n {\n d: \"M14 4a2 2 0 0 1 2-2\",\n key: \"1w2hp7\"\n }\n ],\n [\n \"path\",\n {\n d: \"M16 10a2 2 0 0 1-2-2\",\n key: \"shjach\"\n }\n ],\n [\n \"path\",\n {\n d: \"M20 2a2 2 0 0 1 2 2\",\n key: \"188mtx\"\n }\n ],\n [\n \"path\",\n {\n d: \"M22 8a2 2 0 0 1-2 2\",\n key: \"ddf4tu\"\n }\n ],\n [\n \"path\",\n {\n d: \"m3 7 3 3 3-3\",\n key: \"x25e72\"\n }\n ],\n [\n \"path\",\n {\n d: \"M6 10V5a3 3 0 0 1 3-3h1\",\n key: \"3y3t5z\"\n }\n ],\n [\n \"rect\",\n {\n x: \"2\",\n y: \"14\",\n width: \"8\",\n height: \"8\",\n rx: \"2\",\n key: \"4rksxw\"\n }\n ]\n];\nconst Replace = createLucideIcon(\"replace\", __iconNode$6I);\nconst __iconNode$6H = [\n [\n \"path\",\n {\n d: \"m12 17-5-5 5-5\",\n key: \"1s3y5u\"\n }\n ],\n [\n \"path\",\n {\n d: \"M22 18v-2a4 4 0 0 0-4-4H7\",\n key: \"1fcyog\"\n }\n ],\n [\n \"path\",\n {\n d: \"m7 17-5-5 5-5\",\n key: \"1ed8i2\"\n }\n ]\n];\nconst ReplyAll = createLucideIcon(\"reply-all\", __iconNode$6H);\nconst __iconNode$6G = [\n [\n \"path\",\n {\n d: \"M20 18v-2a4 4 0 0 0-4-4H4\",\n key: \"5vmcpk\"\n }\n ],\n [\n \"path\",\n {\n d: \"m9 17-5-5 5-5\",\n key: \"nvlc11\"\n }\n ]\n];\nconst Reply = createLucideIcon(\"reply\", __iconNode$6G);\nconst __iconNode$6F = [\n [\n \"polygon\",\n {\n points: \"11 19 2 12 11 5 11 19\",\n key: \"14yba5\"\n }\n ],\n [\n \"polygon\",\n {\n points: \"22 19 13 12 22 5 22 19\",\n key: \"1pi1cj\"\n }\n ]\n];\nconst Rewind = createLucideIcon(\"rewind\", __iconNode$6F);\nconst __iconNode$6E = [\n [\n \"path\",\n {\n d: \"M12 11.22C11 9.997 10 9 10 8a2 2 0 0 1 4 0c0 1-.998 2.002-2.01 3.22\",\n key: \"1rnhq3\"\n }\n ],\n [\n \"path\",\n {\n d: \"m12 18 2.57-3.5\",\n key: \"116vt7\"\n }\n ],\n [\n \"path\",\n {\n d: \"M6.243 9.016a7 7 0 0 1 11.507-.009\",\n key: \"10dq0b\"\n }\n ],\n [\n \"path\",\n {\n d: \"M9.35 14.53 12 11.22\",\n key: \"tdsyp2\"\n }\n ],\n [\n \"path\",\n {\n d: \"M9.35 14.53C7.728 12.246 6 10.221 6 7a6 5 0 0 1 12 0c-.005 3.22-1.778 5.235-3.43 7.5l3.557 4.527a1 1 0 0 1-.203 1.43l-1.894 1.36a1 1 0 0 1-1.384-.215L12 18l-2.679 3.593a1 1 0 0 1-1.39.213l-1.865-1.353a1 1 0 0 1-.203-1.422z\",\n key: \"nmifey\"\n }\n ]\n];\nconst Ribbon = createLucideIcon(\"ribbon\", __iconNode$6E);\nconst __iconNode$6D = [\n [\n \"path\",\n {\n d: \"M4.5 16.5c-1.5 1.26-2 5-2 5s3.74-.5 5-2c.71-.84.7-2.13-.09-2.91a2.18 2.18 0 0 0-2.91-.09z\",\n key: \"m3kijz\"\n }\n ],\n [\n \"path\",\n {\n d: \"m12 15-3-3a22 22 0 0 1 2-3.95A12.88 12.88 0 0 1 22 2c0 2.72-.78 7.5-6 11a22.35 22.35 0 0 1-4 2z\",\n key: \"1fmvmk\"\n }\n ],\n [\n \"path\",\n {\n d: \"M9 12H4s.55-3.03 2-4c1.62-1.08 5 0 5 0\",\n key: \"1f8sc4\"\n }\n ],\n [\n \"path\",\n {\n d: \"M12 15v5s3.03-.55 4-2c1.08-1.62 0-5 0-5\",\n key: \"qeys4\"\n }\n ]\n];\nconst Rocket = createLucideIcon(\"rocket\", __iconNode$6D);\nconst __iconNode$6C = [\n [\n \"polyline\",\n {\n points: \"3.5 2 6.5 12.5 18 12.5\",\n key: \"y3iy52\"\n }\n ],\n [\n \"line\",\n {\n x1: \"9.5\",\n x2: \"5.5\",\n y1: \"12.5\",\n y2: \"20\",\n key: \"19vg5i\"\n }\n ],\n [\n \"line\",\n {\n x1: \"15\",\n x2: \"18.5\",\n y1: \"12.5\",\n y2: \"20\",\n key: \"1inpmv\"\n }\n ],\n [\n \"path\",\n {\n d: \"M2.75 18a13 13 0 0 0 18.5 0\",\n key: \"1nquas\"\n }\n ]\n];\nconst RockingChair = createLucideIcon(\"rocking-chair\", __iconNode$6C);\nconst __iconNode$6B = [\n [\n \"path\",\n {\n d: \"M6 19V5\",\n key: \"1r845m\"\n }\n ],\n [\n \"path\",\n {\n d: \"M10 19V6.8\",\n key: \"9j2tfs\"\n }\n ],\n [\n \"path\",\n {\n d: \"M14 19v-7.8\",\n key: \"10s8qv\"\n }\n ],\n [\n \"path\",\n {\n d: \"M18 5v4\",\n key: \"1tajlv\"\n }\n ],\n [\n \"path\",\n {\n d: \"M18 19v-6\",\n key: \"ielfq3\"\n }\n ],\n [\n \"path\",\n {\n d: \"M22 19V9\",\n key: \"158nzp\"\n }\n ],\n [\n \"path\",\n {\n d: \"M2 19V9a4 4 0 0 1 4-4c2 0 4 1.33 6 4s4 4 6 4a4 4 0 1 0-3-6.65\",\n key: \"1930oh\"\n }\n ]\n];\nconst RollerCoaster = createLucideIcon(\"roller-coaster\", __iconNode$6B);\nconst __iconNode$6A = [\n [\n \"path\",\n {\n d: \"M16.466 7.5C15.643 4.237 13.952 2 12 2 9.239 2 7 6.477 7 12s2.239 10 5 10c.342 0 .677-.069 1-.2\",\n key: \"10n0gc\"\n }\n ],\n [\n \"path\",\n {\n d: \"m15.194 13.707 3.814 1.86-1.86 3.814\",\n key: \"16shm9\"\n }\n ],\n [\n \"path\",\n {\n d: \"M19 15.57c-1.804.885-4.274 1.43-7 1.43-5.523 0-10-2.239-10-5s4.477-5 10-5c4.838 0 8.873 1.718 9.8 4\",\n key: \"1lxi77\"\n }\n ]\n];\nconst Rotate3d = createLucideIcon(\"rotate-3d\", __iconNode$6A);\nconst __iconNode$6z = [\n [\n \"path\",\n {\n d: \"m14.5 9.5 1 1\",\n key: \"159eiq\"\n }\n ],\n [\n \"path\",\n {\n d: \"m15.5 8.5-4 4\",\n key: \"iirg3q\"\n }\n ],\n [\n \"path\",\n {\n d: \"M3 12a9 9 0 1 0 9-9 9.74 9.74 0 0 0-6.74 2.74L3 8\",\n key: \"g2jlw\"\n }\n ],\n [\n \"path\",\n {\n d: \"M3 3v5h5\",\n key: \"1xhq8a\"\n }\n ],\n [\n \"circle\",\n {\n cx: \"10\",\n cy: \"14\",\n r: \"2\",\n key: \"1239so\"\n }\n ]\n];\nconst RotateCcwKey = createLucideIcon(\"rotate-ccw-key\", __iconNode$6z);\nconst __iconNode$6y = [\n [\n \"path\",\n {\n d: \"M20 9V7a2 2 0 0 0-2-2h-6\",\n key: \"19z8uc\"\n }\n ],\n [\n \"path\",\n {\n d: \"m15 2-3 3 3 3\",\n key: \"177bxs\"\n }\n ],\n [\n \"path\",\n {\n d: \"M20 13v5a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V7a2 2 0 0 1 2-2h2\",\n key: \"d36hnl\"\n }\n ]\n];\nconst RotateCcwSquare = createLucideIcon(\"rotate-ccw-square\", __iconNode$6y);\nconst __iconNode$6x = [\n [\n \"path\",\n {\n d: \"M3 12a9 9 0 1 0 9-9 9.75 9.75 0 0 0-6.74 2.74L3 8\",\n key: \"1357e3\"\n }\n ],\n [\n \"path\",\n {\n d: \"M3 3v5h5\",\n key: \"1xhq8a\"\n }\n ]\n];\nconst RotateCcw = createLucideIcon(\"rotate-ccw\", __iconNode$6x);\nconst __iconNode$6w = [\n [\n \"path\",\n {\n d: \"M12 5H6a2 2 0 0 0-2 2v3\",\n key: \"l96uqu\"\n }\n ],\n [\n \"path\",\n {\n d: \"m9 8 3-3-3-3\",\n key: \"1gzgc3\"\n }\n ],\n [\n \"path\",\n {\n d: \"M4 14v4a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7a2 2 0 0 0-2-2h-2\",\n key: \"1w2k5h\"\n }\n ]\n];\nconst RotateCwSquare = createLucideIcon(\"rotate-cw-square\", __iconNode$6w);\nconst __iconNode$6v = [\n [\n \"path\",\n {\n d: \"M21 12a9 9 0 1 1-9-9c2.52 0 4.93 1 6.74 2.74L21 8\",\n key: \"1p45f6\"\n }\n ],\n [\n \"path\",\n {\n d: \"M21 3v5h-5\",\n key: \"1q7to0\"\n }\n ]\n];\nconst RotateCw = createLucideIcon(\"rotate-cw\", __iconNode$6v);\nconst __iconNode$6u = [\n [\n \"circle\",\n {\n cx: \"6\",\n cy: \"19\",\n r: \"3\",\n key: \"1kj8tv\"\n }\n ],\n [\n \"path\",\n {\n d: \"M9 19h8.5c.4 0 .9-.1 1.3-.2\",\n key: \"1effex\"\n }\n ],\n [\n \"path\",\n {\n d: \"M5.2 5.2A3.5 3.53 0 0 0 6.5 12H12\",\n key: \"k9y2ds\"\n }\n ],\n [\n \"path\",\n {\n d: \"m2 2 20 20\",\n key: \"1ooewy\"\n }\n ],\n [\n \"path\",\n {\n d: \"M21 15.3a3.5 3.5 0 0 0-3.3-3.3\",\n key: \"11nlu2\"\n }\n ],\n [\n \"path\",\n {\n d: \"M15 5h-4.3\",\n key: \"6537je\"\n }\n ],\n [\n \"circle\",\n {\n cx: \"18\",\n cy: \"5\",\n r: \"3\",\n key: \"gq8acd\"\n }\n ]\n];\nconst RouteOff = createLucideIcon(\"route-off\", __iconNode$6u);\nconst __iconNode$6t = [\n [\n \"circle\",\n {\n cx: \"6\",\n cy: \"19\",\n r: \"3\",\n key: \"1kj8tv\"\n }\n ],\n [\n \"path\",\n {\n d: \"M9 19h8.5a3.5 3.5 0 0 0 0-7h-11a3.5 3.5 0 0 1 0-7H15\",\n key: \"1d8sl\"\n }\n ],\n [\n \"circle\",\n {\n cx: \"18\",\n cy: \"5\",\n r: \"3\",\n key: \"gq8acd\"\n }\n ]\n];\nconst Route = createLucideIcon(\"route\", __iconNode$6t);\nconst __iconNode$6s = [\n [\n \"rect\",\n {\n width: \"20\",\n height: \"8\",\n x: \"2\",\n y: \"14\",\n rx: \"2\",\n key: \"w68u3i\"\n }\n ],\n [\n \"path\",\n {\n d: \"M6.01 18H6\",\n key: \"19vcac\"\n }\n ],\n [\n \"path\",\n {\n d: \"M10.01 18H10\",\n key: \"uamcmx\"\n }\n ],\n [\n \"path\",\n {\n d: \"M15 10v4\",\n key: \"qjz1xs\"\n }\n ],\n [\n \"path\",\n {\n d: \"M17.84 7.17a4 4 0 0 0-5.66 0\",\n key: \"1rif40\"\n }\n ],\n [\n \"path\",\n {\n d: \"M20.66 4.34a8 8 0 0 0-11.31 0\",\n key: \"6a5xfq\"\n }\n ]\n];\nconst Router = createLucideIcon(\"router\", __iconNode$6s);\nconst __iconNode$6r = [\n [\n \"rect\",\n {\n width: \"18\",\n height: \"18\",\n x: \"3\",\n y: \"3\",\n rx: \"2\",\n key: \"afitv7\"\n }\n ],\n [\n \"path\",\n {\n d: \"M3 12h18\",\n key: \"1i2n21\"\n }\n ]\n];\nconst Rows2 = createLucideIcon(\"rows-2\", __iconNode$6r);\nconst __iconNode$6q = [\n [\n \"rect\",\n {\n width: \"18\",\n height: \"18\",\n x: \"3\",\n y: \"3\",\n rx: \"2\",\n key: \"afitv7\"\n }\n ],\n [\n \"path\",\n {\n d: \"M21 9H3\",\n key: \"1338ky\"\n }\n ],\n [\n \"path\",\n {\n d: \"M21 15H3\",\n key: \"9uk58r\"\n }\n ]\n];\nconst Rows3 = createLucideIcon(\"rows-3\", __iconNode$6q);\nconst __iconNode$6p = [\n [\n \"rect\",\n {\n width: \"18\",\n height: \"18\",\n x: \"3\",\n y: \"3\",\n rx: \"2\",\n key: \"afitv7\"\n }\n ],\n [\n \"path\",\n {\n d: \"M21 7.5H3\",\n key: \"1hm9pq\"\n }\n ],\n [\n \"path\",\n {\n d: \"M21 12H3\",\n key: \"2avoz0\"\n }\n ],\n [\n \"path\",\n {\n d: \"M21 16.5H3\",\n key: \"n7jzkj\"\n }\n ]\n];\nconst Rows4 = createLucideIcon(\"rows-4\", __iconNode$6p);\nconst __iconNode$6o = [\n [\n \"path\",\n {\n d: \"M4 11a9 9 0 0 1 9 9\",\n key: \"pv89mb\"\n }\n ],\n [\n \"path\",\n {\n d: \"M4 4a16 16 0 0 1 16 16\",\n key: \"k0647b\"\n }\n ],\n [\n \"circle\",\n {\n cx: \"5\",\n cy: \"19\",\n r: \"1\",\n key: \"bfqh0e\"\n }\n ]\n];\nconst Rss = createLucideIcon(\"rss\", __iconNode$6o);\nconst __iconNode$6n = [\n [\n \"path\",\n {\n d: \"M12 15v-3.014\",\n key: \"aw6ppf\"\n }\n ],\n [\n \"path\",\n {\n d: \"M16 15v-3.014\",\n key: \"9e0vc7\"\n }\n ],\n [\n \"path\",\n {\n d: \"M20 6H4\",\n key: \"1lfz86\"\n }\n ],\n [\n \"path\",\n {\n d: \"M20 8V4\",\n key: \"1l2g47\"\n }\n ],\n [\n \"path\",\n {\n d: \"M4 8V4\",\n key: \"sppxzt\"\n }\n ],\n [\n \"path\",\n {\n d: \"M8 15v-3.014\",\n key: \"when08\"\n }\n ],\n [\n \"rect\",\n {\n x: \"3\",\n y: \"12\",\n width: \"18\",\n height: \"7\",\n rx: \"1\",\n key: \"1ucwdz\"\n }\n ]\n];\nconst RulerDimensionLine = createLucideIcon(\"ruler-dimension-line\", __iconNode$6n);\nconst __iconNode$6m = [\n [\n \"path\",\n {\n d: \"M21.3 15.3a2.4 2.4 0 0 1 0 3.4l-2.6 2.6a2.4 2.4 0 0 1-3.4 0L2.7 8.7a2.41 2.41 0 0 1 0-3.4l2.6-2.6a2.41 2.41 0 0 1 3.4 0Z\",\n key: \"icamh8\"\n }\n ],\n [\n \"path\",\n {\n d: \"m14.5 12.5 2-2\",\n key: \"inckbg\"\n }\n ],\n [\n \"path\",\n {\n d: \"m11.5 9.5 2-2\",\n key: \"fmmyf7\"\n }\n ],\n [\n \"path\",\n {\n d: \"m8.5 6.5 2-2\",\n key: \"vc6u1g\"\n }\n ],\n [\n \"path\",\n {\n d: \"m17.5 15.5 2-2\",\n key: \"wo5hmg\"\n }\n ]\n];\nconst Ruler = createLucideIcon(\"ruler\", __iconNode$6m);\nconst __iconNode$6l = [\n [\n \"path\",\n {\n d: \"M6 11h8a4 4 0 0 0 0-8H9v18\",\n key: \"18ai8t\"\n }\n ],\n [\n \"path\",\n {\n d: \"M6 15h8\",\n key: \"1y8f6l\"\n }\n ]\n];\nconst RussianRuble = createLucideIcon(\"russian-ruble\", __iconNode$6l);\nconst __iconNode$6k = [\n [\n \"path\",\n {\n d: \"M22 18H2a4 4 0 0 0 4 4h12a4 4 0 0 0 4-4Z\",\n key: \"1404fh\"\n }\n ],\n [\n \"path\",\n {\n d: \"M21 14 10 2 3 14h18Z\",\n key: \"1nzg7v\"\n }\n ],\n [\n \"path\",\n {\n d: \"M10 2v16\",\n key: \"1labyt\"\n }\n ]\n];\nconst Sailboat = createLucideIcon(\"sailboat\", __iconNode$6k);\nconst __iconNode$6j = [\n [\n \"path\",\n {\n d: \"M7 21h10\",\n key: \"1b0cd5\"\n }\n ],\n [\n \"path\",\n {\n d: \"M12 21a9 9 0 0 0 9-9H3a9 9 0 0 0 9 9Z\",\n key: \"4rw317\"\n }\n ],\n [\n \"path\",\n {\n d: \"M11.38 12a2.4 2.4 0 0 1-.4-4.77 2.4 2.4 0 0 1 3.2-2.77 2.4 2.4 0 0 1 3.47-.63 2.4 2.4 0 0 1 3.37 3.37 2.4 2.4 0 0 1-1.1 3.7 2.51 2.51 0 0 1 .03 1.1\",\n key: \"10xrj0\"\n }\n ],\n [\n \"path\",\n {\n d: \"m13 12 4-4\",\n key: \"1hckqy\"\n }\n ],\n [\n \"path\",\n {\n d: \"M10.9 7.25A3.99 3.99 0 0 0 4 10c0 .73.2 1.41.54 2\",\n key: \"1p4srx\"\n }\n ]\n];\nconst Salad = createLucideIcon(\"salad\", __iconNode$6j);\nconst __iconNode$6i = [\n [\n \"path\",\n {\n d: \"m2.37 11.223 8.372-6.777a2 2 0 0 1 2.516 0l8.371 6.777\",\n key: \"f1wd0e\"\n }\n ],\n [\n \"path\",\n {\n d: \"M21 15a1 1 0 0 1 1 1v2a1 1 0 0 1-1 1h-5.25\",\n key: \"1pfu07\"\n }\n ],\n [\n \"path\",\n {\n d: \"M3 15a1 1 0 0 0-1 1v2a1 1 0 0 0 1 1h9\",\n key: \"1oq9qw\"\n }\n ],\n [\n \"path\",\n {\n d: \"m6.67 15 6.13 4.6a2 2 0 0 0 2.8-.4l3.15-4.2\",\n key: \"1fnwu5\"\n }\n ],\n [\n \"rect\",\n {\n width: \"20\",\n height: \"4\",\n x: \"2\",\n y: \"11\",\n rx: \"1\",\n key: \"itshg\"\n }\n ]\n];\nconst Sandwich = createLucideIcon(\"sandwich\", __iconNode$6i);\nconst __iconNode$6h = [\n [\n \"path\",\n {\n d: \"M4 10a7.31 7.31 0 0 0 10 10Z\",\n key: \"1fzpp3\"\n }\n ],\n [\n \"path\",\n {\n d: \"m9 15 3-3\",\n key: \"88sc13\"\n }\n ],\n [\n \"path\",\n {\n d: \"M17 13a6 6 0 0 0-6-6\",\n key: \"15cc6u\"\n }\n ],\n [\n \"path\",\n {\n d: \"M21 13A10 10 0 0 0 11 3\",\n key: \"11nf8s\"\n }\n ]\n];\nconst SatelliteDish = createLucideIcon(\"satellite-dish\", __iconNode$6h);\nconst __iconNode$6g = [\n [\n \"path\",\n {\n d: \"m13.5 6.5-3.148-3.148a1.205 1.205 0 0 0-1.704 0L6.352 5.648a1.205 1.205 0 0 0 0 1.704L9.5 10.5\",\n key: \"dzhfyz\"\n }\n ],\n [\n \"path\",\n {\n d: \"M16.5 7.5 19 5\",\n key: \"1ltcjm\"\n }\n ],\n [\n \"path\",\n {\n d: \"m17.5 10.5 3.148 3.148a1.205 1.205 0 0 1 0 1.704l-2.296 2.296a1.205 1.205 0 0 1-1.704 0L13.5 14.5\",\n key: \"nfoymv\"\n }\n ],\n [\n \"path\",\n {\n d: \"M9 21a6 6 0 0 0-6-6\",\n key: \"1iajcf\"\n }\n ],\n [\n \"path\",\n {\n d: \"M9.352 10.648a1.205 1.205 0 0 0 0 1.704l2.296 2.296a1.205 1.205 0 0 0 1.704 0l4.296-4.296a1.205 1.205 0 0 0 0-1.704l-2.296-2.296a1.205 1.205 0 0 0-1.704 0z\",\n key: \"nv9zqy\"\n }\n ]\n];\nconst Satellite = createLucideIcon(\"satellite\", __iconNode$6g);\nconst __iconNode$6f = [\n [\n \"path\",\n {\n d: \"m20 19.5-5.5 1.2\",\n key: \"1aenhr\"\n }\n ],\n [\n \"path\",\n {\n d: \"M14.5 4v11.22a1 1 0 0 0 1.242.97L20 15.2\",\n key: \"2rtezt\"\n }\n ],\n [\n \"path\",\n {\n d: \"m2.978 19.351 5.549-1.363A2 2 0 0 0 10 16V2\",\n key: \"1kbm92\"\n }\n ],\n [\n \"path\",\n {\n d: \"M20 10 4 13.5\",\n key: \"8nums9\"\n }\n ]\n];\nconst SaudiRiyal = createLucideIcon(\"saudi-riyal\", __iconNode$6f);\nconst __iconNode$6e = [\n [\n \"path\",\n {\n d: \"M10 2v3a1 1 0 0 0 1 1h5\",\n key: \"1xspal\"\n }\n ],\n [\n \"path\",\n {\n d: \"M18 18v-6a1 1 0 0 0-1-1h-6a1 1 0 0 0-1 1v6\",\n key: \"1ra60u\"\n }\n ],\n [\n \"path\",\n {\n d: \"M18 22H4a2 2 0 0 1-2-2V6\",\n key: \"pblm9e\"\n }\n ],\n [\n \"path\",\n {\n d: \"M8 18a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9.172a2 2 0 0 1 1.414.586l2.828 2.828A2 2 0 0 1 22 6.828V16a2 2 0 0 1-2.01 2z\",\n key: \"1yve0x\"\n }\n ]\n];\nconst SaveAll = createLucideIcon(\"save-all\", __iconNode$6e);\nconst __iconNode$6d = [\n [\n \"path\",\n {\n d: \"M13 13H8a1 1 0 0 0-1 1v7\",\n key: \"h8g396\"\n }\n ],\n [\n \"path\",\n {\n d: \"M14 8h1\",\n key: \"1lfen6\"\n }\n ],\n [\n \"path\",\n {\n d: \"M17 21v-4\",\n key: \"1yknxs\"\n }\n ],\n [\n \"path\",\n {\n d: \"m2 2 20 20\",\n key: \"1ooewy\"\n }\n ],\n [\n \"path\",\n {\n d: \"M20.41 20.41A2 2 0 0 1 19 21H5a2 2 0 0 1-2-2V5a2 2 0 0 1 .59-1.41\",\n key: \"1t4vdl\"\n }\n ],\n [\n \"path\",\n {\n d: \"M29.5 11.5s5 5 4 5\",\n key: \"zzn4i6\"\n }\n ],\n [\n \"path\",\n {\n d: \"M9 3h6.2a2 2 0 0 1 1.4.6l3.8 3.8a2 2 0 0 1 .6 1.4V15\",\n key: \"24cby9\"\n }\n ]\n];\nconst SaveOff = createLucideIcon(\"save-off\", __iconNode$6d);\nconst __iconNode$6c = [\n [\n \"path\",\n {\n d: \"M15.2 3a2 2 0 0 1 1.4.6l3.8 3.8a2 2 0 0 1 .6 1.4V19a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2z\",\n key: \"1c8476\"\n }\n ],\n [\n \"path\",\n {\n d: \"M17 21v-7a1 1 0 0 0-1-1H8a1 1 0 0 0-1 1v7\",\n key: \"1ydtos\"\n }\n ],\n [\n \"path\",\n {\n d: \"M7 3v4a1 1 0 0 0 1 1h7\",\n key: \"t51u73\"\n }\n ]\n];\nconst Save = createLucideIcon(\"save\", __iconNode$6c);\nconst __iconNode$6b = [\n [\n \"path\",\n {\n d: \"M5 7v11a1 1 0 0 0 1 1h11\",\n key: \"13dt1j\"\n }\n ],\n [\n \"path\",\n {\n d: \"M5.293 18.707 11 13\",\n key: \"ezgbsx\"\n }\n ],\n [\n \"circle\",\n {\n cx: \"19\",\n cy: \"19\",\n r: \"2\",\n key: \"17f5cg\"\n }\n ],\n [\n \"circle\",\n {\n cx: \"5\",\n cy: \"5\",\n r: \"2\",\n key: \"1gwv83\"\n }\n ]\n];\nconst Scale3d = createLucideIcon(\"scale-3d\", __iconNode$6b);\nconst __iconNode$6a = [\n [\n \"path\",\n {\n d: \"m16 16 3-8 3 8c-.87.65-1.92 1-3 1s-2.13-.35-3-1Z\",\n key: \"7g6ntu\"\n }\n ],\n [\n \"path\",\n {\n d: \"m2 16 3-8 3 8c-.87.65-1.92 1-3 1s-2.13-.35-3-1Z\",\n key: \"ijws7r\"\n }\n ],\n [\n \"path\",\n {\n d: \"M7 21h10\",\n key: \"1b0cd5\"\n }\n ],\n [\n \"path\",\n {\n d: \"M12 3v18\",\n key: \"108xh3\"\n }\n ],\n [\n \"path\",\n {\n d: \"M3 7h2c2 0 5-1 7-2 2 1 5 2 7 2h2\",\n key: \"3gwbw2\"\n }\n ]\n];\nconst Scale = createLucideIcon(\"scale\", __iconNode$6a);\nconst __iconNode$69 = [\n [\n \"path\",\n {\n d: \"M12 3H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7\",\n key: \"1m0v6g\"\n }\n ],\n [\n \"path\",\n {\n d: \"M14 15H9v-5\",\n key: \"pi4jk9\"\n }\n ],\n [\n \"path\",\n {\n d: \"M16 3h5v5\",\n key: \"1806ms\"\n }\n ],\n [\n \"path\",\n {\n d: \"M21 3 9 15\",\n key: \"15kdhq\"\n }\n ]\n];\nconst Scaling = createLucideIcon(\"scaling\", __iconNode$69);\nconst __iconNode$68 = [\n [\n \"path\",\n {\n d: \"M3 7V5a2 2 0 0 1 2-2h2\",\n key: \"aa7l1z\"\n }\n ],\n [\n \"path\",\n {\n d: \"M17 3h2a2 2 0 0 1 2 2v2\",\n key: \"4qcy5o\"\n }\n ],\n [\n \"path\",\n {\n d: \"M21 17v2a2 2 0 0 1-2 2h-2\",\n key: \"6vwrx8\"\n }\n ],\n [\n \"path\",\n {\n d: \"M7 21H5a2 2 0 0 1-2-2v-2\",\n key: \"ioqczr\"\n }\n ],\n [\n \"path\",\n {\n d: \"M8 7v10\",\n key: \"23sfjj\"\n }\n ],\n [\n \"path\",\n {\n d: \"M12 7v10\",\n key: \"jspqdw\"\n }\n ],\n [\n \"path\",\n {\n d: \"M17 7v10\",\n key: \"578dap\"\n }\n ]\n];\nconst ScanBarcode = createLucideIcon(\"scan-barcode\", __iconNode$68);\nconst __iconNode$67 = [\n [\n \"path\",\n {\n d: \"M3 7V5a2 2 0 0 1 2-2h2\",\n key: \"aa7l1z\"\n }\n ],\n [\n \"path\",\n {\n d: \"M17 3h2a2 2 0 0 1 2 2v2\",\n key: \"4qcy5o\"\n }\n ],\n [\n \"path\",\n {\n d: \"M21 17v2a2 2 0 0 1-2 2h-2\",\n key: \"6vwrx8\"\n }\n ],\n [\n \"path\",\n {\n d: \"M7 21H5a2 2 0 0 1-2-2v-2\",\n key: \"ioqczr\"\n }\n ],\n [\n \"circle\",\n {\n cx: \"12\",\n cy: \"12\",\n r: \"1\",\n key: \"41hilf\"\n }\n ],\n [\n \"path\",\n {\n d: \"M18.944 12.33a1 1 0 0 0 0-.66 7.5 7.5 0 0 0-13.888 0 1 1 0 0 0 0 .66 7.5 7.5 0 0 0 13.888 0\",\n key: \"11ak4c\"\n }\n ]\n];\nconst ScanEye = createLucideIcon(\"scan-eye\", __iconNode$67);\nconst __iconNode$66 = [\n [\n \"path\",\n {\n d: \"M3 7V5a2 2 0 0 1 2-2h2\",\n key: \"aa7l1z\"\n }\n ],\n [\n \"path\",\n {\n d: \"M17 3h2a2 2 0 0 1 2 2v2\",\n key: \"4qcy5o\"\n }\n ],\n [\n \"path\",\n {\n d: \"M21 17v2a2 2 0 0 1-2 2h-2\",\n key: \"6vwrx8\"\n }\n ],\n [\n \"path\",\n {\n d: \"M7 21H5a2 2 0 0 1-2-2v-2\",\n key: \"ioqczr\"\n }\n ],\n [\n \"path\",\n {\n d: \"M8 14s1.5 2 4 2 4-2 4-2\",\n key: \"1y1vjs\"\n }\n ],\n [\n \"path\",\n {\n d: \"M9 9h.01\",\n key: \"1q5me6\"\n }\n ],\n [\n \"path\",\n {\n d: \"M15 9h.01\",\n key: \"x1ddxp\"\n }\n ]\n];\nconst ScanFace = createLucideIcon(\"scan-face\", __iconNode$66);\nconst __iconNode$65 = [\n [\n \"path\",\n {\n d: \"M11.246 16.657a1 1 0 0 0 1.508 0l3.57-4.101A2.75 2.75 0 1 0 12 9.168a2.75 2.75 0 1 0-4.324 3.388z\",\n key: \"1algrk\"\n }\n ],\n [\n \"path\",\n {\n d: \"M17 3h2a2 2 0 0 1 2 2v2\",\n key: \"4qcy5o\"\n }\n ],\n [\n \"path\",\n {\n d: \"M21 17v2a2 2 0 0 1-2 2h-2\",\n key: \"6vwrx8\"\n }\n ],\n [\n \"path\",\n {\n d: \"M3 7V5a2 2 0 0 1 2-2h2\",\n key: \"aa7l1z\"\n }\n ],\n [\n \"path\",\n {\n d: \"M7 21H5a2 2 0 0 1-2-2v-2\",\n key: \"ioqczr\"\n }\n ]\n];\nconst ScanHeart = createLucideIcon(\"scan-heart\", __iconNode$65);\nconst __iconNode$64 = [\n [\n \"path\",\n {\n d: \"M3 7V5a2 2 0 0 1 2-2h2\",\n key: \"aa7l1z\"\n }\n ],\n [\n \"path\",\n {\n d: \"M17 3h2a2 2 0 0 1 2 2v2\",\n key: \"4qcy5o\"\n }\n ],\n [\n \"path\",\n {\n d: \"M21 17v2a2 2 0 0 1-2 2h-2\",\n key: \"6vwrx8\"\n }\n ],\n [\n \"path\",\n {\n d: \"M7 21H5a2 2 0 0 1-2-2v-2\",\n key: \"ioqczr\"\n }\n ],\n [\n \"path\",\n {\n d: \"M7 12h10\",\n key: \"b7w52i\"\n }\n ]\n];\nconst ScanLine = createLucideIcon(\"scan-line\", __iconNode$64);\nconst __iconNode$63 = [\n [\n \"path\",\n {\n d: \"M17 12v4a1 1 0 0 1-1 1h-4\",\n key: \"uk4fdo\"\n }\n ],\n [\n \"path\",\n {\n d: \"M17 3h2a2 2 0 0 1 2 2v2\",\n key: \"4qcy5o\"\n }\n ],\n [\n \"path\",\n {\n d: \"M17 8V7\",\n key: \"q2g9wo\"\n }\n ],\n [\n \"path\",\n {\n d: \"M21 17v2a2 2 0 0 1-2 2h-2\",\n key: \"6vwrx8\"\n }\n ],\n [\n \"path\",\n {\n d: \"M3 7V5a2 2 0 0 1 2-2h2\",\n key: \"aa7l1z\"\n }\n ],\n [\n \"path\",\n {\n d: \"M7 17h.01\",\n key: \"19xn7k\"\n }\n ],\n [\n \"path\",\n {\n d: \"M7 21H5a2 2 0 0 1-2-2v-2\",\n key: \"ioqczr\"\n }\n ],\n [\n \"rect\",\n {\n x: \"7\",\n y: \"7\",\n width: \"5\",\n height: \"5\",\n rx: \"1\",\n key: \"m9kyts\"\n }\n ]\n];\nconst ScanQrCode = createLucideIcon(\"scan-qr-code\", __iconNode$63);\nconst __iconNode$62 = [\n [\n \"path\",\n {\n d: \"M3 7V5a2 2 0 0 1 2-2h2\",\n key: \"aa7l1z\"\n }\n ],\n [\n \"path\",\n {\n d: \"M17 3h2a2 2 0 0 1 2 2v2\",\n key: \"4qcy5o\"\n }\n ],\n [\n \"path\",\n {\n d: \"M21 17v2a2 2 0 0 1-2 2h-2\",\n key: \"6vwrx8\"\n }\n ],\n [\n \"path\",\n {\n d: \"M7 21H5a2 2 0 0 1-2-2v-2\",\n key: \"ioqczr\"\n }\n ],\n [\n \"circle\",\n {\n cx: \"12\",\n cy: \"12\",\n r: \"3\",\n key: \"1v7zrd\"\n }\n ],\n [\n \"path\",\n {\n d: \"m16 16-1.9-1.9\",\n key: \"1dq9hf\"\n }\n ]\n];\nconst ScanSearch = createLucideIcon(\"scan-search\", __iconNode$62);\nconst __iconNode$61 = [\n [\n \"path\",\n {\n d: \"M3 7V5a2 2 0 0 1 2-2h2\",\n key: \"aa7l1z\"\n }\n ],\n [\n \"path\",\n {\n d: \"M17 3h2a2 2 0 0 1 2 2v2\",\n key: \"4qcy5o\"\n }\n ],\n [\n \"path\",\n {\n d: \"M21 17v2a2 2 0 0 1-2 2h-2\",\n key: \"6vwrx8\"\n }\n ],\n [\n \"path\",\n {\n d: \"M7 21H5a2 2 0 0 1-2-2v-2\",\n key: \"ioqczr\"\n }\n ],\n [\n \"path\",\n {\n d: \"M7 8h8\",\n key: \"1jbsf9\"\n }\n ],\n [\n \"path\",\n {\n d: \"M7 12h10\",\n key: \"b7w52i\"\n }\n ],\n [\n \"path\",\n {\n d: \"M7 16h6\",\n key: \"1vyc9m\"\n }\n ]\n];\nconst ScanText = createLucideIcon(\"scan-text\", __iconNode$61);\nconst __iconNode$60 = [\n [\n \"path\",\n {\n d: \"M3 7V5a2 2 0 0 1 2-2h2\",\n key: \"aa7l1z\"\n }\n ],\n [\n \"path\",\n {\n d: \"M17 3h2a2 2 0 0 1 2 2v2\",\n key: \"4qcy5o\"\n }\n ],\n [\n \"path\",\n {\n d: \"M21 17v2a2 2 0 0 1-2 2h-2\",\n key: \"6vwrx8\"\n }\n ],\n [\n \"path\",\n {\n d: \"M7 21H5a2 2 0 0 1-2-2v-2\",\n key: \"ioqczr\"\n }\n ]\n];\nconst Scan = createLucideIcon(\"scan\", __iconNode$60);\nconst __iconNode$5$ = [\n [\n \"path\",\n {\n d: \"M14 22v-4a2 2 0 1 0-4 0v4\",\n key: \"hhkicm\"\n }\n ],\n [\n \"path\",\n {\n d: \"m18 10 3.447 1.724a1 1 0 0 1 .553.894V20a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2v-7.382a1 1 0 0 1 .553-.894L6 10\",\n key: \"1xqip1\"\n }\n ],\n [\n \"path\",\n {\n d: \"M18 5v17\",\n key: \"1sw6gf\"\n }\n ],\n [\n \"path\",\n {\n d: \"m4 6 7.106-3.553a2 2 0 0 1 1.788 0L20 6\",\n key: \"9d2mlk\"\n }\n ],\n [\n \"path\",\n {\n d: \"M6 5v17\",\n key: \"1xfsm0\"\n }\n ],\n [\n \"circle\",\n {\n cx: \"12\",\n cy: \"9\",\n r: \"2\",\n key: \"1092wv\"\n }\n ]\n];\nconst School = createLucideIcon(\"school\", __iconNode$5$);\nconst __iconNode$5_ = [\n [\n \"path\",\n {\n d: \"M5.42 9.42 8 12\",\n key: \"12pkuq\"\n }\n ],\n [\n \"circle\",\n {\n cx: \"4\",\n cy: \"8\",\n r: \"2\",\n key: \"107mxr\"\n }\n ],\n [\n \"path\",\n {\n d: \"m14 6-8.58 8.58\",\n key: \"gvzu5l\"\n }\n ],\n [\n \"circle\",\n {\n cx: \"4\",\n cy: \"16\",\n r: \"2\",\n key: \"1ehqvc\"\n }\n ],\n [\n \"path\",\n {\n d: \"M10.8 14.8 14 18\",\n key: \"ax7m9r\"\n }\n ],\n [\n \"path\",\n {\n d: \"M16 12h-2\",\n key: \"10asgb\"\n }\n ],\n [\n \"path\",\n {\n d: \"M22 12h-2\",\n key: \"14jgyd\"\n }\n ]\n];\nconst ScissorsLineDashed = createLucideIcon(\"scissors-line-dashed\", __iconNode$5_);\nconst __iconNode$5Z = [\n [\n \"circle\",\n {\n cx: \"6\",\n cy: \"6\",\n r: \"3\",\n key: \"1lh9wr\"\n }\n ],\n [\n \"path\",\n {\n d: \"M8.12 8.12 12 12\",\n key: \"1alkpv\"\n }\n ],\n [\n \"path\",\n {\n d: \"M20 4 8.12 15.88\",\n key: \"xgtan2\"\n }\n ],\n [\n \"circle\",\n {\n cx: \"6\",\n cy: \"18\",\n r: \"3\",\n key: \"fqmcym\"\n }\n ],\n [\n \"path\",\n {\n d: \"M14.8 14.8 20 20\",\n key: \"ptml3r\"\n }\n ]\n];\nconst Scissors = createLucideIcon(\"scissors\", __iconNode$5Z);\nconst __iconNode$5Y = [\n [\n \"path\",\n {\n d: \"M13 3H4a2 2 0 0 0-2 2v10a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2v-3\",\n key: \"i8wdob\"\n }\n ],\n [\n \"path\",\n {\n d: \"M8 21h8\",\n key: \"1ev6f3\"\n }\n ],\n [\n \"path\",\n {\n d: \"M12 17v4\",\n key: \"1riwvh\"\n }\n ],\n [\n \"path\",\n {\n d: \"m22 3-5 5\",\n key: \"12jva0\"\n }\n ],\n [\n \"path\",\n {\n d: \"m17 3 5 5\",\n key: \"k36vhe\"\n }\n ]\n];\nconst ScreenShareOff = createLucideIcon(\"screen-share-off\", __iconNode$5Y);\nconst __iconNode$5X = [\n [\n \"path\",\n {\n d: \"M13 3H4a2 2 0 0 0-2 2v10a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2v-3\",\n key: \"i8wdob\"\n }\n ],\n [\n \"path\",\n {\n d: \"M8 21h8\",\n key: \"1ev6f3\"\n }\n ],\n [\n \"path\",\n {\n d: \"M12 17v4\",\n key: \"1riwvh\"\n }\n ],\n [\n \"path\",\n {\n d: \"m17 8 5-5\",\n key: \"fqif7o\"\n }\n ],\n [\n \"path\",\n {\n d: \"M17 3h5v5\",\n key: \"1o3tu8\"\n }\n ]\n];\nconst ScreenShare = createLucideIcon(\"screen-share\", __iconNode$5X);\nconst __iconNode$5W = [\n [\n \"path\",\n {\n d: \"M15 12h-5\",\n key: \"r7krc0\"\n }\n ],\n [\n \"path\",\n {\n d: \"M15 8h-5\",\n key: \"1khuty\"\n }\n ],\n [\n \"path\",\n {\n d: \"M19 17V5a2 2 0 0 0-2-2H4\",\n key: \"zz82l3\"\n }\n ],\n [\n \"path\",\n {\n d: \"M8 21h12a2 2 0 0 0 2-2v-1a1 1 0 0 0-1-1H11a1 1 0 0 0-1 1v1a2 2 0 1 1-4 0V5a2 2 0 1 0-4 0v2a1 1 0 0 0 1 1h3\",\n key: \"1ph1d7\"\n }\n ]\n];\nconst ScrollText = createLucideIcon(\"scroll-text\", __iconNode$5W);\nconst __iconNode$5V = [\n [\n \"path\",\n {\n d: \"M19 17V5a2 2 0 0 0-2-2H4\",\n key: \"zz82l3\"\n }\n ],\n [\n \"path\",\n {\n d: \"M8 21h12a2 2 0 0 0 2-2v-1a1 1 0 0 0-1-1H11a1 1 0 0 0-1 1v1a2 2 0 1 1-4 0V5a2 2 0 1 0-4 0v2a1 1 0 0 0 1 1h3\",\n key: \"1ph1d7\"\n }\n ]\n];\nconst Scroll = createLucideIcon(\"scroll\", __iconNode$5V);\nconst __iconNode$5U = [\n [\n \"path\",\n {\n d: \"m8 11 2 2 4-4\",\n key: \"1sed1v\"\n }\n ],\n [\n \"circle\",\n {\n cx: \"11\",\n cy: \"11\",\n r: \"8\",\n key: \"4ej97u\"\n }\n ],\n [\n \"path\",\n {\n d: \"m21 21-4.3-4.3\",\n key: \"1qie3q\"\n }\n ]\n];\nconst SearchCheck = createLucideIcon(\"search-check\", __iconNode$5U);\nconst __iconNode$5T = [\n [\n \"path\",\n {\n d: \"m13 13.5 2-2.5-2-2.5\",\n key: \"1rvxrh\"\n }\n ],\n [\n \"path\",\n {\n d: \"m21 21-4.3-4.3\",\n key: \"1qie3q\"\n }\n ],\n [\n \"path\",\n {\n d: \"M9 8.5 7 11l2 2.5\",\n key: \"6ffwbx\"\n }\n ],\n [\n \"circle\",\n {\n cx: \"11\",\n cy: \"11\",\n r: \"8\",\n key: \"4ej97u\"\n }\n ]\n];\nconst SearchCode = createLucideIcon(\"search-code\", __iconNode$5T);\nconst __iconNode$5S = [\n [\n \"path\",\n {\n d: \"m13.5 8.5-5 5\",\n key: \"1cs55j\"\n }\n ],\n [\n \"circle\",\n {\n cx: \"11\",\n cy: \"11\",\n r: \"8\",\n key: \"4ej97u\"\n }\n ],\n [\n \"path\",\n {\n d: \"m21 21-4.3-4.3\",\n key: \"1qie3q\"\n }\n ]\n];\nconst SearchSlash = createLucideIcon(\"search-slash\", __iconNode$5S);\nconst __iconNode$5R = [\n [\n \"path\",\n {\n d: \"m13.5 8.5-5 5\",\n key: \"1cs55j\"\n }\n ],\n [\n \"path\",\n {\n d: \"m8.5 8.5 5 5\",\n key: \"a8mexj\"\n }\n ],\n [\n \"circle\",\n {\n cx: \"11\",\n cy: \"11\",\n r: \"8\",\n key: \"4ej97u\"\n }\n ],\n [\n \"path\",\n {\n d: \"m21 21-4.3-4.3\",\n key: \"1qie3q\"\n }\n ]\n];\nconst SearchX = createLucideIcon(\"search-x\", __iconNode$5R);\nconst __iconNode$5Q = [\n [\n \"path\",\n {\n d: \"m21 21-4.34-4.34\",\n key: \"14j7rj\"\n }\n ],\n [\n \"circle\",\n {\n cx: \"11\",\n cy: \"11\",\n r: \"8\",\n key: \"4ej97u\"\n }\n ]\n];\nconst Search = createLucideIcon(\"search\", __iconNode$5Q);\nconst __iconNode$5P = [\n [\n \"path\",\n {\n d: \"M16 5a4 3 0 0 0-8 0c0 4 8 3 8 7a4 3 0 0 1-8 0\",\n key: \"vqan6v\"\n }\n ],\n [\n \"path\",\n {\n d: \"M8 19a4 3 0 0 0 8 0c0-4-8-3-8-7a4 3 0 0 1 8 0\",\n key: \"wdjd8o\"\n }\n ]\n];\nconst Section = createLucideIcon(\"section\", __iconNode$5P);\nconst __iconNode$5O = [\n [\n \"path\",\n {\n d: \"M3.714 3.048a.498.498 0 0 0-.683.627l2.843 7.627a2 2 0 0 1 0 1.396l-2.842 7.627a.498.498 0 0 0 .682.627l18-8.5a.5.5 0 0 0 0-.904z\",\n key: \"117uat\"\n }\n ],\n [\n \"path\",\n {\n d: \"M6 12h16\",\n key: \"s4cdu5\"\n }\n ]\n];\nconst SendHorizontal = createLucideIcon(\"send-horizontal\", __iconNode$5O);\nconst __iconNode$5N = [\n [\n \"rect\",\n {\n x: \"14\",\n y: \"14\",\n width: \"8\",\n height: \"8\",\n rx: \"2\",\n key: \"1b0bso\"\n }\n ],\n [\n \"rect\",\n {\n x: \"2\",\n y: \"2\",\n width: \"8\",\n height: \"8\",\n rx: \"2\",\n key: \"1x09vl\"\n }\n ],\n [\n \"path\",\n {\n d: \"M7 14v1a2 2 0 0 0 2 2h1\",\n key: \"pao6x6\"\n }\n ],\n [\n \"path\",\n {\n d: \"M14 7h1a2 2 0 0 1 2 2v1\",\n key: \"19tdru\"\n }\n ]\n];\nconst SendToBack = createLucideIcon(\"send-to-back\", __iconNode$5N);\nconst __iconNode$5M = [\n [\n \"path\",\n {\n d: \"M14.536 21.686a.5.5 0 0 0 .937-.024l6.5-19a.496.496 0 0 0-.635-.635l-19 6.5a.5.5 0 0 0-.024.937l7.93 3.18a2 2 0 0 1 1.112 1.11z\",\n key: \"1ffxy3\"\n }\n ],\n [\n \"path\",\n {\n d: \"m21.854 2.147-10.94 10.939\",\n key: \"12cjpa\"\n }\n ]\n];\nconst Send = createLucideIcon(\"send\", __iconNode$5M);\nconst __iconNode$5L = [\n [\n \"path\",\n {\n d: \"m16 16-4 4-4-4\",\n key: \"3dv8je\"\n }\n ],\n [\n \"path\",\n {\n d: \"M3 12h18\",\n key: \"1i2n21\"\n }\n ],\n [\n \"path\",\n {\n d: \"m8 8 4-4 4 4\",\n key: \"2bscm2\"\n }\n ]\n];\nconst SeparatorHorizontal = createLucideIcon(\"separator-horizontal\", __iconNode$5L);\nconst __iconNode$5K = [\n [\n \"path\",\n {\n d: \"M12 3v18\",\n key: \"108xh3\"\n }\n ],\n [\n \"path\",\n {\n d: \"m16 16 4-4-4-4\",\n key: \"1js579\"\n }\n ],\n [\n \"path\",\n {\n d: \"m8 8-4 4 4 4\",\n key: \"1whems\"\n }\n ]\n];\nconst SeparatorVertical = createLucideIcon(\"separator-vertical\", __iconNode$5K);\nconst __iconNode$5J = [\n [\n \"path\",\n {\n d: \"m10.852 14.772-.383.923\",\n key: \"11vil6\"\n }\n ],\n [\n \"path\",\n {\n d: \"M13.148 14.772a3 3 0 1 0-2.296-5.544l-.383-.923\",\n key: \"1v3clb\"\n }\n ],\n [\n \"path\",\n {\n d: \"m13.148 9.228.383-.923\",\n key: \"t2zzyc\"\n }\n ],\n [\n \"path\",\n {\n d: \"m13.53 15.696-.382-.924a3 3 0 1 1-2.296-5.544\",\n key: \"1bxfiv\"\n }\n ],\n [\n \"path\",\n {\n d: \"m14.772 10.852.923-.383\",\n key: \"k9m8cz\"\n }\n ],\n [\n \"path\",\n {\n d: \"m14.772 13.148.923.383\",\n key: \"1xvhww\"\n }\n ],\n [\n \"path\",\n {\n d: \"M4.5 10H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2v4a2 2 0 0 1-2 2h-.5\",\n key: \"tn8das\"\n }\n ],\n [\n \"path\",\n {\n d: \"M4.5 14H4a2 2 0 0 0-2 2v4a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2v-4a2 2 0 0 0-2-2h-.5\",\n key: \"1g2pve\"\n }\n ],\n [\n \"path\",\n {\n d: \"M6 18h.01\",\n key: \"uhywen\"\n }\n ],\n [\n \"path\",\n {\n d: \"M6 6h.01\",\n key: \"1utrut\"\n }\n ],\n [\n \"path\",\n {\n d: \"m9.228 10.852-.923-.383\",\n key: \"1wtb30\"\n }\n ],\n [\n \"path\",\n {\n d: \"m9.228 13.148-.923.383\",\n key: \"1a830x\"\n }\n ]\n];\nconst ServerCog = createLucideIcon(\"server-cog\", __iconNode$5J);\nconst __iconNode$5I = [\n [\n \"path\",\n {\n d: \"M6 10H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2v4a2 2 0 0 1-2 2h-2\",\n key: \"4b9dqc\"\n }\n ],\n [\n \"path\",\n {\n d: \"M6 14H4a2 2 0 0 0-2 2v4a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2v-4a2 2 0 0 0-2-2h-2\",\n key: \"22nnkd\"\n }\n ],\n [\n \"path\",\n {\n d: \"M6 6h.01\",\n key: \"1utrut\"\n }\n ],\n [\n \"path\",\n {\n d: \"M6 18h.01\",\n key: \"uhywen\"\n }\n ],\n [\n \"path\",\n {\n d: \"m13 6-4 6h6l-4 6\",\n key: \"14hqih\"\n }\n ]\n];\nconst ServerCrash = createLucideIcon(\"server-crash\", __iconNode$5I);\nconst __iconNode$5H = [\n [\n \"path\",\n {\n d: \"M7 2h13a2 2 0 0 1 2 2v4a2 2 0 0 1-2 2h-5\",\n key: \"bt2siv\"\n }\n ],\n [\n \"path\",\n {\n d: \"M10 10 2.5 2.5C2 2 2 2.5 2 5v3a2 2 0 0 0 2 2h6z\",\n key: \"1hjrv1\"\n }\n ],\n [\n \"path\",\n {\n d: \"M22 17v-1a2 2 0 0 0-2-2h-1\",\n key: \"1iynyr\"\n }\n ],\n [\n \"path\",\n {\n d: \"M4 14a2 2 0 0 0-2 2v4a2 2 0 0 0 2 2h16.5l1-.5.5.5-8-8H4z\",\n key: \"161ggg\"\n }\n ],\n [\n \"path\",\n {\n d: \"M6 18h.01\",\n key: \"uhywen\"\n }\n ],\n [\n \"path\",\n {\n d: \"m2 2 20 20\",\n key: \"1ooewy\"\n }\n ]\n];\nconst ServerOff = createLucideIcon(\"server-off\", __iconNode$5H);\nconst __iconNode$5G = [\n [\n \"rect\",\n {\n width: \"20\",\n height: \"8\",\n x: \"2\",\n y: \"2\",\n rx: \"2\",\n ry: \"2\",\n key: \"ngkwjq\"\n }\n ],\n [\n \"rect\",\n {\n width: \"20\",\n height: \"8\",\n x: \"2\",\n y: \"14\",\n rx: \"2\",\n ry: \"2\",\n key: \"iecqi9\"\n }\n ],\n [\n \"line\",\n {\n x1: \"6\",\n x2: \"6.01\",\n y1: \"6\",\n y2: \"6\",\n key: \"16zg32\"\n }\n ],\n [\n \"line\",\n {\n x1: \"6\",\n x2: \"6.01\",\n y1: \"18\",\n y2: \"18\",\n key: \"nzw8ys\"\n }\n ]\n];\nconst Server = createLucideIcon(\"server\", __iconNode$5G);\nconst __iconNode$5F = [\n [\n \"path\",\n {\n d: \"M14 17H5\",\n key: \"gfn3mx\"\n }\n ],\n [\n \"path\",\n {\n d: \"M19 7h-9\",\n key: \"6i9tg\"\n }\n ],\n [\n \"circle\",\n {\n cx: \"17\",\n cy: \"17\",\n r: \"3\",\n key: \"18b49y\"\n }\n ],\n [\n \"circle\",\n {\n cx: \"7\",\n cy: \"7\",\n r: \"3\",\n key: \"dfmy0x\"\n }\n ]\n];\nconst Settings2 = createLucideIcon(\"settings-2\", __iconNode$5F);\nconst __iconNode$5E = [\n [\n \"path\",\n {\n d: \"M12.22 2h-.44a2 2 0 0 0-2 2v.18a2 2 0 0 1-1 1.73l-.43.25a2 2 0 0 1-2 0l-.15-.08a2 2 0 0 0-2.73.73l-.22.38a2 2 0 0 0 .73 2.73l.15.1a2 2 0 0 1 1 1.72v.51a2 2 0 0 1-1 1.74l-.15.09a2 2 0 0 0-.73 2.73l.22.38a2 2 0 0 0 2.73.73l.15-.08a2 2 0 0 1 2 0l.43.25a2 2 0 0 1 1 1.73V20a2 2 0 0 0 2 2h.44a2 2 0 0 0 2-2v-.18a2 2 0 0 1 1-1.73l.43-.25a2 2 0 0 1 2 0l.15.08a2 2 0 0 0 2.73-.73l.22-.39a2 2 0 0 0-.73-2.73l-.15-.08a2 2 0 0 1-1-1.74v-.5a2 2 0 0 1 1-1.74l.15-.09a2 2 0 0 0 .73-2.73l-.22-.38a2 2 0 0 0-2.73-.73l-.15.08a2 2 0 0 1-2 0l-.43-.25a2 2 0 0 1-1-1.73V4a2 2 0 0 0-2-2z\",\n key: \"1qme2f\"\n }\n ],\n [\n \"circle\",\n {\n cx: \"12\",\n cy: \"12\",\n r: \"3\",\n key: \"1v7zrd\"\n }\n ]\n];\nconst Settings = createLucideIcon(\"settings\", __iconNode$5E);\nconst __iconNode$5D = [\n [\n \"path\",\n {\n d: \"M8.3 10a.7.7 0 0 1-.626-1.079L11.4 3a.7.7 0 0 1 1.198-.043L16.3 8.9a.7.7 0 0 1-.572 1.1Z\",\n key: \"1bo67w\"\n }\n ],\n [\n \"rect\",\n {\n x: \"3\",\n y: \"14\",\n width: \"7\",\n height: \"7\",\n rx: \"1\",\n key: \"1bkyp8\"\n }\n ],\n [\n \"circle\",\n {\n cx: \"17.5\",\n cy: \"17.5\",\n r: \"3.5\",\n key: \"w3z12y\"\n }\n ]\n];\nconst Shapes = createLucideIcon(\"shapes\", __iconNode$5D);\nconst __iconNode$5C = [\n [\n \"circle\",\n {\n cx: \"18\",\n cy: \"5\",\n r: \"3\",\n key: \"gq8acd\"\n }\n ],\n [\n \"circle\",\n {\n cx: \"6\",\n cy: \"12\",\n r: \"3\",\n key: \"w7nqdw\"\n }\n ],\n [\n \"circle\",\n {\n cx: \"18\",\n cy: \"19\",\n r: \"3\",\n key: \"1xt0gg\"\n }\n ],\n [\n \"line\",\n {\n x1: \"8.59\",\n x2: \"15.42\",\n y1: \"13.51\",\n y2: \"17.49\",\n key: \"47mynk\"\n }\n ],\n [\n \"line\",\n {\n x1: \"15.41\",\n x2: \"8.59\",\n y1: \"6.51\",\n y2: \"10.49\",\n key: \"1n3mei\"\n }\n ]\n];\nconst Share2 = createLucideIcon(\"share-2\", __iconNode$5C);\nconst __iconNode$5B = [\n [\n \"path\",\n {\n d: \"M12 2v13\",\n key: \"1km8f5\"\n }\n ],\n [\n \"path\",\n {\n d: \"m16 6-4-4-4 4\",\n key: \"13yo43\"\n }\n ],\n [\n \"path\",\n {\n d: \"M4 12v8a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2v-8\",\n key: \"1b2hhj\"\n }\n ]\n];\nconst Share = createLucideIcon(\"share\", __iconNode$5B);\nconst __iconNode$5A = [\n [\n \"rect\",\n {\n width: \"18\",\n height: \"18\",\n x: \"3\",\n y: \"3\",\n rx: \"2\",\n ry: \"2\",\n key: \"1m3agn\"\n }\n ],\n [\n \"line\",\n {\n x1: \"3\",\n x2: \"21\",\n y1: \"9\",\n y2: \"9\",\n key: \"1vqk6q\"\n }\n ],\n [\n \"line\",\n {\n x1: \"3\",\n x2: \"21\",\n y1: \"15\",\n y2: \"15\",\n key: \"o2sbyz\"\n }\n ],\n [\n \"line\",\n {\n x1: \"9\",\n x2: \"9\",\n y1: \"9\",\n y2: \"21\",\n key: \"1ib60c\"\n }\n ],\n [\n \"line\",\n {\n x1: \"15\",\n x2: \"15\",\n y1: \"9\",\n y2: \"21\",\n key: \"1n26ft\"\n }\n ]\n];\nconst Sheet = createLucideIcon(\"sheet\", __iconNode$5A);\nconst __iconNode$5z = [\n [\n \"path\",\n {\n d: \"M14 11a2 2 0 1 1-4 0 4 4 0 0 1 8 0 6 6 0 0 1-12 0 8 8 0 0 1 16 0 10 10 0 1 1-20 0 11.93 11.93 0 0 1 2.42-7.22 2 2 0 1 1 3.16 2.44\",\n key: \"1cn552\"\n }\n ]\n];\nconst Shell = createLucideIcon(\"shell\", __iconNode$5z);\nconst __iconNode$5y = [\n [\n \"path\",\n {\n d: \"M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z\",\n key: \"oel41y\"\n }\n ],\n [\n \"path\",\n {\n d: \"M12 8v4\",\n key: \"1got3b\"\n }\n ],\n [\n \"path\",\n {\n d: \"M12 16h.01\",\n key: \"1drbdi\"\n }\n ]\n];\nconst ShieldAlert = createLucideIcon(\"shield-alert\", __iconNode$5y);\nconst __iconNode$5x = [\n [\n \"path\",\n {\n d: \"M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z\",\n key: \"oel41y\"\n }\n ],\n [\n \"path\",\n {\n d: \"m4.243 5.21 14.39 12.472\",\n key: \"1c9a7c\"\n }\n ]\n];\nconst ShieldBan = createLucideIcon(\"shield-ban\", __iconNode$5x);\nconst __iconNode$5w = [\n [\n \"path\",\n {\n d: \"M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z\",\n key: \"oel41y\"\n }\n ],\n [\n \"path\",\n {\n d: \"m9 12 2 2 4-4\",\n key: \"dzmm74\"\n }\n ]\n];\nconst ShieldCheck = createLucideIcon(\"shield-check\", __iconNode$5w);\nconst __iconNode$5v = [\n [\n \"path\",\n {\n d: \"M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z\",\n key: \"oel41y\"\n }\n ],\n [\n \"path\",\n {\n d: \"M12 22V2\",\n key: \"zs6s6o\"\n }\n ]\n];\nconst ShieldHalf = createLucideIcon(\"shield-half\", __iconNode$5v);\nconst __iconNode$5u = [\n [\n \"path\",\n {\n d: \"M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z\",\n key: \"oel41y\"\n }\n ],\n [\n \"path\",\n {\n d: \"M8 12h.01\",\n key: \"czm47f\"\n }\n ],\n [\n \"path\",\n {\n d: \"M12 12h.01\",\n key: \"1mp3jc\"\n }\n ],\n [\n \"path\",\n {\n d: \"M16 12h.01\",\n key: \"1l6xoz\"\n }\n ]\n];\nconst ShieldEllipsis = createLucideIcon(\"shield-ellipsis\", __iconNode$5u);\nconst __iconNode$5t = [\n [\n \"path\",\n {\n d: \"M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z\",\n key: \"oel41y\"\n }\n ],\n [\n \"path\",\n {\n d: \"M9 12h6\",\n key: \"1c52cq\"\n }\n ]\n];\nconst ShieldMinus = createLucideIcon(\"shield-minus\", __iconNode$5t);\nconst __iconNode$5s = [\n [\n \"path\",\n {\n d: \"m2 2 20 20\",\n key: \"1ooewy\"\n }\n ],\n [\n \"path\",\n {\n d: \"M5 5a1 1 0 0 0-1 1v7c0 5 3.5 7.5 7.67 8.94a1 1 0 0 0 .67.01c2.35-.82 4.48-1.97 5.9-3.71\",\n key: \"1jlk70\"\n }\n ],\n [\n \"path\",\n {\n d: \"M9.309 3.652A12.252 12.252 0 0 0 11.24 2.28a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1v7a9.784 9.784 0 0 1-.08 1.264\",\n key: \"18rp1v\"\n }\n ]\n];\nconst ShieldOff = createLucideIcon(\"shield-off\", __iconNode$5s);\nconst __iconNode$5r = [\n [\n \"path\",\n {\n d: \"M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z\",\n key: \"oel41y\"\n }\n ],\n [\n \"path\",\n {\n d: \"M9 12h6\",\n key: \"1c52cq\"\n }\n ],\n [\n \"path\",\n {\n d: \"M12 9v6\",\n key: \"199k2o\"\n }\n ]\n];\nconst ShieldPlus = createLucideIcon(\"shield-plus\", __iconNode$5r);\nconst __iconNode$5q = [\n [\n \"path\",\n {\n d: \"M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z\",\n key: \"oel41y\"\n }\n ],\n [\n \"path\",\n {\n d: \"M6.376 18.91a6 6 0 0 1 11.249.003\",\n key: \"hnjrf2\"\n }\n ],\n [\n \"circle\",\n {\n cx: \"12\",\n cy: \"11\",\n r: \"4\",\n key: \"1gt34v\"\n }\n ]\n];\nconst ShieldUser = createLucideIcon(\"shield-user\", __iconNode$5q);\nconst __iconNode$5p = [\n [\n \"path\",\n {\n d: \"M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z\",\n key: \"oel41y\"\n }\n ],\n [\n \"path\",\n {\n d: \"M9.1 9a3 3 0 0 1 5.82 1c0 2-3 3-3 3\",\n key: \"mhlwft\"\n }\n ],\n [\n \"path\",\n {\n d: \"M12 17h.01\",\n key: \"p32p05\"\n }\n ]\n];\nconst ShieldQuestionMark = createLucideIcon(\"shield-question-mark\", __iconNode$5p);\nconst __iconNode$5o = [\n [\n \"path\",\n {\n d: \"M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z\",\n key: \"oel41y\"\n }\n ],\n [\n \"path\",\n {\n d: \"m14.5 9.5-5 5\",\n key: \"17q4r4\"\n }\n ],\n [\n \"path\",\n {\n d: \"m9.5 9.5 5 5\",\n key: \"18nt4w\"\n }\n ]\n];\nconst ShieldX = createLucideIcon(\"shield-x\", __iconNode$5o);\nconst __iconNode$5n = [\n [\n \"path\",\n {\n d: \"M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z\",\n key: \"oel41y\"\n }\n ]\n];\nconst Shield = createLucideIcon(\"shield\", __iconNode$5n);\nconst __iconNode$5m = [\n [\n \"circle\",\n {\n cx: \"12\",\n cy: \"12\",\n r: \"8\",\n key: \"46899m\"\n }\n ],\n [\n \"path\",\n {\n d: \"M12 2v7.5\",\n key: \"1e5rl5\"\n }\n ],\n [\n \"path\",\n {\n d: \"m19 5-5.23 5.23\",\n key: \"1ezxxf\"\n }\n ],\n [\n \"path\",\n {\n d: \"M22 12h-7.5\",\n key: \"le1719\"\n }\n ],\n [\n \"path\",\n {\n d: \"m19 19-5.23-5.23\",\n key: \"p3fmgn\"\n }\n ],\n [\n \"path\",\n {\n d: \"M12 14.5V22\",\n key: \"dgcmos\"\n }\n ],\n [\n \"path\",\n {\n d: \"M10.23 13.77 5 19\",\n key: \"qwopd4\"\n }\n ],\n [\n \"path\",\n {\n d: \"M9.5 12H2\",\n key: \"r7bup8\"\n }\n ],\n [\n \"path\",\n {\n d: \"M10.23 10.23 5 5\",\n key: \"k2y7lj\"\n }\n ],\n [\n \"circle\",\n {\n cx: \"12\",\n cy: \"12\",\n r: \"2.5\",\n key: \"ix0uyj\"\n }\n ]\n];\nconst ShipWheel = createLucideIcon(\"ship-wheel\", __iconNode$5m);\nconst __iconNode$5l = [\n [\n \"path\",\n {\n d: \"M12 10.189V14\",\n key: \"1p8cqu\"\n }\n ],\n [\n \"path\",\n {\n d: \"M12 2v3\",\n key: \"qbqxhf\"\n }\n ],\n [\n \"path\",\n {\n d: \"M19 13V7a2 2 0 0 0-2-2H7a2 2 0 0 0-2 2v6\",\n key: \"qpkstq\"\n }\n ],\n [\n \"path\",\n {\n d: \"M19.38 20A11.6 11.6 0 0 0 21 14l-8.188-3.639a2 2 0 0 0-1.624 0L3 14a11.6 11.6 0 0 0 2.81 7.76\",\n key: \"7tigtc\"\n }\n ],\n [\n \"path\",\n {\n d: \"M2 21c.6.5 1.2 1 2.5 1 2.5 0 2.5-2 5-2 1.3 0 1.9.5 2.5 1s1.2 1 2.5 1c2.5 0 2.5-2 5-2 1.3 0 1.9.5 2.5 1\",\n key: \"1924j5\"\n }\n ]\n];\nconst Ship = createLucideIcon(\"ship\", __iconNode$5l);\nconst __iconNode$5k = [\n [\n \"path\",\n {\n d: \"M20.38 3.46 16 2a4 4 0 0 1-8 0L3.62 3.46a2 2 0 0 0-1.34 2.23l.58 3.47a1 1 0 0 0 .99.84H6v10c0 1.1.9 2 2 2h8a2 2 0 0 0 2-2V10h2.15a1 1 0 0 0 .99-.84l.58-3.47a2 2 0 0 0-1.34-2.23z\",\n key: \"1wgbhj\"\n }\n ]\n];\nconst Shirt = createLucideIcon(\"shirt\", __iconNode$5k);\nconst __iconNode$5j = [\n [\n \"path\",\n {\n d: \"M16 10a4 4 0 0 1-8 0\",\n key: \"1ltviw\"\n }\n ],\n [\n \"path\",\n {\n d: \"M3.103 6.034h17.794\",\n key: \"awc11p\"\n }\n ],\n [\n \"path\",\n {\n d: \"M3.4 5.467a2 2 0 0 0-.4 1.2V20a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2V6.667a2 2 0 0 0-.4-1.2l-2-2.667A2 2 0 0 0 17 2H7a2 2 0 0 0-1.6.8z\",\n key: \"o988cm\"\n }\n ]\n];\nconst ShoppingBag = createLucideIcon(\"shopping-bag\", __iconNode$5j);\nconst __iconNode$5i = [\n [\n \"path\",\n {\n d: \"m15 11-1 9\",\n key: \"5wnq3a\"\n }\n ],\n [\n \"path\",\n {\n d: \"m19 11-4-7\",\n key: \"cnml18\"\n }\n ],\n [\n \"path\",\n {\n d: \"M2 11h20\",\n key: \"3eubbj\"\n }\n ],\n [\n \"path\",\n {\n d: \"m3.5 11 1.6 7.4a2 2 0 0 0 2 1.6h9.8a2 2 0 0 0 2-1.6l1.7-7.4\",\n key: \"yiazzp\"\n }\n ],\n [\n \"path\",\n {\n d: \"M4.5 15.5h15\",\n key: \"13mye1\"\n }\n ],\n [\n \"path\",\n {\n d: \"m5 11 4-7\",\n key: \"116ra9\"\n }\n ],\n [\n \"path\",\n {\n d: \"m9 11 1 9\",\n key: \"1ojof7\"\n }\n ]\n];\nconst ShoppingBasket = createLucideIcon(\"shopping-basket\", __iconNode$5i);\nconst __iconNode$5h = [\n [\n \"circle\",\n {\n cx: \"8\",\n cy: \"21\",\n r: \"1\",\n key: \"jimo8o\"\n }\n ],\n [\n \"circle\",\n {\n cx: \"19\",\n cy: \"21\",\n r: \"1\",\n key: \"13723u\"\n }\n ],\n [\n \"path\",\n {\n d: \"M2.05 2.05h2l2.66 12.42a2 2 0 0 0 2 1.58h9.78a2 2 0 0 0 1.95-1.57l1.65-7.43H5.12\",\n key: \"9zh506\"\n }\n ]\n];\nconst ShoppingCart = createLucideIcon(\"shopping-cart\", __iconNode$5h);\nconst __iconNode$5g = [\n [\n \"path\",\n {\n d: \"M2 22v-5l5-5 5 5-5 5z\",\n key: \"1fh25c\"\n }\n ],\n [\n \"path\",\n {\n d: \"M9.5 14.5 16 8\",\n key: \"1smz5x\"\n }\n ],\n [\n \"path\",\n {\n d: \"m17 2 5 5-.5.5a3.53 3.53 0 0 1-5 0s0 0 0 0a3.53 3.53 0 0 1 0-5L17 2\",\n key: \"1q8uv5\"\n }\n ]\n];\nconst Shovel = createLucideIcon(\"shovel\", __iconNode$5g);\nconst __iconNode$5f = [\n [\n \"path\",\n {\n d: \"m4 4 2.5 2.5\",\n key: \"uv2vmf\"\n }\n ],\n [\n \"path\",\n {\n d: \"M13.5 6.5a4.95 4.95 0 0 0-7 7\",\n key: \"frdkwv\"\n }\n ],\n [\n \"path\",\n {\n d: \"M15 5 5 15\",\n key: \"1ag8rq\"\n }\n ],\n [\n \"path\",\n {\n d: \"M14 17v.01\",\n key: \"eokfpp\"\n }\n ],\n [\n \"path\",\n {\n d: \"M10 16v.01\",\n key: \"14uyyl\"\n }\n ],\n [\n \"path\",\n {\n d: \"M13 13v.01\",\n key: \"1v1k97\"\n }\n ],\n [\n \"path\",\n {\n d: \"M16 10v.01\",\n key: \"5169yg\"\n }\n ],\n [\n \"path\",\n {\n d: \"M11 20v.01\",\n key: \"cj92p8\"\n }\n ],\n [\n \"path\",\n {\n d: \"M17 14v.01\",\n key: \"11cswd\"\n }\n ],\n [\n \"path\",\n {\n d: \"M20 11v.01\",\n key: \"19e0od\"\n }\n ]\n];\nconst ShowerHead = createLucideIcon(\"shower-head\", __iconNode$5f);\nconst __iconNode$5e = [\n [\n \"path\",\n {\n d: \"M10 22v-5\",\n key: \"sfixh4\"\n }\n ],\n [\n \"path\",\n {\n d: \"M14 19v-2\",\n key: \"pdve8j\"\n }\n ],\n [\n \"path\",\n {\n d: \"M14 2v4a2 2 0 0 0 2 2h4\",\n key: \"tnqrlb\"\n }\n ],\n [\n \"path\",\n {\n d: \"M18 20v-3\",\n key: \"uox2gk\"\n }\n ],\n [\n \"path\",\n {\n d: \"M2 13h20\",\n key: \"5evz65\"\n }\n ],\n [\n \"path\",\n {\n d: \"M20 13V7l-5-5H6a2 2 0 0 0-2 2v9\",\n key: \"1rnpe2\"\n }\n ],\n [\n \"path\",\n {\n d: \"M6 20v-3\",\n key: \"c6pdcb\"\n }\n ]\n];\nconst Shredder = createLucideIcon(\"shredder\", __iconNode$5e);\nconst __iconNode$5d = [\n [\n \"path\",\n {\n d: \"M11 12h.01\",\n key: \"1lr4k6\"\n }\n ],\n [\n \"path\",\n {\n d: \"M13 22c.5-.5 1.12-1 2.5-1-1.38 0-2-.5-2.5-1\",\n key: \"fatpdi\"\n }\n ],\n [\n \"path\",\n {\n d: \"M14 2a3.28 3.28 0 0 1-3.227 1.798l-6.17-.561A2.387 2.387 0 1 0 4.387 8H15.5a1 1 0 0 1 0 13 1 1 0 0 0 0-5H12a7 7 0 0 1-7-7V8\",\n key: \"kehrqe\"\n }\n ],\n [\n \"path\",\n {\n d: \"M14 8a8.5 8.5 0 0 1 0 8\",\n key: \"1imjx2\"\n }\n ],\n [\n \"path\",\n {\n d: \"M16 16c2 0 4.5-4 4-6\",\n key: \"z0nejz\"\n }\n ]\n];\nconst Shrimp = createLucideIcon(\"shrimp\", __iconNode$5d);\nconst __iconNode$5c = [\n [\n \"path\",\n {\n d: \"m15 15 6 6m-6-6v4.8m0-4.8h4.8\",\n key: \"17vawe\"\n }\n ],\n [\n \"path\",\n {\n d: \"M9 19.8V15m0 0H4.2M9 15l-6 6\",\n key: \"chjx8e\"\n }\n ],\n [\n \"path\",\n {\n d: \"M15 4.2V9m0 0h4.8M15 9l6-6\",\n key: \"lav6yq\"\n }\n ],\n [\n \"path\",\n {\n d: \"M9 4.2V9m0 0H4.2M9 9 3 3\",\n key: \"1pxi2q\"\n }\n ]\n];\nconst Shrink = createLucideIcon(\"shrink\", __iconNode$5c);\nconst __iconNode$5b = [\n [\n \"path\",\n {\n d: \"M12 22v-5.172a2 2 0 0 0-.586-1.414L9.5 13.5\",\n key: \"1p17fm\"\n }\n ],\n [\n \"path\",\n {\n d: \"M14.5 14.5 12 17\",\n key: \"dy5w4y\"\n }\n ],\n [\n \"path\",\n {\n d: \"M17 8.8A6 6 0 0 1 13.8 20H10A6.5 6.5 0 0 1 7 8a5 5 0 0 1 10 0z\",\n key: \"6z7b3o\"\n }\n ]\n];\nconst Shrub = createLucideIcon(\"shrub\", __iconNode$5b);\nconst __iconNode$5a = [\n [\n \"path\",\n {\n d: \"m18 14 4 4-4 4\",\n key: \"10pe0f\"\n }\n ],\n [\n \"path\",\n {\n d: \"m18 2 4 4-4 4\",\n key: \"pucp1d\"\n }\n ],\n [\n \"path\",\n {\n d: \"M2 18h1.973a4 4 0 0 0 3.3-1.7l5.454-8.6a4 4 0 0 1 3.3-1.7H22\",\n key: \"1ailkh\"\n }\n ],\n [\n \"path\",\n {\n d: \"M2 6h1.972a4 4 0 0 1 3.6 2.2\",\n key: \"km57vx\"\n }\n ],\n [\n \"path\",\n {\n d: \"M22 18h-6.041a4 4 0 0 1-3.3-1.8l-.359-.45\",\n key: \"os18l9\"\n }\n ]\n];\nconst Shuffle = createLucideIcon(\"shuffle\", __iconNode$5a);\nconst __iconNode$59 = [\n [\n \"path\",\n {\n d: \"M18 7V5a1 1 0 0 0-1-1H6.5a.5.5 0 0 0-.4.8l4.5 6a2 2 0 0 1 0 2.4l-4.5 6a.5.5 0 0 0 .4.8H17a1 1 0 0 0 1-1v-2\",\n key: \"wuwx1p\"\n }\n ]\n];\nconst Sigma = createLucideIcon(\"sigma\", __iconNode$59);\nconst __iconNode$58 = [\n [\n \"path\",\n {\n d: \"M2 20h.01\",\n key: \"4haj6o\"\n }\n ],\n [\n \"path\",\n {\n d: \"M7 20v-4\",\n key: \"j294jx\"\n }\n ],\n [\n \"path\",\n {\n d: \"M12 20v-8\",\n key: \"i3yub9\"\n }\n ],\n [\n \"path\",\n {\n d: \"M17 20V8\",\n key: \"1tkaf5\"\n }\n ]\n];\nconst SignalHigh = createLucideIcon(\"signal-high\", __iconNode$58);\nconst __iconNode$57 = [\n [\n \"path\",\n {\n d: \"M2 20h.01\",\n key: \"4haj6o\"\n }\n ],\n [\n \"path\",\n {\n d: \"M7 20v-4\",\n key: \"j294jx\"\n }\n ]\n];\nconst SignalLow = createLucideIcon(\"signal-low\", __iconNode$57);\nconst __iconNode$56 = [\n [\n \"path\",\n {\n d: \"M2 20h.01\",\n key: \"4haj6o\"\n }\n ],\n [\n \"path\",\n {\n d: \"M7 20v-4\",\n key: \"j294jx\"\n }\n ],\n [\n \"path\",\n {\n d: \"M12 20v-8\",\n key: \"i3yub9\"\n }\n ]\n];\nconst SignalMedium = createLucideIcon(\"signal-medium\", __iconNode$56);\nconst __iconNode$55 = [\n [\n \"path\",\n {\n d: \"M2 20h.01\",\n key: \"4haj6o\"\n }\n ]\n];\nconst SignalZero = createLucideIcon(\"signal-zero\", __iconNode$55);\nconst __iconNode$54 = [\n [\n \"path\",\n {\n d: \"M2 20h.01\",\n key: \"4haj6o\"\n }\n ],\n [\n \"path\",\n {\n d: \"M7 20v-4\",\n key: \"j294jx\"\n }\n ],\n [\n \"path\",\n {\n d: \"M12 20v-8\",\n key: \"i3yub9\"\n }\n ],\n [\n \"path\",\n {\n d: \"M17 20V8\",\n key: \"1tkaf5\"\n }\n ],\n [\n \"path\",\n {\n d: \"M22 4v16\",\n key: \"sih9yq\"\n }\n ]\n];\nconst Signal = createLucideIcon(\"signal\", __iconNode$54);\nconst __iconNode$53 = [\n [\n \"path\",\n {\n d: \"m21 17-2.156-1.868A.5.5 0 0 0 18 15.5v.5a1 1 0 0 1-1 1h-2a1 1 0 0 1-1-1c0-2.545-3.991-3.97-8.5-4a1 1 0 0 0 0 5c4.153 0 4.745-11.295 5.708-13.5a2.5 2.5 0 1 1 3.31 3.284\",\n key: \"y32ogt\"\n }\n ],\n [\n \"path\",\n {\n d: \"M3 21h18\",\n key: \"itz85i\"\n }\n ]\n];\nconst Signature = createLucideIcon(\"signature\", __iconNode$53);\nconst __iconNode$52 = [\n [\n \"path\",\n {\n d: \"M10 9H4L2 7l2-2h6\",\n key: \"1hq7x2\"\n }\n ],\n [\n \"path\",\n {\n d: \"M14 5h6l2 2-2 2h-6\",\n key: \"bv62ej\"\n }\n ],\n [\n \"path\",\n {\n d: \"M10 22V4a2 2 0 1 1 4 0v18\",\n key: \"eqpcf2\"\n }\n ],\n [\n \"path\",\n {\n d: \"M8 22h8\",\n key: \"rmew8v\"\n }\n ]\n];\nconst SignpostBig = createLucideIcon(\"signpost-big\", __iconNode$52);\nconst __iconNode$51 = [\n [\n \"path\",\n {\n d: \"M7 18v-6a5 5 0 1 1 10 0v6\",\n key: \"pcx96s\"\n }\n ],\n [\n \"path\",\n {\n d: \"M5 21a1 1 0 0 0 1 1h12a1 1 0 0 0 1-1v-1a2 2 0 0 0-2-2H7a2 2 0 0 0-2 2z\",\n key: \"1b4s83\"\n }\n ],\n [\n \"path\",\n {\n d: \"M21 12h1\",\n key: \"jtio3y\"\n }\n ],\n [\n \"path\",\n {\n d: \"M18.5 4.5 18 5\",\n key: \"g5sp9y\"\n }\n ],\n [\n \"path\",\n {\n d: \"M2 12h1\",\n key: \"1uaihz\"\n }\n ],\n [\n \"path\",\n {\n d: \"M12 2v1\",\n key: \"11qlp1\"\n }\n ],\n [\n \"path\",\n {\n d: \"m4.929 4.929.707.707\",\n key: \"1i51kw\"\n }\n ],\n [\n \"path\",\n {\n d: \"M12 12v6\",\n key: \"3ahymv\"\n }\n ]\n];\nconst Siren = createLucideIcon(\"siren\", __iconNode$51);\nconst __iconNode$50 = [\n [\n \"path\",\n {\n d: \"M12 13v8\",\n key: \"1l5pq0\"\n }\n ],\n [\n \"path\",\n {\n d: \"M12 3v3\",\n key: \"1n5kay\"\n }\n ],\n [\n \"path\",\n {\n d: \"M18 6a2 2 0 0 1 1.387.56l2.307 2.22a1 1 0 0 1 0 1.44l-2.307 2.22A2 2 0 0 1 18 13H6a2 2 0 0 1-1.387-.56l-2.306-2.22a1 1 0 0 1 0-1.44l2.306-2.22A2 2 0 0 1 6 6z\",\n key: \"gqqp9m\"\n }\n ]\n];\nconst Signpost = createLucideIcon(\"signpost\", __iconNode$50);\nconst __iconNode$4$ = [\n [\n \"polygon\",\n {\n points: \"19 20 9 12 19 4 19 20\",\n key: \"o2sva\"\n }\n ],\n [\n \"line\",\n {\n x1: \"5\",\n x2: \"5\",\n y1: \"19\",\n y2: \"5\",\n key: \"1ocqjk\"\n }\n ]\n];\nconst SkipBack = createLucideIcon(\"skip-back\", __iconNode$4$);\nconst __iconNode$4_ = [\n [\n \"path\",\n {\n d: \"m12.5 17-.5-1-.5 1h1z\",\n key: \"3me087\"\n }\n ],\n [\n \"path\",\n {\n d: \"M15 22a1 1 0 0 0 1-1v-1a2 2 0 0 0 1.56-3.25 8 8 0 1 0-11.12 0A2 2 0 0 0 8 20v1a1 1 0 0 0 1 1z\",\n key: \"1o5pge\"\n }\n ],\n [\n \"circle\",\n {\n cx: \"15\",\n cy: \"12\",\n r: \"1\",\n key: \"1tmaij\"\n }\n ],\n [\n \"circle\",\n {\n cx: \"9\",\n cy: \"12\",\n r: \"1\",\n key: \"1vctgf\"\n }\n ]\n];\nconst Skull = createLucideIcon(\"skull\", __iconNode$4_);\nconst __iconNode$4Z = [\n [\n \"polygon\",\n {\n points: \"5 4 15 12 5 20 5 4\",\n key: \"16p6eg\"\n }\n ],\n [\n \"line\",\n {\n x1: \"19\",\n x2: \"19\",\n y1: \"5\",\n y2: \"19\",\n key: \"futhcm\"\n }\n ]\n];\nconst SkipForward = createLucideIcon(\"skip-forward\", __iconNode$4Z);\nconst __iconNode$4Y = [\n [\n \"rect\",\n {\n width: \"3\",\n height: \"8\",\n x: \"13\",\n y: \"2\",\n rx: \"1.5\",\n key: \"diqz80\"\n }\n ],\n [\n \"path\",\n {\n d: \"M19 8.5V10h1.5A1.5 1.5 0 1 0 19 8.5\",\n key: \"183iwg\"\n }\n ],\n [\n \"rect\",\n {\n width: \"3\",\n height: \"8\",\n x: \"8\",\n y: \"14\",\n rx: \"1.5\",\n key: \"hqg7r1\"\n }\n ],\n [\n \"path\",\n {\n d: \"M5 15.5V14H3.5A1.5 1.5 0 1 0 5 15.5\",\n key: \"76g71w\"\n }\n ],\n [\n \"rect\",\n {\n width: \"8\",\n height: \"3\",\n x: \"14\",\n y: \"13\",\n rx: \"1.5\",\n key: \"1kmz0a\"\n }\n ],\n [\n \"path\",\n {\n d: \"M15.5 19H14v1.5a1.5 1.5 0 1 0 1.5-1.5\",\n key: \"jc4sz0\"\n }\n ],\n [\n \"rect\",\n {\n width: \"8\",\n height: \"3\",\n x: \"2\",\n y: \"8\",\n rx: \"1.5\",\n key: \"1omvl4\"\n }\n ],\n [\n \"path\",\n {\n d: \"M8.5 5H10V3.5A1.5 1.5 0 1 0 8.5 5\",\n key: \"16f3cl\"\n }\n ]\n];\nconst Slack = createLucideIcon(\"slack\", __iconNode$4Y);\nconst __iconNode$4X = [\n [\n \"path\",\n {\n d: \"M22 2 2 22\",\n key: \"y4kqgn\"\n }\n ]\n];\nconst Slash = createLucideIcon(\"slash\", __iconNode$4X);\nconst __iconNode$4W = [\n [\n \"path\",\n {\n d: \"M11 16.586V19a1 1 0 0 1-1 1H2L18.37 3.63a1 1 0 1 1 3 3l-9.663 9.663a1 1 0 0 1-1.414 0L8 14\",\n key: \"1sllp5\"\n }\n ]\n];\nconst Slice = createLucideIcon(\"slice\", __iconNode$4W);\nconst __iconNode$4V = [\n [\n \"line\",\n {\n x1: \"21\",\n x2: \"14\",\n y1: \"4\",\n y2: \"4\",\n key: \"obuewd\"\n }\n ],\n [\n \"line\",\n {\n x1: \"10\",\n x2: \"3\",\n y1: \"4\",\n y2: \"4\",\n key: \"1q6298\"\n }\n ],\n [\n \"line\",\n {\n x1: \"21\",\n x2: \"12\",\n y1: \"12\",\n y2: \"12\",\n key: \"1iu8h1\"\n }\n ],\n [\n \"line\",\n {\n x1: \"8\",\n x2: \"3\",\n y1: \"12\",\n y2: \"12\",\n key: \"ntss68\"\n }\n ],\n [\n \"line\",\n {\n x1: \"21\",\n x2: \"16\",\n y1: \"20\",\n y2: \"20\",\n key: \"14d8ph\"\n }\n ],\n [\n \"line\",\n {\n x1: \"12\",\n x2: \"3\",\n y1: \"20\",\n y2: \"20\",\n key: \"m0wm8r\"\n }\n ],\n [\n \"line\",\n {\n x1: \"14\",\n x2: \"14\",\n y1: \"2\",\n y2: \"6\",\n key: \"14e1ph\"\n }\n ],\n [\n \"line\",\n {\n x1: \"8\",\n x2: \"8\",\n y1: \"10\",\n y2: \"14\",\n key: \"1i6ji0\"\n }\n ],\n [\n \"line\",\n {\n x1: \"16\",\n x2: \"16\",\n y1: \"18\",\n y2: \"22\",\n key: \"1lctlv\"\n }\n ]\n];\nconst SlidersHorizontal = createLucideIcon(\"sliders-horizontal\", __iconNode$4V);\nconst __iconNode$4U = [\n [\n \"line\",\n {\n x1: \"4\",\n x2: \"4\",\n y1: \"21\",\n y2: \"14\",\n key: \"1p332r\"\n }\n ],\n [\n \"line\",\n {\n x1: \"4\",\n x2: \"4\",\n y1: \"10\",\n y2: \"3\",\n key: \"gb41h5\"\n }\n ],\n [\n \"line\",\n {\n x1: \"12\",\n x2: \"12\",\n y1: \"21\",\n y2: \"12\",\n key: \"hf2csr\"\n }\n ],\n [\n \"line\",\n {\n x1: \"12\",\n x2: \"12\",\n y1: \"8\",\n y2: \"3\",\n key: \"1kfi7u\"\n }\n ],\n [\n \"line\",\n {\n x1: \"20\",\n x2: \"20\",\n y1: \"21\",\n y2: \"16\",\n key: \"1lhrwl\"\n }\n ],\n [\n \"line\",\n {\n x1: \"20\",\n x2: \"20\",\n y1: \"12\",\n y2: \"3\",\n key: \"16vvfq\"\n }\n ],\n [\n \"line\",\n {\n x1: \"2\",\n x2: \"6\",\n y1: \"14\",\n y2: \"14\",\n key: \"1uebub\"\n }\n ],\n [\n \"line\",\n {\n x1: \"10\",\n x2: \"14\",\n y1: \"8\",\n y2: \"8\",\n key: \"1yglbp\"\n }\n ],\n [\n \"line\",\n {\n x1: \"18\",\n x2: \"22\",\n y1: \"16\",\n y2: \"16\",\n key: \"1jxqpz\"\n }\n ]\n];\nconst SlidersVertical = createLucideIcon(\"sliders-vertical\", __iconNode$4U);\nconst __iconNode$4T = [\n [\n \"rect\",\n {\n width: \"14\",\n height: \"20\",\n x: \"5\",\n y: \"2\",\n rx: \"2\",\n ry: \"2\",\n key: \"1yt0o3\"\n }\n ],\n [\n \"path\",\n {\n d: \"M12.667 8 10 12h4l-2.667 4\",\n key: \"h9lk2d\"\n }\n ]\n];\nconst SmartphoneCharging = createLucideIcon(\"smartphone-charging\", __iconNode$4T);\nconst __iconNode$4S = [\n [\n \"rect\",\n {\n width: \"7\",\n height: \"12\",\n x: \"2\",\n y: \"6\",\n rx: \"1\",\n key: \"5nje8w\"\n }\n ],\n [\n \"path\",\n {\n d: \"M13 8.32a7.43 7.43 0 0 1 0 7.36\",\n key: \"1g306n\"\n }\n ],\n [\n \"path\",\n {\n d: \"M16.46 6.21a11.76 11.76 0 0 1 0 11.58\",\n key: \"uqvjvo\"\n }\n ],\n [\n \"path\",\n {\n d: \"M19.91 4.1a15.91 15.91 0 0 1 .01 15.8\",\n key: \"ujntz3\"\n }\n ]\n];\nconst SmartphoneNfc = createLucideIcon(\"smartphone-nfc\", __iconNode$4S);\nconst __iconNode$4R = [\n [\n \"rect\",\n {\n width: \"14\",\n height: \"20\",\n x: \"5\",\n y: \"2\",\n rx: \"2\",\n ry: \"2\",\n key: \"1yt0o3\"\n }\n ],\n [\n \"path\",\n {\n d: \"M12 18h.01\",\n key: \"mhygvu\"\n }\n ]\n];\nconst Smartphone = createLucideIcon(\"smartphone\", __iconNode$4R);\nconst __iconNode$4Q = [\n [\n \"path\",\n {\n d: \"M22 11v1a10 10 0 1 1-9-10\",\n key: \"ew0xw9\"\n }\n ],\n [\n \"path\",\n {\n d: \"M8 14s1.5 2 4 2 4-2 4-2\",\n key: \"1y1vjs\"\n }\n ],\n [\n \"line\",\n {\n x1: \"9\",\n x2: \"9.01\",\n y1: \"9\",\n y2: \"9\",\n key: \"yxxnd0\"\n }\n ],\n [\n \"line\",\n {\n x1: \"15\",\n x2: \"15.01\",\n y1: \"9\",\n y2: \"9\",\n key: \"1p4y9e\"\n }\n ],\n [\n \"path\",\n {\n d: \"M16 5h6\",\n key: \"1vod17\"\n }\n ],\n [\n \"path\",\n {\n d: \"M19 2v6\",\n key: \"4bpg5p\"\n }\n ]\n];\nconst SmilePlus = createLucideIcon(\"smile-plus\", __iconNode$4Q);\nconst __iconNode$4P = [\n [\n \"circle\",\n {\n cx: \"12\",\n cy: \"12\",\n r: \"10\",\n key: \"1mglay\"\n }\n ],\n [\n \"path\",\n {\n d: \"M8 14s1.5 2 4 2 4-2 4-2\",\n key: \"1y1vjs\"\n }\n ],\n [\n \"line\",\n {\n x1: \"9\",\n x2: \"9.01\",\n y1: \"9\",\n y2: \"9\",\n key: \"yxxnd0\"\n }\n ],\n [\n \"line\",\n {\n x1: \"15\",\n x2: \"15.01\",\n y1: \"9\",\n y2: \"9\",\n key: \"1p4y9e\"\n }\n ]\n];\nconst Smile = createLucideIcon(\"smile\", __iconNode$4P);\nconst __iconNode$4O = [\n [\n \"path\",\n {\n d: \"M2 13a6 6 0 1 0 12 0 4 4 0 1 0-8 0 2 2 0 0 0 4 0\",\n key: \"hneq2s\"\n }\n ],\n [\n \"circle\",\n {\n cx: \"10\",\n cy: \"13\",\n r: \"8\",\n key: \"194lz3\"\n }\n ],\n [\n \"path\",\n {\n d: \"M2 21h12c4.4 0 8-3.6 8-8V7a2 2 0 1 0-4 0v6\",\n key: \"ixqyt7\"\n }\n ],\n [\n \"path\",\n {\n d: \"M18 3 19.1 5.2\",\n key: \"9tjm43\"\n }\n ],\n [\n \"path\",\n {\n d: \"M22 3 20.9 5.2\",\n key: \"j3odrs\"\n }\n ]\n];\nconst Snail = createLucideIcon(\"snail\", __iconNode$4O);\nconst __iconNode$4N = [\n [\n \"path\",\n {\n d: \"m10 20-1.25-2.5L6 18\",\n key: \"18frcb\"\n }\n ],\n [\n \"path\",\n {\n d: \"M10 4 8.75 6.5 6 6\",\n key: \"7mghy3\"\n }\n ],\n [\n \"path\",\n {\n d: \"m14 20 1.25-2.5L18 18\",\n key: \"1chtki\"\n }\n ],\n [\n \"path\",\n {\n d: \"m14 4 1.25 2.5L18 6\",\n key: \"1b4wsy\"\n }\n ],\n [\n \"path\",\n {\n d: \"m17 21-3-6h-4\",\n key: \"15hhxa\"\n }\n ],\n [\n \"path\",\n {\n d: \"m17 3-3 6 1.5 3\",\n key: \"11697g\"\n }\n ],\n [\n \"path\",\n {\n d: \"M2 12h6.5L10 9\",\n key: \"kv9z4n\"\n }\n ],\n [\n \"path\",\n {\n d: \"m20 10-1.5 2 1.5 2\",\n key: \"1swlpi\"\n }\n ],\n [\n \"path\",\n {\n d: \"M22 12h-6.5L14 15\",\n key: \"1mxi28\"\n }\n ],\n [\n \"path\",\n {\n d: \"m4 10 1.5 2L4 14\",\n key: \"k9enpj\"\n }\n ],\n [\n \"path\",\n {\n d: \"m7 21 3-6-1.5-3\",\n key: \"j8hb9u\"\n }\n ],\n [\n \"path\",\n {\n d: \"m7 3 3 6h4\",\n key: \"1otusx\"\n }\n ]\n];\nconst Snowflake = createLucideIcon(\"snowflake\", __iconNode$4N);\nconst __iconNode$4M = [\n [\n \"path\",\n {\n d: \"M20 9V6a2 2 0 0 0-2-2H6a2 2 0 0 0-2 2v3\",\n key: \"1dgpiv\"\n }\n ],\n [\n \"path\",\n {\n d: \"M2 16a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2v-5a2 2 0 0 0-4 0v1.5a.5.5 0 0 1-.5.5h-11a.5.5 0 0 1-.5-.5V11a2 2 0 0 0-4 0z\",\n key: \"xacw8m\"\n }\n ],\n [\n \"path\",\n {\n d: \"M4 18v2\",\n key: \"jwo5n2\"\n }\n ],\n [\n \"path\",\n {\n d: \"M20 18v2\",\n key: \"1ar1qi\"\n }\n ],\n [\n \"path\",\n {\n d: \"M12 4v9\",\n key: \"oqhhn3\"\n }\n ]\n];\nconst Sofa = createLucideIcon(\"sofa\", __iconNode$4M);\nconst __iconNode$4L = [\n [\n \"path\",\n {\n d: \"M10.5 2v4\",\n key: \"1xt6in\"\n }\n ],\n [\n \"path\",\n {\n d: \"M14 2H7a2 2 0 0 0-2 2\",\n key: \"e6xig3\"\n }\n ],\n [\n \"path\",\n {\n d: \"M19.29 14.76A6.67 6.67 0 0 1 17 11a6.6 6.6 0 0 1-2.29 3.76c-1.15.92-1.71 2.04-1.71 3.19 0 2.22 1.8 4.05 4 4.05s4-1.83 4-4.05c0-1.16-.57-2.26-1.71-3.19\",\n key: \"adq7uc\"\n }\n ],\n [\n \"path\",\n {\n d: \"M9.607 21H6a2 2 0 0 1-2-2v-7a2 2 0 0 1 2-2h7V7a1 1 0 0 0-1-1H9a1 1 0 0 0-1 1v3\",\n key: \"t9hm96\"\n }\n ]\n];\nconst SoapDispenserDroplet = createLucideIcon(\"soap-dispenser-droplet\", __iconNode$4L);\nconst __iconNode$4K = [\n [\n \"path\",\n {\n d: \"M12 21a9 9 0 0 0 9-9H3a9 9 0 0 0 9 9Z\",\n key: \"4rw317\"\n }\n ],\n [\n \"path\",\n {\n d: \"M7 21h10\",\n key: \"1b0cd5\"\n }\n ],\n [\n \"path\",\n {\n d: \"M19.5 12 22 6\",\n key: \"shfsr5\"\n }\n ],\n [\n \"path\",\n {\n d: \"M16.25 3c.27.1.8.53.75 1.36-.06.83-.93 1.2-1 2.02-.05.78.34 1.24.73 1.62\",\n key: \"rpc6vp\"\n }\n ],\n [\n \"path\",\n {\n d: \"M11.25 3c.27.1.8.53.74 1.36-.05.83-.93 1.2-.98 2.02-.06.78.33 1.24.72 1.62\",\n key: \"1lf63m\"\n }\n ],\n [\n \"path\",\n {\n d: \"M6.25 3c.27.1.8.53.75 1.36-.06.83-.93 1.2-1 2.02-.05.78.34 1.24.74 1.62\",\n key: \"97tijn\"\n }\n ]\n];\nconst Soup = createLucideIcon(\"soup\", __iconNode$4K);\nconst __iconNode$4J = [\n [\n \"path\",\n {\n d: \"M22 17v1c0 .5-.5 1-1 1H3c-.5 0-1-.5-1-1v-1\",\n key: \"lt2kga\"\n }\n ]\n];\nconst Space = createLucideIcon(\"space\", __iconNode$4J);\nconst __iconNode$4I = [\n [\n \"path\",\n {\n d: \"M5 9c-1.5 1.5-3 3.2-3 5.5A5.5 5.5 0 0 0 7.5 20c1.8 0 3-.5 4.5-2 1.5 1.5 2.7 2 4.5 2a5.5 5.5 0 0 0 5.5-5.5c0-2.3-1.5-4-3-5.5l-7-7-7 7Z\",\n key: \"40bo9n\"\n }\n ],\n [\n \"path\",\n {\n d: \"M12 18v4\",\n key: \"jadmvz\"\n }\n ]\n];\nconst Spade = createLucideIcon(\"spade\", __iconNode$4I);\nconst __iconNode$4H = [\n [\n \"path\",\n {\n d: \"M9.937 15.5A2 2 0 0 0 8.5 14.063l-6.135-1.582a.5.5 0 0 1 0-.962L8.5 9.936A2 2 0 0 0 9.937 8.5l1.582-6.135a.5.5 0 0 1 .963 0L14.063 8.5A2 2 0 0 0 15.5 9.937l6.135 1.581a.5.5 0 0 1 0 .964L15.5 14.063a2 2 0 0 0-1.437 1.437l-1.582 6.135a.5.5 0 0 1-.963 0z\",\n key: \"4pj2yx\"\n }\n ]\n];\nconst Sparkle = createLucideIcon(\"sparkle\", __iconNode$4H);\nconst __iconNode$4G = [\n [\n \"path\",\n {\n d: \"M9.937 15.5A2 2 0 0 0 8.5 14.063l-6.135-1.582a.5.5 0 0 1 0-.962L8.5 9.936A2 2 0 0 0 9.937 8.5l1.582-6.135a.5.5 0 0 1 .963 0L14.063 8.5A2 2 0 0 0 15.5 9.937l6.135 1.581a.5.5 0 0 1 0 .964L15.5 14.063a2 2 0 0 0-1.437 1.437l-1.582 6.135a.5.5 0 0 1-.963 0z\",\n key: \"4pj2yx\"\n }\n ],\n [\n \"path\",\n {\n d: \"M20 3v4\",\n key: \"1olli1\"\n }\n ],\n [\n \"path\",\n {\n d: \"M22 5h-4\",\n key: \"1gvqau\"\n }\n ],\n [\n \"path\",\n {\n d: \"M4 17v2\",\n key: \"vumght\"\n }\n ],\n [\n \"path\",\n {\n d: \"M5 18H3\",\n key: \"zchphs\"\n }\n ]\n];\nconst Sparkles = createLucideIcon(\"sparkles\", __iconNode$4G);\nconst __iconNode$4F = [\n [\n \"rect\",\n {\n width: \"16\",\n height: \"20\",\n x: \"4\",\n y: \"2\",\n rx: \"2\",\n key: \"1nb95v\"\n }\n ],\n [\n \"path\",\n {\n d: \"M12 6h.01\",\n key: \"1vi96p\"\n }\n ],\n [\n \"circle\",\n {\n cx: \"12\",\n cy: \"14\",\n r: \"4\",\n key: \"1jruaj\"\n }\n ],\n [\n \"path\",\n {\n d: \"M12 14h.01\",\n key: \"1etili\"\n }\n ]\n];\nconst Speaker = createLucideIcon(\"speaker\", __iconNode$4F);\nconst __iconNode$4E = [\n [\n \"path\",\n {\n d: \"M8.8 20v-4.1l1.9.2a2.3 2.3 0 0 0 2.164-2.1V8.3A5.37 5.37 0 0 0 2 8.25c0 2.8.656 3.054 1 4.55a5.77 5.77 0 0 1 .029 2.758L2 20\",\n key: \"11atix\"\n }\n ],\n [\n \"path\",\n {\n d: \"M19.8 17.8a7.5 7.5 0 0 0 .003-10.603\",\n key: \"yol142\"\n }\n ],\n [\n \"path\",\n {\n d: \"M17 15a3.5 3.5 0 0 0-.025-4.975\",\n key: \"ssbmkc\"\n }\n ]\n];\nconst Speech = createLucideIcon(\"speech\", __iconNode$4E);\nconst __iconNode$4D = [\n [\n \"path\",\n {\n d: \"m6 16 6-12 6 12\",\n key: \"1b4byz\"\n }\n ],\n [\n \"path\",\n {\n d: \"M8 12h8\",\n key: \"1wcyev\"\n }\n ],\n [\n \"path\",\n {\n d: \"M4 21c1.1 0 1.1-1 2.3-1s1.1 1 2.3 1c1.1 0 1.1-1 2.3-1 1.1 0 1.1 1 2.3 1 1.1 0 1.1-1 2.3-1 1.1 0 1.1 1 2.3 1 1.1 0 1.1-1 2.3-1\",\n key: \"8mdmtu\"\n }\n ]\n];\nconst SpellCheck2 = createLucideIcon(\"spell-check-2\", __iconNode$4D);\nconst __iconNode$4C = [\n [\n \"path\",\n {\n d: \"m6 16 6-12 6 12\",\n key: \"1b4byz\"\n }\n ],\n [\n \"path\",\n {\n d: \"M8 12h8\",\n key: \"1wcyev\"\n }\n ],\n [\n \"path\",\n {\n d: \"m16 20 2 2 4-4\",\n key: \"13tcca\"\n }\n ]\n];\nconst SpellCheck = createLucideIcon(\"spell-check\", __iconNode$4C);\nconst __iconNode$4B = [\n [\n \"path\",\n {\n d: \"M12.034 12.681a.498.498 0 0 1 .647-.647l9 3.5a.5.5 0 0 1-.033.943l-3.444 1.068a1 1 0 0 0-.66.66l-1.067 3.443a.5.5 0 0 1-.943.033z\",\n key: \"xwnzip\"\n }\n ],\n [\n \"path\",\n {\n d: \"M5 17A12 12 0 0 1 17 5\",\n key: \"1okkup\"\n }\n ],\n [\n \"circle\",\n {\n cx: \"19\",\n cy: \"5\",\n r: \"2\",\n key: \"mhkx31\"\n }\n ],\n [\n \"circle\",\n {\n cx: \"5\",\n cy: \"19\",\n r: \"2\",\n key: \"v8kfzx\"\n }\n ]\n];\nconst SplinePointer = createLucideIcon(\"spline-pointer\", __iconNode$4B);\nconst __iconNode$4A = [\n [\n \"circle\",\n {\n cx: \"19\",\n cy: \"5\",\n r: \"2\",\n key: \"mhkx31\"\n }\n ],\n [\n \"circle\",\n {\n cx: \"5\",\n cy: \"19\",\n r: \"2\",\n key: \"v8kfzx\"\n }\n ],\n [\n \"path\",\n {\n d: \"M5 17A12 12 0 0 1 17 5\",\n key: \"1okkup\"\n }\n ]\n];\nconst Spline = createLucideIcon(\"spline\", __iconNode$4A);\nconst __iconNode$4z = [\n [\n \"path\",\n {\n d: \"M16 3h5v5\",\n key: \"1806ms\"\n }\n ],\n [\n \"path\",\n {\n d: \"M8 3H3v5\",\n key: \"15dfkv\"\n }\n ],\n [\n \"path\",\n {\n d: \"M12 22v-8.3a4 4 0 0 0-1.172-2.872L3 3\",\n key: \"1qrqzj\"\n }\n ],\n [\n \"path\",\n {\n d: \"m15 9 6-6\",\n key: \"ko1vev\"\n }\n ]\n];\nconst Split = createLucideIcon(\"split\", __iconNode$4z);\nconst __iconNode$4y = [\n [\n \"path\",\n {\n d: \"M17 13.44 4.442 17.082A2 2 0 0 0 4.982 21H19a2 2 0 0 0 .558-3.921l-1.115-.32A2 2 0 0 1 17 14.837V7.66\",\n key: \"13vns8\"\n }\n ],\n [\n \"path\",\n {\n d: \"m7 10.56 12.558-3.642A2 2 0 0 0 19.018 3H5a2 2 0 0 0-.558 3.921l1.115.32A2 2 0 0 1 7 9.163v7.178\",\n key: \"s8x3u0\"\n }\n ]\n];\nconst Spool = createLucideIcon(\"spool\", __iconNode$4y);\nconst __iconNode$4x = [\n [\n \"path\",\n {\n d: \"M3 3h.01\",\n key: \"159qn6\"\n }\n ],\n [\n \"path\",\n {\n d: \"M7 5h.01\",\n key: \"1hq22a\"\n }\n ],\n [\n \"path\",\n {\n d: \"M11 7h.01\",\n key: \"1osv80\"\n }\n ],\n [\n \"path\",\n {\n d: \"M3 7h.01\",\n key: \"1xzrh3\"\n }\n ],\n [\n \"path\",\n {\n d: \"M7 9h.01\",\n key: \"19b3jx\"\n }\n ],\n [\n \"path\",\n {\n d: \"M3 11h.01\",\n key: \"1eifu7\"\n }\n ],\n [\n \"rect\",\n {\n width: \"4\",\n height: \"4\",\n x: \"15\",\n y: \"5\",\n key: \"mri9e4\"\n }\n ],\n [\n \"path\",\n {\n d: \"m19 9 2 2v10c0 .6-.4 1-1 1h-6c-.6 0-1-.4-1-1V11l2-2\",\n key: \"aib6hk\"\n }\n ],\n [\n \"path\",\n {\n d: \"m13 14 8-2\",\n key: \"1d7bmk\"\n }\n ],\n [\n \"path\",\n {\n d: \"m13 19 8-2\",\n key: \"1y2vml\"\n }\n ]\n];\nconst SprayCan = createLucideIcon(\"spray-can\", __iconNode$4x);\nconst __iconNode$4w = [\n [\n \"path\",\n {\n d: \"M7 20h10\",\n key: \"e6iznv\"\n }\n ],\n [\n \"path\",\n {\n d: \"M10 20c5.5-2.5.8-6.4 3-10\",\n key: \"161w41\"\n }\n ],\n [\n \"path\",\n {\n d: \"M9.5 9.4c1.1.8 1.8 2.2 2.3 3.7-2 .4-3.5.4-4.8-.3-1.2-.6-2.3-1.9-3-4.2 2.8-.5 4.4 0 5.5.8z\",\n key: \"9gtqwd\"\n }\n ],\n [\n \"path\",\n {\n d: \"M14.1 6a7 7 0 0 0-1.1 4c1.9-.1 3.3-.6 4.3-1.4 1-1 1.6-2.3 1.7-4.6-2.7.1-4 1-4.9 2z\",\n key: \"bkxnd2\"\n }\n ]\n];\nconst Sprout = createLucideIcon(\"sprout\", __iconNode$4w);\nconst __iconNode$4v = [\n [\n \"rect\",\n {\n width: \"18\",\n height: \"18\",\n x: \"3\",\n y: \"3\",\n rx: \"2\",\n key: \"afitv7\"\n }\n ],\n [\n \"path\",\n {\n d: \"M17 12h-2l-2 5-2-10-2 5H7\",\n key: \"15hlnc\"\n }\n ]\n];\nconst SquareActivity = createLucideIcon(\"square-activity\", __iconNode$4v);\nconst __iconNode$4u = [\n [\n \"rect\",\n {\n width: \"18\",\n height: \"18\",\n x: \"3\",\n y: \"3\",\n rx: \"2\",\n key: \"afitv7\"\n }\n ],\n [\n \"path\",\n {\n d: \"m16 8-8 8\",\n key: \"166keh\"\n }\n ],\n [\n \"path\",\n {\n d: \"M16 16H8V8\",\n key: \"1w2ppm\"\n }\n ]\n];\nconst SquareArrowDownLeft = createLucideIcon(\"square-arrow-down-left\", __iconNode$4u);\nconst __iconNode$4t = [\n [\n \"rect\",\n {\n width: \"18\",\n height: \"18\",\n x: \"3\",\n y: \"3\",\n rx: \"2\",\n key: \"afitv7\"\n }\n ],\n [\n \"path\",\n {\n d: \"m8 8 8 8\",\n key: \"1imecy\"\n }\n ],\n [\n \"path\",\n {\n d: \"M16 8v8H8\",\n key: \"1lbpgo\"\n }\n ]\n];\nconst SquareArrowDownRight = createLucideIcon(\"square-arrow-down-right\", __iconNode$4t);\nconst __iconNode$4s = [\n [\n \"rect\",\n {\n width: \"18\",\n height: \"18\",\n x: \"3\",\n y: \"3\",\n rx: \"2\",\n key: \"afitv7\"\n }\n ],\n [\n \"path\",\n {\n d: \"M12 8v8\",\n key: \"napkw2\"\n }\n ],\n [\n \"path\",\n {\n d: \"m8 12 4 4 4-4\",\n key: \"k98ssh\"\n }\n ]\n];\nconst SquareArrowDown = createLucideIcon(\"square-arrow-down\", __iconNode$4s);\nconst __iconNode$4r = [\n [\n \"rect\",\n {\n width: \"18\",\n height: \"18\",\n x: \"3\",\n y: \"3\",\n rx: \"2\",\n key: \"afitv7\"\n }\n ],\n [\n \"path\",\n {\n d: \"m12 8-4 4 4 4\",\n key: \"15vm53\"\n }\n ],\n [\n \"path\",\n {\n d: \"M16 12H8\",\n key: \"1fr5h0\"\n }\n ]\n];\nconst SquareArrowLeft = createLucideIcon(\"square-arrow-left\", __iconNode$4r);\nconst __iconNode$4q = [\n [\n \"path\",\n {\n d: \"M13 21h6a2 2 0 0 0 2-2V5a2 2 0 0 0-2-2H5a2 2 0 0 0-2 2v6\",\n key: \"14qz4y\"\n }\n ],\n [\n \"path\",\n {\n d: \"m3 21 9-9\",\n key: \"1jfql5\"\n }\n ],\n [\n \"path\",\n {\n d: \"M9 21H3v-6\",\n key: \"wtvkvv\"\n }\n ]\n];\nconst SquareArrowOutDownLeft = createLucideIcon(\"square-arrow-out-down-left\", __iconNode$4q);\nconst __iconNode$4p = [\n [\n \"path\",\n {\n d: \"M21 11V5a2 2 0 0 0-2-2H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h6\",\n key: \"14rsvq\"\n }\n ],\n [\n \"path\",\n {\n d: \"m21 21-9-9\",\n key: \"1et2py\"\n }\n ],\n [\n \"path\",\n {\n d: \"M21 15v6h-6\",\n key: \"1jko0i\"\n }\n ]\n];\nconst SquareArrowOutDownRight = createLucideIcon(\"square-arrow-out-down-right\", __iconNode$4p);\nconst __iconNode$4o = [\n [\n \"path\",\n {\n d: \"M21 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h6\",\n key: \"y09zxi\"\n }\n ],\n [\n \"path\",\n {\n d: \"m21 3-9 9\",\n key: \"mpx6sq\"\n }\n ],\n [\n \"path\",\n {\n d: \"M15 3h6v6\",\n key: \"1q9fwt\"\n }\n ]\n];\nconst SquareArrowOutUpRight = createLucideIcon(\"square-arrow-out-up-right\", __iconNode$4o);\nconst __iconNode$4n = [\n [\n \"rect\",\n {\n width: \"18\",\n height: \"18\",\n x: \"3\",\n y: \"3\",\n rx: \"2\",\n key: \"afitv7\"\n }\n ],\n [\n \"path\",\n {\n d: \"M8 12h8\",\n key: \"1wcyev\"\n }\n ],\n [\n \"path\",\n {\n d: \"m12 16 4-4-4-4\",\n key: \"1i9zcv\"\n }\n ]\n];\nconst SquareArrowRight = createLucideIcon(\"square-arrow-right\", __iconNode$4n);\nconst __iconNode$4m = [\n [\n \"path\",\n {\n d: \"M13 3h6a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-6\",\n key: \"14mv1t\"\n }\n ],\n [\n \"path\",\n {\n d: \"m3 3 9 9\",\n key: \"rks13r\"\n }\n ],\n [\n \"path\",\n {\n d: \"M3 9V3h6\",\n key: \"ira0h2\"\n }\n ]\n];\nconst SquareArrowOutUpLeft = createLucideIcon(\"square-arrow-out-up-left\", __iconNode$4m);\nconst __iconNode$4l = [\n [\n \"rect\",\n {\n width: \"18\",\n height: \"18\",\n x: \"3\",\n y: \"3\",\n rx: \"2\",\n key: \"afitv7\"\n }\n ],\n [\n \"path\",\n {\n d: \"M8 16V8h8\",\n key: \"19xb1h\"\n }\n ],\n [\n \"path\",\n {\n d: \"M16 16 8 8\",\n key: \"1qdy8n\"\n }\n ]\n];\nconst SquareArrowUpLeft = createLucideIcon(\"square-arrow-up-left\", __iconNode$4l);\nconst __iconNode$4k = [\n [\n \"rect\",\n {\n width: \"18\",\n height: \"18\",\n x: \"3\",\n y: \"3\",\n rx: \"2\",\n key: \"afitv7\"\n }\n ],\n [\n \"path\",\n {\n d: \"M8 8h8v8\",\n key: \"b65dnt\"\n }\n ],\n [\n \"path\",\n {\n d: \"m8 16 8-8\",\n key: \"13b9ih\"\n }\n ]\n];\nconst SquareArrowUpRight = createLucideIcon(\"square-arrow-up-right\", __iconNode$4k);\nconst __iconNode$4j = [\n [\n \"rect\",\n {\n width: \"18\",\n height: \"18\",\n x: \"3\",\n y: \"3\",\n rx: \"2\",\n key: \"afitv7\"\n }\n ],\n [\n \"path\",\n {\n d: \"m16 12-4-4-4 4\",\n key: \"177agl\"\n }\n ],\n [\n \"path\",\n {\n d: \"M12 16V8\",\n key: \"1sbj14\"\n }\n ]\n];\nconst SquareArrowUp = createLucideIcon(\"square-arrow-up\", __iconNode$4j);\nconst __iconNode$4i = [\n [\n \"rect\",\n {\n width: \"18\",\n height: \"18\",\n x: \"3\",\n y: \"3\",\n rx: \"2\",\n key: \"afitv7\"\n }\n ],\n [\n \"path\",\n {\n d: \"M12 8v8\",\n key: \"napkw2\"\n }\n ],\n [\n \"path\",\n {\n d: \"m8.5 14 7-4\",\n key: \"12hpby\"\n }\n ],\n [\n \"path\",\n {\n d: \"m8.5 10 7 4\",\n key: \"wwy2dy\"\n }\n ]\n];\nconst SquareAsterisk = createLucideIcon(\"square-asterisk\", __iconNode$4i);\nconst __iconNode$4h = [\n [\n \"path\",\n {\n d: \"M4 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2v16a2 2 0 0 1-2 2\",\n key: \"1vzg26\"\n }\n ],\n [\n \"path\",\n {\n d: \"M10 22H8\",\n key: \"euku7a\"\n }\n ],\n [\n \"path\",\n {\n d: \"M16 22h-2\",\n key: \"18d249\"\n }\n ],\n [\n \"circle\",\n {\n cx: \"8\",\n cy: \"8\",\n r: \"2\",\n key: \"14cg06\"\n }\n ],\n [\n \"path\",\n {\n d: \"M9.414 9.414 12 12\",\n key: \"qz4lzr\"\n }\n ],\n [\n \"path\",\n {\n d: \"M14.8 14.8 18 18\",\n key: \"11flf1\"\n }\n ],\n [\n \"circle\",\n {\n cx: \"8\",\n cy: \"16\",\n r: \"2\",\n key: \"1acxsx\"\n }\n ],\n [\n \"path\",\n {\n d: \"m18 6-8.586 8.586\",\n key: \"11kzk1\"\n }\n ]\n];\nconst SquareBottomDashedScissors = createLucideIcon(\"square-bottom-dashed-scissors\", __iconNode$4h);\nconst __iconNode$4g = [\n [\n \"rect\",\n {\n width: \"18\",\n height: \"18\",\n x: \"3\",\n y: \"3\",\n rx: \"2\",\n key: \"afitv7\"\n }\n ],\n [\n \"path\",\n {\n d: \"M9 8h7\",\n key: \"kbo1nt\"\n }\n ],\n [\n \"path\",\n {\n d: \"M8 12h6\",\n key: \"ikassy\"\n }\n ],\n [\n \"path\",\n {\n d: \"M11 16h5\",\n key: \"oq65wt\"\n }\n ]\n];\nconst SquareChartGantt = createLucideIcon(\"square-chart-gantt\", __iconNode$4g);\nconst __iconNode$4f = [\n [\n \"path\",\n {\n d: \"M21 10.656V19a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h12.344\",\n key: \"2acyp4\"\n }\n ],\n [\n \"path\",\n {\n d: \"m9 11 3 3L22 4\",\n key: \"1pflzl\"\n }\n ]\n];\nconst SquareCheckBig = createLucideIcon(\"square-check-big\", __iconNode$4f);\nconst __iconNode$4e = [\n [\n \"rect\",\n {\n width: \"18\",\n height: \"18\",\n x: \"3\",\n y: \"3\",\n rx: \"2\",\n key: \"afitv7\"\n }\n ],\n [\n \"path\",\n {\n d: \"m9 12 2 2 4-4\",\n key: \"dzmm74\"\n }\n ]\n];\nconst SquareCheck = createLucideIcon(\"square-check\", __iconNode$4e);\nconst __iconNode$4d = [\n [\n \"rect\",\n {\n width: \"18\",\n height: \"18\",\n x: \"3\",\n y: \"3\",\n rx: \"2\",\n key: \"afitv7\"\n }\n ],\n [\n \"path\",\n {\n d: \"m16 10-4 4-4-4\",\n key: \"894hmk\"\n }\n ]\n];\nconst SquareChevronDown = createLucideIcon(\"square-chevron-down\", __iconNode$4d);\nconst __iconNode$4c = [\n [\n \"rect\",\n {\n width: \"18\",\n height: \"18\",\n x: \"3\",\n y: \"3\",\n rx: \"2\",\n key: \"afitv7\"\n }\n ],\n [\n \"path\",\n {\n d: \"m14 16-4-4 4-4\",\n key: \"ojs7w8\"\n }\n ]\n];\nconst SquareChevronLeft = createLucideIcon(\"square-chevron-left\", __iconNode$4c);\nconst __iconNode$4b = [\n [\n \"rect\",\n {\n width: \"18\",\n height: \"18\",\n x: \"3\",\n y: \"3\",\n rx: \"2\",\n key: \"afitv7\"\n }\n ],\n [\n \"path\",\n {\n d: \"m10 8 4 4-4 4\",\n key: \"1wy4r4\"\n }\n ]\n];\nconst SquareChevronRight = createLucideIcon(\"square-chevron-right\", __iconNode$4b);\nconst __iconNode$4a = [\n [\n \"rect\",\n {\n width: \"18\",\n height: \"18\",\n x: \"3\",\n y: \"3\",\n rx: \"2\",\n key: \"afitv7\"\n }\n ],\n [\n \"path\",\n {\n d: \"m8 14 4-4 4 4\",\n key: \"fy2ptz\"\n }\n ]\n];\nconst SquareChevronUp = createLucideIcon(\"square-chevron-up\", __iconNode$4a);\nconst __iconNode$49 = [\n [\n \"path\",\n {\n d: \"m10 9-3 3 3 3\",\n key: \"1oro0q\"\n }\n ],\n [\n \"path\",\n {\n d: \"m14 15 3-3-3-3\",\n key: \"bz13h7\"\n }\n ],\n [\n \"rect\",\n {\n x: \"3\",\n y: \"3\",\n width: \"18\",\n height: \"18\",\n rx: \"2\",\n key: \"h1oib\"\n }\n ]\n];\nconst SquareCode = createLucideIcon(\"square-code\", __iconNode$49);\nconst __iconNode$48 = [\n [\n \"path\",\n {\n d: \"M10 9.5 8 12l2 2.5\",\n key: \"3mjy60\"\n }\n ],\n [\n \"path\",\n {\n d: \"M14 21h1\",\n key: \"v9vybs\"\n }\n ],\n [\n \"path\",\n {\n d: \"m14 9.5 2 2.5-2 2.5\",\n key: \"1bir2l\"\n }\n ],\n [\n \"path\",\n {\n d: \"M5 21a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2\",\n key: \"as5y1o\"\n }\n ],\n [\n \"path\",\n {\n d: \"M9 21h1\",\n key: \"15o7lz\"\n }\n ]\n];\nconst SquareDashedBottomCode = createLucideIcon(\"square-dashed-bottom-code\", __iconNode$48);\nconst __iconNode$47 = [\n [\n \"path\",\n {\n d: \"M5 21a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2\",\n key: \"as5y1o\"\n }\n ],\n [\n \"path\",\n {\n d: \"M9 21h1\",\n key: \"15o7lz\"\n }\n ],\n [\n \"path\",\n {\n d: \"M14 21h1\",\n key: \"v9vybs\"\n }\n ]\n];\nconst SquareDashedBottom = createLucideIcon(\"square-dashed-bottom\", __iconNode$47);\nconst __iconNode$46 = [\n [\n \"path\",\n {\n d: \"M8 7v7\",\n key: \"1x2jlm\"\n }\n ],\n [\n \"path\",\n {\n d: \"M12 7v4\",\n key: \"xawao1\"\n }\n ],\n [\n \"path\",\n {\n d: \"M16 7v9\",\n key: \"1hp2iy\"\n }\n ],\n [\n \"path\",\n {\n d: \"M5 3a2 2 0 0 0-2 2\",\n key: \"y57alp\"\n }\n ],\n [\n \"path\",\n {\n d: \"M9 3h1\",\n key: \"1yesri\"\n }\n ],\n [\n \"path\",\n {\n d: \"M14 3h1\",\n key: \"1ec4yj\"\n }\n ],\n [\n \"path\",\n {\n d: \"M19 3a2 2 0 0 1 2 2\",\n key: \"18rm91\"\n }\n ],\n [\n \"path\",\n {\n d: \"M21 9v1\",\n key: \"mxsmne\"\n }\n ],\n [\n \"path\",\n {\n d: \"M21 14v1\",\n key: \"169vum\"\n }\n ],\n [\n \"path\",\n {\n d: \"M21 19a2 2 0 0 1-2 2\",\n key: \"1j7049\"\n }\n ],\n [\n \"path\",\n {\n d: \"M14 21h1\",\n key: \"v9vybs\"\n }\n ],\n [\n \"path\",\n {\n d: \"M9 21h1\",\n key: \"15o7lz\"\n }\n ],\n [\n \"path\",\n {\n d: \"M5 21a2 2 0 0 1-2-2\",\n key: \"sbafld\"\n }\n ],\n [\n \"path\",\n {\n d: \"M3 14v1\",\n key: \"vnatye\"\n }\n ],\n [\n \"path\",\n {\n d: \"M3 9v1\",\n key: \"1r0deq\"\n }\n ]\n];\nconst SquareDashedKanban = createLucideIcon(\"square-dashed-kanban\", __iconNode$46);\nconst __iconNode$45 = [\n [\n \"path\",\n {\n d: \"M12.034 12.681a.498.498 0 0 1 .647-.647l9 3.5a.5.5 0 0 1-.033.943l-3.444 1.068a1 1 0 0 0-.66.66l-1.067 3.443a.5.5 0 0 1-.943.033z\",\n key: \"xwnzip\"\n }\n ],\n [\n \"path\",\n {\n d: \"M5 3a2 2 0 0 0-2 2\",\n key: \"y57alp\"\n }\n ],\n [\n \"path\",\n {\n d: \"M19 3a2 2 0 0 1 2 2\",\n key: \"18rm91\"\n }\n ],\n [\n \"path\",\n {\n d: \"M5 21a2 2 0 0 1-2-2\",\n key: \"sbafld\"\n }\n ],\n [\n \"path\",\n {\n d: \"M9 3h1\",\n key: \"1yesri\"\n }\n ],\n [\n \"path\",\n {\n d: \"M9 21h2\",\n key: \"1qve2z\"\n }\n ],\n [\n \"path\",\n {\n d: \"M14 3h1\",\n key: \"1ec4yj\"\n }\n ],\n [\n \"path\",\n {\n d: \"M3 9v1\",\n key: \"1r0deq\"\n }\n ],\n [\n \"path\",\n {\n d: \"M21 9v2\",\n key: \"p14lih\"\n }\n ],\n [\n \"path\",\n {\n d: \"M3 14v1\",\n key: \"vnatye\"\n }\n ]\n];\nconst SquareDashedMousePointer = createLucideIcon(\"square-dashed-mouse-pointer\", __iconNode$45);\nconst __iconNode$44 = [\n [\n \"path\",\n {\n d: \"M14 21h1\",\n key: \"v9vybs\"\n }\n ],\n [\n \"path\",\n {\n d: \"M21 14v1\",\n key: \"169vum\"\n }\n ],\n [\n \"path\",\n {\n d: \"M21 19a2 2 0 0 1-2 2\",\n key: \"1j7049\"\n }\n ],\n [\n \"path\",\n {\n d: \"M21 9v1\",\n key: \"mxsmne\"\n }\n ],\n [\n \"path\",\n {\n d: \"M3 14v1\",\n key: \"vnatye\"\n }\n ],\n [\n \"path\",\n {\n d: \"M3 5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2\",\n key: \"89voep\"\n }\n ],\n [\n \"path\",\n {\n d: \"M3 9v1\",\n key: \"1r0deq\"\n }\n ],\n [\n \"path\",\n {\n d: \"M5 21a2 2 0 0 1-2-2\",\n key: \"sbafld\"\n }\n ],\n [\n \"path\",\n {\n d: \"M9 21h1\",\n key: \"15o7lz\"\n }\n ]\n];\nconst SquareDashedTopSolid = createLucideIcon(\"square-dashed-top-solid\", __iconNode$44);\nconst __iconNode$43 = [\n [\n \"path\",\n {\n d: \"M5 3a2 2 0 0 0-2 2\",\n key: \"y57alp\"\n }\n ],\n [\n \"path\",\n {\n d: \"M19 3a2 2 0 0 1 2 2\",\n key: \"18rm91\"\n }\n ],\n [\n \"path\",\n {\n d: \"M21 19a2 2 0 0 1-2 2\",\n key: \"1j7049\"\n }\n ],\n [\n \"path\",\n {\n d: \"M5 21a2 2 0 0 1-2-2\",\n key: \"sbafld\"\n }\n ],\n [\n \"path\",\n {\n d: \"M9 3h1\",\n key: \"1yesri\"\n }\n ],\n [\n \"path\",\n {\n d: \"M9 21h1\",\n key: \"15o7lz\"\n }\n ],\n [\n \"path\",\n {\n d: \"M14 3h1\",\n key: \"1ec4yj\"\n }\n ],\n [\n \"path\",\n {\n d: \"M14 21h1\",\n key: \"v9vybs\"\n }\n ],\n [\n \"path\",\n {\n d: \"M3 9v1\",\n key: \"1r0deq\"\n }\n ],\n [\n \"path\",\n {\n d: \"M21 9v1\",\n key: \"mxsmne\"\n }\n ],\n [\n \"path\",\n {\n d: \"M3 14v1\",\n key: \"vnatye\"\n }\n ],\n [\n \"path\",\n {\n d: \"M21 14v1\",\n key: \"169vum\"\n }\n ]\n];\nconst SquareDashed = createLucideIcon(\"square-dashed\", __iconNode$43);\nconst __iconNode$42 = [\n [\n \"rect\",\n {\n width: \"18\",\n height: \"18\",\n x: \"3\",\n y: \"3\",\n rx: \"2\",\n ry: \"2\",\n key: \"1m3agn\"\n }\n ],\n [\n \"line\",\n {\n x1: \"8\",\n x2: \"16\",\n y1: \"12\",\n y2: \"12\",\n key: \"1jonct\"\n }\n ],\n [\n \"line\",\n {\n x1: \"12\",\n x2: \"12\",\n y1: \"16\",\n y2: \"16\",\n key: \"aqc6ln\"\n }\n ],\n [\n \"line\",\n {\n x1: \"12\",\n x2: \"12\",\n y1: \"8\",\n y2: \"8\",\n key: \"1mkcni\"\n }\n ]\n];\nconst SquareDivide = createLucideIcon(\"square-divide\", __iconNode$42);\nconst __iconNode$41 = [\n [\n \"rect\",\n {\n width: \"18\",\n height: \"18\",\n x: \"3\",\n y: \"3\",\n rx: \"2\",\n key: \"afitv7\"\n }\n ],\n [\n \"circle\",\n {\n cx: \"12\",\n cy: \"12\",\n r: \"1\",\n key: \"41hilf\"\n }\n ]\n];\nconst SquareDot = createLucideIcon(\"square-dot\", __iconNode$41);\nconst __iconNode$40 = [\n [\n \"rect\",\n {\n width: \"18\",\n height: \"18\",\n x: \"3\",\n y: \"3\",\n rx: \"2\",\n key: \"afitv7\"\n }\n ],\n [\n \"path\",\n {\n d: \"M7 10h10\",\n key: \"1101jm\"\n }\n ],\n [\n \"path\",\n {\n d: \"M7 14h10\",\n key: \"1mhdw3\"\n }\n ]\n];\nconst SquareEqual = createLucideIcon(\"square-equal\", __iconNode$40);\nconst __iconNode$3$ = [\n [\n \"rect\",\n {\n width: \"18\",\n height: \"18\",\n x: \"3\",\n y: \"3\",\n rx: \"2\",\n ry: \"2\",\n key: \"1m3agn\"\n }\n ],\n [\n \"path\",\n {\n d: \"M9 17c2 0 2.8-1 2.8-2.8V10c0-2 1-3.3 3.2-3\",\n key: \"m1af9g\"\n }\n ],\n [\n \"path\",\n {\n d: \"M9 11.2h5.7\",\n key: \"3zgcl2\"\n }\n ]\n];\nconst SquareFunction = createLucideIcon(\"square-function\", __iconNode$3$);\nconst __iconNode$3_ = [\n [\n \"rect\",\n {\n width: \"18\",\n height: \"18\",\n x: \"3\",\n y: \"3\",\n rx: \"2\",\n key: \"afitv7\"\n }\n ],\n [\n \"path\",\n {\n d: \"M8 7v7\",\n key: \"1x2jlm\"\n }\n ],\n [\n \"path\",\n {\n d: \"M12 7v4\",\n key: \"xawao1\"\n }\n ],\n [\n \"path\",\n {\n d: \"M16 7v9\",\n key: \"1hp2iy\"\n }\n ]\n];\nconst SquareKanban = createLucideIcon(\"square-kanban\", __iconNode$3_);\nconst __iconNode$3Z = [\n [\n \"rect\",\n {\n width: \"18\",\n height: \"18\",\n x: \"3\",\n y: \"3\",\n rx: \"2\",\n key: \"afitv7\"\n }\n ],\n [\n \"path\",\n {\n d: \"M7 7v10\",\n key: \"d5nglc\"\n }\n ],\n [\n \"path\",\n {\n d: \"M11 7v10\",\n key: \"pptsnr\"\n }\n ],\n [\n \"path\",\n {\n d: \"m15 7 2 10\",\n key: \"1m7qm5\"\n }\n ]\n];\nconst SquareLibrary = createLucideIcon(\"square-library\", __iconNode$3Z);\nconst __iconNode$3Y = [\n [\n \"rect\",\n {\n width: \"18\",\n height: \"18\",\n x: \"3\",\n y: \"3\",\n rx: \"2\",\n key: \"afitv7\"\n }\n ],\n [\n \"path\",\n {\n d: \"M8 16V8l4 4 4-4v8\",\n key: \"141u4e\"\n }\n ]\n];\nconst SquareM = createLucideIcon(\"square-m\", __iconNode$3Y);\nconst __iconNode$3X = [\n [\n \"rect\",\n {\n width: \"18\",\n height: \"18\",\n x: \"3\",\n y: \"3\",\n rx: \"2\",\n key: \"afitv7\"\n }\n ],\n [\n \"path\",\n {\n d: \"M7 8h10\",\n key: \"1jw688\"\n }\n ],\n [\n \"path\",\n {\n d: \"M7 12h10\",\n key: \"b7w52i\"\n }\n ],\n [\n \"path\",\n {\n d: \"M7 16h10\",\n key: \"wp8him\"\n }\n ]\n];\nconst SquareMenu = createLucideIcon(\"square-menu\", __iconNode$3X);\nconst __iconNode$3W = [\n [\n \"rect\",\n {\n width: \"18\",\n height: \"18\",\n x: \"3\",\n y: \"3\",\n rx: \"2\",\n key: \"afitv7\"\n }\n ],\n [\n \"path\",\n {\n d: \"M8 12h8\",\n key: \"1wcyev\"\n }\n ]\n];\nconst SquareMinus = createLucideIcon(\"square-minus\", __iconNode$3W);\nconst __iconNode$3V = [\n [\n \"path\",\n {\n d: \"M12.034 12.681a.498.498 0 0 1 .647-.647l9 3.5a.5.5 0 0 1-.033.943l-3.444 1.068a1 1 0 0 0-.66.66l-1.067 3.443a.5.5 0 0 1-.943.033z\",\n key: \"xwnzip\"\n }\n ],\n [\n \"path\",\n {\n d: \"M21 11V5a2 2 0 0 0-2-2H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h6\",\n key: \"14rsvq\"\n }\n ]\n];\nconst SquareMousePointer = createLucideIcon(\"square-mouse-pointer\", __iconNode$3V);\nconst __iconNode$3U = [\n [\n \"path\",\n {\n d: \"M3.6 3.6A2 2 0 0 1 5 3h14a2 2 0 0 1 2 2v14a2 2 0 0 1-.59 1.41\",\n key: \"9l1ft6\"\n }\n ],\n [\n \"path\",\n {\n d: \"M3 8.7V19a2 2 0 0 0 2 2h10.3\",\n key: \"17knke\"\n }\n ],\n [\n \"path\",\n {\n d: \"m2 2 20 20\",\n key: \"1ooewy\"\n }\n ],\n [\n \"path\",\n {\n d: \"M13 13a3 3 0 1 0 0-6H9v2\",\n key: \"uoagbd\"\n }\n ],\n [\n \"path\",\n {\n d: \"M9 17v-2.3\",\n key: \"1jxgo2\"\n }\n ]\n];\nconst SquareParkingOff = createLucideIcon(\"square-parking-off\", __iconNode$3U);\nconst __iconNode$3T = [\n [\n \"rect\",\n {\n width: \"18\",\n height: \"18\",\n x: \"3\",\n y: \"3\",\n rx: \"2\",\n key: \"afitv7\"\n }\n ],\n [\n \"path\",\n {\n d: \"M9 17V7h4a3 3 0 0 1 0 6H9\",\n key: \"1dfk2c\"\n }\n ]\n];\nconst SquareParking = createLucideIcon(\"square-parking\", __iconNode$3T);\nconst __iconNode$3S = [\n [\n \"path\",\n {\n d: \"M12 3H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7\",\n key: \"1m0v6g\"\n }\n ],\n [\n \"path\",\n {\n d: \"M18.375 2.625a1 1 0 0 1 3 3l-9.013 9.014a2 2 0 0 1-.853.505l-2.873.84a.5.5 0 0 1-.62-.62l.84-2.873a2 2 0 0 1 .506-.852z\",\n key: \"ohrbg2\"\n }\n ]\n];\nconst SquarePen = createLucideIcon(\"square-pen\", __iconNode$3S);\nconst __iconNode$3R = [\n [\n \"rect\",\n {\n width: \"18\",\n height: \"18\",\n x: \"3\",\n y: \"3\",\n rx: \"2\",\n key: \"afitv7\"\n }\n ],\n [\n \"path\",\n {\n d: \"m15 9-6 6\",\n key: \"1uzhvr\"\n }\n ],\n [\n \"path\",\n {\n d: \"M9 9h.01\",\n key: \"1q5me6\"\n }\n ],\n [\n \"path\",\n {\n d: \"M15 15h.01\",\n key: \"lqbp3k\"\n }\n ]\n];\nconst SquarePercent = createLucideIcon(\"square-percent\", __iconNode$3R);\nconst __iconNode$3Q = [\n [\n \"rect\",\n {\n width: \"18\",\n height: \"18\",\n x: \"3\",\n y: \"3\",\n rx: \"2\",\n key: \"afitv7\"\n }\n ],\n [\n \"path\",\n {\n d: \"M7 7h10\",\n key: \"udp07y\"\n }\n ],\n [\n \"path\",\n {\n d: \"M10 7v10\",\n key: \"i1d9ee\"\n }\n ],\n [\n \"path\",\n {\n d: \"M16 17a2 2 0 0 1-2-2V7\",\n key: \"ftwdc7\"\n }\n ]\n];\nconst SquarePi = createLucideIcon(\"square-pi\", __iconNode$3Q);\nconst __iconNode$3P = [\n [\n \"rect\",\n {\n width: \"18\",\n height: \"18\",\n x: \"3\",\n y: \"3\",\n rx: \"2\",\n key: \"afitv7\"\n }\n ],\n [\n \"path\",\n {\n d: \"M12 12H9.5a2.5 2.5 0 0 1 0-5H17\",\n key: \"1l9586\"\n }\n ],\n [\n \"path\",\n {\n d: \"M12 7v10\",\n key: \"jspqdw\"\n }\n ],\n [\n \"path\",\n {\n d: \"M16 7v10\",\n key: \"lavkr4\"\n }\n ]\n];\nconst SquarePilcrow = createLucideIcon(\"square-pilcrow\", __iconNode$3P);\nconst __iconNode$3O = [\n [\n \"rect\",\n {\n width: \"18\",\n height: \"18\",\n x: \"3\",\n y: \"3\",\n rx: \"2\",\n key: \"afitv7\"\n }\n ],\n [\n \"path\",\n {\n d: \"m9 8 6 4-6 4Z\",\n key: \"f1r3lt\"\n }\n ]\n];\nconst SquarePlay = createLucideIcon(\"square-play\", __iconNode$3O);\nconst __iconNode$3N = [\n [\n \"rect\",\n {\n width: \"18\",\n height: \"18\",\n x: \"3\",\n y: \"3\",\n rx: \"2\",\n key: \"afitv7\"\n }\n ],\n [\n \"path\",\n {\n d: \"M8 12h8\",\n key: \"1wcyev\"\n }\n ],\n [\n \"path\",\n {\n d: \"M12 8v8\",\n key: \"napkw2\"\n }\n ]\n];\nconst SquarePlus = createLucideIcon(\"square-plus\", __iconNode$3N);\nconst __iconNode$3M = [\n [\n \"path\",\n {\n d: \"M12 7v4\",\n key: \"xawao1\"\n }\n ],\n [\n \"path\",\n {\n d: \"M7.998 9.003a5 5 0 1 0 8-.005\",\n key: \"1pek45\"\n }\n ],\n [\n \"rect\",\n {\n x: \"3\",\n y: \"3\",\n width: \"18\",\n height: \"18\",\n rx: \"2\",\n key: \"h1oib\"\n }\n ]\n];\nconst SquarePower = createLucideIcon(\"square-power\", __iconNode$3M);\nconst __iconNode$3L = [\n [\n \"path\",\n {\n d: \"M7 12h2l2 5 2-10h4\",\n key: \"1fxv6h\"\n }\n ],\n [\n \"rect\",\n {\n x: \"3\",\n y: \"3\",\n width: \"18\",\n height: \"18\",\n rx: \"2\",\n key: \"h1oib\"\n }\n ]\n];\nconst SquareRadical = createLucideIcon(\"square-radical\", __iconNode$3L);\nconst __iconNode$3K = [\n [\n \"path\",\n {\n d: \"M21 11a8 8 0 0 0-8-8\",\n key: \"1lxwo5\"\n }\n ],\n [\n \"path\",\n {\n d: \"M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h4\",\n key: \"1dv2y5\"\n }\n ]\n];\nconst SquareRoundCorner = createLucideIcon(\"square-round-corner\", __iconNode$3K);\nconst __iconNode$3J = [\n [\n \"rect\",\n {\n width: \"20\",\n height: \"20\",\n x: \"2\",\n y: \"2\",\n rx: \"2\",\n key: \"1btzen\"\n }\n ],\n [\n \"circle\",\n {\n cx: \"8\",\n cy: \"8\",\n r: \"2\",\n key: \"14cg06\"\n }\n ],\n [\n \"path\",\n {\n d: \"M9.414 9.414 12 12\",\n key: \"qz4lzr\"\n }\n ],\n [\n \"path\",\n {\n d: \"M14.8 14.8 18 18\",\n key: \"11flf1\"\n }\n ],\n [\n \"circle\",\n {\n cx: \"8\",\n cy: \"16\",\n r: \"2\",\n key: \"1acxsx\"\n }\n ],\n [\n \"path\",\n {\n d: \"m18 6-8.586 8.586\",\n key: \"11kzk1\"\n }\n ]\n];\nconst SquareScissors = createLucideIcon(\"square-scissors\", __iconNode$3J);\nconst __iconNode$3I = [\n [\n \"rect\",\n {\n width: \"18\",\n height: \"18\",\n x: \"3\",\n y: \"3\",\n rx: \"2\",\n key: \"afitv7\"\n }\n ],\n [\n \"path\",\n {\n d: \"M16 8.9V7H8l4 5-4 5h8v-1.9\",\n key: \"9nih0i\"\n }\n ]\n];\nconst SquareSigma = createLucideIcon(\"square-sigma\", __iconNode$3I);\nconst __iconNode$3H = [\n [\n \"rect\",\n {\n width: \"18\",\n height: \"18\",\n x: \"3\",\n y: \"3\",\n rx: \"2\",\n key: \"afitv7\"\n }\n ],\n [\n \"line\",\n {\n x1: \"9\",\n x2: \"15\",\n y1: \"15\",\n y2: \"9\",\n key: \"1dfufj\"\n }\n ]\n];\nconst SquareSlash = createLucideIcon(\"square-slash\", __iconNode$3H);\nconst __iconNode$3G = [\n [\n \"path\",\n {\n d: \"M8 19H5c-1 0-2-1-2-2V7c0-1 1-2 2-2h3\",\n key: \"lubmu8\"\n }\n ],\n [\n \"path\",\n {\n d: \"M16 5h3c1 0 2 1 2 2v10c0 1-1 2-2 2h-3\",\n key: \"1ag34g\"\n }\n ],\n [\n \"line\",\n {\n x1: \"12\",\n x2: \"12\",\n y1: \"4\",\n y2: \"20\",\n key: \"1tx1rr\"\n }\n ]\n];\nconst SquareSplitHorizontal = createLucideIcon(\"square-split-horizontal\", __iconNode$3G);\nconst __iconNode$3F = [\n [\n \"path\",\n {\n d: \"M5 8V5c0-1 1-2 2-2h10c1 0 2 1 2 2v3\",\n key: \"1pi83i\"\n }\n ],\n [\n \"path\",\n {\n d: \"M19 16v3c0 1-1 2-2 2H7c-1 0-2-1-2-2v-3\",\n key: \"ido5k7\"\n }\n ],\n [\n \"line\",\n {\n x1: \"4\",\n x2: \"20\",\n y1: \"12\",\n y2: \"12\",\n key: \"1e0a9i\"\n }\n ]\n];\nconst SquareSplitVertical = createLucideIcon(\"square-split-vertical\", __iconNode$3F);\nconst __iconNode$3E = [\n [\n \"rect\",\n {\n x: \"3\",\n y: \"3\",\n width: \"18\",\n height: \"18\",\n rx: \"2\",\n key: \"h1oib\"\n }\n ],\n [\n \"rect\",\n {\n x: \"8\",\n y: \"8\",\n width: \"8\",\n height: \"8\",\n rx: \"1\",\n key: \"z9xiuo\"\n }\n ]\n];\nconst SquareSquare = createLucideIcon(\"square-square\", __iconNode$3E);\nconst __iconNode$3D = [\n [\n \"path\",\n {\n d: \"M4 10c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h4c1.1 0 2 .9 2 2\",\n key: \"4i38lg\"\n }\n ],\n [\n \"path\",\n {\n d: \"M10 16c-1.1 0-2-.9-2-2v-4c0-1.1.9-2 2-2h4c1.1 0 2 .9 2 2\",\n key: \"mlte4a\"\n }\n ],\n [\n \"rect\",\n {\n width: \"8\",\n height: \"8\",\n x: \"14\",\n y: \"14\",\n rx: \"2\",\n key: \"1fa9i4\"\n }\n ]\n];\nconst SquareStack = createLucideIcon(\"square-stack\", __iconNode$3D);\nconst __iconNode$3C = [\n [\n \"path\",\n {\n d: \"m7 11 2-2-2-2\",\n key: \"1lz0vl\"\n }\n ],\n [\n \"path\",\n {\n d: \"M11 13h4\",\n key: \"1p7l4v\"\n }\n ],\n [\n \"rect\",\n {\n width: \"18\",\n height: \"18\",\n x: \"3\",\n y: \"3\",\n rx: \"2\",\n ry: \"2\",\n key: \"1m3agn\"\n }\n ]\n];\nconst SquareTerminal = createLucideIcon(\"square-terminal\", __iconNode$3C);\nconst __iconNode$3B = [\n [\n \"path\",\n {\n d: \"M18 21a6 6 0 0 0-12 0\",\n key: \"kaz2du\"\n }\n ],\n [\n \"circle\",\n {\n cx: \"12\",\n cy: \"11\",\n r: \"4\",\n key: \"1gt34v\"\n }\n ],\n [\n \"rect\",\n {\n width: \"18\",\n height: \"18\",\n x: \"3\",\n y: \"3\",\n rx: \"2\",\n key: \"afitv7\"\n }\n ]\n];\nconst SquareUserRound = createLucideIcon(\"square-user-round\", __iconNode$3B);\nconst __iconNode$3A = [\n [\n \"rect\",\n {\n width: \"18\",\n height: \"18\",\n x: \"3\",\n y: \"3\",\n rx: \"2\",\n key: \"afitv7\"\n }\n ],\n [\n \"circle\",\n {\n cx: \"12\",\n cy: \"10\",\n r: \"3\",\n key: \"ilqhr7\"\n }\n ],\n [\n \"path\",\n {\n d: \"M7 21v-2a2 2 0 0 1 2-2h6a2 2 0 0 1 2 2v2\",\n key: \"1m6ac2\"\n }\n ]\n];\nconst SquareUser = createLucideIcon(\"square-user\", __iconNode$3A);\nconst __iconNode$3z = [\n [\n \"rect\",\n {\n width: \"18\",\n height: \"18\",\n x: \"3\",\n y: \"3\",\n rx: \"2\",\n ry: \"2\",\n key: \"1m3agn\"\n }\n ],\n [\n \"path\",\n {\n d: \"m15 9-6 6\",\n key: \"1uzhvr\"\n }\n ],\n [\n \"path\",\n {\n d: \"m9 9 6 6\",\n key: \"z0biqf\"\n }\n ]\n];\nconst SquareX = createLucideIcon(\"square-x\", __iconNode$3z);\nconst __iconNode$3y = [\n [\n \"rect\",\n {\n width: \"18\",\n height: \"18\",\n x: \"3\",\n y: \"3\",\n rx: \"2\",\n key: \"afitv7\"\n }\n ]\n];\nconst Square = createLucideIcon(\"square\", __iconNode$3y);\nconst __iconNode$3x = [\n [\n \"path\",\n {\n d: \"M16 12v2a2 2 0 0 1-2 2H9a1 1 0 0 0-1 1v3a2 2 0 0 0 2 2h10a2 2 0 0 0 2-2V10a2 2 0 0 0-2-2h0\",\n key: \"1mcohs\"\n }\n ],\n [\n \"path\",\n {\n d: \"M4 16a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h10a2 2 0 0 1 2 2v3a1 1 0 0 1-1 1h-5a2 2 0 0 0-2 2v2\",\n key: \"1r1efp\"\n }\n ]\n];\nconst SquaresExclude = createLucideIcon(\"squares-exclude\", __iconNode$3x);\nconst __iconNode$3w = [\n [\n \"path\",\n {\n d: \"M10 22a2 2 0 0 1-2-2\",\n key: \"i7yj1i\"\n }\n ],\n [\n \"path\",\n {\n d: \"M14 2a2 2 0 0 1 2 2\",\n key: \"170a0m\"\n }\n ],\n [\n \"path\",\n {\n d: \"M16 22h-2\",\n key: \"18d249\"\n }\n ],\n [\n \"path\",\n {\n d: \"M2 10V8\",\n key: \"7yj4fe\"\n }\n ],\n [\n \"path\",\n {\n d: \"M2 4a2 2 0 0 1 2-2\",\n key: \"ddgnws\"\n }\n ],\n [\n \"path\",\n {\n d: \"M20 8a2 2 0 0 1 2 2\",\n key: \"1770vt\"\n }\n ],\n [\n \"path\",\n {\n d: \"M22 14v2\",\n key: \"iot8ja\"\n }\n ],\n [\n \"path\",\n {\n d: \"M22 20a2 2 0 0 1-2 2\",\n key: \"qj8q6g\"\n }\n ],\n [\n \"path\",\n {\n d: \"M4 16a2 2 0 0 1-2-2\",\n key: \"1dnafg\"\n }\n ],\n [\n \"path\",\n {\n d: \"M8 10a2 2 0 0 1 2-2h5a1 1 0 0 1 1 1v5a2 2 0 0 1-2 2H9a1 1 0 0 1-1-1z\",\n key: \"ci6f0b\"\n }\n ],\n [\n \"path\",\n {\n d: \"M8 2h2\",\n key: \"1gmkwm\"\n }\n ]\n];\nconst SquaresIntersect = createLucideIcon(\"squares-intersect\", __iconNode$3w);\nconst __iconNode$3v = [\n [\n \"path\",\n {\n d: \"M10 22a2 2 0 0 1-2-2\",\n key: \"i7yj1i\"\n }\n ],\n [\n \"path\",\n {\n d: \"M16 22h-2\",\n key: \"18d249\"\n }\n ],\n [\n \"path\",\n {\n d: \"M16 4a2 2 0 0 0-2-2H4a2 2 0 0 0-2 2v10a2 2 0 0 0 2 2h3a1 1 0 0 0 1-1v-5a2 2 0 0 1 2-2h5a1 1 0 0 0 1-1z\",\n key: \"1njgbb\"\n }\n ],\n [\n \"path\",\n {\n d: \"M20 8a2 2 0 0 1 2 2\",\n key: \"1770vt\"\n }\n ],\n [\n \"path\",\n {\n d: \"M22 14v2\",\n key: \"iot8ja\"\n }\n ],\n [\n \"path\",\n {\n d: \"M22 20a2 2 0 0 1-2 2\",\n key: \"qj8q6g\"\n }\n ]\n];\nconst SquaresSubtract = createLucideIcon(\"squares-subtract\", __iconNode$3v);\nconst __iconNode$3u = [\n [\n \"path\",\n {\n d: \"M4 16a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h10a2 2 0 0 1 2 2v3a1 1 0 0 0 1 1h3a2 2 0 0 1 2 2v10a2 2 0 0 1-2 2H10a2 2 0 0 1-2-2v-3a1 1 0 0 0-1-1z\",\n key: \"17jnth\"\n }\n ]\n];\nconst SquaresUnite = createLucideIcon(\"squares-unite\", __iconNode$3u);\nconst __iconNode$3t = [\n [\n \"path\",\n {\n d: \"M13.77 3.043a34 34 0 0 0-3.54 0\",\n key: \"1oaobr\"\n }\n ],\n [\n \"path\",\n {\n d: \"M13.771 20.956a33 33 0 0 1-3.541.001\",\n key: \"95iq0j\"\n }\n ],\n [\n \"path\",\n {\n d: \"M20.18 17.74c-.51 1.15-1.29 1.93-2.439 2.44\",\n key: \"1u6qty\"\n }\n ],\n [\n \"path\",\n {\n d: \"M20.18 6.259c-.51-1.148-1.291-1.929-2.44-2.438\",\n key: \"1ew6g6\"\n }\n ],\n [\n \"path\",\n {\n d: \"M20.957 10.23a33 33 0 0 1 0 3.54\",\n key: \"1l9npr\"\n }\n ],\n [\n \"path\",\n {\n d: \"M3.043 10.23a34 34 0 0 0 .001 3.541\",\n key: \"1it6jm\"\n }\n ],\n [\n \"path\",\n {\n d: \"M6.26 20.179c-1.15-.508-1.93-1.29-2.44-2.438\",\n key: \"14uchd\"\n }\n ],\n [\n \"path\",\n {\n d: \"M6.26 3.82c-1.149.51-1.93 1.291-2.44 2.44\",\n key: \"8k4agb\"\n }\n ]\n];\nconst SquircleDashed = createLucideIcon(\"squircle-dashed\", __iconNode$3t);\nconst __iconNode$3s = [\n [\n \"path\",\n {\n d: \"M12 3c7.2 0 9 1.8 9 9s-1.8 9-9 9-9-1.8-9-9 1.8-9 9-9\",\n key: \"garfkc\"\n }\n ]\n];\nconst Squircle = createLucideIcon(\"squircle\", __iconNode$3s);\nconst __iconNode$3r = [\n [\n \"path\",\n {\n d: \"M15.236 22a3 3 0 0 0-2.2-5\",\n key: \"21bitc\"\n }\n ],\n [\n \"path\",\n {\n d: \"M16 20a3 3 0 0 1 3-3h1a2 2 0 0 0 2-2v-2a4 4 0 0 0-4-4V4\",\n key: \"oh0fg0\"\n }\n ],\n [\n \"path\",\n {\n d: \"M18 13h.01\",\n key: \"9veqaj\"\n }\n ],\n [\n \"path\",\n {\n d: \"M18 6a4 4 0 0 0-4 4 7 7 0 0 0-7 7c0-5 4-5 4-10.5a4.5 4.5 0 1 0-9 0 2.5 2.5 0 0 0 5 0C7 10 3 11 3 17c0 2.8 2.2 5 5 5h10\",\n key: \"980v8a\"\n }\n ]\n];\nconst Squirrel = createLucideIcon(\"squirrel\", __iconNode$3r);\nconst __iconNode$3q = [\n [\n \"path\",\n {\n d: \"M14 13V8.5C14 7 15 7 15 5a3 3 0 0 0-6 0c0 2 1 2 1 3.5V13\",\n key: \"i9gjdv\"\n }\n ],\n [\n \"path\",\n {\n d: \"M20 15.5a2.5 2.5 0 0 0-2.5-2.5h-11A2.5 2.5 0 0 0 4 15.5V17a1 1 0 0 0 1 1h14a1 1 0 0 0 1-1z\",\n key: \"1vzg3v\"\n }\n ],\n [\n \"path\",\n {\n d: \"M5 22h14\",\n key: \"ehvnwv\"\n }\n ]\n];\nconst Stamp = createLucideIcon(\"stamp\", __iconNode$3q);\nconst __iconNode$3p = [\n [\n \"path\",\n {\n d: \"M12 18.338a2.1 2.1 0 0 0-.987.244L6.396 21.01a.53.53 0 0 1-.77-.56l.881-5.139a2.12 2.12 0 0 0-.611-1.879L2.16 9.795a.53.53 0 0 1 .294-.906l5.165-.755a2.12 2.12 0 0 0 1.597-1.16l2.309-4.679A.53.53 0 0 1 12 2\",\n key: \"2ksp49\"\n }\n ]\n];\nconst StarHalf = createLucideIcon(\"star-half\", __iconNode$3p);\nconst __iconNode$3o = [\n [\n \"path\",\n {\n d: \"M8.34 8.34 2 9.27l5 4.87L5.82 21 12 17.77 18.18 21l-.59-3.43\",\n key: \"16m0ql\"\n }\n ],\n [\n \"path\",\n {\n d: \"M18.42 12.76 22 9.27l-6.91-1L12 2l-1.44 2.91\",\n key: \"1vt8nq\"\n }\n ],\n [\n \"line\",\n {\n x1: \"2\",\n x2: \"22\",\n y1: \"2\",\n y2: \"22\",\n key: \"a6p6uj\"\n }\n ]\n];\nconst StarOff = createLucideIcon(\"star-off\", __iconNode$3o);\nconst __iconNode$3n = [\n [\n \"path\",\n {\n d: \"M11.525 2.295a.53.53 0 0 1 .95 0l2.31 4.679a2.123 2.123 0 0 0 1.595 1.16l5.166.756a.53.53 0 0 1 .294.904l-3.736 3.638a2.123 2.123 0 0 0-.611 1.878l.882 5.14a.53.53 0 0 1-.771.56l-4.618-2.428a2.122 2.122 0 0 0-1.973 0L6.396 21.01a.53.53 0 0 1-.77-.56l.881-5.139a2.122 2.122 0 0 0-.611-1.879L2.16 9.795a.53.53 0 0 1 .294-.906l5.165-.755a2.122 2.122 0 0 0 1.597-1.16z\",\n key: \"r04s7s\"\n }\n ]\n];\nconst Star = createLucideIcon(\"star\", __iconNode$3n);\nconst __iconNode$3m = [\n [\n \"line\",\n {\n x1: \"18\",\n x2: \"18\",\n y1: \"20\",\n y2: \"4\",\n key: \"cun8e5\"\n }\n ],\n [\n \"polygon\",\n {\n points: \"14,20 4,12 14,4\",\n key: \"ypakod\"\n }\n ]\n];\nconst StepBack = createLucideIcon(\"step-back\", __iconNode$3m);\nconst __iconNode$3l = [\n [\n \"line\",\n {\n x1: \"6\",\n x2: \"6\",\n y1: \"4\",\n y2: \"20\",\n key: \"fy8qot\"\n }\n ],\n [\n \"polygon\",\n {\n points: \"10,4 20,12 10,20\",\n key: \"1mc1pf\"\n }\n ]\n];\nconst StepForward = createLucideIcon(\"step-forward\", __iconNode$3l);\nconst __iconNode$3k = [\n [\n \"path\",\n {\n d: \"M11 2v2\",\n key: \"1539x4\"\n }\n ],\n [\n \"path\",\n {\n d: \"M5 2v2\",\n key: \"1yf1q8\"\n }\n ],\n [\n \"path\",\n {\n d: \"M5 3H4a2 2 0 0 0-2 2v4a6 6 0 0 0 12 0V5a2 2 0 0 0-2-2h-1\",\n key: \"rb5t3r\"\n }\n ],\n [\n \"path\",\n {\n d: \"M8 15a6 6 0 0 0 12 0v-3\",\n key: \"x18d4x\"\n }\n ],\n [\n \"circle\",\n {\n cx: \"20\",\n cy: \"10\",\n r: \"2\",\n key: \"ts1r5v\"\n }\n ]\n];\nconst Stethoscope = createLucideIcon(\"stethoscope\", __iconNode$3k);\nconst __iconNode$3j = [\n [\n \"path\",\n {\n d: \"M15.5 3H5a2 2 0 0 0-2 2v14c0 1.1.9 2 2 2h14a2 2 0 0 0 2-2V8.5L15.5 3Z\",\n key: \"1wis1t\"\n }\n ],\n [\n \"path\",\n {\n d: \"M14 3v4a2 2 0 0 0 2 2h4\",\n key: \"36rjfy\"\n }\n ],\n [\n \"path\",\n {\n d: \"M8 13h.01\",\n key: \"1sbv64\"\n }\n ],\n [\n \"path\",\n {\n d: \"M16 13h.01\",\n key: \"wip0gl\"\n }\n ],\n [\n \"path\",\n {\n d: \"M10 16s.8 1 2 1c1.3 0 2-1 2-1\",\n key: \"1vvgv3\"\n }\n ]\n];\nconst Sticker = createLucideIcon(\"sticker\", __iconNode$3j);\nconst __iconNode$3i = [\n [\n \"path\",\n {\n d: \"M16 3H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2V8Z\",\n key: \"qazsjp\"\n }\n ],\n [\n \"path\",\n {\n d: \"M15 3v4a2 2 0 0 0 2 2h4\",\n key: \"40519r\"\n }\n ]\n];\nconst StickyNote = createLucideIcon(\"sticky-note\", __iconNode$3i);\nconst __iconNode$3h = [\n [\n \"path\",\n {\n d: \"m2 7 4.41-4.41A2 2 0 0 1 7.83 2h8.34a2 2 0 0 1 1.42.59L22 7\",\n key: \"ztvudi\"\n }\n ],\n [\n \"path\",\n {\n d: \"M4 12v8a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2v-8\",\n key: \"1b2hhj\"\n }\n ],\n [\n \"path\",\n {\n d: \"M15 22v-4a2 2 0 0 0-2-2h-2a2 2 0 0 0-2 2v4\",\n key: \"2ebpfo\"\n }\n ],\n [\n \"path\",\n {\n d: \"M2 7h20\",\n key: \"1fcdvo\"\n }\n ],\n [\n \"path\",\n {\n d: \"M22 7v3a2 2 0 0 1-2 2a2.7 2.7 0 0 1-1.59-.63.7.7 0 0 0-.82 0A2.7 2.7 0 0 1 16 12a2.7 2.7 0 0 1-1.59-.63.7.7 0 0 0-.82 0A2.7 2.7 0 0 1 12 12a2.7 2.7 0 0 1-1.59-.63.7.7 0 0 0-.82 0A2.7 2.7 0 0 1 8 12a2.7 2.7 0 0 1-1.59-.63.7.7 0 0 0-.82 0A2.7 2.7 0 0 1 4 12a2 2 0 0 1-2-2V7\",\n key: \"6c3vgh\"\n }\n ]\n];\nconst Store = createLucideIcon(\"store\", __iconNode$3h);\nconst __iconNode$3g = [\n [\n \"rect\",\n {\n width: \"20\",\n height: \"6\",\n x: \"2\",\n y: \"4\",\n rx: \"2\",\n key: \"qdearl\"\n }\n ],\n [\n \"rect\",\n {\n width: \"20\",\n height: \"6\",\n x: \"2\",\n y: \"14\",\n rx: \"2\",\n key: \"1xrn6j\"\n }\n ]\n];\nconst StretchHorizontal = createLucideIcon(\"stretch-horizontal\", __iconNode$3g);\nconst __iconNode$3f = [\n [\n \"rect\",\n {\n width: \"6\",\n height: \"20\",\n x: \"4\",\n y: \"2\",\n rx: \"2\",\n key: \"19qu7m\"\n }\n ],\n [\n \"rect\",\n {\n width: \"6\",\n height: \"20\",\n x: \"14\",\n y: \"2\",\n rx: \"2\",\n key: \"24v0nk\"\n }\n ]\n];\nconst StretchVertical = createLucideIcon(\"stretch-vertical\", __iconNode$3f);\nconst __iconNode$3e = [\n [\n \"path\",\n {\n d: \"M16 4H9a3 3 0 0 0-2.83 4\",\n key: \"43sutm\"\n }\n ],\n [\n \"path\",\n {\n d: \"M14 12a4 4 0 0 1 0 8H6\",\n key: \"nlfj13\"\n }\n ],\n [\n \"line\",\n {\n x1: \"4\",\n x2: \"20\",\n y1: \"12\",\n y2: \"12\",\n key: \"1e0a9i\"\n }\n ]\n];\nconst Strikethrough = createLucideIcon(\"strikethrough\", __iconNode$3e);\nconst __iconNode$3d = [\n [\n \"path\",\n {\n d: \"m4 5 8 8\",\n key: \"1eunvl\"\n }\n ],\n [\n \"path\",\n {\n d: \"m12 5-8 8\",\n key: \"1ah0jp\"\n }\n ],\n [\n \"path\",\n {\n d: \"M20 19h-4c0-1.5.44-2 1.5-2.5S20 15.33 20 14c0-.47-.17-.93-.48-1.29a2.11 2.11 0 0 0-2.62-.44c-.42.24-.74.62-.9 1.07\",\n key: \"e8ta8j\"\n }\n ]\n];\nconst Subscript = createLucideIcon(\"subscript\", __iconNode$3d);\nconst __iconNode$3c = [\n [\n \"circle\",\n {\n cx: \"12\",\n cy: \"12\",\n r: \"4\",\n key: \"4exip2\"\n }\n ],\n [\n \"path\",\n {\n d: \"M12 4h.01\",\n key: \"1ujb9j\"\n }\n ],\n [\n \"path\",\n {\n d: \"M20 12h.01\",\n key: \"1ykeid\"\n }\n ],\n [\n \"path\",\n {\n d: \"M12 20h.01\",\n key: \"zekei9\"\n }\n ],\n [\n \"path\",\n {\n d: \"M4 12h.01\",\n key: \"158zrr\"\n }\n ],\n [\n \"path\",\n {\n d: \"M17.657 6.343h.01\",\n key: \"31pqzk\"\n }\n ],\n [\n \"path\",\n {\n d: \"M17.657 17.657h.01\",\n key: \"jehnf4\"\n }\n ],\n [\n \"path\",\n {\n d: \"M6.343 17.657h.01\",\n key: \"gdk6ow\"\n }\n ],\n [\n \"path\",\n {\n d: \"M6.343 6.343h.01\",\n key: \"1uurf0\"\n }\n ]\n];\nconst SunDim = createLucideIcon(\"sun-dim\", __iconNode$3c);\nconst __iconNode$3b = [\n [\n \"circle\",\n {\n cx: \"12\",\n cy: \"12\",\n r: \"4\",\n key: \"4exip2\"\n }\n ],\n [\n \"path\",\n {\n d: \"M12 3v1\",\n key: \"1asbbs\"\n }\n ],\n [\n \"path\",\n {\n d: \"M12 20v1\",\n key: \"1wcdkc\"\n }\n ],\n [\n \"path\",\n {\n d: \"M3 12h1\",\n key: \"lp3yf2\"\n }\n ],\n [\n \"path\",\n {\n d: \"M20 12h1\",\n key: \"1vloll\"\n }\n ],\n [\n \"path\",\n {\n d: \"m18.364 5.636-.707.707\",\n key: \"1hakh0\"\n }\n ],\n [\n \"path\",\n {\n d: \"m6.343 17.657-.707.707\",\n key: \"18m9nf\"\n }\n ],\n [\n \"path\",\n {\n d: \"m5.636 5.636.707.707\",\n key: \"1xv1c5\"\n }\n ],\n [\n \"path\",\n {\n d: \"m17.657 17.657.707.707\",\n key: \"vl76zb\"\n }\n ]\n];\nconst SunMedium = createLucideIcon(\"sun-medium\", __iconNode$3b);\nconst __iconNode$3a = [\n [\n \"path\",\n {\n d: \"M12 2v2\",\n key: \"tus03m\"\n }\n ],\n [\n \"path\",\n {\n d: \"M13 8.129A4 4 0 0 1 15.873 11\",\n key: \"my0cn3\"\n }\n ],\n [\n \"path\",\n {\n d: \"m19 5-1.256 1.256\",\n key: \"1yg6a6\"\n }\n ],\n [\n \"path\",\n {\n d: \"M20 12h2\",\n key: \"1q8mjw\"\n }\n ],\n [\n \"path\",\n {\n d: \"M9 8a5 5 0 1 0 7 7 7 7 0 1 1-7-7\",\n key: \"4qob92\"\n }\n ]\n];\nconst SunMoon = createLucideIcon(\"sun-moon\", __iconNode$3a);\nconst __iconNode$39 = [\n [\n \"path\",\n {\n d: \"M10 21v-1\",\n key: \"1u8rkd\"\n }\n ],\n [\n \"path\",\n {\n d: \"M10 4V3\",\n key: \"pkzwkn\"\n }\n ],\n [\n \"path\",\n {\n d: \"M10 9a3 3 0 0 0 0 6\",\n key: \"gv75dk\"\n }\n ],\n [\n \"path\",\n {\n d: \"m14 20 1.25-2.5L18 18\",\n key: \"1chtki\"\n }\n ],\n [\n \"path\",\n {\n d: \"m14 4 1.25 2.5L18 6\",\n key: \"1b4wsy\"\n }\n ],\n [\n \"path\",\n {\n d: \"m17 21-3-6 1.5-3H22\",\n key: \"o5qa3v\"\n }\n ],\n [\n \"path\",\n {\n d: \"m17 3-3 6 1.5 3\",\n key: \"11697g\"\n }\n ],\n [\n \"path\",\n {\n d: \"M2 12h1\",\n key: \"1uaihz\"\n }\n ],\n [\n \"path\",\n {\n d: \"m20 10-1.5 2 1.5 2\",\n key: \"1swlpi\"\n }\n ],\n [\n \"path\",\n {\n d: \"m3.64 18.36.7-.7\",\n key: \"105rm9\"\n }\n ],\n [\n \"path\",\n {\n d: \"m4.34 6.34-.7-.7\",\n key: \"d3unjp\"\n }\n ]\n];\nconst SunSnow = createLucideIcon(\"sun-snow\", __iconNode$39);\nconst __iconNode$38 = [\n [\n \"circle\",\n {\n cx: \"12\",\n cy: \"12\",\n r: \"4\",\n key: \"4exip2\"\n }\n ],\n [\n \"path\",\n {\n d: \"M12 2v2\",\n key: \"tus03m\"\n }\n ],\n [\n \"path\",\n {\n d: \"M12 20v2\",\n key: \"1lh1kg\"\n }\n ],\n [\n \"path\",\n {\n d: \"m4.93 4.93 1.41 1.41\",\n key: \"149t6j\"\n }\n ],\n [\n \"path\",\n {\n d: \"m17.66 17.66 1.41 1.41\",\n key: \"ptbguv\"\n }\n ],\n [\n \"path\",\n {\n d: \"M2 12h2\",\n key: \"1t8f8n\"\n }\n ],\n [\n \"path\",\n {\n d: \"M20 12h2\",\n key: \"1q8mjw\"\n }\n ],\n [\n \"path\",\n {\n d: \"m6.34 17.66-1.41 1.41\",\n key: \"1m8zz5\"\n }\n ],\n [\n \"path\",\n {\n d: \"m19.07 4.93-1.41 1.41\",\n key: \"1shlcs\"\n }\n ]\n];\nconst Sun = createLucideIcon(\"sun\", __iconNode$38);\nconst __iconNode$37 = [\n [\n \"path\",\n {\n d: \"M12 2v8\",\n key: \"1q4o3n\"\n }\n ],\n [\n \"path\",\n {\n d: \"m4.93 10.93 1.41 1.41\",\n key: \"2a7f42\"\n }\n ],\n [\n \"path\",\n {\n d: \"M2 18h2\",\n key: \"j10viu\"\n }\n ],\n [\n \"path\",\n {\n d: \"M20 18h2\",\n key: \"wocana\"\n }\n ],\n [\n \"path\",\n {\n d: \"m19.07 10.93-1.41 1.41\",\n key: \"15zs5n\"\n }\n ],\n [\n \"path\",\n {\n d: \"M22 22H2\",\n key: \"19qnx5\"\n }\n ],\n [\n \"path\",\n {\n d: \"m8 6 4-4 4 4\",\n key: \"ybng9g\"\n }\n ],\n [\n \"path\",\n {\n d: \"M16 18a4 4 0 0 0-8 0\",\n key: \"1lzouq\"\n }\n ]\n];\nconst Sunrise = createLucideIcon(\"sunrise\", __iconNode$37);\nconst __iconNode$36 = [\n [\n \"path\",\n {\n d: \"m4 19 8-8\",\n key: \"hr47gm\"\n }\n ],\n [\n \"path\",\n {\n d: \"m12 19-8-8\",\n key: \"1dhhmo\"\n }\n ],\n [\n \"path\",\n {\n d: \"M20 12h-4c0-1.5.442-2 1.5-2.5S20 8.334 20 7.002c0-.472-.17-.93-.484-1.29a2.105 2.105 0 0 0-2.617-.436c-.42.239-.738.614-.899 1.06\",\n key: \"1dfcux\"\n }\n ]\n];\nconst Superscript = createLucideIcon(\"superscript\", __iconNode$36);\nconst __iconNode$35 = [\n [\n \"path\",\n {\n d: \"M12 10V2\",\n key: \"16sf7g\"\n }\n ],\n [\n \"path\",\n {\n d: \"m4.93 10.93 1.41 1.41\",\n key: \"2a7f42\"\n }\n ],\n [\n \"path\",\n {\n d: \"M2 18h2\",\n key: \"j10viu\"\n }\n ],\n [\n \"path\",\n {\n d: \"M20 18h2\",\n key: \"wocana\"\n }\n ],\n [\n \"path\",\n {\n d: \"m19.07 10.93-1.41 1.41\",\n key: \"15zs5n\"\n }\n ],\n [\n \"path\",\n {\n d: \"M22 22H2\",\n key: \"19qnx5\"\n }\n ],\n [\n \"path\",\n {\n d: \"m16 6-4 4-4-4\",\n key: \"6wukr\"\n }\n ],\n [\n \"path\",\n {\n d: \"M16 18a4 4 0 0 0-8 0\",\n key: \"1lzouq\"\n }\n ]\n];\nconst Sunset = createLucideIcon(\"sunset\", __iconNode$35);\nconst __iconNode$34 = [\n [\n \"path\",\n {\n d: \"M11 17a4 4 0 0 1-8 0V5a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2Z\",\n key: \"1ldrpk\"\n }\n ],\n [\n \"path\",\n {\n d: \"M16.7 13H19a2 2 0 0 1 2 2v4a2 2 0 0 1-2 2H7\",\n key: \"11i5po\"\n }\n ],\n [\n \"path\",\n {\n d: \"M 7 17h.01\",\n key: \"1euzgo\"\n }\n ],\n [\n \"path\",\n {\n d: \"m11 8 2.3-2.3a2.4 2.4 0 0 1 3.404.004L18.6 7.6a2.4 2.4 0 0 1 .026 3.434L9.9 19.8\",\n key: \"o2gii7\"\n }\n ]\n];\nconst SwatchBook = createLucideIcon(\"swatch-book\", __iconNode$34);\nconst __iconNode$33 = [\n [\n \"path\",\n {\n d: \"M10 21V3h8\",\n key: \"br2l0g\"\n }\n ],\n [\n \"path\",\n {\n d: \"M6 16h9\",\n key: \"2py0wn\"\n }\n ],\n [\n \"path\",\n {\n d: \"M10 9.5h7\",\n key: \"13dmhz\"\n }\n ]\n];\nconst SwissFranc = createLucideIcon(\"swiss-franc\", __iconNode$33);\nconst __iconNode$32 = [\n [\n \"path\",\n {\n d: \"M11 19H4a2 2 0 0 1-2-2V7a2 2 0 0 1 2-2h5\",\n key: \"mtk2lu\"\n }\n ],\n [\n \"path\",\n {\n d: \"M13 5h7a2 2 0 0 1 2 2v10a2 2 0 0 1-2 2h-5\",\n key: \"120jsl\"\n }\n ],\n [\n \"circle\",\n {\n cx: \"12\",\n cy: \"12\",\n r: \"3\",\n key: \"1v7zrd\"\n }\n ],\n [\n \"path\",\n {\n d: \"m18 22-3-3 3-3\",\n key: \"kgdoj7\"\n }\n ],\n [\n \"path\",\n {\n d: \"m6 2 3 3-3 3\",\n key: \"1fnbkv\"\n }\n ]\n];\nconst SwitchCamera = createLucideIcon(\"switch-camera\", __iconNode$32);\nconst __iconNode$31 = [\n [\n \"polyline\",\n {\n points: \"14.5 17.5 3 6 3 3 6 3 17.5 14.5\",\n key: \"1hfsw2\"\n }\n ],\n [\n \"line\",\n {\n x1: \"13\",\n x2: \"19\",\n y1: \"19\",\n y2: \"13\",\n key: \"1vrmhu\"\n }\n ],\n [\n \"line\",\n {\n x1: \"16\",\n x2: \"20\",\n y1: \"16\",\n y2: \"20\",\n key: \"1bron3\"\n }\n ],\n [\n \"line\",\n {\n x1: \"19\",\n x2: \"21\",\n y1: \"21\",\n y2: \"19\",\n key: \"13pww6\"\n }\n ]\n];\nconst Sword = createLucideIcon(\"sword\", __iconNode$31);\nconst __iconNode$30 = [\n [\n \"polyline\",\n {\n points: \"14.5 17.5 3 6 3 3 6 3 17.5 14.5\",\n key: \"1hfsw2\"\n }\n ],\n [\n \"line\",\n {\n x1: \"13\",\n x2: \"19\",\n y1: \"19\",\n y2: \"13\",\n key: \"1vrmhu\"\n }\n ],\n [\n \"line\",\n {\n x1: \"16\",\n x2: \"20\",\n y1: \"16\",\n y2: \"20\",\n key: \"1bron3\"\n }\n ],\n [\n \"line\",\n {\n x1: \"19\",\n x2: \"21\",\n y1: \"21\",\n y2: \"19\",\n key: \"13pww6\"\n }\n ],\n [\n \"polyline\",\n {\n points: \"14.5 6.5 18 3 21 3 21 6 17.5 9.5\",\n key: \"hbey2j\"\n }\n ],\n [\n \"line\",\n {\n x1: \"5\",\n x2: \"9\",\n y1: \"14\",\n y2: \"18\",\n key: \"1hf58s\"\n }\n ],\n [\n \"line\",\n {\n x1: \"7\",\n x2: \"4\",\n y1: \"17\",\n y2: \"20\",\n key: \"pidxm4\"\n }\n ],\n [\n \"line\",\n {\n x1: \"3\",\n x2: \"5\",\n y1: \"19\",\n y2: \"21\",\n key: \"1pehsh\"\n }\n ]\n];\nconst Swords = createLucideIcon(\"swords\", __iconNode$30);\nconst __iconNode$2$ = [\n [\n \"path\",\n {\n d: \"m18 2 4 4\",\n key: \"22kx64\"\n }\n ],\n [\n \"path\",\n {\n d: \"m17 7 3-3\",\n key: \"1w1zoj\"\n }\n ],\n [\n \"path\",\n {\n d: \"M19 9 8.7 19.3c-1 1-2.5 1-3.4 0l-.6-.6c-1-1-1-2.5 0-3.4L15 5\",\n key: \"1exhtz\"\n }\n ],\n [\n \"path\",\n {\n d: \"m9 11 4 4\",\n key: \"rovt3i\"\n }\n ],\n [\n \"path\",\n {\n d: \"m5 19-3 3\",\n key: \"59f2uf\"\n }\n ],\n [\n \"path\",\n {\n d: \"m14 4 6 6\",\n key: \"yqp9t2\"\n }\n ]\n];\nconst Syringe = createLucideIcon(\"syringe\", __iconNode$2$);\nconst __iconNode$2_ = [\n [\n \"path\",\n {\n d: \"M9 3H5a2 2 0 0 0-2 2v4m6-6h10a2 2 0 0 1 2 2v4M9 3v18m0 0h10a2 2 0 0 0 2-2V9M9 21H5a2 2 0 0 1-2-2V9m0 0h18\",\n key: \"gugj83\"\n }\n ]\n];\nconst Table2 = createLucideIcon(\"table-2\", __iconNode$2_);\nconst __iconNode$2Z = [\n [\n \"path\",\n {\n d: \"M12 21v-6\",\n key: \"lihzve\"\n }\n ],\n [\n \"path\",\n {\n d: \"M12 9V3\",\n key: \"da5inc\"\n }\n ],\n [\n \"path\",\n {\n d: \"M3 15h18\",\n key: \"5xshup\"\n }\n ],\n [\n \"path\",\n {\n d: \"M3 9h18\",\n key: \"1pudct\"\n }\n ],\n [\n \"rect\",\n {\n width: \"18\",\n height: \"18\",\n x: \"3\",\n y: \"3\",\n rx: \"2\",\n key: \"afitv7\"\n }\n ]\n];\nconst TableCellsMerge = createLucideIcon(\"table-cells-merge\", __iconNode$2Z);\nconst __iconNode$2Y = [\n [\n \"path\",\n {\n d: \"M12 15V9\",\n key: \"8c7uyn\"\n }\n ],\n [\n \"path\",\n {\n d: \"M3 15h18\",\n key: \"5xshup\"\n }\n ],\n [\n \"path\",\n {\n d: \"M3 9h18\",\n key: \"1pudct\"\n }\n ],\n [\n \"rect\",\n {\n width: \"18\",\n height: \"18\",\n x: \"3\",\n y: \"3\",\n rx: \"2\",\n key: \"afitv7\"\n }\n ]\n];\nconst TableCellsSplit = createLucideIcon(\"table-cells-split\", __iconNode$2Y);\nconst __iconNode$2X = [\n [\n \"path\",\n {\n d: \"M14 14v2\",\n key: \"w2a1xv\"\n }\n ],\n [\n \"path\",\n {\n d: \"M14 20v2\",\n key: \"1lq872\"\n }\n ],\n [\n \"path\",\n {\n d: \"M14 2v2\",\n key: \"6buw04\"\n }\n ],\n [\n \"path\",\n {\n d: \"M14 8v2\",\n key: \"i67w9a\"\n }\n ],\n [\n \"path\",\n {\n d: \"M2 15h8\",\n key: \"82wtch\"\n }\n ],\n [\n \"path\",\n {\n d: \"M2 3h6a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H2\",\n key: \"up0l64\"\n }\n ],\n [\n \"path\",\n {\n d: \"M2 9h8\",\n key: \"yelfik\"\n }\n ],\n [\n \"path\",\n {\n d: \"M22 15h-4\",\n key: \"1es58f\"\n }\n ],\n [\n \"path\",\n {\n d: \"M22 3h-2a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h2\",\n key: \"pdjoqf\"\n }\n ],\n [\n \"path\",\n {\n d: \"M22 9h-4\",\n key: \"1luja7\"\n }\n ],\n [\n \"path\",\n {\n d: \"M5 3v18\",\n key: \"14hmio\"\n }\n ]\n];\nconst TableColumnsSplit = createLucideIcon(\"table-columns-split\", __iconNode$2X);\nconst __iconNode$2W = [\n [\n \"path\",\n {\n d: \"M16 12H3\",\n key: \"1a2rj7\"\n }\n ],\n [\n \"path\",\n {\n d: \"M16 18H3\",\n key: \"12xzn7\"\n }\n ],\n [\n \"path\",\n {\n d: \"M16 6H3\",\n key: \"1wxfjs\"\n }\n ],\n [\n \"path\",\n {\n d: \"M21 12h.01\",\n key: \"msek7k\"\n }\n ],\n [\n \"path\",\n {\n d: \"M21 18h.01\",\n key: \"1e8rq1\"\n }\n ],\n [\n \"path\",\n {\n d: \"M21 6h.01\",\n key: \"1koanj\"\n }\n ]\n];\nconst TableOfContents = createLucideIcon(\"table-of-contents\", __iconNode$2W);\nconst __iconNode$2V = [\n [\n \"path\",\n {\n d: \"M15 3v18\",\n key: \"14nvp0\"\n }\n ],\n [\n \"rect\",\n {\n width: \"18\",\n height: \"18\",\n x: \"3\",\n y: \"3\",\n rx: \"2\",\n key: \"afitv7\"\n }\n ],\n [\n \"path\",\n {\n d: \"M21 9H3\",\n key: \"1338ky\"\n }\n ],\n [\n \"path\",\n {\n d: \"M21 15H3\",\n key: \"9uk58r\"\n }\n ]\n];\nconst TableProperties = createLucideIcon(\"table-properties\", __iconNode$2V);\nconst __iconNode$2U = [\n [\n \"path\",\n {\n d: \"M14 10h2\",\n key: \"1lstlu\"\n }\n ],\n [\n \"path\",\n {\n d: \"M15 22v-8\",\n key: \"1fwwgm\"\n }\n ],\n [\n \"path\",\n {\n d: \"M15 2v4\",\n key: \"1044rn\"\n }\n ],\n [\n \"path\",\n {\n d: \"M2 10h2\",\n key: \"1r8dkt\"\n }\n ],\n [\n \"path\",\n {\n d: \"M20 10h2\",\n key: \"1ug425\"\n }\n ],\n [\n \"path\",\n {\n d: \"M3 19h18\",\n key: \"awlh7x\"\n }\n ],\n [\n \"path\",\n {\n d: \"M3 22v-6a2 2 135 0 1 2-2h14a2 2 45 0 1 2 2v6\",\n key: \"ibqhof\"\n }\n ],\n [\n \"path\",\n {\n d: \"M3 2v2a2 2 45 0 0 2 2h14a2 2 135 0 0 2-2V2\",\n key: \"1uenja\"\n }\n ],\n [\n \"path\",\n {\n d: \"M8 10h2\",\n key: \"66od0\"\n }\n ],\n [\n \"path\",\n {\n d: \"M9 22v-8\",\n key: \"fmnu31\"\n }\n ],\n [\n \"path\",\n {\n d: \"M9 2v4\",\n key: \"j1yeou\"\n }\n ]\n];\nconst TableRowsSplit = createLucideIcon(\"table-rows-split\", __iconNode$2U);\nconst __iconNode$2T = [\n [\n \"path\",\n {\n d: \"M12 3v18\",\n key: \"108xh3\"\n }\n ],\n [\n \"rect\",\n {\n width: \"18\",\n height: \"18\",\n x: \"3\",\n y: \"3\",\n rx: \"2\",\n key: \"afitv7\"\n }\n ],\n [\n \"path\",\n {\n d: \"M3 9h18\",\n key: \"1pudct\"\n }\n ],\n [\n \"path\",\n {\n d: \"M3 15h18\",\n key: \"5xshup\"\n }\n ]\n];\nconst Table = createLucideIcon(\"table\", __iconNode$2T);\nconst __iconNode$2S = [\n [\n \"rect\",\n {\n width: \"10\",\n height: \"14\",\n x: \"3\",\n y: \"8\",\n rx: \"2\",\n key: \"1vrsiq\"\n }\n ],\n [\n \"path\",\n {\n d: \"M5 4a2 2 0 0 1 2-2h12a2 2 0 0 1 2 2v16a2 2 0 0 1-2 2h-2.4\",\n key: \"1j4zmg\"\n }\n ],\n [\n \"path\",\n {\n d: \"M8 18h.01\",\n key: \"lrp35t\"\n }\n ]\n];\nconst TabletSmartphone = createLucideIcon(\"tablet-smartphone\", __iconNode$2S);\nconst __iconNode$2R = [\n [\n \"rect\",\n {\n width: \"16\",\n height: \"20\",\n x: \"4\",\n y: \"2\",\n rx: \"2\",\n ry: \"2\",\n key: \"76otgf\"\n }\n ],\n [\n \"line\",\n {\n x1: \"12\",\n x2: \"12.01\",\n y1: \"18\",\n y2: \"18\",\n key: \"1dp563\"\n }\n ]\n];\nconst Tablet = createLucideIcon(\"tablet\", __iconNode$2R);\nconst __iconNode$2Q = [\n [\n \"circle\",\n {\n cx: \"7\",\n cy: \"7\",\n r: \"5\",\n key: \"x29byf\"\n }\n ],\n [\n \"circle\",\n {\n cx: \"17\",\n cy: \"17\",\n r: \"5\",\n key: \"1op1d2\"\n }\n ],\n [\n \"path\",\n {\n d: \"M12 17h10\",\n key: \"ls21zv\"\n }\n ],\n [\n \"path\",\n {\n d: \"m3.46 10.54 7.08-7.08\",\n key: \"1rehiu\"\n }\n ]\n];\nconst Tablets = createLucideIcon(\"tablets\", __iconNode$2Q);\nconst __iconNode$2P = [\n [\n \"path\",\n {\n d: \"M12.586 2.586A2 2 0 0 0 11.172 2H4a2 2 0 0 0-2 2v7.172a2 2 0 0 0 .586 1.414l8.704 8.704a2.426 2.426 0 0 0 3.42 0l6.58-6.58a2.426 2.426 0 0 0 0-3.42z\",\n key: \"vktsd0\"\n }\n ],\n [\n \"circle\",\n {\n cx: \"7.5\",\n cy: \"7.5\",\n r: \".5\",\n fill: \"currentColor\",\n key: \"kqv944\"\n }\n ]\n];\nconst Tag = createLucideIcon(\"tag\", __iconNode$2P);\nconst __iconNode$2O = [\n [\n \"path\",\n {\n d: \"m15 5 6.3 6.3a2.4 2.4 0 0 1 0 3.4L17 19\",\n key: \"1cbfv1\"\n }\n ],\n [\n \"path\",\n {\n d: \"M9.586 5.586A2 2 0 0 0 8.172 5H3a1 1 0 0 0-1 1v5.172a2 2 0 0 0 .586 1.414L8.29 18.29a2.426 2.426 0 0 0 3.42 0l3.58-3.58a2.426 2.426 0 0 0 0-3.42z\",\n key: \"135mg7\"\n }\n ],\n [\n \"circle\",\n {\n cx: \"6.5\",\n cy: \"9.5\",\n r: \".5\",\n fill: \"currentColor\",\n key: \"5pm5xn\"\n }\n ]\n];\nconst Tags = createLucideIcon(\"tags\", __iconNode$2O);\nconst __iconNode$2N = [\n [\n \"path\",\n {\n d: \"M4 4v16\",\n key: \"6qkkli\"\n }\n ]\n];\nconst Tally1 = createLucideIcon(\"tally-1\", __iconNode$2N);\nconst __iconNode$2M = [\n [\n \"path\",\n {\n d: \"M4 4v16\",\n key: \"6qkkli\"\n }\n ],\n [\n \"path\",\n {\n d: \"M9 4v16\",\n key: \"81ygyz\"\n }\n ]\n];\nconst Tally2 = createLucideIcon(\"tally-2\", __iconNode$2M);\nconst __iconNode$2L = [\n [\n \"path\",\n {\n d: \"M4 4v16\",\n key: \"6qkkli\"\n }\n ],\n [\n \"path\",\n {\n d: \"M9 4v16\",\n key: \"81ygyz\"\n }\n ],\n [\n \"path\",\n {\n d: \"M14 4v16\",\n key: \"12vmem\"\n }\n ]\n];\nconst Tally3 = createLucideIcon(\"tally-3\", __iconNode$2L);\nconst __iconNode$2K = [\n [\n \"path\",\n {\n d: \"M4 4v16\",\n key: \"6qkkli\"\n }\n ],\n [\n \"path\",\n {\n d: \"M9 4v16\",\n key: \"81ygyz\"\n }\n ],\n [\n \"path\",\n {\n d: \"M14 4v16\",\n key: \"12vmem\"\n }\n ],\n [\n \"path\",\n {\n d: \"M19 4v16\",\n key: \"8ij5ei\"\n }\n ]\n];\nconst Tally4 = createLucideIcon(\"tally-4\", __iconNode$2K);\nconst __iconNode$2J = [\n [\n \"path\",\n {\n d: \"M4 4v16\",\n key: \"6qkkli\"\n }\n ],\n [\n \"path\",\n {\n d: \"M9 4v16\",\n key: \"81ygyz\"\n }\n ],\n [\n \"path\",\n {\n d: \"M14 4v16\",\n key: \"12vmem\"\n }\n ],\n [\n \"path\",\n {\n d: \"M19 4v16\",\n key: \"8ij5ei\"\n }\n ],\n [\n \"path\",\n {\n d: \"M22 6 2 18\",\n key: \"h9moai\"\n }\n ]\n];\nconst Tally5 = createLucideIcon(\"tally-5\", __iconNode$2J);\nconst __iconNode$2I = [\n [\n \"circle\",\n {\n cx: \"17\",\n cy: \"4\",\n r: \"2\",\n key: \"y5j2s2\"\n }\n ],\n [\n \"path\",\n {\n d: \"M15.59 5.41 5.41 15.59\",\n key: \"l0vprr\"\n }\n ],\n [\n \"circle\",\n {\n cx: \"4\",\n cy: \"17\",\n r: \"2\",\n key: \"9p4efm\"\n }\n ],\n [\n \"path\",\n {\n d: \"M12 22s-4-9-1.5-11.5S22 12 22 12\",\n key: \"1twk4o\"\n }\n ]\n];\nconst Tangent = createLucideIcon(\"tangent\", __iconNode$2I);\nconst __iconNode$2H = [\n [\n \"circle\",\n {\n cx: \"12\",\n cy: \"12\",\n r: \"10\",\n key: \"1mglay\"\n }\n ],\n [\n \"circle\",\n {\n cx: \"12\",\n cy: \"12\",\n r: \"6\",\n key: \"1vlfrh\"\n }\n ],\n [\n \"circle\",\n {\n cx: \"12\",\n cy: \"12\",\n r: \"2\",\n key: \"1c9p78\"\n }\n ]\n];\nconst Target = createLucideIcon(\"target\", __iconNode$2H);\nconst __iconNode$2G = [\n [\n \"path\",\n {\n d: \"m10.065 12.493-6.18 1.318a.934.934 0 0 1-1.108-.702l-.537-2.15a1.07 1.07 0 0 1 .691-1.265l13.504-4.44\",\n key: \"k4qptu\"\n }\n ],\n [\n \"path\",\n {\n d: \"m13.56 11.747 4.332-.924\",\n key: \"19l80z\"\n }\n ],\n [\n \"path\",\n {\n d: \"m16 21-3.105-6.21\",\n key: \"7oh9d\"\n }\n ],\n [\n \"path\",\n {\n d: \"M16.485 5.94a2 2 0 0 1 1.455-2.425l1.09-.272a1 1 0 0 1 1.212.727l1.515 6.06a1 1 0 0 1-.727 1.213l-1.09.272a2 2 0 0 1-2.425-1.455z\",\n key: \"m7xp4m\"\n }\n ],\n [\n \"path\",\n {\n d: \"m6.158 8.633 1.114 4.456\",\n key: \"74o979\"\n }\n ],\n [\n \"path\",\n {\n d: \"m8 21 3.105-6.21\",\n key: \"1fvxut\"\n }\n ],\n [\n \"circle\",\n {\n cx: \"12\",\n cy: \"13\",\n r: \"2\",\n key: \"1c1ljs\"\n }\n ]\n];\nconst Telescope = createLucideIcon(\"telescope\", __iconNode$2G);\nconst __iconNode$2F = [\n [\n \"circle\",\n {\n cx: \"4\",\n cy: \"4\",\n r: \"2\",\n key: \"bt5ra8\"\n }\n ],\n [\n \"path\",\n {\n d: \"m14 5 3-3 3 3\",\n key: \"1sorif\"\n }\n ],\n [\n \"path\",\n {\n d: \"m14 10 3-3 3 3\",\n key: \"1jyi9h\"\n }\n ],\n [\n \"path\",\n {\n d: \"M17 14V2\",\n key: \"8ymqnk\"\n }\n ],\n [\n \"path\",\n {\n d: \"M17 14H7l-5 8h20Z\",\n key: \"13ar7p\"\n }\n ],\n [\n \"path\",\n {\n d: \"M8 14v8\",\n key: \"1ghmqk\"\n }\n ],\n [\n \"path\",\n {\n d: \"m9 14 5 8\",\n key: \"13pgi6\"\n }\n ]\n];\nconst TentTree = createLucideIcon(\"tent-tree\", __iconNode$2F);\nconst __iconNode$2E = [\n [\n \"path\",\n {\n d: \"M3.5 21 14 3\",\n key: \"1szst5\"\n }\n ],\n [\n \"path\",\n {\n d: \"M20.5 21 10 3\",\n key: \"1310c3\"\n }\n ],\n [\n \"path\",\n {\n d: \"M15.5 21 12 15l-3.5 6\",\n key: \"1ddtfw\"\n }\n ],\n [\n \"path\",\n {\n d: \"M2 21h20\",\n key: \"1nyx9w\"\n }\n ]\n];\nconst Tent = createLucideIcon(\"tent\", __iconNode$2E);\nconst __iconNode$2D = [\n [\n \"path\",\n {\n d: \"M12 19h8\",\n key: \"baeox8\"\n }\n ],\n [\n \"path\",\n {\n d: \"m4 17 6-6-6-6\",\n key: \"1yngyt\"\n }\n ]\n];\nconst Terminal = createLucideIcon(\"terminal\", __iconNode$2D);\nconst __iconNode$2C = [\n [\n \"path\",\n {\n d: \"M21 7 6.82 21.18a2.83 2.83 0 0 1-3.99-.01a2.83 2.83 0 0 1 0-4L17 3\",\n key: \"1ub6xw\"\n }\n ],\n [\n \"path\",\n {\n d: \"m16 2 6 6\",\n key: \"1gw87d\"\n }\n ],\n [\n \"path\",\n {\n d: \"M12 16H4\",\n key: \"1cjfip\"\n }\n ]\n];\nconst TestTubeDiagonal = createLucideIcon(\"test-tube-diagonal\", __iconNode$2C);\nconst __iconNode$2B = [\n [\n \"path\",\n {\n d: \"M14.5 2v17.5c0 1.4-1.1 2.5-2.5 2.5c-1.4 0-2.5-1.1-2.5-2.5V2\",\n key: \"125lnx\"\n }\n ],\n [\n \"path\",\n {\n d: \"M8.5 2h7\",\n key: \"csnxdl\"\n }\n ],\n [\n \"path\",\n {\n d: \"M14.5 16h-5\",\n key: \"1ox875\"\n }\n ]\n];\nconst TestTube = createLucideIcon(\"test-tube\", __iconNode$2B);\nconst __iconNode$2A = [\n [\n \"path\",\n {\n d: \"M9 2v17.5A2.5 2.5 0 0 1 6.5 22A2.5 2.5 0 0 1 4 19.5V2\",\n key: \"1hjrqt\"\n }\n ],\n [\n \"path\",\n {\n d: \"M20 2v17.5a2.5 2.5 0 0 1-2.5 2.5a2.5 2.5 0 0 1-2.5-2.5V2\",\n key: \"16lc8n\"\n }\n ],\n [\n \"path\",\n {\n d: \"M3 2h7\",\n key: \"7s29d5\"\n }\n ],\n [\n \"path\",\n {\n d: \"M14 2h7\",\n key: \"7sicin\"\n }\n ],\n [\n \"path\",\n {\n d: \"M9 16H4\",\n key: \"1bfye3\"\n }\n ],\n [\n \"path\",\n {\n d: \"M20 16h-5\",\n key: \"ddnjpe\"\n }\n ]\n];\nconst TestTubes = createLucideIcon(\"test-tubes\", __iconNode$2A);\nconst __iconNode$2z = [\n [\n \"path\",\n {\n d: \"M12 20h-1a2 2 0 0 1-2-2 2 2 0 0 1-2 2H6\",\n key: \"1528k5\"\n }\n ],\n [\n \"path\",\n {\n d: \"M13 8h7a2 2 0 0 1 2 2v4a2 2 0 0 1-2 2h-7\",\n key: \"13ksps\"\n }\n ],\n [\n \"path\",\n {\n d: \"M5 16H4a2 2 0 0 1-2-2v-4a2 2 0 0 1 2-2h1\",\n key: \"1n9rhb\"\n }\n ],\n [\n \"path\",\n {\n d: \"M6 4h1a2 2 0 0 1 2 2 2 2 0 0 1 2-2h1\",\n key: \"1mj8rg\"\n }\n ],\n [\n \"path\",\n {\n d: \"M9 6v12\",\n key: \"velyjx\"\n }\n ]\n];\nconst TextCursorInput = createLucideIcon(\"text-cursor-input\", __iconNode$2z);\nconst __iconNode$2y = [\n [\n \"path\",\n {\n d: \"M17 6H3\",\n key: \"16j9eg\"\n }\n ],\n [\n \"path\",\n {\n d: \"M21 12H8\",\n key: \"scolzb\"\n }\n ],\n [\n \"path\",\n {\n d: \"M21 18H8\",\n key: \"1wfozv\"\n }\n ],\n [\n \"path\",\n {\n d: \"M3 12v6\",\n key: \"fv4c87\"\n }\n ]\n];\nconst TextQuote = createLucideIcon(\"text-quote\", __iconNode$2y);\nconst __iconNode$2x = [\n [\n \"path\",\n {\n d: \"M17 22h-1a4 4 0 0 1-4-4V6a4 4 0 0 1 4-4h1\",\n key: \"uvaxm9\"\n }\n ],\n [\n \"path\",\n {\n d: \"M7 22h1a4 4 0 0 0 4-4v-1\",\n key: \"11xy8d\"\n }\n ],\n [\n \"path\",\n {\n d: \"M7 2h1a4 4 0 0 1 4 4v1\",\n key: \"1uw06m\"\n }\n ]\n];\nconst TextCursor = createLucideIcon(\"text-cursor\", __iconNode$2x);\nconst __iconNode$2w = [\n [\n \"path\",\n {\n d: \"M21 6H3\",\n key: \"1jwq7v\"\n }\n ],\n [\n \"path\",\n {\n d: \"M10 12H3\",\n key: \"1ulcyk\"\n }\n ],\n [\n \"path\",\n {\n d: \"M10 18H3\",\n key: \"13769t\"\n }\n ],\n [\n \"circle\",\n {\n cx: \"17\",\n cy: \"15\",\n r: \"3\",\n key: \"1upz2a\"\n }\n ],\n [\n \"path\",\n {\n d: \"m21 19-1.9-1.9\",\n key: \"dwi7p8\"\n }\n ]\n];\nconst TextSearch = createLucideIcon(\"text-search\", __iconNode$2w);\nconst __iconNode$2v = [\n [\n \"path\",\n {\n d: \"M14 21h1\",\n key: \"v9vybs\"\n }\n ],\n [\n \"path\",\n {\n d: \"M14 3h1\",\n key: \"1ec4yj\"\n }\n ],\n [\n \"path\",\n {\n d: \"M19 3a2 2 0 0 1 2 2\",\n key: \"18rm91\"\n }\n ],\n [\n \"path\",\n {\n d: \"M21 14v1\",\n key: \"169vum\"\n }\n ],\n [\n \"path\",\n {\n d: \"M21 19a2 2 0 0 1-2 2\",\n key: \"1j7049\"\n }\n ],\n [\n \"path\",\n {\n d: \"M21 9v1\",\n key: \"mxsmne\"\n }\n ],\n [\n \"path\",\n {\n d: \"M3 14v1\",\n key: \"vnatye\"\n }\n ],\n [\n \"path\",\n {\n d: \"M3 9v1\",\n key: \"1r0deq\"\n }\n ],\n [\n \"path\",\n {\n d: \"M5 21a2 2 0 0 1-2-2\",\n key: \"sbafld\"\n }\n ],\n [\n \"path\",\n {\n d: \"M5 3a2 2 0 0 0-2 2\",\n key: \"y57alp\"\n }\n ],\n [\n \"path\",\n {\n d: \"M7 12h10\",\n key: \"b7w52i\"\n }\n ],\n [\n \"path\",\n {\n d: \"M7 16h6\",\n key: \"1vyc9m\"\n }\n ],\n [\n \"path\",\n {\n d: \"M7 8h8\",\n key: \"1jbsf9\"\n }\n ],\n [\n \"path\",\n {\n d: \"M9 21h1\",\n key: \"15o7lz\"\n }\n ],\n [\n \"path\",\n {\n d: \"M9 3h1\",\n key: \"1yesri\"\n }\n ]\n];\nconst TextSelect = createLucideIcon(\"text-select\", __iconNode$2v);\nconst __iconNode$2u = [\n [\n \"path\",\n {\n d: \"M15 18H3\",\n key: \"olowqp\"\n }\n ],\n [\n \"path\",\n {\n d: \"M17 6H3\",\n key: \"16j9eg\"\n }\n ],\n [\n \"path\",\n {\n d: \"M21 12H3\",\n key: \"2avoz0\"\n }\n ]\n];\nconst Text = createLucideIcon(\"text\", __iconNode$2u);\nconst __iconNode$2t = [\n [\n \"path\",\n {\n d: \"M2 10s3-3 3-8\",\n key: \"3xiif0\"\n }\n ],\n [\n \"path\",\n {\n d: \"M22 10s-3-3-3-8\",\n key: \"ioaa5q\"\n }\n ],\n [\n \"path\",\n {\n d: \"M10 2c0 4.4-3.6 8-8 8\",\n key: \"16fkpi\"\n }\n ],\n [\n \"path\",\n {\n d: \"M14 2c0 4.4 3.6 8 8 8\",\n key: \"b9eulq\"\n }\n ],\n [\n \"path\",\n {\n d: \"M2 10s2 2 2 5\",\n key: \"1au1lb\"\n }\n ],\n [\n \"path\",\n {\n d: \"M22 10s-2 2-2 5\",\n key: \"qi2y5e\"\n }\n ],\n [\n \"path\",\n {\n d: \"M8 15h8\",\n key: \"45n4r\"\n }\n ],\n [\n \"path\",\n {\n d: \"M2 22v-1a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v1\",\n key: \"1vsc2m\"\n }\n ],\n [\n \"path\",\n {\n d: \"M14 22v-1a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v1\",\n key: \"hrha4u\"\n }\n ]\n];\nconst Theater = createLucideIcon(\"theater\", __iconNode$2t);\nconst __iconNode$2s = [\n [\n \"path\",\n {\n d: \"m10 20-1.25-2.5L6 18\",\n key: \"18frcb\"\n }\n ],\n [\n \"path\",\n {\n d: \"M10 4 8.75 6.5 6 6\",\n key: \"7mghy3\"\n }\n ],\n [\n \"path\",\n {\n d: \"M10.585 15H10\",\n key: \"4nqulp\"\n }\n ],\n [\n \"path\",\n {\n d: \"M2 12h6.5L10 9\",\n key: \"kv9z4n\"\n }\n ],\n [\n \"path\",\n {\n d: \"M20 14.54a4 4 0 1 1-4 0V4a2 2 0 0 1 4 0z\",\n key: \"yu0u2z\"\n }\n ],\n [\n \"path\",\n {\n d: \"m4 10 1.5 2L4 14\",\n key: \"k9enpj\"\n }\n ],\n [\n \"path\",\n {\n d: \"m7 21 3-6-1.5-3\",\n key: \"j8hb9u\"\n }\n ],\n [\n \"path\",\n {\n d: \"m7 3 3 6h2\",\n key: \"1bbqgq\"\n }\n ]\n];\nconst ThermometerSnowflake = createLucideIcon(\"thermometer-snowflake\", __iconNode$2s);\nconst __iconNode$2r = [\n [\n \"path\",\n {\n d: \"M12 9a4 4 0 0 0-2 7.5\",\n key: \"1jvsq6\"\n }\n ],\n [\n \"path\",\n {\n d: \"M12 3v2\",\n key: \"1w22ol\"\n }\n ],\n [\n \"path\",\n {\n d: \"m6.6 18.4-1.4 1.4\",\n key: \"w2yidj\"\n }\n ],\n [\n \"path\",\n {\n d: \"M20 4v10.54a4 4 0 1 1-4 0V4a2 2 0 0 1 4 0Z\",\n key: \"iof6y5\"\n }\n ],\n [\n \"path\",\n {\n d: \"M4 13H2\",\n key: \"118le4\"\n }\n ],\n [\n \"path\",\n {\n d: \"M6.34 7.34 4.93 5.93\",\n key: \"1brd51\"\n }\n ]\n];\nconst ThermometerSun = createLucideIcon(\"thermometer-sun\", __iconNode$2r);\nconst __iconNode$2q = [\n [\n \"path\",\n {\n d: \"M14 4v10.54a4 4 0 1 1-4 0V4a2 2 0 0 1 4 0Z\",\n key: \"17jzev\"\n }\n ]\n];\nconst Thermometer = createLucideIcon(\"thermometer\", __iconNode$2q);\nconst __iconNode$2p = [\n [\n \"path\",\n {\n d: \"M17 14V2\",\n key: \"8ymqnk\"\n }\n ],\n [\n \"path\",\n {\n d: \"M9 18.12 10 14H4.17a2 2 0 0 1-1.92-2.56l2.33-8A2 2 0 0 1 6.5 2H20a2 2 0 0 1 2 2v8a2 2 0 0 1-2 2h-2.76a2 2 0 0 0-1.79 1.11L12 22a3.13 3.13 0 0 1-3-3.88Z\",\n key: \"m61m77\"\n }\n ]\n];\nconst ThumbsDown = createLucideIcon(\"thumbs-down\", __iconNode$2p);\nconst __iconNode$2o = [\n [\n \"path\",\n {\n d: \"M7 10v12\",\n key: \"1qc93n\"\n }\n ],\n [\n \"path\",\n {\n d: \"M15 5.88 14 10h5.83a2 2 0 0 1 1.92 2.56l-2.33 8A2 2 0 0 1 17.5 22H4a2 2 0 0 1-2-2v-8a2 2 0 0 1 2-2h2.76a2 2 0 0 0 1.79-1.11L12 2a3.13 3.13 0 0 1 3 3.88Z\",\n key: \"emmmcr\"\n }\n ]\n];\nconst ThumbsUp = createLucideIcon(\"thumbs-up\", __iconNode$2o);\nconst __iconNode$2n = [\n [\n \"path\",\n {\n d: \"M2 9a3 3 0 0 1 0 6v2a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2v-2a3 3 0 0 1 0-6V7a2 2 0 0 0-2-2H4a2 2 0 0 0-2 2Z\",\n key: \"qn84l0\"\n }\n ],\n [\n \"path\",\n {\n d: \"m9 12 2 2 4-4\",\n key: \"dzmm74\"\n }\n ]\n];\nconst TicketCheck = createLucideIcon(\"ticket-check\", __iconNode$2n);\nconst __iconNode$2m = [\n [\n \"path\",\n {\n d: \"M2 9a3 3 0 0 1 0 6v2a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2v-2a3 3 0 0 1 0-6V7a2 2 0 0 0-2-2H4a2 2 0 0 0-2 2Z\",\n key: \"qn84l0\"\n }\n ],\n [\n \"path\",\n {\n d: \"M9 12h6\",\n key: \"1c52cq\"\n }\n ]\n];\nconst TicketMinus = createLucideIcon(\"ticket-minus\", __iconNode$2m);\nconst __iconNode$2l = [\n [\n \"path\",\n {\n d: \"M2 9a3 3 0 1 1 0 6v2a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2v-2a3 3 0 1 1 0-6V7a2 2 0 0 0-2-2H4a2 2 0 0 0-2 2Z\",\n key: \"1l48ns\"\n }\n ],\n [\n \"path\",\n {\n d: \"M9 9h.01\",\n key: \"1q5me6\"\n }\n ],\n [\n \"path\",\n {\n d: \"m15 9-6 6\",\n key: \"1uzhvr\"\n }\n ],\n [\n \"path\",\n {\n d: \"M15 15h.01\",\n key: \"lqbp3k\"\n }\n ]\n];\nconst TicketPercent = createLucideIcon(\"ticket-percent\", __iconNode$2l);\nconst __iconNode$2k = [\n [\n \"path\",\n {\n d: \"M2 9a3 3 0 0 1 0 6v2a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2v-2a3 3 0 0 1 0-6V7a2 2 0 0 0-2-2H4a2 2 0 0 0-2 2Z\",\n key: \"qn84l0\"\n }\n ],\n [\n \"path\",\n {\n d: \"M9 12h6\",\n key: \"1c52cq\"\n }\n ],\n [\n \"path\",\n {\n d: \"M12 9v6\",\n key: \"199k2o\"\n }\n ]\n];\nconst TicketPlus = createLucideIcon(\"ticket-plus\", __iconNode$2k);\nconst __iconNode$2j = [\n [\n \"path\",\n {\n d: \"M2 9a3 3 0 0 1 0 6v2a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2v-2a3 3 0 0 1 0-6V7a2 2 0 0 0-2-2H4a2 2 0 0 0-2 2Z\",\n key: \"qn84l0\"\n }\n ],\n [\n \"path\",\n {\n d: \"m9.5 14.5 5-5\",\n key: \"qviqfa\"\n }\n ]\n];\nconst TicketSlash = createLucideIcon(\"ticket-slash\", __iconNode$2j);\nconst __iconNode$2i = [\n [\n \"path\",\n {\n d: \"M2 9a3 3 0 0 1 0 6v2a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2v-2a3 3 0 0 1 0-6V7a2 2 0 0 0-2-2H4a2 2 0 0 0-2 2Z\",\n key: \"qn84l0\"\n }\n ],\n [\n \"path\",\n {\n d: \"m9.5 14.5 5-5\",\n key: \"qviqfa\"\n }\n ],\n [\n \"path\",\n {\n d: \"m9.5 9.5 5 5\",\n key: \"18nt4w\"\n }\n ]\n];\nconst TicketX = createLucideIcon(\"ticket-x\", __iconNode$2i);\nconst __iconNode$2h = [\n [\n \"path\",\n {\n d: \"M2 9a3 3 0 0 1 0 6v2a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2v-2a3 3 0 0 1 0-6V7a2 2 0 0 0-2-2H4a2 2 0 0 0-2 2Z\",\n key: \"qn84l0\"\n }\n ],\n [\n \"path\",\n {\n d: \"M13 5v2\",\n key: \"dyzc3o\"\n }\n ],\n [\n \"path\",\n {\n d: \"M13 17v2\",\n key: \"1ont0d\"\n }\n ],\n [\n \"path\",\n {\n d: \"M13 11v2\",\n key: \"1wjjxi\"\n }\n ]\n];\nconst Ticket = createLucideIcon(\"ticket\", __iconNode$2h);\nconst __iconNode$2g = [\n [\n \"path\",\n {\n d: \"M10.5 17h1.227a2 2 0 0 0 1.345-.52L18 12\",\n key: \"16muxl\"\n }\n ],\n [\n \"path\",\n {\n d: \"m12 13.5 3.75.5\",\n key: \"1i9qhk\"\n }\n ],\n [\n \"path\",\n {\n d: \"m4.5 8 10.58-5.06a1 1 0 0 1 1.342.488L18.5 8\",\n key: \"12lg5p\"\n }\n ],\n [\n \"path\",\n {\n d: \"M6 10V8\",\n key: \"1y41hn\"\n }\n ],\n [\n \"path\",\n {\n d: \"M6 14v1\",\n key: \"cao2tf\"\n }\n ],\n [\n \"path\",\n {\n d: \"M6 19v2\",\n key: \"1loha6\"\n }\n ],\n [\n \"rect\",\n {\n x: \"2\",\n y: \"8\",\n width: \"20\",\n height: \"13\",\n rx: \"2\",\n key: \"p3bz5l\"\n }\n ]\n];\nconst TicketsPlane = createLucideIcon(\"tickets-plane\", __iconNode$2g);\nconst __iconNode$2f = [\n [\n \"path\",\n {\n d: \"m4.5 8 10.58-5.06a1 1 0 0 1 1.342.488L18.5 8\",\n key: \"12lg5p\"\n }\n ],\n [\n \"path\",\n {\n d: \"M6 10V8\",\n key: \"1y41hn\"\n }\n ],\n [\n \"path\",\n {\n d: \"M6 14v1\",\n key: \"cao2tf\"\n }\n ],\n [\n \"path\",\n {\n d: \"M6 19v2\",\n key: \"1loha6\"\n }\n ],\n [\n \"rect\",\n {\n x: \"2\",\n y: \"8\",\n width: \"20\",\n height: \"13\",\n rx: \"2\",\n key: \"p3bz5l\"\n }\n ]\n];\nconst Tickets = createLucideIcon(\"tickets\", __iconNode$2f);\nconst __iconNode$2e = [\n [\n \"path\",\n {\n d: \"M10 2h4\",\n key: \"n1abiw\"\n }\n ],\n [\n \"path\",\n {\n d: \"M4.6 11a8 8 0 0 0 1.7 8.7 8 8 0 0 0 8.7 1.7\",\n key: \"10he05\"\n }\n ],\n [\n \"path\",\n {\n d: \"M7.4 7.4a8 8 0 0 1 10.3 1 8 8 0 0 1 .9 10.2\",\n key: \"15f7sh\"\n }\n ],\n [\n \"path\",\n {\n d: \"m2 2 20 20\",\n key: \"1ooewy\"\n }\n ],\n [\n \"path\",\n {\n d: \"M12 12v-2\",\n key: \"fwoke6\"\n }\n ]\n];\nconst TimerOff = createLucideIcon(\"timer-off\", __iconNode$2e);\nconst __iconNode$2d = [\n [\n \"path\",\n {\n d: \"M10 2h4\",\n key: \"n1abiw\"\n }\n ],\n [\n \"path\",\n {\n d: \"M12 14v-4\",\n key: \"1evpnu\"\n }\n ],\n [\n \"path\",\n {\n d: \"M4 13a8 8 0 0 1 8-7 8 8 0 1 1-5.3 14L4 17.6\",\n key: \"1ts96g\"\n }\n ],\n [\n \"path\",\n {\n d: \"M9 17H4v5\",\n key: \"8t5av\"\n }\n ]\n];\nconst TimerReset = createLucideIcon(\"timer-reset\", __iconNode$2d);\nconst __iconNode$2c = [\n [\n \"line\",\n {\n x1: \"10\",\n x2: \"14\",\n y1: \"2\",\n y2: \"2\",\n key: \"14vaq8\"\n }\n ],\n [\n \"line\",\n {\n x1: \"12\",\n x2: \"15\",\n y1: \"14\",\n y2: \"11\",\n key: \"17fdiu\"\n }\n ],\n [\n \"circle\",\n {\n cx: \"12\",\n cy: \"14\",\n r: \"8\",\n key: \"1e1u0o\"\n }\n ]\n];\nconst Timer = createLucideIcon(\"timer\", __iconNode$2c);\nconst __iconNode$2b = [\n [\n \"circle\",\n {\n cx: \"9\",\n cy: \"12\",\n r: \"3\",\n key: \"u3jwor\"\n }\n ],\n [\n \"rect\",\n {\n width: \"20\",\n height: \"14\",\n x: \"2\",\n y: \"5\",\n rx: \"7\",\n key: \"g7kal2\"\n }\n ]\n];\nconst ToggleLeft = createLucideIcon(\"toggle-left\", __iconNode$2b);\nconst __iconNode$2a = [\n [\n \"circle\",\n {\n cx: \"15\",\n cy: \"12\",\n r: \"3\",\n key: \"1afu0r\"\n }\n ],\n [\n \"rect\",\n {\n width: \"20\",\n height: \"14\",\n x: \"2\",\n y: \"5\",\n rx: \"7\",\n key: \"g7kal2\"\n }\n ]\n];\nconst ToggleRight = createLucideIcon(\"toggle-right\", __iconNode$2a);\nconst __iconNode$29 = [\n [\n \"path\",\n {\n d: \"M7 12h13a1 1 0 0 1 1 1 5 5 0 0 1-5 5h-.598a.5.5 0 0 0-.424.765l1.544 2.47a.5.5 0 0 1-.424.765H5.402a.5.5 0 0 1-.424-.765L7 18\",\n key: \"kc4kqr\"\n }\n ],\n [\n \"path\",\n {\n d: \"M8 18a5 5 0 0 1-5-5V4a2 2 0 0 1 2-2h8a2 2 0 0 1 2 2v8\",\n key: \"1tqs57\"\n }\n ]\n];\nconst Toilet = createLucideIcon(\"toilet\", __iconNode$29);\nconst __iconNode$28 = [\n [\n \"path\",\n {\n d: \"M10 15h4\",\n key: \"192ueg\"\n }\n ],\n [\n \"path\",\n {\n d: \"m14.817 10.995-.971-1.45 1.034-1.232a2 2 0 0 0-2.025-3.238l-1.82.364L9.91 3.885a2 2 0 0 0-3.625.748L6.141 6.55l-1.725.426a2 2 0 0 0-.19 3.756l.657.27\",\n key: \"xbnumr\"\n }\n ],\n [\n \"path\",\n {\n d: \"m18.822 10.995 2.26-5.38a1 1 0 0 0-.557-1.318L16.954 2.9a1 1 0 0 0-1.281.533l-.924 2.122\",\n key: \"eaw7gc\"\n }\n ],\n [\n \"path\",\n {\n d: \"M4 12.006A1 1 0 0 1 4.994 11H19a1 1 0 0 1 1 1v7a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2z\",\n key: \"1vaooh\"\n }\n ]\n];\nconst ToolCase = createLucideIcon(\"tool-case\", __iconNode$28);\nconst __iconNode$27 = [\n [\n \"path\",\n {\n d: \"M21 4H3\",\n key: \"1hwok0\"\n }\n ],\n [\n \"path\",\n {\n d: \"M18 8H6\",\n key: \"41n648\"\n }\n ],\n [\n \"path\",\n {\n d: \"M19 12H9\",\n key: \"1g4lpz\"\n }\n ],\n [\n \"path\",\n {\n d: \"M16 16h-6\",\n key: \"1j5d54\"\n }\n ],\n [\n \"path\",\n {\n d: \"M11 20H9\",\n key: \"39obr8\"\n }\n ]\n];\nconst Tornado = createLucideIcon(\"tornado\", __iconNode$27);\nconst __iconNode$26 = [\n [\n \"ellipse\",\n {\n cx: \"12\",\n cy: \"11\",\n rx: \"3\",\n ry: \"2\",\n key: \"1b2qxu\"\n }\n ],\n [\n \"ellipse\",\n {\n cx: \"12\",\n cy: \"12.5\",\n rx: \"10\",\n ry: \"8.5\",\n key: \"h8emeu\"\n }\n ]\n];\nconst Torus = createLucideIcon(\"torus\", __iconNode$26);\nconst __iconNode$25 = [\n [\n \"rect\",\n {\n width: \"20\",\n height: \"16\",\n x: \"2\",\n y: \"4\",\n rx: \"2\",\n key: \"18n3k1\"\n }\n ],\n [\n \"path\",\n {\n d: \"M2 14h20\",\n key: \"myj16y\"\n }\n ],\n [\n \"path\",\n {\n d: \"M12 20v-6\",\n key: \"1rm09r\"\n }\n ]\n];\nconst Touchpad = createLucideIcon(\"touchpad\", __iconNode$25);\nconst __iconNode$24 = [\n [\n \"path\",\n {\n d: \"M12 20v-6\",\n key: \"1rm09r\"\n }\n ],\n [\n \"path\",\n {\n d: \"M19.656 14H22\",\n key: \"170xzr\"\n }\n ],\n [\n \"path\",\n {\n d: \"M2 14h12\",\n key: \"d8icqz\"\n }\n ],\n [\n \"path\",\n {\n d: \"m2 2 20 20\",\n key: \"1ooewy\"\n }\n ],\n [\n \"path\",\n {\n d: \"M20 20H4a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2\",\n key: \"s23sx2\"\n }\n ],\n [\n \"path\",\n {\n d: \"M9.656 4H20a2 2 0 0 1 2 2v10.344\",\n key: \"ovjcvl\"\n }\n ]\n];\nconst TouchpadOff = createLucideIcon(\"touchpad-off\", __iconNode$24);\nconst __iconNode$23 = [\n [\n \"path\",\n {\n d: \"M18.2 12.27 20 6H4l1.8 6.27a1 1 0 0 0 .95.73h10.5a1 1 0 0 0 .96-.73Z\",\n key: \"1pledb\"\n }\n ],\n [\n \"path\",\n {\n d: \"M8 13v9\",\n key: \"hmv0ci\"\n }\n ],\n [\n \"path\",\n {\n d: \"M16 22v-9\",\n key: \"ylnf1u\"\n }\n ],\n [\n \"path\",\n {\n d: \"m9 6 1 7\",\n key: \"dpdgam\"\n }\n ],\n [\n \"path\",\n {\n d: \"m15 6-1 7\",\n key: \"ls7zgu\"\n }\n ],\n [\n \"path\",\n {\n d: \"M12 6V2\",\n key: \"1pj48d\"\n }\n ],\n [\n \"path\",\n {\n d: \"M13 2h-2\",\n key: \"mj6ths\"\n }\n ]\n];\nconst TowerControl = createLucideIcon(\"tower-control\", __iconNode$23);\nconst __iconNode$22 = [\n [\n \"rect\",\n {\n width: \"18\",\n height: \"12\",\n x: \"3\",\n y: \"8\",\n rx: \"1\",\n key: \"158fvp\"\n }\n ],\n [\n \"path\",\n {\n d: \"M10 8V5c0-.6-.4-1-1-1H6a1 1 0 0 0-1 1v3\",\n key: \"s0042v\"\n }\n ],\n [\n \"path\",\n {\n d: \"M19 8V5c0-.6-.4-1-1-1h-3a1 1 0 0 0-1 1v3\",\n key: \"9wmeh2\"\n }\n ]\n];\nconst ToyBrick = createLucideIcon(\"toy-brick\", __iconNode$22);\nconst __iconNode$21 = [\n [\n \"path\",\n {\n d: \"m10 11 11 .9a1 1 0 0 1 .8 1.1l-.665 4.158a1 1 0 0 1-.988.842H20\",\n key: \"she1j9\"\n }\n ],\n [\n \"path\",\n {\n d: \"M16 18h-5\",\n key: \"bq60fd\"\n }\n ],\n [\n \"path\",\n {\n d: \"M18 5a1 1 0 0 0-1 1v5.573\",\n key: \"1kv8ia\"\n }\n ],\n [\n \"path\",\n {\n d: \"M3 4h8.129a1 1 0 0 1 .99.863L13 11.246\",\n key: \"1q1ert\"\n }\n ],\n [\n \"path\",\n {\n d: \"M4 11V4\",\n key: \"9ft8pt\"\n }\n ],\n [\n \"path\",\n {\n d: \"M7 15h.01\",\n key: \"k5ht0j\"\n }\n ],\n [\n \"path\",\n {\n d: \"M8 10.1V4\",\n key: \"1jgyzo\"\n }\n ],\n [\n \"circle\",\n {\n cx: \"18\",\n cy: \"18\",\n r: \"2\",\n key: \"1emm8v\"\n }\n ],\n [\n \"circle\",\n {\n cx: \"7\",\n cy: \"15\",\n r: \"5\",\n key: \"ddtuc\"\n }\n ]\n];\nconst Tractor = createLucideIcon(\"tractor\", __iconNode$21);\nconst __iconNode$20 = [\n [\n \"path\",\n {\n d: \"M16.05 10.966a5 2.5 0 0 1-8.1 0\",\n key: \"m5jpwb\"\n }\n ],\n [\n \"path\",\n {\n d: \"m16.923 14.049 4.48 2.04a1 1 0 0 1 .001 1.831l-8.574 3.9a2 2 0 0 1-1.66 0l-8.574-3.91a1 1 0 0 1 0-1.83l4.484-2.04\",\n key: \"rbg3g8\"\n }\n ],\n [\n \"path\",\n {\n d: \"M16.949 14.14a5 2.5 0 1 1-9.9 0L10.063 3.5a2 2 0 0 1 3.874 0z\",\n key: \"vap8c8\"\n }\n ],\n [\n \"path\",\n {\n d: \"M9.194 6.57a5 2.5 0 0 0 5.61 0\",\n key: \"15hn5c\"\n }\n ]\n];\nconst TrafficCone = createLucideIcon(\"traffic-cone\", __iconNode$20);\nconst __iconNode$1$ = [\n [\n \"path\",\n {\n d: \"M2 22V12a10 10 0 1 1 20 0v10\",\n key: \"o0fyp0\"\n }\n ],\n [\n \"path\",\n {\n d: \"M15 6.8v1.4a3 2.8 0 1 1-6 0V6.8\",\n key: \"m8q3n9\"\n }\n ],\n [\n \"path\",\n {\n d: \"M10 15h.01\",\n key: \"44in9x\"\n }\n ],\n [\n \"path\",\n {\n d: \"M14 15h.01\",\n key: \"5mohn5\"\n }\n ],\n [\n \"path\",\n {\n d: \"M10 19a4 4 0 0 1-4-4v-3a6 6 0 1 1 12 0v3a4 4 0 0 1-4 4Z\",\n key: \"hckbmu\"\n }\n ],\n [\n \"path\",\n {\n d: \"m9 19-2 3\",\n key: \"iij7hm\"\n }\n ],\n [\n \"path\",\n {\n d: \"m15 19 2 3\",\n key: \"npx8sa\"\n }\n ]\n];\nconst TrainFrontTunnel = createLucideIcon(\"train-front-tunnel\", __iconNode$1$);\nconst __iconNode$1_ = [\n [\n \"path\",\n {\n d: \"M8 3.1V7a4 4 0 0 0 8 0V3.1\",\n key: \"1v71zp\"\n }\n ],\n [\n \"path\",\n {\n d: \"m9 15-1-1\",\n key: \"1yrq24\"\n }\n ],\n [\n \"path\",\n {\n d: \"m15 15 1-1\",\n key: \"1t0d6s\"\n }\n ],\n [\n \"path\",\n {\n d: \"M9 19c-2.8 0-5-2.2-5-5v-4a8 8 0 0 1 16 0v4c0 2.8-2.2 5-5 5Z\",\n key: \"1p0hjs\"\n }\n ],\n [\n \"path\",\n {\n d: \"m8 19-2 3\",\n key: \"13i0xs\"\n }\n ],\n [\n \"path\",\n {\n d: \"m16 19 2 3\",\n key: \"xo31yx\"\n }\n ]\n];\nconst TrainFront = createLucideIcon(\"train-front\", __iconNode$1_);\nconst __iconNode$1Z = [\n [\n \"path\",\n {\n d: \"M2 17 17 2\",\n key: \"18b09t\"\n }\n ],\n [\n \"path\",\n {\n d: \"m2 14 8 8\",\n key: \"1gv9hu\"\n }\n ],\n [\n \"path\",\n {\n d: \"m5 11 8 8\",\n key: \"189pqp\"\n }\n ],\n [\n \"path\",\n {\n d: \"m8 8 8 8\",\n key: \"1imecy\"\n }\n ],\n [\n \"path\",\n {\n d: \"m11 5 8 8\",\n key: \"ummqn6\"\n }\n ],\n [\n \"path\",\n {\n d: \"m14 2 8 8\",\n key: \"1vk7dn\"\n }\n ],\n [\n \"path\",\n {\n d: \"M7 22 22 7\",\n key: \"15mb1i\"\n }\n ]\n];\nconst TrainTrack = createLucideIcon(\"train-track\", __iconNode$1Z);\nconst __iconNode$1Y = [\n [\n \"rect\",\n {\n width: \"16\",\n height: \"16\",\n x: \"4\",\n y: \"3\",\n rx: \"2\",\n key: \"1wxw4b\"\n }\n ],\n [\n \"path\",\n {\n d: \"M4 11h16\",\n key: \"mpoxn0\"\n }\n ],\n [\n \"path\",\n {\n d: \"M12 3v8\",\n key: \"1h2ygw\"\n }\n ],\n [\n \"path\",\n {\n d: \"m8 19-2 3\",\n key: \"13i0xs\"\n }\n ],\n [\n \"path\",\n {\n d: \"m18 22-2-3\",\n key: \"1p0ohu\"\n }\n ],\n [\n \"path\",\n {\n d: \"M8 15h.01\",\n key: \"a7atzg\"\n }\n ],\n [\n \"path\",\n {\n d: \"M16 15h.01\",\n key: \"rnfrdf\"\n }\n ]\n];\nconst TramFront = createLucideIcon(\"tram-front\", __iconNode$1Y);\nconst __iconNode$1X = [\n [\n \"path\",\n {\n d: \"M12 16v6\",\n key: \"c8a4gj\"\n }\n ],\n [\n \"path\",\n {\n d: \"M14 20h-4\",\n key: \"m8m19d\"\n }\n ],\n [\n \"path\",\n {\n d: \"M18 2h4v4\",\n key: \"1341mj\"\n }\n ],\n [\n \"path\",\n {\n d: \"m2 2 7.17 7.17\",\n key: \"13q8l2\"\n }\n ],\n [\n \"path\",\n {\n d: \"M2 5.355V2h3.357\",\n key: \"18136r\"\n }\n ],\n [\n \"path\",\n {\n d: \"m22 2-7.17 7.17\",\n key: \"1epvy4\"\n }\n ],\n [\n \"path\",\n {\n d: \"M8 5 5 8\",\n key: \"mgbjhz\"\n }\n ],\n [\n \"circle\",\n {\n cx: \"12\",\n cy: \"12\",\n r: \"4\",\n key: \"4exip2\"\n }\n ]\n];\nconst Transgender = createLucideIcon(\"transgender\", __iconNode$1X);\nconst __iconNode$1W = [\n [\n \"path\",\n {\n d: \"M3 6h18\",\n key: \"d0wm0j\"\n }\n ],\n [\n \"path\",\n {\n d: \"M19 6v14c0 1-1 2-2 2H7c-1 0-2-1-2-2V6\",\n key: \"4alrt4\"\n }\n ],\n [\n \"path\",\n {\n d: \"M8 6V4c0-1 1-2 2-2h4c1 0 2 1 2 2v2\",\n key: \"v07s0e\"\n }\n ],\n [\n \"line\",\n {\n x1: \"10\",\n x2: \"10\",\n y1: \"11\",\n y2: \"17\",\n key: \"1uufr5\"\n }\n ],\n [\n \"line\",\n {\n x1: \"14\",\n x2: \"14\",\n y1: \"11\",\n y2: \"17\",\n key: \"xtxkd\"\n }\n ]\n];\nconst Trash2 = createLucideIcon(\"trash-2\", __iconNode$1W);\nconst __iconNode$1V = [\n [\n \"path\",\n {\n d: \"M3 6h18\",\n key: \"d0wm0j\"\n }\n ],\n [\n \"path\",\n {\n d: \"M19 6v14c0 1-1 2-2 2H7c-1 0-2-1-2-2V6\",\n key: \"4alrt4\"\n }\n ],\n [\n \"path\",\n {\n d: \"M8 6V4c0-1 1-2 2-2h4c1 0 2 1 2 2v2\",\n key: \"v07s0e\"\n }\n ]\n];\nconst Trash = createLucideIcon(\"trash\", __iconNode$1V);\nconst __iconNode$1U = [\n [\n \"path\",\n {\n d: \"M8 19a4 4 0 0 1-2.24-7.32A3.5 3.5 0 0 1 9 6.03V6a3 3 0 1 1 6 0v.04a3.5 3.5 0 0 1 3.24 5.65A4 4 0 0 1 16 19Z\",\n key: \"oadzkq\"\n }\n ],\n [\n \"path\",\n {\n d: \"M12 19v3\",\n key: \"npa21l\"\n }\n ]\n];\nconst TreeDeciduous = createLucideIcon(\"tree-deciduous\", __iconNode$1U);\nconst __iconNode$1T = [\n [\n \"path\",\n {\n d: \"M13 8c0-2.76-2.46-5-5.5-5S2 5.24 2 8h2l1-1 1 1h4\",\n key: \"foxbe7\"\n }\n ],\n [\n \"path\",\n {\n d: \"M13 7.14A5.82 5.82 0 0 1 16.5 6c3.04 0 5.5 2.24 5.5 5h-3l-1-1-1 1h-3\",\n key: \"18arnh\"\n }\n ],\n [\n \"path\",\n {\n d: \"M5.89 9.71c-2.15 2.15-2.3 5.47-.35 7.43l4.24-4.25.7-.7.71-.71 2.12-2.12c-1.95-1.96-5.27-1.8-7.42.35\",\n key: \"ywahnh\"\n }\n ],\n [\n \"path\",\n {\n d: \"M11 15.5c.5 2.5-.17 4.5-1 6.5h4c2-5.5-.5-12-1-14\",\n key: \"ft0feo\"\n }\n ]\n];\nconst TreePalm = createLucideIcon(\"tree-palm\", __iconNode$1T);\nconst __iconNode$1S = [\n [\n \"path\",\n {\n d: \"m17 14 3 3.3a1 1 0 0 1-.7 1.7H4.7a1 1 0 0 1-.7-1.7L7 14h-.3a1 1 0 0 1-.7-1.7L9 9h-.2A1 1 0 0 1 8 7.3L12 3l4 4.3a1 1 0 0 1-.8 1.7H15l3 3.3a1 1 0 0 1-.7 1.7H17Z\",\n key: \"cpyugq\"\n }\n ],\n [\n \"path\",\n {\n d: \"M12 22v-3\",\n key: \"kmzjlo\"\n }\n ]\n];\nconst TreePine = createLucideIcon(\"tree-pine\", __iconNode$1S);\nconst __iconNode$1R = [\n [\n \"path\",\n {\n d: \"M10 10v.2A3 3 0 0 1 8.9 16H5a3 3 0 0 1-1-5.8V10a3 3 0 0 1 6 0Z\",\n key: \"1l6gj6\"\n }\n ],\n [\n \"path\",\n {\n d: \"M7 16v6\",\n key: \"1a82de\"\n }\n ],\n [\n \"path\",\n {\n d: \"M13 19v3\",\n key: \"13sx9i\"\n }\n ],\n [\n \"path\",\n {\n d: \"M12 19h8.3a1 1 0 0 0 .7-1.7L18 14h.3a1 1 0 0 0 .7-1.7L16 9h.2a1 1 0 0 0 .8-1.7L13 3l-1.4 1.5\",\n key: \"1sj9kv\"\n }\n ]\n];\nconst Trees = createLucideIcon(\"trees\", __iconNode$1R);\nconst __iconNode$1Q = [\n [\n \"path\",\n {\n d: \"M16 17h6v-6\",\n key: \"t6n2it\"\n }\n ],\n [\n \"path\",\n {\n d: \"m22 17-8.5-8.5-5 5L2 7\",\n key: \"x473p\"\n }\n ]\n];\nconst TrendingDown = createLucideIcon(\"trending-down\", __iconNode$1Q);\nconst __iconNode$1P = [\n [\n \"rect\",\n {\n width: \"18\",\n height: \"18\",\n x: \"3\",\n y: \"3\",\n rx: \"2\",\n ry: \"2\",\n key: \"1m3agn\"\n }\n ],\n [\n \"rect\",\n {\n width: \"3\",\n height: \"9\",\n x: \"7\",\n y: \"7\",\n key: \"14n3xi\"\n }\n ],\n [\n \"rect\",\n {\n width: \"3\",\n height: \"5\",\n x: \"14\",\n y: \"7\",\n key: \"s4azjd\"\n }\n ]\n];\nconst Trello = createLucideIcon(\"trello\", __iconNode$1P);\nconst __iconNode$1O = [\n [\n \"path\",\n {\n d: \"M14.828 14.828 21 21\",\n key: \"ar5fw7\"\n }\n ],\n [\n \"path\",\n {\n d: \"M21 16v5h-5\",\n key: \"1ck2sf\"\n }\n ],\n [\n \"path\",\n {\n d: \"m21 3-9 9-4-4-6 6\",\n key: \"1h02xo\"\n }\n ],\n [\n \"path\",\n {\n d: \"M21 8V3h-5\",\n key: \"1qoq8a\"\n }\n ]\n];\nconst TrendingUpDown = createLucideIcon(\"trending-up-down\", __iconNode$1O);\nconst __iconNode$1N = [\n [\n \"path\",\n {\n d: \"M16 7h6v6\",\n key: \"box55l\"\n }\n ],\n [\n \"path\",\n {\n d: \"m22 7-8.5 8.5-5-5L2 17\",\n key: \"1t1m79\"\n }\n ]\n];\nconst TrendingUp = createLucideIcon(\"trending-up\", __iconNode$1N);\nconst __iconNode$1M = [\n [\n \"path\",\n {\n d: \"m21.73 18-8-14a2 2 0 0 0-3.48 0l-8 14A2 2 0 0 0 4 21h16a2 2 0 0 0 1.73-3\",\n key: \"wmoenq\"\n }\n ],\n [\n \"path\",\n {\n d: \"M12 9v4\",\n key: \"juzpu7\"\n }\n ],\n [\n \"path\",\n {\n d: \"M12 17h.01\",\n key: \"p32p05\"\n }\n ]\n];\nconst TriangleAlert = createLucideIcon(\"triangle-alert\", __iconNode$1M);\nconst __iconNode$1L = [\n [\n \"path\",\n {\n d: \"M10.17 4.193a2 2 0 0 1 3.666.013\",\n key: \"pltmmw\"\n }\n ],\n [\n \"path\",\n {\n d: \"M14 21h2\",\n key: \"v4qezv\"\n }\n ],\n [\n \"path\",\n {\n d: \"m15.874 7.743 1 1.732\",\n key: \"10m0iw\"\n }\n ],\n [\n \"path\",\n {\n d: \"m18.849 12.952 1 1.732\",\n key: \"zadnam\"\n }\n ],\n [\n \"path\",\n {\n d: \"M21.824 18.18a2 2 0 0 1-1.835 2.824\",\n key: \"fvwuk4\"\n }\n ],\n [\n \"path\",\n {\n d: \"M4.024 21a2 2 0 0 1-1.839-2.839\",\n key: \"1e1kah\"\n }\n ],\n [\n \"path\",\n {\n d: \"m5.136 12.952-1 1.732\",\n key: \"1u4ldi\"\n }\n ],\n [\n \"path\",\n {\n d: \"M8 21h2\",\n key: \"i9zjee\"\n }\n ],\n [\n \"path\",\n {\n d: \"m8.102 7.743-1 1.732\",\n key: \"1zzo4u\"\n }\n ]\n];\nconst TriangleDashed = createLucideIcon(\"triangle-dashed\", __iconNode$1L);\nconst __iconNode$1K = [\n [\n \"path\",\n {\n d: \"M22 18a2 2 0 0 1-2 2H3c-1.1 0-1.3-.6-.4-1.3L20.4 4.3c.9-.7 1.6-.4 1.6.7Z\",\n key: \"183wce\"\n }\n ]\n];\nconst TriangleRight = createLucideIcon(\"triangle-right\", __iconNode$1K);\nconst __iconNode$1J = [\n [\n \"path\",\n {\n d: \"M13.73 4a2 2 0 0 0-3.46 0l-8 14A2 2 0 0 0 4 21h16a2 2 0 0 0 1.73-3Z\",\n key: \"14u9p9\"\n }\n ]\n];\nconst Triangle = createLucideIcon(\"triangle\", __iconNode$1J);\nconst __iconNode$1I = [\n [\n \"path\",\n {\n d: \"M10 14.66v1.626a2 2 0 0 1-.976 1.696A5 5 0 0 0 7 21.978\",\n key: \"1n3hpd\"\n }\n ],\n [\n \"path\",\n {\n d: \"M14 14.66v1.626a2 2 0 0 0 .976 1.696A5 5 0 0 1 17 21.978\",\n key: \"rfe1zi\"\n }\n ],\n [\n \"path\",\n {\n d: \"M18 9h1.5a1 1 0 0 0 0-5H18\",\n key: \"7xy6bh\"\n }\n ],\n [\n \"path\",\n {\n d: \"M4 22h16\",\n key: \"57wxv0\"\n }\n ],\n [\n \"path\",\n {\n d: \"M6 9a6 6 0 0 0 12 0V3a1 1 0 0 0-1-1H7a1 1 0 0 0-1 1z\",\n key: \"1mhfuq\"\n }\n ],\n [\n \"path\",\n {\n d: \"M6 9H4.5a1 1 0 0 1 0-5H6\",\n key: \"tex48p\"\n }\n ]\n];\nconst Trophy = createLucideIcon(\"trophy\", __iconNode$1I);\nconst __iconNode$1H = [\n [\n \"path\",\n {\n d: \"M14 19V7a2 2 0 0 0-2-2H9\",\n key: \"15peso\"\n }\n ],\n [\n \"path\",\n {\n d: \"M15 19H9\",\n key: \"18q6dt\"\n }\n ],\n [\n \"path\",\n {\n d: \"M19 19h2a1 1 0 0 0 1-1v-3.65a1 1 0 0 0-.22-.62L18.3 9.38a1 1 0 0 0-.78-.38H14\",\n key: \"1dkp3j\"\n }\n ],\n [\n \"path\",\n {\n d: \"M2 13v5a1 1 0 0 0 1 1h2\",\n key: \"pkmmzz\"\n }\n ],\n [\n \"path\",\n {\n d: \"M4 3 2.15 5.15a.495.495 0 0 0 .35.86h2.15a.47.47 0 0 1 .35.86L3 9.02\",\n key: \"1n26pd\"\n }\n ],\n [\n \"circle\",\n {\n cx: \"17\",\n cy: \"19\",\n r: \"2\",\n key: \"1nxcgd\"\n }\n ],\n [\n \"circle\",\n {\n cx: \"7\",\n cy: \"19\",\n r: \"2\",\n key: \"gzo7y7\"\n }\n ]\n];\nconst TruckElectric = createLucideIcon(\"truck-electric\", __iconNode$1H);\nconst __iconNode$1G = [\n [\n \"path\",\n {\n d: \"M14 18V6a2 2 0 0 0-2-2H4a2 2 0 0 0-2 2v11a1 1 0 0 0 1 1h2\",\n key: \"wrbu53\"\n }\n ],\n [\n \"path\",\n {\n d: \"M15 18H9\",\n key: \"1lyqi6\"\n }\n ],\n [\n \"path\",\n {\n d: \"M19 18h2a1 1 0 0 0 1-1v-3.65a1 1 0 0 0-.22-.624l-3.48-4.35A1 1 0 0 0 17.52 8H14\",\n key: \"lysw3i\"\n }\n ],\n [\n \"circle\",\n {\n cx: \"17\",\n cy: \"18\",\n r: \"2\",\n key: \"332jqn\"\n }\n ],\n [\n \"circle\",\n {\n cx: \"7\",\n cy: \"18\",\n r: \"2\",\n key: \"19iecd\"\n }\n ]\n];\nconst Truck = createLucideIcon(\"truck\", __iconNode$1G);\nconst __iconNode$1F = [\n [\n \"path\",\n {\n d: \"m12 10 2 4v3a1 1 0 0 0 1 1h2a1 1 0 0 0 1-1v-3a8 8 0 1 0-16 0v3a1 1 0 0 0 1 1h2a1 1 0 0 0 1-1v-3l2-4h4Z\",\n key: \"1lbbv7\"\n }\n ],\n [\n \"path\",\n {\n d: \"M4.82 7.9 8 10\",\n key: \"m9wose\"\n }\n ],\n [\n \"path\",\n {\n d: \"M15.18 7.9 12 10\",\n key: \"p8dp2u\"\n }\n ],\n [\n \"path\",\n {\n d: \"M16.93 10H20a2 2 0 0 1 0 4H2\",\n key: \"12nsm7\"\n }\n ]\n];\nconst Turtle = createLucideIcon(\"turtle\", __iconNode$1F);\nconst __iconNode$1E = [\n [\n \"path\",\n {\n d: \"M7 21h10\",\n key: \"1b0cd5\"\n }\n ],\n [\n \"rect\",\n {\n width: \"20\",\n height: \"14\",\n x: \"2\",\n y: \"3\",\n rx: \"2\",\n key: \"48i651\"\n }\n ]\n];\nconst TvMinimal = createLucideIcon(\"tv-minimal\", __iconNode$1E);\nconst __iconNode$1D = [\n [\n \"path\",\n {\n d: \"M10 7.75a.75.75 0 0 1 1.142-.638l3.664 2.249a.75.75 0 0 1 0 1.278l-3.664 2.25a.75.75 0 0 1-1.142-.64z\",\n key: \"1pctta\"\n }\n ],\n [\n \"path\",\n {\n d: \"M7 21h10\",\n key: \"1b0cd5\"\n }\n ],\n [\n \"rect\",\n {\n width: \"20\",\n height: \"14\",\n x: \"2\",\n y: \"3\",\n rx: \"2\",\n key: \"48i651\"\n }\n ]\n];\nconst TvMinimalPlay = createLucideIcon(\"tv-minimal-play\", __iconNode$1D);\nconst __iconNode$1C = [\n [\n \"path\",\n {\n d: \"m17 2-5 5-5-5\",\n key: \"16satq\"\n }\n ],\n [\n \"rect\",\n {\n width: \"20\",\n height: \"15\",\n x: \"2\",\n y: \"7\",\n rx: \"2\",\n key: \"1e6viu\"\n }\n ]\n];\nconst Tv = createLucideIcon(\"tv\", __iconNode$1C);\nconst __iconNode$1B = [\n [\n \"path\",\n {\n d: \"M21 2H3v16h5v4l4-4h5l4-4V2zm-10 9V7m5 4V7\",\n key: \"c0yzno\"\n }\n ]\n];\nconst Twitch = createLucideIcon(\"twitch\", __iconNode$1B);\nconst __iconNode$1A = [\n [\n \"path\",\n {\n d: \"M22 4s-.7 2.1-2 3.4c1.6 10-9.4 17.3-18 11.6 2.2.1 4.4-.6 6-2C3 15.5.5 9.6 3 5c2.2 2.6 5.6 4.1 9 4-.9-4.2 4-6.6 7-3.8 1.1 0 3-1.2 3-1.2z\",\n key: \"pff0z6\"\n }\n ]\n];\nconst Twitter = createLucideIcon(\"twitter\", __iconNode$1A);\nconst __iconNode$1z = [\n [\n \"path\",\n {\n d: \"M12 4v16\",\n key: \"1654pz\"\n }\n ],\n [\n \"path\",\n {\n d: \"M4 7V5a1 1 0 0 1 1-1h14a1 1 0 0 1 1 1v2\",\n key: \"e0r10z\"\n }\n ],\n [\n \"path\",\n {\n d: \"M9 20h6\",\n key: \"s66wpe\"\n }\n ]\n];\nconst Type = createLucideIcon(\"type\", __iconNode$1z);\nconst __iconNode$1y = [\n [\n \"path\",\n {\n d: \"M14 16.5a.5.5 0 0 0 .5.5h.5a2 2 0 0 1 0 4H9a2 2 0 0 1 0-4h.5a.5.5 0 0 0 .5-.5v-9a.5.5 0 0 0-.5-.5h-3a.5.5 0 0 0-.5.5V8a2 2 0 0 1-4 0V5a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2v3a2 2 0 0 1-4 0v-.5a.5.5 0 0 0-.5-.5h-3a.5.5 0 0 0-.5.5Z\",\n key: \"1reda3\"\n }\n ]\n];\nconst TypeOutline = createLucideIcon(\"type-outline\", __iconNode$1y);\nconst __iconNode$1x = [\n [\n \"path\",\n {\n d: \"M12 2v1\",\n key: \"11qlp1\"\n }\n ],\n [\n \"path\",\n {\n d: \"M15.5 21a1.85 1.85 0 0 1-3.5-1v-8H2a10 10 0 0 1 3.428-6.575\",\n key: \"eki10q\"\n }\n ],\n [\n \"path\",\n {\n d: \"M17.5 12H22A10 10 0 0 0 9.004 3.455\",\n key: \"n2ayka\"\n }\n ],\n [\n \"path\",\n {\n d: \"m2 2 20 20\",\n key: \"1ooewy\"\n }\n ]\n];\nconst UmbrellaOff = createLucideIcon(\"umbrella-off\", __iconNode$1x);\nconst __iconNode$1w = [\n [\n \"path\",\n {\n d: \"M22 12a10.06 10.06 1 0 0-20 0Z\",\n key: \"1teyop\"\n }\n ],\n [\n \"path\",\n {\n d: \"M12 12v8a2 2 0 0 0 4 0\",\n key: \"ulpmoc\"\n }\n ],\n [\n \"path\",\n {\n d: \"M12 2v1\",\n key: \"11qlp1\"\n }\n ]\n];\nconst Umbrella = createLucideIcon(\"umbrella\", __iconNode$1w);\nconst __iconNode$1v = [\n [\n \"path\",\n {\n d: \"M6 4v6a6 6 0 0 0 12 0V4\",\n key: \"9kb039\"\n }\n ],\n [\n \"line\",\n {\n x1: \"4\",\n x2: \"20\",\n y1: \"20\",\n y2: \"20\",\n key: \"nun2al\"\n }\n ]\n];\nconst Underline = createLucideIcon(\"underline\", __iconNode$1v);\nconst __iconNode$1u = [\n [\n \"path\",\n {\n d: \"M9 14 4 9l5-5\",\n key: \"102s5s\"\n }\n ],\n [\n \"path\",\n {\n d: \"M4 9h10.5a5.5 5.5 0 0 1 5.5 5.5a5.5 5.5 0 0 1-5.5 5.5H11\",\n key: \"f3b9sd\"\n }\n ]\n];\nconst Undo2 = createLucideIcon(\"undo-2\", __iconNode$1u);\nconst __iconNode$1t = [\n [\n \"path\",\n {\n d: \"M21 17a9 9 0 0 0-15-6.7L3 13\",\n key: \"8mp6z9\"\n }\n ],\n [\n \"path\",\n {\n d: \"M3 7v6h6\",\n key: \"1v2h90\"\n }\n ],\n [\n \"circle\",\n {\n cx: \"12\",\n cy: \"17\",\n r: \"1\",\n key: \"1ixnty\"\n }\n ]\n];\nconst UndoDot = createLucideIcon(\"undo-dot\", __iconNode$1t);\nconst __iconNode$1s = [\n [\n \"path\",\n {\n d: \"M3 7v6h6\",\n key: \"1v2h90\"\n }\n ],\n [\n \"path\",\n {\n d: \"M21 17a9 9 0 0 0-9-9 9 9 0 0 0-6 2.3L3 13\",\n key: \"1r6uu6\"\n }\n ]\n];\nconst Undo = createLucideIcon(\"undo\", __iconNode$1s);\nconst __iconNode$1r = [\n [\n \"path\",\n {\n d: \"M16 12h6\",\n key: \"15xry1\"\n }\n ],\n [\n \"path\",\n {\n d: \"M8 12H2\",\n key: \"1jqql6\"\n }\n ],\n [\n \"path\",\n {\n d: \"M12 2v2\",\n key: \"tus03m\"\n }\n ],\n [\n \"path\",\n {\n d: \"M12 8v2\",\n key: \"1woqiv\"\n }\n ],\n [\n \"path\",\n {\n d: \"M12 14v2\",\n key: \"8jcxud\"\n }\n ],\n [\n \"path\",\n {\n d: \"M12 20v2\",\n key: \"1lh1kg\"\n }\n ],\n [\n \"path\",\n {\n d: \"m19 15 3-3-3-3\",\n key: \"wjy7rq\"\n }\n ],\n [\n \"path\",\n {\n d: \"m5 9-3 3 3 3\",\n key: \"j64kie\"\n }\n ]\n];\nconst UnfoldHorizontal = createLucideIcon(\"unfold-horizontal\", __iconNode$1r);\nconst __iconNode$1q = [\n [\n \"path\",\n {\n d: \"M12 22v-6\",\n key: \"6o8u61\"\n }\n ],\n [\n \"path\",\n {\n d: \"M12 8V2\",\n key: \"1wkif3\"\n }\n ],\n [\n \"path\",\n {\n d: \"M4 12H2\",\n key: \"rhcxmi\"\n }\n ],\n [\n \"path\",\n {\n d: \"M10 12H8\",\n key: \"s88cx1\"\n }\n ],\n [\n \"path\",\n {\n d: \"M16 12h-2\",\n key: \"10asgb\"\n }\n ],\n [\n \"path\",\n {\n d: \"M22 12h-2\",\n key: \"14jgyd\"\n }\n ],\n [\n \"path\",\n {\n d: \"m15 19-3 3-3-3\",\n key: \"11eu04\"\n }\n ],\n [\n \"path\",\n {\n d: \"m15 5-3-3-3 3\",\n key: \"itvq4r\"\n }\n ]\n];\nconst UnfoldVertical = createLucideIcon(\"unfold-vertical\", __iconNode$1q);\nconst __iconNode$1p = [\n [\n \"rect\",\n {\n width: \"8\",\n height: \"6\",\n x: \"5\",\n y: \"4\",\n rx: \"1\",\n key: \"nzclkv\"\n }\n ],\n [\n \"rect\",\n {\n width: \"8\",\n height: \"6\",\n x: \"11\",\n y: \"14\",\n rx: \"1\",\n key: \"4tytwb\"\n }\n ]\n];\nconst Ungroup = createLucideIcon(\"ungroup\", __iconNode$1p);\nconst __iconNode$1o = [\n [\n \"path\",\n {\n d: \"M14 21v-3a2 2 0 0 0-4 0v3\",\n key: \"1rgiei\"\n }\n ],\n [\n \"path\",\n {\n d: \"M18 12h.01\",\n key: \"yjnet6\"\n }\n ],\n [\n \"path\",\n {\n d: \"M18 16h.01\",\n key: \"plv8zi\"\n }\n ],\n [\n \"path\",\n {\n d: \"M22 7a1 1 0 0 0-1-1h-2a2 2 0 0 1-1.143-.359L13.143 2.36a2 2 0 0 0-2.286-.001L6.143 5.64A2 2 0 0 1 5 6H3a1 1 0 0 0-1 1v12a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2z\",\n key: \"1ogmi3\"\n }\n ],\n [\n \"path\",\n {\n d: \"M6 12h.01\",\n key: \"c2rlol\"\n }\n ],\n [\n \"path\",\n {\n d: \"M6 16h.01\",\n key: \"1pmjb7\"\n }\n ],\n [\n \"circle\",\n {\n cx: \"12\",\n cy: \"10\",\n r: \"2\",\n key: \"1yojzk\"\n }\n ]\n];\nconst University = createLucideIcon(\"university\", __iconNode$1o);\nconst __iconNode$1n = [\n [\n \"path\",\n {\n d: \"M15 7h2a5 5 0 0 1 0 10h-2m-6 0H7A5 5 0 0 1 7 7h2\",\n key: \"1re2ne\"\n }\n ]\n];\nconst Unlink2 = createLucideIcon(\"unlink-2\", __iconNode$1n);\nconst __iconNode$1m = [\n [\n \"path\",\n {\n d: \"m18.84 12.25 1.72-1.71h-.02a5.004 5.004 0 0 0-.12-7.07 5.006 5.006 0 0 0-6.95 0l-1.72 1.71\",\n key: \"yqzxt4\"\n }\n ],\n [\n \"path\",\n {\n d: \"m5.17 11.75-1.71 1.71a5.004 5.004 0 0 0 .12 7.07 5.006 5.006 0 0 0 6.95 0l1.71-1.71\",\n key: \"4qinb0\"\n }\n ],\n [\n \"line\",\n {\n x1: \"8\",\n x2: \"8\",\n y1: \"2\",\n y2: \"5\",\n key: \"1041cp\"\n }\n ],\n [\n \"line\",\n {\n x1: \"2\",\n x2: \"5\",\n y1: \"8\",\n y2: \"8\",\n key: \"14m1p5\"\n }\n ],\n [\n \"line\",\n {\n x1: \"16\",\n x2: \"16\",\n y1: \"19\",\n y2: \"22\",\n key: \"rzdirn\"\n }\n ],\n [\n \"line\",\n {\n x1: \"19\",\n x2: \"22\",\n y1: \"16\",\n y2: \"16\",\n key: \"ox905f\"\n }\n ]\n];\nconst Unlink = createLucideIcon(\"unlink\", __iconNode$1m);\nconst __iconNode$1l = [\n [\n \"path\",\n {\n d: \"m19 5 3-3\",\n key: \"yk6iyv\"\n }\n ],\n [\n \"path\",\n {\n d: \"m2 22 3-3\",\n key: \"19mgm9\"\n }\n ],\n [\n \"path\",\n {\n d: \"M6.3 20.3a2.4 2.4 0 0 0 3.4 0L12 18l-6-6-2.3 2.3a2.4 2.4 0 0 0 0 3.4Z\",\n key: \"goz73y\"\n }\n ],\n [\n \"path\",\n {\n d: \"M7.5 13.5 10 11\",\n key: \"7xgeeb\"\n }\n ],\n [\n \"path\",\n {\n d: \"M10.5 16.5 13 14\",\n key: \"10btkg\"\n }\n ],\n [\n \"path\",\n {\n d: \"m12 6 6 6 2.3-2.3a2.4 2.4 0 0 0 0-3.4l-2.6-2.6a2.4 2.4 0 0 0-3.4 0Z\",\n key: \"1snsnr\"\n }\n ]\n];\nconst Unplug = createLucideIcon(\"unplug\", __iconNode$1l);\nconst __iconNode$1k = [\n [\n \"path\",\n {\n d: \"M12 3v12\",\n key: \"1x0j5s\"\n }\n ],\n [\n \"path\",\n {\n d: \"m17 8-5-5-5 5\",\n key: \"7q97r8\"\n }\n ],\n [\n \"path\",\n {\n d: \"M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4\",\n key: \"ih7n3h\"\n }\n ]\n];\nconst Upload = createLucideIcon(\"upload\", __iconNode$1k);\nconst __iconNode$1j = [\n [\n \"circle\",\n {\n cx: \"10\",\n cy: \"7\",\n r: \"1\",\n key: \"dypaad\"\n }\n ],\n [\n \"circle\",\n {\n cx: \"4\",\n cy: \"20\",\n r: \"1\",\n key: \"22iqad\"\n }\n ],\n [\n \"path\",\n {\n d: \"M4.7 19.3 19 5\",\n key: \"1enqfc\"\n }\n ],\n [\n \"path\",\n {\n d: \"m21 3-3 1 2 2Z\",\n key: \"d3ov82\"\n }\n ],\n [\n \"path\",\n {\n d: \"M9.26 7.68 5 12l2 5\",\n key: \"1esawj\"\n }\n ],\n [\n \"path\",\n {\n d: \"m10 14 5 2 3.5-3.5\",\n key: \"v8oal5\"\n }\n ],\n [\n \"path\",\n {\n d: \"m18 12 1-1 1 1-1 1Z\",\n key: \"1bh22v\"\n }\n ]\n];\nconst Usb = createLucideIcon(\"usb\", __iconNode$1j);\nconst __iconNode$1i = [\n [\n \"path\",\n {\n d: \"m16 11 2 2 4-4\",\n key: \"9rsbq5\"\n }\n ],\n [\n \"path\",\n {\n d: \"M16 21v-2a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v2\",\n key: \"1yyitq\"\n }\n ],\n [\n \"circle\",\n {\n cx: \"9\",\n cy: \"7\",\n r: \"4\",\n key: \"nufk8\"\n }\n ]\n];\nconst UserCheck = createLucideIcon(\"user-check\", __iconNode$1i);\nconst __iconNode$1h = [\n [\n \"path\",\n {\n d: \"M10 15H6a4 4 0 0 0-4 4v2\",\n key: \"1nfge6\"\n }\n ],\n [\n \"path\",\n {\n d: \"m14.305 16.53.923-.382\",\n key: \"1itpsq\"\n }\n ],\n [\n \"path\",\n {\n d: \"m15.228 13.852-.923-.383\",\n key: \"eplpkm\"\n }\n ],\n [\n \"path\",\n {\n d: \"m16.852 12.228-.383-.923\",\n key: \"13v3q0\"\n }\n ],\n [\n \"path\",\n {\n d: \"m16.852 17.772-.383.924\",\n key: \"1i8mnm\"\n }\n ],\n [\n \"path\",\n {\n d: \"m19.148 12.228.383-.923\",\n key: \"1q8j1v\"\n }\n ],\n [\n \"path\",\n {\n d: \"m19.53 18.696-.382-.924\",\n key: \"vk1qj3\"\n }\n ],\n [\n \"path\",\n {\n d: \"m20.772 13.852.924-.383\",\n key: \"n880s0\"\n }\n ],\n [\n \"path\",\n {\n d: \"m20.772 16.148.924.383\",\n key: \"1g6xey\"\n }\n ],\n [\n \"circle\",\n {\n cx: \"18\",\n cy: \"15\",\n r: \"3\",\n key: \"gjjjvw\"\n }\n ],\n [\n \"circle\",\n {\n cx: \"9\",\n cy: \"7\",\n r: \"4\",\n key: \"nufk8\"\n }\n ]\n];\nconst UserCog = createLucideIcon(\"user-cog\", __iconNode$1h);\nconst __iconNode$1g = [\n [\n \"circle\",\n {\n cx: \"10\",\n cy: \"7\",\n r: \"4\",\n key: \"e45bow\"\n }\n ],\n [\n \"path\",\n {\n d: \"M10.3 15H7a4 4 0 0 0-4 4v2\",\n key: \"3bnktk\"\n }\n ],\n [\n \"path\",\n {\n d: \"M15 15.5V14a2 2 0 0 1 4 0v1.5\",\n key: \"12ym5i\"\n }\n ],\n [\n \"rect\",\n {\n width: \"8\",\n height: \"5\",\n x: \"13\",\n y: \"16\",\n rx: \".899\",\n key: \"4p176n\"\n }\n ]\n];\nconst UserLock = createLucideIcon(\"user-lock\", __iconNode$1g);\nconst __iconNode$1f = [\n [\n \"path\",\n {\n d: \"M16 21v-2a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v2\",\n key: \"1yyitq\"\n }\n ],\n [\n \"circle\",\n {\n cx: \"9\",\n cy: \"7\",\n r: \"4\",\n key: \"nufk8\"\n }\n ],\n [\n \"line\",\n {\n x1: \"22\",\n x2: \"16\",\n y1: \"11\",\n y2: \"11\",\n key: \"1shjgl\"\n }\n ]\n];\nconst UserMinus = createLucideIcon(\"user-minus\", __iconNode$1f);\nconst __iconNode$1e = [\n [\n \"path\",\n {\n d: \"M11.5 15H7a4 4 0 0 0-4 4v2\",\n key: \"15lzij\"\n }\n ],\n [\n \"path\",\n {\n d: \"M21.378 16.626a1 1 0 0 0-3.004-3.004l-4.01 4.012a2 2 0 0 0-.506.854l-.837 2.87a.5.5 0 0 0 .62.62l2.87-.837a2 2 0 0 0 .854-.506z\",\n key: \"1817ys\"\n }\n ],\n [\n \"circle\",\n {\n cx: \"10\",\n cy: \"7\",\n r: \"4\",\n key: \"e45bow\"\n }\n ]\n];\nconst UserPen = createLucideIcon(\"user-pen\", __iconNode$1e);\nconst __iconNode$1d = [\n [\n \"path\",\n {\n d: \"M16 21v-2a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v2\",\n key: \"1yyitq\"\n }\n ],\n [\n \"circle\",\n {\n cx: \"9\",\n cy: \"7\",\n r: \"4\",\n key: \"nufk8\"\n }\n ],\n [\n \"line\",\n {\n x1: \"19\",\n x2: \"19\",\n y1: \"8\",\n y2: \"14\",\n key: \"1bvyxn\"\n }\n ],\n [\n \"line\",\n {\n x1: \"22\",\n x2: \"16\",\n y1: \"11\",\n y2: \"11\",\n key: \"1shjgl\"\n }\n ]\n];\nconst UserPlus = createLucideIcon(\"user-plus\", __iconNode$1d);\nconst __iconNode$1c = [\n [\n \"path\",\n {\n d: \"M2 21a8 8 0 0 1 13.292-6\",\n key: \"bjp14o\"\n }\n ],\n [\n \"circle\",\n {\n cx: \"10\",\n cy: \"8\",\n r: \"5\",\n key: \"o932ke\"\n }\n ],\n [\n \"path\",\n {\n d: \"m16 19 2 2 4-4\",\n key: \"1b14m6\"\n }\n ]\n];\nconst UserRoundCheck = createLucideIcon(\"user-round-check\", __iconNode$1c);\nconst __iconNode$1b = [\n [\n \"path\",\n {\n d: \"m14.305 19.53.923-.382\",\n key: \"3m78fa\"\n }\n ],\n [\n \"path\",\n {\n d: \"m15.228 16.852-.923-.383\",\n key: \"npixar\"\n }\n ],\n [\n \"path\",\n {\n d: \"m16.852 15.228-.383-.923\",\n key: \"5xggr7\"\n }\n ],\n [\n \"path\",\n {\n d: \"m16.852 20.772-.383.924\",\n key: \"dpfhf9\"\n }\n ],\n [\n \"path\",\n {\n d: \"m19.148 15.228.383-.923\",\n key: \"1reyyz\"\n }\n ],\n [\n \"path\",\n {\n d: \"m19.53 21.696-.382-.924\",\n key: \"1goivc\"\n }\n ],\n [\n \"path\",\n {\n d: \"M2 21a8 8 0 0 1 10.434-7.62\",\n key: \"1yezr2\"\n }\n ],\n [\n \"path\",\n {\n d: \"m20.772 16.852.924-.383\",\n key: \"htqkph\"\n }\n ],\n [\n \"path\",\n {\n d: \"m20.772 19.148.924.383\",\n key: \"9w9pjp\"\n }\n ],\n [\n \"circle\",\n {\n cx: \"10\",\n cy: \"8\",\n r: \"5\",\n key: \"o932ke\"\n }\n ],\n [\n \"circle\",\n {\n cx: \"18\",\n cy: \"18\",\n r: \"3\",\n key: \"1xkwt0\"\n }\n ]\n];\nconst UserRoundCog = createLucideIcon(\"user-round-cog\", __iconNode$1b);\nconst __iconNode$1a = [\n [\n \"path\",\n {\n d: \"M2 21a8 8 0 0 1 13.292-6\",\n key: \"bjp14o\"\n }\n ],\n [\n \"circle\",\n {\n cx: \"10\",\n cy: \"8\",\n r: \"5\",\n key: \"o932ke\"\n }\n ],\n [\n \"path\",\n {\n d: \"M22 19h-6\",\n key: \"vcuq98\"\n }\n ]\n];\nconst UserRoundMinus = createLucideIcon(\"user-round-minus\", __iconNode$1a);\nconst __iconNode$19 = [\n [\n \"path\",\n {\n d: \"M2 21a8 8 0 0 1 10.821-7.487\",\n key: \"1c8h7z\"\n }\n ],\n [\n \"path\",\n {\n d: \"M21.378 16.626a1 1 0 0 0-3.004-3.004l-4.01 4.012a2 2 0 0 0-.506.854l-.837 2.87a.5.5 0 0 0 .62.62l2.87-.837a2 2 0 0 0 .854-.506z\",\n key: \"1817ys\"\n }\n ],\n [\n \"circle\",\n {\n cx: \"10\",\n cy: \"8\",\n r: \"5\",\n key: \"o932ke\"\n }\n ]\n];\nconst UserRoundPen = createLucideIcon(\"user-round-pen\", __iconNode$19);\nconst __iconNode$18 = [\n [\n \"path\",\n {\n d: \"M2 21a8 8 0 0 1 13.292-6\",\n key: \"bjp14o\"\n }\n ],\n [\n \"circle\",\n {\n cx: \"10\",\n cy: \"8\",\n r: \"5\",\n key: \"o932ke\"\n }\n ],\n [\n \"path\",\n {\n d: \"M19 16v6\",\n key: \"tddt3s\"\n }\n ],\n [\n \"path\",\n {\n d: \"M22 19h-6\",\n key: \"vcuq98\"\n }\n ]\n];\nconst UserRoundPlus = createLucideIcon(\"user-round-plus\", __iconNode$18);\nconst __iconNode$17 = [\n [\n \"circle\",\n {\n cx: \"10\",\n cy: \"8\",\n r: \"5\",\n key: \"o932ke\"\n }\n ],\n [\n \"path\",\n {\n d: \"M2 21a8 8 0 0 1 10.434-7.62\",\n key: \"1yezr2\"\n }\n ],\n [\n \"circle\",\n {\n cx: \"18\",\n cy: \"18\",\n r: \"3\",\n key: \"1xkwt0\"\n }\n ],\n [\n \"path\",\n {\n d: \"m22 22-1.9-1.9\",\n key: \"1e5ubv\"\n }\n ]\n];\nconst UserRoundSearch = createLucideIcon(\"user-round-search\", __iconNode$17);\nconst __iconNode$16 = [\n [\n \"path\",\n {\n d: \"M2 21a8 8 0 0 1 11.873-7\",\n key: \"74fkxq\"\n }\n ],\n [\n \"circle\",\n {\n cx: \"10\",\n cy: \"8\",\n r: \"5\",\n key: \"o932ke\"\n }\n ],\n [\n \"path\",\n {\n d: \"m17 17 5 5\",\n key: \"p7ous7\"\n }\n ],\n [\n \"path\",\n {\n d: \"m22 17-5 5\",\n key: \"gqnmv0\"\n }\n ]\n];\nconst UserRoundX = createLucideIcon(\"user-round-x\", __iconNode$16);\nconst __iconNode$15 = [\n [\n \"circle\",\n {\n cx: \"12\",\n cy: \"8\",\n r: \"5\",\n key: \"1hypcn\"\n }\n ],\n [\n \"path\",\n {\n d: \"M20 21a8 8 0 0 0-16 0\",\n key: \"rfgkzh\"\n }\n ]\n];\nconst UserRound = createLucideIcon(\"user-round\", __iconNode$15);\nconst __iconNode$14 = [\n [\n \"circle\",\n {\n cx: \"10\",\n cy: \"7\",\n r: \"4\",\n key: \"e45bow\"\n }\n ],\n [\n \"path\",\n {\n d: \"M10.3 15H7a4 4 0 0 0-4 4v2\",\n key: \"3bnktk\"\n }\n ],\n [\n \"circle\",\n {\n cx: \"17\",\n cy: \"17\",\n r: \"3\",\n key: \"18b49y\"\n }\n ],\n [\n \"path\",\n {\n d: \"m21 21-1.9-1.9\",\n key: \"1g2n9r\"\n }\n ]\n];\nconst UserSearch = createLucideIcon(\"user-search\", __iconNode$14);\nconst __iconNode$13 = [\n [\n \"path\",\n {\n d: \"M16 21v-2a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v2\",\n key: \"1yyitq\"\n }\n ],\n [\n \"circle\",\n {\n cx: \"9\",\n cy: \"7\",\n r: \"4\",\n key: \"nufk8\"\n }\n ],\n [\n \"line\",\n {\n x1: \"17\",\n x2: \"22\",\n y1: \"8\",\n y2: \"13\",\n key: \"3nzzx3\"\n }\n ],\n [\n \"line\",\n {\n x1: \"22\",\n x2: \"17\",\n y1: \"8\",\n y2: \"13\",\n key: \"1swrse\"\n }\n ]\n];\nconst UserX = createLucideIcon(\"user-x\", __iconNode$13);\nconst __iconNode$12 = [\n [\n \"path\",\n {\n d: \"M19 21v-2a4 4 0 0 0-4-4H9a4 4 0 0 0-4 4v2\",\n key: \"975kel\"\n }\n ],\n [\n \"circle\",\n {\n cx: \"12\",\n cy: \"7\",\n r: \"4\",\n key: \"17ys0d\"\n }\n ]\n];\nconst User = createLucideIcon(\"user\", __iconNode$12);\nconst __iconNode$11 = [\n [\n \"path\",\n {\n d: \"M18 21a8 8 0 0 0-16 0\",\n key: \"3ypg7q\"\n }\n ],\n [\n \"circle\",\n {\n cx: \"10\",\n cy: \"8\",\n r: \"5\",\n key: \"o932ke\"\n }\n ],\n [\n \"path\",\n {\n d: \"M22 20c0-3.37-2-6.5-4-8a5 5 0 0 0-.45-8.3\",\n key: \"10s06x\"\n }\n ]\n];\nconst UsersRound = createLucideIcon(\"users-round\", __iconNode$11);\nconst __iconNode$10 = [\n [\n \"path\",\n {\n d: \"M16 21v-2a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v2\",\n key: \"1yyitq\"\n }\n ],\n [\n \"path\",\n {\n d: \"M16 3.128a4 4 0 0 1 0 7.744\",\n key: \"16gr8j\"\n }\n ],\n [\n \"path\",\n {\n d: \"M22 21v-2a4 4 0 0 0-3-3.87\",\n key: \"kshegd\"\n }\n ],\n [\n \"circle\",\n {\n cx: \"9\",\n cy: \"7\",\n r: \"4\",\n key: \"nufk8\"\n }\n ]\n];\nconst Users = createLucideIcon(\"users\", __iconNode$10);\nconst __iconNode$$ = [\n [\n \"path\",\n {\n d: \"m16 2-2.3 2.3a3 3 0 0 0 0 4.2l1.8 1.8a3 3 0 0 0 4.2 0L22 8\",\n key: \"n7qcjb\"\n }\n ],\n [\n \"path\",\n {\n d: \"M15 15 3.3 3.3a4.2 4.2 0 0 0 0 6l7.3 7.3c.7.7 2 .7 2.8 0L15 15Zm0 0 7 7\",\n key: \"d0u48b\"\n }\n ],\n [\n \"path\",\n {\n d: \"m2.1 21.8 6.4-6.3\",\n key: \"yn04lh\"\n }\n ],\n [\n \"path\",\n {\n d: \"m19 5-7 7\",\n key: \"194lzd\"\n }\n ]\n];\nconst UtensilsCrossed = createLucideIcon(\"utensils-crossed\", __iconNode$$);\nconst __iconNode$_ = [\n [\n \"path\",\n {\n d: \"M3 2v7c0 1.1.9 2 2 2h4a2 2 0 0 0 2-2V2\",\n key: \"cjf0a3\"\n }\n ],\n [\n \"path\",\n {\n d: \"M7 2v20\",\n key: \"1473qp\"\n }\n ],\n [\n \"path\",\n {\n d: \"M21 15V2a5 5 0 0 0-5 5v6c0 1.1.9 2 2 2h3Zm0 0v7\",\n key: \"j28e5\"\n }\n ]\n];\nconst Utensils = createLucideIcon(\"utensils\", __iconNode$_);\nconst __iconNode$Z = [\n [\n \"path\",\n {\n d: \"M8 21s-4-3-4-9 4-9 4-9\",\n key: \"uto9ud\"\n }\n ],\n [\n \"path\",\n {\n d: \"M16 3s4 3 4 9-4 9-4 9\",\n key: \"4w2vsq\"\n }\n ],\n [\n \"line\",\n {\n x1: \"15\",\n x2: \"9\",\n y1: \"9\",\n y2: \"15\",\n key: \"f7djnv\"\n }\n ],\n [\n \"line\",\n {\n x1: \"9\",\n x2: \"15\",\n y1: \"9\",\n y2: \"15\",\n key: \"1shsy8\"\n }\n ]\n];\nconst Variable = createLucideIcon(\"variable\", __iconNode$Z);\nconst __iconNode$Y = [\n [\n \"path\",\n {\n d: \"M12 2v20\",\n key: \"t6zp3m\"\n }\n ],\n [\n \"path\",\n {\n d: \"M2 5h20\",\n key: \"1fs1ex\"\n }\n ],\n [\n \"path\",\n {\n d: \"M3 3v2\",\n key: \"9imdir\"\n }\n ],\n [\n \"path\",\n {\n d: \"M7 3v2\",\n key: \"n0os7\"\n }\n ],\n [\n \"path\",\n {\n d: \"M17 3v2\",\n key: \"1l2re6\"\n }\n ],\n [\n \"path\",\n {\n d: \"M21 3v2\",\n key: \"1duuac\"\n }\n ],\n [\n \"path\",\n {\n d: \"m19 5-7 7-7-7\",\n key: \"133zxf\"\n }\n ]\n];\nconst UtilityPole = createLucideIcon(\"utility-pole\", __iconNode$Y);\nconst __iconNode$X = [\n [\n \"rect\",\n {\n width: \"18\",\n height: \"18\",\n x: \"3\",\n y: \"3\",\n rx: \"2\",\n key: \"afitv7\"\n }\n ],\n [\n \"circle\",\n {\n cx: \"7.5\",\n cy: \"7.5\",\n r: \".5\",\n fill: \"currentColor\",\n key: \"kqv944\"\n }\n ],\n [\n \"path\",\n {\n d: \"m7.9 7.9 2.7 2.7\",\n key: \"hpeyl3\"\n }\n ],\n [\n \"circle\",\n {\n cx: \"16.5\",\n cy: \"7.5\",\n r: \".5\",\n fill: \"currentColor\",\n key: \"w0ekpg\"\n }\n ],\n [\n \"path\",\n {\n d: \"m13.4 10.6 2.7-2.7\",\n key: \"264c1n\"\n }\n ],\n [\n \"circle\",\n {\n cx: \"7.5\",\n cy: \"16.5\",\n r: \".5\",\n fill: \"currentColor\",\n key: \"nkw3mc\"\n }\n ],\n [\n \"path\",\n {\n d: \"m7.9 16.1 2.7-2.7\",\n key: \"p81g5e\"\n }\n ],\n [\n \"circle\",\n {\n cx: \"16.5\",\n cy: \"16.5\",\n r: \".5\",\n fill: \"currentColor\",\n key: \"fubopw\"\n }\n ],\n [\n \"path\",\n {\n d: \"m13.4 13.4 2.7 2.7\",\n key: \"abhel3\"\n }\n ],\n [\n \"circle\",\n {\n cx: \"12\",\n cy: \"12\",\n r: \"2\",\n key: \"1c9p78\"\n }\n ]\n];\nconst Vault = createLucideIcon(\"vault\", __iconNode$X);\nconst __iconNode$W = [\n [\n \"path\",\n {\n d: \"M19.5 7a24 24 0 0 1 0 10\",\n key: \"8n60xe\"\n }\n ],\n [\n \"path\",\n {\n d: \"M4.5 7a24 24 0 0 0 0 10\",\n key: \"2lmadr\"\n }\n ],\n [\n \"path\",\n {\n d: \"M7 19.5a24 24 0 0 0 10 0\",\n key: \"1q94o2\"\n }\n ],\n [\n \"path\",\n {\n d: \"M7 4.5a24 24 0 0 1 10 0\",\n key: \"2z8ypa\"\n }\n ],\n [\n \"rect\",\n {\n x: \"17\",\n y: \"17\",\n width: \"5\",\n height: \"5\",\n rx: \"1\",\n key: \"1ac74s\"\n }\n ],\n [\n \"rect\",\n {\n x: \"17\",\n y: \"2\",\n width: \"5\",\n height: \"5\",\n rx: \"1\",\n key: \"1e7h5j\"\n }\n ],\n [\n \"rect\",\n {\n x: \"2\",\n y: \"17\",\n width: \"5\",\n height: \"5\",\n rx: \"1\",\n key: \"1t4eah\"\n }\n ],\n [\n \"rect\",\n {\n x: \"2\",\n y: \"2\",\n width: \"5\",\n height: \"5\",\n rx: \"1\",\n key: \"940dhs\"\n }\n ]\n];\nconst VectorSquare = createLucideIcon(\"vector-square\", __iconNode$W);\nconst __iconNode$V = [\n [\n \"path\",\n {\n d: \"M16 8q6 0 6-6-6 0-6 6\",\n key: \"qsyyc4\"\n }\n ],\n [\n \"path\",\n {\n d: \"M17.41 3.59a10 10 0 1 0 3 3\",\n key: \"41m9h7\"\n }\n ],\n [\n \"path\",\n {\n d: \"M2 2a26.6 26.6 0 0 1 10 20c.9-6.82 1.5-9.5 4-14\",\n key: \"qiv7li\"\n }\n ]\n];\nconst Vegan = createLucideIcon(\"vegan\", __iconNode$V);\nconst __iconNode$U = [\n [\n \"path\",\n {\n d: \"M18 11c-1.5 0-2.5.5-3 2\",\n key: \"1fod00\"\n }\n ],\n [\n \"path\",\n {\n d: \"M4 6a2 2 0 0 0-2 2v4a5 5 0 0 0 5 5 8 8 0 0 1 5 2 8 8 0 0 1 5-2 5 5 0 0 0 5-5V8a2 2 0 0 0-2-2h-3a8 8 0 0 0-5 2 8 8 0 0 0-5-2z\",\n key: \"d70hit\"\n }\n ],\n [\n \"path\",\n {\n d: \"M6 11c1.5 0 2.5.5 3 2\",\n key: \"136fht\"\n }\n ]\n];\nconst VenetianMask = createLucideIcon(\"venetian-mask\", __iconNode$U);\nconst __iconNode$T = [\n [\n \"path\",\n {\n d: \"M10 20h4\",\n key: \"ni2waw\"\n }\n ],\n [\n \"path\",\n {\n d: \"M12 16v6\",\n key: \"c8a4gj\"\n }\n ],\n [\n \"path\",\n {\n d: \"M17 2h4v4\",\n key: \"vhe59\"\n }\n ],\n [\n \"path\",\n {\n d: \"m21 2-5.46 5.46\",\n key: \"19kypf\"\n }\n ],\n [\n \"circle\",\n {\n cx: \"12\",\n cy: \"11\",\n r: \"5\",\n key: \"16gxyc\"\n }\n ]\n];\nconst VenusAndMars = createLucideIcon(\"venus-and-mars\", __iconNode$T);\nconst __iconNode$S = [\n [\n \"path\",\n {\n d: \"M12 15v7\",\n key: \"t2xh3l\"\n }\n ],\n [\n \"path\",\n {\n d: \"M9 19h6\",\n key: \"456am0\"\n }\n ],\n [\n \"circle\",\n {\n cx: \"12\",\n cy: \"9\",\n r: \"6\",\n key: \"1nw4tq\"\n }\n ]\n];\nconst Venus = createLucideIcon(\"venus\", __iconNode$S);\nconst __iconNode$R = [\n [\n \"path\",\n {\n d: \"m2 8 2 2-2 2 2 2-2 2\",\n key: \"sv1b1\"\n }\n ],\n [\n \"path\",\n {\n d: \"m22 8-2 2 2 2-2 2 2 2\",\n key: \"101i4y\"\n }\n ],\n [\n \"path\",\n {\n d: \"M8 8v10c0 .55.45 1 1 1h6c.55 0 1-.45 1-1v-2\",\n key: \"1hbad5\"\n }\n ],\n [\n \"path\",\n {\n d: \"M16 10.34V6c0-.55-.45-1-1-1h-4.34\",\n key: \"1x5tf0\"\n }\n ],\n [\n \"line\",\n {\n x1: \"2\",\n x2: \"22\",\n y1: \"2\",\n y2: \"22\",\n key: \"a6p6uj\"\n }\n ]\n];\nconst VibrateOff = createLucideIcon(\"vibrate-off\", __iconNode$R);\nconst __iconNode$Q = [\n [\n \"path\",\n {\n d: \"m2 8 2 2-2 2 2 2-2 2\",\n key: \"sv1b1\"\n }\n ],\n [\n \"path\",\n {\n d: \"m22 8-2 2 2 2-2 2 2 2\",\n key: \"101i4y\"\n }\n ],\n [\n \"rect\",\n {\n width: \"8\",\n height: \"14\",\n x: \"8\",\n y: \"5\",\n rx: \"1\",\n key: \"1oyrl4\"\n }\n ]\n];\nconst Vibrate = createLucideIcon(\"vibrate\", __iconNode$Q);\nconst __iconNode$P = [\n [\n \"path\",\n {\n d: \"M10.66 6H14a2 2 0 0 1 2 2v2.5l5.248-3.062A.5.5 0 0 1 22 7.87v8.196\",\n key: \"w8jjjt\"\n }\n ],\n [\n \"path\",\n {\n d: \"M16 16a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h2\",\n key: \"1xawa7\"\n }\n ],\n [\n \"path\",\n {\n d: \"m2 2 20 20\",\n key: \"1ooewy\"\n }\n ]\n];\nconst VideoOff = createLucideIcon(\"video-off\", __iconNode$P);\nconst __iconNode$O = [\n [\n \"path\",\n {\n d: \"m16 13 5.223 3.482a.5.5 0 0 0 .777-.416V7.87a.5.5 0 0 0-.752-.432L16 10.5\",\n key: \"ftymec\"\n }\n ],\n [\n \"rect\",\n {\n x: \"2\",\n y: \"6\",\n width: \"14\",\n height: \"12\",\n rx: \"2\",\n key: \"158x01\"\n }\n ]\n];\nconst Video = createLucideIcon(\"video\", __iconNode$O);\nconst __iconNode$N = [\n [\n \"rect\",\n {\n width: \"20\",\n height: \"16\",\n x: \"2\",\n y: \"4\",\n rx: \"2\",\n key: \"18n3k1\"\n }\n ],\n [\n \"path\",\n {\n d: \"M2 8h20\",\n key: \"d11cs7\"\n }\n ],\n [\n \"circle\",\n {\n cx: \"8\",\n cy: \"14\",\n r: \"2\",\n key: \"1k2qr5\"\n }\n ],\n [\n \"path\",\n {\n d: \"M8 12h8\",\n key: \"1wcyev\"\n }\n ],\n [\n \"circle\",\n {\n cx: \"16\",\n cy: \"14\",\n r: \"2\",\n key: \"14k7lr\"\n }\n ]\n];\nconst Videotape = createLucideIcon(\"videotape\", __iconNode$N);\nconst __iconNode$M = [\n [\n \"path\",\n {\n d: \"M21 17v2a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-2\",\n key: \"mrq65r\"\n }\n ],\n [\n \"path\",\n {\n d: \"M21 7V5a2 2 0 0 0-2-2H5a2 2 0 0 0-2 2v2\",\n key: \"be3xqs\"\n }\n ],\n [\n \"circle\",\n {\n cx: \"12\",\n cy: \"12\",\n r: \"1\",\n key: \"41hilf\"\n }\n ],\n [\n \"path\",\n {\n d: \"M18.944 12.33a1 1 0 0 0 0-.66 7.5 7.5 0 0 0-13.888 0 1 1 0 0 0 0 .66 7.5 7.5 0 0 0 13.888 0\",\n key: \"11ak4c\"\n }\n ]\n];\nconst View = createLucideIcon(\"view\", __iconNode$M);\nconst __iconNode$L = [\n [\n \"circle\",\n {\n cx: \"6\",\n cy: \"12\",\n r: \"4\",\n key: \"1ehtga\"\n }\n ],\n [\n \"circle\",\n {\n cx: \"18\",\n cy: \"12\",\n r: \"4\",\n key: \"4vafl8\"\n }\n ],\n [\n \"line\",\n {\n x1: \"6\",\n x2: \"18\",\n y1: \"16\",\n y2: \"16\",\n key: \"pmt8us\"\n }\n ]\n];\nconst Voicemail = createLucideIcon(\"voicemail\", __iconNode$L);\nconst __iconNode$K = [\n [\n \"path\",\n {\n d: \"M11.1 7.1a16.55 16.55 0 0 1 10.9 4\",\n key: \"2880wi\"\n }\n ],\n [\n \"path\",\n {\n d: \"M12 12a12.6 12.6 0 0 1-8.7 5\",\n key: \"113sja\"\n }\n ],\n [\n \"path\",\n {\n d: \"M16.8 13.6a16.55 16.55 0 0 1-9 7.5\",\n key: \"1qmsgl\"\n }\n ],\n [\n \"path\",\n {\n d: \"M20.7 17a12.8 12.8 0 0 0-8.7-5 13.3 13.3 0 0 1 0-10\",\n key: \"1bmeqp\"\n }\n ],\n [\n \"path\",\n {\n d: \"M6.3 3.8a16.55 16.55 0 0 0 1.9 11.5\",\n key: \"iekzv9\"\n }\n ],\n [\n \"circle\",\n {\n cx: \"12\",\n cy: \"12\",\n r: \"10\",\n key: \"1mglay\"\n }\n ]\n];\nconst Volleyball = createLucideIcon(\"volleyball\", __iconNode$K);\nconst __iconNode$J = [\n [\n \"path\",\n {\n d: \"M11 4.702a.705.705 0 0 0-1.203-.498L6.413 7.587A1.4 1.4 0 0 1 5.416 8H3a1 1 0 0 0-1 1v6a1 1 0 0 0 1 1h2.416a1.4 1.4 0 0 1 .997.413l3.383 3.384A.705.705 0 0 0 11 19.298z\",\n key: \"uqj9uw\"\n }\n ],\n [\n \"path\",\n {\n d: \"M16 9a5 5 0 0 1 0 6\",\n key: \"1q6k2b\"\n }\n ]\n];\nconst Volume1 = createLucideIcon(\"volume-1\", __iconNode$J);\nconst __iconNode$I = [\n [\n \"path\",\n {\n d: \"M11 4.702a.705.705 0 0 0-1.203-.498L6.413 7.587A1.4 1.4 0 0 1 5.416 8H3a1 1 0 0 0-1 1v6a1 1 0 0 0 1 1h2.416a1.4 1.4 0 0 1 .997.413l3.383 3.384A.705.705 0 0 0 11 19.298z\",\n key: \"uqj9uw\"\n }\n ],\n [\n \"path\",\n {\n d: \"M16 9a5 5 0 0 1 0 6\",\n key: \"1q6k2b\"\n }\n ],\n [\n \"path\",\n {\n d: \"M19.364 18.364a9 9 0 0 0 0-12.728\",\n key: \"ijwkga\"\n }\n ]\n];\nconst Volume2 = createLucideIcon(\"volume-2\", __iconNode$I);\nconst __iconNode$H = [\n [\n \"path\",\n {\n d: \"M16 9a5 5 0 0 1 .95 2.293\",\n key: \"1fgyg8\"\n }\n ],\n [\n \"path\",\n {\n d: \"M19.364 5.636a9 9 0 0 1 1.889 9.96\",\n key: \"l3zxae\"\n }\n ],\n [\n \"path\",\n {\n d: \"m2 2 20 20\",\n key: \"1ooewy\"\n }\n ],\n [\n \"path\",\n {\n d: \"m7 7-.587.587A1.4 1.4 0 0 1 5.416 8H3a1 1 0 0 0-1 1v6a1 1 0 0 0 1 1h2.416a1.4 1.4 0 0 1 .997.413l3.383 3.384A.705.705 0 0 0 11 19.298V11\",\n key: \"1gbwow\"\n }\n ],\n [\n \"path\",\n {\n d: \"M9.828 4.172A.686.686 0 0 1 11 4.657v.686\",\n key: \"s2je0y\"\n }\n ]\n];\nconst VolumeOff = createLucideIcon(\"volume-off\", __iconNode$H);\nconst __iconNode$G = [\n [\n \"path\",\n {\n d: \"M11 4.702a.705.705 0 0 0-1.203-.498L6.413 7.587A1.4 1.4 0 0 1 5.416 8H3a1 1 0 0 0-1 1v6a1 1 0 0 0 1 1h2.416a1.4 1.4 0 0 1 .997.413l3.383 3.384A.705.705 0 0 0 11 19.298z\",\n key: \"uqj9uw\"\n }\n ],\n [\n \"line\",\n {\n x1: \"22\",\n x2: \"16\",\n y1: \"9\",\n y2: \"15\",\n key: \"1ewh16\"\n }\n ],\n [\n \"line\",\n {\n x1: \"16\",\n x2: \"22\",\n y1: \"9\",\n y2: \"15\",\n key: \"5ykzw1\"\n }\n ]\n];\nconst VolumeX = createLucideIcon(\"volume-x\", __iconNode$G);\nconst __iconNode$F = [\n [\n \"path\",\n {\n d: \"M11 4.702a.705.705 0 0 0-1.203-.498L6.413 7.587A1.4 1.4 0 0 1 5.416 8H3a1 1 0 0 0-1 1v6a1 1 0 0 0 1 1h2.416a1.4 1.4 0 0 1 .997.413l3.383 3.384A.705.705 0 0 0 11 19.298z\",\n key: \"uqj9uw\"\n }\n ]\n];\nconst Volume = createLucideIcon(\"volume\", __iconNode$F);\nconst __iconNode$E = [\n [\n \"path\",\n {\n d: \"m9 12 2 2 4-4\",\n key: \"dzmm74\"\n }\n ],\n [\n \"path\",\n {\n d: \"M5 7c0-1.1.9-2 2-2h10a2 2 0 0 1 2 2v12H5V7Z\",\n key: \"1ezoue\"\n }\n ],\n [\n \"path\",\n {\n d: \"M22 19H2\",\n key: \"nuriw5\"\n }\n ]\n];\nconst Vote = createLucideIcon(\"vote\", __iconNode$E);\nconst __iconNode$D = [\n [\n \"rect\",\n {\n width: \"18\",\n height: \"18\",\n x: \"3\",\n y: \"3\",\n rx: \"2\",\n key: \"afitv7\"\n }\n ],\n [\n \"path\",\n {\n d: \"M3 9a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2\",\n key: \"4125el\"\n }\n ],\n [\n \"path\",\n {\n d: \"M3 11h3c.8 0 1.6.3 2.1.9l1.1.9c1.6 1.6 4.1 1.6 5.7 0l1.1-.9c.5-.5 1.3-.9 2.1-.9H21\",\n key: \"1dpki6\"\n }\n ]\n];\nconst WalletCards = createLucideIcon(\"wallet-cards\", __iconNode$D);\nconst __iconNode$C = [\n [\n \"path\",\n {\n d: \"M17 14h.01\",\n key: \"7oqj8z\"\n }\n ],\n [\n \"path\",\n {\n d: \"M7 7h12a2 2 0 0 1 2 2v10a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h14\",\n key: \"u1rqew\"\n }\n ]\n];\nconst WalletMinimal = createLucideIcon(\"wallet-minimal\", __iconNode$C);\nconst __iconNode$B = [\n [\n \"path\",\n {\n d: \"M19 7V4a1 1 0 0 0-1-1H5a2 2 0 0 0 0 4h15a1 1 0 0 1 1 1v4h-3a2 2 0 0 0 0 4h3a1 1 0 0 0 1-1v-2a1 1 0 0 0-1-1\",\n key: \"18etb6\"\n }\n ],\n [\n \"path\",\n {\n d: \"M3 5v14a2 2 0 0 0 2 2h15a1 1 0 0 0 1-1v-4\",\n key: \"xoc0q4\"\n }\n ]\n];\nconst Wallet = createLucideIcon(\"wallet\", __iconNode$B);\nconst __iconNode$A = [\n [\n \"circle\",\n {\n cx: \"8\",\n cy: \"9\",\n r: \"2\",\n key: \"gjzl9d\"\n }\n ],\n [\n \"path\",\n {\n d: \"m9 17 6.1-6.1a2 2 0 0 1 2.81.01L22 15V5a2 2 0 0 0-2-2H4a2 2 0 0 0-2 2v10a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2\",\n key: \"69xh40\"\n }\n ],\n [\n \"path\",\n {\n d: \"M8 21h8\",\n key: \"1ev6f3\"\n }\n ],\n [\n \"path\",\n {\n d: \"M12 17v4\",\n key: \"1riwvh\"\n }\n ]\n];\nconst Wallpaper = createLucideIcon(\"wallpaper\", __iconNode$A);\nconst __iconNode$z = [\n [\n \"path\",\n {\n d: \"m21.64 3.64-1.28-1.28a1.21 1.21 0 0 0-1.72 0L2.36 18.64a1.21 1.21 0 0 0 0 1.72l1.28 1.28a1.2 1.2 0 0 0 1.72 0L21.64 5.36a1.2 1.2 0 0 0 0-1.72\",\n key: \"ul74o6\"\n }\n ],\n [\n \"path\",\n {\n d: \"m14 7 3 3\",\n key: \"1r5n42\"\n }\n ],\n [\n \"path\",\n {\n d: \"M5 6v4\",\n key: \"ilb8ba\"\n }\n ],\n [\n \"path\",\n {\n d: \"M19 14v4\",\n key: \"blhpug\"\n }\n ],\n [\n \"path\",\n {\n d: \"M10 2v2\",\n key: \"7u0qdc\"\n }\n ],\n [\n \"path\",\n {\n d: \"M7 8H3\",\n key: \"zfb6yr\"\n }\n ],\n [\n \"path\",\n {\n d: \"M21 16h-4\",\n key: \"1cnmox\"\n }\n ],\n [\n \"path\",\n {\n d: \"M11 3H9\",\n key: \"1obp7u\"\n }\n ]\n];\nconst WandSparkles = createLucideIcon(\"wand-sparkles\", __iconNode$z);\nconst __iconNode$y = [\n [\n \"path\",\n {\n d: \"M15 4V2\",\n key: \"z1p9b7\"\n }\n ],\n [\n \"path\",\n {\n d: \"M15 16v-2\",\n key: \"px0unx\"\n }\n ],\n [\n \"path\",\n {\n d: \"M8 9h2\",\n key: \"1g203m\"\n }\n ],\n [\n \"path\",\n {\n d: \"M20 9h2\",\n key: \"19tzq7\"\n }\n ],\n [\n \"path\",\n {\n d: \"M17.8 11.8 19 13\",\n key: \"yihg8r\"\n }\n ],\n [\n \"path\",\n {\n d: \"M15 9h.01\",\n key: \"x1ddxp\"\n }\n ],\n [\n \"path\",\n {\n d: \"M17.8 6.2 19 5\",\n key: \"fd4us0\"\n }\n ],\n [\n \"path\",\n {\n d: \"m3 21 9-9\",\n key: \"1jfql5\"\n }\n ],\n [\n \"path\",\n {\n d: \"M12.2 6.2 11 5\",\n key: \"i3da3b\"\n }\n ]\n];\nconst Wand = createLucideIcon(\"wand\", __iconNode$y);\nconst __iconNode$x = [\n [\n \"path\",\n {\n d: \"M18 21V10a1 1 0 0 0-1-1H7a1 1 0 0 0-1 1v11\",\n key: \"pb2vm6\"\n }\n ],\n [\n \"path\",\n {\n d: \"M22 19a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2V8a2 2 0 0 1 1.132-1.803l7.95-3.974a2 2 0 0 1 1.837 0l7.948 3.974A2 2 0 0 1 22 8z\",\n key: \"doq5xv\"\n }\n ],\n [\n \"path\",\n {\n d: \"M6 13h12\",\n key: \"yf64js\"\n }\n ],\n [\n \"path\",\n {\n d: \"M6 17h12\",\n key: \"1jwigz\"\n }\n ]\n];\nconst Warehouse = createLucideIcon(\"warehouse\", __iconNode$x);\nconst __iconNode$w = [\n [\n \"path\",\n {\n d: \"M3 6h3\",\n key: \"155dbl\"\n }\n ],\n [\n \"path\",\n {\n d: \"M17 6h.01\",\n key: \"e2y6kg\"\n }\n ],\n [\n \"rect\",\n {\n width: \"18\",\n height: \"20\",\n x: \"3\",\n y: \"2\",\n rx: \"2\",\n key: \"od3kk9\"\n }\n ],\n [\n \"circle\",\n {\n cx: \"12\",\n cy: \"13\",\n r: \"5\",\n key: \"nlbqau\"\n }\n ],\n [\n \"path\",\n {\n d: \"M12 18a2.5 2.5 0 0 0 0-5 2.5 2.5 0 0 1 0-5\",\n key: \"17lach\"\n }\n ]\n];\nconst WashingMachine = createLucideIcon(\"washing-machine\", __iconNode$w);\nconst __iconNode$v = [\n [\n \"path\",\n {\n d: \"M12 10v2.2l1.6 1\",\n key: \"n3r21l\"\n }\n ],\n [\n \"path\",\n {\n d: \"m16.13 7.66-.81-4.05a2 2 0 0 0-2-1.61h-2.68a2 2 0 0 0-2 1.61l-.78 4.05\",\n key: \"18k57s\"\n }\n ],\n [\n \"path\",\n {\n d: \"m7.88 16.36.8 4a2 2 0 0 0 2 1.61h2.72a2 2 0 0 0 2-1.61l.81-4.05\",\n key: \"16ny36\"\n }\n ],\n [\n \"circle\",\n {\n cx: \"12\",\n cy: \"12\",\n r: \"6\",\n key: \"1vlfrh\"\n }\n ]\n];\nconst Watch = createLucideIcon(\"watch\", __iconNode$v);\nconst __iconNode$u = [\n [\n \"path\",\n {\n d: \"M19 5a2 2 0 0 0-2 2v11\",\n key: \"s41o68\"\n }\n ],\n [\n \"path\",\n {\n d: \"M2 18c.6.5 1.2 1 2.5 1 2.5 0 2.5-2 5-2 2.6 0 2.4 2 5 2 2.5 0 2.5-2 5-2 1.3 0 1.9.5 2.5 1\",\n key: \"rd2r6e\"\n }\n ],\n [\n \"path\",\n {\n d: \"M7 13h10\",\n key: \"1rwob1\"\n }\n ],\n [\n \"path\",\n {\n d: \"M7 9h10\",\n key: \"12czzb\"\n }\n ],\n [\n \"path\",\n {\n d: \"M9 5a2 2 0 0 0-2 2v11\",\n key: \"x0q4gh\"\n }\n ]\n];\nconst WavesLadder = createLucideIcon(\"waves-ladder\", __iconNode$u);\nconst __iconNode$t = [\n [\n \"path\",\n {\n d: \"M2 6c.6.5 1.2 1 2.5 1C7 7 7 5 9.5 5c2.6 0 2.4 2 5 2 2.5 0 2.5-2 5-2 1.3 0 1.9.5 2.5 1\",\n key: \"knzxuh\"\n }\n ],\n [\n \"path\",\n {\n d: \"M2 12c.6.5 1.2 1 2.5 1 2.5 0 2.5-2 5-2 2.6 0 2.4 2 5 2 2.5 0 2.5-2 5-2 1.3 0 1.9.5 2.5 1\",\n key: \"2jd2cc\"\n }\n ],\n [\n \"path\",\n {\n d: \"M2 18c.6.5 1.2 1 2.5 1 2.5 0 2.5-2 5-2 2.6 0 2.4 2 5 2 2.5 0 2.5-2 5-2 1.3 0 1.9.5 2.5 1\",\n key: \"rd2r6e\"\n }\n ]\n];\nconst Waves = createLucideIcon(\"waves\", __iconNode$t);\nconst __iconNode$s = [\n [\n \"circle\",\n {\n cx: \"12\",\n cy: \"4.5\",\n r: \"2.5\",\n key: \"r5ysbb\"\n }\n ],\n [\n \"path\",\n {\n d: \"m10.2 6.3-3.9 3.9\",\n key: \"1nzqf6\"\n }\n ],\n [\n \"circle\",\n {\n cx: \"4.5\",\n cy: \"12\",\n r: \"2.5\",\n key: \"jydg6v\"\n }\n ],\n [\n \"path\",\n {\n d: \"M7 12h10\",\n key: \"b7w52i\"\n }\n ],\n [\n \"circle\",\n {\n cx: \"19.5\",\n cy: \"12\",\n r: \"2.5\",\n key: \"1piiel\"\n }\n ],\n [\n \"path\",\n {\n d: \"m13.8 17.7 3.9-3.9\",\n key: \"1wyg1y\"\n }\n ],\n [\n \"circle\",\n {\n cx: \"12\",\n cy: \"19.5\",\n r: \"2.5\",\n key: \"13o1pw\"\n }\n ]\n];\nconst Waypoints = createLucideIcon(\"waypoints\", __iconNode$s);\nconst __iconNode$r = [\n [\n \"circle\",\n {\n cx: \"12\",\n cy: \"10\",\n r: \"8\",\n key: \"1gshiw\"\n }\n ],\n [\n \"circle\",\n {\n cx: \"12\",\n cy: \"10\",\n r: \"3\",\n key: \"ilqhr7\"\n }\n ],\n [\n \"path\",\n {\n d: \"M7 22h10\",\n key: \"10w4w3\"\n }\n ],\n [\n \"path\",\n {\n d: \"M12 22v-4\",\n key: \"1utk9m\"\n }\n ]\n];\nconst Webcam = createLucideIcon(\"webcam\", __iconNode$r);\nconst __iconNode$q = [\n [\n \"path\",\n {\n d: \"M17 17h-5c-1.09-.02-1.94.92-2.5 1.9A3 3 0 1 1 2.57 15\",\n key: \"1tvl6x\"\n }\n ],\n [\n \"path\",\n {\n d: \"M9 3.4a4 4 0 0 1 6.52.66\",\n key: \"q04jfq\"\n }\n ],\n [\n \"path\",\n {\n d: \"m6 17 3.1-5.8a2.5 2.5 0 0 0 .057-2.05\",\n key: \"azowf0\"\n }\n ],\n [\n \"path\",\n {\n d: \"M20.3 20.3a4 4 0 0 1-2.3.7\",\n key: \"5joiws\"\n }\n ],\n [\n \"path\",\n {\n d: \"M18.6 13a4 4 0 0 1 3.357 3.414\",\n key: \"cangb8\"\n }\n ],\n [\n \"path\",\n {\n d: \"m12 6 .6 1\",\n key: \"tpjl1n\"\n }\n ],\n [\n \"path\",\n {\n d: \"m2 2 20 20\",\n key: \"1ooewy\"\n }\n ]\n];\nconst WebhookOff = createLucideIcon(\"webhook-off\", __iconNode$q);\nconst __iconNode$p = [\n [\n \"path\",\n {\n d: \"M18 16.98h-5.99c-1.1 0-1.95.94-2.48 1.9A4 4 0 0 1 2 17c.01-.7.2-1.4.57-2\",\n key: \"q3hayz\"\n }\n ],\n [\n \"path\",\n {\n d: \"m6 17 3.13-5.78c.53-.97.1-2.18-.5-3.1a4 4 0 1 1 6.89-4.06\",\n key: \"1go1hn\"\n }\n ],\n [\n \"path\",\n {\n d: \"m12 6 3.13 5.73C15.66 12.7 16.9 13 18 13a4 4 0 0 1 0 8\",\n key: \"qlwsc0\"\n }\n ]\n];\nconst Webhook = createLucideIcon(\"webhook\", __iconNode$p);\nconst __iconNode$o = [\n [\n \"circle\",\n {\n cx: \"12\",\n cy: \"5\",\n r: \"3\",\n key: \"rqqgnr\"\n }\n ],\n [\n \"path\",\n {\n d: \"M6.5 8a2 2 0 0 0-1.905 1.46L2.1 18.5A2 2 0 0 0 4 21h16a2 2 0 0 0 1.925-2.54L19.4 9.5A2 2 0 0 0 17.48 8Z\",\n key: \"56o5sh\"\n }\n ]\n];\nconst Weight = createLucideIcon(\"weight\", __iconNode$o);\nconst __iconNode$n = [\n [\n \"path\",\n {\n d: \"m2 22 10-10\",\n key: \"28ilpk\"\n }\n ],\n [\n \"path\",\n {\n d: \"m16 8-1.17 1.17\",\n key: \"1qqm82\"\n }\n ],\n [\n \"path\",\n {\n d: \"M3.47 12.53 5 11l1.53 1.53a3.5 3.5 0 0 1 0 4.94L5 19l-1.53-1.53a3.5 3.5 0 0 1 0-4.94Z\",\n key: \"1rdhi6\"\n }\n ],\n [\n \"path\",\n {\n d: \"m8 8-.53.53a3.5 3.5 0 0 0 0 4.94L9 15l1.53-1.53c.55-.55.88-1.25.98-1.97\",\n key: \"4wz8re\"\n }\n ],\n [\n \"path\",\n {\n d: \"M10.91 5.26c.15-.26.34-.51.56-.73L13 3l1.53 1.53a3.5 3.5 0 0 1 .28 4.62\",\n key: \"rves66\"\n }\n ],\n [\n \"path\",\n {\n d: \"M20 2h2v2a4 4 0 0 1-4 4h-2V6a4 4 0 0 1 4-4Z\",\n key: \"19rau1\"\n }\n ],\n [\n \"path\",\n {\n d: \"M11.47 17.47 13 19l-1.53 1.53a3.5 3.5 0 0 1-4.94 0L5 19l1.53-1.53a3.5 3.5 0 0 1 4.94 0Z\",\n key: \"tc8ph9\"\n }\n ],\n [\n \"path\",\n {\n d: \"m16 16-.53.53a3.5 3.5 0 0 1-4.94 0L9 15l1.53-1.53a3.49 3.49 0 0 1 1.97-.98\",\n key: \"ak46r\"\n }\n ],\n [\n \"path\",\n {\n d: \"M18.74 13.09c.26-.15.51-.34.73-.56L21 11l-1.53-1.53a3.5 3.5 0 0 0-4.62-.28\",\n key: \"1tw520\"\n }\n ],\n [\n \"line\",\n {\n x1: \"2\",\n x2: \"22\",\n y1: \"2\",\n y2: \"22\",\n key: \"a6p6uj\"\n }\n ]\n];\nconst WheatOff = createLucideIcon(\"wheat-off\", __iconNode$n);\nconst __iconNode$m = [\n [\n \"path\",\n {\n d: \"M2 22 16 8\",\n key: \"60hf96\"\n }\n ],\n [\n \"path\",\n {\n d: \"M3.47 12.53 5 11l1.53 1.53a3.5 3.5 0 0 1 0 4.94L5 19l-1.53-1.53a3.5 3.5 0 0 1 0-4.94Z\",\n key: \"1rdhi6\"\n }\n ],\n [\n \"path\",\n {\n d: \"M7.47 8.53 9 7l1.53 1.53a3.5 3.5 0 0 1 0 4.94L9 15l-1.53-1.53a3.5 3.5 0 0 1 0-4.94Z\",\n key: \"1sdzmb\"\n }\n ],\n [\n \"path\",\n {\n d: \"M11.47 4.53 13 3l1.53 1.53a3.5 3.5 0 0 1 0 4.94L13 11l-1.53-1.53a3.5 3.5 0 0 1 0-4.94Z\",\n key: \"eoatbi\"\n }\n ],\n [\n \"path\",\n {\n d: \"M20 2h2v2a4 4 0 0 1-4 4h-2V6a4 4 0 0 1 4-4Z\",\n key: \"19rau1\"\n }\n ],\n [\n \"path\",\n {\n d: \"M11.47 17.47 13 19l-1.53 1.53a3.5 3.5 0 0 1-4.94 0L5 19l1.53-1.53a3.5 3.5 0 0 1 4.94 0Z\",\n key: \"tc8ph9\"\n }\n ],\n [\n \"path\",\n {\n d: \"M15.47 13.47 17 15l-1.53 1.53a3.5 3.5 0 0 1-4.94 0L9 15l1.53-1.53a3.5 3.5 0 0 1 4.94 0Z\",\n key: \"2m8kc5\"\n }\n ],\n [\n \"path\",\n {\n d: \"M19.47 9.47 21 11l-1.53 1.53a3.5 3.5 0 0 1-4.94 0L13 11l1.53-1.53a3.5 3.5 0 0 1 4.94 0Z\",\n key: \"vex3ng\"\n }\n ]\n];\nconst Wheat = createLucideIcon(\"wheat\", __iconNode$m);\nconst __iconNode$l = [\n [\n \"circle\",\n {\n cx: \"7\",\n cy: \"12\",\n r: \"3\",\n key: \"12clwm\"\n }\n ],\n [\n \"path\",\n {\n d: \"M10 9v6\",\n key: \"17i7lo\"\n }\n ],\n [\n \"circle\",\n {\n cx: \"17\",\n cy: \"12\",\n r: \"3\",\n key: \"gl7c2s\"\n }\n ],\n [\n \"path\",\n {\n d: \"M14 7v8\",\n key: \"dl84cr\"\n }\n ],\n [\n \"path\",\n {\n d: \"M22 17v1c0 .5-.5 1-1 1H3c-.5 0-1-.5-1-1v-1\",\n key: \"lt2kga\"\n }\n ]\n];\nconst WholeWord = createLucideIcon(\"whole-word\", __iconNode$l);\nconst __iconNode$k = [\n [\n \"path\",\n {\n d: \"m14.305 19.53.923-.382\",\n key: \"3m78fa\"\n }\n ],\n [\n \"path\",\n {\n d: \"m15.228 16.852-.923-.383\",\n key: \"npixar\"\n }\n ],\n [\n \"path\",\n {\n d: \"m16.852 15.228-.383-.923\",\n key: \"5xggr7\"\n }\n ],\n [\n \"path\",\n {\n d: \"m16.852 20.772-.383.924\",\n key: \"dpfhf9\"\n }\n ],\n [\n \"path\",\n {\n d: \"m19.148 15.228.383-.923\",\n key: \"1reyyz\"\n }\n ],\n [\n \"path\",\n {\n d: \"m19.53 21.696-.382-.924\",\n key: \"1goivc\"\n }\n ],\n [\n \"path\",\n {\n d: \"M2 7.82a15 15 0 0 1 20 0\",\n key: \"1ovjuk\"\n }\n ],\n [\n \"path\",\n {\n d: \"m20.772 16.852.924-.383\",\n key: \"htqkph\"\n }\n ],\n [\n \"path\",\n {\n d: \"m20.772 19.148.924.383\",\n key: \"9w9pjp\"\n }\n ],\n [\n \"path\",\n {\n d: \"M5 11.858a10 10 0 0 1 11.5-1.785\",\n key: \"3sn16i\"\n }\n ],\n [\n \"path\",\n {\n d: \"M8.5 15.429a5 5 0 0 1 2.413-1.31\",\n key: \"1pxovh\"\n }\n ],\n [\n \"circle\",\n {\n cx: \"18\",\n cy: \"18\",\n r: \"3\",\n key: \"1xkwt0\"\n }\n ]\n];\nconst WifiCog = createLucideIcon(\"wifi-cog\", __iconNode$k);\nconst __iconNode$j = [\n [\n \"path\",\n {\n d: \"M12 20h.01\",\n key: \"zekei9\"\n }\n ],\n [\n \"path\",\n {\n d: \"M5 12.859a10 10 0 0 1 14 0\",\n key: \"1x1e6c\"\n }\n ],\n [\n \"path\",\n {\n d: \"M8.5 16.429a5 5 0 0 1 7 0\",\n key: \"1bycff\"\n }\n ]\n];\nconst WifiHigh = createLucideIcon(\"wifi-high\", __iconNode$j);\nconst __iconNode$i = [\n [\n \"path\",\n {\n d: \"M12 20h.01\",\n key: \"zekei9\"\n }\n ],\n [\n \"path\",\n {\n d: \"M8.5 16.429a5 5 0 0 1 7 0\",\n key: \"1bycff\"\n }\n ]\n];\nconst WifiLow = createLucideIcon(\"wifi-low\", __iconNode$i);\nconst __iconNode$h = [\n [\n \"path\",\n {\n d: \"M12 20h.01\",\n key: \"zekei9\"\n }\n ],\n [\n \"path\",\n {\n d: \"M8.5 16.429a5 5 0 0 1 7 0\",\n key: \"1bycff\"\n }\n ],\n [\n \"path\",\n {\n d: \"M5 12.859a10 10 0 0 1 5.17-2.69\",\n key: \"1dl1wf\"\n }\n ],\n [\n \"path\",\n {\n d: \"M19 12.859a10 10 0 0 0-2.007-1.523\",\n key: \"4k23kn\"\n }\n ],\n [\n \"path\",\n {\n d: \"M2 8.82a15 15 0 0 1 4.177-2.643\",\n key: \"1grhjp\"\n }\n ],\n [\n \"path\",\n {\n d: \"M22 8.82a15 15 0 0 0-11.288-3.764\",\n key: \"z3jwby\"\n }\n ],\n [\n \"path\",\n {\n d: \"m2 2 20 20\",\n key: \"1ooewy\"\n }\n ]\n];\nconst WifiOff = createLucideIcon(\"wifi-off\", __iconNode$h);\nconst __iconNode$g = [\n [\n \"path\",\n {\n d: \"M2 8.82a15 15 0 0 1 20 0\",\n key: \"dnpr2z\"\n }\n ],\n [\n \"path\",\n {\n d: \"M21.378 16.626a1 1 0 0 0-3.004-3.004l-4.01 4.012a2 2 0 0 0-.506.854l-.837 2.87a.5.5 0 0 0 .62.62l2.87-.837a2 2 0 0 0 .854-.506z\",\n key: \"1817ys\"\n }\n ],\n [\n \"path\",\n {\n d: \"M5 12.859a10 10 0 0 1 10.5-2.222\",\n key: \"rpb7oy\"\n }\n ],\n [\n \"path\",\n {\n d: \"M8.5 16.429a5 5 0 0 1 3-1.406\",\n key: \"r8bmzl\"\n }\n ]\n];\nconst WifiPen = createLucideIcon(\"wifi-pen\", __iconNode$g);\nconst __iconNode$f = [\n [\n \"path\",\n {\n d: \"M12 20h.01\",\n key: \"zekei9\"\n }\n ]\n];\nconst WifiZero = createLucideIcon(\"wifi-zero\", __iconNode$f);\nconst __iconNode$e = [\n [\n \"path\",\n {\n d: \"M12 20h.01\",\n key: \"zekei9\"\n }\n ],\n [\n \"path\",\n {\n d: \"M2 8.82a15 15 0 0 1 20 0\",\n key: \"dnpr2z\"\n }\n ],\n [\n \"path\",\n {\n d: \"M5 12.859a10 10 0 0 1 14 0\",\n key: \"1x1e6c\"\n }\n ],\n [\n \"path\",\n {\n d: \"M8.5 16.429a5 5 0 0 1 7 0\",\n key: \"1bycff\"\n }\n ]\n];\nconst Wifi = createLucideIcon(\"wifi\", __iconNode$e);\nconst __iconNode$d = [\n [\n \"path\",\n {\n d: \"M10 2v8\",\n key: \"d4bbey\"\n }\n ],\n [\n \"path\",\n {\n d: \"M12.8 21.6A2 2 0 1 0 14 18H2\",\n key: \"19kp1d\"\n }\n ],\n [\n \"path\",\n {\n d: \"M17.5 10a2.5 2.5 0 1 1 2 4H2\",\n key: \"19kpjc\"\n }\n ],\n [\n \"path\",\n {\n d: \"m6 6 4 4 4-4\",\n key: \"k13n16\"\n }\n ]\n];\nconst WindArrowDown = createLucideIcon(\"wind-arrow-down\", __iconNode$d);\nconst __iconNode$c = [\n [\n \"path\",\n {\n d: \"M8 22h8\",\n key: \"rmew8v\"\n }\n ],\n [\n \"path\",\n {\n d: \"M7 10h3m7 0h-1.343\",\n key: \"v48bem\"\n }\n ],\n [\n \"path\",\n {\n d: \"M12 15v7\",\n key: \"t2xh3l\"\n }\n ],\n [\n \"path\",\n {\n d: \"M7.307 7.307A12.33 12.33 0 0 0 7 10a5 5 0 0 0 7.391 4.391M8.638 2.981C8.75 2.668 8.872 2.34 9 2h6c1.5 4 2 6 2 8 0 .407-.05.809-.145 1.198\",\n key: \"1ymjlu\"\n }\n ],\n [\n \"line\",\n {\n x1: \"2\",\n x2: \"22\",\n y1: \"2\",\n y2: \"22\",\n key: \"a6p6uj\"\n }\n ]\n];\nconst WineOff = createLucideIcon(\"wine-off\", __iconNode$c);\nconst __iconNode$b = [\n [\n \"path\",\n {\n d: \"M12.8 19.6A2 2 0 1 0 14 16H2\",\n key: \"148xed\"\n }\n ],\n [\n \"path\",\n {\n d: \"M17.5 8a2.5 2.5 0 1 1 2 4H2\",\n key: \"1u4tom\"\n }\n ],\n [\n \"path\",\n {\n d: \"M9.8 4.4A2 2 0 1 1 11 8H2\",\n key: \"75valh\"\n }\n ]\n];\nconst Wind = createLucideIcon(\"wind\", __iconNode$b);\nconst __iconNode$a = [\n [\n \"path\",\n {\n d: \"M8 22h8\",\n key: \"rmew8v\"\n }\n ],\n [\n \"path\",\n {\n d: \"M7 10h10\",\n key: \"1101jm\"\n }\n ],\n [\n \"path\",\n {\n d: \"M12 15v7\",\n key: \"t2xh3l\"\n }\n ],\n [\n \"path\",\n {\n d: \"M12 15a5 5 0 0 0 5-5c0-2-.5-4-2-8H9c-1.5 4-2 6-2 8a5 5 0 0 0 5 5Z\",\n key: \"10ffi3\"\n }\n ]\n];\nconst Wine = createLucideIcon(\"wine\", __iconNode$a);\nconst __iconNode$9 = [\n [\n \"rect\",\n {\n width: \"8\",\n height: \"8\",\n x: \"3\",\n y: \"3\",\n rx: \"2\",\n key: \"by2w9f\"\n }\n ],\n [\n \"path\",\n {\n d: \"M7 11v4a2 2 0 0 0 2 2h4\",\n key: \"xkn7yn\"\n }\n ],\n [\n \"rect\",\n {\n width: \"8\",\n height: \"8\",\n x: \"13\",\n y: \"13\",\n rx: \"2\",\n key: \"1cgmvn\"\n }\n ]\n];\nconst Workflow = createLucideIcon(\"workflow\", __iconNode$9);\nconst __iconNode$8 = [\n [\n \"path\",\n {\n d: \"m19 12-1.5 3\",\n key: \"9bcu4o\"\n }\n ],\n [\n \"path\",\n {\n d: \"M19.63 18.81 22 20\",\n key: \"121v98\"\n }\n ],\n [\n \"path\",\n {\n d: \"M6.47 8.23a1.68 1.68 0 0 1 2.44 1.93l-.64 2.08a6.76 6.76 0 0 0 10.16 7.67l.42-.27a1 1 0 1 0-2.73-4.21l-.42.27a1.76 1.76 0 0 1-2.63-1.99l.64-2.08A6.66 6.66 0 0 0 3.94 3.9l-.7.4a1 1 0 1 0 2.55 4.34z\",\n key: \"1tij6q\"\n }\n ]\n];\nconst Worm = createLucideIcon(\"worm\", __iconNode$8);\nconst __iconNode$7 = [\n [\n \"path\",\n {\n d: \"m16 16-2 2 2 2\",\n key: \"kkc6pm\"\n }\n ],\n [\n \"path\",\n {\n d: \"M3 12h15a3 3 0 1 1 0 6h-4\",\n key: \"1cl7v7\"\n }\n ],\n [\n \"path\",\n {\n d: \"M3 18h7\",\n key: \"sq21v6\"\n }\n ],\n [\n \"path\",\n {\n d: \"M3 6h18\",\n key: \"d0wm0j\"\n }\n ]\n];\nconst WrapText = createLucideIcon(\"wrap-text\", __iconNode$7);\nconst __iconNode$6 = [\n [\n \"path\",\n {\n d: \"M14.7 6.3a1 1 0 0 0 0 1.4l1.6 1.6a1 1 0 0 0 1.4 0l3.77-3.77a6 6 0 0 1-7.94 7.94l-6.91 6.91a2.12 2.12 0 0 1-3-3l6.91-6.91a6 6 0 0 1 7.94-7.94l-3.76 3.76z\",\n key: \"cbrjhi\"\n }\n ]\n];\nconst Wrench = createLucideIcon(\"wrench\", __iconNode$6);\nconst __iconNode$5 = [\n [\n \"path\",\n {\n d: \"M18 6 6 18\",\n key: \"1bl5f8\"\n }\n ],\n [\n \"path\",\n {\n d: \"m6 6 12 12\",\n key: \"d8bk6v\"\n }\n ]\n];\nconst X = createLucideIcon(\"x\", __iconNode$5);\nconst __iconNode$4 = [\n [\n \"path\",\n {\n d: \"M2.5 17a24.12 24.12 0 0 1 0-10 2 2 0 0 1 1.4-1.4 49.56 49.56 0 0 1 16.2 0A2 2 0 0 1 21.5 7a24.12 24.12 0 0 1 0 10 2 2 0 0 1-1.4 1.4 49.55 49.55 0 0 1-16.2 0A2 2 0 0 1 2.5 17\",\n key: \"1q2vi4\"\n }\n ],\n [\n \"path\",\n {\n d: \"m10 15 5-3-5-3z\",\n key: \"1jp15x\"\n }\n ]\n];\nconst Youtube = createLucideIcon(\"youtube\", __iconNode$4);\nconst __iconNode$3 = [\n [\n \"path\",\n {\n d: \"M10.513 4.856 13.12 2.17a.5.5 0 0 1 .86.46l-1.377 4.317\",\n key: \"193nxd\"\n }\n ],\n [\n \"path\",\n {\n d: \"M15.656 10H20a1 1 0 0 1 .78 1.63l-1.72 1.773\",\n key: \"27a7lr\"\n }\n ],\n [\n \"path\",\n {\n d: \"M16.273 16.273 10.88 21.83a.5.5 0 0 1-.86-.46l1.92-6.02A1 1 0 0 0 11 14H4a1 1 0 0 1-.78-1.63l4.507-4.643\",\n key: \"1e0qe9\"\n }\n ],\n [\n \"path\",\n {\n d: \"m2 2 20 20\",\n key: \"1ooewy\"\n }\n ]\n];\nconst ZapOff = createLucideIcon(\"zap-off\", __iconNode$3);\nconst __iconNode$2 = [\n [\n \"path\",\n {\n d: \"M4 14a1 1 0 0 1-.78-1.63l9.9-10.2a.5.5 0 0 1 .86.46l-1.92 6.02A1 1 0 0 0 13 10h7a1 1 0 0 1 .78 1.63l-9.9 10.2a.5.5 0 0 1-.86-.46l1.92-6.02A1 1 0 0 0 11 14z\",\n key: \"1xq2db\"\n }\n ]\n];\nconst Zap = createLucideIcon(\"zap\", __iconNode$2);\nconst __iconNode$1 = [\n [\n \"circle\",\n {\n cx: \"11\",\n cy: \"11\",\n r: \"8\",\n key: \"4ej97u\"\n }\n ],\n [\n \"line\",\n {\n x1: \"21\",\n x2: \"16.65\",\n y1: \"21\",\n y2: \"16.65\",\n key: \"13gj7c\"\n }\n ],\n [\n \"line\",\n {\n x1: \"11\",\n x2: \"11\",\n y1: \"8\",\n y2: \"14\",\n key: \"1vmskp\"\n }\n ],\n [\n \"line\",\n {\n x1: \"8\",\n x2: \"14\",\n y1: \"11\",\n y2: \"11\",\n key: \"durymu\"\n }\n ]\n];\nconst ZoomIn = createLucideIcon(\"zoom-in\", __iconNode$1);\nconst __iconNode = [\n [\n \"circle\",\n {\n cx: \"11\",\n cy: \"11\",\n r: \"8\",\n key: \"4ej97u\"\n }\n ],\n [\n \"line\",\n {\n x1: \"21\",\n x2: \"16.65\",\n y1: \"21\",\n y2: \"16.65\",\n key: \"13gj7c\"\n }\n ],\n [\n \"line\",\n {\n x1: \"8\",\n x2: \"14\",\n y1: \"11\",\n y2: \"11\",\n key: \"durymu\"\n }\n ]\n];\nconst ZoomOut = createLucideIcon(\"zoom-out\", __iconNode);\nvar index = /*#__PURE__*/ Object.freeze({\n __proto__: null,\n AArrowDown: AArrowDown,\n AArrowUp: AArrowUp,\n ALargeSmall: ALargeSmall,\n Accessibility: Accessibility,\n Activity: Activity,\n AirVent: AirVent,\n Airplay: Airplay,\n AlarmClock: AlarmClock,\n AlarmClockCheck: AlarmClockCheck,\n AlarmClockMinus: AlarmClockMinus,\n AlarmClockOff: AlarmClockOff,\n AlarmClockPlus: AlarmClockPlus,\n AlarmSmoke: AlarmSmoke,\n Album: Album,\n AlignCenter: AlignCenter,\n AlignCenterHorizontal: AlignCenterHorizontal,\n AlignCenterVertical: AlignCenterVertical,\n AlignEndHorizontal: AlignEndHorizontal,\n AlignEndVertical: AlignEndVertical,\n AlignHorizontalDistributeCenter: AlignHorizontalDistributeCenter,\n AlignHorizontalDistributeEnd: AlignHorizontalDistributeEnd,\n AlignHorizontalDistributeStart: AlignHorizontalDistributeStart,\n AlignHorizontalJustifyCenter: AlignHorizontalJustifyCenter,\n AlignHorizontalJustifyEnd: AlignHorizontalJustifyEnd,\n AlignHorizontalJustifyStart: AlignHorizontalJustifyStart,\n AlignHorizontalSpaceAround: AlignHorizontalSpaceAround,\n AlignHorizontalSpaceBetween: AlignHorizontalSpaceBetween,\n AlignJustify: AlignJustify,\n AlignLeft: AlignLeft,\n AlignRight: AlignRight,\n AlignStartHorizontal: AlignStartHorizontal,\n AlignStartVertical: AlignStartVertical,\n AlignVerticalDistributeCenter: AlignVerticalDistributeCenter,\n AlignVerticalDistributeEnd: AlignVerticalDistributeEnd,\n AlignVerticalDistributeStart: AlignVerticalDistributeStart,\n AlignVerticalJustifyCenter: AlignVerticalJustifyCenter,\n AlignVerticalJustifyEnd: AlignVerticalJustifyEnd,\n AlignVerticalJustifyStart: AlignVerticalJustifyStart,\n AlignVerticalSpaceAround: AlignVerticalSpaceAround,\n AlignVerticalSpaceBetween: AlignVerticalSpaceBetween,\n Ambulance: Ambulance,\n Ampersand: Ampersand,\n Ampersands: Ampersands,\n Amphora: Amphora,\n Anchor: Anchor,\n Angry: Angry,\n Annoyed: Annoyed,\n Antenna: Antenna,\n Anvil: Anvil,\n Aperture: Aperture,\n AppWindow: AppWindow,\n AppWindowMac: AppWindowMac,\n Apple: Apple,\n Archive: Archive,\n ArchiveRestore: ArchiveRestore,\n ArchiveX: ArchiveX,\n Armchair: Armchair,\n ArrowBigDown: ArrowBigDown,\n ArrowBigDownDash: ArrowBigDownDash,\n ArrowBigLeft: ArrowBigLeft,\n ArrowBigLeftDash: ArrowBigLeftDash,\n ArrowBigRight: ArrowBigRight,\n ArrowBigRightDash: ArrowBigRightDash,\n ArrowBigUp: ArrowBigUp,\n ArrowBigUpDash: ArrowBigUpDash,\n ArrowDown: ArrowDown,\n ArrowDown01: ArrowDown01,\n ArrowDown10: ArrowDown10,\n ArrowDownAZ: ArrowDownAZ,\n ArrowDownFromLine: ArrowDownFromLine,\n ArrowDownLeft: ArrowDownLeft,\n ArrowDownNarrowWide: ArrowDownNarrowWide,\n ArrowDownRight: ArrowDownRight,\n ArrowDownToDot: ArrowDownToDot,\n ArrowDownToLine: ArrowDownToLine,\n ArrowDownUp: ArrowDownUp,\n ArrowDownWideNarrow: ArrowDownWideNarrow,\n ArrowDownZA: ArrowDownZA,\n ArrowLeft: ArrowLeft,\n ArrowLeftFromLine: ArrowLeftFromLine,\n ArrowLeftRight: ArrowLeftRight,\n ArrowLeftToLine: ArrowLeftToLine,\n ArrowRight: ArrowRight,\n ArrowRightFromLine: ArrowRightFromLine,\n ArrowRightLeft: ArrowRightLeft,\n ArrowRightToLine: ArrowRightToLine,\n ArrowUp: ArrowUp,\n ArrowUp01: ArrowUp01,\n ArrowUp10: ArrowUp10,\n ArrowUpAZ: ArrowUpAZ,\n ArrowUpDown: ArrowUpDown,\n ArrowUpFromDot: ArrowUpFromDot,\n ArrowUpFromLine: ArrowUpFromLine,\n ArrowUpLeft: ArrowUpLeft,\n ArrowUpNarrowWide: ArrowUpNarrowWide,\n ArrowUpRight: ArrowUpRight,\n ArrowUpToLine: ArrowUpToLine,\n ArrowUpWideNarrow: ArrowUpWideNarrow,\n ArrowUpZA: ArrowUpZA,\n ArrowsUpFromLine: ArrowsUpFromLine,\n Asterisk: Asterisk,\n AtSign: AtSign,\n Atom: Atom,\n AudioLines: AudioLines,\n AudioWaveform: AudioWaveform,\n Award: Award,\n Axe: Axe,\n Axis3d: Axis3d,\n Baby: Baby,\n Backpack: Backpack,\n Badge: Badge,\n BadgeAlert: BadgeAlert,\n BadgeCent: BadgeCent,\n BadgeCheck: BadgeCheck,\n BadgeDollarSign: BadgeDollarSign,\n BadgeEuro: BadgeEuro,\n BadgeIndianRupee: BadgeIndianRupee,\n BadgeInfo: BadgeInfo,\n BadgeJapaneseYen: BadgeJapaneseYen,\n BadgeMinus: BadgeMinus,\n BadgePercent: BadgePercent,\n BadgePlus: BadgePlus,\n BadgePoundSterling: BadgePoundSterling,\n BadgeQuestionMark: BadgeQuestionMark,\n BadgeRussianRuble: BadgeRussianRuble,\n BadgeSwissFranc: BadgeSwissFranc,\n BadgeX: BadgeX,\n BaggageClaim: BaggageClaim,\n Ban: Ban,\n Banana: Banana,\n Bandage: Bandage,\n Banknote: Banknote,\n BanknoteArrowDown: BanknoteArrowDown,\n BanknoteArrowUp: BanknoteArrowUp,\n BanknoteX: BanknoteX,\n Barcode: Barcode,\n Barrel: Barrel,\n Baseline: Baseline,\n Bath: Bath,\n Battery: Battery,\n BatteryCharging: BatteryCharging,\n BatteryFull: BatteryFull,\n BatteryLow: BatteryLow,\n BatteryMedium: BatteryMedium,\n BatteryPlus: BatteryPlus,\n BatteryWarning: BatteryWarning,\n Beaker: Beaker,\n Bean: Bean,\n BeanOff: BeanOff,\n Bed: Bed,\n BedDouble: BedDouble,\n BedSingle: BedSingle,\n Beef: Beef,\n Beer: Beer,\n BeerOff: BeerOff,\n Bell: Bell,\n BellDot: BellDot,\n BellElectric: BellElectric,\n BellMinus: BellMinus,\n BellOff: BellOff,\n BellPlus: BellPlus,\n BellRing: BellRing,\n BetweenHorizontalEnd: BetweenHorizontalEnd,\n BetweenHorizontalStart: BetweenHorizontalStart,\n BetweenVerticalEnd: BetweenVerticalEnd,\n BetweenVerticalStart: BetweenVerticalStart,\n BicepsFlexed: BicepsFlexed,\n Bike: Bike,\n Binary: Binary,\n Binoculars: Binoculars,\n Biohazard: Biohazard,\n Bird: Bird,\n Bitcoin: Bitcoin,\n Blend: Blend,\n Blinds: Blinds,\n Blocks: Blocks,\n Bluetooth: Bluetooth,\n BluetoothConnected: BluetoothConnected,\n BluetoothOff: BluetoothOff,\n BluetoothSearching: BluetoothSearching,\n Bold: Bold,\n Bolt: Bolt,\n Bomb: Bomb,\n Bone: Bone,\n Book: Book,\n BookA: BookA,\n BookAlert: BookAlert,\n BookAudio: BookAudio,\n BookCheck: BookCheck,\n BookCopy: BookCopy,\n BookDashed: BookDashed,\n BookDown: BookDown,\n BookHeadphones: BookHeadphones,\n BookHeart: BookHeart,\n BookImage: BookImage,\n BookKey: BookKey,\n BookLock: BookLock,\n BookMarked: BookMarked,\n BookMinus: BookMinus,\n BookOpen: BookOpen,\n BookOpenCheck: BookOpenCheck,\n BookOpenText: BookOpenText,\n BookPlus: BookPlus,\n BookText: BookText,\n BookType: BookType,\n BookUp: BookUp,\n BookUp2: BookUp2,\n BookUser: BookUser,\n BookX: BookX,\n Bookmark: Bookmark,\n BookmarkCheck: BookmarkCheck,\n BookmarkMinus: BookmarkMinus,\n BookmarkPlus: BookmarkPlus,\n BookmarkX: BookmarkX,\n BoomBox: BoomBox,\n Bot: Bot,\n BotMessageSquare: BotMessageSquare,\n BotOff: BotOff,\n BottleWine: BottleWine,\n BowArrow: BowArrow,\n Box: Box,\n Boxes: Boxes,\n Braces: Braces,\n Brackets: Brackets,\n Brain: Brain,\n BrainCircuit: BrainCircuit,\n BrainCog: BrainCog,\n BrickWall: BrickWall,\n BrickWallFire: BrickWallFire,\n Briefcase: Briefcase,\n BriefcaseBusiness: BriefcaseBusiness,\n BriefcaseConveyorBelt: BriefcaseConveyorBelt,\n BriefcaseMedical: BriefcaseMedical,\n BringToFront: BringToFront,\n Brush: Brush,\n BrushCleaning: BrushCleaning,\n Bubbles: Bubbles,\n Bug: Bug,\n BugOff: BugOff,\n BugPlay: BugPlay,\n Building: Building,\n Building2: Building2,\n Bus: Bus,\n BusFront: BusFront,\n Cable: Cable,\n CableCar: CableCar,\n Cake: Cake,\n CakeSlice: CakeSlice,\n Calculator: Calculator,\n Calendar: Calendar,\n Calendar1: Calendar1,\n CalendarArrowDown: CalendarArrowDown,\n CalendarArrowUp: CalendarArrowUp,\n CalendarCheck: CalendarCheck,\n CalendarCheck2: CalendarCheck2,\n CalendarClock: CalendarClock,\n CalendarCog: CalendarCog,\n CalendarDays: CalendarDays,\n CalendarFold: CalendarFold,\n CalendarHeart: CalendarHeart,\n CalendarMinus: CalendarMinus,\n CalendarMinus2: CalendarMinus2,\n CalendarOff: CalendarOff,\n CalendarPlus: CalendarPlus,\n CalendarPlus2: CalendarPlus2,\n CalendarRange: CalendarRange,\n CalendarSearch: CalendarSearch,\n CalendarSync: CalendarSync,\n CalendarX: CalendarX,\n CalendarX2: CalendarX2,\n Camera: Camera,\n CameraOff: CameraOff,\n Candy: Candy,\n CandyCane: CandyCane,\n CandyOff: CandyOff,\n Cannabis: Cannabis,\n Captions: Captions,\n CaptionsOff: CaptionsOff,\n Car: Car,\n CarFront: CarFront,\n CarTaxiFront: CarTaxiFront,\n Caravan: Caravan,\n CardSim: CardSim,\n Carrot: Carrot,\n CaseLower: CaseLower,\n CaseSensitive: CaseSensitive,\n CaseUpper: CaseUpper,\n CassetteTape: CassetteTape,\n Cast: Cast,\n Castle: Castle,\n Cat: Cat,\n Cctv: Cctv,\n ChartArea: ChartArea,\n ChartBar: ChartBar,\n ChartBarBig: ChartBarBig,\n ChartBarDecreasing: ChartBarDecreasing,\n ChartBarIncreasing: ChartBarIncreasing,\n ChartBarStacked: ChartBarStacked,\n ChartCandlestick: ChartCandlestick,\n ChartColumn: ChartColumn,\n ChartColumnBig: ChartColumnBig,\n ChartColumnDecreasing: ChartColumnDecreasing,\n ChartColumnIncreasing: ChartColumnIncreasing,\n ChartColumnStacked: ChartColumnStacked,\n ChartGantt: ChartGantt,\n ChartLine: ChartLine,\n ChartNetwork: ChartNetwork,\n ChartNoAxesColumn: ChartNoAxesColumn,\n ChartNoAxesColumnDecreasing: ChartNoAxesColumnDecreasing,\n ChartNoAxesColumnIncreasing: ChartNoAxesColumnIncreasing,\n ChartNoAxesCombined: ChartNoAxesCombined,\n ChartNoAxesGantt: ChartNoAxesGantt,\n ChartPie: ChartPie,\n ChartScatter: ChartScatter,\n ChartSpline: ChartSpline,\n Check: Check,\n CheckCheck: CheckCheck,\n CheckLine: CheckLine,\n ChefHat: ChefHat,\n Cherry: Cherry,\n ChevronDown: ChevronDown,\n ChevronFirst: ChevronFirst,\n ChevronLast: ChevronLast,\n ChevronLeft: ChevronLeft,\n ChevronRight: ChevronRight,\n ChevronUp: ChevronUp,\n ChevronsDown: ChevronsDown,\n ChevronsDownUp: ChevronsDownUp,\n ChevronsLeft: ChevronsLeft,\n ChevronsLeftRight: ChevronsLeftRight,\n ChevronsLeftRightEllipsis: ChevronsLeftRightEllipsis,\n ChevronsRight: ChevronsRight,\n ChevronsRightLeft: ChevronsRightLeft,\n ChevronsUp: ChevronsUp,\n ChevronsUpDown: ChevronsUpDown,\n Chrome: Chrome,\n Church: Church,\n Cigarette: Cigarette,\n CigaretteOff: CigaretteOff,\n Circle: Circle,\n CircleAlert: CircleAlert,\n CircleArrowDown: CircleArrowDown,\n CircleArrowLeft: CircleArrowLeft,\n CircleArrowOutDownLeft: CircleArrowOutDownLeft,\n CircleArrowOutDownRight: CircleArrowOutDownRight,\n CircleArrowOutUpLeft: CircleArrowOutUpLeft,\n CircleArrowOutUpRight: CircleArrowOutUpRight,\n CircleArrowRight: CircleArrowRight,\n CircleArrowUp: CircleArrowUp,\n CircleCheck: CircleCheck,\n CircleCheckBig: CircleCheckBig,\n CircleChevronDown: CircleChevronDown,\n CircleChevronLeft: CircleChevronLeft,\n CircleChevronRight: CircleChevronRight,\n CircleChevronUp: CircleChevronUp,\n CircleDashed: CircleDashed,\n CircleDivide: CircleDivide,\n CircleDollarSign: CircleDollarSign,\n CircleDot: CircleDot,\n CircleDotDashed: CircleDotDashed,\n CircleEllipsis: CircleEllipsis,\n CircleEqual: CircleEqual,\n CircleFadingArrowUp: CircleFadingArrowUp,\n CircleFadingPlus: CircleFadingPlus,\n CircleGauge: CircleGauge,\n CircleMinus: CircleMinus,\n CircleOff: CircleOff,\n CircleParking: CircleParking,\n CircleParkingOff: CircleParkingOff,\n CirclePause: CirclePause,\n CirclePercent: CirclePercent,\n CirclePlay: CirclePlay,\n CirclePlus: CirclePlus,\n CirclePoundSterling: CirclePoundSterling,\n CirclePower: CirclePower,\n CircleQuestionMark: CircleQuestionMark,\n CircleSlash: CircleSlash,\n CircleSlash2: CircleSlash2,\n CircleSmall: CircleSmall,\n CircleStop: CircleStop,\n CircleUser: CircleUser,\n CircleUserRound: CircleUserRound,\n CircleX: CircleX,\n CircuitBoard: CircuitBoard,\n Citrus: Citrus,\n Clapperboard: Clapperboard,\n Clipboard: Clipboard,\n ClipboardCheck: ClipboardCheck,\n ClipboardCopy: ClipboardCopy,\n ClipboardList: ClipboardList,\n ClipboardMinus: ClipboardMinus,\n ClipboardPaste: ClipboardPaste,\n ClipboardPen: ClipboardPen,\n ClipboardPenLine: ClipboardPenLine,\n ClipboardPlus: ClipboardPlus,\n ClipboardType: ClipboardType,\n ClipboardX: ClipboardX,\n Clock: Clock,\n Clock1: Clock1,\n Clock10: Clock10,\n Clock11: Clock11,\n Clock12: Clock12,\n Clock2: Clock2,\n Clock3: Clock3,\n Clock4: Clock4,\n Clock5: Clock5,\n Clock6: Clock6,\n Clock7: Clock7,\n Clock8: Clock8,\n Clock9: Clock9,\n ClockAlert: ClockAlert,\n ClockArrowDown: ClockArrowDown,\n ClockArrowUp: ClockArrowUp,\n ClockFading: ClockFading,\n ClockPlus: ClockPlus,\n Cloud: Cloud,\n CloudAlert: CloudAlert,\n CloudCheck: CloudCheck,\n CloudCog: CloudCog,\n CloudDownload: CloudDownload,\n CloudDrizzle: CloudDrizzle,\n CloudFog: CloudFog,\n CloudHail: CloudHail,\n CloudLightning: CloudLightning,\n CloudMoon: CloudMoon,\n CloudMoonRain: CloudMoonRain,\n CloudOff: CloudOff,\n CloudRain: CloudRain,\n CloudRainWind: CloudRainWind,\n CloudSnow: CloudSnow,\n CloudSun: CloudSun,\n CloudSunRain: CloudSunRain,\n CloudUpload: CloudUpload,\n Cloudy: Cloudy,\n Clover: Clover,\n Club: Club,\n Code: Code,\n CodeXml: CodeXml,\n Codepen: Codepen,\n Codesandbox: Codesandbox,\n Coffee: Coffee,\n Cog: Cog,\n Coins: Coins,\n Columns2: Columns2,\n Columns3: Columns3,\n Columns3Cog: Columns3Cog,\n Columns4: Columns4,\n Combine: Combine,\n Command: Command,\n Compass: Compass,\n Component: Component,\n Computer: Computer,\n ConciergeBell: ConciergeBell,\n Cone: Cone,\n Construction: Construction,\n Contact: Contact,\n ContactRound: ContactRound,\n Container: Container,\n Contrast: Contrast,\n Cookie: Cookie,\n CookingPot: CookingPot,\n Copy: Copy,\n CopyCheck: CopyCheck,\n CopyMinus: CopyMinus,\n CopyPlus: CopyPlus,\n CopySlash: CopySlash,\n CopyX: CopyX,\n Copyleft: Copyleft,\n Copyright: Copyright,\n CornerDownLeft: CornerDownLeft,\n CornerDownRight: CornerDownRight,\n CornerLeftDown: CornerLeftDown,\n CornerLeftUp: CornerLeftUp,\n CornerRightDown: CornerRightDown,\n CornerRightUp: CornerRightUp,\n CornerUpLeft: CornerUpLeft,\n CornerUpRight: CornerUpRight,\n Cpu: Cpu,\n CreativeCommons: CreativeCommons,\n CreditCard: CreditCard,\n Croissant: Croissant,\n Crop: Crop,\n Cross: Cross,\n Crosshair: Crosshair,\n Crown: Crown,\n Cuboid: Cuboid,\n CupSoda: CupSoda,\n Currency: Currency,\n Cylinder: Cylinder,\n Dam: Dam,\n Database: Database,\n DatabaseBackup: DatabaseBackup,\n DatabaseZap: DatabaseZap,\n DecimalsArrowLeft: DecimalsArrowLeft,\n DecimalsArrowRight: DecimalsArrowRight,\n Delete: Delete,\n Dessert: Dessert,\n Diameter: Diameter,\n Diamond: Diamond,\n DiamondMinus: DiamondMinus,\n DiamondPercent: DiamondPercent,\n DiamondPlus: DiamondPlus,\n Dice1: Dice1,\n Dice2: Dice2,\n Dice3: Dice3,\n Dice4: Dice4,\n Dice5: Dice5,\n Dice6: Dice6,\n Dices: Dices,\n Diff: Diff,\n Disc: Disc,\n Disc2: Disc2,\n Disc3: Disc3,\n DiscAlbum: DiscAlbum,\n Divide: Divide,\n Dna: Dna,\n DnaOff: DnaOff,\n Dock: Dock,\n Dog: Dog,\n DollarSign: DollarSign,\n Donut: Donut,\n DoorClosed: DoorClosed,\n DoorClosedLocked: DoorClosedLocked,\n DoorOpen: DoorOpen,\n Dot: Dot,\n Download: Download,\n DraftingCompass: DraftingCompass,\n Drama: Drama,\n Dribbble: Dribbble,\n Drill: Drill,\n Drone: Drone,\n Droplet: Droplet,\n DropletOff: DropletOff,\n Droplets: Droplets,\n Drum: Drum,\n Drumstick: Drumstick,\n Dumbbell: Dumbbell,\n Ear: Ear,\n EarOff: EarOff,\n Earth: Earth,\n EarthLock: EarthLock,\n Eclipse: Eclipse,\n Egg: Egg,\n EggFried: EggFried,\n EggOff: EggOff,\n Ellipsis: Ellipsis,\n EllipsisVertical: EllipsisVertical,\n Equal: Equal,\n EqualApproximately: EqualApproximately,\n EqualNot: EqualNot,\n Eraser: Eraser,\n EthernetPort: EthernetPort,\n Euro: Euro,\n Expand: Expand,\n ExternalLink: ExternalLink,\n Eye: Eye,\n EyeClosed: EyeClosed,\n EyeOff: EyeOff,\n Facebook: Facebook,\n Factory: Factory,\n Fan: Fan,\n FastForward: FastForward,\n Feather: Feather,\n Fence: Fence,\n FerrisWheel: FerrisWheel,\n Figma: Figma,\n File: File,\n FileArchive: FileArchive,\n FileAudio: FileAudio,\n FileAudio2: FileAudio2,\n FileAxis3d: FileAxis3d,\n FileBadge: FileBadge,\n FileBadge2: FileBadge2,\n FileBox: FileBox,\n FileChartColumn: FileChartColumn,\n FileChartColumnIncreasing: FileChartColumnIncreasing,\n FileChartLine: FileChartLine,\n FileChartPie: FileChartPie,\n FileCheck: FileCheck,\n FileCheck2: FileCheck2,\n FileClock: FileClock,\n FileCode: FileCode,\n FileCode2: FileCode2,\n FileCog: FileCog,\n FileDiff: FileDiff,\n FileDigit: FileDigit,\n FileDown: FileDown,\n FileHeart: FileHeart,\n FileImage: FileImage,\n FileInput: FileInput,\n FileJson: FileJson,\n FileJson2: FileJson2,\n FileKey: FileKey,\n FileKey2: FileKey2,\n FileLock: FileLock,\n FileLock2: FileLock2,\n FileMinus: FileMinus,\n FileMinus2: FileMinus2,\n FileMusic: FileMusic,\n FileOutput: FileOutput,\n FilePen: FilePen,\n FilePenLine: FilePenLine,\n FilePlus: FilePlus,\n FilePlus2: FilePlus2,\n FileQuestionMark: FileQuestionMark,\n FileScan: FileScan,\n FileSearch: FileSearch,\n FileSearch2: FileSearch2,\n FileSliders: FileSliders,\n FileSpreadsheet: FileSpreadsheet,\n FileStack: FileStack,\n FileSymlink: FileSymlink,\n FileTerminal: FileTerminal,\n FileText: FileText,\n FileType: FileType,\n FileType2: FileType2,\n FileUp: FileUp,\n FileUser: FileUser,\n FileVideo: FileVideo,\n FileVideo2: FileVideo2,\n FileVolume: FileVolume,\n FileVolume2: FileVolume2,\n FileWarning: FileWarning,\n FileX: FileX,\n FileX2: FileX2,\n Files: Files,\n Film: Film,\n Fingerprint: Fingerprint,\n FireExtinguisher: FireExtinguisher,\n Fish: Fish,\n FishOff: FishOff,\n FishSymbol: FishSymbol,\n Flag: Flag,\n FlagOff: FlagOff,\n FlagTriangleLeft: FlagTriangleLeft,\n FlagTriangleRight: FlagTriangleRight,\n Flame: Flame,\n FlameKindling: FlameKindling,\n Flashlight: Flashlight,\n FlashlightOff: FlashlightOff,\n FlaskConical: FlaskConical,\n FlaskConicalOff: FlaskConicalOff,\n FlaskRound: FlaskRound,\n FlipHorizontal: FlipHorizontal,\n FlipHorizontal2: FlipHorizontal2,\n FlipVertical: FlipVertical,\n FlipVertical2: FlipVertical2,\n Flower: Flower,\n Flower2: Flower2,\n Focus: Focus,\n FoldHorizontal: FoldHorizontal,\n FoldVertical: FoldVertical,\n Folder: Folder,\n FolderArchive: FolderArchive,\n FolderCheck: FolderCheck,\n FolderClock: FolderClock,\n FolderClosed: FolderClosed,\n FolderCode: FolderCode,\n FolderCog: FolderCog,\n FolderDot: FolderDot,\n FolderDown: FolderDown,\n FolderGit: FolderGit,\n FolderGit2: FolderGit2,\n FolderHeart: FolderHeart,\n FolderInput: FolderInput,\n FolderKanban: FolderKanban,\n FolderKey: FolderKey,\n FolderLock: FolderLock,\n FolderMinus: FolderMinus,\n FolderOpen: FolderOpen,\n FolderOpenDot: FolderOpenDot,\n FolderOutput: FolderOutput,\n FolderPen: FolderPen,\n FolderPlus: FolderPlus,\n FolderRoot: FolderRoot,\n FolderSearch: FolderSearch,\n FolderSearch2: FolderSearch2,\n FolderSymlink: FolderSymlink,\n FolderSync: FolderSync,\n FolderTree: FolderTree,\n FolderUp: FolderUp,\n FolderX: FolderX,\n Folders: Folders,\n Footprints: Footprints,\n Forklift: Forklift,\n Forward: Forward,\n Frame: Frame,\n Framer: Framer,\n Frown: Frown,\n Fuel: Fuel,\n Fullscreen: Fullscreen,\n Funnel: Funnel,\n FunnelPlus: FunnelPlus,\n FunnelX: FunnelX,\n GalleryHorizontal: GalleryHorizontal,\n GalleryHorizontalEnd: GalleryHorizontalEnd,\n GalleryThumbnails: GalleryThumbnails,\n GalleryVertical: GalleryVertical,\n GalleryVerticalEnd: GalleryVerticalEnd,\n Gamepad: Gamepad,\n Gamepad2: Gamepad2,\n Gauge: Gauge,\n Gavel: Gavel,\n Gem: Gem,\n GeorgianLari: GeorgianLari,\n Ghost: Ghost,\n Gift: Gift,\n GitBranch: GitBranch,\n GitBranchPlus: GitBranchPlus,\n GitCommitHorizontal: GitCommitHorizontal,\n GitCommitVertical: GitCommitVertical,\n GitCompare: GitCompare,\n GitCompareArrows: GitCompareArrows,\n GitFork: GitFork,\n GitGraph: GitGraph,\n GitMerge: GitMerge,\n GitPullRequest: GitPullRequest,\n GitPullRequestArrow: GitPullRequestArrow,\n GitPullRequestClosed: GitPullRequestClosed,\n GitPullRequestCreate: GitPullRequestCreate,\n GitPullRequestCreateArrow: GitPullRequestCreateArrow,\n GitPullRequestDraft: GitPullRequestDraft,\n Github: Github,\n Gitlab: Gitlab,\n GlassWater: GlassWater,\n Glasses: Glasses,\n Globe: Globe,\n GlobeLock: GlobeLock,\n Goal: Goal,\n Gpu: Gpu,\n Grab: Grab,\n GraduationCap: GraduationCap,\n Grape: Grape,\n Grid2x2: Grid2x2,\n Grid2x2Check: Grid2x2Check,\n Grid2x2Plus: Grid2x2Plus,\n Grid2x2X: Grid2x2X,\n Grid3x2: Grid3x2,\n Grid3x3: Grid3x3,\n Grip: Grip,\n GripHorizontal: GripHorizontal,\n GripVertical: GripVertical,\n Group: Group,\n Guitar: Guitar,\n Ham: Ham,\n Hamburger: Hamburger,\n Hammer: Hammer,\n Hand: Hand,\n HandCoins: HandCoins,\n HandHeart: HandHeart,\n HandHelping: HandHelping,\n HandMetal: HandMetal,\n HandPlatter: HandPlatter,\n Handshake: Handshake,\n HardDrive: HardDrive,\n HardDriveDownload: HardDriveDownload,\n HardDriveUpload: HardDriveUpload,\n HardHat: HardHat,\n Hash: Hash,\n Haze: Haze,\n HdmiPort: HdmiPort,\n Heading: Heading,\n Heading1: Heading1,\n Heading2: Heading2,\n Heading3: Heading3,\n Heading4: Heading4,\n Heading5: Heading5,\n Heading6: Heading6,\n HeadphoneOff: HeadphoneOff,\n Headphones: Headphones,\n Headset: Headset,\n Heart: Heart,\n HeartCrack: HeartCrack,\n HeartHandshake: HeartHandshake,\n HeartMinus: HeartMinus,\n HeartOff: HeartOff,\n HeartPlus: HeartPlus,\n HeartPulse: HeartPulse,\n Heater: Heater,\n Hexagon: Hexagon,\n Highlighter: Highlighter,\n History: History,\n Hop: Hop,\n HopOff: HopOff,\n Hospital: Hospital,\n Hotel: Hotel,\n Hourglass: Hourglass,\n House: House,\n HousePlug: HousePlug,\n HousePlus: HousePlus,\n HouseWifi: HouseWifi,\n IceCreamBowl: IceCreamBowl,\n IceCreamCone: IceCreamCone,\n IdCard: IdCard,\n IdCardLanyard: IdCardLanyard,\n Image: Image,\n ImageDown: ImageDown,\n ImageMinus: ImageMinus,\n ImageOff: ImageOff,\n ImagePlay: ImagePlay,\n ImagePlus: ImagePlus,\n ImageUp: ImageUp,\n ImageUpscale: ImageUpscale,\n Images: Images,\n Import: Import,\n Inbox: Inbox,\n IndentDecrease: IndentDecrease,\n IndentIncrease: IndentIncrease,\n IndianRupee: IndianRupee,\n Infinity: Infinity,\n Info: Info,\n InspectionPanel: InspectionPanel,\n Instagram: Instagram,\n Italic: Italic,\n IterationCcw: IterationCcw,\n IterationCw: IterationCw,\n JapaneseYen: JapaneseYen,\n Joystick: Joystick,\n Kanban: Kanban,\n Key: Key,\n KeyRound: KeyRound,\n KeySquare: KeySquare,\n Keyboard: Keyboard,\n KeyboardMusic: KeyboardMusic,\n KeyboardOff: KeyboardOff,\n Lamp: Lamp,\n LampCeiling: LampCeiling,\n LampDesk: LampDesk,\n LampFloor: LampFloor,\n LampWallDown: LampWallDown,\n LampWallUp: LampWallUp,\n LandPlot: LandPlot,\n Landmark: Landmark,\n Languages: Languages,\n Laptop: Laptop,\n LaptopMinimal: LaptopMinimal,\n LaptopMinimalCheck: LaptopMinimalCheck,\n Lasso: Lasso,\n LassoSelect: LassoSelect,\n Laugh: Laugh,\n Layers: Layers,\n Layers2: Layers2,\n LayoutDashboard: LayoutDashboard,\n LayoutGrid: LayoutGrid,\n LayoutList: LayoutList,\n LayoutPanelLeft: LayoutPanelLeft,\n LayoutPanelTop: LayoutPanelTop,\n LayoutTemplate: LayoutTemplate,\n Leaf: Leaf,\n LeafyGreen: LeafyGreen,\n Lectern: Lectern,\n LetterText: LetterText,\n Library: Library,\n LibraryBig: LibraryBig,\n LifeBuoy: LifeBuoy,\n Ligature: Ligature,\n Lightbulb: Lightbulb,\n LightbulbOff: LightbulbOff,\n LineSquiggle: LineSquiggle,\n Link: Link,\n Link2: Link2,\n Link2Off: Link2Off,\n Linkedin: Linkedin,\n List: List,\n ListCheck: ListCheck,\n ListChecks: ListChecks,\n ListCollapse: ListCollapse,\n ListEnd: ListEnd,\n ListFilter: ListFilter,\n ListFilterPlus: ListFilterPlus,\n ListMinus: ListMinus,\n ListMusic: ListMusic,\n ListOrdered: ListOrdered,\n ListPlus: ListPlus,\n ListRestart: ListRestart,\n ListStart: ListStart,\n ListTodo: ListTodo,\n ListTree: ListTree,\n ListVideo: ListVideo,\n ListX: ListX,\n Loader: Loader,\n LoaderCircle: LoaderCircle,\n LoaderPinwheel: LoaderPinwheel,\n Locate: Locate,\n LocateFixed: LocateFixed,\n LocateOff: LocateOff,\n LocationEdit: LocationEdit,\n Lock: Lock,\n LockKeyhole: LockKeyhole,\n LockKeyholeOpen: LockKeyholeOpen,\n LockOpen: LockOpen,\n LogIn: LogIn,\n LogOut: LogOut,\n Logs: Logs,\n Lollipop: Lollipop,\n Luggage: Luggage,\n Magnet: Magnet,\n Mail: Mail,\n MailCheck: MailCheck,\n MailMinus: MailMinus,\n MailOpen: MailOpen,\n MailPlus: MailPlus,\n MailQuestionMark: MailQuestionMark,\n MailSearch: MailSearch,\n MailWarning: MailWarning,\n MailX: MailX,\n Mailbox: Mailbox,\n Mails: Mails,\n Map: Map,\n MapPin: MapPin,\n MapPinCheck: MapPinCheck,\n MapPinCheckInside: MapPinCheckInside,\n MapPinHouse: MapPinHouse,\n MapPinMinus: MapPinMinus,\n MapPinMinusInside: MapPinMinusInside,\n MapPinOff: MapPinOff,\n MapPinPlus: MapPinPlus,\n MapPinPlusInside: MapPinPlusInside,\n MapPinX: MapPinX,\n MapPinXInside: MapPinXInside,\n MapPinned: MapPinned,\n MapPlus: MapPlus,\n Mars: Mars,\n MarsStroke: MarsStroke,\n Martini: Martini,\n Maximize: Maximize,\n Maximize2: Maximize2,\n Medal: Medal,\n Megaphone: Megaphone,\n MegaphoneOff: MegaphoneOff,\n Meh: Meh,\n MemoryStick: MemoryStick,\n Menu: Menu,\n Merge: Merge,\n MessageCircle: MessageCircle,\n MessageCircleCode: MessageCircleCode,\n MessageCircleDashed: MessageCircleDashed,\n MessageCircleHeart: MessageCircleHeart,\n MessageCircleMore: MessageCircleMore,\n MessageCircleOff: MessageCircleOff,\n MessageCirclePlus: MessageCirclePlus,\n MessageCircleQuestionMark: MessageCircleQuestionMark,\n MessageCircleReply: MessageCircleReply,\n MessageCircleWarning: MessageCircleWarning,\n MessageCircleX: MessageCircleX,\n MessageSquare: MessageSquare,\n MessageSquareCode: MessageSquareCode,\n MessageSquareDashed: MessageSquareDashed,\n MessageSquareDiff: MessageSquareDiff,\n MessageSquareDot: MessageSquareDot,\n MessageSquareHeart: MessageSquareHeart,\n MessageSquareLock: MessageSquareLock,\n MessageSquareMore: MessageSquareMore,\n MessageSquareOff: MessageSquareOff,\n MessageSquarePlus: MessageSquarePlus,\n MessageSquareQuote: MessageSquareQuote,\n MessageSquareReply: MessageSquareReply,\n MessageSquareShare: MessageSquareShare,\n MessageSquareText: MessageSquareText,\n MessageSquareWarning: MessageSquareWarning,\n MessageSquareX: MessageSquareX,\n MessagesSquare: MessagesSquare,\n Mic: Mic,\n MicOff: MicOff,\n MicVocal: MicVocal,\n Microchip: Microchip,\n Microscope: Microscope,\n Microwave: Microwave,\n Milestone: Milestone,\n Milk: Milk,\n MilkOff: MilkOff,\n Minimize: Minimize,\n Minimize2: Minimize2,\n Minus: Minus,\n Monitor: Monitor,\n MonitorCheck: MonitorCheck,\n MonitorCog: MonitorCog,\n MonitorDot: MonitorDot,\n MonitorDown: MonitorDown,\n MonitorOff: MonitorOff,\n MonitorPause: MonitorPause,\n MonitorPlay: MonitorPlay,\n MonitorSmartphone: MonitorSmartphone,\n MonitorSpeaker: MonitorSpeaker,\n MonitorStop: MonitorStop,\n MonitorUp: MonitorUp,\n MonitorX: MonitorX,\n Moon: Moon,\n MoonStar: MoonStar,\n Mountain: Mountain,\n MountainSnow: MountainSnow,\n Mouse: Mouse,\n MouseOff: MouseOff,\n MousePointer: MousePointer,\n MousePointer2: MousePointer2,\n MousePointerBan: MousePointerBan,\n MousePointerClick: MousePointerClick,\n Move: Move,\n Move3d: Move3d,\n MoveDiagonal: MoveDiagonal,\n MoveDiagonal2: MoveDiagonal2,\n MoveDown: MoveDown,\n MoveDownLeft: MoveDownLeft,\n MoveDownRight: MoveDownRight,\n MoveHorizontal: MoveHorizontal,\n MoveLeft: MoveLeft,\n MoveRight: MoveRight,\n MoveUp: MoveUp,\n MoveUpLeft: MoveUpLeft,\n MoveUpRight: MoveUpRight,\n MoveVertical: MoveVertical,\n Music: Music,\n Music2: Music2,\n Music3: Music3,\n Music4: Music4,\n Navigation: Navigation,\n Navigation2: Navigation2,\n Navigation2Off: Navigation2Off,\n NavigationOff: NavigationOff,\n Network: Network,\n Newspaper: Newspaper,\n Nfc: Nfc,\n NonBinary: NonBinary,\n Notebook: Notebook,\n NotebookPen: NotebookPen,\n NotebookTabs: NotebookTabs,\n NotebookText: NotebookText,\n NotepadText: NotepadText,\n NotepadTextDashed: NotepadTextDashed,\n Nut: Nut,\n NutOff: NutOff,\n Octagon: Octagon,\n OctagonAlert: OctagonAlert,\n OctagonMinus: OctagonMinus,\n OctagonPause: OctagonPause,\n OctagonX: OctagonX,\n Omega: Omega,\n Option: Option,\n Orbit: Orbit,\n Origami: Origami,\n Package: Package,\n Package2: Package2,\n PackageCheck: PackageCheck,\n PackageMinus: PackageMinus,\n PackageOpen: PackageOpen,\n PackagePlus: PackagePlus,\n PackageSearch: PackageSearch,\n PackageX: PackageX,\n PaintBucket: PaintBucket,\n PaintRoller: PaintRoller,\n Paintbrush: Paintbrush,\n PaintbrushVertical: PaintbrushVertical,\n Palette: Palette,\n Panda: Panda,\n PanelBottom: PanelBottom,\n PanelBottomClose: PanelBottomClose,\n PanelBottomDashed: PanelBottomDashed,\n PanelBottomOpen: PanelBottomOpen,\n PanelLeft: PanelLeft,\n PanelLeftClose: PanelLeftClose,\n PanelLeftDashed: PanelLeftDashed,\n PanelLeftOpen: PanelLeftOpen,\n PanelRight: PanelRight,\n PanelRightClose: PanelRightClose,\n PanelRightDashed: PanelRightDashed,\n PanelRightOpen: PanelRightOpen,\n PanelTop: PanelTop,\n PanelTopClose: PanelTopClose,\n PanelTopDashed: PanelTopDashed,\n PanelTopOpen: PanelTopOpen,\n PanelsLeftBottom: PanelsLeftBottom,\n PanelsRightBottom: PanelsRightBottom,\n PanelsTopLeft: PanelsTopLeft,\n Paperclip: Paperclip,\n Parentheses: Parentheses,\n ParkingMeter: ParkingMeter,\n PartyPopper: PartyPopper,\n Pause: Pause,\n PawPrint: PawPrint,\n PcCase: PcCase,\n Pen: Pen,\n PenLine: PenLine,\n PenOff: PenOff,\n PenTool: PenTool,\n Pencil: Pencil,\n PencilLine: PencilLine,\n PencilOff: PencilOff,\n PencilRuler: PencilRuler,\n Pentagon: Pentagon,\n Percent: Percent,\n PersonStanding: PersonStanding,\n PhilippinePeso: PhilippinePeso,\n Phone: Phone,\n PhoneCall: PhoneCall,\n PhoneForwarded: PhoneForwarded,\n PhoneIncoming: PhoneIncoming,\n PhoneMissed: PhoneMissed,\n PhoneOff: PhoneOff,\n PhoneOutgoing: PhoneOutgoing,\n Pi: Pi,\n Piano: Piano,\n Pickaxe: Pickaxe,\n PictureInPicture: PictureInPicture,\n PictureInPicture2: PictureInPicture2,\n PiggyBank: PiggyBank,\n Pilcrow: Pilcrow,\n PilcrowLeft: PilcrowLeft,\n PilcrowRight: PilcrowRight,\n Pill: Pill,\n PillBottle: PillBottle,\n Pin: Pin,\n PinOff: PinOff,\n Pipette: Pipette,\n Pizza: Pizza,\n Plane: Plane,\n PlaneLanding: PlaneLanding,\n PlaneTakeoff: PlaneTakeoff,\n Play: Play,\n Plug: Plug,\n Plug2: Plug2,\n PlugZap: PlugZap,\n Plus: Plus,\n Pocket: Pocket,\n PocketKnife: PocketKnife,\n Podcast: Podcast,\n Pointer: Pointer,\n PointerOff: PointerOff,\n Popcorn: Popcorn,\n Popsicle: Popsicle,\n PoundSterling: PoundSterling,\n Power: Power,\n PowerOff: PowerOff,\n Presentation: Presentation,\n Printer: Printer,\n PrinterCheck: PrinterCheck,\n Projector: Projector,\n Proportions: Proportions,\n Puzzle: Puzzle,\n Pyramid: Pyramid,\n QrCode: QrCode,\n Quote: Quote,\n Rabbit: Rabbit,\n Radar: Radar,\n Radiation: Radiation,\n Radical: Radical,\n Radio: Radio,\n RadioReceiver: RadioReceiver,\n RadioTower: RadioTower,\n Radius: Radius,\n RailSymbol: RailSymbol,\n Rainbow: Rainbow,\n Rat: Rat,\n Ratio: Ratio,\n Receipt: Receipt,\n ReceiptCent: ReceiptCent,\n ReceiptEuro: ReceiptEuro,\n ReceiptIndianRupee: ReceiptIndianRupee,\n ReceiptJapaneseYen: ReceiptJapaneseYen,\n ReceiptPoundSterling: ReceiptPoundSterling,\n ReceiptRussianRuble: ReceiptRussianRuble,\n ReceiptSwissFranc: ReceiptSwissFranc,\n ReceiptText: ReceiptText,\n RectangleCircle: RectangleCircle,\n RectangleEllipsis: RectangleEllipsis,\n RectangleGoggles: RectangleGoggles,\n RectangleHorizontal: RectangleHorizontal,\n RectangleVertical: RectangleVertical,\n Recycle: Recycle,\n Redo: Redo,\n Redo2: Redo2,\n RedoDot: RedoDot,\n RefreshCcw: RefreshCcw,\n RefreshCcwDot: RefreshCcwDot,\n RefreshCw: RefreshCw,\n RefreshCwOff: RefreshCwOff,\n Refrigerator: Refrigerator,\n Regex: Regex,\n RemoveFormatting: RemoveFormatting,\n Repeat: Repeat,\n Repeat1: Repeat1,\n Repeat2: Repeat2,\n Replace: Replace,\n ReplaceAll: ReplaceAll,\n Reply: Reply,\n ReplyAll: ReplyAll,\n Rewind: Rewind,\n Ribbon: Ribbon,\n Rocket: Rocket,\n RockingChair: RockingChair,\n RollerCoaster: RollerCoaster,\n Rotate3d: Rotate3d,\n RotateCcw: RotateCcw,\n RotateCcwKey: RotateCcwKey,\n RotateCcwSquare: RotateCcwSquare,\n RotateCw: RotateCw,\n RotateCwSquare: RotateCwSquare,\n Route: Route,\n RouteOff: RouteOff,\n Router: Router,\n Rows2: Rows2,\n Rows3: Rows3,\n Rows4: Rows4,\n Rss: Rss,\n Ruler: Ruler,\n RulerDimensionLine: RulerDimensionLine,\n RussianRuble: RussianRuble,\n Sailboat: Sailboat,\n Salad: Salad,\n Sandwich: Sandwich,\n Satellite: Satellite,\n SatelliteDish: SatelliteDish,\n SaudiRiyal: SaudiRiyal,\n Save: Save,\n SaveAll: SaveAll,\n SaveOff: SaveOff,\n Scale: Scale,\n Scale3d: Scale3d,\n Scaling: Scaling,\n Scan: Scan,\n ScanBarcode: ScanBarcode,\n ScanEye: ScanEye,\n ScanFace: ScanFace,\n ScanHeart: ScanHeart,\n ScanLine: ScanLine,\n ScanQrCode: ScanQrCode,\n ScanSearch: ScanSearch,\n ScanText: ScanText,\n School: School,\n Scissors: Scissors,\n ScissorsLineDashed: ScissorsLineDashed,\n ScreenShare: ScreenShare,\n ScreenShareOff: ScreenShareOff,\n Scroll: Scroll,\n ScrollText: ScrollText,\n Search: Search,\n SearchCheck: SearchCheck,\n SearchCode: SearchCode,\n SearchSlash: SearchSlash,\n SearchX: SearchX,\n Section: Section,\n Send: Send,\n SendHorizontal: SendHorizontal,\n SendToBack: SendToBack,\n SeparatorHorizontal: SeparatorHorizontal,\n SeparatorVertical: SeparatorVertical,\n Server: Server,\n ServerCog: ServerCog,\n ServerCrash: ServerCrash,\n ServerOff: ServerOff,\n Settings: Settings,\n Settings2: Settings2,\n Shapes: Shapes,\n Share: Share,\n Share2: Share2,\n Sheet: Sheet,\n Shell: Shell,\n Shield: Shield,\n ShieldAlert: ShieldAlert,\n ShieldBan: ShieldBan,\n ShieldCheck: ShieldCheck,\n ShieldEllipsis: ShieldEllipsis,\n ShieldHalf: ShieldHalf,\n ShieldMinus: ShieldMinus,\n ShieldOff: ShieldOff,\n ShieldPlus: ShieldPlus,\n ShieldQuestionMark: ShieldQuestionMark,\n ShieldUser: ShieldUser,\n ShieldX: ShieldX,\n Ship: Ship,\n ShipWheel: ShipWheel,\n Shirt: Shirt,\n ShoppingBag: ShoppingBag,\n ShoppingBasket: ShoppingBasket,\n ShoppingCart: ShoppingCart,\n Shovel: Shovel,\n ShowerHead: ShowerHead,\n Shredder: Shredder,\n Shrimp: Shrimp,\n Shrink: Shrink,\n Shrub: Shrub,\n Shuffle: Shuffle,\n Sigma: Sigma,\n Signal: Signal,\n SignalHigh: SignalHigh,\n SignalLow: SignalLow,\n SignalMedium: SignalMedium,\n SignalZero: SignalZero,\n Signature: Signature,\n Signpost: Signpost,\n SignpostBig: SignpostBig,\n Siren: Siren,\n SkipBack: SkipBack,\n SkipForward: SkipForward,\n Skull: Skull,\n Slack: Slack,\n Slash: Slash,\n Slice: Slice,\n SlidersHorizontal: SlidersHorizontal,\n SlidersVertical: SlidersVertical,\n Smartphone: Smartphone,\n SmartphoneCharging: SmartphoneCharging,\n SmartphoneNfc: SmartphoneNfc,\n Smile: Smile,\n SmilePlus: SmilePlus,\n Snail: Snail,\n Snowflake: Snowflake,\n SoapDispenserDroplet: SoapDispenserDroplet,\n Sofa: Sofa,\n Soup: Soup,\n Space: Space,\n Spade: Spade,\n Sparkle: Sparkle,\n Sparkles: Sparkles,\n Speaker: Speaker,\n Speech: Speech,\n SpellCheck: SpellCheck,\n SpellCheck2: SpellCheck2,\n Spline: Spline,\n SplinePointer: SplinePointer,\n Split: Split,\n Spool: Spool,\n SprayCan: SprayCan,\n Sprout: Sprout,\n Square: Square,\n SquareActivity: SquareActivity,\n SquareArrowDown: SquareArrowDown,\n SquareArrowDownLeft: SquareArrowDownLeft,\n SquareArrowDownRight: SquareArrowDownRight,\n SquareArrowLeft: SquareArrowLeft,\n SquareArrowOutDownLeft: SquareArrowOutDownLeft,\n SquareArrowOutDownRight: SquareArrowOutDownRight,\n SquareArrowOutUpLeft: SquareArrowOutUpLeft,\n SquareArrowOutUpRight: SquareArrowOutUpRight,\n SquareArrowRight: SquareArrowRight,\n SquareArrowUp: SquareArrowUp,\n SquareArrowUpLeft: SquareArrowUpLeft,\n SquareArrowUpRight: SquareArrowUpRight,\n SquareAsterisk: SquareAsterisk,\n SquareBottomDashedScissors: SquareBottomDashedScissors,\n SquareChartGantt: SquareChartGantt,\n SquareCheck: SquareCheck,\n SquareCheckBig: SquareCheckBig,\n SquareChevronDown: SquareChevronDown,\n SquareChevronLeft: SquareChevronLeft,\n SquareChevronRight: SquareChevronRight,\n SquareChevronUp: SquareChevronUp,\n SquareCode: SquareCode,\n SquareDashed: SquareDashed,\n SquareDashedBottom: SquareDashedBottom,\n SquareDashedBottomCode: SquareDashedBottomCode,\n SquareDashedKanban: SquareDashedKanban,\n SquareDashedMousePointer: SquareDashedMousePointer,\n SquareDashedTopSolid: SquareDashedTopSolid,\n SquareDivide: SquareDivide,\n SquareDot: SquareDot,\n SquareEqual: SquareEqual,\n SquareFunction: SquareFunction,\n SquareKanban: SquareKanban,\n SquareLibrary: SquareLibrary,\n SquareM: SquareM,\n SquareMenu: SquareMenu,\n SquareMinus: SquareMinus,\n SquareMousePointer: SquareMousePointer,\n SquareParking: SquareParking,\n SquareParkingOff: SquareParkingOff,\n SquarePen: SquarePen,\n SquarePercent: SquarePercent,\n SquarePi: SquarePi,\n SquarePilcrow: SquarePilcrow,\n SquarePlay: SquarePlay,\n SquarePlus: SquarePlus,\n SquarePower: SquarePower,\n SquareRadical: SquareRadical,\n SquareRoundCorner: SquareRoundCorner,\n SquareScissors: SquareScissors,\n SquareSigma: SquareSigma,\n SquareSlash: SquareSlash,\n SquareSplitHorizontal: SquareSplitHorizontal,\n SquareSplitVertical: SquareSplitVertical,\n SquareSquare: SquareSquare,\n SquareStack: SquareStack,\n SquareTerminal: SquareTerminal,\n SquareUser: SquareUser,\n SquareUserRound: SquareUserRound,\n SquareX: SquareX,\n SquaresExclude: SquaresExclude,\n SquaresIntersect: SquaresIntersect,\n SquaresSubtract: SquaresSubtract,\n SquaresUnite: SquaresUnite,\n Squircle: Squircle,\n SquircleDashed: SquircleDashed,\n Squirrel: Squirrel,\n Stamp: Stamp,\n Star: Star,\n StarHalf: StarHalf,\n StarOff: StarOff,\n StepBack: StepBack,\n StepForward: StepForward,\n Stethoscope: Stethoscope,\n Sticker: Sticker,\n StickyNote: StickyNote,\n Store: Store,\n StretchHorizontal: StretchHorizontal,\n StretchVertical: StretchVertical,\n Strikethrough: Strikethrough,\n Subscript: Subscript,\n Sun: Sun,\n SunDim: SunDim,\n SunMedium: SunMedium,\n SunMoon: SunMoon,\n SunSnow: SunSnow,\n Sunrise: Sunrise,\n Sunset: Sunset,\n Superscript: Superscript,\n SwatchBook: SwatchBook,\n SwissFranc: SwissFranc,\n SwitchCamera: SwitchCamera,\n Sword: Sword,\n Swords: Swords,\n Syringe: Syringe,\n Table: Table,\n Table2: Table2,\n TableCellsMerge: TableCellsMerge,\n TableCellsSplit: TableCellsSplit,\n TableColumnsSplit: TableColumnsSplit,\n TableOfContents: TableOfContents,\n TableProperties: TableProperties,\n TableRowsSplit: TableRowsSplit,\n Tablet: Tablet,\n TabletSmartphone: TabletSmartphone,\n Tablets: Tablets,\n Tag: Tag,\n Tags: Tags,\n Tally1: Tally1,\n Tally2: Tally2,\n Tally3: Tally3,\n Tally4: Tally4,\n Tally5: Tally5,\n Tangent: Tangent,\n Target: Target,\n Telescope: Telescope,\n Tent: Tent,\n TentTree: TentTree,\n Terminal: Terminal,\n TestTube: TestTube,\n TestTubeDiagonal: TestTubeDiagonal,\n TestTubes: TestTubes,\n Text: Text,\n TextCursor: TextCursor,\n TextCursorInput: TextCursorInput,\n TextQuote: TextQuote,\n TextSearch: TextSearch,\n TextSelect: TextSelect,\n Theater: Theater,\n Thermometer: Thermometer,\n ThermometerSnowflake: ThermometerSnowflake,\n ThermometerSun: ThermometerSun,\n ThumbsDown: ThumbsDown,\n ThumbsUp: ThumbsUp,\n Ticket: Ticket,\n TicketCheck: TicketCheck,\n TicketMinus: TicketMinus,\n TicketPercent: TicketPercent,\n TicketPlus: TicketPlus,\n TicketSlash: TicketSlash,\n TicketX: TicketX,\n Tickets: Tickets,\n TicketsPlane: TicketsPlane,\n Timer: Timer,\n TimerOff: TimerOff,\n TimerReset: TimerReset,\n ToggleLeft: ToggleLeft,\n ToggleRight: ToggleRight,\n Toilet: Toilet,\n ToolCase: ToolCase,\n Tornado: Tornado,\n Torus: Torus,\n Touchpad: Touchpad,\n TouchpadOff: TouchpadOff,\n TowerControl: TowerControl,\n ToyBrick: ToyBrick,\n Tractor: Tractor,\n TrafficCone: TrafficCone,\n TrainFront: TrainFront,\n TrainFrontTunnel: TrainFrontTunnel,\n TrainTrack: TrainTrack,\n TramFront: TramFront,\n Transgender: Transgender,\n Trash: Trash,\n Trash2: Trash2,\n TreeDeciduous: TreeDeciduous,\n TreePalm: TreePalm,\n TreePine: TreePine,\n Trees: Trees,\n Trello: Trello,\n TrendingDown: TrendingDown,\n TrendingUp: TrendingUp,\n TrendingUpDown: TrendingUpDown,\n Triangle: Triangle,\n TriangleAlert: TriangleAlert,\n TriangleDashed: TriangleDashed,\n TriangleRight: TriangleRight,\n Trophy: Trophy,\n Truck: Truck,\n TruckElectric: TruckElectric,\n Turtle: Turtle,\n Tv: Tv,\n TvMinimal: TvMinimal,\n TvMinimalPlay: TvMinimalPlay,\n Twitch: Twitch,\n Twitter: Twitter,\n Type: Type,\n TypeOutline: TypeOutline,\n Umbrella: Umbrella,\n UmbrellaOff: UmbrellaOff,\n Underline: Underline,\n Undo: Undo,\n Undo2: Undo2,\n UndoDot: UndoDot,\n UnfoldHorizontal: UnfoldHorizontal,\n UnfoldVertical: UnfoldVertical,\n Ungroup: Ungroup,\n University: University,\n Unlink: Unlink,\n Unlink2: Unlink2,\n Unplug: Unplug,\n Upload: Upload,\n Usb: Usb,\n User: User,\n UserCheck: UserCheck,\n UserCog: UserCog,\n UserLock: UserLock,\n UserMinus: UserMinus,\n UserPen: UserPen,\n UserPlus: UserPlus,\n UserRound: UserRound,\n UserRoundCheck: UserRoundCheck,\n UserRoundCog: UserRoundCog,\n UserRoundMinus: UserRoundMinus,\n UserRoundPen: UserRoundPen,\n UserRoundPlus: UserRoundPlus,\n UserRoundSearch: UserRoundSearch,\n UserRoundX: UserRoundX,\n UserSearch: UserSearch,\n UserX: UserX,\n Users: Users,\n UsersRound: UsersRound,\n Utensils: Utensils,\n UtensilsCrossed: UtensilsCrossed,\n UtilityPole: UtilityPole,\n Variable: Variable,\n Vault: Vault,\n VectorSquare: VectorSquare,\n Vegan: Vegan,\n VenetianMask: VenetianMask,\n Venus: Venus,\n VenusAndMars: VenusAndMars,\n Vibrate: Vibrate,\n VibrateOff: VibrateOff,\n Video: Video,\n VideoOff: VideoOff,\n Videotape: Videotape,\n View: View,\n Voicemail: Voicemail,\n Volleyball: Volleyball,\n Volume: Volume,\n Volume1: Volume1,\n Volume2: Volume2,\n VolumeOff: VolumeOff,\n VolumeX: VolumeX,\n Vote: Vote,\n Wallet: Wallet,\n WalletCards: WalletCards,\n WalletMinimal: WalletMinimal,\n Wallpaper: Wallpaper,\n Wand: Wand,\n WandSparkles: WandSparkles,\n Warehouse: Warehouse,\n WashingMachine: WashingMachine,\n Watch: Watch,\n Waves: Waves,\n WavesLadder: WavesLadder,\n Waypoints: Waypoints,\n Webcam: Webcam,\n Webhook: Webhook,\n WebhookOff: WebhookOff,\n Weight: Weight,\n Wheat: Wheat,\n WheatOff: WheatOff,\n WholeWord: WholeWord,\n Wifi: Wifi,\n WifiCog: WifiCog,\n WifiHigh: WifiHigh,\n WifiLow: WifiLow,\n WifiOff: WifiOff,\n WifiPen: WifiPen,\n WifiZero: WifiZero,\n Wind: Wind,\n WindArrowDown: WindArrowDown,\n Wine: Wine,\n WineOff: WineOff,\n Workflow: Workflow,\n Worm: Worm,\n WrapText: WrapText,\n Wrench: Wrench,\n X: X,\n Youtube: Youtube,\n Zap: Zap,\n ZapOff: ZapOff,\n ZoomIn: ZoomIn,\n ZoomOut: ZoomOut\n});\nexports.AArrowDown = AArrowDown;\nexports.AArrowDownIcon = AArrowDown;\nexports.AArrowUp = AArrowUp;\nexports.AArrowUpIcon = AArrowUp;\nexports.ALargeSmall = ALargeSmall;\nexports.ALargeSmallIcon = ALargeSmall;\nexports.Accessibility = Accessibility;\nexports.AccessibilityIcon = Accessibility;\nexports.Activity = Activity;\nexports.ActivityIcon = Activity;\nexports.ActivitySquare = SquareActivity;\nexports.ActivitySquareIcon = SquareActivity;\nexports.AirVent = AirVent;\nexports.AirVentIcon = AirVent;\nexports.Airplay = Airplay;\nexports.AirplayIcon = Airplay;\nexports.AlarmCheck = AlarmClockCheck;\nexports.AlarmCheckIcon = AlarmClockCheck;\nexports.AlarmClock = AlarmClock;\nexports.AlarmClockCheck = AlarmClockCheck;\nexports.AlarmClockCheckIcon = AlarmClockCheck;\nexports.AlarmClockIcon = AlarmClock;\nexports.AlarmClockMinus = AlarmClockMinus;\nexports.AlarmClockMinusIcon = AlarmClockMinus;\nexports.AlarmClockOff = AlarmClockOff;\nexports.AlarmClockOffIcon = AlarmClockOff;\nexports.AlarmClockPlus = AlarmClockPlus;\nexports.AlarmClockPlusIcon = AlarmClockPlus;\nexports.AlarmMinus = AlarmClockMinus;\nexports.AlarmMinusIcon = AlarmClockMinus;\nexports.AlarmPlus = AlarmClockPlus;\nexports.AlarmPlusIcon = AlarmClockPlus;\nexports.AlarmSmoke = AlarmSmoke;\nexports.AlarmSmokeIcon = AlarmSmoke;\nexports.Album = Album;\nexports.AlbumIcon = Album;\nexports.AlertCircle = CircleAlert;\nexports.AlertCircleIcon = CircleAlert;\nexports.AlertOctagon = OctagonAlert;\nexports.AlertOctagonIcon = OctagonAlert;\nexports.AlertTriangle = TriangleAlert;\nexports.AlertTriangleIcon = TriangleAlert;\nexports.AlignCenter = AlignCenter;\nexports.AlignCenterHorizontal = AlignCenterHorizontal;\nexports.AlignCenterHorizontalIcon = AlignCenterHorizontal;\nexports.AlignCenterIcon = AlignCenter;\nexports.AlignCenterVertical = AlignCenterVertical;\nexports.AlignCenterVerticalIcon = AlignCenterVertical;\nexports.AlignEndHorizontal = AlignEndHorizontal;\nexports.AlignEndHorizontalIcon = AlignEndHorizontal;\nexports.AlignEndVertical = AlignEndVertical;\nexports.AlignEndVerticalIcon = AlignEndVertical;\nexports.AlignHorizontalDistributeCenter = AlignHorizontalDistributeCenter;\nexports.AlignHorizontalDistributeCenterIcon = AlignHorizontalDistributeCenter;\nexports.AlignHorizontalDistributeEnd = AlignHorizontalDistributeEnd;\nexports.AlignHorizontalDistributeEndIcon = AlignHorizontalDistributeEnd;\nexports.AlignHorizontalDistributeStart = AlignHorizontalDistributeStart;\nexports.AlignHorizontalDistributeStartIcon = AlignHorizontalDistributeStart;\nexports.AlignHorizontalJustifyCenter = AlignHorizontalJustifyCenter;\nexports.AlignHorizontalJustifyCenterIcon = AlignHorizontalJustifyCenter;\nexports.AlignHorizontalJustifyEnd = AlignHorizontalJustifyEnd;\nexports.AlignHorizontalJustifyEndIcon = AlignHorizontalJustifyEnd;\nexports.AlignHorizontalJustifyStart = AlignHorizontalJustifyStart;\nexports.AlignHorizontalJustifyStartIcon = AlignHorizontalJustifyStart;\nexports.AlignHorizontalSpaceAround = AlignHorizontalSpaceAround;\nexports.AlignHorizontalSpaceAroundIcon = AlignHorizontalSpaceAround;\nexports.AlignHorizontalSpaceBetween = AlignHorizontalSpaceBetween;\nexports.AlignHorizontalSpaceBetweenIcon = AlignHorizontalSpaceBetween;\nexports.AlignJustify = AlignJustify;\nexports.AlignJustifyIcon = AlignJustify;\nexports.AlignLeft = AlignLeft;\nexports.AlignLeftIcon = AlignLeft;\nexports.AlignRight = AlignRight;\nexports.AlignRightIcon = AlignRight;\nexports.AlignStartHorizontal = AlignStartHorizontal;\nexports.AlignStartHorizontalIcon = AlignStartHorizontal;\nexports.AlignStartVertical = AlignStartVertical;\nexports.AlignStartVerticalIcon = AlignStartVertical;\nexports.AlignVerticalDistributeCenter = AlignVerticalDistributeCenter;\nexports.AlignVerticalDistributeCenterIcon = AlignVerticalDistributeCenter;\nexports.AlignVerticalDistributeEnd = AlignVerticalDistributeEnd;\nexports.AlignVerticalDistributeEndIcon = AlignVerticalDistributeEnd;\nexports.AlignVerticalDistributeStart = AlignVerticalDistributeStart;\nexports.AlignVerticalDistributeStartIcon = AlignVerticalDistributeStart;\nexports.AlignVerticalJustifyCenter = AlignVerticalJustifyCenter;\nexports.AlignVerticalJustifyCenterIcon = AlignVerticalJustifyCenter;\nexports.AlignVerticalJustifyEnd = AlignVerticalJustifyEnd;\nexports.AlignVerticalJustifyEndIcon = AlignVerticalJustifyEnd;\nexports.AlignVerticalJustifyStart = AlignVerticalJustifyStart;\nexports.AlignVerticalJustifyStartIcon = AlignVerticalJustifyStart;\nexports.AlignVerticalSpaceAround = AlignVerticalSpaceAround;\nexports.AlignVerticalSpaceAroundIcon = AlignVerticalSpaceAround;\nexports.AlignVerticalSpaceBetween = AlignVerticalSpaceBetween;\nexports.AlignVerticalSpaceBetweenIcon = AlignVerticalSpaceBetween;\nexports.Ambulance = Ambulance;\nexports.AmbulanceIcon = Ambulance;\nexports.Ampersand = Ampersand;\nexports.AmpersandIcon = Ampersand;\nexports.Ampersands = Ampersands;\nexports.AmpersandsIcon = Ampersands;\nexports.Amphora = Amphora;\nexports.AmphoraIcon = Amphora;\nexports.Anchor = Anchor;\nexports.AnchorIcon = Anchor;\nexports.Angry = Angry;\nexports.AngryIcon = Angry;\nexports.Annoyed = Annoyed;\nexports.AnnoyedIcon = Annoyed;\nexports.Antenna = Antenna;\nexports.AntennaIcon = Antenna;\nexports.Anvil = Anvil;\nexports.AnvilIcon = Anvil;\nexports.Aperture = Aperture;\nexports.ApertureIcon = Aperture;\nexports.AppWindow = AppWindow;\nexports.AppWindowIcon = AppWindow;\nexports.AppWindowMac = AppWindowMac;\nexports.AppWindowMacIcon = AppWindowMac;\nexports.Apple = Apple;\nexports.AppleIcon = Apple;\nexports.Archive = Archive;\nexports.ArchiveIcon = Archive;\nexports.ArchiveRestore = ArchiveRestore;\nexports.ArchiveRestoreIcon = ArchiveRestore;\nexports.ArchiveX = ArchiveX;\nexports.ArchiveXIcon = ArchiveX;\nexports.AreaChart = ChartArea;\nexports.AreaChartIcon = ChartArea;\nexports.Armchair = Armchair;\nexports.ArmchairIcon = Armchair;\nexports.ArrowBigDown = ArrowBigDown;\nexports.ArrowBigDownDash = ArrowBigDownDash;\nexports.ArrowBigDownDashIcon = ArrowBigDownDash;\nexports.ArrowBigDownIcon = ArrowBigDown;\nexports.ArrowBigLeft = ArrowBigLeft;\nexports.ArrowBigLeftDash = ArrowBigLeftDash;\nexports.ArrowBigLeftDashIcon = ArrowBigLeftDash;\nexports.ArrowBigLeftIcon = ArrowBigLeft;\nexports.ArrowBigRight = ArrowBigRight;\nexports.ArrowBigRightDash = ArrowBigRightDash;\nexports.ArrowBigRightDashIcon = ArrowBigRightDash;\nexports.ArrowBigRightIcon = ArrowBigRight;\nexports.ArrowBigUp = ArrowBigUp;\nexports.ArrowBigUpDash = ArrowBigUpDash;\nexports.ArrowBigUpDashIcon = ArrowBigUpDash;\nexports.ArrowBigUpIcon = ArrowBigUp;\nexports.ArrowDown = ArrowDown;\nexports.ArrowDown01 = ArrowDown01;\nexports.ArrowDown01Icon = ArrowDown01;\nexports.ArrowDown10 = ArrowDown10;\nexports.ArrowDown10Icon = ArrowDown10;\nexports.ArrowDownAZ = ArrowDownAZ;\nexports.ArrowDownAZIcon = ArrowDownAZ;\nexports.ArrowDownAz = ArrowDownAZ;\nexports.ArrowDownAzIcon = ArrowDownAZ;\nexports.ArrowDownCircle = CircleArrowDown;\nexports.ArrowDownCircleIcon = CircleArrowDown;\nexports.ArrowDownFromLine = ArrowDownFromLine;\nexports.ArrowDownFromLineIcon = ArrowDownFromLine;\nexports.ArrowDownIcon = ArrowDown;\nexports.ArrowDownLeft = ArrowDownLeft;\nexports.ArrowDownLeftFromCircle = CircleArrowOutDownLeft;\nexports.ArrowDownLeftFromCircleIcon = CircleArrowOutDownLeft;\nexports.ArrowDownLeftFromSquare = SquareArrowOutDownLeft;\nexports.ArrowDownLeftFromSquareIcon = SquareArrowOutDownLeft;\nexports.ArrowDownLeftIcon = ArrowDownLeft;\nexports.ArrowDownLeftSquare = SquareArrowDownLeft;\nexports.ArrowDownLeftSquareIcon = SquareArrowDownLeft;\nexports.ArrowDownNarrowWide = ArrowDownNarrowWide;\nexports.ArrowDownNarrowWideIcon = ArrowDownNarrowWide;\nexports.ArrowDownRight = ArrowDownRight;\nexports.ArrowDownRightFromCircle = CircleArrowOutDownRight;\nexports.ArrowDownRightFromCircleIcon = CircleArrowOutDownRight;\nexports.ArrowDownRightFromSquare = SquareArrowOutDownRight;\nexports.ArrowDownRightFromSquareIcon = SquareArrowOutDownRight;\nexports.ArrowDownRightIcon = ArrowDownRight;\nexports.ArrowDownRightSquare = SquareArrowDownRight;\nexports.ArrowDownRightSquareIcon = SquareArrowDownRight;\nexports.ArrowDownSquare = SquareArrowDown;\nexports.ArrowDownSquareIcon = SquareArrowDown;\nexports.ArrowDownToDot = ArrowDownToDot;\nexports.ArrowDownToDotIcon = ArrowDownToDot;\nexports.ArrowDownToLine = ArrowDownToLine;\nexports.ArrowDownToLineIcon = ArrowDownToLine;\nexports.ArrowDownUp = ArrowDownUp;\nexports.ArrowDownUpIcon = ArrowDownUp;\nexports.ArrowDownWideNarrow = ArrowDownWideNarrow;\nexports.ArrowDownWideNarrowIcon = ArrowDownWideNarrow;\nexports.ArrowDownZA = ArrowDownZA;\nexports.ArrowDownZAIcon = ArrowDownZA;\nexports.ArrowDownZa = ArrowDownZA;\nexports.ArrowDownZaIcon = ArrowDownZA;\nexports.ArrowLeft = ArrowLeft;\nexports.ArrowLeftCircle = CircleArrowLeft;\nexports.ArrowLeftCircleIcon = CircleArrowLeft;\nexports.ArrowLeftFromLine = ArrowLeftFromLine;\nexports.ArrowLeftFromLineIcon = ArrowLeftFromLine;\nexports.ArrowLeftIcon = ArrowLeft;\nexports.ArrowLeftRight = ArrowLeftRight;\nexports.ArrowLeftRightIcon = ArrowLeftRight;\nexports.ArrowLeftSquare = SquareArrowLeft;\nexports.ArrowLeftSquareIcon = SquareArrowLeft;\nexports.ArrowLeftToLine = ArrowLeftToLine;\nexports.ArrowLeftToLineIcon = ArrowLeftToLine;\nexports.ArrowRight = ArrowRight;\nexports.ArrowRightCircle = CircleArrowRight;\nexports.ArrowRightCircleIcon = CircleArrowRight;\nexports.ArrowRightFromLine = ArrowRightFromLine;\nexports.ArrowRightFromLineIcon = ArrowRightFromLine;\nexports.ArrowRightIcon = ArrowRight;\nexports.ArrowRightLeft = ArrowRightLeft;\nexports.ArrowRightLeftIcon = ArrowRightLeft;\nexports.ArrowRightSquare = SquareArrowRight;\nexports.ArrowRightSquareIcon = SquareArrowRight;\nexports.ArrowRightToLine = ArrowRightToLine;\nexports.ArrowRightToLineIcon = ArrowRightToLine;\nexports.ArrowUp = ArrowUp;\nexports.ArrowUp01 = ArrowUp01;\nexports.ArrowUp01Icon = ArrowUp01;\nexports.ArrowUp10 = ArrowUp10;\nexports.ArrowUp10Icon = ArrowUp10;\nexports.ArrowUpAZ = ArrowUpAZ;\nexports.ArrowUpAZIcon = ArrowUpAZ;\nexports.ArrowUpAz = ArrowUpAZ;\nexports.ArrowUpAzIcon = ArrowUpAZ;\nexports.ArrowUpCircle = CircleArrowUp;\nexports.ArrowUpCircleIcon = CircleArrowUp;\nexports.ArrowUpDown = ArrowUpDown;\nexports.ArrowUpDownIcon = ArrowUpDown;\nexports.ArrowUpFromDot = ArrowUpFromDot;\nexports.ArrowUpFromDotIcon = ArrowUpFromDot;\nexports.ArrowUpFromLine = ArrowUpFromLine;\nexports.ArrowUpFromLineIcon = ArrowUpFromLine;\nexports.ArrowUpIcon = ArrowUp;\nexports.ArrowUpLeft = ArrowUpLeft;\nexports.ArrowUpLeftFromCircle = CircleArrowOutUpLeft;\nexports.ArrowUpLeftFromCircleIcon = CircleArrowOutUpLeft;\nexports.ArrowUpLeftFromSquare = SquareArrowOutUpLeft;\nexports.ArrowUpLeftFromSquareIcon = SquareArrowOutUpLeft;\nexports.ArrowUpLeftIcon = ArrowUpLeft;\nexports.ArrowUpLeftSquare = SquareArrowUpLeft;\nexports.ArrowUpLeftSquareIcon = SquareArrowUpLeft;\nexports.ArrowUpNarrowWide = ArrowUpNarrowWide;\nexports.ArrowUpNarrowWideIcon = ArrowUpNarrowWide;\nexports.ArrowUpRight = ArrowUpRight;\nexports.ArrowUpRightFromCircle = CircleArrowOutUpRight;\nexports.ArrowUpRightFromCircleIcon = CircleArrowOutUpRight;\nexports.ArrowUpRightFromSquare = SquareArrowOutUpRight;\nexports.ArrowUpRightFromSquareIcon = SquareArrowOutUpRight;\nexports.ArrowUpRightIcon = ArrowUpRight;\nexports.ArrowUpRightSquare = SquareArrowUpRight;\nexports.ArrowUpRightSquareIcon = SquareArrowUpRight;\nexports.ArrowUpSquare = SquareArrowUp;\nexports.ArrowUpSquareIcon = SquareArrowUp;\nexports.ArrowUpToLine = ArrowUpToLine;\nexports.ArrowUpToLineIcon = ArrowUpToLine;\nexports.ArrowUpWideNarrow = ArrowUpWideNarrow;\nexports.ArrowUpWideNarrowIcon = ArrowUpWideNarrow;\nexports.ArrowUpZA = ArrowUpZA;\nexports.ArrowUpZAIcon = ArrowUpZA;\nexports.ArrowUpZa = ArrowUpZA;\nexports.ArrowUpZaIcon = ArrowUpZA;\nexports.ArrowsUpFromLine = ArrowsUpFromLine;\nexports.ArrowsUpFromLineIcon = ArrowsUpFromLine;\nexports.Asterisk = Asterisk;\nexports.AsteriskIcon = Asterisk;\nexports.AsteriskSquare = SquareAsterisk;\nexports.AsteriskSquareIcon = SquareAsterisk;\nexports.AtSign = AtSign;\nexports.AtSignIcon = AtSign;\nexports.Atom = Atom;\nexports.AtomIcon = Atom;\nexports.AudioLines = AudioLines;\nexports.AudioLinesIcon = AudioLines;\nexports.AudioWaveform = AudioWaveform;\nexports.AudioWaveformIcon = AudioWaveform;\nexports.Award = Award;\nexports.AwardIcon = Award;\nexports.Axe = Axe;\nexports.AxeIcon = Axe;\nexports.Axis3D = Axis3d;\nexports.Axis3DIcon = Axis3d;\nexports.Axis3d = Axis3d;\nexports.Axis3dIcon = Axis3d;\nexports.Baby = Baby;\nexports.BabyIcon = Baby;\nexports.Backpack = Backpack;\nexports.BackpackIcon = Backpack;\nexports.Badge = Badge;\nexports.BadgeAlert = BadgeAlert;\nexports.BadgeAlertIcon = BadgeAlert;\nexports.BadgeCent = BadgeCent;\nexports.BadgeCentIcon = BadgeCent;\nexports.BadgeCheck = BadgeCheck;\nexports.BadgeCheckIcon = BadgeCheck;\nexports.BadgeDollarSign = BadgeDollarSign;\nexports.BadgeDollarSignIcon = BadgeDollarSign;\nexports.BadgeEuro = BadgeEuro;\nexports.BadgeEuroIcon = BadgeEuro;\nexports.BadgeHelp = BadgeQuestionMark;\nexports.BadgeHelpIcon = BadgeQuestionMark;\nexports.BadgeIcon = Badge;\nexports.BadgeIndianRupee = BadgeIndianRupee;\nexports.BadgeIndianRupeeIcon = BadgeIndianRupee;\nexports.BadgeInfo = BadgeInfo;\nexports.BadgeInfoIcon = BadgeInfo;\nexports.BadgeJapaneseYen = BadgeJapaneseYen;\nexports.BadgeJapaneseYenIcon = BadgeJapaneseYen;\nexports.BadgeMinus = BadgeMinus;\nexports.BadgeMinusIcon = BadgeMinus;\nexports.BadgePercent = BadgePercent;\nexports.BadgePercentIcon = BadgePercent;\nexports.BadgePlus = BadgePlus;\nexports.BadgePlusIcon = BadgePlus;\nexports.BadgePoundSterling = BadgePoundSterling;\nexports.BadgePoundSterlingIcon = BadgePoundSterling;\nexports.BadgeQuestionMark = BadgeQuestionMark;\nexports.BadgeQuestionMarkIcon = BadgeQuestionMark;\nexports.BadgeRussianRuble = BadgeRussianRuble;\nexports.BadgeRussianRubleIcon = BadgeRussianRuble;\nexports.BadgeSwissFranc = BadgeSwissFranc;\nexports.BadgeSwissFrancIcon = BadgeSwissFranc;\nexports.BadgeX = BadgeX;\nexports.BadgeXIcon = BadgeX;\nexports.BaggageClaim = BaggageClaim;\nexports.BaggageClaimIcon = BaggageClaim;\nexports.Ban = Ban;\nexports.BanIcon = Ban;\nexports.Banana = Banana;\nexports.BananaIcon = Banana;\nexports.Bandage = Bandage;\nexports.BandageIcon = Bandage;\nexports.Banknote = Banknote;\nexports.BanknoteArrowDown = BanknoteArrowDown;\nexports.BanknoteArrowDownIcon = BanknoteArrowDown;\nexports.BanknoteArrowUp = BanknoteArrowUp;\nexports.BanknoteArrowUpIcon = BanknoteArrowUp;\nexports.BanknoteIcon = Banknote;\nexports.BanknoteX = BanknoteX;\nexports.BanknoteXIcon = BanknoteX;\nexports.BarChart = ChartNoAxesColumnIncreasing;\nexports.BarChart2 = ChartNoAxesColumn;\nexports.BarChart2Icon = ChartNoAxesColumn;\nexports.BarChart3 = ChartColumn;\nexports.BarChart3Icon = ChartColumn;\nexports.BarChart4 = ChartColumnIncreasing;\nexports.BarChart4Icon = ChartColumnIncreasing;\nexports.BarChartBig = ChartColumnBig;\nexports.BarChartBigIcon = ChartColumnBig;\nexports.BarChartHorizontal = ChartBar;\nexports.BarChartHorizontalBig = ChartBarBig;\nexports.BarChartHorizontalBigIcon = ChartBarBig;\nexports.BarChartHorizontalIcon = ChartBar;\nexports.BarChartIcon = ChartNoAxesColumnIncreasing;\nexports.Barcode = Barcode;\nexports.BarcodeIcon = Barcode;\nexports.Barrel = Barrel;\nexports.BarrelIcon = Barrel;\nexports.Baseline = Baseline;\nexports.BaselineIcon = Baseline;\nexports.Bath = Bath;\nexports.BathIcon = Bath;\nexports.Battery = Battery;\nexports.BatteryCharging = BatteryCharging;\nexports.BatteryChargingIcon = BatteryCharging;\nexports.BatteryFull = BatteryFull;\nexports.BatteryFullIcon = BatteryFull;\nexports.BatteryIcon = Battery;\nexports.BatteryLow = BatteryLow;\nexports.BatteryLowIcon = BatteryLow;\nexports.BatteryMedium = BatteryMedium;\nexports.BatteryMediumIcon = BatteryMedium;\nexports.BatteryPlus = BatteryPlus;\nexports.BatteryPlusIcon = BatteryPlus;\nexports.BatteryWarning = BatteryWarning;\nexports.BatteryWarningIcon = BatteryWarning;\nexports.Beaker = Beaker;\nexports.BeakerIcon = Beaker;\nexports.Bean = Bean;\nexports.BeanIcon = Bean;\nexports.BeanOff = BeanOff;\nexports.BeanOffIcon = BeanOff;\nexports.Bed = Bed;\nexports.BedDouble = BedDouble;\nexports.BedDoubleIcon = BedDouble;\nexports.BedIcon = Bed;\nexports.BedSingle = BedSingle;\nexports.BedSingleIcon = BedSingle;\nexports.Beef = Beef;\nexports.BeefIcon = Beef;\nexports.Beer = Beer;\nexports.BeerIcon = Beer;\nexports.BeerOff = BeerOff;\nexports.BeerOffIcon = BeerOff;\nexports.Bell = Bell;\nexports.BellDot = BellDot;\nexports.BellDotIcon = BellDot;\nexports.BellElectric = BellElectric;\nexports.BellElectricIcon = BellElectric;\nexports.BellIcon = Bell;\nexports.BellMinus = BellMinus;\nexports.BellMinusIcon = BellMinus;\nexports.BellOff = BellOff;\nexports.BellOffIcon = BellOff;\nexports.BellPlus = BellPlus;\nexports.BellPlusIcon = BellPlus;\nexports.BellRing = BellRing;\nexports.BellRingIcon = BellRing;\nexports.BetweenHorizonalEnd = BetweenHorizontalEnd;\nexports.BetweenHorizonalEndIcon = BetweenHorizontalEnd;\nexports.BetweenHorizonalStart = BetweenHorizontalStart;\nexports.BetweenHorizonalStartIcon = BetweenHorizontalStart;\nexports.BetweenHorizontalEnd = BetweenHorizontalEnd;\nexports.BetweenHorizontalEndIcon = BetweenHorizontalEnd;\nexports.BetweenHorizontalStart = BetweenHorizontalStart;\nexports.BetweenHorizontalStartIcon = BetweenHorizontalStart;\nexports.BetweenVerticalEnd = BetweenVerticalEnd;\nexports.BetweenVerticalEndIcon = BetweenVerticalEnd;\nexports.BetweenVerticalStart = BetweenVerticalStart;\nexports.BetweenVerticalStartIcon = BetweenVerticalStart;\nexports.BicepsFlexed = BicepsFlexed;\nexports.BicepsFlexedIcon = BicepsFlexed;\nexports.Bike = Bike;\nexports.BikeIcon = Bike;\nexports.Binary = Binary;\nexports.BinaryIcon = Binary;\nexports.Binoculars = Binoculars;\nexports.BinocularsIcon = Binoculars;\nexports.Biohazard = Biohazard;\nexports.BiohazardIcon = Biohazard;\nexports.Bird = Bird;\nexports.BirdIcon = Bird;\nexports.Bitcoin = Bitcoin;\nexports.BitcoinIcon = Bitcoin;\nexports.Blend = Blend;\nexports.BlendIcon = Blend;\nexports.Blinds = Blinds;\nexports.BlindsIcon = Blinds;\nexports.Blocks = Blocks;\nexports.BlocksIcon = Blocks;\nexports.Bluetooth = Bluetooth;\nexports.BluetoothConnected = BluetoothConnected;\nexports.BluetoothConnectedIcon = BluetoothConnected;\nexports.BluetoothIcon = Bluetooth;\nexports.BluetoothOff = BluetoothOff;\nexports.BluetoothOffIcon = BluetoothOff;\nexports.BluetoothSearching = BluetoothSearching;\nexports.BluetoothSearchingIcon = BluetoothSearching;\nexports.Bold = Bold;\nexports.BoldIcon = Bold;\nexports.Bolt = Bolt;\nexports.BoltIcon = Bolt;\nexports.Bomb = Bomb;\nexports.BombIcon = Bomb;\nexports.Bone = Bone;\nexports.BoneIcon = Bone;\nexports.Book = Book;\nexports.BookA = BookA;\nexports.BookAIcon = BookA;\nexports.BookAlert = BookAlert;\nexports.BookAlertIcon = BookAlert;\nexports.BookAudio = BookAudio;\nexports.BookAudioIcon = BookAudio;\nexports.BookCheck = BookCheck;\nexports.BookCheckIcon = BookCheck;\nexports.BookCopy = BookCopy;\nexports.BookCopyIcon = BookCopy;\nexports.BookDashed = BookDashed;\nexports.BookDashedIcon = BookDashed;\nexports.BookDown = BookDown;\nexports.BookDownIcon = BookDown;\nexports.BookHeadphones = BookHeadphones;\nexports.BookHeadphonesIcon = BookHeadphones;\nexports.BookHeart = BookHeart;\nexports.BookHeartIcon = BookHeart;\nexports.BookIcon = Book;\nexports.BookImage = BookImage;\nexports.BookImageIcon = BookImage;\nexports.BookKey = BookKey;\nexports.BookKeyIcon = BookKey;\nexports.BookLock = BookLock;\nexports.BookLockIcon = BookLock;\nexports.BookMarked = BookMarked;\nexports.BookMarkedIcon = BookMarked;\nexports.BookMinus = BookMinus;\nexports.BookMinusIcon = BookMinus;\nexports.BookOpen = BookOpen;\nexports.BookOpenCheck = BookOpenCheck;\nexports.BookOpenCheckIcon = BookOpenCheck;\nexports.BookOpenIcon = BookOpen;\nexports.BookOpenText = BookOpenText;\nexports.BookOpenTextIcon = BookOpenText;\nexports.BookPlus = BookPlus;\nexports.BookPlusIcon = BookPlus;\nexports.BookTemplate = BookDashed;\nexports.BookTemplateIcon = BookDashed;\nexports.BookText = BookText;\nexports.BookTextIcon = BookText;\nexports.BookType = BookType;\nexports.BookTypeIcon = BookType;\nexports.BookUp = BookUp;\nexports.BookUp2 = BookUp2;\nexports.BookUp2Icon = BookUp2;\nexports.BookUpIcon = BookUp;\nexports.BookUser = BookUser;\nexports.BookUserIcon = BookUser;\nexports.BookX = BookX;\nexports.BookXIcon = BookX;\nexports.Bookmark = Bookmark;\nexports.BookmarkCheck = BookmarkCheck;\nexports.BookmarkCheckIcon = BookmarkCheck;\nexports.BookmarkIcon = Bookmark;\nexports.BookmarkMinus = BookmarkMinus;\nexports.BookmarkMinusIcon = BookmarkMinus;\nexports.BookmarkPlus = BookmarkPlus;\nexports.BookmarkPlusIcon = BookmarkPlus;\nexports.BookmarkX = BookmarkX;\nexports.BookmarkXIcon = BookmarkX;\nexports.BoomBox = BoomBox;\nexports.BoomBoxIcon = BoomBox;\nexports.Bot = Bot;\nexports.BotIcon = Bot;\nexports.BotMessageSquare = BotMessageSquare;\nexports.BotMessageSquareIcon = BotMessageSquare;\nexports.BotOff = BotOff;\nexports.BotOffIcon = BotOff;\nexports.BottleWine = BottleWine;\nexports.BottleWineIcon = BottleWine;\nexports.BowArrow = BowArrow;\nexports.BowArrowIcon = BowArrow;\nexports.Box = Box;\nexports.BoxIcon = Box;\nexports.BoxSelect = SquareDashed;\nexports.BoxSelectIcon = SquareDashed;\nexports.Boxes = Boxes;\nexports.BoxesIcon = Boxes;\nexports.Braces = Braces;\nexports.BracesIcon = Braces;\nexports.Brackets = Brackets;\nexports.BracketsIcon = Brackets;\nexports.Brain = Brain;\nexports.BrainCircuit = BrainCircuit;\nexports.BrainCircuitIcon = BrainCircuit;\nexports.BrainCog = BrainCog;\nexports.BrainCogIcon = BrainCog;\nexports.BrainIcon = Brain;\nexports.BrickWall = BrickWall;\nexports.BrickWallFire = BrickWallFire;\nexports.BrickWallFireIcon = BrickWallFire;\nexports.BrickWallIcon = BrickWall;\nexports.Briefcase = Briefcase;\nexports.BriefcaseBusiness = BriefcaseBusiness;\nexports.BriefcaseBusinessIcon = BriefcaseBusiness;\nexports.BriefcaseConveyorBelt = BriefcaseConveyorBelt;\nexports.BriefcaseConveyorBeltIcon = BriefcaseConveyorBelt;\nexports.BriefcaseIcon = Briefcase;\nexports.BriefcaseMedical = BriefcaseMedical;\nexports.BriefcaseMedicalIcon = BriefcaseMedical;\nexports.BringToFront = BringToFront;\nexports.BringToFrontIcon = BringToFront;\nexports.Brush = Brush;\nexports.BrushCleaning = BrushCleaning;\nexports.BrushCleaningIcon = BrushCleaning;\nexports.BrushIcon = Brush;\nexports.Bubbles = Bubbles;\nexports.BubblesIcon = Bubbles;\nexports.Bug = Bug;\nexports.BugIcon = Bug;\nexports.BugOff = BugOff;\nexports.BugOffIcon = BugOff;\nexports.BugPlay = BugPlay;\nexports.BugPlayIcon = BugPlay;\nexports.Building = Building;\nexports.Building2 = Building2;\nexports.Building2Icon = Building2;\nexports.BuildingIcon = Building;\nexports.Bus = Bus;\nexports.BusFront = BusFront;\nexports.BusFrontIcon = BusFront;\nexports.BusIcon = Bus;\nexports.Cable = Cable;\nexports.CableCar = CableCar;\nexports.CableCarIcon = CableCar;\nexports.CableIcon = Cable;\nexports.Cake = Cake;\nexports.CakeIcon = Cake;\nexports.CakeSlice = CakeSlice;\nexports.CakeSliceIcon = CakeSlice;\nexports.Calculator = Calculator;\nexports.CalculatorIcon = Calculator;\nexports.Calendar = Calendar;\nexports.Calendar1 = Calendar1;\nexports.Calendar1Icon = Calendar1;\nexports.CalendarArrowDown = CalendarArrowDown;\nexports.CalendarArrowDownIcon = CalendarArrowDown;\nexports.CalendarArrowUp = CalendarArrowUp;\nexports.CalendarArrowUpIcon = CalendarArrowUp;\nexports.CalendarCheck = CalendarCheck;\nexports.CalendarCheck2 = CalendarCheck2;\nexports.CalendarCheck2Icon = CalendarCheck2;\nexports.CalendarCheckIcon = CalendarCheck;\nexports.CalendarClock = CalendarClock;\nexports.CalendarClockIcon = CalendarClock;\nexports.CalendarCog = CalendarCog;\nexports.CalendarCogIcon = CalendarCog;\nexports.CalendarDays = CalendarDays;\nexports.CalendarDaysIcon = CalendarDays;\nexports.CalendarFold = CalendarFold;\nexports.CalendarFoldIcon = CalendarFold;\nexports.CalendarHeart = CalendarHeart;\nexports.CalendarHeartIcon = CalendarHeart;\nexports.CalendarIcon = Calendar;\nexports.CalendarMinus = CalendarMinus;\nexports.CalendarMinus2 = CalendarMinus2;\nexports.CalendarMinus2Icon = CalendarMinus2;\nexports.CalendarMinusIcon = CalendarMinus;\nexports.CalendarOff = CalendarOff;\nexports.CalendarOffIcon = CalendarOff;\nexports.CalendarPlus = CalendarPlus;\nexports.CalendarPlus2 = CalendarPlus2;\nexports.CalendarPlus2Icon = CalendarPlus2;\nexports.CalendarPlusIcon = CalendarPlus;\nexports.CalendarRange = CalendarRange;\nexports.CalendarRangeIcon = CalendarRange;\nexports.CalendarSearch = CalendarSearch;\nexports.CalendarSearchIcon = CalendarSearch;\nexports.CalendarSync = CalendarSync;\nexports.CalendarSyncIcon = CalendarSync;\nexports.CalendarX = CalendarX;\nexports.CalendarX2 = CalendarX2;\nexports.CalendarX2Icon = CalendarX2;\nexports.CalendarXIcon = CalendarX;\nexports.Camera = Camera;\nexports.CameraIcon = Camera;\nexports.CameraOff = CameraOff;\nexports.CameraOffIcon = CameraOff;\nexports.CandlestickChart = ChartCandlestick;\nexports.CandlestickChartIcon = ChartCandlestick;\nexports.Candy = Candy;\nexports.CandyCane = CandyCane;\nexports.CandyCaneIcon = CandyCane;\nexports.CandyIcon = Candy;\nexports.CandyOff = CandyOff;\nexports.CandyOffIcon = CandyOff;\nexports.Cannabis = Cannabis;\nexports.CannabisIcon = Cannabis;\nexports.Captions = Captions;\nexports.CaptionsIcon = Captions;\nexports.CaptionsOff = CaptionsOff;\nexports.CaptionsOffIcon = CaptionsOff;\nexports.Car = Car;\nexports.CarFront = CarFront;\nexports.CarFrontIcon = CarFront;\nexports.CarIcon = Car;\nexports.CarTaxiFront = CarTaxiFront;\nexports.CarTaxiFrontIcon = CarTaxiFront;\nexports.Caravan = Caravan;\nexports.CaravanIcon = Caravan;\nexports.CardSim = CardSim;\nexports.CardSimIcon = CardSim;\nexports.Carrot = Carrot;\nexports.CarrotIcon = Carrot;\nexports.CaseLower = CaseLower;\nexports.CaseLowerIcon = CaseLower;\nexports.CaseSensitive = CaseSensitive;\nexports.CaseSensitiveIcon = CaseSensitive;\nexports.CaseUpper = CaseUpper;\nexports.CaseUpperIcon = CaseUpper;\nexports.CassetteTape = CassetteTape;\nexports.CassetteTapeIcon = CassetteTape;\nexports.Cast = Cast;\nexports.CastIcon = Cast;\nexports.Castle = Castle;\nexports.CastleIcon = Castle;\nexports.Cat = Cat;\nexports.CatIcon = Cat;\nexports.Cctv = Cctv;\nexports.CctvIcon = Cctv;\nexports.ChartArea = ChartArea;\nexports.ChartAreaIcon = ChartArea;\nexports.ChartBar = ChartBar;\nexports.ChartBarBig = ChartBarBig;\nexports.ChartBarBigIcon = ChartBarBig;\nexports.ChartBarDecreasing = ChartBarDecreasing;\nexports.ChartBarDecreasingIcon = ChartBarDecreasing;\nexports.ChartBarIcon = ChartBar;\nexports.ChartBarIncreasing = ChartBarIncreasing;\nexports.ChartBarIncreasingIcon = ChartBarIncreasing;\nexports.ChartBarStacked = ChartBarStacked;\nexports.ChartBarStackedIcon = ChartBarStacked;\nexports.ChartCandlestick = ChartCandlestick;\nexports.ChartCandlestickIcon = ChartCandlestick;\nexports.ChartColumn = ChartColumn;\nexports.ChartColumnBig = ChartColumnBig;\nexports.ChartColumnBigIcon = ChartColumnBig;\nexports.ChartColumnDecreasing = ChartColumnDecreasing;\nexports.ChartColumnDecreasingIcon = ChartColumnDecreasing;\nexports.ChartColumnIcon = ChartColumn;\nexports.ChartColumnIncreasing = ChartColumnIncreasing;\nexports.ChartColumnIncreasingIcon = ChartColumnIncreasing;\nexports.ChartColumnStacked = ChartColumnStacked;\nexports.ChartColumnStackedIcon = ChartColumnStacked;\nexports.ChartGantt = ChartGantt;\nexports.ChartGanttIcon = ChartGantt;\nexports.ChartLine = ChartLine;\nexports.ChartLineIcon = ChartLine;\nexports.ChartNetwork = ChartNetwork;\nexports.ChartNetworkIcon = ChartNetwork;\nexports.ChartNoAxesColumn = ChartNoAxesColumn;\nexports.ChartNoAxesColumnDecreasing = ChartNoAxesColumnDecreasing;\nexports.ChartNoAxesColumnDecreasingIcon = ChartNoAxesColumnDecreasing;\nexports.ChartNoAxesColumnIcon = ChartNoAxesColumn;\nexports.ChartNoAxesColumnIncreasing = ChartNoAxesColumnIncreasing;\nexports.ChartNoAxesColumnIncreasingIcon = ChartNoAxesColumnIncreasing;\nexports.ChartNoAxesCombined = ChartNoAxesCombined;\nexports.ChartNoAxesCombinedIcon = ChartNoAxesCombined;\nexports.ChartNoAxesGantt = ChartNoAxesGantt;\nexports.ChartNoAxesGanttIcon = ChartNoAxesGantt;\nexports.ChartPie = ChartPie;\nexports.ChartPieIcon = ChartPie;\nexports.ChartScatter = ChartScatter;\nexports.ChartScatterIcon = ChartScatter;\nexports.ChartSpline = ChartSpline;\nexports.ChartSplineIcon = ChartSpline;\nexports.Check = Check;\nexports.CheckCheck = CheckCheck;\nexports.CheckCheckIcon = CheckCheck;\nexports.CheckCircle = CircleCheckBig;\nexports.CheckCircle2 = CircleCheck;\nexports.CheckCircle2Icon = CircleCheck;\nexports.CheckCircleIcon = CircleCheckBig;\nexports.CheckIcon = Check;\nexports.CheckLine = CheckLine;\nexports.CheckLineIcon = CheckLine;\nexports.CheckSquare = SquareCheckBig;\nexports.CheckSquare2 = SquareCheck;\nexports.CheckSquare2Icon = SquareCheck;\nexports.CheckSquareIcon = SquareCheckBig;\nexports.ChefHat = ChefHat;\nexports.ChefHatIcon = ChefHat;\nexports.Cherry = Cherry;\nexports.CherryIcon = Cherry;\nexports.ChevronDown = ChevronDown;\nexports.ChevronDownCircle = CircleChevronDown;\nexports.ChevronDownCircleIcon = CircleChevronDown;\nexports.ChevronDownIcon = ChevronDown;\nexports.ChevronDownSquare = SquareChevronDown;\nexports.ChevronDownSquareIcon = SquareChevronDown;\nexports.ChevronFirst = ChevronFirst;\nexports.ChevronFirstIcon = ChevronFirst;\nexports.ChevronLast = ChevronLast;\nexports.ChevronLastIcon = ChevronLast;\nexports.ChevronLeft = ChevronLeft;\nexports.ChevronLeftCircle = CircleChevronLeft;\nexports.ChevronLeftCircleIcon = CircleChevronLeft;\nexports.ChevronLeftIcon = ChevronLeft;\nexports.ChevronLeftSquare = SquareChevronLeft;\nexports.ChevronLeftSquareIcon = SquareChevronLeft;\nexports.ChevronRight = ChevronRight;\nexports.ChevronRightCircle = CircleChevronRight;\nexports.ChevronRightCircleIcon = CircleChevronRight;\nexports.ChevronRightIcon = ChevronRight;\nexports.ChevronRightSquare = SquareChevronRight;\nexports.ChevronRightSquareIcon = SquareChevronRight;\nexports.ChevronUp = ChevronUp;\nexports.ChevronUpCircle = CircleChevronUp;\nexports.ChevronUpCircleIcon = CircleChevronUp;\nexports.ChevronUpIcon = ChevronUp;\nexports.ChevronUpSquare = SquareChevronUp;\nexports.ChevronUpSquareIcon = SquareChevronUp;\nexports.ChevronsDown = ChevronsDown;\nexports.ChevronsDownIcon = ChevronsDown;\nexports.ChevronsDownUp = ChevronsDownUp;\nexports.ChevronsDownUpIcon = ChevronsDownUp;\nexports.ChevronsLeft = ChevronsLeft;\nexports.ChevronsLeftIcon = ChevronsLeft;\nexports.ChevronsLeftRight = ChevronsLeftRight;\nexports.ChevronsLeftRightEllipsis = ChevronsLeftRightEllipsis;\nexports.ChevronsLeftRightEllipsisIcon = ChevronsLeftRightEllipsis;\nexports.ChevronsLeftRightIcon = ChevronsLeftRight;\nexports.ChevronsRight = ChevronsRight;\nexports.ChevronsRightIcon = ChevronsRight;\nexports.ChevronsRightLeft = ChevronsRightLeft;\nexports.ChevronsRightLeftIcon = ChevronsRightLeft;\nexports.ChevronsUp = ChevronsUp;\nexports.ChevronsUpDown = ChevronsUpDown;\nexports.ChevronsUpDownIcon = ChevronsUpDown;\nexports.ChevronsUpIcon = ChevronsUp;\nexports.Chrome = Chrome;\nexports.ChromeIcon = Chrome;\nexports.Church = Church;\nexports.ChurchIcon = Church;\nexports.Cigarette = Cigarette;\nexports.CigaretteIcon = Cigarette;\nexports.CigaretteOff = CigaretteOff;\nexports.CigaretteOffIcon = CigaretteOff;\nexports.Circle = Circle;\nexports.CircleAlert = CircleAlert;\nexports.CircleAlertIcon = CircleAlert;\nexports.CircleArrowDown = CircleArrowDown;\nexports.CircleArrowDownIcon = CircleArrowDown;\nexports.CircleArrowLeft = CircleArrowLeft;\nexports.CircleArrowLeftIcon = CircleArrowLeft;\nexports.CircleArrowOutDownLeft = CircleArrowOutDownLeft;\nexports.CircleArrowOutDownLeftIcon = CircleArrowOutDownLeft;\nexports.CircleArrowOutDownRight = CircleArrowOutDownRight;\nexports.CircleArrowOutDownRightIcon = CircleArrowOutDownRight;\nexports.CircleArrowOutUpLeft = CircleArrowOutUpLeft;\nexports.CircleArrowOutUpLeftIcon = CircleArrowOutUpLeft;\nexports.CircleArrowOutUpRight = CircleArrowOutUpRight;\nexports.CircleArrowOutUpRightIcon = CircleArrowOutUpRight;\nexports.CircleArrowRight = CircleArrowRight;\nexports.CircleArrowRightIcon = CircleArrowRight;\nexports.CircleArrowUp = CircleArrowUp;\nexports.CircleArrowUpIcon = CircleArrowUp;\nexports.CircleCheck = CircleCheck;\nexports.CircleCheckBig = CircleCheckBig;\nexports.CircleCheckBigIcon = CircleCheckBig;\nexports.CircleCheckIcon = CircleCheck;\nexports.CircleChevronDown = CircleChevronDown;\nexports.CircleChevronDownIcon = CircleChevronDown;\nexports.CircleChevronLeft = CircleChevronLeft;\nexports.CircleChevronLeftIcon = CircleChevronLeft;\nexports.CircleChevronRight = CircleChevronRight;\nexports.CircleChevronRightIcon = CircleChevronRight;\nexports.CircleChevronUp = CircleChevronUp;\nexports.CircleChevronUpIcon = CircleChevronUp;\nexports.CircleDashed = CircleDashed;\nexports.CircleDashedIcon = CircleDashed;\nexports.CircleDivide = CircleDivide;\nexports.CircleDivideIcon = CircleDivide;\nexports.CircleDollarSign = CircleDollarSign;\nexports.CircleDollarSignIcon = CircleDollarSign;\nexports.CircleDot = CircleDot;\nexports.CircleDotDashed = CircleDotDashed;\nexports.CircleDotDashedIcon = CircleDotDashed;\nexports.CircleDotIcon = CircleDot;\nexports.CircleEllipsis = CircleEllipsis;\nexports.CircleEllipsisIcon = CircleEllipsis;\nexports.CircleEqual = CircleEqual;\nexports.CircleEqualIcon = CircleEqual;\nexports.CircleFadingArrowUp = CircleFadingArrowUp;\nexports.CircleFadingArrowUpIcon = CircleFadingArrowUp;\nexports.CircleFadingPlus = CircleFadingPlus;\nexports.CircleFadingPlusIcon = CircleFadingPlus;\nexports.CircleGauge = CircleGauge;\nexports.CircleGaugeIcon = CircleGauge;\nexports.CircleHelp = CircleQuestionMark;\nexports.CircleHelpIcon = CircleQuestionMark;\nexports.CircleIcon = Circle;\nexports.CircleMinus = CircleMinus;\nexports.CircleMinusIcon = CircleMinus;\nexports.CircleOff = CircleOff;\nexports.CircleOffIcon = CircleOff;\nexports.CircleParking = CircleParking;\nexports.CircleParkingIcon = CircleParking;\nexports.CircleParkingOff = CircleParkingOff;\nexports.CircleParkingOffIcon = CircleParkingOff;\nexports.CirclePause = CirclePause;\nexports.CirclePauseIcon = CirclePause;\nexports.CirclePercent = CirclePercent;\nexports.CirclePercentIcon = CirclePercent;\nexports.CirclePlay = CirclePlay;\nexports.CirclePlayIcon = CirclePlay;\nexports.CirclePlus = CirclePlus;\nexports.CirclePlusIcon = CirclePlus;\nexports.CirclePoundSterling = CirclePoundSterling;\nexports.CirclePoundSterlingIcon = CirclePoundSterling;\nexports.CirclePower = CirclePower;\nexports.CirclePowerIcon = CirclePower;\nexports.CircleQuestionMark = CircleQuestionMark;\nexports.CircleQuestionMarkIcon = CircleQuestionMark;\nexports.CircleSlash = CircleSlash;\nexports.CircleSlash2 = CircleSlash2;\nexports.CircleSlash2Icon = CircleSlash2;\nexports.CircleSlashIcon = CircleSlash;\nexports.CircleSlashed = CircleSlash2;\nexports.CircleSlashedIcon = CircleSlash2;\nexports.CircleSmall = CircleSmall;\nexports.CircleSmallIcon = CircleSmall;\nexports.CircleStop = CircleStop;\nexports.CircleStopIcon = CircleStop;\nexports.CircleUser = CircleUser;\nexports.CircleUserIcon = CircleUser;\nexports.CircleUserRound = CircleUserRound;\nexports.CircleUserRoundIcon = CircleUserRound;\nexports.CircleX = CircleX;\nexports.CircleXIcon = CircleX;\nexports.CircuitBoard = CircuitBoard;\nexports.CircuitBoardIcon = CircuitBoard;\nexports.Citrus = Citrus;\nexports.CitrusIcon = Citrus;\nexports.Clapperboard = Clapperboard;\nexports.ClapperboardIcon = Clapperboard;\nexports.Clipboard = Clipboard;\nexports.ClipboardCheck = ClipboardCheck;\nexports.ClipboardCheckIcon = ClipboardCheck;\nexports.ClipboardCopy = ClipboardCopy;\nexports.ClipboardCopyIcon = ClipboardCopy;\nexports.ClipboardEdit = ClipboardPen;\nexports.ClipboardEditIcon = ClipboardPen;\nexports.ClipboardIcon = Clipboard;\nexports.ClipboardList = ClipboardList;\nexports.ClipboardListIcon = ClipboardList;\nexports.ClipboardMinus = ClipboardMinus;\nexports.ClipboardMinusIcon = ClipboardMinus;\nexports.ClipboardPaste = ClipboardPaste;\nexports.ClipboardPasteIcon = ClipboardPaste;\nexports.ClipboardPen = ClipboardPen;\nexports.ClipboardPenIcon = ClipboardPen;\nexports.ClipboardPenLine = ClipboardPenLine;\nexports.ClipboardPenLineIcon = ClipboardPenLine;\nexports.ClipboardPlus = ClipboardPlus;\nexports.ClipboardPlusIcon = ClipboardPlus;\nexports.ClipboardSignature = ClipboardPenLine;\nexports.ClipboardSignatureIcon = ClipboardPenLine;\nexports.ClipboardType = ClipboardType;\nexports.ClipboardTypeIcon = ClipboardType;\nexports.ClipboardX = ClipboardX;\nexports.ClipboardXIcon = ClipboardX;\nexports.Clock = Clock;\nexports.Clock1 = Clock1;\nexports.Clock10 = Clock10;\nexports.Clock10Icon = Clock10;\nexports.Clock11 = Clock11;\nexports.Clock11Icon = Clock11;\nexports.Clock12 = Clock12;\nexports.Clock12Icon = Clock12;\nexports.Clock1Icon = Clock1;\nexports.Clock2 = Clock2;\nexports.Clock2Icon = Clock2;\nexports.Clock3 = Clock3;\nexports.Clock3Icon = Clock3;\nexports.Clock4 = Clock4;\nexports.Clock4Icon = Clock4;\nexports.Clock5 = Clock5;\nexports.Clock5Icon = Clock5;\nexports.Clock6 = Clock6;\nexports.Clock6Icon = Clock6;\nexports.Clock7 = Clock7;\nexports.Clock7Icon = Clock7;\nexports.Clock8 = Clock8;\nexports.Clock8Icon = Clock8;\nexports.Clock9 = Clock9;\nexports.Clock9Icon = Clock9;\nexports.ClockAlert = ClockAlert;\nexports.ClockAlertIcon = ClockAlert;\nexports.ClockArrowDown = ClockArrowDown;\nexports.ClockArrowDownIcon = ClockArrowDown;\nexports.ClockArrowUp = ClockArrowUp;\nexports.ClockArrowUpIcon = ClockArrowUp;\nexports.ClockFading = ClockFading;\nexports.ClockFadingIcon = ClockFading;\nexports.ClockIcon = Clock;\nexports.ClockPlus = ClockPlus;\nexports.ClockPlusIcon = ClockPlus;\nexports.Cloud = Cloud;\nexports.CloudAlert = CloudAlert;\nexports.CloudAlertIcon = CloudAlert;\nexports.CloudCheck = CloudCheck;\nexports.CloudCheckIcon = CloudCheck;\nexports.CloudCog = CloudCog;\nexports.CloudCogIcon = CloudCog;\nexports.CloudDownload = CloudDownload;\nexports.CloudDownloadIcon = CloudDownload;\nexports.CloudDrizzle = CloudDrizzle;\nexports.CloudDrizzleIcon = CloudDrizzle;\nexports.CloudFog = CloudFog;\nexports.CloudFogIcon = CloudFog;\nexports.CloudHail = CloudHail;\nexports.CloudHailIcon = CloudHail;\nexports.CloudIcon = Cloud;\nexports.CloudLightning = CloudLightning;\nexports.CloudLightningIcon = CloudLightning;\nexports.CloudMoon = CloudMoon;\nexports.CloudMoonIcon = CloudMoon;\nexports.CloudMoonRain = CloudMoonRain;\nexports.CloudMoonRainIcon = CloudMoonRain;\nexports.CloudOff = CloudOff;\nexports.CloudOffIcon = CloudOff;\nexports.CloudRain = CloudRain;\nexports.CloudRainIcon = CloudRain;\nexports.CloudRainWind = CloudRainWind;\nexports.CloudRainWindIcon = CloudRainWind;\nexports.CloudSnow = CloudSnow;\nexports.CloudSnowIcon = CloudSnow;\nexports.CloudSun = CloudSun;\nexports.CloudSunIcon = CloudSun;\nexports.CloudSunRain = CloudSunRain;\nexports.CloudSunRainIcon = CloudSunRain;\nexports.CloudUpload = CloudUpload;\nexports.CloudUploadIcon = CloudUpload;\nexports.Cloudy = Cloudy;\nexports.CloudyIcon = Cloudy;\nexports.Clover = Clover;\nexports.CloverIcon = Clover;\nexports.Club = Club;\nexports.ClubIcon = Club;\nexports.Code = Code;\nexports.Code2 = CodeXml;\nexports.Code2Icon = CodeXml;\nexports.CodeIcon = Code;\nexports.CodeSquare = SquareCode;\nexports.CodeSquareIcon = SquareCode;\nexports.CodeXml = CodeXml;\nexports.CodeXmlIcon = CodeXml;\nexports.Codepen = Codepen;\nexports.CodepenIcon = Codepen;\nexports.Codesandbox = Codesandbox;\nexports.CodesandboxIcon = Codesandbox;\nexports.Coffee = Coffee;\nexports.CoffeeIcon = Coffee;\nexports.Cog = Cog;\nexports.CogIcon = Cog;\nexports.Coins = Coins;\nexports.CoinsIcon = Coins;\nexports.Columns = Columns2;\nexports.Columns2 = Columns2;\nexports.Columns2Icon = Columns2;\nexports.Columns3 = Columns3;\nexports.Columns3Cog = Columns3Cog;\nexports.Columns3CogIcon = Columns3Cog;\nexports.Columns3Icon = Columns3;\nexports.Columns4 = Columns4;\nexports.Columns4Icon = Columns4;\nexports.ColumnsIcon = Columns2;\nexports.ColumnsSettings = Columns3Cog;\nexports.ColumnsSettingsIcon = Columns3Cog;\nexports.Combine = Combine;\nexports.CombineIcon = Combine;\nexports.Command = Command;\nexports.CommandIcon = Command;\nexports.Compass = Compass;\nexports.CompassIcon = Compass;\nexports.Component = Component;\nexports.ComponentIcon = Component;\nexports.Computer = Computer;\nexports.ComputerIcon = Computer;\nexports.ConciergeBell = ConciergeBell;\nexports.ConciergeBellIcon = ConciergeBell;\nexports.Cone = Cone;\nexports.ConeIcon = Cone;\nexports.Construction = Construction;\nexports.ConstructionIcon = Construction;\nexports.Contact = Contact;\nexports.Contact2 = ContactRound;\nexports.Contact2Icon = ContactRound;\nexports.ContactIcon = Contact;\nexports.ContactRound = ContactRound;\nexports.ContactRoundIcon = ContactRound;\nexports.Container = Container;\nexports.ContainerIcon = Container;\nexports.Contrast = Contrast;\nexports.ContrastIcon = Contrast;\nexports.Cookie = Cookie;\nexports.CookieIcon = Cookie;\nexports.CookingPot = CookingPot;\nexports.CookingPotIcon = CookingPot;\nexports.Copy = Copy;\nexports.CopyCheck = CopyCheck;\nexports.CopyCheckIcon = CopyCheck;\nexports.CopyIcon = Copy;\nexports.CopyMinus = CopyMinus;\nexports.CopyMinusIcon = CopyMinus;\nexports.CopyPlus = CopyPlus;\nexports.CopyPlusIcon = CopyPlus;\nexports.CopySlash = CopySlash;\nexports.CopySlashIcon = CopySlash;\nexports.CopyX = CopyX;\nexports.CopyXIcon = CopyX;\nexports.Copyleft = Copyleft;\nexports.CopyleftIcon = Copyleft;\nexports.Copyright = Copyright;\nexports.CopyrightIcon = Copyright;\nexports.CornerDownLeft = CornerDownLeft;\nexports.CornerDownLeftIcon = CornerDownLeft;\nexports.CornerDownRight = CornerDownRight;\nexports.CornerDownRightIcon = CornerDownRight;\nexports.CornerLeftDown = CornerLeftDown;\nexports.CornerLeftDownIcon = CornerLeftDown;\nexports.CornerLeftUp = CornerLeftUp;\nexports.CornerLeftUpIcon = CornerLeftUp;\nexports.CornerRightDown = CornerRightDown;\nexports.CornerRightDownIcon = CornerRightDown;\nexports.CornerRightUp = CornerRightUp;\nexports.CornerRightUpIcon = CornerRightUp;\nexports.CornerUpLeft = CornerUpLeft;\nexports.CornerUpLeftIcon = CornerUpLeft;\nexports.CornerUpRight = CornerUpRight;\nexports.CornerUpRightIcon = CornerUpRight;\nexports.Cpu = Cpu;\nexports.CpuIcon = Cpu;\nexports.CreativeCommons = CreativeCommons;\nexports.CreativeCommonsIcon = CreativeCommons;\nexports.CreditCard = CreditCard;\nexports.CreditCardIcon = CreditCard;\nexports.Croissant = Croissant;\nexports.CroissantIcon = Croissant;\nexports.Crop = Crop;\nexports.CropIcon = Crop;\nexports.Cross = Cross;\nexports.CrossIcon = Cross;\nexports.Crosshair = Crosshair;\nexports.CrosshairIcon = Crosshair;\nexports.Crown = Crown;\nexports.CrownIcon = Crown;\nexports.Cuboid = Cuboid;\nexports.CuboidIcon = Cuboid;\nexports.CupSoda = CupSoda;\nexports.CupSodaIcon = CupSoda;\nexports.CurlyBraces = Braces;\nexports.CurlyBracesIcon = Braces;\nexports.Currency = Currency;\nexports.CurrencyIcon = Currency;\nexports.Cylinder = Cylinder;\nexports.CylinderIcon = Cylinder;\nexports.Dam = Dam;\nexports.DamIcon = Dam;\nexports.Database = Database;\nexports.DatabaseBackup = DatabaseBackup;\nexports.DatabaseBackupIcon = DatabaseBackup;\nexports.DatabaseIcon = Database;\nexports.DatabaseZap = DatabaseZap;\nexports.DatabaseZapIcon = DatabaseZap;\nexports.DecimalsArrowLeft = DecimalsArrowLeft;\nexports.DecimalsArrowLeftIcon = DecimalsArrowLeft;\nexports.DecimalsArrowRight = DecimalsArrowRight;\nexports.DecimalsArrowRightIcon = DecimalsArrowRight;\nexports.Delete = Delete;\nexports.DeleteIcon = Delete;\nexports.Dessert = Dessert;\nexports.DessertIcon = Dessert;\nexports.Diameter = Diameter;\nexports.DiameterIcon = Diameter;\nexports.Diamond = Diamond;\nexports.DiamondIcon = Diamond;\nexports.DiamondMinus = DiamondMinus;\nexports.DiamondMinusIcon = DiamondMinus;\nexports.DiamondPercent = DiamondPercent;\nexports.DiamondPercentIcon = DiamondPercent;\nexports.DiamondPlus = DiamondPlus;\nexports.DiamondPlusIcon = DiamondPlus;\nexports.Dice1 = Dice1;\nexports.Dice1Icon = Dice1;\nexports.Dice2 = Dice2;\nexports.Dice2Icon = Dice2;\nexports.Dice3 = Dice3;\nexports.Dice3Icon = Dice3;\nexports.Dice4 = Dice4;\nexports.Dice4Icon = Dice4;\nexports.Dice5 = Dice5;\nexports.Dice5Icon = Dice5;\nexports.Dice6 = Dice6;\nexports.Dice6Icon = Dice6;\nexports.Dices = Dices;\nexports.DicesIcon = Dices;\nexports.Diff = Diff;\nexports.DiffIcon = Diff;\nexports.Disc = Disc;\nexports.Disc2 = Disc2;\nexports.Disc2Icon = Disc2;\nexports.Disc3 = Disc3;\nexports.Disc3Icon = Disc3;\nexports.DiscAlbum = DiscAlbum;\nexports.DiscAlbumIcon = DiscAlbum;\nexports.DiscIcon = Disc;\nexports.Divide = Divide;\nexports.DivideCircle = CircleDivide;\nexports.DivideCircleIcon = CircleDivide;\nexports.DivideIcon = Divide;\nexports.DivideSquare = SquareDivide;\nexports.DivideSquareIcon = SquareDivide;\nexports.Dna = Dna;\nexports.DnaIcon = Dna;\nexports.DnaOff = DnaOff;\nexports.DnaOffIcon = DnaOff;\nexports.Dock = Dock;\nexports.DockIcon = Dock;\nexports.Dog = Dog;\nexports.DogIcon = Dog;\nexports.DollarSign = DollarSign;\nexports.DollarSignIcon = DollarSign;\nexports.Donut = Donut;\nexports.DonutIcon = Donut;\nexports.DoorClosed = DoorClosed;\nexports.DoorClosedIcon = DoorClosed;\nexports.DoorClosedLocked = DoorClosedLocked;\nexports.DoorClosedLockedIcon = DoorClosedLocked;\nexports.DoorOpen = DoorOpen;\nexports.DoorOpenIcon = DoorOpen;\nexports.Dot = Dot;\nexports.DotIcon = Dot;\nexports.DotSquare = SquareDot;\nexports.DotSquareIcon = SquareDot;\nexports.Download = Download;\nexports.DownloadCloud = CloudDownload;\nexports.DownloadCloudIcon = CloudDownload;\nexports.DownloadIcon = Download;\nexports.DraftingCompass = DraftingCompass;\nexports.DraftingCompassIcon = DraftingCompass;\nexports.Drama = Drama;\nexports.DramaIcon = Drama;\nexports.Dribbble = Dribbble;\nexports.DribbbleIcon = Dribbble;\nexports.Drill = Drill;\nexports.DrillIcon = Drill;\nexports.Drone = Drone;\nexports.DroneIcon = Drone;\nexports.Droplet = Droplet;\nexports.DropletIcon = Droplet;\nexports.DropletOff = DropletOff;\nexports.DropletOffIcon = DropletOff;\nexports.Droplets = Droplets;\nexports.DropletsIcon = Droplets;\nexports.Drum = Drum;\nexports.DrumIcon = Drum;\nexports.Drumstick = Drumstick;\nexports.DrumstickIcon = Drumstick;\nexports.Dumbbell = Dumbbell;\nexports.DumbbellIcon = Dumbbell;\nexports.Ear = Ear;\nexports.EarIcon = Ear;\nexports.EarOff = EarOff;\nexports.EarOffIcon = EarOff;\nexports.Earth = Earth;\nexports.EarthIcon = Earth;\nexports.EarthLock = EarthLock;\nexports.EarthLockIcon = EarthLock;\nexports.Eclipse = Eclipse;\nexports.EclipseIcon = Eclipse;\nexports.Edit = SquarePen;\nexports.Edit2 = Pen;\nexports.Edit2Icon = Pen;\nexports.Edit3 = PenLine;\nexports.Edit3Icon = PenLine;\nexports.EditIcon = SquarePen;\nexports.Egg = Egg;\nexports.EggFried = EggFried;\nexports.EggFriedIcon = EggFried;\nexports.EggIcon = Egg;\nexports.EggOff = EggOff;\nexports.EggOffIcon = EggOff;\nexports.Ellipsis = Ellipsis;\nexports.EllipsisIcon = Ellipsis;\nexports.EllipsisVertical = EllipsisVertical;\nexports.EllipsisVerticalIcon = EllipsisVertical;\nexports.Equal = Equal;\nexports.EqualApproximately = EqualApproximately;\nexports.EqualApproximatelyIcon = EqualApproximately;\nexports.EqualIcon = Equal;\nexports.EqualNot = EqualNot;\nexports.EqualNotIcon = EqualNot;\nexports.EqualSquare = SquareEqual;\nexports.EqualSquareIcon = SquareEqual;\nexports.Eraser = Eraser;\nexports.EraserIcon = Eraser;\nexports.EthernetPort = EthernetPort;\nexports.EthernetPortIcon = EthernetPort;\nexports.Euro = Euro;\nexports.EuroIcon = Euro;\nexports.Expand = Expand;\nexports.ExpandIcon = Expand;\nexports.ExternalLink = ExternalLink;\nexports.ExternalLinkIcon = ExternalLink;\nexports.Eye = Eye;\nexports.EyeClosed = EyeClosed;\nexports.EyeClosedIcon = EyeClosed;\nexports.EyeIcon = Eye;\nexports.EyeOff = EyeOff;\nexports.EyeOffIcon = EyeOff;\nexports.Facebook = Facebook;\nexports.FacebookIcon = Facebook;\nexports.Factory = Factory;\nexports.FactoryIcon = Factory;\nexports.Fan = Fan;\nexports.FanIcon = Fan;\nexports.FastForward = FastForward;\nexports.FastForwardIcon = FastForward;\nexports.Feather = Feather;\nexports.FeatherIcon = Feather;\nexports.Fence = Fence;\nexports.FenceIcon = Fence;\nexports.FerrisWheel = FerrisWheel;\nexports.FerrisWheelIcon = FerrisWheel;\nexports.Figma = Figma;\nexports.FigmaIcon = Figma;\nexports.File = File;\nexports.FileArchive = FileArchive;\nexports.FileArchiveIcon = FileArchive;\nexports.FileAudio = FileAudio;\nexports.FileAudio2 = FileAudio2;\nexports.FileAudio2Icon = FileAudio2;\nexports.FileAudioIcon = FileAudio;\nexports.FileAxis3D = FileAxis3d;\nexports.FileAxis3DIcon = FileAxis3d;\nexports.FileAxis3d = FileAxis3d;\nexports.FileAxis3dIcon = FileAxis3d;\nexports.FileBadge = FileBadge;\nexports.FileBadge2 = FileBadge2;\nexports.FileBadge2Icon = FileBadge2;\nexports.FileBadgeIcon = FileBadge;\nexports.FileBarChart = FileChartColumnIncreasing;\nexports.FileBarChart2 = FileChartColumn;\nexports.FileBarChart2Icon = FileChartColumn;\nexports.FileBarChartIcon = FileChartColumnIncreasing;\nexports.FileBox = FileBox;\nexports.FileBoxIcon = FileBox;\nexports.FileChartColumn = FileChartColumn;\nexports.FileChartColumnIcon = FileChartColumn;\nexports.FileChartColumnIncreasing = FileChartColumnIncreasing;\nexports.FileChartColumnIncreasingIcon = FileChartColumnIncreasing;\nexports.FileChartLine = FileChartLine;\nexports.FileChartLineIcon = FileChartLine;\nexports.FileChartPie = FileChartPie;\nexports.FileChartPieIcon = FileChartPie;\nexports.FileCheck = FileCheck;\nexports.FileCheck2 = FileCheck2;\nexports.FileCheck2Icon = FileCheck2;\nexports.FileCheckIcon = FileCheck;\nexports.FileClock = FileClock;\nexports.FileClockIcon = FileClock;\nexports.FileCode = FileCode;\nexports.FileCode2 = FileCode2;\nexports.FileCode2Icon = FileCode2;\nexports.FileCodeIcon = FileCode;\nexports.FileCog = FileCog;\nexports.FileCog2 = FileCog;\nexports.FileCog2Icon = FileCog;\nexports.FileCogIcon = FileCog;\nexports.FileDiff = FileDiff;\nexports.FileDiffIcon = FileDiff;\nexports.FileDigit = FileDigit;\nexports.FileDigitIcon = FileDigit;\nexports.FileDown = FileDown;\nexports.FileDownIcon = FileDown;\nexports.FileEdit = FilePen;\nexports.FileEditIcon = FilePen;\nexports.FileHeart = FileHeart;\nexports.FileHeartIcon = FileHeart;\nexports.FileIcon = File;\nexports.FileImage = FileImage;\nexports.FileImageIcon = FileImage;\nexports.FileInput = FileInput;\nexports.FileInputIcon = FileInput;\nexports.FileJson = FileJson;\nexports.FileJson2 = FileJson2;\nexports.FileJson2Icon = FileJson2;\nexports.FileJsonIcon = FileJson;\nexports.FileKey = FileKey;\nexports.FileKey2 = FileKey2;\nexports.FileKey2Icon = FileKey2;\nexports.FileKeyIcon = FileKey;\nexports.FileLineChart = FileChartLine;\nexports.FileLineChartIcon = FileChartLine;\nexports.FileLock = FileLock;\nexports.FileLock2 = FileLock2;\nexports.FileLock2Icon = FileLock2;\nexports.FileLockIcon = FileLock;\nexports.FileMinus = FileMinus;\nexports.FileMinus2 = FileMinus2;\nexports.FileMinus2Icon = FileMinus2;\nexports.FileMinusIcon = FileMinus;\nexports.FileMusic = FileMusic;\nexports.FileMusicIcon = FileMusic;\nexports.FileOutput = FileOutput;\nexports.FileOutputIcon = FileOutput;\nexports.FilePen = FilePen;\nexports.FilePenIcon = FilePen;\nexports.FilePenLine = FilePenLine;\nexports.FilePenLineIcon = FilePenLine;\nexports.FilePieChart = FileChartPie;\nexports.FilePieChartIcon = FileChartPie;\nexports.FilePlus = FilePlus;\nexports.FilePlus2 = FilePlus2;\nexports.FilePlus2Icon = FilePlus2;\nexports.FilePlusIcon = FilePlus;\nexports.FileQuestion = FileQuestionMark;\nexports.FileQuestionIcon = FileQuestionMark;\nexports.FileQuestionMark = FileQuestionMark;\nexports.FileQuestionMarkIcon = FileQuestionMark;\nexports.FileScan = FileScan;\nexports.FileScanIcon = FileScan;\nexports.FileSearch = FileSearch;\nexports.FileSearch2 = FileSearch2;\nexports.FileSearch2Icon = FileSearch2;\nexports.FileSearchIcon = FileSearch;\nexports.FileSignature = FilePenLine;\nexports.FileSignatureIcon = FilePenLine;\nexports.FileSliders = FileSliders;\nexports.FileSlidersIcon = FileSliders;\nexports.FileSpreadsheet = FileSpreadsheet;\nexports.FileSpreadsheetIcon = FileSpreadsheet;\nexports.FileStack = FileStack;\nexports.FileStackIcon = FileStack;\nexports.FileSymlink = FileSymlink;\nexports.FileSymlinkIcon = FileSymlink;\nexports.FileTerminal = FileTerminal;\nexports.FileTerminalIcon = FileTerminal;\nexports.FileText = FileText;\nexports.FileTextIcon = FileText;\nexports.FileType = FileType;\nexports.FileType2 = FileType2;\nexports.FileType2Icon = FileType2;\nexports.FileTypeIcon = FileType;\nexports.FileUp = FileUp;\nexports.FileUpIcon = FileUp;\nexports.FileUser = FileUser;\nexports.FileUserIcon = FileUser;\nexports.FileVideo = FileVideo;\nexports.FileVideo2 = FileVideo2;\nexports.FileVideo2Icon = FileVideo2;\nexports.FileVideoIcon = FileVideo;\nexports.FileVolume = FileVolume;\nexports.FileVolume2 = FileVolume2;\nexports.FileVolume2Icon = FileVolume2;\nexports.FileVolumeIcon = FileVolume;\nexports.FileWarning = FileWarning;\nexports.FileWarningIcon = FileWarning;\nexports.FileX = FileX;\nexports.FileX2 = FileX2;\nexports.FileX2Icon = FileX2;\nexports.FileXIcon = FileX;\nexports.Files = Files;\nexports.FilesIcon = Files;\nexports.Film = Film;\nexports.FilmIcon = Film;\nexports.Filter = Funnel;\nexports.FilterIcon = Funnel;\nexports.FilterX = FunnelX;\nexports.FilterXIcon = FunnelX;\nexports.Fingerprint = Fingerprint;\nexports.FingerprintIcon = Fingerprint;\nexports.FireExtinguisher = FireExtinguisher;\nexports.FireExtinguisherIcon = FireExtinguisher;\nexports.Fish = Fish;\nexports.FishIcon = Fish;\nexports.FishOff = FishOff;\nexports.FishOffIcon = FishOff;\nexports.FishSymbol = FishSymbol;\nexports.FishSymbolIcon = FishSymbol;\nexports.Flag = Flag;\nexports.FlagIcon = Flag;\nexports.FlagOff = FlagOff;\nexports.FlagOffIcon = FlagOff;\nexports.FlagTriangleLeft = FlagTriangleLeft;\nexports.FlagTriangleLeftIcon = FlagTriangleLeft;\nexports.FlagTriangleRight = FlagTriangleRight;\nexports.FlagTriangleRightIcon = FlagTriangleRight;\nexports.Flame = Flame;\nexports.FlameIcon = Flame;\nexports.FlameKindling = FlameKindling;\nexports.FlameKindlingIcon = FlameKindling;\nexports.Flashlight = Flashlight;\nexports.FlashlightIcon = Flashlight;\nexports.FlashlightOff = FlashlightOff;\nexports.FlashlightOffIcon = FlashlightOff;\nexports.FlaskConical = FlaskConical;\nexports.FlaskConicalIcon = FlaskConical;\nexports.FlaskConicalOff = FlaskConicalOff;\nexports.FlaskConicalOffIcon = FlaskConicalOff;\nexports.FlaskRound = FlaskRound;\nexports.FlaskRoundIcon = FlaskRound;\nexports.FlipHorizontal = FlipHorizontal;\nexports.FlipHorizontal2 = FlipHorizontal2;\nexports.FlipHorizontal2Icon = FlipHorizontal2;\nexports.FlipHorizontalIcon = FlipHorizontal;\nexports.FlipVertical = FlipVertical;\nexports.FlipVertical2 = FlipVertical2;\nexports.FlipVertical2Icon = FlipVertical2;\nexports.FlipVerticalIcon = FlipVertical;\nexports.Flower = Flower;\nexports.Flower2 = Flower2;\nexports.Flower2Icon = Flower2;\nexports.FlowerIcon = Flower;\nexports.Focus = Focus;\nexports.FocusIcon = Focus;\nexports.FoldHorizontal = FoldHorizontal;\nexports.FoldHorizontalIcon = FoldHorizontal;\nexports.FoldVertical = FoldVertical;\nexports.FoldVerticalIcon = FoldVertical;\nexports.Folder = Folder;\nexports.FolderArchive = FolderArchive;\nexports.FolderArchiveIcon = FolderArchive;\nexports.FolderCheck = FolderCheck;\nexports.FolderCheckIcon = FolderCheck;\nexports.FolderClock = FolderClock;\nexports.FolderClockIcon = FolderClock;\nexports.FolderClosed = FolderClosed;\nexports.FolderClosedIcon = FolderClosed;\nexports.FolderCode = FolderCode;\nexports.FolderCodeIcon = FolderCode;\nexports.FolderCog = FolderCog;\nexports.FolderCog2 = FolderCog;\nexports.FolderCog2Icon = FolderCog;\nexports.FolderCogIcon = FolderCog;\nexports.FolderDot = FolderDot;\nexports.FolderDotIcon = FolderDot;\nexports.FolderDown = FolderDown;\nexports.FolderDownIcon = FolderDown;\nexports.FolderEdit = FolderPen;\nexports.FolderEditIcon = FolderPen;\nexports.FolderGit = FolderGit;\nexports.FolderGit2 = FolderGit2;\nexports.FolderGit2Icon = FolderGit2;\nexports.FolderGitIcon = FolderGit;\nexports.FolderHeart = FolderHeart;\nexports.FolderHeartIcon = FolderHeart;\nexports.FolderIcon = Folder;\nexports.FolderInput = FolderInput;\nexports.FolderInputIcon = FolderInput;\nexports.FolderKanban = FolderKanban;\nexports.FolderKanbanIcon = FolderKanban;\nexports.FolderKey = FolderKey;\nexports.FolderKeyIcon = FolderKey;\nexports.FolderLock = FolderLock;\nexports.FolderLockIcon = FolderLock;\nexports.FolderMinus = FolderMinus;\nexports.FolderMinusIcon = FolderMinus;\nexports.FolderOpen = FolderOpen;\nexports.FolderOpenDot = FolderOpenDot;\nexports.FolderOpenDotIcon = FolderOpenDot;\nexports.FolderOpenIcon = FolderOpen;\nexports.FolderOutput = FolderOutput;\nexports.FolderOutputIcon = FolderOutput;\nexports.FolderPen = FolderPen;\nexports.FolderPenIcon = FolderPen;\nexports.FolderPlus = FolderPlus;\nexports.FolderPlusIcon = FolderPlus;\nexports.FolderRoot = FolderRoot;\nexports.FolderRootIcon = FolderRoot;\nexports.FolderSearch = FolderSearch;\nexports.FolderSearch2 = FolderSearch2;\nexports.FolderSearch2Icon = FolderSearch2;\nexports.FolderSearchIcon = FolderSearch;\nexports.FolderSymlink = FolderSymlink;\nexports.FolderSymlinkIcon = FolderSymlink;\nexports.FolderSync = FolderSync;\nexports.FolderSyncIcon = FolderSync;\nexports.FolderTree = FolderTree;\nexports.FolderTreeIcon = FolderTree;\nexports.FolderUp = FolderUp;\nexports.FolderUpIcon = FolderUp;\nexports.FolderX = FolderX;\nexports.FolderXIcon = FolderX;\nexports.Folders = Folders;\nexports.FoldersIcon = Folders;\nexports.Footprints = Footprints;\nexports.FootprintsIcon = Footprints;\nexports.ForkKnife = Utensils;\nexports.ForkKnifeCrossed = UtensilsCrossed;\nexports.ForkKnifeCrossedIcon = UtensilsCrossed;\nexports.ForkKnifeIcon = Utensils;\nexports.Forklift = Forklift;\nexports.ForkliftIcon = Forklift;\nexports.FormInput = RectangleEllipsis;\nexports.FormInputIcon = RectangleEllipsis;\nexports.Forward = Forward;\nexports.ForwardIcon = Forward;\nexports.Frame = Frame;\nexports.FrameIcon = Frame;\nexports.Framer = Framer;\nexports.FramerIcon = Framer;\nexports.Frown = Frown;\nexports.FrownIcon = Frown;\nexports.Fuel = Fuel;\nexports.FuelIcon = Fuel;\nexports.Fullscreen = Fullscreen;\nexports.FullscreenIcon = Fullscreen;\nexports.FunctionSquare = SquareFunction;\nexports.FunctionSquareIcon = SquareFunction;\nexports.Funnel = Funnel;\nexports.FunnelIcon = Funnel;\nexports.FunnelPlus = FunnelPlus;\nexports.FunnelPlusIcon = FunnelPlus;\nexports.FunnelX = FunnelX;\nexports.FunnelXIcon = FunnelX;\nexports.GalleryHorizontal = GalleryHorizontal;\nexports.GalleryHorizontalEnd = GalleryHorizontalEnd;\nexports.GalleryHorizontalEndIcon = GalleryHorizontalEnd;\nexports.GalleryHorizontalIcon = GalleryHorizontal;\nexports.GalleryThumbnails = GalleryThumbnails;\nexports.GalleryThumbnailsIcon = GalleryThumbnails;\nexports.GalleryVertical = GalleryVertical;\nexports.GalleryVerticalEnd = GalleryVerticalEnd;\nexports.GalleryVerticalEndIcon = GalleryVerticalEnd;\nexports.GalleryVerticalIcon = GalleryVertical;\nexports.Gamepad = Gamepad;\nexports.Gamepad2 = Gamepad2;\nexports.Gamepad2Icon = Gamepad2;\nexports.GamepadIcon = Gamepad;\nexports.GanttChart = ChartNoAxesGantt;\nexports.GanttChartIcon = ChartNoAxesGantt;\nexports.GanttChartSquare = SquareChartGantt;\nexports.GanttChartSquareIcon = SquareChartGantt;\nexports.Gauge = Gauge;\nexports.GaugeCircle = CircleGauge;\nexports.GaugeCircleIcon = CircleGauge;\nexports.GaugeIcon = Gauge;\nexports.Gavel = Gavel;\nexports.GavelIcon = Gavel;\nexports.Gem = Gem;\nexports.GemIcon = Gem;\nexports.GeorgianLari = GeorgianLari;\nexports.GeorgianLariIcon = GeorgianLari;\nexports.Ghost = Ghost;\nexports.GhostIcon = Ghost;\nexports.Gift = Gift;\nexports.GiftIcon = Gift;\nexports.GitBranch = GitBranch;\nexports.GitBranchIcon = GitBranch;\nexports.GitBranchPlus = GitBranchPlus;\nexports.GitBranchPlusIcon = GitBranchPlus;\nexports.GitCommit = GitCommitHorizontal;\nexports.GitCommitHorizontal = GitCommitHorizontal;\nexports.GitCommitHorizontalIcon = GitCommitHorizontal;\nexports.GitCommitIcon = GitCommitHorizontal;\nexports.GitCommitVertical = GitCommitVertical;\nexports.GitCommitVerticalIcon = GitCommitVertical;\nexports.GitCompare = GitCompare;\nexports.GitCompareArrows = GitCompareArrows;\nexports.GitCompareArrowsIcon = GitCompareArrows;\nexports.GitCompareIcon = GitCompare;\nexports.GitFork = GitFork;\nexports.GitForkIcon = GitFork;\nexports.GitGraph = GitGraph;\nexports.GitGraphIcon = GitGraph;\nexports.GitMerge = GitMerge;\nexports.GitMergeIcon = GitMerge;\nexports.GitPullRequest = GitPullRequest;\nexports.GitPullRequestArrow = GitPullRequestArrow;\nexports.GitPullRequestArrowIcon = GitPullRequestArrow;\nexports.GitPullRequestClosed = GitPullRequestClosed;\nexports.GitPullRequestClosedIcon = GitPullRequestClosed;\nexports.GitPullRequestCreate = GitPullRequestCreate;\nexports.GitPullRequestCreateArrow = GitPullRequestCreateArrow;\nexports.GitPullRequestCreateArrowIcon = GitPullRequestCreateArrow;\nexports.GitPullRequestCreateIcon = GitPullRequestCreate;\nexports.GitPullRequestDraft = GitPullRequestDraft;\nexports.GitPullRequestDraftIcon = GitPullRequestDraft;\nexports.GitPullRequestIcon = GitPullRequest;\nexports.Github = Github;\nexports.GithubIcon = Github;\nexports.Gitlab = Gitlab;\nexports.GitlabIcon = Gitlab;\nexports.GlassWater = GlassWater;\nexports.GlassWaterIcon = GlassWater;\nexports.Glasses = Glasses;\nexports.GlassesIcon = Glasses;\nexports.Globe = Globe;\nexports.Globe2 = Earth;\nexports.Globe2Icon = Earth;\nexports.GlobeIcon = Globe;\nexports.GlobeLock = GlobeLock;\nexports.GlobeLockIcon = GlobeLock;\nexports.Goal = Goal;\nexports.GoalIcon = Goal;\nexports.Gpu = Gpu;\nexports.GpuIcon = Gpu;\nexports.Grab = Grab;\nexports.GrabIcon = Grab;\nexports.GraduationCap = GraduationCap;\nexports.GraduationCapIcon = GraduationCap;\nexports.Grape = Grape;\nexports.GrapeIcon = Grape;\nexports.Grid = Grid3x3;\nexports.Grid2X2 = Grid2x2;\nexports.Grid2X2Check = Grid2x2Check;\nexports.Grid2X2CheckIcon = Grid2x2Check;\nexports.Grid2X2Icon = Grid2x2;\nexports.Grid2X2Plus = Grid2x2Plus;\nexports.Grid2X2PlusIcon = Grid2x2Plus;\nexports.Grid2X2X = Grid2x2X;\nexports.Grid2X2XIcon = Grid2x2X;\nexports.Grid2x2 = Grid2x2;\nexports.Grid2x2Check = Grid2x2Check;\nexports.Grid2x2CheckIcon = Grid2x2Check;\nexports.Grid2x2Icon = Grid2x2;\nexports.Grid2x2Plus = Grid2x2Plus;\nexports.Grid2x2PlusIcon = Grid2x2Plus;\nexports.Grid2x2X = Grid2x2X;\nexports.Grid2x2XIcon = Grid2x2X;\nexports.Grid3X3 = Grid3x3;\nexports.Grid3X3Icon = Grid3x3;\nexports.Grid3x2 = Grid3x2;\nexports.Grid3x2Icon = Grid3x2;\nexports.Grid3x3 = Grid3x3;\nexports.Grid3x3Icon = Grid3x3;\nexports.GridIcon = Grid3x3;\nexports.Grip = Grip;\nexports.GripHorizontal = GripHorizontal;\nexports.GripHorizontalIcon = GripHorizontal;\nexports.GripIcon = Grip;\nexports.GripVertical = GripVertical;\nexports.GripVerticalIcon = GripVertical;\nexports.Group = Group;\nexports.GroupIcon = Group;\nexports.Guitar = Guitar;\nexports.GuitarIcon = Guitar;\nexports.Ham = Ham;\nexports.HamIcon = Ham;\nexports.Hamburger = Hamburger;\nexports.HamburgerIcon = Hamburger;\nexports.Hammer = Hammer;\nexports.HammerIcon = Hammer;\nexports.Hand = Hand;\nexports.HandCoins = HandCoins;\nexports.HandCoinsIcon = HandCoins;\nexports.HandHeart = HandHeart;\nexports.HandHeartIcon = HandHeart;\nexports.HandHelping = HandHelping;\nexports.HandHelpingIcon = HandHelping;\nexports.HandIcon = Hand;\nexports.HandMetal = HandMetal;\nexports.HandMetalIcon = HandMetal;\nexports.HandPlatter = HandPlatter;\nexports.HandPlatterIcon = HandPlatter;\nexports.Handshake = Handshake;\nexports.HandshakeIcon = Handshake;\nexports.HardDrive = HardDrive;\nexports.HardDriveDownload = HardDriveDownload;\nexports.HardDriveDownloadIcon = HardDriveDownload;\nexports.HardDriveIcon = HardDrive;\nexports.HardDriveUpload = HardDriveUpload;\nexports.HardDriveUploadIcon = HardDriveUpload;\nexports.HardHat = HardHat;\nexports.HardHatIcon = HardHat;\nexports.Hash = Hash;\nexports.HashIcon = Hash;\nexports.Haze = Haze;\nexports.HazeIcon = Haze;\nexports.HdmiPort = HdmiPort;\nexports.HdmiPortIcon = HdmiPort;\nexports.Heading = Heading;\nexports.Heading1 = Heading1;\nexports.Heading1Icon = Heading1;\nexports.Heading2 = Heading2;\nexports.Heading2Icon = Heading2;\nexports.Heading3 = Heading3;\nexports.Heading3Icon = Heading3;\nexports.Heading4 = Heading4;\nexports.Heading4Icon = Heading4;\nexports.Heading5 = Heading5;\nexports.Heading5Icon = Heading5;\nexports.Heading6 = Heading6;\nexports.Heading6Icon = Heading6;\nexports.HeadingIcon = Heading;\nexports.HeadphoneOff = HeadphoneOff;\nexports.HeadphoneOffIcon = HeadphoneOff;\nexports.Headphones = Headphones;\nexports.HeadphonesIcon = Headphones;\nexports.Headset = Headset;\nexports.HeadsetIcon = Headset;\nexports.Heart = Heart;\nexports.HeartCrack = HeartCrack;\nexports.HeartCrackIcon = HeartCrack;\nexports.HeartHandshake = HeartHandshake;\nexports.HeartHandshakeIcon = HeartHandshake;\nexports.HeartIcon = Heart;\nexports.HeartMinus = HeartMinus;\nexports.HeartMinusIcon = HeartMinus;\nexports.HeartOff = HeartOff;\nexports.HeartOffIcon = HeartOff;\nexports.HeartPlus = HeartPlus;\nexports.HeartPlusIcon = HeartPlus;\nexports.HeartPulse = HeartPulse;\nexports.HeartPulseIcon = HeartPulse;\nexports.Heater = Heater;\nexports.HeaterIcon = Heater;\nexports.HelpCircle = CircleQuestionMark;\nexports.HelpCircleIcon = CircleQuestionMark;\nexports.HelpingHand = HandHelping;\nexports.HelpingHandIcon = HandHelping;\nexports.Hexagon = Hexagon;\nexports.HexagonIcon = Hexagon;\nexports.Highlighter = Highlighter;\nexports.HighlighterIcon = Highlighter;\nexports.History = History;\nexports.HistoryIcon = History;\nexports.Home = House;\nexports.HomeIcon = House;\nexports.Hop = Hop;\nexports.HopIcon = Hop;\nexports.HopOff = HopOff;\nexports.HopOffIcon = HopOff;\nexports.Hospital = Hospital;\nexports.HospitalIcon = Hospital;\nexports.Hotel = Hotel;\nexports.HotelIcon = Hotel;\nexports.Hourglass = Hourglass;\nexports.HourglassIcon = Hourglass;\nexports.House = House;\nexports.HouseIcon = House;\nexports.HousePlug = HousePlug;\nexports.HousePlugIcon = HousePlug;\nexports.HousePlus = HousePlus;\nexports.HousePlusIcon = HousePlus;\nexports.HouseWifi = HouseWifi;\nexports.HouseWifiIcon = HouseWifi;\nexports.IceCream = IceCreamCone;\nexports.IceCream2 = IceCreamBowl;\nexports.IceCream2Icon = IceCreamBowl;\nexports.IceCreamBowl = IceCreamBowl;\nexports.IceCreamBowlIcon = IceCreamBowl;\nexports.IceCreamCone = IceCreamCone;\nexports.IceCreamConeIcon = IceCreamCone;\nexports.IceCreamIcon = IceCreamCone;\nexports.Icon = Icon;\nexports.IdCard = IdCard;\nexports.IdCardIcon = IdCard;\nexports.IdCardLanyard = IdCardLanyard;\nexports.IdCardLanyardIcon = IdCardLanyard;\nexports.Image = Image;\nexports.ImageDown = ImageDown;\nexports.ImageDownIcon = ImageDown;\nexports.ImageIcon = Image;\nexports.ImageMinus = ImageMinus;\nexports.ImageMinusIcon = ImageMinus;\nexports.ImageOff = ImageOff;\nexports.ImageOffIcon = ImageOff;\nexports.ImagePlay = ImagePlay;\nexports.ImagePlayIcon = ImagePlay;\nexports.ImagePlus = ImagePlus;\nexports.ImagePlusIcon = ImagePlus;\nexports.ImageUp = ImageUp;\nexports.ImageUpIcon = ImageUp;\nexports.ImageUpscale = ImageUpscale;\nexports.ImageUpscaleIcon = ImageUpscale;\nexports.Images = Images;\nexports.ImagesIcon = Images;\nexports.Import = Import;\nexports.ImportIcon = Import;\nexports.Inbox = Inbox;\nexports.InboxIcon = Inbox;\nexports.Indent = IndentIncrease;\nexports.IndentDecrease = IndentDecrease;\nexports.IndentDecreaseIcon = IndentDecrease;\nexports.IndentIcon = IndentIncrease;\nexports.IndentIncrease = IndentIncrease;\nexports.IndentIncreaseIcon = IndentIncrease;\nexports.IndianRupee = IndianRupee;\nexports.IndianRupeeIcon = IndianRupee;\nexports[Infinity] = Infinity;\nexports.InfinityIcon = Infinity;\nexports.Info = Info;\nexports.InfoIcon = Info;\nexports.Inspect = SquareMousePointer;\nexports.InspectIcon = SquareMousePointer;\nexports.InspectionPanel = InspectionPanel;\nexports.InspectionPanelIcon = InspectionPanel;\nexports.Instagram = Instagram;\nexports.InstagramIcon = Instagram;\nexports.Italic = Italic;\nexports.ItalicIcon = Italic;\nexports.IterationCcw = IterationCcw;\nexports.IterationCcwIcon = IterationCcw;\nexports.IterationCw = IterationCw;\nexports.IterationCwIcon = IterationCw;\nexports.JapaneseYen = JapaneseYen;\nexports.JapaneseYenIcon = JapaneseYen;\nexports.Joystick = Joystick;\nexports.JoystickIcon = Joystick;\nexports.Kanban = Kanban;\nexports.KanbanIcon = Kanban;\nexports.KanbanSquare = SquareKanban;\nexports.KanbanSquareDashed = SquareDashedKanban;\nexports.KanbanSquareDashedIcon = SquareDashedKanban;\nexports.KanbanSquareIcon = SquareKanban;\nexports.Key = Key;\nexports.KeyIcon = Key;\nexports.KeyRound = KeyRound;\nexports.KeyRoundIcon = KeyRound;\nexports.KeySquare = KeySquare;\nexports.KeySquareIcon = KeySquare;\nexports.Keyboard = Keyboard;\nexports.KeyboardIcon = Keyboard;\nexports.KeyboardMusic = KeyboardMusic;\nexports.KeyboardMusicIcon = KeyboardMusic;\nexports.KeyboardOff = KeyboardOff;\nexports.KeyboardOffIcon = KeyboardOff;\nexports.Lamp = Lamp;\nexports.LampCeiling = LampCeiling;\nexports.LampCeilingIcon = LampCeiling;\nexports.LampDesk = LampDesk;\nexports.LampDeskIcon = LampDesk;\nexports.LampFloor = LampFloor;\nexports.LampFloorIcon = LampFloor;\nexports.LampIcon = Lamp;\nexports.LampWallDown = LampWallDown;\nexports.LampWallDownIcon = LampWallDown;\nexports.LampWallUp = LampWallUp;\nexports.LampWallUpIcon = LampWallUp;\nexports.LandPlot = LandPlot;\nexports.LandPlotIcon = LandPlot;\nexports.Landmark = Landmark;\nexports.LandmarkIcon = Landmark;\nexports.Languages = Languages;\nexports.LanguagesIcon = Languages;\nexports.Laptop = Laptop;\nexports.Laptop2 = LaptopMinimal;\nexports.Laptop2Icon = LaptopMinimal;\nexports.LaptopIcon = Laptop;\nexports.LaptopMinimal = LaptopMinimal;\nexports.LaptopMinimalCheck = LaptopMinimalCheck;\nexports.LaptopMinimalCheckIcon = LaptopMinimalCheck;\nexports.LaptopMinimalIcon = LaptopMinimal;\nexports.Lasso = Lasso;\nexports.LassoIcon = Lasso;\nexports.LassoSelect = LassoSelect;\nexports.LassoSelectIcon = LassoSelect;\nexports.Laugh = Laugh;\nexports.LaughIcon = Laugh;\nexports.Layers = Layers;\nexports.Layers2 = Layers2;\nexports.Layers2Icon = Layers2;\nexports.Layers3 = Layers;\nexports.Layers3Icon = Layers;\nexports.LayersIcon = Layers;\nexports.Layout = PanelsTopLeft;\nexports.LayoutDashboard = LayoutDashboard;\nexports.LayoutDashboardIcon = LayoutDashboard;\nexports.LayoutGrid = LayoutGrid;\nexports.LayoutGridIcon = LayoutGrid;\nexports.LayoutIcon = PanelsTopLeft;\nexports.LayoutList = LayoutList;\nexports.LayoutListIcon = LayoutList;\nexports.LayoutPanelLeft = LayoutPanelLeft;\nexports.LayoutPanelLeftIcon = LayoutPanelLeft;\nexports.LayoutPanelTop = LayoutPanelTop;\nexports.LayoutPanelTopIcon = LayoutPanelTop;\nexports.LayoutTemplate = LayoutTemplate;\nexports.LayoutTemplateIcon = LayoutTemplate;\nexports.Leaf = Leaf;\nexports.LeafIcon = Leaf;\nexports.LeafyGreen = LeafyGreen;\nexports.LeafyGreenIcon = LeafyGreen;\nexports.Lectern = Lectern;\nexports.LecternIcon = Lectern;\nexports.LetterText = LetterText;\nexports.LetterTextIcon = LetterText;\nexports.Library = Library;\nexports.LibraryBig = LibraryBig;\nexports.LibraryBigIcon = LibraryBig;\nexports.LibraryIcon = Library;\nexports.LibrarySquare = SquareLibrary;\nexports.LibrarySquareIcon = SquareLibrary;\nexports.LifeBuoy = LifeBuoy;\nexports.LifeBuoyIcon = LifeBuoy;\nexports.Ligature = Ligature;\nexports.LigatureIcon = Ligature;\nexports.Lightbulb = Lightbulb;\nexports.LightbulbIcon = Lightbulb;\nexports.LightbulbOff = LightbulbOff;\nexports.LightbulbOffIcon = LightbulbOff;\nexports.LineChart = ChartLine;\nexports.LineChartIcon = ChartLine;\nexports.LineSquiggle = LineSquiggle;\nexports.LineSquiggleIcon = LineSquiggle;\nexports.Link = Link;\nexports.Link2 = Link2;\nexports.Link2Icon = Link2;\nexports.Link2Off = Link2Off;\nexports.Link2OffIcon = Link2Off;\nexports.LinkIcon = Link;\nexports.Linkedin = Linkedin;\nexports.LinkedinIcon = Linkedin;\nexports.List = List;\nexports.ListCheck = ListCheck;\nexports.ListCheckIcon = ListCheck;\nexports.ListChecks = ListChecks;\nexports.ListChecksIcon = ListChecks;\nexports.ListCollapse = ListCollapse;\nexports.ListCollapseIcon = ListCollapse;\nexports.ListEnd = ListEnd;\nexports.ListEndIcon = ListEnd;\nexports.ListFilter = ListFilter;\nexports.ListFilterIcon = ListFilter;\nexports.ListFilterPlus = ListFilterPlus;\nexports.ListFilterPlusIcon = ListFilterPlus;\nexports.ListIcon = List;\nexports.ListMinus = ListMinus;\nexports.ListMinusIcon = ListMinus;\nexports.ListMusic = ListMusic;\nexports.ListMusicIcon = ListMusic;\nexports.ListOrdered = ListOrdered;\nexports.ListOrderedIcon = ListOrdered;\nexports.ListPlus = ListPlus;\nexports.ListPlusIcon = ListPlus;\nexports.ListRestart = ListRestart;\nexports.ListRestartIcon = ListRestart;\nexports.ListStart = ListStart;\nexports.ListStartIcon = ListStart;\nexports.ListTodo = ListTodo;\nexports.ListTodoIcon = ListTodo;\nexports.ListTree = ListTree;\nexports.ListTreeIcon = ListTree;\nexports.ListVideo = ListVideo;\nexports.ListVideoIcon = ListVideo;\nexports.ListX = ListX;\nexports.ListXIcon = ListX;\nexports.Loader = Loader;\nexports.Loader2 = LoaderCircle;\nexports.Loader2Icon = LoaderCircle;\nexports.LoaderCircle = LoaderCircle;\nexports.LoaderCircleIcon = LoaderCircle;\nexports.LoaderIcon = Loader;\nexports.LoaderPinwheel = LoaderPinwheel;\nexports.LoaderPinwheelIcon = LoaderPinwheel;\nexports.Locate = Locate;\nexports.LocateFixed = LocateFixed;\nexports.LocateFixedIcon = LocateFixed;\nexports.LocateIcon = Locate;\nexports.LocateOff = LocateOff;\nexports.LocateOffIcon = LocateOff;\nexports.LocationEdit = LocationEdit;\nexports.LocationEditIcon = LocationEdit;\nexports.Lock = Lock;\nexports.LockIcon = Lock;\nexports.LockKeyhole = LockKeyhole;\nexports.LockKeyholeIcon = LockKeyhole;\nexports.LockKeyholeOpen = LockKeyholeOpen;\nexports.LockKeyholeOpenIcon = LockKeyholeOpen;\nexports.LockOpen = LockOpen;\nexports.LockOpenIcon = LockOpen;\nexports.LogIn = LogIn;\nexports.LogInIcon = LogIn;\nexports.LogOut = LogOut;\nexports.LogOutIcon = LogOut;\nexports.Logs = Logs;\nexports.LogsIcon = Logs;\nexports.Lollipop = Lollipop;\nexports.LollipopIcon = Lollipop;\nexports.LucideAArrowDown = AArrowDown;\nexports.LucideAArrowUp = AArrowUp;\nexports.LucideALargeSmall = ALargeSmall;\nexports.LucideAccessibility = Accessibility;\nexports.LucideActivity = Activity;\nexports.LucideActivitySquare = SquareActivity;\nexports.LucideAirVent = AirVent;\nexports.LucideAirplay = Airplay;\nexports.LucideAlarmCheck = AlarmClockCheck;\nexports.LucideAlarmClock = AlarmClock;\nexports.LucideAlarmClockCheck = AlarmClockCheck;\nexports.LucideAlarmClockMinus = AlarmClockMinus;\nexports.LucideAlarmClockOff = AlarmClockOff;\nexports.LucideAlarmClockPlus = AlarmClockPlus;\nexports.LucideAlarmMinus = AlarmClockMinus;\nexports.LucideAlarmPlus = AlarmClockPlus;\nexports.LucideAlarmSmoke = AlarmSmoke;\nexports.LucideAlbum = Album;\nexports.LucideAlertCircle = CircleAlert;\nexports.LucideAlertOctagon = OctagonAlert;\nexports.LucideAlertTriangle = TriangleAlert;\nexports.LucideAlignCenter = AlignCenter;\nexports.LucideAlignCenterHorizontal = AlignCenterHorizontal;\nexports.LucideAlignCenterVertical = AlignCenterVertical;\nexports.LucideAlignEndHorizontal = AlignEndHorizontal;\nexports.LucideAlignEndVertical = AlignEndVertical;\nexports.LucideAlignHorizontalDistributeCenter = AlignHorizontalDistributeCenter;\nexports.LucideAlignHorizontalDistributeEnd = AlignHorizontalDistributeEnd;\nexports.LucideAlignHorizontalDistributeStart = AlignHorizontalDistributeStart;\nexports.LucideAlignHorizontalJustifyCenter = AlignHorizontalJustifyCenter;\nexports.LucideAlignHorizontalJustifyEnd = AlignHorizontalJustifyEnd;\nexports.LucideAlignHorizontalJustifyStart = AlignHorizontalJustifyStart;\nexports.LucideAlignHorizontalSpaceAround = AlignHorizontalSpaceAround;\nexports.LucideAlignHorizontalSpaceBetween = AlignHorizontalSpaceBetween;\nexports.LucideAlignJustify = AlignJustify;\nexports.LucideAlignLeft = AlignLeft;\nexports.LucideAlignRight = AlignRight;\nexports.LucideAlignStartHorizontal = AlignStartHorizontal;\nexports.LucideAlignStartVertical = AlignStartVertical;\nexports.LucideAlignVerticalDistributeCenter = AlignVerticalDistributeCenter;\nexports.LucideAlignVerticalDistributeEnd = AlignVerticalDistributeEnd;\nexports.LucideAlignVerticalDistributeStart = AlignVerticalDistributeStart;\nexports.LucideAlignVerticalJustifyCenter = AlignVerticalJustifyCenter;\nexports.LucideAlignVerticalJustifyEnd = AlignVerticalJustifyEnd;\nexports.LucideAlignVerticalJustifyStart = AlignVerticalJustifyStart;\nexports.LucideAlignVerticalSpaceAround = AlignVerticalSpaceAround;\nexports.LucideAlignVerticalSpaceBetween = AlignVerticalSpaceBetween;\nexports.LucideAmbulance = Ambulance;\nexports.LucideAmpersand = Ampersand;\nexports.LucideAmpersands = Ampersands;\nexports.LucideAmphora = Amphora;\nexports.LucideAnchor = Anchor;\nexports.LucideAngry = Angry;\nexports.LucideAnnoyed = Annoyed;\nexports.LucideAntenna = Antenna;\nexports.LucideAnvil = Anvil;\nexports.LucideAperture = Aperture;\nexports.LucideAppWindow = AppWindow;\nexports.LucideAppWindowMac = AppWindowMac;\nexports.LucideApple = Apple;\nexports.LucideArchive = Archive;\nexports.LucideArchiveRestore = ArchiveRestore;\nexports.LucideArchiveX = ArchiveX;\nexports.LucideAreaChart = ChartArea;\nexports.LucideArmchair = Armchair;\nexports.LucideArrowBigDown = ArrowBigDown;\nexports.LucideArrowBigDownDash = ArrowBigDownDash;\nexports.LucideArrowBigLeft = ArrowBigLeft;\nexports.LucideArrowBigLeftDash = ArrowBigLeftDash;\nexports.LucideArrowBigRight = ArrowBigRight;\nexports.LucideArrowBigRightDash = ArrowBigRightDash;\nexports.LucideArrowBigUp = ArrowBigUp;\nexports.LucideArrowBigUpDash = ArrowBigUpDash;\nexports.LucideArrowDown = ArrowDown;\nexports.LucideArrowDown01 = ArrowDown01;\nexports.LucideArrowDown10 = ArrowDown10;\nexports.LucideArrowDownAZ = ArrowDownAZ;\nexports.LucideArrowDownAz = ArrowDownAZ;\nexports.LucideArrowDownCircle = CircleArrowDown;\nexports.LucideArrowDownFromLine = ArrowDownFromLine;\nexports.LucideArrowDownLeft = ArrowDownLeft;\nexports.LucideArrowDownLeftFromCircle = CircleArrowOutDownLeft;\nexports.LucideArrowDownLeftFromSquare = SquareArrowOutDownLeft;\nexports.LucideArrowDownLeftSquare = SquareArrowDownLeft;\nexports.LucideArrowDownNarrowWide = ArrowDownNarrowWide;\nexports.LucideArrowDownRight = ArrowDownRight;\nexports.LucideArrowDownRightFromCircle = CircleArrowOutDownRight;\nexports.LucideArrowDownRightFromSquare = SquareArrowOutDownRight;\nexports.LucideArrowDownRightSquare = SquareArrowDownRight;\nexports.LucideArrowDownSquare = SquareArrowDown;\nexports.LucideArrowDownToDot = ArrowDownToDot;\nexports.LucideArrowDownToLine = ArrowDownToLine;\nexports.LucideArrowDownUp = ArrowDownUp;\nexports.LucideArrowDownWideNarrow = ArrowDownWideNarrow;\nexports.LucideArrowDownZA = ArrowDownZA;\nexports.LucideArrowDownZa = ArrowDownZA;\nexports.LucideArrowLeft = ArrowLeft;\nexports.LucideArrowLeftCircle = CircleArrowLeft;\nexports.LucideArrowLeftFromLine = ArrowLeftFromLine;\nexports.LucideArrowLeftRight = ArrowLeftRight;\nexports.LucideArrowLeftSquare = SquareArrowLeft;\nexports.LucideArrowLeftToLine = ArrowLeftToLine;\nexports.LucideArrowRight = ArrowRight;\nexports.LucideArrowRightCircle = CircleArrowRight;\nexports.LucideArrowRightFromLine = ArrowRightFromLine;\nexports.LucideArrowRightLeft = ArrowRightLeft;\nexports.LucideArrowRightSquare = SquareArrowRight;\nexports.LucideArrowRightToLine = ArrowRightToLine;\nexports.LucideArrowUp = ArrowUp;\nexports.LucideArrowUp01 = ArrowUp01;\nexports.LucideArrowUp10 = ArrowUp10;\nexports.LucideArrowUpAZ = ArrowUpAZ;\nexports.LucideArrowUpAz = ArrowUpAZ;\nexports.LucideArrowUpCircle = CircleArrowUp;\nexports.LucideArrowUpDown = ArrowUpDown;\nexports.LucideArrowUpFromDot = ArrowUpFromDot;\nexports.LucideArrowUpFromLine = ArrowUpFromLine;\nexports.LucideArrowUpLeft = ArrowUpLeft;\nexports.LucideArrowUpLeftFromCircle = CircleArrowOutUpLeft;\nexports.LucideArrowUpLeftFromSquare = SquareArrowOutUpLeft;\nexports.LucideArrowUpLeftSquare = SquareArrowUpLeft;\nexports.LucideArrowUpNarrowWide = ArrowUpNarrowWide;\nexports.LucideArrowUpRight = ArrowUpRight;\nexports.LucideArrowUpRightFromCircle = CircleArrowOutUpRight;\nexports.LucideArrowUpRightFromSquare = SquareArrowOutUpRight;\nexports.LucideArrowUpRightSquare = SquareArrowUpRight;\nexports.LucideArrowUpSquare = SquareArrowUp;\nexports.LucideArrowUpToLine = ArrowUpToLine;\nexports.LucideArrowUpWideNarrow = ArrowUpWideNarrow;\nexports.LucideArrowUpZA = ArrowUpZA;\nexports.LucideArrowUpZa = ArrowUpZA;\nexports.LucideArrowsUpFromLine = ArrowsUpFromLine;\nexports.LucideAsterisk = Asterisk;\nexports.LucideAsteriskSquare = SquareAsterisk;\nexports.LucideAtSign = AtSign;\nexports.LucideAtom = Atom;\nexports.LucideAudioLines = AudioLines;\nexports.LucideAudioWaveform = AudioWaveform;\nexports.LucideAward = Award;\nexports.LucideAxe = Axe;\nexports.LucideAxis3D = Axis3d;\nexports.LucideAxis3d = Axis3d;\nexports.LucideBaby = Baby;\nexports.LucideBackpack = Backpack;\nexports.LucideBadge = Badge;\nexports.LucideBadgeAlert = BadgeAlert;\nexports.LucideBadgeCent = BadgeCent;\nexports.LucideBadgeCheck = BadgeCheck;\nexports.LucideBadgeDollarSign = BadgeDollarSign;\nexports.LucideBadgeEuro = BadgeEuro;\nexports.LucideBadgeHelp = BadgeQuestionMark;\nexports.LucideBadgeIndianRupee = BadgeIndianRupee;\nexports.LucideBadgeInfo = BadgeInfo;\nexports.LucideBadgeJapaneseYen = BadgeJapaneseYen;\nexports.LucideBadgeMinus = BadgeMinus;\nexports.LucideBadgePercent = BadgePercent;\nexports.LucideBadgePlus = BadgePlus;\nexports.LucideBadgePoundSterling = BadgePoundSterling;\nexports.LucideBadgeQuestionMark = BadgeQuestionMark;\nexports.LucideBadgeRussianRuble = BadgeRussianRuble;\nexports.LucideBadgeSwissFranc = BadgeSwissFranc;\nexports.LucideBadgeX = BadgeX;\nexports.LucideBaggageClaim = BaggageClaim;\nexports.LucideBan = Ban;\nexports.LucideBanana = Banana;\nexports.LucideBandage = Bandage;\nexports.LucideBanknote = Banknote;\nexports.LucideBanknoteArrowDown = BanknoteArrowDown;\nexports.LucideBanknoteArrowUp = BanknoteArrowUp;\nexports.LucideBanknoteX = BanknoteX;\nexports.LucideBarChart = ChartNoAxesColumnIncreasing;\nexports.LucideBarChart2 = ChartNoAxesColumn;\nexports.LucideBarChart3 = ChartColumn;\nexports.LucideBarChart4 = ChartColumnIncreasing;\nexports.LucideBarChartBig = ChartColumnBig;\nexports.LucideBarChartHorizontal = ChartBar;\nexports.LucideBarChartHorizontalBig = ChartBarBig;\nexports.LucideBarcode = Barcode;\nexports.LucideBarrel = Barrel;\nexports.LucideBaseline = Baseline;\nexports.LucideBath = Bath;\nexports.LucideBattery = Battery;\nexports.LucideBatteryCharging = BatteryCharging;\nexports.LucideBatteryFull = BatteryFull;\nexports.LucideBatteryLow = BatteryLow;\nexports.LucideBatteryMedium = BatteryMedium;\nexports.LucideBatteryPlus = BatteryPlus;\nexports.LucideBatteryWarning = BatteryWarning;\nexports.LucideBeaker = Beaker;\nexports.LucideBean = Bean;\nexports.LucideBeanOff = BeanOff;\nexports.LucideBed = Bed;\nexports.LucideBedDouble = BedDouble;\nexports.LucideBedSingle = BedSingle;\nexports.LucideBeef = Beef;\nexports.LucideBeer = Beer;\nexports.LucideBeerOff = BeerOff;\nexports.LucideBell = Bell;\nexports.LucideBellDot = BellDot;\nexports.LucideBellElectric = BellElectric;\nexports.LucideBellMinus = BellMinus;\nexports.LucideBellOff = BellOff;\nexports.LucideBellPlus = BellPlus;\nexports.LucideBellRing = BellRing;\nexports.LucideBetweenHorizonalEnd = BetweenHorizontalEnd;\nexports.LucideBetweenHorizonalStart = BetweenHorizontalStart;\nexports.LucideBetweenHorizontalEnd = BetweenHorizontalEnd;\nexports.LucideBetweenHorizontalStart = BetweenHorizontalStart;\nexports.LucideBetweenVerticalEnd = BetweenVerticalEnd;\nexports.LucideBetweenVerticalStart = BetweenVerticalStart;\nexports.LucideBicepsFlexed = BicepsFlexed;\nexports.LucideBike = Bike;\nexports.LucideBinary = Binary;\nexports.LucideBinoculars = Binoculars;\nexports.LucideBiohazard = Biohazard;\nexports.LucideBird = Bird;\nexports.LucideBitcoin = Bitcoin;\nexports.LucideBlend = Blend;\nexports.LucideBlinds = Blinds;\nexports.LucideBlocks = Blocks;\nexports.LucideBluetooth = Bluetooth;\nexports.LucideBluetoothConnected = BluetoothConnected;\nexports.LucideBluetoothOff = BluetoothOff;\nexports.LucideBluetoothSearching = BluetoothSearching;\nexports.LucideBold = Bold;\nexports.LucideBolt = Bolt;\nexports.LucideBomb = Bomb;\nexports.LucideBone = Bone;\nexports.LucideBook = Book;\nexports.LucideBookA = BookA;\nexports.LucideBookAlert = BookAlert;\nexports.LucideBookAudio = BookAudio;\nexports.LucideBookCheck = BookCheck;\nexports.LucideBookCopy = BookCopy;\nexports.LucideBookDashed = BookDashed;\nexports.LucideBookDown = BookDown;\nexports.LucideBookHeadphones = BookHeadphones;\nexports.LucideBookHeart = BookHeart;\nexports.LucideBookImage = BookImage;\nexports.LucideBookKey = BookKey;\nexports.LucideBookLock = BookLock;\nexports.LucideBookMarked = BookMarked;\nexports.LucideBookMinus = BookMinus;\nexports.LucideBookOpen = BookOpen;\nexports.LucideBookOpenCheck = BookOpenCheck;\nexports.LucideBookOpenText = BookOpenText;\nexports.LucideBookPlus = BookPlus;\nexports.LucideBookTemplate = BookDashed;\nexports.LucideBookText = BookText;\nexports.LucideBookType = BookType;\nexports.LucideBookUp = BookUp;\nexports.LucideBookUp2 = BookUp2;\nexports.LucideBookUser = BookUser;\nexports.LucideBookX = BookX;\nexports.LucideBookmark = Bookmark;\nexports.LucideBookmarkCheck = BookmarkCheck;\nexports.LucideBookmarkMinus = BookmarkMinus;\nexports.LucideBookmarkPlus = BookmarkPlus;\nexports.LucideBookmarkX = BookmarkX;\nexports.LucideBoomBox = BoomBox;\nexports.LucideBot = Bot;\nexports.LucideBotMessageSquare = BotMessageSquare;\nexports.LucideBotOff = BotOff;\nexports.LucideBottleWine = BottleWine;\nexports.LucideBowArrow = BowArrow;\nexports.LucideBox = Box;\nexports.LucideBoxSelect = SquareDashed;\nexports.LucideBoxes = Boxes;\nexports.LucideBraces = Braces;\nexports.LucideBrackets = Brackets;\nexports.LucideBrain = Brain;\nexports.LucideBrainCircuit = BrainCircuit;\nexports.LucideBrainCog = BrainCog;\nexports.LucideBrickWall = BrickWall;\nexports.LucideBrickWallFire = BrickWallFire;\nexports.LucideBriefcase = Briefcase;\nexports.LucideBriefcaseBusiness = BriefcaseBusiness;\nexports.LucideBriefcaseConveyorBelt = BriefcaseConveyorBelt;\nexports.LucideBriefcaseMedical = BriefcaseMedical;\nexports.LucideBringToFront = BringToFront;\nexports.LucideBrush = Brush;\nexports.LucideBrushCleaning = BrushCleaning;\nexports.LucideBubbles = Bubbles;\nexports.LucideBug = Bug;\nexports.LucideBugOff = BugOff;\nexports.LucideBugPlay = BugPlay;\nexports.LucideBuilding = Building;\nexports.LucideBuilding2 = Building2;\nexports.LucideBus = Bus;\nexports.LucideBusFront = BusFront;\nexports.LucideCable = Cable;\nexports.LucideCableCar = CableCar;\nexports.LucideCake = Cake;\nexports.LucideCakeSlice = CakeSlice;\nexports.LucideCalculator = Calculator;\nexports.LucideCalendar = Calendar;\nexports.LucideCalendar1 = Calendar1;\nexports.LucideCalendarArrowDown = CalendarArrowDown;\nexports.LucideCalendarArrowUp = CalendarArrowUp;\nexports.LucideCalendarCheck = CalendarCheck;\nexports.LucideCalendarCheck2 = CalendarCheck2;\nexports.LucideCalendarClock = CalendarClock;\nexports.LucideCalendarCog = CalendarCog;\nexports.LucideCalendarDays = CalendarDays;\nexports.LucideCalendarFold = CalendarFold;\nexports.LucideCalendarHeart = CalendarHeart;\nexports.LucideCalendarMinus = CalendarMinus;\nexports.LucideCalendarMinus2 = CalendarMinus2;\nexports.LucideCalendarOff = CalendarOff;\nexports.LucideCalendarPlus = CalendarPlus;\nexports.LucideCalendarPlus2 = CalendarPlus2;\nexports.LucideCalendarRange = CalendarRange;\nexports.LucideCalendarSearch = CalendarSearch;\nexports.LucideCalendarSync = CalendarSync;\nexports.LucideCalendarX = CalendarX;\nexports.LucideCalendarX2 = CalendarX2;\nexports.LucideCamera = Camera;\nexports.LucideCameraOff = CameraOff;\nexports.LucideCandlestickChart = ChartCandlestick;\nexports.LucideCandy = Candy;\nexports.LucideCandyCane = CandyCane;\nexports.LucideCandyOff = CandyOff;\nexports.LucideCannabis = Cannabis;\nexports.LucideCaptions = Captions;\nexports.LucideCaptionsOff = CaptionsOff;\nexports.LucideCar = Car;\nexports.LucideCarFront = CarFront;\nexports.LucideCarTaxiFront = CarTaxiFront;\nexports.LucideCaravan = Caravan;\nexports.LucideCardSim = CardSim;\nexports.LucideCarrot = Carrot;\nexports.LucideCaseLower = CaseLower;\nexports.LucideCaseSensitive = CaseSensitive;\nexports.LucideCaseUpper = CaseUpper;\nexports.LucideCassetteTape = CassetteTape;\nexports.LucideCast = Cast;\nexports.LucideCastle = Castle;\nexports.LucideCat = Cat;\nexports.LucideCctv = Cctv;\nexports.LucideChartArea = ChartArea;\nexports.LucideChartBar = ChartBar;\nexports.LucideChartBarBig = ChartBarBig;\nexports.LucideChartBarDecreasing = ChartBarDecreasing;\nexports.LucideChartBarIncreasing = ChartBarIncreasing;\nexports.LucideChartBarStacked = ChartBarStacked;\nexports.LucideChartCandlestick = ChartCandlestick;\nexports.LucideChartColumn = ChartColumn;\nexports.LucideChartColumnBig = ChartColumnBig;\nexports.LucideChartColumnDecreasing = ChartColumnDecreasing;\nexports.LucideChartColumnIncreasing = ChartColumnIncreasing;\nexports.LucideChartColumnStacked = ChartColumnStacked;\nexports.LucideChartGantt = ChartGantt;\nexports.LucideChartLine = ChartLine;\nexports.LucideChartNetwork = ChartNetwork;\nexports.LucideChartNoAxesColumn = ChartNoAxesColumn;\nexports.LucideChartNoAxesColumnDecreasing = ChartNoAxesColumnDecreasing;\nexports.LucideChartNoAxesColumnIncreasing = ChartNoAxesColumnIncreasing;\nexports.LucideChartNoAxesCombined = ChartNoAxesCombined;\nexports.LucideChartNoAxesGantt = ChartNoAxesGantt;\nexports.LucideChartPie = ChartPie;\nexports.LucideChartScatter = ChartScatter;\nexports.LucideChartSpline = ChartSpline;\nexports.LucideCheck = Check;\nexports.LucideCheckCheck = CheckCheck;\nexports.LucideCheckCircle = CircleCheckBig;\nexports.LucideCheckCircle2 = CircleCheck;\nexports.LucideCheckLine = CheckLine;\nexports.LucideCheckSquare = SquareCheckBig;\nexports.LucideCheckSquare2 = SquareCheck;\nexports.LucideChefHat = ChefHat;\nexports.LucideCherry = Cherry;\nexports.LucideChevronDown = ChevronDown;\nexports.LucideChevronDownCircle = CircleChevronDown;\nexports.LucideChevronDownSquare = SquareChevronDown;\nexports.LucideChevronFirst = ChevronFirst;\nexports.LucideChevronLast = ChevronLast;\nexports.LucideChevronLeft = ChevronLeft;\nexports.LucideChevronLeftCircle = CircleChevronLeft;\nexports.LucideChevronLeftSquare = SquareChevronLeft;\nexports.LucideChevronRight = ChevronRight;\nexports.LucideChevronRightCircle = CircleChevronRight;\nexports.LucideChevronRightSquare = SquareChevronRight;\nexports.LucideChevronUp = ChevronUp;\nexports.LucideChevronUpCircle = CircleChevronUp;\nexports.LucideChevronUpSquare = SquareChevronUp;\nexports.LucideChevronsDown = ChevronsDown;\nexports.LucideChevronsDownUp = ChevronsDownUp;\nexports.LucideChevronsLeft = ChevronsLeft;\nexports.LucideChevronsLeftRight = ChevronsLeftRight;\nexports.LucideChevronsLeftRightEllipsis = ChevronsLeftRightEllipsis;\nexports.LucideChevronsRight = ChevronsRight;\nexports.LucideChevronsRightLeft = ChevronsRightLeft;\nexports.LucideChevronsUp = ChevronsUp;\nexports.LucideChevronsUpDown = ChevronsUpDown;\nexports.LucideChrome = Chrome;\nexports.LucideChurch = Church;\nexports.LucideCigarette = Cigarette;\nexports.LucideCigaretteOff = CigaretteOff;\nexports.LucideCircle = Circle;\nexports.LucideCircleAlert = CircleAlert;\nexports.LucideCircleArrowDown = CircleArrowDown;\nexports.LucideCircleArrowLeft = CircleArrowLeft;\nexports.LucideCircleArrowOutDownLeft = CircleArrowOutDownLeft;\nexports.LucideCircleArrowOutDownRight = CircleArrowOutDownRight;\nexports.LucideCircleArrowOutUpLeft = CircleArrowOutUpLeft;\nexports.LucideCircleArrowOutUpRight = CircleArrowOutUpRight;\nexports.LucideCircleArrowRight = CircleArrowRight;\nexports.LucideCircleArrowUp = CircleArrowUp;\nexports.LucideCircleCheck = CircleCheck;\nexports.LucideCircleCheckBig = CircleCheckBig;\nexports.LucideCircleChevronDown = CircleChevronDown;\nexports.LucideCircleChevronLeft = CircleChevronLeft;\nexports.LucideCircleChevronRight = CircleChevronRight;\nexports.LucideCircleChevronUp = CircleChevronUp;\nexports.LucideCircleDashed = CircleDashed;\nexports.LucideCircleDivide = CircleDivide;\nexports.LucideCircleDollarSign = CircleDollarSign;\nexports.LucideCircleDot = CircleDot;\nexports.LucideCircleDotDashed = CircleDotDashed;\nexports.LucideCircleEllipsis = CircleEllipsis;\nexports.LucideCircleEqual = CircleEqual;\nexports.LucideCircleFadingArrowUp = CircleFadingArrowUp;\nexports.LucideCircleFadingPlus = CircleFadingPlus;\nexports.LucideCircleGauge = CircleGauge;\nexports.LucideCircleHelp = CircleQuestionMark;\nexports.LucideCircleMinus = CircleMinus;\nexports.LucideCircleOff = CircleOff;\nexports.LucideCircleParking = CircleParking;\nexports.LucideCircleParkingOff = CircleParkingOff;\nexports.LucideCirclePause = CirclePause;\nexports.LucideCirclePercent = CirclePercent;\nexports.LucideCirclePlay = CirclePlay;\nexports.LucideCirclePlus = CirclePlus;\nexports.LucideCirclePoundSterling = CirclePoundSterling;\nexports.LucideCirclePower = CirclePower;\nexports.LucideCircleQuestionMark = CircleQuestionMark;\nexports.LucideCircleSlash = CircleSlash;\nexports.LucideCircleSlash2 = CircleSlash2;\nexports.LucideCircleSlashed = CircleSlash2;\nexports.LucideCircleSmall = CircleSmall;\nexports.LucideCircleStop = CircleStop;\nexports.LucideCircleUser = CircleUser;\nexports.LucideCircleUserRound = CircleUserRound;\nexports.LucideCircleX = CircleX;\nexports.LucideCircuitBoard = CircuitBoard;\nexports.LucideCitrus = Citrus;\nexports.LucideClapperboard = Clapperboard;\nexports.LucideClipboard = Clipboard;\nexports.LucideClipboardCheck = ClipboardCheck;\nexports.LucideClipboardCopy = ClipboardCopy;\nexports.LucideClipboardEdit = ClipboardPen;\nexports.LucideClipboardList = ClipboardList;\nexports.LucideClipboardMinus = ClipboardMinus;\nexports.LucideClipboardPaste = ClipboardPaste;\nexports.LucideClipboardPen = ClipboardPen;\nexports.LucideClipboardPenLine = ClipboardPenLine;\nexports.LucideClipboardPlus = ClipboardPlus;\nexports.LucideClipboardSignature = ClipboardPenLine;\nexports.LucideClipboardType = ClipboardType;\nexports.LucideClipboardX = ClipboardX;\nexports.LucideClock = Clock;\nexports.LucideClock1 = Clock1;\nexports.LucideClock10 = Clock10;\nexports.LucideClock11 = Clock11;\nexports.LucideClock12 = Clock12;\nexports.LucideClock2 = Clock2;\nexports.LucideClock3 = Clock3;\nexports.LucideClock4 = Clock4;\nexports.LucideClock5 = Clock5;\nexports.LucideClock6 = Clock6;\nexports.LucideClock7 = Clock7;\nexports.LucideClock8 = Clock8;\nexports.LucideClock9 = Clock9;\nexports.LucideClockAlert = ClockAlert;\nexports.LucideClockArrowDown = ClockArrowDown;\nexports.LucideClockArrowUp = ClockArrowUp;\nexports.LucideClockFading = ClockFading;\nexports.LucideClockPlus = ClockPlus;\nexports.LucideCloud = Cloud;\nexports.LucideCloudAlert = CloudAlert;\nexports.LucideCloudCheck = CloudCheck;\nexports.LucideCloudCog = CloudCog;\nexports.LucideCloudDownload = CloudDownload;\nexports.LucideCloudDrizzle = CloudDrizzle;\nexports.LucideCloudFog = CloudFog;\nexports.LucideCloudHail = CloudHail;\nexports.LucideCloudLightning = CloudLightning;\nexports.LucideCloudMoon = CloudMoon;\nexports.LucideCloudMoonRain = CloudMoonRain;\nexports.LucideCloudOff = CloudOff;\nexports.LucideCloudRain = CloudRain;\nexports.LucideCloudRainWind = CloudRainWind;\nexports.LucideCloudSnow = CloudSnow;\nexports.LucideCloudSun = CloudSun;\nexports.LucideCloudSunRain = CloudSunRain;\nexports.LucideCloudUpload = CloudUpload;\nexports.LucideCloudy = Cloudy;\nexports.LucideClover = Clover;\nexports.LucideClub = Club;\nexports.LucideCode = Code;\nexports.LucideCode2 = CodeXml;\nexports.LucideCodeSquare = SquareCode;\nexports.LucideCodeXml = CodeXml;\nexports.LucideCodepen = Codepen;\nexports.LucideCodesandbox = Codesandbox;\nexports.LucideCoffee = Coffee;\nexports.LucideCog = Cog;\nexports.LucideCoins = Coins;\nexports.LucideColumns = Columns2;\nexports.LucideColumns2 = Columns2;\nexports.LucideColumns3 = Columns3;\nexports.LucideColumns3Cog = Columns3Cog;\nexports.LucideColumns4 = Columns4;\nexports.LucideColumnsSettings = Columns3Cog;\nexports.LucideCombine = Combine;\nexports.LucideCommand = Command;\nexports.LucideCompass = Compass;\nexports.LucideComponent = Component;\nexports.LucideComputer = Computer;\nexports.LucideConciergeBell = ConciergeBell;\nexports.LucideCone = Cone;\nexports.LucideConstruction = Construction;\nexports.LucideContact = Contact;\nexports.LucideContact2 = ContactRound;\nexports.LucideContactRound = ContactRound;\nexports.LucideContainer = Container;\nexports.LucideContrast = Contrast;\nexports.LucideCookie = Cookie;\nexports.LucideCookingPot = CookingPot;\nexports.LucideCopy = Copy;\nexports.LucideCopyCheck = CopyCheck;\nexports.LucideCopyMinus = CopyMinus;\nexports.LucideCopyPlus = CopyPlus;\nexports.LucideCopySlash = CopySlash;\nexports.LucideCopyX = CopyX;\nexports.LucideCopyleft = Copyleft;\nexports.LucideCopyright = Copyright;\nexports.LucideCornerDownLeft = CornerDownLeft;\nexports.LucideCornerDownRight = CornerDownRight;\nexports.LucideCornerLeftDown = CornerLeftDown;\nexports.LucideCornerLeftUp = CornerLeftUp;\nexports.LucideCornerRightDown = CornerRightDown;\nexports.LucideCornerRightUp = CornerRightUp;\nexports.LucideCornerUpLeft = CornerUpLeft;\nexports.LucideCornerUpRight = CornerUpRight;\nexports.LucideCpu = Cpu;\nexports.LucideCreativeCommons = CreativeCommons;\nexports.LucideCreditCard = CreditCard;\nexports.LucideCroissant = Croissant;\nexports.LucideCrop = Crop;\nexports.LucideCross = Cross;\nexports.LucideCrosshair = Crosshair;\nexports.LucideCrown = Crown;\nexports.LucideCuboid = Cuboid;\nexports.LucideCupSoda = CupSoda;\nexports.LucideCurlyBraces = Braces;\nexports.LucideCurrency = Currency;\nexports.LucideCylinder = Cylinder;\nexports.LucideDam = Dam;\nexports.LucideDatabase = Database;\nexports.LucideDatabaseBackup = DatabaseBackup;\nexports.LucideDatabaseZap = DatabaseZap;\nexports.LucideDecimalsArrowLeft = DecimalsArrowLeft;\nexports.LucideDecimalsArrowRight = DecimalsArrowRight;\nexports.LucideDelete = Delete;\nexports.LucideDessert = Dessert;\nexports.LucideDiameter = Diameter;\nexports.LucideDiamond = Diamond;\nexports.LucideDiamondMinus = DiamondMinus;\nexports.LucideDiamondPercent = DiamondPercent;\nexports.LucideDiamondPlus = DiamondPlus;\nexports.LucideDice1 = Dice1;\nexports.LucideDice2 = Dice2;\nexports.LucideDice3 = Dice3;\nexports.LucideDice4 = Dice4;\nexports.LucideDice5 = Dice5;\nexports.LucideDice6 = Dice6;\nexports.LucideDices = Dices;\nexports.LucideDiff = Diff;\nexports.LucideDisc = Disc;\nexports.LucideDisc2 = Disc2;\nexports.LucideDisc3 = Disc3;\nexports.LucideDiscAlbum = DiscAlbum;\nexports.LucideDivide = Divide;\nexports.LucideDivideCircle = CircleDivide;\nexports.LucideDivideSquare = SquareDivide;\nexports.LucideDna = Dna;\nexports.LucideDnaOff = DnaOff;\nexports.LucideDock = Dock;\nexports.LucideDog = Dog;\nexports.LucideDollarSign = DollarSign;\nexports.LucideDonut = Donut;\nexports.LucideDoorClosed = DoorClosed;\nexports.LucideDoorClosedLocked = DoorClosedLocked;\nexports.LucideDoorOpen = DoorOpen;\nexports.LucideDot = Dot;\nexports.LucideDotSquare = SquareDot;\nexports.LucideDownload = Download;\nexports.LucideDownloadCloud = CloudDownload;\nexports.LucideDraftingCompass = DraftingCompass;\nexports.LucideDrama = Drama;\nexports.LucideDribbble = Dribbble;\nexports.LucideDrill = Drill;\nexports.LucideDrone = Drone;\nexports.LucideDroplet = Droplet;\nexports.LucideDropletOff = DropletOff;\nexports.LucideDroplets = Droplets;\nexports.LucideDrum = Drum;\nexports.LucideDrumstick = Drumstick;\nexports.LucideDumbbell = Dumbbell;\nexports.LucideEar = Ear;\nexports.LucideEarOff = EarOff;\nexports.LucideEarth = Earth;\nexports.LucideEarthLock = EarthLock;\nexports.LucideEclipse = Eclipse;\nexports.LucideEdit = SquarePen;\nexports.LucideEdit2 = Pen;\nexports.LucideEdit3 = PenLine;\nexports.LucideEgg = Egg;\nexports.LucideEggFried = EggFried;\nexports.LucideEggOff = EggOff;\nexports.LucideEllipsis = Ellipsis;\nexports.LucideEllipsisVertical = EllipsisVertical;\nexports.LucideEqual = Equal;\nexports.LucideEqualApproximately = EqualApproximately;\nexports.LucideEqualNot = EqualNot;\nexports.LucideEqualSquare = SquareEqual;\nexports.LucideEraser = Eraser;\nexports.LucideEthernetPort = EthernetPort;\nexports.LucideEuro = Euro;\nexports.LucideExpand = Expand;\nexports.LucideExternalLink = ExternalLink;\nexports.LucideEye = Eye;\nexports.LucideEyeClosed = EyeClosed;\nexports.LucideEyeOff = EyeOff;\nexports.LucideFacebook = Facebook;\nexports.LucideFactory = Factory;\nexports.LucideFan = Fan;\nexports.LucideFastForward = FastForward;\nexports.LucideFeather = Feather;\nexports.LucideFence = Fence;\nexports.LucideFerrisWheel = FerrisWheel;\nexports.LucideFigma = Figma;\nexports.LucideFile = File;\nexports.LucideFileArchive = FileArchive;\nexports.LucideFileAudio = FileAudio;\nexports.LucideFileAudio2 = FileAudio2;\nexports.LucideFileAxis3D = FileAxis3d;\nexports.LucideFileAxis3d = FileAxis3d;\nexports.LucideFileBadge = FileBadge;\nexports.LucideFileBadge2 = FileBadge2;\nexports.LucideFileBarChart = FileChartColumnIncreasing;\nexports.LucideFileBarChart2 = FileChartColumn;\nexports.LucideFileBox = FileBox;\nexports.LucideFileChartColumn = FileChartColumn;\nexports.LucideFileChartColumnIncreasing = FileChartColumnIncreasing;\nexports.LucideFileChartLine = FileChartLine;\nexports.LucideFileChartPie = FileChartPie;\nexports.LucideFileCheck = FileCheck;\nexports.LucideFileCheck2 = FileCheck2;\nexports.LucideFileClock = FileClock;\nexports.LucideFileCode = FileCode;\nexports.LucideFileCode2 = FileCode2;\nexports.LucideFileCog = FileCog;\nexports.LucideFileCog2 = FileCog;\nexports.LucideFileDiff = FileDiff;\nexports.LucideFileDigit = FileDigit;\nexports.LucideFileDown = FileDown;\nexports.LucideFileEdit = FilePen;\nexports.LucideFileHeart = FileHeart;\nexports.LucideFileImage = FileImage;\nexports.LucideFileInput = FileInput;\nexports.LucideFileJson = FileJson;\nexports.LucideFileJson2 = FileJson2;\nexports.LucideFileKey = FileKey;\nexports.LucideFileKey2 = FileKey2;\nexports.LucideFileLineChart = FileChartLine;\nexports.LucideFileLock = FileLock;\nexports.LucideFileLock2 = FileLock2;\nexports.LucideFileMinus = FileMinus;\nexports.LucideFileMinus2 = FileMinus2;\nexports.LucideFileMusic = FileMusic;\nexports.LucideFileOutput = FileOutput;\nexports.LucideFilePen = FilePen;\nexports.LucideFilePenLine = FilePenLine;\nexports.LucideFilePieChart = FileChartPie;\nexports.LucideFilePlus = FilePlus;\nexports.LucideFilePlus2 = FilePlus2;\nexports.LucideFileQuestion = FileQuestionMark;\nexports.LucideFileQuestionMark = FileQuestionMark;\nexports.LucideFileScan = FileScan;\nexports.LucideFileSearch = FileSearch;\nexports.LucideFileSearch2 = FileSearch2;\nexports.LucideFileSignature = FilePenLine;\nexports.LucideFileSliders = FileSliders;\nexports.LucideFileSpreadsheet = FileSpreadsheet;\nexports.LucideFileStack = FileStack;\nexports.LucideFileSymlink = FileSymlink;\nexports.LucideFileTerminal = FileTerminal;\nexports.LucideFileText = FileText;\nexports.LucideFileType = FileType;\nexports.LucideFileType2 = FileType2;\nexports.LucideFileUp = FileUp;\nexports.LucideFileUser = FileUser;\nexports.LucideFileVideo = FileVideo;\nexports.LucideFileVideo2 = FileVideo2;\nexports.LucideFileVolume = FileVolume;\nexports.LucideFileVolume2 = FileVolume2;\nexports.LucideFileWarning = FileWarning;\nexports.LucideFileX = FileX;\nexports.LucideFileX2 = FileX2;\nexports.LucideFiles = Files;\nexports.LucideFilm = Film;\nexports.LucideFilter = Funnel;\nexports.LucideFilterX = FunnelX;\nexports.LucideFingerprint = Fingerprint;\nexports.LucideFireExtinguisher = FireExtinguisher;\nexports.LucideFish = Fish;\nexports.LucideFishOff = FishOff;\nexports.LucideFishSymbol = FishSymbol;\nexports.LucideFlag = Flag;\nexports.LucideFlagOff = FlagOff;\nexports.LucideFlagTriangleLeft = FlagTriangleLeft;\nexports.LucideFlagTriangleRight = FlagTriangleRight;\nexports.LucideFlame = Flame;\nexports.LucideFlameKindling = FlameKindling;\nexports.LucideFlashlight = Flashlight;\nexports.LucideFlashlightOff = FlashlightOff;\nexports.LucideFlaskConical = FlaskConical;\nexports.LucideFlaskConicalOff = FlaskConicalOff;\nexports.LucideFlaskRound = FlaskRound;\nexports.LucideFlipHorizontal = FlipHorizontal;\nexports.LucideFlipHorizontal2 = FlipHorizontal2;\nexports.LucideFlipVertical = FlipVertical;\nexports.LucideFlipVertical2 = FlipVertical2;\nexports.LucideFlower = Flower;\nexports.LucideFlower2 = Flower2;\nexports.LucideFocus = Focus;\nexports.LucideFoldHorizontal = FoldHorizontal;\nexports.LucideFoldVertical = FoldVertical;\nexports.LucideFolder = Folder;\nexports.LucideFolderArchive = FolderArchive;\nexports.LucideFolderCheck = FolderCheck;\nexports.LucideFolderClock = FolderClock;\nexports.LucideFolderClosed = FolderClosed;\nexports.LucideFolderCode = FolderCode;\nexports.LucideFolderCog = FolderCog;\nexports.LucideFolderCog2 = FolderCog;\nexports.LucideFolderDot = FolderDot;\nexports.LucideFolderDown = FolderDown;\nexports.LucideFolderEdit = FolderPen;\nexports.LucideFolderGit = FolderGit;\nexports.LucideFolderGit2 = FolderGit2;\nexports.LucideFolderHeart = FolderHeart;\nexports.LucideFolderInput = FolderInput;\nexports.LucideFolderKanban = FolderKanban;\nexports.LucideFolderKey = FolderKey;\nexports.LucideFolderLock = FolderLock;\nexports.LucideFolderMinus = FolderMinus;\nexports.LucideFolderOpen = FolderOpen;\nexports.LucideFolderOpenDot = FolderOpenDot;\nexports.LucideFolderOutput = FolderOutput;\nexports.LucideFolderPen = FolderPen;\nexports.LucideFolderPlus = FolderPlus;\nexports.LucideFolderRoot = FolderRoot;\nexports.LucideFolderSearch = FolderSearch;\nexports.LucideFolderSearch2 = FolderSearch2;\nexports.LucideFolderSymlink = FolderSymlink;\nexports.LucideFolderSync = FolderSync;\nexports.LucideFolderTree = FolderTree;\nexports.LucideFolderUp = FolderUp;\nexports.LucideFolderX = FolderX;\nexports.LucideFolders = Folders;\nexports.LucideFootprints = Footprints;\nexports.LucideForkKnife = Utensils;\nexports.LucideForkKnifeCrossed = UtensilsCrossed;\nexports.LucideForklift = Forklift;\nexports.LucideFormInput = RectangleEllipsis;\nexports.LucideForward = Forward;\nexports.LucideFrame = Frame;\nexports.LucideFramer = Framer;\nexports.LucideFrown = Frown;\nexports.LucideFuel = Fuel;\nexports.LucideFullscreen = Fullscreen;\nexports.LucideFunctionSquare = SquareFunction;\nexports.LucideFunnel = Funnel;\nexports.LucideFunnelPlus = FunnelPlus;\nexports.LucideFunnelX = FunnelX;\nexports.LucideGalleryHorizontal = GalleryHorizontal;\nexports.LucideGalleryHorizontalEnd = GalleryHorizontalEnd;\nexports.LucideGalleryThumbnails = GalleryThumbnails;\nexports.LucideGalleryVertical = GalleryVertical;\nexports.LucideGalleryVerticalEnd = GalleryVerticalEnd;\nexports.LucideGamepad = Gamepad;\nexports.LucideGamepad2 = Gamepad2;\nexports.LucideGanttChart = ChartNoAxesGantt;\nexports.LucideGanttChartSquare = SquareChartGantt;\nexports.LucideGauge = Gauge;\nexports.LucideGaugeCircle = CircleGauge;\nexports.LucideGavel = Gavel;\nexports.LucideGem = Gem;\nexports.LucideGeorgianLari = GeorgianLari;\nexports.LucideGhost = Ghost;\nexports.LucideGift = Gift;\nexports.LucideGitBranch = GitBranch;\nexports.LucideGitBranchPlus = GitBranchPlus;\nexports.LucideGitCommit = GitCommitHorizontal;\nexports.LucideGitCommitHorizontal = GitCommitHorizontal;\nexports.LucideGitCommitVertical = GitCommitVertical;\nexports.LucideGitCompare = GitCompare;\nexports.LucideGitCompareArrows = GitCompareArrows;\nexports.LucideGitFork = GitFork;\nexports.LucideGitGraph = GitGraph;\nexports.LucideGitMerge = GitMerge;\nexports.LucideGitPullRequest = GitPullRequest;\nexports.LucideGitPullRequestArrow = GitPullRequestArrow;\nexports.LucideGitPullRequestClosed = GitPullRequestClosed;\nexports.LucideGitPullRequestCreate = GitPullRequestCreate;\nexports.LucideGitPullRequestCreateArrow = GitPullRequestCreateArrow;\nexports.LucideGitPullRequestDraft = GitPullRequestDraft;\nexports.LucideGithub = Github;\nexports.LucideGitlab = Gitlab;\nexports.LucideGlassWater = GlassWater;\nexports.LucideGlasses = Glasses;\nexports.LucideGlobe = Globe;\nexports.LucideGlobe2 = Earth;\nexports.LucideGlobeLock = GlobeLock;\nexports.LucideGoal = Goal;\nexports.LucideGpu = Gpu;\nexports.LucideGrab = Grab;\nexports.LucideGraduationCap = GraduationCap;\nexports.LucideGrape = Grape;\nexports.LucideGrid = Grid3x3;\nexports.LucideGrid2X2 = Grid2x2;\nexports.LucideGrid2X2Check = Grid2x2Check;\nexports.LucideGrid2X2Plus = Grid2x2Plus;\nexports.LucideGrid2X2X = Grid2x2X;\nexports.LucideGrid2x2 = Grid2x2;\nexports.LucideGrid2x2Check = Grid2x2Check;\nexports.LucideGrid2x2Plus = Grid2x2Plus;\nexports.LucideGrid2x2X = Grid2x2X;\nexports.LucideGrid3X3 = Grid3x3;\nexports.LucideGrid3x2 = Grid3x2;\nexports.LucideGrid3x3 = Grid3x3;\nexports.LucideGrip = Grip;\nexports.LucideGripHorizontal = GripHorizontal;\nexports.LucideGripVertical = GripVertical;\nexports.LucideGroup = Group;\nexports.LucideGuitar = Guitar;\nexports.LucideHam = Ham;\nexports.LucideHamburger = Hamburger;\nexports.LucideHammer = Hammer;\nexports.LucideHand = Hand;\nexports.LucideHandCoins = HandCoins;\nexports.LucideHandHeart = HandHeart;\nexports.LucideHandHelping = HandHelping;\nexports.LucideHandMetal = HandMetal;\nexports.LucideHandPlatter = HandPlatter;\nexports.LucideHandshake = Handshake;\nexports.LucideHardDrive = HardDrive;\nexports.LucideHardDriveDownload = HardDriveDownload;\nexports.LucideHardDriveUpload = HardDriveUpload;\nexports.LucideHardHat = HardHat;\nexports.LucideHash = Hash;\nexports.LucideHaze = Haze;\nexports.LucideHdmiPort = HdmiPort;\nexports.LucideHeading = Heading;\nexports.LucideHeading1 = Heading1;\nexports.LucideHeading2 = Heading2;\nexports.LucideHeading3 = Heading3;\nexports.LucideHeading4 = Heading4;\nexports.LucideHeading5 = Heading5;\nexports.LucideHeading6 = Heading6;\nexports.LucideHeadphoneOff = HeadphoneOff;\nexports.LucideHeadphones = Headphones;\nexports.LucideHeadset = Headset;\nexports.LucideHeart = Heart;\nexports.LucideHeartCrack = HeartCrack;\nexports.LucideHeartHandshake = HeartHandshake;\nexports.LucideHeartMinus = HeartMinus;\nexports.LucideHeartOff = HeartOff;\nexports.LucideHeartPlus = HeartPlus;\nexports.LucideHeartPulse = HeartPulse;\nexports.LucideHeater = Heater;\nexports.LucideHelpCircle = CircleQuestionMark;\nexports.LucideHelpingHand = HandHelping;\nexports.LucideHexagon = Hexagon;\nexports.LucideHighlighter = Highlighter;\nexports.LucideHistory = History;\nexports.LucideHome = House;\nexports.LucideHop = Hop;\nexports.LucideHopOff = HopOff;\nexports.LucideHospital = Hospital;\nexports.LucideHotel = Hotel;\nexports.LucideHourglass = Hourglass;\nexports.LucideHouse = House;\nexports.LucideHousePlug = HousePlug;\nexports.LucideHousePlus = HousePlus;\nexports.LucideHouseWifi = HouseWifi;\nexports.LucideIceCream = IceCreamCone;\nexports.LucideIceCream2 = IceCreamBowl;\nexports.LucideIceCreamBowl = IceCreamBowl;\nexports.LucideIceCreamCone = IceCreamCone;\nexports.LucideIdCard = IdCard;\nexports.LucideIdCardLanyard = IdCardLanyard;\nexports.LucideImage = Image;\nexports.LucideImageDown = ImageDown;\nexports.LucideImageMinus = ImageMinus;\nexports.LucideImageOff = ImageOff;\nexports.LucideImagePlay = ImagePlay;\nexports.LucideImagePlus = ImagePlus;\nexports.LucideImageUp = ImageUp;\nexports.LucideImageUpscale = ImageUpscale;\nexports.LucideImages = Images;\nexports.LucideImport = Import;\nexports.LucideInbox = Inbox;\nexports.LucideIndent = IndentIncrease;\nexports.LucideIndentDecrease = IndentDecrease;\nexports.LucideIndentIncrease = IndentIncrease;\nexports.LucideIndianRupee = IndianRupee;\nexports.LucideInfinity = Infinity;\nexports.LucideInfo = Info;\nexports.LucideInspect = SquareMousePointer;\nexports.LucideInspectionPanel = InspectionPanel;\nexports.LucideInstagram = Instagram;\nexports.LucideItalic = Italic;\nexports.LucideIterationCcw = IterationCcw;\nexports.LucideIterationCw = IterationCw;\nexports.LucideJapaneseYen = JapaneseYen;\nexports.LucideJoystick = Joystick;\nexports.LucideKanban = Kanban;\nexports.LucideKanbanSquare = SquareKanban;\nexports.LucideKanbanSquareDashed = SquareDashedKanban;\nexports.LucideKey = Key;\nexports.LucideKeyRound = KeyRound;\nexports.LucideKeySquare = KeySquare;\nexports.LucideKeyboard = Keyboard;\nexports.LucideKeyboardMusic = KeyboardMusic;\nexports.LucideKeyboardOff = KeyboardOff;\nexports.LucideLamp = Lamp;\nexports.LucideLampCeiling = LampCeiling;\nexports.LucideLampDesk = LampDesk;\nexports.LucideLampFloor = LampFloor;\nexports.LucideLampWallDown = LampWallDown;\nexports.LucideLampWallUp = LampWallUp;\nexports.LucideLandPlot = LandPlot;\nexports.LucideLandmark = Landmark;\nexports.LucideLanguages = Languages;\nexports.LucideLaptop = Laptop;\nexports.LucideLaptop2 = LaptopMinimal;\nexports.LucideLaptopMinimal = LaptopMinimal;\nexports.LucideLaptopMinimalCheck = LaptopMinimalCheck;\nexports.LucideLasso = Lasso;\nexports.LucideLassoSelect = LassoSelect;\nexports.LucideLaugh = Laugh;\nexports.LucideLayers = Layers;\nexports.LucideLayers2 = Layers2;\nexports.LucideLayers3 = Layers;\nexports.LucideLayout = PanelsTopLeft;\nexports.LucideLayoutDashboard = LayoutDashboard;\nexports.LucideLayoutGrid = LayoutGrid;\nexports.LucideLayoutList = LayoutList;\nexports.LucideLayoutPanelLeft = LayoutPanelLeft;\nexports.LucideLayoutPanelTop = LayoutPanelTop;\nexports.LucideLayoutTemplate = LayoutTemplate;\nexports.LucideLeaf = Leaf;\nexports.LucideLeafyGreen = LeafyGreen;\nexports.LucideLectern = Lectern;\nexports.LucideLetterText = LetterText;\nexports.LucideLibrary = Library;\nexports.LucideLibraryBig = LibraryBig;\nexports.LucideLibrarySquare = SquareLibrary;\nexports.LucideLifeBuoy = LifeBuoy;\nexports.LucideLigature = Ligature;\nexports.LucideLightbulb = Lightbulb;\nexports.LucideLightbulbOff = LightbulbOff;\nexports.LucideLineChart = ChartLine;\nexports.LucideLineSquiggle = LineSquiggle;\nexports.LucideLink = Link;\nexports.LucideLink2 = Link2;\nexports.LucideLink2Off = Link2Off;\nexports.LucideLinkedin = Linkedin;\nexports.LucideList = List;\nexports.LucideListCheck = ListCheck;\nexports.LucideListChecks = ListChecks;\nexports.LucideListCollapse = ListCollapse;\nexports.LucideListEnd = ListEnd;\nexports.LucideListFilter = ListFilter;\nexports.LucideListFilterPlus = ListFilterPlus;\nexports.LucideListMinus = ListMinus;\nexports.LucideListMusic = ListMusic;\nexports.LucideListOrdered = ListOrdered;\nexports.LucideListPlus = ListPlus;\nexports.LucideListRestart = ListRestart;\nexports.LucideListStart = ListStart;\nexports.LucideListTodo = ListTodo;\nexports.LucideListTree = ListTree;\nexports.LucideListVideo = ListVideo;\nexports.LucideListX = ListX;\nexports.LucideLoader = Loader;\nexports.LucideLoader2 = LoaderCircle;\nexports.LucideLoaderCircle = LoaderCircle;\nexports.LucideLoaderPinwheel = LoaderPinwheel;\nexports.LucideLocate = Locate;\nexports.LucideLocateFixed = LocateFixed;\nexports.LucideLocateOff = LocateOff;\nexports.LucideLocationEdit = LocationEdit;\nexports.LucideLock = Lock;\nexports.LucideLockKeyhole = LockKeyhole;\nexports.LucideLockKeyholeOpen = LockKeyholeOpen;\nexports.LucideLockOpen = LockOpen;\nexports.LucideLogIn = LogIn;\nexports.LucideLogOut = LogOut;\nexports.LucideLogs = Logs;\nexports.LucideLollipop = Lollipop;\nexports.LucideLuggage = Luggage;\nexports.LucideMSquare = SquareM;\nexports.LucideMagnet = Magnet;\nexports.LucideMail = Mail;\nexports.LucideMailCheck = MailCheck;\nexports.LucideMailMinus = MailMinus;\nexports.LucideMailOpen = MailOpen;\nexports.LucideMailPlus = MailPlus;\nexports.LucideMailQuestion = MailQuestionMark;\nexports.LucideMailQuestionMark = MailQuestionMark;\nexports.LucideMailSearch = MailSearch;\nexports.LucideMailWarning = MailWarning;\nexports.LucideMailX = MailX;\nexports.LucideMailbox = Mailbox;\nexports.LucideMails = Mails;\nexports.LucideMap = Map;\nexports.LucideMapPin = MapPin;\nexports.LucideMapPinCheck = MapPinCheck;\nexports.LucideMapPinCheckInside = MapPinCheckInside;\nexports.LucideMapPinHouse = MapPinHouse;\nexports.LucideMapPinMinus = MapPinMinus;\nexports.LucideMapPinMinusInside = MapPinMinusInside;\nexports.LucideMapPinOff = MapPinOff;\nexports.LucideMapPinPlus = MapPinPlus;\nexports.LucideMapPinPlusInside = MapPinPlusInside;\nexports.LucideMapPinX = MapPinX;\nexports.LucideMapPinXInside = MapPinXInside;\nexports.LucideMapPinned = MapPinned;\nexports.LucideMapPlus = MapPlus;\nexports.LucideMars = Mars;\nexports.LucideMarsStroke = MarsStroke;\nexports.LucideMartini = Martini;\nexports.LucideMaximize = Maximize;\nexports.LucideMaximize2 = Maximize2;\nexports.LucideMedal = Medal;\nexports.LucideMegaphone = Megaphone;\nexports.LucideMegaphoneOff = MegaphoneOff;\nexports.LucideMeh = Meh;\nexports.LucideMemoryStick = MemoryStick;\nexports.LucideMenu = Menu;\nexports.LucideMenuSquare = SquareMenu;\nexports.LucideMerge = Merge;\nexports.LucideMessageCircle = MessageCircle;\nexports.LucideMessageCircleCode = MessageCircleCode;\nexports.LucideMessageCircleDashed = MessageCircleDashed;\nexports.LucideMessageCircleHeart = MessageCircleHeart;\nexports.LucideMessageCircleMore = MessageCircleMore;\nexports.LucideMessageCircleOff = MessageCircleOff;\nexports.LucideMessageCirclePlus = MessageCirclePlus;\nexports.LucideMessageCircleQuestion = MessageCircleQuestionMark;\nexports.LucideMessageCircleQuestionMark = MessageCircleQuestionMark;\nexports.LucideMessageCircleReply = MessageCircleReply;\nexports.LucideMessageCircleWarning = MessageCircleWarning;\nexports.LucideMessageCircleX = MessageCircleX;\nexports.LucideMessageSquare = MessageSquare;\nexports.LucideMessageSquareCode = MessageSquareCode;\nexports.LucideMessageSquareDashed = MessageSquareDashed;\nexports.LucideMessageSquareDiff = MessageSquareDiff;\nexports.LucideMessageSquareDot = MessageSquareDot;\nexports.LucideMessageSquareHeart = MessageSquareHeart;\nexports.LucideMessageSquareLock = MessageSquareLock;\nexports.LucideMessageSquareMore = MessageSquareMore;\nexports.LucideMessageSquareOff = MessageSquareOff;\nexports.LucideMessageSquarePlus = MessageSquarePlus;\nexports.LucideMessageSquareQuote = MessageSquareQuote;\nexports.LucideMessageSquareReply = MessageSquareReply;\nexports.LucideMessageSquareShare = MessageSquareShare;\nexports.LucideMessageSquareText = MessageSquareText;\nexports.LucideMessageSquareWarning = MessageSquareWarning;\nexports.LucideMessageSquareX = MessageSquareX;\nexports.LucideMessagesSquare = MessagesSquare;\nexports.LucideMic = Mic;\nexports.LucideMic2 = MicVocal;\nexports.LucideMicOff = MicOff;\nexports.LucideMicVocal = MicVocal;\nexports.LucideMicrochip = Microchip;\nexports.LucideMicroscope = Microscope;\nexports.LucideMicrowave = Microwave;\nexports.LucideMilestone = Milestone;\nexports.LucideMilk = Milk;\nexports.LucideMilkOff = MilkOff;\nexports.LucideMinimize = Minimize;\nexports.LucideMinimize2 = Minimize2;\nexports.LucideMinus = Minus;\nexports.LucideMinusCircle = CircleMinus;\nexports.LucideMinusSquare = SquareMinus;\nexports.LucideMonitor = Monitor;\nexports.LucideMonitorCheck = MonitorCheck;\nexports.LucideMonitorCog = MonitorCog;\nexports.LucideMonitorDot = MonitorDot;\nexports.LucideMonitorDown = MonitorDown;\nexports.LucideMonitorOff = MonitorOff;\nexports.LucideMonitorPause = MonitorPause;\nexports.LucideMonitorPlay = MonitorPlay;\nexports.LucideMonitorSmartphone = MonitorSmartphone;\nexports.LucideMonitorSpeaker = MonitorSpeaker;\nexports.LucideMonitorStop = MonitorStop;\nexports.LucideMonitorUp = MonitorUp;\nexports.LucideMonitorX = MonitorX;\nexports.LucideMoon = Moon;\nexports.LucideMoonStar = MoonStar;\nexports.LucideMoreHorizontal = Ellipsis;\nexports.LucideMoreVertical = EllipsisVertical;\nexports.LucideMountain = Mountain;\nexports.LucideMountainSnow = MountainSnow;\nexports.LucideMouse = Mouse;\nexports.LucideMouseOff = MouseOff;\nexports.LucideMousePointer = MousePointer;\nexports.LucideMousePointer2 = MousePointer2;\nexports.LucideMousePointerBan = MousePointerBan;\nexports.LucideMousePointerClick = MousePointerClick;\nexports.LucideMousePointerSquareDashed = SquareDashedMousePointer;\nexports.LucideMove = Move;\nexports.LucideMove3D = Move3d;\nexports.LucideMove3d = Move3d;\nexports.LucideMoveDiagonal = MoveDiagonal;\nexports.LucideMoveDiagonal2 = MoveDiagonal2;\nexports.LucideMoveDown = MoveDown;\nexports.LucideMoveDownLeft = MoveDownLeft;\nexports.LucideMoveDownRight = MoveDownRight;\nexports.LucideMoveHorizontal = MoveHorizontal;\nexports.LucideMoveLeft = MoveLeft;\nexports.LucideMoveRight = MoveRight;\nexports.LucideMoveUp = MoveUp;\nexports.LucideMoveUpLeft = MoveUpLeft;\nexports.LucideMoveUpRight = MoveUpRight;\nexports.LucideMoveVertical = MoveVertical;\nexports.LucideMusic = Music;\nexports.LucideMusic2 = Music2;\nexports.LucideMusic3 = Music3;\nexports.LucideMusic4 = Music4;\nexports.LucideNavigation = Navigation;\nexports.LucideNavigation2 = Navigation2;\nexports.LucideNavigation2Off = Navigation2Off;\nexports.LucideNavigationOff = NavigationOff;\nexports.LucideNetwork = Network;\nexports.LucideNewspaper = Newspaper;\nexports.LucideNfc = Nfc;\nexports.LucideNonBinary = NonBinary;\nexports.LucideNotebook = Notebook;\nexports.LucideNotebookPen = NotebookPen;\nexports.LucideNotebookTabs = NotebookTabs;\nexports.LucideNotebookText = NotebookText;\nexports.LucideNotepadText = NotepadText;\nexports.LucideNotepadTextDashed = NotepadTextDashed;\nexports.LucideNut = Nut;\nexports.LucideNutOff = NutOff;\nexports.LucideOctagon = Octagon;\nexports.LucideOctagonAlert = OctagonAlert;\nexports.LucideOctagonMinus = OctagonMinus;\nexports.LucideOctagonPause = OctagonPause;\nexports.LucideOctagonX = OctagonX;\nexports.LucideOmega = Omega;\nexports.LucideOption = Option;\nexports.LucideOrbit = Orbit;\nexports.LucideOrigami = Origami;\nexports.LucideOutdent = IndentDecrease;\nexports.LucidePackage = Package;\nexports.LucidePackage2 = Package2;\nexports.LucidePackageCheck = PackageCheck;\nexports.LucidePackageMinus = PackageMinus;\nexports.LucidePackageOpen = PackageOpen;\nexports.LucidePackagePlus = PackagePlus;\nexports.LucidePackageSearch = PackageSearch;\nexports.LucidePackageX = PackageX;\nexports.LucidePaintBucket = PaintBucket;\nexports.LucidePaintRoller = PaintRoller;\nexports.LucidePaintbrush = Paintbrush;\nexports.LucidePaintbrush2 = PaintbrushVertical;\nexports.LucidePaintbrushVertical = PaintbrushVertical;\nexports.LucidePalette = Palette;\nexports.LucidePalmtree = TreePalm;\nexports.LucidePanda = Panda;\nexports.LucidePanelBottom = PanelBottom;\nexports.LucidePanelBottomClose = PanelBottomClose;\nexports.LucidePanelBottomDashed = PanelBottomDashed;\nexports.LucidePanelBottomInactive = PanelBottomDashed;\nexports.LucidePanelBottomOpen = PanelBottomOpen;\nexports.LucidePanelLeft = PanelLeft;\nexports.LucidePanelLeftClose = PanelLeftClose;\nexports.LucidePanelLeftDashed = PanelLeftDashed;\nexports.LucidePanelLeftInactive = PanelLeftDashed;\nexports.LucidePanelLeftOpen = PanelLeftOpen;\nexports.LucidePanelRight = PanelRight;\nexports.LucidePanelRightClose = PanelRightClose;\nexports.LucidePanelRightDashed = PanelRightDashed;\nexports.LucidePanelRightInactive = PanelRightDashed;\nexports.LucidePanelRightOpen = PanelRightOpen;\nexports.LucidePanelTop = PanelTop;\nexports.LucidePanelTopClose = PanelTopClose;\nexports.LucidePanelTopDashed = PanelTopDashed;\nexports.LucidePanelTopInactive = PanelTopDashed;\nexports.LucidePanelTopOpen = PanelTopOpen;\nexports.LucidePanelsLeftBottom = PanelsLeftBottom;\nexports.LucidePanelsLeftRight = Columns3;\nexports.LucidePanelsRightBottom = PanelsRightBottom;\nexports.LucidePanelsTopBottom = Rows3;\nexports.LucidePanelsTopLeft = PanelsTopLeft;\nexports.LucidePaperclip = Paperclip;\nexports.LucideParentheses = Parentheses;\nexports.LucideParkingCircle = CircleParking;\nexports.LucideParkingCircleOff = CircleParkingOff;\nexports.LucideParkingMeter = ParkingMeter;\nexports.LucideParkingSquare = SquareParking;\nexports.LucideParkingSquareOff = SquareParkingOff;\nexports.LucidePartyPopper = PartyPopper;\nexports.LucidePause = Pause;\nexports.LucidePauseCircle = CirclePause;\nexports.LucidePauseOctagon = OctagonPause;\nexports.LucidePawPrint = PawPrint;\nexports.LucidePcCase = PcCase;\nexports.LucidePen = Pen;\nexports.LucidePenBox = SquarePen;\nexports.LucidePenLine = PenLine;\nexports.LucidePenOff = PenOff;\nexports.LucidePenSquare = SquarePen;\nexports.LucidePenTool = PenTool;\nexports.LucidePencil = Pencil;\nexports.LucidePencilLine = PencilLine;\nexports.LucidePencilOff = PencilOff;\nexports.LucidePencilRuler = PencilRuler;\nexports.LucidePentagon = Pentagon;\nexports.LucidePercent = Percent;\nexports.LucidePercentCircle = CirclePercent;\nexports.LucidePercentDiamond = DiamondPercent;\nexports.LucidePercentSquare = SquarePercent;\nexports.LucidePersonStanding = PersonStanding;\nexports.LucidePhilippinePeso = PhilippinePeso;\nexports.LucidePhone = Phone;\nexports.LucidePhoneCall = PhoneCall;\nexports.LucidePhoneForwarded = PhoneForwarded;\nexports.LucidePhoneIncoming = PhoneIncoming;\nexports.LucidePhoneMissed = PhoneMissed;\nexports.LucidePhoneOff = PhoneOff;\nexports.LucidePhoneOutgoing = PhoneOutgoing;\nexports.LucidePi = Pi;\nexports.LucidePiSquare = SquarePi;\nexports.LucidePiano = Piano;\nexports.LucidePickaxe = Pickaxe;\nexports.LucidePictureInPicture = PictureInPicture;\nexports.LucidePictureInPicture2 = PictureInPicture2;\nexports.LucidePieChart = ChartPie;\nexports.LucidePiggyBank = PiggyBank;\nexports.LucidePilcrow = Pilcrow;\nexports.LucidePilcrowLeft = PilcrowLeft;\nexports.LucidePilcrowRight = PilcrowRight;\nexports.LucidePilcrowSquare = SquarePilcrow;\nexports.LucidePill = Pill;\nexports.LucidePillBottle = PillBottle;\nexports.LucidePin = Pin;\nexports.LucidePinOff = PinOff;\nexports.LucidePipette = Pipette;\nexports.LucidePizza = Pizza;\nexports.LucidePlane = Plane;\nexports.LucidePlaneLanding = PlaneLanding;\nexports.LucidePlaneTakeoff = PlaneTakeoff;\nexports.LucidePlay = Play;\nexports.LucidePlayCircle = CirclePlay;\nexports.LucidePlaySquare = SquarePlay;\nexports.LucidePlug = Plug;\nexports.LucidePlug2 = Plug2;\nexports.LucidePlugZap = PlugZap;\nexports.LucidePlugZap2 = PlugZap;\nexports.LucidePlus = Plus;\nexports.LucidePlusCircle = CirclePlus;\nexports.LucidePlusSquare = SquarePlus;\nexports.LucidePocket = Pocket;\nexports.LucidePocketKnife = PocketKnife;\nexports.LucidePodcast = Podcast;\nexports.LucidePointer = Pointer;\nexports.LucidePointerOff = PointerOff;\nexports.LucidePopcorn = Popcorn;\nexports.LucidePopsicle = Popsicle;\nexports.LucidePoundSterling = PoundSterling;\nexports.LucidePower = Power;\nexports.LucidePowerCircle = CirclePower;\nexports.LucidePowerOff = PowerOff;\nexports.LucidePowerSquare = SquarePower;\nexports.LucidePresentation = Presentation;\nexports.LucidePrinter = Printer;\nexports.LucidePrinterCheck = PrinterCheck;\nexports.LucideProjector = Projector;\nexports.LucideProportions = Proportions;\nexports.LucidePuzzle = Puzzle;\nexports.LucidePyramid = Pyramid;\nexports.LucideQrCode = QrCode;\nexports.LucideQuote = Quote;\nexports.LucideRabbit = Rabbit;\nexports.LucideRadar = Radar;\nexports.LucideRadiation = Radiation;\nexports.LucideRadical = Radical;\nexports.LucideRadio = Radio;\nexports.LucideRadioReceiver = RadioReceiver;\nexports.LucideRadioTower = RadioTower;\nexports.LucideRadius = Radius;\nexports.LucideRailSymbol = RailSymbol;\nexports.LucideRainbow = Rainbow;\nexports.LucideRat = Rat;\nexports.LucideRatio = Ratio;\nexports.LucideReceipt = Receipt;\nexports.LucideReceiptCent = ReceiptCent;\nexports.LucideReceiptEuro = ReceiptEuro;\nexports.LucideReceiptIndianRupee = ReceiptIndianRupee;\nexports.LucideReceiptJapaneseYen = ReceiptJapaneseYen;\nexports.LucideReceiptPoundSterling = ReceiptPoundSterling;\nexports.LucideReceiptRussianRuble = ReceiptRussianRuble;\nexports.LucideReceiptSwissFranc = ReceiptSwissFranc;\nexports.LucideReceiptText = ReceiptText;\nexports.LucideRectangleCircle = RectangleCircle;\nexports.LucideRectangleEllipsis = RectangleEllipsis;\nexports.LucideRectangleGoggles = RectangleGoggles;\nexports.LucideRectangleHorizontal = RectangleHorizontal;\nexports.LucideRectangleVertical = RectangleVertical;\nexports.LucideRecycle = Recycle;\nexports.LucideRedo = Redo;\nexports.LucideRedo2 = Redo2;\nexports.LucideRedoDot = RedoDot;\nexports.LucideRefreshCcw = RefreshCcw;\nexports.LucideRefreshCcwDot = RefreshCcwDot;\nexports.LucideRefreshCw = RefreshCw;\nexports.LucideRefreshCwOff = RefreshCwOff;\nexports.LucideRefrigerator = Refrigerator;\nexports.LucideRegex = Regex;\nexports.LucideRemoveFormatting = RemoveFormatting;\nexports.LucideRepeat = Repeat;\nexports.LucideRepeat1 = Repeat1;\nexports.LucideRepeat2 = Repeat2;\nexports.LucideReplace = Replace;\nexports.LucideReplaceAll = ReplaceAll;\nexports.LucideReply = Reply;\nexports.LucideReplyAll = ReplyAll;\nexports.LucideRewind = Rewind;\nexports.LucideRibbon = Ribbon;\nexports.LucideRocket = Rocket;\nexports.LucideRockingChair = RockingChair;\nexports.LucideRollerCoaster = RollerCoaster;\nexports.LucideRotate3D = Rotate3d;\nexports.LucideRotate3d = Rotate3d;\nexports.LucideRotateCcw = RotateCcw;\nexports.LucideRotateCcwKey = RotateCcwKey;\nexports.LucideRotateCcwSquare = RotateCcwSquare;\nexports.LucideRotateCw = RotateCw;\nexports.LucideRotateCwSquare = RotateCwSquare;\nexports.LucideRoute = Route;\nexports.LucideRouteOff = RouteOff;\nexports.LucideRouter = Router;\nexports.LucideRows = Rows2;\nexports.LucideRows2 = Rows2;\nexports.LucideRows3 = Rows3;\nexports.LucideRows4 = Rows4;\nexports.LucideRss = Rss;\nexports.LucideRuler = Ruler;\nexports.LucideRulerDimensionLine = RulerDimensionLine;\nexports.LucideRussianRuble = RussianRuble;\nexports.LucideSailboat = Sailboat;\nexports.LucideSalad = Salad;\nexports.LucideSandwich = Sandwich;\nexports.LucideSatellite = Satellite;\nexports.LucideSatelliteDish = SatelliteDish;\nexports.LucideSaudiRiyal = SaudiRiyal;\nexports.LucideSave = Save;\nexports.LucideSaveAll = SaveAll;\nexports.LucideSaveOff = SaveOff;\nexports.LucideScale = Scale;\nexports.LucideScale3D = Scale3d;\nexports.LucideScale3d = Scale3d;\nexports.LucideScaling = Scaling;\nexports.LucideScan = Scan;\nexports.LucideScanBarcode = ScanBarcode;\nexports.LucideScanEye = ScanEye;\nexports.LucideScanFace = ScanFace;\nexports.LucideScanHeart = ScanHeart;\nexports.LucideScanLine = ScanLine;\nexports.LucideScanQrCode = ScanQrCode;\nexports.LucideScanSearch = ScanSearch;\nexports.LucideScanText = ScanText;\nexports.LucideScatterChart = ChartScatter;\nexports.LucideSchool = School;\nexports.LucideSchool2 = University;\nexports.LucideScissors = Scissors;\nexports.LucideScissorsLineDashed = ScissorsLineDashed;\nexports.LucideScissorsSquare = SquareScissors;\nexports.LucideScissorsSquareDashedBottom = SquareBottomDashedScissors;\nexports.LucideScreenShare = ScreenShare;\nexports.LucideScreenShareOff = ScreenShareOff;\nexports.LucideScroll = Scroll;\nexports.LucideScrollText = ScrollText;\nexports.LucideSearch = Search;\nexports.LucideSearchCheck = SearchCheck;\nexports.LucideSearchCode = SearchCode;\nexports.LucideSearchSlash = SearchSlash;\nexports.LucideSearchX = SearchX;\nexports.LucideSection = Section;\nexports.LucideSend = Send;\nexports.LucideSendHorizonal = SendHorizontal;\nexports.LucideSendHorizontal = SendHorizontal;\nexports.LucideSendToBack = SendToBack;\nexports.LucideSeparatorHorizontal = SeparatorHorizontal;\nexports.LucideSeparatorVertical = SeparatorVertical;\nexports.LucideServer = Server;\nexports.LucideServerCog = ServerCog;\nexports.LucideServerCrash = ServerCrash;\nexports.LucideServerOff = ServerOff;\nexports.LucideSettings = Settings;\nexports.LucideSettings2 = Settings2;\nexports.LucideShapes = Shapes;\nexports.LucideShare = Share;\nexports.LucideShare2 = Share2;\nexports.LucideSheet = Sheet;\nexports.LucideShell = Shell;\nexports.LucideShield = Shield;\nexports.LucideShieldAlert = ShieldAlert;\nexports.LucideShieldBan = ShieldBan;\nexports.LucideShieldCheck = ShieldCheck;\nexports.LucideShieldClose = ShieldX;\nexports.LucideShieldEllipsis = ShieldEllipsis;\nexports.LucideShieldHalf = ShieldHalf;\nexports.LucideShieldMinus = ShieldMinus;\nexports.LucideShieldOff = ShieldOff;\nexports.LucideShieldPlus = ShieldPlus;\nexports.LucideShieldQuestion = ShieldQuestionMark;\nexports.LucideShieldQuestionMark = ShieldQuestionMark;\nexports.LucideShieldUser = ShieldUser;\nexports.LucideShieldX = ShieldX;\nexports.LucideShip = Ship;\nexports.LucideShipWheel = ShipWheel;\nexports.LucideShirt = Shirt;\nexports.LucideShoppingBag = ShoppingBag;\nexports.LucideShoppingBasket = ShoppingBasket;\nexports.LucideShoppingCart = ShoppingCart;\nexports.LucideShovel = Shovel;\nexports.LucideShowerHead = ShowerHead;\nexports.LucideShredder = Shredder;\nexports.LucideShrimp = Shrimp;\nexports.LucideShrink = Shrink;\nexports.LucideShrub = Shrub;\nexports.LucideShuffle = Shuffle;\nexports.LucideSidebar = PanelLeft;\nexports.LucideSidebarClose = PanelLeftClose;\nexports.LucideSidebarOpen = PanelLeftOpen;\nexports.LucideSigma = Sigma;\nexports.LucideSigmaSquare = SquareSigma;\nexports.LucideSignal = Signal;\nexports.LucideSignalHigh = SignalHigh;\nexports.LucideSignalLow = SignalLow;\nexports.LucideSignalMedium = SignalMedium;\nexports.LucideSignalZero = SignalZero;\nexports.LucideSignature = Signature;\nexports.LucideSignpost = Signpost;\nexports.LucideSignpostBig = SignpostBig;\nexports.LucideSiren = Siren;\nexports.LucideSkipBack = SkipBack;\nexports.LucideSkipForward = SkipForward;\nexports.LucideSkull = Skull;\nexports.LucideSlack = Slack;\nexports.LucideSlash = Slash;\nexports.LucideSlashSquare = SquareSlash;\nexports.LucideSlice = Slice;\nexports.LucideSliders = SlidersVertical;\nexports.LucideSlidersHorizontal = SlidersHorizontal;\nexports.LucideSlidersVertical = SlidersVertical;\nexports.LucideSmartphone = Smartphone;\nexports.LucideSmartphoneCharging = SmartphoneCharging;\nexports.LucideSmartphoneNfc = SmartphoneNfc;\nexports.LucideSmile = Smile;\nexports.LucideSmilePlus = SmilePlus;\nexports.LucideSnail = Snail;\nexports.LucideSnowflake = Snowflake;\nexports.LucideSoapDispenserDroplet = SoapDispenserDroplet;\nexports.LucideSofa = Sofa;\nexports.LucideSortAsc = ArrowUpNarrowWide;\nexports.LucideSortDesc = ArrowDownWideNarrow;\nexports.LucideSoup = Soup;\nexports.LucideSpace = Space;\nexports.LucideSpade = Spade;\nexports.LucideSparkle = Sparkle;\nexports.LucideSparkles = Sparkles;\nexports.LucideSpeaker = Speaker;\nexports.LucideSpeech = Speech;\nexports.LucideSpellCheck = SpellCheck;\nexports.LucideSpellCheck2 = SpellCheck2;\nexports.LucideSpline = Spline;\nexports.LucideSplinePointer = SplinePointer;\nexports.LucideSplit = Split;\nexports.LucideSplitSquareHorizontal = SquareSplitHorizontal;\nexports.LucideSplitSquareVertical = SquareSplitVertical;\nexports.LucideSpool = Spool;\nexports.LucideSprayCan = SprayCan;\nexports.LucideSprout = Sprout;\nexports.LucideSquare = Square;\nexports.LucideSquareActivity = SquareActivity;\nexports.LucideSquareArrowDown = SquareArrowDown;\nexports.LucideSquareArrowDownLeft = SquareArrowDownLeft;\nexports.LucideSquareArrowDownRight = SquareArrowDownRight;\nexports.LucideSquareArrowLeft = SquareArrowLeft;\nexports.LucideSquareArrowOutDownLeft = SquareArrowOutDownLeft;\nexports.LucideSquareArrowOutDownRight = SquareArrowOutDownRight;\nexports.LucideSquareArrowOutUpLeft = SquareArrowOutUpLeft;\nexports.LucideSquareArrowOutUpRight = SquareArrowOutUpRight;\nexports.LucideSquareArrowRight = SquareArrowRight;\nexports.LucideSquareArrowUp = SquareArrowUp;\nexports.LucideSquareArrowUpLeft = SquareArrowUpLeft;\nexports.LucideSquareArrowUpRight = SquareArrowUpRight;\nexports.LucideSquareAsterisk = SquareAsterisk;\nexports.LucideSquareBottomDashedScissors = SquareBottomDashedScissors;\nexports.LucideSquareChartGantt = SquareChartGantt;\nexports.LucideSquareCheck = SquareCheck;\nexports.LucideSquareCheckBig = SquareCheckBig;\nexports.LucideSquareChevronDown = SquareChevronDown;\nexports.LucideSquareChevronLeft = SquareChevronLeft;\nexports.LucideSquareChevronRight = SquareChevronRight;\nexports.LucideSquareChevronUp = SquareChevronUp;\nexports.LucideSquareCode = SquareCode;\nexports.LucideSquareDashed = SquareDashed;\nexports.LucideSquareDashedBottom = SquareDashedBottom;\nexports.LucideSquareDashedBottomCode = SquareDashedBottomCode;\nexports.LucideSquareDashedKanban = SquareDashedKanban;\nexports.LucideSquareDashedMousePointer = SquareDashedMousePointer;\nexports.LucideSquareDashedTopSolid = SquareDashedTopSolid;\nexports.LucideSquareDivide = SquareDivide;\nexports.LucideSquareDot = SquareDot;\nexports.LucideSquareEqual = SquareEqual;\nexports.LucideSquareFunction = SquareFunction;\nexports.LucideSquareGanttChart = SquareChartGantt;\nexports.LucideSquareKanban = SquareKanban;\nexports.LucideSquareLibrary = SquareLibrary;\nexports.LucideSquareM = SquareM;\nexports.LucideSquareMenu = SquareMenu;\nexports.LucideSquareMinus = SquareMinus;\nexports.LucideSquareMousePointer = SquareMousePointer;\nexports.LucideSquareParking = SquareParking;\nexports.LucideSquareParkingOff = SquareParkingOff;\nexports.LucideSquarePen = SquarePen;\nexports.LucideSquarePercent = SquarePercent;\nexports.LucideSquarePi = SquarePi;\nexports.LucideSquarePilcrow = SquarePilcrow;\nexports.LucideSquarePlay = SquarePlay;\nexports.LucideSquarePlus = SquarePlus;\nexports.LucideSquarePower = SquarePower;\nexports.LucideSquareRadical = SquareRadical;\nexports.LucideSquareRoundCorner = SquareRoundCorner;\nexports.LucideSquareScissors = SquareScissors;\nexports.LucideSquareSigma = SquareSigma;\nexports.LucideSquareSlash = SquareSlash;\nexports.LucideSquareSplitHorizontal = SquareSplitHorizontal;\nexports.LucideSquareSplitVertical = SquareSplitVertical;\nexports.LucideSquareSquare = SquareSquare;\nexports.LucideSquareStack = SquareStack;\nexports.LucideSquareTerminal = SquareTerminal;\nexports.LucideSquareUser = SquareUser;\nexports.LucideSquareUserRound = SquareUserRound;\nexports.LucideSquareX = SquareX;\nexports.LucideSquaresExclude = SquaresExclude;\nexports.LucideSquaresIntersect = SquaresIntersect;\nexports.LucideSquaresSubtract = SquaresSubtract;\nexports.LucideSquaresUnite = SquaresUnite;\nexports.LucideSquircle = Squircle;\nexports.LucideSquircleDashed = SquircleDashed;\nexports.LucideSquirrel = Squirrel;\nexports.LucideStamp = Stamp;\nexports.LucideStar = Star;\nexports.LucideStarHalf = StarHalf;\nexports.LucideStarOff = StarOff;\nexports.LucideStars = Sparkles;\nexports.LucideStepBack = StepBack;\nexports.LucideStepForward = StepForward;\nexports.LucideStethoscope = Stethoscope;\nexports.LucideSticker = Sticker;\nexports.LucideStickyNote = StickyNote;\nexports.LucideStopCircle = CircleStop;\nexports.LucideStore = Store;\nexports.LucideStretchHorizontal = StretchHorizontal;\nexports.LucideStretchVertical = StretchVertical;\nexports.LucideStrikethrough = Strikethrough;\nexports.LucideSubscript = Subscript;\nexports.LucideSubtitles = Captions;\nexports.LucideSun = Sun;\nexports.LucideSunDim = SunDim;\nexports.LucideSunMedium = SunMedium;\nexports.LucideSunMoon = SunMoon;\nexports.LucideSunSnow = SunSnow;\nexports.LucideSunrise = Sunrise;\nexports.LucideSunset = Sunset;\nexports.LucideSuperscript = Superscript;\nexports.LucideSwatchBook = SwatchBook;\nexports.LucideSwissFranc = SwissFranc;\nexports.LucideSwitchCamera = SwitchCamera;\nexports.LucideSword = Sword;\nexports.LucideSwords = Swords;\nexports.LucideSyringe = Syringe;\nexports.LucideTable = Table;\nexports.LucideTable2 = Table2;\nexports.LucideTableCellsMerge = TableCellsMerge;\nexports.LucideTableCellsSplit = TableCellsSplit;\nexports.LucideTableColumnsSplit = TableColumnsSplit;\nexports.LucideTableConfig = Columns3Cog;\nexports.LucideTableOfContents = TableOfContents;\nexports.LucideTableProperties = TableProperties;\nexports.LucideTableRowsSplit = TableRowsSplit;\nexports.LucideTablet = Tablet;\nexports.LucideTabletSmartphone = TabletSmartphone;\nexports.LucideTablets = Tablets;\nexports.LucideTag = Tag;\nexports.LucideTags = Tags;\nexports.LucideTally1 = Tally1;\nexports.LucideTally2 = Tally2;\nexports.LucideTally3 = Tally3;\nexports.LucideTally4 = Tally4;\nexports.LucideTally5 = Tally5;\nexports.LucideTangent = Tangent;\nexports.LucideTarget = Target;\nexports.LucideTelescope = Telescope;\nexports.LucideTent = Tent;\nexports.LucideTentTree = TentTree;\nexports.LucideTerminal = Terminal;\nexports.LucideTerminalSquare = SquareTerminal;\nexports.LucideTestTube = TestTube;\nexports.LucideTestTube2 = TestTubeDiagonal;\nexports.LucideTestTubeDiagonal = TestTubeDiagonal;\nexports.LucideTestTubes = TestTubes;\nexports.LucideText = Text;\nexports.LucideTextCursor = TextCursor;\nexports.LucideTextCursorInput = TextCursorInput;\nexports.LucideTextQuote = TextQuote;\nexports.LucideTextSearch = TextSearch;\nexports.LucideTextSelect = TextSelect;\nexports.LucideTextSelection = TextSelect;\nexports.LucideTheater = Theater;\nexports.LucideThermometer = Thermometer;\nexports.LucideThermometerSnowflake = ThermometerSnowflake;\nexports.LucideThermometerSun = ThermometerSun;\nexports.LucideThumbsDown = ThumbsDown;\nexports.LucideThumbsUp = ThumbsUp;\nexports.LucideTicket = Ticket;\nexports.LucideTicketCheck = TicketCheck;\nexports.LucideTicketMinus = TicketMinus;\nexports.LucideTicketPercent = TicketPercent;\nexports.LucideTicketPlus = TicketPlus;\nexports.LucideTicketSlash = TicketSlash;\nexports.LucideTicketX = TicketX;\nexports.LucideTickets = Tickets;\nexports.LucideTicketsPlane = TicketsPlane;\nexports.LucideTimer = Timer;\nexports.LucideTimerOff = TimerOff;\nexports.LucideTimerReset = TimerReset;\nexports.LucideToggleLeft = ToggleLeft;\nexports.LucideToggleRight = ToggleRight;\nexports.LucideToilet = Toilet;\nexports.LucideToolCase = ToolCase;\nexports.LucideTornado = Tornado;\nexports.LucideTorus = Torus;\nexports.LucideTouchpad = Touchpad;\nexports.LucideTouchpadOff = TouchpadOff;\nexports.LucideTowerControl = TowerControl;\nexports.LucideToyBrick = ToyBrick;\nexports.LucideTractor = Tractor;\nexports.LucideTrafficCone = TrafficCone;\nexports.LucideTrain = TramFront;\nexports.LucideTrainFront = TrainFront;\nexports.LucideTrainFrontTunnel = TrainFrontTunnel;\nexports.LucideTrainTrack = TrainTrack;\nexports.LucideTramFront = TramFront;\nexports.LucideTransgender = Transgender;\nexports.LucideTrash = Trash;\nexports.LucideTrash2 = Trash2;\nexports.LucideTreeDeciduous = TreeDeciduous;\nexports.LucideTreePalm = TreePalm;\nexports.LucideTreePine = TreePine;\nexports.LucideTrees = Trees;\nexports.LucideTrello = Trello;\nexports.LucideTrendingDown = TrendingDown;\nexports.LucideTrendingUp = TrendingUp;\nexports.LucideTrendingUpDown = TrendingUpDown;\nexports.LucideTriangle = Triangle;\nexports.LucideTriangleAlert = TriangleAlert;\nexports.LucideTriangleDashed = TriangleDashed;\nexports.LucideTriangleRight = TriangleRight;\nexports.LucideTrophy = Trophy;\nexports.LucideTruck = Truck;\nexports.LucideTruckElectric = TruckElectric;\nexports.LucideTurtle = Turtle;\nexports.LucideTv = Tv;\nexports.LucideTv2 = TvMinimal;\nexports.LucideTvMinimal = TvMinimal;\nexports.LucideTvMinimalPlay = TvMinimalPlay;\nexports.LucideTwitch = Twitch;\nexports.LucideTwitter = Twitter;\nexports.LucideType = Type;\nexports.LucideTypeOutline = TypeOutline;\nexports.LucideUmbrella = Umbrella;\nexports.LucideUmbrellaOff = UmbrellaOff;\nexports.LucideUnderline = Underline;\nexports.LucideUndo = Undo;\nexports.LucideUndo2 = Undo2;\nexports.LucideUndoDot = UndoDot;\nexports.LucideUnfoldHorizontal = UnfoldHorizontal;\nexports.LucideUnfoldVertical = UnfoldVertical;\nexports.LucideUngroup = Ungroup;\nexports.LucideUniversity = University;\nexports.LucideUnlink = Unlink;\nexports.LucideUnlink2 = Unlink2;\nexports.LucideUnlock = LockOpen;\nexports.LucideUnlockKeyhole = LockKeyholeOpen;\nexports.LucideUnplug = Unplug;\nexports.LucideUpload = Upload;\nexports.LucideUploadCloud = CloudUpload;\nexports.LucideUsb = Usb;\nexports.LucideUser = User;\nexports.LucideUser2 = UserRound;\nexports.LucideUserCheck = UserCheck;\nexports.LucideUserCheck2 = UserRoundCheck;\nexports.LucideUserCircle = CircleUser;\nexports.LucideUserCircle2 = CircleUserRound;\nexports.LucideUserCog = UserCog;\nexports.LucideUserCog2 = UserRoundCog;\nexports.LucideUserLock = UserLock;\nexports.LucideUserMinus = UserMinus;\nexports.LucideUserMinus2 = UserRoundMinus;\nexports.LucideUserPen = UserPen;\nexports.LucideUserPlus = UserPlus;\nexports.LucideUserPlus2 = UserRoundPlus;\nexports.LucideUserRound = UserRound;\nexports.LucideUserRoundCheck = UserRoundCheck;\nexports.LucideUserRoundCog = UserRoundCog;\nexports.LucideUserRoundMinus = UserRoundMinus;\nexports.LucideUserRoundPen = UserRoundPen;\nexports.LucideUserRoundPlus = UserRoundPlus;\nexports.LucideUserRoundSearch = UserRoundSearch;\nexports.LucideUserRoundX = UserRoundX;\nexports.LucideUserSearch = UserSearch;\nexports.LucideUserSquare = SquareUser;\nexports.LucideUserSquare2 = SquareUserRound;\nexports.LucideUserX = UserX;\nexports.LucideUserX2 = UserRoundX;\nexports.LucideUsers = Users;\nexports.LucideUsers2 = UsersRound;\nexports.LucideUsersRound = UsersRound;\nexports.LucideUtensils = Utensils;\nexports.LucideUtensilsCrossed = UtensilsCrossed;\nexports.LucideUtilityPole = UtilityPole;\nexports.LucideVariable = Variable;\nexports.LucideVault = Vault;\nexports.LucideVectorSquare = VectorSquare;\nexports.LucideVegan = Vegan;\nexports.LucideVenetianMask = VenetianMask;\nexports.LucideVenus = Venus;\nexports.LucideVenusAndMars = VenusAndMars;\nexports.LucideVerified = BadgeCheck;\nexports.LucideVibrate = Vibrate;\nexports.LucideVibrateOff = VibrateOff;\nexports.LucideVideo = Video;\nexports.LucideVideoOff = VideoOff;\nexports.LucideVideotape = Videotape;\nexports.LucideView = View;\nexports.LucideVoicemail = Voicemail;\nexports.LucideVolleyball = Volleyball;\nexports.LucideVolume = Volume;\nexports.LucideVolume1 = Volume1;\nexports.LucideVolume2 = Volume2;\nexports.LucideVolumeOff = VolumeOff;\nexports.LucideVolumeX = VolumeX;\nexports.LucideVote = Vote;\nexports.LucideWallet = Wallet;\nexports.LucideWallet2 = WalletMinimal;\nexports.LucideWalletCards = WalletCards;\nexports.LucideWalletMinimal = WalletMinimal;\nexports.LucideWallpaper = Wallpaper;\nexports.LucideWand = Wand;\nexports.LucideWand2 = WandSparkles;\nexports.LucideWandSparkles = WandSparkles;\nexports.LucideWarehouse = Warehouse;\nexports.LucideWashingMachine = WashingMachine;\nexports.LucideWatch = Watch;\nexports.LucideWaves = Waves;\nexports.LucideWavesLadder = WavesLadder;\nexports.LucideWaypoints = Waypoints;\nexports.LucideWebcam = Webcam;\nexports.LucideWebhook = Webhook;\nexports.LucideWebhookOff = WebhookOff;\nexports.LucideWeight = Weight;\nexports.LucideWheat = Wheat;\nexports.LucideWheatOff = WheatOff;\nexports.LucideWholeWord = WholeWord;\nexports.LucideWifi = Wifi;\nexports.LucideWifiCog = WifiCog;\nexports.LucideWifiHigh = WifiHigh;\nexports.LucideWifiLow = WifiLow;\nexports.LucideWifiOff = WifiOff;\nexports.LucideWifiPen = WifiPen;\nexports.LucideWifiZero = WifiZero;\nexports.LucideWind = Wind;\nexports.LucideWindArrowDown = WindArrowDown;\nexports.LucideWine = Wine;\nexports.LucideWineOff = WineOff;\nexports.LucideWorkflow = Workflow;\nexports.LucideWorm = Worm;\nexports.LucideWrapText = WrapText;\nexports.LucideWrench = Wrench;\nexports.LucideX = X;\nexports.LucideXCircle = CircleX;\nexports.LucideXOctagon = OctagonX;\nexports.LucideXSquare = SquareX;\nexports.LucideYoutube = Youtube;\nexports.LucideZap = Zap;\nexports.LucideZapOff = ZapOff;\nexports.LucideZoomIn = ZoomIn;\nexports.LucideZoomOut = ZoomOut;\nexports.Luggage = Luggage;\nexports.LuggageIcon = Luggage;\nexports.MSquare = SquareM;\nexports.MSquareIcon = SquareM;\nexports.Magnet = Magnet;\nexports.MagnetIcon = Magnet;\nexports.Mail = Mail;\nexports.MailCheck = MailCheck;\nexports.MailCheckIcon = MailCheck;\nexports.MailIcon = Mail;\nexports.MailMinus = MailMinus;\nexports.MailMinusIcon = MailMinus;\nexports.MailOpen = MailOpen;\nexports.MailOpenIcon = MailOpen;\nexports.MailPlus = MailPlus;\nexports.MailPlusIcon = MailPlus;\nexports.MailQuestion = MailQuestionMark;\nexports.MailQuestionIcon = MailQuestionMark;\nexports.MailQuestionMark = MailQuestionMark;\nexports.MailQuestionMarkIcon = MailQuestionMark;\nexports.MailSearch = MailSearch;\nexports.MailSearchIcon = MailSearch;\nexports.MailWarning = MailWarning;\nexports.MailWarningIcon = MailWarning;\nexports.MailX = MailX;\nexports.MailXIcon = MailX;\nexports.Mailbox = Mailbox;\nexports.MailboxIcon = Mailbox;\nexports.Mails = Mails;\nexports.MailsIcon = Mails;\nexports.Map = Map;\nexports.MapIcon = Map;\nexports.MapPin = MapPin;\nexports.MapPinCheck = MapPinCheck;\nexports.MapPinCheckIcon = MapPinCheck;\nexports.MapPinCheckInside = MapPinCheckInside;\nexports.MapPinCheckInsideIcon = MapPinCheckInside;\nexports.MapPinHouse = MapPinHouse;\nexports.MapPinHouseIcon = MapPinHouse;\nexports.MapPinIcon = MapPin;\nexports.MapPinMinus = MapPinMinus;\nexports.MapPinMinusIcon = MapPinMinus;\nexports.MapPinMinusInside = MapPinMinusInside;\nexports.MapPinMinusInsideIcon = MapPinMinusInside;\nexports.MapPinOff = MapPinOff;\nexports.MapPinOffIcon = MapPinOff;\nexports.MapPinPlus = MapPinPlus;\nexports.MapPinPlusIcon = MapPinPlus;\nexports.MapPinPlusInside = MapPinPlusInside;\nexports.MapPinPlusInsideIcon = MapPinPlusInside;\nexports.MapPinX = MapPinX;\nexports.MapPinXIcon = MapPinX;\nexports.MapPinXInside = MapPinXInside;\nexports.MapPinXInsideIcon = MapPinXInside;\nexports.MapPinned = MapPinned;\nexports.MapPinnedIcon = MapPinned;\nexports.MapPlus = MapPlus;\nexports.MapPlusIcon = MapPlus;\nexports.Mars = Mars;\nexports.MarsIcon = Mars;\nexports.MarsStroke = MarsStroke;\nexports.MarsStrokeIcon = MarsStroke;\nexports.Martini = Martini;\nexports.MartiniIcon = Martini;\nexports.Maximize = Maximize;\nexports.Maximize2 = Maximize2;\nexports.Maximize2Icon = Maximize2;\nexports.MaximizeIcon = Maximize;\nexports.Medal = Medal;\nexports.MedalIcon = Medal;\nexports.Megaphone = Megaphone;\nexports.MegaphoneIcon = Megaphone;\nexports.MegaphoneOff = MegaphoneOff;\nexports.MegaphoneOffIcon = MegaphoneOff;\nexports.Meh = Meh;\nexports.MehIcon = Meh;\nexports.MemoryStick = MemoryStick;\nexports.MemoryStickIcon = MemoryStick;\nexports.Menu = Menu;\nexports.MenuIcon = Menu;\nexports.MenuSquare = SquareMenu;\nexports.MenuSquareIcon = SquareMenu;\nexports.Merge = Merge;\nexports.MergeIcon = Merge;\nexports.MessageCircle = MessageCircle;\nexports.MessageCircleCode = MessageCircleCode;\nexports.MessageCircleCodeIcon = MessageCircleCode;\nexports.MessageCircleDashed = MessageCircleDashed;\nexports.MessageCircleDashedIcon = MessageCircleDashed;\nexports.MessageCircleHeart = MessageCircleHeart;\nexports.MessageCircleHeartIcon = MessageCircleHeart;\nexports.MessageCircleIcon = MessageCircle;\nexports.MessageCircleMore = MessageCircleMore;\nexports.MessageCircleMoreIcon = MessageCircleMore;\nexports.MessageCircleOff = MessageCircleOff;\nexports.MessageCircleOffIcon = MessageCircleOff;\nexports.MessageCirclePlus = MessageCirclePlus;\nexports.MessageCirclePlusIcon = MessageCirclePlus;\nexports.MessageCircleQuestion = MessageCircleQuestionMark;\nexports.MessageCircleQuestionIcon = MessageCircleQuestionMark;\nexports.MessageCircleQuestionMark = MessageCircleQuestionMark;\nexports.MessageCircleQuestionMarkIcon = MessageCircleQuestionMark;\nexports.MessageCircleReply = MessageCircleReply;\nexports.MessageCircleReplyIcon = MessageCircleReply;\nexports.MessageCircleWarning = MessageCircleWarning;\nexports.MessageCircleWarningIcon = MessageCircleWarning;\nexports.MessageCircleX = MessageCircleX;\nexports.MessageCircleXIcon = MessageCircleX;\nexports.MessageSquare = MessageSquare;\nexports.MessageSquareCode = MessageSquareCode;\nexports.MessageSquareCodeIcon = MessageSquareCode;\nexports.MessageSquareDashed = MessageSquareDashed;\nexports.MessageSquareDashedIcon = MessageSquareDashed;\nexports.MessageSquareDiff = MessageSquareDiff;\nexports.MessageSquareDiffIcon = MessageSquareDiff;\nexports.MessageSquareDot = MessageSquareDot;\nexports.MessageSquareDotIcon = MessageSquareDot;\nexports.MessageSquareHeart = MessageSquareHeart;\nexports.MessageSquareHeartIcon = MessageSquareHeart;\nexports.MessageSquareIcon = MessageSquare;\nexports.MessageSquareLock = MessageSquareLock;\nexports.MessageSquareLockIcon = MessageSquareLock;\nexports.MessageSquareMore = MessageSquareMore;\nexports.MessageSquareMoreIcon = MessageSquareMore;\nexports.MessageSquareOff = MessageSquareOff;\nexports.MessageSquareOffIcon = MessageSquareOff;\nexports.MessageSquarePlus = MessageSquarePlus;\nexports.MessageSquarePlusIcon = MessageSquarePlus;\nexports.MessageSquareQuote = MessageSquareQuote;\nexports.MessageSquareQuoteIcon = MessageSquareQuote;\nexports.MessageSquareReply = MessageSquareReply;\nexports.MessageSquareReplyIcon = MessageSquareReply;\nexports.MessageSquareShare = MessageSquareShare;\nexports.MessageSquareShareIcon = MessageSquareShare;\nexports.MessageSquareText = MessageSquareText;\nexports.MessageSquareTextIcon = MessageSquareText;\nexports.MessageSquareWarning = MessageSquareWarning;\nexports.MessageSquareWarningIcon = MessageSquareWarning;\nexports.MessageSquareX = MessageSquareX;\nexports.MessageSquareXIcon = MessageSquareX;\nexports.MessagesSquare = MessagesSquare;\nexports.MessagesSquareIcon = MessagesSquare;\nexports.Mic = Mic;\nexports.Mic2 = MicVocal;\nexports.Mic2Icon = MicVocal;\nexports.MicIcon = Mic;\nexports.MicOff = MicOff;\nexports.MicOffIcon = MicOff;\nexports.MicVocal = MicVocal;\nexports.MicVocalIcon = MicVocal;\nexports.Microchip = Microchip;\nexports.MicrochipIcon = Microchip;\nexports.Microscope = Microscope;\nexports.MicroscopeIcon = Microscope;\nexports.Microwave = Microwave;\nexports.MicrowaveIcon = Microwave;\nexports.Milestone = Milestone;\nexports.MilestoneIcon = Milestone;\nexports.Milk = Milk;\nexports.MilkIcon = Milk;\nexports.MilkOff = MilkOff;\nexports.MilkOffIcon = MilkOff;\nexports.Minimize = Minimize;\nexports.Minimize2 = Minimize2;\nexports.Minimize2Icon = Minimize2;\nexports.MinimizeIcon = Minimize;\nexports.Minus = Minus;\nexports.MinusCircle = CircleMinus;\nexports.MinusCircleIcon = CircleMinus;\nexports.MinusIcon = Minus;\nexports.MinusSquare = SquareMinus;\nexports.MinusSquareIcon = SquareMinus;\nexports.Monitor = Monitor;\nexports.MonitorCheck = MonitorCheck;\nexports.MonitorCheckIcon = MonitorCheck;\nexports.MonitorCog = MonitorCog;\nexports.MonitorCogIcon = MonitorCog;\nexports.MonitorDot = MonitorDot;\nexports.MonitorDotIcon = MonitorDot;\nexports.MonitorDown = MonitorDown;\nexports.MonitorDownIcon = MonitorDown;\nexports.MonitorIcon = Monitor;\nexports.MonitorOff = MonitorOff;\nexports.MonitorOffIcon = MonitorOff;\nexports.MonitorPause = MonitorPause;\nexports.MonitorPauseIcon = MonitorPause;\nexports.MonitorPlay = MonitorPlay;\nexports.MonitorPlayIcon = MonitorPlay;\nexports.MonitorSmartphone = MonitorSmartphone;\nexports.MonitorSmartphoneIcon = MonitorSmartphone;\nexports.MonitorSpeaker = MonitorSpeaker;\nexports.MonitorSpeakerIcon = MonitorSpeaker;\nexports.MonitorStop = MonitorStop;\nexports.MonitorStopIcon = MonitorStop;\nexports.MonitorUp = MonitorUp;\nexports.MonitorUpIcon = MonitorUp;\nexports.MonitorX = MonitorX;\nexports.MonitorXIcon = MonitorX;\nexports.Moon = Moon;\nexports.MoonIcon = Moon;\nexports.MoonStar = MoonStar;\nexports.MoonStarIcon = MoonStar;\nexports.MoreHorizontal = Ellipsis;\nexports.MoreHorizontalIcon = Ellipsis;\nexports.MoreVertical = EllipsisVertical;\nexports.MoreVerticalIcon = EllipsisVertical;\nexports.Mountain = Mountain;\nexports.MountainIcon = Mountain;\nexports.MountainSnow = MountainSnow;\nexports.MountainSnowIcon = MountainSnow;\nexports.Mouse = Mouse;\nexports.MouseIcon = Mouse;\nexports.MouseOff = MouseOff;\nexports.MouseOffIcon = MouseOff;\nexports.MousePointer = MousePointer;\nexports.MousePointer2 = MousePointer2;\nexports.MousePointer2Icon = MousePointer2;\nexports.MousePointerBan = MousePointerBan;\nexports.MousePointerBanIcon = MousePointerBan;\nexports.MousePointerClick = MousePointerClick;\nexports.MousePointerClickIcon = MousePointerClick;\nexports.MousePointerIcon = MousePointer;\nexports.MousePointerSquareDashed = SquareDashedMousePointer;\nexports.MousePointerSquareDashedIcon = SquareDashedMousePointer;\nexports.Move = Move;\nexports.Move3D = Move3d;\nexports.Move3DIcon = Move3d;\nexports.Move3d = Move3d;\nexports.Move3dIcon = Move3d;\nexports.MoveDiagonal = MoveDiagonal;\nexports.MoveDiagonal2 = MoveDiagonal2;\nexports.MoveDiagonal2Icon = MoveDiagonal2;\nexports.MoveDiagonalIcon = MoveDiagonal;\nexports.MoveDown = MoveDown;\nexports.MoveDownIcon = MoveDown;\nexports.MoveDownLeft = MoveDownLeft;\nexports.MoveDownLeftIcon = MoveDownLeft;\nexports.MoveDownRight = MoveDownRight;\nexports.MoveDownRightIcon = MoveDownRight;\nexports.MoveHorizontal = MoveHorizontal;\nexports.MoveHorizontalIcon = MoveHorizontal;\nexports.MoveIcon = Move;\nexports.MoveLeft = MoveLeft;\nexports.MoveLeftIcon = MoveLeft;\nexports.MoveRight = MoveRight;\nexports.MoveRightIcon = MoveRight;\nexports.MoveUp = MoveUp;\nexports.MoveUpIcon = MoveUp;\nexports.MoveUpLeft = MoveUpLeft;\nexports.MoveUpLeftIcon = MoveUpLeft;\nexports.MoveUpRight = MoveUpRight;\nexports.MoveUpRightIcon = MoveUpRight;\nexports.MoveVertical = MoveVertical;\nexports.MoveVerticalIcon = MoveVertical;\nexports.Music = Music;\nexports.Music2 = Music2;\nexports.Music2Icon = Music2;\nexports.Music3 = Music3;\nexports.Music3Icon = Music3;\nexports.Music4 = Music4;\nexports.Music4Icon = Music4;\nexports.MusicIcon = Music;\nexports.Navigation = Navigation;\nexports.Navigation2 = Navigation2;\nexports.Navigation2Icon = Navigation2;\nexports.Navigation2Off = Navigation2Off;\nexports.Navigation2OffIcon = Navigation2Off;\nexports.NavigationIcon = Navigation;\nexports.NavigationOff = NavigationOff;\nexports.NavigationOffIcon = NavigationOff;\nexports.Network = Network;\nexports.NetworkIcon = Network;\nexports.Newspaper = Newspaper;\nexports.NewspaperIcon = Newspaper;\nexports.Nfc = Nfc;\nexports.NfcIcon = Nfc;\nexports.NonBinary = NonBinary;\nexports.NonBinaryIcon = NonBinary;\nexports.Notebook = Notebook;\nexports.NotebookIcon = Notebook;\nexports.NotebookPen = NotebookPen;\nexports.NotebookPenIcon = NotebookPen;\nexports.NotebookTabs = NotebookTabs;\nexports.NotebookTabsIcon = NotebookTabs;\nexports.NotebookText = NotebookText;\nexports.NotebookTextIcon = NotebookText;\nexports.NotepadText = NotepadText;\nexports.NotepadTextDashed = NotepadTextDashed;\nexports.NotepadTextDashedIcon = NotepadTextDashed;\nexports.NotepadTextIcon = NotepadText;\nexports.Nut = Nut;\nexports.NutIcon = Nut;\nexports.NutOff = NutOff;\nexports.NutOffIcon = NutOff;\nexports.Octagon = Octagon;\nexports.OctagonAlert = OctagonAlert;\nexports.OctagonAlertIcon = OctagonAlert;\nexports.OctagonIcon = Octagon;\nexports.OctagonMinus = OctagonMinus;\nexports.OctagonMinusIcon = OctagonMinus;\nexports.OctagonPause = OctagonPause;\nexports.OctagonPauseIcon = OctagonPause;\nexports.OctagonX = OctagonX;\nexports.OctagonXIcon = OctagonX;\nexports.Omega = Omega;\nexports.OmegaIcon = Omega;\nexports.Option = Option;\nexports.OptionIcon = Option;\nexports.Orbit = Orbit;\nexports.OrbitIcon = Orbit;\nexports.Origami = Origami;\nexports.OrigamiIcon = Origami;\nexports.Outdent = IndentDecrease;\nexports.OutdentIcon = IndentDecrease;\nexports.Package = Package;\nexports.Package2 = Package2;\nexports.Package2Icon = Package2;\nexports.PackageCheck = PackageCheck;\nexports.PackageCheckIcon = PackageCheck;\nexports.PackageIcon = Package;\nexports.PackageMinus = PackageMinus;\nexports.PackageMinusIcon = PackageMinus;\nexports.PackageOpen = PackageOpen;\nexports.PackageOpenIcon = PackageOpen;\nexports.PackagePlus = PackagePlus;\nexports.PackagePlusIcon = PackagePlus;\nexports.PackageSearch = PackageSearch;\nexports.PackageSearchIcon = PackageSearch;\nexports.PackageX = PackageX;\nexports.PackageXIcon = PackageX;\nexports.PaintBucket = PaintBucket;\nexports.PaintBucketIcon = PaintBucket;\nexports.PaintRoller = PaintRoller;\nexports.PaintRollerIcon = PaintRoller;\nexports.Paintbrush = Paintbrush;\nexports.Paintbrush2 = PaintbrushVertical;\nexports.Paintbrush2Icon = PaintbrushVertical;\nexports.PaintbrushIcon = Paintbrush;\nexports.PaintbrushVertical = PaintbrushVertical;\nexports.PaintbrushVerticalIcon = PaintbrushVertical;\nexports.Palette = Palette;\nexports.PaletteIcon = Palette;\nexports.Palmtree = TreePalm;\nexports.PalmtreeIcon = TreePalm;\nexports.Panda = Panda;\nexports.PandaIcon = Panda;\nexports.PanelBottom = PanelBottom;\nexports.PanelBottomClose = PanelBottomClose;\nexports.PanelBottomCloseIcon = PanelBottomClose;\nexports.PanelBottomDashed = PanelBottomDashed;\nexports.PanelBottomDashedIcon = PanelBottomDashed;\nexports.PanelBottomIcon = PanelBottom;\nexports.PanelBottomInactive = PanelBottomDashed;\nexports.PanelBottomInactiveIcon = PanelBottomDashed;\nexports.PanelBottomOpen = PanelBottomOpen;\nexports.PanelBottomOpenIcon = PanelBottomOpen;\nexports.PanelLeft = PanelLeft;\nexports.PanelLeftClose = PanelLeftClose;\nexports.PanelLeftCloseIcon = PanelLeftClose;\nexports.PanelLeftDashed = PanelLeftDashed;\nexports.PanelLeftDashedIcon = PanelLeftDashed;\nexports.PanelLeftIcon = PanelLeft;\nexports.PanelLeftInactive = PanelLeftDashed;\nexports.PanelLeftInactiveIcon = PanelLeftDashed;\nexports.PanelLeftOpen = PanelLeftOpen;\nexports.PanelLeftOpenIcon = PanelLeftOpen;\nexports.PanelRight = PanelRight;\nexports.PanelRightClose = PanelRightClose;\nexports.PanelRightCloseIcon = PanelRightClose;\nexports.PanelRightDashed = PanelRightDashed;\nexports.PanelRightDashedIcon = PanelRightDashed;\nexports.PanelRightIcon = PanelRight;\nexports.PanelRightInactive = PanelRightDashed;\nexports.PanelRightInactiveIcon = PanelRightDashed;\nexports.PanelRightOpen = PanelRightOpen;\nexports.PanelRightOpenIcon = PanelRightOpen;\nexports.PanelTop = PanelTop;\nexports.PanelTopClose = PanelTopClose;\nexports.PanelTopCloseIcon = PanelTopClose;\nexports.PanelTopDashed = PanelTopDashed;\nexports.PanelTopDashedIcon = PanelTopDashed;\nexports.PanelTopIcon = PanelTop;\nexports.PanelTopInactive = PanelTopDashed;\nexports.PanelTopInactiveIcon = PanelTopDashed;\nexports.PanelTopOpen = PanelTopOpen;\nexports.PanelTopOpenIcon = PanelTopOpen;\nexports.PanelsLeftBottom = PanelsLeftBottom;\nexports.PanelsLeftBottomIcon = PanelsLeftBottom;\nexports.PanelsLeftRight = Columns3;\nexports.PanelsLeftRightIcon = Columns3;\nexports.PanelsRightBottom = PanelsRightBottom;\nexports.PanelsRightBottomIcon = PanelsRightBottom;\nexports.PanelsTopBottom = Rows3;\nexports.PanelsTopBottomIcon = Rows3;\nexports.PanelsTopLeft = PanelsTopLeft;\nexports.PanelsTopLeftIcon = PanelsTopLeft;\nexports.Paperclip = Paperclip;\nexports.PaperclipIcon = Paperclip;\nexports.Parentheses = Parentheses;\nexports.ParenthesesIcon = Parentheses;\nexports.ParkingCircle = CircleParking;\nexports.ParkingCircleIcon = CircleParking;\nexports.ParkingCircleOff = CircleParkingOff;\nexports.ParkingCircleOffIcon = CircleParkingOff;\nexports.ParkingMeter = ParkingMeter;\nexports.ParkingMeterIcon = ParkingMeter;\nexports.ParkingSquare = SquareParking;\nexports.ParkingSquareIcon = SquareParking;\nexports.ParkingSquareOff = SquareParkingOff;\nexports.ParkingSquareOffIcon = SquareParkingOff;\nexports.PartyPopper = PartyPopper;\nexports.PartyPopperIcon = PartyPopper;\nexports.Pause = Pause;\nexports.PauseCircle = CirclePause;\nexports.PauseCircleIcon = CirclePause;\nexports.PauseIcon = Pause;\nexports.PauseOctagon = OctagonPause;\nexports.PauseOctagonIcon = OctagonPause;\nexports.PawPrint = PawPrint;\nexports.PawPrintIcon = PawPrint;\nexports.PcCase = PcCase;\nexports.PcCaseIcon = PcCase;\nexports.Pen = Pen;\nexports.PenBox = SquarePen;\nexports.PenBoxIcon = SquarePen;\nexports.PenIcon = Pen;\nexports.PenLine = PenLine;\nexports.PenLineIcon = PenLine;\nexports.PenOff = PenOff;\nexports.PenOffIcon = PenOff;\nexports.PenSquare = SquarePen;\nexports.PenSquareIcon = SquarePen;\nexports.PenTool = PenTool;\nexports.PenToolIcon = PenTool;\nexports.Pencil = Pencil;\nexports.PencilIcon = Pencil;\nexports.PencilLine = PencilLine;\nexports.PencilLineIcon = PencilLine;\nexports.PencilOff = PencilOff;\nexports.PencilOffIcon = PencilOff;\nexports.PencilRuler = PencilRuler;\nexports.PencilRulerIcon = PencilRuler;\nexports.Pentagon = Pentagon;\nexports.PentagonIcon = Pentagon;\nexports.Percent = Percent;\nexports.PercentCircle = CirclePercent;\nexports.PercentCircleIcon = CirclePercent;\nexports.PercentDiamond = DiamondPercent;\nexports.PercentDiamondIcon = DiamondPercent;\nexports.PercentIcon = Percent;\nexports.PercentSquare = SquarePercent;\nexports.PercentSquareIcon = SquarePercent;\nexports.PersonStanding = PersonStanding;\nexports.PersonStandingIcon = PersonStanding;\nexports.PhilippinePeso = PhilippinePeso;\nexports.PhilippinePesoIcon = PhilippinePeso;\nexports.Phone = Phone;\nexports.PhoneCall = PhoneCall;\nexports.PhoneCallIcon = PhoneCall;\nexports.PhoneForwarded = PhoneForwarded;\nexports.PhoneForwardedIcon = PhoneForwarded;\nexports.PhoneIcon = Phone;\nexports.PhoneIncoming = PhoneIncoming;\nexports.PhoneIncomingIcon = PhoneIncoming;\nexports.PhoneMissed = PhoneMissed;\nexports.PhoneMissedIcon = PhoneMissed;\nexports.PhoneOff = PhoneOff;\nexports.PhoneOffIcon = PhoneOff;\nexports.PhoneOutgoing = PhoneOutgoing;\nexports.PhoneOutgoingIcon = PhoneOutgoing;\nexports.Pi = Pi;\nexports.PiIcon = Pi;\nexports.PiSquare = SquarePi;\nexports.PiSquareIcon = SquarePi;\nexports.Piano = Piano;\nexports.PianoIcon = Piano;\nexports.Pickaxe = Pickaxe;\nexports.PickaxeIcon = Pickaxe;\nexports.PictureInPicture = PictureInPicture;\nexports.PictureInPicture2 = PictureInPicture2;\nexports.PictureInPicture2Icon = PictureInPicture2;\nexports.PictureInPictureIcon = PictureInPicture;\nexports.PieChart = ChartPie;\nexports.PieChartIcon = ChartPie;\nexports.PiggyBank = PiggyBank;\nexports.PiggyBankIcon = PiggyBank;\nexports.Pilcrow = Pilcrow;\nexports.PilcrowIcon = Pilcrow;\nexports.PilcrowLeft = PilcrowLeft;\nexports.PilcrowLeftIcon = PilcrowLeft;\nexports.PilcrowRight = PilcrowRight;\nexports.PilcrowRightIcon = PilcrowRight;\nexports.PilcrowSquare = SquarePilcrow;\nexports.PilcrowSquareIcon = SquarePilcrow;\nexports.Pill = Pill;\nexports.PillBottle = PillBottle;\nexports.PillBottleIcon = PillBottle;\nexports.PillIcon = Pill;\nexports.Pin = Pin;\nexports.PinIcon = Pin;\nexports.PinOff = PinOff;\nexports.PinOffIcon = PinOff;\nexports.Pipette = Pipette;\nexports.PipetteIcon = Pipette;\nexports.Pizza = Pizza;\nexports.PizzaIcon = Pizza;\nexports.Plane = Plane;\nexports.PlaneIcon = Plane;\nexports.PlaneLanding = PlaneLanding;\nexports.PlaneLandingIcon = PlaneLanding;\nexports.PlaneTakeoff = PlaneTakeoff;\nexports.PlaneTakeoffIcon = PlaneTakeoff;\nexports.Play = Play;\nexports.PlayCircle = CirclePlay;\nexports.PlayCircleIcon = CirclePlay;\nexports.PlayIcon = Play;\nexports.PlaySquare = SquarePlay;\nexports.PlaySquareIcon = SquarePlay;\nexports.Plug = Plug;\nexports.Plug2 = Plug2;\nexports.Plug2Icon = Plug2;\nexports.PlugIcon = Plug;\nexports.PlugZap = PlugZap;\nexports.PlugZap2 = PlugZap;\nexports.PlugZap2Icon = PlugZap;\nexports.PlugZapIcon = PlugZap;\nexports.Plus = Plus;\nexports.PlusCircle = CirclePlus;\nexports.PlusCircleIcon = CirclePlus;\nexports.PlusIcon = Plus;\nexports.PlusSquare = SquarePlus;\nexports.PlusSquareIcon = SquarePlus;\nexports.Pocket = Pocket;\nexports.PocketIcon = Pocket;\nexports.PocketKnife = PocketKnife;\nexports.PocketKnifeIcon = PocketKnife;\nexports.Podcast = Podcast;\nexports.PodcastIcon = Podcast;\nexports.Pointer = Pointer;\nexports.PointerIcon = Pointer;\nexports.PointerOff = PointerOff;\nexports.PointerOffIcon = PointerOff;\nexports.Popcorn = Popcorn;\nexports.PopcornIcon = Popcorn;\nexports.Popsicle = Popsicle;\nexports.PopsicleIcon = Popsicle;\nexports.PoundSterling = PoundSterling;\nexports.PoundSterlingIcon = PoundSterling;\nexports.Power = Power;\nexports.PowerCircle = CirclePower;\nexports.PowerCircleIcon = CirclePower;\nexports.PowerIcon = Power;\nexports.PowerOff = PowerOff;\nexports.PowerOffIcon = PowerOff;\nexports.PowerSquare = SquarePower;\nexports.PowerSquareIcon = SquarePower;\nexports.Presentation = Presentation;\nexports.PresentationIcon = Presentation;\nexports.Printer = Printer;\nexports.PrinterCheck = PrinterCheck;\nexports.PrinterCheckIcon = PrinterCheck;\nexports.PrinterIcon = Printer;\nexports.Projector = Projector;\nexports.ProjectorIcon = Projector;\nexports.Proportions = Proportions;\nexports.ProportionsIcon = Proportions;\nexports.Puzzle = Puzzle;\nexports.PuzzleIcon = Puzzle;\nexports.Pyramid = Pyramid;\nexports.PyramidIcon = Pyramid;\nexports.QrCode = QrCode;\nexports.QrCodeIcon = QrCode;\nexports.Quote = Quote;\nexports.QuoteIcon = Quote;\nexports.Rabbit = Rabbit;\nexports.RabbitIcon = Rabbit;\nexports.Radar = Radar;\nexports.RadarIcon = Radar;\nexports.Radiation = Radiation;\nexports.RadiationIcon = Radiation;\nexports.Radical = Radical;\nexports.RadicalIcon = Radical;\nexports.Radio = Radio;\nexports.RadioIcon = Radio;\nexports.RadioReceiver = RadioReceiver;\nexports.RadioReceiverIcon = RadioReceiver;\nexports.RadioTower = RadioTower;\nexports.RadioTowerIcon = RadioTower;\nexports.Radius = Radius;\nexports.RadiusIcon = Radius;\nexports.RailSymbol = RailSymbol;\nexports.RailSymbolIcon = RailSymbol;\nexports.Rainbow = Rainbow;\nexports.RainbowIcon = Rainbow;\nexports.Rat = Rat;\nexports.RatIcon = Rat;\nexports.Ratio = Ratio;\nexports.RatioIcon = Ratio;\nexports.Receipt = Receipt;\nexports.ReceiptCent = ReceiptCent;\nexports.ReceiptCentIcon = ReceiptCent;\nexports.ReceiptEuro = ReceiptEuro;\nexports.ReceiptEuroIcon = ReceiptEuro;\nexports.ReceiptIcon = Receipt;\nexports.ReceiptIndianRupee = ReceiptIndianRupee;\nexports.ReceiptIndianRupeeIcon = ReceiptIndianRupee;\nexports.ReceiptJapaneseYen = ReceiptJapaneseYen;\nexports.ReceiptJapaneseYenIcon = ReceiptJapaneseYen;\nexports.ReceiptPoundSterling = ReceiptPoundSterling;\nexports.ReceiptPoundSterlingIcon = ReceiptPoundSterling;\nexports.ReceiptRussianRuble = ReceiptRussianRuble;\nexports.ReceiptRussianRubleIcon = ReceiptRussianRuble;\nexports.ReceiptSwissFranc = ReceiptSwissFranc;\nexports.ReceiptSwissFrancIcon = ReceiptSwissFranc;\nexports.ReceiptText = ReceiptText;\nexports.ReceiptTextIcon = ReceiptText;\nexports.RectangleCircle = RectangleCircle;\nexports.RectangleCircleIcon = RectangleCircle;\nexports.RectangleEllipsis = RectangleEllipsis;\nexports.RectangleEllipsisIcon = RectangleEllipsis;\nexports.RectangleGoggles = RectangleGoggles;\nexports.RectangleGogglesIcon = RectangleGoggles;\nexports.RectangleHorizontal = RectangleHorizontal;\nexports.RectangleHorizontalIcon = RectangleHorizontal;\nexports.RectangleVertical = RectangleVertical;\nexports.RectangleVerticalIcon = RectangleVertical;\nexports.Recycle = Recycle;\nexports.RecycleIcon = Recycle;\nexports.Redo = Redo;\nexports.Redo2 = Redo2;\nexports.Redo2Icon = Redo2;\nexports.RedoDot = RedoDot;\nexports.RedoDotIcon = RedoDot;\nexports.RedoIcon = Redo;\nexports.RefreshCcw = RefreshCcw;\nexports.RefreshCcwDot = RefreshCcwDot;\nexports.RefreshCcwDotIcon = RefreshCcwDot;\nexports.RefreshCcwIcon = RefreshCcw;\nexports.RefreshCw = RefreshCw;\nexports.RefreshCwIcon = RefreshCw;\nexports.RefreshCwOff = RefreshCwOff;\nexports.RefreshCwOffIcon = RefreshCwOff;\nexports.Refrigerator = Refrigerator;\nexports.RefrigeratorIcon = Refrigerator;\nexports.Regex = Regex;\nexports.RegexIcon = Regex;\nexports.RemoveFormatting = RemoveFormatting;\nexports.RemoveFormattingIcon = RemoveFormatting;\nexports.Repeat = Repeat;\nexports.Repeat1 = Repeat1;\nexports.Repeat1Icon = Repeat1;\nexports.Repeat2 = Repeat2;\nexports.Repeat2Icon = Repeat2;\nexports.RepeatIcon = Repeat;\nexports.Replace = Replace;\nexports.ReplaceAll = ReplaceAll;\nexports.ReplaceAllIcon = ReplaceAll;\nexports.ReplaceIcon = Replace;\nexports.Reply = Reply;\nexports.ReplyAll = ReplyAll;\nexports.ReplyAllIcon = ReplyAll;\nexports.ReplyIcon = Reply;\nexports.Rewind = Rewind;\nexports.RewindIcon = Rewind;\nexports.Ribbon = Ribbon;\nexports.RibbonIcon = Ribbon;\nexports.Rocket = Rocket;\nexports.RocketIcon = Rocket;\nexports.RockingChair = RockingChair;\nexports.RockingChairIcon = RockingChair;\nexports.RollerCoaster = RollerCoaster;\nexports.RollerCoasterIcon = RollerCoaster;\nexports.Rotate3D = Rotate3d;\nexports.Rotate3DIcon = Rotate3d;\nexports.Rotate3d = Rotate3d;\nexports.Rotate3dIcon = Rotate3d;\nexports.RotateCcw = RotateCcw;\nexports.RotateCcwIcon = RotateCcw;\nexports.RotateCcwKey = RotateCcwKey;\nexports.RotateCcwKeyIcon = RotateCcwKey;\nexports.RotateCcwSquare = RotateCcwSquare;\nexports.RotateCcwSquareIcon = RotateCcwSquare;\nexports.RotateCw = RotateCw;\nexports.RotateCwIcon = RotateCw;\nexports.RotateCwSquare = RotateCwSquare;\nexports.RotateCwSquareIcon = RotateCwSquare;\nexports.Route = Route;\nexports.RouteIcon = Route;\nexports.RouteOff = RouteOff;\nexports.RouteOffIcon = RouteOff;\nexports.Router = Router;\nexports.RouterIcon = Router;\nexports.Rows = Rows2;\nexports.Rows2 = Rows2;\nexports.Rows2Icon = Rows2;\nexports.Rows3 = Rows3;\nexports.Rows3Icon = Rows3;\nexports.Rows4 = Rows4;\nexports.Rows4Icon = Rows4;\nexports.RowsIcon = Rows2;\nexports.Rss = Rss;\nexports.RssIcon = Rss;\nexports.Ruler = Ruler;\nexports.RulerDimensionLine = RulerDimensionLine;\nexports.RulerDimensionLineIcon = RulerDimensionLine;\nexports.RulerIcon = Ruler;\nexports.RussianRuble = RussianRuble;\nexports.RussianRubleIcon = RussianRuble;\nexports.Sailboat = Sailboat;\nexports.SailboatIcon = Sailboat;\nexports.Salad = Salad;\nexports.SaladIcon = Salad;\nexports.Sandwich = Sandwich;\nexports.SandwichIcon = Sandwich;\nexports.Satellite = Satellite;\nexports.SatelliteDish = SatelliteDish;\nexports.SatelliteDishIcon = SatelliteDish;\nexports.SatelliteIcon = Satellite;\nexports.SaudiRiyal = SaudiRiyal;\nexports.SaudiRiyalIcon = SaudiRiyal;\nexports.Save = Save;\nexports.SaveAll = SaveAll;\nexports.SaveAllIcon = SaveAll;\nexports.SaveIcon = Save;\nexports.SaveOff = SaveOff;\nexports.SaveOffIcon = SaveOff;\nexports.Scale = Scale;\nexports.Scale3D = Scale3d;\nexports.Scale3DIcon = Scale3d;\nexports.Scale3d = Scale3d;\nexports.Scale3dIcon = Scale3d;\nexports.ScaleIcon = Scale;\nexports.Scaling = Scaling;\nexports.ScalingIcon = Scaling;\nexports.Scan = Scan;\nexports.ScanBarcode = ScanBarcode;\nexports.ScanBarcodeIcon = ScanBarcode;\nexports.ScanEye = ScanEye;\nexports.ScanEyeIcon = ScanEye;\nexports.ScanFace = ScanFace;\nexports.ScanFaceIcon = ScanFace;\nexports.ScanHeart = ScanHeart;\nexports.ScanHeartIcon = ScanHeart;\nexports.ScanIcon = Scan;\nexports.ScanLine = ScanLine;\nexports.ScanLineIcon = ScanLine;\nexports.ScanQrCode = ScanQrCode;\nexports.ScanQrCodeIcon = ScanQrCode;\nexports.ScanSearch = ScanSearch;\nexports.ScanSearchIcon = ScanSearch;\nexports.ScanText = ScanText;\nexports.ScanTextIcon = ScanText;\nexports.ScatterChart = ChartScatter;\nexports.ScatterChartIcon = ChartScatter;\nexports.School = School;\nexports.School2 = University;\nexports.School2Icon = University;\nexports.SchoolIcon = School;\nexports.Scissors = Scissors;\nexports.ScissorsIcon = Scissors;\nexports.ScissorsLineDashed = ScissorsLineDashed;\nexports.ScissorsLineDashedIcon = ScissorsLineDashed;\nexports.ScissorsSquare = SquareScissors;\nexports.ScissorsSquareDashedBottom = SquareBottomDashedScissors;\nexports.ScissorsSquareDashedBottomIcon = SquareBottomDashedScissors;\nexports.ScissorsSquareIcon = SquareScissors;\nexports.ScreenShare = ScreenShare;\nexports.ScreenShareIcon = ScreenShare;\nexports.ScreenShareOff = ScreenShareOff;\nexports.ScreenShareOffIcon = ScreenShareOff;\nexports.Scroll = Scroll;\nexports.ScrollIcon = Scroll;\nexports.ScrollText = ScrollText;\nexports.ScrollTextIcon = ScrollText;\nexports.Search = Search;\nexports.SearchCheck = SearchCheck;\nexports.SearchCheckIcon = SearchCheck;\nexports.SearchCode = SearchCode;\nexports.SearchCodeIcon = SearchCode;\nexports.SearchIcon = Search;\nexports.SearchSlash = SearchSlash;\nexports.SearchSlashIcon = SearchSlash;\nexports.SearchX = SearchX;\nexports.SearchXIcon = SearchX;\nexports.Section = Section;\nexports.SectionIcon = Section;\nexports.Send = Send;\nexports.SendHorizonal = SendHorizontal;\nexports.SendHorizonalIcon = SendHorizontal;\nexports.SendHorizontal = SendHorizontal;\nexports.SendHorizontalIcon = SendHorizontal;\nexports.SendIcon = Send;\nexports.SendToBack = SendToBack;\nexports.SendToBackIcon = SendToBack;\nexports.SeparatorHorizontal = SeparatorHorizontal;\nexports.SeparatorHorizontalIcon = SeparatorHorizontal;\nexports.SeparatorVertical = SeparatorVertical;\nexports.SeparatorVerticalIcon = SeparatorVertical;\nexports.Server = Server;\nexports.ServerCog = ServerCog;\nexports.ServerCogIcon = ServerCog;\nexports.ServerCrash = ServerCrash;\nexports.ServerCrashIcon = ServerCrash;\nexports.ServerIcon = Server;\nexports.ServerOff = ServerOff;\nexports.ServerOffIcon = ServerOff;\nexports.Settings = Settings;\nexports.Settings2 = Settings2;\nexports.Settings2Icon = Settings2;\nexports.SettingsIcon = Settings;\nexports.Shapes = Shapes;\nexports.ShapesIcon = Shapes;\nexports.Share = Share;\nexports.Share2 = Share2;\nexports.Share2Icon = Share2;\nexports.ShareIcon = Share;\nexports.Sheet = Sheet;\nexports.SheetIcon = Sheet;\nexports.Shell = Shell;\nexports.ShellIcon = Shell;\nexports.Shield = Shield;\nexports.ShieldAlert = ShieldAlert;\nexports.ShieldAlertIcon = ShieldAlert;\nexports.ShieldBan = ShieldBan;\nexports.ShieldBanIcon = ShieldBan;\nexports.ShieldCheck = ShieldCheck;\nexports.ShieldCheckIcon = ShieldCheck;\nexports.ShieldClose = ShieldX;\nexports.ShieldCloseIcon = ShieldX;\nexports.ShieldEllipsis = ShieldEllipsis;\nexports.ShieldEllipsisIcon = ShieldEllipsis;\nexports.ShieldHalf = ShieldHalf;\nexports.ShieldHalfIcon = ShieldHalf;\nexports.ShieldIcon = Shield;\nexports.ShieldMinus = ShieldMinus;\nexports.ShieldMinusIcon = ShieldMinus;\nexports.ShieldOff = ShieldOff;\nexports.ShieldOffIcon = ShieldOff;\nexports.ShieldPlus = ShieldPlus;\nexports.ShieldPlusIcon = ShieldPlus;\nexports.ShieldQuestion = ShieldQuestionMark;\nexports.ShieldQuestionIcon = ShieldQuestionMark;\nexports.ShieldQuestionMark = ShieldQuestionMark;\nexports.ShieldQuestionMarkIcon = ShieldQuestionMark;\nexports.ShieldUser = ShieldUser;\nexports.ShieldUserIcon = ShieldUser;\nexports.ShieldX = ShieldX;\nexports.ShieldXIcon = ShieldX;\nexports.Ship = Ship;\nexports.ShipIcon = Ship;\nexports.ShipWheel = ShipWheel;\nexports.ShipWheelIcon = ShipWheel;\nexports.Shirt = Shirt;\nexports.ShirtIcon = Shirt;\nexports.ShoppingBag = ShoppingBag;\nexports.ShoppingBagIcon = ShoppingBag;\nexports.ShoppingBasket = ShoppingBasket;\nexports.ShoppingBasketIcon = ShoppingBasket;\nexports.ShoppingCart = ShoppingCart;\nexports.ShoppingCartIcon = ShoppingCart;\nexports.Shovel = Shovel;\nexports.ShovelIcon = Shovel;\nexports.ShowerHead = ShowerHead;\nexports.ShowerHeadIcon = ShowerHead;\nexports.Shredder = Shredder;\nexports.ShredderIcon = Shredder;\nexports.Shrimp = Shrimp;\nexports.ShrimpIcon = Shrimp;\nexports.Shrink = Shrink;\nexports.ShrinkIcon = Shrink;\nexports.Shrub = Shrub;\nexports.ShrubIcon = Shrub;\nexports.Shuffle = Shuffle;\nexports.ShuffleIcon = Shuffle;\nexports.Sidebar = PanelLeft;\nexports.SidebarClose = PanelLeftClose;\nexports.SidebarCloseIcon = PanelLeftClose;\nexports.SidebarIcon = PanelLeft;\nexports.SidebarOpen = PanelLeftOpen;\nexports.SidebarOpenIcon = PanelLeftOpen;\nexports.Sigma = Sigma;\nexports.SigmaIcon = Sigma;\nexports.SigmaSquare = SquareSigma;\nexports.SigmaSquareIcon = SquareSigma;\nexports.Signal = Signal;\nexports.SignalHigh = SignalHigh;\nexports.SignalHighIcon = SignalHigh;\nexports.SignalIcon = Signal;\nexports.SignalLow = SignalLow;\nexports.SignalLowIcon = SignalLow;\nexports.SignalMedium = SignalMedium;\nexports.SignalMediumIcon = SignalMedium;\nexports.SignalZero = SignalZero;\nexports.SignalZeroIcon = SignalZero;\nexports.Signature = Signature;\nexports.SignatureIcon = Signature;\nexports.Signpost = Signpost;\nexports.SignpostBig = SignpostBig;\nexports.SignpostBigIcon = SignpostBig;\nexports.SignpostIcon = Signpost;\nexports.Siren = Siren;\nexports.SirenIcon = Siren;\nexports.SkipBack = SkipBack;\nexports.SkipBackIcon = SkipBack;\nexports.SkipForward = SkipForward;\nexports.SkipForwardIcon = SkipForward;\nexports.Skull = Skull;\nexports.SkullIcon = Skull;\nexports.Slack = Slack;\nexports.SlackIcon = Slack;\nexports.Slash = Slash;\nexports.SlashIcon = Slash;\nexports.SlashSquare = SquareSlash;\nexports.SlashSquareIcon = SquareSlash;\nexports.Slice = Slice;\nexports.SliceIcon = Slice;\nexports.Sliders = SlidersVertical;\nexports.SlidersHorizontal = SlidersHorizontal;\nexports.SlidersHorizontalIcon = SlidersHorizontal;\nexports.SlidersIcon = SlidersVertical;\nexports.SlidersVertical = SlidersVertical;\nexports.SlidersVerticalIcon = SlidersVertical;\nexports.Smartphone = Smartphone;\nexports.SmartphoneCharging = SmartphoneCharging;\nexports.SmartphoneChargingIcon = SmartphoneCharging;\nexports.SmartphoneIcon = Smartphone;\nexports.SmartphoneNfc = SmartphoneNfc;\nexports.SmartphoneNfcIcon = SmartphoneNfc;\nexports.Smile = Smile;\nexports.SmileIcon = Smile;\nexports.SmilePlus = SmilePlus;\nexports.SmilePlusIcon = SmilePlus;\nexports.Snail = Snail;\nexports.SnailIcon = Snail;\nexports.Snowflake = Snowflake;\nexports.SnowflakeIcon = Snowflake;\nexports.SoapDispenserDroplet = SoapDispenserDroplet;\nexports.SoapDispenserDropletIcon = SoapDispenserDroplet;\nexports.Sofa = Sofa;\nexports.SofaIcon = Sofa;\nexports.SortAsc = ArrowUpNarrowWide;\nexports.SortAscIcon = ArrowUpNarrowWide;\nexports.SortDesc = ArrowDownWideNarrow;\nexports.SortDescIcon = ArrowDownWideNarrow;\nexports.Soup = Soup;\nexports.SoupIcon = Soup;\nexports.Space = Space;\nexports.SpaceIcon = Space;\nexports.Spade = Spade;\nexports.SpadeIcon = Spade;\nexports.Sparkle = Sparkle;\nexports.SparkleIcon = Sparkle;\nexports.Sparkles = Sparkles;\nexports.SparklesIcon = Sparkles;\nexports.Speaker = Speaker;\nexports.SpeakerIcon = Speaker;\nexports.Speech = Speech;\nexports.SpeechIcon = Speech;\nexports.SpellCheck = SpellCheck;\nexports.SpellCheck2 = SpellCheck2;\nexports.SpellCheck2Icon = SpellCheck2;\nexports.SpellCheckIcon = SpellCheck;\nexports.Spline = Spline;\nexports.SplineIcon = Spline;\nexports.SplinePointer = SplinePointer;\nexports.SplinePointerIcon = SplinePointer;\nexports.Split = Split;\nexports.SplitIcon = Split;\nexports.SplitSquareHorizontal = SquareSplitHorizontal;\nexports.SplitSquareHorizontalIcon = SquareSplitHorizontal;\nexports.SplitSquareVertical = SquareSplitVertical;\nexports.SplitSquareVerticalIcon = SquareSplitVertical;\nexports.Spool = Spool;\nexports.SpoolIcon = Spool;\nexports.SprayCan = SprayCan;\nexports.SprayCanIcon = SprayCan;\nexports.Sprout = Sprout;\nexports.SproutIcon = Sprout;\nexports.Square = Square;\nexports.SquareActivity = SquareActivity;\nexports.SquareActivityIcon = SquareActivity;\nexports.SquareArrowDown = SquareArrowDown;\nexports.SquareArrowDownIcon = SquareArrowDown;\nexports.SquareArrowDownLeft = SquareArrowDownLeft;\nexports.SquareArrowDownLeftIcon = SquareArrowDownLeft;\nexports.SquareArrowDownRight = SquareArrowDownRight;\nexports.SquareArrowDownRightIcon = SquareArrowDownRight;\nexports.SquareArrowLeft = SquareArrowLeft;\nexports.SquareArrowLeftIcon = SquareArrowLeft;\nexports.SquareArrowOutDownLeft = SquareArrowOutDownLeft;\nexports.SquareArrowOutDownLeftIcon = SquareArrowOutDownLeft;\nexports.SquareArrowOutDownRight = SquareArrowOutDownRight;\nexports.SquareArrowOutDownRightIcon = SquareArrowOutDownRight;\nexports.SquareArrowOutUpLeft = SquareArrowOutUpLeft;\nexports.SquareArrowOutUpLeftIcon = SquareArrowOutUpLeft;\nexports.SquareArrowOutUpRight = SquareArrowOutUpRight;\nexports.SquareArrowOutUpRightIcon = SquareArrowOutUpRight;\nexports.SquareArrowRight = SquareArrowRight;\nexports.SquareArrowRightIcon = SquareArrowRight;\nexports.SquareArrowUp = SquareArrowUp;\nexports.SquareArrowUpIcon = SquareArrowUp;\nexports.SquareArrowUpLeft = SquareArrowUpLeft;\nexports.SquareArrowUpLeftIcon = SquareArrowUpLeft;\nexports.SquareArrowUpRight = SquareArrowUpRight;\nexports.SquareArrowUpRightIcon = SquareArrowUpRight;\nexports.SquareAsterisk = SquareAsterisk;\nexports.SquareAsteriskIcon = SquareAsterisk;\nexports.SquareBottomDashedScissors = SquareBottomDashedScissors;\nexports.SquareBottomDashedScissorsIcon = SquareBottomDashedScissors;\nexports.SquareChartGantt = SquareChartGantt;\nexports.SquareChartGanttIcon = SquareChartGantt;\nexports.SquareCheck = SquareCheck;\nexports.SquareCheckBig = SquareCheckBig;\nexports.SquareCheckBigIcon = SquareCheckBig;\nexports.SquareCheckIcon = SquareCheck;\nexports.SquareChevronDown = SquareChevronDown;\nexports.SquareChevronDownIcon = SquareChevronDown;\nexports.SquareChevronLeft = SquareChevronLeft;\nexports.SquareChevronLeftIcon = SquareChevronLeft;\nexports.SquareChevronRight = SquareChevronRight;\nexports.SquareChevronRightIcon = SquareChevronRight;\nexports.SquareChevronUp = SquareChevronUp;\nexports.SquareChevronUpIcon = SquareChevronUp;\nexports.SquareCode = SquareCode;\nexports.SquareCodeIcon = SquareCode;\nexports.SquareDashed = SquareDashed;\nexports.SquareDashedBottom = SquareDashedBottom;\nexports.SquareDashedBottomCode = SquareDashedBottomCode;\nexports.SquareDashedBottomCodeIcon = SquareDashedBottomCode;\nexports.SquareDashedBottomIcon = SquareDashedBottom;\nexports.SquareDashedIcon = SquareDashed;\nexports.SquareDashedKanban = SquareDashedKanban;\nexports.SquareDashedKanbanIcon = SquareDashedKanban;\nexports.SquareDashedMousePointer = SquareDashedMousePointer;\nexports.SquareDashedMousePointerIcon = SquareDashedMousePointer;\nexports.SquareDashedTopSolid = SquareDashedTopSolid;\nexports.SquareDashedTopSolidIcon = SquareDashedTopSolid;\nexports.SquareDivide = SquareDivide;\nexports.SquareDivideIcon = SquareDivide;\nexports.SquareDot = SquareDot;\nexports.SquareDotIcon = SquareDot;\nexports.SquareEqual = SquareEqual;\nexports.SquareEqualIcon = SquareEqual;\nexports.SquareFunction = SquareFunction;\nexports.SquareFunctionIcon = SquareFunction;\nexports.SquareGanttChart = SquareChartGantt;\nexports.SquareGanttChartIcon = SquareChartGantt;\nexports.SquareIcon = Square;\nexports.SquareKanban = SquareKanban;\nexports.SquareKanbanIcon = SquareKanban;\nexports.SquareLibrary = SquareLibrary;\nexports.SquareLibraryIcon = SquareLibrary;\nexports.SquareM = SquareM;\nexports.SquareMIcon = SquareM;\nexports.SquareMenu = SquareMenu;\nexports.SquareMenuIcon = SquareMenu;\nexports.SquareMinus = SquareMinus;\nexports.SquareMinusIcon = SquareMinus;\nexports.SquareMousePointer = SquareMousePointer;\nexports.SquareMousePointerIcon = SquareMousePointer;\nexports.SquareParking = SquareParking;\nexports.SquareParkingIcon = SquareParking;\nexports.SquareParkingOff = SquareParkingOff;\nexports.SquareParkingOffIcon = SquareParkingOff;\nexports.SquarePen = SquarePen;\nexports.SquarePenIcon = SquarePen;\nexports.SquarePercent = SquarePercent;\nexports.SquarePercentIcon = SquarePercent;\nexports.SquarePi = SquarePi;\nexports.SquarePiIcon = SquarePi;\nexports.SquarePilcrow = SquarePilcrow;\nexports.SquarePilcrowIcon = SquarePilcrow;\nexports.SquarePlay = SquarePlay;\nexports.SquarePlayIcon = SquarePlay;\nexports.SquarePlus = SquarePlus;\nexports.SquarePlusIcon = SquarePlus;\nexports.SquarePower = SquarePower;\nexports.SquarePowerIcon = SquarePower;\nexports.SquareRadical = SquareRadical;\nexports.SquareRadicalIcon = SquareRadical;\nexports.SquareRoundCorner = SquareRoundCorner;\nexports.SquareRoundCornerIcon = SquareRoundCorner;\nexports.SquareScissors = SquareScissors;\nexports.SquareScissorsIcon = SquareScissors;\nexports.SquareSigma = SquareSigma;\nexports.SquareSigmaIcon = SquareSigma;\nexports.SquareSlash = SquareSlash;\nexports.SquareSlashIcon = SquareSlash;\nexports.SquareSplitHorizontal = SquareSplitHorizontal;\nexports.SquareSplitHorizontalIcon = SquareSplitHorizontal;\nexports.SquareSplitVertical = SquareSplitVertical;\nexports.SquareSplitVerticalIcon = SquareSplitVertical;\nexports.SquareSquare = SquareSquare;\nexports.SquareSquareIcon = SquareSquare;\nexports.SquareStack = SquareStack;\nexports.SquareStackIcon = SquareStack;\nexports.SquareTerminal = SquareTerminal;\nexports.SquareTerminalIcon = SquareTerminal;\nexports.SquareUser = SquareUser;\nexports.SquareUserIcon = SquareUser;\nexports.SquareUserRound = SquareUserRound;\nexports.SquareUserRoundIcon = SquareUserRound;\nexports.SquareX = SquareX;\nexports.SquareXIcon = SquareX;\nexports.SquaresExclude = SquaresExclude;\nexports.SquaresExcludeIcon = SquaresExclude;\nexports.SquaresIntersect = SquaresIntersect;\nexports.SquaresIntersectIcon = SquaresIntersect;\nexports.SquaresSubtract = SquaresSubtract;\nexports.SquaresSubtractIcon = SquaresSubtract;\nexports.SquaresUnite = SquaresUnite;\nexports.SquaresUniteIcon = SquaresUnite;\nexports.Squircle = Squircle;\nexports.SquircleDashed = SquircleDashed;\nexports.SquircleDashedIcon = SquircleDashed;\nexports.SquircleIcon = Squircle;\nexports.Squirrel = Squirrel;\nexports.SquirrelIcon = Squirrel;\nexports.Stamp = Stamp;\nexports.StampIcon = Stamp;\nexports.Star = Star;\nexports.StarHalf = StarHalf;\nexports.StarHalfIcon = StarHalf;\nexports.StarIcon = Star;\nexports.StarOff = StarOff;\nexports.StarOffIcon = StarOff;\nexports.Stars = Sparkles;\nexports.StarsIcon = Sparkles;\nexports.StepBack = StepBack;\nexports.StepBackIcon = StepBack;\nexports.StepForward = StepForward;\nexports.StepForwardIcon = StepForward;\nexports.Stethoscope = Stethoscope;\nexports.StethoscopeIcon = Stethoscope;\nexports.Sticker = Sticker;\nexports.StickerIcon = Sticker;\nexports.StickyNote = StickyNote;\nexports.StickyNoteIcon = StickyNote;\nexports.StopCircle = CircleStop;\nexports.StopCircleIcon = CircleStop;\nexports.Store = Store;\nexports.StoreIcon = Store;\nexports.StretchHorizontal = StretchHorizontal;\nexports.StretchHorizontalIcon = StretchHorizontal;\nexports.StretchVertical = StretchVertical;\nexports.StretchVerticalIcon = StretchVertical;\nexports.Strikethrough = Strikethrough;\nexports.StrikethroughIcon = Strikethrough;\nexports.Subscript = Subscript;\nexports.SubscriptIcon = Subscript;\nexports.Subtitles = Captions;\nexports.SubtitlesIcon = Captions;\nexports.Sun = Sun;\nexports.SunDim = SunDim;\nexports.SunDimIcon = SunDim;\nexports.SunIcon = Sun;\nexports.SunMedium = SunMedium;\nexports.SunMediumIcon = SunMedium;\nexports.SunMoon = SunMoon;\nexports.SunMoonIcon = SunMoon;\nexports.SunSnow = SunSnow;\nexports.SunSnowIcon = SunSnow;\nexports.Sunrise = Sunrise;\nexports.SunriseIcon = Sunrise;\nexports.Sunset = Sunset;\nexports.SunsetIcon = Sunset;\nexports.Superscript = Superscript;\nexports.SuperscriptIcon = Superscript;\nexports.SwatchBook = SwatchBook;\nexports.SwatchBookIcon = SwatchBook;\nexports.SwissFranc = SwissFranc;\nexports.SwissFrancIcon = SwissFranc;\nexports.SwitchCamera = SwitchCamera;\nexports.SwitchCameraIcon = SwitchCamera;\nexports.Sword = Sword;\nexports.SwordIcon = Sword;\nexports.Swords = Swords;\nexports.SwordsIcon = Swords;\nexports.Syringe = Syringe;\nexports.SyringeIcon = Syringe;\nexports.Table = Table;\nexports.Table2 = Table2;\nexports.Table2Icon = Table2;\nexports.TableCellsMerge = TableCellsMerge;\nexports.TableCellsMergeIcon = TableCellsMerge;\nexports.TableCellsSplit = TableCellsSplit;\nexports.TableCellsSplitIcon = TableCellsSplit;\nexports.TableColumnsSplit = TableColumnsSplit;\nexports.TableColumnsSplitIcon = TableColumnsSplit;\nexports.TableConfig = Columns3Cog;\nexports.TableConfigIcon = Columns3Cog;\nexports.TableIcon = Table;\nexports.TableOfContents = TableOfContents;\nexports.TableOfContentsIcon = TableOfContents;\nexports.TableProperties = TableProperties;\nexports.TablePropertiesIcon = TableProperties;\nexports.TableRowsSplit = TableRowsSplit;\nexports.TableRowsSplitIcon = TableRowsSplit;\nexports.Tablet = Tablet;\nexports.TabletIcon = Tablet;\nexports.TabletSmartphone = TabletSmartphone;\nexports.TabletSmartphoneIcon = TabletSmartphone;\nexports.Tablets = Tablets;\nexports.TabletsIcon = Tablets;\nexports.Tag = Tag;\nexports.TagIcon = Tag;\nexports.Tags = Tags;\nexports.TagsIcon = Tags;\nexports.Tally1 = Tally1;\nexports.Tally1Icon = Tally1;\nexports.Tally2 = Tally2;\nexports.Tally2Icon = Tally2;\nexports.Tally3 = Tally3;\nexports.Tally3Icon = Tally3;\nexports.Tally4 = Tally4;\nexports.Tally4Icon = Tally4;\nexports.Tally5 = Tally5;\nexports.Tally5Icon = Tally5;\nexports.Tangent = Tangent;\nexports.TangentIcon = Tangent;\nexports.Target = Target;\nexports.TargetIcon = Target;\nexports.Telescope = Telescope;\nexports.TelescopeIcon = Telescope;\nexports.Tent = Tent;\nexports.TentIcon = Tent;\nexports.TentTree = TentTree;\nexports.TentTreeIcon = TentTree;\nexports.Terminal = Terminal;\nexports.TerminalIcon = Terminal;\nexports.TerminalSquare = SquareTerminal;\nexports.TerminalSquareIcon = SquareTerminal;\nexports.TestTube = TestTube;\nexports.TestTube2 = TestTubeDiagonal;\nexports.TestTube2Icon = TestTubeDiagonal;\nexports.TestTubeDiagonal = TestTubeDiagonal;\nexports.TestTubeDiagonalIcon = TestTubeDiagonal;\nexports.TestTubeIcon = TestTube;\nexports.TestTubes = TestTubes;\nexports.TestTubesIcon = TestTubes;\nexports.Text = Text;\nexports.TextCursor = TextCursor;\nexports.TextCursorIcon = TextCursor;\nexports.TextCursorInput = TextCursorInput;\nexports.TextCursorInputIcon = TextCursorInput;\nexports.TextIcon = Text;\nexports.TextQuote = TextQuote;\nexports.TextQuoteIcon = TextQuote;\nexports.TextSearch = TextSearch;\nexports.TextSearchIcon = TextSearch;\nexports.TextSelect = TextSelect;\nexports.TextSelectIcon = TextSelect;\nexports.TextSelection = TextSelect;\nexports.TextSelectionIcon = TextSelect;\nexports.Theater = Theater;\nexports.TheaterIcon = Theater;\nexports.Thermometer = Thermometer;\nexports.ThermometerIcon = Thermometer;\nexports.ThermometerSnowflake = ThermometerSnowflake;\nexports.ThermometerSnowflakeIcon = ThermometerSnowflake;\nexports.ThermometerSun = ThermometerSun;\nexports.ThermometerSunIcon = ThermometerSun;\nexports.ThumbsDown = ThumbsDown;\nexports.ThumbsDownIcon = ThumbsDown;\nexports.ThumbsUp = ThumbsUp;\nexports.ThumbsUpIcon = ThumbsUp;\nexports.Ticket = Ticket;\nexports.TicketCheck = TicketCheck;\nexports.TicketCheckIcon = TicketCheck;\nexports.TicketIcon = Ticket;\nexports.TicketMinus = TicketMinus;\nexports.TicketMinusIcon = TicketMinus;\nexports.TicketPercent = TicketPercent;\nexports.TicketPercentIcon = TicketPercent;\nexports.TicketPlus = TicketPlus;\nexports.TicketPlusIcon = TicketPlus;\nexports.TicketSlash = TicketSlash;\nexports.TicketSlashIcon = TicketSlash;\nexports.TicketX = TicketX;\nexports.TicketXIcon = TicketX;\nexports.Tickets = Tickets;\nexports.TicketsIcon = Tickets;\nexports.TicketsPlane = TicketsPlane;\nexports.TicketsPlaneIcon = TicketsPlane;\nexports.Timer = Timer;\nexports.TimerIcon = Timer;\nexports.TimerOff = TimerOff;\nexports.TimerOffIcon = TimerOff;\nexports.TimerReset = TimerReset;\nexports.TimerResetIcon = TimerReset;\nexports.ToggleLeft = ToggleLeft;\nexports.ToggleLeftIcon = ToggleLeft;\nexports.ToggleRight = ToggleRight;\nexports.ToggleRightIcon = ToggleRight;\nexports.Toilet = Toilet;\nexports.ToiletIcon = Toilet;\nexports.ToolCase = ToolCase;\nexports.ToolCaseIcon = ToolCase;\nexports.Tornado = Tornado;\nexports.TornadoIcon = Tornado;\nexports.Torus = Torus;\nexports.TorusIcon = Torus;\nexports.Touchpad = Touchpad;\nexports.TouchpadIcon = Touchpad;\nexports.TouchpadOff = TouchpadOff;\nexports.TouchpadOffIcon = TouchpadOff;\nexports.TowerControl = TowerControl;\nexports.TowerControlIcon = TowerControl;\nexports.ToyBrick = ToyBrick;\nexports.ToyBrickIcon = ToyBrick;\nexports.Tractor = Tractor;\nexports.TractorIcon = Tractor;\nexports.TrafficCone = TrafficCone;\nexports.TrafficConeIcon = TrafficCone;\nexports.Train = TramFront;\nexports.TrainFront = TrainFront;\nexports.TrainFrontIcon = TrainFront;\nexports.TrainFrontTunnel = TrainFrontTunnel;\nexports.TrainFrontTunnelIcon = TrainFrontTunnel;\nexports.TrainIcon = TramFront;\nexports.TrainTrack = TrainTrack;\nexports.TrainTrackIcon = TrainTrack;\nexports.TramFront = TramFront;\nexports.TramFrontIcon = TramFront;\nexports.Transgender = Transgender;\nexports.TransgenderIcon = Transgender;\nexports.Trash = Trash;\nexports.Trash2 = Trash2;\nexports.Trash2Icon = Trash2;\nexports.TrashIcon = Trash;\nexports.TreeDeciduous = TreeDeciduous;\nexports.TreeDeciduousIcon = TreeDeciduous;\nexports.TreePalm = TreePalm;\nexports.TreePalmIcon = TreePalm;\nexports.TreePine = TreePine;\nexports.TreePineIcon = TreePine;\nexports.Trees = Trees;\nexports.TreesIcon = Trees;\nexports.Trello = Trello;\nexports.TrelloIcon = Trello;\nexports.TrendingDown = TrendingDown;\nexports.TrendingDownIcon = TrendingDown;\nexports.TrendingUp = TrendingUp;\nexports.TrendingUpDown = TrendingUpDown;\nexports.TrendingUpDownIcon = TrendingUpDown;\nexports.TrendingUpIcon = TrendingUp;\nexports.Triangle = Triangle;\nexports.TriangleAlert = TriangleAlert;\nexports.TriangleAlertIcon = TriangleAlert;\nexports.TriangleDashed = TriangleDashed;\nexports.TriangleDashedIcon = TriangleDashed;\nexports.TriangleIcon = Triangle;\nexports.TriangleRight = TriangleRight;\nexports.TriangleRightIcon = TriangleRight;\nexports.Trophy = Trophy;\nexports.TrophyIcon = Trophy;\nexports.Truck = Truck;\nexports.TruckElectric = TruckElectric;\nexports.TruckElectricIcon = TruckElectric;\nexports.TruckIcon = Truck;\nexports.Turtle = Turtle;\nexports.TurtleIcon = Turtle;\nexports.Tv = Tv;\nexports.Tv2 = TvMinimal;\nexports.Tv2Icon = TvMinimal;\nexports.TvIcon = Tv;\nexports.TvMinimal = TvMinimal;\nexports.TvMinimalIcon = TvMinimal;\nexports.TvMinimalPlay = TvMinimalPlay;\nexports.TvMinimalPlayIcon = TvMinimalPlay;\nexports.Twitch = Twitch;\nexports.TwitchIcon = Twitch;\nexports.Twitter = Twitter;\nexports.TwitterIcon = Twitter;\nexports.Type = Type;\nexports.TypeIcon = Type;\nexports.TypeOutline = TypeOutline;\nexports.TypeOutlineIcon = TypeOutline;\nexports.Umbrella = Umbrella;\nexports.UmbrellaIcon = Umbrella;\nexports.UmbrellaOff = UmbrellaOff;\nexports.UmbrellaOffIcon = UmbrellaOff;\nexports.Underline = Underline;\nexports.UnderlineIcon = Underline;\nexports.Undo = Undo;\nexports.Undo2 = Undo2;\nexports.Undo2Icon = Undo2;\nexports.UndoDot = UndoDot;\nexports.UndoDotIcon = UndoDot;\nexports.UndoIcon = Undo;\nexports.UnfoldHorizontal = UnfoldHorizontal;\nexports.UnfoldHorizontalIcon = UnfoldHorizontal;\nexports.UnfoldVertical = UnfoldVertical;\nexports.UnfoldVerticalIcon = UnfoldVertical;\nexports.Ungroup = Ungroup;\nexports.UngroupIcon = Ungroup;\nexports.University = University;\nexports.UniversityIcon = University;\nexports.Unlink = Unlink;\nexports.Unlink2 = Unlink2;\nexports.Unlink2Icon = Unlink2;\nexports.UnlinkIcon = Unlink;\nexports.Unlock = LockOpen;\nexports.UnlockIcon = LockOpen;\nexports.UnlockKeyhole = LockKeyholeOpen;\nexports.UnlockKeyholeIcon = LockKeyholeOpen;\nexports.Unplug = Unplug;\nexports.UnplugIcon = Unplug;\nexports.Upload = Upload;\nexports.UploadCloud = CloudUpload;\nexports.UploadCloudIcon = CloudUpload;\nexports.UploadIcon = Upload;\nexports.Usb = Usb;\nexports.UsbIcon = Usb;\nexports.User = User;\nexports.User2 = UserRound;\nexports.User2Icon = UserRound;\nexports.UserCheck = UserCheck;\nexports.UserCheck2 = UserRoundCheck;\nexports.UserCheck2Icon = UserRoundCheck;\nexports.UserCheckIcon = UserCheck;\nexports.UserCircle = CircleUser;\nexports.UserCircle2 = CircleUserRound;\nexports.UserCircle2Icon = CircleUserRound;\nexports.UserCircleIcon = CircleUser;\nexports.UserCog = UserCog;\nexports.UserCog2 = UserRoundCog;\nexports.UserCog2Icon = UserRoundCog;\nexports.UserCogIcon = UserCog;\nexports.UserIcon = User;\nexports.UserLock = UserLock;\nexports.UserLockIcon = UserLock;\nexports.UserMinus = UserMinus;\nexports.UserMinus2 = UserRoundMinus;\nexports.UserMinus2Icon = UserRoundMinus;\nexports.UserMinusIcon = UserMinus;\nexports.UserPen = UserPen;\nexports.UserPenIcon = UserPen;\nexports.UserPlus = UserPlus;\nexports.UserPlus2 = UserRoundPlus;\nexports.UserPlus2Icon = UserRoundPlus;\nexports.UserPlusIcon = UserPlus;\nexports.UserRound = UserRound;\nexports.UserRoundCheck = UserRoundCheck;\nexports.UserRoundCheckIcon = UserRoundCheck;\nexports.UserRoundCog = UserRoundCog;\nexports.UserRoundCogIcon = UserRoundCog;\nexports.UserRoundIcon = UserRound;\nexports.UserRoundMinus = UserRoundMinus;\nexports.UserRoundMinusIcon = UserRoundMinus;\nexports.UserRoundPen = UserRoundPen;\nexports.UserRoundPenIcon = UserRoundPen;\nexports.UserRoundPlus = UserRoundPlus;\nexports.UserRoundPlusIcon = UserRoundPlus;\nexports.UserRoundSearch = UserRoundSearch;\nexports.UserRoundSearchIcon = UserRoundSearch;\nexports.UserRoundX = UserRoundX;\nexports.UserRoundXIcon = UserRoundX;\nexports.UserSearch = UserSearch;\nexports.UserSearchIcon = UserSearch;\nexports.UserSquare = SquareUser;\nexports.UserSquare2 = SquareUserRound;\nexports.UserSquare2Icon = SquareUserRound;\nexports.UserSquareIcon = SquareUser;\nexports.UserX = UserX;\nexports.UserX2 = UserRoundX;\nexports.UserX2Icon = UserRoundX;\nexports.UserXIcon = UserX;\nexports.Users = Users;\nexports.Users2 = UsersRound;\nexports.Users2Icon = UsersRound;\nexports.UsersIcon = Users;\nexports.UsersRound = UsersRound;\nexports.UsersRoundIcon = UsersRound;\nexports.Utensils = Utensils;\nexports.UtensilsCrossed = UtensilsCrossed;\nexports.UtensilsCrossedIcon = UtensilsCrossed;\nexports.UtensilsIcon = Utensils;\nexports.UtilityPole = UtilityPole;\nexports.UtilityPoleIcon = UtilityPole;\nexports.Variable = Variable;\nexports.VariableIcon = Variable;\nexports.Vault = Vault;\nexports.VaultIcon = Vault;\nexports.VectorSquare = VectorSquare;\nexports.VectorSquareIcon = VectorSquare;\nexports.Vegan = Vegan;\nexports.VeganIcon = Vegan;\nexports.VenetianMask = VenetianMask;\nexports.VenetianMaskIcon = VenetianMask;\nexports.Venus = Venus;\nexports.VenusAndMars = VenusAndMars;\nexports.VenusAndMarsIcon = VenusAndMars;\nexports.VenusIcon = Venus;\nexports.Verified = BadgeCheck;\nexports.VerifiedIcon = BadgeCheck;\nexports.Vibrate = Vibrate;\nexports.VibrateIcon = Vibrate;\nexports.VibrateOff = VibrateOff;\nexports.VibrateOffIcon = VibrateOff;\nexports.Video = Video;\nexports.VideoIcon = Video;\nexports.VideoOff = VideoOff;\nexports.VideoOffIcon = VideoOff;\nexports.Videotape = Videotape;\nexports.VideotapeIcon = Videotape;\nexports.View = View;\nexports.ViewIcon = View;\nexports.Voicemail = Voicemail;\nexports.VoicemailIcon = Voicemail;\nexports.Volleyball = Volleyball;\nexports.VolleyballIcon = Volleyball;\nexports.Volume = Volume;\nexports.Volume1 = Volume1;\nexports.Volume1Icon = Volume1;\nexports.Volume2 = Volume2;\nexports.Volume2Icon = Volume2;\nexports.VolumeIcon = Volume;\nexports.VolumeOff = VolumeOff;\nexports.VolumeOffIcon = VolumeOff;\nexports.VolumeX = VolumeX;\nexports.VolumeXIcon = VolumeX;\nexports.Vote = Vote;\nexports.VoteIcon = Vote;\nexports.Wallet = Wallet;\nexports.Wallet2 = WalletMinimal;\nexports.Wallet2Icon = WalletMinimal;\nexports.WalletCards = WalletCards;\nexports.WalletCardsIcon = WalletCards;\nexports.WalletIcon = Wallet;\nexports.WalletMinimal = WalletMinimal;\nexports.WalletMinimalIcon = WalletMinimal;\nexports.Wallpaper = Wallpaper;\nexports.WallpaperIcon = Wallpaper;\nexports.Wand = Wand;\nexports.Wand2 = WandSparkles;\nexports.Wand2Icon = WandSparkles;\nexports.WandIcon = Wand;\nexports.WandSparkles = WandSparkles;\nexports.WandSparklesIcon = WandSparkles;\nexports.Warehouse = Warehouse;\nexports.WarehouseIcon = Warehouse;\nexports.WashingMachine = WashingMachine;\nexports.WashingMachineIcon = WashingMachine;\nexports.Watch = Watch;\nexports.WatchIcon = Watch;\nexports.Waves = Waves;\nexports.WavesIcon = Waves;\nexports.WavesLadder = WavesLadder;\nexports.WavesLadderIcon = WavesLadder;\nexports.Waypoints = Waypoints;\nexports.WaypointsIcon = Waypoints;\nexports.Webcam = Webcam;\nexports.WebcamIcon = Webcam;\nexports.Webhook = Webhook;\nexports.WebhookIcon = Webhook;\nexports.WebhookOff = WebhookOff;\nexports.WebhookOffIcon = WebhookOff;\nexports.Weight = Weight;\nexports.WeightIcon = Weight;\nexports.Wheat = Wheat;\nexports.WheatIcon = Wheat;\nexports.WheatOff = WheatOff;\nexports.WheatOffIcon = WheatOff;\nexports.WholeWord = WholeWord;\nexports.WholeWordIcon = WholeWord;\nexports.Wifi = Wifi;\nexports.WifiCog = WifiCog;\nexports.WifiCogIcon = WifiCog;\nexports.WifiHigh = WifiHigh;\nexports.WifiHighIcon = WifiHigh;\nexports.WifiIcon = Wifi;\nexports.WifiLow = WifiLow;\nexports.WifiLowIcon = WifiLow;\nexports.WifiOff = WifiOff;\nexports.WifiOffIcon = WifiOff;\nexports.WifiPen = WifiPen;\nexports.WifiPenIcon = WifiPen;\nexports.WifiZero = WifiZero;\nexports.WifiZeroIcon = WifiZero;\nexports.Wind = Wind;\nexports.WindArrowDown = WindArrowDown;\nexports.WindArrowDownIcon = WindArrowDown;\nexports.WindIcon = Wind;\nexports.Wine = Wine;\nexports.WineIcon = Wine;\nexports.WineOff = WineOff;\nexports.WineOffIcon = WineOff;\nexports.Workflow = Workflow;\nexports.WorkflowIcon = Workflow;\nexports.Worm = Worm;\nexports.WormIcon = Worm;\nexports.WrapText = WrapText;\nexports.WrapTextIcon = WrapText;\nexports.Wrench = Wrench;\nexports.WrenchIcon = Wrench;\nexports.X = X;\nexports.XCircle = CircleX;\nexports.XCircleIcon = CircleX;\nexports.XIcon = X;\nexports.XOctagon = OctagonX;\nexports.XOctagonIcon = OctagonX;\nexports.XSquare = SquareX;\nexports.XSquareIcon = SquareX;\nexports.Youtube = Youtube;\nexports.YoutubeIcon = Youtube;\nexports.Zap = Zap;\nexports.ZapIcon = Zap;\nexports.ZapOff = ZapOff;\nexports.ZapOffIcon = ZapOff;\nexports.ZoomIn = ZoomIn;\nexports.ZoomInIcon = ZoomIn;\nexports.ZoomOut = ZoomOut;\nexports.ZoomOutIcon = ZoomOut;\nexports.createLucideIcon = createLucideIcon;\nexports.icons = index; //# sourceMappingURL=lucide-react.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1ub2RlKS8uL25vZGVfbW9kdWxlcy9sdWNpZGUtcmVhY3QvZGlzdC9janMvbHVjaWRlLXJlYWN0LmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFRYSxvQkFBYyxDQUFDLE1BQzFCLFVBQU8sUUFBUSxvQkFBc0IsU0FBTyxFQUFFLFdBQVk7QUFRL0Msa0JBQWMsR0FBbUIsT0FDNUMsUUFBTyxTQUFRLHlCQUF5QixDQUFDLE9BQU8sQ0FBSSxNQUNsRCxLQUFLLElBQUcsY0FBZ0IsTUFBRyxDQUFZO0FBUzlCLHFCQUFlLENBQW1CLE1BQWdDO0lBQ3ZFLGtCQUFZLFlBQVksTUFBTTtJQUU1QixpQkFBVSxPQUFPLENBQUMsRUFBRSxhQUFnQixhQUFVLE1BQU0sQ0FBQztBQUMvRDtBQVFhLG1CQUFlLElBQTJDLFNBQ3JFLFdBQ0csT0FBTyxDQUFDLFdBQVcsT0FBTyxLQUFVO1FBRWpDLGVBQVEsU0FBUyxFQUNoQixZQUFxQixZQUFXLENBQ2pDLFdBQU0sT0FBUSxFQUFTLFNBQU07SUFFakMsQ0FBQyxDQUNBLE1BQUssR0FBRyxFQUNSLElBQUs7QUFRRyxvQkFBYyxDQUFDLEtBQStCO0lBQ3pELFVBQVcsUUFBUSxLQUFPO1FBQ3hCLENBQUksUUFBSyxVQUFXLEVBQU8sUUFBSyxPQUFTLGVBQVUsU0FBUyxPQUFTO1lBQzVEO1FBQUE7SUFDVDtBQUVKO0FDaEVBLENBQWU7SUFDYixLQUFPO0lBQ1AsS0FBTztJQUNQLE1BQVE7SUFDUixPQUFTO0lBQ1QsSUFBTTtJQUNOLE1BQVE7SUFDUixXQUFhO0lBQ2IsYUFBZTtJQUNmLGNBQWdCO0FBQ2xCO0FDY0EsQ0FBTSxTQUFPLEdBQUFBLENBQUEsZ0JBQ1gsQ0FDRSxFQUNFLEtBQVEsbUJBQ1IsSUFBTyxPQUNQLFdBQWMsTUFDZCxxQkFDQSxTQUFZLE9BQ1osVUFDQSxVQUNBLENBQUcsVUFFTCxDQUVBLHlCQUNFLE9BQ0E7UUFDRTtRQUNBLEdBQUc7UUFDSCxLQUFPO1FBQ1AsTUFBUTtRQUNSLE1BQVE7UUFDUixZ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S0FBQTtJQUN4RDtRQUFDLFFBQVU7UUFBQTtZQUFFLEVBQUk7WUFBTSxDQUFJLE9BQUs7WUFBQSxDQUFHO1lBQUssR0FBSztRQUFBLENBQVU7S0FBQTtJQUN2RDtRQUFDLENBQVU7UUFBQTtZQUFFLENBQUksUUFBTTtZQUFBLEVBQUk7WUFBTSxDQUFHO1lBQUssQ0FBSztRQUFVO0tBQUE7Q0FDMUQ7QUFhTSxtQkFBZSxrQkFBaUIsa0JBQWlCQSxDQUFVO0FDcEIxRCxNQUFNQSxhQUF1QjtJQUNsQztRQUFDLFFBQVU7UUFBQTtZQUFFLEVBQUk7WUFBTSxDQUFJLE9BQUs7WUFBQSxDQUFHO1lBQUssR0FBSztRQUFBLENBQVU7S0FBQTtJQUN2RDtRQUFDLFFBQVU7UUFBQTtZQUFFLEVBQUk7WUFBTSxDQUFJLE9BQUs7WUFBQSxDQUFHO1lBQUssR0FBSztRQUFBLENBQVU7S0FBQTtJQUN2RDtRQUFDLFFBQVU7UUFBQTtZQUFFLEVBQUk7WUFBSyxDQUFJLE9BQUs7WUFBQSxDQUFHO1lBQUssR0FBSztRQUFBLENBQVU7S0FBQTtJQUN0RDtRQUFDLFFBQVU7UUFBQTtZQUFFLEVBQUk7WUFBTSxDQUFJLFFBQU07WUFBQSxDQUFHO1lBQUssR0FBSztRQUFBLENBQVU7S0FBQTtJQUN4RDtRQUFDLFFBQVU7UUFBQTtZQUFFLEVBQUk7WUFBTSxDQUFJLFFBQU07WUFBQSxDQUFHO1lBQUssR0FBSztRQUFBLENBQVU7S0FBQTtJQUN4RDtRQUFDLFFBQVU7UUFBQTtZQUFFLEVBQUk7WUFBSyxDQUFJLFFBQU07WUFBQSxDQUFHO1lBQUssR0FBSztRQUFBLENBQVU7S0FBQTtJQUN2RDtRQUFDLFFBQVU7UUFBQTtZQUFFLEVBQUk7WUFBTSxDQUFJLFFBQU07WUFBQSxDQUFHO1lBQUssR0FBSztRQUFBLENBQVU7S0FBQTtJQUN4RDtRQUFDLFFBQVU7UUFBQTtZQUFFLEVBQUk7WUFBTSxDQUFJLFFBQU07WUFBQSxDQUFHO1lBQUssR0FBSztRQUFBLENBQVU7S0FBQTtJQUN4RDtRQUFDLENBQVU7UUFBQTtZQUFFLENBQUksT0FBSztZQUFBLEVBQUk7WUFBTSxDQUFHO1lBQUssQ0FBSztRQUFVO0tBQUE7Q0FDekQ7QUFhTSxXQUFPLGtCQUFpQixTQUFRQSxDQUFVO0FDdkJ6QyxNQUFNQSxhQUF1QjtJQUNsQztRQUFDLE1BQVE7UUFBQTtZQUFFLEdBQUcsQ0FBMEI7WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0lBQ3ZEO1FBQ0U7UUFDQTtZQUNFLENBQUc7WUFDSCxHQUFLO1FBQUE7S0FFVDtJQUNBO1FBQUMsTUFBUTtRQUFBO1lBQUUsR0FBRyxDQUFhO1lBQUEsS0FBSztRQUFBLENBQVU7S0FBQTtJQUMxQztRQUNFO1FBQ0E7WUFDRSxDQUFHO1lBQ0gsR0FBSztRQUFBO0tBQ1A7Q0FFSjtBQWFNLGFBQVMsa0JBQWlCLFdBQVVBLENBQVU7QUM5QjdDLE1BQU1BLGFBQXVCO0lBQ2xDO1FBQUMsTUFBUTtRQUFBO1lBQUUsR0FBRyxDQUEwQjtZQUFBLEtBQUs7UUFBQSxDQUFVO0tBQUE7SUFDdkQ7UUFBQyxNQUFRO1FBQUE7WUFBRSxHQUFHLENBQTRCO1lBQUEsS0FBSztRQUFBLENBQVU7S0FBQTtJQUN6RDtRQUFDLE1BQVE7UUFBQTtZQUFFLEdBQUcsQ0FBOEI7WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0lBQzNEO1FBQUMsTUFBUTtRQUFBO1lBQUUsR0FBRyxDQUE4QjtZQUFBLEtBQUs7UUFBQSxDQUFVO0tBQUE7SUFDM0Q7UUFBQyxPQUFRO1FBQUE7WUFBRSxPQUFPO1lBQUssQ0FBUTtZQUFLLENBQUc7WUFBSyxHQUFHLENBQUs7WUFBQSxJQUFJLENBQUs7WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0lBQzVFO1FBQUM7UUFBUSxDQUFFO1lBQUEsTUFBTyxLQUFLO1lBQUEsTUFBUSxNQUFLO1lBQUEsQ0FBRyxPQUFNO1lBQUEsRUFBRyxLQUFNO1lBQUEsR0FBSSxJQUFLO1lBQUEsSUFBSztRQUFVO0tBQUE7Q0FDaEY7QUFhTSxZQUFRLGtCQUFpQixVQUFTQSxDQUFVO0FDcEIzQyxNQUFNQSxhQUF1QjtJQUNsQztRQUFDLE1BQVE7UUFBQTtZQUFFLEdBQUcsQ0FBbUQ7WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0lBQ2hGO1FBQ0U7UUFDQTtZQUNFLENBQUc7WUFDSCxHQUFLO1FBQUE7S0FFVDtJQUNBO1FBQ0U7UUFDQTtZQUNFLENBQUc7WUFDSCxHQUFLO1FBQUE7S0FFVDtJQUNBO1FBQUMsQ0FBUTtRQUFBLENBQUU7WUFBQSxFQUFHLGdCQUFpQjtZQUFBLElBQUs7UUFBVTtLQUFBO0NBQ2hEO0FBYU0sVUFBTSxrQkFBaUIsUUFBT0EsQ0FBVTtBQzlCdkMsTUFBTUEsYUFBdUI7SUFDbEM7UUFBQyxNQUFRO1FBQUE7WUFBRSxHQUFHLENBQWlEO1lBQUEsS0FBSztRQUFBLENBQVU7S0FBQTtJQUM5RTtRQUFDLE1BQVE7UUFBQTtZQUFFLEdBQUcsQ0FBb0Q7WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0lBQ2pGO1FBQ0U7UUFDQTtZQUNFLENBQUc7WUFDSCxHQUFLO1FBQUE7S0FFVDtJQUNBO1FBQUMsQ0FBUTtRQUFBLENBQUU7WUFBQSxFQUFHLDhDQUErQztZQUFBLElBQUs7UUFBVTtLQUFBO0NBQzlFO0FBYU0sZ0JBQVksa0JBQWlCLGNBQWFBLENBQVU7QUN4Qm5ELE1BQU1BLGFBQXVCO0lBQ2xDO1FBQUMsTUFBUTtRQUFBO1lBQUUsR0FBRyxDQUF5QztZQUFBLEtBQUs7UUFBQSxDQUFVO0tBQUE7SUFDdEU7UUFBQyxNQUFRO1FBQUE7WUFBRSxHQUFHLENBQWM7WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0lBQzNDO1FBQ0U7UUFDQTtZQUNFLENBQUc7WUFDSCxHQUFLO1FBQUE7S0FDUDtDQUVKO0FBYU0sYUFBUyxrQkFBaUIsV0FBVUEsQ0FBVTtBQ3ZCN0MsTUFBTUEsYUFBdUI7SUFDbEM7UUFBQyxNQUFRO1FBQUE7WUFBRSxHQUFHLENBQW9EO1lBQUEsS0FBSztRQUFBLENBQVU7S0FBQTtJQUNqRjtRQUNFO1FBQ0E7WUFDRSxDQUFHO1lBQ0gsR0FBSztRQUFBO0tBRVQ7SUFDQTtRQUFDLE1BQVE7UUFBQTtZQUFFLEdBQUcsQ0FBYTtZQUFBLEtBQUs7UUFBQSxDQUFVO0tBQUE7SUFDMUM7UUFBQyxRQUFVO1FBQUE7WUFBRSxFQUFJO1lBQU0sQ0FBSSxPQUFLO1lBQUEsQ0FBRztZQUFPLEdBQUs7UUFBQSxDQUFVO0tBQUE7SUFDekQ7UUFBQyxDQUFVO1FBQUE7WUFBRSxDQUFJLE9BQUs7WUFBQSxFQUFJO1lBQUssQ0FBRztZQUFLLENBQUs7UUFBVTtLQUFBO0NBQ3hEO0FBYU0sZ0JBQVksa0JBQWlCLGVBQWNBLENBQVU7QUN6QnBELE1BQU1BLGFBQXVCO0lBQ2xDO1FBQUMsTUFBUTtRQUFBO1lBQUUsR0FBRyxDQUFvRDtZQUFBLEtBQUs7UUFBQSxDQUFVO0tBQUE7SUFDakY7UUFDRTtRQUNBO1lBQ0UsQ0FBRztZQUNILEdBQUs7UUFBQTtLQUVUO0lBQ0E7UUFBQyxNQUFRO1FBQUE7WUFBRSxHQUFHLENBQWE7WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0lBQzFDO1FBQ0U7UUFDQTtZQUNFLENBQUc7WUFDSCxHQUFLO1FBQUE7S0FDUDtDQUVKO0FBYU0sZ0JBQVksa0JBQWlCLGVBQWNBLENBQVU7QUM5QnBELE1BQU1BLGFBQXVCO0lBQ2xDO1FBQUMsTUFBUTtRQUFBO1lBQUUsR0FBRyxDQUFvRDtZQUFBLEtBQUs7UUFBQSxDQUFVO0tBQUE7SUFDakY7UUFDRTtRQUNBO1lBQ0UsQ0FBRztZQUNILEdBQUs7UUFBQTtLQUVUO0lBQ0E7UUFBQyxDQUFRO1FBQUEsQ0FBRTtZQUFBLEVBQUcsWUFBYTtZQUFBLElBQUs7UUFBVTtLQUFBO0NBQzVDO0FBYU0sa0JBQWMsa0JBQWlCLGlCQUFnQkEsQ0FBVTtBQ3ZCeEQsTUFBTUEsYUFBdUI7SUFDbEM7UUFBQyxNQUFRO1FBQUE7WUFBRSxHQUFHLENBQStDO1lBQUEsS0FBSztRQUFBLENBQVU7S0FBQTtJQUM1RTtRQUFDLE1BQVE7UUFBQTtZQUFFLEdBQUcsQ0FBNEI7WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0lBQ3pEO1FBQUMsTUFBUTtRQUFBO1lBQUUsR0FBRyxDQUE4QjtZQUFBLEtBQUs7UUFBQSxDQUFVO0tBQUE7SUFDM0Q7UUFDRTtRQUNBO1lBQ0UsQ0FBRztZQUNILEdBQUs7UUFBQTtLQUNQO0NBRUo7QUFhTSxnQkFBWSxrQkFBaUIsZUFBY0EsQ0FBVTtBQ3hCcEQsTUFBTUEsYUFBdUI7SUFDbEM7UUFBQyxNQUFRO1FBQUE7WUFBRSxHQUFHLENBQVc7WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0lBQ3hDO1FBQ0U7UUFDQTtZQUNFLENBQUc7WUFDSCxHQUFLO1FBQUE7S0FFVDtJQUNBO1FBQUMsTUFBUTtRQUFBO1lBQUUsR0FBRyxDQUE2QjtZQUFBLEtBQUs7UUFBQSxDQUFVO0tBQUE7SUFDMUQ7UUFBQyxNQUFRO1FBQUE7WUFBRSxHQUFHLENBQVk7WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0lBQ3pDO1FBQUMsTUFBUTtRQUFBO1lBQUUsR0FBRyxDQUF3QjtZQUFBLEtBQUs7UUFBQSxDQUFVO0tBQUE7SUFDckQ7UUFBQyxDQUFRO1FBQUEsQ0FBRTtZQUFBLEVBQUcsMEJBQTJCO1lBQUEsSUFBSztRQUFVO0tBQUE7Q0FDMUQ7QUFhTSxrQkFBYyxrQkFBaUIsaUJBQWdCQSxDQUFVO0FDMUJ4RCxNQUFNQSxhQUF1QjtJQUNsQztRQUFDLE1BQVE7UUFBQTtZQUFFLEdBQUcsQ0FBd0M7WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0lBQ3JFO1FBQUMsTUFBUTtRQUFBO1lBQUUsR0FBRyxDQUEwQztZQUFBLEtBQUs7UUFBQSxDQUFVO0tBQUE7SUFDdkU7UUFBQyxNQUFRO1FBQUE7WUFBRSxHQUFHLENBQTRDO1lBQUEsS0FBSztRQUFBLENBQVU7S0FBQTtJQUN6RTtRQUNFO1FBQ0E7WUFDRSxDQUFHO1lBQ0gsR0FBSztRQUFBO0tBQ1A7Q0FFSjtBQWFNLFdBQU8sa0JBQWlCLFNBQVFBLENBQVU7QUN4QnpDLE1BQU1BLGFBQXVCO0lBQ2xDO1FBQUMsTUFBUTtRQUFBO1lBQUUsR0FBRyxDQUE0QjtZQUFBLEtBQUs7UUFBQSxDQUFVO0tBQUE7SUFDekQ7UUFDRTtRQUNBO1lBQ0UsQ0FBRztZQUNILEdBQUs7UUFBQTtLQUVUO0lBQ0E7UUFBQyxNQUFRO1FBQUE7WUFBRSxHQUFHLENBQWlCO1lBQUEsS0FBSztRQUFBLENBQVU7S0FBQTtJQUM5QztRQUFDLE1BQVE7UUFBQTtZQUFFLEdBQUcsQ0FBbUM7WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0lBQ2hFO1FBQUMsQ0FBUTtRQUFBLENBQUU7WUFBQSxFQUFHLFNBQVU7WUFBQSxJQUFLO1FBQVU7S0FBQTtDQUN6QztBQWFNLGdCQUFZLGtCQUFpQixjQUFhQSxDQUFVO0FDekJuRCxNQUFNQSxhQUF1QjtJQUNsQztRQUFDLE1BQVE7UUFBQTtZQUFFLEdBQUcsQ0FBVztZQUFBLEtBQUs7UUFBQSxDQUFVO0tBQUE7SUFDeEM7UUFBQyxNQUFRO1FBQUE7WUFBRSxHQUFHLENBQWlCO1lBQUEsS0FBSztRQUFBLENBQVM7S0FBQTtJQUM3QztRQUFDLE9BQVE7UUFBQTtZQUFFLE9BQU87WUFBTSxDQUFRO1lBQUssQ0FBRztZQUFLLEdBQUcsQ0FBTTtZQUFBLElBQUksQ0FBSztZQUFBLEtBQUs7UUFBQSxDQUFVO0tBQUE7SUFDOUU7UUFBQyxNQUFRO1FBQUE7WUFBRSxHQUFHLENBQWE7WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0lBQzFDO1FBQUMsQ0FBUTtRQUFBLENBQUU7WUFBQSxFQUFHLGFBQWM7WUFBQSxJQUFLO1FBQVM7S0FBQTtDQUM1QztBQWFNLHdCQUFvQixrQkFBaUIsd0JBQXVCQSxDQUFVO0FDbkJyRSxNQUFNQSxhQUF1QjtJQUNsQztRQUFDLE1BQVE7UUFBQTtZQUFFLEdBQUcsQ0FBaUI7WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0lBQzlDO1FBQUMsTUFBUTtRQUFBO1lBQUUsR0FBRyxDQUFXO1lBQUEsS0FBSztRQUFBLENBQVU7S0FBQTtJQUN4QztRQUFDLE9BQVE7UUFBQTtZQUFFLE9BQU87WUFBTSxDQUFRO1lBQUssQ0FBRztZQUFLLEdBQUcsQ0FBTTtZQUFBLElBQUksQ0FBSztZQUFBLEtBQUs7UUFBQSxDQUFVO0tBQUE7SUFDOUU7UUFBQyxNQUFRO1FBQUE7WUFBRSxHQUFHLENBQWE7WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0lBQzFDO1FBQUMsQ0FBUTtRQUFBLENBQUU7WUFBQSxFQUFHLGFBQWM7WUFBQSxJQUFLO1FBQVM7S0FBQTtDQUM1QztBQWFNLHNCQUFrQixrQkFBaUIsc0JBQXFCQSxDQUFVO0FDbkJqRSxNQUFNQSxhQUF1QjtJQUNsQztRQUFDO1FBQVEsQ0FBRTtZQUFBLElBQUksQ0FBTTtZQUFBLElBQUksQ0FBSztZQUFBLEdBQUksS0FBTTtZQUFBLEdBQUksS0FBTTtZQUFBLEtBQUs7UUFBQSxDQUFVO0tBQUE7SUFDakU7UUFDRTtRQUNBO1lBQ0UsQ0FBRztZQUNILEdBQUs7UUFBQTtLQUVUO0lBQ0E7UUFBQztRQUFRLENBQUU7WUFBQSxJQUFJLENBQUs7WUFBQSxJQUFJLENBQVE7WUFBQSxHQUFJLEtBQU07WUFBQSxHQUFJLEtBQU07WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0lBQ25FO1FBQUMsT0FBUTtRQUFBO1lBQUUsR0FBSSxLQUFNO1lBQUEsR0FBSSxRQUFTO1lBQUEsSUFBSSxDQUFNO1lBQUEsSUFBSSxJQUFNO1lBQUEsSUFBSztRQUFVO0tBQUE7Q0FDdkU7QUFhTSxnQkFBWSxrQkFBaUIsZUFBY0EsQ0FBVTtBQ3hCcEQsTUFBTUEsYUFBdUI7SUFDbEM7UUFBQyxNQUFRO1FBQUE7WUFBRSxHQUFHLENBQTRDO1lBQUEsS0FBSztRQUFBLENBQVU7S0FBQTtJQUN6RTtRQUFDLE1BQVE7UUFBQTtZQUFFLEdBQUcsQ0FBeUI7WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0lBQ3REO1FBQUMsTUFBUTtRQUFBO1lBQUUsR0FBRyxDQUEwQjtZQUFBLEtBQUs7UUFBQSxDQUFVO0tBQUE7SUFDdkQ7UUFBQztRQUFRLENBQUU7WUFBQSxFQUFHLEtBQUs7WUFBQSxDQUFHLE9BQU07WUFBQSxLQUFPLE9BQU07WUFBQSxPQUFRLElBQUs7WUFBQSxHQUFJLElBQUs7WUFBQSxJQUFLO1FBQVU7S0FBQTtDQUNoRjtBQWFNLGNBQVUsa0JBQWlCLGFBQVlBLENBQVU7QUNsQmhELE1BQU1BLGFBQXVCO0lBQ2xDO1FBQUM7UUFBUSxDQUFFO1lBQUEsSUFBSSxDQUFLO1lBQUEsSUFBSSxDQUFNO1lBQUEsR0FBSSxJQUFLO1lBQUEsR0FBSSxJQUFLO1lBQUEsS0FBSztRQUFBLENBQVU7S0FBQTtJQUMvRDtRQUFDO1FBQVEsQ0FBRTtZQUFBLElBQUksQ0FBSztZQUFBLElBQUksQ0FBTTtZQUFBLEdBQUksS0FBTTtZQUFBLEdBQUksS0FBTTtZQUFBLEtBQUs7UUFBQSxDQUFVO0tBQUE7SUFDakU7UUFBQztRQUFRLENBQUU7WUFBQSxJQUFJLENBQU07WUFBQSxJQUFJLENBQUs7WUFBQSxHQUFJLElBQUs7WUFBQSxHQUFJLEtBQU07WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0lBQ2hFO1FBQUMsT0FBUTtRQUFBO1lBQUUsR0FBSSxLQUFNO1lBQUEsR0FBSSxLQUFNO1lBQUEsSUFBSSxDQUFLO1lBQUEsSUFBSSxJQUFNO1lBQUEsSUFBSztRQUFVO0tBQUE7Q0FDbkU7QUFhTSxXQUFPLGtCQUFpQixTQUFRQSxDQUFVO0FDbEJ6QyxNQUFNQSxhQUF1QjtJQUNsQztRQUFDLE1BQVE7UUFBQTtZQUFFLEdBQUcsQ0FBb0I7WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0lBQ2pEO1FBQUMsTUFBUTtRQUFBO1lBQUUsR0FBRyxDQUFXO1lBQUEsS0FBSztRQUFBLENBQVU7S0FBQTtJQUN4QztRQUFDLE1BQVE7UUFBQTtZQUFFLEdBQUcsQ0FBWTtZQUFBLEtBQUs7UUFBQSxDQUFVO0tBQUE7SUFDekM7UUFBQyxNQUFRO1FBQUE7WUFBRSxHQUFHLENBQXFCO1lBQUEsS0FBSztRQUFBLENBQVU7S0FBQTtJQUNsRDtRQUFDLE1BQVE7UUFBQTtZQUFFLEdBQUcsQ0FBWTtZQUFBLEtBQUs7UUFBQSxDQUFVO0tBQUE7SUFDekM7UUFBQyxNQUFRO1FBQUE7WUFBRSxHQUFHLENBQVk7WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0lBQ3pDO1FBQUMsTUFBUTtRQUFBO1lBQUUsR0FBRyxDQUF3QjtZQUFBLEtBQUs7UUFBQSxDQUFVO0tBQUE7SUFDckQ7UUFBQyxDQUFRO1FBQUEsQ0FBRTtZQUFBLEVBQUcsWUFBYTtZQUFBLElBQUs7UUFBVTtLQUFBO0NBQzVDO0FBYU0sV0FBTyxrQkFBaUIsU0FBUUEsQ0FBVTtBQ3RCekMsTUFBTUEsYUFBdUI7SUFDbEM7UUFDRTtRQUNBO1lBQ0UsQ0FBRztZQUNILEdBQUs7UUFBQTtLQUVUO0lBQ0E7UUFBQyxDQUFRO1FBQUEsQ0FBRTtZQUFBLEVBQUcsWUFBYTtZQUFBLElBQUs7UUFBVTtLQUFBO0NBQzVDO0FBYU0sZUFBVyxrQkFBaUIsY0FBYUEsQ0FBVTtBQ3RCbEQsTUFBTUEsYUFBdUI7SUFDbEM7UUFBQyxNQUFRO1FBQUE7WUFBRSxHQUFHLENBQVc7WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0lBQ3hDO1FBQUMsTUFBUTtRQUFBO1lBQUUsR0FBRyxDQUFXO1lBQUEsS0FBSztRQUFBLENBQVU7S0FBQTtJQUN4QztRQUFDLE1BQVE7UUFBQTtZQUFFLEdBQUcsQ0FBWTtZQUFBLEtBQUs7UUFBQSxDQUFVO0tBQUE7SUFDekM7UUFBQyxDQUFRO1FBQUEsQ0FBRTtZQUFBLEVBQUcsZUFBZ0I7WUFBQSxJQUFLO1FBQVU7S0FBQTtDQUMvQztBQWFNLGVBQVcsa0JBQWlCLGNBQWFBLENBQVU7QUNsQmxELE1BQU1BLGFBQXVCO0lBQ2xDO1FBQUMsTUFBUTtRQUFBO1lBQUUsR0FBRyxDQUFXO1lBQUEsS0FBSztRQUFBLENBQVU7S0FBQTtJQUN4QztRQUFDLE1BQVE7UUFBQTtZQUFFLEdBQUcsQ0FBVztZQUFBLEtBQUs7UUFBQSxDQUFVO0tBQUE7SUFDeEM7UUFBQyxNQUFRO1FBQUE7WUFBRSxHQUFHLENBQVk7WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0lBQ3pDO1FBQUMsQ0FBUTtRQUFBLENBQUU7WUFBQSxFQUFHLHdDQUF5QztZQUFBLElBQUs7UUFBVTtLQUFBO0NBQ3hFO0FBYU0sZUFBVyxrQkFBaUIsY0FBYUEsQ0FBVTtBQ2xCbEQsTUFBTUEsYUFBdUI7SUFDbEM7UUFBQyxNQUFRO1FBQUE7WUFBRSxHQUFHLENBQVc7WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0lBQ3hDO1FBQUMsTUFBUTtRQUFBO1lBQUUsR0FBRyxDQUFXO1lBQUEsS0FBSztRQUFBLENBQVU7S0FBQTtJQUN4QztRQUFDLE1BQVE7UUFBQTtZQUFFLEdBQUcsQ0FBWTtZQUFBLEtBQUs7UUFBQSxDQUFVO0tBQUE7SUFDekM7UUFBQyxNQUFRO1FBQUE7WUFBRSxHQUFHLENBQWdEO1lBQUEsS0FBSztRQUFBLENBQVU7S0FBQTtJQUM3RTtRQUFDLENBQVE7UUFBQSxDQUFFO1lBQUEsRUFBRywwQ0FBMkM7WUFBQSxJQUFLO1FBQVU7S0FBQTtDQUMxRTtBQWFNLGVBQVcsa0JBQWlCLGNBQWFBLENBQVU7QUNuQmxELE1BQU1BLGFBQXVCO0lBQ2xDO1FBQUMsTUFBUTtRQUFBO1lBQUUsR0FBRyxDQUFZO1lBQUEsS0FBSztRQUFBLENBQVU7S0FBQTtJQUN6QztRQUFDLE1BQVE7UUFBQTtZQUFFLEdBQUcsQ0FBNEI7WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0lBQ3pEO1FBQUMsTUFBUTtRQUFBO1lBQUUsR0FBRyxDQUFZO1lBQUEsS0FBSztRQUFBLENBQVU7S0FBQTtJQUN6QztRQUFDLE1BQVE7UUFBQTtZQUFFLEdBQUcsQ0FBVztZQUFBLEtBQUs7UUFBQSxDQUFVO0tBQUE7SUFDeEM7UUFBQyxDQUFRO1FBQUEsQ0FBRTtZQUFBLEVBQUcsVUFBVztZQUFBLElBQUs7UUFBVTtLQUFBO0NBQzFDO0FBYU0sZUFBVyxrQkFBaUIsY0FBYUEsQ0FBVTtBQ25CbEQsTUFBTUEsYUFBdUI7SUFDbEM7UUFBQyxNQUFRO1FBQUE7WUFBRSxHQUFHLENBQVc7WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0lBQ3hDO1FBQUMsTUFBUTtRQUFBO1lBQUUsR0FBRyxDQUFXO1lBQUEsS0FBSztRQUFBLENBQVU7S0FBQTtJQUN4QztRQUFDLE1BQVE7UUFBQTtZQUFFLEdBQUcsQ0FBWTtZQUFBLEtBQUs7UUFBQSxDQUFVO0tBQUE7SUFDekM7UUFBQyxNQUFRO1FBQUE7WUFBRSxHQUFHLENBQWU7WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0lBQzVDO1FBQ0U7UUFDQTtZQUFFLEdBQUcsa0VBQW9FO1lBQUEsS0FBSyxDQUFTO1FBQUE7S0FBQTtDQUUzRjtBQWFNLGVBQVcsa0JBQWlCLGNBQWFBLENBQVU7QUN0QmxELE1BQU1BLGFBQXVCO0lBQ2xDO1FBQUMsTUFBUTtRQUFBO1lBQUUsR0FBRyxDQUFXO1lBQUEsS0FBSztRQUFBLENBQVU7S0FBQTtJQUN4QztRQUFDLE1BQVE7UUFBQTtZQUFFLEdBQUcsQ0FBVztZQUFBLEtBQUs7UUFBQSxDQUFVO0tBQUE7SUFDeEM7UUFBQyxNQUFRO1FBQUE7WUFBRSxHQUFHLENBQVk7WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0lBQ3pDO1FBQUMsUUFBVTtRQUFBO1lBQUUsRUFBSTtZQUFNLENBQUksUUFBTTtZQUFBLENBQUc7WUFBSyxHQUFLO1FBQUEsQ0FBVTtLQUFBO0lBQ3hEO1FBQUMsQ0FBUTtRQUFBLENBQUU7WUFBQSxFQUFHLHdCQUF5QjtZQUFBLElBQUs7UUFBVTtLQUFBO0NBQ3hEO0FBYU0sZUFBVyxrQkFBaUIsY0FBYUEsQ0FBVTtBQ25CbEQsTUFBTUEsYUFBdUI7SUFDbEM7UUFBQyxNQUFRO1FBQUE7WUFBRSxHQUFHLENBQVk7WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0lBQ3pDO1FBQUMsTUFBUTtRQUFBO1lBQUUsR0FBRyxDQUFXO1lBQUEsS0FBSztRQUFBLENBQVU7S0FBQTtJQUN4QztRQUFDLENBQVE7UUFBQSxDQUFFO1lBQUEsRUFBRyxXQUFZO1lBQUEsSUFBSztRQUFVO0tBQUE7Q0FDM0M7QUFhTSxjQUFVLGtCQUFpQixZQUFXQSxDQUFVO0FDakIvQyxNQUFNQSxhQUF1QjtJQUNsQztRQUFDLE1BQVE7UUFBQTtZQUFFLEdBQUcsQ0FBaUI7WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0lBQzlDO1FBQUMsTUFBUTtRQUFBO1lBQUUsR0FBRyxDQUFxQztZQUFBLEtBQUs7UUFBQSxDQUFVO0tBQUE7SUFDbEU7UUFBQyxNQUFRO1FBQUE7WUFBRSxHQUFHLENBQWM7WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0lBQzNDO1FBQUMsTUFBUTtRQUFBO1lBQUUsR0FBRyxDQUFzRDtZQUFBLEtBQUs7UUFBQSxDQUFVO0tBQUE7SUFDbkY7UUFDRTtRQUNBO1lBQ0UsQ0FBRztZQUNILEdBQUs7UUFBQTtLQUNQO0NBRUo7QUFhTSxtQkFBZSxrQkFBaUIsa0JBQWlCQSxDQUFVO0FDekIxRCxNQUFNQSxhQUF1QjtJQUNsQztRQUNFO1FBQ0E7WUFDRSxDQUFHO1lBQ0gsR0FBSztRQUFBO0tBQ1A7Q0FFSjtBQWFNLGlCQUFhLGtCQUFpQixlQUFjQSxDQUFVO0FDckJyRCxNQUFNQSxhQUF1QjtJQUNsQztRQUNFO1FBQ0E7WUFDRSxDQUFHO1lBQ0gsR0FBSztRQUFBO0tBRVQ7SUFDQTtRQUFDLENBQVE7UUFBQSxDQUFFO1lBQUEsRUFBRyw0QkFBNkI7WUFBQSxJQUFLO1FBQVU7S0FBQTtDQUM1RDtBQWFNLGNBQVUsa0JBQWlCLFlBQVdBLENBQVU7QUN0Qi9DLE1BQU1BLGFBQXVCO0lBQ2xDO1FBQ0U7UUFDQTtZQUNFLENBQUc7WUFDSCxHQUFLO1FBQUE7S0FFVDtJQUNBO1FBQUMsQ0FBUTtRQUFBLENBQUU7WUFBQSxFQUFHLHlCQUEwQjtZQUFBLElBQUs7UUFBVTtLQUFBO0NBQ3pEO0FBYU0saUJBQWEsa0JBQWlCLGdCQUFlQSxDQUFVO0FDdEJ0RCxNQUFNQSxhQUF1QjtJQUNsQztRQUNFO1FBQ0E7WUFDRSxDQUFHO1lBQ0gsR0FBSztRQUFBO0tBRVQ7SUFDQTtRQUNFO1FBQ0E7WUFDRSxDQUFHO1lBQ0gsR0FBSztRQUFBO0tBRVQ7SUFDQTtRQUFDLE1BQVE7UUFBQTtZQUFFLEdBQUcsQ0FBYztZQUFBLEtBQUs7UUFBQSxDQUFVO0tBQUE7SUFDM0M7UUFBQyxDQUFRO1FBQUEsQ0FBRTtZQUFBLEVBQUcsYUFBYztZQUFBLElBQUs7UUFBVTtLQUFBO0NBQzdDO0FBYU0scUJBQWlCLGtCQUFpQixvQkFBbUJBLENBQVU7QUM5QjlELE1BQU1BLGFBQXVCO0lBQ2xDO1FBQUM7UUFBUSxDQUFFO1lBQUEsSUFBSSxDQUFLO1lBQUEsSUFBSSxDQUFLO1lBQUEsR0FBSSxLQUFNO1lBQUEsR0FBSSxLQUFNO1lBQUEsS0FBSztRQUFBLENBQVU7S0FBQTtJQUNoRTtRQUNFO1FBQ0E7WUFBRSxHQUFHLHFFQUF1RTtZQUFBLEtBQUssQ0FBUztRQUFBO0tBQzVGO0lBQ0E7UUFDRTtRQUNBO1lBQ0UsQ0FBRztZQUNILEdBQUs7UUFBQTtLQUNQO0NBRUo7QUFhTSxlQUFXLGtCQUFpQixjQUFhQSxDQUFVO0FDMUJsRCxNQUFNQSxhQUF1QjtJQUNsQztRQUNFO1FBQ0E7WUFDRSxDQUFHO1lBQ0gsR0FBSztRQUFBO0tBRVQ7SUFDQTtRQUFDLENBQVE7UUFBQSxDQUFFO1lBQUEsRUFBRyxXQUFZO1lBQUEsSUFBSztRQUFVO0tBQUE7Q0FDM0M7QUFhTSxpQkFBYSxrQkFBaUIsZ0JBQWVBLENBQVU7QUN0QnRELE1BQU1BLGFBQXVCO0lBQ2xDO1FBQ0U7UUFDQTtZQUNFLENBQUc7WUFDSCxHQUFLO1FBQUE7S0FFVDtJQUNBO1FBQUMsTUFBUTtRQUFBO1lBQUUsR0FBRyxDQUFZO1lBQUEsS0FBSztRQUFBLENBQVU7S0FBQTtJQUN6QztRQUFDLENBQVE7UUFBQSxDQUFFO1lBQUEsRUFBRyxXQUFZO1lBQUEsSUFBSztRQUFVO0tBQUE7Q0FDM0M7QUFhTSxnQkFBWSxrQkFBaUIsZUFBY0EsQ0FBVTtBQ3ZCcEQsTUFBTUEsYUFBdUI7SUFDbEM7UUFDRTtRQUNBO1lBQ0UsQ0FBRztZQUNILEdBQUs7UUFBQTtLQUVUO0lBQ0E7UUFBQyxDQUFRO1FBQUEsQ0FBRTtZQUFBLEVBQUcsMkNBQTRDO1lBQUEsSUFBSztRQUFVO0tBQUE7Q0FDM0U7QUFhTSxpQkFBYSxrQkFBaUIsZ0JBQWVBLENBQVU7QUN0QnRELE1BQU1BLGFBQXVCO0lBQ2xDO1FBQ0U7UUFDQTtZQUNFLENBQUc7WUFDSCxHQUFLO1FBQUE7S0FDUDtDQUVKO0FBYU0sWUFBUSxrQkFBaUIsVUFBU0EsQ0FBVTtBQ3JCM0MsTUFBTUEsYUFBdUI7SUFDbEM7UUFBQyxNQUFRO1FBQUE7WUFBRSxHQUFHLENBQXFCO1lBQUEsS0FBSztRQUFBLENBQVU7S0FBQTtJQUNsRDtRQUFDLE1BQVE7UUFBQTtZQUFFLEdBQUcsQ0FBdUI7WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0lBQ3BEO1FBQUMsTUFBUTtRQUFBO1lBQUUsR0FBRyxDQUFhO1lBQUEsS0FBSztRQUFBLENBQVU7S0FBQTtJQUMxQztRQUFDLE1BQVE7UUFBQTtZQUFFLEdBQUcsQ0FBYTtZQUFBLEtBQUs7UUFBQSxDQUFVO0tBQUE7SUFDMUM7UUFBQyxNQUFRO1FBQUE7WUFBRSxHQUFHLENBQWE7WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0lBQzFDO1FBQUMsTUFBUTtRQUFBO1lBQUUsR0FBRyxDQUFhO1lBQUEsS0FBSztRQUFBLENBQVU7S0FBQTtJQUMxQztRQUFDLE1BQVE7UUFBQTtZQUFFLEdBQUcsQ0FBYTtZQUFBLEtBQUs7UUFBQSxDQUFVO0tBQUE7SUFDMUM7UUFDRTtRQUNBO1lBQUUsR0FBRyx3RUFBMEU7WUFBQSxLQUFLLENBQVM7UUFBQTtLQUMvRjtJQUNBO1FBQUMsTUFBUTtRQUFBO1lBQUUsR0FBRyxDQUFXO1lBQUEsS0FBSztRQUFBLENBQVU7S0FBQTtJQUN4QztRQUFDLENBQVE7UUFBQSxDQUFFO1lBQUEsRUFBRyxXQUFZO1lBQUEsSUFBSztRQUFVO0tBQUE7Q0FDM0M7QUFhTSxhQUFTLGtCQUFpQixXQUFVQSxDQUFVO0FDM0I3QyxNQUFNQSxhQUF1QjtJQUNsQztRQUNFO1FBQ0E7WUFDRSxDQUFHO1lBQ0gsR0FBSztRQUFBO0tBQ1A7Q0FFSjtBQWFNLGNBQVUsa0JBQWlCLFlBQVdBLENBQVU7QUNyQi9DLE1BQU1BLGFBQXVCO0lBQ2xDO1FBQUMsTUFBUTtRQUFBO1lBQUUsR0FBRyxDQUFxQjtZQUFBLEtBQUs7UUFBQSxDQUFVO0tBQUE7SUFDbEQ7UUFBQyxDQUFRO1FBQUEsQ0FBRTtZQUFBLEVBQUcsK0RBQWdFO1lBQUEsSUFBSztRQUFVO0tBQUE7Q0FDL0Y7QUFhTSxrQkFBYyxrQkFBaUIsZ0JBQWVBLENBQVU7QUNoQnZELE1BQU1BLGFBQXVCO0lBQ2xDO1FBQUMsTUFBUTtRQUFBO1lBQUUsR0FBRyxDQUFxRDtZQUFBLEtBQUs7UUFBQSxDQUFVO0tBQUE7SUFDbEY7UUFBQyxNQUFRO1FBQUE7WUFBRSxHQUFHLENBQVk7WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0lBQ3pDO1FBQUMsQ0FBUTtRQUFBLENBQUU7WUFBQSxFQUFHLGNBQWU7WUFBQSxJQUFLO1FBQVU7S0FBQTtDQUM5QztBQWFNLGNBQVUsa0JBQWlCLFlBQVdBLENBQVU7QUNqQi9DLE1BQU1BLGFBQXVCO0lBQ2xDO1FBQUMsTUFBUTtRQUFBO1lBQUUsR0FBRyxDQUEwRDtZQUFBLEtBQUs7UUFBQSxDQUFVO0tBQUE7SUFDdkY7UUFDRTtRQUNBO1lBQ0UsQ0FBRztZQUNILEdBQUs7UUFBQTtLQUVUO0lBQ0E7UUFBQyxNQUFRO1FBQUE7WUFBRSxHQUFHLENBQTBEO1lBQUEsS0FBSztRQUFBLENBQVU7S0FBQTtJQUN2RjtRQUNFO1FBQ0E7WUFDRSxDQUFHO1lBQ0gsR0FBSztRQUFBO0tBRVQ7SUFDQTtRQUFDLE1BQVE7UUFBQTtZQUFFLEdBQUcsQ0FBOEQ7WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0lBQzNGO1FBQ0U7UUFDQTtZQUNFLENBQUc7WUFDSCxHQUFLO1FBQUE7S0FFVDtJQUNBO1FBQ0U7UUFDQTtZQUNFLENBQUc7WUFDSCxHQUFLO1FBQUE7S0FFVDtJQUNBO1FBQ0U7UUFDQTtZQUNFLENBQUc7WUFDSCxHQUFLO1FBQUE7S0FFVDtJQUNBO1FBQUMsQ0FBUTtRQUFBLENBQUU7WUFBQSxFQUFHLGFBQWM7WUFBQSxJQUFLO1FBQVU7S0FBQTtDQUM3QztBQWFNLGFBQVMsa0JBQWlCLFlBQVdBLENBQVU7QUNyRDlDLE1BQU1BLGFBQXVCO0lBQ2xDO1FBQ0U7UUFDQTtZQUNFLENBQUc7WUFDSCxHQUFLO1FBQUE7S0FFVDtJQUNBO1FBQ0U7UUFDQTtZQUNFLENBQUc7WUFDSCxHQUFLO1FBQUE7S0FFVDtJQUNBO1FBQ0U7UUFDQTtZQUNFLENBQUc7WUFDSCxHQUFLO1FBQUE7S0FFVDtJQUNBO1FBQ0U7UUFDQTtZQUNFLENBQUc7WUFDSCxHQUFLO1FBQUE7S0FFVDtJQUNBO1FBQ0U7UUFDQTtZQUNFLENBQUc7WUFDSCxHQUFLO1FBQUE7S0FFVDtJQUNBO1FBQ0U7UUFDQTtZQUNFLENBQUc7WUFDSCxHQUFLO1FBQUE7S0FFVDtJQUNBO1FBQUMsTUFBUTtRQUFBO1lBQUUsR0FBRyxDQUFpQztZQUFBLEtBQUs7UUFBQSxDQUFVO0tBQUE7SUFDOUQ7UUFDRTtRQUNBO1lBQ0UsQ0FBRztZQUNILEdBQUs7UUFBQTtLQUNQO0NBRUo7QUFhTSxVQUFNLGtCQUFpQixRQUFPQSxDQUFVO0FDaEV2QyxNQUFNQSxhQUF1QjtJQUNsQztRQUFDLE1BQVE7UUFBQTtZQUFFLEdBQUcsQ0FBVztZQUFBLEtBQUs7UUFBQSxDQUFVO0tBQUE7SUFDeEM7UUFBQyxNQUFRO1FBQUE7WUFBRSxHQUFHLENBQWE7WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0lBQzFDO1FBQUMsTUFBUTtRQUFBO1lBQUUsR0FBRyxDQUFhO1lBQUEsS0FBSztRQUFBLENBQVU7S0FBQTtJQUMxQztRQUFDLE1BQVE7UUFBQTtZQUFFLEdBQUcsQ0FBWTtZQUFBLEtBQUs7UUFBQSxDQUFVO0tBQUE7SUFDekM7UUFDRTtRQUNBO1lBQ0UsQ0FBRztZQUNILEdBQUs7UUFBQTtLQUVUO0lBQ0E7UUFBQyxDQUFRO1FBQUEsQ0FBRTtZQUFBLEVBQUcsNENBQTZDO1lBQUEsSUFBSztRQUFVO0tBQUE7Q0FDNUU7QUFhTSxlQUFXLGtCQUFpQixhQUFZQSxDQUFVO0FDMUJqRCxNQUFNQSxhQUF1QjtJQUNsQztRQUFDLE1BQVE7UUFBQTtZQUFFLEdBQUcsQ0FBZ0I7WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0lBQzdDO1FBQUMsTUFBUTtRQUFBO1lBQUUsR0FBRyxDQUFjO1lBQUEsS0FBSztRQUFBLENBQVU7S0FBQTtJQUMzQztRQUFDLE1BQVE7UUFBQTtZQUFFLEdBQUcsQ0FBYTtZQUFBLEtBQUs7UUFBQSxDQUFVO0tBQUE7SUFDMUM7UUFBQyxNQUFRO1FBQUE7WUFBRSxHQUFHLENBQWdCO1lBQUEsS0FBSztRQUFBLENBQVU7S0FBQTtJQUM3QztRQUFDLE1BQVE7UUFBQTtZQUFFLEdBQUcsQ0FBd0I7WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0lBQ3JEO1FBQUMsTUFBUTtRQUFBO1lBQUUsR0FBRyxDQUFjO1lBQUEsS0FBSztRQUFBLENBQVU7S0FBQTtJQUMzQztRQUFDLE1BQVE7UUFBQTtZQUFFLEdBQUcsQ0FBYTtZQUFBLEtBQUs7UUFBQSxDQUFVO0tBQUE7SUFDMUM7UUFBQyxNQUFRO1FBQUE7WUFBRSxHQUFHLENBQWE7WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0lBQzFDO1FBQUMsTUFBUTtRQUFBO1lBQUUsR0FBRyxDQUFZO1lBQUEsS0FBSztRQUFBLENBQVU7S0FBQTtJQUN6QztRQUFDO1FBQVEsQ0FBRTtZQUFBLEVBQUcsS0FBSztZQUFBLENBQUcsTUFBSztZQUFBLEtBQU8sT0FBTTtZQUFBLE9BQVEsS0FBTTtZQUFBLEdBQUksSUFBSztZQUFBLElBQUs7UUFBVTtLQUFBO0NBQ2hGO0FBYU0sWUFBUSxrQkFBaUIsVUFBU0EsQ0FBVTtBQ3hCM0MsTUFBTUEsYUFBdUI7SUFDbEM7UUFBQyxNQUFRO1FBQUE7WUFBRSxHQUFHLENBQVk7WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0lBQ3pDO1FBQUMsTUFBUTtRQUFBO1lBQUUsR0FBRyxDQUFXO1lBQUEsS0FBSztRQUFBLENBQVU7S0FBQTtJQUN4QztRQUNFO1FBQ0E7WUFDRSxDQUFHO1lBQ0gsR0FBSztRQUFBO0tBRVQ7SUFDQTtRQUNFO1FBQ0E7WUFBRSxHQUFHLHdFQUEwRTtZQUFBLEtBQUssQ0FBUztRQUFBO0tBQUE7Q0FFakc7QUFhTSxnQkFBWSxrQkFBaUIsY0FBYUEsQ0FBVTtBQzNCbkQsTUFBTUEsYUFBdUI7SUFDbEM7UUFBQyxNQUFRO1FBQUE7WUFBRSxHQUFHLENBQWdCO1lBQUEsS0FBSztRQUFBLENBQVU7S0FBQTtJQUM3QztRQUFDLE1BQVE7UUFBQTtZQUFFLEdBQUcsQ0FBZ0I7WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0lBQzdDO1FBQ0U7UUFDQTtZQUFFLEdBQUcseUVBQTJFO1lBQUEsS0FBSyxDQUFTO1FBQUE7S0FDaEc7SUFDQTtRQUNFO1FBQ0E7WUFDRSxDQUFHO1lBQ0gsR0FBSztRQUFBO0tBQ1A7Q0FFSjtBQWFNLGdCQUFZLGtCQUFpQixlQUFjQSxDQUFVO0FDM0JwRCxNQUFNQSxhQUF1QjtJQUNsQztRQUNFO1FBQ0E7WUFDRSxDQUFHO1lBQ0gsR0FBSztRQUFBO0tBRVQ7SUFDQTtRQUFDLE1BQVE7UUFBQTtZQUFFLEdBQUcsQ0FBcUQ7WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0lBQ2xGO1FBQUMsTUFBUTtRQUFBO1lBQUUsR0FBRyxDQUFZO1lBQUEsS0FBSztRQUFBLENBQVU7S0FBQTtJQUN6QztRQUFDLENBQVE7UUFBQSxDQUFFO1lBQUEsRUFBRyxXQUFZO1lBQUEsSUFBSztRQUFVO0tBQUE7Q0FDM0M7QUFhTSxnQkFBWSxrQkFBaUIsZUFBY0EsQ0FBVTtBQ3hCcEQsTUFBTUEsYUFBdUI7SUFDbEM7UUFBQyxNQUFRO1FBQUE7WUFBRSxHQUFHLENBQThDO1lBQUEsS0FBSztRQUFBLENBQVU7S0FBQTtJQUMzRTtRQUNFO1FBQ0E7WUFDRSxDQUFHO1lBQ0gsR0FBSztRQUFBO0tBQ1A7Q0FFSjtBQWFNLFlBQVEsa0JBQWlCLFVBQVNBLENBQVU7QUN0QjNDLE1BQU1BLGFBQXVCO0lBQ2xDO1FBQUMsTUFBUTtRQUFBO1lBQUUsR0FBRyxDQUErQjtZQUFBLEtBQUs7UUFBQSxDQUFVO0tBQUE7SUFDNUQ7UUFBQyxNQUFRO1FBQUE7WUFBRSxHQUFHLENBQWM7WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0lBQzNDO1FBQ0U7UUFDQTtZQUNFLENBQUc7WUFDSCxHQUFLO1FBQUE7S0FFVDtJQUNBO1FBQUMsQ0FBUTtRQUFBLENBQUU7WUFBQSxFQUFHLDJCQUE0QjtZQUFBLElBQUs7UUFBVTtLQUFBO0NBQzNEO0FBYU0sZ0JBQVksa0JBQWlCLGVBQWNBLENBQVU7QUN4QnBELE1BQU1BLGFBQXVCO0lBQ2xDO1FBQ0U7UUFDQTtZQUNFLENBQUc7WUFDSCxHQUFLO1FBQUE7S0FFVDtJQUNBO1FBQUMsTUFBUTtRQUFBO1lBQUUsR0FBRyxDQUFrQztZQUFBLEtBQUs7UUFBQSxDQUFVO0tBQUE7SUFDL0Q7UUFBQyxDQUFRO1FBQUEsQ0FBRTtZQUFBLEVBQUcsOEJBQStCO1lBQUEsSUFBSztRQUFVO0tBQUE7Q0FDOUQ7QUFhTSxtQkFBZSxrQkFBaUIsbUJBQWtCQSxDQUFVO0FDdkIzRCxNQUFNQSxhQUF1QjtJQUNsQztRQUFDLE1BQVE7UUFBQTtZQUFFLEdBQUcsQ0FBMkM7WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0lBQ3hFO1FBQUMsTUFBUTtRQUFBO1lBQUUsR0FBRyxDQUF1QjtZQUFBLEtBQUs7UUFBQSxDQUFVO0tBQUE7SUFDcEQ7UUFBQyxDQUFRO1FBQUEsQ0FBRTtZQUFBLEVBQUcsc0NBQXVDO1lBQUEsSUFBSztRQUFVO0tBQUE7Q0FDdEU7QUFhTSxtQkFBZSxrQkFBaUIsbUJBQWtCQSxDQUFVO0FDakIzRCxNQUFNQSxhQUF1QjtJQUNsQztRQUFDLE1BQVE7UUFBQTtZQUFFLEdBQUcsQ0FBYztZQUFBLEtBQUs7UUFBQSxDQUFVO0tBQUE7SUFDM0M7UUFDRTtRQUNBO1lBQ0UsQ0FBRztZQUNILEdBQUs7UUFBQTtLQUVUO0lBQ0E7UUFBQyxNQUFRO1FBQUE7WUFBRSxHQUFHLENBQStCO1lBQUEsS0FBSztRQUFBLENBQVU7S0FBQTtJQUM1RDtRQUFDLE1BQVE7UUFBQTtZQUFFLEdBQUcsQ0FBWTtZQUFBLEtBQUs7UUFBQSxDQUFVO0tBQUE7SUFDekM7UUFBQyxDQUFVO1FBQUE7WUFBRSxDQUFJLFFBQU07WUFBQSxFQUFJO1lBQU0sQ0FBRztZQUFLLENBQUs7UUFBVTtLQUFBO0NBQzFEO0FBYU0sb0JBQWdCLGtCQUFpQixvQkFBbUJBLENBQVU7QUN6QjdELE1BQU1BLGFBQXVCO0lBQ2xDO1FBQUMsTUFBUTtRQUFBO1lBQUUsR0FBRyxDQUFZO1lBQUEsS0FBSztRQUFBLENBQVU7S0FBQTtJQUN6QztRQUFDLE1BQVE7UUFBQTtZQUFFLEdBQUcsQ0FBWTtZQUFBLEtBQUs7UUFBQSxDQUFVO0tBQUE7SUFDekM7UUFBQyxNQUFRO1FBQUE7WUFBRSxHQUFHLENBQTZCO1lBQUEsS0FBSztRQUFBLENBQVU7S0FBQTtJQUMxRDtRQUFDLFFBQVU7UUFBQTtZQUFFLEVBQUk7WUFBSyxDQUFJLFFBQU07WUFBQSxDQUFHO1lBQUssR0FBSztRQUFBLENBQVU7S0FBQTtJQUN2RDtRQUFDO1FBQVEsQ0FBRTtZQUFBLEVBQUcsS0FBSztZQUFBLENBQUcsTUFBSztZQUFBLEtBQU8sT0FBTTtZQUFBLE9BQVEsS0FBTTtZQUFBLEdBQUksSUFBSztZQUFBLElBQUs7UUFBVTtLQUFBO0NBQ2hGO0FBYU0sYUFBUyxrQkFBaUIsWUFBV0EsQ0FBVTtBQ25COUMsTUFBTUEsYUFBdUI7SUFDbEM7UUFDRTtRQUNBO1lBQ0UsQ0FBRztZQUNILEdBQUs7UUFBQTtLQUVUO0lBQ0E7UUFBQyxNQUFRO1FBQUE7WUFBRSxHQUFHLENBQW1CO1lBQUEsS0FBSztRQUFBLENBQVU7S0FBQTtJQUNoRDtRQUFDLE1BQVE7UUFBQTtZQUFFLEdBQUcsQ0FBYztZQUFBLEtBQUs7UUFBQSxDQUFVO0tBQUE7SUFDM0M7UUFBQyxDQUFVO1FBQUE7WUFBRSxDQUFJLE9BQUs7WUFBQSxFQUFJO1lBQUssQ0FBRztZQUFLLENBQUs7UUFBVTtLQUFBO0NBQ3hEO0FBYU0sZ0JBQVksa0JBQWlCLGVBQWNBLENBQVU7QUN4QnBELE1BQU1BLGFBQXVCO0lBQ2xDO1FBQUMsTUFBUTtRQUFBO1lBQUUsR0FBRyxDQUE0RDtZQUFBLEtBQUs7UUFBQSxDQUFVO0tBQUE7SUFDekY7UUFBQztRQUFRLENBQUU7WUFBQSxJQUFJLENBQU07WUFBQSxJQUFJLENBQU07WUFBQSxHQUFJLElBQUs7WUFBQSxHQUFJLElBQUs7WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0lBQ2hFO1FBQUMsUUFBVTtRQUFBO1lBQUUsRUFBSTtZQUFLLENBQUksT0FBSztZQUFBLENBQUc7WUFBSyxHQUFLO1FBQUEsQ0FBVTtLQUFBO0lBQ3REO1FBQUMsQ0FBUTtRQUFBLENBQUU7WUFBQSxFQUFHLDRDQUE2QztZQUFBLElBQUs7UUFBVTtLQUFBO0NBQzVFO0FBYU0saUJBQWEsa0JBQWlCLGdCQUFlQSxDQUFVO0FDbEJ0RCxNQUFNQSxhQUF1QjtJQUNsQztRQUFDO1FBQVEsQ0FBRTtZQUFBLElBQUksQ0FBSztZQUFBLElBQUksQ0FBTTtZQUFBLEdBQUksSUFBSztZQUFBLEdBQUksS0FBTTtZQUFBLEtBQUs7UUFBQSxDQUFVO0tBQUE7SUFDaEU7UUFBQyxNQUFRO1FBQUE7WUFBRSxHQUFHLENBQW9DO1lBQUEsS0FBSztRQUFBLENBQVU7S0FBQTtJQUNqRTtRQUFDO1FBQVEsQ0FBRTtZQUFBLElBQUksQ0FBUTtZQUFBLElBQUksQ0FBSztZQUFBLEdBQUksT0FBUTtZQUFBLEdBQUksS0FBTTtZQUFBLEtBQUs7UUFBQSxDQUFVO0tBQUE7SUFDckU7UUFBQztRQUFRLENBQUU7WUFBQSxJQUFJLENBQU07WUFBQSxJQUFJLENBQU07WUFBQSxHQUFJLEtBQU07WUFBQSxHQUFJLEtBQU07WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0lBQ2xFO1FBQ0U7UUFDQTtZQUNFLENBQUc7WUFDSCxHQUFLO1FBQUE7S0FFVDtJQUNBO1FBQUMsQ0FBUTtRQUFBLENBQUU7WUFBQSxFQUFHLDJCQUE0QjtZQUFBLElBQUs7UUFBVTtLQUFBO0NBQzNEO0FBYU0sZUFBVyxrQkFBaUIsY0FBYUEsQ0FBVTtBQzFCbEQsTUFBTUEsYUFBdUI7SUFDbEM7UUFBQyxNQUFRO1FBQUE7WUFBRSxHQUFHLENBQWM7WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0lBQzNDO1FBQUMsTUFBUTtRQUFBO1lBQUUsR0FBRyxDQUErRDtZQUFBLEtBQUs7UUFBQSxDQUFVO0tBQUE7SUFDNUY7UUFDRTtRQUNBO1lBQ0UsQ0FBRztZQUNILEdBQUs7UUFBQTtLQUVUO0lBQ0E7UUFBQyxDQUFVO1FBQUE7WUFBRSxDQUFJLE9BQUs7WUFBQSxFQUFJO1lBQUssQ0FBRztZQUFLLENBQUs7UUFBVTtLQUFBO0NBQ3hEO0FBYU0sZ0JBQVksa0JBQWlCLGVBQWNBLENBQVU7QUN4QnBELE1BQU1BLGFBQXVCO0lBQ2xDO1FBQUMsTUFBUTtRQUFBO1lBQUUsR0FBRyxDQUFXO1lBQUEsS0FBSztRQUFBLENBQVU7S0FBQTtJQUN4QztRQUFDLE1BQVE7UUFBQTtZQUFFLEdBQUcsQ0FBVztZQUFBLEtBQUs7UUFBQSxDQUFVO0tBQUE7SUFDeEM7UUFBQyxNQUFRO1FBQUE7WUFBRSxHQUFHLENBQWlFO1lBQUEsS0FBSztRQUFBLENBQVU7S0FBQTtJQUM5RjtRQUFDLE1BQVE7UUFBQTtZQUFFLEdBQUcsQ0FBNkM7WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0lBQzFFO1FBQUMsQ0FBVTtRQUFBO1lBQUUsQ0FBSSxPQUFLO1lBQUEsRUFBSTtZQUFLLENBQUc7WUFBSyxDQUFLO1FBQVU7S0FBQTtDQUN4RDtBQWFNLGdCQUFZLGtCQUFpQixlQUFjQSxDQUFVO0FDbkJwRCxNQUFNQSxhQUF1QjtJQUNsQztRQUNFO1FBQ0E7WUFDRSxDQUFHO1lBQ0gsR0FBSztRQUFBO0tBRVQ7SUFDQTtRQUFDLE1BQVE7UUFBQTtZQUFFLEdBQUcsQ0FBb0I7WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0lBQ2pEO1FBQUMsTUFBUTtRQUFBO1lBQUUsR0FBRyxDQUFlO1lBQUEsS0FBSztRQUFBLENBQVU7S0FBQTtJQUM1QztRQUFDLENBQVU7UUFBQTtZQUFFLENBQUksT0FBSztZQUFBLEVBQUk7WUFBSyxDQUFHO1lBQUssQ0FBSztRQUFVO0tBQUE7Q0FDeEQ7QUFhTSxjQUFVLGtCQUFpQixhQUFZQSxDQUFVO0FDeEJoRCxNQUFNQSxhQUF1QjtJQUNsQztRQUFDLE1BQVE7UUFBQTtZQUFFLEdBQUcsQ0FBYTtZQUFBLEtBQUs7UUFBQSxDQUFVO0tBQUE7SUFDMUM7UUFBQyxNQUFRO1FBQUE7WUFBRSxHQUFHLENBQTBCO1lBQUEsS0FBSztRQUFBLENBQVU7S0FBQTtJQUN2RDtRQUFDLE1BQVE7UUFBQTtZQUFFLEdBQUcsQ0FBWTtZQUFBLEtBQUs7UUFBQSxDQUFVO0tBQUE7SUFDekM7UUFBQyxNQUFRO1FBQUE7WUFBRSxHQUFHLENBQWE7WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0lBQzFDO1FBQUMsTUFBUTtRQUFBO1lBQUUsR0FBRyxDQUF3QjtZQUFBLEtBQUs7UUFBQSxDQUFVO0tBQUE7SUFDckQ7UUFBQyxNQUFRO1FBQUE7WUFBRSxHQUFHLENBQW1EO1lBQUEsS0FBSztRQUFBLENBQVU7S0FBQTtJQUNoRjtRQUFDLE1BQVE7UUFBQTtZQUFFLEdBQUcsQ0FBVTtZQUFBLEtBQUs7UUFBQSxDQUFTO0tBQUE7SUFDdEM7UUFBQztRQUFRLENBQUU7WUFBQSxFQUFHLEtBQUs7WUFBQSxDQUFHLE9BQU07WUFBQSxLQUFPLE9BQU07WUFBQSxPQUFRLEtBQU07WUFBQSxHQUFJLElBQUs7WUFBQSxJQUFLO1FBQVU7S0FBQTtDQUNqRjtBQWFNLG1CQUFlLGtCQUFpQixrQkFBaUJBLENBQVU7QUN0QjFELE1BQU1BLGFBQXVCO0lBQ2xDO1FBQUMsTUFBUTtRQUFBO1lBQUUsS0FBTyxPQUFNO1lBQUEsT0FBUSxLQUFNO1lBQUEsR0FBRyxDQUFLO1lBQUEsR0FBRztZQUFLLENBQUksT0FBSztZQUFBLEdBQUksSUFBSztZQUFBLElBQUs7UUFBQSxDQUFVO0tBQUE7SUFDdkY7UUFBQyxRQUFVO1FBQUE7WUFBRSxFQUFJO1lBQUssQ0FBSSxPQUFLO1lBQUEsQ0FBRztZQUFLLEdBQUs7UUFBQSxDQUFVO0tBQUE7SUFDdEQ7UUFBQyxDQUFRO1FBQUEsQ0FBRTtZQUFBLEVBQUcsNENBQTZDO1lBQUEsSUFBSztRQUFVO0tBQUE7Q0FDNUU7QUFhTSxZQUFRLGtCQUFpQixVQUFTQSxDQUFVO0FDakIzQyxNQUFNQSxhQUF1QjtJQUNsQztRQUFDLE1BQVE7UUFBQTtZQUFFLEdBQUcsQ0FBNEI7WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0lBQ3pEO1FBQUMsTUFBUTtRQUFBO1lBQUUsR0FBRyxDQUFvRDtZQUFBLEtBQUs7UUFBQSxDQUFVO0tBQUE7SUFDakY7UUFBQyxRQUFVO1FBQUE7WUFBRSxFQUFJO1lBQU0sQ0FBSSxPQUFLO1lBQUEsQ0FBRztZQUFLLEdBQUs7UUFBQSxDQUFVO0tBQUE7SUFDdkQ7UUFBQztRQUFRLENBQUU7WUFBQSxNQUFPLE1BQU07WUFBQSxNQUFRLE9BQU07WUFBQSxDQUFHLE1BQUs7WUFBQSxFQUFHLElBQUs7WUFBQSxHQUFJLElBQUs7WUFBQSxJQUFLO1FBQVU7S0FBQTtDQUNoRjtBQWFNLGFBQVMsa0JBQWlCLFdBQVVBLENBQVU7QUNsQjdDLE1BQU1BLGFBQXVCO0lBQ2xDO1FBQUMsTUFBUTtRQUFBO1lBQUUsR0FBRyxDQUFZO1lBQUEsS0FBSztRQUFBLENBQVU7S0FBQTtJQUN6QztRQUFDLE1BQVE7UUFBQTtZQUFFLEdBQUcsQ0FBaUI7WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0lBQzlDO1FBQ0U7UUFDQTtZQUNFLENBQUc7WUFDSCxHQUFLO1FBQUE7S0FDUDtDQUVKO0FBYU0sYUFBUyxrQkFBaUIsV0FBVUEsQ0FBVTtBQ3ZCN0MsTUFBTUEsYUFBdUI7SUFDbEM7UUFBQyxVQUFZO1FBQUE7WUFBRSxRQUFRLENBQXFDO1lBQUEsS0FBSztRQUFBLENBQVU7S0FBQTtJQUMzRTtRQUNFO1FBQ0E7WUFDRSxDQUFHO1lBQ0gsR0FBSztRQUFBO0tBQ1A7Q0FFSjtBQWFNLFlBQVEsa0JBQWlCLFVBQVNBLENBQVU7QUN0QjNDLE1BQU1BLGFBQXVCO0lBQ2xDO1FBQUMsTUFBUTtRQUFBO1lBQUUsR0FBRyxDQUFhO1lBQUEsS0FBSztRQUFBLENBQVU7S0FBQTtJQUMxQztRQUFDLE1BQVE7UUFBQTtZQUFFLEdBQUcsQ0FBYTtZQUFBLEtBQUs7UUFBQSxDQUFVO0tBQUE7SUFDMUM7UUFBQyxNQUFRO1FBQUE7WUFBRSxHQUFHLENBQVk7WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0lBQ3pDO1FBQUMsQ0FBUTtRQUFBLENBQUU7WUFBQSxFQUFHLGVBQWdCO1lBQUEsSUFBSztRQUFVO0tBQUE7Q0FDL0M7QUFhTSxxQkFBaUIsa0JBQWlCLG9CQUFtQkEsQ0FBVTtBQ2xCOUQsTUFBTUEsYUFBdUI7SUFDbEM7UUFBQyxNQUFRO1FBQUE7WUFBRSxHQUFHLENBQWE7WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0lBQzFDO1FBQUMsTUFBUTtRQUFBO1lBQUUsR0FBRyxDQUFhO1lBQUEsS0FBSztRQUFBLENBQVU7S0FBQTtJQUMxQztRQUFDLE1BQVE7UUFBQTtZQUFFLEdBQUcsQ0FBWTtZQUFBLEtBQUs7UUFBQSxDQUFVO0tBQUE7SUFDekM7UUFBQyxDQUFRO1FBQUEsQ0FBRTtZQUFBLEVBQUcsZUFBZ0I7WUFBQSxJQUFLO1FBQVU7S0FBQTtDQUMvQztBQWFNLHFCQUFpQixrQkFBaUIsb0JBQW1CQSxDQUFVO0FDbEI5RCxNQUFNQSxhQUF1QjtJQUNsQztRQUFDLE1BQVE7UUFBQTtZQUFFLEdBQUcsQ0FBVztZQUFBLEtBQUs7UUFBQSxDQUFVO0tBQUE7SUFDeEM7UUFBQyxNQUFRO1FBQUE7WUFBRSxHQUFHLENBQVc7WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0lBQ3hDO1FBQUMsTUFBUTtRQUFBO1lBQUUsR0FBRyxDQUFlO1lBQUEsS0FBSztRQUFBLENBQVU7S0FBQTtJQUM1QztRQUFDLE1BQVE7UUFBQTtZQUFFLEdBQUcsQ0FBVztZQUFBLEtBQUs7UUFBQSxDQUFVO0tBQUE7SUFDeEM7UUFBQyxDQUFRO1FBQUEsQ0FBRTtZQUFBLEVBQUcsOEJBQStCO1lBQUEsSUFBSztRQUFVO0tBQUE7Q0FDOUQ7QUFhTSxrQkFBYyxrQkFBaUIsaUJBQWdCQSxDQUFVO0FDbkJ4RCxNQUFNQSxhQUF1QjtJQUNsQztRQUFDLENBQVE7UUFBQSxDQUFFO1lBQUEsRUFBRywrREFBZ0U7WUFBQSxJQUFLO1FBQVU7S0FBQTtDQUMvRjtBQWFNLGVBQVcsa0JBQWlCLGFBQVlBLENBQVU7QUNmakQsTUFBTUEsYUFBdUI7SUFDbEM7UUFBQyxRQUFVO1FBQUE7WUFBRSxFQUFJO1lBQU0sQ0FBSSxRQUFNO1lBQUEsQ0FBRztZQUFNLEdBQUs7UUFBQSxDQUFVO0tBQUE7SUFDekQ7UUFBQyxNQUFRO1FBQUE7WUFBRSxHQUFHLENBQWE7WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0lBQzFDO1FBQUMsQ0FBUTtRQUFBLENBQUU7WUFBQSxFQUFHLFlBQWE7WUFBQSxJQUFLO1FBQVU7S0FBQTtDQUM1QztBQWFNLFdBQU8sa0JBQWlCLFNBQVFBLENBQVU7QUNqQnpDLE1BQU1BLGFBQXVCO0lBQ2xDO1FBQUMsTUFBUTtRQUFBO1lBQUUsS0FBTyxPQUFNO1lBQUEsT0FBUSxLQUFNO1lBQUEsR0FBRyxDQUFLO1lBQUEsR0FBRztZQUFLLENBQUksT0FBSztZQUFBLEdBQUksSUFBSztZQUFBLElBQUs7UUFBQSxDQUFVO0tBQUE7SUFDdkY7UUFBQyxNQUFRO1FBQUE7WUFBRSxHQUFHLENBQW1EO1lBQUEsS0FBSztRQUFBLENBQVU7S0FBQTtJQUNoRjtRQUFDLE9BQVE7UUFBQTtZQUFFLEdBQUksT0FBUTtZQUFBLEdBQUksUUFBUztZQUFBLElBQUksQ0FBTztZQUFBLElBQUksS0FBTztZQUFBLElBQUs7UUFBVTtLQUFBO0NBQzNFO0FBYU0sZ0JBQVksa0JBQWlCLGNBQWFBLENBQVU7QUNqQm5ELE1BQU1BLGFBQXVCO0lBQ2xDO1FBQUMsT0FBUTtRQUFBO1lBQUUsT0FBTztZQUFNLENBQVE7WUFBTSxDQUFHO1lBQUssR0FBRyxDQUFLO1lBQUEsSUFBSSxDQUFLO1lBQUEsS0FBSztRQUFBLENBQVU7S0FBQTtJQUM5RTtRQUFDLE1BQVE7UUFBQTtZQUFFLEdBQUcsQ0FBWTtZQUFBLEtBQUs7UUFBQSxDQUFVO0tBQUE7SUFDekM7UUFBQyxNQUFRO1FBQUE7WUFBRSxHQUFHLENBQWE7WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0lBQzFDO1FBQUMsTUFBUTtRQUFBO1lBQUUsR0FBRyxDQUFhO1lBQUEsS0FBSztRQUFBLENBQVU7S0FBQTtJQUMxQztRQUFDLENBQVE7UUFBQSxDQUFFO1lBQUEsRUFBRyxhQUFjO1lBQUEsSUFBSztRQUFVO0tBQUE7Q0FDN0M7QUFhTSxzQkFBa0Isa0JBQWlCLHFCQUFvQkEsQ0FBVTtBQ25CaEUsTUFBTUEsYUFBdUI7SUFDbEM7UUFBQztRQUFRLENBQUU7WUFBQSxJQUFJLENBQU07WUFBQSxJQUFJLENBQU07WUFBQSxHQUFJLElBQUs7WUFBQSxHQUFJLElBQUs7WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0lBQ2hFO1FBQUM7UUFBUSxDQUFFO1lBQUEsSUFBSSxDQUFNO1lBQUEsSUFBSSxDQUFLO1lBQUEsR0FBSSxLQUFNO1lBQUEsR0FBSSxLQUFNO1lBQUEsS0FBSztRQUFBLENBQVU7S0FBQTtJQUNqRTtRQUFDLE9BQVE7UUFBQTtZQUFFLEdBQUksS0FBTTtZQUFBLEdBQUksSUFBSztZQUFBLElBQUksQ0FBSztZQUFBLElBQUksSUFBTTtZQUFBLElBQUs7UUFBVTtLQUFBO0NBQ2xFO0FBYU0sYUFBUyxrQkFBaUIsV0FBVUEsQ0FBVTtBQ2pCN0MsTUFBTUEsYUFBdUI7SUFDbEM7UUFBQyxNQUFRO1FBQUE7WUFBRSxHQUFHLENBQWtCO1lBQUEsS0FBSztRQUFBLENBQVU7S0FBQTtJQUMvQztRQUFDLENBQVE7UUFBQSxDQUFFO1lBQUEsRUFBRyx5QkFBMEI7WUFBQSxJQUFLO1FBQVU7S0FBQTtDQUN6RDtBQWFNLG1CQUFlLGtCQUFpQixrQkFBaUJBLENBQVU7QUNoQjFELE1BQU1BLGFBQXVCO0lBQ2xDO1FBQUMsTUFBUTtRQUFBO1lBQUUsR0FBRyxDQUF5QjtZQUFBLEtBQUs7UUFBQSxDQUFVO0tBQUE7SUFDdEQ7UUFBQyxDQUFRO1FBQUEsQ0FBRTtZQUFBLEVBQUcsZ0JBQWlCO1lBQUEsSUFBSztRQUFVO0tBQUE7Q0FDaEQ7QUFhTSxrQkFBYyxrQkFBaUIsaUJBQWdCQSxDQUFVO0FDaEJ4RCxNQUFNQSxhQUF1QjtJQUNsQztRQUFDLE1BQVE7UUFBQTtZQUFFLEdBQUcsQ0FBb0M7WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0lBQ2pFO1FBQUMsTUFBUTtRQUFBO1lBQUUsR0FBRyxDQUFZO1lBQUEsS0FBSztRQUFBLENBQVU7S0FBQTtJQUN6QztRQUFDLENBQVE7UUFBQSxDQUFFO1lBQUEsRUFBRyxXQUFZO1lBQUEsSUFBSztRQUFVO0tBQUE7Q0FDM0M7QUFhTSxrQkFBYyxrQkFBaUIsaUJBQWdCQSxDQUFVO0FDakJ4RCxNQUFNQSxhQUF1QjtJQUNsQztRQUNFO1FBQ0E7WUFDRSxDQUFHO1lBQ0gsR0FBSztRQUFBO0tBRVQ7SUFDQTtRQUFDLE1BQVE7UUFBQTtZQUFFLEdBQUcsQ0FBWTtZQUFBLEtBQUs7UUFBQSxDQUFVO0tBQUE7SUFDekM7UUFBQyxNQUFRO1FBQUE7WUFBRSxHQUFHLENBQVk7WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0lBQ3pDO1FBQUMsQ0FBVTtRQUFBO1lBQUUsQ0FBSSxRQUFNO1lBQUEsRUFBSTtZQUFLLENBQUc7WUFBSyxDQUFLO1FBQVU7S0FBQTtDQUN6RDtBQWFNLGVBQVcsa0JBQWlCLGFBQVlBLENBQVU7QUN4QmpELE1BQU1BLGFBQXVCO0lBQ2xDO1FBQUMsTUFBUTtRQUFBO1lBQUUsR0FBRyxDQUFXO1lBQUEsS0FBSztRQUFBLENBQVU7S0FBQTtJQUN4QztRQUFDLE1BQVE7UUFBQTtZQUFFLEdBQUcsQ0FBVztZQUFBLEtBQUs7UUFBQSxDQUFVO0tBQUE7SUFDeEM7UUFBQyxDQUFRO1FBQUEsQ0FBRTtZQUFBLEVBQUcsV0FBWTtZQUFBLElBQUs7UUFBVTtLQUFBO0NBQzNDO0FBYU0sYUFBUyxrQkFBaUIsV0FBVUEsQ0FBVTtBQ2pCN0MsTUFBTUEsYUFBdUI7SUFDbEM7UUFDRTtRQUNBO1lBQ0UsQ0FBRztZQUNILEdBQUs7UUFBQTtLQUVUO0lBQ0E7UUFBQyxTQUFVO1FBQUE7WUFBRSxHQUFJLE9BQVE7WUFBQSxHQUFJLE1BQU87WUFBQSxHQUFHLENBQU07WUFBQSxNQUFNLGNBQWdCO1lBQUEsSUFBSztRQUFVO0tBQUE7Q0FDcEY7QUFhTSxlQUFXLGtCQUFpQixjQUFhQSxDQUFVO0FDdEJsRCxNQUFNQSxhQUF1QjtJQUNsQztRQUNFO1FBQ0E7WUFDRSxDQUFHO1lBQ0gsR0FBSztRQUFBO0tBRVQ7SUFDQTtRQUFDLE1BQVE7UUFBQTtZQUFFLEdBQUcsQ0FBYTtZQUFBLEtBQUs7UUFBQSxDQUFVO0tBQUE7SUFDMUM7UUFDRTtRQUNBO1lBQ0UsQ0FBRztZQUNILEdBQUs7UUFBQTtLQUNQO0NBRUo7QUFhTSxnQkFBWSxrQkFBaUIsZUFBY0EsQ0FBVTtBQzdCcEQsTUFBTUEsYUFBdUI7SUFDbEM7UUFBQyxNQUFRO1FBQUE7WUFBRSxHQUFHLENBQWtFO1lBQUEsS0FBSztRQUFBLENBQVU7S0FBQTtJQUMvRjtRQUFDLE1BQVE7UUFBQTtZQUFFLEdBQUcsQ0FBaUI7WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0lBQzlDO1FBQUMsQ0FBVTtRQUFBO1lBQUUsQ0FBSSxTQUFPO1lBQUEsRUFBSTtZQUFRLENBQUc7WUFBTyxDQUFLO1FBQVU7S0FBQTtDQUMvRDtBQWFNLFVBQU0sa0JBQWlCLFFBQU9BLENBQVU7QUNqQnZDLE1BQU1BLGFBQXVCO0lBQ2xDO1FBQUMsTUFBUTtRQUFBO1lBQUUsR0FBRyxDQUEwQjtZQUFBLEtBQUs7UUFBQSxDQUFVO0tBQUE7SUFDdkQ7UUFBQyxNQUFRO1FBQUE7WUFBRSxHQUFHLENBQXFCO1lBQUEsS0FBSztRQUFBLENBQVU7S0FBQTtJQUNsRDtRQUFDLE1BQVE7UUFBQTtZQUFFLEdBQUcsQ0FBa0I7WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0lBQy9DO1FBQUMsTUFBUTtRQUFBO1lBQUUsR0FBRyxDQUFtQjtZQUFBLEtBQUs7UUFBQSxDQUFVO0tBQUE7SUFDaEQ7UUFBQyxNQUFRO1FBQUE7WUFBRSxHQUFHLENBQWE7WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0lBQzFDO1FBQUMsTUFBUTtRQUFBO1lBQUUsR0FBRyxDQUFhO1lBQUEsS0FBSztRQUFBLENBQVU7S0FBQTtJQUMxQztRQUFDLE1BQVE7UUFBQTtZQUFFLEdBQUcsQ0FBYztZQUFBLEtBQUs7UUFBQSxDQUFVO0tBQUE7SUFDM0M7UUFBQyxNQUFRO1FBQUE7WUFBRSxHQUFHLENBQTBDO1lBQUEsS0FBSztRQUFBLENBQVU7S0FBQTtJQUN2RTtRQUFDLE1BQVE7UUFBQTtZQUFFLEdBQUcsQ0FBWTtZQUFBLEtBQUs7UUFBQSxDQUFVO0tBQUE7SUFDekM7UUFBQyxDQUFRO1FBQUEsQ0FBRTtZQUFBLEVBQUcsWUFBYTtZQUFBLElBQUs7UUFBVTtLQUFBO0NBQzVDO0FBYU0sa0JBQWMsa0JBQWlCLGlCQUFnQkEsQ0FBVTtBQ3hCeEQsTUFBTUEsYUFBdUI7SUFDbEM7UUFBQyxPQUFRO1FBQUE7WUFBRSxPQUFPO1lBQU0sQ0FBUTtZQUFNLENBQUc7WUFBSyxHQUFHLENBQUs7WUFBQSxJQUFJLENBQUs7WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0lBQzlFO1FBQUMsTUFBUTtRQUFBO1lBQUUsR0FBRyxDQUFVO1lBQUEsS0FBSztRQUFBLENBQVU7S0FBQTtJQUN2QztRQUFDLE1BQVE7UUFBQTtZQUFFLEdBQUcsQ0FBYTtZQUFBLEtBQUs7UUFBQSxDQUFVO0tBQUE7SUFDMUM7UUFBQyxNQUFRO1FBQUE7WUFBRSxHQUFHLENBQWE7WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0lBQzFDO1FBQUMsTUFBUTtRQUFBO1lBQUUsR0FBRyxDQUFZO1lBQUEsS0FBSztRQUFBLENBQVU7S0FBQTtJQUN6QztRQUFDLE1BQVE7UUFBQTtZQUFFLEdBQUcsQ0FBVztZQUFBLEtBQUs7UUFBQSxDQUFVO0tBQUE7SUFDeEM7UUFBQyxNQUFRO1FBQUE7WUFBRSxHQUFHLENBQVk7WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0lBQ3pDO1FBQUMsTUFBUTtRQUFBO1lBQUUsR0FBRyxDQUFZO1lBQUEsS0FBSztRQUFBLENBQVU7S0FBQTtJQUN6QztRQUFDLENBQVE7UUFBQSxDQUFFO1lBQUEsRUFBRyxXQUFZO1lBQUEsSUFBSztRQUFVO0tBQUE7Q0FDM0M7QUFhTSxvQkFBZ0Isa0JBQWlCLG1CQUFrQkEsQ0FBVTtBQ3ZCNUQsTUFBTUEsYUFBdUI7SUFDbEM7UUFBQyxNQUFRO1FBQUE7WUFBRSxHQUFHLENBQVc7WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0lBQ3hDO1FBQUMsTUFBUTtRQUFBO1lBQUUsR0FBRyxDQUFvQztZQUFBLEtBQUs7UUFBQSxDQUFVO0tBQUE7SUFDakU7UUFDRTtRQUNBO1lBQ0UsQ0FBRztZQUNILEdBQUs7UUFBQTtLQUNQO0NBRUo7QUFhTSxrQkFBYyxrQkFBaUIsaUJBQWdCQSxDQUFVO0FDdkJ4RCxNQUFNQSxhQUF1QjtJQUNsQztRQUFDLE1BQVE7UUFBQTtZQUFFLEdBQUcsQ0FBYTtZQUFBLEtBQUs7UUFBQSxDQUFVO0tBQUE7SUFDMUM7UUFBQyxNQUFRO1FBQUE7WUFBRSxHQUFHLENBQWM7WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0lBQzNDO1FBQUMsTUFBUTtRQUFBO1lBQUUsR0FBRyxDQUFhO1lBQUEsS0FBSztRQUFBLENBQVU7S0FBQTtJQUMxQztRQUFDLE1BQVE7UUFBQTtZQUFFLEdBQUcsQ0FBYztZQUFBLEtBQUs7UUFBQSxDQUFVO0tBQUE7SUFDM0M7UUFBQyxNQUFRO1FBQUE7WUFBRSxHQUFHLENBQWE7WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0lBQzFDO1FBQUMsTUFBUTtRQUFBO1lBQUUsR0FBRyxDQUFZO1lBQUEsS0FBSztRQUFBLENBQVU7S0FBQTtJQUN6QztRQUFDLE1BQVE7UUFBQTtZQUFFLEdBQUcsQ0FBWTtZQUFBLEtBQUs7UUFBQSxDQUFVO0tBQUE7SUFDekM7UUFBQyxNQUFRO1FBQUE7WUFBRSxHQUFHLENBQWE7WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0lBQzFDO1FBQUM7UUFBUSxDQUFFO1lBQUEsTUFBTyxNQUFNO1lBQUEsTUFBUSxPQUFNO1lBQUEsQ0FBRyxNQUFLO1lBQUEsRUFBRyxJQUFLO1lBQUEsR0FBSSxJQUFLO1lBQUEsSUFBSztRQUFVO0tBQUE7Q0FDaEY7QUFhTSxlQUFXLGtCQUFpQixhQUFZQSxDQUFVO0FDdkJqRCxNQUFNQSxhQUF1QjtJQUNsQztRQUNFO1FBQ0E7WUFDRSxDQUFHO1lBQ0gsR0FBSztRQUFBO0tBRVQ7SUFDQTtRQUFDLE1BQVE7UUFBQTtZQUFFLEdBQUcsQ0FBNkI7WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0lBQzFEO1FBQ0U7UUFDQTtZQUFFLEdBQUcsc0VBQXdFO1lBQUEsS0FBSyxDQUFTO1FBQUE7S0FDN0Y7SUFDQTtRQUFDLENBQVE7UUFBQSxDQUFFO1lBQUEsRUFBRyxpREFBa0Q7WUFBQSxJQUFLO1FBQVU7S0FBQTtDQUNqRjtBQWFNLGVBQVcsa0JBQWlCLGNBQWFBLENBQVU7QUMzQmxELE1BQU1BLGFBQXVCO0lBQ2xDO1FBQUMsTUFBUTtRQUFBO1lBQUUsR0FBRyxDQUFhO1lBQUEsS0FBSztRQUFBLENBQVU7S0FBQTtJQUMxQztRQUNFO1FBQ0E7WUFDRSxDQUFHO1lBQ0gsR0FBSztRQUFBO0tBRVQ7SUFDQTtRQUFDLENBQVE7UUFBQSxDQUFFO1lBQUEsRUFBRyxVQUFXO1lBQUEsSUFBSztRQUFVO0tBQUE7Q0FDMUM7QUFhTSxnQkFBWSxrQkFBaUIsZUFBY0EsQ0FBVTtBQ3ZCcEQsTUFBTUEsYUFBdUI7SUFDbEM7UUFDRTtRQUNBO1lBQ0UsQ0FBRztZQUNILEdBQUs7UUFBQTtLQUVUO0lBQ0E7UUFDRTtRQUNBO1lBQUUsR0FBRyxxRUFBdUU7WUFBQSxLQUFLLENBQVM7UUFBQTtLQUM1RjtJQUNBO1FBQUMsQ0FBUTtRQUFBLENBQUU7WUFBQSxFQUFHLHlCQUEwQjtZQUFBLElBQUs7UUFBVTtLQUFBO0NBQ3pEO0FBYU0sbUJBQWUsa0JBQWlCLG1CQUFrQkEsQ0FBVTtBQzFCM0QsTUFBTUEsYUFBdUI7SUFDbEM7UUFDRTtRQUNBO1lBQ0UsQ0FBRztZQUNILEdBQUs7UUFBQTtLQUVUO0lBQ0E7UUFDRTtRQUNBO1lBQUUsR0FBRyx1RUFBeUU7WUFBQSxLQUFLLENBQVM7UUFBQTtLQUM5RjtJQUNBO1FBQUMsQ0FBUTtRQUFBLENBQUU7WUFBQSxFQUFHLDJCQUE0QjtZQUFBLElBQUs7UUFBVTtLQUFBO0NBQzNEO0FBYU0saUJBQWEsa0JBQWlCLGlCQUFnQkEsQ0FBVTtBQzFCdkQsTUFBTUEsYUFBdUI7SUFDbEM7UUFBQyxNQUFRO1FBQUE7WUFBRSxHQUFHLENBQVk7WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0lBQ3pDO1FBQ0U7UUFDQTtZQUNFLENBQUc7WUFDSCxHQUFLO1FBQUE7S0FFVDtJQUNBO1FBQ0U7UUFDQTtZQUFFLEdBQUcsc0VBQXdFO1lBQUEsS0FBSyxDQUFTO1FBQUE7S0FBQTtDQUUvRjtBQWFNLFdBQU8sa0JBQWlCLFNBQVFBLENBQVU7QUMxQnpDLE1BQU1BLGFBQXVCO0lBQ2xDO1FBQUMsTUFBUTtRQUFBO1lBQUUsR0FBRyxDQUFvQjtZQUFBLEtBQUs7UUFBQSxDQUFVO0tBQUE7SUFDakQ7UUFDRTtRQUNBO1lBQ0UsQ0FBRztZQUNILEdBQUs7UUFBQTtLQUVUO0lBQ0E7UUFBQyxNQUFRO1FBQUE7WUFBRSxHQUFHLENBQXlCO1lBQUEsS0FBSztRQUFBLENBQVU7S0FBQTtJQUN0RDtRQUFDLENBQVE7UUFBQSxDQUFFO1lBQUEsRUFBRyx5QkFBMEI7WUFBQSxJQUFLO1FBQVU7S0FBQTtDQUN6RDtBQWFNLGVBQVcsa0JBQWlCLGNBQWFBLENBQVU7QUN4QmxELE1BQU1BLGFBQXVCO0lBQ2xDO1FBQUMsTUFBUTtRQUFBO1lBQUUsR0FBRyxDQUFhO1lBQUEsS0FBSztRQUFBLENBQVU7S0FBQTtJQUMxQztRQUNFO1FBQ0E7WUFDRSxDQUFHO1lBQ0gsR0FBSztRQUFBO0tBRVQ7SUFDQTtRQUFDLE1BQVE7UUFBQTtZQUFFLEdBQUcsQ0FBYTtZQUFBLEtBQUs7UUFBQSxDQUFVO0tBQUE7SUFDMUM7UUFBQyxNQUFRO1FBQUE7WUFBRSxHQUFHLENBQWE7WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0lBQzFDO1FBQUMsTUFBUTtRQUFBO1lBQUUsR0FBRyxDQUFZO1lBQUEsS0FBSztRQUFBLENBQVU7S0FBQTtJQUN6QztRQUFDLENBQVE7UUFBQSxDQUFFO1lBQUEsRUFBRyxXQUFZO1lBQUEsSUFBSztRQUFVO0tBQUE7Q0FDM0M7QUFhTSxlQUFXLGtCQUFpQixhQUFZQSxDQUFVO0FDMUJqRCxNQUFNQSxhQUF1QjtJQUNsQztRQUFDLE1BQVE7UUFBQTtZQUFFLEdBQUcsQ0FBWTtZQUFBLEtBQUs7UUFBQSxDQUFVO0tBQUE7SUFDekM7UUFBQyxNQUFRO1FBQUE7WUFBRSxHQUFHLENBQWlCO1lBQUEsS0FBSztRQUFBLENBQVU7S0FBQTtJQUM5QztRQUFDLE1BQVE7UUFBQTtZQUFFLEdBQUcsQ0FBVztZQUFBLEtBQUs7UUFBQSxDQUFVO0tBQUE7SUFDeEM7UUFBQyxNQUFRO1FBQUE7WUFBRSxHQUFHLENBQVU7WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0lBQ3ZDO1FBQUMsTUFBUTtRQUFBO1lBQUUsR0FBRyxDQUFvQjtZQUFBLEtBQUs7UUFBQSxDQUFVO0tBQUE7SUFDakQ7UUFBQyxDQUFRO1FBQUEsQ0FBRTtZQUFBLEVBQUcsV0FBWTtZQUFBLElBQUs7UUFBVTtLQUFBO0NBQzNDO0FBYU0sZ0JBQVksa0JBQWlCLGNBQWFBLENBQVU7QUNwQm5ELE1BQU1BLGFBQXVCO0lBQ2xDO1FBQUMsTUFBUTtRQUFBO1lBQUUsR0FBRyxDQUFZO1lBQUEsS0FBSztRQUFBLENBQVU7S0FBQTtJQUN6QztRQUFDLE1BQVE7UUFBQTtZQUFFLEdBQUcsQ0FBaUI7WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0lBQzlDO1FBQUM7UUFBUSxDQUFFO1lBQUEsRUFBRyxLQUFLO1lBQUEsQ0FBRyxNQUFLO1lBQUEsS0FBTyxPQUFNO1lBQUEsT0FBUSxLQUFNO1lBQUEsR0FBSSxJQUFLO1lBQUEsSUFBSztRQUFVO0tBQUE7Q0FDaEY7QUFhTSx5QkFBcUIsa0JBQWlCLHlCQUF3QkEsQ0FBVTtBQ2pCdkUsTUFBTUEsYUFBdUI7SUFDbEM7UUFBQyxNQUFRO1FBQUE7WUFBRSxLQUFPLE9BQU07WUFBQSxPQUFRLEtBQU07WUFBQSxHQUFHLENBQUs7WUFBQSxHQUFHO1lBQUssQ0FBSSxPQUFLO1lBQUEsR0FBSSxJQUFLO1lBQUEsSUFBSztRQUFBLENBQVU7S0FBQTtJQUN2RjtRQUFDLE9BQVE7UUFBQTtZQUFFLEdBQUksSUFBSztZQUFBLEdBQUksS0FBTTtZQUFBLElBQUksQ0FBTTtZQUFBLElBQUksSUFBTTtZQUFBLElBQUs7UUFBVTtLQUFBO0NBQ25FO0FBYU0sb0JBQWdCLGtCQUFpQixtQkFBa0JBLENBQVU7QUNoQjVELE1BQU1BLGFBQXVCO0lBQ2xDO1FBQ0U7UUFDQTtZQUNFLENBQUc7WUFDSCxHQUFLO1FBQUE7S0FFVDtJQUNBO1FBQUMsQ0FBUTtRQUFBLENBQUU7WUFBQSxFQUFHLHVCQUF3QjtZQUFBLElBQUs7UUFBVTtLQUFBO0NBQ3ZEO0FBYU0sYUFBUyxrQkFBaUIsV0FBVUEsQ0FBVTtBQ3RCN0MsTUFBTUEsYUFBdUI7SUFDbEM7UUFBQyxNQUFRO1FBQUE7WUFBRSxHQUFHLENBQXVCO1lBQUEsS0FBSztRQUFBLENBQVU7S0FBQTtJQUNwRDtRQUFDLE1BQVE7UUFBQTtZQUFFLEdBQUcsQ0FBbUM7WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0lBQ2hFO1FBQ0U7UUFDQTtZQUNFLENBQUc7WUFDSCxHQUFLO1FBQUE7S0FFVDtJQUNBO1FBQUMsTUFBUTtRQUFBO1lBQUUsR0FBRyxDQUFzQztZQUFBLEtBQUs7UUFBQSxDQUFVO0tBQUE7SUFDbkU7UUFDRTtRQUNBO1lBQ0UsQ0FBRztZQUNILEdBQUs7UUFBQTtLQUNQO0NBRUo7QUFhTSxrQkFBYyxrQkFBaUIsaUJBQWdCQSxDQUFVO0FDL0J4RCxNQUFNQSxhQUF1QjtJQUNsQztRQUFDLE1BQVE7UUFBQTtZQUFFLEdBQUcsQ0FBdUI7WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0lBQ3BEO1FBQ0U7UUFDQTtZQUNFLENBQUc7WUFDSCxHQUFLO1FBQUE7S0FFVDtJQUNBO1FBQUMsQ0FBUTtRQUFBLENBQUU7WUFBQSxFQUFHLHFDQUFzQztZQUFBLElBQUs7UUFBVTtLQUFBO0NBQ3JFO0FBYU0sWUFBUSxrQkFBaUIsVUFBU0EsQ0FBVTtBQ3ZCM0MsTUFBTUEsYUFBdUI7SUFDbEM7UUFDRTtRQUNBO1lBQ0UsQ0FBRztZQUNILEdBQUs7UUFBQTtLQUVUO0lBQ0E7UUFDRTtRQUNBO1lBQ0UsQ0FBRztZQUNILEdBQUs7UUFBQTtLQUNQO0NBRUo7QUFhTSxjQUFVLGtCQUFpQixhQUFZQSxDQUFVO0FDNUJoRCxNQUFNQSxhQUF1QjtJQUNsQztRQUFDLFFBQVU7UUFBQTtZQUFFLEVBQUk7WUFBTSxDQUFJLFFBQU07WUFBQSxDQUFHO1lBQU0sR0FBSztRQUFBLENBQVU7S0FBQTtJQUN6RDtRQUFDLE1BQVE7UUFBQTtZQUFFLEdBQUcsQ0FBMEM7WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0lBQ3ZFO1FBQUM7UUFBUSxDQUFFO1lBQUEsSUFBSSxDQUFLO1lBQUEsSUFBSSxDQUFRO1lBQUEsR0FBSSxJQUFLO1lBQUEsR0FBSSxJQUFLO1lBQUEsS0FBSztRQUFBLENBQVU7S0FBQTtJQUNqRTtRQUFDLE9BQVE7UUFBQTtZQUFFLEdBQUksS0FBTTtZQUFBLEdBQUksUUFBUztZQUFBLElBQUksQ0FBSztZQUFBLElBQUksR0FBSztZQUFBLElBQUs7UUFBVTtLQUFBO0NBQ3JFO0FBYU0sWUFBUSxrQkFBaUIsVUFBU0EsQ0FBVTtBQ2xCM0MsTUFBTUEsYUFBdUI7SUFDbEM7UUFDRTtRQUNBO1lBQ0UsQ0FBRztZQUNILEdBQUs7UUFBQTtLQUVUO0lBQ0E7UUFDRTtRQUNBO1lBQ0UsQ0FBRztZQUNILEdBQUs7UUFBQTtLQUVUO0lBQ0E7UUFDRTtRQUNBO1lBQ0UsQ0FBRztZQUNILEdBQUs7UUFBQTtLQUNQO0NBRUo7QUFhTSxhQUFTLGtCQUFpQixXQUFVQSxDQUFVO0FDbkM3QyxNQUFNQSxhQUF1QjtJQUNsQztRQUFDLE9BQVE7UUFBQTtZQUFFLE9BQU87WUFBSyxDQUFRO1lBQUssQ0FBRztZQUFLLEdBQUcsQ0FBSztZQUFBLElBQUksQ0FBSztZQUFBLEtBQUs7UUFBQSxDQUFVO0tBQUE7SUFDNUU7UUFBQyxPQUFRO1FBQUE7WUFBRSxPQUFPO1lBQUssQ0FBUTtZQUFLLENBQUc7WUFBTSxHQUFHLENBQUs7WUFBQSxJQUFJLENBQUs7WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0lBQzdFO1FBQUMsT0FBUTtRQUFBO1lBQUUsT0FBTztZQUFLLENBQVE7WUFBSyxDQUFHO1lBQU0sR0FBRyxDQUFNO1lBQUEsSUFBSSxDQUFLO1lBQUEsS0FBSztRQUFBLENBQVU7S0FBQTtJQUM5RTtRQUFDO1FBQVEsQ0FBRTtZQUFBLE1BQU8sS0FBSztZQUFBLE1BQVEsTUFBSztZQUFBLENBQUcsTUFBSztZQUFBLEVBQUcsS0FBTTtZQUFBLEdBQUksSUFBSztZQUFBLElBQUs7UUFBVTtLQUFBO0NBQy9FO0FBYU0sc0JBQWtCLGtCQUFpQixxQkFBb0JBLENBQVU7QUNsQmhFLE1BQU1BLGFBQXVCO0lBQ2xDO1FBQUMsT0FBUTtRQUFBO1lBQUUsT0FBTztZQUFLLENBQVE7WUFBSyxDQUFHO1lBQUssR0FBRyxDQUFLO1lBQUEsSUFBSSxDQUFLO1lBQUEsS0FBSztRQUFBLENBQVU7S0FBQTtJQUM1RTtRQUFDLE9BQVE7UUFBQTtZQUFFLE9BQU87WUFBSyxDQUFRO1lBQUssQ0FBRztZQUFLLEdBQUcsQ0FBTTtZQUFBLElBQUksQ0FBSztZQUFBLEtBQUs7UUFBQSxDQUFVO0tBQUE7SUFDN0U7UUFBQyxNQUFRO1FBQUE7WUFBRSxHQUFHLENBQVc7WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0lBQ3hDO1FBQUMsTUFBUTtRQUFBO1lBQUUsR0FBRyxDQUFXO1lBQUEsS0FBSztRQUFBLENBQVU7S0FBQTtJQUN4QztRQUFDLE1BQVE7UUFBQTtZQUFFLEdBQUcsQ0FBWTtZQUFBLEtBQUs7UUFBQSxDQUFVO0tBQUE7SUFDekM7UUFBQyxDQUFRO1FBQUEsQ0FBRTtZQUFBLEVBQUcsV0FBWTtZQUFBLElBQUs7UUFBVTtLQUFBO0NBQzNDO0FBYU0saUJBQWEsa0JBQWlCLGdCQUFlQSxDQUFVO0FDcEJ0RCxNQUFNQSxhQUF1QjtJQUNsQztRQUFDLE9BQVE7UUFBQTtZQUFFLE9BQU87WUFBSyxDQUFRO1lBQUssQ0FBRztZQUFLLEdBQUcsQ0FBSztZQUFBLElBQUksQ0FBSztZQUFBLEtBQUs7UUFBQSxDQUFVO0tBQUE7SUFDNUU7UUFBQyxPQUFRO1FBQUE7WUFBRSxPQUFPO1lBQUssQ0FBUTtZQUFLLENBQUc7WUFBTSxHQUFHLENBQUs7WUFBQSxJQUFJLENBQUs7WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0lBQzdFO1FBQUMsT0FBUTtRQUFBO1lBQUUsT0FBTztZQUFLLENBQVE7WUFBSyxDQUFHO1lBQU0sR0FBRyxDQUFNO1lBQUEsSUFBSSxDQUFLO1lBQUEsS0FBSztRQUFBLENBQVU7S0FBQTtJQUM5RTtRQUFDO1FBQVEsQ0FBRTtZQUFBLE1BQU8sS0FBSztZQUFBLE1BQVEsTUFBSztZQUFBLENBQUcsTUFBSztZQUFBLEVBQUcsS0FBTTtZQUFBLEdBQUksSUFBSztZQUFBLElBQUs7UUFBVTtLQUFBO0NBQy9FO0FBYU0saUJBQWEsa0JBQWlCLGdCQUFlQSxDQUFVO0FDbEJ0RCxNQUFNQSxhQUF1QjtJQUNsQztRQUFDLE9BQVE7UUFBQTtZQUFFLE9BQU87WUFBSyxDQUFRO1lBQU0sQ0FBRztZQUFLLEdBQUcsQ0FBSztZQUFBLElBQUksQ0FBSztZQUFBLEtBQUs7UUFBQSxDQUFTO0tBQUE7SUFDNUU7UUFBQyxPQUFRO1FBQUE7WUFBRSxPQUFPO1lBQUssQ0FBUTtZQUFLLENBQUc7WUFBTSxHQUFHLENBQUs7WUFBQSxJQUFJLENBQUs7WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0lBQzdFO1FBQUM7UUFBUSxDQUFFO1lBQUEsTUFBTyxLQUFLO1lBQUEsTUFBUSxNQUFLO1lBQUEsQ0FBRyxPQUFNO1lBQUEsRUFBRyxLQUFNO1lBQUEsR0FBSSxJQUFLO1lBQUEsSUFBSztRQUFVO0tBQUE7Q0FDaEY7QUFhTSxzQkFBa0Isa0JBQWlCLHNCQUFxQkEsQ0FBVTtBQ2pCakUsTUFBTUEsYUFBdUI7SUFDbEM7UUFBQyxPQUFRO1FBQUE7WUFBRSxPQUFPO1lBQU0sQ0FBUTtZQUFLLENBQUc7WUFBSyxHQUFHLENBQUs7WUFBQSxJQUFJLENBQUs7WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0lBQzdFO1FBQUMsT0FBUTtRQUFBO1lBQUUsT0FBTztZQUFLLENBQVE7WUFBSyxDQUFHO1lBQUssR0FBRyxDQUFNO1lBQUEsSUFBSSxDQUFLO1lBQUEsS0FBSztRQUFBLENBQVU7S0FBQTtJQUM3RTtRQUFDO1FBQVEsQ0FBRTtZQUFBLE1BQU8sS0FBSztZQUFBLE1BQVEsTUFBSztZQUFBLENBQUcsT0FBTTtZQUFBLEVBQUcsS0FBTTtZQUFBLEdBQUksSUFBSztZQUFBLElBQUs7UUFBVTtLQUFBO0NBQ2hGO0FBYU0scUJBQWlCLGtCQUFpQixxQkFBb0JBLENBQVU7QUNqQi9ELE1BQU1BLGFBQXVCO0lBQ2xDO1FBQUMsT0FBUTtRQUFBO1lBQUUsT0FBTztZQUFNLENBQVE7WUFBSyxDQUFHO1lBQUssR0FBRyxDQUFLO1lBQUEsSUFBSSxDQUFLO1lBQUEsS0FBSztRQUFBLENBQVU7S0FBQTtJQUM3RTtRQUFDLE9BQVE7UUFBQTtZQUFFLE9BQU87WUFBSyxDQUFRO1lBQUssQ0FBRztZQUFLLEdBQUcsQ0FBTTtZQUFBLElBQUksQ0FBSztZQUFBLEtBQUs7UUFBQSxDQUFVO0tBQUE7SUFDN0U7UUFBQztRQUFRLENBQUU7WUFBQSxNQUFPLEtBQUs7WUFBQSxNQUFRLE1BQUs7WUFBQSxDQUFHLE9BQU07WUFBQSxFQUFHLEtBQU07WUFBQSxHQUFJLElBQUs7WUFBQSxJQUFLO1FBQVU7S0FBQTtDQUNoRjtBQWFNLHFCQUFpQixrQkFBaUIsb0JBQW1CQSxDQUFVO0FDakI5RCxNQUFNQSxhQUF1QjtJQUNsQztRQUNFO1FBQ0E7WUFDRSxDQUFHO1lBQ0gsR0FBSztRQUFBO0tBRVQ7SUFDQTtRQUFDLENBQVE7UUFBQSxDQUFFO1lBQUEsRUFBRyxtREFBb0Q7WUFBQSxJQUFLO1FBQVU7S0FBQTtDQUNuRjtBQWFNLFdBQU8sa0JBQWlCLFNBQVFBLENBQVU7QUN0QnpDLE1BQU1BLGFBQXVCO0lBQ2xDO1FBQ0U7UUFDQTtZQUNFLENBQUc7WUFDSCxHQUFLO1FBQUE7S0FFVDtJQUNBO1FBQUMsQ0FBUTtRQUFBLENBQUU7WUFBQSxFQUFHLGFBQWM7WUFBQSxJQUFLO1FBQVU7S0FBQTtDQUM3QztBQWFNLGlCQUFhLGtCQUFpQixnQkFBZUEsQ0FBVTtBQ3RCdEQsTUFBTUEsYUFBdUI7SUFDbEM7UUFDRTtRQUNBO1lBQ0UsQ0FBRztZQUNILEdBQUs7UUFBQTtLQUVUO0lBQ0E7UUFBQyxNQUFRO1FBQUE7WUFBRSxHQUFHLENBQTRCO1lBQUEsS0FBSztRQUFBLENBQVU7S0FBQTtJQUN6RDtRQUFDO1FBQVEsQ0FBRTtZQUFBLE1BQU8sS0FBSztZQUFBLE1BQVEsT0FBTTtZQUFBLENBQUcsTUFBSztZQUFBLEVBQUcsS0FBTTtZQUFBLEdBQUksSUFBSztZQUFBLElBQUs7UUFBVTtLQUFBO0NBQ2hGO0FBYU0sY0FBVSxrQkFBaUIsWUFBV0EsQ0FBVTtBQ3ZCL0MsTUFBTUEsYUFBdUI7SUFDbEM7UUFBQyxNQUFRO1FBQUE7WUFBRSxHQUFHLENBQVk7WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0lBQ3pDO1FBQUMsTUFBUTtRQUFBO1lBQUUsR0FBRyxDQUFXO1lBQUEsS0FBSztRQUFBLENBQVU7S0FBQTtJQUN4QztRQUFDLE1BQVE7UUFBQTtZQUFFLEdBQUcsQ0FBNkM7WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0lBQzFFO1FBQUMsTUFBUTtRQUFBO1lBQUUsR0FBRyxDQUFZO1lBQUEsS0FBSztRQUFBLENBQVU7S0FBQTtJQUN6QztRQUFDLENBQVE7UUFBQSxDQUFFO1lBQUEsRUFBRyxnQkFBaUI7WUFBQSxJQUFLO1FBQVU7S0FBQTtDQUNoRDtBQWFNLGlCQUFhLGtCQUFpQixnQkFBZUEsQ0FBVTtBQ25CdEQsTUFBTUEsYUFBdUI7SUFDbEM7UUFBQyxPQUFRO1FBQUE7WUFBRSxPQUFPO1lBQUssQ0FBUTtZQUFNLENBQUc7WUFBSyxHQUFHLENBQUs7WUFBQSxJQUFJLENBQUs7WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0lBQzdFO1FBQUMsTUFBUTtRQUFBO1lBQUUsR0FBRyxDQUFXO1lBQUEsS0FBSztRQUFBLENBQVU7S0FBQTtJQUN4QztRQUNFO1FBQ0E7WUFDRSxDQUFHO1lBQ0gsR0FBSztRQUFBO0tBQ1A7Q0FFSjtBQWFNLGlCQUFhLGtCQUFpQixnQkFBZUEsQ0FBVTtBQ3ZCdEQsTUFBTUEsYUFBdUI7SUFDbEM7UUFBQyxNQUFRO1FBQUE7WUFBRSxHQUFHLENBQWM7WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0lBQzNDO1FBQUMsTUFBUTtRQUFBO1lBQUUsR0FBRyxDQUFZO1lBQUEsS0FBSztRQUFBLENBQVU7S0FBQTtJQUN6QztRQUFDLE1BQVE7UUFBQTtZQUFFLEdBQUcsQ0FBVztZQUFBLEtBQUs7UUFBQSxDQUFVO0tBQUE7SUFDeEM7UUFBQyxDQUFRO1FBQUEsQ0FBRTtZQUFBLEVBQUcsVUFBVztZQUFBLElBQUs7UUFBVTtLQUFBO0NBQzFDO0FBYU0sY0FBVSxrQkFBaUIsWUFBV0EsQ0FBVTtBQ2xCL0MsTUFBTUEsYUFBdUI7SUFDbEM7UUFBQyxRQUFVO1FBQUE7WUFBRSxFQUFJO1lBQU0sQ0FBSSxRQUFNO1lBQUEsQ0FBRztZQUFNLEdBQUs7UUFBQSxDQUFVO0tBQUE7SUFDekQ7UUFBQyxNQUFRO1FBQUE7WUFBRSxHQUFHLENBQXdCO1lBQUEsS0FBSztRQUFBLENBQVU7S0FBQTtJQUNyRDtRQUFDLE1BQVE7UUFBQTtZQUFFLEdBQUcsQ0FBeUI7WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0lBQ3REO1FBQUMsTUFBUTtRQUFBO1lBQUUsR0FBRyxDQUEwQjtZQUFBLEtBQUs7UUFBQSxDQUFVO0tBQUE7SUFDdkQ7UUFBQyxNQUFRO1FBQUE7WUFBRSxHQUFHLENBQXlCO1lBQUEsS0FBSztRQUFBLENBQVU7S0FBQTtJQUN0RDtRQUFDLENBQVU7UUFBQTtZQUFFLENBQUksUUFBTTtZQUFBLEVBQUk7WUFBTSxDQUFHO1lBQUssQ0FBSztRQUFVO0tBQUE7Q0FDMUQ7QUFhTSxlQUFXLGtCQUFpQixjQUFhQSxDQUFVO0FDcEJsRCxNQUFNQSxhQUF1QjtJQUNsQztRQUFDLE1BQVE7UUFBQTtZQUFFLEdBQUcsQ0FBYztZQUFBLEtBQUs7UUFBQSxDQUFVO0tBQUE7SUFDM0M7UUFBQyxNQUFRO1FBQUE7WUFBRSxHQUFHLENBQVk7WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0lBQ3pDO1FBQUMsTUFBUTtRQUFBO1lBQUUsR0FBRyxDQUFXO1lBQUEsS0FBSztRQUFBLENBQVU7S0FBQTtJQUN4QztRQUFDLE1BQVE7UUFBQTtZQUFFLEdBQUcsQ0FBVztZQUFBLEtBQUs7UUFBQSxDQUFVO0tBQUE7SUFDeEM7UUFBQyxDQUFRO1FBQUEsQ0FBRTtZQUFBLEVBQUcsNEJBQTZCO1lBQUEsSUFBSztRQUFVO0tBQUE7Q0FDNUQ7QUFhTSxlQUFXLGtCQUFpQixhQUFZQSxDQUFVO0FDbkJqRCxNQUFNQSxhQUF1QjtJQUNsQztRQUNFO1FBQ0E7WUFDRSxDQUFHO1lBQ0gsR0FBSztRQUFBO0tBRVQ7SUFDQTtRQUFDLE1BQVE7UUFBQTtZQUFFLEdBQUcsQ0FBVztZQUFBLEtBQUs7UUFBQSxDQUFVO0tBQUE7SUFDeEM7UUFBQyxDQUFRO1FBQUEsQ0FBRTtZQUFBLEVBQUcsV0FBWTtZQUFBLElBQUs7UUFBVTtLQUFBO0NBQzNDO0FBYU0sZ0JBQVksa0JBQWlCLGNBQWFBLENBQVU7QUN2Qm5ELE1BQU1BLGFBQXVCO0lBQ2xDO1FBQUMsTUFBUTtRQUFBO1lBQUUsR0FBRyxDQUFrRDtZQUFBLEtBQUs7UUFBQSxDQUFVO0tBQUE7SUFDL0U7UUFBQyxNQUFRO1FBQUE7WUFBRSxHQUFHLENBQWM7WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0lBQzNDO1FBQUMsTUFBUTtRQUFBO1lBQUUsR0FBRyxDQUF5RDtZQUFBLEtBQUs7UUFBQSxDQUFVO0tBQUE7SUFDdEY7UUFBQyxNQUFRO1FBQUE7WUFBRSxHQUFHLENBQVc7WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0lBQ3hDO1FBQUMsQ0FBUTtRQUFBLENBQUU7WUFBQSxFQUFHLFdBQVk7WUFBQSxJQUFLO1FBQVU7S0FBQTtDQUMzQztBQWFNLG1CQUFlLGtCQUFpQixrQkFBaUJBLENBQVU7QUNuQjFELE1BQU1BLGFBQXVCO0lBQ2xDO1FBQ0U7UUFDQTtZQUNFLENBQUc7WUFDSCxHQUFLO1FBQUE7S0FDUDtDQUVKO0FBYU0sbUJBQWUsa0JBQWlCLGtCQUFpQkEsQ0FBVTtBQ3JCMUQsTUFBTUEsYUFBdUI7SUFDbEM7UUFBQyxNQUFRO1FBQUE7WUFBRSxHQUFHLENBQXlCO1lBQUEsS0FBSztRQUFBLENBQVU7S0FBQTtJQUN0RDtRQUFDLE1BQVE7UUFBQTtZQUFFLEdBQUcsQ0FBeUI7WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0lBQ3REO1FBQUM7UUFBUSxDQUFFO1lBQUEsSUFBSSxDQUFLO1lBQUEsSUFBSSxDQUFNO1lBQUEsR0FBSSxLQUFNO1lBQUEsR0FBSSxLQUFNO1lBQUEsS0FBSztRQUFBLENBQVU7S0FBQTtJQUNqRTtRQUFDLE9BQVE7UUFBQTtZQUFFLEdBQUksSUFBSztZQUFBLEdBQUksS0FBTTtZQUFBLElBQUksQ0FBSztZQUFBLElBQUksSUFBTTtZQUFBLElBQUs7UUFBVTtLQUFBO0NBQ2xFO0FBYU0sZUFBVyxrQkFBaUIsZUFBY0EsQ0FBVTtBQ2xCbkQsTUFBTUEsYUFBdUI7SUFDbEM7UUFBQyxNQUFRO1FBQUE7WUFBRSxHQUFHLENBQTJCO1lBQUEsS0FBSztRQUFBLENBQVU7S0FBQTtJQUN4RDtRQUFDLE1BQVE7UUFBQTtZQUFFLEdBQUcsQ0FBNkI7WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0lBQzFEO1FBQUMsT0FBUTtRQUFBO1lBQUUsR0FBSSxJQUFLO1lBQUEsR0FBSSxLQUFNO1lBQUEsSUFBSSxDQUFNO1lBQUEsSUFBSSxJQUFNO1lBQUEsSUFBSztRQUFVO0tBQUE7Q0FDbkU7QUFhTSxZQUFRLGtCQUFpQixXQUFVQSxDQUFVO0FDakI1QyxNQUFNQSxhQUF1QjtJQUNsQztRQUFDLE1BQVE7UUFBQTtZQUFFLEdBQUcsQ0FBK0Q7WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0lBQzVGO1FBQUMsQ0FBUTtRQUFBLENBQUU7WUFBQSxFQUFHLCtEQUFnRTtZQUFBLElBQUs7UUFBVTtLQUFBO0NBQy9GO0FBYU0sV0FBTyxrQkFBaUIsU0FBUUEsQ0FBVTtBQ2hCekMsTUFBTUEsYUFBdUI7SUFDbEM7UUFBQyxNQUFRO1FBQUE7WUFBRSxHQUFHLENBQVk7WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0lBQ3pDO1FBQUMsTUFBUTtRQUFBO1lBQUUsR0FBRyxDQUFrQjtZQUFBLEtBQUs7UUFBQSxDQUFVO0tBQUE7SUFDL0M7UUFBQyxNQUFRO1FBQUE7WUFBRSxHQUFHLENBQVk7WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0lBQ3pDO1FBQUMsQ0FBUTtRQUFBLENBQUU7WUFBQSxFQUFHLFVBQVc7WUFBQSxJQUFLO1FBQVU7S0FBQTtDQUMxQztBQWFNLGdCQUFZLGtCQUFpQixlQUFjQSxDQUFVO0FDbEJwRCxNQUFNQSxhQUF1QjtJQUNsQztRQUNFO1FBQ0E7WUFDRSxDQUFHO1lBQ0gsR0FBSztRQUFBO0tBRVQ7SUFDQTtRQUFDO1FBQVEsQ0FBRTtZQUFBLE9BQU8sQ0FBSztZQUFBLFFBQVEsQ0FBTTtZQUFBLEVBQUcsSUFBSztZQUFBLEVBQUcsSUFBSztZQUFBLEtBQUs7UUFBQSxDQUFVO0tBQUE7SUFDcEU7UUFBQyxDQUFVO1FBQUE7WUFBRSxDQUFJLE9BQUs7WUFBQSxFQUFJO1lBQUssQ0FBRztZQUFLLENBQUs7UUFBVTtLQUFBO0NBQ3hEO0FBYU0sZUFBVyxrQkFBaUIsYUFBWUEsQ0FBVTtBQ3ZCakQsTUFBTUEsYUFBdUI7SUFDbEM7UUFBQyxNQUFRO1FBQUE7WUFBRSxHQUFHLENBQWlCO1lBQUEsS0FBSztRQUFBLENBQVU7S0FBQTtJQUM5QztRQUFDLE1BQVE7UUFBQTtZQUFFLEdBQUcsQ0FBZ0I7WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0lBQzdDO1FBQUMsTUFBUTtRQUFBO1lBQUUsR0FBRyxDQUFXO1lBQUEsS0FBSztRQUFBLENBQVU7S0FBQTtJQUN4QztRQUFDLE1BQVE7UUFBQTtZQUFFLEdBQUcsQ0FBWTtZQUFBLEtBQUs7UUFBQSxDQUFVO0tBQUE7SUFDekM7UUFBQyxDQUFRO1FBQUEsQ0FBRTtZQUFBLEVBQUcsV0FBWTtZQUFBLElBQUs7UUFBVTtLQUFBO0NBQzNDO0FBYU0saUJBQWEsa0JBQWlCLGdCQUFlQSxDQUFVO0FDbkJ0RCxNQUFNQSxhQUF1QjtJQUNsQztRQUFDLE1BQVE7UUFBQTtZQUFFLEdBQUcsQ0FBYTtZQUFBLEtBQUs7UUFBQSxDQUFVO0tBQUE7SUFDMUM7UUFBQyxNQUFRO1FBQUE7WUFBRSxHQUFHLENBQWE7WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0lBQzFDO1FBQUMsTUFBUTtRQUFBO1lBQUUsR0FBRyxDQUFZO1lBQUEsS0FBSztRQUFBLENBQVU7S0FBQTtJQUN6QztRQUFDLE1BQVE7UUFBQTtZQUFFLEdBQUcsQ0FBaUI7WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0lBQzlDO1FBQUMsQ0FBUTtRQUFBLENBQUU7WUFBQSxFQUFHLGdCQUFpQjtZQUFBLElBQUs7UUFBVTtLQUFBO0NBQ2hEO0FBYU0sbUJBQWUsa0JBQWlCLGtCQUFpQkEsQ0FBVTtBQ25CMUQsTUFBTUEsYUFBdUI7SUFDbEM7UUFBQyxNQUFRO1FBQUE7WUFBRSxHQUFHLENBQVk7WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0lBQ3pDO1FBQUMsTUFBUTtRQUFBO1lBQUUsR0FBRyxDQUFXO1lBQUEsS0FBSztRQUFBLENBQVU7S0FBQTtJQUN4QztRQUFDLE1BQVE7UUFBQTtZQUFFLEdBQUcsQ0FBWTtZQUFBLEtBQUs7UUFBQSxDQUFVO0tBQUE7SUFDekM7UUFBQyxNQUFRO1FBQUE7WUFBRSxHQUFHLENBQTZCO1lBQUEsS0FBSztRQUFBLENBQVU7S0FBQTtJQUMxRDtRQUFDLENBQVE7UUFBQSxDQUFFO1lBQUEsRUFBRyxpQkFBa0I7WUFBQSxJQUFLO1FBQVU7S0FBQTtDQUNqRDtBQWFNLGNBQVUsa0JBQWlCLGFBQVlBLENBQVU7QUNuQmhELE1BQU1BLGFBQXVCO0lBQ2xDO1FBQUMsTUFBUTtRQUFBO1lBQUUsR0FBRyxDQUFZO1lBQUEsS0FBSztRQUFBLENBQVU7S0FBQTtJQUN6QztRQUFDLE1BQVE7UUFBQTtZQUFFLEdBQUcsQ0FBVztZQUFBLEtBQUs7UUFBQSxDQUFVO0tBQUE7SUFDeEM7UUFBQyxNQUFRO1FBQUE7WUFBRSxHQUFHLENBQVc7WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0lBQ3hDO1FBQUMsTUFBUTtRQUFBO1lBQUUsR0FBRyxDQUFXO1lBQUEsS0FBSztRQUFBLENBQVU7S0FBQTtJQUN4QztRQUFDLENBQVE7UUFBQSxDQUFFO1lBQUEsRUFBRyxVQUFXO1lBQUEsSUFBSztRQUFVO0tBQUE7Q0FDMUM7QUFhTSxxQkFBaUIsa0JBQWlCLHFCQUFvQkEsQ0FBVTtBQ25CL0QsTUFBTUEsYUFBdUI7SUFDbEM7UUFBQyxNQUFRO1FBQUE7WUFBRSxHQUFHLENBQVc7WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0lBQ3hDO1FBQUMsTUFBUTtRQUFBO1lBQUUsR0FBRyxDQUFZO1lBQUEsS0FBSztRQUFBLENBQVU7S0FBQTtJQUN6QztRQUFDLENBQVE7UUFBQSxDQUFFO1lBQUEsRUFBRyxXQUFZO1lBQUEsSUFBSztRQUFVO0tBQUE7Q0FDM0M7QUFhTSxpQkFBYSxrQkFBaUIsZ0JBQWVBLENBQVU7QUNqQnRELE1BQU1BLGFBQXVCO0lBQ2xDO1FBQUMsTUFBUTtRQUFBO1lBQUUsR0FBRyxDQUFZO1lBQUEsS0FBSztRQUFBLENBQVU7S0FBQTtJQUN6QztRQUFDLE1BQVE7UUFBQTtZQUFFLEdBQUcsQ0FBVztZQUFBLEtBQUs7UUFBQSxDQUFVO0tBQUE7SUFDeEM7UUFBQyxNQUFRO1FBQUE7WUFBRSxHQUFHLENBQVk7WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0lBQ3pDO1FBQUMsQ0FBUTtRQUFBLENBQUU7WUFBQSxFQUFHLFlBQWE7WUFBQSxJQUFLO1FBQVU7S0FBQTtDQUM1QztBQWFNLGdCQUFZLGtCQUFpQixlQUFjQSxDQUFVO0FDbEJwRCxNQUFNQSxhQUF1QjtJQUNsQztRQUFDLE1BQVE7UUFBQTtZQUFFLEdBQUcsQ0FBWTtZQUFBLEtBQUs7UUFBQSxDQUFVO0tBQUE7SUFDekM7UUFBQyxNQUFRO1FBQUE7WUFBRSxHQUFHLENBQWlEO1lBQUEsS0FBSztRQUFBLENBQVU7S0FBQTtJQUM5RTtRQUFDLE1BQVE7UUFBQTtZQUFFLEdBQUcsQ0FBWTtZQUFBLEtBQUs7UUFBQSxDQUFVO0tBQUE7SUFDekM7UUFBQyxNQUFRO1FBQUE7WUFBRSxHQUFHLENBQVc7WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0lBQ3hDO1FBQUMsQ0FBUTtRQUFBLENBQUU7WUFBQSxFQUFHLFdBQVk7WUFBQSxJQUFLO1FBQVU7S0FBQTtDQUMzQztBQWFNLGdCQUFZLGtCQUFpQixlQUFjQSxDQUFVO0FDbkJwRCxNQUFNQSxhQUF1QjtJQUNsQztRQUFDLE1BQVE7UUFBQTtZQUFFLEdBQUcsQ0FBYTtZQUFBLEtBQUs7UUFBQSxDQUFVO0tBQUE7SUFDMUM7UUFBQyxNQUFRO1FBQUE7WUFBRSxHQUFHLENBQWE7WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0lBQzFDO1FBQUMsTUFBUTtRQUFBO1lBQUUsR0FBRyxDQUFZO1lBQUEsS0FBSztRQUFBLENBQVU7S0FBQTtJQUN6QztRQUFDLE1BQVE7UUFBQTtZQUFFLEdBQUcsQ0FBVztZQUFBLEtBQUs7UUFBQSxDQUFVO0tBQUE7SUFDeEM7UUFBQyxNQUFRO1FBQUE7WUFBRSxHQUFHLENBQVk7WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0lBQ3pDO1FBQUMsQ0FBUTtRQUFBLENBQUU7WUFBQSxFQUFHLGlDQUFrQztZQUFBLElBQUs7UUFBVTtLQUFBO0NBQ2pFO0FBYU0sa0JBQWMsa0JBQWlCLGlCQUFnQkEsQ0FBVTtBQ3BCeEQsTUFBTUEsYUFBdUI7SUFDbEM7UUFBQyxNQUFRO1FBQUE7WUFBRSxHQUFHLENBQVk7WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0lBQ3pDO1FBQUMsTUFBUTtRQUFBO1lBQUUsR0FBRyxDQUFXO1lBQUEsS0FBSztRQUFBLENBQVU7S0FBQTtJQUN4QztRQUFDLE1BQVE7UUFBQTtZQUFFLEdBQUcsQ0FBWTtZQUFBLEtBQUs7UUFBQSxDQUFVO0tBQUE7SUFDekM7UUFBQyxNQUFRO1FBQUE7WUFBRSxHQUFHLENBQVc7WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0lBQ3hDO1FBQUMsQ0FBUTtRQUFBLENBQUU7WUFBQSxFQUFHLFlBQWE7WUFBQSxJQUFLO1FBQVU7S0FBQTtDQUM1QztBQWFNLGVBQVcsa0JBQWlCLGNBQWFBLENBQVU7QUNuQmxELE1BQU1BLGFBQXVCO0lBQ2xDO1FBQUMsTUFBUTtRQUFBO1lBQUUsR0FBRyxDQUFXO1lBQUEsS0FBSztRQUFBLENBQVU7S0FBQTtJQUN4QztRQUFDLE1BQVE7UUFBQTtZQUFFLEdBQUcsQ0FBVztZQUFBLEtBQUs7UUFBQSxDQUFVO0tBQUE7SUFDeEM7UUFBQyxNQUFRO1FBQUE7WUFBRSxHQUFHLENBQVc7WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0lBQ3hDO1FBQ0U7UUFDQTtZQUNFLENBQUc7WUFDSCxHQUFLO1FBQUE7S0FFVDtJQUNBO1FBQUMsQ0FBUTtRQUFBLENBQUU7WUFBQSxFQUFHLGFBQWM7WUFBQSxJQUFLO1FBQVU7S0FBQTtDQUM3QztBQWFNLGtCQUFjLGtCQUFpQixpQkFBZ0JBLENBQVU7QUN6QnhELE1BQU1BLGFBQXVCO0lBQ2xDO1FBQUMsTUFBUTtRQUFBO1lBQUUsR0FBRyxDQUFZO1lBQUEsS0FBSztRQUFBLENBQVU7S0FBQTtJQUN6QztRQUFDLE1BQVE7UUFBQTtZQUFFLEdBQUcsQ0FBWTtZQUFBLEtBQUs7UUFBQSxDQUFVO0tBQUE7SUFDekM7UUFBQyxNQUFRO1FBQUE7WUFBRSxHQUFHLENBQVc7WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0lBQ3hDO1FBQUMsTUFBUTtRQUFBO1lBQUUsR0FBRyxDQUE2QjtZQUFBLEtBQUs7UUFBQSxDQUFVO0tBQUE7SUFDMUQ7UUFBQyxDQUFRO1FBQUEsQ0FBRTtZQUFBLEVBQUcsZ0JBQWlCO1lBQUEsSUFBSztRQUFVO0tBQUE7Q0FDaEQ7QUFhTSxnQkFBWSxrQkFBaUIsZUFBY0EsQ0FBVTtBQ25CcEQsTUFBTUEsYUFBdUI7SUFDbEM7UUFBQyxPQUFRO1FBQUE7WUFBRSxHQUFHO1lBQUssQ0FBRztZQUFLLENBQU87WUFBSyxRQUFRLENBQUs7WUFBQSxJQUFJLENBQUs7WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0lBQzVFO1FBQUMsTUFBUTtRQUFBO1lBQUUsR0FBRyxDQUFpQjtZQUFBLEtBQUs7UUFBQSxDQUFVO0tBQUE7SUFDOUM7UUFBQyxNQUFRO1FBQUE7WUFBRSxHQUFHLENBQVc7WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0lBQ3hDO1FBQUMsTUFBUTtRQUFBO1lBQUUsR0FBRyxDQUFZO1lBQUEsS0FBSztRQUFBLENBQVU7S0FBQTtJQUN6QztRQUFDLENBQVE7UUFBQSxDQUFFO1lBQUEsRUFBRyxXQUFZO1lBQUEsSUFBSztRQUFVO0tBQUE7Q0FDM0M7QUFhTSxlQUFXLGtCQUFpQixjQUFhQSxDQUFVO0FDbkJsRCxNQUFNQSxhQUF1QjtJQUNsQztRQUFDLE1BQVE7UUFBQTtZQUFFLEdBQUcsQ0FBYTtZQUFBLEtBQUs7UUFBQSxDQUFVO0tBQUE7SUFDMUM7UUFBQyxNQUFRO1FBQUE7WUFBRSxHQUFHLENBQVc7WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0lBQ3hDO1FBQUMsTUFBUTtRQUFBO1lBQUUsR0FBRyxDQUFhO1lBQUEsS0FBSztRQUFBLENBQVU7S0FBQTtJQUMxQztRQUFDLE1BQVE7UUFBQTtZQUFFLEdBQUcsQ0FBMEI7WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0lBQ3ZEO1FBQUMsQ0FBUTtRQUFBLENBQUU7WUFBQSxFQUFHLDBCQUEyQjtZQUFBLElBQUs7UUFBVTtLQUFBO0NBQzFEO0FBYU0sZUFBVyxrQkFBaUIsY0FBYUEsQ0FBVTtBQ25CbEQsTUFBTUEsYUFBdUI7SUFDbEM7UUFBQyxNQUFRO1FBQUE7WUFBRSxHQUFHLENBQVk7WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0lBQ3pDO1FBQUMsTUFBUTtRQUFBO1lBQUUsR0FBRyxDQUFXO1lBQUEsS0FBSztRQUFBLENBQVU7S0FBQTtJQUN4QztRQUFDLE1BQVE7UUFBQTtZQUFFLEdBQUcsQ0FBWTtZQUFBLEtBQUs7UUFBQSxDQUFVO0tBQUE7SUFDekM7UUFBQyxDQUFRO1FBQUEsQ0FBRTtZQUFBLEVBQUcscUJBQXNCO1lBQUEsSUFBSztRQUFVO0tBQUE7Q0FDckQ7QUFhTSxnQkFBWSxrQkFBaUIsZUFBY0EsQ0FBVTtBQ2xCcEQsTUFBTUEsYUFBdUI7SUFDbEM7UUFBQyxNQUFRO1FBQUE7WUFBRSxHQUFHLENBQVk7WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0lBQ3pDO1FBQUMsTUFBUTtRQUFBO1lBQUUsR0FBRyxDQUFXO1lBQUEsS0FBSztRQUFBLENBQVU7S0FBQTtJQUN4QztRQUFDLE1BQVE7UUFBQTtZQUFFLEdBQUcsQ0FBWTtZQUFBLEtBQUs7UUFBQSxDQUFVO0tBQUE7SUFDekM7UUFBQyxNQUFRO1FBQUE7WUFBRSxHQUFHLENBQWM7WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0lBQzNDO1FBQUMsQ0FBUTtRQUFBLENBQUU7WUFBQSxFQUFHLGFBQWM7WUFBQSxJQUFLO1FBQVU7S0FBQTtDQUM3QztBQWFNLFlBQVEsa0JBQWlCLFdBQVVBLENBQVU7QUNuQjVDLE1BQU1BLGFBQXVCO0lBQ2xDO1FBQUMsTUFBUTtRQUFBO1lBQUUsR0FBRyxDQUFhO1lBQUEsS0FBSztRQUFBLENBQVU7S0FBQTtJQUMxQztRQUFDLE1BQVE7UUFBQTtZQUFFLEdBQUcsQ0FBYTtZQUFBLEtBQUs7UUFBQSxDQUFVO0tBQUE7SUFDMUM7UUFBQyxNQUFRO1FBQUE7WUFBRSxHQUFHLENBQVk7WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0lBQ3pDO1FBQUMsTUFBUTtRQUFBO1lBQUUsR0FBRyxDQUFZO1lBQUEsS0FBSztRQUFBLENBQVU7S0FBQTtJQUN6QztRQUFDLE1BQVE7UUFBQTtZQUFFLEdBQUcsQ0FBWTtZQUFBLEtBQUs7UUFBQSxDQUFVO0tBQUE7SUFDekM7UUFBQyxDQUFRO1FBQUEsQ0FBRTtZQUFBLEVBQUcsVUFBVztZQUFBLElBQUs7UUFBVTtLQUFBO0NBQzFDO0FBYU0sV0FBTyxrQkFBaUIsU0FBUUEsQ0FBVTtBQ3BCbkMsTUFBQUEsYUFBQSxDQUF1QjtJQUFDO1FBQUMsTUFBUTtRQUFBLENBQUU7WUFBQSxFQUFHLDhCQUErQjtZQUFBLEtBQUssQ0FBUztRQUFBLENBQUM7S0FBQztDQUFBO0FBYTVGLG1CQUFlLGtCQUFpQixrQkFBaUJBLENBQVU7QUNiMUQsTUFBTUEsYUFBdUI7SUFDbEM7UUFBQyxNQUFRO1FBQUE7WUFBRSxHQUFHLENBQXdDO1lBQUEsS0FBSztRQUFBLENBQVU7S0FBQTtJQUNyRTtRQUFDLE1BQVE7UUFBQTtZQUFFLEdBQUcsQ0FBMkM7WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0lBQ3hFO1FBQUMsTUFBUTtRQUFBO1lBQUUsR0FBRyxDQUEwQztZQUFBLEtBQUs7UUFBQSxDQUFVO0tBQUE7SUFDdkU7UUFBQyxDQUFVO1FBQUE7WUFBRSxDQUFJLFFBQU07WUFBQSxFQUFJO1lBQU0sQ0FBRztZQUFNLENBQUs7UUFBVTtLQUFBO0NBQzNEO0FBYU0scUJBQWlCLGtCQUFpQixvQkFBbUJBLENBQVU7QUNsQjlELE1BQU1BLGFBQXVCO0lBQ2xDO1FBQUMsTUFBUTtRQUFBO1lBQUUsR0FBRyxDQUFXO1lBQUEsS0FBSztRQUFBLENBQVU7S0FBQTtJQUN4QztRQUFDLE1BQVE7UUFBQTtZQUFFLEdBQUcsQ0FBcUI7WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0lBQ2xEO1FBQUMsTUFBUTtRQUFBO1lBQUUsR0FBRyxDQUFZO1lBQUEsS0FBSztRQUFBLENBQVU7S0FBQTtJQUN6QztRQUFDLE1BQVE7UUFBQTtZQUFFLEdBQUcsQ0FBc0I7WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0lBQ25EO1FBQUMsTUFBUTtRQUFBO1lBQUUsR0FBRyxDQUFZO1lBQUEsS0FBSztRQUFBLENBQVU7S0FBQTtJQUN6QztRQUFDLE1BQVE7UUFBQTtZQUFFLEdBQUcsQ0FBcUI7WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0lBQ2xEO1FBQUMsTUFBUTtRQUFBO1lBQUUsR0FBRyxDQUFXO1lBQUEsS0FBSztRQUFBLENBQVU7S0FBQTtJQUN4QztRQUFDLENBQVE7UUFBQSxDQUFFO1lBQUEsRUFBRyxtQkFBb0I7WUFBQSxJQUFLO1FBQVU7S0FBQTtDQUNuRDtBQWFNLGFBQVMsa0JBQWlCLFdBQVVBLENBQVU7QUN0QjdDLE1BQU1BLGFBQXVCO0lBQ2xDO1FBQUMsTUFBUTtRQUFBO1lBQUUsR0FBRyxDQUFZO1lBQUEsS0FBSztRQUFBLENBQVU7S0FBQTtJQUN6QztRQUFDLE1BQVE7UUFBQTtZQUFFLEdBQUcsQ0FBVztZQUFBLEtBQUs7UUFBQSxDQUFVO0tBQUE7SUFDeEM7UUFBQyxNQUFRO1FBQUE7WUFBRSxHQUFHLENBQW9DO1lBQUEsS0FBSztRQUFBLENBQVU7S0FBQTtJQUNqRTtRQUFDLE1BQVE7UUFBQTtZQUFFLEdBQUcsQ0FBWTtZQUFBLEtBQUs7UUFBQSxDQUFVO0tBQUE7SUFDekM7UUFBQyxNQUFRO1FBQUE7WUFBRSxHQUFHLENBQVc7WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0lBQ3hDO1FBQUMsTUFBUTtRQUFBO1lBQUUsR0FBRyxDQUFjO1lBQUEsS0FBSztRQUFBLENBQVU7S0FBQTtJQUMzQztRQUFDLENBQVE7UUFBQSxDQUFFO1lBQUEsRUFBRywrQkFBZ0M7WUFBQSxJQUFLO1FBQVU7S0FBQTtDQUMvRDtBQWFNLGdCQUFZLGtCQUFpQixlQUFjQSxDQUFVO0FDckJwRCxNQUFNQSxhQUF1QjtJQUNsQztRQUFDO1FBQVEsQ0FBRTtZQUFBLElBQUksQ0FBSztZQUFBLElBQUksQ0FBSztZQUFBLEdBQUksS0FBTTtZQUFBLEdBQUksS0FBTTtZQUFBLEtBQUs7UUFBQSxDQUFVO0tBQUE7SUFDaEU7UUFBQztRQUFRLENBQUU7WUFBQSxJQUFJLENBQU07WUFBQSxJQUFJLENBQU07WUFBQSxHQUFJLEtBQU07WUFBQSxHQUFJLEtBQU07WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0lBQ2xFO1FBQUM7UUFBUSxDQUFFO1lBQUEsSUFBSSxDQUFNO1lBQUEsSUFBSSxDQUFNO1lBQUEsR0FBSSxJQUFLO1lBQUEsR0FBSSxJQUFLO1lBQUEsS0FBSztRQUFBLENBQVU7S0FBQTtJQUNoRTtRQUFDO1FBQVEsQ0FBRTtZQUFBLElBQUksQ0FBTTtZQUFBLElBQUksQ0FBTTtZQUFBLEdBQUksS0FBTTtZQUFBLEdBQUksS0FBTTtZQUFBLEtBQUs7UUFBQSxDQUFVO0tBQUE7SUFDbEU7UUFBQyxRQUFVO1FBQUE7WUFBRSxFQUFJO1lBQU0sQ0FBSSxRQUFNO1lBQUEsQ0FBRztZQUFLLEdBQUs7UUFBQSxDQUFVO0tBQUE7SUFDeEQ7UUFBQyxDQUFVO1FBQUE7WUFBRSxDQUFJLFFBQU07WUFBQSxFQUFJO1lBQU0sQ0FBRztZQUFLLENBQUs7UUFBVTtLQUFBO0NBQzFEO0FBYU0sa0JBQWMsa0JBQWlCLGlCQUFnQkEsQ0FBVTtBQ3BCeEQsTUFBTUEsYUFBdUI7SUFDbEM7UUFBQztRQUFRLENBQUU7WUFBQSxJQUFJLENBQUs7WUFBQSxJQUFJLENBQUs7WUFBQSxHQUFJLEtBQU07WUFBQSxHQUFJLEtBQU07WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0lBQ2hFO1FBQUM7UUFBUSxDQUFFO1lBQUEsSUFBSSxDQUFNO1lBQUEsSUFBSSxDQUFNO1lBQUEsR0FBSSxLQUFNO1lBQUEsR0FBSSxLQUFNO1lBQUEsS0FBSztRQUFBLENBQVU7S0FBQTtJQUNsRTtRQUFDO1FBQVEsQ0FBRTtZQUFBLElBQUksQ0FBTTtZQUFBLElBQUksQ0FBTTtZQUFBLEdBQUksSUFBSztZQUFBLEdBQUksSUFBSztZQUFBLEtBQUs7UUFBQSxDQUFVO0tBQUE7SUFDaEU7UUFBQztRQUFRLENBQUU7WUFBQSxJQUFJLENBQU07WUFBQSxJQUFJLENBQU07WUFBQSxHQUFJLEtBQU07WUFBQSxHQUFJLEtBQU07WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0lBQ2xFO1FBQUMsQ0FBVTtRQUFBO1lBQUUsQ0FBSSxRQUFNO1lBQUEsRUFBSTtZQUFNLENBQUc7WUFBSyxDQUFLO1FBQVU7S0FBQTtDQUMxRDtBQWFNLGFBQVMsa0JBQWlCLFdBQVVBLENBQVU7QUNuQjdDLE1BQU1BLGFBQXVCO0lBQ2xDO1FBQUMsTUFBUTtRQUFBO1lBQUUsR0FBRyxDQUErRDtZQUFBLEtBQUs7UUFBQSxDQUFVO0tBQUE7SUFDNUY7UUFDRTtRQUNBO1lBQ0UsQ0FBRztZQUNILEdBQUs7UUFBQTtLQUVUO0lBQ0E7UUFBQyxDQUFVO1FBQUE7WUFBRSxDQUFJLFFBQU07WUFBQSxFQUFJO1lBQU0sQ0FBRztZQUFLLENBQUs7UUFBVTtLQUFBO0NBQzFEO0FBYU0sbUJBQWUsa0JBQWlCLGtCQUFpQkEsQ0FBVTtBQ3ZCMUQsTUFBTUEsYUFBdUI7SUFDbEM7UUFBQyxRQUFVO1FBQUE7WUFBRSxFQUFJO1lBQU0sQ0FBSSxRQUFNO1lBQUEsQ0FBRztZQUFLLEdBQUs7UUFBQSxDQUFVO0tBQUE7SUFDeEQ7UUFBQyxPQUFRO1FBQUE7WUFBRSxPQUFPO1lBQU0sQ0FBUTtZQUFNLENBQUc7WUFBSyxHQUFHLENBQU07WUFBQSxJQUFJLENBQUs7WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0lBQy9FO1FBQUMsQ0FBUTtRQUFBLENBQUU7WUFBQSxFQUFHLDZCQUE4QjtZQUFBLElBQUs7UUFBVTtLQUFBO0NBQzdEO0FBYU0sc0JBQWtCLGtCQUFpQixzQkFBcUJBLENBQVU7QUNqQmpFLE1BQU1BLGFBQXVCO0lBQ2xDO1FBQUMsUUFBVTtRQUFBO1lBQUUsRUFBSTtZQUFNLENBQUksUUFBTTtZQUFBLENBQUc7WUFBSyxHQUFLO1FBQUEsQ0FBVTtLQUFBO0lBQ3hEO1FBQUMsT0FBUTtRQUFBO1lBQUUsR0FBRztZQUFLLENBQUc7WUFBTSxDQUFPO1lBQU0sUUFBUSxDQUFNO1lBQUEsSUFBSSxDQUFLO1lBQUEsS0FBSztRQUFBLENBQVU7S0FBQTtJQUMvRTtRQUFDLENBQVE7UUFBQSxDQUFFO1lBQUEsRUFBRywyQkFBNEI7WUFBQSxJQUFLO1FBQVU7S0FBQTtDQUMzRDtBQWFNLGtCQUFjLGtCQUFpQixpQkFBZ0JBLENBQVU7QUNqQnhELE1BQU1BLGFBQXVCO0lBQ2xDO1FBQUMsTUFBUTtRQUFBO1lBQUUsS0FBTyxPQUFNO1lBQUEsT0FBUSxLQUFNO1lBQUEsR0FBRyxDQUFLO1lBQUEsR0FBRztZQUFNLENBQUksT0FBSztZQUFBLEdBQUksSUFBSztZQUFBLElBQUs7UUFBQSxDQUFVO0tBQUE7SUFDeEY7UUFBQyxDQUFRO1FBQUEsQ0FBRTtZQUFBLEVBQUcsMEJBQTJCO1lBQUEsSUFBSztRQUFVO0tBQUE7Q0FDMUQ7QUFhTSxlQUFXLGtCQUFpQixjQUFhQSxDQUFVO0FDaEJsRCxNQUFNQSxhQUF1QjtJQUNsQztRQUFDLE1BQVE7UUFBQTtZQUFFLEdBQUcsQ0FBa0I7WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0lBQy9DO1FBQUMsTUFBUTtRQUFBO1lBQUUsR0FBRyxDQUFZO1lBQUEsS0FBSztRQUFBLENBQVU7S0FBQTtJQUN6QztRQUFDLENBQVE7UUFBQSxDQUFFO1lBQUEsRUFBRyw0Q0FBNkM7WUFBQSxJQUFLO1FBQVU7S0FBQTtDQUM1RTtBQWFNLFlBQVEsa0JBQWlCLFdBQVVBLENBQVU7QUNqQjVDLE1BQU1BLGFBQXVCO0lBQ2xDO1FBQUMsTUFBUTtRQUFBO1lBQUUsS0FBTyxPQUFNO1lBQUEsT0FBUSxLQUFNO1lBQUEsR0FBRyxDQUFLO1lBQUEsR0FBRztZQUFNLENBQUksT0FBSztZQUFBLEdBQUksSUFBSztZQUFBLElBQUs7UUFBQSxDQUFVO0tBQUE7SUFDeEY7UUFBQyxDQUFRO1FBQUEsQ0FBRTtZQUFBLEVBQUcsMkJBQTRCO1lBQUEsSUFBSztRQUFVO0tBQUE7Q0FDM0Q7QUFhTSxXQUFPLGtCQUFpQixTQUFRQSxDQUFVO0FDaEJ6QyxNQUFNQSxhQUF1QjtJQUNsQztRQUFDLE1BQVE7UUFBQTtZQUFFLEdBQUcsQ0FBa0I7WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0lBQy9DO1FBQUMsTUFBUTtRQUFBO1lBQUUsR0FBRyxDQUFZO1lBQUEsS0FBSztRQUFBLENBQVU7S0FBQTtJQUN6QztRQUFDLENBQVE7UUFBQSxDQUFFO1lBQUEsRUFBRywwQ0FBMkM7WUFBQSxJQUFLO1FBQVU7S0FBQTtDQUMxRTtBQWFNLGFBQVMsa0JBQWlCLFlBQVdBLENBQVU7QUNqQjlDLE1BQU1BLGFBQXVCO0lBQ2xDO1FBQUMsTUFBUTtRQUFBO1lBQUUsR0FBRyxDQUFZO1lBQUEsS0FBSztRQUFBLENBQVU7S0FBQTtJQUN6QztRQUFDLE1BQVE7UUFBQTtZQUFFLEdBQUcsQ0FBWTtZQUFBLEtBQUs7UUFBQSxDQUFVO0tBQUE7SUFDekM7UUFBQyxNQUFRO1FBQUE7WUFBRSxHQUFHLENBQVc7WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0lBQ3hDO1FBQUMsTUFBUTtRQUFBO1lBQUUsR0FBRyxDQUFXO1lBQUEsS0FBSztRQUFBLENBQVU7S0FBQTtJQUN4QztRQUFDLE1BQVE7UUFBQTtZQUFFLEdBQUcsQ0FBVztZQUFBLEtBQUs7UUFBQSxDQUFVO0tBQUE7SUFDeEM7UUFBQyxNQUFRO1FBQUE7WUFBRSxHQUFHLENBQVU7WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0lBQ3ZDO1FBQUMsTUFBUTtRQUFBO1lBQUUsR0FBRyxDQUFXO1lBQUEsS0FBSztRQUFBLENBQVU7S0FBQTtJQUN4QztRQUFDLE1BQVE7UUFBQTtZQUFFLEdBQUcsQ0FBVztZQUFBLEtBQUs7UUFBQSxDQUFVO0tBQUE7SUFDeEM7UUFBQyxDQUFRO1FBQUEsQ0FBRTtZQUFBLEVBQUcsU0FBVTtZQUFBLElBQUs7UUFBVTtLQUFBO0NBQ3pDO0FBYU0sV0FBTyxrQkFBaUIsU0FBUUEsQ0FBVTtBQ3ZCekMsTUFBTUEsYUFBdUI7SUFDbEM7UUFBQyxRQUFVO1FBQUE7WUFBRSxFQUFJO1lBQU0sQ0FBSSxRQUFNO1lBQUEsQ0FBRztZQUFLLEdBQUs7UUFBQSxDQUFVO0tBQUE7SUFDeEQ7UUFBQyxNQUFRO1FBQUE7WUFBRSxHQUFHLENBQWtCO1lBQUEsS0FBSztRQUFBLENBQVU7S0FBQTtJQUMvQztRQUFDLENBQVE7UUFBQSxDQUFFO1lBQUEsRUFBRyxvREFBcUQ7WUFBQSxJQUFLO1FBQVU7S0FBQTtDQUNwRjtBQWFNLGVBQVcsa0JBQWlCLGFBQVlBLENBQVU7QUNqQmpELE1BQU1BLGFBQXVCO0lBQ2xDO1FBQ0U7UUFDQTtZQUFFLEdBQUcsdUVBQXlFO1lBQUEsS0FBSyxDQUFTO1FBQUE7S0FDOUY7SUFDQTtRQUFDLE1BQVE7UUFBQTtZQUFFLEdBQUcsQ0FBNEM7WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0lBQ3pFO1FBQUMsTUFBUTtRQUFBO1lBQUUsR0FBRyxDQUFZO1lBQUEsS0FBSztRQUFBLENBQVU7S0FBQTtJQUN6QztRQUFDLFFBQVU7UUFBQTtZQUFFLEVBQUk7WUFBTSxDQUFJLFFBQU07WUFBQSxDQUFHO1lBQUssR0FBSztRQUFBLENBQVU7S0FBQTtJQUN4RDtRQUFDLENBQVU7UUFBQTtZQUFFLENBQUksT0FBSztZQUFBLEVBQUk7WUFBTSxDQUFHO1lBQUssQ0FBSztRQUFVO0tBQUE7Q0FDekQ7QUFhTSxjQUFVLGtCQUFpQixZQUFXQSxDQUFVO0FDdEIvQyxNQUFNQSxhQUF1QjtJQUNsQztRQUNFO1FBQ0E7WUFDRSxDQUFHO1lBQ0gsR0FBSztRQUFBO0tBRVQ7SUFDQTtRQUFDLE1BQVE7UUFBQTtZQUFFLEdBQUcsQ0FBWTtZQUFBLEtBQUs7UUFBQSxDQUFVO0tBQUE7SUFDekM7UUFBQyxDQUFRO1FBQUEsQ0FBRTtZQUFBLEVBQUcsYUFBYztZQUFBLElBQUs7UUFBVTtLQUFBO0NBQzdDO0FBYU0sYUFBUyxrQkFBaUIsV0FBVUEsQ0FBVTtBQ3ZCN0MsTUFBTUEsYUFBdUI7SUFDbEM7UUFBQyxNQUFRO1FBQUE7WUFBRSxHQUFHLENBQTZEO1lBQUEsS0FBSztRQUFBLENBQVU7S0FBQTtJQUMxRjtRQUFDLE1BQVE7UUFBQTtZQUFFLEdBQUcsQ0FBNkM7WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0lBQzFFO1FBQUMsQ0FBUTtRQUFBLENBQUU7WUFBQSxFQUFHLGlCQUFrQjtZQUFBLElBQUs7UUFBVTtLQUFBO0NBQ2pEO0FBYU0sZ0JBQVksa0JBQWlCLGVBQWNBLENBQVU7QUNqQnBELE1BQU1BLGFBQXVCO0lBQ2xDO1FBQUMsTUFBUTtRQUFBO1lBQUUsR0FBRyxDQUE2RDtZQUFBLEtBQUs7UUFBQSxDQUFVO0tBQUE7SUFDMUY7UUFBQyxNQUFRO1FBQUE7WUFBRSxHQUFHLENBQTZDO1lBQUEsS0FBSztRQUFBLENBQVU7S0FBQTtJQUMxRTtRQUFDLENBQVE7UUFBQSxDQUFFO1lBQUEsRUFBRyxXQUFZO1lBQUEsSUFBSztRQUFVO0tBQUE7Q0FDM0M7QUFhTSxnQkFBWSxrQkFBaUIsZUFBY0EsQ0FBVTtBQ2pCcEQsTUFBTUEsYUFBdUI7SUFDbEM7UUFDRTtRQUNBO1lBQ0UsQ0FBRztZQUNILEdBQUs7UUFBQTtLQUVUO0lBQ0E7UUFBQyxDQUFRO1FBQUEsQ0FBRTtZQUFBLEVBQUcsOENBQStDO1lBQUEsSUFBSztRQUFVO0tBQUE7Q0FDOUU7QUFhTSxlQUFXLGtCQUFpQixjQUFhQSxDQUFVO0FDdEJsRCxNQUFNQSxhQUF1QjtJQUNsQztRQUFDLE1BQVE7UUFBQTtZQUFFLEdBQUcsQ0FBNkQ7WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0lBQzFGO1FBQUMsTUFBUTtRQUFBO1lBQUUsR0FBRyxDQUE2QztZQUFBLEtBQUs7UUFBQSxDQUFVO0tBQUE7SUFDMUU7UUFBQyxNQUFRO1FBQUE7WUFBRSxHQUFHLENBQVk7WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0lBQ3pDO1FBQUMsQ0FBUTtRQUFBLENBQUU7WUFBQSxFQUFHLFdBQVk7WUFBQSxJQUFLO1FBQVU7S0FBQTtDQUMzQztBQWFNLGVBQVcsa0JBQWlCLGNBQWFBLENBQVU7QUNsQmxELE1BQU1BLGFBQXVCO0lBQ2xDO1FBQUMsTUFBUTtRQUFBO1lBQUUsR0FBRyxDQUFrRTtZQUFBLEtBQUs7UUFBQSxDQUFVO0tBQUE7SUFDL0Y7UUFBQyxNQUFRO1FBQUE7WUFBRSxHQUFHLENBQTZDO1lBQUEsS0FBSztRQUFBLENBQVU7S0FBQTtJQUMxRTtRQUNFO1FBQ0E7WUFDRSxDQUFHO1lBQ0gsR0FBSztRQUFBO0tBRVQ7SUFDQTtRQUFDLENBQVE7UUFBQSxDQUFFO1lBQUEsRUFBRyxhQUFjO1lBQUEsSUFBSztRQUFVO0tBQUE7Q0FDN0M7QUFhTSx1QkFBbUIsa0JBQWlCLHVCQUFzQkEsQ0FBVTtBQ3hCbkUsTUFBTUEsYUFBdUI7SUFDbEM7UUFBQyxNQUFRO1FBQUE7WUFBRSxHQUFHLENBQWlFO1lBQUEsS0FBSztRQUFBLENBQVU7S0FBQTtJQUM5RjtRQUFDLE1BQVE7UUFBQTtZQUFFLEdBQUcsQ0FBNkM7WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0lBQzFFO1FBQUMsTUFBUTtRQUFBO1lBQUUsR0FBRyxDQUF1QztZQUFBLEtBQUs7UUFBQSxDQUFVO0tBQUE7SUFDcEU7UUFBQyxRQUFVO1FBQUE7WUFBRSxFQUFJO1lBQU0sQ0FBSSxRQUFNO1lBQUEsQ0FBRztZQUFLLEdBQUs7UUFBQSxDQUFVO0tBQUE7SUFDeEQ7UUFBQyxDQUFRO1FBQUEsQ0FBRTtZQUFBLEVBQUcsaUJBQWtCO1lBQUEsSUFBSztRQUFVO0tBQUE7Q0FDakQ7QUFhTSxpQkFBYSxrQkFBaUIsZ0JBQWVBLENBQVU7QUNuQnRELE1BQU1BLGFBQXVCO0lBQ2xDO1FBQUMsTUFBUTtRQUFBO1lBQUUsR0FBRyxDQUFrRTtZQUFBLEtBQUs7UUFBQSxDQUFVO0tBQUE7SUFDL0Y7UUFBQyxNQUFRO1FBQUE7WUFBRSxHQUFHLENBQTZDO1lBQUEsS0FBSztRQUFBLENBQVU7S0FBQTtJQUMxRTtRQUFDLE1BQVE7UUFBQTtZQUFFLEdBQUcsQ0FBWTtZQUFBLEtBQUs7UUFBQSxDQUFVO0tBQUE7SUFDekM7UUFBQyxDQUFRO1FBQUEsQ0FBRTtZQUFBLEVBQUcsYUFBYztZQUFBLElBQUs7UUFBVTtLQUFBO0NBQzdDO0FBYU0sa0JBQWMsa0JBQWlCLGlCQUFnQkEsQ0FBVTtBQ2xCeEQsTUFBTUEsYUFBdUI7SUFDbEM7UUFBQyxNQUFRO1FBQUE7WUFBRSxHQUFHLENBQTZEO1lBQUEsS0FBSztRQUFBLENBQVU7S0FBQTtJQUMxRjtRQUFDLE1BQVE7UUFBQTtZQUFFLEdBQUcsQ0FBNkM7WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0lBQzFFO1FBQUMsTUFBUTtRQUFBO1lBQUUsR0FBRyxDQUFjO1lBQUEsS0FBSztRQUFBLENBQVU7S0FBQTtJQUMzQztRQUFDLENBQVE7UUFBQSxDQUFFO1lBQUEsRUFBRyxhQUFjO1lBQUEsSUFBSztRQUFVO0tBQUE7Q0FDN0M7QUFhTSxZQUFRLGtCQUFpQixXQUFVQSxDQUFVO0FDbEI1QyxNQUFNQSxhQUF1QjtJQUNsQztRQUFDLE1BQVE7UUFBQTtZQUFFLEdBQUcsQ0FBMkM7WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0lBQ3hFO1FBQUM7UUFBUSxDQUFFO1lBQUEsRUFBRyxLQUFLO1lBQUEsQ0FBRyxNQUFLO1lBQUEsS0FBTyxPQUFNO1lBQUEsT0FBUSxLQUFNO1lBQUEsR0FBSSxJQUFLO1lBQUEsSUFBSztRQUFVO0tBQUE7Q0FDaEY7QUFhTSxXQUFPLGtCQUFpQixTQUFRQSxDQUFVO0FDaEJ6QyxNQUFNQSxhQUF1QjtJQUNsQztRQUNFO1FBQ0E7WUFDRSxDQUFHO1lBQ0gsR0FBSztRQUFBO0tBRVQ7SUFDQTtRQUFDLFVBQVk7UUFBQTtZQUFFLFFBQVEsQ0FBbUI7WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0lBQ3pEO1FBQUMsTUFBUTtRQUFBO1lBQUUsR0FBRyxDQUEyQztZQUFBLEtBQUs7UUFBQSxDQUFVO0tBQUE7SUFDeEU7UUFBQyxPQUFRO1FBQUE7WUFBRSxHQUFJLElBQUs7WUFBQSxHQUFJLElBQUs7WUFBQSxJQUFJLENBQU07WUFBQSxJQUFJLElBQU07WUFBQSxJQUFLO1FBQVU7S0FBQTtDQUNsRTtBQWFNLGNBQVUsa0JBQWlCLFlBQVdBLENBQVU7QUN4Qi9DLE1BQU1BLGFBQXVCO0lBQ2xDO1FBQUMsT0FBUTtRQUFBO1lBQUUsT0FBTztZQUFNLENBQVE7WUFBTSxDQUFHO1lBQUssR0FBRyxDQUFLO1lBQUEsSUFBSSxDQUFLO1lBQUEsS0FBSztRQUFBLENBQVU7S0FBQTtJQUM5RTtRQUFDLE1BQVE7UUFBQTtZQUFFLEdBQUcsQ0FBMEM7WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0lBQ3ZFO1FBQUMsQ0FBUTtRQUFBLENBQUU7WUFBQSxFQUFHLDJCQUE0QjtZQUFBLElBQUs7UUFBVTtLQUFBO0NBQzNEO0FBYU0sWUFBUSxrQkFBaUIsVUFBU0EsQ0FBVTtBQ2pCM0MsTUFBTUEsYUFBdUI7SUFDbEM7UUFDRTtRQUNBO1lBQ0UsQ0FBRztZQUNILEdBQUs7UUFBQTtLQUVUO0lBQ0E7UUFBQyxDQUFRO1FBQUEsQ0FBRTtZQUFBLEVBQUcsZ0JBQWlCO1lBQUEsSUFBSztRQUFVO0tBQUE7Q0FDaEQ7QUFhTSx3QkFBb0Isa0JBQWlCLHlCQUF3QkEsQ0FBVTtBQ3RCdEUsTUFBTUEsYUFBdUI7SUFDbEM7UUFDRTtRQUNBO1lBQ0UsQ0FBRztZQUNILEdBQUs7UUFBQTtLQUVUO0lBQ0E7UUFBQyxRQUFVO1FBQUE7WUFBRSxFQUFJO1lBQU0sQ0FBSSxRQUFNO1lBQUEsQ0FBRztZQUFLLEdBQUs7UUFBQSxDQUFVO0tBQUE7SUFDeEQ7UUFBQyxDQUFRO1FBQUEsQ0FBRTtZQUFBLEVBQUcsaUJBQWtCO1lBQUEsSUFBSztRQUFVO0tBQUE7Q0FDakQ7QUFhTSxrQkFBYyxrQkFBaUIsa0JBQWlCQSxDQUFVO0FDdkJ6RCxNQUFNQSxhQUF1QjtJQUNsQztRQUNFO1FBQ0E7WUFDRSxDQUFHO1lBQ0gsR0FBSztRQUFBO0tBRVQ7SUFDQTtRQUNFO1FBQ0E7WUFDRSxDQUFHO1lBQ0gsR0FBSztRQUFBO0tBRVQ7SUFDQTtRQUFDLE1BQVE7UUFBQTtZQUFFLEdBQUcsQ0FBYTtZQUFBLEtBQUs7UUFBQSxDQUFVO0tBQUE7SUFDMUM7UUFBQyxDQUFVO1FBQUE7WUFBRSxDQUFJLFFBQU07WUFBQSxFQUFJO1lBQU0sQ0FBRztZQUFLLENBQUs7UUFBVTtLQUFBO0NBQzFEO0FBYU0sa0JBQWMsa0JBQWlCLGtCQUFpQkEsQ0FBVTtBQzlCekQsTUFBTUEsYUFBdUI7SUFDbEM7UUFDRTtRQUNBO1lBQ0UsQ0FBRztZQUNILEdBQUs7UUFBQTtLQUVUO0lBQ0E7UUFBQyxDQUFRO1FBQUEsQ0FBRTtZQUFBLEVBQUcsVUFBVztZQUFBLElBQUs7UUFBVTtLQUFBO0NBQzFDO0FBYU0sd0JBQW9CLGtCQUFpQix5QkFBd0JBLENBQVU7QUN0QnRFLE1BQU1BLGFBQXVCO0lBQ2xDO1FBQ0U7UUFDQTtZQUNFLENBQUc7WUFDSCxHQUFLO1FBQUE7S0FFVDtJQUNBO1FBQUMsUUFBVTtRQUFBO1lBQUUsRUFBSTtZQUFNLENBQUksUUFBTTtZQUFBLENBQUc7WUFBSyxHQUFLO1FBQUEsQ0FBVTtLQUFBO0lBQ3hEO1FBQUMsQ0FBUTtRQUFBLENBQUU7WUFBQSxFQUFHLFdBQVk7WUFBQSxJQUFLO1FBQVU7S0FBQTtDQUMzQztBQWFNLGtCQUFjLGtCQUFpQixrQkFBaUJBLENBQVU7QUN2QnpELE1BQU1BLGFBQXVCO0lBQ2xDO1FBQUMsTUFBUTtRQUFBO1lBQUUsR0FBRyxDQUFtQztZQUFBLEtBQUs7UUFBQSxDQUFVO0tBQUE7SUFDaEU7UUFDRTtRQUNBO1lBQ0UsQ0FBRztZQUNILEdBQUs7UUFBQTtLQUVUO0lBQ0E7UUFBQyxNQUFRO1FBQUE7WUFBRSxHQUFHLENBQWM7WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0lBQzNDO1FBQUMsTUFBUTtRQUFBO1lBQUUsR0FBRyxDQUE0RDtZQUFBLEtBQUs7UUFBQSxDQUFVO0tBQUE7SUFDekY7UUFBQyxDQUFRO1FBQUEsQ0FBRTtZQUFBLEVBQUcsaUNBQWtDO1lBQUEsSUFBSztRQUFVO0tBQUE7Q0FDakU7QUFhTSxnQkFBWSxrQkFBaUIsZ0JBQWVBLENBQVU7QUN6QnJELE1BQU1BLGFBQXVCO0lBQ2xDO1FBQ0U7UUFDQTtZQUNFLENBQUc7WUFDSCxHQUFLO1FBQUE7S0FFVDtJQUNBO1FBQUMsTUFBUTtRQUFBO1lBQUUsR0FBRyxDQUFXO1lBQUEsS0FBSztRQUFBLENBQVU7S0FBQTtJQUN4QztRQUFDLENBQVE7UUFBQSxDQUFFO1lBQUEsRUFBRyxVQUFXO1lBQUEsSUFBSztRQUFVO0tBQUE7Q0FDMUM7QUFhTSx1QkFBbUIsa0JBQWlCLHdCQUF1QkEsQ0FBVTtBQ3ZCcEUsTUFBTUEsYUFBdUI7SUFDbEM7UUFDRTtRQUNBO1lBQ0UsQ0FBRztZQUNILEdBQUs7UUFBQTtLQUVUO0lBQ0E7UUFBQyxRQUFVO1FBQUE7WUFBRSxFQUFJO1lBQU0sQ0FBSSxRQUFNO1lBQUEsQ0FBRztZQUFLLEdBQUs7UUFBQSxDQUFVO0tBQUE7SUFDeEQ7UUFBQyxNQUFRO1FBQUE7WUFBRSxHQUFHLENBQVk7WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0lBQ3pDO1FBQUMsQ0FBUTtRQUFBLENBQUU7WUFBQSxFQUFHLFdBQVk7WUFBQSxJQUFLO1FBQVU7S0FBQTtDQUMzQztBQWFNLGlCQUFhLGtCQUFpQixpQkFBZ0JBLENBQVU7QUN4QnZELE1BQU1BLGFBQXVCO0lBQ2xDO1FBQ0U7UUFDQTtZQUNFLENBQUc7WUFDSCxHQUFLO1FBQUE7S0FFVDtJQUNBO1FBQUMsTUFBUTtRQUFBO1lBQUUsR0FBRyxDQUFpQjtZQUFBLEtBQUs7UUFBQSxDQUFVO0tBQUE7SUFDOUM7UUFBQyxDQUFRO1FBQUEsQ0FBRTtZQUFBLEVBQUcsZUFBZ0I7WUFBQSxJQUFLO1FBQVU7S0FBQTtDQUMvQztBQWFNLG9CQUFnQixrQkFBaUIscUJBQW9CQSxDQUFVO0FDdkI5RCxNQUFNQSxhQUF1QjtJQUNsQztRQUNFO1FBQ0E7WUFDRSxDQUFHO1lBQ0gsR0FBSztRQUFBO0tBRVQ7SUFDQTtRQUFDLFFBQVU7UUFBQTtZQUFFLEVBQUk7WUFBTSxDQUFJLFFBQU07WUFBQSxDQUFHO1lBQUssR0FBSztRQUFBLENBQVU7S0FBQTtJQUN4RDtRQUFDLE1BQVE7UUFBQTtZQUFFLEdBQUcsQ0FBa0I7WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0lBQy9DO1FBQUMsQ0FBUTtRQUFBLENBQUU7WUFBQSxFQUFHLGlCQUFrQjtZQUFBLElBQUs7UUFBVTtLQUFBO0NBQ2pEO0FBYU0sY0FBVSxrQkFBaUIsY0FBYUEsQ0FBVTtBQ3hCakQsTUFBTUEsYUFBdUI7SUFDbEM7UUFDRTtRQUNBO1lBQ0UsQ0FBRztZQUNILEdBQUs7UUFBQTtLQUVUO0lBQ0E7UUFBQyxDQUFVO1FBQUE7WUFBRSxDQUFJLFFBQU07WUFBQSxFQUFJO1lBQU0sQ0FBRztZQUFLLENBQUs7UUFBVTtLQUFBO0NBQzFEO0FBYU0sYUFBUyxrQkFBaUIsWUFBV0EsQ0FBVTtBQ3RCOUMsTUFBTUEsYUFBdUI7SUFDbEM7UUFDRTtRQUNBO1lBQ0UsQ0FBRztZQUNILEdBQUs7UUFBQTtLQUVUO0lBQ0E7UUFBQyxRQUFVO1FBQUE7WUFBRSxFQUFJO1lBQU0sQ0FBSSxPQUFLO1lBQUEsQ0FBRztZQUFLLEdBQUs7UUFBQSxDQUFVO0tBQUE7SUFDdkQ7UUFDRTtRQUNBO1lBQ0UsQ0FBRztZQUNILEdBQUs7UUFBQTtLQUNQO0NBRUo7QUFhTSxnQkFBWSxrQkFBaUIsZUFBY0EsQ0FBVTtBQzdCcEQsTUFBTUEsYUFBdUI7SUFDbEM7UUFDRTtRQUNBO1lBQ0UsQ0FBRztZQUNILEdBQUs7UUFBQTtLQUVUO0lBQ0E7UUFBQyxNQUFRO1FBQUE7WUFBRSxHQUFHLENBQWdCO1lBQUEsS0FBSztRQUFBLENBQVU7S0FBQTtJQUM3QztRQUFDLE1BQVE7UUFBQTtZQUFFLEdBQUcsQ0FBWTtZQUFBLEtBQUs7UUFBQSxDQUFVO0tBQUE7SUFDekM7UUFBQyxNQUFRO1FBQUE7WUFBRSxHQUFHLENBQWE7WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0lBQzFDO1FBQUMsQ0FBUTtRQUFBLENBQUU7WUFBQSxFQUFHLGNBQWU7WUFBQSxJQUFLO1FBQVU7S0FBQTtDQUM5QztBQWFNLGNBQVUsa0JBQWlCLGFBQVlBLENBQVU7QUN6QmhELE1BQU1BLGFBQXVCO0lBQ2xDO1FBQ0U7UUFDQTtZQUNFLENBQUc7WUFDSCxHQUFLO1FBQUE7S0FFVDtJQUNBO1FBQUMsTUFBUTtRQUFBO1lBQUUsR0FBRyxDQUFnQjtZQUFBLEtBQUs7UUFBQSxDQUFVO0tBQUE7SUFDN0M7UUFBQyxDQUFRO1FBQUEsQ0FBRTtZQUFBLEVBQUcsY0FBZTtZQUFBLElBQUs7UUFBVTtLQUFBO0NBQzlDO0FBYU0sVUFBTSxrQkFBaUIsUUFBT0EsQ0FBVTtBQ3ZCdkMsTUFBTUEsYUFBdUI7SUFDbEM7UUFBQyxNQUFRO1FBQUE7WUFBRSxHQUFHLENBQWE7WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0lBQzFDO1FBQUMsTUFBUTtRQUFBO1lBQUUsR0FBRyxDQUFhO1lBQUEsS0FBSztRQUFBLENBQVU7S0FBQTtJQUMxQztRQUFDLE1BQVE7UUFBQTtZQUFFLEdBQUcsQ0FBbUI7WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0lBQ2hEO1FBQUMsQ0FBVTtRQUFBO1lBQUUsQ0FBSSxPQUFLO1lBQUEsRUFBSTtZQUFNLENBQUc7WUFBSyxDQUFLO1FBQVU7S0FBQTtDQUN6RDtBQWFNLGlCQUFhLGtCQUFpQixnQkFBZUEsQ0FBVTtBQ2xCdEQsTUFBTUEsYUFBdUI7SUFDbEM7UUFBQyxNQUFRO1FBQUE7WUFBRSxHQUFHLENBQWE7WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0lBQzFDO1FBQUMsTUFBUTtRQUFBO1lBQUUsR0FBRyxDQUFtQjtZQUFBLEtBQUs7UUFBQSxDQUFVO0tBQUE7SUFDaEQ7UUFBQyxDQUFVO1FBQUE7WUFBRSxDQUFJLFFBQU07WUFBQSxFQUFJO1lBQU0sQ0FBRztZQUFLLENBQUs7UUFBVTtLQUFBO0NBQzFEO0FBYU0sV0FBTyxrQkFBaUIsU0FBUUEsQ0FBVTtBQ2pCekMsTUFBTUEsYUFBdUI7SUFDbEM7UUFBQyxNQUFRO1FBQUE7WUFBRSxHQUFHLENBQWE7WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0lBQzFDO1FBQUMsTUFBUTtRQUFBO1lBQUUsR0FBRyxDQUFhO1lBQUEsS0FBSztRQUFBLENBQVU7S0FBQTtJQUMxQztRQUFDLE1BQVE7UUFBQTtZQUFFLEdBQUcsQ0FBYTtZQUFBLEtBQUs7UUFBQSxDQUFVO0tBQUE7SUFDMUM7UUFBQyxDQUFRO1FBQUEsQ0FBRTtZQUFBLEVBQUcsYUFBYztZQUFBLElBQUs7UUFBVTtLQUFBO0NBQzdDO0FBYU0sZ0JBQVksa0JBQWlCLGVBQWNBLENBQVU7QUNsQnBELE1BQU1BLGFBQXVCO0lBQ2xDO1FBQUMsTUFBUTtRQUFBO1lBQUUsR0FBRyxDQUFXO1lBQUEsS0FBSztRQUFBLENBQVU7S0FBQTtJQUN4QztRQUFDLE1BQVE7UUFBQTtZQUFFLEdBQUcsQ0FBYTtZQUFBLEtBQUs7UUFBQSxDQUFVO0tBQUE7SUFDMUM7UUFBQyxDQUFRO1FBQUEsQ0FBRTtZQUFBLEVBQUcsaUJBQWtCO1lBQUEsSUFBSztRQUFVO0tBQUE7Q0FDakQ7QUFhTSxjQUFVLGtCQUFpQixZQUFXQSxDQUFVO0FDakIvQyxNQUFNQSxhQUF1QjtJQUNsQztRQUFDLE1BQVE7UUFBQTtZQUFFLEdBQUcsQ0FBMEI7WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0lBQ3ZEO1FBQUMsTUFBUTtRQUFBO1lBQUUsR0FBRyxDQUE0QjtZQUFBLEtBQUs7UUFBQSxDQUFVO0tBQUE7SUFDekQ7UUFBQyxNQUFRO1FBQUE7WUFBRSxHQUFHLENBQTJCO1lBQUEsS0FBSztRQUFBLENBQVU7S0FBQTtJQUN4RDtRQUFDLENBQVE7UUFBQSxDQUFFO1lBQUEsRUFBRyw0QkFBNkI7WUFBQSxJQUFLO1FBQVU7S0FBQTtDQUM1RDtBQWFNLGVBQVcsa0JBQWlCLGFBQVlBLENBQVU7QUNsQmpELE1BQU1BLGFBQXVCO0lBQ2xDO1FBQ0U7UUFDQTtZQUNFLENBQUc7WUFDSCxHQUFLO1FBQUE7S0FFVDtJQUNBO1FBQUMsTUFBUTtRQUFBO1lBQUUsR0FBRyxDQUFtQjtZQUFBLEtBQUs7UUFBQSxDQUFVO0tBQUE7SUFDaEQ7UUFBQyxNQUFRO1FBQUE7WUFBRSxHQUFHLENBQW1CO1lBQUEsS0FBSztRQUFBLENBQVU7S0FBQTtJQUNoRDtRQUFDLE1BQVE7UUFBQTtZQUFFLEdBQUcsQ0FBVTtZQUFBLEtBQUs7UUFBQSxDQUFVO0tBQUE7SUFDdkM7UUFBQyxRQUFVO1FBQUE7WUFBRSxFQUFJO1lBQU0sQ0FBSSxRQUFNO1lBQUEsQ0FBRztZQUFLLEdBQUs7UUFBQSxDQUFVO0tBQUE7SUFDeEQ7UUFBQyxDQUFRO1FBQUEsQ0FBRTtZQUFBLEVBQUcsZ0JBQWlCO1lBQUEsSUFBSztRQUFVO0tBQUE7Q0FDaEQ7QUFhTSxZQUFRLGtCQUFpQixVQUFTQSxDQUFVO0FDMUIzQyxNQUFNQSxhQUF1QjtJQUNsQztRQUFDLE1BQVE7UUFBQTtZQUFFLEdBQUcsQ0FBd0Q7WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0lBQ3JGO1FBQ0U7UUFDQTtZQUFFLEdBQUcsb0VBQXNFO1lBQUEsS0FBSyxDQUFTO1FBQUE7S0FDM0Y7SUFDQTtRQUFDLE1BQVE7UUFBQTtZQUFFLEdBQUcsQ0FBYztZQUFBLEtBQUs7UUFBQSxDQUFVO0tBQUE7SUFDM0M7UUFBQyxNQUFRO1FBQUE7WUFBRSxHQUFHLENBQStEO1lBQUEsS0FBSztRQUFBLENBQVU7S0FBQTtJQUM1RjtRQUFDLENBQVE7UUFBQSxDQUFFO1lBQUEsRUFBRyxTQUFVO1lBQUEsSUFBSztRQUFVO0tBQUE7Q0FDekM7QUFhTSxtQkFBZSxrQkFBaUIsa0JBQWlCQSxDQUFVO0FDdEIxRCxNQUFNQSxhQUF1QjtJQUNsQztRQUNFO1FBQ0E7WUFDRSxDQUFHO1lBQ0gsR0FBSztRQUFBO0tBRVQ7SUFDQTtRQUFDLE1BQVE7UUFBQTtZQUFFLEdBQUcsQ0FBK0Q7WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0lBQzVGO1FBQUMsQ0FBUTtRQUFBLENBQUU7WUFBQSxFQUFHLFNBQVU7WUFBQSxJQUFLO1FBQVU7S0FBQTtDQUN6QztBQWFNLGdCQUFZLGtCQUFpQixjQUFhQSxDQUFVO0FDdkJuRCxNQUFNQSxhQUF1QjtJQUNsQztRQUFDLFFBQVU7UUFBQTtZQUFFLEVBQUk7WUFBTSxDQUFJLFFBQU07WUFBQSxDQUFHO1lBQU0sR0FBSztRQUFBLENBQVU7S0FBQTtJQUN6RDtRQUFDO1FBQVEsQ0FBRTtZQUFBLElBQUksQ0FBSztZQUFBLElBQUksQ0FBTTtZQUFBLEdBQUksS0FBTTtZQUFBLEdBQUksS0FBTTtZQUFBLEtBQUs7UUFBQSxDQUFVO0tBQUE7SUFDakU7UUFBQztRQUFRLENBQUU7WUFBQSxJQUFJLENBQUs7WUFBQSxJQUFJLENBQVE7WUFBQSxHQUFJLElBQUs7WUFBQSxHQUFJLElBQUs7WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0lBQ2pFO1FBQUMsT0FBUTtRQUFBO1lBQUUsR0FBSSxLQUFNO1lBQUEsR0FBSSxRQUFTO1lBQUEsSUFBSSxDQUFLO1lBQUEsSUFBSSxHQUFLO1lBQUEsSUFBSztRQUFVO0tBQUE7Q0FDckU7QUFhTSxVQUFNLGtCQUFpQixRQUFPQSxDQUFVO0FDbEJ2QyxNQUFNQSxhQUF1QjtJQUNsQztRQUFDLE1BQVE7UUFBQTtZQUFFLEdBQUcsQ0FBWTtZQUFBLEtBQUs7UUFBQSxDQUFVO0tBQUE7SUFDekM7UUFBQyxNQUFRO1FBQUE7WUFBRSxHQUFHLENBQWE7WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0lBQzFDO1FBQUMsTUFBUTtRQUFBO1lBQUUsR0FBRyxDQUFhO1lBQUEsS0FBSztRQUFBLENBQVU7S0FBQTtJQUMxQztRQUFDLE1BQVE7UUFBQTtZQUFFLEdBQUcsQ0FBYTtZQUFBLEtBQUs7UUFBQSxDQUFVO0tBQUE7SUFDMUM7UUFBQyxNQUFRO1FBQUE7WUFBRSxHQUFHLENBQVc7WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0lBQ3hDO1FBQUMsTUFBUTtRQUFBO1lBQUUsR0FBRyxDQUFZO1lBQUEsS0FBSztRQUFBLENBQVU7S0FBQTtJQUN6QztRQUFDLE1BQVE7UUFBQTtZQUFFLEdBQUcsQ0FBWTtZQUFBLEtBQUs7UUFBQSxDQUFVO0tBQUE7SUFDekM7UUFBQyxNQUFRO1FBQUE7WUFBRSxHQUFHLENBQVk7WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0lBQ3pDO1FBQ0U7UUFDQTtZQUNFLENBQUc7WUFDSCxHQUFLO1FBQUE7S0FDUDtDQUVKO0FBYU0sa0JBQWMsa0JBQWlCLGlCQUFnQkEsQ0FBVTtBQzdCeEQsTUFBTUEsYUFBdUI7SUFDbEM7UUFBQyxNQUFRO1FBQUE7WUFBRSxHQUFHLENBQVk7WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0lBQ3pDO1FBQUMsTUFBUTtRQUFBO1lBQUUsR0FBRyxDQUFZO1lBQUEsS0FBSztRQUFBLENBQVU7S0FBQTtJQUN6QztRQUFDLENBQVE7UUFBQSxDQUFFO1lBQUEsRUFBRyxVQUFXO1lBQUEsSUFBSztRQUFVO0tBQUE7Q0FDMUM7QUFhTSxXQUFPLGtCQUFpQixTQUFRQSxDQUFVO0FDakJ6QyxNQUFNQSxhQUF1QjtJQUNsQztRQUFDLE1BQVE7UUFBQTtZQUFFLEdBQUcsQ0FBZ0I7WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0lBQzdDO1FBQUMsTUFBUTtRQUFBO1lBQUUsR0FBRyxDQUF5QztZQUFBLEtBQUs7UUFBQSxDQUFVO0tBQUE7SUFDdEU7UUFBQyxDQUFRO1FBQUEsQ0FBRTtZQUFBLEVBQUcsYUFBYztZQUFBLElBQUs7UUFBVTtLQUFBO0NBQzdDO0FBYU0sWUFBUSxrQkFBaUIsVUFBU0EsQ0FBVTtBQ2pCM0MsTUFBTUEsYUFBdUI7SUFDbEM7UUFBQyxNQUFRO1FBQUE7WUFBRSxHQUFHLENBQXNCO1lBQUEsS0FBSztRQUFBLENBQVU7S0FBQTtJQUNuRDtRQUFDLE1BQVE7UUFBQTtZQUFFLEdBQUcsQ0FBdUI7WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0lBQ3BEO1FBQUMsQ0FBUTtRQUFBLENBQUU7WUFBQSxFQUFHLGlDQUFrQztZQUFBLElBQUs7UUFBVTtLQUFBO0NBQ2pFO0FBYU0sd0JBQW9CLGtCQUFpQix3QkFBdUJBLENBQVU7QUNqQnJFLE1BQU1BLGFBQXVCO0lBQ2xDO1FBQUMsTUFBUTtRQUFBO1lBQUUsR0FBRyxDQUFrQztZQUFBLEtBQUs7UUFBQSxDQUFVO0tBQUE7SUFDL0Q7UUFDRTtRQUNBO1lBQ0UsQ0FBRztZQUNILEdBQUs7UUFBQTtLQUNQO0NBRUo7QUFhTSx5QkFBcUIsa0JBQWlCLHlCQUF3QkEsQ0FBVTtBQ3RCdkUsTUFBTUEsYUFBdUI7SUFDbEM7UUFBQyxNQUFRO1FBQUE7WUFBRSxHQUFHLENBQTJDO1lBQUEsS0FBSztRQUFBLENBQVU7S0FBQTtJQUN4RTtRQUFDLE1BQVE7UUFBQTtZQUFFLEdBQUcsQ0FBdUM7WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0lBQ3BFO1FBQUMsTUFBUTtRQUFBO1lBQUUsR0FBRyxDQUE0QztZQUFBLEtBQUs7UUFBQSxDQUFVO0tBQUE7SUFDekU7UUFBQyxNQUFRO1FBQUE7WUFBRSxHQUFHLENBQXdDO1lBQUEsS0FBSztRQUFBLENBQVU7S0FBQTtJQUNyRTtRQUFDLE1BQVE7UUFBQTtZQUFFLEdBQUcsQ0FBMEM7WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0lBQ3ZFO1FBQUMsTUFBUTtRQUFBO1lBQUUsR0FBRyxDQUEwQjtZQUFBLEtBQUs7UUFBQSxDQUFVO0tBQUE7SUFDdkQ7UUFBQyxNQUFRO1FBQUE7WUFBRSxHQUFHLENBQTBDO1lBQUEsS0FBSztRQUFBLENBQVU7S0FBQTtJQUN2RTtRQUFDLENBQVE7UUFBQSxDQUFFO1lBQUEsRUFBRyxxQ0FBc0M7WUFBQSxJQUFLO1FBQVU7S0FBQTtDQUNyRTtBQWFNLDBCQUFzQixrQkFBaUIsMEJBQXlCQSxDQUFVO0FDdEJ6RSxNQUFNQSxhQUF1QjtJQUNsQztRQUFDLE1BQVE7UUFBQTtZQUFFLEdBQUcsQ0FBa0M7WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0lBQy9EO1FBQUMsTUFBUTtRQUFBO1lBQUUsR0FBRyxDQUFhO1lBQUEsS0FBSztRQUFBLENBQVU7S0FBQTtJQUMxQztRQUFDLE1BQVE7UUFBQTtZQUFFLEdBQUcsQ0FBYztZQUFBLEtBQUs7UUFBQSxDQUFVO0tBQUE7SUFDM0M7UUFBQyxDQUFRO1FBQUEsQ0FBRTtZQUFBLEVBQUcsYUFBYztZQUFBLElBQUs7UUFBVTtLQUFBO0NBQzdDO0FBYU0sd0JBQW9CLGtCQUFpQix3QkFBdUJBLENBQVU7QUNsQnJFLE1BQU1BLGFBQXVCO0lBQ2xDO1FBQUMsTUFBUTtRQUFBO1lBQUUsR0FBRyxDQUFnQztZQUFBLEtBQUs7UUFBQSxDQUFVO0tBQUE7SUFDN0Q7UUFBQyxNQUFRO1FBQUE7WUFBRSxHQUFHLENBQWM7WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0lBQzNDO1FBQUMsQ0FBUTtRQUFBLENBQUU7WUFBQSxFQUFHLGlFQUFrRTtZQUFBLElBQUs7UUFBVTtLQUFBO0NBQ2pHO0FBYU0sdUJBQW1CLGtCQUFpQix1QkFBc0JBLENBQVU7QUNqQm5FLE1BQU1BLGFBQXVCO0lBQ2xDO1FBQUMsTUFBUTtRQUFBO1lBQUUsR0FBRyxDQUFrQztZQUFBLEtBQUs7UUFBQSxDQUFVO0tBQUE7SUFDL0Q7UUFBQyxNQUFRO1FBQUE7WUFBRSxHQUFHLENBQVc7WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0lBQ3hDO1FBQUMsQ0FBUTtRQUFBLENBQUU7WUFBQSxFQUFHLFVBQVc7WUFBQSxJQUFLO1FBQVU7S0FBQTtDQUMxQztBQWFNLHdCQUFvQixrQkFBaUIsd0JBQXVCQSxDQUFVO0FDakJyRSxNQUFNQSxhQUF1QjtJQUNsQztRQUFDLE1BQVE7UUFBQTtZQUFFLEdBQUcsQ0FBa0M7WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0lBQy9EO1FBQUMsTUFBUTtRQUFBO1lBQUUsR0FBRyxDQUF3QztZQUFBLEtBQUs7UUFBQSxDQUFVO0tBQUE7SUFDckU7UUFBQyxDQUFRO1FBQUEsQ0FBRTtZQUFBLEVBQUcsYUFBYztZQUFBLElBQUs7UUFBVTtLQUFBO0NBQzdDO0FBYU0sZ0NBQTRCLGtCQUFpQixpQ0FBZ0NBLENBQVU7QUNqQnRGLE1BQU1BLGFBQXVCO0lBQ2xDO1FBQUMsTUFBUTtRQUFBO1lBQUUsR0FBRyxDQUFrQztZQUFBLEtBQUs7UUFBQSxDQUFVO0tBQUE7SUFDL0Q7UUFBQyxNQUFRO1FBQUE7WUFBRSxHQUFHLENBQWtCO1lBQUEsS0FBSztRQUFBLENBQVU7S0FBQTtJQUMvQztRQUFDLENBQVE7UUFBQSxDQUFFO1lBQUEsRUFBRywwQkFBMkI7WUFBQSxJQUFLO1FBQVU7S0FBQTtDQUMxRDtBQWFNLHlCQUFxQixrQkFBaUIseUJBQXdCQSxDQUFVO0FDakJ2RSxNQUFNQSxhQUF1QjtJQUNsQztRQUFDLE1BQVE7UUFBQTtZQUFFLEdBQUcsQ0FBa0M7WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0lBQy9EO1FBQUMsTUFBUTtRQUFBO1lBQUUsR0FBRyxDQUFXO1lBQUEsS0FBSztRQUFBLENBQVU7S0FBQTtJQUN4QztRQUFDLENBQVE7UUFBQSxDQUFFO1lBQUEsRUFBRyxhQUFjO1lBQUEsSUFBSztRQUFVO0tBQUE7Q0FDN0M7QUFhTSwyQkFBdUIsa0JBQWlCLDJCQUEwQkEsQ0FBVTtBQ2pCM0UsTUFBTUEsYUFBdUI7SUFDbEM7UUFBQyxNQUFRO1FBQUE7WUFBRSxHQUFHLENBQWtDO1lBQUEsS0FBSztRQUFBLENBQVU7S0FBQTtJQUMvRDtRQUFDLE1BQVE7UUFBQTtZQUFFLEdBQUcsQ0FBYTtZQUFBLEtBQUs7UUFBQSxDQUFVO0tBQUE7SUFDMUM7UUFBQyxDQUFRO1FBQUEsQ0FBRTtZQUFBLEVBQUcsV0FBWTtZQUFBLElBQUs7UUFBVTtLQUFBO0NBQzNDO0FBYU0scUJBQWlCLGtCQUFpQixxQkFBb0JBLENBQVU7QUNqQi9ELE1BQU1BLGFBQXVCO0lBQ2xDO1FBQUMsQ0FBUTtRQUFBLENBQUU7WUFBQSxFQUFHLGlDQUFrQztZQUFBLElBQUs7UUFBVTtLQUFBO0NBQ2pFO0FBYU0sb0JBQWdCLGtCQUFpQixtQkFBa0JBLENBQVU7QUNmNUQsTUFBTUEsYUFBdUI7SUFDbEM7UUFBQyxNQUFRO1FBQUE7WUFBRSxHQUFHLENBQXNCO1lBQUEsS0FBSztRQUFBLENBQVU7S0FBQTtJQUNuRDtRQUFDLE1BQVE7UUFBQTtZQUFFLEdBQUcsQ0FBdUI7WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0lBQ3BEO1FBQUMsQ0FBUTtRQUFBLENBQUU7WUFBQSxFQUFHLGdFQUFpRTtZQUFBLElBQUs7UUFBVTtLQUFBO0NBQ2hHO0FBYU0sd0JBQW9CLGtCQUFpQix3QkFBdUJBLENBQVU7QUNqQnJFLE1BQU1BLGFBQXVCO0lBQ2xDO1FBQUMsTUFBUTtRQUFBO1lBQUUsR0FBRyxDQUFvQjtZQUFBLEtBQUs7UUFBQSxDQUFVO0tBQUE7SUFDakQ7UUFBQyxNQUFRO1FBQUE7WUFBRSxHQUFHLENBQVk7WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0lBQ3pDO1FBQUMsTUFBUTtRQUFBO1lBQUUsR0FBRyxDQUFXO1lBQUEsS0FBSztRQUFBLENBQVU7S0FBQTtJQUN4QztRQUFDLE1BQVE7UUFBQTtZQUFFLEdBQUcsQ0FBdUI7WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0lBQ3BEO1FBQUMsTUFBUTtRQUFBO1lBQUUsR0FBRyxDQUEwQjtZQUFBLEtBQUs7UUFBQSxDQUFVO0tBQUE7SUFDdkQ7UUFBQyxNQUFRO1FBQUE7WUFBRSxHQUFHLENBQVc7WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0lBQ3hDO1FBQUMsTUFBUTtRQUFBO1lBQUUsR0FBRyxDQUFVO1lBQUEsS0FBSztRQUFBLENBQVU7S0FBQTtJQUN2QztRQUFDLE1BQVE7UUFBQTtZQUFFLEdBQUcsQ0FBc0I7WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0lBQ25EO1FBQUMsQ0FBUTtRQUFBLENBQUU7WUFBQSxFQUFHLFNBQVU7WUFBQSxJQUFLO1FBQVU7S0FBQTtDQUN6QztBQWFNLDBCQUFzQixrQkFBaUIsMEJBQXlCQSxDQUFVO0FDdkJ6RSxNQUFNQSxhQUF1QjtJQUNsQztRQUFDLE1BQVE7UUFBQTtZQUFFLEdBQUcsQ0FBK0Q7WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0lBQzVGO1FBQUMsTUFBUTtRQUFBO1lBQUUsR0FBRyxDQUFXO1lBQUEsS0FBSztRQUFBLENBQVU7S0FBQTtJQUN4QztRQUFDLE1BQVE7UUFBQTtZQUFFLEdBQUcsQ0FBVztZQUFBLEtBQUs7UUFBQSxDQUFVO0tBQUE7SUFDeEM7UUFBQyxDQUFRO1FBQUEsQ0FBRTtZQUFBLEVBQUcsVUFBVztZQUFBLElBQUs7UUFBVTtLQUFBO0NBQzFDO0FBYU0sd0JBQW9CLGtCQUFpQix3QkFBdUJBLENBQVU7QUNsQnJFLE1BQU1BLGFBQXVCO0lBQ2xDO1FBQUMsTUFBUTtRQUFBO1lBQUUsR0FBRyxDQUF3RDtZQUFBLEtBQUs7UUFBQSxDQUFVO0tBQUE7SUFDckY7UUFBQyxDQUFVO1FBQUE7WUFBRSxDQUFJLFFBQU07WUFBQSxFQUFJO1lBQUssQ0FBRztZQUFLLENBQUs7UUFBVTtLQUFBO0NBQ3pEO0FBYU0sdUJBQW1CLGtCQUFpQix1QkFBc0JBLENBQVU7QUNoQm5FLE1BQU1BLGFBQXVCO0lBQ2xDO1FBQUMsTUFBUTtRQUFBO1lBQUUsR0FBRyxDQUFpRTtZQUFBLEtBQUs7UUFBQSxDQUFVO0tBQUE7SUFDOUY7UUFDRTtRQUNBO1lBQ0UsQ0FBRztZQUNILEdBQUs7UUFBQTtLQUNQO0NBRUo7QUFhTSx5QkFBcUIsa0JBQWlCLHlCQUF3QkEsQ0FBVTtBQ3RCdkUsTUFBTUEsYUFBdUI7SUFDbEM7UUFBQyxNQUFRO1FBQUE7WUFBRSxHQUFHLENBQTZCO1lBQUEsS0FBSztRQUFBLENBQVU7S0FBQTtJQUMxRDtRQUFDLE1BQVE7UUFBQTtZQUFFLEdBQUcsQ0FBcUQ7WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0lBQ2xGO1FBQUM7UUFBUSxDQUFFO1lBQUEsRUFBRyxNQUFNO1lBQUEsQ0FBRyxPQUFNO1lBQUEsS0FBTyxNQUFLO1lBQUEsT0FBUSxJQUFLO1lBQUEsR0FBSSxJQUFLO1lBQUEsSUFBSztRQUFVO0tBQUE7Q0FDaEY7QUFhTSx3QkFBb0Isa0JBQWlCLHdCQUF1QkEsQ0FBVTtBQ2pCckUsTUFBTUEsYUFBdUI7SUFDbEM7UUFBQyxNQUFRO1FBQUE7WUFBRSxHQUFHLENBQWlFO1lBQUEsS0FBSztRQUFBLENBQVU7S0FBQTtJQUM5RjtRQUFDLE1BQVE7UUFBQTtZQUFFLEdBQUcsQ0FBYTtZQUFBLEtBQUs7UUFBQSxDQUFVO0tBQUE7SUFDMUM7UUFBQyxNQUFRO1FBQUE7WUFBRSxHQUFHLENBQWM7WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0lBQzNDO1FBQUMsQ0FBUTtRQUFBLENBQUU7WUFBQSxFQUFHLGFBQWM7WUFBQSxJQUFLO1FBQVU7S0FBQTtDQUM3QztBQWFNLHdCQUFvQixrQkFBaUIsd0JBQXVCQSxDQUFVO0FDbEJyRSxNQUFNQSxhQUF1QjtJQUNsQztRQUFDLE1BQVE7UUFBQTtZQUFFLEdBQUcsQ0FBNEI7WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0lBQ3pEO1FBQUMsTUFBUTtRQUFBO1lBQUUsR0FBRyxDQUFjO1lBQUEsS0FBSztRQUFBLENBQVU7S0FBQTtJQUMzQztRQUFDLENBQVE7UUFBQSxDQUFFO1lBQUEsRUFBRyx1Q0FBd0M7WUFBQSxJQUFLO1FBQVU7S0FBQTtDQUN2RTtBQWFNLHVCQUFtQixrQkFBaUIsdUJBQXNCQSxDQUFVO0FDakJuRSxNQUFNQSxhQUF1QjtJQUNsQztRQUFDLE1BQVE7UUFBQTtZQUFFLEdBQUcsQ0FBaUU7WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0lBQzlGO1FBQUMsTUFBUTtRQUFBO1lBQUUsR0FBRyxDQUFXO1lBQUEsS0FBSztRQUFBLENBQVU7S0FBQTtJQUN4QztRQUFDLENBQVE7UUFBQSxDQUFFO1lBQUEsRUFBRyxVQUFXO1lBQUEsSUFBSztRQUFVO0tBQUE7Q0FDMUM7QUFhTSx3QkFBb0Isa0JBQWlCLHdCQUF1QkEsQ0FBVTtBQ2pCckUsTUFBTUEsYUFBdUI7SUFDbEM7UUFBQyxNQUFRO1FBQUE7WUFBRSxHQUFHLENBQWlFO1lBQUEsS0FBSztRQUFBLENBQVU7S0FBQTtJQUM5RjtRQUFDLE1BQVE7UUFBQTtZQUFFLEdBQUcsQ0FBMkI7WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0lBQ3hEO1FBQUMsQ0FBUTtRQUFBLENBQUU7WUFBQSxFQUFHLDRCQUE2QjtZQUFBLElBQUs7UUFBVTtLQUFBO0NBQzVEO0FBYU0seUJBQXFCLGtCQUFpQix5QkFBd0JBLENBQVU7QUNqQnZFLE1BQU1BLGFBQXVCO0lBQ2xDO1FBQUMsTUFBUTtRQUFBO1lBQUUsR0FBRyxDQUFpRTtZQUFBLEtBQUs7UUFBQSxDQUFVO0tBQUE7SUFDOUY7UUFBQyxNQUFRO1FBQUE7WUFBRSxHQUFHLENBQWlCO1lBQUEsS0FBSztRQUFBLENBQVU7S0FBQTtJQUM5QztRQUFDLENBQVE7UUFBQSxDQUFFO1lBQUEsRUFBRyw0QkFBNkI7WUFBQSxJQUFLO1FBQVU7S0FBQTtDQUM1RDtBQWFNLHlCQUFxQixrQkFBaUIseUJBQXdCQSxDQUFVO0FDakJ2RSxNQUFNQSxhQUF1QjtJQUNsQztRQUFDLE1BQVE7UUFBQTtZQUFFLEdBQUcsQ0FBbUQ7WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0lBQ2hGO1FBQUMsTUFBUTtRQUFBO1lBQUUsR0FBRyxDQUFhO1lBQUEsS0FBSztRQUFBLENBQVU7S0FBQTtJQUMxQztRQUFDLENBQVE7UUFBQSxDQUFFO1lBQUEsRUFBRyxZQUFhO1lBQUEsSUFBSztRQUFVO0tBQUE7Q0FDNUM7QUFhTSx5QkFBcUIsa0JBQWlCLHlCQUF3QkEsQ0FBVTtBQ2pCdkUsTUFBTUEsYUFBdUI7SUFDbEM7UUFBQyxNQUFRO1FBQUE7WUFBRSxHQUFHLENBQWlFO1lBQUEsS0FBSztRQUFBLENBQVU7S0FBQTtJQUM5RjtRQUFDLE1BQVE7UUFBQTtZQUFFLEdBQUcsQ0FBVztZQUFBLEtBQUs7UUFBQSxDQUFVO0tBQUE7SUFDeEM7UUFBQyxDQUFRO1FBQUEsQ0FBRTtZQUFBLEVBQUcsV0FBWTtZQUFBLElBQUs7UUFBVTtLQUFBO0NBQzNDO0FBYU0sd0JBQW9CLGtCQUFpQix3QkFBdUJBLENBQVU7QUNqQnJFLE1BQU1BLGFBQXVCO0lBQ2xDO1FBQUMsTUFBUTtRQUFBO1lBQUUsR0FBRyxDQUFpRTtZQUFBLEtBQUs7UUFBQSxDQUFVO0tBQUE7SUFDOUY7UUFBQyxNQUFRO1FBQUE7WUFBRSxHQUFHLENBQVc7WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0lBQ3hDO1FBQUMsQ0FBUTtRQUFBLENBQUU7WUFBQSxFQUFHLGFBQWM7WUFBQSxJQUFLO1FBQVU7S0FBQTtDQUM3QztBQWFNLDJCQUF1QixrQkFBaUIsMkJBQTBCQSxDQUFVO0FDakIzRSxNQUFNQSxhQUF1QjtJQUNsQztRQUFDLE1BQVE7UUFBQTtZQUFFLEdBQUcsQ0FBaUU7WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0lBQzlGO1FBQUMsTUFBUTtRQUFBO1lBQUUsR0FBRyxDQUFpQjtZQUFBLEtBQUs7UUFBQSxDQUFVO0tBQUE7SUFDOUM7UUFBQyxDQUFRO1FBQUEsQ0FBRTtZQUFBLEVBQUcsZUFBZ0I7WUFBQSxJQUFLO1FBQVU7S0FBQTtDQUMvQztBQWFNLHFCQUFpQixrQkFBaUIscUJBQW9CQSxDQUFVO0FDakIvRCxNQUFNQSxhQUF1QjtJQUNsQztRQUFDLENBQVE7UUFBQSxDQUFFO1lBQUEsRUFBRyxnRUFBaUU7WUFBQSxJQUFLO1FBQVU7S0FBQTtDQUNoRztBQWFNLG9CQUFnQixrQkFBaUIsbUJBQWtCQSxDQUFVO0FDZjVELE1BQU1BLGFBQXVCO0lBQ2xDO1FBQUMsTUFBUTtRQUFBO1lBQUUsR0FBRyxDQUErRDtZQUFBLEtBQUs7UUFBQSxDQUFVO0tBQUE7SUFDNUY7UUFBQyxDQUFRO1FBQUEsQ0FBRTtZQUFBLEVBQUcsb0RBQXFEO1lBQUEsSUFBSztRQUFVO0tBQUE7Q0FDcEY7QUFhTSxxQkFBaUIsa0JBQWlCLG9CQUFtQkEsQ0FBVTtBQ2hCOUQsTUFBTUEsYUFBdUI7SUFDbEM7UUFBQztRQUFRLENBQUU7WUFBQSxJQUFJLENBQUs7WUFBQSxJQUFJLENBQU07WUFBQSxHQUFJLElBQUs7WUFBQSxHQUFJLEtBQU07WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0lBQ2hFO1FBQUMsTUFBUTtRQUFBO1lBQUUsR0FBRyxDQUF5QztZQUFBLEtBQUs7UUFBQSxDQUFVO0tBQUE7SUFDdEU7UUFBQyxNQUFRO1FBQUE7WUFBRSxHQUFHLENBQTBCO1lBQUEsS0FBSztRQUFBLENBQVU7S0FBQTtJQUN2RDtRQUFDLE1BQVE7UUFBQTtZQUFFLEdBQUcsQ0FBa0M7WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0lBQy9EO1FBQUMsTUFBUTtRQUFBO1lBQUUsR0FBRyxDQUE4QjtZQUFBLEtBQUs7UUFBQSxDQUFVO0tBQUE7SUFDM0Q7UUFBQyxPQUFRO1FBQUE7WUFBRSxHQUFJLEtBQU07WUFBQSxHQUFJLEtBQU07WUFBQSxJQUFJLENBQU07WUFBQSxJQUFJLElBQU07WUFBQSxJQUFLO1FBQVU7S0FBQTtDQUNwRTtBQWFNLGFBQVMsa0JBQWlCLFlBQVdBLENBQVU7QUNwQjlDLE1BQU1BLGFBQXVCO0lBQ2xDO1FBQ0U7UUFDQTtZQUNFLENBQUc7WUFDSCxHQUFLO1FBQUE7S0FFVDtJQUNBO1FBQ0U7UUFDQTtZQUNFLENBQUc7WUFDSCxHQUFLO1FBQUE7S0FFVDtJQUNBO1FBQUMsQ0FBVTtRQUFBO1lBQUUsQ0FBSSxRQUFNO1lBQUEsRUFBSTtZQUFLLENBQUc7WUFBSyxDQUFLO1FBQVU7S0FBQTtDQUN6RDtBQWFNLGVBQVcsa0JBQWlCLGNBQWFBLENBQVU7QUM3QmxELE1BQU1BLGFBQXVCO0lBQ2xDO1FBQUMsTUFBUTtRQUFBO1lBQUUsR0FBRyxDQUFZO1lBQUEsS0FBSztRQUFBLENBQVU7S0FBQTtJQUN6QztRQUFDLE1BQVE7UUFBQTtZQUFFLEdBQUcsQ0FBOEI7WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0lBQzNEO1FBQUM7UUFBUSxDQUFFO1lBQUEsRUFBRyxLQUFLO1lBQUEsQ0FBRyxNQUFLO1lBQUEsS0FBTyxNQUFLO1lBQUEsT0FBUSxLQUFNO1lBQUEsR0FBSSxJQUFLO1lBQUEsSUFBSztRQUFVO0tBQUE7Q0FDL0U7QUFhTSxVQUFNLGtCQUFpQixRQUFPQSxDQUFVO0FDakJ2QyxNQUFNQSxhQUF1QjtJQUNsQztRQUFDLE1BQVE7UUFBQTtZQUFFLEdBQUcsQ0FBWTtZQUFBLEtBQUs7UUFBQSxDQUFVO0tBQUE7SUFDekM7UUFBQyxNQUFRO1FBQUE7WUFBRSxHQUFHLENBQVk7WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0lBQ3pDO1FBQUMsTUFBUTtRQUFBO1lBQUUsR0FBRyxDQUFZO1lBQUEsS0FBSztRQUFBLENBQVU7S0FBQTtJQUN6QztRQUFDLE1BQVE7UUFBQTtZQUFFLEdBQUcsQ0FBVztZQUFBLEtBQUs7UUFBQSxDQUFVO0tBQUE7SUFDeEM7UUFBQyxNQUFRO1FBQUE7WUFBRSxHQUFHLENBQVc7WUFBQSxLQUFLO1FBQUEsQ0FBUztLQUFBO0lBQ3ZDO1FBQUMsTUFBUTtRQUFBO1lBQUUsR0FBRyxDQUFXO1lBQUEsS0FBSztRQUFBLENBQVU7S0FBQTtJQUN4QztRQUFDLE1BQVE7UUFBQTtZQUFFLEdBQUcsQ0FBVztZQUFBLEtBQUs7UUFBQSxDQUFVO0tBQUE7SUFDeEM7UUFBQyxNQUFRO1FBQUE7WUFBRSxHQUFHLENBQVc7WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0lBQ3hDO1FBQUMsTUFBUTtRQUFBO1lBQUUsR0FBRyxDQUFVO1lBQUEsS0FBSztRQUFBLENBQVU7S0FBQTtJQUN2QztRQUFDLE1BQVE7UUFBQTtZQUFFLEdBQUcsQ0FBVTtZQUFBLEtBQUs7UUFBQSxDQUFVO0tBQUE7SUFDdkM7UUFDRTtRQUNBO1lBQ0UsQ0FBRztZQUNILEdBQUs7UUFBQTtLQUNQO0NBRUo7QUFhTSxnQkFBWSxrQkFBaUIsY0FBYUEsQ0FBVTtBQy9CbkQsTUFBTUEsYUFBdUI7SUFDbEM7UUFBQyxNQUFRO1FBQUE7WUFBRSxHQUFHLENBQVc7WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0lBQ3hDO1FBQUMsTUFBUTtRQUFBO1lBQUUsR0FBRyxDQUFZO1lBQUEsS0FBSztRQUFBLENBQVU7S0FBQTtJQUN6QztRQUFDLE1BQVE7UUFBQTtZQUFFLEdBQUcsQ0FBNEI7WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0lBQ3pEO1FBQUMsTUFBUTtRQUFBO1lBQUUsR0FBRyxDQUFXO1lBQUEsS0FBSztRQUFBLENBQVU7S0FBQTtJQUN4QztRQUFDLE1BQVE7UUFBQTtZQUFFLEdBQUcsQ0FBNEM7WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0lBQ3pFO1FBQUMsQ0FBUTtRQUFBLENBQUU7WUFBQSxFQUFHLDBDQUEyQztZQUFBLElBQUs7UUFBVTtLQUFBO0NBQzFFO0FBYU0saUJBQWEsa0JBQWlCLGVBQWNBLENBQVU7QUNwQnJELE1BQU1BLGFBQXVCO0lBQ2xDO1FBQUMsT0FBUTtRQUFBO1lBQUUsT0FBTztZQUFNLENBQVE7WUFBTSxDQUFHO1lBQUssR0FBRyxDQUFLO1lBQUEsSUFBSSxDQUFLO1lBQUEsS0FBSztRQUFBLENBQVU7S0FBQTtJQUM5RTtRQUFDLE9BQVE7UUFBQTtZQUFFLE9BQU87WUFBSyxDQUFRO1lBQUssQ0FBRztZQUFLLEdBQUcsQ0FBSztZQUFBLElBQUksQ0FBSztZQUFBLEtBQUs7UUFBQSxDQUFTO0tBQUE7SUFDM0U7UUFBQyxNQUFRO1FBQUE7WUFBRSxHQUFHLENBQVc7WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0lBQ3hDO1FBQUMsTUFBUTtRQUFBO1lBQUUsR0FBRyxDQUFXO1lBQUEsS0FBSztRQUFBLENBQVU7S0FBQTtJQUN4QztRQUFDLENBQVE7UUFBQSxDQUFFO1lBQUEsRUFBRyxXQUFZO1lBQUEsSUFBSztRQUFVO0tBQUE7Q0FDM0M7QUFhTSxnQkFBWSxrQkFBaUIsY0FBYUEsQ0FBVTtBQ25CbkQsTUFBTUEsYUFBdUI7SUFDbEM7UUFBQyxNQUFRO1FBQUE7WUFBRSxHQUFHLENBQVk7WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0lBQ3pDO1FBQUMsTUFBUTtRQUFBO1lBQUUsR0FBRyxDQUFXO1lBQUEsS0FBSztRQUFBLENBQVU7S0FBQTtJQUN4QztRQUNFO1FBQ0E7WUFDRSxDQUFHO1lBQ0gsR0FBSztRQUFBO0tBQ1A7Q0FFSjtBQWFNLGdCQUFZLGtCQUFpQixjQUFhQSxDQUFVO0FDdkJuRCxNQUFNQSxhQUF1QjtJQUNsQztRQUFDLE1BQVE7UUFBQTtZQUFFLEdBQUcsQ0FBVTtZQUFBLEtBQUs7UUFBQSxDQUFVO0tBQUE7SUFDdkM7UUFDRTtRQUNBO1lBQ0UsQ0FBRztZQUNILEdBQUs7UUFBQTtLQUVUO0lBQ0E7UUFBQyxNQUFRO1FBQUE7WUFBRSxHQUFHLENBQXlEO1lBQUEsS0FBSztRQUFBLENBQVU7S0FBQTtJQUN0RjtRQUFDLE9BQVE7UUFBQTtZQUFFLEdBQUksSUFBSztZQUFBLEdBQUksS0FBTTtZQUFBLElBQUksQ0FBSztZQUFBLElBQUksSUFBTTtZQUFBLElBQUs7UUFBVTtLQUFBO0NBQ2xFO0FBYU0sY0FBVSxrQkFBaUIsYUFBWUEsQ0FBVTtBQ3hCaEQsTUFBTUEsYUFBdUI7SUFDbEM7UUFBQyxNQUFRO1FBQUE7WUFBRSxHQUFHLENBQVU7WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0lBQ3ZDO1FBQ0U7UUFDQTtZQUNFLENBQUc7WUFDSCxHQUFLO1FBQUE7S0FFVDtJQUNBO1FBQUMsQ0FBUTtRQUFBLENBQUU7WUFBQSxFQUFHLGtEQUFtRDtZQUFBLElBQUs7UUFBVTtLQUFBO0NBQ2xGO0FBYU0sV0FBTyxrQkFBaUIsU0FBUUEsQ0FBVTtBQ3ZCekMsTUFBTUEsYUFBdUI7SUFDbEM7UUFBQyxNQUFRO1FBQUE7WUFBRSxHQUFHLENBQWM7WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0lBQzNDO1FBQUMsTUFBUTtRQUFBO1lBQUUsR0FBRyxDQUFlO1lBQUEsS0FBSztRQUFBLENBQVU7S0FBQTtJQUM1QztRQUFDLE1BQVE7UUFBQTtZQUFFLEdBQUcsQ0FBYTtZQUFBLEtBQUs7UUFBQSxDQUFVO0tBQUE7SUFDMUM7UUFBQyxDQUFRO1FBQUEsQ0FBRTtZQUFBLEVBQUcsWUFBYTtZQUFBLElBQUs7UUFBVTtLQUFBO0NBQzVDO0FBYU0sZ0JBQVksa0JBQWlCLGVBQWNBLENBQVU7QUNsQnBELE1BQU1BLGFBQXVCO0lBQ2xDO1FBQUMsTUFBUTtRQUFBO1lBQUUsR0FBRyxDQUEwQjtZQUFBLEtBQUs7UUFBQSxDQUFVO0tBQUE7SUFDdkQ7UUFBQyxNQUFRO1FBQUE7WUFBRSxHQUFHLENBQTRCO1lBQUEsS0FBSztRQUFBLENBQVU7S0FBQTtJQUN6RDtRQUFDLE1BQVE7UUFBQTtZQUFFLEdBQUcsQ0FBMkI7WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0lBQ3hEO1FBQUMsQ0FBUTtRQUFBLENBQUU7WUFBQSxFQUFHLDRCQUE2QjtZQUFBLElBQUs7UUFBVTtLQUFBO0NBQzVEO0FBYU0sZUFBVyxrQkFBaUIsYUFBWUEsQ0FBVTtBQ2xCM0MsTUFBQUEsYUFBQSxDQUF1QjtJQUFDO1FBQUMsTUFBUTtRQUFBLENBQUU7WUFBQSxFQUFHLFdBQVk7WUFBQSxLQUFLLENBQVM7UUFBQSxDQUFDO0tBQUM7Q0FBQTtBQWF6RSxZQUFRLGtCQUFpQixVQUFTQSxDQUFVO0FDYjNDLE1BQU1BLGFBQXVCO0lBQ2xDO1FBQUMsTUFBUTtRQUFBO1lBQUUsR0FBRyxDQUFpQjtZQUFBLEtBQUs7UUFBQSxDQUFVO0tBQUE7SUFDOUM7UUFBQyxPQUFRO1FBQUE7WUFBRSxPQUFPO1lBQU0sQ0FBUTtZQUFNLENBQUc7WUFBSyxHQUFHLENBQUs7WUFBQSxJQUFJLENBQUs7WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0lBQzlFO1FBQUMsTUFBUTtRQUFBO1lBQUUsR0FBRyxDQUFZO1lBQUEsS0FBSztRQUFBLENBQVU7S0FBQTtJQUN6QztRQUFDLENBQVE7UUFBQSxDQUFFO1lBQUEsRUFBRyxVQUFXO1lBQUEsSUFBSztRQUFVO0tBQUE7Q0FDMUM7QUFhTSxtQkFBZSxrQkFBaUIsa0JBQWlCQSxDQUFVO0FDbEIxRCxNQUFNQSxhQUF1QjtJQUNsQztRQUFDLE1BQVE7UUFBQTtZQUFFLEdBQUcsQ0FBWTtZQUFBLEtBQUs7UUFBQSxDQUFVO0tBQUE7SUFDekM7UUFBQyxNQUFRO1FBQUE7WUFBRSxHQUFHLENBQXlCO1lBQUEsS0FBSztRQUFBLENBQVU7S0FBQTtJQUN0RDtRQUFDLE1BQVE7UUFBQTtZQUFFLEdBQUcsQ0FBMkI7WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0lBQ3hEO1FBQUMsTUFBUTtRQUFBO1lBQUUsR0FBRyxDQUEyQjtZQUFBLEtBQUs7UUFBQSxDQUFVO0tBQUE7SUFDeEQ7UUFBQyxNQUFRO1FBQUE7WUFBRSxHQUFHLENBQTBCO1lBQUEsS0FBSztRQUFBLENBQVU7S0FBQTtJQUN2RDtRQUFDLE1BQVE7UUFBQTtZQUFFLEdBQUcsQ0FBMEI7WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0lBQ3ZEO1FBQUMsTUFBUTtRQUFBO1lBQUUsR0FBRyxDQUEwQjtZQUFBLEtBQUs7UUFBQSxDQUFVO0tBQUE7SUFDdkQ7UUFBQyxNQUFRO1FBQUE7WUFBRSxHQUFHLENBQTBCO1lBQUEsS0FBSztRQUFBLENBQVU7S0FBQTtJQUN2RDtRQUFDLE1BQVE7UUFBQTtZQUFFLEdBQUcsQ0FBeUI7WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0lBQ3REO1FBQUMsTUFBUTtRQUFBO1lBQUUsR0FBRyxDQUE0RDtZQUFBLEtBQUs7UUFBQSxDQUFVO0tBQUE7SUFDekY7UUFBQyxNQUFRO1FBQUE7WUFBRSxHQUFHLENBQVc7WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0lBQ3hDO1FBQUMsQ0FBVTtRQUFBO1lBQUUsQ0FBSSxRQUFNO1lBQUEsRUFBSTtZQUFLLENBQUc7WUFBSyxDQUFLO1FBQVU7S0FBQTtDQUN6RDtBQWFNLGlCQUFhLGtCQUFpQixnQkFBZUEsQ0FBVTtBQzFCdEQsTUFBTUEsYUFBdUI7SUFDbEM7UUFBQyxRQUFVO1FBQUE7WUFBRSxFQUFJO1lBQU0sQ0FBSSxPQUFLO1lBQUEsQ0FBRztZQUFLLEdBQUs7UUFBQSxDQUFVO0tBQUE7SUFDdkQ7UUFBQyxNQUFRO1FBQUE7WUFBRSxHQUFHLENBQTREO1lBQUEsS0FBSztRQUFBLENBQVU7S0FBQTtJQUN6RjtRQUFDLE1BQVE7UUFBQTtZQUFFLEdBQUcsQ0FBWTtZQUFBLEtBQUs7UUFBQSxDQUFVO0tBQUE7SUFDekM7UUFBQyxDQUFRO1FBQUEsQ0FBRTtZQUFBLEVBQUcsVUFBVztZQUFBLElBQUs7UUFBVTtLQUFBO0NBQzFDO0FBYU0saUJBQWEsa0JBQWlCLGdCQUFlQSxDQUFVO0FDbEJ0RCxNQUFNQSxhQUF1QjtJQUNsQztRQUFDLE1BQVE7UUFBQTtZQUFFLEdBQUcsQ0FBWTtZQUFBLEtBQUs7UUFBQSxDQUFVO0tBQUE7SUFDekM7UUFBQyxNQUFRO1FBQUE7WUFBRSxHQUFHLENBQWtCO1lBQUEsS0FBSztRQUFBLENBQVU7S0FBQTtJQUMvQztRQUFDLE9BQVE7UUFBQTtZQUFFLE9BQU87WUFBTSxDQUFRO1lBQU0sQ0FBRztZQUFLLEdBQUcsQ0FBSztZQUFBLElBQUksQ0FBSztZQUFBLEtBQUs7UUFBQSxDQUFVO0tBQUE7SUFDOUU7UUFBQyxNQUFRO1FBQUE7WUFBRSxHQUFHLENBQVk7WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0lBQ3pDO1FBQUMsQ0FBUTtRQUFBLENBQUU7WUFBQSxFQUFHLFVBQVc7WUFBQSxJQUFLO1FBQVU7S0FBQTtDQUMxQztBQWFNLGtCQUFjLGtCQUFpQixpQkFBZ0JBLENBQVU7QUNuQnhELE1BQU1BLGFBQXVCO0lBQ2xDO1FBQUMsTUFBUTtRQUFBO1lBQUUsR0FBRyxDQUEwQztZQUFBLEtBQUs7UUFBQSxDQUFVO0tBQUE7SUFDdkU7UUFBQyxNQUFRO1FBQUE7WUFBRSxHQUFHLENBQTRCO1lBQUEsS0FBSztRQUFBLENBQVU7S0FBQTtJQUN6RDtRQUFDLE1BQVE7UUFBQTtZQUFFLEdBQUcsQ0FBVztZQUFBLEtBQUs7UUFBQSxDQUFVO0tBQUE7SUFDeEM7UUFBQyxNQUFRO1FBQUE7WUFBRSxHQUFHLENBQVk7WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0lBQ3pDO1FBQUMsQ0FBUTtRQUFBLENBQUU7WUFBQSxFQUFHLGFBQWM7WUFBQSxJQUFLO1FBQVU7S0FBQTtDQUM3QztBQWFNLGlCQUFhLGtCQUFpQixnQkFBZUEsQ0FBVTtBQ25CdEQsTUFBTUEsYUFBdUI7SUFDbEM7UUFBQyxNQUFRO1FBQUE7WUFBRSxHQUFHLENBQVk7WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0lBQ3pDO1FBQUMsTUFBUTtRQUFBO1lBQUUsR0FBRyxDQUFZO1lBQUEsS0FBSztRQUFBLENBQVU7S0FBQTtJQUN6QztRQUFDLE9BQVE7UUFBQTtZQUFFLE9BQU87WUFBTSxDQUFRO1lBQU0sQ0FBRztZQUFLLEdBQUcsQ0FBSztZQUFBLElBQUksQ0FBSztZQUFBLEtBQUs7UUFBQSxDQUFVO0tBQUE7SUFDOUU7UUFBQyxNQUFRO1FBQUE7WUFBRSxHQUFHLENBQVk7WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0lBQ3pDO1FBQUMsQ0FBUTtRQUFBLENBQUU7WUFBQSxFQUFHLFVBQVc7WUFBQSxJQUFLO1FBQVU7S0FBQTtDQUMxQztBQWFNLG1CQUFlLGtCQUFpQixrQkFBaUJBLENBQVU7QUNuQjFELE1BQU1BLGFBQXVCO0lBQ2xDO1FBQ0U7UUFDQTtZQUNFLENBQUc7WUFDSCxHQUFLO1FBQUE7S0FFVDtJQUNBO1FBQUMsTUFBUTtRQUFBO1lBQUUsR0FBRyxDQUFZO1lBQUEsS0FBSztRQUFBLENBQVU7S0FBQTtJQUN6QztRQUFDLE1BQVE7UUFBQTtZQUFFLEdBQUcsQ0FBVztZQUFBLEtBQUs7UUFBQSxDQUFVO0tBQUE7SUFDeEM7UUFBQztRQUFRLENBQUU7WUFBQSxFQUFHLEtBQUs7WUFBQSxDQUFHLE1BQUs7WUFBQSxLQUFPLE9BQU07WUFBQSxPQUFRLEtBQU07WUFBQSxHQUFJLElBQUs7WUFBQSxJQUFLO1FBQVU7S0FBQTtDQUNoRjtBQWFNLGtCQUFjLGtCQUFpQixpQkFBZ0JBLENBQVU7QUN4QnhELE1BQU1BLGFBQXVCO0lBQ2xDO1FBQUMsTUFBUTtRQUFBO1lBQUUsR0FBRyxDQUEyRDtZQUFBLEtBQUs7UUFBQSxDQUFVO0tBQUE7SUFDeEY7UUFBQyxNQUFRO1FBQUE7WUFBRSxHQUFHLENBQXFCO1lBQUEsS0FBSztRQUFBLENBQVU7S0FBQTtJQUNsRDtRQUFDLE1BQVE7UUFBQTtZQUFFLEdBQUcsQ0FBVztZQUFBLEtBQUs7UUFBQSxDQUFVO0tBQUE7SUFDeEM7UUFBQztRQUFRLENBQUU7WUFBQSxNQUFPLEtBQUs7WUFBQSxNQUFRLE9BQU07WUFBQSxDQUFHLE9BQU07WUFBQSxFQUFHLEtBQU07WUFBQSxHQUFJLElBQUs7WUFBQSxJQUFLO1FBQVU7S0FBQTtDQUNqRjtBQWFNLHdCQUFvQixrQkFBaUIsdUJBQXNCQSxDQUFVO0FDbEJwRSxNQUFNQSxhQUF1QjtJQUNsQztRQUFDLE1BQVE7UUFBQTtZQUFFLEdBQUcsQ0FBWTtZQUFBLEtBQUs7UUFBQSxDQUFVO0tBQUE7SUFDekM7UUFBQyxNQUFRO1FBQUE7WUFBRSxHQUFHLENBQVc7WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0lBQ3hDO1FBQUMsT0FBUTtRQUFBO1lBQUUsR0FBRztZQUFLLENBQUc7WUFBSyxDQUFPO1lBQU0sUUFBUSxDQUFNO1lBQUEsSUFBSSxDQUFLO1lBQUEsS0FBSztRQUFBLENBQVU7S0FBQTtJQUM5RTtRQUFDO1FBQVEsQ0FBRTtZQUFBLEVBQUcsS0FBSztZQUFBLENBQUcsTUFBSztZQUFBLEtBQU8sTUFBSztZQUFBLE9BQVEsSUFBSztZQUFBLEdBQUksSUFBSztZQUFBLElBQUs7UUFBVTtLQUFBO0NBQzlFO0FBYU0sa0JBQWMsa0JBQWlCLGlCQUFnQkEsQ0FBVTtBQ2xCeEQsTUFBTUEsYUFBdUI7SUFDbEM7UUFBQyxNQUFRO1FBQUE7WUFBRSxHQUFHLENBQWlCO1lBQUEsS0FBSztRQUFBLENBQVU7S0FBQTtJQUM5QztRQUFDLE1BQVE7UUFBQTtZQUFFLEdBQUcsQ0FBWTtZQUFBLEtBQUs7UUFBQSxDQUFVO0tBQUE7SUFDekM7UUFBQyxPQUFRO1FBQUE7WUFBRSxPQUFPO1lBQU0sQ0FBUTtZQUFNLENBQUc7WUFBSyxHQUFHLENBQUs7WUFBQSxJQUFJLENBQUs7WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0lBQzlFO1FBQUMsTUFBUTtRQUFBO1lBQUUsR0FBRyxDQUFZO1lBQUEsS0FBSztRQUFBLENBQVU7S0FBQTtJQUN6QztRQUFDLENBQVE7UUFBQSxDQUFFO1lBQUEsRUFBRyxVQUFXO1lBQUEsSUFBSztRQUFVO0tBQUE7Q0FDMUM7QUFhTSxnQkFBWSxrQkFBaUIsZUFBY0EsQ0FBVTtBQ25CcEQsTUFBTUEsYUFBdUI7SUFDbEM7UUFBQyxNQUFRO1FBQUE7WUFBRSxHQUFHLENBQWE7WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0lBQzFDO1FBQUMsTUFBUTtRQUFBO1lBQUUsR0FBRyxDQUFhO1lBQUEsS0FBSztRQUFBLENBQVU7S0FBQTtJQUMxQztRQUFDLE9BQVE7UUFBQTtZQUFFLE9BQU87WUFBTSxDQUFRO1lBQU0sQ0FBRztZQUFNLEdBQUcsQ0FBSztZQUFBLElBQUksQ0FBSztZQUFBLEtBQUs7UUFBQSxDQUFVO0tBQUE7SUFDL0U7UUFBQyxNQUFRO1FBQUE7WUFBRSxHQUFHLENBQTBDO1lBQUEsS0FBSztRQUFBLENBQVU7S0FBQTtJQUN2RTtRQUFDLENBQVU7UUFBQTtZQUFFLENBQUksUUFBTTtZQUFBLEVBQUk7WUFBTSxDQUFHO1lBQUssQ0FBSztRQUFVO0tBQUE7Q0FDMUQ7QUFhTSxxQkFBaUIsa0JBQWlCLG9CQUFtQkEsQ0FBVTtBQ25COUQsTUFBTUEsYUFBdUI7SUFDbEM7UUFBQyxNQUFRO1FBQUE7WUFBRSxHQUFHLENBQWtCO1lBQUEsS0FBSztRQUFBLENBQVU7S0FBQTtJQUMvQztRQUFDLE1BQVE7UUFBQTtZQUFFLEdBQUcsQ0FBaUI7WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0lBQzlDO1FBQUMsT0FBUTtRQUFBO1lBQUUsT0FBTztZQUFNLENBQVE7WUFBTSxDQUFHO1lBQUssR0FBRyxDQUFLO1lBQUEsSUFBSSxDQUFLO1lBQUEsS0FBSztRQUFBLENBQVU7S0FBQTtJQUM5RTtRQUFDLE1BQVE7UUFBQTtZQUFFLEdBQUcsQ0FBWTtZQUFBLEtBQUs7UUFBQSxDQUFVO0tBQUE7SUFDekM7UUFBQyxDQUFRO1FBQUEsQ0FBRTtZQUFBLEVBQUcsVUFBVztZQUFBLElBQUs7UUFBVTtLQUFBO0NBQzFDO0FBYU0sZUFBVyxrQkFBaUIsY0FBYUEsQ0FBVTtBQ25CbEQsTUFBTUEsYUFBdUI7SUFDbEM7UUFBQyxPQUFRO1FBQUE7WUFBRSxPQUFPO1lBQU0sQ0FBUTtZQUFNLENBQUc7WUFBSyxHQUFHLENBQUs7WUFBQSxJQUFJLENBQUs7WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0lBQzlFO1FBQUM7UUFBUSxDQUFFO1lBQUEsSUFBSSxDQUFLO1lBQUEsSUFBSSxDQUFNO1lBQUEsR0FBSSxLQUFNO1lBQUEsR0FBSSxLQUFNO1lBQUEsS0FBSztRQUFBLENBQVU7S0FBQTtJQUNqRTtRQUFDLE9BQVE7UUFBQTtZQUFFLEdBQUksS0FBTTtZQUFBLEdBQUksS0FBTTtZQUFBLElBQUksQ0FBTTtZQUFBLElBQUksSUFBTTtZQUFBLElBQUs7UUFBVTtLQUFBO0NBQ3BFO0FBYU0sY0FBVSxrQkFBaUIsWUFBV0EsQ0FBVTtBQ2pCL0MsTUFBTUEsYUFBdUI7SUFDbEM7UUFBQyxNQUFRO1FBQUE7WUFBRSxHQUFHLENBQXFDO1lBQUEsS0FBSztRQUFBLENBQVU7S0FBQTtJQUNsRTtRQUFDLE1BQVE7UUFBQTtZQUFFLEdBQUcsQ0FBVztZQUFBLEtBQUs7UUFBQSxDQUFVO0tBQUE7SUFDeEM7UUFBQyxDQUFRO1FBQUEsQ0FBRTtZQUFBLEVBQUcsV0FBWTtZQUFBLElBQUs7UUFBVTtLQUFBO0NBQzNDO0FBYU0sZUFBVyxrQkFBaUIsY0FBYUEsQ0FBVTtBQ2pCbEQsTUFBTUEsYUFBdUI7SUFDbEM7UUFBQyxDQUFRO1FBQUEsQ0FBRTtZQUFBLEVBQUcscUNBQXNDO1lBQUEsSUFBSztRQUFVO0tBQUE7Q0FDckU7QUFhTSxXQUFPLGtCQUFpQixTQUFRQSxDQUFVO0FDZnpDLE1BQU1BLGFBQXVCO0lBQ2xDO1FBQUMsTUFBUTtRQUFBO1lBQUUsR0FBRyxDQUE0QjtZQUFBLEtBQUs7UUFBQSxDQUFVO0tBQUE7SUFDekQ7UUFDRTtRQUNBO1lBQUUsR0FBRyxrRUFBb0U7WUFBQSxLQUFLLENBQVM7UUFBQTtLQUFBO0NBRTNGO0FBYU0sbUJBQWUsa0JBQWlCLGtCQUFpQkEsQ0FBVTtBQ25CcEQsTUFBQUEsYUFBQSxDQUF1QjtJQUFDO1FBQUMsTUFBUTtRQUFBLENBQUU7WUFBQSxFQUFHLDJCQUE0QjtZQUFBLEtBQUssQ0FBUztRQUFBLENBQUM7S0FBQztDQUFBO0FBYXpGLGVBQVcsa0JBQWlCLGFBQVlBLENBQVU7QUNiakQsTUFBTUEsYUFBdUI7SUFDbEM7UUFBQyxNQUFRO1FBQUE7WUFBRSxHQUFHLENBQWM7WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0lBQzNDO1FBQUMsTUFBUTtRQUFBO1lBQUUsR0FBRyxDQUF3RDtZQUFBLEtBQUs7UUFBQSxDQUFVO0tBQUE7SUFDckY7UUFBQyxNQUFRO1FBQUE7WUFBRSxHQUFHLENBQXFDO1lBQUEsS0FBSztRQUFBLENBQVU7S0FBQTtJQUNsRTtRQUFDLENBQVE7UUFBQSxDQUFFO1lBQUEsRUFBRyxhQUFjO1lBQUEsSUFBSztRQUFVO0tBQUE7Q0FDN0M7QUFhTSxlQUFXLGtCQUFpQixjQUFhQSxDQUFVO0FDbEJsRCxNQUFNQSxhQUF1QjtJQUNsQztRQUNFO1FBQ0E7WUFDRSxDQUFHO1lBQ0gsR0FBSztRQUFBO0tBQ1A7Q0FFSjtBQWFNLG9CQUFnQixrQkFBaUIsb0JBQW1CQSxDQUFVO0FDckI3RCxNQUFNQSxhQUF1QjtJQUNsQztRQUFDLE1BQVE7UUFBQTtZQUFFLEdBQUcsQ0FBZ0I7WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0lBQzdDO1FBQUMsTUFBUTtRQUFBO1lBQUUsR0FBRyxDQUFpQjtZQUFBLEtBQUs7UUFBQSxDQUFVO0tBQUE7SUFDOUM7UUFBQyxNQUFRO1FBQUE7WUFBRSxHQUFHLENBQWU7WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0lBQzVDO1FBQUMsTUFBUTtRQUFBO1lBQUUsR0FBRyxDQUFrQjtZQUFBLEtBQUs7UUFBQSxDQUFVO0tBQUE7SUFDL0M7UUFDRTtRQUNBO1lBQ0UsQ0FBRztZQUNILEdBQUs7UUFBQTtLQUNQO0NBRUo7QUFhTSx3QkFBb0Isa0JBQWlCLHdCQUF1QkEsQ0FBVTtBQ3pCckUsTUFBTUEsYUFBdUI7SUFDbEM7UUFDRTtRQUNBO1lBQ0UsQ0FBRztZQUNILEdBQUs7UUFBQTtLQUVUO0lBQ0E7UUFBQyxRQUFVO1FBQUE7WUFBRSxFQUFJO1lBQU0sQ0FBSSxRQUFNO1lBQUEsQ0FBRztZQUFLLEdBQUs7UUFBQSxDQUFVO0tBQUE7SUFDeEQ7UUFBQyxDQUFRO1FBQUEsQ0FBRTtZQUFBLEVBQUcscUJBQXNCO1lBQUEsSUFBSztRQUFVO0tBQUE7Q0FDckQ7QUFhTSxzQkFBa0Isa0JBQWlCLHNCQUFxQkEsQ0FBVTtBQ3ZCakUsTUFBTUEsYUFBdUI7SUFDbEM7UUFBQyxNQUFRO1FBQUE7WUFBRSxHQUFHLENBQXdCO1lBQUEsS0FBSztRQUFBLENBQVU7S0FBQTtJQUNyRDtRQUNFO1FBQ0E7WUFDRSxDQUFHO1lBQ0gsR0FBSztRQUFBO0tBQ1A7Q0FFSjtBQWFNLG1CQUFlLGtCQUFpQixrQkFBaUJBLENBQVU7QUN0QjFELE1BQU1BLGFBQXVCO0lBQ2xDO1FBQUMsT0FBUTtRQUFBO1lBQUUsR0FBRztZQUFLLENBQUc7WUFBSyxDQUFPO1lBQU0sUUFBUSxDQUFNO1lBQUEsSUFBSSxDQUFLO1lBQUEsS0FBSztRQUFBLENBQVU7S0FBQTtJQUM5RTtRQUFDLENBQVE7UUFBQSxDQUFFO1lBQUEsRUFBRyxVQUFXO1lBQUEsSUFBSztRQUFVO0tBQUE7Q0FDMUM7QUFhTSxZQUFRLGtCQUFpQixVQUFTQSxDQUFVO0FDaEIzQyxNQUFNQSxhQUF1QjtJQUNsQztRQUFDLE1BQVE7UUFBQTtZQUFFLEdBQUcsQ0FBYztZQUFBLEtBQUs7UUFBQSxDQUFVO0tBQUE7SUFDM0M7UUFBQyxNQUFRO1FBQUE7WUFBRSxHQUFHLENBQWE7WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0lBQzFDO1FBQUMsTUFBUTtRQUFBO1lBQUUsR0FBRyxDQUFnQjtZQUFBLEtBQUs7UUFBQSxDQUFVO0tBQUE7SUFDN0M7UUFBQyxDQUFRO1FBQUEsQ0FBRTtZQUFBLEVBQUcsaUJBQWtCO1lBQUEsSUFBSztRQUFVO0tBQUE7Q0FDakQ7QUFhTSxhQUFTLGtCQUFpQixZQUFXQSxDQUFVO0FDbEI5QyxNQUFNQSxhQUF1QjtJQUNsQztRQUFDLE1BQVE7UUFBQTtZQUFFLEdBQUcsQ0FBZTtZQUFBLEtBQUs7UUFBQSxDQUFVO0tBQUE7SUFDNUM7UUFBQyxNQUFRO1FBQUE7WUFBRSxHQUFHLENBQWE7WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0lBQzFDO1FBQUMsQ0FBUTtRQUFBLENBQUU7WUFBQSxFQUFHLGFBQWM7WUFBQSxJQUFLO1FBQVU7S0FBQTtDQUM3QztBQWFNLG9CQUFnQixrQkFBaUIsb0JBQW1CQSxDQUFVO0FDakI3RCxNQUFNQSxhQUF1QjtJQUNsQztRQUFDLE1BQVE7UUFBQTtZQUFFLEdBQUcsQ0FBZTtZQUFBLEtBQUs7UUFBQSxDQUFVO0tBQUE7SUFDNUM7UUFBQyxNQUFRO1FBQUE7WUFBRSxHQUFHLENBQWE7WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0lBQzFDO1FBQUMsQ0FBUTtRQUFBLENBQUU7WUFBQSxFQUFHLGFBQWM7WUFBQSxJQUFLO1FBQVU7S0FBQTtDQUM3QztBQWFNLG1CQUFlLGtCQUFpQixrQkFBaUJBLENBQVU7QUNqQjFELE1BQU1BLGFBQXVCO0lBQ2xDO1FBQUMsTUFBUTtRQUFBO1lBQUUsR0FBRyxDQUFlO1lBQUEsS0FBSztRQUFBLENBQVU7S0FBQTtJQUM1QztRQUFDLENBQVE7UUFBQSxDQUFFO1lBQUEsRUFBRyxhQUFjO1lBQUEsSUFBSztRQUFVO0tBQUE7Q0FDN0M7QUFhTSxtQkFBZSxrQkFBaUIsbUJBQWtCQSxDQUFVO0FDaEIzRCxNQUFNQSxhQUF1QjtJQUNsQztRQUFDLE1BQVE7UUFBQTtZQUFFLEdBQUcsQ0FBZ0I7WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0lBQzdDO1FBQUMsQ0FBUTtRQUFBLENBQUU7WUFBQSxFQUFHLGFBQWM7WUFBQSxJQUFLO1FBQVU7S0FBQTtDQUM3QztBQWFNLG9CQUFnQixrQkFBaUIsb0JBQW1CQSxDQUFVO0FDaEI3RCxNQUFNQSxhQUF1QjtJQUNsQztRQUFDLE1BQVE7UUFBQTtZQUFFLEdBQUcsQ0FBcUI7WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0lBQ2xEO1FBQUMsQ0FBUTtRQUFBLENBQUU7WUFBQSxFQUFHLFdBQVk7WUFBQSxJQUFLO1FBQVU7S0FBQTtDQUMzQztBQWFNLGVBQVcsa0JBQWlCLGNBQWFBLENBQVU7QUNoQmxELE1BQU1BLGFBQXVCO0lBQ2xDO1FBQUMsTUFBUTtRQUFBO1lBQUUsR0FBRyxDQUFpQjtZQUFBLEtBQUs7UUFBQSxDQUFVO0tBQUE7SUFDOUM7UUFBQyxNQUFRO1FBQUE7WUFBRSxHQUFHLENBQVk7WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0lBQ3pDO1FBQUMsQ0FBUTtRQUFBLENBQUU7WUFBQSxFQUFHLGVBQWdCO1lBQUEsSUFBSztRQUFVO0tBQUE7Q0FDL0M7QUFhTSxxQkFBaUIsa0JBQWlCLG9CQUFtQkEsQ0FBVTtBQ2pCOUQsTUFBTUEsYUFBdUI7SUFDbEM7UUFBQyxNQUFRO1FBQUE7WUFBRSxHQUFHLENBQWtCO1lBQUEsS0FBSztRQUFBLENBQVU7S0FBQTtJQUMvQztRQUFDLENBQVE7UUFBQSxDQUFFO1lBQUEsRUFBRyxXQUFZO1lBQUEsSUFBSztRQUFVO0tBQUE7Q0FDM0M7QUFhTSxlQUFXLGtCQUFpQixjQUFhQSxDQUFVO0FDaEJsRCxNQUFNQSxhQUF1QjtJQUNsQztRQUFDLE1BQVE7UUFBQTtZQUFFLEdBQUcsQ0FBYztZQUFBLEtBQUs7UUFBQSxDQUFVO0tBQUE7SUFDM0M7UUFBQyxDQUFRO1FBQUEsQ0FBRTtZQUFBLEVBQUcsYUFBYztZQUFBLElBQUs7UUFBVTtLQUFBO0NBQzdDO0FBYU0saUJBQWEsa0JBQWlCLGlCQUFnQkEsQ0FBVTtBQ2hCdkQsTUFBTUEsYUFBdUI7SUFDbEM7UUFBQyxNQUFRO1FBQUE7WUFBRSxHQUFHLENBQXFCO1lBQUEsS0FBSztRQUFBLENBQVU7S0FBQTtJQUNsRDtRQUFDLENBQVE7UUFBQSxDQUFFO1lBQUEsRUFBRyxXQUFZO1lBQUEsSUFBSztRQUFVO0tBQUE7Q0FDM0M7QUFhTSxnQkFBWSxrQkFBaUIsZUFBY0EsQ0FBVTtBQ2hCcEQsTUFBTUEsYUFBdUI7SUFDbEM7UUFBQyxNQUFRO1FBQUE7WUFBRSxHQUFHLENBQWU7WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0lBQzVDO1FBQUMsQ0FBUTtRQUFBLENBQUU7WUFBQSxFQUFHLGFBQWM7WUFBQSxJQUFLO1FBQVU7S0FBQTtDQUM3QztBQWFNLGtCQUFjLGtCQUFpQixrQkFBaUJBLENBQVU7QUNoQnpELE1BQU1BLGFBQXVCO0lBQ2xDO1FBQUMsTUFBUTtRQUFBO1lBQUUsR0FBRyxDQUFrQjtZQUFBLEtBQUs7UUFBQSxDQUFVO0tBQUE7SUFDL0M7UUFBQyxDQUFRO1FBQUEsQ0FBRTtZQUFBLEVBQUcsV0FBWTtZQUFBLElBQUs7UUFBVTtLQUFBO0NBQzNDO0FBYU0sYUFBUyxrQkFBaUIsWUFBV0EsQ0FBVTtBQ2hCOUMsTUFBTUEsYUFBdUI7SUFDbEM7UUFBQyxNQUFRO1FBQUE7WUFBRSxHQUFHLENBQVk7WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0lBQ3pDO1FBQUMsTUFBUTtRQUFBO1lBQUUsR0FBRyxDQUFpQjtZQUFBLEtBQUs7UUFBQSxDQUFVO0tBQUE7SUFDOUM7UUFBQyxDQUFRO1FBQUEsQ0FBRTtZQUFBLEVBQUcsZUFBZ0I7WUFBQSxJQUFLO1FBQVU7S0FBQTtDQUMvQztBQWFNLG1CQUFlLGtCQUFpQixrQkFBaUJBLENBQVU7QUNqQjFELE1BQU1BLGFBQXVCO0lBQ2xDO1FBQUMsTUFBUTtRQUFBO1lBQUUsR0FBRyxDQUFZO1lBQUEsS0FBSztRQUFBLENBQVU7S0FBQTtJQUN6QztRQUFDLE1BQVE7UUFBQTtZQUFFLEdBQUcsQ0FBa0I7WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0lBQy9DO1FBQUMsTUFBUTtRQUFBO1lBQUUsR0FBRyxDQUFpQjtZQUFBLEtBQUs7UUFBQSxDQUFVO0tBQUE7SUFDOUM7UUFBQyxNQUFRO1FBQUE7WUFBRSxHQUFHLENBQVk7WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0lBQ3pDO1FBQUMsTUFBUTtRQUFBO1lBQUUsR0FBRyxDQUFnQjtZQUFBLEtBQUs7UUFBQSxDQUFVO0tBQUE7SUFDN0M7UUFBQyxDQUFRO1FBQUEsQ0FBRTtZQUFBLEVBQUcsZUFBZ0I7WUFBQSxJQUFLO1FBQVU7S0FBQTtDQUMvQztBQWFNLFdBQU8sa0JBQWlCLFNBQVFBLENBQVU7QUNwQnpDLE1BQU1BLGFBQXVCO0lBQ2xDO1FBQUMsUUFBVTtRQUFBO1lBQUUsRUFBSTtZQUFLLENBQUksUUFBTTtZQUFBLENBQUc7WUFBSyxHQUFLO1FBQUEsQ0FBVTtLQUFBO0lBQ3ZEO1FBQUMsQ0FBUTtRQUFBLENBQUU7WUFBQSxFQUFHLGVBQWdCO1lBQUEsSUFBSztRQUFVO0tBQUE7Q0FDL0M7QUFhTSxhQUFTLGtCQUFpQixZQUFXQSxDQUFVO0FDaEI5QyxNQUFNQSxhQUF1QjtJQUNsQztRQUFDLFFBQVU7UUFBQTtZQUFFLEVBQUk7WUFBTSxDQUFJLFFBQU07WUFBQSxDQUFHO1lBQUssR0FBSztRQUFBLENBQVU7S0FBQTtJQUN4RDtRQUFDLENBQVE7UUFBQSxDQUFFO1lBQUEsRUFBRyxXQUFZO1lBQUEsSUFBSztRQUFVO0tBQUE7Q0FDM0M7QUFhTSxhQUFTLGtCQUFpQixZQUFXQSxDQUFVO0FDaEI5QyxNQUFNQSxhQUF1QjtJQUNsQztRQUFDLE1BQVE7UUFBQTtZQUFFLEdBQUcsQ0FBbUI7WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0lBQ2hEO1FBQUMsTUFBUTtRQUFBO1lBQUUsR0FBRyxDQUFhO1lBQUEsS0FBSztRQUFBLENBQVU7S0FBQTtJQUMxQztRQUFDLFFBQVU7UUFBQTtZQUFFLEVBQUk7WUFBSyxDQUFJLFFBQU07WUFBQSxDQUFHO1lBQUssR0FBSztRQUFBLENBQVU7S0FBQTtJQUN2RDtRQUFDLENBQVU7UUFBQTtZQUFFLENBQUksUUFBTTtZQUFBLEVBQUk7WUFBTSxDQUFHO1lBQUssQ0FBSztRQUFVO0tBQUE7Q0FDMUQ7QUFhTSxhQUFTLGtCQUFpQixZQUFXQSxDQUFVO0FDbEI5QyxNQUFNQSxhQUF1QjtJQUNsQztRQUFDLE1BQVE7UUFBQTtZQUFFLEdBQUcsQ0FBbUI7WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0lBQ2hEO1FBQUMsUUFBVTtRQUFBO1lBQUUsRUFBSTtZQUFLLENBQUksUUFBTTtZQUFBLENBQUc7WUFBSyxHQUFLO1FBQUEsQ0FBVTtLQUFBO0lBQ3ZEO1FBQUMsQ0FBVTtRQUFBO1lBQUUsQ0FBSSxRQUFNO1lBQUEsRUFBSTtZQUFNLENBQUc7WUFBSyxDQUFLO1FBQVU7S0FBQTtDQUMxRDtBQWFNLFlBQVEsa0JBQWlCLFVBQVNBLENBQVU7QUNqQjNDLE1BQU1BLGFBQXVCO0lBQ2xDO1FBQUMsTUFBUTtRQUFBO1lBQUUsR0FBRyxDQUFxQztZQUFBLEtBQUs7UUFBQSxDQUFVO0tBQUE7SUFDbEU7UUFBQyxNQUFRO1FBQUE7WUFBRSxHQUFHLENBQStCO1lBQUEsS0FBSztRQUFBLENBQVU7S0FBQTtJQUM1RDtRQUFDLE9BQVE7UUFBQTtZQUFFLEdBQUksSUFBSztZQUFBLEdBQUksS0FBTTtZQUFBLElBQUksQ0FBSztZQUFBLElBQUksSUFBTTtZQUFBLElBQUs7UUFBVTtLQUFBO0NBQ2xFO0FBYU0scUJBQWlCLGtCQUFpQixxQkFBb0JBLENBQVU7QUNqQi9ELE1BQU1BLGFBQXVCO0lBQ2xDO1FBQUMsQ0FBVztRQUFBLENBQUU7WUFBQSxPQUFRLDZCQUE4QjtZQUFBLElBQUs7UUFBVTtLQUFBO0NBQ3JFO0FBYU0sa0JBQWMsa0JBQWlCLGlCQUFnQkEsQ0FBVTtBQ2Z4RCxNQUFNQSxhQUF1QjtJQUNsQztRQUFDLE1BQVE7UUFBQTtZQUFFLEdBQUcsQ0FBcUM7WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0lBQ2xFO1FBQUMsTUFBUTtRQUFBO1lBQUUsR0FBRyxDQUFnQztZQUFBLEtBQUs7UUFBQSxDQUFVO0tBQUE7SUFDN0Q7UUFBQyxPQUFRO1FBQUE7WUFBRSxHQUFJLElBQUs7WUFBQSxHQUFJLEtBQU07WUFBQSxJQUFJLENBQUs7WUFBQSxJQUFJLElBQU07WUFBQSxJQUFLO1FBQVU7S0FBQTtDQUNsRTtBQWFNLG9CQUFnQixrQkFBaUIsbUJBQWtCQSxDQUFVO0FDakI1RCxNQUFNQSxhQUF1QjtJQUNsQztRQUFDLENBQVc7UUFBQSxDQUFFO1lBQUEsT0FBUSw2QkFBOEI7WUFBQSxJQUFLO1FBQVU7S0FBQTtDQUNyRTtBQWFNLGlCQUFhLGtCQUFpQixlQUFjQSxDQUFVO0FDZnJELE1BQU1BLGFBQXVCO0lBQ2xDO1FBQUMsT0FBUTtRQUFBO1lBQUUsR0FBRztZQUFNLENBQUc7WUFBTSxDQUFPO1lBQUssUUFBUSxDQUFLO1lBQUEsSUFBSSxDQUFLO1lBQUEsS0FBSztRQUFBLENBQVU7S0FBQTtJQUM5RTtRQUFDLE9BQVE7UUFBQTtZQUFFLEdBQUc7WUFBSyxDQUFHO1lBQU0sQ0FBTztZQUFLLFFBQVEsQ0FBSztZQUFBLElBQUksQ0FBSztZQUFBLEtBQUs7UUFBQSxDQUFVO0tBQUE7SUFDN0U7UUFBQyxPQUFRO1FBQUE7WUFBRSxHQUFHO1lBQUssQ0FBRztZQUFLLENBQU87WUFBSyxRQUFRLENBQUs7WUFBQSxJQUFJLENBQUs7WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0lBQzVFO1FBQUMsTUFBUTtRQUFBO1lBQUUsR0FBRyxDQUE2QztZQUFBLEtBQUs7UUFBQSxDQUFVO0tBQUE7SUFDMUU7UUFBQyxDQUFRO1FBQUEsQ0FBRTtZQUFBLEVBQUcsV0FBWTtZQUFBLElBQUs7UUFBVTtLQUFBO0NBQzNDO0FBYU0sY0FBVSxrQkFBaUIsWUFBV0EsQ0FBVTtBQ25CL0MsTUFBTUEsYUFBdUI7SUFDbEM7UUFBQyxNQUFRO1FBQUE7WUFBRSxHQUFHLENBQWE7WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0lBQzFDO1FBQUMsTUFBUTtRQUFBO1lBQUUsR0FBRyxDQUFhO1lBQUEsS0FBSztRQUFBLENBQVU7S0FBQTtJQUMxQztRQUNFO1FBQ0E7WUFDRSxDQUFHO1lBQ0gsR0FBSztRQUFBO0tBRVQ7SUFDQTtRQUFDO1FBQVEsQ0FBRTtZQUFBLE1BQU8sS0FBSztZQUFBLE1BQVEsTUFBSztZQUFBLENBQUcsT0FBTTtZQUFBLEVBQUcsSUFBSztZQUFBLEdBQUksSUFBSztZQUFBLElBQUs7UUFBVTtLQUFBO0NBQy9FO0FBYU0sZ0JBQVksa0JBQWlCLGNBQWFBLENBQVU7QUN4Qm5ELE1BQU1BLGFBQXVCO0lBQ2xDO1FBQUMsTUFBUTtRQUFBO1lBQUUsR0FBRyxDQUFrQztZQUFBLEtBQUs7UUFBQSxDQUFVO0tBQUE7SUFDL0Q7UUFBQyxNQUFRO1FBQUE7WUFBRSxHQUFHLENBQXdDO1lBQUEsS0FBSztRQUFBLENBQVU7S0FBQTtJQUNyRTtRQUFDLE1BQVE7UUFBQTtZQUFFLEdBQUcsQ0FBeUM7WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0lBQ3RFO1FBQUMsQ0FBUTtRQUFBLENBQUU7WUFBQSxFQUFHLGtDQUFtQztZQUFBLElBQUs7UUFBVTtLQUFBO0NBQ2xFO0FBYU0sVUFBTSxrQkFBaUIsUUFBT0EsQ0FBVTtBQ2xCdkMsTUFBTUEsYUFBdUI7SUFDbEM7UUFBQyxNQUFRO1FBQUE7WUFBRSxHQUFHLENBQVk7WUFBQSxLQUFLO1FBQUEsQ0FBUztLQUFBO0lBQ3hDO1FBQUMsTUFBUTtRQUFBO1lBQUUsR0FBRyxDQUFjO1lBQUEsS0FBSztRQUFBLENBQVU7S0FBQTtJQUMzQztRQUFDLE1BQVE7UUFBQTtZQUFFLEdBQUcsQ0FBYztZQUFBLEtBQUs7UUFBQSxDQUFVO0tBQUE7SUFDM0M7UUFBQyxDQUFVO1FBQUE7WUFBRSxDQUFJLFFBQU07WUFBQSxFQUFJO1lBQU0sQ0FBRztZQUFLLENBQUs7UUFBVTtLQUFBO0NBQzFEO0FBYU0sZ0JBQVksa0JBQWlCLGVBQWNBLENBQVU7QUNsQnBELE1BQU1BLGFBQXVCO0lBQ2xDO1FBQUMsTUFBUTtRQUFBO1lBQUUsR0FBRyxDQUFrRTtZQUFBLEtBQUs7UUFBQSxDQUFVO0tBQUE7SUFDL0Y7UUFBQyxNQUFRO1FBQUE7WUFBRSxHQUFHLENBQVU7WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0lBQ3ZDO1FBQUMsTUFBUTtRQUFBO1lBQUUsR0FBRyxDQUFXO1lBQUEsS0FBSztRQUFBLENBQVU7S0FBQTtJQUN4QztRQUFDLE1BQVE7UUFBQTtZQUFFLEdBQUcsQ0FBVztZQUFBLEtBQUs7UUFBQSxDQUFVO0tBQUE7SUFDeEM7UUFBQyxNQUFRO1FBQUE7WUFBRSxHQUFHLENBQVc7WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0lBQ3hDO1FBQ0U7UUFDQTtZQUNFLENBQUc7WUFDSCxHQUFLO1FBQUE7S0FDUDtDQUVKO0FBYU0sa0JBQWMsa0JBQWlCLGlCQUFnQkEsQ0FBVTtBQzFCeEQsTUFBTUEsYUFBdUI7SUFDbEM7UUFBQyxNQUFRO1FBQUE7WUFBRSxHQUFHLENBQVU7WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0lBQ3ZDO1FBQUMsTUFBUTtRQUFBO1lBQUUsR0FBRyxDQUFXO1lBQUEsS0FBSztRQUFBLENBQVU7S0FBQTtJQUN4QztRQUFDLE1BQVE7UUFBQTtZQUFFLEdBQUcsQ0FBVztZQUFBLEtBQUs7UUFBQSxDQUFVO0tBQUE7SUFDeEM7UUFBQyxNQUFRO1FBQUE7WUFBRSxHQUFHLENBQVc7WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0lBQ3hDO1FBQUMsT0FBUTtRQUFBO1lBQUUsT0FBTztZQUFNLENBQVE7WUFBTSxDQUFHO1lBQUssR0FBRyxDQUFLO1lBQUEsSUFBSSxDQUFLO1lBQUEsS0FBSztRQUFBLENBQVU7S0FBQTtJQUM5RTtRQUFDLE1BQVE7UUFBQTtZQUFFLEdBQUcsQ0FBWTtZQUFBLEtBQUs7UUFBQSxDQUFVO0tBQUE7SUFDekM7UUFBQyxNQUFRO1FBQUE7WUFBRSxHQUFHLENBQVc7WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0lBQ3hDO1FBQUMsTUFBUTtRQUFBO1lBQUUsR0FBRyxDQUFZO1lBQUEsS0FBSztRQUFBLENBQVU7S0FBQTtJQUN6QztRQUFDLENBQVE7UUFBQSxDQUFFO1lBQUEsRUFBRyxXQUFZO1lBQUEsSUFBSztRQUFVO0tBQUE7Q0FDM0M7QUFhTSxtQkFBZSxrQkFBaUIsa0JBQWlCQSxDQUFVO0FDdkIxRCxNQUFNQSxhQUF1QjtJQUNsQztRQUFDLE1BQVE7UUFBQTtZQUFFLEdBQUcsQ0FBVTtZQUFBLEtBQUs7UUFBQSxDQUFVO0tBQUE7SUFDdkM7UUFBQyxNQUFRO1FBQUE7WUFBRSxHQUFHLENBQVc7WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0lBQ3hDO1FBQUMsTUFBUTtRQUFBO1lBQUUsR0FBRyxDQUFXO1lBQUEsS0FBSztRQUFBLENBQVU7S0FBQTtJQUN4QztRQUFDLE1BQVE7UUFBQTtZQUFFLEdBQUcsQ0FBVztZQUFBLEtBQUs7UUFBQSxDQUFVO0tBQUE7SUFDeEM7UUFBQyxPQUFRO1FBQUE7WUFBRSxPQUFPO1lBQU0sQ0FBUTtZQUFNLENBQUc7WUFBSyxHQUFHLENBQUs7WUFBQSxJQUFJLENBQUs7WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0lBQzlFO1FBQUMsTUFBUTtRQUFBO1lBQUUsR0FBRyxDQUFZO1lBQUEsS0FBSztRQUFBLENBQVU7S0FBQTtJQUN6QztRQUFDLE1BQVE7UUFBQTtZQUFFLEdBQUcsQ0FBYztZQUFBLEtBQUs7UUFBQSxDQUFVO0tBQUE7SUFDM0M7UUFBQyxDQUFRO1FBQUEsQ0FBRTtZQUFBLEVBQUcsYUFBYztZQUFBLElBQUs7UUFBVTtLQUFBO0NBQzdDO0FBYU0sbUJBQWUsa0JBQWlCLGtCQUFpQkEsQ0FBVTtBQ3RCMUQsTUFBTUEsYUFBdUI7SUFDbEM7UUFBQyxNQUFRO1FBQUE7WUFBRSxHQUFHLENBQVU7WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0lBQ3ZDO1FBQUMsTUFBUTtRQUFBO1lBQUUsR0FBRyxDQUFXO1lBQUEsS0FBSztRQUFBLENBQVU7S0FBQTtJQUN4QztRQUFDLE1BQVE7UUFBQTtZQUFFLEdBQUcsQ0FBVztZQUFBLEtBQUs7UUFBQSxDQUFVO0tBQUE7SUFDeEM7UUFBQyxNQUFRO1FBQUE7WUFBRSxHQUFHLENBQVc7WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0lBQ3hDO1FBQUMsT0FBUTtRQUFBO1lBQUUsT0FBTztZQUFNLENBQVE7WUFBTSxDQUFHO1lBQUssR0FBRyxDQUFLO1lBQUEsSUFBSSxDQUFLO1lBQUEsS0FBSztRQUFBLENBQVU7S0FBQTtJQUM5RTtRQUFDLENBQVE7UUFBQSxDQUFFO1lBQUEsRUFBRyxXQUFZO1lBQUEsSUFBSztRQUFVO0tBQUE7Q0FDM0M7QUFhTSxlQUFXLGtCQUFpQixhQUFZQSxDQUFVO0FDcEJqRCxNQUFNQSxhQUF1QjtJQUNsQztRQUFDLE1BQVE7UUFBQTtZQUFFLEdBQUcsQ0FBVTtZQUFBLEtBQUs7UUFBQSxDQUFVO0tBQUE7SUFDdkM7UUFBQyxNQUFRO1FBQUE7WUFBRSxHQUFHLENBQVc7WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0lBQ3hDO1FBQUMsTUFBUTtRQUFBO1lBQUUsR0FBRyxDQUFXO1lBQUEsS0FBSztRQUFBLENBQVU7S0FBQTtJQUN4QztRQUFDLE1BQVE7UUFBQTtZQUFFLEdBQUcsQ0FBMkI7WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0lBQ3hEO1FBQUMsTUFBUTtRQUFBO1lBQUUsR0FBRyxDQUFZO1lBQUEsS0FBSztRQUFBLENBQVU7S0FBQTtJQUN6QztRQUFDLE1BQVE7UUFBQTtZQUFFLEdBQUcsQ0FBNkI7WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0lBQzFEO1FBQUMsTUFBUTtRQUFBO1lBQUUsR0FBRyxDQUFhO1lBQUEsS0FBSztRQUFBLENBQVU7S0FBQTtJQUMxQztRQUFDLE1BQVE7UUFBQTtZQUFFLEdBQUcsQ0FBNEI7WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0lBQ3pEO1FBQUMsTUFBUTtRQUFBO1lBQUUsR0FBRyxDQUFZO1lBQUEsS0FBSztRQUFBLENBQVU7S0FBQTtJQUN6QztRQUFDLE1BQVE7UUFBQTtZQUFFLEdBQUcsQ0FBMEI7WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0lBQ3ZEO1FBQUMsTUFBUTtRQUFBO1lBQUUsR0FBRyxDQUFXO1lBQUEsS0FBSztRQUFBLENBQVU7S0FBQTtJQUN4QztRQUFDLE1BQVE7UUFBQTtZQUFFLEdBQUcsQ0FBVztZQUFBLEtBQUs7UUFBQSxDQUFVO0tBQUE7SUFDeEM7UUFBQyxDQUFRO1FBQUEsQ0FBRTtZQUFBLEVBQUcsVUFBVztZQUFBLElBQUs7UUFBVTtLQUFBO0NBQzFDO0FBYU0sd0JBQW9CLGtCQUFpQix3QkFBdUJBLENBQVU7QUMzQnJFLE1BQU1BLGFBQXVCO0lBQ2xDO1FBQUMsTUFBUTtRQUFBO1lBQUUsR0FBRyxDQUFVO1lBQUEsS0FBSztRQUFBLENBQVU7S0FBQTtJQUN2QztRQUFDLE1BQVE7UUFBQTtZQUFFLEdBQUcsQ0FBVztZQUFBLEtBQUs7UUFBQSxDQUFVO0tBQUE7SUFDeEM7UUFBQyxNQUFRO1FBQUE7WUFBRSxHQUFHLENBQVc7WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0lBQ3hDO1FBQUMsT0FBUTtRQUFBO1lBQUUsT0FBTztZQUFNLENBQVE7WUFBTSxDQUFHO1lBQUssR0FBRyxDQUFLO1lBQUEsSUFBSSxDQUFLO1lBQUEsS0FBSztRQUFBLENBQVU7S0FBQTtJQUM5RTtRQUFDLE1BQVE7UUFBQTtZQUFFLEdBQUcsQ0FBVztZQUFBLEtBQUs7UUFBQSxDQUFVO0tBQUE7SUFDeEM7UUFBQyxNQUFRO1FBQUE7WUFBRSxHQUFHLENBQVc7WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0lBQ3hDO1FBQUMsQ0FBUTtRQUFBLENBQUU7WUFBQSxFQUFHLFVBQVc7WUFBQSxJQUFLO1FBQVU7S0FBQTtDQUMxQztBQWFNLGtCQUFjLGtCQUFpQixpQkFBZ0JBLENBQVU7QUNyQnhELE1BQU1BLGFBQXVCO0lBQ2xDO1FBQUMsTUFBUTtRQUFBO1lBQUUsR0FBRyxDQUFXO1lBQUEsS0FBSztRQUFBLENBQVU7S0FBQTtJQUN4QztRQUNFO1FBQ0E7WUFDRSxDQUFHO1lBQ0gsR0FBSztRQUFBO0tBRVQ7SUFDQTtRQUFDLE1BQVE7UUFBQTtZQUFFLEdBQUcsQ0FBZ0I7WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0lBQzdDO1FBQ0U7UUFDQTtZQUNFLENBQUc7WUFDSCxHQUFLO1FBQUE7S0FFVDtJQUNBO1FBQUMsT0FBUTtRQUFBO1lBQUUsR0FBSSxJQUFLO1lBQUEsR0FBSSxLQUFNO1lBQUEsSUFBSSxDQUFLO1lBQUEsSUFBSSxJQUFNO1lBQUEsSUFBSztRQUFVO0tBQUE7Q0FDbEU7QUFhTSxhQUFTLGtCQUFpQixZQUFXQSxDQUFVO0FDL0I5QyxNQUFNQSxhQUF1QjtJQUNsQztRQUFDLE1BQVE7UUFBQTtZQUFFLEdBQUcsQ0FBVztZQUFBLEtBQUs7UUFBQSxDQUFVO0tBQUE7SUFDeEM7UUFDRTtRQUNBO1lBQ0UsQ0FBRztZQUNILEdBQUs7UUFBQTtLQUVUO0lBQ0E7UUFDRTtRQUNBO1lBQ0UsQ0FBRztZQUNILEdBQUs7UUFBQTtLQUNQO0NBRUo7QUFhTSxVQUFNLGtCQUFpQixRQUFPQSxDQUFVO0FDN0J2QyxNQUFNQSxhQUF1QjtJQUNsQztRQUFDLE1BQVE7UUFBQTtZQUFFLEdBQUcsQ0FBYztZQUFBLEtBQUs7UUFBQSxDQUFVO0tBQUE7SUFDM0M7UUFBQyxNQUFRO1FBQUE7WUFBRSxHQUFHLENBQVc7WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0lBQ3hDO1FBQ0U7UUFDQTtZQUNFLENBQUc7WUFDSCxHQUFLO1FBQUE7S0FDUDtDQUVKO0FBYU0sbUJBQWUsa0JBQWlCLGtCQUFpQkEsQ0FBVTtBQ3ZCMUQsTUFBTUEsYUFBdUI7SUFDbEM7UUFDRTtRQUNBO1lBQ0UsQ0FBRztZQUNILEdBQUs7UUFBQTtLQUVUO0lBQ0E7UUFBQyxDQUFRO1FBQUEsQ0FBRTtZQUFBLEVBQUcsVUFBVztZQUFBLElBQUs7UUFBVTtLQUFBO0NBQzFDO0FBYU0sbUJBQWUsa0JBQWlCLGtCQUFpQkEsQ0FBVTtBQ3RCMUQsTUFBTUEsYUFBdUI7SUFDbEM7UUFBQyxNQUFRO1FBQUE7WUFBRSxHQUFHLENBQVk7WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0lBQ3pDO1FBQUMsTUFBUTtRQUFBO1lBQUUsR0FBRyxDQUFZO1lBQUEsS0FBSztRQUFBLENBQVU7S0FBQTtJQUN6QztRQUNFO1FBQ0E7WUFDRSxDQUFHO1lBQ0gsR0FBSztRQUFBO0tBQ1A7Q0FFSjtBQWFNLG1CQUFlLGtCQUFpQixrQkFBaUJBLENBQVU7QUN2QjFELE1BQU1BLGFBQXVCO0lBQ2xDO1FBQUMsTUFBUTtRQUFBO1lBQUUsR0FBRyxDQUFhO1lBQUEsS0FBSztRQUFBLENBQVU7S0FBQTtJQUMxQztRQUNFO1FBQ0E7WUFDRSxDQUFHO1lBQ0gsR0FBSztRQUFBO0tBRVQ7SUFDQTtRQUFDLENBQVE7UUFBQSxDQUFFO1lBQUEsRUFBRyxXQUFZO1lBQUEsSUFBSztRQUFVO0tBQUE7Q0FDM0M7QUFhTSxlQUFXLGtCQUFpQixjQUFhQSxDQUFVO0FDdkJsRCxNQUFNQSxhQUF1QjtJQUNsQztRQUNFO1FBQ0E7WUFDRSxDQUFHO1lBQ0gsR0FBSztRQUFBO0tBQ1A7Q0FFSjtBQWFNLGNBQVUsa0JBQWlCLFlBQVdBLENBQVU7QUNyQi9DLE1BQU1BLGFBQXVCO0lBQ2xDO1FBQ0U7UUFDQTtZQUNFLENBQUc7WUFDSCxHQUFLO1FBQUE7S0FDUDtDQUVKO0FBYU0sWUFBUSxrQkFBaUIsVUFBU0EsQ0FBVTtBQ3JCM0MsTUFBTUEsYUFBdUI7SUFDbEM7UUFBQyxNQUFRO1FBQUE7WUFBRSxHQUFHLENBQWlCO1lBQUEsS0FBSztRQUFBLENBQVU7S0FBQTtJQUM5QztRQUFDLENBQVE7UUFBQSxDQUFFO1lBQUEsRUFBRyxVQUFXO1lBQUEsSUFBSztRQUFVO0tBQUE7Q0FDMUM7QUFhTSxhQUFTLGtCQUFpQixXQUFVQSxDQUFVO0FDaEI3QyxNQUFNQSxhQUF1QjtJQUNsQztRQUFDLE1BQVE7UUFBQTtZQUFFLEdBQUcsQ0FBMEM7WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0lBQ3ZFO1FBQUMsTUFBUTtRQUFBO1lBQUUsR0FBRyxDQUF5QztZQUFBLEtBQUs7UUFBQSxDQUFVO0tBQUE7SUFDdEU7UUFBQyxRQUFVO1FBQUE7WUFBRSxFQUFJO1lBQU0sQ0FBSSxRQUFNO1lBQUEsQ0FBRztZQUFLLEdBQUs7UUFBQSxDQUFVO0tBQUE7SUFDeEQ7UUFBQyxRQUFVO1FBQUE7WUFBRSxFQUFJO1lBQU0sQ0FBSSxPQUFLO1lBQUEsQ0FBRztZQUFLLEdBQUs7UUFBQSxDQUFVO0tBQUE7SUFDdkQ7UUFBQyxDQUFVO1FBQUE7WUFBRSxDQUFJLE9BQUs7WUFBQSxFQUFJO1lBQU0sQ0FBRztZQUFLLENBQUs7UUFBVTtLQUFBO0NBQ3pEO0FBYU0sWUFBUSxrQkFBaUIsVUFBU0EsQ0FBVTtBQ25CM0MsTUFBTUEsYUFBdUI7SUFDbEM7UUFBQyxNQUFRO1FBQUE7WUFBRSxHQUFHLENBQWtFO1lBQUEsS0FBSztRQUFBLENBQVU7S0FBQTtJQUMvRjtRQUNFO1FBQ0E7WUFDRSxDQUFHO1lBQ0gsR0FBSztRQUFBO0tBRVQ7SUFDQTtRQUNFO1FBQ0E7WUFDRSxDQUFHO1lBQ0gsR0FBSztRQUFBO0tBQ1A7Q0FFSjtBQWFNLGNBQVUsa0JBQWlCLFlBQVdBLENBQVU7QUM3Qi9DLE1BQU1BLGFBQXVCO0lBQ2xDO1FBQUMsTUFBUTtRQUFBO1lBQUUsR0FBRyxDQUFXO1lBQUEsS0FBSztRQUFBLENBQVU7S0FBQTtJQUN4QztRQUNFO1FBQ0E7WUFDRSxDQUFHO1lBQ0gsR0FBSztRQUFBO0tBRVQ7SUFDQTtRQUFDLENBQVE7UUFBQSxDQUFFO1lBQUEsRUFBRyxzQkFBdUI7WUFBQSxJQUFLO1FBQVU7S0FBQTtDQUN0RDtBQWFNLGVBQVcsa0JBQWlCLGNBQWFBLENBQVU7QUN2QmxELE1BQU1BLGFBQXVCO0lBQ2xDO1FBQUMsTUFBUTtRQUFBO1lBQUUsR0FBRyxDQUFrQjtZQUFBLEtBQUs7UUFBQSxDQUFVO0tBQUE7SUFDL0M7UUFDRTtRQUNBO1lBQ0UsQ0FBRztZQUNILEdBQUs7UUFBQTtLQUVUO0lBQ0E7UUFBQyxNQUFRO1FBQUE7WUFBRSxHQUFHLENBQW9CO1lBQUEsS0FBSztRQUFBLENBQVU7S0FBQTtJQUNqRDtRQUFDLFVBQVk7UUFBQTtZQUFFLFFBQVEsQ0FBd0I7WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0lBQzlEO1FBQUMsT0FBUTtRQUFBO1lBQUUsR0FBSSxLQUFNO1lBQUEsR0FBSSxLQUFNO1lBQUEsSUFBSSxDQUFNO1lBQUEsSUFBSSxJQUFNO1lBQUEsSUFBSztRQUFVO0tBQUE7Q0FDcEU7QUFhTSxtQkFBZSxrQkFBaUIsa0JBQWlCQSxDQUFVO0FDekIxRCxNQUFNQSxhQUF1QjtJQUNsQztRQUFDLE1BQVE7UUFBQTtZQUFFLEdBQUcsQ0FBWTtZQUFBLEtBQUs7UUFBQSxDQUFVO0tBQUE7SUFDekM7UUFDRTtRQUNBO1lBQ0UsQ0FBRztZQUNILEdBQUs7UUFBQTtLQUVUO0lBQ0E7UUFBQyxNQUFRO1FBQUE7WUFBRSxHQUFHLENBQW9CO1lBQUEsS0FBSztRQUFBLENBQVU7S0FBQTtJQUNqRDtRQUFDLFVBQVk7UUFBQTtZQUFFLFFBQVEsQ0FBd0I7WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0lBQzlEO1FBQUMsT0FBUTtRQUFBO1lBQUUsR0FBSSxLQUFNO1lBQUEsR0FBSSxLQUFNO1lBQUEsSUFBSSxDQUFNO1lBQUEsSUFBSSxJQUFNO1lBQUEsSUFBSztRQUFVO0tBQUE7Q0FDcEU7QUFhTSxtQkFBZSxrQkFBaUIsa0JBQWlCQSxDQUFVO0FDekIxRCxNQUFNQSxhQUF1QjtJQUNsQztRQUFDLE1BQVE7UUFBQTtZQUFFLEdBQUcsQ0FBYTtZQUFBLEtBQUs7UUFBQSxDQUFVO0tBQUE7SUFDMUM7UUFDRTtRQUNBO1lBQ0UsQ0FBRztZQUNILEdBQUs7UUFBQTtLQUVUO0lBQ0E7UUFDRTtRQUNBO1lBQ0UsQ0FBRztZQUNILEdBQUs7UUFBQTtLQUVUO0lBQ0E7UUFDRTtRQUNBO1lBQ0UsQ0FBRztZQUNILEdBQUs7UUFBQTtLQUNQO0NBRUo7QUFhTSxrQkFBYyxrQkFBaUIsaUJBQWdCQSxDQUFVO0FDcEN4RCxNQUFNQSxhQUF1QjtJQUNsQztRQUFDLE1BQVE7UUFBQTtZQUFFLEdBQUcsQ0FBWTtZQUFBLEtBQUs7UUFBQSxDQUFVO0tBQUE7SUFDekM7UUFBQyxNQUFRO1FBQUE7WUFBRSxHQUFHLENBQVk7WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0lBQ3pDO1FBQ0U7UUFDQTtZQUNFLENBQUc7WUFDSCxHQUFLO1FBQUE7S0FFVDtJQUNBO1FBQUMsTUFBUTtRQUFBO1lBQUUsR0FBRyxDQUFvQjtZQUFBLEtBQUs7UUFBQSxDQUFVO0tBQUE7SUFDakQ7UUFBQyxVQUFZO1FBQUE7WUFBRSxRQUFRLENBQXdCO1lBQUEsS0FBSztRQUFBLENBQVU7S0FBQTtJQUM5RDtRQUFDLE9BQVE7UUFBQTtZQUFFLEdBQUksS0FBTTtZQUFBLEdBQUksS0FBTTtZQUFBLElBQUksQ0FBTTtZQUFBLElBQUksSUFBTTtZQUFBLElBQUs7UUFBVTtLQUFBO0NBQ3BFO0FBYU0sa0JBQWMsa0JBQWlCLGlCQUFnQkEsQ0FBVTtBQzFCeEQsTUFBTUEsYUFBdUI7SUFDbEM7UUFDRTtRQUNBO1lBQ0UsQ0FBRztZQUNILEdBQUs7UUFBQTtLQUVUO0lBQ0E7UUFBQyxNQUFRO1FBQUE7WUFBRSxHQUFHLENBQW9CO1lBQUEsS0FBSztRQUFBLENBQVU7S0FBQTtJQUNqRDtRQUFDLFVBQVk7UUFBQTtZQUFFLFFBQVEsQ0FBd0I7WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0lBQzlEO1FBQUM7UUFBUSxDQUFFO1lBQUEsSUFBSSxDQUFNO1lBQUEsSUFBSSxDQUFNO1lBQUEsR0FBSSxLQUFNO1lBQUEsR0FBSSxLQUFNO1lBQUEsS0FBSztRQUFBLENBQVU7S0FBQTtJQUNsRTtRQUFDLFFBQVU7UUFBQTtZQUFFLEVBQUk7WUFBUSxDQUFJLFVBQVE7WUFBQSxDQUFHO1lBQU8sR0FBSztRQUFBLENBQVU7S0FBQTtJQUM5RDtRQUFDLENBQVE7UUFBQSxDQUFFO1lBQUEsRUFBRyxxQkFBc0I7WUFBQSxJQUFLO1FBQVU7S0FBQTtDQUNyRDtBQWFNLG9CQUFnQixrQkFBaUIsbUJBQWtCQSxDQUFVO0FDMUI1RCxNQUFNQSxhQUF1QjtJQUNsQztRQUNFO1FBQ0E7WUFDRSxDQUFHO1lBQ0gsR0FBSztRQUFBO0tBRVQ7SUFDQTtRQUFDLE1BQVE7UUFBQTtZQUFFLEdBQUcsQ0FBb0I7WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0lBQ2pEO1FBQUMsVUFBWTtRQUFBO1lBQUUsUUFBUSxDQUF3QjtZQUFBLEtBQUs7UUFBQSxDQUFVO0tBQUE7SUFDOUQ7UUFBQztRQUFRLENBQUU7WUFBQSxJQUFJLENBQU07WUFBQSxJQUFJLENBQU07WUFBQSxHQUFJLEtBQU07WUFBQSxHQUFJLEtBQU07WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0lBQ2xFO1FBQUMsQ0FBUTtRQUFBLENBQUU7WUFBQSxFQUFHLHNCQUF1QjtZQUFBLElBQUs7UUFBVTtLQUFBO0NBQ3REO0FBYU0sZUFBVyxrQkFBaUIsY0FBYUEsQ0FBVTtBQ3pCbEQsTUFBTUEsYUFBdUI7SUFDbEM7UUFDRTtRQUNBO1lBQ0UsQ0FBRztZQUNILEdBQUs7UUFBQTtLQUVUO0lBQ0E7UUFBQyxNQUFRO1FBQUE7WUFBRSxHQUFHLENBQWE7WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0lBQzFDO1FBQUMsVUFBWTtRQUFBO1lBQUUsUUFBUSxDQUF3QjtZQUFBLEtBQUs7UUFBQSxDQUFVO0tBQUE7SUFDOUQ7UUFBQyxDQUFRO1FBQUEsQ0FBRTtZQUFBLEVBQUcsbUJBQW9CO1lBQUEsSUFBSztRQUFVO0tBQUE7Q0FDbkQ7QUFhTSxjQUFVLGtCQUFpQixZQUFXQSxDQUFVO0FDeEIvQyxNQUFNQSxhQUF1QjtJQUNsQztRQUNFO1FBQ0E7WUFBRSxHQUFHLG1FQUFxRTtZQUFBLEtBQUssQ0FBUztRQUFBO0tBQzFGO0lBQ0E7UUFBQyxNQUFRO1FBQUE7WUFBRSxHQUFHLENBQVk7WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0lBQ3pDO1FBQUMsTUFBUTtRQUFBO1lBQUUsR0FBRyxDQUFZO1lBQUEsS0FBSztRQUFBLENBQVU7S0FBQTtJQUN6QztRQUFDLENBQVE7UUFBQSxDQUFFO1lBQUEsRUFBRywyREFBNEQ7WUFBQSxJQUFLO1FBQVU7S0FBQTtDQUMzRjtBQWFNLGtCQUFjLGtCQUFpQixpQkFBZ0JBLENBQVU7QUNyQnhELE1BQU1BLGFBQXVCO0lBQ2xDO1FBQUMsT0FBUTtRQUFBO1lBQUUsT0FBTztZQUFNLENBQVE7WUFBSyxDQUFHO1lBQUssR0FBRyxDQUFLO1lBQUEsSUFBSSxDQUFLO1lBQUEsS0FBSztRQUFBLENBQVU7S0FBQTtJQUM3RTtRQUFDLE1BQVE7UUFBQTtZQUFFLEdBQUcsQ0FBOEQ7WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0lBQzNGO1FBQUM7UUFBUSxDQUFFO1lBQUEsTUFBTyxLQUFLO1lBQUEsTUFBUSxNQUFLO1lBQUEsQ0FBRyxNQUFLO1lBQUEsRUFBRyxLQUFNO1lBQUEsR0FBSSxJQUFLO1lBQUEsSUFBSztRQUFVO0tBQUE7Q0FDL0U7QUFhTSxrQkFBYyxrQkFBaUIsaUJBQWdCQSxDQUFVO0FDakJ4RCxNQUFNQSxhQUF1QjtJQUNsQztRQUFDLE1BQVE7UUFBQTtZQUFFLEdBQUcsQ0FBVztZQUFBLEtBQUs7UUFBQSxDQUFVO0tBQUE7SUFDeEM7UUFBQyxNQUFRO1FBQUE7WUFBRSxHQUFHLENBQVc7WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0lBQ3hDO1FBQUMsTUFBUTtRQUFBO1lBQUUsR0FBRyxDQUE0QztZQUFBLEtBQUs7UUFBQSxDQUFVO0tBQUE7SUFDekU7UUFDRTtRQUNBO1lBQ0UsQ0FBRztZQUNILEdBQUs7UUFBQTtLQUNQO0NBRUo7QUFhTSx5QkFBcUIsa0JBQWlCLHdCQUF1QkEsQ0FBVTtBQ3hCdEUsTUFBTUEsYUFBdUI7SUFDbEM7UUFBQyxNQUFRO1FBQUE7WUFBRSxHQUFHLENBQThCO1lBQUEsS0FBSztRQUFBLENBQVU7S0FBQTtJQUMzRDtRQUNFO1FBQ0E7WUFDRSxDQUFHO1lBQ0gsR0FBSztRQUFBO0tBRVQ7SUFDQTtRQUNFO1FBQ0E7WUFDRSxDQUFHO1lBQ0gsR0FBSztRQUFBO0tBQ1A7Q0FFSjtBQWFNLGlCQUFhLGtCQUFpQixlQUFjQSxDQUFVO0FDN0JyRCxNQUFNQSxhQUF1QjtJQUNsQztRQUNFO1FBQ0E7WUFDRSxDQUFHO1lBQ0gsR0FBSztRQUFBO0tBRVQ7SUFDQTtRQUFDO1FBQVUsQ0FBRTtZQUFBLElBQUksQ0FBUTtZQUFBLElBQUksQ0FBTztZQUFBLEVBQUcsS0FBTTtZQUFBLEtBQU0sZUFBZ0I7WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0lBQ2xGO1FBQUM7UUFBVSxDQUFFO1lBQUEsSUFBSSxDQUFRO1lBQUEsSUFBSSxDQUFRO1lBQUEsRUFBRyxLQUFNO1lBQUEsS0FBTSxlQUFnQjtZQUFBLEtBQUs7UUFBQSxDQUFVO0tBQUE7SUFDbkY7UUFBQztRQUFVLENBQUU7WUFBQSxJQUFJLENBQU87WUFBQSxJQUFJLENBQVE7WUFBQSxFQUFHLEtBQU07WUFBQSxLQUFNLGVBQWdCO1lBQUEsS0FBSztRQUFBLENBQVU7S0FBQTtJQUNsRjtRQUFDLFNBQVU7UUFBQTtZQUFFLEdBQUksTUFBTztZQUFBLEdBQUksTUFBTztZQUFBLEdBQUcsQ0FBTTtZQUFBLE1BQU0sY0FBZ0I7WUFBQSxJQUFLO1FBQVU7S0FBQTtDQUNuRjtBQWFNLGNBQVUsa0JBQWlCLFlBQVdBLENBQVU7QUN6Qi9DLE1BQU1BLGFBQXVCO0lBQ2xDO1FBQUMsTUFBUTtRQUFBO1lBQUUsR0FBRyxDQUEyQjtZQUFBLEtBQUs7UUFBQSxDQUFVO0tBQUE7SUFDeEQ7UUFBQyxNQUFRO1FBQUE7WUFBRSxHQUFHLENBQWM7WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0lBQzNDO1FBQUMsTUFBUTtRQUFBO1lBQUUsR0FBRyxDQUE0QjtZQUFBLEtBQUs7UUFBQSxDQUFVO0tBQUE7SUFDekQ7UUFDRTtRQUNBO1lBQ0UsQ0FBRztZQUNILEdBQUs7UUFBQTtLQUVUO0lBQ0E7UUFBQyxNQUFRO1FBQUE7WUFBRSxHQUFHLENBQStCO1lBQUEsS0FBSztRQUFBLENBQVU7S0FBQTtJQUM1RDtRQUFDLENBQVE7UUFBQSxDQUFFO1lBQUEsRUFBRyxZQUFhO1lBQUEsSUFBSztRQUFVO0tBQUE7Q0FDNUM7QUFhTSxZQUFRLGtCQUFpQixVQUFTQSxDQUFVO0FDMUIzQyxNQUFNQSxhQUF1QjtJQUNsQztRQUFDLE9BQVE7UUFBQTtZQUFFLE9BQU87WUFBTSxDQUFRO1lBQU0sQ0FBRztZQUFLLEdBQUcsQ0FBSztZQUFBLElBQUksQ0FBSztZQUFBLEtBQUs7UUFBQSxDQUFVO0tBQUE7SUFDOUU7UUFBQyxNQUFRO1FBQUE7WUFBRSxHQUFHLENBQVk7WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0lBQ3pDO1FBQUMsQ0FBUTtRQUFBLENBQUU7WUFBQSxFQUFHLGdCQUFpQjtZQUFBLElBQUs7UUFBVTtLQUFBO0NBQ2hEO0FBYU0sdUJBQW1CLGtCQUFpQix1QkFBc0JBLENBQVU7QUNqQm5FLE1BQU1BLGFBQXVCO0lBQ2xDO1FBQUMsT0FBUTtRQUFBO1lBQUUsT0FBTztZQUFNLENBQVE7WUFBTSxDQUFHO1lBQUssR0FBRyxDQUFLO1lBQUEsSUFBSSxDQUFLO1lBQUEsS0FBSztRQUFBLENBQVU7S0FBQTtJQUM5RTtRQUFDLE1BQVE7UUFBQTtZQUFFLEdBQUcsQ0FBWTtZQUFBLEtBQUs7UUFBQSxDQUFVO0tBQUE7SUFDekM7UUFBQyxNQUFRO1FBQUE7WUFBRSxHQUFHLENBQVk7WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0lBQ3pDO1FBQUMsTUFBUTtRQUFBO1lBQUUsR0FBRyxDQUFXO1lBQUEsS0FBSztRQUFBLENBQVU7S0FBQTtJQUN4QztRQUFDLENBQVE7UUFBQSxDQUFFO1lBQUEsRUFBRyxVQUFXO1lBQUEsSUFBSztRQUFVO0tBQUE7Q0FDMUM7QUFhTSx3QkFBb0Isa0JBQWlCLHdCQUF1QkEsQ0FBVTtBQ25CckUsTUFBTUEsYUFBdUI7SUFDbEM7UUFBQyxPQUFRO1FBQUE7WUFBRSxPQUFPO1lBQU0sQ0FBUTtZQUFNLENBQUc7WUFBSyxHQUFHLENBQUs7WUFBQSxJQUFJLENBQUs7WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0lBQzlFO1FBQUMsTUFBUTtRQUFBO1lBQUUsR0FBRyxDQUFZO1lBQUEsS0FBSztRQUFBLENBQVU7S0FBQTtJQUN6QztRQUFDLENBQVE7UUFBQSxDQUFFO1lBQUEsRUFBRyxnQkFBaUI7WUFBQSxJQUFLO1FBQVU7S0FBQTtDQUNoRDtBQWFNLHNCQUFrQixrQkFBaUIsc0JBQXFCQSxDQUFVO0FDakJqRSxNQUFNQSxhQUF1QjtJQUNsQztRQUFDLE9BQVE7UUFBQTtZQUFFLE9BQU87WUFBTSxDQUFRO1lBQU0sQ0FBRztZQUFLLEdBQUcsQ0FBSztZQUFBLElBQUksQ0FBSztZQUFBLEtBQUs7UUFBQSxDQUFVO0tBQUE7SUFDOUU7UUFBQyxDQUFRO1FBQUEsQ0FBRTtZQUFBLEVBQUcsV0FBWTtZQUFBLElBQUs7UUFBVTtLQUFBO0NBQzNDO0FBYU0sa0JBQWMsa0JBQWlCLGlCQUFnQkEsQ0FBVTtBQ2hCeEQsTUFBTUEsYUFBdUI7SUFDbEM7UUFBQyxPQUFRO1FBQUE7WUFBRSxPQUFPO1lBQU0sQ0FBUTtZQUFNLENBQUc7WUFBSyxHQUFHLENBQUs7WUFBQSxJQUFJLENBQUs7WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0lBQzlFO1FBQUMsTUFBUTtRQUFBO1lBQUUsR0FBRyxDQUFXO1lBQUEsS0FBSztRQUFBLENBQVU7S0FBQTtJQUN4QztRQUFDLE1BQVE7UUFBQTtZQUFFLEdBQUcsQ0FBVztZQUFBLEtBQUs7UUFBQSxDQUFVO0tBQUE7SUFDeEM7UUFBQyxNQUFRO1FBQUE7WUFBRSxHQUFHLENBQVU7WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0lBQ3ZDO1FBQUMsQ0FBUTtRQUFBLENBQUU7WUFBQSxFQUFHLFNBQVU7WUFBQSxJQUFLO1FBQVU7S0FBQTtDQUN6QztBQWFNLHNCQUFrQixrQkFBaUIsc0JBQXFCQSxDQUFVO0FDbkJqRSxNQUFNQSxhQUF1QjtJQUNsQztRQUFDLE9BQVE7UUFBQTtZQUFFLE9BQU87WUFBTSxDQUFRO1lBQU0sQ0FBRztZQUFLLEdBQUcsQ0FBSztZQUFBLElBQUksQ0FBSztZQUFBLEtBQUs7UUFBQSxDQUFVO0tBQUE7SUFDOUU7UUFBQyxNQUFRO1FBQUE7WUFBRSxHQUFHLENBQVc7WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0lBQ3hDO1FBQUMsQ0FBUTtRQUFBLENBQUU7WUFBQSxFQUFHLGlCQUFrQjtZQUFBLElBQUs7UUFBVTtLQUFBO0NBQ2pEO0FBYU0scUJBQWlCLGtCQUFpQixxQkFBb0JBLENBQVU7QUNqQi9ELE1BQU1BLGFBQXVCO0lBQ2xDO1FBQUMsT0FBUTtRQUFBO1lBQUUsT0FBTztZQUFNLENBQVE7WUFBTSxDQUFHO1lBQUssR0FBRyxDQUFLO1lBQUEsSUFBSSxDQUFLO1lBQUEsS0FBSztRQUFBLENBQVU7S0FBQTtJQUM5RTtRQUFDLE1BQVE7UUFBQTtZQUFFLEdBQUcsQ0FBVztZQUFBLEtBQUs7UUFBQSxDQUFVO0tBQUE7SUFDeEM7UUFBQyxDQUFRO1FBQUEsQ0FBRTtZQUFBLEVBQUcsZ0JBQWlCO1lBQUEsSUFBSztRQUFVO0tBQUE7Q0FDaEQ7QUFhTSxvQkFBZ0Isa0JBQWlCLG9CQUFtQkEsQ0FBVTtBQ2pCN0QsTUFBTUEsYUFBdUI7SUFDbEM7UUFBQyxPQUFRO1FBQUE7WUFBRSxPQUFPO1lBQU0sQ0FBUTtZQUFNLENBQUc7WUFBSyxHQUFHLENBQUs7WUFBQSxJQUFJLENBQUs7WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0lBQzlFO1FBQUMsQ0FBUTtRQUFBLENBQUU7WUFBQSxFQUFHLFVBQVc7WUFBQSxJQUFLO1FBQVU7S0FBQTtDQUMxQztBQWFNLGdCQUFZLGtCQUFpQixlQUFjQSxDQUFVO0FDaEJwRCxNQUFNQSxhQUF1QjtJQUNsQztRQUFDLE9BQVE7UUFBQTtZQUFFLE9BQU87WUFBTSxDQUFRO1lBQU0sQ0FBRztZQUFLLEdBQUcsQ0FBSztZQUFBLElBQUksQ0FBSztZQUFBLEtBQUs7UUFBQSxDQUFVO0tBQUE7SUFDOUU7UUFBQyxNQUFRO1FBQUE7WUFBRSxHQUFHLENBQVk7WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0lBQ3pDO1FBQUMsQ0FBUTtRQUFBLENBQUU7WUFBQSxFQUFHLGVBQWdCO1lBQUEsSUFBSztRQUFVO0tBQUE7Q0FDL0M7QUFhTSxzQkFBa0Isa0JBQWlCLHNCQUFxQkEsQ0FBVTtBQ2pCakUsTUFBTUEsYUFBdUI7SUFDbEM7UUFBQyxPQUFRO1FBQUE7WUFBRSxPQUFPO1lBQU0sQ0FBUTtZQUFNLENBQUc7WUFBSyxHQUFHLENBQUs7WUFBQSxJQUFJLENBQUs7WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0lBQzlFO1FBQUMsTUFBUTtRQUFBO1lBQUUsR0FBRyxDQUFZO1lBQUEsS0FBSztRQUFBLENBQVU7S0FBQTtJQUN6QztRQUFDLE1BQVE7UUFBQTtZQUFFLEdBQUcsQ0FBWTtZQUFBLEtBQUs7UUFBQSxDQUFVO0tBQUE7SUFDekM7UUFBQyxNQUFRO1FBQUE7WUFBRSxHQUFHLENBQVc7WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0lBQ3hDO1FBQUMsQ0FBUTtRQUFBLENBQUU7WUFBQSxFQUFHLFVBQVc7WUFBQSxJQUFLO1FBQVU7S0FBQTtDQUMxQztBQWFNLHVCQUFtQixrQkFBaUIsdUJBQXNCQSxDQUFVO0FDbkJuRSxNQUFNQSxhQUF1QjtJQUNsQztRQUFDLE9BQVE7UUFBQTtZQUFFLE9BQU87WUFBTSxDQUFRO1lBQU0sQ0FBRztZQUFLLEdBQUcsQ0FBSztZQUFBLElBQUksQ0FBSztZQUFBLEtBQUs7UUFBQSxDQUFVO0tBQUE7SUFDOUU7UUFBQyxNQUFRO1FBQUE7WUFBRSxHQUFHLENBQVk7WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0lBQ3pDO1FBQUMsQ0FBUTtRQUFBLENBQUU7WUFBQSxFQUFHLGlCQUFrQjtZQUFBLElBQUs7UUFBVTtLQUFBO0NBQ2pEO0FBYU0scUJBQWlCLGtCQUFpQixxQkFBb0JBLENBQVU7QUNqQi9ELE1BQU1BLGFBQXVCO0lBQ2xDO1FBQUMsT0FBUTtRQUFBO1lBQUUsT0FBTztZQUFNLENBQVE7WUFBTSxDQUFHO1lBQUssR0FBRyxDQUFLO1lBQUEsSUFBSSxDQUFLO1lBQUEsS0FBSztRQUFBLENBQVU7S0FBQTtJQUM5RTtRQUFDLENBQVE7UUFBQSxDQUFFO1lBQUEsRUFBRyxXQUFZO1lBQUEsSUFBSztRQUFVO0tBQUE7Q0FDM0M7QUFhTSxpQkFBYSxrQkFBaUIsZ0JBQWVBLENBQVU7QUNoQnRELE1BQU1BLGFBQXVCO0lBQ2xDO1FBQUMsT0FBUTtRQUFBO1lBQUUsT0FBTztZQUFNLENBQVE7WUFBTSxDQUFHO1lBQUssR0FBRyxDQUFLO1lBQUEsSUFBSSxDQUFLO1lBQUEsS0FBSztRQUFBLENBQVU7S0FBQTtJQUM5RTtRQUFDLE1BQVE7UUFBQTtZQUFFLEdBQUcsQ0FBVztZQUFBLEtBQUs7UUFBQSxDQUFVO0tBQUE7SUFDeEM7UUFBQyxDQUFRO1FBQUEsQ0FBRTtZQUFBLEVBQUcsZ0JBQWlCO1lBQUEsSUFBSztRQUFVO0tBQUE7Q0FDaEQ7QUFhTSxvQkFBZ0Isa0JBQWlCLG9CQUFtQkEsQ0FBVTtBQ2pCN0QsTUFBTUEsYUFBdUI7SUFDbEM7UUFBQyxPQUFRO1FBQUE7WUFBRSxPQUFPO1lBQU0sQ0FBUTtZQUFNLENBQUc7WUFBSyxHQUFHLENBQUs7WUFBQSxJQUFJLENBQUs7WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0lBQzlFO1FBQUMsTUFBUTtRQUFBO1lBQUUsR0FBRyxDQUFXO1lBQUEsS0FBSztRQUFBLENBQVU7S0FBQTtJQUN4QztRQUFDLE1BQVE7UUFBQTtZQUFFLEdBQUcsQ0FBVztZQUFBLEtBQUs7UUFBQSxDQUFVO0tBQUE7SUFDeEM7UUFBQyxNQUFRO1FBQUE7WUFBRSxHQUFHLENBQVU7WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0lBQ3ZDO1FBQUMsQ0FBUTtRQUFBLENBQUU7WUFBQSxFQUFHLFNBQVU7WUFBQSxJQUFLO1FBQVU7S0FBQTtDQUN6QztBQWFNLHFCQUFpQixrQkFBaUIscUJBQW9CQSxDQUFVO0FDbkIvRCxNQUFNQSxhQUF1QjtJQUNsQztRQUFDLE9BQVE7UUFBQTtZQUFFLE9BQU87WUFBTSxDQUFRO1lBQU0sQ0FBRztZQUFLLEdBQUcsQ0FBSztZQUFBLElBQUksQ0FBSztZQUFBLEtBQUs7UUFBQSxDQUFVO0tBQUE7SUFDOUU7UUFBQyxNQUFRO1FBQUE7WUFBRSxHQUFHLENBQVc7WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0lBQ3hDO1FBQUMsQ0FBUTtRQUFBLENBQUU7WUFBQSxFQUFHLGlCQUFrQjtZQUFBLElBQUs7UUFBVTtLQUFBO0NBQ2pEO0FBYU0sbUJBQWUsa0JBQWlCLG1CQUFrQkEsQ0FBVTtBQ2pCM0QsTUFBTUEsYUFBdUI7SUFDbEM7UUFBQyxPQUFRO1FBQUE7WUFBRSxPQUFPO1lBQU0sQ0FBUTtZQUFNLENBQUc7WUFBSyxHQUFHLENBQUs7WUFBQSxJQUFJLENBQUs7WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0lBQzlFO1FBQUMsQ0FBUTtRQUFBLENBQUU7WUFBQSxFQUFHLFVBQVc7WUFBQSxJQUFLO1FBQVU7S0FBQTtDQUMxQztBQWFNLGVBQVcsa0JBQWlCLGNBQWFBLENBQVU7QUNoQmxELE1BQU1BLGFBQXVCO0lBQ2xDO1FBQUMsT0FBUTtRQUFBO1lBQUUsT0FBTztZQUFNLENBQVE7WUFBTSxDQUFHO1lBQUssR0FBRyxDQUFLO1lBQUEsSUFBSSxDQUFLO1lBQUEsS0FBSztRQUFBLENBQVU7S0FBQTtJQUM5RTtRQUFDLE1BQVE7UUFBQTtZQUFFLEdBQUcsQ0FBVztZQUFBLEtBQUs7UUFBQSxDQUFVO0tBQUE7SUFDeEM7UUFBQyxDQUFRO1FBQUEsQ0FBRTtZQUFBLEVBQUcsV0FBWTtZQUFBLElBQUs7UUFBVTtLQUFBO0NBQzNDO0FBYU0sdUJBQW1CLGtCQUFpQix1QkFBc0JBLENBQVU7QUNqQm5FLE1BQU1BLGFBQXVCO0lBQ2xDO1FBQUMsT0FBUTtRQUFBO1lBQUUsT0FBTztZQUFNLENBQVE7WUFBTSxDQUFHO1lBQUssR0FBRyxDQUFLO1lBQUEsSUFBSSxDQUFLO1lBQUEsS0FBSztRQUFBLENBQVU7S0FBQTtJQUM5RTtRQUFDLE1BQVE7UUFBQTtZQUFFLEdBQUcsQ0FBWTtZQUFBLEtBQUs7UUFBQSxDQUFVO0tBQUE7SUFDekM7UUFBQyxDQUFRO1FBQUEsQ0FBRTtZQUFBLEVBQUcsV0FBWTtZQUFBLElBQUs7UUFBVTtLQUFBO0NBQzNDO0FBYU0sd0JBQW9CLGtCQUFpQix3QkFBdUJBLENBQVU7QUNqQnJFLE1BQU1BLGFBQXVCO0lBQ2xDO1FBQUMsT0FBUTtRQUFBO1lBQUUsT0FBTztZQUFNLENBQVE7WUFBTSxDQUFHO1lBQUssR0FBRyxDQUFLO1lBQUEsSUFBSSxDQUFLO1lBQUEsS0FBSztRQUFBLENBQVU7S0FBQTtJQUM5RTtRQUFDLE1BQVE7UUFBQTtZQUFFLEdBQUcsQ0FBVztZQUFBLEtBQUs7UUFBQSxDQUFVO0tBQUE7SUFDeEM7UUFBQyxDQUFRO1FBQUEsQ0FBRTtZQUFBLEVBQUcsVUFBVztZQUFBLElBQUs7UUFBVTtLQUFBO0NBQzFDO0FBYU0sb0JBQWdCLGtCQUFpQixvQkFBbUJBLENBQVU7QUNqQjdELE1BQU1BLGFBQXVCO0lBQ2xDO1FBQ0U7UUFDQTtZQUNFLENBQUc7WUFDSCxHQUFLO1FBQUE7S0FDUDtDQUVKO0FBYU0sZ0JBQVksa0JBQWlCLGNBQWFBLENBQVU7QUNyQm5ELE1BQU1BLGFBQXVCO0lBQ2xDO1FBQUMsTUFBUTtRQUFBO1lBQUUsR0FBRyxDQUEwQjtZQUFBLEtBQUs7UUFBQSxDQUFVO0tBQUE7SUFDdkQ7UUFBQyxDQUFRO1FBQUEsQ0FBRTtZQUFBLEVBQUcsd0JBQXlCO1lBQUEsSUFBSztRQUFVO0tBQUE7Q0FDeEQ7QUFhTSxrQkFBYyxrQkFBaUIsZ0JBQWVBLENBQVU7QUNoQnZELE1BQU1BLGFBQXVCO0lBQ2xDO1FBQUMsTUFBUTtRQUFBO1lBQUUsR0FBRyxDQUFZO1lBQUEsS0FBSztRQUFBLENBQVU7S0FBQTtJQUN6QztRQUFDLE1BQVE7UUFBQTtZQUFFLEdBQUcsQ0FBWTtZQUFBLEtBQUs7UUFBQSxDQUFVO0tBQUE7SUFDekM7UUFBQyxNQUFRO1FBQUE7WUFBRSxHQUFHLENBQVk7WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0lBQ3pDO1FBQ0U7UUFDQTtZQUNFLENBQUc7WUFDSCxHQUFLO1FBQUE7S0FFVDtJQUNBO1FBQUMsQ0FBUTtRQUFBLENBQUU7WUFBQSxFQUFHLHFCQUFzQjtZQUFBLElBQUs7UUFBVTtLQUFBO0NBQ3JEO0FBYU0sbUJBQWUsa0JBQWlCLGtCQUFpQkEsQ0FBVTtBQ3pCMUQsTUFBTUEsYUFBdUI7SUFDbEM7UUFBQyxNQUFRO1FBQUE7WUFBRSxHQUFHLENBQTRCO1lBQUEsS0FBSztRQUFBLENBQVU7S0FBQTtJQUN6RDtRQUFDLE1BQVE7UUFBQTtZQUFFLEdBQUcsQ0FBWTtZQUFBLEtBQUs7UUFBQSxDQUFVO0tBQUE7SUFDekM7UUFBQyxNQUFRO1FBQUE7WUFBRSxHQUFHLENBQWE7WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0lBQzFDO1FBQUMsTUFBUTtRQUFBO1lBQUUsR0FBRyxDQUFhO1lBQUEsS0FBSztRQUFBLENBQVU7S0FBQTtJQUMxQztRQUFDLE1BQVE7UUFBQTtZQUFFLEdBQUcsQ0FBYztZQUFBLEtBQUs7UUFBQSxDQUFVO0tBQUE7SUFDM0M7UUFDRTtRQUNBO1lBQ0UsQ0FBRztZQUNILEdBQUs7UUFBQTtLQUVUO0lBQ0E7UUFDRTtRQUNBO1lBQUUsR0FBRyx1RUFBeUU7WUFBQSxLQUFLLENBQVM7UUFBQTtLQUM5RjtJQUNBO1FBQUMsTUFBUTtRQUFBO1lBQUUsR0FBRyxDQUFrRTtZQUFBLEtBQUs7UUFBQSxDQUFVO0tBQUE7SUFDL0Y7UUFDRTtRQUNBO1lBQ0UsQ0FBRztZQUNILEdBQUs7UUFBQTtLQUNQO0NBRUo7QUFhTSxrQkFBYyxrQkFBaUIsaUJBQWdCQSxDQUFVO0FDdEN4RCxNQUFNQSxhQUF1QjtJQUNsQztRQUFDLE9BQVE7UUFBQTtZQUFFLEdBQUc7WUFBTSxDQUFHO1lBQUssQ0FBTztZQUFLLFFBQVEsQ0FBTTtZQUFBLElBQUksQ0FBSztZQUFBLEtBQUs7UUFBQSxDQUFVO0tBQUE7SUFDOUU7UUFBQztRQUFRLENBQUU7WUFBQSxFQUFHLEtBQUs7WUFBQSxDQUFHLE1BQUs7WUFBQSxLQUFPLE1BQUs7WUFBQSxPQUFRLEtBQU07WUFBQSxHQUFJLElBQUs7WUFBQSxJQUFLO1FBQVU7S0FBQTtDQUMvRTtBQWFNLFlBQVEsa0JBQWlCLFVBQVNBLENBQVU7QUNoQjNDLE1BQU1BLGFBQXVCO0lBQ2xDO1FBQUMsUUFBVTtRQUFBO1lBQUUsRUFBSTtZQUFNLENBQUksT0FBSztZQUFBLENBQUc7WUFBSyxHQUFLO1FBQUEsQ0FBVTtLQUFBO0lBQ3ZEO1FBQUMsUUFBVTtRQUFBO1lBQUUsRUFBSTtZQUFNLENBQUksT0FBSztZQUFBLENBQUc7WUFBSyxHQUFLO1FBQUEsQ0FBVTtLQUFBO0lBQ3ZEO1FBQUMsUUFBVTtRQUFBO1lBQUUsRUFBSTtZQUFNLENBQUksUUFBTTtZQUFBLENBQUc7WUFBSyxHQUFLO1FBQUEsQ0FBVTtLQUFBO0lBQ3hEO1FBQ0U7UUFDQTtZQUNFLENBQUc7WUFDSCxHQUFLO1FBQUE7S0FDUDtDQUVKO0FBYU0sZUFBVyxrQkFBaUIsY0FBYUEsQ0FBVTtBQ3hCbEQsTUFBTUEsYUFBdUI7SUFDbEM7UUFBQyxPQUFRO1FBQUE7WUFBRSxPQUFPO1lBQU0sQ0FBUTtZQUFNLENBQUc7WUFBSyxHQUFHLENBQUs7WUFBQSxJQUFJLENBQUs7WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0lBQzlFO1FBQUMsTUFBUTtRQUFBO1lBQUUsR0FBRyxDQUFjO1lBQUEsS0FBSztRQUFBLENBQVU7S0FBQTtJQUMzQztRQUFDLE1BQVE7UUFBQTtZQUFFLEdBQUcsQ0FBVTtZQUFBLEtBQUs7UUFBQSxDQUFVO0tBQUE7SUFDdkM7UUFBQyxDQUFRO1FBQUEsQ0FBRTtZQUFBLEVBQUcsVUFBVztZQUFBLElBQUs7UUFBVTtLQUFBO0NBQzFDO0FBYU0sYUFBUyxrQkFBaUIsWUFBV0EsQ0FBVTtBQ2xCOUMsTUFBTUEsYUFBdUI7SUFDbEM7UUFDRTtRQUNBO1lBQ0UsQ0FBRztZQUNILEdBQUs7UUFBQTtLQUVUO0lBQ0E7UUFBQyxNQUFRO1FBQUE7WUFBRSxHQUFHLENBQWdFO1lBQUEsS0FBSztRQUFBLENBQVU7S0FBQTtJQUM3RjtRQUFDLENBQVE7UUFBQSxDQUFFO1lBQUEsRUFBRyxhQUFjO1lBQUEsSUFBSztRQUFVO0tBQUE7Q0FDN0M7QUFhTSxhQUFTLGtCQUFpQixZQUFXQSxDQUFVO0FDdkI5QyxNQUFNQSxhQUF1QjtJQUNsQztRQUFDLE1BQVE7UUFBQTtZQUFFLEdBQUcsQ0FBWTtZQUFBLEtBQUs7UUFBQSxDQUFVO0tBQUE7SUFDekM7UUFDRTtRQUNBO1lBQ0UsQ0FBRztZQUNILEdBQUs7UUFBQTtLQUNQO0NBRUo7QUFhTSxjQUFVLGtCQUFpQixhQUFZQSxDQUFVO0FDdEJoRCxNQUFNQSxhQUF1QjtJQUNsQztRQUNFO1FBQ0E7WUFDRSxDQUFHO1lBQ0gsR0FBSztRQUFBO0tBRVQ7SUFDQTtRQUNFO1FBQ0E7WUFDRSxDQUFHO1lBQ0gsR0FBSztRQUFBO0tBRVQ7SUFDQTtRQUFDLE1BQVE7UUFBQTtZQUFFLEdBQUcsQ0FBd0I7WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0lBQ3JEO1FBQUMsQ0FBVTtRQUFBO1lBQUUsQ0FBSSxRQUFNO1lBQUEsRUFBSTtZQUFNLENBQUc7WUFBSyxDQUFLO1FBQVU7S0FBQTtDQUMxRDtBQWFNLGNBQVUsa0JBQWlCLGFBQVlBLENBQVU7QUM5QmhELE1BQU1BLGFBQXVCO0lBQ2xDO1FBQ0U7UUFDQTtZQUNFLENBQUc7WUFDSCxHQUFLO1FBQUE7S0FDUDtDQUVKO0FBYU0sVUFBTSxrQkFBaUIsUUFBT0EsQ0FBVTtBQ3JCdkMsTUFBTUEsYUFBdUI7SUFDbEM7UUFDRTtRQUNBO1lBQ0UsQ0FBRztZQUNILEdBQUs7UUFBQTtLQUVUO0lBQ0E7UUFBQyxNQUFRO1FBQUE7WUFBRSxHQUFHLENBQWdFO1lBQUEsS0FBSztRQUFBLENBQVU7S0FBQTtJQUM3RjtRQUFDLE1BQVE7UUFBQTtZQUFFLEdBQUcsQ0FBYTtZQUFBLEtBQUs7UUFBQSxDQUFVO0tBQUE7SUFDMUM7UUFBQyxDQUFRO1FBQUEsQ0FBRTtZQUFBLEVBQUcsYUFBYztZQUFBLElBQUs7UUFBVTtLQUFBO0NBQzdDO0FBYU0sZ0JBQVksa0JBQWlCLGVBQWNBLENBQVU7QUN4QnBELE1BQU1BLGFBQXVCO0lBQ2xDO1FBQUMsTUFBUTtRQUFBO1lBQUUsR0FBRyxDQUFZO1lBQUEsS0FBSztRQUFBLENBQVU7S0FBQTtJQUN6QztRQUNFO1FBQ0E7WUFDRSxDQUFHO1lBQ0gsR0FBSztRQUFBO0tBRVQ7SUFDQTtRQUFDLENBQVE7UUFBQSxDQUFFO1lBQUEsRUFBRyxZQUFhO1lBQUEsSUFBSztRQUFVO0tBQUE7Q0FDNUM7QUFhTSxpQkFBYSxrQkFBaUIsZ0JBQWVBLENBQVU7QUN2QnRELE1BQU1BLGFBQXVCO0lBQ2xDO1FBQ0U7UUFDQTtZQUFFLEdBQUcsd0VBQTBFO1lBQUEsS0FBSyxDQUFTO1FBQUE7S0FDL0Y7SUFDQTtRQUFDLE1BQVE7UUFBQTtZQUFFLEdBQUcsQ0FBWTtZQUFBLEtBQUs7UUFBQSxDQUFVO0tBQUE7SUFDekM7UUFBQyxNQUFRO1FBQUE7WUFBRSxHQUFHLENBQWM7WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0lBQzNDO1FBQ0U7UUFDQTtZQUNFLENBQUc7WUFDSCxHQUFLO1FBQUE7S0FFVDtJQUNBO1FBQ0U7UUFDQTtZQUNFLENBQUc7WUFDSCxHQUFLO1FBQUE7S0FFVDtJQUNBO1FBQUMsQ0FBUTtRQUFBLENBQUU7WUFBQSxFQUFHLFlBQWE7WUFBQSxJQUFLO1FBQVU7S0FBQTtDQUM1QztBQWFNLGtCQUFjLGtCQUFpQixpQkFBZ0JBLENBQVU7QUNuQ3hELE1BQU1BLGFBQXVCO0lBQ2xDO1FBQ0U7UUFDQTtZQUNFLENBQUc7WUFDSCxHQUFLO1FBQUE7S0FFVDtJQUNBO1FBQUMsQ0FBUTtRQUFBLENBQUU7WUFBQSxFQUFHLFlBQWE7WUFBQSxJQUFLO1FBQVU7S0FBQTtDQUM1QztBQWFNLGFBQVMsa0JBQWlCLFdBQVVBLENBQVU7QUN0QjdDLE1BQU1BLGFBQXVCO0lBQ2xDO1FBQ0U7UUFDQTtZQUNFLENBQUc7WUFDSCxHQUFLO1FBQUE7S0FDUDtDQUVKO0FBYU0sZUFBVyxrQkFBaUIsYUFBWUEsQ0FBVTtBQ3JCakQsTUFBTUEsYUFBdUI7SUFDbEM7UUFBQztRQUFRLENBQUU7WUFBQSxJQUFJLENBQU07WUFBQSxJQUFJLENBQUs7WUFBQSxHQUFJLElBQUs7WUFBQSxHQUFJLEtBQU07WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0lBQ2hFO1FBQUMsUUFBVTtRQUFBO1lBQUUsRUFBSTtZQUFPLENBQUksU0FBTztZQUFBLENBQUc7WUFBTyxHQUFLO1FBQUEsQ0FBVTtLQUFBO0lBQzVEO1FBQUMsQ0FBVTtRQUFBO1lBQUUsQ0FBSSxVQUFRO1lBQUEsRUFBSTtZQUFRLENBQUc7WUFBTyxDQUFLO1FBQVU7S0FBQTtDQUNoRTtBQWFNLGNBQVUsa0JBQWlCLFlBQVdBLENBQVU7QUNqQi9DLE1BQU1BLGFBQXVCO0lBQ2xDO1FBQUMsUUFBVTtRQUFBO1lBQUUsRUFBSTtZQUFNLENBQUksT0FBSztZQUFBLENBQUc7WUFBSyxHQUFLO1FBQUEsQ0FBVTtLQUFBO0lBQ3ZEO1FBQUMsTUFBUTtRQUFBO1lBQUUsR0FBRyxDQUFpQjtZQUFBLEtBQUs7UUFBQSxDQUFVO0tBQUE7SUFDOUM7UUFBQyxNQUFRO1FBQUE7WUFBRSxHQUFHLENBQWdCO1lBQUEsS0FBSztRQUFBLENBQVU7S0FBQTtJQUM3QztRQUFDLENBQVE7UUFBQSxDQUFFO1lBQUEsRUFBRyxXQUFZO1lBQUEsSUFBSztRQUFVO0tBQUE7Q0FDM0M7QUFhTSxxQkFBaUIsa0JBQWlCLG9CQUFtQkEsQ0FBVTtBQ2xCOUQsTUFBTUEsYUFBdUI7SUFDbEM7UUFBQyxNQUFRO1FBQUE7WUFBRSxHQUFHLENBQVk7WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0lBQ3pDO1FBQUMsTUFBUTtRQUFBO1lBQUUsR0FBRyxDQUFXO1lBQUEsS0FBSztRQUFBLENBQVU7S0FBQTtJQUN4QztRQUFDLENBQVE7UUFBQSxDQUFFO1lBQUEsRUFBRywyQ0FBNEM7WUFBQSxJQUFLO1FBQVU7S0FBQTtDQUMzRTtBQWFNLHFCQUFpQixrQkFBaUIsb0JBQW1CQSxDQUFVO0FDakI5RCxNQUFNQSxhQUF1QjtJQUNsQztRQUFDLE1BQVE7UUFBQTtZQUFFLEdBQUcsQ0FBdUI7WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0lBQ3BEO1FBQUMsTUFBUTtRQUFBO1lBQUUsR0FBRyxDQUF1QjtZQUFBLEtBQUs7UUFBQSxDQUFVO0tBQUE7SUFDcEQ7UUFDRTtRQUNBO1lBQ0UsQ0FBRztZQUNILEdBQUs7UUFBQTtLQUNQO0NBRUo7QUFhTSxnQkFBWSxrQkFBaUIsZUFBY0EsQ0FBVTtBQ3ZCcEQsTUFBTUEsYUFBdUI7SUFDbEM7UUFBQyxNQUFRO1FBQUE7WUFBRSxHQUFHLENBQVc7WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0lBQ3hDO1FBQUMsTUFBUTtRQUFBO1lBQUUsR0FBRyxDQUFpQjtZQUFBLEtBQUs7UUFBQSxDQUFVO0tBQUE7SUFDOUM7UUFDRTtRQUNBO1lBQ0UsQ0FBRztZQUNILEdBQUs7UUFBQTtLQUNQO0NBRUo7QUFhTSxxQkFBaUIsa0JBQWlCLG9CQUFtQkEsQ0FBVTtBQ3ZCOUQsTUFBTUEsYUFBdUI7SUFDbEM7UUFBQyxNQUFRO1FBQUE7WUFBRSxHQUFHLENBQWE7WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0lBQzFDO1FBQUMsTUFBUTtRQUFBO1lBQUUsR0FBRyxDQUFhO1lBQUEsS0FBSztRQUFBLENBQVU7S0FBQTtJQUMxQztRQUNFO1FBQ0E7WUFDRSxDQUFHO1lBQ0gsR0FBSztRQUFBO0tBQ1A7Q0FFSjtBQWFNLG9CQUFnQixrQkFBaUIsbUJBQWtCQSxDQUFVO0FDdkI1RCxNQUFNQSxhQUF1QjtJQUNsQztRQUFDLE1BQVE7UUFBQTtZQUFFLEdBQUcsQ0FBYTtZQUFBLEtBQUs7UUFBQSxDQUFVO0tBQUE7SUFDMUM7UUFBQyxNQUFRO1FBQUE7WUFBRSxHQUFHLENBQWE7WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0lBQzFDO1FBQ0U7UUFDQTtZQUNFLENBQUc7WUFDSCxHQUFLO1FBQUE7S0FDUDtDQUVKO0FBYU0sa0JBQWMsa0JBQWlCLGlCQUFnQkEsQ0FBVTtBQ3ZCeEQsTUFBTUEsYUFBdUI7SUFDbEM7UUFDRTtRQUNBO1lBQ0UsQ0FBRztZQUNILEdBQUs7UUFBQTtLQUVUO0lBQ0E7UUFBQyxNQUFRO1FBQUE7WUFBRSxHQUFHLENBQWM7WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0lBQzNDO1FBQ0U7UUFDQTtZQUNFLENBQUc7WUFDSCxHQUFLO1FBQUE7S0FDUDtDQUVKO0FBYU0sZUFBVyxrQkFBaUIsY0FBYUEsQ0FBVTtBQzdCbEQsTUFBTUEsYUFBdUI7SUFDbEM7UUFBQyxNQUFRO1FBQUE7WUFBRSxHQUFHLENBQWE7WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0lBQzFDO1FBQUMsTUFBUTtRQUFBO1lBQUUsR0FBRyxDQUFjO1lBQUEsS0FBSztRQUFBLENBQVU7S0FBQTtJQUMzQztRQUNFO1FBQ0E7WUFDRSxDQUFHO1lBQ0gsR0FBSztRQUFBO0tBQ1A7Q0FFSjtBQWFNLG9CQUFnQixrQkFBaUIsbUJBQWtCQSxDQUFVO0FDdkI1RCxNQUFNQSxhQUF1QjtJQUNsQztRQUNFO1FBQ0E7WUFDRSxDQUFHO1lBQ0gsR0FBSztRQUFBO0tBQ1A7Q0FFSjtBQWFNLFlBQVEsa0JBQWlCLFVBQVNBLENBQVU7QUNyQjNDLE1BQU1BLGFBQXVCO0lBQ2xDO1FBQUM7UUFBUSxDQUFFO1lBQUEsSUFBSSxDQUFLO1lBQUEsSUFBSSxDQUFLO1lBQUEsR0FBSSxJQUFLO1lBQUEsR0FBSSxLQUFNO1lBQUEsS0FBSztRQUFBLENBQVU7S0FBQTtJQUMvRDtRQUFDLE1BQVE7UUFBQTtZQUFFLEdBQUcsQ0FBMkI7WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0lBQ3hEO1FBQUMsQ0FBUTtRQUFBLENBQUU7WUFBQSxFQUFHLDRCQUE2QjtZQUFBLElBQUs7UUFBVTtLQUFBO0NBQzVEO0FBYU0sU0FBSyxrQkFBaUIsT0FBTUEsQ0FBVTtBQ2pCckMsTUFBTUEsYUFBdUI7SUFDbEM7UUFDRTtRQUNBO1lBQ0UsQ0FBRztZQUNILEdBQUs7UUFBQTtLQUVUO0lBQ0E7UUFBQyxNQUFRO1FBQUE7WUFBRSxHQUFHLENBQVk7WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0lBQ3pDO1FBQUMsTUFBUTtRQUFBO1lBQUUsR0FBRyxDQUFXO1lBQUEsS0FBSztRQUFBLENBQVU7S0FBQTtJQUN4QztRQUFDLE1BQVE7UUFBQTtZQUFFLEdBQUcsQ0FBWTtZQUFBLEtBQUs7UUFBQSxDQUFVO0tBQUE7SUFDekM7UUFBQyxNQUFRO1FBQUE7WUFBRSxHQUFHLENBQVk7WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0lBQ3pDO1FBQUMsQ0FBUTtRQUFBLENBQUU7WUFBQSxFQUFHLFdBQVk7WUFBQSxJQUFLO1FBQVU7S0FBQTtDQUMzQztBQWFNLFlBQVEsa0JBQWlCLFVBQVNBLENBQVU7QUMxQjNDLE1BQU1BLGFBQXVCO0lBQ2xDO1FBQUMsTUFBUTtRQUFBO1lBQUUsR0FBRyxDQUF3RDtZQUFBLEtBQUs7UUFBQSxDQUFVO0tBQUE7SUFDckY7UUFDRTtRQUNBO1lBQ0UsQ0FBRztZQUNILEdBQUs7UUFBQTtLQUVUO0lBQ0E7UUFDRTtRQUNBO1lBQ0UsQ0FBRztZQUNILEdBQUs7UUFBQTtLQUVUO0lBQ0E7UUFDRTtRQUNBO1lBQ0UsQ0FBRztZQUNILEdBQUs7UUFBQTtLQUNQO0NBRUo7QUFhTSxjQUFVLGtCQUFpQixZQUFXQSxDQUFVO0FDcEMvQyxNQUFNQSxhQUF1QjtJQUNsQztRQUFDLE1BQVE7UUFBQTtZQUFFLEdBQUcsQ0FBNEQ7WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0lBQ3pGO1FBQUM7UUFBUSxDQUFFO1lBQUEsTUFBTyxNQUFNO1lBQUEsTUFBUSxNQUFLO1lBQUEsQ0FBRyxPQUFNO1lBQUEsRUFBRyxLQUFNO1lBQUEsR0FBSSxJQUFLO1lBQUEsSUFBSztRQUFVO0tBQUE7Q0FDakY7QUFhTSx3QkFBb0Isa0JBQWlCLHlCQUF3QkEsQ0FBVTtBQ2hCdEUsTUFBTUEsYUFBdUI7SUFDbEM7UUFBQyxNQUFRO1FBQUE7WUFBRSxHQUFHLENBQWE7WUFBQSxLQUFLO1FBQUEsQ0FBUztLQUFBO0lBQ3pDO1FBQUMsTUFBUTtRQUFBO1lBQUUsR0FBRyxDQUFZO1lBQUEsS0FBSztRQUFBLENBQVU7S0FBQTtJQUN6QztRQUFDLE1BQVE7UUFBQTtZQUFFLEdBQUcsQ0FBNkI7WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0lBQzFEO1FBQUMsTUFBUTtRQUFBO1lBQUUsR0FBRyxDQUEyQjtZQUFBLEtBQUs7UUFBQSxDQUFVO0tBQUE7SUFDeEQ7UUFBQztRQUFRLENBQUU7WUFBQSxFQUFHLE1BQU07WUFBQSxDQUFHLE9BQU07WUFBQSxLQUFPLE9BQU07WUFBQSxPQUFRLElBQUs7WUFBQSxHQUFJLElBQUs7WUFBQSxJQUFLO1FBQVU7S0FBQTtDQUNqRjtBQWFNLHVCQUFtQixrQkFBaUIsdUJBQXNCQSxDQUFVO0FDbkJuRSxNQUFNQSxhQUF1QjtJQUNsQztRQUNFO1FBQ0E7WUFDRSxDQUFHO1lBQ0gsR0FBSztRQUFBO0tBRVQ7SUFDQTtRQUFDLE1BQVE7UUFBQTtZQUFFLEdBQUcsQ0FBYztZQUFBLEtBQUs7UUFBQSxDQUFVO0tBQUE7SUFDM0M7UUFBQyxDQUFRO1FBQUEsQ0FBRTtZQUFBLEVBQUcseUJBQTBCO1lBQUEsSUFBSztRQUFVO0tBQUE7Q0FDekQ7QUFhTSxnQkFBWSxrQkFBaUIsZUFBY0EsQ0FBVTtBQ3ZCcEQsTUFBTUEsYUFBdUI7SUFDbEM7UUFBQyxNQUFRO1FBQUE7WUFBRSxHQUFHLENBQVk7WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0lBQ3pDO1FBQUMsTUFBUTtRQUFBO1lBQUUsR0FBRyxDQUE0QjtZQUFBLEtBQUs7UUFBQSxDQUFVO0tBQUE7SUFDekQ7UUFBQyxNQUFRO1FBQUE7WUFBRSxHQUFHLENBQVk7WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0lBQ3pDO1FBQUMsTUFBUTtRQUFBO1lBQUUsR0FBRyxDQUFnQjtZQUFBLEtBQUs7UUFBQSxDQUFVO0tBQUE7SUFDN0M7UUFBQyxDQUFRO1FBQUEsQ0FBRTtZQUFBLEVBQUcsWUFBYTtZQUFBLElBQUs7UUFBVTtLQUFBO0NBQzVDO0FBYU0sa0JBQWMsa0JBQWlCLGlCQUFnQkEsQ0FBVTtBQ25CeEQsTUFBTUEsYUFBdUI7SUFDbEM7UUFBQyxNQUFRO1FBQUE7WUFBRSxHQUFHLENBQVk7WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0lBQ3pDO1FBQUMsTUFBUTtRQUFBO1lBQUUsR0FBRyxDQUEyQjtZQUFBLEtBQUs7UUFBQSxDQUFVO0tBQUE7SUFDeEQ7UUFBQyxNQUFRO1FBQUE7WUFBRSxHQUFHLENBQVk7WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0lBQ3pDO1FBQUMsTUFBUTtRQUFBO1lBQUUsR0FBRyxDQUFnQjtZQUFBLEtBQUs7UUFBQSxDQUFVO0tBQUE7SUFDN0M7UUFBQyxDQUFRO1FBQUEsQ0FBRTtZQUFBLEVBQUcsYUFBYztZQUFBLElBQUs7UUFBVTtLQUFBO0NBQzdDO0FBYU0sbUJBQWUsa0JBQWlCLGtCQUFpQkEsQ0FBVTtBQ25CMUQsTUFBTUEsYUFBdUI7SUFDbEM7UUFBQyxNQUFRO1FBQUE7WUFBRSxHQUFHLENBQVk7WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0lBQ3pDO1FBQUMsTUFBUTtRQUFBO1lBQUUsR0FBRyxDQUFZO1lBQUEsS0FBSztRQUFBLENBQVU7S0FBQTtJQUN6QztRQUFDLENBQVE7UUFBQSxDQUFFO1lBQUEsRUFBRyxpQ0FBa0M7WUFBQSxJQUFLO1FBQVU7S0FBQTtDQUNqRTtBQWFNLGNBQVUsa0JBQWlCLFlBQVdBLENBQVU7QUNqQi9DLE1BQU1BLGFBQXVCO0lBQ2xDO1FBQUMsTUFBUTtRQUFBO1lBQUUsR0FBRyxDQUE2QztZQUFBLEtBQUs7UUFBQSxDQUFVO0tBQUE7SUFDMUU7UUFBQyxNQUFRO1FBQUE7WUFBRSxHQUFHLENBQTJDO1lBQUEsS0FBSztRQUFBLENBQVU7S0FBQTtJQUN4RTtRQUFDO1FBQVEsQ0FBRTtZQUFBLE1BQU8sTUFBTTtZQUFBLE1BQVEsTUFBSztZQUFBLENBQUcsTUFBSztZQUFBLEVBQUcsSUFBSztZQUFBLEdBQUksSUFBSztZQUFBLElBQUs7UUFBVTtLQUFBO0NBQy9FO0FBYU0saUJBQWEsa0JBQWlCLGdCQUFlQSxDQUFVO0FDakJ0RCxNQUFNQSxhQUF1QjtJQUNsQztRQUNFO1FBQ0E7WUFBRSxHQUFHLGtFQUFvRTtZQUFBLEtBQUssQ0FBUztRQUFBO0tBQ3pGO0lBQ0E7UUFBQyxDQUFRO1FBQUEsQ0FBRTtZQUFBLEVBQUcsZUFBZ0I7WUFBQSxJQUFLO1FBQVU7S0FBQTtDQUMvQztBQWFNLFdBQU8sa0JBQWlCLFNBQVFBLENBQVU7QUNuQnpDLE1BQU1BLGFBQXVCO0lBQ2xDO1FBQUMsTUFBUTtRQUFBO1lBQUUsR0FBRyxDQUFZO1lBQUEsS0FBSztRQUFBLENBQVU7S0FBQTtJQUN6QztRQUFDLE1BQVE7UUFBQTtZQUFFLEdBQUcsQ0FBK0M7WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0lBQzVFO1FBQUMsTUFBUTtRQUFBO1lBQUUsR0FBRyxDQUFjO1lBQUEsS0FBSztRQUFBLENBQVU7S0FBQTtJQUMzQztRQUNFO1FBQ0E7WUFDRSxDQUFHO1lBQ0gsR0FBSztRQUFBO0tBQ1A7Q0FFSjtBQWFNLGFBQVMsa0JBQWlCLFlBQVdBLENBQVU7QUN4QjlDLE1BQU1BLGFBQXVCO0lBQ2xDO1FBQUMsTUFBUTtRQUFBO1lBQUUsR0FBRyxDQUFZO1lBQUEsS0FBSztRQUFBLENBQVU7S0FBQTtJQUN6QztRQUNFO1FBQ0E7WUFDRSxDQUFHO1lBQ0gsR0FBSztRQUFBO0tBQ1A7Q0FFSjtBQWFNLFVBQU0sa0JBQWlCLFFBQU9BLENBQVU7QUN0QnZDLE1BQU1BLGFBQXVCO0lBQ2xDO1FBQ0U7UUFDQTtZQUNFLENBQUc7WUFDSCxHQUFLO1FBQUE7S0FFVDtJQUNBO1FBQ0U7UUFDQTtZQUNFLENBQUc7WUFDSCxHQUFLO1FBQUE7S0FFVDtJQUNBO1FBQUMsQ0FBUTtRQUFBLENBQUU7WUFBQSxFQUFHLGtCQUFtQjtZQUFBLElBQUs7UUFBVTtLQUFBO0NBQ2xEO0FBYU0sY0FBVSxrQkFBaUIsWUFBV0EsQ0FBVTtBQzdCL0MsTUFBTUEsYUFBdUI7SUFDbEM7UUFBQyxNQUFRO1FBQUE7WUFBRSxHQUFHLENBQWM7WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0lBQzNDO1FBQUMsTUFBUTtRQUFBO1lBQUUsR0FBRyxDQUEwQjtZQUFBLEtBQUs7UUFBQSxDQUFVO0tBQUE7SUFDdkQ7UUFBQyxNQUFRO1FBQUE7WUFBRSxHQUFHLENBQWdEO1lBQUEsS0FBSztRQUFBLENBQVU7S0FBQTtJQUM3RTtRQUFDLE1BQVE7UUFBQTtZQUFFLEdBQUcsQ0FBK0I7WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0lBQzVEO1FBQ0U7UUFDQTtZQUNFLENBQUc7WUFDSCxHQUFLO1FBQUE7S0FDUDtDQUVKO0FBYU0sWUFBUSxrQkFBaUIsVUFBU0EsQ0FBVTtBQ3pCM0MsTUFBTUEsYUFBdUI7SUFDbEM7UUFBQyxNQUFRO1FBQUE7WUFBRSxHQUFHLENBQVk7WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0lBQ3pDO1FBQ0U7UUFDQTtZQUNFLENBQUc7WUFDSCxHQUFLO1FBQUE7S0FDUDtDQUVKO0FBYU0sbUJBQWUsa0JBQWlCLGtCQUFpQkEsQ0FBVTtBQ3RCMUQsTUFBTUEsYUFBdUI7SUFDbEM7UUFBQyxNQUFRO1FBQUE7WUFBRSxHQUFHLENBQVk7WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0lBQ3pDO1FBQ0U7UUFDQTtZQUNFLENBQUc7WUFDSCxHQUFLO1FBQUE7S0FDUDtDQUVKO0FBYU0sbUJBQWUsa0JBQWlCLGtCQUFpQkEsQ0FBVTtBQ3RCMUQsTUFBTUEsYUFBdUI7SUFDbEM7UUFDRTtRQUNBO1lBQ0UsQ0FBRztZQUNILEdBQUs7UUFBQTtLQUNQO0NBRUo7QUFhTSxZQUFRLGtCQUFpQixVQUFTQSxDQUFVO0FDckJyQyxNQUFBQSxhQUFBLENBQXVCO0lBQUM7UUFBQyxTQUFXO1FBQUEsQ0FBRTtZQUFBLE9BQVEscUJBQXNCO1lBQUEsS0FBSyxDQUFTO1FBQUEsQ0FBQztLQUFDO0NBQUE7QUFhM0YsV0FBTyxrQkFBaUIsU0FBUUEsQ0FBVTtBQ2J6QyxNQUFNQSxhQUF1QjtJQUNsQztRQUFDLE1BQVE7UUFBQTtZQUFFLEdBQUcsQ0FBVTtZQUFBLEtBQUs7UUFBQSxDQUFVO0tBQUE7SUFDdkM7UUFBQyxNQUFRO1FBQUE7WUFBRSxHQUFHLENBQVc7WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0lBQ3hDO1FBQUMsTUFBUTtRQUFBO1lBQUUsR0FBRyxDQUFZO1lBQUEsS0FBSztRQUFBLENBQVU7S0FBQTtJQUN6QztRQUFDLE1BQVE7UUFBQTtZQUFFLEdBQUcsQ0FBVztZQUFBLEtBQUs7UUFBQSxDQUFVO0tBQUE7SUFDeEM7UUFBQyxDQUFRO1FBQUEsQ0FBRTtZQUFBLEVBQUcsK0JBQWdDO1lBQUEsSUFBSztRQUFVO0tBQUE7Q0FDL0Q7QUFhTSxZQUFRLGtCQUFpQixXQUFVQSxDQUFVO0FDbkI1QyxNQUFNQSxhQUF1QjtJQUNsQztRQUNFO1FBQ0E7WUFBRSxHQUFHLHVFQUF5RTtZQUFBLEtBQUssQ0FBUztRQUFBO0tBQzlGO0lBQ0E7UUFBQyxNQUFRO1FBQUE7WUFBRSxHQUFHLENBQWE7WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0lBQzFDO1FBQUMsTUFBUTtRQUFBO1lBQUUsR0FBRyxDQUFtQjtZQUFBLEtBQUs7UUFBQSxDQUFVO0tBQUE7SUFDaEQ7UUFBQyxNQUFRO1FBQUE7WUFBRSxHQUFHLENBQW9CO1lBQUEsS0FBSztRQUFBLENBQVU7S0FBQTtJQUNqRDtRQUFDLENBQVE7UUFBQSxDQUFFO1lBQUEsRUFBRyxtQkFBb0I7WUFBQSxJQUFLO1FBQVU7S0FBQTtDQUNuRDtBQWFNLGNBQVUsa0JBQWlCLGFBQVlBLENBQVU7QUN0QmhELE1BQU1BLGFBQXVCO0lBQ2xDO1FBQUMsTUFBUTtRQUFBO1lBQUUsR0FBRyxDQUFhO1lBQUEsS0FBSztRQUFBLENBQVU7S0FBQTtJQUMxQztRQUFDLE1BQVE7UUFBQTtZQUFFLEdBQUcsQ0FBVTtZQUFBLEtBQUs7UUFBQSxDQUFVO0tBQUE7SUFDdkM7UUFBQyxNQUFRO1FBQUE7WUFBRSxHQUFHLENBQVc7WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0lBQ3hDO1FBQUMsQ0FBUTtRQUFBLENBQUU7WUFBQSxFQUFHLDRDQUE2QztZQUFBLElBQUs7UUFBVTtLQUFBO0NBQzVFO0FBYU0sV0FBTyxrQkFBaUIsU0FBUUEsQ0FBVTtBQ2xCekMsTUFBTUEsYUFBdUI7SUFDbEM7UUFBQyxNQUFRO1FBQUE7WUFBRSxHQUFHLENBQVk7WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0lBQ3pDO1FBQUMsQ0FBUTtRQUFBLENBQUU7WUFBQSxFQUFHLFdBQVk7WUFBQSxJQUFLO1FBQVU7S0FBQTtDQUMzQztBQWFNLFdBQU8sa0JBQWlCLFNBQVFBLENBQVU7QUNoQnpDLE1BQU1BLGFBQXVCO0lBQ2xDO1FBQUMsTUFBUTtRQUFBO1lBQUUsR0FBRyxDQUF5RDtZQUFBLEtBQUs7UUFBQSxDQUFVO0tBQUE7SUFDdEY7UUFBQyxDQUFRO1FBQUEsQ0FBRTtZQUFBLEVBQUcsZ0JBQWlCO1lBQUEsSUFBSztRQUFVO0tBQUE7Q0FDaEQ7QUFhTSxhQUFTLGtCQUFpQixXQUFVQSxDQUFVO0FDaEI3QyxNQUFNQSxhQUF1QjtJQUNsQztRQUFDLE1BQVE7UUFBQTtZQUFFLEdBQUcsQ0FBc0Q7WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0lBQ25GO1FBQUMsTUFBUTtRQUFBO1lBQUUsR0FBRyxDQUFhO1lBQUEsS0FBSztRQUFBLENBQVU7S0FBQTtJQUMxQztRQUFDLE1BQVE7UUFBQTtZQUFFLEdBQUcsQ0FBYTtZQUFBLEtBQUs7UUFBQSxDQUFVO0tBQUE7SUFDMUM7UUFBQyxNQUFRO1FBQUE7WUFBRSxHQUFHLENBQStEO1lBQUEsS0FBSztRQUFBLENBQVU7S0FBQTtJQUM1RjtRQUFDLENBQVE7UUFBQSxDQUFFO1lBQUEsRUFBRywrQkFBZ0M7WUFBQSxJQUFLO1FBQVU7S0FBQTtDQUMvRDtBQWFNLGtCQUFjLGtCQUFpQixpQkFBZ0JBLENBQVU7QUNuQnhELE1BQU1BLGFBQXVCO0lBQ2xDO1FBQUMsTUFBUTtRQUFBO1lBQUUsR0FBRyxDQUFnQztZQUFBLEtBQUs7UUFBQSxDQUFVO0tBQUE7SUFDN0Q7UUFBQyxNQUFRO1FBQUE7WUFBRSxHQUFHLENBQXVCO1lBQUEsS0FBSztRQUFBLENBQVU7S0FBQTtJQUNwRDtRQUFDLFFBQVU7UUFBQTtZQUFFLEVBQUk7WUFBTSxDQUFJLFFBQU07WUFBQSxDQUFHO1lBQUssR0FBSztRQUFBLENBQVU7S0FBQTtJQUN4RDtRQUFDLENBQVE7UUFBQSxDQUFFO1lBQUEsRUFBRyw4Q0FBK0M7WUFBQSxJQUFLO1FBQVU7S0FBQTtDQUM5RTtBQWFNLGNBQVUsa0JBQWlCLFlBQVdBLENBQVU7QUNsQi9DLE1BQU1BLGFBQXVCO0lBQ2xDO1FBQUMsTUFBUTtRQUFBO1lBQUUsR0FBRyxDQUFrQztZQUFBLEtBQUs7UUFBQSxDQUFVO0tBQUE7SUFDL0Q7UUFBQyxNQUFRO1FBQUE7WUFBRSxHQUFHLENBQWtDO1lBQUEsS0FBSztRQUFBLENBQVU7S0FBQTtJQUMvRDtRQUNFO1FBQ0E7WUFBRSxHQUFHLHFFQUF1RTtZQUFBLEtBQUssQ0FBUztRQUFBO0tBQzVGO0lBQ0E7UUFDRTtRQUNBO1lBQ0UsQ0FBRztZQUNILEdBQUs7UUFBQTtLQUVUO0lBQ0E7UUFBQyxNQUFRO1FBQUE7WUFBRSxHQUFHLENBQVU7WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0lBQ3ZDO1FBQUMsQ0FBUTtRQUFBLENBQUU7WUFBQSxFQUFHLGFBQWM7WUFBQSxJQUFLO1FBQVU7S0FBQTtDQUM3QztBQWFNLGlCQUFhLGtCQUFpQixnQkFBZUEsQ0FBVTtBQzdCdEQsTUFBTUEsYUFBdUI7SUFDbEM7UUFBQyxNQUFRO1FBQUE7WUFBRSxHQUFHLENBQXdCO1lBQUEsS0FBSztRQUFBLENBQVU7S0FBQTtJQUNyRDtRQUFDLE1BQVE7UUFBQTtZQUFFLEdBQUcsQ0FBeUM7WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0lBQ3RFO1FBQUMsTUFBUTtRQUFBO1lBQUUsR0FBRyxDQUEwQztZQUFBLEtBQUs7UUFBQSxDQUFVO0tBQUE7SUFDdkU7UUFBQyxNQUFRO1FBQUE7WUFBRSxHQUFHLENBQTRDO1lBQUEsS0FBSztRQUFBLENBQVU7S0FBQTtJQUN6RTtRQUNFO1FBQ0E7WUFDRSxDQUFHO1lBQ0gsR0FBSztRQUFBO0tBQ1A7Q0FFSjtBQWFNLGNBQVUsa0JBQWlCLFlBQVdBLENBQVU7QUN6Qi9DLE1BQU1BLGFBQXVCO0lBQ2xDO1FBQ0U7UUFDQTtZQUNFLENBQUc7WUFDSCxHQUFLO1FBQUE7S0FFVDtJQUNBO1FBQUMsTUFBUTtRQUFBO1lBQUUsR0FBRyxDQUFjO1lBQUEsS0FBSztRQUFBLENBQVU7S0FBQTtJQUMzQztRQUFDLE1BQVE7UUFBQTtZQUFFLEdBQUcsQ0FBZTtZQUFBLEtBQUs7UUFBQSxDQUFVO0tBQUE7SUFDNUM7UUFDRTtRQUNBO1lBQ0UsQ0FBRztZQUNILEdBQUs7UUFBQTtLQUNQO0NBRUo7QUFhTSxjQUFVLGtCQUFpQixZQUFXQSxDQUFVO0FDOUIvQyxNQUFNQSxhQUF1QjtJQUNsQztRQUNFO1FBQ0E7WUFDRSxDQUFHO1lBQ0gsR0FBSztRQUFBO0tBRVQ7SUFDQTtRQUFDLENBQVE7UUFBQSxDQUFFO1lBQUEsRUFBRyxpQkFBa0I7WUFBQSxJQUFLO1FBQVU7S0FBQTtDQUNqRDtBQWFNLGVBQVcsa0JBQWlCLGFBQVlBLENBQVU7QUN0QmpELE1BQU1BLGFBQXVCO0lBQ2xDO1FBQUMsTUFBUTtRQUFBO1lBQUUsR0FBRyxDQUE2QjtZQUFBLEtBQUs7UUFBQSxDQUFVO0tBQUE7SUFDMUQ7UUFBQyxNQUFRO1FBQUE7WUFBRSxHQUFHLENBQVk7WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0lBQ3pDO1FBQUMsTUFBUTtRQUFBO1lBQUUsR0FBRyxDQUFZO1lBQUEsS0FBSztRQUFBLENBQVU7S0FBQTtJQUN6QztRQUFDLENBQVE7UUFBQSxDQUFFO1lBQUEsRUFBRyxXQUFZO1lBQUEsSUFBSztRQUFVO0tBQUE7Q0FDM0M7QUFhTSxvQkFBZ0Isa0JBQWlCLG1CQUFrQkEsQ0FBVTtBQ2xCNUQsTUFBTUEsYUFBdUI7SUFDbEM7UUFBQyxNQUFRO1FBQUE7WUFBRSxHQUFHLENBQWtDO1lBQUEsS0FBSztRQUFBLENBQVU7S0FBQTtJQUMvRDtRQUFDLE1BQVE7UUFBQTtZQUFFLEdBQUcsQ0FBb0M7WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0lBQ2pFO1FBQUMsTUFBUTtRQUFBO1lBQUUsR0FBRyxDQUFXO1lBQUEsS0FBSztRQUFBLENBQVU7S0FBQTtJQUN4QztRQUFDLENBQVE7UUFBQSxDQUFFO1lBQUEsRUFBRyxhQUFjO1lBQUEsSUFBSztRQUFVO0tBQUE7Q0FDN0M7QUFhTSxlQUFXLGtCQUFpQixjQUFhQSxDQUFVO0FDbEJsRCxNQUFNQSxhQUF1QjtJQUNsQztRQUFDLE1BQVE7UUFBQTtZQUFFLEdBQUcsQ0FBWTtZQUFBLEtBQUs7UUFBQSxDQUFTO0tBQUE7SUFDeEM7UUFBQyxDQUFRO1FBQUEsQ0FBRTtZQUFBLEVBQUcsK0JBQWdDO1lBQUEsSUFBSztRQUFVO0tBQUE7Q0FDL0Q7QUFhTSxZQUFRLGtCQUFpQixVQUFTQSxDQUFVO0FDaEIzQyxNQUFNQSxhQUF1QjtJQUNsQztRQUFDLE1BQVE7UUFBQTtZQUFFLEdBQUcsQ0FBVztZQUFBLEtBQUs7UUFBQSxDQUFVO0tBQUE7SUFDeEM7UUFBQyxNQUFRO1FBQUE7WUFBRSxHQUFHLENBQTRDO1lBQUEsS0FBSztRQUFBLENBQVU7S0FBQTtJQUN6RTtRQUFDLENBQVE7UUFBQSxDQUFFO1lBQUEsRUFBRyxnQkFBaUI7WUFBQSxJQUFLO1FBQVU7S0FBQTtDQUNoRDtBQWFNLG1CQUFlLGtCQUFpQixpQkFBZ0JBLENBQVU7QUNqQnpELE1BQU1BLGFBQXVCO0lBQ2xDO1FBQUMsTUFBUTtRQUFBO1lBQUUsR0FBRyxDQUFpRTtZQUFBLEtBQUs7UUFBQSxDQUFVO0tBQUE7SUFDOUY7UUFBQyxNQUFRO1FBQUE7WUFBRSxHQUFHLENBQWtCO1lBQUEsS0FBSztRQUFBLENBQVU7S0FBQTtJQUMvQztRQUFDLE1BQVE7UUFBQTtZQUFFLEdBQUcsQ0FBNkQ7WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0lBQzFGO1FBQUMsQ0FBUTtRQUFBLENBQUU7WUFBQSxFQUFHLDBDQUEyQztZQUFBLElBQUs7UUFBVTtLQUFBO0NBQzFFO0FBYU0sbUJBQWUsa0JBQWlCLGtCQUFpQkEsQ0FBVTtBQ2xCMUQsTUFBTUEsYUFBdUI7SUFDbEM7UUFDRTtRQUNBO1lBQ0UsQ0FBRztZQUNILEdBQUs7UUFBQTtLQUVUO0lBQ0E7UUFBQyxNQUFRO1FBQUE7WUFBRSxHQUFHLENBQTJDO1lBQUEsS0FBSztRQUFBLENBQVU7S0FBQTtJQUN4RTtRQUFDO1FBQVEsQ0FBRTtZQUFBLEVBQUcsS0FBSztZQUFBLENBQUcsT0FBTTtZQUFBLEtBQU8sT0FBTTtZQUFBLE9BQVEsSUFBSztZQUFBLEdBQUksSUFBSztZQUFBLElBQUs7UUFBVTtLQUFBO0NBQ2hGO0FBYU0sY0FBVSxrQkFBaUIsWUFBV0EsQ0FBVTtBQ3ZCL0MsTUFBTUEsYUFBdUI7SUFDbEM7UUFBQyxNQUFRO1FBQUE7WUFBRSxHQUFHLENBQVk7WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0lBQ3pDO1FBQUMsTUFBUTtRQUFBO1lBQUUsR0FBRyxDQUFVO1lBQUEsS0FBSztRQUFBLENBQVU7S0FBQTtJQUN2QztRQUFDLE1BQVE7UUFBQTtZQUFFLEdBQUcsQ0FBYTtZQUFBLEtBQUs7UUFBQSxDQUFVO0tBQUE7SUFDMUM7UUFBQyxRQUFVO1FBQUE7WUFBRSxFQUFJO1lBQUssQ0FBSSxRQUFNO1lBQUEsQ0FBRztZQUFLLEdBQUs7UUFBQSxDQUFVO0tBQUE7SUFDdkQ7UUFDRTtRQUNBO1lBQ0UsQ0FBRztZQUNILEdBQUs7UUFBQTtLQUVUO0lBQ0E7UUFBQyxDQUFRO1FBQUEsQ0FBRTtZQUFBLEVBQUcsV0FBWTtZQUFBLElBQUs7UUFBVTtLQUFBO0NBQzNDO0FBYU0sZ0JBQVksa0JBQWlCLGNBQWFBLENBQVU7QUMxQm5ELE1BQU1BLGFBQXVCO0lBQ2xDO1FBQUMsT0FBUTtRQUFBO1lBQUUsT0FBTztZQUFNLENBQVE7WUFBTSxDQUFHO1lBQUssR0FBRyxDQUFLO1lBQUEsSUFBSSxDQUFLO1lBQUEsS0FBSztRQUFBLENBQVU7S0FBQTtJQUM5RTtRQUFDLE1BQVE7UUFBQTtZQUFFLEdBQUcsQ0FBWTtZQUFBLEtBQUs7UUFBQSxDQUFVO0tBQUE7SUFDekM7UUFBQyxDQUFRO1FBQUEsQ0FBRTtZQUFBLEVBQUcsMEJBQTJCO1lBQUEsSUFBSztRQUFVO0tBQUE7Q0FDMUQ7QUFhTSxrQkFBYyxrQkFBaUIsZ0JBQWVBLENBQVU7QUNqQnZELE1BQU1BLGFBQXVCO0lBQ2xDO1FBQ0U7UUFDQTtZQUNFLENBQUc7WUFDSCxHQUFLO1FBQUE7S0FDUDtDQUVKO0FBYU0sYUFBUyxrQkFBaUIsV0FBVUEsQ0FBVTtBQ3JCN0MsTUFBTUEsYUFBdUI7SUFDbEM7UUFDRTtRQUNBO1lBQ0UsQ0FBRztZQUNILEdBQUs7UUFBQTtLQUVUO0lBQ0E7UUFBQyxDQUFRO1FBQUEsQ0FBRTtZQUFBLEVBQUcsV0FBWTtZQUFBLElBQUs7UUFBVTtLQUFBO0NBQzNDO0FBYU0sY0FBVSxrQkFBaUIsWUFBV0EsQ0FBVTtBQ3RCL0MsTUFBTUEsYUFBdUI7SUFDbEM7UUFBQyxPQUFRO1FBQUE7WUFBRSxPQUFPO1lBQUssQ0FBUTtZQUFLLENBQUc7WUFBSyxHQUFHLENBQUs7WUFBQSxJQUFJLENBQUs7WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0lBQzVFO1FBQUMsT0FBUTtRQUFBO1lBQUUsT0FBTztZQUFLLENBQVE7WUFBSyxDQUFHO1lBQU0sR0FBRyxDQUFLO1lBQUEsSUFBSSxDQUFLO1lBQUEsS0FBSztRQUFBLENBQVU7S0FBQTtJQUM3RTtRQUFDLE9BQVE7UUFBQTtZQUFFLE9BQU87WUFBSyxDQUFRO1lBQUssQ0FBRztZQUFLLEdBQUcsQ0FBTTtZQUFBLElBQUksQ0FBSztZQUFBLEtBQUs7UUFBQSxDQUFVO0tBQUE7SUFDN0U7UUFBQyxNQUFRO1FBQUE7WUFBRSxHQUFHLENBQTZCO1lBQUEsS0FBSztRQUFBLENBQVU7S0FBQTtJQUMxRDtRQUFDLE1BQVE7UUFBQTtZQUFFLEdBQUcsQ0FBYztZQUFBLEtBQUs7UUFBQSxDQUFVO0tBQUE7SUFDM0M7UUFBQyxNQUFRO1FBQUE7WUFBRSxHQUFHLENBQTJCO1lBQUEsS0FBSztRQUFBLENBQVU7S0FBQTtJQUN4RDtRQUFDLE1BQVE7UUFBQTtZQUFFLEdBQUcsQ0FBYTtZQUFBLEtBQUs7UUFBQSxDQUFVO0tBQUE7SUFDMUM7UUFBQyxNQUFRO1FBQUE7WUFBRSxHQUFHLENBQWE7WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0lBQzFDO1FBQUMsTUFBUTtRQUFBO1lBQUUsR0FBRyxDQUFjO1lBQUEsS0FBSztRQUFBLENBQVU7S0FBQTtJQUMzQztRQUFDLE1BQVE7UUFBQTtZQUFFLEdBQUcsQ0FBWTtZQUFBLEtBQUs7UUFBQSxDQUFVO0tBQUE7SUFDekM7UUFBQyxNQUFRO1FBQUE7WUFBRSxHQUFHLENBQWM7WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0lBQzNDO1FBQUMsQ0FBUTtRQUFBLENBQUU7WUFBQSxFQUFHLFlBQWE7WUFBQSxJQUFLO1FBQVU7S0FBQTtDQUM1QztBQWFNLGFBQVMsa0JBQWlCLFlBQVdBLENBQVU7QUMxQjlDLE1BQU1BLGFBQXVCO0lBQ2xDO1FBQ0U7UUFDQTtZQUNFLENBQUc7WUFDSCxHQUFLO1FBQUE7S0FFVDtJQUNBO1FBQ0U7UUFDQTtZQUNFLENBQUc7WUFDSCxHQUFLO1FBQUE7S0FDUDtDQUVKO0FBYU0sWUFBUSxrQkFBaUIsVUFBU0EsQ0FBVTtBQzVCM0MsTUFBTUEsYUFBdUI7SUFDbEM7UUFBQyxNQUFRO1FBQUE7WUFBRSxHQUFHLENBQTJCO1lBQUEsS0FBSztRQUFBLENBQVU7S0FBQTtJQUN4RDtRQUFDLE1BQVE7UUFBQTtZQUFFLEdBQUcsQ0FBYztZQUFBLEtBQUs7UUFBQSxDQUFVO0tBQUE7SUFDM0M7UUFDRTtRQUNBO1lBQ0UsQ0FBRztZQUNILEdBQUs7UUFBQTtLQUVUO0lBQ0E7UUFBQyxNQUFRO1FBQUE7WUFBRSxHQUFHLENBQThCO1lBQUEsS0FBSztRQUFBLENBQVU7S0FBQTtJQUMzRDtRQUFDLENBQVE7UUFBQSxDQUFFO1lBQUEsRUFBRyxrQ0FBbUM7WUFBQSxJQUFLO1FBQVU7S0FBQTtDQUNsRTtBQWFNLGFBQVMsa0JBQWlCLFdBQVVBLENBQVU7QUN6QjdDLE1BQU1BLGFBQXVCO0lBQ2xDO1FBQUMsTUFBUTtRQUFBO1lBQUUsR0FBRyxDQUFxQztZQUFBLEtBQUs7UUFBQSxDQUFVO0tBQUE7SUFDbEU7UUFBQyxNQUFRO1FBQUE7WUFBRSxHQUFHLENBQVk7WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0lBQ3pDO1FBQUMsTUFBUTtRQUFBO1lBQUUsR0FBRyxDQUFxQztZQUFBLEtBQUs7UUFBQSxDQUFTO0tBQUE7SUFDakU7UUFBQyxNQUFRO1FBQUE7WUFBRSxHQUFHLENBQW9DO1lBQUEsS0FBSztRQUFBLENBQVU7S0FBQTtJQUNqRTtRQUFDLE1BQVE7UUFBQTtZQUFFLEdBQUcsQ0FBYztZQUFBLEtBQUs7UUFBQSxDQUFVO0tBQUE7SUFDM0M7UUFBQyxNQUFRO1FBQUE7WUFBRSxHQUFHLENBQXNDO1lBQUEsS0FBSztRQUFBLENBQVU7S0FBQTtJQUNuRTtRQUFDLFFBQVU7UUFBQTtZQUFFLEVBQUk7WUFBTSxDQUFJLFFBQU07WUFBQSxDQUFHO1lBQUssR0FBSztRQUFBLENBQVU7S0FBQTtJQUN4RDtRQUFDLENBQVE7UUFBQSxDQUFFO1lBQUEsRUFBRyx5QkFBMEI7WUFBQSxJQUFLO1FBQVU7S0FBQTtDQUN6RDtBQWFNLFlBQVEsa0JBQWlCLFVBQVNBLENBQVU7QUN0QjNDLE1BQU1BLGFBQXVCO0lBQ2xDO1FBQ0U7UUFDQTtZQUNFLENBQUc7WUFDSCxHQUFLO1FBQUE7S0FDUDtDQUVKO0FBYU0sY0FBVSxrQkFBaUIsWUFBV0EsQ0FBVTtBQ3JCL0MsTUFBTUEsYUFBdUI7SUFDbEM7UUFBQyxNQUFRO1FBQUE7WUFBRSxHQUFHLENBQWM7WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0lBQzNDO1FBQ0U7UUFDQTtZQUNFLENBQUc7WUFDSCxHQUFLO1FBQUE7S0FFVDtJQUNBO1FBQ0U7UUFDQTtZQUNFLENBQUc7WUFDSCxHQUFLO1FBQUE7S0FFVDtJQUNBO1FBQ0U7UUFDQTtZQUNFLENBQUc7WUFDSCxHQUFLO1FBQUE7S0FDUDtDQUVKO0FBYU0sZ0JBQVksa0JBQWlCLGNBQWFBLENBQVU7QUNwQ25ELE1BQU1BLGFBQXVCO0lBQ2xDO1FBQUMsTUFBUTtRQUFBO1lBQUUsR0FBRyxDQUFXO1lBQUEsS0FBSztRQUFBLENBQVU7S0FBQTtJQUN4QztRQUFDLE1BQVE7UUFBQTtZQUFFLEdBQUcsQ0FBWTtZQUFBLEtBQUs7UUFBQSxDQUFVO0tBQUE7SUFDekM7UUFBQyxPQUFRO1FBQUE7WUFBRSxPQUFPO1lBQU0sQ0FBUTtZQUFLLENBQUc7WUFBSyxHQUFHLENBQUs7WUFBQSxJQUFJLENBQUs7WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0lBQzdFO1FBQUMsQ0FBUTtRQUFBLENBQUU7WUFBQSxFQUFHLGFBQWM7WUFBQSxJQUFLO1FBQVU7S0FBQTtDQUM3QztBQWFNLG9CQUFnQixrQkFBaUIsbUJBQWtCQSxDQUFVO0FDbEI1RCxNQUFNQSxhQUF1QjtJQUNsQztRQUFDLE1BQVE7UUFBQTtZQUFFLEdBQUcsQ0FBa0M7WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0lBQy9EO1FBQUMsTUFBUTtRQUFBO1lBQUUsR0FBRyxDQUFtQztZQUFBLEtBQUs7UUFBQSxDQUFVO0tBQUE7SUFDaEU7UUFBQyxRQUFVO1FBQUE7WUFBRSxFQUFJO1lBQU0sQ0FBSSxPQUFLO1lBQUEsQ0FBRztZQUFLLEdBQUs7UUFBQSxDQUFVO0tBQUE7SUFDdkQ7UUFBQyxNQUFRO1FBQUE7WUFBRSxHQUFHLENBQWtDO1lBQUEsS0FBSztRQUFBLENBQVU7S0FBQTtJQUMvRDtRQUFDLE1BQVE7UUFBQTtZQUFFLEdBQUcsQ0FBb0M7WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0lBQ2pFO1FBQUMsTUFBUTtRQUFBO1lBQUUsR0FBRyxDQUFhO1lBQUEsS0FBSztRQUFBLENBQVU7S0FBQTtJQUMxQztRQUFDLENBQVE7UUFBQSxDQUFFO1lBQUEsRUFBRyxrQkFBbUI7WUFBQSxJQUFLO1FBQVU7S0FBQTtDQUNsRDtBQWFNLGlCQUFhLGtCQUFpQixnQkFBZUEsQ0FBVTtBQ3JCdEQsTUFBTUEsYUFBdUI7SUFDbEM7UUFBQyxNQUFRO1FBQUE7WUFBRSxHQUFHLENBQXNDO1lBQUEsS0FBSztRQUFBLENBQVU7S0FBQTtJQUNuRTtRQUFDLFFBQVU7UUFBQTtZQUFFLEVBQUk7WUFBTSxDQUFJLFFBQU07WUFBQSxDQUFHO1lBQUssR0FBSztRQUFBLENBQVU7S0FBQTtJQUN4RDtRQUFDLE1BQVE7UUFBQTtZQUFFLEdBQUcsQ0FBMEI7WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0lBQ3ZEO1FBQUMsQ0FBVTtRQUFBO1lBQUUsQ0FBSSxRQUFNO1lBQUEsRUFBSTtZQUFNLENBQUc7WUFBSyxDQUFLO1FBQVU7S0FBQTtDQUMxRDtBQWFNLGFBQVMsa0JBQWlCLFdBQVVBLENBQVU7QUNsQjdDLE1BQU1BLGFBQXVCO0lBQ2xDO1FBQUMsTUFBUTtRQUFBO1lBQUUsR0FBRyxDQUFtQztZQUFBLEtBQUs7UUFBQSxDQUFVO0tBQUE7SUFDaEU7UUFBQyxNQUFRO1FBQUE7WUFBRSxHQUFHLENBQXNDO1lBQUEsS0FBSztRQUFBLENBQVU7S0FBQTtJQUNuRTtRQUFDLE1BQVE7UUFBQTtZQUFFLEdBQUcsQ0FBc0M7WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0lBQ25FO1FBQUMsTUFBUTtRQUFBO1lBQUUsR0FBRyxDQUFtQztZQUFBLEtBQUs7UUFBQSxDQUFVO0tBQUE7SUFDaEU7UUFBQyxDQUFVO1FBQUE7WUFBRSxDQUFJLFFBQU07WUFBQSxFQUFJO1lBQU0sQ0FBRztZQUFLLENBQUs7UUFBVTtLQUFBO0NBQzFEO0FBYU0sWUFBUSxrQkFBaUIsVUFBU0EsQ0FBVTtBQ25CM0MsTUFBTUEsYUFBdUI7SUFDbEM7UUFBQyxNQUFRO1FBQUE7WUFBRSxHQUFHLENBQVk7WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0lBQ3pDO1FBQUMsTUFBUTtRQUFBO1lBQUUsR0FBRyxDQUFXO1lBQUEsS0FBSztRQUFBLENBQVU7S0FBQTtJQUN4QztRQUFDLENBQVE7UUFBQSxDQUFFO1lBQUEsRUFBRyxxQkFBc0I7WUFBQSxJQUFLO1FBQVU7S0FBQTtDQUNyRDtBQWFNLGlCQUFhLGtCQUFpQixnQkFBZUEsQ0FBVTtBQ2pCdEQsTUFBTUEsYUFBdUI7SUFDbEM7UUFBQyxNQUFRO1FBQUE7WUFBRSxHQUFHLENBQTJCO1lBQUEsS0FBSztRQUFBLENBQVM7S0FBQTtJQUN2RDtRQUFDLE1BQVE7UUFBQTtZQUFFLEdBQUcsQ0FBd0I7WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0lBQ3JEO1FBQUMsQ0FBUTtRQUFBLENBQUU7WUFBQSxFQUFHLHVCQUF3QjtZQUFBLElBQUs7UUFBVTtLQUFBO0NBQ3ZEO0FBYU0sY0FBVSxrQkFBaUIsWUFBV0EsQ0FBVTtBQ2pCL0MsTUFBTUEsYUFBdUI7SUFDbEM7UUFBQyxNQUFRO1FBQUE7WUFBRSxHQUFHLENBQTZCO1lBQUEsS0FBSztRQUFBLENBQVU7S0FBQTtJQUMxRDtRQUFDLE1BQVE7UUFBQTtZQUFFLEdBQUcsQ0FBOEI7WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0lBQzNEO1FBQUMsTUFBUTtRQUFBO1lBQUUsR0FBRyxDQUFhO1lBQUEsS0FBSztRQUFBLENBQVU7S0FBQTtJQUMxQztRQUNFO1FBQ0E7WUFDRSxDQUFHO1lBQ0gsR0FBSztRQUFBO0tBRVQ7SUFDQTtRQUFDLENBQVE7UUFBQSxDQUFFO1lBQUEsRUFBRyxrRUFBbUU7WUFBQSxJQUFLO1FBQVU7S0FBQTtDQUNsRztBQWFNLFVBQU0sa0JBQWlCLFFBQU9BLENBQVU7QUN6QnZDLE1BQU1BLGFBQXVCO0lBQ2xDO1FBQUMsT0FBUTtRQUFBO1lBQUUsT0FBTztZQUFNLENBQVE7WUFBTSxDQUFHO1lBQUssR0FBRyxDQUFLO1lBQUEsSUFBSSxDQUFLO1lBQUEsS0FBSztRQUFBLENBQVU7S0FBQTtJQUM5RTtRQUFDO1FBQVEsQ0FBRTtZQUFBLE1BQU8sTUFBTTtZQUFBLE1BQVEsT0FBTTtZQUFBLENBQUcsTUFBSztZQUFBLEVBQUcsSUFBSztZQUFBLEdBQUksSUFBSztZQUFBLElBQUs7UUFBVTtLQUFBO0NBQ2hGO0FBYU0sWUFBUSxrQkFBaUIsVUFBU0EsQ0FBVTtBQ2hCM0MsTUFBTUEsYUFBdUI7SUFDbEM7UUFDRTtRQUNBO1lBQUUsR0FBRyx5RUFBMkU7WUFBQSxLQUFLLENBQVM7UUFBQTtLQUNoRztJQUNBO1FBQUMsTUFBUTtRQUFBO1lBQUUsR0FBRyxDQUFXO1lBQUEsS0FBSztRQUFBLENBQVU7S0FBQTtJQUN4QztRQUFDLENBQVE7UUFBQSxDQUFFO1lBQUEsRUFBRywwQkFBMkI7WUFBQSxJQUFLO1FBQVU7S0FBQTtDQUMxRDtBQWFNLGtCQUFjLGtCQUFpQixpQkFBZ0JBLENBQVU7QUNwQnhELE1BQU1BLGFBQXVCO0lBQ2xDO1FBQ0U7UUFDQTtZQUFFLEdBQUcseUVBQTJFO1lBQUEsS0FBSyxDQUFTO1FBQUE7S0FDaEc7SUFDQTtRQUFDLE1BQVE7UUFBQTtZQUFFLEdBQUcsQ0FBYztZQUFBLEtBQUs7UUFBQSxDQUFVO0tBQUE7SUFDM0M7UUFBQyxDQUFRO1FBQUEsQ0FBRTtZQUFBLEVBQUcsMEJBQTJCO1lBQUEsSUFBSztRQUFVO0tBQUE7Q0FDMUQ7QUFhTSxrQkFBYyxrQkFBaUIsaUJBQWdCQSxDQUFVO0FDcEJ4RCxNQUFNQSxhQUF1QjtJQUNsQztRQUNFO1FBQ0E7WUFBRSxHQUFHLHlFQUEyRTtZQUFBLEtBQUssQ0FBUztRQUFBO0tBQ2hHO0lBQ0E7UUFBQyxNQUFRO1FBQUE7WUFBRSxHQUFHLENBQVU7WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0lBQ3ZDO1FBQUMsTUFBUTtRQUFBO1lBQUUsR0FBRyxDQUFpQztZQUFBLEtBQUs7UUFBQSxDQUFVO0tBQUE7SUFDOUQ7UUFBQyxDQUFRO1FBQUEsQ0FBRTtZQUFBLEVBQUcsVUFBVztZQUFBLElBQUs7UUFBVTtLQUFBO0NBQzFDO0FBYU0seUJBQXFCLGtCQUFpQix5QkFBd0JBLENBQVU7QUNyQnZFLE1BQU1BLGFBQXVCO0lBQ2xDO1FBQ0U7UUFDQTtZQUFFLEdBQUcseUVBQTJFO1lBQUEsS0FBSyxDQUFTO1FBQUE7S0FDaEc7SUFDQTtRQUFDLE1BQVE7UUFBQTtZQUFFLEdBQUcsQ0FBYztZQUFBLEtBQUs7UUFBQSxDQUFVO0tBQUE7SUFDM0M7UUFBQyxNQUFRO1FBQUE7WUFBRSxHQUFHLENBQWdCO1lBQUEsS0FBSztRQUFBLENBQVU7S0FBQTtJQUM3QztRQUFDLE1BQVE7UUFBQTtZQUFFLEdBQUcsQ0FBVztZQUFBLEtBQUs7UUFBQSxDQUFVO0tBQUE7SUFDeEM7UUFBQyxDQUFRO1FBQUEsQ0FBRTtZQUFBLEVBQUcsVUFBVztZQUFBLElBQUs7UUFBVTtLQUFBO0NBQzFDO0FBYU0seUJBQXFCLGtCQUFpQix5QkFBd0JBLENBQVU7QUN0QnZFLE1BQU1BLGFBQXVCO0lBQ2xDO1FBQ0U7UUFDQTtZQUFFLEdBQUcseUVBQTJFO1lBQUEsS0FBSyxDQUFTO1FBQUE7S0FDaEc7SUFDQTtRQUFDLE1BQVE7UUFBQTtZQUFFLEdBQUcsQ0FBVztZQUFBLEtBQUs7UUFBQSxDQUFVO0tBQUE7SUFDeEM7UUFBQyxNQUFRO1FBQUE7WUFBRSxHQUFHLENBQWdDO1lBQUEsS0FBSztRQUFBLENBQVU7S0FBQTtJQUM3RDtRQUFDLENBQVE7UUFBQSxDQUFFO1lBQUEsRUFBRyxVQUFXO1lBQUEsSUFBSztRQUFVO0tBQUE7Q0FDMUM7QUFhTSwyQkFBdUIsa0JBQWlCLDJCQUEwQkEsQ0FBVTtBQ3JCM0UsTUFBTUEsYUFBdUI7SUFDbEM7UUFDRTtRQUNBO1lBQUUsR0FBRyx5RUFBMkU7WUFBQSxLQUFLLENBQVM7UUFBQTtLQUNoRztJQUNBO1FBQUMsTUFBUTtRQUFBO1lBQUUsR0FBRyxDQUFXO1lBQUEsS0FBSztRQUFBLENBQVU7S0FBQTtJQUN4QztRQUFDLENBQVE7UUFBQSxDQUFFO1lBQUEsRUFBRyw4QkFBK0I7WUFBQSxJQUFLO1FBQVU7S0FBQTtDQUM5RDtBQWFNLDBCQUFzQixrQkFBaUIsMEJBQXlCQSxDQUFVO0FDcEJ6RSxNQUFNQSxhQUF1QjtJQUNsQztRQUNFO1FBQ0E7WUFBRSxHQUFHLHlFQUEyRTtZQUFBLEtBQUssQ0FBUztRQUFBO0tBQ2hHO0lBQ0E7UUFBQyxNQUFRO1FBQUE7WUFBRSxHQUFHLENBQWM7WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0lBQzNDO1FBQUMsTUFBUTtRQUFBO1lBQUUsR0FBRyxDQUFZO1lBQUEsS0FBSztRQUFBLENBQVU7S0FBQTtJQUN6QztRQUFDLENBQVE7UUFBQSxDQUFFO1lBQUEsRUFBRyxVQUFXO1lBQUEsSUFBSztRQUFVO0tBQUE7Q0FDMUM7QUFhTSx3QkFBb0Isa0JBQWlCLHdCQUF1QkEsQ0FBVTtBQ3JCckUsTUFBTUEsYUFBdUI7SUFDbEM7UUFDRTtRQUNBO1lBQUUsR0FBRyx5RUFBMkU7WUFBQSxLQUFLLENBQVM7UUFBQTtLQUNoRztJQUNBO1FBQUMsTUFBUTtRQUFBO1lBQUUsR0FBRyxDQUFXO1lBQUEsS0FBSztRQUFBLENBQVU7S0FBQTtJQUN4QztRQUFDLE1BQVE7UUFBQTtZQUFFLEdBQUcsQ0FBWTtZQUFBLEtBQUs7UUFBQSxDQUFVO0tBQUE7SUFDekM7UUFBQyxDQUFRO1FBQUEsQ0FBRTtZQUFBLEVBQUcsV0FBWTtZQUFBLElBQUs7UUFBVTtLQUFBO0NBQzNDO0FBYU0sa0JBQWMsa0JBQWlCLGlCQUFnQkEsQ0FBVTtBQ3JCeEQsTUFBTUEsYUFBdUI7SUFDbEM7UUFBQyxNQUFRO1FBQUE7WUFBRSxHQUFHLENBQTZDO1lBQUEsS0FBSztRQUFBLENBQVU7S0FBQTtJQUMxRTtRQUFDLENBQVU7UUFBQTtZQUFFLENBQUksUUFBTTtZQUFBLEVBQUk7WUFBTSxDQUFHO1lBQUssQ0FBSztRQUFVO0tBQUE7Q0FDMUQ7QUFhTSxzQkFBa0Isa0JBQWlCLHFCQUFvQkEsQ0FBVTtBQ2hCaEUsTUFBTUEsYUFBdUI7SUFDbEM7UUFDRTtRQUNBO1lBQUUsR0FBRyx5RUFBMkU7WUFBQSxLQUFLLENBQVM7UUFBQTtLQUNoRztJQUNBO1FBQUMsTUFBUTtRQUFBO1lBQUUsR0FBRyxDQUE0QztZQUFBLEtBQUs7UUFBQSxDQUFVO0tBQUE7SUFDekU7UUFBQyxDQUFRO1FBQUEsQ0FBRTtZQUFBLEVBQUcsZUFBZ0I7WUFBQSxJQUFLO1FBQVU7S0FBQTtDQUMvQztBQWFNLGNBQVUsa0JBQWlCLFlBQVdBLENBQVU7QUNwQi9DLE1BQU1BLGFBQXVCO0lBQ2xDO1FBQUMsT0FBUTtRQUFBO1lBQUUsT0FBTztZQUFNLENBQVE7WUFBTSxDQUFHO1lBQUssR0FBRyxDQUFLO1lBQUEsSUFBSSxDQUFLO1lBQUEsS0FBSztRQUFBLENBQVU7S0FBQTtJQUM5RTtRQUFDLE1BQVE7UUFBQTtZQUFFLEdBQUcsQ0FBYztZQUFBLEtBQUs7UUFBQSxDQUFVO0tBQUE7SUFDM0M7UUFBQyxNQUFRO1FBQUE7WUFBRSxHQUFHLENBQWM7WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0lBQzNDO1FBQUMsQ0FBUTtRQUFBLENBQUU7WUFBQSxFQUFHLFlBQWE7WUFBQSxJQUFLO1FBQVU7S0FBQTtDQUM1QztBQWFNLHdCQUFvQixrQkFBaUIsdUJBQXNCQSxDQUFVO0FDbEJwRSxNQUFNQSxhQUF1QjtJQUNsQztRQUNFO1FBQ0E7WUFDRSxDQUFHO1lBQ0gsR0FBSztRQUFBO0tBQ1A7Q0FFSjtBQWFNLHVCQUFtQixrQkFBaUIsc0JBQXFCQSxDQUFVO0FDckJsRSxNQUFNQSxhQUF1QjtJQUNsQztRQUFDO1FBQVEsQ0FBRTtZQUFBLE1BQU8sTUFBTTtZQUFBLE1BQVEsT0FBTTtZQUFBLENBQUcsTUFBSztZQUFBLEVBQUcsSUFBSztZQUFBLEdBQUksSUFBSztZQUFBLElBQUs7UUFBVTtLQUFBO0NBQ2hGO0FBYU0sMEJBQXNCLGtCQUFpQix5QkFBd0JBLENBQVU7QUNmeEUsTUFBTUEsYUFBdUI7SUFDbEM7UUFDRTtRQUNBO1lBQ0UsQ0FBRztZQUNILEdBQUs7UUFBQTtLQUVUO0lBQ0E7UUFDRTtRQUNBO1lBQ0UsQ0FBRztZQUNILEdBQUs7UUFBQTtLQUVUO0lBQ0E7UUFBQyxNQUFRO1FBQUE7WUFBRSxHQUFHLENBQWtCO1lBQUEsS0FBSztRQUFBLENBQVU7S0FBQTtJQUMvQztRQUFDLE1BQVE7UUFBQTtZQUFFLEdBQUcsQ0FBc0M7WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0lBQ25FO1FBQ0U7UUFDQTtZQUNFLENBQUc7WUFDSCxHQUFLO1FBQUE7S0FFVDtJQUNBO1FBQUMsQ0FBUTtRQUFBLENBQUU7WUFBQSxFQUFHLHdDQUF5QztZQUFBLElBQUs7UUFBVTtLQUFBO0NBQ3hFO0FBYU0sY0FBVSxrQkFBaUIsWUFBV0EsQ0FBVTtBQ3RDL0MsTUFBTUEsYUFBdUI7SUFDbEM7UUFBQztRQUFRLENBQUU7WUFBQSxNQUFPLE1BQU07WUFBQSxNQUFRLE9BQU07WUFBQSxDQUFHLE1BQUs7WUFBQSxFQUFHLElBQUs7WUFBQSxHQUFJLElBQUs7WUFBQSxJQUFLO1FBQVU7S0FBQTtDQUNoRjtBQWFNLHdCQUFvQixrQkFBaUIsdUJBQXNCQSxDQUFVO0FDZnBFLE1BQU1BLGFBQXVCO0lBQ2xDO1FBQUMsUUFBVTtRQUFBO1lBQUUsRUFBSTtZQUFNLENBQUksUUFBTTtZQUFBLENBQUc7WUFBSyxHQUFLO1FBQUEsQ0FBVTtLQUFBO0lBQ3hEO1FBQUMsTUFBUTtRQUFBO1lBQUUsR0FBRyxDQUFjO1lBQUEsS0FBSztRQUFBLENBQVU7S0FBQTtJQUMzQztRQUFDLENBQVE7UUFBQSxDQUFFO1lBQUEsRUFBRyw0Q0FBNkM7WUFBQSxJQUFLO1FBQVU7S0FBQTtDQUM1RTtBQWFNLGNBQVUsa0JBQWlCLGFBQVlBLENBQVU7QUNqQmhELE1BQU1BLGFBQXVCO0lBQ2xDO1FBQUMsTUFBUTtRQUFBO1lBQUUsR0FBRyxDQUFrQjtZQUFBLEtBQUs7UUFBQSxDQUFVO0tBQUE7SUFDL0M7UUFBQyxDQUFRO1FBQUEsQ0FBRTtZQUFBLEVBQUcseURBQTBEO1lBQUEsSUFBSztRQUFVO0tBQUE7Q0FDekY7QUFhTSxZQUFRLGtCQUFpQixXQUFVQSxDQUFVO0FDaEI1QyxNQUFNQSxhQUF1QjtJQUNsQztRQUFDLE1BQVE7UUFBQTtZQUFFLEdBQUcsQ0FBYztZQUFBLEtBQUs7UUFBQSxDQUFVO0tBQUE7SUFDM0M7UUFBQyxDQUFRO1FBQUEsQ0FBRTtZQUFBLEVBQUcsNENBQTZDO1lBQUEsSUFBSztRQUFVO0tBQUE7Q0FDNUU7QUFhTSxXQUFPLGtCQUFpQixTQUFRQSxDQUFVO0FDaEJ6QyxNQUFNQSxhQUF1QjtJQUNsQztRQUFDLE1BQVE7UUFBQTtZQUFFLEdBQUcsQ0FBWTtZQUFBLEtBQUs7UUFBQSxDQUFVO0tBQUE7SUFDekM7UUFBQyxNQUFRO1FBQUE7WUFBRSxHQUFHLENBQThCO1lBQUEsS0FBSztRQUFBLENBQVU7S0FBQTtJQUMzRDtRQUFDLE1BQVE7UUFBQTtZQUFFLEdBQUcsQ0FBZ0I7WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0lBQzdDO1FBQUMsTUFBUTtRQUFBO1lBQUUsR0FBRyxDQUFnQztZQUFBLEtBQUs7UUFBQSxDQUFVO0tBQUE7SUFDN0Q7UUFBQyxDQUFVO1FBQUE7WUFBRSxDQUFJLFFBQU07WUFBQSxFQUFJO1lBQU0sQ0FBRztZQUFLLENBQUs7UUFBVTtLQUFBO0NBQzFEO0FBYU0sb0JBQWdCLGtCQUFpQixvQkFBbUJBLENBQVU7QUNuQjdELE1BQU1BLGFBQXVCO0lBQ2xDO1FBQUMsTUFBUTtRQUFBO1lBQUUsR0FBRyxDQUFzRDtZQUFBLEtBQUs7UUFBQSxDQUFVO0tBQUE7SUFDbkY7UUFBQyxNQUFRO1FBQUE7WUFBRSxHQUFHLENBQVk7WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0lBQ3pDO1FBQUMsTUFBUTtRQUFBO1lBQUUsR0FBRyxDQUF1RDtZQUFBLEtBQUs7UUFBQSxDQUFVO0tBQUE7SUFDcEY7UUFBQyxDQUFRO1FBQUEsQ0FBRTtZQUFBLEVBQUcsYUFBYztZQUFBLElBQUs7UUFBVTtLQUFBO0NBQzdDO0FBYU0saUJBQWEsa0JBQWlCLGdCQUFlQSxDQUFVO0FDbEJ0RCxNQUFNQSxhQUF1QjtJQUNsQztRQUFDLE1BQVE7UUFBQTtZQUFFLEdBQUcsQ0FBbUU7WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0lBQ2hHO1FBQUMsTUFBUTtRQUFBO1lBQUUsR0FBRyxDQUFhO1lBQUEsS0FBSztRQUFBLENBQVU7S0FBQTtJQUMxQztRQUFDLE1BQVE7UUFBQTtZQUFFLEdBQUcsQ0FBaUM7WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0lBQzlEO1FBQUMsTUFBUTtRQUFBO1lBQUUsR0FBRyxDQUFpRTtZQUFBLEtBQUs7UUFBQSxDQUFVO0tBQUE7SUFDOUY7UUFBQyxNQUFRO1FBQUE7WUFBRSxHQUFHLENBQWdDO1lBQUEsS0FBSztRQUFBLENBQVU7S0FBQTtJQUM3RDtRQUFDLE1BQVE7UUFBQTtZQUFFLEdBQUcsQ0FBYztZQUFBLEtBQUs7UUFBQSxDQUFVO0tBQUE7SUFDM0M7UUFBQyxDQUFRO1FBQUEsQ0FBRTtZQUFBLEVBQUcsYUFBYztZQUFBLElBQUs7UUFBVTtLQUFBO0NBQzdDO0FBYU0sbUJBQWUsa0JBQWlCLG1CQUFrQkEsQ0FBVTtBQ3JCM0QsTUFBTUEsYUFBdUI7SUFDbEM7UUFBQyxNQUFRO1FBQUE7WUFBRSxHQUFHLENBQXNEO1lBQUEsS0FBSztRQUFBLENBQVU7S0FBQTtJQUNuRjtRQUFDLE1BQVE7UUFBQTtZQUFFLEdBQUcsQ0FBYztZQUFBLEtBQUs7UUFBQSxDQUFVO0tBQUE7SUFDM0M7UUFBQyxNQUFRO1FBQUE7WUFBRSxHQUFHLENBQXVEO1lBQUEsS0FBSztRQUFBLENBQVU7S0FBQTtJQUNwRjtRQUFDLENBQVE7UUFBQSxDQUFFO1lBQUEsRUFBRyxZQUFhO1lBQUEsSUFBSztRQUFVO0tBQUE7Q0FDNUM7QUFhTSxnQkFBWSxrQkFBaUIsZUFBY0EsQ0FBVTtBQ2xCcEQsTUFBTUEsYUFBdUI7SUFDbEM7UUFDRTtRQUNBO1lBQUUsR0FBRyx3RUFBMEU7WUFBQSxLQUFLLENBQVM7UUFBQTtLQUMvRjtJQUNBO1FBQUMsTUFBUTtRQUFBO1lBQUUsR0FBRyxDQUFZO1lBQUEsS0FBSztRQUFBLENBQVU7S0FBQTtJQUN6QztRQUFDLENBQVE7UUFBQSxDQUFFO1lBQUEsRUFBRyxVQUFXO1lBQUEsSUFBSztRQUFVO0tBQUE7Q0FDMUM7QUFhTSxtQkFBZSxrQkFBaUIsaUJBQWdCQSxDQUFVO0FDcEJ6RCxNQUFNQSxhQUF1QjtJQUNsQztRQUFDLE1BQVE7UUFBQTtZQUFFLEdBQUcsQ0FBWTtZQUFBLEtBQUs7UUFBQSxDQUFVO0tBQUE7SUFDekM7UUFBQyxNQUFRO1FBQUE7WUFBRSxHQUFHLENBQXFCO1lBQUEsS0FBSztRQUFBLENBQVU7S0FBQTtJQUNsRDtRQUFDLE1BQVE7UUFBQTtZQUFFLEdBQUcsQ0FBc0I7WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0lBQ25EO1FBQ0U7UUFDQTtZQUFFLEdBQUcseUVBQTJFO1lBQUEsS0FBSyxDQUFTO1FBQUE7S0FBQTtDQUVsRztBQWFNLFlBQVEsa0JBQWlCLFVBQVNBLENBQVU7QUNyQjNDLE1BQU1BLGFBQXVCO0lBQ2xDO1FBQUMsTUFBUTtRQUFBO1lBQUUsR0FBRyxDQUFlO1lBQUEsS0FBSztRQUFBLENBQVU7S0FBQTtJQUM1QztRQUFDLE1BQVE7UUFBQTtZQUFFLEdBQUcsQ0FBVztZQUFBLEtBQUs7UUFBQSxDQUFVO0tBQUE7SUFDeEM7UUFBQyxNQUFRO1FBQUE7WUFBRSxHQUFHLENBQWM7WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0lBQzNDO1FBQUMsTUFBUTtRQUFBO1lBQUUsR0FBRyxDQUFjO1lBQUEsS0FBSztRQUFBLENBQVU7S0FBQTtJQUMzQztRQUFDLENBQVE7UUFBQSxDQUFFO1lBQUEsRUFBRyxhQUFjO1lBQUEsSUFBSztRQUFVO0tBQUE7Q0FDN0M7QUFhTSx1QkFBbUIsa0JBQWlCLHNCQUFxQkEsQ0FBVTtBQ25CbEUsTUFBTUEsYUFBdUI7SUFDbEM7UUFBQyxNQUFRO1FBQUE7WUFBRSxHQUFHLENBQWdCO1lBQUEsS0FBSztRQUFBLENBQVU7S0FBQTtJQUM3QztRQUFDLE1BQVE7UUFBQTtZQUFFLEdBQUcsQ0FBNEI7WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0lBQ3pEO1FBQUMsTUFBUTtRQUFBO1lBQUUsR0FBRyxDQUFrQjtZQUFBLEtBQUs7UUFBQSxDQUFVO0tBQUE7SUFDL0M7UUFBQyxDQUFRO1FBQUEsQ0FBRTtZQUFBLEVBQUcsMkJBQTRCO1lBQUEsSUFBSztRQUFVO0tBQUE7Q0FDM0Q7QUFhTSxjQUFVLGtCQUFpQixhQUFZQSxDQUFVO0FDbEJoRCxNQUFNQSxhQUF1QjtJQUNsQztRQUFDLE1BQVE7UUFBQTtZQUFFLEdBQUcsQ0FBaUI7WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0lBQzlDO1FBQUMsTUFBUTtRQUFBO1lBQUUsR0FBRyxDQUE2QjtZQUFBLEtBQUs7UUFBQSxDQUFVO0tBQUE7SUFDMUQ7UUFBQyxNQUFRO1FBQUE7WUFBRSxHQUFHLENBQWlCO1lBQUEsS0FBSztRQUFBLENBQVU7S0FBQTtJQUM5QztRQUFDLENBQVE7UUFBQSxDQUFFO1lBQUEsRUFBRywyQkFBNEI7WUFBQSxJQUFLO1FBQVU7S0FBQTtDQUMzRDtBQWFNLGFBQVMsa0JBQWlCLFdBQVVBLENBQVU7QUNsQjdDLE1BQU1BLGFBQXVCO0lBQ2xDO1FBQUMsTUFBUTtRQUFBO1lBQUUsR0FBRyxDQUFpQjtZQUFBLEtBQUs7UUFBQSxDQUFVO0tBQUE7SUFDOUM7UUFBQyxNQUFRO1FBQUE7WUFBRSxHQUFHLENBQTZCO1lBQUEsS0FBSztRQUFBLENBQVU7S0FBQTtJQUMxRDtRQUFDLE1BQVE7UUFBQTtZQUFFLEdBQUcsQ0FBaUI7WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0lBQzlDO1FBQUMsTUFBUTtRQUFBO1lBQUUsR0FBRyxDQUE0QjtZQUFBLEtBQUs7UUFBQSxDQUFVO0tBQUE7SUFDekQ7UUFBQyxDQUFRO1FBQUEsQ0FBRTtZQUFBLEVBQUcsYUFBYztZQUFBLElBQUs7UUFBVTtLQUFBO0NBQzdDO0FBYU0sY0FBVSxrQkFBaUIsYUFBWUEsQ0FBVTtBQ25CaEQsTUFBTUEsYUFBdUI7SUFDbEM7UUFBQyxNQUFRO1FBQUE7WUFBRSxHQUFHLENBQXdDO1lBQUEsS0FBSztRQUFBLENBQVU7S0FBQTtJQUNyRTtRQUFDLE1BQVE7UUFBQTtZQUFFLEdBQUcsQ0FBdUI7WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0lBQ3BEO1FBQUMsTUFBUTtRQUFBO1lBQUUsR0FBRyxDQUF3QjtZQUFBLEtBQUs7UUFBQSxDQUFVO0tBQUE7SUFDckQ7UUFBQyxNQUFRO1FBQUE7WUFBRSxHQUFHLENBQXdDO1lBQUEsS0FBSztRQUFBLENBQVU7S0FBQTtJQUNyRTtRQUFDLE1BQVE7UUFBQTtZQUFFLEdBQUcsQ0FBdUI7WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0lBQ3BEO1FBQUMsTUFBUTtRQUFBO1lBQUUsR0FBRyxDQUF1QjtZQUFBLEtBQUs7UUFBQSxDQUFVO0tBQUE7SUFDcEQ7UUFBQyxNQUFRO1FBQUE7WUFBRSxHQUFHLENBQWdCO1lBQUEsS0FBSztRQUFBLENBQVU7S0FBQTtJQUM3QztRQUFDLE1BQVE7UUFBQTtZQUFFLEdBQUcsQ0FBNEI7WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0lBQ3pEO1FBQUM7UUFBUSxDQUFFO1lBQUEsRUFBRyxLQUFLO1lBQUEsQ0FBRyxPQUFNO1lBQUEsS0FBTyxNQUFLO1lBQUEsT0FBUSxJQUFLO1lBQUEsR0FBSSxJQUFLO1lBQUEsSUFBSztRQUFVO0tBQUE7Q0FDL0U7QUFhTSxpQkFBYSxrQkFBaUIsZ0JBQWVBLENBQVU7QUN2QnRELE1BQU1BLGFBQXVCO0lBQ2xDO1FBQUMsTUFBUTtRQUFBO1lBQUUsR0FBRyxDQUF1QjtZQUFBLEtBQUs7UUFBQSxDQUFVO0tBQUE7SUFDcEQ7UUFBQyxNQUFRO1FBQUE7WUFBRSxHQUFHLENBQXdCO1lBQUEsS0FBSztRQUFBLENBQVU7S0FBQTtJQUNyRDtRQUFDLE1BQVE7UUFBQTtZQUFFLEdBQUcsQ0FBdUI7WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0lBQ3BEO1FBQUMsTUFBUTtRQUFBO1lBQUUsR0FBRyxDQUF1QjtZQUFBLEtBQUs7UUFBQSxDQUFVO0tBQUE7SUFDcEQ7UUFBQyxNQUFRO1FBQUE7WUFBRSxHQUFHLENBQWdCO1lBQUEsS0FBSztRQUFBLENBQVU7S0FBQTtJQUM3QztRQUFDLE1BQVE7UUFBQTtZQUFFLEdBQUcsQ0FBMkI7WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0lBQ3hEO1FBQUM7UUFBUSxDQUFFO1lBQUEsRUFBRyxLQUFLO1lBQUEsQ0FBRyxPQUFNO1lBQUEsS0FBTyxNQUFLO1lBQUEsT0FBUSxJQUFLO1lBQUEsR0FBSSxJQUFLO1lBQUEsSUFBSztRQUFVO0tBQUE7Q0FDL0U7QUFhTSxjQUFVLGtCQUFpQixZQUFXQSxDQUFVO0FDckIvQyxNQUFNQSxhQUF1QjtJQUNsQztRQUFDLE1BQVE7UUFBQTtZQUFFLEdBQUcsQ0FBa0I7WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0lBQy9DO1FBQUMsTUFBUTtRQUFBO1lBQUUsR0FBRyxDQUE2QjtZQUFBLEtBQUs7UUFBQSxDQUFVO0tBQUE7SUFDMUQ7UUFBQyxDQUFRO1FBQUEsQ0FBRTtZQUFBLEVBQUcsZ0JBQWlCO1lBQUEsSUFBSztRQUFVO0tBQUE7Q0FDaEQ7QUFhTSxlQUFXLGtCQUFpQixjQUFhQSxDQUFVO0FDakJsRCxNQUFNQSxhQUF1QjtJQUNsQztRQUFDLE1BQVE7UUFBQTtZQUFFLEdBQUcsQ0FBNkI7WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0lBQzFEO1FBQUMsQ0FBUTtRQUFBLENBQUU7WUFBQSxFQUFHLGdCQUFpQjtZQUFBLElBQUs7UUFBVTtLQUFBO0NBQ2hEO0FBYU0sWUFBUSxrQkFBaUIsVUFBU0EsQ0FBVTtBQ2hCM0MsTUFBTUEsYUFBdUI7SUFDbEM7UUFBQyxTQUFXO1FBQUE7WUFBRSxRQUFRLENBQXlCO1lBQUEsS0FBSztRQUFBLENBQVU7S0FBQTtJQUM5RDtRQUFDLENBQVc7UUFBQSxDQUFFO1lBQUEsT0FBUSx5QkFBMEI7WUFBQSxJQUFLO1FBQVU7S0FBQTtDQUNqRTtBQWFNLGFBQVMsa0JBQWlCLFdBQVVBLENBQVU7QUNoQjdDLE1BQU1BLGFBQXVCO0lBQ2xDO1FBQ0U7UUFDQTtZQUFFLEdBQUcscUVBQXVFO1lBQUEsS0FBSyxDQUFTO1FBQUE7S0FDNUY7SUFDQTtRQUFDLE1BQVE7UUFBQTtZQUFFLEdBQUcsQ0FBbUI7WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0lBQ2hEO1FBQUMsTUFBUTtRQUFBO1lBQUUsR0FBRyxDQUFzQztZQUFBLEtBQUs7UUFBQSxDQUFVO0tBQUE7SUFDbkU7UUFBQyxNQUFRO1FBQUE7WUFBRSxHQUFHLENBQXdCO1lBQUEsS0FBSztRQUFBLENBQVU7S0FBQTtJQUNyRDtRQUNFO1FBQ0E7WUFDRSxDQUFHO1lBQ0gsR0FBSztRQUFBO0tBQ1A7Q0FFSjtBQWFNLGFBQVMsa0JBQWlCLFdBQVVBLENBQVU7QUM1QjdDLE1BQU1BLGFBQXVCO0lBQ2xDO1FBQ0U7UUFDQTtZQUNFLENBQUc7WUFDSCxHQUFLO1FBQUE7S0FFVDtJQUNBO1FBQ0U7UUFDQTtZQUNFLENBQUc7WUFDSCxHQUFLO1FBQUE7S0FFVDtJQUNBO1FBQUMsTUFBUTtRQUFBO1lBQUUsR0FBRyxDQUEwQztZQUFBLEtBQUs7UUFBQSxDQUFVO0tBQUE7SUFDdkU7UUFBQyxDQUFRO1FBQUEsQ0FBRTtZQUFBLEVBQUcsMENBQTJDO1lBQUEsSUFBSztRQUFTO0tBQUE7Q0FDekU7QUFhTSxhQUFTLGtCQUFpQixXQUFVQSxDQUFVO0FDOUI3QyxNQUFNQSxhQUF1QjtJQUNsQztRQUFDLFVBQVk7UUFBQTtZQUFFLFFBQVEsQ0FBMEI7WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0lBQ2hFO1FBQUM7UUFBUSxDQUFFO1lBQUEsSUFBSSxDQUFPO1lBQUEsSUFBSSxDQUFPO1lBQUEsR0FBSSxPQUFRO1lBQUEsR0FBSSxLQUFNO1lBQUEsS0FBSztRQUFBLENBQVU7S0FBQTtJQUN0RTtRQUFDO1FBQVEsQ0FBRTtZQUFBLElBQUksQ0FBTTtZQUFBLElBQUksQ0FBUTtZQUFBLEdBQUksT0FBUTtZQUFBLEdBQUksS0FBTTtZQUFBLEtBQUs7UUFBQSxDQUFVO0tBQUE7SUFDdEU7UUFBQyxDQUFRO1FBQUEsQ0FBRTtZQUFBLEVBQUcsOEJBQStCO1lBQUEsSUFBSztRQUFVO0tBQUE7Q0FDOUQ7QUFhTSxtQkFBZSxrQkFBaUIsa0JBQWlCQSxDQUFVO0FDbEIxRCxNQUFNQSxhQUF1QjtJQUNsQztRQUFDLE1BQVE7UUFBQTtZQUFFLEdBQUcsQ0FBVztZQUFBLEtBQUs7UUFBQSxDQUFVO0tBQUE7SUFDeEM7UUFBQyxNQUFRO1FBQUE7WUFBRSxHQUFHLENBQWM7WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0lBQzNDO1FBQUMsTUFBUTtRQUFBO1lBQUUsR0FBRyxDQUFlO1lBQUEsS0FBSztRQUFBLENBQVU7S0FBQTtJQUM1QztRQUFDLE1BQVE7UUFBQTtZQUFFLEdBQUcsQ0FBVztZQUFBLEtBQUs7UUFBQSxDQUFVO0tBQUE7SUFDeEM7UUFBQyxNQUFRO1FBQUE7WUFBRSxHQUFHLENBQWE7WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0lBQzFDO1FBQUMsTUFBUTtRQUFBO1lBQUUsR0FBRyxDQUFZO1lBQUEsS0FBSztRQUFBLENBQVU7S0FBQTtJQUN6QztRQUFDLENBQVE7UUFBQSxDQUFFO1lBQUEsRUFBRyxnRUFBaUU7WUFBQSxJQUFLO1FBQVU7S0FBQTtDQUNoRztBQWFNLG9CQUFnQixrQkFBaUIsbUJBQWtCQSxDQUFVO0FDckI1RCxNQUFNQSxhQUF1QjtJQUNsQztRQUNFO1FBQ0E7WUFDRSxDQUFHO1lBQ0gsR0FBSztRQUFBO0tBRVQ7SUFDQTtRQUFDLE1BQVE7UUFBQTtZQUFFLEdBQUcsQ0FBd0M7WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0lBQ3JFO1FBQ0U7UUFDQTtZQUNFLENBQUc7WUFDSCxHQUFLO1FBQUE7S0FDUDtDQUVKO0FBYU0sZUFBVyxrQkFBaUIsY0FBYUEsQ0FBVTtBQzdCbEQsTUFBTUEsYUFBdUI7SUFDbEM7UUFBQyxNQUFRO1FBQUE7WUFBRSxHQUFHLENBQWlCO1lBQUEsS0FBSztRQUFBLENBQVU7S0FBQTtJQUM5QztRQUFDLE1BQVE7UUFBQTtZQUFFLEdBQUcsQ0FBaUI7WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0lBQzlDO1FBQUMsTUFBUTtRQUFBO1lBQUUsR0FBRyxDQUFxRDtZQUFBLEtBQUs7UUFBQSxDQUFTO0tBQUE7SUFDakY7UUFBQyxNQUFRO1FBQUE7WUFBRSxHQUFHLENBQVk7WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0lBQ3pDO1FBQUMsQ0FBVTtRQUFBO1lBQUUsQ0FBSSxRQUFNO1lBQUEsRUFBSTtZQUFNLENBQUc7WUFBSyxDQUFLO1FBQVU7S0FBQTtDQUMxRDtBQWFNLG1CQUFlLGtCQUFpQixtQkFBa0JBLENBQVU7QUNuQjNELE1BQU1BLGFBQXVCO0lBQ2xDO1FBQUMsTUFBUTtRQUFBO1lBQUUsR0FBRyxDQUE0QjtZQUFBLEtBQUs7UUFBQSxDQUFVO0tBQUE7SUFDekQ7UUFBQyxNQUFRO1FBQUE7WUFBRSxHQUFHLENBQWlCO1lBQUEsS0FBSztRQUFBLENBQVU7S0FBQTtJQUM5QztRQUFDLENBQVE7UUFBQSxDQUFFO1lBQUEsRUFBRywyREFBNEQ7WUFBQSxJQUFLO1FBQVU7S0FBQTtDQUMzRjtBQWFNLHNCQUFrQixrQkFBaUIsc0JBQXFCQSxDQUFVO0FDakJqRSxNQUFNQSxhQUF1QjtJQUNsQztRQUFDLE1BQVE7UUFBQTtZQUFFLEdBQUcsQ0FBcUQ7WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0lBQ2xGO1FBQUMsQ0FBUTtRQUFBLENBQUU7WUFBQSxFQUFHLFdBQVk7WUFBQSxJQUFLO1FBQVU7S0FBQTtDQUMzQztBQWFNLGdCQUFZLGtCQUFpQixlQUFjQSxDQUFVO0FDaEJwRCxNQUFNQSxhQUF1QjtJQUNsQztRQUFDLE1BQVE7UUFBQTtZQUFFLEdBQUcsQ0FBMkI7WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0lBQ3hEO1FBQUMsTUFBUTtRQUFBO1lBQUUsR0FBRyxDQUFnQjtZQUFBLEtBQUs7UUFBQSxDQUFVO0tBQUE7SUFDN0M7UUFBQyxDQUFRO1FBQUEsQ0FBRTtZQUFBLEVBQUcsNERBQTZEO1lBQUEsSUFBSztRQUFVO0tBQUE7Q0FDNUY7QUFhTSxxQkFBaUIsa0JBQWlCLHFCQUFvQkEsQ0FBVTtBQ2pCL0QsTUFBTUEsYUFBdUI7SUFDbEM7UUFBQyxNQUFRO1FBQUE7WUFBRSxHQUFHLENBQXFEO1lBQUEsS0FBSztRQUFBLENBQVU7S0FBQTtJQUNsRjtRQUFDLENBQVE7UUFBQSxDQUFFO1lBQUEsRUFBRyxhQUFjO1lBQUEsSUFBSztRQUFVO0tBQUE7Q0FDN0M7QUFhTSxlQUFXLGtCQUFpQixjQUFhQSxDQUFVO0FDaEJsRCxNQUFNQSxhQUF1QjtJQUNsQztRQUFDLFFBQVU7UUFBQTtZQUFFLEVBQUk7WUFBSyxDQUFJLFFBQU07WUFBQSxDQUFHO1lBQUssR0FBSztRQUFBLENBQVU7S0FBQTtJQUN2RDtRQUFDLE1BQVE7UUFBQTtZQUFFLEdBQUcsQ0FBK0I7WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0lBQzVEO1FBQUMsTUFBUTtRQUFBO1lBQUUsR0FBRyxDQUFxQztZQUFBLEtBQUs7UUFBQSxDQUFVO0tBQUE7SUFDbEU7UUFBQyxNQUFRO1FBQUE7WUFBRSxHQUFHLENBQWM7WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0lBQzNDO1FBQUMsTUFBUTtRQUFBO1lBQUUsR0FBRyxDQUFrQztZQUFBLEtBQUs7UUFBQSxDQUFVO0tBQUE7SUFDL0Q7UUFBQyxNQUFRO1FBQUE7WUFBRSxHQUFHLENBQWM7WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0lBQzNDO1FBQUMsQ0FBVTtRQUFBO1lBQUUsQ0FBSSxRQUFNO1lBQUEsRUFBSTtZQUFLLENBQUc7WUFBSyxDQUFLO1FBQVU7S0FBQTtDQUN6RDtBQWFNLGVBQVcsa0JBQWlCLGNBQWFBLENBQVU7QUNyQmxELE1BQU1BLGFBQXVCO0lBQ2xDO1FBQUMsUUFBVTtRQUFBO1lBQUUsRUFBSTtZQUFLLENBQUksUUFBTTtZQUFBLENBQUc7WUFBSyxHQUFLO1FBQUEsQ0FBVTtLQUFBO0lBQ3ZEO1FBQUMsTUFBUTtRQUFBO1lBQUUsR0FBRyxDQUF3RDtZQUFBLEtBQUs7UUFBQSxDQUFTO0tBQUE7SUFDcEY7UUFBQyxDQUFVO1FBQUE7WUFBRSxDQUFJLFFBQU07WUFBQSxFQUFJO1lBQUssQ0FBRztZQUFLLENBQUs7UUFBVTtLQUFBO0NBQ3pEO0FBYU0sWUFBUSxrQkFBaUIsVUFBU0EsQ0FBVTtBQ2pCM0MsTUFBTUEsYUFBdUI7SUFDbEM7UUFBQyxPQUFRO1FBQUE7WUFBRSxPQUFPO1lBQU0sQ0FBUTtZQUFLLENBQUc7WUFBSyxHQUFHLENBQU07WUFBQSxJQUFJLENBQUs7WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0lBQzlFO1FBQUMsTUFBUTtRQUFBO1lBQUUsR0FBRyxDQUFjO1lBQUEsS0FBSztRQUFBLENBQVU7S0FBQTtJQUMzQztRQUFDLE1BQVE7UUFBQTtZQUFFLEdBQUcsQ0FBZ0I7WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0lBQzdDO1FBQUMsTUFBUTtRQUFBO1lBQUUsR0FBRyxDQUFZO1lBQUEsS0FBSztRQUFBLENBQVU7S0FBQTtJQUN6QztRQUFDLE1BQVE7UUFBQTtZQUFFLEdBQUcsQ0FBZ0M7WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0lBQzdEO1FBQUMsQ0FBUTtRQUFBLENBQUU7WUFBQSxFQUFHLGdDQUFpQztZQUFBLElBQUs7UUFBVTtLQUFBO0NBQ2hFO0FBYU0sYUFBUyxrQkFBaUIsV0FBVUEsQ0FBVTtBQ3BCN0MsTUFBTUEsYUFBdUI7SUFDbEM7UUFBQyxPQUFRO1FBQUE7WUFBRSxPQUFPO1lBQU0sQ0FBUTtZQUFNLENBQUc7WUFBSyxHQUFHLENBQUs7WUFBQSxJQUFJLENBQUs7WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0lBQzlFO1FBQUMsQ0FBUTtRQUFBLENBQUU7WUFBQSxFQUFHLFdBQVk7WUFBQSxJQUFLO1FBQVU7S0FBQTtDQUMzQztBQWFNLFlBQVEsa0JBQWlCLFdBQVVBLENBQVU7QUNoQjVDLE1BQU1BLGFBQXVCO0lBQ2xDO1FBQUMsT0FBUTtRQUFBO1lBQUUsT0FBTztZQUFNLENBQVE7WUFBTSxDQUFHO1lBQUssR0FBRyxDQUFLO1lBQUEsSUFBSSxDQUFLO1lBQUEsS0FBSztRQUFBLENBQVU7S0FBQTtJQUM5RTtRQUFDLE1BQVE7UUFBQTtZQUFFLEdBQUcsQ0FBVztZQUFBLEtBQUs7UUFBQSxDQUFVO0tBQUE7SUFDeEM7UUFBQyxDQUFRO1FBQUEsQ0FBRTtZQUFBLEVBQUcsV0FBWTtZQUFBLElBQUs7UUFBVTtLQUFBO0NBQzNDO0FBYU0sWUFBUSxrQkFBaUIsV0FBVUEsQ0FBVTtBQ2pCNUMsTUFBTUEsYUFBdUI7SUFDbEM7UUFBQyxPQUFRO1FBQUE7WUFBRSxPQUFPO1lBQU0sQ0FBUTtZQUFNLENBQUc7WUFBSyxHQUFHLENBQUs7WUFBQSxJQUFJLENBQUs7WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0lBQzlFO1FBQUMsTUFBUTtRQUFBO1lBQUUsR0FBRyxDQUFhO1lBQUEsS0FBSztRQUFBLENBQVU7S0FBQTtJQUMxQztRQUFDLE1BQVE7UUFBQTtZQUFFLEdBQUcsQ0FBWTtZQUFBLEtBQUs7UUFBQSxDQUFVO0tBQUE7SUFDekM7UUFBQyxDQUFRO1FBQUEsQ0FBRTtZQUFBLEVBQUcsYUFBYztZQUFBLElBQUs7UUFBVTtLQUFBO0NBQzdDO0FBYU0sWUFBUSxrQkFBaUIsV0FBVUEsQ0FBVTtBQ2xCNUMsTUFBTUEsYUFBdUI7SUFDbEM7UUFBQyxNQUFRO1FBQUE7WUFBRSxHQUFHLENBQXVCO1lBQUEsS0FBSztRQUFBLENBQVU7S0FBQTtJQUNwRDtRQUFDLE1BQVE7UUFBQTtZQUFFLEdBQUcsQ0FBMEI7WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0lBQ3ZEO1FBQUMsQ0FBVTtRQUFBO1lBQUUsQ0FBSSxPQUFLO1lBQUEsRUFBSTtZQUFNLENBQUc7WUFBSyxDQUFLO1FBQVU7S0FBQTtDQUN6RDtBQWFNLFVBQU0sa0JBQWlCLFFBQU9BLENBQVU7QUNqQnZDLE1BQU1BLGFBQXVCO0lBQ2xDO1FBQUMsTUFBUTtRQUFBO1lBQUUsR0FBRyxDQUFpQjtZQUFBLEtBQUs7UUFBQSxDQUFVO0tBQUE7SUFDOUM7UUFBQyxNQUFRO1FBQUE7WUFBRSxHQUFHLENBQWlCO1lBQUEsS0FBSztRQUFBLENBQVU7S0FBQTtJQUM5QztRQUFDLE1BQVE7UUFBQTtZQUFFLEdBQUcsQ0FBVztZQUFBLEtBQUs7UUFBQSxDQUFVO0tBQUE7SUFDeEM7UUFBQyxNQUFRO1FBQUE7WUFBRSxHQUFHLENBQVc7WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0lBQ3hDO1FBQUMsTUFBUTtRQUFBO1lBQUUsR0FBRyxDQUFVO1lBQUEsS0FBSztRQUFBLENBQVU7S0FBQTtJQUN2QztRQUFDLE1BQVE7UUFBQTtZQUFFLEdBQUcsQ0FBZ0I7WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0lBQzdDO1FBQUM7UUFBUSxDQUFFO1lBQUEsRUFBRyxLQUFLO1lBQUEsQ0FBRyxPQUFNO1lBQUEsS0FBTyxPQUFNO1lBQUEsT0FBUSxJQUFLO1lBQUEsR0FBSSxJQUFLO1lBQUEsSUFBSztRQUFVO0tBQUE7Q0FDaEY7QUFhTSx5QkFBcUIsa0JBQWlCLHlCQUF3QkEsQ0FBVTtBQ3JCdkUsTUFBTUEsYUFBdUI7SUFDbEM7UUFDRTtRQUNBO1lBQ0UsQ0FBRztZQUNILEdBQUs7UUFBQTtLQUVUO0lBQ0E7UUFBQyxNQUFRO1FBQUE7WUFBRSxHQUFHLENBQWtCO1lBQUEsS0FBSztRQUFBLENBQVU7S0FBQTtJQUMvQztRQUFDLE1BQVE7UUFBQTtZQUFFLEdBQUcsQ0FBaUI7WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0lBQzlDO1FBQUMsTUFBUTtRQUFBO1lBQUUsR0FBRyxDQUFnQjtZQUFBLEtBQUs7UUFBQSxDQUFVO0tBQUE7SUFDN0M7UUFBQyxDQUFRO1FBQUEsQ0FBRTtZQUFBLEVBQUcsaUJBQWtCO1lBQUEsSUFBSztRQUFVO0tBQUE7Q0FDakQ7QUFhTSxZQUFRLGtCQUFpQixVQUFTQSxDQUFVO0FDekIzQyxNQUFNQSxhQUF1QjtJQUNsQztRQUFDLE1BQVE7UUFBQTtZQUFFLEdBQUcsQ0FBOEI7WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0lBQzNEO1FBQUMsQ0FBUTtRQUFBLENBQUU7WUFBQSxFQUFHLFVBQVc7WUFBQSxJQUFLO1FBQVU7S0FBQTtDQUMxQztBQWFNLG1CQUFlLGtCQUFpQixrQkFBaUJBLENBQVU7QUNoQjFELE1BQU1BLGFBQXVCO0lBQ2xDO1FBQUMsTUFBUTtRQUFBO1lBQUUsR0FBRyxDQUE0QztZQUFBLEtBQUs7UUFBQSxDQUFVO0tBQUE7SUFDekU7UUFBQyxNQUFRO1FBQUE7WUFBRSxHQUFHLENBQXdCO1lBQUEsS0FBSztRQUFBLENBQVU7S0FBQTtJQUNyRDtRQUFDLENBQVE7UUFBQSxDQUFFO1lBQUEsRUFBRyxXQUFZO1lBQUEsSUFBSztRQUFVO0tBQUE7Q0FDM0M7QUFhTSxlQUFXLGtCQUFpQixhQUFZQSxDQUFVO0FDakJqRCxNQUFNQSxhQUF1QjtJQUNsQztRQUFDLE1BQVE7UUFBQTtZQUFFLEdBQUcsQ0FBWTtZQUFBLEtBQUs7UUFBQSxDQUFVO0tBQUE7SUFDekM7UUFBQyxNQUFRO1FBQUE7WUFBRSxHQUFHLENBQXlDO1lBQUEsS0FBSztRQUFBLENBQVU7S0FBQTtJQUN0RTtRQUNFO1FBQ0E7WUFDRSxDQUFHO1lBQ0gsR0FBSztRQUFBO0tBRVQ7SUFDQTtRQUFDLE1BQVE7UUFBQTtZQUFFLEdBQUcsQ0FBYztZQUFBLEtBQUs7UUFBQSxDQUFVO0tBQUE7SUFDM0M7UUFBQyxDQUFRO1FBQUEsQ0FBRTtZQUFBLEVBQUcsb0RBQXFEO1lBQUEsSUFBSztRQUFVO0tBQUE7Q0FDcEY7QUFhTSxZQUFRLGtCQUFpQixVQUFTQSxDQUFVO0FDekIzQyxNQUFNQSxhQUF1QjtJQUNsQztRQUFDLE1BQVE7UUFBQTtZQUFFLEdBQUcsQ0FBMEQ7WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0lBQ3ZGO1FBQUMsTUFBUTtRQUFBO1lBQUUsR0FBRyxDQUE4QztZQUFBLEtBQUs7UUFBQSxDQUFVO0tBQUE7SUFDM0U7UUFBQyxNQUFRO1FBQUE7WUFBRSxHQUFHLENBQXlDO1lBQUEsS0FBSztRQUFBLENBQVU7S0FBQTtJQUN0RTtRQUFDLE1BQVE7UUFBQTtZQUFFLEdBQUcsQ0FBK0M7WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0lBQzVFO1FBQUM7UUFBUSxDQUFFO1lBQUEsTUFBTyxNQUFNO1lBQUEsTUFBUSxNQUFLO1lBQUEsQ0FBRyxNQUFLO1lBQUEsRUFBRyxLQUFNO1lBQUEsR0FBSSxJQUFLO1lBQUEsSUFBSztRQUFTO0tBQUE7Q0FDL0U7QUFhTSxlQUFXLGtCQUFpQixhQUFZQSxDQUFVO0FDbkJqRCxNQUFNQSxhQUF1QjtJQUNsQztRQUFDLE1BQVE7UUFBQTtZQUFFLEdBQUcsQ0FBZ0M7WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0lBQzdEO1FBQUMsTUFBUTtRQUFBO1lBQUUsR0FBRyxDQUFhO1lBQUEsS0FBSztRQUFBLENBQVU7S0FBQTtJQUMxQztRQUFDLE1BQVE7UUFBQTtZQUFFLEdBQUcsQ0FBd0I7WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0lBQ3JEO1FBQUMsQ0FBUTtRQUFBLENBQUU7WUFBQSxFQUFHLDBCQUEyQjtZQUFBLElBQUs7UUFBVTtLQUFBO0NBQzFEO0FBYU0sb0JBQWdCLGtCQUFpQixtQkFBa0JBLENBQVU7QUNsQjVELE1BQU1BLGFBQXVCO0lBQ2xDO1FBQ0U7UUFDQTtZQUNFLENBQUc7WUFDSCxHQUFLO1FBQUE7S0FFVDtJQUNBO1FBQUMsTUFBUTtRQUFBO1lBQUUsR0FBRyxDQUFrQjtZQUFBLEtBQUs7UUFBQSxDQUFVO0tBQUE7SUFDL0M7UUFDRTtRQUNBO1lBQ0UsQ0FBRztZQUNILEdBQUs7UUFBQTtLQUVUO0lBQ0E7UUFBQyxNQUFRO1FBQUE7WUFBRSxHQUFHLENBQXVCO1lBQUEsS0FBSztRQUFBLENBQVU7S0FBQTtJQUNwRDtRQUNFO1FBQ0E7WUFDRSxDQUFHO1lBQ0gsR0FBSztRQUFBO0tBQ1A7Q0FFSjtBQWFNLGdCQUFZLGtCQUFpQixjQUFhQSxDQUFVO0FDckNuRCxNQUFNQSxhQUF1QjtJQUNsQztRQUFDLE1BQVE7UUFBQTtZQUFFLEdBQUcsQ0FBb0I7WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0lBQ2pEO1FBQUMsTUFBUTtRQUFBO1lBQUUsR0FBRyxDQUE0QztZQUFBLEtBQUs7UUFBQSxDQUFVO0tBQUE7SUFDekU7UUFBQyxNQUFRO1FBQUE7WUFBRSxHQUFHLENBQStDO1lBQUEsS0FBSztRQUFBLENBQVU7S0FBQTtJQUM1RTtRQUFDLENBQVE7UUFBQSxDQUFFO1lBQUEsRUFBRyxnQkFBaUI7WUFBQSxJQUFLO1FBQVU7S0FBQTtDQUNoRDtBQWFNLGlCQUFhLGtCQUFpQixnQkFBZUEsQ0FBVTtBQ2xCdEQsTUFBTUEsYUFBdUI7SUFDbEM7UUFBQyxNQUFRO1FBQUE7WUFBRSxHQUFHLENBQTJCO1lBQUEsS0FBSztRQUFBLENBQVU7S0FBQTtJQUN4RDtRQUFDLE1BQVE7UUFBQTtZQUFFLEdBQUcsQ0FBOEM7WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0lBQzNFO1FBQUMsTUFBUTtRQUFBO1lBQUUsR0FBRyxDQUE0QjtZQUFBLEtBQUs7UUFBQSxDQUFVO0tBQUE7SUFDekQ7UUFDRTtRQUNBO1lBQ0UsQ0FBRztZQUNILEdBQUs7UUFBQTtLQUNQO0NBRUo7QUFhTSxjQUFVLGtCQUFpQixhQUFZQSxDQUFVO0FDeEJoRCxNQUFNQSxhQUF1QjtJQUNsQztRQUFDLE1BQVE7UUFBQTtZQUFFLEdBQUcsQ0FBNEI7WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0lBQ3pEO1FBQUMsTUFBUTtRQUFBO1lBQUUsR0FBRyxDQUFXO1lBQUEsS0FBSztRQUFBLENBQVU7S0FBQTtJQUN4QztRQUFDLE1BQVE7UUFBQTtZQUFFLEdBQUcsQ0FBYTtZQUFBLEtBQUs7UUFBQSxDQUFVO0tBQUE7SUFDMUM7UUFBQyxNQUFRO1FBQUE7WUFBRSxHQUFHLENBQWM7WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0lBQzNDO1FBQ0U7UUFDQTtZQUFFLEdBQUcsbUVBQXFFO1lBQUEsS0FBSyxDQUFTO1FBQUE7S0FDMUY7SUFDQTtRQUFDLE1BQVE7UUFBQTtZQUFFLEdBQUcsQ0FBc0I7WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0lBQ25EO1FBQUMsQ0FBUTtRQUFBLENBQUU7WUFBQSxFQUFHLHVEQUF3RDtZQUFBLElBQUs7UUFBVTtLQUFBO0NBQ3ZGO0FBYU0sY0FBVSxrQkFBaUIsYUFBWUEsQ0FBVTtBQ3hCaEQsTUFBTUEsYUFBdUI7SUFDbEM7UUFDRTtRQUNBO1lBQ0UsQ0FBRztZQUNILEdBQUs7UUFBQTtLQUVUO0lBQ0E7UUFBQyxNQUFRO1FBQUE7WUFBRSxHQUFHLENBQTZDO1lBQUEsS0FBSztRQUFBLENBQVU7S0FBQTtJQUMxRTtRQUFDLENBQVE7UUFBQSxDQUFFO1lBQUEsRUFBRyx5QkFBMEI7WUFBQSxJQUFLO1FBQVU7S0FBQTtDQUN6RDtBQWFNLFdBQU8sa0JBQWlCLFNBQVFBLENBQVU7QUN2QnpDLE1BQU1BLGFBQXVCO0lBQ2xDO1FBQUMsTUFBUTtRQUFBO1lBQUUsR0FBRyxDQUE0QjtZQUFBLEtBQUs7UUFBQSxDQUFVO0tBQUE7SUFDekQ7UUFBQyxNQUFRO1FBQUE7WUFBRSxHQUFHLENBQXVCO1lBQUEsS0FBSztRQUFBLENBQVU7S0FBQTtJQUNwRDtRQUFDLFFBQVU7UUFBQTtZQUFFLEVBQUk7WUFBTSxDQUFJLFFBQU07WUFBQSxDQUFHO1lBQUssR0FBSztRQUFBLENBQVU7S0FBQTtJQUN4RDtRQUFDLENBQVU7UUFBQTtZQUFFLENBQUksT0FBSztZQUFBLEVBQUk7WUFBSyxDQUFHO1lBQUssQ0FBSztRQUFVO0tBQUE7Q0FDeEQ7QUFhTSxjQUFVLGtCQUFpQixhQUFZQSxDQUFVO0FDbEJoRCxNQUFNQSxhQUF1QjtJQUNsQztRQUFDLE1BQVE7UUFBQTtZQUFFLEdBQUcsQ0FBb0Q7WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0lBQ2pGO1FBQUMsTUFBUTtRQUFBO1lBQUUsR0FBRyxDQUFtRDtZQUFBLEtBQUs7UUFBQSxDQUFVO0tBQUE7SUFDaEY7UUFBQyxNQUFRO1FBQUE7WUFBRSxHQUFHLENBQVk7WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0lBQ3pDO1FBQUMsTUFBUTtRQUFBO1lBQUUsR0FBRyxDQUFZO1lBQUEsS0FBSztRQUFBLENBQVU7S0FBQTtJQUN6QztRQUFDLENBQVE7UUFBQSxDQUFFO1lBQUEsRUFBRyxtQ0FBb0M7WUFBQSxJQUFLO1FBQVU7S0FBQTtDQUNuRTtBQWFNLFlBQVEsa0JBQWlCLFVBQVNBLENBQVU7QUNuQjNDLE1BQU1BLGFBQXVCO0lBQ2xDO1FBQUMsTUFBUTtRQUFBO1lBQUUsR0FBRyxDQUE4RDtZQUFBLEtBQUs7UUFBQSxDQUFVO0tBQUE7SUFDM0Y7UUFBQyxNQUFRO1FBQUE7WUFBRSxHQUFHLENBQWU7WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0lBQzVDO1FBQUMsTUFBUTtRQUFBO1lBQUUsR0FBRyxDQUFhO1lBQUEsS0FBSztRQUFBLENBQVU7S0FBQTtJQUMxQztRQUFDLENBQVE7UUFBQSxDQUFFO1lBQUEsRUFBRyxhQUFjO1lBQUEsSUFBSztRQUFVO0tBQUE7Q0FDN0M7QUFhTSxjQUFVLGtCQUFpQixZQUFXQSxDQUFVO0FDbEIvQyxNQUFNQSxhQUF1QjtJQUNsQztRQUFDLE1BQVE7UUFBQTtZQUFFLEdBQUcsQ0FBMEI7WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0lBQ3ZEO1FBQUMsTUFBUTtRQUFBO1lBQUUsR0FBRyxDQUEyQjtZQUFBLEtBQUs7UUFBQSxDQUFVO0tBQUE7SUFDeEQ7UUFBQyxNQUFRO1FBQUE7WUFBRSxHQUFHLENBQTZCO1lBQUEsS0FBSztRQUFBLENBQVU7S0FBQTtJQUMxRDtRQUFDLE1BQVE7UUFBQTtZQUFFLEdBQUcsQ0FBNEI7WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0lBQ3pEO1FBQUMsTUFBUTtRQUFBO1lBQUUsR0FBRyxDQUFXO1lBQUEsS0FBSztRQUFBLENBQVU7S0FBQTtJQUN4QztRQUFDLE1BQVE7UUFBQTtZQUFFLEdBQUcsQ0FBWTtZQUFBLEtBQUs7UUFBQSxDQUFVO0tBQUE7SUFDekM7UUFBQyxDQUFRO1FBQUEsQ0FBRTtZQUFBLEVBQUcsV0FBWTtZQUFBLElBQUs7UUFBVTtLQUFBO0NBQzNDO0FBYU0sa0JBQWMsa0JBQWlCLGlCQUFnQkEsQ0FBVTtBQ3JCeEQsTUFBTUEsYUFBdUI7SUFDbEM7UUFBQyxNQUFRO1FBQUE7WUFBRSxHQUFHLENBQTBCO1lBQUEsS0FBSztRQUFBLENBQVU7S0FBQTtJQUN2RDtRQUFDLE1BQVE7UUFBQTtZQUFFLEdBQUcsQ0FBMkI7WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0lBQ3hEO1FBQUMsTUFBUTtRQUFBO1lBQUUsR0FBRyxDQUE2QjtZQUFBLEtBQUs7UUFBQSxDQUFVO0tBQUE7SUFDMUQ7UUFBQyxNQUFRO1FBQUE7WUFBRSxHQUFHLENBQTRCO1lBQUEsS0FBSztRQUFBLENBQVU7S0FBQTtJQUN6RDtRQUFDLFFBQVU7UUFBQTtZQUFFLEVBQUk7WUFBTSxDQUFJLFFBQU07WUFBQSxDQUFHO1lBQUssR0FBSztRQUFBLENBQVU7S0FBQTtJQUN4RDtRQUNFO1FBQ0E7WUFDRSxDQUFHO1lBQ0gsR0FBSztRQUFBO0tBQ1A7Q0FFSjtBQWFNLGNBQVUsa0JBQWlCLGFBQVlBLENBQVU7QUMxQmhELE1BQU1BLGFBQXVCO0lBQ2xDO1FBQUMsTUFBUTtRQUFBO1lBQUUsR0FBRyxDQUEwQjtZQUFBLEtBQUs7UUFBQSxDQUFVO0tBQUE7SUFDdkQ7UUFBQyxNQUFRO1FBQUE7WUFBRSxHQUFHLENBQTJCO1lBQUEsS0FBSztRQUFBLENBQVU7S0FBQTtJQUN4RDtRQUFDLE1BQVE7UUFBQTtZQUFFLEdBQUcsQ0FBNkI7WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0lBQzFEO1FBQUMsTUFBUTtRQUFBO1lBQUUsR0FBRyxDQUE0QjtZQUFBLEtBQUs7UUFBQSxDQUFVO0tBQUE7SUFDekQ7UUFBQyxNQUFRO1FBQUE7WUFBRSxHQUFHLENBQTJCO1lBQUEsS0FBSztRQUFBLENBQVU7S0FBQTtJQUN4RDtRQUFDLE1BQVE7UUFBQTtZQUFFLEdBQUcsQ0FBWTtZQUFBLEtBQUs7UUFBQSxDQUFVO0tBQUE7SUFDekM7UUFBQyxDQUFRO1FBQUEsQ0FBRTtZQUFBLEVBQUcsWUFBYTtZQUFBLElBQUs7UUFBVTtLQUFBO0NBQzVDO0FBYU0sZUFBVyxrQkFBaUIsY0FBYUEsQ0FBVTtBQ3JCbEQsTUFBTUEsYUFBdUI7SUFDbEM7UUFDRTtRQUNBO1lBQ0UsQ0FBRztZQUNILEdBQUs7UUFBQTtLQUVUO0lBQ0E7UUFBQyxNQUFRO1FBQUE7WUFBRSxHQUFHLENBQTJCO1lBQUEsS0FBSztRQUFBLENBQVU7S0FBQTtJQUN4RDtRQUFDLE1BQVE7UUFBQTtZQUFFLEdBQUcsQ0FBNkI7WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0lBQzFEO1FBQUMsTUFBUTtRQUFBO1lBQUUsR0FBRyxDQUEwQjtZQUFBLEtBQUs7UUFBQSxDQUFVO0tBQUE7SUFDdkQ7UUFBQyxDQUFRO1FBQUEsQ0FBRTtZQUFBLEVBQUcsMkJBQTRCO1lBQUEsSUFBSztRQUFVO0tBQUE7Q0FDM0Q7QUFhTSxnQkFBWSxrQkFBaUIsZUFBY0EsQ0FBVTtBQ3pCcEQsTUFBTUEsYUFBdUI7SUFDbEM7UUFBQyxNQUFRO1FBQUE7WUFBRSxHQUFHLENBQTBCO1lBQUEsS0FBSztRQUFBLENBQVU7S0FBQTtJQUN2RDtRQUFDLE1BQVE7UUFBQTtZQUFFLEdBQUcsQ0FBMkI7WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0lBQ3hEO1FBQUMsTUFBUTtRQUFBO1lBQUUsR0FBRyxDQUE2QjtZQUFBLEtBQUs7UUFBQSxDQUFVO0tBQUE7SUFDMUQ7UUFBQyxNQUFRO1FBQUE7WUFBRSxHQUFHLENBQTRCO1lBQUEsS0FBSztRQUFBLENBQVU7S0FBQTtJQUN6RDtRQUFDLENBQVE7UUFBQSxDQUFFO1lBQUEsRUFBRyxXQUFZO1lBQUEsSUFBSztRQUFVO0tBQUE7Q0FDM0M7QUFhTSxlQUFXLGtCQUFpQixjQUFhQSxDQUFVO0FDbkJsRCxNQUFNQSxhQUF1QjtJQUNsQztRQUFDLE1BQVE7UUFBQTtZQUFFLEdBQUcsQ0FBNkI7WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0lBQzFEO1FBQUMsTUFBUTtRQUFBO1lBQUUsR0FBRyxDQUEyQjtZQUFBLEtBQUs7UUFBQSxDQUFVO0tBQUE7SUFDeEQ7UUFBQyxNQUFRO1FBQUE7WUFBRSxHQUFHLENBQVc7WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0lBQ3hDO1FBQUMsTUFBUTtRQUFBO1lBQUUsR0FBRyxDQUE2QjtZQUFBLEtBQUs7UUFBQSxDQUFVO0tBQUE7SUFDMUQ7UUFBQyxNQUFRO1FBQUE7WUFBRSxHQUFHLENBQTBCO1lBQUEsS0FBSztRQUFBLENBQVU7S0FBQTtJQUN2RDtRQUFDLE1BQVE7UUFBQTtZQUFFLEdBQUcsQ0FBYTtZQUFBLEtBQUs7UUFBQSxDQUFVO0tBQUE7SUFDMUM7UUFBQyxNQUFRO1FBQUE7WUFBRSxHQUFHLENBQTRCO1lBQUEsS0FBSztRQUFBLENBQVU7S0FBQTtJQUN6RDtRQUFDO1FBQVEsQ0FBRTtZQUFBLEVBQUcsS0FBSztZQUFBLENBQUcsTUFBSztZQUFBLEtBQU8sTUFBSztZQUFBLE9BQVEsSUFBSztZQUFBLEdBQUksSUFBSztZQUFBLElBQUs7UUFBVTtLQUFBO0NBQzlFO0FBYU0saUJBQWEsa0JBQWlCLGlCQUFnQkEsQ0FBVTtBQ3RCdkQsTUFBTUEsYUFBdUI7SUFDbEM7UUFBQyxNQUFRO1FBQUE7WUFBRSxHQUFHLENBQTBCO1lBQUEsS0FBSztRQUFBLENBQVU7S0FBQTtJQUN2RDtRQUFDLE1BQVE7UUFBQTtZQUFFLEdBQUcsQ0FBMkI7WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0lBQ3hEO1FBQUMsTUFBUTtRQUFBO1lBQUUsR0FBRyxDQUE2QjtZQUFBLEtBQUs7UUFBQSxDQUFVO0tBQUE7SUFDMUQ7UUFBQyxNQUFRO1FBQUE7WUFBRSxHQUFHLENBQTRCO1lBQUEsS0FBSztRQUFBLENBQVU7S0FBQTtJQUN6RDtRQUFDLFFBQVU7UUFBQTtZQUFFLEVBQUk7WUFBTSxDQUFJLFFBQU07WUFBQSxDQUFHO1lBQUssR0FBSztRQUFBLENBQVU7S0FBQTtJQUN4RDtRQUFDLENBQVE7UUFBQSxDQUFFO1lBQUEsRUFBRyxpQkFBa0I7WUFBQSxJQUFLO1FBQVU7S0FBQTtDQUNqRDtBQWFNLGlCQUFhLGtCQUFpQixnQkFBZUEsQ0FBVTtBQ3BCdEQsTUFBTUEsYUFBdUI7SUFDbEM7UUFBQyxNQUFRO1FBQUE7WUFBRSxHQUFHLENBQTBCO1lBQUEsS0FBSztRQUFBLENBQVU7S0FBQTtJQUN2RDtRQUFDLE1BQVE7UUFBQTtZQUFFLEdBQUcsQ0FBMkI7WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0lBQ3hEO1FBQUMsTUFBUTtRQUFBO1lBQUUsR0FBRyxDQUE2QjtZQUFBLEtBQUs7UUFBQSxDQUFVO0tBQUE7SUFDMUQ7UUFBQyxNQUFRO1FBQUE7WUFBRSxHQUFHLENBQTRCO1lBQUEsS0FBSztRQUFBLENBQVU7S0FBQTtJQUN6RDtRQUFDLE1BQVE7UUFBQTtZQUFFLEdBQUcsQ0FBVTtZQUFBLEtBQUs7UUFBQSxDQUFVO0tBQUE7SUFDdkM7UUFBQyxNQUFRO1FBQUE7WUFBRSxHQUFHLENBQVk7WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0lBQ3pDO1FBQUMsQ0FBUTtRQUFBLENBQUU7WUFBQSxFQUFHLFVBQVc7WUFBQSxJQUFLO1FBQVU7S0FBQTtDQUMxQztBQWFNLGVBQVcsa0JBQWlCLGNBQWFBLENBQVU7QUNyQmxELE1BQU1BLGFBQXVCO0lBQ2xDO1FBQUMsTUFBUTtRQUFBO1lBQUUsR0FBRyxDQUEwQjtZQUFBLEtBQUs7UUFBQSxDQUFVO0tBQUE7SUFDdkQ7UUFBQyxNQUFRO1FBQUE7WUFBRSxHQUFHLENBQTJCO1lBQUEsS0FBSztRQUFBLENBQVU7S0FBQTtJQUN4RDtRQUFDLE1BQVE7UUFBQTtZQUFFLEdBQUcsQ0FBNkI7WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0lBQzFEO1FBQUMsQ0FBUTtRQUFBLENBQUU7WUFBQSxFQUFHLDJCQUE0QjtZQUFBLElBQUs7UUFBVTtLQUFBO0NBQzNEO0FBYU0sV0FBTyxrQkFBaUIsU0FBUUEsQ0FBVTtBQ2xCekMsTUFBTUEsYUFBdUI7SUFDbEM7UUFBQyxNQUFRO1FBQUE7WUFBRSxHQUFHLENBQTZCO1lBQUEsS0FBSztRQUFBLENBQVU7S0FBQTtJQUMxRDtRQUNFO1FBQ0E7WUFDRSxDQUFHO1lBQ0gsR0FBSztRQUFBO0tBRVQ7SUFDQTtRQUFDLE1BQVE7UUFBQTtZQUFFLEdBQUcsQ0FBWTtZQUFBLEtBQUs7UUFBQSxDQUFVO0tBQUE7SUFDekM7UUFBQyxNQUFRO1FBQUE7WUFBRSxHQUFHLENBQTJDO1lBQUEsS0FBSztRQUFBLENBQVU7S0FBQTtJQUN4RTtRQUFDLE1BQVE7UUFBQTtZQUFFLEdBQUcsQ0FBVztZQUFBLEtBQUs7UUFBQSxDQUFVO0tBQUE7SUFDeEM7UUFBQyxDQUFVO1FBQUE7WUFBRSxDQUFJLFFBQU07WUFBQSxFQUFJO1lBQUssQ0FBRztZQUFLLENBQUs7UUFBVTtLQUFBO0NBQ3pEO0FBYU0sYUFBUyxrQkFBaUIsV0FBVUEsQ0FBVTtBQzFCN0MsTUFBTUEsYUFBdUI7SUFDbEM7UUFBQyxNQUFRO1FBQUE7WUFBRSxHQUFHLENBQW1CO1lBQUEsS0FBSztRQUFBLENBQVU7S0FBQTtJQUNoRDtRQUFDLFFBQVU7UUFBQTtZQUFFLEVBQUk7WUFBSyxDQUFJLE9BQUs7WUFBQSxDQUFHO1lBQUssR0FBSztRQUFBLENBQVU7S0FBQTtJQUN0RDtRQUFDLE1BQVE7UUFBQTtZQUFFLEdBQUcsQ0FBbUI7WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0lBQ2hEO1FBQUMsUUFBVTtRQUFBO1lBQUUsRUFBSTtZQUFLLENBQUksUUFBTTtZQUFBLENBQUc7WUFBSyxHQUFLO1FBQUEsQ0FBVTtLQUFBO0lBQ3ZEO1FBQUMsTUFBUTtRQUFBO1lBQUUsR0FBRyxDQUFvQjtZQUFBLEtBQUs7UUFBQSxDQUFVO0tBQUE7SUFDakQ7UUFBQyxNQUFRO1FBQUE7WUFBRSxHQUFHLENBQWE7WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0lBQzFDO1FBQUMsQ0FBUTtRQUFBLENBQUU7WUFBQSxFQUFHLFlBQWE7WUFBQSxJQUFLO1FBQVU7S0FBQTtDQUM1QztBQWFNLHlCQUFxQixrQkFBaUIseUJBQXdCQSxDQUFVO0FDckJ2RSxNQUFNQSxhQUF1QjtJQUNsQztRQUFDLFFBQVU7UUFBQTtZQUFFLEVBQUk7WUFBSyxDQUFJLE9BQUs7WUFBQSxDQUFHO1lBQUssR0FBSztRQUFBLENBQVU7S0FBQTtJQUN0RDtRQUFDLE1BQVE7UUFBQTtZQUFFLEdBQUcsQ0FBb0I7WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0lBQ2pEO1FBQUMsTUFBUTtRQUFBO1lBQUUsR0FBRyxDQUFvQjtZQUFBLEtBQUs7UUFBQSxDQUFVO0tBQUE7SUFDakQ7UUFBQyxRQUFVO1FBQUE7WUFBRSxFQUFJO1lBQUssQ0FBSSxRQUFNO1lBQUEsQ0FBRztZQUFLLEdBQUs7UUFBQSxDQUFVO0tBQUE7SUFDdkQ7UUFBQyxDQUFRO1FBQUEsQ0FBRTtZQUFBLEVBQUcsbUJBQW9CO1lBQUEsSUFBSztRQUFVO0tBQUE7Q0FDbkQ7QUFhTSxlQUFXLGtCQUFpQixhQUFZQSxDQUFVO0FDbkJqRCxNQUFNQSxhQUF1QjtJQUNsQztRQUFDLE1BQVE7UUFBQTtZQUFFLEdBQUcsQ0FBOEQ7WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0lBQzNGO1FBQUMsTUFBUTtRQUFBO1lBQUUsR0FBRyxDQUFXO1lBQUEsS0FBSztRQUFBLENBQVU7S0FBQTtJQUN4QztRQUFDLE1BQVE7UUFBQTtZQUFFLEdBQUcsQ0FBWTtZQUFBLEtBQUs7UUFBQSxDQUFVO0tBQUE7SUFDekM7UUFBQyxNQUFRO1FBQUE7WUFBRSxHQUFHLENBQWE7WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0lBQzFDO1FBQUMsQ0FBUTtRQUFBLENBQUU7WUFBQSxFQUFHLFlBQWE7WUFBQSxJQUFLO1FBQVU7S0FBQTtDQUM1QztBQWFNLHFCQUFpQixrQkFBaUIscUJBQW9CQSxDQUFVO0FDbkIvRCxNQUFNQSxhQUF1QjtJQUNsQztRQUFDLE1BQVE7UUFBQTtZQUFFLEdBQUcsQ0FBOEQ7WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0lBQzNGO1FBQUMsTUFBUTtRQUFBO1lBQUUsR0FBRyxDQUFXO1lBQUEsS0FBSztRQUFBLENBQVU7S0FBQTtJQUN4QztRQUFDLE1BQVE7UUFBQTtZQUFFLEdBQUcsQ0FBWTtZQUFBLEtBQUs7UUFBQSxDQUFVO0tBQUE7SUFDekM7UUFBQyxNQUFRO1FBQUE7WUFBRSxHQUFHLENBQWE7WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0lBQzFDO1FBQUMsQ0FBUTtRQUFBLENBQUU7WUFBQSxFQUFHLFlBQWE7WUFBQSxJQUFLO1FBQVU7S0FBQTtDQUM1QztBQWFNLGtCQUFjLGtCQUFpQixpQkFBZ0JBLENBQVU7QUNuQnhELE1BQU1BLGFBQXVCO0lBQ2xDO1FBQUMsTUFBUTtRQUFBO1lBQUUsR0FBRyxDQUFhO1lBQUEsS0FBSztRQUFBLENBQVU7S0FBQTtJQUMxQztRQUFDLE1BQVE7UUFBQTtZQUFFLEdBQUcsQ0FBWTtZQUFBLEtBQUs7UUFBQSxDQUFVO0tBQUE7SUFDekM7UUFBQyxNQUFRO1FBQUE7WUFBRSxHQUFHLENBQTRCO1lBQUEsS0FBSztRQUFBLENBQVU7S0FBQTtJQUN6RDtRQUNFO1FBQ0E7WUFDRSxDQUFHO1lBQ0gsR0FBSztRQUFBO0tBQ1A7Q0FFSjtBQWFNLGlCQUFhLGtCQUFpQixnQkFBZUEsQ0FBVTtBQ3hCdEQsTUFBTUEsYUFBdUI7SUFDbEM7UUFBQyxNQUFRO1FBQUE7WUFBRSxHQUFHLENBQTRCO1lBQUEsS0FBSztRQUFBLENBQVU7S0FBQTtJQUN6RDtRQUNFO1FBQ0E7WUFDRSxDQUFHO1lBQ0gsR0FBSztRQUFBO0tBQ1A7Q0FFSjtBQWFNLGFBQVMsa0JBQWlCLFdBQVVBLENBQVU7QUN0QjdDLE1BQU1BLGFBQXVCO0lBQ2xDO1FBQUMsTUFBUTtRQUFBO1lBQUUsR0FBRyxDQUFpQjtZQUFBLEtBQUs7UUFBQSxDQUFVO0tBQUE7SUFDOUM7UUFBQyxRQUFVO1FBQUE7WUFBRSxFQUFJO1lBQU0sQ0FBSSxRQUFNO1lBQUEsQ0FBRztZQUFLLEdBQUs7UUFBQSxDQUFVO0tBQUE7SUFDeEQ7UUFBQyxDQUFRO1FBQUEsQ0FBRTtZQUFBLEVBQUcsaUJBQWtCO1lBQUEsSUFBSztRQUFVO0tBQUE7Q0FDakQ7QUFhTSxrQkFBYyxrQkFBaUIsaUJBQWdCQSxDQUFVO0FDakJ4RCxNQUFNQSxhQUF1QjtJQUNsQztRQUFDLE1BQVE7UUFBQTtZQUFFLEdBQUcsQ0FBd0I7WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0lBQ3JEO1FBQUMsTUFBUTtRQUFBO1lBQUUsR0FBRyxDQUFrQjtZQUFBLEtBQUs7UUFBQSxDQUFVO0tBQUE7SUFDL0M7UUFBQyxNQUFRO1FBQUE7WUFBRSxHQUFHLENBQXFCO1lBQUEsS0FBSztRQUFBLENBQVU7S0FBQTtJQUNsRDtRQUFDLENBQVU7UUFBQTtZQUFFLENBQUksUUFBTTtZQUFBLEVBQUk7WUFBTSxDQUFHO1lBQUssQ0FBSztRQUFVO0tBQUE7Q0FDMUQ7QUFhTSxpQkFBYSxrQkFBaUIsZ0JBQWVBLENBQVU7QUNsQnRELE1BQU1BLGFBQXVCO0lBQ2xDO1FBQUMsTUFBUTtRQUFBO1lBQUUsR0FBRyxDQUFpQjtZQUFBLEtBQUs7UUFBQSxDQUFVO0tBQUE7SUFDOUM7UUFBQyxRQUFVO1FBQUE7WUFBRSxFQUFJO1lBQU0sQ0FBSSxRQUFNO1lBQUEsQ0FBRztZQUFLLEdBQUs7UUFBQSxDQUFVO0tBQUE7SUFDeEQ7UUFBQyxDQUFRO1FBQUEsQ0FBRTtZQUFBLEVBQUcsaUJBQWtCO1lBQUEsSUFBSztRQUFVO0tBQUE7Q0FDakQ7QUFhTSxrQkFBYyxrQkFBaUIsaUJBQWdCQSxDQUFVO0FDakJ4RCxNQUFNQSxhQUF1QjtJQUNsQztRQUFDLE1BQVE7UUFBQTtZQUFFLEdBQUcsQ0FBaUI7WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0lBQzlDO1FBQUMsTUFBUTtRQUFBO1lBQUUsR0FBRyxDQUFnQjtZQUFBLEtBQUs7UUFBQSxDQUFVO0tBQUE7SUFDN0M7UUFBQyxRQUFVO1FBQUE7WUFBRSxFQUFJO1lBQU0sQ0FBSSxRQUFNO1lBQUEsQ0FBRztZQUFLLEdBQUs7UUFBQSxDQUFVO0tBQUE7SUFDeEQ7UUFBQyxDQUFRO1FBQUEsQ0FBRTtZQUFBLEVBQUcsaUJBQWtCO1lBQUEsSUFBSztRQUFVO0tBQUE7Q0FDakQ7QUFhTSxjQUFVLGtCQUFpQixhQUFZQSxDQUFVO0FDbEJoRCxNQUFNQSxhQUF1QjtJQUNsQztRQUFDLE1BQVE7UUFBQTtZQUFFLEdBQUcsQ0FBb0I7WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0lBQ2pEO1FBQUMsQ0FBVTtRQUFBO1lBQUUsQ0FBSSxRQUFNO1lBQUEsRUFBSTtZQUFNLENBQUc7WUFBSyxDQUFLO1FBQVU7S0FBQTtDQUMxRDtBQWFNLGFBQVMsa0JBQWlCLFdBQVVBLENBQVU7QUNoQjdDLE1BQU1BLGFBQXVCO0lBQ2xDO1FBQUMsTUFBUTtRQUFBO1lBQUUsR0FBRyxDQUFpRDtZQUFBLEtBQUs7UUFBQSxDQUFVO0tBQUE7SUFDOUU7UUFBQyxDQUFRO1FBQUEsQ0FBRTtZQUFBLEVBQUcsZ0RBQWlEO1lBQUEsSUFBSztRQUFVO0tBQUE7Q0FDaEY7QUFhTSxjQUFVLGtCQUFpQixZQUFXQSxDQUFVO0FDaEIvQyxNQUFNQSxhQUF1QjtJQUNsQztRQUNFO1FBQ0E7WUFDRSxDQUFHO1lBQ0gsR0FBSztRQUFBO0tBRVQ7SUFDQTtRQUFDLENBQVE7UUFBQSxDQUFFO1lBQUEsRUFBRyxXQUFZO1lBQUEsSUFBSztRQUFVO0tBQUE7Q0FDM0M7QUFhTSxxQkFBaUIsa0JBQWlCLG9CQUFtQkEsQ0FBVTtBQ3RCOUQsTUFBTUEsYUFBdUI7SUFDbEM7UUFBQyxPQUFRO1FBQUE7WUFBRSxHQUFHO1lBQU0sQ0FBRztZQUFNLENBQU87WUFBSyxRQUFRLENBQUs7WUFBQSxJQUFJLENBQUs7WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0lBQzlFO1FBQUMsT0FBUTtRQUFBO1lBQUUsR0FBRztZQUFLLENBQUc7WUFBSyxDQUFPO1lBQUssUUFBUSxDQUFLO1lBQUEsSUFBSSxDQUFLO1lBQUEsS0FBSztRQUFBLENBQVU7S0FBQTtJQUM1RTtRQUFDLE1BQVE7UUFBQTtZQUFFLEdBQUcsQ0FBMkI7WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0lBQ3hEO1FBQUMsQ0FBUTtRQUFBLENBQUU7WUFBQSxFQUFHLDBCQUEyQjtZQUFBLElBQUs7UUFBVTtLQUFBO0NBQzFEO0FBYU0saUJBQWEsa0JBQWlCLGlCQUFnQkEsQ0FBVTtBQ2xCdkQsTUFBTUEsYUFBdUI7SUFDbEM7UUFDRTtRQUNBO1lBQ0UsQ0FBRztZQUNILEdBQUs7UUFBQTtLQUVUO0lBQ0E7UUFBQyxDQUFRO1FBQUEsQ0FBRTtZQUFBLEVBQUcsNkJBQThCO1lBQUEsSUFBSztRQUFVO0tBQUE7Q0FDN0Q7QUFhTSxXQUFPLGtCQUFpQixTQUFRQSxDQUFVO0FDdEJ6QyxNQUFNQSxhQUF1QjtJQUNsQztRQUFDLE1BQVE7UUFBQTtZQUFFLEdBQUcsQ0FBa0I7WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0lBQy9DO1FBQUMsTUFBUTtRQUFBO1lBQUUsR0FBRyxDQUFZO1lBQUEsS0FBSztRQUFBLENBQVU7S0FBQTtJQUN6QztRQUFDLENBQVE7UUFBQSxDQUFFO1lBQUEsRUFBRyxlQUFnQjtZQUFBLElBQUs7UUFBVTtLQUFBO0NBQy9DO0FBYU0sMEJBQXNCLGtCQUFpQix5QkFBd0JBLENBQVU7QUNqQnhFLE1BQU1BLGFBQXVCO0lBQ2xDO1FBQUMsTUFBUTtRQUFBO1lBQUUsR0FBRyxDQUFZO1lBQUEsS0FBSztRQUFBLENBQVU7S0FBQTtJQUN6QztRQUFDLE1BQVE7UUFBQTtZQUFFLEdBQUcsQ0FBa0I7WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0lBQy9DO1FBQUMsQ0FBUTtRQUFBLENBQUU7WUFBQSxFQUFHLGVBQWdCO1lBQUEsSUFBSztRQUFVO0tBQUE7Q0FDL0M7QUFhTSx3QkFBb0Isa0JBQWlCLHVCQUFzQkEsQ0FBVTtBQ2pCcEUsTUFBTUEsYUFBdUI7SUFDbEM7UUFBQyxNQUFRO1FBQUE7WUFBRSxHQUFHLENBQTJCO1lBQUEsS0FBSztRQUFBLENBQVU7S0FBQTtJQUN4RDtRQUFDLE1BQVE7UUFBQTtZQUFFLEdBQUcsQ0FBbUQ7WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0lBQ2hGO1FBQUMsTUFBUTtRQUFBO1lBQUUsR0FBRyxDQUEwQjtZQUFBLEtBQUs7UUFBQSxDQUFVO0tBQUE7SUFDdkQ7UUFBQyxNQUFRO1FBQUE7WUFBRSxHQUFHLENBQWlEO1lBQUEsS0FBSztRQUFBLENBQVU7S0FBQTtJQUM5RTtRQUFDLE1BQVE7UUFBQTtZQUFFLEdBQUcsQ0FBMkI7WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0lBQ3hEO1FBQUMsTUFBUTtRQUFBO1lBQUUsR0FBRyxDQUEwQjtZQUFBLEtBQUs7UUFBQSxDQUFVO0tBQUE7SUFDdkQ7UUFDRTtRQUNBO1lBQ0UsQ0FBRztZQUNILEdBQUs7UUFBQTtLQUVUO0lBQ0E7UUFDRTtRQUNBO1lBQ0UsQ0FBRztZQUNILEdBQUs7UUFBQTtLQUVUO0lBQ0E7UUFBQyxNQUFRO1FBQUE7WUFBRSxHQUFHLENBQWE7WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0lBQzFDO1FBQUMsTUFBUTtRQUFBO1lBQUUsR0FBRyxDQUFZO1lBQUEsS0FBSztRQUFBLENBQVU7S0FBQTtJQUN6QztRQUFDLE1BQVE7UUFBQTtZQUFFLEdBQUcsQ0FBMkI7WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0lBQ3hEO1FBQUMsQ0FBUTtRQUFBLENBQUU7WUFBQSxFQUFHLHlCQUEwQjtZQUFBLElBQUs7UUFBVTtLQUFBO0NBQ3pEO0FBYU0sZ0JBQVksa0JBQWlCLGVBQWNBLENBQVU7QUN0Q3BELE1BQU1BLGFBQXVCO0lBQ2xDO1FBQ0U7UUFDQTtZQUNFLENBQUc7WUFDSCxHQUFLO1FBQUE7S0FFVDtJQUNBO1FBQ0U7UUFDQTtZQUNFLENBQUc7WUFDSCxHQUFLO1FBQUE7S0FFVDtJQUNBO1FBQUMsTUFBUTtRQUFBO1lBQUUsR0FBRyxDQUFZO1lBQUEsS0FBSztRQUFBLENBQVU7S0FBQTtJQUN6QztRQUFDLE1BQVE7UUFBQTtZQUFFLEdBQUcsQ0FBYTtZQUFBLEtBQUs7UUFBQSxDQUFVO0tBQUE7SUFDMUM7UUFBQyxDQUFRO1FBQUEsQ0FBRTtZQUFBLEVBQUcsbUJBQW9CO1lBQUEsSUFBSztRQUFVO0tBQUE7Q0FDbkQ7QUFhTSxrQkFBYyxrQkFBaUIsaUJBQWdCQSxDQUFVO0FDL0J4RCxNQUFNQSxhQUF1QjtJQUNsQztRQUFDLE1BQVE7UUFBQTtZQUFFLEdBQUcsQ0FBNEM7WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0lBQ3pFO1FBQUMsTUFBUTtRQUFBO1lBQUUsR0FBRyxDQUFtRDtZQUFBLEtBQUs7UUFBQSxDQUFVO0tBQUE7SUFDaEY7UUFBQyxNQUFRO1FBQUE7WUFBRSxHQUFHLENBQThCO1lBQUEsS0FBSztRQUFBLENBQVU7S0FBQTtJQUMzRDtRQUFDLE1BQVE7UUFBQTtZQUFFLEdBQUcsQ0FBNEQ7WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0lBQ3pGO1FBQUMsTUFBUTtRQUFBO1lBQUUsR0FBRyxDQUFhO1lBQUEsS0FBSztRQUFBLENBQVU7S0FBQTtJQUMxQztRQUFDLENBQVE7UUFBQSxDQUFFO1lBQUEsRUFBRyxhQUFjO1lBQUEsSUFBSztRQUFVO0tBQUE7Q0FDN0M7QUFhTSxnQkFBWSxrQkFBaUIsZUFBY0EsQ0FBVTtBQ3BCcEQsTUFBTUEsYUFBdUI7SUFDbEM7UUFBQyxNQUFRO1FBQUE7WUFBRSxLQUFPLE9BQU07WUFBQSxPQUFRLElBQUs7WUFBQSxHQUFHLENBQUs7WUFBQSxHQUFHO1lBQUssQ0FBSSxPQUFLO1lBQUEsR0FBSSxJQUFLO1lBQUEsSUFBSztRQUFBLENBQVU7S0FBQTtJQUN0RjtRQUFDLE1BQVE7UUFBQTtZQUFFLEtBQU8sT0FBTTtZQUFBLE9BQVEsSUFBSztZQUFBLEdBQUcsQ0FBSztZQUFBLEdBQUc7WUFBTSxDQUFJLE9BQUs7WUFBQSxHQUFJLElBQUs7WUFBQSxJQUFLO1FBQUEsQ0FBVTtLQUFBO0lBQ3ZGO1FBQUM7UUFBUSxDQUFFO1lBQUEsSUFBSSxDQUFLO1lBQUEsSUFBSSxDQUFRO1lBQUEsR0FBSSxJQUFLO1lBQUEsR0FBSSxJQUFLO1lBQUEsS0FBSztRQUFBLENBQVU7S0FBQTtJQUNqRTtRQUFDLE9BQVE7UUFBQTtZQUFFLEdBQUksSUFBSztZQUFBLEdBQUksT0FBUTtZQUFBLElBQUksQ0FBTTtZQUFBLElBQUksSUFBTTtZQUFBLElBQUs7UUFBVTtLQUFBO0NBQ3JFO0FBYU0sYUFBUyxrQkFBaUIsV0FBVUEsQ0FBVTtBQ2xCN0MsTUFBTUEsYUFBdUI7SUFDbEM7UUFBQyxNQUFRO1FBQUE7WUFBRSxHQUFHLENBQVk7WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0lBQ3pDO1FBQUMsTUFBUTtRQUFBO1lBQUUsR0FBRyxDQUFZO1lBQUEsS0FBSztRQUFBLENBQVM7S0FBQTtJQUN4QztRQUFDLFFBQVU7UUFBQTtZQUFFLEVBQUk7WUFBTSxDQUFJLFFBQU07WUFBQSxDQUFHO1lBQUssR0FBSztRQUFBLENBQVU7S0FBQTtJQUN4RDtRQUFDLENBQVU7UUFBQTtZQUFFLENBQUksT0FBSztZQUFBLEVBQUk7WUFBSyxDQUFHO1lBQUssQ0FBSztRQUFVO0tBQUE7Q0FDeEQ7QUFhTSxnQkFBWSxrQkFBaUIsZUFBY0EsQ0FBVTtBQ2xCcEQsTUFBTUEsYUFBdUI7SUFDbEM7UUFDRTtRQUNBO1lBQ0UsQ0FBRztZQUNILEdBQUs7UUFBQTtLQUVUO0lBQ0E7UUFBQyxDQUFVO1FBQUE7WUFBRSxDQUFJLFFBQU07WUFBQSxFQUFJO1lBQU0sQ0FBRztZQUFLLENBQUs7UUFBVTtLQUFBO0NBQzFEO0FBYU0sZUFBVyxrQkFBaUIsYUFBWUEsQ0FBVTtBQ3RCakQsTUFBTUEsYUFBdUI7SUFDbEM7UUFDRTtRQUNBO1lBQ0UsQ0FBRztZQUNILEdBQUs7UUFBQTtLQUVUO0lBQ0E7UUFBQyxPQUFRO1FBQUE7WUFBRSxHQUFHO1lBQUssQ0FBRztZQUFNLENBQU87WUFBSyxRQUFRLENBQUs7WUFBQSxJQUFJLENBQUs7WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0lBQzdFO1FBQUMsQ0FBVTtRQUFBO1lBQUUsQ0FBSSxVQUFRO1lBQUEsRUFBSTtZQUFRLENBQUc7WUFBTyxDQUFLO1FBQVU7S0FBQTtDQUNoRTtBQWFNLGFBQVMsa0JBQWlCLFdBQVVBLENBQVU7QUN2QjdDLE1BQU1BLGFBQXVCO0lBQ2xDO1FBQUMsUUFBVTtRQUFBO1lBQUUsRUFBSTtZQUFNLENBQUksT0FBSztZQUFBLENBQUc7WUFBSyxHQUFLO1FBQUEsQ0FBVTtLQUFBO0lBQ3ZEO1FBQUMsUUFBVTtRQUFBO1lBQUUsRUFBSTtZQUFLLENBQUksUUFBTTtZQUFBLENBQUc7WUFBSyxHQUFLO1FBQUEsQ0FBVTtLQUFBO0lBQ3ZEO1FBQUMsUUFBVTtRQUFBO1lBQUUsRUFBSTtZQUFNLENBQUksUUFBTTtZQUFBLENBQUc7WUFBSyxHQUFLO1FBQUEsQ0FBVTtLQUFBO0lBQ3hEO1FBQUM7UUFBUSxDQUFFO1lBQUEsSUFBSSxDQUFRO1lBQUEsSUFBSSxDQUFTO1lBQUEsR0FBSSxRQUFTO1lBQUEsR0FBSSxRQUFTO1lBQUEsS0FBSztRQUFBLENBQVU7S0FBQTtJQUM3RTtRQUFDLE9BQVE7UUFBQTtZQUFFLEdBQUksUUFBUztZQUFBLEdBQUksT0FBUTtZQUFBLElBQUksQ0FBUTtZQUFBLElBQUksT0FBUztZQUFBLElBQUs7UUFBVTtLQUFBO0NBQzlFO0FBYU0sYUFBUyxrQkFBaUIsWUFBV0EsQ0FBVTtBQ25COUMsTUFBTUEsYUFBdUI7SUFDbEM7UUFBQyxNQUFRO1FBQUE7WUFBRSxHQUFHLENBQVk7WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0lBQ3pDO1FBQUMsTUFBUTtRQUFBO1lBQUUsR0FBRyxDQUFpQjtZQUFBLEtBQUs7UUFBQSxDQUFVO0tBQUE7SUFDOUM7UUFBQyxDQUFRO1FBQUEsQ0FBRTtZQUFBLEVBQUcsNENBQTZDO1lBQUEsSUFBSztRQUFVO0tBQUE7Q0FDNUU7QUFhTSxZQUFRLGtCQUFpQixVQUFTQSxDQUFVO0FDakIzQyxNQUFNQSxhQUF1QjtJQUNsQztRQUFDLE1BQVE7UUFBQTtZQUFFLEtBQU8sT0FBTTtZQUFBLE9BQVEsS0FBTTtZQUFBLEdBQUcsQ0FBSztZQUFBLEdBQUc7WUFBSyxDQUFJLE9BQUs7WUFBQSxHQUFJLElBQUs7WUFBQSxJQUFLO1FBQUEsQ0FBVTtLQUFBO0lBQ3ZGO1FBQUM7UUFBUSxDQUFFO1lBQUEsSUFBSSxDQUFLO1lBQUEsSUFBSSxDQUFNO1lBQUEsR0FBSSxJQUFLO1lBQUEsR0FBSSxJQUFLO1lBQUEsS0FBSztRQUFBLENBQVU7S0FBQTtJQUMvRDtRQUFDO1FBQVEsQ0FBRTtZQUFBLElBQUksQ0FBSztZQUFBLElBQUksQ0FBTTtZQUFBLEdBQUksS0FBTTtZQUFBLEdBQUksS0FBTTtZQUFBLEtBQUs7UUFBQSxDQUFVO0tBQUE7SUFDakU7UUFBQztRQUFRLENBQUU7WUFBQSxJQUFJLENBQUs7WUFBQSxJQUFJLENBQUs7WUFBQSxHQUFJLElBQUs7WUFBQSxHQUFJLEtBQU07WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0lBQy9EO1FBQUMsT0FBUTtRQUFBO1lBQUUsR0FBSSxLQUFNO1lBQUEsR0FBSSxLQUFNO1lBQUEsSUFBSSxDQUFLO1lBQUEsSUFBSSxJQUFNO1lBQUEsSUFBSztRQUFVO0tBQUE7Q0FDbkU7QUFhTSxZQUFRLGtCQUFpQixVQUFTQSxDQUFVO0FDbkIzQyxNQUFNQSxhQUF1QjtJQUNsQztRQUNFO1FBQ0E7WUFDRSxDQUFHO1lBQ0gsR0FBSztRQUFBO0tBQ1A7Q0FFSjtBQWFNLFlBQVEsa0JBQWlCLFVBQVNBLENBQVU7QUNyQjNDLE1BQU1BLGFBQXVCO0lBQ2xDO1FBQ0U7UUFDQTtZQUNFLENBQUc7WUFDSCxHQUFLO1FBQUE7S0FFVDtJQUNBO1FBQUMsTUFBUTtRQUFBO1lBQUUsR0FBRyxDQUFXO1lBQUEsS0FBSztRQUFBLENBQVU7S0FBQTtJQUN4QztRQUFDLENBQVE7UUFBQSxDQUFFO1lBQUEsRUFBRyxhQUFjO1lBQUEsSUFBSztRQUFVO0tBQUE7Q0FDN0M7QUFhTSxrQkFBYyxrQkFBaUIsaUJBQWdCQSxDQUFVO0FDdkJ4RCxNQUFNQSxhQUF1QjtJQUNsQztRQUNFO1FBQ0E7WUFDRSxDQUFHO1lBQ0gsR0FBSztRQUFBO0tBRVQ7SUFDQTtRQUFDLENBQVE7UUFBQSxDQUFFO1lBQUEsRUFBRywyQkFBNEI7WUFBQSxJQUFLO1FBQVU7S0FBQTtDQUMzRDtBQWFNLGdCQUFZLGtCQUFpQixlQUFjQSxDQUFVO0FDdEJwRCxNQUFNQSxhQUF1QjtJQUNsQztRQUNFO1FBQ0E7WUFDRSxDQUFHO1lBQ0gsR0FBSztRQUFBO0tBRVQ7SUFDQTtRQUFDLENBQVE7UUFBQSxDQUFFO1lBQUEsRUFBRyxnQkFBaUI7WUFBQSxJQUFLO1FBQVU7S0FBQTtDQUNoRDtBQWFNLGtCQUFjLGtCQUFpQixpQkFBZ0JBLENBQVU7QUN0QnhELE1BQU1BLGFBQXVCO0lBQ2xDO1FBQ0U7UUFDQTtZQUNFLENBQUc7WUFDSCxHQUFLO1FBQUE7S0FFVDtJQUNBO1FBQUMsQ0FBUTtRQUFBLENBQUU7WUFBQSxFQUFHLFdBQVk7WUFBQSxJQUFLO1FBQVU7S0FBQTtDQUMzQztBQWFNLGlCQUFhLGtCQUFpQixnQkFBZUEsQ0FBVTtBQ3RCdEQsTUFBTUEsYUFBdUI7SUFDbEM7UUFDRTtRQUNBO1lBQ0UsQ0FBRztZQUNILEdBQUs7UUFBQTtLQUVUO0lBQ0E7UUFBQyxNQUFRO1FBQUE7WUFBRSxHQUFHLENBQWE7WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0lBQzFDO1FBQUMsTUFBUTtRQUFBO1lBQUUsR0FBRyxDQUFjO1lBQUEsS0FBSztRQUFBLENBQVU7S0FBQTtJQUMzQztRQUFDLENBQVE7UUFBQSxDQUFFO1lBQUEsRUFBRyxhQUFjO1lBQUEsSUFBSztRQUFVO0tBQUE7Q0FDN0M7QUFhTSxxQkFBaUIsa0JBQWlCLG9CQUFtQkEsQ0FBVTtBQ3hCOUQsTUFBTUEsYUFBdUI7SUFDbEM7UUFDRTtRQUNBO1lBQ0UsQ0FBRztZQUNILEdBQUs7UUFBQTtLQUVUO0lBQ0E7UUFBQyxDQUFRO1FBQUEsQ0FBRTtZQUFBLEVBQUcsVUFBVztZQUFBLElBQUs7UUFBVTtLQUFBO0NBQzFDO0FBYU0sa0JBQWMsa0JBQWlCLGlCQUFnQkEsQ0FBVTtBQ3RCeEQsTUFBTUEsYUFBdUI7SUFDbEM7UUFBQyxNQUFRO1FBQUE7WUFBRSxHQUFHLENBQWM7WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0lBQzNDO1FBQ0U7UUFDQTtZQUNFLENBQUc7WUFDSCxHQUFLO1FBQUE7S0FFVDtJQUNBO1FBQ0U7UUFDQTtZQUNFLENBQUc7WUFDSCxHQUFLO1FBQUE7S0FDUDtDQUVKO0FBYU0sZ0JBQVksa0JBQWlCLGVBQWNBLENBQVU7QUM3QnBELE1BQU1BLGFBQXVCO0lBQ2xDO1FBQ0U7UUFDQTtZQUNFLENBQUc7WUFDSCxHQUFLO1FBQUE7S0FFVDtJQUNBO1FBQUMsTUFBUTtRQUFBO1lBQUUsR0FBRyxDQUFXO1lBQUEsS0FBSztRQUFBLENBQVU7S0FBQTtJQUN4QztRQUFDLENBQVE7UUFBQSxDQUFFO1lBQUEsRUFBRyxVQUFXO1lBQUEsSUFBSztRQUFVO0tBQUE7Q0FDMUM7QUFhTSxpQkFBYSxrQkFBaUIsZ0JBQWVBLENBQVU7QUN2QnRELE1BQU1BLGFBQXVCO0lBQ2xDO1FBQ0U7UUFDQTtZQUNFLENBQUc7WUFDSCxHQUFLO1FBQUE7S0FFVDtJQUNBO1FBQUMsTUFBUTtRQUFBO1lBQUUsR0FBRyxDQUFxQztZQUFBLEtBQUs7UUFBQSxDQUFVO0tBQUE7SUFDbEU7UUFBQyxDQUFVO1FBQUE7WUFBRSxDQUFJLFFBQU07WUFBQSxFQUFJO1lBQU0sQ0FBRztZQUFLLENBQUs7UUFBVTtLQUFBO0NBQzFEO0FBYU0saUJBQWEsa0JBQWlCLGdCQUFlQSxDQUFVO0FDdkJ0RCxNQUFNQSxhQUF1QjtJQUNsQztRQUNFO1FBQ0E7WUFDRSxDQUFHO1lBQ0gsR0FBSztRQUFBO0tBRVQ7SUFDQTtRQUFDLE1BQVE7UUFBQTtZQUFFLEdBQUcsQ0FBdUM7WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0lBQ3BFO1FBQUMsQ0FBUTtRQUFBLENBQUU7WUFBQSxFQUFHLGFBQWM7WUFBQSxJQUFLO1FBQVU7S0FBQTtDQUM3QztBQWFNLHlCQUFxQixrQkFBaUIseUJBQXdCQSxDQUFVO0FDdkJ2RSxNQUFNQSxhQUF1QjtJQUNsQztRQUNFO1FBQ0E7WUFDRSxDQUFHO1lBQ0gsR0FBSztRQUFBO0tBRVQ7SUFDQTtRQUFDLE1BQVE7UUFBQTtZQUFFLEdBQUcsQ0FBaUI7WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0lBQzlDO1FBQUMsQ0FBUTtRQUFBLENBQUU7WUFBQSxFQUFHLGVBQWdCO1lBQUEsSUFBSztRQUFVO0tBQUE7Q0FDL0M7QUFhTSxjQUFVLGtCQUFpQixhQUFZQSxDQUFVO0FDdkJoRCxNQUFNQSxhQUF1QjtJQUNsQztRQUNFO1FBQ0E7WUFDRSxDQUFHO1lBQ0gsR0FBSztRQUFBO0tBQ1A7Q0FFSjtBQWFNLGFBQVMsa0JBQWlCLFdBQVVBLENBQVU7QUNyQjdDLE1BQU1BLGFBQXVCO0lBQ2xDO1FBQUMsUUFBVTtRQUFBO1lBQUUsRUFBSTtZQUFNLENBQUksUUFBTTtZQUFBLENBQUc7WUFBSyxHQUFLO1FBQUEsQ0FBVTtLQUFBO0lBQ3hEO1FBQUMsTUFBUTtRQUFBO1lBQUUsR0FBRyxDQUFhO1lBQUEsS0FBSztRQUFBLENBQVU7S0FBQTtJQUMxQztRQUFDLE1BQVE7UUFBQTtZQUFFLEdBQUcsQ0FBbUI7WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0lBQ2hEO1FBQUMsTUFBUTtRQUFBO1lBQUUsR0FBRyxDQUFlO1lBQUEsS0FBSztRQUFBLENBQVU7S0FBQTtJQUM1QztRQUFDLE1BQVE7UUFBQTtZQUFFLEdBQUcsQ0FBb0I7WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0lBQ2pEO1FBQUMsTUFBUTtRQUFBO1lBQUUsR0FBRyxDQUFlO1lBQUEsS0FBSztRQUFBLENBQVU7S0FBQTtJQUM1QztRQUFDLE1BQVE7UUFBQTtZQUFFLEdBQUcsQ0FBcUI7WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0lBQ2xEO1FBQUMsTUFBUTtRQUFBO1lBQUUsR0FBRyxDQUFhO1lBQUEsS0FBSztRQUFBLENBQVU7S0FBQTtJQUMxQztRQUFDLE1BQVE7UUFBQTtZQUFFLEdBQUcsQ0FBb0I7WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0lBQ2pEO1FBQUMsQ0FBVTtRQUFBO1lBQUUsQ0FBSSxRQUFNO1lBQUEsRUFBSTtZQUFNLENBQUc7WUFBTyxDQUFLO1FBQVU7S0FBQTtDQUM1RDtBQWFNLGdCQUFZLGtCQUFpQixlQUFjQSxDQUFVO0FDeEJwRCxNQUFNQSxhQUF1QjtJQUNsQztRQUFDLE1BQVE7UUFBQTtZQUFFLEdBQUcsQ0FBaUI7WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0lBQzlDO1FBQUMsTUFBUTtRQUFBO1lBQUUsR0FBRyxDQUFXO1lBQUEsS0FBSztRQUFBLENBQVU7S0FBQTtJQUN4QztRQUFDLE1BQVE7UUFBQTtZQUFFLEdBQUcsQ0FBNEM7WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0lBQ3pFO1FBQ0U7UUFDQTtZQUNFLENBQUc7WUFDSCxHQUFLO1FBQUE7S0FFVDtJQUNBO1FBQ0U7UUFDQTtZQUNFLENBQUc7WUFDSCxHQUFLO1FBQUE7S0FDUDtDQUVKO0FBYU0sV0FBTyxrQkFBaUIsU0FBUUEsQ0FBVTtBQy9CekMsTUFBTUEsYUFBdUI7SUFDbEM7UUFDRTtRQUNBO1lBQ0UsQ0FBRztZQUNILEdBQUs7UUFBQTtLQUNQO0NBRUo7QUFhTSxZQUFRLGtCQUFpQixVQUFTQSxDQUFVO0FDckIzQyxNQUFNQSxhQUF1QjtJQUNsQztRQUFDLE1BQVE7UUFBQTtZQUFFLEdBQUcsQ0FBd0I7WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0lBQ3JEO1FBQUMsTUFBUTtRQUFBO1lBQUUsR0FBRyxDQUF1QjtZQUFBLEtBQUs7UUFBQSxDQUFVO0tBQUE7SUFDcEQ7UUFDRTtRQUNBO1lBQ0UsQ0FBRztZQUNILEdBQUs7UUFBQTtLQUNQO0NBRUo7QUFhTSxrQkFBYyxrQkFBaUIsaUJBQWdCQSxDQUFVO0FDdkJ4RCxNQUFNQSxhQUF1QjtJQUNsQztRQUFDLE1BQVE7UUFBQTtZQUFFLEdBQUcsQ0FBYztZQUFBLEtBQUs7UUFBQSxDQUFVO0tBQUE7SUFDM0M7UUFBQyxNQUFRO1FBQUE7WUFBRSxHQUFHLENBQWM7WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0lBQzNDO1FBQUMsTUFBUTtRQUFBO1lBQUUsR0FBRyxDQUFZO1lBQUEsS0FBSztRQUFBLENBQVU7S0FBQTtJQUN6QztRQUFDLE1BQVE7UUFBQTtZQUFFLEdBQUcsQ0FBK0Q7WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0lBQzVGO1FBQUMsTUFBUTtRQUFBO1lBQUUsR0FBRyxDQUFnQjtZQUFBLEtBQUs7UUFBQSxDQUFVO0tBQUE7SUFDN0M7UUFBQyxNQUFRO1FBQUE7WUFBRSxHQUFHLENBQWE7WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0lBQzFDO1FBQUMsQ0FBUTtRQUFBLENBQUU7WUFBQSxFQUFHLFlBQWE7WUFBQSxJQUFLO1FBQVU7S0FBQTtDQUM1QztBQWFNLHFCQUFpQixrQkFBaUIsb0JBQW1CQSxDQUFVO0FDckI5RCxNQUFNQSxhQUF1QjtJQUNsQztRQUFDLFFBQVU7UUFBQTtZQUFFLEVBQUk7WUFBSyxDQUFJLFFBQU07WUFBQSxDQUFHO1lBQUssR0FBSztRQUFBLENBQVU7S0FBQTtJQUN2RDtRQUFDLFFBQVU7UUFBQTtZQUFFLEVBQUk7WUFBTSxDQUFJLFFBQU07WUFBQSxDQUFHO1lBQUssR0FBSztRQUFBLENBQVU7S0FBQTtJQUN4RDtRQUNFO1FBQ0E7WUFDRSxDQUFHO1lBQ0gsR0FBSztRQUFBO0tBQ1A7Q0FFSjtBQWFNLG1CQUFlLGtCQUFpQixrQkFBaUJBLENBQVU7QUN2QjFELE1BQU1BLGFBQXVCO0lBQ2xDO1FBQUMsTUFBUTtRQUFBO1lBQUUsR0FBRyxDQUF5QjtZQUFBLEtBQUs7UUFBQSxDQUFVO0tBQUE7SUFDdEQ7UUFBQyxNQUFRO1FBQUE7WUFBRSxHQUFHLENBQWtCO1lBQUEsS0FBSztRQUFBLENBQVU7S0FBQTtJQUMvQztRQUNFO1FBQ0E7WUFBRSxHQUFHLHFFQUF1RTtZQUFBLEtBQUssQ0FBUztRQUFBO0tBQUE7Q0FFOUY7QUFhTSxhQUFTLGtCQUFpQixXQUFVQSxDQUFVO0FDcEI3QyxNQUFNQSxhQUF1QjtJQUNsQztRQUFDLE1BQVE7UUFBQTtZQUFFLEdBQUcsQ0FBZ0I7WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0lBQzdDO1FBQUMsTUFBUTtRQUFBO1lBQUUsR0FBRyxDQUFpQztZQUFBLEtBQUs7UUFBQSxDQUFVO0tBQUE7SUFDOUQ7UUFBQyxNQUFRO1FBQUE7WUFBRSxHQUFHLENBQWM7WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0lBQzNDO1FBQUMsTUFBUTtRQUFBO1lBQUUsR0FBRyxDQUFjO1lBQUEsS0FBSztRQUFBLENBQVU7S0FBQTtJQUMzQztRQUFDLE1BQVE7UUFBQTtZQUFFLEdBQUcsQ0FBYztZQUFBLEtBQUs7UUFBQSxDQUFVO0tBQUE7SUFDM0M7UUFBQyxNQUFRO1FBQUE7WUFBRSxHQUFHLENBQWM7WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0lBQzNDO1FBQUMsTUFBUTtRQUFBO1lBQUUsR0FBRyxDQUFjO1lBQUEsS0FBSztRQUFBLENBQVU7S0FBQTtJQUMzQztRQUFDLE1BQVE7UUFBQTtZQUFFLEdBQUcsQ0FBYztZQUFBLEtBQUs7UUFBQSxDQUFVO0tBQUE7SUFDM0M7UUFBQyxNQUFRO1FBQUE7WUFBRSxHQUFHLENBQWM7WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0lBQzNDO1FBQUMsQ0FBUTtRQUFBLENBQUU7WUFBQSxFQUFHLGFBQWM7WUFBQSxJQUFLO1FBQVU7S0FBQTtDQUM3QztBQWFNLGlCQUFhLGtCQUFpQixnQkFBZUEsQ0FBVTtBQ3hCdEQsTUFBTUEsYUFBdUI7SUFDbEM7UUFBQyxNQUFRO1FBQUE7WUFBRSxHQUFHLENBQWE7WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0lBQzFDO1FBQUMsTUFBUTtRQUFBO1lBQUUsR0FBRyxDQUFhO1lBQUEsS0FBSztRQUFBLENBQVU7S0FBQTtJQUMxQztRQUFDLE1BQVE7UUFBQTtZQUFFLEdBQUcsQ0FBMkI7WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0lBQ3hEO1FBQUMsTUFBUTtRQUFBO1lBQUUsR0FBRyxDQUFhO1lBQUEsS0FBSztRQUFBLENBQVU7S0FBQTtJQUMxQztRQUFDLE1BQVE7UUFBQTtZQUFFLEdBQUcsQ0FBWTtZQUFBLEtBQUs7UUFBQSxDQUFVO0tBQUE7SUFDekM7UUFBQyxNQUFRO1FBQUE7WUFBRSxHQUFHLENBQW1DO1lBQUEsS0FBSztRQUFBLENBQVU7S0FBQTtJQUNoRTtRQUFDLENBQVE7UUFBQSxDQUFFO1lBQUEsRUFBRyxXQUFZO1lBQUEsSUFBSztRQUFVO0tBQUE7Q0FDM0M7QUFhTSxlQUFXLGtCQUFpQixhQUFZQSxDQUFVO0FDckJqRCxNQUFNQSxhQUF1QjtJQUNsQztRQUFDLE1BQVE7UUFBQTtZQUFFLEdBQUcsQ0FBYztZQUFBLEtBQUs7UUFBQSxDQUFVO0tBQUE7SUFDM0M7UUFBQyxNQUFRO1FBQUE7WUFBRSxHQUFHLENBQStDO1lBQUEsS0FBSztRQUFBLENBQVU7S0FBQTtJQUM1RTtRQUNFO1FBQ0E7WUFDRSxDQUFHO1lBQ0gsR0FBSztRQUFBO0tBRVQ7SUFDQTtRQUFDLE1BQVE7UUFBQTtZQUFFLEdBQUcsQ0FBMkI7WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0lBQ3hEO1FBQUMsQ0FBUTtRQUFBLENBQUU7WUFBQSxFQUFHLHVCQUF3QjtZQUFBLElBQUs7UUFBVTtLQUFBO0NBQ3ZEO0FBYU0sYUFBUyxrQkFBaUIsV0FBVUEsQ0FBVTtBQ3pCN0MsTUFBTUEsYUFBdUI7SUFDbEM7UUFBQyxNQUFRO1FBQUE7WUFBRSxHQUFHLENBQWlDO1lBQUEsS0FBSztRQUFBLENBQVU7S0FBQTtJQUM5RDtRQUFDLE1BQVE7UUFBQTtZQUFFLEdBQUcsQ0FBZ0M7WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0lBQzdEO1FBQUMsTUFBUTtRQUFBO1lBQUUsR0FBRyxDQUE4QjtZQUFBLEtBQUs7UUFBQSxDQUFVO0tBQUE7SUFDM0Q7UUFBQyxDQUFRO1FBQUEsQ0FBRTtZQUFBLEVBQUcsMkJBQTRCO1lBQUEsSUFBSztRQUFVO0tBQUE7Q0FDM0Q7QUFhTSxhQUFTLGtCQUFpQixXQUFVQSxDQUFVO0FDbEI3QyxNQUFNQSxhQUF1QjtJQUNsQztRQUFDLE1BQVE7UUFBQTtZQUFFLEdBQUcsQ0FBK0M7WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0lBQzVFO1FBQUMsTUFBUTtRQUFBO1lBQUUsR0FBRyxDQUFvQjtZQUFBLEtBQUs7UUFBQSxDQUFVO0tBQUE7SUFDakQ7UUFBQyxDQUFRO1FBQUEsQ0FBRTtZQUFBLEVBQUcsaUVBQWtFO1lBQUEsSUFBSztRQUFVO0tBQUE7Q0FDakc7QUFhTSxZQUFRLGtCQUFpQixVQUFTQSxDQUFVO0FDakIzQyxNQUFNQSxhQUF1QjtJQUNsQztRQUFDLE1BQVE7UUFBQTtZQUFFLEdBQUcsQ0FBa0I7WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0lBQy9DO1FBQUMsTUFBUTtRQUFBO1lBQUUsR0FBRyxDQUFpQjtZQUFBLEtBQUs7UUFBQSxDQUFVO0tBQUE7SUFDOUM7UUFBQyxNQUFRO1FBQUE7WUFBRSxHQUFHLENBQWdFO1lBQUEsS0FBSztRQUFBLENBQVU7S0FBQTtJQUM3RjtRQUFDLE1BQVE7UUFBQTtZQUFFLEdBQUcsQ0FBZ0M7WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0lBQzdEO1FBQUMsQ0FBUTtRQUFBLENBQUU7WUFBQSxFQUFHLDRDQUE2QztZQUFBLElBQUs7UUFBVTtLQUFBO0NBQzVFO0FBYU0sY0FBVSxrQkFBaUIsWUFBV0EsQ0FBVTtBQ25CL0MsTUFBTUEsYUFBdUI7SUFDbEM7UUFDRTtRQUNBO1lBQ0UsQ0FBRztZQUNILEdBQUs7UUFBQTtLQUNQO0NBRUo7QUFhTSxZQUFRLGtCQUFpQixVQUFTQSxDQUFVO0FDckIzQyxNQUFNQSxhQUF1QjtJQUNsQztRQUFDLE1BQVE7UUFBQTtZQUFFLEdBQUcsQ0FBYTtZQUFBLEtBQUs7UUFBQSxDQUFVO0tBQUE7SUFDMUM7UUFBQyxNQUFRO1FBQUE7WUFBRSxHQUFHLENBQVk7WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0lBQ3pDO1FBQUMsTUFBUTtRQUFBO1lBQUUsR0FBRyxDQUFhO1lBQUEsS0FBSztRQUFBLENBQVU7S0FBQTtJQUMxQztRQUFDLENBQVE7UUFBQSxDQUFFO1lBQUEsRUFBRyxXQUFZO1lBQUEsSUFBSztRQUFVO0tBQUE7Q0FDM0M7QUFhTSxpQkFBYSxrQkFBaUIsZ0JBQWVBLENBQVU7QUNsQnRELE1BQU1BLGFBQXVCO0lBQ2xDO1FBQUMsTUFBUTtRQUFBO1lBQUUsR0FBRyxDQUFhO1lBQUEsS0FBSztRQUFBLENBQVU7S0FBQTtJQUMxQztRQUFDLENBQVE7UUFBQSxDQUFFO1lBQUEsRUFBRyxXQUFZO1lBQUEsSUFBSztRQUFVO0tBQUE7Q0FDM0M7QUFhTSxnQkFBWSxrQkFBaUIsZUFBY0EsQ0FBVTtBQ2hCcEQsTUFBTUEsYUFBdUI7SUFDbEM7UUFBQyxNQUFRO1FBQUE7WUFBRSxHQUFHLENBQWE7WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0lBQzFDO1FBQUMsTUFBUTtRQUFBO1lBQUUsR0FBRyxDQUFZO1lBQUEsS0FBSztRQUFBLENBQVU7S0FBQTtJQUN6QztRQUFDLENBQVE7UUFBQSxDQUFFO1lBQUEsRUFBRyxZQUFhO1lBQUEsSUFBSztRQUFVO0tBQUE7Q0FDNUM7QUFhTSxtQkFBZSxrQkFBaUIsa0JBQWlCQSxDQUFVO0FDakJwRCxNQUFBQSxhQUFBLENBQXVCO0lBQUM7UUFBQyxNQUFRO1FBQUEsQ0FBRTtZQUFBLEVBQUcsWUFBYTtZQUFBLEtBQUssQ0FBUztRQUFBLENBQUM7S0FBQztDQUFBO0FBYTFFLGlCQUFhLGtCQUFpQixnQkFBZUEsQ0FBVTtBQ2J0RCxNQUFNQSxhQUF1QjtJQUNsQztRQUFDLE1BQVE7UUFBQTtZQUFFLEdBQUcsQ0FBYTtZQUFBLEtBQUs7UUFBQSxDQUFVO0tBQUE7SUFDMUM7UUFBQyxNQUFRO1FBQUE7WUFBRSxHQUFHLENBQVk7WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0lBQ3pDO1FBQUMsTUFBUTtRQUFBO1lBQUUsR0FBRyxDQUFhO1lBQUEsS0FBSztRQUFBLENBQVU7S0FBQTtJQUMxQztRQUFDLE1BQVE7UUFBQTtZQUFFLEdBQUcsQ0FBWTtZQUFBLEtBQUs7UUFBQSxDQUFVO0tBQUE7SUFDekM7UUFBQyxDQUFRO1FBQUEsQ0FBRTtZQUFBLEVBQUcsV0FBWTtZQUFBLElBQUs7UUFBVTtLQUFBO0NBQzNDO0FBYU0sYUFBUyxrQkFBaUIsV0FBVUEsQ0FBVTtBQ25CN0MsTUFBTUEsYUFBdUI7SUFDbEM7UUFDRTtRQUNBO1lBQ0UsQ0FBRztZQUNILEdBQUs7UUFBQTtLQUVUO0lBQ0E7UUFBQyxDQUFRO1FBQUEsQ0FBRTtZQUFBLEVBQUcsV0FBWTtZQUFBLElBQUs7UUFBVTtLQUFBO0NBQzNDO0FBYU0sZ0JBQVksa0JBQWlCLGNBQWFBLENBQVU7QUN0Qm5ELE1BQU1BLGFBQXVCO0lBQ2xDO1FBQUMsTUFBUTtRQUFBO1lBQUUsR0FBRyxDQUFxQjtZQUFBLEtBQUs7UUFBQSxDQUFVO0tBQUE7SUFDbEQ7UUFBQyxNQUFRO1FBQUE7WUFBRSxHQUFHLENBQXNCO1lBQUEsS0FBSztRQUFBLENBQVU7S0FBQTtJQUNuRDtRQUFDLE1BQVE7UUFBQTtZQUFFLEdBQUcsQ0FBNkI7WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0lBQzFEO1FBQUMsQ0FBUTtRQUFBLENBQUU7WUFBQSxFQUFHLFVBQVc7WUFBQSxJQUFLO1FBQVU7S0FBQTtDQUMxQztBQWFNLGtCQUFjLGtCQUFpQixpQkFBZ0JBLENBQVU7QUNsQnhELE1BQU1BLGFBQXVCO0lBQ2xDO1FBQUMsTUFBUTtRQUFBO1lBQUUsR0FBRyxDQUE2QjtZQUFBLEtBQUs7UUFBQSxDQUFVO0tBQUE7SUFDMUQ7UUFDRTtRQUNBO1lBQUUsR0FBRyx3RUFBMEU7WUFBQSxLQUFLLENBQVM7UUFBQTtLQUMvRjtJQUNBO1FBQUMsTUFBUTtRQUFBO1lBQUUsR0FBRyxDQUFZO1lBQUEsS0FBSztRQUFBLENBQVU7S0FBQTtJQUN6QztRQUFDLE1BQVE7UUFBQTtZQUFFLEdBQUcsQ0FBa0I7WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0lBQy9DO1FBQUMsTUFBUTtRQUFBO1lBQUUsR0FBRyxDQUFXO1lBQUEsS0FBSztRQUFBLENBQVU7S0FBQTtJQUN4QztRQUFDLE1BQVE7UUFBQTtZQUFFLEdBQUcsQ0FBVztZQUFBLEtBQUs7UUFBQSxDQUFVO0tBQUE7SUFDeEM7UUFBQyxNQUFRO1FBQUE7WUFBRSxHQUFHLENBQXdCO1lBQUEsS0FBSztRQUFBLENBQVU7S0FBQTtJQUNyRDtRQUFDLENBQVE7UUFBQSxDQUFFO1lBQUEsRUFBRyxXQUFZO1lBQUEsSUFBSztRQUFVO0tBQUE7Q0FDM0M7QUFhTSxZQUFRLGtCQUFpQixVQUFTQSxDQUFVO0FDekIzQyxNQUFNQSxhQUF1QjtJQUNsQztRQUFDLE1BQVE7UUFBQTtZQUFFLEdBQUcsQ0FBWTtZQUFBLEtBQUs7UUFBQSxDQUFVO0tBQUE7SUFDekM7UUFBQyxNQUFRO1FBQUE7WUFBRSxHQUFHLENBQVc7WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0lBQ3hDO1FBQ0U7UUFDQTtZQUNFLENBQUc7WUFDSCxHQUFLO1FBQUE7S0FDUDtDQUVKO0FBYU0sZUFBVyxrQkFBaUIsYUFBWUEsQ0FBVTtBQ3ZCakQsTUFBTUEsYUFBdUI7SUFDbEM7UUFBQyxTQUFXO1FBQUE7WUFBRSxRQUFRLENBQXlCO1lBQUEsS0FBSztRQUFBLENBQVM7S0FBQTtJQUM3RDtRQUFDLE9BQVE7UUFBQTtZQUFFLEdBQUksSUFBSztZQUFBLEdBQUksSUFBSztZQUFBLElBQUksQ0FBTTtZQUFBLElBQUksR0FBSztZQUFBLElBQUs7UUFBVTtLQUFBO0NBQ2pFO0FBYU0sZUFBVyxrQkFBaUIsY0FBYUEsQ0FBVTtBQ2hCbEQsTUFBTUEsYUFBdUI7SUFDbEM7UUFBQyxNQUFRO1FBQUE7WUFBRSxHQUFHLENBQXlCO1lBQUEsS0FBSztRQUFBLENBQVU7S0FBQTtJQUN0RDtRQUNFO1FBQ0E7WUFDRSxDQUFHO1lBQ0gsR0FBSztRQUFBO0tBRVQ7SUFDQTtRQUFDLFFBQVU7UUFBQTtZQUFFLEVBQUk7WUFBTSxDQUFJLFFBQU07WUFBQSxDQUFHO1lBQUssR0FBSztRQUFBLENBQVU7S0FBQTtJQUN4RDtRQUFDLENBQVU7UUFBQTtZQUFFLENBQUksT0FBSztZQUFBLEVBQUk7WUFBTSxDQUFHO1lBQUssQ0FBSztRQUFVO0tBQUE7Q0FDekQ7QUFhTSxZQUFRLGtCQUFpQixVQUFTQSxDQUFVO0FDeEIzQyxNQUFNQSxhQUF1QjtJQUNsQztRQUFDLFNBQVc7UUFBQTtZQUFFLFFBQVEsQ0FBc0I7WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0lBQzNEO1FBQUMsT0FBUTtRQUFBO1lBQUUsR0FBSSxLQUFNO1lBQUEsR0FBSSxLQUFNO1lBQUEsSUFBSSxDQUFLO1lBQUEsSUFBSSxJQUFNO1lBQUEsSUFBSztRQUFVO0tBQUE7Q0FDbkU7QUFhTSxrQkFBYyxrQkFBaUIsaUJBQWdCQSxDQUFVO0FDaEJ4RCxNQUFNQSxhQUF1QjtJQUNsQztRQUFDLE9BQVE7UUFBQTtZQUFFLE9BQU87WUFBSyxDQUFRO1lBQUssQ0FBRztZQUFNLEdBQUcsQ0FBSztZQUFBLElBQUksQ0FBTztZQUFBLEtBQUs7UUFBQSxDQUFVO0tBQUE7SUFDL0U7UUFBQyxNQUFRO1FBQUE7WUFBRSxHQUFHLENBQXVDO1lBQUEsS0FBSztRQUFBLENBQVU7S0FBQTtJQUNwRTtRQUFDLE9BQVE7UUFBQTtZQUFFLE9BQU87WUFBSyxDQUFRO1lBQUssQ0FBRztZQUFLLEdBQUcsQ0FBTTtZQUFBLElBQUksQ0FBTztZQUFBLEtBQUs7UUFBQSxDQUFVO0tBQUE7SUFDL0U7UUFBQyxNQUFRO1FBQUE7WUFBRSxHQUFHLENBQXVDO1lBQUEsS0FBSztRQUFBLENBQVU7S0FBQTtJQUNwRTtRQUFDLE9BQVE7UUFBQTtZQUFFLE9BQU87WUFBSyxDQUFRO1lBQUssQ0FBRztZQUFNLEdBQUcsQ0FBTTtZQUFBLElBQUksQ0FBTztZQUFBLEtBQUs7UUFBQSxDQUFVO0tBQUE7SUFDaEY7UUFBQyxNQUFRO1FBQUE7WUFBRSxHQUFHLENBQXlDO1lBQUEsS0FBSztRQUFBLENBQVU7S0FBQTtJQUN0RTtRQUFDLE9BQVE7UUFBQTtZQUFFLE9BQU87WUFBSyxDQUFRO1lBQUssQ0FBRztZQUFLLEdBQUcsQ0FBSztZQUFBLElBQUksQ0FBTztZQUFBLEtBQUs7UUFBQSxDQUFVO0tBQUE7SUFDOUU7UUFBQyxDQUFRO1FBQUEsQ0FBRTtZQUFBLEVBQUcsb0NBQXFDO1lBQUEsSUFBSztRQUFVO0tBQUE7Q0FDcEU7QUFhTSxZQUFRLGtCQUFpQixVQUFTQSxDQUFVO0FDdEJyQyxNQUFBQSxhQUFBLENBQXVCO0lBQUM7UUFBQyxNQUFRO1FBQUEsQ0FBRTtZQUFBLEVBQUcsYUFBYztZQUFBLEtBQUssQ0FBUztRQUFBLENBQUM7S0FBQztDQUFBO0FBYTNFLFlBQVEsa0JBQWlCLFVBQVNBLENBQVU7QUNiM0MsTUFBTUEsYUFBdUI7SUFDbEM7UUFDRTtRQUNBO1lBQ0UsQ0FBRztZQUNILEdBQUs7UUFBQTtLQUNQO0NBRUo7QUFhTSxZQUFRLGtCQUFpQixVQUFTQSxDQUFVO0FDckIzQyxNQUFNQSxhQUF1QjtJQUNsQztRQUFDO1FBQVEsQ0FBRTtZQUFBLElBQUksQ0FBTTtZQUFBLElBQUksQ0FBTTtZQUFBLEdBQUksSUFBSztZQUFBLEdBQUksSUFBSztZQUFBLEtBQUs7UUFBQSxDQUFVO0tBQUE7SUFDaEU7UUFBQztRQUFRLENBQUU7WUFBQSxJQUFJLENBQU07WUFBQSxJQUFJLENBQUs7WUFBQSxHQUFJLElBQUs7WUFBQSxHQUFJLElBQUs7WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0lBQy9EO1FBQUM7UUFBUSxDQUFFO1lBQUEsSUFBSSxDQUFNO1lBQUEsSUFBSSxDQUFNO1lBQUEsR0FBSSxLQUFNO1lBQUEsR0FBSSxLQUFNO1lBQUEsS0FBSztRQUFBLENBQVU7S0FBQTtJQUNsRTtRQUFDO1FBQVEsQ0FBRTtZQUFBLElBQUksQ0FBSztZQUFBLElBQUksQ0FBSztZQUFBLEdBQUksS0FBTTtZQUFBLEdBQUksS0FBTTtZQUFBLEtBQUs7UUFBQSxDQUFVO0tBQUE7SUFDaEU7UUFBQztRQUFRLENBQUU7WUFBQSxJQUFJLENBQU07WUFBQSxJQUFJLENBQU07WUFBQSxHQUFJLEtBQU07WUFBQSxHQUFJLEtBQU07WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0lBQ2xFO1FBQUM7UUFBUSxDQUFFO1lBQUEsSUFBSSxDQUFNO1lBQUEsSUFBSSxDQUFLO1lBQUEsR0FBSSxLQUFNO1lBQUEsR0FBSSxLQUFNO1lBQUEsS0FBSztRQUFBLENBQVU7S0FBQTtJQUNqRTtRQUFDO1FBQVEsQ0FBRTtZQUFBLElBQUksQ0FBTTtZQUFBLElBQUksQ0FBTTtZQUFBLEdBQUksSUFBSztZQUFBLEdBQUksSUFBSztZQUFBLEtBQUs7UUFBQSxDQUFVO0tBQUE7SUFDaEU7UUFBQztRQUFRLENBQUU7WUFBQSxJQUFJLENBQUs7WUFBQSxJQUFJLENBQUs7WUFBQSxHQUFJLEtBQU07WUFBQSxHQUFJLEtBQU07WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0lBQ2hFO1FBQUMsT0FBUTtRQUFBO1lBQUUsR0FBSSxLQUFNO1lBQUEsR0FBSSxLQUFNO1lBQUEsSUFBSSxDQUFNO1lBQUEsSUFBSSxJQUFNO1lBQUEsSUFBSztRQUFVO0tBQUE7Q0FDcEU7QUFhTSx3QkFBb0Isa0JBQWlCLHVCQUFzQkEsQ0FBVTtBQ3ZCcEUsTUFBTUEsYUFBdUI7SUFDbEM7UUFBQztRQUFRLENBQUU7WUFBQSxJQUFJLENBQUs7WUFBQSxJQUFJLENBQUs7WUFBQSxHQUFJLEtBQU07WUFBQSxHQUFJLEtBQU07WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0lBQ2hFO1FBQUM7UUFBUSxDQUFFO1lBQUEsSUFBSSxDQUFLO1lBQUEsSUFBSSxDQUFLO1lBQUEsR0FBSSxLQUFNO1lBQUEsR0FBSSxJQUFLO1lBQUEsS0FBSztRQUFBLENBQVU7S0FBQTtJQUMvRDtRQUFDO1FBQVEsQ0FBRTtZQUFBLElBQUksQ0FBTTtZQUFBLElBQUksQ0FBTTtZQUFBLEdBQUksS0FBTTtZQUFBLEdBQUksS0FBTTtZQUFBLEtBQUs7UUFBQSxDQUFVO0tBQUE7SUFDbEU7UUFBQztRQUFRLENBQUU7WUFBQSxJQUFJLENBQU07WUFBQSxJQUFJLENBQU07WUFBQSxHQUFJLElBQUs7WUFBQSxHQUFJLElBQUs7WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0lBQ2hFO1FBQUM7UUFBUSxDQUFFO1lBQUEsSUFBSSxDQUFNO1lBQUEsSUFBSSxDQUFNO1lBQUEsR0FBSSxLQUFNO1lBQUEsR0FBSSxLQUFNO1lBQUEsS0FBSztRQUFBLENBQVU7S0FBQTtJQUNsRTtRQUFDO1FBQVEsQ0FBRTtZQUFBLElBQUksQ0FBTTtZQUFBLElBQUksQ0FB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UUFBVTtLQUFBO0NBQ25FO0FBYU0sYUFBUyxrQkFBaUIsWUFBV0EsQ0FBVTtBQ2xCOUMsTUFBTSxVQUF1QjtJQUNsQztRQUFDLFFBQVU7UUFBQTtZQUFFLEVBQUk7WUFBTSxDQUFJLFFBQU07WUFBQSxDQUFHO1lBQUssR0FBSztRQUFBLENBQVU7S0FBQTtJQUN4RDtRQUFDO1FBQVEsQ0FBRTtZQUFBLElBQUksQ0FBTTtZQUFBLElBQUksQ0FBUztZQUFBLEdBQUksS0FBTTtZQUFBLEdBQUksUUFBUztZQUFBLEtBQUs7UUFBQSxDQUFVO0tBQUE7SUFDeEU7UUFBQyxPQUFRO1FBQUE7WUFBRSxHQUFJLElBQUs7WUFBQSxHQUFJLEtBQU07WUFBQSxJQUFJLENBQU07WUFBQSxJQUFJLElBQU07WUFBQSxJQUFLO1FBQVU7S0FBQTtDQUNuRTtBQWFNLGNBQVUsa0JBQWlCLGFBQVksQ0FBVSIsInNvdXJjZXMiOlsiRDpcXHNoYXJlZFxcc3JjXFx1dGlscy50cyIsIkQ6XFxzcmNcXGRlZmF1bHRBdHRyaWJ1dGVzLnRzIiwiRDpcXHNyY1xcSWNvbi50cyIsIkQ6XFxzcmNcXGNyZWF0ZUx1Y2lkZUljb24udHMiLCJEOlxcc3JjXFxpY29uc1xcYS1hcnJvdy1kb3duLnRzIiwiRDpcXHNyY1xcaWNvbnNcXGEtbGFyZ2Utc21hbGwudHMiLCJEOlxcc3JjXFxpY29uc1xcYS1hcnJvdy11cC50cyIsIkQ6XFxzcmNcXGljb25zXFxhY2Nlc3NpYmlsaXR5LnRzIiwiRDpcXHNyY1xcaWNvbnNcXGFjdGl2aXR5LnRzIiwiRDpcXHNyY1xcaWNvbnNcXGFpci12ZW50LnRzIiwiRDpcXHNyY1xcaWNvbnNcXGFpcnBsYXkudHMiLCJEOlxcc3JjXFxpY29uc1xcYWxhcm0tY2xvY2stY2hlY2sudHMiLCJEOlxcc3JjXFxpY29uc1xcYWxhcm0tY2xvY2stbWludXMudHMiLCJEOlxcc3JjXFxpY29uc1xcYWxhcm0tY2xvY2stb2ZmLnRzIiwiRDpcXHNyY1xcaWNvbnNcXGFsYXJtLWNsb2NrLXBsdXMudHMiLCJEOlxcc3JjXFxpY29uc1xcYWxhcm0tY2xvY2sudHMiLCJEOlxcc3JjXFxpY29uc1xcYWxhcm0tc21va2UudHMiLCJEOlxcc3JjXFxpY29uc1xcYWxidW0udHMiLCJEOlxcc3JjXFxpY29uc1xcYWxpZ24tY2VudGVyLWhvcml6b250YWwudHMiLCJEOlxcc3JjXFxpY29uc1xcYWxpZ24tY2VudGVyLXZlcnRpY2FsLnRzIiwiRDpcXHNyY1xcaWNvbnNcXGFsaWduLWNlbnRlci50cyIsIkQ6XFxzcmNcXGljb25zXFxhbGlnbi1lbmQtaG9yaXpvbnRhbC50cyIsIkQ6XFxzcmNcXGljb25zXFxhbGlnbi1lbmQtdmVydGljYWwudHMiLCJEOlxcc3JjXFxpY29uc1xcYWxpZ24taG9yaXpvbnRhbC1kaXN0cmlidXRlLWNlbnRlci50cyIsIkQ6XFxzcmNcXGljb25zXFxhbGlnbi1ob3Jpem9udGFsLWRpc3RyaWJ1dGUtZW5kLnRzIiwiRDpcXHNyY1xcaWNvbnNcXGFsaWduLWhvcml6b250YWwtZGlzdHJpYnV0ZS1zdGFydC50cyIsIkQ6XFxzcmNcXGljb25zXFxhbGlnbi1ob3Jpem9udGFsLWp1c3RpZnktY2VudGVyLnRzIiwiRDpcXHNyY1xcaWNvbnNcXGFsaWduLWhvcml6b250YWwtanVzdGlmeS1lbmQudHMiLCJEOlxcc3JjXFxpY29uc1xcYWxpZ24taG9yaXpvbnRhbC1qdXN0aWZ5LXN0YXJ0LnRzIiwiRDpcXHNyY1xcaWNvbnNcXGFsaWduLWhvcml6b250YWwtc3BhY2UtYXJvdW5kLnRzIiwiRDpcXHNyY1xcaWNvbnNcXGFsaWduLWhvcml6b250YWwtc3BhY2UtYmV0d2Vlbi50cyIsIkQ6XFxzcmNcXGljb25zXFxhbGlnbi1qdXN0aWZ5LnRzIiwiRDpcXHNyY1xcaWNvbnNcXGFsaWduLWxlZnQudHMiLCJEOlxcc3JjXFxpY29uc1xcYWxpZ24tcmlnaHQudHMiLCJEOlxcc3JjXFxpY29uc1xcYWxpZ24tc3RhcnQtaG9yaXpvbnRhbC50cyIsIkQ6XFxzcmNcXGljb25zXFxhbGlnbi1zdGFydC12ZXJ0aWNhbC50cyIsIkQ6XFxzcmNcXGljb25zXFxhbGlnbi12ZXJ0aWNhbC1kaXN0cmlidXRlLWNlbnRlci50cyIsIkQ6XFxzcmNcXGljb25zXFxhbGlnbi12ZXJ0aWNhbC1kaXN0cmlidXRlLWVuZC50cyIsIkQ6XFxzcmNcXGljb25zXFxhbGlnbi12ZXJ0aWNhbC1kaXN0cmlidXRlLXN0YXJ0LnRzIiwiRDpcXHNyY1xcaWNvbnNcXGFsaWduLXZlcnRpY2FsLWp1c3RpZnktY2VudGVyLnRzIiwiRDpcXHNyY1xcaWNvbnNcXGFsaWduLXZlcnRpY2FsLWp1c3RpZnktZW5kLnRzIiwiRDpcXHNyY1xcaWNvbnNcXGFsaWduLXZlcnRpY2FsLWp1c3RpZnktc3RhcnQudHMiLCJEOlxcc3JjXFxpY29uc1xcYWxpZ24tdmVydGljYWwtc3BhY2UtYXJvdW5kLnRzIiwiRDpcXHNyY1xcaWNvbnNcXGFsaWduLXZlcnRpY2FsLXNwYWNlLWJldHdlZW4udHMiLCJEOlxcc3JjXFxpY29uc1xcYW1idWxhbmNlLnRzIiwiRDpcXHNyY1xcaWNvbnNcXGFtcGVyc2FuZC50cyIsIkQ6XFxzcmNcXGljb25zXFxhbXBlcnNhbmRzLnRzIiwiRDpcXHNyY1xcaWNvbnNcXGFtcGhvcmEudHMiLCJEOlxcc3JjXFxpY29uc1xcYW5jaG9yLnRzIiwiRDpcXHNyY1xcaWNvbnNcXGFuZ3J5LnRzIiwiRDpcXHNyY1xcaWNvbnNcXGFubm95ZWQudHMiLCJEOlxcc3JjXFxpY29uc1xcYW50ZW5uYS50cyIsIkQ6XFxzcmNcXGljb25zXFxhbnZpbC50cyIsIkQ6XFxzcmNcXGljb25zXFxhcGVydHVyZS50cyIsIkQ6XFxzcmNcXGljb25zXFxhcHAtd2luZG93LW1hYy50cyIsIkQ6XFxzcmNcXGljb25zXFxhcHAtd2luZG93LnRzIiwiRDpcXHNyY1xcaWNvbnNcXGFwcGxlLnRzIiwiRDpcXHNyY1xcaWNvbnNcXGFyY2hpdmUtcmVzdG9yZS50cyIsIkQ6XFxzcmNcXGljb25zXFxhcmNoaXZlLXgudHMiLCJEOlxcc3JjXFxpY29uc1xcYXJjaGl2ZS50cyIsIkQ6XFxzcmNcXGljb25zXFxhcm1jaGFpci50cyIsIkQ6XFxzcmNcXGljb25zXFxhcnJvdy1iaWctZG93bi1kYXNoLnRzIiwiRDpcXHNyY1xcaWNvbnNcXGFycm93LWJpZy1kb3duLnRzIiwiRDpcXHNyY1xcaWNvbnNcXGFycm93LWJpZy1sZWZ0LWRhc2gudHMiLCJEOlxcc3JjXFxpY29uc1xcYXJyb3ctYmlnLWxlZnQudHMiLCJEOlxcc3JjXFxpY29uc1xcYXJyb3ctYmlnLXJpZ2h0LWRhc2gudHMiLCJEOlxcc3JjXFxpY29uc1xcYXJyb3ctYmlnLXJpZ2h0LnRzIiwiRDpcXHNyY1xcaWNvbnNcXGFycm93LWJpZy11cC1kYXNoLnRzIiwiRDpcXHNyY1xcaWNvbnNcXGFycm93LWJpZy11cC50cyIsIkQ6XFxzcmNcXGljb25zXFxhcnJvdy1kb3duLTAtMS50cyIsIkQ6XFxzcmNcXGljb25zXFxhcnJvdy1kb3duLTEtMC50cyIsIkQ6XFxzcmNcXGljb25zXFxhcnJvdy1kb3duLWEtei50cyIsIkQ6XFxzcmNcXGljb25zXFxhcnJvdy1kb3duLWZyb20tbGluZS50cyIsIkQ6XFxzcmNcXGljb25zXFxhcnJvdy1kb3duLWxlZnQudHMiLCJEOlxcc3JjXFxpY29uc1xcYXJyb3ctZG93bi1uYXJyb3ctd2lkZS50cyIsIkQ6XFxzcmNcXGljb25zXFxhcnJvdy1kb3duLXJpZ2h0LnRzIiwiRDpcXHNyY1xcaWNvbnNcXGFycm93LWRvd24tdG8tZG90LnRzIiwiRDpcXHNyY1xcaWNvbnNcXGFycm93LWRvd24tdG8tbGluZS50cyIsIkQ6XFxzcmNcXGljb25zXFxhcnJvdy1kb3duLXVwLnRzIiwiRDpcXHNyY1xcaWNvbnNcXGFycm93LWRvd24td2lkZS1uYXJyb3cudHMiLCJEOlxcc3JjXFxpY29uc1xcYXJyb3ctZG93bi16LWEudHMiLCJEOlxcc3JjXFxpY29uc1xcYXJyb3ctZG93bi50cyIsIkQ6XFxzcmNcXGljb25zXFxhcnJvdy1sZWZ0LWZyb20tbGluZS50cyIsIkQ6XFxzcmNcXGljb25zXFxhcnJvdy1sZWZ0LXJpZ2h0LnRzIiwiRDpcXHNyY1xcaWNvbnNcXGFycm93LWxlZnQtdG8tbGluZS50cyIsIkQ6XFxzcmNcXGljb25zXFxhcnJvdy1sZWZ0LnRzIiwiRDpcXHNyY1xcaWNvbnNcXGFycm93LXJpZ2h0LWxlZnQudHMiLCJEOlxcc3JjXFxpY29uc1xcYXJyb3ctcmlnaHQtdG8tbGluZS50cyIsIkQ6XFxzcmNcXGljb25zXFxhcnJvdy1yaWdodC1mcm9tLWxpbmUudHMiLCJEOlxcc3JjXFxpY29uc1xcYXJyb3ctcmlnaHQudHMiLCJEOlxcc3JjXFxpY29uc1xcYXJyb3ctdXAtMC0xLnRzIiwiRDpcXHNyY1xcaWNvbnNcXGFycm93LXVwLTEtMC50cyIsIkQ6XFxzcmNcXGljb25zXFxhcnJvdy11cC1hLXoudHMiLCJEOlxcc3JjXFxpY29uc1xcYXJyb3ctdXAtZG93bi50cyIsIkQ6XFxzcmNcXGljb25zXFxhcnJvdy11cC1mcm9tLWRvdC50cyIsIkQ6XFxzcmNcXGljb25zXFxhcnJvdy11cC1mcm9tLWxpbmUudHMiLCJEOlxcc3JjXFxpY29uc1xcYXJyb3ctdXAtbGVmdC50cyIsIkQ6XFxzcmNcXGljb25zXFxhcnJvdy11cC1uYXJyb3ctd2lkZS50cyIsIkQ6XFxzcmNcXGljb25zXFxhcnJvdy11cC1yaWdodC50cyIsIkQ6XFxzcmNcXGljb25zXFxhcnJvdy11cC10by1saW5lLnRzIiwiRDpcXHNyY1xcaWNvbnNcXGFycm93LXVwLXdpZGUtbmFycm93LnRzIiwiRDpcXHNyY1xcaWNvbnNcXGFycm93LXVwLXotYS50cyIsIkQ6XFxzcmNcXGljb25zXFxhcnJvdy11cC50cyIsIkQ6XFxzcmNcXGljb25zXFxhcnJvd3MtdXAtZnJvbS1saW5lLnRzIiwiRDpcXHNyY1xcaWNvbnNcXGFzdGVyaXNrLnRzIiwiRDpcXHNyY1xcaWNvbnNcXGF0LXNpZ24udHMiLCJEOlxcc3JjXFxpY29uc1xcYXRvbS50cyIsIkQ6XFxzcmNcXGljb25zXFxhdWRpby1saW5lcy50cyIsIkQ6XFxzcmNcXGljb25zXFxhdWRpby13YXZlZm9ybS50cyIsIkQ6XFxzcmNcXGljb25zXFxhd2FyZC50cyIsIkQ6XFxzcmNcXGljb25zXFxheGUudHMiLCJEOlxcc3JjXFxpY29uc1xcYXhpcy0zZC50cyIsIkQ6XFxzcmNcXGljb25zXFxiYWJ5LnRzIiwiRDpcXHNyY1xcaWNvbnNcXGJhY2twYWNrLnRzIiwiRDpcXHNyY1xcaWNvbnNcXGJhZGdlLWFsZXJ0LnRzIiwiRDpcXHNyY1xcaWNvbnNcXGJhZGdlLWNlbnQudHMiLCJEOlxcc3JjXFxpY29uc1xcYmFkZ2UtY2hlY2sudHMiLCJEOlxcc3JjXFxpY29uc1xcYmFkZ2UtZG9sbGFyLXNpZ24udHMiLCJEOlxcc3JjXFxpY29uc1xcYmFkZ2UtZXVyby50cyIsIkQ6XFxzcmNcXGljb25zXFxiYWRnZS1pbmRpYW4tcnVwZWUudHMiLCJEOlxcc3JjXFxpY29uc1xcYmFkZ2UtaW5mby50cyIsIkQ6XFxzcmNcXGljb25zXFxiYWRnZS1qYXBhbmVzZS15ZW4udHMiLCJEOlxcc3JjXFxpY29uc1xcYmFkZ2UtbWludXMudHMiLCJEOlxcc3JjXFxpY29uc1xcYmFkZ2UtcGVyY2VudC50cyIsIkQ6XFxzcmNcXGljb25zXFxiYWRnZS1wbHVzLnRzIiwiRDpcXHNyY1xcaWNvbnNcXGJhZGdlLXBvdW5kLXN0ZXJsaW5nLnRzIiwiRDpcXHNyY1xcaWNvbnNcXGJhZGdlLXF1ZXN0aW9uLW1hcmsudHMiLCJEOlxcc3JjXFxpY29uc1xcYmFkZ2UtcnVzc2lhbi1ydWJsZS50cyIsIkQ6XFxzcmNcXGljb25zXFxiYWRnZS1zd2lzcy1mcmFuYy50cyIsIkQ6XFxzcmNcXGljb25zXFxiYWRnZS14LnRzIiwiRDpcXHNyY1xcaWNvbnNcXGJhZGdlLnRzIiwiRDpcXHNyY1xcaWNvbnNcXGJhZ2dhZ2UtY2xhaW0udHMiLCJEOlxcc3JjXFxpY29uc1xcYmFuLnRzIiwiRDpcXHNyY1xcaWNvbnNcXGJhbmFuYS50cyIsIkQ6XFxzcmNcXGljb25zXFxiYW5kYWdlLnRzIiwiRDpcXHNyY1xcaWNvbnNcXGJhbmtub3RlLWFycm93LWRvd24udHMiLCJEOlxcc3JjXFxpY29uc1xcYmFua25vdGUtYXJyb3ctdXAudHMiLCJEOlxcc3JjXFxpY29uc1xcYmFua25vdGUteC50cyIsIkQ6XFxzcmNcXGljb25zXFxiYXJjb2RlLnRzIiwiRDpcXHNyY1xcaWNvbnNcXGJhbmtub3RlLnRzIiwiRDpcXHNyY1xcaWNvbnNcXGJhcnJlbC50cyIsIkQ6XFxzcmNcXGljb25zXFxiYXNlbGluZS50cyIsIkQ6XFxzcmNcXGljb25zXFxiYXRoLnRzIiwiRDpcXHNyY1xcaWNvbnNcXGJhdHRlcnktY2hhcmdpbmcudHMiLCJEOlxcc3JjXFxpY29uc1xcYmF0dGVyeS1mdWxsLnRzIiwiRDpcXHNyY1xcaWNvbnNcXGJhdHRlcnktbG93LnRzIiwiRDpcXHNyY1xcaWNvbnNcXGJhdHRlcnktbWVkaXVtLnRzIiwiRDpcXHNyY1xcaWNvbnNcXGJhdHRlcnktcGx1cy50cyIsIkQ6XFxzcmNcXGljb25zXFxiYXR0ZXJ5LXdhcm5pbmcudHMiLCJEOlxcc3JjXFxpY29uc1xcYmF0dGVyeS50cyIsIkQ6XFxzcmNcXGljb25zXFxiZWFrZXIudHMiLCJEOlxcc3JjXFxpY29uc1xcYmVhbi1vZmYudHMiLCJEOlxcc3JjXFxpY29uc1xcYmVkLWRvdWJsZS50cyIsIkQ6XFxzcmNcXGljb25zXFxiZWFuLnRzIiwiRDpcXHNyY1xcaWNvbnNcXGJlZC1zaW5nbGUudHMiLCJEOlxcc3JjXFxpY29uc1xcYmVkLnRzIiwiRDpcXHNyY1xcaWNvbnNcXGJlZXItb2ZmLnRzIiwiRDpcXHNyY1xcaWNvbnNcXGJlZWYudHMiLCJEOlxcc3JjXFxpY29uc1xcYmVlci50cyIsIkQ6XFxzcmNcXGljb25zXFxiZWxsLWRvdC50cyIsIkQ6XFxzcmNcXGljb25zXFxiZWxsLWVsZWN0cmljLnRzIiwiRDpcXHNyY1xcaWNvbnNcXGJlbGwtbWludXMudHMiLCJEOlxcc3JjXFxpY29uc1xcYmVsbC1vZmYudHMiLCJEOlxcc3JjXFxpY29uc1xcYmVsbC1wbHVzLnRzIiwiRDpcXHNyY1xcaWNvbnNcXGJlbGwtcmluZy50cyIsIkQ6XFxzcmNcXGljb25zXFxiZWxsLnRzIiwiRDpcXHNyY1xcaWNvbnNcXGJldHdlZW4taG9yaXpvbnRhbC1lbmQudHMiLCJEOlxcc3JjXFxpY29uc1xcYmV0d2Vlbi1ob3Jpem9udGFsLXN0YXJ0LnRzIiwiRDpcXHNyY1xcaWNvbnNcXGJldHdlZW4tdmVydGljYWwtZW5kLnRzIiwiRDpcXHNyY1xcaWNvbnNcXGJldHdlZW4tdmVydGljYWwtc3RhcnQudHMiLCJEOlxcc3JjXFxpY29uc1xcYmljZXBzLWZsZXhlZC50cyIsIkQ6XFxzcmNcXGljb25zXFxiaWtlLnRzIiwiRDpcXHNyY1xcaWNvbnNcXGJpbmFyeS50cyIsIkQ6XFxzcmNcXGljb25zXFxiaW5vY3VsYXJzLnRzIiwiRDpcXHNyY1xcaWNvbnNcXGJpb2hhemFyZC50cyIsIkQ6XFxzcmNcXGljb25zXFxiaXJkLnRzIiwiRDpcXHNyY1xcaWNvbnNcXGJpdGNvaW4udHMiLCJEOlxcc3JjXFxpY29uc1xcYmxlbmQudHMiLCJEOlxcc3JjXFxpY29uc1xcYmxpbmRzLnRzIiwiRDpcXHNyY1xcaWNvbnNcXGJsb2Nrcy50cyIsIkQ6XFxzcmNcXGljb25zXFxibHVldG9vdGgtY29ubmVjdGVkLnRzIiwiRDpcXHNyY1xcaWNvbnNcXGJsdWV0b290aC1vZmYudHMiLCJEOlxcc3JjXFxpY29uc1xcYmx1ZXRvb3RoLXNlYXJjaGluZy50cyIsIkQ6XFxzcmNcXGljb25zXFxibHVldG9vdGgudHMiLCJEOlxcc3JjXFxpY29uc1xcYm9sZC50cyIsIkQ6XFxzcmNcXGljb25zXFxib2x0LnRzIiwiRDpcXHNyY1xcaWNvbnNcXGJvbWIudHMiLCJEOlxcc3JjXFxpY29uc1xcYm9uZS50cyIsIkQ6XFxzcmNcXGljb25zXFxib29rLWEudHMiLCJEOlxcc3JjXFxpY29uc1xcYm9vay1hdWRpby50cyIsIkQ6XFxzcmNcXGljb25zXFxib29rLWFsZXJ0LnRzIiwiRDpcXHNyY1xcaWNvbnNcXGJvb2stY2hlY2sudHMiLCJEOlxcc3JjXFxpY29uc1xcYm9vay1jb3B5LnRzIiwiRDpcXHNyY1xcaWNvbnNcXGJvb2stZGFzaGVkLnRzIiwiRDpcXHNyY1xcaWNvbnNcXGJvb2stZG93bi50cyIsIkQ6XFxzcmNcXGljb25zXFxib29rLWhlYWRwaG9uZXMudHMiLCJEOlxcc3JjXFxpY29uc1xcYm9vay1oZWFydC50cyIsIkQ6XFxzcmNcXGljb25zXFxib29rLWltYWdlLnRzIiwiRDpcXHNyY1xcaWNvbnNcXGJvb2sta2V5LnRzIiwiRDpcXHNyY1xcaWNvbnNcXGJvb2stbG9jay50cyIsIkQ6XFxzcmNcXGljb25zXFxib29rLW1hcmtlZC50cyIsIkQ6XFxzcmNcXGljb25zXFxib29rLW1pbnVzLnRzIiwiRDpcXHNyY1xcaWNvbnNcXGJvb2stb3Blbi1jaGVjay50cyIsIkQ6XFxzcmNcXGljb25zXFxib29rLW9wZW4tdGV4dC50cyIsIkQ6XFxzcmNcXGljb25zXFxib29rLW9wZW4udHMiLCJEOlxcc3JjXFxpY29uc1xcYm9vay1wbHVzLnRzIiwiRDpcXHNyY1xcaWNvbnNcXGJvb2stdGV4dC50cyIsIkQ6XFxzcmNcXGljb25zXFxib29rLXR5cGUudHMiLCJEOlxcc3JjXFxpY29uc1xcYm9vay11cC0yLnRzIiwiRDpcXHNyY1xcaWNvbnNcXGJvb2stdXAudHMiLCJEOlxcc3JjXFxpY29uc1xcYm9vay14LnRzIiwiRDpcXHNyY1xcaWNvbnNcXGJvb2stdXNlci50cyIsIkQ6XFxzcmNcXGljb25zXFxib29rLnRzIiwiRDpcXHNyY1xcaWNvbnNcXGJvb2ttYXJrLWNoZWNrLnRzIiwiRDpcXHNyY1xcaWNvbnNcXGJvb2ttYXJrLW1pbnVzLnRzIiwiRDpcXHNyY1xcaWNvbnNcXGJvb2ttYXJrLXBsdXMudHMiLCJEOlxcc3JjXFxpY29uc1xcYm9va21hcmsteC50cyIsIkQ6XFxzcmNcXGljb25zXFxib29rbWFyay50cyIsIkQ6XFxzcmNcXGljb25zXFxib29tLWJveC50cyIsIkQ6XFxzcmNcXGljb25zXFxib3QtbWVzc2FnZS1zcXVhcmUudHMiLCJEOlxcc3JjXFxpY29uc1xcYm90LW9mZi50cyIsIkQ6XFxzcmNcXGljb25zXFxib3QudHMiLCJEOlxcc3JjXFxpY29uc1xcYm90dGxlLXdpbmUudHMiLCJEOlxcc3JjXFxpY29uc1xcYm93LWFycm93LnRzIiwiRDpcXHNyY1xcaWNvbnNcXGJveC50cyIsIkQ6XFxzcmNcXGljb25zXFxib3hlcy50cyIsIkQ6XFxzcmNcXGljb25zXFxicmFjZXMudHMiLCJEOlxcc3JjXFxpY29uc1xcYnJhY2tldHMudHMiLCJEOlxcc3JjXFxpY29uc1xcYnJhaW4tY2lyY3VpdC50cyIsIkQ6XFxzcmNcXGljb25zXFxicmFpbi1jb2cudHMiLCJEOlxcc3JjXFxpY29uc1xcYnJhaW4udHMiLCJEOlxcc3JjXFxpY29uc1xcYnJpY2std2FsbC1maXJlLnRzIiwiRDpcXHNyY1xcaWNvbnNcXGJyaWNrLXdhbGwudHMiLCJEOlxcc3JjXFxpY29uc1xcYnJpZWZjYXNlLWJ1c2luZXNzLnRzIiwiRDpcXHNyY1xcaWNvbnNcXGJyaWVmY2FzZS1jb252ZXlvci1iZWx0LnRzIiwiRDpcXHNyY1xcaWNvbnNcXGJyaWVmY2FzZS1tZWRpY2FsLnRzIiwiRDpcXHNyY1xcaWNvbnNcXGJyaWVmY2FzZS50cyIsIkQ6XFxzcmNcXGljb25zXFxicmluZy10by1mcm9udC50cyIsIkQ6XFxzcmNcXGljb25zXFxicnVzaC1jbGVhbmluZy50cyIsIkQ6XFxzcmNcXGljb25zXFxicnVzaC50cyIsIkQ6XFxzcmNcXGljb25zXFxidWJibGVzLnRzIiwiRDpcXHNyY1xcaWNvbnNcXGJ1Zy1vZmYudHMiLCJEOlxcc3JjXFxpY29uc1xcYnVnLXBsYXkudHMiLCJEOlxcc3JjXFxpY29uc1xcYnVnLnRzIiwiRDpcXHNyY1xcaWNvbnNcXGJ1aWxkaW5nLTIudHMiLCJEOlxcc3JjXFxpY29uc1xcYnVpbGRpbmcudHMiLCJEOlxcc3JjXFxpY29uc1xcYnVzLWZyb250LnRzIiwiRDpcXHNyY1xcaWNvbnNcXGJ1cy50cyIsIkQ6XFxzcmNcXGljb25zXFxjYWJsZS1jYXIudHMiLCJEOlxcc3JjXFxpY29uc1xcY2FibGUudHMiLCJEOlxcc3JjXFxpY29uc1xcY2FrZS1zbGljZS50cyIsIkQ6XFxzcmNcXGljb25zXFxjYWtlLnRzIiwiRDpcXHNyY1xcaWNvbnNcXGNhbGN1bGF0b3IudHMiLCJEOlxcc3JjXFxpY29uc1xcY2FsZW5kYXItMS50cyIsIkQ6XFxzcmNcXGljb25zXFxjYWxlbmRhci1hcnJvdy1kb3duLnRzIiwiRDpcXHNyY1xcaWNvbnNcXGNhbGVuZGFyLWFycm93LXVwLnRzIiwiRDpcXHNyY1xcaWNvbnNcXGNhbGVuZGFyLWNoZWNrLTIudHMiLCJEOlxcc3JjXFxpY29uc1xcY2FsZW5kYXItY2hlY2sudHMiLCJEOlxcc3JjXFxpY29uc1xcY2FsZW5kYXItY2xvY2sudHMiLCJEOlxcc3JjXFxpY29uc1xcY2FsZW5kYXItY29nLnRzIiwiRDpcXHNyY1xcaWNvbnNcXGNhbGVuZGFyLWRheXMudHMiLCJEOlxcc3JjXFxpY29uc1xcY2FsZW5kYXItZm9sZC50cyIsIkQ6XFxzcmNcXGljb25zXFxjYWxlbmRhci1oZWFydC50cyIsIkQ6XFxzcmNcXGljb25zXFxjYWxlbmRhci1taW51cy0yLnRzIiwiRDpcXHNyY1xcaWNvbnNcXGNhbGVuZGFyLW1pbnVzLnRzIiwiRDpcXHNyY1xcaWNvbnNcXGNhbGVuZGFyLW9mZi50cyIsIkQ6XFxzcmNcXGljb25zXFxjYWxlbmRhci1wbHVzLTIudHMiLCJEOlxcc3JjXFxpY29uc1xcY2FsZW5kYXItcGx1cy50cyIsIkQ6XFxzcmNcXGljb25zXFxjYWxlbmRhci1yYW5nZS50cyIsIkQ6XFxzcmNcXGljb25zXFxjYWxlbmRhci1zeW5jLnRzIiwiRDpcXHNyY1xcaWNvbnNcXGNhbGVuZGFyLXNlYXJjaC50cyIsIkQ6XFxzcmNcXGljb25zXFxjYWxlbmRhci14LTIudHMiLCJEOlxcc3JjXFxpY29uc1xcY2FsZW5kYXIteC50cyIsIkQ6XFxzcmNcXGljb25zXFxjYWxlbmRhci50cyIsIkQ6XFxzcmNcXGljb25zXFxjYW1lcmEtb2ZmLnRzIiwiRDpcXHNyY1xcaWNvbnNcXGNhbWVyYS50cyIsIkQ6XFxzcmNcXGljb25zXFxjYW5keS1jYW5lLnRzIiwiRDpcXHNyY1xcaWNvbnNcXGNhbmR5LW9mZi50cyIsIkQ6XFxzcmNcXGljb25zXFxjYW5keS50cyIsIkQ6XFxzcmNcXGljb25zXFxjYW5uYWJpcy50cyIsIkQ6XFxzcmNcXGljb25zXFxjYXB0aW9ucy1vZmYudHMiLCJEOlxcc3JjXFxpY29uc1xcY2FwdGlvbnMudHMiLCJEOlxcc3JjXFxpY29uc1xcY2FyLWZyb250LnRzIiwiRDpcXHNyY1xcaWNvbnNcXGNhci10YXhpLWZyb250LnRzIiwiRDpcXHNyY1xcaWNvbnNcXGNhcmF2YW4udHMiLCJEOlxcc3JjXFxpY29uc1xcY2FyZC1zaW0udHMiLCJEOlxcc3JjXFxpY29uc1xcY2FyLnRzIiwiRDpcXHNyY1xcaWNvbnNcXGNhcnJvdC50cyIsIkQ6XFxzcmNcXGljb25zXFxjYXNlLWxvd2VyLnRzIiwiRDpcXHNyY1xcaWNvbnNcXGNhc2Utc2Vuc2l0aXZlLnRzIiwiRDpcXHNyY1xcaWNvbnNcXGNhc2UtdXBwZXIudHMiLCJEOlxcc3JjXFxpY29uc1xcY2Fzc2V0dGUtdGFwZS50cyIsIkQ6XFxzcmNcXGljb25zXFxjYXN0LnRzIiwiRDpcXHNyY1xcaWNvbnNcXGNhc3RsZS50cyIsIkQ6XFxzcmNcXGljb25zXFxjYXQudHMiLCJEOlxcc3JjXFxpY29uc1xcY2N0di50cyIsIkQ6XFxzcmNcXGljb25zXFxjaGFydC1hcmVhLnRzIiwiRDpcXHNyY1xcaWNvbnNcXGNoYXJ0LWJhci1iaWcudHMiLCJEOlxcc3JjXFxpY29uc1xcY2hhcnQtYmFyLWluY3JlYXNpbmcudHMiLCJEOlxcc3JjXFxpY29uc1xcY2hhcnQtYmFyLWRlY3JlYXNpbmcudHMiLCJEOlxcc3JjXFxpY29uc1xcY2hhcnQtYmFyLXN0YWNrZWQudHMiLCJEOlxcc3JjXFxpY29uc1xcY2hhcnQtYmFyLnRzIiwiRDpcXHNyY1xcaWNvbnNcXGNoYXJ0LWNhbmRsZXN0aWNrLnRzIiwiRDpcXHNyY1xcaWNvbnNcXGNoYXJ0LWNvbHVtbi1iaWcudHMiLCJEOlxcc3JjXFxpY29uc1xcY2hhcnQtY29sdW1uLWRlY3JlYXNpbmcudHMiLCJEOlxcc3JjXFxpY29uc1xcY2hhcnQtY29sdW1uLWluY3JlYXNpbmcudHMiLCJEOlxcc3JjXFxpY29uc1xcY2hhcnQtY29sdW1uLXN0YWNrZWQudHMiLCJEOlxcc3JjXFxpY29uc1xcY2hhcnQtY29sdW1uLnRzIiwiRDpcXHNyY1xcaWNvbnNcXGNoYXJ0LWdhbnR0LnRzIiwiRDpcXHNyY1xcaWNvbnNcXGNoYXJ0LWxpbmUudHMiLCJEOlxcc3JjXFxpY29uc1xcY2hhcnQtbmV0d29yay50cyIsIkQ6XFxzcmNcXGljb25zXFxjaGFydC1uby1heGVzLWNvbHVtbi1kZWNyZWFzaW5nLnRzIiwiRDpcXHNyY1xcaWNvbnNcXGNoYXJ0LW5vLWF4ZXMtY29sdW1uLWluY3JlYXNpbmcudHMiLCJEOlxcc3JjXFxpY29uc1xcY2hhcnQtbm8tYXhlcy1jb2x1bW4udHMiLCJEOlxcc3JjXFxpY29uc1xcY2hhcnQtbm8tYXhlcy1jb21iaW5lZC50cyIsIkQ6XFxzcmNcXGljb25zXFxjaGFydC1uby1heGVzLWdhbnR0LnRzIiwiRDpcXHNyY1xcaWNvbnNcXGNoYXJ0LXBpZS50cyIsIkQ6XFxzcmNcXGljb25zXFxjaGFydC1zY2F0dGVyLnRzIiwiRDpcXHNyY1xcaWNvbnNcXGNoYXJ0LXNwbGluZS50cyIsIkQ6XFxzcmNcXGljb25zXFxjaGVjay1jaGVjay50cyIsIkQ6XFxzcmNcXGljb25zXFxjaGVjay1saW5lLnRzIiwiRDpcXHNyY1xcaWNvbnNcXGNoZWNrLnRzIiwiRDpcXHNyY1xcaWNvbnNcXGNoZWYtaGF0LnRzIiwiRDpcXHNyY1xcaWNvbnNcXGNoZXJyeS50cyIsIkQ6XFxzcmNcXGljb25zXFxjaGV2cm9uLWRvd24udHMiLCJEOlxcc3JjXFxpY29uc1xcY2hldnJvbi1maXJzdC50cyIsIkQ6XFxzcmNcXGljb25zXFxjaGV2cm9uLWxhc3QudHMiLCJEOlxcc3JjXFxpY29uc1xcY2hldnJvbi1sZWZ0LnRzIiwiRDpcXHNyY1xcaWNvbnNcXGNoZXZyb24tcmlnaHQudHMiLCJEOlxcc3JjXFxpY29uc1xcY2hldnJvbi11cC50cyIsIkQ6XFxzcmNcXGljb25zXFxjaGV2cm9ucy1kb3duLXVwLnRzIiwiRDpcXHNyY1xcaWNvbnNcXGNoZXZyb25zLWRvd24udHMiLCJEOlxcc3JjXFxpY29uc1xcY2hldnJvbnMtbGVmdC1yaWdodC1lbGxpcHNpcy50cyIsIkQ6XFxzcmNcXGljb25zXFxjaGV2cm9ucy1sZWZ0LXJpZ2h0LnRzIiwiRDpcXHNyY1xcaWNvbnNcXGNoZXZyb25zLWxlZnQudHMiLCJEOlxcc3JjXFxpY29uc1xcY2hldnJvbnMtcmlnaHQtbGVmdC50cyIsIkQ6XFxzcmNcXGljb25zXFxjaGV2cm9ucy1yaWdodC50cyIsIkQ6XFxzcmNcXGljb25zXFxjaGV2cm9ucy11cC1kb3duLnRzIiwiRDpcXHNyY1xcaWNvbnNcXGNoZXZyb25zLXVwLnRzIiwiRDpcXHNyY1xcaWNvbnNcXGNocm9tZS50cyIsIkQ6XFxzcmNcXGljb25zXFxjaWdhcmV0dGUtb2ZmLnRzIiwiRDpcXHNyY1xcaWNvbnNcXGNodXJjaC50cyIsIkQ6XFxzcmNcXGljb25zXFxjaWdhcmV0dGUudHMiLCJEOlxcc3JjXFxpY29uc1xcY2lyY2xlLWFsZXJ0LnRzIiwiRDpcXHNyY1xcaWNvbnNcXGNpcmNsZS1hcnJvdy1kb3duLnRzIiwiRDpcXHNyY1xcaWNvbnNcXGNpcmNsZS1hcnJvdy1sZWZ0LnRzIiwiRDpcXHNyY1xcaWNvbnNcXGNpcmNsZS1hcnJvdy1vdXQtZG93bi1sZWZ0LnRzIiwiRDpcXHNyY1xcaWNvbnNcXGNpcmNsZS1hcnJvdy1vdXQtZG93bi1yaWdodC50cyIsIkQ6XFxzcmNcXGljb25zXFxjaXJjbGUtYXJyb3ctb3V0LXVwLWxlZnQudHMiLCJEOlxcc3JjXFxpY29uc1xcY2lyY2xlLWFycm93LW91dC11cC1yaWdodC50cyIsIkQ6XFxzcmNcXGljb25zXFxjaXJjbGUtYXJyb3ctcmlnaHQudHMiLCJEOlxcc3JjXFxpY29uc1xcY2lyY2xlLWFycm93LXVwLnRzIiwiRDpcXHNyY1xcaWNvbnNcXGNpcmNsZS1jaGVjay1iaWcudHMiLCJEOlxcc3JjXFxpY29uc1xcY2lyY2xlLWNoZWNrLnRzIiwiRDpcXHNyY1xcaWNvbnNcXGNpcmNsZS1jaGV2cm9uLWRvd24udHMiLCJEOlxcc3JjXFxpY29uc1xcY2lyY2xlLWNoZXZyb24tbGVmdC50cyIsIkQ6XFxzcmNcXGljb25zXFxjaXJjbGUtY2hldnJvbi1yaWdodC50cyIsIkQ6XFxzcmNcXGljb25zXFxjaXJjbGUtY2hldnJvbi11cC50cyIsIkQ6XFxzcmNcXGljb25zXFxjaXJjbGUtZGFzaGVkLnRzIiwiRDpcXHNyY1xcaWNvbnNcXGNpcmNsZS1kaXZpZGUudHMiLCJEOlxcc3JjXFxpY29uc1xcY2lyY2xlLWRvbGxhci1zaWduLnRzIiwiRDpcXHNyY1xcaWNvbnNcXGNpcmNsZS1kb3QtZGFzaGVkLnRzIiwiRDpcXHNyY1xcaWNvbnNcXGNpcmNsZS1kb3QudHMiLCJEOlxcc3JjXFxpY29uc1xcY2lyY2xlLWVsbGlwc2lzLnRzIiwiRDpcXHNyY1xcaWNvbnNcXGNpcmNsZS1lcXVhbC50cyIsIkQ6XFxzcmNcXGljb25zXFxjaXJjbGUtZmFkaW5nLWFycm93LXVwLnRzIiwiRDpcXHNyY1xcaWNvbnNcXGNpcmNsZS1mYWRpbmctcGx1cy50cyIsIkQ6XFxzcmNcXGljb25zXFxjaXJjbGUtZ2F1Z2UudHMiLCJEOlxcc3JjXFxpY29uc1xcY2lyY2xlLW1pbnVzLnRzIiwiRDpcXHNyY1xcaWNvbnNcXGNpcmNsZS1vZmYudHMiLCJEOlxcc3JjXFxpY29uc1xcY2lyY2xlLXBhcmtpbmctb2ZmLnRzIiwiRDpcXHNyY1xcaWNvbnNcXGNpcmNsZS1wYXJraW5nLnRzIiwiRDpcXHNyY1xcaWNvbnNcXGNpcmNsZS1wYXVzZS50cyIsIkQ6XFxzcmNcXGljb25zXFxjaXJjbGUtcGVyY2VudC50cyIsIkQ6XFxzcmNcXGljb25zXFxjaXJjbGUtcGxheS50cyIsIkQ6XFxzcmNcXGljb25zXFxjaXJjbGUtcGx1cy50cyIsIkQ6XFxzcmNcXGljb25zXFxjaXJjbGUtcG91bmQtc3RlcmxpbmcudHMiLCJEOlxcc3JjXFxpY29uc1xcY2lyY2xlLXBvd2VyLnRzIiwiRDpcXHNyY1xcaWNvbnNcXGNpcmNsZS1xdWVzdGlvbi1tYXJrLnRzIiwiRDpcXHNyY1xcaWNvbnNcXGNpcmNsZS1zbGFzaC0yLnRzIiwiRDpcXHNyY1xcaWNvbnNcXGNpcmNsZS1zbGFzaC50cyIsIkQ6XFxzcmNcXGljb25zXFxjaXJjbGUtc21hbGwudHMiLCJEOlxcc3JjXFxpY29uc1xcY2lyY2xlLXN0b3AudHMiLCJEOlxcc3JjXFxpY29uc1xcY2lyY2xlLXVzZXItcm91bmQudHMiLCJEOlxcc3JjXFxpY29uc1xcY2lyY2xlLXVzZXIudHMiLCJEOlxcc3JjXFxpY29uc1xcY2lyY2xlLXgudHMiLCJEOlxcc3JjXFxpY29uc1xcY2lyY2xlLnRzIiwiRDpcXHNyY1xcaWNvbnNcXGNpcmN1aXQtYm9hcmQudHMiLCJEOlxcc3JjXFxpY29uc1xcY2l0cnVzLnRzIiwiRDpcXHNyY1xcaWNvbnNcXGNsYXBwZXJib2FyZC50cyIsIkQ6XFxzcmNcXGljb25zXFxjbGlwYm9hcmQtY2hlY2sudHMiLCJEOlxcc3JjXFxpY29uc1xcY2xpcGJvYXJkLWNvcHkudHMiLCJEOlxcc3JjXFxpY29uc1xcY2xpcGJvYXJkLWxpc3QudHMiLCJEOlxcc3JjXFxpY29uc1xcY2xpcGJvYXJkLW1pbnVzLnRzIiwiRDpcXHNyY1xcaWNvbnNcXGNsaXBib2FyZC1wYXN0ZS50cyIsIkQ6XFxzcmNcXGljb25zXFxjbGlwYm9hcmQtcGVuLWxpbmUudHMiLCJEOlxcc3JjXFxpY29uc1xcY2xpcGJvYXJkLXBlbi50cyIsIkQ6XFxzcmNcXGljb25zXFxjbGlwYm9hcmQtcGx1cy50cyIsIkQ6XFxzcmNcXGljb25zXFxjbGlwYm9hcmQtdHlwZS50cyIsIkQ6XFxzcmNcXGljb25zXFxjbGlwYm9hcmQteC50cyIsIkQ6XFxzcmNcXGljb25zXFxjbGlwYm9hcmQudHMiLCJEOlxcc3JjXFxpY29uc1xcY2xvY2stMS50cyIsIkQ6XFxzcmNcXGljb25zXFxjbG9jay0xMC50cyIsIkQ6XFxzcmNcXGljb25zXFxjbG9jay0xMS50cyIsIkQ6XFxzcmNcXGljb25zXFxjbG9jay0yLnRzIiwiRDpcXHNyY1xcaWNvbnNcXGNsb2NrLTEyLnRzIiwiRDpcXHNyY1xcaWNvbnNcXGNsb2NrLTMudHMiLCJEOlxcc3JjXFxpY29uc1xcY2xvY2stNC50cyIsIkQ6XFxzcmNcXGljb25zXFxjbG9jay01LnRzIiwiRDpcXHNyY1xcaWNvbnNcXGNsb2NrLTYudHMiLCJEOlxcc3JjXFxpY29uc1xcY2xvY2stNy50cyIsIkQ6XFxzcmNcXGljb25zXFxjbG9jay04LnRzIiwiRDpcXHNyY1xcaWNvbnNcXGNsb2NrLTkudHMiLCJEOlxcc3JjXFxpY29uc1xcY2xvY2stYWxlcnQudHMiLCJEOlxcc3JjXFxpY29uc1xcY2xvY2stYXJyb3ctZG93bi50cyIsIkQ6XFxzcmNcXGljb25zXFxjbG9jay1hcnJvdy11cC50cyIsIkQ6XFxzcmNcXGljb25zXFxjbG9jay1mYWRpbmcudHMiLCJEOlxcc3JjXFxpY29uc1xcY2xvY2stcGx1cy50cyIsIkQ6XFxzcmNcXGljb25zXFxjbG9jay50cyIsIkQ6XFxzcmNcXGljb25zXFxjbG91ZC1hbGVydC50cyIsIkQ6XFxzcmNcXGljb25zXFxjbG91ZC1jaGVjay50cyIsIkQ6XFxzcmNcXGljb25zXFxjbG91ZC1jb2cudHMiLCJEOlxcc3JjXFxpY29uc1xcY2xvdWQtZG93bmxvYWQudHMiLCJEOlxcc3JjXFxpY29uc1xcY2xvdWQtZHJpenpsZS50cyIsIkQ6XFxzcmNcXGljb25zXFxjbG91ZC1mb2cudHMiLCJEOlxcc3JjXFxpY29uc1xcY2xvdWQtaGFpbC50cyIsIkQ6XFxzcmNcXGljb25zXFxjbG91ZC1saWdodG5pbmcudHMiLCJEOlxcc3JjXFxpY29uc1xcY2xvdWQtbW9vbi1yYWluLnRzIiwiRDpcXHNyY1xcaWNvbnNcXGNsb3VkLW1vb24udHMiLCJEOlxcc3JjXFxpY29uc1xcY2xvdWQtb2ZmLnRzIiwiRDpcXHNyY1xcaWNvbnNcXGNsb3VkLXJhaW4udHMiLCJEOlxcc3JjXFxpY29uc1xcY2xvdWQtcmFpbi13aW5kLnRzIiwiRDpcXHNyY1xcaWNvbnNcXGNsb3VkLXNub3cudHMiLCJEOlxcc3JjXFxpY29uc1xcY2xvdWQtc3VuLXJhaW4udHMiLCJEOlxcc3JjXFxpY29uc1xcY2xvdWQtc3VuLnRzIiwiRDpcXHNyY1xcaWNvbnNcXGNsb3VkLXVwbG9hZC50cyIsIkQ6XFxzcmNcXGljb25zXFxjbG91ZC50cyIsIkQ6XFxzcmNcXGljb25zXFxjbG92ZXIudHMiLCJEOlxcc3JjXFxpY29uc1xcY2xvdWR5LnRzIiwiRDpcXHNyY1xcaWNvbnNcXGNsdWIudHMiLCJEOlxcc3JjXFxpY29uc1xcY29kZS14bWwudHMiLCJEOlxcc3JjXFxpY29uc1xcY29kZS50cyIsIkQ6XFxzcmNcXGljb25zXFxjb2RlcGVuLnRzIiwiRDpcXHNyY1xcaWNvbnNcXGNvZGVzYW5kYm94LnRzIiwiRDpcXHNyY1xcaWNvbnNcXGNvZmZlZS50cyIsIkQ6XFxzcmNcXGljb25zXFxjb2cudHMiLCJEOlxcc3JjXFxpY29uc1xcY29pbnMudHMiLCJEOlxcc3JjXFxpY29uc1xcY29sdW1ucy0yLnRzIiwiRDpcXHNyY1xcaWNvbnNcXGNvbHVtbnMtMy1jb2cudHMiLCJEOlxcc3JjXFxpY29uc1xcY29sdW1ucy0zLnRzIiwiRDpcXHNyY1xcaWNvbnNcXGNvbHVtbnMtNC50cyIsIkQ6XFxzcmNcXGljb25zXFxjb21iaW5lLnRzIiwiRDpcXHNyY1xcaWNvbnNcXGNvbW1hbmQudHMiLCJEOlxcc3JjXFxpY29uc1xcY29tcGFzcy50cyIsIkQ6XFxzcmNcXGljb25zXFxjb21wb25lbnQudHMiLCJEOlxcc3JjXFxpY29uc1xcY29tcHV0ZXIudHMiLCJEOlxcc3JjXFxpY29uc1xcY29uY2llcmdlLWJlbGwudHMiLCJEOlxcc3JjXFxpY29uc1xcY29uZS50cyIsIkQ6XFxzcmNcXGljb25zXFxjb25zdHJ1Y3Rpb24udHMiLCJEOlxcc3JjXFxpY29uc1xcY29udGFjdC1yb3VuZC50cyIsIkQ6XFxzcmNcXGljb25zXFxjb250YWN0LnRzIiwiRDpcXHNyY1xcaWNvbnNcXGNvbnRhaW5lci50cyIsIkQ6XFxzcmNcXGljb25zXFxjb250cmFzdC50cyIsIkQ6XFxzcmNcXGljb25zXFxjb29raWUudHMiLCJEOlxcc3JjXFxpY29uc1xcY29va2luZy1wb3QudHMiLCJEOlxcc3JjXFxpY29uc1xcY29weS1jaGVjay50cyIsIkQ6XFxzcmNcXGljb25zXFxjb3B5LW1pbnVzLnRzIiwiRDpcXHNyY1xcaWNvbnNcXGNvcHktcGx1cy50cyIsIkQ6XFxzcmNcXGljb25zXFxjb3B5LXgudHMiLCJEOlxcc3JjXFxpY29uc1xcY29weS1zbGFzaC50cyIsIkQ6XFxzcmNcXGljb25zXFxjb3B5LnRzIiwiRDpcXHNyY1xcaWNvbnNcXGNvcHlyaWdodC50cyIsIkQ6XFxzcmNcXGljb25zXFxjb3B5bGVmdC50cyIsIkQ6XFxzcmNcXGljb25zXFxjb3JuZXItZG93bi1sZWZ0LnRzIiwiRDpcXHNyY1xcaWNvbnNcXGNvcm5lci1kb3duLXJpZ2h0LnRzIiwiRDpcXHNyY1xcaWNvbnNcXGNvcm5lci1sZWZ0LWRvd24udHMiLCJEOlxcc3JjXFxpY29uc1xcY29ybmVyLWxlZnQtdXAudHMiLCJEOlxcc3JjXFxpY29uc1xcY29ybmVyLXJpZ2h0LWRvd24udHMiLCJEOlxcc3JjXFxpY29uc1xcY29ybmVyLXJpZ2h0LXVwLnRzIiwiRDpcXHNyY1xcaWNvbnNcXGNvcm5lci11cC1sZWZ0LnRzIiwiRDpcXHNyY1xcaWNvbnNcXGNvcm5lci11cC1yaWdodC50cyIsIkQ6XFxzcmNcXGljb25zXFxjcHUudHMiLCJEOlxcc3JjXFxpY29uc1xcY3JlYXRpdmUtY29tbW9ucy50cyIsIkQ6XFxzcmNcXGljb25zXFxjcmVkaXQtY2FyZC50cyIsIkQ6XFxzcmNcXGljb25zXFxjcm9pc3NhbnQudHMiLCJEOlxcc3JjXFxpY29uc1xcY3JvcC50cyIsIkQ6XFxzcmNcXGljb25zXFxjcm9zcy50cyIsIkQ6XFxzcmNcXGljb25zXFxjcm9zc2hhaXIudHMiLCJEOlxcc3JjXFxpY29uc1xcY3Jvd24udHMiLCJEOlxcc3JjXFxpY29uc1xcY3Vib2lkLnRzIiwiRDpcXHNyY1xcaWNvbnNcXGN1cC1zb2RhLnRzIiwiRDpcXHNyY1xcaWNvbnNcXGN1cnJlbmN5LnRzIiwiRDpcXHNyY1xcaWNvbnNcXGN5bGluZGVyLnRzIiwiRDpcXHNyY1xcaWNvbnNcXGRhbS50cyIsIkQ6XFxzcmNcXGljb25zXFxkYXRhYmFzZS1iYWNrdXAudHMiLCJEOlxcc3JjXFxpY29uc1xcZGF0YWJhc2UtemFwLnRzIiwiRDpcXHNyY1xcaWNvbnNcXGRhdGFiYXNlLnRzIiwiRDpcXHNyY1xcaWNvbnNcXGRlY2ltYWxzLWFycm93LWxlZnQudHMiLCJEOlxcc3JjXFxpY29uc1xcZGVjaW1hbHMtYXJyb3ctcmlnaHQudHMiLCJEOlxcc3JjXFxpY29uc1xcZGVsZXRlLnRzIiwiRDpcXHNyY1xcaWNvbnNcXGRlc3NlcnQudHMiLCJEOlxcc3JjXFxpY29uc1xcZGlhbW9uZC1taW51cy50cyIsIkQ6XFxzcmNcXGljb25zXFxkaWFtZXRlci50cyIsIkQ6XFxzcmNcXGljb25zXFxkaWFtb25kLXBlcmNlbnQudHMiLCJEOlxcc3JjXFxpY29uc1xcZGlhbW9uZC1wbHVzLnRzIiwiRDpcXHNyY1xcaWNvbnNcXGRpYW1vbmQudHMiLCJEOlxcc3JjXFxpY29uc1xcZGljZS0xLnRzIiwiRDpcXHNyY1xcaWNvbnNcXGRpY2UtMi50cyIsIkQ6XFxzcmNcXGljb25zXFxkaWNlLTMudHMiLCJEOlxcc3JjXFxpY29uc1xcZGljZS00LnRzIiwiRDpcXHNyY1xcaWNvbnNcXGRpY2UtNS50cyIsIkQ6XFxzcmNcXGljb25zXFxkaWNlLTYudHMiLCJEOlxcc3JjXFxpY29uc1xcZGljZXMudHMiLCJEOlxcc3JjXFxpY29uc1xcZGlmZi50cyIsIkQ6XFxzcmNcXGljb25zXFxkaXNjLTIudHMiLCJEOlxcc3JjXFxpY29uc1xcZGlzYy0zLnRzIiwiRDpcXHNyY1xcaWNvbnNcXGRpc2MtYWxidW0udHMiLCJEOlxcc3JjXFxpY29uc1xcZGlzYy50cyIsIkQ6XFxzcmNcXGljb25zXFxkaXZpZGUudHMiLCJEOlxcc3JjXFxpY29uc1xcZG5hLW9mZi50cyIsIkQ6XFxzcmNcXGljb25zXFxkbmEudHMiLCJEOlxcc3JjXFxpY29uc1xcZG9jay50cyIsIkQ6XFxzcmNcXGljb25zXFxkb2cudHMiLCJEOlxcc3JjXFxpY29uc1xcZG9sbGFyLXNpZ24udHMiLCJEOlxcc3JjXFxpY29uc1xcZG9vci1jbG9zZWQtbG9ja2VkLnRzIiwiRDpcXHNyY1xcaWNvbnNcXGRvbnV0LnRzIiwiRDpcXHNyY1xcaWNvbnNcXGRvb3ItY2xvc2VkLnRzIiwiRDpcXHNyY1xcaWNvbnNcXGRvdC50cyIsIkQ6XFxzcmNcXGljb25zXFxkb3dubG9hZC50cyIsIkQ6XFxzcmNcXGljb25zXFxkb29yLW9wZW4udHMiLCJEOlxcc3JjXFxpY29uc1xcZHJhZnRpbmctY29tcGFzcy50cyIsIkQ6XFxzcmNcXGljb25zXFxkcmFtYS50cyIsIkQ6XFxzcmNcXGljb25zXFxkcmliYmJsZS50cyIsIkQ6XFxzcmNcXGljb25zXFxkcmlsbC50cyIsIkQ6XFxzcmNcXGljb25zXFxkcm9uZS50cyIsIkQ6XFxzcmNcXGljb25zXFxkcm9wbGV0LW9mZi50cyIsIkQ6XFxzcmNcXGljb25zXFxkcm9wbGV0LnRzIiwiRDpcXHNyY1xcaWNvbnNcXGRyb3BsZXRzLnRzIiwiRDpcXHNyY1xcaWNvbnNcXGRydW0udHMiLCJEOlxcc3JjXFxpY29uc1xcZHJ1bXN0aWNrLnRzIiwiRDpcXHNyY1xcaWNvbnNcXGR1bWJiZWxsLnRzIiwiRDpcXHNyY1xcaWNvbnNcXGVhci1vZmYudHMiLCJEOlxcc3JjXFxpY29uc1xcZWFyLnRzIiwiRDpcXHNyY1xcaWNvbnNcXGVhcnRoLWxvY2sudHMiLCJEOlxcc3JjXFxpY29uc1xcZWFydGgudHMiLCJEOlxcc3JjXFxpY29uc1xcZWNsaXBzZS50cyIsIkQ6XFxzcmNcXGljb25zXFxlZ2ctZnJpZWQudHMiLCJEOlxcc3JjXFxpY29uc1xcZWdnLW9mZi50cyIsIkQ6XFxzcmNcXGljb25zXFxlZ2cudHMiLCJEOlxcc3JjXFxpY29uc1xcZWxsaXBzaXMtdmVydGljYWwudHMiLCJEOlxcc3JjXFxpY29uc1xcZWxsaXBzaXMudHMiLCJEOlxcc3JjXFxpY29uc1xcZXF1YWwtbm90LnRzIiwiRDpcXHNyY1xcaWNvbnNcXGVxdWFsLWFwcHJveGltYXRlbHkudHMiLCJEOlxcc3JjXFxpY29uc1xcZXF1YWwudHMiLCJEOlxcc3JjXFxpY29uc1xcZXJhc2VyLnRzIiwiRDpcXHNyY1xcaWNvbnNcXGV0aGVybmV0LXBvcnQudHMiLCJEOlxcc3JjXFxpY29uc1xcZXVyby50cyIsIkQ6XFxzcmNcXGljb25zXFxleHBhbmQudHMiLCJEOlxcc3JjXFxpY29uc1xcZXh0ZXJuYWwtbGluay50cyIsIkQ6XFxzcmNcXGljb25zXFxleWUtY2xvc2VkLnRzIiwiRDpcXHNyY1xcaWNvbnNcXGV5ZS1vZmYudHMiLCJEOlxcc3JjXFxpY29uc1xcZXllLnRzIiwiRDpcXHNyY1xcaWNvbnNcXGZhY2Vib29rLnRzIiwiRDpcXHNyY1xcaWNvbnNcXGZhY3RvcnkudHMiLCJEOlxcc3JjXFxpY29uc1xcZmFuLnRzIiwiRDpcXHNyY1xcaWNvbnNcXGZhc3QtZm9yd2FyZC50cyIsIkQ6XFxzcmNcXGljb25zXFxmZWF0aGVyLnRzIiwiRDpcXHNyY1xcaWNvbnNcXGZlbmNlLnRzIiwiRDpcXHNyY1xcaWNvbnNcXGZlcnJpcy13aGVlbC50cyIsIkQ6XFxzcmNcXGljb25zXFxmaWdtYS50cyIsIkQ6XFxzcmNcXGljb25zXFxmaWxlLWFyY2hpdmUudHMiLCJEOlxcc3JjXFxpY29uc1xcZmlsZS1hdWRpby0yLnRzIiwiRDpcXHNyY1xcaWNvbnNcXGZpbGUtYXVkaW8udHMiLCJEOlxcc3JjXFxpY29uc1xcZmlsZS1heGlzLTNkLnRzIiwiRDpcXHNyY1xcaWNvbnNcXGZpbGUtYmFkZ2UtMi50cyIsIkQ6XFxzcmNcXGljb25zXFxmaWxlLWJhZGdlLnRzIiwiRDpcXHNyY1xcaWNvbnNcXGZpbGUtYm94LnRzIiwiRDpcXHNyY1xcaWNvbnNcXGZpbGUtY2hhcnQtY29sdW1uLWluY3JlYXNpbmcudHMiLCJEOlxcc3JjXFxpY29uc1xcZmlsZS1jaGFydC1jb2x1bW4udHMiLCJEOlxcc3JjXFxpY29uc1xcZmlsZS1jaGFydC1waWUudHMiLCJEOlxcc3JjXFxpY29uc1xcZmlsZS1jaGFydC1saW5lLnRzIiwiRDpcXHNyY1xcaWNvbnNcXGZpbGUtY2hlY2stMi50cyIsIkQ6XFxzcmNcXGljb25zXFxmaWxlLWNoZWNrLnRzIiwiRDpcXHNyY1xcaWNvbnNcXGZpbGUtY29kZS0yLnRzIiwiRDpcXHNyY1xcaWNvbnNcXGZpbGUtY2xvY2sudHMiLCJEOlxcc3JjXFxpY29uc1xcZmlsZS1jb2RlLnRzIiwiRDpcXHNyY1xcaWNvbnNcXGZpbGUtY29nLnRzIiwiRDpcXHNyY1xcaWNvbnNcXGZpbGUtZGlmZi50cyIsIkQ6XFxzcmNcXGljb25zXFxmaWxlLWRpZ2l0LnRzIiwiRDpcXHNyY1xcaWNvbnNcXGZpbGUtZG93bi50cyIsIkQ6XFxzcmNcXGljb25zXFxmaWxlLWhlYXJ0LnRzIiwiRDpcXHNyY1xcaWNvbnNcXGZpbGUtaW1hZ2UudHMiLCJEOlxcc3JjXFxpY29uc1xcZmlsZS1pbnB1dC50cyIsIkQ6XFxzcmNcXGljb25zXFxmaWxlLWpzb24tMi50cyIsIkQ6XFxzcmNcXGljb25zXFxmaWxlLWpzb24udHMiLCJEOlxcc3JjXFxpY29uc1xcZmlsZS1rZXktMi50cyIsIkQ6XFxzcmNcXGljb25zXFxmaWxlLWtleS50cyIsIkQ6XFxzcmNcXGljb25zXFxmaWxlLWxvY2stMi50cyIsIkQ6XFxzcmNcXGljb25zXFxmaWxlLWxvY2sudHMiLCJEOlxcc3JjXFxpY29uc1xcZmlsZS1taW51cy0yLnRzIiwiRDpcXHNyY1xcaWNvbnNcXGZpbGUtbWludXMudHMiLCJEOlxcc3JjXFxpY29uc1xcZmlsZS1tdXNpYy50cyIsIkQ6XFxzcmNcXGljb25zXFxmaWxlLW91dHB1dC50cyIsIkQ6XFxzcmNcXGljb25zXFxmaWxlLXBlbi1saW5lLnRzIiwiRDpcXHNyY1xcaWNvbnNcXGZpbGUtcGVuLnRzIiwiRDpcXHNyY1xcaWNvbnNcXGZpbGUtcGx1cy0yLnRzIiwiRDpcXHNyY1xcaWNvbnNcXGZpbGUtcGx1cy50cyIsIkQ6XFxzcmNcXGljb25zXFxmaWxlLXF1ZXN0aW9uLW1hcmsudHMiLCJEOlxcc3JjXFxpY29uc1xcZmlsZS1zY2FuLnRzIiwiRDpcXHNyY1xcaWNvbnNcXGZpbGUtc2VhcmNoLTIudHMiLCJEOlxcc3JjXFxpY29uc1xcZmlsZS1zZWFyY2gudHMiLCJEOlxcc3JjXFxpY29uc1xcZmlsZS1zbGlkZXJzLnRzIiwiRDpcXHNyY1xcaWNvbnNcXGZpbGUtc3ByZWFkc2hlZXQudHMiLCJEOlxcc3JjXFxpY29uc1xcZmlsZS1zdGFjay50cyIsIkQ6XFxzcmNcXGljb25zXFxmaWxlLXN5bWxpbmsudHMiLCJEOlxcc3JjXFxpY29uc1xcZmlsZS10ZXJtaW5hbC50cyIsIkQ6XFxzcmNcXGljb25zXFxmaWxlLXRleHQudHMiLCJEOlxcc3JjXFxpY29uc1xcZmlsZS10eXBlLTIudHMiLCJEOlxcc3JjXFxpY29uc1xcZmlsZS10eXBlLnRzIiwiRDpcXHNyY1xcaWNvbnNcXGZpbGUtdXAudHMiLCJEOlxcc3JjXFxpY29uc1xcZmlsZS12aWRlby0yLnRzIiwiRDpcXHNyY1xcaWNvbnNcXGZpbGUtdXNlci50cyIsIkQ6XFxzcmNcXGljb25zXFxmaWxlLXZpZGVvLnRzIiwiRDpcXHNyY1xcaWNvbnNcXGZpbGUtdm9sdW1lLTIudHMiLCJEOlxcc3JjXFxpY29uc1xcZmlsZS12b2x1bWUudHMiLCJEOlxcc3JjXFxpY29uc1xcZmlsZS13YXJuaW5nLnRzIiwiRDpcXHNyY1xcaWNvbnNcXGZpbGUteC0yLnRzIiwiRDpcXHNyY1xcaWNvbnNcXGZpbGUteC50cyIsIkQ6XFxzcmNcXGljb25zXFxmaWxlLnRzIiwiRDpcXHNyY1xcaWNvbnNcXGZpbGVzLnRzIiwiRDpcXHNyY1xcaWNvbnNcXGZpbG0udHMiLCJEOlxcc3JjXFxpY29uc1xcZmluZ2VycHJpbnQudHMiLCJEOlxcc3JjXFxpY29uc1xcZmlyZS1leHRpbmd1aXNoZXIudHMiLCJEOlxcc3JjXFxpY29uc1xcZmlzaC1vZmYudHMiLCJEOlxcc3JjXFxpY29uc1xcZmlzaC1zeW1ib2wudHMiLCJEOlxcc3JjXFxpY29uc1xcZmlzaC50cyIsIkQ6XFxzcmNcXGljb25zXFxmbGFnLW9mZi50cyIsIkQ6XFxzcmNcXGljb25zXFxmbGFnLXRyaWFuZ2xlLWxlZnQudHMiLCJEOlxcc3JjXFxpY29uc1xcZmxhZy10cmlhbmdsZS1yaWdodC50cyIsIkQ6XFxzcmNcXGljb25zXFxmbGFnLnRzIiwiRDpcXHNyY1xcaWNvbnNcXGZsYW1lLWtpbmRsaW5nLnRzIiwiRDpcXHNyY1xcaWNvbnNcXGZsYW1lLnRzIiwiRDpcXHNyY1xcaWNvbnNcXGZsYXNobGlnaHQtb2ZmLnRzIiwiRDpcXHNyY1xcaWNvbnNcXGZsYXNobGlnaHQudHMiLCJEOlxcc3JjXFxpY29uc1xcZmxhc2stY29uaWNhbC1vZmYudHMiLCJEOlxcc3JjXFxpY29uc1xcZmxhc2stY29uaWNhbC50cyIsIkQ6XFxzcmNcXGljb25zXFxmbGFzay1yb3VuZC50cyIsIkQ6XFxzcmNcXGljb25zXFxmbGlwLWhvcml6b250YWwtMi50cyIsIkQ6XFxzcmNcXGljb25zXFxmbGlwLWhvcml6b250YWwudHMiLCJEOlxcc3JjXFxpY29uc1xcZmxpcC12ZXJ0aWNhbC0yLnRzIiwiRDpcXHNyY1xcaWNvbnNcXGZsaXAtdmVydGljYWwudHMiLCJEOlxcc3JjXFxpY29uc1xcZmxvd2VyLTIudHMiLCJEOlxcc3JjXFxpY29uc1xcZmxvd2VyLnRzIiwiRDpcXHNyY1xcaWNvbnNcXGZvY3VzLnRzIiwiRDpcXHNyY1xcaWNvbnNcXGZvbGQtaG9yaXpvbnRhbC50cyIsIkQ6XFxzcmNcXGljb25zXFxmb2xkLXZlcnRpY2FsLnRzIiwiRDpcXHNyY1xcaWNvbnNcXGZvbGRlci1hcmNoaXZlLnRzIiwiRDpcXHNyY1xcaWNvbnNcXGZvbGRlci1jaGVjay50cyIsIkQ6XFxzcmNcXGljb25zXFxmb2xkZXItY2xvY2sudHMiLCJEOlxcc3JjXFxpY29uc1xcZm9sZGVyLWNsb3NlZC50cyIsIkQ6XFxzcmNcXGljb25zXFxmb2xkZXItY29kZS50cyIsIkQ6XFxzcmNcXGljb25zXFxmb2xkZXItY29nLnRzIiwiRDpcXHNyY1xcaWNvbnNcXGZvbGRlci1kb3QudHMiLCJEOlxcc3JjXFxpY29uc1xcZm9sZGVyLWRvd24udHMiLCJEOlxcc3JjXFxpY29uc1xcZm9sZGVyLWdpdC0yLnRzIiwiRDpcXHNyY1xcaWNvbnNcXGZvbGRlci1naXQudHMiLCJEOlxcc3JjXFxpY29uc1xcZm9sZGVyLWhlYXJ0LnRzIiwiRDpcXHNyY1xcaWNvbnNcXGZvbGRlci1pbnB1dC50cyIsIkQ6XFxzcmNcXGljb25zXFxmb2xkZXIta2FuYmFuLnRzIiwiRDpcXHNyY1xcaWNvbnNcXGZvbGRlci1rZXkudHMiLCJEOlxcc3JjXFxpY29uc1xcZm9sZGVyLW1pbnVzLnRzIiwiRDpcXHNyY1xcaWNvbnNcXGZvbGRlci1sb2NrLnRzIiwiRDpcXHNyY1xcaWNvbnNcXGZvbGRlci1vcGVuLWRvdC50cyIsIkQ6XFxzcmNcXGljb25zXFxmb2xkZXItb3Blbi50cyIsIkQ6XFxzcmNcXGljb25zXFxmb2xkZXItb3V0cHV0LnRzIiwiRDpcXHNyY1xcaWNvbnNcXGZvbGRlci1wZW4udHMiLCJEOlxcc3JjXFxpY29uc1xcZm9sZGVyLXBsdXMudHMiLCJEOlxcc3JjXFxpY29uc1xcZm9sZGVyLXJvb3QudHMiLCJEOlxcc3JjXFxpY29uc1xcZm9sZGVyLXNlYXJjaC0yLnRzIiwiRDpcXHNyY1xcaWNvbnNcXGZvbGRlci1zZWFyY2gudHMiLCJEOlxcc3JjXFxpY29uc1xcZm9sZGVyLXN5bWxpbmsudHMiLCJEOlxcc3JjXFxpY29uc1xcZm9sZGVyLXN5bmMudHMiLCJEOlxcc3JjXFxpY29uc1xcZm9sZGVyLXRyZWUudHMiLCJEOlxcc3JjXFxpY29uc1xcZm9sZGVyLXVwLnRzIiwiRDpcXHNyY1xcaWNvbnNcXGZvbGRlci14LnRzIiwiRDpcXHNyY1xcaWNvbnNcXGZvbGRlci50cyIsIkQ6XFxzcmNcXGljb25zXFxmb2xkZXJzLnRzIiwiRDpcXHNyY1xcaWNvbnNcXGZvb3RwcmludHMudHMiLCJEOlxcc3JjXFxpY29uc1xcZm9ya2xpZnQudHMiLCJEOlxcc3JjXFxpY29uc1xcZm9yd2FyZC50cyIsIkQ6XFxzcmNcXGljb25zXFxmcmFtZS50cyIsIkQ6XFxzcmNcXGljb25zXFxmcmFtZXIudHMiLCJEOlxcc3JjXFxpY29uc1xcZnJvd24udHMiLCJEOlxcc3JjXFxpY29uc1xcZnVlbC50cyIsIkQ6XFxzcmNcXGljb25zXFxmdWxsc2NyZWVuLnRzIiwiRDpcXHNyY1xcaWNvbnNcXGZ1bm5lbC1wbHVzLnRzIiwiRDpcXHNyY1xcaWNvbnNcXGZ1bm5lbC14LnRzIiwiRDpcXHNyY1xcaWNvbnNcXGZ1bm5lbC50cyIsIkQ6XFxzcmNcXGljb25zXFxnYWxsZXJ5LWhvcml6b250YWwtZW5kLnRzIiwiRDpcXHNyY1xcaWNvbnNcXGdhbGxlcnktaG9yaXpvbnRhbC50cyIsIkQ6XFxzcmNcXGljb25zXFxnYWxsZXJ5LXRodW1ibmFpbHMudHMiLCJEOlxcc3JjXFxpY29uc1xcZ2FsbGVyeS12ZXJ0aWNhbC1lbmQudHMiLCJEOlxcc3JjXFxpY29uc1xcZ2FsbGVyeS12ZXJ0aWNhbC50cyIsIkQ6XFxzcmNcXGljb25zXFxnYW1lcGFkLTIudHMiLCJEOlxcc3JjXFxpY29uc1xcZ2FtZXBhZC50cyIsIkQ6XFxzcmNcXGljb25zXFxnYXVnZS50cyIsIkQ6XFxzcmNcXGljb25zXFxnYXZlbC50cyIsIkQ6XFxzcmNcXGljb25zXFxnZW0udHMiLCJEOlxcc3JjXFxpY29uc1xcZ2VvcmdpYW4tbGFyaS50cyIsIkQ6XFxzcmNcXGljb25zXFxnaG9zdC50cyIsIkQ6XFxzcmNcXGljb25zXFxnaWZ0LnRzIiwiRDpcXHNyY1xcaWNvbnNcXGdpdC1icmFuY2gtcGx1cy50cyIsIkQ6XFxzcmNcXGljb25zXFxnaXQtYnJhbmNoLnRzIiwiRDpcXHNyY1xcaWNvbnNcXGdpdC1jb21taXQtaG9yaXpvbnRhbC50cyIsIkQ6XFxzcmNcXGljb25zXFxnaXQtY29tbWl0LXZlcnRpY2FsLnRzIiwiRDpcXHNyY1xcaWNvbnNcXGdpdC1jb21wYXJlLWFycm93cy50cyIsIkQ6XFxzcmNcXGljb25zXFxnaXQtZm9yay50cyIsIkQ6XFxzcmNcXGljb25zXFxnaXQtY29tcGFyZS50cyIsIkQ6XFxzcmNcXGljb25zXFxnaXQtZ3JhcGgudHMiLCJEOlxcc3JjXFxpY29uc1xcZ2l0LW1lcmdlLnRzIiwiRDpcXHNyY1xcaWNvbnNcXGdpdC1wdWxsLXJlcXVlc3QtYXJyb3cudHMiLCJEOlxcc3JjXFxpY29uc1xcZ2l0LXB1bGwtcmVxdWVzdC1jbG9zZWQudHMiLCJEOlxcc3JjXFxpY29uc1xcZ2l0LXB1bGwtcmVxdWVzdC1jcmVhdGUtYXJyb3cudHMiLCJEOlxcc3JjXFxpY29uc1xcZ2l0LXB1bGwtcmVxdWVzdC1jcmVhdGUudHMiLCJEOlxcc3JjXFxpY29uc1xcZ2l0LXB1bGwtcmVxdWVzdC1kcmFmdC50cyIsIkQ6XFxzcmNcXGljb25zXFxnaXQtcHVsbC1yZXF1ZXN0LnRzIiwiRDpcXHNyY1xcaWNvbnNcXGdpdGh1Yi50cyIsIkQ6XFxzcmNcXGljb25zXFxnaXRsYWIudHMiLCJEOlxcc3JjXFxpY29uc1xcZ2xhc3Mtd2F0ZXIudHMiLCJEOlxcc3JjXFxpY29uc1xcZ2xhc3Nlcy50cyIsIkQ6XFxzcmNcXGljb25zXFxnbG9iZS1sb2NrLnRzIiwiRDpcXHNyY1xcaWNvbnNcXGdsb2JlLnRzIiwiRDpcXHNyY1xcaWNvbnNcXGdvYWwudHMiLCJEOlxcc3JjXFxpY29uc1xcZ3B1LnRzIiwiRDpcXHNyY1xcaWNvbnNcXGdyYWIudHMiLCJEOlxcc3JjXFxpY29uc1xcZ3JhZHVhdGlvbi1jYXAudHMiLCJEOlxcc3JjXFxpY29uc1xcZ3JhcGUudHMiLCJEOlxcc3JjXFxpY29uc1xcZ3JpZC0yeDItY2hlY2sudHMiLCJEOlxcc3JjXFxpY29uc1xcZ3JpZC0yeDItcGx1cy50cyIsIkQ6XFxzcmNcXGljb25zXFxncmlkLTJ4Mi14LnRzIiwiRDpcXHNyY1xcaWNvbnNcXGdyaWQtMngyLnRzIiwiRDpcXHNyY1xcaWNvbnNcXGdyaWQtM3gyLnRzIiwiRDpcXHNyY1xcaWNvbnNcXGdyaWQtM3gzLnRzIiwiRDpcXHNyY1xcaWNvbnNcXGdyaXAtaG9yaXpvbnRhbC50cyIsIkQ6XFxzcmNcXGljb25zXFxncmlwLXZlcnRpY2FsLnRzIiwiRDpcXHNyY1xcaWNvbnNcXGdyaXAudHMiLCJEOlxcc3JjXFxpY29uc1xcZ3VpdGFyLnRzIiwiRDpcXHNyY1xcaWNvbnNcXGdyb3VwLnRzIiwiRDpcXHNyY1xcaWNvbnNcXGhhbS50cyIsIkQ6XFxzcmNcXGljb25zXFxoYW1idXJnZXIudHMiLCJEOlxcc3JjXFxpY29uc1xcaGFtbWVyLnRzIiwiRDpcXHNyY1xcaWNvbnNcXGhhbmQtY29pbnMudHMiLCJEOlxcc3JjXFxpY29uc1xcaGFuZC1oZWFydC50cyIsIkQ6XFxzcmNcXGljb25zXFxoYW5kLWhlbHBpbmcudHMiLCJEOlxcc3JjXFxpY29uc1xcaGFuZC1tZXRhbC50cyIsIkQ6XFxzcmNcXGljb25zXFxoYW5kLXBsYXR0ZXIudHMiLCJEOlxcc3JjXFxpY29uc1xcaGFuZC50cyIsIkQ6XFxzcmNcXGljb25zXFxoYW5kc2hha2UudHMiLCJEOlxcc3JjXFxpY29uc1xcaGFyZC1kcml2ZS1kb3dubG9hZC50cyIsIkQ6XFxzcmNcXGljb25zXFxoYXJkLWRyaXZlLXVwbG9hZC50cyIsIkQ6XFxzcmNcXGljb25zXFxoYXJkLWRyaXZlLnRzIiwiRDpcXHNyY1xcaWNvbnNcXGhhcmQtaGF0LnRzIiwiRDpcXHNyY1xcaWNvbnNcXGhhc2gudHMiLCJEOlxcc3JjXFxpY29uc1xcaGF6ZS50cyIsIkQ6XFxzcmNcXGljb25zXFxoZG1pLXBvcnQudHMiLCJEOlxcc3JjXFxpY29uc1xcaGVhZGluZy0xLnRzIiwiRDpcXHNyY1xcaWNvbnNcXGhlYWRpbmctMi50cyIsIkQ6XFxzcmNcXGljb25zXFxoZWFkaW5nLTMudHMiLCJEOlxcc3JjXFxpY29uc1xcaGVhZGluZy00LnRzIiwiRDpcXHNyY1xcaWNvbnNcXGhlYWRpbmctNS50cyIsIkQ6XFxzcmNcXGljb25zXFxoZWFkaW5nLTYudHMiLCJEOlxcc3JjXFxpY29uc1xcaGVhZGluZy50cyIsIkQ6XFxzcmNcXGljb25zXFxoZWFkcGhvbmUtb2ZmLnRzIiwiRDpcXHNyY1xcaWNvbnNcXGhlYWRwaG9uZXMudHMiLCJEOlxcc3JjXFxpY29uc1xcaGVhZHNldC50cyIsIkQ6XFxzcmNcXGljb25zXFxoZWFydC1jcmFjay50cyIsIkQ6XFxzcmNcXGljb25zXFxoZWFydC1oYW5kc2hha2UudHMiLCJEOlxcc3JjXFxpY29uc1xcaGVhcnQtb2ZmLnRzIiwiRDpcXHNyY1xcaWNvbnNcXGhlYXJ0LW1pbnVzLnRzIiwiRDpcXHNyY1xcaWNvbnNcXGhlYXJ0LXBsdXMudHMiLCJEOlxcc3JjXFxpY29uc1xcaGVhcnQtcHVsc2UudHMiLCJEOlxcc3JjXFxpY29uc1xcaGVhcnQudHMiLCJEOlxcc3JjXFxpY29uc1xcaGVhdGVyLnRzIiwiRDpcXHNyY1xcaWNvbnNcXGhleGFnb24udHMiLCJEOlxcc3JjXFxpY29uc1xcaGlnaGxpZ2h0ZXIudHMiLCJEOlxcc3JjXFxpY29uc1xcaGlzdG9yeS50cyIsIkQ6XFxzcmNcXGljb25zXFxob3Atb2ZmLnRzIiwiRDpcXHNyY1xcaWNvbnNcXGhvcC50cyIsIkQ6XFxzcmNcXGljb25zXFxob3NwaXRhbC50cyIsIkQ6XFxzcmNcXGljb25zXFxob3RlbC50cyIsIkQ6XFxzcmNcXGljb25zXFxob3VyZ2xhc3MudHMiLCJEOlxcc3JjXFxpY29uc1xcaG91c2UtcGx1Zy50cyIsIkQ6XFxzcmNcXGljb25zXFxob3VzZS1wbHVzLnRzIiwiRDpcXHNyY1xcaWNvbnNcXGhvdXNlLnRzIiwiRDpcXHNyY1xcaWNvbnNcXGhvdXNlLXdpZmkudHMiLCJEOlxcc3JjXFxpY29uc1xcaWNlLWNyZWFtLWJvd2wudHMiLCJEOlxcc3JjXFxpY29uc1xcaWNlLWNyZWFtLWNvbmUudHMiLCJEOlxcc3JjXFxpY29uc1xcaWQtY2FyZC1sYW55YXJkLnRzIiwiRDpcXHNyY1xcaWNvbnNcXGlkLWNhcmQudHMiLCJEOlxcc3JjXFxpY29uc1xcaW1hZ2UtZG93bi50cyIsIkQ6XFxzcmNcXGljb25zXFxpbWFnZS1taW51cy50cyIsIkQ6XFxzcmNcXGljb25zXFxpbWFnZS1vZmYudHMiLCJEOlxcc3JjXFxpY29uc1xcaW1hZ2UtcGxheS50cyIsIkQ6XFxzcmNcXGljb25zXFxpbWFnZS1wbHVzLnRzIiwiRDpcXHNyY1xcaWNvbnNcXGltYWdlLXVwLnRzIiwiRDpcXHNyY1xcaWNvbnNcXGltYWdlLXVwc2NhbGUudHMiLCJEOlxcc3JjXFxpY29uc1xcaW1hZ2UudHMiLCJEOlxcc3JjXFxpY29uc1xcaW1hZ2VzLnRzIiwiRDpcXHNyY1xcaWNvbnNcXGltcG9ydC50cyIsIkQ6XFxzcmNcXGljb25zXFxpbmJveC50cyIsIkQ6XFxzcmNcXGljb25zXFxpbmRlbnQtZGVjcmVhc2UudHMiLCJEOlxcc3JjXFxpY29uc1xcaW5kZW50LWluY3JlYXNlLnRzIiwiRDpcXHNyY1xcaWNvbnNcXGluZGlhbi1ydXBlZS50cyIsIkQ6XFxzcmNcXGljb25zXFxpbmZpbml0eS50cyIsIkQ6XFxzcmNcXGljb25zXFxpbmZvLnRzIiwiRDpcXHNyY1xcaWNvbnNcXGluc3RhZ3JhbS50cyIsIkQ6XFxzcmNcXGljb25zXFxpbnNwZWN0aW9uLXBhbmVsLnRzIiwiRDpcXHNyY1xcaWNvbnNcXGl0YWxpYy50cyIsIkQ6XFxzcmNcXGljb25zXFxpdGVyYXRpb24tY2N3LnRzIiwiRDpcXHNyY1xcaWNvbnNcXGl0ZXJhdGlvbi1jdy50cyIsIkQ6XFxzcmNcXGljb25zXFxqYXBhbmVzZS15ZW4udHMiLCJEOlxcc3JjXFxpY29uc1xcam95c3RpY2sudHMiLCJEOlxcc3JjXFxpY29uc1xca2FuYmFuLnRzIiwiRDpcXHNyY1xcaWNvbnNcXGtleS1yb3VuZC50cyIsIkQ6XFxzcmNcXGljb25zXFxrZXktc3F1YXJlLnRzIiwiRDpcXHNyY1xcaWNvbnNcXGtleS50cyIsIkQ6XFxzcmNcXGljb25zXFxrZXlib2FyZC1vZmYudHMiLCJEOlxcc3JjXFxpY29uc1xca2V5Ym9hcmQtbXVzaWMudHMiLCJEOlxcc3JjXFxpY29uc1xcbGFtcC1jZWlsaW5nLnRzIiwiRDpcXHNyY1xcaWNvbnNcXGtleWJvYXJkLnRzIiwiRDpcXHNyY1xcaWNvbnNcXGxhbXAtZGVzay50cyIsIkQ6XFxzcmNcXGljb25zXFxsYW1wLWZsb29yLnRzIiwiRDpcXHNyY1xcaWNvbnNcXGxhbXAtd2FsbC1kb3duLnRzIiwiRDpcXHNyY1xcaWNvbnNcXGxhbXAtd2FsbC11cC50cyIsIkQ6XFxzcmNcXGljb25zXFxsYW1wLnRzIiwiRDpcXHNyY1xcaWNvbnNcXGxhbmQtcGxvdC50cyIsIkQ6XFxzcmNcXGljb25zXFxsYW5kbWFyay50cyIsIkQ6XFxzcmNcXGljb25zXFxsYW5ndWFnZXMudHMiLCJEOlxcc3JjXFxpY29uc1xcbGFwdG9wLW1pbmltYWwtY2hlY2sudHMiLCJEOlxcc3JjXFxpY29uc1xcbGFwdG9wLW1pbmltYWwudHMiLCJEOlxcc3JjXFxpY29uc1xcbGFwdG9wLnRzIiwiRDpcXHNyY1xcaWNvbnNcXGxhc3NvLXNlbGVjdC50cyIsIkQ6XFxzcmNcXGljb25zXFxsYXNzby50cyIsIkQ6XFxzcmNcXGljb25zXFxsYXllcnMtMi50cyIsIkQ6XFxzcmNcXGljb25zXFxsYXVnaC50cyIsIkQ6XFxzcmNcXGljb25zXFxsYXllcnMudHMiLCJEOlxcc3JjXFxpY29uc1xcbGF5b3V0LWRhc2hib2FyZC50cyIsIkQ6XFxzcmNcXGljb25zXFxsYXlvdXQtbGlzdC50cyIsIkQ6XFxzcmNcXGljb25zXFxsYXlvdXQtZ3JpZC50cyIsIkQ6XFxzcmNcXGljb25zXFxsYXlvdXQtcGFuZWwtbGVmdC50cyIsIkQ6XFxzcmNcXGljb25zXFxsYXlvdXQtcGFuZWwtdG9wLnRzIiwiRDpcXHNyY1xcaWNvbnNcXGxheW91dC10ZW1wbGF0ZS50cyIsIkQ6XFxzcmNcXGljb25zXFxsZWFmLnRzIiwiRDpcXHNyY1xcaWNvbnNcXGxlYWZ5LWdyZWVuLnRzIiwiRDpcXHNyY1xcaWNvbnNcXGxlY3Rlcm4udHMiLCJEOlxcc3JjXFxpY29uc1xcbGV0dGVyLXRleHQudHMiLCJEOlxcc3JjXFxpY29uc1xcbGlicmFyeS1iaWcudHMiLCJEOlxcc3JjXFxpY29uc1xcbGlicmFyeS50cyIsIkQ6XFxzcmNcXGljb25zXFxsaWZlLWJ1b3kudHMiLCJEOlxcc3JjXFxpY29uc1xcbGlnYXR1cmUudHMiLCJEOlxcc3JjXFxpY29uc1xcbGlnaHRidWxiLnRzIiwiRDpcXHNyY1xcaWNvbnNcXGxpZ2h0YnVsYi1vZmYudHMiLCJEOlxcc3JjXFxpY29uc1xcbGluZS1zcXVpZ2dsZS50cyIsIkQ6XFxzcmNcXGljb25zXFxsaW5rLTItb2ZmLnRzIiwiRDpcXHNyY1xcaWNvbnNcXGxpbmstMi50cyIsIkQ6XFxzcmNcXGljb25zXFxsaW5rLnRzIiwiRDpcXHNyY1xcaWNvbnNcXGxpc3QtY2hlY2sudHMiLCJEOlxcc3JjXFxpY29uc1xcbGlua2VkaW4udHMiLCJEOlxcc3JjXFxpY29uc1xcbGlzdC1jaGVja3MudHMiLCJEOlxcc3JjXFxpY29uc1xcbGlzdC1jb2xsYXBzZS50cyIsIkQ6XFxzcmNcXGljb25zXFxsaXN0LWVuZC50cyIsIkQ6XFxzcmNcXGljb25zXFxsaXN0LWZpbHRlci1wbHVzLnRzIiwiRDpcXHNyY1xcaWNvbnNcXGxpc3QtZmlsdGVyLnRzIiwiRDpcXHNyY1xcaWNvbnNcXGxpc3QtbWludXMudHMiLCJEOlxcc3JjXFxpY29uc1xcbGlzdC1tdXNpYy50cyIsIkQ6XFxzcmNcXGljb25zXFxsaXN0LW9yZGVyZWQudHMiLCJEOlxcc3JjXFxpY29uc1xcbGlzdC1wbHVzLnRzIiwiRDpcXHNyY1xcaWNvbnNcXGxpc3QtcmVzdGFydC50cyIsIkQ6XFxzcmNcXGljb25zXFxsaXN0LXN0YXJ0LnRzIiwiRDpcXHNyY1xcaWNvbnNcXGxpc3QtdG9kby50cyIsIkQ6XFxzcmNcXGljb25zXFxsaXN0LXRyZWUudHMiLCJEOlxcc3JjXFxpY29uc1xcbGlzdC12aWRlby50cyIsIkQ6XFxzcmNcXGljb25zXFxsaXN0LXgudHMiLCJEOlxcc3JjXFxpY29uc1xcbGlzdC50cyIsIkQ6XFxzcmNcXGljb25zXFxsb2FkZXItY2lyY2xlLnRzIiwiRDpcXHNyY1xcaWNvbnNcXGxvYWRlci1waW53aGVlbC50cyIsIkQ6XFxzcmNcXGljb25zXFxsb2FkZXIudHMiLCJEOlxcc3JjXFxpY29uc1xcbG9jYXRlLW9mZi50cyIsIkQ6XFxzcmNcXGljb25zXFxsb2NhdGUtZml4ZWQudHMiLCJEOlxcc3JjXFxpY29uc1xcbG9jYXRlLnRzIiwiRDpcXHNyY1xcaWNvbnNcXGxvY2F0aW9uLWVkaXQudHMiLCJEOlxcc3JjXFxpY29uc1xcbG9jay1rZXlob2xlLW9wZW4udHMiLCJEOlxcc3JjXFxpY29uc1xcbG9jay1rZXlob2xlLnRzIiwiRDpcXHNyY1xcaWNvbnNcXGxvY2stb3Blbi50cyIsIkQ6XFxzcmNcXGljb25zXFxsb2ctaW4udHMiLCJEOlxcc3JjXFxpY29uc1xcbG9jay50cyIsIkQ6XFxzcmNcXGljb25zXFxsb2ctb3V0LnRzIiwiRDpcXHNyY1xcaWNvbnNcXGxvZ3MudHMiLCJEOlxcc3JjXFxpY29uc1xcbG9sbGlwb3AudHMiLCJEOlxcc3JjXFxpY29uc1xcbHVnZ2FnZS50cyIsIkQ6XFxzcmNcXGljb25zXFxtYWduZXQudHMiLCJEOlxcc3JjXFxpY29uc1xcbWFpbC1jaGVjay50cyIsIkQ6XFxzcmNcXGljb25zXFxtYWlsLW1pbnVzLnRzIiwiRDpcXHNyY1xcaWNvbnNcXG1haWwtb3Blbi50cyIsIkQ6XFxzcmNcXGljb25zXFxtYWlsLXBsdXMudHMiLCJEOlxcc3JjXFxpY29uc1xcbWFpbC1xdWVzdGlvbi1tYXJrLnRzIiwiRDpcXHNyY1xcaWNvbnNcXG1haWwtc2VhcmNoLnRzIiwiRDpcXHNyY1xcaWNvbnNcXG1haWwtd2FybmluZy50cyIsIkQ6XFxzcmNcXGljb25zXFxtYWlsLXgudHMiLCJEOlxcc3JjXFxpY29uc1xcbWFpbC50cyIsIkQ6XFxzcmNcXGljb25zXFxtYWlsYm94LnRzIiwiRDpcXHNyY1xcaWNvbnNcXG1haWxzLnRzIiwiRDpcXHNyY1xcaWNvbnNcXG1hcC1waW4tY2hlY2staW5zaWRlLnRzIiwiRDpcXHNyY1xcaWNvbnNcXG1hcC1waW4tY2hlY2sudHMiLCJEOlxcc3JjXFxpY29uc1xcbWFwLXBpbi1ob3VzZS50cyIsIkQ6XFxzcmNcXGljb25zXFxtYXAtcGluLW1pbnVzLWluc2lkZS50cyIsIkQ6XFxzcmNcXGljb25zXFxtYXAtcGluLW1pbnVzLnRzIiwiRDpcXHNyY1xcaWNvbnNcXG1hcC1waW4tb2ZmLnRzIiwiRDpcXHNyY1xcaWNvbnNcXG1hcC1waW4tcGx1cy1pbnNpZGUudHMiLCJEOlxcc3JjXFxpY29uc1xcbWFwLXBpbi1wbHVzLnRzIiwiRDpcXHNyY1xcaWNvbnNcXG1hcC1waW4teC1pbnNpZGUudHMiLCJEOlxcc3JjXFxpY29uc1xcbWFwLXBpbi14LnRzIiwiRDpcXHNyY1xcaWNvbnNcXG1hcC1waW4udHMiLCJEOlxcc3JjXFxpY29uc1xcbWFwLXBpbm5lZC50cyIsIkQ6XFxzcmNcXGljb25zXFxtYXAtcGx1cy50cyIsIkQ6XFxzcmNcXGljb25zXFxtYXAudHMiLCJEOlxcc3JjXFxpY29uc1xcbWFycy1zdHJva2UudHMiLCJEOlxcc3JjXFxpY29uc1xcbWFycy50cyIsIkQ6XFxzcmNcXGljb25zXFxtYXhpbWl6ZS0yLnRzIiwiRDpcXHNyY1xcaWNvbnNcXG1hcnRpbmkudHMiLCJEOlxcc3JjXFxpY29uc1xcbWF4aW1pemUudHMiLCJEOlxcc3JjXFxpY29uc1xcbWVkYWwudHMiLCJEOlxcc3JjXFxpY29uc1xcbWVnYXBob25lLW9mZi50cyIsIkQ6XFxzcmNcXGljb25zXFxtZWdhcGhvbmUudHMiLCJEOlxcc3JjXFxpY29uc1xcbWVoLnRzIiwiRDpcXHNyY1xcaWNvbnNcXG1lbW9yeS1zdGljay50cyIsIkQ6XFxzcmNcXGljb25zXFxtZW51LnRzIiwiRDpcXHNyY1xcaWNvbnNcXG1lcmdlLnRzIiwiRDpcXHNyY1xcaWNvbnNcXG1lc3NhZ2UtY2lyY2xlLWNvZGUudHMiLCJEOlxcc3JjXFxpY29uc1xcbWVzc2FnZS1jaXJjbGUtaGVhcnQudHMiLCJEOlxcc3JjXFxpY29uc1xcbWVzc2FnZS1jaXJjbGUtZGFzaGVkLnRzIiwiRDpcXHNyY1xcaWNvbnNcXG1lc3NhZ2UtY2lyY2xlLW1vcmUudHMiLCJEOlxcc3JjXFxpY29uc1xcbWVzc2FnZS1jaXJjbGUtb2ZmLnRzIiwiRDpcXHNyY1xcaWNvbnNcXG1lc3NhZ2UtY2lyY2xlLXBsdXMudHMiLCJEOlxcc3JjXFxpY29uc1xcbWVzc2FnZS1jaXJjbGUtcXVlc3Rpb24tbWFyay50cyIsIkQ6XFxzcmNcXGljb25zXFxtZXNzYWdlLWNpcmNsZS1yZXBseS50cyIsIkQ6XFxzcmNcXGljb25zXFxtZXNzYWdlLWNpcmNsZS13YXJuaW5nLnRzIiwiRDpcXHNyY1xcaWNvbnNcXG1lc3NhZ2UtY2lyY2xlLXgudHMiLCJEOlxcc3JjXFxpY29uc1xcbWVzc2FnZS1jaXJjbGUudHMiLCJEOlxcc3JjXFxpY29uc1xcbWVzc2FnZS1zcXVhcmUtY29kZS50cyIsIkQ6XFxzcmNcXGljb25zXFxtZXNzYWdlLXNxdWFyZS1kYXNoZWQudHMiLCJEOlxcc3JjXFxpY29uc1xcbWVzc2FnZS1zcXVhcmUtZGlmZi50cyIsIkQ6XFxzcmNcXGljb25zXFxtZXNzYWdlLXNxdWFyZS1kb3QudHMiLCJEOlxcc3JjXFxpY29uc1xcbWVzc2FnZS1zcXVhcmUtaGVhcnQudHMiLCJEOlxcc3JjXFxpY29uc1xcbWVzc2FnZS1zcXVhcmUtbG9jay50cyIsIkQ6XFxzcmNcXGljb25zXFxtZXNzYWdlLXNxdWFyZS1tb3JlLnRzIiwiRDpcXHNyY1xcaWNvbnNcXG1lc3NhZ2Utc3F1YXJlLW9mZi50cyIsIkQ6XFxzcmNcXGljb25zXFxtZXNzYWdlLXNxdWFyZS1wbHVzLnRzIiwiRDpcXHNyY1xcaWNvbnNcXG1lc3NhZ2Utc3F1YXJlLXF1b3RlLnRzIiwiRDpcXHNyY1xcaWNvbnNcXG1lc3NhZ2Utc3F1YXJlLXJlcGx5LnRzIiwiRDpcXHNyY1xcaWNvbnNcXG1lc3NhZ2Utc3F1YXJlLXNoYXJlLnRzIiwiRDpcXHNyY1xcaWNvbnNcXG1lc3NhZ2Utc3F1YXJlLXRleHQudHMiLCJEOlxcc3JjXFxpY29uc1xcbWVzc2FnZS1zcXVhcmUtd2FybmluZy50cyIsIkQ6XFxzcmNcXGljb25zXFxtZXNzYWdlLXNxdWFyZS14LnRzIiwiRDpcXHNyY1xcaWNvbnNcXG1lc3NhZ2Utc3F1YXJlLnRzIiwiRDpcXHNyY1xcaWNvbnNcXG1lc3NhZ2VzLXNxdWFyZS50cyIsIkQ6XFxzcmNcXGljb25zXFxtaWMtb2ZmLnRzIiwiRDpcXHNyY1xcaWNvbnNcXG1pYy12b2NhbC50cyIsIkQ6XFxzcmNcXGljb25zXFxtaWMudHMiLCJEOlxcc3JjXFxpY29uc1xcbWljcm9jaGlwLnRzIiwiRDpcXHNyY1xcaWNvbnNcXG1pY3Jvc2NvcGUudHMiLCJEOlxcc3JjXFxpY29uc1xcbWljcm93YXZlLnRzIiwiRDpcXHNyY1xcaWNvbnNcXG1pbGVzdG9uZS50cyIsIkQ6XFxzcmNcXGljb25zXFxtaWxrLW9mZi50cyIsIkQ6XFxzcmNcXGljb25zXFxtaWxrLnRzIiwiRDpcXHNyY1xcaWNvbnNcXG1pbmltaXplLTIudHMiLCJEOlxcc3JjXFxpY29uc1xcbWluaW1pemUudHMiLCJEOlxcc3JjXFxpY29uc1xcbWludXMudHMiLCJEOlxcc3JjXFxpY29uc1xcbW9uaXRvci1jaGVjay50cyIsIkQ6XFxzcmNcXGljb25zXFxtb25pdG9yLWNvZy50cyIsIkQ6XFxzcmNcXGljb25zXFxtb25pdG9yLWRvdC50cyIsIkQ6XFxzcmNcXGljb25zXFxtb25pdG9yLWRvd24udHMiLCJEOlxcc3JjXFxpY29uc1xcbW9uaXRvci1vZmYudHMiLCJEOlxcc3JjXFxpY29uc1xcbW9uaXRvci1wYXVzZS50cyIsIkQ6XFxzcmNcXGljb25zXFxtb25pdG9yLXBsYXkudHMiLCJEOlxcc3JjXFxpY29uc1xcbW9uaXRvci1zbWFydHBob25lLnRzIiwiRDpcXHNyY1xcaWNvbnNcXG1vbml0b3Itc3RvcC50cyIsIkQ6XFxzcmNcXGljb25zXFxtb25pdG9yLXVwLnRzIiwiRDpcXHNyY1xcaWNvbnNcXG1vbml0b3Itc3BlYWtlci50cyIsIkQ6XFxzcmNcXGljb25zXFxtb25pdG9yLXgudHMiLCJEOlxcc3JjXFxpY29uc1xcbW9uaXRvci50cyIsIkQ6XFxzcmNcXGljb25zXFxtb29uLXN0YXIudHMiLCJEOlxcc3JjXFxpY29uc1xcbW9vbi50cyIsIkQ6XFxzcmNcXGljb25zXFxtb3VudGFpbi1zbm93LnRzIiwiRDpcXHNyY1xcaWNvbnNcXG1vdW50YWluLnRzIiwiRDpcXHNyY1xcaWNvbnNcXG1vdXNlLW9mZi50cyIsIkQ6XFxzcmNcXGljb25zXFxtb3VzZS1wb2ludGVyLTIudHMiLCJEOlxcc3JjXFxpY29uc1xcbW91c2UtcG9pbnRlci1jbGljay50cyIsIkQ6XFxzcmNcXGljb25zXFxtb3VzZS1wb2ludGVyLWJhbi50cyIsIkQ6XFxzcmNcXGljb25zXFxtb3VzZS1wb2ludGVyLnRzIiwiRDpcXHNyY1xcaWNvbnNcXG1vdXNlLnRzIiwiRDpcXHNyY1xcaWNvbnNcXG1vdmUtM2QudHMiLCJEOlxcc3JjXFxpY29uc1xcbW92ZS1kaWFnb25hbC0yLnRzIiwiRDpcXHNyY1xcaWNvbnNcXG1vdmUtZGlhZ29uYWwudHMiLCJEOlxcc3JjXFxpY29uc1xcbW92ZS1kb3duLWxlZnQudHMiLCJEOlxcc3JjXFxpY29uc1xcbW92ZS1kb3duLXJpZ2h0LnRzIiwiRDpcXHNyY1xcaWNvbnNcXG1vdmUtZG93bi50cyIsIkQ6XFxzcmNcXGljb25zXFxtb3ZlLWhvcml6b250YWwudHMiLCJEOlxcc3JjXFxpY29uc1xcbW92ZS1sZWZ0LnRzIiwiRDpcXHNyY1xcaWNvbnNcXG1vdmUtdXAtbGVmdC50cyIsIkQ6XFxzcmNcXGljb25zXFxtb3ZlLXJpZ2h0LnRzIiwiRDpcXHNyY1xcaWNvbnNcXG1vdmUtdXAtcmlnaHQudHMiLCJEOlxcc3JjXFxpY29uc1xcbW92ZS11cC50cyIsIkQ6XFxzcmNcXGljb25zXFxtb3ZlLXZlcnRpY2FsLnRzIiwiRDpcXHNyY1xcaWNvbnNcXG1vdmUudHMiLCJEOlxcc3JjXFxpY29uc1xcbXVzaWMtMi50cyIsIkQ6XFxzcmNcXGljb25zXFxtdXNpYy0zLnRzIiwiRDpcXHNyY1xcaWNvbnNcXG11c2ljLTQudHMiLCJEOlxcc3JjXFxpY29uc1xcbXVzaWMudHMiLCJEOlxcc3JjXFxpY29uc1xcbmF2aWdhdGlvbi0yLW9mZi50cyIsIkQ6XFxzcmNcXGljb25zXFxuYXZpZ2F0aW9uLTIudHMiLCJEOlxcc3JjXFxpY29uc1xcbmF2aWdhdGlvbi1vZmYudHMiLCJEOlxcc3JjXFxpY29uc1xcbmF2aWdhdGlvbi50cyIsIkQ6XFxzcmNcXGljb25zXFxuZXR3b3JrLnRzIiwiRDpcXHNyY1xcaWNvbnNcXG5ld3NwYXBlci50cyIsIkQ6XFxzcmNcXGljb25zXFxuZmMudHMiLCJEOlxcc3JjXFxpY29uc1xcbm9uLWJpbmFyeS50cyIsIkQ6XFxzcmNcXGljb25zXFxub3RlYm9vay1wZW4udHMiLCJEOlxcc3JjXFxpY29uc1xcbm90ZWJvb2stdGFicy50cyIsIkQ6XFxzcmNcXGljb25zXFxub3RlYm9vay10ZXh0LnRzIiwiRDpcXHNyY1xcaWNvbnNcXG5vdGVib29rLnRzIiwiRDpcXHNyY1xcaWNvbnNcXG5vdGVwYWQtdGV4dC1kYXNoZWQudHMiLCJEOlxcc3JjXFxpY29uc1xcbm90ZXBhZC10ZXh0LnRzIiwiRDpcXHNyY1xcaWNvbnNcXG51dC1vZmYudHMiLCJEOlxcc3JjXFxpY29uc1xcbnV0LnRzIiwiRDpcXHNyY1xcaWNvbnNcXG9jdGFnb24tYWxlcnQudHMiLCJEOlxcc3JjXFxpY29uc1xcb2N0YWdvbi1taW51cy50cyIsIkQ6XFxzcmNcXGljb25zXFxvY3RhZ29uLXBhdXNlLnRzIiwiRDpcXHNyY1xcaWNvbnNcXG9jdGFnb24teC50cyIsIkQ6XFxzcmNcXGljb25zXFxvY3RhZ29uLnRzIiwiRDpcXHNyY1xcaWNvbnNcXG9tZWdhLnRzIiwiRDpcXHNyY1xcaWNvbnNcXG9wdGlvbi50cyIsIkQ6XFxzcmNcXGljb25zXFxvcmJpdC50cyIsIkQ6XFxzcmNcXGljb25zXFxvcmlnYW1pLnRzIiwiRDpcXHNyY1xcaWNvbnNcXHBhY2thZ2UtMi50cyIsIkQ6XFxzcmNcXGljb25zXFxwYWNrYWdlLWNoZWNrLnRzIiwiRDpcXHNyY1xcaWNvbnNcXHBhY2thZ2UtbWludXMudHMiLCJEOlxcc3JjXFxpY29uc1xccGFja2FnZS1vcGVuLnRzIiwiRDpcXHNyY1xcaWNvbnNcXHBhY2thZ2UtcGx1cy50cyIsIkQ6XFxzcmNcXGljb25zXFxwYWNrYWdlLXNlYXJjaC50cyIsIkQ6XFxzcmNcXGljb25zXFxwYWNrYWdlLXgudHMiLCJEOlxcc3JjXFxpY29uc1xccGFja2FnZS50cyIsIkQ6XFxzcmNcXGljb25zXFxwYWludC1idWNrZXQudHMiLCJEOlxcc3JjXFxpY29uc1xccGFpbnQtcm9sbGVyLnRzIiwiRDpcXHNyY1xcaWNvbnNcXHBhaW50YnJ1c2gtdmVydGljYWwudHMiLCJEOlxcc3JjXFxpY29uc1xccGFpbnRicnVzaC50cyIsIkQ6XFxzcmNcXGljb25zXFxwYWxldHRlLnRzIiwiRDpcXHNyY1xcaWNvbnNcXHBhbmRhLnRzIiwiRDpcXHNyY1xcaWNvbnNcXHBhbmVsLWJvdHRvbS1jbG9zZS50cyIsIkQ6XFxzcmNcXGljb25zXFxwYW5lbC1ib3R0b20tZGFzaGVkLnRzIiwiRDpcXHNyY1xcaWNvbnNcXHBhbmVsLWJvdHRvbS1vcGVuLnRzIiwiRDpcXHNyY1xcaWNvbnNcXHBhbmVsLWJvdHRvbS50cyIsIkQ6XFxzcmNcXGljb25zXFxwYW5lbC1sZWZ0LWRhc2hlZC50cyIsIkQ6XFxzcmNcXGljb25zXFxwYW5lbC1sZWZ0LWNsb3NlLnRzIiwiRDpcXHNyY1xcaWNvbnNcXHBhbmVsLWxlZnQtb3Blbi50cyIsIkQ6XFxzcmNcXGljb25zXFxwYW5lbC1sZWZ0LnRzIiwiRDpcXHNyY1xcaWNvbnNcXHBhbmVsLXJpZ2h0LWNsb3NlLnRzIiwiRDpcXHNyY1xcaWNvbnNcXHBhbmVsLXJpZ2h0LWRhc2hlZC50cyIsIkQ6XFxzcmNcXGljb25zXFxwYW5lbC1yaWdodC1vcGVuLnRzIiwiRDpcXHNyY1xcaWNvbnNcXHBhbmVsLXJpZ2h0LnRzIiwiRDpcXHNyY1xcaWNvbnNcXHBhbmVsLXRvcC1jbG9zZS50cyIsIkQ6XFxzcmNcXGljb25zXFxwYW5lbC10b3AtZGFzaGVkLnRzIiwiRDpcXHNyY1xcaWNvbnNcXHBhbmVsLXRvcC1vcGVuLnRzIiwiRDpcXHNyY1xcaWNvbnNcXHBhbmVsLXRvcC50cyIsIkQ6XFxzcmNcXGljb25zXFxwYW5lbHMtbGVmdC1ib3R0b20udHMiLCJEOlxcc3JjXFxpY29uc1xccGFuZWxzLXJpZ2h0LWJvdHRvbS50cyIsIkQ6XFxzcmNcXGljb25zXFxwYW5lbHMtdG9wLWxlZnQudHMiLCJEOlxcc3JjXFxpY29uc1xccGFwZXJjbGlwLnRzIiwiRDpcXHNyY1xcaWNvbnNcXHBhcmVudGhlc2VzLnRzIiwiRDpcXHNyY1xcaWNvbnNcXHBhcmtpbmctbWV0ZXIudHMiLCJEOlxcc3JjXFxpY29uc1xccGFydHktcG9wcGVyLnRzIiwiRDpcXHNyY1xcaWNvbnNcXHBhdXNlLnRzIiwiRDpcXHNyY1xcaWNvbnNcXHBhdy1wcmludC50cyIsIkQ6XFxzcmNcXGljb25zXFxwYy1jYXNlLnRzIiwiRDpcXHNyY1xcaWNvbnNcXHBlbi1vZmYudHMiLCJEOlxcc3JjXFxpY29uc1xccGVuLWxpbmUudHMiLCJEOlxcc3JjXFxpY29uc1xccGVuLXRvb2wudHMiLCJEOlxcc3JjXFxpY29uc1xccGVuLnRzIiwiRDpcXHNyY1xcaWNvbnNcXHBlbmNpbC1vZmYudHMiLCJEOlxcc3JjXFxpY29uc1xccGVuY2lsLWxpbmUudHMiLCJEOlxcc3JjXFxpY29uc1xccGVuY2lsLXJ1bGVyLnRzIiwiRDpcXHNyY1xcaWNvbnNcXHBlbmNpbC50cyIsIkQ6XFxzcmNcXGljb25zXFxwZW50YWdvbi50cyIsIkQ6XFxzcmNcXGljb25zXFxwZXJjZW50LnRzIiwiRDpcXHNyY1xcaWNvbnNcXHBlcnNvbi1zdGFuZGluZy50cyIsIkQ6XFxzcmNcXGljb25zXFxwaGlsaXBwaW5lLXBlc28udHMiLCJEOlxcc3JjXFxpY29uc1xccGhvbmUtY2FsbC50cyIsIkQ6XFxzcmNcXGljb25zXFxwaG9uZS1mb3J3YXJkZWQudHMiLCJEOlxcc3JjXFxpY29uc1xccGhvbmUtaW5jb21pbmcudHMiLCJEOlxcc3JjXFxpY29uc1xccGhvbmUtbWlzc2VkLnRzIiwiRDpcXHNyY1xcaWNvbnNcXHBob25lLW9mZi50cyIsIkQ6XFxzcmNcXGljb25zXFxwaG9uZS1vdXRnb2luZy50cyIsIkQ6XFxzcmNcXGljb25zXFxwaG9uZS50cyIsIkQ6XFxzcmNcXGljb25zXFxwaS50cyIsIkQ6XFxzcmNcXGljb25zXFxwaWFuby50cyIsIkQ6XFxzcmNcXGljb25zXFxwaWNrYXhlLnRzIiwiRDpcXHNyY1xcaWNvbnNcXHBpY3R1cmUtaW4tcGljdHVyZS0yLnRzIiwiRDpcXHNyY1xcaWNvbnNcXHBpY3R1cmUtaW4tcGljdHVyZS50cyIsIkQ6XFxzcmNcXGljb25zXFxwaWdneS1iYW5rLnRzIiwiRDpcXHNyY1xcaWNvbnNcXHBpbGNyb3ctbGVmdC50cyIsIkQ6XFxzcmNcXGljb25zXFxwaWxjcm93LXJpZ2h0LnRzIiwiRDpcXHNyY1xcaWNvbnNcXHBpbGNyb3cudHMiLCJEOlxcc3JjXFxpY29uc1xccGlsbC1ib3R0bGUudHMiLCJEOlxcc3JjXFxpY29uc1xccGlsbC50cyIsIkQ6XFxzcmNcXGljb25zXFxwaW4tb2ZmLnRzIiwiRDpcXHNyY1xcaWNvbnNcXHBpbi50cyIsIkQ6XFxzcmNcXGljb25zXFxwaXBldHRlLnRzIiwiRDpcXHNyY1xcaWNvbnNcXHBpenphLnRzIiwiRDpcXHNyY1xcaWNvbnNcXHBsYW5lLWxhbmRpbmcudHMiLCJEOlxcc3JjXFxpY29uc1xccGxhbmUtdGFrZW9mZi50cyIsIkQ6XFxzcmNcXGljb25zXFxwbGFuZS50cyIsIkQ6XFxzcmNcXGljb25zXFxwbGF5LnRzIiwiRDpcXHNyY1xcaWNvbnNcXHBsdWctMi50cyIsIkQ6XFxzcmNcXGljb25zXFxwbHVnLXphcC50cyIsIkQ6XFxzcmNcXGljb25zXFxwbHVnLnRzIiwiRDpcXHNyY1xcaWNvbnNcXHBsdXMudHMiLCJEOlxcc3JjXFxpY29uc1xccG9ja2V0LnRzIiwiRDpcXHNyY1xcaWNvbnNcXHBvY2tldC1rbmlmZS50cyIsIkQ6XFxzcmNcXGljb25zXFxwb2RjYXN0LnRzIiwiRDpcXHNyY1xcaWNvbnNcXHBvaW50ZXItb2ZmLnRzIiwiRDpcXHNyY1xcaWNvbnNcXHBvaW50ZXIudHMiLCJEOlxcc3JjXFxpY29uc1xccG9wY29ybi50cyIsIkQ6XFxzcmNcXGljb25zXFxwb3BzaWNsZS50cyIsIkQ6XFxzcmNcXGljb25zXFxwb3VuZC1zdGVybGluZy50cyIsIkQ6XFxzcmNcXGljb25zXFxwb3dlci1vZmYudHMiLCJEOlxcc3JjXFxpY29uc1xccG93ZXIudHMiLCJEOlxcc3JjXFxpY29uc1xccHJlc2VudGF0aW9uLnRzIiwiRDpcXHNyY1xcaWNvbnNcXHByaW50ZXItY2hlY2sudHMiLCJEOlxcc3JjXFxpY29uc1xccHJpbnRlci50cyIsIkQ6XFxzcmNcXGljb25zXFxwcm9qZWN0b3IudHMiLCJEOlxcc3JjXFxpY29uc1xccHJvcG9ydGlvbnMudHMiLCJEOlxcc3JjXFxpY29uc1xccHV6emxlLnRzIiwiRDpcXHNyY1xcaWNvbnNcXHB5cmFtaWQudHMiLCJEOlxcc3JjXFxpY29uc1xccXItY29kZS50cyIsIkQ6XFxzcmNcXGljb25zXFxxdW90ZS50cyIsIkQ6XFxzcmNcXGljb25zXFxyYWJiaXQudHMiLCJEOlxcc3JjXFxpY29uc1xccmFkYXIudHMiLCJEOlxcc3JjXFxpY29uc1xccmFkaWNhbC50cyIsIkQ6XFxzcmNcXGljb25zXFxyYWRpYXRpb24udHMiLCJEOlxcc3JjXFxpY29uc1xccmFkaW8tcmVjZWl2ZXIudHMiLCJEOlxcc3JjXFxpY29uc1xccmFkaW8tdG93ZXIudHMiLCJEOlxcc3JjXFxpY29uc1xccmFkaXVzLnRzIiwiRDpcXHNyY1xcaWNvbnNcXHJhZGlvLnRzIiwiRDpcXHNyY1xcaWNvbnNcXHJhaWwtc3ltYm9sLnRzIiwiRDpcXHNyY1xcaWNvbnNcXHJhaW5ib3cudHMiLCJEOlxcc3JjXFxpY29uc1xccmF0LnRzIiwiRDpcXHNyY1xcaWNvbnNcXHJhdGlvLnRzIiwiRDpcXHNyY1xcaWNvbnNcXHJlY2VpcHQtZXVyby50cyIsIkQ6XFxzcmNcXGljb25zXFxyZWNlaXB0LWNlbnQudHMiLCJEOlxcc3JjXFxpY29uc1xccmVjZWlwdC1pbmRpYW4tcnVwZWUudHMiLCJEOlxcc3JjXFxpY29uc1xccmVjZWlwdC1qYXBhbmVzZS15ZW4udHMiLCJEOlxcc3JjXFxpY29uc1xccmVjZWlwdC1wb3VuZC1zdGVybGluZy50cyIsIkQ6XFxzcmNcXGljb25zXFxyZWNlaXB0LXJ1c3NpYW4tcnVibGUudHMiLCJEOlxcc3JjXFxpY29uc1xccmVjZWlwdC1zd2lzcy1mcmFuYy50cyIsIkQ6XFxzcmNcXGljb25zXFxyZWNlaXB0LXRleHQudHMiLCJEOlxcc3JjXFxpY29uc1xccmVjdGFuZ2xlLWNpcmNsZS50cyIsIkQ6XFxzcmNcXGljb25zXFxyZWNlaXB0LnRzIiwiRDpcXHNyY1xcaWNvbnNcXHJlY3RhbmdsZS1lbGxpcHNpcy50cyIsIkQ6XFxzcmNcXGljb25zXFxyZWN0YW5nbGUtZ29nZ2xlcy50cyIsIkQ6XFxzcmNcXGljb25zXFxyZWN0YW5nbGUtaG9yaXpvbnRhbC50cyIsIkQ6XFxzcmNcXGljb25zXFxyZWN5Y2xlLnRzIiwiRDpcXHNyY1xcaWNvbnNcXHJlY3RhbmdsZS12ZXJ0aWNhbC50cyIsIkQ6XFxzcmNcXGljb25zXFxyZWRvLWRvdC50cyIsIkQ6XFxzcmNcXGljb25zXFxyZWRvLTIudHMiLCJEOlxcc3JjXFxpY29uc1xccmVkby50cyIsIkQ6XFxzcmNcXGljb25zXFxyZWZyZXNoLWNjdy1kb3QudHMiLCJEOlxcc3JjXFxpY29uc1xccmVmcmVzaC1jY3cudHMiLCJEOlxcc3JjXFxpY29uc1xccmVmcmVzaC1jdy1vZmYudHMiLCJEOlxcc3JjXFxpY29uc1xccmVmcmVzaC1jdy50cyIsIkQ6XFxzcmNcXGljb25zXFxyZWZyaWdlcmF0b3IudHMiLCJEOlxcc3JjXFxpY29uc1xccmVnZXgudHMiLCJEOlxcc3JjXFxpY29uc1xccmVtb3ZlLWZvcm1hdHRpbmcudHMiLCJEOlxcc3JjXFxpY29uc1xccmVwZWF0LTIudHMiLCJEOlxcc3JjXFxpY29uc1xccmVwZWF0LnRzIiwiRDpcXHNyY1xcaWNvbnNcXHJlcGVhdC0xLnRzIiwiRDpcXHNyY1xcaWNvbnNcXHJlcGxhY2UtYWxsLnRzIiwiRDpcXHNyY1xcaWNvbnNcXHJlcGxhY2UudHMiLCJEOlxcc3JjXFxpY29uc1xccmVwbHktYWxsLnRzIiwiRDpcXHNyY1xcaWNvbnNcXHJlcGx5LnRzIiwiRDpcXHNyY1xcaWNvbnNcXHJld2luZC50cyIsIkQ6XFxzcmNcXGljb25zXFxyaWJib24udHMiLCJEOlxcc3JjXFxpY29uc1xccm9ja2V0LnRzIiwiRDpcXHNyY1xcaWNvbnNcXHJvY2tpbmctY2hhaXIudHMiLCJEOlxcc3JjXFxpY29uc1xccm9sbGVyLWNvYXN0ZXIudHMiLCJEOlxcc3JjXFxpY29uc1xccm90YXRlLTNkLnRzIiwiRDpcXHNyY1xcaWNvbnNcXHJvdGF0ZS1jY3cta2V5LnRzIiwiRDpcXHNyY1xcaWNvbnNcXHJvdGF0ZS1jY3ctc3F1YXJlLnRzIiwiRDpcXHNyY1xcaWNvbnNcXHJvdGF0ZS1jY3cudHMiLCJEOlxcc3JjXFxpY29uc1xccm90YXRlLWN3LXNxdWFyZS50cyIsIkQ6XFxzcmNcXGljb25zXFxyb3RhdGUtY3cudHMiLCJEOlxcc3JjXFxpY29uc1xccm91dGUtb2ZmLnRzIiwiRDpcXHNyY1xcaWNvbnNcXHJvdXRlLnRzIiwiRDpcXHNyY1xcaWNvbnNcXHJvdXRlci50cyIsIkQ6XFxzcmNcXGljb25zXFxyb3dzLTIudHMiLCJEOlxcc3JjXFxpY29uc1xccm93cy0zLnRzIiwiRDpcXHNyY1xcaWNvbnNcXHJvd3MtNC50cyIsIkQ6XFxzcmNcXGljb25zXFxyc3MudHMiLCJEOlxcc3JjXFxpY29uc1xccnVsZXItZGltZW5zaW9uLWxpbmUudHMiLCJEOlxcc3JjXFxpY29uc1xccnVsZXIudHMiLCJEOlxcc3JjXFxpY29uc1xccnVzc2lhbi1ydWJsZS50cyIsIkQ6XFxzcmNcXGljb25zXFxzYWlsYm9hdC50cyIsIkQ6XFxzcmNcXGljb25zXFxzYWxhZC50cyIsIkQ6XFxzcmNcXGljb25zXFxzYW5kd2ljaC50cyIsIkQ6XFxzcmNcXGljb25zXFxzYXRlbGxpdGUtZGlzaC50cyIsIkQ6XFxzcmNcXGljb25zXFxzYXRlbGxpdGUudHMiLCJEOlxcc3JjXFxpY29uc1xcc2F1ZGktcml5YWwudHMiLCJEOlxcc3JjXFxpY29uc1xcc2F2ZS1hbGwudHMiLCJEOlxcc3JjXFxpY29uc1xcc2F2ZS1vZmYudHMiLCJEOlxcc3JjXFxpY29uc1xcc2F2ZS50cyIsIkQ6XFxzcmNcXGljb25zXFxzY2FsZS0zZC50cyIsIkQ6XFxzcmNcXGljb25zXFxzY2FsZS50cyIsIkQ6XFxzcmNcXGljb25zXFxzY2FsaW5nLnRzIiwiRDpcXHNyY1xcaWNvbnNcXHNjYW4tYmFyY29kZS50cyIsIkQ6XFxzcmNcXGljb25zXFxzY2FuLWV5ZS50cyIsIkQ6XFxzcmNcXGljb25zXFxzY2FuLWZhY2UudHMiLCJEOlxcc3JjXFxpY29uc1xcc2Nhbi1oZWFydC50cyIsIkQ6XFxzcmNcXGljb25zXFxzY2FuLWxpbmUudHMiLCJEOlxcc3JjXFxpY29uc1xcc2Nhbi1xci1jb2RlLnRzIiwiRDpcXHNyY1xcaWNvbnNcXHNjYW4tc2VhcmNoLnRzIiwiRDpcXHNyY1xcaWNvbnNcXHNjYW4tdGV4dC50cyIsIkQ6XFxzcmNcXGljb25zXFxzY2FuLnRzIiwiRDpcXHNyY1xcaWNvbnNcXHNjaG9vbC50cyIsIkQ6XFxzcmNcXGljb25zXFxzY2lzc29ycy1saW5lLWRhc2hlZC50cyIsIkQ6XFxzcmNcXGljb25zXFxzY2lzc29ycy50cyIsIkQ6XFxzcmNcXGljb25zXFxzY3JlZW4tc2hhcmUtb2ZmLnRzIiwiRDpcXHNyY1xcaWNvbnNcXHNjcmVlbi1zaGFyZS50cyIsIkQ6XFxzcmNcXGljb25zXFxzY3JvbGwtdGV4dC50cyIsIkQ6XFxzcmNcXGljb25zXFxzY3JvbGwudHMiLCJEOlxcc3JjXFxpY29uc1xcc2VhcmNoLWNoZWNrLnRzIiwiRDpcXHNyY1xcaWNvbnNcXHNlYXJjaC1jb2RlLnRzIiwiRDpcXHNyY1xcaWNvbnNcXHNlYXJjaC1zbGFzaC50cyIsIkQ6XFxzcmNcXGljb25zXFxzZWFyY2gteC50cyIsIkQ6XFxzcmNcXGljb25zXFxzZWFyY2gudHMiLCJEOlxcc3JjXFxpY29uc1xcc2VjdGlvbi50cyIsIkQ6XFxzcmNcXGljb25zXFxzZW5kLWhvcml6b250YWwudHMiLCJEOlxcc3JjXFxpY29uc1xcc2VuZC10by1iYWNrLnRzIiwiRDpcXHNyY1xcaWNvbnNcXHNlbmQudHMiLCJEOlxcc3JjXFxpY29uc1xcc2VwYXJhdG9yLWhvcml6b250YWwudHMiLCJEOlxcc3JjXFxpY29uc1xcc2VwYXJhdG9yLXZlcnRpY2FsLnRzIiwiRDpcXHNyY1xcaWNvbnNcXHNlcnZlci1jb2cudHMiLCJEOlxcc3JjXFxpY29uc1xcc2VydmVyLWNyYXNoLnRzIiwiRDpcXHNyY1xcaWNvbnNcXHNlcnZlci1vZmYudHMiLCJEOlxcc3JjXFxpY29uc1xcc2VydmVyLnRzIiwiRDpcXHNyY1xcaWNvbnNcXHNldHRpbmdzLTIudHMiLCJEOlxcc3JjXFxpY29uc1xcc2V0dGluZ3MudHMiLCJEOlxcc3JjXFxpY29uc1xcc2hhcGVzLnRzIiwiRDpcXHNyY1xcaWNvbnNcXHNoYXJlLTIudHMiLCJEOlxcc3JjXFxpY29uc1xcc2hhcmUudHMiLCJEOlxcc3JjXFxpY29uc1xcc2hlZXQudHMiLCJEOlxcc3JjXFxpY29uc1xcc2hlbGwudHMiLCJEOlxcc3JjXFxpY29uc1xcc2hpZWxkLWFsZXJ0LnRzIiwiRDpcXHNyY1xcaWNvbnNcXHNoaWVsZC1iYW4udHMiLCJEOlxcc3JjXFxpY29uc1xcc2hpZWxkLWNoZWNrLnRzIiwiRDpcXHNyY1xcaWNvbnNcXHNoaWVsZC1oYWxmLnRzIiwiRDpcXHNyY1xcaWNvbnNcXHNoaWVsZC1lbGxpcHNpcy50cyIsIkQ6XFxzcmNcXGljb25zXFxzaGllbGQtbWludXMudHMiLCJEOlxcc3JjXFxpY29uc1xcc2hpZWxkLW9mZi50cyIsIkQ6XFxzcmNcXGljb25zXFxzaGllbGQtcGx1cy50cyIsIkQ6XFxzcmNcXGljb25zXFxzaGllbGQtdXNlci50cyIsIkQ6XFxzcmNcXGljb25zXFxzaGllbGQtcXVlc3Rpb24tbWFyay50cyIsIkQ6XFxzcmNcXGljb25zXFxzaGllbGQteC50cyIsIkQ6XFxzcmNcXGljb25zXFxzaGllbGQudHMiLCJEOlxcc3JjXFxpY29uc1xcc2hpcC13aGVlbC50cyIsIkQ6XFxzcmNcXGljb25zXFxzaGlwLnRzIiwiRDpcXHNyY1xcaWNvbnNcXHNoaXJ0LnRzIiwiRDpcXHNyY1xcaWNvbnNcXHNob3BwaW5nLWJhZy50cyIsIkQ6XFxzcmNcXGljb25zXFxzaG9wcGluZy1iYXNrZXQudHMiLCJEOlxcc3JjXFxpY29uc1xcc2hvcHBpbmctY2FydC50cyIsIkQ6XFxzcmNcXGljb25zXFxzaG92ZWwudHMiLCJEOlxcc3JjXFxpY29uc1xcc2hvd2VyLWhlYWQudHMiLCJEOlxcc3JjXFxpY29uc1xcc2hyZWRkZXIudHMiLCJEOlxcc3JjXFxpY29uc1xcc2hyaW1wLnRzIiwiRDpcXHNyY1xcaWNvbnNcXHNocmluay50cyIsIkQ6XFxzcmNcXGljb25zXFxzaHJ1Yi50cyIsIkQ6XFxzcmNcXGljb25zXFxzaHVmZmxlLnRzIiwiRDpcXHNyY1xcaWNvbnNcXHNpZ21hLnRzIiwiRDpcXHNyY1xcaWNvbnNcXHNpZ25hbC1oaWdoLnRzIiwiRDpcXHNyY1xcaWNvbnNcXHNpZ25hbC1sb3cudHMiLCJEOlxcc3JjXFxpY29uc1xcc2lnbmFsLW1lZGl1bS50cyIsIkQ6XFxzcmNcXGljb25zXFxzaWduYWwtemVyby50cyIsIkQ6XFxzcmNcXGljb25zXFxzaWduYWwudHMiLCJEOlxcc3JjXFxpY29uc1xcc2lnbmF0dXJlLnRzIiwiRDpcXHNyY1xcaWNvbnNcXHNpZ25wb3N0LWJpZy50cyIsIkQ6XFxzcmNcXGljb25zXFxzaXJlbi50cyIsIkQ6XFxzcmNcXGljb25zXFxzaWducG9zdC50cyIsIkQ6XFxzcmNcXGljb25zXFxza2lwLWJhY2sudHMiLCJEOlxcc3JjXFxpY29uc1xcc2t1bGwudHMiLCJEOlxcc3JjXFxpY29uc1xcc2tpcC1mb3J3YXJkLnRzIiwiRDpcXHNyY1xcaWNvbnNcXHNsYWNrLnRzIiwiRDpcXHNyY1xcaWNvbnNcXHNsYXNoLnRzIiwiRDpcXHNyY1xcaWNvbnNcXHNsaWNlLnRzIiwiRDpcXHNyY1xcaWNvbnNcXHNsaWRlcnMtaG9yaXpvbnRhbC50cyIsIkQ6XFxzcmNcXGljb25zXFxzbGlkZXJzLXZlcnRpY2FsLnRzIiwiRDpcXHNyY1xcaWNvbnNcXHNtYXJ0cGhvbmUtY2hhcmdpbmcudHMiLCJEOlxcc3JjXFxpY29uc1xcc21hcnRwaG9uZS1uZmMudHMiLCJEOlxcc3JjXFxpY29uc1xcc21hcnRwaG9uZS50cyIsIkQ6XFxzcmNcXGljb25zXFxzbWlsZS1wbHVzLnRzIiwiRDpcXHNyY1xcaWNvbnNcXHNtaWxlLnRzIiwiRDpcXHNyY1xcaWNvbnNcXHNuYWlsLnRzIiwiRDpcXHNyY1xcaWNvbnNcXHNub3dmbGFrZS50cyIsIkQ6XFxzcmNcXGljb25zXFxzb2ZhLnRzIiwiRDpcXHNyY1xcaWNvbnNcXHNvYXAtZGlzcGVuc2VyLWRyb3BsZXQudHMiLCJEOlxcc3JjXFxpY29uc1xcc291cC50cyIsIkQ6XFxzcmNcXGljb25zXFxzcGFjZS50cyIsIkQ6XFxzcmNcXGljb25zXFxzcGFkZS50cyIsIkQ6XFxzcmNcXGljb25zXFxzcGFya2xlLnRzIiwiRDpcXHNyY1xcaWNvbnNcXHNwYXJrbGVzLnRzIiwiRDpcXHNyY1xcaWNvbnNcXHNwZWFrZXIudHMiLCJEOlxcc3JjXFxpY29uc1xcc3BlZWNoLnRzIiwiRDpcXHNyY1xcaWNvbnNcXHNwZWxsLWNoZWNrLTIudHMiLCJEOlxcc3JjXFxpY29uc1xcc3BlbGwtY2hlY2sudHMiLCJEOlxcc3JjXFxpY29uc1xcc3BsaW5lLXBvaW50ZXIudHMiLCJEOlxcc3JjXFxpY29uc1xcc3BsaW5lLnRzIiwiRDpcXHNyY1xcaWNvbnNcXHNwbGl0LnRzIiwiRDpcXHNyY1xcaWNvbnNcXHNwb29sLnRzIiwiRDpcXHNyY1xcaWNvbnNcXHNwcmF5LWNhbi50cyIsIkQ6XFxzcmNcXGljb25zXFxzcHJvdXQudHMiLCJEOlxcc3JjXFxpY29uc1xcc3F1YXJlLWFjdGl2aXR5LnRzIiwiRDpcXHNyY1xcaWNvbnNcXHNxdWFyZS1hcnJvdy1kb3duLWxlZnQudHMiLCJEOlxcc3JjXFxpY29uc1xcc3F1YXJlLWFycm93LWRvd24tcmlnaHQudHMiLCJEOlxcc3JjXFxpY29uc1xcc3F1YXJlLWFycm93LWRvd24udHMiLCJEOlxcc3JjXFxpY29uc1xcc3F1YXJlLWFycm93LWxlZnQudHMiLCJEOlxcc3JjXFxpY29uc1xcc3F1YXJlLWFycm93LW91dC1kb3duLWxlZnQudHMiLCJEOlxcc3JjXFxpY29uc1xcc3F1YXJlLWFycm93LW91dC1kb3duLXJpZ2h0LnRzIiwiRDpcXHNyY1xcaWNvbnNcXHNxdWFyZS1hcnJvdy1vdXQtdXAtcmlnaHQudHMiLCJEOlxcc3JjXFxpY29uc1xcc3F1YXJlLWFycm93LXJpZ2h0LnRzIiwiRDpcXHNyY1xcaWNvbnNcXHNxdWFyZS1hcnJvdy1vdXQtdXAtbGVmdC50cyIsIkQ6XFxzcmNcXGljb25zXFxzcXVhcmUtYXJyb3ctdXAtbGVmdC50cyIsIkQ6XFxzcmNcXGljb25zXFxzcXVhcmUtYXJyb3ctdXAtcmlnaHQudHMiLCJEOlxcc3JjXFxpY29uc1xcc3F1YXJlLWFycm93LXVwLnRzIiwiRDpcXHNyY1xcaWNvbnNcXHNxdWFyZS1hc3Rlcmlzay50cyIsIkQ6XFxzcmNcXGljb25zXFxzcXVhcmUtYm90dG9tLWRhc2hlZC1zY2lzc29ycy50cyIsIkQ6XFxzcmNcXGljb25zXFxzcXVhcmUtY2hhcnQtZ2FudHQudHMiLCJEOlxcc3JjXFxpY29uc1xcc3F1YXJlLWNoZWNrLWJpZy50cyIsIkQ6XFxzcmNcXGljb25zXFxzcXVhcmUtY2hlY2sudHMiLCJEOlxcc3JjXFxpY29uc1xcc3F1YXJlLWNoZXZyb24tZG93bi50cyIsIkQ6XFxzcmNcXGljb25zXFxzcXVhcmUtY2hldnJvbi1sZWZ0LnRzIiwiRDpcXHNyY1xcaWNvbnNcXHNxdWFyZS1jaGV2cm9uLXJpZ2h0LnRzIiwiRDpcXHNyY1xcaWNvbnNcXHNxdWFyZS1jaGV2cm9uLXVwLnRzIiwiRDpcXHNyY1xcaWNvbnNcXHNxdWFyZS1jb2RlLnRzIiwiRDpcXHNyY1xcaWNvbnNcXHNxdWFyZS1kYXNoZWQtYm90dG9tLWNvZGUudHMiLCJEOlxcc3JjXFxpY29uc1xcc3F1YXJlLWRhc2hlZC1ib3R0b20udHMiLCJEOlxcc3JjXFxpY29uc1xcc3F1YXJlLWRhc2hlZC1rYW5iYW4udHMiLCJEOlxcc3JjXFxpY29uc1xcc3F1YXJlLWRhc2hlZC1tb3VzZS1wb2ludGVyLnRzIiwiRDpcXHNyY1xcaWNvbnNcXHNxdWFyZS1kYXNoZWQtdG9wLXNvbGlkLnRzIiwiRDpcXHNyY1xcaWNvbnNcXHNxdWFyZS1kYXNoZWQudHMiLCJEOlxcc3JjXFxpY29uc1xcc3F1YXJlLWRpdmlkZS50cyIsIkQ6XFxzcmNcXGljb25zXFxzcXVhcmUtZG90LnRzIiwiRDpcXHNyY1xcaWNvbnNcXHNxdWFyZS1lcXVhbC50cyIsIkQ6XFxzcmNcXGljb25zXFxzcXVhcmUtZnVuY3Rpb24udHMiLCJEOlxcc3JjXFxpY29uc1xcc3F1YXJlLWthbmJhbi50cyIsIkQ6XFxzcmNcXGljb25zXFxzcXVhcmUtbGlicmFyeS50cyIsIkQ6XFxzcmNcXGljb25zXFxzcXVhcmUtbS50cyIsIkQ6XFxzcmNcXGljb25zXFxzcXVhcmUtbWVudS50cyIsIkQ6XFxzcmNcXGljb25zXFxzcXVhcmUtbWludXMudHMiLCJEOlxcc3JjXFxpY29uc1xcc3F1YXJlLW1vdXNlLXBvaW50ZXIudHMiLCJEOlxcc3JjXFxpY29uc1xcc3F1YXJlLXBhcmtpbmctb2ZmLnRzIiwiRDpcXHNyY1xcaWNvbnNcXHNxdWFyZS1wYXJraW5nLnRzIiwiRDpcXHNyY1xcaWNvbnNcXHNxdWFyZS1wZW4udHMiLCJEOlxcc3JjXFxpY29uc1xcc3F1YXJlLXBlcmNlbnQudHMiLCJEOlxcc3JjXFxpY29uc1xcc3F1YXJlLXBpLnRzIiwiRDpcXHNyY1xcaWNvbnNcXHNxdWFyZS1waWxjcm93LnRzIiwiRDpcXHNyY1xcaWNvbnNcXHNxdWFyZS1wbGF5LnRzIiwiRDpcXHNyY1xcaWNvbnNcXHNxdWFyZS1wbHVzLnRzIiwiRDpcXHNyY1xcaWNvbnNcXHNxdWFyZS1wb3dlci50cyIsIkQ6XFxzcmNcXGljb25zXFxzcXVhcmUtcmFkaWNhbC50cyIsIkQ6XFxzcmNcXGljb25zXFxzcXVhcmUtcm91bmQtY29ybmVyLnRzIiwiRDpcXHNyY1xcaWNvbnNcXHNxdWFyZS1zY2lzc29ycy50cyIsIkQ6XFxzcmNcXGljb25zXFxzcXVhcmUtc2lnbWEudHMiLCJEOlxcc3JjXFxpY29uc1xcc3F1YXJlLXNsYXNoLnRzIiwiRDpcXHNyY1xcaWNvbnNcXHNxdWFyZS1zcGxpdC1ob3Jpem9udGFsLnRzIiwiRDpcXHNyY1xcaWNvbnNcXHNxdWFyZS1zcGxpdC12ZXJ0aWNhbC50cyIsIkQ6XFxzcmNcXGljb25zXFxzcXVhcmUtc3F1YXJlLnRzIiwiRDpcXHNyY1xcaWNvbnNcXHNxdWFyZS1zdGFjay50cyIsIkQ6XFxzcmNcXGljb25zXFxzcXVhcmUtdGVybWluYWwudHMiLCJEOlxcc3JjXFxpY29uc1xcc3F1YXJlLXVzZXItcm91bmQudHMiLCJEOlxcc3JjXFxpY29uc1xcc3F1YXJlLXVzZXIudHMiLCJEOlxcc3JjXFxpY29uc1xcc3F1YXJlLXgudHMiLCJEOlxcc3JjXFxpY29uc1xcc3F1YXJlLnRzIiwiRDpcXHNyY1xcaWNvbnNcXHNxdWFyZXMtZXhjbHVkZS50cyIsIkQ6XFxzcmNcXGljb25zXFxzcXVhcmVzLWludGVyc2VjdC50cyIsIkQ6XFxzcmNcXGljb25zXFxzcXVhcmVzLXN1YnRyYWN0LnRzIiwiRDpcXHNyY1xcaWNvbnNcXHNxdWFyZXMtdW5pdGUudHMiLCJEOlxcc3JjXFxpY29uc1xcc3F1aXJjbGUtZGFzaGVkLnRzIiwiRDpcXHNyY1xcaWNvbnNcXHNxdWlyY2xlLnRzIiwiRDpcXHNyY1xcaWNvbnNcXHNxdWlycmVsLnRzIiwiRDpcXHNyY1xcaWNvbnNcXHN0YW1wLnRzIiwiRDpcXHNyY1xcaWNvbnNcXHN0YXItaGFsZi50cyIsIkQ6XFxzcmNcXGljb25zXFxzdGFyLW9mZi50cyIsIkQ6XFxzcmNcXGljb25zXFxzdGFyLnRzIiwiRDpcXHNyY1xcaWNvbnNcXHN0ZXAtYmFjay50cyIsIkQ6XFxzcmNcXGljb25zXFxzdGVwLWZvcndhcmQudHMiLCJEOlxcc3JjXFxpY29uc1xcc3RldGhvc2NvcGUudHMiLCJEOlxcc3JjXFxpY29uc1xcc3RpY2tlci50cyIsIkQ6XFxzcmNcXGljb25zXFxzdGlja3ktbm90ZS50cyIsIkQ6XFxzcmNcXGljb25zXFxzdG9yZS50cyIsIkQ6XFxzcmNcXGljb25zXFxzdHJldGNoLWhvcml6b250YWwudHMiLCJEOlxcc3JjXFxpY29uc1xcc3RyZXRjaC12ZXJ0aWNhbC50cyIsIkQ6XFxzcmNcXGljb25zXFxzdHJpa2V0aHJvdWdoLnRzIiwiRDpcXHNyY1xcaWNvbnNcXHN1YnNjcmlwdC50cyIsIkQ6XFxzcmNcXGljb25zXFxzdW4tZGltLnRzIiwiRDpcXHNyY1xcaWNvbnNcXHN1bi1tZWRpdW0udHMiLCJEOlxcc3JjXFxpY29uc1xcc3VuLW1vb24udHMiLCJEOlxcc3JjXFxpY29uc1xcc3VuLXNub3cudHMiLCJEOlxcc3JjXFxpY29uc1xcc3VuLnRzIiwiRDpcXHNyY1xcaWNvbnNcXHN1bnJpc2UudHMiLCJEOlxcc3JjXFxpY29uc1xcc3VwZXJzY3JpcHQudHMiLCJEOlxcc3JjXFxpY29uc1xcc3Vuc2V0LnRzIiwiRDpcXHNyY1xcaWNvbnNcXHN3YXRjaC1ib29rLnRzIiwiRDpcXHNyY1xcaWNvbnNcXHN3aXNzLWZyYW5jLnRzIiwiRDpcXHNyY1xcaWNvbnNcXHN3aXRjaC1jYW1lcmEudHMiLCJEOlxcc3JjXFxpY29uc1xcc3dvcmQudHMiLCJEOlxcc3JjXFxpY29uc1xcc3dvcmRzLnRzIiwiRDpcXHNyY1xcaWNvbnNcXHN5cmluZ2UudHMiLCJEOlxcc3JjXFxpY29uc1xcdGFibGUtMi50cyIsIkQ6XFxzcmNcXGljb25zXFx0YWJsZS1jZWxscy1tZXJnZS50cyIsIkQ6XFxzcmNcXGljb25zXFx0YWJsZS1jZWxscy1zcGxpdC50cyIsIkQ6XFxzcmNcXGljb25zXFx0YWJsZS1jb2x1bW5zLXNwbGl0LnRzIiwiRDpcXHNyY1xcaWNvbnNcXHRhYmxlLW9mLWNvbnRlbnRzLnRzIiwiRDpcXHNyY1xcaWNvbnNcXHRhYmxlLXByb3BlcnRpZXMudHMiLCJEOlxcc3JjXFxpY29uc1xcdGFibGUtcm93cy1zcGxpdC50cyIsIkQ6XFxzcmNcXGljb25zXFx0YWJsZS50cyIsIkQ6XFxzcmNcXGljb25zXFx0YWJsZXQtc21hcnRwaG9uZS50cyIsIkQ6XFxzcmNcXGljb25zXFx0YWJsZXQudHMiLCJEOlxcc3JjXFxpY29uc1xcdGFibGV0cy50cyIsIkQ6XFxzcmNcXGljb25zXFx0YWcudHMiLCJEOlxcc3JjXFxpY29uc1xcdGFncy50cyIsIkQ6XFxzcmNcXGljb25zXFx0YWxseS0xLnRzIiwiRDpcXHNyY1xcaWNvbnNcXHRhbGx5LTIudHMiLCJEOlxcc3JjXFxpY29uc1xcdGFsbHktMy50cyIsIkQ6XFxzcmNcXGljb25zXFx0YWxseS00LnRzIiwiRDpcXHNyY1xcaWNvbnNcXHRhbGx5LTUudHMiLCJEOlxcc3JjXFxpY29uc1xcdGFuZ2VudC50cyIsIkQ6XFxzcmNcXGljb25zXFx0YXJnZXQudHMiLCJEOlxcc3JjXFxpY29uc1xcdGVsZXNjb3BlLnRzIiwiRDpcXHNyY1xcaWNvbnNcXHRlbnQtdHJlZS50cyIsIkQ6XFxzcmNcXGljb25zXFx0ZW50LnRzIiwiRDpcXHNyY1xcaWNvbnNcXHRlcm1pbmFsLnRzIiwiRDpcXHNyY1xcaWNvbnNcXHRlc3QtdHViZS1kaWFnb25hbC50cyIsIkQ6XFxzcmNcXGljb25zXFx0ZXN0LXR1YmUudHMiLCJEOlxcc3JjXFxpY29uc1xcdGVzdC10dWJlcy50cyIsIkQ6XFxzcmNcXGljb25zXFx0ZXh0LWN1cnNvci1pbnB1dC50cyIsIkQ6XFxzcmNcXGljb25zXFx0ZXh0LXF1b3RlLnRzIiwiRDpcXHNyY1xcaWNvbnNcXHRleHQtY3Vyc29yLnRzIiwiRDpcXHNyY1xcaWNvbnNcXHRleHQtc2VhcmNoLnRzIiwiRDpcXHNyY1xcaWNvbnNcXHRleHQtc2VsZWN0LnRzIiwiRDpcXHNyY1xcaWNvbnNcXHRleHQudHMiLCJEOlxcc3JjXFxpY29uc1xcdGhlYXRlci50cyIsIkQ6XFxzcmNcXGljb25zXFx0aGVybW9tZXRlci1zbm93Zmxha2UudHMiLCJEOlxcc3JjXFxpY29uc1xcdGhlcm1vbWV0ZXItc3VuLnRzIiwiRDpcXHNyY1xcaWNvbnNcXHRoZXJtb21ldGVyLnRzIiwiRDpcXHNyY1xcaWNvbnNcXHRodW1icy1kb3duLnRzIiwiRDpcXHNyY1xcaWNvbnNcXHRodW1icy11cC50cyIsIkQ6XFxzcmNcXGljb25zXFx0aWNrZXQtY2hlY2sudHMiLCJEOlxcc3JjXFxpY29uc1xcdGlja2V0LW1pbnVzLnRzIiwiRDpcXHNyY1xcaWNvbnNcXHRpY2tldC1wZXJjZW50LnRzIiwiRDpcXHNyY1xcaWNvbnNcXHRpY2tldC1wbHVzLnRzIiwiRDpcXHNyY1xcaWNvbnNcXHRpY2tldC1zbGFzaC50cyIsIkQ6XFxzcmNcXGljb25zXFx0aWNrZXQteC50cyIsIkQ6XFxzcmNcXGljb25zXFx0aWNrZXQudHMiLCJEOlxcc3JjXFxpY29uc1xcdGlja2V0cy1wbGFuZS50cyIsIkQ6XFxzcmNcXGljb25zXFx0aWNrZXRzLnRzIiwiRDpcXHNyY1xcaWNvbnNcXHRpbWVyLW9mZi50cyIsIkQ6XFxzcmNcXGljb25zXFx0aW1lci1yZXNldC50cyIsIkQ6XFxzcmNcXGljb25zXFx0aW1lci50cyIsIkQ6XFxzcmNcXGljb25zXFx0b2dnbGUtbGVmdC50cyIsIkQ6XFxzcmNcXGljb25zXFx0b2dnbGUtcmlnaHQudHMiLCJEOlxcc3JjXFxpY29uc1xcdG9pbGV0LnRzIiwiRDpcXHNyY1xcaWNvbnNcXHRvb2wtY2FzZS50cyIsIkQ6XFxzcmNcXGljb25zXFx0b3JuYWRvLnRzIiwiRDpcXHNyY1xcaWNvbnNcXHRvcnVzLnRzIiwiRDpcXHNyY1xcaWNvbnNcXHRvdWNocGFkLnRzIiwiRDpcXHNyY1xcaWNvbnNcXHRvdWNocGFkLW9mZi50cyIsIkQ6XFxzcmNcXGljb25zXFx0b3dlci1jb250cm9sLnRzIiwiRDpcXHNyY1xcaWNvbnNcXHRveS1icmljay50cyIsIkQ6XFxzcmNcXGljb25zXFx0cmFjdG9yLnRzIiwiRDpcXHNyY1xcaWNvbnNcXHRyYWZmaWMtY29uZS50cyIsIkQ6XFxzcmNcXGljb25zXFx0cmFpbi1mcm9udC10dW5uZWwudHMiLCJEOlxcc3JjXFxpY29uc1xcdHJhaW4tZnJvbnQudHMiLCJEOlxcc3JjXFxpY29uc1xcdHJhaW4tdHJhY2sudHMiLCJEOlxcc3JjXFxpY29uc1xcdHJhbS1mcm9udC50cyIsIkQ6XFxzcmNcXGljb25zXFx0cmFuc2dlbmRlci50cyIsIkQ6XFxzcmNcXGljb25zXFx0cmFzaC0yLnRzIiwiRDpcXHNyY1xcaWNvbnNcXHRyYXNoLnRzIiwiRDpcXHNyY1xcaWNvbnNcXHRyZWUtZGVjaWR1b3VzLnRzIiwiRDpcXHNyY1xcaWNvbnNcXHRyZWUtcGFsbS50cyIsIkQ6XFxzcmNcXGljb25zXFx0cmVlLXBpbmUudHMiLCJEOlxcc3JjXFxpY29uc1xcdHJlZXMudHMiLCJEOlxcc3JjXFxpY29uc1xcdHJlbmRpbmctZG93bi50cyIsIkQ6XFxzcmNcXGljb25zXFx0cmVsbG8udHMiLCJEOlxcc3JjXFxpY29uc1xcdHJlbmRpbmctdXAtZG93bi50cyIsIkQ6XFxzcmNcXGljb25zXFx0cmVuZGluZy11cC50cyIsIkQ6XFxzcmNcXGljb25zXFx0cmlhbmdsZS1hbGVydC50cyIsIkQ6XFxzcmNcXGljb25zXFx0cmlhbmdsZS1kYXNoZWQudHMiLCJEOlxcc3JjXFxpY29uc1xcdHJpYW5nbGUtcmlnaHQudHMiLCJEOlxcc3JjXFxpY29uc1xcdHJpYW5nbGUudHMiLCJEOlxcc3JjXFxpY29uc1xcdHJvcGh5LnRzIiwiRDpcXHNyY1xcaWNvbnNcXHRydWNrLWVsZWN0cmljLnRzIiwiRDpcXHNyY1xcaWNvbnNcXHRydWNrLnRzIiwiRDpcXHNyY1xcaWNvbnNcXHR1cnRsZS50cyIsIkQ6XFxzcmNcXGljb25zXFx0di1taW5pbWFsLnRzIiwiRDpcXHNyY1xcaWNvbnNcXHR2LW1pbmltYWwtcGxheS50cyIsIkQ6XFxzcmNcXGljb25zXFx0di50cyIsIkQ6XFxzcmNcXGljb25zXFx0d2l0Y2gudHMiLCJEOlxcc3JjXFxpY29uc1xcdHdpdHRlci50cyIsIkQ6XFxzcmNcXGljb25zXFx0eXBlLnRzIiwiRDpcXHNyY1xcaWNvbnNcXHR5cGUtb3V0bGluZS50cyIsIkQ6XFxzcmNcXGljb25zXFx1bWJyZWxsYS1vZmYudHMiLCJEOlxcc3JjXFxpY29uc1xcdW1icmVsbGEudHMiLCJEOlxcc3JjXFxpY29uc1xcdW5kZXJsaW5lLnRzIiwiRDpcXHNyY1xcaWNvbnNcXHVuZG8tMi50cyIsIkQ6XFxzcmNcXGljb25zXFx1bmRvLWRvdC50cyIsIkQ6XFxzcmNcXGljb25zXFx1bmRvLnRzIiwiRDpcXHNyY1xcaWNvbnNcXHVuZm9sZC1ob3Jpem9udGFsLnRzIiwiRDpcXHNyY1xcaWNvbnNcXHVuZm9sZC12ZXJ0aWNhbC50cyIsIkQ6XFxzcmNcXGljb25zXFx1bmdyb3VwLnRzIiwiRDpcXHNyY1xcaWNvbnNcXHVuaXZlcnNpdHkudHMiLCJEOlxcc3JjXFxpY29uc1xcdW5saW5rLTIudHMiLCJEOlxcc3JjXFxpY29uc1xcdW5saW5rLnRzIiwiRDpcXHNyY1xcaWNvbnNcXHVucGx1Zy50cyIsIkQ6XFxzcmNcXGljb25zXFx1cGxvYWQudHMiLCJEOlxcc3JjXFxpY29uc1xcdXNiLnRzIiwiRDpcXHNyY1xcaWNvbnNcXHVzZXItY2hlY2sudHMiLCJEOlxcc3JjXFxpY29uc1xcdXNlci1jb2cudHMiLCJEOlxcc3JjXFxpY29uc1xcdXNlci1sb2NrLnRzIiwiRDpcXHNyY1xcaWNvbnNcXHVzZXItbWludXMudHMiLCJEOlxcc3JjXFxpY29uc1xcdXNlci1wZW4udHMiLCJEOlxcc3JjXFxpY29uc1xcdXNlci1wbHVzLnRzIiwiRDpcXHNyY1xcaWNvbnNcXHVzZXItcm91bmQtY2hlY2sudHMiLCJEOlxcc3JjXFxpY29uc1xcdXNlci1yb3VuZC1jb2cudHMiLCJEOlxcc3JjXFxpY29uc1xcdXNlci1yb3VuZC1taW51cy50cyIsIkQ6XFxzcmNcXGljb25zXFx1c2VyLXJvdW5kLXBlbi50cyIsIkQ6XFxzcmNcXGljb25zXFx1c2VyLXJvdW5kLXBsdXMudHMiLCJEOlxcc3JjXFxpY29uc1xcdXNlci1yb3VuZC1zZWFyY2gudHMiLCJEOlxcc3JjXFxpY29uc1xcdXNlci1yb3VuZC14LnRzIiwiRDpcXHNyY1xcaWNvbnNcXHVzZXItcm91bmQudHMiLCJEOlxcc3JjXFxpY29uc1xcdXNlci1zZWFyY2gudHMiLCJEOlxcc3JjXFxpY29uc1xcdXNlci14LnRzIiwiRDpcXHNyY1xcaWNvbnNcXHVzZXIudHMiLCJEOlxcc3JjXFxpY29uc1xcdXNlcnMtcm91bmQudHMiLCJEOlxcc3JjXFxpY29uc1xcdXNlcnMudHMiLCJEOlxcc3JjXFxpY29uc1xcdXRlbnNpbHMtY3Jvc3NlZC50cyIsIkQ6XFxzcmNcXGljb25zXFx1dGVuc2lscy50cyIsIkQ6XFxzcmNcXGljb25zXFx2YXJpYWJsZS50cyIsIkQ6XFxzcmNcXGljb25zXFx1dGlsaXR5LXBvbGUudHMiLCJEOlxcc3JjXFxpY29uc1xcdmF1bHQudHMiLCJEOlxcc3JjXFxpY29uc1xcdmVjdG9yLXNxdWFyZS50cyIsIkQ6XFxzcmNcXGljb25zXFx2ZWdhbi50cyIsIkQ6XFxzcmNcXGljb25zXFx2ZW5ldGlhbi1tYXNrLnRzIiwiRDpcXHNyY1xcaWNvbnNcXHZlbnVzLWFuZC1tYXJzLnRzIiwiRDpcXHNyY1xcaWNvbnNcXHZlbnVzLnRzIiwiRDpcXHNyY1xcaWNvbnNcXHZpYnJhdGUtb2ZmLnRzIiwiRDpcXHNyY1xcaWNvbnNcXHZpYnJhdGUudHMiLCJEOlxcc3JjXFxpY29uc1xcdmlkZW8tb2ZmLnRzIiwiRDpcXHNyY1xcaWNvbnNcXHZpZGVvLnRzIiwiRDpcXHNyY1xcaWNvbnNcXHZpZGVvdGFwZS50cyIsIkQ6XFxzcmNcXGljb25zXFx2aWV3LnRzIiwiRDpcXHNyY1xcaWNvbnNcXHZvaWNlbWFpbC50cyIsIkQ6XFxzcmNcXGljb25zXFx2b2xsZXliYWxsLnRzIiwiRDpcXHNyY1xcaWNvbnNcXHZvbHVtZS0xLnRzIiwiRDpcXHNyY1xcaWNvbnNcXHZvbHVtZS0yLnRzIiwiRDpcXHNyY1xcaWNvbnNcXHZvbHVtZS1vZmYudHMiLCJEOlxcc3JjXFxpY29uc1xcdm9sdW1lLXgudHMiLCJEOlxcc3JjXFxpY29uc1xcdm9sdW1lLnRzIiwiRDpcXHNyY1xcaWNvbnNcXHZvdGUudHMiLCJEOlxcc3JjXFxpY29uc1xcd2FsbGV0LWNhcmRzLnRzIiwiRDpcXHNyY1xcaWNvbnNcXHdhbGxldC1taW5pbWFsLnRzIiwiRDpcXHNyY1xcaWNvbnNcXHdhbGxldC50cyIsIkQ6XFxzcmNcXGljb25zXFx3YWxscGFwZXIudHMiLCJEOlxcc3JjXFxpY29uc1xcd2FuZC1zcGFya2xlcy50cyIsIkQ6XFxzcmNcXGljb25zXFx3YW5kLnRzIiwiRDpcXHNyY1xcaWNvbnNcXHdhcmVob3VzZS50cyIsIkQ6XFxzcmNcXGljb25zXFx3YXNoaW5nLW1hY2hpbmUudHMiLCJEOlxcc3JjXFxpY29uc1xcd2F0Y2gudHMiLCJEOlxcc3JjXFxpY29uc1xcd2F2ZXMtbGFkZGVyLnRzIiwiRDpcXHNyY1xcaWNvbnNcXHdhdmVzLnRzIiwiRDpcXHNyY1xcaWNvbnNcXHdheXBvaW50cy50cyIsIkQ6XFxzcmNcXGljb25zXFx3ZWJjYW0udHMiLCJEOlxcc3JjXFxpY29uc1xcd2ViaG9vay1vZmYudHMiLCJEOlxcc3JjXFxpY29uc1xcd2ViaG9vay50cyIsIkQ6XFxzcmNcXGljb25zXFx3ZWlnaHQudHMiLCJEOlxcc3JjXFxpY29uc1xcd2hlYXQtb2ZmLnRzIiwiRDpcXHNyY1xcaWNvbnNcXHdoZWF0LnRzIiwiRDpcXHNyY1xcaWNvbnNcXHdob2xlLXdvcmQudHMiLCJEOlxcc3JjXFxpY29uc1xcd2lmaS1jb2cudHMiLCJEOlxcc3JjXFxpY29uc1xcd2lmaS1oaWdoLnRzIiwiRDpcXHNyY1xcaWNvbnNcXHdpZmktbG93LnRzIiwiRDpcXHNyY1xcaWNvbnNcXHdpZmktb2ZmLnRzIiwiRDpcXHNyY1xcaWNvbnNcXHdpZmktcGVuLnRzIiwiRDpcXHNyY1xcaWNvbnNcXHdpZmktemVyby50cyIsIkQ6XFxzcmNcXGljb25zXFx3aWZpLnRzIiwiRDpcXHNyY1xcaWNvbnNcXHdpbmQtYXJyb3ctZG93bi50cyIsIkQ6XFxzcmNcXGljb25zXFx3aW5lLW9mZi50cyIsIkQ6XFxzcmNcXGljb25zXFx3aW5kLnRzIiwiRDpcXHNyY1xcaWNvbnNcXHdpbmUudHMiLCJEOlxcc3JjXFxpY29uc1xcd29ya2Zsb3cudHMiLCJEOlxcc3JjXFxpY29uc1xcd29ybS50cyIsIkQ6XFxzcmNcXGljb25zXFx3cmFwLXRleHQudHMiLCJEOlxcc3JjXFxpY29uc1xcd3JlbmNoLnRzIiwiRDpcXHNyY1xcaWNvbnNcXHgudHMiLCJEOlxcc3JjXFxpY29uc1xceW91dHViZS50cyIsIkQ6XFxzcmNcXGljb25zXFx6YXAtb2ZmLnRzIiwiRDpcXHNyY1xcaWNvbnNcXHphcC50cyIsIkQ6XFxzcmNcXGljb25zXFx6b29tLWluLnRzIiwiRDpcXHNyY1xcaWNvbnNcXHpvb20tb3V0LnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENhbWVsVG9QYXNjYWwgfSBmcm9tICcuL3V0aWxpdHktdHlwZXMnO1xuXG4vKipcbiAqIENvbnZlcnRzIHN0cmluZyB0byBrZWJhYiBjYXNlXG4gKlxuICogQHBhcmFtIHtzdHJpbmd9IHN0cmluZ1xuICogQHJldHVybnMge3N0cmluZ30gQSBrZWJhYml6ZWQgc3RyaW5nXG4gKi9cbmV4cG9ydCBjb25zdCB0b0tlYmFiQ2FzZSA9IChzdHJpbmc6IHN0cmluZykgPT5cbiAgc3RyaW5nLnJlcGxhY2UoLyhbYS16MC05XSkoW0EtWl0pL2csICckMS0kMicpLnRvTG93ZXJDYXNlKCk7XG5cbi8qKlxuICogQ29udmVydHMgc3RyaW5nIHRvIGNhbWVsIGNhc2VcbiAqXG4gKiBAcGFyYW0ge3N0cmluZ30gc3RyaW5nXG4gKiBAcmV0dXJucyB7c3RyaW5nfSBBIGNhbWVsaXplZCBzdHJpbmdcbiAqL1xuZXhwb3J0IGNvbnN0IHRvQ2FtZWxDYXNlID0gPFQgZXh0ZW5kcyBzdHJpbmc+KHN0cmluZzogVCkgPT5cbiAgc3RyaW5nLnJlcGxhY2UoL14oW0EtWl0pfFtcXHMtX10rKFxcdykvZywgKG1hdGNoLCBwMSwgcDIpID0+XG4gICAgcDIgPyBwMi50b1VwcGVyQ2FzZSgpIDogcDEudG9Mb3dlckNhc2UoKSxcbiAgKTtcblxuLyoqXG4gKiBDb252ZXJ0cyBzdHJpbmcgdG8gcGFzY2FsIGNhc2VcbiAqXG4gKiBAcGFyYW0ge3N0cmluZ30gc3RyaW5nXG4gKiBAcmV0dXJucyB7c3RyaW5nfSBBIHBhc2NhbGl6ZWQgc3RyaW5nXG4gKi9cbmV4cG9ydCBjb25zdCB0b1Bhc2NhbENhc2UgPSA8VCBleHRlbmRzIHN0cmluZz4oc3RyaW5nOiBUKTogQ2FtZWxUb1Bhc2NhbDxUPiA9PiB7XG4gIGNvbnN0IGNhbWVsQ2FzZSA9IHRvQ2FtZWxDYXNlKHN0cmluZyk7XG5cbiAgcmV0dXJuIChjYW1lbENhc2UuY2hhckF0KDApLnRvVXBwZXJDYXNlKCkgKyBjYW1lbENhc2Uuc2xpY2UoMSkpIGFzIENhbWVsVG9QYXNjYWw8VD47XG59O1xuXG4vKipcbiAqIE1lcmdlcyBjbGFzc2VzIGludG8gYSBzaW5nbGUgc3RyaW5nXG4gKlxuICogQHBhcmFtIHthcnJheX0gY2xhc3Nlc1xuICogQHJldHVybnMge3N0cmluZ30gQSBzdHJpbmcgb2YgY2xhc3Nlc1xuICovXG5leHBvcnQgY29uc3QgbWVyZ2VDbGFzc2VzID0gPENsYXNzVHlwZSA9IHN0cmluZyB8IHVuZGVmaW5lZCB8IG51bGw+KC4uLmNsYXNzZXM6IENsYXNzVHlwZVtdKSA9PlxuICBjbGFzc2VzXG4gICAgLmZpbHRlcigoY2xhc3NOYW1lLCBpbmRleCwgYXJyYXkpID0+IHtcbiAgICAgIHJldHVybiAoXG4gICAgICAgIEJvb2xlYW4oY2xhc3NOYW1lKSAmJlxuICAgICAgICAoY2xhc3NOYW1lIGFzIHN0cmluZykudHJpbSgpICE9PSAnJyAmJlxuICAgICAgICBhcnJheS5pbmRleE9mKGNsYXNzTmFtZSkgPT09IGluZGV4XG4gICAgICApO1xuICAgIH0pXG4gICAgLmpvaW4oJyAnKVxuICAgIC50cmltKCk7XG5cbi8qKlxuICogQ2hlY2sgaWYgYSBjb21wb25lbnQgaGFzIGFuIGFjY2Vzc2liaWxpdHkgcHJvcFxuICpcbiAqIEBwYXJhbSB7b2JqZWN0fSBwcm9wc1xuICogQHJldHVybnMge2Jvb2xlYW59IFdoZXRoZXIgdGhlIGNvbXBvbmVudCBoYXMgYW4gYWNjZXNzaWJpbGl0eSBwcm9wXG4gKi9cbmV4cG9ydCBjb25zdCBoYXNBMTF5UHJvcCA9IChwcm9wczogUmVjb3JkPHN0cmluZywgYW55PikgPT4ge1xuICBmb3IgKGNvbnN0IHByb3AgaW4gcHJvcHMpIHtcbiAgICBpZiAocHJvcC5zdGFydHNXaXRoKCdhcmlhLScpIHx8IHByb3AgPT09ICdyb2xlJyB8fCBwcm9wID09PSAndGl0bGUnKSB7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gIH1cbn07XG4iLCJleHBvcnQgZGVmYXVsdCB7XG4gIHhtbG5zOiAnaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnLFxuICB3aWR0aDogMjQsXG4gIGhlaWdodDogMjQsXG4gIHZpZXdCb3g6ICcwIDAgMjQgMjQnLFxuICBmaWxsOiAnbm9uZScsXG4gIHN0cm9rZTogJ2N1cnJlbnRDb2xvcicsXG4gIHN0cm9rZVdpZHRoOiAyLFxuICBzdHJva2VMaW5lY2FwOiAncm91bmQnLFxuICBzdHJva2VMaW5lam9pbjogJ3JvdW5kJyxcbn07XG4iLCJpbXBvcnQgeyBjcmVhdGVFbGVtZW50LCBmb3J3YXJkUmVmIH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHsgSWNvbk5vZGUsIEx1Y2lkZVByb3BzIH0gZnJvbSAnLi90eXBlcyc7XG5pbXBvcnQgeyBtZXJnZUNsYXNzZXMsIGhhc0ExMXlQcm9wIH0gZnJvbSAnQGx1Y2lkZS9zaGFyZWQnO1xuXG5pbnRlcmZhY2UgSWNvbkNvbXBvbmVudFByb3BzIGV4dGVuZHMgTHVjaWRlUHJvcHMge1xuICBpY29uTm9kZTogSWNvbk5vZGU7XG59XG5cbi8qKlxuICogTHVjaWRlIGljb24gY29tcG9uZW50XG4gKlxuICogQGNvbXBvbmVudCBJY29uXG4gKiBAcGFyYW0ge29iamVjdH0gcHJvcHNcbiAqIEBwYXJhbSB7c3RyaW5nfSBwcm9wcy5jb2xvciAtIFRoZSBjb2xvciBvZiB0aGUgaWNvblxuICogQHBhcmFtIHtudW1iZXJ9IHByb3BzLnNpemUgLSBUaGUgc2l6ZSBvZiB0aGUgaWNvblxuICogQHBhcmFtIHtudW1iZXJ9IHByb3BzLnN0cm9rZVdpZHRoIC0gVGhlIHN0cm9rZSB3aWR0aCBvZiB0aGUgaWNvblxuICogQHBhcmFtIHtib29sZWFufSBwcm9wcy5hYnNvbHV0ZVN0cm9rZVdpZHRoIC0gV2hldGhlciB0byB1c2UgYWJzb2x1dGUgc3Ryb2tlIHdpZHRoXG4gKiBAcGFyYW0ge3N0cmluZ30gcHJvcHMuY2xhc3NOYW1lIC0gVGhlIGNsYXNzIG5hbWUgb2YgdGhlIGljb25cbiAqIEBwYXJhbSB7SWNvbk5vZGV9IHByb3BzLmNoaWxkcmVuIC0gVGhlIGNoaWxkcmVuIG9mIHRoZSBpY29uXG4gKiBAcGFyYW0ge0ljb25Ob2RlfSBwcm9wcy5pY29uTm9kZSAtIFRoZSBpY29uIG5vZGUgb2YgdGhlIGljb25cbiAqXG4gKiBAcmV0dXJucyB7Rm9yd2FyZFJlZkV4b3RpY0NvbXBvbmVudH0gTHVjaWRlSWNvblxuICovXG5jb25zdCBJY29uID0gZm9yd2FyZFJlZjxTVkdTVkdFbGVtZW50LCBJY29uQ29tcG9uZW50UHJvcHM+KFxuICAoXG4gICAge1xuICAgICAgY29sb3IgPSAnY3VycmVudENvbG9yJyxcbiAgICAgIHNpemUgPSAyNCxcbiAgICAgIHN0cm9rZVdpZHRoID0gMixcbiAgICAgIGFic29sdXRlU3Ryb2tlV2lkdGgsXG4gICAgICBjbGFzc05hbWUgPSAnJyxcbiAgICAgIGNoaWxkcmVuLFxuICAgICAgaWNvbk5vZGUsXG4gICAgICAuLi5yZXN0XG4gICAgfSxcbiAgICByZWYsXG4gICkgPT5cbiAgICBjcmVhdGVFbGVtZW50KFxuICAgICAgJ3N2ZycsXG4gICAgICB7XG4gICAgICAgIHJlZixcbiAgICAgICAgLi4uZGVmYXVsdEF0dHJpYnV0ZXMsXG4gICAgICAgIHdpZHRoOiBzaXplLFxuICAgICAgICBoZWlnaHQ6IHNpemUsXG4gICAgICAgIHN0cm9rZTogY29sb3IsXG4gICAgICAgIHN0cm9rZVdpZHRoOiBhYnNvbHV0ZVN0cm9rZVdpZHRoID8gKE51bWJlcihzdHJva2VXaWR0aCkgKiAyNCkgLyBOdW1iZXIoc2l6ZSkgOiBzdHJva2VXaWR0aCxcbiAgICAgICAgY2xhc3NOYW1lOiBtZXJnZUNsYXNzZXMoJ2x1Y2lkZScsIGNsYXNzTmFtZSksXG4gICAgICAgIC4uLighY2hpbGRyZW4gJiYgIWhhc0ExMXlQcm9wKHJlc3QpICYmIHsgJ2FyaWEtaGlkZGVuJzogJ3RydWUnIH0pLFxuICAgICAgICAuLi5yZXN0LFxuICAgICAgfSxcbiAgICAgIFtcbiAgICAgICAgLi4uaWNvbk5vZGUubWFwKChbdGFnLCBhdHRyc10pID0+IGNyZWF0ZUVsZW1lbnQodGFnLCBhdHRycykpLFxuICAgICAgICAuLi4oQXJyYXkuaXNBcnJheShjaGlsZHJlbikgPyBjaGlsZHJlbiA6IFtjaGlsZHJlbl0pLFxuICAgICAgXSxcbiAgICApLFxuKTtcblxuZXhwb3J0IGRlZmF1bHQgSWNvbjtcbiIsImltcG9ydCB7IGNyZWF0ZUVsZW1lbnQsIGZvcndhcmRSZWYgfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyBtZXJnZUNsYXNzZXMsIHRvS2ViYWJDYXNlLCB0b1Bhc2NhbENhc2UgfSBmcm9tICdAbHVjaWRlL3NoYXJlZCc7XG5pbXBvcnQgeyBJY29uTm9kZSwgTHVjaWRlUHJvcHMgfSBmcm9tICcuL3R5cGVzJztcbmltcG9ydCBJY29uIGZyb20gJy4vSWNvbic7XG5cbi8qKlxuICogQ3JlYXRlIGEgTHVjaWRlIGljb24gY29tcG9uZW50XG4gKiBAcGFyYW0ge3N0cmluZ30gaWNvbk5hbWVcbiAqIEBwYXJhbSB7YXJyYXl9IGljb25Ob2RlXG4gKiBAcmV0dXJucyB7Rm9yd2FyZFJlZkV4b3RpY0NvbXBvbmVudH0gTHVjaWRlSWNvblxuICovXG5jb25zdCBjcmVhdGVMdWNpZGVJY29uID0gKGljb25OYW1lOiBzdHJpbmcsIGljb25Ob2RlOiBJY29uTm9kZSkgPT4ge1xuICBjb25zdCBDb21wb25lbnQgPSBmb3J3YXJkUmVmPFNWR1NWR0VsZW1lbnQsIEx1Y2lkZVByb3BzPigoeyBjbGFzc05hbWUsIC4uLnByb3BzIH0sIHJlZikgPT5cbiAgICBjcmVhdGVFbGVtZW50KEljb24sIHtcbiAgICAgIHJlZixcbiAgICAgIGljb25Ob2RlLFxuICAgICAgY2xhc3NOYW1lOiBtZXJnZUNsYXNzZXMoXG4gICAgICAgIGBsdWNpZGUtJHt0b0tlYmFiQ2FzZSh0b1Bhc2NhbENhc2UoaWNvbk5hbWUpKX1gLFxuICAgICAgICBgbHVjaWRlLSR7aWNvbk5hbWV9YCxcbiAgICAgICAgY2xhc3NOYW1lLFxuICAgICAgKSxcbiAgICAgIC4uLnByb3BzLFxuICAgIH0pLFxuICApO1xuXG4gIENvbXBvbmVudC5kaXNwbGF5TmFtZSA9IHRvUGFzY2FsQ2FzZShpY29uTmFtZSk7XG5cbiAgcmV0dXJuIENvbXBvbmVudDtcbn07XG5cbmV4cG9ydCBkZWZhdWx0IGNyZWF0ZUx1Y2lkZUljb247XG4iLCJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ00zLjUgMTNoNicsIGtleTogJ3AxbXkycicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ20yIDE2IDQuNS05IDQuNSA5Jywga2V5OiAnbmRmMGIzJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTE4IDd2OScsIGtleTogJ3Brbmp3bScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ20xNCAxMiA0IDQgNC00Jywga2V5OiAnYnVlbHE0JyB9XSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBBQXJyb3dEb3duXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NeTQxSURFemFEWWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaWJUSWdNVFlnTkM0MUxUa2dOQzQxSURraUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRFNElEZDJPU0lnTHo0S0lDQThjR0YwYUNCa1BTSnRNVFFnTVRJZ05DQTBJRFF0TkNJZ0x6NEtQQzl6ZG1jKykgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvYS1hcnJvdy1kb3duXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgQUFycm93RG93biA9IGNyZWF0ZUx1Y2lkZUljb24oJ2EtYXJyb3ctZG93bicsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBBQXJyb3dEb3duO1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdNMjEgMTRoLTUnLCBrZXk6ICcxdmgyM2snIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTYgMTZ2LTMuNWEyLjUgMi41IDAgMCAxIDUgMFYxNicsIGtleTogJzF3aDEwbycgfV0sXG4gIFsncGF0aCcsIHsgZDogJ000LjUgMTNoNicsIGtleTogJ2RmaWxubycgfV0sXG4gIFsncGF0aCcsIHsgZDogJ20zIDE2IDQuNS05IDQuNSA5Jywga2V5OiAnMmR4YTBlJyB9XSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBBTGFyZ2VTbWFsbFxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTWpFZ01UUm9MVFVpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVEUySURFMmRpMHpMalZoTWk0MUlESXVOU0F3SURBZ01TQTFJREJXTVRZaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRRdU5TQXhNMmcySWlBdlBnb2dJRHh3WVhSb0lHUTlJbTB6SURFMklEUXVOUzA1SURRdU5TQTVJaUF2UGdvOEwzTjJaejQ9KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9hLWxhcmdlLXNtYWxsXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgQUxhcmdlU21hbGwgPSBjcmVhdGVMdWNpZGVJY29uKCdhLWxhcmdlLXNtYWxsJywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IEFMYXJnZVNtYWxsO1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdNMy41IDEzaDYnLCBrZXk6ICdwMW15MnInIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdtMiAxNiA0LjUtOSA0LjUgOScsIGtleTogJ25kZjBiMycgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xOCAxNlY3Jywga2V5OiAndHkwdml3JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnbTE0IDExIDQtNCA0IDQnLCBrZXk6ICcxcHU1N3QnIH1dLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIEFBcnJvd1VwXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NeTQxSURFemFEWWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaWJUSWdNVFlnTkM0MUxUa2dOQzQxSURraUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRFNElERTJWamNpSUM4K0NpQWdQSEJoZEdnZ1pEMGliVEUwSURFeElEUXROQ0EwSURRaUlDOCtDand2YzNablBnPT0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2EtYXJyb3ctdXBcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBBQXJyb3dVcCA9IGNyZWF0ZUx1Y2lkZUljb24oJ2EtYXJyb3ctdXAnLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgQUFycm93VXA7XG4iLCJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbXG4gIFsnY2lyY2xlJywgeyBjeDogJzE2JywgY3k6ICc0JywgcjogJzEnLCBrZXk6ICcxZ3J1Z2onIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdtMTggMTkgMS03LTYgMScsIGtleTogJ3IwaTE5eicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ201IDggMy0zIDUuNSAzLTIuMzYgMy41Jywga2V5OiAnOXB0eHgyJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTQuMjQgMTQuNWE1IDUgMCAwIDAgNi44OCA2Jywga2V5OiAnMTBrbXR1JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTEzLjc2IDE3LjVhNSA1IDAgMCAwLTYuODgtNicsIGtleTogJzJxcTZyYycgfV0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgQWNjZXNzaWJpbGl0eVxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4WTJseVkyeGxJR040UFNJeE5pSWdZM2s5SWpRaUlISTlJakVpSUM4K0NpQWdQSEJoZEdnZ1pEMGliVEU0SURFNUlERXROeTAySURFaUlDOCtDaUFnUEhCaGRHZ2daRDBpYlRVZ09DQXpMVE1nTlM0MUlETXRNaTR6TmlBekxqVWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRUUXVNalFnTVRRdU5XRTFJRFVnTUNBd0lEQWdOaTQ0T0NBMklpQXZQZ29nSUR4d1lYUm9JR1E5SWsweE15NDNOaUF4Tnk0MVlUVWdOU0F3SURBZ01DMDJMamc0TFRZaUlDOCtDand2YzNablBnbz0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2FjY2Vzc2liaWxpdHlcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBBY2Nlc3NpYmlsaXR5ID0gY3JlYXRlTHVjaWRlSWNvbignYWNjZXNzaWJpbGl0eScsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBBY2Nlc3NpYmlsaXR5O1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbXG4gICAgJ3BhdGgnLFxuICAgIHtcbiAgICAgIGQ6ICdNMjIgMTJoLTIuNDhhMiAyIDAgMCAwLTEuOTMgMS40NmwtMi4zNSA4LjM2YS4yNS4yNSAwIDAgMS0uNDggMEw5LjI0IDIuMThhLjI1LjI1IDAgMCAwLS40OCAwbC0yLjM1IDguMzZBMiAyIDAgMCAxIDQuNDkgMTJIMicsXG4gICAgICBrZXk6ICcxNjl6c2UnLFxuICAgIH0sXG4gIF0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgQWN0aXZpdHlcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1qSWdNVEpvTFRJdU5EaGhNaUF5SURBZ01DQXdMVEV1T1RNZ01TNDBObXd0TWk0ek5TQTRMak0yWVM0eU5TNHlOU0F3SURBZ01TMHVORGdnTUV3NUxqSTBJREl1TVRoaExqSTFMakkxSURBZ01DQXdMUzQwT0NBd2JDMHlMak0xSURndU16WkJNaUF5SURBZ01DQXhJRFF1TkRrZ01USklNaUlnTHo0S1BDOXpkbWMrQ2c9PSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvYWN0aXZpdHlcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBBY3Rpdml0eSA9IGNyZWF0ZUx1Y2lkZUljb24oJ2FjdGl2aXR5JywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IEFjdGl2aXR5O1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdNMTggMTcuNWEyLjUgMi41IDAgMSAxLTQgMi4wM1YxMicsIGtleTogJ3lkMTJ6bCcgfV0sXG4gIFtcbiAgICAncGF0aCcsXG4gICAge1xuICAgICAgZDogJ002IDEySDRhMiAyIDAgMCAxLTItMlY1YTIgMiAwIDAgMSAyLTJoMTZhMiAyIDAgMCAxIDIgMnY1YTIgMiAwIDAgMS0yIDJoLTInLFxuICAgICAga2V5OiAnbGFybXAyJyxcbiAgICB9LFxuICBdLFxuICBbJ3BhdGgnLCB7IGQ6ICdNNiA4aDEyJywga2V5OiAnNmc0d2x1JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTYuNiAxNS41NzJBMiAyIDAgMSAwIDEwIDE3di01Jywga2V5OiAnMXgxa3FuJyB9XSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBBaXJWZW50XG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NVGdnTVRjdU5XRXlMalVnTWk0MUlEQWdNU0F4TFRRZ01pNHdNMVl4TWlJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTmlBeE1rZzBZVElnTWlBd0lEQWdNUzB5TFRKV05XRXlJRElnTUNBd0lERWdNaTB5YURFMllUSWdNaUF3SURBZ01TQXlJREoyTldFeUlESWdNQ0F3SURFdE1pQXlhQzB5SWlBdlBnb2dJRHh3WVhSb0lHUTlJazAySURob01USWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRUWXVOaUF4TlM0MU56SkJNaUF5SURBZ01TQXdJREV3SURFM2RpMDFJaUF2UGdvOEwzTjJaejRLKSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9haXItdmVudFxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IEFpclZlbnQgPSBjcmVhdGVMdWNpZGVJY29uKCdhaXItdmVudCcsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBBaXJWZW50O1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbXG4gICAgJ3BhdGgnLFxuICAgIHtcbiAgICAgIGQ6ICdNNSAxN0g0YTIgMiAwIDAgMS0yLTJWNWEyIDIgMCAwIDEgMi0yaDE2YTIgMiAwIDAgMSAyIDJ2MTBhMiAyIDAgMCAxLTIgMmgtMScsXG4gICAgICBrZXk6ICduczRjM2InLFxuICAgIH0sXG4gIF0sXG4gIFsncGF0aCcsIHsgZDogJ20xMiAxNSA1IDZIN1onLCBrZXk6ICcxNHFubjInIH1dLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIEFpcnBsYXlcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk5TQXhOMGcwWVRJZ01pQXdJREFnTVMweUxUSldOV0V5SURJZ01DQXdJREVnTWkweWFERTJZVElnTWlBd0lEQWdNU0F5SURKMk1UQmhNaUF5SURBZ01DQXhMVElnTW1ndE1TSWdMejRLSUNBOGNHRjBhQ0JrUFNKdE1USWdNVFVnTlNBMlNEZGFJaUF2UGdvOEwzTjJaejRLKSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9haXJwbGF5XG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgQWlycGxheSA9IGNyZWF0ZUx1Y2lkZUljb24oJ2FpcnBsYXknLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgQWlycGxheTtcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgWydjaXJjbGUnLCB7IGN4OiAnMTInLCBjeTogJzEzJywgcjogJzgnLCBrZXk6ICczeTRsdDcnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNNSAzIDIgNicsIGtleTogJzE4dGw1dCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ20yMiA2LTMtMycsIGtleTogJzFvcGRpcicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ002LjM4IDE4LjcgNCAyMScsIGtleTogJzE3eHUzeCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xNy42NCAxOC42NyAyMCAyMScsIGtleTogJ2t2Mm9lMicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ205IDEzIDIgMiA0LTQnLCBrZXk6ICc2MzQzZHQnIH1dLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIEFsYXJtQ2xvY2tDaGVja1xuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4WTJseVkyeGxJR040UFNJeE1pSWdZM2s5SWpFeklpQnlQU0k0SWlBdlBnb2dJRHh3WVhSb0lHUTlJazAxSURNZ01pQTJJaUF2UGdvZ0lEeHdZWFJvSUdROUltMHlNaUEyTFRNdE15SWdMejRLSUNBOGNHRjBhQ0JrUFNKTk5pNHpPQ0F4T0M0M0lEUWdNakVpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVEUzTGpZMElERTRMalkzSURJd0lESXhJaUF2UGdvZ0lEeHdZWFJvSUdROUltMDVJREV6SURJZ01pQTBMVFFpSUM4K0Nqd3ZjM1puUGdvPSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvYWxhcm0tY2xvY2stY2hlY2tcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBBbGFybUNsb2NrQ2hlY2sgPSBjcmVhdGVMdWNpZGVJY29uKCdhbGFybS1jbG9jay1jaGVjaycsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBBbGFybUNsb2NrQ2hlY2s7XG4iLCJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbXG4gIFsnY2lyY2xlJywgeyBjeDogJzEyJywgY3k6ICcxMycsIHI6ICc4Jywga2V5OiAnM3k0bHQ3JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTUgMyAyIDYnLCBrZXk6ICcxOHRsNXQnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdtMjIgNi0zLTMnLCBrZXk6ICcxb3BkaXInIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNNi4zOCAxOC43IDQgMjEnLCBrZXk6ICcxN3h1M3gnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTcuNjQgMTguNjcgMjAgMjEnLCBrZXk6ICdrdjJvZTInIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNOSAxM2g2Jywga2V5OiAnMXVoZThxJyB9XSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBBbGFybUNsb2NrTWludXNcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOFkybHlZMnhsSUdONFBTSXhNaUlnWTNrOUlqRXpJaUJ5UFNJNElpQXZQZ29nSUR4d1lYUm9JR1E5SWswMUlETWdNaUEySWlBdlBnb2dJRHh3WVhSb0lHUTlJbTB5TWlBMkxUTXRNeUlnTHo0S0lDQThjR0YwYUNCa1BTSk5OaTR6T0NBeE9DNDNJRFFnTWpFaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRFM0xqWTBJREU0TGpZM0lESXdJREl4SWlBdlBnb2dJRHh3WVhSb0lHUTlJazA1SURFemFEWWlJQzgrQ2p3dmMzWm5QZ289KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9hbGFybS1jbG9jay1taW51c1xuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IEFsYXJtQ2xvY2tNaW51cyA9IGNyZWF0ZUx1Y2lkZUljb24oJ2FsYXJtLWNsb2NrLW1pbnVzJywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IEFsYXJtQ2xvY2tNaW51cztcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTYuODcgNi44N2E4IDggMCAxIDAgMTEuMjYgMTEuMjYnLCBrZXk6ICczb244dGonIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTkuOSAxNC4yNWE4IDggMCAwIDAtOS4xNS05LjE1Jywga2V5OiAnMTVnaHNjJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnbTIyIDYtMy0zJywga2V5OiAnMW9wZGlyJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTYuMjYgMTguNjcgNCAyMScsIGtleTogJ3l6bWlvcScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ20yIDIgMjAgMjAnLCBrZXk6ICcxb29ld3knIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNNCA0IDIgNicsIGtleTogJzF5Y2tvNicgfV0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgQWxhcm1DbG9ja09mZlxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTmk0NE55QTJMamczWVRnZ09DQXdJREVnTUNBeE1TNHlOaUF4TVM0eU5pSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk1Ua3VPU0F4TkM0eU5XRTRJRGdnTUNBd0lEQXRPUzR4TlMwNUxqRTFJaUF2UGdvZ0lEeHdZWFJvSUdROUltMHlNaUEyTFRNdE15SWdMejRLSUNBOGNHRjBhQ0JrUFNKTk5pNHlOaUF4T0M0Mk55QTBJREl4SWlBdlBnb2dJRHh3WVhSb0lHUTlJbTB5SURJZ01qQWdNakFpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVFFnTkNBeUlEWWlJQzgrQ2p3dmMzWm5QZ289KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9hbGFybS1jbG9jay1vZmZcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBBbGFybUNsb2NrT2ZmID0gY3JlYXRlTHVjaWRlSWNvbignYWxhcm0tY2xvY2stb2ZmJywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IEFsYXJtQ2xvY2tPZmY7XG4iLCJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbXG4gIFsnY2lyY2xlJywgeyBjeDogJzEyJywgY3k6ICcxMycsIHI6ICc4Jywga2V5OiAnM3k0bHQ3JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTUgMyAyIDYnLCBrZXk6ICcxOHRsNXQnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdtMjIgNi0zLTMnLCBrZXk6ICcxb3BkaXInIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNNi4zOCAxOC43IDQgMjEnLCBrZXk6ICcxN3h1M3gnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTcuNjQgMTguNjcgMjAgMjEnLCBrZXk6ICdrdjJvZTInIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTIgMTB2NicsIGtleTogJzFib3M0ZScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ005IDEzaDYnLCBrZXk6ICcxdWhlOHEnIH1dLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIEFsYXJtQ2xvY2tQbHVzXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThZMmx5WTJ4bElHTjRQU0l4TWlJZ1kzazlJakV6SWlCeVBTSTRJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMDFJRE1nTWlBMklpQXZQZ29nSUR4d1lYUm9JR1E5SW0weU1pQTJMVE10TXlJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTmk0ek9DQXhPQzQzSURRZ01qRWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRURTNMalkwSURFNExqWTNJREl3SURJeElpQXZQZ29nSUR4d1lYUm9JR1E5SWsweE1pQXhNSFkySWlBdlBnb2dJRHh3WVhSb0lHUTlJazA1SURFemFEWWlJQzgrQ2p3dmMzWm5QZ289KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9hbGFybS1jbG9jay1wbHVzXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgQWxhcm1DbG9ja1BsdXMgPSBjcmVhdGVMdWNpZGVJY29uKCdhbGFybS1jbG9jay1wbHVzJywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IEFsYXJtQ2xvY2tQbHVzO1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbJ2NpcmNsZScsIHsgY3g6ICcxMicsIGN5OiAnMTMnLCByOiAnOCcsIGtleTogJzN5NGx0NycgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xMiA5djRsMiAyJywga2V5OiAnMWM2M3RxJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTUgMyAyIDYnLCBrZXk6ICcxOHRsNXQnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdtMjIgNi0zLTMnLCBrZXk6ICcxb3BkaXInIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNNi4zOCAxOC43IDQgMjEnLCBrZXk6ICcxN3h1M3gnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTcuNjQgMTguNjcgMjAgMjEnLCBrZXk6ICdrdjJvZTInIH1dLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIEFsYXJtQ2xvY2tcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOFkybHlZMnhsSUdONFBTSXhNaUlnWTNrOUlqRXpJaUJ5UFNJNElpQXZQZ29nSUR4d1lYUm9JR1E5SWsweE1pQTVkalJzTWlBeUlpQXZQZ29nSUR4d1lYUm9JR1E5SWswMUlETWdNaUEySWlBdlBnb2dJRHh3WVhSb0lHUTlJbTB5TWlBMkxUTXRNeUlnTHo0S0lDQThjR0YwYUNCa1BTSk5OaTR6T0NBeE9DNDNJRFFnTWpFaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRFM0xqWTBJREU0TGpZM0lESXdJREl4SWlBdlBnbzhMM04yWno0SykgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvYWxhcm0tY2xvY2tcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBBbGFybUNsb2NrID0gY3JlYXRlTHVjaWRlSWNvbignYWxhcm0tY2xvY2snLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgQWxhcm1DbG9jaztcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTExIDIxYzAtMi41IDItMi41IDItNScsIGtleTogJzFzaWN2dicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xNiAyMWMwLTIuNSAyLTIuNSAyLTUnLCBrZXk6ICcxbzNlbnknIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdtMTkgOC0uOCAzYTEuMjUgMS4yNSAwIDAgMS0xLjIgMUg3YTEuMjUgMS4yNSAwIDAgMS0xLjItMUw1IDgnLCBrZXk6ICcxYnZjYTQnIH1dLFxuICBbXG4gICAgJ3BhdGgnLFxuICAgIHsgZDogJ00yMSAzYTEgMSAwIDAgMSAxIDF2MmEyIDIgMCAwIDEtMiAySDRhMiAyIDAgMCAxLTItMlY0YTEgMSAwIDAgMSAxLTF6Jywga2V5OiAneDNxcjFqJyB9LFxuICBdLFxuICBbJ3BhdGgnLCB7IGQ6ICdNNiAyMWMwLTIuNSAyLTIuNSAyLTUnLCBrZXk6ICdpM3cxZ3AnIH1dLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIEFsYXJtU21va2VcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1URWdNakZqTUMweUxqVWdNaTB5TGpVZ01pMDFJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHhOaUF5TVdNd0xUSXVOU0F5TFRJdU5TQXlMVFVpSUM4K0NpQWdQSEJoZEdnZ1pEMGliVEU1SURndExqZ2dNMkV4TGpJMUlERXVNalVnTUNBd0lERXRNUzR5SURGSU4yRXhMakkxSURFdU1qVWdNQ0F3SURFdE1TNHlMVEZNTlNBNElpQXZQZ29nSUR4d1lYUm9JR1E5SWsweU1TQXpZVEVnTVNBd0lEQWdNU0F4SURGMk1tRXlJRElnTUNBd0lERXRNaUF5U0RSaE1pQXlJREFnTUNBeExUSXRNbFkwWVRFZ01TQXdJREFnTVNBeExURjZJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMDJJREl4WXpBdE1pNDFJREl0TWk0MUlESXROU0lnTHo0S1BDOXpkbWMrQ2c9PSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvYWxhcm0tc21va2VcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBBbGFybVNtb2tlID0gY3JlYXRlTHVjaWRlSWNvbignYWxhcm0tc21va2UnLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgQWxhcm1TbW9rZTtcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgWydyZWN0JywgeyB3aWR0aDogJzE4JywgaGVpZ2h0OiAnMTgnLCB4OiAnMycsIHk6ICczJywgcng6ICcyJywgcnk6ICcyJywga2V5OiAnMW0zYWduJyB9XSxcbiAgWydwb2x5bGluZScsIHsgcG9pbnRzOiAnMTEgMyAxMSAxMSAxNCA4IDE3IDExIDE3IDMnLCBrZXk6ICcxd2N3ejMnIH1dLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIEFsYnVtXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjbVZqZENCM2FXUjBhRDBpTVRnaUlHaGxhV2RvZEQwaU1UZ2lJSGc5SWpNaUlIazlJak1pSUhKNFBTSXlJaUJ5ZVQwaU1pSWdMejRLSUNBOGNHOXNlV3hwYm1VZ2NHOXBiblJ6UFNJeE1TQXpJREV4SURFeElERTBJRGdnTVRjZ01URWdNVGNnTXlJZ0x6NEtQQzl6ZG1jK0NnPT0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2FsYnVtXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgQWxidW0gPSBjcmVhdGVMdWNpZGVJY29uKCdhbGJ1bScsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBBbGJ1bTtcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTIgMTJoMjAnLCBrZXk6ICc5aTRwdTQnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTAgMTZ2NGEyIDIgMCAwIDEtMiAySDZhMiAyIDAgMCAxLTItMnYtNCcsIGtleTogJzExZjFzMCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xMCA4VjRhMiAyIDAgMCAwLTItMkg2YTIgMiAwIDAgMC0yIDJ2NCcsIGtleTogJ3QxNGR4OScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00yMCAxNnYxYTIgMiAwIDAgMS0yIDJoLTJhMiAyIDAgMCAxLTItMnYtMScsIGtleTogJzF3MDd4cycgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xNCA4VjdjMC0xLjEuOS0yIDItMmgyYTIgMiAwIDAgMSAyIDJ2MScsIGtleTogJzFhcGVjMicgfV0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgQWxpZ25DZW50ZXJIb3Jpem9udGFsXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NaUF4TW1neU1DSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk1UQWdNVFoyTkdFeUlESWdNQ0F3SURFdE1pQXlTRFpoTWlBeUlEQWdNQ0F4TFRJdE1uWXROQ0lnTHo0S0lDQThjR0YwYUNCa1BTSk5NVEFnT0ZZMFlUSWdNaUF3SURBZ01DMHlMVEpJTm1FeUlESWdNQ0F3SURBdE1pQXlkalFpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVEl3SURFMmRqRmhNaUF5SURBZ01DQXhMVElnTW1ndE1tRXlJRElnTUNBd0lERXRNaTB5ZGkweElpQXZQZ29nSUR4d1lYUm9JR1E5SWsweE5DQTRWamRqTUMweExqRXVPUzB5SURJdE1tZ3lZVElnTWlBd0lEQWdNU0F5SURKMk1TSWdMejRLUEM5emRtYytDZz09KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9hbGlnbi1jZW50ZXItaG9yaXpvbnRhbFxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IEFsaWduQ2VudGVySG9yaXpvbnRhbCA9IGNyZWF0ZUx1Y2lkZUljb24oJ2FsaWduLWNlbnRlci1ob3Jpem9udGFsJywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IEFsaWduQ2VudGVySG9yaXpvbnRhbDtcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTEyIDJ2MjAnLCBrZXk6ICd0NnpwM20nIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNOCAxMEg0YTIgMiAwIDAgMS0yLTJWNmMwLTEuMS45LTIgMi0yaDQnLCBrZXk6ICcxNGQ2ZzgnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTYgMTBoNGEyIDIgMCAwIDAgMi0yVjZhMiAyIDAgMCAwLTItMmgtNCcsIGtleTogJzFlMmxydycgfV0sXG4gIFsncGF0aCcsIHsgZDogJ004IDIwSDdhMiAyIDAgMCAxLTItMnYtMmMwLTEuMS45LTIgMi0yaDEnLCBrZXk6ICcxZmtkd3gnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTYgMTRoMWEyIDIgMCAwIDEgMiAydjJhMiAyIDAgMCAxLTIgMmgtMScsIGtleTogJzFldWFmYicgfV0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgQWxpZ25DZW50ZXJWZXJ0aWNhbFxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTVRJZ01uWXlNQ0lnTHo0S0lDQThjR0YwYUNCa1BTSk5PQ0F4TUVnMFlUSWdNaUF3SURBZ01TMHlMVEpXTm1Nd0xURXVNUzQ1TFRJZ01pMHlhRFFpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVEUySURFd2FEUmhNaUF5SURBZ01DQXdJREl0TWxZMllUSWdNaUF3SURBZ01DMHlMVEpvTFRRaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRnZ01qQklOMkV5SURJZ01DQXdJREV0TWkweWRpMHlZekF0TVM0eExqa3RNaUF5TFRKb01TSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk1UWWdNVFJvTVdFeUlESWdNQ0F3SURFZ01pQXlkakpoTWlBeUlEQWdNQ0F4TFRJZ01tZ3RNU0lnTHo0S1BDOXpkbWMrQ2c9PSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvYWxpZ24tY2VudGVyLXZlcnRpY2FsXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgQWxpZ25DZW50ZXJWZXJ0aWNhbCA9IGNyZWF0ZUx1Y2lkZUljb24oJ2FsaWduLWNlbnRlci12ZXJ0aWNhbCcsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBBbGlnbkNlbnRlclZlcnRpY2FsO1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdNMTcgMTJINycsIGtleTogJzE2aWYwZycgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xOSAxOEg1Jywga2V5OiAnMThzOWwzJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTIxIDZIMycsIGtleTogJzFqd3E3dicgfV0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgQWxpZ25DZW50ZXJcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1UY2dNVEpJTnlJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTVRrZ01UaElOU0lnTHo0S0lDQThjR0YwYUNCa1BTSk5NakVnTmtneklpQXZQZ284TDNOMlp6NEspIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2FsaWduLWNlbnRlclxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IEFsaWduQ2VudGVyID0gY3JlYXRlTHVjaWRlSWNvbignYWxpZ24tY2VudGVyJywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IEFsaWduQ2VudGVyO1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbJ3JlY3QnLCB7IHdpZHRoOiAnNicsIGhlaWdodDogJzE2JywgeDogJzQnLCB5OiAnMicsIHJ4OiAnMicsIGtleTogJ3o1d2R4ZycgfV0sXG4gIFsncmVjdCcsIHsgd2lkdGg6ICc2JywgaGVpZ2h0OiAnOScsIHg6ICcxNCcsIHk6ICc5Jywgcng6ICcyJywga2V5OiAndW03YTh3JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTIyIDIySDInLCBrZXk6ICcxOXFueDUnIH1dLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIEFsaWduRW5kSG9yaXpvbnRhbFxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y21WamRDQjNhV1IwYUQwaU5pSWdhR1ZwWjJoMFBTSXhOaUlnZUQwaU5DSWdlVDBpTWlJZ2NuZzlJaklpSUM4K0NpQWdQSEpsWTNRZ2QybGtkR2c5SWpZaUlHaGxhV2RvZEQwaU9TSWdlRDBpTVRRaUlIazlJamtpSUhKNFBTSXlJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHlNaUF5TWtneUlpQXZQZ284TDNOMlp6NEspIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2FsaWduLWVuZC1ob3Jpem9udGFsXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgQWxpZ25FbmRIb3Jpem9udGFsID0gY3JlYXRlTHVjaWRlSWNvbignYWxpZ24tZW5kLWhvcml6b250YWwnLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgQWxpZ25FbmRIb3Jpem9udGFsO1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbJ3JlY3QnLCB7IHdpZHRoOiAnMTYnLCBoZWlnaHQ6ICc2JywgeDogJzInLCB5OiAnNCcsIHJ4OiAnMicsIGtleTogJzEwd2N3eCcgfV0sXG4gIFsncmVjdCcsIHsgd2lkdGg6ICc5JywgaGVpZ2h0OiAnNicsIHg6ICc5JywgeTogJzE0Jywgcng6ICcyJywga2V5OiAnNHA1YndnJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTIyIDIyVjInLCBrZXk6ICcxMmlwZnYnIH1dLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIEFsaWduRW5kVmVydGljYWxcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNtVmpkQ0IzYVdSMGFEMGlNVFlpSUdobGFXZG9kRDBpTmlJZ2VEMGlNaUlnZVQwaU5DSWdjbmc5SWpJaUlDOCtDaUFnUEhKbFkzUWdkMmxrZEdnOUlqa2lJR2hsYVdkb2REMGlOaUlnZUQwaU9TSWdlVDBpTVRRaUlISjRQU0l5SWlBdlBnb2dJRHh3WVhSb0lHUTlJazB5TWlBeU1sWXlJaUF2UGdvOEwzTjJaejRLKSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9hbGlnbi1lbmQtdmVydGljYWxcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBBbGlnbkVuZFZlcnRpY2FsID0gY3JlYXRlTHVjaWRlSWNvbignYWxpZ24tZW5kLXZlcnRpY2FsJywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IEFsaWduRW5kVmVydGljYWw7XG4iLCJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbXG4gIFsncmVjdCcsIHsgd2lkdGg6ICc2JywgaGVpZ2h0OiAnMTQnLCB4OiAnNCcsIHk6ICc1Jywgcng6ICcyJywga2V5OiAnMXd3bmJ5JyB9XSxcbiAgWydyZWN0JywgeyB3aWR0aDogJzYnLCBoZWlnaHQ6ICcxMCcsIHg6ICcxNCcsIHk6ICc3Jywgcng6ICcyJywga2V5OiAnMWZlNmo2JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTE3IDIydi01Jywga2V5OiAnNGI2ZzczJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTE3IDdWMicsIGtleTogJ2hucnIzNicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ003IDIydi0zJywga2V5OiAnMXI0anBuJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTcgNVYyJywga2V5OiAnbGl5MXU5JyB9XSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBBbGlnbkhvcml6b250YWxEaXN0cmlidXRlQ2VudGVyXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjbVZqZENCM2FXUjBhRDBpTmlJZ2FHVnBaMmgwUFNJeE5DSWdlRDBpTkNJZ2VUMGlOU0lnY25nOUlqSWlJQzgrQ2lBZ1BISmxZM1FnZDJsa2RHZzlJallpSUdobGFXZG9kRDBpTVRBaUlIZzlJakUwSWlCNVBTSTNJaUJ5ZUQwaU1pSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk1UY2dNakoyTFRVaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRFM0lEZFdNaUlnTHo0S0lDQThjR0YwYUNCa1BTSk5OeUF5TW5ZdE15SWdMejRLSUNBOGNHRjBhQ0JrUFNKTk55QTFWaklpSUM4K0Nqd3ZjM1puUGdvPSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvYWxpZ24taG9yaXpvbnRhbC1kaXN0cmlidXRlLWNlbnRlclxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IEFsaWduSG9yaXpvbnRhbERpc3RyaWJ1dGVDZW50ZXIgPSBjcmVhdGVMdWNpZGVJY29uKFxuICAnYWxpZ24taG9yaXpvbnRhbC1kaXN0cmlidXRlLWNlbnRlcicsXG4gIF9faWNvbk5vZGUsXG4pO1xuXG5leHBvcnQgZGVmYXVsdCBBbGlnbkhvcml6b250YWxEaXN0cmlidXRlQ2VudGVyO1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbJ3JlY3QnLCB7IHdpZHRoOiAnNicsIGhlaWdodDogJzE0JywgeDogJzQnLCB5OiAnNScsIHJ4OiAnMicsIGtleTogJzF3d25ieScgfV0sXG4gIFsncmVjdCcsIHsgd2lkdGg6ICc2JywgaGVpZ2h0OiAnMTAnLCB4OiAnMTQnLCB5OiAnNycsIHJ4OiAnMicsIGtleTogJzFmZTZqNicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xMCAydjIwJywga2V5OiAndXljNjM0JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTIwIDJ2MjAnLCBrZXk6ICcxdHgyNjInIH1dLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIEFsaWduSG9yaXpvbnRhbERpc3RyaWJ1dGVFbmRcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNtVmpkQ0IzYVdSMGFEMGlOaUlnYUdWcFoyaDBQU0l4TkNJZ2VEMGlOQ0lnZVQwaU5TSWdjbmc5SWpJaUlDOCtDaUFnUEhKbFkzUWdkMmxrZEdnOUlqWWlJR2hsYVdkb2REMGlNVEFpSUhnOUlqRTBJaUI1UFNJM0lpQnllRDBpTWlJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTVRBZ01uWXlNQ0lnTHo0S0lDQThjR0YwYUNCa1BTSk5NakFnTW5ZeU1DSWdMejRLUEM5emRtYytDZz09KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9hbGlnbi1ob3Jpem9udGFsLWRpc3RyaWJ1dGUtZW5kXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgQWxpZ25Ib3Jpem9udGFsRGlzdHJpYnV0ZUVuZCA9IGNyZWF0ZUx1Y2lkZUljb24oXG4gICdhbGlnbi1ob3Jpem9udGFsLWRpc3RyaWJ1dGUtZW5kJyxcbiAgX19pY29uTm9kZSxcbik7XG5cbmV4cG9ydCBkZWZhdWx0IEFsaWduSG9yaXpvbnRhbERpc3RyaWJ1dGVFbmQ7XG4iLCJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbXG4gIFsncmVjdCcsIHsgd2lkdGg6ICc2JywgaGVpZ2h0OiAnMTQnLCB4OiAnNCcsIHk6ICc1Jywgcng6ICcyJywga2V5OiAnMXd3bmJ5JyB9XSxcbiAgWydyZWN0JywgeyB3aWR0aDogJzYnLCBoZWlnaHQ6ICcxMCcsIHg6ICcxNCcsIHk6ICc3Jywgcng6ICcyJywga2V5OiAnMWZlNmo2JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTQgMnYyMCcsIGtleTogJ2d0cGQ1eCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xNCAydjIwJywga2V5OiAndGc2YnB3JyB9XSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBBbGlnbkhvcml6b250YWxEaXN0cmlidXRlU3RhcnRcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNtVmpkQ0IzYVdSMGFEMGlOaUlnYUdWcFoyaDBQU0l4TkNJZ2VEMGlOQ0lnZVQwaU5TSWdjbmc5SWpJaUlDOCtDaUFnUEhKbFkzUWdkMmxrZEdnOUlqWWlJR2hsYVdkb2REMGlNVEFpSUhnOUlqRTBJaUI1UFNJM0lpQnllRDBpTWlJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTkNBeWRqSXdJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHhOQ0F5ZGpJd0lpQXZQZ284TDNOMlp6NEspIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2FsaWduLWhvcml6b250YWwtZGlzdHJpYnV0ZS1zdGFydFxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IEFsaWduSG9yaXpvbnRhbERpc3RyaWJ1dGVTdGFydCA9IGNyZWF0ZUx1Y2lkZUljb24oXG4gICdhbGlnbi1ob3Jpem9udGFsLWRpc3RyaWJ1dGUtc3RhcnQnLFxuICBfX2ljb25Ob2RlLFxuKTtcblxuZXhwb3J0IGRlZmF1bHQgQWxpZ25Ib3Jpem9udGFsRGlzdHJpYnV0ZVN0YXJ0O1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbJ3JlY3QnLCB7IHdpZHRoOiAnNicsIGhlaWdodDogJzE0JywgeDogJzInLCB5OiAnNScsIHJ4OiAnMicsIGtleTogJ2R5MjR6cicgfV0sXG4gIFsncmVjdCcsIHsgd2lkdGg6ICc2JywgaGVpZ2h0OiAnMTAnLCB4OiAnMTYnLCB5OiAnNycsIHJ4OiAnMicsIGtleTogJzEzemtqdCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xMiAydjIwJywga2V5OiAndDZ6cDNtJyB9XSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBBbGlnbkhvcml6b250YWxKdXN0aWZ5Q2VudGVyXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjbVZqZENCM2FXUjBhRDBpTmlJZ2FHVnBaMmgwUFNJeE5DSWdlRDBpTWlJZ2VUMGlOU0lnY25nOUlqSWlJQzgrQ2lBZ1BISmxZM1FnZDJsa2RHZzlJallpSUdobGFXZG9kRDBpTVRBaUlIZzlJakUySWlCNVBTSTNJaUJ5ZUQwaU1pSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk1USWdNbll5TUNJZ0x6NEtQQzl6ZG1jK0NnPT0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2FsaWduLWhvcml6b250YWwtanVzdGlmeS1jZW50ZXJcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBBbGlnbkhvcml6b250YWxKdXN0aWZ5Q2VudGVyID0gY3JlYXRlTHVjaWRlSWNvbihcbiAgJ2FsaWduLWhvcml6b250YWwtanVzdGlmeS1jZW50ZXInLFxuICBfX2ljb25Ob2RlLFxuKTtcblxuZXhwb3J0IGRlZmF1bHQgQWxpZ25Ib3Jpem9udGFsSnVzdGlmeUNlbnRlcjtcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgWydyZWN0JywgeyB3aWR0aDogJzYnLCBoZWlnaHQ6ICcxNCcsIHg6ICcyJywgeTogJzUnLCByeDogJzInLCBrZXk6ICdkeTI0enInIH1dLFxuICBbJ3JlY3QnLCB7IHdpZHRoOiAnNicsIGhlaWdodDogJzEwJywgeDogJzEyJywgeTogJzcnLCByeDogJzInLCBrZXk6ICcxaHQzODQnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMjIgMnYyMCcsIGtleTogJzQwcWZnMScgfV0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgQWxpZ25Ib3Jpem9udGFsSnVzdGlmeUVuZFxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y21WamRDQjNhV1IwYUQwaU5pSWdhR1ZwWjJoMFBTSXhOQ0lnZUQwaU1pSWdlVDBpTlNJZ2NuZzlJaklpSUM4K0NpQWdQSEpsWTNRZ2QybGtkR2c5SWpZaUlHaGxhV2RvZEQwaU1UQWlJSGc5SWpFeUlpQjVQU0kzSWlCeWVEMGlNaUlnTHo0S0lDQThjR0YwYUNCa1BTSk5NaklnTW5ZeU1DSWdMejRLUEM5emRtYytDZz09KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9hbGlnbi1ob3Jpem9udGFsLWp1c3RpZnktZW5kXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgQWxpZ25Ib3Jpem9udGFsSnVzdGlmeUVuZCA9IGNyZWF0ZUx1Y2lkZUljb24oJ2FsaWduLWhvcml6b250YWwtanVzdGlmeS1lbmQnLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgQWxpZ25Ib3Jpem9udGFsSnVzdGlmeUVuZDtcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgWydyZWN0JywgeyB3aWR0aDogJzYnLCBoZWlnaHQ6ICcxNCcsIHg6ICc2JywgeTogJzUnLCByeDogJzInLCBrZXk6ICdoc2lycGYnIH1dLFxuICBbJ3JlY3QnLCB7IHdpZHRoOiAnNicsIGhlaWdodDogJzEwJywgeDogJzE2JywgeTogJzcnLCByeDogJzInLCBrZXk6ICcxM3pranQnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMiAydjIwJywga2V5OiAnMWl2ZDhvJyB9XSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBBbGlnbkhvcml6b250YWxKdXN0aWZ5U3RhcnRcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNtVmpkQ0IzYVdSMGFEMGlOaUlnYUdWcFoyaDBQU0l4TkNJZ2VEMGlOaUlnZVQwaU5TSWdjbmc5SWpJaUlDOCtDaUFnUEhKbFkzUWdkMmxrZEdnOUlqWWlJR2hsYVdkb2REMGlNVEFpSUhnOUlqRTJJaUI1UFNJM0lpQnllRDBpTWlJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTWlBeWRqSXdJaUF2UGdvOEwzTjJaejRLKSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9hbGlnbi1ob3Jpem9udGFsLWp1c3RpZnktc3RhcnRcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBBbGlnbkhvcml6b250YWxKdXN0aWZ5U3RhcnQgPSBjcmVhdGVMdWNpZGVJY29uKCdhbGlnbi1ob3Jpem9udGFsLWp1c3RpZnktc3RhcnQnLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgQWxpZ25Ib3Jpem9udGFsSnVzdGlmeVN0YXJ0O1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbJ3JlY3QnLCB7IHdpZHRoOiAnNicsIGhlaWdodDogJzEwJywgeDogJzknLCB5OiAnNycsIHJ4OiAnMicsIGtleTogJ3luN2owcScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ000IDIyVjInLCBrZXk6ICd0c2p6ZDMnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMjAgMjJWMicsIGtleTogJzFibmhyOCcgfV0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgQWxpZ25Ib3Jpem9udGFsU3BhY2VBcm91bmRcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNtVmpkQ0IzYVdSMGFEMGlOaUlnYUdWcFoyaDBQU0l4TUNJZ2VEMGlPU0lnZVQwaU55SWdjbmc5SWpJaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRRZ01qSldNaUlnTHo0S0lDQThjR0YwYUNCa1BTSk5NakFnTWpKV01pSWdMejRLUEM5emRtYytDZz09KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9hbGlnbi1ob3Jpem9udGFsLXNwYWNlLWFyb3VuZFxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IEFsaWduSG9yaXpvbnRhbFNwYWNlQXJvdW5kID0gY3JlYXRlTHVjaWRlSWNvbignYWxpZ24taG9yaXpvbnRhbC1zcGFjZS1hcm91bmQnLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgQWxpZ25Ib3Jpem9udGFsU3BhY2VBcm91bmQ7XG4iLCJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbXG4gIFsncmVjdCcsIHsgd2lkdGg6ICc2JywgaGVpZ2h0OiAnMTQnLCB4OiAnMycsIHk6ICc1Jywgcng6ICcyJywga2V5OiAnajc3ZGFlJyB9XSxcbiAgWydyZWN0JywgeyB3aWR0aDogJzYnLCBoZWlnaHQ6ICcxMCcsIHg6ICcxNScsIHk6ICc3Jywgcng6ICcyJywga2V5OiAnYnEzMGhqJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTMgMnYyMCcsIGtleTogJzFkMnBmZycgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00yMSAydjIwJywga2V5OiAncDA1OWJtJyB9XSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBBbGlnbkhvcml6b250YWxTcGFjZUJldHdlZW5cbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNtVmpkQ0IzYVdSMGFEMGlOaUlnYUdWcFoyaDBQU0l4TkNJZ2VEMGlNeUlnZVQwaU5TSWdjbmc5SWpJaUlDOCtDaUFnUEhKbFkzUWdkMmxrZEdnOUlqWWlJR2hsYVdkb2REMGlNVEFpSUhnOUlqRTFJaUI1UFNJM0lpQnllRDBpTWlJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTXlBeWRqSXdJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHlNU0F5ZGpJd0lpQXZQZ284TDNOMlp6NEspIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2FsaWduLWhvcml6b250YWwtc3BhY2UtYmV0d2VlblxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IEFsaWduSG9yaXpvbnRhbFNwYWNlQmV0d2VlbiA9IGNyZWF0ZUx1Y2lkZUljb24oJ2FsaWduLWhvcml6b250YWwtc3BhY2UtYmV0d2VlbicsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBBbGlnbkhvcml6b250YWxTcGFjZUJldHdlZW47XG4iLCJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ00zIDEyaDE4Jywga2V5OiAnMWkybjIxJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTMgMThoMTgnLCBrZXk6ICcxaDExM3gnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMyA2aDE4Jywga2V5OiAnZDB3bTBqJyB9XSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBBbGlnbkp1c3RpZnlcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk15QXhNbWd4T0NJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTXlBeE9HZ3hPQ0lnTHo0S0lDQThjR0YwYUNCa1BTSk5NeUEyYURFNElpQXZQZ284TDNOMlp6NEspIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2FsaWduLWp1c3RpZnlcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBBbGlnbkp1c3RpZnkgPSBjcmVhdGVMdWNpZGVJY29uKCdhbGlnbi1qdXN0aWZ5JywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IEFsaWduSnVzdGlmeTtcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTE1IDEySDMnLCBrZXk6ICc2ams3MHInIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTcgMThIMycsIGtleTogJzFhbWc2ZycgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00yMSA2SDMnLCBrZXk6ICcxandxN3YnIH1dLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIEFsaWduTGVmdFxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTVRVZ01USklNeUlnTHo0S0lDQThjR0YwYUNCa1BTSk5NVGNnTVRoSU15SWdMejRLSUNBOGNHRjBhQ0JrUFNKTk1qRWdOa2d6SWlBdlBnbzhMM04yWno0SykgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvYWxpZ24tbGVmdFxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IEFsaWduTGVmdCA9IGNyZWF0ZUx1Y2lkZUljb24oJ2FsaWduLWxlZnQnLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgQWxpZ25MZWZ0O1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdNMjEgMTJIOScsIGtleTogJ2RuMW05MicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00yMSAxOEg3Jywga2V5OiAnMXlndGU4JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTIxIDZIMycsIGtleTogJzFqd3E3dicgfV0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgQWxpZ25SaWdodFxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTWpFZ01USklPU0lnTHo0S0lDQThjR0YwYUNCa1BTSk5NakVnTVRoSU55SWdMejRLSUNBOGNHRjBhQ0JrUFNKTk1qRWdOa2d6SWlBdlBnbzhMM04yWno0SykgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvYWxpZ24tcmlnaHRcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBBbGlnblJpZ2h0ID0gY3JlYXRlTHVjaWRlSWNvbignYWxpZ24tcmlnaHQnLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgQWxpZ25SaWdodDtcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgWydyZWN0JywgeyB3aWR0aDogJzYnLCBoZWlnaHQ6ICcxNicsIHg6ICc0JywgeTogJzYnLCByeDogJzInLCBrZXk6ICcxbjRkZzEnIH1dLFxuICBbJ3JlY3QnLCB7IHdpZHRoOiAnNicsIGhlaWdodDogJzknLCB4OiAnMTQnLCB5OiAnNicsIHJ4OiAnMicsIGtleTogJzE3a2hucycgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00yMiAySDInLCBrZXk6ICdmaHJwbmonIH1dLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIEFsaWduU3RhcnRIb3Jpem9udGFsXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjbVZqZENCM2FXUjBhRDBpTmlJZ2FHVnBaMmgwUFNJeE5pSWdlRDBpTkNJZ2VUMGlOaUlnY25nOUlqSWlJQzgrQ2lBZ1BISmxZM1FnZDJsa2RHZzlJallpSUdobGFXZG9kRDBpT1NJZ2VEMGlNVFFpSUhrOUlqWWlJSEo0UFNJeUlpQXZQZ29nSUR4d1lYUm9JR1E5SWsweU1pQXlTRElpSUM4K0Nqd3ZjM1puUGdvPSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvYWxpZ24tc3RhcnQtaG9yaXpvbnRhbFxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IEFsaWduU3RhcnRIb3Jpem9udGFsID0gY3JlYXRlTHVjaWRlSWNvbignYWxpZ24tc3RhcnQtaG9yaXpvbnRhbCcsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBBbGlnblN0YXJ0SG9yaXpvbnRhbDtcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgWydyZWN0JywgeyB3aWR0aDogJzknLCBoZWlnaHQ6ICc2JywgeDogJzYnLCB5OiAnMTQnLCByeDogJzInLCBrZXk6ICdscG0yeTcnIH1dLFxuICBbJ3JlY3QnLCB7IHdpZHRoOiAnMTYnLCBoZWlnaHQ6ICc2JywgeDogJzYnLCB5OiAnNCcsIHJ4OiAnMicsIGtleTogJ3JkajZwcycgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00yIDJ2MjAnLCBrZXk6ICcxaXZkOG8nIH1dLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIEFsaWduU3RhcnRWZXJ0aWNhbFxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y21WamRDQjNhV1IwYUQwaU9TSWdhR1ZwWjJoMFBTSTJJaUI0UFNJMklpQjVQU0l4TkNJZ2NuZzlJaklpSUM4K0NpQWdQSEpsWTNRZ2QybGtkR2c5SWpFMklpQm9aV2xuYUhROUlqWWlJSGc5SWpZaUlIazlJalFpSUhKNFBTSXlJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHlJREoyTWpBaUlDOCtDand2YzNablBnbz0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2FsaWduLXN0YXJ0LXZlcnRpY2FsXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgQWxpZ25TdGFydFZlcnRpY2FsID0gY3JlYXRlTHVjaWRlSWNvbignYWxpZ24tc3RhcnQtdmVydGljYWwnLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgQWxpZ25TdGFydFZlcnRpY2FsO1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdNMjIgMTdoLTMnLCBrZXk6ICcxbHdnYTEnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMjIgN2gtNScsIGtleTogJ28yZW5kYycgfV0sXG4gIFsncGF0aCcsIHsgZDogJ001IDE3SDInLCBrZXk6ICcxZ3g5eGMnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNNyA3SDInLCBrZXk6ICc2YnEyNmwnIH1dLFxuICBbJ3JlY3QnLCB7IHg6ICc1JywgeTogJzE0Jywgd2lkdGg6ICcxNCcsIGhlaWdodDogJzYnLCByeDogJzInLCBrZXk6ICcxcXJ6dWYnIH1dLFxuICBbJ3JlY3QnLCB7IHg6ICc3JywgeTogJzQnLCB3aWR0aDogJzEwJywgaGVpZ2h0OiAnNicsIHJ4OiAnMicsIGtleTogJ3dlOGU5eicgfV0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgQWxpZ25WZXJ0aWNhbERpc3RyaWJ1dGVDZW50ZXJcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1qSWdNVGRvTFRNaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRJeUlEZG9MVFVpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVFVnTVRkSU1pSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk55QTNTRElpSUM4K0NpQWdQSEpsWTNRZ2VEMGlOU0lnZVQwaU1UUWlJSGRwWkhSb1BTSXhOQ0lnYUdWcFoyaDBQU0kySWlCeWVEMGlNaUlnTHo0S0lDQThjbVZqZENCNFBTSTNJaUI1UFNJMElpQjNhV1IwYUQwaU1UQWlJR2hsYVdkb2REMGlOaUlnY25nOUlqSWlJQzgrQ2p3dmMzWm5QZ289KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9hbGlnbi12ZXJ0aWNhbC1kaXN0cmlidXRlLWNlbnRlclxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IEFsaWduVmVydGljYWxEaXN0cmlidXRlQ2VudGVyID0gY3JlYXRlTHVjaWRlSWNvbihcbiAgJ2FsaWduLXZlcnRpY2FsLWRpc3RyaWJ1dGUtY2VudGVyJyxcbiAgX19pY29uTm9kZSxcbik7XG5cbmV4cG9ydCBkZWZhdWx0IEFsaWduVmVydGljYWxEaXN0cmlidXRlQ2VudGVyO1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbJ3JlY3QnLCB7IHdpZHRoOiAnMTQnLCBoZWlnaHQ6ICc2JywgeDogJzUnLCB5OiAnMTQnLCByeDogJzInLCBrZXk6ICdqbW9qOXMnIH1dLFxuICBbJ3JlY3QnLCB7IHdpZHRoOiAnMTAnLCBoZWlnaHQ6ICc2JywgeDogJzcnLCB5OiAnNCcsIHJ4OiAnMicsIGtleTogJ2F6YTVvbicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00yIDIwaDIwJywga2V5OiAnb3dvbXk1JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTIgMTBoMjAnLCBrZXk6ICcxaXIzZDgnIH1dLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIEFsaWduVmVydGljYWxEaXN0cmlidXRlRW5kXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjbVZqZENCM2FXUjBhRDBpTVRRaUlHaGxhV2RvZEQwaU5pSWdlRDBpTlNJZ2VUMGlNVFFpSUhKNFBTSXlJaUF2UGdvZ0lEeHlaV04wSUhkcFpIUm9QU0l4TUNJZ2FHVnBaMmgwUFNJMklpQjRQU0kzSWlCNVBTSTBJaUJ5ZUQwaU1pSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk1pQXlNR2d5TUNJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTWlBeE1HZ3lNQ0lnTHo0S1BDOXpkbWMrQ2c9PSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvYWxpZ24tdmVydGljYWwtZGlzdHJpYnV0ZS1lbmRcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBBbGlnblZlcnRpY2FsRGlzdHJpYnV0ZUVuZCA9IGNyZWF0ZUx1Y2lkZUljb24oJ2FsaWduLXZlcnRpY2FsLWRpc3RyaWJ1dGUtZW5kJywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IEFsaWduVmVydGljYWxEaXN0cmlidXRlRW5kO1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbJ3JlY3QnLCB7IHdpZHRoOiAnMTQnLCBoZWlnaHQ6ICc2JywgeDogJzUnLCB5OiAnMTQnLCByeDogJzInLCBrZXk6ICdqbW9qOXMnIH1dLFxuICBbJ3JlY3QnLCB7IHdpZHRoOiAnMTAnLCBoZWlnaHQ6ICc2JywgeDogJzcnLCB5OiAnNCcsIHJ4OiAnMicsIGtleTogJ2F6YTVvbicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00yIDE0aDIwJywga2V5OiAnbXlqMTZ5JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTIgNGgyMCcsIGtleTogJ21kYTd3YicgfV0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgQWxpZ25WZXJ0aWNhbERpc3RyaWJ1dGVTdGFydFxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y21WamRDQjNhV1IwYUQwaU1UUWlJR2hsYVdkb2REMGlOaUlnZUQwaU5TSWdlVDBpTVRRaUlISjRQU0l5SWlBdlBnb2dJRHh5WldOMElIZHBaSFJvUFNJeE1DSWdhR1ZwWjJoMFBTSTJJaUI0UFNJM0lpQjVQU0kwSWlCeWVEMGlNaUlnTHo0S0lDQThjR0YwYUNCa1BTSk5NaUF4TkdneU1DSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk1pQTBhREl3SWlBdlBnbzhMM04yWno0SykgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvYWxpZ24tdmVydGljYWwtZGlzdHJpYnV0ZS1zdGFydFxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IEFsaWduVmVydGljYWxEaXN0cmlidXRlU3RhcnQgPSBjcmVhdGVMdWNpZGVJY29uKFxuICAnYWxpZ24tdmVydGljYWwtZGlzdHJpYnV0ZS1zdGFydCcsXG4gIF9faWNvbk5vZGUsXG4pO1xuXG5leHBvcnQgZGVmYXVsdCBBbGlnblZlcnRpY2FsRGlzdHJpYnV0ZVN0YXJ0O1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbJ3JlY3QnLCB7IHdpZHRoOiAnMTQnLCBoZWlnaHQ6ICc2JywgeDogJzUnLCB5OiAnMTYnLCByeDogJzInLCBrZXk6ICcxaTh6MmQnIH1dLFxuICBbJ3JlY3QnLCB7IHdpZHRoOiAnMTAnLCBoZWlnaHQ6ICc2JywgeDogJzcnLCB5OiAnMicsIHJ4OiAnMicsIGtleTogJ3lwaWh0dCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00yIDEyaDIwJywga2V5OiAnOWk0cHU0JyB9XSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBBbGlnblZlcnRpY2FsSnVzdGlmeUNlbnRlclxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y21WamRDQjNhV1IwYUQwaU1UUWlJR2hsYVdkb2REMGlOaUlnZUQwaU5TSWdlVDBpTVRZaUlISjRQU0l5SWlBdlBnb2dJRHh5WldOMElIZHBaSFJvUFNJeE1DSWdhR1ZwWjJoMFBTSTJJaUI0UFNJM0lpQjVQU0l5SWlCeWVEMGlNaUlnTHo0S0lDQThjR0YwYUNCa1BTSk5NaUF4TW1neU1DSWdMejRLUEM5emRtYytDZz09KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9hbGlnbi12ZXJ0aWNhbC1qdXN0aWZ5LWNlbnRlclxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IEFsaWduVmVydGljYWxKdXN0aWZ5Q2VudGVyID0gY3JlYXRlTHVjaWRlSWNvbignYWxpZ24tdmVydGljYWwtanVzdGlmeS1jZW50ZXInLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgQWxpZ25WZXJ0aWNhbEp1c3RpZnlDZW50ZXI7XG4iLCJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbXG4gIFsncmVjdCcsIHsgd2lkdGg6ICcxNCcsIGhlaWdodDogJzYnLCB4OiAnNScsIHk6ICcxMicsIHJ4OiAnMicsIGtleTogJzRsNHRwMicgfV0sXG4gIFsncmVjdCcsIHsgd2lkdGg6ICcxMCcsIGhlaWdodDogJzYnLCB4OiAnNycsIHk6ICcyJywgcng6ICcyJywga2V5OiAneXBpaHR0JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTIgMjJoMjAnLCBrZXk6ICcyNzJxaTcnIH1dLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIEFsaWduVmVydGljYWxKdXN0aWZ5RW5kXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjbVZqZENCM2FXUjBhRDBpTVRRaUlHaGxhV2RvZEQwaU5pSWdlRDBpTlNJZ2VUMGlNVElpSUhKNFBTSXlJaUF2UGdvZ0lEeHlaV04wSUhkcFpIUm9QU0l4TUNJZ2FHVnBaMmgwUFNJMklpQjRQU0kzSWlCNVBTSXlJaUJ5ZUQwaU1pSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk1pQXlNbWd5TUNJZ0x6NEtQQzl6ZG1jK0NnPT0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2FsaWduLXZlcnRpY2FsLWp1c3RpZnktZW5kXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgQWxpZ25WZXJ0aWNhbEp1c3RpZnlFbmQgPSBjcmVhdGVMdWNpZGVJY29uKCdhbGlnbi12ZXJ0aWNhbC1qdXN0aWZ5LWVuZCcsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBBbGlnblZlcnRpY2FsSnVzdGlmeUVuZDtcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgWydyZWN0JywgeyB3aWR0aDogJzE0JywgaGVpZ2h0OiAnNicsIHg6ICc1JywgeTogJzE2Jywgcng6ICcyJywga2V5OiAnMWk4ejJkJyB9XSxcbiAgWydyZWN0JywgeyB3aWR0aDogJzEwJywgaGVpZ2h0OiAnNicsIHg6ICc3JywgeTogJzYnLCByeDogJzInLCBrZXk6ICcxM3NxdWgnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMiAyaDIwJywga2V5OiAnMWVubmlrJyB9XSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBBbGlnblZlcnRpY2FsSnVzdGlmeVN0YXJ0XG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjbVZqZENCM2FXUjBhRDBpTVRRaUlHaGxhV2RvZEQwaU5pSWdlRDBpTlNJZ2VUMGlNVFlpSUhKNFBTSXlJaUF2UGdvZ0lEeHlaV04wSUhkcFpIUm9QU0l4TUNJZ2FHVnBaMmgwUFNJMklpQjRQU0kzSWlCNVBTSTJJaUJ5ZUQwaU1pSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk1pQXlhREl3SWlBdlBnbzhMM04yWno0SykgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvYWxpZ24tdmVydGljYWwtanVzdGlmeS1zdGFydFxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IEFsaWduVmVydGljYWxKdXN0aWZ5U3RhcnQgPSBjcmVhdGVMdWNpZGVJY29uKCdhbGlnbi12ZXJ0aWNhbC1qdXN0aWZ5LXN0YXJ0JywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IEFsaWduVmVydGljYWxKdXN0aWZ5U3RhcnQ7XG4iLCJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbXG4gIFsncmVjdCcsIHsgd2lkdGg6ICcxMCcsIGhlaWdodDogJzYnLCB4OiAnNycsIHk6ICc5Jywgcng6ICcyJywga2V5OiAnYjF6YmlpJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTIyIDIwSDInLCBrZXk6ICcxcDFmN3onIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMjIgNEgyJywga2V5OiAnMWI3cW5xJyB9XSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBBbGlnblZlcnRpY2FsU3BhY2VBcm91bmRcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNtVmpkQ0IzYVdSMGFEMGlNVEFpSUdobGFXZG9kRDBpTmlJZ2VEMGlOeUlnZVQwaU9TSWdjbmc5SWpJaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRJeUlESXdTRElpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVEl5SURSSU1pSWdMejRLUEM5emRtYytDZz09KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9hbGlnbi12ZXJ0aWNhbC1zcGFjZS1hcm91bmRcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBBbGlnblZlcnRpY2FsU3BhY2VBcm91bmQgPSBjcmVhdGVMdWNpZGVJY29uKCdhbGlnbi12ZXJ0aWNhbC1zcGFjZS1hcm91bmQnLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgQWxpZ25WZXJ0aWNhbFNwYWNlQXJvdW5kO1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbJ3JlY3QnLCB7IHdpZHRoOiAnMTQnLCBoZWlnaHQ6ICc2JywgeDogJzUnLCB5OiAnMTUnLCByeDogJzInLCBrZXk6ICcxdzkxYW4nIH1dLFxuICBbJ3JlY3QnLCB7IHdpZHRoOiAnMTAnLCBoZWlnaHQ6ICc2JywgeDogJzcnLCB5OiAnMycsIHJ4OiAnMicsIGtleTogJzE3d3F6eScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00yIDIxaDIwJywga2V5OiAnMW55eDl3JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTIgM2gyMCcsIGtleTogJzkxYW5taycgfV0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgQWxpZ25WZXJ0aWNhbFNwYWNlQmV0d2VlblxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y21WamRDQjNhV1IwYUQwaU1UUWlJR2hsYVdkb2REMGlOaUlnZUQwaU5TSWdlVDBpTVRVaUlISjRQU0l5SWlBdlBnb2dJRHh5WldOMElIZHBaSFJvUFNJeE1DSWdhR1ZwWjJoMFBTSTJJaUI0UFNJM0lpQjVQU0l6SWlCeWVEMGlNaUlnTHo0S0lDQThjR0YwYUNCa1BTSk5NaUF5TVdneU1DSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk1pQXphREl3SWlBdlBnbzhMM04yWno0SykgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvYWxpZ24tdmVydGljYWwtc3BhY2UtYmV0d2VlblxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IEFsaWduVmVydGljYWxTcGFjZUJldHdlZW4gPSBjcmVhdGVMdWNpZGVJY29uKCdhbGlnbi12ZXJ0aWNhbC1zcGFjZS1iZXR3ZWVuJywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IEFsaWduVmVydGljYWxTcGFjZUJldHdlZW47XG4iLCJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ00xMCAxMEg2Jywga2V5OiAnMWJzbnVnJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTE0IDE4VjZhMiAyIDAgMCAwLTItMkg0YTIgMiAwIDAgMC0yIDJ2MTFhMSAxIDAgMCAwIDEgMWgyJywga2V5OiAnd3JidTUzJyB9XSxcbiAgW1xuICAgICdwYXRoJyxcbiAgICB7XG4gICAgICBkOiAnTTE5IDE4aDJhMSAxIDAgMCAwIDEtMXYtMy4yOGExIDEgMCAwIDAtLjY4NC0uOTQ4bC0xLjkyMy0uNjQxYTEgMSAwIDAgMS0uNTc4LS41MDJsLTEuNTM5LTMuMDc2QTEgMSAwIDAgMCAxNi4zODIgOEgxNCcsXG4gICAgICBrZXk6ICdscmtqd2QnLFxuICAgIH0sXG4gIF0sXG4gIFsncGF0aCcsIHsgZDogJ004IDh2NCcsIGtleTogJzFmd2s4YycgfV0sXG4gIFsncGF0aCcsIHsgZDogJ005IDE4aDYnLCBrZXk6ICd4MXVwdmQnIH1dLFxuICBbJ2NpcmNsZScsIHsgY3g6ICcxNycsIGN5OiAnMTgnLCByOiAnMicsIGtleTogJzMzMmpxbicgfV0sXG4gIFsnY2lyY2xlJywgeyBjeDogJzcnLCBjeTogJzE4JywgcjogJzInLCBrZXk6ICcxOWllY2QnIH1dLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIEFtYnVsYW5jZVxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTVRBZ01UQklOaUlnTHo0S0lDQThjR0YwYUNCa1BTSk5NVFFnTVRoV05tRXlJRElnTUNBd0lEQXRNaTB5U0RSaE1pQXlJREFnTUNBd0xUSWdNbll4TVdFeElERWdNQ0F3SURBZ01TQXhhRElpSUM4K0NpQWdQSEJoZEdnS0lDQWdJR1E5SWsweE9TQXhPR2d5WVRFZ01TQXdJREFnTUNBeExURjJMVE11TWpoaE1TQXhJREFnTUNBd0xTNDJPRFF0TGprME9Hd3RNUzQ1TWpNdExqWTBNV0V4SURFZ01DQXdJREV0TGpVM09DMHVOVEF5YkMweExqVXpPUzB6TGpBM05rRXhJREVnTUNBd0lEQWdNVFl1TXpneUlEaElNVFFpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVGdnT0hZMElpQXZQZ29nSUR4d1lYUm9JR1E5SWswNUlERTRhRFlpSUM4K0NpQWdQR05wY21Oc1pTQmplRDBpTVRjaUlHTjVQU0l4T0NJZ2NqMGlNaUlnTHo0S0lDQThZMmx5WTJ4bElHTjRQU0kzSWlCamVUMGlNVGdpSUhJOUlqSWlJQzgrQ2p3dmMzWm5QZz09KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9hbWJ1bGFuY2VcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBBbWJ1bGFuY2UgPSBjcmVhdGVMdWNpZGVJY29uKCdhbWJ1bGFuY2UnLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgQW1idWxhbmNlO1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbXG4gICAgJ3BhdGgnLFxuICAgIHtcbiAgICAgIGQ6ICdNMTcuNSAxMmMwIDQuNC0zLjYgOC04IDhBNC41IDQuNSAwIDAgMSA1IDE1LjVjMC02IDgtNCA4LTguNWEzIDMgMCAxIDAtNiAwYzAgMyAyLjUgOC41IDEyIDEzJyxcbiAgICAgIGtleTogJzFvOWVoaScsXG4gICAgfSxcbiAgXSxcbiAgWydwYXRoJywgeyBkOiAnTTE2IDEyaDMnLCBrZXk6ICc0dXZneXcnIH1dLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIEFtcGVyc2FuZFxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTVRjdU5TQXhNbU13SURRdU5DMHpMallnT0MwNElEaEJOQzQxSURRdU5TQXdJREFnTVNBMUlERTFMalZqTUMwMklEZ3ROQ0E0TFRndU5XRXpJRE1nTUNBeElEQXROaUF3WXpBZ015QXlMalVnT0M0MUlERXlJREV6SWlBdlBnb2dJRHh3WVhSb0lHUTlJazB4TmlBeE1tZ3pJaUF2UGdvOEwzTjJaejRLKSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9hbXBlcnNhbmRcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBBbXBlcnNhbmQgPSBjcmVhdGVMdWNpZGVJY29uKCdhbXBlcnNhbmQnLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgQW1wZXJzYW5kO1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbXG4gICAgJ3BhdGgnLFxuICAgIHtcbiAgICAgIGQ6ICdNMTAgMTdjLTUtMy03LTctNy05YTIgMiAwIDAgMSA0IDBjMCAyLjUtNSAyLjUtNSA2IDAgMS43IDEuMyAzIDMgMyAyLjggMCA1LTIuMiA1LTUnLFxuICAgICAga2V5OiAnMTJsaDFrJyxcbiAgICB9LFxuICBdLFxuICBbXG4gICAgJ3BhdGgnLFxuICAgIHtcbiAgICAgIGQ6ICdNMjIgMTdjLTUtMy03LTctNy05YTIgMiAwIDAgMSA0IDBjMCAyLjUtNSAyLjUtNSA2IDAgMS43IDEuMyAzIDMgMyAyLjggMCA1LTIuMiA1LTUnLFxuICAgICAga2V5OiAnMTczYzY4JyxcbiAgICB9LFxuICBdLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIEFtcGVyc2FuZHNcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1UQWdNVGRqTFRVdE15MDNMVGN0TnkwNVlUSWdNaUF3SURBZ01TQTBJREJqTUNBeUxqVXROU0F5TGpVdE5TQTJJREFnTVM0M0lERXVNeUF6SURNZ015QXlMamdnTUNBMUxUSXVNaUExTFRVaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRJeUlERTNZeTAxTFRNdE55MDNMVGN0T1dFeUlESWdNQ0F3SURFZ05DQXdZekFnTWk0MUxUVWdNaTQxTFRVZ05pQXdJREV1TnlBeExqTWdNeUF6SURNZ01pNDRJREFnTlMweUxqSWdOUzAxSWlBdlBnbzhMM04yWno0SykgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvYW1wZXJzYW5kc1xuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IEFtcGVyc2FuZHMgPSBjcmVhdGVMdWNpZGVJY29uKCdhbXBlcnNhbmRzJywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IEFtcGVyc2FuZHM7XG4iLCJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbXG4gIFtcbiAgICAncGF0aCcsXG4gICAgeyBkOiAnTTEwIDJ2NS42MzJjMCAuNDI0LS4yNzIuNzk1LS42NTMuOTgyQTYgNiAwIDAgMCA2IDE0Yy4wMDYgNCAzIDcgNSA4Jywga2V5OiAnMWg4cmlkJyB9LFxuICBdLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTAgNUg4YTIgMiAwIDAgMCAwIDRoLjY4Jywga2V5OiAnM2V6c2k2JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTE0IDJ2NS42MzJjMCAuNDI0LjI3Mi43OTUuNjUyLjk4MkE2IDYgMCAwIDEgMTggMTRjMCA0LTMgNy01IDgnLCBrZXk6ICd5dDZxMDknIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTQgNWgyYTIgMiAwIDAgMSAwIDRoLS42OCcsIGtleTogJzhmOTV5aycgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xOCAyMkg2Jywga2V5OiAnbWc2a3Y0JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTkgMmg2Jywga2V5OiAnMWpycDk4JyB9XSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBBbXBob3JhXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NVEFnTW5ZMUxqWXpNbU13SUM0ME1qUXRMakkzTWk0M09UVXRMalkxTXk0NU9ESkJOaUEySURBZ01DQXdJRFlnTVRSakxqQXdOaUEwSURNZ055QTFJRGdpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVEV3SURWSU9HRXlJRElnTUNBd0lEQWdNQ0EwYUM0Mk9DSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk1UUWdNblkxTGpZek1tTXdJQzQwTWpRdU1qY3lMamM1TlM0Mk5USXVPVGd5UVRZZ05pQXdJREFnTVNBeE9DQXhOR013SURRdE15QTNMVFVnT0NJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTVRRZ05XZ3lZVElnTWlBd0lEQWdNU0F3SURSb0xTNDJPQ0lnTHo0S0lDQThjR0YwYUNCa1BTSk5NVGdnTWpKSU5pSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk9TQXlhRFlpSUM4K0Nqd3ZjM1puUGdvPSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvYW1waG9yYVxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IEFtcGhvcmEgPSBjcmVhdGVMdWNpZGVJY29uKCdhbXBob3JhJywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IEFtcGhvcmE7XG4iLCJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ00xMiAyMlY4Jywga2V5OiAncWt4aHRtJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTUgMTJIMmExMCAxMCAwIDAgMCAyMCAwaC0zJywga2V5OiAnMWh2M25oJyB9XSxcbiAgWydjaXJjbGUnLCB7IGN4OiAnMTInLCBjeTogJzUnLCByOiAnMycsIGtleTogJ3JxcWducicgfV0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgQW5jaG9yXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NVElnTWpKV09DSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk5TQXhNa2d5WVRFd0lERXdJREFnTUNBd0lESXdJREJvTFRNaUlDOCtDaUFnUEdOcGNtTnNaU0JqZUQwaU1USWlJR041UFNJMUlpQnlQU0l6SWlBdlBnbzhMM04yWno0SykgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvYW5jaG9yXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgQW5jaG9yID0gY3JlYXRlTHVjaWRlSWNvbignYW5jaG9yJywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IEFuY2hvcjtcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgWydjaXJjbGUnLCB7IGN4OiAnMTInLCBjeTogJzEyJywgcjogJzEwJywga2V5OiAnMW1nbGF5JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTE2IDE2cy0xLjUtMi00LTItNCAyLTQgMicsIGtleTogJ2VwYmcwcScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ003LjUgOCAxMCA5Jywga2V5OiAnb2x4eGxuJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnbTE0IDkgMi41LTEnLCBrZXk6ICcxajZjaWonIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNOSAxMGguMDEnLCBrZXk6ICdxYnR4dXcnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTUgMTBoLjAxJywga2V5OiAnMXFtanNsJyB9XSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBBbmdyeVxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4WTJseVkyeGxJR040UFNJeE1pSWdZM2s5SWpFeUlpQnlQU0l4TUNJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTVRZZ01UWnpMVEV1TlMweUxUUXRNaTAwSURJdE5DQXlJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMDNMalVnT0NBeE1DQTVJaUF2UGdvZ0lEeHdZWFJvSUdROUltMHhOQ0E1SURJdU5TMHhJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMDVJREV3YUM0d01TSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk1UVWdNVEJvTGpBeElpQXZQZ284TDNOMlp6NEspIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2FuZ3J5XG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgQW5ncnkgPSBjcmVhdGVMdWNpZGVJY29uKCdhbmdyeScsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBBbmdyeTtcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgWydjaXJjbGUnLCB7IGN4OiAnMTInLCBjeTogJzEyJywgcjogJzEwJywga2V5OiAnMW1nbGF5JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTggMTVoOCcsIGtleTogJzQ1bjRyJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTggOWgyJywga2V5OiAnMWcyMDNtJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTE0IDloMicsIGtleTogJzExNnA5dycgfV0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgQW5ub3llZFxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4WTJseVkyeGxJR040UFNJeE1pSWdZM2s5SWpFeUlpQnlQU0l4TUNJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOT0NBeE5XZzRJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMDRJRGxvTWlJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTVRRZ09XZ3lJaUF2UGdvOEwzTjJaejRLKSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9hbm5veWVkXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgQW5ub3llZCA9IGNyZWF0ZUx1Y2lkZUljb24oJ2Fubm95ZWQnLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgQW5ub3llZDtcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTIgMTIgNyAyJywga2V5OiAnMTE3azMwJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnbTcgMTIgNS0xMCcsIGtleTogJzF0dngyMicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ20xMiAxMiA1LTEwJywga2V5OiAnZXYxbzFhJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnbTE3IDEyIDUtMTAnLCBrZXk6ICcxZTR0aTMnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNNC41IDdoMTUnLCBrZXk6ICd2bHN4a3onIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTIgMTZ2NicsIGtleTogJ2M4YTRnaicgfV0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgQW50ZW5uYVxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTWlBeE1pQTNJRElpSUM4K0NpQWdQSEJoZEdnZ1pEMGliVGNnTVRJZ05TMHhNQ0lnTHo0S0lDQThjR0YwYUNCa1BTSnRNVElnTVRJZ05TMHhNQ0lnTHo0S0lDQThjR0YwYUNCa1BTSnRNVGNnTVRJZ05TMHhNQ0lnTHo0S0lDQThjR0YwYUNCa1BTSk5OQzQxSURkb01UVWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRURXlJREUyZGpZaUlDOCtDand2YzNablBnbz0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2FudGVubmFcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBBbnRlbm5hID0gY3JlYXRlTHVjaWRlSWNvbignYW50ZW5uYScsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBBbnRlbm5hO1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdNNyAxMEg2YTQgNCAwIDAgMS00LTQgMSAxIDAgMCAxIDEtMWg0Jywga2V5OiAnMWhqcGI2JyB9XSxcbiAgW1xuICAgICdwYXRoJyxcbiAgICB7IGQ6ICdNNyA1YTEgMSAwIDAgMSAxLTFoMTNhMSAxIDAgMCAxIDEgMSA3IDcgMCAwIDEtNyA3SDhhMSAxIDAgMCAxLTEtMXonLCBrZXk6ICcxcW40NWYnIH0sXG4gIF0sXG4gIFsncGF0aCcsIHsgZDogJ005IDEydjUnLCBrZXk6ICczYW53dHEnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTUgMTJ2NScsIGtleTogJzV4aDN6bicgfV0sXG4gIFtcbiAgICAncGF0aCcsXG4gICAgeyBkOiAnTTUgMjBhMyAzIDAgMCAxIDMtM2g4YTMgMyAwIDAgMSAzIDMgMSAxIDAgMCAxLTEgMUg2YTEgMSAwIDAgMS0xLTEnLCBrZXk6ICcxZmk0eDgnIH0sXG4gIF0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgQW52aWxcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk55QXhNRWcyWVRRZ05DQXdJREFnTVMwMExUUWdNU0F4SURBZ01DQXhJREV0TVdnMElpQXZQZ29nSUR4d1lYUm9JR1E5SWswM0lEVmhNU0F4SURBZ01DQXhJREV0TVdneE0yRXhJREVnTUNBd0lERWdNU0F4SURjZ055QXdJREFnTVMwM0lEZElPR0V4SURFZ01DQXdJREV0TVMweGVpSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk9TQXhNblkxSWlBdlBnb2dJRHh3WVhSb0lHUTlJazB4TlNBeE1uWTFJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMDFJREl3WVRNZ015QXdJREFnTVNBekxUTm9PR0V6SURNZ01DQXdJREVnTXlBeklERWdNU0F3SURBZ01TMHhJREZJTm1FeElERWdNQ0F3SURFdE1TMHhJaUF2UGdvOEwzTjJaejRLKSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9hbnZpbFxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IEFudmlsID0gY3JlYXRlTHVjaWRlSWNvbignYW52aWwnLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgQW52aWw7XG4iLCJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbXG4gIFsnY2lyY2xlJywgeyBjeDogJzEyJywgY3k6ICcxMicsIHI6ICcxMCcsIGtleTogJzFtZ2xheScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ20xNC4zMSA4IDUuNzQgOS45NCcsIGtleTogJzF5NmFiNCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ005LjY5IDhoMTEuNDgnLCBrZXk6ICcxd3hwcHInIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdtNy4zOCAxMiA1Ljc0LTkuOTQnLCBrZXk6ICcxZ3JwMGsnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNOS42OSAxNiAzLjk1IDYuMDYnLCBrZXk6ICdsaWJueWYnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTQuMzEgMTZIMi44MycsIGtleTogJ3g1ZmF2YScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ20xNi42MiAxMi01Ljc0IDkuOTQnLCBrZXk6ICcxdndhd3QnIH1dLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIEFwZXJ0dXJlXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThZMmx5WTJ4bElHTjRQU0l4TWlJZ1kzazlJakV5SWlCeVBTSXhNQ0lnTHo0S0lDQThjR0YwYUNCa1BTSnRNVFF1TXpFZ09DQTFMamMwSURrdU9UUWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRUa3VOamtnT0dneE1TNDBPQ0lnTHo0S0lDQThjR0YwYUNCa1BTSnROeTR6T0NBeE1pQTFMamMwTFRrdU9UUWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRUa3VOamtnTVRZZ015NDVOU0EyTGpBMklpQXZQZ29nSUR4d1lYUm9JR1E5SWsweE5DNHpNU0F4TmtneUxqZ3pJaUF2UGdvZ0lEeHdZWFJvSUdROUltMHhOaTQyTWlBeE1pMDFMamMwSURrdU9UUWlJQzgrQ2p3dmMzWm5QZ289KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9hcGVydHVyZVxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IEFwZXJ0dXJlID0gY3JlYXRlTHVjaWRlSWNvbignYXBlcnR1cmUnLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgQXBlcnR1cmU7XG4iLCJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbXG4gIFsncmVjdCcsIHsgd2lkdGg6ICcyMCcsIGhlaWdodDogJzE2JywgeDogJzInLCB5OiAnNCcsIHJ4OiAnMicsIGtleTogJzE4bjNrMScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ002IDhoLjAxJywga2V5OiAneDlpOHd1JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTEwIDhoLjAxJywga2V5OiAnMXI5b2dxJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTE0IDhoLjAxJywga2V5OiAnMXByaW1kJyB9XSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBBcHBXaW5kb3dNYWNcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNtVmpkQ0IzYVdSMGFEMGlNakFpSUdobGFXZG9kRDBpTVRZaUlIZzlJaklpSUhrOUlqUWlJSEo0UFNJeUlpQXZQZ29nSUR4d1lYUm9JR1E5SWswMklEaG9MakF4SWlBdlBnb2dJRHh3WVhSb0lHUTlJazB4TUNBNGFDNHdNU0lnTHo0S0lDQThjR0YwYUNCa1BTSk5NVFFnT0dndU1ERWlJQzgrQ2p3dmMzWm5QZ289KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9hcHAtd2luZG93LW1hY1xuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IEFwcFdpbmRvd01hYyA9IGNyZWF0ZUx1Y2lkZUljb24oJ2FwcC13aW5kb3ctbWFjJywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IEFwcFdpbmRvd01hYztcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgWydyZWN0JywgeyB4OiAnMicsIHk6ICc0Jywgd2lkdGg6ICcyMCcsIGhlaWdodDogJzE2Jywgcng6ICcyJywga2V5OiAnaXp4bGFvJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTEwIDR2NCcsIGtleTogJ3BwOHU4MCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00yIDhoMjAnLCBrZXk6ICdkMTFjczcnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNNiA0djQnLCBrZXk6ICcxc3Z0ancnIH1dLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIEFwcFdpbmRvd1xuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y21WamRDQjRQU0l5SWlCNVBTSTBJaUIzYVdSMGFEMGlNakFpSUdobGFXZG9kRDBpTVRZaUlISjRQU0l5SWlBdlBnb2dJRHh3WVhSb0lHUTlJazB4TUNBMGRqUWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRUSWdPR2d5TUNJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTmlBMGRqUWlJQzgrQ2p3dmMzWm5QZ289KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9hcHAtd2luZG93XG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgQXBwV2luZG93ID0gY3JlYXRlTHVjaWRlSWNvbignYXBwLXdpbmRvdycsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBBcHBXaW5kb3c7XG4iLCJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbXG4gIFtcbiAgICAncGF0aCcsXG4gICAge1xuICAgICAgZDogJ00xMiAyMC45NGMxLjUgMCAyLjc1IDEuMDYgNCAxLjA2IDMgMCA2LTggNi0xMi4yMkE0LjkxIDQuOTEgMCAwIDAgMTcgNWMtMi4yMiAwLTQgMS40NC01IDItMS0uNTYtMi43OC0yLTUtMmE0LjkgNC45IDAgMCAwLTUgNC43OEMyIDE0IDUgMjIgOCAyMmMxLjI1IDAgMi41LTEuMDYgNC0xLjA2WicsXG4gICAgICBrZXk6ICczczdleGInLFxuICAgIH0sXG4gIF0sXG4gIFsncGF0aCcsIHsgZDogJ00xMCAyYzEgLjUgMiAyIDIgNScsIGtleTogJ2ZjY28yeScgfV0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgQXBwbGVcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1USWdNakF1T1RSak1TNDFJREFnTWk0M05TQXhMakEySURRZ01TNHdOaUF6SURBZ05pMDRJRFl0TVRJdU1qSkJOQzQ1TVNBMExqa3hJREFnTUNBd0lERTNJRFZqTFRJdU1qSWdNQzAwSURFdU5EUXROU0F5TFRFdExqVTJMVEl1TnpndE1pMDFMVEpoTkM0NUlEUXVPU0F3SURBZ01DMDFJRFF1TnpoRE1pQXhOQ0ExSURJeUlEZ2dNakpqTVM0eU5TQXdJREl1TlMweExqQTJJRFF0TVM0d05sb2lJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRURXdJREpqTVNBdU5TQXlJRElnTWlBMUlpQXZQZ284TDNOMlp6NEspIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2FwcGxlXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgQXBwbGUgPSBjcmVhdGVMdWNpZGVJY29uKCdhcHBsZScsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBBcHBsZTtcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgWydyZWN0JywgeyB3aWR0aDogJzIwJywgaGVpZ2h0OiAnNScsIHg6ICcyJywgeTogJzMnLCByeDogJzEnLCBrZXk6ICcxd3AxdTEnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNNCA4djExYTIgMiAwIDAgMCAyIDJoMicsIGtleTogJ3R2d29kaScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00yMCA4djExYTIgMiAwIDAgMS0yIDJoLTInLCBrZXk6ICcxZ2txeGonIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdtOSAxNSAzLTMgMyAzJywga2V5OiAnMXBkMHFjJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTEyIDEydjknLCBrZXk6ICcxOTJteWsnIH1dLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIEFyY2hpdmVSZXN0b3JlXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjbVZqZENCM2FXUjBhRDBpTWpBaUlHaGxhV2RvZEQwaU5TSWdlRDBpTWlJZ2VUMGlNeUlnY25nOUlqRWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRUUWdPSFl4TVdFeUlESWdNQ0F3SURBZ01pQXlhRElpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVEl3SURoMk1URmhNaUF5SURBZ01DQXhMVElnTW1ndE1pSWdMejRLSUNBOGNHRjBhQ0JrUFNKdE9TQXhOU0F6TFRNZ015QXpJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHhNaUF4TW5ZNUlpQXZQZ284TDNOMlp6NEspIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2FyY2hpdmUtcmVzdG9yZVxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IEFyY2hpdmVSZXN0b3JlID0gY3JlYXRlTHVjaWRlSWNvbignYXJjaGl2ZS1yZXN0b3JlJywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IEFyY2hpdmVSZXN0b3JlO1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbJ3JlY3QnLCB7IHdpZHRoOiAnMjAnLCBoZWlnaHQ6ICc1JywgeDogJzInLCB5OiAnMycsIHJ4OiAnMScsIGtleTogJzF3cDF1MScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ000IDh2MTFhMiAyIDAgMCAwIDIgMmgxMmEyIDIgMCAwIDAgMi0yVjgnLCBrZXk6ICcxczgwanAnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdtOS41IDE3IDUtNScsIGtleTogJ25ha2V1NicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ205LjUgMTIgNSA1Jywga2V5OiAnMWhjY3JqJyB9XSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBBcmNoaXZlWFxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y21WamRDQjNhV1IwYUQwaU1qQWlJR2hsYVdkb2REMGlOU0lnZUQwaU1pSWdlVDBpTXlJZ2NuZzlJakVpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVFFnT0hZeE1XRXlJRElnTUNBd0lEQWdNaUF5YURFeVlUSWdNaUF3SURBZ01DQXlMVEpXT0NJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0p0T1M0MUlERTNJRFV0TlNJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0p0T1M0MUlERXlJRFVnTlNJZ0x6NEtQQzl6ZG1jK0NnPT0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2FyY2hpdmUteFxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IEFyY2hpdmVYID0gY3JlYXRlTHVjaWRlSWNvbignYXJjaGl2ZS14JywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IEFyY2hpdmVYO1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbJ3JlY3QnLCB7IHdpZHRoOiAnMjAnLCBoZWlnaHQ6ICc1JywgeDogJzInLCB5OiAnMycsIHJ4OiAnMScsIGtleTogJzF3cDF1MScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ000IDh2MTFhMiAyIDAgMCAwIDIgMmgxMmEyIDIgMCAwIDAgMi0yVjgnLCBrZXk6ICcxczgwanAnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTAgMTJoNCcsIGtleTogJ2E1NmIwcCcgfV0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgQXJjaGl2ZVxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y21WamRDQjNhV1IwYUQwaU1qQWlJR2hsYVdkb2REMGlOU0lnZUQwaU1pSWdlVDBpTXlJZ2NuZzlJakVpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVFFnT0hZeE1XRXlJRElnTUNBd0lEQWdNaUF5YURFeVlUSWdNaUF3SURBZ01DQXlMVEpXT0NJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTVRBZ01USm9OQ0lnTHo0S1BDOXpkbWMrQ2c9PSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvYXJjaGl2ZVxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IEFyY2hpdmUgPSBjcmVhdGVMdWNpZGVJY29uKCdhcmNoaXZlJywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IEFyY2hpdmU7XG4iLCJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ00xOSA5VjZhMiAyIDAgMCAwLTItMkg3YTIgMiAwIDAgMC0yIDJ2MycsIGtleTogJ2lydGlwZCcgfV0sXG4gIFtcbiAgICAncGF0aCcsXG4gICAge1xuICAgICAgZDogJ00zIDE2YTIgMiAwIDAgMCAyIDJoMTRhMiAyIDAgMCAwIDItMnYtNWEyIDIgMCAwIDAtNCAwdjEuNWEuNS41IDAgMCAxLS41LjVoLTlhLjUuNSAwIDAgMS0uNS0uNVYxMWEyIDIgMCAwIDAtNCAweicsXG4gICAgICBrZXk6ICcxcXlodXgnLFxuICAgIH0sXG4gIF0sXG4gIFsncGF0aCcsIHsgZDogJ001IDE4djInLCBrZXk6ICdwcGJ5dW4nIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTkgMTh2MicsIGtleTogJ2d5Nzc4MicgfV0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgQXJtY2hhaXJcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1Ua2dPVlkyWVRJZ01pQXdJREFnTUMweUxUSklOMkV5SURJZ01DQXdJREF0TWlBeWRqTWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRUTWdNVFpoTWlBeUlEQWdNQ0F3SURJZ01tZ3hOR0V5SURJZ01DQXdJREFnTWkweWRpMDFZVElnTWlBd0lEQWdNQzAwSURCMk1TNDFZUzQxTGpVZ01DQXdJREV0TGpVdU5XZ3RPV0V1TlM0MUlEQWdNQ0F4TFM0MUxTNDFWakV4WVRJZ01pQXdJREFnTUMwMElEQjZJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMDFJREU0ZGpJaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRFNUlERTRkaklpSUM4K0Nqd3ZjM1puUGdvPSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvYXJtY2hhaXJcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBBcm1jaGFpciA9IGNyZWF0ZUx1Y2lkZUljb24oJ2FybWNoYWlyJywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IEFybWNoYWlyO1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdNMTUgNUg5Jywga2V5OiAnMXRwM2VkJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTE1IDl2M2g0bC03IDctNy03aDRWOXonLCBrZXk6ICduY2RjNGInIH1dLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIEFycm93QmlnRG93bkRhc2hcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1UVWdOVWc1SWlBdlBnb2dJRHh3WVhSb0lHUTlJazB4TlNBNWRqTm9OR3d0TnlBM0xUY3ROMmcwVmpsNklpQXZQZ284TDNOMlp6NEspIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2Fycm93LWJpZy1kb3duLWRhc2hcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBBcnJvd0JpZ0Rvd25EYXNoID0gY3JlYXRlTHVjaWRlSWNvbignYXJyb3ctYmlnLWRvd24tZGFzaCcsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBBcnJvd0JpZ0Rvd25EYXNoO1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1sncGF0aCcsIHsgZDogJ00xNSA2djZoNGwtNyA3LTctN2g0VjZoNnonLCBrZXk6ICcxdGhheDInIH1dXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIEFycm93QmlnRG93blxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTVRVZ05uWTJhRFJzTFRjZ055MDNMVGRvTkZZMmFEWjZJaUF2UGdvOEwzTjJaejRLKSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9hcnJvdy1iaWctZG93blxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IEFycm93QmlnRG93biA9IGNyZWF0ZUx1Y2lkZUljb24oJ2Fycm93LWJpZy1kb3duJywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IEFycm93QmlnRG93bjtcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTE5IDE1VjknLCBrZXk6ICcxaGNpNWYnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTUgMTVoLTN2NGwtNy03IDctN3Y0aDN2NnonLCBrZXk6ICcxNnRqbmEnIH1dLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIEFycm93QmlnTGVmdERhc2hcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1Ua2dNVFZXT1NJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTVRVZ01UVm9MVE4yTkd3dE55MDNJRGN0TjNZMGFETjJObm9pSUM4K0Nqd3ZjM1puUGdvPSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvYXJyb3ctYmlnLWxlZnQtZGFzaFxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IEFycm93QmlnTGVmdERhc2ggPSBjcmVhdGVMdWNpZGVJY29uKCdhcnJvdy1iaWctbGVmdC1kYXNoJywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IEFycm93QmlnTGVmdERhc2g7XG4iLCJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbWydwYXRoJywgeyBkOiAnTTE4IDE1aC02djRsLTctNyA3LTd2NGg2djZ6Jywga2V5OiAnbGJyZGFrJyB9XV07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBBcnJvd0JpZ0xlZnRcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1UZ2dNVFZvTFRaMk5Hd3ROeTAzSURjdE4zWTBhRFoyTm5vaUlDOCtDand2YzNablBnbz0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2Fycm93LWJpZy1sZWZ0XG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgQXJyb3dCaWdMZWZ0ID0gY3JlYXRlTHVjaWRlSWNvbignYXJyb3ctYmlnLWxlZnQnLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgQXJyb3dCaWdMZWZ0O1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdNNSA5djYnLCBrZXk6ICcxNThqcmwnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNOSA5aDNWNWw3IDctNyA3di00SDlWOXonLCBrZXk6ICcxc2cyeG4nIH1dLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIEFycm93QmlnUmlnaHREYXNoXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5OU0E1ZGpZaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRrZ09XZ3pWalZzTnlBM0xUY2dOM1l0TkVnNVZqbDZJaUF2UGdvOEwzTjJaejRLKSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9hcnJvdy1iaWctcmlnaHQtZGFzaFxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IEFycm93QmlnUmlnaHREYXNoID0gY3JlYXRlTHVjaWRlSWNvbignYXJyb3ctYmlnLXJpZ2h0LWRhc2gnLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgQXJyb3dCaWdSaWdodERhc2g7XG4iLCJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbWydwYXRoJywgeyBkOiAnTTYgOWg2VjVsNyA3LTcgN3YtNEg2Vjl6Jywga2V5OiAnN2Z2dDljJyB9XV07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBBcnJvd0JpZ1JpZ2h0XG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5OaUE1YURaV05XdzNJRGN0TnlBM2RpMDBTRFpXT1hvaUlDOCtDand2YzNablBnbz0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2Fycm93LWJpZy1yaWdodFxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IEFycm93QmlnUmlnaHQgPSBjcmVhdGVMdWNpZGVJY29uKCdhcnJvdy1iaWctcmlnaHQnLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgQXJyb3dCaWdSaWdodDtcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTkgMTloNicsIGtleTogJzQ1NmFtMCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ005IDE1di0zSDVsNy03IDcgN2gtNHYzSDl6Jywga2V5OiAnMXIydXZlJyB9XSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBBcnJvd0JpZ1VwRGFzaFxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOT1NBeE9XZzJJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMDVJREUxZGkwelNEVnNOeTAzSURjZ04yZ3ROSFl6U0RsNklpQXZQZ284TDNOMlp6NEspIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2Fycm93LWJpZy11cC1kYXNoXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgQXJyb3dCaWdVcERhc2ggPSBjcmVhdGVMdWNpZGVJY29uKCdhcnJvdy1iaWctdXAtZGFzaCcsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBBcnJvd0JpZ1VwRGFzaDtcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtbJ3BhdGgnLCB7IGQ6ICdNOSAxOHYtNkg1bDctNyA3IDdoLTR2Nkg5eicsIGtleTogJzF4MDZreCcgfV1dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgQXJyb3dCaWdVcFxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOT1NBeE9IWXROa2cxYkRjdE55QTNJRGRvTFRSMk5rZzVlaUlnTHo0S1BDOXpkbWMrQ2c9PSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvYXJyb3ctYmlnLXVwXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgQXJyb3dCaWdVcCA9IGNyZWF0ZUx1Y2lkZUljb24oJ2Fycm93LWJpZy11cCcsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBBcnJvd0JpZ1VwO1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdtMyAxNiA0IDQgNC00Jywga2V5OiAnMWNvNndqJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTcgMjBWNCcsIGtleTogJzF5b3hlYycgfV0sXG4gIFsncmVjdCcsIHsgeDogJzE1JywgeTogJzQnLCB3aWR0aDogJzQnLCBoZWlnaHQ6ICc2Jywgcnk6ICcyJywga2V5OiAnMWJ3aWNnJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTE3IDIwdi02aC0yJywga2V5OiAnMXFwMXNvJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTE1IDIwaDQnLCBrZXk6ICcxajk2OHAnIH1dLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIEFycm93RG93bjAxXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSnRNeUF4TmlBMElEUWdOQzAwSWlBdlBnb2dJRHh3WVhSb0lHUTlJazAzSURJd1ZqUWlJQzgrQ2lBZ1BISmxZM1FnZUQwaU1UVWlJSGs5SWpRaUlIZHBaSFJvUFNJMElpQm9aV2xuYUhROUlqWWlJSEo1UFNJeUlpQXZQZ29nSUR4d1lYUm9JR1E5SWsweE55QXlNSFl0Tm1ndE1pSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk1UVWdNakJvTkNJZ0x6NEtQQzl6ZG1jK0NnPT0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2Fycm93LWRvd24tMC0xXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgQXJyb3dEb3duMDEgPSBjcmVhdGVMdWNpZGVJY29uKCdhcnJvdy1kb3duLTAtMScsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBBcnJvd0Rvd24wMTtcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnbTMgMTYgNCA0IDQtNCcsIGtleTogJzFjbzZ3aicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ003IDIwVjQnLCBrZXk6ICcxeW94ZWMnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTcgMTBWNGgtMicsIGtleTogJ3pjc3I1eCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xNSAxMGg0Jywga2V5OiAnaWQybGNlJyB9XSxcbiAgWydyZWN0JywgeyB4OiAnMTUnLCB5OiAnMTQnLCB3aWR0aDogJzQnLCBoZWlnaHQ6ICc2Jywgcnk6ICcyJywga2V5OiAnMzN4eWt4JyB9XSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBBcnJvd0Rvd24xMFxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0p0TXlBeE5pQTBJRFFnTkMwMElpQXZQZ29nSUR4d1lYUm9JR1E5SWswM0lESXdWalFpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVEUzSURFd1ZqUm9MVElpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVEUxSURFd2FEUWlJQzgrQ2lBZ1BISmxZM1FnZUQwaU1UVWlJSGs5SWpFMElpQjNhV1IwYUQwaU5DSWdhR1ZwWjJoMFBTSTJJaUJ5ZVQwaU1pSWdMejRLUEM5emRtYytDZz09KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9hcnJvdy1kb3duLTEtMFxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IEFycm93RG93bjEwID0gY3JlYXRlTHVjaWRlSWNvbignYXJyb3ctZG93bi0xLTAnLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgQXJyb3dEb3duMTA7XG4iLCJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ20zIDE2IDQgNCA0LTQnLCBrZXk6ICcxY282d2onIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNNyAyMFY0Jywga2V5OiAnMXlveGVjJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTIwIDhoLTUnLCBrZXk6ICcxdnN5eHMnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTUgMTBWNi41YTIuNSAyLjUgMCAwIDEgNSAwVjEwJywga2V5OiAnYWcxM2JmJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTE1IDE0aDVsLTUgNmg1Jywga2V5OiAndXI1amRnJyB9XSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBBcnJvd0Rvd25BWlxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0p0TXlBeE5pQTBJRFFnTkMwMElpQXZQZ29nSUR4d1lYUm9JR1E5SWswM0lESXdWalFpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVEl3SURob0xUVWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRURTFJREV3VmpZdU5XRXlMalVnTWk0MUlEQWdNQ0F4SURVZ01GWXhNQ0lnTHo0S0lDQThjR0YwYUNCa1BTSk5NVFVnTVRSb05Xd3ROU0EyYURVaUlDOCtDand2YzNablBnbz0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2Fycm93LWRvd24tYS16XG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgQXJyb3dEb3duQVogPSBjcmVhdGVMdWNpZGVJY29uKCdhcnJvdy1kb3duLWEteicsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBBcnJvd0Rvd25BWjtcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTE5IDNINScsIGtleTogJzEyMzZyeCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xMiAyMVY3Jywga2V5OiAnZ2o2ZzUyJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnbTYgMTUgNiA2IDYtNicsIGtleTogJ2gxNXE4OCcgfV0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgQXJyb3dEb3duRnJvbUxpbmVcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1Ua2dNMGcxSWlBdlBnb2dJRHh3WVhSb0lHUTlJazB4TWlBeU1WWTNJaUF2UGdvZ0lEeHdZWFJvSUdROUltMDJJREUxSURZZ05pQTJMVFlpSUM4K0Nqd3ZjM1puUGdvPSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvYXJyb3ctZG93bi1mcm9tLWxpbmVcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBBcnJvd0Rvd25Gcm9tTGluZSA9IGNyZWF0ZUx1Y2lkZUljb24oJ2Fycm93LWRvd24tZnJvbS1saW5lJywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IEFycm93RG93bkZyb21MaW5lO1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdNMTcgNyA3IDE3Jywga2V5OiAnMTV0bW8xJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTE3IDE3SDdWNycsIGtleTogJzFvcmc3eicgfV0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgQXJyb3dEb3duTGVmdFxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTVRjZ055QTNJREUzSWlBdlBnb2dJRHh3WVhSb0lHUTlJazB4TnlBeE4wZzNWamNpSUM4K0Nqd3ZjM1puUGdvPSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvYXJyb3ctZG93bi1sZWZ0XG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgQXJyb3dEb3duTGVmdCA9IGNyZWF0ZUx1Y2lkZUljb24oJ2Fycm93LWRvd24tbGVmdCcsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBBcnJvd0Rvd25MZWZ0O1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdtMyAxNiA0IDQgNC00Jywga2V5OiAnMWNvNndqJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTcgMjBWNCcsIGtleTogJzF5b3hlYycgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xMSA0aDQnLCBrZXk6ICc2ZDdyMzMnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTEgOGg3Jywga2V5OiAnZGp5ZTM0JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTExIDEyaDEwJywga2V5OiAnMTQzOGppJyB9XSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBBcnJvd0Rvd25OYXJyb3dXaWRlXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSnRNeUF4TmlBMElEUWdOQzAwSWlBdlBnb2dJRHh3WVhSb0lHUTlJazAzSURJd1ZqUWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRURXhJRFJvTkNJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTVRFZ09HZzNJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHhNU0F4TW1neE1DSWdMejRLUEM5emRtYytDZz09KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9hcnJvdy1kb3duLW5hcnJvdy13aWRlXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgQXJyb3dEb3duTmFycm93V2lkZSA9IGNyZWF0ZUx1Y2lkZUljb24oJ2Fycm93LWRvd24tbmFycm93LXdpZGUnLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgQXJyb3dEb3duTmFycm93V2lkZTtcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnbTcgNyAxMCAxMCcsIGtleTogJzFmbXlicycgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xNyA3djEwSDcnLCBrZXk6ICc2Zmppa3UnIH1dLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIEFycm93RG93blJpZ2h0XG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSnROeUEzSURFd0lERXdJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHhOeUEzZGpFd1NEY2lJQzgrQ2p3dmMzWm5QZ289KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9hcnJvdy1kb3duLXJpZ2h0XG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgQXJyb3dEb3duUmlnaHQgPSBjcmVhdGVMdWNpZGVJY29uKCdhcnJvdy1kb3duLXJpZ2h0JywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IEFycm93RG93blJpZ2h0O1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdNMTIgMnYxNCcsIGtleTogJ2p5eDR1dCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ20xOSA5LTcgNy03LTcnLCBrZXk6ICcxb2Uzb3knIH1dLFxuICBbJ2NpcmNsZScsIHsgY3g6ICcxMicsIGN5OiAnMjEnLCByOiAnMScsIGtleTogJ28wdWo1dicgfV0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgQXJyb3dEb3duVG9Eb3RcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1USWdNbll4TkNJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0p0TVRrZ09TMDNJRGN0TnkwM0lpQXZQZ29nSUR4amFYSmpiR1VnWTNnOUlqRXlJaUJqZVQwaU1qRWlJSEk5SWpFaUlDOCtDand2YzNablBnbz0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2Fycm93LWRvd24tdG8tZG90XG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgQXJyb3dEb3duVG9Eb3QgPSBjcmVhdGVMdWNpZGVJY29uKCdhcnJvdy1kb3duLXRvLWRvdCcsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBBcnJvd0Rvd25Ub0RvdDtcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTEyIDE3VjMnLCBrZXk6ICcxY3dmeGYnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdtNiAxMSA2IDYgNi02Jywga2V5OiAnMTJpaTJvJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTE5IDIxSDUnLCBrZXk6ICcxNTBqZmwnIH1dLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIEFycm93RG93blRvTGluZVxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTVRJZ01UZFdNeUlnTHo0S0lDQThjR0YwYUNCa1BTSnROaUF4TVNBMklEWWdOaTAySWlBdlBnb2dJRHh3WVhSb0lHUTlJazB4T1NBeU1VZzFJaUF2UGdvOEwzTjJaejRLKSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9hcnJvdy1kb3duLXRvLWxpbmVcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBBcnJvd0Rvd25Ub0xpbmUgPSBjcmVhdGVMdWNpZGVJY29uKCdhcnJvdy1kb3duLXRvLWxpbmUnLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgQXJyb3dEb3duVG9MaW5lO1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdtMyAxNiA0IDQgNC00Jywga2V5OiAnMWNvNndqJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTcgMjBWNCcsIGtleTogJzF5b3hlYycgfV0sXG4gIFsncGF0aCcsIHsgZDogJ20yMSA4LTQtNC00IDQnLCBrZXk6ICcxYzl2N20nIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTcgNHYxNicsIGtleTogJzdkcG91cycgfV0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgQXJyb3dEb3duVXBcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKdE15QXhOaUEwSURRZ05DMDBJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMDNJREl3VmpRaUlDOCtDaUFnUEhCaGRHZ2daRDBpYlRJeElEZ3ROQzAwTFRRZ05DSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk1UY2dOSFl4TmlJZ0x6NEtQQzl6ZG1jK0NnPT0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2Fycm93LWRvd24tdXBcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBBcnJvd0Rvd25VcCA9IGNyZWF0ZUx1Y2lkZUljb24oJ2Fycm93LWRvd24tdXAnLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgQXJyb3dEb3duVXA7XG4iLCJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ20zIDE2IDQgNCA0LTQnLCBrZXk6ICcxY282d2onIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNNyAyMFY0Jywga2V5OiAnMXlveGVjJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTExIDRoMTAnLCBrZXk6ICcxdzg3Z2MnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTEgOGg3Jywga2V5OiAnZGp5ZTM0JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTExIDEyaDQnLCBrZXk6ICdxOHRpaDQnIH1dLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIEFycm93RG93bldpZGVOYXJyb3dcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKdE15QXhOaUEwSURRZ05DMDBJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMDNJREl3VmpRaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRFeElEUm9NVEFpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVEV4SURob055SWdMejRLSUNBOGNHRjBhQ0JrUFNKTk1URWdNVEpvTkNJZ0x6NEtQQzl6ZG1jK0NnPT0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2Fycm93LWRvd24td2lkZS1uYXJyb3dcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBBcnJvd0Rvd25XaWRlTmFycm93ID0gY3JlYXRlTHVjaWRlSWNvbignYXJyb3ctZG93bi13aWRlLW5hcnJvdycsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBBcnJvd0Rvd25XaWRlTmFycm93O1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdtMyAxNiA0IDQgNC00Jywga2V5OiAnMWNvNndqJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTcgNHYxNicsIGtleTogJzFnbGZjeCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xNSA0aDVsLTUgNmg1Jywga2V5OiAnOGFzZGwxJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTE1IDIwdi0zLjVhMi41IDIuNSAwIDAgMSA1IDBWMjAnLCBrZXk6ICdyNmw1Y3onIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMjAgMThoLTUnLCBrZXk6ICcxOGoxcjInIH1dLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIEFycm93RG93blpBXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSnRNeUF4TmlBMElEUWdOQzAwSWlBdlBnb2dJRHh3WVhSb0lHUTlJazAzSURSMk1UWWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRURTFJRFJvTld3dE5TQTJhRFVpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVEUxSURJd2RpMHpMalZoTWk0MUlESXVOU0F3SURBZ01TQTFJREJXTWpBaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRJd0lERTRhQzAxSWlBdlBnbzhMM04yWno0SykgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvYXJyb3ctZG93bi16LWFcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBBcnJvd0Rvd25aQSA9IGNyZWF0ZUx1Y2lkZUljb24oJ2Fycm93LWRvd24tei1hJywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IEFycm93RG93blpBO1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdNMTIgNXYxNCcsIGtleTogJ3M2OTlsZScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ20xOSAxMi03IDctNy03Jywga2V5OiAnMWlkcWplJyB9XSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBBcnJvd0Rvd25cbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1USWdOWFl4TkNJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0p0TVRrZ01USXROeUEzTFRjdE55SWdMejRLUEM5emRtYytDZz09KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9hcnJvdy1kb3duXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgQXJyb3dEb3duID0gY3JlYXRlTHVjaWRlSWNvbignYXJyb3ctZG93bicsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBBcnJvd0Rvd247XG4iLCJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ205IDYtNiA2IDYgNicsIGtleTogJzd2NjNuOScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00zIDEyaDE0Jywga2V5OiAnMTNrNGhpJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTIxIDE5VjUnLCBrZXk6ICdiNGJwbHInIH1dLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIEFycm93TGVmdEZyb21MaW5lXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSnRPU0EyTFRZZ05pQTJJRFlpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVE1nTVRKb01UUWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRUSXhJREU1VmpVaUlDOCtDand2YzNablBnbz0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2Fycm93LWxlZnQtZnJvbS1saW5lXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgQXJyb3dMZWZ0RnJvbUxpbmUgPSBjcmVhdGVMdWNpZGVJY29uKCdhcnJvdy1sZWZ0LWZyb20tbGluZScsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBBcnJvd0xlZnRGcm9tTGluZTtcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTggMyA0IDdsNCA0Jywga2V5OiAnOXJiNndqJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTQgN2gxNicsIGtleTogJzZ0eDhlMycgfV0sXG4gIFsncGF0aCcsIHsgZDogJ20xNiAyMSA0LTQtNC00Jywga2V5OiAnc2l2N2oyJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTIwIDE3SDQnLCBrZXk6ICdoNmwzaHInIH1dLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIEFycm93TGVmdFJpZ2h0XG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5PQ0F6SURRZ04ydzBJRFFpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVFFnTjJneE5pSWdMejRLSUNBOGNHRjBhQ0JrUFNKdE1UWWdNakVnTkMwMExUUXROQ0lnTHo0S0lDQThjR0YwYUNCa1BTSk5NakFnTVRkSU5DSWdMejRLUEM5emRtYytDZz09KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9hcnJvdy1sZWZ0LXJpZ2h0XG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgQXJyb3dMZWZ0UmlnaHQgPSBjcmVhdGVMdWNpZGVJY29uKCdhcnJvdy1sZWZ0LXJpZ2h0JywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IEFycm93TGVmdFJpZ2h0O1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdNMyAxOVY1Jywga2V5OiAncndzeWhiJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnbTEzIDYtNiA2IDYgNicsIGtleTogJzF5aGF6NycgfV0sXG4gIFsncGF0aCcsIHsgZDogJ003IDEyaDE0Jywga2V5OiAndW9pc3J5JyB9XSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBBcnJvd0xlZnRUb0xpbmVcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk15QXhPVlkxSWlBdlBnb2dJRHh3WVhSb0lHUTlJbTB4TXlBMkxUWWdOaUEySURZaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRjZ01USm9NVFFpSUM4K0Nqd3ZjM1puUGdvPSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvYXJyb3ctbGVmdC10by1saW5lXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgQXJyb3dMZWZ0VG9MaW5lID0gY3JlYXRlTHVjaWRlSWNvbignYXJyb3ctbGVmdC10by1saW5lJywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IEFycm93TGVmdFRvTGluZTtcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnbTEyIDE5LTctNyA3LTcnLCBrZXk6ICcxbDcyOW4nIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTkgMTJINScsIGtleTogJ3gzeDB6bCcgfV0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgQXJyb3dMZWZ0XG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSnRNVElnTVRrdE55MDNJRGN0TnlJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTVRrZ01USklOU0lnTHo0S1BDOXpkbWMrQ2c9PSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvYXJyb3ctbGVmdFxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IEFycm93TGVmdCA9IGNyZWF0ZUx1Y2lkZUljb24oJ2Fycm93LWxlZnQnLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgQXJyb3dMZWZ0O1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdtMTYgMyA0IDQtNCA0Jywga2V5OiAnMXgxYzNtJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTIwIDdINCcsIGtleTogJ3pibDBiaScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ204IDIxLTQtNCA0LTQnLCBrZXk6ICdoOW5ja2gnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNNCAxN2gxNicsIGtleTogJ2c0ZDdleScgfV0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgQXJyb3dSaWdodExlZnRcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKdE1UWWdNeUEwSURRdE5DQTBJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHlNQ0EzU0RRaUlDOCtDaUFnUEhCaGRHZ2daRDBpYlRnZ01qRXROQzAwSURRdE5DSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk5DQXhOMmd4TmlJZ0x6NEtQQzl6ZG1jK0NnPT0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2Fycm93LXJpZ2h0LWxlZnRcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBBcnJvd1JpZ2h0TGVmdCA9IGNyZWF0ZUx1Y2lkZUljb24oJ2Fycm93LXJpZ2h0LWxlZnQnLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgQXJyb3dSaWdodExlZnQ7XG4iLCJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ00xNyAxMkgzJywga2V5OiAnOGF3bzA5JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnbTExIDE4IDYtNi02LTYnLCBrZXk6ICc4YzJ5NDMnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMjEgNXYxNCcsIGtleTogJ256ZXR0ZScgfV0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgQXJyb3dSaWdodFRvTGluZVxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTVRjZ01USklNeUlnTHo0S0lDQThjR0YwYUNCa1BTSnRNVEVnTVRnZ05pMDJMVFl0TmlJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTWpFZ05YWXhOQ0lnTHo0S1BDOXpkbWMrQ2c9PSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvYXJyb3ctcmlnaHQtdG8tbGluZVxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IEFycm93UmlnaHRUb0xpbmUgPSBjcmVhdGVMdWNpZGVJY29uKCdhcnJvdy1yaWdodC10by1saW5lJywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IEFycm93UmlnaHRUb0xpbmU7XG4iLCJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ00zIDV2MTQnLCBrZXk6ICcxbnQxOHEnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMjEgMTJINycsIGtleTogJzEzaXBxNScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ20xNSAxOCA2LTYtNi02Jywga2V5OiAnNnR4M3F2JyB9XSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBBcnJvd1JpZ2h0RnJvbUxpbmVcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk15QTFkakUwSWlBdlBnb2dJRHh3WVhSb0lHUTlJazB5TVNBeE1rZzNJaUF2UGdvZ0lEeHdZWFJvSUdROUltMHhOU0F4T0NBMkxUWXROaTAySWlBdlBnbzhMM04yWno0SykgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvYXJyb3ctcmlnaHQtZnJvbS1saW5lXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgQXJyb3dSaWdodEZyb21MaW5lID0gY3JlYXRlTHVjaWRlSWNvbignYXJyb3ctcmlnaHQtZnJvbS1saW5lJywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IEFycm93UmlnaHRGcm9tTGluZTtcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTUgMTJoMTQnLCBrZXk6ICcxYXlzMGgnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdtMTIgNSA3IDctNyA3Jywga2V5OiAneHF1ejRjJyB9XSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBBcnJvd1JpZ2h0XG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5OU0F4TW1neE5DSWdMejRLSUNBOGNHRjBhQ0JrUFNKdE1USWdOU0EzSURjdE55QTNJaUF2UGdvOEwzTjJaejRLKSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9hcnJvdy1yaWdodFxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IEFycm93UmlnaHQgPSBjcmVhdGVMdWNpZGVJY29uKCdhcnJvdy1yaWdodCcsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBBcnJvd1JpZ2h0O1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdtMyA4IDQtNCA0IDQnLCBrZXk6ICcxMXdsN3UnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNNyA0djE2Jywga2V5OiAnMWdsZmN4JyB9XSxcbiAgWydyZWN0JywgeyB4OiAnMTUnLCB5OiAnNCcsIHdpZHRoOiAnNCcsIGhlaWdodDogJzYnLCByeTogJzInLCBrZXk6ICcxYndpY2cnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTcgMjB2LTZoLTInLCBrZXk6ICcxcXAxc28nIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTUgMjBoNCcsIGtleTogJzFqOTY4cCcgfV0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgQXJyb3dVcDAxXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSnRNeUE0SURRdE5DQTBJRFFpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVGNnTkhZeE5pSWdMejRLSUNBOGNtVmpkQ0I0UFNJeE5TSWdlVDBpTkNJZ2QybGtkR2c5SWpRaUlHaGxhV2RvZEQwaU5pSWdjbms5SWpJaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRFM0lESXdkaTAyYUMweUlpQXZQZ29nSUR4d1lYUm9JR1E5SWsweE5TQXlNR2cwSWlBdlBnbzhMM04yWno0SykgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvYXJyb3ctdXAtMC0xXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgQXJyb3dVcDAxID0gY3JlYXRlTHVjaWRlSWNvbignYXJyb3ctdXAtMC0xJywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IEFycm93VXAwMTtcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnbTMgOCA0LTQgNCA0Jywga2V5OiAnMTF3bDd1JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTcgNHYxNicsIGtleTogJzFnbGZjeCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xNyAxMFY0aC0yJywga2V5OiAnemNzcjV4JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTE1IDEwaDQnLCBrZXk6ICdpZDJsY2UnIH1dLFxuICBbJ3JlY3QnLCB7IHg6ICcxNScsIHk6ICcxNCcsIHdpZHRoOiAnNCcsIGhlaWdodDogJzYnLCByeTogJzInLCBrZXk6ICczM3h5a3gnIH1dLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIEFycm93VXAxMFxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0p0TXlBNElEUXROQ0EwSURRaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRjZ05IWXhOaUlnTHo0S0lDQThjR0YwYUNCa1BTSk5NVGNnTVRCV05HZ3RNaUlnTHo0S0lDQThjR0YwYUNCa1BTSk5NVFVnTVRCb05DSWdMejRLSUNBOGNtVmpkQ0I0UFNJeE5TSWdlVDBpTVRRaUlIZHBaSFJvUFNJMElpQm9aV2xuYUhROUlqWWlJSEo1UFNJeUlpQXZQZ284TDNOMlp6NEspIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2Fycm93LXVwLTEtMFxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IEFycm93VXAxMCA9IGNyZWF0ZUx1Y2lkZUljb24oJ2Fycm93LXVwLTEtMCcsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBBcnJvd1VwMTA7XG4iLCJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ20zIDggNC00IDQgNCcsIGtleTogJzExd2w3dScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ003IDR2MTYnLCBrZXk6ICcxZ2xmY3gnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMjAgOGgtNScsIGtleTogJzF2c3l4cycgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xNSAxMFY2LjVhMi41IDIuNSAwIDAgMSA1IDBWMTAnLCBrZXk6ICdhZzEzYmYnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTUgMTRoNWwtNSA2aDUnLCBrZXk6ICd1cjVqZGcnIH1dLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIEFycm93VXBBWlxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0p0TXlBNElEUXROQ0EwSURRaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRjZ05IWXhOaUlnTHo0S0lDQThjR0YwYUNCa1BTSk5NakFnT0dndE5TSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk1UVWdNVEJXTmk0MVlUSXVOU0F5TGpVZ01DQXdJREVnTlNBd1ZqRXdJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHhOU0F4TkdnMWJDMDFJRFpvTlNJZ0x6NEtQQzl6ZG1jK0NnPT0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2Fycm93LXVwLWEtelxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IEFycm93VXBBWiA9IGNyZWF0ZUx1Y2lkZUljb24oJ2Fycm93LXVwLWEteicsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBBcnJvd1VwQVo7XG4iLCJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ20yMSAxNi00IDQtNC00Jywga2V5OiAnZjZxbDdpJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTE3IDIwVjQnLCBrZXk6ICcxZWpoMXYnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdtMyA4IDQtNCA0IDQnLCBrZXk6ICcxMXdsN3UnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNNyA0djE2Jywga2V5OiAnMWdsZmN4JyB9XSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBBcnJvd1VwRG93blxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0p0TWpFZ01UWXROQ0EwTFRRdE5DSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk1UY2dNakJXTkNJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0p0TXlBNElEUXROQ0EwSURRaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRjZ05IWXhOaUlnTHo0S1BDOXpkbWMrQ2c9PSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvYXJyb3ctdXAtZG93blxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IEFycm93VXBEb3duID0gY3JlYXRlTHVjaWRlSWNvbignYXJyb3ctdXAtZG93bicsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBBcnJvd1VwRG93bjtcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnbTUgOSA3LTcgNyA3Jywga2V5OiAnMWh3NWljJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTEyIDE2VjInLCBrZXk6ICd5d29hYmInIH1dLFxuICBbJ2NpcmNsZScsIHsgY3g6ICcxMicsIGN5OiAnMjEnLCByOiAnMScsIGtleTogJ28wdWo1dicgfV0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgQXJyb3dVcEZyb21Eb3RcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKdE5TQTVJRGN0TnlBM0lEY2lJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRURXlJREUyVmpJaUlDOCtDaUFnUEdOcGNtTnNaU0JqZUQwaU1USWlJR041UFNJeU1TSWdjajBpTVNJZ0x6NEtQQzl6ZG1jK0NnPT0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2Fycm93LXVwLWZyb20tZG90XG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgQXJyb3dVcEZyb21Eb3QgPSBjcmVhdGVMdWNpZGVJY29uKCdhcnJvdy11cC1mcm9tLWRvdCcsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBBcnJvd1VwRnJvbURvdDtcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnbTE4IDktNi02LTYgNicsIGtleTogJ2tjdW55aScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xMiAzdjE0Jywga2V5OiAnN2NmM3Y4JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTUgMjFoMTQnLCBrZXk6ICcxMWF3dTMnIH1dLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIEFycm93VXBGcm9tTGluZVxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0p0TVRnZ09TMDJMVFl0TmlBMklpQXZQZ29nSUR4d1lYUm9JR1E5SWsweE1pQXpkakUwSWlBdlBnb2dJRHh3WVhSb0lHUTlJazAxSURJeGFERTBJaUF2UGdvOEwzTjJaejRLKSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9hcnJvdy11cC1mcm9tLWxpbmVcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBBcnJvd1VwRnJvbUxpbmUgPSBjcmVhdGVMdWNpZGVJY29uKCdhcnJvdy11cC1mcm9tLWxpbmUnLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgQXJyb3dVcEZyb21MaW5lO1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdNNyAxN1Y3aDEwJywga2V5OiAnMTFidzkzJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTE3IDE3IDcgNycsIGtleTogJzI3ODZ1dicgfV0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgQXJyb3dVcExlZnRcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk55QXhOMVkzYURFd0lpQXZQZ29nSUR4d1lYUm9JR1E5SWsweE55QXhOeUEzSURjaUlDOCtDand2YzNablBnbz0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2Fycm93LXVwLWxlZnRcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBBcnJvd1VwTGVmdCA9IGNyZWF0ZUx1Y2lkZUljb24oJ2Fycm93LXVwLWxlZnQnLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgQXJyb3dVcExlZnQ7XG4iLCJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ20zIDggNC00IDQgNCcsIGtleTogJzExd2w3dScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ003IDR2MTYnLCBrZXk6ICcxZ2xmY3gnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTEgMTJoNCcsIGtleTogJ3E4dGloNCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xMSAxNmg3Jywga2V5OiAndW9zaXN2JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTExIDIwaDEwJywga2V5OiAnanZ4YmxvJyB9XSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBBcnJvd1VwTmFycm93V2lkZVxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0p0TXlBNElEUXROQ0EwSURRaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRjZ05IWXhOaUlnTHo0S0lDQThjR0YwYUNCa1BTSk5NVEVnTVRKb05DSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk1URWdNVFpvTnlJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTVRFZ01qQm9NVEFpSUM4K0Nqd3ZjM1puUGdvPSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvYXJyb3ctdXAtbmFycm93LXdpZGVcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBBcnJvd1VwTmFycm93V2lkZSA9IGNyZWF0ZUx1Y2lkZUljb24oJ2Fycm93LXVwLW5hcnJvdy13aWRlJywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IEFycm93VXBOYXJyb3dXaWRlO1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdNNyA3aDEwdjEwJywga2V5OiAnMXRpdm45JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTcgMTcgMTcgNycsIGtleTogJzF2a2l6YScgfV0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgQXJyb3dVcFJpZ2h0XG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5OeUEzYURFd2RqRXdJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMDNJREUzSURFM0lEY2lJQzgrQ2p3dmMzWm5QZ289KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9hcnJvdy11cC1yaWdodFxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IEFycm93VXBSaWdodCA9IGNyZWF0ZUx1Y2lkZUljb24oJ2Fycm93LXVwLXJpZ2h0JywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IEFycm93VXBSaWdodDtcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTUgM2gxNCcsIGtleTogJzd1c2lzYycgfV0sXG4gIFsncGF0aCcsIHsgZDogJ20xOCAxMy02LTYtNiA2Jywga2V5OiAnMWtmMW45JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTEyIDd2MTQnLCBrZXk6ICcxYWt5dHMnIH1dLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIEFycm93VXBUb0xpbmVcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk5TQXphREUwSWlBdlBnb2dJRHh3WVhSb0lHUTlJbTB4T0NBeE15MDJMVFl0TmlBMklpQXZQZ29nSUR4d1lYUm9JR1E5SWsweE1pQTNkakUwSWlBdlBnbzhMM04yWno0SykgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvYXJyb3ctdXAtdG8tbGluZVxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IEFycm93VXBUb0xpbmUgPSBjcmVhdGVMdWNpZGVJY29uKCdhcnJvdy11cC10by1saW5lJywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IEFycm93VXBUb0xpbmU7XG4iLCJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ20zIDggNC00IDQgNCcsIGtleTogJzExd2w3dScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ003IDR2MTYnLCBrZXk6ICcxZ2xmY3gnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTEgMTJoMTAnLCBrZXk6ICcxNDM4amknIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTEgMTZoNycsIGtleTogJ3Vvc2lzdicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xMSAyMGg0Jywga2V5OiAnMWtyYzMyJyB9XSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBBcnJvd1VwV2lkZU5hcnJvd1xuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0p0TXlBNElEUXROQ0EwSURRaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRjZ05IWXhOaUlnTHo0S0lDQThjR0YwYUNCa1BTSk5NVEVnTVRKb01UQWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRURXhJREUyYURjaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRFeElESXdhRFFpSUM4K0Nqd3ZjM1puUGdvPSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvYXJyb3ctdXAtd2lkZS1uYXJyb3dcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBBcnJvd1VwV2lkZU5hcnJvdyA9IGNyZWF0ZUx1Y2lkZUljb24oJ2Fycm93LXVwLXdpZGUtbmFycm93JywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IEFycm93VXBXaWRlTmFycm93O1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdtMyA4IDQtNCA0IDQnLCBrZXk6ICcxMXdsN3UnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNNyA0djE2Jywga2V5OiAnMWdsZmN4JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTE1IDRoNWwtNSA2aDUnLCBrZXk6ICc4YXNkbDEnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTUgMjB2LTMuNWEyLjUgMi41IDAgMCAxIDUgMFYyMCcsIGtleTogJ3I2bDVjeicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00yMCAxOGgtNScsIGtleTogJzE4ajFyMicgfV0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgQXJyb3dVcFpBXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSnRNeUE0SURRdE5DQTBJRFFpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVGNnTkhZeE5pSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk1UVWdOR2cxYkMwMUlEWm9OU0lnTHo0S0lDQThjR0YwYUNCa1BTSk5NVFVnTWpCMkxUTXVOV0V5TGpVZ01pNDFJREFnTUNBeElEVWdNRll5TUNJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTWpBZ01UaG9MVFVpSUM4K0Nqd3ZjM1puUGdvPSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvYXJyb3ctdXAtei1hXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgQXJyb3dVcFpBID0gY3JlYXRlTHVjaWRlSWNvbignYXJyb3ctdXAtei1hJywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IEFycm93VXBaQTtcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnbTUgMTIgNy03IDcgNycsIGtleTogJ2hhdjB2ZycgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xMiAxOVY1Jywga2V5OiAneDBtcTlyJyB9XSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBBcnJvd1VwXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSnROU0F4TWlBM0xUY2dOeUEzSWlBdlBnb2dJRHh3WVhSb0lHUTlJazB4TWlBeE9WWTFJaUF2UGdvOEwzTjJaejRLKSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9hcnJvdy11cFxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IEFycm93VXAgPSBjcmVhdGVMdWNpZGVJY29uKCdhcnJvdy11cCcsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBBcnJvd1VwO1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdtNCA2IDMtMyAzIDMnLCBrZXk6ICc5YWlkdzgnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNNyAxN1YzJywga2V5OiAnMTlxeHcxJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnbTE0IDYgMy0zIDMgMycsIGtleTogJzZpeTY4OScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xNyAxN1YzJywga2V5OiAnbzBmbWdpJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTQgMjFoMTYnLCBrZXk6ICcxaDA5Z3onIH1dLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIEFycm93c1VwRnJvbUxpbmVcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKdE5DQTJJRE10TXlBeklETWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRUY2dNVGRXTXlJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0p0TVRRZ05pQXpMVE1nTXlBeklpQXZQZ29nSUR4d1lYUm9JR1E5SWsweE55QXhOMVl6SWlBdlBnb2dJRHh3WVhSb0lHUTlJazAwSURJeGFERTJJaUF2UGdvOEwzTjJaejRLKSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9hcnJvd3MtdXAtZnJvbS1saW5lXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgQXJyb3dzVXBGcm9tTGluZSA9IGNyZWF0ZUx1Y2lkZUljb24oJ2Fycm93cy11cC1mcm9tLWxpbmUnLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgQXJyb3dzVXBGcm9tTGluZTtcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTEyIDZ2MTInLCBrZXk6ICcxdnphNGQnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTcuMTk2IDkgNi44MDQgMTUnLCBrZXk6ICcxYWgzMXonIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdtNi44MDQgOSAxMC4zOTIgNicsIGtleTogJzFiNnB4ZCcgfV0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgQXN0ZXJpc2tcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1USWdObll4TWlJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTVRjdU1UazJJRGtnTmk0NE1EUWdNVFVpSUM4K0NpQWdQSEJoZEdnZ1pEMGliVFl1T0RBMElEa2dNVEF1TXpreUlEWWlJQzgrQ2p3dmMzWm5QZ289KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9hc3Rlcmlza1xuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IEFzdGVyaXNrID0gY3JlYXRlTHVjaWRlSWNvbignYXN0ZXJpc2snLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgQXN0ZXJpc2s7XG4iLCJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbXG4gIFsnY2lyY2xlJywgeyBjeDogJzEyJywgY3k6ICcxMicsIHI6ICc0Jywga2V5OiAnNGV4aXAyJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTE2IDh2NWEzIDMgMCAwIDAgNiAwdi0xYTEwIDEwIDAgMSAwLTQgOCcsIGtleTogJzduODRwMycgfV0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgQXRTaWduXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThZMmx5WTJ4bElHTjRQU0l4TWlJZ1kzazlJakV5SWlCeVBTSTBJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHhOaUE0ZGpWaE15QXpJREFnTUNBd0lEWWdNSFl0TVdFeE1DQXhNQ0F3SURFZ01DMDBJRGdpSUM4K0Nqd3ZjM1puUGdvPSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvYXQtc2lnblxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IEF0U2lnbiA9IGNyZWF0ZUx1Y2lkZUljb24oJ2F0LXNpZ24nLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgQXRTaWduO1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbJ2NpcmNsZScsIHsgY3g6ICcxMicsIGN5OiAnMTInLCByOiAnMScsIGtleTogJzQxaGlsZicgfV0sXG4gIFtcbiAgICAncGF0aCcsXG4gICAge1xuICAgICAgZDogJ00yMC4yIDIwLjJjMi4wNC0yLjAzLjAyLTcuMzYtNC41LTExLjktNC41NC00LjUyLTkuODctNi41NC0xMS45LTQuNS0yLjA0IDIuMDMtLjAyIDcuMzYgNC41IDExLjkgNC41NCA0LjUyIDkuODcgNi41NCAxMS45IDQuNVonLFxuICAgICAga2V5OiAnMWwycGxlJyxcbiAgICB9LFxuICBdLFxuICBbXG4gICAgJ3BhdGgnLFxuICAgIHtcbiAgICAgIGQ6ICdNMTUuNyAxNS43YzQuNTItNC41NCA2LjU0LTkuODcgNC41LTExLjktMi4wMy0yLjA0LTcuMzYtLjAyLTExLjkgNC41LTQuNTIgNC41NC02LjU0IDkuODctNC41IDExLjkgMi4wMyAyLjA0IDcuMzYuMDIgMTEuOS00LjVaJyxcbiAgICAgIGtleTogJzF3YW0wbScsXG4gICAgfSxcbiAgXSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBBdG9tXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThZMmx5WTJ4bElHTjRQU0l4TWlJZ1kzazlJakV5SWlCeVBTSXhJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHlNQzR5SURJd0xqSmpNaTR3TkMweUxqQXpMakF5TFRjdU16WXROQzQxTFRFeExqa3ROQzQxTkMwMExqVXlMVGt1T0RjdE5pNDFOQzB4TVM0NUxUUXVOUzB5TGpBMElESXVNRE10TGpBeUlEY3VNellnTkM0MUlERXhMamtnTkM0MU5DQTBMalV5SURrdU9EY2dOaTQxTkNBeE1TNDVJRFF1TlZvaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRFMUxqY2dNVFV1TjJNMExqVXlMVFF1TlRRZ05pNDFOQzA1TGpnM0lEUXVOUzB4TVM0NUxUSXVNRE10TWk0d05DMDNMak0yTFM0d01pMHhNUzQ1SURRdU5TMDBMalV5SURRdU5UUXROaTQxTkNBNUxqZzNMVFF1TlNBeE1TNDVJREl1TURNZ01pNHdOQ0EzTGpNMkxqQXlJREV4TGprdE5DNDFXaUlnTHo0S1BDOXpkbWMrQ2c9PSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvYXRvbVxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IEF0b20gPSBjcmVhdGVMdWNpZGVJY29uKCdhdG9tJywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IEF0b207XG4iLCJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ00yIDEwdjMnLCBrZXk6ICcxZm5pa2gnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNNiA2djExJywga2V5OiAnMTFzZ3MwJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTEwIDN2MTgnLCBrZXk6ICd5aGwwNGEnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTQgOHY3Jywga2V5OiAnM2Exb3kzJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTE4IDV2MTMnLCBrZXk6ICcxMjN4ZDEnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMjIgMTB2MycsIGtleTogJzE1NGRkZycgfV0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgQXVkaW9MaW5lc1xuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTWlBeE1IWXpJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMDJJRFoyTVRFaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRFd0lETjJNVGdpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVEUwSURoMk55SWdMejRLSUNBOGNHRjBhQ0JrUFNKTk1UZ2dOWFl4TXlJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTWpJZ01UQjJNeUlnTHo0S1BDOXpkbWMrQ2c9PSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvYXVkaW8tbGluZXNcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBBdWRpb0xpbmVzID0gY3JlYXRlTHVjaWRlSWNvbignYXVkaW8tbGluZXMnLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgQXVkaW9MaW5lcztcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgW1xuICAgICdwYXRoJyxcbiAgICB7XG4gICAgICBkOiAnTTIgMTNhMiAyIDAgMCAwIDItMlY3YTIgMiAwIDAgMSA0IDB2MTNhMiAyIDAgMCAwIDQgMFY0YTIgMiAwIDAgMSA0IDB2MTNhMiAyIDAgMCAwIDQgMHYtNGEyIDIgMCAwIDEgMi0yJyxcbiAgICAgIGtleTogJzU3dGM5NicsXG4gICAgfSxcbiAgXSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBBdWRpb1dhdmVmb3JtXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NaUF4TTJFeUlESWdNQ0F3SURBZ01pMHlWamRoTWlBeUlEQWdNQ0F4SURRZ01IWXhNMkV5SURJZ01DQXdJREFnTkNBd1ZqUmhNaUF5SURBZ01DQXhJRFFnTUhZeE0yRXlJRElnTUNBd0lEQWdOQ0F3ZGkwMFlUSWdNaUF3SURBZ01TQXlMVElpSUM4K0Nqd3ZjM1puUGdvPSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvYXVkaW8td2F2ZWZvcm1cbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBBdWRpb1dhdmVmb3JtID0gY3JlYXRlTHVjaWRlSWNvbignYXVkaW8td2F2ZWZvcm0nLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgQXVkaW9XYXZlZm9ybTtcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgW1xuICAgICdwYXRoJyxcbiAgICB7XG4gICAgICBkOiAnbTE1LjQ3NyAxMi44OSAxLjUxNSA4LjUyNmEuNS41IDAgMCAxLS44MS40N2wtMy41OC0yLjY4N2ExIDEgMCAwIDAtMS4xOTcgMGwtMy41ODYgMi42ODZhLjUuNSAwIDAgMS0uODEtLjQ2OWwxLjUxNC04LjUyNicsXG4gICAgICBrZXk6ICcxeWlvdXYnLFxuICAgIH0sXG4gIF0sXG4gIFsnY2lyY2xlJywgeyBjeDogJzEyJywgY3k6ICc4JywgcjogJzYnLCBrZXk6ICcxdnA0N3YnIH1dLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIEF3YXJkXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSnRNVFV1TkRjM0lERXlMamc1SURFdU5URTFJRGd1TlRJMllTNDFMalVnTUNBd0lERXRMamd4TGpRM2JDMHpMalU0TFRJdU5qZzNZVEVnTVNBd0lEQWdNQzB4TGpFNU55QXdiQzB6TGpVNE5pQXlMalk0Tm1FdU5TNDFJREFnTUNBeExTNDRNUzB1TkRZNWJERXVOVEUwTFRndU5USTJJaUF2UGdvZ0lEeGphWEpqYkdVZ1kzZzlJakV5SWlCamVUMGlPQ0lnY2owaU5pSWdMejRLUEM5emRtYytDZz09KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9hd2FyZFxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IEF3YXJkID0gY3JlYXRlTHVjaWRlSWNvbignYXdhcmQnLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgQXdhcmQ7XG4iLCJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ20xNCAxMi04LjM4MSA4LjM4YTEgMSAwIDAgMS0zLjAwMS0zTDExIDknLCBrZXk6ICc1ejkyNTMnIH1dLFxuICBbXG4gICAgJ3BhdGgnLFxuICAgIHtcbiAgICAgIGQ6ICdNMTUgMTUuNWEuNS41IDAgMCAwIC41LjVBNi41IDYuNSAwIDAgMCAyMiA5LjVhLjUuNSAwIDAgMC0uNS0uNWgtMS42NzJhMiAyIDAgMCAxLTEuNDE0LS41ODZsLTUuMDYyLTUuMDYyYTEuMjA1IDEuMjA1IDAgMCAwLTEuNzA0IDBMOS4zNTIgNS42NDhhMS4yMDUgMS4yMDUgMCAwIDAgMCAxLjcwNGw1LjA2MiA1LjA2MkEyIDIgMCAwIDEgMTUgMTMuODI4eicsXG4gICAgICBrZXk6ICcxOXprbHEnLFxuICAgIH0sXG4gIF0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgQXhlXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSnRNVFFnTVRJdE9DNHpPREVnT0M0ek9HRXhJREVnTUNBd0lERXRNeTR3TURFdE0wd3hNU0E1SWlBdlBnb2dJRHh3WVhSb0lHUTlJazB4TlNBeE5TNDFZUzQxTGpVZ01DQXdJREFnTGpVdU5VRTJMalVnTmk0MUlEQWdNQ0F3SURJeUlEa3VOV0V1TlM0MUlEQWdNQ0F3TFM0MUxTNDFhQzB4TGpZM01tRXlJRElnTUNBd0lERXRNUzQwTVRRdExqVTRObXd0TlM0d05qSXROUzR3TmpKaE1TNHlNRFVnTVM0eU1EVWdNQ0F3SURBdE1TNDNNRFFnTUV3NUxqTTFNaUExTGpZME9HRXhMakl3TlNBeExqSXdOU0F3SURBZ01DQXdJREV1TnpBMGJEVXVNRFl5SURVdU1EWXlRVElnTWlBd0lEQWdNU0F4TlNBeE15NDRNamg2SWlBdlBnbzhMM04yWno0SykgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvYXhlXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgQXhlID0gY3JlYXRlTHVjaWRlSWNvbignYXhlJywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IEF4ZTtcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTEzLjUgMTAuNSAxNSA5Jywga2V5OiAnMW5zeHZtJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTQgNHYxNWExIDEgMCAwIDAgMSAxaDE1Jywga2V5OiAnMXc2bGtkJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTQuMjkzIDE5LjcwNyA2IDE4Jywga2V5OiAnM2cxcDhjJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnbTkgMTUgMS41LTEuNScsIGtleTogJzF4ZmJlcycgfV0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgQXhpczNkXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NVE11TlNBeE1DNDFJREUxSURraUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRRZ05IWXhOV0V4SURFZ01DQXdJREFnTVNBeGFERTFJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMDBMakk1TXlBeE9TNDNNRGNnTmlBeE9DSWdMejRLSUNBOGNHRjBhQ0JrUFNKdE9TQXhOU0F4TGpVdE1TNDFJaUF2UGdvOEwzTjJaejRLKSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9heGlzLTNkXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgQXhpczNkID0gY3JlYXRlTHVjaWRlSWNvbignYXhpcy0zZCcsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBBeGlzM2Q7XG4iLCJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ00xMCAxNmMuNS4zIDEuMi41IDIgLjVzMS41LS4yIDItLjUnLCBrZXk6ICcxdTdodGQnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTUgMTJoLjAxJywga2V5OiAnMWs4eXB0JyB9XSxcbiAgW1xuICAgICdwYXRoJyxcbiAgICB7XG4gICAgICBkOiAnTTE5LjM4IDYuODEzQTkgOSAwIDAgMSAyMC44IDEwLjJhMiAyIDAgMCAxIDAgMy42IDkgOSAwIDAgMS0xNy42IDAgMiAyIDAgMCAxIDAtMy42QTkgOSAwIDAgMSAxMiAzYzIgMCAzLjUgMS4xIDMuNSAyLjVzLS45IDIuNS0yIDIuNWMtLjggMC0xLjUtLjQtMS41LTEnLFxuICAgICAga2V5OiAnMTF4aDd4JyxcbiAgICB9LFxuICBdLFxuICBbJ3BhdGgnLCB7IGQ6ICdNOSAxMmguMDEnLCBrZXk6ICcxNTd1azInIH1dLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIEJhYnlcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1UQWdNVFpqTGpVdU15QXhMakl1TlNBeUlDNDFjekV1TlMwdU1pQXlMUzQxSWlBdlBnb2dJRHh3WVhSb0lHUTlJazB4TlNBeE1tZ3VNREVpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVEU1TGpNNElEWXVPREV6UVRrZ09TQXdJREFnTVNBeU1DNDRJREV3TGpKaE1pQXlJREFnTUNBeElEQWdNeTQySURrZ09TQXdJREFnTVMweE55NDJJREFnTWlBeUlEQWdNQ0F4SURBdE15NDJRVGtnT1NBd0lEQWdNU0F4TWlBell6SWdNQ0F6TGpVZ01TNHhJRE11TlNBeUxqVnpMUzQ1SURJdU5TMHlJREl1TldNdExqZ2dNQzB4TGpVdExqUXRNUzQxTFRFaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRrZ01USm9MakF4SWlBdlBnbzhMM04yWno0SykgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvYmFieVxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IEJhYnkgPSBjcmVhdGVMdWNpZGVJY29uKCdiYWJ5JywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IEJhYnk7XG4iLCJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbXG4gIFtcbiAgICAncGF0aCcsXG4gICAgeyBkOiAnTTQgMTBhNCA0IDAgMCAxIDQtNGg4YTQgNCAwIDAgMSA0IDR2MTBhMiAyIDAgMCAxLTIgMkg2YTIgMiAwIDAgMS0yLTJ6Jywga2V5OiAnMW9sMGxtJyB9LFxuICBdLFxuICBbJ3BhdGgnLCB7IGQ6ICdNOCAxMGg4Jywga2V5OiAnYzd1ejR1JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTggMThoOCcsIGtleTogJzFubzJiMScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ004IDIydi02YTIgMiAwIDAgMSAyLTJoNGEyIDIgMCAwIDEgMiAydjYnLCBrZXk6ICcxZnI2ZG8nIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNOSA2VjRhMiAyIDAgMCAxIDItMmgyYTIgMiAwIDAgMSAyIDJ2MicsIGtleTogJ2Rvbm0yMScgfV0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgQmFja3BhY2tcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk5DQXhNR0UwSURRZ01DQXdJREVnTkMwMGFEaGhOQ0EwSURBZ01DQXhJRFFnTkhZeE1HRXlJRElnTUNBd0lERXRNaUF5U0RaaE1pQXlJREFnTUNBeExUSXRNbm9pSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVGdnTVRCb09DSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk9DQXhPR2c0SWlBdlBnb2dJRHh3WVhSb0lHUTlJazA0SURJeWRpMDJZVElnTWlBd0lEQWdNU0F5TFRKb05HRXlJRElnTUNBd0lERWdNaUF5ZGpZaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRrZ05sWTBZVElnTWlBd0lEQWdNU0F5TFRKb01tRXlJRElnTUNBd0lERWdNaUF5ZGpJaUlDOCtDand2YzNablBnbz0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2JhY2twYWNrXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgQmFja3BhY2sgPSBjcmVhdGVMdWNpZGVJY29uKCdiYWNrcGFjaycsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBCYWNrcGFjaztcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgW1xuICAgICdwYXRoJyxcbiAgICB7XG4gICAgICBkOiAnTTMuODUgOC42MmE0IDQgMCAwIDEgNC43OC00Ljc3IDQgNCAwIDAgMSA2Ljc0IDAgNCA0IDAgMCAxIDQuNzggNC43OCA0IDQgMCAwIDEgMCA2Ljc0IDQgNCAwIDAgMS00Ljc3IDQuNzggNCA0IDAgMCAxLTYuNzUgMCA0IDQgMCAwIDEtNC43OC00Ljc3IDQgNCAwIDAgMSAwLTYuNzZaJyxcbiAgICAgIGtleTogJzNjMjMzNicsXG4gICAgfSxcbiAgXSxcbiAgWydsaW5lJywgeyB4MTogJzEyJywgeDI6ICcxMicsIHkxOiAnOCcsIHkyOiAnMTInLCBrZXk6ICcxcGtldWgnIH1dLFxuICBbJ2xpbmUnLCB7IHgxOiAnMTInLCB4MjogJzEyLjAxJywgeTE6ICcxNicsIHkyOiAnMTYnLCBrZXk6ICc0ZGZxOTAnIH1dLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIEJhZGdlQWxlcnRcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk15NDROU0E0TGpZeVlUUWdOQ0F3SURBZ01TQTBMamM0TFRRdU56Y2dOQ0EwSURBZ01DQXhJRFl1TnpRZ01DQTBJRFFnTUNBd0lERWdOQzQzT0NBMExqYzRJRFFnTkNBd0lEQWdNU0F3SURZdU56UWdOQ0EwSURBZ01DQXhMVFF1TnpjZ05DNDNPQ0EwSURRZ01DQXdJREV0Tmk0M05TQXdJRFFnTkNBd0lEQWdNUzAwTGpjNExUUXVOemNnTkNBMElEQWdNQ0F4SURBdE5pNDNObG9pSUM4K0NpQWdQR3hwYm1VZ2VERTlJakV5SWlCNE1qMGlNVElpSUhreFBTSTRJaUI1TWowaU1USWlJQzgrQ2lBZ1BHeHBibVVnZURFOUlqRXlJaUI0TWowaU1USXVNREVpSUhreFBTSXhOaUlnZVRJOUlqRTJJaUF2UGdvOEwzTjJaejRLKSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9iYWRnZS1hbGVydFxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IEJhZGdlQWxlcnQgPSBjcmVhdGVMdWNpZGVJY29uKCdiYWRnZS1hbGVydCcsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBCYWRnZUFsZXJ0O1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbXG4gICAgJ3BhdGgnLFxuICAgIHtcbiAgICAgIGQ6ICdNMy44NSA4LjYyYTQgNCAwIDAgMSA0Ljc4LTQuNzcgNCA0IDAgMCAxIDYuNzQgMCA0IDQgMCAwIDEgNC43OCA0Ljc4IDQgNCAwIDAgMSAwIDYuNzQgNCA0IDAgMCAxLTQuNzcgNC43OCA0IDQgMCAwIDEtNi43NSAwIDQgNCAwIDAgMS00Ljc4LTQuNzcgNCA0IDAgMCAxIDAtNi43NlonLFxuICAgICAga2V5OiAnM2MyMzM2JyxcbiAgICB9LFxuICBdLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTIgN3YxMCcsIGtleTogJ2pzcHFkdycgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xNS40IDEwYTQgNCAwIDEgMCAwIDQnLCBrZXk6ICcyZXF0eDgnIH1dLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIEJhZGdlQ2VudFxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTXk0NE5TQTRMall5WVRRZ05DQXdJREFnTVNBMExqYzRMVFF1TnpjZ05DQTBJREFnTUNBeElEWXVOelFnTUNBMElEUWdNQ0F3SURFZ05DNDNPQ0EwTGpjNElEUWdOQ0F3SURBZ01TQXdJRFl1TnpRZ05DQTBJREFnTUNBeExUUXVOemNnTkM0M09DQTBJRFFnTUNBd0lERXROaTQzTlNBd0lEUWdOQ0F3SURBZ01TMDBMamM0TFRRdU56Y2dOQ0EwSURBZ01DQXhJREF0Tmk0M05sb2lJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRURXlJRGQyTVRBaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRFMUxqUWdNVEJoTkNBMElEQWdNU0F3SURBZ05DSWdMejRLUEM5emRtYytDZz09KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9iYWRnZS1jZW50XG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgQmFkZ2VDZW50ID0gY3JlYXRlTHVjaWRlSWNvbignYmFkZ2UtY2VudCcsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBCYWRnZUNlbnQ7XG4iLCJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbXG4gIFtcbiAgICAncGF0aCcsXG4gICAge1xuICAgICAgZDogJ00zLjg1IDguNjJhNCA0IDAgMCAxIDQuNzgtNC43NyA0IDQgMCAwIDEgNi43NCAwIDQgNCAwIDAgMSA0Ljc4IDQuNzggNCA0IDAgMCAxIDAgNi43NCA0IDQgMCAwIDEtNC43NyA0Ljc4IDQgNCAwIDAgMS02Ljc1IDAgNCA0IDAgMCAxLTQuNzgtNC43NyA0IDQgMCAwIDEgMC02Ljc2WicsXG4gICAgICBrZXk6ICczYzIzMzYnLFxuICAgIH0sXG4gIF0sXG4gIFsncGF0aCcsIHsgZDogJ205IDEyIDIgMiA0LTQnLCBrZXk6ICdkem1tNzQnIH1dLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIEJhZGdlQ2hlY2tcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk15NDROU0E0TGpZeVlUUWdOQ0F3SURBZ01TQTBMamM0TFRRdU56Y2dOQ0EwSURBZ01DQXhJRFl1TnpRZ01DQTBJRFFnTUNBd0lERWdOQzQzT0NBMExqYzRJRFFnTkNBd0lEQWdNU0F3SURZdU56UWdOQ0EwSURBZ01DQXhMVFF1TnpjZ05DNDNPQ0EwSURRZ01DQXdJREV0Tmk0M05TQXdJRFFnTkNBd0lEQWdNUzAwTGpjNExUUXVOemNnTkNBMElEQWdNQ0F4SURBdE5pNDNObG9pSUM4K0NpQWdQSEJoZEdnZ1pEMGliVGtnTVRJZ01pQXlJRFF0TkNJZ0x6NEtQQzl6ZG1jK0NnPT0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2JhZGdlLWNoZWNrXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgQmFkZ2VDaGVjayA9IGNyZWF0ZUx1Y2lkZUljb24oJ2JhZGdlLWNoZWNrJywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IEJhZGdlQ2hlY2s7XG4iLCJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbXG4gIFtcbiAgICAncGF0aCcsXG4gICAge1xuICAgICAgZDogJ00zLjg1IDguNjJhNCA0IDAgMCAxIDQuNzgtNC43NyA0IDQgMCAwIDEgNi43NCAwIDQgNCAwIDAgMSA0Ljc4IDQuNzggNCA0IDAgMCAxIDAgNi43NCA0IDQgMCAwIDEtNC43NyA0Ljc4IDQgNCAwIDAgMS02Ljc1IDAgNCA0IDAgMCAxLTQuNzgtNC43NyA0IDQgMCAwIDEgMC02Ljc2WicsXG4gICAgICBrZXk6ICczYzIzMzYnLFxuICAgIH0sXG4gIF0sXG4gIFsncGF0aCcsIHsgZDogJ00xNiA4aC02YTIgMiAwIDEgMCAwIDRoNGEyIDIgMCAxIDEgMCA0SDgnLCBrZXk6ICcxaDRwZXQnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTIgMThWNicsIGtleTogJ3pxcHhxNScgfV0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgQmFkZ2VEb2xsYXJTaWduXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NeTQ0TlNBNExqWXlZVFFnTkNBd0lEQWdNU0EwTGpjNExUUXVOemNnTkNBMElEQWdNQ0F4SURZdU56UWdNQ0EwSURRZ01DQXdJREVnTkM0M09DQTBMamM0SURRZ05DQXdJREFnTVNBd0lEWXVOelFnTkNBMElEQWdNQ0F4TFRRdU56Y2dOQzQzT0NBMElEUWdNQ0F3SURFdE5pNDNOU0F3SURRZ05DQXdJREFnTVMwMExqYzRMVFF1TnpjZ05DQTBJREFnTUNBeElEQXROaTQzTmxvaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRFMklEaG9MVFpoTWlBeUlEQWdNU0F3SURBZ05HZzBZVElnTWlBd0lERWdNU0F3SURSSU9DSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk1USWdNVGhXTmlJZ0x6NEtQQzl6ZG1jK0NnPT0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2JhZGdlLWRvbGxhci1zaWduXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgQmFkZ2VEb2xsYXJTaWduID0gY3JlYXRlTHVjaWRlSWNvbignYmFkZ2UtZG9sbGFyLXNpZ24nLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgQmFkZ2VEb2xsYXJTaWduO1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbXG4gICAgJ3BhdGgnLFxuICAgIHtcbiAgICAgIGQ6ICdNMy44NSA4LjYyYTQgNCAwIDAgMSA0Ljc4LTQuNzcgNCA0IDAgMCAxIDYuNzQgMCA0IDQgMCAwIDEgNC43OCA0Ljc4IDQgNCAwIDAgMSAwIDYuNzQgNCA0IDAgMCAxLTQuNzcgNC43OCA0IDQgMCAwIDEtNi43NSAwIDQgNCAwIDAgMS00Ljc4LTQuNzcgNCA0IDAgMCAxIDAtNi43NlonLFxuICAgICAga2V5OiAnM2MyMzM2JyxcbiAgICB9LFxuICBdLFxuICBbJ3BhdGgnLCB7IGQ6ICdNNyAxMmg1Jywga2V5OiAnZ2JscndlJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTE1IDkuNGE0IDQgMCAxIDAgMCA1LjInLCBrZXk6ICcxbWFrbWInIH1dLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIEJhZGdlRXVyb1xuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTXk0NE5TQTRMall5WVRRZ05DQXdJREFnTVNBMExqYzRMVFF1TnpjZ05DQTBJREFnTUNBeElEWXVOelFnTUNBMElEUWdNQ0F3SURFZ05DNDNPQ0EwTGpjNElEUWdOQ0F3SURBZ01TQXdJRFl1TnpRZ05DQTBJREFnTUNBeExUUXVOemNnTkM0M09DQTBJRFFnTUNBd0lERXROaTQzTlNBd0lEUWdOQ0F3SURBZ01TMDBMamM0TFRRdU56Y2dOQ0EwSURBZ01DQXhJREF0Tmk0M05sb2lJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRUY2dNVEpvTlNJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTVRVZ09TNDBZVFFnTkNBd0lERWdNQ0F3SURVdU1pSWdMejRLUEM5emRtYytDZz09KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9iYWRnZS1ldXJvXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgQmFkZ2VFdXJvID0gY3JlYXRlTHVjaWRlSWNvbignYmFkZ2UtZXVybycsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBCYWRnZUV1cm87XG4iLCJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbXG4gIFtcbiAgICAncGF0aCcsXG4gICAge1xuICAgICAgZDogJ00zLjg1IDguNjJhNCA0IDAgMCAxIDQuNzgtNC43NyA0IDQgMCAwIDEgNi43NCAwIDQgNCAwIDAgMSA0Ljc4IDQuNzggNCA0IDAgMCAxIDAgNi43NCA0IDQgMCAwIDEtNC43NyA0Ljc4IDQgNCAwIDAgMS02Ljc1IDAgNCA0IDAgMCAxLTQuNzgtNC43NyA0IDQgMCAwIDEgMC02Ljc2WicsXG4gICAgICBrZXk6ICczYzIzMzYnLFxuICAgIH0sXG4gIF0sXG4gIFsncGF0aCcsIHsgZDogJ004IDhoOCcsIGtleTogJzFiaXMwdCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ004IDEyaDgnLCBrZXk6ICcxd2N5ZXYnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdtMTMgMTctNS0xaDFhNCA0IDAgMCAwIDAtOCcsIGtleTogJ251MmJ3YScgfV0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgQmFkZ2VJbmRpYW5SdXBlZVxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTXk0NE5TQTRMall5WVRRZ05DQXdJREFnTVNBMExqYzRMVFF1TnpjZ05DQTBJREFnTUNBeElEWXVOelFnTUNBMElEUWdNQ0F3SURFZ05DNDNPQ0EwTGpjNElEUWdOQ0F3SURBZ01TQXdJRFl1TnpRZ05DQTBJREFnTUNBeExUUXVOemNnTkM0M09DQTBJRFFnTUNBd0lERXROaTQzTlNBd0lEUWdOQ0F3SURBZ01TMDBMamM0TFRRdU56Y2dOQ0EwSURBZ01DQXhJREF0Tmk0M05sb2lJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRUZ2dPR2c0SWlBdlBnb2dJRHh3WVhSb0lHUTlJazA0SURFeWFEZ2lJQzgrQ2lBZ1BIQmhkR2dnWkQwaWJURXpJREUzTFRVdE1XZ3hZVFFnTkNBd0lEQWdNQ0F3TFRnaUlDOCtDand2YzNablBnbz0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2JhZGdlLWluZGlhbi1ydXBlZVxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IEJhZGdlSW5kaWFuUnVwZWUgPSBjcmVhdGVMdWNpZGVJY29uKCdiYWRnZS1pbmRpYW4tcnVwZWUnLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgQmFkZ2VJbmRpYW5SdXBlZTtcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgW1xuICAgICdwYXRoJyxcbiAgICB7XG4gICAgICBkOiAnTTMuODUgOC42MmE0IDQgMCAwIDEgNC43OC00Ljc3IDQgNCAwIDAgMSA2Ljc0IDAgNCA0IDAgMCAxIDQuNzggNC43OCA0IDQgMCAwIDEgMCA2Ljc0IDQgNCAwIDAgMS00Ljc3IDQuNzggNCA0IDAgMCAxLTYuNzUgMCA0IDQgMCAwIDEtNC43OC00Ljc3IDQgNCAwIDAgMSAwLTYuNzZaJyxcbiAgICAgIGtleTogJzNjMjMzNicsXG4gICAgfSxcbiAgXSxcbiAgWydsaW5lJywgeyB4MTogJzEyJywgeDI6ICcxMicsIHkxOiAnMTYnLCB5MjogJzEyJywga2V5OiAnMXkxeWIxJyB9XSxcbiAgWydsaW5lJywgeyB4MTogJzEyJywgeDI6ICcxMi4wMScsIHkxOiAnOCcsIHkyOiAnOCcsIGtleTogJzExMHd5aycgfV0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgQmFkZ2VJbmZvXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NeTQ0TlNBNExqWXlZVFFnTkNBd0lEQWdNU0EwTGpjNExUUXVOemNnTkNBMElEQWdNQ0F4SURZdU56UWdNQ0EwSURRZ01DQXdJREVnTkM0M09DQTBMamM0SURRZ05DQXdJREFnTVNBd0lEWXVOelFnTkNBMElEQWdNQ0F4TFRRdU56Y2dOQzQzT0NBMElEUWdNQ0F3SURFdE5pNDNOU0F3SURRZ05DQXdJREFnTVMwMExqYzRMVFF1TnpjZ05DQTBJREFnTUNBeElEQXROaTQzTmxvaUlDOCtDaUFnUEd4cGJtVWdlREU5SWpFeUlpQjRNajBpTVRJaUlIa3hQU0l4TmlJZ2VUSTlJakV5SWlBdlBnb2dJRHhzYVc1bElIZ3hQU0l4TWlJZ2VESTlJakV5TGpBeElpQjVNVDBpT0NJZ2VUSTlJamdpSUM4K0Nqd3ZjM1puUGdvPSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvYmFkZ2UtaW5mb1xuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IEJhZGdlSW5mbyA9IGNyZWF0ZUx1Y2lkZUljb24oJ2JhZGdlLWluZm8nLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgQmFkZ2VJbmZvO1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbXG4gICAgJ3BhdGgnLFxuICAgIHtcbiAgICAgIGQ6ICdNMy44NSA4LjYyYTQgNCAwIDAgMSA0Ljc4LTQuNzcgNCA0IDAgMCAxIDYuNzQgMCA0IDQgMCAwIDEgNC43OCA0Ljc4IDQgNCAwIDAgMSAwIDYuNzQgNCA0IDAgMCAxLTQuNzcgNC43OCA0IDQgMCAwIDEtNi43NSAwIDQgNCAwIDAgMS00Ljc4LTQuNzcgNCA0IDAgMCAxIDAtNi43NlonLFxuICAgICAga2V5OiAnM2MyMzM2JyxcbiAgICB9LFxuICBdLFxuICBbJ3BhdGgnLCB7IGQ6ICdtOSA4IDMgM3Y3Jywga2V5OiAnMTd5YWR4JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnbTEyIDExIDMtMycsIGtleTogJ3A0Y2ZxMScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ005IDEyaDYnLCBrZXk6ICcxYzUyY3EnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNOSAxNmg2Jywga2V5OiAnOHdpbXQzJyB9XSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBCYWRnZUphcGFuZXNlWWVuXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NeTQ0TlNBNExqWXlZVFFnTkNBd0lEQWdNU0EwTGpjNExUUXVOemNnTkNBMElEQWdNQ0F4SURZdU56UWdNQ0EwSURRZ01DQXdJREVnTkM0M09DQTBMamM0SURRZ05DQXdJREFnTVNBd0lEWXVOelFnTkNBMElEQWdNQ0F4TFRRdU56Y2dOQzQzT0NBMElEUWdNQ0F3SURFdE5pNDNOU0F3SURRZ05DQXdJREFnTVMwMExqYzRMVFF1TnpjZ05DQTBJREFnTUNBeElEQXROaTQzTmxvaUlDOCtDaUFnUEhCaGRHZ2daRDBpYlRrZ09DQXpJRE4yTnlJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0p0TVRJZ01URWdNeTB6SWlBdlBnb2dJRHh3WVhSb0lHUTlJazA1SURFeWFEWWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRUa2dNVFpvTmlJZ0x6NEtQQzl6ZG1jK0NnPT0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2JhZGdlLWphcGFuZXNlLXllblxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IEJhZGdlSmFwYW5lc2VZZW4gPSBjcmVhdGVMdWNpZGVJY29uKCdiYWRnZS1qYXBhbmVzZS15ZW4nLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgQmFkZ2VKYXBhbmVzZVllbjtcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgW1xuICAgICdwYXRoJyxcbiAgICB7XG4gICAgICBkOiAnTTMuODUgOC42MmE0IDQgMCAwIDEgNC43OC00Ljc3IDQgNCAwIDAgMSA2Ljc0IDAgNCA0IDAgMCAxIDQuNzggNC43OCA0IDQgMCAwIDEgMCA2Ljc0IDQgNCAwIDAgMS00Ljc3IDQuNzggNCA0IDAgMCAxLTYuNzUgMCA0IDQgMCAwIDEtNC43OC00Ljc3IDQgNCAwIDAgMSAwLTYuNzZaJyxcbiAgICAgIGtleTogJzNjMjMzNicsXG4gICAgfSxcbiAgXSxcbiAgWydsaW5lJywgeyB4MTogJzgnLCB4MjogJzE2JywgeTE6ICcxMicsIHkyOiAnMTInLCBrZXk6ICcxam9uY3QnIH1dLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIEJhZGdlTWludXNcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk15NDROU0E0TGpZeVlUUWdOQ0F3SURBZ01TQTBMamM0TFRRdU56Y2dOQ0EwSURBZ01DQXhJRFl1TnpRZ01DQTBJRFFnTUNBd0lERWdOQzQzT0NBMExqYzRJRFFnTkNBd0lEQWdNU0F3SURZdU56UWdOQ0EwSURBZ01DQXhMVFF1TnpjZ05DNDNPQ0EwSURRZ01DQXdJREV0Tmk0M05TQXdJRFFnTkNBd0lEQWdNUzAwTGpjNExUUXVOemNnTkNBMElEQWdNQ0F4SURBdE5pNDNObG9pSUM4K0NpQWdQR3hwYm1VZ2VERTlJamdpSUhneVBTSXhOaUlnZVRFOUlqRXlJaUI1TWowaU1USWlJQzgrQ2p3dmMzWm5QZ289KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9iYWRnZS1taW51c1xuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IEJhZGdlTWludXMgPSBjcmVhdGVMdWNpZGVJY29uKCdiYWRnZS1taW51cycsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBCYWRnZU1pbnVzO1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbXG4gICAgJ3BhdGgnLFxuICAgIHtcbiAgICAgIGQ6ICdNMy44NSA4LjYyYTQgNCAwIDAgMSA0Ljc4LTQuNzcgNCA0IDAgMCAxIDYuNzQgMCA0IDQgMCAwIDEgNC43OCA0Ljc4IDQgNCAwIDAgMSAwIDYuNzQgNCA0IDAgMCAxLTQuNzcgNC43OCA0IDQgMCAwIDEtNi43NSAwIDQgNCAwIDAgMS00Ljc4LTQuNzcgNCA0IDAgMCAxIDAtNi43NlonLFxuICAgICAga2V5OiAnM2MyMzM2JyxcbiAgICB9LFxuICBdLFxuICBbJ3BhdGgnLCB7IGQ6ICdtMTUgOS02IDYnLCBrZXk6ICcxdXpodnInIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNOSA5aC4wMScsIGtleTogJzFxNW1lNicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xNSAxNWguMDEnLCBrZXk6ICdscWJwM2snIH1dLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIEJhZGdlUGVyY2VudFxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTXk0NE5TQTRMall5WVRRZ05DQXdJREFnTVNBMExqYzRMVFF1TnpjZ05DQTBJREFnTUNBeElEWXVOelFnTUNBMElEUWdNQ0F3SURFZ05DNDNPQ0EwTGpjNElEUWdOQ0F3SURBZ01TQXdJRFl1TnpRZ05DQTBJREFnTUNBeExUUXVOemNnTkM0M09DQTBJRFFnTUNBd0lERXROaTQzTlNBd0lEUWdOQ0F3SURBZ01TMDBMamM0TFRRdU56Y2dOQ0EwSURBZ01DQXhJREF0Tmk0M05sb2lJQzgrQ2lBZ1BIQmhkR2dnWkQwaWJURTFJRGt0TmlBMklpQXZQZ29nSUR4d1lYUm9JR1E5SWswNUlEbG9MakF4SWlBdlBnb2dJRHh3WVhSb0lHUTlJazB4TlNBeE5XZ3VNREVpSUM4K0Nqd3ZjM1puUGdvPSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvYmFkZ2UtcGVyY2VudFxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IEJhZGdlUGVyY2VudCA9IGNyZWF0ZUx1Y2lkZUljb24oJ2JhZGdlLXBlcmNlbnQnLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgQmFkZ2VQZXJjZW50O1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbXG4gICAgJ3BhdGgnLFxuICAgIHtcbiAgICAgIGQ6ICdNMy44NSA4LjYyYTQgNCAwIDAgMSA0Ljc4LTQuNzcgNCA0IDAgMCAxIDYuNzQgMCA0IDQgMCAwIDEgNC43OCA0Ljc4IDQgNCAwIDAgMSAwIDYuNzQgNCA0IDAgMCAxLTQuNzcgNC43OCA0IDQgMCAwIDEtNi43NSAwIDQgNCAwIDAgMS00Ljc4LTQuNzcgNCA0IDAgMCAxIDAtNi43NlonLFxuICAgICAga2V5OiAnM2MyMzM2JyxcbiAgICB9LFxuICBdLFxuICBbJ2xpbmUnLCB7IHgxOiAnMTInLCB4MjogJzEyJywgeTE6ICc4JywgeTI6ICcxNicsIGtleTogJzEwcDU2cScgfV0sXG4gIFsnbGluZScsIHsgeDE6ICc4JywgeDI6ICcxNicsIHkxOiAnMTInLCB5MjogJzEyJywga2V5OiAnMWpvbmN0JyB9XSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBCYWRnZVBsdXNcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk15NDROU0E0TGpZeVlUUWdOQ0F3SURBZ01TQTBMamM0TFRRdU56Y2dOQ0EwSURBZ01DQXhJRFl1TnpRZ01DQTBJRFFnTUNBd0lERWdOQzQzT0NBMExqYzRJRFFnTkNBd0lEQWdNU0F3SURZdU56UWdOQ0EwSURBZ01DQXhMVFF1TnpjZ05DNDNPQ0EwSURRZ01DQXdJREV0Tmk0M05TQXdJRFFnTkNBd0lEQWdNUzAwTGpjNExUUXVOemNnTkNBMElEQWdNQ0F4SURBdE5pNDNObG9pSUM4K0NpQWdQR3hwYm1VZ2VERTlJakV5SWlCNE1qMGlNVElpSUhreFBTSTRJaUI1TWowaU1UWWlJQzgrQ2lBZ1BHeHBibVVnZURFOUlqZ2lJSGd5UFNJeE5pSWdlVEU5SWpFeUlpQjVNajBpTVRJaUlDOCtDand2YzNablBnbz0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2JhZGdlLXBsdXNcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBCYWRnZVBsdXMgPSBjcmVhdGVMdWNpZGVJY29uKCdiYWRnZS1wbHVzJywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IEJhZGdlUGx1cztcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgW1xuICAgICdwYXRoJyxcbiAgICB7XG4gICAgICBkOiAnTTMuODUgOC42MmE0IDQgMCAwIDEgNC43OC00Ljc3IDQgNCAwIDAgMSA2Ljc0IDAgNCA0IDAgMCAxIDQuNzggNC43OCA0IDQgMCAwIDEgMCA2Ljc0IDQgNCAwIDAgMS00Ljc3IDQuNzggNCA0IDAgMCAxLTYuNzUgMCA0IDQgMCAwIDEtNC43OC00Ljc3IDQgNCAwIDAgMSAwLTYuNzZaJyxcbiAgICAgIGtleTogJzNjMjMzNicsXG4gICAgfSxcbiAgXSxcbiAgWydwYXRoJywgeyBkOiAnTTggMTJoNCcsIGtleTogJ3F6NnkxYycgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xMCAxNlY5LjVhMi41IDIuNSAwIDAgMSA1IDAnLCBrZXk6ICczbWxiamsnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNOCAxNmg3Jywga2V5OiAnc2JlZHNuJyB9XSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBCYWRnZVBvdW5kU3RlcmxpbmdcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk15NDROU0E0TGpZeVlUUWdOQ0F3SURBZ01TQTBMamM0TFRRdU56Y2dOQ0EwSURBZ01DQXhJRFl1TnpRZ01DQTBJRFFnTUNBd0lERWdOQzQzT0NBMExqYzRJRFFnTkNBd0lEQWdNU0F3SURZdU56UWdOQ0EwSURBZ01DQXhMVFF1TnpjZ05DNDNPQ0EwSURRZ01DQXdJREV0Tmk0M05TQXdJRFFnTkNBd0lEQWdNUzAwTGpjNExUUXVOemNnTkNBMElEQWdNQ0F4SURBdE5pNDNObG9pSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVGdnTVRKb05DSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk1UQWdNVFpXT1M0MVlUSXVOU0F5TGpVZ01DQXdJREVnTlNBd0lpQXZQZ29nSUR4d1lYUm9JR1E5SWswNElERTJhRGNpSUM4K0Nqd3ZjM1puUGdvPSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvYmFkZ2UtcG91bmQtc3RlcmxpbmdcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBCYWRnZVBvdW5kU3RlcmxpbmcgPSBjcmVhdGVMdWNpZGVJY29uKCdiYWRnZS1wb3VuZC1zdGVybGluZycsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBCYWRnZVBvdW5kU3Rlcmxpbmc7XG4iLCJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbXG4gIFtcbiAgICAncGF0aCcsXG4gICAge1xuICAgICAgZDogJ00zLjg1IDguNjJhNCA0IDAgMCAxIDQuNzgtNC43NyA0IDQgMCAwIDEgNi43NCAwIDQgNCAwIDAgMSA0Ljc4IDQuNzggNCA0IDAgMCAxIDAgNi43NCA0IDQgMCAwIDEtNC43NyA0Ljc4IDQgNCAwIDAgMS02Ljc1IDAgNCA0IDAgMCAxLTQuNzgtNC43NyA0IDQgMCAwIDEgMC02Ljc2WicsXG4gICAgICBrZXk6ICczYzIzMzYnLFxuICAgIH0sXG4gIF0sXG4gIFsncGF0aCcsIHsgZDogJ005LjA5IDlhMyAzIDAgMCAxIDUuODMgMWMwIDItMyAzLTMgMycsIGtleTogJzF1NzczcycgfV0sXG4gIFsnbGluZScsIHsgeDE6ICcxMicsIHgyOiAnMTIuMDEnLCB5MTogJzE3JywgeTI6ICcxNycsIGtleTogJ2lvM2Y4aycgfV0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgQmFkZ2VRdWVzdGlvbk1hcmtcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk15NDROU0E0TGpZeVlUUWdOQ0F3SURBZ01TQTBMamM0TFRRdU56Y2dOQ0EwSURBZ01DQXhJRFl1TnpRZ01DQTBJRFFnTUNBd0lERWdOQzQzT0NBMExqYzRJRFFnTkNBd0lEQWdNU0F3SURZdU56UWdOQ0EwSURBZ01DQXhMVFF1TnpjZ05DNDNPQ0EwSURRZ01DQXdJREV0Tmk0M05TQXdJRFFnTkNBd0lEQWdNUzAwTGpjNExUUXVOemNnTkNBMElEQWdNQ0F4SURBdE5pNDNObG9pSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVGt1TURrZ09XRXpJRE1nTUNBd0lERWdOUzQ0TXlBeFl6QWdNaTB6SURNdE15QXpJaUF2UGdvZ0lEeHNhVzVsSUhneFBTSXhNaUlnZURJOUlqRXlMakF4SWlCNU1UMGlNVGNpSUhreVBTSXhOeUlnTHo0S1BDOXpkbWMrQ2c9PSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvYmFkZ2UtcXVlc3Rpb24tbWFya1xuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IEJhZGdlUXVlc3Rpb25NYXJrID0gY3JlYXRlTHVjaWRlSWNvbignYmFkZ2UtcXVlc3Rpb24tbWFyaycsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBCYWRnZVF1ZXN0aW9uTWFyaztcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgW1xuICAgICdwYXRoJyxcbiAgICB7XG4gICAgICBkOiAnTTMuODUgOC42MmE0IDQgMCAwIDEgNC43OC00Ljc3IDQgNCAwIDAgMSA2Ljc0IDAgNCA0IDAgMCAxIDQuNzggNC43OCA0IDQgMCAwIDEgMCA2Ljc0IDQgNCAwIDAgMS00Ljc3IDQuNzggNCA0IDAgMCAxLTYuNzUgMCA0IDQgMCAwIDEtNC43OC00Ljc3IDQgNCAwIDAgMSAwLTYuNzZaJyxcbiAgICAgIGtleTogJzNjMjMzNicsXG4gICAgfSxcbiAgXSxcbiAgWydwYXRoJywgeyBkOiAnTTkgMTZoNScsIGtleTogJzFzeWl5dycgfV0sXG4gIFsncGF0aCcsIHsgZDogJ005IDEyaDVhMiAyIDAgMSAwIDAtNGgtM3Y5Jywga2V5OiAnMWdlOWMxJyB9XSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBCYWRnZVJ1c3NpYW5SdWJsZVxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTXk0NE5TQTRMall5WVRRZ05DQXdJREFnTVNBMExqYzRMVFF1TnpjZ05DQTBJREFnTUNBeElEWXVOelFnTUNBMElEUWdNQ0F3SURFZ05DNDNPQ0EwTGpjNElEUWdOQ0F3SURBZ01TQXdJRFl1TnpRZ05DQTBJREFnTUNBeExUUXVOemNnTkM0M09DQTBJRFFnTUNBd0lERXROaTQzTlNBd0lEUWdOQ0F3SURBZ01TMDBMamM0TFRRdU56Y2dOQ0EwSURBZ01DQXhJREF0Tmk0M05sb2lJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRUa2dNVFpvTlNJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOT1NBeE1tZzFZVElnTWlBd0lERWdNQ0F3TFRSb0xUTjJPU0lnTHo0S1BDOXpkbWMrQ2c9PSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvYmFkZ2UtcnVzc2lhbi1ydWJsZVxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IEJhZGdlUnVzc2lhblJ1YmxlID0gY3JlYXRlTHVjaWRlSWNvbignYmFkZ2UtcnVzc2lhbi1ydWJsZScsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBCYWRnZVJ1c3NpYW5SdWJsZTtcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgW1xuICAgICdwYXRoJyxcbiAgICB7XG4gICAgICBkOiAnTTMuODUgOC42MmE0IDQgMCAwIDEgNC43OC00Ljc3IDQgNCAwIDAgMSA2Ljc0IDAgNCA0IDAgMCAxIDQuNzggNC43OCA0IDQgMCAwIDEgMCA2Ljc0IDQgNCAwIDAgMS00Ljc3IDQuNzggNCA0IDAgMCAxLTYuNzUgMCA0IDQgMCAwIDEtNC43OC00Ljc3IDQgNCAwIDAgMSAwLTYuNzZaJyxcbiAgICAgIGtleTogJzNjMjMzNicsXG4gICAgfSxcbiAgXSxcbiAgWydwYXRoJywgeyBkOiAnTTExIDE3VjhoNCcsIGtleTogJzFiZnE2eScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xMSAxMmgzJywga2V5OiAnMmVxbmZ6JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTkgMTZoNCcsIGtleTogJzFza2YzYScgfV0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgQmFkZ2VTd2lzc0ZyYW5jXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NeTQ0TlNBNExqWXlZVFFnTkNBd0lEQWdNU0EwTGpjNExUUXVOemNnTkNBMElEQWdNQ0F4SURZdU56UWdNQ0EwSURRZ01DQXdJREVnTkM0M09DQTBMamM0SURRZ05DQXdJREFnTVNBd0lEWXVOelFnTkNBMElEQWdNQ0F4TFRRdU56Y2dOQzQzT0NBMElEUWdNQ0F3SURFdE5pNDNOU0F3SURRZ05DQXdJREFnTVMwMExqYzRMVFF1TnpjZ05DQTBJREFnTUNBeElEQXROaTQzTmxvaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRFeElERTNWamhvTkNJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTVRFZ01USm9NeUlnTHo0S0lDQThjR0YwYUNCa1BTSk5PU0F4Tm1nMElpQXZQZ284TDNOMlp6NEspIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2JhZGdlLXN3aXNzLWZyYW5jXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgQmFkZ2VTd2lzc0ZyYW5jID0gY3JlYXRlTHVjaWRlSWNvbignYmFkZ2Utc3dpc3MtZnJhbmMnLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgQmFkZ2VTd2lzc0ZyYW5jO1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbXG4gICAgJ3BhdGgnLFxuICAgIHtcbiAgICAgIGQ6ICdNMy44NSA4LjYyYTQgNCAwIDAgMSA0Ljc4LTQuNzcgNCA0IDAgMCAxIDYuNzQgMCA0IDQgMCAwIDEgNC43OCA0Ljc4IDQgNCAwIDAgMSAwIDYuNzQgNCA0IDAgMCAxLTQuNzcgNC43OCA0IDQgMCAwIDEtNi43NSAwIDQgNCAwIDAgMS00Ljc4LTQuNzcgNCA0IDAgMCAxIDAtNi43NlonLFxuICAgICAga2V5OiAnM2MyMzM2JyxcbiAgICB9LFxuICBdLFxuICBbJ2xpbmUnLCB7IHgxOiAnMTUnLCB4MjogJzknLCB5MTogJzknLCB5MjogJzE1Jywga2V5OiAnZjdkam52JyB9XSxcbiAgWydsaW5lJywgeyB4MTogJzknLCB4MjogJzE1JywgeTE6ICc5JywgeTI6ICcxNScsIGtleTogJzFzaHN5OCcgfV0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgQmFkZ2VYXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NeTQ0TlNBNExqWXlZVFFnTkNBd0lEQWdNU0EwTGpjNExUUXVOemNnTkNBMElEQWdNQ0F4SURZdU56UWdNQ0EwSURRZ01DQXdJREVnTkM0M09DQTBMamM0SURRZ05DQXdJREFnTVNBd0lEWXVOelFnTkNBMElEQWdNQ0F4TFRRdU56Y2dOQzQzT0NBMElEUWdNQ0F3SURFdE5pNDNOU0F3SURRZ05DQXdJREFnTVMwMExqYzRMVFF1TnpjZ05DQTBJREFnTUNBeElEQXROaTQzTmxvaUlDOCtDaUFnUEd4cGJtVWdlREU5SWpFMUlpQjRNajBpT1NJZ2VURTlJamtpSUhreVBTSXhOU0lnTHo0S0lDQThiR2x1WlNCNE1UMGlPU0lnZURJOUlqRTFJaUI1TVQwaU9TSWdlVEk5SWpFMUlpQXZQZ284TDNOMlp6NEspIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2JhZGdlLXhcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBCYWRnZVggPSBjcmVhdGVMdWNpZGVJY29uKCdiYWRnZS14JywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IEJhZGdlWDtcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgW1xuICAgICdwYXRoJyxcbiAgICB7XG4gICAgICBkOiAnTTMuODUgOC42MmE0IDQgMCAwIDEgNC43OC00Ljc3IDQgNCAwIDAgMSA2Ljc0IDAgNCA0IDAgMCAxIDQuNzggNC43OCA0IDQgMCAwIDEgMCA2Ljc0IDQgNCAwIDAgMS00Ljc3IDQuNzggNCA0IDAgMCAxLTYuNzUgMCA0IDQgMCAwIDEtNC43OC00Ljc3IDQgNCAwIDAgMSAwLTYuNzZaJyxcbiAgICAgIGtleTogJzNjMjMzNicsXG4gICAgfSxcbiAgXSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBCYWRnZVxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTXk0NE5TQTRMall5WVRRZ05DQXdJREFnTVNBMExqYzRMVFF1TnpjZ05DQTBJREFnTUNBeElEWXVOelFnTUNBMElEUWdNQ0F3SURFZ05DNDNPQ0EwTGpjNElEUWdOQ0F3SURBZ01TQXdJRFl1TnpRZ05DQTBJREFnTUNBeExUUXVOemNnTkM0M09DQTBJRFFnTUNBd0lERXROaTQzTlNBd0lEUWdOQ0F3SURBZ01TMDBMamM0TFRRdU56Y2dOQ0EwSURBZ01DQXhJREF0Tmk0M05sb2lJQzgrQ2p3dmMzWm5QZ289KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9iYWRnZVxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IEJhZGdlID0gY3JlYXRlTHVjaWRlSWNvbignYmFkZ2UnLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgQmFkZ2U7XG4iLCJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ00yMiAxOEg2YTIgMiAwIDAgMS0yLTJWN2EyIDIgMCAwIDAtMi0yJywga2V5OiAnNGlyZzJvJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTE3IDE0VjRhMiAyIDAgMCAwLTItMmgtMWEyIDIgMCAwIDAtMiAydjEwJywga2V5OiAnMTRmY3l4JyB9XSxcbiAgWydyZWN0JywgeyB3aWR0aDogJzEzJywgaGVpZ2h0OiAnOCcsIHg6ICc4JywgeTogJzYnLCByeDogJzEnLCBrZXk6ICdvNm9paXMnIH1dLFxuICBbJ2NpcmNsZScsIHsgY3g6ICcxOCcsIGN5OiAnMjAnLCByOiAnMicsIGtleTogJ3Q5OTg1bicgfV0sXG4gIFsnY2lyY2xlJywgeyBjeDogJzknLCBjeTogJzIwJywgcjogJzInLCBrZXk6ICdlNXY4MmonIH1dLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIEJhZ2dhZ2VDbGFpbVxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTWpJZ01UaElObUV5SURJZ01DQXdJREV0TWkweVZqZGhNaUF5SURBZ01DQXdMVEl0TWlJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTVRjZ01UUldOR0V5SURJZ01DQXdJREF0TWkweWFDMHhZVElnTWlBd0lEQWdNQzB5SURKMk1UQWlJQzgrQ2lBZ1BISmxZM1FnZDJsa2RHZzlJakV6SWlCb1pXbG5hSFE5SWpnaUlIZzlJamdpSUhrOUlqWWlJSEo0UFNJeElpQXZQZ29nSUR4amFYSmpiR1VnWTNnOUlqRTRJaUJqZVQwaU1qQWlJSEk5SWpJaUlDOCtDaUFnUEdOcGNtTnNaU0JqZUQwaU9TSWdZM2s5SWpJd0lpQnlQU0l5SWlBdlBnbzhMM04yWno0SykgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvYmFnZ2FnZS1jbGFpbVxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IEJhZ2dhZ2VDbGFpbSA9IGNyZWF0ZUx1Y2lkZUljb24oJ2JhZ2dhZ2UtY2xhaW0nLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgQmFnZ2FnZUNsYWltO1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbJ2NpcmNsZScsIHsgY3g6ICcxMicsIGN5OiAnMTInLCByOiAnMTAnLCBrZXk6ICcxbWdsYXknIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdtNC45IDQuOSAxNC4yIDE0LjInLCBrZXk6ICcxbTVsaXUnIH1dLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIEJhblxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4WTJseVkyeGxJR040UFNJeE1pSWdZM2s5SWpFeUlpQnlQU0l4TUNJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0p0TkM0NUlEUXVPU0F4TkM0eUlERTBMaklpSUM4K0Nqd3ZjM1puUGdvPSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvYmFuXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgQmFuID0gY3JlYXRlTHVjaWRlSWNvbignYmFuJywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IEJhbjtcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTQgMTNjMy41LTIgOC0yIDEwIDJhNS41IDUuNSAwIDAgMSA4IDUnLCBrZXk6ICcxY3NjaXQnIH1dLFxuICBbXG4gICAgJ3BhdGgnLFxuICAgIHtcbiAgICAgIGQ6ICdNNS4xNSAxNy44OWM1LjUyLTEuNTIgOC42NS02Ljg5IDctMTJDMTEuNTUgNCAxMS41IDIgMTMgMmMzLjIyIDAgNSA1LjUgNSA4IDAgNi41LTQuMiAxMi0xMC40OSAxMkM1LjExIDIyIDIgMjIgMiAyMGMwLTEuNSAxLjE0LTEuNTUgMy4xNS0yLjExWicsXG4gICAgICBrZXk6ICcxeTFuYnYnLFxuICAgIH0sXG4gIF0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgQmFuYW5hXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5OQ0F4TTJNekxqVXRNaUE0TFRJZ01UQWdNbUUxTGpVZ05TNDFJREFnTUNBeElEZ2dOU0lnTHo0S0lDQThjR0YwYUNCa1BTSk5OUzR4TlNBeE55NDRPV00xTGpVeUxURXVOVElnT0M0Mk5TMDJMamc1SURjdE1USkRNVEV1TlRVZ05DQXhNUzQxSURJZ01UTWdNbU16TGpJeUlEQWdOU0ExTGpVZ05TQTRJREFnTmk0MUxUUXVNaUF4TWkweE1DNDBPU0F4TWtNMUxqRXhJREl5SURJZ01qSWdNaUF5TUdNd0xURXVOU0F4TGpFMExURXVOVFVnTXk0eE5TMHlMakV4V2lJZ0x6NEtQQzl6ZG1jK0NnPT0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2JhbmFuYVxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IEJhbmFuYSA9IGNyZWF0ZUx1Y2lkZUljb24oJ2JhbmFuYScsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBCYW5hbmE7XG4iLCJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ00xMCAxMC4wMWguMDEnLCBrZXk6ICcxZTl4aTcnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTAgMTQuMDFoLjAxJywga2V5OiAnYWMyM2J2JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTE0IDEwLjAxaC4wMScsIGtleTogJzJ3ZnJ2ZicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xNCAxNC4wMWguMDEnLCBrZXk6ICc4dHc4eW4nIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTggNnYxMS41Jywga2V5OiAnZGtiaWRoJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTYgNnYxMicsIGtleTogJ3ZrYzc5ZScgfV0sXG4gIFsncmVjdCcsIHsgeDogJzInLCB5OiAnNicsIHdpZHRoOiAnMjAnLCBoZWlnaHQ6ICcxMicsIHJ4OiAnMicsIGtleTogJzF3cG5oMicgfV0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgQmFuZGFnZVxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTVRBZ01UQXVNREZvTGpBeElpQXZQZ29nSUR4d1lYUm9JR1E5SWsweE1DQXhOQzR3TVdndU1ERWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRURTBJREV3TGpBeGFDNHdNU0lnTHo0S0lDQThjR0YwYUNCa1BTSk5NVFFnTVRRdU1ERm9MakF4SWlBdlBnb2dJRHh3WVhSb0lHUTlJazB4T0NBMmRqRXhMalVpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVFlnTm5ZeE1pSWdMejRLSUNBOGNtVmpkQ0I0UFNJeUlpQjVQU0kySWlCM2FXUjBhRDBpTWpBaUlHaGxhV2RvZEQwaU1USWlJSEo0UFNJeUlpQXZQZ284TDNOMlp6NEspIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2JhbmRhZ2VcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBCYW5kYWdlID0gY3JlYXRlTHVjaWRlSWNvbignYmFuZGFnZScsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBCYW5kYWdlO1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdNMTIgMThINGEyIDIgMCAwIDEtMi0yVjhhMiAyIDAgMCAxIDItMmgxNmEyIDIgMCAwIDEgMiAydjUnLCBrZXk6ICd4NmN2NHUnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdtMTYgMTkgMyAzIDMtMycsIGtleTogJzFpYnV4MCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xOCAxMmguMDEnLCBrZXk6ICd5am5ldDYnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTkgMTZ2NicsIGtleTogJ3RkZHQzcycgfV0sXG4gIFsncGF0aCcsIHsgZDogJ002IDEyaC4wMScsIGtleTogJ2MycmxvbCcgfV0sXG4gIFsnY2lyY2xlJywgeyBjeDogJzEyJywgY3k6ICcxMicsIHI6ICcyJywga2V5OiAnMWM5cDc4JyB9XSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBCYW5rbm90ZUFycm93RG93blxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTVRJZ01UaElOR0V5SURJZ01DQXdJREV0TWkweVZqaGhNaUF5SURBZ01DQXhJREl0TW1neE5tRXlJRElnTUNBd0lERWdNaUF5ZGpVaUlDOCtDaUFnUEhCaGRHZ2daRDBpYlRFMklERTVJRE1nTXlBekxUTWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRURTRJREV5YUM0d01TSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk1Ua2dNVFoyTmlJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTmlBeE1tZ3VNREVpSUM4K0NpQWdQR05wY21Oc1pTQmplRDBpTVRJaUlHTjVQU0l4TWlJZ2NqMGlNaUlnTHo0S1BDOXpkbWMrQ2c9PSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvYmFua25vdGUtYXJyb3ctZG93blxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IEJhbmtub3RlQXJyb3dEb3duID0gY3JlYXRlTHVjaWRlSWNvbignYmFua25vdGUtYXJyb3ctZG93bicsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBCYW5rbm90ZUFycm93RG93bjtcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTEyIDE4SDRhMiAyIDAgMCAxLTItMlY4YTIgMiAwIDAgMSAyLTJoMTZhMiAyIDAgMCAxIDIgMnY1Jywga2V5OiAneDZjdjR1JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTE4IDEyaC4wMScsIGtleTogJ3lqbmV0NicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xOSAyMnYtNicsIGtleTogJ3FobWl3aScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ20yMiAxOS0zLTMtMyAzJywga2V5OiAncm42YmcyJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTYgMTJoLjAxJywga2V5OiAnYzJybG9sJyB9XSxcbiAgWydjaXJjbGUnLCB7IGN4OiAnMTInLCBjeTogJzEyJywgcjogJzInLCBrZXk6ICcxYzlwNzgnIH1dLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIEJhbmtub3RlQXJyb3dVcFxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTVRJZ01UaElOR0V5SURJZ01DQXdJREV0TWkweVZqaGhNaUF5SURBZ01DQXhJREl0TW1neE5tRXlJRElnTUNBd0lERWdNaUF5ZGpVaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRFNElERXlhQzR3TVNJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTVRrZ01qSjJMVFlpSUM4K0NpQWdQSEJoZEdnZ1pEMGliVEl5SURFNUxUTXRNeTB6SURNaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRZZ01USm9MakF4SWlBdlBnb2dJRHhqYVhKamJHVWdZM2c5SWpFeUlpQmplVDBpTVRJaUlISTlJaklpSUM4K0Nqd3ZjM1puUGdvPSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvYmFua25vdGUtYXJyb3ctdXBcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBCYW5rbm90ZUFycm93VXAgPSBjcmVhdGVMdWNpZGVJY29uKCdiYW5rbm90ZS1hcnJvdy11cCcsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBCYW5rbm90ZUFycm93VXA7XG4iLCJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ00xMyAxOEg0YTIgMiAwIDAgMS0yLTJWOGEyIDIgMCAwIDEgMi0yaDE2YTIgMiAwIDAgMSAyIDJ2NScsIGtleTogJzE2bmliNicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ20xNyAxNyA1IDUnLCBrZXk6ICdwN291czcnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTggMTJoLjAxJywga2V5OiAneWpuZXQ2JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnbTIyIDE3LTUgNScsIGtleTogJ2dxbm12MCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ002IDEyaC4wMScsIGtleTogJ2MycmxvbCcgfV0sXG4gIFsnY2lyY2xlJywgeyBjeDogJzEyJywgY3k6ICcxMicsIHI6ICcyJywga2V5OiAnMWM5cDc4JyB9XSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBCYW5rbm90ZVhcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1UTWdNVGhJTkdFeUlESWdNQ0F3SURFdE1pMHlWamhoTWlBeUlEQWdNQ0F4SURJdE1tZ3hObUV5SURJZ01DQXdJREVnTWlBeWRqVWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaWJURTNJREUzSURVZ05TSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk1UZ2dNVEpvTGpBeElpQXZQZ29nSUR4d1lYUm9JR1E5SW0weU1pQXhOeTAxSURVaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRZZ01USm9MakF4SWlBdlBnb2dJRHhqYVhKamJHVWdZM2c5SWpFeUlpQmplVDBpTVRJaUlISTlJaklpSUM4K0Nqd3ZjM1puUGdvPSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvYmFua25vdGUteFxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IEJhbmtub3RlWCA9IGNyZWF0ZUx1Y2lkZUljb24oJ2Jhbmtub3RlLXgnLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgQmFua25vdGVYO1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdNMyA1djE0Jywga2V5OiAnMW50MThxJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTggNXYxNCcsIGtleTogJzF5YnJrdicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xMiA1djE0Jywga2V5OiAnczY5OWxlJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTE3IDV2MTQnLCBrZXk6ICd5Y2p5aGonIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMjEgNXYxNCcsIGtleTogJ256ZXR0ZScgfV0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgQmFyY29kZVxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTXlBMWRqRTBJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMDRJRFYyTVRRaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRFeUlEVjJNVFFpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVEUzSURWMk1UUWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRUSXhJRFYyTVRRaUlDOCtDand2YzNablBnbz0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2JhcmNvZGVcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBCYXJjb2RlID0gY3JlYXRlTHVjaWRlSWNvbignYmFyY29kZScsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBCYXJjb2RlO1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbJ3JlY3QnLCB7IHdpZHRoOiAnMjAnLCBoZWlnaHQ6ICcxMicsIHg6ICcyJywgeTogJzYnLCByeDogJzInLCBrZXk6ICc5bHUzZzYnIH1dLFxuICBbJ2NpcmNsZScsIHsgY3g6ICcxMicsIGN5OiAnMTInLCByOiAnMicsIGtleTogJzFjOXA3OCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ002IDEyaC4wMU0xOCAxMmguMDEnLCBrZXk6ICcxMTN6a3gnIH1dLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIEJhbmtub3RlXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjbVZqZENCM2FXUjBhRDBpTWpBaUlHaGxhV2RvZEQwaU1USWlJSGc5SWpJaUlIazlJallpSUhKNFBTSXlJaUF2UGdvZ0lEeGphWEpqYkdVZ1kzZzlJakV5SWlCamVUMGlNVElpSUhJOUlqSWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRUWWdNVEpvTGpBeFRURTRJREV5YUM0d01TSWdMejRLUEM5emRtYytDZz09KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9iYW5rbm90ZVxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IEJhbmtub3RlID0gY3JlYXRlTHVjaWRlSWNvbignYmFua25vdGUnLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgQmFua25vdGU7XG4iLCJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ00xMCAzYTQxIDQxIDAgMCAwIDAgMTgnLCBrZXk6ICcxcWNuemInIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTQgM2E0MSA0MSAwIDAgMSAwIDE4Jywga2V5OiAnNTQ3dmQ0JyB9XSxcbiAgW1xuICAgICdwYXRoJyxcbiAgICB7XG4gICAgICBkOiAnTTE3IDNhMiAyIDAgMCAxIDEuNjguOTIgMTUuMjUgMTUuMjUgMCAwIDEgMCAxNi4xNkEyIDIgMCAwIDEgMTcgMjFIN2EyIDIgMCAwIDEtMS42OC0uOTIgMTUuMjUgMTUuMjUgMCAwIDEgMC0xNi4xNkEyIDIgMCAwIDEgNyAzeicsXG4gICAgICBrZXk6ICcxd2VweXknLFxuICAgIH0sXG4gIF0sXG4gIFsncGF0aCcsIHsgZDogJ00zLjg0IDE3aDE2LjMyJywga2V5OiAnMXdoOTgxJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTMuODQgN2gxNi4zMicsIGtleTogJzE5amY0eCcgfV0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgQmFycmVsXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NVEFnTTJFME1TQTBNU0F3SURBZ01DQXdJREU0SWlBdlBnb2dJRHh3WVhSb0lHUTlJazB4TkNBellUUXhJRFF4SURBZ01DQXhJREFnTVRnaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRFM0lETmhNaUF5SURBZ01DQXhJREV1TmpndU9USWdNVFV1TWpVZ01UVXVNalVnTUNBd0lERWdNQ0F4Tmk0eE5rRXlJRElnTUNBd0lERWdNVGNnTWpGSU4yRXlJRElnTUNBd0lERXRNUzQyT0MwdU9USWdNVFV1TWpVZ01UVXVNalVnTUNBd0lERWdNQzB4Tmk0eE5rRXlJRElnTUNBd0lERWdOeUF6ZWlJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTXk0NE5DQXhOMmd4Tmk0ek1pSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk15NDROQ0EzYURFMkxqTXlJaUF2UGdvOEwzTjJaejRLKSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9iYXJyZWxcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBCYXJyZWwgPSBjcmVhdGVMdWNpZGVJY29uKCdiYXJyZWwnLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgQmFycmVsO1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdNNCAyMGgxNicsIGtleTogJzE0dGhzbycgfV0sXG4gIFsncGF0aCcsIHsgZDogJ202IDE2IDYtMTIgNiAxMicsIGtleTogJzFiNGJ5eicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ004IDEyaDgnLCBrZXk6ICcxd2N5ZXYnIH1dLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIEJhc2VsaW5lXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5OQ0F5TUdneE5pSWdMejRLSUNBOGNHRjBhQ0JrUFNKdE5pQXhOaUEyTFRFeUlEWWdNVElpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVGdnTVRKb09DSWdMejRLUEM5emRtYytDZz09KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9iYXNlbGluZVxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IEJhc2VsaW5lID0gY3JlYXRlTHVjaWRlSWNvbignYmFzZWxpbmUnLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgQmFzZWxpbmU7XG4iLCJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ00xMCA0IDggNicsIGtleTogJzFycnU4cycgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xNyAxOXYyJywga2V5OiAndHMxc290JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTIgMTJoMjAnLCBrZXk6ICc5aTRwdTQnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNNyAxOXYyJywga2V5OiAnMTJucGVzJyB9XSxcbiAgW1xuICAgICdwYXRoJyxcbiAgICB7XG4gICAgICBkOiAnTTkgNSA3LjYyMSAzLjYyMUEyLjEyMSAyLjEyMSAwIDAgMCA0IDV2MTJhMiAyIDAgMCAwIDIgMmgxMmEyIDIgMCAwIDAgMi0ydi01JyxcbiAgICAgIGtleTogJzE0eW04aScsXG4gICAgfSxcbiAgXSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBCYXRoXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NVEFnTkNBNElEWWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRURTNJREU1ZGpJaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRJZ01USm9NakFpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVGNnTVRsMk1pSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk9TQTFJRGN1TmpJeElETXVOakl4UVRJdU1USXhJREl1TVRJeElEQWdNQ0F3SURRZ05YWXhNbUV5SURJZ01DQXdJREFnTWlBeWFERXlZVElnTWlBd0lEQWdNQ0F5TFRKMkxUVWlJQzgrQ2p3dmMzWm5QZ289KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9iYXRoXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgQmF0aCA9IGNyZWF0ZUx1Y2lkZUljb24oJ2JhdGgnLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgQmF0aDtcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnbTExIDctMyA1aDRsLTMgNScsIGtleTogJ2I0YTY0dycgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xNC44NTYgNkgxNmEyIDIgMCAwIDEgMiAydjhhMiAyIDAgMCAxLTIgMmgtMi45MzUnLCBrZXk6ICdscmUxY3InIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMjIgMTR2LTQnLCBrZXk6ICcxNHE5ZDUnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNNS4xNCAxOEg0YTIgMiAwIDAgMS0yLTJWOGEyIDIgMCAwIDEgMi0yaDIuOTM2Jywga2V5OiAnMTNxNWswJyB9XSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBCYXR0ZXJ5Q2hhcmdpbmdcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKdE1URWdOeTB6SURWb05Hd3RNeUExSWlBdlBnb2dJRHh3WVhSb0lHUTlJazB4TkM0NE5UWWdOa2d4Tm1FeUlESWdNQ0F3SURFZ01pQXlkamhoTWlBeUlEQWdNQ0F4TFRJZ01tZ3RNaTQ1TXpVaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRJeUlERTBkaTAwSWlBdlBnb2dJRHh3WVhSb0lHUTlJazAxTGpFMElERTRTRFJoTWlBeUlEQWdNQ0F4TFRJdE1sWTRZVElnTWlBd0lEQWdNU0F5TFRKb01pNDVNellpSUM4K0Nqd3ZjM1puUGdvPSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvYmF0dGVyeS1jaGFyZ2luZ1xuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IEJhdHRlcnlDaGFyZ2luZyA9IGNyZWF0ZUx1Y2lkZUljb24oJ2JhdHRlcnktY2hhcmdpbmcnLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgQmF0dGVyeUNoYXJnaW5nO1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdNMTAgMTB2NCcsIGtleTogJzFtYjJlYycgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xNCAxMHY0Jywga2V5OiAnMW50ODhwJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTIyIDE0di00Jywga2V5OiAnMTRxOWQ1JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTYgMTB2NCcsIGtleTogJzFuNzdxZCcgfV0sXG4gIFsncmVjdCcsIHsgeDogJzInLCB5OiAnNicsIHdpZHRoOiAnMTYnLCBoZWlnaHQ6ICcxMicsIHJ4OiAnMicsIGtleTogJzEzemI1NScgfV0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgQmF0dGVyeUZ1bGxcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1UQWdNVEIyTkNJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTVRRZ01UQjJOQ0lnTHo0S0lDQThjR0YwYUNCa1BTSk5NaklnTVRSMkxUUWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRUWWdNVEIyTkNJZ0x6NEtJQ0E4Y21WamRDQjRQU0l5SWlCNVBTSTJJaUIzYVdSMGFEMGlNVFlpSUdobGFXZG9kRDBpTVRJaUlISjRQU0l5SWlBdlBnbzhMM04yWno0SykgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvYmF0dGVyeS1mdWxsXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgQmF0dGVyeUZ1bGwgPSBjcmVhdGVMdWNpZGVJY29uKCdiYXR0ZXJ5LWZ1bGwnLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgQmF0dGVyeUZ1bGw7XG4iLCJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ00yMiAxNHYtNCcsIGtleTogJzE0cTlkNScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ002IDE0di00Jywga2V5OiAnMTRhNmJkJyB9XSxcbiAgWydyZWN0JywgeyB4OiAnMicsIHk6ICc2Jywgd2lkdGg6ICcxNicsIGhlaWdodDogJzEyJywgcng6ICcyJywga2V5OiAnMTN6YjU1JyB9XSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBCYXR0ZXJ5TG93XG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NaklnTVRSMkxUUWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRUWWdNVFIyTFRRaUlDOCtDaUFnUEhKbFkzUWdlRDBpTWlJZ2VUMGlOaUlnZDJsa2RHZzlJakUySWlCb1pXbG5hSFE5SWpFeUlpQnllRDBpTWlJZ0x6NEtQQzl6ZG1jK0NnPT0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2JhdHRlcnktbG93XG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgQmF0dGVyeUxvdyA9IGNyZWF0ZUx1Y2lkZUljb24oJ2JhdHRlcnktbG93JywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IEJhdHRlcnlMb3c7XG4iLCJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ00xMCAxNHYtNCcsIGtleTogJ3N1eWU0YycgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00yMiAxNHYtNCcsIGtleTogJzE0cTlkNScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ002IDE0di00Jywga2V5OiAnMTRhNmJkJyB9XSxcbiAgWydyZWN0JywgeyB4OiAnMicsIHk6ICc2Jywgd2lkdGg6ICcxNicsIGhlaWdodDogJzEyJywgcng6ICcyJywga2V5OiAnMTN6YjU1JyB9XSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBCYXR0ZXJ5TWVkaXVtXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NVEFnTVRSMkxUUWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRUSXlJREUwZGkwMElpQXZQZ29nSUR4d1lYUm9JR1E5SWswMklERTBkaTAwSWlBdlBnb2dJRHh5WldOMElIZzlJaklpSUhrOUlqWWlJSGRwWkhSb1BTSXhOaUlnYUdWcFoyaDBQU0l4TWlJZ2NuZzlJaklpSUM4K0Nqd3ZjM1puUGdvPSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvYmF0dGVyeS1tZWRpdW1cbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBCYXR0ZXJ5TWVkaXVtID0gY3JlYXRlTHVjaWRlSWNvbignYmF0dGVyeS1tZWRpdW0nLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgQmF0dGVyeU1lZGl1bTtcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTEwIDl2NicsIGtleTogJzE3aTdsbycgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xMi41NDMgNkgxNmEyIDIgMCAwIDEgMiAydjhhMiAyIDAgMCAxLTIgMmgtMy42MDUnLCBrZXk6ICdvMDl5YWgnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMjIgMTR2LTQnLCBrZXk6ICcxNHE5ZDUnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNNyAxMmg2Jywga2V5OiAnaWVrazNoJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTcuNjA2IDE4SDRhMiAyIDAgMCAxLTItMlY4YTIgMiAwIDAgMSAyLTJoMy42MDYnLCBrZXk6ICd4eXF2ZjEnIH1dLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIEJhdHRlcnlQbHVzXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NVEFnT1hZMklpQXZQZ29nSUR4d1lYUm9JR1E5SWsweE1pNDFORE1nTmtneE5tRXlJRElnTUNBd0lERWdNaUF5ZGpoaE1pQXlJREFnTUNBeExUSWdNbWd0TXk0Mk1EVWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRUSXlJREUwZGkwMElpQXZQZ29nSUR4d1lYUm9JR1E5SWswM0lERXlhRFlpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVGN1TmpBMklERTRTRFJoTWlBeUlEQWdNQ0F4TFRJdE1sWTRZVElnTWlBd0lEQWdNU0F5TFRKb015NDJNRFlpSUM4K0Nqd3ZjM1puUGdvPSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvYmF0dGVyeS1wbHVzXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgQmF0dGVyeVBsdXMgPSBjcmVhdGVMdWNpZGVJY29uKCdiYXR0ZXJ5LXBsdXMnLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgQmF0dGVyeVBsdXM7XG4iLCJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ00xMCAxN2guMDEnLCBrZXk6ICduYnE4MG4nIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTAgN3Y2Jywga2V5OiAnbm5lMDNsJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTE0IDZoMmEyIDIgMCAwIDEgMiAydjhhMiAyIDAgMCAxLTIgMmgtMicsIGtleTogJzFtODNrYicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00yMiAxNHYtNCcsIGtleTogJzE0cTlkNScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ002IDE4SDRhMiAyIDAgMCAxLTItMlY4YTIgMiAwIDAgMSAyLTJoMicsIGtleTogJ2g4bGdmaCcgfV0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgQmF0dGVyeVdhcm5pbmdcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1UQWdNVGRvTGpBeElpQXZQZ29nSUR4d1lYUm9JR1E5SWsweE1DQTNkallpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVEUwSURab01tRXlJRElnTUNBd0lERWdNaUF5ZGpoaE1pQXlJREFnTUNBeExUSWdNbWd0TWlJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTWpJZ01UUjJMVFFpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVFlnTVRoSU5HRXlJRElnTUNBd0lERXRNaTB5VmpoaE1pQXlJREFnTUNBeElESXRNbWd5SWlBdlBnbzhMM04yWno0SykgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvYmF0dGVyeS13YXJuaW5nXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgQmF0dGVyeVdhcm5pbmcgPSBjcmVhdGVMdWNpZGVJY29uKCdiYXR0ZXJ5LXdhcm5pbmcnLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgQmF0dGVyeVdhcm5pbmc7XG4iLCJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ00gMjIgMTQgTCAyMiAxMCcsIGtleTogJ25xYzR0YicgfV0sXG4gIFsncmVjdCcsIHsgeDogJzInLCB5OiAnNicsIHdpZHRoOiAnMTYnLCBoZWlnaHQ6ICcxMicsIHJ4OiAnMicsIGtleTogJzEzemI1NScgfV0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgQmF0dGVyeVxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOSURJeUlERTBJRXdnTWpJZ01UQWlJQzgrQ2lBZ1BISmxZM1FnZUQwaU1pSWdlVDBpTmlJZ2QybGtkR2c5SWpFMklpQm9aV2xuYUhROUlqRXlJaUJ5ZUQwaU1pSWdMejRLUEM5emRtYytDZz09KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9iYXR0ZXJ5XG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgQmF0dGVyeSA9IGNyZWF0ZUx1Y2lkZUljb24oJ2JhdHRlcnknLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgQmF0dGVyeTtcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTQuNSAzaDE1Jywga2V5OiAnYzduMGpyJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTYgM3YxNmEyIDIgMCAwIDAgMiAyaDhhMiAyIDAgMCAwIDItMlYzJywga2V5OiAnbTF1aHg3JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTYgMTRoMTInLCBrZXk6ICc0Y3dvMGYnIH1dLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIEJlYWtlclxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTkM0MUlETm9NVFVpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVFlnTTNZeE5tRXlJRElnTUNBd0lEQWdNaUF5YURoaE1pQXlJREFnTUNBd0lESXRNbFl6SWlBdlBnb2dJRHh3WVhSb0lHUTlJazAySURFMGFERXlJaUF2UGdvOEwzTjJaejRLKSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9iZWFrZXJcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBCZWFrZXIgPSBjcmVhdGVMdWNpZGVJY29uKCdiZWFrZXInLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgQmVha2VyO1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbXG4gICAgJ3BhdGgnLFxuICAgIHtcbiAgICAgIGQ6ICdNOSA5Yy0uNjQuNjQtMS41MjEuOTU0LTIuNDAyIDEuMTY1QTYgNiAwIDAgMCA4IDIyYTEzLjk2IDEzLjk2IDAgMCAwIDkuOS00LjEnLFxuICAgICAga2V5OiAnYnEzdWR0JyxcbiAgICB9LFxuICBdLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTAuNzUgNS4wOTNBNiA2IDAgMCAxIDIyIDhjMCAyLjQxMS0uNjEgNC42OC0xLjY4MyA2LjY2Jywga2V5OiAnMTdjY3NlJyB9XSxcbiAgW1xuICAgICdwYXRoJyxcbiAgICB7XG4gICAgICBkOiAnTTUuMzQxIDEwLjYyYTQgNCAwIDAgMCA2LjQ4NyAxLjIwOE0xMC42MiA1LjM0MWE0LjAxNSA0LjAxNSAwIDAgMSAyLjAzOSAyLjA0JyxcbiAgICAgIGtleTogJzE4enFncScsXG4gICAgfSxcbiAgXSxcbiAgWydsaW5lJywgeyB4MTogJzInLCB4MjogJzIyJywgeTE6ICcyJywgeTI6ICcyMicsIGtleTogJ2E2cDZ1aicgfV0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgQmVhbk9mZlxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOT1NBNVl5MHVOalF1TmpRdE1TNDFNakV1T1RVMExUSXVOREF5SURFdU1UWTFRVFlnTmlBd0lEQWdNQ0E0SURJeVlURXpMamsySURFekxqazJJREFnTUNBd0lEa3VPUzAwTGpFaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRFd0xqYzFJRFV1TURrelFUWWdOaUF3SURBZ01TQXlNaUE0WXpBZ01pNDBNVEV0TGpZeElEUXVOamd0TVM0Mk9ETWdOaTQyTmlJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTlM0ek5ERWdNVEF1TmpKaE5DQTBJREFnTUNBd0lEWXVORGczSURFdU1qQTRUVEV3TGpZeUlEVXVNelF4WVRRdU1ERTFJRFF1TURFMUlEQWdNQ0F4SURJdU1ETTVJREl1TURRaUlDOCtDaUFnUEd4cGJtVWdlREU5SWpJaUlIZ3lQU0l5TWlJZ2VURTlJaklpSUhreVBTSXlNaUlnTHo0S1BDOXpkbWMrQ2c9PSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvYmVhbi1vZmZcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBCZWFuT2ZmID0gY3JlYXRlTHVjaWRlSWNvbignYmVhbi1vZmYnLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgQmVhbk9mZjtcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTIgMjB2LThhMiAyIDAgMCAxIDItMmgxNmEyIDIgMCAwIDEgMiAydjgnLCBrZXk6ICcxazc4cjQnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNNCAxMFY2YTIgMiAwIDAgMSAyLTJoMTJhMiAyIDAgMCAxIDIgMnY0Jywga2V5OiAnZmIzdGwyJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTEyIDR2NicsIGtleTogJzFkY2dxMicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00yIDE4aDIwJywga2V5OiAnYWpxbnllJyB9XSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBCZWREb3VibGVcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1pQXlNSFl0T0dFeUlESWdNQ0F3SURFZ01pMHlhREUyWVRJZ01pQXdJREFnTVNBeUlESjJPQ0lnTHo0S0lDQThjR0YwYUNCa1BTSk5OQ0F4TUZZMllUSWdNaUF3SURBZ01TQXlMVEpvTVRKaE1pQXlJREFnTUNBeElESWdNblkwSWlBdlBnb2dJRHh3WVhSb0lHUTlJazB4TWlBMGRqWWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRUSWdNVGhvTWpBaUlDOCtDand2YzNablBnbz0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2JlZC1kb3VibGVcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBCZWREb3VibGUgPSBjcmVhdGVMdWNpZGVJY29uKCdiZWQtZG91YmxlJywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IEJlZERvdWJsZTtcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgW1xuICAgICdwYXRoJyxcbiAgICB7XG4gICAgICBkOiAnTTEwLjE2NSA2LjU5OEM5Ljk1NCA3LjQ3OCA5LjY0IDguMzYgOSA5Yy0uNjQuNjQtMS41MjEuOTU0LTIuNDAyIDEuMTY1QTYgNiAwIDAgMCA4IDIyYzcuNzMyIDAgMTQtNi4yNjggMTQtMTRhNiA2IDAgMCAwLTExLjgzNS0xLjQwMlonLFxuICAgICAga2V5OiAnMXR2ems3JyxcbiAgICB9LFxuICBdLFxuICBbJ3BhdGgnLCB7IGQ6ICdNNS4zNDEgMTAuNjJhNCA0IDAgMSAwIDUuMjc5LTUuMjgnLCBrZXk6ICcyY3lyaTInIH1dLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIEJlYW5cbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1UQXVNVFkxSURZdU5UazRRemt1T1RVMElEY3VORGM0SURrdU5qUWdPQzR6TmlBNUlEbGpMUzQyTkM0Mk5DMHhMalV5TVM0NU5UUXRNaTQwTURJZ01TNHhOalZCTmlBMklEQWdNQ0F3SURnZ01qSmpOeTQzTXpJZ01DQXhOQzAyTGpJMk9DQXhOQzB4TkdFMklEWWdNQ0F3SURBdE1URXVPRE0xTFRFdU5EQXlXaUlnTHo0S0lDQThjR0YwYUNCa1BTSk5OUzR6TkRFZ01UQXVOakpoTkNBMElEQWdNU0F3SURVdU1qYzVMVFV1TWpnaUlDOCtDand2YzNablBnbz0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2JlYW5cbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBCZWFuID0gY3JlYXRlTHVjaWRlSWNvbignYmVhbicsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBCZWFuO1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdNMyAyMHYtOGEyIDIgMCAwIDEgMi0yaDE0YTIgMiAwIDAgMSAyIDJ2OCcsIGtleTogJzF3bTZtaScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ001IDEwVjZhMiAyIDAgMCAxIDItMmgxMGEyIDIgMCAwIDEgMiAydjQnLCBrZXk6ICc0azkzczUnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMyAxOGgxOCcsIGtleTogJzFoMTEzeCcgfV0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgQmVkU2luZ2xlXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NeUF5TUhZdE9HRXlJRElnTUNBd0lERWdNaTB5YURFMFlUSWdNaUF3SURBZ01TQXlJREoyT0NJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTlNBeE1GWTJZVElnTWlBd0lEQWdNU0F5TFRKb01UQmhNaUF5SURBZ01DQXhJRElnTW5ZMElpQXZQZ29nSUR4d1lYUm9JR1E5SWsweklERTRhREU0SWlBdlBnbzhMM04yWno0SykgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvYmVkLXNpbmdsZVxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IEJlZFNpbmdsZSA9IGNyZWF0ZUx1Y2lkZUljb24oJ2JlZC1zaW5nbGUnLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgQmVkU2luZ2xlO1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdNMiA0djE2Jywga2V5OiAndnc5aHE4JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTIgOGgxOGEyIDIgMCAwIDEgMiAydjEwJywga2V5OiAnMWRndjJyJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTIgMTdoMjAnLCBrZXk6ICcxOG5mcDMnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNNiA4djknLCBrZXk6ICcxeXJpdWQnIH1dLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIEJlZFxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTWlBMGRqRTJJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHlJRGhvTVRoaE1pQXlJREFnTUNBeElESWdNbll4TUNJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTWlBeE4yZ3lNQ0lnTHo0S0lDQThjR0YwYUNCa1BTSk5OaUE0ZGpraUlDOCtDand2YzNablBnbz0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2JlZFxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IEJlZCA9IGNyZWF0ZUx1Y2lkZUljb24oJ2JlZCcsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBCZWQ7XG4iLCJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ00xMyAxM3Y1Jywga2V5OiAnaWd3ZmgwJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTE3IDExLjQ3VjgnLCBrZXk6ICcxNnl3MGcnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTcgMTFoMWEzIDMgMCAwIDEgMi43NDUgNC4yMTEnLCBrZXk6ICcxeGJ0NjUnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdtMiAyIDIwIDIwJywga2V5OiAnMW9vZXd5JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTUgOHYxMmEyIDIgMCAwIDAgMiAyaDhhMiAyIDAgMCAwIDItMnYtMycsIGtleTogJ2M1NW8zZScgfV0sXG4gIFtcbiAgICAncGF0aCcsXG4gICAgeyBkOiAnTTcuNTM2IDcuNTM1QzYuNzY2IDcuNjQ5IDYuMTU0IDggNS41IDhhMi41IDIuNSAwIDAgMS0xLjc2OC00LjI2OCcsIGtleTogJzF5ZHVnNycgfSxcbiAgXSxcbiAgW1xuICAgICdwYXRoJyxcbiAgICB7XG4gICAgICBkOiAnTTguNzI3IDMuMjA0QzkuMzA2IDIuNzY3IDkuODg1IDIgMTEgMmMxLjU2IDAgMiAxLjUgMyAxLjVzMS43Mi0uNSAyLjUtLjVhMSAxIDAgMSAxIDAgNWMtLjc4IDAtMS41LS41LTIuNS0uNWEzLjE0OSAzLjE0OSAwIDAgMC0uODQyLjEyJyxcbiAgICAgIGtleTogJ3E4MW83cScsXG4gICAgfSxcbiAgXSxcbiAgWydwYXRoJywgeyBkOiAnTTkgMTQuNlYxOCcsIGtleTogJzIwZWs5OCcgfV0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgQmVlck9mZlxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTVRNZ01UTjJOU0lnTHo0S0lDQThjR0YwYUNCa1BTSk5NVGNnTVRFdU5EZFdPQ0lnTHo0S0lDQThjR0YwYUNCa1BTSk5NVGNnTVRGb01XRXpJRE1nTUNBd0lERWdNaTQzTkRVZ05DNHlNVEVpSUM4K0NpQWdQSEJoZEdnZ1pEMGliVElnTWlBeU1DQXlNQ0lnTHo0S0lDQThjR0YwYUNCa1BTSk5OU0E0ZGpFeVlUSWdNaUF3SURBZ01DQXlJREpvT0dFeUlESWdNQ0F3SURBZ01pMHlkaTB6SWlBdlBnb2dJRHh3WVhSb0lHUTlJazAzTGpVek5pQTNMalV6TlVNMkxqYzJOaUEzTGpZME9TQTJMakUxTkNBNElEVXVOU0E0WVRJdU5TQXlMalVnTUNBd0lERXRNUzQzTmpndE5DNHlOamdpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVGd1TnpJM0lETXVNakEwUXprdU16QTJJREl1TnpZM0lEa3VPRGcxSURJZ01URWdNbU14TGpVMklEQWdNaUF4TGpVZ015QXhMalZ6TVM0M01pMHVOU0F5TGpVdExqVmhNU0F4SURBZ01TQXhJREFnTldNdExqYzRJREF0TVM0MUxTNDFMVEl1TlMwdU5XRXpMakUwT1NBekxqRTBPU0F3SURBZ01DMHVPRFF5TGpFeUlpQXZQZ29nSUR4d1lYUm9JR1E5SWswNUlERTBMalpXTVRnaUlDOCtDand2YzNablBnbz0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2JlZXItb2ZmXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgQmVlck9mZiA9IGNyZWF0ZUx1Y2lkZUljb24oJ2JlZXItb2ZmJywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IEJlZXJPZmY7XG4iLCJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbXG4gIFtcbiAgICAncGF0aCcsXG4gICAge1xuICAgICAgZDogJ00xNi40IDEzLjdBNi41IDYuNSAwIDEgMCA2LjI4IDYuNmMtMS4xIDMuMTMtLjc4IDMuOS0zLjE4IDYuMDhBMyAzIDAgMCAwIDUgMThjNCAwIDguNC0xLjggMTEuNC00LjMnLFxuICAgICAga2V5OiAnY2lzamN2JyxcbiAgICB9LFxuICBdLFxuICBbXG4gICAgJ3BhdGgnLFxuICAgIHtcbiAgICAgIGQ6ICdtMTguNSA2IDIuMTkgNC41YTYuNDggNi40OCAwIDAgMS0yLjI5IDcuMkMxNS40IDIwLjIgMTEgMjIgNyAyMmEzIDMgMCAwIDEtMi42OC0xLjY2TDIuNCAxNi41JyxcbiAgICAgIGtleTogJzVieWFhZycsXG4gICAgfSxcbiAgXSxcbiAgWydjaXJjbGUnLCB7IGN4OiAnMTIuNScsIGN5OiAnOC41JywgcjogJzIuNScsIGtleTogJzk3Mzh1OCcgfV0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgQmVlZlxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTVRZdU5DQXhNeTQzUVRZdU5TQTJMalVnTUNBeElEQWdOaTR5T0NBMkxqWmpMVEV1TVNBekxqRXpMUzQzT0NBekxqa3RNeTR4T0NBMkxqQTRRVE1nTXlBd0lEQWdNQ0ExSURFNFl6UWdNQ0E0TGpRdE1TNDRJREV4TGpRdE5DNHpJaUF2UGdvZ0lEeHdZWFJvSUdROUltMHhPQzQxSURZZ01pNHhPU0EwTGpWaE5pNDBPQ0EyTGpRNElEQWdNQ0F4TFRJdU1qa2dOeTR5UXpFMUxqUWdNakF1TWlBeE1TQXlNaUEzSURJeVlUTWdNeUF3SURBZ01TMHlMalk0TFRFdU5qWk1NaTQwSURFMkxqVWlJQzgrQ2lBZ1BHTnBjbU5zWlNCamVEMGlNVEl1TlNJZ1kzazlJamd1TlNJZ2NqMGlNaTQxSWlBdlBnbzhMM04yWno0SykgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvYmVlZlxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IEJlZWYgPSBjcmVhdGVMdWNpZGVJY29uKCdiZWVmJywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IEJlZWY7XG4iLCJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ00xNyAxMWgxYTMgMyAwIDAgMSAwIDZoLTEnLCBrZXk6ICcxeXA3NnYnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNOSAxMnY2Jywga2V5OiAnMXUxY2FiJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTEzIDEydjYnLCBrZXk6ICcxc3Vna2snIH1dLFxuICBbXG4gICAgJ3BhdGgnLFxuICAgIHtcbiAgICAgIGQ6ICdNMTQgNy41Yy0xIDAtMS40NC41LTMgLjVzLTItLjUtMy0uNS0xLjcyLjUtMi41LjVhMi41IDIuNSAwIDAgMSAwLTVjLjc4IDAgMS41Ny41IDIuNS41UzkuNDQgMiAxMSAyczIgMS41IDMgMS41IDEuNzItLjUgMi41LS41YTIuNSAyLjUgMCAwIDEgMCA1Yy0uNzggMC0xLjUtLjUtMi41LS41WicsXG4gICAgICBrZXk6ICcxNTEwZm8nLFxuICAgIH0sXG4gIF0sXG4gIFsncGF0aCcsIHsgZDogJ001IDh2MTJhMiAyIDAgMCAwIDIgMmg4YTIgMiAwIDAgMCAyLTJWOCcsIGtleTogJzE5amI3bicgfV0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgQmVlclxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTVRjZ01URm9NV0V6SURNZ01DQXdJREVnTUNBMmFDMHhJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMDVJREV5ZGpZaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRFeklERXlkallpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVEUwSURjdU5XTXRNU0F3TFRFdU5EUXVOUzB6SUM0MWN5MHlMUzQxTFRNdExqVXRNUzQzTWk0MUxUSXVOUzQxWVRJdU5TQXlMalVnTUNBd0lERWdNQzAxWXk0M09DQXdJREV1TlRjdU5TQXlMalV1TlZNNUxqUTBJRElnTVRFZ01uTXlJREV1TlNBeklERXVOU0F4TGpjeUxTNDFJREl1TlMwdU5XRXlMalVnTWk0MUlEQWdNQ0F4SURBZ05XTXRMamM0SURBdE1TNDFMUzQxTFRJdU5TMHVOVm9pSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVFVnT0hZeE1tRXlJRElnTUNBd0lEQWdNaUF5YURoaE1pQXlJREFnTUNBd0lESXRNbFk0SWlBdlBnbzhMM04yWno0SykgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvYmVlclxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IEJlZXIgPSBjcmVhdGVMdWNpZGVJY29uKCdiZWVyJywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IEJlZXI7XG4iLCJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ00xMC4yNjggMjFhMiAyIDAgMCAwIDMuNDY0IDAnLCBrZXk6ICd2d3ZidDknIH1dLFxuICBbXG4gICAgJ3BhdGgnLFxuICAgIHtcbiAgICAgIGQ6ICdNMTMuOTE2IDIuMzE0QTYgNiAwIDAgMCA2IDhjMCA0LjQ5OS0xLjQxMSA1Ljk1Ni0yLjc0IDcuMzI3QTEgMSAwIDAgMCA0IDE3aDE2YTEgMSAwIDAgMCAuNzQtMS42NzMgOSA5IDAgMCAxLS41ODUtLjY2NScsXG4gICAgICBrZXk6ICcxdGlwMGcnLFxuICAgIH0sXG4gIF0sXG4gIFsnY2lyY2xlJywgeyBjeDogJzE4JywgY3k6ICc4JywgcjogJzMnLCBrZXk6ICcxZzBnenUnIH1dLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIEJlbGxEb3RcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1UQXVNalk0SURJeFlUSWdNaUF3SURBZ01DQXpMalEyTkNBd0lpQXZQZ29nSUR4d1lYUm9JR1E5SWsweE15NDVNVFlnTWk0ek1UUkJOaUEySURBZ01DQXdJRFlnT0dNd0lEUXVORGs1TFRFdU5ERXhJRFV1T1RVMkxUSXVOelFnTnk0ek1qZEJNU0F4SURBZ01DQXdJRFFnTVRkb01UWmhNU0F4SURBZ01DQXdJQzQzTkMweExqWTNNeUE1SURrZ01DQXdJREV0TGpVNE5TMHVOalkxSWlBdlBnb2dJRHhqYVhKamJHVWdZM2c5SWpFNElpQmplVDBpT0NJZ2NqMGlNeUlnTHo0S1BDOXpkbWMrQ2c9PSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvYmVsbC1kb3RcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBCZWxsRG90ID0gY3JlYXRlTHVjaWRlSWNvbignYmVsbC1kb3QnLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgQmVsbERvdDtcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTE4LjUxOCAxNy4zNDdBNyA3IDAgMCAxIDE0IDE5Jywga2V5OiAnMWVtaHBvJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTE4LjggNEExMSAxMSAwIDAgMSAyMCA5Jywga2V5OiAnMTI3YjY3JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTkgOWguMDEnLCBrZXk6ICcxcTVtZTYnIH1dLFxuICBbJ2NpcmNsZScsIHsgY3g6ICcyMCcsIGN5OiAnMTYnLCByOiAnMicsIGtleTogJzF2OWJ4aCcgfV0sXG4gIFsnY2lyY2xlJywgeyBjeDogJzknLCBjeTogJzknLCByOiAnNycsIGtleTogJ3AyaDV2cCcgfV0sXG4gIFsncmVjdCcsIHsgeDogJzQnLCB5OiAnMTYnLCB3aWR0aDogJzEwJywgaGVpZ2h0OiAnNicsIHJ4OiAnMicsIGtleTogJ2JmbnZpdicgfV0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgQmVsbEVsZWN0cmljXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NVGd1TlRFNElERTNMak0wTjBFM0lEY2dNQ0F3SURFZ01UUWdNVGtpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVEU0TGpnZ05FRXhNU0F4TVNBd0lEQWdNU0F5TUNBNUlpQXZQZ29nSUR4d1lYUm9JR1E5SWswNUlEbG9MakF4SWlBdlBnb2dJRHhqYVhKamJHVWdZM2c5SWpJd0lpQmplVDBpTVRZaUlISTlJaklpSUM4K0NpQWdQR05wY21Oc1pTQmplRDBpT1NJZ1kzazlJamtpSUhJOUlqY2lJQzgrQ2lBZ1BISmxZM1FnZUQwaU5DSWdlVDBpTVRZaUlIZHBaSFJvUFNJeE1DSWdhR1ZwWjJoMFBTSTJJaUJ5ZUQwaU1pSWdMejRLUEM5emRtYytDZz09KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9iZWxsLWVsZWN0cmljXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgQmVsbEVsZWN0cmljID0gY3JlYXRlTHVjaWRlSWNvbignYmVsbC1lbGVjdHJpYycsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBCZWxsRWxlY3RyaWM7XG4iLCJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ00xMC4yNjggMjFhMiAyIDAgMCAwIDMuNDY0IDAnLCBrZXk6ICd2d3ZidDknIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTUgOGg2Jywga2V5OiAnOHlidXhoJyB9XSxcbiAgW1xuICAgICdwYXRoJyxcbiAgICB7XG4gICAgICBkOiAnTTE2LjI0MyAzLjc1N0E2IDYgMCAwIDAgNiA4YzAgNC40OTktMS40MTEgNS45NTYtMi43MzggNy4zMjZBMSAxIDAgMCAwIDQgMTdoMTZhMSAxIDAgMCAwIC43NC0xLjY3M0E5LjQgOS40IDAgMCAxIDE4LjY2NyAxMicsXG4gICAgICBrZXk6ICdiZHdqODYnLFxuICAgIH0sXG4gIF0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgQmVsbE1pbnVzXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NVEF1TWpZNElESXhZVElnTWlBd0lEQWdNQ0F6TGpRMk5DQXdJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHhOU0E0YURZaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRFMkxqSTBNeUF6TGpjMU4wRTJJRFlnTUNBd0lEQWdOaUE0WXpBZ05DNDBPVGt0TVM0ME1URWdOUzQ1TlRZdE1pNDNNemdnTnk0ek1qWkJNU0F4SURBZ01DQXdJRFFnTVRkb01UWmhNU0F4SURBZ01DQXdJQzQzTkMweExqWTNNMEU1TGpRZ09TNDBJREFnTUNBeElERTRMalkyTnlBeE1pSWdMejRLUEM5emRtYytDZz09KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9iZWxsLW1pbnVzXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgQmVsbE1pbnVzID0gY3JlYXRlTHVjaWRlSWNvbignYmVsbC1taW51cycsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBCZWxsTWludXM7XG4iLCJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ00xMC4yNjggMjFhMiAyIDAgMCAwIDMuNDY0IDAnLCBrZXk6ICd2d3ZidDknIH1dLFxuICBbXG4gICAgJ3BhdGgnLFxuICAgIHtcbiAgICAgIGQ6ICdNMTcgMTdINGExIDEgMCAwIDEtLjc0LTEuNjczQzQuNTkgMTMuOTU2IDYgMTIuNDk5IDYgOGE2IDYgMCAwIDEgLjI1OC0xLjc0MicsXG4gICAgICBrZXk6ICcxNzh0c3UnLFxuICAgIH0sXG4gIF0sXG4gIFsncGF0aCcsIHsgZDogJ20yIDIgMjAgMjAnLCBrZXk6ICcxb29ld3knIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNOC42NjggMy4wMUE2IDYgMCAwIDEgMTggOGMwIDIuNjg3Ljc3IDQuNjUzIDEuNzA3IDYuMDUnLCBrZXk6ICcxaHFpeXMnIH1dLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIEJlbGxPZmZcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1UQXVNalk0SURJeFlUSWdNaUF3SURBZ01DQXpMalEyTkNBd0lpQXZQZ29nSUR4d1lYUm9JR1E5SWsweE55QXhOMGcwWVRFZ01TQXdJREFnTVMwdU56UXRNUzQyTnpORE5DNDFPU0F4TXk0NU5UWWdOaUF4TWk0ME9Ua2dOaUE0WVRZZ05pQXdJREFnTVNBdU1qVTRMVEV1TnpReUlpQXZQZ29nSUR4d1lYUm9JR1E5SW0weUlESWdNakFnTWpBaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRndU5qWTRJRE11TURGQk5pQTJJREFnTUNBeElERTRJRGhqTUNBeUxqWTROeTQzTnlBMExqWTFNeUF4TGpjd055QTJMakExSWlBdlBnbzhMM04yWno0SykgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvYmVsbC1vZmZcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBCZWxsT2ZmID0gY3JlYXRlTHVjaWRlSWNvbignYmVsbC1vZmYnLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgQmVsbE9mZjtcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTEwLjI2OCAyMWEyIDIgMCAwIDAgMy40NjQgMCcsIGtleTogJ3Z3dmJ0OScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xNSA4aDYnLCBrZXk6ICc4eWJ1eGgnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTggNXY2Jywga2V5OiAnZzVheXJ2JyB9XSxcbiAgW1xuICAgICdwYXRoJyxcbiAgICB7XG4gICAgICBkOiAnTTIwLjAwMiAxNC40NjRhOSA5IDAgMCAwIC43MzguODYzQTEgMSAwIDAgMSAyMCAxN0g0YTEgMSAwIDAgMS0uNzQtMS42NzNDNC41OSAxMy45NTYgNiAxMi40OTkgNiA4YTYgNiAwIDAgMSA4Ljc1LTUuMzMyJyxcbiAgICAgIGtleTogJzFhYmN2eScsXG4gICAgfSxcbiAgXSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBCZWxsUGx1c1xuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTVRBdU1qWTRJREl4WVRJZ01pQXdJREFnTUNBekxqUTJOQ0F3SWlBdlBnb2dJRHh3WVhSb0lHUTlJazB4TlNBNGFEWWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRURTRJRFYyTmlJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTWpBdU1EQXlJREUwTGpRMk5HRTVJRGtnTUNBd0lEQWdMamN6T0M0NE5qTkJNU0F4SURBZ01DQXhJREl3SURFM1NEUmhNU0F4SURBZ01DQXhMUzQzTkMweExqWTNNME0wTGpVNUlERXpMamsxTmlBMklERXlMalE1T1NBMklEaGhOaUEySURBZ01DQXhJRGd1TnpVdE5TNHpNeklpSUM4K0Nqd3ZjM1puUGdvPSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvYmVsbC1wbHVzXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgQmVsbFBsdXMgPSBjcmVhdGVMdWNpZGVJY29uKCdiZWxsLXBsdXMnLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgQmVsbFBsdXM7XG4iLCJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ00xMC4yNjggMjFhMiAyIDAgMCAwIDMuNDY0IDAnLCBrZXk6ICd2d3ZidDknIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMjIgOGMwLTIuMy0uOC00LjMtMi02Jywga2V5OiAnNWJiM2FkJyB9XSxcbiAgW1xuICAgICdwYXRoJyxcbiAgICB7XG4gICAgICBkOiAnTTMuMjYyIDE1LjMyNkExIDEgMCAwIDAgNCAxN2gxNmExIDEgMCAwIDAgLjc0LTEuNjczQzE5LjQxIDEzLjk1NiAxOCAxMi40OTkgMTggOEE2IDYgMCAwIDAgNiA4YzAgNC40OTktMS40MTEgNS45NTYtMi43MzggNy4zMjYnLFxuICAgICAga2V5OiAnMTFnOXZpJyxcbiAgICB9LFxuICBdLFxuICBbJ3BhdGgnLCB7IGQ6ICdNNCAyQzIuOCAzLjcgMiA1LjcgMiA4Jywga2V5OiAndGFwOWUwJyB9XSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBCZWxsUmluZ1xuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTVRBdU1qWTRJREl4WVRJZ01pQXdJREFnTUNBekxqUTJOQ0F3SWlBdlBnb2dJRHh3WVhSb0lHUTlJazB5TWlBNFl6QXRNaTR6TFM0NExUUXVNeTB5TFRZaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRNdU1qWXlJREUxTGpNeU5rRXhJREVnTUNBd0lEQWdOQ0F4TjJneE5tRXhJREVnTUNBd0lEQWdMamMwTFRFdU5qY3pRekU1TGpReElERXpMamsxTmlBeE9DQXhNaTQwT1RrZ01UZ2dPRUUySURZZ01DQXdJREFnTmlBNFl6QWdOQzQwT1RrdE1TNDBNVEVnTlM0NU5UWXRNaTQzTXpnZ055NHpNallpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVFFnTWtNeUxqZ2dNeTQzSURJZ05TNDNJRElnT0NJZ0x6NEtQQzl6ZG1jK0NnPT0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2JlbGwtcmluZ1xuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IEJlbGxSaW5nID0gY3JlYXRlTHVjaWRlSWNvbignYmVsbC1yaW5nJywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IEJlbGxSaW5nO1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdNMTAuMjY4IDIxYTIgMiAwIDAgMCAzLjQ2NCAwJywga2V5OiAndnd2YnQ5JyB9XSxcbiAgW1xuICAgICdwYXRoJyxcbiAgICB7XG4gICAgICBkOiAnTTMuMjYyIDE1LjMyNkExIDEgMCAwIDAgNCAxN2gxNmExIDEgMCAwIDAgLjc0LTEuNjczQzE5LjQxIDEzLjk1NiAxOCAxMi40OTkgMTggOEE2IDYgMCAwIDAgNiA4YzAgNC40OTktMS40MTEgNS45NTYtMi43MzggNy4zMjYnLFxuICAgICAga2V5OiAnMTFnOXZpJyxcbiAgICB9LFxuICBdLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIEJlbGxcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1UQXVNalk0SURJeFlUSWdNaUF3SURBZ01DQXpMalEyTkNBd0lpQXZQZ29nSUR4d1lYUm9JR1E5SWswekxqSTJNaUF4TlM0ek1qWkJNU0F4SURBZ01DQXdJRFFnTVRkb01UWmhNU0F4SURBZ01DQXdJQzQzTkMweExqWTNNME14T1M0ME1TQXhNeTQ1TlRZZ01UZ2dNVEl1TkRrNUlERTRJRGhCTmlBMklEQWdNQ0F3SURZZ09HTXdJRFF1TkRrNUxURXVOREV4SURVdU9UVTJMVEl1TnpNNElEY3VNekkySWlBdlBnbzhMM04yWno0SykgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvYmVsbFxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IEJlbGwgPSBjcmVhdGVMdWNpZGVJY29uKCdiZWxsJywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IEJlbGw7XG4iLCJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbXG4gIFsncmVjdCcsIHsgd2lkdGg6ICcxMycsIGhlaWdodDogJzcnLCB4OiAnMycsIHk6ICczJywgcng6ICcxJywga2V5OiAnMTF4YjY0JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnbTIyIDE1LTMtMyAzLTMnLCBrZXk6ICcyNmNobW0nIH1dLFxuICBbJ3JlY3QnLCB7IHdpZHRoOiAnMTMnLCBoZWlnaHQ6ICc3JywgeDogJzMnLCB5OiAnMTQnLCByeDogJzEnLCBrZXk6ICdrNmt5N24nIH1dLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIEJldHdlZW5Ib3Jpem9udGFsRW5kXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjbVZqZENCM2FXUjBhRDBpTVRNaUlHaGxhV2RvZEQwaU55SWdlRDBpTXlJZ2VUMGlNeUlnY25nOUlqRWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaWJUSXlJREUxTFRNdE15QXpMVE1pSUM4K0NpQWdQSEpsWTNRZ2QybGtkR2c5SWpFeklpQm9aV2xuYUhROUlqY2lJSGc5SWpNaUlIazlJakUwSWlCeWVEMGlNU0lnTHo0S1BDOXpkbWMrQ2c9PSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvYmV0d2Vlbi1ob3Jpem9udGFsLWVuZFxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IEJldHdlZW5Ib3Jpem9udGFsRW5kID0gY3JlYXRlTHVjaWRlSWNvbignYmV0d2Vlbi1ob3Jpem9udGFsLWVuZCcsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBCZXR3ZWVuSG9yaXpvbnRhbEVuZDtcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgWydyZWN0JywgeyB3aWR0aDogJzEzJywgaGVpZ2h0OiAnNycsIHg6ICc4JywgeTogJzMnLCByeDogJzEnLCBrZXk6ICdwa3NvOWEnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdtMiA5IDMgMy0zIDMnLCBrZXk6ICcxYWdpYjUnIH1dLFxuICBbJ3JlY3QnLCB7IHdpZHRoOiAnMTMnLCBoZWlnaHQ6ICc3JywgeDogJzgnLCB5OiAnMTQnLCByeDogJzEnLCBrZXk6ICcxcTVmYzEnIH1dLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIEJldHdlZW5Ib3Jpem9udGFsU3RhcnRcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNtVmpkQ0IzYVdSMGFEMGlNVE1pSUdobGFXZG9kRDBpTnlJZ2VEMGlPQ0lnZVQwaU15SWdjbmc5SWpFaUlDOCtDaUFnUEhCaGRHZ2daRDBpYlRJZ09TQXpJRE10TXlBeklpQXZQZ29nSUR4eVpXTjBJSGRwWkhSb1BTSXhNeUlnYUdWcFoyaDBQU0kzSWlCNFBTSTRJaUI1UFNJeE5DSWdjbmc5SWpFaUlDOCtDand2YzNablBnbz0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2JldHdlZW4taG9yaXpvbnRhbC1zdGFydFxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IEJldHdlZW5Ib3Jpem9udGFsU3RhcnQgPSBjcmVhdGVMdWNpZGVJY29uKCdiZXR3ZWVuLWhvcml6b250YWwtc3RhcnQnLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgQmV0d2Vlbkhvcml6b250YWxTdGFydDtcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgWydyZWN0JywgeyB3aWR0aDogJzcnLCBoZWlnaHQ6ICcxMycsIHg6ICczJywgeTogJzMnLCByeDogJzEnLCBrZXk6ICcxZmR1MGYnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdtOSAyMiAzLTMgMyAzJywga2V5OiAnMTd6NjVhJyB9XSxcbiAgWydyZWN0JywgeyB3aWR0aDogJzcnLCBoZWlnaHQ6ICcxMycsIHg6ICcxNCcsIHk6ICczJywgcng6ICcxJywga2V5OiAnMXNxdW40JyB9XSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBCZXR3ZWVuVmVydGljYWxFbmRcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNtVmpkQ0IzYVdSMGFEMGlOeUlnYUdWcFoyaDBQU0l4TXlJZ2VEMGlNeUlnZVQwaU15SWdjbmc5SWpFaUlDOCtDaUFnUEhCaGRHZ2daRDBpYlRrZ01qSWdNeTB6SURNZ015SWdMejRLSUNBOGNtVmpkQ0IzYVdSMGFEMGlOeUlnYUdWcFoyaDBQU0l4TXlJZ2VEMGlNVFFpSUhrOUlqTWlJSEo0UFNJeElpQXZQZ284TDNOMlp6NEspIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2JldHdlZW4tdmVydGljYWwtZW5kXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgQmV0d2VlblZlcnRpY2FsRW5kID0gY3JlYXRlTHVjaWRlSWNvbignYmV0d2Vlbi12ZXJ0aWNhbC1lbmQnLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgQmV0d2VlblZlcnRpY2FsRW5kO1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbJ3JlY3QnLCB7IHdpZHRoOiAnNycsIGhlaWdodDogJzEzJywgeDogJzMnLCB5OiAnOCcsIHJ4OiAnMScsIGtleTogJzFmanJrdicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ20xNSAyLTMgMy0zLTMnLCBrZXk6ICcxdWg2ZWInIH1dLFxuICBbJ3JlY3QnLCB7IHdpZHRoOiAnNycsIGhlaWdodDogJzEzJywgeDogJzE0JywgeTogJzgnLCByeDogJzEnLCBrZXk6ICd3M2ZqZzgnIH1dLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIEJldHdlZW5WZXJ0aWNhbFN0YXJ0XG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjbVZqZENCM2FXUjBhRDBpTnlJZ2FHVnBaMmgwUFNJeE15SWdlRDBpTXlJZ2VUMGlPQ0lnY25nOUlqRWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaWJURTFJREl0TXlBekxUTXRNeUlnTHo0S0lDQThjbVZqZENCM2FXUjBhRDBpTnlJZ2FHVnBaMmgwUFNJeE15SWdlRDBpTVRRaUlIazlJamdpSUhKNFBTSXhJaUF2UGdvOEwzTjJaejRLKSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9iZXR3ZWVuLXZlcnRpY2FsLXN0YXJ0XG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgQmV0d2VlblZlcnRpY2FsU3RhcnQgPSBjcmVhdGVMdWNpZGVJY29uKCdiZXR3ZWVuLXZlcnRpY2FsLXN0YXJ0JywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IEJldHdlZW5WZXJ0aWNhbFN0YXJ0O1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbXG4gICAgJ3BhdGgnLFxuICAgIHtcbiAgICAgIGQ6ICdNMTIuNDA5IDEzLjAxN0E1IDUgMCAwIDEgMjIgMTVjMCAzLjg2Ni00IDctOSA3LTQuMDc3IDAtOC4xNTMtLjgyLTEwLjM3MS0yLjQ2Mi0uNDI2LS4zMTYtLjYzMS0uODMyLS42Mi0xLjM2MkMyLjExOCAxMi43MjMgMi42MjcgMiAxMCAyYTMgMyAwIDAgMSAzIDMgMiAyIDAgMCAxLTIgMmMtMS4xMDUgMC0xLjY0LS40NDQtMi0xJyxcbiAgICAgIGtleTogJzFwbWx5aCcsXG4gICAgfSxcbiAgXSxcbiAgWydwYXRoJywgeyBkOiAnTTE1IDE0YTUgNSAwIDAgMC03LjU4NCAyJywga2V5OiAnNXJiMjU0JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTkuOTY0IDYuODI1QzguMDE5IDcuOTc3IDkuNSAxMyA4IDE1Jywga2V5OiAna2J2c3g5JyB9XSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBCaWNlcHNGbGV4ZWRcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1USXVOREE1SURFekxqQXhOMEUxSURVZ01DQXdJREVnTWpJZ01UVmpNQ0F6TGpnMk5pMDBJRGN0T1NBM0xUUXVNRGMzSURBdE9DNHhOVE10TGpneUxURXdMak0zTVMweUxqUTJNaTB1TkRJMkxTNHpNVFl0TGpZek1TMHVPRE15TFM0Mk1pMHhMak0yTWtNeUxqRXhPQ0F4TWk0M01qTWdNaTQyTWpjZ01pQXhNQ0F5WVRNZ015QXdJREFnTVNBeklETWdNaUF5SURBZ01DQXhMVElnTW1NdE1TNHhNRFVnTUMweExqWTBMUzQwTkRRdE1pMHhJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHhOU0F4TkdFMUlEVWdNQ0F3SURBdE55NDFPRFFnTWlJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOT1M0NU5qUWdOaTQ0TWpWRE9DNHdNVGtnTnk0NU56Y2dPUzQxSURFeklEZ2dNVFVpSUM4K0Nqd3ZjM1puUGdvPSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvYmljZXBzLWZsZXhlZFxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IEJpY2Vwc0ZsZXhlZCA9IGNyZWF0ZUx1Y2lkZUljb24oJ2JpY2Vwcy1mbGV4ZWQnLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgQmljZXBzRmxleGVkO1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbJ2NpcmNsZScsIHsgY3g6ICcxOC41JywgY3k6ICcxNy41JywgcjogJzMuNScsIGtleTogJzE1eDRveCcgfV0sXG4gIFsnY2lyY2xlJywgeyBjeDogJzUuNScsIGN5OiAnMTcuNScsIHI6ICczLjUnLCBrZXk6ICcxbm9lMjcnIH1dLFxuICBbJ2NpcmNsZScsIHsgY3g6ICcxNScsIGN5OiAnNScsIHI6ICcxJywga2V5OiAnMTlsMjhlJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTEyIDE3LjVWMTRsLTMtMyA0LTMgMiAzaDInLCBrZXk6ICcxbnBndXYnIH1dLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIEJpa2VcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOFkybHlZMnhsSUdONFBTSXhPQzQxSWlCamVUMGlNVGN1TlNJZ2NqMGlNeTQxSWlBdlBnb2dJRHhqYVhKamJHVWdZM2c5SWpVdU5TSWdZM2s5SWpFM0xqVWlJSEk5SWpNdU5TSWdMejRLSUNBOFkybHlZMnhsSUdONFBTSXhOU0lnWTNrOUlqVWlJSEk5SWpFaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRFeUlERTNMalZXTVRSc0xUTXRNeUEwTFRNZ01pQXphRElpSUM4K0Nqd3ZjM1puUGdvPSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvYmlrZVxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IEJpa2UgPSBjcmVhdGVMdWNpZGVJY29uKCdiaWtlJywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IEJpa2U7XG4iLCJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbXG4gIFsncmVjdCcsIHsgeDogJzE0JywgeTogJzE0Jywgd2lkdGg6ICc0JywgaGVpZ2h0OiAnNicsIHJ4OiAnMicsIGtleTogJ3AwMnN2bCcgfV0sXG4gIFsncmVjdCcsIHsgeDogJzYnLCB5OiAnNCcsIHdpZHRoOiAnNCcsIGhlaWdodDogJzYnLCByeDogJzInLCBrZXk6ICd4bTR4a2onIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNNiAyMGg0Jywga2V5OiAnMWk2cTV0JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTE0IDEwaDQnLCBrZXk6ICdydTgxZTcnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNNiAxNGgydjYnLCBrZXk6ICcxNno5d2cnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTQgNGgydjYnLCBrZXk6ICcxaWRxOXUnIH1dLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIEJpbmFyeVxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y21WamRDQjRQU0l4TkNJZ2VUMGlNVFFpSUhkcFpIUm9QU0kwSWlCb1pXbG5hSFE5SWpZaUlISjRQU0l5SWlBdlBnb2dJRHh5WldOMElIZzlJallpSUhrOUlqUWlJSGRwWkhSb1BTSTBJaUJvWldsbmFIUTlJallpSUhKNFBTSXlJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMDJJREl3YURRaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRFMElERXdhRFFpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVFlnTVRSb01uWTJJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHhOQ0EwYURKMk5pSWdMejRLUEM5emRtYytDZz09KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9iaW5hcnlcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBCaW5hcnkgPSBjcmVhdGVMdWNpZGVJY29uKCdiaW5hcnknLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgQmluYXJ5O1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdNMTAgMTBoNCcsIGtleTogJ3RjZHZyZicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xOSA3VjRhMSAxIDAgMCAwLTEtMWgtMmExIDEgMCAwIDAtMSAxdjMnLCBrZXk6ICczYXBpdDEnIH1dLFxuICBbXG4gICAgJ3BhdGgnLFxuICAgIHtcbiAgICAgIGQ6ICdNMjAgMjFhMiAyIDAgMCAwIDItMnYtMy44NTFjMC0xLjM5LTItMi45NjItMi00LjgyOVY4YTEgMSAwIDAgMC0xLTFoLTRhMSAxIDAgMCAwLTEgMXYxMWEyIDIgMCAwIDAgMiAyeicsXG4gICAgICBrZXk6ICdyaHBnbncnLFxuICAgIH0sXG4gIF0sXG4gIFsncGF0aCcsIHsgZDogJ00gMjIgMTYgTCAyIDE2Jywga2V5OiAnMTRsa3E3JyB9XSxcbiAgW1xuICAgICdwYXRoJyxcbiAgICB7XG4gICAgICBkOiAnTTQgMjFhMiAyIDAgMCAxLTItMnYtMy44NTFjMC0xLjM5IDItMi45NjIgMi00LjgyOVY4YTEgMSAwIDAgMSAxLTFoNGExIDEgMCAwIDEgMSAxdjExYTIgMiAwIDAgMS0yIDJ6JyxcbiAgICAgIGtleTogJzEwNGIzaycsXG4gICAgfSxcbiAgXSxcbiAgWydwYXRoJywgeyBkOiAnTTkgN1Y0YTEgMSAwIDAgMC0xLTFINmExIDEgMCAwIDAtMSAxdjMnLCBrZXk6ICcxNGZjenAnIH1dLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIEJpbm9jdWxhcnNcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1UQWdNVEJvTkNJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTVRrZ04xWTBZVEVnTVNBd0lEQWdNQzB4TFRGb0xUSmhNU0F4SURBZ01DQXdMVEVnTVhZeklpQXZQZ29nSUR4d1lYUm9JR1E5SWsweU1DQXlNV0V5SURJZ01DQXdJREFnTWkweWRpMHpMamcxTVdNd0xURXVNemt0TWkweUxqazJNaTB5TFRRdU9ESTVWamhoTVNBeElEQWdNQ0F3TFRFdE1XZ3ROR0V4SURFZ01DQXdJREF0TVNBeGRqRXhZVElnTWlBd0lEQWdNQ0F5SURKNklpQXZQZ29nSUR4d1lYUm9JR1E5SWswZ01qSWdNVFlnVENBeUlERTJJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMDBJREl4WVRJZ01pQXdJREFnTVMweUxUSjJMVE11T0RVeFl6QXRNUzR6T1NBeUxUSXVPVFl5SURJdE5DNDRNamxXT0dFeElERWdNQ0F3SURFZ01TMHhhRFJoTVNBeElEQWdNQ0F4SURFZ01YWXhNV0V5SURJZ01DQXdJREV0TWlBeWVpSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk9TQTNWalJoTVNBeElEQWdNQ0F3TFRFdE1VZzJZVEVnTVNBd0lEQWdNQzB4SURGMk15SWdMejRLUEM5emRtYytDZz09KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9iaW5vY3VsYXJzXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgQmlub2N1bGFycyA9IGNyZWF0ZUx1Y2lkZUljb24oJ2Jpbm9jdWxhcnMnLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgQmlub2N1bGFycztcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgWydjaXJjbGUnLCB7IGN4OiAnMTInLCBjeTogJzExLjknLCByOiAnMicsIGtleTogJ2U4aDMxdycgfV0sXG4gIFsncGF0aCcsIHsgZDogJ002LjcgMy40Yy0uOSAyLjUgMCA1LjIgMi4yIDYuN0M2LjUgOSAzLjcgOS42IDIgMTEuNicsIGtleTogJzE3Ym9scicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ204LjkgMTAuMSAxLjQuOCcsIGtleTogJzE1ZXpueScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xNy4zIDMuNGMuOSAyLjUgMCA1LjItMi4yIDYuNyAyLjQtMS4yIDUuMi0uNiA2LjkgMS41Jywga2V5OiAnd3R3YTV1JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnbTE1LjEgMTAuMS0xLjQuOCcsIGtleTogJzFyMGIyOCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xNi43IDIwLjhjLTIuNi0uNC00LjYtMi42LTQuNy01LjMtLjIgMi42LTIuMSA0LjgtNC43IDUuMicsIGtleTogJ203cXN6aCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xMiAxMy45djEuNicsIGtleTogJ3pmeXlpbScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xMy41IDUuNGMtMS0uMi0yLS4yLTMgMCcsIGtleTogJzFiaTlxMCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xNyAxNi40Yy43LS43IDEuMi0xLjYgMS41LTIuNScsIGtleTogJzFyaGpxdycgfV0sXG4gIFsncGF0aCcsIHsgZDogJ001LjUgMTMuOWMuMy45LjggMS44IDEuNSAyLjUnLCBrZXk6ICc4Z3N1ZDMnIH1dLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIEJpb2hhemFyZFxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4WTJseVkyeGxJR040UFNJeE1pSWdZM2s5SWpFeExqa2lJSEk5SWpJaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRZdU55QXpMalJqTFM0NUlESXVOU0F3SURVdU1pQXlMaklnTmk0M1F6WXVOU0E1SURNdU55QTVMallnTWlBeE1TNDJJaUF2UGdvZ0lEeHdZWFJvSUdROUltMDRMamtnTVRBdU1TQXhMalF1T0NJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTVRjdU15QXpMalJqTGprZ01pNDFJREFnTlM0eUxUSXVNaUEyTGpjZ01pNDBMVEV1TWlBMUxqSXRMallnTmk0NUlERXVOU0lnTHo0S0lDQThjR0YwYUNCa1BTSnRNVFV1TVNBeE1DNHhMVEV1TkM0NElpQXZQZ29nSUR4d1lYUm9JR1E5SWsweE5pNDNJREl3TGpoakxUSXVOaTB1TkMwMExqWXRNaTQyTFRRdU55MDFMak10TGpJZ01pNDJMVEl1TVNBMExqZ3ROQzQzSURVdU1pSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk1USWdNVE11T1hZeExqWWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRURXpMalVnTlM0MFl5MHhMUzR5TFRJdExqSXRNeUF3SWlBdlBnb2dJRHh3WVhSb0lHUTlJazB4TnlBeE5pNDBZeTQzTFM0M0lERXVNaTB4TGpZZ01TNDFMVEl1TlNJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTlM0MUlERXpMamxqTGpNdU9TNDRJREV1T0NBeExqVWdNaTQxSWlBdlBnbzhMM04yWno0SykgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvYmlvaGF6YXJkXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgQmlvaGF6YXJkID0gY3JlYXRlTHVjaWRlSWNvbignYmlvaGF6YXJkJywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IEJpb2hhemFyZDtcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTE2IDdoLjAxJywga2V5OiAnMWtkeDAzJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTMuNCAxOEgxMmE4IDggMCAwIDAgOC04VjdhNCA0IDAgMCAwLTcuMjgtMi4zTDIgMjAnLCBrZXk6ICdvajFvYTgnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdtMjAgNyAyIC41LTIgLjUnLCBrZXk6ICcxMm52NGQnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTAgMTh2MycsIGtleTogJzF5ZWEwYScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xNCAxNy43NVYyMScsIGtleTogJzFweW1jYicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ003IDE4YTYgNiAwIDAgMCAzLjg0LTEwLjYxJywga2V5OiAnMW5wbm4wJyB9XSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBCaXJkXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NVFlnTjJndU1ERWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRUTXVOQ0F4T0VneE1tRTRJRGdnTUNBd0lEQWdPQzA0VmpkaE5DQTBJREFnTUNBd0xUY3VNamd0TWk0elRESWdNakFpSUM4K0NpQWdQSEJoZEdnZ1pEMGliVEl3SURjZ01pQXVOUzB5SUM0MUlpQXZQZ29nSUR4d1lYUm9JR1E5SWsweE1DQXhPSFl6SWlBdlBnb2dJRHh3WVhSb0lHUTlJazB4TkNBeE55NDNOVll5TVNJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTnlBeE9HRTJJRFlnTUNBd0lEQWdNeTQ0TkMweE1DNDJNU0lnTHo0S1BDOXpkbWMrQ2c9PSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvYmlyZFxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IEJpcmQgPSBjcmVhdGVMdWNpZGVJY29uKCdiaXJkJywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IEJpcmQ7XG4iLCJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbXG4gIFtcbiAgICAncGF0aCcsXG4gICAge1xuICAgICAgZDogJ00xMS43NjcgMTkuMDg5YzQuOTI0Ljg2OCA2LjE0LTYuMDI1IDEuMjE2LTYuODk0bS0xLjIxNiA2Ljg5NEw1Ljg2IDE4LjA0N201LjkwOCAxLjA0Mi0uMzQ3IDEuOTdtMS41NjMtOC44NjRjNC45MjQuODY5IDYuMTQtNi4wMjUgMS4yMTUtNi44OTNtLTEuMjE1IDYuODkzLTMuOTQtLjY5NG01LjE1NS02LjJMOC4yOSA0LjI2bTUuOTA4IDEuMDQyLjM0OC0xLjk3TTcuNDggMjAuMzY0bDMuMTI2LTE3LjcyNycsXG4gICAgICBrZXk6ICd5cjhpZGcnLFxuICAgIH0sXG4gIF0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgQml0Y29pblxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTVRFdU56WTNJREU1TGpBNE9XTTBMamt5TkM0NE5qZ2dOaTR4TkMwMkxqQXlOU0F4TGpJeE5pMDJMamc1TkcwdE1TNHlNVFlnTmk0NE9UUk1OUzQ0TmlBeE9DNHdORGR0TlM0NU1EZ2dNUzR3TkRJdExqTTBOeUF4TGprM2JURXVOVFl6TFRndU9EWTBZelF1T1RJMExqZzJPU0EyTGpFMExUWXVNREkxSURFdU1qRTFMVFl1T0RremJTMHhMakl4TlNBMkxqZzVNeTB6TGprMExTNDJPVFJ0TlM0eE5UVXROaTR5VERndU1qa2dOQzR5Tm0wMUxqa3dPQ0F4TGpBME1pNHpORGd0TVM0NU4wMDNMalE0SURJd0xqTTJOR3d6TGpFeU5pMHhOeTQzTWpjaUlDOCtDand2YzNablBnbz0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2JpdGNvaW5cbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBCaXRjb2luID0gY3JlYXRlTHVjaWRlSWNvbignYml0Y29pbicsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBCaXRjb2luO1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbJ2NpcmNsZScsIHsgY3g6ICc5JywgY3k6ICc5JywgcjogJzcnLCBrZXk6ICdwMmg1dnAnIH1dLFxuICBbJ2NpcmNsZScsIHsgY3g6ICcxNScsIGN5OiAnMTUnLCByOiAnNycsIGtleTogJzE5ZW5uaicgfV0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgQmxlbmRcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOFkybHlZMnhsSUdONFBTSTVJaUJqZVQwaU9TSWdjajBpTnlJZ0x6NEtJQ0E4WTJseVkyeGxJR040UFNJeE5TSWdZM2s5SWpFMUlpQnlQU0kzSWlBdlBnbzhMM04yWno0SykgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvYmxlbmRcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBCbGVuZCA9IGNyZWF0ZUx1Y2lkZUljb24oJ2JsZW5kJywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IEJsZW5kO1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdNMyAzaDE4Jywga2V5OiAnbzdyNzEyJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTIwIDdIOCcsIGtleTogJ2dkMmZvMicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00yMCAxMUg4Jywga2V5OiAnMXlucDg5JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTEwIDE5aDEwJywga2V5OiAnMTloams1JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTggMTVoMTInLCBrZXk6ICcxeXF6bmUnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNNCAzdjE0Jywga2V5OiAnZmdncXpuJyB9XSxcbiAgWydjaXJjbGUnLCB7IGN4OiAnNCcsIGN5OiAnMTknLCByOiAnMicsIGtleTogJ3AzbTlyMCcgfV0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgQmxpbmRzXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NeUF6YURFNElpQXZQZ29nSUR4d1lYUm9JR1E5SWsweU1DQTNTRGdpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVEl3SURFeFNEZ2lJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRURXdJREU1YURFd0lpQXZQZ29nSUR4d1lYUm9JR1E5SWswNElERTFhREV5SWlBdlBnb2dJRHh3WVhSb0lHUTlJazAwSUROMk1UUWlJQzgrQ2lBZ1BHTnBjbU5zWlNCamVEMGlOQ0lnWTNrOUlqRTVJaUJ5UFNJeUlpQXZQZ284TDNOMlp6NEspIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2JsaW5kc1xuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IEJsaW5kcyA9IGNyZWF0ZUx1Y2lkZUljb24oJ2JsaW5kcycsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBCbGluZHM7XG4iLCJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbXG4gIFtcbiAgICAncGF0aCcsXG4gICAge1xuICAgICAgZDogJ00xMCAyMlY3YTEgMSAwIDAgMC0xLTFINGEyIDIgMCAwIDAtMiAydjEyYTIgMiAwIDAgMCAyIDJoMTJhMiAyIDAgMCAwIDItMnYtNWExIDEgMCAwIDAtMS0xSDInLFxuICAgICAga2V5OiAnMWFoNmcyJyxcbiAgICB9LFxuICBdLFxuICBbJ3JlY3QnLCB7IHg6ICcxNCcsIHk6ICcyJywgd2lkdGg6ICc4JywgaGVpZ2h0OiAnOCcsIHJ4OiAnMScsIGtleTogJzg4bHVmYicgfV0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgQmxvY2tzXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NVEFnTWpKV04yRXhJREVnTUNBd0lEQXRNUzB4U0RSaE1pQXlJREFnTUNBd0xUSWdNbll4TW1FeUlESWdNQ0F3SURBZ01pQXlhREV5WVRJZ01pQXdJREFnTUNBeUxUSjJMVFZoTVNBeElEQWdNQ0F3TFRFdE1VZ3lJaUF2UGdvZ0lEeHlaV04wSUhnOUlqRTBJaUI1UFNJeUlpQjNhV1IwYUQwaU9DSWdhR1ZwWjJoMFBTSTRJaUJ5ZUQwaU1TSWdMejRLUEM5emRtYytDZz09KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9ibG9ja3NcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBCbG9ja3MgPSBjcmVhdGVMdWNpZGVJY29uKCdibG9ja3MnLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgQmxvY2tzO1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdtNyA3IDEwIDEwLTUgNVYybDUgNUw3IDE3Jywga2V5OiAnMXE1NDkwJyB9XSxcbiAgWydsaW5lJywgeyB4MTogJzE4JywgeDI6ICcyMScsIHkxOiAnMTInLCB5MjogJzEyJywga2V5OiAnMXJzampzJyB9XSxcbiAgWydsaW5lJywgeyB4MTogJzMnLCB4MjogJzYnLCB5MTogJzEyJywgeTI6ICcxMicsIGtleTogJzExeWw4YycgfV0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgQmx1ZXRvb3RoQ29ubmVjdGVkXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSnROeUEzSURFd0lERXdMVFVnTlZZeWJEVWdOVXczSURFM0lpQXZQZ29nSUR4c2FXNWxJSGd4UFNJeE9DSWdlREk5SWpJeElpQjVNVDBpTVRJaUlIa3lQU0l4TWlJZ0x6NEtJQ0E4YkdsdVpTQjRNVDBpTXlJZ2VESTlJallpSUhreFBTSXhNaUlnZVRJOUlqRXlJaUF2UGdvOEwzTjJaejRLKSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9ibHVldG9vdGgtY29ubmVjdGVkXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgQmx1ZXRvb3RoQ29ubmVjdGVkID0gY3JlYXRlTHVjaWRlSWNvbignYmx1ZXRvb3RoLWNvbm5lY3RlZCcsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBCbHVldG9vdGhDb25uZWN0ZWQ7XG4iLCJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ20xNyAxNy01IDVWMTJsLTUgNScsIGtleTogJ3Y1YWNpNicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ20yIDIgMjAgMjAnLCBrZXk6ICcxb29ld3knIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTQuNSA5LjUgMTcgN2wtNS01djQuNScsIGtleTogJzFrZGRmeicgfV0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgQmx1ZXRvb3RoT2ZmXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSnRNVGNnTVRjdE5TQTFWakV5YkMwMUlEVWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaWJUSWdNaUF5TUNBeU1DSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk1UUXVOU0E1TGpVZ01UY2dOMnd0TlMwMWRqUXVOU0lnTHo0S1BDOXpkbWMrQ2c9PSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvYmx1ZXRvb3RoLW9mZlxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IEJsdWV0b290aE9mZiA9IGNyZWF0ZUx1Y2lkZUljb24oJ2JsdWV0b290aC1vZmYnLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgQmx1ZXRvb3RoT2ZmO1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdtNyA3IDEwIDEwLTUgNVYybDUgNUw3IDE3Jywga2V5OiAnMXE1NDkwJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTIwLjgzIDE0LjgzYTQgNCAwIDAgMCAwLTUuNjYnLCBrZXk6ICdrOHRuMWonIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTggMTJoLjAxJywga2V5OiAneWpuZXQ2JyB9XSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBCbHVldG9vdGhTZWFyY2hpbmdcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKdE55QTNJREV3SURFd0xUVWdOVll5YkRVZ05VdzNJREUzSWlBdlBnb2dJRHh3WVhSb0lHUTlJazB5TUM0NE15QXhOQzQ0TTJFMElEUWdNQ0F3SURBZ01DMDFMalkySWlBdlBnb2dJRHh3WVhSb0lHUTlJazB4T0NBeE1tZ3VNREVpSUM4K0Nqd3ZjM1puUGdvPSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvYmx1ZXRvb3RoLXNlYXJjaGluZ1xuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IEJsdWV0b290aFNlYXJjaGluZyA9IGNyZWF0ZUx1Y2lkZUljb24oJ2JsdWV0b290aC1zZWFyY2hpbmcnLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgQmx1ZXRvb3RoU2VhcmNoaW5nO1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1sncGF0aCcsIHsgZDogJ203IDcgMTAgMTAtNSA1VjJsNSA1TDcgMTcnLCBrZXk6ICcxcTU0OTAnIH1dXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIEJsdWV0b290aFxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0p0TnlBM0lERXdJREV3TFRVZ05WWXliRFVnTlV3M0lERTNJaUF2UGdvOEwzTjJaejRLKSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9ibHVldG9vdGhcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBCbHVldG9vdGggPSBjcmVhdGVMdWNpZGVJY29uKCdibHVldG9vdGgnLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgQmx1ZXRvb3RoO1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbXG4gICAgJ3BhdGgnLFxuICAgIHsgZDogJ002IDEyaDlhNCA0IDAgMCAxIDAgOEg3YTEgMSAwIDAgMS0xLTFWNWExIDEgMCAwIDEgMS0xaDdhNCA0IDAgMCAxIDAgOCcsIGtleTogJ21nOXJqeCcgfSxcbiAgXSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBCb2xkXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5OaUF4TW1nNVlUUWdOQ0F3SURBZ01TQXdJRGhJTjJFeElERWdNQ0F3SURFdE1TMHhWalZoTVNBeElEQWdNQ0F4SURFdE1XZzNZVFFnTkNBd0lEQWdNU0F3SURnaUlDOCtDand2YzNablBnbz0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2JvbGRcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBCb2xkID0gY3JlYXRlTHVjaWRlSWNvbignYm9sZCcsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBCb2xkO1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbXG4gICAgJ3BhdGgnLFxuICAgIHtcbiAgICAgIGQ6ICdNMjEgMTZWOGEyIDIgMCAwIDAtMS0xLjczbC03LTRhMiAyIDAgMCAwLTIgMGwtNyA0QTIgMiAwIDAgMCAzIDh2OGEyIDIgMCAwIDAgMSAxLjczbDcgNGEyIDIgMCAwIDAgMiAwbDctNEEyIDIgMCAwIDAgMjEgMTZ6JyxcbiAgICAgIGtleTogJ3l0MGh4bicsXG4gICAgfSxcbiAgXSxcbiAgWydjaXJjbGUnLCB7IGN4OiAnMTInLCBjeTogJzEyJywgcjogJzQnLCBrZXk6ICc0ZXhpcDInIH1dLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIEJvbHRcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1qRWdNVFpXT0dFeUlESWdNQ0F3SURBdE1TMHhMamN6YkMwM0xUUmhNaUF5SURBZ01DQXdMVElnTUd3dE55QTBRVElnTWlBd0lEQWdNQ0F6SURoMk9HRXlJRElnTUNBd0lEQWdNU0F4TGpjemJEY2dOR0V5SURJZ01DQXdJREFnTWlBd2JEY3RORUV5SURJZ01DQXdJREFnTWpFZ01UWjZJaUF2UGdvZ0lEeGphWEpqYkdVZ1kzZzlJakV5SWlCamVUMGlNVElpSUhJOUlqUWlJQzgrQ2p3dmMzWm5QZ289KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9ib2x0XG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgQm9sdCA9IGNyZWF0ZUx1Y2lkZUljb24oJ2JvbHQnLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgQm9sdDtcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgWydjaXJjbGUnLCB7IGN4OiAnMTEnLCBjeTogJzEzJywgcjogJzknLCBrZXk6ICdoZDE0OScgfV0sXG4gIFtcbiAgICAncGF0aCcsXG4gICAge1xuICAgICAgZDogJ00xNC4zNSA0LjY1IDE2LjMgMi43YTIuNDEgMi40MSAwIDAgMSAzLjQgMGwxLjYgMS42YTIuNCAyLjQgMCAwIDEgMCAzLjRsLTEuOTUgMS45NScsXG4gICAgICBrZXk6ICdqcDRqMWInLFxuICAgIH0sXG4gIF0sXG4gIFsncGF0aCcsIHsgZDogJ20yMiAyLTEuNSAxLjUnLCBrZXk6ICdheTkydWcnIH1dLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIEJvbWJcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOFkybHlZMnhsSUdONFBTSXhNU0lnWTNrOUlqRXpJaUJ5UFNJNUlpQXZQZ29nSUR4d1lYUm9JR1E5SWsweE5DNHpOU0EwTGpZMUlERTJMak1nTWk0M1lUSXVOREVnTWk0ME1TQXdJREFnTVNBekxqUWdNR3d4TGpZZ01TNDJZVEl1TkNBeUxqUWdNQ0F3SURFZ01DQXpMalJzTFRFdU9UVWdNUzQ1TlNJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0p0TWpJZ01pMHhMalVnTVM0MUlpQXZQZ284TDNOMlp6NEspIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2JvbWJcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBCb21iID0gY3JlYXRlTHVjaWRlSWNvbignYm9tYicsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBCb21iO1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbXG4gICAgJ3BhdGgnLFxuICAgIHtcbiAgICAgIGQ6ICdNMTcgMTBjLjctLjcgMS42OSAwIDIuNSAwYTIuNSAyLjUgMCAxIDAgMC01IC41LjUgMCAwIDEtLjUtLjUgMi41IDIuNSAwIDEgMC01IDBjMCAuODEuNyAxLjggMCAyLjVsLTcgN2MtLjcuNy0xLjY5IDAtMi41IDBhMi41IDIuNSAwIDAgMCAwIDVjLjI4IDAgLjUuMjIuNS41YTIuNSAyLjUgMCAxIDAgNSAwYzAtLjgxLS43LTEuOCAwLTIuNVonLFxuICAgICAga2V5OiAndzYxMHV3JyxcbiAgICB9LFxuICBdLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIEJvbmVcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1UY2dNVEJqTGpjdExqY2dNUzQyT1NBd0lESXVOU0F3WVRJdU5TQXlMalVnTUNBeElEQWdNQzAxSUM0MUxqVWdNQ0F3SURFdExqVXRMalVnTWk0MUlESXVOU0F3SURFZ01DMDFJREJqTUNBdU9ERXVOeUF4TGpnZ01DQXlMalZzTFRjZ04yTXRMamN1TnkweExqWTVJREF0TWk0MUlEQmhNaTQxSURJdU5TQXdJREFnTUNBd0lEVmpMakk0SURBZ0xqVXVNakl1TlM0MVlUSXVOU0F5TGpVZ01DQXhJREFnTlNBd1l6QXRMamd4TFM0M0xURXVPQ0F3TFRJdU5Wb2lJQzgrQ2p3dmMzWm5QZ289KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9ib25lXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgQm9uZSA9IGNyZWF0ZUx1Y2lkZUljb24oJ2JvbmUnLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgQm9uZTtcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgW1xuICAgICdwYXRoJyxcbiAgICB7XG4gICAgICBkOiAnTTQgMTkuNXYtMTVBMi41IDIuNSAwIDAgMSA2LjUgMkgxOWExIDEgMCAwIDEgMSAxdjE4YTEgMSAwIDAgMS0xIDFINi41YTEgMSAwIDAgMSAwLTVIMjAnLFxuICAgICAga2V5OiAnazNoYXpwJyxcbiAgICB9LFxuICBdLFxuICBbJ3BhdGgnLCB7IGQ6ICdtOCAxMyA0LTcgNCA3Jywga2V5OiAnNHJhcmk4JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTkuMSAxMWg1LjcnLCBrZXk6ICcxZ2tvdnQnIH1dLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIEJvb2tBXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5OQ0F4T1M0MWRpMHhOVUV5TGpVZ01pNDFJREFnTUNBeElEWXVOU0F5U0RFNVlURWdNU0F3SURBZ01TQXhJREYyTVRoaE1TQXhJREFnTUNBeExURWdNVWcyTGpWaE1TQXhJREFnTUNBeElEQXROVWd5TUNJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0p0T0NBeE15QTBMVGNnTkNBM0lpQXZQZ29nSUR4d1lYUm9JR1E5SWswNUxqRWdNVEZvTlM0M0lpQXZQZ284TDNOMlp6NEspIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2Jvb2stYVxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IEJvb2tBID0gY3JlYXRlTHVjaWRlSWNvbignYm9vay1hJywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IEJvb2tBO1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdNMTIgNnY3Jywga2V5OiAnMWY2dHR6JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTE2IDh2MycsIGtleTogJ2dlamFtbCcgfV0sXG4gIFtcbiAgICAncGF0aCcsXG4gICAge1xuICAgICAgZDogJ000IDE5LjV2LTE1QTIuNSAyLjUgMCAwIDEgNi41IDJIMTlhMSAxIDAgMCAxIDEgMXYxOGExIDEgMCAwIDEtMSAxSDYuNWExIDEgMCAwIDEgMC01SDIwJyxcbiAgICAgIGtleTogJ2szaGF6cCcsXG4gICAgfSxcbiAgXSxcbiAgWydwYXRoJywgeyBkOiAnTTggOHYzJywga2V5OiAnMXF6cDQ5JyB9XSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBCb29rQXVkaW9cbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1USWdOblkzSWlBdlBnb2dJRHh3WVhSb0lHUTlJazB4TmlBNGRqTWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRUUWdNVGt1TlhZdE1UVkJNaTQxSURJdU5TQXdJREFnTVNBMkxqVWdNa2d4T1dFeElERWdNQ0F3SURFZ01TQXhkakU0WVRFZ01TQXdJREFnTVMweElERklOaTQxWVRFZ01TQXdJREFnTVNBd0xUVklNakFpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVGdnT0hZeklpQXZQZ284TDNOMlp6NEspIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2Jvb2stYXVkaW9cbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBCb29rQXVkaW8gPSBjcmVhdGVMdWNpZGVJY29uKCdib29rLWF1ZGlvJywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IEJvb2tBdWRpbztcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTEyIDEzaC4wMScsIGtleTogJ3kwdXV0dCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xMiA2djMnLCBrZXk6ICcxbTRiOWonIH1dLFxuICBbXG4gICAgJ3BhdGgnLFxuICAgIHtcbiAgICAgIGQ6ICdNNCAxOS41di0xNUEyLjUgMi41IDAgMCAxIDYuNSAySDE5YTEgMSAwIDAgMSAxIDF2MThhMSAxIDAgMCAxLTEgMUg2LjVhMSAxIDAgMCAxIDAtNUgyMCcsXG4gICAgICBrZXk6ICdrM2hhenAnLFxuICAgIH0sXG4gIF0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgQm9va0FsZXJ0XG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NVElnTVROb0xqQXhJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHhNaUEyZGpNaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRRZ01Ua3VOWFl0TVRWQk1pNDFJREl1TlNBd0lEQWdNU0EyTGpVZ01rZ3hPV0V4SURFZ01DQXdJREVnTVNBeGRqRTRZVEVnTVNBd0lEQWdNUzB4SURGSU5pNDFZVEVnTVNBd0lEQWdNU0F3TFRWSU1qQWlJQzgrQ2p3dmMzWm5QZ289KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9ib29rLWFsZXJ0XG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgQm9va0FsZXJ0ID0gY3JlYXRlTHVjaWRlSWNvbignYm9vay1hbGVydCcsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBCb29rQWxlcnQ7XG4iLCJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbXG4gIFtcbiAgICAncGF0aCcsXG4gICAge1xuICAgICAgZDogJ000IDE5LjV2LTE1QTIuNSAyLjUgMCAwIDEgNi41IDJIMTlhMSAxIDAgMCAxIDEgMXYxOGExIDEgMCAwIDEtMSAxSDYuNWExIDEgMCAwIDEgMC01SDIwJyxcbiAgICAgIGtleTogJ2szaGF6cCcsXG4gICAgfSxcbiAgXSxcbiAgWydwYXRoJywgeyBkOiAnbTkgOS41IDIgMiA0LTQnLCBrZXk6ICcxZHRoODInIH1dLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIEJvb2tDaGVja1xuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTkNBeE9TNDFkaTB4TlVFeUxqVWdNaTQxSURBZ01DQXhJRFl1TlNBeVNERTVZVEVnTVNBd0lEQWdNU0F4SURGMk1UaGhNU0F4SURBZ01DQXhMVEVnTVVnMkxqVmhNU0F4SURBZ01DQXhJREF0TlVneU1DSWdMejRLSUNBOGNHRjBhQ0JrUFNKdE9TQTVMalVnTWlBeUlEUXROQ0lnTHo0S1BDOXpkbWMrQ2c9PSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvYm9vay1jaGVja1xuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IEJvb2tDaGVjayA9IGNyZWF0ZUx1Y2lkZUljb24oJ2Jvb2stY2hlY2snLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgQm9va0NoZWNrO1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdNMiAxNlY0YTIgMiAwIDAgMSAyLTJoMTEnLCBrZXk6ICdzcHprazUnIH1dLFxuICBbXG4gICAgJ3BhdGgnLFxuICAgIHtcbiAgICAgIGQ6ICdNMjIgMThIMTFhMiAyIDAgMSAwIDAgNGgxMC41YS41LjUgMCAwIDAgLjUtLjV2LTE1YS41LjUgMCAwIDAtLjUtLjVIMTFhMiAyIDAgMCAwLTIgMnYxMicsXG4gICAgICBrZXk6ICcxd3owN2knLFxuICAgIH0sXG4gIF0sXG4gIFsncGF0aCcsIHsgZDogJ001IDE0SDRhMiAyIDAgMSAwIDAgNGgxJywga2V5OiAnMTZncWY5JyB9XSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBCb29rQ29weVxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTWlBeE5sWTBZVElnTWlBd0lEQWdNU0F5TFRKb01URWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRUSXlJREU0U0RFeFlUSWdNaUF3SURFZ01DQXdJRFJvTVRBdU5XRXVOUzQxSURBZ01DQXdJQzQxTFM0MWRpMHhOV0V1TlM0MUlEQWdNQ0F3TFM0MUxTNDFTREV4WVRJZ01pQXdJREFnTUMweUlESjJNVElpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVFVnTVRSSU5HRXlJRElnTUNBeElEQWdNQ0EwYURFaUlDOCtDand2YzNablBnbz0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2Jvb2stY29weVxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IEJvb2tDb3B5ID0gY3JlYXRlTHVjaWRlSWNvbignYm9vay1jb3B5JywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IEJvb2tDb3B5O1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdNMTIgMTdoMS41Jywga2V5OiAnMWdrYzY3JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTEyIDIyaDEuNScsIGtleTogJzFteTdzbicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xMiAyaDEuNScsIGtleTogJzE5dHZiNycgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xNy41IDIySDE5YTEgMSAwIDAgMCAxLTEnLCBrZXk6ICcxMGFrYmgnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTcuNSAySDE5YTEgMSAwIDAgMSAxIDF2MS41Jywga2V5OiAnMXZyZmpzJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTIwIDE0djNoLTIuNScsIGtleTogJzFuYWVqdScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00yMCA4LjVWMTAnLCBrZXk6ICcxY3RwZnUnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNNCAxMFY4LjUnLCBrZXk6ICcxbzN6ZzUnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNNCAxOS41VjE0Jywga2V5OiAnb2I4MXBmJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTQgNC41QTIuNSAyLjUgMCAwIDEgNi41IDJIOCcsIGtleTogJ3M4dmN5YicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ004IDIySDYuNWExIDEgMCAwIDEgMC01SDgnLCBrZXk6ICcxY3U3M3EnIH1dLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIEJvb2tEYXNoZWRcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1USWdNVGRvTVM0MUlpQXZQZ29nSUR4d1lYUm9JR1E5SWsweE1pQXlNbWd4TGpVaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRFeUlESm9NUzQxSWlBdlBnb2dJRHh3WVhSb0lHUTlJazB4Tnk0MUlESXlTREU1WVRFZ01TQXdJREFnTUNBeExURWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRURTNMalVnTWtneE9XRXhJREVnTUNBd0lERWdNU0F4ZGpFdU5TSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk1qQWdNVFIyTTJndE1pNDFJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHlNQ0E0TGpWV01UQWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRUUWdNVEJXT0M0MUlpQXZQZ29nSUR4d1lYUm9JR1E5SWswMElERTVMalZXTVRRaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRRZ05DNDFRVEl1TlNBeUxqVWdNQ0F3SURFZ05pNDFJREpJT0NJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOT0NBeU1rZzJMalZoTVNBeElEQWdNQ0F4SURBdE5VZzRJaUF2UGdvOEwzTjJaejRLKSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9ib29rLWRhc2hlZFxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IEJvb2tEYXNoZWQgPSBjcmVhdGVMdWNpZGVJY29uKCdib29rLWRhc2hlZCcsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBCb29rRGFzaGVkO1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdNMTIgMTNWNycsIGtleTogJ2gwcjIwbicgfV0sXG4gIFtcbiAgICAncGF0aCcsXG4gICAge1xuICAgICAgZDogJ000IDE5LjV2LTE1QTIuNSAyLjUgMCAwIDEgNi41IDJIMTlhMSAxIDAgMCAxIDEgMXYxOGExIDEgMCAwIDEtMSAxSDYuNWExIDEgMCAwIDEgMC01SDIwJyxcbiAgICAgIGtleTogJ2szaGF6cCcsXG4gICAgfSxcbiAgXSxcbiAgWydwYXRoJywgeyBkOiAnbTkgMTAgMyAzIDMtMycsIGtleTogJ3p0NWI0eScgfV0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgQm9va0Rvd25cbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1USWdNVE5XTnlJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTkNBeE9TNDFkaTB4TlVFeUxqVWdNaTQxSURBZ01DQXhJRFl1TlNBeVNERTVZVEVnTVNBd0lEQWdNU0F4SURGMk1UaGhNU0F4SURBZ01DQXhMVEVnTVVnMkxqVmhNU0F4SURBZ01DQXhJREF0TlVneU1DSWdMejRLSUNBOGNHRjBhQ0JrUFNKdE9TQXhNQ0F6SURNZ015MHpJaUF2UGdvOEwzTjJaejRLKSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9ib29rLWRvd25cbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBCb29rRG93biA9IGNyZWF0ZUx1Y2lkZUljb24oJ2Jvb2stZG93bicsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBCb29rRG93bjtcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgW1xuICAgICdwYXRoJyxcbiAgICB7XG4gICAgICBkOiAnTTQgMTkuNXYtMTVBMi41IDIuNSAwIDAgMSA2LjUgMkgxOWExIDEgMCAwIDEgMSAxdjE4YTEgMSAwIDAgMS0xIDFINi41YTEgMSAwIDAgMSAwLTVIMjAnLFxuICAgICAga2V5OiAnazNoYXpwJyxcbiAgICB9LFxuICBdLFxuICBbJ3BhdGgnLCB7IGQ6ICdNOCAxMnYtMmE0IDQgMCAwIDEgOCAwdjInLCBrZXk6ICcxdnNxa2onIH1dLFxuICBbJ2NpcmNsZScsIHsgY3g6ICcxNScsIGN5OiAnMTInLCByOiAnMScsIGtleTogJzF0bWFpaicgfV0sXG4gIFsnY2lyY2xlJywgeyBjeDogJzknLCBjeTogJzEyJywgcjogJzEnLCBrZXk6ICcxdmN0Z2YnIH1dLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIEJvb2tIZWFkcGhvbmVzXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5OQ0F4T1M0MWRpMHhOVUV5TGpVZ01pNDFJREFnTUNBeElEWXVOU0F5U0RFNVlURWdNU0F3SURBZ01TQXhJREYyTVRoaE1TQXhJREFnTUNBeExURWdNVWcyTGpWaE1TQXhJREFnTUNBeElEQXROVWd5TUNJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOT0NBeE1uWXRNbUUwSURRZ01DQXdJREVnT0NBd2RqSWlJQzgrQ2lBZ1BHTnBjbU5zWlNCamVEMGlNVFVpSUdONVBTSXhNaUlnY2owaU1TSWdMejRLSUNBOFkybHlZMnhsSUdONFBTSTVJaUJqZVQwaU1USWlJSEk5SWpFaUlDOCtDand2YzNablBnbz0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2Jvb2staGVhZHBob25lc1xuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IEJvb2tIZWFkcGhvbmVzID0gY3JlYXRlTHVjaWRlSWNvbignYm9vay1oZWFkcGhvbmVzJywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IEJvb2tIZWFkcGhvbmVzO1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbXG4gICAgJ3BhdGgnLFxuICAgIHtcbiAgICAgIGQ6ICdNMTYgOC4yQTIuMjIgMi4yMiAwIDAgMCAxMy44IDZjLS44IDAtMS40LjMtMS44LjktLjQtLjYtMS0uOS0xLjgtLjlBMi4yMiAyLjIyIDAgMCAwIDggOC4yYzAgLjYuMyAxLjIuNyAxLjZBMjI2LjY1MiAyMjYuNjUyIDAgMCAwIDEyIDEzYTQwNCA0MDQgMCAwIDAgMy4zLTMuMSAyLjQxMyAyLjQxMyAwIDAgMCAuNy0xLjcnLFxuICAgICAga2V5OiAnMXQ3NWE4JyxcbiAgICB9LFxuICBdLFxuICBbXG4gICAgJ3BhdGgnLFxuICAgIHtcbiAgICAgIGQ6ICdNNCAxOS41di0xNUEyLjUgMi41IDAgMCAxIDYuNSAySDE5YTEgMSAwIDAgMSAxIDF2MThhMSAxIDAgMCAxLTEgMUg2LjVhMSAxIDAgMCAxIDAtNUgyMCcsXG4gICAgICBrZXk6ICdrM2hhenAnLFxuICAgIH0sXG4gIF0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgQm9va0hlYXJ0XG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NVFlnT0M0eVFUSXVNaklnTWk0eU1pQXdJREFnTUNBeE15NDRJRFpqTFM0NElEQXRNUzQwTGpNdE1TNDRMamt0TGpRdExqWXRNUzB1T1MweExqZ3RMamxCTWk0eU1pQXlMakl5SURBZ01DQXdJRGdnT0M0eVl6QWdMall1TXlBeExqSXVOeUF4TGpaQk1qSTJMalkxTWlBeU1qWXVOalV5SURBZ01DQXdJREV5SURFellUUXdOQ0EwTURRZ01DQXdJREFnTXk0ekxUTXVNU0F5TGpReE15QXlMalF4TXlBd0lEQWdNQ0F1TnkweExqY2lJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRUUWdNVGt1TlhZdE1UVkJNaTQxSURJdU5TQXdJREFnTVNBMkxqVWdNa2d4T1dFeElERWdNQ0F3SURFZ01TQXhkakU0WVRFZ01TQXdJREFnTVMweElERklOaTQxWVRFZ01TQXdJREFnTVNBd0xUVklNakFpSUM4K0Nqd3ZjM1puUGdvPSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvYm9vay1oZWFydFxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IEJvb2tIZWFydCA9IGNyZWF0ZUx1Y2lkZUljb24oJ2Jvb2staGVhcnQnLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgQm9va0hlYXJ0O1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdtMjAgMTMuNy0yLjEtMi4xYTIgMiAwIDAgMC0yLjggMEw5LjcgMTcnLCBrZXk6ICdxNm9qZjAnIH1dLFxuICBbXG4gICAgJ3BhdGgnLFxuICAgIHtcbiAgICAgIGQ6ICdNNCAxOS41di0xNUEyLjUgMi41IDAgMCAxIDYuNSAySDE5YTEgMSAwIDAgMSAxIDF2MThhMSAxIDAgMCAxLTEgMUg2LjVhMSAxIDAgMCAxIDAtNUgyMCcsXG4gICAgICBrZXk6ICdrM2hhenAnLFxuICAgIH0sXG4gIF0sXG4gIFsnY2lyY2xlJywgeyBjeDogJzEwJywgY3k6ICc4JywgcjogJzInLCBrZXk6ICcycWtqNHAnIH1dLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIEJvb2tJbWFnZVxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0p0TWpBZ01UTXVOeTB5TGpFdE1pNHhZVElnTWlBd0lEQWdNQzB5TGpnZ01FdzVMamNnTVRjaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRRZ01Ua3VOWFl0TVRWQk1pNDFJREl1TlNBd0lEQWdNU0EyTGpVZ01rZ3hPV0V4SURFZ01DQXdJREVnTVNBeGRqRTRZVEVnTVNBd0lEQWdNUzB4SURGSU5pNDFZVEVnTVNBd0lEQWdNU0F3TFRWSU1qQWlJQzgrQ2lBZ1BHTnBjbU5zWlNCamVEMGlNVEFpSUdONVBTSTRJaUJ5UFNJeUlpQXZQZ284TDNOMlp6NEspIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2Jvb2staW1hZ2VcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBCb29rSW1hZ2UgPSBjcmVhdGVMdWNpZGVJY29uKCdib29rLWltYWdlJywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IEJvb2tJbWFnZTtcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnbTE5IDMgMSAxJywga2V5OiAnemUxNG9jJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnbTIwIDItNC41IDQuNScsIGtleTogJzFzcHByOCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00yMCA3Ljg5OFYyMWExIDEgMCAwIDEtMSAxSDYuNWExIDEgMCAwIDEgMC01SDIwJywga2V5OiAnMXh6b2d6JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTQgMTkuNXYtMTVBMi41IDIuNSAwIDAgMSA2LjUgMmg3Ljg0NCcsIGtleTogJ3Z0ZGc2aCcgfV0sXG4gIFsnY2lyY2xlJywgeyBjeDogJzE0JywgY3k6ICc4JywgcjogJzInLCBrZXk6ICd1NDllcWwnIH1dLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIEJvb2tLZXlcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKdE1Ua2dNeUF4SURFaUlDOCtDaUFnUEhCaGRHZ2daRDBpYlRJd0lESXROQzQxSURRdU5TSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk1qQWdOeTQ0T1RoV01qRmhNU0F4SURBZ01DQXhMVEVnTVVnMkxqVmhNU0F4SURBZ01DQXhJREF0TlVneU1DSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk5DQXhPUzQxZGkweE5VRXlMalVnTWk0MUlEQWdNQ0F4SURZdU5TQXlhRGN1T0RRMElpQXZQZ29nSUR4amFYSmpiR1VnWTNnOUlqRTBJaUJqZVQwaU9DSWdjajBpTWlJZ0x6NEtQQzl6ZG1jK0NnPT0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2Jvb2sta2V5XG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgQm9va0tleSA9IGNyZWF0ZUx1Y2lkZUljb24oJ2Jvb2sta2V5JywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IEJvb2tLZXk7XG4iLCJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ00xOCA2VjRhMiAyIDAgMSAwLTQgMHYyJywga2V5OiAnMWFxdXpzJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTIwIDE1djZhMSAxIDAgMCAxLTEgMUg2LjVhMSAxIDAgMCAxIDAtNUgyMCcsIGtleTogJzFya2ozMicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ000IDE5LjV2LTE1QTIuNSAyLjUgMCAwIDEgNi41IDJIMTAnLCBrZXk6ICcxOHdnb3cnIH1dLFxuICBbJ3JlY3QnLCB7IHg6ICcxMicsIHk6ICc2Jywgd2lkdGg6ICc4JywgaGVpZ2h0OiAnNScsIHJ4OiAnMScsIGtleTogJzczbDMwbycgfV0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgQm9va0xvY2tcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1UZ2dObFkwWVRJZ01pQXdJREVnTUMwMElEQjJNaUlnTHo0S0lDQThjR0YwYUNCa1BTSk5NakFnTVRWMk5tRXhJREVnTUNBd0lERXRNU0F4U0RZdU5XRXhJREVnTUNBd0lERWdNQzAxU0RJd0lpQXZQZ29nSUR4d1lYUm9JR1E5SWswMElERTVMalYyTFRFMVFUSXVOU0F5TGpVZ01DQXdJREVnTmk0MUlESklNVEFpSUM4K0NpQWdQSEpsWTNRZ2VEMGlNVElpSUhrOUlqWWlJSGRwWkhSb1BTSTRJaUJvWldsbmFIUTlJalVpSUhKNFBTSXhJaUF2UGdvOEwzTjJaejRLKSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9ib29rLWxvY2tcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBCb29rTG9jayA9IGNyZWF0ZUx1Y2lkZUljb24oJ2Jvb2stbG9jaycsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBCb29rTG9jaztcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTEwIDJ2OGwzLTMgMyAzVjInLCBrZXk6ICdzcXczcmonIH1dLFxuICBbXG4gICAgJ3BhdGgnLFxuICAgIHtcbiAgICAgIGQ6ICdNNCAxOS41di0xNUEyLjUgMi41IDAgMCAxIDYuNSAySDE5YTEgMSAwIDAgMSAxIDF2MThhMSAxIDAgMCAxLTEgMUg2LjVhMSAxIDAgMCAxIDAtNUgyMCcsXG4gICAgICBrZXk6ICdrM2hhenAnLFxuICAgIH0sXG4gIF0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgQm9va01hcmtlZFxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTVRBZ01uWTRiRE10TXlBeklETldNaUlnTHo0S0lDQThjR0YwYUNCa1BTSk5OQ0F4T1M0MWRpMHhOVUV5TGpVZ01pNDFJREFnTUNBeElEWXVOU0F5U0RFNVlURWdNU0F3SURBZ01TQXhJREYyTVRoaE1TQXhJREFnTUNBeExURWdNVWcyTGpWaE1TQXhJREFnTUNBeElEQXROVWd5TUNJZ0x6NEtQQzl6ZG1jK0NnPT0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2Jvb2stbWFya2VkXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgQm9va01hcmtlZCA9IGNyZWF0ZUx1Y2lkZUljb24oJ2Jvb2stbWFya2VkJywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IEJvb2tNYXJrZWQ7XG4iLCJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbXG4gIFtcbiAgICAncGF0aCcsXG4gICAge1xuICAgICAgZDogJ000IDE5LjV2LTE1QTIuNSAyLjUgMCAwIDEgNi41IDJIMTlhMSAxIDAgMCAxIDEgMXYxOGExIDEgMCAwIDEtMSAxSDYuNWExIDEgMCAwIDEgMC01SDIwJyxcbiAgICAgIGtleTogJ2szaGF6cCcsXG4gICAgfSxcbiAgXSxcbiAgWydwYXRoJywgeyBkOiAnTTkgMTBoNicsIGtleTogJzlneHpzaCcgfV0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgQm9va01pbnVzXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5OQ0F4T1M0MWRpMHhOVUV5TGpVZ01pNDFJREFnTUNBeElEWXVOU0F5U0RFNVlURWdNU0F3SURBZ01TQXhJREYyTVRoaE1TQXhJREFnTUNBeExURWdNVWcyTGpWaE1TQXhJREFnTUNBeElEQXROVWd5TUNJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOT1NBeE1HZzJJaUF2UGdvOEwzTjJaejRLKSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9ib29rLW1pbnVzXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgQm9va01pbnVzID0gY3JlYXRlTHVjaWRlSWNvbignYm9vay1taW51cycsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBCb29rTWludXM7XG4iLCJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ00xMiAyMVY3Jywga2V5OiAnZ2o2ZzUyJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnbTE2IDEyIDIgMiA0LTQnLCBrZXk6ICdtZGFqdW0nIH1dLFxuICBbXG4gICAgJ3BhdGgnLFxuICAgIHtcbiAgICAgIGQ6ICdNMjIgNlY0YTEgMSAwIDAgMC0xLTFoLTVhNCA0IDAgMCAwLTQgNCA0IDQgMCAwIDAtNC00SDNhMSAxIDAgMCAwLTEgMXYxM2ExIDEgMCAwIDAgMSAxaDZhMyAzIDAgMCAxIDMgMyAzIDMgMCAwIDEgMy0zaDZhMSAxIDAgMCAwIDEtMXYtMS4zJyxcbiAgICAgIGtleTogJzhhcm5rYicsXG4gICAgfSxcbiAgXSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBCb29rT3BlbkNoZWNrXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NVElnTWpGV055SWdMejRLSUNBOGNHRjBhQ0JrUFNKdE1UWWdNVElnTWlBeUlEUXROQ0lnTHo0S0lDQThjR0YwYUNCa1BTSk5NaklnTmxZMFlURWdNU0F3SURBZ01DMHhMVEZvTFRWaE5DQTBJREFnTUNBd0xUUWdOQ0EwSURRZ01DQXdJREF0TkMwMFNETmhNU0F4SURBZ01DQXdMVEVnTVhZeE0yRXhJREVnTUNBd0lEQWdNU0F4YURaaE15QXpJREFnTUNBeElETWdNeUF6SURNZ01DQXdJREVnTXkwemFEWmhNU0F4SURBZ01DQXdJREV0TVhZdE1TNHpJaUF2UGdvOEwzTjJaejRLKSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9ib29rLW9wZW4tY2hlY2tcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBCb29rT3BlbkNoZWNrID0gY3JlYXRlTHVjaWRlSWNvbignYm9vay1vcGVuLWNoZWNrJywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IEJvb2tPcGVuQ2hlY2s7XG4iLCJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ00xMiA3djE0Jywga2V5OiAnMWFreXRzJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTE2IDEyaDInLCBrZXk6ICc3cTlsbDUnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTYgOGgyJywga2V5OiAnbXN1cnd5JyB9XSxcbiAgW1xuICAgICdwYXRoJyxcbiAgICB7XG4gICAgICBkOiAnTTMgMThhMSAxIDAgMCAxLTEtMVY0YTEgMSAwIDAgMSAxLTFoNWE0IDQgMCAwIDEgNCA0IDQgNCAwIDAgMSA0LTRoNWExIDEgMCAwIDEgMSAxdjEzYTEgMSAwIDAgMS0xIDFoLTZhMyAzIDAgMCAwLTMgMyAzIDMgMCAwIDAtMy0zeicsXG4gICAgICBrZXk6ICdydWo4eScsXG4gICAgfSxcbiAgXSxcbiAgWydwYXRoJywgeyBkOiAnTTYgMTJoMicsIGtleTogJzMyd3ZmYycgfV0sXG4gIFsncGF0aCcsIHsgZDogJ002IDhoMicsIGtleTogJzMwb2JvaicgfV0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgQm9va09wZW5UZXh0XG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NVElnTjNZeE5DSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk1UWWdNVEpvTWlJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTVRZZ09HZ3lJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHpJREU0WVRFZ01TQXdJREFnTVMweExURldOR0V4SURFZ01DQXdJREVnTVMweGFEVmhOQ0EwSURBZ01DQXhJRFFnTkNBMElEUWdNQ0F3SURFZ05DMDBhRFZoTVNBeElEQWdNQ0F4SURFZ01YWXhNMkV4SURFZ01DQXdJREV0TVNBeGFDMDJZVE1nTXlBd0lEQWdNQzB6SURNZ015QXpJREFnTUNBd0xUTXRNM29pSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVFlnTVRKb01pSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk5pQTRhRElpSUM4K0Nqd3ZjM1puUGdvPSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvYm9vay1vcGVuLXRleHRcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBCb29rT3BlblRleHQgPSBjcmVhdGVMdWNpZGVJY29uKCdib29rLW9wZW4tdGV4dCcsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBCb29rT3BlblRleHQ7XG4iLCJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ00xMiA3djE0Jywga2V5OiAnMWFreXRzJyB9XSxcbiAgW1xuICAgICdwYXRoJyxcbiAgICB7XG4gICAgICBkOiAnTTMgMThhMSAxIDAgMCAxLTEtMVY0YTEgMSAwIDAgMSAxLTFoNWE0IDQgMCAwIDEgNCA0IDQgNCAwIDAgMSA0LTRoNWExIDEgMCAwIDEgMSAxdjEzYTEgMSAwIDAgMS0xIDFoLTZhMyAzIDAgMCAwLTMgMyAzIDMgMCAwIDAtMy0zeicsXG4gICAgICBrZXk6ICdydWo4eScsXG4gICAgfSxcbiAgXSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBCb29rT3BlblxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTVRJZ04zWXhOQ0lnTHo0S0lDQThjR0YwYUNCa1BTSk5NeUF4T0dFeElERWdNQ0F3SURFdE1TMHhWalJoTVNBeElEQWdNQ0F4SURFdE1XZzFZVFFnTkNBd0lEQWdNU0EwSURRZ05DQTBJREFnTUNBeElEUXROR2cxWVRFZ01TQXdJREFnTVNBeElERjJNVE5oTVNBeElEQWdNQ0F4TFRFZ01XZ3RObUV6SURNZ01DQXdJREF0TXlBeklETWdNeUF3SURBZ01DMHpMVE42SWlBdlBnbzhMM04yWno0SykgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvYm9vay1vcGVuXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgQm9va09wZW4gPSBjcmVhdGVMdWNpZGVJY29uKCdib29rLW9wZW4nLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgQm9va09wZW47XG4iLCJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ00xMiA3djYnLCBrZXk6ICdsdzFqNDMnIH1dLFxuICBbXG4gICAgJ3BhdGgnLFxuICAgIHtcbiAgICAgIGQ6ICdNNCAxOS41di0xNUEyLjUgMi41IDAgMCAxIDYuNSAySDE5YTEgMSAwIDAgMSAxIDF2MThhMSAxIDAgMCAxLTEgMUg2LjVhMSAxIDAgMCAxIDAtNUgyMCcsXG4gICAgICBrZXk6ICdrM2hhenAnLFxuICAgIH0sXG4gIF0sXG4gIFsncGF0aCcsIHsgZDogJ005IDEwaDYnLCBrZXk6ICc5Z3h6c2gnIH1dLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIEJvb2tQbHVzXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NVElnTjNZMklpQXZQZ29nSUR4d1lYUm9JR1E5SWswMElERTVMalYyTFRFMVFUSXVOU0F5TGpVZ01DQXdJREVnTmk0MUlESklNVGxoTVNBeElEQWdNQ0F4SURFZ01YWXhPR0V4SURFZ01DQXdJREV0TVNBeFNEWXVOV0V4SURFZ01DQXdJREVnTUMwMVNESXdJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMDVJREV3YURZaUlDOCtDand2YzNablBnbz0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2Jvb2stcGx1c1xuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IEJvb2tQbHVzID0gY3JlYXRlTHVjaWRlSWNvbignYm9vay1wbHVzJywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IEJvb2tQbHVzO1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbXG4gICAgJ3BhdGgnLFxuICAgIHtcbiAgICAgIGQ6ICdNNCAxOS41di0xNUEyLjUgMi41IDAgMCAxIDYuNSAySDE5YTEgMSAwIDAgMSAxIDF2MThhMSAxIDAgMCAxLTEgMUg2LjVhMSAxIDAgMCAxIDAtNUgyMCcsXG4gICAgICBrZXk6ICdrM2hhenAnLFxuICAgIH0sXG4gIF0sXG4gIFsncGF0aCcsIHsgZDogJ004IDExaDgnLCBrZXk6ICd2d3B6Nm4nIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNOCA3aDYnLCBrZXk6ICcxZjBxNmUnIH1dLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIEJvb2tUZXh0XG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5OQ0F4T1M0MWRpMHhOVUV5TGpVZ01pNDFJREFnTUNBeElEWXVOU0F5U0RFNVlURWdNU0F3SURBZ01TQXhJREYyTVRoaE1TQXhJREFnTUNBeExURWdNVWcyTGpWaE1TQXhJREFnTUNBeElEQXROVWd5TUNJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOT0NBeE1XZzRJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMDRJRGRvTmlJZ0x6NEtQQzl6ZG1jK0NnPT0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2Jvb2stdGV4dFxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IEJvb2tUZXh0ID0gY3JlYXRlTHVjaWRlSWNvbignYm9vay10ZXh0JywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IEJvb2tUZXh0O1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdNMTAgMTNoNCcsIGtleTogJ3l0ZXpqYycgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xMiA2djcnLCBrZXk6ICcxZjZ0dHonIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTYgOFY2SDh2MicsIGtleTogJ3g4ajZ1NCcgfV0sXG4gIFtcbiAgICAncGF0aCcsXG4gICAge1xuICAgICAgZDogJ000IDE5LjV2LTE1QTIuNSAyLjUgMCAwIDEgNi41IDJIMTlhMSAxIDAgMCAxIDEgMXYxOGExIDEgMCAwIDEtMSAxSDYuNWExIDEgMCAwIDEgMC01SDIwJyxcbiAgICAgIGtleTogJ2szaGF6cCcsXG4gICAgfSxcbiAgXSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBCb29rVHlwZVxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTVRBZ01UTm9OQ0lnTHo0S0lDQThjR0YwYUNCa1BTSk5NVElnTm5ZM0lpQXZQZ29nSUR4d1lYUm9JR1E5SWsweE5pQTRWalpJT0hZeUlpQXZQZ29nSUR4d1lYUm9JR1E5SWswMElERTVMalYyTFRFMVFUSXVOU0F5TGpVZ01DQXdJREVnTmk0MUlESklNVGxoTVNBeElEQWdNQ0F4SURFZ01YWXhPR0V4SURFZ01DQXdJREV0TVNBeFNEWXVOV0V4SURFZ01DQXdJREVnTUMwMVNESXdJaUF2UGdvOEwzTjJaejRLKSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9ib29rLXR5cGVcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBCb29rVHlwZSA9IGNyZWF0ZUx1Y2lkZUljb24oJ2Jvb2stdHlwZScsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBCb29rVHlwZTtcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTEyIDEzVjcnLCBrZXk6ICdoMHIyMG4nIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTggMmgxYTEgMSAwIDAgMSAxIDF2MThhMSAxIDAgMCAxLTEgMUg2LjVhMSAxIDAgMCAxIDAtNUgyMCcsIGtleTogJzE2MWQ3bicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ000IDE5LjV2LTE1QTIuNSAyLjUgMCAwIDEgNi41IDInLCBrZXk6ICcxbG9ycTcnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdtOSAxMCAzLTMgMyAzJywga2V5OiAnMTFnc3hzJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnbTkgNSAzLTMgMyAzJywga2V5OiAnbDh2ZHc2JyB9XSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBCb29rVXAyXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NVElnTVROV055SWdMejRLSUNBOGNHRjBhQ0JrUFNKTk1UZ2dNbWd4WVRFZ01TQXdJREFnTVNBeElERjJNVGhoTVNBeElEQWdNQ0F4TFRFZ01VZzJMalZoTVNBeElEQWdNQ0F4SURBdE5VZ3lNQ0lnTHo0S0lDQThjR0YwYUNCa1BTSk5OQ0F4T1M0MWRpMHhOVUV5TGpVZ01pNDFJREFnTUNBeElEWXVOU0F5SWlBdlBnb2dJRHh3WVhSb0lHUTlJbTA1SURFd0lETXRNeUF6SURNaUlDOCtDaUFnUEhCaGRHZ2daRDBpYlRrZ05TQXpMVE1nTXlBeklpQXZQZ284TDNOMlp6NEspIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2Jvb2stdXAtMlxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IEJvb2tVcDIgPSBjcmVhdGVMdWNpZGVJY29uKCdib29rLXVwLTInLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgQm9va1VwMjtcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTEyIDEzVjcnLCBrZXk6ICdoMHIyMG4nIH1dLFxuICBbXG4gICAgJ3BhdGgnLFxuICAgIHtcbiAgICAgIGQ6ICdNNCAxOS41di0xNUEyLjUgMi41IDAgMCAxIDYuNSAySDE5YTEgMSAwIDAgMSAxIDF2MThhMSAxIDAgMCAxLTEgMUg2LjVhMSAxIDAgMCAxIDAtNUgyMCcsXG4gICAgICBrZXk6ICdrM2hhenAnLFxuICAgIH0sXG4gIF0sXG4gIFsncGF0aCcsIHsgZDogJ205IDEwIDMtMyAzIDMnLCBrZXk6ICcxMWdzeHMnIH1dLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIEJvb2tVcFxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTVRJZ01UTldOeUlnTHo0S0lDQThjR0YwYUNCa1BTSk5OQ0F4T1M0MWRpMHhOVUV5TGpVZ01pNDFJREFnTUNBeElEWXVOU0F5U0RFNVlURWdNU0F3SURBZ01TQXhJREYyTVRoaE1TQXhJREFnTUNBeExURWdNVWcyTGpWaE1TQXhJREFnTUNBeElEQXROVWd5TUNJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0p0T1NBeE1DQXpMVE1nTXlBeklpQXZQZ284TDNOMlp6NEspIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2Jvb2stdXBcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBCb29rVXAgPSBjcmVhdGVMdWNpZGVJY29uKCdib29rLXVwJywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IEJvb2tVcDtcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnbTE0LjUgNy01IDUnLCBrZXk6ICdkeTk5MXYnIH1dLFxuICBbXG4gICAgJ3BhdGgnLFxuICAgIHtcbiAgICAgIGQ6ICdNNCAxOS41di0xNUEyLjUgMi41IDAgMCAxIDYuNSAySDE5YTEgMSAwIDAgMSAxIDF2MThhMSAxIDAgMCAxLTEgMUg2LjVhMSAxIDAgMCAxIDAtNUgyMCcsXG4gICAgICBrZXk6ICdrM2hhenAnLFxuICAgIH0sXG4gIF0sXG4gIFsncGF0aCcsIHsgZDogJ205LjUgNyA1IDUnLCBrZXk6ICdzNDVpZWEnIH1dLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIEJvb2tYXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSnRNVFF1TlNBM0xUVWdOU0lnTHo0S0lDQThjR0YwYUNCa1BTSk5OQ0F4T1M0MWRpMHhOVUV5TGpVZ01pNDFJREFnTUNBeElEWXVOU0F5U0RFNVlURWdNU0F3SURBZ01TQXhJREYyTVRoaE1TQXhJREFnTUNBeExURWdNVWcyTGpWaE1TQXhJREFnTUNBeElEQXROVWd5TUNJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0p0T1M0MUlEY2dOU0ExSWlBdlBnbzhMM04yWno0SykgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvYm9vay14XG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgQm9va1ggPSBjcmVhdGVMdWNpZGVJY29uKCdib29rLXgnLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgQm9va1g7XG4iLCJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ00xNSAxM2EzIDMgMCAxIDAtNiAwJywga2V5OiAnMTBqNjhnJyB9XSxcbiAgW1xuICAgICdwYXRoJyxcbiAgICB7XG4gICAgICBkOiAnTTQgMTkuNXYtMTVBMi41IDIuNSAwIDAgMSA2LjUgMkgxOWExIDEgMCAwIDEgMSAxdjE4YTEgMSAwIDAgMS0xIDFINi41YTEgMSAwIDAgMSAwLTVIMjAnLFxuICAgICAga2V5OiAnazNoYXpwJyxcbiAgICB9LFxuICBdLFxuICBbJ2NpcmNsZScsIHsgY3g6ICcxMicsIGN5OiAnOCcsIHI6ICcyJywga2V5OiAnMTgyMmIxJyB9XSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBCb29rVXNlclxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTVRVZ01UTmhNeUF6SURBZ01TQXdMVFlnTUNJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTkNBeE9TNDFkaTB4TlVFeUxqVWdNaTQxSURBZ01DQXhJRFl1TlNBeVNERTVZVEVnTVNBd0lEQWdNU0F4SURGMk1UaGhNU0F4SURBZ01DQXhMVEVnTVVnMkxqVmhNU0F4SURBZ01DQXhJREF0TlVneU1DSWdMejRLSUNBOFkybHlZMnhsSUdONFBTSXhNaUlnWTNrOUlqZ2lJSEk5SWpJaUlDOCtDand2YzNablBnbz0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2Jvb2stdXNlclxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IEJvb2tVc2VyID0gY3JlYXRlTHVjaWRlSWNvbignYm9vay11c2VyJywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IEJvb2tVc2VyO1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbXG4gICAgJ3BhdGgnLFxuICAgIHtcbiAgICAgIGQ6ICdNNCAxOS41di0xNUEyLjUgMi41IDAgMCAxIDYuNSAySDE5YTEgMSAwIDAgMSAxIDF2MThhMSAxIDAgMCAxLTEgMUg2LjVhMSAxIDAgMCAxIDAtNUgyMCcsXG4gICAgICBrZXk6ICdrM2hhenAnLFxuICAgIH0sXG4gIF0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgQm9va1xuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTkNBeE9TNDFkaTB4TlVFeUxqVWdNaTQxSURBZ01DQXhJRFl1TlNBeVNERTVZVEVnTVNBd0lEQWdNU0F4SURGMk1UaGhNU0F4SURBZ01DQXhMVEVnTVVnMkxqVmhNU0F4SURBZ01DQXhJREF0TlVneU1DSWdMejRLUEM5emRtYytDZz09KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9ib29rXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgQm9vayA9IGNyZWF0ZUx1Y2lkZUljb24oJ2Jvb2snLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgQm9vaztcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnbTE5IDIxLTctNC03IDRWNWEyIDIgMCAwIDEgMi0yaDEwYTIgMiAwIDAgMSAyIDJaJywga2V5OiAnMTY5cDRwJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnbTkgMTAgMiAyIDQtNCcsIGtleTogJzFnbnF6NCcgfV0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgQm9va21hcmtDaGVja1xuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0p0TVRrZ01qRXROeTAwTFRjZ05GWTFZVElnTWlBd0lEQWdNU0F5TFRKb01UQmhNaUF5SURBZ01DQXhJRElnTWxvaUlDOCtDaUFnUEhCaGRHZ2daRDBpYlRrZ01UQWdNaUF5SURRdE5DSWdMejRLUEM5emRtYytDZz09KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9ib29rbWFyay1jaGVja1xuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IEJvb2ttYXJrQ2hlY2sgPSBjcmVhdGVMdWNpZGVJY29uKCdib29rbWFyay1jaGVjaycsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBCb29rbWFya0NoZWNrO1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdtMTkgMjEtNy00LTcgNFY1YTIgMiAwIDAgMSAyLTJoMTBhMiAyIDAgMCAxIDIgMnYxNnonLCBrZXk6ICcxZnkzaGsnIH1dLFxuICBbJ2xpbmUnLCB7IHgxOiAnMTUnLCB4MjogJzknLCB5MTogJzEwJywgeTI6ICcxMCcsIGtleTogJzFndHk3ZicgfV0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgQm9va21hcmtNaW51c1xuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0p0TVRrZ01qRXROeTAwTFRjZ05GWTFZVElnTWlBd0lEQWdNU0F5TFRKb01UQmhNaUF5SURBZ01DQXhJRElnTW5ZeE5ub2lJQzgrQ2lBZ1BHeHBibVVnZURFOUlqRTFJaUI0TWowaU9TSWdlVEU5SWpFd0lpQjVNajBpTVRBaUlDOCtDand2YzNablBnbz0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2Jvb2ttYXJrLW1pbnVzXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgQm9va21hcmtNaW51cyA9IGNyZWF0ZUx1Y2lkZUljb24oJ2Jvb2ttYXJrLW1pbnVzJywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IEJvb2ttYXJrTWludXM7XG4iLCJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ20xOSAyMS03LTQtNyA0VjVhMiAyIDAgMCAxIDItMmgxMGEyIDIgMCAwIDEgMiAydjE2eicsIGtleTogJzFmeTNoaycgfV0sXG4gIFsnbGluZScsIHsgeDE6ICcxMicsIHgyOiAnMTInLCB5MTogJzcnLCB5MjogJzEzJywga2V5OiAnMWNwcGZqJyB9XSxcbiAgWydsaW5lJywgeyB4MTogJzE1JywgeDI6ICc5JywgeTE6ICcxMCcsIHkyOiAnMTAnLCBrZXk6ICcxZ3R5N2YnIH1dLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIEJvb2ttYXJrUGx1c1xuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0p0TVRrZ01qRXROeTAwTFRjZ05GWTFZVElnTWlBd0lEQWdNU0F5TFRKb01UQmhNaUF5SURBZ01DQXhJRElnTW5ZeE5ub2lJQzgrQ2lBZ1BHeHBibVVnZURFOUlqRXlJaUI0TWowaU1USWlJSGt4UFNJM0lpQjVNajBpTVRNaUlDOCtDaUFnUEd4cGJtVWdlREU5SWpFMUlpQjRNajBpT1NJZ2VURTlJakV3SWlCNU1qMGlNVEFpSUM4K0Nqd3ZjM1puUGdvPSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvYm9va21hcmstcGx1c1xuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IEJvb2ttYXJrUGx1cyA9IGNyZWF0ZUx1Y2lkZUljb24oJ2Jvb2ttYXJrLXBsdXMnLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgQm9va21hcmtQbHVzO1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdtMTkgMjEtNy00LTcgNFY1YTIgMiAwIDAgMSAyLTJoMTBhMiAyIDAgMCAxIDIgMlonLCBrZXk6ICcxNjlwNHAnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdtMTQuNSA3LjUtNSA1Jywga2V5OiAnM2xiNml3JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnbTkuNSA3LjUgNSA1Jywga2V5OiAna28xMzZoJyB9XSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBCb29rbWFya1hcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKdE1Ua2dNakV0TnkwMExUY2dORlkxWVRJZ01pQXdJREFnTVNBeUxUSm9NVEJoTWlBeUlEQWdNQ0F4SURJZ01sb2lJQzgrQ2lBZ1BIQmhkR2dnWkQwaWJURTBMalVnTnk0MUxUVWdOU0lnTHo0S0lDQThjR0YwYUNCa1BTSnRPUzQxSURjdU5TQTFJRFVpSUM4K0Nqd3ZjM1puUGdvPSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvYm9va21hcmsteFxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IEJvb2ttYXJrWCA9IGNyZWF0ZUx1Y2lkZUljb24oJ2Jvb2ttYXJrLXgnLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgQm9va21hcmtYO1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdtMTkgMjEtNy00LTcgNFY1YTIgMiAwIDAgMSAyLTJoMTBhMiAyIDAgMCAxIDIgMnYxNnonLCBrZXk6ICcxZnkzaGsnIH1dLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIEJvb2ttYXJrXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSnRNVGtnTWpFdE55MDBMVGNnTkZZMVlUSWdNaUF3SURBZ01TQXlMVEpvTVRCaE1pQXlJREFnTUNBeElESWdNbll4Tm5vaUlDOCtDand2YzNablBnbz0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2Jvb2ttYXJrXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgQm9va21hcmsgPSBjcmVhdGVMdWNpZGVJY29uKCdib29rbWFyaycsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBCb29rbWFyaztcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTQgOVY1YTIgMiAwIDAgMSAyLTJoMTJhMiAyIDAgMCAxIDIgMnY0Jywga2V5OiAndnZ6dnIxJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTggOHYxJywga2V5OiAneGNxbWZrJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTEyIDh2MScsIGtleTogJzFyajh1NCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xNiA4djEnLCBrZXk6ICcxcTEyenInIH1dLFxuICBbJ3JlY3QnLCB7IHdpZHRoOiAnMjAnLCBoZWlnaHQ6ICcxMicsIHg6ICcyJywgeTogJzknLCByeDogJzInLCBrZXk6ICdpZ3BiODknIH1dLFxuICBbJ2NpcmNsZScsIHsgY3g6ICc4JywgY3k6ICcxNScsIHI6ICcyJywga2V5OiAnZmE0YThzJyB9XSxcbiAgWydjaXJjbGUnLCB7IGN4OiAnMTYnLCBjeTogJzE1JywgcjogJzInLCBrZXk6ICcxNGMzeWEnIH1dLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIEJvb21Cb3hcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk5DQTVWalZoTWlBeUlEQWdNQ0F4SURJdE1tZ3hNbUV5SURJZ01DQXdJREVnTWlBeWRqUWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRUZ2dPSFl4SWlBdlBnb2dJRHh3WVhSb0lHUTlJazB4TWlBNGRqRWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRURTJJRGgyTVNJZ0x6NEtJQ0E4Y21WamRDQjNhV1IwYUQwaU1qQWlJR2hsYVdkb2REMGlNVElpSUhnOUlqSWlJSGs5SWpraUlISjRQU0l5SWlBdlBnb2dJRHhqYVhKamJHVWdZM2c5SWpnaUlHTjVQU0l4TlNJZ2NqMGlNaUlnTHo0S0lDQThZMmx5WTJ4bElHTjRQU0l4TmlJZ1kzazlJakUxSWlCeVBTSXlJaUF2UGdvOEwzTjJaejRLKSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9ib29tLWJveFxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IEJvb21Cb3ggPSBjcmVhdGVMdWNpZGVJY29uKCdib29tLWJveCcsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBCb29tQm94O1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdNMTIgNlYySDgnLCBrZXk6ICcxMTU1ZW0nIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdtOCAxOC00IDRWOGEyIDIgMCAwIDEgMi0yaDEyYTIgMiAwIDAgMSAyIDJ2OGEyIDIgMCAwIDEtMiAyWicsIGtleTogJ3cybHAzZScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00yIDEyaDInLCBrZXk6ICcxdDhmOG4nIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNOSAxMXYyJywga2V5OiAnMXVlYmEwJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTE1IDExdjInLCBrZXk6ICdpMTFhd24nIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMjAgMTJoMicsIGtleTogJzFxOG1qdycgfV0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgQm90TWVzc2FnZVNxdWFyZVxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTVRJZ05sWXlTRGdpSUM4K0NpQWdQSEJoZEdnZ1pEMGliVGdnTVRndE5DQTBWamhoTWlBeUlEQWdNQ0F4SURJdE1tZ3hNbUV5SURJZ01DQXdJREVnTWlBeWRqaGhNaUF5SURBZ01DQXhMVElnTWxvaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRJZ01USm9NaUlnTHo0S0lDQThjR0YwYUNCa1BTSk5PU0F4TVhZeUlpQXZQZ29nSUR4d1lYUm9JR1E5SWsweE5TQXhNWFl5SWlBdlBnb2dJRHh3WVhSb0lHUTlJazB5TUNBeE1tZ3lJaUF2UGdvOEwzTjJaejRLKSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9ib3QtbWVzc2FnZS1zcXVhcmVcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBCb3RNZXNzYWdlU3F1YXJlID0gY3JlYXRlTHVjaWRlSWNvbignYm90LW1lc3NhZ2Utc3F1YXJlJywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IEJvdE1lc3NhZ2VTcXVhcmU7XG4iLCJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ00xMy42NyA4SDE4YTIgMiAwIDAgMSAyIDJ2NC4zMycsIGtleTogJzdhejA3MycgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00yIDE0aDInLCBrZXk6ICd2ZnQ4cmUnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMjAgMTRoMicsIGtleTogJzRjczYwYScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00yMiAyMiAyIDInLCBrZXk6ICcxcjh0bjknIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNOCA4SDZhMiAyIDAgMCAwLTIgMnY4YTIgMiAwIDAgMCAyIDJoMTJhMiAyIDAgMCAwIDEuNDE0LS41ODYnLCBrZXk6ICdzMDlhN2EnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNOSAxM3YyJywga2V5OiAncnE2eDJnJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTkuNjcgNEgxMnYyLjMzJywga2V5OiAnMTEweG90JyB9XSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBCb3RPZmZcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1UTXVOamNnT0VneE9HRXlJRElnTUNBd0lERWdNaUF5ZGpRdU16TWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRUSWdNVFJvTWlJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTWpBZ01UUm9NaUlnTHo0S0lDQThjR0YwYUNCa1BTSk5NaklnTWpJZ01pQXlJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMDRJRGhJTm1FeUlESWdNQ0F3SURBdE1pQXlkamhoTWlBeUlEQWdNQ0F3SURJZ01tZ3hNbUV5SURJZ01DQXdJREFnTVM0ME1UUXRMalU0TmlJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOT1NBeE0zWXlJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMDVMalkzSURSSU1USjJNaTR6TXlJZ0x6NEtQQzl6ZG1jKykgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvYm90LW9mZlxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IEJvdE9mZiA9IGNyZWF0ZUx1Y2lkZUljb24oJ2JvdC1vZmYnLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgQm90T2ZmO1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdNMTIgOFY0SDgnLCBrZXk6ICdoYjh1bGEnIH1dLFxuICBbJ3JlY3QnLCB7IHdpZHRoOiAnMTYnLCBoZWlnaHQ6ICcxMicsIHg6ICc0JywgeTogJzgnLCByeDogJzInLCBrZXk6ICdlbnplMHInIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMiAxNGgyJywga2V5OiAndmZ0OHJlJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTIwIDE0aDInLCBrZXk6ICc0Y3M2MGEnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTUgMTN2MicsIGtleTogJzF4dXJzdCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ005IDEzdjInLCBrZXk6ICdycTZ4MmcnIH1dLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIEJvdFxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTVRJZ09GWTBTRGdpSUM4K0NpQWdQSEpsWTNRZ2QybGtkR2c5SWpFMklpQm9aV2xuYUhROUlqRXlJaUI0UFNJMElpQjVQU0k0SWlCeWVEMGlNaUlnTHo0S0lDQThjR0YwYUNCa1BTSk5NaUF4TkdneUlpQXZQZ29nSUR4d1lYUm9JR1E5SWsweU1DQXhOR2d5SWlBdlBnb2dJRHh3WVhSb0lHUTlJazB4TlNBeE0zWXlJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMDVJREV6ZGpJaUlDOCtDand2YzNablBnbz0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2JvdFxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IEJvdCA9IGNyZWF0ZUx1Y2lkZUljb24oJ2JvdCcsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBCb3Q7XG4iLCJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbXG4gIFtcbiAgICAncGF0aCcsXG4gICAge1xuICAgICAgZDogJ00xMCAzYTEgMSAwIDAgMSAxLTFoMmExIDEgMCAwIDEgMSAxdjJhNiA2IDAgMCAwIDEuMiAzLjZsLjYuOEE2IDYgMCAwIDEgMTcgMTN2OGExIDEgMCAwIDEtMSAxSDhhMSAxIDAgMCAxLTEtMXYtOGE2IDYgMCAwIDEgMS4yLTMuNmwuNi0uOEE2IDYgMCAwIDAgMTAgNXonLFxuICAgICAga2V5OiAnYmxxZ29jJyxcbiAgICB9LFxuICBdLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTcgMTNoLTRhMSAxIDAgMCAwLTEgMXYzYTEgMSAwIDAgMCAxIDFoNCcsIGtleTogJzQzamJlZScgfV0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgQm90dGxlV2luZVxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTVRBZ00yRXhJREVnTUNBd0lERWdNUzB4YURKaE1TQXhJREFnTUNBeElERWdNWFl5WVRZZ05pQXdJREFnTUNBeExqSWdNeTQyYkM0MkxqaEJOaUEySURBZ01DQXhJREUzSURFemRqaGhNU0F4SURBZ01DQXhMVEVnTVVnNFlURWdNU0F3SURBZ01TMHhMVEYyTFRoaE5pQTJJREFnTUNBeElERXVNaTB6TGpac0xqWXRMamhCTmlBMklEQWdNQ0F3SURFd0lEVjZJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHhOeUF4TTJndE5HRXhJREVnTUNBd0lEQXRNU0F4ZGpOaE1TQXhJREFnTUNBd0lERWdNV2cwSWlBdlBnbzhMM04yWno0SykgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvYm90dGxlLXdpbmVcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBCb3R0bGVXaW5lID0gY3JlYXRlTHVjaWRlSWNvbignYm90dGxlLXdpbmUnLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgQm90dGxlV2luZTtcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTE3IDNoNHY0Jywga2V5OiAnMTlwOXUxJyB9XSxcbiAgW1xuICAgICdwYXRoJyxcbiAgICB7IGQ6ICdNMTguNTc1IDExLjA4MmExMyAxMyAwIDAgMSAxLjA0OCA5LjAyNyAxLjE3IDEuMTcgMCAwIDEtMS45MTQuNTk3TDE0IDE3Jywga2V5OiAnMTJ0M3c5JyB9LFxuICBdLFxuICBbJ3BhdGgnLCB7IGQ6ICdNNyAxMCAzLjI5IDYuMjlhMS4xNyAxLjE3IDAgMCAxIC42LTEuOTEgMTMgMTMgMCAwIDEgOS4wMyAxLjA1Jywga2V5OiAnb2duZzVsJyB9XSxcbiAgW1xuICAgICdwYXRoJyxcbiAgICB7XG4gICAgICBkOiAnTTcgMTRhMS43IDEuNyAwIDAgMC0xLjIwNy41bC0yLjY0NiAyLjY0NkEuNS41IDAgMCAwIDMuNSAxOEg1YTEgMSAwIDAgMSAxIDF2MS41YS41LjUgMCAwIDAgLjg1NC4zNTRMOS41IDE4LjIwN0ExLjcgMS43IDAgMCAwIDEwIDE3di0yYTEgMSAwIDAgMC0xLTF6JyxcbiAgICAgIGtleTogJzh2M2Z5MicsXG4gICAgfSxcbiAgXSxcbiAgWydwYXRoJywgeyBkOiAnTTkuNzA3IDE0LjI5MyAyMSAzJywga2V5OiAneWRtM2JuJyB9XSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBCb3dBcnJvd1xuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTVRjZ00yZzBkalFpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVEU0TGpVM05TQXhNUzR3T0RKaE1UTWdNVE1nTUNBd0lERWdNUzR3TkRnZ09TNHdNamNnTVM0eE55QXhMakUzSURBZ01DQXhMVEV1T1RFMExqVTVOMHd4TkNBeE55SWdMejRLSUNBOGNHRjBhQ0JrUFNKTk55QXhNQ0F6TGpJNUlEWXVNamxoTVM0eE55QXhMakUzSURBZ01DQXhJQzQyTFRFdU9URWdNVE1nTVRNZ01DQXdJREVnT1M0d015QXhMakExSWlBdlBnb2dJRHh3WVhSb0lHUTlJazAzSURFMFlURXVOeUF4TGpjZ01DQXdJREF0TVM0eU1EY3VOV3d0TWk0Mk5EWWdNaTQyTkRaQkxqVXVOU0F3SURBZ01DQXpMalVnTVRoSU5XRXhJREVnTUNBd0lERWdNU0F4ZGpFdU5XRXVOUzQxSURBZ01DQXdJQzQ0TlRRdU16VTBURGt1TlNBeE9DNHlNRGRCTVM0M0lERXVOeUF3SURBZ01DQXhNQ0F4TjNZdE1tRXhJREVnTUNBd0lEQXRNUzB4ZWlJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOT1M0M01EY2dNVFF1TWpreklESXhJRE1pSUM4K0Nqd3ZjM1puUGdvPSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvYm93LWFycm93XG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgQm93QXJyb3cgPSBjcmVhdGVMdWNpZGVJY29uKCdib3ctYXJyb3cnLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgQm93QXJyb3c7XG4iLCJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbXG4gIFtcbiAgICAncGF0aCcsXG4gICAge1xuICAgICAgZDogJ00yMSA4YTIgMiAwIDAgMC0xLTEuNzNsLTctNGEyIDIgMCAwIDAtMiAwbC03IDRBMiAyIDAgMCAwIDMgOHY4YTIgMiAwIDAgMCAxIDEuNzNsNyA0YTIgMiAwIDAgMCAyIDBsNy00QTIgMiAwIDAgMCAyMSAxNlonLFxuICAgICAga2V5OiAnaGg5aGF5JyxcbiAgICB9LFxuICBdLFxuICBbJ3BhdGgnLCB7IGQ6ICdtMy4zIDcgOC43IDUgOC43LTUnLCBrZXk6ICdnNjZ0MmInIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTIgMjJWMTInLCBrZXk6ICdkMHhxdGQnIH1dLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIEJveFxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTWpFZ09HRXlJRElnTUNBd0lEQXRNUzB4TGpjemJDMDNMVFJoTWlBeUlEQWdNQ0F3TFRJZ01Hd3ROeUEwUVRJZ01pQXdJREFnTUNBeklEaDJPR0V5SURJZ01DQXdJREFnTVNBeExqY3piRGNnTkdFeUlESWdNQ0F3SURBZ01pQXdiRGN0TkVFeUlESWdNQ0F3SURBZ01qRWdNVFphSWlBdlBnb2dJRHh3WVhSb0lHUTlJbTB6TGpNZ055QTRMamNnTlNBNExqY3ROU0lnTHo0S0lDQThjR0YwYUNCa1BTSk5NVElnTWpKV01USWlJQzgrQ2p3dmMzWm5QZ289KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9ib3hcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBCb3ggPSBjcmVhdGVMdWNpZGVJY29uKCdib3gnLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgQm94O1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbXG4gICAgJ3BhdGgnLFxuICAgIHtcbiAgICAgIGQ6ICdNMi45NyAxMi45MkEyIDIgMCAwIDAgMiAxNC42M3YzLjI0YTIgMiAwIDAgMCAuOTcgMS43MWwzIDEuOGEyIDIgMCAwIDAgMi4wNiAwTDEyIDE5di01LjVsLTUtMy00LjAzIDIuNDJaJyxcbiAgICAgIGtleTogJ2xjMWk5dycsXG4gICAgfSxcbiAgXSxcbiAgWydwYXRoJywgeyBkOiAnbTcgMTYuNS00Ljc0LTIuODUnLCBrZXk6ICcxbzl6eWsnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdtNyAxNi41IDUtMycsIGtleTogJ3ZhOHBrbicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ003IDE2LjV2NS4xNycsIGtleTogJ2pucDhnbicgfV0sXG4gIFtcbiAgICAncGF0aCcsXG4gICAge1xuICAgICAgZDogJ00xMiAxMy41VjE5bDMuOTcgMi4zOGEyIDIgMCAwIDAgMi4wNiAwbDMtMS44YTIgMiAwIDAgMCAuOTctMS43MXYtMy4yNGEyIDIgMCAwIDAtLjk3LTEuNzFMMTcgMTAuNWwtNSAzWicsXG4gICAgICBrZXk6ICc4enNuYXQnLFxuICAgIH0sXG4gIF0sXG4gIFsncGF0aCcsIHsgZDogJ20xNyAxNi41LTUtMycsIGtleTogJzhhcnczdicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ20xNyAxNi41IDQuNzQtMi44NScsIGtleTogJzhyZm13JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTE3IDE2LjV2NS4xNycsIGtleTogJ2s2ejc4bScgfV0sXG4gIFtcbiAgICAncGF0aCcsXG4gICAge1xuICAgICAgZDogJ003Ljk3IDQuNDJBMiAyIDAgMCAwIDcgNi4xM3Y0LjM3bDUgMyA1LTNWNi4xM2EyIDIgMCAwIDAtLjk3LTEuNzFsLTMtMS44YTIgMiAwIDAgMC0yLjA2IDBsLTMgMS44WicsXG4gICAgICBrZXk6ICcxeHlnamYnLFxuICAgIH0sXG4gIF0sXG4gIFsncGF0aCcsIHsgZDogJ00xMiA4IDcuMjYgNS4xNScsIGtleTogJzF2YmR1ZCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ20xMiA4IDQuNzQtMi44NScsIGtleTogJzNyeDA4OScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xMiAxMy41VjgnLCBrZXk6ICcxaW83a2QnIH1dLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIEJveGVzXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NaTQ1TnlBeE1pNDVNa0V5SURJZ01DQXdJREFnTWlBeE5DNDJNM1l6TGpJMFlUSWdNaUF3SURBZ01DQXVPVGNnTVM0M01Xd3pJREV1T0dFeUlESWdNQ0F3SURBZ01pNHdOaUF3VERFeUlERTVkaTAxTGpWc0xUVXRNeTAwTGpBeklESXVOREphSWlBdlBnb2dJRHh3WVhSb0lHUTlJbTAzSURFMkxqVXROQzQzTkMweUxqZzFJaUF2UGdvZ0lEeHdZWFJvSUdROUltMDNJREUyTGpVZ05TMHpJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMDNJREUyTGpWMk5TNHhOeUlnTHo0S0lDQThjR0YwYUNCa1BTSk5NVElnTVRNdU5WWXhPV3d6TGprM0lESXVNemhoTWlBeUlEQWdNQ0F3SURJdU1EWWdNR3d6TFRFdU9HRXlJRElnTUNBd0lEQWdMamszTFRFdU56RjJMVE11TWpSaE1pQXlJREFnTUNBd0xTNDVOeTB4TGpjeFRERTNJREV3TGpWc0xUVWdNMW9pSUM4K0NpQWdQSEJoZEdnZ1pEMGliVEUzSURFMkxqVXROUzB6SWlBdlBnb2dJRHh3WVhSb0lHUTlJbTB4TnlBeE5pNDFJRFF1TnpRdE1pNDROU0lnTHo0S0lDQThjR0YwYUNCa1BTSk5NVGNnTVRZdU5YWTFMakUzSWlBdlBnb2dJRHh3WVhSb0lHUTlJazAzTGprM0lEUXVOREpCTWlBeUlEQWdNQ0F3SURjZ05pNHhNM1kwTGpNM2JEVWdNeUExTFROV05pNHhNMkV5SURJZ01DQXdJREF0TGprM0xURXVOekZzTFRNdE1TNDRZVElnTWlBd0lEQWdNQzB5TGpBMklEQnNMVE1nTVM0NFdpSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk1USWdPQ0EzTGpJMklEVXVNVFVpSUM4K0NpQWdQSEJoZEdnZ1pEMGliVEV5SURnZ05DNDNOQzB5TGpnMUlpQXZQZ29nSUR4d1lYUm9JR1E5SWsweE1pQXhNeTQxVmpnaUlDOCtDand2YzNablBnbz0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2JveGVzXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgQm94ZXMgPSBjcmVhdGVMdWNpZGVJY29uKCdib3hlcycsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBCb3hlcztcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgW1xuICAgICdwYXRoJyxcbiAgICB7IGQ6ICdNOCAzSDdhMiAyIDAgMCAwLTIgMnY1YTIgMiAwIDAgMS0yIDIgMiAyIDAgMCAxIDIgMnY1YzAgMS4xLjkgMiAyIDJoMScsIGtleTogJ2V6bXlxYScgfSxcbiAgXSxcbiAgW1xuICAgICdwYXRoJyxcbiAgICB7XG4gICAgICBkOiAnTTE2IDIxaDFhMiAyIDAgMCAwIDItMnYtNWMwLTEuMS45LTIgMi0yYTIgMiAwIDAgMS0yLTJWNWEyIDIgMCAwIDAtMi0yaC0xJyxcbiAgICAgIGtleTogJ2UxaG4yMycsXG4gICAgfSxcbiAgXSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBCcmFjZXNcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk9DQXpTRGRoTWlBeUlEQWdNQ0F3TFRJZ01uWTFZVElnTWlBd0lEQWdNUzB5SURJZ01pQXlJREFnTUNBeElESWdNblkxWXpBZ01TNHhMamtnTWlBeUlESm9NU0lnTHo0S0lDQThjR0YwYUNCa1BTSk5NVFlnTWpGb01XRXlJRElnTUNBd0lEQWdNaTB5ZGkwMVl6QXRNUzR4TGprdE1pQXlMVEpoTWlBeUlEQWdNQ0F4TFRJdE1sWTFZVElnTWlBd0lEQWdNQzB5TFRKb0xURWlJQzgrQ2p3dmMzWm5QZ289KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9icmFjZXNcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBCcmFjZXMgPSBjcmVhdGVMdWNpZGVJY29uKCdicmFjZXMnLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgQnJhY2VzO1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdNMTYgM2gzYTEgMSAwIDAgMSAxIDF2MTZhMSAxIDAgMCAxLTEgMWgtMycsIGtleTogJzFrdDhsZicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ004IDIxSDVhMSAxIDAgMCAxLTEtMVY0YTEgMSAwIDAgMSAxLTFoMycsIGtleTogJ2dkdXY5JyB9XSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBCcmFja2V0c1xuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTVRZZ00yZ3pZVEVnTVNBd0lEQWdNU0F4SURGMk1UWmhNU0F4SURBZ01DQXhMVEVnTVdndE15SWdMejRLSUNBOGNHRjBhQ0JrUFNKTk9DQXlNVWcxWVRFZ01TQXdJREFnTVMweExURldOR0V4SURFZ01DQXdJREVnTVMweGFETWlJQzgrQ2p3dmMzWm5QZ289KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9icmFja2V0c1xuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IEJyYWNrZXRzID0gY3JlYXRlTHVjaWRlSWNvbignYnJhY2tldHMnLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgQnJhY2tldHM7XG4iLCJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbXG4gIFtcbiAgICAncGF0aCcsXG4gICAge1xuICAgICAgZDogJ00xMiA1YTMgMyAwIDEgMC01Ljk5Ny4xMjUgNCA0IDAgMCAwLTIuNTI2IDUuNzcgNCA0IDAgMCAwIC41NTYgNi41ODhBNCA0IDAgMSAwIDEyIDE4WicsXG4gICAgICBrZXk6ICdsNXhqYScsXG4gICAgfSxcbiAgXSxcbiAgWydwYXRoJywgeyBkOiAnTTkgMTNhNC41IDQuNSAwIDAgMCAzLTQnLCBrZXk6ICcxMGlnd2YnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNNi4wMDMgNS4xMjVBMyAzIDAgMCAwIDYuNDAxIDYuNScsIGtleTogJzEwNXNxeScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00zLjQ3NyAxMC44OTZhNCA0IDAgMCAxIC41ODUtLjM5NicsIGtleTogJ3FsM3lpbicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ002IDE4YTQgNCAwIDAgMS0xLjk2Ny0uNTE2Jywga2V5OiAnMmU0bG9qJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTEyIDEzaDQnLCBrZXk6ICcxa3U2OTknIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTIgMThoNmEyIDIgMCAwIDEgMiAydjEnLCBrZXk6ICcxMDVhZzUnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTIgOGg4Jywga2V5OiAnMWxoaTVpJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTE2IDhWNWEyIDIgMCAwIDEgMi0yJywga2V5OiAndTZpemc2JyB9XSxcbiAgWydjaXJjbGUnLCB7IGN4OiAnMTYnLCBjeTogJzEzJywgcjogJy41Jywga2V5OiAncnk3Z25nJyB9XSxcbiAgWydjaXJjbGUnLCB7IGN4OiAnMTgnLCBjeTogJzMnLCByOiAnLjUnLCBrZXk6ICcxYWliYTcnIH1dLFxuICBbJ2NpcmNsZScsIHsgY3g6ICcyMCcsIGN5OiAnMjEnLCByOiAnLjUnLCBrZXk6ICd5aGMxZnMnIH1dLFxuICBbJ2NpcmNsZScsIHsgY3g6ICcyMCcsIGN5OiAnOCcsIHI6ICcuNScsIGtleTogJzFlNDN2MCcgfV0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgQnJhaW5DaXJjdWl0XG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NVElnTldFeklETWdNQ0F4SURBdE5TNDVPVGN1TVRJMUlEUWdOQ0F3SURBZ01DMHlMalV5TmlBMUxqYzNJRFFnTkNBd0lEQWdNQ0F1TlRVMklEWXVOVGc0UVRRZ05DQXdJREVnTUNBeE1pQXhPRm9pSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVGtnTVROaE5DNDFJRFF1TlNBd0lEQWdNQ0F6TFRRaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRZdU1EQXpJRFV1TVRJMVFUTWdNeUF3SURBZ01DQTJMalF3TVNBMkxqVWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRUTXVORGMzSURFd0xqZzVObUUwSURRZ01DQXdJREVnTGpVNE5TMHVNemsySWlBdlBnb2dJRHh3WVhSb0lHUTlJazAySURFNFlUUWdOQ0F3SURBZ01TMHhMamsyTnkwdU5URTJJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHhNaUF4TTJnMElpQXZQZ29nSUR4d1lYUm9JR1E5SWsweE1pQXhPR2cyWVRJZ01pQXdJREFnTVNBeUlESjJNU0lnTHo0S0lDQThjR0YwYUNCa1BTSk5NVElnT0dnNElpQXZQZ29nSUR4d1lYUm9JR1E5SWsweE5pQTRWalZoTWlBeUlEQWdNQ0F4SURJdE1pSWdMejRLSUNBOFkybHlZMnhsSUdONFBTSXhOaUlnWTNrOUlqRXpJaUJ5UFNJdU5TSWdMejRLSUNBOFkybHlZMnhsSUdONFBTSXhPQ0lnWTNrOUlqTWlJSEk5SWk0MUlpQXZQZ29nSUR4amFYSmpiR1VnWTNnOUlqSXdJaUJqZVQwaU1qRWlJSEk5SWk0MUlpQXZQZ29nSUR4amFYSmpiR1VnWTNnOUlqSXdJaUJqZVQwaU9DSWdjajBpTGpVaUlDOCtDand2YzNablBnbz0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2JyYWluLWNpcmN1aXRcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBCcmFpbkNpcmN1aXQgPSBjcmVhdGVMdWNpZGVJY29uKCdicmFpbi1jaXJjdWl0JywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IEJyYWluQ2lyY3VpdDtcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnbTEwLjg1MiAxNC43NzItLjM4My45MjMnLCBrZXk6ICcxMXZpbDYnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdtMTAuODUyIDkuMjI4LS4zODMtLjkyMycsIGtleTogJzFmanBwZScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ20xMy4xNDggMTQuNzcyLjM4Mi45MjQnLCBrZXk6ICdqZTN2YTEnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdtMTMuNTMxIDguMzA1LS4zODMuOTIzJywga2V5OiAnMThlcGNrJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnbTE0Ljc3MiAxMC44NTIuOTIzLS4zODMnLCBrZXk6ICdrOW04Y3onIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdtMTQuNzcyIDEzLjE0OC45MjMuMzgzJywga2V5OiAnMXh2aHd3JyB9XSxcbiAgW1xuICAgICdwYXRoJyxcbiAgICB7XG4gICAgICBkOiAnTTE3LjU5OCA2LjVBMyAzIDAgMSAwIDEyIDVhMyAzIDAgMCAwLTUuNjMtMS40NDYgMyAzIDAgMCAwLS4zNjggMS41NzEgNCA0IDAgMCAwLTIuNTI1IDUuNzcxJyxcbiAgICAgIGtleTogJ2pjYmJ6MScsXG4gICAgfSxcbiAgXSxcbiAgWydwYXRoJywgeyBkOiAnTTE3Ljk5OCA1LjEyNWE0IDQgMCAwIDEgMi41MjUgNS43NzEnLCBrZXk6ICcxa2tuN2UnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTkuNTA1IDEwLjI5NGE0IDQgMCAwIDEtMS41IDcuNzA2Jywga2V5OiAnMThibXVjJyB9XSxcbiAgW1xuICAgICdwYXRoJyxcbiAgICB7XG4gICAgICBkOiAnTTQuMDMyIDE3LjQ4M0E0IDQgMCAwIDAgMTEuNDY0IDIwYy4xOC0uMzExLjg5Mi0uMzExIDEuMDcyIDBhNCA0IDAgMCAwIDcuNDMyLTIuNTE2JyxcbiAgICAgIGtleTogJ3VvengwZCcsXG4gICAgfSxcbiAgXSxcbiAgWydwYXRoJywgeyBkOiAnTTQuNSAxMC4yOTFBNCA0IDAgMCAwIDYgMTgnLCBrZXk6ICd3aGRlbWInIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNNi4wMDIgNS4xMjVhMyAzIDAgMCAwIC40IDEuMzc1Jywga2V5OiAnMWtxeTJnJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnbTkuMjI4IDEwLjg1Mi0uOTIzLS4zODMnLCBrZXk6ICcxd3RiMzAnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdtOS4yMjggMTMuMTQ4LS45MjMuMzgzJywga2V5OiAnMWE4MzB4JyB9XSxcbiAgWydjaXJjbGUnLCB7IGN4OiAnMTInLCBjeTogJzEyJywgcjogJzMnLCBrZXk6ICcxdjd6cmQnIH1dLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIEJyYWluQ29nXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSnRNVEF1T0RVeUlERTBMamMzTWkwdU16Z3pMamt5TXlJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0p0TVRBdU9EVXlJRGt1TWpJNExTNHpPRE10TGpreU15SWdMejRLSUNBOGNHRjBhQ0JrUFNKdE1UTXVNVFE0SURFMExqYzNNaTR6T0RJdU9USTBJaUF2UGdvZ0lEeHdZWFJvSUdROUltMHhNeTQxTXpFZ09DNHpNRFV0TGpNNE15NDVNak1pSUM4K0NpQWdQSEJoZEdnZ1pEMGliVEUwTGpjM01pQXhNQzQ0TlRJdU9USXpMUzR6T0RNaUlDOCtDaUFnUEhCaGRHZ2daRDBpYlRFMExqYzNNaUF4TXk0eE5EZ3VPVEl6TGpNNE15SWdMejRLSUNBOGNHRjBhQ0JrUFNKTk1UY3VOVGs0SURZdU5VRXpJRE1nTUNBeElEQWdNVElnTldFeklETWdNQ0F3SURBdE5TNDJNeTB4TGpRME5pQXpJRE1nTUNBd0lEQXRMak0yT0NBeExqVTNNU0EwSURRZ01DQXdJREF0TWk0MU1qVWdOUzQzTnpFaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRFM0xqazVPQ0ExTGpFeU5XRTBJRFFnTUNBd0lERWdNaTQxTWpVZ05TNDNOekVpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVEU1TGpVd05TQXhNQzR5T1RSaE5DQTBJREFnTUNBeExURXVOU0EzTGpjd05pSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk5DNHdNeklnTVRjdU5EZ3pRVFFnTkNBd0lEQWdNQ0F4TVM0ME5qUWdNakJqTGpFNExTNHpNVEV1T0RreUxTNHpNVEVnTVM0d056SWdNR0UwSURRZ01DQXdJREFnTnk0ME16SXRNaTQxTVRZaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRRdU5TQXhNQzR5T1RGQk5DQTBJREFnTUNBd0lEWWdNVGdpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVFl1TURBeUlEVXVNVEkxWVRNZ015QXdJREFnTUNBdU5DQXhMak0zTlNJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0p0T1M0eU1qZ2dNVEF1T0RVeUxTNDVNak10TGpNNE15SWdMejRLSUNBOGNHRjBhQ0JrUFNKdE9TNHlNamdnTVRNdU1UUTRMUzQ1TWpNdU16Z3pJaUF2UGdvZ0lEeGphWEpqYkdVZ1kzZzlJakV5SWlCamVUMGlNVElpSUhJOUlqTWlJQzgrQ2p3dmMzWm5QZ289KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9icmFpbi1jb2dcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBCcmFpbkNvZyA9IGNyZWF0ZUx1Y2lkZUljb24oJ2JyYWluLWNvZycsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBCcmFpbkNvZztcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgW1xuICAgICdwYXRoJyxcbiAgICB7XG4gICAgICBkOiAnTTEyIDVhMyAzIDAgMSAwLTUuOTk3LjEyNSA0IDQgMCAwIDAtMi41MjYgNS43NyA0IDQgMCAwIDAgLjU1NiA2LjU4OEE0IDQgMCAxIDAgMTIgMThaJyxcbiAgICAgIGtleTogJ2w1eGphJyxcbiAgICB9LFxuICBdLFxuICBbXG4gICAgJ3BhdGgnLFxuICAgIHtcbiAgICAgIGQ6ICdNMTIgNWEzIDMgMCAxIDEgNS45OTcuMTI1IDQgNCAwIDAgMSAyLjUyNiA1Ljc3IDQgNCAwIDAgMS0uNTU2IDYuNTg4QTQgNCAwIDEgMSAxMiAxOFonLFxuICAgICAga2V5OiAnZXAzZjhyJyxcbiAgICB9LFxuICBdLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTUgMTNhNC41IDQuNSAwIDAgMS0zLTQgNC41IDQuNSAwIDAgMS0zIDQnLCBrZXk6ICcxcDRjNHEnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTcuNTk5IDYuNWEzIDMgMCAwIDAgLjM5OS0xLjM3NScsIGtleTogJ3RtZWlxdycgfV0sXG4gIFsncGF0aCcsIHsgZDogJ002LjAwMyA1LjEyNUEzIDMgMCAwIDAgNi40MDEgNi41Jywga2V5OiAnMTA1c3F5JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTMuNDc3IDEwLjg5NmE0IDQgMCAwIDEgLjU4NS0uMzk2Jywga2V5OiAncWwzeWluJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTE5LjkzOCAxMC41YTQgNCAwIDAgMSAuNTg1LjM5NicsIGtleTogJzFxZm9kZScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ002IDE4YTQgNCAwIDAgMS0xLjk2Ny0uNTE2Jywga2V5OiAnMmU0bG9qJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTE5Ljk2NyAxNy40ODRBNCA0IDAgMCAxIDE4IDE4Jywga2V5OiAnMTU5ZXo2JyB9XSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBCcmFpblxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTVRJZ05XRXpJRE1nTUNBeElEQXROUzQ1T1RjdU1USTFJRFFnTkNBd0lEQWdNQzB5TGpVeU5pQTFMamMzSURRZ05DQXdJREFnTUNBdU5UVTJJRFl1TlRnNFFUUWdOQ0F3SURFZ01DQXhNaUF4T0ZvaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRFeUlEVmhNeUF6SURBZ01TQXhJRFV1T1RrM0xqRXlOU0EwSURRZ01DQXdJREVnTWk0MU1qWWdOUzQzTnlBMElEUWdNQ0F3SURFdExqVTFOaUEyTGpVNE9FRTBJRFFnTUNBeElERWdNVElnTVRoYUlpQXZQZ29nSUR4d1lYUm9JR1E5SWsweE5TQXhNMkUwTGpVZ05DNDFJREFnTUNBeExUTXROQ0EwTGpVZ05DNDFJREFnTUNBeExUTWdOQ0lnTHo0S0lDQThjR0YwYUNCa1BTSk5NVGN1TlRrNUlEWXVOV0V6SURNZ01DQXdJREFnTGpNNU9TMHhMak0zTlNJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTmk0d01ETWdOUzR4TWpWQk15QXpJREFnTUNBd0lEWXVOREF4SURZdU5TSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk15NDBOemNnTVRBdU9EazJZVFFnTkNBd0lEQWdNU0F1TlRnMUxTNHpPVFlpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVEU1TGprek9DQXhNQzQxWVRRZ05DQXdJREFnTVNBdU5UZzFMak01TmlJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTmlBeE9HRTBJRFFnTUNBd0lERXRNUzQ1TmpjdExqVXhOaUlnTHo0S0lDQThjR0YwYUNCa1BTSk5NVGt1T1RZM0lERTNMalE0TkVFMElEUWdNQ0F3SURFZ01UZ2dNVGdpSUM4K0Nqd3ZjM1puUGdvPSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvYnJhaW5cbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBCcmFpbiA9IGNyZWF0ZUx1Y2lkZUljb24oJ2JyYWluJywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IEJyYWluO1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdNMTYgM3YyLjEwNycsIGtleTogJ2dxOHh1bicgfV0sXG4gIFtcbiAgICAncGF0aCcsXG4gICAge1xuICAgICAgZDogJ00xNyA5YzEgMyAyLjUgMy41IDMuNSA0LjVBNSA1IDAgMCAxIDIyIDE3YTUgNSAwIDAgMS0xMCAwYzAtLjMgMC0uNi4xLS45YTIgMiAwIDEgMCAzLjMtMkMxMyAxMS41IDE2IDkgMTcgOScsXG4gICAgICBrZXk6ICcxbDJwaWgnLFxuICAgIH0sXG4gIF0sXG4gIFtcbiAgICAncGF0aCcsXG4gICAgeyBkOiAnTTIxIDguMjc0VjVhMiAyIDAgMCAwLTItMkg1YTIgMiAwIDAgMC0yIDJ2MTRhMiAyIDAgMCAwIDIgMmgzLjkzOCcsIGtleTogJ2pybnFqcCcgfSxcbiAgXSxcbiAgWydwYXRoJywgeyBkOiAnTTMgMTVoNS4yNTMnLCBrZXk6ICd4cWc3cmInIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMyA5aDguMjI4Jywga2V5OiAnMXBwYjcwJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTggMTV2NicsIGtleTogJzFzdG9vMycgfV0sXG4gIFsncGF0aCcsIHsgZDogJ004IDN2NicsIGtleTogJ3ZsdmptaycgfV0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgQnJpY2tXYWxsRmlyZVxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTVRZZ00zWXlMakV3TnlJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTVRjZ09XTXhJRE1nTWk0MUlETXVOU0F6TGpVZ05DNDFRVFVnTlNBd0lEQWdNU0F5TWlBeE4yRTFJRFVnTUNBd0lERXRNVEFnTUdNd0xTNHpJREF0TGpZdU1TMHVPV0V5SURJZ01DQXhJREFnTXk0ekxUSkRNVE1nTVRFdU5TQXhOaUE1SURFM0lEa2lJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRUSXhJRGd1TWpjMFZqVmhNaUF5SURBZ01DQXdMVEl0TWtnMVlUSWdNaUF3SURBZ01DMHlJREoyTVRSaE1pQXlJREFnTUNBd0lESWdNbWd6TGprek9DSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk15QXhOV2cxTGpJMU15SWdMejRLSUNBOGNHRjBhQ0JrUFNKTk15QTVhRGd1TWpJNElpQXZQZ29nSUR4d1lYUm9JR1E5SWswNElERTFkallpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVGdnTTNZMklpQXZQZ284TDNOMlp6NEspIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2JyaWNrLXdhbGwtZmlyZVxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IEJyaWNrV2FsbEZpcmUgPSBjcmVhdGVMdWNpZGVJY29uKCdicmljay13YWxsLWZpcmUnLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgQnJpY2tXYWxsRmlyZTtcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgWydyZWN0JywgeyB3aWR0aDogJzE4JywgaGVpZ2h0OiAnMTgnLCB4OiAnMycsIHk6ICczJywgcng6ICcyJywga2V5OiAnYWZpdHY3JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTEyIDl2NicsIGtleTogJzE5OWsybycgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xNiAxNXY2Jywga2V5OiAnOHJqMmVzJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTE2IDN2NicsIGtleTogJzFqNnJwaicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00zIDE1aDE4Jywga2V5OiAnNXhzaHVwJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTMgOWgxOCcsIGtleTogJzFwdWRjdCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ004IDE1djYnLCBrZXk6ICcxc3RvbzMnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNOCAzdjYnLCBrZXk6ICd2bHZqbWsnIH1dLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIEJyaWNrV2FsbFxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y21WamRDQjNhV1IwYUQwaU1UZ2lJR2hsYVdkb2REMGlNVGdpSUhnOUlqTWlJSGs5SWpNaUlISjRQU0l5SWlBdlBnb2dJRHh3WVhSb0lHUTlJazB4TWlBNWRqWWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRURTJJREUxZGpZaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRFMklETjJOaUlnTHo0S0lDQThjR0YwYUNCa1BTSk5NeUF4TldneE9DSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk15QTVhREU0SWlBdlBnb2dJRHh3WVhSb0lHUTlJazA0SURFMWRqWWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRUZ2dNM1kySWlBdlBnbzhMM04yWno0SykgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvYnJpY2std2FsbFxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IEJyaWNrV2FsbCA9IGNyZWF0ZUx1Y2lkZUljb24oJ2JyaWNrLXdhbGwnLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgQnJpY2tXYWxsO1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdNMTIgMTJoLjAxJywga2V5OiAnMW1wM2pjJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTE2IDZWNGEyIDIgMCAwIDAtMi0yaC00YTIgMiAwIDAgMC0yIDJ2MicsIGtleTogJzFrc2R0MycgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00yMiAxM2ExOC4xNSAxOC4xNSAwIDAgMS0yMCAwJywga2V5OiAnMTJoeDVxJyB9XSxcbiAgWydyZWN0JywgeyB3aWR0aDogJzIwJywgaGVpZ2h0OiAnMTQnLCB4OiAnMicsIHk6ICc2Jywgcng6ICcyJywga2V5OiAnaTZsMnI0JyB9XSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBCcmllZmNhc2VCdXNpbmVzc1xuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTVRJZ01USm9MakF4SWlBdlBnb2dJRHh3WVhSb0lHUTlJazB4TmlBMlZqUmhNaUF5SURBZ01DQXdMVEl0TW1ndE5HRXlJRElnTUNBd0lEQXRNaUF5ZGpJaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRJeUlERXpZVEU0TGpFMUlERTRMakUxSURBZ01DQXhMVEl3SURBaUlDOCtDaUFnUEhKbFkzUWdkMmxrZEdnOUlqSXdJaUJvWldsbmFIUTlJakUwSWlCNFBTSXlJaUI1UFNJMklpQnllRDBpTWlJZ0x6NEtQQzl6ZG1jK0NnPT0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2JyaWVmY2FzZS1idXNpbmVzc1xuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IEJyaWVmY2FzZUJ1c2luZXNzID0gY3JlYXRlTHVjaWRlSWNvbignYnJpZWZjYXNlLWJ1c2luZXNzJywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IEJyaWVmY2FzZUJ1c2luZXNzO1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdNMTAgMjB2MicsIGtleTogJzFuOGUxZycgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xNCAyMHYyJywga2V5OiAnMWxxODcyJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTE4IDIwdjInLCBrZXk6ICcxMHVhZHcnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMjEgMjBIMycsIGtleTogJ2tkcWtkcCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ002IDIwdjInLCBrZXk6ICdhOWJjODcnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNOCAxNlY0YTIgMiAwIDAgMSAyLTJoNGEyIDIgMCAwIDEgMiAydjEyJywga2V5OiAnMTduOXR4JyB9XSxcbiAgWydyZWN0JywgeyB4OiAnNCcsIHk6ICc2Jywgd2lkdGg6ICcxNicsIGhlaWdodDogJzEwJywgcng6ICcyJywga2V5OiAnMTA5N2k1JyB9XSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBCcmllZmNhc2VDb252ZXlvckJlbHRcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1UQWdNakIyTWlJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTVRRZ01qQjJNaUlnTHo0S0lDQThjR0YwYUNCa1BTSk5NVGdnTWpCMk1pSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk1qRWdNakJJTXlJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTmlBeU1IWXlJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMDRJREUyVmpSaE1pQXlJREFnTUNBeElESXRNbWcwWVRJZ01pQXdJREFnTVNBeUlESjJNVElpSUM4K0NpQWdQSEpsWTNRZ2VEMGlOQ0lnZVQwaU5pSWdkMmxrZEdnOUlqRTJJaUJvWldsbmFIUTlJakV3SWlCeWVEMGlNaUlnTHo0S1BDOXpkbWMrQ2c9PSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvYnJpZWZjYXNlLWNvbnZleW9yLWJlbHRcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBCcmllZmNhc2VDb252ZXlvckJlbHQgPSBjcmVhdGVMdWNpZGVJY29uKCdicmllZmNhc2UtY29udmV5b3ItYmVsdCcsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBCcmllZmNhc2VDb252ZXlvckJlbHQ7XG4iLCJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ00xMiAxMXY0Jywga2V5OiAnYTZ1anc2JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTE0IDEzaC00Jywga2V5OiAnMXBsOHpnJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTE2IDZWNGEyIDIgMCAwIDAtMi0yaC00YTIgMiAwIDAgMC0yIDJ2MicsIGtleTogJzFrc2R0MycgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xOCA2djE0Jywga2V5OiAnMW11NGd5JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTYgNnYxNCcsIGtleTogJzFzMTVjaicgfV0sXG4gIFsncmVjdCcsIHsgd2lkdGg6ICcyMCcsIGhlaWdodDogJzE0JywgeDogJzInLCB5OiAnNicsIHJ4OiAnMicsIGtleTogJ2k2bDJyNCcgfV0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgQnJpZWZjYXNlTWVkaWNhbFxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTVRJZ01URjJOQ0lnTHo0S0lDQThjR0YwYUNCa1BTSk5NVFFnTVROb0xUUWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRURTJJRFpXTkdFeUlESWdNQ0F3SURBdE1pMHlhQzAwWVRJZ01pQXdJREFnTUMweUlESjJNaUlnTHo0S0lDQThjR0YwYUNCa1BTSk5NVGdnTm5ZeE5DSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk5pQTJkakUwSWlBdlBnb2dJRHh5WldOMElIZHBaSFJvUFNJeU1DSWdhR1ZwWjJoMFBTSXhOQ0lnZUQwaU1pSWdlVDBpTmlJZ2NuZzlJaklpSUM4K0Nqd3ZjM1puUGdvPSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvYnJpZWZjYXNlLW1lZGljYWxcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBCcmllZmNhc2VNZWRpY2FsID0gY3JlYXRlTHVjaWRlSWNvbignYnJpZWZjYXNlLW1lZGljYWwnLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgQnJpZWZjYXNlTWVkaWNhbDtcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTE2IDIwVjRhMiAyIDAgMCAwLTItMmgtNGEyIDIgMCAwIDAtMiAydjE2Jywga2V5OiAnamVjcHAnIH1dLFxuICBbJ3JlY3QnLCB7IHdpZHRoOiAnMjAnLCBoZWlnaHQ6ICcxNCcsIHg6ICcyJywgeTogJzYnLCByeDogJzInLCBrZXk6ICdpNmwycjQnIH1dLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIEJyaWVmY2FzZVxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTVRZZ01qQldOR0V5SURJZ01DQXdJREF0TWkweWFDMDBZVElnTWlBd0lEQWdNQzB5SURKMk1UWWlJQzgrQ2lBZ1BISmxZM1FnZDJsa2RHZzlJakl3SWlCb1pXbG5hSFE5SWpFMElpQjRQU0l5SWlCNVBTSTJJaUJ5ZUQwaU1pSWdMejRLUEM5emRtYytDZz09KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9icmllZmNhc2VcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBCcmllZmNhc2UgPSBjcmVhdGVMdWNpZGVJY29uKCdicmllZmNhc2UnLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgQnJpZWZjYXNlO1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbJ3JlY3QnLCB7IHg6ICc4JywgeTogJzgnLCB3aWR0aDogJzgnLCBoZWlnaHQ6ICc4Jywgcng6ICcyJywga2V5OiAneWoyMHhmJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTQgMTBhMiAyIDAgMCAxLTItMlY0YTIgMiAwIDAgMSAyLTJoNGEyIDIgMCAwIDEgMiAyJywga2V5OiAnMWx0azIzJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTE0IDIwYTIgMiAwIDAgMCAyIDJoNGEyIDIgMCAwIDAgMi0ydi00YTIgMiAwIDAgMC0yLTInLCBrZXk6ICcxcTI0aDknIH1dLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIEJyaW5nVG9Gcm9udFxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y21WamRDQjRQU0k0SWlCNVBTSTRJaUIzYVdSMGFEMGlPQ0lnYUdWcFoyaDBQU0k0SWlCeWVEMGlNaUlnTHo0S0lDQThjR0YwYUNCa1BTSk5OQ0F4TUdFeUlESWdNQ0F3SURFdE1pMHlWalJoTWlBeUlEQWdNQ0F4SURJdE1tZzBZVElnTWlBd0lEQWdNU0F5SURJaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRFMElESXdZVElnTWlBd0lEQWdNQ0F5SURKb05HRXlJRElnTUNBd0lEQWdNaTB5ZGkwMFlUSWdNaUF3SURBZ01DMHlMVElpSUM4K0Nqd3ZjM1puUGdvPSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvYnJpbmctdG8tZnJvbnRcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBCcmluZ1RvRnJvbnQgPSBjcmVhdGVMdWNpZGVJY29uKCdicmluZy10by1mcm9udCcsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBCcmluZ1RvRnJvbnQ7XG4iLCJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ20xNiAyMi0xLTQnLCBrZXk6ICcxb3cyaXYnIH1dLFxuICBbXG4gICAgJ3BhdGgnLFxuICAgIHtcbiAgICAgIGQ6ICdNMTkgMTMuOTlhMSAxIDAgMCAwIDEtMVYxMmEyIDIgMCAwIDAtMi0yaC0zYTEgMSAwIDAgMS0xLTFWNGEyIDIgMCAwIDAtNCAwdjVhMSAxIDAgMCAxLTEgMUg2YTIgMiAwIDAgMC0yIDJ2Ljk5YTEgMSAwIDAgMCAxIDEnLFxuICAgICAga2V5OiAnaXc4amR1JyxcbiAgICB9LFxuICBdLFxuICBbJ3BhdGgnLCB7IGQ6ICdNNSAxNGgxNGwxLjk3MyA2Ljc2N0ExIDEgMCAwIDEgMjAgMjJINGExIDEgMCAwIDEtLjk3My0xLjIzM3onLCBrZXk6ICcxc29ldzgnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdtOCAyMiAxLTQnLCBrZXk6ICdzM3VuYicgfV0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgQnJ1c2hDbGVhbmluZ1xuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0p0TVRZZ01qSXRNUzAwSWlBdlBnb2dJRHh3WVhSb0lHUTlJazB4T1NBeE15NDVPV0V4SURFZ01DQXdJREFnTVMweFZqRXlZVElnTWlBd0lEQWdNQzB5TFRKb0xUTmhNU0F4SURBZ01DQXhMVEV0TVZZMFlUSWdNaUF3SURBZ01DMDBJREIyTldFeElERWdNQ0F3SURFdE1TQXhTRFpoTWlBeUlEQWdNQ0F3TFRJZ01uWXVPVGxoTVNBeElEQWdNQ0F3SURFZ01TSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk5TQXhOR2d4Tkd3eExqazNNeUEyTGpjMk4wRXhJREVnTUNBd0lERWdNakFnTWpKSU5HRXhJREVnTUNBd0lERXRMamszTXkweExqSXpNM29pSUM4K0NpQWdQSEJoZEdnZ1pEMGliVGdnTWpJZ01TMDBJaUF2UGdvOEwzTjJaejRLKSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9icnVzaC1jbGVhbmluZ1xuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IEJydXNoQ2xlYW5pbmcgPSBjcmVhdGVMdWNpZGVJY29uKCdicnVzaC1jbGVhbmluZycsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBCcnVzaENsZWFuaW5nO1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdtMTEgMTAgMyAzJywga2V5OiAnZnptZzFpJyB9XSxcbiAgW1xuICAgICdwYXRoJyxcbiAgICB7IGQ6ICdNNi41IDIxQTMuNSAzLjUgMCAxIDAgMyAxNy41YTIuNjIgMi42MiAwIDAgMS0uNzA4IDEuNzkyQTEgMSAwIDAgMCAzIDIxeicsIGtleTogJ3A0cTJyNycgfSxcbiAgXSxcbiAgWydwYXRoJywgeyBkOiAnTTkuOTY5IDE3LjAzMSAyMS4zNzggNS42MjRhMSAxIDAgMCAwLTMuMDAyLTMuMDAyTDYuOTY3IDE0LjAzMScsIGtleTogJ3d5NmwwMicgfV0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgQnJ1c2hcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKdE1URWdNVEFnTXlBeklpQXZQZ29nSUR4d1lYUm9JR1E5SWswMkxqVWdNakZCTXk0MUlETXVOU0F3SURFZ01DQXpJREUzTGpWaE1pNDJNaUF5TGpZeUlEQWdNQ0F4TFM0M01EZ2dNUzQzT1RKQk1TQXhJREFnTUNBd0lETWdNakY2SWlBdlBnb2dJRHh3WVhSb0lHUTlJazA1TGprMk9TQXhOeTR3TXpFZ01qRXVNemM0SURVdU5qSTBZVEVnTVNBd0lEQWdNQzB6TGpBd01pMHpMakF3TWt3MkxqazJOeUF4TkM0d016RWlJQzgrQ2p3dmMzWm5QZ289KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9icnVzaFxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IEJydXNoID0gY3JlYXRlTHVjaWRlSWNvbignYnJ1c2gnLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgQnJ1c2g7XG4iLCJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ003LjIgMTQuOGEyIDIgMCAwIDEgMiAyJywga2V5OiAnMXR3OWdnJyB9XSxcbiAgWydjaXJjbGUnLCB7IGN4OiAnMTguNScsIGN5OiAnOC41JywgcjogJzMuNScsIGtleTogJzF3YWRvYScgfV0sXG4gIFsnY2lyY2xlJywgeyBjeDogJzcuNScsIGN5OiAnMTYuNScsIHI6ICc1LjUnLCBrZXk6ICc2bWR0M2cnIH1dLFxuICBbJ2NpcmNsZScsIHsgY3g6ICc3LjUnLCBjeTogJzQuNScsIHI6ICcyLjUnLCBrZXk6ICc2MzdzNTQnIH1dLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIEJ1YmJsZXNcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk55NHlJREUwTGpoaE1pQXlJREFnTUNBeElESWdNaUlnTHo0S0lDQThZMmx5WTJ4bElHTjRQU0l4T0M0MUlpQmplVDBpT0M0MUlpQnlQU0l6TGpVaUlDOCtDaUFnUEdOcGNtTnNaU0JqZUQwaU55NDFJaUJqZVQwaU1UWXVOU0lnY2owaU5TNDFJaUF2UGdvZ0lEeGphWEpqYkdVZ1kzZzlJamN1TlNJZ1kzazlJalF1TlNJZ2NqMGlNaTQxSWlBdlBnbzhMM04yWno0SykgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvYnViYmxlc1xuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IEJ1YmJsZXMgPSBjcmVhdGVMdWNpZGVJY29uKCdidWJibGVzJywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IEJ1YmJsZXM7XG4iLCJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ00xNSA3LjEzVjZhMyAzIDAgMCAwLTUuMTQtMi4xTDggMicsIGtleTogJ3ZsOHppaycgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xNC4xMiAzLjg4IDE2IDInLCBrZXk6ICdxb2wzM3InIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMjIgMTNoLTR2LTJhNCA0IDAgMCAwLTQtNGgtMS4zJywga2V5OiAnMW91MGJkJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTIwLjk3IDVjMCAyLjEtMS42IDMuOC0zLjUgNCcsIGtleTogJzE4Z2IyMycgfV0sXG4gIFsncGF0aCcsIHsgZDogJ20yIDIgMjAgMjAnLCBrZXk6ICcxb29ld3knIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNNy43IDcuN0E0IDQgMCAwIDAgNiAxMXYzYTYgNiAwIDAgMCAxMS4xMyAzLjEzJywga2V5OiAnMW5qa2pzJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTEyIDIwdi04Jywga2V5OiAnaTN5dWI5JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTYgMTNIMicsIGtleTogJzgyajdjcCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00zIDIxYzAtMi4xIDEuNy0zLjkgMy44LTQnLCBrZXk6ICc0cDBla3AnIH1dLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIEJ1Z09mZlxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTVRVZ055NHhNMVkyWVRNZ015QXdJREFnTUMwMUxqRTBMVEl1TVV3NElESWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRURTBMakV5SURNdU9EZ2dNVFlnTWlJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTWpJZ01UTm9MVFIyTFRKaE5DQTBJREFnTUNBd0xUUXROR2d0TVM0eklpQXZQZ29nSUR4d1lYUm9JR1E5SWsweU1DNDVOeUExWXpBZ01pNHhMVEV1TmlBekxqZ3RNeTQxSURRaUlDOCtDaUFnUEhCaGRHZ2daRDBpYlRJZ01pQXlNQ0F5TUNJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTnk0M0lEY3VOMEUwSURRZ01DQXdJREFnTmlBeE1YWXpZVFlnTmlBd0lEQWdNQ0F4TVM0eE15QXpMakV6SWlBdlBnb2dJRHh3WVhSb0lHUTlJazB4TWlBeU1IWXRPQ0lnTHo0S0lDQThjR0YwYUNCa1BTSk5OaUF4TTBneUlpQXZQZ29nSUR4d1lYUm9JR1E5SWsweklESXhZekF0TWk0eElERXVOeTB6TGprZ015NDRMVFFpSUM4K0Nqd3ZjM1puUGdvPSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvYnVnLW9mZlxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IEJ1Z09mZiA9IGNyZWF0ZUx1Y2lkZUljb24oJ2J1Zy1vZmYnLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgQnVnT2ZmO1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbXG4gICAgJ3BhdGgnLFxuICAgIHtcbiAgICAgIGQ6ICdNMTIuNzY1IDIxLjUyMmEuNS41IDAgMCAxLS43NjUtLjQyNHYtOC4xOTZhLjUuNSAwIDAgMSAuNzY1LS40MjRsNS44NzggMy42NzRhMSAxIDAgMCAxIDAgMS42OTZ6JyxcbiAgICAgIGtleTogJzE3c2hxbycsXG4gICAgfSxcbiAgXSxcbiAgWydwYXRoJywgeyBkOiAnTTE0LjEyIDMuODggMTYgMicsIGtleTogJ3FvbDMzcicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xOCAxMWE0IDQgMCAwIDAtNC00aC00YTQgNCAwIDAgMC00IDR2M2E2LjEgNi4xIDAgMCAwIDIgNC41Jywga2V5OiAnMXRqaXh5JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTIwLjk3IDVjMCAyLjEtMS42IDMuOC0zLjUgNCcsIGtleTogJzE4Z2IyMycgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00zIDIxYzAtMi4xIDEuNy0zLjkgMy44LTQnLCBrZXk6ICc0cDBla3AnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNNiAxM0gyJywga2V5OiAnODJqN2NwJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTYuNTMgOUM0LjYgOC44IDMgNy4xIDMgNScsIGtleTogJzMyenp3cycgfV0sXG4gIFsncGF0aCcsIHsgZDogJ204IDIgMS44OCAxLjg4Jywga2V5OiAnZm1udDR0JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTkgNy4xM3YtMWEzLjAwMyAzLjAwMyAwIDEgMSA2IDB2MScsIGtleTogJ2Q3eTdwcicgfV0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgQnVnUGxheVxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTVRJdU56WTFJREl4TGpVeU1tRXVOUzQxSURBZ01DQXhMUzQzTmpVdExqUXlOSFl0T0M0eE9UWmhMalV1TlNBd0lEQWdNU0F1TnpZMUxTNDBNalJzTlM0NE56Z2dNeTQyTnpSaE1TQXhJREFnTUNBeElEQWdNUzQyT1RaNklpQXZQZ29nSUR4d1lYUm9JR1E5SWsweE5DNHhNaUF6TGpnNElERTJJRElpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVEU0SURFeFlUUWdOQ0F3SURBZ01DMDBMVFJvTFRSaE5DQTBJREFnTUNBd0xUUWdOSFl6WVRZdU1TQTJMakVnTUNBd0lEQWdNaUEwTGpVaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRJd0xqazNJRFZqTUNBeUxqRXRNUzQySURNdU9DMHpMalVnTkNJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTXlBeU1XTXdMVEl1TVNBeExqY3RNeTQ1SURNdU9DMDBJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMDJJREV6U0RJaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRZdU5UTWdPVU0wTGpZZ09DNDRJRE1nTnk0eElETWdOU0lnTHo0S0lDQThjR0YwYUNCa1BTSnRPQ0F5SURFdU9EZ2dNUzQ0T0NJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOT1NBM0xqRXpkaTB4WVRNdU1EQXpJRE11TURBeklEQWdNU0F4SURZZ01IWXhJaUF2UGdvOEwzTjJaejRLKSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9idWctcGxheVxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IEJ1Z1BsYXkgPSBjcmVhdGVMdWNpZGVJY29uKCdidWctcGxheScsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBCdWdQbGF5O1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdtOCAyIDEuODggMS44OCcsIGtleTogJ2ZtbnQ0dCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xNC4xMiAzLjg4IDE2IDInLCBrZXk6ICdxb2wzM3InIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNOSA3LjEzdi0xYTMuMDAzIDMuMDAzIDAgMSAxIDYgMHYxJywga2V5OiAnZDd5N3ByJyB9XSxcbiAgW1xuICAgICdwYXRoJyxcbiAgICB7XG4gICAgICBkOiAnTTEyIDIwYy0zLjMgMC02LTIuNy02LTZ2LTNhNCA0IDAgMCAxIDQtNGg0YTQgNCAwIDAgMSA0IDR2M2MwIDMuMy0yLjcgNi02IDYnLFxuICAgICAga2V5OiAneHMxY3c3JyxcbiAgICB9LFxuICBdLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTIgMjB2LTknLCBrZXk6ICcxcWlzbDAnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNNi41MyA5QzQuNiA4LjggMyA3LjEgMyA1Jywga2V5OiAnMzJ6endzJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTYgMTNIMicsIGtleTogJzgyajdjcCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00zIDIxYzAtMi4xIDEuNy0zLjkgMy44LTQnLCBrZXk6ICc0cDBla3AnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMjAuOTcgNWMwIDIuMS0xLjYgMy44LTMuNSA0Jywga2V5OiAnMThnYjIzJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTIyIDEzaC00Jywga2V5OiAnMWpsODBmJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTE3LjIgMTdjMi4xLjEgMy44IDEuOSAzLjggNCcsIGtleTogJ2szZnd5dycgfV0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgQnVnXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSnRPQ0F5SURFdU9EZ2dNUzQ0T0NJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTVRRdU1USWdNeTQ0T0NBeE5pQXlJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMDVJRGN1TVROMkxURmhNeTR3TURNZ015NHdNRE1nTUNBeElERWdOaUF3ZGpFaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRFeUlESXdZeTB6TGpNZ01DMDJMVEl1TnkwMkxUWjJMVE5oTkNBMElEQWdNQ0F4SURRdE5HZzBZVFFnTkNBd0lEQWdNU0EwSURSMk0yTXdJRE11TXkweUxqY2dOaTAySURZaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRFeUlESXdkaTA1SWlBdlBnb2dJRHh3WVhSb0lHUTlJazAyTGpVeklEbEROQzQySURndU9DQXpJRGN1TVNBeklEVWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRUWWdNVE5JTWlJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTXlBeU1XTXdMVEl1TVNBeExqY3RNeTQ1SURNdU9DMDBJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHlNQzQ1TnlBMVl6QWdNaTR4TFRFdU5pQXpMamd0TXk0MUlEUWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRUSXlJREV6YUMwMElpQXZQZ29nSUR4d1lYUm9JR1E5SWsweE55NHlJREUzWXpJdU1TNHhJRE11T0NBeExqa2dNeTQ0SURRaUlDOCtDand2YzNablBnbz0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2J1Z1xuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IEJ1ZyA9IGNyZWF0ZUx1Y2lkZUljb24oJ2J1ZycsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBCdWc7XG4iLCJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ002IDIyVjRhMiAyIDAgMCAxIDItMmg4YTIgMiAwIDAgMSAyIDJ2MThaJywga2V5OiAnMWI0cW1mJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTYgMTJINGEyIDIgMCAwIDAtMiAydjZhMiAyIDAgMCAwIDIgMmgyJywga2V5OiAnaTcxcHpkJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTE4IDloMmEyIDIgMCAwIDEgMiAydjlhMiAyIDAgMCAxLTIgMmgtMicsIGtleTogJzEwamVmcycgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xMCA2aDQnLCBrZXk6ICcxaXR1bmsnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTAgMTBoNCcsIGtleTogJ3RjZHZyZicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xMCAxNGg0Jywga2V5OiAna2VscHhyJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTEwIDE4aDQnLCBrZXk6ICcxdWxxNjgnIH1dLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIEJ1aWxkaW5nMlxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTmlBeU1sWTBZVElnTWlBd0lEQWdNU0F5TFRKb09HRXlJRElnTUNBd0lERWdNaUF5ZGpFNFdpSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk5pQXhNa2cwWVRJZ01pQXdJREFnTUMweUlESjJObUV5SURJZ01DQXdJREFnTWlBeWFESWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRURTRJRGxvTW1FeUlESWdNQ0F3SURFZ01pQXlkamxoTWlBeUlEQWdNQ0F4TFRJZ01tZ3RNaUlnTHo0S0lDQThjR0YwYUNCa1BTSk5NVEFnTm1nMElpQXZQZ29nSUR4d1lYUm9JR1E5SWsweE1DQXhNR2cwSWlBdlBnb2dJRHh3WVhSb0lHUTlJazB4TUNBeE5HZzBJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHhNQ0F4T0dnMElpQXZQZ284TDNOMlp6NEspIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2J1aWxkaW5nLTJcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBCdWlsZGluZzIgPSBjcmVhdGVMdWNpZGVJY29uKCdidWlsZGluZy0yJywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IEJ1aWxkaW5nMjtcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgWydyZWN0JywgeyB3aWR0aDogJzE2JywgaGVpZ2h0OiAnMjAnLCB4OiAnNCcsIHk6ICcyJywgcng6ICcyJywgcnk6ICcyJywga2V5OiAnNzZvdGdmJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTkgMjJ2LTRoNnY0Jywga2V5OiAncjkzaW90JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTggNmguMDEnLCBrZXk6ICcxZHo5MGsnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTYgNmguMDEnLCBrZXk6ICcxeDBmMTMnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTIgNmguMDEnLCBrZXk6ICcxdmk5NnAnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTIgMTBoLjAxJywga2V5OiAnMW5yYXJjJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTEyIDE0aC4wMScsIGtleTogJzFldGlsaScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xNiAxMGguMDEnLCBrZXk6ICcxbTk0d3onIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTYgMTRoLjAxJywga2V5OiAnMWdib2Z3JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTggMTBoLjAxJywga2V5OiAnMTljbHQ4JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTggMTRoLjAxJywga2V5OiAnNjQyM2JoJyB9XSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBCdWlsZGluZ1xuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y21WamRDQjNhV1IwYUQwaU1UWWlJR2hsYVdkb2REMGlNakFpSUhnOUlqUWlJSGs5SWpJaUlISjRQU0l5SWlCeWVUMGlNaUlnTHo0S0lDQThjR0YwYUNCa1BTSk5PU0F5TW5ZdE5HZzJkalFpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVGdnTm1ndU1ERWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRURTJJRFpvTGpBeElpQXZQZ29nSUR4d1lYUm9JR1E5SWsweE1pQTJhQzR3TVNJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTVRJZ01UQm9MakF4SWlBdlBnb2dJRHh3WVhSb0lHUTlJazB4TWlBeE5HZ3VNREVpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVEUySURFd2FDNHdNU0lnTHo0S0lDQThjR0YwYUNCa1BTSk5NVFlnTVRSb0xqQXhJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMDRJREV3YUM0d01TSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk9DQXhOR2d1TURFaUlDOCtDand2YzNablBnbz0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2J1aWxkaW5nXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgQnVpbGRpbmcgPSBjcmVhdGVMdWNpZGVJY29uKCdidWlsZGluZycsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBCdWlsZGluZztcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTQgNiAyIDcnLCBrZXk6ICcxbXFyMTUnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTAgNmg0Jywga2V5OiAnMWl0dW5rJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnbTIyIDctMi0xJywga2V5OiAnMXVtamhjJyB9XSxcbiAgWydyZWN0JywgeyB3aWR0aDogJzE2JywgaGVpZ2h0OiAnMTYnLCB4OiAnNCcsIHk6ICczJywgcng6ICcyJywga2V5OiAnMXd4dzRiJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTQgMTFoMTYnLCBrZXk6ICdtcG94bjAnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNOCAxNWguMDEnLCBrZXk6ICdhN2F0emcnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTYgMTVoLjAxJywga2V5OiAncm5mcmRmJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTYgMTl2MicsIGtleTogJzFsb2hhNicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xOCAyMXYtMicsIGtleTogJ3NxeWwwNCcgfV0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgQnVzRnJvbnRcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk5DQTJJRElnTnlJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTVRBZ05tZzBJaUF2UGdvZ0lEeHdZWFJvSUdROUltMHlNaUEzTFRJdE1TSWdMejRLSUNBOGNtVmpkQ0IzYVdSMGFEMGlNVFlpSUdobGFXZG9kRDBpTVRZaUlIZzlJalFpSUhrOUlqTWlJSEo0UFNJeUlpQXZQZ29nSUR4d1lYUm9JR1E5SWswMElERXhhREUySWlBdlBnb2dJRHh3WVhSb0lHUTlJazA0SURFMWFDNHdNU0lnTHo0S0lDQThjR0YwYUNCa1BTSk5NVFlnTVRWb0xqQXhJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMDJJREU1ZGpJaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRFNElESXhkaTB5SWlBdlBnbzhMM04yWno0SykgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvYnVzLWZyb250XG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgQnVzRnJvbnQgPSBjcmVhdGVMdWNpZGVJY29uKCdidXMtZnJvbnQnLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgQnVzRnJvbnQ7XG4iLCJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ004IDZ2NicsIGtleTogJzE4aTdrbScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xNSA2djYnLCBrZXk6ICcxc2c2ejknIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMiAxMmgxOS42Jywga2V5OiAnZGU1dXRhJyB9XSxcbiAgW1xuICAgICdwYXRoJyxcbiAgICB7XG4gICAgICBkOiAnTTE4IDE4aDNzLjUtMS43LjgtMi44Yy4xLS40LjItLjguMi0xLjIgMC0uNC0uMS0uOC0uMi0xLjJsLTEuNC01QzIwLjEgNi44IDE5LjEgNiAxOCA2SDRhMiAyIDAgMCAwLTIgMnYxMGgzJyxcbiAgICAgIGtleTogJzF3d3p0aycsXG4gICAgfSxcbiAgXSxcbiAgWydjaXJjbGUnLCB7IGN4OiAnNycsIGN5OiAnMTgnLCByOiAnMicsIGtleTogJzE5aWVjZCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ005IDE4aDUnLCBrZXk6ICdscng2aScgfV0sXG4gIFsnY2lyY2xlJywgeyBjeDogJzE2JywgY3k6ICcxOCcsIHI6ICcyJywga2V5OiAnMXY0dGNyJyB9XSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBCdXNcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk9DQTJkallpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVEUxSURaMk5pSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk1pQXhNbWd4T1M0MklpQXZQZ29nSUR4d1lYUm9JR1E5SWsweE9DQXhPR2d6Y3k0MUxURXVOeTQ0TFRJdU9HTXVNUzB1TkM0eUxTNDRMakl0TVM0eUlEQXRMalF0TGpFdExqZ3RMakl0TVM0eWJDMHhMalF0TlVNeU1DNHhJRFl1T0NBeE9TNHhJRFlnTVRnZ05rZzBZVElnTWlBd0lEQWdNQzB5SURKMk1UQm9NeUlnTHo0S0lDQThZMmx5WTJ4bElHTjRQU0kzSWlCamVUMGlNVGdpSUhJOUlqSWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRUa2dNVGhvTlNJZ0x6NEtJQ0E4WTJseVkyeGxJR040UFNJeE5pSWdZM2s5SWpFNElpQnlQU0l5SWlBdlBnbzhMM04yWno0SykgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvYnVzXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgQnVzID0gY3JlYXRlTHVjaWRlSWNvbignYnVzJywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IEJ1cztcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTEwIDNoLjAxJywga2V5OiAnbGJ1Y295JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTE0IDJoLjAxJywga2V5OiAnMWs4YWExJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnbTIgOSAyMC01Jywga2V5OiAnMWt6MGo1JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTEyIDEyVjYuNScsIGtleTogJzF2YnJpaicgfV0sXG4gIFsncmVjdCcsIHsgd2lkdGg6ICcxNicsIGhlaWdodDogJzEwJywgeDogJzQnLCB5OiAnMTInLCByeDogJzMnLCBrZXk6ICdpZjkxZXInIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNOSAxMnY1Jywga2V5OiAnM2Fud3RxJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTE1IDEydjUnLCBrZXk6ICc1eGgzem4nIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNNCAxN2gxNicsIGtleTogJ2c0ZDdleScgfV0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgQ2FibGVDYXJcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1UQWdNMmd1TURFaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRFMElESm9MakF4SWlBdlBnb2dJRHh3WVhSb0lHUTlJbTB5SURrZ01qQXROU0lnTHo0S0lDQThjR0YwYUNCa1BTSk5NVElnTVRKV05pNDFJaUF2UGdvZ0lEeHlaV04wSUhkcFpIUm9QU0l4TmlJZ2FHVnBaMmgwUFNJeE1DSWdlRDBpTkNJZ2VUMGlNVElpSUhKNFBTSXpJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMDVJREV5ZGpVaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRFMUlERXlkalVpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVFFnTVRkb01UWWlJQzgrQ2p3dmMzWm5QZ289KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9jYWJsZS1jYXJcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBDYWJsZUNhciA9IGNyZWF0ZUx1Y2lkZUljb24oJ2NhYmxlLWNhcicsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBDYWJsZUNhcjtcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgW1xuICAgICdwYXRoJyxcbiAgICB7XG4gICAgICBkOiAnTTE3IDIxdi0yYTEgMSAwIDAgMS0xLTF2LTFhMiAyIDAgMCAxIDItMmgyYTIgMiAwIDAgMSAyIDJ2MWExIDEgMCAwIDEtMSAxJyxcbiAgICAgIGtleTogJzEwYm5zaicsXG4gICAgfSxcbiAgXSxcbiAgWydwYXRoJywgeyBkOiAnTTE5IDE1VjYuNWExIDEgMCAwIDAtNyAwdjExYTEgMSAwIDAgMS03IDBWOScsIGtleTogJzFlcW11MScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00yMSAyMXYtMmgtNCcsIGtleTogJzE0em03aicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00zIDVoNFYzJywga2V5OiAnejQ0MmVnJyB9XSxcbiAgW1xuICAgICdwYXRoJyxcbiAgICB7IGQ6ICdNNyA1YTEgMSAwIDAgMSAxIDF2MWEyIDIgMCAwIDEtMiAySDRhMiAyIDAgMCAxLTItMlY2YTEgMSAwIDAgMSAxLTFWMycsIGtleTogJ2ViZGpkNycgfSxcbiAgXSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBDYWJsZVxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTVRjZ01qRjJMVEpoTVNBeElEQWdNQ0F4TFRFdE1YWXRNV0V5SURJZ01DQXdJREVnTWkweWFESmhNaUF5SURBZ01DQXhJRElnTW5ZeFlURWdNU0F3SURBZ01TMHhJREVpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVEU1SURFMVZqWXVOV0V4SURFZ01DQXdJREF0TnlBd2RqRXhZVEVnTVNBd0lEQWdNUzAzSURCV09TSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk1qRWdNakYyTFRKb0xUUWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRUTWdOV2cwVmpNaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRjZ05XRXhJREVnTUNBd0lERWdNU0F4ZGpGaE1pQXlJREFnTUNBeExUSWdNa2cwWVRJZ01pQXdJREFnTVMweUxUSldObUV4SURFZ01DQXdJREVnTVMweFZqTWlJQzgrQ2p3dmMzWm5QZ289KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9jYWJsZVxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IENhYmxlID0gY3JlYXRlTHVjaWRlSWNvbignY2FibGUnLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgQ2FibGU7XG4iLCJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbXG4gIFsnY2lyY2xlJywgeyBjeDogJzknLCBjeTogJzcnLCByOiAnMicsIGtleTogJzEzMDVwbCcgfV0sXG4gIFtcbiAgICAncGF0aCcsXG4gICAgeyBkOiAnTTcuMiA3LjkgMyAxMXY5YzAgLjYuNCAxIDEgMWgxNmMuNiAwIDEtLjQgMS0xdi05YzAtMi0zLTYtNy04bC0zLjYgMi42Jywga2V5OiAneGxlMTNmJyB9LFxuICBdLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTYgMTNIMycsIGtleTogJzF3cGowOCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xNiAxN0gzJywga2V5OiAnM2x2ZmNkJyB9XSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBDYWtlU2xpY2VcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOFkybHlZMnhsSUdONFBTSTVJaUJqZVQwaU55SWdjajBpTWlJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTnk0eUlEY3VPU0F6SURFeGRqbGpNQ0F1Tmk0MElERWdNU0F4YURFMll5NDJJREFnTVMwdU5DQXhMVEYyTFRsak1DMHlMVE10TmkwM0xUaHNMVE11TmlBeUxqWWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRURTJJREV6U0RNaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRFMklERTNTRE1pSUM4K0Nqd3ZjM1puUGdvPSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvY2FrZS1zbGljZVxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IENha2VTbGljZSA9IGNyZWF0ZUx1Y2lkZUljb24oJ2Nha2Utc2xpY2UnLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgQ2FrZVNsaWNlO1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdNMjAgMjF2LThhMiAyIDAgMCAwLTItMkg2YTIgMiAwIDAgMC0yIDJ2OCcsIGtleTogJzF3M3JpZycgfV0sXG4gIFsncGF0aCcsIHsgZDogJ000IDE2cy41LTEgMi0xIDIuNSAyIDQgMiAyLjUtMiA0LTIgMi41IDIgNCAyIDItMSAyLTEnLCBrZXk6ICduMmpnbWInIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMiAyMWgyMCcsIGtleTogJzFueXg5dycgfV0sXG4gIFsncGF0aCcsIHsgZDogJ003IDh2MycsIGtleTogJzFxdHl2aicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xMiA4djMnLCBrZXk6ICdod3A0enQnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTcgOHYzJywga2V5OiAnMWk2ZTV1JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTcgNGguMDEnLCBrZXk6ICcxYmg0a2gnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTIgNGguMDEnLCBrZXk6ICcxdWpiOWonIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTcgNGguMDEnLCBrZXk6ICcxdXBjb2MnIH1dLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIENha2VcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1qQWdNakYyTFRoaE1pQXlJREFnTUNBd0xUSXRNa2cyWVRJZ01pQXdJREFnTUMweUlESjJPQ0lnTHo0S0lDQThjR0YwYUNCa1BTSk5OQ0F4Tm5NdU5TMHhJREl0TVNBeUxqVWdNaUEwSURJZ01pNDFMVElnTkMweUlESXVOU0F5SURRZ01pQXlMVEVnTWkweElpQXZQZ29nSUR4d1lYUm9JR1E5SWsweUlESXhhREl3SWlBdlBnb2dJRHh3WVhSb0lHUTlJazAzSURoMk15SWdMejRLSUNBOGNHRjBhQ0JrUFNKTk1USWdPSFl6SWlBdlBnb2dJRHh3WVhSb0lHUTlJazB4TnlBNGRqTWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRUY2dOR2d1TURFaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRFeUlEUm9MakF4SWlBdlBnb2dJRHh3WVhSb0lHUTlJazB4TnlBMGFDNHdNU0lnTHo0S1BDOXpkbWMrQ2c9PSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvY2FrZVxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IENha2UgPSBjcmVhdGVMdWNpZGVJY29uKCdjYWtlJywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IENha2U7XG4iLCJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbXG4gIFsncmVjdCcsIHsgd2lkdGg6ICcxNicsIGhlaWdodDogJzIwJywgeDogJzQnLCB5OiAnMicsIHJ4OiAnMicsIGtleTogJzFuYjk1dicgfV0sXG4gIFsnbGluZScsIHsgeDE6ICc4JywgeDI6ICcxNicsIHkxOiAnNicsIHkyOiAnNicsIGtleTogJ3g0bndsMCcgfV0sXG4gIFsnbGluZScsIHsgeDE6ICcxNicsIHgyOiAnMTYnLCB5MTogJzE0JywgeTI6ICcxOCcsIGtleTogJ3dqeWUzcicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xNiAxMGguMDEnLCBrZXk6ICcxbTk0d3onIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTIgMTBoLjAxJywga2V5OiAnMW5yYXJjJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTggMTBoLjAxJywga2V5OiAnMTljbHQ4JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTEyIDE0aC4wMScsIGtleTogJzFldGlsaScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ004IDE0aC4wMScsIGtleTogJzY0MjNiaCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xMiAxOGguMDEnLCBrZXk6ICdtaHlndnUnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNOCAxOGguMDEnLCBrZXk6ICdscnAzNXQnIH1dLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIENhbGN1bGF0b3JcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNtVmpkQ0IzYVdSMGFEMGlNVFlpSUdobGFXZG9kRDBpTWpBaUlIZzlJalFpSUhrOUlqSWlJSEo0UFNJeUlpQXZQZ29nSUR4c2FXNWxJSGd4UFNJNElpQjRNajBpTVRZaUlIa3hQU0kySWlCNU1qMGlOaUlnTHo0S0lDQThiR2x1WlNCNE1UMGlNVFlpSUhneVBTSXhOaUlnZVRFOUlqRTBJaUI1TWowaU1UZ2lJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRURTJJREV3YUM0d01TSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk1USWdNVEJvTGpBeElpQXZQZ29nSUR4d1lYUm9JR1E5SWswNElERXdhQzR3TVNJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTVRJZ01UUm9MakF4SWlBdlBnb2dJRHh3WVhSb0lHUTlJazA0SURFMGFDNHdNU0lnTHo0S0lDQThjR0YwYUNCa1BTSk5NVElnTVRob0xqQXhJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMDRJREU0YUM0d01TSWdMejRLUEM5emRtYytDZz09KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9jYWxjdWxhdG9yXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgQ2FsY3VsYXRvciA9IGNyZWF0ZUx1Y2lkZUljb24oJ2NhbGN1bGF0b3InLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgQ2FsY3VsYXRvcjtcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTExIDE0aDF2NCcsIGtleTogJ2Z5NTR2ZCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xNiAydjQnLCBrZXk6ICc0bTgxdmsnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMyAxMGgxOCcsIGtleTogJzh0b2VuOCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ004IDJ2NCcsIGtleTogJzFjbXB5bScgfV0sXG4gIFsncmVjdCcsIHsgeDogJzMnLCB5OiAnNCcsIHdpZHRoOiAnMTgnLCBoZWlnaHQ6ICcxOCcsIHJ4OiAnMicsIGtleTogJzEydmlucCcgfV0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgQ2FsZW5kYXIxXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NVEVnTVRSb01YWTBJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHhOaUF5ZGpRaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRNZ01UQm9NVGdpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVGdnTW5ZMElpQXZQZ29nSUR4eVpXTjBJSGc5SWpNaUlIazlJalFpSUhkcFpIUm9QU0l4T0NJZ2FHVnBaMmgwUFNJeE9DSWdjbmc5SWpJaUlDOCtDand2YzNablBnbz0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2NhbGVuZGFyLTFcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBDYWxlbmRhcjEgPSBjcmVhdGVMdWNpZGVJY29uKCdjYWxlbmRhci0xJywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IENhbGVuZGFyMTtcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnbTE0IDE4IDQgNCA0LTQnLCBrZXk6ICcxd2F5Z3gnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTYgMnY0Jywga2V5OiAnNG04MXZrJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTE4IDE0djgnLCBrZXk6ICdpcmV3NDUnIH1dLFxuICBbXG4gICAgJ3BhdGgnLFxuICAgIHsgZDogJ00yMSAxMS4zNTRWNmEyIDIgMCAwIDAtMi0ySDVhMiAyIDAgMCAwLTIgMnYxNGEyIDIgMCAwIDAgMiAyaDcuMzQzJywga2V5OiAnYnNlNGYzJyB9LFxuICBdLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMyAxMGgxOCcsIGtleTogJzh0b2VuOCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ004IDJ2NCcsIGtleTogJzFjbXB5bScgfV0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgQ2FsZW5kYXJBcnJvd0Rvd25cbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKdE1UUWdNVGdnTkNBMElEUXROQ0lnTHo0S0lDQThjR0YwYUNCa1BTSk5NVFlnTW5ZMElpQXZQZ29nSUR4d1lYUm9JR1E5SWsweE9DQXhOSFk0SWlBdlBnb2dJRHh3WVhSb0lHUTlJazB5TVNBeE1TNHpOVFJXTm1FeUlESWdNQ0F3SURBdE1pMHlTRFZoTWlBeUlEQWdNQ0F3TFRJZ01uWXhOR0V5SURJZ01DQXdJREFnTWlBeWFEY3VNelF6SWlBdlBnb2dJRHh3WVhSb0lHUTlJazB6SURFd2FERTRJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMDRJREoyTkNJZ0x6NEtQQzl6ZG1jK0NnPT0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2NhbGVuZGFyLWFycm93LWRvd25cbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBDYWxlbmRhckFycm93RG93biA9IGNyZWF0ZUx1Y2lkZUljb24oJ2NhbGVuZGFyLWFycm93LWRvd24nLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgQ2FsZW5kYXJBcnJvd0Rvd247XG4iLCJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ20xNCAxOCA0LTQgNCA0Jywga2V5OiAnZnRrcHB5JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTE2IDJ2NCcsIGtleTogJzRtODF2aycgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xOCAyMnYtOCcsIGtleTogJ3N1MGdqaCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00yMSAxMS4zNDNWNmEyIDIgMCAwIDAtMi0ySDVhMiAyIDAgMCAwLTIgMnYxNGEyIDIgMCAwIDAgMiAyaDknLCBrZXk6ICcxZXhnOTAnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMyAxMGgxOCcsIGtleTogJzh0b2VuOCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ004IDJ2NCcsIGtleTogJzFjbXB5bScgfV0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgQ2FsZW5kYXJBcnJvd1VwXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSnRNVFFnTVRnZ05DMDBJRFFnTkNJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTVRZZ01uWTBJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHhPQ0F5TW5ZdE9DSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk1qRWdNVEV1TXpRelZqWmhNaUF5SURBZ01DQXdMVEl0TWtnMVlUSWdNaUF3SURBZ01DMHlJREoyTVRSaE1pQXlJREFnTUNBd0lESWdNbWc1SWlBdlBnb2dJRHh3WVhSb0lHUTlJazB6SURFd2FERTRJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMDRJREoyTkNJZ0x6NEtQQzl6ZG1jK0NnPT0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2NhbGVuZGFyLWFycm93LXVwXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgQ2FsZW5kYXJBcnJvd1VwID0gY3JlYXRlTHVjaWRlSWNvbignY2FsZW5kYXItYXJyb3ctdXAnLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgQ2FsZW5kYXJBcnJvd1VwO1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdNOCAydjQnLCBrZXk6ICcxY21weW0nIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTYgMnY0Jywga2V5OiAnNG04MXZrJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTIxIDE0VjZhMiAyIDAgMCAwLTItMkg1YTIgMiAwIDAgMC0yIDJ2MTRhMiAyIDAgMCAwIDIgMmg4Jywga2V5OiAnYmNlOWh2JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTMgMTBoMTgnLCBrZXk6ICc4dG9lbjgnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdtMTYgMjAgMiAyIDQtNCcsIGtleTogJzEzdGNjYScgfV0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgQ2FsZW5kYXJDaGVjazJcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk9DQXlkalFpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVEUySURKMk5DSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk1qRWdNVFJXTm1FeUlESWdNQ0F3SURBdE1pMHlTRFZoTWlBeUlEQWdNQ0F3TFRJZ01uWXhOR0V5SURJZ01DQXdJREFnTWlBeWFEZ2lJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRUTWdNVEJvTVRnaUlDOCtDaUFnUEhCaGRHZ2daRDBpYlRFMklESXdJRElnTWlBMExUUWlJQzgrQ2p3dmMzWm5QZ289KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9jYWxlbmRhci1jaGVjay0yXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgQ2FsZW5kYXJDaGVjazIgPSBjcmVhdGVMdWNpZGVJY29uKCdjYWxlbmRhci1jaGVjay0yJywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IENhbGVuZGFyQ2hlY2syO1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdNOCAydjQnLCBrZXk6ICcxY21weW0nIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTYgMnY0Jywga2V5OiAnNG04MXZrJyB9XSxcbiAgWydyZWN0JywgeyB3aWR0aDogJzE4JywgaGVpZ2h0OiAnMTgnLCB4OiAnMycsIHk6ICc0Jywgcng6ICcyJywga2V5OiAnMWhvcGN5JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTMgMTBoMTgnLCBrZXk6ICc4dG9lbjgnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdtOSAxNiAyIDIgNC00Jywga2V5OiAnMTlzNnk5JyB9XSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBDYWxlbmRhckNoZWNrXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5PQ0F5ZGpRaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRFMklESjJOQ0lnTHo0S0lDQThjbVZqZENCM2FXUjBhRDBpTVRnaUlHaGxhV2RvZEQwaU1UZ2lJSGc5SWpNaUlIazlJalFpSUhKNFBTSXlJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHpJREV3YURFNElpQXZQZ29nSUR4d1lYUm9JR1E5SW0wNUlERTJJRElnTWlBMExUUWlJQzgrQ2p3dmMzWm5QZ289KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9jYWxlbmRhci1jaGVja1xuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IENhbGVuZGFyQ2hlY2sgPSBjcmVhdGVMdWNpZGVJY29uKCdjYWxlbmRhci1jaGVjaycsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBDYWxlbmRhckNoZWNrO1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdNMTYgMTR2Mi4ybDEuNiAxJywga2V5OiAnZm80cWw1JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTE2IDJ2NCcsIGtleTogJzRtODF2aycgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00yMSA3LjVWNmEyIDIgMCAwIDAtMi0ySDVhMiAyIDAgMCAwLTIgMnYxNGEyIDIgMCAwIDAgMiAyaDMuNScsIGtleTogJzFvc3h4YycgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00zIDEwaDUnLCBrZXk6ICdyNzk0aGsnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNOCAydjQnLCBrZXk6ICcxY21weW0nIH1dLFxuICBbJ2NpcmNsZScsIHsgY3g6ICcxNicsIGN5OiAnMTYnLCByOiAnNicsIGtleTogJ3FvbzNjNCcgfV0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgQ2FsZW5kYXJDbG9ja1xuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTVRZZ01UUjJNaTR5YkRFdU5pQXhJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHhOaUF5ZGpRaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRJeElEY3VOVlkyWVRJZ01pQXdJREFnTUMweUxUSklOV0V5SURJZ01DQXdJREF0TWlBeWRqRTBZVElnTWlBd0lEQWdNQ0F5SURKb015NDFJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHpJREV3YURVaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRnZ01uWTBJaUF2UGdvZ0lEeGphWEpqYkdVZ1kzZzlJakUySWlCamVUMGlNVFlpSUhJOUlqWWlJQzgrQ2p3dmMzWm5QZ289KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9jYWxlbmRhci1jbG9ja1xuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IENhbGVuZGFyQ2xvY2sgPSBjcmVhdGVMdWNpZGVJY29uKCdjYWxlbmRhci1jbG9jaycsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBDYWxlbmRhckNsb2NrO1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdtMTUuMjI4IDE2Ljg1Mi0uOTIzLS4zODMnLCBrZXk6ICducGl4YXInIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdtMTUuMjI4IDE5LjE0OC0uOTIzLjM4MycsIGtleTogJzUxY3IzbicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xNiAydjQnLCBrZXk6ICc0bTgxdmsnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdtMTYuNDcgMTQuMzA1LjM4Mi45MjMnLCBrZXk6ICdvYnlieGQnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdtMTYuODUyIDIwLjc3Mi0uMzgzLjkyNCcsIGtleTogJ2RwZmhmOScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ20xOS4xNDggMTUuMjI4LjM4My0uOTIzJywga2V5OiAnMXJleXl6JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnbTE5LjUzIDIxLjY5Ni0uMzgyLS45MjQnLCBrZXk6ICcxZ29pdmMnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdtMjAuNzcyIDE2Ljg1Mi45MjQtLjM4MycsIGtleTogJ2h0cWtwaCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ20yMC43NzIgMTkuMTQ4LjkyNC4zODMnLCBrZXk6ICc5dzlwanAnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMjEgMTFWNmEyIDIgMCAwIDAtMi0ySDVhMiAyIDAgMCAwLTIgMnYxNGEyIDIgMCAwIDAgMiAyaDYnLCBrZXk6ICcxZGp1MHMnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMyAxMGgxOCcsIGtleTogJzh0b2VuOCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ004IDJ2NCcsIGtleTogJzFjbXB5bScgfV0sXG4gIFsnY2lyY2xlJywgeyBjeDogJzE4JywgY3k6ICcxOCcsIHI6ICczJywga2V5OiAnMXhrd3QwJyB9XSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBDYWxlbmRhckNvZ1xuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0p0TVRVdU1qSTRJREUyTGpnMU1pMHVPVEl6TFM0ek9ETWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaWJURTFMakl5T0NBeE9TNHhORGd0TGpreU15NHpPRE1pSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVEUySURKMk5DSWdMejRLSUNBOGNHRjBhQ0JrUFNKdE1UWXVORGNnTVRRdU16QTFMak00TWk0NU1qTWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaWJURTJMamcxTWlBeU1DNDNOekl0TGpNNE15NDVNalFpSUM4K0NpQWdQSEJoZEdnZ1pEMGliVEU1TGpFME9DQXhOUzR5TWpndU16Z3pMUzQ1TWpNaUlDOCtDaUFnUEhCaGRHZ2daRDBpYlRFNUxqVXpJREl4TGpZNU5pMHVNemd5TFM0NU1qUWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaWJUSXdMamMzTWlBeE5pNDROVEl1T1RJMExTNHpPRE1pSUM4K0NpQWdQSEJoZEdnZ1pEMGliVEl3TGpjM01pQXhPUzR4TkRndU9USTBMak00TXlJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTWpFZ01URldObUV5SURJZ01DQXdJREF0TWkweVNEVmhNaUF5SURBZ01DQXdMVElnTW5ZeE5HRXlJRElnTUNBd0lEQWdNaUF5YURZaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRNZ01UQm9NVGdpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVGdnTW5ZMElpQXZQZ29nSUR4amFYSmpiR1VnWTNnOUlqRTRJaUJqZVQwaU1UZ2lJSEk5SWpNaUlDOCtDand2YzNablBnbz0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2NhbGVuZGFyLWNvZ1xuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IENhbGVuZGFyQ29nID0gY3JlYXRlTHVjaWRlSWNvbignY2FsZW5kYXItY29nJywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IENhbGVuZGFyQ29nO1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdNOCAydjQnLCBrZXk6ICcxY21weW0nIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTYgMnY0Jywga2V5OiAnNG04MXZrJyB9XSxcbiAgWydyZWN0JywgeyB3aWR0aDogJzE4JywgaGVpZ2h0OiAnMTgnLCB4OiAnMycsIHk6ICc0Jywgcng6ICcyJywga2V5OiAnMWhvcGN5JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTMgMTBoMTgnLCBrZXk6ICc4dG9lbjgnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNOCAxNGguMDEnLCBrZXk6ICc2NDIzYmgnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTIgMTRoLjAxJywga2V5OiAnMWV0aWxpJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTE2IDE0aC4wMScsIGtleTogJzFnYm9mdycgfV0sXG4gIFsncGF0aCcsIHsgZDogJ004IDE4aC4wMScsIGtleTogJ2xycDM1dCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xMiAxOGguMDEnLCBrZXk6ICdtaHlndnUnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTYgMThoLjAxJywga2V5OiAna3pzbWltJyB9XSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBDYWxlbmRhckRheXNcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk9DQXlkalFpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVEUySURKMk5DSWdMejRLSUNBOGNtVmpkQ0IzYVdSMGFEMGlNVGdpSUdobGFXZG9kRDBpTVRnaUlIZzlJak1pSUhrOUlqUWlJSEo0UFNJeUlpQXZQZ29nSUR4d1lYUm9JR1E5SWsweklERXdhREU0SWlBdlBnb2dJRHh3WVhSb0lHUTlJazA0SURFMGFDNHdNU0lnTHo0S0lDQThjR0YwYUNCa1BTSk5NVElnTVRSb0xqQXhJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHhOaUF4TkdndU1ERWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRUZ2dNVGhvTGpBeElpQXZQZ29nSUR4d1lYUm9JR1E5SWsweE1pQXhPR2d1TURFaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRFMklERTRhQzR3TVNJZ0x6NEtQQzl6ZG1jK0NnPT0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2NhbGVuZGFyLWRheXNcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBDYWxlbmRhckRheXMgPSBjcmVhdGVMdWNpZGVJY29uKCdjYWxlbmRhci1kYXlzJywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IENhbGVuZGFyRGF5cztcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTggMnY0Jywga2V5OiAnMWNtcHltJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTE2IDJ2NCcsIGtleTogJzRtODF2aycgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00yMSAxN1Y2YTIgMiAwIDAgMC0yLTJINWEyIDIgMCAwIDAtMiAydjE0YTIgMiAwIDAgMCAyIDJoMTFaJywga2V5OiAna2c3N295JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTMgMTBoMTgnLCBrZXk6ICc4dG9lbjgnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTUgMjJ2LTRhMiAyIDAgMCAxIDItMmg0Jywga2V5OiAnMWduYnFyJyB9XSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBDYWxlbmRhckZvbGRcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk9DQXlkalFpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVEUySURKMk5DSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk1qRWdNVGRXTm1FeUlESWdNQ0F3SURBdE1pMHlTRFZoTWlBeUlEQWdNQ0F3TFRJZ01uWXhOR0V5SURJZ01DQXdJREFnTWlBeWFERXhXaUlnTHo0S0lDQThjR0YwYUNCa1BTSk5NeUF4TUdneE9DSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk1UVWdNakoyTFRSaE1pQXlJREFnTUNBeElESXRNbWcwSWlBdlBnbzhMM04yWno0SykgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvY2FsZW5kYXItZm9sZFxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IENhbGVuZGFyRm9sZCA9IGNyZWF0ZUx1Y2lkZUljb24oJ2NhbGVuZGFyLWZvbGQnLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgQ2FsZW5kYXJGb2xkO1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdNMyAxMGgxOFY2YTIgMiAwIDAgMC0yLTJINWEyIDIgMCAwIDAtMiAydjE0YTIgMiAwIDAgMCAyIDJoNycsIGtleTogJzEzNmxtaycgfV0sXG4gIFsncGF0aCcsIHsgZDogJ004IDJ2NCcsIGtleTogJzFjbXB5bScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xNiAydjQnLCBrZXk6ICc0bTgxdmsnIH1dLFxuICBbXG4gICAgJ3BhdGgnLFxuICAgIHtcbiAgICAgIGQ6ICdNMjEuMjkgMTQuN2EyLjQzIDIuNDMgMCAwIDAtMi42NS0uNTJjLS4zLjEyLS41Ny4zLS44LjUzbC0uMzQuMzQtLjM1LS4zNGEyLjQzIDIuNDMgMCAwIDAtMi42NS0uNTNjLS4zLjEyLS41Ni4zLS43OS41My0uOTUuOTQtMSAyLjUzLjIgMy43NEwxNy41IDIybDMuNi0zLjU1YzEuMi0xLjIxIDEuMTQtMi44LjE5LTMuNzRaJyxcbiAgICAgIGtleTogJzF0N2hpbCcsXG4gICAgfSxcbiAgXSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBDYWxlbmRhckhlYXJ0XG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NeUF4TUdneE9GWTJZVElnTWlBd0lEQWdNQzB5TFRKSU5XRXlJRElnTUNBd0lEQXRNaUF5ZGpFMFlUSWdNaUF3SURBZ01DQXlJREpvTnlJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOT0NBeWRqUWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRURTJJREoyTkNJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTWpFdU1qa2dNVFF1TjJFeUxqUXpJREl1TkRNZ01DQXdJREF0TWk0Mk5TMHVOVEpqTFM0ekxqRXlMUzQxTnk0ekxTNDRMalV6YkMwdU16UXVNelF0TGpNMUxTNHpOR0V5TGpReklESXVORE1nTUNBd0lEQXRNaTQyTlMwdU5UTmpMUzR6TGpFeUxTNDFOaTR6TFM0M09TNDFNeTB1T1RVdU9UUXRNU0F5TGpVekxqSWdNeTQzTkV3eE55NDFJREl5YkRNdU5pMHpMalUxWXpFdU1pMHhMakl4SURFdU1UUXRNaTQ0TGpFNUxUTXVOelJhSWlBdlBnbzhMM04yWno0SykgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvY2FsZW5kYXItaGVhcnRcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBDYWxlbmRhckhlYXJ0ID0gY3JlYXRlTHVjaWRlSWNvbignY2FsZW5kYXItaGVhcnQnLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgQ2FsZW5kYXJIZWFydDtcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTggMnY0Jywga2V5OiAnMWNtcHltJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTE2IDJ2NCcsIGtleTogJzRtODF2aycgfV0sXG4gIFsncmVjdCcsIHsgd2lkdGg6ICcxOCcsIGhlaWdodDogJzE4JywgeDogJzMnLCB5OiAnNCcsIHJ4OiAnMicsIGtleTogJzFob3BjeScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00zIDEwaDE4Jywga2V5OiAnOHRvZW44JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTEwIDE2aDQnLCBrZXk6ICcxN2U1NzEnIH1dLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIENhbGVuZGFyTWludXMyXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5PQ0F5ZGpRaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRFMklESjJOQ0lnTHo0S0lDQThjbVZqZENCM2FXUjBhRDBpTVRnaUlHaGxhV2RvZEQwaU1UZ2lJSGc5SWpNaUlIazlJalFpSUhKNFBTSXlJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHpJREV3YURFNElpQXZQZ29nSUR4d1lYUm9JR1E5SWsweE1DQXhObWcwSWlBdlBnbzhMM04yWno0SykgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvY2FsZW5kYXItbWludXMtMlxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IENhbGVuZGFyTWludXMyID0gY3JlYXRlTHVjaWRlSWNvbignY2FsZW5kYXItbWludXMtMicsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBDYWxlbmRhck1pbnVzMjtcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTE2IDE5aDYnLCBrZXk6ICd4d2czMWknIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTYgMnY0Jywga2V5OiAnNG04MXZrJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTIxIDE1VjZhMiAyIDAgMCAwLTItMkg1YTIgMiAwIDAgMC0yIDJ2MTRhMiAyIDAgMCAwIDIgMmg4LjUnLCBrZXk6ICcxc2Nwb20nIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMyAxMGgxOCcsIGtleTogJzh0b2VuOCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ004IDJ2NCcsIGtleTogJzFjbXB5bScgfV0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgQ2FsZW5kYXJNaW51c1xuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTVRZZ01UbG9OaUlnTHo0S0lDQThjR0YwYUNCa1BTSk5NVFlnTW5ZMElpQXZQZ29nSUR4d1lYUm9JR1E5SWsweU1TQXhOVlkyWVRJZ01pQXdJREFnTUMweUxUSklOV0V5SURJZ01DQXdJREF0TWlBeWRqRTBZVElnTWlBd0lEQWdNQ0F5SURKb09DNDFJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHpJREV3YURFNElpQXZQZ29nSUR4d1lYUm9JR1E5SWswNElESjJOQ0lnTHo0S1BDOXpkbWMrQ2c9PSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvY2FsZW5kYXItbWludXNcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBDYWxlbmRhck1pbnVzID0gY3JlYXRlTHVjaWRlSWNvbignY2FsZW5kYXItbWludXMnLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgQ2FsZW5kYXJNaW51cztcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTQuMiA0LjJBMiAyIDAgMCAwIDMgNnYxNGEyIDIgMCAwIDAgMiAyaDE0YTIgMiAwIDAgMCAxLjgyLTEuMTgnLCBrZXk6ICcxNnN3bjMnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMjEgMTUuNVY2YTIgMiAwIDAgMC0yLTJIOS41Jywga2V5OiAneWh3ODZvJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTE2IDJ2NCcsIGtleTogJzRtODF2aycgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00zIDEwaDcnLCBrZXk6ICcxd2FwNmknIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMjEgMTBoLTUuNScsIGtleTogJ3F1eWNwcScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ20yIDIgMjAgMjAnLCBrZXk6ICcxb29ld3knIH1dLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIENhbGVuZGFyT2ZmXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5OQzR5SURRdU1rRXlJRElnTUNBd0lEQWdNeUEyZGpFMFlUSWdNaUF3SURBZ01DQXlJREpvTVRSaE1pQXlJREFnTUNBd0lERXVPREl0TVM0eE9DSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk1qRWdNVFV1TlZZMllUSWdNaUF3SURBZ01DMHlMVEpJT1M0MUlpQXZQZ29nSUR4d1lYUm9JR1E5SWsweE5pQXlkalFpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVE1nTVRCb055SWdMejRLSUNBOGNHRjBhQ0JrUFNKTk1qRWdNVEJvTFRVdU5TSWdMejRLSUNBOGNHRjBhQ0JrUFNKdE1pQXlJREl3SURJd0lpQXZQZ284TDNOMlp6NEspIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2NhbGVuZGFyLW9mZlxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IENhbGVuZGFyT2ZmID0gY3JlYXRlTHVjaWRlSWNvbignY2FsZW5kYXItb2ZmJywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IENhbGVuZGFyT2ZmO1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdNOCAydjQnLCBrZXk6ICcxY21weW0nIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTYgMnY0Jywga2V5OiAnNG04MXZrJyB9XSxcbiAgWydyZWN0JywgeyB3aWR0aDogJzE4JywgaGVpZ2h0OiAnMTgnLCB4OiAnMycsIHk6ICc0Jywgcng6ICcyJywga2V5OiAnMWhvcGN5JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTMgMTBoMTgnLCBrZXk6ICc4dG9lbjgnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTAgMTZoNCcsIGtleTogJzE3ZTU3MScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xMiAxNHY0Jywga2V5OiAnMXRoaTM2JyB9XSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBDYWxlbmRhclBsdXMyXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5PQ0F5ZGpRaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRFMklESjJOQ0lnTHo0S0lDQThjbVZqZENCM2FXUjBhRDBpTVRnaUlHaGxhV2RvZEQwaU1UZ2lJSGc5SWpNaUlIazlJalFpSUhKNFBTSXlJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHpJREV3YURFNElpQXZQZ29nSUR4d1lYUm9JR1E5SWsweE1DQXhObWcwSWlBdlBnb2dJRHh3WVhSb0lHUTlJazB4TWlBeE5IWTBJaUF2UGdvOEwzTjJaejRLKSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9jYWxlbmRhci1wbHVzLTJcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBDYWxlbmRhclBsdXMyID0gY3JlYXRlTHVjaWRlSWNvbignY2FsZW5kYXItcGx1cy0yJywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IENhbGVuZGFyUGx1czI7XG4iLCJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ00xNiAxOWg2Jywga2V5OiAneHdnMzFpJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTE2IDJ2NCcsIGtleTogJzRtODF2aycgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xOSAxNnY2Jywga2V5OiAndGRkdDNzJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTIxIDEyLjU5OFY2YTIgMiAwIDAgMC0yLTJINWEyIDIgMCAwIDAtMiAydjE0YTIgMiAwIDAgMCAyIDJoOC41Jywga2V5OiAnMWdsZnJjJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTMgMTBoMTgnLCBrZXk6ICc4dG9lbjgnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNOCAydjQnLCBrZXk6ICcxY21weW0nIH1dLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIENhbGVuZGFyUGx1c1xuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTVRZZ01UbG9OaUlnTHo0S0lDQThjR0YwYUNCa1BTSk5NVFlnTW5ZMElpQXZQZ29nSUR4d1lYUm9JR1E5SWsweE9TQXhOblkySWlBdlBnb2dJRHh3WVhSb0lHUTlJazB5TVNBeE1pNDFPVGhXTm1FeUlESWdNQ0F3SURBdE1pMHlTRFZoTWlBeUlEQWdNQ0F3TFRJZ01uWXhOR0V5SURJZ01DQXdJREFnTWlBeWFEZ3VOU0lnTHo0S0lDQThjR0YwYUNCa1BTSk5NeUF4TUdneE9DSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk9DQXlkalFpSUM4K0Nqd3ZjM1puUGdvPSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvY2FsZW5kYXItcGx1c1xuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IENhbGVuZGFyUGx1cyA9IGNyZWF0ZUx1Y2lkZUljb24oJ2NhbGVuZGFyLXBsdXMnLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgQ2FsZW5kYXJQbHVzO1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbJ3JlY3QnLCB7IHdpZHRoOiAnMTgnLCBoZWlnaHQ6ICcxOCcsIHg6ICczJywgeTogJzQnLCByeDogJzInLCBrZXk6ICcxaG9wY3knIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTYgMnY0Jywga2V5OiAnNG04MXZrJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTMgMTBoMTgnLCBrZXk6ICc4dG9lbjgnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNOCAydjQnLCBrZXk6ICcxY21weW0nIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTcgMTRoLTYnLCBrZXk6ICdia21naDMnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTMgMThINycsIGtleTogJ2JiMGJiNycgfV0sXG4gIFsncGF0aCcsIHsgZDogJ003IDE0aC4wMScsIGtleTogJzFxYTNmMScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xNyAxOGguMDEnLCBrZXk6ICcxYmR5cnUnIH1dLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIENhbGVuZGFyUmFuZ2VcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNtVmpkQ0IzYVdSMGFEMGlNVGdpSUdobGFXZG9kRDBpTVRnaUlIZzlJak1pSUhrOUlqUWlJSEo0UFNJeUlpQXZQZ29nSUR4d1lYUm9JR1E5SWsweE5pQXlkalFpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVE1nTVRCb01UZ2lJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRUZ2dNblkwSWlBdlBnb2dJRHh3WVhSb0lHUTlJazB4TnlBeE5HZ3ROaUlnTHo0S0lDQThjR0YwYUNCa1BTSk5NVE1nTVRoSU55SWdMejRLSUNBOGNHRjBhQ0JrUFNKTk55QXhOR2d1TURFaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRFM0lERTRhQzR3TVNJZ0x6NEtQQzl6ZG1jK0NnPT0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2NhbGVuZGFyLXJhbmdlXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgQ2FsZW5kYXJSYW5nZSA9IGNyZWF0ZUx1Y2lkZUljb24oJ2NhbGVuZGFyLXJhbmdlJywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IENhbGVuZGFyUmFuZ2U7XG4iLCJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ00xMSAxMHY0aDQnLCBrZXk6ICcxNzJka2onIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdtMTEgMTQgMS41MzUtMS42MDVhNSA1IDAgMCAxIDggMS41Jywga2V5OiAndnUwcW01JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTE2IDJ2NCcsIGtleTogJzRtODF2aycgfV0sXG4gIFsncGF0aCcsIHsgZDogJ20yMSAxOC0xLjUzNSAxLjYwNWE1IDUgMCAwIDEtOC0xLjUnLCBrZXk6ICcxcWdleXQnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMjEgMjJ2LTRoLTQnLCBrZXk6ICdocnVtbWknIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMjEgOC41VjZhMiAyIDAgMCAwLTItMkg1YTIgMiAwIDAgMC0yIDJ2MTRhMiAyIDAgMCAwIDIgMmg0LjMnLCBrZXk6ICdtY3R3ODQnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMyAxMGg0Jywga2V5OiAnMWVsMzBhJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTggMnY0Jywga2V5OiAnMWNtcHltJyB9XSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBDYWxlbmRhclN5bmNcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1URWdNVEIyTkdnMElpQXZQZ29nSUR4d1lYUm9JR1E5SW0weE1TQXhOQ0F4TGpVek5TMHhMall3TldFMUlEVWdNQ0F3SURFZ09DQXhMalVpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVEUySURKMk5DSWdMejRLSUNBOGNHRjBhQ0JrUFNKdE1qRWdNVGd0TVM0MU16VWdNUzQyTURWaE5TQTFJREFnTUNBeExUZ3RNUzQxSWlBdlBnb2dJRHh3WVhSb0lHUTlJazB5TVNBeU1uWXROR2d0TkNJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTWpFZ09DNDFWalpoTWlBeUlEQWdNQ0F3TFRJdE1rZzFZVElnTWlBd0lEQWdNQzB5SURKMk1UUmhNaUF5SURBZ01DQXdJRElnTW1nMExqTWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRUTWdNVEJvTkNJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOT0NBeWRqUWlJQzgrQ2p3dmMzWm5QZ289KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9jYWxlbmRhci1zeW5jXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgQ2FsZW5kYXJTeW5jID0gY3JlYXRlTHVjaWRlSWNvbignY2FsZW5kYXItc3luYycsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBDYWxlbmRhclN5bmM7XG4iLCJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ00xNiAydjQnLCBrZXk6ICc0bTgxdmsnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMjEgMTEuNzVWNmEyIDIgMCAwIDAtMi0ySDVhMiAyIDAgMCAwLTIgMnYxNGEyIDIgMCAwIDAgMiAyaDcuMjUnLCBrZXk6ICcxanJzcTYnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdtMjIgMjItMS44NzUtMS44NzUnLCBrZXk6ICcxM3pheDcnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMyAxMGgxOCcsIGtleTogJzh0b2VuOCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ004IDJ2NCcsIGtleTogJzFjbXB5bScgfV0sXG4gIFsnY2lyY2xlJywgeyBjeDogJzE4JywgY3k6ICcxOCcsIHI6ICczJywga2V5OiAnMXhrd3QwJyB9XSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBDYWxlbmRhclNlYXJjaFxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTVRZZ01uWTBJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHlNU0F4TVM0M05WWTJZVElnTWlBd0lEQWdNQzB5TFRKSU5XRXlJRElnTUNBd0lEQXRNaUF5ZGpFMFlUSWdNaUF3SURBZ01DQXlJREpvTnk0eU5TSWdMejRLSUNBOGNHRjBhQ0JrUFNKdE1qSWdNakl0TVM0NE56VXRNUzQ0TnpVaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRNZ01UQm9NVGdpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVGdnTW5ZMElpQXZQZ29nSUR4amFYSmpiR1VnWTNnOUlqRTRJaUJqZVQwaU1UZ2lJSEk5SWpNaUlDOCtDand2YzNablBnbz0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2NhbGVuZGFyLXNlYXJjaFxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IENhbGVuZGFyU2VhcmNoID0gY3JlYXRlTHVjaWRlSWNvbignY2FsZW5kYXItc2VhcmNoJywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IENhbGVuZGFyU2VhcmNoO1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdNOCAydjQnLCBrZXk6ICcxY21weW0nIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTYgMnY0Jywga2V5OiAnNG04MXZrJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTIxIDEzVjZhMiAyIDAgMCAwLTItMkg1YTIgMiAwIDAgMC0yIDJ2MTRhMiAyIDAgMCAwIDIgMmg4Jywga2V5OiAnM3NwdDg0JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTMgMTBoMTgnLCBrZXk6ICc4dG9lbjgnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdtMTcgMjIgNS01Jywga2V5OiAnMWs2cHB2JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnbTE3IDE3IDUgNScsIGtleTogJ3A3b3VzNycgfV0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgQ2FsZW5kYXJYMlxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOT0NBeWRqUWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRURTJJREoyTkNJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTWpFZ01UTldObUV5SURJZ01DQXdJREF0TWkweVNEVmhNaUF5SURBZ01DQXdMVElnTW5ZeE5HRXlJRElnTUNBd0lEQWdNaUF5YURnaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRNZ01UQm9NVGdpSUM4K0NpQWdQSEJoZEdnZ1pEMGliVEUzSURJeUlEVXROU0lnTHo0S0lDQThjR0YwYUNCa1BTSnRNVGNnTVRjZ05TQTFJaUF2UGdvOEwzTjJaejRLKSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9jYWxlbmRhci14LTJcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBDYWxlbmRhclgyID0gY3JlYXRlTHVjaWRlSWNvbignY2FsZW5kYXIteC0yJywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IENhbGVuZGFyWDI7XG4iLCJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ004IDJ2NCcsIGtleTogJzFjbXB5bScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xNiAydjQnLCBrZXk6ICc0bTgxdmsnIH1dLFxuICBbJ3JlY3QnLCB7IHdpZHRoOiAnMTgnLCBoZWlnaHQ6ICcxOCcsIHg6ICczJywgeTogJzQnLCByeDogJzInLCBrZXk6ICcxaG9wY3knIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMyAxMGgxOCcsIGtleTogJzh0b2VuOCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ20xNCAxNC00IDQnLCBrZXk6ICdyeW11MmknIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdtMTAgMTQgNCA0Jywga2V5OiAnM3N6MDZyJyB9XSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBDYWxlbmRhclhcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk9DQXlkalFpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVEUySURKMk5DSWdMejRLSUNBOGNtVmpkQ0IzYVdSMGFEMGlNVGdpSUdobGFXZG9kRDBpTVRnaUlIZzlJak1pSUhrOUlqUWlJSEo0UFNJeUlpQXZQZ29nSUR4d1lYUm9JR1E5SWsweklERXdhREU0SWlBdlBnb2dJRHh3WVhSb0lHUTlJbTB4TkNBeE5DMDBJRFFpSUM4K0NpQWdQSEJoZEdnZ1pEMGliVEV3SURFMElEUWdOQ0lnTHo0S1BDOXpkbWMrQ2c9PSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvY2FsZW5kYXIteFxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IENhbGVuZGFyWCA9IGNyZWF0ZUx1Y2lkZUljb24oJ2NhbGVuZGFyLXgnLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgQ2FsZW5kYXJYO1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdNOCAydjQnLCBrZXk6ICcxY21weW0nIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTYgMnY0Jywga2V5OiAnNG04MXZrJyB9XSxcbiAgWydyZWN0JywgeyB3aWR0aDogJzE4JywgaGVpZ2h0OiAnMTgnLCB4OiAnMycsIHk6ICc0Jywgcng6ICcyJywga2V5OiAnMWhvcGN5JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTMgMTBoMTgnLCBrZXk6ICc4dG9lbjgnIH1dLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIENhbGVuZGFyXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5PQ0F5ZGpRaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRFMklESjJOQ0lnTHo0S0lDQThjbVZqZENCM2FXUjBhRDBpTVRnaUlHaGxhV2RvZEQwaU1UZ2lJSGc5SWpNaUlIazlJalFpSUhKNFBTSXlJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHpJREV3YURFNElpQXZQZ284TDNOMlp6NEspIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2NhbGVuZGFyXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgQ2FsZW5kYXIgPSBjcmVhdGVMdWNpZGVJY29uKCdjYWxlbmRhcicsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBDYWxlbmRhcjtcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgWydsaW5lJywgeyB4MTogJzInLCB4MjogJzIyJywgeTE6ICcyJywgeTI6ICcyMicsIGtleTogJ2E2cDZ1aicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ003IDdINGEyIDIgMCAwIDAtMiAydjlhMiAyIDAgMCAwIDIgMmgxNicsIGtleTogJ3FtdHB0eScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ005LjUgNGg1TDE3IDdoM2EyIDIgMCAwIDEgMiAydjcuNScsIGtleTogJzF1ZnlmYycgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xNC4xMjEgMTUuMTIxQTMgMyAwIDEgMSA5Ljg4IDEwLjg4Jywga2V5OiAnMTF6b3g2JyB9XSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBDYW1lcmFPZmZcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGJHbHVaU0I0TVQwaU1pSWdlREk5SWpJeUlpQjVNVDBpTWlJZ2VUSTlJakl5SWlBdlBnb2dJRHh3WVhSb0lHUTlJazAzSURkSU5HRXlJRElnTUNBd0lEQXRNaUF5ZGpsaE1pQXlJREFnTUNBd0lESWdNbWd4TmlJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOT1M0MUlEUm9OVXd4TnlBM2FETmhNaUF5SURBZ01DQXhJRElnTW5ZM0xqVWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRURTBMakV5TVNBeE5TNHhNakZCTXlBeklEQWdNU0F4SURrdU9EZ2dNVEF1T0RnaUlDOCtDand2YzNablBnbz0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2NhbWVyYS1vZmZcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBDYW1lcmFPZmYgPSBjcmVhdGVMdWNpZGVJY29uKCdjYW1lcmEtb2ZmJywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IENhbWVyYU9mZjtcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgW1xuICAgICdwYXRoJyxcbiAgICB7XG4gICAgICBkOiAnTTE0LjUgNGgtNUw3IDdINGEyIDIgMCAwIDAtMiAydjlhMiAyIDAgMCAwIDIgMmgxNmEyIDIgMCAwIDAgMi0yVjlhMiAyIDAgMCAwLTItMmgtM2wtMi41LTN6JyxcbiAgICAgIGtleTogJzF0YzlxZycsXG4gICAgfSxcbiAgXSxcbiAgWydjaXJjbGUnLCB7IGN4OiAnMTInLCBjeTogJzEzJywgcjogJzMnLCBrZXk6ICcxdmczZXUnIH1dLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIENhbWVyYVxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTVRRdU5TQTBhQzAxVERjZ04wZzBZVElnTWlBd0lEQWdNQzB5SURKMk9XRXlJRElnTUNBd0lEQWdNaUF5YURFMllUSWdNaUF3SURBZ01DQXlMVEpXT1dFeUlESWdNQ0F3SURBdE1pMHlhQzB6YkMweUxqVXRNM29pSUM4K0NpQWdQR05wY21Oc1pTQmplRDBpTVRJaUlHTjVQU0l4TXlJZ2NqMGlNeUlnTHo0S1BDOXpkbWMrQ2c9PSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvY2FtZXJhXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgQ2FtZXJhID0gY3JlYXRlTHVjaWRlSWNvbignY2FtZXJhJywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IENhbWVyYTtcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgW1xuICAgICdwYXRoJyxcbiAgICB7XG4gICAgICBkOiAnTTUuNyAyMWEyIDIgMCAwIDEtMy41LTJsOC42LTE0YTYgNiAwIDAgMSAxMC40IDYgMiAyIDAgMSAxLTMuNDY0LTIgMiAyIDAgMSAwLTMuNDY0LTJaJyxcbiAgICAgIGtleTogJ2lzYXE4ZycsXG4gICAgfSxcbiAgXSxcbiAgWydwYXRoJywgeyBkOiAnTTE3Ljc1IDcgMTUgMi4xJywga2V5OiAnMTJ4N2U4JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTEwLjkgNC44IDEzIDknLCBrZXk6ICcxMDBhODcnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdtNy45IDkuNyAyIDQuNCcsIGtleTogJ250ZmhhaicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ000LjkgMTQuNyA3IDE4LjknLCBrZXk6ICcxeDQzanknIH1dLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIENhbmR5Q2FuZVxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTlM0M0lESXhZVElnTWlBd0lEQWdNUzB6TGpVdE1tdzRMall0TVRSaE5pQTJJREFnTUNBeElERXdMalFnTmlBeUlESWdNQ0F4SURFdE15NDBOalF0TWlBeUlESWdNQ0F4SURBdE15NDBOalF0TWxvaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRFM0xqYzFJRGNnTVRVZ01pNHhJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHhNQzQ1SURRdU9DQXhNeUE1SWlBdlBnb2dJRHh3WVhSb0lHUTlJbTAzTGprZ09TNDNJRElnTkM0MElpQXZQZ29nSUR4d1lYUm9JR1E5SWswMExqa2dNVFF1TnlBM0lERTRMamtpSUM4K0Nqd3ZjM1puUGdvPSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvY2FuZHktY2FuZVxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IENhbmR5Q2FuZSA9IGNyZWF0ZUx1Y2lkZUljb24oJ2NhbmR5LWNhbmUnLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgQ2FuZHlDYW5lO1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdNMTAgMTB2Ny45Jywga2V5OiAnbThnOXR0JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTExLjgwMiA2LjE0NWE1IDUgMCAwIDEgNi4wNTMgNi4wNTMnLCBrZXk6ICdkbjg3aTMnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTQgNi4xdjIuMjQzJywga2V5OiAnMWt6eXNuJyB9XSxcbiAgW1xuICAgICdwYXRoJyxcbiAgICB7IGQ6ICdtMTUuNSAxNS41NzEtLjk2NC45NjRhNSA1IDAgMCAxLTcuMDcxIDAgNSA1IDAgMCAxIDAtNy4wN2wuOTY0LS45NjUnLCBrZXk6ICczc3h5MTgnIH0sXG4gIF0sXG4gIFtcbiAgICAncGF0aCcsXG4gICAge1xuICAgICAgZDogJ00xNiA3VjNhMSAxIDAgMCAxIDEuNzA3LS43MDcgMi41IDIuNSAwIDAgMCAyLjE1Mi43MTcgMSAxIDAgMCAxIDEuMTMxIDEuMTMxIDIuNSAyLjUgMCAwIDAgLjcxNyAyLjE1MkExIDEgMCAwIDEgMjEgOGgtNCcsXG4gICAgICBrZXk6ICdncGI2eHgnLFxuICAgIH0sXG4gIF0sXG4gIFsncGF0aCcsIHsgZDogJ20yIDIgMjAgMjAnLCBrZXk6ICcxb29ld3knIH1dLFxuICBbXG4gICAgJ3BhdGgnLFxuICAgIHtcbiAgICAgIGQ6ICdNOCAxN3Y0YTEgMSAwIDAgMS0xLjcwNy43MDcgMi41IDIuNSAwIDAgMC0yLjE1Mi0uNzE3IDEgMSAwIDAgMS0xLjEzMS0xLjEzMSAyLjUgMi41IDAgMCAwLS43MTctMi4xNTJBMSAxIDAgMCAxIDMgMTZoNCcsXG4gICAgICBrZXk6ICdxZXhjaGEnLFxuICAgIH0sXG4gIF0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgQ2FuZHlPZmZcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1UQWdNVEIyTnk0NUlpQXZQZ29nSUR4d1lYUm9JR1E5SWsweE1TNDRNRElnTmk0eE5EVmhOU0ExSURBZ01DQXhJRFl1TURVeklEWXVNRFV6SWlBdlBnb2dJRHh3WVhSb0lHUTlJazB4TkNBMkxqRjJNaTR5TkRNaUlDOCtDaUFnUEhCaGRHZ2daRDBpYlRFMUxqVWdNVFV1TlRjeExTNDVOalF1T1RZMFlUVWdOU0F3SURBZ01TMDNMakEzTVNBd0lEVWdOU0F3SURBZ01TQXdMVGN1TURkc0xqazJOQzB1T1RZMUlpQXZQZ29nSUR4d1lYUm9JR1E5SWsweE5pQTNWak5oTVNBeElEQWdNQ0F4SURFdU56QTNMUzQzTURjZ01pNDFJREl1TlNBd0lEQWdNQ0F5TGpFMU1pNDNNVGNnTVNBeElEQWdNQ0F4SURFdU1UTXhJREV1TVRNeElESXVOU0F5TGpVZ01DQXdJREFnTGpjeE55QXlMakUxTWtFeElERWdNQ0F3SURFZ01qRWdPR2d0TkNJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0p0TWlBeUlESXdJREl3SWlBdlBnb2dJRHh3WVhSb0lHUTlJazA0SURFM2RqUmhNU0F4SURBZ01DQXhMVEV1TnpBM0xqY3dOeUF5TGpVZ01pNDFJREFnTUNBd0xUSXVNVFV5TFM0M01UY2dNU0F4SURBZ01DQXhMVEV1TVRNeExURXVNVE14SURJdU5TQXlMalVnTUNBd0lEQXRMamN4TnkweUxqRTFNa0V4SURFZ01DQXdJREVnTXlBeE5tZzBJaUF2UGdvOEwzTjJaejRLKSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9jYW5keS1vZmZcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBDYW5keU9mZiA9IGNyZWF0ZUx1Y2lkZUljb24oJ2NhbmR5LW9mZicsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBDYW5keU9mZjtcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTEwIDd2MTAuOScsIGtleTogJzFneW51eCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xNCA2LjFWMTcnLCBrZXk6ICcxMTZrZGYnIH1dLFxuICBbXG4gICAgJ3BhdGgnLFxuICAgIHtcbiAgICAgIGQ6ICdNMTYgN1YzYTEgMSAwIDAgMSAxLjcwNy0uNzA3IDIuNSAyLjUgMCAwIDAgMi4xNTIuNzE3IDEgMSAwIDAgMSAxLjEzMSAxLjEzMSAyLjUgMi41IDAgMCAwIC43MTcgMi4xNTJBMSAxIDAgMCAxIDIxIDhoLTQnLFxuICAgICAga2V5OiAnZ3BiNnh4JyxcbiAgICB9LFxuICBdLFxuICBbXG4gICAgJ3BhdGgnLFxuICAgIHtcbiAgICAgIGQ6ICdNMTYuNTM2IDcuNDY1YTUgNSAwIDAgMC03LjA3MiAwbC0yIDJhNSA1IDAgMCAwIDAgNy4wNyA1IDUgMCAwIDAgNy4wNzIgMGwyLTJhNSA1IDAgMCAwIDAtNy4wNycsXG4gICAgICBrZXk6ICcxdHNsbjQnLFxuICAgIH0sXG4gIF0sXG4gIFtcbiAgICAncGF0aCcsXG4gICAge1xuICAgICAgZDogJ004IDE3djRhMSAxIDAgMCAxLTEuNzA3LjcwNyAyLjUgMi41IDAgMCAwLTIuMTUyLS43MTcgMSAxIDAgMCAxLTEuMTMxLTEuMTMxIDIuNSAyLjUgMCAwIDAtLjcxNy0yLjE1MkExIDEgMCAwIDEgMyAxNmg0JyxcbiAgICAgIGtleTogJ3FleGNoYScsXG4gICAgfSxcbiAgXSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBDYW5keVxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTVRBZ04zWXhNQzQ1SWlBdlBnb2dJRHh3WVhSb0lHUTlJazB4TkNBMkxqRldNVGNpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVEUySURkV00yRXhJREVnTUNBd0lERWdNUzQzTURjdExqY3dOeUF5TGpVZ01pNDFJREFnTUNBd0lESXVNVFV5TGpjeE55QXhJREVnTUNBd0lERWdNUzR4TXpFZ01TNHhNekVnTWk0MUlESXVOU0F3SURBZ01DQXVOekUzSURJdU1UVXlRVEVnTVNBd0lEQWdNU0F5TVNBNGFDMDBJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHhOaTQxTXpZZ055NDBOalZoTlNBMUlEQWdNQ0F3TFRjdU1EY3lJREJzTFRJZ01tRTFJRFVnTUNBd0lEQWdNQ0EzTGpBM0lEVWdOU0F3SURBZ01DQTNMakEzTWlBd2JESXRNbUUxSURVZ01DQXdJREFnTUMwM0xqQTNJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMDRJREUzZGpSaE1TQXhJREFnTUNBeExURXVOekEzTGpjd055QXlMalVnTWk0MUlEQWdNQ0F3TFRJdU1UVXlMUzQzTVRjZ01TQXhJREFnTUNBeExURXVNVE14TFRFdU1UTXhJREl1TlNBeUxqVWdNQ0F3SURBdExqY3hOeTB5TGpFMU1rRXhJREVnTUNBd0lERWdNeUF4Tm1nMElpQXZQZ284TDNOMlp6NEspIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2NhbmR5XG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgQ2FuZHkgPSBjcmVhdGVMdWNpZGVJY29uKCdjYW5keScsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBDYW5keTtcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTEyIDIydi00Jywga2V5OiAnMXV0azltJyB9XSxcbiAgW1xuICAgICdwYXRoJyxcbiAgICB7XG4gICAgICBkOiAnTTcgMTJjLTEuNSAwLTQuNSAxLjUtNSAzIDMuNSAxLjUgNiAxIDYgMS0xLjUgMS41LTIgMy41LTIgNSAyLjUgMCA0LjUtMS41IDYtMyAxLjUgMS41IDMuNSAzIDYgMyAwLTEuNS0uNS0zLjUtMi01IDAgMCAyLjUuNSA2LTEtLjUtMS41LTMuNS0zLTUtMyAxLjUtMSA0LTQgNC02LTIuNSAwLTUuNSAxLjUtNyAzIDAtMi41LS41LTUtMi03LTEuNSAyLTIgNC41LTIgNy0xLjUtMS41LTQuNS0zLTctMyAwIDIgMi41IDUgNCA2JyxcbiAgICAgIGtleTogJzFtZXpvZCcsXG4gICAgfSxcbiAgXSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBDYW5uYWJpc1xuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTVRJZ01qSjJMVFFpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVGNnTVRKakxURXVOU0F3TFRRdU5TQXhMalV0TlNBeklETXVOU0F4TGpVZ05pQXhJRFlnTVMweExqVWdNUzQxTFRJZ015NDFMVElnTlNBeUxqVWdNQ0EwTGpVdE1TNDFJRFl0TXlBeExqVWdNUzQxSURNdU5TQXpJRFlnTXlBd0xURXVOUzB1TlMwekxqVXRNaTAxSURBZ01DQXlMalV1TlNBMkxURXRMalV0TVM0MUxUTXVOUzB6TFRVdE15QXhMalV0TVNBMExUUWdOQzAyTFRJdU5TQXdMVFV1TlNBeExqVXROeUF6SURBdE1pNDFMUzQxTFRVdE1pMDNMVEV1TlNBeUxUSWdOQzQxTFRJZ055MHhMalV0TVM0MUxUUXVOUzB6TFRjdE15QXdJRElnTWk0MUlEVWdOQ0EySWlBdlBnbzhMM04yWno0SykgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvY2FubmFiaXNcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBDYW5uYWJpcyA9IGNyZWF0ZUx1Y2lkZUljb24oJ2Nhbm5hYmlzJywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IENhbm5hYmlzO1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdNMTAuNSA1SDE5YTIgMiAwIDAgMSAyIDJ2OC41Jywga2V5OiAnanF0azRkJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTE3IDExaC0uNScsIGtleTogJzE5NjF1ZScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xOSAxOUg1YTIgMiAwIDAgMS0yLTJWN2EyIDIgMCAwIDEgMi0yJywga2V5OiAnMWtlcXNpJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnbTIgMiAyMCAyMCcsIGtleTogJzFvb2V3eScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ003IDExaDQnLCBrZXk6ICcxbzF6NnYnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNNyAxNWgyLjUnLCBrZXk6ICcxaW5hMWcnIH1dLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIENhcHRpb25zT2ZmXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NVEF1TlNBMVNERTVZVElnTWlBd0lEQWdNU0F5SURKMk9DNDFJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHhOeUF4TVdndExqVWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRURTVJREU1U0RWaE1pQXlJREFnTUNBeExUSXRNbFkzWVRJZ01pQXdJREFnTVNBeUxUSWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaWJUSWdNaUF5TUNBeU1DSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk55QXhNV2cwSWlBdlBnb2dJRHh3WVhSb0lHUTlJazAzSURFMWFESXVOU0lnTHo0S1BDOXpkbWMrQ2c9PSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvY2FwdGlvbnMtb2ZmXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgQ2FwdGlvbnNPZmYgPSBjcmVhdGVMdWNpZGVJY29uKCdjYXB0aW9ucy1vZmYnLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgQ2FwdGlvbnNPZmY7XG4iLCJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbXG4gIFsncmVjdCcsIHsgd2lkdGg6ICcxOCcsIGhlaWdodDogJzE0JywgeDogJzMnLCB5OiAnNScsIHJ4OiAnMicsIHJ5OiAnMicsIGtleTogJzEycnVoNycgfV0sXG4gIFsncGF0aCcsIHsgZDogJ003IDE1aDRNMTUgMTVoMk03IDExaDJNMTMgMTFoNCcsIGtleTogJzF1ZWlhcicgfV0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgQ2FwdGlvbnNcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNtVmpkQ0IzYVdSMGFEMGlNVGdpSUdobGFXZG9kRDBpTVRRaUlIZzlJak1pSUhrOUlqVWlJSEo0UFNJeUlpQnllVDBpTWlJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTnlBeE5XZzBUVEUxSURFMWFESk5OeUF4TVdneVRURXpJREV4YURRaUlDOCtDand2YzNablBnPT0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2NhcHRpb25zXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgQ2FwdGlvbnMgPSBjcmVhdGVMdWNpZGVJY29uKCdjYXB0aW9ucycsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBDYXB0aW9ucztcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgW1xuICAgICdwYXRoJyxcbiAgICB7IGQ6ICdtMjEgOC0yIDItMS41LTMuN0EyIDIgMCAwIDAgMTUuNjQ2IDVIOC40YTIgMiAwIDAgMC0xLjkwMyAxLjI1N0w1IDEwIDMgOCcsIGtleTogJzFpbWp3dCcgfSxcbiAgXSxcbiAgWydwYXRoJywgeyBkOiAnTTcgMTRoLjAxJywga2V5OiAnMXFhM2YxJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTE3IDE0aC4wMScsIGtleTogJzdvcWo4eicgfV0sXG4gIFsncmVjdCcsIHsgd2lkdGg6ICcxOCcsIGhlaWdodDogJzgnLCB4OiAnMycsIHk6ICcxMCcsIHJ4OiAnMicsIGtleTogJ2E3aXR1OCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ001IDE4djInLCBrZXk6ICdwcGJ5dW4nIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTkgMTh2MicsIGtleTogJ2d5Nzc4MicgfV0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgQ2FyRnJvbnRcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKdE1qRWdPQzB5SURJdE1TNDFMVE11TjBFeUlESWdNQ0F3SURBZ01UVXVOalEySURWSU9DNDBZVElnTWlBd0lEQWdNQzB4TGprd015QXhMakkxTjB3MUlERXdJRE1nT0NJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTnlBeE5HZ3VNREVpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVEUzSURFMGFDNHdNU0lnTHo0S0lDQThjbVZqZENCM2FXUjBhRDBpTVRnaUlHaGxhV2RvZEQwaU9DSWdlRDBpTXlJZ2VUMGlNVEFpSUhKNFBTSXlJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMDFJREU0ZGpJaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRFNUlERTRkaklpSUM4K0Nqd3ZjM1puUGdvPSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvY2FyLWZyb250XG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgQ2FyRnJvbnQgPSBjcmVhdGVMdWNpZGVJY29uKCdjYXItZnJvbnQnLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgQ2FyRnJvbnQ7XG4iLCJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ00xMCAyaDQnLCBrZXk6ICduMWFiaXcnIH1dLFxuICBbXG4gICAgJ3BhdGgnLFxuICAgIHsgZDogJ20yMSA4LTIgMi0xLjUtMy43QTIgMiAwIDAgMCAxNS42NDYgNUg4LjRhMiAyIDAgMCAwLTEuOTAzIDEuMjU3TDUgMTAgMyA4Jywga2V5OiAnMWltand0JyB9LFxuICBdLFxuICBbJ3BhdGgnLCB7IGQ6ICdNNyAxNGguMDEnLCBrZXk6ICcxcWEzZjEnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTcgMTRoLjAxJywga2V5OiAnN29xajh6JyB9XSxcbiAgWydyZWN0JywgeyB3aWR0aDogJzE4JywgaGVpZ2h0OiAnOCcsIHg6ICczJywgeTogJzEwJywgcng6ICcyJywga2V5OiAnYTdpdHU4JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTUgMTh2MicsIGtleTogJ3BwYnl1bicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xOSAxOHYyJywga2V5OiAnZ3k3NzgyJyB9XSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBDYXJUYXhpRnJvbnRcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1UQWdNbWcwSWlBdlBnb2dJRHh3WVhSb0lHUTlJbTB5TVNBNExUSWdNaTB4TGpVdE15NDNRVElnTWlBd0lEQWdNQ0F4TlM0Mk5EWWdOVWc0TGpSaE1pQXlJREFnTUNBd0xURXVPVEF6SURFdU1qVTNURFVnTVRBZ015QTRJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMDNJREUwYUM0d01TSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk1UY2dNVFJvTGpBeElpQXZQZ29nSUR4eVpXTjBJSGRwWkhSb1BTSXhPQ0lnYUdWcFoyaDBQU0k0SWlCNFBTSXpJaUI1UFNJeE1DSWdjbmc5SWpJaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRVZ01UaDJNaUlnTHo0S0lDQThjR0YwYUNCa1BTSk5NVGtnTVRoMk1pSWdMejRLUEM5emRtYytDZz09KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9jYXItdGF4aS1mcm9udFxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IENhclRheGlGcm9udCA9IGNyZWF0ZUx1Y2lkZUljb24oJ2Nhci10YXhpLWZyb250JywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IENhclRheGlGcm9udDtcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTE4IDE5VjlhNCA0IDAgMCAwLTQtNEg2YTQgNCAwIDAgMC00IDR2OGEyIDIgMCAwIDAgMiAyaDInLCBrZXk6ICcxOWptM3QnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMiA5aDNhMSAxIDAgMCAxIDEgMXYyYTEgMSAwIDAgMS0xIDFIMicsIGtleTogJzEzaGFrcCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00yMiAxN3YxYTEgMSAwIDAgMS0xIDFIMTB2LTlhMSAxIDAgMCAxIDEtMWgyYTEgMSAwIDAgMSAxIDF2OScsIGtleTogJzFjcmNpOCcgfV0sXG4gIFsnY2lyY2xlJywgeyBjeDogJzgnLCBjeTogJzE5JywgcjogJzInLCBrZXk6ICd0OGZjNXMnIH1dLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIENhcmF2YW5cbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1UZ2dNVGxXT1dFMElEUWdNQ0F3SURBdE5DMDBTRFpoTkNBMElEQWdNQ0F3TFRRZ05IWTRZVElnTWlBd0lEQWdNQ0F5SURKb01pSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk1pQTVhRE5oTVNBeElEQWdNQ0F4SURFZ01YWXlZVEVnTVNBd0lEQWdNUzB4SURGSU1pSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk1qSWdNVGQyTVdFeElERWdNQ0F3SURFdE1TQXhTREV3ZGkwNVlURWdNU0F3SURBZ01TQXhMVEZvTW1FeElERWdNQ0F3SURFZ01TQXhkamtpSUM4K0NpQWdQR05wY21Oc1pTQmplRDBpT0NJZ1kzazlJakU1SWlCeVBTSXlJaUF2UGdvOEwzTjJaejRLKSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9jYXJhdmFuXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgQ2FyYXZhbiA9IGNyZWF0ZUx1Y2lkZUljb24oJ2NhcmF2YW4nLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgQ2FyYXZhbjtcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTEyIDE0djQnLCBrZXk6ICcxdGhpMzYnIH1dLFxuICBbXG4gICAgJ3BhdGgnLFxuICAgIHtcbiAgICAgIGQ6ICdNMTQuMTcyIDJhMiAyIDAgMCAxIDEuNDE0LjU4NmwzLjgyOCAzLjgyOEEyIDIgMCAwIDEgMjAgNy44MjhWMjBhMiAyIDAgMCAxLTIgMkg2YTIgMiAwIDAgMS0yLTJWNGEyIDIgMCAwIDEgMi0yeicsXG4gICAgICBrZXk6ICcxbzY2YmsnLFxuICAgIH0sXG4gIF0sXG4gIFsncGF0aCcsIHsgZDogJ004IDE0aDgnLCBrZXk6ICcxZmdlcDInIH1dLFxuICBbJ3JlY3QnLCB7IHg6ICc4JywgeTogJzEwJywgd2lkdGg6ICc4JywgaGVpZ2h0OiAnOCcsIHJ4OiAnMScsIGtleTogJzFhb25rNicgfV0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgQ2FyZFNpbVxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTVRJZ01UUjJOQ0lnTHo0S0lDQThjR0YwYUNCa1BTSk5NVFF1TVRjeUlESmhNaUF5SURBZ01DQXhJREV1TkRFMExqVTRObXd6TGpneU9DQXpMamd5T0VFeUlESWdNQ0F3SURFZ01qQWdOeTQ0TWpoV01qQmhNaUF5SURBZ01DQXhMVElnTWtnMllUSWdNaUF3SURBZ01TMHlMVEpXTkdFeUlESWdNQ0F3SURFZ01pMHllaUlnTHo0S0lDQThjR0YwYUNCa1BTSk5PQ0F4TkdnNElpQXZQZ29nSUR4eVpXTjBJSGc5SWpnaUlIazlJakV3SWlCM2FXUjBhRDBpT0NJZ2FHVnBaMmgwUFNJNElpQnllRDBpTVNJZ0x6NEtQQzl6ZG1jK0NnPT0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2NhcmQtc2ltXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgQ2FyZFNpbSA9IGNyZWF0ZUx1Y2lkZUljb24oJ2NhcmQtc2ltJywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IENhcmRTaW07XG4iLCJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbXG4gIFtcbiAgICAncGF0aCcsXG4gICAge1xuICAgICAgZDogJ00xOSAxN2gyYy42IDAgMS0uNCAxLTF2LTNjMC0uOS0uNy0xLjctMS41LTEuOUMxOC43IDEwLjYgMTYgMTAgMTYgMTBzLTEuMy0xLjQtMi4yLTIuM2MtLjUtLjQtMS4xLS43LTEuOC0uN0g1Yy0uNiAwLTEuMS40LTEuNC45bC0xLjQgMi45QTMuNyAzLjcgMCAwIDAgMiAxMnY0YzAgLjYuNCAxIDEgMWgyJyxcbiAgICAgIGtleTogJzVvd2VuJyxcbiAgICB9LFxuICBdLFxuICBbJ2NpcmNsZScsIHsgY3g6ICc3JywgY3k6ICcxNycsIHI6ICcyJywga2V5OiAndTJ5c3E5JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTkgMTdoNicsIGtleTogJ3I4dWl0MicgfV0sXG4gIFsnY2lyY2xlJywgeyBjeDogJzE3JywgY3k6ICcxNycsIHI6ICcyJywga2V5OiAnYXh2eDBnJyB9XSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBDYXJcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1Ua2dNVGRvTW1NdU5pQXdJREV0TGpRZ01TMHhkaTB6WXpBdExqa3RMamN0TVM0M0xURXVOUzB4TGpsRE1UZ3VOeUF4TUM0MklERTJJREV3SURFMklERXdjeTB4TGpNdE1TNDBMVEl1TWkweUxqTmpMUzQxTFM0MExURXVNUzB1TnkweExqZ3RMamRJTldNdExqWWdNQzB4TGpFdU5DMHhMalF1T1d3dE1TNDBJREl1T1VFekxqY2dNeTQzSURBZ01DQXdJRElnTVRKMk5HTXdJQzQyTGpRZ01TQXhJREZvTWlJZ0x6NEtJQ0E4WTJseVkyeGxJR040UFNJM0lpQmplVDBpTVRjaUlISTlJaklpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVGtnTVRkb05pSWdMejRLSUNBOFkybHlZMnhsSUdONFBTSXhOeUlnWTNrOUlqRTNJaUJ5UFNJeUlpQXZQZ284TDNOMlp6NEspIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2NhclxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IENhciA9IGNyZWF0ZUx1Y2lkZUljb24oJ2NhcicsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBDYXI7XG4iLCJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbXG4gIFtcbiAgICAncGF0aCcsXG4gICAge1xuICAgICAgZDogJ00yLjI3IDIxLjdzOS44Ny0zLjUgMTIuNzMtNi4zNmE0LjUgNC41IDAgMCAwLTYuMzYtNi4zN0M1Ljc3IDExLjg0IDIuMjcgMjEuNyAyLjI3IDIxLjd6TTguNjQgMTRsLTIuMDUtMi4wNE0xNS4zNCAxNWwtMi40Ni0yLjQ2JyxcbiAgICAgIGtleTogJ3JmcXhiZScsXG4gICAgfSxcbiAgXSxcbiAgWydwYXRoJywgeyBkOiAnTTIyIDlzLTEuMzMtMi0zLjUtMkMxNi44NiA3IDE1IDkgMTUgOXMxLjMzIDIgMy41IDJTMjIgOSAyMiA5eicsIGtleTogJzZiMjV3NCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xNSAycy0yIDEuMzMtMiAzLjVTMTUgOSAxNSA5czItMS44NCAyLTMuNUMxNyAzLjMzIDE1IDIgMTUgMnonLCBrZXk6ICdmbjY1bG8nIH1dLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIENhcnJvdFxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTWk0eU55QXlNUzQzY3prdU9EY3RNeTQxSURFeUxqY3pMVFl1TXpaaE5DNDFJRFF1TlNBd0lEQWdNQzAyTGpNMkxUWXVNemRETlM0M055QXhNUzQ0TkNBeUxqSTNJREl4TGpjZ01pNHlOeUF5TVM0M2VrMDRMalkwSURFMGJDMHlMakExTFRJdU1EUk5NVFV1TXpRZ01UVnNMVEl1TkRZdE1pNDBOaUlnTHo0S0lDQThjR0YwYUNCa1BTSk5NaklnT1hNdE1TNHpNeTB5TFRNdU5TMHlRekUyTGpnMklEY2dNVFVnT1NBeE5TQTVjekV1TXpNZ01pQXpMalVnTWxNeU1pQTVJREl5SURsNklpQXZQZ29nSUR4d1lYUm9JR1E5SWsweE5TQXljeTB5SURFdU16TXRNaUF6TGpWVE1UVWdPU0F4TlNBNWN6SXRNUzQ0TkNBeUxUTXVOVU14TnlBekxqTXpJREUxSURJZ01UVWdNbm9pSUM4K0Nqd3ZjM1puUGdvPSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvY2Fycm90XG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgQ2Fycm90ID0gY3JlYXRlTHVjaWRlSWNvbignY2Fycm90JywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IENhcnJvdDtcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgWydjaXJjbGUnLCB7IGN4OiAnNycsIGN5OiAnMTInLCByOiAnMycsIGtleTogJzEyY2x3bScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xMCA5djYnLCBrZXk6ICcxN2k3bG8nIH1dLFxuICBbJ2NpcmNsZScsIHsgY3g6ICcxNycsIGN5OiAnMTInLCByOiAnMycsIGtleTogJ2dsN2MycycgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xNCA3djgnLCBrZXk6ICdkbDg0Y3InIH1dLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIENhc2VMb3dlclxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4WTJseVkyeGxJR040UFNJM0lpQmplVDBpTVRJaUlISTlJak1pSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVEV3SURsMk5pSWdMejRLSUNBOFkybHlZMnhsSUdONFBTSXhOeUlnWTNrOUlqRXlJaUJ5UFNJeklpQXZQZ29nSUR4d1lYUm9JR1E5SWsweE5DQTNkamdpSUM4K0Nqd3ZjM1puUGdvPSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvY2FzZS1sb3dlclxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IENhc2VMb3dlciA9IGNyZWF0ZUx1Y2lkZUljb24oJ2Nhc2UtbG93ZXInLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgQ2FzZUxvd2VyO1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdtMyAxNSA0LTggNCA4Jywga2V5OiAnMXZ3cjZ1JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTQgMTNoNicsIGtleTogJzFyOW90cycgfV0sXG4gIFsnY2lyY2xlJywgeyBjeDogJzE4JywgY3k6ICcxMicsIHI6ICczJywga2V5OiAnMWtjaHpvJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTIxIDl2NicsIGtleTogJ2FubnMzMScgfV0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgQ2FzZVNlbnNpdGl2ZVxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0p0TXlBeE5TQTBMVGdnTkNBNElpQXZQZ29nSUR4d1lYUm9JR1E5SWswMElERXphRFlpSUM4K0NpQWdQR05wY21Oc1pTQmplRDBpTVRnaUlHTjVQU0l4TWlJZ2NqMGlNeUlnTHo0S0lDQThjR0YwYUNCa1BTSk5NakVnT1hZMklpQXZQZ284TDNOMlp6NEspIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2Nhc2Utc2Vuc2l0aXZlXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgQ2FzZVNlbnNpdGl2ZSA9IGNyZWF0ZUx1Y2lkZUljb24oJ2Nhc2Utc2Vuc2l0aXZlJywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IENhc2VTZW5zaXRpdmU7XG4iLCJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ20zIDE1IDQtOCA0IDgnLCBrZXk6ICcxdndyNnUnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNNCAxM2g2Jywga2V5OiAnMXI5b3RzJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTE1IDExaDQuNWEyIDIgMCAwIDEgMCA0SDE1VjdoNGEyIDIgMCAwIDEgMCA0Jywga2V5OiAnMXNxZmFzJyB9XSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBDYXNlVXBwZXJcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKdE15QXhOU0EwTFRnZ05DQTRJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMDBJREV6YURZaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRFMUlERXhhRFF1TldFeUlESWdNQ0F3SURFZ01DQTBTREUxVmpkb05HRXlJRElnTUNBd0lERWdNQ0EwSWlBdlBnbzhMM04yWno0SykgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvY2FzZS11cHBlclxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IENhc2VVcHBlciA9IGNyZWF0ZUx1Y2lkZUljb24oJ2Nhc2UtdXBwZXInLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgQ2FzZVVwcGVyO1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbJ3JlY3QnLCB7IHdpZHRoOiAnMjAnLCBoZWlnaHQ6ICcxNicsIHg6ICcyJywgeTogJzQnLCByeDogJzInLCBrZXk6ICcxOG4zazEnIH1dLFxuICBbJ2NpcmNsZScsIHsgY3g6ICc4JywgY3k6ICcxMCcsIHI6ICcyJywga2V5OiAnMXhsNHViJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTggMTJoOCcsIGtleTogJzF3Y3lldicgfV0sXG4gIFsnY2lyY2xlJywgeyBjeDogJzE2JywgY3k6ICcxMCcsIHI6ICcyJywga2V5OiAncjE0dDdxJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnbTYgMjAgLjctMi45QTEuNCAxLjQgMCAwIDEgOC4xIDE2aDcuOGExLjQgMS40IDAgMCAxIDEuNCAxbC43IDMnLCBrZXk6ICdsMDF1Y24nIH1dLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIENhc3NldHRlVGFwZVxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y21WamRDQjNhV1IwYUQwaU1qQWlJR2hsYVdkb2REMGlNVFlpSUhnOUlqSWlJSGs5SWpRaUlISjRQU0l5SWlBdlBnb2dJRHhqYVhKamJHVWdZM2c5SWpnaUlHTjVQU0l4TUNJZ2NqMGlNaUlnTHo0S0lDQThjR0YwYUNCa1BTSk5PQ0F4TW1nNElpQXZQZ29nSUR4amFYSmpiR1VnWTNnOUlqRTJJaUJqZVQwaU1UQWlJSEk5SWpJaUlDOCtDaUFnUEhCaGRHZ2daRDBpYlRZZ01qQWdMamN0TWk0NVFURXVOQ0F4TGpRZ01DQXdJREVnT0M0eElERTJhRGN1T0dFeExqUWdNUzQwSURBZ01DQXhJREV1TkNBeGJDNDNJRE1pSUM4K0Nqd3ZjM1puUGdvPSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvY2Fzc2V0dGUtdGFwZVxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IENhc3NldHRlVGFwZSA9IGNyZWF0ZUx1Y2lkZUljb24oJ2Nhc3NldHRlLXRhcGUnLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgQ2Fzc2V0dGVUYXBlO1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdNMiA4VjZhMiAyIDAgMCAxIDItMmgxNmEyIDIgMCAwIDEgMiAydjEyYTIgMiAwIDAgMS0yIDJoLTYnLCBrZXk6ICczenJ6eGcnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMiAxMmE5IDkgMCAwIDEgOCA4Jywga2V5OiAnZzZjdmVlJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTIgMTZhNSA1IDAgMCAxIDQgNCcsIGtleTogJzF5MWRpaScgfV0sXG4gIFsnbGluZScsIHsgeDE6ICcyJywgeDI6ICcyLjAxJywgeTE6ICcyMCcsIHkyOiAnMjAnLCBrZXk6ICd4dTJqdm8nIH1dLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIENhc3RcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1pQTRWalpoTWlBeUlEQWdNQ0F4SURJdE1tZ3hObUV5SURJZ01DQXdJREVnTWlBeWRqRXlZVElnTWlBd0lEQWdNUzB5SURKb0xUWWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRUSWdNVEpoT1NBNUlEQWdNQ0F4SURnZ09DSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk1pQXhObUUxSURVZ01DQXdJREVnTkNBMElpQXZQZ29nSUR4c2FXNWxJSGd4UFNJeUlpQjRNajBpTWk0d01TSWdlVEU5SWpJd0lpQjVNajBpTWpBaUlDOCtDand2YzNablBnbz0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2Nhc3RcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBDYXN0ID0gY3JlYXRlTHVjaWRlSWNvbignY2FzdCcsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBDYXN0O1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdNMjIgMjB2LTlIMnY5YTIgMiAwIDAgMCAyIDJoMTZhMiAyIDAgMCAwIDItMlonLCBrZXk6ICcxMDlmZTQnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTggMTFWNEg2djcnLCBrZXk6ICdtb241b2onIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTUgMjJ2LTRhMyAzIDAgMCAwLTMtM2EzIDMgMCAwIDAtMyAzdjQnLCBrZXk6ICcxazRqdG4nIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMjIgMTFWOScsIGtleTogJzN6YnA5NCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00yIDExVjknLCBrZXk6ICcxeDVybnEnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNNiA0VjInLCBrZXk6ICcxcnNxMTUnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTggNFYyJywga2V5OiAnMWpzZG8xJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTEwIDRWMicsIGtleTogJzc1ZDlseScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xNCA0VjInLCBrZXk6ICc4bmozejYnIH1dLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIENhc3RsZVxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTWpJZ01qQjJMVGxJTW5ZNVlUSWdNaUF3SURBZ01DQXlJREpvTVRaaE1pQXlJREFnTUNBd0lESXRNbG9pSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVEU0SURFeFZqUklOblkzSWlBdlBnb2dJRHh3WVhSb0lHUTlJazB4TlNBeU1uWXROR0V6SURNZ01DQXdJREF0TXkwellUTWdNeUF3SURBZ01DMHpJRE4yTkNJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTWpJZ01URldPU0lnTHo0S0lDQThjR0YwYUNCa1BTSk5NaUF4TVZZNUlpQXZQZ29nSUR4d1lYUm9JR1E5SWswMklEUldNaUlnTHo0S0lDQThjR0YwYUNCa1BTSk5NVGdnTkZZeUlpQXZQZ29nSUR4d1lYUm9JR1E5SWsweE1DQTBWaklpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVEUwSURSV01pSWdMejRLUEM5emRtYytDZz09KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9jYXN0bGVcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBDYXN0bGUgPSBjcmVhdGVMdWNpZGVJY29uKCdjYXN0bGUnLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgQ2FzdGxlO1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbXG4gICAgJ3BhdGgnLFxuICAgIHtcbiAgICAgIGQ6ICdNMTIgNWMuNjcgMCAxLjM1LjA5IDIgLjI2IDEuNzgtMiA1LjAzLTIuODQgNi40Mi0yLjI2IDEuNC41OC0uNDIgNy0uNDIgNyAuNTcgMS4wNyAxIDIuMjQgMSAzLjQ0QzIxIDE3LjkgMTYuOTcgMjEgMTIgMjFzLTktMy05LTcuNTZjMC0xLjI1LjUtMi40IDEtMy40NCAwIDAtMS44OS02LjQyLS41LTcgMS4zOS0uNTggNC43Mi4yMyA2LjUgMi4yM0E5LjA0IDkuMDQgMCAwIDEgMTIgNVonLFxuICAgICAga2V5OiAneDZ4eXFrJyxcbiAgICB9LFxuICBdLFxuICBbJ3BhdGgnLCB7IGQ6ICdNOCAxNHYuNScsIGtleTogJzFuemdkYicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xNiAxNHYuNScsIGtleTogJzFsYWpkeicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xMS4yNSAxNi4yNWgxLjVMMTIgMTdsLS43NS0uNzVaJywga2V5OiAnMTJrcTFtJyB9XSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBDYXRcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1USWdOV011TmpjZ01DQXhMak0xTGpBNUlESWdMakkySURFdU56Z3RNaUExTGpBekxUSXVPRFFnTmk0ME1pMHlMakkySURFdU5DNDFPQzB1TkRJZ055MHVORElnTnlBdU5UY2dNUzR3TnlBeElESXVNalFnTVNBekxqUTBRekl4SURFM0xqa2dNVFl1T1RjZ01qRWdNVElnTWpGekxUa3RNeTA1TFRjdU5UWmpNQzB4TGpJMUxqVXRNaTQwSURFdE15NDBOQ0F3SURBdE1TNDRPUzAyTGpReUxTNDFMVGNnTVM0ek9TMHVOVGdnTkM0M01pNHlNeUEyTGpVZ01pNHlNMEU1TGpBMElEa3VNRFFnTUNBd0lERWdNVElnTlZvaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRnZ01UUjJMalVpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVEUySURFMGRpNDFJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHhNUzR5TlNBeE5pNHlOV2d4TGpWTU1USWdNVGRzTFM0M05TMHVOelZhSWlBdlBnbzhMM04yWno0SykgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvY2F0XG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgQ2F0ID0gY3JlYXRlTHVjaWRlSWNvbignY2F0JywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IENhdDtcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgW1xuICAgICdwYXRoJyxcbiAgICB7XG4gICAgICBkOiAnTTE2Ljc1IDEyaDMuNjMyYTEgMSAwIDAgMSAuODk0IDEuNDQ3bC0yLjAzNCA0LjA2OWExIDEgMCAwIDEtMS43MDguMTM0bC0yLjEyNC0yLjk3JyxcbiAgICAgIGtleTogJ2lyOTFiNScsXG4gICAgfSxcbiAgXSxcbiAgW1xuICAgICdwYXRoJyxcbiAgICB7XG4gICAgICBkOiAnTTE3LjEwNiA5LjA1M2ExIDEgMCAwIDEgLjQ0NyAxLjM0MWwtMy4xMDYgNi4yMTFhMSAxIDAgMCAxLTEuMzQyLjQ0N0wzLjYxIDEyLjNhMi45MiAyLjkyIDAgMCAxLTEuMy0zLjkxTDMuNjkgNS42YTIuOTIgMi45MiAwIDAgMSAzLjkyLTEuM3onLFxuICAgICAga2V5OiAnamxwOGkxJyxcbiAgICB9LFxuICBdLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMiAxOWgzLjc2YTIgMiAwIDAgMCAxLjgtMS4xTDkgMTUnLCBrZXk6ICcxOWJpYjgnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMiAyMXYtNCcsIGtleTogJ2w0MGxpaCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ003IDloLjAxJywga2V5OiAnMTliM2p4JyB9XSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBDY3R2XG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NVFl1TnpVZ01USm9NeTQyTXpKaE1TQXhJREFnTUNBeElDNDRPVFFnTVM0ME5EZHNMVEl1TURNMElEUXVNRFk1WVRFZ01TQXdJREFnTVMweExqY3dPQzR4TXpSc0xUSXVNVEkwTFRJdU9UY2lJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRURTNMakV3TmlBNUxqQTFNMkV4SURFZ01DQXdJREVnTGpRME55QXhMak0wTVd3dE15NHhNRFlnTmk0eU1URmhNU0F4SURBZ01DQXhMVEV1TXpReUxqUTBOMHd6TGpZeElERXlMak5oTWk0NU1pQXlMamt5SURBZ01DQXhMVEV1TXkwekxqa3hURE11TmprZ05TNDJZVEl1T1RJZ01pNDVNaUF3SURBZ01TQXpMamt5TFRFdU0zb2lJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRUSWdNVGxvTXk0M05tRXlJRElnTUNBd0lEQWdNUzQ0TFRFdU1VdzVJREUxSWlBdlBnb2dJRHh3WVhSb0lHUTlJazB5SURJeGRpMDBJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMDNJRGxvTGpBeElpQXZQZ284TDNOMlp6NEspIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2NjdHZcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBDY3R2ID0gY3JlYXRlTHVjaWRlSWNvbignY2N0dicsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBDY3R2O1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdNMyAzdjE2YTIgMiAwIDAgMCAyIDJoMTYnLCBrZXk6ICdjMjRpNDgnIH1dLFxuICBbXG4gICAgJ3BhdGgnLFxuICAgIHtcbiAgICAgIGQ6ICdNNyAxMS4yMDdhLjUuNSAwIDAgMSAuMTQ2LS4zNTNsMi0yYS41LjUgMCAwIDEgLjcwOCAwbDMuMjkyIDMuMjkyYS41LjUgMCAwIDAgLjcwOCAwbDQuMjkyLTQuMjkyYS41LjUgMCAwIDEgLjg1NC4zNTNWMTZhMSAxIDAgMCAxLTEgMUg4YTEgMSAwIDAgMS0xLTF6JyxcbiAgICAgIGtleTogJ3EwZ3I0NycsXG4gICAgfSxcbiAgXSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBDaGFydEFyZWFcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk15QXpkakUyWVRJZ01pQXdJREFnTUNBeUlESm9NVFlpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVGNnTVRFdU1qQTNZUzQxTGpVZ01DQXdJREVnTGpFME5pMHVNelV6YkRJdE1tRXVOUzQxSURBZ01DQXhJQzQzTURnZ01Hd3pMakk1TWlBekxqSTVNbUV1TlM0MUlEQWdNQ0F3SUM0M01EZ2dNR3cwTGpJNU1pMDBMakk1TW1FdU5TNDFJREFnTUNBeElDNDROVFF1TXpVelZqRTJZVEVnTVNBd0lEQWdNUzB4SURGSU9HRXhJREVnTUNBd0lERXRNUzB4ZWlJZ0x6NEtQQzl6ZG1jK0NnPT0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2NoYXJ0LWFyZWFcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBDaGFydEFyZWEgPSBjcmVhdGVMdWNpZGVJY29uKCdjaGFydC1hcmVhJywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IENoYXJ0QXJlYTtcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTMgM3YxNmEyIDIgMCAwIDAgMiAyaDE2Jywga2V5OiAnYzI0aTQ4JyB9XSxcbiAgWydyZWN0JywgeyB4OiAnNycsIHk6ICcxMycsIHdpZHRoOiAnOScsIGhlaWdodDogJzQnLCByeDogJzEnLCBrZXk6ICcxaWlwMXUnIH1dLFxuICBbJ3JlY3QnLCB7IHg6ICc3JywgeTogJzUnLCB3aWR0aDogJzEyJywgaGVpZ2h0OiAnNCcsIHJ4OiAnMScsIGtleTogJzFhbnNraycgfV0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgQ2hhcnRCYXJCaWdcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk15QXpkakUyWVRJZ01pQXdJREFnTUNBeUlESm9NVFlpSUM4K0NpQWdQSEpsWTNRZ2VEMGlOeUlnZVQwaU1UTWlJSGRwWkhSb1BTSTVJaUJvWldsbmFIUTlJalFpSUhKNFBTSXhJaUF2UGdvZ0lEeHlaV04wSUhnOUlqY2lJSGs5SWpVaUlIZHBaSFJvUFNJeE1pSWdhR1ZwWjJoMFBTSTBJaUJ5ZUQwaU1TSWdMejRLUEM5emRtYytDZz09KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9jaGFydC1iYXItYmlnXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgQ2hhcnRCYXJCaWcgPSBjcmVhdGVMdWNpZGVJY29uKCdjaGFydC1iYXItYmlnJywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IENoYXJ0QmFyQmlnO1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdNMyAzdjE2YTIgMiAwIDAgMCAyIDJoMTYnLCBrZXk6ICdjMjRpNDgnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNNyAxMWg4Jywga2V5OiAnMWZlb2x0JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTcgMTZoMTInLCBrZXk6ICd3c251OTgnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNNyA2aDMnLCBrZXk6ICd3OXJtdWwnIH1dLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIENoYXJ0QmFySW5jcmVhc2luZ1xuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTXlBemRqRTJZVElnTWlBd0lEQWdNQ0F5SURKb01UWWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRUY2dNVEZvT0NJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTnlBeE5tZ3hNaUlnTHo0S0lDQThjR0YwYUNCa1BTSk5OeUEyYURNaUlDOCtDand2YzNablBnbz0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2NoYXJ0LWJhci1pbmNyZWFzaW5nXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgQ2hhcnRCYXJJbmNyZWFzaW5nID0gY3JlYXRlTHVjaWRlSWNvbignY2hhcnQtYmFyLWluY3JlYXNpbmcnLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgQ2hhcnRCYXJJbmNyZWFzaW5nO1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdNMyAzdjE2YTIgMiAwIDAgMCAyIDJoMTYnLCBrZXk6ICdjMjRpNDgnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNNyAxMWg4Jywga2V5OiAnMWZlb2x0JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTcgMTZoMycsIGtleTogJ3VyNnZ6dycgfV0sXG4gIFsncGF0aCcsIHsgZDogJ003IDZoMTInLCBrZXk6ICdzejViMGQnIH1dLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIENoYXJ0QmFyRGVjcmVhc2luZ1xuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTXlBemRqRTJZVElnTWlBd0lEQWdNQ0F5SURKb01UWWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRUY2dNVEZvT0NJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTnlBeE5tZ3pJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMDNJRFpvTVRJaUlDOCtDand2YzNablBnbz0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2NoYXJ0LWJhci1kZWNyZWFzaW5nXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgQ2hhcnRCYXJEZWNyZWFzaW5nID0gY3JlYXRlTHVjaWRlSWNvbignY2hhcnQtYmFyLWRlY3JlYXNpbmcnLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgQ2hhcnRCYXJEZWNyZWFzaW5nO1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdNMTEgMTN2NCcsIGtleTogJ3Z5eTJyYicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xNSA1djQnLCBrZXk6ICcxZ3g4OGEnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMyAzdjE2YTIgMiAwIDAgMCAyIDJoMTYnLCBrZXk6ICdjMjRpNDgnIH1dLFxuICBbJ3JlY3QnLCB7IHg6ICc3JywgeTogJzEzJywgd2lkdGg6ICc5JywgaGVpZ2h0OiAnNCcsIHJ4OiAnMScsIGtleTogJzFpaXAxdScgfV0sXG4gIFsncmVjdCcsIHsgeDogJzcnLCB5OiAnNScsIHdpZHRoOiAnMTInLCBoZWlnaHQ6ICc0Jywgcng6ICcxJywga2V5OiAnMWFuc2trJyB9XSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBDaGFydEJhclN0YWNrZWRcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1URWdNVE4yTkNJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTVRVZ05YWTBJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHpJRE4yTVRaaE1pQXlJREFnTUNBd0lESWdNbWd4TmlJZ0x6NEtJQ0E4Y21WamRDQjRQU0kzSWlCNVBTSXhNeUlnZDJsa2RHZzlJamtpSUdobGFXZG9kRDBpTkNJZ2NuZzlJakVpSUM4K0NpQWdQSEpsWTNRZ2VEMGlOeUlnZVQwaU5TSWdkMmxrZEdnOUlqRXlJaUJvWldsbmFIUTlJalFpSUhKNFBTSXhJaUF2UGdvOEwzTjJaejRLKSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9jaGFydC1iYXItc3RhY2tlZFxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IENoYXJ0QmFyU3RhY2tlZCA9IGNyZWF0ZUx1Y2lkZUljb24oJ2NoYXJ0LWJhci1zdGFja2VkJywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IENoYXJ0QmFyU3RhY2tlZDtcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTMgM3YxNmEyIDIgMCAwIDAgMiAyaDE2Jywga2V5OiAnYzI0aTQ4JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTcgMTZoOCcsIGtleTogJ3NyZG9keicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ003IDExaDEyJywga2V5OiAnMTI3czl3JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTcgNmgzJywga2V5OiAndzlybXVsJyB9XSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBDaGFydEJhclxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTXlBemRqRTJZVElnTWlBd0lEQWdNQ0F5SURKb01UWWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRUY2dNVFpvT0NJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTnlBeE1XZ3hNaUlnTHo0S0lDQThjR0YwYUNCa1BTSk5OeUEyYURNaUlDOCtDand2YzNablBnbz0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2NoYXJ0LWJhclxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IENoYXJ0QmFyID0gY3JlYXRlTHVjaWRlSWNvbignY2hhcnQtYmFyJywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IENoYXJ0QmFyO1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdNOSA1djQnLCBrZXk6ICcxNHV4dHEnIH1dLFxuICBbJ3JlY3QnLCB7IHdpZHRoOiAnNCcsIGhlaWdodDogJzYnLCB4OiAnNycsIHk6ICc5Jywgcng6ICcxJywga2V5OiAnZjRmdnowJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTkgMTV2MicsIGtleTogJ3I1cmszMicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xNyAzdjInLCBrZXk6ICcxbDJyZTYnIH1dLFxuICBbJ3JlY3QnLCB7IHdpZHRoOiAnNCcsIGhlaWdodDogJzgnLCB4OiAnMTUnLCB5OiAnNScsIHJ4OiAnMScsIGtleTogJ3ozOGplNScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xNyAxM3YzJywga2V5OiAnNWwwd2JhJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTMgM3YxNmEyIDIgMCAwIDAgMiAyaDE2Jywga2V5OiAnYzI0aTQ4JyB9XSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBDaGFydENhbmRsZXN0aWNrXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5PU0ExZGpRaUlDOCtDaUFnUEhKbFkzUWdkMmxrZEdnOUlqUWlJR2hsYVdkb2REMGlOaUlnZUQwaU55SWdlVDBpT1NJZ2NuZzlJakVpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVGtnTVRWMk1pSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk1UY2dNM1l5SWlBdlBnb2dJRHh5WldOMElIZHBaSFJvUFNJMElpQm9aV2xuYUhROUlqZ2lJSGc5SWpFMUlpQjVQU0kxSWlCeWVEMGlNU0lnTHo0S0lDQThjR0YwYUNCa1BTSk5NVGNnTVROMk15SWdMejRLSUNBOGNHRjBhQ0JrUFNKTk15QXpkakUyWVRJZ01pQXdJREFnTUNBeUlESm9NVFlpSUM4K0Nqd3ZjM1puUGdvPSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvY2hhcnQtY2FuZGxlc3RpY2tcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBDaGFydENhbmRsZXN0aWNrID0gY3JlYXRlTHVjaWRlSWNvbignY2hhcnQtY2FuZGxlc3RpY2snLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgQ2hhcnRDYW5kbGVzdGljaztcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTMgM3YxNmEyIDIgMCAwIDAgMiAyaDE2Jywga2V5OiAnYzI0aTQ4JyB9XSxcbiAgWydyZWN0JywgeyB4OiAnMTUnLCB5OiAnNScsIHdpZHRoOiAnNCcsIGhlaWdodDogJzEyJywgcng6ICcxJywga2V5OiAncTh1ZW5xJyB9XSxcbiAgWydyZWN0JywgeyB4OiAnNycsIHk6ICc4Jywgd2lkdGg6ICc0JywgaGVpZ2h0OiAnOScsIHJ4OiAnMScsIGtleTogJ3NyNWVhJyB9XSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBDaGFydENvbHVtbkJpZ1xuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTXlBemRqRTJZVElnTWlBd0lEQWdNQ0F5SURKb01UWWlJQzgrQ2lBZ1BISmxZM1FnZUQwaU1UVWlJSGs5SWpVaUlIZHBaSFJvUFNJMElpQm9aV2xuYUhROUlqRXlJaUJ5ZUQwaU1TSWdMejRLSUNBOGNtVmpkQ0I0UFNJM0lpQjVQU0k0SWlCM2FXUjBhRDBpTkNJZ2FHVnBaMmgwUFNJNUlpQnllRDBpTVNJZ0x6NEtQQzl6ZG1jK0NnPT0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2NoYXJ0LWNvbHVtbi1iaWdcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBDaGFydENvbHVtbkJpZyA9IGNyZWF0ZUx1Y2lkZUljb24oJ2NoYXJ0LWNvbHVtbi1iaWcnLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgQ2hhcnRDb2x1bW5CaWc7XG4iLCJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ00xMyAxN1Y5Jywga2V5OiAnMWZ3eWpsJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTE4IDE3di0zJywga2V5OiAnMXNxaW9lJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTMgM3YxNmEyIDIgMCAwIDAgMiAyaDE2Jywga2V5OiAnYzI0aTQ4JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTggMTdWNScsIGtleTogJzF3em1uYycgfV0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgQ2hhcnRDb2x1bW5EZWNyZWFzaW5nXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NVE1nTVRkV09TSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk1UZ2dNVGQyTFRNaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRNZ00zWXhObUV5SURJZ01DQXdJREFnTWlBeWFERTJJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMDRJREUzVmpVaUlDOCtDand2YzNablBnbz0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2NoYXJ0LWNvbHVtbi1kZWNyZWFzaW5nXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgQ2hhcnRDb2x1bW5EZWNyZWFzaW5nID0gY3JlYXRlTHVjaWRlSWNvbignY2hhcnQtY29sdW1uLWRlY3JlYXNpbmcnLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgQ2hhcnRDb2x1bW5EZWNyZWFzaW5nO1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdNMTMgMTdWOScsIGtleTogJzFmd3lqbCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xOCAxN1Y1Jywga2V5OiAnc2ZiNmlqJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTMgM3YxNmEyIDIgMCAwIDAgMiAyaDE2Jywga2V5OiAnYzI0aTQ4JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTggMTd2LTMnLCBrZXk6ICcxN3NrYTAnIH1dLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIENoYXJ0Q29sdW1uSW5jcmVhc2luZ1xuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTVRNZ01UZFdPU0lnTHo0S0lDQThjR0YwYUNCa1BTSk5NVGdnTVRkV05TSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk15QXpkakUyWVRJZ01pQXdJREFnTUNBeUlESm9NVFlpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVGdnTVRkMkxUTWlJQzgrQ2p3dmMzWm5QZ289KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9jaGFydC1jb2x1bW4taW5jcmVhc2luZ1xuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IENoYXJ0Q29sdW1uSW5jcmVhc2luZyA9IGNyZWF0ZUx1Y2lkZUljb24oJ2NoYXJ0LWNvbHVtbi1pbmNyZWFzaW5nJywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IENoYXJ0Q29sdW1uSW5jcmVhc2luZztcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTExIDEzSDcnLCBrZXk6ICd0MG85Z3EnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTkgOWgtNCcsIGtleTogJ3JlcmExaicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00zIDN2MTZhMiAyIDAgMCAwIDIgMmgxNicsIGtleTogJ2MyNGk0OCcgfV0sXG4gIFsncmVjdCcsIHsgeDogJzE1JywgeTogJzUnLCB3aWR0aDogJzQnLCBoZWlnaHQ6ICcxMicsIHJ4OiAnMScsIGtleTogJ3E4dWVucScgfV0sXG4gIFsncmVjdCcsIHsgeDogJzcnLCB5OiAnOCcsIHdpZHRoOiAnNCcsIGhlaWdodDogJzknLCByeDogJzEnLCBrZXk6ICdzcjVlYScgfV0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgQ2hhcnRDb2x1bW5TdGFja2VkXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NVEVnTVROSU55SWdMejRLSUNBOGNHRjBhQ0JrUFNKTk1Ua2dPV2d0TkNJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTXlBemRqRTJZVElnTWlBd0lEQWdNQ0F5SURKb01UWWlJQzgrQ2lBZ1BISmxZM1FnZUQwaU1UVWlJSGs5SWpVaUlIZHBaSFJvUFNJMElpQm9aV2xuYUhROUlqRXlJaUJ5ZUQwaU1TSWdMejRLSUNBOGNtVmpkQ0I0UFNJM0lpQjVQU0k0SWlCM2FXUjBhRDBpTkNJZ2FHVnBaMmgwUFNJNUlpQnllRDBpTVNJZ0x6NEtQQzl6ZG1jK0NnPT0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2NoYXJ0LWNvbHVtbi1zdGFja2VkXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgQ2hhcnRDb2x1bW5TdGFja2VkID0gY3JlYXRlTHVjaWRlSWNvbignY2hhcnQtY29sdW1uLXN0YWNrZWQnLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgQ2hhcnRDb2x1bW5TdGFja2VkO1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdNMyAzdjE2YTIgMiAwIDAgMCAyIDJoMTYnLCBrZXk6ICdjMjRpNDgnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTggMTdWOScsIGtleTogJzJiejYwbicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xMyAxN1Y1Jywga2V5OiAnMWZyZHQ4JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTggMTd2LTMnLCBrZXk6ICcxN3NrYTAnIH1dLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIENoYXJ0Q29sdW1uXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NeUF6ZGpFMllUSWdNaUF3SURBZ01DQXlJREpvTVRZaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRFNElERTNWamtpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVEV6SURFM1ZqVWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRUZ2dNVGQyTFRNaUlDOCtDand2YzNablBnbz0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2NoYXJ0LWNvbHVtblxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IENoYXJ0Q29sdW1uID0gY3JlYXRlTHVjaWRlSWNvbignY2hhcnQtY29sdW1uJywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IENoYXJ0Q29sdW1uO1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdNMTAgNmg4Jywga2V5OiAnenZjMnhjJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTEyIDE2aDYnLCBrZXk6ICd5aTVta3QnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMyAzdjE2YTIgMiAwIDAgMCAyIDJoMTYnLCBrZXk6ICdjMjRpNDgnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNOCAxMWg3Jywga2V5OiAnd3oyaGcwJyB9XSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBDaGFydEdhbnR0XG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NVEFnTm1nNElpQXZQZ29nSUR4d1lYUm9JR1E5SWsweE1pQXhObWcySWlBdlBnb2dJRHh3WVhSb0lHUTlJazB6SUROMk1UWmhNaUF5SURBZ01DQXdJRElnTW1neE5pSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk9DQXhNV2czSWlBdlBnbzhMM04yWno0SykgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvY2hhcnQtZ2FudHRcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBDaGFydEdhbnR0ID0gY3JlYXRlTHVjaWRlSWNvbignY2hhcnQtZ2FudHQnLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgQ2hhcnRHYW50dDtcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTMgM3YxNmEyIDIgMCAwIDAgMiAyaDE2Jywga2V5OiAnYzI0aTQ4JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnbTE5IDktNSA1LTQtNC0zIDMnLCBrZXk6ICcyb3NoOWknIH1dLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIENoYXJ0TGluZVxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTXlBemRqRTJZVElnTWlBd0lEQWdNQ0F5SURKb01UWWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaWJURTVJRGt0TlNBMUxUUXROQzB6SURNaUlDOCtDand2YzNablBnbz0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2NoYXJ0LWxpbmVcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBDaGFydExpbmUgPSBjcmVhdGVMdWNpZGVJY29uKCdjaGFydC1saW5lJywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IENoYXJ0TGluZTtcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnbTEzLjExIDcuNjY0IDEuNzggMi42NzInLCBrZXk6ICdnbzJnZzknIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdtMTQuMTYyIDEyLjc4OC0zLjMyNCAxLjQyNCcsIGtleTogJzExeDg0OCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ20yMCA0LTYuMDYgMS41MTUnLCBrZXk6ICcxd3h4aDcnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMyAzdjE2YTIgMiAwIDAgMCAyIDJoMTYnLCBrZXk6ICdjMjRpNDgnIH1dLFxuICBbJ2NpcmNsZScsIHsgY3g6ICcxMicsIGN5OiAnNicsIHI6ICcyJywga2V5OiAnMWpqNXRoJyB9XSxcbiAgWydjaXJjbGUnLCB7IGN4OiAnMTYnLCBjeTogJzEyJywgcjogJzInLCBrZXk6ICc0bWEwdjgnIH1dLFxuICBbJ2NpcmNsZScsIHsgY3g6ICc5JywgY3k6ICcxNScsIHI6ICcyJywga2V5OiAnbGYyZ2hwJyB9XSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBDaGFydE5ldHdvcmtcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKdE1UTXVNVEVnTnk0Mk5qUWdNUzQzT0NBeUxqWTNNaUlnTHo0S0lDQThjR0YwYUNCa1BTSnRNVFF1TVRZeUlERXlMamM0T0MwekxqTXlOQ0F4TGpReU5DSWdMejRLSUNBOGNHRjBhQ0JrUFNKdE1qQWdOQzAyTGpBMklERXVOVEUxSWlBdlBnb2dJRHh3WVhSb0lHUTlJazB6SUROMk1UWmhNaUF5SURBZ01DQXdJRElnTW1neE5pSWdMejRLSUNBOFkybHlZMnhsSUdONFBTSXhNaUlnWTNrOUlqWWlJSEk5SWpJaUlDOCtDaUFnUEdOcGNtTnNaU0JqZUQwaU1UWWlJR041UFNJeE1pSWdjajBpTWlJZ0x6NEtJQ0E4WTJseVkyeGxJR040UFNJNUlpQmplVDBpTVRVaUlISTlJaklpSUM4K0Nqd3ZjM1puUGdvPSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvY2hhcnQtbmV0d29ya1xuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IENoYXJ0TmV0d29yayA9IGNyZWF0ZUx1Y2lkZUljb24oJ2NoYXJ0LW5ldHdvcmsnLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgQ2hhcnROZXR3b3JrO1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdNMTIgMjBWMTAnLCBrZXk6ICdnOG5wejUnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTggMjB2LTQnLCBrZXk6ICc4dWljNHonIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNNiAyMFY0Jywga2V5OiAnMXcxYm1vJyB9XSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBDaGFydE5vQXhlc0NvbHVtbkRlY3JlYXNpbmdcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1USWdNakJXTVRBaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRFNElESXdkaTAwSWlBdlBnb2dJRHh3WVhSb0lHUTlJazAySURJd1ZqUWlJQzgrQ2p3dmMzWm5QZ289KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9jaGFydC1uby1heGVzLWNvbHVtbi1kZWNyZWFzaW5nXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgQ2hhcnROb0F4ZXNDb2x1bW5EZWNyZWFzaW5nID0gY3JlYXRlTHVjaWRlSWNvbignY2hhcnQtbm8tYXhlcy1jb2x1bW4tZGVjcmVhc2luZycsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBDaGFydE5vQXhlc0NvbHVtbkRlY3JlYXNpbmc7XG4iLCJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbXG4gIFsnbGluZScsIHsgeDE6ICcxMicsIHgyOiAnMTInLCB5MTogJzIwJywgeTI6ICcxMCcsIGtleTogJzF2ejVlYicgfV0sXG4gIFsnbGluZScsIHsgeDE6ICcxOCcsIHgyOiAnMTgnLCB5MTogJzIwJywgeTI6ICc0Jywga2V5OiAnY3VuOGU1JyB9XSxcbiAgWydsaW5lJywgeyB4MTogJzYnLCB4MjogJzYnLCB5MTogJzIwJywgeTI6ICcxNicsIGtleTogJ2hxMGlhNicgfV0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgQ2hhcnROb0F4ZXNDb2x1bW5JbmNyZWFzaW5nXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThiR2x1WlNCNE1UMGlNVElpSUhneVBTSXhNaUlnZVRFOUlqSXdJaUI1TWowaU1UQWlJQzgrQ2lBZ1BHeHBibVVnZURFOUlqRTRJaUI0TWowaU1UZ2lJSGt4UFNJeU1DSWdlVEk5SWpRaUlDOCtDaUFnUEd4cGJtVWdlREU5SWpZaUlIZ3lQU0kySWlCNU1UMGlNakFpSUhreVBTSXhOaUlnTHo0S1BDOXpkbWMrQ2c9PSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvY2hhcnQtbm8tYXhlcy1jb2x1bW4taW5jcmVhc2luZ1xuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IENoYXJ0Tm9BeGVzQ29sdW1uSW5jcmVhc2luZyA9IGNyZWF0ZUx1Y2lkZUljb24oJ2NoYXJ0LW5vLWF4ZXMtY29sdW1uLWluY3JlYXNpbmcnLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgQ2hhcnROb0F4ZXNDb2x1bW5JbmNyZWFzaW5nO1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbJ2xpbmUnLCB7IHgxOiAnMTgnLCB4MjogJzE4JywgeTE6ICcyMCcsIHkyOiAnMTAnLCBrZXk6ICcxeGZwbTQnIH1dLFxuICBbJ2xpbmUnLCB7IHgxOiAnMTInLCB4MjogJzEyJywgeTE6ICcyMCcsIHkyOiAnNCcsIGtleTogJ2JlMzBsOScgfV0sXG4gIFsnbGluZScsIHsgeDE6ICc2JywgeDI6ICc2JywgeTE6ICcyMCcsIHkyOiAnMTQnLCBrZXk6ICcxcjRsZTYnIH1dLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIENoYXJ0Tm9BeGVzQ29sdW1uXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThiR2x1WlNCNE1UMGlNVGdpSUhneVBTSXhPQ0lnZVRFOUlqSXdJaUI1TWowaU1UQWlJQzgrQ2lBZ1BHeHBibVVnZURFOUlqRXlJaUI0TWowaU1USWlJSGt4UFNJeU1DSWdlVEk5SWpRaUlDOCtDaUFnUEd4cGJtVWdlREU5SWpZaUlIZ3lQU0kySWlCNU1UMGlNakFpSUhreVBTSXhOQ0lnTHo0S1BDOXpkbWMrQ2c9PSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvY2hhcnQtbm8tYXhlcy1jb2x1bW5cbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBDaGFydE5vQXhlc0NvbHVtbiA9IGNyZWF0ZUx1Y2lkZUljb24oJ2NoYXJ0LW5vLWF4ZXMtY29sdW1uJywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IENoYXJ0Tm9BeGVzQ29sdW1uO1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdNMTIgMTZ2NScsIGtleTogJ3p6YTJjdycgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xNiAxNHY3Jywga2V5OiAnMWc5MGI5JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTIwIDEwdjExJywga2V5OiAnMWlxb2owJyB9XSxcbiAgW1xuICAgICdwYXRoJyxcbiAgICB7IGQ6ICdtMjIgMy04LjY0NiA4LjY0NmEuNS41IDAgMCAxLS43MDggMEw5LjM1NCA4LjM1NGEuNS41IDAgMCAwLS43MDcgMEwyIDE1Jywga2V5OiAnMWZ3OHg5JyB9LFxuICBdLFxuICBbJ3BhdGgnLCB7IGQ6ICdNNCAxOHYzJywga2V5OiAnMXlwMGRjJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTggMTR2NycsIGtleTogJ24zY3d6dicgfV0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgQ2hhcnROb0F4ZXNDb21iaW5lZFxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTVRJZ01UWjJOU0lnTHo0S0lDQThjR0YwYUNCa1BTSk5NVFlnTVRSMk55SWdMejRLSUNBOGNHRjBhQ0JrUFNKTk1qQWdNVEIyTVRFaUlDOCtDaUFnUEhCaGRHZ2daRDBpYlRJeUlETXRPQzQyTkRZZ09DNDJORFpoTGpVdU5TQXdJREFnTVMwdU56QTRJREJNT1M0ek5UUWdPQzR6TlRSaExqVXVOU0F3SURBZ01DMHVOekEzSURCTU1pQXhOU0lnTHo0S0lDQThjR0YwYUNCa1BTSk5OQ0F4T0hZeklpQXZQZ29nSUR4d1lYUm9JR1E5SWswNElERTBkamNpSUM4K0Nqd3ZjM1puUGdvPSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvY2hhcnQtbm8tYXhlcy1jb21iaW5lZFxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IENoYXJ0Tm9BeGVzQ29tYmluZWQgPSBjcmVhdGVMdWNpZGVJY29uKCdjaGFydC1uby1heGVzLWNvbWJpbmVkJywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IENoYXJ0Tm9BeGVzQ29tYmluZWQ7XG4iLCJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ004IDZoMTAnLCBrZXk6ICc5bG53bmsnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNNiAxMmg5Jywga2V5OiAnMWc5cHFmJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTExIDE4aDcnLCBrZXk6ICdjOGR6dmwnIH1dLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIENoYXJ0Tm9BeGVzR2FudHRcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk9DQTJhREV3SWlBdlBnb2dJRHh3WVhSb0lHUTlJazAySURFeWFEa2lJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRURXhJREU0YURjaUlDOCtDand2YzNablBnbz0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2NoYXJ0LW5vLWF4ZXMtZ2FudHRcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBDaGFydE5vQXhlc0dhbnR0ID0gY3JlYXRlTHVjaWRlSWNvbignY2hhcnQtbm8tYXhlcy1nYW50dCcsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBDaGFydE5vQXhlc0dhbnR0O1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbXG4gICAgJ3BhdGgnLFxuICAgIHtcbiAgICAgIGQ6ICdNMjEgMTJjLjU1MiAwIDEuMDA1LS40NDkuOTUtLjk5OGExMCAxMCAwIDAgMC04Ljk1My04Ljk1MWMtLjU1LS4wNTUtLjk5OC4zOTgtLjk5OC45NXY4YTEgMSAwIDAgMCAxIDF6JyxcbiAgICAgIGtleTogJ3B6bWpudScsXG4gICAgfSxcbiAgXSxcbiAgWydwYXRoJywgeyBkOiAnTTIxLjIxIDE1Ljg5QTEwIDEwIDAgMSAxIDggMi44MycsIGtleTogJ2syZnBhaycgfV0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgQ2hhcnRQaWVcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1qRWdNVEpqTGpVMU1pQXdJREV1TURBMUxTNDBORGt1T1RVdExqazVPR0V4TUNBeE1DQXdJREFnTUMwNExqazFNeTA0TGprMU1XTXRMalUxTFM0d05UVXRMams1T0M0ek9UZ3RMams1T0M0NU5YWTRZVEVnTVNBd0lEQWdNQ0F4SURGNklpQXZQZ29nSUR4d1lYUm9JR1E5SWsweU1TNHlNU0F4TlM0NE9VRXhNQ0F4TUNBd0lERWdNU0E0SURJdU9ETWlJQzgrQ2p3dmMzWm5QZ289KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9jaGFydC1waWVcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBDaGFydFBpZSA9IGNyZWF0ZUx1Y2lkZUljb24oJ2NoYXJ0LXBpZScsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBDaGFydFBpZTtcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgWydjaXJjbGUnLCB7IGN4OiAnNy41JywgY3k6ICc3LjUnLCByOiAnLjUnLCBmaWxsOiAnY3VycmVudENvbG9yJywga2V5OiAna3F2OTQ0JyB9XSxcbiAgWydjaXJjbGUnLCB7IGN4OiAnMTguNScsIGN5OiAnNS41JywgcjogJy41JywgZmlsbDogJ2N1cnJlbnRDb2xvcicsIGtleTogJ2x5c2l2cycgfV0sXG4gIFsnY2lyY2xlJywgeyBjeDogJzExLjUnLCBjeTogJzExLjUnLCByOiAnLjUnLCBmaWxsOiAnY3VycmVudENvbG9yJywga2V5OiAnYnl2MWI4JyB9XSxcbiAgWydjaXJjbGUnLCB7IGN4OiAnNy41JywgY3k6ICcxNi41JywgcjogJy41JywgZmlsbDogJ2N1cnJlbnRDb2xvcicsIGtleTogJ25rdzNtYycgfV0sXG4gIFsnY2lyY2xlJywgeyBjeDogJzE3LjUnLCBjeTogJzE0LjUnLCByOiAnLjUnLCBmaWxsOiAnY3VycmVudENvbG9yJywga2V5OiAnMWdqaDZqJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTMgM3YxNmEyIDIgMCAwIDAgMiAyaDE2Jywga2V5OiAnYzI0aTQ4JyB9XSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBDaGFydFNjYXR0ZXJcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOFkybHlZMnhsSUdONFBTSTNMalVpSUdONVBTSTNMalVpSUhJOUlpNDFJaUJtYVd4c1BTSmpkWEp5Wlc1MFEyOXNiM0lpSUM4K0NpQWdQR05wY21Oc1pTQmplRDBpTVRndU5TSWdZM2s5SWpVdU5TSWdjajBpTGpVaUlHWnBiR3c5SW1OMWNuSmxiblJEYjJ4dmNpSWdMejRLSUNBOFkybHlZMnhsSUdONFBTSXhNUzQxSWlCamVUMGlNVEV1TlNJZ2NqMGlMalVpSUdacGJHdzlJbU4xY25KbGJuUkRiMnh2Y2lJZ0x6NEtJQ0E4WTJseVkyeGxJR040UFNJM0xqVWlJR041UFNJeE5pNDFJaUJ5UFNJdU5TSWdabWxzYkQwaVkzVnljbVZ1ZEVOdmJHOXlJaUF2UGdvZ0lEeGphWEpqYkdVZ1kzZzlJakUzTGpVaUlHTjVQU0l4TkM0MUlpQnlQU0l1TlNJZ1ptbHNiRDBpWTNWeWNtVnVkRU52Ykc5eUlpQXZQZ29nSUR4d1lYUm9JR1E5SWsweklETjJNVFpoTWlBeUlEQWdNQ0F3SURJZ01tZ3hOaUlnTHo0S1BDOXpkbWMrQ2c9PSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvY2hhcnQtc2NhdHRlclxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IENoYXJ0U2NhdHRlciA9IGNyZWF0ZUx1Y2lkZUljb24oJ2NoYXJ0LXNjYXR0ZXInLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgQ2hhcnRTY2F0dGVyO1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdNMyAzdjE2YTIgMiAwIDAgMCAyIDJoMTYnLCBrZXk6ICdjMjRpNDgnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNNyAxNmMuNS0yIDEuNS03IDQtNyAyIDAgMiAzIDQgMyAyLjUgMCA0LjUtNSA1LTcnLCBrZXk6ICdsdzA3cnYnIH1dLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIENoYXJ0U3BsaW5lXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NeUF6ZGpFMllUSWdNaUF3SURBZ01DQXlJREpvTVRZaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRjZ01UWmpMalV0TWlBeExqVXROeUEwTFRjZ01pQXdJRElnTXlBMElETWdNaTQxSURBZ05DNDFMVFVnTlMwM0lpQXZQZ284TDNOMlp6NEspIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2NoYXJ0LXNwbGluZVxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IENoYXJ0U3BsaW5lID0gY3JlYXRlTHVjaWRlSWNvbignY2hhcnQtc3BsaW5lJywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IENoYXJ0U3BsaW5lO1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdNMTggNiA3IDE3bC01LTUnLCBrZXk6ICcxMTZmeGYnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdtMjIgMTAtNy41IDcuNUwxMyAxNicsIGtleTogJ2tlNzFxcScgfV0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgQ2hlY2tDaGVja1xuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTVRnZ05pQTNJREUzYkMwMUxUVWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaWJUSXlJREV3TFRjdU5TQTNMalZNTVRNZ01UWWlJQzgrQ2p3dmMzWm5QZ289KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9jaGVjay1jaGVja1xuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IENoZWNrQ2hlY2sgPSBjcmVhdGVMdWNpZGVJY29uKCdjaGVjay1jaGVjaycsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBDaGVja0NoZWNrO1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdNMjAgNEw5IDE1Jywga2V5OiAnMXFreDh6JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTIxIDE5TDMgMTknLCBrZXk6ICcxMDBzbWEnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNOSAxNUw0IDEwJywga2V5OiAnOXp4ZmY3JyB9XSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBDaGVja0xpbmVcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1qQWdORXc1SURFMUlpQXZQZ29nSUR4d1lYUm9JR1E5SWsweU1TQXhPVXd6SURFNUlpQXZQZ29nSUR4d1lYUm9JR1E5SWswNUlERTFURFFnTVRBaUlDOCtDand2YzNablBnbz0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2NoZWNrLWxpbmVcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBDaGVja0xpbmUgPSBjcmVhdGVMdWNpZGVJY29uKCdjaGVjay1saW5lJywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IENoZWNrTGluZTtcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtbJ3BhdGgnLCB7IGQ6ICdNMjAgNiA5IDE3bC01LTUnLCBrZXk6ICcxZ21mMmMnIH1dXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIENoZWNrXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NakFnTmlBNUlERTNiQzAxTFRVaUlDOCtDand2YzNablBnbz0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2NoZWNrXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgQ2hlY2sgPSBjcmVhdGVMdWNpZGVJY29uKCdjaGVjaycsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBDaGVjaztcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgW1xuICAgICdwYXRoJyxcbiAgICB7XG4gICAgICBkOiAnTTE3IDIxYTEgMSAwIDAgMCAxLTF2LTUuMzVjMC0uNDU3LjMxNi0uODQ0LjcyNy0xLjA0MWE0IDQgMCAwIDAtMi4xMzQtNy41ODkgNSA1IDAgMCAwLTkuMTg2IDAgNCA0IDAgMCAwLTIuMTM0IDcuNTg4Yy40MTEuMTk4LjcyNy41ODUuNzI3IDEuMDQxVjIwYTEgMSAwIDAgMCAxIDFaJyxcbiAgICAgIGtleTogJzFxdnJlcicsXG4gICAgfSxcbiAgXSxcbiAgWydwYXRoJywgeyBkOiAnTTYgMTdoMTInLCBrZXk6ICcxandpZ3onIH1dLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIENoZWZIYXRcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1UY2dNakZoTVNBeElEQWdNQ0F3SURFdE1YWXROUzR6TldNd0xTNDBOVGN1TXpFMkxTNDRORFF1TnpJM0xURXVNRFF4WVRRZ05DQXdJREFnTUMweUxqRXpOQzAzTGpVNE9TQTFJRFVnTUNBd0lEQXRPUzR4T0RZZ01DQTBJRFFnTUNBd0lEQXRNaTR4TXpRZ055NDFPRGhqTGpReE1TNHhPVGd1TnpJM0xqVTROUzQzTWpjZ01TNHdOREZXTWpCaE1TQXhJREFnTUNBd0lERWdNVm9pSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVFlnTVRkb01USWlJQzgrQ2p3dmMzWm5QZ289KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9jaGVmLWhhdFxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IENoZWZIYXQgPSBjcmVhdGVMdWNpZGVJY29uKCdjaGVmLWhhdCcsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBDaGVmSGF0O1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdNMiAxN2E1IDUgMCAwIDAgMTAgMGMwLTIuNzYtMi41LTUtNS0zLTIuNS0yLTUgLjI0LTUgM1onLCBrZXk6ICdjdnhxbGMnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTIgMTdhNSA1IDAgMCAwIDEwIDBjMC0yLjc2LTIuNS01LTUtMy0yLjUtMi01IC4yNC01IDNaJywga2V5OiAnMW9zdHJjJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTcgMTRjMy4yMi0yLjkxIDQuMjktOC43NSA1LTEyIDEuNjYgMi4zOCA0Ljk0IDkgNSAxMicsIGtleTogJ2hxeDU4aCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00yMiA5Yy00LjI5IDAtNy4xNC0yLjMzLTEwLTcgNS43MSAwIDEwIDQuNjcgMTAgN1onLCBrZXk6ICdleWtwMW8nIH1dLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIENoZXJyeVxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTWlBeE4yRTFJRFVnTUNBd0lEQWdNVEFnTUdNd0xUSXVOell0TWk0MUxUVXROUzB6TFRJdU5TMHlMVFVnTGpJMExUVWdNMW9pSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVEV5SURFM1lUVWdOU0F3SURBZ01DQXhNQ0F3WXpBdE1pNDNOaTB5TGpVdE5TMDFMVE10TWk0MUxUSXROU0F1TWpRdE5TQXpXaUlnTHo0S0lDQThjR0YwYUNCa1BTSk5OeUF4TkdNekxqSXlMVEl1T1RFZ05DNHlPUzA0TGpjMUlEVXRNVElnTVM0Mk5pQXlMak00SURRdU9UUWdPU0ExSURFeUlpQXZQZ29nSUR4d1lYUm9JR1E5SWsweU1pQTVZeTAwTGpJNUlEQXROeTR4TkMweUxqTXpMVEV3TFRjZ05TNDNNU0F3SURFd0lEUXVOamNnTVRBZ04xb2lJQzgrQ2p3dmMzWm5QZ289KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9jaGVycnlcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBDaGVycnkgPSBjcmVhdGVMdWNpZGVJY29uKCdjaGVycnknLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgQ2hlcnJ5O1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1sncGF0aCcsIHsgZDogJ202IDkgNiA2IDYtNicsIGtleTogJ3FydW5zbCcgfV1dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgQ2hldnJvbkRvd25cbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKdE5pQTVJRFlnTmlBMkxUWWlJQzgrQ2p3dmMzWm5QZ289KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9jaGV2cm9uLWRvd25cbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBDaGV2cm9uRG93biA9IGNyZWF0ZUx1Y2lkZUljb24oJ2NoZXZyb24tZG93bicsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBDaGV2cm9uRG93bjtcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnbTE3IDE4LTYtNiA2LTYnLCBrZXk6ICcxeWVyeDInIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNNyA2djEyJywga2V5OiAnMXA1M3I2JyB9XSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBDaGV2cm9uRmlyc3RcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKdE1UY2dNVGd0TmkwMklEWXROaUlnTHo0S0lDQThjR0YwYUNCa1BTSk5OeUEyZGpFeUlpQXZQZ284TDNOMlp6NEspIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2NoZXZyb24tZmlyc3RcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBDaGV2cm9uRmlyc3QgPSBjcmVhdGVMdWNpZGVJY29uKCdjaGV2cm9uLWZpcnN0JywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IENoZXZyb25GaXJzdDtcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnbTcgMTggNi02LTYtNicsIGtleTogJ2x3bXpkdycgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xNyA2djEyJywga2V5OiAnMW8wYWlvJyB9XSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBDaGV2cm9uTGFzdFxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0p0TnlBeE9DQTJMVFl0TmkwMklpQXZQZ29nSUR4d1lYUm9JR1E5SWsweE55QTJkakV5SWlBdlBnbzhMM04yWno0SykgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvY2hldnJvbi1sYXN0XG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgQ2hldnJvbkxhc3QgPSBjcmVhdGVMdWNpZGVJY29uKCdjaGV2cm9uLWxhc3QnLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgQ2hldnJvbkxhc3Q7XG4iLCJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbWydwYXRoJywgeyBkOiAnbTE1IDE4LTYtNiA2LTYnLCBrZXk6ICcxd25mZzMnIH1dXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIENoZXZyb25MZWZ0XG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSnRNVFVnTVRndE5pMDJJRFl0TmlJZ0x6NEtQQzl6ZG1jK0NnPT0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2NoZXZyb24tbGVmdFxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IENoZXZyb25MZWZ0ID0gY3JlYXRlTHVjaWRlSWNvbignY2hldnJvbi1sZWZ0JywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IENoZXZyb25MZWZ0O1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1sncGF0aCcsIHsgZDogJ205IDE4IDYtNi02LTYnLCBrZXk6ICdtdGhod3EnIH1dXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIENoZXZyb25SaWdodFxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0p0T1NBeE9DQTJMVFl0TmkwMklpQXZQZ284TDNOMlp6NEspIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2NoZXZyb24tcmlnaHRcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBDaGV2cm9uUmlnaHQgPSBjcmVhdGVMdWNpZGVJY29uKCdjaGV2cm9uLXJpZ2h0JywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IENoZXZyb25SaWdodDtcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtbJ3BhdGgnLCB7IGQ6ICdtMTggMTUtNi02LTYgNicsIGtleTogJzE1M3VkeicgfV1dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgQ2hldnJvblVwXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSnRNVGdnTVRVdE5pMDJMVFlnTmlJZ0x6NEtQQzl6ZG1jK0NnPT0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2NoZXZyb24tdXBcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBDaGV2cm9uVXAgPSBjcmVhdGVMdWNpZGVJY29uKCdjaGV2cm9uLXVwJywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IENoZXZyb25VcDtcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnbTcgMjAgNS01IDUgNScsIGtleTogJzEzYTBndycgfV0sXG4gIFsncGF0aCcsIHsgZDogJ203IDQgNSA1IDUtNScsIGtleTogJzFrd2NvZicgfV0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgQ2hldnJvbnNEb3duVXBcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKdE55QXlNQ0ExTFRVZ05TQTFJaUF2UGdvZ0lEeHdZWFJvSUdROUltMDNJRFFnTlNBMUlEVXROU0lnTHo0S1BDOXpkbWMrQ2c9PSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvY2hldnJvbnMtZG93bi11cFxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IENoZXZyb25zRG93blVwID0gY3JlYXRlTHVjaWRlSWNvbignY2hldnJvbnMtZG93bi11cCcsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBDaGV2cm9uc0Rvd25VcDtcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnbTcgNiA1IDUgNS01Jywga2V5OiAnMWxjMDdwJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnbTcgMTMgNSA1IDUtNScsIGtleTogJzFkNDhycycgfV0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgQ2hldnJvbnNEb3duXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSnROeUEySURVZ05TQTFMVFVpSUM4K0NpQWdQSEJoZEdnZ1pEMGliVGNnTVRNZ05TQTFJRFV0TlNJZ0x6NEtQQzl6ZG1jK0NnPT0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2NoZXZyb25zLWRvd25cbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBDaGV2cm9uc0Rvd24gPSBjcmVhdGVMdWNpZGVJY29uKCdjaGV2cm9ucy1kb3duJywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IENoZXZyb25zRG93bjtcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTEyIDEyaC4wMScsIGtleTogJzFtcDNqYycgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xNiAxMmguMDEnLCBrZXk6ICcxbDZ4b3onIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdtMTcgNyA1IDUtNSA1Jywga2V5OiAnMXhseG4wJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnbTcgNy01IDUgNSA1Jywga2V5OiAnMTluamJhJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTggMTJoLjAxJywga2V5OiAnY3ptNDdmJyB9XSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBDaGV2cm9uc0xlZnRSaWdodEVsbGlwc2lzXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NVElnTVRKb0xqQXhJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHhOaUF4TW1ndU1ERWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaWJURTNJRGNnTlNBMUxUVWdOU0lnTHo0S0lDQThjR0YwYUNCa1BTSnROeUEzTFRVZ05TQTFJRFVpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVGdnTVRKb0xqQXhJaUF2UGdvOEwzTjJaejRLKSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9jaGV2cm9ucy1sZWZ0LXJpZ2h0LWVsbGlwc2lzXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgQ2hldnJvbnNMZWZ0UmlnaHRFbGxpcHNpcyA9IGNyZWF0ZUx1Y2lkZUljb24oJ2NoZXZyb25zLWxlZnQtcmlnaHQtZWxsaXBzaXMnLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgQ2hldnJvbnNMZWZ0UmlnaHRFbGxpcHNpcztcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnbTkgNy01IDUgNSA1Jywga2V5OiAnajV3NTkwJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnbTE1IDcgNSA1LTUgNScsIGtleTogJzFibDZkYScgfV0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgQ2hldnJvbnNMZWZ0UmlnaHRcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKdE9TQTNMVFVnTlNBMUlEVWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaWJURTFJRGNnTlNBMUxUVWdOU0lnTHo0S1BDOXpkbWMrQ2c9PSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvY2hldnJvbnMtbGVmdC1yaWdodFxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IENoZXZyb25zTGVmdFJpZ2h0ID0gY3JlYXRlTHVjaWRlSWNvbignY2hldnJvbnMtbGVmdC1yaWdodCcsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBDaGV2cm9uc0xlZnRSaWdodDtcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnbTExIDE3LTUtNSA1LTUnLCBrZXk6ICcxM3poYWYnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdtMTggMTctNS01IDUtNScsIGtleTogJ2g4YThldCcgfV0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgQ2hldnJvbnNMZWZ0XG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSnRNVEVnTVRjdE5TMDFJRFV0TlNJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0p0TVRnZ01UY3ROUzAxSURVdE5TSWdMejRLUEM5emRtYytDZz09KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9jaGV2cm9ucy1sZWZ0XG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgQ2hldnJvbnNMZWZ0ID0gY3JlYXRlTHVjaWRlSWNvbignY2hldnJvbnMtbGVmdCcsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBDaGV2cm9uc0xlZnQ7XG4iLCJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ20yMCAxNy01LTUgNS01Jywga2V5OiAnMzB4MG4yJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnbTQgMTcgNS01LTUtNScsIGtleTogJzE2c3BmNCcgfV0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgQ2hldnJvbnNSaWdodExlZnRcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKdE1qQWdNVGN0TlMwMUlEVXROU0lnTHo0S0lDQThjR0YwYUNCa1BTSnROQ0F4TnlBMUxUVXROUzAxSWlBdlBnbzhMM04yWno0SykgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvY2hldnJvbnMtcmlnaHQtbGVmdFxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IENoZXZyb25zUmlnaHRMZWZ0ID0gY3JlYXRlTHVjaWRlSWNvbignY2hldnJvbnMtcmlnaHQtbGVmdCcsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBDaGV2cm9uc1JpZ2h0TGVmdDtcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnbTYgMTcgNS01LTUtNScsIGtleTogJ3huandxJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnbTEzIDE3IDUtNS01LTUnLCBrZXk6ICcxN3htbWYnIH1dLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIENoZXZyb25zUmlnaHRcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKdE5pQXhOeUExTFRVdE5TMDFJaUF2UGdvZ0lEeHdZWFJvSUdROUltMHhNeUF4TnlBMUxUVXROUzAxSWlBdlBnbzhMM04yWno0SykgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvY2hldnJvbnMtcmlnaHRcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBDaGV2cm9uc1JpZ2h0ID0gY3JlYXRlTHVjaWRlSWNvbignY2hldnJvbnMtcmlnaHQnLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgQ2hldnJvbnNSaWdodDtcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnbTcgMTUgNSA1IDUtNScsIGtleTogJzFoZjF0dycgfV0sXG4gIFsncGF0aCcsIHsgZDogJ203IDkgNS01IDUgNScsIGtleTogJ3NndDZ4ZycgfV0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgQ2hldnJvbnNVcERvd25cbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKdE55QXhOU0ExSURVZ05TMDFJaUF2UGdvZ0lEeHdZWFJvSUdROUltMDNJRGtnTlMwMUlEVWdOU0lnTHo0S1BDOXpkbWMrQ2c9PSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvY2hldnJvbnMtdXAtZG93blxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IENoZXZyb25zVXBEb3duID0gY3JlYXRlTHVjaWRlSWNvbignY2hldnJvbnMtdXAtZG93bicsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBDaGV2cm9uc1VwRG93bjtcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnbTE3IDExLTUtNS01IDUnLCBrZXk6ICdlOG5oOTgnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdtMTcgMTgtNS01LTUgNScsIGtleTogJzJhdm4xeCcgfV0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgQ2hldnJvbnNVcFxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0p0TVRjZ01URXROUzAxTFRVZ05TSWdMejRLSUNBOGNHRjBhQ0JrUFNKdE1UY2dNVGd0TlMwMUxUVWdOU0lnTHo0S1BDOXpkbWMrQ2c9PSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvY2hldnJvbnMtdXBcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBDaGV2cm9uc1VwID0gY3JlYXRlTHVjaWRlSWNvbignY2hldnJvbnMtdXAnLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgQ2hldnJvbnNVcDtcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgWydjaXJjbGUnLCB7IGN4OiAnMTInLCBjeTogJzEyJywgcjogJzEwJywga2V5OiAnMW1nbGF5JyB9XSxcbiAgWydjaXJjbGUnLCB7IGN4OiAnMTInLCBjeTogJzEyJywgcjogJzQnLCBrZXk6ICc0ZXhpcDInIH1dLFxuICBbJ2xpbmUnLCB7IHgxOiAnMjEuMTcnLCB4MjogJzEyJywgeTE6ICc4JywgeTI6ICc4Jywga2V5OiAnYTBjdzVmJyB9XSxcbiAgWydsaW5lJywgeyB4MTogJzMuOTUnLCB4MjogJzguNTQnLCB5MTogJzYuMDYnLCB5MjogJzE0Jywga2V5OiAnMWtmdG9mJyB9XSxcbiAgWydsaW5lJywgeyB4MTogJzEwLjg4JywgeDI6ICcxNS40NicsIHkxOiAnMjEuOTQnLCB5MjogJzE0Jywga2V5OiAnMXlteWg4JyB9XSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBDaHJvbWVcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOFkybHlZMnhsSUdONFBTSXhNaUlnWTNrOUlqRXlJaUJ5UFNJeE1DSWdMejRLSUNBOFkybHlZMnhsSUdONFBTSXhNaUlnWTNrOUlqRXlJaUJ5UFNJMElpQXZQZ29nSUR4c2FXNWxJSGd4UFNJeU1TNHhOeUlnZURJOUlqRXlJaUI1TVQwaU9DSWdlVEk5SWpnaUlDOCtDaUFnUEd4cGJtVWdlREU5SWpNdU9UVWlJSGd5UFNJNExqVTBJaUI1TVQwaU5pNHdOaUlnZVRJOUlqRTBJaUF2UGdvZ0lEeHNhVzVsSUhneFBTSXhNQzQ0T0NJZ2VESTlJakUxTGpRMklpQjVNVDBpTWpFdU9UUWlJSGt5UFNJeE5DSWdMejRLUEM5emRtYytDZz09KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9jaHJvbWVcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKiBAZGVwcmVjYXRlZCBCcmFuZCBpY29ucyBoYXZlIGJlZW4gZGVwcmVjYXRlZCBhbmQgYXJlIGR1ZSB0byBiZSByZW1vdmVkLCBwbGVhc2UgcmVmZXIgdG8gaHR0cHM6Ly9naXRodWIuY29tL2x1Y2lkZS1pY29ucy9sdWNpZGUvaXNzdWVzLzY3MC4gV2UgcmVjb21tZW5kIHVzaW5nIGh0dHBzOi8vc2ltcGxlaWNvbnMub3JnLz9xPWNocm9tZSBpbnN0ZWFkLiBUaGlzIGljb24gd2lsbCBiZSByZW1vdmVkIGluIHYxLjBcbiAqL1xuY29uc3QgQ2hyb21lID0gY3JlYXRlTHVjaWRlSWNvbignY2hyb21lJywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IENocm9tZTtcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTEyIDEySDNhMSAxIDAgMCAwLTEgMXYyYTEgMSAwIDAgMCAxIDFoMTMnLCBrZXk6ICcxZ2RpeWcnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTggOGMwLTIuNS0yLTIuNS0yLTUnLCBrZXk6ICcxaWw2MDcnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdtMiAyIDIwIDIwJywga2V5OiAnMW9vZXd5JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTIxIDEyYTEgMSAwIDAgMSAxIDF2MmExIDEgMCAwIDEtLjUuODY2Jywga2V5OiAnMTY2empqJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTIyIDhjMC0yLjUtMi0yLjUtMi01Jywga2V5OiAnMWdhaDQ0JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTcgMTJ2NCcsIGtleTogJ2pxd3c2OScgfV0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgQ2lnYXJldHRlT2ZmXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NVElnTVRKSU0yRXhJREVnTUNBd0lEQXRNU0F4ZGpKaE1TQXhJREFnTUNBd0lERWdNV2d4TXlJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTVRnZ09HTXdMVEl1TlMweUxUSXVOUzB5TFRVaUlDOCtDaUFnUEhCaGRHZ2daRDBpYlRJZ01pQXlNQ0F5TUNJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTWpFZ01USmhNU0F4SURBZ01DQXhJREVnTVhZeVlURWdNU0F3SURBZ01TMHVOUzQ0TmpZaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRJeUlEaGpNQzB5TGpVdE1pMHlMalV0TWkwMUlpQXZQZ29nSUR4d1lYUm9JR1E5SWswM0lERXlkalFpSUM4K0Nqd3ZjM1puUGdvPSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvY2lnYXJldHRlLW9mZlxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IENpZ2FyZXR0ZU9mZiA9IGNyZWF0ZUx1Y2lkZUljb24oJ2NpZ2FyZXR0ZS1vZmYnLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgQ2lnYXJldHRlT2ZmO1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdNMTAgOWg0Jywga2V5OiAndTRrMDV2JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTEyIDd2NScsIGtleTogJ21hNmJrJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTE0IDIydi00YTIgMiAwIDAgMC00IDB2NCcsIGtleTogJzFwZGh1aicgfV0sXG4gIFtcbiAgICAncGF0aCcsXG4gICAge1xuICAgICAgZDogJ00xOCAyMlY1LjYxOGExIDEgMCAwIDAtLjU1My0uODk0bC00LjU1My0yLjI3N2EyIDIgMCAwIDAtMS43ODggMEw2LjU1MyA0LjcyNEExIDEgMCAwIDAgNiA1LjYxOFYyMicsXG4gICAgICBrZXk6ICcxcmtva3InLFxuICAgIH0sXG4gIF0sXG4gIFtcbiAgICAncGF0aCcsXG4gICAge1xuICAgICAgZDogJ20xOCA3IDMuNDQ3IDEuNzI0YTEgMSAwIDAgMSAuNTUzLjg5NFYyMGEyIDIgMCAwIDEtMiAySDRhMiAyIDAgMCAxLTItMlY5LjYxOGExIDEgMCAwIDEgLjU1My0uODk0TDYgNycsXG4gICAgICBrZXk6ICcxdzZlc3cnLFxuICAgIH0sXG4gIF0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgQ2h1cmNoXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NVEFnT1dnMElpQXZQZ29nSUR4d1lYUm9JR1E5SWsweE1pQTNkalVpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVEUwSURJeWRpMDBZVElnTWlBd0lEQWdNQzAwSURCMk5DSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk1UZ2dNakpXTlM0Mk1UaGhNU0F4SURBZ01DQXdMUzQxTlRNdExqZzVOR3d0TkM0MU5UTXRNaTR5TnpkaE1pQXlJREFnTUNBd0xURXVOemc0SURCTU5pNDFOVE1nTkM0M01qUkJNU0F4SURBZ01DQXdJRFlnTlM0Mk1UaFdNaklpSUM4K0NpQWdQSEJoZEdnZ1pEMGliVEU0SURjZ015NDBORGNnTVM0M01qUmhNU0F4SURBZ01DQXhJQzQxTlRNdU9EazBWakl3WVRJZ01pQXdJREFnTVMweUlESklOR0V5SURJZ01DQXdJREV0TWkweVZqa3VOakU0WVRFZ01TQXdJREFnTVNBdU5UVXpMUzQ0T1RSTU5pQTNJaUF2UGdvOEwzTjJaejRLKSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9jaHVyY2hcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBDaHVyY2ggPSBjcmVhdGVMdWNpZGVJY29uKCdjaHVyY2gnLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgQ2h1cmNoO1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdNMTcgMTJIM2ExIDEgMCAwIDAtMSAxdjJhMSAxIDAgMCAwIDEgMWgxNCcsIGtleTogJzFtYjVnMScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xOCA4YzAtMi41LTItMi41LTItNScsIGtleTogJzFpbDYwNycgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00yMSAxNmExIDEgMCAwIDAgMS0xdi0yYTEgMSAwIDAgMC0xLTEnLCBrZXk6ICcxeWw1cjcnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMjIgOGMwLTIuNS0yLTIuNS0yLTUnLCBrZXk6ICcxZ2FoNDQnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNNyAxMnY0Jywga2V5OiAnanF3dzY5JyB9XSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBDaWdhcmV0dGVcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1UY2dNVEpJTTJFeElERWdNQ0F3SURBdE1TQXhkakpoTVNBeElEQWdNQ0F3SURFZ01XZ3hOQ0lnTHo0S0lDQThjR0YwYUNCa1BTSk5NVGdnT0dNd0xUSXVOUzB5TFRJdU5TMHlMVFVpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVEl4SURFMllURWdNU0F3SURBZ01DQXhMVEYyTFRKaE1TQXhJREFnTUNBd0xURXRNU0lnTHo0S0lDQThjR0YwYUNCa1BTSk5NaklnT0dNd0xUSXVOUzB5TFRJdU5TMHlMVFVpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVGNnTVRKMk5DSWdMejRLUEM5emRtYytDZz09KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9jaWdhcmV0dGVcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBDaWdhcmV0dGUgPSBjcmVhdGVMdWNpZGVJY29uKCdjaWdhcmV0dGUnLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgQ2lnYXJldHRlO1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbJ2NpcmNsZScsIHsgY3g6ICcxMicsIGN5OiAnMTInLCByOiAnMTAnLCBrZXk6ICcxbWdsYXknIH1dLFxuICBbJ2xpbmUnLCB7IHgxOiAnMTInLCB4MjogJzEyJywgeTE6ICc4JywgeTI6ICcxMicsIGtleTogJzFwa2V1aCcgfV0sXG4gIFsnbGluZScsIHsgeDE6ICcxMicsIHgyOiAnMTIuMDEnLCB5MTogJzE2JywgeTI6ICcxNicsIGtleTogJzRkZnE5MCcgfV0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgQ2lyY2xlQWxlcnRcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOFkybHlZMnhsSUdONFBTSXhNaUlnWTNrOUlqRXlJaUJ5UFNJeE1DSWdMejRLSUNBOGJHbHVaU0I0TVQwaU1USWlJSGd5UFNJeE1pSWdlVEU5SWpnaUlIa3lQU0l4TWlJZ0x6NEtJQ0E4YkdsdVpTQjRNVDBpTVRJaUlIZ3lQU0l4TWk0d01TSWdlVEU5SWpFMklpQjVNajBpTVRZaUlDOCtDand2YzNablBnbz0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2NpcmNsZS1hbGVydFxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IENpcmNsZUFsZXJ0ID0gY3JlYXRlTHVjaWRlSWNvbignY2lyY2xlLWFsZXJ0JywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IENpcmNsZUFsZXJ0O1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbJ2NpcmNsZScsIHsgY3g6ICcxMicsIGN5OiAnMTInLCByOiAnMTAnLCBrZXk6ICcxbWdsYXknIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTIgOHY4Jywga2V5OiAnbmFwa3cyJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnbTggMTIgNCA0IDQtNCcsIGtleTogJ2s5OHNzaCcgfV0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgQ2lyY2xlQXJyb3dEb3duXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThZMmx5WTJ4bElHTjRQU0l4TWlJZ1kzazlJakV5SWlCeVBTSXhNQ0lnTHo0S0lDQThjR0YwYUNCa1BTSk5NVElnT0hZNElpQXZQZ29nSUR4d1lYUm9JR1E5SW0wNElERXlJRFFnTkNBMExUUWlJQzgrQ2p3dmMzWm5QZ289KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9jaXJjbGUtYXJyb3ctZG93blxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IENpcmNsZUFycm93RG93biA9IGNyZWF0ZUx1Y2lkZUljb24oJ2NpcmNsZS1hcnJvdy1kb3duJywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IENpcmNsZUFycm93RG93bjtcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgWydjaXJjbGUnLCB7IGN4OiAnMTInLCBjeTogJzEyJywgcjogJzEwJywga2V5OiAnMW1nbGF5JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnbTEyIDgtNCA0IDQgNCcsIGtleTogJzE1dm01MycgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xNiAxMkg4Jywga2V5OiAnMWZyNWgwJyB9XSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBDaXJjbGVBcnJvd0xlZnRcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOFkybHlZMnhsSUdONFBTSXhNaUlnWTNrOUlqRXlJaUJ5UFNJeE1DSWdMejRLSUNBOGNHRjBhQ0JrUFNKdE1USWdPQzAwSURRZ05DQTBJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHhOaUF4TWtnNElpQXZQZ284TDNOMlp6NEspIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2NpcmNsZS1hcnJvdy1sZWZ0XG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgQ2lyY2xlQXJyb3dMZWZ0ID0gY3JlYXRlTHVjaWRlSWNvbignY2lyY2xlLWFycm93LWxlZnQnLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgQ2lyY2xlQXJyb3dMZWZ0O1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdNMiAxMmExMCAxMCAwIDEgMSAxMCAxMCcsIGtleTogJzF5bjZvdicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ20yIDIyIDEwLTEwJywga2V5OiAnMjhpbHBrJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTggMjJIMnYtNicsIGtleTogJ3N1bHE1NCcgfV0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgQ2lyY2xlQXJyb3dPdXREb3duTGVmdFxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTWlBeE1tRXhNQ0F4TUNBd0lERWdNU0F4TUNBeE1DSWdMejRLSUNBOGNHRjBhQ0JrUFNKdE1pQXlNaUF4TUMweE1DSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk9DQXlNa2d5ZGkwMklpQXZQZ284TDNOMlp6NEspIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2NpcmNsZS1hcnJvdy1vdXQtZG93bi1sZWZ0XG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgQ2lyY2xlQXJyb3dPdXREb3duTGVmdCA9IGNyZWF0ZUx1Y2lkZUljb24oJ2NpcmNsZS1hcnJvdy1vdXQtZG93bi1sZWZ0JywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IENpcmNsZUFycm93T3V0RG93bkxlZnQ7XG4iLCJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ00xMiAyMmExMCAxMCAwIDEgMSAxMC0xMCcsIGtleTogJzEzMGJ2NScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00yMiAyMiAxMiAxMicsIGtleTogJzEzMWF3NycgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00yMiAxNnY2aC02Jywga2V5OiAnMWd2bTcwJyB9XSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBDaXJjbGVBcnJvd091dERvd25SaWdodFxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTVRJZ01qSmhNVEFnTVRBZ01DQXhJREVnTVRBdE1UQWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRUSXlJREl5SURFeUlERXlJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHlNaUF4Tm5ZMmFDMDJJaUF2UGdvOEwzTjJaejRLKSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9jaXJjbGUtYXJyb3ctb3V0LWRvd24tcmlnaHRcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBDaXJjbGVBcnJvd091dERvd25SaWdodCA9IGNyZWF0ZUx1Y2lkZUljb24oJ2NpcmNsZS1hcnJvdy1vdXQtZG93bi1yaWdodCcsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBDaXJjbGVBcnJvd091dERvd25SaWdodDtcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTIgOFYyaDYnLCBrZXk6ICdoaXd0ZHonIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdtMiAyIDEwIDEwJywga2V5OiAnMW9oOHJzJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTEyIDJBMTAgMTAgMCAxIDEgMiAxMicsIGtleTogJ3JyazRmYScgfV0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgQ2lyY2xlQXJyb3dPdXRVcExlZnRcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1pQTRWakpvTmlJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0p0TWlBeUlERXdJREV3SWlBdlBnb2dJRHh3WVhSb0lHUTlJazB4TWlBeVFURXdJREV3SURBZ01TQXhJRElnTVRJaUlDOCtDand2YzNablBnbz0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2NpcmNsZS1hcnJvdy1vdXQtdXAtbGVmdFxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IENpcmNsZUFycm93T3V0VXBMZWZ0ID0gY3JlYXRlTHVjaWRlSWNvbignY2lyY2xlLWFycm93LW91dC11cC1sZWZ0JywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IENpcmNsZUFycm93T3V0VXBMZWZ0O1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdNMjIgMTJBMTAgMTAgMCAxIDEgMTIgMicsIGtleTogJzFmbTU4ZCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00yMiAyIDEyIDEyJywga2V5OiAneWcybXl0JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTE2IDJoNnY2Jywga2V5OiAnemFuNWNzJyB9XSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBDaXJjbGVBcnJvd091dFVwUmlnaHRcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1qSWdNVEpCTVRBZ01UQWdNQ0F4SURFZ01USWdNaUlnTHo0S0lDQThjR0YwYUNCa1BTSk5NaklnTWlBeE1pQXhNaUlnTHo0S0lDQThjR0YwYUNCa1BTSk5NVFlnTW1nMmRqWWlJQzgrQ2p3dmMzWm5QZ289KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9jaXJjbGUtYXJyb3ctb3V0LXVwLXJpZ2h0XG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgQ2lyY2xlQXJyb3dPdXRVcFJpZ2h0ID0gY3JlYXRlTHVjaWRlSWNvbignY2lyY2xlLWFycm93LW91dC11cC1yaWdodCcsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBDaXJjbGVBcnJvd091dFVwUmlnaHQ7XG4iLCJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbXG4gIFsnY2lyY2xlJywgeyBjeDogJzEyJywgY3k6ICcxMicsIHI6ICcxMCcsIGtleTogJzFtZ2xheScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ20xMiAxNiA0LTQtNC00Jywga2V5OiAnMWk5emN2JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTggMTJoOCcsIGtleTogJzF3Y3lldicgfV0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgQ2lyY2xlQXJyb3dSaWdodFxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4WTJseVkyeGxJR040UFNJeE1pSWdZM2s5SWpFeUlpQnlQU0l4TUNJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0p0TVRJZ01UWWdOQzAwTFRRdE5DSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk9DQXhNbWc0SWlBdlBnbzhMM04yWno0SykgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvY2lyY2xlLWFycm93LXJpZ2h0XG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgQ2lyY2xlQXJyb3dSaWdodCA9IGNyZWF0ZUx1Y2lkZUljb24oJ2NpcmNsZS1hcnJvdy1yaWdodCcsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBDaXJjbGVBcnJvd1JpZ2h0O1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbJ2NpcmNsZScsIHsgY3g6ICcxMicsIGN5OiAnMTInLCByOiAnMTAnLCBrZXk6ICcxbWdsYXknIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdtMTYgMTItNC00LTQgNCcsIGtleTogJzE3N2FnbCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xMiAxNlY4Jywga2V5OiAnMXNiajE0JyB9XSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBDaXJjbGVBcnJvd1VwXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThZMmx5WTJ4bElHTjRQU0l4TWlJZ1kzazlJakV5SWlCeVBTSXhNQ0lnTHo0S0lDQThjR0YwYUNCa1BTSnRNVFlnTVRJdE5DMDBMVFFnTkNJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTVRJZ01UWldPQ0lnTHo0S1BDOXpkbWMrQ2c9PSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvY2lyY2xlLWFycm93LXVwXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgQ2lyY2xlQXJyb3dVcCA9IGNyZWF0ZUx1Y2lkZUljb24oJ2NpcmNsZS1hcnJvdy11cCcsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBDaXJjbGVBcnJvd1VwO1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdNMjEuODAxIDEwQTEwIDEwIDAgMSAxIDE3IDMuMzM1Jywga2V5OiAneXBzM2N0JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnbTkgMTEgMyAzTDIyIDQnLCBrZXk6ICcxcGZsemwnIH1dLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIENpcmNsZUNoZWNrQmlnXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NakV1T0RBeElERXdRVEV3SURFd0lEQWdNU0F4SURFM0lETXVNek0xSWlBdlBnb2dJRHh3WVhSb0lHUTlJbTA1SURFeElETWdNMHd5TWlBMElpQXZQZ284TDNOMlp6NEspIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2NpcmNsZS1jaGVjay1iaWdcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBDaXJjbGVDaGVja0JpZyA9IGNyZWF0ZUx1Y2lkZUljb24oJ2NpcmNsZS1jaGVjay1iaWcnLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgQ2lyY2xlQ2hlY2tCaWc7XG4iLCJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbXG4gIFsnY2lyY2xlJywgeyBjeDogJzEyJywgY3k6ICcxMicsIHI6ICcxMCcsIGtleTogJzFtZ2xheScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ205IDEyIDIgMiA0LTQnLCBrZXk6ICdkem1tNzQnIH1dLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIENpcmNsZUNoZWNrXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThZMmx5WTJ4bElHTjRQU0l4TWlJZ1kzazlJakV5SWlCeVBTSXhNQ0lnTHo0S0lDQThjR0YwYUNCa1BTSnRPU0F4TWlBeUlESWdOQzAwSWlBdlBnbzhMM04yWno0SykgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvY2lyY2xlLWNoZWNrXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgQ2lyY2xlQ2hlY2sgPSBjcmVhdGVMdWNpZGVJY29uKCdjaXJjbGUtY2hlY2snLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgQ2lyY2xlQ2hlY2s7XG4iLCJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbXG4gIFsnY2lyY2xlJywgeyBjeDogJzEyJywgY3k6ICcxMicsIHI6ICcxMCcsIGtleTogJzFtZ2xheScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ20xNiAxMC00IDQtNC00Jywga2V5OiAnODk0aG1rJyB9XSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBDaXJjbGVDaGV2cm9uRG93blxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4WTJseVkyeGxJR040UFNJeE1pSWdZM2s5SWpFeUlpQnlQU0l4TUNJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0p0TVRZZ01UQXROQ0EwTFRRdE5DSWdMejRLUEM5emRtYytDZz09KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9jaXJjbGUtY2hldnJvbi1kb3duXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgQ2lyY2xlQ2hldnJvbkRvd24gPSBjcmVhdGVMdWNpZGVJY29uKCdjaXJjbGUtY2hldnJvbi1kb3duJywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IENpcmNsZUNoZXZyb25Eb3duO1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbJ2NpcmNsZScsIHsgY3g6ICcxMicsIGN5OiAnMTInLCByOiAnMTAnLCBrZXk6ICcxbWdsYXknIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdtMTQgMTYtNC00IDQtNCcsIGtleTogJ29qczd3OCcgfV0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgQ2lyY2xlQ2hldnJvbkxlZnRcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOFkybHlZMnhsSUdONFBTSXhNaUlnWTNrOUlqRXlJaUJ5UFNJeE1DSWdMejRLSUNBOGNHRjBhQ0JrUFNKdE1UUWdNVFl0TkMwMElEUXROQ0lnTHo0S1BDOXpkbWMrQ2c9PSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvY2lyY2xlLWNoZXZyb24tbGVmdFxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IENpcmNsZUNoZXZyb25MZWZ0ID0gY3JlYXRlTHVjaWRlSWNvbignY2lyY2xlLWNoZXZyb24tbGVmdCcsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBDaXJjbGVDaGV2cm9uTGVmdDtcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgWydjaXJjbGUnLCB7IGN4OiAnMTInLCBjeTogJzEyJywgcjogJzEwJywga2V5OiAnMW1nbGF5JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnbTEwIDggNCA0LTQgNCcsIGtleTogJzF3eTRyNCcgfV0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgQ2lyY2xlQ2hldnJvblJpZ2h0XG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThZMmx5WTJ4bElHTjRQU0l4TWlJZ1kzazlJakV5SWlCeVBTSXhNQ0lnTHo0S0lDQThjR0YwYUNCa1BTSnRNVEFnT0NBMElEUXROQ0EwSWlBdlBnbzhMM04yWno0SykgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvY2lyY2xlLWNoZXZyb24tcmlnaHRcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBDaXJjbGVDaGV2cm9uUmlnaHQgPSBjcmVhdGVMdWNpZGVJY29uKCdjaXJjbGUtY2hldnJvbi1yaWdodCcsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBDaXJjbGVDaGV2cm9uUmlnaHQ7XG4iLCJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbXG4gIFsnY2lyY2xlJywgeyBjeDogJzEyJywgY3k6ICcxMicsIHI6ICcxMCcsIGtleTogJzFtZ2xheScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ204IDE0IDQtNCA0IDQnLCBrZXk6ICdmeTJwdHonIH1dLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIENpcmNsZUNoZXZyb25VcFxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4WTJseVkyeGxJR040UFNJeE1pSWdZM2s5SWpFeUlpQnlQU0l4TUNJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0p0T0NBeE5DQTBMVFFnTkNBMElpQXZQZ284TDNOMlp6NEspIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2NpcmNsZS1jaGV2cm9uLXVwXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgQ2lyY2xlQ2hldnJvblVwID0gY3JlYXRlTHVjaWRlSWNvbignY2lyY2xlLWNoZXZyb24tdXAnLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgQ2lyY2xlQ2hldnJvblVwO1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdNMTAuMSAyLjE4MmExMCAxMCAwIDAgMSAzLjggMCcsIGtleTogJzVpbHhlMycgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xMy45IDIxLjgxOGExMCAxMCAwIDAgMS0zLjggMCcsIGtleTogJzExenZiOScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xNy42MDkgMy43MjFhMTAgMTAgMCAwIDEgMi42OSAyLjcnLCBrZXk6ICcxaXc1YjInIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMi4xODIgMTMuOWExMCAxMCAwIDAgMSAwLTMuOCcsIGtleTogJ2MwYm12aCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00yMC4yNzkgMTcuNjA5YTEwIDEwIDAgMCAxLTIuNyAyLjY5Jywga2V5OiAnMXJ1eG03JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTIxLjgxOCAxMC4xYTEwIDEwIDAgMCAxIDAgMy44Jywga2V5OiAncWtncXhjJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTMuNzIxIDYuMzkxYTEwIDEwIDAgMCAxIDIuNy0yLjY5Jywga2V5OiAnMW1jaWEyJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTYuMzkxIDIwLjI3OWExMCAxMCAwIDAgMS0yLjY5LTIuNycsIGtleTogJzFmdmxqcycgfV0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgQ2lyY2xlRGFzaGVkXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NVEF1TVNBeUxqRTRNbUV4TUNBeE1DQXdJREFnTVNBekxqZ2dNQ0lnTHo0S0lDQThjR0YwYUNCa1BTSk5NVE11T1NBeU1TNDRNVGhoTVRBZ01UQWdNQ0F3SURFdE15NDRJREFpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVEUzTGpZd09TQXpMamN5TVdFeE1DQXhNQ0F3SURBZ01TQXlMalk1SURJdU55SWdMejRLSUNBOGNHRjBhQ0JrUFNKTk1pNHhPRElnTVRNdU9XRXhNQ0F4TUNBd0lEQWdNU0F3TFRNdU9DSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk1qQXVNamM1SURFM0xqWXdPV0V4TUNBeE1DQXdJREFnTVMweUxqY2dNaTQyT1NJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTWpFdU9ERTRJREV3TGpGaE1UQWdNVEFnTUNBd0lERWdNQ0F6TGpnaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRNdU56SXhJRFl1TXpreFlURXdJREV3SURBZ01DQXhJREl1TnkweUxqWTVJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMDJMak01TVNBeU1DNHlOemxoTVRBZ01UQWdNQ0F3SURFdE1pNDJPUzB5TGpjaUlDOCtDand2YzNablBnbz0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2NpcmNsZS1kYXNoZWRcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBDaXJjbGVEYXNoZWQgPSBjcmVhdGVMdWNpZGVJY29uKCdjaXJjbGUtZGFzaGVkJywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IENpcmNsZURhc2hlZDtcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgWydsaW5lJywgeyB4MTogJzgnLCB4MjogJzE2JywgeTE6ICcxMicsIHkyOiAnMTInLCBrZXk6ICcxam9uY3QnIH1dLFxuICBbJ2xpbmUnLCB7IHgxOiAnMTInLCB4MjogJzEyJywgeTE6ICcxNicsIHkyOiAnMTYnLCBrZXk6ICdhcWM2bG4nIH1dLFxuICBbJ2xpbmUnLCB7IHgxOiAnMTInLCB4MjogJzEyJywgeTE6ICc4JywgeTI6ICc4Jywga2V5OiAnMW1rY25pJyB9XSxcbiAgWydjaXJjbGUnLCB7IGN4OiAnMTInLCBjeTogJzEyJywgcjogJzEwJywga2V5OiAnMW1nbGF5JyB9XSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBDaXJjbGVEaXZpZGVcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGJHbHVaU0I0TVQwaU9DSWdlREk5SWpFMklpQjVNVDBpTVRJaUlIa3lQU0l4TWlJZ0x6NEtJQ0E4YkdsdVpTQjRNVDBpTVRJaUlIZ3lQU0l4TWlJZ2VURTlJakUySWlCNU1qMGlNVFlpSUM4K0NpQWdQR3hwYm1VZ2VERTlJakV5SWlCNE1qMGlNVElpSUhreFBTSTRJaUI1TWowaU9DSWdMejRLSUNBOFkybHlZMnhsSUdONFBTSXhNaUlnWTNrOUlqRXlJaUJ5UFNJeE1DSWdMejRLUEM5emRtYytDZz09KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9jaXJjbGUtZGl2aWRlXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgQ2lyY2xlRGl2aWRlID0gY3JlYXRlTHVjaWRlSWNvbignY2lyY2xlLWRpdmlkZScsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBDaXJjbGVEaXZpZGU7XG4iLCJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbXG4gIFsnY2lyY2xlJywgeyBjeDogJzEyJywgY3k6ICcxMicsIHI6ICcxMCcsIGtleTogJzFtZ2xheScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xNiA4aC02YTIgMiAwIDEgMCAwIDRoNGEyIDIgMCAxIDEgMCA0SDgnLCBrZXk6ICcxaDRwZXQnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTIgMThWNicsIGtleTogJ3pxcHhxNScgfV0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgQ2lyY2xlRG9sbGFyU2lnblxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4WTJseVkyeGxJR040UFNJeE1pSWdZM2s5SWpFeUlpQnlQU0l4TUNJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTVRZZ09HZ3RObUV5SURJZ01DQXhJREFnTUNBMGFEUmhNaUF5SURBZ01TQXhJREFnTkVnNElpQXZQZ29nSUR4d1lYUm9JR1E5SWsweE1pQXhPRlkySWlBdlBnbzhMM04yWno0SykgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvY2lyY2xlLWRvbGxhci1zaWduXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgQ2lyY2xlRG9sbGFyU2lnbiA9IGNyZWF0ZUx1Y2lkZUljb24oJ2NpcmNsZS1kb2xsYXItc2lnbicsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBDaXJjbGVEb2xsYXJTaWduO1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdNMTAuMSAyLjE4YTkuOTMgOS45MyAwIDAgMSAzLjggMCcsIGtleTogJzFxZHFuMCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xNy42IDMuNzFhOS45NSA5Ljk1IDAgMCAxIDIuNjkgMi43Jywga2V5OiAnMWJxN3A2JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTIxLjgyIDEwLjFhOS45MyA5LjkzIDAgMCAxIDAgMy44Jywga2V5OiAnMXJsYXFmJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTIwLjI5IDE3LjZhOS45NSA5Ljk1IDAgMCAxLTIuNyAyLjY5Jywga2V5OiAnMXhrMDN1JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTEzLjkgMjEuODJhOS45NCA5Ljk0IDAgMCAxLTMuOCAwJywga2V5OiAnbDdyZTI1JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTYuNCAyMC4yOWE5Ljk1IDkuOTUgMCAwIDEtMi42OS0yLjcnLCBrZXk6ICcxdjE4cDYnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMi4xOCAxMy45YTkuOTMgOS45MyAwIDAgMSAwLTMuOCcsIGtleTogJ3hkbzZiaicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00zLjcxIDYuNGE5Ljk1IDkuOTUgMCAwIDEgMi43LTIuNjknLCBrZXk6ICcxamptYXonIH1dLFxuICBbJ2NpcmNsZScsIHsgY3g6ICcxMicsIGN5OiAnMTInLCByOiAnMScsIGtleTogJzQxaGlsZicgfV0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgQ2lyY2xlRG90RGFzaGVkXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NVEF1TVNBeUxqRTRZVGt1T1RNZ09TNDVNeUF3SURBZ01TQXpMamdnTUNJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTVRjdU5pQXpMamN4WVRrdU9UVWdPUzQ1TlNBd0lEQWdNU0F5TGpZNUlESXVOeUlnTHo0S0lDQThjR0YwYUNCa1BTSk5NakV1T0RJZ01UQXVNV0U1TGpreklEa3VPVE1nTUNBd0lERWdNQ0F6TGpnaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRJd0xqSTVJREUzTGpaaE9TNDVOU0E1TGprMUlEQWdNQ0F4TFRJdU55QXlMalk1SWlBdlBnb2dJRHh3WVhSb0lHUTlJazB4TXk0NUlESXhMamd5WVRrdU9UUWdPUzQ1TkNBd0lEQWdNUzB6TGpnZ01DSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk5pNDBJREl3TGpJNVlUa3VPVFVnT1M0NU5TQXdJREFnTVMweUxqWTVMVEl1TnlJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTWk0eE9DQXhNeTQ1WVRrdU9UTWdPUzQ1TXlBd0lEQWdNU0F3TFRNdU9DSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk15NDNNU0EyTGpSaE9TNDVOU0E1TGprMUlEQWdNQ0F4SURJdU55MHlMalk1SWlBdlBnb2dJRHhqYVhKamJHVWdZM2c5SWpFeUlpQmplVDBpTVRJaUlISTlJakVpSUM4K0Nqd3ZjM1puUGdvPSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvY2lyY2xlLWRvdC1kYXNoZWRcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBDaXJjbGVEb3REYXNoZWQgPSBjcmVhdGVMdWNpZGVJY29uKCdjaXJjbGUtZG90LWRhc2hlZCcsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBDaXJjbGVEb3REYXNoZWQ7XG4iLCJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbXG4gIFsnY2lyY2xlJywgeyBjeDogJzEyJywgY3k6ICcxMicsIHI6ICcxMCcsIGtleTogJzFtZ2xheScgfV0sXG4gIFsnY2lyY2xlJywgeyBjeDogJzEyJywgY3k6ICcxMicsIHI6ICcxJywga2V5OiAnNDFoaWxmJyB9XSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBDaXJjbGVEb3RcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOFkybHlZMnhsSUdONFBTSXhNaUlnWTNrOUlqRXlJaUJ5UFNJeE1DSWdMejRLSUNBOFkybHlZMnhsSUdONFBTSXhNaUlnWTNrOUlqRXlJaUJ5UFNJeElpQXZQZ284TDNOMlp6NEspIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2NpcmNsZS1kb3RcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBDaXJjbGVEb3QgPSBjcmVhdGVMdWNpZGVJY29uKCdjaXJjbGUtZG90JywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IENpcmNsZURvdDtcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgWydjaXJjbGUnLCB7IGN4OiAnMTInLCBjeTogJzEyJywgcjogJzEwJywga2V5OiAnMW1nbGF5JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTE3IDEyaC4wMScsIGtleTogJzFtMGI2dCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xMiAxMmguMDEnLCBrZXk6ICcxbXAzamMnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNNyAxMmguMDEnLCBrZXk6ICdlcWRkZDAnIH1dLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIENpcmNsZUVsbGlwc2lzXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThZMmx5WTJ4bElHTjRQU0l4TWlJZ1kzazlJakV5SWlCeVBTSXhNQ0lnTHo0S0lDQThjR0YwYUNCa1BTSk5NVGNnTVRKb0xqQXhJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHhNaUF4TW1ndU1ERWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRUY2dNVEpvTGpBeElpQXZQZ284TDNOMlp6NEspIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2NpcmNsZS1lbGxpcHNpc1xuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IENpcmNsZUVsbGlwc2lzID0gY3JlYXRlTHVjaWRlSWNvbignY2lyY2xlLWVsbGlwc2lzJywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IENpcmNsZUVsbGlwc2lzO1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdNNyAxMGgxMCcsIGtleTogJzExMDFqbScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ003IDE0aDEwJywga2V5OiAnMW1oZHczJyB9XSxcbiAgWydjaXJjbGUnLCB7IGN4OiAnMTInLCBjeTogJzEyJywgcjogJzEwJywga2V5OiAnMW1nbGF5JyB9XSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBDaXJjbGVFcXVhbFxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTnlBeE1HZ3hNQ0lnTHo0S0lDQThjR0YwYUNCa1BTSk5OeUF4TkdneE1DSWdMejRLSUNBOFkybHlZMnhsSUdONFBTSXhNaUlnWTNrOUlqRXlJaUJ5UFNJeE1DSWdMejRLUEM5emRtYytDZz09KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9jaXJjbGUtZXF1YWxcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBDaXJjbGVFcXVhbCA9IGNyZWF0ZUx1Y2lkZUljb24oJ2NpcmNsZS1lcXVhbCcsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBDaXJjbGVFcXVhbDtcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTEyIDJhMTAgMTAgMCAwIDEgNy4zOCAxNi43NScsIGtleTogJzE3NXQ5NScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ20xNiAxMi00LTQtNCA0Jywga2V5OiAnMTc3YWdsJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTEyIDE2VjgnLCBrZXk6ICcxc2JqMTQnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMi41IDguODc1YTEwIDEwIDAgMCAwLS41IDMnLCBrZXk6ICcxdmNlMHMnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMi44MyAxNmExMCAxMCAwIDAgMCAyLjQzIDMuNCcsIGtleTogJ28zZmt3NCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ000LjYzNiA1LjIzNWExMCAxMCAwIDAgMSAuODkxLS44NTcnLCBrZXk6ICcxc3pwZmsnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNOC42NDQgMjEuNDJhMTAgMTAgMCAwIDAgNy42MzEtLjM4Jywga2V5OiAnOXlodmQ0JyB9XSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBDaXJjbGVGYWRpbmdBcnJvd1VwXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NVElnTW1FeE1DQXhNQ0F3SURBZ01TQTNMak00SURFMkxqYzFJaUF2UGdvZ0lEeHdZWFJvSUdROUltMHhOaUF4TWkwMExUUXROQ0EwSWlBdlBnb2dJRHh3WVhSb0lHUTlJazB4TWlBeE5sWTRJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHlMalVnT0M0NE56VmhNVEFnTVRBZ01DQXdJREF0TGpVZ015SWdMejRLSUNBOGNHRjBhQ0JrUFNKTk1pNDRNeUF4Tm1FeE1DQXhNQ0F3SURBZ01DQXlMalF6SURNdU5DSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk5DNDJNellnTlM0eU16VmhNVEFnTVRBZ01DQXdJREVnTGpnNU1TMHVPRFUzSWlBdlBnb2dJRHh3WVhSb0lHUTlJazA0TGpZME5DQXlNUzQwTW1FeE1DQXhNQ0F3SURBZ01DQTNMall6TVMwdU16Z2lJQzgrQ2p3dmMzWm5QZ289KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9jaXJjbGUtZmFkaW5nLWFycm93LXVwXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgQ2lyY2xlRmFkaW5nQXJyb3dVcCA9IGNyZWF0ZUx1Y2lkZUljb24oJ2NpcmNsZS1mYWRpbmctYXJyb3ctdXAnLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgQ2lyY2xlRmFkaW5nQXJyb3dVcDtcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTEyIDJhMTAgMTAgMCAwIDEgNy4zOCAxNi43NScsIGtleTogJzE3NXQ5NScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xMiA4djgnLCBrZXk6ICduYXBrdzInIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTYgMTJIOCcsIGtleTogJzFmcjVoMCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00yLjUgOC44NzVhMTAgMTAgMCAwIDAtLjUgMycsIGtleTogJzF2Y2UwcycgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00yLjgzIDE2YTEwIDEwIDAgMCAwIDIuNDMgMy40Jywga2V5OiAnbzNma3c0JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTQuNjM2IDUuMjM1YTEwIDEwIDAgMCAxIC44OTEtLjg1NycsIGtleTogJzFzenBmaycgfV0sXG4gIFsncGF0aCcsIHsgZDogJ004LjY0NCAyMS40MmExMCAxMCAwIDAgMCA3LjYzMS0uMzgnLCBrZXk6ICc5eWh2ZDQnIH1dLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIENpcmNsZUZhZGluZ1BsdXNcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1USWdNbUV4TUNBeE1DQXdJREFnTVNBM0xqTTRJREUyTGpjMUlpQXZQZ29nSUR4d1lYUm9JR1E5SWsweE1pQTRkamdpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVEUySURFeVNEZ2lJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRUSXVOU0E0TGpnM05XRXhNQ0F4TUNBd0lEQWdNQzB1TlNBeklpQXZQZ29nSUR4d1lYUm9JR1E5SWsweUxqZ3pJREUyWVRFd0lERXdJREFnTUNBd0lESXVORE1nTXk0MElpQXZQZ29nSUR4d1lYUm9JR1E5SWswMExqWXpOaUExTGpJek5XRXhNQ0F4TUNBd0lEQWdNU0F1T0RreExTNDROVGNpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVGd1TmpRMElESXhMalF5WVRFd0lERXdJREFnTUNBd0lEY3VOak14TFM0ek9DSWdMejRLUEM5emRtYyspIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2NpcmNsZS1mYWRpbmctcGx1c1xuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IENpcmNsZUZhZGluZ1BsdXMgPSBjcmVhdGVMdWNpZGVJY29uKCdjaXJjbGUtZmFkaW5nLXBsdXMnLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgQ2lyY2xlRmFkaW5nUGx1cztcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTE1LjYgMi43YTEwIDEwIDAgMSAwIDUuNyA1LjcnLCBrZXk6ICcxZTBwNmQnIH1dLFxuICBbJ2NpcmNsZScsIHsgY3g6ICcxMicsIGN5OiAnMTInLCByOiAnMicsIGtleTogJzFjOXA3OCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xMy40IDEwLjYgMTkgNScsIGtleTogJzFrcjd0dycgfV0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgQ2lyY2xlR2F1Z2VcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1UVXVOaUF5TGpkaE1UQWdNVEFnTUNBeElEQWdOUzQzSURVdU55SWdMejRLSUNBOFkybHlZMnhsSUdONFBTSXhNaUlnWTNrOUlqRXlJaUJ5UFNJeUlpQXZQZ29nSUR4d1lYUm9JR1E5SWsweE15NDBJREV3TGpZZ01Ua2dOU0lnTHo0S1BDOXpkbWMrQ2c9PSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvY2lyY2xlLWdhdWdlXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgQ2lyY2xlR2F1Z2UgPSBjcmVhdGVMdWNpZGVJY29uKCdjaXJjbGUtZ2F1Z2UnLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgQ2lyY2xlR2F1Z2U7XG4iLCJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbXG4gIFsnY2lyY2xlJywgeyBjeDogJzEyJywgY3k6ICcxMicsIHI6ICcxMCcsIGtleTogJzFtZ2xheScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ004IDEyaDgnLCBrZXk6ICcxd2N5ZXYnIH1dLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIENpcmNsZU1pbnVzXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThZMmx5WTJ4bElHTjRQU0l4TWlJZ1kzazlJakV5SWlCeVBTSXhNQ0lnTHo0S0lDQThjR0YwYUNCa1BTSk5PQ0F4TW1nNElpQXZQZ284TDNOMlp6NEspIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2NpcmNsZS1taW51c1xuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IENpcmNsZU1pbnVzID0gY3JlYXRlTHVjaWRlSWNvbignY2lyY2xlLW1pbnVzJywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IENpcmNsZU1pbnVzO1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdtMiAyIDIwIDIwJywga2V5OiAnMW9vZXd5JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTguMzUgMi42OUExMCAxMCAwIDAgMSAyMS4zIDE1LjY1Jywga2V5OiAnMXBmc29hJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTE5LjA4IDE5LjA4QTEwIDEwIDAgMSAxIDQuOTIgNC45MicsIGtleTogJzFhYmx5aScgfV0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgQ2lyY2xlT2ZmXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSnRNaUF5SURJd0lESXdJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMDRMak0xSURJdU5qbEJNVEFnTVRBZ01DQXdJREVnTWpFdU15QXhOUzQyTlNJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTVRrdU1EZ2dNVGt1TURoQk1UQWdNVEFnTUNBeElERWdOQzQ1TWlBMExqa3lJaUF2UGdvOEwzTjJaejRLKSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9jaXJjbGUtb2ZmXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgQ2lyY2xlT2ZmID0gY3JlYXRlTHVjaWRlSWNvbignY2lyY2xlLW9mZicsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBDaXJjbGVPZmY7XG4iLCJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbXG4gIFsnY2lyY2xlJywgeyBjeDogJzEyJywgY3k6ICcxMicsIHI6ICcxMCcsIGtleTogJzFtZ2xheScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ201IDUgMTQgMTQnLCBrZXk6ICcxMWFudXAnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTMgMTNhMyAzIDAgMSAwIDAtNkg5djInLCBrZXk6ICd1b2FnYmQnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNOSAxN3YtMi4zNCcsIGtleTogJ2E5cW8wOCcgfV0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgQ2lyY2xlUGFya2luZ09mZlxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4WTJseVkyeGxJR040UFNJeE1pSWdZM2s5SWpFeUlpQnlQU0l4TUNJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0p0TlNBMUlERTBJREUwSWlBdlBnb2dJRHh3WVhSb0lHUTlJazB4TXlBeE0yRXpJRE1nTUNBeElEQWdNQzAyU0RsMk1pSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk9TQXhOM1l0TWk0ek5DSWdMejRLUEM5emRtYytDZz09KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9jaXJjbGUtcGFya2luZy1vZmZcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBDaXJjbGVQYXJraW5nT2ZmID0gY3JlYXRlTHVjaWRlSWNvbignY2lyY2xlLXBhcmtpbmctb2ZmJywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IENpcmNsZVBhcmtpbmdPZmY7XG4iLCJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbXG4gIFsnY2lyY2xlJywgeyBjeDogJzEyJywgY3k6ICcxMicsIHI6ICcxMCcsIGtleTogJzFtZ2xheScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ005IDE3VjdoNGEzIDMgMCAwIDEgMCA2SDknLCBrZXk6ICcxZGZrMmMnIH1dLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIENpcmNsZVBhcmtpbmdcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOFkybHlZMnhsSUdONFBTSXhNaUlnWTNrOUlqRXlJaUJ5UFNJeE1DSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk9TQXhOMVkzYURSaE15QXpJREFnTUNBeElEQWdOa2c1SWlBdlBnbzhMM04yWno0SykgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvY2lyY2xlLXBhcmtpbmdcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBDaXJjbGVQYXJraW5nID0gY3JlYXRlTHVjaWRlSWNvbignY2lyY2xlLXBhcmtpbmcnLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgQ2lyY2xlUGFya2luZztcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgWydjaXJjbGUnLCB7IGN4OiAnMTInLCBjeTogJzEyJywgcjogJzEwJywga2V5OiAnMW1nbGF5JyB9XSxcbiAgWydsaW5lJywgeyB4MTogJzEwJywgeDI6ICcxMCcsIHkxOiAnMTUnLCB5MjogJzknLCBrZXk6ICdjMW5raGknIH1dLFxuICBbJ2xpbmUnLCB7IHgxOiAnMTQnLCB4MjogJzE0JywgeTE6ICcxNScsIHkyOiAnOScsIGtleTogJ2g2NXN2cScgfV0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgQ2lyY2xlUGF1c2VcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOFkybHlZMnhsSUdONFBTSXhNaUlnWTNrOUlqRXlJaUJ5UFNJeE1DSWdMejRLSUNBOGJHbHVaU0I0TVQwaU1UQWlJSGd5UFNJeE1DSWdlVEU5SWpFMUlpQjVNajBpT1NJZ0x6NEtJQ0E4YkdsdVpTQjRNVDBpTVRRaUlIZ3lQU0l4TkNJZ2VURTlJakUxSWlCNU1qMGlPU0lnTHo0S1BDOXpkbWMrQ2c9PSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvY2lyY2xlLXBhdXNlXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgQ2lyY2xlUGF1c2UgPSBjcmVhdGVMdWNpZGVJY29uKCdjaXJjbGUtcGF1c2UnLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgQ2lyY2xlUGF1c2U7XG4iLCJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbXG4gIFsnY2lyY2xlJywgeyBjeDogJzEyJywgY3k6ICcxMicsIHI6ICcxMCcsIGtleTogJzFtZ2xheScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ20xNSA5LTYgNicsIGtleTogJzF1emh2cicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ005IDloLjAxJywga2V5OiAnMXE1bWU2JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTE1IDE1aC4wMScsIGtleTogJ2xxYnAzaycgfV0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgQ2lyY2xlUGVyY2VudFxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4WTJseVkyeGxJR040UFNJeE1pSWdZM2s5SWpFeUlpQnlQU0l4TUNJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0p0TVRVZ09TMDJJRFlpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVGtnT1dndU1ERWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRURTFJREUxYUM0d01TSWdMejRLUEM5emRtYytDZz09KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9jaXJjbGUtcGVyY2VudFxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IENpcmNsZVBlcmNlbnQgPSBjcmVhdGVMdWNpZGVJY29uKCdjaXJjbGUtcGVyY2VudCcsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBDaXJjbGVQZXJjZW50O1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbJ2NpcmNsZScsIHsgY3g6ICcxMicsIGN5OiAnMTInLCByOiAnMTAnLCBrZXk6ICcxbWdsYXknIH1dLFxuICBbJ3BvbHlnb24nLCB7IHBvaW50czogJzEwIDggMTYgMTIgMTAgMTYgMTAgOCcsIGtleTogJzFjaW1zeScgfV0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgQ2lyY2xlUGxheVxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4WTJseVkyeGxJR040UFNJeE1pSWdZM2s5SWpFeUlpQnlQU0l4TUNJZ0x6NEtJQ0E4Y0c5c2VXZHZiaUJ3YjJsdWRITTlJakV3SURnZ01UWWdNVElnTVRBZ01UWWdNVEFnT0NJZ0x6NEtQQzl6ZG1jK0NnPT0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2NpcmNsZS1wbGF5XG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgQ2lyY2xlUGxheSA9IGNyZWF0ZUx1Y2lkZUljb24oJ2NpcmNsZS1wbGF5JywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IENpcmNsZVBsYXk7XG4iLCJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbXG4gIFsnY2lyY2xlJywgeyBjeDogJzEyJywgY3k6ICcxMicsIHI6ICcxMCcsIGtleTogJzFtZ2xheScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ004IDEyaDgnLCBrZXk6ICcxd2N5ZXYnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTIgOHY4Jywga2V5OiAnbmFwa3cyJyB9XSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBDaXJjbGVQbHVzXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThZMmx5WTJ4bElHTjRQU0l4TWlJZ1kzazlJakV5SWlCeVBTSXhNQ0lnTHo0S0lDQThjR0YwYUNCa1BTSk5PQ0F4TW1nNElpQXZQZ29nSUR4d1lYUm9JR1E5SWsweE1pQTRkamdpSUM4K0Nqd3ZjM1puUGdvPSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvY2lyY2xlLXBsdXNcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBDaXJjbGVQbHVzID0gY3JlYXRlTHVjaWRlSWNvbignY2lyY2xlLXBsdXMnLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgQ2lyY2xlUGx1cztcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTEwIDE2VjkuNWExIDEgMCAwIDEgNSAwJywga2V5OiAnMWkxYXJlJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTggMTJoNCcsIGtleTogJ3F6NnkxYycgfV0sXG4gIFsncGF0aCcsIHsgZDogJ004IDE2aDcnLCBrZXk6ICdzYmVkc24nIH1dLFxuICBbJ2NpcmNsZScsIHsgY3g6ICcxMicsIGN5OiAnMTInLCByOiAnMTAnLCBrZXk6ICcxbWdsYXknIH1dLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIENpcmNsZVBvdW5kU3RlcmxpbmdcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1UQWdNVFpXT1M0MVlURWdNU0F3SURBZ01TQTFJREFpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVGdnTVRKb05DSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk9DQXhObWczSWlBdlBnb2dJRHhqYVhKamJHVWdZM2c5SWpFeUlpQmplVDBpTVRJaUlISTlJakV3SWlBdlBnbzhMM04yWno0SykgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvY2lyY2xlLXBvdW5kLXN0ZXJsaW5nXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgQ2lyY2xlUG91bmRTdGVybGluZyA9IGNyZWF0ZUx1Y2lkZUljb24oJ2NpcmNsZS1wb3VuZC1zdGVybGluZycsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBDaXJjbGVQb3VuZFN0ZXJsaW5nO1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdNMTIgN3Y0Jywga2V5OiAneGF3YW8xJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTcuOTk4IDkuMDAzYTUgNSAwIDEgMCA4LS4wMDUnLCBrZXk6ICcxcGVrNDUnIH1dLFxuICBbJ2NpcmNsZScsIHsgY3g6ICcxMicsIGN5OiAnMTInLCByOiAnMTAnLCBrZXk6ICcxbWdsYXknIH1dLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIENpcmNsZVBvd2VyXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NVElnTjNZMElpQXZQZ29nSUR4d1lYUm9JR1E5SWswM0xqazVPQ0E1TGpBd00yRTFJRFVnTUNBeElEQWdPQzB1TURBMUlpQXZQZ29nSUR4amFYSmpiR1VnWTNnOUlqRXlJaUJqZVQwaU1USWlJSEk5SWpFd0lpQXZQZ284TDNOMlp6NEspIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2NpcmNsZS1wb3dlclxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IENpcmNsZVBvd2VyID0gY3JlYXRlTHVjaWRlSWNvbignY2lyY2xlLXBvd2VyJywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IENpcmNsZVBvd2VyO1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbJ2NpcmNsZScsIHsgY3g6ICcxMicsIGN5OiAnMTInLCByOiAnMTAnLCBrZXk6ICcxbWdsYXknIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNOS4wOSA5YTMgMyAwIDAgMSA1LjgzIDFjMCAyLTMgMy0zIDMnLCBrZXk6ICcxdTc3M3MnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTIgMTdoLjAxJywga2V5OiAncDMycDA1JyB9XSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBDaXJjbGVRdWVzdGlvbk1hcmtcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOFkybHlZMnhsSUdONFBTSXhNaUlnWTNrOUlqRXlJaUJ5UFNJeE1DSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk9TNHdPU0E1WVRNZ015QXdJREFnTVNBMUxqZ3pJREZqTUNBeUxUTWdNeTB6SURNaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRFeUlERTNhQzR3TVNJZ0x6NEtQQzl6ZG1jK0NnPT0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2NpcmNsZS1xdWVzdGlvbi1tYXJrXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgQ2lyY2xlUXVlc3Rpb25NYXJrID0gY3JlYXRlTHVjaWRlSWNvbignY2lyY2xlLXF1ZXN0aW9uLW1hcmsnLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgQ2lyY2xlUXVlc3Rpb25NYXJrO1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdNMjIgMiAyIDIyJywga2V5OiAneTRrcWduJyB9XSxcbiAgWydjaXJjbGUnLCB7IGN4OiAnMTInLCBjeTogJzEyJywgcjogJzEwJywga2V5OiAnMW1nbGF5JyB9XSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBDaXJjbGVTbGFzaDJcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1qSWdNaUF5SURJeUlpQXZQZ29nSUR4amFYSmpiR1VnWTNnOUlqRXlJaUJqZVQwaU1USWlJSEk5SWpFd0lpQXZQZ284TDNOMlp6NEspIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2NpcmNsZS1zbGFzaC0yXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgQ2lyY2xlU2xhc2gyID0gY3JlYXRlTHVjaWRlSWNvbignY2lyY2xlLXNsYXNoLTInLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgQ2lyY2xlU2xhc2gyO1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbJ2NpcmNsZScsIHsgY3g6ICcxMicsIGN5OiAnMTInLCByOiAnMTAnLCBrZXk6ICcxbWdsYXknIH1dLFxuICBbJ2xpbmUnLCB7IHgxOiAnOScsIHgyOiAnMTUnLCB5MTogJzE1JywgeTI6ICc5Jywga2V5OiAnMWRmdWZqJyB9XSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBDaXJjbGVTbGFzaFxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4WTJseVkyeGxJR040UFNJeE1pSWdZM2s5SWpFeUlpQnlQU0l4TUNJZ0x6NEtJQ0E4YkdsdVpTQjRNVDBpT1NJZ2VESTlJakUxSWlCNU1UMGlNVFVpSUhreVBTSTVJaUF2UGdvOEwzTjJaejRLKSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9jaXJjbGUtc2xhc2hcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBDaXJjbGVTbGFzaCA9IGNyZWF0ZUx1Y2lkZUljb24oJ2NpcmNsZS1zbGFzaCcsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBDaXJjbGVTbGFzaDtcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtbJ2NpcmNsZScsIHsgY3g6ICcxMicsIGN5OiAnMTInLCByOiAnNicsIGtleTogJzF2bGZyaCcgfV1dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgQ2lyY2xlU21hbGxcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOFkybHlZMnhsSUdONFBTSXhNaUlnWTNrOUlqRXlJaUJ5UFNJMklpQXZQZ284TDNOMlp6NEspIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2NpcmNsZS1zbWFsbFxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IENpcmNsZVNtYWxsID0gY3JlYXRlTHVjaWRlSWNvbignY2lyY2xlLXNtYWxsJywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IENpcmNsZVNtYWxsO1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbJ2NpcmNsZScsIHsgY3g6ICcxMicsIGN5OiAnMTInLCByOiAnMTAnLCBrZXk6ICcxbWdsYXknIH1dLFxuICBbJ3JlY3QnLCB7IHg6ICc5JywgeTogJzknLCB3aWR0aDogJzYnLCBoZWlnaHQ6ICc2Jywgcng6ICcxJywga2V5OiAnMXNzZDRvJyB9XSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBDaXJjbGVTdG9wXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThZMmx5WTJ4bElHTjRQU0l4TWlJZ1kzazlJakV5SWlCeVBTSXhNQ0lnTHo0S0lDQThjbVZqZENCNFBTSTVJaUI1UFNJNUlpQjNhV1IwYUQwaU5pSWdhR1ZwWjJoMFBTSTJJaUJ5ZUQwaU1TSWdMejRLUEM5emRtYytDZz09KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9jaXJjbGUtc3RvcFxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IENpcmNsZVN0b3AgPSBjcmVhdGVMdWNpZGVJY29uKCdjaXJjbGUtc3RvcCcsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBDaXJjbGVTdG9wO1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdNMTggMjBhNiA2IDAgMCAwLTEyIDAnLCBrZXk6ICcxcWVoY2EnIH1dLFxuICBbJ2NpcmNsZScsIHsgY3g6ICcxMicsIGN5OiAnMTAnLCByOiAnNCcsIGtleTogJzFoMTZzYicgfV0sXG4gIFsnY2lyY2xlJywgeyBjeDogJzEyJywgY3k6ICcxMicsIHI6ICcxMCcsIGtleTogJzFtZ2xheScgfV0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgQ2lyY2xlVXNlclJvdW5kXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NVGdnTWpCaE5pQTJJREFnTUNBd0xURXlJREFpSUM4K0NpQWdQR05wY21Oc1pTQmplRDBpTVRJaUlHTjVQU0l4TUNJZ2NqMGlOQ0lnTHo0S0lDQThZMmx5WTJ4bElHTjRQU0l4TWlJZ1kzazlJakV5SWlCeVBTSXhNQ0lnTHo0S1BDOXpkbWMrQ2c9PSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvY2lyY2xlLXVzZXItcm91bmRcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBDaXJjbGVVc2VyUm91bmQgPSBjcmVhdGVMdWNpZGVJY29uKCdjaXJjbGUtdXNlci1yb3VuZCcsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBDaXJjbGVVc2VyUm91bmQ7XG4iLCJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbXG4gIFsnY2lyY2xlJywgeyBjeDogJzEyJywgY3k6ICcxMicsIHI6ICcxMCcsIGtleTogJzFtZ2xheScgfV0sXG4gIFsnY2lyY2xlJywgeyBjeDogJzEyJywgY3k6ICcxMCcsIHI6ICczJywga2V5OiAnaWxxaHI3JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTcgMjAuNjYyVjE5YTIgMiAwIDAgMSAyLTJoNmEyIDIgMCAwIDEgMiAydjEuNjYyJywga2V5OiAnMTU0ZWdmJyB9XSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBDaXJjbGVVc2VyXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThZMmx5WTJ4bElHTjRQU0l4TWlJZ1kzazlJakV5SWlCeVBTSXhNQ0lnTHo0S0lDQThZMmx5WTJ4bElHTjRQU0l4TWlJZ1kzazlJakV3SWlCeVBTSXpJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMDNJREl3TGpZMk1sWXhPV0V5SURJZ01DQXdJREVnTWkweWFEWmhNaUF5SURBZ01DQXhJRElnTW5ZeExqWTJNaUlnTHo0S1BDOXpkbWMrQ2c9PSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvY2lyY2xlLXVzZXJcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBDaXJjbGVVc2VyID0gY3JlYXRlTHVjaWRlSWNvbignY2lyY2xlLXVzZXInLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgQ2lyY2xlVXNlcjtcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgWydjaXJjbGUnLCB7IGN4OiAnMTInLCBjeTogJzEyJywgcjogJzEwJywga2V5OiAnMW1nbGF5JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnbTE1IDktNiA2Jywga2V5OiAnMXV6aHZyJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnbTkgOSA2IDYnLCBrZXk6ICd6MGJpcWYnIH1dLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIENpcmNsZVhcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOFkybHlZMnhsSUdONFBTSXhNaUlnWTNrOUlqRXlJaUJ5UFNJeE1DSWdMejRLSUNBOGNHRjBhQ0JrUFNKdE1UVWdPUzAySURZaUlDOCtDaUFnUEhCaGRHZ2daRDBpYlRrZ09TQTJJRFlpSUM4K0Nqd3ZjM1puUGdvPSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvY2lyY2xlLXhcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBDaXJjbGVYID0gY3JlYXRlTHVjaWRlSWNvbignY2lyY2xlLXgnLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgQ2lyY2xlWDtcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtbJ2NpcmNsZScsIHsgY3g6ICcxMicsIGN5OiAnMTInLCByOiAnMTAnLCBrZXk6ICcxbWdsYXknIH1dXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIENpcmNsZVxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4WTJseVkyeGxJR040UFNJeE1pSWdZM2s5SWpFeUlpQnlQU0l4TUNJZ0x6NEtQQzl6ZG1jK0NnPT0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2NpcmNsZVxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IENpcmNsZSA9IGNyZWF0ZUx1Y2lkZUljb24oJ2NpcmNsZScsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBDaXJjbGU7XG4iLCJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbXG4gIFsncmVjdCcsIHsgd2lkdGg6ICcxOCcsIGhlaWdodDogJzE4JywgeDogJzMnLCB5OiAnMycsIHJ4OiAnMicsIGtleTogJ2FmaXR2NycgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xMSA5aDRhMiAyIDAgMCAwIDItMlYzJywga2V5OiAnMXZlMnJ2JyB9XSxcbiAgWydjaXJjbGUnLCB7IGN4OiAnOScsIGN5OiAnOScsIHI6ICcyJywga2V5OiAnYWYxZjBnJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTcgMjF2LTRhMiAyIDAgMCAxIDItMmg0Jywga2V5OiAnMWZ3a3JvJyB9XSxcbiAgWydjaXJjbGUnLCB7IGN4OiAnMTUnLCBjeTogJzE1JywgcjogJzInLCBrZXk6ICczaTQwbzAnIH1dLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIENpcmN1aXRCb2FyZFxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y21WamRDQjNhV1IwYUQwaU1UZ2lJR2hsYVdkb2REMGlNVGdpSUhnOUlqTWlJSGs5SWpNaUlISjRQU0l5SWlBdlBnb2dJRHh3WVhSb0lHUTlJazB4TVNBNWFEUmhNaUF5SURBZ01DQXdJREl0TWxZeklpQXZQZ29nSUR4amFYSmpiR1VnWTNnOUlqa2lJR041UFNJNUlpQnlQU0l5SWlBdlBnb2dJRHh3WVhSb0lHUTlJazAzSURJeGRpMDBZVElnTWlBd0lEQWdNU0F5TFRKb05DSWdMejRLSUNBOFkybHlZMnhsSUdONFBTSXhOU0lnWTNrOUlqRTFJaUJ5UFNJeUlpQXZQZ284TDNOMlp6NEspIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2NpcmN1aXQtYm9hcmRcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBDaXJjdWl0Qm9hcmQgPSBjcmVhdGVMdWNpZGVJY29uKCdjaXJjdWl0LWJvYXJkJywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IENpcmN1aXRCb2FyZDtcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgW1xuICAgICdwYXRoJyxcbiAgICB7XG4gICAgICBkOiAnTTIxLjY2IDE3LjY3YTEuMDggMS4wOCAwIDAgMS0uMDQgMS42QTEyIDEyIDAgMCAxIDQuNzMgMi4zOGExLjEgMS4xIDAgMCAxIDEuNjEtLjA0eicsXG4gICAgICBrZXk6ICc0aXRlMDEnLFxuICAgIH0sXG4gIF0sXG4gIFsncGF0aCcsIHsgZDogJ00xOS42NSAxNS42NkE4IDggMCAwIDEgOC4zNSA0LjM0Jywga2V5OiAnMWd4aXB1JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnbTE0IDEwLTUuNSA1LjUnLCBrZXk6ICc5MnBmZW0nIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTQgMTcuODVWMTBINi4xNScsIGtleTogJ3hxbXRzaycgfV0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgQ2l0cnVzXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NakV1TmpZZ01UY3VOamRoTVM0d09DQXhMakE0SURBZ01DQXhMUzR3TkNBeExqWkJNVElnTVRJZ01DQXdJREVnTkM0M015QXlMak00WVRFdU1TQXhMakVnTUNBd0lERWdNUzQyTVMwdU1EUjZJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHhPUzQyTlNBeE5TNDJOa0U0SURnZ01DQXdJREVnT0M0ek5TQTBMak0wSWlBdlBnb2dJRHh3WVhSb0lHUTlJbTB4TkNBeE1DMDFMalVnTlM0MUlpQXZQZ29nSUR4d1lYUm9JR1E5SWsweE5DQXhOeTQ0TlZZeE1FZzJMakUxSWlBdlBnbzhMM04yWno0SykgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvY2l0cnVzXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgQ2l0cnVzID0gY3JlYXRlTHVjaWRlSWNvbignY2l0cnVzJywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IENpdHJ1cztcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgW1xuICAgICdwYXRoJyxcbiAgICB7IGQ6ICdNMjAuMiA2IDMgMTFsLS45LTIuNGMtLjMtMS4xLjMtMi4yIDEuMy0yLjVsMTMuNS00YzEuMS0uMyAyLjIuMyAyLjUgMS4zWicsIGtleTogJzF0bjRvNycgfSxcbiAgXSxcbiAgWydwYXRoJywgeyBkOiAnbTYuMiA1LjMgMy4xIDMuOScsIGtleTogJ2l1azc2bCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ20xMi40IDMuNCAzLjEgNCcsIGtleTogJzZoc2Q2bicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00zIDExaDE4djhhMiAyIDAgMCAxLTIgMkg1YTIgMiAwIDAgMS0yLTJaJywga2V5OiAnbHRnb3U5JyB9XSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBDbGFwcGVyYm9hcmRcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1qQXVNaUEySURNZ01URnNMUzQ1TFRJdU5HTXRMak10TVM0eExqTXRNaTR5SURFdU15MHlMalZzTVRNdU5TMDBZekV1TVMwdU15QXlMakl1TXlBeUxqVWdNUzR6V2lJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0p0Tmk0eUlEVXVNeUF6TGpFZ015NDVJaUF2UGdvZ0lEeHdZWFJvSUdROUltMHhNaTQwSURNdU5DQXpMakVnTkNJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTXlBeE1XZ3hPSFk0WVRJZ01pQXdJREFnTVMweUlESklOV0V5SURJZ01DQXdJREV0TWkweVdpSWdMejRLUEM5emRtYytDZz09KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9jbGFwcGVyYm9hcmRcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBDbGFwcGVyYm9hcmQgPSBjcmVhdGVMdWNpZGVJY29uKCdjbGFwcGVyYm9hcmQnLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgQ2xhcHBlcmJvYXJkO1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbJ3JlY3QnLCB7IHdpZHRoOiAnOCcsIGhlaWdodDogJzQnLCB4OiAnOCcsIHk6ICcyJywgcng6ICcxJywgcnk6ICcxJywga2V5OiAndGdyNGQ2JyB9XSxcbiAgW1xuICAgICdwYXRoJyxcbiAgICB7XG4gICAgICBkOiAnTTE2IDRoMmEyIDIgMCAwIDEgMiAydjE0YTIgMiAwIDAgMS0yIDJINmEyIDIgMCAwIDEtMi0yVjZhMiAyIDAgMCAxIDItMmgyJyxcbiAgICAgIGtleTogJzExNjE5NicsXG4gICAgfSxcbiAgXSxcbiAgWydwYXRoJywgeyBkOiAnbTkgMTQgMiAyIDQtNCcsIGtleTogJ2RmNzk3cScgfV0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgQ2xpcGJvYXJkQ2hlY2tcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNtVmpkQ0IzYVdSMGFEMGlPQ0lnYUdWcFoyaDBQU0kwSWlCNFBTSTRJaUI1UFNJeUlpQnllRDBpTVNJZ2NuazlJakVpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVEUySURSb01tRXlJRElnTUNBd0lERWdNaUF5ZGpFMFlUSWdNaUF3SURBZ01TMHlJREpJTm1FeUlESWdNQ0F3SURFdE1pMHlWalpoTWlBeUlEQWdNQ0F4SURJdE1tZ3lJaUF2UGdvZ0lEeHdZWFJvSUdROUltMDVJREUwSURJZ01pQTBMVFFpSUM4K0Nqd3ZjM1puUGdvPSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvY2xpcGJvYXJkLWNoZWNrXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgQ2xpcGJvYXJkQ2hlY2sgPSBjcmVhdGVMdWNpZGVJY29uKCdjbGlwYm9hcmQtY2hlY2snLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgQ2xpcGJvYXJkQ2hlY2s7XG4iLCJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbXG4gIFsncmVjdCcsIHsgd2lkdGg6ICc4JywgaGVpZ2h0OiAnNCcsIHg6ICc4JywgeTogJzInLCByeDogJzEnLCByeTogJzEnLCBrZXk6ICd0Z3I0ZDYnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNOCA0SDZhMiAyIDAgMCAwLTIgMnYxNGEyIDIgMCAwIDAgMiAyaDEyYTIgMiAwIDAgMCAyLTJ2LTInLCBrZXk6ICc0amRvbWQnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTYgNGgyYTIgMiAwIDAgMSAyIDJ2NCcsIGtleTogJzNocXk5OCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00yMSAxNEgxMScsIGtleTogJzFibWU1aScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ20xNSAxMC00IDQgNCA0Jywga2V5OiAnNWR2dXByJyB9XSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBDbGlwYm9hcmRDb3B5XG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjbVZqZENCM2FXUjBhRDBpT0NJZ2FHVnBaMmgwUFNJMElpQjRQU0k0SWlCNVBTSXlJaUJ5ZUQwaU1TSWdjbms5SWpFaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRnZ05FZzJZVElnTWlBd0lEQWdNQzB5SURKMk1UUmhNaUF5SURBZ01DQXdJRElnTW1neE1tRXlJRElnTUNBd0lEQWdNaTB5ZGkweUlpQXZQZ29nSUR4d1lYUm9JR1E5SWsweE5pQTBhREpoTWlBeUlEQWdNQ0F4SURJZ01uWTBJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHlNU0F4TkVneE1TSWdMejRLSUNBOGNHRjBhQ0JrUFNKdE1UVWdNVEF0TkNBMElEUWdOQ0lnTHo0S1BDOXpkbWMrQ2c9PSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvY2xpcGJvYXJkLWNvcHlcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBDbGlwYm9hcmRDb3B5ID0gY3JlYXRlTHVjaWRlSWNvbignY2xpcGJvYXJkLWNvcHknLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgQ2xpcGJvYXJkQ29weTtcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgWydyZWN0JywgeyB3aWR0aDogJzgnLCBoZWlnaHQ6ICc0JywgeDogJzgnLCB5OiAnMicsIHJ4OiAnMScsIHJ5OiAnMScsIGtleTogJ3RncjRkNicgfV0sXG4gIFtcbiAgICAncGF0aCcsXG4gICAge1xuICAgICAgZDogJ00xNiA0aDJhMiAyIDAgMCAxIDIgMnYxNGEyIDIgMCAwIDEtMiAySDZhMiAyIDAgMCAxLTItMlY2YTIgMiAwIDAgMSAyLTJoMicsXG4gICAgICBrZXk6ICcxMTYxOTYnLFxuICAgIH0sXG4gIF0sXG4gIFsncGF0aCcsIHsgZDogJ00xMiAxMWg0Jywga2V5OiAnMWpyejE5JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTEyIDE2aDQnLCBrZXk6ICduODVleGInIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNOCAxMWguMDEnLCBrZXk6ICcxZGZ1ancnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNOCAxNmguMDEnLCBrZXk6ICcxOHM2ZzknIH1dLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIENsaXBib2FyZExpc3RcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNtVmpkQ0IzYVdSMGFEMGlPQ0lnYUdWcFoyaDBQU0kwSWlCNFBTSTRJaUI1UFNJeUlpQnllRDBpTVNJZ2NuazlJakVpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVEUySURSb01tRXlJRElnTUNBd0lERWdNaUF5ZGpFMFlUSWdNaUF3SURBZ01TMHlJREpJTm1FeUlESWdNQ0F3SURFdE1pMHlWalpoTWlBeUlEQWdNQ0F4SURJdE1tZ3lJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHhNaUF4TVdnMElpQXZQZ29nSUR4d1lYUm9JR1E5SWsweE1pQXhObWcwSWlBdlBnb2dJRHh3WVhSb0lHUTlJazA0SURFeGFDNHdNU0lnTHo0S0lDQThjR0YwYUNCa1BTSk5PQ0F4Tm1ndU1ERWlJQzgrQ2p3dmMzWm5QZ289KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9jbGlwYm9hcmQtbGlzdFxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IENsaXBib2FyZExpc3QgPSBjcmVhdGVMdWNpZGVJY29uKCdjbGlwYm9hcmQtbGlzdCcsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBDbGlwYm9hcmRMaXN0O1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbJ3JlY3QnLCB7IHdpZHRoOiAnOCcsIGhlaWdodDogJzQnLCB4OiAnOCcsIHk6ICcyJywgcng6ICcxJywgcnk6ICcxJywga2V5OiAndGdyNGQ2JyB9XSxcbiAgW1xuICAgICdwYXRoJyxcbiAgICB7XG4gICAgICBkOiAnTTE2IDRoMmEyIDIgMCAwIDEgMiAydjE0YTIgMiAwIDAgMS0yIDJINmEyIDIgMCAwIDEtMi0yVjZhMiAyIDAgMCAxIDItMmgyJyxcbiAgICAgIGtleTogJzExNjE5NicsXG4gICAgfSxcbiAgXSxcbiAgWydwYXRoJywgeyBkOiAnTTkgMTRoNicsIGtleTogJzE1OWlidScgfV0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgQ2xpcGJvYXJkTWludXNcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNtVmpkQ0IzYVdSMGFEMGlPQ0lnYUdWcFoyaDBQU0kwSWlCNFBTSTRJaUI1UFNJeUlpQnllRDBpTVNJZ2NuazlJakVpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVEUySURSb01tRXlJRElnTUNBd0lERWdNaUF5ZGpFMFlUSWdNaUF3SURBZ01TMHlJREpJTm1FeUlESWdNQ0F3SURFdE1pMHlWalpoTWlBeUlEQWdNQ0F4SURJdE1tZ3lJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMDVJREUwYURZaUlDOCtDand2YzNablBnbz0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2NsaXBib2FyZC1taW51c1xuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IENsaXBib2FyZE1pbnVzID0gY3JlYXRlTHVjaWRlSWNvbignY2xpcGJvYXJkLW1pbnVzJywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IENsaXBib2FyZE1pbnVzO1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdNMTEgMTRoMTAnLCBrZXk6ICcxdzhlOWQnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTYgNGgyYTIgMiAwIDAgMSAyIDJ2MS4zNDQnLCBrZXk6ICcxZTYybGgnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdtMTcgMTggNC00LTQtNCcsIGtleTogJ3oyZzExMScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ004IDRINmEyIDIgMCAwIDAtMiAydjE0YTIgMiAwIDAgMCAyIDJoMTJhMiAyIDAgMCAwIDEuNzkzLTEuMTEzJywga2V5OiAnYmpiYjdtJyB9XSxcbiAgWydyZWN0JywgeyB4OiAnOCcsIHk6ICcyJywgd2lkdGg6ICc4JywgaGVpZ2h0OiAnNCcsIHJ4OiAnMScsIGtleTogJ3VibHB5JyB9XSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBDbGlwYm9hcmRQYXN0ZVxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTVRFZ01UUm9NVEFpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVEUySURSb01tRXlJRElnTUNBd0lERWdNaUF5ZGpFdU16UTBJaUF2UGdvZ0lEeHdZWFJvSUdROUltMHhOeUF4T0NBMExUUXROQzAwSWlBdlBnb2dJRHh3WVhSb0lHUTlJazA0SURSSU5tRXlJRElnTUNBd0lEQXRNaUF5ZGpFMFlUSWdNaUF3SURBZ01DQXlJREpvTVRKaE1pQXlJREFnTUNBd0lERXVOemt6TFRFdU1URXpJaUF2UGdvZ0lEeHlaV04wSUhnOUlqZ2lJSGs5SWpJaUlIZHBaSFJvUFNJNElpQm9aV2xuYUhROUlqUWlJSEo0UFNJeElpQXZQZ284TDNOMlp6NEspIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2NsaXBib2FyZC1wYXN0ZVxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IENsaXBib2FyZFBhc3RlID0gY3JlYXRlTHVjaWRlSWNvbignY2xpcGJvYXJkLXBhc3RlJywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IENsaXBib2FyZFBhc3RlO1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbJ3JlY3QnLCB7IHdpZHRoOiAnOCcsIGhlaWdodDogJzQnLCB4OiAnOCcsIHk6ICcyJywgcng6ICcxJywga2V5OiAnMW9pam50JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTggNEg2YTIgMiAwIDAgMC0yIDJ2MTRhMiAyIDAgMCAwIDIgMmgxMmEyIDIgMCAwIDAgMi0ydi0uNScsIGtleTogJzFidXQ5ZicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xNiA0aDJhMiAyIDAgMCAxIDEuNzMgMScsIGtleTogJzFwOG43bCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ004IDE4aDEnLCBrZXk6ICcxM3drMTInIH1dLFxuICBbXG4gICAgJ3BhdGgnLFxuICAgIHtcbiAgICAgIGQ6ICdNMjEuMzc4IDEyLjYyNmExIDEgMCAwIDAtMy4wMDQtMy4wMDRsLTQuMDEgNC4wMTJhMiAyIDAgMCAwLS41MDYuODU0bC0uODM3IDIuODdhLjUuNSAwIDAgMCAuNjIuNjJsMi44Ny0uODM3YTIgMiAwIDAgMCAuODU0LS41MDZ6JyxcbiAgICAgIGtleTogJzJ0MzM4MCcsXG4gICAgfSxcbiAgXSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBDbGlwYm9hcmRQZW5MaW5lXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjbVZqZENCM2FXUjBhRDBpT0NJZ2FHVnBaMmgwUFNJMElpQjRQU0k0SWlCNVBTSXlJaUJ5ZUQwaU1TSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk9DQTBTRFpoTWlBeUlEQWdNQ0F3TFRJZ01uWXhOR0V5SURJZ01DQXdJREFnTWlBeWFERXlZVElnTWlBd0lEQWdNQ0F5TFRKMkxTNDFJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHhOaUEwYURKaE1pQXlJREFnTUNBeElERXVOek1nTVNJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOT0NBeE9HZ3hJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHlNUzR6TnpnZ01USXVOakkyWVRFZ01TQXdJREFnTUMwekxqQXdOQzB6TGpBd05Hd3ROQzR3TVNBMExqQXhNbUV5SURJZ01DQXdJREF0TGpVd05pNDROVFJzTFM0NE16Y2dNaTQ0TjJFdU5TNDFJREFnTUNBd0lDNDJNaTQyTW13eUxqZzNMUzQ0TXpkaE1pQXlJREFnTUNBd0lDNDROVFF0TGpVd05ub2lJQzgrQ2p3dmMzWm5QZ289KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9jbGlwYm9hcmQtcGVuLWxpbmVcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBDbGlwYm9hcmRQZW5MaW5lID0gY3JlYXRlTHVjaWRlSWNvbignY2xpcGJvYXJkLXBlbi1saW5lJywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IENsaXBib2FyZFBlbkxpbmU7XG4iLCJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbXG4gIFsncmVjdCcsIHsgd2lkdGg6ICc4JywgaGVpZ2h0OiAnNCcsIHg6ICc4JywgeTogJzInLCByeDogJzEnLCBrZXk6ICcxb2lqbnQnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTYgNGgyYTIgMiAwIDAgMSAyIDJ2MTRhMiAyIDAgMCAxLTIgMmgtNS41Jywga2V5OiAnY2VyZWVqJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTQgMTMuNVY2YTIgMiAwIDAgMSAyLTJoMicsIGtleTogJzV1YTV2aCcgfV0sXG4gIFtcbiAgICAncGF0aCcsXG4gICAge1xuICAgICAgZDogJ00xMy4zNzggMTUuNjI2YTEgMSAwIDEgMC0zLjAwNC0zLjAwNGwtNS4wMSA1LjAxMmEyIDIgMCAwIDAtLjUwNi44NTRsLS44MzcgMi44N2EuNS41IDAgMCAwIC42Mi42MmwyLjg3LS44MzdhMiAyIDAgMCAwIC44NTQtLjUwNnonLFxuICAgICAga2V5OiAnMXk0cWJ4JyxcbiAgICB9LFxuICBdLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIENsaXBib2FyZFBlblxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y21WamRDQjNhV1IwYUQwaU9DSWdhR1ZwWjJoMFBTSTBJaUI0UFNJNElpQjVQU0l5SWlCeWVEMGlNU0lnTHo0S0lDQThjR0YwYUNCa1BTSk5NVFlnTkdneVlUSWdNaUF3SURBZ01TQXlJREoyTVRSaE1pQXlJREFnTUNBeExUSWdNbWd0TlM0MUlpQXZQZ29nSUR4d1lYUm9JR1E5SWswMElERXpMalZXTm1FeUlESWdNQ0F3SURFZ01pMHlhRElpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVEV6TGpNM09DQXhOUzQyTWpaaE1TQXhJREFnTVNBd0xUTXVNREEwTFRNdU1EQTBiQzAxTGpBeElEVXVNREV5WVRJZ01pQXdJREFnTUMwdU5UQTJMamcxTkd3dExqZ3pOeUF5TGpnM1lTNDFMalVnTUNBd0lEQWdMall5TGpZeWJESXVPRGN0TGpnek4yRXlJRElnTUNBd0lEQWdMamcxTkMwdU5UQTJlaUlnTHo0S1BDOXpkbWMrQ2c9PSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvY2xpcGJvYXJkLXBlblxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IENsaXBib2FyZFBlbiA9IGNyZWF0ZUx1Y2lkZUljb24oJ2NsaXBib2FyZC1wZW4nLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgQ2xpcGJvYXJkUGVuO1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbJ3JlY3QnLCB7IHdpZHRoOiAnOCcsIGhlaWdodDogJzQnLCB4OiAnOCcsIHk6ICcyJywgcng6ICcxJywgcnk6ICcxJywga2V5OiAndGdyNGQ2JyB9XSxcbiAgW1xuICAgICdwYXRoJyxcbiAgICB7XG4gICAgICBkOiAnTTE2IDRoMmEyIDIgMCAwIDEgMiAydjE0YTIgMiAwIDAgMS0yIDJINmEyIDIgMCAwIDEtMi0yVjZhMiAyIDAgMCAxIDItMmgyJyxcbiAgICAgIGtleTogJzExNjE5NicsXG4gICAgfSxcbiAgXSxcbiAgWydwYXRoJywgeyBkOiAnTTkgMTRoNicsIGtleTogJzE1OWlidScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xMiAxN3YtNicsIGtleTogJzF5OHJiZicgfV0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgQ2xpcGJvYXJkUGx1c1xuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y21WamRDQjNhV1IwYUQwaU9DSWdhR1ZwWjJoMFBTSTBJaUI0UFNJNElpQjVQU0l5SWlCeWVEMGlNU0lnY25rOUlqRWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRURTJJRFJvTW1FeUlESWdNQ0F3SURFZ01pQXlkakUwWVRJZ01pQXdJREFnTVMweUlESklObUV5SURJZ01DQXdJREV0TWkweVZqWmhNaUF5SURBZ01DQXhJREl0TW1neUlpQXZQZ29nSUR4d1lYUm9JR1E5SWswNUlERTBhRFlpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVEV5SURFM2RpMDJJaUF2UGdvOEwzTjJaejRLKSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9jbGlwYm9hcmQtcGx1c1xuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IENsaXBib2FyZFBsdXMgPSBjcmVhdGVMdWNpZGVJY29uKCdjbGlwYm9hcmQtcGx1cycsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBDbGlwYm9hcmRQbHVzO1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbJ3JlY3QnLCB7IHdpZHRoOiAnOCcsIGhlaWdodDogJzQnLCB4OiAnOCcsIHk6ICcyJywgcng6ICcxJywgcnk6ICcxJywga2V5OiAndGdyNGQ2JyB9XSxcbiAgW1xuICAgICdwYXRoJyxcbiAgICB7XG4gICAgICBkOiAnTTE2IDRoMmEyIDIgMCAwIDEgMiAydjE0YTIgMiAwIDAgMS0yIDJINmEyIDIgMCAwIDEtMi0yVjZhMiAyIDAgMCAxIDItMmgyJyxcbiAgICAgIGtleTogJzExNjE5NicsXG4gICAgfSxcbiAgXSxcbiAgWydwYXRoJywgeyBkOiAnTTkgMTJ2LTFoNnYxJywga2V5OiAnaWVobDZtJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTExIDE3aDInLCBrZXk6ICcxMnc1bWUnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTIgMTF2NicsIGtleTogJzFid3F5YycgfV0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgQ2xpcGJvYXJkVHlwZVxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y21WamRDQjNhV1IwYUQwaU9DSWdhR1ZwWjJoMFBTSTBJaUI0UFNJNElpQjVQU0l5SWlCeWVEMGlNU0lnY25rOUlqRWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRURTJJRFJvTW1FeUlESWdNQ0F3SURFZ01pQXlkakUwWVRJZ01pQXdJREFnTVMweUlESklObUV5SURJZ01DQXdJREV0TWkweVZqWmhNaUF5SURBZ01DQXhJREl0TW1neUlpQXZQZ29nSUR4d1lYUm9JR1E5SWswNUlERXlkaTB4YURaMk1TSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk1URWdNVGRvTWlJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTVRJZ01URjJOaUlnTHo0S1BDOXpkbWMrQ2c9PSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvY2xpcGJvYXJkLXR5cGVcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBDbGlwYm9hcmRUeXBlID0gY3JlYXRlTHVjaWRlSWNvbignY2xpcGJvYXJkLXR5cGUnLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgQ2xpcGJvYXJkVHlwZTtcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgWydyZWN0JywgeyB3aWR0aDogJzgnLCBoZWlnaHQ6ICc0JywgeDogJzgnLCB5OiAnMicsIHJ4OiAnMScsIHJ5OiAnMScsIGtleTogJ3RncjRkNicgfV0sXG4gIFtcbiAgICAncGF0aCcsXG4gICAge1xuICAgICAgZDogJ00xNiA0aDJhMiAyIDAgMCAxIDIgMnYxNGEyIDIgMCAwIDEtMiAySDZhMiAyIDAgMCAxLTItMlY2YTIgMiAwIDAgMSAyLTJoMicsXG4gICAgICBrZXk6ICcxMTYxOTYnLFxuICAgIH0sXG4gIF0sXG4gIFsncGF0aCcsIHsgZDogJ20xNSAxMS02IDYnLCBrZXk6ICcxdG9hOW4nIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdtOSAxMSA2IDYnLCBrZXk6ICd3bGlibnknIH1dLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIENsaXBib2FyZFhcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNtVmpkQ0IzYVdSMGFEMGlPQ0lnYUdWcFoyaDBQU0kwSWlCNFBTSTRJaUI1UFNJeUlpQnllRDBpTVNJZ2NuazlJakVpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVEUySURSb01tRXlJRElnTUNBd0lERWdNaUF5ZGpFMFlUSWdNaUF3SURBZ01TMHlJREpJTm1FeUlESWdNQ0F3SURFdE1pMHlWalpoTWlBeUlEQWdNQ0F4SURJdE1tZ3lJaUF2UGdvZ0lEeHdZWFJvSUdROUltMHhOU0F4TVMwMklEWWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaWJUa2dNVEVnTmlBMklpQXZQZ284TDNOMlp6NEspIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2NsaXBib2FyZC14XG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgQ2xpcGJvYXJkWCA9IGNyZWF0ZUx1Y2lkZUljb24oJ2NsaXBib2FyZC14JywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IENsaXBib2FyZFg7XG4iLCJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbXG4gIFsncmVjdCcsIHsgd2lkdGg6ICc4JywgaGVpZ2h0OiAnNCcsIHg6ICc4JywgeTogJzInLCByeDogJzEnLCByeTogJzEnLCBrZXk6ICd0Z3I0ZDYnIH1dLFxuICBbXG4gICAgJ3BhdGgnLFxuICAgIHtcbiAgICAgIGQ6ICdNMTYgNGgyYTIgMiAwIDAgMSAyIDJ2MTRhMiAyIDAgMCAxLTIgMkg2YTIgMiAwIDAgMS0yLTJWNmEyIDIgMCAwIDEgMi0yaDInLFxuICAgICAga2V5OiAnMTE2MTk2JyxcbiAgICB9LFxuICBdLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIENsaXBib2FyZFxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y21WamRDQjNhV1IwYUQwaU9DSWdhR1ZwWjJoMFBTSTBJaUI0UFNJNElpQjVQU0l5SWlCeWVEMGlNU0lnY25rOUlqRWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRURTJJRFJvTW1FeUlESWdNQ0F3SURFZ01pQXlkakUwWVRJZ01pQXdJREFnTVMweUlESklObUV5SURJZ01DQXdJREV0TWkweVZqWmhNaUF5SURBZ01DQXhJREl0TW1neUlpQXZQZ284TDNOMlp6NEspIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2NsaXBib2FyZFxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IENsaXBib2FyZCA9IGNyZWF0ZUx1Y2lkZUljb24oJ2NsaXBib2FyZCcsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBDbGlwYm9hcmQ7XG4iLCJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ00xMiA2djZsMi00Jywga2V5OiAnbWlwdHlkJyB9XSxcbiAgWydjaXJjbGUnLCB7IGN4OiAnMTInLCBjeTogJzEyJywgcjogJzEwJywga2V5OiAnMW1nbGF5JyB9XSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBDbG9jazFcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1USWdOblkyYkRJdE5DSWdMejRLSUNBOFkybHlZMnhsSUdONFBTSXhNaUlnWTNrOUlqRXlJaUJ5UFNJeE1DSWdMejRLUEM5emRtYytDZz09KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9jbG9jay0xXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgQ2xvY2sxID0gY3JlYXRlTHVjaWRlSWNvbignY2xvY2stMScsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBDbG9jazE7XG4iLCJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ00xMiA2djZsLTQtMicsIGtleTogJ2NlZHBvbycgfV0sXG4gIFsnY2lyY2xlJywgeyBjeDogJzEyJywgY3k6ICcxMicsIHI6ICcxMCcsIGtleTogJzFtZ2xheScgfV0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgQ2xvY2sxMFxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTVRJZ05uWTJiQzAwTFRJaUlDOCtDaUFnUEdOcGNtTnNaU0JqZUQwaU1USWlJR041UFNJeE1pSWdjajBpTVRBaUlDOCtDand2YzNablBnbz0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2Nsb2NrLTEwXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgQ2xvY2sxMCA9IGNyZWF0ZUx1Y2lkZUljb24oJ2Nsb2NrLTEwJywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IENsb2NrMTA7XG4iLCJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ00xMiA2djZsLTItNCcsIGtleTogJ25zMzlhZycgfV0sXG4gIFsnY2lyY2xlJywgeyBjeDogJzEyJywgY3k6ICcxMicsIHI6ICcxMCcsIGtleTogJzFtZ2xheScgfV0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgQ2xvY2sxMVxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTVRJZ05uWTJiQzB5TFRRaUlDOCtDaUFnUEdOcGNtTnNaU0JqZUQwaU1USWlJR041UFNJeE1pSWdjajBpTVRBaUlDOCtDand2YzNablBnbz0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2Nsb2NrLTExXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgQ2xvY2sxMSA9IGNyZWF0ZUx1Y2lkZUljb24oJ2Nsb2NrLTExJywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IENsb2NrMTE7XG4iLCJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ00xMiA2djZsNC0yJywga2V5OiAnMXIya3VoJyB9XSxcbiAgWydjaXJjbGUnLCB7IGN4OiAnMTInLCBjeTogJzEyJywgcjogJzEwJywga2V5OiAnMW1nbGF5JyB9XSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBDbG9jazJcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1USWdOblkyYkRRdE1pSWdMejRLSUNBOFkybHlZMnhsSUdONFBTSXhNaUlnWTNrOUlqRXlJaUJ5UFNJeE1DSWdMejRLUEM5emRtYytDZz09KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9jbG9jay0yXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgQ2xvY2syID0gY3JlYXRlTHVjaWRlSWNvbignY2xvY2stMicsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBDbG9jazI7XG4iLCJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ00xMiA2djYnLCBrZXk6ICcxaXB1d2wnIH1dLFxuICBbJ2NpcmNsZScsIHsgY3g6ICcxMicsIGN5OiAnMTInLCByOiAnMTAnLCBrZXk6ICcxbWdsYXknIH1dLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIENsb2NrMTJcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1USWdOblkySWlBdlBnb2dJRHhqYVhKamJHVWdZM2c5SWpFeUlpQmplVDBpTVRJaUlISTlJakV3SWlBdlBnbzhMM04yWno0SykgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvY2xvY2stMTJcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBDbG9jazEyID0gY3JlYXRlTHVjaWRlSWNvbignY2xvY2stMTInLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgQ2xvY2sxMjtcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTEyIDZ2Nmg0Jywga2V5OiAnMTM1cjhpJyB9XSxcbiAgWydjaXJjbGUnLCB7IGN4OiAnMTInLCBjeTogJzEyJywgcjogJzEwJywga2V5OiAnMW1nbGF5JyB9XSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBDbG9jazNcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1USWdOblkyYURRaUlDOCtDaUFnUEdOcGNtTnNaU0JqZUQwaU1USWlJR041UFNJeE1pSWdjajBpTVRBaUlDOCtDand2YzNablBnbz0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2Nsb2NrLTNcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBDbG9jazMgPSBjcmVhdGVMdWNpZGVJY29uKCdjbG9jay0zJywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IENsb2NrMztcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTEyIDZ2Nmw0IDInLCBrZXk6ICdtbWs3eWcnIH1dLFxuICBbJ2NpcmNsZScsIHsgY3g6ICcxMicsIGN5OiAnMTInLCByOiAnMTAnLCBrZXk6ICcxbWdsYXknIH1dLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIENsb2NrNFxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTVRJZ05uWTJiRFFnTWlJZ0x6NEtJQ0E4WTJseVkyeGxJR040UFNJeE1pSWdZM2s5SWpFeUlpQnlQU0l4TUNJZ0x6NEtQQzl6ZG1jK0NnPT0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2Nsb2NrLTRcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBDbG9jazQgPSBjcmVhdGVMdWNpZGVJY29uKCdjbG9jay00JywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IENsb2NrNDtcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTEyIDZ2NmwyIDQnLCBrZXk6ICcxMjg3czknIH1dLFxuICBbJ2NpcmNsZScsIHsgY3g6ICcxMicsIGN5OiAnMTInLCByOiAnMTAnLCBrZXk6ICcxbWdsYXknIH1dLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIENsb2NrNVxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTVRJZ05uWTJiRElnTkNJZ0x6NEtJQ0E4WTJseVkyeGxJR040UFNJeE1pSWdZM2s5SWpFeUlpQnlQU0l4TUNJZ0x6NEtQQzl6ZG1jK0NnPT0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2Nsb2NrLTVcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBDbG9jazUgPSBjcmVhdGVMdWNpZGVJY29uKCdjbG9jay01JywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IENsb2NrNTtcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTEyIDZ2MTAnLCBrZXk6ICd3ZjdyZGgnIH1dLFxuICBbJ2NpcmNsZScsIHsgY3g6ICcxMicsIGN5OiAnMTInLCByOiAnMTAnLCBrZXk6ICcxbWdsYXknIH1dLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIENsb2NrNlxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTVRJZ05uWXhNQ0lnTHo0S0lDQThZMmx5WTJ4bElHTjRQU0l4TWlJZ1kzazlJakV5SWlCeVBTSXhNQ0lnTHo0S1BDOXpkbWMrQ2c9PSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvY2xvY2stNlxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IENsb2NrNiA9IGNyZWF0ZUx1Y2lkZUljb24oJ2Nsb2NrLTYnLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgQ2xvY2s2O1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdNMTIgNnY2bC0yIDQnLCBrZXk6ICcxMDk1YnUnIH1dLFxuICBbJ2NpcmNsZScsIHsgY3g6ICcxMicsIGN5OiAnMTInLCByOiAnMTAnLCBrZXk6ICcxbWdsYXknIH1dLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIENsb2NrN1xuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTVRJZ05uWTJiQzB5SURRaUlDOCtDaUFnUEdOcGNtTnNaU0JqZUQwaU1USWlJR041UFNJeE1pSWdjajBpTVRBaUlDOCtDand2YzNablBnbz0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2Nsb2NrLTdcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBDbG9jazcgPSBjcmVhdGVMdWNpZGVJY29uKCdjbG9jay03JywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IENsb2NrNztcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTEyIDZ2NmwtNCAyJywga2V5OiAnaW1jM3dsJyB9XSxcbiAgWydjaXJjbGUnLCB7IGN4OiAnMTInLCBjeTogJzEyJywgcjogJzEwJywga2V5OiAnMW1nbGF5JyB9XSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBDbG9jazhcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1USWdOblkyYkMwMElESWlJQzgrQ2lBZ1BHTnBjbU5zWlNCamVEMGlNVElpSUdONVBTSXhNaUlnY2owaU1UQWlJQzgrQ2p3dmMzWm5QZ289KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9jbG9jay04XG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgQ2xvY2s4ID0gY3JlYXRlTHVjaWRlSWNvbignY2xvY2stOCcsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBDbG9jazg7XG4iLCJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ00xMiA2djZIOCcsIGtleTogJ3UzOXZ6bScgfV0sXG4gIFsnY2lyY2xlJywgeyBjeDogJzEyJywgY3k6ICcxMicsIHI6ICcxMCcsIGtleTogJzFtZ2xheScgfV0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgQ2xvY2s5XG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NVElnTm5ZMlNEZ2lJQzgrQ2lBZ1BHTnBjbU5zWlNCamVEMGlNVElpSUdONVBTSXhNaUlnY2owaU1UQWlJQzgrQ2p3dmMzWm5QZ289KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9jbG9jay05XG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgQ2xvY2s5ID0gY3JlYXRlTHVjaWRlSWNvbignY2xvY2stOScsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBDbG9jazk7XG4iLCJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ00xMiA2djZsNCAyJywga2V5OiAnbW1rN3lnJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTIwIDEydjUnLCBrZXk6ICcxMndzdmsnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMjAgMjFoLjAxJywga2V5OiAnMXA2bzZuJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTIxLjI1IDguMkExMCAxMCAwIDEgMCAxNiAyMS4xNicsIGtleTogJzE3ZnA5ZicgfV0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgQ2xvY2tBbGVydFxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTVRJZ05uWTJiRFFnTWlJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTWpBZ01USjJOU0lnTHo0S0lDQThjR0YwYUNCa1BTSk5NakFnTWpGb0xqQXhJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHlNUzR5TlNBNExqSkJNVEFnTVRBZ01DQXhJREFnTVRZZ01qRXVNVFlpSUM4K0Nqd3ZjM1puUGdvPSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvY2xvY2stYWxlcnRcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBDbG9ja0FsZXJ0ID0gY3JlYXRlTHVjaWRlSWNvbignY2xvY2stYWxlcnQnLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgQ2xvY2tBbGVydDtcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTEyIDZ2NmwyIDEnLCBrZXk6ICcxOWNtOG4nIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTIuMzM3IDIxLjk5NGExMCAxMCAwIDEgMSA5LjU4OC04Ljc2NycsIGtleTogJzI4bW9hJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnbTE0IDE4IDQgNCA0LTQnLCBrZXk6ICcxd2F5Z3gnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTggMTR2OCcsIGtleTogJ2lyZXc0NScgfV0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgQ2xvY2tBcnJvd0Rvd25cbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1USWdOblkyYkRJZ01TSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk1USXVNek0zSURJeExqazVOR0V4TUNBeE1DQXdJREVnTVNBNUxqVTRPQzA0TGpjMk55SWdMejRLSUNBOGNHRjBhQ0JrUFNKdE1UUWdNVGdnTkNBMElEUXROQ0lnTHo0S0lDQThjR0YwYUNCa1BTSk5NVGdnTVRSMk9DSWdMejRLUEM5emRtYytDZz09KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9jbG9jay1hcnJvdy1kb3duXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgQ2xvY2tBcnJvd0Rvd24gPSBjcmVhdGVMdWNpZGVJY29uKCdjbG9jay1hcnJvdy1kb3duJywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IENsb2NrQXJyb3dEb3duO1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdNMTIgNnY2bDEuNTYuNzgnLCBrZXk6ICcxNGVkM2cnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTMuMjI3IDIxLjkyNWExMCAxMCAwIDEgMSA4Ljc2Ny05LjU4OCcsIGtleTogJ2p3a2xzMScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ20xNCAxOCA0LTQgNCA0Jywga2V5OiAnZnRrcHB5JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTE4IDIydi04Jywga2V5OiAnc3UwZ2poJyB9XSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBDbG9ja0Fycm93VXBcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1USWdOblkyYkRFdU5UWXVOemdpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVEV6TGpJeU55QXlNUzQ1TWpWaE1UQWdNVEFnTUNBeElERWdPQzQzTmpjdE9TNDFPRGdpSUM4K0NpQWdQSEJoZEdnZ1pEMGliVEUwSURFNElEUXROQ0EwSURRaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRFNElESXlkaTA0SWlBdlBnbzhMM04yWno0SykgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvY2xvY2stYXJyb3ctdXBcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBDbG9ja0Fycm93VXAgPSBjcmVhdGVMdWNpZGVJY29uKCdjbG9jay1hcnJvdy11cCcsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBDbG9ja0Fycm93VXA7XG4iLCJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ00xMiAyYTEwIDEwIDAgMCAxIDcuMzggMTYuNzUnLCBrZXk6ICcxNzV0OTUnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTIgNnY2bDQgMicsIGtleTogJ21tazd5ZycgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00yLjUgOC44NzVhMTAgMTAgMCAwIDAtLjUgMycsIGtleTogJzF2Y2UwcycgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00yLjgzIDE2YTEwIDEwIDAgMCAwIDIuNDMgMy40Jywga2V5OiAnbzNma3c0JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTQuNjM2IDUuMjM1YTEwIDEwIDAgMCAxIC44OTEtLjg1NycsIGtleTogJzFzenBmaycgfV0sXG4gIFsncGF0aCcsIHsgZDogJ004LjY0NCAyMS40MmExMCAxMCAwIDAgMCA3LjYzMS0uMzgnLCBrZXk6ICc5eWh2ZDQnIH1dLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIENsb2NrRmFkaW5nXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NVElnTW1FeE1DQXhNQ0F3SURBZ01TQTNMak00SURFMkxqYzFJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHhNaUEyZGpac05DQXlJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHlMalVnT0M0NE56VmhNVEFnTVRBZ01DQXdJREF0TGpVZ015SWdMejRLSUNBOGNHRjBhQ0JrUFNKTk1pNDRNeUF4Tm1FeE1DQXhNQ0F3SURBZ01DQXlMalF6SURNdU5DSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk5DNDJNellnTlM0eU16VmhNVEFnTVRBZ01DQXdJREVnTGpnNU1TMHVPRFUzSWlBdlBnb2dJRHh3WVhSb0lHUTlJazA0TGpZME5DQXlNUzQwTW1FeE1DQXhNQ0F3SURBZ01DQTNMall6TVMwdU16Z2lJQzgrQ2p3dmMzWm5QZ289KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9jbG9jay1mYWRpbmdcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBDbG9ja0ZhZGluZyA9IGNyZWF0ZUx1Y2lkZUljb24oJ2Nsb2NrLWZhZGluZycsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBDbG9ja0ZhZGluZztcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTEyIDZ2NmwzLjY0NCAxLjgyMicsIGtleTogJzFqbWV0dCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xNiAxOWg2Jywga2V5OiAneHdnMzFpJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTE5IDE2djYnLCBrZXk6ICd0ZGR0M3MnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMjEuOTIgMTMuMjY3YTEwIDEwIDAgMSAwLTguNjUzIDguNjUzJywga2V5OiAnMXUwb3NrJyB9XSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBDbG9ja1BsdXNcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1USWdOblkyYkRNdU5qUTBJREV1T0RJeUlpQXZQZ29nSUR4d1lYUm9JR1E5SWsweE5pQXhPV2cySWlBdlBnb2dJRHh3WVhSb0lHUTlJazB4T1NBeE5uWTJJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHlNUzQ1TWlBeE15NHlOamRoTVRBZ01UQWdNQ0F4SURBdE9DNDJOVE1nT0M0Mk5UTWlJQzgrQ2p3dmMzWm5QZ289KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9jbG9jay1wbHVzXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgQ2xvY2tQbHVzID0gY3JlYXRlTHVjaWRlSWNvbignY2xvY2stcGx1cycsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBDbG9ja1BsdXM7XG4iLCJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ00xMiA2djZsNCAyJywga2V5OiAnbW1rN3lnJyB9XSxcbiAgWydjaXJjbGUnLCB7IGN4OiAnMTInLCBjeTogJzEyJywgcjogJzEwJywga2V5OiAnMW1nbGF5JyB9XSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBDbG9ja1xuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTVRJZ05uWTJiRFFnTWlJZ0x6NEtJQ0E4WTJseVkyeGxJR040UFNJeE1pSWdZM2s5SWpFeUlpQnlQU0l4TUNJZ0x6NEtQQzl6ZG1jK0NnPT0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2Nsb2NrXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgQ2xvY2sgPSBjcmVhdGVMdWNpZGVJY29uKCdjbG9jaycsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBDbG9jaztcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTEyIDEydjQnLCBrZXk6ICd0d3cxNWgnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTIgMjBoLjAxJywga2V5OiAnemVrZWk5JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTE3IDE4aC41YTEgMSAwIDAgMCAwLTloLTEuNzlBNyA3IDAgMSAwIDcgMTcuNzA4Jywga2V5OiAneHNiNWp1JyB9XSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBDbG91ZEFsZXJ0XG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NVElnTVRKMk5DSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk1USWdNakJvTGpBeElpQXZQZ29nSUR4d1lYUm9JR1E5SWsweE55QXhPR2d1TldFeElERWdNQ0F3SURBZ01DMDVhQzB4TGpjNVFUY2dOeUF3SURFZ01DQTNJREUzTGpjd09DSWdMejRLUEM5emRtYytDZz09KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9jbG91ZC1hbGVydFxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IENsb3VkQWxlcnQgPSBjcmVhdGVMdWNpZGVJY29uKCdjbG91ZC1hbGVydCcsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBDbG91ZEFsZXJ0O1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdtMTcgMTUtNS41IDUuNUw5IDE4Jywga2V5OiAnMTVxODd4JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTUgMTcuNzQzQTcgNyAwIDEgMSAxNS43MSAxMGgxLjc5YTQuNSA0LjUgMCAwIDEgMS41IDguNzQyJywga2V5OiAnOWhvNmtpJyB9XSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBDbG91ZENoZWNrXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSnRNVGNnTVRVdE5TNDFJRFV1TlV3NUlERTRJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMDFJREUzTGpjME0wRTNJRGNnTUNBeElERWdNVFV1TnpFZ01UQm9NUzQzT1dFMExqVWdOQzQxSURBZ01DQXhJREV1TlNBNExqYzBNaUlnTHo0S1BDOXpkbWMrQ2c9PSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvY2xvdWQtY2hlY2tcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBDbG91ZENoZWNrID0gY3JlYXRlTHVjaWRlSWNvbignY2xvdWQtY2hlY2snLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgQ2xvdWRDaGVjaztcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnbTEwLjg1MiAxOS43NzItLjM4My45MjQnLCBrZXk6ICdyN3NsN2QnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdtMTMuMTQ4IDE0LjIyOC4zODMtLjkyMycsIGtleTogJzFkNXpwbScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xMy4xNDggMTkuNzcyYTMgMyAwIDEgMC0yLjI5Ni01LjU0NGwtLjM4My0uOTIzJywga2V5OiAnMXlkaWs3JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnbTEzLjUzIDIwLjY5Ni0uMzgyLS45MjRhMyAzIDAgMSAxLTIuMjk2LTUuNTQ0Jywga2V5OiAnMW0xdnNmJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnbTE0Ljc3MiAxNS44NTIuOTIzLS4zODMnLCBrZXk6ICc2NjBwNmUnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdtMTQuNzcyIDE4LjE0OC45MjMuMzgzJywga2V5OiAnaHJjcGlzJyB9XSxcbiAgW1xuICAgICdwYXRoJyxcbiAgICB7XG4gICAgICBkOiAnTTQuMiAxNS4xYTcgNyAwIDEgMSA5LjkzLTkuODU4QTcgNyAwIDAgMSAxNS43MSA4aDEuNzlhNC41IDQuNSAwIDAgMSAyLjUgOC4yJyxcbiAgICAgIGtleTogJ2oycTk4bicsXG4gICAgfSxcbiAgXSxcbiAgWydwYXRoJywgeyBkOiAnbTkuMjI4IDE1Ljg1Mi0uOTIzLS4zODMnLCBrZXk6ICcxcDlvbmcnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdtOS4yMjggMTguMTQ4LS45MjMuMzgzJywga2V5OiAnNjU1OHJ6JyB9XSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBDbG91ZENvZ1xuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0p0TVRBdU9EVXlJREU1TGpjM01pMHVNemd6TGpreU5DSWdMejRLSUNBOGNHRjBhQ0JrUFNKdE1UTXVNVFE0SURFMExqSXlPQzR6T0RNdExqa3lNeUlnTHo0S0lDQThjR0YwYUNCa1BTSk5NVE11TVRRNElERTVMamMzTW1FeklETWdNQ0F4SURBdE1pNHlPVFl0TlM0MU5EUnNMUzR6T0RNdExqa3lNeUlnTHo0S0lDQThjR0YwYUNCa1BTSnRNVE11TlRNZ01qQXVOamsyTFM0ek9ESXRMamt5TkdFeklETWdNQ0F4SURFdE1pNHlPVFl0TlM0MU5EUWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaWJURTBMamMzTWlBeE5TNDROVEl1T1RJekxTNHpPRE1pSUM4K0NpQWdQSEJoZEdnZ1pEMGliVEUwTGpjM01pQXhPQzR4TkRndU9USXpMak00TXlJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTkM0eUlERTFMakZoTnlBM0lEQWdNU0F4SURrdU9UTXRPUzQ0TlRoQk55QTNJREFnTUNBeElERTFMamN4SURob01TNDNPV0UwTGpVZ05DNDFJREFnTUNBeElESXVOU0E0TGpJaUlDOCtDaUFnUEhCaGRHZ2daRDBpYlRrdU1qSTRJREUxTGpnMU1pMHVPVEl6TFM0ek9ETWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaWJUa3VNakk0SURFNExqRTBPQzB1T1RJekxqTTRNeUlnTHo0S1BDOXpkbWMrQ2c9PSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvY2xvdWQtY29nXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgQ2xvdWRDb2cgPSBjcmVhdGVMdWNpZGVJY29uKCdjbG91ZC1jb2cnLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgQ2xvdWRDb2c7XG4iLCJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ00xMiAxM3Y4bC00LTQnLCBrZXk6ICcxZjVud2YnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdtMTIgMjEgNC00Jywga2V5OiAnMWxmY2NlJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTQuMzkzIDE1LjI2OUE3IDcgMCAxIDEgMTUuNzEgOGgxLjc5YTQuNSA0LjUgMCAwIDEgMi40MzYgOC4yODQnLCBrZXk6ICd1aTFobXknIH1dLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIENsb3VkRG93bmxvYWRcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1USWdNVE4yT0d3dE5DMDBJaUF2UGdvZ0lEeHdZWFJvSUdROUltMHhNaUF5TVNBMExUUWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRUUXVNemt6SURFMUxqSTJPVUUzSURjZ01DQXhJREVnTVRVdU56RWdPR2d4TGpjNVlUUXVOU0EwTGpVZ01DQXdJREVnTWk0ME16WWdPQzR5T0RRaUlDOCtDand2YzNablBnbz0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2Nsb3VkLWRvd25sb2FkXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgQ2xvdWREb3dubG9hZCA9IGNyZWF0ZUx1Y2lkZUljb24oJ2Nsb3VkLWRvd25sb2FkJywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IENsb3VkRG93bmxvYWQ7XG4iLCJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ000IDE0Ljg5OUE3IDcgMCAxIDEgMTUuNzEgOGgxLjc5YTQuNSA0LjUgMCAwIDEgMi41IDguMjQyJywga2V5OiAnMXBsam50JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTggMTl2MScsIGtleTogJzFkazJieScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ004IDE0djEnLCBrZXk6ICc4NHl4b3QnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTYgMTl2MScsIGtleTogJ3YyMjBtNycgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xNiAxNHYxJywga2V5OiAnZzEyZ2o2JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTEyIDIxdjEnLCBrZXk6ICdxOHZhZmsnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTIgMTZ2MScsIGtleTogJzFteDZyeCcgfV0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgQ2xvdWREcml6emxlXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5OQ0F4TkM0NE9UbEJOeUEzSURBZ01TQXhJREUxTGpjeElEaG9NUzQzT1dFMExqVWdOQzQxSURBZ01DQXhJREl1TlNBNExqSTBNaUlnTHo0S0lDQThjR0YwYUNCa1BTSk5PQ0F4T1hZeElpQXZQZ29nSUR4d1lYUm9JR1E5SWswNElERTBkakVpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVEUySURFNWRqRWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRURTJJREUwZGpFaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRFeUlESXhkakVpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVEV5SURFMmRqRWlJQzgrQ2p3dmMzWm5QZ289KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9jbG91ZC1kcml6emxlXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgQ2xvdWREcml6emxlID0gY3JlYXRlTHVjaWRlSWNvbignY2xvdWQtZHJpenpsZScsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBDbG91ZERyaXp6bGU7XG4iLCJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ000IDE0Ljg5OUE3IDcgMCAxIDEgMTUuNzEgOGgxLjc5YTQuNSA0LjUgMCAwIDEgMi41IDguMjQyJywga2V5OiAnMXBsam50JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTE2IDE3SDcnLCBrZXk6ICdweWd0bTEnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTcgMjFIOScsIGtleTogJzF1MnEwMicgfV0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgQ2xvdWRGb2dcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk5DQXhOQzQ0T1RsQk55QTNJREFnTVNBeElERTFMamN4SURob01TNDNPV0UwTGpVZ05DNDFJREFnTUNBeElESXVOU0E0TGpJME1pSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk1UWWdNVGRJTnlJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTVRjZ01qRklPU0lnTHo0S1BDOXpkbWMrQ2c9PSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvY2xvdWQtZm9nXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgQ2xvdWRGb2cgPSBjcmVhdGVMdWNpZGVJY29uKCdjbG91ZC1mb2cnLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgQ2xvdWRGb2c7XG4iLCJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ000IDE0Ljg5OUE3IDcgMCAxIDEgMTUuNzEgOGgxLjc5YTQuNSA0LjUgMCAwIDEgMi41IDguMjQyJywga2V5OiAnMXBsam50JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTE2IDE0djInLCBrZXk6ICdhMWlzN2wnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNOCAxNHYyJywga2V5OiAnMWU5bTZ0JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTE2IDIwaC4wMScsIGtleTogJ3h3ZWs1MScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ004IDIwaC4wMScsIGtleTogJzF2am5leScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xMiAxNnYyJywga2V5OiAnejY2dTFqJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTEyIDIyaC4wMScsIGtleTogJzF1cmQ3YScgfV0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgQ2xvdWRIYWlsXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5OQ0F4TkM0NE9UbEJOeUEzSURBZ01TQXhJREUxTGpjeElEaG9NUzQzT1dFMExqVWdOQzQxSURBZ01DQXhJREl1TlNBNExqSTBNaUlnTHo0S0lDQThjR0YwYUNCa1BTSk5NVFlnTVRSMk1pSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk9DQXhOSFl5SWlBdlBnb2dJRHh3WVhSb0lHUTlJazB4TmlBeU1HZ3VNREVpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVGdnTWpCb0xqQXhJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHhNaUF4Tm5ZeUlpQXZQZ29nSUR4d1lYUm9JR1E5SWsweE1pQXlNbWd1TURFaUlDOCtDand2YzNablBnbz0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2Nsb3VkLWhhaWxcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBDbG91ZEhhaWwgPSBjcmVhdGVMdWNpZGVJY29uKCdjbG91ZC1oYWlsJywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IENsb3VkSGFpbDtcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTYgMTYuMzI2QTcgNyAwIDEgMSAxNS43MSA4aDEuNzlhNC41IDQuNSAwIDAgMSAuNSA4Ljk3MycsIGtleTogJzFjZXo0NCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ20xMyAxMi0zIDVoNGwtMyA1Jywga2V5OiAnMXQyMmVyJyB9XSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBDbG91ZExpZ2h0bmluZ1xuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTmlBeE5pNHpNalpCTnlBM0lEQWdNU0F4SURFMUxqY3hJRGhvTVM0M09XRTBMalVnTkM0MUlEQWdNQ0F4SUM0MUlEZ3VPVGN6SWlBdlBnb2dJRHh3WVhSb0lHUTlJbTB4TXlBeE1pMHpJRFZvTkd3dE15QTFJaUF2UGdvOEwzTjJaejRLKSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9jbG91ZC1saWdodG5pbmdcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBDbG91ZExpZ2h0bmluZyA9IGNyZWF0ZUx1Y2lkZUljb24oJ2Nsb3VkLWxpZ2h0bmluZycsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBDbG91ZExpZ2h0bmluZztcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTEwLjE4OCA4LjVBNiA2IDAgMCAxIDE2IDRhMSAxIDAgMCAwIDYgNiA2IDYgMCAwIDEtMyA1LjE5NycsIGtleTogJ2VyajY3bicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xMSAyMHYyJywga2V5OiAnMTc0cXR6JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTMgMjBhNSA1IDAgMSAxIDguOS00SDEzYTMgMyAwIDAgMSAyIDUuMjQnLCBrZXk6ICcxcW1ycDMnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNNyAxOXYyJywga2V5OiAnMTJucGVzJyB9XSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBDbG91ZE1vb25SYWluXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NVEF1TVRnNElEZ3VOVUUySURZZ01DQXdJREVnTVRZZ05HRXhJREVnTUNBd0lEQWdOaUEySURZZ05pQXdJREFnTVMweklEVXVNVGszSWlBdlBnb2dJRHh3WVhSb0lHUTlJazB4TVNBeU1IWXlJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHpJREl3WVRVZ05TQXdJREVnTVNBNExqa3RORWd4TTJFeklETWdNQ0F3SURFZ01pQTFMakkwSWlBdlBnb2dJRHh3WVhSb0lHUTlJazAzSURFNWRqSWlJQzgrQ2p3dmMzWm5QZ289KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9jbG91ZC1tb29uLXJhaW5cbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBDbG91ZE1vb25SYWluID0gY3JlYXRlTHVjaWRlSWNvbignY2xvdWQtbW9vbi1yYWluJywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IENsb3VkTW9vblJhaW47XG4iLCJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ00xMC4xODggOC41QTYgNiAwIDAgMSAxNiA0YTEgMSAwIDAgMCA2IDYgNiA2IDAgMCAxLTMgNS4xOTcnLCBrZXk6ICdlcmo2N24nIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTMgMTZhMyAzIDAgMSAxIDAgNkg3YTUgNSAwIDEgMSA0LjktNlonLCBrZXk6ICdwNDRwYzknIH1dLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIENsb3VkTW9vblxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTVRBdU1UZzRJRGd1TlVFMklEWWdNQ0F3SURFZ01UWWdOR0V4SURFZ01DQXdJREFnTmlBMklEWWdOaUF3SURBZ01TMHpJRFV1TVRrM0lpQXZQZ29nSUR4d1lYUm9JR1E5SWsweE15QXhObUV6SURNZ01DQXhJREVnTUNBMlNEZGhOU0ExSURBZ01TQXhJRFF1T1MwMldpSWdMejRLUEM5emRtYytDZz09KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9jbG91ZC1tb29uXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgQ2xvdWRNb29uID0gY3JlYXRlTHVjaWRlSWNvbignY2xvdWQtbW9vbicsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBDbG91ZE1vb247XG4iLCJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ20yIDIgMjAgMjAnLCBrZXk6ICcxb29ld3knIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNNS43ODIgNS43ODJBNyA3IDAgMCAwIDkgMTloOC41YTQuNSA0LjUgMCAwIDAgMS4zMDctLjE5MycsIGtleTogJ3lmd2lmeScgfV0sXG4gIFtcbiAgICAncGF0aCcsXG4gICAgeyBkOiAnTTIxLjUzMiAxNi41QTQuNSA0LjUgMCAwIDAgMTcuNSAxMGgtMS43OUE3LjAwOCA3LjAwOCAwIDAgMCAxMCA1LjA3Jywga2V5OiAnamxmaXl2JyB9LFxuICBdLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIENsb3VkT2ZmXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSnRNaUF5SURJd0lESXdJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMDFMamM0TWlBMUxqYzRNa0UzSURjZ01DQXdJREFnT1NBeE9XZzRMalZoTkM0MUlEUXVOU0F3SURBZ01DQXhMak13TnkwdU1Ua3pJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHlNUzQxTXpJZ01UWXVOVUUwTGpVZ05DNDFJREFnTUNBd0lERTNMalVnTVRCb0xURXVOemxCTnk0d01EZ2dOeTR3TURnZ01DQXdJREFnTVRBZ05TNHdOeUlnTHo0S1BDOXpkbWMrQ2c9PSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvY2xvdWQtb2ZmXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgQ2xvdWRPZmYgPSBjcmVhdGVMdWNpZGVJY29uKCdjbG91ZC1vZmYnLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgQ2xvdWRPZmY7XG4iLCJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ000IDE0Ljg5OUE3IDcgMCAxIDEgMTUuNzEgOGgxLjc5YTQuNSA0LjUgMCAwIDEgMi41IDguMjQyJywga2V5OiAnMXBsam50JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTE2IDE0djYnLCBrZXk6ICcxajRlZnYnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNOCAxNHY2Jywga2V5OiAnMTdjNHI5JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTEyIDE2djYnLCBrZXk6ICdjOGE0Z2onIH1dLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIENsb3VkUmFpblxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTkNBeE5DNDRPVGxCTnlBM0lEQWdNU0F4SURFMUxqY3hJRGhvTVM0M09XRTBMalVnTkM0MUlEQWdNQ0F4SURJdU5TQTRMakkwTWlJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTVRZZ01UUjJOaUlnTHo0S0lDQThjR0YwYUNCa1BTSk5PQ0F4TkhZMklpQXZQZ29nSUR4d1lYUm9JR1E5SWsweE1pQXhOblkySWlBdlBnbzhMM04yWno0SykgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvY2xvdWQtcmFpblxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IENsb3VkUmFpbiA9IGNyZWF0ZUx1Y2lkZUljb24oJ2Nsb3VkLXJhaW4nLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgQ2xvdWRSYWluO1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdNNCAxNC44OTlBNyA3IDAgMSAxIDE1LjcxIDhoMS43OWE0LjUgNC41IDAgMCAxIDIuNSA4LjI0MicsIGtleTogJzFwbGpudCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ205LjIgMjIgMy03Jywga2V5OiAnc2I1ZjZqJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnbTkgMTMtMyA3Jywga2V5OiAnNTAwY281JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnbTE3IDEzLTMgNycsIGtleTogJzh0MmZpeScgfV0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgQ2xvdWRSYWluV2luZFxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTkNBeE5DNDRPVGxCTnlBM0lEQWdNU0F4SURFMUxqY3hJRGhvTVM0M09XRTBMalVnTkM0MUlEQWdNQ0F4SURJdU5TQTRMakkwTWlJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0p0T1M0eUlESXlJRE10TnlJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0p0T1NBeE15MHpJRGNpSUM4K0NpQWdQSEJoZEdnZ1pEMGliVEUzSURFekxUTWdOeUlnTHo0S1BDOXpkbWMrQ2c9PSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvY2xvdWQtcmFpbi13aW5kXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgQ2xvdWRSYWluV2luZCA9IGNyZWF0ZUx1Y2lkZUljb24oJ2Nsb3VkLXJhaW4td2luZCcsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBDbG91ZFJhaW5XaW5kO1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdNNCAxNC44OTlBNyA3IDAgMSAxIDE1LjcxIDhoMS43OWE0LjUgNC41IDAgMCAxIDIuNSA4LjI0MicsIGtleTogJzFwbGpudCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ004IDE1aC4wMScsIGtleTogJ2E3YXR6ZycgfV0sXG4gIFsncGF0aCcsIHsgZDogJ004IDE5aC4wMScsIGtleTogJ3B1eHR0cycgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xMiAxN2guMDEnLCBrZXk6ICdwMzJwMDUnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTIgMjFoLjAxJywga2V5OiAnaDM1dmJrJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTE2IDE1aC4wMScsIGtleTogJ3JuZnJkZicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xNiAxOWguMDEnLCBrZXk6ICcxdmNuenonIH1dLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIENsb3VkU25vd1xuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTkNBeE5DNDRPVGxCTnlBM0lEQWdNU0F4SURFMUxqY3hJRGhvTVM0M09XRTBMalVnTkM0MUlEQWdNQ0F4SURJdU5TQTRMakkwTWlJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOT0NBeE5XZ3VNREVpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVGdnTVRsb0xqQXhJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHhNaUF4TjJndU1ERWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRURXlJREl4YUM0d01TSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk1UWWdNVFZvTGpBeElpQXZQZ29nSUR4d1lYUm9JR1E5SWsweE5pQXhPV2d1TURFaUlDOCtDand2YzNablBnbz0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2Nsb3VkLXNub3dcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBDbG91ZFNub3cgPSBjcmVhdGVMdWNpZGVJY29uKCdjbG91ZC1zbm93JywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IENsb3VkU25vdztcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTEyIDJ2MicsIGtleTogJ3R1czAzbScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ200LjkzIDQuOTMgMS40MSAxLjQxJywga2V5OiAnMTQ5dDZqJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTIwIDEyaDInLCBrZXk6ICcxcThtancnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdtMTkuMDcgNC45My0xLjQxIDEuNDEnLCBrZXk6ICcxc2hsY3MnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTUuOTQ3IDEyLjY1YTQgNCAwIDAgMC01LjkyNS00LjEyOCcsIGtleTogJ2Rwd2RqMCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00zIDIwYTUgNSAwIDEgMSA4LjktNEgxM2EzIDMgMCAwIDEgMiA1LjI0Jywga2V5OiAnMXFtcnAzJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTExIDIwdjInLCBrZXk6ICcxNzRxdHonIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNNyAxOXYyJywga2V5OiAnMTJucGVzJyB9XSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBDbG91ZFN1blJhaW5cbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1USWdNbll5SWlBdlBnb2dJRHh3WVhSb0lHUTlJbTAwTGpreklEUXVPVE1nTVM0ME1TQXhMalF4SWlBdlBnb2dJRHh3WVhSb0lHUTlJazB5TUNBeE1tZ3lJaUF2UGdvZ0lEeHdZWFJvSUdROUltMHhPUzR3TnlBMExqa3pMVEV1TkRFZ01TNDBNU0lnTHo0S0lDQThjR0YwYUNCa1BTSk5NVFV1T1RRM0lERXlMalkxWVRRZ05DQXdJREFnTUMwMUxqa3lOUzAwTGpFeU9DSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk15QXlNR0UxSURVZ01DQXhJREVnT0M0NUxUUklNVE5oTXlBeklEQWdNQ0F4SURJZ05TNHlOQ0lnTHo0S0lDQThjR0YwYUNCa1BTSk5NVEVnTWpCMk1pSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk55QXhPWFl5SWlBdlBnbzhMM04yWno0SykgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvY2xvdWQtc3VuLXJhaW5cbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBDbG91ZFN1blJhaW4gPSBjcmVhdGVMdWNpZGVJY29uKCdjbG91ZC1zdW4tcmFpbicsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBDbG91ZFN1blJhaW47XG4iLCJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ00xMiAydjInLCBrZXk6ICd0dXMwM20nIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdtNC45MyA0LjkzIDEuNDEgMS40MScsIGtleTogJzE0OXQ2aicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00yMCAxMmgyJywga2V5OiAnMXE4bWp3JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnbTE5LjA3IDQuOTMtMS40MSAxLjQxJywga2V5OiAnMXNobGNzJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTE1Ljk0NyAxMi42NWE0IDQgMCAwIDAtNS45MjUtNC4xMjgnLCBrZXk6ICdkcHdkajAnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTMgMjJIN2E1IDUgMCAxIDEgNC45LTZIMTNhMyAzIDAgMCAxIDAgNlonLCBrZXk6ICdzMDltZzUnIH1dLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIENsb3VkU3VuXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NVElnTW5ZeUlpQXZQZ29nSUR4d1lYUm9JR1E5SW0wMExqa3pJRFF1T1RNZ01TNDBNU0F4TGpReElpQXZQZ29nSUR4d1lYUm9JR1E5SWsweU1DQXhNbWd5SWlBdlBnb2dJRHh3WVhSb0lHUTlJbTB4T1M0d055QTBMamt6TFRFdU5ERWdNUzQwTVNJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTVRVdU9UUTNJREV5TGpZMVlUUWdOQ0F3SURBZ01DMDFMamt5TlMwMExqRXlPQ0lnTHo0S0lDQThjR0YwYUNCa1BTSk5NVE1nTWpKSU4yRTFJRFVnTUNBeElERWdOQzQ1TFRaSU1UTmhNeUF6SURBZ01DQXhJREFnTmxvaUlDOCtDand2YzNablBnbz0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2Nsb3VkLXN1blxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IENsb3VkU3VuID0gY3JlYXRlTHVjaWRlSWNvbignY2xvdWQtc3VuJywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IENsb3VkU3VuO1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdNMTIgMTN2OCcsIGtleTogJzFsNXBxMCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ000IDE0Ljg5OUE3IDcgMCAxIDEgMTUuNzEgOGgxLjc5YTQuNSA0LjUgMCAwIDEgMi41IDguMjQyJywga2V5OiAnMXBsam50JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnbTggMTcgNC00IDQgNCcsIGtleTogJzFxdWFpMScgfV0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgQ2xvdWRVcGxvYWRcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1USWdNVE4yT0NJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTkNBeE5DNDRPVGxCTnlBM0lEQWdNU0F4SURFMUxqY3hJRGhvTVM0M09XRTBMalVnTkM0MUlEQWdNQ0F4SURJdU5TQTRMakkwTWlJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0p0T0NBeE55QTBMVFFnTkNBMElpQXZQZ284TDNOMlp6NEspIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2Nsb3VkLXVwbG9hZFxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IENsb3VkVXBsb2FkID0gY3JlYXRlTHVjaWRlSWNvbignY2xvdWQtdXBsb2FkJywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IENsb3VkVXBsb2FkO1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdNMTcuNSAxOUg5YTcgNyAwIDEgMSA2LjcxLTloMS43OWE0LjUgNC41IDAgMSAxIDAgOVonLCBrZXk6ICdwN3hqaXInIH1dLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIENsb3VkXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NVGN1TlNBeE9VZzVZVGNnTnlBd0lERWdNU0EyTGpjeExUbG9NUzQzT1dFMExqVWdOQzQxSURBZ01TQXhJREFnT1ZvaUlDOCtDand2YzNablBnbz0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2Nsb3VkXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgQ2xvdWQgPSBjcmVhdGVMdWNpZGVJY29uKCdjbG91ZCcsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBDbG91ZDtcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTE2LjE3IDcuODMgMiAyMicsIGtleTogJ3Q1OHZvOCcgfV0sXG4gIFtcbiAgICAncGF0aCcsXG4gICAge1xuICAgICAgZDogJ000LjAyIDEyYTIuODI3IDIuODI3IDAgMSAxIDMuODEtNC4xN0EyLjgyNyAyLjgyNyAwIDEgMSAxMiA0LjAyYTIuODI3IDIuODI3IDAgMSAxIDQuMTcgMy44MUEyLjgyNyAyLjgyNyAwIDEgMSAxOS45OCAxMmEyLjgyNyAyLjgyNyAwIDEgMS0zLjgxIDQuMTdBMi44MjcgMi44MjcgMCAxIDEgMTIgMTkuOThhMi44MjcgMi44MjcgMCAxIDEtNC4xNy0zLjgxQTEgMSAwIDEgMSA0IDEyJyxcbiAgICAgIGtleTogJzE3azM2cScsXG4gICAgfSxcbiAgXSxcbiAgWydwYXRoJywgeyBkOiAnbTcuODMgNy44MyA4LjM0IDguMzQnLCBrZXk6ICcxZDdzeGsnIH1dLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIENsb3ZlclxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTVRZdU1UY2dOeTQ0TXlBeUlESXlJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMDBMakF5SURFeVlUSXVPREkzSURJdU9ESTNJREFnTVNBeElETXVPREV0TkM0eE4wRXlMamd5TnlBeUxqZ3lOeUF3SURFZ01TQXhNaUEwTGpBeVlUSXVPREkzSURJdU9ESTNJREFnTVNBeElEUXVNVGNnTXk0NE1VRXlMamd5TnlBeUxqZ3lOeUF3SURFZ01TQXhPUzQ1T0NBeE1tRXlMamd5TnlBeUxqZ3lOeUF3SURFZ01TMHpMamd4SURRdU1UZEJNaTQ0TWpjZ01pNDRNamNnTUNBeElERWdNVElnTVRrdU9UaGhNaTQ0TWpjZ01pNDRNamNnTUNBeElERXROQzR4TnkwekxqZ3hRVEVnTVNBd0lERWdNU0EwSURFeUlpQXZQZ29nSUR4d1lYUm9JR1E5SW0wM0xqZ3pJRGN1T0RNZ09DNHpOQ0E0TGpNMElpQXZQZ284TDNOMlp6NEspIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2Nsb3ZlclxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IENsb3ZlciA9IGNyZWF0ZUx1Y2lkZUljb24oJ2Nsb3ZlcicsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBDbG92ZXI7XG4iLCJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ00xNy41IDIxSDlhNyA3IDAgMSAxIDYuNzEtOWgxLjc5YTQuNSA0LjUgMCAxIDEgMCA5WicsIGtleTogJ2dxcWp2YycgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00yMiAxMGEzIDMgMCAwIDAtMy0zaC0yLjIwN2E1LjUwMiA1LjUwMiAwIDAgMC0xMC43MDIuNScsIGtleTogJzFwMnM3NicgfV0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgQ2xvdWR5XG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NVGN1TlNBeU1VZzVZVGNnTnlBd0lERWdNU0EyTGpjeExUbG9NUzQzT1dFMExqVWdOQzQxSURBZ01TQXhJREFnT1ZvaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRJeUlERXdZVE1nTXlBd0lEQWdNQzB6TFROb0xUSXVNakEzWVRVdU5UQXlJRFV1TlRBeUlEQWdNQ0F3TFRFd0xqY3dNaTQxSWlBdlBnbzhMM04yWno0SykgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvY2xvdWR5XG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgQ2xvdWR5ID0gY3JlYXRlTHVjaWRlSWNvbignY2xvdWR5JywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IENsb3VkeTtcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgW1xuICAgICdwYXRoJyxcbiAgICB7XG4gICAgICBkOiAnTTE3LjI4IDkuMDVhNS41IDUuNSAwIDEgMC0xMC41NiAwQTUuNSA1LjUgMCAxIDAgMTIgMTcuNjZhNS41IDUuNSAwIDEgMCA1LjI4LTguNlonLFxuICAgICAga2V5OiAnMjd5dXF6JyxcbiAgICB9LFxuICBdLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTIgMTcuNjZMMTIgMjInLCBrZXk6ICdvZ2ZhaGYnIH1dLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIENsdWJcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1UY3VNamdnT1M0d05XRTFMalVnTlM0MUlEQWdNU0F3TFRFd0xqVTJJREJCTlM0MUlEVXVOU0F3SURFZ01DQXhNaUF4Tnk0Mk5tRTFMalVnTlM0MUlEQWdNU0F3SURVdU1qZ3RPQzQyV2lJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTVRJZ01UY3VOalpNTVRJZ01qSWlJQzgrQ2p3dmMzWm5QZ289KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9jbHViXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgQ2x1YiA9IGNyZWF0ZUx1Y2lkZUljb24oJ2NsdWInLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgQ2x1YjtcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnbTE4IDE2IDQtNC00LTQnLCBrZXk6ICcxaW5icXAnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdtNiA4LTQgNCA0IDQnLCBrZXk6ICcxNXpyZ3InIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdtMTQuNSA0LTUgMTYnLCBrZXk6ICdlN29pcm0nIH1dLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIENvZGVYbWxcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKdE1UZ2dNVFlnTkMwMExUUXROQ0lnTHo0S0lDQThjR0YwYUNCa1BTSnROaUE0TFRRZ05DQTBJRFFpSUM4K0NpQWdQSEJoZEdnZ1pEMGliVEUwTGpVZ05DMDFJREUySWlBdlBnbzhMM04yWno0SykgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvY29kZS14bWxcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBDb2RlWG1sID0gY3JlYXRlTHVjaWRlSWNvbignY29kZS14bWwnLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgQ29kZVhtbDtcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnbTE2IDE4IDYtNi02LTYnLCBrZXk6ICdlZzhqOCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ204IDYtNiA2IDYgNicsIGtleTogJ3BwZnQzbycgfV0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgQ29kZVxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0p0TVRZZ01UZ2dOaTAyTFRZdE5pSWdMejRLSUNBOGNHRjBhQ0JrUFNKdE9DQTJMVFlnTmlBMklEWWlJQzgrQ2p3dmMzWm5QZ289KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9jb2RlXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgQ29kZSA9IGNyZWF0ZUx1Y2lkZUljb24oJ2NvZGUnLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgQ29kZTtcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgWydwb2x5Z29uJywgeyBwb2ludHM6ICcxMiAyIDIyIDguNSAyMiAxNS41IDEyIDIyIDIgMTUuNSAyIDguNSAxMiAyJywga2V5OiAnc3J6YjM3JyB9XSxcbiAgWydsaW5lJywgeyB4MTogJzEyJywgeDI6ICcxMicsIHkxOiAnMjInLCB5MjogJzE1LjUnLCBrZXk6ICcxdDczZjInIH1dLFxuICBbJ3BvbHlsaW5lJywgeyBwb2ludHM6ICcyMiA4LjUgMTIgMTUuNSAyIDguNScsIGtleTogJ2FqbHhhZScgfV0sXG4gIFsncG9seWxpbmUnLCB7IHBvaW50czogJzIgMTUuNSAxMiA4LjUgMjIgMTUuNScsIGtleTogJ3N1c3J1aScgfV0sXG4gIFsnbGluZScsIHsgeDE6ICcxMicsIHgyOiAnMTInLCB5MTogJzInLCB5MjogJzguNScsIGtleTogJzJjbGRnYScgfV0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgQ29kZXBlblxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0c5c2VXZHZiaUJ3YjJsdWRITTlJakV5SURJZ01qSWdPQzQxSURJeUlERTFMalVnTVRJZ01qSWdNaUF4TlM0MUlESWdPQzQxSURFeUlESWlJQzgrQ2lBZ1BHeHBibVVnZURFOUlqRXlJaUI0TWowaU1USWlJSGt4UFNJeU1pSWdlVEk5SWpFMUxqVWlJQzgrQ2lBZ1BIQnZiSGxzYVc1bElIQnZhVzUwY3owaU1qSWdPQzQxSURFeUlERTFMalVnTWlBNExqVWlJQzgrQ2lBZ1BIQnZiSGxzYVc1bElIQnZhVzUwY3owaU1pQXhOUzQxSURFeUlEZ3VOU0F5TWlBeE5TNDFJaUF2UGdvZ0lEeHNhVzVsSUhneFBTSXhNaUlnZURJOUlqRXlJaUI1TVQwaU1pSWdlVEk5SWpndU5TSWdMejRLUEM5emRtYytDZz09KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9jb2RlcGVuXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICogQGRlcHJlY2F0ZWQgQnJhbmQgaWNvbnMgaGF2ZSBiZWVuIGRlcHJlY2F0ZWQgYW5kIGFyZSBkdWUgdG8gYmUgcmVtb3ZlZCwgcGxlYXNlIHJlZmVyIHRvIGh0dHBzOi8vZ2l0aHViLmNvbS9sdWNpZGUtaWNvbnMvbHVjaWRlL2lzc3Vlcy82NzAuIFdlIHJlY29tbWVuZCB1c2luZyBodHRwczovL3NpbXBsZWljb25zLm9yZy8/cT1jb2RlcGVuIGluc3RlYWQuIFRoaXMgaWNvbiB3aWxsIGJlIHJlbW92ZWQgaW4gdjEuMFxuICovXG5jb25zdCBDb2RlcGVuID0gY3JlYXRlTHVjaWRlSWNvbignY29kZXBlbicsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBDb2RlcGVuO1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbXG4gICAgJ3BhdGgnLFxuICAgIHtcbiAgICAgIGQ6ICdNMjEgMTZWOGEyIDIgMCAwIDAtMS0xLjczbC03LTRhMiAyIDAgMCAwLTIgMGwtNyA0QTIgMiAwIDAgMCAzIDh2OGEyIDIgMCAwIDAgMSAxLjczbDcgNGEyIDIgMCAwIDAgMiAwbDctNEEyIDIgMCAwIDAgMjEgMTZ6JyxcbiAgICAgIGtleTogJ3l0MGh4bicsXG4gICAgfSxcbiAgXSxcbiAgWydwb2x5bGluZScsIHsgcG9pbnRzOiAnNy41IDQuMjEgMTIgNi44MSAxNi41IDQuMjEnLCBrZXk6ICdmYWJvOTYnIH1dLFxuICBbJ3BvbHlsaW5lJywgeyBwb2ludHM6ICc3LjUgMTkuNzkgNy41IDE0LjYgMyAxMicsIGtleTogJ3ozNzdmMScgfV0sXG4gIFsncG9seWxpbmUnLCB7IHBvaW50czogJzIxIDEyIDE2LjUgMTQuNiAxNi41IDE5Ljc5Jywga2V5OiAnOW5yZXYxJyB9XSxcbiAgWydwb2x5bGluZScsIHsgcG9pbnRzOiAnMy4yNyA2Ljk2IDEyIDEyLjAxIDIwLjczIDYuOTYnLCBrZXk6ICcxMTgwcGEnIH1dLFxuICBbJ2xpbmUnLCB7IHgxOiAnMTInLCB4MjogJzEyJywgeTE6ICcyMi4wOCcsIHkyOiAnMTInLCBrZXk6ICczejN1cTYnIH1dLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIENvZGVzYW5kYm94XG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NakVnTVRaV09HRXlJRElnTUNBd0lEQXRNUzB4TGpjemJDMDNMVFJoTWlBeUlEQWdNQ0F3TFRJZ01Hd3ROeUEwUVRJZ01pQXdJREFnTUNBeklEaDJPR0V5SURJZ01DQXdJREFnTVNBeExqY3piRGNnTkdFeUlESWdNQ0F3SURBZ01pQXdiRGN0TkVFeUlESWdNQ0F3SURBZ01qRWdNVFo2SWlBdlBnb2dJRHh3YjJ4NWJHbHVaU0J3YjJsdWRITTlJamN1TlNBMExqSXhJREV5SURZdU9ERWdNVFl1TlNBMExqSXhJaUF2UGdvZ0lEeHdiMng1YkdsdVpTQndiMmx1ZEhNOUlqY3VOU0F4T1M0M09TQTNMalVnTVRRdU5pQXpJREV5SWlBdlBnb2dJRHh3YjJ4NWJHbHVaU0J3YjJsdWRITTlJakl4SURFeUlERTJMalVnTVRRdU5pQXhOaTQxSURFNUxqYzVJaUF2UGdvZ0lEeHdiMng1YkdsdVpTQndiMmx1ZEhNOUlqTXVNamNnTmk0NU5pQXhNaUF4TWk0d01TQXlNQzQzTXlBMkxqazJJaUF2UGdvZ0lEeHNhVzVsSUhneFBTSXhNaUlnZURJOUlqRXlJaUI1TVQwaU1qSXVNRGdpSUhreVBTSXhNaUlnTHo0S1BDOXpkbWMrQ2c9PSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvY29kZXNhbmRib3hcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKiBAZGVwcmVjYXRlZCBCcmFuZCBpY29ucyBoYXZlIGJlZW4gZGVwcmVjYXRlZCBhbmQgYXJlIGR1ZSB0byBiZSByZW1vdmVkLCBwbGVhc2UgcmVmZXIgdG8gaHR0cHM6Ly9naXRodWIuY29tL2x1Y2lkZS1pY29ucy9sdWNpZGUvaXNzdWVzLzY3MC4gV2UgcmVjb21tZW5kIHVzaW5nIGh0dHBzOi8vc2ltcGxlaWNvbnMub3JnLz9xPWNvZGVzYW5kYm94IGluc3RlYWQuIFRoaXMgaWNvbiB3aWxsIGJlIHJlbW92ZWQgaW4gdjEuMFxuICovXG5jb25zdCBDb2Rlc2FuZGJveCA9IGNyZWF0ZUx1Y2lkZUljb24oJ2NvZGVzYW5kYm94JywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IENvZGVzYW5kYm94O1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdNMTAgMnYyJywga2V5OiAnN3UwcWRjJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTE0IDJ2MicsIGtleTogJzZidXcwNCcgfV0sXG4gIFtcbiAgICAncGF0aCcsXG4gICAge1xuICAgICAgZDogJ00xNiA4YTEgMSAwIDAgMSAxIDF2OGE0IDQgMCAwIDEtNCA0SDdhNCA0IDAgMCAxLTQtNFY5YTEgMSAwIDAgMSAxLTFoMTRhNCA0IDAgMSAxIDAgOGgtMScsXG4gICAgICBrZXk6ICdwd2FkdGknLFxuICAgIH0sXG4gIF0sXG4gIFsncGF0aCcsIHsgZDogJ002IDJ2MicsIGtleTogJ2NvbHpzbicgfV0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgQ29mZmVlXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NVEFnTW5ZeUlpQXZQZ29nSUR4d1lYUm9JR1E5SWsweE5DQXlkaklpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVEUySURoaE1TQXhJREFnTUNBeElERWdNWFk0WVRRZ05DQXdJREFnTVMwMElEUklOMkUwSURRZ01DQXdJREV0TkMwMFZqbGhNU0F4SURBZ01DQXhJREV0TVdneE5HRTBJRFFnTUNBeElERWdNQ0E0YUMweElpQXZQZ29nSUR4d1lYUm9JR1E5SWswMklESjJNaUlnTHo0S1BDOXpkbWMrQ2c9PSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvY29mZmVlXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgQ29mZmVlID0gY3JlYXRlTHVjaWRlSWNvbignY29mZmVlJywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IENvZmZlZTtcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTEyIDIwYTggOCAwIDEgMCAwLTE2IDggOCAwIDAgMCAwIDE2WicsIGtleTogJ3NvYnZ6NScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xMiAxNGEyIDIgMCAxIDAgMC00IDIgMiAwIDAgMCAwIDRaJywga2V5OiAnMTFpNDk2JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTEyIDJ2MicsIGtleTogJ3R1czAzbScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xMiAyMnYtMicsIGtleTogJzFvc2RjcScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ20xNyAyMC42Ni0xLTEuNzMnLCBrZXk6ICdlcTNvcmInIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTEgMTAuMjcgNyAzLjM0Jywga2V5OiAnMTZwZjloJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnbTIwLjY2IDE3LTEuNzMtMScsIGtleTogJ3NnMHY2ZicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ20zLjM0IDcgMS43MyAxJywga2V5OiAnMXVsb25kJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTE0IDEyaDgnLCBrZXk6ICc0ZjQzaTknIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMiAxMmgyJywga2V5OiAnMXQ4ZjhuJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnbTIwLjY2IDctMS43MyAxJywga2V5OiAnMW93MDVuJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnbTMuMzQgMTcgMS43My0xJywga2V5OiAnbnVrNzY0JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnbTE3IDMuMzQtMSAxLjczJywga2V5OiAnMndlbDhzJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnbTExIDEzLjczLTQgNi45MycsIGtleTogJzc5NHR0ZycgfV0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgQ29nXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NVElnTWpCaE9DQTRJREFnTVNBd0lEQXRNVFlnT0NBNElEQWdNQ0F3SURBZ01UWmFJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHhNaUF4TkdFeUlESWdNQ0F4SURBZ01DMDBJRElnTWlBd0lEQWdNQ0F3SURSYUlpQXZQZ29nSUR4d1lYUm9JR1E5SWsweE1pQXlkaklpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVEV5SURJeWRpMHlJaUF2UGdvZ0lEeHdZWFJvSUdROUltMHhOeUF5TUM0Mk5pMHhMVEV1TnpNaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRFeElERXdMakkzSURjZ015NHpOQ0lnTHo0S0lDQThjR0YwYUNCa1BTSnRNakF1TmpZZ01UY3RNUzQzTXkweElpQXZQZ29nSUR4d1lYUm9JR1E5SW0wekxqTTBJRGNnTVM0M015QXhJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHhOQ0F4TW1nNElpQXZQZ29nSUR4d1lYUm9JR1E5SWsweUlERXlhRElpSUM4K0NpQWdQSEJoZEdnZ1pEMGliVEl3TGpZMklEY3RNUzQzTXlBeElpQXZQZ29nSUR4d1lYUm9JR1E5SW0wekxqTTBJREUzSURFdU56TXRNU0lnTHo0S0lDQThjR0YwYUNCa1BTSnRNVGNnTXk0ek5DMHhJREV1TnpNaUlDOCtDaUFnUEhCaGRHZ2daRDBpYlRFeElERXpMamN6TFRRZ05pNDVNeUlnTHo0S1BDOXpkbWMrQ2c9PSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvY29nXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgQ29nID0gY3JlYXRlTHVjaWRlSWNvbignY29nJywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IENvZztcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgWydjaXJjbGUnLCB7IGN4OiAnOCcsIGN5OiAnOCcsIHI6ICc2Jywga2V5OiAnM3lnbHdrJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTE4LjA5IDEwLjM3QTYgNiAwIDEgMSAxMC4zNCAxOCcsIGtleTogJ3Q1czZybScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ003IDZoMXY0Jywga2V5OiAnMW9iZWs0JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnbTE2LjcxIDEzLjg4LjcuNzEtMi44MiAyLjgyJywga2V5OiAnMXJidXloJyB9XSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBDb2luc1xuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4WTJseVkyeGxJR040UFNJNElpQmplVDBpT0NJZ2NqMGlOaUlnTHo0S0lDQThjR0YwYUNCa1BTSk5NVGd1TURrZ01UQXVNemRCTmlBMklEQWdNU0F4SURFd0xqTTBJREU0SWlBdlBnb2dJRHh3WVhSb0lHUTlJazAzSURab01YWTBJaUF2UGdvZ0lEeHdZWFJvSUdROUltMHhOaTQzTVNBeE15NDRPQzQzTGpjeExUSXVPRElnTWk0NE1pSWdMejRLUEM5emRtYytDZz09KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9jb2luc1xuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IENvaW5zID0gY3JlYXRlTHVjaWRlSWNvbignY29pbnMnLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgQ29pbnM7XG4iLCJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbXG4gIFsncmVjdCcsIHsgd2lkdGg6ICcxOCcsIGhlaWdodDogJzE4JywgeDogJzMnLCB5OiAnMycsIHJ4OiAnMicsIGtleTogJ2FmaXR2NycgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xMiAzdjE4Jywga2V5OiAnMTA4eGgzJyB9XSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBDb2x1bW5zMlxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y21WamRDQjNhV1IwYUQwaU1UZ2lJR2hsYVdkb2REMGlNVGdpSUhnOUlqTWlJSGs5SWpNaUlISjRQU0l5SWlBdlBnb2dJRHh3WVhSb0lHUTlJazB4TWlBemRqRTRJaUF2UGdvOEwzTjJaejRLKSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9jb2x1bW5zLTJcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBDb2x1bW5zMiA9IGNyZWF0ZUx1Y2lkZUljb24oJ2NvbHVtbnMtMicsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBDb2x1bW5zMjtcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTEwLjUgMjFINWEyIDIgMCAwIDEtMi0yVjVhMiAyIDAgMCAxIDItMmgxNGEyIDIgMCAwIDEgMiAydjUuNScsIGtleTogJzFnMnl6cycgfV0sXG4gIFsncGF0aCcsIHsgZDogJ20xNC4zIDE5LjYgMS0uNCcsIGtleTogJzExc3Y5cicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xNSAzdjcuNScsIGtleTogJzdsbTUwYScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ20xNS4yIDE2LjktLjktLjMnLCBrZXk6ICcxdDdtdngnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdtMTYuNiAyMS43LjMtLjknLCBrZXk6ICcxajY3cHMnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdtMTYuOCAxNS4zLS40LTEnLCBrZXk6ICcxZWk3cjYnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdtMTkuMSAxNS4yLjMtLjknLCBrZXk6ICcxOHI3anAnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdtMTkuNiAyMS43LS40LTEnLCBrZXk6ICd6MnZoMicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ20yMC43IDE2LjggMS0uNCcsIGtleTogJzE5bTg3YScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ20yMS43IDE5LjQtLjktLjMnLCBrZXk6ICcxcWd3aTknIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNOSAzdjE4Jywga2V5OiAnZmgzaHFhJyB9XSxcbiAgWydjaXJjbGUnLCB7IGN4OiAnMTgnLCBjeTogJzE4JywgcjogJzMnLCBrZXk6ICcxeGt3dDAnIH1dLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIENvbHVtbnMzQ29nXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NVEF1TlNBeU1VZzFZVElnTWlBd0lEQWdNUzB5TFRKV05XRXlJRElnTUNBd0lERWdNaTB5YURFMFlUSWdNaUF3SURBZ01TQXlJREoyTlM0MUlpQXZQZ29nSUR4d1lYUm9JR1E5SW0weE5DNHpJREU1TGpZZ01TMHVOQ0lnTHo0S0lDQThjR0YwYUNCa1BTSk5NVFVnTTNZM0xqVWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaWJURTFMaklnTVRZdU9TMHVPUzB1TXlJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0p0TVRZdU5pQXlNUzQzTGpNdExqa2lJQzgrQ2lBZ1BIQmhkR2dnWkQwaWJURTJMamdnTVRVdU15MHVOQzB4SWlBdlBnb2dJRHh3WVhSb0lHUTlJbTB4T1M0eElERTFMakl1TXkwdU9TSWdMejRLSUNBOGNHRjBhQ0JrUFNKdE1Ua3VOaUF5TVM0M0xTNDBMVEVpSUM4K0NpQWdQSEJoZEdnZ1pEMGliVEl3TGpjZ01UWXVPQ0F4TFM0MElpQXZQZ29nSUR4d1lYUm9JR1E5SW0weU1TNDNJREU1TGpRdExqa3RMak1pSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVGtnTTNZeE9DSWdMejRLSUNBOFkybHlZMnhsSUdONFBTSXhPQ0lnWTNrOUlqRTRJaUJ5UFNJeklpQXZQZ284TDNOMlp6ND0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2NvbHVtbnMtMy1jb2dcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBDb2x1bW5zM0NvZyA9IGNyZWF0ZUx1Y2lkZUljb24oJ2NvbHVtbnMtMy1jb2cnLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgQ29sdW1uczNDb2c7XG4iLCJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbXG4gIFsncmVjdCcsIHsgd2lkdGg6ICcxOCcsIGhlaWdodDogJzE4JywgeDogJzMnLCB5OiAnMycsIHJ4OiAnMicsIGtleTogJ2FmaXR2NycgfV0sXG4gIFsncGF0aCcsIHsgZDogJ005IDN2MTgnLCBrZXk6ICdmaDNocWEnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTUgM3YxOCcsIGtleTogJzE0bnZwMCcgfV0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgQ29sdW1uczNcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNtVmpkQ0IzYVdSMGFEMGlNVGdpSUdobGFXZG9kRDBpTVRnaUlIZzlJak1pSUhrOUlqTWlJSEo0UFNJeUlpQXZQZ29nSUR4d1lYUm9JR1E5SWswNUlETjJNVGdpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVEUxSUROMk1UZ2lJQzgrQ2p3dmMzWm5QZ289KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9jb2x1bW5zLTNcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBDb2x1bW5zMyA9IGNyZWF0ZUx1Y2lkZUljb24oJ2NvbHVtbnMtMycsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBDb2x1bW5zMztcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgWydyZWN0JywgeyB3aWR0aDogJzE4JywgaGVpZ2h0OiAnMTgnLCB4OiAnMycsIHk6ICczJywgcng6ICcyJywga2V5OiAnYWZpdHY3JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTcuNSAzdjE4Jywga2V5OiAndzB3bzZ2JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTEyIDN2MTgnLCBrZXk6ICcxMDh4aDMnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTYuNSAzdjE4Jywga2V5OiAnMTB0amgxJyB9XSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBDb2x1bW5zNFxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y21WamRDQjNhV1IwYUQwaU1UZ2lJR2hsYVdkb2REMGlNVGdpSUhnOUlqTWlJSGs5SWpNaUlISjRQU0l5SWlBdlBnb2dJRHh3WVhSb0lHUTlJazAzTGpVZ00zWXhPQ0lnTHo0S0lDQThjR0YwYUNCa1BTSk5NVElnTTNZeE9DSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk1UWXVOU0F6ZGpFNElpQXZQZ284TDNOMlp6NEspIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2NvbHVtbnMtNFxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IENvbHVtbnM0ID0gY3JlYXRlTHVjaWRlSWNvbignY29sdW1ucy00JywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IENvbHVtbnM0O1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdNMTAgMThINWEzIDMgMCAwIDEtMy0zdi0xJywga2V5OiAncnU2NWc4JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTE0IDJhMiAyIDAgMCAxIDIgMnY0YTIgMiAwIDAgMS0yIDInLCBrZXk6ICdlMzBlZW4nIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMjAgMmEyIDIgMCAwIDEgMiAydjRhMiAyIDAgMCAxLTIgMicsIGtleTogJzJhaHg4bycgfV0sXG4gIFsncGF0aCcsIHsgZDogJ203IDIxIDMtMy0zLTMnLCBrZXk6ICcxMjdjdjInIH1dLFxuICBbJ3JlY3QnLCB7IHg6ICcxNCcsIHk6ICcxNCcsIHdpZHRoOiAnOCcsIGhlaWdodDogJzgnLCByeDogJzInLCBrZXk6ICcxYjBic28nIH1dLFxuICBbJ3JlY3QnLCB7IHg6ICcyJywgeTogJzInLCB3aWR0aDogJzgnLCBoZWlnaHQ6ICc4Jywgcng6ICcyJywga2V5OiAnMXgwOXZsJyB9XSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBDb21iaW5lXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NVEFnTVRoSU5XRXpJRE1nTUNBd0lERXRNeTB6ZGkweElpQXZQZ29nSUR4d1lYUm9JR1E5SWsweE5DQXlZVElnTWlBd0lEQWdNU0F5SURKMk5HRXlJRElnTUNBd0lERXRNaUF5SWlBdlBnb2dJRHh3WVhSb0lHUTlJazB5TUNBeVlUSWdNaUF3SURBZ01TQXlJREoyTkdFeUlESWdNQ0F3SURFdE1pQXlJaUF2UGdvZ0lEeHdZWFJvSUdROUltMDNJREl4SURNdE15MHpMVE1pSUM4K0NpQWdQSEpsWTNRZ2VEMGlNVFFpSUhrOUlqRTBJaUIzYVdSMGFEMGlPQ0lnYUdWcFoyaDBQU0k0SWlCeWVEMGlNaUlnTHo0S0lDQThjbVZqZENCNFBTSXlJaUI1UFNJeUlpQjNhV1IwYUQwaU9DSWdhR1ZwWjJoMFBTSTRJaUJ5ZUQwaU1pSWdMejRLUEM5emRtYytDZz09KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9jb21iaW5lXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgQ29tYmluZSA9IGNyZWF0ZUx1Y2lkZUljb24oJ2NvbWJpbmUnLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgQ29tYmluZTtcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgW1xuICAgICdwYXRoJyxcbiAgICB7IGQ6ICdNMTUgNnYxMmEzIDMgMCAxIDAgMy0zSDZhMyAzIDAgMSAwIDMgM1Y2YTMgMyAwIDEgMC0zIDNoMTJhMyAzIDAgMSAwLTMtMycsIGtleTogJzExYmZlaicgfSxcbiAgXSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBDb21tYW5kXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NVFVnTm5ZeE1tRXpJRE1nTUNBeElEQWdNeTB6U0RaaE15QXpJREFnTVNBd0lETWdNMVkyWVRNZ015QXdJREVnTUMweklETm9NVEpoTXlBeklEQWdNU0F3TFRNdE15SWdMejRLUEM5emRtYytDZz09KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9jb21tYW5kXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgQ29tbWFuZCA9IGNyZWF0ZUx1Y2lkZUljb24oJ2NvbW1hbmQnLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgQ29tbWFuZDtcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgW1xuICAgICdwYXRoJyxcbiAgICB7XG4gICAgICBkOiAnbTE2LjI0IDcuNzYtMS44MDQgNS40MTFhMiAyIDAgMCAxLTEuMjY1IDEuMjY1TDcuNzYgMTYuMjRsMS44MDQtNS40MTFhMiAyIDAgMCAxIDEuMjY1LTEuMjY1eicsXG4gICAgICBrZXk6ICc5a3RwZjEnLFxuICAgIH0sXG4gIF0sXG4gIFsnY2lyY2xlJywgeyBjeDogJzEyJywgY3k6ICcxMicsIHI6ICcxMCcsIGtleTogJzFtZ2xheScgfV0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgQ29tcGFzc1xuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0p0TVRZdU1qUWdOeTQzTmkweExqZ3dOQ0ExTGpReE1XRXlJRElnTUNBd0lERXRNUzR5TmpVZ01TNHlOalZNTnk0M05pQXhOaTR5Tkd3eExqZ3dOQzAxTGpReE1XRXlJRElnTUNBd0lERWdNUzR5TmpVdE1TNHlOalY2SWlBdlBnb2dJRHhqYVhKamJHVWdZM2c5SWpFeUlpQmplVDBpTVRJaUlISTlJakV3SWlBdlBnbzhMM04yWno0SykgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvY29tcGFzc1xuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IENvbXBhc3MgPSBjcmVhdGVMdWNpZGVJY29uKCdjb21wYXNzJywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IENvbXBhc3M7XG4iLCJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbXG4gIFtcbiAgICAncGF0aCcsXG4gICAge1xuICAgICAgZDogJ00xNS41MzYgMTEuMjkzYTEgMSAwIDAgMCAwIDEuNDE0bDIuMzc2IDIuMzc3YTEgMSAwIDAgMCAxLjQxNCAwbDIuMzc3LTIuMzc3YTEgMSAwIDAgMCAwLTEuNDE0bC0yLjM3Ny0yLjM3N2ExIDEgMCAwIDAtMS40MTQgMHonLFxuICAgICAga2V5OiAnMXV3bHQ0JyxcbiAgICB9LFxuICBdLFxuICBbXG4gICAgJ3BhdGgnLFxuICAgIHtcbiAgICAgIGQ6ICdNMi4yOTcgMTEuMjkzYTEgMSAwIDAgMCAwIDEuNDE0bDIuMzc3IDIuMzc3YTEgMSAwIDAgMCAxLjQxNCAwbDIuMzc3LTIuMzc3YTEgMSAwIDAgMCAwLTEuNDE0TDYuMDg4IDguOTE2YTEgMSAwIDAgMC0xLjQxNCAweicsXG4gICAgICBrZXk6ICcxMDI5MW0nLFxuICAgIH0sXG4gIF0sXG4gIFtcbiAgICAncGF0aCcsXG4gICAge1xuICAgICAgZDogJ004LjkxNiAxNy45MTJhMSAxIDAgMCAwIDAgMS40MTVsMi4zNzcgMi4zNzZhMSAxIDAgMCAwIDEuNDE0IDBsMi4zNzctMi4zNzZhMSAxIDAgMCAwIDAtMS40MTVsLTIuMzc3LTIuMzc2YTEgMSAwIDAgMC0xLjQxNCAweicsXG4gICAgICBrZXk6ICcxdHFvcTEnLFxuICAgIH0sXG4gIF0sXG4gIFtcbiAgICAncGF0aCcsXG4gICAge1xuICAgICAgZDogJ004LjkxNiA0LjY3NGExIDEgMCAwIDAgMCAxLjQxNGwyLjM3NyAyLjM3NmExIDEgMCAwIDAgMS40MTQgMGwyLjM3Ny0yLjM3NmExIDEgMCAwIDAgMC0xLjQxNGwtMi4zNzctMi4zNzdhMSAxIDAgMCAwLTEuNDE0IDB6JyxcbiAgICAgIGtleTogJzF4Nmx0bycsXG4gICAgfSxcbiAgXSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBDb21wb25lbnRcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1UVXVOVE0ySURFeExqSTVNMkV4SURFZ01DQXdJREFnTUNBeExqUXhOR3d5TGpNM05pQXlMak0zTjJFeElERWdNQ0F3SURBZ01TNDBNVFFnTUd3eUxqTTNOeTB5TGpNM04yRXhJREVnTUNBd0lEQWdNQzB4TGpReE5Hd3RNaTR6TnpjdE1pNHpOemRoTVNBeElEQWdNQ0F3TFRFdU5ERTBJREI2SWlBdlBnb2dJRHh3WVhSb0lHUTlJazB5TGpJNU55QXhNUzR5T1ROaE1TQXhJREFnTUNBd0lEQWdNUzQwTVRSc01pNHpOemNnTWk0ek56ZGhNU0F4SURBZ01DQXdJREV1TkRFMElEQnNNaTR6TnpjdE1pNHpOemRoTVNBeElEQWdNQ0F3SURBdE1TNDBNVFJNTmk0d09EZ2dPQzQ1TVRaaE1TQXhJREFnTUNBd0xURXVOREUwSURCNklpQXZQZ29nSUR4d1lYUm9JR1E5SWswNExqa3hOaUF4Tnk0NU1USmhNU0F4SURBZ01DQXdJREFnTVM0ME1UVnNNaTR6TnpjZ01pNHpOelpoTVNBeElEQWdNQ0F3SURFdU5ERTBJREJzTWk0ek56Y3RNaTR6TnpaaE1TQXhJREFnTUNBd0lEQXRNUzQwTVRWc0xUSXVNemMzTFRJdU16YzJZVEVnTVNBd0lEQWdNQzB4TGpReE5DQXdlaUlnTHo0S0lDQThjR0YwYUNCa1BTSk5PQzQ1TVRZZ05DNDJOelJoTVNBeElEQWdNQ0F3SURBZ01TNDBNVFJzTWk0ek56Y2dNaTR6TnpaaE1TQXhJREFnTUNBd0lERXVOREUwSURCc01pNHpOemN0TWk0ek56WmhNU0F4SURBZ01DQXdJREF0TVM0ME1UUnNMVEl1TXpjM0xUSXVNemMzWVRFZ01TQXdJREFnTUMweExqUXhOQ0F3ZWlJZ0x6NEtQQzl6ZG1jK0NnPT0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2NvbXBvbmVudFxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IENvbXBvbmVudCA9IGNyZWF0ZUx1Y2lkZUljb24oJ2NvbXBvbmVudCcsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBDb21wb25lbnQ7XG4iLCJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbXG4gIFsncmVjdCcsIHsgd2lkdGg6ICcxNCcsIGhlaWdodDogJzgnLCB4OiAnNScsIHk6ICcyJywgcng6ICcyJywga2V5OiAnd2M5dGZ0JyB9XSxcbiAgWydyZWN0JywgeyB3aWR0aDogJzIwJywgaGVpZ2h0OiAnOCcsIHg6ICcyJywgeTogJzE0Jywgcng6ICcyJywga2V5OiAndzY4dTNpJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTYgMThoMicsIGtleTogJ3J3bWs5ZScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xMiAxOGg2Jywga2V5OiAnYXFkOHczJyB9XSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBDb21wdXRlclxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y21WamRDQjNhV1IwYUQwaU1UUWlJR2hsYVdkb2REMGlPQ0lnZUQwaU5TSWdlVDBpTWlJZ2NuZzlJaklpSUM4K0NpQWdQSEpsWTNRZ2QybGtkR2c5SWpJd0lpQm9aV2xuYUhROUlqZ2lJSGc5SWpJaUlIazlJakUwSWlCeWVEMGlNaUlnTHo0S0lDQThjR0YwYUNCa1BTSk5OaUF4T0dneUlpQXZQZ29nSUR4d1lYUm9JR1E5SWsweE1pQXhPR2cySWlBdlBnbzhMM04yWno0SykgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvY29tcHV0ZXJcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBDb21wdXRlciA9IGNyZWF0ZUx1Y2lkZUljb24oJ2NvbXB1dGVyJywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IENvbXB1dGVyO1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbXG4gICAgJ3BhdGgnLFxuICAgIHsgZDogJ00zIDIwYTEgMSAwIDAgMS0xLTF2LTFhMiAyIDAgMCAxIDItMmgxNmEyIDIgMCAwIDEgMiAydjFhMSAxIDAgMCAxLTEgMVonLCBrZXk6ICcxcHZyMXInIH0sXG4gIF0sXG4gIFsncGF0aCcsIHsgZDogJ00yMCAxNmE4IDggMCAxIDAtMTYgMCcsIGtleTogJzFwYTU0MycgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xMiA0djQnLCBrZXk6ICcxYnEwM3knIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTAgNGg0Jywga2V5OiAnMXhwdjlzJyB9XSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBDb25jaWVyZ2VCZWxsXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NeUF5TUdFeElERWdNQ0F3SURFdE1TMHhkaTB4WVRJZ01pQXdJREFnTVNBeUxUSm9NVFpoTWlBeUlEQWdNQ0F4SURJZ01uWXhZVEVnTVNBd0lEQWdNUzB4SURGYUlpQXZQZ29nSUR4d1lYUm9JR1E5SWsweU1DQXhObUU0SURnZ01DQXhJREF0TVRZZ01DSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk1USWdOSFkwSWlBdlBnb2dJRHh3WVhSb0lHUTlJazB4TUNBMGFEUWlJQzgrQ2p3dmMzWm5QZ289KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9jb25jaWVyZ2UtYmVsbFxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IENvbmNpZXJnZUJlbGwgPSBjcmVhdGVMdWNpZGVJY29uKCdjb25jaWVyZ2UtYmVsbCcsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBDb25jaWVyZ2VCZWxsO1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdtMjAuOSAxOC41NS04LTE1Ljk4YTEgMSAwIDAgMC0xLjggMGwtOCAxNS45OCcsIGtleTogJzUzcHRlNycgfV0sXG4gIFsnZWxsaXBzZScsIHsgY3g6ICcxMicsIGN5OiAnMTknLCByeDogJzknLCByeTogJzMnLCBrZXk6ICcxamkyNWYnIH1dLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIENvbmVcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKdE1qQXVPU0F4T0M0MU5TMDRMVEUxTGprNFlURWdNU0F3SURBZ01DMHhMamdnTUd3dE9DQXhOUzQ1T0NJZ0x6NEtJQ0E4Wld4c2FYQnpaU0JqZUQwaU1USWlJR041UFNJeE9TSWdjbmc5SWpraUlISjVQU0l6SWlBdlBnbzhMM04yWno0SykgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvY29uZVxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IENvbmUgPSBjcmVhdGVMdWNpZGVJY29uKCdjb25lJywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IENvbmU7XG4iLCJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbXG4gIFsncmVjdCcsIHsgeDogJzInLCB5OiAnNicsIHdpZHRoOiAnMjAnLCBoZWlnaHQ6ICc4Jywgcng6ICcxJywga2V5OiAnMWVzdGliJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTE3IDE0djcnLCBrZXk6ICc3bTJlbHgnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNNyAxNHY3Jywga2V5OiAnMWNtN3d2JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTE3IDN2MycsIGtleTogJzF2NGp3bicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ003IDN2MycsIGtleTogJzdvNmd1dScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xMCAxNCAyLjMgNi4zJywga2V5OiAnMTAyM2prJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnbTE0IDYgNy43IDcuNycsIGtleTogJzFzOHBsMicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ204IDYgOCA4Jywga2V5OiAnaGw5NnFoJyB9XSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBDb25zdHJ1Y3Rpb25cbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNtVmpkQ0I0UFNJeUlpQjVQU0kySWlCM2FXUjBhRDBpTWpBaUlHaGxhV2RvZEQwaU9DSWdjbmc5SWpFaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRFM0lERTBkamNpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVGNnTVRSMk55SWdMejRLSUNBOGNHRjBhQ0JrUFNKTk1UY2dNM1l6SWlBdlBnb2dJRHh3WVhSb0lHUTlJazAzSUROMk15SWdMejRLSUNBOGNHRjBhQ0JrUFNKTk1UQWdNVFFnTWk0eklEWXVNeUlnTHo0S0lDQThjR0YwYUNCa1BTSnRNVFFnTmlBM0xqY2dOeTQzSWlBdlBnb2dJRHh3WVhSb0lHUTlJbTA0SURZZ09DQTRJaUF2UGdvOEwzTjJaejRLKSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9jb25zdHJ1Y3Rpb25cbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBDb25zdHJ1Y3Rpb24gPSBjcmVhdGVMdWNpZGVJY29uKCdjb25zdHJ1Y3Rpb24nLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgQ29uc3RydWN0aW9uO1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdNMTYgMnYyJywga2V5OiAnc2NtNXFlJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTE3LjkxNSAyMmE2IDYgMCAwIDAtMTIgMCcsIGtleTogJ3N1cXo5cCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ004IDJ2MicsIGtleTogJ3Bia214JyB9XSxcbiAgWydjaXJjbGUnLCB7IGN4OiAnMTInLCBjeTogJzEyJywgcjogJzQnLCBrZXk6ICc0ZXhpcDInIH1dLFxuICBbJ3JlY3QnLCB7IHg6ICczJywgeTogJzQnLCB3aWR0aDogJzE4JywgaGVpZ2h0OiAnMTgnLCByeDogJzInLCBrZXk6ICcxMnZpbnAnIH1dLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIENvbnRhY3RSb3VuZFxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTVRZZ01uWXlJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHhOeTQ1TVRVZ01qSmhOaUEySURBZ01DQXdMVEV5SURBaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRnZ01uWXlJaUF2UGdvZ0lEeGphWEpqYkdVZ1kzZzlJakV5SWlCamVUMGlNVElpSUhJOUlqUWlJQzgrQ2lBZ1BISmxZM1FnZUQwaU15SWdlVDBpTkNJZ2QybGtkR2c5SWpFNElpQm9aV2xuYUhROUlqRTRJaUJ5ZUQwaU1pSWdMejRLUEM5emRtYytDZz09KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9jb250YWN0LXJvdW5kXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgQ29udGFjdFJvdW5kID0gY3JlYXRlTHVjaWRlSWNvbignY29udGFjdC1yb3VuZCcsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBDb250YWN0Um91bmQ7XG4iLCJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ00xNiAydjInLCBrZXk6ICdzY201cWUnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNNyAyMnYtMmEyIDIgMCAwIDEgMi0yaDZhMiAyIDAgMCAxIDIgMnYyJywga2V5OiAnMXdhaHQzJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTggMnYyJywga2V5OiAncGJrbXgnIH1dLFxuICBbJ2NpcmNsZScsIHsgY3g6ICcxMicsIGN5OiAnMTEnLCByOiAnMycsIGtleTogJ2l0dTU3bScgfV0sXG4gIFsncmVjdCcsIHsgeDogJzMnLCB5OiAnNCcsIHdpZHRoOiAnMTgnLCBoZWlnaHQ6ICcxOCcsIHJ4OiAnMicsIGtleTogJzEydmlucCcgfV0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgQ29udGFjdFxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTVRZZ01uWXlJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMDNJREl5ZGkweVlUSWdNaUF3SURBZ01TQXlMVEpvTm1FeUlESWdNQ0F3SURFZ01pQXlkaklpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVGdnTW5ZeUlpQXZQZ29nSUR4amFYSmpiR1VnWTNnOUlqRXlJaUJqZVQwaU1URWlJSEk5SWpNaUlDOCtDaUFnUEhKbFkzUWdlRDBpTXlJZ2VUMGlOQ0lnZDJsa2RHZzlJakU0SWlCb1pXbG5hSFE5SWpFNElpQnllRDBpTWlJZ0x6NEtQQzl6ZG1jK0NnPT0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2NvbnRhY3RcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBDb250YWN0ID0gY3JlYXRlTHVjaWRlSWNvbignY29udGFjdCcsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBDb250YWN0O1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbXG4gICAgJ3BhdGgnLFxuICAgIHtcbiAgICAgIGQ6ICdNMjIgNy43YzAtLjYtLjQtMS4yLS44LTEuNWwtNi4zLTMuOWExLjcyIDEuNzIgMCAwIDAtMS43IDBsLTEwLjMgNmMtLjUuMi0uOS44LS45IDEuNHY2LjZjMCAuNS40IDEuMi44IDEuNWw2LjMgMy45YTEuNzIgMS43MiAwIDAgMCAxLjcgMGwxMC4zLTZjLjUtLjMuOS0xIC45LTEuNVonLFxuICAgICAga2V5OiAnMXQybHFlJyxcbiAgICB9LFxuICBdLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTAgMjEuOVYxNEwyLjEgOS4xJywga2V5OiAnbzdjenpxJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnbTEwIDE0IDExLjktNi45Jywga2V5OiAnem01ZTIwJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTE0IDE5Ljh2LTguMScsIGtleTogJzE1OWVjdScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xOCAxNy41VjkuNCcsIGtleTogJzExdW93bicgfV0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgQ29udGFpbmVyXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NaklnTnk0M1l6QXRMall0TGpRdE1TNHlMUzQ0TFRFdU5Xd3ROaTR6TFRNdU9XRXhMamN5SURFdU56SWdNQ0F3SURBdE1TNDNJREJzTFRFd0xqTWdObU10TGpVdU1pMHVPUzQ0TFM0NUlERXVOSFkyTGpaak1DQXVOUzQwSURFdU1pNDRJREV1Tld3MkxqTWdNeTQ1WVRFdU56SWdNUzQzTWlBd0lEQWdNQ0F4TGpjZ01Hd3hNQzR6TFRaakxqVXRMak11T1MweElDNDVMVEV1TlZvaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRFd0lESXhMamxXTVRSTU1pNHhJRGt1TVNJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0p0TVRBZ01UUWdNVEV1T1MwMkxqa2lJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRURTBJREU1TGpoMkxUZ3VNU0lnTHo0S0lDQThjR0YwYUNCa1BTSk5NVGdnTVRjdU5WWTVMalFpSUM4K0Nqd3ZjM1puUGdvPSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvY29udGFpbmVyXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgQ29udGFpbmVyID0gY3JlYXRlTHVjaWRlSWNvbignY29udGFpbmVyJywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IENvbnRhaW5lcjtcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgWydjaXJjbGUnLCB7IGN4OiAnMTInLCBjeTogJzEyJywgcjogJzEwJywga2V5OiAnMW1nbGF5JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTEyIDE4YTYgNiAwIDAgMCAwLTEydjEyeicsIGtleTogJ2o0bDcwZCcgfV0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgQ29udHJhc3RcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOFkybHlZMnhsSUdONFBTSXhNaUlnWTNrOUlqRXlJaUJ5UFNJeE1DSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk1USWdNVGhoTmlBMklEQWdNQ0F3SURBdE1USjJNVEo2SWlBdlBnbzhMM04yWno0SykgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvY29udHJhc3RcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBDb250cmFzdCA9IGNyZWF0ZUx1Y2lkZUljb24oJ2NvbnRyYXN0JywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IENvbnRyYXN0O1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdNMTIgMmExMCAxMCAwIDEgMCAxMCAxMCA0IDQgMCAwIDEtNS01IDQgNCAwIDAgMS01LTUnLCBrZXk6ICdsYXltbnEnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNOC41IDguNXYuMDEnLCBrZXk6ICd1ZThjbHEnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTYgMTUuNXYuMDEnLCBrZXk6ICcxNGR0cnAnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTIgMTJ2LjAxJywga2V5OiAndTV1YnNlJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTExIDE3di4wMScsIGtleTogJzFoeWw1YScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ003IDE0di4wMScsIGtleTogJ3VjdDYwcycgfV0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgQ29va2llXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NVElnTW1FeE1DQXhNQ0F3SURFZ01DQXhNQ0F4TUNBMElEUWdNQ0F3SURFdE5TMDFJRFFnTkNBd0lEQWdNUzAxTFRVaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRndU5TQTRMalYyTGpBeElpQXZQZ29nSUR4d1lYUm9JR1E5SWsweE5pQXhOUzQxZGk0d01TSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk1USWdNVEoyTGpBeElpQXZQZ29nSUR4d1lYUm9JR1E5SWsweE1TQXhOM1l1TURFaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRjZ01UUjJMakF4SWlBdlBnbzhMM04yWno0SykgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvY29va2llXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgQ29va2llID0gY3JlYXRlTHVjaWRlSWNvbignY29va2llJywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IENvb2tpZTtcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTIgMTJoMjAnLCBrZXk6ICc5aTRwdTQnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMjAgMTJ2OGEyIDIgMCAwIDEtMiAySDZhMiAyIDAgMCAxLTItMnYtOCcsIGtleTogJ3UwdGdhMCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ200IDggMTYtNCcsIGtleTogJzE2ZzBuZycgfV0sXG4gIFtcbiAgICAncGF0aCcsXG4gICAge1xuICAgICAgZDogJ204Ljg2IDYuNzgtLjQ1LTEuODFhMiAyIDAgMCAxIDEuNDUtMi40M2wxLjk0LS40OGEyIDIgMCAwIDEgMi40MyAxLjQ2bC40NSAxLjgnLFxuICAgICAga2V5OiAnMTJjZWpjJyxcbiAgICB9LFxuICBdLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIENvb2tpbmdQb3RcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1pQXhNbWd5TUNJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTWpBZ01USjJPR0V5SURJZ01DQXdJREV0TWlBeVNEWmhNaUF5SURBZ01DQXhMVEl0TW5ZdE9DSWdMejRLSUNBOGNHRjBhQ0JrUFNKdE5DQTRJREUyTFRRaUlDOCtDaUFnUEhCaGRHZ2daRDBpYlRndU9EWWdOaTQzT0MwdU5EVXRNUzQ0TVdFeUlESWdNQ0F3SURFZ01TNDBOUzB5TGpRemJERXVPVFF0TGpRNFlUSWdNaUF3SURBZ01TQXlMalF6SURFdU5EWnNMalExSURFdU9DSWdMejRLUEM5emRtYytDZz09KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9jb29raW5nLXBvdFxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IENvb2tpbmdQb3QgPSBjcmVhdGVMdWNpZGVJY29uKCdjb29raW5nLXBvdCcsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBDb29raW5nUG90O1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdtMTIgMTUgMiAyIDQtNCcsIGtleTogJzJjNjA5cCcgfV0sXG4gIFsncmVjdCcsIHsgd2lkdGg6ICcxNCcsIGhlaWdodDogJzE0JywgeDogJzgnLCB5OiAnOCcsIHJ4OiAnMicsIHJ5OiAnMicsIGtleTogJzE3anllYScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ000IDE2Yy0xLjEgMC0yLS45LTItMlY0YzAtMS4xLjktMiAyLTJoMTBjMS4xIDAgMiAuOSAyIDInLCBrZXk6ICd6aXg5dWYnIH1dLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIENvcHlDaGVja1xuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0p0TVRJZ01UVWdNaUF5SURRdE5DSWdMejRLSUNBOGNtVmpkQ0IzYVdSMGFEMGlNVFFpSUdobGFXZG9kRDBpTVRRaUlIZzlJamdpSUhrOUlqZ2lJSEo0UFNJeUlpQnllVDBpTWlJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTkNBeE5tTXRNUzR4SURBdE1pMHVPUzB5TFRKV05HTXdMVEV1TVM0NUxUSWdNaTB5YURFd1l6RXVNU0F3SURJZ0xqa2dNaUF5SWlBdlBnbzhMM04yWno0SykgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvY29weS1jaGVja1xuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IENvcHlDaGVjayA9IGNyZWF0ZUx1Y2lkZUljb24oJ2NvcHktY2hlY2snLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgQ29weUNoZWNrO1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbJ2xpbmUnLCB7IHgxOiAnMTInLCB4MjogJzE4JywgeTE6ICcxNScsIHkyOiAnMTUnLCBrZXk6ICcxbnNjYnYnIH1dLFxuICBbJ3JlY3QnLCB7IHdpZHRoOiAnMTQnLCBoZWlnaHQ6ICcxNCcsIHg6ICc4JywgeTogJzgnLCByeDogJzInLCByeTogJzInLCBrZXk6ICcxN2p5ZWEnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNNCAxNmMtMS4xIDAtMi0uOS0yLTJWNGMwLTEuMS45LTIgMi0yaDEwYzEuMSAwIDIgLjkgMiAyJywga2V5OiAneml4OXVmJyB9XSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBDb3B5TWludXNcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGJHbHVaU0I0TVQwaU1USWlJSGd5UFNJeE9DSWdlVEU5SWpFMUlpQjVNajBpTVRVaUlDOCtDaUFnUEhKbFkzUWdkMmxrZEdnOUlqRTBJaUJvWldsbmFIUTlJakUwSWlCNFBTSTRJaUI1UFNJNElpQnllRDBpTWlJZ2NuazlJaklpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVFFnTVRaakxURXVNU0F3TFRJdExqa3RNaTB5VmpSak1DMHhMakV1T1MweUlESXRNbWd4TUdNeExqRWdNQ0F5SUM0NUlESWdNaUlnTHo0S1BDOXpkbWMrQ2c9PSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvY29weS1taW51c1xuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IENvcHlNaW51cyA9IGNyZWF0ZUx1Y2lkZUljb24oJ2NvcHktbWludXMnLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgQ29weU1pbnVzO1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbJ2xpbmUnLCB7IHgxOiAnMTUnLCB4MjogJzE1JywgeTE6ICcxMicsIHkyOiAnMTgnLCBrZXk6ICcxcDd3ZGMnIH1dLFxuICBbJ2xpbmUnLCB7IHgxOiAnMTInLCB4MjogJzE4JywgeTE6ICcxNScsIHkyOiAnMTUnLCBrZXk6ICcxbnNjYnYnIH1dLFxuICBbJ3JlY3QnLCB7IHdpZHRoOiAnMTQnLCBoZWlnaHQ6ICcxNCcsIHg6ICc4JywgeTogJzgnLCByeDogJzInLCByeTogJzInLCBrZXk6ICcxN2p5ZWEnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNNCAxNmMtMS4xIDAtMi0uOS0yLTJWNGMwLTEuMS45LTIgMi0yaDEwYzEuMSAwIDIgLjkgMiAyJywga2V5OiAneml4OXVmJyB9XSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBDb3B5UGx1c1xuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4YkdsdVpTQjRNVDBpTVRVaUlIZ3lQU0l4TlNJZ2VURTlJakV5SWlCNU1qMGlNVGdpSUM4K0NpQWdQR3hwYm1VZ2VERTlJakV5SWlCNE1qMGlNVGdpSUhreFBTSXhOU0lnZVRJOUlqRTFJaUF2UGdvZ0lEeHlaV04wSUhkcFpIUm9QU0l4TkNJZ2FHVnBaMmgwUFNJeE5DSWdlRDBpT0NJZ2VUMGlPQ0lnY25nOUlqSWlJSEo1UFNJeUlpQXZQZ29nSUR4d1lYUm9JR1E5SWswMElERTJZeTB4TGpFZ01DMHlMUzQ1TFRJdE1sWTBZekF0TVM0eExqa3RNaUF5TFRKb01UQmpNUzR4SURBZ01pQXVPU0F5SURJaUlDOCtDand2YzNablBnbz0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2NvcHktcGx1c1xuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IENvcHlQbHVzID0gY3JlYXRlTHVjaWRlSWNvbignY29weS1wbHVzJywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IENvcHlQbHVzO1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbJ2xpbmUnLCB7IHgxOiAnMTInLCB4MjogJzE4JywgeTE6ICcxMicsIHkyOiAnMTgnLCBrZXk6ICcxcmc2M3YnIH1dLFxuICBbJ2xpbmUnLCB7IHgxOiAnMTInLCB4MjogJzE4JywgeTE6ICcxOCcsIHkyOiAnMTInLCBrZXk6ICdlYmt4Z3InIH1dLFxuICBbJ3JlY3QnLCB7IHdpZHRoOiAnMTQnLCBoZWlnaHQ6ICcxNCcsIHg6ICc4JywgeTogJzgnLCByeDogJzInLCByeTogJzInLCBrZXk6ICcxN2p5ZWEnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNNCAxNmMtMS4xIDAtMi0uOS0yLTJWNGMwLTEuMS45LTIgMi0yaDEwYzEuMSAwIDIgLjkgMiAyJywga2V5OiAneml4OXVmJyB9XSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBDb3B5WFxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4YkdsdVpTQjRNVDBpTVRJaUlIZ3lQU0l4T0NJZ2VURTlJakV5SWlCNU1qMGlNVGdpSUM4K0NpQWdQR3hwYm1VZ2VERTlJakV5SWlCNE1qMGlNVGdpSUhreFBTSXhPQ0lnZVRJOUlqRXlJaUF2UGdvZ0lEeHlaV04wSUhkcFpIUm9QU0l4TkNJZ2FHVnBaMmgwUFNJeE5DSWdlRDBpT0NJZ2VUMGlPQ0lnY25nOUlqSWlJSEo1UFNJeUlpQXZQZ29nSUR4d1lYUm9JR1E5SWswMElERTJZeTB4TGpFZ01DMHlMUzQ1TFRJdE1sWTBZekF0TVM0eExqa3RNaUF5TFRKb01UQmpNUzR4SURBZ01pQXVPU0F5SURJaUlDOCtDand2YzNablBnbz0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2NvcHkteFxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IENvcHlYID0gY3JlYXRlTHVjaWRlSWNvbignY29weS14JywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IENvcHlYO1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbJ2xpbmUnLCB7IHgxOiAnMTInLCB4MjogJzE4JywgeTE6ICcxOCcsIHkyOiAnMTInLCBrZXk6ICdlYmt4Z3InIH1dLFxuICBbJ3JlY3QnLCB7IHdpZHRoOiAnMTQnLCBoZWlnaHQ6ICcxNCcsIHg6ICc4JywgeTogJzgnLCByeDogJzInLCByeTogJzInLCBrZXk6ICcxN2p5ZWEnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNNCAxNmMtMS4xIDAtMi0uOS0yLTJWNGMwLTEuMS45LTIgMi0yaDEwYzEuMSAwIDIgLjkgMiAyJywga2V5OiAneml4OXVmJyB9XSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBDb3B5U2xhc2hcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGJHbHVaU0I0TVQwaU1USWlJSGd5UFNJeE9DSWdlVEU5SWpFNElpQjVNajBpTVRJaUlDOCtDaUFnUEhKbFkzUWdkMmxrZEdnOUlqRTBJaUJvWldsbmFIUTlJakUwSWlCNFBTSTRJaUI1UFNJNElpQnllRDBpTWlJZ2NuazlJaklpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVFFnTVRaakxURXVNU0F3TFRJdExqa3RNaTB5VmpSak1DMHhMakV1T1MweUlESXRNbWd4TUdNeExqRWdNQ0F5SUM0NUlESWdNaUlnTHo0S1BDOXpkbWMrQ2c9PSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvY29weS1zbGFzaFxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IENvcHlTbGFzaCA9IGNyZWF0ZUx1Y2lkZUljb24oJ2NvcHktc2xhc2gnLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgQ29weVNsYXNoO1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbJ3JlY3QnLCB7IHdpZHRoOiAnMTQnLCBoZWlnaHQ6ICcxNCcsIHg6ICc4JywgeTogJzgnLCByeDogJzInLCByeTogJzInLCBrZXk6ICcxN2p5ZWEnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNNCAxNmMtMS4xIDAtMi0uOS0yLTJWNGMwLTEuMS45LTIgMi0yaDEwYzEuMSAwIDIgLjkgMiAyJywga2V5OiAneml4OXVmJyB9XSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBDb3B5XG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjbVZqZENCM2FXUjBhRDBpTVRRaUlHaGxhV2RvZEQwaU1UUWlJSGc5SWpnaUlIazlJamdpSUhKNFBTSXlJaUJ5ZVQwaU1pSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk5DQXhObU10TVM0eElEQXRNaTB1T1MweUxUSldOR013TFRFdU1TNDVMVElnTWkweWFERXdZekV1TVNBd0lESWdMamtnTWlBeUlpQXZQZ284TDNOMlp6NEspIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2NvcHlcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBDb3B5ID0gY3JlYXRlTHVjaWRlSWNvbignY29weScsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBDb3B5O1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbJ2NpcmNsZScsIHsgY3g6ICcxMicsIGN5OiAnMTInLCByOiAnMTAnLCBrZXk6ICcxbWdsYXknIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTQuODMgMTQuODNhNCA0IDAgMSAxIDAtNS42NicsIGtleTogJzFpNTZweicgfV0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgQ29weXJpZ2h0XG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThZMmx5WTJ4bElHTjRQU0l4TWlJZ1kzazlJakV5SWlCeVBTSXhNQ0lnTHo0S0lDQThjR0YwYUNCa1BTSk5NVFF1T0RNZ01UUXVPRE5oTkNBMElEQWdNU0F4SURBdE5TNDJOaUlnTHo0S1BDOXpkbWMrQ2c9PSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvY29weXJpZ2h0XG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgQ29weXJpZ2h0ID0gY3JlYXRlTHVjaWRlSWNvbignY29weXJpZ2h0JywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IENvcHlyaWdodDtcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgWydjaXJjbGUnLCB7IGN4OiAnMTInLCBjeTogJzEyJywgcjogJzEwJywga2V5OiAnMW1nbGF5JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTkuMTcgMTQuODNhNCA0IDAgMSAwIDAtNS42NicsIGtleTogJzFzdmVhbCcgfV0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgQ29weWxlZnRcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOFkybHlZMnhsSUdONFBTSXhNaUlnWTNrOUlqRXlJaUJ5UFNJeE1DSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk9TNHhOeUF4TkM0NE0yRTBJRFFnTUNBeElEQWdNQzAxTGpZMklpQXZQZ284TDNOMlp6NEspIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2NvcHlsZWZ0XG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgQ29weWxlZnQgPSBjcmVhdGVMdWNpZGVJY29uKCdjb3B5bGVmdCcsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBDb3B5bGVmdDtcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTIwIDR2N2E0IDQgMCAwIDEtNCA0SDQnLCBrZXk6ICc2bzViN2wnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdtOSAxMC01IDUgNSA1Jywga2V5OiAnMWtzaHE3JyB9XSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBDb3JuZXJEb3duTGVmdFxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTWpBZ05IWTNZVFFnTkNBd0lEQWdNUzAwSURSSU5DSWdMejRLSUNBOGNHRjBhQ0JrUFNKdE9TQXhNQzAxSURVZ05TQTFJaUF2UGdvOEwzTjJaejRLKSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9jb3JuZXItZG93bi1sZWZ0XG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgQ29ybmVyRG93bkxlZnQgPSBjcmVhdGVMdWNpZGVJY29uKCdjb3JuZXItZG93bi1sZWZ0JywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IENvcm5lckRvd25MZWZ0O1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdtMTUgMTAgNSA1LTUgNScsIGtleTogJ3FxYTU2bicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ000IDR2N2E0IDQgMCAwIDAgNCA0aDEyJywga2V5OiAnejA4enZ3JyB9XSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBDb3JuZXJEb3duUmlnaHRcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKdE1UVWdNVEFnTlNBMUxUVWdOU0lnTHo0S0lDQThjR0YwYUNCa1BTSk5OQ0EwZGpkaE5DQTBJREFnTUNBd0lEUWdOR2d4TWlJZ0x6NEtQQzl6ZG1jK0NnPT0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2Nvcm5lci1kb3duLXJpZ2h0XG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgQ29ybmVyRG93blJpZ2h0ID0gY3JlYXRlTHVjaWRlSWNvbignY29ybmVyLWRvd24tcmlnaHQnLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgQ29ybmVyRG93blJpZ2h0O1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdtMTQgMTUtNSA1LTUtNScsIGtleTogJzFlaWE5MycgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00yMCA0aC03YTQgNCAwIDAgMC00IDR2MTInLCBrZXk6ICduYnBkcTInIH1dLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIENvcm5lckxlZnREb3duXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSnRNVFFnTVRVdE5TQTFMVFV0TlNJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTWpBZ05HZ3ROMkUwSURRZ01DQXdJREF0TkNBMGRqRXlJaUF2UGdvOEwzTjJaejRLKSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9jb3JuZXItbGVmdC1kb3duXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgQ29ybmVyTGVmdERvd24gPSBjcmVhdGVMdWNpZGVJY29uKCdjb3JuZXItbGVmdC1kb3duJywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IENvcm5lckxlZnREb3duO1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdNMTQgOSA5IDQgNCA5Jywga2V5OiAnMWFmNWFmJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTIwIDIwaC03YTQgNCAwIDAgMS00LTRWNCcsIGtleTogJzFibHdpMycgfV0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgQ29ybmVyTGVmdFVwXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NVFFnT1NBNUlEUWdOQ0E1SWlBdlBnb2dJRHh3WVhSb0lHUTlJazB5TUNBeU1HZ3ROMkUwSURRZ01DQXdJREV0TkMwMFZqUWlJQzgrQ2p3dmMzWm5QZ289KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9jb3JuZXItbGVmdC11cFxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IENvcm5lckxlZnRVcCA9IGNyZWF0ZUx1Y2lkZUljb24oJ2Nvcm5lci1sZWZ0LXVwJywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IENvcm5lckxlZnRVcDtcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnbTEwIDE1IDUgNSA1LTUnLCBrZXk6ICcxaHBqbnInIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNNCA0aDdhNCA0IDAgMCAxIDQgNHYxMicsIGtleTogJ3djYmdjdCcgfV0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgQ29ybmVyUmlnaHREb3duXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSnRNVEFnTVRVZ05TQTFJRFV0TlNJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTkNBMGFEZGhOQ0EwSURBZ01DQXhJRFFnTkhZeE1pSWdMejRLUEM5emRtYytDZz09KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9jb3JuZXItcmlnaHQtZG93blxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IENvcm5lclJpZ2h0RG93biA9IGNyZWF0ZUx1Y2lkZUljb24oJ2Nvcm5lci1yaWdodC1kb3duJywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IENvcm5lclJpZ2h0RG93bjtcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnbTEwIDkgNS01IDUgNScsIGtleTogJzljdHp3aScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ000IDIwaDdhNCA0IDAgMCAwIDQtNFY0Jywga2V5OiAnMXBsZ2RqJyB9XSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBDb3JuZXJSaWdodFVwXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSnRNVEFnT1NBMUxUVWdOU0ExSWlBdlBnb2dJRHh3WVhSb0lHUTlJazAwSURJd2FEZGhOQ0EwSURBZ01DQXdJRFF0TkZZMElpQXZQZ284TDNOMlp6NEspIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2Nvcm5lci1yaWdodC11cFxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IENvcm5lclJpZ2h0VXAgPSBjcmVhdGVMdWNpZGVJY29uKCdjb3JuZXItcmlnaHQtdXAnLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgQ29ybmVyUmlnaHRVcDtcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTIwIDIwdi03YTQgNCAwIDAgMC00LTRINCcsIGtleTogJzFua2pvbicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ005IDE0IDQgOWw1LTUnLCBrZXk6ICcxMDJzNXMnIH1dLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIENvcm5lclVwTGVmdFxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTWpBZ01qQjJMVGRoTkNBMElEQWdNQ0F3TFRRdE5FZzBJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMDVJREUwSURRZ09XdzFMVFVpSUM4K0Nqd3ZjM1puUGdvPSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvY29ybmVyLXVwLWxlZnRcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBDb3JuZXJVcExlZnQgPSBjcmVhdGVMdWNpZGVJY29uKCdjb3JuZXItdXAtbGVmdCcsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBDb3JuZXJVcExlZnQ7XG4iLCJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ20xNSAxNCA1LTUtNS01Jywga2V5OiAnMTJ2ZzFtJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTQgMjB2LTdhNCA0IDAgMCAxIDQtNGgxMicsIGtleTogJzFsdTRmOCcgfV0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgQ29ybmVyVXBSaWdodFxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0p0TVRVZ01UUWdOUzAxTFRVdE5TSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk5DQXlNSFl0TjJFMElEUWdNQ0F3SURFZ05DMDBhREV5SWlBdlBnbzhMM04yWno0SykgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvY29ybmVyLXVwLXJpZ2h0XG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgQ29ybmVyVXBSaWdodCA9IGNyZWF0ZUx1Y2lkZUljb24oJ2Nvcm5lci11cC1yaWdodCcsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBDb3JuZXJVcFJpZ2h0O1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdNMTIgMjB2MicsIGtleTogJzFsaDFrZycgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xMiAydjInLCBrZXk6ICd0dXMwM20nIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTcgMjB2MicsIGtleTogJzFybmM5YycgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xNyAydjInLCBrZXk6ICcxMXRybHMnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMiAxMmgyJywga2V5OiAnMXQ4ZjhuJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTIgMTdoMicsIGtleTogJzdvZWk2eCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00yIDdoMicsIGtleTogJ2FzZGhlMCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00yMCAxMmgyJywga2V5OiAnMXE4bWp3JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTIwIDE3aDInLCBrZXk6ICcxZnBma2wnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMjAgN2gyJywga2V5OiAnMW84dHJhJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTcgMjB2MicsIGtleTogJzRnbmowbScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ003IDJ2MicsIGtleTogJzFpNHlodScgfV0sXG4gIFsncmVjdCcsIHsgeDogJzQnLCB5OiAnNCcsIHdpZHRoOiAnMTYnLCBoZWlnaHQ6ICcxNicsIHJ4OiAnMicsIGtleTogJzF2YnlkNycgfV0sXG4gIFsncmVjdCcsIHsgeDogJzgnLCB5OiAnOCcsIHdpZHRoOiAnOCcsIGhlaWdodDogJzgnLCByeDogJzEnLCBrZXk6ICd6OXhpdW8nIH1dLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIENwdVxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTVRJZ01qQjJNaUlnTHo0S0lDQThjR0YwYUNCa1BTSk5NVElnTW5ZeUlpQXZQZ29nSUR4d1lYUm9JR1E5SWsweE55QXlNSFl5SWlBdlBnb2dJRHh3WVhSb0lHUTlJazB4TnlBeWRqSWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRUSWdNVEpvTWlJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTWlBeE4yZ3lJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHlJRGRvTWlJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTWpBZ01USm9NaUlnTHo0S0lDQThjR0YwYUNCa1BTSk5NakFnTVRkb01pSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk1qQWdOMmd5SWlBdlBnb2dJRHh3WVhSb0lHUTlJazAzSURJd2RqSWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRUY2dNbll5SWlBdlBnb2dJRHh5WldOMElIZzlJalFpSUhrOUlqUWlJSGRwWkhSb1BTSXhOaUlnYUdWcFoyaDBQU0l4TmlJZ2NuZzlJaklpSUM4K0NpQWdQSEpsWTNRZ2VEMGlPQ0lnZVQwaU9DSWdkMmxrZEdnOUlqZ2lJR2hsYVdkb2REMGlPQ0lnY25nOUlqRWlJQzgrQ2p3dmMzWm5QZ289KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9jcHVcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBDcHUgPSBjcmVhdGVMdWNpZGVJY29uKCdjcHUnLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgQ3B1O1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbJ2NpcmNsZScsIHsgY3g6ICcxMicsIGN5OiAnMTInLCByOiAnMTAnLCBrZXk6ICcxbWdsYXknIH1dLFxuICBbXG4gICAgJ3BhdGgnLFxuICAgIHsgZDogJ00xMCA5LjNhMi44IDIuOCAwIDAgMC0zLjUgMSAzLjEgMy4xIDAgMCAwIDAgMy40IDIuNyAyLjcgMCAwIDAgMy41IDEnLCBrZXk6ICcxc3MzZXEnIH0sXG4gIF0sXG4gIFtcbiAgICAncGF0aCcsXG4gICAgeyBkOiAnTTE3IDkuM2EyLjggMi44IDAgMCAwLTMuNSAxIDMuMSAzLjEgMCAwIDAgMCAzLjQgMi43IDIuNyAwIDAgMCAzLjUgMScsIGtleTogJzFvZDU2dCcgfSxcbiAgXSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBDcmVhdGl2ZUNvbW1vbnNcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOFkybHlZMnhsSUdONFBTSXhNaUlnWTNrOUlqRXlJaUJ5UFNJeE1DSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk1UQWdPUzR6WVRJdU9DQXlMamdnTUNBd0lEQXRNeTQxSURFZ015NHhJRE11TVNBd0lEQWdNQ0F3SURNdU5DQXlMamNnTWk0M0lEQWdNQ0F3SURNdU5TQXhJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHhOeUE1TGpOaE1pNDRJREl1T0NBd0lEQWdNQzB6TGpVZ01TQXpMakVnTXk0eElEQWdNQ0F3SURBZ015NDBJREl1TnlBeUxqY2dNQ0F3SURBZ015NDFJREVpSUM4K0Nqd3ZjM1puUGdvPSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvY3JlYXRpdmUtY29tbW9uc1xuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IENyZWF0aXZlQ29tbW9ucyA9IGNyZWF0ZUx1Y2lkZUljb24oJ2NyZWF0aXZlLWNvbW1vbnMnLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgQ3JlYXRpdmVDb21tb25zO1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbJ3JlY3QnLCB7IHdpZHRoOiAnMjAnLCBoZWlnaHQ6ICcxNCcsIHg6ICcyJywgeTogJzUnLCByeDogJzInLCBrZXk6ICd5bnlwOHonIH1dLFxuICBbJ2xpbmUnLCB7IHgxOiAnMicsIHgyOiAnMjInLCB5MTogJzEwJywgeTI6ICcxMCcsIGtleTogJzFiM3ZtbycgfV0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgQ3JlZGl0Q2FyZFxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y21WamRDQjNhV1IwYUQwaU1qQWlJR2hsYVdkb2REMGlNVFFpSUhnOUlqSWlJSGs5SWpVaUlISjRQU0l5SWlBdlBnb2dJRHhzYVc1bElIZ3hQU0l5SWlCNE1qMGlNaklpSUhreFBTSXhNQ0lnZVRJOUlqRXdJaUF2UGdvOEwzTjJaejRLKSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9jcmVkaXQtY2FyZFxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IENyZWRpdENhcmQgPSBjcmVhdGVMdWNpZGVJY29uKCdjcmVkaXQtY2FyZCcsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBDcmVkaXRDYXJkO1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbXG4gICAgJ3BhdGgnLFxuICAgIHtcbiAgICAgIGQ6ICdtNC42IDEzLjExIDUuNzktMy4yMWMxLjg5LTEuMDUgNC43OSAxLjc4IDMuNzEgMy43MWwtMy4yMiA1LjgxQzguOCAyMy4xNi43OSAxNS4yMyA0LjYgMTMuMTFaJyxcbiAgICAgIGtleTogJzFvenhsYicsXG4gICAgfSxcbiAgXSxcbiAgW1xuICAgICdwYXRoJyxcbiAgICB7XG4gICAgICBkOiAnbTEwLjUgOS41LTEtMi4yOUM5LjIgNi40OCA4LjggNiA4IDZINC41QzIuNzkgNiAyIDYuNSAyIDguNWE3LjcxIDcuNzEgMCAwIDAgMiA0LjgzJyxcbiAgICAgIGtleTogJ2ZmdXliNScsXG4gICAgfSxcbiAgXSxcbiAgWydwYXRoJywgeyBkOiAnTTggNmMwLTEuNTUuMjQtNC0yLTQtMiAwLTIuNSAyLjE3LTIuNSA0Jywga2V5OiAnb3NucHppJyB9XSxcbiAgW1xuICAgICdwYXRoJyxcbiAgICB7XG4gICAgICBkOiAnbTE0LjUgMTMuNSAyLjI5IDFjLjczLjMgMS4yMS43IDEuMjEgMS41djMuNWMwIDEuNzEtLjUgMi41LTIuNSAyLjVhNy43MSA3LjcxIDAgMCAxLTQuODMtMicsXG4gICAgICBrZXk6ICcxdnViYXcnLFxuICAgIH0sXG4gIF0sXG4gIFsncGF0aCcsIHsgZDogJ00xOCAxNmMxLjU1IDAgNC0uMjQgNCAyIDAgMi0yLjE3IDIuNS00IDIuNScsIGtleTogJ3d4cjc3MicgfV0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgQ3JvaXNzYW50XG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSnROQzQySURFekxqRXhJRFV1TnprdE15NHlNV014TGpnNUxURXVNRFVnTkM0M09TQXhMamM0SURNdU56RWdNeTQzTVd3dE15NHlNaUExTGpneFF6Z3VPQ0F5TXk0eE5pNDNPU0F4TlM0eU15QTBMallnTVRNdU1URmFJaUF2UGdvZ0lEeHdZWFJvSUdROUltMHhNQzQxSURrdU5TMHhMVEl1TWpsRE9TNHlJRFl1TkRnZ09DNDRJRFlnT0NBMlNEUXVOVU15TGpjNUlEWWdNaUEyTGpVZ01pQTRMalZoTnk0M01TQTNMamN4SURBZ01DQXdJRElnTkM0NE15SWdMejRLSUNBOGNHRjBhQ0JrUFNKTk9DQTJZekF0TVM0MU5TNHlOQzAwTFRJdE5DMHlJREF0TWk0MUlESXVNVGN0TWk0MUlEUWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaWJURTBMalVnTVRNdU5TQXlMakk1SURGakxqY3pMak1nTVM0eU1TNDNJREV1TWpFZ01TNDFkak11TldNd0lERXVOekV0TGpVZ01pNDFMVEl1TlNBeUxqVmhOeTQzTVNBM0xqY3hJREFnTUNBeExUUXVPRE10TWlJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTVRnZ01UWmpNUzQxTlNBd0lEUXRMakkwSURRZ01pQXdJREl0TWk0eE55QXlMalV0TkNBeUxqVWlJQzgrQ2p3dmMzWm5QZ289KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9jcm9pc3NhbnRcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBDcm9pc3NhbnQgPSBjcmVhdGVMdWNpZGVJY29uKCdjcm9pc3NhbnQnLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgQ3JvaXNzYW50O1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdNNiAydjE0YTIgMiAwIDAgMCAyIDJoMTQnLCBrZXk6ICdyb241YTQnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTggMjJWOGEyIDIgMCAwIDAtMi0ySDInLCBrZXk6ICc3czllaG4nIH1dLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIENyb3BcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk5pQXlkakUwWVRJZ01pQXdJREFnTUNBeUlESm9NVFFpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVEU0SURJeVZqaGhNaUF5SURBZ01DQXdMVEl0TWtneUlpQXZQZ284TDNOMlp6NEspIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2Nyb3BcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBDcm9wID0gY3JlYXRlTHVjaWRlSWNvbignY3JvcCcsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBDcm9wO1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbXG4gICAgJ3BhdGgnLFxuICAgIHtcbiAgICAgIGQ6ICdNNCA5YTIgMiAwIDAgMC0yIDJ2MmEyIDIgMCAwIDAgMiAyaDRhMSAxIDAgMCAxIDEgMXY0YTIgMiAwIDAgMCAyIDJoMmEyIDIgMCAwIDAgMi0ydi00YTEgMSAwIDAgMSAxLTFoNGEyIDIgMCAwIDAgMi0ydi0yYTIgMiAwIDAgMC0yLTJoLTRhMSAxIDAgMCAxLTEtMVY0YTIgMiAwIDAgMC0yLTJoLTJhMiAyIDAgMCAwLTIgMnY0YTEgMSAwIDAgMS0xIDF6JyxcbiAgICAgIGtleTogJzF4YnJxeScsXG4gICAgfSxcbiAgXSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBDcm9zc1xuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTkNBNVlUSWdNaUF3SURBZ01DMHlJREoyTW1FeUlESWdNQ0F3SURBZ01pQXlhRFJoTVNBeElEQWdNQ0F4SURFZ01YWTBZVElnTWlBd0lEQWdNQ0F5SURKb01tRXlJRElnTUNBd0lEQWdNaTB5ZGkwMFlURWdNU0F3SURBZ01TQXhMVEZvTkdFeUlESWdNQ0F3SURBZ01pMHlkaTB5WVRJZ01pQXdJREFnTUMweUxUSm9MVFJoTVNBeElEQWdNQ0F4TFRFdE1WWTBZVElnTWlBd0lEQWdNQzB5TFRKb0xUSmhNaUF5SURBZ01DQXdMVElnTW5ZMFlURWdNU0F3SURBZ01TMHhJREY2SWlBdlBnbzhMM04yWno0SykgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvY3Jvc3NcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBDcm9zcyA9IGNyZWF0ZUx1Y2lkZUljb24oJ2Nyb3NzJywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IENyb3NzO1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbJ2NpcmNsZScsIHsgY3g6ICcxMicsIGN5OiAnMTInLCByOiAnMTAnLCBrZXk6ICcxbWdsYXknIH1dLFxuICBbJ2xpbmUnLCB7IHgxOiAnMjInLCB4MjogJzE4JywgeTE6ICcxMicsIHkyOiAnMTInLCBrZXk6ICdsOWJjc2knIH1dLFxuICBbJ2xpbmUnLCB7IHgxOiAnNicsIHgyOiAnMicsIHkxOiAnMTInLCB5MjogJzEyJywga2V5OiAnMTNoaGt4JyB9XSxcbiAgWydsaW5lJywgeyB4MTogJzEyJywgeDI6ICcxMicsIHkxOiAnNicsIHkyOiAnMicsIGtleTogJzEwdzNmMycgfV0sXG4gIFsnbGluZScsIHsgeDE6ICcxMicsIHgyOiAnMTInLCB5MTogJzIyJywgeTI6ICcxOCcsIGtleTogJzE1ZzlrcScgfV0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgQ3Jvc3NoYWlyXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThZMmx5WTJ4bElHTjRQU0l4TWlJZ1kzazlJakV5SWlCeVBTSXhNQ0lnTHo0S0lDQThiR2x1WlNCNE1UMGlNaklpSUhneVBTSXhPQ0lnZVRFOUlqRXlJaUI1TWowaU1USWlJQzgrQ2lBZ1BHeHBibVVnZURFOUlqWWlJSGd5UFNJeUlpQjVNVDBpTVRJaUlIa3lQU0l4TWlJZ0x6NEtJQ0E4YkdsdVpTQjRNVDBpTVRJaUlIZ3lQU0l4TWlJZ2VURTlJallpSUhreVBTSXlJaUF2UGdvZ0lEeHNhVzVsSUhneFBTSXhNaUlnZURJOUlqRXlJaUI1TVQwaU1qSWlJSGt5UFNJeE9DSWdMejRLUEM5emRtYytDZz09KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9jcm9zc2hhaXJcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBDcm9zc2hhaXIgPSBjcmVhdGVMdWNpZGVJY29uKCdjcm9zc2hhaXInLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgQ3Jvc3NoYWlyO1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbXG4gICAgJ3BhdGgnLFxuICAgIHtcbiAgICAgIGQ6ICdNMTEuNTYyIDMuMjY2YS41LjUgMCAwIDEgLjg3NiAwTDE1LjM5IDguODdhMSAxIDAgMCAwIDEuNTE2LjI5NEwyMS4xODMgNS41YS41LjUgMCAwIDEgLjc5OC41MTlsLTIuODM0IDEwLjI0NmExIDEgMCAwIDEtLjk1Ni43MzRINS44MWExIDEgMCAwIDEtLjk1Ny0uNzM0TDIuMDIgNi4wMmEuNS41IDAgMCAxIC43OTgtLjUxOWw0LjI3NiAzLjY2NGExIDEgMCAwIDAgMS41MTYtLjI5NHonLFxuICAgICAga2V5OiAnMXZkYzU3JyxcbiAgICB9LFxuICBdLFxuICBbJ3BhdGgnLCB7IGQ6ICdNNSAyMWgxNCcsIGtleTogJzExYXd1MycgfV0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgQ3Jvd25cbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1URXVOVFl5SURNdU1qWTJZUzQxTGpVZ01DQXdJREVnTGpnM05pQXdUREUxTGpNNUlEZ3VPRGRoTVNBeElEQWdNQ0F3SURFdU5URTJMakk1TkV3eU1TNHhPRE1nTlM0MVlTNDFMalVnTUNBd0lERWdMamM1T0M0MU1UbHNMVEl1T0RNMElERXdMakkwTm1FeElERWdNQ0F3SURFdExqazFOaTQzTXpSSU5TNDRNV0V4SURFZ01DQXdJREV0TGprMU55MHVOek0wVERJdU1ESWdOaTR3TW1FdU5TNDFJREFnTUNBeElDNDNPVGd0TGpVeE9XdzBMakkzTmlBekxqWTJOR0V4SURFZ01DQXdJREFnTVM0MU1UWXRMakk1TkhvaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRVZ01qRm9NVFFpSUM4K0Nqd3ZjM1puUGdvPSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvY3Jvd25cbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBDcm93biA9IGNyZWF0ZUx1Y2lkZUljb24oJ2Nyb3duJywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IENyb3duO1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbXG4gICAgJ3BhdGgnLFxuICAgIHtcbiAgICAgIGQ6ICdtMjEuMTIgNi40LTYuMDUtNC4wNmEyIDIgMCAwIDAtMi4xNy0uMDVMMi45NSA4LjQxYTIgMiAwIDAgMC0uOTUgMS43djUuODJhMiAyIDAgMCAwIC44OCAxLjY2bDYuMDUgNC4wN2EyIDIgMCAwIDAgMi4xNy4wNWw5Ljk1LTYuMTJhMiAyIDAgMCAwIC45NS0xLjdWOC4wNmEyIDIgMCAwIDAtLjg4LTEuNjZaJyxcbiAgICAgIGtleTogJzF1Mm92ZCcsXG4gICAgfSxcbiAgXSxcbiAgWydwYXRoJywgeyBkOiAnTTEwIDIydi04TDIuMjUgOS4xNScsIGtleTogJzExcG40cScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ20xMCAxNCAxMS43Ny02Ljg3Jywga2V5OiAnMWt0MXdoJyB9XSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBDdWJvaWRcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKdE1qRXVNVElnTmk0MExUWXVNRFV0TkM0d05tRXlJRElnTUNBd0lEQXRNaTR4TnkwdU1EVk1NaTQ1TlNBNExqUXhZVElnTWlBd0lEQWdNQzB1T1RVZ01TNDNkalV1T0RKaE1pQXlJREFnTUNBd0lDNDRPQ0F4TGpZMmJEWXVNRFVnTkM0d04yRXlJRElnTUNBd0lEQWdNaTR4Tnk0d05XdzVMamsxTFRZdU1USmhNaUF5SURBZ01DQXdJQzQ1TlMweExqZFdPQzR3Tm1FeUlESWdNQ0F3SURBdExqZzRMVEV1TmpaYUlpQXZQZ29nSUR4d1lYUm9JR1E5SWsweE1DQXlNbll0T0V3eUxqSTFJRGt1TVRVaUlDOCtDaUFnUEhCaGRHZ2daRDBpYlRFd0lERTBJREV4TGpjM0xUWXVPRGNpSUM4K0Nqd3ZjM1puUGdvPSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvY3Vib2lkXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgQ3Vib2lkID0gY3JlYXRlTHVjaWRlSWNvbignY3Vib2lkJywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IEN1Ym9pZDtcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnbTYgOCAxLjc1IDEyLjI4YTIgMiAwIDAgMCAyIDEuNzJoNC41NGEyIDIgMCAwIDAgMi0xLjcyTDE4IDgnLCBrZXk6ICc4MTY2bTgnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNNSA4aDE0Jywga2V5OiAncGN6NGwzJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTcgMTVhNi40NyA2LjQ3IDAgMCAxIDUgMCA2LjQ3IDYuNDcgMCAwIDAgNSAwJywga2V5OiAneWp6MzQ0JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnbTEyIDggMS02aDInLCBrZXk6ICczeWJmYTQnIH1dLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIEN1cFNvZGFcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKdE5pQTRJREV1TnpVZ01USXVNamhoTWlBeUlEQWdNQ0F3SURJZ01TNDNNbWcwTGpVMFlUSWdNaUF3SURBZ01DQXlMVEV1TnpKTU1UZ2dPQ0lnTHo0S0lDQThjR0YwYUNCa1BTSk5OU0E0YURFMElpQXZQZ29nSUR4d1lYUm9JR1E5SWswM0lERTFZVFl1TkRjZ05pNDBOeUF3SURBZ01TQTFJREFnTmk0ME55QTJMalEzSURBZ01DQXdJRFVnTUNJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0p0TVRJZ09DQXhMVFpvTWlJZ0x6NEtQQzl6ZG1jK0NnPT0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2N1cC1zb2RhXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgQ3VwU29kYSA9IGNyZWF0ZUx1Y2lkZUljb24oJ2N1cC1zb2RhJywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IEN1cFNvZGE7XG4iLCJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbXG4gIFsnY2lyY2xlJywgeyBjeDogJzEyJywgY3k6ICcxMicsIHI6ICc4Jywga2V5OiAnNDY4OTltJyB9XSxcbiAgWydsaW5lJywgeyB4MTogJzMnLCB4MjogJzYnLCB5MTogJzMnLCB5MjogJzYnLCBrZXk6ICcxamt5dG4nIH1dLFxuICBbJ2xpbmUnLCB7IHgxOiAnMjEnLCB4MjogJzE4JywgeTE6ICczJywgeTI6ICc2Jywga2V5OiAnMTR6Zmp0JyB9XSxcbiAgWydsaW5lJywgeyB4MTogJzMnLCB4MjogJzYnLCB5MTogJzIxJywgeTI6ICcxOCcsIGtleTogJ2l1c3VlYycgfV0sXG4gIFsnbGluZScsIHsgeDE6ICcyMScsIHgyOiAnMTgnLCB5MTogJzIxJywgeTI6ICcxOCcsIGtleTogJ3lqMmRkNycgfV0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgQ3VycmVuY3lcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOFkybHlZMnhsSUdONFBTSXhNaUlnWTNrOUlqRXlJaUJ5UFNJNElpQXZQZ29nSUR4c2FXNWxJSGd4UFNJeklpQjRNajBpTmlJZ2VURTlJak1pSUhreVBTSTJJaUF2UGdvZ0lEeHNhVzVsSUhneFBTSXlNU0lnZURJOUlqRTRJaUI1TVQwaU15SWdlVEk5SWpZaUlDOCtDaUFnUEd4cGJtVWdlREU5SWpNaUlIZ3lQU0kySWlCNU1UMGlNakVpSUhreVBTSXhPQ0lnTHo0S0lDQThiR2x1WlNCNE1UMGlNakVpSUhneVBTSXhPQ0lnZVRFOUlqSXhJaUI1TWowaU1UZ2lJQzgrQ2p3dmMzWm5QZ289KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9jdXJyZW5jeVxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IEN1cnJlbmN5ID0gY3JlYXRlTHVjaWRlSWNvbignY3VycmVuY3knLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgQ3VycmVuY3k7XG4iLCJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbXG4gIFsnZWxsaXBzZScsIHsgY3g6ICcxMicsIGN5OiAnNScsIHJ4OiAnOScsIHJ5OiAnMycsIGtleTogJ21zc2x3eicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00zIDV2MTRhOSAzIDAgMCAwIDE4IDBWNScsIGtleTogJ2FxaTB5cicgfV0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgQ3lsaW5kZXJcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOFpXeHNhWEJ6WlNCamVEMGlNVElpSUdONVBTSTFJaUJ5ZUQwaU9TSWdjbms5SWpNaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRNZ05YWXhOR0U1SURNZ01DQXdJREFnTVRnZ01GWTFJaUF2UGdvOEwzTjJaejRLKSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9jeWxpbmRlclxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IEN5bGluZGVyID0gY3JlYXRlTHVjaWRlSWNvbignY3lsaW5kZXInLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgQ3lsaW5kZXI7XG4iLCJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbXG4gIFtcbiAgICAncGF0aCcsXG4gICAgeyBkOiAnTTExIDExLjMxYzEuMTcuNTYgMS41NCAxLjY5IDMuNSAxLjY5IDIuNSAwIDIuNS0yIDUtMiAxLjMgMCAxLjkuNSAyLjUgMScsIGtleTogJzE1N2t2YScgfSxcbiAgXSxcbiAgWydwYXRoJywgeyBkOiAnTTExLjc1IDE4Yy4zNS41IDEuNDUgMSAyLjc1IDEgMi41IDAgMi41LTIgNS0yIDEuMyAwIDEuOS41IDIuNSAxJywga2V5OiAnZDdxNm02JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTIgMTBoNCcsIGtleTogJ2wwYmdkNCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00yIDE0aDQnLCBrZXk6ICcxZ3N2c2YnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMiAxOGg0Jywga2V5OiAnMWJ1MnQxJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTIgNmg0Jywga2V5OiAnYWF3YnpqJyB9XSxcbiAgW1xuICAgICdwYXRoJyxcbiAgICB7IGQ6ICdNNyAzYTEgMSAwIDAgMC0xIDF2MTZhMSAxIDAgMCAwIDEgMWg0YTEgMSAwIDAgMCAxLTFMMTAgNGExIDEgMCAwIDAtMS0xeicsIGtleTogJ3ByNnM2NScgfSxcbiAgXSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBEYW1cbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1URWdNVEV1TXpGak1TNHhOeTQxTmlBeExqVTBJREV1TmprZ015NDFJREV1TmprZ01pNDFJREFnTWk0MUxUSWdOUzB5SURFdU15QXdJREV1T1M0MUlESXVOU0F4SWlBdlBnb2dJRHh3WVhSb0lHUTlJazB4TVM0M05TQXhPR011TXpVdU5TQXhMalExSURFZ01pNDNOU0F4SURJdU5TQXdJREl1TlMweUlEVXRNaUF4TGpNZ01DQXhMamt1TlNBeUxqVWdNU0lnTHo0S0lDQThjR0YwYUNCa1BTSk5NaUF4TUdnMElpQXZQZ29nSUR4d1lYUm9JR1E5SWsweUlERTBhRFFpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVElnTVRob05DSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk1pQTJhRFFpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVGNnTTJFeElERWdNQ0F3SURBdE1TQXhkakUyWVRFZ01TQXdJREFnTUNBeElERm9OR0V4SURFZ01DQXdJREFnTVMweFRERXdJRFJoTVNBeElEQWdNQ0F3TFRFdE1Yb2lJQzgrQ2p3dmMzWm5QZ289KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9kYW1cbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBEYW0gPSBjcmVhdGVMdWNpZGVJY29uKCdkYW0nLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgRGFtO1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbJ2VsbGlwc2UnLCB7IGN4OiAnMTInLCBjeTogJzUnLCByeDogJzknLCByeTogJzMnLCBrZXk6ICdtc3Nsd3onIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMyAxMmE5IDMgMCAwIDAgNSAyLjY5Jywga2V5OiAnMXVpMnltJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTIxIDkuM1Y1Jywga2V5OiAnNms2Y2liJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTMgNXYxNGE5IDMgMCAwIDAgNi40NyAyLjg4Jywga2V5OiAnaTYydGp5JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTEyIDEydjRoNCcsIGtleTogJzFieGFldCcgfV0sXG4gIFtcbiAgICAncGF0aCcsXG4gICAge1xuICAgICAgZDogJ00xMyAyMGE1IDUgMCAwIDAgOS0zIDQuNSA0LjUgMCAwIDAtNC41LTQuNWMtMS4zMyAwLTIuNTQuNTQtMy40MSAxLjQxTDEyIDE2JyxcbiAgICAgIGtleTogJzFmNGVpOScsXG4gICAgfSxcbiAgXSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBEYXRhYmFzZUJhY2t1cFxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Wld4c2FYQnpaU0JqZUQwaU1USWlJR041UFNJMUlpQnllRDBpT1NJZ2NuazlJak1pSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVE1nTVRKaE9TQXpJREFnTUNBd0lEVWdNaTQyT1NJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTWpFZ09TNHpWalVpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVE1nTlhZeE5HRTVJRE1nTUNBd0lEQWdOaTQwTnlBeUxqZzRJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHhNaUF4TW5ZMGFEUWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRURXpJREl3WVRVZ05TQXdJREFnTUNBNUxUTWdOQzQxSURRdU5TQXdJREFnTUMwMExqVXROQzQxWXkweExqTXpJREF0TWk0MU5DNDFOQzB6TGpReElERXVOREZNTVRJZ01UWWlJQzgrQ2p3dmMzWm5QZ289KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9kYXRhYmFzZS1iYWNrdXBcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBEYXRhYmFzZUJhY2t1cCA9IGNyZWF0ZUx1Y2lkZUljb24oJ2RhdGFiYXNlLWJhY2t1cCcsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBEYXRhYmFzZUJhY2t1cDtcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgWydlbGxpcHNlJywgeyBjeDogJzEyJywgY3k6ICc1Jywgcng6ICc5Jywgcnk6ICczJywga2V5OiAnbXNzbHd6JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTMgNVYxOUE5IDMgMCAwIDAgMTUgMjEuODQnLCBrZXk6ICcxNGlibXEnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMjEgNVY4Jywga2V5OiAnMW1hcmJnJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTIxIDEyTDE4IDE3SDIyTDE5IDIyJywga2V5OiAnemFmc28nIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMyAxMkE5IDMgMCAwIDAgMTQuNTkgMTQuODcnLCBrZXk6ICcxeTR3cjgnIH1dLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIERhdGFiYXNlWmFwXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThaV3hzYVhCelpTQmplRDBpTVRJaUlHTjVQU0kxSWlCeWVEMGlPU0lnY25rOUlqTWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRUTWdOVll4T1VFNUlETWdNQ0F3SURBZ01UVWdNakV1T0RRaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRJeElEVldPQ0lnTHo0S0lDQThjR0YwYUNCa1BTSk5NakVnTVRKTU1UZ2dNVGRJTWpKTU1Ua2dNaklpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVE1nTVRKQk9TQXpJREFnTUNBd0lERTBMalU1SURFMExqZzNJaUF2UGdvOEwzTjJaejRLKSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9kYXRhYmFzZS16YXBcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBEYXRhYmFzZVphcCA9IGNyZWF0ZUx1Y2lkZUljb24oJ2RhdGFiYXNlLXphcCcsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBEYXRhYmFzZVphcDtcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgWydlbGxpcHNlJywgeyBjeDogJzEyJywgY3k6ICc1Jywgcng6ICc5Jywgcnk6ICczJywga2V5OiAnbXNzbHd6JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTMgNVYxOUE5IDMgMCAwIDAgMjEgMTlWNScsIGtleTogJzF3bGVsNycgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00zIDEyQTkgMyAwIDAgMCAyMSAxMicsIGtleTogJ212N2tlNCcgfV0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgRGF0YWJhc2VcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOFpXeHNhWEJ6WlNCamVEMGlNVElpSUdONVBTSTFJaUJ5ZUQwaU9TSWdjbms5SWpNaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRNZ05WWXhPVUU1SURNZ01DQXdJREFnTWpFZ01UbFdOU0lnTHo0S0lDQThjR0YwYUNCa1BTSk5NeUF4TWtFNUlETWdNQ0F3SURBZ01qRWdNVElpSUM4K0Nqd3ZjM1puUGdvPSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvZGF0YWJhc2VcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBEYXRhYmFzZSA9IGNyZWF0ZUx1Y2lkZUljb24oJ2RhdGFiYXNlJywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IERhdGFiYXNlO1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdtMTMgMjEtMy0zIDMtMycsIGtleTogJ3MzbzFuZicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00yMCAxOEgxMCcsIGtleTogJzE0cjNtdCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00zIDExaC4wMScsIGtleTogJzFlaWZ1NycgfV0sXG4gIFsncmVjdCcsIHsgeDogJzYnLCB5OiAnMycsIHdpZHRoOiAnNScsIGhlaWdodDogJzgnLCByeDogJzIuNScsIGtleTogJ3Y5cGFxbycgfV0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgRGVjaW1hbHNBcnJvd0xlZnRcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKdE1UTWdNakV0TXkweklETXRNeUlnTHo0S0lDQThjR0YwYUNCa1BTSk5NakFnTVRoSU1UQWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRUTWdNVEZvTGpBeElpQXZQZ29nSUR4eVpXTjBJSGc5SWpZaUlIazlJak1pSUhkcFpIUm9QU0kxSWlCb1pXbG5hSFE5SWpnaUlISjRQU0l5TGpVaUlDOCtDand2YzNablBnbz0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2RlY2ltYWxzLWFycm93LWxlZnRcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBEZWNpbWFsc0Fycm93TGVmdCA9IGNyZWF0ZUx1Y2lkZUljb24oJ2RlY2ltYWxzLWFycm93LWxlZnQnLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgRGVjaW1hbHNBcnJvd0xlZnQ7XG4iLCJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ00xMCAxOGgxMCcsIGtleTogJzF5NXM4bycgfV0sXG4gIFsncGF0aCcsIHsgZDogJ20xNyAyMSAzLTMtMy0zJywga2V5OiAnMWFtbXQwJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTMgMTFoLjAxJywga2V5OiAnMWVpZnU3JyB9XSxcbiAgWydyZWN0JywgeyB4OiAnMTUnLCB5OiAnMycsIHdpZHRoOiAnNScsIGhlaWdodDogJzgnLCByeDogJzIuNScsIGtleTogJzc2bWQ2YScgfV0sXG4gIFsncmVjdCcsIHsgeDogJzYnLCB5OiAnMycsIHdpZHRoOiAnNScsIGhlaWdodDogJzgnLCByeDogJzIuNScsIGtleTogJ3Y5cGFxbycgfV0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgRGVjaW1hbHNBcnJvd1JpZ2h0XG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NVEFnTVRob01UQWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaWJURTNJREl4SURNdE15MHpMVE1pSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVE1nTVRGb0xqQXhJaUF2UGdvZ0lEeHlaV04wSUhnOUlqRTFJaUI1UFNJeklpQjNhV1IwYUQwaU5TSWdhR1ZwWjJoMFBTSTRJaUJ5ZUQwaU1pNDFJaUF2UGdvZ0lEeHlaV04wSUhnOUlqWWlJSGs5SWpNaUlIZHBaSFJvUFNJMUlpQm9aV2xuYUhROUlqZ2lJSEo0UFNJeUxqVWlJQzgrQ2p3dmMzWm5QZ289KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9kZWNpbWFscy1hcnJvdy1yaWdodFxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IERlY2ltYWxzQXJyb3dSaWdodCA9IGNyZWF0ZUx1Y2lkZUljb24oJ2RlY2ltYWxzLWFycm93LXJpZ2h0JywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IERlY2ltYWxzQXJyb3dSaWdodDtcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgW1xuICAgICdwYXRoJyxcbiAgICB7XG4gICAgICBkOiAnTTEwIDVhMiAyIDAgMCAwLTEuMzQ0LjUxOWwtNi4zMjggNS43NGExIDEgMCAwIDAgMCAxLjQ4MWw2LjMyOCA1Ljc0MUEyIDIgMCAwIDAgMTAgMTloMTBhMiAyIDAgMCAwIDItMlY3YTIgMiAwIDAgMC0yLTJ6JyxcbiAgICAgIGtleTogJzF5bzdzMCcsXG4gICAgfSxcbiAgXSxcbiAgWydwYXRoJywgeyBkOiAnbTEyIDkgNiA2Jywga2V5OiAnYW5qenpoJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnbTE4IDktNiA2Jywga2V5OiAnMWZwNTFzJyB9XSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBEZWxldGVcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1UQWdOV0V5SURJZ01DQXdJREF0TVM0ek5EUXVOVEU1YkMwMkxqTXlPQ0ExTGpjMFlURWdNU0F3SURBZ01DQXdJREV1TkRneGJEWXVNekk0SURVdU56UXhRVElnTWlBd0lEQWdNQ0F4TUNBeE9XZ3hNR0V5SURJZ01DQXdJREFnTWkweVZqZGhNaUF5SURBZ01DQXdMVEl0TW5vaUlDOCtDaUFnUEhCaGRHZ2daRDBpYlRFeUlEa2dOaUEySWlBdlBnb2dJRHh3WVhSb0lHUTlJbTB4T0NBNUxUWWdOaUlnTHo0S1BDOXpkbWMrQ2c9PSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvZGVsZXRlXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgRGVsZXRlID0gY3JlYXRlTHVjaWRlSWNvbignZGVsZXRlJywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IERlbGV0ZTtcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgW1xuICAgICdwYXRoJyxcbiAgICB7XG4gICAgICBkOiAnTTEwLjE2MiAzLjE2N0ExMCAxMCAwIDAgMCAyIDEzYTIgMiAwIDAgMCA0IDB2LTFhMiAyIDAgMCAxIDQgMHY0YTIgMiAwIDAgMCA0IDB2LTRhMiAyIDAgMCAxIDQgMHYxYTIgMiAwIDAgMCA0LS4wMDYgMTAgMTAgMCAwIDAtOC4xNjEtOS44MjYnLFxuICAgICAga2V5OiAneGk4OHF5JyxcbiAgICB9LFxuICBdLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMjAuODA0IDE0Ljg2OWE5IDkgMCAwIDEtMTcuNjA4IDAnLCBrZXk6ICcxcjI4cmcnIH1dLFxuICBbJ2NpcmNsZScsIHsgY3g6ICcxMicsIGN5OiAnNCcsIHI6ICcyJywga2V5OiAnbXV1NWVmJyB9XSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBEZXNzZXJ0XG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NVEF1TVRZeUlETXVNVFkzUVRFd0lERXdJREFnTUNBd0lESWdNVE5oTWlBeUlEQWdNQ0F3SURRZ01IWXRNV0V5SURJZ01DQXdJREVnTkNBd2RqUmhNaUF5SURBZ01DQXdJRFFnTUhZdE5HRXlJRElnTUNBd0lERWdOQ0F3ZGpGaE1pQXlJREFnTUNBd0lEUXRMakF3TmlBeE1DQXhNQ0F3SURBZ01DMDRMakUyTVMwNUxqZ3lOaUlnTHo0S0lDQThjR0YwYUNCa1BTSk5NakF1T0RBMElERTBMamcyT1dFNUlEa2dNQ0F3SURFdE1UY3VOakE0SURBaUlDOCtDaUFnUEdOcGNtTnNaU0JqZUQwaU1USWlJR041UFNJMElpQnlQU0l5SWlBdlBnbzhMM04yWno0SykgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvZGVzc2VydFxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IERlc3NlcnQgPSBjcmVhdGVMdWNpZGVJY29uKCdkZXNzZXJ0JywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IERlc3NlcnQ7XG4iLCJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbXG4gIFtcbiAgICAncGF0aCcsXG4gICAge1xuICAgICAgZDogJ00yLjcgMTAuM2EyLjQxIDIuNDEgMCAwIDAgMCAzLjQxbDcuNTkgNy41OWEyLjQxIDIuNDEgMCAwIDAgMy40MSAwbDcuNTktNy41OWEyLjQxIDIuNDEgMCAwIDAgMC0zLjQxTDEzLjcgMi43MWEyLjQxIDIuNDEgMCAwIDAtMy40MSAweicsXG4gICAgICBrZXk6ICcxZXkyMGonLFxuICAgIH0sXG4gIF0sXG4gIFsncGF0aCcsIHsgZDogJ004IDEyaDgnLCBrZXk6ICcxd2N5ZXYnIH1dLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIERpYW1vbmRNaW51c1xuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTWk0M0lERXdMak5oTWk0ME1TQXlMalF4SURBZ01DQXdJREFnTXk0ME1XdzNMalU1SURjdU5UbGhNaTQwTVNBeUxqUXhJREFnTUNBd0lETXVOREVnTUd3M0xqVTVMVGN1TlRsaE1pNDBNU0F5TGpReElEQWdNQ0F3SURBdE15NDBNVXd4TXk0M0lESXVOekZoTWk0ME1TQXlMalF4SURBZ01DQXdMVE11TkRFZ01Ib2lJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRUZ2dNVEpvT0NJZ0x6NEtQQzl6ZG1jKykgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvZGlhbW9uZC1taW51c1xuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IERpYW1vbmRNaW51cyA9IGNyZWF0ZUx1Y2lkZUljb24oJ2RpYW1vbmQtbWludXMnLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgRGlhbW9uZE1pbnVzO1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbJ2NpcmNsZScsIHsgY3g6ICcxOScsIGN5OiAnMTknLCByOiAnMicsIGtleTogJzE3ZjVjZycgfV0sXG4gIFsnY2lyY2xlJywgeyBjeDogJzUnLCBjeTogJzUnLCByOiAnMicsIGtleTogJzFnd3Y4MycgfV0sXG4gIFsncGF0aCcsIHsgZDogJ002LjQ4IDMuNjZhMTAgMTAgMCAwIDEgMTMuODYgMTMuODYnLCBrZXk6ICd4cjhrZHEnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdtNi40MSA2LjQxIDExLjE4IDExLjE4Jywga2V5OiAndWhwanc3JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTMuNjYgNi40OGExMCAxMCAwIDAgMCAxMy44NiAxMy44NicsIGtleTogJ2NsZHB3dicgfV0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgRGlhbWV0ZXJcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOFkybHlZMnhsSUdONFBTSXhPU0lnWTNrOUlqRTVJaUJ5UFNJeUlpQXZQZ29nSUR4amFYSmpiR1VnWTNnOUlqVWlJR041UFNJMUlpQnlQU0l5SWlBdlBnb2dJRHh3WVhSb0lHUTlJazAyTGpRNElETXVOalpoTVRBZ01UQWdNQ0F3SURFZ01UTXVPRFlnTVRNdU9EWWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaWJUWXVOREVnTmk0ME1TQXhNUzR4T0NBeE1TNHhPQ0lnTHo0S0lDQThjR0YwYUNCa1BTSk5NeTQyTmlBMkxqUTRZVEV3SURFd0lEQWdNQ0F3SURFekxqZzJJREV6TGpnMklpQXZQZ284TDNOMlp6NEspIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2RpYW1ldGVyXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgRGlhbWV0ZXIgPSBjcmVhdGVMdWNpZGVJY29uKCdkaWFtZXRlcicsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBEaWFtZXRlcjtcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgW1xuICAgICdwYXRoJyxcbiAgICB7XG4gICAgICBkOiAnTTIuNyAxMC4zYTIuNDEgMi40MSAwIDAgMCAwIDMuNDFsNy41OSA3LjU5YTIuNDEgMi40MSAwIDAgMCAzLjQxIDBsNy41OS03LjU5YTIuNDEgMi40MSAwIDAgMCAwLTMuNDFMMTMuNyAyLjcxYTIuNDEgMi40MSAwIDAgMC0zLjQxIDBaJyxcbiAgICAgIGtleTogJzF0cHh6MicsXG4gICAgfSxcbiAgXSxcbiAgWydwYXRoJywgeyBkOiAnTTkuMiA5LjJoLjAxJywga2V5OiAnMWI3YnZ0JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnbTE0LjUgOS41LTUgNScsIGtleTogJzE3cTRyNCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xNC43IDE0LjhoLjAxJywga2V5OiAnMTduc2g0JyB9XSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBEaWFtb25kUGVyY2VudFxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTWk0M0lERXdMak5oTWk0ME1TQXlMalF4SURBZ01DQXdJREFnTXk0ME1XdzNMalU1SURjdU5UbGhNaTQwTVNBeUxqUXhJREFnTUNBd0lETXVOREVnTUd3M0xqVTVMVGN1TlRsaE1pNDBNU0F5TGpReElEQWdNQ0F3SURBdE15NDBNVXd4TXk0M0lESXVOekZoTWk0ME1TQXlMalF4SURBZ01DQXdMVE11TkRFZ01Gb2lJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRUa3VNaUE1TGpKb0xqQXhJaUF2UGdvZ0lEeHdZWFJvSUdROUltMHhOQzQxSURrdU5TMDFJRFVpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVEUwTGpjZ01UUXVPR2d1TURFaUlDOCtDand2YzNablBnbz0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2RpYW1vbmQtcGVyY2VudFxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IERpYW1vbmRQZXJjZW50ID0gY3JlYXRlTHVjaWRlSWNvbignZGlhbW9uZC1wZXJjZW50JywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IERpYW1vbmRQZXJjZW50O1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdNMTIgOHY4Jywga2V5OiAnbmFwa3cyJyB9XSxcbiAgW1xuICAgICdwYXRoJyxcbiAgICB7XG4gICAgICBkOiAnTTIuNyAxMC4zYTIuNDEgMi40MSAwIDAgMCAwIDMuNDFsNy41OSA3LjU5YTIuNDEgMi40MSAwIDAgMCAzLjQxIDBsNy41OS03LjU5YTIuNDEgMi40MSAwIDAgMCAwLTMuNDFMMTMuNyAyLjcxYTIuNDEgMi40MSAwIDAgMC0zLjQxIDB6JyxcbiAgICAgIGtleTogJzFleTIwaicsXG4gICAgfSxcbiAgXSxcbiAgWydwYXRoJywgeyBkOiAnTTggMTJoOCcsIGtleTogJzF3Y3lldicgfV0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgRGlhbW9uZFBsdXNcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1USWdPSFk0SWlBdlBnb2dJRHh3WVhSb0lHUTlJazB5TGpjZ01UQXVNMkV5TGpReElESXVOREVnTUNBd0lEQWdNQ0F6TGpReGJEY3VOVGtnTnk0MU9XRXlMalF4SURJdU5ERWdNQ0F3SURBZ015NDBNU0F3YkRjdU5Ua3ROeTQxT1dFeUxqUXhJREl1TkRFZ01DQXdJREFnTUMwekxqUXhUREV6TGpjZ01pNDNNV0V5TGpReElESXVOREVnTUNBd0lEQXRNeTQwTVNBd2VpSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk9DQXhNbWc0SWlBdlBnbzhMM04yWno0PSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvZGlhbW9uZC1wbHVzXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgRGlhbW9uZFBsdXMgPSBjcmVhdGVMdWNpZGVJY29uKCdkaWFtb25kLXBsdXMnLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgRGlhbW9uZFBsdXM7XG4iLCJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbXG4gIFtcbiAgICAncGF0aCcsXG4gICAge1xuICAgICAgZDogJ00yLjcgMTAuM2EyLjQxIDIuNDEgMCAwIDAgMCAzLjQxbDcuNTkgNy41OWEyLjQxIDIuNDEgMCAwIDAgMy40MSAwbDcuNTktNy41OWEyLjQxIDIuNDEgMCAwIDAgMC0zLjQxbC03LjU5LTcuNTlhMi40MSAyLjQxIDAgMCAwLTMuNDEgMFonLFxuICAgICAga2V5OiAnMWYxcjBjJyxcbiAgICB9LFxuICBdLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIERpYW1vbmRcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1pNDNJREV3TGpOaE1pNDBNU0F5TGpReElEQWdNQ0F3SURBZ015NDBNV3czTGpVNUlEY3VOVGxoTWk0ME1TQXlMalF4SURBZ01DQXdJRE11TkRFZ01HdzNMalU1TFRjdU5UbGhNaTQwTVNBeUxqUXhJREFnTUNBd0lEQXRNeTQwTVd3dE55NDFPUzAzTGpVNVlUSXVOREVnTWk0ME1TQXdJREFnTUMwekxqUXhJREJhSWlBdlBnbzhMM04yWno0SykgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvZGlhbW9uZFxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IERpYW1vbmQgPSBjcmVhdGVMdWNpZGVJY29uKCdkaWFtb25kJywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IERpYW1vbmQ7XG4iLCJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbXG4gIFsncmVjdCcsIHsgd2lkdGg6ICcxOCcsIGhlaWdodDogJzE4JywgeDogJzMnLCB5OiAnMycsIHJ4OiAnMicsIHJ5OiAnMicsIGtleTogJzFtM2FnbicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xMiAxMmguMDEnLCBrZXk6ICcxbXAzamMnIH1dLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIERpY2UxXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjbVZqZENCM2FXUjBhRDBpTVRnaUlHaGxhV2RvZEQwaU1UZ2lJSGc5SWpNaUlIazlJak1pSUhKNFBTSXlJaUJ5ZVQwaU1pSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk1USWdNVEpvTGpBeElpQXZQZ284TDNOMlp6NEspIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2RpY2UtMVxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IERpY2UxID0gY3JlYXRlTHVjaWRlSWNvbignZGljZS0xJywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IERpY2UxO1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbJ3JlY3QnLCB7IHdpZHRoOiAnMTgnLCBoZWlnaHQ6ICcxOCcsIHg6ICczJywgeTogJzMnLCByeDogJzInLCByeTogJzInLCBrZXk6ICcxbTNhZ24nIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTUgOWguMDEnLCBrZXk6ICd4MWRkeHAnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNOSAxNWguMDEnLCBrZXk6ICdmenluNzEnIH1dLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIERpY2UyXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjbVZqZENCM2FXUjBhRDBpTVRnaUlHaGxhV2RvZEQwaU1UZ2lJSGc5SWpNaUlIazlJak1pSUhKNFBTSXlJaUJ5ZVQwaU1pSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk1UVWdPV2d1TURFaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRrZ01UVm9MakF4SWlBdlBnbzhMM04yWno0SykgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvZGljZS0yXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgRGljZTIgPSBjcmVhdGVMdWNpZGVJY29uKCdkaWNlLTInLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgRGljZTI7XG4iLCJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbXG4gIFsncmVjdCcsIHsgd2lkdGg6ICcxOCcsIGhlaWdodDogJzE4JywgeDogJzMnLCB5OiAnMycsIHJ4OiAnMicsIHJ5OiAnMicsIGtleTogJzFtM2FnbicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xNiA4aC4wMScsIGtleTogJ2NyNXU0dicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xMiAxMmguMDEnLCBrZXk6ICcxbXAzamMnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNOCAxNmguMDEnLCBrZXk6ICcxOHM2ZzknIH1dLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIERpY2UzXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjbVZqZENCM2FXUjBhRDBpTVRnaUlHaGxhV2RvZEQwaU1UZ2lJSGc5SWpNaUlIazlJak1pSUhKNFBTSXlJaUJ5ZVQwaU1pSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk1UWWdPR2d1TURFaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRFeUlERXlhQzR3TVNJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOT0NBeE5tZ3VNREVpSUM4K0Nqd3ZjM1puUGdvPSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvZGljZS0zXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgRGljZTMgPSBjcmVhdGVMdWNpZGVJY29uKCdkaWNlLTMnLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgRGljZTM7XG4iLCJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbXG4gIFsncmVjdCcsIHsgd2lkdGg6ICcxOCcsIGhlaWdodDogJzE4JywgeDogJzMnLCB5OiAnMycsIHJ4OiAnMicsIHJ5OiAnMicsIGtleTogJzFtM2FnbicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xNiA4aC4wMScsIGtleTogJ2NyNXU0dicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ004IDhoLjAxJywga2V5OiAnMWU0MTM2JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTggMTZoLjAxJywga2V5OiAnMThzNmc5JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTE2IDE2aC4wMScsIGtleTogJzFmOWg3dycgfV0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgRGljZTRcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNtVmpkQ0IzYVdSMGFEMGlNVGdpSUdobGFXZG9kRDBpTVRnaUlIZzlJak1pSUhrOUlqTWlJSEo0UFNJeUlpQnllVDBpTWlJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTVRZZ09HZ3VNREVpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVGdnT0dndU1ERWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRUZ2dNVFpvTGpBeElpQXZQZ29nSUR4d1lYUm9JR1E5SWsweE5pQXhObWd1TURFaUlDOCtDand2YzNablBnbz0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2RpY2UtNFxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IERpY2U0ID0gY3JlYXRlTHVjaWRlSWNvbignZGljZS00JywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IERpY2U0O1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbJ3JlY3QnLCB7IHdpZHRoOiAnMTgnLCBoZWlnaHQ6ICcxOCcsIHg6ICczJywgeTogJzMnLCByeDogJzInLCByeTogJzInLCBrZXk6ICcxbTNhZ24nIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTYgOGguMDEnLCBrZXk6ICdjcjV1NHYnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNOCA4aC4wMScsIGtleTogJzFlNDEzNicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ004IDE2aC4wMScsIGtleTogJzE4czZnOScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xNiAxNmguMDEnLCBrZXk6ICcxZjloN3cnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTIgMTJoLjAxJywga2V5OiAnMW1wM2pjJyB9XSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBEaWNlNVxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y21WamRDQjNhV1IwYUQwaU1UZ2lJR2hsYVdkb2REMGlNVGdpSUhnOUlqTWlJSGs5SWpNaUlISjRQU0l5SWlCeWVUMGlNaUlnTHo0S0lDQThjR0YwYUNCa1BTSk5NVFlnT0dndU1ERWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRUZ2dPR2d1TURFaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRnZ01UWm9MakF4SWlBdlBnb2dJRHh3WVhSb0lHUTlJazB4TmlBeE5tZ3VNREVpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVEV5SURFeWFDNHdNU0lnTHo0S1BDOXpkbWMrQ2c9PSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvZGljZS01XG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgRGljZTUgPSBjcmVhdGVMdWNpZGVJY29uKCdkaWNlLTUnLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgRGljZTU7XG4iLCJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbXG4gIFsncmVjdCcsIHsgd2lkdGg6ICcxOCcsIGhlaWdodDogJzE4JywgeDogJzMnLCB5OiAnMycsIHJ4OiAnMicsIHJ5OiAnMicsIGtleTogJzFtM2FnbicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xNiA4aC4wMScsIGtleTogJ2NyNXU0dicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xNiAxMmguMDEnLCBrZXk6ICcxbDZ4b3onIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTYgMTZoLjAxJywga2V5OiAnMWY5aDd3JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTggOGguMDEnLCBrZXk6ICcxZTQxMzYnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNOCAxMmguMDEnLCBrZXk6ICdjem00N2YnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNOCAxNmguMDEnLCBrZXk6ICcxOHM2ZzknIH1dLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIERpY2U2XG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjbVZqZENCM2FXUjBhRDBpTVRnaUlHaGxhV2RvZEQwaU1UZ2lJSGc5SWpNaUlIazlJak1pSUhKNFBTSXlJaUJ5ZVQwaU1pSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk1UWWdPR2d1TURFaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRFMklERXlhQzR3TVNJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTVRZZ01UWm9MakF4SWlBdlBnb2dJRHh3WVhSb0lHUTlJazA0SURob0xqQXhJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMDRJREV5YUM0d01TSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk9DQXhObWd1TURFaUlDOCtDand2YzNablBnbz0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2RpY2UtNlxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IERpY2U2ID0gY3JlYXRlTHVjaWRlSWNvbignZGljZS02JywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IERpY2U2O1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbJ3JlY3QnLCB7IHdpZHRoOiAnMTInLCBoZWlnaHQ6ICcxMicsIHg6ICcyJywgeTogJzEwJywgcng6ICcyJywgcnk6ICcyJywga2V5OiAnNmFncjJuJyB9XSxcbiAgW1xuICAgICdwYXRoJyxcbiAgICB7IGQ6ICdtMTcuOTIgMTQgMy41LTMuNWEyLjI0IDIuMjQgMCAwIDAgMC0zbC01LTQuOTJhMi4yNCAyLjI0IDAgMCAwLTMgMEwxMCA2Jywga2V5OiAnMW80ODd0JyB9LFxuICBdLFxuICBbJ3BhdGgnLCB7IGQ6ICdNNiAxOGguMDEnLCBrZXk6ICd1aHl3ZW4nIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTAgMTRoLjAxJywga2V5OiAnc3NyYnNrJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTE1IDZoLjAxJywga2V5OiAnY2JscGt5JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTE4IDloLjAxJywga2V5OiAnMjA2MWMwJyB9XSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBEaWNlc1xuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y21WamRDQjNhV1IwYUQwaU1USWlJR2hsYVdkb2REMGlNVElpSUhnOUlqSWlJSGs5SWpFd0lpQnllRDBpTWlJZ2NuazlJaklpSUM4K0NpQWdQSEJoZEdnZ1pEMGliVEUzTGpreUlERTBJRE11TlMwekxqVmhNaTR5TkNBeUxqSTBJREFnTUNBd0lEQXRNMnd0TlMwMExqa3lZVEl1TWpRZ01pNHlOQ0F3SURBZ01DMHpJREJNTVRBZ05pSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk5pQXhPR2d1TURFaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRFd0lERTBhQzR3TVNJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTVRVZ05tZ3VNREVpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVEU0SURsb0xqQXhJaUF2UGdvOEwzTjJaejRLKSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9kaWNlc1xuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IERpY2VzID0gY3JlYXRlTHVjaWRlSWNvbignZGljZXMnLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgRGljZXM7XG4iLCJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ00xMiAzdjE0Jywga2V5OiAnN2NmM3Y4JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTUgMTBoMTQnLCBrZXk6ICdlbHNiZnknIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNNSAyMWgxNCcsIGtleTogJzExYXd1MycgfV0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgRGlmZlxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTVRJZ00zWXhOQ0lnTHo0S0lDQThjR0YwYUNCa1BTSk5OU0F4TUdneE5DSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk5TQXlNV2d4TkNJZ0x6NEtQQzl6ZG1jK0NnPT0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2RpZmZcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBEaWZmID0gY3JlYXRlTHVjaWRlSWNvbignZGlmZicsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBEaWZmO1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbJ2NpcmNsZScsIHsgY3g6ICcxMicsIGN5OiAnMTInLCByOiAnMTAnLCBrZXk6ICcxbWdsYXknIH1dLFxuICBbJ2NpcmNsZScsIHsgY3g6ICcxMicsIGN5OiAnMTInLCByOiAnNCcsIGtleTogJzRleGlwMicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xMiAxMmguMDEnLCBrZXk6ICcxbXAzamMnIH1dLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIERpc2MyXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThZMmx5WTJ4bElHTjRQU0l4TWlJZ1kzazlJakV5SWlCeVBTSXhNQ0lnTHo0S0lDQThZMmx5WTJ4bElHTjRQU0l4TWlJZ1kzazlJakV5SWlCeVBTSTBJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHhNaUF4TW1ndU1ERWlJQzgrQ2p3dmMzWm5QZ289KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9kaXNjLTJcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBEaXNjMiA9IGNyZWF0ZUx1Y2lkZUljb24oJ2Rpc2MtMicsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBEaXNjMjtcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgWydjaXJjbGUnLCB7IGN4OiAnMTInLCBjeTogJzEyJywgcjogJzEwJywga2V5OiAnMW1nbGF5JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTYgMTJjMC0xLjcuNy0zLjIgMS44LTQuMicsIGtleTogJ29xa2FyeCcgfV0sXG4gIFsnY2lyY2xlJywgeyBjeDogJzEyJywgY3k6ICcxMicsIHI6ICcyJywga2V5OiAnMWM5cDc4JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTE4IDEyYzAgMS43LS43IDMuMi0xLjggNC4yJywga2V5OiAnMWVhaDloJyB9XSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBEaXNjM1xuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4WTJseVkyeGxJR040UFNJeE1pSWdZM2s5SWpFeUlpQnlQU0l4TUNJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTmlBeE1tTXdMVEV1Tnk0M0xUTXVNaUF4TGpndE5DNHlJaUF2UGdvZ0lEeGphWEpqYkdVZ1kzZzlJakV5SWlCamVUMGlNVElpSUhJOUlqSWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRURTRJREV5WXpBZ01TNDNMUzQzSURNdU1pMHhMamdnTkM0eUlpQXZQZ284TDNOMlp6NEspIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2Rpc2MtM1xuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IERpc2MzID0gY3JlYXRlTHVjaWRlSWNvbignZGlzYy0zJywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IERpc2MzO1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbJ3JlY3QnLCB7IHdpZHRoOiAnMTgnLCBoZWlnaHQ6ICcxOCcsIHg6ICczJywgeTogJzMnLCByeDogJzInLCBrZXk6ICdhZml0djcnIH1dLFxuICBbJ2NpcmNsZScsIHsgY3g6ICcxMicsIGN5OiAnMTInLCByOiAnNScsIGtleTogJ25kODJ1ZicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xMiAxMmguMDEnLCBrZXk6ICcxbXAzamMnIH1dLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIERpc2NBbGJ1bVxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y21WamRDQjNhV1IwYUQwaU1UZ2lJR2hsYVdkb2REMGlNVGdpSUhnOUlqTWlJSGs5SWpNaUlISjRQU0l5SWlBdlBnb2dJRHhqYVhKamJHVWdZM2c5SWpFeUlpQmplVDBpTVRJaUlISTlJalVpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVEV5SURFeWFDNHdNU0lnTHo0S1BDOXpkbWMrQ2c9PSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvZGlzYy1hbGJ1bVxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IERpc2NBbGJ1bSA9IGNyZWF0ZUx1Y2lkZUljb24oJ2Rpc2MtYWxidW0nLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgRGlzY0FsYnVtO1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbJ2NpcmNsZScsIHsgY3g6ICcxMicsIGN5OiAnMTInLCByOiAnMTAnLCBrZXk6ICcxbWdsYXknIH1dLFxuICBbJ2NpcmNsZScsIHsgY3g6ICcxMicsIGN5OiAnMTInLCByOiAnMicsIGtleTogJzFjOXA3OCcgfV0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgRGlzY1xuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4WTJseVkyeGxJR040UFNJeE1pSWdZM2s5SWpFeUlpQnlQU0l4TUNJZ0x6NEtJQ0E4WTJseVkyeGxJR040UFNJeE1pSWdZM2s5SWpFeUlpQnlQU0l5SWlBdlBnbzhMM04yWno0SykgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvZGlzY1xuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IERpc2MgPSBjcmVhdGVMdWNpZGVJY29uKCdkaXNjJywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IERpc2M7XG4iLCJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbXG4gIFsnY2lyY2xlJywgeyBjeDogJzEyJywgY3k6ICc2JywgcjogJzEnLCBrZXk6ICcxYmg3bzEnIH1dLFxuICBbJ2xpbmUnLCB7IHgxOiAnNScsIHgyOiAnMTknLCB5MTogJzEyJywgeTI6ICcxMicsIGtleTogJzEzYjV3bicgfV0sXG4gIFsnY2lyY2xlJywgeyBjeDogJzEyJywgY3k6ICcxOCcsIHI6ICcxJywga2V5OiAnbHFiOXQ1JyB9XSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBEaXZpZGVcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOFkybHlZMnhsSUdONFBTSXhNaUlnWTNrOUlqWWlJSEk5SWpFaUlDOCtDaUFnUEd4cGJtVWdlREU5SWpVaUlIZ3lQU0l4T1NJZ2VURTlJakV5SWlCNU1qMGlNVElpSUM4K0NpQWdQR05wY21Oc1pTQmplRDBpTVRJaUlHTjVQU0l4T0NJZ2NqMGlNU0lnTHo0S1BDOXpkbWMrQ2c9PSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvZGl2aWRlXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgRGl2aWRlID0gY3JlYXRlTHVjaWRlSWNvbignZGl2aWRlJywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IERpdmlkZTtcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTE1IDJjLTEuMzUgMS41LTIuMDkyIDMtMi41IDQuNUwxNCA4Jywga2V5OiAnMWJpdnJyJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnbTE3IDYtMi44OTEtMi44OTEnLCBrZXk6ICd4dTZwMmYnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMiAxNWMzLjMzMy0zIDYuNjY3LTMgMTAtMycsIGtleTogJ254aXgzMCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ20yIDIgMjAgMjAnLCBrZXk6ICcxb29ld3knIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdtMjAgOSAuODkxLjg5MScsIGtleTogJzN4d2s3ZycgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00yMiA5Yy0xLjUgMS4zNS0zIDIuMDkyLTQuNSAyLjVsLTEtMScsIGtleTogJzE4Y3V0cicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00zLjEwOSAxNC4xMDkgNCAxNScsIGtleTogJ3E3NmFvaCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ202LjUgMTIuNSAxIDEnLCBrZXk6ICdjczM1a3knIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdtNyAxOCAyLjg5MSAyLjg5MScsIGtleTogJzFzaXNpdCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ005IDIyYzEuMzUtMS41IDIuMDkyLTMgMi41LTQuNUwxMCAxNicsIGtleTogJ3JsdmVpMycgfV0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgRG5hT2ZmXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NVFVnTW1NdE1TNHpOU0F4TGpVdE1pNHdPVElnTXkweUxqVWdOQzQxVERFMElEZ2lJQzgrQ2lBZ1BIQmhkR2dnWkQwaWJURTNJRFl0TWk0NE9URXRNaTQ0T1RFaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRJZ01UVmpNeTR6TXpNdE15QTJMalkyTnkweklERXdMVE1pSUM4K0NpQWdQSEJoZEdnZ1pEMGliVElnTWlBeU1DQXlNQ0lnTHo0S0lDQThjR0YwYUNCa1BTSnRNakFnT1NBdU9Ea3hMamc1TVNJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTWpJZ09XTXRNUzQxSURFdU16VXRNeUF5TGpBNU1pMDBMalVnTWk0MWJDMHhMVEVpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVE11TVRBNUlERTBMakV3T1NBMElERTFJaUF2UGdvZ0lEeHdZWFJvSUdROUltMDJMalVnTVRJdU5TQXhJREVpSUM4K0NpQWdQSEJoZEdnZ1pEMGliVGNnTVRnZ01pNDRPVEVnTWk0NE9URWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRUa2dNakpqTVM0ek5TMHhMalVnTWk0d09USXRNeUF5TGpVdE5DNDFUREV3SURFMklpQXZQZ284TDNOMlp6NEspIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2RuYS1vZmZcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBEbmFPZmYgPSBjcmVhdGVMdWNpZGVJY29uKCdkbmEtb2ZmJywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IERuYU9mZjtcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnbTEwIDE2IDEuNSAxLjUnLCBrZXk6ICcxMWxja2onIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdtMTQgOC0xLjUtMS41Jywga2V5OiAnMW9objhpJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTE1IDJjLTEuNzk4IDEuOTk4LTIuNTE4IDMuOTk1LTIuODA3IDUuOTkzJywga2V5OiAnODB1djhpJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnbTE2LjUgMTAuNSAxIDEnLCBrZXk6ICc2OTZ4bjUnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdtMTcgNi0yLjg5MS0yLjg5MScsIGtleTogJ3h1NnAyZicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00yIDE1YzYuNjY3LTYgMTMuMzMzIDAgMjAtNicsIGtleTogJzFweXI1MycgfV0sXG4gIFsncGF0aCcsIHsgZDogJ20yMCA5IC44OTEuODkxJywga2V5OiAnM3h3azdnJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTMuMTA5IDE0LjEwOSA0IDE1Jywga2V5OiAncTc2YW9oJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnbTYuNSAxMi41IDEgMScsIGtleTogJ2NzMzVreScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ203IDE4IDIuODkxIDIuODkxJywga2V5OiAnMXNpc2l0JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTkgMjJjMS43OTgtMS45OTggMi41MTgtMy45OTUgMi44MDctNS45OTMnLCBrZXk6ICdxM2hieHAnIH1dLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIERuYVxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0p0TVRBZ01UWWdNUzQxSURFdU5TSWdMejRLSUNBOGNHRjBhQ0JrUFNKdE1UUWdPQzB4TGpVdE1TNDFJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHhOU0F5WXkweExqYzVPQ0F4TGprNU9DMHlMalV4T0NBekxqazVOUzB5TGpnd055QTFMams1TXlJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0p0TVRZdU5TQXhNQzQxSURFZ01TSWdMejRLSUNBOGNHRjBhQ0JrUFNKdE1UY2dOaTB5TGpnNU1TMHlMamc1TVNJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTWlBeE5XTTJMalkyTnkwMklERXpMak16TXlBd0lESXdMVFlpSUM4K0NpQWdQSEJoZEdnZ1pEMGliVEl3SURrZ0xqZzVNUzQ0T1RFaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRNdU1UQTVJREUwTGpFd09TQTBJREUxSWlBdlBnb2dJRHh3WVhSb0lHUTlJbTAyTGpVZ01USXVOU0F4SURFaUlDOCtDaUFnUEhCaGRHZ2daRDBpYlRjZ01UZ2dNaTQ0T1RFZ01pNDRPVEVpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVGtnTWpKak1TNDNPVGd0TVM0NU9UZ2dNaTQxTVRndE15NDVPVFVnTWk0NE1EY3ROUzQ1T1RNaUlDOCtDand2YzNablBnbz0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2RuYVxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IERuYSA9IGNyZWF0ZUx1Y2lkZUljb24oJ2RuYScsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBEbmE7XG4iLCJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ00yIDhoMjAnLCBrZXk6ICdkMTFjczcnIH1dLFxuICBbJ3JlY3QnLCB7IHdpZHRoOiAnMjAnLCBoZWlnaHQ6ICcxNicsIHg6ICcyJywgeTogJzQnLCByeDogJzInLCBrZXk6ICcxOG4zazEnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNNiAxNmgxMicsIGtleTogJ3U1MjJrdCcgfV0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgRG9ja1xuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTWlBNGFESXdJaUF2UGdvZ0lEeHlaV04wSUhkcFpIUm9QU0l5TUNJZ2FHVnBaMmgwUFNJeE5pSWdlRDBpTWlJZ2VUMGlOQ0lnY25nOUlqSWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRUWWdNVFpvTVRJaUlDOCtDand2YzNablBnbz0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2RvY2tcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBEb2NrID0gY3JlYXRlTHVjaWRlSWNvbignZG9jaycsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBEb2NrO1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdNMTEuMjUgMTYuMjVoMS41TDEyIDE3eicsIGtleTogJ3c3amgzNScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xNiAxNHYuNScsIGtleTogJzFsYWpkeicgfV0sXG4gIFtcbiAgICAncGF0aCcsXG4gICAge1xuICAgICAgZDogJ000LjQyIDExLjI0N0ExMy4xNTIgMTMuMTUyIDAgMCAwIDQgMTQuNTU2QzQgMTguNzI4IDcuNTgyIDIxIDEyIDIxczgtMi4yNzIgOC02LjQ0NGExMS43MDIgMTEuNzAyIDAgMCAwLS40OTMtMy4zMDknLFxuICAgICAga2V5OiAndTdzOXVlJyxcbiAgICB9LFxuICBdLFxuICBbJ3BhdGgnLCB7IGQ6ICdNOCAxNHYuNScsIGtleTogJzFuemdkYicgfV0sXG4gIFtcbiAgICAncGF0aCcsXG4gICAge1xuICAgICAgZDogJ004LjUgOC41Yy0uMzg0IDEuMDUtMS4wODMgMi4wMjgtMi4zNDQgMi41LTEuOTMxLjcyMi0zLjU3Ni0uMjk3LTMuNjU2LTEtLjExMy0uOTk0IDEuMTc3LTYuNTMgNC03IDEuOTIzLS4zMjEgMy42NTEuODQ1IDMuNjUxIDIuMjM1QTcuNDk3IDcuNDk3IDAgMCAxIDE0IDUuMjc3YzAtMS4zOSAxLjg0NC0yLjU5OCAzLjc2Ny0yLjI3NyAyLjgyMy40NyA0LjExMyA2LjAwNiA0IDctLjA4LjcwMy0xLjcyNSAxLjcyMi0zLjY1NiAxLTEuMjYxLS40NzItMS44NTUtMS40NS0yLjIzOS0yLjUnLFxuICAgICAga2V5OiAndjhocmljJyxcbiAgICB9LFxuICBdLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIERvZ1xuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTVRFdU1qVWdNVFl1TWpWb01TNDFUREV5SURFM2VpSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk1UWWdNVFIyTGpVaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRRdU5ESWdNVEV1TWpRM1FURXpMakUxTWlBeE15NHhOVElnTUNBd0lEQWdOQ0F4TkM0MU5UWkROQ0F4T0M0M01qZ2dOeTQxT0RJZ01qRWdNVElnTWpGek9DMHlMakkzTWlBNExUWXVORFEwWVRFeExqY3dNaUF4TVM0M01ESWdNQ0F3SURBdExqUTVNeTB6TGpNd09TSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk9DQXhOSFl1TlNJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOT0M0MUlEZ3VOV010TGpNNE5DQXhMakExTFRFdU1EZ3pJREl1TURJNExUSXVNelEwSURJdU5TMHhMamt6TVM0M01qSXRNeTQxTnpZdExqSTVOeTB6TGpZMU5pMHhMUzR4TVRNdExqazVOQ0F4TGpFM055MDJMalV6SURRdE55QXhMamt5TXkwdU16SXhJRE11TmpVeExqZzBOU0F6TGpZMU1TQXlMakl6TlVFM0xqUTVOeUEzTGpRNU55QXdJREFnTVNBeE5DQTFMakkzTjJNd0xURXVNemtnTVM0NE5EUXRNaTQxT1RnZ015NDNOamN0TWk0eU56Y2dNaTQ0TWpNdU5EY2dOQzR4TVRNZ05pNHdNRFlnTkNBM0xTNHdPQzQzTURNdE1TNDNNalVnTVM0M01qSXRNeTQyTlRZZ01TMHhMakkyTVMwdU5EY3lMVEV1T0RVMUxURXVORFV0TWk0eU16a3RNaTQxSWlBdlBnbzhMM04yWno0SykgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvZG9nXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgRG9nID0gY3JlYXRlTHVjaWRlSWNvbignZG9nJywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IERvZztcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgWydsaW5lJywgeyB4MTogJzEyJywgeDI6ICcxMicsIHkxOiAnMicsIHkyOiAnMjInLCBrZXk6ICc3ZXF5cWgnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTcgNUg5LjVhMy41IDMuNSAwIDAgMCAwIDdoNWEzLjUgMy41IDAgMCAxIDAgN0g2Jywga2V5OiAnMWIwcDRzJyB9XSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBEb2xsYXJTaWduXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThiR2x1WlNCNE1UMGlNVElpSUhneVBTSXhNaUlnZVRFOUlqSWlJSGt5UFNJeU1pSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk1UY2dOVWc1TGpWaE15NDFJRE11TlNBd0lEQWdNQ0F3SURkb05XRXpMalVnTXk0MUlEQWdNQ0F4SURBZ04wZzJJaUF2UGdvOEwzTjJaejRLKSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9kb2xsYXItc2lnblxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IERvbGxhclNpZ24gPSBjcmVhdGVMdWNpZGVJY29uKCdkb2xsYXItc2lnbicsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBEb2xsYXJTaWduO1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdNMTAgMTJoLjAxJywga2V5OiAnMWt4cjJjJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTE4IDlWNmEyIDIgMCAwIDAtMi0ySDhhMiAyIDAgMCAwLTIgMnYxNCcsIGtleTogJzFibmhtZycgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00yIDIwaDgnLCBrZXk6ICcxMG50dzEnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMjAgMTd2LTJhMiAyIDAgMSAwLTQgMHYyJywga2V5OiAncHdheG5yJyB9XSxcbiAgWydyZWN0JywgeyB4OiAnMTQnLCB5OiAnMTcnLCB3aWR0aDogJzgnLCBoZWlnaHQ6ICc1Jywgcng6ICcxJywga2V5OiAnMTVwamN5JyB9XSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBEb29yQ2xvc2VkTG9ja2VkXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NVEFnTVRKb0xqQXhJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHhPQ0E1VmpaaE1pQXlJREFnTUNBd0xUSXRNa2c0WVRJZ01pQXdJREFnTUMweUlESjJNVFFpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVElnTWpCb09DSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk1qQWdNVGQyTFRKaE1pQXlJREFnTVNBd0xUUWdNSFl5SWlBdlBnb2dJRHh5WldOMElIZzlJakUwSWlCNVBTSXhOeUlnZDJsa2RHZzlJamdpSUdobGFXZG9kRDBpTlNJZ2NuZzlJakVpSUM4K0Nqd3ZjM1puUGdvPSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvZG9vci1jbG9zZWQtbG9ja2VkXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgRG9vckNsb3NlZExvY2tlZCA9IGNyZWF0ZUx1Y2lkZUljb24oJ2Rvb3ItY2xvc2VkLWxvY2tlZCcsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBEb29yQ2xvc2VkTG9ja2VkO1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbXG4gICAgJ3BhdGgnLFxuICAgIHtcbiAgICAgIGQ6ICdNMjAuNSAxMGEyLjUgMi41IDAgMCAxLTIuNC0zSDE4YTIuOTUgMi45NSAwIDAgMS0yLjYtNC40IDEwIDEwIDAgMSAwIDYuMyA3LjFjLS4zLjItLjguMy0xLjIuMycsXG4gICAgICBrZXk6ICcxOXNyM3gnLFxuICAgIH0sXG4gIF0sXG4gIFsnY2lyY2xlJywgeyBjeDogJzEyJywgY3k6ICcxMicsIHI6ICczJywga2V5OiAnMXY3enJkJyB9XSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBEb251dFxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTWpBdU5TQXhNR0V5TGpVZ01pNDFJREFnTUNBeExUSXVOQzB6U0RFNFlUSXVPVFVnTWk0NU5TQXdJREFnTVMweUxqWXROQzQwSURFd0lERXdJREFnTVNBd0lEWXVNeUEzTGpGakxTNHpMakl0TGpndU15MHhMakl1TXlJZ0x6NEtJQ0E4WTJseVkyeGxJR040UFNJeE1pSWdZM2s5SWpFeUlpQnlQU0l6SWlBdlBnbzhMM04yWno0SykgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvZG9udXRcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBEb251dCA9IGNyZWF0ZUx1Y2lkZUljb24oJ2RvbnV0JywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IERvbnV0O1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdNMTAgMTJoLjAxJywga2V5OiAnMWt4cjJjJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTE4IDIwVjZhMiAyIDAgMCAwLTItMkg4YTIgMiAwIDAgMC0yIDJ2MTQnLCBrZXk6ICczNnF1OWUnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMiAyMGgyMCcsIGtleTogJ293b215NScgfV0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgRG9vckNsb3NlZFxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTVRBZ01USm9MakF4SWlBdlBnb2dJRHh3WVhSb0lHUTlJazB4T0NBeU1GWTJZVElnTWlBd0lEQWdNQzB5TFRKSU9HRXlJRElnTUNBd0lEQXRNaUF5ZGpFMElpQXZQZ29nSUR4d1lYUm9JR1E5SWsweUlESXdhREl3SWlBdlBnbzhMM04yWno0SykgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvZG9vci1jbG9zZWRcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBEb29yQ2xvc2VkID0gY3JlYXRlTHVjaWRlSWNvbignZG9vci1jbG9zZWQnLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgRG9vckNsb3NlZDtcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtbJ2NpcmNsZScsIHsgY3g6ICcxMi4xJywgY3k6ICcxMi4xJywgcjogJzEnLCBrZXk6ICcxOGQ3ZTUnIH1dXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIERvdFxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4WTJseVkyeGxJR040UFNJeE1pNHhJaUJqZVQwaU1USXVNU0lnY2owaU1TSWdMejRLUEM5emRtYytDZz09KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9kb3RcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBEb3QgPSBjcmVhdGVMdWNpZGVJY29uKCdkb3QnLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgRG90O1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdNMTIgMTVWMycsIGtleTogJ205ZzF4MScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00yMSAxNXY0YTIgMiAwIDAgMS0yIDJINWEyIDIgMCAwIDEtMi0ydi00Jywga2V5OiAnaWg3bjNoJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnbTcgMTAgNSA1IDUtNScsIGtleTogJ2Jyc243MCcgfV0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgRG93bmxvYWRcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1USWdNVFZXTXlJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTWpFZ01UVjJOR0V5SURJZ01DQXdJREV0TWlBeVNEVmhNaUF5SURBZ01DQXhMVEl0TW5ZdE5DSWdMejRLSUNBOGNHRjBhQ0JrUFNKdE55QXhNQ0ExSURVZ05TMDFJaUF2UGdvOEwzTjJaejRLKSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9kb3dubG9hZFxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IERvd25sb2FkID0gY3JlYXRlTHVjaWRlSWNvbignZG93bmxvYWQnLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgRG93bmxvYWQ7XG4iLCJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ00xMSAyMEgyJywga2V5OiAnbmxjZnZ6JyB9XSxcbiAgW1xuICAgICdwYXRoJyxcbiAgICB7XG4gICAgICBkOiAnTTExIDQuNTYydjE2LjE1N2ExIDEgMCAwIDAgMS4yNDIuOTdMMTkgMjBWNS41NjJhMiAyIDAgMCAwLTEuNTE1LTEuOTRsLTQtMUEyIDIgMCAwIDAgMTEgNC41NjF6JyxcbiAgICAgIGtleTogJ2F1NHoxMycsXG4gICAgfSxcbiAgXSxcbiAgWydwYXRoJywgeyBkOiAnTTExIDRIOGEyIDIgMCAwIDAtMiAydjE0Jywga2V5OiAnNzRyMW1rJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTE0IDEyaC4wMScsIGtleTogJzFqZmw3eicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00yMiAyMGgtMycsIGtleTogJ3ZocnN6JyB9XSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBEb29yT3BlblxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTVRFZ01qQklNaUlnTHo0S0lDQThjR0YwYUNCa1BTSk5NVEVnTkM0MU5qSjJNVFl1TVRVM1lURWdNU0F3SURBZ01DQXhMakkwTWk0NU4wd3hPU0F5TUZZMUxqVTJNbUV5SURJZ01DQXdJREF0TVM0MU1UVXRNUzQ1Tkd3dE5DMHhRVElnTWlBd0lEQWdNQ0F4TVNBMExqVTJNWG9pSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVEV4SURSSU9HRXlJRElnTUNBd0lEQXRNaUF5ZGpFMElpQXZQZ29nSUR4d1lYUm9JR1E5SWsweE5DQXhNbWd1TURFaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRJeUlESXdhQzB6SWlBdlBnbzhMM04yWno0SykgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvZG9vci1vcGVuXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgRG9vck9wZW4gPSBjcmVhdGVMdWNpZGVJY29uKCdkb29yLW9wZW4nLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgRG9vck9wZW47XG4iLCJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ20xMi45OSA2Ljc0IDEuOTMgMy40NCcsIGtleTogJ2l3YWd2ZCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xOS4xMzYgMTJhMTAgMTAgMCAwIDEtMTQuMjcxIDAnLCBrZXk6ICdwcG1sbzQnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdtMjEgMjEtMi4xNi0zLjg0Jywga2V5OiAndnlsYmN0JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnbTMgMjEgOC4wMi0xNC4yNicsIGtleTogJzFzc2F3NCcgfV0sXG4gIFsnY2lyY2xlJywgeyBjeDogJzEyJywgY3k6ICc1JywgcjogJzInLCBrZXk6ICdmMXVyOTInIH1dLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIERyYWZ0aW5nQ29tcGFzc1xuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0p0TVRJdU9Ua2dOaTQzTkNBeExqa3pJRE11TkRRaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRFNUxqRXpOaUF4TW1FeE1DQXhNQ0F3SURBZ01TMHhOQzR5TnpFZ01DSWdMejRLSUNBOGNHRjBhQ0JrUFNKdE1qRWdNakV0TWk0eE5pMHpMamcwSWlBdlBnb2dJRHh3WVhSb0lHUTlJbTB6SURJeElEZ3VNREl0TVRRdU1qWWlJQzgrQ2lBZ1BHTnBjbU5zWlNCamVEMGlNVElpSUdONVBTSTFJaUJ5UFNJeUlpQXZQZ284TDNOMlp6NEspIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2RyYWZ0aW5nLWNvbXBhc3NcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBEcmFmdGluZ0NvbXBhc3MgPSBjcmVhdGVMdWNpZGVJY29uKCdkcmFmdGluZy1jb21wYXNzJywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IERyYWZ0aW5nQ29tcGFzcztcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTEwIDExaC4wMScsIGtleTogJ2QyYXQzbCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xNCA2aC4wMScsIGtleTogJ2swMjh1YicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xOCA2aC4wMScsIGtleTogJzF2NHdzdycgfV0sXG4gIFsncGF0aCcsIHsgZDogJ002LjUgMTMuMWguMDEnLCBrZXk6ICcxNzQ4aWEnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMjIgNWMwIDktNCAxMi02IDEycy02LTMtNi0xMmMwLTIgMi0zIDYtM3M2IDEgNiAzJywga2V5OiAnMTcyeXp2JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTE3LjQgOS45Yy0uOC44LTIgLjgtMi44IDAnLCBrZXk6ICcxb2J2MHcnIH1dLFxuICBbXG4gICAgJ3BhdGgnLFxuICAgIHtcbiAgICAgIGQ6ICdNMTAuMSA3LjFDOSA3LjIgNy43IDcuNyA2IDguNmMtMy41IDItNC43IDMuOS0zLjcgNS42IDQuNSA3LjggOS41IDguNCAxMS4yIDcuNC45LS41IDEuOS0yLjEgMS45LTQuNycsXG4gICAgICBrZXk6ICdycWpsOGknLFxuICAgIH0sXG4gIF0sXG4gIFsncGF0aCcsIHsgZDogJ005LjEgMTYuNWMuMy0xLjEgMS40LTEuNyAyLjQtMS40Jywga2V5OiAnMW1yNnd5JyB9XSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBEcmFtYVxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTVRBZ01URm9MakF4SWlBdlBnb2dJRHh3WVhSb0lHUTlJazB4TkNBMmFDNHdNU0lnTHo0S0lDQThjR0YwYUNCa1BTSk5NVGdnTm1ndU1ERWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRUWXVOU0F4TXk0eGFDNHdNU0lnTHo0S0lDQThjR0YwYUNCa1BTSk5NaklnTldNd0lEa3ROQ0F4TWkwMklERXljeTAyTFRNdE5pMHhNbU13TFRJZ01pMHpJRFl0TTNNMklERWdOaUF6SWlBdlBnb2dJRHh3WVhSb0lHUTlJazB4Tnk0MElEa3VPV010TGpndU9DMHlJQzQ0TFRJdU9DQXdJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHhNQzR4SURjdU1VTTVJRGN1TWlBM0xqY2dOeTQzSURZZ09DNDJZeTB6TGpVZ01pMDBMamNnTXk0NUxUTXVOeUExTGpZZ05DNDFJRGN1T0NBNUxqVWdPQzQwSURFeExqSWdOeTQwTGprdExqVWdNUzQ1TFRJdU1TQXhMamt0TkM0M0lpQXZQZ29nSUR4d1lYUm9JR1E5SWswNUxqRWdNVFl1TldNdU15MHhMakVnTVM0MExURXVOeUF5TGpRdE1TNDBJaUF2UGdvOEwzTjJaejRLKSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9kcmFtYVxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IERyYW1hID0gY3JlYXRlTHVjaWRlSWNvbignZHJhbWEnLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgRHJhbWE7XG4iLCJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbXG4gIFsnY2lyY2xlJywgeyBjeDogJzEyJywgY3k6ICcxMicsIHI6ICcxMCcsIGtleTogJzFtZ2xheScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xOS4xMyA1LjA5QzE1LjIyIDkuMTQgMTAgMTAuNDQgMi4yNSAxMC45NCcsIGtleTogJ2hwZWoxJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTIxLjc1IDEyLjg0Yy02LjYyLTEuNDEtMTIuMTQgMS0xNi4zOCA2LjMyJywga2V5OiAnMXRyNDRvJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTguNTYgMi43NWM0LjM3IDYgNiA5LjQyIDggMTcuNzInLCBrZXk6ICdrYmg2OTEnIH1dLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIERyaWJiYmxlXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThZMmx5WTJ4bElHTjRQU0l4TWlJZ1kzazlJakV5SWlCeVBTSXhNQ0lnTHo0S0lDQThjR0YwYUNCa1BTSk5NVGt1TVRNZ05TNHdPVU14TlM0eU1pQTVMakUwSURFd0lERXdMalEwSURJdU1qVWdNVEF1T1RRaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRJeExqYzFJREV5TGpnMFl5MDJMall5TFRFdU5ERXRNVEl1TVRRZ01TMHhOaTR6T0NBMkxqTXlJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMDRMalUySURJdU56VmpOQzR6TnlBMklEWWdPUzQwTWlBNElERTNMamN5SWlBdlBnbzhMM04yWno0SykgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvZHJpYmJibGVcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKiBAZGVwcmVjYXRlZCBCcmFuZCBpY29ucyBoYXZlIGJlZW4gZGVwcmVjYXRlZCBhbmQgYXJlIGR1ZSB0byBiZSByZW1vdmVkLCBwbGVhc2UgcmVmZXIgdG8gaHR0cHM6Ly9naXRodWIuY29tL2x1Y2lkZS1pY29ucy9sdWNpZGUvaXNzdWVzLzY3MC4gV2UgcmVjb21tZW5kIHVzaW5nIGh0dHBzOi8vc2ltcGxlaWNvbnMub3JnLz9xPWRyaWJiYmxlIGluc3RlYWQuIFRoaXMgaWNvbiB3aWxsIGJlIHJlbW92ZWQgaW4gdjEuMFxuICovXG5jb25zdCBEcmliYmJsZSA9IGNyZWF0ZUx1Y2lkZUljb24oJ2RyaWJiYmxlJywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IERyaWJiYmxlO1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbXG4gICAgJ3BhdGgnLFxuICAgIHsgZDogJ00xMCAxOGExIDEgMCAwIDEgMSAxdjJhMSAxIDAgMCAxLTEgMUg1YTMgMyAwIDAgMS0zLTMgMSAxIDAgMCAxIDEtMXonLCBrZXk6ICdpb3F4YjEnIH0sXG4gIF0sXG4gIFtcbiAgICAncGF0aCcsXG4gICAge1xuICAgICAgZDogJ00xMyAxMEg0YTIgMiAwIDAgMS0yLTJWNGEyIDIgMCAwIDEgMi0yaDlhMSAxIDAgMCAxIDEgMXY2YTEgMSAwIDAgMS0xIDFsLS44MSAzLjI0MmExIDEgMCAwIDEtLjk3Ljc1OEg4JyxcbiAgICAgIGtleTogJzFyczU5bicsXG4gICAgfSxcbiAgXSxcbiAgWydwYXRoJywgeyBkOiAnTTE0IDRoM2ExIDEgMCAwIDEgMSAxdjJhMSAxIDAgMCAxLTEgMWgtMycsIGtleTogJzEwNWVnYScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xOCA2aDQnLCBrZXk6ICc2NnU5NWcnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdtNSAxMC0yIDgnLCBrZXk6ICd4dDJsaWMnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdtNyAxOCAyLTgnLCBrZXk6ICcxYnprdTInIH1dLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIERyaWxsXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NVEFnTVRoaE1TQXhJREFnTUNBeElERWdNWFl5WVRFZ01TQXdJREFnTVMweElERklOV0V6SURNZ01DQXdJREV0TXkweklERWdNU0F3SURBZ01TQXhMVEY2SWlBdlBnb2dJRHh3WVhSb0lHUTlJazB4TXlBeE1FZzBZVElnTWlBd0lEQWdNUzB5TFRKV05HRXlJRElnTUNBd0lERWdNaTB5YURsaE1TQXhJREFnTUNBeElERWdNWFkyWVRFZ01TQXdJREFnTVMweElERnNMUzQ0TVNBekxqSTBNbUV4SURFZ01DQXdJREV0TGprM0xqYzFPRWc0SWlBdlBnb2dJRHh3WVhSb0lHUTlJazB4TkNBMGFETmhNU0F4SURBZ01DQXhJREVnTVhZeVlURWdNU0F3SURBZ01TMHhJREZvTFRNaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRFNElEWm9OQ0lnTHo0S0lDQThjR0YwYUNCa1BTSnROU0F4TUMweUlEZ2lJQzgrQ2lBZ1BIQmhkR2dnWkQwaWJUY2dNVGdnTWkwNElpQXZQZ284TDNOMlp6NEspIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2RyaWxsXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgRHJpbGwgPSBjcmVhdGVMdWNpZGVJY29uKCdkcmlsbCcsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBEcmlsbDtcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTEwIDEwIDcgNycsIGtleTogJ3pwMTRrNycgfV0sXG4gIFsncGF0aCcsIHsgZDogJ20xMCAxNC0zIDMnLCBrZXk6ICcxanJweGsnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdtMTQgMTAgMy0zJywga2V5OiAnN3RpZ2FtJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnbTE0IDE0IDMgMycsIGtleTogJ3ZtMjNwMycgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xNC4yMDUgNC4xMzlhNCA0IDAgMSAxIDUuNDM5IDUuODYzJywga2V5OiAnMXRtNXAyJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTE5LjYzNyAxNGE0IDQgMCAxIDEtNS40MzIgNS44NjgnLCBrZXk6ICcxNmVnaTInIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNNC4zNjcgMTBhNCA0IDAgMSAxIDUuNDM4LTUuODYyJywga2V5OiAnMXd0YTZhJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTkuNzk1IDE5Ljg2MmE0IDQgMCAxIDEtNS40MjktNS44NzMnLCBrZXk6ICdxMzlocHYnIH1dLFxuICBbJ3JlY3QnLCB7IHg6ICcxMCcsIHk6ICc4Jywgd2lkdGg6ICc0JywgaGVpZ2h0OiAnOCcsIHJ4OiAnMScsIGtleTogJ3Bocmp0MScgfV0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgRHJvbmVcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1UQWdNVEFnTnlBM0lpQXZQZ29nSUR4d1lYUm9JR1E5SW0weE1DQXhOQzB6SURNaUlDOCtDaUFnUEhCaGRHZ2daRDBpYlRFMElERXdJRE10TXlJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0p0TVRRZ01UUWdNeUF6SWlBdlBnb2dJRHh3WVhSb0lHUTlJazB4TkM0eU1EVWdOQzR4TXpsaE5DQTBJREFnTVNBeElEVXVORE01SURVdU9EWXpJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHhPUzQyTXpjZ01UUmhOQ0EwSURBZ01TQXhMVFV1TkRNeUlEVXVPRFk0SWlBdlBnb2dJRHh3WVhSb0lHUTlJazAwTGpNMk55QXhNR0UwSURRZ01DQXhJREVnTlM0ME16Z3ROUzQ0TmpJaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRrdU56azFJREU1TGpnMk1tRTBJRFFnTUNBeElERXROUzQwTWprdE5TNDROek1pSUM4K0NpQWdQSEpsWTNRZ2VEMGlNVEFpSUhrOUlqZ2lJSGRwWkhSb1BTSTBJaUJvWldsbmFIUTlJamdpSUhKNFBTSXhJaUF2UGdvOEwzTjJaejRLKSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9kcm9uZVxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IERyb25lID0gY3JlYXRlTHVjaWRlSWNvbignZHJvbmUnLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgRHJvbmU7XG4iLCJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbXG4gIFtcbiAgICAncGF0aCcsXG4gICAge1xuICAgICAgZDogJ00xOC43MTUgMTMuMTg2QzE4LjI5IDExLjg1OCAxNy4zODQgMTAuNjA3IDE2IDkuNWMtMi0xLjYtMy41LTQtNC02LjVhMTAuNyAxMC43IDAgMCAxLS44ODQgMi41ODYnLFxuICAgICAga2V5OiAnOHN1ejJ0JyxcbiAgICB9LFxuICBdLFxuICBbJ3BhdGgnLCB7IGQ6ICdtMiAyIDIwIDIwJywga2V5OiAnMW9vZXd5JyB9XSxcbiAgW1xuICAgICdwYXRoJyxcbiAgICB7IGQ6ICdNOC43OTUgOC43OTdBMTEgMTEgMCAwIDEgOCA5LjVDNiAxMS4xIDUgMTMgNSAxNWE3IDcgMCAwIDAgMTMuMjIyIDMuMjA4Jywga2V5OiAnMTlkdzltJyB9LFxuICBdLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIERyb3BsZXRPZmZcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1UZ3VOekUxSURFekxqRTROa014T0M0eU9TQXhNUzQ0TlRnZ01UY3VNemcwSURFd0xqWXdOeUF4TmlBNUxqVmpMVEl0TVM0MkxUTXVOUzAwTFRRdE5pNDFZVEV3TGpjZ01UQXVOeUF3SURBZ01TMHVPRGcwSURJdU5UZzJJaUF2UGdvZ0lEeHdZWFJvSUdROUltMHlJRElnTWpBZ01qQWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRUZ3VOemsxSURndU56azNRVEV4SURFeElEQWdNQ0F4SURnZ09TNDFRellnTVRFdU1TQTFJREV6SURVZ01UVmhOeUEzSURBZ01DQXdJREV6TGpJeU1pQXpMakl3T0NJZ0x6NEtQQzl6ZG1jK0NnPT0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2Ryb3BsZXQtb2ZmXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgRHJvcGxldE9mZiA9IGNyZWF0ZUx1Y2lkZUljb24oJ2Ryb3BsZXQtb2ZmJywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IERyb3BsZXRPZmY7XG4iLCJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbXG4gIFtcbiAgICAncGF0aCcsXG4gICAge1xuICAgICAgZDogJ00xMiAyMmE3IDcgMCAwIDAgNy03YzAtMi0xLTMuOS0zLTUuNXMtMy41LTQtNC02LjVjLS41IDIuNS0yIDQuOS00IDYuNUM2IDExLjEgNSAxMyA1IDE1YTcgNyAwIDAgMCA3IDd6JyxcbiAgICAgIGtleTogJ2M3bmlpeCcsXG4gICAgfSxcbiAgXSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBEcm9wbGV0XG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NVElnTWpKaE55QTNJREFnTUNBd0lEY3ROMk13TFRJdE1TMHpMamt0TXkwMUxqVnpMVE11TlMwMExUUXROaTQxWXkwdU5TQXlMalV0TWlBMExqa3ROQ0EyTGpWRE5pQXhNUzR4SURVZ01UTWdOU0F4TldFM0lEY2dNQ0F3SURBZ055QTNlaUlnTHo0S1BDOXpkbWMrQ2c9PSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvZHJvcGxldFxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IERyb3BsZXQgPSBjcmVhdGVMdWNpZGVJY29uKCdkcm9wbGV0JywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IERyb3BsZXQ7XG4iLCJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbXG4gIFtcbiAgICAncGF0aCcsXG4gICAge1xuICAgICAgZDogJ003IDE2LjNjMi4yIDAgNC0xLjgzIDQtNC4wNSAwLTEuMTYtLjU3LTIuMjYtMS43MS0zLjE5UzcuMjkgNi43NSA3IDUuM2MtLjI5IDEuNDUtMS4xNCAyLjg0LTIuMjkgMy43NlMzIDExLjEgMyAxMi4yNWMwIDIuMjIgMS44IDQuMDUgNCA0LjA1eicsXG4gICAgICBrZXk6ICcxcHRneTQnLFxuICAgIH0sXG4gIF0sXG4gIFtcbiAgICAncGF0aCcsXG4gICAge1xuICAgICAgZDogJ00xMi41NiA2LjZBMTAuOTcgMTAuOTcgMCAwIDAgMTQgMy4wMmMuNSAyLjUgMiA0LjkgNCA2LjVzMyAzLjUgMyA1LjVhNi45OCA2Ljk4IDAgMCAxLTExLjkxIDQuOTcnLFxuICAgICAga2V5OiAnMXNsMXJ6JyxcbiAgICB9LFxuICBdLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIERyb3BsZXRzXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5OeUF4Tmk0ell6SXVNaUF3SURRdE1TNDRNeUEwTFRRdU1EVWdNQzB4TGpFMkxTNDFOeTB5TGpJMkxURXVOekV0TXk0eE9WTTNMakk1SURZdU56VWdOeUExTGpOakxTNHlPU0F4TGpRMUxURXVNVFFnTWk0NE5DMHlMakk1SURNdU56WlRNeUF4TVM0eElETWdNVEl1TWpWak1DQXlMakl5SURFdU9DQTBMakExSURRZ05DNHdOWG9pSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVEV5TGpVMklEWXVOa0V4TUM0NU55QXhNQzQ1TnlBd0lEQWdNQ0F4TkNBekxqQXlZeTQxSURJdU5TQXlJRFF1T1NBMElEWXVOWE16SURNdU5TQXpJRFV1TldFMkxqazRJRFl1T1RnZ01DQXdJREV0TVRFdU9URWdOQzQ1TnlJZ0x6NEtQQzl6ZG1jK0NnPT0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2Ryb3BsZXRzXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgRHJvcGxldHMgPSBjcmVhdGVMdWNpZGVJY29uKCdkcm9wbGV0cycsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBEcm9wbGV0cztcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnbTIgMiA4IDgnLCBrZXk6ICcxdjYwNTknIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdtMjIgMi04IDgnLCBrZXk6ICcxNzNyOGEnIH1dLFxuICBbJ2VsbGlwc2UnLCB7IGN4OiAnMTInLCBjeTogJzknLCByeDogJzEwJywgcnk6ICc1Jywga2V5OiAnbGlvaHN4JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTcgMTMuNHY3LjknLCBrZXk6ICcxeWk2dTknIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTIgMTR2OCcsIGtleTogJzF0bjJ0aicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xNyAxMy40djcuOScsIGtleTogJ2VxejJ2MycgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00yIDl2OGExMCA1IDAgMCAwIDIwIDBWOScsIGtleTogJzE3NTB1bCcgfV0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgRHJ1bVxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0p0TWlBeUlEZ2dPQ0lnTHo0S0lDQThjR0YwYUNCa1BTSnRNaklnTWkwNElEZ2lJQzgrQ2lBZ1BHVnNiR2x3YzJVZ1kzZzlJakV5SWlCamVUMGlPU0lnY25nOUlqRXdJaUJ5ZVQwaU5TSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk55QXhNeTQwZGpjdU9TSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk1USWdNVFIyT0NJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTVRjZ01UTXVOSFkzTGpraUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRJZ09YWTRZVEV3SURVZ01DQXdJREFnTWpBZ01GWTVJaUF2UGdvOEwzTjJaejRLKSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9kcnVtXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgRHJ1bSA9IGNyZWF0ZUx1Y2lkZUljb24oJ2RydW0nLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgRHJ1bTtcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgW1xuICAgICdwYXRoJyxcbiAgICB7IGQ6ICdNMTUuNCAxNS42M2E3Ljg3NSA2IDEzNSAxIDEgNi4yMy02LjIzIDQuNSAzLjQzIDEzNSAwIDAtNi4yMyA2LjIzJywga2V5OiAnMWR0cXdtJyB9LFxuICBdLFxuICBbXG4gICAgJ3BhdGgnLFxuICAgIHtcbiAgICAgIGQ6ICdtOC4yOSAxMi43MS0yLjYgMi42YTIuNSAyLjUgMCAxIDAtMS42NSA0LjY1QTIuNSAyLjUgMCAxIDAgOC43IDE4LjNsMi41OS0yLjU5JyxcbiAgICAgIGtleTogJzFvcTFmdycsXG4gICAgfSxcbiAgXSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBEcnVtc3RpY2tcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1UVXVOQ0F4TlM0Mk0yRTNMamczTlNBMklERXpOU0F4SURFZ05pNHlNeTAyTGpJeklEUXVOU0F6TGpReklERXpOU0F3SURBdE5pNHlNeUEyTGpJeklpQXZQZ29nSUR4d1lYUm9JR1E5SW0wNExqSTVJREV5TGpjeExUSXVOaUF5TGpaaE1pNDFJREl1TlNBd0lERWdNQzB4TGpZMUlEUXVOalZCTWk0MUlESXVOU0F3SURFZ01DQTRMamNnTVRndU0yd3lMalU1TFRJdU5Ua2lJQzgrQ2p3dmMzWm5QZ289KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9kcnVtc3RpY2tcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBEcnVtc3RpY2sgPSBjcmVhdGVMdWNpZGVJY29uKCdkcnVtc3RpY2snLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgRHJ1bXN0aWNrO1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbXG4gICAgJ3BhdGgnLFxuICAgIHtcbiAgICAgIGQ6ICdNMTcuNTk2IDEyLjc2OGEyIDIgMCAxIDAgMi44MjktMi44MjlsLTEuNzY4LTEuNzY3YTIgMiAwIDAgMCAyLjgyOC0yLjgyOWwtMi44MjgtMi44MjhhMiAyIDAgMCAwLTIuODI5IDIuODI4bC0xLjc2Ny0xLjc2OGEyIDIgMCAxIDAtMi44MjkgMi44Mjl6JyxcbiAgICAgIGtleTogJzltNG1tZicsXG4gICAgfSxcbiAgXSxcbiAgWydwYXRoJywgeyBkOiAnbTIuNSAyMS41IDEuNC0xLjQnLCBrZXk6ICcxN2czZjAnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdtMjAuMSAzLjkgMS40LTEuNCcsIGtleTogJzFxbjMwOScgfV0sXG4gIFtcbiAgICAncGF0aCcsXG4gICAge1xuICAgICAgZDogJ001LjM0MyAyMS40ODVhMiAyIDAgMSAwIDIuODI5LTIuODI4bDEuNzY3IDEuNzY4YTIgMiAwIDEgMCAyLjgyOS0yLjgyOWwtNi4zNjQtNi4zNjRhMiAyIDAgMSAwLTIuODI5IDIuODI5bDEuNzY4IDEuNzY3YTIgMiAwIDAgMC0yLjgyOCAyLjgyOXonLFxuICAgICAga2V5OiAnMXQyYzkyJyxcbiAgICB9LFxuICBdLFxuICBbJ3BhdGgnLCB7IGQ6ICdtOS42IDE0LjQgNC44LTQuOCcsIGtleTogJzZ1bXF4dycgfV0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgRHVtYmJlbGxcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1UY3VOVGsySURFeUxqYzJPR0V5SURJZ01DQXhJREFnTWk0NE1qa3RNaTQ0TWpsc0xURXVOelk0TFRFdU56WTNZVElnTWlBd0lEQWdNQ0F5TGpneU9DMHlMamd5T1d3dE1pNDRNamd0TWk0NE1qaGhNaUF5SURBZ01DQXdMVEl1T0RJNUlESXVPREk0YkMweExqYzJOeTB4TGpjMk9HRXlJRElnTUNBeElEQXRNaTQ0TWprZ01pNDRNamw2SWlBdlBnb2dJRHh3WVhSb0lHUTlJbTB5TGpVZ01qRXVOU0F4TGpRdE1TNDBJaUF2UGdvZ0lEeHdZWFJvSUdROUltMHlNQzR4SURNdU9TQXhMalF0TVM0MElpQXZQZ29nSUR4d1lYUm9JR1E5SWswMUxqTTBNeUF5TVM0ME9EVmhNaUF5SURBZ01TQXdJREl1T0RJNUxUSXVPREk0YkRFdU56WTNJREV1TnpZNFlUSWdNaUF3SURFZ01DQXlMamd5T1MweUxqZ3lPV3d0Tmk0ek5qUXROaTR6TmpSaE1pQXlJREFnTVNBd0xUSXVPREk1SURJdU9ESTViREV1TnpZNElERXVOelkzWVRJZ01pQXdJREFnTUMweUxqZ3lPQ0F5TGpneU9Yb2lJQzgrQ2lBZ1BIQmhkR2dnWkQwaWJUa3VOaUF4TkM0MElEUXVPQzAwTGpnaUlDOCtDand2YzNablBnbz0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2R1bWJiZWxsXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgRHVtYmJlbGwgPSBjcmVhdGVMdWNpZGVJY29uKCdkdW1iYmVsbCcsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBEdW1iYmVsbDtcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTYgMTguNWEzLjUgMy41IDAgMSAwIDcgMGMwLTEuNTcuOTItMi41MiAyLjA0LTMuNDYnLCBrZXk6ICcxcW5nbW4nIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNNiA4LjVjMC0uNzUuMTMtMS40Ny4zNi0yLjE0Jywga2V5OiAnYjA2Ym1hJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTguOCAzLjE1QTYuNSA2LjUgMCAwIDEgMTkgOC41YzAgMS42My0uNDQgMi44MS0xLjA5IDMuNzYnLCBrZXk6ICdnMTBoc3onIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTIuNSA2QTIuNSAyLjUgMCAwIDEgMTUgOC41TTEwIDEzYTIgMiAwIDAgMCAxLjgyLTEuMTgnLCBrZXk6ICd5Z3pvdTcnIH1dLFxuICBbJ2xpbmUnLCB7IHgxOiAnMicsIHgyOiAnMjInLCB5MTogJzInLCB5MjogJzIyJywga2V5OiAnYTZwNnVqJyB9XSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBFYXJPZmZcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk5pQXhPQzQxWVRNdU5TQXpMalVnTUNBeElEQWdOeUF3WXpBdE1TNDFOeTQ1TWkweUxqVXlJREl1TURRdE15NDBOaUlnTHo0S0lDQThjR0YwYUNCa1BTSk5OaUE0TGpWak1DMHVOelV1TVRNdE1TNDBOeTR6TmkweUxqRTBJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMDRMamdnTXk0eE5VRTJMalVnTmk0MUlEQWdNQ0F4SURFNUlEZ3VOV013SURFdU5qTXRMalEwSURJdU9ERXRNUzR3T1NBekxqYzJJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHhNaTQxSURaQk1pNDFJREl1TlNBd0lEQWdNU0F4TlNBNExqVk5NVEFnTVROaE1pQXlJREFnTUNBd0lERXVPREl0TVM0eE9DSWdMejRLSUNBOGJHbHVaU0I0TVQwaU1pSWdlREk5SWpJeUlpQjVNVDBpTWlJZ2VUSTlJakl5SWlBdlBnbzhMM04yWno0SykgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvZWFyLW9mZlxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IEVhck9mZiA9IGNyZWF0ZUx1Y2lkZUljb24oJ2Vhci1vZmYnLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgRWFyT2ZmO1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdNNiA4LjVhNi41IDYuNSAwIDEgMSAxMyAwYzAgNi02IDYtNiAxMGEzLjUgMy41IDAgMSAxLTcgMCcsIGtleTogJzFkZmFsbicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xNSA4LjVhMi41IDIuNSAwIDAgMC01IDB2MWEyIDIgMCAxIDEgMCA0Jywga2V5OiAnMXFudmE3JyB9XSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBFYXJcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk5pQTRMalZoTmk0MUlEWXVOU0F3SURFZ01TQXhNeUF3WXpBZ05pMDJJRFl0TmlBeE1HRXpMalVnTXk0MUlEQWdNU0F4TFRjZ01DSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk1UVWdPQzQxWVRJdU5TQXlMalVnTUNBd0lEQXROU0F3ZGpGaE1pQXlJREFnTVNBeElEQWdOQ0lnTHo0S1BDOXpkbWMrQ2c9PSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvZWFyXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgRWFyID0gY3JlYXRlTHVjaWRlSWNvbignZWFyJywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IEVhcjtcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTcgMy4zNFY1YTMgMyAwIDAgMCAzIDMnLCBrZXk6ICd3NzMybzgnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTEgMjEuOTVWMThhMiAyIDAgMCAwLTItMiAyIDIgMCAwIDEtMi0ydi0xYTIgMiAwIDAgMC0yLTJIMi4wNScsIGtleTogJ2YwMjM0MycgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00yMS41NCAxNUgxN2EyIDIgMCAwIDAtMiAydjQuNTQnLCBrZXk6ICcxZGp3bzAnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTIgMmExMCAxMCAwIDEgMCA5LjU0IDEzJywga2V5OiAnempzcjZxJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTIwIDZWNGEyIDIgMCAxIDAtNCAwdjInLCBrZXk6ICcxb2Y1ZTgnIH1dLFxuICBbJ3JlY3QnLCB7IHdpZHRoOiAnOCcsIGhlaWdodDogJzUnLCB4OiAnMTQnLCB5OiAnNicsIHJ4OiAnMScsIGtleTogJzFmbWY1MScgfV0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgRWFydGhMb2NrXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5OeUF6TGpNMFZqVmhNeUF6SURBZ01DQXdJRE1nTXlJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTVRFZ01qRXVPVFZXTVRoaE1pQXlJREFnTUNBd0xUSXRNaUF5SURJZ01DQXdJREV0TWkweWRpMHhZVElnTWlBd0lEQWdNQzB5TFRKSU1pNHdOU0lnTHo0S0lDQThjR0YwYUNCa1BTSk5NakV1TlRRZ01UVklNVGRoTWlBeUlEQWdNQ0F3TFRJZ01uWTBMalUwSWlBdlBnb2dJRHh3WVhSb0lHUTlJazB4TWlBeVlURXdJREV3SURBZ01TQXdJRGt1TlRRZ01UTWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRUSXdJRFpXTkdFeUlESWdNQ0F4SURBdE5DQXdkaklpSUM4K0NpQWdQSEpsWTNRZ2QybGtkR2c5SWpnaUlHaGxhV2RvZEQwaU5TSWdlRDBpTVRRaUlIazlJallpSUhKNFBTSXhJaUF2UGdvOEwzTjJaejRLKSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9lYXJ0aC1sb2NrXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgRWFydGhMb2NrID0gY3JlYXRlTHVjaWRlSWNvbignZWFydGgtbG9jaycsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBFYXJ0aExvY2s7XG4iLCJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ00yMS41NCAxNUgxN2EyIDIgMCAwIDAtMiAydjQuNTQnLCBrZXk6ICcxZGp3bzAnIH1dLFxuICBbXG4gICAgJ3BhdGgnLFxuICAgIHtcbiAgICAgIGQ6ICdNNyAzLjM0VjVhMyAzIDAgMCAwIDMgM2EyIDIgMCAwIDEgMiAyYzAgMS4xLjkgMiAyIDJhMiAyIDAgMCAwIDItMmMwLTEuMS45LTIgMi0yaDMuMTcnLFxuICAgICAga2V5OiAnMXR6a2ZhJyxcbiAgICB9LFxuICBdLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTEgMjEuOTVWMThhMiAyIDAgMCAwLTItMmEyIDIgMCAwIDEtMi0ydi0xYTIgMiAwIDAgMC0yLTJIMi4wNScsIGtleTogJzE0cGI1aicgfV0sXG4gIFsnY2lyY2xlJywgeyBjeDogJzEyJywgY3k6ICcxMicsIHI6ICcxMCcsIGtleTogJzFtZ2xheScgfV0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgRWFydGhcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1qRXVOVFFnTVRWSU1UZGhNaUF5SURBZ01DQXdMVElnTW5ZMExqVTBJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMDNJRE11TXpSV05XRXpJRE1nTUNBd0lEQWdNeUF6WVRJZ01pQXdJREFnTVNBeUlESmpNQ0F4TGpFdU9TQXlJRElnTW1FeUlESWdNQ0F3SURBZ01pMHlZekF0TVM0eExqa3RNaUF5TFRKb015NHhOeUlnTHo0S0lDQThjR0YwYUNCa1BTSk5NVEVnTWpFdU9UVldNVGhoTWlBeUlEQWdNQ0F3TFRJdE1tRXlJRElnTUNBd0lERXRNaTB5ZGkweFlUSWdNaUF3SURBZ01DMHlMVEpJTWk0d05TSWdMejRLSUNBOFkybHlZMnhsSUdONFBTSXhNaUlnWTNrOUlqRXlJaUJ5UFNJeE1DSWdMejRLUEM5emRtYytDZz09KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9lYXJ0aFxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IEVhcnRoID0gY3JlYXRlTHVjaWRlSWNvbignZWFydGgnLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgRWFydGg7XG4iLCJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbXG4gIFsnY2lyY2xlJywgeyBjeDogJzEyJywgY3k6ICcxMicsIHI6ICcxMCcsIGtleTogJzFtZ2xheScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xMiAyYTcgNyAwIDEgMCAxMCAxMCcsIGtleTogJzF5dWozMicgfV0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgRWNsaXBzZVxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4WTJseVkyeGxJR040UFNJeE1pSWdZM2s5SWpFeUlpQnlQU0l4TUNJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTVRJZ01tRTNJRGNnTUNBeElEQWdNVEFnTVRBaUlDOCtDand2YzNablBnbz0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2VjbGlwc2VcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBFY2xpcHNlID0gY3JlYXRlTHVjaWRlSWNvbignZWNsaXBzZScsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBFY2xpcHNlO1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbJ2NpcmNsZScsIHsgY3g6ICcxMS41JywgY3k6ICcxMi41JywgcjogJzMuNScsIGtleTogJzFjbDFtaScgfV0sXG4gIFtcbiAgICAncGF0aCcsXG4gICAge1xuICAgICAgZDogJ00zIDhjMC0zLjUgMi41LTYgNi41LTYgNSAwIDQuODMgMyA3LjUgNXM1IDIgNSA2YzAgNC41LTIuNSA2LjUtNyA2LjUtMi41IDAtMi41IDIuNS02IDIuNXMtNy0yLTctNS41YzAtMyAxLjUtMyAxLjUtNUMzLjUgMTAgMyA5IDMgOFonLFxuICAgICAga2V5OiAnMTY1ZWY5JyxcbiAgICB9LFxuICBdLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIEVnZ0ZyaWVkXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThZMmx5WTJ4bElHTjRQU0l4TVM0MUlpQmplVDBpTVRJdU5TSWdjajBpTXk0MUlpQXZQZ29nSUR4d1lYUm9JR1E5SWsweklEaGpNQzB6TGpVZ01pNDFMVFlnTmk0MUxUWWdOU0F3SURRdU9ETWdNeUEzTGpVZ05YTTFJRElnTlNBMll6QWdOQzQxTFRJdU5TQTJMalV0TnlBMkxqVXRNaTQxSURBdE1pNDFJREl1TlMwMklESXVOWE10TnkweUxUY3ROUzQxWXpBdE15QXhMalV0TXlBeExqVXROVU16TGpVZ01UQWdNeUE1SURNZ09Gb2lJQzgrQ2p3dmMzWm5QZ289KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9lZ2ctZnJpZWRcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBFZ2dGcmllZCA9IGNyZWF0ZUx1Y2lkZUljb24oJ2VnZy1mcmllZCcsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBFZ2dGcmllZDtcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnbTIgMiAyMCAyMCcsIGtleTogJzFvb2V3eScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00yMCAxNC4zNDdWMTRjMC02LTQtMTItOC0xMi0xLjA3OCAwLTIuMTU3LjQzNi0zLjE1NyAxLjE5Jywga2V5OiAnMTNnMmp5JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTYuMjA2IDYuMjFDNC44NzEgOC40IDQgMTEuMiA0IDE0YTggOCAwIDAgMCAxNC41NjggNC41NjgnLCBrZXk6ICcxNTgxaWQnIH1dLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIEVnZ09mZlxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0p0TWlBeUlESXdJREl3SWlBdlBnb2dJRHh3WVhSb0lHUTlJazB5TUNBeE5DNHpORGRXTVRSak1DMDJMVFF0TVRJdE9DMHhNaTB4TGpBM09DQXdMVEl1TVRVM0xqUXpOaTB6TGpFMU55QXhMakU1SWlBdlBnb2dJRHh3WVhSb0lHUTlJazAyTGpJd05pQTJMakl4UXpRdU9EY3hJRGd1TkNBMElERXhMaklnTkNBeE5HRTRJRGdnTUNBd0lEQWdNVFF1TlRZNElEUXVOVFk0SWlBdlBnbzhMM04yWno0SykgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvZWdnLW9mZlxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IEVnZ09mZiA9IGNyZWF0ZUx1Y2lkZUljb24oJ2VnZy1vZmYnLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgRWdnT2ZmO1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdNMTIgMkM4IDIgNCA4IDQgMTRhOCA4IDAgMCAwIDE2IDBjMC02LTQtMTItOC0xMicsIGtleTogJzFsZTE0MicgfV0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgRWdnXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NVElnTWtNNElESWdOQ0E0SURRZ01UUmhPQ0E0SURBZ01DQXdJREUySURCak1DMDJMVFF0TVRJdE9DMHhNaUlnTHo0S1BDOXpkbWMrQ2c9PSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvZWdnXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgRWdnID0gY3JlYXRlTHVjaWRlSWNvbignZWdnJywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IEVnZztcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgWydjaXJjbGUnLCB7IGN4OiAnMTInLCBjeTogJzEyJywgcjogJzEnLCBrZXk6ICc0MWhpbGYnIH1dLFxuICBbJ2NpcmNsZScsIHsgY3g6ICcxMicsIGN5OiAnNScsIHI6ICcxJywga2V5OiAnZ3hlb2I5JyB9XSxcbiAgWydjaXJjbGUnLCB7IGN4OiAnMTInLCBjeTogJzE5JywgcjogJzEnLCBrZXk6ICdseWV4OWsnIH1dLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIEVsbGlwc2lzVmVydGljYWxcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOFkybHlZMnhsSUdONFBTSXhNaUlnWTNrOUlqRXlJaUJ5UFNJeElpQXZQZ29nSUR4amFYSmpiR1VnWTNnOUlqRXlJaUJqZVQwaU5TSWdjajBpTVNJZ0x6NEtJQ0E4WTJseVkyeGxJR040UFNJeE1pSWdZM2s5SWpFNUlpQnlQU0l4SWlBdlBnbzhMM04yWno0SykgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvZWxsaXBzaXMtdmVydGljYWxcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBFbGxpcHNpc1ZlcnRpY2FsID0gY3JlYXRlTHVjaWRlSWNvbignZWxsaXBzaXMtdmVydGljYWwnLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgRWxsaXBzaXNWZXJ0aWNhbDtcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgWydjaXJjbGUnLCB7IGN4OiAnMTInLCBjeTogJzEyJywgcjogJzEnLCBrZXk6ICc0MWhpbGYnIH1dLFxuICBbJ2NpcmNsZScsIHsgY3g6ICcxOScsIGN5OiAnMTInLCByOiAnMScsIGtleTogJzF3amw4aScgfV0sXG4gIFsnY2lyY2xlJywgeyBjeDogJzUnLCBjeTogJzEyJywgcjogJzEnLCBrZXk6ICcxcGN6OGMnIH1dLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIEVsbGlwc2lzXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThZMmx5WTJ4bElHTjRQU0l4TWlJZ1kzazlJakV5SWlCeVBTSXhJaUF2UGdvZ0lEeGphWEpqYkdVZ1kzZzlJakU1SWlCamVUMGlNVElpSUhJOUlqRWlJQzgrQ2lBZ1BHTnBjbU5zWlNCamVEMGlOU0lnWTNrOUlqRXlJaUJ5UFNJeElpQXZQZ284TDNOMlp6NEspIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2VsbGlwc2lzXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgRWxsaXBzaXMgPSBjcmVhdGVMdWNpZGVJY29uKCdlbGxpcHNpcycsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBFbGxpcHNpcztcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgWydsaW5lJywgeyB4MTogJzUnLCB4MjogJzE5JywgeTE6ICc5JywgeTI6ICc5Jywga2V5OiAnMW53cWVoJyB9XSxcbiAgWydsaW5lJywgeyB4MTogJzUnLCB4MjogJzE5JywgeTE6ICcxNScsIHkyOiAnMTUnLCBrZXk6ICdnOHlqcHknIH1dLFxuICBbJ2xpbmUnLCB7IHgxOiAnMTknLCB4MjogJzUnLCB5MTogJzUnLCB5MjogJzE5Jywga2V5OiAnMXg5dmxtJyB9XSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBFcXVhbE5vdFxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4YkdsdVpTQjRNVDBpTlNJZ2VESTlJakU1SWlCNU1UMGlPU0lnZVRJOUlqa2lJQzgrQ2lBZ1BHeHBibVVnZURFOUlqVWlJSGd5UFNJeE9TSWdlVEU5SWpFMUlpQjVNajBpTVRVaUlDOCtDaUFnUEd4cGJtVWdlREU5SWpFNUlpQjRNajBpTlNJZ2VURTlJalVpSUhreVBTSXhPU0lnTHo0S1BDOXpkbWMrQ2c9PSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvZXF1YWwtbm90XG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgRXF1YWxOb3QgPSBjcmVhdGVMdWNpZGVJY29uKCdlcXVhbC1ub3QnLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgRXF1YWxOb3Q7XG4iLCJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ001IDE1YTYuNSA2LjUgMCAwIDEgNyAwIDYuNSA2LjUgMCAwIDAgNyAwJywga2V5OiAneXJka2h5JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTUgOWE2LjUgNi41IDAgMCAxIDcgMCA2LjUgNi41IDAgMCAwIDcgMCcsIGtleTogJ2d6a3Z5eicgfV0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgRXF1YWxBcHByb3hpbWF0ZWx5XG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5OU0F4TldFMkxqVWdOaTQxSURBZ01DQXhJRGNnTUNBMkxqVWdOaTQxSURBZ01DQXdJRGNnTUNJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTlNBNVlUWXVOU0EyTGpVZ01DQXdJREVnTnlBd0lEWXVOU0EyTGpVZ01DQXdJREFnTnlBd0lpQXZQZ284TDNOMlp6NEspIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2VxdWFsLWFwcHJveGltYXRlbHlcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBFcXVhbEFwcHJveGltYXRlbHkgPSBjcmVhdGVMdWNpZGVJY29uKCdlcXVhbC1hcHByb3hpbWF0ZWx5JywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IEVxdWFsQXBwcm94aW1hdGVseTtcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgWydsaW5lJywgeyB4MTogJzUnLCB4MjogJzE5JywgeTE6ICc5JywgeTI6ICc5Jywga2V5OiAnMW53cWVoJyB9XSxcbiAgWydsaW5lJywgeyB4MTogJzUnLCB4MjogJzE5JywgeTE6ICcxNScsIHkyOiAnMTUnLCBrZXk6ICdnOHlqcHknIH1dLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIEVxdWFsXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThiR2x1WlNCNE1UMGlOU0lnZURJOUlqRTVJaUI1TVQwaU9TSWdlVEk5SWpraUlDOCtDaUFnUEd4cGJtVWdlREU5SWpVaUlIZ3lQU0l4T1NJZ2VURTlJakUxSWlCNU1qMGlNVFVpSUM4K0Nqd3ZjM1puUGdvPSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvZXF1YWxcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBFcXVhbCA9IGNyZWF0ZUx1Y2lkZUljb24oJ2VxdWFsJywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IEVxdWFsO1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbXG4gICAgJ3BhdGgnLFxuICAgIHtcbiAgICAgIGQ6ICdNMjEgMjFIOGEyIDIgMCAwIDEtMS40Mi0uNTg3bC0zLjk5NC0zLjk5OWEyIDIgMCAwIDEgMC0yLjgyOGwxMC0xMGEyIDIgMCAwIDEgMi44MjkgMGw1Ljk5OSA2YTIgMiAwIDAgMSAwIDIuODI4TDEyLjgzNCAyMScsXG4gICAgICBrZXk6ICdnNXdvNTknLFxuICAgIH0sXG4gIF0sXG4gIFsncGF0aCcsIHsgZDogJ201LjA4MiAxMS4wOSA4LjgyOCA4LjgyOCcsIGtleTogJzF3eDV2aicgfV0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgRXJhc2VyXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NakVnTWpGSU9HRXlJRElnTUNBd0lERXRNUzQwTWkwdU5UZzNiQzB6TGprNU5DMHpMams1T1dFeUlESWdNQ0F3SURFZ01DMHlMamd5T0d3eE1DMHhNR0V5SURJZ01DQXdJREVnTWk0NE1qa2dNR3cxTGprNU9TQTJZVElnTWlBd0lEQWdNU0F3SURJdU9ESTRUREV5TGpnek5DQXlNU0lnTHo0S0lDQThjR0YwYUNCa1BTSnROUzR3T0RJZ01URXVNRGtnT0M0NE1qZ2dPQzQ0TWpnaUlDOCtDand2YzNablBnbz0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2VyYXNlclxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IEVyYXNlciA9IGNyZWF0ZUx1Y2lkZUljb24oJ2VyYXNlcicsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBFcmFzZXI7XG4iLCJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbXG4gIFtcbiAgICAncGF0aCcsXG4gICAge1xuICAgICAgZDogJ20xNSAyMCAzLTNoMmEyIDIgMCAwIDAgMi0yVjZhMiAyIDAgMCAwLTItMkg0YTIgMiAwIDAgMC0yIDJ2OWEyIDIgMCAwIDAgMiAyaDJsMyAzeicsXG4gICAgICBrZXk6ICdyYmFocXgnLFxuICAgIH0sXG4gIF0sXG4gIFsncGF0aCcsIHsgZDogJ002IDh2MScsIGtleTogJzE2MzZleicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xMCA4djEnLCBrZXk6ICcxdGFsYjQnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTQgOHYxJywga2V5OiAnMXJzZmdyJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTE4IDh2MScsIGtleTogJ2dua3dveCcgfV0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgRXRoZXJuZXRQb3J0XG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSnRNVFVnTWpBZ015MHphREpoTWlBeUlEQWdNQ0F3SURJdE1sWTJZVElnTWlBd0lEQWdNQzB5TFRKSU5HRXlJRElnTUNBd0lEQXRNaUF5ZGpsaE1pQXlJREFnTUNBd0lESWdNbWd5YkRNZ00zb2lJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRUWWdPSFl4SWlBdlBnb2dJRHh3WVhSb0lHUTlJazB4TUNBNGRqRWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRURTBJRGgyTVNJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTVRnZ09IWXhJaUF2UGdvOEwzTjJaejRLKSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9ldGhlcm5ldC1wb3J0XG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgRXRoZXJuZXRQb3J0ID0gY3JlYXRlTHVjaWRlSWNvbignZXRoZXJuZXQtcG9ydCcsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBFdGhlcm5ldFBvcnQ7XG4iLCJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ000IDEwaDEyJywga2V5OiAnMXk2eGw4JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTQgMTRoOScsIGtleTogJzFsb2JsaicgfV0sXG4gIFtcbiAgICAncGF0aCcsXG4gICAge1xuICAgICAgZDogJ00xOSA2YTcuNyA3LjcgMCAwIDAtNS4yLTJBNy45IDcuOSAwIDAgMCA2IDEyYzAgNC40IDMuNSA4IDcuOCA4IDIgMCAzLjgtLjggNS4yLTInLFxuICAgICAga2V5OiAnMWo2bHpvJyxcbiAgICB9LFxuICBdLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIEV1cm9cbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk5DQXhNR2d4TWlJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTkNBeE5HZzVJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHhPU0EyWVRjdU55QTNMamNnTUNBd0lEQXROUzR5TFRKQk55NDVJRGN1T1NBd0lEQWdNQ0EySURFeVl6QWdOQzQwSURNdU5TQTRJRGN1T0NBNElESWdNQ0F6TGpndExqZ2dOUzR5TFRJaUlDOCtDand2YzNablBnbz0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2V1cm9cbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBFdXJvID0gY3JlYXRlTHVjaWRlSWNvbignZXVybycsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBFdXJvO1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdtMTUgMTUgNiA2Jywga2V5OiAnMXM0MDl3JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnbTE1IDkgNi02Jywga2V5OiAna28xdmV2JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTIxIDE2djVoLTUnLCBrZXk6ICcxY2syc2YnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMjEgOFYzaC01Jywga2V5OiAnMXFvcThhJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTMgMTZ2NWg1Jywga2V5OiAnMXQwOGFtJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnbTMgMjEgNi02Jywga2V5OiAnd3dudW1pJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTMgOFYzaDUnLCBrZXk6ICcxbG4xMG0nIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNOSA5IDMgMycsIGtleTogJ3Y1NTFpdicgfV0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgRXhwYW5kXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSnRNVFVnTVRVZ05pQTJJaUF2UGdvZ0lEeHdZWFJvSUdROUltMHhOU0E1SURZdE5pSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk1qRWdNVFoyTldndE5TSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk1qRWdPRll6YUMwMUlpQXZQZ29nSUR4d1lYUm9JR1E5SWsweklERTJkalZvTlNJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0p0TXlBeU1TQTJMVFlpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVE1nT0ZZemFEVWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRUa2dPU0F6SURNaUlDOCtDand2YzNablBnbz0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2V4cGFuZFxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IEV4cGFuZCA9IGNyZWF0ZUx1Y2lkZUljb24oJ2V4cGFuZCcsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBFeHBhbmQ7XG4iLCJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ00xNSAzaDZ2NicsIGtleTogJzFxOWZ3dCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xMCAxNCAyMSAzJywga2V5OiAnZ3BsaDZyJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTE4IDEzdjZhMiAyIDAgMCAxLTIgMkg1YTIgMiAwIDAgMS0yLTJWOGEyIDIgMCAwIDEgMi0yaDYnLCBrZXk6ICdhNnhxcXAnIH1dLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIEV4dGVybmFsTGlua1xuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTVRVZ00yZzJkallpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVEV3SURFMElESXhJRE1pSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVEU0SURFemRqWmhNaUF5SURBZ01DQXhMVElnTWtnMVlUSWdNaUF3SURBZ01TMHlMVEpXT0dFeUlESWdNQ0F3SURFZ01pMHlhRFlpSUM4K0Nqd3ZjM1puUGdvPSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvZXh0ZXJuYWwtbGlua1xuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IEV4dGVybmFsTGluayA9IGNyZWF0ZUx1Y2lkZUljb24oJ2V4dGVybmFsLWxpbmsnLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgRXh0ZXJuYWxMaW5rO1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdtMTUgMTgtLjcyMi0zLjI1Jywga2V5OiAnMWo2NGp3JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTIgOGExMC42NDUgMTAuNjQ1IDAgMCAwIDIwIDAnLCBrZXk6ICcxZTdneGInIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdtMjAgMTUtMS43MjYtMi4wNScsIGtleTogJzFjbnVsZCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ200IDE1IDEuNzI2LTIuMDUnLCBrZXk6ICcxZHNxcWQnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdtOSAxOCAuNzIyLTMuMjUnLCBrZXk6ICd5cHcyeXgnIH1dLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIEV5ZUNsb3NlZFxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0p0TVRVZ01UZ3RMamN5TWkwekxqSTFJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHlJRGhoTVRBdU5qUTFJREV3TGpZME5TQXdJREFnTUNBeU1DQXdJaUF2UGdvZ0lEeHdZWFJvSUdROUltMHlNQ0F4TlMweExqY3lOaTB5TGpBMUlpQXZQZ29nSUR4d1lYUm9JR1E5SW0wMElERTFJREV1TnpJMkxUSXVNRFVpSUM4K0NpQWdQSEJoZEdnZ1pEMGliVGtnTVRnZ0xqY3lNaTB6TGpJMUlpQXZQZ284TDNOMlp6NEspIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2V5ZS1jbG9zZWRcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBFeWVDbG9zZWQgPSBjcmVhdGVMdWNpZGVJY29uKCdleWUtY2xvc2VkJywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IEV5ZUNsb3NlZDtcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgW1xuICAgICdwYXRoJyxcbiAgICB7XG4gICAgICBkOiAnTTEwLjczMyA1LjA3NmExMC43NDQgMTAuNzQ0IDAgMCAxIDExLjIwNSA2LjU3NSAxIDEgMCAwIDEgMCAuNjk2IDEwLjc0NyAxMC43NDcgMCAwIDEtMS40NDQgMi40OScsXG4gICAgICBrZXk6ICdjdDhlMWYnLFxuICAgIH0sXG4gIF0sXG4gIFsncGF0aCcsIHsgZDogJ00xNC4wODQgMTQuMTU4YTMgMyAwIDAgMS00LjI0Mi00LjI0MicsIGtleTogJzE1MXJ4aCcgfV0sXG4gIFtcbiAgICAncGF0aCcsXG4gICAge1xuICAgICAgZDogJ00xNy40NzkgMTcuNDk5YTEwLjc1IDEwLjc1IDAgMCAxLTE1LjQxNy01LjE1MSAxIDEgMCAwIDEgMC0uNjk2IDEwLjc1IDEwLjc1IDAgMCAxIDQuNDQ2LTUuMTQzJyxcbiAgICAgIGtleTogJzEzYmo5YScsXG4gICAgfSxcbiAgXSxcbiAgWydwYXRoJywgeyBkOiAnbTIgMiAyMCAyMCcsIGtleTogJzFvb2V3eScgfV0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgRXllT2ZmXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NVEF1TnpNeklEVXVNRGMyWVRFd0xqYzBOQ0F4TUM0M05EUWdNQ0F3SURFZ01URXVNakExSURZdU5UYzFJREVnTVNBd0lEQWdNU0F3SUM0Mk9UWWdNVEF1TnpRM0lERXdMamMwTnlBd0lEQWdNUzB4TGpRME5DQXlMalE1SWlBdlBnb2dJRHh3WVhSb0lHUTlJazB4TkM0d09EUWdNVFF1TVRVNFlUTWdNeUF3SURBZ01TMDBMakkwTWkwMExqSTBNaUlnTHo0S0lDQThjR0YwYUNCa1BTSk5NVGN1TkRjNUlERTNMalE1T1dFeE1DNDNOU0F4TUM0M05TQXdJREFnTVMweE5TNDBNVGN0TlM0eE5URWdNU0F4SURBZ01DQXhJREF0TGpZNU5pQXhNQzQzTlNBeE1DNDNOU0F3SURBZ01TQTBMalEwTmkwMUxqRTBNeUlnTHo0S0lDQThjR0YwYUNCa1BTSnRNaUF5SURJd0lESXdJaUF2UGdvOEwzTjJaejRLKSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9leWUtb2ZmXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgRXllT2ZmID0gY3JlYXRlTHVjaWRlSWNvbignZXllLW9mZicsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBFeWVPZmY7XG4iLCJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbXG4gIFtcbiAgICAncGF0aCcsXG4gICAge1xuICAgICAgZDogJ00yLjA2MiAxMi4zNDhhMSAxIDAgMCAxIDAtLjY5NiAxMC43NSAxMC43NSAwIDAgMSAxOS44NzYgMCAxIDEgMCAwIDEgMCAuNjk2IDEwLjc1IDEwLjc1IDAgMCAxLTE5Ljg3NiAwJyxcbiAgICAgIGtleTogJzFuY2xjMCcsXG4gICAgfSxcbiAgXSxcbiAgWydjaXJjbGUnLCB7IGN4OiAnMTInLCBjeTogJzEyJywgcjogJzMnLCBrZXk6ICcxdjd6cmQnIH1dLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIEV5ZVxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTWk0d05qSWdNVEl1TXpRNFlURWdNU0F3SURBZ01TQXdMUzQyT1RZZ01UQXVOelVnTVRBdU56VWdNQ0F3SURFZ01Ua3VPRGMySURBZ01TQXhJREFnTUNBeElEQWdMalk1TmlBeE1DNDNOU0F4TUM0M05TQXdJREFnTVMweE9TNDROellnTUNJZ0x6NEtJQ0E4WTJseVkyeGxJR040UFNJeE1pSWdZM2s5SWpFeUlpQnlQU0l6SWlBdlBnbzhMM04yWno0SykgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvZXllXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgRXllID0gY3JlYXRlTHVjaWRlSWNvbignZXllJywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IEV5ZTtcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgW1xuICAgICdwYXRoJyxcbiAgICB7IGQ6ICdNMTggMmgtM2E1IDUgMCAwIDAtNSA1djNIN3Y0aDN2OGg0di04aDNsMS00aC00VjdhMSAxIDAgMCAxIDEtMWgzeicsIGtleTogJzFqZzRmOCcgfSxcbiAgXSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBGYWNlYm9va1xuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTVRnZ01tZ3RNMkUxSURVZ01DQXdJREF0TlNBMWRqTklOM1kwYUROMk9HZzBkaTA0YUROc01TMDBhQzAwVmpkaE1TQXhJREFnTUNBeElERXRNV2d6ZWlJZ0x6NEtQQzl6ZG1jK0NnPT0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2ZhY2Vib29rXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICogQGRlcHJlY2F0ZWQgQnJhbmQgaWNvbnMgaGF2ZSBiZWVuIGRlcHJlY2F0ZWQgYW5kIGFyZSBkdWUgdG8gYmUgcmVtb3ZlZCwgcGxlYXNlIHJlZmVyIHRvIGh0dHBzOi8vZ2l0aHViLmNvbS9sdWNpZGUtaWNvbnMvbHVjaWRlL2lzc3Vlcy82NzAuIFdlIHJlY29tbWVuZCB1c2luZyBodHRwczovL3NpbXBsZWljb25zLm9yZy8/cT1mYWNlYm9vayBpbnN0ZWFkLiBUaGlzIGljb24gd2lsbCBiZSByZW1vdmVkIGluIHYxLjBcbiAqL1xuY29uc3QgRmFjZWJvb2sgPSBjcmVhdGVMdWNpZGVJY29uKCdmYWNlYm9vaycsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBGYWNlYm9vaztcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTEyIDE2aC4wMScsIGtleTogJzFkcmJkaScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xNiAxNmguMDEnLCBrZXk6ICcxZjloN3cnIH1dLFxuICBbXG4gICAgJ3BhdGgnLFxuICAgIHtcbiAgICAgIGQ6ICdNMyAxOWEyIDIgMCAwIDAgMiAyaDE0YTIgMiAwIDAgMCAyLTJWOC41YS41LjUgMCAwIDAtLjc2OS0uNDIybC00LjQ2MiAyLjg0NEEuNS41IDAgMCAxIDE1IDEwLjV2LTJhLjUuNSAwIDAgMC0uNzY5LS40MjJMOS43NyAxMC45MjJBLjUuNSAwIDAgMSA5IDEwLjVWNWEyIDIgMCAwIDAtMi0ySDVhMiAyIDAgMCAwLTIgMnonLFxuICAgICAga2V5OiAnMWl2MGkyJyxcbiAgICB9LFxuICBdLFxuICBbJ3BhdGgnLCB7IGQ6ICdNOCAxNmguMDEnLCBrZXk6ICcxOHM2ZzknIH1dLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIEZhY3RvcnlcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1USWdNVFpvTGpBeElpQXZQZ29nSUR4d1lYUm9JR1E5SWsweE5pQXhObWd1TURFaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRNZ01UbGhNaUF5SURBZ01DQXdJRElnTW1neE5HRXlJRElnTUNBd0lEQWdNaTB5VmpndU5XRXVOUzQxSURBZ01DQXdMUzQzTmprdExqUXlNbXd0TkM0ME5qSWdNaTQ0TkRSQkxqVXVOU0F3SURBZ01TQXhOU0F4TUM0MWRpMHlZUzQxTGpVZ01DQXdJREF0TGpjMk9TMHVOREl5VERrdU56Y2dNVEF1T1RJeVFTNDFMalVnTUNBd0lERWdPU0F4TUM0MVZqVmhNaUF5SURBZ01DQXdMVEl0TWtnMVlUSWdNaUF3SURBZ01DMHlJREo2SWlBdlBnb2dJRHh3WVhSb0lHUTlJazA0SURFMmFDNHdNU0lnTHo0S1BDOXpkbWMrQ2c9PSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvZmFjdG9yeVxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IEZhY3RvcnkgPSBjcmVhdGVMdWNpZGVJY29uKCdmYWN0b3J5JywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IEZhY3Rvcnk7XG4iLCJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbXG4gIFtcbiAgICAncGF0aCcsXG4gICAge1xuICAgICAgZDogJ00xMC44MjcgMTYuMzc5YTYuMDgyIDYuMDgyIDAgMCAxLTguNjE4LTcuMDAybDUuNDEyIDEuNDVhNi4wODIgNi4wODIgMCAwIDEgNy4wMDItOC42MThsLTEuNDUgNS40MTJhNi4wODIgNi4wODIgMCAwIDEgOC42MTggNy4wMDJsLTUuNDEyLTEuNDVhNi4wODIgNi4wODIgMCAwIDEtNy4wMDIgOC42MThsMS40NS01LjQxMlonLFxuICAgICAga2V5OiAnNDg0YTdmJyxcbiAgICB9LFxuICBdLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTIgMTJ2LjAxJywga2V5OiAndTV1YnNlJyB9XSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBGYW5cbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1UQXVPREkzSURFMkxqTTNPV0UyTGpBNE1pQTJMakE0TWlBd0lEQWdNUzA0TGpZeE9DMDNMakF3TW13MUxqUXhNaUF4TGpRMVlUWXVNRGd5SURZdU1EZ3lJREFnTUNBeElEY3VNREF5TFRndU5qRTRiQzB4TGpRMUlEVXVOREV5WVRZdU1EZ3lJRFl1TURneUlEQWdNQ0F4SURndU5qRTRJRGN1TURBeWJDMDFMalF4TWkweExqUTFZVFl1TURneUlEWXVNRGd5SURBZ01DQXhMVGN1TURBeUlEZ3VOakU0YkRFdU5EVXROUzQwTVRKYUlpQXZQZ29nSUR4d1lYUm9JR1E5SWsweE1pQXhNbll1TURFaUlDOCtDand2YzNablBnbz0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2ZhblxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IEZhbiA9IGNyZWF0ZUx1Y2lkZUljb24oJ2ZhbicsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBGYW47XG4iLCJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbXG4gIFsncG9seWdvbicsIHsgcG9pbnRzOiAnMTMgMTkgMjIgMTIgMTMgNSAxMyAxOScsIGtleTogJzU4N3k5ZycgfV0sXG4gIFsncG9seWdvbicsIHsgcG9pbnRzOiAnMiAxOSAxMSAxMiAyIDUgMiAxOScsIGtleTogJzNwd2VoMCcgfV0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgRmFzdEZvcndhcmRcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHOXNlV2R2YmlCd2IybHVkSE05SWpFeklERTVJREl5SURFeUlERXpJRFVnTVRNZ01Ua2lJQzgrQ2lBZ1BIQnZiSGxuYjI0Z2NHOXBiblJ6UFNJeUlERTVJREV4SURFeUlESWdOU0F5SURFNUlpQXZQZ284TDNOMlp6NEspIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2Zhc3QtZm9yd2FyZFxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IEZhc3RGb3J3YXJkID0gY3JlYXRlTHVjaWRlSWNvbignZmFzdC1mb3J3YXJkJywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IEZhc3RGb3J3YXJkO1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbXG4gICAgJ3BhdGgnLFxuICAgIHtcbiAgICAgIGQ6ICdNMTIuNjcgMTlhMiAyIDAgMCAwIDEuNDE2LS41ODhsNi4xNTQtNi4xNzJhNiA2IDAgMCAwLTguNDktOC40OUw1LjU4NiA5LjkxNEEyIDIgMCAwIDAgNSAxMS4zMjhWMThhMSAxIDAgMCAwIDEgMXonLFxuICAgICAga2V5OiAnMThqbDRrJyxcbiAgICB9LFxuICBdLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTYgOCAyIDIyJywga2V5OiAndnAzNHEnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTcuNSAxNUg5Jywga2V5OiAnMW96OG51JyB9XSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBGZWF0aGVyXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NVEl1TmpjZ01UbGhNaUF5SURBZ01DQXdJREV1TkRFMkxTNDFPRGhzTmk0eE5UUXROaTR4TnpKaE5pQTJJREFnTUNBd0xUZ3VORGt0T0M0ME9VdzFMalU0TmlBNUxqa3hORUV5SURJZ01DQXdJREFnTlNBeE1TNHpNamhXTVRoaE1TQXhJREFnTUNBd0lERWdNWG9pSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVEUySURnZ01pQXlNaUlnTHo0S0lDQThjR0YwYUNCa1BTSk5NVGN1TlNBeE5VZzVJaUF2UGdvOEwzTjJaejRLKSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9mZWF0aGVyXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgRmVhdGhlciA9IGNyZWF0ZUx1Y2lkZUljb24oJ2ZlYXRoZXInLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgRmVhdGhlcjtcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTQgMyAyIDV2MTVjMCAuNi40IDEgMSAxaDJjLjYgMCAxLS40IDEtMVY1WicsIGtleTogJzFuMnJncycgfV0sXG4gIFsncGF0aCcsIHsgZDogJ002IDhoNCcsIGtleTogJ3V0Zjl0MScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ002IDE4aDQnLCBrZXk6ICcxMnloNGInIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdtMTIgMy0yIDJ2MTVjMCAuNi40IDEgMSAxaDJjLjYgMCAxLS40IDEtMVY1WicsIGtleTogJzNoYTdtaicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xNCA4aDQnLCBrZXk6ICcxcjh3ZzInIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTQgMThoNCcsIGtleTogJzF0M2tidScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ20yMCAzLTIgMnYxNWMwIC42LjQgMSAxIDFoMmMuNiAwIDEtLjQgMS0xVjVaJywga2V5OiAnZGZkNGUyJyB9XSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBGZW5jZVxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTkNBeklESWdOWFl4TldNd0lDNDJMalFnTVNBeElERm9NbU11TmlBd0lERXRMalFnTVMweFZqVmFJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMDJJRGhvTkNJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTmlBeE9HZzBJaUF2UGdvZ0lEeHdZWFJvSUdROUltMHhNaUF6TFRJZ01uWXhOV013SUM0MkxqUWdNU0F4SURGb01tTXVOaUF3SURFdExqUWdNUzB4VmpWYUlpQXZQZ29nSUR4d1lYUm9JR1E5SWsweE5DQTRhRFFpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVEUwSURFNGFEUWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaWJUSXdJRE10TWlBeWRqRTFZekFnTGpZdU5DQXhJREVnTVdneVl5NDJJREFnTVMwdU5DQXhMVEZXTlZvaUlDOCtDand2YzNablBnbz0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2ZlbmNlXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgRmVuY2UgPSBjcmVhdGVMdWNpZGVJY29uKCdmZW5jZScsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBGZW5jZTtcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgWydjaXJjbGUnLCB7IGN4OiAnMTInLCBjeTogJzEyJywgcjogJzInLCBrZXk6ICcxYzlwNzgnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTIgMnY0Jywga2V5OiAnMzQyN2ljJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnbTYuOCAxNS0zLjUgMicsIGtleTogJ2hqeTk4aycgfV0sXG4gIFsncGF0aCcsIHsgZDogJ20yMC43IDctMy41IDInLCBrZXk6ICdmMDhndG8nIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNNi44IDkgMy4zIDcnLCBrZXk6ICcxYWV2aDQnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdtMjAuNyAxNy0zLjUtMicsIGtleTogJzFsaXFvMycgfV0sXG4gIFsncGF0aCcsIHsgZDogJ205IDIyIDMtOCAzIDgnLCBrZXk6ICd3ZWVzMDMnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNOCAyMmg4Jywga2V5OiAncm1ldzh2JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTE4IDE4LjdhOSA5IDAgMSAwLTEyIDAnLCBrZXk6ICdkaHpnNGcnIH1dLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIEZlcnJpc1doZWVsXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThZMmx5WTJ4bElHTjRQU0l4TWlJZ1kzazlJakV5SWlCeVBTSXlJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHhNaUF5ZGpRaUlDOCtDaUFnUEhCaGRHZ2daRDBpYlRZdU9DQXhOUzB6TGpVZ01pSWdMejRLSUNBOGNHRjBhQ0JrUFNKdE1qQXVOeUEzTFRNdU5TQXlJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMDJMamdnT1NBekxqTWdOeUlnTHo0S0lDQThjR0YwYUNCa1BTSnRNakF1TnlBeE55MHpMalV0TWlJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0p0T1NBeU1pQXpMVGdnTXlBNElpQXZQZ29nSUR4d1lYUm9JR1E5SWswNElESXlhRGdpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVEU0SURFNExqZGhPU0E1SURBZ01TQXdMVEV5SURBaUlDOCtDand2YzNablBnbz0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2ZlcnJpcy13aGVlbFxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IEZlcnJpc1doZWVsID0gY3JlYXRlTHVjaWRlSWNvbignZmVycmlzLXdoZWVsJywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IEZlcnJpc1doZWVsO1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdNNSA1LjVBMy41IDMuNSAwIDAgMSA4LjUgMkgxMnY3SDguNUEzLjUgMy41IDAgMCAxIDUgNS41eicsIGtleTogJzEzNDBvaycgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xMiAyaDMuNWEzLjUgMy41IDAgMSAxIDAgN0gxMlYyeicsIGtleTogJzFoejNtMycgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xMiAxMi41YTMuNSAzLjUgMCAxIDEgNyAwIDMuNSAzLjUgMCAxIDEtNyAweicsIGtleTogJzFvejhuMicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ001IDE5LjVBMy41IDMuNSAwIDAgMSA4LjUgMTZIMTJ2My41YTMuNSAzLjUgMCAxIDEtNyAweicsIGtleTogJzFmZjY1aScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ001IDEyLjVBMy41IDMuNSAwIDAgMSA4LjUgOUgxMnY3SDguNUEzLjUgMy41IDAgMCAxIDUgMTIuNXonLCBrZXk6ICdwZGlwNmUnIH1dLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIEZpZ21hXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5OU0ExTGpWQk15NDFJRE11TlNBd0lEQWdNU0E0TGpVZ01rZ3hNblkzU0RndU5VRXpMalVnTXk0MUlEQWdNQ0F4SURVZ05TNDFlaUlnTHo0S0lDQThjR0YwYUNCa1BTSk5NVElnTW1nekxqVmhNeTQxSURNdU5TQXdJREVnTVNBd0lEZElNVEpXTW5vaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRFeUlERXlMalZoTXk0MUlETXVOU0F3SURFZ01TQTNJREFnTXk0MUlETXVOU0F3SURFZ01TMDNJREI2SWlBdlBnb2dJRHh3WVhSb0lHUTlJazAxSURFNUxqVkJNeTQxSURNdU5TQXdJREFnTVNBNExqVWdNVFpJTVRKMk15NDFZVE11TlNBekxqVWdNQ0F4SURFdE55QXdlaUlnTHo0S0lDQThjR0YwYUNCa1BTSk5OU0F4TWk0MVFUTXVOU0F6TGpVZ01DQXdJREVnT0M0MUlEbElNVEoyTjBnNExqVkJNeTQxSURNdU5TQXdJREFnTVNBMUlERXlMalY2SWlBdlBnbzhMM04yWno0SykgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvZmlnbWFcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKiBAZGVwcmVjYXRlZCBCcmFuZCBpY29ucyBoYXZlIGJlZW4gZGVwcmVjYXRlZCBhbmQgYXJlIGR1ZSB0byBiZSByZW1vdmVkLCBwbGVhc2UgcmVmZXIgdG8gaHR0cHM6Ly9naXRodWIuY29tL2x1Y2lkZS1pY29ucy9sdWNpZGUvaXNzdWVzLzY3MC4gV2UgcmVjb21tZW5kIHVzaW5nIGh0dHBzOi8vc2ltcGxlaWNvbnMub3JnLz9xPWZpZ21hIGluc3RlYWQuIFRoaXMgaWNvbiB3aWxsIGJlIHJlbW92ZWQgaW4gdjEuMFxuICovXG5jb25zdCBGaWdtYSA9IGNyZWF0ZUx1Y2lkZUljb24oJ2ZpZ21hJywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IEZpZ21hO1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdNMTAgMTJ2LTEnLCBrZXk6ICd2N2Jrb3YnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTAgMTh2LTInLCBrZXk6ICcxY2p5OGQnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTAgN1Y2Jywga2V5OiAnZGxqY3JsJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTE0IDJ2NGEyIDIgMCAwIDAgMiAyaDQnLCBrZXk6ICd0bnFybGInIH1dLFxuICBbXG4gICAgJ3BhdGgnLFxuICAgIHsgZDogJ00xNS41IDIySDE4YTIgMiAwIDAgMCAyLTJWN2wtNS01SDZhMiAyIDAgMCAwLTIgMnYxNmEyIDIgMCAwIDAgLjI3NCAxLjAxJywga2V5OiAnZ2tiY29yJyB9LFxuICBdLFxuICBbJ2NpcmNsZScsIHsgY3g6ICcxMCcsIGN5OiAnMjAnLCByOiAnMicsIGtleTogJzF4emRvaicgfV0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgRmlsZUFyY2hpdmVcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1UQWdNVEoyTFRFaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRFd0lERTRkaTB5SWlBdlBnb2dJRHh3WVhSb0lHUTlJazB4TUNBM1ZqWWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRURTBJREoyTkdFeUlESWdNQ0F3SURBZ01pQXlhRFFpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVEUxTGpVZ01qSklNVGhoTWlBeUlEQWdNQ0F3SURJdE1sWTNiQzAxTFRWSU5tRXlJRElnTUNBd0lEQXRNaUF5ZGpFMllUSWdNaUF3SURBZ01DQXVNamMwSURFdU1ERWlJQzgrQ2lBZ1BHTnBjbU5zWlNCamVEMGlNVEFpSUdONVBTSXlNQ0lnY2owaU1pSWdMejRLUEM5emRtYytDZz09KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9maWxlLWFyY2hpdmVcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBGaWxlQXJjaGl2ZSA9IGNyZWF0ZUx1Y2lkZUljb24oJ2ZpbGUtYXJjaGl2ZScsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBGaWxlQXJjaGl2ZTtcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTQgMjJoMTRhMiAyIDAgMCAwIDItMlY3bC01LTVINmEyIDIgMCAwIDAtMiAydjInLCBrZXk6ICcxN2s3anQnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTQgMnY0YTIgMiAwIDAgMCAyIDJoNCcsIGtleTogJ3RucXJsYicgfV0sXG4gIFsnY2lyY2xlJywgeyBjeDogJzMnLCBjeTogJzE3JywgcjogJzEnLCBrZXk6ICd2bzZudGknIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMiAxN3YtM2E0IDQgMCAwIDEgOCAwdjMnLCBrZXk6ICcxZ2dkcmUnIH1dLFxuICBbJ2NpcmNsZScsIHsgY3g6ICc5JywgY3k6ICcxNycsIHI6ICcxJywga2V5OiAnYmMxZnE0JyB9XSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBGaWxlQXVkaW8yXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5OQ0F5TW1neE5HRXlJRElnTUNBd0lEQWdNaTB5Vmpkc0xUVXROVWcyWVRJZ01pQXdJREFnTUMweUlESjJNaUlnTHo0S0lDQThjR0YwYUNCa1BTSk5NVFFnTW5ZMFlUSWdNaUF3SURBZ01DQXlJREpvTkNJZ0x6NEtJQ0E4WTJseVkyeGxJR040UFNJeklpQmplVDBpTVRjaUlISTlJakVpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVElnTVRkMkxUTmhOQ0EwSURBZ01DQXhJRGdnTUhZeklpQXZQZ29nSUR4amFYSmpiR1VnWTNnOUlqa2lJR041UFNJeE55SWdjajBpTVNJZ0x6NEtQQzl6ZG1jK0NnPT0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2ZpbGUtYXVkaW8tMlxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IEZpbGVBdWRpbzIgPSBjcmVhdGVMdWNpZGVJY29uKCdmaWxlLWF1ZGlvLTInLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgRmlsZUF1ZGlvMjtcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTE3LjUgMjJoLjVhMiAyIDAgMCAwIDItMlY3bC01LTVINmEyIDIgMCAwIDAtMiAydjMnLCBrZXk6ICdyc2xxZ2YnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTQgMnY0YTIgMiAwIDAgMCAyIDJoNCcsIGtleTogJ3RucXJsYicgfV0sXG4gIFtcbiAgICAncGF0aCcsXG4gICAge1xuICAgICAgZDogJ00yIDE5YTIgMiAwIDEgMSA0IDB2MWEyIDIgMCAxIDEtNCAwdi00YTYgNiAwIDAgMSAxMiAwdjRhMiAyIDAgMSAxLTQgMHYtMWEyIDIgMCAxIDEgNCAwJyxcbiAgICAgIGtleTogJzlmN3gzaScsXG4gICAgfSxcbiAgXSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBGaWxlQXVkaW9cbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1UY3VOU0F5TW1ndU5XRXlJRElnTUNBd0lEQWdNaTB5Vmpkc0xUVXROVWcyWVRJZ01pQXdJREFnTUMweUlESjJNeUlnTHo0S0lDQThjR0YwYUNCa1BTSk5NVFFnTW5ZMFlUSWdNaUF3SURBZ01DQXlJREpvTkNJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTWlBeE9XRXlJRElnTUNBeElERWdOQ0F3ZGpGaE1pQXlJREFnTVNBeExUUWdNSFl0TkdFMklEWWdNQ0F3SURFZ01USWdNSFkwWVRJZ01pQXdJREVnTVMwMElEQjJMVEZoTWlBeUlEQWdNU0F4SURRZ01DSWdMejRLUEM5emRtYytDZz09KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9maWxlLWF1ZGlvXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgRmlsZUF1ZGlvID0gY3JlYXRlTHVjaWRlSWNvbignZmlsZS1hdWRpbycsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBGaWxlQXVkaW87XG4iLCJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ00xNSAySDZhMiAyIDAgMCAwLTIgMnYxNmEyIDIgMCAwIDAgMiAyaDEyYTIgMiAwIDAgMCAyLTJWN1onLCBrZXk6ICcxcnFmejcnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTQgMnY0YTIgMiAwIDAgMCAyIDJoNCcsIGtleTogJ3RucXJsYicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ204IDE4IDQtNCcsIGtleTogJzEyemFiMCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ004IDEwdjhoOCcsIGtleTogJ3RsYXVrdycgfV0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgRmlsZUF4aXMzZFxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTVRVZ01rZzJZVElnTWlBd0lEQWdNQzB5SURKMk1UWmhNaUF5SURBZ01DQXdJRElnTW1neE1tRXlJRElnTUNBd0lEQWdNaTB5VmpkYUlpQXZQZ29nSUR4d1lYUm9JR1E5SWsweE5DQXlkalJoTWlBeUlEQWdNQ0F3SURJZ01tZzBJaUF2UGdvZ0lEeHdZWFJvSUdROUltMDRJREU0SURRdE5DSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk9DQXhNSFk0YURnaUlDOCtDand2YzNablBnbz0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2ZpbGUtYXhpcy0zZFxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IEZpbGVBeGlzM2QgPSBjcmVhdGVMdWNpZGVJY29uKCdmaWxlLWF4aXMtM2QnLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgRmlsZUF4aXMzZDtcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgW1xuICAgICdwYXRoJyxcbiAgICB7XG4gICAgICBkOiAnbTEzLjY5IDEyLjQ3OSAxLjI5IDQuODhhLjUuNSAwIDAgMS0uNjk3LjU5MWwtMS44NDQtLjg0OWExIDEgMCAwIDAtLjg4LjAwMWwtMS44NDYuODVhLjUuNSAwIDAgMS0uNjkzLS41OTNsMS4yOS00Ljg4JyxcbiAgICAgIGtleTogJzdhNGdtcicsXG4gICAgfSxcbiAgXSxcbiAgWydwYXRoJywgeyBkOiAnTTE1IDJINmEyIDIgMCAwIDAtMiAydjE2YTIgMiAwIDAgMCAyIDJoMTJhMiAyIDAgMCAwIDItMlY3eicsIGtleTogJzFtbHg5aycgfV0sXG4gIFsnY2lyY2xlJywgeyBjeDogJzEyJywgY3k6ICcxMCcsIHI6ICczJywga2V5OiAnaWxxaHI3JyB9XSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBGaWxlQmFkZ2UyXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSnRNVE11TmprZ01USXVORGM1SURFdU1qa2dOQzQ0T0dFdU5TNDFJREFnTUNBeExTNDJPVGN1TlRreGJDMHhMamcwTkMwdU9EUTVZVEVnTVNBd0lEQWdNQzB1T0RndU1EQXhiQzB4TGpnME5pNDROV0V1TlM0MUlEQWdNQ0F4TFM0Mk9UTXRMalU1TTJ3eExqSTVMVFF1T0RnaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRFMUlESklObUV5SURJZ01DQXdJREF0TWlBeWRqRTJZVElnTWlBd0lEQWdNQ0F5SURKb01USmhNaUF5SURBZ01DQXdJREl0TWxZM2VpSWdMejRLSUNBOFkybHlZMnhsSUdONFBTSXhNaUlnWTNrOUlqRXdJaUJ5UFNJeklpQXZQZ284TDNOMlp6NEspIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2ZpbGUtYmFkZ2UtMlxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IEZpbGVCYWRnZTIgPSBjcmVhdGVMdWNpZGVJY29uKCdmaWxlLWJhZGdlLTInLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgRmlsZUJhZGdlMjtcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTEyIDIyaDZhMiAyIDAgMCAwIDItMlY3bC01LTVINmEyIDIgMCAwIDAtMiAydjMuMDcyJywga2V5OiAnbjZzNjZmJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTE0IDJ2NGEyIDIgMCAwIDAgMiAyaDQnLCBrZXk6ICd0bnFybGInIH1dLFxuICBbXG4gICAgJ3BhdGgnLFxuICAgIHtcbiAgICAgIGQ6ICdtNi42OSAxNi40NzkgMS4yOSA0Ljg4YS41LjUgMCAwIDEtLjY5OC41OTFsLTEuODQzLS44NDlhMSAxIDAgMCAwLS44OC4wMDFsLTEuODQ2Ljg1YS41LjUgMCAwIDEtLjY5My0uNTkzbDEuMjktNC44OCcsXG4gICAgICBrZXk6ICcxZTZ5dngnLFxuICAgIH0sXG4gIF0sXG4gIFsnY2lyY2xlJywgeyBjeDogJzUnLCBjeTogJzE0JywgcjogJzMnLCBrZXk6ICd1ZnJ1NXQnIH1dLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIEZpbGVCYWRnZVxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTVRJZ01qSm9ObUV5SURJZ01DQXdJREFnTWkweVZqZHNMVFV0TlVnMllUSWdNaUF3SURBZ01DMHlJREoyTXk0d056SWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRURTBJREoyTkdFeUlESWdNQ0F3SURBZ01pQXlhRFFpSUM4K0NpQWdQSEJoZEdnZ1pEMGliVFl1TmprZ01UWXVORGM1SURFdU1qa2dOQzQ0T0dFdU5TNDFJREFnTUNBeExTNDJPVGd1TlRreGJDMHhMamcwTXkwdU9EUTVZVEVnTVNBd0lEQWdNQzB1T0RndU1EQXhiQzB4TGpnME5pNDROV0V1TlM0MUlEQWdNQ0F4TFM0Mk9UTXRMalU1TTJ3eExqSTVMVFF1T0RnaUlDOCtDaUFnUEdOcGNtTnNaU0JqZUQwaU5TSWdZM2s5SWpFMElpQnlQU0l6SWlBdlBnbzhMM04yWno0SykgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvZmlsZS1iYWRnZVxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IEZpbGVCYWRnZSA9IGNyZWF0ZUx1Y2lkZUljb24oJ2ZpbGUtYmFkZ2UnLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgRmlsZUJhZGdlO1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdNMTQuNSAyMkgxOGEyIDIgMCAwIDAgMi0yVjdsLTUtNUg2YTIgMiAwIDAgMC0yIDJ2NCcsIGtleTogJzE2bHo2eicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xNCAydjRhMiAyIDAgMCAwIDIgMmg0Jywga2V5OiAndG5xcmxiJyB9XSxcbiAgW1xuICAgICdwYXRoJyxcbiAgICB7XG4gICAgICBkOiAnTTMgMTMuMWEyIDIgMCAwIDAtMSAxLjc2djMuMjRhMiAyIDAgMCAwIC45NyAxLjc4TDYgMjEuN2EyIDIgMCAwIDAgMi4wMy4wMUwxMSAxOS45YTIgMiAwIDAgMCAxLTEuNzZWMTQuOWEyIDIgMCAwIDAtLjk3LTEuNzhMOCAxMS4zYTIgMiAwIDAgMC0yLjAzLS4wMVonLFxuICAgICAga2V5OiAnOTlwajFzJyxcbiAgICB9LFxuICBdLFxuICBbJ3BhdGgnLCB7IGQ6ICdNNyAxN3Y1Jywga2V5OiAnMXlqMWpoJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTExLjcgMTQuMiA3IDE3bC00LjctMi44Jywga2V5OiAnMXlrOHRjJyB9XSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBGaWxlQm94XG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NVFF1TlNBeU1rZ3hPR0V5SURJZ01DQXdJREFnTWkweVZqZHNMVFV0TlVnMllUSWdNaUF3SURBZ01DMHlJREoyTkNJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTVRRZ01uWTBZVElnTWlBd0lEQWdNQ0F5SURKb05DSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk15QXhNeTR4WVRJZ01pQXdJREFnTUMweElERXVOeloyTXk0eU5HRXlJRElnTUNBd0lEQWdMamszSURFdU56aE1OaUF5TVM0M1lUSWdNaUF3SURBZ01DQXlMakF6TGpBeFRERXhJREU1TGpsaE1pQXlJREFnTUNBd0lERXRNUzQzTmxZeE5DNDVZVElnTWlBd0lEQWdNQzB1T1RjdE1TNDNPRXc0SURFeExqTmhNaUF5SURBZ01DQXdMVEl1TURNdExqQXhXaUlnTHo0S0lDQThjR0YwYUNCa1BTSk5OeUF4TjNZMUlpQXZQZ29nSUR4d1lYUm9JR1E5SWsweE1TNDNJREUwTGpJZ055QXhOMnd0TkM0M0xUSXVPQ0lnTHo0S1BDOXpkbWMrQ2c9PSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvZmlsZS1ib3hcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBGaWxlQm94ID0gY3JlYXRlTHVjaWRlSWNvbignZmlsZS1ib3gnLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgRmlsZUJveDtcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTE1IDJINmEyIDIgMCAwIDAtMiAydjE2YTIgMiAwIDAgMCAyIDJoMTJhMiAyIDAgMCAwIDItMlY3WicsIGtleTogJzFycWZ6NycgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xNCAydjRhMiAyIDAgMCAwIDIgMmg0Jywga2V5OiAndG5xcmxiJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTggMTh2LTInLCBrZXk6ICdxY21wb3YnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTIgMTh2LTQnLCBrZXk6ICdxMXEyNXUnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTYgMTh2LTYnLCBrZXk6ICcxNXkwbnAnIH1dLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIEZpbGVDaGFydENvbHVtbkluY3JlYXNpbmdcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1UVWdNa2cyWVRJZ01pQXdJREFnTUMweUlESjJNVFpoTWlBeUlEQWdNQ0F3SURJZ01tZ3hNbUV5SURJZ01DQXdJREFnTWkweVZqZGFJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHhOQ0F5ZGpSaE1pQXlJREFnTUNBd0lESWdNbWcwSWlBdlBnb2dJRHh3WVhSb0lHUTlJazA0SURFNGRpMHlJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHhNaUF4T0hZdE5DSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk1UWWdNVGgyTFRZaUlDOCtDand2YzNablBnbz0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2ZpbGUtY2hhcnQtY29sdW1uLWluY3JlYXNpbmdcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBGaWxlQ2hhcnRDb2x1bW5JbmNyZWFzaW5nID0gY3JlYXRlTHVjaWRlSWNvbignZmlsZS1jaGFydC1jb2x1bW4taW5jcmVhc2luZycsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBGaWxlQ2hhcnRDb2x1bW5JbmNyZWFzaW5nO1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdNMTUgMkg2YTIgMiAwIDAgMC0yIDJ2MTZhMiAyIDAgMCAwIDIgMmgxMmEyIDIgMCAwIDAgMi0yVjdaJywga2V5OiAnMXJxZno3JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTE0IDJ2NGEyIDIgMCAwIDAgMiAyaDQnLCBrZXk6ICd0bnFybGInIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNOCAxOHYtMScsIGtleTogJ3pnMHlnYycgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xMiAxOHYtNicsIGtleTogJzE3ZzZpMicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xNiAxOHYtMycsIGtleTogJ2o1anQ0aCcgfV0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgRmlsZUNoYXJ0Q29sdW1uXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NVFVnTWtnMllUSWdNaUF3SURBZ01DMHlJREoyTVRaaE1pQXlJREFnTUNBd0lESWdNbWd4TW1FeUlESWdNQ0F3SURBZ01pMHlWamRhSWlBdlBnb2dJRHh3WVhSb0lHUTlJazB4TkNBeWRqUmhNaUF5SURBZ01DQXdJRElnTW1nMElpQXZQZ29nSUR4d1lYUm9JR1E5SWswNElERTRkaTB4SWlBdlBnb2dJRHh3WVhSb0lHUTlJazB4TWlBeE9IWXROaUlnTHo0S0lDQThjR0YwYUNCa1BTSk5NVFlnTVRoMkxUTWlJQzgrQ2p3dmMzWm5QZ289KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9maWxlLWNoYXJ0LWNvbHVtblxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IEZpbGVDaGFydENvbHVtbiA9IGNyZWF0ZUx1Y2lkZUljb24oJ2ZpbGUtY2hhcnQtY29sdW1uJywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IEZpbGVDaGFydENvbHVtbjtcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTE0IDJ2NGEyIDIgMCAwIDAgMiAyaDQnLCBrZXk6ICd0bnFybGInIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTYgMjJoMmEyIDIgMCAwIDAgMi0yVjdsLTUtNUg2YTIgMiAwIDAgMC0yIDJ2My41Jywga2V5OiAnMTNkZG9iJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTQuMDE3IDExLjUxMmE2IDYgMCAxIDAgOC40NjYgOC40NzUnLCBrZXk6ICdzNnZzNXQnIH1dLFxuICBbXG4gICAgJ3BhdGgnLFxuICAgIHtcbiAgICAgIGQ6ICdNOSAxNmExIDEgMCAwIDEtMS0xdi00YzAtLjU1Mi40NS0xLjAwOC45OTUtLjkxN2E2IDYgMCAwIDEgNC45MjIgNC45MjJjLjA5MS41NDQtLjM2NS45OTUtLjkxNy45OTV6JyxcbiAgICAgIGtleTogJzFkbDZzNicsXG4gICAgfSxcbiAgXSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBGaWxlQ2hhcnRQaWVcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1UUWdNblkwWVRJZ01pQXdJREFnTUNBeUlESm9OQ0lnTHo0S0lDQThjR0YwYUNCa1BTSk5NVFlnTWpKb01tRXlJRElnTUNBd0lEQWdNaTB5Vmpkc0xUVXROVWcyWVRJZ01pQXdJREFnTUMweUlESjJNeTQxSWlBdlBnb2dJRHh3WVhSb0lHUTlJazAwTGpBeE55QXhNUzQxTVRKaE5pQTJJREFnTVNBd0lEZ3VORFkySURndU5EYzFJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMDVJREUyWVRFZ01TQXdJREFnTVMweExURjJMVFJqTUMwdU5UVXlMalExTFRFdU1EQTRMams1TlMwdU9URTNZVFlnTmlBd0lEQWdNU0EwTGpreU1pQTBMamt5TW1NdU1Ea3hMalUwTkMwdU16WTFMams1TlMwdU9URTNMams1TlhvaUlDOCtDand2YzNablBnbz0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2ZpbGUtY2hhcnQtcGllXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgRmlsZUNoYXJ0UGllID0gY3JlYXRlTHVjaWRlSWNvbignZmlsZS1jaGFydC1waWUnLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgRmlsZUNoYXJ0UGllO1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdNMTUgMkg2YTIgMiAwIDAgMC0yIDJ2MTZhMiAyIDAgMCAwIDIgMmgxMmEyIDIgMCAwIDAgMi0yVjdaJywga2V5OiAnMXJxZno3JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTE0IDJ2NGEyIDIgMCAwIDAgMiAyaDQnLCBrZXk6ICd0bnFybGInIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdtMTYgMTMtMy41IDMuNS0yLTJMOCAxNycsIGtleTogJ3p6N3lvZCcgfV0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgRmlsZUNoYXJ0TGluZVxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTVRVZ01rZzJZVElnTWlBd0lEQWdNQzB5SURKMk1UWmhNaUF5SURBZ01DQXdJRElnTW1neE1tRXlJRElnTUNBd0lEQWdNaTB5VmpkYUlpQXZQZ29nSUR4d1lYUm9JR1E5SWsweE5DQXlkalJoTWlBeUlEQWdNQ0F3SURJZ01tZzBJaUF2UGdvZ0lEeHdZWFJvSUdROUltMHhOaUF4TXkwekxqVWdNeTQxTFRJdE1rdzRJREUzSWlBdlBnbzhMM04yWno0SykgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvZmlsZS1jaGFydC1saW5lXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgRmlsZUNoYXJ0TGluZSA9IGNyZWF0ZUx1Y2lkZUljb24oJ2ZpbGUtY2hhcnQtbGluZScsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBGaWxlQ2hhcnRMaW5lO1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdNNCAyMmgxNGEyIDIgMCAwIDAgMi0yVjdsLTUtNUg2YTIgMiAwIDAgMC0yIDJ2NCcsIGtleTogJzFwZjVqMScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xNCAydjRhMiAyIDAgMCAwIDIgMmg0Jywga2V5OiAndG5xcmxiJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnbTMgMTUgMiAyIDQtNCcsIGtleTogJzFsaHJraycgfV0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgRmlsZUNoZWNrMlxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTkNBeU1tZ3hOR0V5SURJZ01DQXdJREFnTWkweVZqZHNMVFV0TlVnMllUSWdNaUF3SURBZ01DMHlJREoyTkNJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTVRRZ01uWTBZVElnTWlBd0lEQWdNQ0F5SURKb05DSWdMejRLSUNBOGNHRjBhQ0JrUFNKdE15QXhOU0F5SURJZ05DMDBJaUF2UGdvOEwzTjJaejRLKSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9maWxlLWNoZWNrLTJcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBGaWxlQ2hlY2syID0gY3JlYXRlTHVjaWRlSWNvbignZmlsZS1jaGVjay0yJywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IEZpbGVDaGVjazI7XG4iLCJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ00xNSAySDZhMiAyIDAgMCAwLTIgMnYxNmEyIDIgMCAwIDAgMiAyaDEyYTIgMiAwIDAgMCAyLTJWN1onLCBrZXk6ICcxcnFmejcnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTQgMnY0YTIgMiAwIDAgMCAyIDJoNCcsIGtleTogJ3RucXJsYicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ205IDE1IDIgMiA0LTQnLCBrZXk6ICcxZ3JwMW4nIH1dLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIEZpbGVDaGVja1xuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTVRVZ01rZzJZVElnTWlBd0lEQWdNQzB5SURKMk1UWmhNaUF5SURBZ01DQXdJRElnTW1neE1tRXlJRElnTUNBd0lEQWdNaTB5VmpkYUlpQXZQZ29nSUR4d1lYUm9JR1E5SWsweE5DQXlkalJoTWlBeUlEQWdNQ0F3SURJZ01tZzBJaUF2UGdvZ0lEeHdZWFJvSUdROUltMDVJREUxSURJZ01pQTBMVFFpSUM4K0Nqd3ZjM1puUGdvPSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvZmlsZS1jaGVja1xuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IEZpbGVDaGVjayA9IGNyZWF0ZUx1Y2lkZUljb24oJ2ZpbGUtY2hlY2snLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgRmlsZUNoZWNrO1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdNNCAyMmgxNGEyIDIgMCAwIDAgMi0yVjdsLTUtNUg2YTIgMiAwIDAgMC0yIDJ2NCcsIGtleTogJzFwZjVqMScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xNCAydjRhMiAyIDAgMCAwIDIgMmg0Jywga2V5OiAndG5xcmxiJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnbTUgMTItMyAzIDMgMycsIGtleTogJ29rZTEyaycgfV0sXG4gIFsncGF0aCcsIHsgZDogJ205IDE4IDMtMy0zLTMnLCBrZXk6ICcxMTJwc2gnIH1dLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIEZpbGVDb2RlMlxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTkNBeU1tZ3hOR0V5SURJZ01DQXdJREFnTWkweVZqZHNMVFV0TlVnMllUSWdNaUF3SURBZ01DMHlJREoyTkNJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTVRRZ01uWTBZVElnTWlBd0lEQWdNQ0F5SURKb05DSWdMejRLSUNBOGNHRjBhQ0JrUFNKdE5TQXhNaTB6SURNZ015QXpJaUF2UGdvZ0lEeHdZWFJvSUdROUltMDVJREU0SURNdE15MHpMVE1pSUM4K0Nqd3ZjM1puUGdvPSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvZmlsZS1jb2RlLTJcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBGaWxlQ29kZTIgPSBjcmVhdGVMdWNpZGVJY29uKCdmaWxlLWNvZGUtMicsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBGaWxlQ29kZTI7XG4iLCJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ00xNCAydjRhMiAyIDAgMCAwIDIgMmg0Jywga2V5OiAndG5xcmxiJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTE2IDIyaDJhMiAyIDAgMCAwIDItMlY3bC01LTVINmEyIDIgMCAwIDAtMiAydjMnLCBrZXk6ICczN2hsZmcnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNOCAxNHYyLjJsMS42IDEnLCBrZXk6ICc2bTRiaWUnIH1dLFxuICBbJ2NpcmNsZScsIHsgY3g6ICc4JywgY3k6ICcxNicsIHI6ICc2Jywga2V5OiAnMTB2MTViJyB9XSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBGaWxlQ2xvY2tcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1UUWdNblkwWVRJZ01pQXdJREFnTUNBeUlESm9OQ0lnTHo0S0lDQThjR0YwYUNCa1BTSk5NVFlnTWpKb01tRXlJRElnTUNBd0lEQWdNaTB5Vmpkc0xUVXROVWcyWVRJZ01pQXdJREFnTUMweUlESjJNeUlnTHo0S0lDQThjR0YwYUNCa1BTSk5PQ0F4TkhZeUxqSnNNUzQySURFaUlDOCtDaUFnUEdOcGNtTnNaU0JqZUQwaU9DSWdZM2s5SWpFMklpQnlQU0kySWlBdlBnbzhMM04yWno0SykgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvZmlsZS1jbG9ja1xuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IEZpbGVDbG9jayA9IGNyZWF0ZUx1Y2lkZUljb24oJ2ZpbGUtY2xvY2snLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgRmlsZUNsb2NrO1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdNMTAgMTIuNSA4IDE1bDIgMi41Jywga2V5OiAnMXRnMjB4JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnbTE0IDEyLjUgMiAyLjUtMiAyLjUnLCBrZXk6ICd5aW5hdmInIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTQgMnY0YTIgMiAwIDAgMCAyIDJoNCcsIGtleTogJ3RucXJsYicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xNSAySDZhMiAyIDAgMCAwLTIgMnYxNmEyIDIgMCAwIDAgMiAyaDEyYTIgMiAwIDAgMCAyLTJWN3onLCBrZXk6ICcxbWx4OWsnIH1dLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIEZpbGVDb2RlXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NVEFnTVRJdU5TQTRJREUxYkRJZ01pNDFJaUF2UGdvZ0lEeHdZWFJvSUdROUltMHhOQ0F4TWk0MUlESWdNaTQxTFRJZ01pNDFJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHhOQ0F5ZGpSaE1pQXlJREFnTUNBd0lESWdNbWcwSWlBdlBnb2dJRHh3WVhSb0lHUTlJazB4TlNBeVNEWmhNaUF5SURBZ01DQXdMVElnTW5ZeE5tRXlJRElnTUNBd0lEQWdNaUF5YURFeVlUSWdNaUF3SURBZ01DQXlMVEpXTjNvaUlDOCtDand2YzNablBnbz0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2ZpbGUtY29kZVxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IEZpbGVDb2RlID0gY3JlYXRlTHVjaWRlSWNvbignZmlsZS1jb2RlJywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IEZpbGVDb2RlO1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdNMTQgMnY0YTIgMiAwIDAgMCAyIDJoNCcsIGtleTogJ3RucXJsYicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ20yLjMwNSAxNS41My45MjMtLjM4MicsIGtleTogJ3lmcDlzdCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ20zLjIyOCAxMi44NTItLjkyNC0uMzgzJywga2V5OiAnYmNreW5iJyB9XSxcbiAgW1xuICAgICdwYXRoJyxcbiAgICB7XG4gICAgICBkOiAnTTQuNjc3IDIxLjVhMiAyIDAgMCAwIDEuMzEzLjVIMThhMiAyIDAgMCAwIDItMlY3bC01LTVINmEyIDIgMCAwIDAtMiAydjIuNScsXG4gICAgICBrZXk6ICcxeW8zb3onLFxuICAgIH0sXG4gIF0sXG4gIFsncGF0aCcsIHsgZDogJ200Ljg1MiAxMS4yMjgtLjM4My0uOTIzJywga2V5OiAnMWo4OGk5JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnbTQuODUyIDE2Ljc3Mi0uMzgzLjkyNCcsIGtleTogJ3NhZzFkdicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ203LjE0OCAxMS4yMjguMzgzLS45MjMnLCBrZXk6ICdyajM5aGsnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdtNy41MyAxNy42OTYtLjM4Mi0uOTI0Jywga2V5OiAnMXV1NWNzJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnbTguNzcyIDEyLjg1Mi45MjMtLjM4MycsIGtleTogJzEzODExbCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ204Ljc3MiAxNS4xNDguOTIzLjM4MycsIGtleTogJ3oxYTVsMCcgfV0sXG4gIFsnY2lyY2xlJywgeyBjeDogJzYnLCBjeTogJzE0JywgcjogJzMnLCBrZXk6ICdhMXhmdjYnIH1dLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIEZpbGVDb2dcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1UUWdNblkwWVRJZ01pQXdJREFnTUNBeUlESm9OQ0lnTHo0S0lDQThjR0YwYUNCa1BTSnRNaTR6TURVZ01UVXVOVE11T1RJekxTNHpPRElpSUM4K0NpQWdQSEJoZEdnZ1pEMGliVE11TWpJNElERXlMamcxTWkwdU9USTBMUzR6T0RNaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRRdU5qYzNJREl4TGpWaE1pQXlJREFnTUNBd0lERXVNekV6TGpWSU1UaGhNaUF5SURBZ01DQXdJREl0TWxZM2JDMDFMVFZJTm1FeUlESWdNQ0F3SURBdE1pQXlkakl1TlNJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0p0TkM0NE5USWdNVEV1TWpJNExTNHpPRE10TGpreU15SWdMejRLSUNBOGNHRjBhQ0JrUFNKdE5DNDROVElnTVRZdU56Y3lMUzR6T0RNdU9USTBJaUF2UGdvZ0lEeHdZWFJvSUdROUltMDNMakUwT0NBeE1TNHlNamd1TXpnekxTNDVNak1pSUM4K0NpQWdQSEJoZEdnZ1pEMGliVGN1TlRNZ01UY3VOamsyTFM0ek9ESXRMamt5TkNJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0p0T0M0M056SWdNVEl1T0RVeUxqa3lNeTB1TXpneklpQXZQZ29nSUR4d1lYUm9JR1E5SW0wNExqYzNNaUF4TlM0eE5EZ3VPVEl6TGpNNE15SWdMejRLSUNBOFkybHlZMnhsSUdONFBTSTJJaUJqZVQwaU1UUWlJSEk5SWpNaUlDOCtDand2YzNablBnbz0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2ZpbGUtY29nXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgRmlsZUNvZyA9IGNyZWF0ZUx1Y2lkZUljb24oJ2ZpbGUtY29nJywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IEZpbGVDb2c7XG4iLCJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ00xNSAySDZhMiAyIDAgMCAwLTIgMnYxNmEyIDIgMCAwIDAgMiAyaDEyYTIgMiAwIDAgMCAyLTJWN1onLCBrZXk6ICcxcnFmejcnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNOSAxMGg2Jywga2V5OiAnOWd4enNoJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTEyIDEzVjcnLCBrZXk6ICdoMHIyMG4nIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNOSAxN2g2Jywga2V5OiAncjh1aXQyJyB9XSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBGaWxlRGlmZlxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTVRVZ01rZzJZVElnTWlBd0lEQWdNQzB5SURKMk1UWmhNaUF5SURBZ01DQXdJRElnTW1neE1tRXlJRElnTUNBd0lEQWdNaTB5VmpkYUlpQXZQZ29nSUR4d1lYUm9JR1E5SWswNUlERXdhRFlpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVEV5SURFelZqY2lJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRUa2dNVGRvTmlJZ0x6NEtQQzl6ZG1jK0NnPT0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2ZpbGUtZGlmZlxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IEZpbGVEaWZmID0gY3JlYXRlTHVjaWRlSWNvbignZmlsZS1kaWZmJywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IEZpbGVEaWZmO1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdNNCAyMmgxNGEyIDIgMCAwIDAgMi0yVjdsLTUtNUg2YTIgMiAwIDAgMC0yIDJ2NCcsIGtleTogJzFwZjVqMScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xNCAydjRhMiAyIDAgMCAwIDIgMmg0Jywga2V5OiAndG5xcmxiJyB9XSxcbiAgWydyZWN0JywgeyB3aWR0aDogJzQnLCBoZWlnaHQ6ICc2JywgeDogJzInLCB5OiAnMTInLCByeDogJzInLCBrZXk6ICdqbTMwNGcnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTAgMTJoMnY2Jywga2V5OiAnMTJ6dzc0JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTEwIDE4aDQnLCBrZXk6ICcxdWxxNjgnIH1dLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIEZpbGVEaWdpdFxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTkNBeU1tZ3hOR0V5SURJZ01DQXdJREFnTWkweVZqZHNMVFV0TlVnMllUSWdNaUF3SURBZ01DMHlJREoyTkNJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTVRRZ01uWTBZVElnTWlBd0lEQWdNQ0F5SURKb05DSWdMejRLSUNBOGNtVmpkQ0IzYVdSMGFEMGlOQ0lnYUdWcFoyaDBQU0kySWlCNFBTSXlJaUI1UFNJeE1pSWdjbmc5SWpJaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRFd0lERXlhREoyTmlJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTVRBZ01UaG9OQ0lnTHo0S1BDOXpkbWMrQ2c9PSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvZmlsZS1kaWdpdFxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IEZpbGVEaWdpdCA9IGNyZWF0ZUx1Y2lkZUljb24oJ2ZpbGUtZGlnaXQnLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgRmlsZURpZ2l0O1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdNMTUgMkg2YTIgMiAwIDAgMC0yIDJ2MTZhMiAyIDAgMCAwIDIgMmgxMmEyIDIgMCAwIDAgMi0yVjdaJywga2V5OiAnMXJxZno3JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTE0IDJ2NGEyIDIgMCAwIDAgMiAyaDQnLCBrZXk6ICd0bnFybGInIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTIgMTh2LTYnLCBrZXk6ICcxN2c2aTInIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdtOSAxNSAzIDMgMy0zJywga2V5OiAnMW5wZDNvJyB9XSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBGaWxlRG93blxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTVRVZ01rZzJZVElnTWlBd0lEQWdNQzB5SURKMk1UWmhNaUF5SURBZ01DQXdJRElnTW1neE1tRXlJRElnTUNBd0lEQWdNaTB5VmpkYUlpQXZQZ29nSUR4d1lYUm9JR1E5SWsweE5DQXlkalJoTWlBeUlEQWdNQ0F3SURJZ01tZzBJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHhNaUF4T0hZdE5pSWdMejRLSUNBOGNHRjBhQ0JrUFNKdE9TQXhOU0F6SURNZ015MHpJaUF2UGdvOEwzTjJaejRLKSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9maWxlLWRvd25cbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBGaWxlRG93biA9IGNyZWF0ZUx1Y2lkZUljb24oJ2ZpbGUtZG93bicsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBGaWxlRG93bjtcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTQgMjJoMTRhMiAyIDAgMCAwIDItMlY3bC01LTVINmEyIDIgMCAwIDAtMiAydjInLCBrZXk6ICcxN2s3anQnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTQgMnY0YTIgMiAwIDAgMCAyIDJoNCcsIGtleTogJ3RucXJsYicgfV0sXG4gIFtcbiAgICAncGF0aCcsXG4gICAge1xuICAgICAgZDogJ00xMC4yOSAxMC43YTIuNDMgMi40MyAwIDAgMC0yLjY2LS41MmMtLjI5LjEyLS41Ni4zLS43OC41M2wtLjM1LjM0LS4zNS0uMzRhMi40MyAyLjQzIDAgMCAwLTIuNjUtLjUzYy0uMy4xMi0uNTYuMy0uNzkuNTMtLjk1Ljk0LTEgMi41My4yIDMuNzRMNi41IDE4bDMuNi0zLjU1YzEuMi0xLjIxIDEuMTQtMi44LjE5LTMuNzRaJyxcbiAgICAgIGtleTogJzFjMWZzbycsXG4gICAgfSxcbiAgXSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBGaWxlSGVhcnRcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk5DQXlNbWd4TkdFeUlESWdNQ0F3SURBZ01pMHlWamRzTFRVdE5VZzJZVElnTWlBd0lEQWdNQzB5SURKMk1pSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk1UUWdNblkwWVRJZ01pQXdJREFnTUNBeUlESm9OQ0lnTHo0S0lDQThjR0YwYUNCa1BTSk5NVEF1TWprZ01UQXVOMkV5TGpReklESXVORE1nTUNBd0lEQXRNaTQyTmkwdU5USmpMUzR5T1M0eE1pMHVOVFl1TXkwdU56Z3VOVE5zTFM0ek5TNHpOQzB1TXpVdExqTTBZVEl1TkRNZ01pNDBNeUF3SURBZ01DMHlMalkxTFM0MU0yTXRMak11TVRJdExqVTJMak10TGpjNUxqVXpMUzQ1TlM0NU5DMHhJREl1TlRNdU1pQXpMamMwVERZdU5TQXhPR3d6TGpZdE15NDFOV014TGpJdE1TNHlNU0F4TGpFMExUSXVPQzR4T1MwekxqYzBXaUlnTHo0S1BDOXpkbWMrQ2c9PSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvZmlsZS1oZWFydFxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IEZpbGVIZWFydCA9IGNyZWF0ZUx1Y2lkZUljb24oJ2ZpbGUtaGVhcnQnLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgRmlsZUhlYXJ0O1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdNMTUgMkg2YTIgMiAwIDAgMC0yIDJ2MTZhMiAyIDAgMCAwIDIgMmgxMmEyIDIgMCAwIDAgMi0yVjdaJywga2V5OiAnMXJxZno3JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTE0IDJ2NGEyIDIgMCAwIDAgMiAyaDQnLCBrZXk6ICd0bnFybGInIH1dLFxuICBbJ2NpcmNsZScsIHsgY3g6ICcxMCcsIGN5OiAnMTInLCByOiAnMicsIGtleTogJzczN3R5YScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ20yMCAxNy0xLjI5Ni0xLjI5NmEyLjQxIDIuNDEgMCAwIDAtMy40MDggMEw5IDIyJywga2V5OiAnd3QzaHBuJyB9XSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBGaWxlSW1hZ2VcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1UVWdNa2cyWVRJZ01pQXdJREFnTUMweUlESjJNVFpoTWlBeUlEQWdNQ0F3SURJZ01tZ3hNbUV5SURJZ01DQXdJREFnTWkweVZqZGFJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHhOQ0F5ZGpSaE1pQXlJREFnTUNBd0lESWdNbWcwSWlBdlBnb2dJRHhqYVhKamJHVWdZM2c5SWpFd0lpQmplVDBpTVRJaUlISTlJaklpSUM4K0NpQWdQSEJoZEdnZ1pEMGliVEl3SURFM0xURXVNamsyTFRFdU1qazJZVEl1TkRFZ01pNDBNU0F3SURBZ01DMHpMalF3T0NBd1REa2dNaklpSUM4K0Nqd3ZjM1puUGdvPSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvZmlsZS1pbWFnZVxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IEZpbGVJbWFnZSA9IGNyZWF0ZUx1Y2lkZUljb24oJ2ZpbGUtaW1hZ2UnLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgRmlsZUltYWdlO1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdNNCAyMmgxNGEyIDIgMCAwIDAgMi0yVjdsLTUtNUg2YTIgMiAwIDAgMC0yIDJ2NCcsIGtleTogJzFwZjVqMScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xNCAydjRhMiAyIDAgMCAwIDIgMmg0Jywga2V5OiAndG5xcmxiJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTIgMTVoMTAnLCBrZXk6ICdqZnc0dzgnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdtOSAxOCAzLTMtMy0zJywga2V5OiAnMTEycHNoJyB9XSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBGaWxlSW5wdXRcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk5DQXlNbWd4TkdFeUlESWdNQ0F3SURBZ01pMHlWamRzTFRVdE5VZzJZVElnTWlBd0lEQWdNQzB5SURKMk5DSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk1UUWdNblkwWVRJZ01pQXdJREFnTUNBeUlESm9OQ0lnTHo0S0lDQThjR0YwYUNCa1BTSk5NaUF4TldneE1DSWdMejRLSUNBOGNHRjBhQ0JrUFNKdE9TQXhPQ0F6TFRNdE15MHpJaUF2UGdvOEwzTjJaejRLKSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9maWxlLWlucHV0XG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgRmlsZUlucHV0ID0gY3JlYXRlTHVjaWRlSWNvbignZmlsZS1pbnB1dCcsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBGaWxlSW5wdXQ7XG4iLCJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ000IDIyaDE0YTIgMiAwIDAgMCAyLTJWN2wtNS01SDZhMiAyIDAgMCAwLTIgMnY0Jywga2V5OiAnMXBmNWoxJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTE0IDJ2NGEyIDIgMCAwIDAgMiAyaDQnLCBrZXk6ICd0bnFybGInIH1dLFxuICBbXG4gICAgJ3BhdGgnLFxuICAgIHsgZDogJ000IDEyYTEgMSAwIDAgMC0xIDF2MWExIDEgMCAwIDEtMSAxIDEgMSAwIDAgMSAxIDF2MWExIDEgMCAwIDAgMSAxJywga2V5OiAnZnEwYzl0JyB9LFxuICBdLFxuICBbXG4gICAgJ3BhdGgnLFxuICAgIHsgZDogJ004IDE4YTEgMSAwIDAgMCAxLTF2LTFhMSAxIDAgMCAxIDEtMSAxIDEgMCAwIDEtMS0xdi0xYTEgMSAwIDAgMC0xLTEnLCBrZXk6ICc0Z2libXYnIH0sXG4gIF0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgRmlsZUpzb24yXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5OQ0F5TW1neE5HRXlJRElnTUNBd0lEQWdNaTB5Vmpkc0xUVXROVWcyWVRJZ01pQXdJREFnTUMweUlESjJOQ0lnTHo0S0lDQThjR0YwYUNCa1BTSk5NVFFnTW5ZMFlUSWdNaUF3SURBZ01DQXlJREpvTkNJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTkNBeE1tRXhJREVnTUNBd0lEQXRNU0F4ZGpGaE1TQXhJREFnTUNBeExURWdNU0F4SURFZ01DQXdJREVnTVNBeGRqRmhNU0F4SURBZ01DQXdJREVnTVNJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOT0NBeE9HRXhJREVnTUNBd0lEQWdNUzB4ZGkweFlURWdNU0F3SURBZ01TQXhMVEVnTVNBeElEQWdNQ0F4TFRFdE1YWXRNV0V4SURFZ01DQXdJREF0TVMweElpQXZQZ284TDNOMlp6NEspIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2ZpbGUtanNvbi0yXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgRmlsZUpzb24yID0gY3JlYXRlTHVjaWRlSWNvbignZmlsZS1qc29uLTInLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgRmlsZUpzb24yO1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdNMTUgMkg2YTIgMiAwIDAgMC0yIDJ2MTZhMiAyIDAgMCAwIDIgMmgxMmEyIDIgMCAwIDAgMi0yVjdaJywga2V5OiAnMXJxZno3JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTE0IDJ2NGEyIDIgMCAwIDAgMiAyaDQnLCBrZXk6ICd0bnFybGInIH1dLFxuICBbXG4gICAgJ3BhdGgnLFxuICAgIHsgZDogJ00xMCAxMmExIDEgMCAwIDAtMSAxdjFhMSAxIDAgMCAxLTEgMSAxIDEgMCAwIDEgMSAxdjFhMSAxIDAgMCAwIDEgMScsIGtleTogJzFvYWptbycgfSxcbiAgXSxcbiAgW1xuICAgICdwYXRoJyxcbiAgICB7IGQ6ICdNMTQgMThhMSAxIDAgMCAwIDEtMXYtMWExIDEgMCAwIDEgMS0xIDEgMSAwIDAgMS0xLTF2LTFhMSAxIDAgMCAwLTEtMScsIGtleTogJ21wd2hwNicgfSxcbiAgXSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBGaWxlSnNvblxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTVRVZ01rZzJZVElnTWlBd0lEQWdNQzB5SURKMk1UWmhNaUF5SURBZ01DQXdJRElnTW1neE1tRXlJRElnTUNBd0lEQWdNaTB5VmpkYUlpQXZQZ29nSUR4d1lYUm9JR1E5SWsweE5DQXlkalJoTWlBeUlEQWdNQ0F3SURJZ01tZzBJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHhNQ0F4TW1FeElERWdNQ0F3SURBdE1TQXhkakZoTVNBeElEQWdNQ0F4TFRFZ01TQXhJREVnTUNBd0lERWdNU0F4ZGpGaE1TQXhJREFnTUNBd0lERWdNU0lnTHo0S0lDQThjR0YwYUNCa1BTSk5NVFFnTVRoaE1TQXhJREFnTUNBd0lERXRNWFl0TVdFeElERWdNQ0F3SURFZ01TMHhJREVnTVNBd0lEQWdNUzB4TFRGMkxURmhNU0F4SURBZ01DQXdMVEV0TVNJZ0x6NEtQQzl6ZG1jK0NnPT0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2ZpbGUtanNvblxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IEZpbGVKc29uID0gY3JlYXRlTHVjaWRlSWNvbignZmlsZS1qc29uJywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IEZpbGVKc29uO1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdNNCAyMmgxNGEyIDIgMCAwIDAgMi0yVjdsLTUtNUg2YTIgMiAwIDAgMC0yIDJ2NicsIGtleTogJ3JjMHF2eCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xNCAydjRhMiAyIDAgMCAwIDIgMmg0Jywga2V5OiAndG5xcmxiJyB9XSxcbiAgWydjaXJjbGUnLCB7IGN4OiAnNCcsIGN5OiAnMTYnLCByOiAnMicsIGtleTogJzFlaHF2YycgfV0sXG4gIFsncGF0aCcsIHsgZDogJ20xMCAxMC00LjUgNC41Jywga2V5OiAnN2Z3cnA2JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnbTkgMTEgMSAxJywga2V5OiAnd2E2czVxJyB9XSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBGaWxlS2V5MlxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTkNBeU1tZ3hOR0V5SURJZ01DQXdJREFnTWkweVZqZHNMVFV0TlVnMllUSWdNaUF3SURBZ01DMHlJREoyTmlJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTVRRZ01uWTBZVElnTWlBd0lEQWdNQ0F5SURKb05DSWdMejRLSUNBOFkybHlZMnhsSUdONFBTSTBJaUJqZVQwaU1UWWlJSEk5SWpJaUlDOCtDaUFnUEhCaGRHZ2daRDBpYlRFd0lERXdMVFF1TlNBMExqVWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaWJUa2dNVEVnTVNBeElpQXZQZ284TDNOMlp6NEspIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2ZpbGUta2V5LTJcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBGaWxlS2V5MiA9IGNyZWF0ZUx1Y2lkZUljb24oJ2ZpbGUta2V5LTInLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgRmlsZUtleTI7XG4iLCJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ00xNSAySDZhMiAyIDAgMCAwLTIgMnYxNmEyIDIgMCAwIDAgMiAyaDEyYTIgMiAwIDAgMCAyLTJWN1onLCBrZXk6ICcxcnFmejcnIH1dLFxuICBbJ2NpcmNsZScsIHsgY3g6ICcxMCcsIGN5OiAnMTYnLCByOiAnMicsIGtleTogJzRja2JxZScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ20xNiAxMC00LjUgNC41Jywga2V5OiAnN3AzZWJnJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnbTE1IDExIDEgMScsIGtleTogJzFic3l4MycgfV0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgRmlsZUtleVxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTVRVZ01rZzJZVElnTWlBd0lEQWdNQzB5SURKMk1UWmhNaUF5SURBZ01DQXdJRElnTW1neE1tRXlJRElnTUNBd0lEQWdNaTB5VmpkYUlpQXZQZ29nSUR4amFYSmpiR1VnWTNnOUlqRXdJaUJqZVQwaU1UWWlJSEk5SWpJaUlDOCtDaUFnUEhCaGRHZ2daRDBpYlRFMklERXdMVFF1TlNBMExqVWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaWJURTFJREV4SURFZ01TSWdMejRLUEM5emRtYytDZz09KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9maWxlLWtleVxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IEZpbGVLZXkgPSBjcmVhdGVMdWNpZGVJY29uKCdmaWxlLWtleScsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBGaWxlS2V5O1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdNNCAyMmgxNGEyIDIgMCAwIDAgMi0yVjdsLTUtNUg2YTIgMiAwIDAgMC0yIDJ2MScsIGtleTogJ2ptdG11MicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xNCAydjRhMiAyIDAgMCAwIDIgMmg0Jywga2V5OiAndG5xcmxiJyB9XSxcbiAgWydyZWN0JywgeyB3aWR0aDogJzgnLCBoZWlnaHQ6ICc1JywgeDogJzInLCB5OiAnMTMnLCByeDogJzEnLCBrZXk6ICcxMHk1d28nIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNOCAxM3YtMmEyIDIgMCAxIDAtNCAwdjInLCBrZXk6ICcxcGR4emcnIH1dLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIEZpbGVMb2NrMlxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTkNBeU1tZ3hOR0V5SURJZ01DQXdJREFnTWkweVZqZHNMVFV0TlVnMllUSWdNaUF3SURBZ01DMHlJREoyTVNJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTVRRZ01uWTBZVElnTWlBd0lEQWdNQ0F5SURKb05DSWdMejRLSUNBOGNtVmpkQ0IzYVdSMGFEMGlPQ0lnYUdWcFoyaDBQU0kxSWlCNFBTSXlJaUI1UFNJeE15SWdjbmc5SWpFaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRnZ01UTjJMVEpoTWlBeUlEQWdNU0F3TFRRZ01IWXlJaUF2UGdvOEwzTjJaejRLKSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9maWxlLWxvY2stMlxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IEZpbGVMb2NrMiA9IGNyZWF0ZUx1Y2lkZUljb24oJ2ZpbGUtbG9jay0yJywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IEZpbGVMb2NrMjtcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTE1IDJINmEyIDIgMCAwIDAtMiAydjE2YTIgMiAwIDAgMCAyIDJoMTJhMiAyIDAgMCAwIDItMlY3WicsIGtleTogJzFycWZ6NycgfV0sXG4gIFsncmVjdCcsIHsgd2lkdGg6ICc4JywgaGVpZ2h0OiAnNicsIHg6ICc4JywgeTogJzEyJywgcng6ICcxJywga2V5OiAnM3lyOGF0JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTEwIDEydi0yYTIgMiAwIDEgMSA0IDB2MicsIGtleTogJ2o0aThkJyB9XSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBGaWxlTG9ja1xuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTVRVZ01rZzJZVElnTWlBd0lEQWdNQzB5SURKMk1UWmhNaUF5SURBZ01DQXdJRElnTW1neE1tRXlJRElnTUNBd0lEQWdNaTB5VmpkYUlpQXZQZ29nSUR4eVpXTjBJSGRwWkhSb1BTSTRJaUJvWldsbmFIUTlJallpSUhnOUlqZ2lJSGs5SWpFeUlpQnllRDBpTVNJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTVRBZ01USjJMVEpoTWlBeUlEQWdNU0F4SURRZ01IWXlJaUF2UGdvOEwzTjJaejRLKSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9maWxlLWxvY2tcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBGaWxlTG9jayA9IGNyZWF0ZUx1Y2lkZUljb24oJ2ZpbGUtbG9jaycsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBGaWxlTG9jaztcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTQgMjJoMTRhMiAyIDAgMCAwIDItMlY3bC01LTVINmEyIDIgMCAwIDAtMiAydjQnLCBrZXk6ICcxcGY1ajEnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTQgMnY0YTIgMiAwIDAgMCAyIDJoNCcsIGtleTogJ3RucXJsYicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00zIDE1aDYnLCBrZXk6ICc0ZTJxZGEnIH1dLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIEZpbGVNaW51czJcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk5DQXlNbWd4TkdFeUlESWdNQ0F3SURBZ01pMHlWamRzTFRVdE5VZzJZVElnTWlBd0lEQWdNQzB5SURKMk5DSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk1UUWdNblkwWVRJZ01pQXdJREFnTUNBeUlESm9OQ0lnTHo0S0lDQThjR0YwYUNCa1BTSk5NeUF4TldnMklpQXZQZ284TDNOMlp6NEspIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2ZpbGUtbWludXMtMlxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IEZpbGVNaW51czIgPSBjcmVhdGVMdWNpZGVJY29uKCdmaWxlLW1pbnVzLTInLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgRmlsZU1pbnVzMjtcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTE1IDJINmEyIDIgMCAwIDAtMiAydjE2YTIgMiAwIDAgMCAyIDJoMTJhMiAyIDAgMCAwIDItMlY3WicsIGtleTogJzFycWZ6NycgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xNCAydjRhMiAyIDAgMCAwIDIgMmg0Jywga2V5OiAndG5xcmxiJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTkgMTVoNicsIGtleTogJ2NjdHdsMCcgfV0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgRmlsZU1pbnVzXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NVFVnTWtnMllUSWdNaUF3SURBZ01DMHlJREoyTVRaaE1pQXlJREFnTUNBd0lESWdNbWd4TW1FeUlESWdNQ0F3SURBZ01pMHlWamRhSWlBdlBnb2dJRHh3WVhSb0lHUTlJazB4TkNBeWRqUmhNaUF5SURBZ01DQXdJRElnTW1nMElpQXZQZ29nSUR4d1lYUm9JR1E5SWswNUlERTFhRFlpSUM4K0Nqd3ZjM1puUGdvPSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvZmlsZS1taW51c1xuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IEZpbGVNaW51cyA9IGNyZWF0ZUx1Y2lkZUljb24oJ2ZpbGUtbWludXMnLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgRmlsZU1pbnVzO1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdNMTAuNSAyMkgxOGEyIDIgMCAwIDAgMi0yVjdsLTUtNUg2YTIgMiAwIDAgMC0yIDJ2OC40Jywga2V5OiAnMWQza2ZtJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTggMTh2LTcuN0wxNiA5djcnLCBrZXk6ICcxb2llNm8nIH1dLFxuICBbJ2NpcmNsZScsIHsgY3g6ICcxNCcsIGN5OiAnMTYnLCByOiAnMicsIGtleTogJzFienppMycgfV0sXG4gIFsnY2lyY2xlJywgeyBjeDogJzYnLCBjeTogJzE4JywgcjogJzInLCBrZXk6ICcxZm5jaW0nIH1dLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIEZpbGVNdXNpY1xuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTVRBdU5TQXlNa2d4T0dFeUlESWdNQ0F3SURBZ01pMHlWamRzTFRVdE5VZzJZVElnTWlBd0lEQWdNQzB5SURKMk9DNDBJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMDRJREU0ZGkwM0xqZE1NVFlnT1hZM0lpQXZQZ29nSUR4amFYSmpiR1VnWTNnOUlqRTBJaUJqZVQwaU1UWWlJSEk5SWpJaUlDOCtDaUFnUEdOcGNtTnNaU0JqZUQwaU5pSWdZM2s5SWpFNElpQnlQU0l5SWlBdlBnbzhMM04yWno0SykgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvZmlsZS1tdXNpY1xuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IEZpbGVNdXNpYyA9IGNyZWF0ZUx1Y2lkZUljb24oJ2ZpbGUtbXVzaWMnLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgRmlsZU11c2ljO1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdNMTQgMnY0YTIgMiAwIDAgMCAyIDJoNCcsIGtleTogJ3RucXJsYicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ000IDdWNGEyIDIgMCAwIDEgMi0yIDIgMiAwIDAgMC0yIDInLCBrZXk6ICcxdms3dzInIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNNC4wNjMgMjAuOTk5YTIgMiAwIDAgMCAyIDFMMTggMjJhMiAyIDAgMCAwIDItMlY3bC01LTVINicsIGtleTogJzFqaW5rNScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ201IDExLTMgMycsIGtleTogJzFkZ3JzNCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ201IDE3LTMtM2gxMCcsIGtleTogJzFtdnZhZicgfV0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgRmlsZU91dHB1dFxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTVRRZ01uWTBZVElnTWlBd0lEQWdNQ0F5SURKb05DSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk5DQTNWalJoTWlBeUlEQWdNQ0F4SURJdE1pQXlJRElnTUNBd0lEQXRNaUF5SWlBdlBnb2dJRHh3WVhSb0lHUTlJazAwTGpBMk15QXlNQzQ1T1RsaE1pQXlJREFnTUNBd0lESWdNVXd4T0NBeU1tRXlJRElnTUNBd0lEQWdNaTB5Vmpkc0xUVXROVWcySWlBdlBnb2dJRHh3WVhSb0lHUTlJbTAxSURFeExUTWdNeUlnTHo0S0lDQThjR0YwYUNCa1BTSnROU0F4TnkwekxUTm9NVEFpSUM4K0Nqd3ZjM1puUGdvPSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvZmlsZS1vdXRwdXRcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBGaWxlT3V0cHV0ID0gY3JlYXRlTHVjaWRlSWNvbignZmlsZS1vdXRwdXQnLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgRmlsZU91dHB1dDtcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgW1xuICAgICdwYXRoJyxcbiAgICB7XG4gICAgICBkOiAnbTE4IDUtMi40MTQtMi40MTRBMiAyIDAgMCAwIDE0LjE3MiAySDZhMiAyIDAgMCAwLTIgMnYxNmEyIDIgMCAwIDAgMiAyaDEyYTIgMiAwIDAgMCAyLTInLFxuICAgICAga2V5OiAnMTQyenhnJyxcbiAgICB9LFxuICBdLFxuICBbXG4gICAgJ3BhdGgnLFxuICAgIHtcbiAgICAgIGQ6ICdNMjEuMzc4IDEyLjYyNmExIDEgMCAwIDAtMy4wMDQtMy4wMDRsLTQuMDEgNC4wMTJhMiAyIDAgMCAwLS41MDYuODU0bC0uODM3IDIuODdhLjUuNSAwIDAgMCAuNjIuNjJsMi44Ny0uODM3YTIgMiAwIDAgMCAuODU0LS41MDZ6JyxcbiAgICAgIGtleTogJzJ0MzM4MCcsXG4gICAgfSxcbiAgXSxcbiAgWydwYXRoJywgeyBkOiAnTTggMThoMScsIGtleTogJzEzd2sxMicgfV0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgRmlsZVBlbkxpbmVcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKdE1UZ2dOUzB5TGpReE5DMHlMalF4TkVFeUlESWdNQ0F3SURBZ01UUXVNVGN5SURKSU5tRXlJRElnTUNBd0lEQXRNaUF5ZGpFMllUSWdNaUF3SURBZ01DQXlJREpvTVRKaE1pQXlJREFnTUNBd0lESXRNaUlnTHo0S0lDQThjR0YwYUNCa1BTSk5NakV1TXpjNElERXlMall5Tm1FeElERWdNQ0F3SURBdE15NHdNRFF0TXk0d01EUnNMVFF1TURFZ05DNHdNVEpoTWlBeUlEQWdNQ0F3TFM0MU1EWXVPRFUwYkMwdU9ETTNJREl1T0RkaExqVXVOU0F3SURBZ01DQXVOakl1TmpKc01pNDROeTB1T0RNM1lUSWdNaUF3SURBZ01DQXVPRFUwTFM0MU1EWjZJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMDRJREU0YURFaUlDOCtDand2YzNablBnbz0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2ZpbGUtcGVuLWxpbmVcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBGaWxlUGVuTGluZSA9IGNyZWF0ZUx1Y2lkZUljb24oJ2ZpbGUtcGVuLWxpbmUnLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgRmlsZVBlbkxpbmU7XG4iLCJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ00xMi41IDIySDE4YTIgMiAwIDAgMCAyLTJWN2wtNS01SDZhMiAyIDAgMCAwLTIgMnY5LjUnLCBrZXk6ICcxY291d2EnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTQgMnY0YTIgMiAwIDAgMCAyIDJoNCcsIGtleTogJ3RucXJsYicgfV0sXG4gIFtcbiAgICAncGF0aCcsXG4gICAge1xuICAgICAgZDogJ00xMy4zNzggMTUuNjI2YTEgMSAwIDEgMC0zLjAwNC0zLjAwNGwtNS4wMSA1LjAxMmEyIDIgMCAwIDAtLjUwNi44NTRsLS44MzcgMi44N2EuNS41IDAgMCAwIC42Mi42MmwyLjg3LS44MzdhMiAyIDAgMCAwIC44NTQtLjUwNnonLFxuICAgICAga2V5OiAnMXk0cWJ4JyxcbiAgICB9LFxuICBdLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIEZpbGVQZW5cbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1USXVOU0F5TWtneE9HRXlJRElnTUNBd0lEQWdNaTB5Vmpkc0xUVXROVWcyWVRJZ01pQXdJREFnTUMweUlESjJPUzQxSWlBdlBnb2dJRHh3WVhSb0lHUTlJazB4TkNBeWRqUmhNaUF5SURBZ01DQXdJRElnTW1nMElpQXZQZ29nSUR4d1lYUm9JR1E5SWsweE15NHpOemdnTVRVdU5qSTJZVEVnTVNBd0lERWdNQzB6TGpBd05DMHpMakF3Tkd3dE5TNHdNU0ExTGpBeE1tRXlJRElnTUNBd0lEQXRMalV3Tmk0NE5UUnNMUzQ0TXpjZ01pNDROMkV1TlM0MUlEQWdNQ0F3SUM0Mk1pNDJNbXd5TGpnM0xTNDRNemRoTWlBeUlEQWdNQ0F3SUM0NE5UUXRMalV3Tm5vaUlDOCtDand2YzNablBnbz0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2ZpbGUtcGVuXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgRmlsZVBlbiA9IGNyZWF0ZUx1Y2lkZUljb24oJ2ZpbGUtcGVuJywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IEZpbGVQZW47XG4iLCJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ000IDIyaDE0YTIgMiAwIDAgMCAyLTJWN2wtNS01SDZhMiAyIDAgMCAwLTIgMnY0Jywga2V5OiAnMXBmNWoxJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTE0IDJ2NGEyIDIgMCAwIDAgMiAyaDQnLCBrZXk6ICd0bnFybGInIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMyAxNWg2Jywga2V5OiAnNGUycWRhJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTYgMTJ2NicsIGtleTogJzF1NzJqMCcgfV0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgRmlsZVBsdXMyXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5OQ0F5TW1neE5HRXlJRElnTUNBd0lEQWdNaTB5Vmpkc0xUVXROVWcyWVRJZ01pQXdJREFnTUMweUlESjJOQ0lnTHo0S0lDQThjR0YwYUNCa1BTSk5NVFFnTW5ZMFlUSWdNaUF3SURBZ01DQXlJREpvTkNJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTXlBeE5XZzJJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMDJJREV5ZGpZaUlDOCtDand2YzNablBnbz0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2ZpbGUtcGx1cy0yXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgRmlsZVBsdXMyID0gY3JlYXRlTHVjaWRlSWNvbignZmlsZS1wbHVzLTInLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgRmlsZVBsdXMyO1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdNMTUgMkg2YTIgMiAwIDAgMC0yIDJ2MTZhMiAyIDAgMCAwIDIgMmgxMmEyIDIgMCAwIDAgMi0yVjdaJywga2V5OiAnMXJxZno3JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTE0IDJ2NGEyIDIgMCAwIDAgMiAyaDQnLCBrZXk6ICd0bnFybGInIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNOSAxNWg2Jywga2V5OiAnY2N0d2wwJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTEyIDE4di02Jywga2V5OiAnMTdnNmkyJyB9XSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBGaWxlUGx1c1xuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTVRVZ01rZzJZVElnTWlBd0lEQWdNQzB5SURKMk1UWmhNaUF5SURBZ01DQXdJRElnTW1neE1tRXlJRElnTUNBd0lEQWdNaTB5VmpkYUlpQXZQZ29nSUR4d1lYUm9JR1E5SWsweE5DQXlkalJoTWlBeUlEQWdNQ0F3SURJZ01tZzBJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMDVJREUxYURZaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRFeUlERTRkaTAySWlBdlBnbzhMM04yWno0SykgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvZmlsZS1wbHVzXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgRmlsZVBsdXMgPSBjcmVhdGVMdWNpZGVJY29uKCdmaWxlLXBsdXMnLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgRmlsZVBsdXM7XG4iLCJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ00xMiAxN2guMDEnLCBrZXk6ICdwMzJwMDUnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTUgMkg2YTIgMiAwIDAgMC0yIDJ2MTZhMiAyIDAgMCAwIDIgMmgxMmEyIDIgMCAwIDAgMi0yVjd6Jywga2V5OiAnMW1seDlrJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTkuMSA5YTMgMyAwIDAgMSA1LjgyIDFjMCAyLTMgMy0zIDMnLCBrZXk6ICdtaGx3ZnQnIH1dLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIEZpbGVRdWVzdGlvbk1hcmtcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1USWdNVGRvTGpBeElpQXZQZ29nSUR4d1lYUm9JR1E5SWsweE5TQXlTRFpoTWlBeUlEQWdNQ0F3TFRJZ01uWXhObUV5SURJZ01DQXdJREFnTWlBeWFERXlZVElnTWlBd0lEQWdNQ0F5TFRKV04zb2lJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRUa3VNU0E1WVRNZ015QXdJREFnTVNBMUxqZ3lJREZqTUNBeUxUTWdNeTB6SURNaUlDOCtDand2YzNablBnbz0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2ZpbGUtcXVlc3Rpb24tbWFya1xuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IEZpbGVRdWVzdGlvbk1hcmsgPSBjcmVhdGVMdWNpZGVJY29uKCdmaWxlLXF1ZXN0aW9uLW1hcmsnLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgRmlsZVF1ZXN0aW9uTWFyaztcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTIwIDEwVjdsLTUtNUg2YTIgMiAwIDAgMC0yIDJ2MTZhMiAyIDAgMCAwIDIgMmg0Jywga2V5OiAnMXJkZjM3JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTE0IDJ2NGEyIDIgMCAwIDAgMiAyaDQnLCBrZXk6ICd0bnFybGInIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTYgMTRhMiAyIDAgMCAwLTIgMicsIGtleTogJ2NlYWFkbCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00yMCAxNGEyIDIgMCAwIDEgMiAyJywga2V5OiAnMW55Nnp3JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTIwIDIyYTIgMiAwIDAgMCAyLTInLCBrZXk6ICcxbDlxNGsnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTYgMjJhMiAyIDAgMCAxLTItMicsIGtleTogJzF3cWg1bicgfV0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgRmlsZVNjYW5cbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1qQWdNVEJXTjJ3dE5TMDFTRFpoTWlBeUlEQWdNQ0F3TFRJZ01uWXhObUV5SURJZ01DQXdJREFnTWlBeWFEUWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRURTBJREoyTkdFeUlESWdNQ0F3SURBZ01pQXlhRFFpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVEUySURFMFlUSWdNaUF3SURBZ01DMHlJRElpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVEl3SURFMFlUSWdNaUF3SURBZ01TQXlJRElpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVEl3SURJeVlUSWdNaUF3SURBZ01DQXlMVElpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVEUySURJeVlUSWdNaUF3SURBZ01TMHlMVElpSUM4K0Nqd3ZjM1puUGdvPSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvZmlsZS1zY2FuXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgRmlsZVNjYW4gPSBjcmVhdGVMdWNpZGVJY29uKCdmaWxlLXNjYW4nLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgRmlsZVNjYW47XG4iLCJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ00xNSAySDZhMiAyIDAgMCAwLTIgMnYxNmEyIDIgMCAwIDAgMiAyaDEyYTIgMiAwIDAgMCAyLTJWN1onLCBrZXk6ICcxcnFmejcnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTQgMnY0YTIgMiAwIDAgMCAyIDJoNCcsIGtleTogJ3RucXJsYicgfV0sXG4gIFsnY2lyY2xlJywgeyBjeDogJzExLjUnLCBjeTogJzE0LjUnLCByOiAnMi41Jywga2V5OiAnMWJxMGtvJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTEzLjMgMTYuMyAxNSAxOCcsIGtleTogJzJxdW9tNycgfV0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgRmlsZVNlYXJjaDJcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1UVWdNa2cyWVRJZ01pQXdJREFnTUMweUlESjJNVFpoTWlBeUlEQWdNQ0F3SURJZ01tZ3hNbUV5SURJZ01DQXdJREFnTWkweVZqZGFJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHhOQ0F5ZGpSaE1pQXlJREFnTUNBd0lESWdNbWcwSWlBdlBnb2dJRHhqYVhKamJHVWdZM2c5SWpFeExqVWlJR041UFNJeE5DNDFJaUJ5UFNJeUxqVWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRURXpMak1nTVRZdU15QXhOU0F4T0NJZ0x6NEtQQzl6ZG1jK0NnPT0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2ZpbGUtc2VhcmNoLTJcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBGaWxlU2VhcmNoMiA9IGNyZWF0ZUx1Y2lkZUljb24oJ2ZpbGUtc2VhcmNoLTInLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgRmlsZVNlYXJjaDI7XG4iLCJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ00xNCAydjRhMiAyIDAgMCAwIDIgMmg0Jywga2V5OiAndG5xcmxiJyB9XSxcbiAgW1xuICAgICdwYXRoJyxcbiAgICB7IGQ6ICdNNC4yNjggMjFhMiAyIDAgMCAwIDEuNzI3IDFIMThhMiAyIDAgMCAwIDItMlY3bC01LTVINmEyIDIgMCAwIDAtMiAydjMnLCBrZXk6ICdtczdnOTQnIH0sXG4gIF0sXG4gIFsncGF0aCcsIHsgZDogJ205IDE4LTEuNS0xLjUnLCBrZXk6ICcxajZxaWknIH1dLFxuICBbJ2NpcmNsZScsIHsgY3g6ICc1JywgY3k6ICcxNCcsIHI6ICczJywga2V5OiAndWZydTV0JyB9XSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBGaWxlU2VhcmNoXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NVFFnTW5ZMFlUSWdNaUF3SURBZ01DQXlJREpvTkNJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTkM0eU5qZ2dNakZoTWlBeUlEQWdNQ0F3SURFdU56STNJREZJTVRoaE1pQXlJREFnTUNBd0lESXRNbFkzYkMwMUxUVklObUV5SURJZ01DQXdJREF0TWlBeWRqTWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaWJUa2dNVGd0TVM0MUxURXVOU0lnTHo0S0lDQThZMmx5WTJ4bElHTjRQU0kxSWlCamVUMGlNVFFpSUhJOUlqTWlJQzgrQ2p3dmMzWm5QZ289KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9maWxlLXNlYXJjaFxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IEZpbGVTZWFyY2ggPSBjcmVhdGVMdWNpZGVJY29uKCdmaWxlLXNlYXJjaCcsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBGaWxlU2VhcmNoO1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdNMTUgMkg2YTIgMiAwIDAgMC0yIDJ2MTZhMiAyIDAgMCAwIDIgMmgxMmEyIDIgMCAwIDAgMi0yVjdaJywga2V5OiAnMXJxZno3JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTE0IDJ2NGEyIDIgMCAwIDAgMiAyaDQnLCBrZXk6ICd0bnFybGInIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNOCAxMmg4Jywga2V5OiAnMXdjeWV2JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTEwIDExdjInLCBrZXk6ICcxczY1MXcnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNOCAxN2g4Jywga2V5OiAnd2g1YzYxJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTE0IDE2djInLCBrZXk6ICcxMmZwNWUnIH1dLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIEZpbGVTbGlkZXJzXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NVFVnTWtnMllUSWdNaUF3SURBZ01DMHlJREoyTVRaaE1pQXlJREFnTUNBd0lESWdNbWd4TW1FeUlESWdNQ0F3SURBZ01pMHlWamRhSWlBdlBnb2dJRHh3WVhSb0lHUTlJazB4TkNBeWRqUmhNaUF5SURBZ01DQXdJRElnTW1nMElpQXZQZ29nSUR4d1lYUm9JR1E5SWswNElERXlhRGdpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVEV3SURFeGRqSWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRUZ2dNVGRvT0NJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTVRRZ01UWjJNaUlnTHo0S1BDOXpkbWMrQ2c9PSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvZmlsZS1zbGlkZXJzXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgRmlsZVNsaWRlcnMgPSBjcmVhdGVMdWNpZGVJY29uKCdmaWxlLXNsaWRlcnMnLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgRmlsZVNsaWRlcnM7XG4iLCJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ00xNSAySDZhMiAyIDAgMCAwLTIgMnYxNmEyIDIgMCAwIDAgMiAyaDEyYTIgMiAwIDAgMCAyLTJWN1onLCBrZXk6ICcxcnFmejcnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTQgMnY0YTIgMiAwIDAgMCAyIDJoNCcsIGtleTogJ3RucXJsYicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ004IDEzaDInLCBrZXk6ICd5cjJhbXYnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTQgMTNoMicsIGtleTogJ3VuNXQ0YScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ004IDE3aDInLCBrZXk6ICcyeWh5a3onIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTQgMTdoMicsIGtleTogJzEwa21hNycgfV0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgRmlsZVNwcmVhZHNoZWV0XG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NVFVnTWtnMllUSWdNaUF3SURBZ01DMHlJREoyTVRaaE1pQXlJREFnTUNBd0lESWdNbWd4TW1FeUlESWdNQ0F3SURBZ01pMHlWamRhSWlBdlBnb2dJRHh3WVhSb0lHUTlJazB4TkNBeWRqUmhNaUF5SURBZ01DQXdJRElnTW1nMElpQXZQZ29nSUR4d1lYUm9JR1E5SWswNElERXphRElpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVEUwSURFemFESWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRUZ2dNVGRvTWlJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTVRRZ01UZG9NaUlnTHo0S1BDOXpkbWMrQ2c9PSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvZmlsZS1zcHJlYWRzaGVldFxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IEZpbGVTcHJlYWRzaGVldCA9IGNyZWF0ZUx1Y2lkZUljb24oJ2ZpbGUtc3ByZWFkc2hlZXQnLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgRmlsZVNwcmVhZHNoZWV0O1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdNMjEgN2gtM2EyIDIgMCAwIDEtMi0yVjInLCBrZXk6ICc5cmI1NHgnIH1dLFxuICBbXG4gICAgJ3BhdGgnLFxuICAgIHtcbiAgICAgIGQ6ICdNMjEgNnY2LjVjMCAuOC0uNyAxLjUtMS41IDEuNWgtN2MtLjggMC0xLjUtLjctMS41LTEuNXYtOWMwLS44LjctMS41IDEuNS0xLjVIMTdaJyxcbiAgICAgIGtleTogJzEwNTlsMCcsXG4gICAgfSxcbiAgXSxcbiAgWydwYXRoJywgeyBkOiAnTTcgOHY4LjhjMCAuMy4yLjYuNC44LjIuMi41LjQuOC40SDE1Jywga2V5OiAnMTY4NzR1JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTMgMTJ2OC44YzAgLjMuMi42LjQuOC4yLjIuNS40LjguNEgxMScsIGtleTogJ2syb3g5OCcgfV0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgRmlsZVN0YWNrXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NakVnTjJndE0yRXlJRElnTUNBd0lERXRNaTB5VmpJaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRJeElEWjJOaTQxWXpBZ0xqZ3RMamNnTVM0MUxURXVOU0F4TGpWb0xUZGpMUzQ0SURBdE1TNDFMUzQzTFRFdU5TMHhMalYyTFRsak1DMHVPQzQzTFRFdU5TQXhMalV0TVM0MVNERTNXaUlnTHo0S0lDQThjR0YwYUNCa1BTSk5OeUE0ZGpndU9HTXdJQzR6TGpJdU5pNDBMamd1TWk0eUxqVXVOQzQ0TGpSSU1UVWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRUTWdNVEoyT0M0NFl6QWdMak11TWk0MkxqUXVPQzR5TGpJdU5TNDBMamd1TkVneE1TSWdMejRLUEM5emRtYytDZz09KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9maWxlLXN0YWNrXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgRmlsZVN0YWNrID0gY3JlYXRlTHVjaWRlSWNvbignZmlsZS1zdGFjaycsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBGaWxlU3RhY2s7XG4iLCJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ20xMCAxOCAzLTMtMy0zJywga2V5OiAnMThmNnlzJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTE0IDJ2NGEyIDIgMCAwIDAgMiAyaDQnLCBrZXk6ICd0bnFybGInIH1dLFxuICBbXG4gICAgJ3BhdGgnLFxuICAgIHtcbiAgICAgIGQ6ICdNNCAxMVY0YTIgMiAwIDAgMSAyLTJoOWw1IDV2MTNhMiAyIDAgMCAxLTIgMkg2YTIgMiAwIDAgMS0yLTJ2LTNhMiAyIDAgMCAxIDItMmg3JyxcbiAgICAgIGtleTogJzUwcTJydycsXG4gICAgfSxcbiAgXSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBGaWxlU3ltbGlua1xuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0p0TVRBZ01UZ2dNeTB6TFRNdE15SWdMejRLSUNBOGNHRjBhQ0JrUFNKTk1UUWdNblkwWVRJZ01pQXdJREFnTUNBeUlESm9OQ0lnTHo0S0lDQThjR0YwYUNCa1BTSk5OQ0F4TVZZMFlUSWdNaUF3SURBZ01TQXlMVEpvT1d3MUlEVjJNVE5oTWlBeUlEQWdNQ0F4TFRJZ01rZzJZVElnTWlBd0lEQWdNUzB5TFRKMkxUTmhNaUF5SURBZ01DQXhJREl0TW1nM0lpQXZQZ284TDNOMlp6NEspIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2ZpbGUtc3ltbGlua1xuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IEZpbGVTeW1saW5rID0gY3JlYXRlTHVjaWRlSWNvbignZmlsZS1zeW1saW5rJywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IEZpbGVTeW1saW5rO1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdNMTUgMkg2YTIgMiAwIDAgMC0yIDJ2MTZhMiAyIDAgMCAwIDIgMmgxMmEyIDIgMCAwIDAgMi0yVjdaJywga2V5OiAnMXJxZno3JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTE0IDJ2NGEyIDIgMCAwIDAgMiAyaDQnLCBrZXk6ICd0bnFybGInIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdtOCAxNiAyLTItMi0yJywga2V5OiAnMTB2enlkJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTEyIDE4aDQnLCBrZXk6ICcxd2QybjcnIH1dLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIEZpbGVUZXJtaW5hbFxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTVRVZ01rZzJZVElnTWlBd0lEQWdNQzB5SURKMk1UWmhNaUF5SURBZ01DQXdJRElnTW1neE1tRXlJRElnTUNBd0lEQWdNaTB5VmpkYUlpQXZQZ29nSUR4d1lYUm9JR1E5SWsweE5DQXlkalJoTWlBeUlEQWdNQ0F3SURJZ01tZzBJaUF2UGdvZ0lEeHdZWFJvSUdROUltMDRJREUySURJdE1pMHlMVElpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVEV5SURFNGFEUWlJQzgrQ2p3dmMzWm5QZ289KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9maWxlLXRlcm1pbmFsXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgRmlsZVRlcm1pbmFsID0gY3JlYXRlTHVjaWRlSWNvbignZmlsZS10ZXJtaW5hbCcsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBGaWxlVGVybWluYWw7XG4iLCJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ00xNSAySDZhMiAyIDAgMCAwLTIgMnYxNmEyIDIgMCAwIDAgMiAyaDEyYTIgMiAwIDAgMCAyLTJWN1onLCBrZXk6ICcxcnFmejcnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTQgMnY0YTIgMiAwIDAgMCAyIDJoNCcsIGtleTogJ3RucXJsYicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xMCA5SDgnLCBrZXk6ICdiMW1ybHInIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTYgMTNIOCcsIGtleTogJ3Q0ZTAwMicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xNiAxN0g4Jywga2V5OiAnejF1aDNhJyB9XSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBGaWxlVGV4dFxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTVRVZ01rZzJZVElnTWlBd0lEQWdNQzB5SURKMk1UWmhNaUF5SURBZ01DQXdJRElnTW1neE1tRXlJRElnTUNBd0lEQWdNaTB5VmpkYUlpQXZQZ29nSUR4d1lYUm9JR1E5SWsweE5DQXlkalJoTWlBeUlEQWdNQ0F3SURJZ01tZzBJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHhNQ0E1U0RnaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRFMklERXpTRGdpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVEUySURFM1NEZ2lJQzgrQ2p3dmMzWm5QZ289KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9maWxlLXRleHRcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBGaWxlVGV4dCA9IGNyZWF0ZUx1Y2lkZUljb24oJ2ZpbGUtdGV4dCcsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBGaWxlVGV4dDtcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTQgMjJoMTRhMiAyIDAgMCAwIDItMlY3bC01LTVINmEyIDIgMCAwIDAtMiAydjQnLCBrZXk6ICcxcGY1ajEnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTQgMnY0YTIgMiAwIDAgMCAyIDJoNCcsIGtleTogJ3RucXJsYicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00yIDEzdi0xaDZ2MScsIGtleTogJzFkaDlkZycgfV0sXG4gIFsncGF0aCcsIHsgZDogJ001IDEydjYnLCBrZXk6ICcxNTB0OWMnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNNCAxOGgyJywga2V5OiAnMXhyb2ZnJyB9XSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBGaWxlVHlwZTJcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk5DQXlNbWd4TkdFeUlESWdNQ0F3SURBZ01pMHlWamRzTFRVdE5VZzJZVElnTWlBd0lEQWdNQzB5SURKMk5DSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk1UUWdNblkwWVRJZ01pQXdJREFnTUNBeUlESm9OQ0lnTHo0S0lDQThjR0YwYUNCa1BTSk5NaUF4TTNZdE1XZzJkakVpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVFVnTVRKMk5pSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk5DQXhPR2d5SWlBdlBnbzhMM04yWno0SykgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvZmlsZS10eXBlLTJcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBGaWxlVHlwZTIgPSBjcmVhdGVMdWNpZGVJY29uKCdmaWxlLXR5cGUtMicsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBGaWxlVHlwZTI7XG4iLCJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ00xNSAySDZhMiAyIDAgMCAwLTIgMnYxNmEyIDIgMCAwIDAgMiAyaDEyYTIgMiAwIDAgMCAyLTJWN1onLCBrZXk6ICcxcnFmejcnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTQgMnY0YTIgMiAwIDAgMCAyIDJoNCcsIGtleTogJ3RucXJsYicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ005IDEzdi0xaDZ2MScsIGtleTogJzFiYjAxNCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xMiAxMnY2Jywga2V5OiAnM2FoeW12JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTExIDE4aDInLCBrZXk6ICcxMm1qN2UnIH1dLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIEZpbGVUeXBlXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NVFVnTWtnMllUSWdNaUF3SURBZ01DMHlJREoyTVRaaE1pQXlJREFnTUNBd0lESWdNbWd4TW1FeUlESWdNQ0F3SURBZ01pMHlWamRhSWlBdlBnb2dJRHh3WVhSb0lHUTlJazB4TkNBeWRqUmhNaUF5SURBZ01DQXdJRElnTW1nMElpQXZQZ29nSUR4d1lYUm9JR1E5SWswNUlERXpkaTB4YURaMk1TSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk1USWdNVEoyTmlJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTVRFZ01UaG9NaUlnTHo0S1BDOXpkbWMrQ2c9PSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvZmlsZS10eXBlXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgRmlsZVR5cGUgPSBjcmVhdGVMdWNpZGVJY29uKCdmaWxlLXR5cGUnLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgRmlsZVR5cGU7XG4iLCJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ00xNSAySDZhMiAyIDAgMCAwLTIgMnYxNmEyIDIgMCAwIDAgMiAyaDEyYTIgMiAwIDAgMCAyLTJWN1onLCBrZXk6ICcxcnFmejcnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTQgMnY0YTIgMiAwIDAgMCAyIDJoNCcsIGtleTogJ3RucXJsYicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xMiAxMnY2Jywga2V5OiAnM2FoeW12JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnbTE1IDE1LTMtMy0zIDMnLCBrZXk6ICcxNXhqOTInIH1dLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIEZpbGVVcFxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTVRVZ01rZzJZVElnTWlBd0lEQWdNQzB5SURKMk1UWmhNaUF5SURBZ01DQXdJRElnTW1neE1tRXlJRElnTUNBd0lEQWdNaTB5VmpkYUlpQXZQZ29nSUR4d1lYUm9JR1E5SWsweE5DQXlkalJoTWlBeUlEQWdNQ0F3SURJZ01tZzBJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHhNaUF4TW5ZMklpQXZQZ29nSUR4d1lYUm9JR1E5SW0weE5TQXhOUzB6TFRNdE15QXpJaUF2UGdvOEwzTjJaejRLKSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9maWxlLXVwXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgRmlsZVVwID0gY3JlYXRlTHVjaWRlSWNvbignZmlsZS11cCcsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBGaWxlVXA7XG4iLCJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ000IDIyaDE0YTIgMiAwIDAgMCAyLTJWN2wtNS01SDZhMiAyIDAgMCAwLTIgMnY0Jywga2V5OiAnMXBmNWoxJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTE0IDJ2NGEyIDIgMCAwIDAgMiAyaDQnLCBrZXk6ICd0bnFybGInIH1dLFxuICBbJ3JlY3QnLCB7IHdpZHRoOiAnOCcsIGhlaWdodDogJzYnLCB4OiAnMicsIHk6ICcxMicsIHJ4OiAnMScsIGtleTogJzFhNmMxZScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ20xMCAxNS41IDQgMi41di02bC00IDIuNScsIGtleTogJ3Q3Y3AzOScgfV0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgRmlsZVZpZGVvMlxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTkNBeU1tZ3hOR0V5SURJZ01DQXdJREFnTWkweVZqZHNMVFV0TlVnMllUSWdNaUF3SURBZ01DMHlJREoyTkNJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTVRRZ01uWTBZVElnTWlBd0lEQWdNQ0F5SURKb05DSWdMejRLSUNBOGNtVmpkQ0IzYVdSMGFEMGlPQ0lnYUdWcFoyaDBQU0kySWlCNFBTSXlJaUI1UFNJeE1pSWdjbmc5SWpFaUlDOCtDaUFnUEhCaGRHZ2daRDBpYlRFd0lERTFMalVnTkNBeUxqVjJMVFpzTFRRZ01pNDFJaUF2UGdvOEwzTjJaejRLKSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9maWxlLXZpZGVvLTJcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBGaWxlVmlkZW8yID0gY3JlYXRlTHVjaWRlSWNvbignZmlsZS12aWRlby0yJywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IEZpbGVWaWRlbzI7XG4iLCJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ00xNCAydjRhMiAyIDAgMCAwIDIgMmg0Jywga2V5OiAndG5xcmxiJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTE1IDE4YTMgMyAwIDEgMC02IDAnLCBrZXk6ICcxNmF3YTAnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTUgMkg2YTIgMiAwIDAgMC0yIDJ2MTZhMiAyIDAgMCAwIDIgMmgxMmEyIDIgMCAwIDAgMi0yVjd6Jywga2V5OiAnMW1seDlrJyB9XSxcbiAgWydjaXJjbGUnLCB7IGN4OiAnMTInLCBjeTogJzEzJywgcjogJzInLCBrZXk6ICcxYzFsanMnIH1dLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIEZpbGVVc2VyXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NVFFnTW5ZMFlUSWdNaUF3SURBZ01DQXlJREpvTkNJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTVRVZ01UaGhNeUF6SURBZ01TQXdMVFlnTUNJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTVRVZ01rZzJZVElnTWlBd0lEQWdNQzB5SURKMk1UWmhNaUF5SURBZ01DQXdJRElnTW1neE1tRXlJRElnTUNBd0lEQWdNaTB5VmpkNklpQXZQZ29nSUR4amFYSmpiR1VnWTNnOUlqRXlJaUJqZVQwaU1UTWlJSEk5SWpJaUlDOCtDand2YzNablBnbz0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2ZpbGUtdXNlclxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IEZpbGVVc2VyID0gY3JlYXRlTHVjaWRlSWNvbignZmlsZS11c2VyJywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IEZpbGVVc2VyO1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdNMTUgMkg2YTIgMiAwIDAgMC0yIDJ2MTZhMiAyIDAgMCAwIDIgMmgxMmEyIDIgMCAwIDAgMi0yVjdaJywga2V5OiAnMXJxZno3JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTE0IDJ2NGEyIDIgMCAwIDAgMiAyaDQnLCBrZXk6ICd0bnFybGInIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdtMTAgMTEgNSAzLTUgM3YtNlonLCBrZXk6ICc3bnR2bTQnIH1dLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIEZpbGVWaWRlb1xuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTVRVZ01rZzJZVElnTWlBd0lEQWdNQzB5SURKMk1UWmhNaUF5SURBZ01DQXdJRElnTW1neE1tRXlJRElnTUNBd0lEQWdNaTB5VmpkYUlpQXZQZ29nSUR4d1lYUm9JR1E5SWsweE5DQXlkalJoTWlBeUlEQWdNQ0F3SURJZ01tZzBJaUF2UGdvZ0lEeHdZWFJvSUdROUltMHhNQ0F4TVNBMUlETXROU0F6ZGkwMldpSWdMejRLUEM5emRtYytDZz09KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9maWxlLXZpZGVvXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgRmlsZVZpZGVvID0gY3JlYXRlTHVjaWRlSWNvbignZmlsZS12aWRlbycsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBGaWxlVmlkZW87XG4iLCJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ00xNSAySDZhMiAyIDAgMCAwLTIgMnYxNmEyIDIgMCAwIDAgMiAyaDEyYTIgMiAwIDAgMCAyLTJWN1onLCBrZXk6ICcxcnFmejcnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTQgMnY0YTIgMiAwIDAgMCAyIDJoNCcsIGtleTogJ3RucXJsYicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ004IDE1aC4wMScsIGtleTogJ2E3YXR6ZycgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xMS41IDEzLjVhMi41IDIuNSAwIDAgMSAwIDMnLCBrZXk6ICcxZmNjYXQnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTUgMTJhNSA1IDAgMCAxIDAgNicsIGtleTogJ3BzNDZjbScgfV0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgRmlsZVZvbHVtZTJcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1UVWdNa2cyWVRJZ01pQXdJREFnTUMweUlESjJNVFpoTWlBeUlEQWdNQ0F3SURJZ01tZ3hNbUV5SURJZ01DQXdJREFnTWkweVZqZGFJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHhOQ0F5ZGpSaE1pQXlJREFnTUNBd0lESWdNbWcwSWlBdlBnb2dJRHh3WVhSb0lHUTlJazA0SURFMWFDNHdNU0lnTHo0S0lDQThjR0YwYUNCa1BTSk5NVEV1TlNBeE15NDFZVEl1TlNBeUxqVWdNQ0F3SURFZ01DQXpJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHhOU0F4TW1FMUlEVWdNQ0F3SURFZ01DQTJJaUF2UGdvOEwzTjJaejRLKSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9maWxlLXZvbHVtZS0yXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgRmlsZVZvbHVtZTIgPSBjcmVhdGVMdWNpZGVJY29uKCdmaWxlLXZvbHVtZS0yJywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IEZpbGVWb2x1bWUyO1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdNMTEgMTFhNSA1IDAgMCAxIDAgNicsIGtleTogJzE5M3FiMicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xNCAydjRhMiAyIDAgMCAwIDIgMmg0Jywga2V5OiAndG5xcmxiJyB9XSxcbiAgW1xuICAgICdwYXRoJyxcbiAgICB7IGQ6ICdNNCA2Ljc2NVY0YTIgMiAwIDAgMSAyLTJoOWw1IDV2MTNhMiAyIDAgMCAxLTIgMkg2YTIgMiAwIDAgMS0uOTMtLjIzJywga2V5OiAnaWZ5am5sJyB9LFxuICBdLFxuICBbXG4gICAgJ3BhdGgnLFxuICAgIHtcbiAgICAgIGQ6ICdNNyAxMC41MWEuNS41IDAgMCAwLS44MjYtLjM4bC0xLjg5MyAxLjYyOEExIDEgMCAwIDEgMy42MyAxMkgyLjVhLjUuNSAwIDAgMC0uNS41djNhLjUuNSAwIDAgMCAuNS41aDEuMTI5YTEgMSAwIDAgMSAuNjUyLjI0MmwxLjg5MyAxLjYzYS41LjUgMCAwIDAgLjgyNi0uMzh6JyxcbiAgICAgIGtleTogJ21rOHJ4dScsXG4gICAgfSxcbiAgXSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBGaWxlVm9sdW1lXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NVEVnTVRGaE5TQTFJREFnTUNBeElEQWdOaUlnTHo0S0lDQThjR0YwYUNCa1BTSk5NVFFnTW5ZMFlUSWdNaUF3SURBZ01DQXlJREpvTkNJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTkNBMkxqYzJOVlkwWVRJZ01pQXdJREFnTVNBeUxUSm9PV3cxSURWMk1UTmhNaUF5SURBZ01DQXhMVElnTWtnMllUSWdNaUF3SURBZ01TMHVPVE10TGpJeklpQXZQZ29nSUR4d1lYUm9JR1E5SWswM0lERXdMalV4WVM0MUxqVWdNQ0F3SURBdExqZ3lOaTB1TXpoc0xURXVPRGt6SURFdU5qSTRRVEVnTVNBd0lEQWdNU0F6TGpZeklERXlTREl1TldFdU5TNDFJREFnTUNBd0xTNDFMalYyTTJFdU5TNDFJREFnTUNBd0lDNDFMalZvTVM0eE1qbGhNU0F4SURBZ01DQXhJQzQyTlRJdU1qUXliREV1T0RreklERXVOak5oTGpVdU5TQXdJREFnTUNBdU9ESTJMUzR6T0hvaUlDOCtDand2YzNablBnbz0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2ZpbGUtdm9sdW1lXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgRmlsZVZvbHVtZSA9IGNyZWF0ZUx1Y2lkZUljb24oJ2ZpbGUtdm9sdW1lJywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IEZpbGVWb2x1bWU7XG4iLCJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ00xNSAySDZhMiAyIDAgMCAwLTIgMnYxNmEyIDIgMCAwIDAgMiAyaDEyYTIgMiAwIDAgMCAyLTJWN1onLCBrZXk6ICcxcnFmejcnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTIgOXY0Jywga2V5OiAnanV6cHU3JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTEyIDE3aC4wMScsIGtleTogJ3AzMnAwNScgfV0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgRmlsZVdhcm5pbmdcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1UVWdNa2cyWVRJZ01pQXdJREFnTUMweUlESjJNVFpoTWlBeUlEQWdNQ0F3SURJZ01tZ3hNbUV5SURJZ01DQXdJREFnTWkweVZqZGFJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHhNaUE1ZGpRaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRFeUlERTNhQzR3TVNJZ0x6NEtQQzl6ZG1jK0NnPT0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2ZpbGUtd2FybmluZ1xuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IEZpbGVXYXJuaW5nID0gY3JlYXRlTHVjaWRlSWNvbignZmlsZS13YXJuaW5nJywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IEZpbGVXYXJuaW5nO1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdNNCAyMmgxNGEyIDIgMCAwIDAgMi0yVjdsLTUtNUg2YTIgMiAwIDAgMC0yIDJ2NCcsIGtleTogJzFwZjVqMScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xNCAydjRhMiAyIDAgMCAwIDIgMmg0Jywga2V5OiAndG5xcmxiJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnbTggMTIuNS01IDUnLCBrZXk6ICdiODUzbWknIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdtMyAxMi41IDUgNScsIGtleTogJzFxbHM0cicgfV0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgRmlsZVgyXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5OQ0F5TW1neE5HRXlJRElnTUNBd0lEQWdNaTB5Vmpkc0xUVXROVWcyWVRJZ01pQXdJREFnTUMweUlESjJOQ0lnTHo0S0lDQThjR0YwYUNCa1BTSk5NVFFnTW5ZMFlUSWdNaUF3SURBZ01DQXlJREpvTkNJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0p0T0NBeE1pNDFMVFVnTlNJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0p0TXlBeE1pNDFJRFVnTlNJZ0x6NEtQQzl6ZG1jK0NnPT0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2ZpbGUteC0yXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgRmlsZVgyID0gY3JlYXRlTHVjaWRlSWNvbignZmlsZS14LTInLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgRmlsZVgyO1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdNMTUgMkg2YTIgMiAwIDAgMC0yIDJ2MTZhMiAyIDAgMCAwIDIgMmgxMmEyIDIgMCAwIDAgMi0yVjdaJywga2V5OiAnMXJxZno3JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTE0IDJ2NGEyIDIgMCAwIDAgMiAyaDQnLCBrZXk6ICd0bnFybGInIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdtMTQuNSAxMi41LTUgNScsIGtleTogJ2I2MnIxOCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ205LjUgMTIuNSA1IDUnLCBrZXk6ICcxcms3ZWwnIH1dLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIEZpbGVYXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NVFVnTWtnMllUSWdNaUF3SURBZ01DMHlJREoyTVRaaE1pQXlJREFnTUNBd0lESWdNbWd4TW1FeUlESWdNQ0F3SURBZ01pMHlWamRhSWlBdlBnb2dJRHh3WVhSb0lHUTlJazB4TkNBeWRqUmhNaUF5SURBZ01DQXdJRElnTW1nMElpQXZQZ29nSUR4d1lYUm9JR1E5SW0weE5DNDFJREV5TGpVdE5TQTFJaUF2UGdvZ0lEeHdZWFJvSUdROUltMDVMalVnTVRJdU5TQTFJRFVpSUM4K0Nqd3ZjM1puUGdvPSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvZmlsZS14XG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgRmlsZVggPSBjcmVhdGVMdWNpZGVJY29uKCdmaWxlLXgnLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgRmlsZVg7XG4iLCJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ00xNSAySDZhMiAyIDAgMCAwLTIgMnYxNmEyIDIgMCAwIDAgMiAyaDEyYTIgMiAwIDAgMCAyLTJWN1onLCBrZXk6ICcxcnFmejcnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTQgMnY0YTIgMiAwIDAgMCAyIDJoNCcsIGtleTogJ3RucXJsYicgfV0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgRmlsZVxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTVRVZ01rZzJZVElnTWlBd0lEQWdNQzB5SURKMk1UWmhNaUF5SURBZ01DQXdJRElnTW1neE1tRXlJRElnTUNBd0lEQWdNaTB5VmpkYUlpQXZQZ29nSUR4d1lYUm9JR1E5SWsweE5DQXlkalJoTWlBeUlEQWdNQ0F3SURJZ01tZzBJaUF2UGdvOEwzTjJaejRLKSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9maWxlXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgRmlsZSA9IGNyZWF0ZUx1Y2lkZUljb24oJ2ZpbGUnLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgRmlsZTtcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTIwIDdoLTNhMiAyIDAgMCAxLTItMlYyJywga2V5OiAneDA5OW1vJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTkgMThhMiAyIDAgMCAxLTItMlY0YTIgMiAwIDAgMSAyLTJoN2w0IDR2MTBhMiAyIDAgMCAxLTIgMlonLCBrZXk6ICcxOHQ2aWUnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMyA3LjZ2MTIuOEExLjYgMS42IDAgMCAwIDQuNiAyMmg5LjgnLCBrZXk6ICcxbmphMHonIH1dLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIEZpbGVzXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NakFnTjJndE0yRXlJRElnTUNBd0lERXRNaTB5VmpJaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRrZ01UaGhNaUF5SURBZ01DQXhMVEl0TWxZMFlUSWdNaUF3SURBZ01TQXlMVEpvTjJ3MElEUjJNVEJoTWlBeUlEQWdNQ0F4TFRJZ01sb2lJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRUTWdOeTQyZGpFeUxqaEJNUzQySURFdU5pQXdJREFnTUNBMExqWWdNakpvT1M0NElpQXZQZ284TDNOMlp6NEspIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2ZpbGVzXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgRmlsZXMgPSBjcmVhdGVMdWNpZGVJY29uKCdmaWxlcycsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBGaWxlcztcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgWydyZWN0JywgeyB3aWR0aDogJzE4JywgaGVpZ2h0OiAnMTgnLCB4OiAnMycsIHk6ICczJywgcng6ICcyJywga2V5OiAnYWZpdHY3JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTcgM3YxOCcsIGtleTogJ2Jia2J3cycgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00zIDcuNWg0Jywga2V5OiAnemZnbjg0JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTMgMTJoMTgnLCBrZXk6ICcxaTJuMjEnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMyAxNi41aDQnLCBrZXk6ICcxMjMwbXUnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTcgM3YxOCcsIGtleTogJ2luNGZhNScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xNyA3LjVoNCcsIGtleTogJ215cjFjMScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xNyAxNi41aDQnLCBrZXk6ICdnbzRjMWQnIH1dLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIEZpbG1cbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNtVmpkQ0IzYVdSMGFEMGlNVGdpSUdobGFXZG9kRDBpTVRnaUlIZzlJak1pSUhrOUlqTWlJSEo0UFNJeUlpQXZQZ29nSUR4d1lYUm9JR1E5SWswM0lETjJNVGdpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVE1nTnk0MWFEUWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRUTWdNVEpvTVRnaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRNZ01UWXVOV2cwSWlBdlBnb2dJRHh3WVhSb0lHUTlJazB4TnlBemRqRTRJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHhOeUEzTGpWb05DSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk1UY2dNVFl1TldnMElpQXZQZ284TDNOMlp6NEspIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2ZpbG1cbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBGaWxtID0gY3JlYXRlTHVjaWRlSWNvbignZmlsbScsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBGaWxtO1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdNMTIgMTBhMiAyIDAgMCAwLTIgMmMwIDEuMDItLjEgMi41MS0uMjYgNCcsIGtleTogJzFuZXJhZycgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xNCAxMy4xMmMwIDIuMzggMCA2LjM4LTEgOC44OCcsIGtleTogJ280NmtzMCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xNy4yOSAyMS4wMmMuMTItLjYuNDMtMi4zLjUtMy4wMicsIGtleTogJ3B0Z2xpYScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00yIDEyYTEwIDEwIDAgMCAxIDE4LTYnLCBrZXk6ICd5ZGxncDAnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMiAxNmguMDEnLCBrZXk6ICcxZ3F4bWgnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMjEuOCAxNmMuMi0yIC4xMzEtNS4zNTQgMC02Jywga2V5OiAnZHJ5Y3JiJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTUgMTkuNUM1LjUgMTggNiAxNSA2IDEyYTYgNiAwIDAgMSAuMzQtMicsIGtleTogJzF0aWRibicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ004LjY1IDIyYy4yMS0uNjYuNDUtMS4zMi41Ny0yJywga2V5OiAnMTN3ZDl5JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTkgNi44YTYgNiAwIDAgMSA5IDUuMnYyJywga2V5OiAnMWZyMWo1JyB9XSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBGaW5nZXJwcmludFxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTVRJZ01UQmhNaUF5SURBZ01DQXdMVElnTW1Nd0lERXVNREl0TGpFZ01pNDFNUzB1TWpZZ05DSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk1UUWdNVE11TVRKak1DQXlMak00SURBZ05pNHpPQzB4SURndU9EZ2lJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRURTNMakk1SURJeExqQXlZeTR4TWkwdU5pNDBNeTB5TGpNdU5TMHpMakF5SWlBdlBnb2dJRHh3WVhSb0lHUTlJazB5SURFeVlURXdJREV3SURBZ01DQXhJREU0TFRZaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRJZ01UWm9MakF4SWlBdlBnb2dJRHh3WVhSb0lHUTlJazB5TVM0NElERTJZeTR5TFRJZ0xqRXpNUzAxTGpNMU5DQXdMVFlpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVFVnTVRrdU5VTTFMalVnTVRnZ05pQXhOU0EySURFeVlUWWdOaUF3SURBZ01TQXVNelF0TWlJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOT0M0Mk5TQXlNbU11TWpFdExqWTJMalExTFRFdU16SXVOVGN0TWlJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOT1NBMkxqaGhOaUEySURBZ01DQXhJRGtnTlM0eWRqSWlJQzgrQ2p3dmMzWm5QZ289KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9maW5nZXJwcmludFxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IEZpbmdlcnByaW50ID0gY3JlYXRlTHVjaWRlSWNvbignZmluZ2VycHJpbnQnLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgRmluZ2VycHJpbnQ7XG4iLCJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ00xNSA2LjVWM2ExIDEgMCAwIDAtMS0xaC0yYTEgMSAwIDAgMC0xIDF2My41Jywga2V5OiAnc3F5dnonIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNOSAxOGg4Jywga2V5OiAnaTdwc3piJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTE4IDNoLTMnLCBrZXk6ICc3aWRvcWonIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTEgM2E2IDYgMCAwIDAtNiA2djExJywga2V5OiAnMXY1amUzJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTUgMTNoNCcsIGtleTogJ3N2cGN4bycgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xNyAxMGE0IDQgMCAwIDAtOCAwdjEwYTIgMiAwIDAgMCAyIDJoNGEyIDIgMCAwIDAgMi0yWicsIGtleTogJ3ZzamVnbycgfV0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgRmlyZUV4dGluZ3Vpc2hlclxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTVRVZ05pNDFWak5oTVNBeElEQWdNQ0F3TFRFdE1XZ3RNbUV4SURFZ01DQXdJREF0TVNBeGRqTXVOU0lnTHo0S0lDQThjR0YwYUNCa1BTSk5PU0F4T0dnNElpQXZQZ29nSUR4d1lYUm9JR1E5SWsweE9DQXphQzB6SWlBdlBnb2dJRHh3WVhSb0lHUTlJazB4TVNBellUWWdOaUF3SURBZ01DMDJJRFoyTVRFaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRVZ01UTm9OQ0lnTHo0S0lDQThjR0YwYUNCa1BTSk5NVGNnTVRCaE5DQTBJREFnTUNBd0xUZ2dNSFl4TUdFeUlESWdNQ0F3SURBZ01pQXlhRFJoTWlBeUlEQWdNQ0F3SURJdE1sb2lJQzgrQ2p3dmMzWm5QZ289KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9maXJlLWV4dGluZ3Vpc2hlclxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IEZpcmVFeHRpbmd1aXNoZXIgPSBjcmVhdGVMdWNpZGVJY29uKCdmaXJlLWV4dGluZ3Vpc2hlcicsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBGaXJlRXh0aW5ndWlzaGVyO1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbXG4gICAgJ3BhdGgnLFxuICAgIHtcbiAgICAgIGQ6ICdNMTggMTIuNDd2LjAzbTAtLjV2LjQ3bS0uNDc1IDUuMDU2QTYuNzQ0IDYuNzQ0IDAgMCAxIDE1IDE4Yy0zLjU2IDAtNy41Ni0yLjUzLTguNS02IC4zNDgtMS4yOCAxLjExNC0yLjQzMyAyLjEyMS0zLjM4bTMuNDQ0LTIuMDg4QTguODAyIDguODAyIDAgMCAxIDE1IDZjMy41NiAwIDYuMDYgMi41NCA3IDYtLjMwOSAxLjE0LS43ODYgMi4xNzctMS40MTMgMy4wNTgnLFxuICAgICAga2V5OiAnMWoxaHNlJyxcbiAgICB9LFxuICBdLFxuICBbXG4gICAgJ3BhdGgnLFxuICAgIHtcbiAgICAgIGQ6ICdNNyAxMC42N0M3IDggNS41OCA1Ljk3IDIuNzMgNS41Yy0xIDEuNS0xIDUgLjIzIDYuNS0xLjI0IDEuNS0xLjI0IDUtLjIzIDYuNUM1LjU4IDE4LjAzIDcgMTYgNyAxMy4zM203LjQ4LTQuMzcyQTkuNzcgOS43NyAwIDAgMSAxNiA2LjA3bTAgMTEuODZhOS43NyA5Ljc3IDAgMCAxLTEuNzI4LTMuNjE4JyxcbiAgICAgIGtleTogJzFxNDZ6OCcsXG4gICAgfSxcbiAgXSxcbiAgW1xuICAgICdwYXRoJyxcbiAgICB7XG4gICAgICBkOiAnbTE2LjAxIDE3LjkzLS4yMyAxLjRBMiAyIDAgMCAxIDEzLjggMjFIOS41YTUuOTYgNS45NiAwIDAgMCAxLjQ5LTMuOThNOC41MyAzaDUuMjdhMiAyIDAgMCAxIDEuOTggMS42N2wuMjMgMS40TTIgMmwyMCAyMCcsXG4gICAgICBrZXk6ICcxNDA3Z2gnLFxuICAgIH0sXG4gIF0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgRmlzaE9mZlxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTVRnZ01USXVORGQyTGpBemJUQXRMalYyTGpRM2JTMHVORGMxSURVdU1EVTJRVFl1TnpRMElEWXVOelEwSURBZ01DQXhJREUxSURFNFl5MHpMalUySURBdE55NDFOaTB5TGpVekxUZ3VOUzAySUM0ek5EZ3RNUzR5T0NBeExqRXhOQzB5TGpRek15QXlMakV5TVMwekxqTTRiVE11TkRRMExUSXVNRGc0UVRndU9EQXlJRGd1T0RBeUlEQWdNQ0F4SURFMUlEWmpNeTQxTmlBd0lEWXVNRFlnTWk0MU5DQTNJRFl0TGpNd09TQXhMakUwTFM0M09EWWdNaTR4TnpjdE1TNDBNVE1nTXk0d05UZ2lJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRUY2dNVEF1TmpkRE55QTRJRFV1TlRnZ05TNDVOeUF5TGpjeklEVXVOV010TVNBeExqVXRNU0ExSUM0eU15QTJMalV0TVM0eU5DQXhMalV0TVM0eU5DQTFMUzR5TXlBMkxqVkROUzQxT0NBeE9DNHdNeUEzSURFMklEY2dNVE11TXpOdE55NDBPQzAwTGpNM01rRTVMamMzSURrdU56Y2dNQ0F3SURFZ01UWWdOaTR3TjIwd0lERXhMamcyWVRrdU56Y2dPUzQzTnlBd0lEQWdNUzB4TGpjeU9DMHpMall4T0NJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0p0TVRZdU1ERWdNVGN1T1RNdExqSXpJREV1TkVFeUlESWdNQ0F3SURFZ01UTXVPQ0F5TVVnNUxqVmhOUzQ1TmlBMUxqazJJREFnTUNBd0lERXVORGt0TXk0NU9FMDRMalV6SUROb05TNHlOMkV5SURJZ01DQXdJREVnTVM0NU9DQXhMalkzYkM0eU15QXhMalJOTWlBeWJESXdJREl3SWlBdlBnbzhMM04yWno0SykgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvZmlzaC1vZmZcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBGaXNoT2ZmID0gY3JlYXRlTHVjaWRlSWNvbignZmlzaC1vZmYnLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgRmlzaE9mZjtcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTIgMTZzOS0xNSAyMC00QzExIDIzIDIgOCAyIDgnLCBrZXk6ICdoNG9oNG8nIH1dLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIEZpc2hTeW1ib2xcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1pQXhObk01TFRFMUlESXdMVFJETVRFZ01qTWdNaUE0SURJZ09DSWdMejRLUEM5emRtYytDZz09KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9maXNoLXN5bWJvbFxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IEZpc2hTeW1ib2wgPSBjcmVhdGVMdWNpZGVJY29uKCdmaXNoLXN5bWJvbCcsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBGaXNoU3ltYm9sO1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbXG4gICAgJ3BhdGgnLFxuICAgIHtcbiAgICAgIGQ6ICdNNi41IDEyYy45NC0zLjQ2IDQuOTQtNiA4LjUtNiAzLjU2IDAgNi4wNiAyLjU0IDcgNi0uOTQgMy40Ny0zLjQ0IDYtNyA2cy03LjU2LTIuNTMtOC41LTZaJyxcbiAgICAgIGtleTogJzE1YmF1dCcsXG4gICAgfSxcbiAgXSxcbiAgWydwYXRoJywgeyBkOiAnTTE4IDEydi41Jywga2V5OiAnMThoaG5pJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTE2IDE3LjkzYTkuNzcgOS43NyAwIDAgMSAwLTExLjg2Jywga2V5OiAnMTZkdDdvJyB9XSxcbiAgW1xuICAgICdwYXRoJyxcbiAgICB7XG4gICAgICBkOiAnTTcgMTAuNjdDNyA4IDUuNTggNS45NyAyLjczIDUuNWMtMSAxLjUtMSA1IC4yMyA2LjUtMS4yNCAxLjUtMS4yNCA1LS4yMyA2LjVDNS41OCAxOC4wMyA3IDE2IDcgMTMuMzMnLFxuICAgICAga2V5OiAnbDlkaTAzJyxcbiAgICB9LFxuICBdLFxuICBbXG4gICAgJ3BhdGgnLFxuICAgIHsgZDogJ00xMC40NiA3LjI2QzEwLjIgNS44OCA5LjE3IDQuMjQgOCAzaDUuOGEyIDIgMCAwIDEgMS45OCAxLjY3bC4yMyAxLjQnLCBrZXk6ICcxa2pvbncnIH0sXG4gIF0sXG4gIFtcbiAgICAncGF0aCcsXG4gICAgeyBkOiAnbTE2LjAxIDE3LjkzLS4yMyAxLjRBMiAyIDAgMCAxIDEzLjggMjFIOS41YTUuOTYgNS45NiAwIDAgMCAxLjQ5LTMuOTgnLCBrZXk6ICcxemxtMjMnIH0sXG4gIF0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgRmlzaFxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTmk0MUlERXlZeTQ1TkMwekxqUTJJRFF1T1RRdE5pQTRMalV0TmlBekxqVTJJREFnTmk0d05pQXlMalUwSURjZ05pMHVPVFFnTXk0ME55MHpMalEwSURZdE55QTJjeTAzTGpVMkxUSXVOVE10T0M0MUxUWmFJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHhPQ0F4TW5ZdU5TSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk1UWWdNVGN1T1ROaE9TNDNOeUE1TGpjM0lEQWdNQ0F4SURBdE1URXVPRFlpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVGNnTVRBdU5qZEROeUE0SURVdU5UZ2dOUzQ1TnlBeUxqY3pJRFV1TldNdE1TQXhMalV0TVNBMUlDNHlNeUEyTGpVdE1TNHlOQ0F4TGpVdE1TNHlOQ0ExTFM0eU15QTJMalZETlM0MU9DQXhPQzR3TXlBM0lERTJJRGNnTVRNdU16TWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRURXdMalEySURjdU1qWkRNVEF1TWlBMUxqZzRJRGt1TVRjZ05DNHlOQ0E0SUROb05TNDRZVElnTWlBd0lEQWdNU0F4TGprNElERXVOamRzTGpJeklERXVOQ0lnTHo0S0lDQThjR0YwYUNCa1BTSnRNVFl1TURFZ01UY3VPVE10TGpJeklERXVORUV5SURJZ01DQXdJREVnTVRNdU9DQXlNVWc1TGpWaE5TNDVOaUExTGprMklEQWdNQ0F3SURFdU5Ea3RNeTQ1T0NJZ0x6NEtQQzl6ZG1jK0NnPT0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2Zpc2hcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBGaXNoID0gY3JlYXRlTHVjaWRlSWNvbignZmlzaCcsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBGaXNoO1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdNMTYgMTZjLTMgMC01LTItOC0yYTYgNiAwIDAgMC00IDEuNTI4Jywga2V5OiAnMXExNThlJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnbTIgMiAyMCAyMCcsIGtleTogJzFvb2V3eScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ000IDIyVjQnLCBrZXk6ICcxcGx5eHgnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNNy42NTYgMkg4YzMgMCA1IDIgNy4zMzMgMnEyIDAgMy4wNjctLjhBMSAxIDAgMCAxIDIwIDR2MTAuMzQ3Jywga2V5OiAneGoxYjcxJyB9XSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBGbGFnT2ZmXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NVFlnTVRaakxUTWdNQzAxTFRJdE9DMHlZVFlnTmlBd0lEQWdNQzAwSURFdU5USTRJaUF2UGdvZ0lEeHdZWFJvSUdROUltMHlJRElnTWpBZ01qQWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRUUWdNakpXTkNJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTnk0Mk5UWWdNa2c0WXpNZ01DQTFJRElnTnk0ek16TWdNbkV5SURBZ015NHdOamN0TGpoQk1TQXhJREFnTUNBeElESXdJRFIyTVRBdU16UTNJaUF2UGdvOEwzTjJaejRLKSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9mbGFnLW9mZlxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IEZsYWdPZmYgPSBjcmVhdGVMdWNpZGVJY29uKCdmbGFnLW9mZicsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBGbGFnT2ZmO1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1sncGF0aCcsIHsgZDogJ00xNyAyMlYyTDcgN2wxMCA1Jywga2V5OiAnMXJtZjByJyB9XV07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBGbGFnVHJpYW5nbGVMZWZ0XG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NVGNnTWpKV01rdzNJRGRzTVRBZ05TSWdMejRLUEM5emRtYytDZz09KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9mbGFnLXRyaWFuZ2xlLWxlZnRcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBGbGFnVHJpYW5nbGVMZWZ0ID0gY3JlYXRlTHVjaWRlSWNvbignZmxhZy10cmlhbmdsZS1sZWZ0JywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IEZsYWdUcmlhbmdsZUxlZnQ7XG4iLCJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbWydwYXRoJywgeyBkOiAnTTcgMjJWMmwxMCA1LTEwIDUnLCBrZXk6ICcxN24xOHknIH1dXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIEZsYWdUcmlhbmdsZVJpZ2h0XG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5OeUF5TWxZeWJERXdJRFV0TVRBZ05TSWdMejRLUEM5emRtYytDZz09KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9mbGFnLXRyaWFuZ2xlLXJpZ2h0XG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgRmxhZ1RyaWFuZ2xlUmlnaHQgPSBjcmVhdGVMdWNpZGVJY29uKCdmbGFnLXRyaWFuZ2xlLXJpZ2h0JywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IEZsYWdUcmlhbmdsZVJpZ2h0O1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbXG4gICAgJ3BhdGgnLFxuICAgIHtcbiAgICAgIGQ6ICdNNCAyMlY0YTEgMSAwIDAgMSAuNC0uOEE2IDYgMCAwIDEgOCAyYzMgMCA1IDIgNy4zMzMgMnEyIDAgMy4wNjctLjhBMSAxIDAgMCAxIDIwIDR2MTBhMSAxIDAgMCAxLS40LjhBNiA2IDAgMCAxIDE2IDE2Yy0zIDAtNS0yLTgtMmE2IDYgMCAwIDAtNCAxLjUyOCcsXG4gICAgICBrZXk6ICcxamFydXEnLFxuICAgIH0sXG4gIF0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgRmxhZ1xuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTkNBeU1sWTBZVEVnTVNBd0lEQWdNU0F1TkMwdU9FRTJJRFlnTUNBd0lERWdPQ0F5WXpNZ01DQTFJRElnTnk0ek16TWdNbkV5SURBZ015NHdOamN0TGpoQk1TQXhJREFnTUNBeElESXdJRFIyTVRCaE1TQXhJREFnTUNBeExTNDBMamhCTmlBMklEQWdNQ0F4SURFMklERTJZeTB6SURBdE5TMHlMVGd0TW1FMklEWWdNQ0F3SURBdE5DQXhMalV5T0NJZ0x6NEtQQzl6ZG1jK0NnPT0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2ZsYWdcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBGbGFnID0gY3JlYXRlTHVjaWRlSWNvbignZmxhZycsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBGbGFnO1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbXG4gICAgJ3BhdGgnLFxuICAgIHtcbiAgICAgIGQ6ICdNMTIgMmMxIDMgMi41IDMuNSAzLjUgNC41QTUgNSAwIDAgMSAxNyAxMGE1IDUgMCAxIDEtMTAgMGMwLS4zIDAtLjYuMS0uOWEyIDIgMCAxIDAgMy4zLTJDOCA0LjUgMTEgMiAxMiAyWicsXG4gICAgICBrZXk6ICcxaXIyMjMnLFxuICAgIH0sXG4gIF0sXG4gIFsncGF0aCcsIHsgZDogJ201IDIyIDE0LTQnLCBrZXk6ICcxYnJ2NGgnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdtNSAxOCAxNCA0Jywga2V5OiAnbGd5eWplJyB9XSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBGbGFtZUtpbmRsaW5nXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NVElnTW1NeElETWdNaTQxSURNdU5TQXpMalVnTkM0MVFUVWdOU0F3SURBZ01TQXhOeUF4TUdFMUlEVWdNQ0F4SURFdE1UQWdNR013TFM0eklEQXRMall1TVMwdU9XRXlJRElnTUNBeElEQWdNeTR6TFRKRE9DQTBMalVnTVRFZ01pQXhNaUF5V2lJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0p0TlNBeU1pQXhOQzAwSWlBdlBnb2dJRHh3WVhSb0lHUTlJbTAxSURFNElERTBJRFFpSUM4K0Nqd3ZjM1puUGdvPSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvZmxhbWUta2luZGxpbmdcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBGbGFtZUtpbmRsaW5nID0gY3JlYXRlTHVjaWRlSWNvbignZmxhbWUta2luZGxpbmcnLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgRmxhbWVLaW5kbGluZztcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgW1xuICAgICdwYXRoJyxcbiAgICB7XG4gICAgICBkOiAnTTguNSAxNC41QTIuNSAyLjUgMCAwIDAgMTEgMTJjMC0xLjM4LS41LTItMS0zLTEuMDcyLTIuMTQzLS4yMjQtNC4wNTQgMi02IC41IDIuNSAyIDQuOSA0IDYuNSAyIDEuNiAzIDMuNSAzIDUuNWE3IDcgMCAxIDEtMTQgMGMwLTEuMTUzLjQzMy0yLjI5NCAxLTNhMi41IDIuNSAwIDAgMCAyLjUgMi41eicsXG4gICAgICBrZXk6ICc5NnhqNDknLFxuICAgIH0sXG4gIF0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgRmxhbWVcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk9DNDFJREUwTGpWQk1pNDFJREl1TlNBd0lEQWdNQ0F4TVNBeE1tTXdMVEV1TXpndExqVXRNaTB4TFRNdE1TNHdOekl0TWk0eE5ETXRMakl5TkMwMExqQTFOQ0F5TFRZZ0xqVWdNaTQxSURJZ05DNDVJRFFnTmk0MUlESWdNUzQySURNZ015NDFJRE1nTlM0MVlUY2dOeUF3SURFZ01TMHhOQ0F3WXpBdE1TNHhOVE11TkRNekxUSXVNamswSURFdE0yRXlMalVnTWk0MUlEQWdNQ0F3SURJdU5TQXlMalY2SWlBdlBnbzhMM04yWno0SykgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvZmxhbWVcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBGbGFtZSA9IGNyZWF0ZUx1Y2lkZUljb24oJ2ZsYW1lJywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IEZsYW1lO1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdNMTYgMTZ2NGEyIDIgMCAwIDEtMiAyaC00YTIgMiAwIDAgMS0yLTJWMTBjMC0yLTItMi0yLTQnLCBrZXk6ICcxcjEyMGsnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNNyAyaDExdjRjMCAyLTIgMi0yIDR2MScsIGtleTogJ2R6MTkyMCcgfV0sXG4gIFsnbGluZScsIHsgeDE6ICcxMScsIHgyOiAnMTgnLCB5MTogJzYnLCB5MjogJzYnLCBrZXk6ICdiaTF2cGUnIH1dLFxuICBbJ2xpbmUnLCB7IHgxOiAnMicsIHgyOiAnMjInLCB5MTogJzInLCB5MjogJzIyJywga2V5OiAnYTZwNnVqJyB9XSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBGbGFzaGxpZ2h0T2ZmXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NVFlnTVRaMk5HRXlJRElnTUNBd0lERXRNaUF5YUMwMFlUSWdNaUF3SURBZ01TMHlMVEpXTVRCak1DMHlMVEl0TWkweUxUUWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRUY2dNbWd4TVhZMFl6QWdNaTB5SURJdE1pQTBkakVpSUM4K0NpQWdQR3hwYm1VZ2VERTlJakV4SWlCNE1qMGlNVGdpSUhreFBTSTJJaUI1TWowaU5pSWdMejRLSUNBOGJHbHVaU0I0TVQwaU1pSWdlREk5SWpJeUlpQjVNVDBpTWlJZ2VUSTlJakl5SWlBdlBnbzhMM04yWno0SykgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvZmxhc2hsaWdodC1vZmZcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBGbGFzaGxpZ2h0T2ZmID0gY3JlYXRlTHVjaWRlSWNvbignZmxhc2hsaWdodC1vZmYnLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgRmxhc2hsaWdodE9mZjtcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgW1xuICAgICdwYXRoJyxcbiAgICB7XG4gICAgICBkOiAnTTE4IDZjMCAyLTIgMi0yIDR2MTBhMiAyIDAgMCAxLTIgMmgtNGEyIDIgMCAwIDEtMi0yVjEwYzAtMi0yLTItMi00VjJoMTJ6JyxcbiAgICAgIGtleTogJzFvcmtlbCcsXG4gICAgfSxcbiAgXSxcbiAgWydsaW5lJywgeyB4MTogJzYnLCB4MjogJzE4JywgeTE6ICc2JywgeTI6ICc2Jywga2V5OiAnMXoxMWpxJyB9XSxcbiAgWydsaW5lJywgeyB4MTogJzEyJywgeDI6ICcxMicsIHkxOiAnMTInLCB5MjogJzEyJywga2V5OiAnMWY0eWMxJyB9XSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBGbGFzaGxpZ2h0XG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NVGdnTm1Nd0lESXRNaUF5TFRJZ05IWXhNR0V5SURJZ01DQXdJREV0TWlBeWFDMDBZVElnTWlBd0lEQWdNUzB5TFRKV01UQmpNQzB5TFRJdE1pMHlMVFJXTW1neE1ub2lJQzgrQ2lBZ1BHeHBibVVnZURFOUlqWWlJSGd5UFNJeE9DSWdlVEU5SWpZaUlIa3lQU0kySWlBdlBnb2dJRHhzYVc1bElIZ3hQU0l4TWlJZ2VESTlJakV5SWlCNU1UMGlNVElpSUhreVBTSXhNaUlnTHo0S1BDOXpkbWMrQ2c9PSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvZmxhc2hsaWdodFxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IEZsYXNobGlnaHQgPSBjcmVhdGVMdWNpZGVJY29uKCdmbGFzaGxpZ2h0JywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IEZsYXNobGlnaHQ7XG4iLCJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ00xMCAydjIuMzQzJywga2V5OiAnMTV0MjcyJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTE0IDJ2Ni4zNDMnLCBrZXk6ICdzeHI4MHEnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdtMiAyIDIwIDIwJywga2V5OiAnMW9vZXd5JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTIwIDIwYTIgMiAwIDAgMS0yIDJINmEyIDIgMCAwIDEtMS43NTUtMi45Nmw1LjIyNy05LjU2MycsIGtleTogJ2swZHV5ZCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ002LjQ1MyAxNUgxNScsIGtleTogJzFmMHozMycgfV0sXG4gIFsncGF0aCcsIHsgZDogJ004LjUgMmg3Jywga2V5OiAnY3NueGRsJyB9XSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBGbGFza0NvbmljYWxPZmZcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1UQWdNbll5TGpNME15SWdMejRLSUNBOGNHRjBhQ0JrUFNKTk1UUWdNblkyTGpNME15SWdMejRLSUNBOGNHRjBhQ0JrUFNKdE1pQXlJREl3SURJd0lpQXZQZ29nSUR4d1lYUm9JR1E5SWsweU1DQXlNR0V5SURJZ01DQXdJREV0TWlBeVNEWmhNaUF5SURBZ01DQXhMVEV1TnpVMUxUSXVPVFpzTlM0eU1qY3RPUzQxTmpNaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRZdU5EVXpJREUxU0RFMUlpQXZQZ29nSUR4d1lYUm9JR1E5SWswNExqVWdNbWczSWlBdlBnbzhMM04yWno0SykgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvZmxhc2stY29uaWNhbC1vZmZcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBGbGFza0NvbmljYWxPZmYgPSBjcmVhdGVMdWNpZGVJY29uKCdmbGFzay1jb25pY2FsLW9mZicsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBGbGFza0NvbmljYWxPZmY7XG4iLCJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbXG4gIFtcbiAgICAncGF0aCcsXG4gICAge1xuICAgICAgZDogJ00xNCAydjZhMiAyIDAgMCAwIC4yNDUuOTZsNS41MSAxMC4wOEEyIDIgMCAwIDEgMTggMjJINmEyIDIgMCAwIDEtMS43NTUtMi45Nmw1LjUxLTEwLjA4QTIgMiAwIDAgMCAxMCA4VjInLFxuICAgICAga2V5OiAnMThtYnZ6JyxcbiAgICB9LFxuICBdLFxuICBbJ3BhdGgnLCB7IGQ6ICdNNi40NTMgMTVoMTEuMDk0Jywga2V5OiAnM3NobG1xJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTguNSAyaDcnLCBrZXk6ICdjc254ZGwnIH1dLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIEZsYXNrQ29uaWNhbFxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTVRRZ01uWTJZVElnTWlBd0lEQWdNQ0F1TWpRMUxqazJiRFV1TlRFZ01UQXVNRGhCTWlBeUlEQWdNQ0F4SURFNElESXlTRFpoTWlBeUlEQWdNQ0F4TFRFdU56VTFMVEl1T1Rac05TNDFNUzB4TUM0d09FRXlJRElnTUNBd0lEQWdNVEFnT0ZZeUlpQXZQZ29nSUR4d1lYUm9JR1E5SWswMkxqUTFNeUF4TldneE1TNHdPVFFpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVGd1TlNBeWFEY2lJQzgrQ2p3dmMzWm5QZ289KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9mbGFzay1jb25pY2FsXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgRmxhc2tDb25pY2FsID0gY3JlYXRlTHVjaWRlSWNvbignZmxhc2stY29uaWNhbCcsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBGbGFza0NvbmljYWw7XG4iLCJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ00xMCAydjYuMjkyYTcgNyAwIDEgMCA0IDBWMicsIGtleTogJzFzNDJwYycgfV0sXG4gIFsncGF0aCcsIHsgZDogJ001IDE1aDE0Jywga2V5OiAnbTB5ZXkzJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTguNSAyaDcnLCBrZXk6ICdjc254ZGwnIH1dLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIEZsYXNrUm91bmRcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1UQWdNblkyTGpJNU1tRTNJRGNnTUNBeElEQWdOQ0F3VmpJaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRVZ01UVm9NVFFpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVGd1TlNBeWFEY2lJQzgrQ2p3dmMzWm5QZ289KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9mbGFzay1yb3VuZFxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IEZsYXNrUm91bmQgPSBjcmVhdGVMdWNpZGVJY29uKCdmbGFzay1yb3VuZCcsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBGbGFza1JvdW5kO1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdtMyA3IDUgNS01IDVWNycsIGtleTogJ2NvdWhpNycgfV0sXG4gIFsncGF0aCcsIHsgZDogJ20yMSA3LTUgNSA1IDVWNycsIGtleTogJzZvdWlhNycgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xMiAyMHYyJywga2V5OiAnMWxoMWtnJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTEyIDE0djInLCBrZXk6ICc4amN4dWQnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTIgOHYyJywga2V5OiAnMXdvcWl2JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTEyIDJ2MicsIGtleTogJ3R1czAzbScgfV0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgRmxpcEhvcml6b250YWwyXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSnRNeUEzSURVZ05TMDFJRFZXTnlJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0p0TWpFZ055MDFJRFVnTlNBMVZqY2lJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRURXlJREl3ZGpJaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRFeUlERTBkaklpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVEV5SURoMk1pSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk1USWdNbll5SWlBdlBnbzhMM04yWno0SykgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvZmxpcC1ob3Jpem9udGFsLTJcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBGbGlwSG9yaXpvbnRhbDIgPSBjcmVhdGVMdWNpZGVJY29uKCdmbGlwLWhvcml6b250YWwtMicsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBGbGlwSG9yaXpvbnRhbDI7XG4iLCJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ004IDNINWEyIDIgMCAwIDAtMiAydjE0YzAgMS4xLjkgMiAyIDJoMycsIGtleTogJzFpNzNmNycgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xNiAzaDNhMiAyIDAgMCAxIDIgMnYxNGEyIDIgMCAwIDEtMiAyaC0zJywga2V5OiAnc2F4bGJrJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTEyIDIwdjInLCBrZXk6ICcxbGgxa2cnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTIgMTR2MicsIGtleTogJzhqY3h1ZCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xMiA4djInLCBrZXk6ICcxd29xaXYnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTIgMnYyJywga2V5OiAndHVzMDNtJyB9XSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBGbGlwSG9yaXpvbnRhbFxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOT0NBelNEVmhNaUF5SURBZ01DQXdMVElnTW5ZeE5HTXdJREV1TVM0NUlESWdNaUF5YURNaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRFMklETm9NMkV5SURJZ01DQXdJREVnTWlBeWRqRTBZVElnTWlBd0lEQWdNUzB5SURKb0xUTWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRURXlJREl3ZGpJaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRFeUlERTBkaklpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVEV5SURoMk1pSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk1USWdNbll5SWlBdlBnbzhMM04yWno0SykgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvZmxpcC1ob3Jpem9udGFsXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgRmxpcEhvcml6b250YWwgPSBjcmVhdGVMdWNpZGVJY29uKCdmbGlwLWhvcml6b250YWwnLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgRmxpcEhvcml6b250YWw7XG4iLCJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ20xNyAzLTUgNS01LTVoMTAnLCBrZXk6ICcxZnR0NngnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdtMTcgMjEtNS01LTUgNWgxMCcsIGtleTogJzFtMHdtdScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ000IDEySDInLCBrZXk6ICdyaGN4bWknIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTAgMTJIOCcsIGtleTogJ3M4OGN4MScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xNiAxMmgtMicsIGtleTogJzEwYXNnYicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00yMiAxMmgtMicsIGtleTogJzE0amd5ZCcgfV0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgRmxpcFZlcnRpY2FsMlxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0p0TVRjZ015MDFJRFV0TlMwMWFERXdJaUF2UGdvZ0lEeHdZWFJvSUdROUltMHhOeUF5TVMwMUxUVXROU0ExYURFd0lpQXZQZ29nSUR4d1lYUm9JR1E5SWswMElERXlTRElpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVEV3SURFeVNEZ2lJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRURTJJREV5YUMweUlpQXZQZ29nSUR4d1lYUm9JR1E5SWsweU1pQXhNbWd0TWlJZ0x6NEtQQzl6ZG1jK0NnPT0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2ZsaXAtdmVydGljYWwtMlxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IEZsaXBWZXJ0aWNhbDIgPSBjcmVhdGVMdWNpZGVJY29uKCdmbGlwLXZlcnRpY2FsLTInLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgRmxpcFZlcnRpY2FsMjtcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTIxIDhWNWEyIDIgMCAwIDAtMi0ySDVhMiAyIDAgMCAwLTIgMnYzJywga2V5OiAnMTRiZnhhJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTIxIDE2djNhMiAyIDAgMCAxLTIgMkg1YTIgMiAwIDAgMS0yLTJ2LTMnLCBrZXk6ICcxNHJ4MDMnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNNCAxMkgyJywga2V5OiAncmhjeG1pJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTEwIDEySDgnLCBrZXk6ICdzODhjeDEnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTYgMTJoLTInLCBrZXk6ICcxMGFzZ2InIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMjIgMTJoLTInLCBrZXk6ICcxNGpneWQnIH1dLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIEZsaXBWZXJ0aWNhbFxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTWpFZ09GWTFZVElnTWlBd0lEQWdNQzB5TFRKSU5XRXlJRElnTUNBd0lEQXRNaUF5ZGpNaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRJeElERTJkak5oTWlBeUlEQWdNQ0F4TFRJZ01rZzFZVElnTWlBd0lEQWdNUzB5TFRKMkxUTWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRUUWdNVEpJTWlJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTVRBZ01USklPQ0lnTHo0S0lDQThjR0YwYUNCa1BTSk5NVFlnTVRKb0xUSWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRUSXlJREV5YUMweUlpQXZQZ284TDNOMlp6NEspIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2ZsaXAtdmVydGljYWxcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBGbGlwVmVydGljYWwgPSBjcmVhdGVMdWNpZGVJY29uKCdmbGlwLXZlcnRpY2FsJywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IEZsaXBWZXJ0aWNhbDtcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgW1xuICAgICdwYXRoJyxcbiAgICB7XG4gICAgICBkOiAnTTEyIDVhMyAzIDAgMSAxIDMgM20tMy0zYTMgMyAwIDEgMC0zIDNtMy0zdjFNOSA4YTMgMyAwIDEgMCAzIDNNOSA4aDFtNSAwYTMgMyAwIDEgMS0zIDNtMy0zaC0xbS0yIDN2LTEnLFxuICAgICAga2V5OiAnM3Budm9sJyxcbiAgICB9LFxuICBdLFxuICBbJ2NpcmNsZScsIHsgY3g6ICcxMicsIGN5OiAnOCcsIHI6ICcyJywga2V5OiAnMTgyMmIxJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTEyIDEwdjEyJywga2V5OiAnNnVid3d3JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTEyIDIyYzQuMiAwIDctMS42NjcgNy01LTQuMiAwLTcgMS42NjctNyA1WicsIGtleTogJzloZDM4ZycgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xMiAyMmMtNC4yIDAtNy0xLjY2Ny03LTUgNC4yIDAgNyAxLjY2NyA3IDVaJywga2V5OiAndWZuNDFzJyB9XSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBGbG93ZXIyXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NVElnTldFeklETWdNQ0F4SURFZ015QXpiUzB6TFROaE15QXpJREFnTVNBd0xUTWdNMjB6TFROMk1VMDVJRGhoTXlBeklEQWdNU0F3SURNZ00wMDVJRGhvTVcwMUlEQmhNeUF6SURBZ01TQXhMVE1nTTIwekxUTm9MVEZ0TFRJZ00zWXRNU0lnTHo0S0lDQThZMmx5WTJ4bElHTjRQU0l4TWlJZ1kzazlJamdpSUhJOUlqSWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRURXlJREV3ZGpFeUlpQXZQZ29nSUR4d1lYUm9JR1E5SWsweE1pQXlNbU0wTGpJZ01DQTNMVEV1TmpZM0lEY3ROUzAwTGpJZ01DMDNJREV1TmpZM0xUY2dOVm9pSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVEV5SURJeVl5MDBMaklnTUMwM0xURXVOalkzTFRjdE5TQTBMaklnTUNBM0lERXVOalkzSURjZ05Wb2lJQzgrQ2p3dmMzWm5QZ289KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9mbG93ZXItMlxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IEZsb3dlcjIgPSBjcmVhdGVMdWNpZGVJY29uKCdmbG93ZXItMicsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBGbG93ZXIyO1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbJ2NpcmNsZScsIHsgY3g6ICcxMicsIGN5OiAnMTInLCByOiAnMycsIGtleTogJzF2N3pyZCcgfV0sXG4gIFtcbiAgICAncGF0aCcsXG4gICAge1xuICAgICAgZDogJ00xMiAxNi41QTQuNSA0LjUgMCAxIDEgNy41IDEyIDQuNSA0LjUgMCAxIDEgMTIgNy41YTQuNSA0LjUgMCAxIDEgNC41IDQuNSA0LjUgNC41IDAgMSAxLTQuNSA0LjUnLFxuICAgICAga2V5OiAnMTR3YTNjJyxcbiAgICB9LFxuICBdLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTIgNy41VjknLCBrZXk6ICcxb3k1YjAnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNNy41IDEySDknLCBrZXk6ICdlbHRzcTEnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTYuNSAxMkgxNScsIGtleTogJ3ZrNWt3NCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xMiAxNi41VjE1Jywga2V5OiAnazdlYXlpJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnbTggOCAxLjg4IDEuODgnLCBrZXk6ICdueHk0cWYnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTQuMTIgOS44OCAxNiA4Jywga2V5OiAnMWxzdDZrJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnbTggMTYgMS44OC0xLjg4Jywga2V5OiAnaDJlZXgxJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTE0LjEyIDE0LjEyIDE2IDE2Jywga2V5OiAndXFrcngzJyB9XSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBGbG93ZXJcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOFkybHlZMnhsSUdONFBTSXhNaUlnWTNrOUlqRXlJaUJ5UFNJeklpQXZQZ29nSUR4d1lYUm9JR1E5SWsweE1pQXhOaTQxUVRRdU5TQTBMalVnTUNBeElERWdOeTQxSURFeUlEUXVOU0EwTGpVZ01DQXhJREVnTVRJZ055NDFZVFF1TlNBMExqVWdNQ0F4SURFZ05DNDFJRFF1TlNBMExqVWdOQzQxSURBZ01TQXhMVFF1TlNBMExqVWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRURXlJRGN1TlZZNUlpQXZQZ29nSUR4d1lYUm9JR1E5SWswM0xqVWdNVEpJT1NJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTVRZdU5TQXhNa2d4TlNJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTVRJZ01UWXVOVll4TlNJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0p0T0NBNElERXVPRGdnTVM0NE9DSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk1UUXVNVElnT1M0NE9DQXhOaUE0SWlBdlBnb2dJRHh3WVhSb0lHUTlJbTA0SURFMklERXVPRGd0TVM0NE9DSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk1UUXVNVElnTVRRdU1USWdNVFlnTVRZaUlDOCtDand2YzNablBnbz0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2Zsb3dlclxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IEZsb3dlciA9IGNyZWF0ZUx1Y2lkZUljb24oJ2Zsb3dlcicsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBGbG93ZXI7XG4iLCJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbXG4gIFsnY2lyY2xlJywgeyBjeDogJzEyJywgY3k6ICcxMicsIHI6ICczJywga2V5OiAnMXY3enJkJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTMgN1Y1YTIgMiAwIDAgMSAyLTJoMicsIGtleTogJ2FhN2wxeicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xNyAzaDJhMiAyIDAgMCAxIDIgMnYyJywga2V5OiAnNHFjeTVvJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTIxIDE3djJhMiAyIDAgMCAxLTIgMmgtMicsIGtleTogJzZ2d3J4OCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ003IDIxSDVhMiAyIDAgMCAxLTItMnYtMicsIGtleTogJ2lvcWN6cicgfV0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgRm9jdXNcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOFkybHlZMnhsSUdONFBTSXhNaUlnWTNrOUlqRXlJaUJ5UFNJeklpQXZQZ29nSUR4d1lYUm9JR1E5SWsweklEZFdOV0V5SURJZ01DQXdJREVnTWkweWFESWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRURTNJRE5vTW1FeUlESWdNQ0F3SURFZ01pQXlkaklpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVEl4SURFM2RqSmhNaUF5SURBZ01DQXhMVElnTW1ndE1pSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk55QXlNVWcxWVRJZ01pQXdJREFnTVMweUxUSjJMVElpSUM4K0Nqd3ZjM1puUGdvPSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvZm9jdXNcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBGb2N1cyA9IGNyZWF0ZUx1Y2lkZUljb24oJ2ZvY3VzJywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IEZvY3VzO1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdNMiAxMmg2Jywga2V5OiAnMXdxaXF2JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTIyIDEyaC02Jywga2V5OiAnMWVnOWhjJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTEyIDJ2MicsIGtleTogJ3R1czAzbScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xMiA4djInLCBrZXk6ICcxd29xaXYnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTIgMTR2MicsIGtleTogJzhqY3h1ZCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xMiAyMHYyJywga2V5OiAnMWxoMWtnJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnbTE5IDktMyAzIDMgMycsIGtleTogJzEyb2wyMicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ201IDE1IDMtMy0zLTMnLCBrZXk6ICcxa2RoamMnIH1dLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIEZvbGRIb3Jpem9udGFsXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NaUF4TW1nMklpQXZQZ29nSUR4d1lYUm9JR1E5SWsweU1pQXhNbWd0TmlJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTVRJZ01uWXlJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHhNaUE0ZGpJaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRFeUlERTBkaklpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVEV5SURJd2RqSWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaWJURTVJRGt0TXlBeklETWdNeUlnTHo0S0lDQThjR0YwYUNCa1BTSnROU0F4TlNBekxUTXRNeTB6SWlBdlBnbzhMM04yWno0SykgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvZm9sZC1ob3Jpem9udGFsXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgRm9sZEhvcml6b250YWwgPSBjcmVhdGVMdWNpZGVJY29uKCdmb2xkLWhvcml6b250YWwnLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgRm9sZEhvcml6b250YWw7XG4iLCJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ00xMiAyMnYtNicsIGtleTogJzZvOHU2MScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xMiA4VjInLCBrZXk6ICcxd2tpZjMnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNNCAxMkgyJywga2V5OiAncmhjeG1pJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTEwIDEySDgnLCBrZXk6ICdzODhjeDEnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTYgMTJoLTInLCBrZXk6ICcxMGFzZ2InIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMjIgMTJoLTInLCBrZXk6ICcxNGpneWQnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdtMTUgMTktMy0zLTMgMycsIGtleTogJ2UzN3ltdScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ20xNSA1LTMgMy0zLTMnLCBrZXk6ICcxOWQ2bGYnIH1dLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIEZvbGRWZXJ0aWNhbFxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTVRJZ01qSjJMVFlpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVEV5SURoV01pSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk5DQXhNa2d5SWlBdlBnb2dJRHh3WVhSb0lHUTlJazB4TUNBeE1rZzRJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHhOaUF4TW1ndE1pSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk1qSWdNVEpvTFRJaUlDOCtDaUFnUEhCaGRHZ2daRDBpYlRFMUlERTVMVE10TXkweklETWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaWJURTFJRFV0TXlBekxUTXRNeUlnTHo0S1BDOXpkbWMrQ2c9PSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvZm9sZC12ZXJ0aWNhbFxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IEZvbGRWZXJ0aWNhbCA9IGNyZWF0ZUx1Y2lkZUljb24oJ2ZvbGQtdmVydGljYWwnLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgRm9sZFZlcnRpY2FsO1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbJ2NpcmNsZScsIHsgY3g6ICcxNScsIGN5OiAnMTknLCByOiAnMicsIGtleTogJ3UycHJvcycgfV0sXG4gIFtcbiAgICAncGF0aCcsXG4gICAge1xuICAgICAgZDogJ00yMC45IDE5LjhBMiAyIDAgMCAwIDIyIDE4VjhhMiAyIDAgMCAwLTItMmgtNy45YTIgMiAwIDAgMS0xLjY5LS45TDkuNiAzLjlBMiAyIDAgMCAwIDcuOTMgM0g0YTIgMiAwIDAgMC0yIDJ2MTNhMiAyIDAgMCAwIDIgMmg1LjEnLFxuICAgICAga2V5OiAnMWpqNDBrJyxcbiAgICB9LFxuICBdLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTUgMTF2LTEnLCBrZXk6ICdjbnRjcCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xNSAxN3YtMicsIGtleTogJzEyNzlqaicgfV0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgRm9sZGVyQXJjaGl2ZVxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4WTJseVkyeGxJR040UFNJeE5TSWdZM2s5SWpFNUlpQnlQU0l5SWlBdlBnb2dJRHh3WVhSb0lHUTlJazB5TUM0NUlERTVMamhCTWlBeUlEQWdNQ0F3SURJeUlERTRWamhoTWlBeUlEQWdNQ0F3TFRJdE1tZ3ROeTQ1WVRJZ01pQXdJREFnTVMweExqWTVMUzQ1VERrdU5pQXpMamxCTWlBeUlEQWdNQ0F3SURjdU9UTWdNMGcwWVRJZ01pQXdJREFnTUMweUlESjJNVE5oTWlBeUlEQWdNQ0F3SURJZ01tZzFMakVpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVEUxSURFeGRpMHhJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHhOU0F4TjNZdE1pSWdMejRLUEM5emRtYytDZz09KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9mb2xkZXItYXJjaGl2ZVxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IEZvbGRlckFyY2hpdmUgPSBjcmVhdGVMdWNpZGVJY29uKCdmb2xkZXItYXJjaGl2ZScsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBGb2xkZXJBcmNoaXZlO1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbXG4gICAgJ3BhdGgnLFxuICAgIHtcbiAgICAgIGQ6ICdNMjAgMjBhMiAyIDAgMCAwIDItMlY4YTIgMiAwIDAgMC0yLTJoLTcuOWEyIDIgMCAwIDEtMS42OS0uOUw5LjYgMy45QTIgMiAwIDAgMCA3LjkzIDNINGEyIDIgMCAwIDAtMiAydjEzYTIgMiAwIDAgMCAyIDJaJyxcbiAgICAgIGtleTogJzFrdDM2MCcsXG4gICAgfSxcbiAgXSxcbiAgWydwYXRoJywgeyBkOiAnbTkgMTMgMiAyIDQtNCcsIGtleTogJzYzNDNkdCcgfV0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgRm9sZGVyQ2hlY2tcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1qQWdNakJoTWlBeUlEQWdNQ0F3SURJdE1sWTRZVElnTWlBd0lEQWdNQzB5TFRKb0xUY3VPV0V5SURJZ01DQXdJREV0TVM0Mk9TMHVPVXc1TGpZZ015NDVRVElnTWlBd0lEQWdNQ0EzTGpreklETklOR0V5SURJZ01DQXdJREF0TWlBeWRqRXpZVElnTWlBd0lEQWdNQ0F5SURKYUlpQXZQZ29nSUR4d1lYUm9JR1E5SW0wNUlERXpJRElnTWlBMExUUWlJQzgrQ2p3dmMzWm5QZ289KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9mb2xkZXItY2hlY2tcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBGb2xkZXJDaGVjayA9IGNyZWF0ZUx1Y2lkZUljb24oJ2ZvbGRlci1jaGVjaycsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBGb2xkZXJDaGVjaztcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTE2IDE0djIuMmwxLjYgMScsIGtleTogJ2ZvNHFsNScgfV0sXG4gIFtcbiAgICAncGF0aCcsXG4gICAge1xuICAgICAgZDogJ003IDIwSDRhMiAyIDAgMCAxLTItMlY1YTIgMiAwIDAgMSAyLTJoMy45YTIgMiAwIDAgMSAxLjY5LjlsLjgxIDEuMmEyIDIgMCAwIDAgMS42Ny45SDIwYTIgMiAwIDAgMSAyIDInLFxuICAgICAga2V5OiAnMXVyaWZ1JyxcbiAgICB9LFxuICBdLFxuICBbJ2NpcmNsZScsIHsgY3g6ICcxNicsIGN5OiAnMTYnLCByOiAnNicsIGtleTogJ3FvbzNjNCcgfV0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgRm9sZGVyQ2xvY2tcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1UWWdNVFIyTWk0eWJERXVOaUF4SWlBdlBnb2dJRHh3WVhSb0lHUTlJazAzSURJd1NEUmhNaUF5SURBZ01DQXhMVEl0TWxZMVlUSWdNaUF3SURBZ01TQXlMVEpvTXk0NVlUSWdNaUF3SURBZ01TQXhMalk1TGpsc0xqZ3hJREV1TW1FeUlESWdNQ0F3SURBZ01TNDJOeTQ1U0RJd1lUSWdNaUF3SURBZ01TQXlJRElpSUM4K0NpQWdQR05wY21Oc1pTQmplRDBpTVRZaUlHTjVQU0l4TmlJZ2NqMGlOaUlnTHo0S1BDOXpkbWMrQ2c9PSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvZm9sZGVyLWNsb2NrXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgRm9sZGVyQ2xvY2sgPSBjcmVhdGVMdWNpZGVJY29uKCdmb2xkZXItY2xvY2snLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgRm9sZGVyQ2xvY2s7XG4iLCJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbXG4gIFtcbiAgICAncGF0aCcsXG4gICAge1xuICAgICAgZDogJ00yMCAyMGEyIDIgMCAwIDAgMi0yVjhhMiAyIDAgMCAwLTItMmgtNy45YTIgMiAwIDAgMS0xLjY5LS45TDkuNiAzLjlBMiAyIDAgMCAwIDcuOTMgM0g0YTIgMiAwIDAgMC0yIDJ2MTNhMiAyIDAgMCAwIDIgMlonLFxuICAgICAga2V5OiAnMWt0MzYwJyxcbiAgICB9LFxuICBdLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMiAxMGgyMCcsIGtleTogJzFpcjNkOCcgfV0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgRm9sZGVyQ2xvc2VkXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NakFnTWpCaE1pQXlJREFnTUNBd0lESXRNbFk0WVRJZ01pQXdJREFnTUMweUxUSm9MVGN1T1dFeUlESWdNQ0F3SURFdE1TNDJPUzB1T1V3NUxqWWdNeTQ1UVRJZ01pQXdJREFnTUNBM0xqa3pJRE5JTkdFeUlESWdNQ0F3SURBdE1pQXlkakV6WVRJZ01pQXdJREFnTUNBeUlESmFJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHlJREV3YURJd0lpQXZQZ284TDNOMlp6NEspIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2ZvbGRlci1jbG9zZWRcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBGb2xkZXJDbG9zZWQgPSBjcmVhdGVMdWNpZGVJY29uKCdmb2xkZXItY2xvc2VkJywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IEZvbGRlckNsb3NlZDtcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTEwIDEwLjUgOCAxM2wyIDIuNScsIGtleTogJ200dDljMScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ20xNCAxMC41IDIgMi41LTIgMi41Jywga2V5OiAnMTR3MmViJyB9XSxcbiAgW1xuICAgICdwYXRoJyxcbiAgICB7XG4gICAgICBkOiAnTTIwIDIwYTIgMiAwIDAgMCAyLTJWOGEyIDIgMCAwIDAtMi0yaC03LjlhMiAyIDAgMCAxLTEuNjktLjlMOS42IDMuOUEyIDIgMCAwIDAgNy45MyAzSDRhMiAyIDAgMCAwLTIgMnYxM2EyIDIgMCAwIDAgMiAyeicsXG4gICAgICBrZXk6ICcxdTFieGQnLFxuICAgIH0sXG4gIF0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgRm9sZGVyQ29kZVxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTVRBZ01UQXVOU0E0SURFemJESWdNaTQxSWlBdlBnb2dJRHh3WVhSb0lHUTlJbTB4TkNBeE1DNDFJRElnTWk0MUxUSWdNaTQxSWlBdlBnb2dJRHh3WVhSb0lHUTlJazB5TUNBeU1HRXlJRElnTUNBd0lEQWdNaTB5VmpoaE1pQXlJREFnTUNBd0xUSXRNbWd0Tnk0NVlUSWdNaUF3SURBZ01TMHhMalk1TFM0NVREa3VOaUF6TGpsQk1pQXlJREFnTUNBd0lEY3VPVE1nTTBnMFlUSWdNaUF3SURBZ01DMHlJREoyTVROaE1pQXlJREFnTUNBd0lESWdNbm9pSUM4K0Nqd3ZjM1puUGdvPSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvZm9sZGVyLWNvZGVcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBGb2xkZXJDb2RlID0gY3JlYXRlTHVjaWRlSWNvbignZm9sZGVyLWNvZGUnLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgRm9sZGVyQ29kZTtcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgW1xuICAgICdwYXRoJyxcbiAgICB7XG4gICAgICBkOiAnTTEwLjMgMjBINGEyIDIgMCAwIDEtMi0yVjVhMiAyIDAgMCAxIDItMmgzLjk4YTIgMiAwIDAgMSAxLjY5LjlsLjY2IDEuMkEyIDIgMCAwIDAgMTIgNmg4YTIgMiAwIDAgMSAyIDJ2My4zJyxcbiAgICAgIGtleTogJzEyOGR4dScsXG4gICAgfSxcbiAgXSxcbiAgWydwYXRoJywgeyBkOiAnbTE0LjMwNSAxOS41My45MjMtLjM4MicsIGtleTogJzNtNzhmYScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ20xNS4yMjggMTYuODUyLS45MjMtLjM4MycsIGtleTogJ25waXhhcicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ20xNi44NTIgMTUuMjI4LS4zODMtLjkyMycsIGtleTogJzV4Z2dyNycgfV0sXG4gIFsncGF0aCcsIHsgZDogJ20xNi44NTIgMjAuNzcyLS4zODMuOTI0Jywga2V5OiAnZHBmaGY5JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnbTE5LjE0OCAxNS4yMjguMzgzLS45MjMnLCBrZXk6ICcxcmV5eXonIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdtMTkuNTMgMjEuNjk2LS4zODItLjkyNCcsIGtleTogJzFnb2l2YycgfV0sXG4gIFsncGF0aCcsIHsgZDogJ20yMC43NzIgMTYuODUyLjkyNC0uMzgzJywga2V5OiAnaHRxa3BoJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnbTIwLjc3MiAxOS4xNDguOTI0LjM4MycsIGtleTogJzl3OXBqcCcgfV0sXG4gIFsnY2lyY2xlJywgeyBjeDogJzE4JywgY3k6ICcxOCcsIHI6ICczJywga2V5OiAnMXhrd3QwJyB9XSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBGb2xkZXJDb2dcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1UQXVNeUF5TUVnMFlUSWdNaUF3SURBZ01TMHlMVEpXTldFeUlESWdNQ0F3SURFZ01pMHlhRE11T1RoaE1pQXlJREFnTUNBeElERXVOamt1T1d3dU5qWWdNUzR5UVRJZ01pQXdJREFnTUNBeE1pQTJhRGhoTWlBeUlEQWdNQ0F4SURJZ01uWXpMak1pSUM4K0NpQWdQSEJoZEdnZ1pEMGliVEUwTGpNd05TQXhPUzQxTXk0NU1qTXRMak00TWlJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0p0TVRVdU1qSTRJREUyTGpnMU1pMHVPVEl6TFM0ek9ETWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaWJURTJMamcxTWlBeE5TNHlNamd0TGpNNE15MHVPVEl6SWlBdlBnb2dJRHh3WVhSb0lHUTlJbTB4Tmk0NE5USWdNakF1TnpjeUxTNHpPRE11T1RJMElpQXZQZ29nSUR4d1lYUm9JR1E5SW0weE9TNHhORGdnTVRVdU1qSTRMak00TXkwdU9USXpJaUF2UGdvZ0lEeHdZWFJvSUdROUltMHhPUzQxTXlBeU1TNDJPVFl0TGpNNE1pMHVPVEkwSWlBdlBnb2dJRHh3WVhSb0lHUTlJbTB5TUM0M056SWdNVFl1T0RVeUxqa3lOQzB1TXpneklpQXZQZ29nSUR4d1lYUm9JR1E5SW0weU1DNDNOeklnTVRrdU1UUTRMamt5TkM0ek9ETWlJQzgrQ2lBZ1BHTnBjbU5zWlNCamVEMGlNVGdpSUdONVBTSXhPQ0lnY2owaU15SWdMejRLUEM5emRtYytDZz09KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9mb2xkZXItY29nXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgRm9sZGVyQ29nID0gY3JlYXRlTHVjaWRlSWNvbignZm9sZGVyLWNvZycsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBGb2xkZXJDb2c7XG4iLCJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbXG4gIFtcbiAgICAncGF0aCcsXG4gICAge1xuICAgICAgZDogJ000IDIwaDE2YTIgMiAwIDAgMCAyLTJWOGEyIDIgMCAwIDAtMi0yaC03LjkzYTIgMiAwIDAgMS0xLjY2LS45bC0uODItMS4yQTIgMiAwIDAgMCA3LjkzIDNINGEyIDIgMCAwIDAtMiAydjEzYzAgMS4xLjkgMiAyIDJaJyxcbiAgICAgIGtleTogJzFmcjlkYycsXG4gICAgfSxcbiAgXSxcbiAgWydjaXJjbGUnLCB7IGN4OiAnMTInLCBjeTogJzEzJywgcjogJzEnLCBrZXk6ICc0OWw2MXUnIH1dLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIEZvbGRlckRvdFxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTkNBeU1HZ3hObUV5SURJZ01DQXdJREFnTWkweVZqaGhNaUF5SURBZ01DQXdMVEl0TW1ndE55NDVNMkV5SURJZ01DQXdJREV0TVM0Mk5pMHVPV3d0TGpneUxURXVNa0V5SURJZ01DQXdJREFnTnk0NU15QXpTRFJoTWlBeUlEQWdNQ0F3TFRJZ01uWXhNMk13SURFdU1TNDVJRElnTWlBeVdpSWdMejRLSUNBOFkybHlZMnhsSUdONFBTSXhNaUlnWTNrOUlqRXpJaUJ5UFNJeElpQXZQZ284TDNOMlp6NEspIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2ZvbGRlci1kb3RcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBGb2xkZXJEb3QgPSBjcmVhdGVMdWNpZGVJY29uKCdmb2xkZXItZG90JywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IEZvbGRlckRvdDtcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgW1xuICAgICdwYXRoJyxcbiAgICB7XG4gICAgICBkOiAnTTIwIDIwYTIgMiAwIDAgMCAyLTJWOGEyIDIgMCAwIDAtMi0yaC03LjlhMiAyIDAgMCAxLTEuNjktLjlMOS42IDMuOUEyIDIgMCAwIDAgNy45MyAzSDRhMiAyIDAgMCAwLTIgMnYxM2EyIDIgMCAwIDAgMiAyWicsXG4gICAgICBrZXk6ICcxa3QzNjAnLFxuICAgIH0sXG4gIF0sXG4gIFsncGF0aCcsIHsgZDogJ00xMiAxMHY2Jywga2V5OiAnMWJvczRlJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnbTE1IDEzLTMgMy0zLTMnLCBrZXk6ICc2ajJzZjAnIH1dLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIEZvbGRlckRvd25cbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1qQWdNakJoTWlBeUlEQWdNQ0F3SURJdE1sWTRZVElnTWlBd0lEQWdNQzB5TFRKb0xUY3VPV0V5SURJZ01DQXdJREV0TVM0Mk9TMHVPVXc1TGpZZ015NDVRVElnTWlBd0lEQWdNQ0EzTGpreklETklOR0V5SURJZ01DQXdJREF0TWlBeWRqRXpZVElnTWlBd0lEQWdNQ0F5SURKYUlpQXZQZ29nSUR4d1lYUm9JR1E5SWsweE1pQXhNSFkySWlBdlBnb2dJRHh3WVhSb0lHUTlJbTB4TlNBeE15MHpJRE10TXkweklpQXZQZ284TDNOMlp6NEspIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2ZvbGRlci1kb3duXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgRm9sZGVyRG93biA9IGNyZWF0ZUx1Y2lkZUljb24oJ2ZvbGRlci1kb3duJywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IEZvbGRlckRvd247XG4iLCJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbXG4gIFtcbiAgICAncGF0aCcsXG4gICAge1xuICAgICAgZDogJ005IDIwSDRhMiAyIDAgMCAxLTItMlY1YTIgMiAwIDAgMSAyLTJoMy45YTIgMiAwIDAgMSAxLjY5LjlsLjgxIDEuMmEyIDIgMCAwIDAgMS42Ny45SDIwYTIgMiAwIDAgMSAyIDJ2NScsXG4gICAgICBrZXk6ICcxdzZuamsnLFxuICAgIH0sXG4gIF0sXG4gIFsnY2lyY2xlJywgeyBjeDogJzEzJywgY3k6ICcxMicsIHI6ICcyJywga2V5OiAnMWo5Mmc2JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTE4IDE5Yy0yLjggMC01LTIuMi01LTV2OCcsIGtleTogJ3BrcHcyaCcgfV0sXG4gIFsnY2lyY2xlJywgeyBjeDogJzIwJywgY3k6ICcxOScsIHI6ICcyJywga2V5OiAnMW9ibnNwJyB9XSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBGb2xkZXJHaXQyXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5PU0F5TUVnMFlUSWdNaUF3SURBZ01TMHlMVEpXTldFeUlESWdNQ0F3SURFZ01pMHlhRE11T1dFeUlESWdNQ0F3SURFZ01TNDJPUzQ1YkM0NE1TQXhMakpoTWlBeUlEQWdNQ0F3SURFdU5qY3VPVWd5TUdFeUlESWdNQ0F3SURFZ01pQXlkalVpSUM4K0NpQWdQR05wY21Oc1pTQmplRDBpTVRNaUlHTjVQU0l4TWlJZ2NqMGlNaUlnTHo0S0lDQThjR0YwYUNCa1BTSk5NVGdnTVRsakxUSXVPQ0F3TFRVdE1pNHlMVFV0TlhZNElpQXZQZ29nSUR4amFYSmpiR1VnWTNnOUlqSXdJaUJqZVQwaU1Ua2lJSEk5SWpJaUlDOCtDand2YzNablBnbz0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2ZvbGRlci1naXQtMlxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IEZvbGRlckdpdDIgPSBjcmVhdGVMdWNpZGVJY29uKCdmb2xkZXItZ2l0LTInLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgRm9sZGVyR2l0MjtcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgWydjaXJjbGUnLCB7IGN4OiAnMTInLCBjeTogJzEzJywgcjogJzInLCBrZXk6ICcxYzFsanMnIH1dLFxuICBbXG4gICAgJ3BhdGgnLFxuICAgIHtcbiAgICAgIGQ6ICdNMjAgMjBhMiAyIDAgMCAwIDItMlY4YTIgMiAwIDAgMC0yLTJoLTcuOWEyIDIgMCAwIDEtMS42OS0uOUw5LjYgMy45QTIgMiAwIDAgMCA3LjkzIDNINGEyIDIgMCAwIDAtMiAydjEzYTIgMiAwIDAgMCAyIDJaJyxcbiAgICAgIGtleTogJzFrdDM2MCcsXG4gICAgfSxcbiAgXSxcbiAgWydwYXRoJywgeyBkOiAnTTE0IDEzaDMnLCBrZXk6ICcxZGdlZGYnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNNyAxM2gzJywga2V5OiAnMXB5Z3E3JyB9XSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBGb2xkZXJHaXRcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOFkybHlZMnhsSUdONFBTSXhNaUlnWTNrOUlqRXpJaUJ5UFNJeUlpQXZQZ29nSUR4d1lYUm9JR1E5SWsweU1DQXlNR0V5SURJZ01DQXdJREFnTWkweVZqaGhNaUF5SURBZ01DQXdMVEl0TW1ndE55NDVZVElnTWlBd0lEQWdNUzB4TGpZNUxTNDVURGt1TmlBekxqbEJNaUF5SURBZ01DQXdJRGN1T1RNZ00wZzBZVElnTWlBd0lEQWdNQzB5SURKMk1UTmhNaUF5SURBZ01DQXdJRElnTWxvaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRFMElERXphRE1pSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVGNnTVROb015SWdMejRLUEM5emRtYytDZz09KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9mb2xkZXItZ2l0XG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgRm9sZGVyR2l0ID0gY3JlYXRlTHVjaWRlSWNvbignZm9sZGVyLWdpdCcsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBGb2xkZXJHaXQ7XG4iLCJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbXG4gIFtcbiAgICAncGF0aCcsXG4gICAge1xuICAgICAgZDogJ00xMSAyMEg0YTIgMiAwIDAgMS0yLTJWNWEyIDIgMCAwIDEgMi0yaDMuOWEyIDIgMCAwIDEgMS42OS45bC44MSAxLjJhMiAyIDAgMCAwIDEuNjcuOUgyMGEyIDIgMCAwIDEgMiAydjEuNScsXG4gICAgICBrZXk6ICc2aHVkOGsnLFxuICAgIH0sXG4gIF0sXG4gIFtcbiAgICAncGF0aCcsXG4gICAge1xuICAgICAgZDogJ00xMy45IDE3LjQ1Yy0xLjItMS4yLTEuMTQtMi44LS4yLTMuNzNhMi40MyAyLjQzIDAgMCAxIDMuNDQgMGwuMzYuMzQuMzQtLjM0YTIuNDMgMi40MyAwIDAgMSAzLjQ1LS4wMWMuOTUuOTUgMSAyLjUzLS4yIDMuNzRMMTcuNSAyMVonLFxuICAgICAga2V5OiAnd3BmZjU4JyxcbiAgICB9LFxuICBdLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIEZvbGRlckhlYXJ0XG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NVEVnTWpCSU5HRXlJRElnTUNBd0lERXRNaTB5VmpWaE1pQXlJREFnTUNBeElESXRNbWd6TGpsaE1pQXlJREFnTUNBeElERXVOamt1T1d3dU9ERWdNUzR5WVRJZ01pQXdJREFnTUNBeExqWTNMamxJTWpCaE1pQXlJREFnTUNBeElESWdNbll4TGpVaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRFekxqa2dNVGN1TkRWakxURXVNaTB4TGpJdE1TNHhOQzB5TGpndExqSXRNeTQzTTJFeUxqUXpJREl1TkRNZ01DQXdJREVnTXk0ME5DQXdiQzR6Tmk0ek5DNHpOQzB1TXpSaE1pNDBNeUF5TGpReklEQWdNQ0F4SURNdU5EVXRMakF4WXk0NU5TNDVOU0F4SURJdU5UTXRMaklnTXk0M05Fd3hOeTQxSURJeFdpSWdMejRLUEM5emRtYytDZz09KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9mb2xkZXItaGVhcnRcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBGb2xkZXJIZWFydCA9IGNyZWF0ZUx1Y2lkZUljb24oJ2ZvbGRlci1oZWFydCcsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBGb2xkZXJIZWFydDtcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgW1xuICAgICdwYXRoJyxcbiAgICB7XG4gICAgICBkOiAnTTIgOVY1YTIgMiAwIDAgMSAyLTJoMy45YTIgMiAwIDAgMSAxLjY5LjlsLjgxIDEuMmEyIDIgMCAwIDAgMS42Ny45SDIwYTIgMiAwIDAgMSAyIDJ2MTBhMiAyIDAgMCAxLTIgMkg0YTIgMiAwIDAgMS0yLTJ2LTEnLFxuICAgICAga2V5OiAnZm00ZzV0JyxcbiAgICB9LFxuICBdLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMiAxM2gxMCcsIGtleTogJ3BnYjJkcScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ205IDE2IDMtMy0zLTMnLCBrZXk6ICc2bTkxaWMnIH1dLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIEZvbGRlcklucHV0XG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NaUE1VmpWaE1pQXlJREFnTUNBeElESXRNbWd6TGpsaE1pQXlJREFnTUNBeElERXVOamt1T1d3dU9ERWdNUzR5WVRJZ01pQXdJREFnTUNBeExqWTNMamxJTWpCaE1pQXlJREFnTUNBeElESWdNbll4TUdFeUlESWdNQ0F3SURFdE1pQXlTRFJoTWlBeUlEQWdNQ0F4TFRJdE1uWXRNU0lnTHo0S0lDQThjR0YwYUNCa1BTSk5NaUF4TTJneE1DSWdMejRLSUNBOGNHRjBhQ0JrUFNKdE9TQXhOaUF6TFRNdE15MHpJaUF2UGdvOEwzTjJaejRLKSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9mb2xkZXItaW5wdXRcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBGb2xkZXJJbnB1dCA9IGNyZWF0ZUx1Y2lkZUljb24oJ2ZvbGRlci1pbnB1dCcsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBGb2xkZXJJbnB1dDtcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgW1xuICAgICdwYXRoJyxcbiAgICB7XG4gICAgICBkOiAnTTQgMjBoMTZhMiAyIDAgMCAwIDItMlY4YTIgMiAwIDAgMC0yLTJoLTcuOTNhMiAyIDAgMCAxLTEuNjYtLjlsLS44Mi0xLjJBMiAyIDAgMCAwIDcuOTMgM0g0YTIgMiAwIDAgMC0yIDJ2MTNjMCAxLjEuOSAyIDIgMlonLFxuICAgICAga2V5OiAnMWZyOWRjJyxcbiAgICB9LFxuICBdLFxuICBbJ3BhdGgnLCB7IGQ6ICdNOCAxMHY0Jywga2V5OiAndGdweHFrJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTEyIDEwdjInLCBrZXk6ICdoaDUzbzEnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTYgMTB2NicsIGtleTogJzFkNnh5cycgfV0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgRm9sZGVyS2FuYmFuXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5OQ0F5TUdneE5tRXlJRElnTUNBd0lEQWdNaTB5VmpoaE1pQXlJREFnTUNBd0xUSXRNbWd0Tnk0NU0yRXlJRElnTUNBd0lERXRNUzQyTmkwdU9Xd3RMamd5TFRFdU1rRXlJRElnTUNBd0lEQWdOeTQ1TXlBelNEUmhNaUF5SURBZ01DQXdMVElnTW5ZeE0yTXdJREV1TVM0NUlESWdNaUF5V2lJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOT0NBeE1IWTBJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHhNaUF4TUhZeUlpQXZQZ29nSUR4d1lYUm9JR1E5SWsweE5pQXhNSFkySWlBdlBnbzhMM04yWno0SykgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvZm9sZGVyLWthbmJhblxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IEZvbGRlckthbmJhbiA9IGNyZWF0ZUx1Y2lkZUljb24oJ2ZvbGRlci1rYW5iYW4nLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgRm9sZGVyS2FuYmFuO1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbJ2NpcmNsZScsIHsgY3g6ICcxNicsIGN5OiAnMjAnLCByOiAnMicsIGtleTogJzF2aWZ2ZycgfV0sXG4gIFtcbiAgICAncGF0aCcsXG4gICAge1xuICAgICAgZDogJ00xMCAyMEg0YTIgMiAwIDAgMS0yLTJWNWEyIDIgMCAwIDEgMi0yaDMuOWEyIDIgMCAwIDEgMS42OS45bC44MSAxLjJhMiAyIDAgMCAwIDEuNjcuOUgyMGEyIDIgMCAwIDEgMiAydjInLFxuICAgICAga2V5OiAnM2hnbzlwJyxcbiAgICB9LFxuICBdLFxuICBbJ3BhdGgnLCB7IGQ6ICdtMjIgMTQtNC41IDQuNScsIGtleTogJzFlZjZ6OCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ20yMSAxNSAxIDEnLCBrZXk6ICcxZWpjcHknIH1dLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIEZvbGRlcktleVxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4WTJseVkyeGxJR040UFNJeE5pSWdZM2s5SWpJd0lpQnlQU0l5SWlBdlBnb2dJRHh3WVhSb0lHUTlJazB4TUNBeU1FZzBZVElnTWlBd0lEQWdNUzB5TFRKV05XRXlJRElnTUNBd0lERWdNaTB5YURNdU9XRXlJRElnTUNBd0lERWdNUzQyT1M0NWJDNDRNU0F4TGpKaE1pQXlJREFnTUNBd0lERXVOamN1T1VneU1HRXlJRElnTUNBd0lERWdNaUF5ZGpJaUlDOCtDaUFnUEhCaGRHZ2daRDBpYlRJeUlERTBMVFF1TlNBMExqVWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaWJUSXhJREUxSURFZ01TSWdMejRLUEM5emRtYytDZz09KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9mb2xkZXIta2V5XG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgRm9sZGVyS2V5ID0gY3JlYXRlTHVjaWRlSWNvbignZm9sZGVyLWtleScsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBGb2xkZXJLZXk7XG4iLCJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ005IDEzaDYnLCBrZXk6ICcxdWhlOHEnIH1dLFxuICBbXG4gICAgJ3BhdGgnLFxuICAgIHtcbiAgICAgIGQ6ICdNMjAgMjBhMiAyIDAgMCAwIDItMlY4YTIgMiAwIDAgMC0yLTJoLTcuOWEyIDIgMCAwIDEtMS42OS0uOUw5LjYgMy45QTIgMiAwIDAgMCA3LjkzIDNINGEyIDIgMCAwIDAtMiAydjEzYTIgMiAwIDAgMCAyIDJaJyxcbiAgICAgIGtleTogJzFrdDM2MCcsXG4gICAgfSxcbiAgXSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBGb2xkZXJNaW51c1xuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOT1NBeE0yZzJJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHlNQ0F5TUdFeUlESWdNQ0F3SURBZ01pMHlWamhoTWlBeUlEQWdNQ0F3TFRJdE1tZ3ROeTQ1WVRJZ01pQXdJREFnTVMweExqWTVMUzQ1VERrdU5pQXpMamxCTWlBeUlEQWdNQ0F3SURjdU9UTWdNMGcwWVRJZ01pQXdJREFnTUMweUlESjJNVE5oTWlBeUlEQWdNQ0F3SURJZ01sb2lJQzgrQ2p3dmMzWm5QZ289KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9mb2xkZXItbWludXNcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBGb2xkZXJNaW51cyA9IGNyZWF0ZUx1Y2lkZUljb24oJ2ZvbGRlci1taW51cycsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBGb2xkZXJNaW51cztcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgWydyZWN0JywgeyB3aWR0aDogJzgnLCBoZWlnaHQ6ICc1JywgeDogJzE0JywgeTogJzE3Jywgcng6ICcxJywga2V5OiAnMTlhYWlzJyB9XSxcbiAgW1xuICAgICdwYXRoJyxcbiAgICB7XG4gICAgICBkOiAnTTEwIDIwSDRhMiAyIDAgMCAxLTItMlY1YTIgMiAwIDAgMSAyLTJoMy45YTIgMiAwIDAgMSAxLjY5LjlsLjgxIDEuMmEyIDIgMCAwIDAgMS42Ny45SDIwYTIgMiAwIDAgMSAyIDJ2Mi41JyxcbiAgICAgIGtleTogJzF3NnY3dCcsXG4gICAgfSxcbiAgXSxcbiAgWydwYXRoJywgeyBkOiAnTTIwIDE3di0yYTIgMiAwIDEgMC00IDB2MicsIGtleTogJ3B3YXhucicgfV0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgRm9sZGVyTG9ja1xuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y21WamRDQjNhV1IwYUQwaU9DSWdhR1ZwWjJoMFBTSTFJaUI0UFNJeE5DSWdlVDBpTVRjaUlISjRQU0l4SWlBdlBnb2dJRHh3WVhSb0lHUTlJazB4TUNBeU1FZzBZVElnTWlBd0lEQWdNUzB5TFRKV05XRXlJRElnTUNBd0lERWdNaTB5YURNdU9XRXlJRElnTUNBd0lERWdNUzQyT1M0NWJDNDRNU0F4TGpKaE1pQXlJREFnTUNBd0lERXVOamN1T1VneU1HRXlJRElnTUNBd0lERWdNaUF5ZGpJdU5TSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk1qQWdNVGQyTFRKaE1pQXlJREFnTVNBd0xUUWdNSFl5SWlBdlBnbzhMM04yWno0SykgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvZm9sZGVyLWxvY2tcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBGb2xkZXJMb2NrID0gY3JlYXRlTHVjaWRlSWNvbignZm9sZGVyLWxvY2snLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgRm9sZGVyTG9jaztcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgW1xuICAgICdwYXRoJyxcbiAgICB7XG4gICAgICBkOiAnbTYgMTQgMS40NS0yLjlBMiAyIDAgMCAxIDkuMjQgMTBIMjBhMiAyIDAgMCAxIDEuOTQgMi41bC0xLjU1IDZhMiAyIDAgMCAxLTEuOTQgMS41SDRhMiAyIDAgMCAxLTItMlY1YzAtMS4xLjktMiAyLTJoMy45M2EyIDIgMCAwIDEgMS42Ni45bC44MiAxLjJhMiAyIDAgMCAwIDEuNjYuOUgxOGEyIDIgMCAwIDEgMiAydjInLFxuICAgICAga2V5OiAnMW5tdmxtJyxcbiAgICB9LFxuICBdLFxuICBbJ2NpcmNsZScsIHsgY3g6ICcxNCcsIGN5OiAnMTUnLCByOiAnMScsIGtleTogJzFnbTRxaicgfV0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgRm9sZGVyT3BlbkRvdFxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0p0TmlBeE5DQXhMalExTFRJdU9VRXlJRElnTUNBd0lERWdPUzR5TkNBeE1FZ3lNR0V5SURJZ01DQXdJREVnTVM0NU5DQXlMalZzTFRFdU5UVWdObUV5SURJZ01DQXdJREV0TVM0NU5DQXhMalZJTkdFeUlESWdNQ0F3SURFdE1pMHlWalZqTUMweExqRXVPUzB5SURJdE1tZ3pMamt6WVRJZ01pQXdJREFnTVNBeExqWTJMamxzTGpneUlERXVNbUV5SURJZ01DQXdJREFnTVM0Mk5pNDVTREU0WVRJZ01pQXdJREFnTVNBeUlESjJNaUlnTHo0S0lDQThZMmx5WTJ4bElHTjRQU0l4TkNJZ1kzazlJakUxSWlCeVBTSXhJaUF2UGdvOEwzTjJaejRLKSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9mb2xkZXItb3Blbi1kb3RcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBGb2xkZXJPcGVuRG90ID0gY3JlYXRlTHVjaWRlSWNvbignZm9sZGVyLW9wZW4tZG90JywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IEZvbGRlck9wZW5Eb3Q7XG4iLCJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbXG4gIFtcbiAgICAncGF0aCcsXG4gICAge1xuICAgICAgZDogJ202IDE0IDEuNS0yLjlBMiAyIDAgMCAxIDkuMjQgMTBIMjBhMiAyIDAgMCAxIDEuOTQgMi41bC0xLjU0IDZhMiAyIDAgMCAxLTEuOTUgMS41SDRhMiAyIDAgMCAxLTItMlY1YTIgMiAwIDAgMSAyLTJoMy45YTIgMiAwIDAgMSAxLjY5LjlsLjgxIDEuMmEyIDIgMCAwIDAgMS42Ny45SDE4YTIgMiAwIDAgMSAyIDJ2MicsXG4gICAgICBrZXk6ICd1c2RrYTAnLFxuICAgIH0sXG4gIF0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgRm9sZGVyT3BlblxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0p0TmlBeE5DQXhMalV0TWk0NVFUSWdNaUF3SURBZ01TQTVMakkwSURFd1NESXdZVElnTWlBd0lEQWdNU0F4TGprMElESXVOV3d0TVM0MU5DQTJZVElnTWlBd0lEQWdNUzB4TGprMUlERXVOVWcwWVRJZ01pQXdJREFnTVMweUxUSldOV0V5SURJZ01DQXdJREVnTWkweWFETXVPV0V5SURJZ01DQXdJREVnTVM0Mk9TNDViQzQ0TVNBeExqSmhNaUF5SURBZ01DQXdJREV1TmpjdU9VZ3hPR0V5SURJZ01DQXdJREVnTWlBeWRqSWlJQzgrQ2p3dmMzWm5QZ289KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9mb2xkZXItb3BlblxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IEZvbGRlck9wZW4gPSBjcmVhdGVMdWNpZGVJY29uKCdmb2xkZXItb3BlbicsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBGb2xkZXJPcGVuO1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbXG4gICAgJ3BhdGgnLFxuICAgIHtcbiAgICAgIGQ6ICdNMiA3LjVWNWEyIDIgMCAwIDEgMi0yaDMuOWEyIDIgMCAwIDEgMS42OS45bC44MSAxLjJhMiAyIDAgMCAwIDEuNjcuOUgyMGEyIDIgMCAwIDEgMiAydjEwYTIgMiAwIDAgMS0yIDJINGEyIDIgMCAwIDEtMi0xLjUnLFxuICAgICAga2V5OiAnMXlrN2FqJyxcbiAgICB9LFxuICBdLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMiAxM2gxMCcsIGtleTogJ3BnYjJkcScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ201IDEwLTMgMyAzIDMnLCBrZXk6ICcxcjhpZTAnIH1dLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIEZvbGRlck91dHB1dFxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTWlBM0xqVldOV0V5SURJZ01DQXdJREVnTWkweWFETXVPV0V5SURJZ01DQXdJREVnTVM0Mk9TNDViQzQ0TVNBeExqSmhNaUF5SURBZ01DQXdJREV1TmpjdU9VZ3lNR0V5SURJZ01DQXdJREVnTWlBeWRqRXdZVElnTWlBd0lEQWdNUzB5SURKSU5HRXlJRElnTUNBd0lERXRNaTB4TGpVaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRJZ01UTm9NVEFpSUM4K0NpQWdQSEJoZEdnZ1pEMGliVFVnTVRBdE15QXpJRE1nTXlJZ0x6NEtQQzl6ZG1jK0NnPT0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2ZvbGRlci1vdXRwdXRcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBGb2xkZXJPdXRwdXQgPSBjcmVhdGVMdWNpZGVJY29uKCdmb2xkZXItb3V0cHV0JywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IEZvbGRlck91dHB1dDtcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgW1xuICAgICdwYXRoJyxcbiAgICB7XG4gICAgICBkOiAnTTIgMTEuNVY1YTIgMiAwIDAgMSAyLTJoMy45Yy43IDAgMS4zLjMgMS43LjlsLjggMS4yYy40LjYgMSAuOSAxLjcuOUgyMGEyIDIgMCAwIDEgMiAydjEwYTIgMiAwIDAgMS0yIDJoLTkuNScsXG4gICAgICBrZXk6ICdhOHhxczAnLFxuICAgIH0sXG4gIF0sXG4gIFtcbiAgICAncGF0aCcsXG4gICAge1xuICAgICAgZDogJ00xMS4zNzggMTMuNjI2YTEgMSAwIDEgMC0zLjAwNC0zLjAwNGwtNS4wMSA1LjAxMmEyIDIgMCAwIDAtLjUwNi44NTRsLS44MzcgMi44N2EuNS41IDAgMCAwIC42Mi42MmwyLjg3LS44MzdhMiAyIDAgMCAwIC44NTQtLjUwNnonLFxuICAgICAga2V5OiAnMXNha3RqJyxcbiAgICB9LFxuICBdLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIEZvbGRlclBlblxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTWlBeE1TNDFWalZoTWlBeUlEQWdNQ0F4SURJdE1tZ3pMamxqTGpjZ01DQXhMak11TXlBeExqY3VPV3d1T0NBeExqSmpMalF1TmlBeElDNDVJREV1Tnk0NVNESXdZVElnTWlBd0lEQWdNU0F5SURKMk1UQmhNaUF5SURBZ01DQXhMVElnTW1ndE9TNDFJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHhNUzR6TnpnZ01UTXVOakkyWVRFZ01TQXdJREVnTUMwekxqQXdOQzB6TGpBd05Hd3ROUzR3TVNBMUxqQXhNbUV5SURJZ01DQXdJREF0TGpVd05pNDROVFJzTFM0NE16Y2dNaTQ0TjJFdU5TNDFJREFnTUNBd0lDNDJNaTQyTW13eUxqZzNMUzQ0TXpkaE1pQXlJREFnTUNBd0lDNDROVFF0TGpVd05ub2lJQzgrQ2p3dmMzWm5QZ289KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9mb2xkZXItcGVuXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgRm9sZGVyUGVuID0gY3JlYXRlTHVjaWRlSWNvbignZm9sZGVyLXBlbicsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBGb2xkZXJQZW47XG4iLCJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ00xMiAxMHY2Jywga2V5OiAnMWJvczRlJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTkgMTNoNicsIGtleTogJzF1aGU4cScgfV0sXG4gIFtcbiAgICAncGF0aCcsXG4gICAge1xuICAgICAgZDogJ00yMCAyMGEyIDIgMCAwIDAgMi0yVjhhMiAyIDAgMCAwLTItMmgtNy45YTIgMiAwIDAgMS0xLjY5LS45TDkuNiAzLjlBMiAyIDAgMCAwIDcuOTMgM0g0YTIgMiAwIDAgMC0yIDJ2MTNhMiAyIDAgMCAwIDIgMlonLFxuICAgICAga2V5OiAnMWt0MzYwJyxcbiAgICB9LFxuICBdLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIEZvbGRlclBsdXNcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1USWdNVEIyTmlJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOT1NBeE0yZzJJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHlNQ0F5TUdFeUlESWdNQ0F3SURBZ01pMHlWamhoTWlBeUlEQWdNQ0F3TFRJdE1tZ3ROeTQ1WVRJZ01pQXdJREFnTVMweExqWTVMUzQ1VERrdU5pQXpMamxCTWlBeUlEQWdNQ0F3SURjdU9UTWdNMGcwWVRJZ01pQXdJREFnTUMweUlESjJNVE5oTWlBeUlEQWdNQ0F3SURJZ01sb2lJQzgrQ2p3dmMzWm5QZ289KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9mb2xkZXItcGx1c1xuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IEZvbGRlclBsdXMgPSBjcmVhdGVMdWNpZGVJY29uKCdmb2xkZXItcGx1cycsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBGb2xkZXJQbHVzO1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbXG4gICAgJ3BhdGgnLFxuICAgIHtcbiAgICAgIGQ6ICdNNCAyMGgxNmEyIDIgMCAwIDAgMi0yVjhhMiAyIDAgMCAwLTItMmgtNy45M2EyIDIgMCAwIDEtMS42Ni0uOWwtLjgyLTEuMkEyIDIgMCAwIDAgNy45MyAzSDRhMiAyIDAgMCAwLTIgMnYxM2MwIDEuMS45IDIgMiAyWicsXG4gICAgICBrZXk6ICcxZnI5ZGMnLFxuICAgIH0sXG4gIF0sXG4gIFsnY2lyY2xlJywgeyBjeDogJzEyJywgY3k6ICcxMycsIHI6ICcyJywga2V5OiAnMWMxbGpzJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTEyIDE1djUnLCBrZXk6ICcxMXh2YTEnIH1dLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIEZvbGRlclJvb3RcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk5DQXlNR2d4Tm1FeUlESWdNQ0F3SURBZ01pMHlWamhoTWlBeUlEQWdNQ0F3TFRJdE1tZ3ROeTQ1TTJFeUlESWdNQ0F3SURFdE1TNDJOaTB1T1d3dExqZ3lMVEV1TWtFeUlESWdNQ0F3SURBZ055NDVNeUF6U0RSaE1pQXlJREFnTUNBd0xUSWdNbll4TTJNd0lERXVNUzQ1SURJZ01pQXlXaUlnTHo0S0lDQThZMmx5WTJ4bElHTjRQU0l4TWlJZ1kzazlJakV6SWlCeVBTSXlJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHhNaUF4TlhZMUlpQXZQZ284TDNOMlp6NEspIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2ZvbGRlci1yb290XG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgRm9sZGVyUm9vdCA9IGNyZWF0ZUx1Y2lkZUljb24oJ2ZvbGRlci1yb290JywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IEZvbGRlclJvb3Q7XG4iLCJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbXG4gIFsnY2lyY2xlJywgeyBjeDogJzExLjUnLCBjeTogJzEyLjUnLCByOiAnMi41Jywga2V5OiAnMWVhNWp1JyB9XSxcbiAgW1xuICAgICdwYXRoJyxcbiAgICB7XG4gICAgICBkOiAnTTIwIDIwYTIgMiAwIDAgMCAyLTJWOGEyIDIgMCAwIDAtMi0yaC03LjlhMiAyIDAgMCAxLTEuNjktLjlMOS42IDMuOUEyIDIgMCAwIDAgNy45MyAzSDRhMiAyIDAgMCAwLTIgMnYxM2EyIDIgMCAwIDAgMiAyWicsXG4gICAgICBrZXk6ICcxa3QzNjAnLFxuICAgIH0sXG4gIF0sXG4gIFsncGF0aCcsIHsgZDogJ00xMy4zIDE0LjMgMTUgMTYnLCBrZXk6ICcxeTR2MW4nIH1dLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIEZvbGRlclNlYXJjaDJcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOFkybHlZMnhsSUdONFBTSXhNUzQxSWlCamVUMGlNVEl1TlNJZ2NqMGlNaTQxSWlBdlBnb2dJRHh3WVhSb0lHUTlJazB5TUNBeU1HRXlJRElnTUNBd0lEQWdNaTB5VmpoaE1pQXlJREFnTUNBd0xUSXRNbWd0Tnk0NVlUSWdNaUF3SURBZ01TMHhMalk1TFM0NVREa3VOaUF6TGpsQk1pQXlJREFnTUNBd0lEY3VPVE1nTTBnMFlUSWdNaUF3SURBZ01DMHlJREoyTVROaE1pQXlJREFnTUNBd0lESWdNbG9pSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVEV6TGpNZ01UUXVNeUF4TlNBeE5pSWdMejRLUEM5emRtYytDZz09KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9mb2xkZXItc2VhcmNoLTJcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBGb2xkZXJTZWFyY2gyID0gY3JlYXRlTHVjaWRlSWNvbignZm9sZGVyLXNlYXJjaC0yJywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IEZvbGRlclNlYXJjaDI7XG4iLCJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbXG4gIFtcbiAgICAncGF0aCcsXG4gICAge1xuICAgICAgZDogJ00xMC43IDIwSDRhMiAyIDAgMCAxLTItMlY1YTIgMiAwIDAgMSAyLTJoMy45YTIgMiAwIDAgMSAxLjY5LjlsLjgxIDEuMmEyIDIgMCAwIDAgMS42Ny45SDIwYTIgMiAwIDAgMSAyIDJ2NC4xJyxcbiAgICAgIGtleTogJzFidzVtNycsXG4gICAgfSxcbiAgXSxcbiAgWydwYXRoJywgeyBkOiAnbTIxIDIxLTEuOS0xLjknLCBrZXk6ICcxZzJuOXInIH1dLFxuICBbJ2NpcmNsZScsIHsgY3g6ICcxNycsIGN5OiAnMTcnLCByOiAnMycsIGtleTogJzE4YjQ5eScgfV0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgRm9sZGVyU2VhcmNoXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NVEF1TnlBeU1FZzBZVElnTWlBd0lEQWdNUzB5TFRKV05XRXlJRElnTUNBd0lERWdNaTB5YURNdU9XRXlJRElnTUNBd0lERWdNUzQyT1M0NWJDNDRNU0F4TGpKaE1pQXlJREFnTUNBd0lERXVOamN1T1VneU1HRXlJRElnTUNBd0lERWdNaUF5ZGpRdU1TSWdMejRLSUNBOGNHRjBhQ0JrUFNKdE1qRWdNakV0TVM0NUxURXVPU0lnTHo0S0lDQThZMmx5WTJ4bElHTjRQU0l4TnlJZ1kzazlJakUzSWlCeVBTSXpJaUF2UGdvOEwzTjJaejRLKSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9mb2xkZXItc2VhcmNoXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgRm9sZGVyU2VhcmNoID0gY3JlYXRlTHVjaWRlSWNvbignZm9sZGVyLXNlYXJjaCcsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBGb2xkZXJTZWFyY2g7XG4iLCJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbXG4gIFtcbiAgICAncGF0aCcsXG4gICAge1xuICAgICAgZDogJ00yIDlWNWEyIDIgMCAwIDEgMi0yaDMuOWEyIDIgMCAwIDEgMS42OS45bC44MSAxLjJhMiAyIDAgMCAwIDEuNjcuOUgyMGEyIDIgMCAwIDEgMiAydjEwYTIgMiAwIDAgMS0yIDJINGEyIDIgMCAwIDEtMi0ydi0zYTIgMiAwIDAgMSAyLTJoNycsXG4gICAgICBrZXk6ICd4MWMwN2wnLFxuICAgIH0sXG4gIF0sXG4gIFsncGF0aCcsIHsgZDogJ204IDE2IDMtMy0zLTMnLCBrZXk6ICdybHFydDEnIH1dLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIEZvbGRlclN5bWxpbmtcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1pQTVWalZoTWlBeUlEQWdNQ0F4SURJdE1tZ3pMamxoTWlBeUlEQWdNQ0F4SURFdU5qa3VPV3d1T0RFZ01TNHlZVElnTWlBd0lEQWdNQ0F4TGpZM0xqbElNakJoTWlBeUlEQWdNQ0F4SURJZ01uWXhNR0V5SURJZ01DQXdJREV0TWlBeVNEUmhNaUF5SURBZ01DQXhMVEl0TW5ZdE0yRXlJRElnTUNBd0lERWdNaTB5YURjaUlDOCtDaUFnUEhCaGRHZ2daRDBpYlRnZ01UWWdNeTB6TFRNdE15SWdMejRLUEM5emRtYytDZz09KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9mb2xkZXItc3ltbGlua1xuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IEZvbGRlclN5bWxpbmsgPSBjcmVhdGVMdWNpZGVJY29uKCdmb2xkZXItc3ltbGluaycsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBGb2xkZXJTeW1saW5rO1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbXG4gICAgJ3BhdGgnLFxuICAgIHtcbiAgICAgIGQ6ICdNOSAyMEg0YTIgMiAwIDAgMS0yLTJWNWEyIDIgMCAwIDEgMi0yaDMuOWEyIDIgMCAwIDEgMS42OS45bC44MSAxLjJhMiAyIDAgMCAwIDEuNjcuOUgyMGEyIDIgMCAwIDEgMiAydi41JyxcbiAgICAgIGtleTogJzFka29hOScsXG4gICAgfSxcbiAgXSxcbiAgWydwYXRoJywgeyBkOiAnTTEyIDEwdjRoNCcsIGtleTogJzFjemhtdCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ20xMiAxNCAxLjUzNS0xLjYwNWE1IDUgMCAwIDEgOCAxLjUnLCBrZXk6ICdsdnV4ZmknIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMjIgMjJ2LTRoLTQnLCBrZXk6ICcxZXdwNHEnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdtMjIgMTgtMS41MzUgMS42MDVhNSA1IDAgMCAxLTgtMS41Jywga2V5OiAnMTR5bmMwJyB9XSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBGb2xkZXJTeW5jXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5PU0F5TUVnMFlUSWdNaUF3SURBZ01TMHlMVEpXTldFeUlESWdNQ0F3SURFZ01pMHlhRE11T1dFeUlESWdNQ0F3SURFZ01TNDJPUzQ1YkM0NE1TQXhMakpoTWlBeUlEQWdNQ0F3SURFdU5qY3VPVWd5TUdFeUlESWdNQ0F3SURFZ01pQXlkaTQxSWlBdlBnb2dJRHh3WVhSb0lHUTlJazB4TWlBeE1IWTBhRFFpSUM4K0NpQWdQSEJoZEdnZ1pEMGliVEV5SURFMElERXVOVE0xTFRFdU5qQTFZVFVnTlNBd0lEQWdNU0E0SURFdU5TSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk1qSWdNakoyTFRSb0xUUWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaWJUSXlJREU0TFRFdU5UTTFJREV1TmpBMVlUVWdOU0F3SURBZ01TMDRMVEV1TlNJZ0x6NEtQQzl6ZG1jK0NnPT0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2ZvbGRlci1zeW5jXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgRm9sZGVyU3luYyA9IGNyZWF0ZUx1Y2lkZUljb24oJ2ZvbGRlci1zeW5jJywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IEZvbGRlclN5bmM7XG4iLCJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbXG4gIFtcbiAgICAncGF0aCcsXG4gICAge1xuICAgICAgZDogJ00yMCAxMGExIDEgMCAwIDAgMS0xVjZhMSAxIDAgMCAwLTEtMWgtMi41YTEgMSAwIDAgMS0uOC0uNGwtLjktMS4yQTEgMSAwIDAgMCAxNSAzaC0yYTEgMSAwIDAgMC0xIDF2NWExIDEgMCAwIDAgMSAxWicsXG4gICAgICBrZXk6ICdob2Q0bXknLFxuICAgIH0sXG4gIF0sXG4gIFtcbiAgICAncGF0aCcsXG4gICAge1xuICAgICAgZDogJ00yMCAyMWExIDEgMCAwIDAgMS0xdi0zYTEgMSAwIDAgMC0xLTFoLTIuOWExIDEgMCAwIDEtLjg4LS41NWwtLjQyLS44NWExIDEgMCAwIDAtLjkyLS42SDEzYTEgMSAwIDAgMC0xIDF2NWExIDEgMCAwIDAgMSAxWicsXG4gICAgICBrZXk6ICd3NHlsMnUnLFxuICAgIH0sXG4gIF0sXG4gIFsncGF0aCcsIHsgZDogJ00zIDVhMiAyIDAgMCAwIDIgMmgzJywga2V5OiAnZjJqbmg3JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTMgM3YxM2EyIDIgMCAwIDAgMiAyaDMnLCBrZXk6ICdrOGVwbTEnIH1dLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIEZvbGRlclRyZWVcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1qQWdNVEJoTVNBeElEQWdNQ0F3SURFdE1WWTJZVEVnTVNBd0lEQWdNQzB4TFRGb0xUSXVOV0V4SURFZ01DQXdJREV0TGpndExqUnNMUzQ1TFRFdU1rRXhJREVnTUNBd0lEQWdNVFVnTTJndE1tRXhJREVnTUNBd0lEQXRNU0F4ZGpWaE1TQXhJREFnTUNBd0lERWdNVm9pSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVEl3SURJeFlURWdNU0F3SURBZ01DQXhMVEYyTFROaE1TQXhJREFnTUNBd0xURXRNV2d0TWk0NVlURWdNU0F3SURBZ01TMHVPRGd0TGpVMWJDMHVOREl0TGpnMVlURWdNU0F3SURBZ01DMHVPVEl0TGpaSU1UTmhNU0F4SURBZ01DQXdMVEVnTVhZMVlURWdNU0F3SURBZ01DQXhJREZhSWlBdlBnb2dJRHh3WVhSb0lHUTlJazB6SURWaE1pQXlJREFnTUNBd0lESWdNbWd6SWlBdlBnb2dJRHh3WVhSb0lHUTlJazB6SUROMk1UTmhNaUF5SURBZ01DQXdJRElnTW1neklpQXZQZ284TDNOMlp6NEspIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2ZvbGRlci10cmVlXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgRm9sZGVyVHJlZSA9IGNyZWF0ZUx1Y2lkZUljb24oJ2ZvbGRlci10cmVlJywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IEZvbGRlclRyZWU7XG4iLCJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbXG4gIFtcbiAgICAncGF0aCcsXG4gICAge1xuICAgICAgZDogJ00yMCAyMGEyIDIgMCAwIDAgMi0yVjhhMiAyIDAgMCAwLTItMmgtNy45YTIgMiAwIDAgMS0xLjY5LS45TDkuNiAzLjlBMiAyIDAgMCAwIDcuOTMgM0g0YTIgMiAwIDAgMC0yIDJ2MTNhMiAyIDAgMCAwIDIgMlonLFxuICAgICAga2V5OiAnMWt0MzYwJyxcbiAgICB9LFxuICBdLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTIgMTB2NicsIGtleTogJzFib3M0ZScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ205IDEzIDMtMyAzIDMnLCBrZXk6ICcxcHhnM2MnIH1dLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIEZvbGRlclVwXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NakFnTWpCaE1pQXlJREFnTUNBd0lESXRNbFk0WVRJZ01pQXdJREFnTUMweUxUSm9MVGN1T1dFeUlESWdNQ0F3SURFdE1TNDJPUzB1T1V3NUxqWWdNeTQ1UVRJZ01pQXdJREFnTUNBM0xqa3pJRE5JTkdFeUlESWdNQ0F3SURBdE1pQXlkakV6WVRJZ01pQXdJREFnTUNBeUlESmFJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHhNaUF4TUhZMklpQXZQZ29nSUR4d1lYUm9JR1E5SW0wNUlERXpJRE10TXlBeklETWlJQzgrQ2p3dmMzWm5QZ289KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9mb2xkZXItdXBcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBGb2xkZXJVcCA9IGNyZWF0ZUx1Y2lkZUljb24oJ2ZvbGRlci11cCcsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBGb2xkZXJVcDtcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgW1xuICAgICdwYXRoJyxcbiAgICB7XG4gICAgICBkOiAnTTIwIDIwYTIgMiAwIDAgMCAyLTJWOGEyIDIgMCAwIDAtMi0yaC03LjlhMiAyIDAgMCAxLTEuNjktLjlMOS42IDMuOUEyIDIgMCAwIDAgNy45MyAzSDRhMiAyIDAgMCAwLTIgMnYxM2EyIDIgMCAwIDAgMiAyWicsXG4gICAgICBrZXk6ICcxa3QzNjAnLFxuICAgIH0sXG4gIF0sXG4gIFsncGF0aCcsIHsgZDogJ205LjUgMTAuNSA1IDUnLCBrZXk6ICdyYTlxanonIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdtMTQuNSAxMC41LTUgNScsIGtleTogJ2wycmtwcScgfV0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgRm9sZGVyWFxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTWpBZ01qQmhNaUF5SURBZ01DQXdJREl0TWxZNFlUSWdNaUF3SURBZ01DMHlMVEpvTFRjdU9XRXlJRElnTUNBd0lERXRNUzQyT1MwdU9VdzVMallnTXk0NVFUSWdNaUF3SURBZ01DQTNMamt6SUROSU5HRXlJRElnTUNBd0lEQXRNaUF5ZGpFellUSWdNaUF3SURBZ01DQXlJREphSWlBdlBnb2dJRHh3WVhSb0lHUTlJbTA1TGpVZ01UQXVOU0ExSURVaUlDOCtDaUFnUEhCaGRHZ2daRDBpYlRFMExqVWdNVEF1TlMwMUlEVWlJQzgrQ2p3dmMzWm5QZ289KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9mb2xkZXIteFxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IEZvbGRlclggPSBjcmVhdGVMdWNpZGVJY29uKCdmb2xkZXIteCcsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBGb2xkZXJYO1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbXG4gICAgJ3BhdGgnLFxuICAgIHtcbiAgICAgIGQ6ICdNMjAgMjBhMiAyIDAgMCAwIDItMlY4YTIgMiAwIDAgMC0yLTJoLTcuOWEyIDIgMCAwIDEtMS42OS0uOUw5LjYgMy45QTIgMiAwIDAgMCA3LjkzIDNINGEyIDIgMCAwIDAtMiAydjEzYTIgMiAwIDAgMCAyIDJaJyxcbiAgICAgIGtleTogJzFrdDM2MCcsXG4gICAgfSxcbiAgXSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBGb2xkZXJcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1qQWdNakJoTWlBeUlEQWdNQ0F3SURJdE1sWTRZVElnTWlBd0lEQWdNQzB5TFRKb0xUY3VPV0V5SURJZ01DQXdJREV0TVM0Mk9TMHVPVXc1TGpZZ015NDVRVElnTWlBd0lEQWdNQ0EzTGpreklETklOR0V5SURJZ01DQXdJREF0TWlBeWRqRXpZVElnTWlBd0lEQWdNQ0F5SURKYUlpQXZQZ284TDNOMlp6NEspIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2ZvbGRlclxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IEZvbGRlciA9IGNyZWF0ZUx1Y2lkZUljb24oJ2ZvbGRlcicsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBGb2xkZXI7XG4iLCJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbXG4gIFtcbiAgICAncGF0aCcsXG4gICAge1xuICAgICAgZDogJ00yMCAxN2EyIDIgMCAwIDAgMi0yVjlhMiAyIDAgMCAwLTItMmgtMy45YTIgMiAwIDAgMS0xLjY5LS45bC0uODEtMS4yYTIgMiAwIDAgMC0xLjY3LS45SDhhMiAyIDAgMCAwLTIgMnY5YTIgMiAwIDAgMCAyIDJaJyxcbiAgICAgIGtleTogJzR1N3JwdCcsXG4gICAgfSxcbiAgXSxcbiAgWydwYXRoJywgeyBkOiAnTTIgOHYxMWEyIDIgMCAwIDAgMiAyaDE0Jywga2V5OiAnMWVpY3gxJyB9XSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBGb2xkZXJzXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NakFnTVRkaE1pQXlJREFnTUNBd0lESXRNbFk1WVRJZ01pQXdJREFnTUMweUxUSm9MVE11T1dFeUlESWdNQ0F3SURFdE1TNDJPUzB1T1d3dExqZ3hMVEV1TW1FeUlESWdNQ0F3SURBdE1TNDJOeTB1T1VnNFlUSWdNaUF3SURBZ01DMHlJREoyT1dFeUlESWdNQ0F3SURBZ01pQXlXaUlnTHo0S0lDQThjR0YwYUNCa1BTSk5NaUE0ZGpFeFlUSWdNaUF3SURBZ01DQXlJREpvTVRRaUlDOCtDand2YzNablBnbz0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2ZvbGRlcnNcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBGb2xkZXJzID0gY3JlYXRlTHVjaWRlSWNvbignZm9sZGVycycsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBGb2xkZXJzO1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbXG4gICAgJ3BhdGgnLFxuICAgIHtcbiAgICAgIGQ6ICdNNCAxNnYtMi4zOEM0IDExLjUgMi45NyAxMC41IDMgOGMuMDMtMi43MiAxLjQ5LTYgNC41LTZDOS4zNyAyIDEwIDMuOCAxMCA1LjVjMCAzLjExLTIgNS42Ni0yIDguNjhWMTZhMiAyIDAgMSAxLTQgMFonLFxuICAgICAga2V5OiAnMWR1ZGptJyxcbiAgICB9LFxuICBdLFxuICBbXG4gICAgJ3BhdGgnLFxuICAgIHtcbiAgICAgIGQ6ICdNMjAgMjB2LTIuMzhjMC0yLjEyIDEuMDMtMy4xMiAxLTUuNjItLjAzLTIuNzItMS40OS02LTQuNS02QzE0LjYzIDYgMTQgNy44IDE0IDkuNWMwIDMuMTEgMiA1LjY2IDIgOC42OFYyMGEyIDIgMCAxIDAgNCAwWicsXG4gICAgICBrZXk6ICdsMnQ4eGMnLFxuICAgIH0sXG4gIF0sXG4gIFsncGF0aCcsIHsgZDogJ00xNiAxN2g0Jywga2V5OiAnMWRlanh0JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTQgMTNoNCcsIGtleTogJzFid2g4YicgfV0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgRm9vdHByaW50c1xuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTkNBeE5uWXRNaTR6T0VNMElERXhMalVnTWk0NU55QXhNQzQxSURNZ09HTXVNRE10TWk0M01pQXhMalE1TFRZZ05DNDFMVFpET1M0ek55QXlJREV3SURNdU9DQXhNQ0ExTGpWak1DQXpMakV4TFRJZ05TNDJOaTB5SURndU5qaFdNVFpoTWlBeUlEQWdNU0F4TFRRZ01Gb2lJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRUSXdJREl3ZGkweUxqTTRZekF0TWk0eE1pQXhMakF6TFRNdU1USWdNUzAxTGpZeUxTNHdNeTB5TGpjeUxURXVORGt0TmkwMExqVXROa014TkM0Mk15QTJJREUwSURjdU9DQXhOQ0E1TGpWak1DQXpMakV4SURJZ05TNDJOaUF5SURndU5qaFdNakJoTWlBeUlEQWdNU0F3SURRZ01Gb2lJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRURTJJREUzYURRaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRRZ01UTm9OQ0lnTHo0S1BDOXpkbWMrQ2c9PSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvZm9vdHByaW50c1xuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IEZvb3RwcmludHMgPSBjcmVhdGVMdWNpZGVJY29uKCdmb290cHJpbnRzJywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IEZvb3RwcmludHM7XG4iLCJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ00xMiAxMkg1YTIgMiAwIDAgMC0yIDJ2NScsIGtleTogJzd6c3o5MScgfV0sXG4gIFsnY2lyY2xlJywgeyBjeDogJzEzJywgY3k6ICcxOScsIHI6ICcyJywga2V5OiAnd2pua3J1JyB9XSxcbiAgWydjaXJjbGUnLCB7IGN4OiAnNScsIGN5OiAnMTknLCByOiAnMicsIGtleTogJ3Y4a2Z6eCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ004IDE5aDNtNS0xN3YxN2g2TTYgMTJWN2MwLTEuMS45LTIgMi0yaDNsNSA1Jywga2V5OiAnMTNiazFwJyB9XSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBGb3JrbGlmdFxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTVRJZ01USklOV0V5SURJZ01DQXdJREF0TWlBeWRqVWlJQzgrQ2lBZ1BHTnBjbU5zWlNCamVEMGlNVE1pSUdONVBTSXhPU0lnY2owaU1pSWdMejRLSUNBOFkybHlZMnhsSUdONFBTSTFJaUJqZVQwaU1Ua2lJSEk5SWpJaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRnZ01UbG9NMjAxTFRFM2RqRTNhRFpOTmlBeE1sWTNZekF0TVM0eExqa3RNaUF5TFRKb00ydzFJRFVpSUM4K0Nqd3ZjM1puUGdvPSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvZm9ya2xpZnRcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBGb3JrbGlmdCA9IGNyZWF0ZUx1Y2lkZUljb24oJ2ZvcmtsaWZ0JywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IEZvcmtsaWZ0O1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdtMTUgMTcgNS01LTUtNScsIGtleTogJ25mMTcydycgfV0sXG4gIFsncGF0aCcsIHsgZDogJ000IDE4di0yYTQgNCAwIDAgMSA0LTRoMTInLCBrZXk6ICdqbWllajknIH1dLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIEZvcndhcmRcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKdE1UVWdNVGNnTlMwMUxUVXROU0lnTHo0S0lDQThjR0YwYUNCa1BTSk5OQ0F4T0hZdE1tRTBJRFFnTUNBd0lERWdOQzAwYURFeUlpQXZQZ284TDNOMlp6NEspIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2ZvcndhcmRcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBGb3J3YXJkID0gY3JlYXRlTHVjaWRlSWNvbignZm9yd2FyZCcsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBGb3J3YXJkO1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbJ2xpbmUnLCB7IHgxOiAnMjInLCB4MjogJzInLCB5MTogJzYnLCB5MjogJzYnLCBrZXk6ICcxNXc3ZHEnIH1dLFxuICBbJ2xpbmUnLCB7IHgxOiAnMjInLCB4MjogJzInLCB5MTogJzE4JywgeTI6ICcxOCcsIGtleTogJzFpcDQ4cCcgfV0sXG4gIFsnbGluZScsIHsgeDE6ICc2JywgeDI6ICc2JywgeTE6ICcyJywgeTI6ICcyMicsIGtleTogJ2EybG55eCcgfV0sXG4gIFsnbGluZScsIHsgeDE6ICcxOCcsIHgyOiAnMTgnLCB5MTogJzInLCB5MjogJzIyJywga2V5OiAnOHZiNmpkJyB9XSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBGcmFtZVxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4YkdsdVpTQjRNVDBpTWpJaUlIZ3lQU0l5SWlCNU1UMGlOaUlnZVRJOUlqWWlJQzgrQ2lBZ1BHeHBibVVnZURFOUlqSXlJaUI0TWowaU1pSWdlVEU5SWpFNElpQjVNajBpTVRnaUlDOCtDaUFnUEd4cGJtVWdlREU5SWpZaUlIZ3lQU0kySWlCNU1UMGlNaUlnZVRJOUlqSXlJaUF2UGdvZ0lEeHNhVzVsSUhneFBTSXhPQ0lnZURJOUlqRTRJaUI1TVQwaU1pSWdlVEk5SWpJeUlpQXZQZ284TDNOMlp6NEspIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2ZyYW1lXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgRnJhbWUgPSBjcmVhdGVMdWNpZGVJY29uKCdmcmFtZScsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBGcmFtZTtcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTUgMTZWOWgxNFYySDVsMTQgMTRoLTdtLTcgMCA3IDd2LTdtLTcgMGg3Jywga2V5OiAnMWEybm5nJyB9XSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBGcmFtZXJcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk5TQXhObFk1YURFMFZqSklOV3d4TkNBeE5HZ3ROMjB0TnlBd0lEY2dOM1l0TjIwdE55QXdhRGNpSUM4K0Nqd3ZjM1puUGdvPSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvZnJhbWVyXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICogQGRlcHJlY2F0ZWQgQnJhbmQgaWNvbnMgaGF2ZSBiZWVuIGRlcHJlY2F0ZWQgYW5kIGFyZSBkdWUgdG8gYmUgcmVtb3ZlZCwgcGxlYXNlIHJlZmVyIHRvIGh0dHBzOi8vZ2l0aHViLmNvbS9sdWNpZGUtaWNvbnMvbHVjaWRlL2lzc3Vlcy82NzAuIFdlIHJlY29tbWVuZCB1c2luZyBodHRwczovL3NpbXBsZWljb25zLm9yZy8/cT1mcmFtZXIgaW5zdGVhZC4gVGhpcyBpY29uIHdpbGwgYmUgcmVtb3ZlZCBpbiB2MS4wXG4gKi9cbmNvbnN0IEZyYW1lciA9IGNyZWF0ZUx1Y2lkZUljb24oJ2ZyYW1lcicsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBGcmFtZXI7XG4iLCJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbXG4gIFsnY2lyY2xlJywgeyBjeDogJzEyJywgY3k6ICcxMicsIHI6ICcxMCcsIGtleTogJzFtZ2xheScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xNiAxNnMtMS41LTItNC0yLTQgMi00IDInLCBrZXk6ICdlcGJnMHEnIH1dLFxuICBbJ2xpbmUnLCB7IHgxOiAnOScsIHgyOiAnOS4wMScsIHkxOiAnOScsIHkyOiAnOScsIGtleTogJ3l4eG5kMCcgfV0sXG4gIFsnbGluZScsIHsgeDE6ICcxNScsIHgyOiAnMTUuMDEnLCB5MTogJzknLCB5MjogJzknLCBrZXk6ICcxcDR5OWUnIH1dLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIEZyb3duXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThZMmx5WTJ4bElHTjRQU0l4TWlJZ1kzazlJakV5SWlCeVBTSXhNQ0lnTHo0S0lDQThjR0YwYUNCa1BTSk5NVFlnTVRaekxURXVOUzB5TFRRdE1pMDBJREl0TkNBeUlpQXZQZ29nSUR4c2FXNWxJSGd4UFNJNUlpQjRNajBpT1M0d01TSWdlVEU5SWpraUlIa3lQU0k1SWlBdlBnb2dJRHhzYVc1bElIZ3hQU0l4TlNJZ2VESTlJakUxTGpBeElpQjVNVDBpT1NJZ2VUSTlJamtpSUM4K0Nqd3ZjM1puUGdvPSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvZnJvd25cbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBGcm93biA9IGNyZWF0ZUx1Y2lkZUljb24oJ2Zyb3duJywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IEZyb3duO1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbJ2xpbmUnLCB7IHgxOiAnMycsIHgyOiAnMTUnLCB5MTogJzIyJywgeTI6ICcyMicsIGtleTogJ3hlZ2x5NCcgfV0sXG4gIFsnbGluZScsIHsgeDE6ICc0JywgeDI6ICcxNCcsIHkxOiAnOScsIHkyOiAnOScsIGtleTogJ3hjbnV2dScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xNCAyMlY0YTIgMiAwIDAgMC0yLTJINmEyIDIgMCAwIDAtMiAydjE4Jywga2V5OiAnMTZqMHlkJyB9XSxcbiAgW1xuICAgICdwYXRoJyxcbiAgICB7XG4gICAgICBkOiAnTTE0IDEzaDJhMiAyIDAgMCAxIDIgMnYyYTIgMiAwIDAgMCAyIDJhMiAyIDAgMCAwIDItMlY5LjgzYTIgMiAwIDAgMC0uNTktMS40MkwxOCA1JyxcbiAgICAgIGtleTogJzdjdTkxZicsXG4gICAgfSxcbiAgXSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBGdWVsXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThiR2x1WlNCNE1UMGlNeUlnZURJOUlqRTFJaUI1TVQwaU1qSWlJSGt5UFNJeU1pSWdMejRLSUNBOGJHbHVaU0I0TVQwaU5DSWdlREk5SWpFMElpQjVNVDBpT1NJZ2VUSTlJamtpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVEUwSURJeVZqUmhNaUF5SURBZ01DQXdMVEl0TWtnMllUSWdNaUF3SURBZ01DMHlJREoyTVRnaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRFMElERXphREpoTWlBeUlEQWdNQ0F4SURJZ01uWXlZVElnTWlBd0lEQWdNQ0F5SURKaE1pQXlJREFnTUNBd0lESXRNbFk1TGpnellUSWdNaUF3SURBZ01DMHVOVGt0TVM0ME1rd3hPQ0ExSWlBdlBnbzhMM04yWno0SykgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvZnVlbFxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IEZ1ZWwgPSBjcmVhdGVMdWNpZGVJY29uKCdmdWVsJywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IEZ1ZWw7XG4iLCJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ00zIDdWNWEyIDIgMCAwIDEgMi0yaDInLCBrZXk6ICdhYTdsMXonIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTcgM2gyYTIgMiAwIDAgMSAyIDJ2MicsIGtleTogJzRxY3k1bycgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00yMSAxN3YyYTIgMiAwIDAgMS0yIDJoLTInLCBrZXk6ICc2dndyeDgnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNNyAyMUg1YTIgMiAwIDAgMS0yLTJ2LTInLCBrZXk6ICdpb3FjenInIH1dLFxuICBbJ3JlY3QnLCB7IHdpZHRoOiAnMTAnLCBoZWlnaHQ6ICc4JywgeDogJzcnLCB5OiAnOCcsIHJ4OiAnMScsIGtleTogJ3Z5czhtZScgfV0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgRnVsbHNjcmVlblxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTXlBM1ZqVmhNaUF5SURBZ01DQXhJREl0TW1neUlpQXZQZ29nSUR4d1lYUm9JR1E5SWsweE55QXphREpoTWlBeUlEQWdNQ0F4SURJZ01uWXlJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHlNU0F4TjNZeVlUSWdNaUF3SURBZ01TMHlJREpvTFRJaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRjZ01qRklOV0V5SURJZ01DQXdJREV0TWkweWRpMHlJaUF2UGdvZ0lEeHlaV04wSUhkcFpIUm9QU0l4TUNJZ2FHVnBaMmgwUFNJNElpQjRQU0kzSWlCNVBTSTRJaUJ5ZUQwaU1TSWdMejRLUEM5emRtYytDZz09KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9mdWxsc2NyZWVuXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgRnVsbHNjcmVlbiA9IGNyZWF0ZUx1Y2lkZUljb24oJ2Z1bGxzY3JlZW4nLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgRnVsbHNjcmVlbjtcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgW1xuICAgICdwYXRoJyxcbiAgICB7XG4gICAgICBkOiAnTTEzLjM1NCAzSDNhMSAxIDAgMCAwLS43NDIgMS42N2w3LjIyNSA3Ljk4OUEyIDIgMCAwIDEgMTAgMTR2NmExIDEgMCAwIDAgLjU1My44OTVsMiAxQTEgMSAwIDAgMCAxNCAyMXYtN2EyIDIgMCAwIDEgLjUxNy0xLjM0MWwxLjIxOC0xLjM0OCcsXG4gICAgICBrZXk6ICc4bXZzbWYnLFxuICAgIH0sXG4gIF0sXG4gIFsncGF0aCcsIHsgZDogJ00xNiA2aDYnLCBrZXk6ICcxZG9ndHAnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTkgM3Y2Jywga2V5OiAnMXl0cGp0JyB9XSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBGdW5uZWxQbHVzXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NVE11TXpVMElETklNMkV4SURFZ01DQXdJREF0TGpjME1pQXhMalkzYkRjdU1qSTFJRGN1T1RnNVFUSWdNaUF3SURBZ01TQXhNQ0F4TkhZMllURWdNU0F3SURBZ01DQXVOVFV6TGpnNU5Xd3lJREZCTVNBeElEQWdNQ0F3SURFMElESXhkaTAzWVRJZ01pQXdJREFnTVNBdU5URTNMVEV1TXpReGJERXVNakU0TFRFdU16UTRJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHhOaUEyYURZaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRFNUlETjJOaUlnTHo0S1BDOXpkbWMrQ2c9PSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvZnVubmVsLXBsdXNcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBGdW5uZWxQbHVzID0gY3JlYXRlTHVjaWRlSWNvbignZnVubmVsLXBsdXMnLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgRnVubmVsUGx1cztcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgW1xuICAgICdwYXRoJyxcbiAgICB7XG4gICAgICBkOiAnTTEyLjUzMSAzSDNhMSAxIDAgMCAwLS43NDIgMS42N2w3LjIyNSA3Ljk4OUEyIDIgMCAwIDEgMTAgMTR2NmExIDEgMCAwIDAgLjU1My44OTVsMiAxQTEgMSAwIDAgMCAxNCAyMXYtN2EyIDIgMCAwIDEgLjUxNy0xLjM0MWwuNDI3LS40NzMnLFxuICAgICAga2V5OiAnb2wyZnQyJyxcbiAgICB9LFxuICBdLFxuICBbJ3BhdGgnLCB7IGQ6ICdtMTYuNSAzLjUgNSA1Jywga2V5OiAnMTVlNmZhJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnbTIxLjUgMy41LTUgNScsIGtleTogJ20wbHdydScgfV0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgRnVubmVsWFxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTVRJdU5UTXhJRE5JTTJFeElERWdNQ0F3SURBdExqYzBNaUF4TGpZM2JEY3VNakkxSURjdU9UZzVRVElnTWlBd0lEQWdNU0F4TUNBeE5IWTJZVEVnTVNBd0lEQWdNQ0F1TlRVekxqZzVOV3d5SURGQk1TQXhJREFnTUNBd0lERTBJREl4ZGkwM1lUSWdNaUF3SURBZ01TQXVOVEUzTFRFdU16UXhiQzQwTWpjdExqUTNNeUlnTHo0S0lDQThjR0YwYUNCa1BTSnRNVFl1TlNBekxqVWdOU0ExSWlBdlBnb2dJRHh3WVhSb0lHUTlJbTB5TVM0MUlETXVOUzAxSURVaUlDOCtDand2YzNablBnbz0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2Z1bm5lbC14XG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgRnVubmVsWCA9IGNyZWF0ZUx1Y2lkZUljb24oJ2Z1bm5lbC14JywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IEZ1bm5lbFg7XG4iLCJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbXG4gIFtcbiAgICAncGF0aCcsXG4gICAge1xuICAgICAgZDogJ00xMCAyMGExIDEgMCAwIDAgLjU1My44OTVsMiAxQTEgMSAwIDAgMCAxNCAyMXYtN2EyIDIgMCAwIDEgLjUxNy0xLjM0MUwyMS43NCA0LjY3QTEgMSAwIDAgMCAyMSAzSDNhMSAxIDAgMCAwLS43NDIgMS42N2w3LjIyNSA3Ljk4OUEyIDIgMCAwIDEgMTAgMTR6JyxcbiAgICAgIGtleTogJ3NjN3E3aScsXG4gICAgfSxcbiAgXSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBGdW5uZWxcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1UQWdNakJoTVNBeElEQWdNQ0F3SUM0MU5UTXVPRGsxYkRJZ01VRXhJREVnTUNBd0lEQWdNVFFnTWpGMkxUZGhNaUF5SURBZ01DQXhJQzQxTVRjdE1TNHpOREZNTWpFdU56UWdOQzQyTjBFeElERWdNQ0F3SURBZ01qRWdNMGd6WVRFZ01TQXdJREFnTUMwdU56UXlJREV1Tmpkc055NHlNalVnTnk0NU9EbEJNaUF5SURBZ01DQXhJREV3SURFMGVpSWdMejRLUEM5emRtYytDZz09KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9mdW5uZWxcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBGdW5uZWwgPSBjcmVhdGVMdWNpZGVJY29uKCdmdW5uZWwnLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgRnVubmVsO1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdNMiA3djEwJywga2V5OiAnYTJwbDJkJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTYgNXYxNCcsIGtleTogJzFrcTNkNycgfV0sXG4gIFsncmVjdCcsIHsgd2lkdGg6ICcxMicsIGhlaWdodDogJzE4JywgeDogJzEwJywgeTogJzMnLCByeDogJzInLCBrZXk6ICcxM2k3YmMnIH1dLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIEdhbGxlcnlIb3Jpem9udGFsRW5kXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NaUEzZGpFd0lpQXZQZ29nSUR4d1lYUm9JR1E5SWswMklEVjJNVFFpSUM4K0NpQWdQSEpsWTNRZ2QybGtkR2c5SWpFeUlpQm9aV2xuYUhROUlqRTRJaUI0UFNJeE1DSWdlVDBpTXlJZ2NuZzlJaklpSUM4K0Nqd3ZjM1puUGdvPSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvZ2FsbGVyeS1ob3Jpem9udGFsLWVuZFxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IEdhbGxlcnlIb3Jpem9udGFsRW5kID0gY3JlYXRlTHVjaWRlSWNvbignZ2FsbGVyeS1ob3Jpem9udGFsLWVuZCcsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBHYWxsZXJ5SG9yaXpvbnRhbEVuZDtcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTIgM3YxOCcsIGtleTogJ3B6dHR1eCcgfV0sXG4gIFsncmVjdCcsIHsgd2lkdGg6ICcxMicsIGhlaWdodDogJzE4JywgeDogJzYnLCB5OiAnMycsIHJ4OiAnMicsIGtleTogJ2J0cjhiZycgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00yMiAzdjE4Jywga2V5OiAnNmpmM3YnIH1dLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIEdhbGxlcnlIb3Jpem9udGFsXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NaUF6ZGpFNElpQXZQZ29nSUR4eVpXTjBJSGRwWkhSb1BTSXhNaUlnYUdWcFoyaDBQU0l4T0NJZ2VEMGlOaUlnZVQwaU15SWdjbmc5SWpJaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRJeUlETjJNVGdpSUM4K0Nqd3ZjM1puUGdvPSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvZ2FsbGVyeS1ob3Jpem9udGFsXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgR2FsbGVyeUhvcml6b250YWwgPSBjcmVhdGVMdWNpZGVJY29uKCdnYWxsZXJ5LWhvcml6b250YWwnLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgR2FsbGVyeUhvcml6b250YWw7XG4iLCJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbXG4gIFsncmVjdCcsIHsgd2lkdGg6ICcxOCcsIGhlaWdodDogJzE0JywgeDogJzMnLCB5OiAnMycsIHJ4OiAnMicsIGtleTogJzc0eTI0ZicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ000IDIxaDEnLCBrZXk6ICcxNnpsaWQnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNOSAyMWgxJywga2V5OiAnMTVvN2x6JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTE0IDIxaDEnLCBrZXk6ICd2OXZ5YnMnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTkgMjFoMScsIGtleTogJ2VkeXdhdCcgfV0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgR2FsbGVyeVRodW1ibmFpbHNcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNtVmpkQ0IzYVdSMGFEMGlNVGdpSUdobGFXZG9kRDBpTVRRaUlIZzlJak1pSUhrOUlqTWlJSEo0UFNJeUlpQXZQZ29nSUR4d1lYUm9JR1E5SWswMElESXhhREVpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVGtnTWpGb01TSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk1UUWdNakZvTVNJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTVRrZ01qRm9NU0lnTHo0S1BDOXpkbWMrQ2c9PSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvZ2FsbGVyeS10aHVtYm5haWxzXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgR2FsbGVyeVRodW1ibmFpbHMgPSBjcmVhdGVMdWNpZGVJY29uKCdnYWxsZXJ5LXRodW1ibmFpbHMnLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgR2FsbGVyeVRodW1ibmFpbHM7XG4iLCJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ003IDJoMTAnLCBrZXk6ICduY3pla2InIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNNSA2aDE0Jywga2V5OiAndTJ4NHAnIH1dLFxuICBbJ3JlY3QnLCB7IHdpZHRoOiAnMTgnLCBoZWlnaHQ6ICcxMicsIHg6ICczJywgeTogJzEwJywgcng6ICcyJywga2V5OiAnbDB0enUzJyB9XSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBHYWxsZXJ5VmVydGljYWxFbmRcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk55QXlhREV3SWlBdlBnb2dJRHh3WVhSb0lHUTlJazAxSURab01UUWlJQzgrQ2lBZ1BISmxZM1FnZDJsa2RHZzlJakU0SWlCb1pXbG5hSFE5SWpFeUlpQjRQU0l6SWlCNVBTSXhNQ0lnY25nOUlqSWlJQzgrQ2p3dmMzWm5QZ289KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9nYWxsZXJ5LXZlcnRpY2FsLWVuZFxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IEdhbGxlcnlWZXJ0aWNhbEVuZCA9IGNyZWF0ZUx1Y2lkZUljb24oJ2dhbGxlcnktdmVydGljYWwtZW5kJywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IEdhbGxlcnlWZXJ0aWNhbEVuZDtcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTMgMmgxOCcsIGtleTogJzE1cXhmeCcgfV0sXG4gIFsncmVjdCcsIHsgd2lkdGg6ICcxOCcsIGhlaWdodDogJzEyJywgeDogJzMnLCB5OiAnNicsIHJ4OiAnMicsIGtleTogJzE0MzlyNicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00zIDIyaDE4Jywga2V5OiAnOHBycjQ1JyB9XSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBHYWxsZXJ5VmVydGljYWxcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk15QXlhREU0SWlBdlBnb2dJRHh5WldOMElIZHBaSFJvUFNJeE9DSWdhR1ZwWjJoMFBTSXhNaUlnZUQwaU15SWdlVDBpTmlJZ2NuZzlJaklpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVE1nTWpKb01UZ2lJQzgrQ2p3dmMzWm5QZ289KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9nYWxsZXJ5LXZlcnRpY2FsXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgR2FsbGVyeVZlcnRpY2FsID0gY3JlYXRlTHVjaWRlSWNvbignZ2FsbGVyeS12ZXJ0aWNhbCcsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBHYWxsZXJ5VmVydGljYWw7XG4iLCJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbXG4gIFsnbGluZScsIHsgeDE6ICc2JywgeDI6ICcxMCcsIHkxOiAnMTEnLCB5MjogJzExJywga2V5OiAnMWdrdGxuJyB9XSxcbiAgWydsaW5lJywgeyB4MTogJzgnLCB4MjogJzgnLCB5MTogJzknLCB5MjogJzEzJywga2V5OiAncW5rOW93JyB9XSxcbiAgWydsaW5lJywgeyB4MTogJzE1JywgeDI6ICcxNS4wMScsIHkxOiAnMTInLCB5MjogJzEyJywga2V5OiAna3JvdDdvJyB9XSxcbiAgWydsaW5lJywgeyB4MTogJzE4JywgeDI6ICcxOC4wMScsIHkxOiAnMTAnLCB5MjogJzEwJywga2V5OiAnMWxjdXUxJyB9XSxcbiAgW1xuICAgICdwYXRoJyxcbiAgICB7XG4gICAgICBkOiAnTTE3LjMyIDVINi42OGE0IDQgMCAwIDAtMy45NzggMy41OWMtLjAwNi4wNTItLjAxLjEwMS0uMDE3LjE1MkMyLjYwNCA5LjQxNiAyIDE0LjQ1NiAyIDE2YTMgMyAwIDAgMCAzIDNjMSAwIDEuNS0uNSAyLTFsMS40MTQtMS40MTRBMiAyIDAgMCAxIDkuODI4IDE2aDQuMzQ0YTIgMiAwIDAgMSAxLjQxNC41ODZMMTcgMThjLjUuNSAxIDEgMiAxYTMgMyAwIDAgMCAzLTNjMC0xLjU0NS0uNjA0LTYuNTg0LS42ODUtNy4yNTgtLjAwNy0uMDUtLjAxMS0uMS0uMDE3LS4xNTFBNCA0IDAgMCAwIDE3LjMyIDV6JyxcbiAgICAgIGtleTogJ21mcWMxMCcsXG4gICAgfSxcbiAgXSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBHYW1lcGFkMlxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4YkdsdVpTQjRNVDBpTmlJZ2VESTlJakV3SWlCNU1UMGlNVEVpSUhreVBTSXhNU0lnTHo0S0lDQThiR2x1WlNCNE1UMGlPQ0lnZURJOUlqZ2lJSGt4UFNJNUlpQjVNajBpTVRNaUlDOCtDaUFnUEd4cGJtVWdlREU5SWpFMUlpQjRNajBpTVRVdU1ERWlJSGt4UFNJeE1pSWdlVEk5SWpFeUlpQXZQZ29nSUR4c2FXNWxJSGd4UFNJeE9DSWdlREk5SWpFNExqQXhJaUI1TVQwaU1UQWlJSGt5UFNJeE1DSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk1UY3VNeklnTlVnMkxqWTRZVFFnTkNBd0lEQWdNQzB6TGprM09DQXpMalU1WXkwdU1EQTJMakExTWkwdU1ERXVNVEF4TFM0d01UY3VNVFV5UXpJdU5qQTBJRGt1TkRFMklESWdNVFF1TkRVMklESWdNVFpoTXlBeklEQWdNQ0F3SURNZ00yTXhJREFnTVM0MUxTNDFJREl0TVd3eExqUXhOQzB4TGpReE5FRXlJRElnTUNBd0lERWdPUzQ0TWpnZ01UWm9OQzR6TkRSaE1pQXlJREFnTUNBeElERXVOREUwTGpVNE5rd3hOeUF4T0dNdU5TNDFJREVnTVNBeUlERmhNeUF6SURBZ01DQXdJRE10TTJNd0xURXVOVFExTFM0Mk1EUXROaTQxT0RRdExqWTROUzAzTGpJMU9DMHVNREEzTFM0d05TMHVNREV4TFM0eExTNHdNVGN0TGpFMU1VRTBJRFFnTUNBd0lEQWdNVGN1TXpJZ05Yb2lJQzgrQ2p3dmMzWm5QZ289KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9nYW1lcGFkLTJcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBHYW1lcGFkMiA9IGNyZWF0ZUx1Y2lkZUljb24oJ2dhbWVwYWQtMicsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBHYW1lcGFkMjtcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgWydsaW5lJywgeyB4MTogJzYnLCB4MjogJzEwJywgeTE6ICcxMicsIHkyOiAnMTInLCBrZXk6ICcxNjFidzInIH1dLFxuICBbJ2xpbmUnLCB7IHgxOiAnOCcsIHgyOiAnOCcsIHkxOiAnMTAnLCB5MjogJzE0Jywga2V5OiAnMWk2amkwJyB9XSxcbiAgWydsaW5lJywgeyB4MTogJzE1JywgeDI6ICcxNS4wMScsIHkxOiAnMTMnLCB5MjogJzEzJywga2V5OiAnZHFwZ3JvJyB9XSxcbiAgWydsaW5lJywgeyB4MTogJzE4JywgeDI6ICcxOC4wMScsIHkxOiAnMTEnLCB5MjogJzExJywga2V5OiAnbWVoMmMnIH1dLFxuICBbJ3JlY3QnLCB7IHdpZHRoOiAnMjAnLCBoZWlnaHQ6ICcxMicsIHg6ICcyJywgeTogJzYnLCByeDogJzInLCBrZXk6ICc5bHUzZzYnIH1dLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIEdhbWVwYWRcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGJHbHVaU0I0TVQwaU5pSWdlREk5SWpFd0lpQjVNVDBpTVRJaUlIa3lQU0l4TWlJZ0x6NEtJQ0E4YkdsdVpTQjRNVDBpT0NJZ2VESTlJamdpSUhreFBTSXhNQ0lnZVRJOUlqRTBJaUF2UGdvZ0lEeHNhVzVsSUhneFBTSXhOU0lnZURJOUlqRTFMakF4SWlCNU1UMGlNVE1pSUhreVBTSXhNeUlnTHo0S0lDQThiR2x1WlNCNE1UMGlNVGdpSUhneVBTSXhPQzR3TVNJZ2VURTlJakV4SWlCNU1qMGlNVEVpSUM4K0NpQWdQSEpsWTNRZ2QybGtkR2c5SWpJd0lpQm9aV2xuYUhROUlqRXlJaUI0UFNJeUlpQjVQU0kySWlCeWVEMGlNaUlnTHo0S1BDOXpkbWMrQ2c9PSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvZ2FtZXBhZFxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IEdhbWVwYWQgPSBjcmVhdGVMdWNpZGVJY29uKCdnYW1lcGFkJywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IEdhbWVwYWQ7XG4iLCJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ20xMiAxNCA0LTQnLCBrZXk6ICc5a3pkZmcnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMy4zNCAxOWExMCAxMCAwIDEgMSAxNy4zMiAwJywga2V5OiAnMTlwNzVhJyB9XSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBHYXVnZVxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0p0TVRJZ01UUWdOQzAwSWlBdlBnb2dJRHh3WVhSb0lHUTlJazB6TGpNMElERTVZVEV3SURFd0lEQWdNU0F4SURFM0xqTXlJREFpSUM4K0Nqd3ZjM1puUGdvPSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvZ2F1Z2VcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBHYXVnZSA9IGNyZWF0ZUx1Y2lkZUljb24oJ2dhdWdlJywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IEdhdWdlO1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdtMTQuNSAxMi41LTggOGEyLjExOSAyLjExOSAwIDEgMS0zLTNsOC04Jywga2V5OiAnMTU0OTJmJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnbTE2IDE2IDYtNicsIGtleTogJ3Z6cmNsNicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ204IDggNi02Jywga2V5OiAnMThiaTRwJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnbTkgNyA4IDgnLCBrZXk6ICc1am52cTEnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdtMjEgMTEtOC04Jywga2V5OiAnejR5N3pvJyB9XSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBHYXZlbFxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0p0TVRRdU5TQXhNaTQxTFRnZ09HRXlMakV4T1NBeUxqRXhPU0F3SURFZ01TMHpMVE5zT0MwNElpQXZQZ29nSUR4d1lYUm9JR1E5SW0weE5pQXhOaUEyTFRZaUlDOCtDaUFnUEhCaGRHZ2daRDBpYlRnZ09DQTJMVFlpSUM4K0NpQWdQSEJoZEdnZ1pEMGliVGtnTnlBNElEZ2lJQzgrQ2lBZ1BIQmhkR2dnWkQwaWJUSXhJREV4TFRndE9DSWdMejRLUEM5emRtYytDZz09KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9nYXZlbFxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IEdhdmVsID0gY3JlYXRlTHVjaWRlSWNvbignZ2F2ZWwnLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgR2F2ZWw7XG4iLCJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ002IDNoMTJsNCA2LTEwIDEzTDIgOVonLCBrZXk6ICcxcGNkNWsnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTEgMyA4IDlsNCAxMyA0LTEzLTMtNicsIGtleTogJzFmY3UzdScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00yIDloMjAnLCBrZXk6ICcxNmZzanQnIH1dLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIEdlbVxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTmlBemFERXliRFFnTmkweE1DQXhNMHd5SURsYUlpQXZQZ29nSUR4d1lYUm9JR1E5SWsweE1TQXpJRGdnT1d3MElERXpJRFF0TVRNdE15MDJJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHlJRGxvTWpBaUlDOCtDand2YzNablBnbz0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2dlbVxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IEdlbSA9IGNyZWF0ZUx1Y2lkZUljb24oJ2dlbScsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBHZW07XG4iLCJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ00xMS41IDIxYTcuNSA3LjUgMCAxIDEgNy4zNS05Jywga2V5OiAnMWd5ajhrJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTEzIDEyVjMnLCBrZXk6ICcxOG9tMmEnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNNCAyMWgxNicsIGtleTogJzFoMDlneicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ005IDEyVjMnLCBrZXk6ICdnZXV0dTAnIH1dLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIEdlb3JnaWFuTGFyaVxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTVRFdU5TQXlNV0UzTGpVZ055NDFJREFnTVNBeElEY3VNelV0T1NJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTVRNZ01USldNeUlnTHo0S0lDQThjR0YwYUNCa1BTSk5OQ0F5TVdneE5pSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk9TQXhNbFl6SWlBdlBnbzhMM04yWno0SykgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvZ2VvcmdpYW4tbGFyaVxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IEdlb3JnaWFuTGFyaSA9IGNyZWF0ZUx1Y2lkZUljb24oJ2dlb3JnaWFuLWxhcmknLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgR2VvcmdpYW5MYXJpO1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdNOSAxMGguMDEnLCBrZXk6ICdxYnR4dXcnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTUgMTBoLjAxJywga2V5OiAnMXFtanNsJyB9XSxcbiAgW1xuICAgICdwYXRoJyxcbiAgICB7XG4gICAgICBkOiAnTTEyIDJhOCA4IDAgMCAwLTggOHYxMmwzLTMgMi41IDIuNUwxMiAxOWwyLjUgMi41TDE3IDE5bDMgM1YxMGE4IDggMCAwIDAtOC04eicsXG4gICAgICBrZXk6ICd1d3diMDcnLFxuICAgIH0sXG4gIF0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgR2hvc3RcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk9TQXhNR2d1TURFaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRFMUlERXdhQzR3TVNJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTVRJZ01tRTRJRGdnTUNBd0lEQXRPQ0E0ZGpFeWJETXRNeUF5TGpVZ01pNDFUREV5SURFNWJESXVOU0F5TGpWTU1UY2dNVGxzTXlBelZqRXdZVGdnT0NBd0lEQWdNQzA0TFRoNklpQXZQZ284TDNOMlp6NEspIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2dob3N0XG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgR2hvc3QgPSBjcmVhdGVMdWNpZGVJY29uKCdnaG9zdCcsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBHaG9zdDtcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgWydyZWN0JywgeyB4OiAnMycsIHk6ICc4Jywgd2lkdGg6ICcxOCcsIGhlaWdodDogJzQnLCByeDogJzEnLCBrZXk6ICdia3Y1MicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xMiA4djEzJywga2V5OiAnMWM3Nm1uJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTE5IDEydjdhMiAyIDAgMCAxLTIgMkg3YTIgMiAwIDAgMS0yLTJ2LTcnLCBrZXk6ICc2d2p5NmInIH1dLFxuICBbXG4gICAgJ3BhdGgnLFxuICAgIHtcbiAgICAgIGQ6ICdNNy41IDhhMi41IDIuNSAwIDAgMSAwLTVBNC44IDggMCAwIDEgMTIgOGE0LjggOCAwIDAgMSA0LjUtNSAyLjUgMi41IDAgMCAxIDAgNScsXG4gICAgICBrZXk6ICcxaWh2cmwnLFxuICAgIH0sXG4gIF0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgR2lmdFxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y21WamRDQjRQU0l6SWlCNVBTSTRJaUIzYVdSMGFEMGlNVGdpSUdobGFXZG9kRDBpTkNJZ2NuZzlJakVpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVEV5SURoMk1UTWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRURTVJREV5ZGpkaE1pQXlJREFnTUNBeExUSWdNa2czWVRJZ01pQXdJREFnTVMweUxUSjJMVGNpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVGN1TlNBNFlUSXVOU0F5TGpVZ01DQXdJREVnTUMwMVFUUXVPQ0E0SURBZ01DQXhJREV5SURoaE5DNDRJRGdnTUNBd0lERWdOQzQxTFRVZ01pNDFJREl1TlNBd0lEQWdNU0F3SURVaUlDOCtDand2YzNablBnbz0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2dpZnRcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBHaWZ0ID0gY3JlYXRlTHVjaWRlSWNvbignZ2lmdCcsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBHaWZ0O1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdNNiAzdjEyJywga2V5OiAncXBndXNuJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTE4IDlhMyAzIDAgMSAwIDAtNiAzIDMgMCAwIDAgMCA2eicsIGtleTogJzFkMDJqaScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ002IDIxYTMgMyAwIDEgMCAwLTYgMyAzIDAgMCAwIDAgNnonLCBrZXk6ICdjaGs2cGgnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTUgNmE5IDkgMCAwIDAtOSA5Jywga2V5OiAnb3IzMzJ4JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTE4IDE1djYnLCBrZXk6ICc5d2NpeWknIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMjEgMThoLTYnLCBrZXk6ICcxMzlmMGMnIH1dLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIEdpdEJyYW5jaFBsdXNcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk5pQXpkakV5SWlBdlBnb2dJRHh3WVhSb0lHUTlJazB4T0NBNVlUTWdNeUF3SURFZ01DQXdMVFlnTXlBeklEQWdNQ0F3SURBZ05ub2lJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRUWWdNakZoTXlBeklEQWdNU0F3SURBdE5pQXpJRE1nTUNBd0lEQWdNQ0EyZWlJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTVRVZ05tRTVJRGtnTUNBd0lEQXRPU0E1SWlBdlBnb2dJRHh3WVhSb0lHUTlJazB4T0NBeE5YWTJJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHlNU0F4T0dndE5pSWdMejRLUEM5emRtYytDZz09KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9naXQtYnJhbmNoLXBsdXNcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBHaXRCcmFuY2hQbHVzID0gY3JlYXRlTHVjaWRlSWNvbignZ2l0LWJyYW5jaC1wbHVzJywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IEdpdEJyYW5jaFBsdXM7XG4iLCJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbXG4gIFsnbGluZScsIHsgeDE6ICc2JywgeDI6ICc2JywgeTE6ICczJywgeTI6ICcxNScsIGtleTogJzE3cWNtNycgfV0sXG4gIFsnY2lyY2xlJywgeyBjeDogJzE4JywgY3k6ICc2JywgcjogJzMnLCBrZXk6ICcxaDdnMjQnIH1dLFxuICBbJ2NpcmNsZScsIHsgY3g6ICc2JywgY3k6ICcxOCcsIHI6ICczJywga2V5OiAnZnFtY3ltJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTE4IDlhOSA5IDAgMCAxLTkgOScsIGtleTogJ24yaDR3cScgfV0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgR2l0QnJhbmNoXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThiR2x1WlNCNE1UMGlOaUlnZURJOUlqWWlJSGt4UFNJeklpQjVNajBpTVRVaUlDOCtDaUFnUEdOcGNtTnNaU0JqZUQwaU1UZ2lJR041UFNJMklpQnlQU0l6SWlBdlBnb2dJRHhqYVhKamJHVWdZM2c5SWpZaUlHTjVQU0l4T0NJZ2NqMGlNeUlnTHo0S0lDQThjR0YwYUNCa1BTSk5NVGdnT1dFNUlEa2dNQ0F3SURFdE9TQTVJaUF2UGdvOEwzTjJaejRLKSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9naXQtYnJhbmNoXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgR2l0QnJhbmNoID0gY3JlYXRlTHVjaWRlSWNvbignZ2l0LWJyYW5jaCcsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBHaXRCcmFuY2g7XG4iLCJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbXG4gIFsnY2lyY2xlJywgeyBjeDogJzEyJywgY3k6ICcxMicsIHI6ICczJywga2V5OiAnMXY3enJkJyB9XSxcbiAgWydsaW5lJywgeyB4MTogJzMnLCB4MjogJzknLCB5MTogJzEyJywgeTI6ICcxMicsIGtleTogJzFkeWZ0ZCcgfV0sXG4gIFsnbGluZScsIHsgeDE6ICcxNScsIHgyOiAnMjEnLCB5MTogJzEyJywgeTI6ICcxMicsIGtleTogJ291cDRwOCcgfV0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgR2l0Q29tbWl0SG9yaXpvbnRhbFxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4WTJseVkyeGxJR040UFNJeE1pSWdZM2s5SWpFeUlpQnlQU0l6SWlBdlBnb2dJRHhzYVc1bElIZ3hQU0l6SWlCNE1qMGlPU0lnZVRFOUlqRXlJaUI1TWowaU1USWlJQzgrQ2lBZ1BHeHBibVVnZURFOUlqRTFJaUI0TWowaU1qRWlJSGt4UFNJeE1pSWdlVEk5SWpFeUlpQXZQZ284TDNOMlp6NEspIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2dpdC1jb21taXQtaG9yaXpvbnRhbFxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IEdpdENvbW1pdEhvcml6b250YWwgPSBjcmVhdGVMdWNpZGVJY29uKCdnaXQtY29tbWl0LWhvcml6b250YWwnLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgR2l0Q29tbWl0SG9yaXpvbnRhbDtcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTEyIDN2NicsIGtleTogJzFob2x2NScgfV0sXG4gIFsnY2lyY2xlJywgeyBjeDogJzEyJywgY3k6ICcxMicsIHI6ICczJywga2V5OiAnMXY3enJkJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTEyIDE1djYnLCBrZXk6ICdhOW93czAnIH1dLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIEdpdENvbW1pdFZlcnRpY2FsXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NVElnTTNZMklpQXZQZ29nSUR4amFYSmpiR1VnWTNnOUlqRXlJaUJqZVQwaU1USWlJSEk5SWpNaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRFeUlERTFkallpSUM4K0Nqd3ZjM1puUGdvPSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvZ2l0LWNvbW1pdC12ZXJ0aWNhbFxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IEdpdENvbW1pdFZlcnRpY2FsID0gY3JlYXRlTHVjaWRlSWNvbignZ2l0LWNvbW1pdC12ZXJ0aWNhbCcsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBHaXRDb21taXRWZXJ0aWNhbDtcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgWydjaXJjbGUnLCB7IGN4OiAnNScsIGN5OiAnNicsIHI6ICczJywga2V5OiAnMXFub3YyJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTEyIDZoNWEyIDIgMCAwIDEgMiAydjcnLCBrZXk6ICcxeWo5MXknIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdtMTUgOS0zLTMgMy0zJywga2V5OiAnMWx3djhsJyB9XSxcbiAgWydjaXJjbGUnLCB7IGN4OiAnMTknLCBjeTogJzE4JywgcjogJzMnLCBrZXk6ICcxcWxqazInIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTIgMThIN2EyIDIgMCAwIDEtMi0yVjknLCBrZXk6ICcxNnNkZXAnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdtOSAxNSAzIDMtMyAzJywga2V5OiAnMW0za2JsJyB9XSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBHaXRDb21wYXJlQXJyb3dzXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThZMmx5WTJ4bElHTjRQU0kxSWlCamVUMGlOaUlnY2owaU15SWdMejRLSUNBOGNHRjBhQ0JrUFNKTk1USWdObWcxWVRJZ01pQXdJREFnTVNBeUlESjJOeUlnTHo0S0lDQThjR0YwYUNCa1BTSnRNVFVnT1MwekxUTWdNeTB6SWlBdlBnb2dJRHhqYVhKamJHVWdZM2c5SWpFNUlpQmplVDBpTVRnaUlISTlJak1pSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVEV5SURFNFNEZGhNaUF5SURBZ01DQXhMVEl0TWxZNUlpQXZQZ29nSUR4d1lYUm9JR1E5SW0wNUlERTFJRE1nTXkweklETWlJQzgrQ2p3dmMzWm5QZ289KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9naXQtY29tcGFyZS1hcnJvd3NcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBHaXRDb21wYXJlQXJyb3dzID0gY3JlYXRlTHVjaWRlSWNvbignZ2l0LWNvbXBhcmUtYXJyb3dzJywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IEdpdENvbXBhcmVBcnJvd3M7XG4iLCJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbXG4gIFsnY2lyY2xlJywgeyBjeDogJzEyJywgY3k6ICcxOCcsIHI6ICczJywga2V5OiAnMW1wZjFiJyB9XSxcbiAgWydjaXJjbGUnLCB7IGN4OiAnNicsIGN5OiAnNicsIHI6ICczJywga2V5OiAnMWxoOXdyJyB9XSxcbiAgWydjaXJjbGUnLCB7IGN4OiAnMTgnLCBjeTogJzYnLCByOiAnMycsIGtleTogJzFoN2cyNCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xOCA5djJjMCAuNi0uNCAxLTEgMUg3Yy0uNiAwLTEtLjQtMS0xVjknLCBrZXk6ICcxdXE0d2cnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTIgMTJ2MycsIGtleTogJzE1OGt2OCcgfV0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgR2l0Rm9ya1xuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4WTJseVkyeGxJR040UFNJeE1pSWdZM2s5SWpFNElpQnlQU0l6SWlBdlBnb2dJRHhqYVhKamJHVWdZM2c5SWpZaUlHTjVQU0kySWlCeVBTSXpJaUF2UGdvZ0lEeGphWEpqYkdVZ1kzZzlJakU0SWlCamVUMGlOaUlnY2owaU15SWdMejRLSUNBOGNHRjBhQ0JrUFNKTk1UZ2dPWFl5WXpBZ0xqWXRMalFnTVMweElERklOMk10TGpZZ01DMHhMUzQwTFRFdE1WWTVJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHhNaUF4TW5ZeklpQXZQZ284TDNOMlp6NEspIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2dpdC1mb3JrXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgR2l0Rm9yayA9IGNyZWF0ZUx1Y2lkZUljb24oJ2dpdC1mb3JrJywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IEdpdEZvcms7XG4iLCJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbXG4gIFsnY2lyY2xlJywgeyBjeDogJzE4JywgY3k6ICcxOCcsIHI6ICczJywga2V5OiAnMXhrd3QwJyB9XSxcbiAgWydjaXJjbGUnLCB7IGN4OiAnNicsIGN5OiAnNicsIHI6ICczJywga2V5OiAnMWxoOXdyJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTEzIDZoM2EyIDIgMCAwIDEgMiAydjcnLCBrZXk6ICcxeWViODYnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTEgMThIOGEyIDIgMCAwIDEtMi0yVjknLCBrZXk6ICcxOXB5em0nIH1dLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIEdpdENvbXBhcmVcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOFkybHlZMnhsSUdONFBTSXhPQ0lnWTNrOUlqRTRJaUJ5UFNJeklpQXZQZ29nSUR4amFYSmpiR1VnWTNnOUlqWWlJR041UFNJMklpQnlQU0l6SWlBdlBnb2dJRHh3WVhSb0lHUTlJazB4TXlBMmFETmhNaUF5SURBZ01DQXhJRElnTW5ZM0lpQXZQZ29nSUR4d1lYUm9JR1E5SWsweE1TQXhPRWc0WVRJZ01pQXdJREFnTVMweUxUSldPU0lnTHo0S1BDOXpkbWMrQ2c9PSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvZ2l0LWNvbXBhcmVcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBHaXRDb21wYXJlID0gY3JlYXRlTHVjaWRlSWNvbignZ2l0LWNvbXBhcmUnLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgR2l0Q29tcGFyZTtcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgWydjaXJjbGUnLCB7IGN4OiAnNScsIGN5OiAnNicsIHI6ICczJywga2V5OiAnMXFub3YyJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTUgOXY2Jywga2V5OiAnMTU4anJsJyB9XSxcbiAgWydjaXJjbGUnLCB7IGN4OiAnNScsIGN5OiAnMTgnLCByOiAnMycsIGtleTogJzEwNGdyOScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xMiAzdjE4Jywga2V5OiAnMTA4eGgzJyB9XSxcbiAgWydjaXJjbGUnLCB7IGN4OiAnMTknLCBjeTogJzYnLCByOiAnMycsIGtleTogJzEwOGE1dicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xNiAxNS43QTkgOSAwIDAgMCAxOSA5Jywga2V5OiAnMWUzdnFiJyB9XSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBHaXRHcmFwaFxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4WTJseVkyeGxJR040UFNJMUlpQmplVDBpTmlJZ2NqMGlNeUlnTHo0S0lDQThjR0YwYUNCa1BTSk5OU0E1ZGpZaUlDOCtDaUFnUEdOcGNtTnNaU0JqZUQwaU5TSWdZM2s5SWpFNElpQnlQU0l6SWlBdlBnb2dJRHh3WVhSb0lHUTlJazB4TWlBemRqRTRJaUF2UGdvZ0lEeGphWEpqYkdVZ1kzZzlJakU1SWlCamVUMGlOaUlnY2owaU15SWdMejRLSUNBOGNHRjBhQ0JrUFNKTk1UWWdNVFV1TjBFNUlEa2dNQ0F3SURBZ01Ua2dPU0lnTHo0S1BDOXpkbWMrQ2c9PSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvZ2l0LWdyYXBoXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgR2l0R3JhcGggPSBjcmVhdGVMdWNpZGVJY29uKCdnaXQtZ3JhcGgnLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgR2l0R3JhcGg7XG4iLCJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbXG4gIFsnY2lyY2xlJywgeyBjeDogJzE4JywgY3k6ICcxOCcsIHI6ICczJywga2V5OiAnMXhrd3QwJyB9XSxcbiAgWydjaXJjbGUnLCB7IGN4OiAnNicsIGN5OiAnNicsIHI6ICczJywga2V5OiAnMWxoOXdyJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTYgMjFWOWE5IDkgMCAwIDAgOSA5Jywga2V5OiAnN2t3MHNjJyB9XSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBHaXRNZXJnZVxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4WTJseVkyeGxJR040UFNJeE9DSWdZM2s5SWpFNElpQnlQU0l6SWlBdlBnb2dJRHhqYVhKamJHVWdZM2c5SWpZaUlHTjVQU0kySWlCeVBTSXpJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMDJJREl4VmpsaE9TQTVJREFnTUNBd0lEa2dPU0lnTHo0S1BDOXpkbWMrQ2c9PSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvZ2l0LW1lcmdlXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgR2l0TWVyZ2UgPSBjcmVhdGVMdWNpZGVJY29uKCdnaXQtbWVyZ2UnLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgR2l0TWVyZ2U7XG4iLCJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbXG4gIFsnY2lyY2xlJywgeyBjeDogJzUnLCBjeTogJzYnLCByOiAnMycsIGtleTogJzFxbm92MicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ001IDl2MTInLCBrZXk6ICdpaDg4OWEnIH1dLFxuICBbJ2NpcmNsZScsIHsgY3g6ICcxOScsIGN5OiAnMTgnLCByOiAnMycsIGtleTogJzFxbGprMicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ20xNSA5LTMtMyAzLTMnLCBrZXk6ICcxbHd2OGwnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTIgNmg1YTIgMiAwIDAgMSAyIDJ2NycsIGtleTogJzF5ajkxeScgfV0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgR2l0UHVsbFJlcXVlc3RBcnJvd1xuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4WTJseVkyeGxJR040UFNJMUlpQmplVDBpTmlJZ2NqMGlNeUlnTHo0S0lDQThjR0YwYUNCa1BTSk5OU0E1ZGpFeUlpQXZQZ29nSUR4amFYSmpiR1VnWTNnOUlqRTVJaUJqZVQwaU1UZ2lJSEk5SWpNaUlDOCtDaUFnUEhCaGRHZ2daRDBpYlRFMUlEa3RNeTB6SURNdE15SWdMejRLSUNBOGNHRjBhQ0JrUFNKTk1USWdObWcxWVRJZ01pQXdJREFnTVNBeUlESjJOeUlnTHo0S1BDOXpkbWMrQ2c9PSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvZ2l0LXB1bGwtcmVxdWVzdC1hcnJvd1xuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IEdpdFB1bGxSZXF1ZXN0QXJyb3cgPSBjcmVhdGVMdWNpZGVJY29uKCdnaXQtcHVsbC1yZXF1ZXN0LWFycm93JywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IEdpdFB1bGxSZXF1ZXN0QXJyb3c7XG4iLCJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbXG4gIFsnY2lyY2xlJywgeyBjeDogJzYnLCBjeTogJzYnLCByOiAnMycsIGtleTogJzFsaDl3cicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ002IDl2MTInLCBrZXk6ICcxc2MzMGsnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdtMjEgMy02IDYnLCBrZXk6ICcxNm5xc2snIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdtMjEgOS02LTYnLCBrZXk6ICc5ajE3cmgnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTggMTEuNVYxNScsIGtleTogJzY1eGY2ZicgfV0sXG4gIFsnY2lyY2xlJywgeyBjeDogJzE4JywgY3k6ICcxOCcsIHI6ICczJywga2V5OiAnMXhrd3QwJyB9XSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBHaXRQdWxsUmVxdWVzdENsb3NlZFxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4WTJseVkyeGxJR040UFNJMklpQmplVDBpTmlJZ2NqMGlNeUlnTHo0S0lDQThjR0YwYUNCa1BTSk5OaUE1ZGpFeUlpQXZQZ29nSUR4d1lYUm9JR1E5SW0weU1TQXpMVFlnTmlJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0p0TWpFZ09TMDJMVFlpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVEU0SURFeExqVldNVFVpSUM4K0NpQWdQR05wY21Oc1pTQmplRDBpTVRnaUlHTjVQU0l4T0NJZ2NqMGlNeUlnTHo0S1BDOXpkbWMrQ2c9PSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvZ2l0LXB1bGwtcmVxdWVzdC1jbG9zZWRcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBHaXRQdWxsUmVxdWVzdENsb3NlZCA9IGNyZWF0ZUx1Y2lkZUljb24oJ2dpdC1wdWxsLXJlcXVlc3QtY2xvc2VkJywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IEdpdFB1bGxSZXF1ZXN0Q2xvc2VkO1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbJ2NpcmNsZScsIHsgY3g6ICc1JywgY3k6ICc2JywgcjogJzMnLCBrZXk6ICcxcW5vdjInIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNNSA5djEyJywga2V5OiAnaWg4ODlhJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnbTE1IDktMy0zIDMtMycsIGtleTogJzFsd3Y4bCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xMiA2aDVhMiAyIDAgMCAxIDIgMnYzJywga2V5OiAnMXJid2s2JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTE5IDE1djYnLCBrZXk6ICcxMGFpb2EnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMjIgMThoLTYnLCBrZXk6ICcxZDVnaTUnIH1dLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIEdpdFB1bGxSZXF1ZXN0Q3JlYXRlQXJyb3dcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOFkybHlZMnhsSUdONFBTSTFJaUJqZVQwaU5pSWdjajBpTXlJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTlNBNWRqRXlJaUF2UGdvZ0lEeHdZWFJvSUdROUltMHhOU0E1TFRNdE15QXpMVE1pSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVEV5SURab05XRXlJRElnTUNBd0lERWdNaUF5ZGpNaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRFNUlERTFkallpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVEl5SURFNGFDMDJJaUF2UGdvOEwzTjJaejRLKSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9naXQtcHVsbC1yZXF1ZXN0LWNyZWF0ZS1hcnJvd1xuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IEdpdFB1bGxSZXF1ZXN0Q3JlYXRlQXJyb3cgPSBjcmVhdGVMdWNpZGVJY29uKCdnaXQtcHVsbC1yZXF1ZXN0LWNyZWF0ZS1hcnJvdycsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBHaXRQdWxsUmVxdWVzdENyZWF0ZUFycm93O1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbJ2NpcmNsZScsIHsgY3g6ICc2JywgY3k6ICc2JywgcjogJzMnLCBrZXk6ICcxbGg5d3InIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNNiA5djEyJywga2V5OiAnMXNjMzBrJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTEzIDZoM2EyIDIgMCAwIDEgMiAydjMnLCBrZXk6ICcxamI2ejMnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTggMTV2NicsIGtleTogJzl3Y2l5aScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00yMSAxOGgtNicsIGtleTogJzEzOWYwYycgfV0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgR2l0UHVsbFJlcXVlc3RDcmVhdGVcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOFkybHlZMnhsSUdONFBTSTJJaUJqZVQwaU5pSWdjajBpTXlJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTmlBNWRqRXlJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHhNeUEyYUROaE1pQXlJREFnTUNBeElESWdNbll6SWlBdlBnb2dJRHh3WVhSb0lHUTlJazB4T0NBeE5YWTJJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHlNU0F4T0dndE5pSWdMejRLUEM5emRtYytDZz09KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9naXQtcHVsbC1yZXF1ZXN0LWNyZWF0ZVxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IEdpdFB1bGxSZXF1ZXN0Q3JlYXRlID0gY3JlYXRlTHVjaWRlSWNvbignZ2l0LXB1bGwtcmVxdWVzdC1jcmVhdGUnLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgR2l0UHVsbFJlcXVlc3RDcmVhdGU7XG4iLCJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbXG4gIFsnY2lyY2xlJywgeyBjeDogJzE4JywgY3k6ICcxOCcsIHI6ICczJywga2V5OiAnMXhrd3QwJyB9XSxcbiAgWydjaXJjbGUnLCB7IGN4OiAnNicsIGN5OiAnNicsIHI6ICczJywga2V5OiAnMWxoOXdyJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTE4IDZWNScsIGtleTogJzFvYW8ycycgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xOCAxMXYtMScsIGtleTogJzExYzh0eicgfV0sXG4gIFsnbGluZScsIHsgeDE6ICc2JywgeDI6ICc2JywgeTE6ICc5JywgeTI6ICcyMScsIGtleTogJ3Jyb3VwJyB9XSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBHaXRQdWxsUmVxdWVzdERyYWZ0XG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThZMmx5WTJ4bElHTjRQU0l4T0NJZ1kzazlJakU0SWlCeVBTSXpJaUF2UGdvZ0lEeGphWEpqYkdVZ1kzZzlJallpSUdONVBTSTJJaUJ5UFNJeklpQXZQZ29nSUR4d1lYUm9JR1E5SWsweE9DQTJWalVpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVEU0SURFeGRpMHhJaUF2UGdvZ0lEeHNhVzVsSUhneFBTSTJJaUI0TWowaU5pSWdlVEU5SWpraUlIa3lQU0l5TVNJZ0x6NEtQQzl6ZG1jK0NnPT0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2dpdC1wdWxsLXJlcXVlc3QtZHJhZnRcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBHaXRQdWxsUmVxdWVzdERyYWZ0ID0gY3JlYXRlTHVjaWRlSWNvbignZ2l0LXB1bGwtcmVxdWVzdC1kcmFmdCcsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBHaXRQdWxsUmVxdWVzdERyYWZ0O1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbJ2NpcmNsZScsIHsgY3g6ICcxOCcsIGN5OiAnMTgnLCByOiAnMycsIGtleTogJzF4a3d0MCcgfV0sXG4gIFsnY2lyY2xlJywgeyBjeDogJzYnLCBjeTogJzYnLCByOiAnMycsIGtleTogJzFsaDl3cicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xMyA2aDNhMiAyIDAgMCAxIDIgMnY3Jywga2V5OiAnMXllYjg2JyB9XSxcbiAgWydsaW5lJywgeyB4MTogJzYnLCB4MjogJzYnLCB5MTogJzknLCB5MjogJzIxJywga2V5OiAncnJvdXAnIH1dLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIEdpdFB1bGxSZXF1ZXN0XG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThZMmx5WTJ4bElHTjRQU0l4T0NJZ1kzazlJakU0SWlCeVBTSXpJaUF2UGdvZ0lEeGphWEpqYkdVZ1kzZzlJallpSUdONVBTSTJJaUJ5UFNJeklpQXZQZ29nSUR4d1lYUm9JR1E5SWsweE15QTJhRE5oTWlBeUlEQWdNQ0F4SURJZ01uWTNJaUF2UGdvZ0lEeHNhVzVsSUhneFBTSTJJaUI0TWowaU5pSWdlVEU5SWpraUlIa3lQU0l5TVNJZ0x6NEtQQzl6ZG1jK0NnPT0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2dpdC1wdWxsLXJlcXVlc3RcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBHaXRQdWxsUmVxdWVzdCA9IGNyZWF0ZUx1Y2lkZUljb24oJ2dpdC1wdWxsLXJlcXVlc3QnLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgR2l0UHVsbFJlcXVlc3Q7XG4iLCJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbXG4gIFtcbiAgICAncGF0aCcsXG4gICAge1xuICAgICAgZDogJ00xNSAyMnYtNGE0LjggNC44IDAgMCAwLTEtMy41YzMgMCA2LTIgNi01LjUuMDgtMS4yNS0uMjctMi40OC0xLTMuNS4yOC0xLjE1LjI4LTIuMzUgMC0zLjUgMCAwLTEgMC0zIDEuNS0yLjY0LS41LTUuMzYtLjUtOCAwQzYgMiA1IDIgNSAyYy0uMyAxLjE1LS4zIDIuMzUgMCAzLjVBNS40MDMgNS40MDMgMCAwIDAgNCA5YzAgMy41IDMgNS41IDYgNS41LS4zOS40OS0uNjggMS4wNS0uODUgMS42NS0uMTcuNi0uMjIgMS4yMy0uMTUgMS44NXY0JyxcbiAgICAgIGtleTogJ3RvbmVmJyxcbiAgICB9LFxuICBdLFxuICBbJ3BhdGgnLCB7IGQ6ICdNOSAxOGMtNC41MSAyLTUtMi03LTInLCBrZXk6ICc5Y29tc24nIH1dLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIEdpdGh1YlxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTVRVZ01qSjJMVFJoTkM0NElEUXVPQ0F3SURBZ01DMHhMVE11TldNeklEQWdOaTB5SURZdE5TNDFMakE0TFRFdU1qVXRMakkzTFRJdU5EZ3RNUzB6TGpVdU1qZ3RNUzR4TlM0eU9DMHlMak0xSURBdE15NDFJREFnTUMweElEQXRNeUF4TGpVdE1pNDJOQzB1TlMwMUxqTTJMUzQxTFRnZ01FTTJJRElnTlNBeUlEVWdNbU10TGpNZ01TNHhOUzB1TXlBeUxqTTFJREFnTXk0MVFUVXVOREF6SURVdU5EQXpJREFnTUNBd0lEUWdPV013SURNdU5TQXpJRFV1TlNBMklEVXVOUzB1TXprdU5Ea3RMalk0SURFdU1EVXRMamcxSURFdU5qVXRMakUzTGpZdExqSXlJREV1TWpNdExqRTFJREV1T0RWMk5DSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk9TQXhPR010TkM0MU1TQXlMVFV0TWkwM0xUSWlJQzgrQ2p3dmMzWm5QZ289KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9naXRodWJcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKiBAZGVwcmVjYXRlZCBCcmFuZCBpY29ucyBoYXZlIGJlZW4gZGVwcmVjYXRlZCBhbmQgYXJlIGR1ZSB0byBiZSByZW1vdmVkLCBwbGVhc2UgcmVmZXIgdG8gaHR0cHM6Ly9naXRodWIuY29tL2x1Y2lkZS1pY29ucy9sdWNpZGUvaXNzdWVzLzY3MC4gV2UgcmVjb21tZW5kIHVzaW5nIGh0dHBzOi8vc2ltcGxlaWNvbnMub3JnLz9xPWdpdGh1YiBpbnN0ZWFkLiBUaGlzIGljb24gd2lsbCBiZSByZW1vdmVkIGluIHYxLjBcbiAqL1xuY29uc3QgR2l0aHViID0gY3JlYXRlTHVjaWRlSWNvbignZ2l0aHViJywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IEdpdGh1YjtcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgW1xuICAgICdwYXRoJyxcbiAgICB7XG4gICAgICBkOiAnbTIyIDEzLjI5LTMuMzMtMTBhLjQyLjQyIDAgMCAwLS4xNC0uMTguMzguMzggMCAwIDAtLjIyLS4xMS4zOS4zOSAwIDAgMC0uMjMuMDcuNDIuNDIgMCAwIDAtLjE0LjE4bC0yLjI2IDYuNjdIOC4zMkw2LjEgMy4yNmEuNDIuNDIgMCAwIDAtLjEtLjE4LjM4LjM4IDAgMCAwLS4yNi0uMDguMzkuMzkgMCAwIDAtLjIzLjA3LjQyLjQyIDAgMCAwLS4xNC4xOEwyIDEzLjI5YS43NC43NCAwIDAgMCAuMjcuODNMMTIgMjFsOS42OS02Ljg4YS43MS43MSAwIDAgMCAuMzEtLjgzWicsXG4gICAgICBrZXk6ICcxNDhwZGknLFxuICAgIH0sXG4gIF0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgR2l0bGFiXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSnRNaklnTVRNdU1qa3RNeTR6TXkweE1HRXVOREl1TkRJZ01DQXdJREF0TGpFMExTNHhPQzR6T0M0ek9DQXdJREFnTUMwdU1qSXRMakV4TGpNNUxqTTVJREFnTUNBd0xTNHlNeTR3Tnk0ME1pNDBNaUF3SURBZ01DMHVNVFF1TVRoc0xUSXVNallnTmk0Mk4wZzRMak15VERZdU1TQXpMakkyWVM0ME1pNDBNaUF3SURBZ01DMHVNUzB1TVRndU16Z3VNemdnTUNBd0lEQXRMakkyTFM0d09DNHpPUzR6T1NBd0lEQWdNQzB1TWpNdU1EY3VOREl1TkRJZ01DQXdJREF0TGpFMExqRTRURElnTVRNdU1qbGhMamMwTGpjMElEQWdNQ0F3SUM0eU55NDRNMHd4TWlBeU1XdzVMalk1TFRZdU9EaGhMamN4TGpjeElEQWdNQ0F3SUM0ek1TMHVPRE5hSWlBdlBnbzhMM04yWno0SykgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvZ2l0bGFiXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICogQGRlcHJlY2F0ZWQgQnJhbmQgaWNvbnMgaGF2ZSBiZWVuIGRlcHJlY2F0ZWQgYW5kIGFyZSBkdWUgdG8gYmUgcmVtb3ZlZCwgcGxlYXNlIHJlZmVyIHRvIGh0dHBzOi8vZ2l0aHViLmNvbS9sdWNpZGUtaWNvbnMvbHVjaWRlL2lzc3Vlcy82NzAuIFdlIHJlY29tbWVuZCB1c2luZyBodHRwczovL3NpbXBsZWljb25zLm9yZy8/cT1naXRsYWIgaW5zdGVhZC4gVGhpcyBpY29uIHdpbGwgYmUgcmVtb3ZlZCBpbiB2MS4wXG4gKi9cbmNvbnN0IEdpdGxhYiA9IGNyZWF0ZUx1Y2lkZUljb24oJ2dpdGxhYicsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBHaXRsYWI7XG4iLCJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbXG4gIFtcbiAgICAncGF0aCcsXG4gICAge1xuICAgICAgZDogJ001LjExNiA0LjEwNEExIDEgMCAwIDEgNi4xMSAzaDExLjc4YTEgMSAwIDAgMSAuOTk0IDEuMTA1TDE3LjE5IDIwLjIxQTIgMiAwIDAgMSAxNS4yIDIySDguOGEyIDIgMCAwIDEtMi0xLjc5eicsXG4gICAgICBrZXk6ICdwNTV6NHknLFxuICAgIH0sXG4gIF0sXG4gIFsncGF0aCcsIHsgZDogJ002IDEyYTUgNSAwIDAgMSA2IDAgNSA1IDAgMCAwIDYgMCcsIGtleTogJ21qbnRjeScgfV0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgR2xhc3NXYXRlclxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTlM0eE1UWWdOQzR4TURSQk1TQXhJREFnTUNBeElEWXVNVEVnTTJneE1TNDNPR0V4SURFZ01DQXdJREVnTGprNU5DQXhMakV3TlV3eE55NHhPU0F5TUM0eU1VRXlJRElnTUNBd0lERWdNVFV1TWlBeU1rZzRMamhoTWlBeUlEQWdNQ0F4TFRJdE1TNDNPWG9pSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVFlnTVRKaE5TQTFJREFnTUNBeElEWWdNQ0ExSURVZ01DQXdJREFnTmlBd0lpQXZQZ284TDNOMlp6NEspIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2dsYXNzLXdhdGVyXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgR2xhc3NXYXRlciA9IGNyZWF0ZUx1Y2lkZUljb24oJ2dsYXNzLXdhdGVyJywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IEdsYXNzV2F0ZXI7XG4iLCJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbXG4gIFsnY2lyY2xlJywgeyBjeDogJzYnLCBjeTogJzE1JywgcjogJzQnLCBrZXk6ICd2dXg5dzQnIH1dLFxuICBbJ2NpcmNsZScsIHsgY3g6ICcxOCcsIGN5OiAnMTUnLCByOiAnNCcsIGtleTogJzE4bzh2ZScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xNCAxNWEyIDIgMCAwIDAtMi0yIDIgMiAwIDAgMC0yIDInLCBrZXk6ICcxYWc0YnMnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMi41IDEzIDUgN2MuNy0xLjMgMS40LTIgMy0yJywga2V5OiAnMWhtMWdzJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTIxLjUgMTMgMTkgN2MtLjctMS4zLTEuNS0yLTMtMicsIGtleTogJzFyMzFhaScgfV0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgR2xhc3Nlc1xuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4WTJseVkyeGxJR040UFNJMklpQmplVDBpTVRVaUlISTlJalFpSUM4K0NpQWdQR05wY21Oc1pTQmplRDBpTVRnaUlHTjVQU0l4TlNJZ2NqMGlOQ0lnTHo0S0lDQThjR0YwYUNCa1BTSk5NVFFnTVRWaE1pQXlJREFnTUNBd0xUSXRNaUF5SURJZ01DQXdJREF0TWlBeUlpQXZQZ29nSUR4d1lYUm9JR1E5SWsweUxqVWdNVE1nTlNBM1l5NDNMVEV1TXlBeExqUXRNaUF6TFRJaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRJeExqVWdNVE1nTVRrZ04yTXRMamN0TVM0ekxURXVOUzB5TFRNdE1pSWdMejRLUEM5emRtYytDZz09KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9nbGFzc2VzXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgR2xhc3NlcyA9IGNyZWF0ZUx1Y2lkZUljb24oJ2dsYXNzZXMnLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgR2xhc3NlcztcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgW1xuICAgICdwYXRoJyxcbiAgICB7XG4gICAgICBkOiAnTTE1LjY4NiAxNUExNC41IDE0LjUgMCAwIDEgMTIgMjJhMTQuNSAxNC41IDAgMCAxIDAtMjAgMTAgMTAgMCAxIDAgOS41NDIgMTMnLFxuICAgICAga2V5OiAncWt0MHg2JyxcbiAgICB9LFxuICBdLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMiAxMmg4LjUnLCBrZXk6ICdvdmFnZ2QnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMjAgNlY0YTIgMiAwIDEgMC00IDB2MicsIGtleTogJzFvZjVlOCcgfV0sXG4gIFsncmVjdCcsIHsgd2lkdGg6ICc4JywgaGVpZ2h0OiAnNScsIHg6ICcxNCcsIHk6ICc2Jywgcng6ICcxJywga2V5OiAnMWZtZjUxJyB9XSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBHbG9iZUxvY2tcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1UVXVOamcySURFMVFURTBMalVnTVRRdU5TQXdJREFnTVNBeE1pQXlNbUV4TkM0MUlERTBMalVnTUNBd0lERWdNQzB5TUNBeE1DQXhNQ0F3SURFZ01DQTVMalUwTWlBeE15SWdMejRLSUNBOGNHRjBhQ0JrUFNKTk1pQXhNbWc0TGpVaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRJd0lEWldOR0V5SURJZ01DQXhJREF0TkNBd2RqSWlJQzgrQ2lBZ1BISmxZM1FnZDJsa2RHZzlJamdpSUdobGFXZG9kRDBpTlNJZ2VEMGlNVFFpSUhrOUlqWWlJSEo0UFNJeElpQXZQZ284TDNOMlp6NEspIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2dsb2JlLWxvY2tcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBHbG9iZUxvY2sgPSBjcmVhdGVMdWNpZGVJY29uKCdnbG9iZS1sb2NrJywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IEdsb2JlTG9jaztcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgWydjaXJjbGUnLCB7IGN4OiAnMTInLCBjeTogJzEyJywgcjogJzEwJywga2V5OiAnMW1nbGF5JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTEyIDJhMTQuNSAxNC41IDAgMCAwIDAgMjAgMTQuNSAxNC41IDAgMCAwIDAtMjAnLCBrZXk6ICcxM28xemwnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMiAxMmgyMCcsIGtleTogJzlpNHB1NCcgfV0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgR2xvYmVcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOFkybHlZMnhsSUdONFBTSXhNaUlnWTNrOUlqRXlJaUJ5UFNJeE1DSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk1USWdNbUV4TkM0MUlERTBMalVnTUNBd0lEQWdNQ0F5TUNBeE5DNDFJREUwTGpVZ01DQXdJREFnTUMweU1DSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk1pQXhNbWd5TUNJZ0x6NEtQQzl6ZG1jK0NnPT0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2dsb2JlXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgR2xvYmUgPSBjcmVhdGVMdWNpZGVJY29uKCdnbG9iZScsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBHbG9iZTtcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTEyIDEzVjJsOCA0LTggNCcsIGtleTogJzV3bHd3aicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00yMC41NjEgMTAuMjIyYTkgOSAwIDEgMS0xMi41NS01LjI5Jywga2V5OiAnMWMwd2p2JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTguMDAyIDkuOTk3YTUgNSAwIDEgMCA4LjkgMi4wMicsIGtleTogJ2diMWc3bScgfV0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgR29hbFxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTVRJZ01UTldNbXc0SURRdE9DQTBJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHlNQzQxTmpFZ01UQXVNakl5WVRrZ09TQXdJREVnTVMweE1pNDFOUzAxTGpJNUlpQXZQZ29nSUR4d1lYUm9JR1E5SWswNExqQXdNaUE1TGprNU4yRTFJRFVnTUNBeElEQWdPQzQ1SURJdU1ESWlJQzgrQ2p3dmMzWm5QZ289KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9nb2FsXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgR29hbCA9IGNyZWF0ZUx1Y2lkZUljb24oJ2dvYWwnLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgR29hbDtcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTIgMjFWMycsIGtleTogJzFiems0dycgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00yIDVoMThhMiAyIDAgMCAxIDIgMnY4YTIgMiAwIDAgMS0yIDJIMi4yNicsIGtleTogJzFkNjRwaScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ003IDE3djNhMSAxIDAgMCAwIDEgMWg1YTEgMSAwIDAgMCAxLTF2LTMnLCBrZXk6ICc1aGJxYmYnIH1dLFxuICBbJ2NpcmNsZScsIHsgY3g6ICcxNicsIGN5OiAnMTEnLCByOiAnMicsIGtleTogJ3F0MTVyYicgfV0sXG4gIFsnY2lyY2xlJywgeyBjeDogJzgnLCBjeTogJzExJywgcjogJzInLCBrZXk6ICdzc2lkZWcnIH1dLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIEdwdVxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTWlBeU1WWXpJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHlJRFZvTVRoaE1pQXlJREFnTUNBeElESWdNblk0WVRJZ01pQXdJREFnTVMweUlESklNaTR5TmlJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTnlBeE4zWXpZVEVnTVNBd0lEQWdNQ0F4SURGb05XRXhJREVnTUNBd0lEQWdNUzB4ZGkweklpQXZQZ29nSUR4amFYSmpiR1VnWTNnOUlqRTJJaUJqZVQwaU1URWlJSEk5SWpJaUlDOCtDaUFnUEdOcGNtTnNaU0JqZUQwaU9DSWdZM2s5SWpFeElpQnlQU0l5SWlBdlBnbzhMM04yWno0PSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvZ3B1XG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgR3B1ID0gY3JlYXRlTHVjaWRlSWNvbignZ3B1JywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IEdwdTtcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTE4IDExLjVWOWEyIDIgMCAwIDAtMi0yYTIgMiAwIDAgMC0yIDJ2MS40Jywga2V5OiAnZWRzdHl5JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTE0IDEwVjhhMiAyIDAgMCAwLTItMmEyIDIgMCAwIDAtMiAydjInLCBrZXk6ICcxOXdkd28nIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTAgOS45VjlhMiAyIDAgMCAwLTItMmEyIDIgMCAwIDAtMiAydjUnLCBrZXk6ICcxbHVncW8nIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNNiAxNGEyIDIgMCAwIDAtMi0yYTIgMiAwIDAgMC0yIDInLCBrZXk6ICcxaGJldXMnIH1dLFxuICBbXG4gICAgJ3BhdGgnLFxuICAgIHsgZDogJ00xOCAxMWEyIDIgMCAxIDEgNCAwdjNhOCA4IDAgMCAxLTggOGgtNGE4IDggMCAwIDEtOC04IDIgMiAwIDEgMSA0IDAnLCBrZXk6ICcxZXRmZm0nIH0sXG4gIF0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgR3JhYlxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTVRnZ01URXVOVlk1WVRJZ01pQXdJREFnTUMweUxUSmhNaUF5SURBZ01DQXdMVElnTW5ZeExqUWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRURTBJREV3VmpoaE1pQXlJREFnTUNBd0xUSXRNbUV5SURJZ01DQXdJREF0TWlBeWRqSWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRURXdJRGt1T1ZZNVlUSWdNaUF3SURBZ01DMHlMVEpoTWlBeUlEQWdNQ0F3TFRJZ01uWTFJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMDJJREUwWVRJZ01pQXdJREFnTUMweUxUSmhNaUF5SURBZ01DQXdMVElnTWlJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTVRnZ01URmhNaUF5SURBZ01TQXhJRFFnTUhZellUZ2dPQ0F3SURBZ01TMDRJRGhvTFRSaE9DQTRJREFnTUNBeExUZ3RPQ0F5SURJZ01DQXhJREVnTkNBd0lpQXZQZ284TDNOMlp6NEspIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2dyYWJcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBHcmFiID0gY3JlYXRlTHVjaWRlSWNvbignZ3JhYicsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBHcmFiO1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbXG4gICAgJ3BhdGgnLFxuICAgIHtcbiAgICAgIGQ6ICdNMjEuNDIgMTAuOTIyYTEgMSAwIDAgMC0uMDE5LTEuODM4TDEyLjgzIDUuMThhMiAyIDAgMCAwLTEuNjYgMEwyLjYgOS4wOGExIDEgMCAwIDAgMCAxLjgzMmw4LjU3IDMuOTA4YTIgMiAwIDAgMCAxLjY2IDB6JyxcbiAgICAgIGtleTogJ2o3NmpsMCcsXG4gICAgfSxcbiAgXSxcbiAgWydwYXRoJywgeyBkOiAnTTIyIDEwdjYnLCBrZXk6ICcxbHU4ZjMnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNNiAxMi41VjE2YTYgMyAwIDAgMCAxMiAwdi0zLjUnLCBrZXk6ICcxcjhsZWYnIH1dLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIEdyYWR1YXRpb25DYXBcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1qRXVORElnTVRBdU9USXlZVEVnTVNBd0lEQWdNQzB1TURFNUxURXVPRE00VERFeUxqZ3pJRFV1TVRoaE1pQXlJREFnTUNBd0xURXVOallnTUV3eUxqWWdPUzR3T0dFeElERWdNQ0F3SURBZ01DQXhMamd6TW13NExqVTNJRE11T1RBNFlUSWdNaUF3SURBZ01DQXhMalkySURCNklpQXZQZ29nSUR4d1lYUm9JR1E5SWsweU1pQXhNSFkySWlBdlBnb2dJRHh3WVhSb0lHUTlJazAySURFeUxqVldNVFpoTmlBeklEQWdNQ0F3SURFeUlEQjJMVE11TlNJZ0x6NEtQQzl6ZG1jK0NnPT0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2dyYWR1YXRpb24tY2FwXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgR3JhZHVhdGlvbkNhcCA9IGNyZWF0ZUx1Y2lkZUljb24oJ2dyYWR1YXRpb24tY2FwJywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IEdyYWR1YXRpb25DYXA7XG4iLCJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ00yMiA1VjJsLTUuODkgNS44OScsIGtleTogJzFlZW5wbycgfV0sXG4gIFsnY2lyY2xlJywgeyBjeDogJzE2LjYnLCBjeTogJzE1Ljg5JywgcjogJzMnLCBrZXk6ICd4anRhbHgnIH1dLFxuICBbJ2NpcmNsZScsIHsgY3g6ICc4LjExJywgY3k6ICc3LjQnLCByOiAnMycsIGtleTogJ3UyZnY2aScgfV0sXG4gIFsnY2lyY2xlJywgeyBjeDogJzEyLjM1JywgY3k6ICcxMS42NScsIHI6ICczJywga2V5OiAnaTZpOGc3JyB9XSxcbiAgWydjaXJjbGUnLCB7IGN4OiAnMTMuOTEnLCBjeTogJzUuODUnLCByOiAnMycsIGtleTogJzZ5ZTBkdicgfV0sXG4gIFsnY2lyY2xlJywgeyBjeDogJzE4LjE1JywgY3k6ICcxMC4wOScsIHI6ICczJywga2V5OiAnc254OW5vJyB9XSxcbiAgWydjaXJjbGUnLCB7IGN4OiAnNi41NicsIGN5OiAnMTMuMicsIHI6ICczJywga2V5OiAnMTd4NHhnJyB9XSxcbiAgWydjaXJjbGUnLCB7IGN4OiAnMTAuOCcsIGN5OiAnMTcuNDQnLCByOiAnMycsIGtleTogJzFob2d3OScgfV0sXG4gIFsnY2lyY2xlJywgeyBjeDogJzUnLCBjeTogJzE5JywgcjogJzMnLCBrZXk6ICcxc242dm8nIH1dLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIEdyYXBlXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NaklnTlZZeWJDMDFMamc1SURVdU9Ea2lJQzgrQ2lBZ1BHTnBjbU5zWlNCamVEMGlNVFl1TmlJZ1kzazlJakUxTGpnNUlpQnlQU0l6SWlBdlBnb2dJRHhqYVhKamJHVWdZM2c5SWpndU1URWlJR041UFNJM0xqUWlJSEk5SWpNaUlDOCtDaUFnUEdOcGNtTnNaU0JqZUQwaU1USXVNelVpSUdONVBTSXhNUzQyTlNJZ2NqMGlNeUlnTHo0S0lDQThZMmx5WTJ4bElHTjRQU0l4TXk0NU1TSWdZM2s5SWpVdU9EVWlJSEk5SWpNaUlDOCtDaUFnUEdOcGNtTnNaU0JqZUQwaU1UZ3VNVFVpSUdONVBTSXhNQzR3T1NJZ2NqMGlNeUlnTHo0S0lDQThZMmx5WTJ4bElHTjRQU0kyTGpVMklpQmplVDBpTVRNdU1pSWdjajBpTXlJZ0x6NEtJQ0E4WTJseVkyeGxJR040UFNJeE1DNDRJaUJqZVQwaU1UY3VORFFpSUhJOUlqTWlJQzgrQ2lBZ1BHTnBjbU5zWlNCamVEMGlOU0lnWTNrOUlqRTVJaUJ5UFNJeklpQXZQZ284TDNOMlp6NEspIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2dyYXBlXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgR3JhcGUgPSBjcmVhdGVMdWNpZGVJY29uKCdncmFwZScsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBHcmFwZTtcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgW1xuICAgICdwYXRoJyxcbiAgICB7XG4gICAgICBkOiAnTTEyIDN2MTdhMSAxIDAgMCAxLTEgMUg1YTIgMiAwIDAgMS0yLTJWNWEyIDIgMCAwIDEgMi0yaDE0YTIgMiAwIDAgMSAyIDJ2NmExIDEgMCAwIDEtMSAxSDMnLFxuICAgICAga2V5OiAnMTF6YTFwJyxcbiAgICB9LFxuICBdLFxuICBbJ3BhdGgnLCB7IGQ6ICdtMTYgMTkgMiAyIDQtNCcsIGtleTogJzFiMTRtNicgfV0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgR3JpZDJ4MkNoZWNrXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NVElnTTNZeE4yRXhJREVnTUNBd0lERXRNU0F4U0RWaE1pQXlJREFnTUNBeExUSXRNbFkxWVRJZ01pQXdJREFnTVNBeUxUSm9NVFJoTWlBeUlEQWdNQ0F4SURJZ01uWTJZVEVnTVNBd0lEQWdNUzB4SURGSU15SWdMejRLSUNBOGNHRjBhQ0JrUFNKdE1UWWdNVGtnTWlBeUlEUXROQ0lnTHo0S1BDOXpkbWMrQ2c9PSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvZ3JpZC0yeDItY2hlY2tcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBHcmlkMngyQ2hlY2sgPSBjcmVhdGVMdWNpZGVJY29uKCdncmlkLTJ4Mi1jaGVjaycsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBHcmlkMngyQ2hlY2s7XG4iLCJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbXG4gIFtcbiAgICAncGF0aCcsXG4gICAge1xuICAgICAgZDogJ00xMiAzdjE3YTEgMSAwIDAgMS0xIDFINWEyIDIgMCAwIDEtMi0yVjVhMiAyIDAgMCAxIDItMmgxNGEyIDIgMCAwIDEgMiAydjZhMSAxIDAgMCAxLTEgMUgzJyxcbiAgICAgIGtleTogJzExemExcCcsXG4gICAgfSxcbiAgXSxcbiAgWydwYXRoJywgeyBkOiAnTTE2IDE5aDYnLCBrZXk6ICd4d2czMWknIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTkgMjJ2LTYnLCBrZXk6ICdxaG1pd2knIH1dLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIEdyaWQyeDJQbHVzXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NVElnTTNZeE4yRXhJREVnTUNBd0lERXRNU0F4U0RWaE1pQXlJREFnTUNBeExUSXRNbFkxWVRJZ01pQXdJREFnTVNBeUxUSm9NVFJoTWlBeUlEQWdNQ0F4SURJZ01uWTJZVEVnTVNBd0lEQWdNUzB4SURGSU15SWdMejRLSUNBOGNHRjBhQ0JrUFNKTk1UWWdNVGxvTmlJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTVRrZ01qSjJMVFlpSUM4K0Nqd3ZjM1puUGdvPSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvZ3JpZC0yeDItcGx1c1xuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IEdyaWQyeDJQbHVzID0gY3JlYXRlTHVjaWRlSWNvbignZ3JpZC0yeDItcGx1cycsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBHcmlkMngyUGx1cztcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgW1xuICAgICdwYXRoJyxcbiAgICB7XG4gICAgICBkOiAnTTEyIDN2MTdhMSAxIDAgMCAxLTEgMUg1YTIgMiAwIDAgMS0yLTJWNWEyIDIgMCAwIDEgMi0yaDE0YTIgMiAwIDAgMSAyIDJ2NmExIDEgMCAwIDEtMSAxSDMnLFxuICAgICAga2V5OiAnMTF6YTFwJyxcbiAgICB9LFxuICBdLFxuICBbJ3BhdGgnLCB7IGQ6ICdtMTYgMTYgNSA1Jywga2V5OiAnOHRwYjA3JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnbTE2IDIxIDUtNScsIGtleTogJzE5M2psbCcgfV0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgR3JpZDJ4MlhcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1USWdNM1l4TjJFeElERWdNQ0F3SURFdE1TQXhTRFZoTWlBeUlEQWdNQ0F4TFRJdE1sWTFZVElnTWlBd0lEQWdNU0F5TFRKb01UUmhNaUF5SURBZ01DQXhJRElnTW5ZMllURWdNU0F3SURBZ01TMHhJREZJTXlJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0p0TVRZZ01UWWdOU0ExSWlBdlBnb2dJRHh3WVhSb0lHUTlJbTB4TmlBeU1TQTFMVFVpSUM4K0Nqd3ZjM1puUGdvPSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvZ3JpZC0yeDIteFxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IEdyaWQyeDJYID0gY3JlYXRlTHVjaWRlSWNvbignZ3JpZC0yeDIteCcsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBHcmlkMngyWDtcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTEyIDN2MTgnLCBrZXk6ICcxMDh4aDMnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMyAxMmgxOCcsIGtleTogJzFpMm4yMScgfV0sXG4gIFsncmVjdCcsIHsgeDogJzMnLCB5OiAnMycsIHdpZHRoOiAnMTgnLCBoZWlnaHQ6ICcxOCcsIHJ4OiAnMicsIGtleTogJ2gxb2liJyB9XSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBHcmlkMngyXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NVElnTTNZeE9DSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk15QXhNbWd4T0NJZ0x6NEtJQ0E4Y21WamRDQjRQU0l6SWlCNVBTSXpJaUIzYVdSMGFEMGlNVGdpSUdobGFXZG9kRDBpTVRnaUlISjRQU0l5SWlBdlBnbzhMM04yWno0SykgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvZ3JpZC0yeDJcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBHcmlkMngyID0gY3JlYXRlTHVjaWRlSWNvbignZ3JpZC0yeDInLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgR3JpZDJ4MjtcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTE1IDN2MTgnLCBrZXk6ICcxNG52cDAnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMyAxMmgxOCcsIGtleTogJzFpMm4yMScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ005IDN2MTgnLCBrZXk6ICdmaDNocWEnIH1dLFxuICBbJ3JlY3QnLCB7IHg6ICczJywgeTogJzMnLCB3aWR0aDogJzE4JywgaGVpZ2h0OiAnMTgnLCByeDogJzInLCBrZXk6ICdoMW9pYicgfV0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgR3JpZDN4MlxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTVRVZ00zWXhPQ0lnTHo0S0lDQThjR0YwYUNCa1BTSk5NeUF4TW1neE9DSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk9TQXpkakU0SWlBdlBnb2dJRHh5WldOMElIZzlJak1pSUhrOUlqTWlJSGRwWkhSb1BTSXhPQ0lnYUdWcFoyaDBQU0l4T0NJZ2NuZzlJaklpSUM4K0Nqd3ZjM1puUGdvPSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvZ3JpZC0zeDJcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBHcmlkM3gyID0gY3JlYXRlTHVjaWRlSWNvbignZ3JpZC0zeDInLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgR3JpZDN4MjtcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgWydyZWN0JywgeyB3aWR0aDogJzE4JywgaGVpZ2h0OiAnMTgnLCB4OiAnMycsIHk6ICczJywgcng6ICcyJywga2V5OiAnYWZpdHY3JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTMgOWgxOCcsIGtleTogJzFwdWRjdCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00zIDE1aDE4Jywga2V5OiAnNXhzaHVwJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTkgM3YxOCcsIGtleTogJ2ZoM2hxYScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xNSAzdjE4Jywga2V5OiAnMTRudnAwJyB9XSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBHcmlkM3gzXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjbVZqZENCM2FXUjBhRDBpTVRnaUlHaGxhV2RvZEQwaU1UZ2lJSGc5SWpNaUlIazlJak1pSUhKNFBTSXlJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHpJRGxvTVRnaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRNZ01UVm9NVGdpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVGtnTTNZeE9DSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk1UVWdNM1l4T0NJZ0x6NEtQQzl6ZG1jK0NnPT0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2dyaWQtM3gzXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgR3JpZDN4MyA9IGNyZWF0ZUx1Y2lkZUljb24oJ2dyaWQtM3gzJywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IEdyaWQzeDM7XG4iLCJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbXG4gIFsnY2lyY2xlJywgeyBjeDogJzEyJywgY3k6ICc5JywgcjogJzEnLCBrZXk6ICcxMjRtdHknIH1dLFxuICBbJ2NpcmNsZScsIHsgY3g6ICcxOScsIGN5OiAnOScsIHI6ICcxJywga2V5OiAnMXJ1em8yJyB9XSxcbiAgWydjaXJjbGUnLCB7IGN4OiAnNScsIGN5OiAnOScsIHI6ICcxJywga2V5OiAnMWE4YjI4JyB9XSxcbiAgWydjaXJjbGUnLCB7IGN4OiAnMTInLCBjeTogJzE1JywgcjogJzEnLCBrZXk6ICcxZTU2eGcnIH1dLFxuICBbJ2NpcmNsZScsIHsgY3g6ICcxOScsIGN5OiAnMTUnLCByOiAnMScsIGtleTogJzFhOTJlcCcgfV0sXG4gIFsnY2lyY2xlJywgeyBjeDogJzUnLCBjeTogJzE1JywgcjogJzEnLCBrZXk6ICc1cjFqd3knIH1dLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIEdyaXBIb3Jpem9udGFsXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThZMmx5WTJ4bElHTjRQU0l4TWlJZ1kzazlJamtpSUhJOUlqRWlJQzgrQ2lBZ1BHTnBjbU5zWlNCamVEMGlNVGtpSUdONVBTSTVJaUJ5UFNJeElpQXZQZ29nSUR4amFYSmpiR1VnWTNnOUlqVWlJR041UFNJNUlpQnlQU0l4SWlBdlBnb2dJRHhqYVhKamJHVWdZM2c5SWpFeUlpQmplVDBpTVRVaUlISTlJakVpSUM4K0NpQWdQR05wY21Oc1pTQmplRDBpTVRraUlHTjVQU0l4TlNJZ2NqMGlNU0lnTHo0S0lDQThZMmx5WTJ4bElHTjRQU0kxSWlCamVUMGlNVFVpSUhJOUlqRWlJQzgrQ2p3dmMzWm5QZ289KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9ncmlwLWhvcml6b250YWxcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBHcmlwSG9yaXpvbnRhbCA9IGNyZWF0ZUx1Y2lkZUljb24oJ2dyaXAtaG9yaXpvbnRhbCcsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBHcmlwSG9yaXpvbnRhbDtcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgWydjaXJjbGUnLCB7IGN4OiAnOScsIGN5OiAnMTInLCByOiAnMScsIGtleTogJzF2Y3RnZicgfV0sXG4gIFsnY2lyY2xlJywgeyBjeDogJzknLCBjeTogJzUnLCByOiAnMScsIGtleTogJ2hwMHRjZicgfV0sXG4gIFsnY2lyY2xlJywgeyBjeDogJzknLCBjeTogJzE5JywgcjogJzEnLCBrZXk6ICdma2pqZjYnIH1dLFxuICBbJ2NpcmNsZScsIHsgY3g6ICcxNScsIGN5OiAnMTInLCByOiAnMScsIGtleTogJzF0bWFpaicgfV0sXG4gIFsnY2lyY2xlJywgeyBjeDogJzE1JywgY3k6ICc1JywgcjogJzEnLCBrZXk6ICcxOWwyOGUnIH1dLFxuICBbJ2NpcmNsZScsIHsgY3g6ICcxNScsIGN5OiAnMTknLCByOiAnMScsIGtleTogJ2Y0em9qMycgfV0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgR3JpcFZlcnRpY2FsXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThZMmx5WTJ4bElHTjRQU0k1SWlCamVUMGlNVElpSUhJOUlqRWlJQzgrQ2lBZ1BHTnBjbU5zWlNCamVEMGlPU0lnWTNrOUlqVWlJSEk5SWpFaUlDOCtDaUFnUEdOcGNtTnNaU0JqZUQwaU9TSWdZM2s5SWpFNUlpQnlQU0l4SWlBdlBnb2dJRHhqYVhKamJHVWdZM2c5SWpFMUlpQmplVDBpTVRJaUlISTlJakVpSUM4K0NpQWdQR05wY21Oc1pTQmplRDBpTVRVaUlHTjVQU0kxSWlCeVBTSXhJaUF2UGdvZ0lEeGphWEpqYkdVZ1kzZzlJakUxSWlCamVUMGlNVGtpSUhJOUlqRWlJQzgrQ2p3dmMzWm5QZ289KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9ncmlwLXZlcnRpY2FsXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgR3JpcFZlcnRpY2FsID0gY3JlYXRlTHVjaWRlSWNvbignZ3JpcC12ZXJ0aWNhbCcsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBHcmlwVmVydGljYWw7XG4iLCJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbXG4gIFsnY2lyY2xlJywgeyBjeDogJzEyJywgY3k6ICc1JywgcjogJzEnLCBrZXk6ICdneGVvYjknIH1dLFxuICBbJ2NpcmNsZScsIHsgY3g6ICcxOScsIGN5OiAnNScsIHI6ICcxJywga2V5OiAndzhtbm1tJyB9XSxcbiAgWydjaXJjbGUnLCB7IGN4OiAnNScsIGN5OiAnNScsIHI6ICcxJywga2V5OiAnbHR0dnI3JyB9XSxcbiAgWydjaXJjbGUnLCB7IGN4OiAnMTInLCBjeTogJzEyJywgcjogJzEnLCBrZXk6ICc0MWhpbGYnIH1dLFxuICBbJ2NpcmNsZScsIHsgY3g6ICcxOScsIGN5OiAnMTInLCByOiAnMScsIGtleTogJzF3amw4aScgfV0sXG4gIFsnY2lyY2xlJywgeyBjeDogJzUnLCBjeTogJzEyJywgcjogJzEnLCBrZXk6ICcxcGN6OGMnIH1dLFxuICBbJ2NpcmNsZScsIHsgY3g6ICcxMicsIGN5OiAnMTknLCByOiAnMScsIGtleTogJ2x5ZXg5aycgfV0sXG4gIFsnY2lyY2xlJywgeyBjeDogJzE5JywgY3k6ICcxOScsIHI6ICcxJywga2V5OiAnc2hmOWI3JyB9XSxcbiAgWydjaXJjbGUnLCB7IGN4OiAnNScsIGN5OiAnMTknLCByOiAnMScsIGtleTogJ2JmcWgwZScgfV0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgR3JpcFxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4WTJseVkyeGxJR040UFNJeE1pSWdZM2s5SWpVaUlISTlJakVpSUM4K0NpQWdQR05wY21Oc1pTQmplRDBpTVRraUlHTjVQU0kxSWlCeVBTSXhJaUF2UGdvZ0lEeGphWEpqYkdVZ1kzZzlJalVpSUdONVBTSTFJaUJ5UFNJeElpQXZQZ29nSUR4amFYSmpiR1VnWTNnOUlqRXlJaUJqZVQwaU1USWlJSEk5SWpFaUlDOCtDaUFnUEdOcGNtTnNaU0JqZUQwaU1Ua2lJR041UFNJeE1pSWdjajBpTVNJZ0x6NEtJQ0E4WTJseVkyeGxJR040UFNJMUlpQmplVDBpTVRJaUlISTlJakVpSUM4K0NpQWdQR05wY21Oc1pTQmplRDBpTVRJaUlHTjVQU0l4T1NJZ2NqMGlNU0lnTHo0S0lDQThZMmx5WTJ4bElHTjRQU0l4T1NJZ1kzazlJakU1SWlCeVBTSXhJaUF2UGdvZ0lEeGphWEpqYkdVZ1kzZzlJalVpSUdONVBTSXhPU0lnY2owaU1TSWdMejRLUEM5emRtYytDZz09KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9ncmlwXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgR3JpcCA9IGNyZWF0ZUx1Y2lkZUljb24oJ2dyaXAnLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgR3JpcDtcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnbTExLjkgMTIuMSA0LjUxNC00LjUxNCcsIGtleTogJzEwOXhxbycgfV0sXG4gIFtcbiAgICAncGF0aCcsXG4gICAge1xuICAgICAgZDogJ00yMC4xIDIuM2ExIDEgMCAwIDAtMS40IDBsLTEuMTE0IDEuMTE0QTIgMiAwIDAgMCAxNyA0LjgyOHYxLjM0NGEyIDIgMCAwIDEtLjU4NiAxLjQxNEEyIDIgMCAwIDEgMTcuODI4IDdoMS4zNDRhMiAyIDAgMCAwIDEuNDE0LS41ODZMMjEuNyA1LjNhMSAxIDAgMCAwIDAtMS40eicsXG4gICAgICBrZXk6ICd0eHljOHQnLFxuICAgIH0sXG4gIF0sXG4gIFsncGF0aCcsIHsgZDogJ202IDE2IDIgMicsIGtleTogJzE2cW16ZCcgfV0sXG4gIFtcbiAgICAncGF0aCcsXG4gICAge1xuICAgICAgZDogJ004LjIzIDkuODVBMyAzIDAgMCAxIDExIDhhNSA1IDAgMCAxIDUgNSAzIDMgMCAwIDEtMS44NSAyLjc3bC0uOTIuMzhBMiAyIDAgMCAwIDEyIDE4YTQgNCAwIDAgMS00IDQgNiA2IDAgMCAxLTYtNiA0IDQgMCAwIDEgNC00IDIgMiAwIDAgMCAxLjg1LTEuMjN6JyxcbiAgICAgIGtleTogJzFkZTF2ZycsXG4gICAgfSxcbiAgXSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBHdWl0YXJcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKdE1URXVPU0F4TWk0eElEUXVOVEUwTFRRdU5URTBJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHlNQzR4SURJdU0yRXhJREVnTUNBd0lEQXRNUzQwSURCc0xURXVNVEUwSURFdU1URTBRVElnTWlBd0lEQWdNQ0F4TnlBMExqZ3lPSFl4TGpNME5HRXlJRElnTUNBd0lERXRMalU0TmlBeExqUXhORUV5SURJZ01DQXdJREVnTVRjdU9ESTRJRGRvTVM0ek5EUmhNaUF5SURBZ01DQXdJREV1TkRFMExTNDFPRFpNTWpFdU55QTFMak5oTVNBeElEQWdNQ0F3SURBdE1TNDBlaUlnTHo0S0lDQThjR0YwYUNCa1BTSnROaUF4TmlBeUlESWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRUZ3VNak1nT1M0NE5VRXpJRE1nTUNBd0lERWdNVEVnT0dFMUlEVWdNQ0F3SURFZ05TQTFJRE1nTXlBd0lEQWdNUzB4TGpnMUlESXVOemRzTFM0NU1pNHpPRUV5SURJZ01DQXdJREFnTVRJZ01UaGhOQ0EwSURBZ01DQXhMVFFnTkNBMklEWWdNQ0F3SURFdE5pMDJJRFFnTkNBd0lEQWdNU0EwTFRRZ01pQXlJREFnTUNBd0lERXVPRFV0TVM0eU0zb2lJQzgrQ2p3dmMzWm5QZ289KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9ndWl0YXJcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBHdWl0YXIgPSBjcmVhdGVMdWNpZGVJY29uKCdndWl0YXInLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgR3VpdGFyO1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdNMyA3VjVjMC0xLjEuOS0yIDItMmgyJywga2V5OiAnYWR3NTN6JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTE3IDNoMmMxLjEgMCAyIC45IDIgMnYyJywga2V5OiAnYW40bDM4JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTIxIDE3djJjMCAxLjEtLjkgMi0yIDJoLTInLCBrZXk6ICcxNDR0MGUnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNNyAyMUg1Yy0xLjEgMC0yLS45LTItMnYtMicsIGtleTogJ3J0bmZnaScgfV0sXG4gIFsncmVjdCcsIHsgd2lkdGg6ICc3JywgaGVpZ2h0OiAnNScsIHg6ICc3JywgeTogJzcnLCByeDogJzEnLCBrZXk6ICcxZXlpdjcnIH1dLFxuICBbJ3JlY3QnLCB7IHdpZHRoOiAnNycsIGhlaWdodDogJzUnLCB4OiAnMTAnLCB5OiAnMTInLCByeDogJzEnLCBrZXk6ICcxcWxta3gnIH1dLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIEdyb3VwXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NeUEzVmpWak1DMHhMakV1T1MweUlESXRNbWd5SWlBdlBnb2dJRHh3WVhSb0lHUTlJazB4TnlBemFESmpNUzR4SURBZ01pQXVPU0F5SURKMk1pSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk1qRWdNVGQyTW1Nd0lERXVNUzB1T1NBeUxUSWdNbWd0TWlJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTnlBeU1VZzFZeTB4TGpFZ01DMHlMUzQ1TFRJdE1uWXRNaUlnTHo0S0lDQThjbVZqZENCM2FXUjBhRDBpTnlJZ2FHVnBaMmgwUFNJMUlpQjRQU0kzSWlCNVBTSTNJaUJ5ZUQwaU1TSWdMejRLSUNBOGNtVmpkQ0IzYVdSMGFEMGlOeUlnYUdWcFoyaDBQU0kxSWlCNFBTSXhNQ0lnZVQwaU1USWlJSEo0UFNJeElpQXZQZ284TDNOMlp6NEspIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2dyb3VwXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgR3JvdXAgPSBjcmVhdGVMdWNpZGVJY29uKCdncm91cCcsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBHcm91cDtcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTEzLjE0NCAyMS4xNDRBNy4yNzQgMTAuNDQ1IDQ1IDEgMCAyLjg1NiAxMC44NTYnLCBrZXk6ICcxazF0N3EnIH1dLFxuICBbXG4gICAgJ3BhdGgnLFxuICAgIHtcbiAgICAgIGQ6ICdNMTMuMTQ0IDIxLjE0NEE3LjI3NCA0LjM2NSA0NSAwIDAgMi44NTYgMTAuODU2YTcuMjc0IDQuMzY1IDQ1IDAgMCAxMC4yODggMTAuMjg4JyxcbiAgICAgIGtleTogJzE1M3QxZycsXG4gICAgfSxcbiAgXSxcbiAgW1xuICAgICdwYXRoJyxcbiAgICB7XG4gICAgICBkOiAnTTE2LjU2NSAxMC40MzUgMTguNiA4LjRhMi41MDEgMi41MDEgMCAxIDAgMS42NS00LjY1IDIuNSAyLjUgMCAxIDAtNC42NiAxLjY2bC0yLjAyNCAyLjAyNScsXG4gICAgICBrZXk6ICdnenJ0MG4nLFxuICAgIH0sXG4gIF0sXG4gIFsncGF0aCcsIHsgZDogJ204LjUgMTYuNS0xLTEnLCBrZXk6ICdvdHI5NTQnIH1dLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIEhhbVxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTVRNdU1UUTBJREl4TGpFME5FRTNMakkzTkNBeE1DNDBORFVnTkRVZ01TQXdJREl1T0RVMklERXdMamcxTmlJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTVRNdU1UUTBJREl4TGpFME5FRTNMakkzTkNBMExqTTJOU0EwTlNBd0lEQWdNaTQ0TlRZZ01UQXVPRFUyWVRjdU1qYzBJRFF1TXpZMUlEUTFJREFnTUNBeE1DNHlPRGdnTVRBdU1qZzRJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHhOaTQxTmpVZ01UQXVORE0xSURFNExqWWdPQzQwWVRJdU5UQXhJREl1TlRBeElEQWdNU0F3SURFdU5qVXROQzQyTlNBeUxqVWdNaTQxSURBZ01TQXdMVFF1TmpZZ01TNDJObXd0TWk0d01qUWdNaTR3TWpVaUlDOCtDaUFnUEhCaGRHZ2daRDBpYlRndU5TQXhOaTQxTFRFdE1TSWdMejRLUEM5emRtYytDZz09KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9oYW1cbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBIYW0gPSBjcmVhdGVMdWNpZGVJY29uKCdoYW0nLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgSGFtO1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdNMTIgMTZINGEyIDIgMCAxIDEgMC00aDE2YTIgMiAwIDEgMSAwIDRoLTQuMjUnLCBrZXk6ICc1ZGxvcWQnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNNSAxMmEyIDIgMCAwIDEtMi0yIDkgNyAwIDAgMSAxOCAwIDIgMiAwIDAgMS0yIDInLCBrZXk6ICcxdmwzbXknIH1dLFxuICBbXG4gICAgJ3BhdGgnLFxuICAgIHtcbiAgICAgIGQ6ICdNNSAxNmEyIDIgMCAwIDAtMiAyIDMgMyAwIDAgMCAzIDNoMTJhMyAzIDAgMCAwIDMtMyAyIDIgMCAwIDAtMi0ycTAgMCAwIDAnLFxuICAgICAga2V5OiAnMXVzNzVvJyxcbiAgICB9LFxuICBdLFxuICBbJ3BhdGgnLCB7IGQ6ICdtNi42NyAxMiA2LjEzIDQuNmEyIDIgMCAwIDAgMi44LS40bDMuMTUtNC4yJywga2V5OiAncXF6d2VoJyB9XSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBIYW1idXJnZXJcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1USWdNVFpJTkdFeUlESWdNQ0F4SURFZ01DMDBhREUyWVRJZ01pQXdJREVnTVNBd0lEUm9MVFF1TWpVaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRVZ01USmhNaUF5SURBZ01DQXhMVEl0TWlBNUlEY2dNQ0F3SURFZ01UZ2dNQ0F5SURJZ01DQXdJREV0TWlBeUlpQXZQZ29nSUR4d1lYUm9JR1E5SWswMUlERTJZVElnTWlBd0lEQWdNQzB5SURJZ015QXpJREFnTUNBd0lETWdNMmd4TW1FeklETWdNQ0F3SURBZ015MHpJRElnTWlBd0lEQWdNQzB5TFRKeE1DQXdJREFnTUNJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0p0Tmk0Mk55QXhNaUEyTGpFeklEUXVObUV5SURJZ01DQXdJREFnTWk0NExTNDBiRE11TVRVdE5DNHlJaUF2UGdvOEwzTjJaejRLKSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9oYW1idXJnZXJcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBIYW1idXJnZXIgPSBjcmVhdGVMdWNpZGVJY29uKCdoYW1idXJnZXInLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgSGFtYnVyZ2VyO1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdtMTUgMTItOC4zNzMgOC4zNzNhMSAxIDAgMSAxLTMtM0wxMiA5Jywga2V5OiAnZWVmbDhhJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnbTE4IDE1IDQtNCcsIGtleTogJzE2Z2phbCcgfV0sXG4gIFtcbiAgICAncGF0aCcsXG4gICAge1xuICAgICAgZDogJ20yMS41IDExLjUtMS45MTQtMS45MTRBMiAyIDAgMCAxIDE5IDguMTcyVjdsLTIuMjYtMi4yNmE2IDYgMCAwIDAtNC4yMDItMS43NTZMOSAyLjk2bC45Mi44MkE2LjE4IDYuMTggMCAwIDEgMTIgOC40VjEwbDIgMmgxLjE3MmEyIDIgMCAwIDEgMS40MTQuNTg2TDE4LjUgMTQuNScsXG4gICAgICBrZXk6ICdiN3BnaG0nLFxuICAgIH0sXG4gIF0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgSGFtbWVyXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSnRNVFVnTVRJdE9DNHpOek1nT0M0ek56TmhNU0F4SURBZ01TQXhMVE10TTB3eE1pQTVJaUF2UGdvZ0lEeHdZWFJvSUdROUltMHhPQ0F4TlNBMExUUWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaWJUSXhMalVnTVRFdU5TMHhMamt4TkMweExqa3hORUV5SURJZ01DQXdJREVnTVRrZ09DNHhOekpXTjJ3dE1pNHlOaTB5TGpJMllUWWdOaUF3SURBZ01DMDBMakl3TWkweExqYzFOa3c1SURJdU9UWnNMamt5TGpneVFUWXVNVGdnTmk0eE9DQXdJREFnTVNBeE1pQTRMalJXTVRCc01pQXlhREV1TVRjeVlUSWdNaUF3SURBZ01TQXhMalF4TkM0MU9EWk1NVGd1TlNBeE5DNDFJaUF2UGdvOEwzTjJaejRLKSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9oYW1tZXJcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBIYW1tZXIgPSBjcmVhdGVMdWNpZGVJY29uKCdoYW1tZXInLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgSGFtbWVyO1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdNMTEgMTVoMmEyIDIgMCAxIDAgMC00aC0zYy0uNiAwLTEuMS4yLTEuNC42TDMgMTcnLCBrZXk6ICdnZWg4cmMnIH1dLFxuICBbXG4gICAgJ3BhdGgnLFxuICAgIHtcbiAgICAgIGQ6ICdtNyAyMSAxLjYtMS40Yy4zLS40LjgtLjYgMS40LS42aDRjMS4xIDAgMi4xLS40IDIuOC0xLjJsNC42LTQuNGEyIDIgMCAwIDAtMi43NS0yLjkxbC00LjIgMy45JyxcbiAgICAgIGtleTogJzFmdG81bScsXG4gICAgfSxcbiAgXSxcbiAgWydwYXRoJywgeyBkOiAnbTIgMTYgNiA2Jywga2V5OiAnMXBmaHA5JyB9XSxcbiAgWydjaXJjbGUnLCB7IGN4OiAnMTYnLCBjeTogJzknLCByOiAnMi45Jywga2V5OiAnMW4wZGx1JyB9XSxcbiAgWydjaXJjbGUnLCB7IGN4OiAnNicsIGN5OiAnNScsIHI6ICczJywga2V5OiAnMTUxaXJoJyB9XSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBIYW5kQ29pbnNcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1URWdNVFZvTW1FeUlESWdNQ0F4SURBZ01DMDBhQzB6WXkwdU5pQXdMVEV1TVM0eUxURXVOQzQyVERNZ01UY2lJQzgrQ2lBZ1BIQmhkR2dnWkQwaWJUY2dNakVnTVM0MkxURXVOR011TXkwdU5DNDRMUzQySURFdU5DMHVObWcwWXpFdU1TQXdJREl1TVMwdU5DQXlMamd0TVM0eWJEUXVOaTAwTGpSaE1pQXlJREFnTUNBd0xUSXVOelV0TWk0NU1Xd3ROQzR5SURNdU9TSWdMejRLSUNBOGNHRjBhQ0JrUFNKdE1pQXhOaUEySURZaUlDOCtDaUFnUEdOcGNtTnNaU0JqZUQwaU1UWWlJR041UFNJNUlpQnlQU0l5TGpraUlDOCtDaUFnUEdOcGNtTnNaU0JqZUQwaU5pSWdZM2s5SWpVaUlISTlJak1pSUM4K0Nqd3ZjM1puUGdvPSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvaGFuZC1jb2luc1xuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IEhhbmRDb2lucyA9IGNyZWF0ZUx1Y2lkZUljb24oJ2hhbmQtY29pbnMnLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgSGFuZENvaW5zO1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdNMTEgMTRoMmEyIDIgMCAxIDAgMC00aC0zYy0uNiAwLTEuMS4yLTEuNC42TDMgMTYnLCBrZXk6ICcxaWZ3cjEnIH1dLFxuICBbXG4gICAgJ3BhdGgnLFxuICAgIHtcbiAgICAgIGQ6ICdtNyAyMCAxLjYtMS40Yy4zLS40LjgtLjYgMS40LS42aDRjMS4xIDAgMi4xLS40IDIuOC0xLjJsNC42LTQuNGEyIDIgMCAwIDAtMi43NS0yLjkxbC00LjIgMy45JyxcbiAgICAgIGtleTogJzE3YWJicycsXG4gICAgfSxcbiAgXSxcbiAgWydwYXRoJywgeyBkOiAnbTIgMTUgNiA2Jywga2V5OiAnMTBkcXV1JyB9XSxcbiAgW1xuICAgICdwYXRoJyxcbiAgICB7XG4gICAgICBkOiAnTTE5LjUgOC41Yy43LS43IDEuNS0xLjYgMS41LTIuN0EyLjczIDIuNzMgMCAwIDAgMTYgNGEyLjc4IDIuNzggMCAwIDAtNSAxLjhjMCAxLjIuOCAyIDEuNSAyLjhMMTYgMTJaJyxcbiAgICAgIGtleTogJzFoMzAzNicsXG4gICAgfSxcbiAgXSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBIYW5kSGVhcnRcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1URWdNVFJvTW1FeUlESWdNQ0F4SURBZ01DMDBhQzB6WXkwdU5pQXdMVEV1TVM0eUxURXVOQzQyVERNZ01UWWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaWJUY2dNakFnTVM0MkxURXVOR011TXkwdU5DNDRMUzQySURFdU5DMHVObWcwWXpFdU1TQXdJREl1TVMwdU5DQXlMamd0TVM0eWJEUXVOaTAwTGpSaE1pQXlJREFnTUNBd0xUSXVOelV0TWk0NU1Xd3ROQzR5SURNdU9TSWdMejRLSUNBOGNHRjBhQ0JrUFNKdE1pQXhOU0EySURZaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRFNUxqVWdPQzQxWXk0M0xTNDNJREV1TlMweExqWWdNUzQxTFRJdU4wRXlMamN6SURJdU56TWdNQ0F3SURBZ01UWWdOR0V5TGpjNElESXVOemdnTUNBd0lEQXROU0F4TGpoak1DQXhMakl1T0NBeUlERXVOU0F5TGpoTU1UWWdNVEphSWlBdlBnbzhMM04yWno0SykgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvaGFuZC1oZWFydFxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IEhhbmRIZWFydCA9IGNyZWF0ZUx1Y2lkZUljb24oJ2hhbmQtaGVhcnQnLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgSGFuZEhlYXJ0O1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdNMTEgMTJoMmEyIDIgMCAxIDAgMC00aC0zYy0uNiAwLTEuMS4yLTEuNC42TDMgMTQnLCBrZXk6ICcxajR4cHMnIH1dLFxuICBbXG4gICAgJ3BhdGgnLFxuICAgIHtcbiAgICAgIGQ6ICdtNyAxOCAxLjYtMS40Yy4zLS40LjgtLjYgMS40LS42aDRjMS4xIDAgMi4xLS40IDIuOC0xLjJsNC42LTQuNGEyIDIgMCAwIDAtMi43NS0yLjkxbC00LjIgMy45JyxcbiAgICAgIGtleTogJ3Vvc3BnOCcsXG4gICAgfSxcbiAgXSxcbiAgWydwYXRoJywgeyBkOiAnbTIgMTMgNiA2Jywga2V5OiAnMTZlNXNiJyB9XSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBIYW5kSGVscGluZ1xuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTVRFZ01USm9NbUV5SURJZ01DQXhJREFnTUMwMGFDMHpZeTB1TmlBd0xURXVNUzR5TFRFdU5DNDJURE1nTVRRaUlDOCtDaUFnUEhCaGRHZ2daRDBpYlRjZ01UZ2dNUzQyTFRFdU5HTXVNeTB1TkM0NExTNDJJREV1TkMwdU5tZzBZekV1TVNBd0lESXVNUzB1TkNBeUxqZ3RNUzR5YkRRdU5pMDBMalJoTWlBeUlEQWdNQ0F3TFRJdU56VXRNaTQ1TVd3dE5DNHlJRE11T1NJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0p0TWlBeE15QTJJRFlpSUM4K0Nqd3ZjM1puUGdvPSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvaGFuZC1oZWxwaW5nXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgSGFuZEhlbHBpbmcgPSBjcmVhdGVMdWNpZGVJY29uKCdoYW5kLWhlbHBpbmcnLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgSGFuZEhlbHBpbmc7XG4iLCJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ00xOCAxMi41VjEwYTIgMiAwIDAgMC0yLTJhMiAyIDAgMCAwLTIgMnYxLjQnLCBrZXk6ICd3YzZteXAnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTQgMTFWOWEyIDIgMCAxIDAtNCAwdjInLCBrZXk6ICc5NHF2Y3cnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTAgMTAuNVY1YTIgMiAwIDEgMC00IDB2OScsIGtleTogJ20xYWg4OScgfV0sXG4gIFtcbiAgICAncGF0aCcsXG4gICAge1xuICAgICAgZDogJ203IDE1LTEuNzYtMS43NmEyIDIgMCAwIDAtMi44MyAyLjgybDMuNiAzLjZDNy41IDIxLjE0IDkuMiAyMiAxMiAyMmgyYTggOCAwIDAgMCA4LThWN2EyIDIgMCAxIDAtNCAwdjUnLFxuICAgICAga2V5OiAndDFza3ExJyxcbiAgICB9LFxuICBdLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIEhhbmRNZXRhbFxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTVRnZ01USXVOVll4TUdFeUlESWdNQ0F3SURBdE1pMHlZVElnTWlBd0lEQWdNQzB5SURKMk1TNDBJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHhOQ0F4TVZZNVlUSWdNaUF3SURFZ01DMDBJREIyTWlJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTVRBZ01UQXVOVlkxWVRJZ01pQXdJREVnTUMwMElEQjJPU0lnTHo0S0lDQThjR0YwYUNCa1BTSnROeUF4TlMweExqYzJMVEV1TnpaaE1pQXlJREFnTUNBd0xUSXVPRE1nTWk0NE1td3pMallnTXk0MlF6Y3VOU0F5TVM0eE5DQTVMaklnTWpJZ01USWdNakpvTW1FNElEZ2dNQ0F3SURBZ09DMDRWamRoTWlBeUlEQWdNU0F3TFRRZ01IWTFJaUF2UGdvOEwzTjJaejRLKSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9oYW5kLW1ldGFsXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgSGFuZE1ldGFsID0gY3JlYXRlTHVjaWRlSWNvbignaGFuZC1tZXRhbCcsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBIYW5kTWV0YWw7XG4iLCJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ00xMiAzVjInLCBrZXk6ICdhcjdxMDMnIH1dLFxuICBbXG4gICAgJ3BhdGgnLFxuICAgIHtcbiAgICAgIGQ6ICdtMTUuNCAxNy40IDMuMi0yLjhhMiAyIDAgMSAxIDIuOCAyLjlsLTMuNiAzLjNjLS43LjgtMS43IDEuMi0yLjggMS4yaC00Yy0xLjEgMC0yLjEtLjQtMi44LTEuMmwtMS4zMDItMS40NjRBMSAxIDAgMCAwIDYuMTUxIDE5SDUnLFxuICAgICAga2V5OiAnbjJnOTNyJyxcbiAgICB9LFxuICBdLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMiAxNGgxMmEyIDIgMCAwIDEgMCA0aC0yJywga2V5OiAnMW8yamVtJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTQgMTBoMTYnLCBrZXk6ICdpbWc2ejEnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNNSAxMGE3IDcgMCAwIDEgMTQgMCcsIGtleTogJzFlZ2ExbycgfV0sXG4gIFsncGF0aCcsIHsgZDogJ001IDE0djZhMSAxIDAgMCAxLTEgMUgyJywga2V5OiAnMWhlc2N4JyB9XSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBIYW5kUGxhdHRlclxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTVRJZ00xWXlJaUF2UGdvZ0lEeHdZWFJvSUdROUltMHhOUzQwSURFM0xqUWdNeTR5TFRJdU9HRXlJRElnTUNBeElERWdNaTQ0SURJdU9Xd3RNeTQySURNdU0yTXRMamN1T0MweExqY2dNUzR5TFRJdU9DQXhMakpvTFRSakxURXVNU0F3TFRJdU1TMHVOQzB5TGpndE1TNHliQzB4TGpNd01pMHhMalEyTkVFeElERWdNQ0F3SURBZ05pNHhOVEVnTVRsSU5TSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk1pQXhOR2d4TW1FeUlESWdNQ0F3SURFZ01DQTBhQzB5SWlBdlBnb2dJRHh3WVhSb0lHUTlJazAwSURFd2FERTJJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMDFJREV3WVRjZ055QXdJREFnTVNBeE5DQXdJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMDFJREUwZGpaaE1TQXhJREFnTUNBeExURWdNVWd5SWlBdlBnbzhMM04yWno0SykgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvaGFuZC1wbGF0dGVyXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgSGFuZFBsYXR0ZXIgPSBjcmVhdGVMdWNpZGVJY29uKCdoYW5kLXBsYXR0ZXInLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgSGFuZFBsYXR0ZXI7XG4iLCJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ00xOCAxMVY2YTIgMiAwIDAgMC0yLTJhMiAyIDAgMCAwLTIgMicsIGtleTogJzFmdnpneicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xNCAxMFY0YTIgMiAwIDAgMC0yLTJhMiAyIDAgMCAwLTIgMnYyJywga2V5OiAnMWtjMG15JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTEwIDEwLjVWNmEyIDIgMCAwIDAtMi0yYTIgMiAwIDAgMC0yIDJ2OCcsIGtleTogJzEwaDBiZycgfV0sXG4gIFtcbiAgICAncGF0aCcsXG4gICAge1xuICAgICAgZDogJ00xOCA4YTIgMiAwIDEgMSA0IDB2NmE4IDggMCAwIDEtOCA4aC0yYy0yLjggMC00LjUtLjg2LTUuOTktMi4zNGwtMy42LTMuNmEyIDIgMCAwIDEgMi44My0yLjgyTDcgMTUnLFxuICAgICAga2V5OiAnMXMxZ253JyxcbiAgICB9LFxuICBdLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIEhhbmRcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1UZ2dNVEZXTm1FeUlESWdNQ0F3SURBdE1pMHlZVElnTWlBd0lEQWdNQzB5SURJaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRFMElERXdWalJoTWlBeUlEQWdNQ0F3TFRJdE1tRXlJRElnTUNBd0lEQXRNaUF5ZGpJaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRFd0lERXdMalZXTm1FeUlESWdNQ0F3SURBdE1pMHlZVElnTWlBd0lEQWdNQzB5SURKMk9DSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk1UZ2dPR0V5SURJZ01DQXhJREVnTkNBd2RqWmhPQ0E0SURBZ01DQXhMVGdnT0dndE1tTXRNaTQ0SURBdE5DNDFMUzQ0TmkwMUxqazVMVEl1TXpSc0xUTXVOaTB6TGpaaE1pQXlJREFnTUNBeElESXVPRE10TWk0NE1rdzNJREUxSWlBdlBnbzhMM04yWno0SykgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvaGFuZFxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IEhhbmQgPSBjcmVhdGVMdWNpZGVJY29uKCdoYW5kJywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IEhhbmQ7XG4iLCJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ20xMSAxNyAyIDJhMSAxIDAgMSAwIDMtMycsIGtleTogJ2VmZmZhaycgfV0sXG4gIFtcbiAgICAncGF0aCcsXG4gICAge1xuICAgICAgZDogJ20xNCAxNCAyLjUgMi41YTEgMSAwIDEgMCAzLTNsLTMuODgtMy44OGEzIDMgMCAwIDAtNC4yNCAwbC0uODguODhhMSAxIDAgMSAxLTMtM2wyLjgxLTIuODFhNS43OSA1Ljc5IDAgMCAxIDcuMDYtLjg3bC40Ny4yOGEyIDIgMCAwIDAgMS40Mi4yNUwyMSA0JyxcbiAgICAgIGtleTogJzlwcjBrYicsXG4gICAgfSxcbiAgXSxcbiAgWydwYXRoJywgeyBkOiAnbTIxIDMgMSAxMWgtMicsIGtleTogJzF0aXNycCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00zIDMgMiAxNGw2LjUgNi41YTEgMSAwIDEgMCAzLTMnLCBrZXk6ICcxdXZ3bXYnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMyA0aDgnLCBrZXk6ICcxZXAwOWonIH1dLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIEhhbmRzaGFrZVxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0p0TVRFZ01UY2dNaUF5WVRFZ01TQXdJREVnTUNBekxUTWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaWJURTBJREUwSURJdU5TQXlMalZoTVNBeElEQWdNU0F3SURNdE0yd3RNeTQ0T0MwekxqZzRZVE1nTXlBd0lEQWdNQzAwTGpJMElEQnNMUzQ0T0M0NE9HRXhJREVnTUNBeElERXRNeTB6YkRJdU9ERXRNaTQ0TVdFMUxqYzVJRFV1TnprZ01DQXdJREVnTnk0d05pMHVPRGRzTGpRM0xqSTRZVElnTWlBd0lEQWdNQ0F4TGpReUxqSTFUREl4SURRaUlDOCtDaUFnUEhCaGRHZ2daRDBpYlRJeElETWdNU0F4TVdndE1pSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk15QXpJRElnTVRSc05pNDFJRFl1TldFeElERWdNQ0F4SURBZ015MHpJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHpJRFJvT0NJZ0x6NEtQQzl6ZG1jK0NnPT0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2hhbmRzaGFrZVxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IEhhbmRzaGFrZSA9IGNyZWF0ZUx1Y2lkZUljb24oJ2hhbmRzaGFrZScsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBIYW5kc2hha2U7XG4iLCJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ00xMiAydjgnLCBrZXk6ICcxcTRvM24nIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdtMTYgNi00IDQtNC00Jywga2V5OiAnNnd1a3InIH1dLFxuICBbJ3JlY3QnLCB7IHdpZHRoOiAnMjAnLCBoZWlnaHQ6ICc4JywgeDogJzInLCB5OiAnMTQnLCByeDogJzInLCBrZXk6ICd3Njh1M2knIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNNiAxOGguMDEnLCBrZXk6ICd1aHl3ZW4nIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTAgMThoLjAxJywga2V5OiAnaDc3NWsnIH1dLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIEhhcmREcml2ZURvd25sb2FkXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NVElnTW5ZNElpQXZQZ29nSUR4d1lYUm9JR1E5SW0weE5pQTJMVFFnTkMwMExUUWlJQzgrQ2lBZ1BISmxZM1FnZDJsa2RHZzlJakl3SWlCb1pXbG5hSFE5SWpnaUlIZzlJaklpSUhrOUlqRTBJaUJ5ZUQwaU1pSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk5pQXhPR2d1TURFaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRFd0lERTRhQzR3TVNJZ0x6NEtQQzl6ZG1jK0NnPT0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2hhcmQtZHJpdmUtZG93bmxvYWRcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBIYXJkRHJpdmVEb3dubG9hZCA9IGNyZWF0ZUx1Y2lkZUljb24oJ2hhcmQtZHJpdmUtZG93bmxvYWQnLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgSGFyZERyaXZlRG93bmxvYWQ7XG4iLCJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ20xNiA2LTQtNC00IDQnLCBrZXk6ICcxM3lvNDMnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTIgMnY4Jywga2V5OiAnMXE0bzNuJyB9XSxcbiAgWydyZWN0JywgeyB3aWR0aDogJzIwJywgaGVpZ2h0OiAnOCcsIHg6ICcyJywgeTogJzE0Jywgcng6ICcyJywga2V5OiAndzY4dTNpJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTYgMThoLjAxJywga2V5OiAndWh5d2VuJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTEwIDE4aC4wMScsIGtleTogJ2g3NzVrJyB9XSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBIYXJkRHJpdmVVcGxvYWRcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKdE1UWWdOaTAwTFRRdE5DQTBJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHhNaUF5ZGpnaUlDOCtDaUFnUEhKbFkzUWdkMmxrZEdnOUlqSXdJaUJvWldsbmFIUTlJamdpSUhnOUlqSWlJSGs5SWpFMElpQnllRDBpTWlJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTmlBeE9HZ3VNREVpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVEV3SURFNGFDNHdNU0lnTHo0S1BDOXpkbWMrQ2c9PSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvaGFyZC1kcml2ZS11cGxvYWRcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBIYXJkRHJpdmVVcGxvYWQgPSBjcmVhdGVMdWNpZGVJY29uKCdoYXJkLWRyaXZlLXVwbG9hZCcsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBIYXJkRHJpdmVVcGxvYWQ7XG4iLCJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbXG4gIFsnbGluZScsIHsgeDE6ICcyMicsIHgyOiAnMicsIHkxOiAnMTInLCB5MjogJzEyJywga2V5OiAnMXk1OGlvJyB9XSxcbiAgW1xuICAgICdwYXRoJyxcbiAgICB7XG4gICAgICBkOiAnTTUuNDUgNS4xMSAyIDEydjZhMiAyIDAgMCAwIDIgMmgxNmEyIDIgMCAwIDAgMi0ydi02bC0zLjQ1LTYuODlBMiAyIDAgMCAwIDE2Ljc2IDRINy4yNGEyIDIgMCAwIDAtMS43OSAxLjExeicsXG4gICAgICBrZXk6ICdvb3Q2bXInLFxuICAgIH0sXG4gIF0sXG4gIFsnbGluZScsIHsgeDE6ICc2JywgeDI6ICc2LjAxJywgeTE6ICcxNicsIHkyOiAnMTYnLCBrZXk6ICdzZ2YyNzgnIH1dLFxuICBbJ2xpbmUnLCB7IHgxOiAnMTAnLCB4MjogJzEwLjAxJywgeTE6ICcxNicsIHkyOiAnMTYnLCBrZXk6ICcxbDRhY3knIH1dLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIEhhcmREcml2ZVxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4YkdsdVpTQjRNVDBpTWpJaUlIZ3lQU0l5SWlCNU1UMGlNVElpSUhreVBTSXhNaUlnTHo0S0lDQThjR0YwYUNCa1BTSk5OUzQwTlNBMUxqRXhJRElnTVRKMk5tRXlJRElnTUNBd0lEQWdNaUF5YURFMllUSWdNaUF3SURBZ01DQXlMVEoyTFRac0xUTXVORFV0Tmk0NE9VRXlJRElnTUNBd0lEQWdNVFl1TnpZZ05FZzNMakkwWVRJZ01pQXdJREFnTUMweExqYzVJREV1TVRGNklpQXZQZ29nSUR4c2FXNWxJSGd4UFNJMklpQjRNajBpTmk0d01TSWdlVEU5SWpFMklpQjVNajBpTVRZaUlDOCtDaUFnUEd4cGJtVWdlREU5SWpFd0lpQjRNajBpTVRBdU1ERWlJSGt4UFNJeE5pSWdlVEk5SWpFMklpQXZQZ284TDNOMlp6NEspIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2hhcmQtZHJpdmVcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBIYXJkRHJpdmUgPSBjcmVhdGVMdWNpZGVJY29uKCdoYXJkLWRyaXZlJywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IEhhcmREcml2ZTtcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTEwIDEwVjVhMSAxIDAgMCAxIDEtMWgyYTEgMSAwIDAgMSAxIDF2NScsIGtleTogJzFwOXE1aScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xNCA2YTYgNiAwIDAgMSA2IDZ2MycsIGtleTogJzFobnY4NCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ000IDE1di0zYTYgNiAwIDAgMSA2LTYnLCBrZXk6ICc5Y2lpZHUnIH1dLFxuICBbJ3JlY3QnLCB7IHg6ICcyJywgeTogJzE1Jywgd2lkdGg6ICcyMCcsIGhlaWdodDogJzQnLCByeDogJzEnLCBrZXk6ICdnM3g4Y3cnIH1dLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIEhhcmRIYXRcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1UQWdNVEJXTldFeElERWdNQ0F3SURFZ01TMHhhREpoTVNBeElEQWdNQ0F4SURFZ01YWTFJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHhOQ0EyWVRZZ05pQXdJREFnTVNBMklEWjJNeUlnTHo0S0lDQThjR0YwYUNCa1BTSk5OQ0F4TlhZdE0yRTJJRFlnTUNBd0lERWdOaTAySWlBdlBnb2dJRHh5WldOMElIZzlJaklpSUhrOUlqRTFJaUIzYVdSMGFEMGlNakFpSUdobGFXZG9kRDBpTkNJZ2NuZzlJakVpSUM4K0Nqd3ZjM1puUGdvPSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvaGFyZC1oYXRcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBIYXJkSGF0ID0gY3JlYXRlTHVjaWRlSWNvbignaGFyZC1oYXQnLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgSGFyZEhhdDtcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgWydsaW5lJywgeyB4MTogJzQnLCB4MjogJzIwJywgeTE6ICc5JywgeTI6ICc5Jywga2V5OiAnNGxodGN0JyB9XSxcbiAgWydsaW5lJywgeyB4MTogJzQnLCB4MjogJzIwJywgeTE6ICcxNScsIHkyOiAnMTUnLCBrZXk6ICd2eXUwa2QnIH1dLFxuICBbJ2xpbmUnLCB7IHgxOiAnMTAnLCB4MjogJzgnLCB5MTogJzMnLCB5MjogJzIxJywga2V5OiAnMWdncDhvJyB9XSxcbiAgWydsaW5lJywgeyB4MTogJzE2JywgeDI6ICcxNCcsIHkxOiAnMycsIHkyOiAnMjEnLCBrZXk6ICd3ZXljZ3AnIH1dLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIEhhc2hcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGJHbHVaU0I0TVQwaU5DSWdlREk5SWpJd0lpQjVNVDBpT1NJZ2VUSTlJamtpSUM4K0NpQWdQR3hwYm1VZ2VERTlJalFpSUhneVBTSXlNQ0lnZVRFOUlqRTFJaUI1TWowaU1UVWlJQzgrQ2lBZ1BHeHBibVVnZURFOUlqRXdJaUI0TWowaU9DSWdlVEU5SWpNaUlIa3lQU0l5TVNJZ0x6NEtJQ0E4YkdsdVpTQjRNVDBpTVRZaUlIZ3lQU0l4TkNJZ2VURTlJak1pSUhreVBTSXlNU0lnTHo0S1BDOXpkbWMrQ2c9PSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvaGFzaFxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IEhhc2ggPSBjcmVhdGVMdWNpZGVJY29uKCdoYXNoJywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IEhhc2g7XG4iLCJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ201LjIgNi4yIDEuNCAxLjQnLCBrZXk6ICcxN2ltb2wnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMiAxM2gyJywga2V5OiAnMTNneXU4JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTIwIDEzaDInLCBrZXk6ICcxNnJuZXInIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdtMTcuNCA3LjYgMS40LTEuNCcsIGtleTogJ3Q0eGxhaCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00yMiAxN0gyJywga2V5OiAnMWd0YWozJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTIyIDIxSDInLCBrZXk6ICcxZ3k2ZW4nIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTYgMTNhNCA0IDAgMCAwLTggMCcsIGtleTogJzFkeWN6cScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xMiA1VjIuNScsIGtleTogJzF2eXRrbycgfV0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgSGF6ZVxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0p0TlM0eUlEWXVNaUF4TGpRZ01TNDBJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHlJREV6YURJaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRJd0lERXphRElpSUM4K0NpQWdQSEJoZEdnZ1pEMGliVEUzTGpRZ055NDJJREV1TkMweExqUWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRUSXlJREUzU0RJaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRJeUlESXhTRElpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVEUySURFellUUWdOQ0F3SURBZ01DMDRJREFpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVEV5SURWV01pNDFJaUF2UGdvOEwzTjJaejRLKSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9oYXplXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgSGF6ZSA9IGNyZWF0ZUx1Y2lkZUljb24oJ2hhemUnLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgSGF6ZTtcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgW1xuICAgICdwYXRoJyxcbiAgICB7XG4gICAgICBkOiAnTTIyIDlhMSAxIDAgMCAwLTEtMUgzYTEgMSAwIDAgMC0xIDF2NGExIDEgMCAwIDAgMSAxaDFsMiAyaDEybDItMmgxYTEgMSAwIDAgMCAxLTFaJyxcbiAgICAgIGtleTogJzIxMjh3YicsXG4gICAgfSxcbiAgXSxcbiAgWydwYXRoJywgeyBkOiAnTTcuNSAxMmg5Jywga2V5OiAnMXQwY2tjJyB9XSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBIZG1pUG9ydFxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTWpJZ09XRXhJREVnTUNBd0lEQXRNUzB4U0ROaE1TQXhJREFnTUNBd0xURWdNWFkwWVRFZ01TQXdJREFnTUNBeElERm9NV3d5SURKb01USnNNaTB5YURGaE1TQXhJREFnTUNBd0lERXRNVm9pSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVGN1TlNBeE1tZzVJaUF2UGdvOEwzTjJaejRLKSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9oZG1pLXBvcnRcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBIZG1pUG9ydCA9IGNyZWF0ZUx1Y2lkZUljb24oJ2hkbWktcG9ydCcsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBIZG1pUG9ydDtcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTQgMTJoOCcsIGtleTogJzE3Y2ZkeCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ000IDE4VjYnLCBrZXk6ICcxcnozemwnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTIgMThWNicsIGtleTogJ3pxcHhxNScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ20xNyAxMiAzLTJ2OCcsIGtleTogJzFoaGhmdCcgfV0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgSGVhZGluZzFcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk5DQXhNbWc0SWlBdlBnb2dJRHh3WVhSb0lHUTlJazAwSURFNFZqWWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRURXlJREU0VmpZaUlDOCtDaUFnUEhCaGRHZ2daRDBpYlRFM0lERXlJRE10TW5ZNElpQXZQZ284TDNOMlp6NEspIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2hlYWRpbmctMVxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IEhlYWRpbmcxID0gY3JlYXRlTHVjaWRlSWNvbignaGVhZGluZy0xJywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IEhlYWRpbmcxO1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdNNCAxMmg4Jywga2V5OiAnMTdjZmR4JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTQgMThWNicsIGtleTogJzFyejN6bCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xMiAxOFY2Jywga2V5OiAnenFweHE1JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTIxIDE4aC00YzAtNCA0LTMgNC02IDAtMS41LTItMi41LTQtMScsIGtleTogJzlqcjV5aScgfV0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgSGVhZGluZzJcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk5DQXhNbWc0SWlBdlBnb2dJRHh3WVhSb0lHUTlJazAwSURFNFZqWWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRURXlJREU0VmpZaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRJeElERTRhQzAwWXpBdE5DQTBMVE1nTkMwMklEQXRNUzQxTFRJdE1pNDFMVFF0TVNJZ0x6NEtQQzl6ZG1jK0NnPT0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2hlYWRpbmctMlxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IEhlYWRpbmcyID0gY3JlYXRlTHVjaWRlSWNvbignaGVhZGluZy0yJywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IEhlYWRpbmcyO1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdNNCAxMmg4Jywga2V5OiAnMTdjZmR4JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTQgMThWNicsIGtleTogJzFyejN6bCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xMiAxOFY2Jywga2V5OiAnenFweHE1JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTE3LjUgMTAuNWMxLjctMSAzLjUgMCAzLjUgMS41YTIgMiAwIDAgMS0yIDInLCBrZXk6ICc2OG5jbTgnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTcgMTcuNWMyIDEuNSA0IC4zIDQtMS41YTIgMiAwIDAgMC0yLTInLCBrZXk6ICcxZWp1aHonIH1dLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIEhlYWRpbmczXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5OQ0F4TW1nNElpQXZQZ29nSUR4d1lYUm9JR1E5SWswMElERTRWallpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVEV5SURFNFZqWWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRURTNMalVnTVRBdU5XTXhMamN0TVNBekxqVWdNQ0F6TGpVZ01TNDFZVElnTWlBd0lEQWdNUzB5SURJaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRFM0lERTNMalZqTWlBeExqVWdOQ0F1TXlBMExURXVOV0V5SURJZ01DQXdJREF0TWkweUlpQXZQZ284TDNOMlp6NEspIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2hlYWRpbmctM1xuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IEhlYWRpbmczID0gY3JlYXRlTHVjaWRlSWNvbignaGVhZGluZy0zJywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IEhlYWRpbmczO1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdNMTIgMThWNicsIGtleTogJ3pxcHhxNScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xNyAxMHYzYTEgMSAwIDAgMCAxIDFoMycsIGtleTogJ3RqNXpkcicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00yMSAxMHY4Jywga2V5OiAnMWtkbWw0JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTQgMTJoOCcsIGtleTogJzE3Y2ZkeCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ000IDE4VjYnLCBrZXk6ICcxcnozemwnIH1dLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIEhlYWRpbmc0XG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NVElnTVRoV05pSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk1UY2dNVEIyTTJFeElERWdNQ0F3SURBZ01TQXhhRE1pSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVEl4SURFd2RqZ2lJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRUUWdNVEpvT0NJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTkNBeE9GWTJJaUF2UGdvOEwzTjJaejRLKSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9oZWFkaW5nLTRcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBIZWFkaW5nNCA9IGNyZWF0ZUx1Y2lkZUljb24oJ2hlYWRpbmctNCcsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBIZWFkaW5nNDtcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTQgMTJoOCcsIGtleTogJzE3Y2ZkeCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ000IDE4VjYnLCBrZXk6ICcxcnozemwnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTIgMThWNicsIGtleTogJ3pxcHhxNScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xNyAxM3YtM2g0Jywga2V5OiAnMW52Z3FwJyB9XSxcbiAgW1xuICAgICdwYXRoJyxcbiAgICB7IGQ6ICdNMTcgMTcuN2MuNC4yLjguMyAxLjMuMyAxLjUgMCAyLjctMS4xIDIuNy0yLjVTMTkuOCAxMyAxOC4zIDEzSDE3Jywga2V5OiAnMm5lYmRuJyB9LFxuICBdLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIEhlYWRpbmc1XG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5OQ0F4TW1nNElpQXZQZ29nSUR4d1lYUm9JR1E5SWswMElERTRWallpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVEV5SURFNFZqWWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRURTNJREV6ZGkwemFEUWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRURTNJREUzTGpkakxqUXVNaTQ0TGpNZ01TNHpMak1nTVM0MUlEQWdNaTQzTFRFdU1TQXlMamN0TWk0MVV6RTVMamdnTVRNZ01UZ3VNeUF4TTBneE55SWdMejRLUEM5emRtYytDZz09KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9oZWFkaW5nLTVcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBIZWFkaW5nNSA9IGNyZWF0ZUx1Y2lkZUljb24oJ2hlYWRpbmctNScsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBIZWFkaW5nNTtcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTQgMTJoOCcsIGtleTogJzE3Y2ZkeCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ000IDE4VjYnLCBrZXk6ICcxcnozemwnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTIgMThWNicsIGtleTogJ3pxcHhxNScgfV0sXG4gIFsnY2lyY2xlJywgeyBjeDogJzE5JywgY3k6ICcxNicsIHI6ICcyJywga2V5OiAnMTVteDY5JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTIwIDEwYy0yIDItMyAzLjUtMyA2Jywga2V5OiAnZjM1ZGwwJyB9XSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBIZWFkaW5nNlxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTkNBeE1tZzRJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMDBJREU0VmpZaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRFeUlERTRWallpSUM4K0NpQWdQR05wY21Oc1pTQmplRDBpTVRraUlHTjVQU0l4TmlJZ2NqMGlNaUlnTHo0S0lDQThjR0YwYUNCa1BTSk5NakFnTVRCakxUSWdNaTB6SURNdU5TMHpJRFlpSUM4K0Nqd3ZjM1puUGdvPSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvaGVhZGluZy02XG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgSGVhZGluZzYgPSBjcmVhdGVMdWNpZGVJY29uKCdoZWFkaW5nLTYnLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgSGVhZGluZzY7XG4iLCJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ002IDEyaDEyJywga2V5OiAnOG5wcTRwJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTYgMjBWNCcsIGtleTogJzF3MWJtbycgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xOCAyMFY0Jywga2V5OiAnbzJobDR1JyB9XSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBIZWFkaW5nXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5OaUF4TW1neE1pSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk5pQXlNRlkwSWlBdlBnb2dJRHh3WVhSb0lHUTlJazB4T0NBeU1GWTBJaUF2UGdvOEwzTjJaejRLKSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9oZWFkaW5nXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgSGVhZGluZyA9IGNyZWF0ZUx1Y2lkZUljb24oJ2hlYWRpbmcnLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgSGVhZGluZztcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTIxIDE0aC0xLjM0MycsIGtleTogJzFqZG54aScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ005LjEyOCAzLjQ3QTkgOSAwIDAgMSAyMSAxMnYzLjM0MycsIGtleTogJzZraXB1MicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ20yIDIgMjAgMjAnLCBrZXk6ICcxb29ld3knIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMjAuNDE0IDIwLjQxNEEyIDIgMCAwIDEgMTkgMjFoLTFhMiAyIDAgMCAxLTItMnYtMycsIGtleTogJzl4NTBmNCcgfV0sXG4gIFtcbiAgICAncGF0aCcsXG4gICAge1xuICAgICAgZDogJ00zIDE0aDNhMiAyIDAgMCAxIDIgMnYzYTIgMiAwIDAgMS0yIDJINWEyIDIgMCAwIDEtMi0ydi03YTkgOSAwIDAgMSAyLjYzNi02LjM2NCcsXG4gICAgICBrZXk6ICcxYmt4bm0nLFxuICAgIH0sXG4gIF0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgSGVhZHBob25lT2ZmXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NakVnTVRSb0xURXVNelF6SWlBdlBnb2dJRHh3WVhSb0lHUTlJazA1TGpFeU9DQXpMalEzUVRrZ09TQXdJREFnTVNBeU1TQXhNbll6TGpNME15SWdMejRLSUNBOGNHRjBhQ0JrUFNKdE1pQXlJREl3SURJd0lpQXZQZ29nSUR4d1lYUm9JR1E5SWsweU1DNDBNVFFnTWpBdU5ERTBRVElnTWlBd0lEQWdNU0F4T1NBeU1XZ3RNV0V5SURJZ01DQXdJREV0TWkweWRpMHpJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHpJREUwYUROaE1pQXlJREFnTUNBeElESWdNbll6WVRJZ01pQXdJREFnTVMweUlESklOV0V5SURJZ01DQXdJREV0TWkweWRpMDNZVGtnT1NBd0lEQWdNU0F5TGpZek5pMDJMak0yTkNJZ0x6NEtQQzl6ZG1jK0NnPT0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2hlYWRwaG9uZS1vZmZcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBIZWFkcGhvbmVPZmYgPSBjcmVhdGVMdWNpZGVJY29uKCdoZWFkcGhvbmUtb2ZmJywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IEhlYWRwaG9uZU9mZjtcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgW1xuICAgICdwYXRoJyxcbiAgICB7XG4gICAgICBkOiAnTTMgMTRoM2EyIDIgMCAwIDEgMiAydjNhMiAyIDAgMCAxLTIgMkg1YTIgMiAwIDAgMS0yLTJ2LTdhOSA5IDAgMCAxIDE4IDB2N2EyIDIgMCAwIDEtMiAyaC0xYTIgMiAwIDAgMS0yLTJ2LTNhMiAyIDAgMCAxIDItMmgzJyxcbiAgICAgIGtleTogJzF4aG96aScsXG4gICAgfSxcbiAgXSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBIZWFkcGhvbmVzXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NeUF4TkdnellUSWdNaUF3SURBZ01TQXlJREoyTTJFeUlESWdNQ0F3SURFdE1pQXlTRFZoTWlBeUlEQWdNQ0F4TFRJdE1uWXROMkU1SURrZ01DQXdJREVnTVRnZ01IWTNZVElnTWlBd0lEQWdNUzB5SURKb0xURmhNaUF5SURBZ01DQXhMVEl0TW5ZdE0yRXlJRElnTUNBd0lERWdNaTB5YURNaUlDOCtDand2YzNablBnbz0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2hlYWRwaG9uZXNcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBIZWFkcGhvbmVzID0gY3JlYXRlTHVjaWRlSWNvbignaGVhZHBob25lcycsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBIZWFkcGhvbmVzO1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbXG4gICAgJ3BhdGgnLFxuICAgIHtcbiAgICAgIGQ6ICdNMyAxMWgzYTIgMiAwIDAgMSAyIDJ2M2EyIDIgMCAwIDEtMiAySDVhMiAyIDAgMCAxLTItMnYtNVptMCAwYTkgOSAwIDEgMSAxOCAwbTAgMHY1YTIgMiAwIDAgMS0yIDJoLTFhMiAyIDAgMCAxLTItMnYtM2EyIDIgMCAwIDEgMi0yaDNaJyxcbiAgICAgIGtleTogJzEyb3lvZScsXG4gICAgfSxcbiAgXSxcbiAgWydwYXRoJywgeyBkOiAnTTIxIDE2djJhNCA0IDAgMCAxLTQgNGgtNScsIGtleTogJzF4N200MycgfV0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgSGVhZHNldFxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTXlBeE1XZ3pZVElnTWlBd0lEQWdNU0F5SURKMk0yRXlJRElnTUNBd0lERXRNaUF5U0RWaE1pQXlJREFnTUNBeExUSXRNbll0TlZwdE1DQXdZVGtnT1NBd0lERWdNU0F4T0NBd2JUQWdNSFkxWVRJZ01pQXdJREFnTVMweUlESm9MVEZoTWlBeUlEQWdNQ0F4TFRJdE1uWXRNMkV5SURJZ01DQXdJREVnTWkweWFETmFJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHlNU0F4Tm5ZeVlUUWdOQ0F3SURBZ01TMDBJRFJvTFRVaUlDOCtDand2YzNablBnbz0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2hlYWRzZXRcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBIZWFkc2V0ID0gY3JlYXRlTHVjaWRlSWNvbignaGVhZHNldCcsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBIZWFkc2V0O1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbXG4gICAgJ3BhdGgnLFxuICAgIHtcbiAgICAgIGQ6ICdNMTkgMTRjMS40OS0xLjQ2IDMtMy4yMSAzLTUuNUE1LjUgNS41IDAgMCAwIDE2LjUgM2MtMS43NiAwLTMgLjUtNC41IDItMS41LTEuNS0yLjc0LTItNC41LTJBNS41IDUuNSAwIDAgMCAyIDguNWMwIDIuMyAxLjUgNC4wNSAzIDUuNWw3IDdaJyxcbiAgICAgIGtleTogJ2MzeW1reScsXG4gICAgfSxcbiAgXSxcbiAgWydwYXRoJywgeyBkOiAnbTEyIDEzLTEtMSAyLTItMy0zIDItMicsIGtleTogJ3hqZHhsaScgfV0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgSGVhcnRDcmFja1xuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTVRrZ01UUmpNUzQwT1MweExqUTJJRE10TXk0eU1TQXpMVFV1TlVFMUxqVWdOUzQxSURBZ01DQXdJREUyTGpVZ00yTXRNUzQzTmlBd0xUTWdMalV0TkM0MUlESXRNUzQxTFRFdU5TMHlMamMwTFRJdE5DNDFMVEpCTlM0MUlEVXVOU0F3SURBZ01DQXlJRGd1TldNd0lESXVNeUF4TGpVZ05DNHdOU0F6SURVdU5XdzNJRGRhSWlBdlBnb2dJRHh3WVhSb0lHUTlJbTB4TWlBeE15MHhMVEVnTWkweUxUTXRNeUF5TFRJaUlDOCtDand2YzNablBnbz0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2hlYXJ0LWNyYWNrXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgSGVhcnRDcmFjayA9IGNyZWF0ZUx1Y2lkZUljb24oJ2hlYXJ0LWNyYWNrJywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IEhlYXJ0Q3JhY2s7XG4iLCJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbXG4gIFtcbiAgICAncGF0aCcsXG4gICAge1xuICAgICAgZDogJ00xOSAxNGMxLjQ5LTEuNDYgMy0zLjIxIDMtNS41QTUuNSA1LjUgMCAwIDAgMTYuNSAzYy0xLjc2IDAtMyAuNS00LjUgMi0xLjUtMS41LTIuNzQtMi00LjUtMkE1LjUgNS41IDAgMCAwIDIgOC41YzAgMi4zIDEuNSA0LjA1IDMgNS41bDcgN1onLFxuICAgICAga2V5OiAnYzN5bWt5JyxcbiAgICB9LFxuICBdLFxuICBbXG4gICAgJ3BhdGgnLFxuICAgIHtcbiAgICAgIGQ6ICdNMTIgNSA5LjA0IDcuOTZhMi4xNyAyLjE3IDAgMCAwIDAgMy4wOGMuODIuODIgMi4xMy44NSAzIC4wN2wyLjA3LTEuOWEyLjgyIDIuODIgMCAwIDEgMy43OSAwbDIuOTYgMi42NicsXG4gICAgICBrZXk6ICc0b3l1ZTAnLFxuICAgIH0sXG4gIF0sXG4gIFsncGF0aCcsIHsgZDogJ20xOCAxNS0yLTInLCBrZXk6ICc2MHUwaWknIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdtMTUgMTgtMi0yJywga2V5OiAnNnA3NmJlJyB9XSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBIZWFydEhhbmRzaGFrZVxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTVRrZ01UUmpNUzQwT1MweExqUTJJRE10TXk0eU1TQXpMVFV1TlVFMUxqVWdOUzQxSURBZ01DQXdJREUyTGpVZ00yTXRNUzQzTmlBd0xUTWdMalV0TkM0MUlESXRNUzQxTFRFdU5TMHlMamMwTFRJdE5DNDFMVEpCTlM0MUlEVXVOU0F3SURBZ01DQXlJRGd1TldNd0lESXVNeUF4TGpVZ05DNHdOU0F6SURVdU5XdzNJRGRhSWlBdlBnb2dJRHh3WVhSb0lHUTlJazB4TWlBMUlEa3VNRFFnTnk0NU5tRXlMakUzSURJdU1UY2dNQ0F3SURBZ01DQXpMakE0WXk0NE1pNDRNaUF5TGpFekxqZzFJRE1nTGpBM2JESXVNRGN0TVM0NVlUSXVPRElnTWk0NE1pQXdJREFnTVNBekxqYzVJREJzTWk0NU5pQXlMalkySWlBdlBnb2dJRHh3WVhSb0lHUTlJbTB4T0NBeE5TMHlMVElpSUM4K0NpQWdQSEJoZEdnZ1pEMGliVEUxSURFNExUSXRNaUlnTHo0S1BDOXpkbWMrQ2c9PSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvaGVhcnQtaGFuZHNoYWtlXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgSGVhcnRIYW5kc2hha2UgPSBjcmVhdGVMdWNpZGVJY29uKCdoZWFydC1oYW5kc2hha2UnLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgSGVhcnRIYW5kc2hha2U7XG4iLCJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbXG4gIFsnbGluZScsIHsgeDE6ICcyJywgeTE6ICcyJywgeDI6ICcyMicsIHkyOiAnMjInLCBrZXk6ICcxdzR2Y3knIH1dLFxuICBbXG4gICAgJ3BhdGgnLFxuICAgIHsgZDogJ00xNi41IDE2LjUgMTIgMjFsLTctN2MtMS41LTEuNDUtMy0zLjItMy01LjVhNS41IDUuNSAwIDAgMSAyLjE0LTQuMzUnLCBrZXk6ICczbXBhZ2wnIH0sXG4gIF0sXG4gIFtcbiAgICAncGF0aCcsXG4gICAge1xuICAgICAgZDogJ004Ljc2IDMuMWMxLjE1LjIyIDIuMTMuNzggMy4yNCAxLjkgMS41LTEuNSAyLjc0LTIgNC41LTJBNS41IDUuNSAwIDAgMSAyMiA4LjVjMCAyLjEyLTEuMyAzLjc4LTIuNjcgNS4xNycsXG4gICAgICBrZXk6ICcxZ2gzdjMnLFxuICAgIH0sXG4gIF0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgSGVhcnRPZmZcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGJHbHVaU0I0TVQwaU1pSWdlVEU5SWpJaUlIZ3lQU0l5TWlJZ2VUSTlJakl5SWlBdlBnb2dJRHh3WVhSb0lHUTlJazB4Tmk0MUlERTJMalVnTVRJZ01qRnNMVGN0TjJNdE1TNDFMVEV1TkRVdE15MHpMakl0TXkwMUxqVmhOUzQxSURVdU5TQXdJREFnTVNBeUxqRTBMVFF1TXpVaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRndU56WWdNeTR4WXpFdU1UVXVNaklnTWk0eE15NDNPQ0F6TGpJMElERXVPU0F4TGpVdE1TNDFJREl1TnpRdE1pQTBMalV0TWtFMUxqVWdOUzQxSURBZ01DQXhJREl5SURndU5XTXdJREl1TVRJdE1TNHpJRE11TnpndE1pNDJOeUExTGpFM0lpQXZQZ284TDNOMlp6NEspIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2hlYXJ0LW9mZlxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IEhlYXJ0T2ZmID0gY3JlYXRlTHVjaWRlSWNvbignaGVhcnQtb2ZmJywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IEhlYXJ0T2ZmO1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbXG4gICAgJ3BhdGgnLFxuICAgIHtcbiAgICAgIGQ6ICdNMTMuNSAxOS41IDEyIDIxbC03LTdjLTEuNS0xLjQ1LTMtMy4yLTMtNS41QTUuNSA1LjUgMCAwIDEgNy41IDNjMS43NiAwIDMgLjUgNC41IDIgMS41LTEuNSAyLjc0LTIgNC41LTJhNS41IDUuNSAwIDAgMSA1LjQwMiA2LjUnLFxuICAgICAga2V5OiAndmQwdnk1JyxcbiAgICB9LFxuICBdLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTUgMTVoNicsIGtleTogJzF1NDY5MicgfV0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgSGVhcnRNaW51c1xuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTVRNdU5TQXhPUzQxSURFeUlESXhiQzAzTFRkakxURXVOUzB4TGpRMUxUTXRNeTR5TFRNdE5TNDFRVFV1TlNBMUxqVWdNQ0F3SURFZ055NDFJRE5qTVM0M05pQXdJRE1nTGpVZ05DNDFJRElnTVM0MUxURXVOU0F5TGpjMExUSWdOQzQxTFRKaE5TNDFJRFV1TlNBd0lEQWdNU0ExTGpRd01pQTJMalVpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVEUxSURFMWFEWWlJQzgrQ2p3dmMzWm5QZ289KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9oZWFydC1taW51c1xuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IEhlYXJ0TWludXMgPSBjcmVhdGVMdWNpZGVJY29uKCdoZWFydC1taW51cycsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBIZWFydE1pbnVzO1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbXG4gICAgJ3BhdGgnLFxuICAgIHtcbiAgICAgIGQ6ICdNMTMuNSAxOS41IDEyIDIxbC03LTdjLTEuNS0xLjQ1LTMtMy4yLTMtNS41QTUuNSA1LjUgMCAwIDEgNy41IDNjMS43NiAwIDMgLjUgNC41IDIgMS41LTEuNSAyLjc0LTIgNC41LTJhNS41IDUuNSAwIDAgMSA1LjQwMiA2LjUnLFxuICAgICAga2V5OiAndmQwdnk1JyxcbiAgICB9LFxuICBdLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTUgMTVoNicsIGtleTogJzF1NDY5MicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xOCAxMnY2Jywga2V5OiAnMWhvdXUxJyB9XSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBIZWFydFBsdXNcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1UTXVOU0F4T1M0MUlERXlJREl4YkMwM0xUZGpMVEV1TlMweExqUTFMVE10TXk0eUxUTXROUzQxUVRVdU5TQTFMalVnTUNBd0lERWdOeTQxSUROak1TNDNOaUF3SURNZ0xqVWdOQzQxSURJZ01TNDFMVEV1TlNBeUxqYzBMVElnTkM0MUxUSmhOUzQxSURVdU5TQXdJREFnTVNBMUxqUXdNaUEyTGpVaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRFMUlERTFhRFlpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVEU0SURFeWRqWWlJQzgrQ2p3dmMzWm5QZ289KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9oZWFydC1wbHVzXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgSGVhcnRQbHVzID0gY3JlYXRlTHVjaWRlSWNvbignaGVhcnQtcGx1cycsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBIZWFydFBsdXM7XG4iLCJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbXG4gIFtcbiAgICAncGF0aCcsXG4gICAge1xuICAgICAgZDogJ00xOSAxNGMxLjQ5LTEuNDYgMy0zLjIxIDMtNS41QTUuNSA1LjUgMCAwIDAgMTYuNSAzYy0xLjc2IDAtMyAuNS00LjUgMi0xLjUtMS41LTIuNzQtMi00LjUtMkE1LjUgNS41IDAgMCAwIDIgOC41YzAgMi4zIDEuNSA0LjA1IDMgNS41bDcgN1onLFxuICAgICAga2V5OiAnYzN5bWt5JyxcbiAgICB9LFxuICBdLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMy4yMiAxMkg5LjVsLjUtMSAyIDQuNSAyLTcgMS41IDMuNWg1LjI3Jywga2V5OiAnMXV3Mm5nJyB9XSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBIZWFydFB1bHNlXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NVGtnTVRSak1TNDBPUzB4TGpRMklETXRNeTR5TVNBekxUVXVOVUUxTGpVZ05TNDFJREFnTUNBd0lERTJMalVnTTJNdE1TNDNOaUF3TFRNZ0xqVXROQzQxSURJdE1TNDFMVEV1TlMweUxqYzBMVEl0TkM0MUxUSkJOUzQxSURVdU5TQXdJREFnTUNBeUlEZ3VOV013SURJdU15QXhMalVnTkM0d05TQXpJRFV1Tld3M0lEZGFJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHpMakl5SURFeVNEa3VOV3d1TlMweElESWdOQzQxSURJdE55QXhMalVnTXk0MWFEVXVNamNpSUM4K0Nqd3ZjM1puUGdvPSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvaGVhcnQtcHVsc2VcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBIZWFydFB1bHNlID0gY3JlYXRlTHVjaWRlSWNvbignaGVhcnQtcHVsc2UnLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgSGVhcnRQdWxzZTtcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgW1xuICAgICdwYXRoJyxcbiAgICB7XG4gICAgICBkOiAnTTE5IDE0YzEuNDktMS40NiAzLTMuMjEgMy01LjVBNS41IDUuNSAwIDAgMCAxNi41IDNjLTEuNzYgMC0zIC41LTQuNSAyLTEuNS0xLjUtMi43NC0yLTQuNS0yQTUuNSA1LjUgMCAwIDAgMiA4LjVjMCAyLjMgMS41IDQuMDUgMyA1LjVsNyA3WicsXG4gICAgICBrZXk6ICdjM3lta3knLFxuICAgIH0sXG4gIF0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgSGVhcnRcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1Ua2dNVFJqTVM0ME9TMHhMalEySURNdE15NHlNU0F6TFRVdU5VRTFMalVnTlM0MUlEQWdNQ0F3SURFMkxqVWdNMk10TVM0M05pQXdMVE1nTGpVdE5DNDFJREl0TVM0MUxURXVOUzB5TGpjMExUSXROQzQxTFRKQk5TNDFJRFV1TlNBd0lEQWdNQ0F5SURndU5XTXdJREl1TXlBeExqVWdOQzR3TlNBeklEVXVOV3czSURkYUlpQXZQZ284TDNOMlp6NEspIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2hlYXJ0XG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgSGVhcnQgPSBjcmVhdGVMdWNpZGVJY29uKCdoZWFydCcsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBIZWFydDtcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTExIDhjMi0zLTItMyAwLTYnLCBrZXk6ICcxbGR2NW0nIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTUuNSA4YzItMy0yLTMgMC02Jywga2V5OiAnMW90cW96JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTYgMTBoLjAxJywga2V5OiAnMWxicTkzJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTYgMTRoLjAxJywga2V5OiAnenVkd243JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTEwIDE2di00Jywga2V5OiAnMWMyNXl2JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTE0IDE2di00Jywga2V5OiAnMWRrYnQ4JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTE4IDE2di00Jywga2V5OiAnMXlnOW1lJyB9XSxcbiAgW1xuICAgICdwYXRoJyxcbiAgICB7IGQ6ICdNMjAgNmEyIDIgMCAwIDEgMiAydjEwYTIgMiAwIDAgMS0yIDJINGEyIDIgMCAwIDEtMi0yVjhhMiAyIDAgMCAxIDItMmgzJywga2V5OiAnMXViZzkwJyB9LFxuICBdLFxuICBbJ3BhdGgnLCB7IGQ6ICdNNSAyMHYyJywga2V5OiAnMWFicGU4JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTE5IDIwdjInLCBrZXk6ICdrcW42ZnQnIH1dLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIEhlYXRlclxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTVRFZ09HTXlMVE10TWkweklEQXROaUlnTHo0S0lDQThjR0YwYUNCa1BTSk5NVFV1TlNBNFl6SXRNeTB5TFRNZ01DMDJJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMDJJREV3YUM0d01TSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk5pQXhOR2d1TURFaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRFd0lERTJkaTAwSWlBdlBnb2dJRHh3WVhSb0lHUTlJazB4TkNBeE5uWXROQ0lnTHo0S0lDQThjR0YwYUNCa1BTSk5NVGdnTVRaMkxUUWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRUSXdJRFpoTWlBeUlEQWdNQ0F4SURJZ01uWXhNR0V5SURJZ01DQXdJREV0TWlBeVNEUmhNaUF5SURBZ01DQXhMVEl0TWxZNFlUSWdNaUF3SURBZ01TQXlMVEpvTXlJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTlNBeU1IWXlJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHhPU0F5TUhZeUlpQXZQZ284TDNOMlp6NEspIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2hlYXRlclxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IEhlYXRlciA9IGNyZWF0ZUx1Y2lkZUljb24oJ2hlYXRlcicsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBIZWF0ZXI7XG4iLCJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbXG4gIFtcbiAgICAncGF0aCcsXG4gICAge1xuICAgICAgZDogJ00yMSAxNlY4YTIgMiAwIDAgMC0xLTEuNzNsLTctNGEyIDIgMCAwIDAtMiAwbC03IDRBMiAyIDAgMCAwIDMgOHY4YTIgMiAwIDAgMCAxIDEuNzNsNyA0YTIgMiAwIDAgMCAyIDBsNy00QTIgMiAwIDAgMCAyMSAxNnonLFxuICAgICAga2V5OiAneXQwaHhuJyxcbiAgICB9LFxuICBdLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIEhleGFnb25cbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1qRWdNVFpXT0dFeUlESWdNQ0F3SURBdE1TMHhMamN6YkMwM0xUUmhNaUF5SURBZ01DQXdMVElnTUd3dE55QTBRVElnTWlBd0lEQWdNQ0F6SURoMk9HRXlJRElnTUNBd0lEQWdNU0F4TGpjemJEY2dOR0V5SURJZ01DQXdJREFnTWlBd2JEY3RORUV5SURJZ01DQXdJREFnTWpFZ01UWjZJaUF2UGdvOEwzTjJaejRLKSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9oZXhhZ29uXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgSGV4YWdvbiA9IGNyZWF0ZUx1Y2lkZUljb24oJ2hleGFnb24nLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgSGV4YWdvbjtcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnbTkgMTEtNiA2djNoOWwzLTMnLCBrZXk6ICcxYTNsMzYnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdtMjIgMTItNC42IDQuNmEyIDIgMCAwIDEtMi44IDBsLTUuMi01LjJhMiAyIDAgMCAxIDAtMi44TDE0IDQnLCBrZXk6ICcxNGE5cmsnIH1dLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIEhpZ2hsaWdodGVyXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSnRPU0F4TVMwMklEWjJNMmc1YkRNdE15SWdMejRLSUNBOGNHRjBhQ0JrUFNKdE1qSWdNVEl0TkM0MklEUXVObUV5SURJZ01DQXdJREV0TWk0NElEQnNMVFV1TWkwMUxqSmhNaUF5SURBZ01DQXhJREF0TWk0NFRERTBJRFFpSUM4K0Nqd3ZjM1puUGdvPSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvaGlnaGxpZ2h0ZXJcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBIaWdobGlnaHRlciA9IGNyZWF0ZUx1Y2lkZUljb24oJ2hpZ2hsaWdodGVyJywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IEhpZ2hsaWdodGVyO1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdNMyAxMmE5IDkgMCAxIDAgOS05IDkuNzUgOS43NSAwIDAgMC02Ljc0IDIuNzRMMyA4Jywga2V5OiAnMTM1N2UzJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTMgM3Y1aDUnLCBrZXk6ICcxeGhxOGEnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTIgN3Y1bDQgMicsIGtleTogJzFmZHYyaCcgfV0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgSGlzdG9yeVxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTXlBeE1tRTVJRGtnTUNBeElEQWdPUzA1SURrdU56VWdPUzQzTlNBd0lEQWdNQzAyTGpjMElESXVOelJNTXlBNElpQXZQZ29nSUR4d1lYUm9JR1E5SWsweklETjJOV2cxSWlBdlBnb2dJRHh3WVhSb0lHUTlJazB4TWlBM2RqVnNOQ0F5SWlBdlBnbzhMM04yWno0SykgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvaGlzdG9yeVxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IEhpc3RvcnkgPSBjcmVhdGVMdWNpZGVJY29uKCdoaXN0b3J5JywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IEhpc3Rvcnk7XG4iLCJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ00xMC44MiAxNi4xMmMxLjY5LjYgMy45MS43OSA1LjE4Ljg1LjI4LjAxLjUzLS4wOS43LS4yNycsIGtleTogJ3F5emNhcCcgfV0sXG4gIFtcbiAgICAncGF0aCcsXG4gICAge1xuICAgICAgZDogJ00xMS4xNCAyMC41N2MuNTIuMjQgMi40NCAxLjEyIDQuMDggMS4zNy40Ni4wNi44Ni0uMjUuOS0uNzEuMTItMS41Mi0uMy0zLjQzLS41LTQuMjgnLFxuICAgICAga2V5OiAneTA3OGxiJyxcbiAgICB9LFxuICBdLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTYuMTMgMjEuMDVjMS42NS42MyAzLjY4Ljg0IDQuODcuOTFhLjkuOSAwIDAgMCAuNy0uMjYnLCBrZXk6ICcxdXRyZTMnIH1dLFxuICBbXG4gICAgJ3BhdGgnLFxuICAgIHtcbiAgICAgIGQ6ICdNMTcuOTkgNS41MmEyMC44MyAyMC44MyAwIDAgMSAzLjE1IDQuNS44LjggMCAwIDEtLjY4IDEuMTNjLTEuMTcuMS0yLjUuMDItMy45LS4yNScsXG4gICAgICBrZXk6ICcxN285aG0nLFxuICAgIH0sXG4gIF0sXG4gIFsncGF0aCcsIHsgZDogJ00yMC41NyAxMS4xNGMuMjQuNTIgMS4xMiAyLjQ0IDEuMzcgNC4wOC4wNC4zLS4wOC41OS0uMzEuNzUnLCBrZXk6ICcxZDFuNHAnIH1dLFxuICBbXG4gICAgJ3BhdGgnLFxuICAgIHtcbiAgICAgIGQ6ICdNNC45MyA0LjkzYTEwIDEwIDAgMCAwLS42NyAxMy40Yy4zNS40My45Ni40IDEuMTctLjEyLjY5LTEuNzEgMS4wNy01LjA3IDEuMDctNi43MSAxLjM0LjQ1IDMuMS45IDQuODguNjJhLjg1Ljg1IDAgMCAwIC40OC0uMjQnLFxuICAgICAga2V5OiAnOXV2M3R0JyxcbiAgICB9LFxuICBdLFxuICBbXG4gICAgJ3BhdGgnLFxuICAgIHtcbiAgICAgIGQ6ICdNNS41MiAxNy45OWMxLjA1Ljk1IDIuOTEgMi40MiA0LjUgMy4xNWEuOC44IDAgMCAwIDEuMTMtLjY4Yy4yLTIuMzQtLjMzLTUuMy0xLjU3LTguMjgnLFxuICAgICAga2V5OiAnMTI5Mnd6JyxcbiAgICB9LFxuICBdLFxuICBbXG4gICAgJ3BhdGgnLFxuICAgIHtcbiAgICAgIGQ6ICdNOC4zNSAyLjY4YTEwIDEwIDAgMCAxIDkuOTggMS41OGMuNDMuMzUuNC45Ni0uMTIgMS4xNy0xLjUuNi00LjMuOTgtNi4wNyAxLjA1JyxcbiAgICAgIGtleTogJzdvenU5cCcsXG4gICAgfSxcbiAgXSxcbiAgWydwYXRoJywgeyBkOiAnbTIgMiAyMCAyMCcsIGtleTogJzFvb2V3eScgfV0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgSG9wT2ZmXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NVEF1T0RJZ01UWXVNVEpqTVM0Mk9TNDJJRE11T1RFdU56a2dOUzR4T0M0NE5TNHlPQzR3TVM0MU15MHVNRGt1TnkwdU1qY2lJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRURXhMakUwSURJd0xqVTNZeTQxTWk0eU5DQXlMalEwSURFdU1USWdOQzR3T0NBeExqTTNMalEyTGpBMkxqZzJMUzR5TlM0NUxTNDNNUzR4TWkweExqVXlMUzR6TFRNdU5ETXRMalV0TkM0eU9DSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk1UWXVNVE1nTWpFdU1EVmpNUzQyTlM0Mk15QXpMalk0TGpnMElEUXVPRGN1T1RGaExqa3VPU0F3SURBZ01DQXVOeTB1TWpZaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRFM0xqazVJRFV1TlRKaE1qQXVPRE1nTWpBdU9ETWdNQ0F3SURFZ015NHhOU0EwTGpVdU9DNDRJREFnTUNBeExTNDJPQ0F4TGpFell5MHhMakUzTGpFdE1pNDFMakF5TFRNdU9TMHVNalVpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVEl3TGpVM0lERXhMakUwWXk0eU5DNDFNaUF4TGpFeUlESXVORFFnTVM0ek55QTBMakE0TGpBMExqTXRMakE0TGpVNUxTNHpNUzQzTlNJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTkM0NU15QTBMamt6WVRFd0lERXdJREFnTUNBd0xTNDJOeUF4TXk0MFl5NHpOUzQwTXk0NU5pNDBJREV1TVRjdExqRXlMalk1TFRFdU56RWdNUzR3TnkwMUxqQTNJREV1TURjdE5pNDNNU0F4TGpNMExqUTFJRE11TVM0NUlEUXVPRGd1TmpKaExqZzFMamcxSURBZ01DQXdJQzQwT0MwdU1qUWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRUVXVOVElnTVRjdU9UbGpNUzR3TlM0NU5TQXlMamt4SURJdU5ESWdOQzQxSURNdU1UVmhMamd1T0NBd0lEQWdNQ0F4TGpFekxTNDJPR011TWkweUxqTTBMUzR6TXkwMUxqTXRNUzQxTnkwNExqSTRJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMDRMak0xSURJdU5qaGhNVEFnTVRBZ01DQXdJREVnT1M0NU9DQXhMalU0WXk0ME15NHpOUzQwTGprMkxTNHhNaUF4TGpFM0xURXVOUzQyTFRRdU15NDVPQzAyTGpBM0lERXVNRFVpSUM4K0NpQWdQSEJoZEdnZ1pEMGliVElnTWlBeU1DQXlNQ0lnTHo0S1BDOXpkbWMrQ2c9PSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvaG9wLW9mZlxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IEhvcE9mZiA9IGNyZWF0ZUx1Y2lkZUljb24oJ2hvcC1vZmYnLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgSG9wT2ZmO1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbXG4gICAgJ3BhdGgnLFxuICAgIHtcbiAgICAgIGQ6ICdNMTAuODIgMTYuMTJjMS42OS42IDMuOTEuNzkgNS4xOC44NS41NS4wMyAxLS40Mi45Ny0uOTctLjA2LTEuMjctLjI2LTMuNS0uODUtNS4xOCcsXG4gICAgICBrZXk6ICcxOGx4ZjEnLFxuICAgIH0sXG4gIF0sXG4gIFtcbiAgICAncGF0aCcsXG4gICAge1xuICAgICAgZDogJ00xMS41IDYuNWMxLjY0IDAgNS0uMzggNi43MS0xLjA3LjUyLS4yLjU1LS44Mi4xMi0xLjE3QTEwIDEwIDAgMCAwIDQuMjYgMTguMzNjLjM1LjQzLjk2LjQgMS4xNy0uMTIuNjktMS43MSAxLjA3LTUuMDcgMS4wNy02LjcxIDEuMzQuNDUgMy4xLjkgNC44OC42MmEuODguODggMCAwIDAgLjczLS43NGMuMy0yLjE0LS4xNS0zLjUtLjYxLTQuODgnLFxuICAgICAga2V5OiAndnRmeHJ3JyxcbiAgICB9LFxuICBdLFxuICBbXG4gICAgJ3BhdGgnLFxuICAgIHtcbiAgICAgIGQ6ICdNMTUuNjIgMTYuOTVjLjIuODUuNjIgMi43Ni41IDQuMjhhLjc3Ljc3IDAgMCAxLS45LjcgMTYuNjQgMTYuNjQgMCAwIDEtNC4wOC0xLjM2JyxcbiAgICAgIGtleTogJzEzaGw3MScsXG4gICAgfSxcbiAgXSxcbiAgW1xuICAgICdwYXRoJyxcbiAgICB7XG4gICAgICBkOiAnTTE2LjEzIDIxLjA1YzEuNjUuNjMgMy42OC44NCA0Ljg3LjkxYS45LjkgMCAwIDAgLjk2LS45NiAxNy42OCAxNy42OCAwIDAgMC0uOS00Ljg3JyxcbiAgICAgIGtleTogJzFzbDhvaicsXG4gICAgfSxcbiAgXSxcbiAgW1xuICAgICdwYXRoJyxcbiAgICB7XG4gICAgICBkOiAnTTE2Ljk0IDE1LjYyYy44Ni4yIDIuNzcuNjIgNC4yOS41YS43Ny43NyAwIDAgMCAuNy0uOSAxNi42NCAxNi42NCAwIDAgMC0xLjM2LTQuMDgnLFxuICAgICAga2V5OiAnMTljNmt0JyxcbiAgICB9LFxuICBdLFxuICBbXG4gICAgJ3BhdGgnLFxuICAgIHtcbiAgICAgIGQ6ICdNMTcuOTkgNS41MmEyMC44MiAyMC44MiAwIDAgMSAzLjE1IDQuNS44LjggMCAwIDEtLjY4IDEuMTNjLTIuMzMuMi01LjMtLjMyLTguMjctMS41NycsXG4gICAgICBrZXk6ICc4NWdoczMnLFxuICAgIH0sXG4gIF0sXG4gIFsncGF0aCcsIHsgZDogJ000LjkzIDQuOTMgMyAzYS43LjcgMCAwIDEgMC0xJywga2V5OiAneDA4N3lqJyB9XSxcbiAgW1xuICAgICdwYXRoJyxcbiAgICB7XG4gICAgICBkOiAnTTkuNTggMTIuMThjMS4yNCAyLjk4IDEuNzcgNS45NSAxLjU3IDguMjhhLjguOCAwIDAgMS0xLjEzLjY4IDIwLjgyIDIwLjgyIDAgMCAxLTQuNS0zLjE1JyxcbiAgICAgIGtleTogJzExeGRxbycsXG4gICAgfSxcbiAgXSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBIb3BcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1UQXVPRElnTVRZdU1USmpNUzQyT1M0MklETXVPVEV1TnprZ05TNHhPQzQ0TlM0MU5TNHdNeUF4TFM0ME1pNDVOeTB1T1RjdExqQTJMVEV1TWpjdExqSTJMVE11TlMwdU9EVXROUzR4T0NJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTVRFdU5TQTJMalZqTVM0Mk5DQXdJRFV0TGpNNElEWXVOekV0TVM0d055NDFNaTB1TWk0MU5TMHVPREl1TVRJdE1TNHhOMEV4TUNBeE1DQXdJREFnTUNBMExqSTJJREU0TGpNell5NHpOUzQwTXk0NU5pNDBJREV1TVRjdExqRXlMalk1TFRFdU56RWdNUzR3TnkwMUxqQTNJREV1TURjdE5pNDNNU0F4TGpNMExqUTFJRE11TVM0NUlEUXVPRGd1TmpKaExqZzRMamc0SURBZ01DQXdJQzQzTXkwdU56UmpMak10TWk0eE5DMHVNVFV0TXk0MUxTNDJNUzAwTGpnNElpQXZQZ29nSUR4d1lYUm9JR1E5SWsweE5TNDJNaUF4Tmk0NU5XTXVNaTQ0TlM0Mk1pQXlMamMyTGpVZ05DNHlPR0V1TnpjdU56Y2dNQ0F3SURFdExqa3VOeUF4Tmk0Mk5DQXhOaTQyTkNBd0lEQWdNUzAwTGpBNExURXVNellpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVEUyTGpFeklESXhMakExWXpFdU5qVXVOak1nTXk0Mk9DNDROQ0EwTGpnM0xqa3hZUzQ1TGprZ01DQXdJREFnTGprMkxTNDVOaUF4Tnk0Mk9DQXhOeTQyT0NBd0lEQWdNQzB1T1MwMExqZzNJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHhOaTQ1TkNBeE5TNDJNbU11T0RZdU1pQXlMamMzTGpZeUlEUXVNamt1TldFdU56Y3VOemNnTUNBd0lEQWdMamN0TGprZ01UWXVOalFnTVRZdU5qUWdNQ0F3SURBdE1TNHpOaTAwTGpBNElpQXZQZ29nSUR4d1lYUm9JR1E5SWsweE55NDVPU0ExTGpVeVlUSXdMamd5SURJd0xqZ3lJREFnTUNBeElETXVNVFVnTkM0MUxqZ3VPQ0F3SURBZ01TMHVOamdnTVM0eE0yTXRNaTR6TXk0eUxUVXVNeTB1TXpJdE9DNHlOeTB4TGpVM0lpQXZQZ29nSUR4d1lYUm9JR1E5SWswMExqa3pJRFF1T1RNZ015QXpZUzQzTGpjZ01DQXdJREVnTUMweElpQXZQZ29nSUR4d1lYUm9JR1E5SWswNUxqVTRJREV5TGpFNFl6RXVNalFnTWk0NU9DQXhMamMzSURVdU9UVWdNUzQxTnlBNExqSTRZUzQ0TGpnZ01DQXdJREV0TVM0eE15NDJPQ0F5TUM0NE1pQXlNQzQ0TWlBd0lEQWdNUzAwTGpVdE15NHhOU0lnTHo0S1BDOXpkbWMrQ2c9PSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvaG9wXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgSG9wID0gY3JlYXRlTHVjaWRlSWNvbignaG9wJywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IEhvcDtcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTEyIDZ2NCcsIGtleTogJzE2Y2x4ZicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xNCAxNGgtNCcsIGtleTogJ2VzZXptdScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xNCAxOGgtNCcsIGtleTogJzE2bXFhMicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xNCA4aC00Jywga2V5OiAnejh5cGF6JyB9XSxcbiAgW1xuICAgICdwYXRoJyxcbiAgICB7XG4gICAgICBkOiAnTTE4IDEyaDJhMiAyIDAgMCAxIDIgMnY2YTIgMiAwIDAgMS0yIDJINGEyIDIgMCAwIDEtMi0ydi05YTIgMiAwIDAgMSAyLTJoMicsXG4gICAgICBrZXk6ICdiMWszMzcnLFxuICAgIH0sXG4gIF0sXG4gIFsncGF0aCcsIHsgZDogJ00xOCAyMlY0YTIgMiAwIDAgMC0yLTJIOGEyIDIgMCAwIDAtMiAydjE4Jywga2V5OiAnMTZnNTFkJyB9XSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBIb3NwaXRhbFxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTVRJZ05uWTBJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHhOQ0F4TkdndE5DSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk1UUWdNVGhvTFRRaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRFMElEaG9MVFFpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVEU0SURFeWFESmhNaUF5SURBZ01DQXhJRElnTW5ZMllUSWdNaUF3SURBZ01TMHlJREpJTkdFeUlESWdNQ0F3SURFdE1pMHlkaTA1WVRJZ01pQXdJREFnTVNBeUxUSm9NaUlnTHo0S0lDQThjR0YwYUNCa1BTSk5NVGdnTWpKV05HRXlJRElnTUNBd0lEQXRNaTB5U0RoaE1pQXlJREFnTUNBd0xUSWdNbll4T0NJZ0x6NEtQQzl6ZG1jK0NnPT0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2hvc3BpdGFsXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgSG9zcGl0YWwgPSBjcmVhdGVMdWNpZGVJY29uKCdob3NwaXRhbCcsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBIb3NwaXRhbDtcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTEwIDIydi02LjU3Jywga2V5OiAnMXdtY2EzJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTEyIDExaC4wMScsIGtleTogJ3ozMjJ0dicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xMiA3aC4wMScsIGtleTogJzFpdnI1cScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xNCAxNS40M1YyMicsIGtleTogJzFxMnZqZCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xNSAxNmE1IDUgMCAwIDAtNiAwJywga2V5OiAnbzl3cXZpJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTE2IDExaC4wMScsIGtleTogJ3hrdzhnbicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xNiA3aC4wMScsIGtleTogJzFrZHgwMycgfV0sXG4gIFsncGF0aCcsIHsgZDogJ004IDExaC4wMScsIGtleTogJzFkZnVqdycgfV0sXG4gIFsncGF0aCcsIHsgZDogJ004IDdoLjAxJywga2V5OiAnMXZ0aTRzJyB9XSxcbiAgWydyZWN0JywgeyB4OiAnNCcsIHk6ICcyJywgd2lkdGg6ICcxNicsIGhlaWdodDogJzIwJywgcng6ICcyJywga2V5OiAnMXV4aDc0JyB9XSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBIb3RlbFxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTVRBZ01qSjJMVFl1TlRjaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRFeUlERXhhQzR3TVNJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTVRJZ04yZ3VNREVpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVEUwSURFMUxqUXpWakl5SWlBdlBnb2dJRHh3WVhSb0lHUTlJazB4TlNBeE5tRTFJRFVnTUNBd0lEQXROaUF3SWlBdlBnb2dJRHh3WVhSb0lHUTlJazB4TmlBeE1XZ3VNREVpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVEUySURkb0xqQXhJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMDRJREV4YUM0d01TSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk9DQTNhQzR3TVNJZ0x6NEtJQ0E4Y21WamRDQjRQU0kwSWlCNVBTSXlJaUIzYVdSMGFEMGlNVFlpSUdobGFXZG9kRDBpTWpBaUlISjRQU0l5SWlBdlBnbzhMM04yWno0SykgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvaG90ZWxcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBIb3RlbCA9IGNyZWF0ZUx1Y2lkZUljb24oJ2hvdGVsJywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IEhvdGVsO1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdNNSAyMmgxNCcsIGtleTogJ2Vodm53dicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ001IDJoMTQnLCBrZXk6ICdwZHlycDknIH1dLFxuICBbXG4gICAgJ3BhdGgnLFxuICAgIHtcbiAgICAgIGQ6ICdNMTcgMjJ2LTQuMTcyYTIgMiAwIDAgMC0uNTg2LTEuNDE0TDEyIDEybC00LjQxNCA0LjQxNEEyIDIgMCAwIDAgNyAxNy44MjhWMjInLFxuICAgICAga2V5OiAnMWQzMTRrJyxcbiAgICB9LFxuICBdLFxuICBbXG4gICAgJ3BhdGgnLFxuICAgIHsgZDogJ003IDJ2NC4xNzJhMiAyIDAgMCAwIC41ODYgMS40MTRMMTIgMTJsNC40MTQtNC40MTRBMiAyIDAgMCAwIDE3IDYuMTcyVjInLCBrZXk6ICcxdnZ2cjYnIH0sXG4gIF0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgSG91cmdsYXNzXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5OU0F5TW1neE5DSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk5TQXlhREUwSWlBdlBnb2dJRHh3WVhSb0lHUTlJazB4TnlBeU1uWXROQzR4TnpKaE1pQXlJREFnTUNBd0xTNDFPRFl0TVM0ME1UUk1NVElnTVRKc0xUUXVOREUwSURRdU5ERTBRVElnTWlBd0lEQWdNQ0EzSURFM0xqZ3lPRll5TWlJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTnlBeWRqUXVNVGN5WVRJZ01pQXdJREFnTUNBdU5UZzJJREV1TkRFMFRERXlJREV5YkRRdU5ERTBMVFF1TkRFMFFUSWdNaUF3SURBZ01DQXhOeUEyTGpFM01sWXlJaUF2UGdvOEwzTjJaejRLKSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9ob3VyZ2xhc3NcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBIb3VyZ2xhc3MgPSBjcmVhdGVMdWNpZGVJY29uKCdob3VyZ2xhc3MnLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgSG91cmdsYXNzO1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdNMTAgMTJWOC45NjQnLCBrZXk6ICcxdmxsMTMnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTQgMTJWOC45NjQnLCBrZXk6ICcxeDNxdmcnIH1dLFxuICBbXG4gICAgJ3BhdGgnLFxuICAgIHsgZDogJ00xNSAxMmExIDEgMCAwIDEgMSAxdjJhMiAyIDAgMCAxLTIgMmgtNGEyIDIgMCAwIDEtMi0ydi0yYTEgMSAwIDAgMSAxLTF6Jywga2V5OiAncHB5a2phJyB9LFxuICBdLFxuICBbXG4gICAgJ3BhdGgnLFxuICAgIHtcbiAgICAgIGQ6ICdNOC41IDIxSDVhMiAyIDAgMCAxLTItMnYtOWEyIDIgMCAwIDEgLjcwOS0xLjUyOGw3LTUuOTk5YTIgMiAwIDAgMSAyLjU4MiAwbDcgNS45OTlBMiAyIDAgMCAxIDIxIDEwdjlhMiAyIDAgMCAxLTIgMmgtNWEyIDIgMCAwIDEtMi0ydi0yJyxcbiAgICAgIGtleTogJzFndmcyeicsXG4gICAgfSxcbiAgXSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBIb3VzZVBsdWdcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1UQWdNVEpXT0M0NU5qUWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRURTBJREV5VmpndU9UWTBJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHhOU0F4TW1FeElERWdNQ0F3SURFZ01TQXhkakpoTWlBeUlEQWdNQ0F4TFRJZ01tZ3ROR0V5SURJZ01DQXdJREV0TWkweWRpMHlZVEVnTVNBd0lEQWdNU0F4TFRGNklpQXZQZ29nSUR4d1lYUm9JR1E5SWswNExqVWdNakZJTldFeUlESWdNQ0F3SURFdE1pMHlkaTA1WVRJZ01pQXdJREFnTVNBdU56QTVMVEV1TlRJNGJEY3ROUzQ1T1RsaE1pQXlJREFnTUNBeElESXVOVGd5SURCc055QTFMams1T1VFeUlESWdNQ0F3SURFZ01qRWdNVEIyT1dFeUlESWdNQ0F3SURFdE1pQXlhQzAxWVRJZ01pQXdJREFnTVMweUxUSjJMVElpSUM4K0Nqd3ZjM1puUGdvPSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvaG91c2UtcGx1Z1xuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IEhvdXNlUGx1ZyA9IGNyZWF0ZUx1Y2lkZUljb24oJ2hvdXNlLXBsdWcnLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgSG91c2VQbHVnO1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbXG4gICAgJ3BhdGgnLFxuICAgIHtcbiAgICAgIGQ6ICdNMTIuNjYyIDIxSDVhMiAyIDAgMCAxLTItMnYtOWEyIDIgMCAwIDEgLjcwOS0xLjUyOGw3LTUuOTk5YTIgMiAwIDAgMSAyLjU4MiAwbDcgNS45OTlBMiAyIDAgMCAxIDIxIDEwdjIuNDc1JyxcbiAgICAgIGtleTogJ3V1YmQyaCcsXG4gICAgfSxcbiAgXSxcbiAgWydwYXRoJywgeyBkOiAnTTE0Ljk1OSAxMi43MTdBMSAxIDAgMCAwIDE0IDEyaC00YTEgMSAwIDAgMC0xIDF2OCcsIGtleTogJ3A3ZjM0MScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xNSAxOGg2Jywga2V5OiAnM2IzYzkwJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTE4IDE1djYnLCBrZXk6ICc5d2NpeWknIH1dLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIEhvdXNlUGx1c1xuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTVRJdU5qWXlJREl4U0RWaE1pQXlJREFnTUNBeExUSXRNbll0T1dFeUlESWdNQ0F3SURFZ0xqY3dPUzB4TGpVeU9HdzNMVFV1T1RrNVlUSWdNaUF3SURBZ01TQXlMalU0TWlBd2JEY2dOUzQ1T1RsQk1pQXlJREFnTUNBeElESXhJREV3ZGpJdU5EYzFJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHhOQzQ1TlRrZ01USXVOekUzUVRFZ01TQXdJREFnTUNBeE5DQXhNbWd0TkdFeElERWdNQ0F3SURBdE1TQXhkamdpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVEUxSURFNGFEWWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRURTRJREUxZGpZaUlDOCtDand2YzNablBnbz0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2hvdXNlLXBsdXNcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBIb3VzZVBsdXMgPSBjcmVhdGVMdWNpZGVJY29uKCdob3VzZS1wbHVzJywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IEhvdXNlUGx1cztcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTE1IDIxdi04YTEgMSAwIDAgMC0xLTFoLTRhMSAxIDAgMCAwLTEgMXY4Jywga2V5OiAnNXd3bHI1JyB9XSxcbiAgW1xuICAgICdwYXRoJyxcbiAgICB7XG4gICAgICBkOiAnTTMgMTBhMiAyIDAgMCAxIC43MDktMS41MjhsNy01Ljk5OWEyIDIgMCAwIDEgMi41ODIgMGw3IDUuOTk5QTIgMiAwIDAgMSAyMSAxMHY5YTIgMiAwIDAgMS0yIDJINWEyIDIgMCAwIDEtMi0yeicsXG4gICAgICBrZXk6ICcxZDBrZ3QnLFxuICAgIH0sXG4gIF0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgSG91c2VcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1UVWdNakYyTFRoaE1TQXhJREFnTUNBd0xURXRNV2d0TkdFeElERWdNQ0F3SURBdE1TQXhkamdpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVE1nTVRCaE1pQXlJREFnTUNBeElDNDNNRGt0TVM0MU1qaHNOeTAxTGprNU9XRXlJRElnTUNBd0lERWdNaTQxT0RJZ01HdzNJRFV1T1RrNVFUSWdNaUF3SURBZ01TQXlNU0F4TUhZNVlUSWdNaUF3SURBZ01TMHlJREpJTldFeUlESWdNQ0F3SURFdE1pMHllaUlnTHo0S1BDOXpkbWMrQ2c9PSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvaG91c2VcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBIb3VzZSA9IGNyZWF0ZUx1Y2lkZUljb24oJ2hvdXNlJywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IEhvdXNlO1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdNOS41IDEzLjg2NmE0IDQgMCAwIDEgNSAuMDEnLCBrZXk6ICcxd3k1NGknIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTIgMTdoLjAxJywga2V5OiAncDMycDA1JyB9XSxcbiAgW1xuICAgICdwYXRoJyxcbiAgICB7XG4gICAgICBkOiAnTTMgMTBhMiAyIDAgMCAxIC43MDktMS41MjhsNy01Ljk5OWEyIDIgMCAwIDEgMi41ODIgMGw3IDUuOTk5QTIgMiAwIDAgMSAyMSAxMHY5YTIgMiAwIDAgMS0yIDJINWEyIDIgMCAwIDEtMi0yeicsXG4gICAgICBrZXk6ICcxZDBrZ3QnLFxuICAgIH0sXG4gIF0sXG4gIFsncGF0aCcsIHsgZDogJ003IDEwLjc1NGE4IDggMCAwIDEgMTAgMCcsIGtleTogJ2V4b3kyZycgfV0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgSG91c2VXaWZpXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5PUzQxSURFekxqZzJObUUwSURRZ01DQXdJREVnTlNBdU1ERWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRURXlJREUzYUM0d01TSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk15QXhNR0V5SURJZ01DQXdJREVnTGpjd09TMHhMalV5T0d3M0xUVXVPVGs1WVRJZ01pQXdJREFnTVNBeUxqVTRNaUF3YkRjZ05TNDVPVGxCTWlBeUlEQWdNQ0F4SURJeElERXdkamxoTWlBeUlEQWdNQ0F4TFRJZ01rZzFZVElnTWlBd0lEQWdNUzB5TFRKNklpQXZQZ29nSUR4d1lYUm9JR1E5SWswM0lERXdMamMxTkdFNElEZ2dNQ0F3SURFZ01UQWdNQ0lnTHo0S1BDOXpkbWMrQ2c9PSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvaG91c2Utd2lmaVxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IEhvdXNlV2lmaSA9IGNyZWF0ZUx1Y2lkZUljb24oJ2hvdXNlLXdpZmknLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgSG91c2VXaWZpO1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbXG4gICAgJ3BhdGgnLFxuICAgIHtcbiAgICAgIGQ6ICdNMTIgMTdjNSAwIDgtMi42OSA4LTZINGMwIDMuMzEgMyA2IDggNm0tNCA0aDhtLTQtM3YzTTUuMTQgMTFhMy41IDMuNSAwIDEgMSA2LjcxIDAnLFxuICAgICAga2V5OiAnMXV4ZmN1JyxcbiAgICB9LFxuICBdLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTIuMTQgMTFhMy41IDMuNSAwIDEgMSA2LjcxIDAnLCBrZXk6ICc0azNtMXMnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTUuNSA2LjVhMy41IDMuNSAwIDEgMC03IDAnLCBrZXk6ICd6bXVhaHInIH1dLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIEljZUNyZWFtQm93bFxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTVRJZ01UZGpOU0F3SURndE1pNDJPU0E0TFRaSU5HTXdJRE11TXpFZ015QTJJRGdnTm0wdE5DQTBhRGh0TFRRdE0zWXpUVFV1TVRRZ01URmhNeTQxSURNdU5TQXdJREVnTVNBMkxqY3hJREFpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVEV5TGpFMElERXhZVE11TlNBekxqVWdNQ0F4SURFZ05pNDNNU0F3SWlBdlBnb2dJRHh3WVhSb0lHUTlJazB4TlM0MUlEWXVOV0V6TGpVZ015NDFJREFnTVNBd0xUY2dNQ0lnTHo0S1BDOXpkbWMrQ2c9PSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvaWNlLWNyZWFtLWJvd2xcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBJY2VDcmVhbUJvd2wgPSBjcmVhdGVMdWNpZGVJY29uKCdpY2UtY3JlYW0tYm93bCcsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBJY2VDcmVhbUJvd2w7XG4iLCJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ203IDExIDQuMDggMTAuMzVhMSAxIDAgMCAwIDEuODQgMEwxNyAxMScsIGtleTogJzF2NjM1NicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xNyA3QTUgNSAwIDAgMCA3IDcnLCBrZXk6ICcxNTFwM3YnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTcgN2EyIDIgMCAwIDEgMCA0SDdhMiAyIDAgMCAxIDAtNCcsIGtleTogJzFzZGFpaicgfV0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgSWNlQ3JlYW1Db25lXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSnROeUF4TVNBMExqQTRJREV3TGpNMVlURWdNU0F3SURBZ01DQXhMamcwSURCTU1UY2dNVEVpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVEUzSURkQk5TQTFJREFnTUNBd0lEY2dOeUlnTHo0S0lDQThjR0YwYUNCa1BTSk5NVGNnTjJFeUlESWdNQ0F3SURFZ01DQTBTRGRoTWlBeUlEQWdNQ0F4SURBdE5DSWdMejRLUEM5emRtYytDZz09KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9pY2UtY3JlYW0tY29uZVxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IEljZUNyZWFtQ29uZSA9IGNyZWF0ZUx1Y2lkZUljb24oJ2ljZS1jcmVhbS1jb25lJywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IEljZUNyZWFtQ29uZTtcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTEzLjUgOGgtMycsIGtleTogJ3h2b3Y0dycgfV0sXG4gIFtcbiAgICAncGF0aCcsXG4gICAge1xuICAgICAgZDogJ20xNSAyLTEgMmgzYTIgMiAwIDAgMSAyIDJ2MTRhMiAyIDAgMCAxLTIgMkg3YTIgMiAwIDAgMS0yLTJWNmEyIDIgMCAwIDEgMi0yaDMnLFxuICAgICAga2V5OiAnMTZ1dHRjJyxcbiAgICB9LFxuICBdLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTYuODk5IDIyQTUgNSAwIDAgMCA3LjEgMjInLCBrZXk6ICcxZDBwcHInIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdtOSAyIDMgNicsIGtleTogJzFvN2JkOScgfV0sXG4gIFsnY2lyY2xlJywgeyBjeDogJzEyJywgY3k6ICcxNScsIHI6ICczJywga2V5OiAnZzM2bXpxJyB9XSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBJZENhcmRMYW55YXJkXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NVE11TlNBNGFDMHpJaUF2UGdvZ0lEeHdZWFJvSUdROUltMHhOU0F5TFRFZ01tZ3pZVElnTWlBd0lEQWdNU0F5SURKMk1UUmhNaUF5SURBZ01DQXhMVElnTWtnM1lUSWdNaUF3SURBZ01TMHlMVEpXTm1FeUlESWdNQ0F3SURFZ01pMHlhRE1pSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVEUyTGpnNU9TQXlNa0UxSURVZ01DQXdJREFnTnk0eElESXlJaUF2UGdvZ0lEeHdZWFJvSUdROUltMDVJRElnTXlBMklpQXZQZ29nSUR4amFYSmpiR1VnWTNnOUlqRXlJaUJqZVQwaU1UVWlJSEk5SWpNaUlDOCtDand2YzNablBnPT0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2lkLWNhcmQtbGFueWFyZFxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IElkQ2FyZExhbnlhcmQgPSBjcmVhdGVMdWNpZGVJY29uKCdpZC1jYXJkLWxhbnlhcmQnLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgSWRDYXJkTGFueWFyZDtcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTE2IDEwaDInLCBrZXk6ICc4c2d0bDcnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTYgMTRoMicsIGtleTogJ2VweGFvZicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ002LjE3IDE1YTMgMyAwIDAgMSA1LjY2IDAnLCBrZXk6ICduNmY1MTInIH1dLFxuICBbJ2NpcmNsZScsIHsgY3g6ICc5JywgY3k6ICcxMScsIHI6ICcyJywga2V5OiAneXhnam5kJyB9XSxcbiAgWydyZWN0JywgeyB4OiAnMicsIHk6ICc1Jywgd2lkdGg6ICcyMCcsIGhlaWdodDogJzE0Jywgcng6ICcyJywga2V5OiAncW5ldTR6JyB9XSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBJZENhcmRcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1UWWdNVEJvTWlJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTVRZZ01UUm9NaUlnTHo0S0lDQThjR0YwYUNCa1BTSk5OaTR4TnlBeE5XRXpJRE1nTUNBd0lERWdOUzQyTmlBd0lpQXZQZ29nSUR4amFYSmpiR1VnWTNnOUlqa2lJR041UFNJeE1TSWdjajBpTWlJZ0x6NEtJQ0E4Y21WamRDQjRQU0l5SWlCNVBTSTFJaUIzYVdSMGFEMGlNakFpSUdobGFXZG9kRDBpTVRRaUlISjRQU0l5SWlBdlBnbzhMM04yWno0SykgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvaWQtY2FyZFxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IElkQ2FyZCA9IGNyZWF0ZUx1Y2lkZUljb24oJ2lkLWNhcmQnLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgSWRDYXJkO1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbXG4gICAgJ3BhdGgnLFxuICAgIHtcbiAgICAgIGQ6ICdNMTAuMyAyMUg1YTIgMiAwIDAgMS0yLTJWNWEyIDIgMCAwIDEgMi0yaDE0YTIgMiAwIDAgMSAyIDJ2MTBsLTMuMS0zLjFhMiAyIDAgMCAwLTIuODE0LjAxNEw2IDIxJyxcbiAgICAgIGtleTogJzljc2JxYScsXG4gICAgfSxcbiAgXSxcbiAgWydwYXRoJywgeyBkOiAnbTE0IDE5IDMgM3YtNS41Jywga2V5OiAnOWxkdTVyJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnbTE3IDIyIDMtMycsIGtleTogJzFua2Z2ZScgfV0sXG4gIFsnY2lyY2xlJywgeyBjeDogJzknLCBjeTogJzknLCByOiAnMicsIGtleTogJ2FmMWYwZycgfV0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgSW1hZ2VEb3duXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NVEF1TXlBeU1VZzFZVElnTWlBd0lEQWdNUzB5TFRKV05XRXlJRElnTUNBd0lERWdNaTB5YURFMFlUSWdNaUF3SURBZ01TQXlJREoyTVRCc0xUTXVNUzB6TGpGaE1pQXlJREFnTUNBd0xUSXVPREUwTGpBeE5FdzJJREl4SWlBdlBnb2dJRHh3WVhSb0lHUTlJbTB4TkNBeE9TQXpJRE4yTFRVdU5TSWdMejRLSUNBOGNHRjBhQ0JrUFNKdE1UY2dNaklnTXkweklpQXZQZ29nSUR4amFYSmpiR1VnWTNnOUlqa2lJR041UFNJNUlpQnlQU0l5SWlBdlBnbzhMM04yWno0SykgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvaW1hZ2UtZG93blxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IEltYWdlRG93biA9IGNyZWF0ZUx1Y2lkZUljb24oJ2ltYWdlLWRvd24nLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgSW1hZ2VEb3duO1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdNMjEgOXYxMGEyIDIgMCAwIDEtMiAySDVhMiAyIDAgMCAxLTItMlY1YTIgMiAwIDAgMSAyLTJoNycsIGtleTogJ204N2VjcicgfV0sXG4gIFsnbGluZScsIHsgeDE6ICcxNicsIHgyOiAnMjInLCB5MTogJzUnLCB5MjogJzUnLCBrZXk6ICdlejdlNHMnIH1dLFxuICBbJ2NpcmNsZScsIHsgY3g6ICc5JywgY3k6ICc5JywgcjogJzInLCBrZXk6ICdhZjFmMGcnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdtMjEgMTUtMy4wODYtMy4wODZhMiAyIDAgMCAwLTIuODI4IDBMNiAyMScsIGtleTogJzF4bW50NycgfV0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgSW1hZ2VNaW51c1xuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTWpFZ09YWXhNR0V5SURJZ01DQXdJREV0TWlBeVNEVmhNaUF5SURBZ01DQXhMVEl0TWxZMVlUSWdNaUF3SURBZ01TQXlMVEpvTnlJZ0x6NEtJQ0E4YkdsdVpTQjRNVDBpTVRZaUlIZ3lQU0l5TWlJZ2VURTlJalVpSUhreVBTSTFJaUF2UGdvZ0lEeGphWEpqYkdVZ1kzZzlJamtpSUdONVBTSTVJaUJ5UFNJeUlpQXZQZ29nSUR4d1lYUm9JR1E5SW0weU1TQXhOUzB6TGpBNE5pMHpMakE0Tm1FeUlESWdNQ0F3SURBdE1pNDRNamdnTUV3MklESXhJaUF2UGdvOEwzTjJaejRLKSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9pbWFnZS1taW51c1xuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IEltYWdlTWludXMgPSBjcmVhdGVMdWNpZGVJY29uKCdpbWFnZS1taW51cycsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBJbWFnZU1pbnVzO1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbJ2xpbmUnLCB7IHgxOiAnMicsIHgyOiAnMjInLCB5MTogJzInLCB5MjogJzIyJywga2V5OiAnYTZwNnVqJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTEwLjQxIDEwLjQxYTIgMiAwIDEgMS0yLjgzLTIuODMnLCBrZXk6ICcxYnpsbzknIH1dLFxuICBbJ2xpbmUnLCB7IHgxOiAnMTMuNScsIHgyOiAnNicsIHkxOiAnMTMuNScsIHkyOiAnMjEnLCBrZXk6ICcxcTBhZXUnIH1dLFxuICBbJ2xpbmUnLCB7IHgxOiAnMTgnLCB4MjogJzIxJywgeTE6ICcxMicsIHkyOiAnMTUnLCBrZXk6ICc1bW96ZXUnIH1dLFxuICBbXG4gICAgJ3BhdGgnLFxuICAgIHtcbiAgICAgIGQ6ICdNMy41OSAzLjU5QTEuOTkgMS45OSAwIDAgMCAzIDV2MTRhMiAyIDAgMCAwIDIgMmgxNGMuNTUgMCAxLjA1Mi0uMjIgMS40MS0uNTknLFxuICAgICAga2V5OiAnbW1qZTk4JyxcbiAgICB9LFxuICBdLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMjEgMTVWNWEyIDIgMCAwIDAtMi0ySDknLCBrZXk6ICc0M2VsNzcnIH1dLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIEltYWdlT2ZmXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThiR2x1WlNCNE1UMGlNaUlnZURJOUlqSXlJaUI1TVQwaU1pSWdlVEk5SWpJeUlpQXZQZ29nSUR4d1lYUm9JR1E5SWsweE1DNDBNU0F4TUM0ME1XRXlJRElnTUNBeElERXRNaTQ0TXkweUxqZ3pJaUF2UGdvZ0lEeHNhVzVsSUhneFBTSXhNeTQxSWlCNE1qMGlOaUlnZVRFOUlqRXpMalVpSUhreVBTSXlNU0lnTHo0S0lDQThiR2x1WlNCNE1UMGlNVGdpSUhneVBTSXlNU0lnZVRFOUlqRXlJaUI1TWowaU1UVWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRUTXVOVGtnTXk0MU9VRXhMams1SURFdU9Ua2dNQ0F3SURBZ015QTFkakUwWVRJZ01pQXdJREFnTUNBeUlESm9NVFJqTGpVMUlEQWdNUzR3TlRJdExqSXlJREV1TkRFdExqVTVJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHlNU0F4TlZZMVlUSWdNaUF3SURBZ01DMHlMVEpJT1NJZ0x6NEtQQzl6ZG1jK0NnPT0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2ltYWdlLW9mZlxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IEltYWdlT2ZmID0gY3JlYXRlTHVjaWRlSWNvbignaW1hZ2Utb2ZmJywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IEltYWdlT2ZmO1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdtMTEgMTYtNSA1Jywga2V5OiAnajVmN2N0JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTExIDIxSDVhMiAyIDAgMCAxLTItMlY1YTIgMiAwIDAgMSAyLTJoMTRhMiAyIDAgMCAxIDIgMnY2LjUnLCBrZXk6ICc3czgxbHQnIH1dLFxuICBbXG4gICAgJ3BhdGgnLFxuICAgIHtcbiAgICAgIGQ6ICdNMTUuNzY1IDIyYS41LjUgMCAwIDEtLjc2NS0uNDI0VjEzLjM4YS41LjUgMCAwIDEgLjc2NS0uNDI0bDUuODc4IDMuNjc0YTEgMSAwIDAgMSAwIDEuNjk2eicsXG4gICAgICBrZXk6ICcxb21iNnMnLFxuICAgIH0sXG4gIF0sXG4gIFsnY2lyY2xlJywgeyBjeDogJzknLCBjeTogJzknLCByOiAnMicsIGtleTogJ2FmMWYwZycgfV0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgSW1hZ2VQbGF5XG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSnRNVEVnTVRZdE5TQTFJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHhNU0F5TVVnMVlUSWdNaUF3SURBZ01TMHlMVEpXTldFeUlESWdNQ0F3SURFZ01pMHlhREUwWVRJZ01pQXdJREFnTVNBeUlESjJOaTQxSWlBdlBnb2dJRHh3WVhSb0lHUTlJazB4TlM0M05qVWdNakpoTGpVdU5TQXdJREFnTVMwdU56WTFMUzQwTWpSV01UTXVNemhoTGpVdU5TQXdJREFnTVNBdU56WTFMUzQwTWpSc05TNDROemdnTXk0Mk56UmhNU0F4SURBZ01DQXhJREFnTVM0Mk9UWjZJaUF2UGdvZ0lEeGphWEpqYkdVZ1kzZzlJamtpSUdONVBTSTVJaUJ5UFNJeUlpQXZQZ284TDNOMlp6NEspIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2ltYWdlLXBsYXlcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBJbWFnZVBsYXkgPSBjcmVhdGVMdWNpZGVJY29uKCdpbWFnZS1wbGF5JywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IEltYWdlUGxheTtcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTE2IDVoNicsIGtleTogJzF2b2QxNycgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xOSAydjYnLCBrZXk6ICc0YnBnNXAnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMjEgMTEuNVYxOWEyIDIgMCAwIDEtMiAySDVhMiAyIDAgMCAxLTItMlY1YTIgMiAwIDAgMSAyLTJoNy41Jywga2V5OiAnMXVlMmloJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnbTIxIDE1LTMuMDg2LTMuMDg2YTIgMiAwIDAgMC0yLjgyOCAwTDYgMjEnLCBrZXk6ICcxeG1udDcnIH1dLFxuICBbJ2NpcmNsZScsIHsgY3g6ICc5JywgY3k6ICc5JywgcjogJzInLCBrZXk6ICdhZjFmMGcnIH1dLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIEltYWdlUGx1c1xuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTVRZZ05XZzJJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHhPU0F5ZGpZaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRJeElERXhMalZXTVRsaE1pQXlJREFnTUNBeExUSWdNa2cxWVRJZ01pQXdJREFnTVMweUxUSldOV0V5SURJZ01DQXdJREVnTWkweWFEY3VOU0lnTHo0S0lDQThjR0YwYUNCa1BTSnRNakVnTVRVdE15NHdPRFl0TXk0d09EWmhNaUF5SURBZ01DQXdMVEl1T0RJNElEQk1OaUF5TVNJZ0x6NEtJQ0E4WTJseVkyeGxJR040UFNJNUlpQmplVDBpT1NJZ2NqMGlNaUlnTHo0S1BDOXpkbWMrQ2c9PSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvaW1hZ2UtcGx1c1xuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IEltYWdlUGx1cyA9IGNyZWF0ZUx1Y2lkZUljb24oJ2ltYWdlLXBsdXMnLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgSW1hZ2VQbHVzO1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbXG4gICAgJ3BhdGgnLFxuICAgIHtcbiAgICAgIGQ6ICdNMTAuMyAyMUg1YTIgMiAwIDAgMS0yLTJWNWEyIDIgMCAwIDEgMi0yaDE0YTIgMiAwIDAgMSAyIDJ2MTBsLTMuMS0zLjFhMiAyIDAgMCAwLTIuODE0LjAxNEw2IDIxJyxcbiAgICAgIGtleTogJzljc2JxYScsXG4gICAgfSxcbiAgXSxcbiAgWydwYXRoJywgeyBkOiAnbTE0IDE5LjUgMy0zIDMgMycsIGtleTogJzl2bWpuMCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xNyAyMnYtNS41Jywga2V5OiAnMWFhNmZsJyB9XSxcbiAgWydjaXJjbGUnLCB7IGN4OiAnOScsIGN5OiAnOScsIHI6ICcyJywga2V5OiAnYWYxZjBnJyB9XSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBJbWFnZVVwXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NVEF1TXlBeU1VZzFZVElnTWlBd0lEQWdNUzB5TFRKV05XRXlJRElnTUNBd0lERWdNaTB5YURFMFlUSWdNaUF3SURBZ01TQXlJREoyTVRCc0xUTXVNUzB6TGpGaE1pQXlJREFnTUNBd0xUSXVPREUwTGpBeE5FdzJJREl4SWlBdlBnb2dJRHh3WVhSb0lHUTlJbTB4TkNBeE9TNDFJRE10TXlBeklETWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRURTNJREl5ZGkwMUxqVWlJQzgrQ2lBZ1BHTnBjbU5zWlNCamVEMGlPU0lnWTNrOUlqa2lJSEk5SWpJaUlDOCtDand2YzNablBnbz0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2ltYWdlLXVwXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgSW1hZ2VVcCA9IGNyZWF0ZUx1Y2lkZUljb24oJ2ltYWdlLXVwJywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IEltYWdlVXA7XG4iLCJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ00xNiAzaDV2NScsIGtleTogJzE4MDZtcycgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xNyAyMWgyYTIgMiAwIDAgMCAyLTInLCBrZXk6ICcxMzBmeTknIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMjEgMTJ2MycsIGtleTogJzF3emszcCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ20yMSAzLTUgNScsIGtleTogJzFnNW9hNycgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00zIDdWNWEyIDIgMCAwIDEgMi0yJywga2V5OiAna2szeXoxJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnbTUgMjEgNC4xNDQtNC4xNDRhMS4yMSAxLjIxIDAgMCAxIDEuNzEyIDBMMTMgMTknLCBrZXk6ICdmeWVrcHQnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNOSAzaDMnLCBrZXk6ICdkNTJmYScgfV0sXG4gIFsncmVjdCcsIHsgeDogJzMnLCB5OiAnMTEnLCB3aWR0aDogJzEwJywgaGVpZ2h0OiAnMTAnLCByeDogJzEnLCBrZXk6ICcxd3BtaXgnIH1dLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIEltYWdlVXBzY2FsZVxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTVRZZ00yZzFkalVpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVEUzSURJeGFESmhNaUF5SURBZ01DQXdJREl0TWlJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTWpFZ01USjJNeUlnTHo0S0lDQThjR0YwYUNCa1BTSnRNakVnTXkwMUlEVWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRUTWdOMVkxWVRJZ01pQXdJREFnTVNBeUxUSWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaWJUVWdNakVnTkM0eE5EUXROQzR4TkRSaE1TNHlNU0F4TGpJeElEQWdNQ0F4SURFdU56RXlJREJNTVRNZ01Ua2lJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRUa2dNMmd6SWlBdlBnb2dJRHh5WldOMElIZzlJak1pSUhrOUlqRXhJaUIzYVdSMGFEMGlNVEFpSUdobGFXZG9kRDBpTVRBaUlISjRQU0l4SWlBdlBnbzhMM04yWno0SykgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvaW1hZ2UtdXBzY2FsZVxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IEltYWdlVXBzY2FsZSA9IGNyZWF0ZUx1Y2lkZUljb24oJ2ltYWdlLXVwc2NhbGUnLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgSW1hZ2VVcHNjYWxlO1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbJ3JlY3QnLCB7IHdpZHRoOiAnMTgnLCBoZWlnaHQ6ICcxOCcsIHg6ICczJywgeTogJzMnLCByeDogJzInLCByeTogJzInLCBrZXk6ICcxbTNhZ24nIH1dLFxuICBbJ2NpcmNsZScsIHsgY3g6ICc5JywgY3k6ICc5JywgcjogJzInLCBrZXk6ICdhZjFmMGcnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdtMjEgMTUtMy4wODYtMy4wODZhMiAyIDAgMCAwLTIuODI4IDBMNiAyMScsIGtleTogJzF4bW50NycgfV0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgSW1hZ2VcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNtVmpkQ0IzYVdSMGFEMGlNVGdpSUdobGFXZG9kRDBpTVRnaUlIZzlJak1pSUhrOUlqTWlJSEo0UFNJeUlpQnllVDBpTWlJZ0x6NEtJQ0E4WTJseVkyeGxJR040UFNJNUlpQmplVDBpT1NJZ2NqMGlNaUlnTHo0S0lDQThjR0YwYUNCa1BTSnRNakVnTVRVdE15NHdPRFl0TXk0d09EWmhNaUF5SURBZ01DQXdMVEl1T0RJNElEQk1OaUF5TVNJZ0x6NEtQQzl6ZG1jK0NnPT0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2ltYWdlXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgSW1hZ2UgPSBjcmVhdGVMdWNpZGVJY29uKCdpbWFnZScsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBJbWFnZTtcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTE4IDIySDRhMiAyIDAgMCAxLTItMlY2Jywga2V5OiAncGJsbTllJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnbTIyIDEzLTEuMjk2LTEuMjk2YTIuNDEgMi40MSAwIDAgMC0zLjQwOCAwTDExIDE4Jywga2V5OiAnbmY2Ym5oJyB9XSxcbiAgWydjaXJjbGUnLCB7IGN4OiAnMTInLCBjeTogJzgnLCByOiAnMicsIGtleTogJzE4MjJiMScgfV0sXG4gIFsncmVjdCcsIHsgd2lkdGg6ICcxNicsIGhlaWdodDogJzE2JywgeDogJzYnLCB5OiAnMicsIHJ4OiAnMicsIGtleTogJzEyZXNwcCcgfV0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgSW1hZ2VzXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NVGdnTWpKSU5HRXlJRElnTUNBd0lERXRNaTB5VmpZaUlDOCtDaUFnUEhCaGRHZ2daRDBpYlRJeUlERXpMVEV1TWprMkxURXVNamsyWVRJdU5ERWdNaTQwTVNBd0lEQWdNQzB6TGpRd09DQXdUREV4SURFNElpQXZQZ29nSUR4amFYSmpiR1VnWTNnOUlqRXlJaUJqZVQwaU9DSWdjajBpTWlJZ0x6NEtJQ0E4Y21WamRDQjNhV1IwYUQwaU1UWWlJR2hsYVdkb2REMGlNVFlpSUhnOUlqWWlJSGs5SWpJaUlISjRQU0l5SWlBdlBnbzhMM04yWno0SykgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvaW1hZ2VzXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgSW1hZ2VzID0gY3JlYXRlTHVjaWRlSWNvbignaW1hZ2VzJywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IEltYWdlcztcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTEyIDN2MTInLCBrZXk6ICcxeDBqNXMnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdtOCAxMSA0IDQgNC00Jywga2V5OiAnMWRvaGk2JyB9XSxcbiAgW1xuICAgICdwYXRoJyxcbiAgICB7XG4gICAgICBkOiAnTTggNUg0YTIgMiAwIDAgMC0yIDJ2MTBhMiAyIDAgMCAwIDIgMmgxNmEyIDIgMCAwIDAgMi0yVjdhMiAyIDAgMCAwLTItMmgtNCcsXG4gICAgICBrZXk6ICcxeXd0am0nLFxuICAgIH0sXG4gIF0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgSW1wb3J0XG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NVElnTTNZeE1pSWdMejRLSUNBOGNHRjBhQ0JrUFNKdE9DQXhNU0EwSURRZ05DMDBJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMDRJRFZJTkdFeUlESWdNQ0F3SURBdE1pQXlkakV3WVRJZ01pQXdJREFnTUNBeUlESm9NVFpoTWlBeUlEQWdNQ0F3SURJdE1sWTNZVElnTWlBd0lEQWdNQzB5TFRKb0xUUWlJQzgrQ2p3dmMzWm5QZ289KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9pbXBvcnRcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBJbXBvcnQgPSBjcmVhdGVMdWNpZGVJY29uKCdpbXBvcnQnLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgSW1wb3J0O1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbJ3BvbHlsaW5lJywgeyBwb2ludHM6ICcyMiAxMiAxNiAxMiAxNCAxNSAxMCAxNSA4IDEyIDIgMTInLCBrZXk6ICdvOTd0OWQnIH1dLFxuICBbXG4gICAgJ3BhdGgnLFxuICAgIHtcbiAgICAgIGQ6ICdNNS40NSA1LjExIDIgMTJ2NmEyIDIgMCAwIDAgMiAyaDE2YTIgMiAwIDAgMCAyLTJ2LTZsLTMuNDUtNi44OUEyIDIgMCAwIDAgMTYuNzYgNEg3LjI0YTIgMiAwIDAgMC0xLjc5IDEuMTF6JyxcbiAgICAgIGtleTogJ29vdDZtcicsXG4gICAgfSxcbiAgXSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBJbmJveFxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0c5c2VXeHBibVVnY0c5cGJuUnpQU0l5TWlBeE1pQXhOaUF4TWlBeE5DQXhOU0F4TUNBeE5TQTRJREV5SURJZ01USWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRUVXVORFVnTlM0eE1TQXlJREV5ZGpaaE1pQXlJREFnTUNBd0lESWdNbWd4Tm1FeUlESWdNQ0F3SURBZ01pMHlkaTAyYkMwekxqUTFMVFl1T0RsQk1pQXlJREFnTUNBd0lERTJMamMySURSSU55NHlOR0V5SURJZ01DQXdJREF0TVM0M09TQXhMakV4ZWlJZ0x6NEtQQzl6ZG1jK0NnPT0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2luYm94XG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgSW5ib3ggPSBjcmVhdGVMdWNpZGVJY29uKCdpbmJveCcsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBJbmJveDtcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTIxIDEySDExJywga2V5OiAnd2Q3ZTB2JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTIxIDE4SDExJywga2V5OiAnNHd1ODZ0JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTIxIDZIMTEnLCBrZXk6ICc2ZHkxZDYnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdtNyA4LTQgNCA0IDQnLCBrZXk6ICdvNWhyYXQnIH1dLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIEluZGVudERlY3JlYXNlXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NakVnTVRKSU1URWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRUSXhJREU0U0RFeElpQXZQZ29nSUR4d1lYUm9JR1E5SWsweU1TQTJTREV4SWlBdlBnb2dJRHh3WVhSb0lHUTlJbTAzSURndE5DQTBJRFFnTkNJZ0x6NEtQQzl6ZG1jK0NnPT0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2luZGVudC1kZWNyZWFzZVxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IEluZGVudERlY3JlYXNlID0gY3JlYXRlTHVjaWRlSWNvbignaW5kZW50LWRlY3JlYXNlJywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IEluZGVudERlY3JlYXNlO1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdNMjEgMTJIMTEnLCBrZXk6ICd3ZDdlMHYnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMjEgMThIMTEnLCBrZXk6ICc0d3U4NnQnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMjEgNkgxMScsIGtleTogJzZkeTFkNicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ20zIDggNCA0LTQgNCcsIGtleTogJzFhM2o2eScgfV0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgSW5kZW50SW5jcmVhc2VcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1qRWdNVEpJTVRFaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRJeElERTRTREV4SWlBdlBnb2dJRHh3WVhSb0lHUTlJazB5TVNBMlNERXhJaUF2UGdvZ0lEeHdZWFJvSUdROUltMHpJRGdnTkNBMExUUWdOQ0lnTHo0S1BDOXpkbWMrQ2c9PSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvaW5kZW50LWluY3JlYXNlXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgSW5kZW50SW5jcmVhc2UgPSBjcmVhdGVMdWNpZGVJY29uKCdpbmRlbnQtaW5jcmVhc2UnLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgSW5kZW50SW5jcmVhc2U7XG4iLCJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ002IDNoMTInLCBrZXk6ICdnZ3VyZzknIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNNiA4aDEyJywga2V5OiAnNmc0d2x1JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnbTYgMTMgOC41IDgnLCBrZXk6ICd1MWt1cGsnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNNiAxM2gzJywga2V5OiAnd2RwNmFnJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTkgMTNjNi42NjcgMCA2LjY2Ny0xMCAwLTEwJywga2V5OiAnMW5rdmsyJyB9XSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBJbmRpYW5SdXBlZVxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTmlBemFERXlJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMDJJRGhvTVRJaUlDOCtDaUFnUEhCaGRHZ2daRDBpYlRZZ01UTWdPQzQxSURnaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRZZ01UTm9NeUlnTHo0S0lDQThjR0YwYUNCa1BTSk5PU0F4TTJNMkxqWTJOeUF3SURZdU5qWTNMVEV3SURBdE1UQWlJQzgrQ2p3dmMzWm5QZ289KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9pbmRpYW4tcnVwZWVcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBJbmRpYW5SdXBlZSA9IGNyZWF0ZUx1Y2lkZUljb24oJ2luZGlhbi1ydXBlZScsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBJbmRpYW5SdXBlZTtcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTYgMTZjNSAwIDctOCAxMi04YTQgNCAwIDAgMSAwIDhjLTUgMC03LTgtMTItOGE0IDQgMCAxIDAgMCA4Jywga2V5OiAnMThvZ2ViJyB9XSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBJbmZpbml0eVxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTmlBeE5tTTFJREFnTnkwNElERXlMVGhoTkNBMElEQWdNQ0F4SURBZ09HTXROU0F3TFRjdE9DMHhNaTA0WVRRZ05DQXdJREVnTUNBd0lEZ2lJQzgrQ2p3dmMzWm5QZ289KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9pbmZpbml0eVxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IEluZmluaXR5ID0gY3JlYXRlTHVjaWRlSWNvbignaW5maW5pdHknLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgSW5maW5pdHk7XG4iLCJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbXG4gIFsnY2lyY2xlJywgeyBjeDogJzEyJywgY3k6ICcxMicsIHI6ICcxMCcsIGtleTogJzFtZ2xheScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xMiAxNnYtNCcsIGtleTogJzFkdGlmdScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xMiA4aC4wMScsIGtleTogJ2U5Ym9pMycgfV0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgSW5mb1xuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4WTJseVkyeGxJR040UFNJeE1pSWdZM2s5SWpFeUlpQnlQU0l4TUNJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTVRJZ01UWjJMVFFpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVEV5SURob0xqQXhJaUF2UGdvOEwzTjJaejRLKSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9pbmZvXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgSW5mbyA9IGNyZWF0ZUx1Y2lkZUljb24oJ2luZm8nLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgSW5mbztcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgWydyZWN0JywgeyB3aWR0aDogJzIwJywgaGVpZ2h0OiAnMjAnLCB4OiAnMicsIHk6ICcyJywgcng6ICc1Jywgcnk6ICc1Jywga2V5OiAnMmUxY3Z3JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTE2IDExLjM3QTQgNCAwIDEgMSAxMi42MyA4IDQgNCAwIDAgMSAxNiAxMS4zN3onLCBrZXk6ICc5ZXhrZjEnIH1dLFxuICBbJ2xpbmUnLCB7IHgxOiAnMTcuNScsIHgyOiAnMTcuNTEnLCB5MTogJzYuNScsIHkyOiAnNi41Jywga2V5OiAncjRqODNlJyB9XSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBJbnN0YWdyYW1cbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNtVmpkQ0IzYVdSMGFEMGlNakFpSUdobGFXZG9kRDBpTWpBaUlIZzlJaklpSUhrOUlqSWlJSEo0UFNJMUlpQnllVDBpTlNJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTVRZZ01URXVNemRCTkNBMElEQWdNU0F4SURFeUxqWXpJRGdnTkNBMElEQWdNQ0F4SURFMklERXhMak0zZWlJZ0x6NEtJQ0E4YkdsdVpTQjRNVDBpTVRjdU5TSWdlREk5SWpFM0xqVXhJaUI1TVQwaU5pNDFJaUI1TWowaU5pNDFJaUF2UGdvOEwzTjJaejRLKSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9pbnN0YWdyYW1cbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKiBAZGVwcmVjYXRlZCBCcmFuZCBpY29ucyBoYXZlIGJlZW4gZGVwcmVjYXRlZCBhbmQgYXJlIGR1ZSB0byBiZSByZW1vdmVkLCBwbGVhc2UgcmVmZXIgdG8gaHR0cHM6Ly9naXRodWIuY29tL2x1Y2lkZS1pY29ucy9sdWNpZGUvaXNzdWVzLzY3MC4gV2UgcmVjb21tZW5kIHVzaW5nIGh0dHBzOi8vc2ltcGxlaWNvbnMub3JnLz9xPWluc3RhZ3JhbSBpbnN0ZWFkLiBUaGlzIGljb24gd2lsbCBiZSByZW1vdmVkIGluIHYxLjBcbiAqL1xuY29uc3QgSW5zdGFncmFtID0gY3JlYXRlTHVjaWRlSWNvbignaW5zdGFncmFtJywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IEluc3RhZ3JhbTtcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgWydyZWN0JywgeyB3aWR0aDogJzE4JywgaGVpZ2h0OiAnMTgnLCB4OiAnMycsIHk6ICczJywgcng6ICcyJywga2V5OiAnYWZpdHY3JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTcgN2guMDEnLCBrZXk6ICc3dTkzdjQnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTcgN2guMDEnLCBrZXk6ICcxNGE5c24nIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNNyAxN2guMDEnLCBrZXk6ICcxOXhuN2snIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTcgMTdoLjAxJywga2V5OiAnMXNkM2VrJyB9XSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBJbnNwZWN0aW9uUGFuZWxcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNtVmpkQ0IzYVdSMGFEMGlNVGdpSUdobGFXZG9kRDBpTVRnaUlIZzlJak1pSUhrOUlqTWlJSEo0UFNJeUlpQXZQZ29nSUR4d1lYUm9JR1E5SWswM0lEZG9MakF4SWlBdlBnb2dJRHh3WVhSb0lHUTlJazB4TnlBM2FDNHdNU0lnTHo0S0lDQThjR0YwYUNCa1BTSk5OeUF4TjJndU1ERWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRURTNJREUzYUM0d01TSWdMejRLUEM5emRtYytDZz09KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9pbnNwZWN0aW9uLXBhbmVsXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgSW5zcGVjdGlvblBhbmVsID0gY3JlYXRlTHVjaWRlSWNvbignaW5zcGVjdGlvbi1wYW5lbCcsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBJbnNwZWN0aW9uUGFuZWw7XG4iLCJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbXG4gIFsnbGluZScsIHsgeDE6ICcxOScsIHgyOiAnMTAnLCB5MTogJzQnLCB5MjogJzQnLCBrZXk6ICcxNWpkM3AnIH1dLFxuICBbJ2xpbmUnLCB7IHgxOiAnMTQnLCB4MjogJzUnLCB5MTogJzIwJywgeTI6ICcyMCcsIGtleTogJ2J1MGF1MycgfV0sXG4gIFsnbGluZScsIHsgeDE6ICcxNScsIHgyOiAnOScsIHkxOiAnNCcsIHkyOiAnMjAnLCBrZXk6ICd1bGpueGMnIH1dLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIEl0YWxpY1xuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4YkdsdVpTQjRNVDBpTVRraUlIZ3lQU0l4TUNJZ2VURTlJalFpSUhreVBTSTBJaUF2UGdvZ0lEeHNhVzVsSUhneFBTSXhOQ0lnZURJOUlqVWlJSGt4UFNJeU1DSWdlVEk5SWpJd0lpQXZQZ29nSUR4c2FXNWxJSGd4UFNJeE5TSWdlREk5SWpraUlIa3hQU0kwSWlCNU1qMGlNakFpSUM4K0Nqd3ZjM1puUGdvPSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvaXRhbGljXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgSXRhbGljID0gY3JlYXRlTHVjaWRlSWNvbignaXRhbGljJywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IEl0YWxpYztcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnbTE2IDE0IDQgNC00IDQnLCBrZXk6ICdoa3NvOG8nIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMjAgMTBhOCA4IDAgMSAwLTggOGg4Jywga2V5OiAnMWJpazdiJyB9XSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBJdGVyYXRpb25DY3dcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKdE1UWWdNVFFnTkNBMExUUWdOQ0lnTHo0S0lDQThjR0YwYUNCa1BTSk5NakFnTVRCaE9DQTRJREFnTVNBd0xUZ2dPR2c0SWlBdlBnbzhMM04yWno0SykgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvaXRlcmF0aW9uLWNjd1xuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IEl0ZXJhdGlvbkNjdyA9IGNyZWF0ZUx1Y2lkZUljb24oJ2l0ZXJhdGlvbi1jY3cnLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgSXRlcmF0aW9uQ2N3O1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdNNCAxMGE4IDggMCAxIDEgOCA4SDQnLCBrZXk6ICdzdnY2Nm4nIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdtOCAyMi00LTQgNC00Jywga2V5OiAnNmc3Z2tpJyB9XSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBJdGVyYXRpb25Dd1xuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTkNBeE1HRTRJRGdnTUNBeElERWdPQ0E0U0RRaUlDOCtDaUFnUEhCaGRHZ2daRDBpYlRnZ01qSXROQzAwSURRdE5DSWdMejRLUEM5emRtYytDZz09KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9pdGVyYXRpb24tY3dcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBJdGVyYXRpb25DdyA9IGNyZWF0ZUx1Y2lkZUljb24oJ2l0ZXJhdGlvbi1jdycsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBJdGVyYXRpb25DdztcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTEyIDkuNVYyMW0wLTExLjVMNiAzbTYgNi41TDE4IDMnLCBrZXk6ICcyZWo4MHgnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNNiAxNWgxMicsIGtleTogJzFod2d0NScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ002IDExaDEyJywga2V5OiAnd2Y0Z3A2JyB9XSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBKYXBhbmVzZVllblxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTVRJZ09TNDFWakl4YlRBdE1URXVOVXcySUROdE5pQTJMalZNTVRnZ015SWdMejRLSUNBOGNHRjBhQ0JrUFNKTk5pQXhOV2d4TWlJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTmlBeE1XZ3hNaUlnTHo0S1BDOXpkbWMrQ2c9PSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvamFwYW5lc2UteWVuXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgSmFwYW5lc2VZZW4gPSBjcmVhdGVMdWNpZGVJY29uKCdqYXBhbmVzZS15ZW4nLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgSmFwYW5lc2VZZW47XG4iLCJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbXG4gIFtcbiAgICAncGF0aCcsXG4gICAge1xuICAgICAgZDogJ00yMSAxN2EyIDIgMCAwIDAtMi0ySDVhMiAyIDAgMCAwLTIgMnYyYTIgMiAwIDAgMCAyIDJoMTRhMiAyIDAgMCAwIDItMnYtMlonLFxuICAgICAga2V5OiAnamcybjJ0JyxcbiAgICB9LFxuICBdLFxuICBbJ3BhdGgnLCB7IGQ6ICdNNiAxNXYtMicsIGtleTogJ2dkNm12ZycgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xMiAxNVY5Jywga2V5OiAnOGM3dXluJyB9XSxcbiAgWydjaXJjbGUnLCB7IGN4OiAnMTInLCBjeTogJzYnLCByOiAnMycsIGtleTogJzFnbTJxbCcgfV0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgSm95c3RpY2tcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1qRWdNVGRoTWlBeUlEQWdNQ0F3TFRJdE1rZzFZVElnTWlBd0lEQWdNQzB5SURKMk1tRXlJRElnTUNBd0lEQWdNaUF5YURFMFlUSWdNaUF3SURBZ01DQXlMVEoyTFRKYUlpQXZQZ29nSUR4d1lYUm9JR1E5SWswMklERTFkaTB5SWlBdlBnb2dJRHh3WVhSb0lHUTlJazB4TWlBeE5WWTVJaUF2UGdvZ0lEeGphWEpqYkdVZ1kzZzlJakV5SWlCamVUMGlOaUlnY2owaU15SWdMejRLUEM5emRtYytDZz09KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9qb3lzdGlja1xuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IEpveXN0aWNrID0gY3JlYXRlTHVjaWRlSWNvbignam95c3RpY2snLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgSm95c3RpY2s7XG4iLCJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ002IDV2MTEnLCBrZXk6ICdtZHZ2MWUnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTIgNXY2Jywga2V5OiAnMTRhcjNiJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTE4IDV2MTQnLCBrZXk6ICc3amkzMTQnIH1dLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIEthbmJhblxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTmlBMWRqRXhJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHhNaUExZGpZaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRFNElEVjJNVFFpSUM4K0Nqd3ZjM1puUGdvPSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMva2FuYmFuXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgS2FuYmFuID0gY3JlYXRlTHVjaWRlSWNvbigna2FuYmFuJywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IEthbmJhbjtcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgW1xuICAgICdwYXRoJyxcbiAgICB7XG4gICAgICBkOiAnTTIuNTg2IDE3LjQxNEEyIDIgMCAwIDAgMiAxOC44MjhWMjFhMSAxIDAgMCAwIDEgMWgzYTEgMSAwIDAgMCAxLTF2LTFhMSAxIDAgMCAxIDEtMWgxYTEgMSAwIDAgMCAxLTF2LTFhMSAxIDAgMCAxIDEtMWguMTcyYTIgMiAwIDAgMCAxLjQxNC0uNTg2bC44MTQtLjgxNGE2LjUgNi41IDAgMSAwLTQtNHonLFxuICAgICAga2V5OiAnMXM2dDd0JyxcbiAgICB9LFxuICBdLFxuICBbJ2NpcmNsZScsIHsgY3g6ICcxNi41JywgY3k6ICc3LjUnLCByOiAnLjUnLCBmaWxsOiAnY3VycmVudENvbG9yJywga2V5OiAndzBla3BnJyB9XSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBLZXlSb3VuZFxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTWk0MU9EWWdNVGN1TkRFMFFUSWdNaUF3SURBZ01DQXlJREU0TGpneU9GWXlNV0V4SURFZ01DQXdJREFnTVNBeGFETmhNU0F4SURBZ01DQXdJREV0TVhZdE1XRXhJREVnTUNBd0lERWdNUzB4YURGaE1TQXhJREFnTUNBd0lERXRNWFl0TVdFeElERWdNQ0F3SURFZ01TMHhhQzR4TnpKaE1pQXlJREFnTUNBd0lERXVOREUwTFM0MU9EWnNMamd4TkMwdU9ERTBZVFl1TlNBMkxqVWdNQ0F4SURBdE5DMDBlaUlnTHo0S0lDQThZMmx5WTJ4bElHTjRQU0l4Tmk0MUlpQmplVDBpTnk0MUlpQnlQU0l1TlNJZ1ptbHNiRDBpWTNWeWNtVnVkRU52Ykc5eUlpQXZQZ284TDNOMlp6NEspIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2tleS1yb3VuZFxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IEtleVJvdW5kID0gY3JlYXRlTHVjaWRlSWNvbigna2V5LXJvdW5kJywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IEtleVJvdW5kO1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbXG4gICAgJ3BhdGgnLFxuICAgIHtcbiAgICAgIGQ6ICdNMTIuNCAyLjdhMi41IDIuNSAwIDAgMSAzLjQgMGw1LjUgNS41YTIuNSAyLjUgMCAwIDEgMCAzLjRsLTMuNyAzLjdhMi41IDIuNSAwIDAgMS0zLjQgMEw4LjcgOS44YTIuNSAyLjUgMCAwIDEgMC0zLjR6JyxcbiAgICAgIGtleTogJzE2NXR0cicsXG4gICAgfSxcbiAgXSxcbiAgWydwYXRoJywgeyBkOiAnbTE0IDcgMyAzJywga2V5OiAnMXI1bjQyJyB9XSxcbiAgW1xuICAgICdwYXRoJyxcbiAgICB7XG4gICAgICBkOiAnbTkuNCAxMC42LTYuODE0IDYuODE0QTIgMiAwIDAgMCAyIDE4LjgyOFYyMWExIDEgMCAwIDAgMSAxaDNhMSAxIDAgMCAwIDEtMXYtMWExIDEgMCAwIDEgMS0xaDFhMSAxIDAgMCAwIDEtMXYtMWExIDEgMCAwIDEgMS0xaC4xNzJhMiAyIDAgMCAwIDEuNDE0LS41ODZsLjgxNC0uODE0JyxcbiAgICAgIGtleTogJzF1YnhpMicsXG4gICAgfSxcbiAgXSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBLZXlTcXVhcmVcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1USXVOQ0F5TGpkaE1pNDFJREl1TlNBd0lEQWdNU0F6TGpRZ01HdzFMalVnTlM0MVlUSXVOU0F5TGpVZ01DQXdJREVnTUNBekxqUnNMVE11TnlBekxqZGhNaTQxSURJdU5TQXdJREFnTVMwekxqUWdNRXc0TGpjZ09TNDRZVEl1TlNBeUxqVWdNQ0F3SURFZ01DMHpMalI2SWlBdlBnb2dJRHh3WVhSb0lHUTlJbTB4TkNBM0lETWdNeUlnTHo0S0lDQThjR0YwYUNCa1BTSnRPUzQwSURFd0xqWXROaTQ0TVRRZ05pNDRNVFJCTWlBeUlEQWdNQ0F3SURJZ01UZ3VPREk0VmpJeFlURWdNU0F3SURBZ01DQXhJREZvTTJFeElERWdNQ0F3SURBZ01TMHhkaTB4WVRFZ01TQXdJREFnTVNBeExURm9NV0V4SURFZ01DQXdJREFnTVMweGRpMHhZVEVnTVNBd0lEQWdNU0F4TFRGb0xqRTNNbUV5SURJZ01DQXdJREFnTVM0ME1UUXRMalU0Tm13dU9ERTBMUzQ0TVRRaUlDOCtDand2YzNablBnbz0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2tleS1zcXVhcmVcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBLZXlTcXVhcmUgPSBjcmVhdGVMdWNpZGVJY29uKCdrZXktc3F1YXJlJywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IEtleVNxdWFyZTtcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnbTE1LjUgNy41IDIuMyAyLjNhMSAxIDAgMCAwIDEuNCAwbDIuMS0yLjFhMSAxIDAgMCAwIDAtMS40TDE5IDQnLCBrZXk6ICdnMGZsZGsnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdtMjEgMi05LjYgOS42Jywga2V5OiAnMWowaG84JyB9XSxcbiAgWydjaXJjbGUnLCB7IGN4OiAnNy41JywgY3k6ICcxNS41JywgcjogJzUuNScsIGtleTogJ3lxYjNocicgfV0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgS2V5XG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSnRNVFV1TlNBM0xqVWdNaTR6SURJdU0yRXhJREVnTUNBd0lEQWdNUzQwSURCc01pNHhMVEl1TVdFeElERWdNQ0F3SURBZ01DMHhMalJNTVRrZ05DSWdMejRLSUNBOGNHRjBhQ0JrUFNKdE1qRWdNaTA1TGpZZ09TNDJJaUF2UGdvZ0lEeGphWEpqYkdVZ1kzZzlJamN1TlNJZ1kzazlJakUxTGpVaUlISTlJalV1TlNJZ0x6NEtQQzl6ZG1jK0NnPT0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2tleVxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IEtleSA9IGNyZWF0ZUx1Y2lkZUljb24oJ2tleScsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBLZXk7XG4iLCJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ00gMjAgNCBBMiAyIDAgMCAxIDIyIDYnLCBrZXk6ICcxZzFma3QnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNIDIyIDYgTCAyMiAxNi40MScsIGtleTogJzFxamczdycgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00gNyAxNiBMIDE2IDE2Jywga2V5OiAnbjB5cXdiJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTSA5LjY5IDQgTCAyMCA0Jywga2V5OiAna2JwY2d4JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTE0IDhoLjAxJywga2V5OiAnMXByaW1kJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTE4IDhoLjAxJywga2V5OiAnZW1vMmJsJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnbTIgMiAyMCAyMCcsIGtleTogJzFvb2V3eScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00yMCAyMEg0YTIgMiAwIDAgMS0yLTJWNmEyIDIgMCAwIDEgMi0yJywga2V5OiAnczIzc3gyJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTYgOGguMDEnLCBrZXk6ICd4OWk4d3UnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNOCAxMmguMDEnLCBrZXk6ICdjem00N2YnIH1dLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIEtleWJvYXJkT2ZmXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5JREl3SURRZ1FUSWdNaUF3SURBZ01TQXlNaUEySWlBdlBnb2dJRHh3WVhSb0lHUTlJazBnTWpJZ05pQk1JREl5SURFMkxqUXhJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMGdOeUF4TmlCTUlERTJJREUySWlBdlBnb2dJRHh3WVhSb0lHUTlJazBnT1M0Mk9TQTBJRXdnTWpBZ05DSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk1UUWdPR2d1TURFaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRFNElEaG9MakF4SWlBdlBnb2dJRHh3WVhSb0lHUTlJbTB5SURJZ01qQWdNakFpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVEl3SURJd1NEUmhNaUF5SURBZ01DQXhMVEl0TWxZMllUSWdNaUF3SURBZ01TQXlMVElpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVFlnT0dndU1ERWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRUZ2dNVEpvTGpBeElpQXZQZ284TDNOMlp6ND0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2tleWJvYXJkLW9mZlxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IEtleWJvYXJkT2ZmID0gY3JlYXRlTHVjaWRlSWNvbigna2V5Ym9hcmQtb2ZmJywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IEtleWJvYXJkT2ZmO1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbJ3JlY3QnLCB7IHdpZHRoOiAnMjAnLCBoZWlnaHQ6ICcxNicsIHg6ICcyJywgeTogJzQnLCByeDogJzInLCBrZXk6ICcxOG4zazEnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNNiA4aDQnLCBrZXk6ICd1dGY5dDEnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTQgOGguMDEnLCBrZXk6ICcxcHJpbWQnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTggOGguMDEnLCBrZXk6ICdlbW8yYmwnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMiAxMmgyMCcsIGtleTogJzlpNHB1NCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ002IDEydjQnLCBrZXk6ICdkeTkyeW8nIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTAgMTJ2NCcsIGtleTogJzFmeG5hdicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xNCAxMnY0Jywga2V5OiAnMWhmdDU4JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTE4IDEydjQnLCBrZXk6ICd0ampuYnonIH1dLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIEtleWJvYXJkTXVzaWNcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNtVmpkQ0IzYVdSMGFEMGlNakFpSUdobGFXZG9kRDBpTVRZaUlIZzlJaklpSUhrOUlqUWlJSEo0UFNJeUlpQXZQZ29nSUR4d1lYUm9JR1E5SWswMklEaG9OQ0lnTHo0S0lDQThjR0YwYUNCa1BTSk5NVFFnT0dndU1ERWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRURTRJRGhvTGpBeElpQXZQZ29nSUR4d1lYUm9JR1E5SWsweUlERXlhREl3SWlBdlBnb2dJRHh3WVhSb0lHUTlJazAySURFeWRqUWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRURXdJREV5ZGpRaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRFMElERXlkalFpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVEU0SURFeWRqUWlJQzgrQ2p3dmMzWm5QZ289KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9rZXlib2FyZC1tdXNpY1xuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IEtleWJvYXJkTXVzaWMgPSBjcmVhdGVMdWNpZGVJY29uKCdrZXlib2FyZC1tdXNpYycsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBLZXlib2FyZE11c2ljO1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdNMTIgMnY1Jywga2V5OiAnbmQ0dmx4JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTE0LjgyOSAxNS45OThhMyAzIDAgMSAxLTUuNjU4IDAnLCBrZXk6ICcxcHliaXknIH1dLFxuICBbXG4gICAgJ3BhdGgnLFxuICAgIHtcbiAgICAgIGQ6ICdNMjAuOTIgMTQuNjA2QTEgMSAwIDAgMSAyMCAxNkg0YTEgMSAwIDAgMS0uOTItMS4zOTRsMy03QTEgMSAwIDAgMSA3IDdoMTBhMSAxIDAgMCAxIC45Mi42MDZ6JyxcbiAgICAgIGtleTogJ21hMXdvcicsXG4gICAgfSxcbiAgXSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBMYW1wQ2VpbGluZ1xuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTVRJZ01uWTFJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHhOQzQ0TWprZ01UVXVPVGs0WVRNZ015QXdJREVnTVMwMUxqWTFPQ0F3SWlBdlBnb2dJRHh3WVhSb0lHUTlJazB5TUM0NU1pQXhOQzQyTURaQk1TQXhJREFnTUNBeElESXdJREUyU0RSaE1TQXhJREFnTUNBeExTNDVNaTB4TGpNNU5Hd3pMVGRCTVNBeElEQWdNQ0F4SURjZ04yZ3hNR0V4SURFZ01DQXdJREVnTGpreUxqWXdObm9pSUM4K0Nqd3ZjM1puUGdvPSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvbGFtcC1jZWlsaW5nXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgTGFtcENlaWxpbmcgPSBjcmVhdGVMdWNpZGVJY29uKCdsYW1wLWNlaWxpbmcnLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgTGFtcENlaWxpbmc7XG4iLCJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ00xMCA4aC4wMScsIGtleTogJzFyOW9ncScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xMiAxMmguMDEnLCBrZXk6ICcxbXAzamMnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTQgOGguMDEnLCBrZXk6ICcxcHJpbWQnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTYgMTJoLjAxJywga2V5OiAnMWw2eG96JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTE4IDhoLjAxJywga2V5OiAnZW1vMmJsJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTYgOGguMDEnLCBrZXk6ICd4OWk4d3UnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNNyAxNmgxMCcsIGtleTogJ3dwOGhpbScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ004IDEyaC4wMScsIGtleTogJ2N6bTQ3ZicgfV0sXG4gIFsncmVjdCcsIHsgd2lkdGg6ICcyMCcsIGhlaWdodDogJzE2JywgeDogJzInLCB5OiAnNCcsIHJ4OiAnMicsIGtleTogJzE4bjNrMScgfV0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgS2V5Ym9hcmRcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1UQWdPR2d1TURFaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRFeUlERXlhQzR3TVNJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTVRRZ09HZ3VNREVpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVEUySURFeWFDNHdNU0lnTHo0S0lDQThjR0YwYUNCa1BTSk5NVGdnT0dndU1ERWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRUWWdPR2d1TURFaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRjZ01UWm9NVEFpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVGdnTVRKb0xqQXhJaUF2UGdvZ0lEeHlaV04wSUhkcFpIUm9QU0l5TUNJZ2FHVnBaMmgwUFNJeE5pSWdlRDBpTWlJZ2VUMGlOQ0lnY25nOUlqSWlJQzgrQ2p3dmMzWm5QZ289KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9rZXlib2FyZFxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IEtleWJvYXJkID0gY3JlYXRlTHVjaWRlSWNvbigna2V5Ym9hcmQnLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgS2V5Ym9hcmQ7XG4iLCJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbXG4gIFtcbiAgICAncGF0aCcsXG4gICAge1xuICAgICAgZDogJ00xMC4yOTMgMi4yOTNhMSAxIDAgMCAxIDEuNDE0IDBsMi41IDIuNSA1Ljk5NCAxLjIyN2ExIDEgMCAwIDEgLjUwNiAxLjY4N2wtNyA3YTEgMSAwIDAgMS0xLjY4Ny0uNTA2bC0xLjIyNy01Ljk5NC0yLjUtMi41YTEgMSAwIDAgMSAwLTEuNDE0eicsXG4gICAgICBrZXk6ICdzYjhzbHUnLFxuICAgIH0sXG4gIF0sXG4gIFsncGF0aCcsIHsgZDogJ20xNC4yMDcgNC43OTMtMy40MTQgMy40MTQnLCBrZXk6ICdtMngzb2onIH1dLFxuICBbXG4gICAgJ3BhdGgnLFxuICAgIHsgZDogJ00zIDIwYTIgMiAwIDAgMSAyLTJoNGEyIDIgMCAwIDEgMiAydjFhMSAxIDAgMCAxLTEgMUg0YTEgMSAwIDAgMS0xLTF6Jywga2V5OiAnOGIzbXlqJyB9LFxuICBdLFxuICBbJ3BhdGgnLCB7IGQ6ICdtOS4wODYgNi41LTQuNzkzIDQuNzkzYTEgMSAwIDAgMC0uMTggMS4xN0w3IDE4Jywga2V5OiAnNDNzNmN1JyB9XSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBMYW1wRGVza1xuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTVRBdU1qa3pJREl1TWprellURWdNU0F3SURBZ01TQXhMalF4TkNBd2JESXVOU0F5TGpVZ05TNDVPVFFnTVM0eU1qZGhNU0F4SURBZ01DQXhJQzQxTURZZ01TNDJPRGRzTFRjZ04yRXhJREVnTUNBd0lERXRNUzQyT0RjdExqVXdObXd0TVM0eU1qY3ROUzQ1T1RRdE1pNDFMVEl1TldFeElERWdNQ0F3SURFZ01DMHhMalF4TkhvaUlDOCtDaUFnUEhCaGRHZ2daRDBpYlRFMExqSXdOeUEwTGpjNU15MHpMalF4TkNBekxqUXhOQ0lnTHo0S0lDQThjR0YwYUNCa1BTSk5NeUF5TUdFeUlESWdNQ0F3SURFZ01pMHlhRFJoTWlBeUlEQWdNQ0F4SURJZ01uWXhZVEVnTVNBd0lEQWdNUzB4SURGSU5HRXhJREVnTUNBd0lERXRNUzB4ZWlJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0p0T1M0d09EWWdOaTQxTFRRdU56a3pJRFF1TnprellURWdNU0F3SURBZ01DMHVNVGdnTVM0eE4wdzNJREU0SWlBdlBnbzhMM04yWno0SykgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvbGFtcC1kZXNrXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgTGFtcERlc2sgPSBjcmVhdGVMdWNpZGVJY29uKCdsYW1wLWRlc2snLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgTGFtcERlc2s7XG4iLCJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ00xMiAxMHYxMicsIGtleTogJzZ1Ynd3dycgfV0sXG4gIFtcbiAgICAncGF0aCcsXG4gICAge1xuICAgICAgZDogJ00xNy45MjkgNy42MjlBMSAxIDAgMCAxIDE3IDlIN2ExIDEgMCAwIDEtLjkyOC0xLjM3MWwyLTVBMSAxIDAgMCAxIDkgMmg2YTEgMSAwIDAgMSAuOTI4LjYyOXonLFxuICAgICAga2V5OiAnMW85NWdoJyxcbiAgICB9LFxuICBdLFxuICBbJ3BhdGgnLCB7IGQ6ICdNOSAyMmg2Jywga2V5OiAnMXJscTN2JyB9XSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBMYW1wRmxvb3JcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1USWdNVEIyTVRJaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRFM0xqa3lPU0EzTGpZeU9VRXhJREVnTUNBd0lERWdNVGNnT1VnM1lURWdNU0F3SURBZ01TMHVPVEk0TFRFdU16Y3hiREl0TlVFeElERWdNQ0F3SURFZ09TQXlhRFpoTVNBeElEQWdNQ0F4SUM0NU1qZ3VOakk1ZWlJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOT1NBeU1tZzJJaUF2UGdvOEwzTjJaejRLKSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9sYW1wLWZsb29yXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgTGFtcEZsb29yID0gY3JlYXRlTHVjaWRlSWNvbignbGFtcC1mbG9vcicsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBMYW1wRmxvb3I7XG4iLCJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbXG4gIFtcbiAgICAncGF0aCcsXG4gICAge1xuICAgICAgZDogJ00xOS45MjkgMTguNjI5QTEgMSAwIDAgMSAxOSAyMEg5YTEgMSAwIDAgMS0uOTI4LTEuMzcxbDItNUExIDEgMCAwIDEgMTEgMTNoNmExIDEgMCAwIDEgLjkyOC42Mjl6JyxcbiAgICAgIGtleTogJ3U0dzJkNycsXG4gICAgfSxcbiAgXSxcbiAgW1xuICAgICdwYXRoJyxcbiAgICB7IGQ6ICdNNiAzYTIgMiAwIDAgMSAyIDJ2MmEyIDIgMCAwIDEtMiAySDVhMSAxIDAgMCAxLTEtMVY0YTEgMSAwIDAgMSAxLTF6Jywga2V5OiAnMTUzNTZ3JyB9LFxuICBdLFxuICBbJ3BhdGgnLCB7IGQ6ICdNOCA2aDRhMiAyIDAgMCAxIDIgMnY1Jywga2V5OiAnMW02bTd4JyB9XSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBMYW1wV2FsbERvd25cbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1Ua3VPVEk1SURFNExqWXlPVUV4SURFZ01DQXdJREVnTVRrZ01qQklPV0V4SURFZ01DQXdJREV0TGpreU9DMHhMak0zTVd3eUxUVkJNU0F4SURBZ01DQXhJREV4SURFemFEWmhNU0F4SURBZ01DQXhJQzQ1TWpndU5qSTVlaUlnTHo0S0lDQThjR0YwYUNCa1BTSk5OaUF6WVRJZ01pQXdJREFnTVNBeUlESjJNbUV5SURJZ01DQXdJREV0TWlBeVNEVmhNU0F4SURBZ01DQXhMVEV0TVZZMFlURWdNU0F3SURBZ01TQXhMVEY2SWlBdlBnb2dJRHh3WVhSb0lHUTlJazA0SURab05HRXlJRElnTUNBd0lERWdNaUF5ZGpVaUlDOCtDand2YzNablBnbz0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2xhbXAtd2FsbC1kb3duXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgTGFtcFdhbGxEb3duID0gY3JlYXRlTHVjaWRlSWNvbignbGFtcC13YWxsLWRvd24nLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgTGFtcFdhbGxEb3duO1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbXG4gICAgJ3BhdGgnLFxuICAgIHtcbiAgICAgIGQ6ICdNMTkuOTI5IDkuNjI5QTEgMSAwIDAgMSAxOSAxMUg5YTEgMSAwIDAgMS0uOTI4LTEuMzcxbDItNUExIDEgMCAwIDEgMTEgNGg2YTEgMSAwIDAgMSAuOTI4LjYyOXonLFxuICAgICAga2V5OiAnMXV2cmJmJyxcbiAgICB9LFxuICBdLFxuICBbXG4gICAgJ3BhdGgnLFxuICAgIHsgZDogJ002IDE1YTIgMiAwIDAgMSAyIDJ2MmEyIDIgMCAwIDEtMiAySDVhMSAxIDAgMCAxLTEtMXYtNGExIDEgMCAwIDEgMS0xeicsIGtleTogJzE1NHIyYScgfSxcbiAgXSxcbiAgWydwYXRoJywgeyBkOiAnTTggMThoNGEyIDIgMCAwIDAgMi0ydi01Jywga2V5OiAnejltYnUwJyB9XSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBMYW1wV2FsbFVwXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NVGt1T1RJNUlEa3VOakk1UVRFZ01TQXdJREFnTVNBeE9TQXhNVWc1WVRFZ01TQXdJREFnTVMwdU9USTRMVEV1TXpjeGJESXROVUV4SURFZ01DQXdJREVnTVRFZ05HZzJZVEVnTVNBd0lEQWdNU0F1T1RJNExqWXlPWG9pSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVFlnTVRWaE1pQXlJREFnTUNBeElESWdNbll5WVRJZ01pQXdJREFnTVMweUlESklOV0V4SURFZ01DQXdJREV0TVMweGRpMDBZVEVnTVNBd0lEQWdNU0F4TFRGNklpQXZQZ29nSUR4d1lYUm9JR1E5SWswNElERTRhRFJoTWlBeUlEQWdNQ0F3SURJdE1uWXROU0lnTHo0S1BDOXpkbWMrQ2c9PSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvbGFtcC13YWxsLXVwXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgTGFtcFdhbGxVcCA9IGNyZWF0ZUx1Y2lkZUljb24oJ2xhbXAtd2FsbC11cCcsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBMYW1wV2FsbFVwO1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdNMTIgMTJ2NicsIGtleTogJzNhaHltdicgfV0sXG4gIFtcbiAgICAncGF0aCcsXG4gICAge1xuICAgICAgZDogJ000LjA3NyAxMC42MTVBMSAxIDAgMCAwIDUgMTJoMTRhMSAxIDAgMCAwIC45MjMtMS4zODVsLTMuMDc3LTcuMzg0QTIgMiAwIDAgMCAxNSAySDlhMiAyIDAgMCAwLTEuODQ2IDEuMjNaJyxcbiAgICAgIGtleTogJzFsN2tnMicsXG4gICAgfSxcbiAgXSxcbiAgW1xuICAgICdwYXRoJyxcbiAgICB7IGQ6ICdNOCAyMGEyIDIgMCAwIDEgMi0yaDRhMiAyIDAgMCAxIDIgMnYxYTEgMSAwIDAgMS0xIDFIOWExIDEgMCAwIDEtMS0xeicsIGtleTogJzFtbXpwaScgfSxcbiAgXSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBMYW1wXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NVElnTVRKMk5pSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk5DNHdOemNnTVRBdU5qRTFRVEVnTVNBd0lEQWdNQ0ExSURFeWFERTBZVEVnTVNBd0lEQWdNQ0F1T1RJekxURXVNemcxYkMwekxqQTNOeTAzTGpNNE5FRXlJRElnTUNBd0lEQWdNVFVnTWtnNVlUSWdNaUF3SURBZ01DMHhMamcwTmlBeExqSXpXaUlnTHo0S0lDQThjR0YwYUNCa1BTSk5PQ0F5TUdFeUlESWdNQ0F3SURFZ01pMHlhRFJoTWlBeUlEQWdNQ0F4SURJZ01uWXhZVEVnTVNBd0lEQWdNUzB4SURGSU9XRXhJREVnTUNBd0lERXRNUzB4ZWlJZ0x6NEtQQzl6ZG1jK0NnPT0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2xhbXBcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBMYW1wID0gY3JlYXRlTHVjaWRlSWNvbignbGFtcCcsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBMYW1wO1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdtMTIgOCA2LTMtNi0zdjEwJywga2V5OiAnbXZwbnB5JyB9XSxcbiAgW1xuICAgICdwYXRoJyxcbiAgICB7XG4gICAgICBkOiAnbTggMTEuOTktNS41IDMuMTRhMSAxIDAgMCAwIDAgMS43NGw4LjUgNC44NmEyIDIgMCAwIDAgMiAwbDguNS00Ljg2YTEgMSAwIDAgMCAwLTEuNzRMMTYgMTInLFxuICAgICAga2V5OiAnZWs5NXR0JyxcbiAgICB9LFxuICBdLFxuICBbJ3BhdGgnLCB7IGQ6ICdtNi40OSAxMi44NSAxMS4wMiA2LjMnLCBrZXk6ICcxa3Q0MncnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTcuNTEgMTIuODUgNi41IDE5LjE1Jywga2V5OiAndjU1YmRnJyB9XSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBMYW5kUGxvdFxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0p0TVRJZ09DQTJMVE10TmkwemRqRXdJaUF2UGdvZ0lEeHdZWFJvSUdROUltMDRJREV4TGprNUxUVXVOU0F6TGpFMFlURWdNU0F3SURBZ01DQXdJREV1TnpSc09DNDFJRFF1T0RaaE1pQXlJREFnTUNBd0lESWdNR3c0TGpVdE5DNDRObUV4SURFZ01DQXdJREFnTUMweExqYzBUREUySURFeUlpQXZQZ29nSUR4d1lYUm9JR1E5SW0wMkxqUTVJREV5TGpnMUlERXhMakF5SURZdU15SWdMejRLSUNBOGNHRjBhQ0JrUFNKTk1UY3VOVEVnTVRJdU9EVWdOaTQxSURFNUxqRTFJaUF2UGdvOEwzTjJaejRLKSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9sYW5kLXBsb3RcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBMYW5kUGxvdCA9IGNyZWF0ZUx1Y2lkZUljb24oJ2xhbmQtcGxvdCcsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBMYW5kUGxvdDtcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTEwIDE4di03Jywga2V5OiAnd3QxMTZiJyB9XSxcbiAgW1xuICAgICdwYXRoJyxcbiAgICB7XG4gICAgICBkOiAnTTExLjEyIDIuMTk4YTIgMiAwIDAgMSAxLjc2LjAwNmw3Ljg2NiAzLjg0N2MuNDc2LjIzMy4zMS45NDktLjIyLjk0OUgzLjQ3NGMtLjUzIDAtLjY5NS0uNzE2LS4yMi0uOTQ5eicsXG4gICAgICBrZXk6ICcxbTMyOW0nLFxuICAgIH0sXG4gIF0sXG4gIFsncGF0aCcsIHsgZDogJ00xNCAxOHYtNycsIGtleTogJ3ZhdjZ0MycgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xOCAxOHYtNycsIGtleTogJ2FleGRtaicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00zIDIyaDE4Jywga2V5OiAnOHBycjQ1JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTYgMTh2LTcnLCBrZXk6ICcxaXZmbGsnIH1dLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIExhbmRtYXJrXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NVEFnTVRoMkxUY2lJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRURXhMakV5SURJdU1UazRZVElnTWlBd0lEQWdNU0F4TGpjMkxqQXdObXczTGpnMk5pQXpMamcwTjJNdU5EYzJMakl6TXk0ek1TNDVORGt0TGpJeUxqazBPVWd6TGpRM05HTXRMalV6SURBdExqWTVOUzB1TnpFMkxTNHlNaTB1T1RRNWVpSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk1UUWdNVGgyTFRjaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRFNElERTRkaTAzSWlBdlBnb2dJRHh3WVhSb0lHUTlJazB6SURJeWFERTRJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMDJJREU0ZGkwM0lpQXZQZ284TDNOMlp6NEspIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2xhbmRtYXJrXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgTGFuZG1hcmsgPSBjcmVhdGVMdWNpZGVJY29uKCdsYW5kbWFyaycsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBMYW5kbWFyaztcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnbTUgOCA2IDYnLCBrZXk6ICcxd3U1aHYnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdtNCAxNCA2LTYgMi0zJywga2V5OiAnMWsxZzhkJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTIgNWgxMicsIGtleTogJ29yMTc3ZicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ003IDJoMScsIGtleTogJzF0MmpzeCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ20yMiAyMi01LTEwLTUgMTAnLCBrZXk6ICdkb243bmUnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTQgMThoNicsIGtleTogJzFtOGs2cicgfV0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgTGFuZ3VhZ2VzXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSnROU0E0SURZZ05pSWdMejRLSUNBOGNHRjBhQ0JrUFNKdE5DQXhOQ0EyTFRZZ01pMHpJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHlJRFZvTVRJaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRjZ01tZ3hJaUF2UGdvZ0lEeHdZWFJvSUdROUltMHlNaUF5TWkwMUxURXdMVFVnTVRBaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRFMElERTRhRFlpSUM4K0Nqd3ZjM1puUGdvPSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvbGFuZ3VhZ2VzXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgTGFuZ3VhZ2VzID0gY3JlYXRlTHVjaWRlSWNvbignbGFuZ3VhZ2VzJywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IExhbmd1YWdlcztcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTIgMjBoMjAnLCBrZXk6ICdvd29teTUnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdtOSAxMCAyIDIgNC00Jywga2V5OiAnMWducXo0JyB9XSxcbiAgWydyZWN0JywgeyB4OiAnMycsIHk6ICc0Jywgd2lkdGg6ICcxOCcsIGhlaWdodDogJzEyJywgcng6ICcyJywga2V5OiAnOHVyMzZtJyB9XSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBMYXB0b3BNaW5pbWFsQ2hlY2tcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1pQXlNR2d5TUNJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0p0T1NBeE1DQXlJRElnTkMwMElpQXZQZ29nSUR4eVpXTjBJSGc5SWpNaUlIazlJalFpSUhkcFpIUm9QU0l4T0NJZ2FHVnBaMmgwUFNJeE1pSWdjbmc5SWpJaUlDOCtDand2YzNablBnbz0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2xhcHRvcC1taW5pbWFsLWNoZWNrXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgTGFwdG9wTWluaW1hbENoZWNrID0gY3JlYXRlTHVjaWRlSWNvbignbGFwdG9wLW1pbmltYWwtY2hlY2snLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgTGFwdG9wTWluaW1hbENoZWNrO1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbJ3JlY3QnLCB7IHdpZHRoOiAnMTgnLCBoZWlnaHQ6ICcxMicsIHg6ICczJywgeTogJzQnLCByeDogJzInLCByeTogJzInLCBrZXk6ICcxcWh5NDEnIH1dLFxuICBbJ2xpbmUnLCB7IHgxOiAnMicsIHgyOiAnMjInLCB5MTogJzIwJywgeTI6ICcyMCcsIGtleTogJ25pM2hsbCcgfV0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgTGFwdG9wTWluaW1hbFxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y21WamRDQjNhV1IwYUQwaU1UZ2lJR2hsYVdkb2REMGlNVElpSUhnOUlqTWlJSGs5SWpRaUlISjRQU0l5SWlCeWVUMGlNaUlnTHo0S0lDQThiR2x1WlNCNE1UMGlNaUlnZURJOUlqSXlJaUI1TVQwaU1qQWlJSGt5UFNJeU1DSWdMejRLUEM5emRtYytDZz09KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9sYXB0b3AtbWluaW1hbFxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IExhcHRvcE1pbmltYWwgPSBjcmVhdGVMdWNpZGVJY29uKCdsYXB0b3AtbWluaW1hbCcsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBMYXB0b3BNaW5pbWFsO1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbXG4gICAgJ3BhdGgnLFxuICAgIHtcbiAgICAgIGQ6ICdNMTggNWEyIDIgMCAwIDEgMiAydjguNTI2YTIgMiAwIDAgMCAuMjEyLjg5N2wxLjA2OCAyLjEyN2ExIDEgMCAwIDEtLjkgMS40NUgzLjYyYTEgMSAwIDAgMS0uOS0xLjQ1bDEuMDY4LTIuMTI3QTIgMiAwIDAgMCA0IDE1LjUyNlY3YTIgMiAwIDAgMSAyLTJ6JyxcbiAgICAgIGtleTogJzFwZGF2cCcsXG4gICAgfSxcbiAgXSxcbiAgWydwYXRoJywgeyBkOiAnTTIwLjA1NCAxNS45ODdIMy45NDYnLCBrZXk6ICcxNHJ4ZzknIH1dLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIExhcHRvcFxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTVRnZ05XRXlJRElnTUNBd0lERWdNaUF5ZGpndU5USTJZVElnTWlBd0lEQWdNQ0F1TWpFeUxqZzVOMnd4TGpBMk9DQXlMakV5TjJFeElERWdNQ0F3SURFdExqa2dNUzQwTlVnekxqWXlZVEVnTVNBd0lEQWdNUzB1T1MweExqUTFiREV1TURZNExUSXVNVEkzUVRJZ01pQXdJREFnTUNBMElERTFMalV5TmxZM1lUSWdNaUF3SURBZ01TQXlMVEo2SWlBdlBnb2dJRHh3WVhSb0lHUTlJazB5TUM0d05UUWdNVFV1T1RnM1NETXVPVFEySWlBdlBnbzhMM04yWno0SykgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvbGFwdG9wXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgTGFwdG9wID0gY3JlYXRlTHVjaWRlSWNvbignbGFwdG9wJywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IExhcHRvcDtcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTcgMjJhNSA1IDAgMCAxLTItNCcsIGtleTogJ3VtdXNoaScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ003IDE2LjkzYy45Ni40MyAxLjk2Ljc0IDIuOTkuOTEnLCBrZXk6ICd5YmJ0djMnIH1dLFxuICBbXG4gICAgJ3BhdGgnLFxuICAgIHtcbiAgICAgIGQ6ICdNMy4zNCAxNEE2LjggNi44IDAgMCAxIDIgMTBjMC00LjQyIDQuNDgtOCAxMC04czEwIDMuNTggMTAgOGE3LjE5IDcuMTkgMCAwIDEtLjMzIDInLFxuICAgICAga2V5OiAnZ3Q1ZTF3JyxcbiAgICB9LFxuICBdLFxuICBbJ3BhdGgnLCB7IGQ6ICdNNSAxOGEyIDIgMCAxIDAgMC00IDIgMiAwIDAgMCAwIDR6Jywga2V5OiAnYnEzeW53JyB9XSxcbiAgW1xuICAgICdwYXRoJyxcbiAgICB7XG4gICAgICBkOiAnTTE0LjMzIDIyaC0uMDlhLjM1LjM1IDAgMCAxLS4yNC0uMzJ2LTEwYS4zNC4zNCAwIDAgMSAuMzMtLjM0Yy4wOCAwIC4xNS4wMy4yMS4wOGw3LjM0IDZhLjMzLjMzIDAgMCAxLS4yMS41OWgtNC40OWwtMi41NyAzLjg1YS4zNS4zNSAwIDAgMS0uMjguMTR6JyxcbiAgICAgIGtleTogJzcycTYzNycsXG4gICAgfSxcbiAgXSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBMYXNzb1NlbGVjdFxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTnlBeU1tRTFJRFVnTUNBd0lERXRNaTAwSWlBdlBnb2dJRHh3WVhSb0lHUTlJazAzSURFMkxqa3pZeTQ1Tmk0ME15QXhMamsyTGpjMElESXVPVGt1T1RFaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRNdU16UWdNVFJCTmk0NElEWXVPQ0F3SURBZ01TQXlJREV3WXpBdE5DNDBNaUEwTGpRNExUZ2dNVEF0T0hNeE1DQXpMalU0SURFd0lEaGhOeTR4T1NBM0xqRTVJREFnTUNBeExTNHpNeUF5SWlBdlBnb2dJRHh3WVhSb0lHUTlJazAxSURFNFlUSWdNaUF3SURFZ01DQXdMVFFnTWlBeUlEQWdNQ0F3SURBZ05Ib2lJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRURTBMak16SURJeWFDMHVNRGxoTGpNMUxqTTFJREFnTUNBeExTNHlOQzB1TXpKMkxURXdZUzR6TkM0ek5DQXdJREFnTVNBdU16TXRMak0wWXk0d09DQXdJQzR4TlM0d015NHlNUzR3T0d3M0xqTTBJRFpoTGpNekxqTXpJREFnTUNBeExTNHlNUzQxT1dndE5DNDBPV3d0TWk0MU55QXpMamcxWVM0ek5TNHpOU0F3SURBZ01TMHVNamd1TVRSNklpQXZQZ284TDNOMlp6NEspIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2xhc3NvLXNlbGVjdFxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IExhc3NvU2VsZWN0ID0gY3JlYXRlTHVjaWRlSWNvbignbGFzc28tc2VsZWN0JywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IExhc3NvU2VsZWN0O1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdNNyAyMmE1IDUgMCAwIDEtMi00Jywga2V5OiAndW11c2hpJyB9XSxcbiAgW1xuICAgICdwYXRoJyxcbiAgICB7XG4gICAgICBkOiAnTTMuMyAxNEE2LjggNi44IDAgMCAxIDIgMTBjMC00LjQgNC41LTggMTAtOHMxMCAzLjYgMTAgOC00LjUgOC0xMCA4YTEyIDEyIDAgMCAxLTUtMScsXG4gICAgICBrZXk6ICcxNDZkZHMnLFxuICAgIH0sXG4gIF0sXG4gIFsncGF0aCcsIHsgZDogJ001IDE4YTIgMiAwIDEgMCAwLTQgMiAyIDAgMCAwIDAgNHonLCBrZXk6ICdicTN5bncnIH1dLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIExhc3NvXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5OeUF5TW1FMUlEVWdNQ0F3SURFdE1pMDBJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHpMak1nTVRSQk5pNDRJRFl1T0NBd0lEQWdNU0F5SURFd1l6QXROQzQwSURRdU5TMDRJREV3TFRoek1UQWdNeTQySURFd0lEZ3ROQzQxSURndE1UQWdPR0V4TWlBeE1pQXdJREFnTVMwMUxURWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRUVWdNVGhoTWlBeUlEQWdNU0F3SURBdE5DQXlJRElnTUNBd0lEQWdNQ0EwZWlJZ0x6NEtQQzl6ZG1jK0NnPT0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2xhc3NvXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgTGFzc28gPSBjcmVhdGVMdWNpZGVJY29uKCdsYXNzbycsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBMYXNzbztcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgW1xuICAgICdwYXRoJyxcbiAgICB7XG4gICAgICBkOiAnTTEzIDEzLjc0YTIgMiAwIDAgMS0yIDBMMi41IDguODdhMSAxIDAgMCAxIDAtMS43NEwxMSAyLjI2YTIgMiAwIDAgMSAyIDBsOC41IDQuODdhMSAxIDAgMCAxIDAgMS43NHonLFxuICAgICAga2V5OiAnMTVxNnVjJyxcbiAgICB9LFxuICBdLFxuICBbXG4gICAgJ3BhdGgnLFxuICAgIHtcbiAgICAgIGQ6ICdtMjAgMTQuMjg1IDEuNS44NDVhMSAxIDAgMCAxIDAgMS43NEwxMyAyMS43NGEyIDIgMCAwIDEtMiAwbC04LjUtNC44N2ExIDEgMCAwIDEgMC0xLjc0bDEuNS0uODQ1JyxcbiAgICAgIGtleTogJ2J5aWE2ZycsXG4gICAgfSxcbiAgXSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBMYXllcnMyXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NVE1nTVRNdU56UmhNaUF5SURBZ01DQXhMVElnTUV3eUxqVWdPQzQ0TjJFeElERWdNQ0F3SURFZ01DMHhMamMwVERFeElESXVNalpoTWlBeUlEQWdNQ0F4SURJZ01HdzRMalVnTkM0NE4yRXhJREVnTUNBd0lERWdNQ0F4TGpjMGVpSWdMejRLSUNBOGNHRjBhQ0JrUFNKdE1qQWdNVFF1TWpnMUlERXVOUzQ0TkRWaE1TQXhJREFnTUNBeElEQWdNUzQzTkV3eE15QXlNUzQzTkdFeUlESWdNQ0F3SURFdE1pQXdiQzA0TGpVdE5DNDROMkV4SURFZ01DQXdJREVnTUMweExqYzBiREV1TlMwdU9EUTFJaUF2UGdvOEwzTjJaejRLKSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9sYXllcnMtMlxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IExheWVyczIgPSBjcmVhdGVMdWNpZGVJY29uKCdsYXllcnMtMicsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBMYXllcnMyO1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbJ2NpcmNsZScsIHsgY3g6ICcxMicsIGN5OiAnMTInLCByOiAnMTAnLCBrZXk6ICcxbWdsYXknIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTggMTNhNiA2IDAgMCAxLTYgNSA2IDYgMCAwIDEtNi01aDEyWicsIGtleTogJ2IycTRkZCcgfV0sXG4gIFsnbGluZScsIHsgeDE6ICc5JywgeDI6ICc5LjAxJywgeTE6ICc5JywgeTI6ICc5Jywga2V5OiAneXh4bmQwJyB9XSxcbiAgWydsaW5lJywgeyB4MTogJzE1JywgeDI6ICcxNS4wMScsIHkxOiAnOScsIHkyOiAnOScsIGtleTogJzFwNHk5ZScgfV0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgTGF1Z2hcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOFkybHlZMnhsSUdONFBTSXhNaUlnWTNrOUlqRXlJaUJ5UFNJeE1DSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk1UZ2dNVE5oTmlBMklEQWdNQ0F4TFRZZ05TQTJJRFlnTUNBd0lERXROaTAxYURFeVdpSWdMejRLSUNBOGJHbHVaU0I0TVQwaU9TSWdlREk5SWprdU1ERWlJSGt4UFNJNUlpQjVNajBpT1NJZ0x6NEtJQ0E4YkdsdVpTQjRNVDBpTVRVaUlIZ3lQU0l4TlM0d01TSWdlVEU5SWpraUlIa3lQU0k1SWlBdlBnbzhMM04yWno0SykgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvbGF1Z2hcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBMYXVnaCA9IGNyZWF0ZUx1Y2lkZUljb24oJ2xhdWdoJywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IExhdWdoO1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbXG4gICAgJ3BhdGgnLFxuICAgIHtcbiAgICAgIGQ6ICdNMTIuODMgMi4xOGEyIDIgMCAwIDAtMS42NiAwTDIuNiA2LjA4YTEgMSAwIDAgMCAwIDEuODNsOC41OCAzLjkxYTIgMiAwIDAgMCAxLjY2IDBsOC41OC0zLjlhMSAxIDAgMCAwIDAtMS44M3onLFxuICAgICAga2V5OiAnenczam8nLFxuICAgIH0sXG4gIF0sXG4gIFtcbiAgICAncGF0aCcsXG4gICAge1xuICAgICAgZDogJ00yIDEyYTEgMSAwIDAgMCAuNTguOTFsOC42IDMuOTFhMiAyIDAgMCAwIDEuNjUgMGw4LjU4LTMuOUExIDEgMCAwIDAgMjIgMTInLFxuICAgICAga2V5OiAnMXdkdXFjJyxcbiAgICB9LFxuICBdLFxuICBbXG4gICAgJ3BhdGgnLFxuICAgIHtcbiAgICAgIGQ6ICdNMiAxN2ExIDEgMCAwIDAgLjU4LjkxbDguNiAzLjkxYTIgMiAwIDAgMCAxLjY1IDBsOC41OC0zLjlBMSAxIDAgMCAwIDIyIDE3JyxcbiAgICAgIGtleTogJ2txYnZ4NicsXG4gICAgfSxcbiAgXSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBMYXllcnNcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1USXVPRE1nTWk0eE9HRXlJRElnTUNBd0lEQXRNUzQyTmlBd1RESXVOaUEyTGpBNFlURWdNU0F3SURBZ01DQXdJREV1T0ROc09DNDFPQ0F6TGpreFlUSWdNaUF3SURBZ01DQXhMalkySURCc09DNDFPQzB6TGpsaE1TQXhJREFnTUNBd0lEQXRNUzQ0TTNvaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRJZ01USmhNU0F4SURBZ01DQXdJQzQxT0M0NU1XdzRMallnTXk0NU1XRXlJRElnTUNBd0lEQWdNUzQyTlNBd2JEZ3VOVGd0TXk0NVFURWdNU0F3SURBZ01DQXlNaUF4TWlJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTWlBeE4yRXhJREVnTUNBd0lEQWdMalU0TGpreGJEZ3VOaUF6TGpreFlUSWdNaUF3SURBZ01DQXhMalkxSURCc09DNDFPQzB6TGpsQk1TQXhJREFnTUNBd0lESXlJREUzSWlBdlBnbzhMM04yWno0SykgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvbGF5ZXJzXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgTGF5ZXJzID0gY3JlYXRlTHVjaWRlSWNvbignbGF5ZXJzJywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IExheWVycztcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgWydyZWN0JywgeyB3aWR0aDogJzcnLCBoZWlnaHQ6ICc5JywgeDogJzMnLCB5OiAnMycsIHJ4OiAnMScsIGtleTogJzEwbHZ5MCcgfV0sXG4gIFsncmVjdCcsIHsgd2lkdGg6ICc3JywgaGVpZ2h0OiAnNScsIHg6ICcxNCcsIHk6ICczJywgcng6ICcxJywga2V5OiAnMTZ1bmU4JyB9XSxcbiAgWydyZWN0JywgeyB3aWR0aDogJzcnLCBoZWlnaHQ6ICc5JywgeDogJzE0JywgeTogJzEyJywgcng6ICcxJywga2V5OiAnMWh1dGc1JyB9XSxcbiAgWydyZWN0JywgeyB3aWR0aDogJzcnLCBoZWlnaHQ6ICc1JywgeDogJzMnLCB5OiAnMTYnLCByeDogJzEnLCBrZXk6ICdsZG9vMXknIH1dLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIExheW91dERhc2hib2FyZFxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y21WamRDQjNhV1IwYUQwaU55SWdhR1ZwWjJoMFBTSTVJaUI0UFNJeklpQjVQU0l6SWlCeWVEMGlNU0lnTHo0S0lDQThjbVZqZENCM2FXUjBhRDBpTnlJZ2FHVnBaMmgwUFNJMUlpQjRQU0l4TkNJZ2VUMGlNeUlnY25nOUlqRWlJQzgrQ2lBZ1BISmxZM1FnZDJsa2RHZzlJamNpSUdobGFXZG9kRDBpT1NJZ2VEMGlNVFFpSUhrOUlqRXlJaUJ5ZUQwaU1TSWdMejRLSUNBOGNtVmpkQ0IzYVdSMGFEMGlOeUlnYUdWcFoyaDBQU0kxSWlCNFBTSXpJaUI1UFNJeE5pSWdjbmc5SWpFaUlDOCtDand2YzNablBnbz0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2xheW91dC1kYXNoYm9hcmRcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBMYXlvdXREYXNoYm9hcmQgPSBjcmVhdGVMdWNpZGVJY29uKCdsYXlvdXQtZGFzaGJvYXJkJywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IExheW91dERhc2hib2FyZDtcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgWydyZWN0JywgeyB3aWR0aDogJzcnLCBoZWlnaHQ6ICc3JywgeDogJzMnLCB5OiAnMycsIHJ4OiAnMScsIGtleTogJzFnOTh5cCcgfV0sXG4gIFsncmVjdCcsIHsgd2lkdGg6ICc3JywgaGVpZ2h0OiAnNycsIHg6ICczJywgeTogJzE0Jywgcng6ICcxJywga2V5OiAnMWJiNnlyJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTE0IDRoNycsIGtleTogJzN4YTBkNScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xNCA5aDcnLCBrZXk6ICcxaWNyZDknIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTQgMTVoNycsIGtleTogJzFtajhvMicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xNCAyMGg3Jywga2V5OiAnMTFzbHliJyB9XSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBMYXlvdXRMaXN0XG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjbVZqZENCM2FXUjBhRDBpTnlJZ2FHVnBaMmgwUFNJM0lpQjRQU0l6SWlCNVBTSXpJaUJ5ZUQwaU1TSWdMejRLSUNBOGNtVmpkQ0IzYVdSMGFEMGlOeUlnYUdWcFoyaDBQU0kzSWlCNFBTSXpJaUI1UFNJeE5DSWdjbmc5SWpFaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRFMElEUm9OeUlnTHo0S0lDQThjR0YwYUNCa1BTSk5NVFFnT1dnM0lpQXZQZ29nSUR4d1lYUm9JR1E5SWsweE5DQXhOV2czSWlBdlBnb2dJRHh3WVhSb0lHUTlJazB4TkNBeU1HZzNJaUF2UGdvOEwzTjJaejRLKSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9sYXlvdXQtbGlzdFxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IExheW91dExpc3QgPSBjcmVhdGVMdWNpZGVJY29uKCdsYXlvdXQtbGlzdCcsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBMYXlvdXRMaXN0O1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbJ3JlY3QnLCB7IHdpZHRoOiAnNycsIGhlaWdodDogJzcnLCB4OiAnMycsIHk6ICczJywgcng6ICcxJywga2V5OiAnMWc5OHlwJyB9XSxcbiAgWydyZWN0JywgeyB3aWR0aDogJzcnLCBoZWlnaHQ6ICc3JywgeDogJzE0JywgeTogJzMnLCByeDogJzEnLCBrZXk6ICc2ZDR4aGknIH1dLFxuICBbJ3JlY3QnLCB7IHdpZHRoOiAnNycsIGhlaWdodDogJzcnLCB4OiAnMTQnLCB5OiAnMTQnLCByeDogJzEnLCBrZXk6ICdueHY1bzAnIH1dLFxuICBbJ3JlY3QnLCB7IHdpZHRoOiAnNycsIGhlaWdodDogJzcnLCB4OiAnMycsIHk6ICcxNCcsIHJ4OiAnMScsIGtleTogJzFiYjZ5cicgfV0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgTGF5b3V0R3JpZFxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y21WamRDQjNhV1IwYUQwaU55SWdhR1ZwWjJoMFBTSTNJaUI0UFNJeklpQjVQU0l6SWlCeWVEMGlNU0lnTHo0S0lDQThjbVZqZENCM2FXUjBhRDBpTnlJZ2FHVnBaMmgwUFNJM0lpQjRQU0l4TkNJZ2VUMGlNeUlnY25nOUlqRWlJQzgrQ2lBZ1BISmxZM1FnZDJsa2RHZzlJamNpSUdobGFXZG9kRDBpTnlJZ2VEMGlNVFFpSUhrOUlqRTBJaUJ5ZUQwaU1TSWdMejRLSUNBOGNtVmpkQ0IzYVdSMGFEMGlOeUlnYUdWcFoyaDBQU0kzSWlCNFBTSXpJaUI1UFNJeE5DSWdjbmc5SWpFaUlDOCtDand2YzNablBnbz0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2xheW91dC1ncmlkXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgTGF5b3V0R3JpZCA9IGNyZWF0ZUx1Y2lkZUljb24oJ2xheW91dC1ncmlkJywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IExheW91dEdyaWQ7XG4iLCJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbXG4gIFsncmVjdCcsIHsgd2lkdGg6ICc3JywgaGVpZ2h0OiAnMTgnLCB4OiAnMycsIHk6ICczJywgcng6ICcxJywga2V5OiAnMm9icW0nIH1dLFxuICBbJ3JlY3QnLCB7IHdpZHRoOiAnNycsIGhlaWdodDogJzcnLCB4OiAnMTQnLCB5OiAnMycsIHJ4OiAnMScsIGtleTogJzZkNHhoaScgfV0sXG4gIFsncmVjdCcsIHsgd2lkdGg6ICc3JywgaGVpZ2h0OiAnNycsIHg6ICcxNCcsIHk6ICcxNCcsIHJ4OiAnMScsIGtleTogJ254djVvMCcgfV0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgTGF5b3V0UGFuZWxMZWZ0XG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjbVZqZENCM2FXUjBhRDBpTnlJZ2FHVnBaMmgwUFNJeE9DSWdlRDBpTXlJZ2VUMGlNeUlnY25nOUlqRWlJQzgrQ2lBZ1BISmxZM1FnZDJsa2RHZzlJamNpSUdobGFXZG9kRDBpTnlJZ2VEMGlNVFFpSUhrOUlqTWlJSEo0UFNJeElpQXZQZ29nSUR4eVpXTjBJSGRwWkhSb1BTSTNJaUJvWldsbmFIUTlJamNpSUhnOUlqRTBJaUI1UFNJeE5DSWdjbmc5SWpFaUlDOCtDand2YzNablBnbz0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2xheW91dC1wYW5lbC1sZWZ0XG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgTGF5b3V0UGFuZWxMZWZ0ID0gY3JlYXRlTHVjaWRlSWNvbignbGF5b3V0LXBhbmVsLWxlZnQnLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgTGF5b3V0UGFuZWxMZWZ0O1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbJ3JlY3QnLCB7IHdpZHRoOiAnMTgnLCBoZWlnaHQ6ICc3JywgeDogJzMnLCB5OiAnMycsIHJ4OiAnMScsIGtleTogJ2YxYTJlbScgfV0sXG4gIFsncmVjdCcsIHsgd2lkdGg6ICc3JywgaGVpZ2h0OiAnNycsIHg6ICczJywgeTogJzE0Jywgcng6ICcxJywga2V5OiAnMWJiNnlyJyB9XSxcbiAgWydyZWN0JywgeyB3aWR0aDogJzcnLCBoZWlnaHQ6ICc3JywgeDogJzE0JywgeTogJzE0Jywgcng6ICcxJywga2V5OiAnbnh2NW8wJyB9XSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBMYXlvdXRQYW5lbFRvcFxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y21WamRDQjNhV1IwYUQwaU1UZ2lJR2hsYVdkb2REMGlOeUlnZUQwaU15SWdlVDBpTXlJZ2NuZzlJakVpSUM4K0NpQWdQSEpsWTNRZ2QybGtkR2c5SWpjaUlHaGxhV2RvZEQwaU55SWdlRDBpTXlJZ2VUMGlNVFFpSUhKNFBTSXhJaUF2UGdvZ0lEeHlaV04wSUhkcFpIUm9QU0kzSWlCb1pXbG5hSFE5SWpjaUlIZzlJakUwSWlCNVBTSXhOQ0lnY25nOUlqRWlJQzgrQ2p3dmMzWm5QZ289KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9sYXlvdXQtcGFuZWwtdG9wXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgTGF5b3V0UGFuZWxUb3AgPSBjcmVhdGVMdWNpZGVJY29uKCdsYXlvdXQtcGFuZWwtdG9wJywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IExheW91dFBhbmVsVG9wO1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbJ3JlY3QnLCB7IHdpZHRoOiAnMTgnLCBoZWlnaHQ6ICc3JywgeDogJzMnLCB5OiAnMycsIHJ4OiAnMScsIGtleTogJ2YxYTJlbScgfV0sXG4gIFsncmVjdCcsIHsgd2lkdGg6ICc5JywgaGVpZ2h0OiAnNycsIHg6ICczJywgeTogJzE0Jywgcng6ICcxJywga2V5OiAnanF6bnlnJyB9XSxcbiAgWydyZWN0JywgeyB3aWR0aDogJzUnLCBoZWlnaHQ6ICc3JywgeDogJzE2JywgeTogJzE0Jywgcng6ICcxJywga2V5OiAncTVoMmk4JyB9XSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBMYXlvdXRUZW1wbGF0ZVxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y21WamRDQjNhV1IwYUQwaU1UZ2lJR2hsYVdkb2REMGlOeUlnZUQwaU15SWdlVDBpTXlJZ2NuZzlJakVpSUM4K0NpQWdQSEpsWTNRZ2QybGtkR2c5SWpraUlHaGxhV2RvZEQwaU55SWdlRDBpTXlJZ2VUMGlNVFFpSUhKNFBTSXhJaUF2UGdvZ0lEeHlaV04wSUhkcFpIUm9QU0kxSWlCb1pXbG5hSFE5SWpjaUlIZzlJakUySWlCNVBTSXhOQ0lnY25nOUlqRWlJQzgrQ2p3dmMzWm5QZ289KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9sYXlvdXQtdGVtcGxhdGVcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBMYXlvdXRUZW1wbGF0ZSA9IGNyZWF0ZUx1Y2lkZUljb24oJ2xheW91dC10ZW1wbGF0ZScsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBMYXlvdXRUZW1wbGF0ZTtcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgW1xuICAgICdwYXRoJyxcbiAgICB7XG4gICAgICBkOiAnTTExIDIwQTcgNyAwIDAgMSA5LjggNi4xQzE1LjUgNSAxNyA0LjQ4IDE5IDJjMSAyIDIgNC4xOCAyIDggMCA1LjUtNC43OCAxMC0xMCAxMFonLFxuICAgICAga2V5OiAnbm5leHEzJyxcbiAgICB9LFxuICBdLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMiAyMWMwLTMgMS44NS01LjM2IDUuMDgtNkM5LjUgMTQuNTIgMTIgMTMgMTMgMTInLCBrZXk6ICdtdDU4YTcnIH1dLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIExlYWZcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1URWdNakJCTnlBM0lEQWdNQ0F4SURrdU9DQTJMakZETVRVdU5TQTFJREUzSURRdU5EZ2dNVGtnTW1NeElESWdNaUEwTGpFNElESWdPQ0F3SURVdU5TMDBMamM0SURFd0xURXdJREV3V2lJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTWlBeU1XTXdMVE1nTVM0NE5TMDFMak0ySURVdU1EZ3ROa001TGpVZ01UUXVOVElnTVRJZ01UTWdNVE1nTVRJaUlDOCtDand2YzNablBnbz0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2xlYWZcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBMZWFmID0gY3JlYXRlTHVjaWRlSWNvbignbGVhZicsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBMZWFmO1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbXG4gICAgJ3BhdGgnLFxuICAgIHtcbiAgICAgIGQ6ICdNMiAyMmMxLjI1LS45ODcgMi4yNy0xLjk3NSAzLjktMi4yYTUuNTYgNS41NiAwIDAgMSAzLjggMS41IDQgNCAwIDAgMCA2LjE4Ny0yLjM1MyAzLjUgMy41IDAgMCAwIDMuNjktNS4xMTZBMy41IDMuNSAwIDAgMCAyMC45NSA4IDMuNSAzLjUgMCAxIDAgMTYgMy4wNWEzLjUgMy41IDAgMCAwLTUuODMxIDEuMzczIDMuNSAzLjUgMCAwIDAtNS4xMTYgMy42OSA0IDQgMCAwIDAtMi4zNDggNi4xNTVDMy40OTkgMTUuNDIgNC40MDkgMTYuNzEyIDQuMiAxOC4xIDMuOTI2IDE5Ljc0MyAzLjAxNCAyMC43MzIgMiAyMicsXG4gICAgICBrZXk6ICcxMTM0bnQnLFxuICAgIH0sXG4gIF0sXG4gIFsncGF0aCcsIHsgZDogJ00yIDIyIDE3IDcnLCBrZXk6ICcxcTdqcDInIH1dLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIExlYWZ5R3JlZW5cbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1pQXlNbU14TGpJMUxTNDVPRGNnTWk0eU55MHhMamszTlNBekxqa3RNaTR5WVRVdU5UWWdOUzQxTmlBd0lEQWdNU0F6TGpnZ01TNDFJRFFnTkNBd0lEQWdNQ0EyTGpFNE55MHlMak0xTXlBekxqVWdNeTQxSURBZ01DQXdJRE11TmprdE5TNHhNVFpCTXk0MUlETXVOU0F3SURBZ01DQXlNQzQ1TlNBNElETXVOU0F6TGpVZ01DQXhJREFnTVRZZ015NHdOV0V6TGpVZ015NDFJREFnTUNBd0xUVXVPRE14SURFdU16Y3pJRE11TlNBekxqVWdNQ0F3SURBdE5TNHhNVFlnTXk0Mk9TQTBJRFFnTUNBd0lEQXRNaTR6TkRnZ05pNHhOVFZETXk0ME9Ua2dNVFV1TkRJZ05DNDBNRGtnTVRZdU56RXlJRFF1TWlBeE9DNHhJRE11T1RJMklERTVMamMwTXlBekxqQXhOQ0F5TUM0M016SWdNaUF5TWlJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTWlBeU1pQXhOeUEzSWlBdlBnbzhMM04yWno0SykgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvbGVhZnktZ3JlZW5cbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBMZWFmeUdyZWVuID0gY3JlYXRlTHVjaWRlSWNvbignbGVhZnktZ3JlZW4nLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgTGVhZnlHcmVlbjtcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgW1xuICAgICdwYXRoJyxcbiAgICB7XG4gICAgICBkOiAnTTE2IDEyaDNhMiAyIDAgMCAwIDEuOTAyLTEuMzhsMS4wNTYtMy4zMzNBMSAxIDAgMCAwIDIxIDZIM2ExIDEgMCAwIDAtLjk1OCAxLjI4N2wxLjA1NiAzLjMzNEEyIDIgMCAwIDAgNSAxMmgzJyxcbiAgICAgIGtleTogJzEzamp4ZycsXG4gICAgfSxcbiAgXSxcbiAgWydwYXRoJywgeyBkOiAnTTE4IDZWM2ExIDEgMCAwIDAtMS0xaC0zJywga2V5OiAnMTU1MGZlJyB9XSxcbiAgWydyZWN0JywgeyB3aWR0aDogJzgnLCBoZWlnaHQ6ICcxMicsIHg6ICc4JywgeTogJzEwJywgcng6ICcxJywga2V5OiAncW11OGI2JyB9XSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBMZWN0ZXJuXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NVFlnTVRKb00yRXlJRElnTUNBd0lEQWdNUzQ1TURJdE1TNHpPR3d4TGpBMU5pMHpMak16TTBFeElERWdNQ0F3SURBZ01qRWdOa2d6WVRFZ01TQXdJREFnTUMwdU9UVTRJREV1TWpnM2JERXVNRFUySURNdU16TTBRVElnTWlBd0lEQWdNQ0ExSURFeWFETWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRURTRJRFpXTTJFeElERWdNQ0F3SURBdE1TMHhhQzB6SWlBdlBnb2dJRHh5WldOMElIZHBaSFJvUFNJNElpQm9aV2xuYUhROUlqRXlJaUI0UFNJNElpQjVQU0l4TUNJZ2NuZzlJakVpSUM4K0Nqd3ZjM1puUGdvPSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvbGVjdGVyblxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IExlY3Rlcm4gPSBjcmVhdGVMdWNpZGVJY29uKCdsZWN0ZXJuJywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IExlY3Rlcm47XG4iLCJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ00xNSAxMmg2Jywga2V5OiAndXBhMHp5JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTE1IDZoNicsIGtleTogJzFqbGt2eScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ20zIDEzIDMuNTUzLTcuNzI0YS41LjUgMCAwIDEgLjg5NCAwTDExIDEzJywga2V5OiAnYmxldng0JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTMgMThoMTgnLCBrZXk6ICcxaDExM3gnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMy45MiAxMWg2LjE2Jywga2V5OiAnMWJxbzhtJyB9XSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBMZXR0ZXJUZXh0XG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NVFVnTVRKb05pSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk1UVWdObWcySWlBdlBnb2dJRHh3WVhSb0lHUTlJbTB6SURFeklETXVOVFV6TFRjdU56STBZUzQxTGpVZ01DQXdJREVnTGpnNU5DQXdUREV4SURFeklpQXZQZ29nSUR4d1lYUm9JR1E5SWsweklERTRhREU0SWlBdlBnb2dJRHh3WVhSb0lHUTlJazB6TGpreUlERXhhRFl1TVRZaUlDOCtDand2YzNablBnbz0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2xldHRlci10ZXh0XG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgTGV0dGVyVGV4dCA9IGNyZWF0ZUx1Y2lkZUljb24oJ2xldHRlci10ZXh0JywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IExldHRlclRleHQ7XG4iLCJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbXG4gIFsncmVjdCcsIHsgd2lkdGg6ICc4JywgaGVpZ2h0OiAnMTgnLCB4OiAnMycsIHk6ICczJywgcng6ICcxJywga2V5OiAnb3lucGI1JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTcgM3YxOCcsIGtleTogJ2Jia2J3cycgfV0sXG4gIFtcbiAgICAncGF0aCcsXG4gICAge1xuICAgICAgZDogJ00yMC40IDE4LjljLjIuNS0uMSAxLjEtLjYgMS4zbC0xLjkuN2MtLjUuMi0xLjEtLjEtMS4zLS42TDExLjEgNS4xYy0uMi0uNS4xLTEuMS42LTEuM2wxLjktLjdjLjUtLjIgMS4xLjEgMS4zLjZaJyxcbiAgICAgIGtleTogJzFxYm95aycsXG4gICAgfSxcbiAgXSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBMaWJyYXJ5QmlnXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjbVZqZENCM2FXUjBhRDBpT0NJZ2FHVnBaMmgwUFNJeE9DSWdlRDBpTXlJZ2VUMGlNeUlnY25nOUlqRWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRUY2dNM1l4T0NJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTWpBdU5DQXhPQzQ1WXk0eUxqVXRMakVnTVM0eExTNDJJREV1TTJ3dE1TNDVMamRqTFM0MUxqSXRNUzR4TFM0eExURXVNeTB1Tmt3eE1TNHhJRFV1TVdNdExqSXRMalV1TVMweExqRXVOaTB4TGpOc01TNDVMUzQzWXk0MUxTNHlJREV1TVM0eElERXVNeTQyV2lJZ0x6NEtQQzl6ZG1jK0NnPT0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2xpYnJhcnktYmlnXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgTGlicmFyeUJpZyA9IGNyZWF0ZUx1Y2lkZUljb24oJ2xpYnJhcnktYmlnJywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IExpYnJhcnlCaWc7XG4iLCJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ20xNiA2IDQgMTQnLCBrZXk6ICdqaTMzdWYnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTIgNnYxNCcsIGtleTogJzFuN2d1cycgfV0sXG4gIFsncGF0aCcsIHsgZDogJ004IDh2MTInLCBrZXk6ICcxZ2c3eTknIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNNCA0djE2Jywga2V5OiAnNnFra2xpJyB9XSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBMaWJyYXJ5XG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSnRNVFlnTmlBMElERTBJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHhNaUEyZGpFMElpQXZQZ29nSUR4d1lYUm9JR1E5SWswNElEaDJNVElpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVFFnTkhZeE5pSWdMejRLUEM5emRtYytDZz09KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9saWJyYXJ5XG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgTGlicmFyeSA9IGNyZWF0ZUx1Y2lkZUljb24oJ2xpYnJhcnknLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgTGlicmFyeTtcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgWydjaXJjbGUnLCB7IGN4OiAnMTInLCBjeTogJzEyJywgcjogJzEwJywga2V5OiAnMW1nbGF5JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnbTQuOTMgNC45MyA0LjI0IDQuMjQnLCBrZXk6ICcxeW1nNDUnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdtMTQuODMgOS4xNyA0LjI0LTQuMjQnLCBrZXk6ICcxY2I1eGwnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdtMTQuODMgMTQuODMgNC4yNCA0LjI0Jywga2V5OiAncTQyZzBuJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnbTkuMTcgMTQuODMtNC4yNCA0LjI0Jywga2V5OiAnYnFwZnZ2JyB9XSxcbiAgWydjaXJjbGUnLCB7IGN4OiAnMTInLCBjeTogJzEyJywgcjogJzQnLCBrZXk6ICc0ZXhpcDInIH1dLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIExpZmVCdW95XG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThZMmx5WTJ4bElHTjRQU0l4TWlJZ1kzazlJakV5SWlCeVBTSXhNQ0lnTHo0S0lDQThjR0YwYUNCa1BTSnROQzQ1TXlBMExqa3pJRFF1TWpRZ05DNHlOQ0lnTHo0S0lDQThjR0YwYUNCa1BTSnRNVFF1T0RNZ09TNHhOeUEwTGpJMExUUXVNalFpSUM4K0NpQWdQSEJoZEdnZ1pEMGliVEUwTGpneklERTBMamd6SURRdU1qUWdOQzR5TkNJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0p0T1M0eE55QXhOQzQ0TXkwMExqSTBJRFF1TWpRaUlDOCtDaUFnUEdOcGNtTnNaU0JqZUQwaU1USWlJR041UFNJeE1pSWdjajBpTkNJZ0x6NEtQQzl6ZG1jK0NnPT0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2xpZmUtYnVveVxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IExpZmVCdW95ID0gY3JlYXRlTHVjaWRlSWNvbignbGlmZS1idW95JywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IExpZmVCdW95O1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdNMTQgMTJoMnY4Jywga2V5OiAnYzFmY2NsJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTE0IDIwaDQnLCBrZXk6ICdsengxeG8nIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNNiAxMmg0Jywga2V5OiAnYTRvM3J5JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTYgMjBoNCcsIGtleTogJzFpNnE1dCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ004IDIwVjhhNCA0IDAgMCAxIDcuNDY0LTInLCBrZXk6ICd3azl0NnInIH1dLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIExpZ2F0dXJlXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NVFFnTVRKb01uWTRJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHhOQ0F5TUdnMElpQXZQZ29nSUR4d1lYUm9JR1E5SWswMklERXlhRFFpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVFlnTWpCb05DSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk9DQXlNRlk0WVRRZ05DQXdJREFnTVNBM0xqUTJOQzB5SWlBdlBnbzhMM04yWno0SykgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvbGlnYXR1cmVcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBMaWdhdHVyZSA9IGNyZWF0ZUx1Y2lkZUljb24oJ2xpZ2F0dXJlJywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IExpZ2F0dXJlO1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbXG4gICAgJ3BhdGgnLFxuICAgIHtcbiAgICAgIGQ6ICdNMTUgMTRjLjItMSAuNy0xLjcgMS41LTIuNSAxLS45IDEuNS0yLjIgMS41LTMuNUE2IDYgMCAwIDAgNiA4YzAgMSAuMiAyLjIgMS41IDMuNS43LjcgMS4zIDEuNSAxLjUgMi41JyxcbiAgICAgIGtleTogJzFndnpqYicsXG4gICAgfSxcbiAgXSxcbiAgWydwYXRoJywgeyBkOiAnTTkgMThoNicsIGtleTogJ3gxdXB2ZCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xMCAyMmg0Jywga2V5OiAnY2Vvdzk2JyB9XSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBMaWdodGJ1bGJcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1UVWdNVFJqTGpJdE1TQXVOeTB4TGpjZ01TNDFMVEl1TlNBeExTNDVJREV1TlMweUxqSWdNUzQxTFRNdU5VRTJJRFlnTUNBd0lEQWdOaUE0WXpBZ01TQXVNaUF5TGpJZ01TNDFJRE11TlM0M0xqY2dNUzR6SURFdU5TQXhMalVnTWk0MUlpQXZQZ29nSUR4d1lYUm9JR1E5SWswNUlERTRhRFlpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVEV3SURJeWFEUWlJQzgrQ2p3dmMzWm5QZ289KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9saWdodGJ1bGJcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBMaWdodGJ1bGIgPSBjcmVhdGVMdWNpZGVJY29uKCdsaWdodGJ1bGInLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgTGlnaHRidWxiO1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdNMTYuOCAxMS4yYy44LS45IDEuMi0yIDEuMi0zLjJhNiA2IDAgMCAwLTkuMy01Jywga2V5OiAnMWZrY294JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnbTIgMiAyMCAyMCcsIGtleTogJzFvb2V3eScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ002LjMgNi4zYTQuNjcgNC42NyAwIDAgMCAxLjIgNS4yYy43LjcgMS4zIDEuNSAxLjUgMi41Jywga2V5OiAnMTBtOGt3JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTkgMThoNicsIGtleTogJ3gxdXB2ZCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xMCAyMmg0Jywga2V5OiAnY2Vvdzk2JyB9XSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBMaWdodGJ1bGJPZmZcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1UWXVPQ0F4TVM0eVl5NDRMUzQ1SURFdU1pMHlJREV1TWkwekxqSmhOaUEySURBZ01DQXdMVGt1TXkwMUlpQXZQZ29nSUR4d1lYUm9JR1E5SW0weUlESWdNakFnTWpBaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRZdU15QTJMak5oTkM0Mk55QTBMalkzSURBZ01DQXdJREV1TWlBMUxqSmpMamN1TnlBeExqTWdNUzQxSURFdU5TQXlMalVpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVGtnTVRob05pSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk1UQWdNakpvTkNJZ0x6NEtQQzl6ZG1jK0NnPT0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2xpZ2h0YnVsYi1vZmZcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBMaWdodGJ1bGJPZmYgPSBjcmVhdGVMdWNpZGVJY29uKCdsaWdodGJ1bGItb2ZmJywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IExpZ2h0YnVsYk9mZjtcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgW1xuICAgICdwYXRoJyxcbiAgICB7XG4gICAgICBkOiAnTTcgMy41YzUtMiA3IDIuNSAzIDRDMS41IDEwIDIgMTUgNSAxNmM1IDIgOS0xMCAxNC03cy41IDEzLjUtNCAxMmMtNS0yLjUuNS0xMSA2LTInLFxuICAgICAga2V5OiAnMWxycGhkJyxcbiAgICB9LFxuICBdLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIExpbmVTcXVpZ2dsZVxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTnlBekxqVmpOUzB5SURjZ01pNDFJRE1nTkVNeExqVWdNVEFnTWlBeE5TQTFJREUyWXpVZ01pQTVMVEV3SURFMExUZHpMalVnTVRNdU5TMDBJREV5WXkwMUxUSXVOUzQxTFRFeElEWXRNaUlnTHo0S1BDOXpkbWMrKSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9saW5lLXNxdWlnZ2xlXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgTGluZVNxdWlnZ2xlID0gY3JlYXRlTHVjaWRlSWNvbignbGluZS1zcXVpZ2dsZScsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBMaW5lU3F1aWdnbGU7XG4iLCJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ005IDE3SDdBNSA1IDAgMCAxIDcgNycsIGtleTogJzEwbzIwMScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xNSA3aDJhNSA1IDAgMCAxIDQgOCcsIGtleTogJzFkMzIwNicgfV0sXG4gIFsnbGluZScsIHsgeDE6ICc4JywgeDI6ICcxMicsIHkxOiAnMTInLCB5MjogJzEyJywga2V5OiAncnZ3Nmo0JyB9XSxcbiAgWydsaW5lJywgeyB4MTogJzInLCB4MjogJzIyJywgeTE6ICcyJywgeTI6ICcyMicsIGtleTogJ2E2cDZ1aicgfV0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgTGluazJPZmZcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk9TQXhOMGczUVRVZ05TQXdJREFnTVNBM0lEY2lJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRURTFJRGRvTW1FMUlEVWdNQ0F3SURFZ05DQTRJaUF2UGdvZ0lEeHNhVzVsSUhneFBTSTRJaUI0TWowaU1USWlJSGt4UFNJeE1pSWdlVEk5SWpFeUlpQXZQZ29nSUR4c2FXNWxJSGd4UFNJeUlpQjRNajBpTWpJaUlIa3hQU0l5SWlCNU1qMGlNaklpSUM4K0Nqd3ZjM1puUGdvPSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvbGluay0yLW9mZlxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IExpbmsyT2ZmID0gY3JlYXRlTHVjaWRlSWNvbignbGluay0yLW9mZicsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBMaW5rMk9mZjtcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTkgMTdIN0E1IDUgMCAwIDEgNyA3aDInLCBrZXk6ICc4aTV1ZTUnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTUgN2gyYTUgNSAwIDEgMSAwIDEwaC0yJywga2V5OiAnMWI5cWw4JyB9XSxcbiAgWydsaW5lJywgeyB4MTogJzgnLCB4MjogJzE2JywgeTE6ICcxMicsIHkyOiAnMTInLCBrZXk6ICcxam9uY3QnIH1dLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIExpbmsyXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5PU0F4TjBnM1FUVWdOU0F3SURBZ01TQTNJRGRvTWlJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTVRVZ04yZ3lZVFVnTlNBd0lERWdNU0F3SURFd2FDMHlJaUF2UGdvZ0lEeHNhVzVsSUhneFBTSTRJaUI0TWowaU1UWWlJSGt4UFNJeE1pSWdlVEk5SWpFeUlpQXZQZ284TDNOMlp6NEspIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2xpbmstMlxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IExpbmsyID0gY3JlYXRlTHVjaWRlSWNvbignbGluay0yJywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IExpbmsyO1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdNMTAgMTNhNSA1IDAgMCAwIDcuNTQuNTRsMy0zYTUgNSAwIDAgMC03LjA3LTcuMDdsLTEuNzIgMS43MScsIGtleTogJzFjamVxbycgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xNCAxMWE1IDUgMCAwIDAtNy41NC0uNTRsLTMgM2E1IDUgMCAwIDAgNy4wNyA3LjA3bDEuNzEtMS43MScsIGtleTogJzE5cWQ2NycgfV0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgTGlua1xuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTVRBZ01UTmhOU0ExSURBZ01DQXdJRGN1TlRRdU5UUnNNeTB6WVRVZ05TQXdJREFnTUMwM0xqQTNMVGN1TURkc0xURXVOeklnTVM0M01TSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk1UUWdNVEZoTlNBMUlEQWdNQ0F3TFRjdU5UUXRMalUwYkMweklETmhOU0ExSURBZ01DQXdJRGN1TURjZ055NHdOMnd4TGpjeExURXVOekVpSUM4K0Nqd3ZjM1puUGdvPSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvbGlua1xuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IExpbmsgPSBjcmVhdGVMdWNpZGVJY29uKCdsaW5rJywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IExpbms7XG4iLCJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ00xMSAxOEgzJywga2V5OiAnbjNqMmRoJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnbTE1IDE4IDIgMiA0LTQnLCBrZXk6ICcxc3p3aGknIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTYgMTJIMycsIGtleTogJzFhMnJqNycgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xNiA2SDMnLCBrZXk6ICcxd3hmanMnIH1dLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIExpc3RDaGVja1xuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTVRFZ01UaElNeUlnTHo0S0lDQThjR0YwYUNCa1BTSnRNVFVnTVRnZ01pQXlJRFF0TkNJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTVRZZ01USklNeUlnTHo0S0lDQThjR0YwYUNCa1BTSk5NVFlnTmtneklpQXZQZ284TDNOMlp6NEspIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2xpc3QtY2hlY2tcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBMaXN0Q2hlY2sgPSBjcmVhdGVMdWNpZGVJY29uKCdsaXN0LWNoZWNrJywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IExpc3RDaGVjaztcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgW1xuICAgICdwYXRoJyxcbiAgICB7XG4gICAgICBkOiAnTTE2IDhhNiA2IDAgMCAxIDYgNnY3aC00di03YTIgMiAwIDAgMC0yLTIgMiAyIDAgMCAwLTIgMnY3aC00di03YTYgNiAwIDAgMSA2LTZ6JyxcbiAgICAgIGtleTogJ2MyanE5ZicsXG4gICAgfSxcbiAgXSxcbiAgWydyZWN0JywgeyB3aWR0aDogJzQnLCBoZWlnaHQ6ICcxMicsIHg6ICcyJywgeTogJzknLCBrZXk6ICdtazNvbjUnIH1dLFxuICBbJ2NpcmNsZScsIHsgY3g6ICc0JywgY3k6ICc0JywgcjogJzInLCBrZXk6ICdidDVyYTgnIH1dLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIExpbmtlZGluXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NVFlnT0dFMklEWWdNQ0F3SURFZ05pQTJkamRvTFRSMkxUZGhNaUF5SURBZ01DQXdMVEl0TWlBeUlESWdNQ0F3SURBdE1pQXlkamRvTFRSMkxUZGhOaUEySURBZ01DQXhJRFl0Tm5vaUlDOCtDaUFnUEhKbFkzUWdkMmxrZEdnOUlqUWlJR2hsYVdkb2REMGlNVElpSUhnOUlqSWlJSGs5SWpraUlDOCtDaUFnUEdOcGNtTnNaU0JqZUQwaU5DSWdZM2s5SWpRaUlISTlJaklpSUM4K0Nqd3ZjM1puUGdvPSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvbGlua2VkaW5cbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKiBAZGVwcmVjYXRlZCBCcmFuZCBpY29ucyBoYXZlIGJlZW4gZGVwcmVjYXRlZCBhbmQgYXJlIGR1ZSB0byBiZSByZW1vdmVkLCBwbGVhc2UgcmVmZXIgdG8gaHR0cHM6Ly9naXRodWIuY29tL2x1Y2lkZS1pY29ucy9sdWNpZGUvaXNzdWVzLzY3MC4gV2UgcmVjb21tZW5kIHVzaW5nIGh0dHBzOi8vc2ltcGxlaWNvbnMub3JnLz9xPWxpbmtlZGluIGluc3RlYWQuIFRoaXMgaWNvbiB3aWxsIGJlIHJlbW92ZWQgaW4gdjEuMFxuICovXG5jb25zdCBMaW5rZWRpbiA9IGNyZWF0ZUx1Y2lkZUljb24oJ2xpbmtlZGluJywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IExpbmtlZGluO1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdtMyAxNyAyIDIgNC00Jywga2V5OiAnMWpocHdxJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnbTMgNyAyIDIgNC00Jywga2V5OiAnMW9ic3BuJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTEzIDZoOCcsIGtleTogJzE1c2c1NycgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xMyAxMmg4Jywga2V5OiAnaDk4emx5JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTEzIDE4aDgnLCBrZXk6ICdvZTB2bTQnIH1dLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIExpc3RDaGVja3NcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKdE15QXhOeUF5SURJZ05DMDBJaUF2UGdvZ0lEeHdZWFJvSUdROUltMHpJRGNnTWlBeUlEUXROQ0lnTHo0S0lDQThjR0YwYUNCa1BTSk5NVE1nTm1nNElpQXZQZ29nSUR4d1lYUm9JR1E5SWsweE15QXhNbWc0SWlBdlBnb2dJRHh3WVhSb0lHUTlJazB4TXlBeE9HZzRJaUF2UGdvOEwzTjJaejRLKSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9saXN0LWNoZWNrc1xuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IExpc3RDaGVja3MgPSBjcmVhdGVMdWNpZGVJY29uKCdsaXN0LWNoZWNrcycsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBMaXN0Q2hlY2tzO1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdNMTAgMTJoMTEnLCBrZXk6ICc2bTRhZDknIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTAgMThoMTEnLCBrZXk6ICcxMWh2aTInIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTAgNmgxMScsIGtleTogJ2M3cXYxaycgfV0sXG4gIFsncGF0aCcsIHsgZDogJ20zIDEwIDMtMy0zLTMnLCBrZXk6ICdpN3BtMDgnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdtMyAyMCAzLTMtMy0zJywga2V5OiAnMjBneDFuJyB9XSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBMaXN0Q29sbGFwc2VcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1UQWdNVEpvTVRFaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRFd0lERTRhREV4SWlBdlBnb2dJRHh3WVhSb0lHUTlJazB4TUNBMmFERXhJaUF2UGdvZ0lEeHdZWFJvSUdROUltMHpJREV3SURNdE15MHpMVE1pSUM4K0NpQWdQSEJoZEdnZ1pEMGliVE1nTWpBZ015MHpMVE10TXlJZ0x6NEtQQzl6ZG1jK0NnPT0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2xpc3QtY29sbGFwc2VcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBMaXN0Q29sbGFwc2UgPSBjcmVhdGVMdWNpZGVJY29uKCdsaXN0LWNvbGxhcHNlJywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IExpc3RDb2xsYXBzZTtcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTE2IDEySDMnLCBrZXk6ICcxYTJyajcnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTYgNkgzJywga2V5OiAnMXd4ZmpzJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTEwIDE4SDMnLCBrZXk6ICcxMzc2OXQnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMjEgNnYxMGEyIDIgMCAwIDEtMiAyaC01Jywga2V5OiAnaWxyY3M4JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnbTE2IDE2LTIgMiAyIDInLCBrZXk6ICdra2M2cG0nIH1dLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIExpc3RFbmRcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1UWWdNVEpJTXlJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTVRZZ05rZ3pJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHhNQ0F4T0VneklpQXZQZ29nSUR4d1lYUm9JR1E5SWsweU1TQTJkakV3WVRJZ01pQXdJREFnTVMweUlESm9MVFVpSUM4K0NpQWdQSEJoZEdnZ1pEMGliVEUySURFMkxUSWdNaUF5SURJaUlDOCtDand2YzNablBnbz0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2xpc3QtZW5kXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgTGlzdEVuZCA9IGNyZWF0ZUx1Y2lkZUljb24oJ2xpc3QtZW5kJywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IExpc3RFbmQ7XG4iLCJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ00xMCAxOGg0Jywga2V5OiAnMXVscTY4JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTExIDZIMycsIGtleTogJzF1MjZpaycgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xNSA2aDYnLCBrZXk6ICcxamxrdnknIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTggOVYzJywga2V5OiAneHd3cDdtJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTcgMTJoOCcsIGtleTogJzdhMWJ4dicgfV0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgTGlzdEZpbHRlclBsdXNcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1UQWdNVGhvTkNJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTVRFZ05rZ3pJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHhOU0EyYURZaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRFNElEbFdNeUlnTHo0S0lDQThjR0YwYUNCa1BTSk5OeUF4TW1nNElpQXZQZ284TDNOMlp6NEspIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2xpc3QtZmlsdGVyLXBsdXNcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBMaXN0RmlsdGVyUGx1cyA9IGNyZWF0ZUx1Y2lkZUljb24oJ2xpc3QtZmlsdGVyLXBsdXMnLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgTGlzdEZpbHRlclBsdXM7XG4iLCJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ00zIDZoMTgnLCBrZXk6ICdkMHdtMGonIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNNyAxMmgxMCcsIGtleTogJ2I3dzUyaScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xMCAxOGg0Jywga2V5OiAnMXVscTY4JyB9XSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBMaXN0RmlsdGVyXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NeUEyYURFNElpQXZQZ29nSUR4d1lYUm9JR1E5SWswM0lERXlhREV3SWlBdlBnb2dJRHh3WVhSb0lHUTlJazB4TUNBeE9HZzBJaUF2UGdvOEwzTjJaejRLKSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9saXN0LWZpbHRlclxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IExpc3RGaWx0ZXIgPSBjcmVhdGVMdWNpZGVJY29uKCdsaXN0LWZpbHRlcicsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBMaXN0RmlsdGVyO1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdNMTEgMTJIMycsIGtleTogJzUxZWNuaicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xNiA2SDMnLCBrZXk6ICcxd3hmanMnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTYgMThIMycsIGtleTogJzEyeHpuNycgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00yMSAxMmgtNicsIGtleTogJ2J0MXVpcycgfV0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgTGlzdE1pbnVzXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NVEVnTVRKSU15SWdMejRLSUNBOGNHRjBhQ0JrUFNKTk1UWWdOa2d6SWlBdlBnb2dJRHh3WVhSb0lHUTlJazB4TmlBeE9FZ3pJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHlNU0F4TW1ndE5pSWdMejRLUEM5emRtYytDZz09KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9saXN0LW1pbnVzXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgTGlzdE1pbnVzID0gY3JlYXRlTHVjaWRlSWNvbignbGlzdC1taW51cycsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBMaXN0TWludXM7XG4iLCJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ00yMSAxNVY2Jywga2V5OiAnaDFjeDRnJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTE4LjUgMThhMi41IDIuNSAwIDEgMCAwLTUgMi41IDIuNSAwIDAgMCAwIDVaJywga2V5OiAnOHNhaWZ2JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTEyIDEySDMnLCBrZXk6ICcxOGtsb3UnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTYgNkgzJywga2V5OiAnMXd4ZmpzJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTEyIDE4SDMnLCBrZXk6ICcxMWZ0c3UnIH1dLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIExpc3RNdXNpY1xuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTWpFZ01UVldOaUlnTHo0S0lDQThjR0YwYUNCa1BTSk5NVGd1TlNBeE9HRXlMalVnTWk0MUlEQWdNU0F3SURBdE5TQXlMalVnTWk0MUlEQWdNQ0F3SURBZ05Wb2lJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRURXlJREV5U0RNaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRFMklEWklNeUlnTHo0S0lDQThjR0YwYUNCa1BTSk5NVElnTVRoSU15SWdMejRLUEM5emRtYytDZz09KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9saXN0LW11c2ljXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgTGlzdE11c2ljID0gY3JlYXRlTHVjaWRlSWNvbignbGlzdC1tdXNpYycsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBMaXN0TXVzaWM7XG4iLCJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ00xMCAxMmgxMScsIGtleTogJzZtNGFkOScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xMCAxOGgxMScsIGtleTogJzExaHZpMicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xMCA2aDExJywga2V5OiAnYzdxdjFrJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTQgMTBoMicsIGtleTogJzE2eHgycycgfV0sXG4gIFsncGF0aCcsIHsgZDogJ000IDZoMXY0Jywga2V5OiAnY25vdnBxJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTYgMThINGMwLTEgMi0yIDItM3MtMS0xLjUtMi0xJywga2V5OiAnbTlhOTVkJyB9XSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBMaXN0T3JkZXJlZFxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTVRBZ01USm9NVEVpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVEV3SURFNGFERXhJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHhNQ0EyYURFeElpQXZQZ29nSUR4d1lYUm9JR1E5SWswMElERXdhRElpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVFFnTm1neGRqUWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRUWWdNVGhJTkdNd0xURWdNaTB5SURJdE0zTXRNUzB4TGpVdE1pMHhJaUF2UGdvOEwzTjJaejRLKSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9saXN0LW9yZGVyZWRcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBMaXN0T3JkZXJlZCA9IGNyZWF0ZUx1Y2lkZUljb24oJ2xpc3Qtb3JkZXJlZCcsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBMaXN0T3JkZXJlZDtcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTExIDEySDMnLCBrZXk6ICc1MWVjbmonIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTYgNkgzJywga2V5OiAnMXd4ZmpzJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTE2IDE4SDMnLCBrZXk6ICcxMnh6bjcnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTggOXY2Jywga2V5OiAnMXR3Yjk4JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTIxIDEyaC02Jywga2V5OiAnYnQxdWlzJyB9XSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBMaXN0UGx1c1xuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTVRFZ01USklNeUlnTHo0S0lDQThjR0YwYUNCa1BTSk5NVFlnTmtneklpQXZQZ29nSUR4d1lYUm9JR1E5SWsweE5pQXhPRWd6SWlBdlBnb2dJRHh3WVhSb0lHUTlJazB4T0NBNWRqWWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRUSXhJREV5YUMwMklpQXZQZ284TDNOMlp6NEspIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2xpc3QtcGx1c1xuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IExpc3RQbHVzID0gY3JlYXRlTHVjaWRlSWNvbignbGlzdC1wbHVzJywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IExpc3RQbHVzO1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdNMjEgNkgzJywga2V5OiAnMWp3cTd2JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTcgMTJIMycsIGtleTogJzEzb3U3ZicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ003IDE4SDMnLCBrZXk6ICcxc2lqdzknIH1dLFxuICBbXG4gICAgJ3BhdGgnLFxuICAgIHtcbiAgICAgIGQ6ICdNMTIgMThhNSA1IDAgMCAwIDktMyA0LjUgNC41IDAgMCAwLTQuNS00LjVjLTEuMzMgMC0yLjU0LjU0LTMuNDEgMS40MUwxMSAxNCcsXG4gICAgICBrZXk6ICdxdGg2NzcnLFxuICAgIH0sXG4gIF0sXG4gIFsncGF0aCcsIHsgZDogJ00xMSAxMHY0aDQnLCBrZXk6ICcxNzJka2onIH1dLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIExpc3RSZXN0YXJ0XG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NakVnTmtneklpQXZQZ29nSUR4d1lYUm9JR1E5SWswM0lERXlTRE1pSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVGNnTVRoSU15SWdMejRLSUNBOGNHRjBhQ0JrUFNKTk1USWdNVGhoTlNBMUlEQWdNQ0F3SURrdE15QTBMalVnTkM0MUlEQWdNQ0F3TFRRdU5TMDBMalZqTFRFdU16TWdNQzB5TGpVMExqVTBMVE11TkRFZ01TNDBNVXd4TVNBeE5DSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk1URWdNVEIyTkdnMElpQXZQZ284TDNOMlp6NEspIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2xpc3QtcmVzdGFydFxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IExpc3RSZXN0YXJ0ID0gY3JlYXRlTHVjaWRlSWNvbignbGlzdC1yZXN0YXJ0JywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IExpc3RSZXN0YXJ0O1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdNMTYgMTJIMycsIGtleTogJzFhMnJqNycgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xNiAxOEgzJywga2V5OiAnMTJ4em43JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTEwIDZIMycsIGtleTogJ2xmOGx4NycgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00yMSAxOFY4YTIgMiAwIDAgMC0yLTJoLTUnLCBrZXk6ICcxaGdobGknIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdtMTYgOC0yLTIgMi0yJywga2V5OiAnMTYwdXZkJyB9XSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBMaXN0U3RhcnRcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1UWWdNVEpJTXlJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTVRZZ01UaElNeUlnTHo0S0lDQThjR0YwYUNCa1BTSk5NVEFnTmtneklpQXZQZ29nSUR4d1lYUm9JR1E5SWsweU1TQXhPRlk0WVRJZ01pQXdJREFnTUMweUxUSm9MVFVpSUM4K0NpQWdQSEJoZEdnZ1pEMGliVEUySURndE1pMHlJREl0TWlJZ0x6NEtQQzl6ZG1jK0NnPT0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2xpc3Qtc3RhcnRcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBMaXN0U3RhcnQgPSBjcmVhdGVMdWNpZGVJY29uKCdsaXN0LXN0YXJ0JywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IExpc3RTdGFydDtcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgWydyZWN0JywgeyB4OiAnMycsIHk6ICc1Jywgd2lkdGg6ICc2JywgaGVpZ2h0OiAnNicsIHJ4OiAnMScsIGtleTogJzFkZWZybCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ20zIDE3IDIgMiA0LTQnLCBrZXk6ICcxamhwd3EnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTMgNmg4Jywga2V5OiAnMTVzZzU3JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTEzIDEyaDgnLCBrZXk6ICdoOTh6bHknIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTMgMThoOCcsIGtleTogJ29lMHZtNCcgfV0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgTGlzdFRvZG9cbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNtVmpkQ0I0UFNJeklpQjVQU0kxSWlCM2FXUjBhRDBpTmlJZ2FHVnBaMmgwUFNJMklpQnllRDBpTVNJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0p0TXlBeE55QXlJRElnTkMwMElpQXZQZ29nSUR4d1lYUm9JR1E5SWsweE15QTJhRGdpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVEV6SURFeWFEZ2lJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRURXpJREU0YURnaUlDOCtDand2YzNablBnbz0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2xpc3QtdG9kb1xuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IExpc3RUb2RvID0gY3JlYXRlTHVjaWRlSWNvbignbGlzdC10b2RvJywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IExpc3RUb2RvO1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdNMjEgMTJoLTgnLCBrZXk6ICcxYm1mMGknIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMjEgNkg4Jywga2V5OiAnMXBxa3JiJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTIxIDE4aC04Jywga2V5OiAnMXRtNzl0JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTMgNnY0YzAgMS4xLjkgMiAyIDJoMycsIGtleTogJzF5d2RneScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00zIDEwdjZjMCAxLjEuOSAyIDIgMmgzJywga2V5OiAnMndjNzQ2JyB9XSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBMaXN0VHJlZVxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTWpFZ01USm9MVGdpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVEl4SURaSU9DSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk1qRWdNVGhvTFRnaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRNZ05uWTBZekFnTVM0eExqa2dNaUF5SURKb015SWdMejRLSUNBOGNHRjBhQ0JrUFNKTk15QXhNSFkyWXpBZ01TNHhMamtnTWlBeUlESm9NeUlnTHo0S1BDOXpkbWMrQ2c9PSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvbGlzdC10cmVlXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgTGlzdFRyZWUgPSBjcmVhdGVMdWNpZGVJY29uKCdsaXN0LXRyZWUnLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgTGlzdFRyZWU7XG4iLCJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ00xMiAxMkgzJywga2V5OiAnMThrbG91JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTE2IDZIMycsIGtleTogJzF3eGZqcycgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xMiAxOEgzJywga2V5OiAnMTFmdHN1JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnbTE2IDEyIDUgMy01IDN2LTZaJywga2V5OiAnenBza2twJyB9XSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBMaXN0VmlkZW9cbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1USWdNVEpJTXlJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTVRZZ05rZ3pJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHhNaUF4T0VneklpQXZQZ29nSUR4d1lYUm9JR1E5SW0weE5pQXhNaUExSURNdE5TQXpkaTAyV2lJZ0x6NEtQQzl6ZG1jK0NnPT0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2xpc3QtdmlkZW9cbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBMaXN0VmlkZW8gPSBjcmVhdGVMdWNpZGVJY29uKCdsaXN0LXZpZGVvJywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IExpc3RWaWRlbztcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTExIDEySDMnLCBrZXk6ICc1MWVjbmonIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTYgNkgzJywga2V5OiAnMXd4ZmpzJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTE2IDE4SDMnLCBrZXk6ICcxMnh6bjcnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdtMTkgMTAtNCA0Jywga2V5OiAnMXR6NjU5JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnbTE1IDEwIDQgNCcsIGtleTogJzFuN25laScgfV0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgTGlzdFhcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1URWdNVEpJTXlJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTVRZZ05rZ3pJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHhOaUF4T0VneklpQXZQZ29nSUR4d1lYUm9JR1E5SW0weE9TQXhNQzAwSURRaUlDOCtDaUFnUEhCaGRHZ2daRDBpYlRFMUlERXdJRFFnTkNJZ0x6NEtQQzl6ZG1jK0NnPT0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2xpc3QteFxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IExpc3RYID0gY3JlYXRlTHVjaWRlSWNvbignbGlzdC14JywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IExpc3RYO1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdNMyAxMmguMDEnLCBrZXk6ICdubHoyM2snIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMyAxOGguMDEnLCBrZXk6ICcxdHRhM2onIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMyA2aC4wMScsIGtleTogJzFycXR6YScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ004IDEyaDEzJywga2V5OiAnMXphN3phJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTggMThoMTMnLCBrZXk6ICcxbHg2bjMnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNOCA2aDEzJywga2V5OiAnaWszdmtqJyB9XSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBMaXN0XG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NeUF4TW1ndU1ERWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRUTWdNVGhvTGpBeElpQXZQZ29nSUR4d1lYUm9JR1E5SWsweklEWm9MakF4SWlBdlBnb2dJRHh3WVhSb0lHUTlJazA0SURFeWFERXpJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMDRJREU0YURFeklpQXZQZ29nSUR4d1lYUm9JR1E5SWswNElEWm9NVE1pSUM4K0Nqd3ZjM1puUGdvPSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvbGlzdFxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IExpc3QgPSBjcmVhdGVMdWNpZGVJY29uKCdsaXN0JywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IExpc3Q7XG4iLCJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbWydwYXRoJywgeyBkOiAnTTIxIDEyYTkgOSAwIDEgMS02LjIxOS04LjU2Jywga2V5OiAnMTN6YWxkJyB9XV07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBMb2FkZXJDaXJjbGVcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1qRWdNVEpoT1NBNUlEQWdNU0F4TFRZdU1qRTVMVGd1TlRZaUlDOCtDand2YzNablBnbz0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2xvYWRlci1jaXJjbGVcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBMb2FkZXJDaXJjbGUgPSBjcmVhdGVMdWNpZGVJY29uKCdsb2FkZXItY2lyY2xlJywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IExvYWRlckNpcmNsZTtcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTIyIDEyYTEgMSAwIDAgMS0xMCAwIDEgMSAwIDAgMC0xMCAwJywga2V5OiAnMWx6ejE1JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTcgMjAuN2ExIDEgMCAxIDEgNS04LjcgMSAxIDAgMSAwIDUtOC42Jywga2V5OiAnMWducnBpJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTcgMy4zYTEgMSAwIDEgMSA1IDguNiAxIDEgMCAxIDAgNSA4LjYnLCBrZXk6ICd1OXl5NXEnIH1dLFxuICBbJ2NpcmNsZScsIHsgY3g6ICcxMicsIGN5OiAnMTInLCByOiAnMTAnLCBrZXk6ICcxbWdsYXknIH1dLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIExvYWRlclBpbndoZWVsXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NaklnTVRKaE1TQXhJREFnTUNBeExURXdJREFnTVNBeElEQWdNQ0F3TFRFd0lEQWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRUY2dNakF1TjJFeElERWdNQ0F4SURFZ05TMDRMamNnTVNBeElEQWdNU0F3SURVdE9DNDJJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMDNJRE11TTJFeElERWdNQ0F4SURFZ05TQTRMallnTVNBeElEQWdNU0F3SURVZ09DNDJJaUF2UGdvZ0lEeGphWEpqYkdVZ1kzZzlJakV5SWlCamVUMGlNVElpSUhJOUlqRXdJaUF2UGdvOEwzTjJaejRLKSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9sb2FkZXItcGlud2hlZWxcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBMb2FkZXJQaW53aGVlbCA9IGNyZWF0ZUx1Y2lkZUljb24oJ2xvYWRlci1waW53aGVlbCcsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBMb2FkZXJQaW53aGVlbDtcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTEyIDJ2NCcsIGtleTogJzM0MjdpYycgfV0sXG4gIFsncGF0aCcsIHsgZDogJ20xNi4yIDcuOCAyLjktMi45Jywga2V5OiAncjcwMGFvJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTE4IDEyaDQnLCBrZXk6ICd3ajl5a2gnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdtMTYuMiAxNi4yIDIuOSAyLjknLCBrZXk6ICcxYnhnNXQnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTIgMTh2NCcsIGtleTogJ2phZG12eicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ200LjkgMTkuMSAyLjktMi45Jywga2V5OiAnYndpeDlxJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTIgMTJoNCcsIGtleTogJ2owOXNpaScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ200LjkgNC45IDIuOSAyLjknLCBrZXk6ICdnaXl1ZnInIH1dLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIExvYWRlclxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTVRJZ01uWTBJaUF2UGdvZ0lEeHdZWFJvSUdROUltMHhOaTR5SURjdU9DQXlMamt0TWk0NUlpQXZQZ29nSUR4d1lYUm9JR1E5SWsweE9DQXhNbWcwSWlBdlBnb2dJRHh3WVhSb0lHUTlJbTB4Tmk0eUlERTJMaklnTWk0NUlESXVPU0lnTHo0S0lDQThjR0YwYUNCa1BTSk5NVElnTVRoMk5DSWdMejRLSUNBOGNHRjBhQ0JrUFNKdE5DNDVJREU1TGpFZ01pNDVMVEl1T1NJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTWlBeE1tZzBJaUF2UGdvZ0lEeHdZWFJvSUdROUltMDBMamtnTkM0NUlESXVPU0F5TGpraUlDOCtDand2YzNablBnbz0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2xvYWRlclxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IExvYWRlciA9IGNyZWF0ZUx1Y2lkZUljb24oJ2xvYWRlcicsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBMb2FkZXI7XG4iLCJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ00xMiAxOXYzJywga2V5OiAnbnBhMjFsJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTEyIDJ2MycsIGtleTogJ3FicXhoZicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xOC44OSAxMy4yNGE3IDcgMCAwIDAtOC4xMy04LjEzJywga2V5OiAnMXY5anJoJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTE5IDEyaDMnLCBrZXk6ICdvc3VhenInIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMiAxMmgzJywga2V5OiAnMXdycjUzJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnbTIgMiAyMCAyMCcsIGtleTogJzFvb2V3eScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ003LjA1IDcuMDVhNyA3IDAgMCAwIDkuOSA5LjknLCBrZXk6ICdyYzVsMmUnIH1dLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIExvY2F0ZU9mZlxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTVRJZ01UbDJNeUlnTHo0S0lDQThjR0YwYUNCa1BTSk5NVElnTW5ZeklpQXZQZ29nSUR4d1lYUm9JR1E5SWsweE9DNDRPU0F4TXk0eU5HRTNJRGNnTUNBd0lEQXRPQzR4TXkwNExqRXpJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHhPU0F4TW1neklpQXZQZ29nSUR4d1lYUm9JR1E5SWsweUlERXlhRE1pSUM4K0NpQWdQSEJoZEdnZ1pEMGliVElnTWlBeU1DQXlNQ0lnTHo0S0lDQThjR0YwYUNCa1BTSk5OeTR3TlNBM0xqQTFZVGNnTnlBd0lEQWdNQ0E1TGprZ09TNDVJaUF2UGdvOEwzTjJaejRLKSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9sb2NhdGUtb2ZmXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgTG9jYXRlT2ZmID0gY3JlYXRlTHVjaWRlSWNvbignbG9jYXRlLW9mZicsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBMb2NhdGVPZmY7XG4iLCJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbXG4gIFsnbGluZScsIHsgeDE6ICcyJywgeDI6ICc1JywgeTE6ICcxMicsIHkyOiAnMTInLCBrZXk6ICdidmRoMHMnIH1dLFxuICBbJ2xpbmUnLCB7IHgxOiAnMTknLCB4MjogJzIyJywgeTE6ICcxMicsIHkyOiAnMTInLCBrZXk6ICcxdGJ2NWsnIH1dLFxuICBbJ2xpbmUnLCB7IHgxOiAnMTInLCB4MjogJzEyJywgeTE6ICcyJywgeTI6ICc1Jywga2V5OiAnMTFsdTVqJyB9XSxcbiAgWydsaW5lJywgeyB4MTogJzEyJywgeDI6ICcxMicsIHkxOiAnMTknLCB5MjogJzIyJywga2V5OiAneDN2cjV2JyB9XSxcbiAgWydjaXJjbGUnLCB7IGN4OiAnMTInLCBjeTogJzEyJywgcjogJzcnLCBrZXk6ICdmaW05bnAnIH1dLFxuICBbJ2NpcmNsZScsIHsgY3g6ICcxMicsIGN5OiAnMTInLCByOiAnMycsIGtleTogJzF2N3pyZCcgfV0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgTG9jYXRlRml4ZWRcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGJHbHVaU0I0TVQwaU1pSWdlREk5SWpVaUlIa3hQU0l4TWlJZ2VUSTlJakV5SWlBdlBnb2dJRHhzYVc1bElIZ3hQU0l4T1NJZ2VESTlJakl5SWlCNU1UMGlNVElpSUhreVBTSXhNaUlnTHo0S0lDQThiR2x1WlNCNE1UMGlNVElpSUhneVBTSXhNaUlnZVRFOUlqSWlJSGt5UFNJMUlpQXZQZ29nSUR4c2FXNWxJSGd4UFNJeE1pSWdlREk5SWpFeUlpQjVNVDBpTVRraUlIa3lQU0l5TWlJZ0x6NEtJQ0E4WTJseVkyeGxJR040UFNJeE1pSWdZM2s5SWpFeUlpQnlQU0kzSWlBdlBnb2dJRHhqYVhKamJHVWdZM2c5SWpFeUlpQmplVDBpTVRJaUlISTlJak1pSUM4K0Nqd3ZjM1puUGdvPSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvbG9jYXRlLWZpeGVkXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgTG9jYXRlRml4ZWQgPSBjcmVhdGVMdWNpZGVJY29uKCdsb2NhdGUtZml4ZWQnLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgTG9jYXRlRml4ZWQ7XG4iLCJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbXG4gIFsnbGluZScsIHsgeDE6ICcyJywgeDI6ICc1JywgeTE6ICcxMicsIHkyOiAnMTInLCBrZXk6ICdidmRoMHMnIH1dLFxuICBbJ2xpbmUnLCB7IHgxOiAnMTknLCB4MjogJzIyJywgeTE6ICcxMicsIHkyOiAnMTInLCBrZXk6ICcxdGJ2NWsnIH1dLFxuICBbJ2xpbmUnLCB7IHgxOiAnMTInLCB4MjogJzEyJywgeTE6ICcyJywgeTI6ICc1Jywga2V5OiAnMTFsdTVqJyB9XSxcbiAgWydsaW5lJywgeyB4MTogJzEyJywgeDI6ICcxMicsIHkxOiAnMTknLCB5MjogJzIyJywga2V5OiAneDN2cjV2JyB9XSxcbiAgWydjaXJjbGUnLCB7IGN4OiAnMTInLCBjeTogJzEyJywgcjogJzcnLCBrZXk6ICdmaW05bnAnIH1dLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIExvY2F0ZVxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4YkdsdVpTQjRNVDBpTWlJZ2VESTlJalVpSUhreFBTSXhNaUlnZVRJOUlqRXlJaUF2UGdvZ0lEeHNhVzVsSUhneFBTSXhPU0lnZURJOUlqSXlJaUI1TVQwaU1USWlJSGt5UFNJeE1pSWdMejRLSUNBOGJHbHVaU0I0TVQwaU1USWlJSGd5UFNJeE1pSWdlVEU5SWpJaUlIa3lQU0kxSWlBdlBnb2dJRHhzYVc1bElIZ3hQU0l4TWlJZ2VESTlJakV5SWlCNU1UMGlNVGtpSUhreVBTSXlNaUlnTHo0S0lDQThZMmx5WTJ4bElHTjRQU0l4TWlJZ1kzazlJakV5SWlCeVBTSTNJaUF2UGdvOEwzTjJaejRLKSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9sb2NhdGVcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBMb2NhdGUgPSBjcmVhdGVMdWNpZGVJY29uKCdsb2NhdGUnLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgTG9jYXRlO1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdNMTcuOTcgOS4zMDRBOCA4IDAgMCAwIDIgMTBjMCA0LjY5IDQuODg3IDkuNTYyIDcuMDIyIDExLjQ2OCcsIGtleTogJzFmYWhwMycgfV0sXG4gIFtcbiAgICAncGF0aCcsXG4gICAge1xuICAgICAgZDogJ00yMS4zNzggMTYuNjI2YTEgMSAwIDAgMC0zLjAwNC0zLjAwNGwtNC4wMSA0LjAxMmEyIDIgMCAwIDAtLjUwNi44NTRsLS44MzcgMi44N2EuNS41IDAgMCAwIC42Mi42MmwyLjg3LS44MzdhMiAyIDAgMCAwIC44NTQtLjUwNnonLFxuICAgICAga2V5OiAnMTgxN3lzJyxcbiAgICB9LFxuICBdLFxuICBbJ2NpcmNsZScsIHsgY3g6ICcxMCcsIGN5OiAnMTAnLCByOiAnMycsIGtleTogJzFuczd2MScgfV0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgTG9jYXRpb25FZGl0XG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NVGN1T1RjZ09TNHpNRFJCT0NBNElEQWdNQ0F3SURJZ01UQmpNQ0EwTGpZNUlEUXVPRGczSURrdU5UWXlJRGN1TURJeUlERXhMalEyT0NJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTWpFdU16YzRJREUyTGpZeU5tRXhJREVnTUNBd0lEQXRNeTR3TURRdE15NHdNRFJzTFRRdU1ERWdOQzR3TVRKaE1pQXlJREFnTUNBd0xTNDFNRFl1T0RVMGJDMHVPRE0zSURJdU9EZGhMalV1TlNBd0lEQWdNQ0F1TmpJdU5qSnNNaTQ0TnkwdU9ETTNZVElnTWlBd0lEQWdNQ0F1T0RVMExTNDFNRFo2SWlBdlBnb2dJRHhqYVhKamJHVWdZM2c5SWpFd0lpQmplVDBpTVRBaUlISTlJak1pSUM4K0Nqd3ZjM1puUGdvPSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvbG9jYXRpb24tZWRpdFxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IExvY2F0aW9uRWRpdCA9IGNyZWF0ZUx1Y2lkZUljb24oJ2xvY2F0aW9uLWVkaXQnLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgTG9jYXRpb25FZGl0O1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbJ2NpcmNsZScsIHsgY3g6ICcxMicsIGN5OiAnMTYnLCByOiAnMScsIGtleTogJzFhdTBkaicgfV0sXG4gIFsncmVjdCcsIHsgd2lkdGg6ICcxOCcsIGhlaWdodDogJzEyJywgeDogJzMnLCB5OiAnMTAnLCByeDogJzInLCBrZXk6ICdsMHR6dTMnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNNyAxMFY3YTUgNSAwIDAgMSA5LjMzLTIuNScsIGtleTogJ2NhcjViNycgfV0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgTG9ja0tleWhvbGVPcGVuXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThZMmx5WTJ4bElHTjRQU0l4TWlJZ1kzazlJakUySWlCeVBTSXhJaUF2UGdvZ0lEeHlaV04wSUhkcFpIUm9QU0l4T0NJZ2FHVnBaMmgwUFNJeE1pSWdlRDBpTXlJZ2VUMGlNVEFpSUhKNFBTSXlJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMDNJREV3VmpkaE5TQTFJREFnTUNBeElEa3VNek10TWk0MUlpQXZQZ284TDNOMlp6NEspIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2xvY2sta2V5aG9sZS1vcGVuXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgTG9ja0tleWhvbGVPcGVuID0gY3JlYXRlTHVjaWRlSWNvbignbG9jay1rZXlob2xlLW9wZW4nLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgTG9ja0tleWhvbGVPcGVuO1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbJ2NpcmNsZScsIHsgY3g6ICcxMicsIGN5OiAnMTYnLCByOiAnMScsIGtleTogJzFhdTBkaicgfV0sXG4gIFsncmVjdCcsIHsgeDogJzMnLCB5OiAnMTAnLCB3aWR0aDogJzE4JywgaGVpZ2h0OiAnMTInLCByeDogJzInLCBrZXk6ICc2czhlY3InIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNNyAxMFY3YTUgNSAwIDAgMSAxMCAwdjMnLCBrZXk6ICcxcHFpMTEnIH1dLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIExvY2tLZXlob2xlXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThZMmx5WTJ4bElHTjRQU0l4TWlJZ1kzazlJakUySWlCeVBTSXhJaUF2UGdvZ0lEeHlaV04wSUhnOUlqTWlJSGs5SWpFd0lpQjNhV1IwYUQwaU1UZ2lJR2hsYVdkb2REMGlNVElpSUhKNFBTSXlJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMDNJREV3VmpkaE5TQTFJREFnTUNBeElERXdJREIyTXlJZ0x6NEtQQzl6ZG1jK0NnPT0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2xvY2sta2V5aG9sZVxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IExvY2tLZXlob2xlID0gY3JlYXRlTHVjaWRlSWNvbignbG9jay1rZXlob2xlJywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IExvY2tLZXlob2xlO1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbJ3JlY3QnLCB7IHdpZHRoOiAnMTgnLCBoZWlnaHQ6ICcxMScsIHg6ICczJywgeTogJzExJywgcng6ICcyJywgcnk6ICcyJywga2V5OiAnMXc0ZXcxJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTcgMTFWN2E1IDUgMCAwIDEgOS45LTEnLCBrZXk6ICcxbW04dzgnIH1dLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIExvY2tPcGVuXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjbVZqZENCM2FXUjBhRDBpTVRnaUlHaGxhV2RvZEQwaU1URWlJSGc5SWpNaUlIazlJakV4SWlCeWVEMGlNaUlnY25rOUlqSWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRUY2dNVEZXTjJFMUlEVWdNQ0F3SURFZ09TNDVMVEVpSUM4K0Nqd3ZjM1puUGdvPSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvbG9jay1vcGVuXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgTG9ja09wZW4gPSBjcmVhdGVMdWNpZGVJY29uKCdsb2NrLW9wZW4nLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgTG9ja09wZW47XG4iLCJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ20xMCAxNyA1LTUtNS01Jywga2V5OiAnMWJzb3AzJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTE1IDEySDMnLCBrZXk6ICc2ams3MHInIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTUgM2g0YTIgMiAwIDAgMSAyIDJ2MTRhMiAyIDAgMCAxLTIgMmgtNCcsIGtleTogJ3U1M3M2cicgfV0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgTG9nSW5cbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKdE1UQWdNVGNnTlMwMUxUVXROU0lnTHo0S0lDQThjR0YwYUNCa1BTSk5NVFVnTVRKSU15SWdMejRLSUNBOGNHRjBhQ0JrUFNKTk1UVWdNMmcwWVRJZ01pQXdJREFnTVNBeUlESjJNVFJoTWlBeUlEQWdNQ0F4TFRJZ01tZ3ROQ0lnTHo0S1BDOXpkbWMrQ2c9PSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvbG9nLWluXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgTG9nSW4gPSBjcmVhdGVMdWNpZGVJY29uKCdsb2ctaW4nLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgTG9nSW47XG4iLCJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbXG4gIFsncmVjdCcsIHsgd2lkdGg6ICcxOCcsIGhlaWdodDogJzExJywgeDogJzMnLCB5OiAnMTEnLCByeDogJzInLCByeTogJzInLCBrZXk6ICcxdzRldzEnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNNyAxMVY3YTUgNSAwIDAgMSAxMCAwdjQnLCBrZXk6ICdmd3Ztem0nIH1dLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIExvY2tcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNtVmpkQ0IzYVdSMGFEMGlNVGdpSUdobGFXZG9kRDBpTVRFaUlIZzlJak1pSUhrOUlqRXhJaUJ5ZUQwaU1pSWdjbms5SWpJaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRjZ01URldOMkUxSURVZ01DQXdJREVnTVRBZ01IWTBJaUF2UGdvOEwzTjJaejRLKSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9sb2NrXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgTG9jayA9IGNyZWF0ZUx1Y2lkZUljb24oJ2xvY2snLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgTG9jaztcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnbTE2IDE3IDUtNS01LTUnLCBrZXk6ICcxYmppMmgnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMjEgMTJIOScsIGtleTogJ2RuMW05MicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ005IDIxSDVhMiAyIDAgMCAxLTItMlY1YTIgMiAwIDAgMSAyLTJoNCcsIGtleTogJzF1ZjNycycgfV0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgTG9nT3V0XG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSnRNVFlnTVRjZ05TMDFMVFV0TlNJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTWpFZ01USklPU0lnTHo0S0lDQThjR0YwYUNCa1BTSk5PU0F5TVVnMVlUSWdNaUF3SURBZ01TMHlMVEpXTldFeUlESWdNQ0F3SURFZ01pMHlhRFFpSUM4K0Nqd3ZjM1puUGdvPSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvbG9nLW91dFxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IExvZ091dCA9IGNyZWF0ZUx1Y2lkZUljb24oJ2xvZy1vdXQnLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgTG9nT3V0O1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdNMTMgMTJoOCcsIGtleTogJ2g5OHpseScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xMyAxOGg4Jywga2V5OiAnb2Uwdm00JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTEzIDZoOCcsIGtleTogJzE1c2c1NycgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00zIDEyaDEnLCBrZXk6ICdscDN5ZjInIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMyAxOGgxJywga2V5OiAnMWVpd3l5JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTMgNmgxJywga2V5OiAncmd4YTk3JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTggMTJoMScsIGtleTogJzFjb24wMCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ004IDE4aDEnLCBrZXk6ICcxM3drMTInIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNOCA2aDEnLCBrZXk6ICd0bjZta2cnIH1dLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIExvZ3NcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1UTWdNVEpvT0NJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTVRNZ01UaG9PQ0lnTHo0S0lDQThjR0YwYUNCa1BTSk5NVE1nTm1nNElpQXZQZ29nSUR4d1lYUm9JR1E5SWsweklERXlhREVpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVE1nTVRob01TSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk15QTJhREVpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVGdnTVRKb01TSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk9DQXhPR2d4SWlBdlBnb2dJRHh3WVhSb0lHUTlJazA0SURab01TSWdMejRLUEM5emRtYytDZz09KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9sb2dzXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgTG9ncyA9IGNyZWF0ZUx1Y2lkZUljb24oJ2xvZ3MnLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgTG9ncztcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgWydjaXJjbGUnLCB7IGN4OiAnMTEnLCBjeTogJzExJywgcjogJzgnLCBrZXk6ICc0ZWo5N3UnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdtMjEgMjEtNC4zLTQuMycsIGtleTogJzFxaWUzcScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xMSAxMWEyIDIgMCAwIDAgNCAwIDQgNCAwIDAgMC04IDAgNiA2IDAgMCAwIDEyIDAnLCBrZXk6ICcxMDdnd3knIH1dLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIExvbGxpcG9wXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThZMmx5WTJ4bElHTjRQU0l4TVNJZ1kzazlJakV4SWlCeVBTSTRJaUF2UGdvZ0lEeHdZWFJvSUdROUltMHlNU0F5TVMwMExqTXROQzR6SWlBdlBnb2dJRHh3WVhSb0lHUTlJazB4TVNBeE1XRXlJRElnTUNBd0lEQWdOQ0F3SURRZ05DQXdJREFnTUMwNElEQWdOaUEySURBZ01DQXdJREV5SURBaUlDOCtDand2YzNablBnbz0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2xvbGxpcG9wXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgTG9sbGlwb3AgPSBjcmVhdGVMdWNpZGVJY29uKCdsb2xsaXBvcCcsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBMb2xsaXBvcDtcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgW1xuICAgICdwYXRoJyxcbiAgICB7IGQ6ICdNNiAyMGEyIDIgMCAwIDEtMi0yVjhhMiAyIDAgMCAxIDItMmgxMmEyIDIgMCAwIDEgMiAydjEwYTIgMiAwIDAgMS0yIDInLCBrZXk6ICcxbTU3amcnIH0sXG4gIF0sXG4gIFsncGF0aCcsIHsgZDogJ004IDE4VjRhMiAyIDAgMCAxIDItMmg0YTIgMiAwIDAgMSAyIDJ2MTQnLCBrZXk6ICcxbDk5Z2MnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTAgMjBoNCcsIGtleTogJ25pMndhdycgfV0sXG4gIFsnY2lyY2xlJywgeyBjeDogJzE2JywgY3k6ICcyMCcsIHI6ICcyJywga2V5OiAnMXZpZnZnJyB9XSxcbiAgWydjaXJjbGUnLCB7IGN4OiAnOCcsIGN5OiAnMjAnLCByOiAnMicsIGtleTogJ2Nra3I1bScgfV0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgTHVnZ2FnZVxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTmlBeU1HRXlJRElnTUNBd0lERXRNaTB5VmpoaE1pQXlJREFnTUNBeElESXRNbWd4TW1FeUlESWdNQ0F3SURFZ01pQXlkakV3WVRJZ01pQXdJREFnTVMweUlESWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRUZ2dNVGhXTkdFeUlESWdNQ0F3SURFZ01pMHlhRFJoTWlBeUlEQWdNQ0F4SURJZ01uWXhOQ0lnTHo0S0lDQThjR0YwYUNCa1BTSk5NVEFnTWpCb05DSWdMejRLSUNBOFkybHlZMnhsSUdONFBTSXhOaUlnWTNrOUlqSXdJaUJ5UFNJeUlpQXZQZ29nSUR4amFYSmpiR1VnWTNnOUlqZ2lJR041UFNJeU1DSWdjajBpTWlJZ0x6NEtQQzl6ZG1jK0NnPT0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2x1Z2dhZ2VcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBMdWdnYWdlID0gY3JlYXRlTHVjaWRlSWNvbignbHVnZ2FnZScsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBMdWdnYWdlO1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbXG4gICAgJ3BhdGgnLFxuICAgIHtcbiAgICAgIGQ6ICdtNiAxNS00LTQgNi43NS02Ljc3YTcuNzkgNy43OSAwIDAgMSAxMSAxMUwxMyAyMmwtNC00IDYuMzktNi4zNmEyLjE0IDIuMTQgMCAwIDAtMy0zTDYgMTUnLFxuICAgICAga2V5OiAnMWkzbGh3JyxcbiAgICB9LFxuICBdLFxuICBbJ3BhdGgnLCB7IGQ6ICdtNSA4IDQgNCcsIGtleTogJ2o2a2o3ZScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ20xMiAxNSA0IDQnLCBrZXk6ICdsbmFjMjgnIH1dLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIE1hZ25ldFxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0p0TmlBeE5TMDBMVFFnTmk0M05TMDJMamMzWVRjdU56a2dOeTQzT1NBd0lEQWdNU0F4TVNBeE1Vd3hNeUF5TW13dE5DMDBJRFl1TXprdE5pNHpObUV5TGpFMElESXVNVFFnTUNBd0lEQXRNeTB6VERZZ01UVWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaWJUVWdPQ0EwSURRaUlDOCtDaUFnUEhCaGRHZ2daRDBpYlRFeUlERTFJRFFnTkNJZ0x6NEtQQzl6ZG1jK0NnPT0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL21hZ25ldFxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IE1hZ25ldCA9IGNyZWF0ZUx1Y2lkZUljb24oJ21hZ25ldCcsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBNYWduZXQ7XG4iLCJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ00yMiAxM1Y2YTIgMiAwIDAgMC0yLTJINGEyIDIgMCAwIDAtMiAydjEyYzAgMS4xLjkgMiAyIDJoOCcsIGtleTogJzEyamtmOCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ20yMiA3LTguOTcgNS43YTEuOTQgMS45NCAwIDAgMS0yLjA2IDBMMiA3Jywga2V5OiAnMW9jcmczJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnbTE2IDE5IDIgMiA0LTQnLCBrZXk6ICcxYjE0bTYnIH1dLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIE1haWxDaGVja1xuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTWpJZ01UTldObUV5SURJZ01DQXdJREF0TWkweVNEUmhNaUF5SURBZ01DQXdMVElnTW5ZeE1tTXdJREV1TVM0NUlESWdNaUF5YURnaUlDOCtDaUFnUEhCaGRHZ2daRDBpYlRJeUlEY3RPQzQ1TnlBMUxqZGhNUzQ1TkNBeExqazBJREFnTUNBeExUSXVNRFlnTUV3eUlEY2lJQzgrQ2lBZ1BIQmhkR2dnWkQwaWJURTJJREU1SURJZ01pQTBMVFFpSUM4K0Nqd3ZjM1puUGdvPSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvbWFpbC1jaGVja1xuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IE1haWxDaGVjayA9IGNyZWF0ZUx1Y2lkZUljb24oJ21haWwtY2hlY2snLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgTWFpbENoZWNrO1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdNMjIgMTVWNmEyIDIgMCAwIDAtMi0ySDRhMiAyIDAgMCAwLTIgMnYxMmMwIDEuMS45IDIgMiAyaDgnLCBrZXk6ICdmdXhia3YnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdtMjIgNy04Ljk3IDUuN2ExLjk0IDEuOTQgMCAwIDEtMi4wNiAwTDIgNycsIGtleTogJzFvY3JnMycgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xNiAxOWg2Jywga2V5OiAneHdnMzFpJyB9XSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBNYWlsTWludXNcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1qSWdNVFZXTm1FeUlESWdNQ0F3SURBdE1pMHlTRFJoTWlBeUlEQWdNQ0F3TFRJZ01uWXhNbU13SURFdU1TNDVJRElnTWlBeWFEZ2lJQzgrQ2lBZ1BIQmhkR2dnWkQwaWJUSXlJRGN0T0M0NU55QTFMamRoTVM0NU5DQXhMamswSURBZ01DQXhMVEl1TURZZ01Fd3lJRGNpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVEUySURFNWFEWWlJQzgrQ2p3dmMzWm5QZ289KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9tYWlsLW1pbnVzXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgTWFpbE1pbnVzID0gY3JlYXRlTHVjaWRlSWNvbignbWFpbC1taW51cycsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBNYWlsTWludXM7XG4iLCJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbXG4gIFtcbiAgICAncGF0aCcsXG4gICAge1xuICAgICAgZDogJ00yMS4yIDguNGMuNS4zOC44Ljk3LjggMS42djEwYTIgMiAwIDAgMS0yIDJINGEyIDIgMCAwIDEtMi0yVjEwYTIgMiAwIDAgMSAuOC0xLjZsOC02YTIgMiAwIDAgMSAyLjQgMGw4IDZaJyxcbiAgICAgIGtleTogJzFqaHdsOCcsXG4gICAgfSxcbiAgXSxcbiAgWydwYXRoJywgeyBkOiAnbTIyIDEwLTguOTcgNS43YTEuOTQgMS45NCAwIDAgMS0yLjA2IDBMMiAxMCcsIGtleTogJzFxZmxkNycgfV0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgTWFpbE9wZW5cbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1qRXVNaUE0TGpSakxqVXVNemd1T0M0NU55NDRJREV1Tm5ZeE1HRXlJRElnTUNBd0lERXRNaUF5U0RSaE1pQXlJREFnTUNBeExUSXRNbFl4TUdFeUlESWdNQ0F3SURFZ0xqZ3RNUzQyYkRndE5tRXlJRElnTUNBd0lERWdNaTQwSURCc09DQTJXaUlnTHo0S0lDQThjR0YwYUNCa1BTSnRNaklnTVRBdE9DNDVOeUExTGpkaE1TNDVOQ0F4TGprMElEQWdNQ0F4TFRJdU1EWWdNRXd5SURFd0lpQXZQZ284TDNOMlp6NEspIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL21haWwtb3BlblxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IE1haWxPcGVuID0gY3JlYXRlTHVjaWRlSWNvbignbWFpbC1vcGVuJywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IE1haWxPcGVuO1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdNMjIgMTNWNmEyIDIgMCAwIDAtMi0ySDRhMiAyIDAgMCAwLTIgMnYxMmMwIDEuMS45IDIgMiAyaDgnLCBrZXk6ICcxMmprZjgnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdtMjIgNy04Ljk3IDUuN2ExLjk0IDEuOTQgMCAwIDEtMi4wNiAwTDIgNycsIGtleTogJzFvY3JnMycgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xOSAxNnY2Jywga2V5OiAndGRkdDNzJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTE2IDE5aDYnLCBrZXk6ICd4d2czMWknIH1dLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIE1haWxQbHVzXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NaklnTVROV05tRXlJRElnTUNBd0lEQXRNaTB5U0RSaE1pQXlJREFnTUNBd0xUSWdNbll4TW1Nd0lERXVNUzQ1SURJZ01pQXlhRGdpSUM4K0NpQWdQSEJoZEdnZ1pEMGliVEl5SURjdE9DNDVOeUExTGpkaE1TNDVOQ0F4TGprMElEQWdNQ0F4TFRJdU1EWWdNRXd5SURjaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRFNUlERTJkallpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVEUySURFNWFEWWlJQzgrQ2p3dmMzWm5QZ289KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9tYWlsLXBsdXNcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBNYWlsUGx1cyA9IGNyZWF0ZUx1Y2lkZUljb24oJ21haWwtcGx1cycsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBNYWlsUGx1cztcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTIyIDEwLjVWNmEyIDIgMCAwIDAtMi0ySDRhMiAyIDAgMCAwLTIgMnYxMmMwIDEuMS45IDIgMiAyaDEyLjUnLCBrZXk6ICdlNjF6b2gnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdtMjIgNy04Ljk3IDUuN2ExLjk0IDEuOTQgMCAwIDEtMi4wNiAwTDIgNycsIGtleTogJzFvY3JnMycgfV0sXG4gIFtcbiAgICAncGF0aCcsXG4gICAge1xuICAgICAgZDogJ00xOCAxNS4yOGMuMi0uNC41LS44LjktMWEyLjEgMi4xIDAgMCAxIDIuNi40Yy4zLjQuNS44LjUgMS4zIDAgMS4zLTIgMi0yIDInLFxuICAgICAga2V5OiAnN3o5cnhiJyxcbiAgICB9LFxuICBdLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMjAgMjJ2LjAxJywga2V5OiAnMTJiZ242JyB9XSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBNYWlsUXVlc3Rpb25NYXJrXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NaklnTVRBdU5WWTJZVElnTWlBd0lEQWdNQzB5TFRKSU5HRXlJRElnTUNBd0lEQXRNaUF5ZGpFeVl6QWdNUzR4TGprZ01pQXlJREpvTVRJdU5TSWdMejRLSUNBOGNHRjBhQ0JrUFNKdE1qSWdOeTA0TGprM0lEVXVOMkV4TGprMElERXVPVFFnTUNBd0lERXRNaTR3TmlBd1RESWdOeUlnTHo0S0lDQThjR0YwYUNCa1BTSk5NVGdnTVRVdU1qaGpMakl0TGpRdU5TMHVPQzQ1TFRGaE1pNHhJREl1TVNBd0lEQWdNU0F5TGpZdU5HTXVNeTQwTGpVdU9DNDFJREV1TXlBd0lERXVNeTB5SURJdE1pQXlJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHlNQ0F5TW5ZdU1ERWlJQzgrQ2p3dmMzWm5QZ289KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9tYWlsLXF1ZXN0aW9uLW1hcmtcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBNYWlsUXVlc3Rpb25NYXJrID0gY3JlYXRlTHVjaWRlSWNvbignbWFpbC1xdWVzdGlvbi1tYXJrJywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IE1haWxRdWVzdGlvbk1hcms7XG4iLCJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ00yMiAxMi41VjZhMiAyIDAgMCAwLTItMkg0YTIgMiAwIDAgMC0yIDJ2MTJjMCAxLjEuOSAyIDIgMmg3LjUnLCBrZXk6ICd3ODBmMnYnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdtMjIgNy04Ljk3IDUuN2ExLjk0IDEuOTQgMCAwIDEtMi4wNiAwTDIgNycsIGtleTogJzFvY3JnMycgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xOCAyMWEzIDMgMCAxIDAgMC02IDMgMyAwIDAgMCAwIDZaJywga2V5OiAnOGx6dTVtJyB9XSxcbiAgWydjaXJjbGUnLCB7IGN4OiAnMTgnLCBjeTogJzE4JywgcjogJzMnLCBrZXk6ICcxeGt3dDAnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdtMjIgMjItMS41LTEuNScsIGtleTogJzF4ODNrNCcgfV0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgTWFpbFNlYXJjaFxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTWpJZ01USXVOVlkyWVRJZ01pQXdJREFnTUMweUxUSklOR0V5SURJZ01DQXdJREF0TWlBeWRqRXlZekFnTVM0eExqa2dNaUF5SURKb055NDFJaUF2UGdvZ0lEeHdZWFJvSUdROUltMHlNaUEzTFRndU9UY2dOUzQzWVRFdU9UUWdNUzQ1TkNBd0lEQWdNUzB5TGpBMklEQk1NaUEzSWlBdlBnb2dJRHh3WVhSb0lHUTlJazB4T0NBeU1XRXpJRE1nTUNBeElEQWdNQzAySURNZ015QXdJREFnTUNBd0lEWmFJaUF2UGdvZ0lEeGphWEpqYkdVZ1kzZzlJakU0SWlCamVUMGlNVGdpSUhJOUlqTWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaWJUSXlJREl5TFRFdU5TMHhMalVpSUM4K0Nqd3ZjM1puUGdvPSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvbWFpbC1zZWFyY2hcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBNYWlsU2VhcmNoID0gY3JlYXRlTHVjaWRlSWNvbignbWFpbC1zZWFyY2gnLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgTWFpbFNlYXJjaDtcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTIyIDEwLjVWNmEyIDIgMCAwIDAtMi0ySDRhMiAyIDAgMCAwLTIgMnYxMmMwIDEuMS45IDIgMiAyaDEyLjUnLCBrZXk6ICdlNjF6b2gnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdtMjIgNy04Ljk3IDUuN2ExLjk0IDEuOTQgMCAwIDEtMi4wNiAwTDIgNycsIGtleTogJzFvY3JnMycgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00yMCAxNHY0Jywga2V5OiAnMWhtNzQ0JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTIwIDIydi4wMScsIGtleTogJzEyYmduNicgfV0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgTWFpbFdhcm5pbmdcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1qSWdNVEF1TlZZMllUSWdNaUF3SURBZ01DMHlMVEpJTkdFeUlESWdNQ0F3SURBdE1pQXlkakV5WXpBZ01TNHhMamtnTWlBeUlESm9NVEl1TlNJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0p0TWpJZ055MDRMamszSURVdU4yRXhMamswSURFdU9UUWdNQ0F3SURFdE1pNHdOaUF3VERJZ055SWdMejRLSUNBOGNHRjBhQ0JrUFNKTk1qQWdNVFIyTkNJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTWpBZ01qSjJMakF4SWlBdlBnbzhMM04yWno0SykgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvbWFpbC13YXJuaW5nXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgTWFpbFdhcm5pbmcgPSBjcmVhdGVMdWNpZGVJY29uKCdtYWlsLXdhcm5pbmcnLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgTWFpbFdhcm5pbmc7XG4iLCJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ00yMiAxM1Y2YTIgMiAwIDAgMC0yLTJINGEyIDIgMCAwIDAtMiAydjEyYzAgMS4xLjkgMiAyIDJoOScsIGtleTogJzFqOXZvZycgfV0sXG4gIFsncGF0aCcsIHsgZDogJ20yMiA3LTguOTcgNS43YTEuOTQgMS45NCAwIDAgMS0yLjA2IDBMMiA3Jywga2V5OiAnMW9jcmczJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnbTE3IDE3IDQgNCcsIGtleTogJzFiMzUyMycgfV0sXG4gIFsncGF0aCcsIHsgZDogJ20yMSAxNy00IDQnLCBrZXk6ICd1aW55bnonIH1dLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIE1haWxYXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NaklnTVROV05tRXlJRElnTUNBd0lEQXRNaTB5U0RSaE1pQXlJREFnTUNBd0xUSWdNbll4TW1Nd0lERXVNUzQ1SURJZ01pQXlhRGtpSUM4K0NpQWdQSEJoZEdnZ1pEMGliVEl5SURjdE9DNDVOeUExTGpkaE1TNDVOQ0F4TGprMElEQWdNQ0F4TFRJdU1EWWdNRXd5SURjaUlDOCtDaUFnUEhCaGRHZ2daRDBpYlRFM0lERTNJRFFnTkNJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0p0TWpFZ01UY3ROQ0EwSWlBdlBnbzhMM04yWno0SykgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvbWFpbC14XG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgTWFpbFggPSBjcmVhdGVMdWNpZGVJY29uKCdtYWlsLXgnLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgTWFpbFg7XG4iLCJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ20yMiA3LTguOTkxIDUuNzI3YTIgMiAwIDAgMS0yLjAwOSAwTDIgNycsIGtleTogJzEzMnE3cScgfV0sXG4gIFsncmVjdCcsIHsgeDogJzInLCB5OiAnNCcsIHdpZHRoOiAnMjAnLCBoZWlnaHQ6ICcxNicsIHJ4OiAnMicsIGtleTogJ2l6eGxhbycgfV0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgTWFpbFxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0p0TWpJZ055MDRMams1TVNBMUxqY3lOMkV5SURJZ01DQXdJREV0TWk0d01Ea2dNRXd5SURjaUlDOCtDaUFnUEhKbFkzUWdlRDBpTWlJZ2VUMGlOQ0lnZDJsa2RHZzlJakl3SWlCb1pXbG5hSFE5SWpFMklpQnllRDBpTWlJZ0x6NEtQQzl6ZG1jK0NnPT0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL21haWxcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBNYWlsID0gY3JlYXRlTHVjaWRlSWNvbignbWFpbCcsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBNYWlsO1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbXG4gICAgJ3BhdGgnLFxuICAgIHtcbiAgICAgIGQ6ICdNMjIgMTdhMiAyIDAgMCAxLTIgMkg0YTIgMiAwIDAgMS0yLTJWOS41QzIgNyA0IDUgNi41IDVIMThjMi4yIDAgNCAxLjggNCA0djhaJyxcbiAgICAgIGtleTogJzFsYnljeCcsXG4gICAgfSxcbiAgXSxcbiAgWydwb2x5bGluZScsIHsgcG9pbnRzOiAnMTUsOSAxOCw5IDE4LDExJywga2V5OiAnMXBtOWMwJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTYuNSA1QzkgNSAxMSA3IDExIDkuNVYxN2EyIDIgMCAwIDEtMiAyJywga2V5OiAnMTVpNDU1JyB9XSxcbiAgWydsaW5lJywgeyB4MTogJzYnLCB4MjogJzcnLCB5MTogJzEwJywgeTI6ICcxMCcsIGtleTogJzFlMnNjbScgfV0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgTWFpbGJveFxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTWpJZ01UZGhNaUF5SURBZ01DQXhMVElnTWtnMFlUSWdNaUF3SURBZ01TMHlMVEpXT1M0MVF6SWdOeUEwSURVZ05pNDFJRFZJTVRoak1pNHlJREFnTkNBeExqZ2dOQ0EwZGpoYUlpQXZQZ29nSUR4d2IyeDViR2x1WlNCd2IybHVkSE05SWpFMUxEa2dNVGdzT1NBeE9Dd3hNU0lnTHo0S0lDQThjR0YwYUNCa1BTSk5OaTQxSURWRE9TQTFJREV4SURjZ01URWdPUzQxVmpFM1lUSWdNaUF3SURBZ01TMHlJRElpSUM4K0NpQWdQR3hwYm1VZ2VERTlJallpSUhneVBTSTNJaUI1TVQwaU1UQWlJSGt5UFNJeE1DSWdMejRLUEM5emRtYytDZz09KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9tYWlsYm94XG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgTWFpbGJveCA9IGNyZWF0ZUx1Y2lkZUljb24oJ21haWxib3gnLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgTWFpbGJveDtcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgWydyZWN0JywgeyB3aWR0aDogJzE2JywgaGVpZ2h0OiAnMTMnLCB4OiAnNicsIHk6ICc0Jywgcng6ICcyJywga2V5OiAnMWRycTNmJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnbTIyIDctNy4xIDMuNzhjLS41Ny4zLTEuMjMuMy0xLjggMEw2IDcnLCBrZXk6ICd4bjI1MnAnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMiA4djExYzAgMS4xLjkgMiAyIDJoMTQnLCBrZXk6ICduMTNjamknIH1dLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIE1haWxzXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjbVZqZENCM2FXUjBhRDBpTVRZaUlHaGxhV2RvZEQwaU1UTWlJSGc5SWpZaUlIazlJalFpSUhKNFBTSXlJaUF2UGdvZ0lEeHdZWFJvSUdROUltMHlNaUEzTFRjdU1TQXpMamM0WXkwdU5UY3VNeTB4TGpJekxqTXRNUzQ0SURCTU5pQTNJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHlJRGgyTVRGak1DQXhMakV1T1NBeUlESWdNbWd4TkNJZ0x6NEtQQzl6ZG1jK0NnPT0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL21haWxzXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgTWFpbHMgPSBjcmVhdGVMdWNpZGVJY29uKCdtYWlscycsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBNYWlscztcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgW1xuICAgICdwYXRoJyxcbiAgICB7XG4gICAgICBkOiAnTTIwIDEwYzAgNC45OTMtNS41MzkgMTAuMTkzLTcuMzk5IDExLjc5OWExIDEgMCAwIDEtMS4yMDIgMEM5LjUzOSAyMC4xOTMgNCAxNC45OTMgNCAxMGE4IDggMCAwIDEgMTYgMCcsXG4gICAgICBrZXk6ICcxcjBmMHonLFxuICAgIH0sXG4gIF0sXG4gIFsncGF0aCcsIHsgZDogJ205IDEwIDIgMiA0LTQnLCBrZXk6ICcxZ25xejQnIH1dLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIE1hcFBpbkNoZWNrSW5zaWRlXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NakFnTVRCak1DQTBMams1TXkwMUxqVXpPU0F4TUM0eE9UTXROeTR6T1RrZ01URXVOems1WVRFZ01TQXdJREFnTVMweExqSXdNaUF3UXprdU5UTTVJREl3TGpFNU15QTBJREUwTGprNU15QTBJREV3WVRnZ09DQXdJREFnTVNBeE5pQXdJaUF2UGdvZ0lEeHdZWFJvSUdROUltMDVJREV3SURJZ01pQTBMVFFpSUM4K0Nqd3ZjM1puUGdvPSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvbWFwLXBpbi1jaGVjay1pbnNpZGVcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBNYXBQaW5DaGVja0luc2lkZSA9IGNyZWF0ZUx1Y2lkZUljb24oJ21hcC1waW4tY2hlY2staW5zaWRlJywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IE1hcFBpbkNoZWNrSW5zaWRlO1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbXG4gICAgJ3BhdGgnLFxuICAgIHtcbiAgICAgIGQ6ICdNMTkuNDMgMTIuOTM1Yy4zNTctLjk2Ny41Ny0xLjk1NS41Ny0yLjkzNWE4IDggMCAwIDAtMTYgMGMwIDQuOTkzIDUuNTM5IDEwLjE5MyA3LjM5OSAxMS43OTlhMSAxIDAgMCAwIDEuMjAyIDAgMzIuMTk3IDMyLjE5NyAwIDAgMCAuODEzLS43MjgnLFxuICAgICAga2V5OiAnMWRxNjFkJyxcbiAgICB9LFxuICBdLFxuICBbJ2NpcmNsZScsIHsgY3g6ICcxMicsIGN5OiAnMTAnLCByOiAnMycsIGtleTogJ2lscWhyNycgfV0sXG4gIFsncGF0aCcsIHsgZDogJ20xNiAxOCAyIDIgNC00Jywga2V5OiAnMW1rZm1iJyB9XSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBNYXBQaW5DaGVja1xuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTVRrdU5ETWdNVEl1T1RNMVl5NHpOVGN0TGprMk55NDFOeTB4TGprMU5TNDFOeTB5TGprek5XRTRJRGdnTUNBd0lEQXRNVFlnTUdNd0lEUXVPVGt6SURVdU5UTTVJREV3TGpFNU15QTNMak01T1NBeE1TNDNPVGxoTVNBeElEQWdNQ0F3SURFdU1qQXlJREFnTXpJdU1UazNJRE15TGpFNU55QXdJREFnTUNBdU9ERXpMUzQzTWpnaUlDOCtDaUFnUEdOcGNtTnNaU0JqZUQwaU1USWlJR041UFNJeE1DSWdjajBpTXlJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0p0TVRZZ01UZ2dNaUF5SURRdE5DSWdMejRLUEM5emRtYytDZz09KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9tYXAtcGluLWNoZWNrXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgTWFwUGluQ2hlY2sgPSBjcmVhdGVMdWNpZGVJY29uKCdtYXAtcGluLWNoZWNrJywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IE1hcFBpbkNoZWNrO1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbXG4gICAgJ3BhdGgnLFxuICAgIHtcbiAgICAgIGQ6ICdNMTUgMjJhMSAxIDAgMCAxLTEtMXYtNGExIDEgMCAwIDEgLjQ0NS0uODMybDMtMmExIDEgMCAwIDEgMS4xMSAwbDMgMkExIDEgMCAwIDEgMjIgMTd2NGExIDEgMCAwIDEtMSAxeicsXG4gICAgICBrZXk6ICcxcDFyY3onLFxuICAgIH0sXG4gIF0sXG4gIFtcbiAgICAncGF0aCcsXG4gICAge1xuICAgICAgZDogJ00xOCAxMGE4IDggMCAwIDAtMTYgMGMwIDQuOTkzIDUuNTM5IDEwLjE5MyA3LjM5OSAxMS43OTlhMSAxIDAgMCAwIC42MDEuMicsXG4gICAgICBrZXk6ICdtY2JjczknLFxuICAgIH0sXG4gIF0sXG4gIFsncGF0aCcsIHsgZDogJ00xOCAyMnYtMycsIGtleTogJzF0MXVndicgfV0sXG4gIFsnY2lyY2xlJywgeyBjeDogJzEwJywgY3k6ICcxMCcsIHI6ICczJywga2V5OiAnMW5zN3YxJyB9XSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBNYXBQaW5Ib3VzZVxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTVRVZ01qSmhNU0F4SURBZ01DQXhMVEV0TVhZdE5HRXhJREVnTUNBd0lERWdMalEwTlMwdU9ETXliRE10TW1FeElERWdNQ0F3SURFZ01TNHhNU0F3YkRNZ01rRXhJREVnTUNBd0lERWdNaklnTVRkMk5HRXhJREVnTUNBd0lERXRNU0F4ZWlJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTVRnZ01UQmhPQ0E0SURBZ01DQXdMVEUySURCak1DQTBMams1TXlBMUxqVXpPU0F4TUM0eE9UTWdOeTR6T1RrZ01URXVOems1WVRFZ01TQXdJREFnTUNBdU5qQXhMaklpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVEU0SURJeWRpMHpJaUF2UGdvZ0lEeGphWEpqYkdVZ1kzZzlJakV3SWlCamVUMGlNVEFpSUhJOUlqTWlJQzgrQ2p3dmMzWm5QZ289KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9tYXAtcGluLWhvdXNlXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgTWFwUGluSG91c2UgPSBjcmVhdGVMdWNpZGVJY29uKCdtYXAtcGluLWhvdXNlJywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IE1hcFBpbkhvdXNlO1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbXG4gICAgJ3BhdGgnLFxuICAgIHtcbiAgICAgIGQ6ICdNMjAgMTBjMCA0Ljk5My01LjUzOSAxMC4xOTMtNy4zOTkgMTEuNzk5YTEgMSAwIDAgMS0xLjIwMiAwQzkuNTM5IDIwLjE5MyA0IDE0Ljk5MyA0IDEwYTggOCAwIDAgMSAxNiAwJyxcbiAgICAgIGtleTogJzFyMGYweicsXG4gICAgfSxcbiAgXSxcbiAgWydwYXRoJywgeyBkOiAnTTkgMTBoNicsIGtleTogJzlneHpzaCcgfV0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgTWFwUGluTWludXNJbnNpZGVcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1qQWdNVEJqTUNBMExqazVNeTAxTGpVek9TQXhNQzR4T1RNdE55NHpPVGtnTVRFdU56azVZVEVnTVNBd0lEQWdNUzB4TGpJd01pQXdRemt1TlRNNUlESXdMakU1TXlBMElERTBMams1TXlBMElERXdZVGdnT0NBd0lEQWdNU0F4TmlBd0lpQXZQZ29nSUR4d1lYUm9JR1E5SWswNUlERXdhRFlpSUM4K0Nqd3ZjM1puUGdvPSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvbWFwLXBpbi1taW51cy1pbnNpZGVcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBNYXBQaW5NaW51c0luc2lkZSA9IGNyZWF0ZUx1Y2lkZUljb24oJ21hcC1waW4tbWludXMtaW5zaWRlJywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IE1hcFBpbk1pbnVzSW5zaWRlO1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbXG4gICAgJ3BhdGgnLFxuICAgIHtcbiAgICAgIGQ6ICdNMTguOTc3IDE0QzE5LjYgMTIuNzAxIDIwIDExLjM0MyAyMCAxMGE4IDggMCAwIDAtMTYgMGMwIDQuOTkzIDUuNTM5IDEwLjE5MyA3LjM5OSAxMS43OTlhMSAxIDAgMCAwIDEuMjAyIDAgMzIgMzIgMCAwIDAgLjgyNC0uNzM4JyxcbiAgICAgIGtleTogJzExdXhpYScsXG4gICAgfSxcbiAgXSxcbiAgWydjaXJjbGUnLCB7IGN4OiAnMTInLCBjeTogJzEwJywgcjogJzMnLCBrZXk6ICdpbHFocjcnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTYgMThoNicsIGtleTogJzk4N2VpdicgfV0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgTWFwUGluTWludXNcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1UZ3VPVGMzSURFMFF6RTVMallnTVRJdU56QXhJREl3SURFeExqTTBNeUF5TUNBeE1HRTRJRGdnTUNBd0lEQXRNVFlnTUdNd0lEUXVPVGt6SURVdU5UTTVJREV3TGpFNU15QTNMak01T1NBeE1TNDNPVGxoTVNBeElEQWdNQ0F3SURFdU1qQXlJREFnTXpJZ016SWdNQ0F3SURBZ0xqZ3lOQzB1TnpNNElpQXZQZ29nSUR4amFYSmpiR1VnWTNnOUlqRXlJaUJqZVQwaU1UQWlJSEk5SWpNaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRFMklERTRhRFlpSUM4K0Nqd3ZjM1puUGdvPSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvbWFwLXBpbi1taW51c1xuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IE1hcFBpbk1pbnVzID0gY3JlYXRlTHVjaWRlSWNvbignbWFwLXBpbi1taW51cycsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBNYXBQaW5NaW51cztcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTEyLjc1IDcuMDlhMyAzIDAgMCAxIDIuMTYgMi4xNicsIGtleTogJzFkNHdqZCcgfV0sXG4gIFtcbiAgICAncGF0aCcsXG4gICAge1xuICAgICAgZDogJ00xNy4wNzIgMTcuMDcyYy0xLjYzNCAyLjE3LTMuNTI3IDMuOTEyLTQuNDcxIDQuNzI3YTEgMSAwIDAgMS0xLjIwMiAwQzkuNTM5IDIwLjE5MyA0IDE0Ljk5MyA0IDEwYTggOCAwIDAgMSAxLjQzMi00LjU2OCcsXG4gICAgICBrZXk6ICcxMnlpbDcnLFxuICAgIH0sXG4gIF0sXG4gIFsncGF0aCcsIHsgZDogJ20yIDIgMjAgMjAnLCBrZXk6ICcxb29ld3knIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNOC40NzUgMi44MThBOCA4IDAgMCAxIDIwIDEwYzAgMS4xODMtLjMxIDIuMzc3LS44MSAzLjUzMycsIGtleTogJ2xocmtjeicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ005LjEzIDkuMTNhMyAzIDAgMCAwIDMuNzQgMy43NCcsIGtleTogJzEzd29qZCcgfV0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgTWFwUGluT2ZmXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NVEl1TnpVZ055NHdPV0V6SURNZ01DQXdJREVnTWk0eE5pQXlMakUySWlBdlBnb2dJRHh3WVhSb0lHUTlJazB4Tnk0d056SWdNVGN1TURjeVl5MHhMall6TkNBeUxqRTNMVE11TlRJM0lETXVPVEV5TFRRdU5EY3hJRFF1TnpJM1lURWdNU0F3SURBZ01TMHhMakl3TWlBd1F6a3VOVE01SURJd0xqRTVNeUEwSURFMExqazVNeUEwSURFd1lUZ2dPQ0F3SURBZ01TQXhMalF6TWkwMExqVTJPQ0lnTHo0S0lDQThjR0YwYUNCa1BTSnRNaUF5SURJd0lESXdJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMDRMalEzTlNBeUxqZ3hPRUU0SURnZ01DQXdJREVnTWpBZ01UQmpNQ0F4TGpFNE15MHVNekVnTWk0ek56Y3RMamd4SURNdU5UTXpJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMDVMakV6SURrdU1UTmhNeUF6SURBZ01DQXdJRE11TnpRZ015NDNOQ0lnTHo0S1BDOXpkbWMrQ2c9PSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvbWFwLXBpbi1vZmZcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBNYXBQaW5PZmYgPSBjcmVhdGVMdWNpZGVJY29uKCdtYXAtcGluLW9mZicsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBNYXBQaW5PZmY7XG4iLCJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbXG4gIFtcbiAgICAncGF0aCcsXG4gICAge1xuICAgICAgZDogJ00yMCAxMGMwIDQuOTkzLTUuNTM5IDEwLjE5My03LjM5OSAxMS43OTlhMSAxIDAgMCAxLTEuMjAyIDBDOS41MzkgMjAuMTkzIDQgMTQuOTkzIDQgMTBhOCA4IDAgMCAxIDE2IDAnLFxuICAgICAga2V5OiAnMXIwZjB6JyxcbiAgICB9LFxuICBdLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTIgN3Y2Jywga2V5OiAnbHcxajQzJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTkgMTBoNicsIGtleTogJzlneHpzaCcgfV0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgTWFwUGluUGx1c0luc2lkZVxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTWpBZ01UQmpNQ0EwTGprNU15MDFMalV6T1NBeE1DNHhPVE10Tnk0ek9Ua2dNVEV1TnprNVlURWdNU0F3SURBZ01TMHhMakl3TWlBd1F6a3VOVE01SURJd0xqRTVNeUEwSURFMExqazVNeUEwSURFd1lUZ2dPQ0F3SURBZ01TQXhOaUF3SWlBdlBnb2dJRHh3WVhSb0lHUTlJazB4TWlBM2RqWWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRUa2dNVEJvTmlJZ0x6NEtQQzl6ZG1jK0NnPT0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL21hcC1waW4tcGx1cy1pbnNpZGVcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBNYXBQaW5QbHVzSW5zaWRlID0gY3JlYXRlTHVjaWRlSWNvbignbWFwLXBpbi1wbHVzLWluc2lkZScsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBNYXBQaW5QbHVzSW5zaWRlO1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbXG4gICAgJ3BhdGgnLFxuICAgIHtcbiAgICAgIGQ6ICdNMTkuOTE0IDExLjEwNUE3LjI5OCA3LjI5OCAwIDAgMCAyMCAxMGE4IDggMCAwIDAtMTYgMGMwIDQuOTkzIDUuNTM5IDEwLjE5MyA3LjM5OSAxMS43OTlhMSAxIDAgMCAwIDEuMjAyIDAgMzIgMzIgMCAwIDAgLjgyNC0uNzM4JyxcbiAgICAgIGtleTogJ2ZjZHRseScsXG4gICAgfSxcbiAgXSxcbiAgWydjaXJjbGUnLCB7IGN4OiAnMTInLCBjeTogJzEwJywgcjogJzMnLCBrZXk6ICdpbHFocjcnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTYgMThoNicsIGtleTogJzk4N2VpdicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xOSAxNXY2Jywga2V5OiAnMTBhaW9hJyB9XSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBNYXBQaW5QbHVzXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NVGt1T1RFMElERXhMakV3TlVFM0xqSTVPQ0EzTGpJNU9DQXdJREFnTUNBeU1DQXhNR0U0SURnZ01DQXdJREF0TVRZZ01HTXdJRFF1T1RreklEVXVOVE01SURFd0xqRTVNeUEzTGpNNU9TQXhNUzQzT1RsaE1TQXhJREFnTUNBd0lERXVNakF5SURBZ016SWdNeklnTUNBd0lEQWdMamd5TkMwdU56TTRJaUF2UGdvZ0lEeGphWEpqYkdVZ1kzZzlJakV5SWlCamVUMGlNVEFpSUhJOUlqTWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRURTJJREU0YURZaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRFNUlERTFkallpSUM4K0Nqd3ZjM1puUGdvPSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvbWFwLXBpbi1wbHVzXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgTWFwUGluUGx1cyA9IGNyZWF0ZUx1Y2lkZUljb24oJ21hcC1waW4tcGx1cycsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBNYXBQaW5QbHVzO1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbXG4gICAgJ3BhdGgnLFxuICAgIHtcbiAgICAgIGQ6ICdNMjAgMTBjMCA0Ljk5My01LjUzOSAxMC4xOTMtNy4zOTkgMTEuNzk5YTEgMSAwIDAgMS0xLjIwMiAwQzkuNTM5IDIwLjE5MyA0IDE0Ljk5MyA0IDEwYTggOCAwIDAgMSAxNiAwJyxcbiAgICAgIGtleTogJzFyMGYweicsXG4gICAgfSxcbiAgXSxcbiAgWydwYXRoJywgeyBkOiAnbTE0LjUgNy41LTUgNScsIGtleTogJzNsYjZpdycgfV0sXG4gIFsncGF0aCcsIHsgZDogJ205LjUgNy41IDUgNScsIGtleTogJ2tvMTM2aCcgfV0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgTWFwUGluWEluc2lkZVxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTWpBZ01UQmpNQ0EwTGprNU15MDFMalV6T1NBeE1DNHhPVE10Tnk0ek9Ua2dNVEV1TnprNVlURWdNU0F3SURBZ01TMHhMakl3TWlBd1F6a3VOVE01SURJd0xqRTVNeUEwSURFMExqazVNeUEwSURFd1lUZ2dPQ0F3SURBZ01TQXhOaUF3SWlBdlBnb2dJRHh3WVhSb0lHUTlJbTB4TkM0MUlEY3VOUzAxSURVaUlDOCtDaUFnUEhCaGRHZ2daRDBpYlRrdU5TQTNMalVnTlNBMUlpQXZQZ284TDNOMlp6NEspIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL21hcC1waW4teC1pbnNpZGVcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBNYXBQaW5YSW5zaWRlID0gY3JlYXRlTHVjaWRlSWNvbignbWFwLXBpbi14LWluc2lkZScsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBNYXBQaW5YSW5zaWRlO1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbXG4gICAgJ3BhdGgnLFxuICAgIHtcbiAgICAgIGQ6ICdNMTkuNzUyIDExLjkwMUE3Ljc4IDcuNzggMCAwIDAgMjAgMTBhOCA4IDAgMCAwLTE2IDBjMCA0Ljk5MyA1LjUzOSAxMC4xOTMgNy4zOTkgMTEuNzk5YTEgMSAwIDAgMCAxLjIwMiAwIDE5IDE5IDAgMCAwIC4wOS0uMDc3JyxcbiAgICAgIGtleTogJ3kwZXdocCcsXG4gICAgfSxcbiAgXSxcbiAgWydjaXJjbGUnLCB7IGN4OiAnMTInLCBjeTogJzEwJywgcjogJzMnLCBrZXk6ICdpbHFocjcnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdtMjEuNSAxNS41LTUgNScsIGtleTogJzExaXFueCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ20yMS41IDIwLjUtNS01Jywga2V5OiAnMWJ5bGd4JyB9XSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBNYXBQaW5YXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NVGt1TnpVeUlERXhMamt3TVVFM0xqYzRJRGN1TnpnZ01DQXdJREFnTWpBZ01UQmhPQ0E0SURBZ01DQXdMVEUySURCak1DQTBMams1TXlBMUxqVXpPU0F4TUM0eE9UTWdOeTR6T1RrZ01URXVOems1WVRFZ01TQXdJREFnTUNBeExqSXdNaUF3SURFNUlERTVJREFnTUNBd0lDNHdPUzB1TURjM0lpQXZQZ29nSUR4amFYSmpiR1VnWTNnOUlqRXlJaUJqZVQwaU1UQWlJSEk5SWpNaUlDOCtDaUFnUEhCaGRHZ2daRDBpYlRJeExqVWdNVFV1TlMwMUlEVWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaWJUSXhMalVnTWpBdU5TMDFMVFVpSUM4K0Nqd3ZjM1puUGdvPSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvbWFwLXBpbi14XG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgTWFwUGluWCA9IGNyZWF0ZUx1Y2lkZUljb24oJ21hcC1waW4teCcsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBNYXBQaW5YO1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbXG4gICAgJ3BhdGgnLFxuICAgIHtcbiAgICAgIGQ6ICdNMjAgMTBjMCA0Ljk5My01LjUzOSAxMC4xOTMtNy4zOTkgMTEuNzk5YTEgMSAwIDAgMS0xLjIwMiAwQzkuNTM5IDIwLjE5MyA0IDE0Ljk5MyA0IDEwYTggOCAwIDAgMSAxNiAwJyxcbiAgICAgIGtleTogJzFyMGYweicsXG4gICAgfSxcbiAgXSxcbiAgWydjaXJjbGUnLCB7IGN4OiAnMTInLCBjeTogJzEwJywgcjogJzMnLCBrZXk6ICdpbHFocjcnIH1dLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIE1hcFBpblxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTWpBZ01UQmpNQ0EwTGprNU15MDFMalV6T1NBeE1DNHhPVE10Tnk0ek9Ua2dNVEV1TnprNVlURWdNU0F3SURBZ01TMHhMakl3TWlBd1F6a3VOVE01SURJd0xqRTVNeUEwSURFMExqazVNeUEwSURFd1lUZ2dPQ0F3SURBZ01TQXhOaUF3SWlBdlBnb2dJRHhqYVhKamJHVWdZM2c5SWpFeUlpQmplVDBpTVRBaUlISTlJak1pSUM4K0Nqd3ZjM1puUGdvPSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvbWFwLXBpblxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IE1hcFBpbiA9IGNyZWF0ZUx1Y2lkZUljb24oJ21hcC1waW4nLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgTWFwUGluO1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbXG4gICAgJ3BhdGgnLFxuICAgIHtcbiAgICAgIGQ6ICdNMTggOGMwIDMuNjEzLTMuODY5IDcuNDI5LTUuMzkzIDguNzk1YTEgMSAwIDAgMS0xLjIxNCAwQzkuODcgMTUuNDI5IDYgMTEuNjEzIDYgOGE2IDYgMCAwIDEgMTIgMCcsXG4gICAgICBrZXk6ICcxMXUwb3onLFxuICAgIH0sXG4gIF0sXG4gIFsnY2lyY2xlJywgeyBjeDogJzEyJywgY3k6ICc4JywgcjogJzInLCBrZXk6ICcxODIyYjEnIH1dLFxuICBbXG4gICAgJ3BhdGgnLFxuICAgIHtcbiAgICAgIGQ6ICdNOC43MTQgMTRoLTMuNzFhMSAxIDAgMCAwLS45NDguNjgzbC0yLjAwNCA2QTEgMSAwIDAgMCAzIDIyaDE4YTEgMSAwIDAgMCAuOTQ4LTEuMzE2bC0yLTZhMSAxIDAgMCAwLS45NDktLjY4NGgtMy43MTInLFxuICAgICAga2V5OiAncTh6d3hqJyxcbiAgICB9LFxuICBdLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIE1hcFBpbm5lZFxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTVRnZ09HTXdJRE11TmpFekxUTXVPRFk1SURjdU5ESTVMVFV1TXpreklEZ3VOemsxWVRFZ01TQXdJREFnTVMweExqSXhOQ0F3UXprdU9EY2dNVFV1TkRJNUlEWWdNVEV1TmpFeklEWWdPR0UySURZZ01DQXdJREVnTVRJZ01DSWdMejRLSUNBOFkybHlZMnhsSUdONFBTSXhNaUlnWTNrOUlqZ2lJSEk5SWpJaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRndU56RTBJREUwYUMwekxqY3hZVEVnTVNBd0lEQWdNQzB1T1RRNExqWTRNMnd0TWk0d01EUWdOa0V4SURFZ01DQXdJREFnTXlBeU1tZ3hPR0V4SURFZ01DQXdJREFnTGprME9DMHhMak14Tm13dE1pMDJZVEVnTVNBd0lEQWdNQzB1T1RRNUxTNDJPRFJvTFRNdU56RXlJaUF2UGdvOEwzTjJaejRLKSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9tYXAtcGlubmVkXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgTWFwUGlubmVkID0gY3JlYXRlTHVjaWRlSWNvbignbWFwLXBpbm5lZCcsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBNYXBQaW5uZWQ7XG4iLCJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbXG4gIFtcbiAgICAncGF0aCcsXG4gICAge1xuICAgICAgZDogJ20xMSAxOS0xLjEwNi0uNTUyYTIgMiAwIDAgMC0xLjc4OCAwbC0zLjY1OSAxLjgzQTEgMSAwIDAgMSAzIDE5LjM4MVY2LjYxOGExIDEgMCAwIDEgLjU1My0uODk0bDQuNTUzLTIuMjc3YTIgMiAwIDAgMSAxLjc4OCAwbDQuMjEyIDIuMTA2YTIgMiAwIDAgMCAxLjc4OCAwbDMuNjU5LTEuODNBMSAxIDAgMCAxIDIxIDQuNjE5VjEyJyxcbiAgICAgIGtleTogJ3N2ZmVnaicsXG4gICAgfSxcbiAgXSxcbiAgWydwYXRoJywgeyBkOiAnTTE1IDUuNzY0VjEyJywga2V5OiAnMW9jdzRrJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTE4IDE1djYnLCBrZXk6ICc5d2NpeWknIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMjEgMThoLTYnLCBrZXk6ICcxMzlmMGMnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNOSAzLjIzNnYxNScsIGtleTogJzF1aW1maCcgfV0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgTWFwUGx1c1xuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0p0TVRFZ01Ua3RNUzR4TURZdExqVTFNbUV5SURJZ01DQXdJREF0TVM0M09EZ2dNR3d0TXk0Mk5Ua2dNUzQ0TTBFeElERWdNQ0F3SURFZ015QXhPUzR6T0RGV05pNDJNVGhoTVNBeElEQWdNQ0F4SUM0MU5UTXRMamc1Tkd3MExqVTFNeTB5TGpJM04yRXlJRElnTUNBd0lERWdNUzQzT0RnZ01HdzBMakl4TWlBeUxqRXdObUV5SURJZ01DQXdJREFnTVM0M09EZ2dNR3d6TGpZMU9TMHhMamd6UVRFZ01TQXdJREFnTVNBeU1TQTBMall4T1ZZeE1pSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk1UVWdOUzQzTmpSV01USWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRURTRJREUxZGpZaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRJeElERTRhQzAySWlBdlBnb2dJRHh3WVhSb0lHUTlJazA1SURNdU1qTTJkakUxSWlBdlBnbzhMM04yWno0SykgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvbWFwLXBsdXNcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBNYXBQbHVzID0gY3JlYXRlTHVjaWRlSWNvbignbWFwLXBsdXMnLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgTWFwUGx1cztcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgW1xuICAgICdwYXRoJyxcbiAgICB7XG4gICAgICBkOiAnTTE0LjEwNiA1LjU1M2EyIDIgMCAwIDAgMS43ODggMGwzLjY1OS0xLjgzQTEgMSAwIDAgMSAyMSA0LjYxOXYxMi43NjRhMSAxIDAgMCAxLS41NTMuODk0bC00LjU1MyAyLjI3N2EyIDIgMCAwIDEtMS43ODggMGwtNC4yMTItMi4xMDZhMiAyIDAgMCAwLTEuNzg4IDBsLTMuNjU5IDEuODNBMSAxIDAgMCAxIDMgMTkuMzgxVjYuNjE4YTEgMSAwIDAgMSAuNTUzLS44OTRsNC41NTMtMi4yNzdhMiAyIDAgMCAxIDEuNzg4IDB6JyxcbiAgICAgIGtleTogJzE2OXhpNScsXG4gICAgfSxcbiAgXSxcbiAgWydwYXRoJywgeyBkOiAnTTE1IDUuNzY0djE1Jywga2V5OiAnMXBuNGluJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTkgMy4yMzZ2MTUnLCBrZXk6ICcxdWltZmgnIH1dLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIE1hcFxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTVRRdU1UQTJJRFV1TlRVellUSWdNaUF3SURBZ01DQXhMamM0T0NBd2JETXVOalU1TFRFdU9ETkJNU0F4SURBZ01DQXhJREl4SURRdU5qRTVkakV5TGpjMk5HRXhJREVnTUNBd0lERXRMalUxTXk0NE9UUnNMVFF1TlRVeklESXVNamMzWVRJZ01pQXdJREFnTVMweExqYzRPQ0F3YkMwMExqSXhNaTB5TGpFd05tRXlJRElnTUNBd0lEQXRNUzQzT0RnZ01Hd3RNeTQyTlRrZ01TNDRNMEV4SURFZ01DQXdJREVnTXlBeE9TNHpPREZXTmk0Mk1UaGhNU0F4SURBZ01DQXhJQzQxTlRNdExqZzVOR3cwTGpVMU15MHlMakkzTjJFeUlESWdNQ0F3SURFZ01TNDNPRGdnTUhvaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRFMUlEVXVOelkwZGpFMUlpQXZQZ29nSUR4d1lYUm9JR1E5SWswNUlETXVNak0yZGpFMUlpQXZQZ284TDNOMlp6NEspIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL21hcFxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IE1hcCA9IGNyZWF0ZUx1Y2lkZUljb24oJ21hcCcsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBNYXA7XG4iLCJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ20xNCA2IDQgNCcsIGtleTogJzFxNzJnOScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xNyAzaDR2NCcsIGtleTogJzE5cDl1MScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ20yMSAzLTcuNzUgNy43NScsIGtleTogJzFjamJmZCcgfV0sXG4gIFsnY2lyY2xlJywgeyBjeDogJzknLCBjeTogJzE1JywgcjogJzYnLCBrZXk6ICdieDVzdnQnIH1dLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIE1hcnNTdHJva2VcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKdE1UUWdOaUEwSURRaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRFM0lETm9OSFkwSWlBdlBnb2dJRHh3WVhSb0lHUTlJbTB5TVNBekxUY3VOelVnTnk0M05TSWdMejRLSUNBOFkybHlZMnhsSUdONFBTSTVJaUJqZVQwaU1UVWlJSEk5SWpZaUlDOCtDand2YzNablBnbz0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL21hcnMtc3Ryb2tlXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgTWFyc1N0cm9rZSA9IGNyZWF0ZUx1Y2lkZUljb24oJ21hcnMtc3Ryb2tlJywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IE1hcnNTdHJva2U7XG4iLCJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ00xNiAzaDV2NScsIGtleTogJzE4MDZtcycgfV0sXG4gIFsncGF0aCcsIHsgZDogJ20yMSAzLTYuNzUgNi43NScsIGtleTogJ3B2MHV6dScgfV0sXG4gIFsnY2lyY2xlJywgeyBjeDogJzEwJywgY3k6ICcxNCcsIHI6ICc2Jywga2V5OiAnMXF3YmRjJyB9XSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBNYXJzXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NVFlnTTJnMWRqVWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaWJUSXhJRE10Tmk0M05TQTJMamMxSWlBdlBnb2dJRHhqYVhKamJHVWdZM2c5SWpFd0lpQmplVDBpTVRRaUlISTlJallpSUM4K0Nqd3ZjM1puUGdvPSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvbWFyc1xuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IE1hcnMgPSBjcmVhdGVMdWNpZGVJY29uKCdtYXJzJywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IE1hcnM7XG4iLCJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ00xNSAzaDZ2NicsIGtleTogJzFxOWZ3dCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ20yMSAzLTcgNycsIGtleTogJzFsMmFzcicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ20zIDIxIDctNycsIGtleTogJ3RqeDVhaScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ005IDIxSDN2LTYnLCBrZXk6ICd3dHZrdnYnIH1dLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIE1heGltaXplMlxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTVRVZ00yZzJkallpSUM4K0NpQWdQSEJoZEdnZ1pEMGliVEl4SURNdE55QTNJaUF2UGdvZ0lEeHdZWFJvSUdROUltMHpJREl4SURjdE55SWdMejRLSUNBOGNHRjBhQ0JrUFNKTk9TQXlNVWd6ZGkwMklpQXZQZ284TDNOMlp6NEspIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL21heGltaXplLTJcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBNYXhpbWl6ZTIgPSBjcmVhdGVMdWNpZGVJY29uKCdtYXhpbWl6ZS0yJywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IE1heGltaXplMjtcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTggMjJoOCcsIGtleTogJ3JtZXc4dicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xMiAxMXYxMScsIGtleTogJ3VyOXk2YScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ20xOSAzLTcgOC03LThaJywga2V5OiAnMXNncGl3JyB9XSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBNYXJ0aW5pXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5PQ0F5TW1nNElpQXZQZ29nSUR4d1lYUm9JR1E5SWsweE1pQXhNWFl4TVNJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0p0TVRrZ015MDNJRGd0TnkwNFdpSWdMejRLUEM5emRtYytDZz09KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9tYXJ0aW5pXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgTWFydGluaSA9IGNyZWF0ZUx1Y2lkZUljb24oJ21hcnRpbmknLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgTWFydGluaTtcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTggM0g1YTIgMiAwIDAgMC0yIDJ2MycsIGtleTogJzFkY21pdCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00yMSA4VjVhMiAyIDAgMCAwLTItMmgtMycsIGtleTogJzFlNGd0MycgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00zIDE2djNhMiAyIDAgMCAwIDIgMmgzJywga2V5OiAnd3NsNXNjJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTE2IDIxaDNhMiAyIDAgMCAwIDItMnYtMycsIGtleTogJzE4dHJlaycgfV0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgTWF4aW1pemVcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk9DQXpTRFZoTWlBeUlEQWdNQ0F3TFRJZ01uWXpJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHlNU0E0VmpWaE1pQXlJREFnTUNBd0xUSXRNbWd0TXlJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTXlBeE5uWXpZVElnTWlBd0lEQWdNQ0F5SURKb015SWdMejRLSUNBOGNHRjBhQ0JrUFNKTk1UWWdNakZvTTJFeUlESWdNQ0F3SURBZ01pMHlkaTB6SWlBdlBnbzhMM04yWno0SykgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvbWF4aW1pemVcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBNYXhpbWl6ZSA9IGNyZWF0ZUx1Y2lkZUljb24oJ21heGltaXplJywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IE1heGltaXplO1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbXG4gICAgJ3BhdGgnLFxuICAgIHtcbiAgICAgIGQ6ICdNNy4yMSAxNSAyLjY2IDcuMTRhMiAyIDAgMCAxIC4xMy0yLjJMNC40IDIuOEEyIDIgMCAwIDEgNiAyaDEyYTIgMiAwIDAgMSAxLjYuOGwxLjYgMi4xNGEyIDIgMCAwIDEgLjE0IDIuMkwxNi43OSAxNScsXG4gICAgICBrZXk6ICcxNDNsemEnLFxuICAgIH0sXG4gIF0sXG4gIFsncGF0aCcsIHsgZDogJ00xMSAxMiA1LjEyIDIuMicsIGtleTogJ3FodXh6NicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ20xMyAxMiA1Ljg4LTkuOCcsIGtleTogJ2hieWUwZicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ004IDdoOCcsIGtleTogJ2k4NmR2cycgfV0sXG4gIFsnY2lyY2xlJywgeyBjeDogJzEyJywgY3k6ICcxNycsIHI6ICc1Jywga2V5OiAncWJ6OGlxJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTEyIDE4di0yaC0uNScsIGtleTogJ2Zhd2M0cScgfV0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgTWVkYWxcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk55NHlNU0F4TlNBeUxqWTJJRGN1TVRSaE1pQXlJREFnTUNBeElDNHhNeTB5TGpKTU5DNDBJREl1T0VFeUlESWdNQ0F3SURFZ05pQXlhREV5WVRJZ01pQXdJREFnTVNBeExqWXVPR3d4TGpZZ01pNHhOR0V5SURJZ01DQXdJREVnTGpFMElESXVNa3d4Tmk0M09TQXhOU0lnTHo0S0lDQThjR0YwYUNCa1BTSk5NVEVnTVRJZ05TNHhNaUF5TGpJaUlDOCtDaUFnUEhCaGRHZ2daRDBpYlRFeklERXlJRFV1T0RndE9TNDRJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMDRJRGRvT0NJZ0x6NEtJQ0E4WTJseVkyeGxJR040UFNJeE1pSWdZM2s5SWpFM0lpQnlQU0kxSWlBdlBnb2dJRHh3WVhSb0lHUTlJazB4TWlBeE9IWXRNbWd0TGpVaUlDOCtDand2YzNablBnbz0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL21lZGFsXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgTWVkYWwgPSBjcmVhdGVMdWNpZGVJY29uKCdtZWRhbCcsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBNZWRhbDtcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTExLjYzNiA2QTEzIDEzIDAgMCAwIDE5LjQgMy4yIDEgMSAwIDAgMSAyMSA0djExLjM0NCcsIGtleTogJ2J5Y2V4cCcgfV0sXG4gIFtcbiAgICAncGF0aCcsXG4gICAgeyBkOiAnTTE0LjM3OCAxNC4zNTdBMTMgMTMgMCAwIDAgMTEgMTRINWEyIDIgMCAwIDEtMi0yVjhhMiAyIDAgMCAxIDItMmgxJywga2V5OiAnMXQxN3M2JyB9LFxuICBdLFxuICBbJ3BhdGgnLCB7IGQ6ICdtMiAyIDIwIDIwJywga2V5OiAnMW9vZXd5JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTYgMTRhMTIgMTIgMCAwIDAgMi40IDcuMiAyIDIgMCAwIDAgMy4yLTIuNEE4IDggMCAwIDEgMTAgMTQnLCBrZXk6ICcxODUzZnEnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNOCA4djYnLCBrZXk6ICdhaWVvNnYnIH1dLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIE1lZ2FwaG9uZU9mZlxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTVRFdU5qTTJJRFpCTVRNZ01UTWdNQ0F3SURBZ01Ua3VOQ0F6TGpJZ01TQXhJREFnTUNBeElESXhJRFIyTVRFdU16UTBJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHhOQzR6TnpnZ01UUXVNelUzUVRFeklERXpJREFnTUNBd0lERXhJREUwU0RWaE1pQXlJREFnTUNBeExUSXRNbFk0WVRJZ01pQXdJREFnTVNBeUxUSm9NU0lnTHo0S0lDQThjR0YwYUNCa1BTSnRNaUF5SURJd0lESXdJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMDJJREUwWVRFeUlERXlJREFnTUNBd0lESXVOQ0EzTGpJZ01pQXlJREFnTUNBd0lETXVNaTB5TGpSQk9DQTRJREFnTUNBeElERXdJREUwSWlBdlBnb2dJRHh3WVhSb0lHUTlJazA0SURoMk5pSWdMejRLUEM5emRtYytDZz09KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9tZWdhcGhvbmUtb2ZmXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgTWVnYXBob25lT2ZmID0gY3JlYXRlTHVjaWRlSWNvbignbWVnYXBob25lLW9mZicsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBNZWdhcGhvbmVPZmY7XG4iLCJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbXG4gIFtcbiAgICAncGF0aCcsXG4gICAge1xuICAgICAgZDogJ00xMSA2YTEzIDEzIDAgMCAwIDguNC0yLjhBMSAxIDAgMCAxIDIxIDR2MTJhMSAxIDAgMCAxLTEuNi44QTEzIDEzIDAgMCAwIDExIDE0SDVhMiAyIDAgMCAxLTItMlY4YTIgMiAwIDAgMSAyLTJ6JyxcbiAgICAgIGtleTogJ3E4YmZ5MycsXG4gICAgfSxcbiAgXSxcbiAgWydwYXRoJywgeyBkOiAnTTYgMTRhMTIgMTIgMCAwIDAgMi40IDcuMiAyIDIgMCAwIDAgMy4yLTIuNEE4IDggMCAwIDEgMTAgMTQnLCBrZXk6ICcxODUzZnEnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNOCA2djgnLCBrZXk6ICcxNXVnY3EnIH1dLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIE1lZ2FwaG9uZVxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTVRFZ05tRXhNeUF4TXlBd0lEQWdNQ0E0TGpRdE1pNDRRVEVnTVNBd0lEQWdNU0F5TVNBMGRqRXlZVEVnTVNBd0lEQWdNUzB4TGpZdU9FRXhNeUF4TXlBd0lEQWdNQ0F4TVNBeE5FZzFZVElnTWlBd0lEQWdNUzB5TFRKV09HRXlJRElnTUNBd0lERWdNaTB5ZWlJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTmlBeE5HRXhNaUF4TWlBd0lEQWdNQ0F5TGpRZ055NHlJRElnTWlBd0lEQWdNQ0F6TGpJdE1pNDBRVGdnT0NBd0lEQWdNU0F4TUNBeE5DSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk9DQTJkamdpSUM4K0Nqd3ZjM1puUGdvPSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvbWVnYXBob25lXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgTWVnYXBob25lID0gY3JlYXRlTHVjaWRlSWNvbignbWVnYXBob25lJywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IE1lZ2FwaG9uZTtcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgWydjaXJjbGUnLCB7IGN4OiAnMTInLCBjeTogJzEyJywgcjogJzEwJywga2V5OiAnMW1nbGF5JyB9XSxcbiAgWydsaW5lJywgeyB4MTogJzgnLCB4MjogJzE2JywgeTE6ICcxNScsIHkyOiAnMTUnLCBrZXk6ICcxeGIxZDknIH1dLFxuICBbJ2xpbmUnLCB7IHgxOiAnOScsIHgyOiAnOS4wMScsIHkxOiAnOScsIHkyOiAnOScsIGtleTogJ3l4eG5kMCcgfV0sXG4gIFsnbGluZScsIHsgeDE6ICcxNScsIHgyOiAnMTUuMDEnLCB5MTogJzknLCB5MjogJzknLCBrZXk6ICcxcDR5OWUnIH1dLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIE1laFxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4WTJseVkyeGxJR040UFNJeE1pSWdZM2s5SWpFeUlpQnlQU0l4TUNJZ0x6NEtJQ0E4YkdsdVpTQjRNVDBpT0NJZ2VESTlJakUySWlCNU1UMGlNVFVpSUhreVBTSXhOU0lnTHo0S0lDQThiR2x1WlNCNE1UMGlPU0lnZURJOUlqa3VNREVpSUhreFBTSTVJaUI1TWowaU9TSWdMejRLSUNBOGJHbHVaU0I0TVQwaU1UVWlJSGd5UFNJeE5TNHdNU0lnZVRFOUlqa2lJSGt5UFNJNUlpQXZQZ284TDNOMlp6NEspIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL21laFxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IE1laCA9IGNyZWF0ZUx1Y2lkZUljb24oJ21laCcsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBNZWg7XG4iLCJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ002IDE5di0zJywga2V5OiAnMW52Z3FuJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTEwIDE5di0zJywga2V5OiAnaXU4bmttJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTE0IDE5di0zJywga2V5OiAna2NlaHh1JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTE4IDE5di0zJywga2V5OiAnMXZoOTF6JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTggMTFWOScsIGtleTogJzYzZXJ6NCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xNiAxMVY5Jywga2V5OiAnZnJ1NmYzJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTEyIDExVjknLCBrZXk6ICdoYTAwc2InIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMiAxNWgyMCcsIGtleTogJzE2bmUxOCcgfV0sXG4gIFtcbiAgICAncGF0aCcsXG4gICAge1xuICAgICAgZDogJ00yIDdhMiAyIDAgMCAxIDItMmgxNmEyIDIgMCAwIDEgMiAydjEuMWEyIDIgMCAwIDAgMCAzLjgzN1YxN2EyIDIgMCAwIDEtMiAySDRhMiAyIDAgMCAxLTItMnYtNS4xYTIgMiAwIDAgMCAwLTMuODM3WicsXG4gICAgICBrZXk6ICdsaGRkdjMnLFxuICAgIH0sXG4gIF0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgTWVtb3J5U3RpY2tcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk5pQXhPWFl0TXlJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTVRBZ01UbDJMVE1pSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVEUwSURFNWRpMHpJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHhPQ0F4T1hZdE15SWdMejRLSUNBOGNHRjBhQ0JrUFNKTk9DQXhNVlk1SWlBdlBnb2dJRHh3WVhSb0lHUTlJazB4TmlBeE1WWTVJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHhNaUF4TVZZNUlpQXZQZ29nSUR4d1lYUm9JR1E5SWsweUlERTFhREl3SWlBdlBnb2dJRHh3WVhSb0lHUTlJazB5SURkaE1pQXlJREFnTUNBeElESXRNbWd4Tm1FeUlESWdNQ0F3SURFZ01pQXlkakV1TVdFeUlESWdNQ0F3SURBZ01DQXpMamd6TjFZeE4yRXlJRElnTUNBd0lERXRNaUF5U0RSaE1pQXlJREFnTUNBeExUSXRNbll0TlM0eFlUSWdNaUF3SURBZ01DQXdMVE11T0RNM1dpSWdMejRLUEM5emRtYytDZz09KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9tZW1vcnktc3RpY2tcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBNZW1vcnlTdGljayA9IGNyZWF0ZUx1Y2lkZUljb24oJ21lbW9yeS1zdGljaycsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBNZW1vcnlTdGljaztcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTQgMTJoMTYnLCBrZXk6ICcxbGFrancnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNNCAxOGgxNicsIGtleTogJzE5ZzdqbicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ000IDZoMTYnLCBrZXk6ICcxbzBzNjUnIH1dLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIE1lbnVcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk5DQXhNbWd4TmlJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTkNBeE9HZ3hOaUlnTHo0S0lDQThjR0YwYUNCa1BTSk5OQ0EyYURFMklpQXZQZ284TDNOMlp6NEspIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL21lbnVcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBNZW51ID0gY3JlYXRlTHVjaWRlSWNvbignbWVudScsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBNZW51O1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdtOCA2IDQtNCA0IDQnLCBrZXk6ICd5Ym5nOWcnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTIgMnYxMC4zYTQgNCAwIDAgMS0xLjE3MiAyLjg3Mkw0IDIyJywga2V5OiAnMWh5dzBpJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnbTIwIDIyLTUtNScsIGtleTogJzFtMjd5eicgfV0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgTWVyZ2VcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKdE9DQTJJRFF0TkNBMElEUWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRURXlJREoyTVRBdU0yRTBJRFFnTUNBd0lERXRNUzR4TnpJZ01pNDROekpNTkNBeU1pSWdMejRLSUNBOGNHRjBhQ0JrUFNKdE1qQWdNakl0TlMwMUlpQXZQZ284TDNOMlp6NEspIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL21lcmdlXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgTWVyZ2UgPSBjcmVhdGVMdWNpZGVJY29uKCdtZXJnZScsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBNZXJnZTtcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTEwIDkuNSA4IDEybDIgMi41Jywga2V5OiAnM21qeTYwJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnbTE0IDkuNSAyIDIuNS0yIDIuNScsIGtleTogJzFiaXIybCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ003LjkgMjBBOSA5IDAgMSAwIDQgMTYuMUwyIDIyeicsIGtleTogJ2s4NXpocCcgfV0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgTWVzc2FnZUNpcmNsZUNvZGVcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1UQWdPUzQxSURnZ01USnNNaUF5TGpVaUlDOCtDaUFnUEhCaGRHZ2daRDBpYlRFMElEa3VOU0F5SURJdU5TMHlJREl1TlNJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTnk0NUlESXdRVGtnT1NBd0lERWdNQ0EwSURFMkxqRk1NaUF5TW5vaUlDOCtDand2YzNablBnbz0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL21lc3NhZ2UtY2lyY2xlLWNvZGVcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBNZXNzYWdlQ2lyY2xlQ29kZSA9IGNyZWF0ZUx1Y2lkZUljb24oJ21lc3NhZ2UtY2lyY2xlLWNvZGUnLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgTWVzc2FnZUNpcmNsZUNvZGU7XG4iLCJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ003LjkgMjBBOSA5IDAgMSAwIDQgMTYuMUwyIDIyWicsIGtleTogJ3Z2MTFzZCcgfV0sXG4gIFtcbiAgICAncGF0aCcsXG4gICAge1xuICAgICAgZDogJ00xNS44IDkuMmEyLjUgMi41IDAgMCAwLTMuNSAwbC0uMy40LS4zNS0uM2EyLjQyIDIuNDIgMCAxIDAtMy4yIDMuNmwzLjYgMy41IDMuNi0zLjVjMS4yLTEuMiAxLjEtMi43LjItMy43JyxcbiAgICAgIGtleTogJzQzbG5ibScsXG4gICAgfSxcbiAgXSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBNZXNzYWdlQ2lyY2xlSGVhcnRcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk55NDVJREl3UVRrZ09TQXdJREVnTUNBMElERTJMakZNTWlBeU1sb2lJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRURTFMamdnT1M0eVlUSXVOU0F5TGpVZ01DQXdJREF0TXk0MUlEQnNMUzR6TGpRdExqTTFMUzR6WVRJdU5ESWdNaTQwTWlBd0lERWdNQzB6TGpJZ015NDJiRE11TmlBekxqVWdNeTQyTFRNdU5XTXhMakl0TVM0eUlERXVNUzB5TGpjdU1pMHpMamNpSUM4K0Nqd3ZjM1puUGdvPSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvbWVzc2FnZS1jaXJjbGUtaGVhcnRcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBNZXNzYWdlQ2lyY2xlSGVhcnQgPSBjcmVhdGVMdWNpZGVJY29uKCdtZXNzYWdlLWNpcmNsZS1oZWFydCcsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBNZXNzYWdlQ2lyY2xlSGVhcnQ7XG4iLCJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ00xMy41IDMuMWMtLjUgMC0xLS4xLTEuNS0uMXMtMSAuMS0xLjUuMScsIGtleTogJzE2bGw2NScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xOS4zIDYuOGExMC40NSAxMC40NSAwIDAgMC0yLjEtMi4xJywga2V5OiAnMW5xNzdhJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTIwLjkgMTMuNWMuMS0uNS4xLTEgLjEtMS41cy0uMS0xLS4xLTEuNScsIGtleTogJzFzZjd3bicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xNy4yIDE5LjNhMTAuNDUgMTAuNDUgMCAwIDAgMi4xLTIuMScsIGtleTogJ3gxaHM1ZycgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xMC41IDIwLjljLjUuMSAxIC4xIDEuNS4xczEtLjEgMS41LS4xJywga2V5OiAnMTltMTh6JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTMuNSAxNy41IDIgMjJsNC41LTEuNScsIGtleTogJzFmMzZxaScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00zLjEgMTAuNWMwIC41LS4xIDEtLjEgMS41cy4xIDEgLjEgMS41Jywga2V5OiAnMXZ6M2p1JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTYuOCA0LjdhMTAuNDUgMTAuNDUgMCAwIDAtMi4xIDIuMScsIGtleTogJzE5ZjlkbycgfV0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgTWVzc2FnZUNpcmNsZURhc2hlZFxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTVRNdU5TQXpMakZqTFM0MUlEQXRNUzB1TVMweExqVXRMakZ6TFRFZ0xqRXRNUzQxTGpFaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRFNUxqTWdOaTQ0WVRFd0xqUTFJREV3TGpRMUlEQWdNQ0F3TFRJdU1TMHlMakVpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVEl3TGprZ01UTXVOV011TVMwdU5TNHhMVEVnTGpFdE1TNDFjeTB1TVMweExTNHhMVEV1TlNJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTVRjdU1pQXhPUzR6WVRFd0xqUTFJREV3TGpRMUlEQWdNQ0F3SURJdU1TMHlMakVpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVEV3TGpVZ01qQXVPV011TlM0eElERWdMakVnTVM0MUxqRnpNUzB1TVNBeExqVXRMakVpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVE11TlNBeE55NDFJRElnTWpKc05DNDFMVEV1TlNJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTXk0eElERXdMalZqTUNBdU5TMHVNU0F4TFM0eElERXVOWE11TVNBeElDNHhJREV1TlNJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTmk0NElEUXVOMkV4TUM0ME5TQXhNQzQwTlNBd0lEQWdNQzB5TGpFZ01pNHhJaUF2UGdvOEwzTjJaejRLKSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9tZXNzYWdlLWNpcmNsZS1kYXNoZWRcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBNZXNzYWdlQ2lyY2xlRGFzaGVkID0gY3JlYXRlTHVjaWRlSWNvbignbWVzc2FnZS1jaXJjbGUtZGFzaGVkJywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IE1lc3NhZ2VDaXJjbGVEYXNoZWQ7XG4iLCJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ003LjkgMjBBOSA5IDAgMSAwIDQgMTYuMUwyIDIyWicsIGtleTogJ3Z2MTFzZCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ004IDEyaC4wMScsIGtleTogJ2N6bTQ3ZicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xMiAxMmguMDEnLCBrZXk6ICcxbXAzamMnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTYgMTJoLjAxJywga2V5OiAnMWw2eG96JyB9XSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBNZXNzYWdlQ2lyY2xlTW9yZVxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTnk0NUlESXdRVGtnT1NBd0lERWdNQ0EwSURFMkxqRk1NaUF5TWxvaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRnZ01USm9MakF4SWlBdlBnb2dJRHh3WVhSb0lHUTlJazB4TWlBeE1tZ3VNREVpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVEUySURFeWFDNHdNU0lnTHo0S1BDOXpkbWMrQ2c9PSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvbWVzc2FnZS1jaXJjbGUtbW9yZVxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IE1lc3NhZ2VDaXJjbGVNb3JlID0gY3JlYXRlTHVjaWRlSWNvbignbWVzc2FnZS1jaXJjbGUtbW9yZScsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBNZXNzYWdlQ2lyY2xlTW9yZTtcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTIwLjUgMTQuOUE5IDkgMCAwIDAgOS4xIDMuNScsIGtleTogJzFpZWJtbicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ20yIDIgMjAgMjAnLCBrZXk6ICcxb29ld3knIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNNS42IDUuNkMzIDguMyAyLjIgMTIuNSA0IDE2bC0yIDYgNi0yYzMuNCAxLjggNy42IDEuMSAxMC4zLTEuNycsIGtleTogJzFvdjhjZScgfV0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgTWVzc2FnZUNpcmNsZU9mZlxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTWpBdU5TQXhOQzQ1UVRrZ09TQXdJREFnTUNBNUxqRWdNeTQxSWlBdlBnb2dJRHh3WVhSb0lHUTlJbTB5SURJZ01qQWdNakFpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVFV1TmlBMUxqWkRNeUE0TGpNZ01pNHlJREV5TGpVZ05DQXhObXd0TWlBMklEWXRNbU16TGpRZ01TNDRJRGN1TmlBeExqRWdNVEF1TXkweExqY2lJQzgrQ2p3dmMzWm5QZ289KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9tZXNzYWdlLWNpcmNsZS1vZmZcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBNZXNzYWdlQ2lyY2xlT2ZmID0gY3JlYXRlTHVjaWRlSWNvbignbWVzc2FnZS1jaXJjbGUtb2ZmJywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IE1lc3NhZ2VDaXJjbGVPZmY7XG4iLCJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ003LjkgMjBBOSA5IDAgMSAwIDQgMTYuMUwyIDIyWicsIGtleTogJ3Z2MTFzZCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ004IDEyaDgnLCBrZXk6ICcxd2N5ZXYnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTIgOHY4Jywga2V5OiAnbmFwa3cyJyB9XSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBNZXNzYWdlQ2lyY2xlUGx1c1xuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTnk0NUlESXdRVGtnT1NBd0lERWdNQ0EwSURFMkxqRk1NaUF5TWxvaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRnZ01USm9PQ0lnTHo0S0lDQThjR0YwYUNCa1BTSk5NVElnT0hZNElpQXZQZ284TDNOMlp6NEspIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL21lc3NhZ2UtY2lyY2xlLXBsdXNcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBNZXNzYWdlQ2lyY2xlUGx1cyA9IGNyZWF0ZUx1Y2lkZUljb24oJ21lc3NhZ2UtY2lyY2xlLXBsdXMnLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgTWVzc2FnZUNpcmNsZVBsdXM7XG4iLCJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ003LjkgMjBBOSA5IDAgMSAwIDQgMTYuMUwyIDIyWicsIGtleTogJ3Z2MTFzZCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ005LjA5IDlhMyAzIDAgMCAxIDUuODMgMWMwIDItMyAzLTMgMycsIGtleTogJzF1NzczcycgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xMiAxN2guMDEnLCBrZXk6ICdwMzJwMDUnIH1dLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIE1lc3NhZ2VDaXJjbGVRdWVzdGlvbk1hcmtcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk55NDVJREl3UVRrZ09TQXdJREVnTUNBMElERTJMakZNTWlBeU1sb2lJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRUa3VNRGtnT1dFeklETWdNQ0F3SURFZ05TNDRNeUF4WXpBZ01pMHpJRE10TXlBeklpQXZQZ29nSUR4d1lYUm9JR1E5SWsweE1pQXhOMmd1TURFaUlDOCtDand2YzNablBnbz0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL21lc3NhZ2UtY2lyY2xlLXF1ZXN0aW9uLW1hcmtcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBNZXNzYWdlQ2lyY2xlUXVlc3Rpb25NYXJrID0gY3JlYXRlTHVjaWRlSWNvbignbWVzc2FnZS1jaXJjbGUtcXVlc3Rpb24tbWFyaycsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBNZXNzYWdlQ2lyY2xlUXVlc3Rpb25NYXJrO1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdNNy45IDIwQTkgOSAwIDEgMCA0IDE2LjFMMiAyMlonLCBrZXk6ICd2djExc2QnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdtMTAgMTUtMy0zIDMtMycsIGtleTogJzFwZ3VwYycgfV0sXG4gIFsncGF0aCcsIHsgZDogJ003IDEyaDdhMiAyIDAgMCAxIDIgMnYxJywga2V5OiAnMWdoZXU0JyB9XSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBNZXNzYWdlQ2lyY2xlUmVwbHlcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk55NDVJREl3UVRrZ09TQXdJREVnTUNBMElERTJMakZNTWlBeU1sb2lJQzgrQ2lBZ1BIQmhkR2dnWkQwaWJURXdJREUxTFRNdE15QXpMVE1pSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVGNnTVRKb04yRXlJRElnTUNBd0lERWdNaUF5ZGpFaUlDOCtDand2YzNablBnbz0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL21lc3NhZ2UtY2lyY2xlLXJlcGx5XG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgTWVzc2FnZUNpcmNsZVJlcGx5ID0gY3JlYXRlTHVjaWRlSWNvbignbWVzc2FnZS1jaXJjbGUtcmVwbHknLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgTWVzc2FnZUNpcmNsZVJlcGx5O1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdNNy45IDIwQTkgOSAwIDEgMCA0IDE2LjFMMiAyMlonLCBrZXk6ICd2djExc2QnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTIgOHY0Jywga2V5OiAnMWdvdDNiJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTEyIDE2aC4wMScsIGtleTogJzFkcmJkaScgfV0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgTWVzc2FnZUNpcmNsZVdhcm5pbmdcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk55NDVJREl3UVRrZ09TQXdJREVnTUNBMElERTJMakZNTWlBeU1sb2lJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRURXlJRGgyTkNJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTVRJZ01UWm9MakF4SWlBdlBnbzhMM04yWno0SykgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvbWVzc2FnZS1jaXJjbGUtd2FybmluZ1xuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IE1lc3NhZ2VDaXJjbGVXYXJuaW5nID0gY3JlYXRlTHVjaWRlSWNvbignbWVzc2FnZS1jaXJjbGUtd2FybmluZycsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBNZXNzYWdlQ2lyY2xlV2FybmluZztcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTcuOSAyMEE5IDkgMCAxIDAgNCAxNi4xTDIgMjJaJywga2V5OiAndnYxMXNkJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnbTE1IDktNiA2Jywga2V5OiAnMXV6aHZyJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnbTkgOSA2IDYnLCBrZXk6ICd6MGJpcWYnIH1dLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIE1lc3NhZ2VDaXJjbGVYXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5OeTQ1SURJd1FUa2dPU0F3SURFZ01DQTBJREUyTGpGTU1pQXlNbG9pSUM4K0NpQWdQSEJoZEdnZ1pEMGliVEUxSURrdE5pQTJJaUF2UGdvZ0lEeHdZWFJvSUdROUltMDVJRGtnTmlBMklpQXZQZ284TDNOMlp6NEspIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL21lc3NhZ2UtY2lyY2xlLXhcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBNZXNzYWdlQ2lyY2xlWCA9IGNyZWF0ZUx1Y2lkZUljb24oJ21lc3NhZ2UtY2lyY2xlLXgnLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgTWVzc2FnZUNpcmNsZVg7XG4iLCJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ003LjkgMjBBOSA5IDAgMSAwIDQgMTYuMUwyIDIyWicsIGtleTogJ3Z2MTFzZCcgfV0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgTWVzc2FnZUNpcmNsZVxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTnk0NUlESXdRVGtnT1NBd0lERWdNQ0EwSURFMkxqRk1NaUF5TWxvaUlDOCtDand2YzNablBnbz0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL21lc3NhZ2UtY2lyY2xlXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgTWVzc2FnZUNpcmNsZSA9IGNyZWF0ZUx1Y2lkZUljb24oJ21lc3NhZ2UtY2lyY2xlJywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IE1lc3NhZ2VDaXJjbGU7XG4iLCJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ00xMCA3LjUgOCAxMGwyIDIuNScsIGtleTogJ3hiMTd4dycgfV0sXG4gIFsncGF0aCcsIHsgZDogJ20xNCA3LjUgMiAyLjUtMiAyLjUnLCBrZXk6ICc1cmFwMXYnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMjEgMTVhMiAyIDAgMCAxLTIgMkg3bC00IDRWNWEyIDIgMCAwIDEgMi0yaDE0YTIgMiAwIDAgMSAyIDJ6Jywga2V5OiAnMWxpZWx6JyB9XSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBNZXNzYWdlU3F1YXJlQ29kZVxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTVRBZ055NDFJRGdnTVRCc01pQXlMalVpSUM4K0NpQWdQSEJoZEdnZ1pEMGliVEUwSURjdU5TQXlJREl1TlMweUlESXVOU0lnTHo0S0lDQThjR0YwYUNCa1BTSk5NakVnTVRWaE1pQXlJREFnTUNBeExUSWdNa2czYkMwMElEUldOV0V5SURJZ01DQXdJREVnTWkweWFERTBZVElnTWlBd0lEQWdNU0F5SURKNklpQXZQZ284TDNOMlp6NEspIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL21lc3NhZ2Utc3F1YXJlLWNvZGVcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBNZXNzYWdlU3F1YXJlQ29kZSA9IGNyZWF0ZUx1Y2lkZUljb24oJ21lc3NhZ2Utc3F1YXJlLWNvZGUnLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgTWVzc2FnZVNxdWFyZUNvZGU7XG4iLCJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ00xMCAxN0g3bC00IDR2LTcnLCBrZXk6ICcxcjcxeHUnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTQgMTdoMScsIGtleTogJ251ZnU0dCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xNCAzaDEnLCBrZXk6ICcxZWM0eWonIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTkgM2EyIDIgMCAwIDEgMiAyJywga2V5OiAnMThybTkxJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTIxIDE0djFhMiAyIDAgMCAxLTIgMicsIGtleTogJzI5YWtxMycgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00yMSA5djEnLCBrZXk6ICdteHNtbmUnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMyA5djEnLCBrZXk6ICcxcjBkZXEnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNNSAzYTIgMiAwIDAgMC0yIDInLCBrZXk6ICd5NTdhbHAnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNOSAzaDEnLCBrZXk6ICcxeWVzcmknIH1dLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIE1lc3NhZ2VTcXVhcmVEYXNoZWRcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1UQWdNVGRJTjJ3dE5DQTBkaTAzSWlBdlBnb2dJRHh3WVhSb0lHUTlJazB4TkNBeE4yZ3hJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHhOQ0F6YURFaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRFNUlETmhNaUF5SURBZ01DQXhJRElnTWlJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTWpFZ01UUjJNV0V5SURJZ01DQXdJREV0TWlBeUlpQXZQZ29nSUR4d1lYUm9JR1E5SWsweU1TQTVkakVpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVE1nT1hZeElpQXZQZ29nSUR4d1lYUm9JR1E5SWswMUlETmhNaUF5SURBZ01DQXdMVElnTWlJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOT1NBemFERWlJQzgrQ2p3dmMzWm5QZ289KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9tZXNzYWdlLXNxdWFyZS1kYXNoZWRcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBNZXNzYWdlU3F1YXJlRGFzaGVkID0gY3JlYXRlTHVjaWRlSWNvbignbWVzc2FnZS1zcXVhcmUtZGFzaGVkJywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IE1lc3NhZ2VTcXVhcmVEYXNoZWQ7XG4iLCJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ201IDE5LTIgMlY1YTIgMiAwIDAgMSAyLTJoMTRhMiAyIDAgMCAxIDIgMnYxMGEyIDIgMCAwIDEtMiAyJywga2V5OiAnMXh1enVqJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTkgMTBoNicsIGtleTogJzlneHpzaCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xMiA3djYnLCBrZXk6ICdsdzFqNDMnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNOSAxN2g2Jywga2V5OiAncjh1aXQyJyB9XSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBNZXNzYWdlU3F1YXJlRGlmZlxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0p0TlNBeE9TMHlJREpXTldFeUlESWdNQ0F3SURFZ01pMHlhREUwWVRJZ01pQXdJREFnTVNBeUlESjJNVEJoTWlBeUlEQWdNQ0F4TFRJZ01pSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk9TQXhNR2cySWlBdlBnb2dJRHh3WVhSb0lHUTlJazB4TWlBM2RqWWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRUa2dNVGRvTmlJZ0x6NEtQQzl6ZG1jK0NnPT0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL21lc3NhZ2Utc3F1YXJlLWRpZmZcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBNZXNzYWdlU3F1YXJlRGlmZiA9IGNyZWF0ZUx1Y2lkZUljb24oJ21lc3NhZ2Utc3F1YXJlLWRpZmYnLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgTWVzc2FnZVNxdWFyZURpZmY7XG4iLCJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ00xMS43IDNINWEyIDIgMCAwIDAtMiAydjE2bDQtNGgxMmEyIDIgMCAwIDAgMi0ydi0yLjcnLCBrZXk6ICd1b2Rwa2InIH1dLFxuICBbJ2NpcmNsZScsIHsgY3g6ICcxOCcsIGN5OiAnNicsIHI6ICczJywga2V5OiAnMWg3ZzI0JyB9XSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBNZXNzYWdlU3F1YXJlRG90XG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NVEV1TnlBelNEVmhNaUF5SURBZ01DQXdMVElnTW5ZeE5tdzBMVFJvTVRKaE1pQXlJREFnTUNBd0lESXRNbll0TWk0M0lpQXZQZ29nSUR4amFYSmpiR1VnWTNnOUlqRTRJaUJqZVQwaU5pSWdjajBpTXlJZ0x6NEtQQzl6ZG1jK0NnPT0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL21lc3NhZ2Utc3F1YXJlLWRvdFxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IE1lc3NhZ2VTcXVhcmVEb3QgPSBjcmVhdGVMdWNpZGVJY29uKCdtZXNzYWdlLXNxdWFyZS1kb3QnLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgTWVzc2FnZVNxdWFyZURvdDtcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTIxIDE1YTIgMiAwIDAgMS0yIDJIN2wtNCA0VjVhMiAyIDAgMCAxIDItMmgxNGEyIDIgMCAwIDEgMiAyeicsIGtleTogJzFsaWVseicgfV0sXG4gIFtcbiAgICAncGF0aCcsXG4gICAge1xuICAgICAgZDogJ00xNC44IDcuNWExLjg0IDEuODQgMCAwIDAtMi42IDBsLS4yLjMtLjMtLjNhMS44NCAxLjg0IDAgMSAwLTIuNCAyLjhMMTIgMTNsMi43LTIuN2MuOS0uOS44LTIuMS4xLTIuOCcsXG4gICAgICBrZXk6ICcxYmxhd3MnLFxuICAgIH0sXG4gIF0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgTWVzc2FnZVNxdWFyZUhlYXJ0XG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NakVnTVRWaE1pQXlJREFnTUNBeExUSWdNa2czYkMwMElEUldOV0V5SURJZ01DQXdJREVnTWkweWFERTBZVElnTWlBd0lEQWdNU0F5SURKNklpQXZQZ29nSUR4d1lYUm9JR1E5SWsweE5DNDRJRGN1TldFeExqZzBJREV1T0RRZ01DQXdJREF0TWk0MklEQnNMUzR5TGpNdExqTXRMak5oTVM0NE5DQXhMamcwSURBZ01TQXdMVEl1TkNBeUxqaE1NVElnTVROc01pNDNMVEl1TjJNdU9TMHVPUzQ0TFRJdU1TNHhMVEl1T0NJZ0x6NEtQQzl6ZG1jK0NnPT0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL21lc3NhZ2Utc3F1YXJlLWhlYXJ0XG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgTWVzc2FnZVNxdWFyZUhlYXJ0ID0gY3JlYXRlTHVjaWRlSWNvbignbWVzc2FnZS1zcXVhcmUtaGVhcnQnLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgTWVzc2FnZVNxdWFyZUhlYXJ0O1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdNMTkgMTV2LTJhMiAyIDAgMSAwLTQgMHYyJywga2V5OiAnaDNkMXZ6JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTkgMTdIN2wtNCA0VjVhMiAyIDAgMCAxIDItMmgxNGEyIDIgMCAwIDEgMiAydjMuNScsIGtleTogJ3hzbm5obicgfV0sXG4gIFsncmVjdCcsIHsgeDogJzEzJywgeTogJzE1Jywgd2lkdGg6ICc4JywgaGVpZ2h0OiAnNScsIHJ4OiAnMScsIGtleTogJzFjY3d1aycgfV0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgTWVzc2FnZVNxdWFyZUxvY2tcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1Ua2dNVFYyTFRKaE1pQXlJREFnTVNBd0xUUWdNSFl5SWlBdlBnb2dJRHh3WVhSb0lHUTlJazA1SURFM1NEZHNMVFFnTkZZMVlUSWdNaUF3SURBZ01TQXlMVEpvTVRSaE1pQXlJREFnTUNBeElESWdNbll6TGpVaUlDOCtDaUFnUEhKbFkzUWdlRDBpTVRNaUlIazlJakUxSWlCM2FXUjBhRDBpT0NJZ2FHVnBaMmgwUFNJMUlpQnllRDBpTVNJZ0x6NEtQQzl6ZG1jK0NnPT0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL21lc3NhZ2Utc3F1YXJlLWxvY2tcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBNZXNzYWdlU3F1YXJlTG9jayA9IGNyZWF0ZUx1Y2lkZUljb24oJ21lc3NhZ2Utc3F1YXJlLWxvY2snLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgTWVzc2FnZVNxdWFyZUxvY2s7XG4iLCJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ00yMSAxNWEyIDIgMCAwIDEtMiAySDdsLTQgNFY1YTIgMiAwIDAgMSAyLTJoMTRhMiAyIDAgMCAxIDIgMnonLCBrZXk6ICcxbGllbHonIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNOCAxMGguMDEnLCBrZXk6ICcxOWNsdDgnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTIgMTBoLjAxJywga2V5OiAnMW5yYXJjJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTE2IDEwaC4wMScsIGtleTogJzFtOTR3eicgfV0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgTWVzc2FnZVNxdWFyZU1vcmVcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1qRWdNVFZoTWlBeUlEQWdNQ0F4TFRJZ01rZzNiQzAwSURSV05XRXlJRElnTUNBd0lERWdNaTB5YURFMFlUSWdNaUF3SURBZ01TQXlJREo2SWlBdlBnb2dJRHh3WVhSb0lHUTlJazA0SURFd2FDNHdNU0lnTHo0S0lDQThjR0YwYUNCa1BTSk5NVElnTVRCb0xqQXhJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHhOaUF4TUdndU1ERWlJQzgrQ2p3dmMzWm5QZ289KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9tZXNzYWdlLXNxdWFyZS1tb3JlXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgTWVzc2FnZVNxdWFyZU1vcmUgPSBjcmVhdGVMdWNpZGVJY29uKCdtZXNzYWdlLXNxdWFyZS1tb3JlJywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IE1lc3NhZ2VTcXVhcmVNb3JlO1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdNMjEgMTVWNWEyIDIgMCAwIDAtMi0ySDknLCBrZXk6ICc0M2VsNzcnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdtMiAyIDIwIDIwJywga2V5OiAnMW9vZXd5JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTMuNiAzLjZjLS40LjMtLjYuOC0uNiAxLjR2MTZsNC00aDEwJywga2V5OiAncHdwbTRhJyB9XSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBNZXNzYWdlU3F1YXJlT2ZmXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NakVnTVRWV05XRXlJRElnTUNBd0lEQXRNaTB5U0RraUlDOCtDaUFnUEhCaGRHZ2daRDBpYlRJZ01pQXlNQ0F5TUNJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTXk0MklETXVObU10TGpRdU15MHVOaTQ0TFM0MklERXVOSFl4Tm13MExUUm9NVEFpSUM4K0Nqd3ZjM1puUGdvPSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvbWVzc2FnZS1zcXVhcmUtb2ZmXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgTWVzc2FnZVNxdWFyZU9mZiA9IGNyZWF0ZUx1Y2lkZUljb24oJ21lc3NhZ2Utc3F1YXJlLW9mZicsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBNZXNzYWdlU3F1YXJlT2ZmO1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdNMjEgMTVhMiAyIDAgMCAxLTIgMkg3bC00IDRWNWEyIDIgMCAwIDEgMi0yaDE0YTIgMiAwIDAgMSAyIDJ6Jywga2V5OiAnMWxpZWx6JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTEyIDd2NicsIGtleTogJ2x3MWo0MycgfV0sXG4gIFsncGF0aCcsIHsgZDogJ005IDEwaDYnLCBrZXk6ICc5Z3h6c2gnIH1dLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIE1lc3NhZ2VTcXVhcmVQbHVzXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NakVnTVRWaE1pQXlJREFnTUNBeExUSWdNa2czYkMwMElEUldOV0V5SURJZ01DQXdJREVnTWkweWFERTBZVElnTWlBd0lEQWdNU0F5SURKNklpQXZQZ29nSUR4d1lYUm9JR1E5SWsweE1pQTNkallpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVGtnTVRCb05pSWdMejRLUEM5emRtYytDZz09KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9tZXNzYWdlLXNxdWFyZS1wbHVzXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgTWVzc2FnZVNxdWFyZVBsdXMgPSBjcmVhdGVMdWNpZGVJY29uKCdtZXNzYWdlLXNxdWFyZS1wbHVzJywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IE1lc3NhZ2VTcXVhcmVQbHVzO1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdNMjEgMTVhMiAyIDAgMCAxLTIgMkg3bC00IDRWNWEyIDIgMCAwIDEgMi0yaDE0YTIgMiAwIDAgMSAyIDJ6Jywga2V5OiAnMWxpZWx6JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTggMTJhMiAyIDAgMCAwIDItMlY4SDgnLCBrZXk6ICcxamZlc2onIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTQgMTJhMiAyIDAgMCAwIDItMlY4aC0yJywga2V5OiAnMWRxOW1oJyB9XSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBNZXNzYWdlU3F1YXJlUXVvdGVcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1qRWdNVFZoTWlBeUlEQWdNQ0F4TFRJZ01rZzNiQzAwSURSV05XRXlJRElnTUNBd0lERWdNaTB5YURFMFlUSWdNaUF3SURBZ01TQXlJREo2SWlBdlBnb2dJRHh3WVhSb0lHUTlJazA0SURFeVlUSWdNaUF3SURBZ01DQXlMVEpXT0VnNElpQXZQZ29nSUR4d1lYUm9JR1E5SWsweE5DQXhNbUV5SURJZ01DQXdJREFnTWkweVZqaG9MVElpSUM4K0Nqd3ZjM1puUGdvPSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvbWVzc2FnZS1zcXVhcmUtcXVvdGVcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBNZXNzYWdlU3F1YXJlUXVvdGUgPSBjcmVhdGVMdWNpZGVJY29uKCdtZXNzYWdlLXNxdWFyZS1xdW90ZScsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBNZXNzYWdlU3F1YXJlUXVvdGU7XG4iLCJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ00yMSAxNWEyIDIgMCAwIDEtMiAySDdsLTQgNFY1YTIgMiAwIDAgMSAyLTJoMTRhMiAyIDAgMCAxIDIgMnonLCBrZXk6ICcxbGllbHonIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdtMTAgNy0zIDMgMyAzJywga2V5OiAnMWV1Z2R2JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTE3IDEzdi0xYTIgMiAwIDAgMC0yLTJINycsIGtleTogJ2VybmZoMycgfV0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgTWVzc2FnZVNxdWFyZVJlcGx5XG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NakVnTVRWaE1pQXlJREFnTUNBeExUSWdNa2czYkMwMElEUldOV0V5SURJZ01DQXdJREVnTWkweWFERTBZVElnTWlBd0lEQWdNU0F5SURKNklpQXZQZ29nSUR4d1lYUm9JR1E5SW0weE1DQTNMVE1nTXlBeklETWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRURTNJREV6ZGkweFlUSWdNaUF3SURBZ01DMHlMVEpJTnlJZ0x6NEtQQzl6ZG1jK0NnPT0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL21lc3NhZ2Utc3F1YXJlLXJlcGx5XG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgTWVzc2FnZVNxdWFyZVJlcGx5ID0gY3JlYXRlTHVjaWRlSWNvbignbWVzc2FnZS1zcXVhcmUtcmVwbHknLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgTWVzc2FnZVNxdWFyZVJlcGx5O1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdNMjEgMTJ2M2EyIDIgMCAwIDEtMiAySDdsLTQgNFY1YTIgMiAwIDAgMSAyLTJoNycsIGtleTogJ3RxdGRrZycgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xNiAzaDV2NScsIGtleTogJzE4MDZtcycgfV0sXG4gIFsncGF0aCcsIHsgZDogJ20xNiA4IDUtNScsIGtleTogJzE1bWJybCcgfV0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgTWVzc2FnZVNxdWFyZVNoYXJlXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NakVnTVRKMk0yRXlJRElnTUNBd0lERXRNaUF5U0Rkc0xUUWdORlkxWVRJZ01pQXdJREFnTVNBeUxUSm9OeUlnTHo0S0lDQThjR0YwYUNCa1BTSk5NVFlnTTJnMWRqVWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaWJURTJJRGdnTlMwMUlpQXZQZ284TDNOMlp6NEspIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL21lc3NhZ2Utc3F1YXJlLXNoYXJlXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgTWVzc2FnZVNxdWFyZVNoYXJlID0gY3JlYXRlTHVjaWRlSWNvbignbWVzc2FnZS1zcXVhcmUtc2hhcmUnLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgTWVzc2FnZVNxdWFyZVNoYXJlO1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdNMjEgMTVhMiAyIDAgMCAxLTIgMkg3bC00IDRWNWEyIDIgMCAwIDEgMi0yaDE0YTIgMiAwIDAgMSAyIDJ6Jywga2V5OiAnMWxpZWx6JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTEzIDhINycsIGtleTogJzE0aTRrYycgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xNyAxMkg3Jywga2V5OiAnMTZpZjBnJyB9XSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBNZXNzYWdlU3F1YXJlVGV4dFxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTWpFZ01UVmhNaUF5SURBZ01DQXhMVElnTWtnM2JDMDBJRFJXTldFeUlESWdNQ0F3SURFZ01pMHlhREUwWVRJZ01pQXdJREFnTVNBeUlESjZJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHhNeUE0U0RjaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRFM0lERXlTRGNpSUM4K0Nqd3ZjM1puUGdvPSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvbWVzc2FnZS1zcXVhcmUtdGV4dFxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IE1lc3NhZ2VTcXVhcmVUZXh0ID0gY3JlYXRlTHVjaWRlSWNvbignbWVzc2FnZS1zcXVhcmUtdGV4dCcsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBNZXNzYWdlU3F1YXJlVGV4dDtcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTIxIDE1YTIgMiAwIDAgMS0yIDJIN2wtNCA0VjVhMiAyIDAgMCAxIDItMmgxNGEyIDIgMCAwIDEgMiAyeicsIGtleTogJzFsaWVseicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xMiA3djInLCBrZXk6ICdzdGl5bzcnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTIgMTNoLjAxJywga2V5OiAneTB1dXR0JyB9XSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBNZXNzYWdlU3F1YXJlV2FybmluZ1xuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTWpFZ01UVmhNaUF5SURBZ01DQXhMVElnTWtnM2JDMDBJRFJXTldFeUlESWdNQ0F3SURFZ01pMHlhREUwWVRJZ01pQXdJREFnTVNBeUlESjZJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHhNaUEzZGpJaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRFeUlERXphQzR3TVNJZ0x6NEtQQzl6ZG1jK0NnPT0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL21lc3NhZ2Utc3F1YXJlLXdhcm5pbmdcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBNZXNzYWdlU3F1YXJlV2FybmluZyA9IGNyZWF0ZUx1Y2lkZUljb24oJ21lc3NhZ2Utc3F1YXJlLXdhcm5pbmcnLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgTWVzc2FnZVNxdWFyZVdhcm5pbmc7XG4iLCJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ00yMSAxNWEyIDIgMCAwIDEtMiAySDdsLTQgNFY1YTIgMiAwIDAgMSAyLTJoMTRhMiAyIDAgMCAxIDIgMnonLCBrZXk6ICcxbGllbHonIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdtMTQuNSA3LjUtNSA1Jywga2V5OiAnM2xiNml3JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnbTkuNSA3LjUgNSA1Jywga2V5OiAna28xMzZoJyB9XSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBNZXNzYWdlU3F1YXJlWFxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTWpFZ01UVmhNaUF5SURBZ01DQXhMVElnTWtnM2JDMDBJRFJXTldFeUlESWdNQ0F3SURFZ01pMHlhREUwWVRJZ01pQXdJREFnTVNBeUlESjZJaUF2UGdvZ0lEeHdZWFJvSUdROUltMHhOQzQxSURjdU5TMDFJRFVpSUM4K0NpQWdQSEJoZEdnZ1pEMGliVGt1TlNBM0xqVWdOU0ExSWlBdlBnbzhMM04yWno0SykgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvbWVzc2FnZS1zcXVhcmUteFxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IE1lc3NhZ2VTcXVhcmVYID0gY3JlYXRlTHVjaWRlSWNvbignbWVzc2FnZS1zcXVhcmUteCcsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBNZXNzYWdlU3F1YXJlWDtcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTIxIDE1YTIgMiAwIDAgMS0yIDJIN2wtNCA0VjVhMiAyIDAgMCAxIDItMmgxNGEyIDIgMCAwIDEgMiAyeicsIGtleTogJzFsaWVseicgfV0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgTWVzc2FnZVNxdWFyZVxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTWpFZ01UVmhNaUF5SURBZ01DQXhMVElnTWtnM2JDMDBJRFJXTldFeUlESWdNQ0F3SURFZ01pMHlhREUwWVRJZ01pQXdJREFnTVNBeUlESjZJaUF2UGdvOEwzTjJaejRLKSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9tZXNzYWdlLXNxdWFyZVxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IE1lc3NhZ2VTcXVhcmUgPSBjcmVhdGVMdWNpZGVJY29uKCdtZXNzYWdlLXNxdWFyZScsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBNZXNzYWdlU3F1YXJlO1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdNMTQgOWEyIDIgMCAwIDEtMiAySDZsLTQgNFY0YTIgMiAwIDAgMSAyLTJoOGEyIDIgMCAwIDEgMiAyeicsIGtleTogJ3AxeHp0OCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xOCA5aDJhMiAyIDAgMCAxIDIgMnYxMWwtNC00aC02YTIgMiAwIDAgMS0yLTJ2LTEnLCBrZXk6ICcxY3gyOXUnIH1dLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIE1lc3NhZ2VzU3F1YXJlXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NVFFnT1dFeUlESWdNQ0F3SURFdE1pQXlTRFpzTFRRZ05GWTBZVElnTWlBd0lEQWdNU0F5TFRKb09HRXlJRElnTUNBd0lERWdNaUF5ZWlJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTVRnZ09XZ3lZVElnTWlBd0lEQWdNU0F5SURKMk1URnNMVFF0TkdndE5tRXlJRElnTUNBd0lERXRNaTB5ZGkweElpQXZQZ284TDNOMlp6NEspIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL21lc3NhZ2VzLXNxdWFyZVxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IE1lc3NhZ2VzU3F1YXJlID0gY3JlYXRlTHVjaWRlSWNvbignbWVzc2FnZXMtc3F1YXJlJywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IE1lc3NhZ2VzU3F1YXJlO1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbJ2xpbmUnLCB7IHgxOiAnMicsIHgyOiAnMjInLCB5MTogJzInLCB5MjogJzIyJywga2V5OiAnYTZwNnVqJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTE4Ljg5IDEzLjIzQTcuMTIgNy4xMiAwIDAgMCAxOSAxMnYtMicsIGtleTogJzgweGx4cicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ001IDEwdjJhNyA3IDAgMCAwIDEyIDUnLCBrZXk6ICdwMms4a2cnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTUgOS4zNFY1YTMgMyAwIDAgMC01LjY4LTEuMzMnLCBrZXk6ICcxZ3pkb2onIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNOSA5djNhMyAzIDAgMCAwIDUuMTIgMi4xMicsIGtleTogJ3IyaTM1dycgfV0sXG4gIFsnbGluZScsIHsgeDE6ICcxMicsIHgyOiAnMTInLCB5MTogJzE5JywgeTI6ICcyMicsIGtleTogJ3gzdnI1dicgfV0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgTWljT2ZmXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThiR2x1WlNCNE1UMGlNaUlnZURJOUlqSXlJaUI1TVQwaU1pSWdlVEk5SWpJeUlpQXZQZ29nSUR4d1lYUm9JR1E5SWsweE9DNDRPU0F4TXk0eU0wRTNMakV5SURjdU1USWdNQ0F3SURBZ01Ua2dNVEoyTFRJaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRVZ01UQjJNbUUzSURjZ01DQXdJREFnTVRJZ05TSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk1UVWdPUzR6TkZZMVlUTWdNeUF3SURBZ01DMDFMalk0TFRFdU16TWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRUa2dPWFl6WVRNZ015QXdJREFnTUNBMUxqRXlJREl1TVRJaUlDOCtDaUFnUEd4cGJtVWdlREU5SWpFeUlpQjRNajBpTVRJaUlIa3hQU0l4T1NJZ2VUSTlJakl5SWlBdlBnbzhMM04yWno0SykgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvbWljLW9mZlxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IE1pY09mZiA9IGNyZWF0ZUx1Y2lkZUljb24oJ21pYy1vZmYnLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgTWljT2ZmO1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbXG4gICAgJ3BhdGgnLFxuICAgIHtcbiAgICAgIGQ6ICdtMTEgNy42MDEtNS45OTQgOC4xOWExIDEgMCAwIDAgLjEgMS4yOThsLjgxNy44MThhMSAxIDAgMCAwIDEuMzE0LjA4N0wxNS4wOSAxMicsXG4gICAgICBrZXk6ICc4MGE2MDEnLFxuICAgIH0sXG4gIF0sXG4gIFtcbiAgICAncGF0aCcsXG4gICAge1xuICAgICAgZDogJ00xNi41IDIxLjE3NEMxNS41IDIwLjUgMTQuMzcyIDIwIDEzIDIwYy0yLjA1OCAwLTMuOTI4IDIuMzU2LTYgMi0yLjA3Mi0uMzU2LTIuNzc1LTMuMzY5LTEuNS00LjUnLFxuICAgICAga2V5OiAnajBuZ3RwJyxcbiAgICB9LFxuICBdLFxuICBbJ2NpcmNsZScsIHsgY3g6ICcxNicsIGN5OiAnNycsIHI6ICc1Jywga2V5OiAnZDA4amZiJyB9XSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBNaWNWb2NhbFxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0p0TVRFZ055NDJNREV0TlM0NU9UUWdPQzR4T1dFeElERWdNQ0F3SURBZ0xqRWdNUzR5T1Roc0xqZ3hOeTQ0TVRoaE1TQXhJREFnTUNBd0lERXVNekUwTGpBNE4wd3hOUzR3T1NBeE1pSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk1UWXVOU0F5TVM0eE56UkRNVFV1TlNBeU1DNDFJREUwTGpNM01pQXlNQ0F4TXlBeU1HTXRNaTR3TlRnZ01DMHpMamt5T0NBeUxqTTFOaTAySURJdE1pNHdOekl0TGpNMU5pMHlMamMzTlMwekxqTTJPUzB4TGpVdE5DNDFJaUF2UGdvZ0lEeGphWEpqYkdVZ1kzZzlJakUySWlCamVUMGlOeUlnY2owaU5TSWdMejRLUEM5emRtYytDZz09KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9taWMtdm9jYWxcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBNaWNWb2NhbCA9IGNyZWF0ZUx1Y2lkZUljb24oJ21pYy12b2NhbCcsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBNaWNWb2NhbDtcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTEyIDE5djMnLCBrZXk6ICducGEyMWwnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTkgMTB2MmE3IDcgMCAwIDEtMTQgMHYtMicsIGtleTogJzF2Yzc4YicgfV0sXG4gIFsncmVjdCcsIHsgeDogJzknLCB5OiAnMicsIHdpZHRoOiAnNicsIGhlaWdodDogJzEzJywgcng6ICczJywga2V5OiAnczZuN3NkJyB9XSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBNaWNcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1USWdNVGwyTXlJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTVRrZ01UQjJNbUUzSURjZ01DQXdJREV0TVRRZ01IWXRNaUlnTHo0S0lDQThjbVZqZENCNFBTSTVJaUI1UFNJeUlpQjNhV1IwYUQwaU5pSWdhR1ZwWjJoMFBTSXhNeUlnY25nOUlqTWlJQzgrQ2p3dmMzWm5QZ289KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9taWNcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBNaWMgPSBjcmVhdGVMdWNpZGVJY29uKCdtaWMnLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgTWljO1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdNMTggMTJoMicsIGtleTogJ3F1dXhzNycgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xOCAxNmgyJywga2V5OiAnenNuM2x2JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTE4IDIwaDInLCBrZXk6ICc5eDV5OXknIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTggNGgyJywga2V5OiAnMWx1eGZiJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTE4IDhoMicsIGtleTogJ254cXpnJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTQgMTJoMicsIGtleTogJzFsdHhwMCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ000IDE2aDInLCBrZXk6ICc4YTV6aGEnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNNCAyMGgyJywga2V5OiAnMjdkazU3JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTQgNGgyJywga2V5OiAnMTBncm9qJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTQgOGgyJywga2V5OiAnMTh2cTZ3JyB9XSxcbiAgW1xuICAgICdwYXRoJyxcbiAgICB7XG4gICAgICBkOiAnTTggMmEyIDIgMCAwIDAtMiAydjE2YTIgMiAwIDAgMCAyIDJoOGEyIDIgMCAwIDAgMi0yVjRhMiAyIDAgMCAwLTItMmgtMS41Yy0uMjc2IDAtLjQ5NC4yMjctLjU2Mi40OTVhMiAyIDAgMCAxLTMuODc2IDBDOS45OTQgMi4yMjcgOS43NzYgMiA5LjUgMnonLFxuICAgICAga2V5OiAnMTY4MWZwJyxcbiAgICB9LFxuICBdLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIE1pY3JvY2hpcFxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTVRnZ01USm9NaUlnTHo0S0lDQThjR0YwYUNCa1BTSk5NVGdnTVRab01pSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk1UZ2dNakJvTWlJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTVRnZ05HZ3lJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHhPQ0E0YURJaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRRZ01USm9NaUlnTHo0S0lDQThjR0YwYUNCa1BTSk5OQ0F4Tm1neUlpQXZQZ29nSUR4d1lYUm9JR1E5SWswMElESXdhRElpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVFFnTkdneUlpQXZQZ29nSUR4d1lYUm9JR1E5SWswMElEaG9NaUlnTHo0S0lDQThjR0YwYUNCa1BTSk5PQ0F5WVRJZ01pQXdJREFnTUMweUlESjJNVFpoTWlBeUlEQWdNQ0F3SURJZ01tZzRZVElnTWlBd0lEQWdNQ0F5TFRKV05HRXlJRElnTUNBd0lEQXRNaTB5YUMweExqVmpMUzR5TnpZZ01DMHVORGswTGpJeU55MHVOVFl5TGpRNU5XRXlJRElnTUNBd0lERXRNeTQ0TnpZZ01FTTVMams1TkNBeUxqSXlOeUE1TGpjM05pQXlJRGt1TlNBeWVpSWdMejRLUEM5emRtYytDZz09KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9taWNyb2NoaXBcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBNaWNyb2NoaXAgPSBjcmVhdGVMdWNpZGVJY29uKCdtaWNyb2NoaXAnLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgTWljcm9jaGlwO1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdNNiAxOGg4Jywga2V5OiAnMWJvcnZ2JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTMgMjJoMTgnLCBrZXk6ICc4cHJyNDUnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTQgMjJhNyA3IDAgMSAwIDAtMTRoLTEnLCBrZXk6ICcxandhaXknIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNOSAxNGgyJywga2V5OiAnMTk3ZTdoJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTkgMTJhMiAyIDAgMCAxLTItMlY2aDZ2NGEyIDIgMCAwIDEtMiAyWicsIGtleTogJzFibXpteScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xMiA2VjNhMSAxIDAgMCAwLTEtMUg5YTEgMSAwIDAgMC0xIDF2MycsIGtleTogJzFkcnI0NycgfV0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgTWljcm9zY29wZVxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTmlBeE9HZzRJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHpJREl5YURFNElpQXZQZ29nSUR4d1lYUm9JR1E5SWsweE5DQXlNbUUzSURjZ01DQXhJREFnTUMweE5HZ3RNU0lnTHo0S0lDQThjR0YwYUNCa1BTSk5PU0F4TkdneUlpQXZQZ29nSUR4d1lYUm9JR1E5SWswNUlERXlZVElnTWlBd0lEQWdNUzB5TFRKV05tZzJkalJoTWlBeUlEQWdNQ0F4TFRJZ01sb2lJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRURXlJRFpXTTJFeElERWdNQ0F3SURBdE1TMHhTRGxoTVNBeElEQWdNQ0F3TFRFZ01YWXpJaUF2UGdvOEwzTjJaejRLKSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9taWNyb3Njb3BlXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgTWljcm9zY29wZSA9IGNyZWF0ZUx1Y2lkZUljb24oJ21pY3Jvc2NvcGUnLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgTWljcm9zY29wZTtcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgWydyZWN0JywgeyB3aWR0aDogJzIwJywgaGVpZ2h0OiAnMTUnLCB4OiAnMicsIHk6ICc0Jywgcng6ICcyJywga2V5OiAnMm5vOTVmJyB9XSxcbiAgWydyZWN0JywgeyB3aWR0aDogJzgnLCBoZWlnaHQ6ICc3JywgeDogJzYnLCB5OiAnOCcsIHJ4OiAnMScsIGtleTogJ3poOXd4JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTE4IDh2NycsIGtleTogJ281emk0bicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ002IDE5djInLCBrZXk6ICcxbG9oYTYnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTggMTl2MicsIGtleTogJzFkYXdmMCcgfV0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgTWljcm93YXZlXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjbVZqZENCM2FXUjBhRDBpTWpBaUlHaGxhV2RvZEQwaU1UVWlJSGc5SWpJaUlIazlJalFpSUhKNFBTSXlJaUF2UGdvZ0lEeHlaV04wSUhkcFpIUm9QU0k0SWlCb1pXbG5hSFE5SWpjaUlIZzlJallpSUhrOUlqZ2lJSEo0UFNJeElpQXZQZ29nSUR4d1lYUm9JR1E5SWsweE9DQTRkamNpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVFlnTVRsMk1pSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk1UZ2dNVGwyTWlJZ0x6NEtQQzl6ZG1jK0NnPT0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL21pY3Jvd2F2ZVxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IE1pY3Jvd2F2ZSA9IGNyZWF0ZUx1Y2lkZUljb24oJ21pY3Jvd2F2ZScsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBNaWNyb3dhdmU7XG4iLCJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ00xMiAxM3Y4Jywga2V5OiAnMWw1cHEwJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTEyIDN2MycsIGtleTogJzFuNWtheScgfV0sXG4gIFtcbiAgICAncGF0aCcsXG4gICAge1xuICAgICAgZDogJ000IDZhMSAxIDAgMCAwLTEgMXY1YTEgMSAwIDAgMCAxIDFoMTNhMiAyIDAgMCAwIDEuMTUyLS4zNjVsMy40MjQtMi4zMTdhMSAxIDAgMCAwIDAtMS42MzVsLTMuNDI0LTIuMzE4QTIgMiAwIDAgMCAxNyA2eicsXG4gICAgICBrZXk6ICcxYnRhcnEnLFxuICAgIH0sXG4gIF0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgTWlsZXN0b25lXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NVElnTVROMk9DSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk1USWdNM1l6SWlBdlBnb2dJRHh3WVhSb0lHUTlJazAwSURaaE1TQXhJREFnTUNBd0xURWdNWFkxWVRFZ01TQXdJREFnTUNBeElERm9NVE5oTWlBeUlEQWdNQ0F3SURFdU1UVXlMUzR6TmpWc015NDBNalF0TWk0ek1UZGhNU0F4SURBZ01DQXdJREF0TVM0Mk16VnNMVE11TkRJMExUSXVNekU0UVRJZ01pQXdJREFnTUNBeE55QTJlaUlnTHo0S1BDOXpkbWMrQ2c9PSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvbWlsZXN0b25lXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgTWlsZXN0b25lID0gY3JlYXRlTHVjaWRlSWNvbignbWlsZXN0b25lJywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IE1pbGVzdG9uZTtcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTggMmg4Jywga2V5OiAnMXNzZ2MxJyB9XSxcbiAgW1xuICAgICdwYXRoJyxcbiAgICB7XG4gICAgICBkOiAnTTkgMnYxLjM0M00xNSAydjIuNzg5YTQgNCAwIDAgMCAuNjcyIDIuMjE5bC42NTYuOTg0YTQgNCAwIDAgMSAuNjcyIDIuMjJ2MS4xMzFNNy44IDcuOGwtLjEyOC4xOTJBNCA0IDAgMCAwIDcgMTAuMjEyVjIwYTIgMiAwIDAgMCAyIDJoNmEyIDIgMCAwIDAgMi0ydi0zJyxcbiAgICAgIGtleTogJ3kwZWpneCcsXG4gICAgfSxcbiAgXSxcbiAgWydwYXRoJywgeyBkOiAnTTcgMTVhNi40NyA2LjQ3IDAgMCAxIDUgMCA2LjQ3MiA2LjQ3MiAwIDAgMCAzLjQzNS40MzUnLCBrZXk6ICdpYXhxc3knIH1dLFxuICBbJ2xpbmUnLCB7IHgxOiAnMicsIHgyOiAnMjInLCB5MTogJzInLCB5MjogJzIyJywga2V5OiAnYTZwNnVqJyB9XSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBNaWxrT2ZmXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5PQ0F5YURnaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRrZ01uWXhMak0wTTAweE5TQXlkakl1TnpnNVlUUWdOQ0F3SURBZ01DQXVOamN5SURJdU1qRTViQzQyTlRZdU9UZzBZVFFnTkNBd0lEQWdNU0F1TmpjeUlESXVNakoyTVM0eE16Rk5OeTQ0SURjdU9Hd3RMakV5T0M0eE9USkJOQ0EwSURBZ01DQXdJRGNnTVRBdU1qRXlWakl3WVRJZ01pQXdJREFnTUNBeUlESm9ObUV5SURJZ01DQXdJREFnTWkweWRpMHpJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMDNJREUxWVRZdU5EY2dOaTQwTnlBd0lEQWdNU0ExSURBZ05pNDBOeklnTmk0ME56SWdNQ0F3SURBZ015NDBNelV1TkRNMUlpQXZQZ29nSUR4c2FXNWxJSGd4UFNJeUlpQjRNajBpTWpJaUlIa3hQU0l5SWlCNU1qMGlNaklpSUM4K0Nqd3ZjM1puUGdvPSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvbWlsay1vZmZcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBNaWxrT2ZmID0gY3JlYXRlTHVjaWRlSWNvbignbWlsay1vZmYnLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgTWlsa09mZjtcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTggMmg4Jywga2V5OiAnMXNzZ2MxJyB9XSxcbiAgW1xuICAgICdwYXRoJyxcbiAgICB7XG4gICAgICBkOiAnTTkgMnYyLjc4OWE0IDQgMCAwIDEtLjY3MiAyLjIxOWwtLjY1Ni45ODRBNCA0IDAgMCAwIDcgMTAuMjEyVjIwYTIgMiAwIDAgMCAyIDJoNmEyIDIgMCAwIDAgMi0ydi05Ljc4OWE0IDQgMCAwIDAtLjY3Mi0yLjIxOWwtLjY1Ni0uOTg0QTQgNCAwIDAgMSAxNSA0Ljc4OFYyJyxcbiAgICAgIGtleTogJ3F0cDEyeCcsXG4gICAgfSxcbiAgXSxcbiAgWydwYXRoJywgeyBkOiAnTTcgMTVhNi40NzIgNi40NzIgMCAwIDEgNSAwIDYuNDcgNi40NyAwIDAgMCA1IDAnLCBrZXk6ICd5Z2VoNDQnIH1dLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIE1pbGtcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk9DQXlhRGdpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVGtnTW5ZeUxqYzRPV0UwSURRZ01DQXdJREV0TGpZM01pQXlMakl4T1d3dExqWTFOaTQ1T0RSQk5DQTBJREFnTUNBd0lEY2dNVEF1TWpFeVZqSXdZVElnTWlBd0lEQWdNQ0F5SURKb05tRXlJRElnTUNBd0lEQWdNaTB5ZGkwNUxqYzRPV0UwSURRZ01DQXdJREF0TGpZM01pMHlMakl4T1d3dExqWTFOaTB1T1RnMFFUUWdOQ0F3SURBZ01TQXhOU0EwTGpjNE9GWXlJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMDNJREUxWVRZdU5EY3lJRFl1TkRjeUlEQWdNQ0F4SURVZ01DQTJMalEzSURZdU5EY2dNQ0F3SURBZ05TQXdJaUF2UGdvOEwzTjJaejRLKSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9taWxrXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgTWlsayA9IGNyZWF0ZUx1Y2lkZUljb24oJ21pbGsnLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgTWlsaztcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnbTE0IDEwIDctNycsIGtleTogJ29hNzdqeScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00yMCAxMGgtNlY0Jywga2V5OiAnbWpnMG1kJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnbTMgMjEgNy03Jywga2V5OiAndGp4NWFpJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTQgMTRoNnY2Jywga2V5OiAncm1qN2l3JyB9XSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBNaW5pbWl6ZTJcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKdE1UUWdNVEFnTnkwM0lpQXZQZ29nSUR4d1lYUm9JR1E5SWsweU1DQXhNR2d0TmxZMElpQXZQZ29nSUR4d1lYUm9JR1E5SW0weklESXhJRGN0TnlJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTkNBeE5HZzJkallpSUM4K0Nqd3ZjM1puUGdvPSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvbWluaW1pemUtMlxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IE1pbmltaXplMiA9IGNyZWF0ZUx1Y2lkZUljb24oJ21pbmltaXplLTInLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgTWluaW1pemUyO1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdNOCAzdjNhMiAyIDAgMCAxLTIgMkgzJywga2V5OiAnaG9oYnRyJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTIxIDhoLTNhMiAyIDAgMCAxLTItMlYzJywga2V5OiAnNWp3MWYzJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTMgMTZoM2EyIDIgMCAwIDEgMiAydjMnLCBrZXk6ICcxOTh0dnInIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTYgMjF2LTNhMiAyIDAgMCAxIDItMmgzJywga2V5OiAncGg4bXhwJyB9XSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBNaW5pbWl6ZVxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOT0NBemRqTmhNaUF5SURBZ01DQXhMVElnTWtneklpQXZQZ29nSUR4d1lYUm9JR1E5SWsweU1TQTRhQzB6WVRJZ01pQXdJREFnTVMweUxUSldNeUlnTHo0S0lDQThjR0YwYUNCa1BTSk5NeUF4Tm1nellUSWdNaUF3SURBZ01TQXlJREoyTXlJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTVRZZ01qRjJMVE5oTWlBeUlEQWdNQ0F4SURJdE1tZ3pJaUF2UGdvOEwzTjJaejRLKSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9taW5pbWl6ZVxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IE1pbmltaXplID0gY3JlYXRlTHVjaWRlSWNvbignbWluaW1pemUnLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgTWluaW1pemU7XG4iLCJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbWydwYXRoJywgeyBkOiAnTTUgMTJoMTQnLCBrZXk6ICcxYXlzMGgnIH1dXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIE1pbnVzXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5OU0F4TW1neE5DSWdMejRLUEM5emRtYytDZz09KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9taW51c1xuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IE1pbnVzID0gY3JlYXRlTHVjaWRlSWNvbignbWludXMnLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgTWludXM7XG4iLCJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ205IDEwIDIgMiA0LTQnLCBrZXk6ICcxZ25xejQnIH1dLFxuICBbJ3JlY3QnLCB7IHdpZHRoOiAnMjAnLCBoZWlnaHQ6ICcxNCcsIHg6ICcyJywgeTogJzMnLCByeDogJzInLCBrZXk6ICc0OGk2NTEnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTIgMTd2NCcsIGtleTogJzFyaXd2aCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ004IDIxaDgnLCBrZXk6ICcxZXY2ZjMnIH1dLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIE1vbml0b3JDaGVja1xuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0p0T1NBeE1DQXlJRElnTkMwMElpQXZQZ29nSUR4eVpXTjBJSGRwWkhSb1BTSXlNQ0lnYUdWcFoyaDBQU0l4TkNJZ2VEMGlNaUlnZVQwaU15SWdjbmc5SWpJaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRFeUlERTNkalFpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVGdnTWpGb09DSWdMejRLUEM5emRtYytDZz09KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9tb25pdG9yLWNoZWNrXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgTW9uaXRvckNoZWNrID0gY3JlYXRlTHVjaWRlSWNvbignbW9uaXRvci1jaGVjaycsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBNb25pdG9yQ2hlY2s7XG4iLCJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ00xMiAxN3Y0Jywga2V5OiAnMXJpd3ZoJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnbTE0LjMwNSA3LjUzLjkyMy0uMzgyJywga2V5OiAnMW1sbnN3JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnbTE1LjIyOCA0Ljg1Mi0uOTIzLS4zODMnLCBrZXk6ICc4Mm1wd2cnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdtMTYuODUyIDMuMjI4LS4zODMtLjkyNCcsIGtleTogJ2xuNHNpcicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ20xNi44NTIgOC43NzItLjM4My45MjMnLCBrZXk6ICcxZGVqdzAnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdtMTkuMTQ4IDMuMjI4LjM4My0uOTI0Jywga2V5OiAnMTkya2dmJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnbTE5LjUzIDkuNjk2LS4zODItLjkyNCcsIGtleTogJ2ZpYXZscicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ20yMC43NzIgNC44NTIuOTI0LS4zODMnLCBrZXk6ICcxajhtZ3AnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdtMjAuNzcyIDcuMTQ4LjkyNC4zODMnLCBrZXk6ICd6aXg5YmUnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMjIgMTN2MmEyIDIgMCAwIDEtMiAySDRhMiAyIDAgMCAxLTItMlY1YTIgMiAwIDAgMSAyLTJoNycsIGtleTogJzF0bnp2OCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ004IDIxaDgnLCBrZXk6ICcxZXY2ZjMnIH1dLFxuICBbJ2NpcmNsZScsIHsgY3g6ICcxOCcsIGN5OiAnNicsIHI6ICczJywga2V5OiAnMWg3ZzI0JyB9XSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBNb25pdG9yQ29nXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NVElnTVRkMk5DSWdMejRLSUNBOGNHRjBhQ0JrUFNKdE1UUXVNekExSURjdU5UTXVPVEl6TFM0ek9ESWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaWJURTFMakl5T0NBMExqZzFNaTB1T1RJekxTNHpPRE1pSUM4K0NpQWdQSEJoZEdnZ1pEMGliVEUyTGpnMU1pQXpMakl5T0MwdU16Z3pMUzQ1TWpRaUlDOCtDaUFnUEhCaGRHZ2daRDBpYlRFMkxqZzFNaUE0TGpjM01pMHVNemd6TGpreU15SWdMejRLSUNBOGNHRjBhQ0JrUFNKdE1Ua3VNVFE0SURNdU1qSTRMak00TXkwdU9USTBJaUF2UGdvZ0lEeHdZWFJvSUdROUltMHhPUzQxTXlBNUxqWTVOaTB1TXpneUxTNDVNalFpSUM4K0NpQWdQSEJoZEdnZ1pEMGliVEl3TGpjM01pQTBMamcxTWk0NU1qUXRMak00TXlJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0p0TWpBdU56Y3lJRGN1TVRRNExqa3lOQzR6T0RNaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRJeUlERXpkakpoTWlBeUlEQWdNQ0F4TFRJZ01rZzBZVElnTWlBd0lEQWdNUzB5TFRKV05XRXlJRElnTUNBd0lERWdNaTB5YURjaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRnZ01qRm9PQ0lnTHo0S0lDQThZMmx5WTJ4bElHTjRQU0l4T0NJZ1kzazlJallpSUhJOUlqTWlJQzgrQ2p3dmMzWm5QZ289KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9tb25pdG9yLWNvZ1xuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IE1vbml0b3JDb2cgPSBjcmVhdGVMdWNpZGVJY29uKCdtb25pdG9yLWNvZycsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBNb25pdG9yQ29nO1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbJ2NpcmNsZScsIHsgY3g6ICcxOScsIGN5OiAnNicsIHI6ICczJywga2V5OiAnMTA4YTV2JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTIyIDEydjNhMiAyIDAgMCAxLTIgMkg0YTIgMiAwIDAgMS0yLTJWNWEyIDIgMCAwIDEgMi0yaDknLCBrZXk6ICcxZmV0OXknIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTIgMTd2NCcsIGtleTogJzFyaXd2aCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ004IDIxaDgnLCBrZXk6ICcxZXY2ZjMnIH1dLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIE1vbml0b3JEb3RcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOFkybHlZMnhsSUdONFBTSXhPU0lnWTNrOUlqWWlJSEk5SWpNaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRJeUlERXlkak5oTWlBeUlEQWdNQ0F4TFRJZ01rZzBZVElnTWlBd0lEQWdNUzB5TFRKV05XRXlJRElnTUNBd0lERWdNaTB5YURraUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRFeUlERTNkalFpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVGdnTWpGb09DSWdMejRLUEM5emRtYytDZz09KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9tb25pdG9yLWRvdFxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IE1vbml0b3JEb3QgPSBjcmVhdGVMdWNpZGVJY29uKCdtb25pdG9yLWRvdCcsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBNb25pdG9yRG90O1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdNMTIgMTNWNycsIGtleTogJ2gwcjIwbicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ20xNSAxMC0zIDMtMy0zJywga2V5OiAnbHpobXluJyB9XSxcbiAgWydyZWN0JywgeyB3aWR0aDogJzIwJywgaGVpZ2h0OiAnMTQnLCB4OiAnMicsIHk6ICczJywgcng6ICcyJywga2V5OiAnNDhpNjUxJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTEyIDE3djQnLCBrZXk6ICcxcml3dmgnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNOCAyMWg4Jywga2V5OiAnMWV2NmYzJyB9XSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBNb25pdG9yRG93blxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTVRJZ01UTldOeUlnTHo0S0lDQThjR0YwYUNCa1BTSnRNVFVnTVRBdE15QXpMVE10TXlJZ0x6NEtJQ0E4Y21WamRDQjNhV1IwYUQwaU1qQWlJR2hsYVdkb2REMGlNVFFpSUhnOUlqSWlJSGs5SWpNaUlISjRQU0l5SWlBdlBnb2dJRHh3WVhSb0lHUTlJazB4TWlBeE4zWTBJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMDRJREl4YURnaUlDOCtDand2YzNablBnbz0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL21vbml0b3ItZG93blxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IE1vbml0b3JEb3duID0gY3JlYXRlTHVjaWRlSWNvbignbW9uaXRvci1kb3duJywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IE1vbml0b3JEb3duO1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdNMTcgMTdINGEyIDIgMCAwIDEtMi0yVjVjMC0xLjUgMS0yIDEtMicsIGtleTogJ2swcThvYycgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00yMiAxNVY1YTIgMiAwIDAgMC0yLTJIOScsIGtleTogJ2NwMWFjMCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ004IDIxaDgnLCBrZXk6ICcxZXY2ZjMnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTIgMTd2NCcsIGtleTogJzFyaXd2aCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ20yIDIgMjAgMjAnLCBrZXk6ICcxb29ld3knIH1dLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIE1vbml0b3JPZmZcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1UY2dNVGRJTkdFeUlESWdNQ0F3SURFdE1pMHlWalZqTUMweExqVWdNUzB5SURFdE1pSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk1qSWdNVFZXTldFeUlESWdNQ0F3SURBdE1pMHlTRGtpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVGdnTWpGb09DSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk1USWdNVGQyTkNJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0p0TWlBeUlESXdJREl3SWlBdlBnbzhMM04yWno0SykgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvbW9uaXRvci1vZmZcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBNb25pdG9yT2ZmID0gY3JlYXRlTHVjaWRlSWNvbignbW9uaXRvci1vZmYnLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgTW9uaXRvck9mZjtcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTEwIDEzVjcnLCBrZXk6ICcxdTEzdTknIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTQgMTNWNycsIGtleTogJzF2ajlvbScgfV0sXG4gIFsncmVjdCcsIHsgd2lkdGg6ICcyMCcsIGhlaWdodDogJzE0JywgeDogJzInLCB5OiAnMycsIHJ4OiAnMicsIGtleTogJzQ4aTY1MScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xMiAxN3Y0Jywga2V5OiAnMXJpd3ZoJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTggMjFoOCcsIGtleTogJzFldjZmMycgfV0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgTW9uaXRvclBhdXNlXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NVEFnTVROV055SWdMejRLSUNBOGNHRjBhQ0JrUFNKTk1UUWdNVE5XTnlJZ0x6NEtJQ0E4Y21WamRDQjNhV1IwYUQwaU1qQWlJR2hsYVdkb2REMGlNVFFpSUhnOUlqSWlJSGs5SWpNaUlISjRQU0l5SWlBdlBnb2dJRHh3WVhSb0lHUTlJazB4TWlBeE4zWTBJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMDRJREl4YURnaUlDOCtDand2YzNablBnbz0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL21vbml0b3ItcGF1c2VcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBNb25pdG9yUGF1c2UgPSBjcmVhdGVMdWNpZGVJY29uKCdtb25pdG9yLXBhdXNlJywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IE1vbml0b3JQYXVzZTtcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgW1xuICAgICdwYXRoJyxcbiAgICB7XG4gICAgICBkOiAnTTEwIDcuNzVhLjc1Ljc1IDAgMCAxIDEuMTQyLS42MzhsMy42NjQgMi4yNDlhLjc1Ljc1IDAgMCAxIDAgMS4yNzhsLTMuNjY0IDIuMjVhLjc1Ljc1IDAgMCAxLTEuMTQyLS42NHonLFxuICAgICAga2V5OiAnMXBjdHRhJyxcbiAgICB9LFxuICBdLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTIgMTd2NCcsIGtleTogJzFyaXd2aCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ004IDIxaDgnLCBrZXk6ICcxZXY2ZjMnIH1dLFxuICBbJ3JlY3QnLCB7IHg6ICcyJywgeTogJzMnLCB3aWR0aDogJzIwJywgaGVpZ2h0OiAnMTQnLCByeDogJzInLCBrZXk6ICd4M3YyeGgnIH1dLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIE1vbml0b3JQbGF5XG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NVEFnTnk0M05XRXVOelV1TnpVZ01DQXdJREVnTVM0eE5ESXRMall6T0d3ekxqWTJOQ0F5TGpJME9XRXVOelV1TnpVZ01DQXdJREVnTUNBeExqSTNPR3d0TXk0Mk5qUWdNaTR5TldFdU56VXVOelVnTUNBd0lERXRNUzR4TkRJdExqWTBlaUlnTHo0S0lDQThjR0YwYUNCa1BTSk5NVElnTVRkMk5DSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk9DQXlNV2c0SWlBdlBnb2dJRHh5WldOMElIZzlJaklpSUhrOUlqTWlJSGRwWkhSb1BTSXlNQ0lnYUdWcFoyaDBQU0l4TkNJZ2NuZzlJaklpSUM4K0Nqd3ZjM1puUGdvPSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvbW9uaXRvci1wbGF5XG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgTW9uaXRvclBsYXkgPSBjcmVhdGVMdWNpZGVJY29uKCdtb25pdG9yLXBsYXknLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgTW9uaXRvclBsYXk7XG4iLCJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ00xOCA4VjZhMiAyIDAgMCAwLTItMkg0YTIgMiAwIDAgMC0yIDJ2N2EyIDIgMCAwIDAgMiAyaDgnLCBrZXk6ICcxMGR5aW8nIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTAgMTl2LTMuOTYgMy4xNScsIGtleTogJzFpcmdlaicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ003IDE5aDUnLCBrZXk6ICdxc3d4NGwnIH1dLFxuICBbJ3JlY3QnLCB7IHdpZHRoOiAnNicsIGhlaWdodDogJzEwJywgeDogJzE2JywgeTogJzEyJywgcng6ICcyJywga2V5OiAnMWVnbmdqJyB9XSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBNb25pdG9yU21hcnRwaG9uZVxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTVRnZ09GWTJZVElnTWlBd0lEQWdNQzB5TFRKSU5HRXlJRElnTUNBd0lEQXRNaUF5ZGpkaE1pQXlJREFnTUNBd0lESWdNbWc0SWlBdlBnb2dJRHh3WVhSb0lHUTlJazB4TUNBeE9YWXRNeTQ1TmlBekxqRTFJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMDNJREU1YURVaUlDOCtDaUFnUEhKbFkzUWdkMmxrZEdnOUlqWWlJR2hsYVdkb2REMGlNVEFpSUhnOUlqRTJJaUI1UFNJeE1pSWdjbmc5SWpJaUlDOCtDand2YzNablBnbz0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL21vbml0b3Itc21hcnRwaG9uZVxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IE1vbml0b3JTbWFydHBob25lID0gY3JlYXRlTHVjaWRlSWNvbignbW9uaXRvci1zbWFydHBob25lJywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IE1vbml0b3JTbWFydHBob25lO1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdNMTIgMTd2NCcsIGtleTogJzFyaXd2aCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ004IDIxaDgnLCBrZXk6ICcxZXY2ZjMnIH1dLFxuICBbJ3JlY3QnLCB7IHg6ICcyJywgeTogJzMnLCB3aWR0aDogJzIwJywgaGVpZ2h0OiAnMTQnLCByeDogJzInLCBrZXk6ICd4M3YyeGgnIH1dLFxuICBbJ3JlY3QnLCB7IHg6ICc5JywgeTogJzcnLCB3aWR0aDogJzYnLCBoZWlnaHQ6ICc2Jywgcng6ICcxJywga2V5OiAnNW0yb291JyB9XSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBNb25pdG9yU3RvcFxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTVRJZ01UZDJOQ0lnTHo0S0lDQThjR0YwYUNCa1BTSk5PQ0F5TVdnNElpQXZQZ29nSUR4eVpXTjBJSGc5SWpJaUlIazlJak1pSUhkcFpIUm9QU0l5TUNJZ2FHVnBaMmgwUFNJeE5DSWdjbmc5SWpJaUlDOCtDaUFnUEhKbFkzUWdlRDBpT1NJZ2VUMGlOeUlnZDJsa2RHZzlJallpSUdobGFXZG9kRDBpTmlJZ2NuZzlJakVpSUM4K0Nqd3ZjM1puUGdvPSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvbW9uaXRvci1zdG9wXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgTW9uaXRvclN0b3AgPSBjcmVhdGVMdWNpZGVJY29uKCdtb25pdG9yLXN0b3AnLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgTW9uaXRvclN0b3A7XG4iLCJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ205IDEwIDMtMyAzIDMnLCBrZXk6ICcxMWdzeHMnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTIgMTNWNycsIGtleTogJ2gwcjIwbicgfV0sXG4gIFsncmVjdCcsIHsgd2lkdGg6ICcyMCcsIGhlaWdodDogJzE0JywgeDogJzInLCB5OiAnMycsIHJ4OiAnMicsIGtleTogJzQ4aTY1MScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xMiAxN3Y0Jywga2V5OiAnMXJpd3ZoJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTggMjFoOCcsIGtleTogJzFldjZmMycgfV0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgTW9uaXRvclVwXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSnRPU0F4TUNBekxUTWdNeUF6SWlBdlBnb2dJRHh3WVhSb0lHUTlJazB4TWlBeE0xWTNJaUF2UGdvZ0lEeHlaV04wSUhkcFpIUm9QU0l5TUNJZ2FHVnBaMmgwUFNJeE5DSWdlRDBpTWlJZ2VUMGlNeUlnY25nOUlqSWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRURXlJREUzZGpRaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRnZ01qRm9PQ0lnTHo0S1BDOXpkbWMrQ2c9PSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvbW9uaXRvci11cFxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IE1vbml0b3JVcCA9IGNyZWF0ZUx1Y2lkZUljb24oJ21vbml0b3ItdXAnLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgTW9uaXRvclVwO1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdNNS41IDIwSDgnLCBrZXk6ICcxazQwczUnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTcgOWguMDEnLCBrZXk6ICcxajI0bm4nIH1dLFxuICBbJ3JlY3QnLCB7IHdpZHRoOiAnMTAnLCBoZWlnaHQ6ICcxNicsIHg6ICcxMicsIHk6ICc0Jywgcng6ICcyJywga2V5OiAnaXhsaXVhJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTggNkg0YTIgMiAwIDAgMC0yIDJ2NmEyIDIgMCAwIDAgMiAyaDQnLCBrZXk6ICcxbXA2ZTEnIH1dLFxuICBbJ2NpcmNsZScsIHsgY3g6ICcxNycsIGN5OiAnMTUnLCByOiAnMScsIGtleTogJ3RxdmFzaCcgfV0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgTW9uaXRvclNwZWFrZXJcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk5TNDFJREl3U0RnaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRFM0lEbG9MakF4SWlBdlBnb2dJRHh5WldOMElIZHBaSFJvUFNJeE1DSWdhR1ZwWjJoMFBTSXhOaUlnZUQwaU1USWlJSGs5SWpRaUlISjRQU0l5SWlBdlBnb2dJRHh3WVhSb0lHUTlJazA0SURaSU5HRXlJRElnTUNBd0lEQXRNaUF5ZGpaaE1pQXlJREFnTUNBd0lESWdNbWcwSWlBdlBnb2dJRHhqYVhKamJHVWdZM2c5SWpFM0lpQmplVDBpTVRVaUlISTlJakVpSUM4K0Nqd3ZjM1puUGdvPSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvbW9uaXRvci1zcGVha2VyXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgTW9uaXRvclNwZWFrZXIgPSBjcmVhdGVMdWNpZGVJY29uKCdtb25pdG9yLXNwZWFrZXInLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgTW9uaXRvclNwZWFrZXI7XG4iLCJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ20xNC41IDEyLjUtNS01Jywga2V5OiAnMWphaG41JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnbTkuNSAxMi41IDUtNScsIGtleTogJzFrMnQ3YicgfV0sXG4gIFsncmVjdCcsIHsgd2lkdGg6ICcyMCcsIGhlaWdodDogJzE0JywgeDogJzInLCB5OiAnMycsIHJ4OiAnMicsIGtleTogJzQ4aTY1MScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xMiAxN3Y0Jywga2V5OiAnMXJpd3ZoJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTggMjFoOCcsIGtleTogJzFldjZmMycgfV0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgTW9uaXRvclhcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKdE1UUXVOU0F4TWk0MUxUVXROU0lnTHo0S0lDQThjR0YwYUNCa1BTSnRPUzQxSURFeUxqVWdOUzAxSWlBdlBnb2dJRHh5WldOMElIZHBaSFJvUFNJeU1DSWdhR1ZwWjJoMFBTSXhOQ0lnZUQwaU1pSWdlVDBpTXlJZ2NuZzlJaklpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVEV5SURFM2RqUWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRUZ2dNakZvT0NJZ0x6NEtQQzl6ZG1jK0NnPT0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL21vbml0b3IteFxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IE1vbml0b3JYID0gY3JlYXRlTHVjaWRlSWNvbignbW9uaXRvci14JywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IE1vbml0b3JYO1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbJ3JlY3QnLCB7IHdpZHRoOiAnMjAnLCBoZWlnaHQ6ICcxNCcsIHg6ICcyJywgeTogJzMnLCByeDogJzInLCBrZXk6ICc0OGk2NTEnIH1dLFxuICBbJ2xpbmUnLCB7IHgxOiAnOCcsIHgyOiAnMTYnLCB5MTogJzIxJywgeTI6ICcyMScsIGtleTogJzFzdmtlaCcgfV0sXG4gIFsnbGluZScsIHsgeDE6ICcxMicsIHgyOiAnMTInLCB5MTogJzE3JywgeTI6ICcyMScsIGtleTogJ3Z3MXFtbScgfV0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgTW9uaXRvclxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y21WamRDQjNhV1IwYUQwaU1qQWlJR2hsYVdkb2REMGlNVFFpSUhnOUlqSWlJSGs5SWpNaUlISjRQU0l5SWlBdlBnb2dJRHhzYVc1bElIZ3hQU0k0SWlCNE1qMGlNVFlpSUhreFBTSXlNU0lnZVRJOUlqSXhJaUF2UGdvZ0lEeHNhVzVsSUhneFBTSXhNaUlnZURJOUlqRXlJaUI1TVQwaU1UY2lJSGt5UFNJeU1TSWdMejRLUEM5emRtYytDZz09KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9tb25pdG9yXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgTW9uaXRvciA9IGNyZWF0ZUx1Y2lkZUljb24oJ21vbml0b3InLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgTW9uaXRvcjtcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTEyIDNhNiA2IDAgMCAwIDkgOSA5IDkgMCAxIDEtOS05Jywga2V5OiAnNGF5MGl1JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTIwIDN2NCcsIGtleTogJzFvbGxpMScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00yMiA1aC00Jywga2V5OiAnMWd2cWF1JyB9XSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBNb29uU3RhclxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTVRJZ00yRTJJRFlnTUNBd0lEQWdPU0E1SURrZ09TQXdJREVnTVMwNUxUa2lJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRUSXdJRE4yTkNJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTWpJZ05XZ3ROQ0lnTHo0S1BDOXpkbWMrQ2c9PSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvbW9vbi1zdGFyXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgTW9vblN0YXIgPSBjcmVhdGVMdWNpZGVJY29uKCdtb29uLXN0YXInLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgTW9vblN0YXI7XG4iLCJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ00xMiAzYTYgNiAwIDAgMCA5IDkgOSA5IDAgMSAxLTktOVonLCBrZXk6ICdhN3RuMTgnIH1dLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIE1vb25cbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1USWdNMkUySURZZ01DQXdJREFnT1NBNUlEa2dPU0F3SURFZ01TMDVMVGxhSWlBdlBnbzhMM04yWno0SykgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvbW9vblxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IE1vb24gPSBjcmVhdGVMdWNpZGVJY29uKCdtb29uJywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IE1vb247XG4iLCJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ204IDMgNCA4IDUtNSA1IDE1SDJMOCAzeicsIGtleTogJ290a2w2MycgfV0sXG4gIFtcbiAgICAncGF0aCcsXG4gICAgeyBkOiAnTTQuMTQgMTUuMDhjMi42Mi0xLjU3IDUuMjQtMS40MyA3Ljg2LjQyIDIuNzQgMS45NCA1LjQ5IDIgOC4yMy4xOScsIGtleTogJzFwdm1tcCcgfSxcbiAgXSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBNb3VudGFpblNub3dcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKdE9DQXpJRFFnT0NBMUxUVWdOU0F4TlVneVREZ2dNM29pSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVFF1TVRRZ01UVXVNRGhqTWk0Mk1pMHhMalUzSURVdU1qUXRNUzQwTXlBM0xqZzJMalF5SURJdU56UWdNUzQ1TkNBMUxqUTVJRElnT0M0eU15NHhPU0lnTHo0S1BDOXpkbWMrQ2c9PSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvbW91bnRhaW4tc25vd1xuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IE1vdW50YWluU25vdyA9IGNyZWF0ZUx1Y2lkZUljb24oJ21vdW50YWluLXNub3cnLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgTW91bnRhaW5Tbm93O1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1sncGF0aCcsIHsgZDogJ204IDMgNCA4IDUtNSA1IDE1SDJMOCAzeicsIGtleTogJ290a2w2MycgfV1dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgTW91bnRhaW5cbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKdE9DQXpJRFFnT0NBMUxUVWdOU0F4TlVneVREZ2dNM29pSUM4K0Nqd3ZjM1puUGdvPSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvbW91bnRhaW5cbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBNb3VudGFpbiA9IGNyZWF0ZUx1Y2lkZUljb24oJ21vdW50YWluJywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IE1vdW50YWluO1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdNMTIgNnYuMzQzJywga2V5OiAnMWd5aGV4JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTE4LjIxOCAxOC4yMThBNyA3IDAgMCAxIDUgMTVWOWE3IDcgMCAwIDEgLjc4Mi0zLjIxOCcsIGtleTogJ3VrenowMScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xOSAxMy4zNDNWOUE3IDcgMCAwIDAgOC41NiAyLjkwMicsIGtleTogJzEwNGp5OScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00yMiAyMiAyIDInLCBrZXk6ICcxcjh0bjknIH1dLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIE1vdXNlT2ZmXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NVElnTm5ZdU16UXpJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHhPQzR5TVRnZ01UZ3VNakU0UVRjZ055QXdJREFnTVNBMUlERTFWamxoTnlBM0lEQWdNQ0F4SUM0M09ESXRNeTR5TVRnaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRFNUlERXpMak0wTTFZNVFUY2dOeUF3SURBZ01DQTRMalUySURJdU9UQXlJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHlNaUF5TWlBeUlESWlJQzgrQ2p3dmMzWm5QZ289KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9tb3VzZS1vZmZcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBNb3VzZU9mZiA9IGNyZWF0ZUx1Y2lkZUljb24oJ21vdXNlLW9mZicsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBNb3VzZU9mZjtcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgW1xuICAgICdwYXRoJyxcbiAgICB7XG4gICAgICBkOiAnTTQuMDM3IDQuNjg4YS40OTUuNDk1IDAgMCAxIC42NTEtLjY1MWwxNiA2LjVhLjUuNSAwIDAgMS0uMDYzLjk0N2wtNi4xMjQgMS41OGEyIDIgMCAwIDAtMS40MzggMS40MzVsLTEuNTc5IDYuMTI2YS41LjUgMCAwIDEtLjk0Ny4wNjN6JyxcbiAgICAgIGtleTogJ2VkZXV1cCcsXG4gICAgfSxcbiAgXSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBNb3VzZVBvaW50ZXIyXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5OQzR3TXpjZ05DNDJPRGhoTGpRNU5TNDBPVFVnTUNBd0lERWdMalkxTVMwdU5qVXhiREUySURZdU5XRXVOUzQxSURBZ01DQXhMUzR3TmpNdU9UUTNiQzAyTGpFeU5DQXhMalU0WVRJZ01pQXdJREFnTUMweExqUXpPQ0F4TGpRek5Xd3RNUzQxTnprZ05pNHhNalpoTGpVdU5TQXdJREFnTVMwdU9UUTNMakEyTTNvaUlDOCtDand2YzNablBnbz0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL21vdXNlLXBvaW50ZXItMlxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IE1vdXNlUG9pbnRlcjIgPSBjcmVhdGVMdWNpZGVJY29uKCdtb3VzZS1wb2ludGVyLTInLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgTW91c2VQb2ludGVyMjtcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTE0IDQuMSAxMiA2Jywga2V5OiAnaXRhOGk0JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnbTUuMSA4LTIuOS0uOCcsIGtleTogJzFnbzNrZicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ202IDEyLTEuOSAyJywga2V5OiAnbW5odDk3JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTcuMiAyLjIgOCA1LjEnLCBrZXk6ICcxY2ZrbzEnIH1dLFxuICBbXG4gICAgJ3BhdGgnLFxuICAgIHtcbiAgICAgIGQ6ICdNOS4wMzcgOS42OWEuNDk4LjQ5OCAwIDAgMSAuNjUzLS42NTNsMTEgNC41YS41LjUgMCAwIDEtLjA3NC45NDlsLTQuMzQ5IDEuMDQxYTEgMSAwIDAgMC0uNzQuNzM5bC0xLjA0IDQuMzVhLjUuNSAwIDAgMS0uOTUuMDc0eicsXG4gICAgICBrZXk6ICdzMGgzeXonLFxuICAgIH0sXG4gIF0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgTW91c2VQb2ludGVyQ2xpY2tcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1UUWdOQzR4SURFeUlEWWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaWJUVXVNU0E0TFRJdU9TMHVPQ0lnTHo0S0lDQThjR0YwYUNCa1BTSnROaUF4TWkweExqa2dNaUlnTHo0S0lDQThjR0YwYUNCa1BTSk5OeTR5SURJdU1pQTRJRFV1TVNJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOT1M0d016Y2dPUzQyT1dFdU5EazRMalE1T0NBd0lEQWdNU0F1TmpVekxTNDJOVE5zTVRFZ05DNDFZUzQxTGpVZ01DQXdJREV0TGpBM05DNDVORGxzTFRRdU16UTVJREV1TURReFlURWdNU0F3SURBZ01DMHVOelF1TnpNNWJDMHhMakEwSURRdU16VmhMalV1TlNBd0lEQWdNUzB1T1RVdU1EYzBlaUlnTHo0S1BDOXpkbWMrQ2c9PSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvbW91c2UtcG9pbnRlci1jbGlja1xuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IE1vdXNlUG9pbnRlckNsaWNrID0gY3JlYXRlTHVjaWRlSWNvbignbW91c2UtcG9pbnRlci1jbGljaycsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBNb3VzZVBvaW50ZXJDbGljaztcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgW1xuICAgICdwYXRoJyxcbiAgICB7XG4gICAgICBkOiAnTTIuMDM0IDIuNjgxYS40OTguNDk4IDAgMCAxIC42NDctLjY0N2w5IDMuNWEuNS41IDAgMCAxLS4wMzMuOTQ0TDguMjA0IDcuNTQ1YTEgMSAwIDAgMC0uNjYuNjZsLTEuMDY2IDMuNDQzYS41LjUgMCAwIDEtLjk0NC4wMzN6JyxcbiAgICAgIGtleTogJzExcHAxaScsXG4gICAgfSxcbiAgXSxcbiAgWydjaXJjbGUnLCB7IGN4OiAnMTYnLCBjeTogJzE2JywgcjogJzYnLCBrZXk6ICdxb28zYzQnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdtMTEuOCAxMS44IDguNCA4LjQnLCBrZXk6ICdvb2d2ZGonIH1dLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIE1vdXNlUG9pbnRlckJhblxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTWk0d016UWdNaTQyT0RGaExqUTVPQzQwT1RnZ01DQXdJREVnTGpZME55MHVOalEzYkRrZ015NDFZUzQxTGpVZ01DQXdJREV0TGpBek15NDVORFJNT0M0eU1EUWdOeTQxTkRWaE1TQXhJREFnTUNBd0xTNDJOaTQyTm13dE1TNHdOallnTXk0ME5ETmhMalV1TlNBd0lEQWdNUzB1T1RRMExqQXpNM29pSUM4K0NpQWdQR05wY21Oc1pTQmplRDBpTVRZaUlHTjVQU0l4TmlJZ2NqMGlOaUlnTHo0S0lDQThjR0YwYUNCa1BTSnRNVEV1T0NBeE1TNDRJRGd1TkNBNExqUWlJQzgrQ2p3dmMzWm5QZ289KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9tb3VzZS1wb2ludGVyLWJhblxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IE1vdXNlUG9pbnRlckJhbiA9IGNyZWF0ZUx1Y2lkZUljb24oJ21vdXNlLXBvaW50ZXItYmFuJywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IE1vdXNlUG9pbnRlckJhbjtcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTEyLjU4NiAxMi41ODYgMTkgMTknLCBrZXk6ICdlYTV4bzcnIH1dLFxuICBbXG4gICAgJ3BhdGgnLFxuICAgIHtcbiAgICAgIGQ6ICdNMy42ODggMy4wMzdhLjQ5Ny40OTcgMCAwIDAtLjY1MS42NTFsNi41IDE1Ljk5OWEuNTAxLjUwMSAwIDAgMCAuOTQ3LS4wNjJsMS41NjktNi4wODNhMiAyIDAgMCAxIDEuNDQ4LTEuNDc5bDYuMTI0LTEuNTc5YS41LjUgMCAwIDAgLjA2My0uOTQ3eicsXG4gICAgICBrZXk6ICcyNzdlNXUnLFxuICAgIH0sXG4gIF0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgTW91c2VQb2ludGVyXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NVEl1TlRnMklERXlMalU0TmlBeE9TQXhPU0lnTHo0S0lDQThjR0YwYUNCa1BTSk5NeTQyT0RnZ015NHdNemRoTGpRNU55NDBPVGNnTUNBd0lEQXRMalkxTVM0Mk5URnNOaTQxSURFMUxqazVPV0V1TlRBeExqVXdNU0F3SURBZ01DQXVPVFEzTFM0d05qSnNNUzQxTmprdE5pNHdPRE5oTWlBeUlEQWdNQ0F4SURFdU5EUTRMVEV1TkRjNWJEWXVNVEkwTFRFdU5UYzVZUzQxTGpVZ01DQXdJREFnTGpBMk15MHVPVFEzZWlJZ0x6NEtQQzl6ZG1jK0NnPT0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL21vdXNlLXBvaW50ZXJcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBNb3VzZVBvaW50ZXIgPSBjcmVhdGVMdWNpZGVJY29uKCdtb3VzZS1wb2ludGVyJywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IE1vdXNlUG9pbnRlcjtcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgWydyZWN0JywgeyB4OiAnNScsIHk6ICcyJywgd2lkdGg6ICcxNCcsIGhlaWdodDogJzIwJywgcng6ICc3Jywga2V5OiAnMTFvbDY2JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTEyIDZ2NCcsIGtleTogJzE2Y2x4ZicgfV0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgTW91c2VcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNtVmpkQ0I0UFNJMUlpQjVQU0l5SWlCM2FXUjBhRDBpTVRRaUlHaGxhV2RvZEQwaU1qQWlJSEo0UFNJM0lpQXZQZ29nSUR4d1lYUm9JR1E5SWsweE1pQTJkalFpSUM4K0Nqd3ZjM1puUGdvPSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvbW91c2VcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBNb3VzZSA9IGNyZWF0ZUx1Y2lkZUljb24oJ21vdXNlJywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IE1vdXNlO1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdNNSAzdjE2aDE2Jywga2V5OiAnMW1xbWY5JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnbTUgMTkgNi02Jywga2V5OiAnamg2aGJiJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnbTIgNiAzLTMgMyAzJywga2V5OiAndGt5dnhhJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnbTE4IDE2IDMgMy0zIDMnLCBrZXk6ICcxZDRnbHQnIH1dLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIE1vdmUzZFxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTlNBemRqRTJhREUySWlBdlBnb2dJRHh3WVhSb0lHUTlJbTAxSURFNUlEWXROaUlnTHo0S0lDQThjR0YwYUNCa1BTSnRNaUEySURNdE15QXpJRE1pSUM4K0NpQWdQSEJoZEdnZ1pEMGliVEU0SURFMklETWdNeTB6SURNaUlDOCtDand2YzNablBnbz0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL21vdmUtM2RcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBNb3ZlM2QgPSBjcmVhdGVMdWNpZGVJY29uKCdtb3ZlLTNkJywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IE1vdmUzZDtcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTE5IDEzdjZoLTYnLCBrZXk6ICcxaHhsNmQnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNNSAxMVY1aDYnLCBrZXk6ICcxMmUyeGUnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdtNSA1IDE0IDE0Jywga2V5OiAnMTFhbnVwJyB9XSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBNb3ZlRGlhZ29uYWwyXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NVGtnTVROMk5tZ3ROaUlnTHo0S0lDQThjR0YwYUNCa1BTSk5OU0F4TVZZMWFEWWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaWJUVWdOU0F4TkNBeE5DSWdMejRLUEM5emRtYytDZz09KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9tb3ZlLWRpYWdvbmFsLTJcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBNb3ZlRGlhZ29uYWwyID0gY3JlYXRlTHVjaWRlSWNvbignbW92ZS1kaWFnb25hbC0yJywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IE1vdmVEaWFnb25hbDI7XG4iLCJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ00xMSAxOUg1di02Jywga2V5OiAnOGF3aWZqJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTEzIDVoNnY2Jywga2V5OiAnN3ZveTFxJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTE5IDUgNSAxOScsIGtleTogJ3d3YWoxeicgfV0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgTW92ZURpYWdvbmFsXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NVEVnTVRsSU5YWXROaUlnTHo0S0lDQThjR0YwYUNCa1BTSk5NVE1nTldnMmRqWWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRURTVJRFVnTlNBeE9TSWdMejRLUEM5emRtYytDZz09KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9tb3ZlLWRpYWdvbmFsXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgTW92ZURpYWdvbmFsID0gY3JlYXRlTHVjaWRlSWNvbignbW92ZS1kaWFnb25hbCcsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBNb3ZlRGlhZ29uYWw7XG4iLCJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ00xMSAxOUg1VjEzJywga2V5OiAnMWFrbWh0JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTE5IDVMNSAxOScsIGtleTogJzcydTR5aicgfV0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgTW92ZURvd25MZWZ0XG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NVEVnTVRsSU5WWXhNeUlnTHo0S0lDQThjR0YwYUNCa1BTSk5NVGtnTlV3MUlERTVJaUF2UGdvOEwzTjJaejRLKSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9tb3ZlLWRvd24tbGVmdFxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IE1vdmVEb3duTGVmdCA9IGNyZWF0ZUx1Y2lkZUljb24oJ21vdmUtZG93bi1sZWZ0JywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IE1vdmVEb3duTGVmdDtcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTE5IDEzVjE5SDEzJywga2V5OiAnMTB2a3pxJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTUgNUwxOSAxOScsIGtleTogJzV6bTJmdicgfV0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgTW92ZURvd25SaWdodFxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTVRrZ01UTldNVGxJTVRNaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRVZ05Vd3hPU0F4T1NJZ0x6NEtQQzl6ZG1jK0NnPT0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL21vdmUtZG93bi1yaWdodFxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IE1vdmVEb3duUmlnaHQgPSBjcmVhdGVMdWNpZGVJY29uKCdtb3ZlLWRvd24tcmlnaHQnLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgTW92ZURvd25SaWdodDtcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTggMThMMTIgMjJMMTYgMTgnLCBrZXk6ICdjc2t2ZnYnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTIgMlYyMicsIGtleTogJ3I4OXJ6aycgfV0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgTW92ZURvd25cbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk9DQXhPRXd4TWlBeU1rd3hOaUF4T0NJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTVRJZ01sWXlNaUlnTHo0S1BDOXpkbWMrQ2c9PSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvbW92ZS1kb3duXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgTW92ZURvd24gPSBjcmVhdGVMdWNpZGVJY29uKCdtb3ZlLWRvd24nLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgTW92ZURvd247XG4iLCJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ20xOCA4IDQgNC00IDQnLCBrZXk6ICcxYWsxM2snIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMiAxMmgyMCcsIGtleTogJzlpNHB1NCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ202IDgtNCA0IDQgNCcsIGtleTogJzE1enJncicgfV0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgTW92ZUhvcml6b250YWxcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKdE1UZ2dPQ0EwSURRdE5DQTBJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHlJREV5YURJd0lpQXZQZ29nSUR4d1lYUm9JR1E5SW0wMklEZ3ROQ0EwSURRZ05DSWdMejRLUEM5emRtYytDZz09KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9tb3ZlLWhvcml6b250YWxcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBNb3ZlSG9yaXpvbnRhbCA9IGNyZWF0ZUx1Y2lkZUljb24oJ21vdmUtaG9yaXpvbnRhbCcsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBNb3ZlSG9yaXpvbnRhbDtcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTYgOEwyIDEyTDYgMTYnLCBrZXk6ICdreXZ3ZXgnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMiAxMkgyMicsIGtleTogJzFtOGNpZycgfV0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgTW92ZUxlZnRcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk5pQTRURElnTVRKTU5pQXhOaUlnTHo0S0lDQThjR0YwYUNCa1BTSk5NaUF4TWtneU1pSWdMejRLUEM5emRtYytDZz09KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9tb3ZlLWxlZnRcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBNb3ZlTGVmdCA9IGNyZWF0ZUx1Y2lkZUljb24oJ21vdmUtbGVmdCcsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBNb3ZlTGVmdDtcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTUgMTFWNUgxMScsIGtleTogJzNxNzhnOScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ001IDVMMTkgMTknLCBrZXk6ICc1em0yZnYnIH1dLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIE1vdmVVcExlZnRcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk5TQXhNVlkxU0RFeElpQXZQZ29nSUR4d1lYUm9JR1E5SWswMUlEVk1NVGtnTVRraUlDOCtDand2YzNablBnbz0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL21vdmUtdXAtbGVmdFxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IE1vdmVVcExlZnQgPSBjcmVhdGVMdWNpZGVJY29uKCdtb3ZlLXVwLWxlZnQnLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgTW92ZVVwTGVmdDtcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTE4IDhMMjIgMTJMMTggMTYnLCBrZXk6ICcxcjBvdWknIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMiAxMkgyMicsIGtleTogJzFtOGNpZycgfV0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgTW92ZVJpZ2h0XG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NVGdnT0V3eU1pQXhNa3d4T0NBeE5pSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk1pQXhNa2d5TWlJZ0x6NEtQQzl6ZG1jK0NnPT0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL21vdmUtcmlnaHRcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBNb3ZlUmlnaHQgPSBjcmVhdGVMdWNpZGVJY29uKCdtb3ZlLXJpZ2h0JywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IE1vdmVSaWdodDtcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTEzIDVIMTlWMTEnLCBrZXk6ICcxbjFneXYnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTkgNUw1IDE5Jywga2V5OiAnNzJ1NHlqJyB9XSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBNb3ZlVXBSaWdodFxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTVRNZ05VZ3hPVll4TVNJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTVRrZ05VdzFJREU1SWlBdlBnbzhMM04yWno0SykgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvbW92ZS11cC1yaWdodFxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IE1vdmVVcFJpZ2h0ID0gY3JlYXRlTHVjaWRlSWNvbignbW92ZS11cC1yaWdodCcsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBNb3ZlVXBSaWdodDtcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTggNkwxMiAyTDE2IDYnLCBrZXk6ICcxeXZreXgnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTIgMlYyMicsIGtleTogJ3I4OXJ6aycgfV0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgTW92ZVVwXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5PQ0EyVERFeUlESk1NVFlnTmlJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTVRJZ01sWXlNaUlnTHo0S1BDOXpkbWMrQ2c9PSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvbW92ZS11cFxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IE1vdmVVcCA9IGNyZWF0ZUx1Y2lkZUljb24oJ21vdmUtdXAnLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgTW92ZVVwO1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdNMTIgMnYyMCcsIGtleTogJ3Q2enAzbScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ204IDE4IDQgNCA0LTQnLCBrZXk6ICdiaDV0dTMnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdtOCA2IDQtNCA0IDQnLCBrZXk6ICd5Ym5nOWcnIH1dLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIE1vdmVWZXJ0aWNhbFxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTVRJZ01uWXlNQ0lnTHo0S0lDQThjR0YwYUNCa1BTSnRPQ0F4T0NBMElEUWdOQzAwSWlBdlBnb2dJRHh3WVhSb0lHUTlJbTA0SURZZ05DMDBJRFFnTkNJZ0x6NEtQQzl6ZG1jK0NnPT0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL21vdmUtdmVydGljYWxcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBNb3ZlVmVydGljYWwgPSBjcmVhdGVMdWNpZGVJY29uKCdtb3ZlLXZlcnRpY2FsJywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IE1vdmVWZXJ0aWNhbDtcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTEyIDJ2MjAnLCBrZXk6ICd0NnpwM20nIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdtMTUgMTktMyAzLTMtMycsIGtleTogJzExZXUwNCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ20xOSA5IDMgMy0zIDMnLCBrZXk6ICcxbWc3eTInIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMiAxMmgyMCcsIGtleTogJzlpNHB1NCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ201IDktMyAzIDMgMycsIGtleTogJ2o2NGtpZScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ205IDUgMy0zIDMgMycsIGtleTogJ2w4dmR3NicgfV0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgTW92ZVxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTVRJZ01uWXlNQ0lnTHo0S0lDQThjR0YwYUNCa1BTSnRNVFVnTVRrdE15QXpMVE10TXlJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0p0TVRrZ09TQXpJRE10TXlBeklpQXZQZ29nSUR4d1lYUm9JR1E5SWsweUlERXlhREl3SWlBdlBnb2dJRHh3WVhSb0lHUTlJbTAxSURrdE15QXpJRE1nTXlJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0p0T1NBMUlETXRNeUF6SURNaUlDOCtDand2YzNablBnbz0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL21vdmVcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBNb3ZlID0gY3JlYXRlTHVjaWRlSWNvbignbW92ZScsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBNb3ZlO1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbJ2NpcmNsZScsIHsgY3g6ICc4JywgY3k6ICcxOCcsIHI6ICc0Jywga2V5OiAnMWZjMG1nJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTEyIDE4VjJsNyA0Jywga2V5OiAnZzA0cm1lJyB9XSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBNdXNpYzJcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOFkybHlZMnhsSUdONFBTSTRJaUJqZVQwaU1UZ2lJSEk5SWpRaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRFeUlERTRWakpzTnlBMElpQXZQZ284TDNOMlp6NEspIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL211c2ljLTJcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBNdXNpYzIgPSBjcmVhdGVMdWNpZGVJY29uKCdtdXNpYy0yJywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IE11c2ljMjtcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgWydjaXJjbGUnLCB7IGN4OiAnMTInLCBjeTogJzE4JywgcjogJzQnLCBrZXk6ICdtM3I5d3MnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTYgMThWMicsIGtleTogJzQweDJtNScgfV0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgTXVzaWMzXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThZMmx5WTJ4bElHTjRQU0l4TWlJZ1kzazlJakU0SWlCeVBTSTBJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHhOaUF4T0ZZeUlpQXZQZ284TDNOMlp6NEspIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL211c2ljLTNcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBNdXNpYzMgPSBjcmVhdGVMdWNpZGVJY29uKCdtdXNpYy0zJywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IE11c2ljMztcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTkgMThWNWwxMi0ydjEzJywga2V5OiAnMWpteWMyJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnbTkgOSAxMi0yJywga2V5OiAnMWU2NG4yJyB9XSxcbiAgWydjaXJjbGUnLCB7IGN4OiAnNicsIGN5OiAnMTgnLCByOiAnMycsIGtleTogJ2ZxbWN5bScgfV0sXG4gIFsnY2lyY2xlJywgeyBjeDogJzE4JywgY3k6ICcxNicsIHI6ICczJywga2V5OiAnMWhsdWhnJyB9XSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBNdXNpYzRcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk9TQXhPRlkxYkRFeUxUSjJNVE1pSUM4K0NpQWdQSEJoZEdnZ1pEMGliVGtnT1NBeE1pMHlJaUF2UGdvZ0lEeGphWEpqYkdVZ1kzZzlJallpSUdONVBTSXhPQ0lnY2owaU15SWdMejRLSUNBOFkybHlZMnhsSUdONFBTSXhPQ0lnWTNrOUlqRTJJaUJ5UFNJeklpQXZQZ284TDNOMlp6NEspIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL211c2ljLTRcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBNdXNpYzQgPSBjcmVhdGVMdWNpZGVJY29uKCdtdXNpYy00JywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IE11c2ljNDtcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTkgMThWNWwxMi0ydjEzJywga2V5OiAnMWpteWMyJyB9XSxcbiAgWydjaXJjbGUnLCB7IGN4OiAnNicsIGN5OiAnMTgnLCByOiAnMycsIGtleTogJ2ZxbWN5bScgfV0sXG4gIFsnY2lyY2xlJywgeyBjeDogJzE4JywgY3k6ICcxNicsIHI6ICczJywga2V5OiAnMWhsdWhnJyB9XSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBNdXNpY1xuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOT1NBeE9GWTFiREV5TFRKMk1UTWlJQzgrQ2lBZ1BHTnBjbU5zWlNCamVEMGlOaUlnWTNrOUlqRTRJaUJ5UFNJeklpQXZQZ29nSUR4amFYSmpiR1VnWTNnOUlqRTRJaUJqZVQwaU1UWWlJSEk5SWpNaUlDOCtDand2YzNablBnbz0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL211c2ljXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgTXVzaWMgPSBjcmVhdGVMdWNpZGVJY29uKCdtdXNpYycsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBNdXNpYztcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTkuMzEgOS4zMSA1IDIxbDctNCA3IDQtMS4xNy0zLjE3Jywga2V5OiAncW9xMm8yJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTE0LjUzIDguODggMTIgMmwtMS4xNyAzLjE3Jywga2V5OiAnazNzanp5JyB9XSxcbiAgWydsaW5lJywgeyB4MTogJzInLCB4MjogJzIyJywgeTE6ICcyJywgeTI6ICcyMicsIGtleTogJ2E2cDZ1aicgfV0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgTmF2aWdhdGlvbjJPZmZcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk9TNHpNU0E1TGpNeElEVWdNakZzTnkwMElEY2dOQzB4TGpFM0xUTXVNVGNpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVEUwTGpVeklEZ3VPRGdnTVRJZ01td3RNUzR4TnlBekxqRTNJaUF2UGdvZ0lEeHNhVzVsSUhneFBTSXlJaUI0TWowaU1qSWlJSGt4UFNJeUlpQjVNajBpTWpJaUlDOCtDand2YzNablBnbz0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL25hdmlnYXRpb24tMi1vZmZcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBOYXZpZ2F0aW9uMk9mZiA9IGNyZWF0ZUx1Y2lkZUljb24oJ25hdmlnYXRpb24tMi1vZmYnLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgTmF2aWdhdGlvbjJPZmY7XG4iLCJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbXG4gIFsncG9seWdvbicsIHsgcG9pbnRzOiAnMTIgMiAxOSAyMSAxMiAxNyA1IDIxIDEyIDInLCBrZXk6ICd4OGMwcWcnIH1dLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIE5hdmlnYXRpb24yXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjRzlzZVdkdmJpQndiMmx1ZEhNOUlqRXlJRElnTVRrZ01qRWdNVElnTVRjZ05TQXlNU0F4TWlBeUlpQXZQZ284TDNOMlp6NEspIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL25hdmlnYXRpb24tMlxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IE5hdmlnYXRpb24yID0gY3JlYXRlTHVjaWRlSWNvbignbmF2aWdhdGlvbi0yJywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IE5hdmlnYXRpb24yO1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdNOC40MyA4LjQzIDMgMTFsOCAyIDIgOCAyLjU3LTUuNDMnLCBrZXk6ICcxdmR0YjcnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTcuMzkgMTEuNzMgMjIgMmwtOS43MyA0LjYxJywga2V5OiAndHlhM3I2JyB9XSxcbiAgWydsaW5lJywgeyB4MTogJzInLCB4MjogJzIyJywgeTE6ICcyJywgeTI6ICcyMicsIGtleTogJ2E2cDZ1aicgfV0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgTmF2aWdhdGlvbk9mZlxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOT0M0ME15QTRMalF6SURNZ01URnNPQ0F5SURJZ09DQXlMalUzTFRVdU5ETWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRURTNMak01SURFeExqY3pJREl5SURKc0xUa3VOek1nTkM0Mk1TSWdMejRLSUNBOGJHbHVaU0I0TVQwaU1pSWdlREk5SWpJeUlpQjVNVDBpTWlJZ2VUSTlJakl5SWlBdlBnbzhMM04yWno0SykgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvbmF2aWdhdGlvbi1vZmZcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBOYXZpZ2F0aW9uT2ZmID0gY3JlYXRlTHVjaWRlSWNvbignbmF2aWdhdGlvbi1vZmYnLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgTmF2aWdhdGlvbk9mZjtcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgWydwb2x5Z29uJywgeyBwb2ludHM6ICczIDExIDIyIDIgMTMgMjEgMTEgMTMgMyAxMScsIGtleTogJzFsdHgwdCcgfV0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgTmF2aWdhdGlvblxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0c5c2VXZHZiaUJ3YjJsdWRITTlJak1nTVRFZ01qSWdNaUF4TXlBeU1TQXhNU0F4TXlBeklERXhJaUF2UGdvOEwzTjJaejRLKSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9uYXZpZ2F0aW9uXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgTmF2aWdhdGlvbiA9IGNyZWF0ZUx1Y2lkZUljb24oJ25hdmlnYXRpb24nLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgTmF2aWdhdGlvbjtcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgWydyZWN0JywgeyB4OiAnMTYnLCB5OiAnMTYnLCB3aWR0aDogJzYnLCBoZWlnaHQ6ICc2Jywgcng6ICcxJywga2V5OiAnNHEyemcwJyB9XSxcbiAgWydyZWN0JywgeyB4OiAnMicsIHk6ICcxNicsIHdpZHRoOiAnNicsIGhlaWdodDogJzYnLCByeDogJzEnLCBrZXk6ICc4Y3ZoYjknIH1dLFxuICBbJ3JlY3QnLCB7IHg6ICc5JywgeTogJzInLCB3aWR0aDogJzYnLCBoZWlnaHQ6ICc2Jywgcng6ICcxJywga2V5OiAnMWVnYjcwJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTUgMTZ2LTNhMSAxIDAgMCAxIDEtMWgxMmExIDEgMCAwIDEgMSAxdjMnLCBrZXk6ICcxanNmOXAnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTIgMTJWOCcsIGtleTogJzI4NzR6ZCcgfV0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgTmV0d29ya1xuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y21WamRDQjRQU0l4TmlJZ2VUMGlNVFlpSUhkcFpIUm9QU0kySWlCb1pXbG5hSFE5SWpZaUlISjRQU0l4SWlBdlBnb2dJRHh5WldOMElIZzlJaklpSUhrOUlqRTJJaUIzYVdSMGFEMGlOaUlnYUdWcFoyaDBQU0kySWlCeWVEMGlNU0lnTHo0S0lDQThjbVZqZENCNFBTSTVJaUI1UFNJeUlpQjNhV1IwYUQwaU5pSWdhR1ZwWjJoMFBTSTJJaUJ5ZUQwaU1TSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk5TQXhObll0TTJFeElERWdNQ0F3SURFZ01TMHhhREV5WVRFZ01TQXdJREFnTVNBeElERjJNeUlnTHo0S0lDQThjR0YwYUNCa1BTSk5NVElnTVRKV09DSWdMejRLUEM5emRtYytDZz09KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9uZXR3b3JrXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgTmV0d29yayA9IGNyZWF0ZUx1Y2lkZUljb24oJ25ldHdvcmsnLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgTmV0d29yaztcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTE1IDE4aC01Jywga2V5OiAnOTVnMW0yJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTE4IDE0aC04Jywga2V5OiAnc3BvbmFlJyB9XSxcbiAgW1xuICAgICdwYXRoJyxcbiAgICB7XG4gICAgICBkOiAnTTQgMjJoMTZhMiAyIDAgMCAwIDItMlY0YTIgMiAwIDAgMC0yLTJIOGEyIDIgMCAwIDAtMiAydjE2YTIgMiAwIDAgMS00IDB2LTlhMiAyIDAgMCAxIDItMmgyJyxcbiAgICAgIGtleTogJzM5cGQzNicsXG4gICAgfSxcbiAgXSxcbiAgWydyZWN0JywgeyB3aWR0aDogJzgnLCBoZWlnaHQ6ICc0JywgeDogJzEwJywgeTogJzYnLCByeDogJzEnLCBrZXk6ICdheXd2MW4nIH1dLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIE5ld3NwYXBlclxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTVRVZ01UaG9MVFVpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVEU0SURFMGFDMDRJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMDBJREl5YURFMllUSWdNaUF3SURBZ01DQXlMVEpXTkdFeUlESWdNQ0F3SURBdE1pMHlTRGhoTWlBeUlEQWdNQ0F3TFRJZ01uWXhObUV5SURJZ01DQXdJREV0TkNBd2RpMDVZVElnTWlBd0lEQWdNU0F5TFRKb01pSWdMejRLSUNBOGNtVmpkQ0IzYVdSMGFEMGlPQ0lnYUdWcFoyaDBQU0kwSWlCNFBTSXhNQ0lnZVQwaU5pSWdjbmc5SWpFaUlDOCtDand2YzNablBnbz0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL25ld3NwYXBlclxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IE5ld3NwYXBlciA9IGNyZWF0ZUx1Y2lkZUljb24oJ25ld3NwYXBlcicsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBOZXdzcGFwZXI7XG4iLCJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ002IDguMzJhNy40MyA3LjQzIDAgMCAxIDAgNy4zNicsIGtleTogJzlpYXFlaScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ005LjQ2IDYuMjFhMTEuNzYgMTEuNzYgMCAwIDEgMCAxMS41OCcsIGtleTogJzF5aGE3bCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xMi45MSA0LjFhMTUuOTEgMTUuOTEgMCAwIDEgLjAxIDE1LjgnLCBrZXk6ICc0aXUyZ2snIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTYuMzcgMmEyMC4xNiAyMC4xNiAwIDAgMSAwIDIwJywga2V5OiAnc2FwOXUyJyB9XSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBOZmNcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk5pQTRMak15WVRjdU5ETWdOeTQwTXlBd0lEQWdNU0F3SURjdU16WWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRUa3VORFlnTmk0eU1XRXhNUzQzTmlBeE1TNDNOaUF3SURBZ01TQXdJREV4TGpVNElpQXZQZ29nSUR4d1lYUm9JR1E5SWsweE1pNDVNU0EwTGpGaE1UVXVPVEVnTVRVdU9URWdNQ0F3SURFZ0xqQXhJREUxTGpnaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRFMkxqTTNJREpoTWpBdU1UWWdNakF1TVRZZ01DQXdJREVnTUNBeU1DSWdMejRLUEM5emRtYytDZz09KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9uZmNcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBOZmMgPSBjcmVhdGVMdWNpZGVJY29uKCduZmMnLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgTmZjO1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdNMTIgMnYxMCcsIGtleTogJ21uZmJsJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnbTguNSA0IDcgNCcsIGtleTogJ20xeGprMycgfV0sXG4gIFsncGF0aCcsIHsgZDogJ204LjUgOCA3LTQnLCBrZXk6ICd0MG01ajYnIH1dLFxuICBbJ2NpcmNsZScsIHsgY3g6ICcxMicsIGN5OiAnMTcnLCByOiAnNScsIGtleTogJ3FiejhpcScgfV0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgTm9uQmluYXJ5XG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NVElnTW5ZeE1DSWdMejRLSUNBOGNHRjBhQ0JrUFNKdE9DNDFJRFFnTnlBMElpQXZQZ29nSUR4d1lYUm9JR1E5SW0wNExqVWdPQ0EzTFRRaUlDOCtDaUFnUEdOcGNtTnNaU0JqZUQwaU1USWlJR041UFNJeE55SWdjajBpTlNJZ0x6NEtQQzl6ZG1jK0NnPT0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL25vbi1iaW5hcnlcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBOb25CaW5hcnkgPSBjcmVhdGVMdWNpZGVJY29uKCdub24tYmluYXJ5JywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IE5vbkJpbmFyeTtcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTEzLjQgMkg2YTIgMiAwIDAgMC0yIDJ2MTZhMiAyIDAgMCAwIDIgMmgxMmEyIDIgMCAwIDAgMi0ydi03LjQnLCBrZXk6ICdyZTZucjInIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMiA2aDQnLCBrZXk6ICdhYXdiemonIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMiAxMGg0Jywga2V5OiAnbDBiZ2Q0JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTIgMTRoNCcsIGtleTogJzFnc3ZzZicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00yIDE4aDQnLCBrZXk6ICcxYnUydDEnIH1dLFxuICBbXG4gICAgJ3BhdGgnLFxuICAgIHtcbiAgICAgIGQ6ICdNMjEuMzc4IDUuNjI2YTEgMSAwIDEgMC0zLjAwNC0zLjAwNGwtNS4wMSA1LjAxMmEyIDIgMCAwIDAtLjUwNi44NTRsLS44MzcgMi44N2EuNS41IDAgMCAwIC42Mi42MmwyLjg3LS44MzdhMiAyIDAgMCAwIC44NTQtLjUwNnonLFxuICAgICAga2V5OiAncHF3anV2JyxcbiAgICB9LFxuICBdLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIE5vdGVib29rUGVuXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NVE11TkNBeVNEWmhNaUF5SURBZ01DQXdMVElnTW5ZeE5tRXlJRElnTUNBd0lEQWdNaUF5YURFeVlUSWdNaUF3SURBZ01DQXlMVEoyTFRjdU5DSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk1pQTJhRFFpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVElnTVRCb05DSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk1pQXhOR2cwSWlBdlBnb2dJRHh3WVhSb0lHUTlJazB5SURFNGFEUWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRUSXhMak0zT0NBMUxqWXlObUV4SURFZ01DQXhJREF0TXk0d01EUXRNeTR3TURSc0xUVXVNREVnTlM0d01USmhNaUF5SURBZ01DQXdMUzQxTURZdU9EVTBiQzB1T0RNM0lESXVPRGRoTGpVdU5TQXdJREFnTUNBdU5qSXVOakpzTWk0NE55MHVPRE0zWVRJZ01pQXdJREFnTUNBdU9EVTBMUzQxTURaNklpQXZQZ284TDNOMlp6NEspIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL25vdGVib29rLXBlblxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IE5vdGVib29rUGVuID0gY3JlYXRlTHVjaWRlSWNvbignbm90ZWJvb2stcGVuJywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IE5vdGVib29rUGVuO1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdNMiA2aDQnLCBrZXk6ICdhYXdiemonIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMiAxMGg0Jywga2V5OiAnbDBiZ2Q0JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTIgMTRoNCcsIGtleTogJzFnc3ZzZicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00yIDE4aDQnLCBrZXk6ICcxYnUydDEnIH1dLFxuICBbJ3JlY3QnLCB7IHdpZHRoOiAnMTYnLCBoZWlnaHQ6ICcyMCcsIHg6ICc0JywgeTogJzInLCByeDogJzInLCBrZXk6ICcxbmI5NXYnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTUgMnYyMCcsIGtleTogJ2RjajQ5aCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xNSA3aDUnLCBrZXk6ICcxeGo1bGMnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTUgMTJoNScsIGtleTogJ3c1c2hkOScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xNSAxN2g1Jywga2V5OiAnMXFhb2Z1JyB9XSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBOb3RlYm9va1RhYnNcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1pQTJhRFFpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVElnTVRCb05DSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk1pQXhOR2cwSWlBdlBnb2dJRHh3WVhSb0lHUTlJazB5SURFNGFEUWlJQzgrQ2lBZ1BISmxZM1FnZDJsa2RHZzlJakUySWlCb1pXbG5hSFE5SWpJd0lpQjRQU0kwSWlCNVBTSXlJaUJ5ZUQwaU1pSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk1UVWdNbll5TUNJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTVRVZ04yZzFJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHhOU0F4TW1nMUlpQXZQZ29nSUR4d1lYUm9JR1E5SWsweE5TQXhOMmcxSWlBdlBnbzhMM04yWno0SykgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvbm90ZWJvb2stdGFic1xuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IE5vdGVib29rVGFicyA9IGNyZWF0ZUx1Y2lkZUljb24oJ25vdGVib29rLXRhYnMnLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgTm90ZWJvb2tUYWJzO1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdNMiA2aDQnLCBrZXk6ICdhYXdiemonIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMiAxMGg0Jywga2V5OiAnbDBiZ2Q0JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTIgMTRoNCcsIGtleTogJzFnc3ZzZicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00yIDE4aDQnLCBrZXk6ICcxYnUydDEnIH1dLFxuICBbJ3JlY3QnLCB7IHdpZHRoOiAnMTYnLCBoZWlnaHQ6ICcyMCcsIHg6ICc0JywgeTogJzInLCByeDogJzInLCBrZXk6ICcxbmI5NXYnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNOS41IDhoNScsIGtleTogJzExbXNscScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ005LjUgMTJIMTYnLCBrZXk6ICdrdG9nNngnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNOS41IDE2SDE0Jywga2V5OiAncDFzZXluJyB9XSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBOb3RlYm9va1RleHRcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1pQTJhRFFpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVElnTVRCb05DSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk1pQXhOR2cwSWlBdlBnb2dJRHh3WVhSb0lHUTlJazB5SURFNGFEUWlJQzgrQ2lBZ1BISmxZM1FnZDJsa2RHZzlJakUySWlCb1pXbG5hSFE5SWpJd0lpQjRQU0kwSWlCNVBTSXlJaUJ5ZUQwaU1pSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk9TNDFJRGhvTlNJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOT1M0MUlERXlTREUySWlBdlBnb2dJRHh3WVhSb0lHUTlJazA1TGpVZ01UWklNVFFpSUM4K0Nqd3ZjM1puUGdvPSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvbm90ZWJvb2stdGV4dFxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IE5vdGVib29rVGV4dCA9IGNyZWF0ZUx1Y2lkZUljb24oJ25vdGVib29rLXRleHQnLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgTm90ZWJvb2tUZXh0O1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdNMiA2aDQnLCBrZXk6ICdhYXdiemonIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMiAxMGg0Jywga2V5OiAnbDBiZ2Q0JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTIgMTRoNCcsIGtleTogJzFnc3ZzZicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00yIDE4aDQnLCBrZXk6ICcxYnUydDEnIH1dLFxuICBbJ3JlY3QnLCB7IHdpZHRoOiAnMTYnLCBoZWlnaHQ6ICcyMCcsIHg6ICc0JywgeTogJzInLCByeDogJzInLCBrZXk6ICcxbmI5NXYnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTYgMnYyMCcsIGtleTogJ3JvdHVxZScgfV0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgTm90ZWJvb2tcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1pQTJhRFFpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVElnTVRCb05DSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk1pQXhOR2cwSWlBdlBnb2dJRHh3WVhSb0lHUTlJazB5SURFNGFEUWlJQzgrQ2lBZ1BISmxZM1FnZDJsa2RHZzlJakUySWlCb1pXbG5hSFE5SWpJd0lpQjRQU0kwSWlCNVBTSXlJaUJ5ZUQwaU1pSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk1UWWdNbll5TUNJZ0x6NEtQQzl6ZG1jK0NnPT0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL25vdGVib29rXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgTm90ZWJvb2sgPSBjcmVhdGVMdWNpZGVJY29uKCdub3RlYm9vaycsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBOb3RlYm9vaztcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTggMnY0Jywga2V5OiAnMWNtcHltJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTEyIDJ2NCcsIGtleTogJzM0MjdpYycgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xNiAydjQnLCBrZXk6ICc0bTgxdmsnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTYgNGgyYTIgMiAwIDAgMSAyIDJ2MicsIGtleTogJ2o5MWY1NicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00yMCAxMnYyJywga2V5OiAndzhvMHR1JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTIwIDE4djJhMiAyIDAgMCAxLTIgMmgtMScsIGtleTogJzFjOWdneCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xMyAyMmgtMicsIGtleTogJzE5MXVndCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ003IDIySDZhMiAyIDAgMCAxLTItMnYtMicsIGtleTogJzFydDlweCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ000IDE0di0yJywga2V5OiAnMXYwc3FoJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTQgOFY2YTIgMiAwIDAgMSAyLTJoMicsIGtleTogJzFtd2FiZycgfV0sXG4gIFsncGF0aCcsIHsgZDogJ004IDEwaDYnLCBrZXk6ICczb2E2a3cnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNOCAxNGg4Jywga2V5OiAnMWZnZXAyJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTggMThoNScsIGtleTogJzE3ZW5qYScgfV0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgTm90ZXBhZFRleHREYXNoZWRcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk9DQXlkalFpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVEV5SURKMk5DSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk1UWWdNblkwSWlBdlBnb2dJRHh3WVhSb0lHUTlJazB4TmlBMGFESmhNaUF5SURBZ01DQXhJRElnTW5ZeUlpQXZQZ29nSUR4d1lYUm9JR1E5SWsweU1DQXhNbll5SWlBdlBnb2dJRHh3WVhSb0lHUTlJazB5TUNBeE9IWXlZVElnTWlBd0lEQWdNUzB5SURKb0xURWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRURXpJREl5YUMweUlpQXZQZ29nSUR4d1lYUm9JR1E5SWswM0lESXlTRFpoTWlBeUlEQWdNQ0F4TFRJdE1uWXRNaUlnTHo0S0lDQThjR0YwYUNCa1BTSk5OQ0F4TkhZdE1pSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk5DQTRWalpoTWlBeUlEQWdNQ0F4SURJdE1tZ3lJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMDRJREV3YURZaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRnZ01UUm9PQ0lnTHo0S0lDQThjR0YwYUNCa1BTSk5PQ0F4T0dnMUlpQXZQZ284TDNOMlp6NEspIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL25vdGVwYWQtdGV4dC1kYXNoZWRcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBOb3RlcGFkVGV4dERhc2hlZCA9IGNyZWF0ZUx1Y2lkZUljb24oJ25vdGVwYWQtdGV4dC1kYXNoZWQnLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgTm90ZXBhZFRleHREYXNoZWQ7XG4iLCJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ004IDJ2NCcsIGtleTogJzFjbXB5bScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xMiAydjQnLCBrZXk6ICczNDI3aWMnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTYgMnY0Jywga2V5OiAnNG04MXZrJyB9XSxcbiAgWydyZWN0JywgeyB3aWR0aDogJzE2JywgaGVpZ2h0OiAnMTgnLCB4OiAnNCcsIHk6ICc0Jywgcng6ICcyJywga2V5OiAnMXU5aDIwJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTggMTBoNicsIGtleTogJzNvYTZrdycgfV0sXG4gIFsncGF0aCcsIHsgZDogJ004IDE0aDgnLCBrZXk6ICcxZmdlcDInIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNOCAxOGg1Jywga2V5OiAnMTdlbmphJyB9XSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBOb3RlcGFkVGV4dFxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOT0NBeWRqUWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRURXlJREoyTkNJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTVRZZ01uWTBJaUF2UGdvZ0lEeHlaV04wSUhkcFpIUm9QU0l4TmlJZ2FHVnBaMmgwUFNJeE9DSWdlRDBpTkNJZ2VUMGlOQ0lnY25nOUlqSWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRUZ2dNVEJvTmlJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOT0NBeE5HZzRJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMDRJREU0YURVaUlDOCtDand2YzNablBnbz0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL25vdGVwYWQtdGV4dFxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IE5vdGVwYWRUZXh0ID0gY3JlYXRlTHVjaWRlSWNvbignbm90ZXBhZC10ZXh0JywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IE5vdGVwYWRUZXh0O1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdNMTIgNFYyJywga2V5OiAnMWs1cTF1JyB9XSxcbiAgW1xuICAgICdwYXRoJyxcbiAgICB7XG4gICAgICBkOiAnTTUgMTB2NGE3LjAwNCA3LjAwNCAwIDAgMCA1LjI3NyA2Ljc4N2MuNDEyLjEwNC44MDIuMjkyIDEuMTAyLjU5MkwxMiAyMmwuNjIxLS42MjFjLjMtLjMuNjktLjQ4OCAxLjEwMi0uNTkyYTcuMDEgNy4wMSAwIDAgMCA0LjEyNS0yLjkzOScsXG4gICAgICBrZXk6ICcxeGN2eTknLFxuICAgIH0sXG4gIF0sXG4gIFsncGF0aCcsIHsgZDogJ00xOSAxMHYzLjM0MycsIGtleTogJzE2M3RmYycgfV0sXG4gIFtcbiAgICAncGF0aCcsXG4gICAge1xuICAgICAgZDogJ00xMiAxMmMtMS4zNDktLjU3My0xLjkwNS0xLjAwNS0yLjUtMi0uNTQ2LjkwMi0xLjA0OCAxLjM1My0yLjUgMi0xLjAxOC0uNjQ0LTEuNDYtMS4wOC0yLTItMS4wMjguNzEtMS42OS45MTgtMyAxIDEuMDgxLTEuMDQ4IDEuNzU3LTIuMDMgMi0zIC4xOTQtLjc3Ni44NC0xLjU1MSAxLjc5LTIuMjFtMTEuNjU0IDUuOTk3Yy44ODctLjQ1NyAxLjI4LS44OTEgMS41NTYtMS43ODcgMS4wMzIuOTE2IDEuNjgzIDEuMTU3IDMgMS0xLjI5Ny0xLjAzNi0xLjc1OC0yLjAzLTItMy0uNS0yLTQtNC04LTQtLjc0IDAtMS40NjEuMDY4LTIuMTUuMTkyJyxcbiAgICAgIGtleTogJzE3OTE0dicsXG4gICAgfSxcbiAgXSxcbiAgWydsaW5lJywgeyB4MTogJzInLCB4MjogJzIyJywgeTE6ICcyJywgeTI6ICcyMicsIGtleTogJ2E2cDZ1aicgfV0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgTnV0T2ZmXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NVElnTkZZeUlpQXZQZ29nSUR4d1lYUm9JR1E5SWswMUlERXdkalJoTnk0d01EUWdOeTR3TURRZ01DQXdJREFnTlM0eU56Y2dOaTQzT0RkakxqUXhNaTR4TURRdU9EQXlMakk1TWlBeExqRXdNaTQxT1RKTU1USWdNakpzTGpZeU1TMHVOakl4WXk0ekxTNHpMalk1TFM0ME9EZ2dNUzR4TURJdExqVTVNbUUzTGpBeElEY3VNREVnTUNBd0lEQWdOQzR4TWpVdE1pNDVNemtpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVEU1SURFd2RqTXVNelF6SWlBdlBnb2dJRHh3WVhSb0lHUTlJazB4TWlBeE1tTXRNUzR6TkRrdExqVTNNeTB4TGprd05TMHhMakF3TlMweUxqVXRNaTB1TlRRMkxqa3dNaTB4TGpBME9DQXhMak0xTXkweUxqVWdNaTB4TGpBeE9DMHVOalEwTFRFdU5EWXRNUzR3T0MweUxUSXRNUzR3TWpndU56RXRNUzQyT1M0NU1UZ3RNeUF4SURFdU1EZ3hMVEV1TURRNElERXVOelUzTFRJdU1ETWdNaTB6SUM0eE9UUXRMamMzTmk0NE5DMHhMalUxTVNBeExqYzVMVEl1TWpGdE1URXVOalUwSURVdU9UazNZeTQ0T0RjdExqUTFOeUF4TGpJNExTNDRPVEVnTVM0MU5UWXRNUzQzT0RjZ01TNHdNekl1T1RFMklERXVOamd6SURFdU1UVTNJRE1nTVMweExqSTVOeTB4TGpBek5pMHhMamMxT0MweUxqQXpMVEl0TXkwdU5TMHlMVFF0TkMwNExUUXRMamMwSURBdE1TNDBOakV1TURZNExUSXVNVFV1TVRreUlpQXZQZ29nSUR4c2FXNWxJSGd4UFNJeUlpQjRNajBpTWpJaUlIa3hQU0l5SWlCNU1qMGlNaklpSUM4K0Nqd3ZjM1puUGdvPSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvbnV0LW9mZlxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IE51dE9mZiA9IGNyZWF0ZUx1Y2lkZUljb24oJ251dC1vZmYnLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgTnV0T2ZmO1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdNMTIgNFYyJywga2V5OiAnMWs1cTF1JyB9XSxcbiAgW1xuICAgICdwYXRoJyxcbiAgICB7XG4gICAgICBkOiAnTTUgMTB2NGE3LjAwNCA3LjAwNCAwIDAgMCA1LjI3NyA2Ljc4N2MuNDEyLjEwNC44MDIuMjkyIDEuMTAyLjU5MkwxMiAyMmwuNjIxLS42MjFjLjMtLjMuNjktLjQ4OCAxLjEwMi0uNTkyQTcuMDAzIDcuMDAzIDAgMCAwIDE5IDE0di00JyxcbiAgICAgIGtleTogJzF0Z3lpZicsXG4gICAgfSxcbiAgXSxcbiAgW1xuICAgICdwYXRoJyxcbiAgICB7XG4gICAgICBkOiAnTTEyIDRDOCA0IDQuNSA2IDQgOGMtLjI0My45Ny0uOTE5IDEuOTUyLTIgMyAxLjMxLS4wODIgMS45NzItLjI5IDMtMSAuNTQuOTIuOTgyIDEuMzU2IDIgMiAxLjQ1Mi0uNjQ3IDEuOTU0LTEuMDk4IDIuNS0yIC41OTUuOTk1IDEuMTUxIDEuNDI3IDIuNSAyIDEuMzEtLjYyMSAxLjg2Mi0xLjA1OCAyLjUtMiAuNjI5Ljk3NyAxLjE2MiAxLjQyMyAyLjUgMiAxLjIwOS0uNTQ4IDEuNjgtLjk2NyAyLTIgMS4wMzIuOTE2IDEuNjgzIDEuMTU3IDMgMS0xLjI5Ny0xLjAzNi0xLjc1OC0yLjAzLTItMy0uNS0yLTQtNC04LTRaJyxcbiAgICAgIGtleTogJ3Ruc3FqJyxcbiAgICB9LFxuICBdLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIE51dFxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTVRJZ05GWXlJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMDFJREV3ZGpSaE55NHdNRFFnTnk0d01EUWdNQ0F3SURBZ05TNHlOemNnTmk0M09EZGpMalF4TWk0eE1EUXVPREF5TGpJNU1pQXhMakV3TWk0MU9USk1NVElnTWpKc0xqWXlNUzB1TmpJeFl5NHpMUzR6TGpZNUxTNDBPRGdnTVM0eE1ESXRMalU1TWtFM0xqQXdNeUEzTGpBd015QXdJREFnTUNBeE9TQXhOSFl0TkNJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTVRJZ05FTTRJRFFnTkM0MUlEWWdOQ0E0WXkwdU1qUXpMamszTFM0NU1Ua2dNUzQ1TlRJdE1pQXpJREV1TXpFdExqQTRNaUF4TGprM01pMHVNamtnTXkweElDNDFOQzQ1TWk0NU9ESWdNUzR6TlRZZ01pQXlJREV1TkRVeUxTNDJORGNnTVM0NU5UUXRNUzR3T1RnZ01pNDFMVElnTGpVNU5TNDVPVFVnTVM0eE5URWdNUzQwTWpjZ01pNDFJRElnTVM0ek1TMHVOakl4SURFdU9EWXlMVEV1TURVNElESXVOUzB5SUM0Mk1qa3VPVGMzSURFdU1UWXlJREV1TkRJeklESXVOU0F5SURFdU1qQTVMUzQxTkRnZ01TNDJPQzB1T1RZM0lESXRNaUF4TGpBek1pNDVNVFlnTVM0Mk9ETWdNUzR4TlRjZ015QXhMVEV1TWprM0xURXVNRE0yTFRFdU56VTRMVEl1TURNdE1pMHpMUzQxTFRJdE5DMDBMVGd0TkZvaUlDOCtDand2YzNablBnbz0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL251dFxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IE51dCA9IGNyZWF0ZUx1Y2lkZUljb24oJ251dCcsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBOdXQ7XG4iLCJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ00xMiAxNmguMDEnLCBrZXk6ICcxZHJiZGknIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTIgOHY0Jywga2V5OiAnMWdvdDNiJyB9XSxcbiAgW1xuICAgICdwYXRoJyxcbiAgICB7XG4gICAgICBkOiAnTTE1LjMxMiAyYTIgMiAwIDAgMSAxLjQxNC41ODZsNC42ODggNC42ODhBMiAyIDAgMCAxIDIyIDguNjg4djYuNjI0YTIgMiAwIDAgMS0uNTg2IDEuNDE0bC00LjY4OCA0LjY4OGEyIDIgMCAwIDEtMS40MTQuNTg2SDguNjg4YTIgMiAwIDAgMS0xLjQxNC0uNTg2bC00LjY4OC00LjY4OEEyIDIgMCAwIDEgMiAxNS4zMTJWOC42ODhhMiAyIDAgMCAxIC41ODYtMS40MTRsNC42ODgtNC42ODhBMiAyIDAgMCAxIDguNjg4IDJ6JyxcbiAgICAgIGtleTogJzFmZDYyNScsXG4gICAgfSxcbiAgXSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBPY3RhZ29uQWxlcnRcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1USWdNVFpvTGpBeElpQXZQZ29nSUR4d1lYUm9JR1E5SWsweE1pQTRkalFpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVEUxTGpNeE1pQXlZVElnTWlBd0lEQWdNU0F4TGpReE5DNDFPRFpzTkM0Mk9EZ2dOQzQyT0RoQk1pQXlJREFnTUNBeElESXlJRGd1TmpnNGRqWXVOakkwWVRJZ01pQXdJREFnTVMwdU5UZzJJREV1TkRFMGJDMDBMalk0T0NBMExqWTRPR0V5SURJZ01DQXdJREV0TVM0ME1UUXVOVGcyU0RndU5qZzRZVElnTWlBd0lEQWdNUzB4TGpReE5DMHVOVGcyYkMwMExqWTRPQzAwTGpZNE9FRXlJRElnTUNBd0lERWdNaUF4TlM0ek1USldPQzQyT0RoaE1pQXlJREFnTUNBeElDNDFPRFl0TVM0ME1UUnNOQzQyT0RndE5DNDJPRGhCTWlBeUlEQWdNQ0F4SURndU5qZzRJREo2SWlBdlBnbzhMM04yWno0SykgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvb2N0YWdvbi1hbGVydFxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IE9jdGFnb25BbGVydCA9IGNyZWF0ZUx1Y2lkZUljb24oJ29jdGFnb24tYWxlcnQnLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgT2N0YWdvbkFsZXJ0O1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbXG4gICAgJ3BhdGgnLFxuICAgIHtcbiAgICAgIGQ6ICdNMi41ODYgMTYuNzI2QTIgMiAwIDAgMSAyIDE1LjMxMlY4LjY4OGEyIDIgMCAwIDEgLjU4Ni0xLjQxNGw0LjY4OC00LjY4OEEyIDIgMCAwIDEgOC42ODggMmg2LjYyNGEyIDIgMCAwIDEgMS40MTQuNTg2bDQuNjg4IDQuNjg4QTIgMiAwIDAgMSAyMiA4LjY4OHY2LjYyNGEyIDIgMCAwIDEtLjU4NiAxLjQxNGwtNC42ODggNC42ODhhMiAyIDAgMCAxLTEuNDE0LjU4Nkg4LjY4OGEyIDIgMCAwIDEtMS40MTQtLjU4NnonLFxuICAgICAga2V5OiAnMmQzOGdnJyxcbiAgICB9LFxuICBdLFxuICBbJ3BhdGgnLCB7IGQ6ICdNOCAxMmg4Jywga2V5OiAnMXdjeWV2JyB9XSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBPY3RhZ29uTWludXNcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1pNDFPRFlnTVRZdU56STJRVElnTWlBd0lEQWdNU0F5SURFMUxqTXhNbFk0TGpZNE9HRXlJRElnTUNBd0lERWdMalU0TmkweExqUXhOR3cwTGpZNE9DMDBMalk0T0VFeUlESWdNQ0F3SURFZ09DNDJPRGdnTW1nMkxqWXlOR0V5SURJZ01DQXdJREVnTVM0ME1UUXVOVGcyYkRRdU5qZzRJRFF1TmpnNFFUSWdNaUF3SURBZ01TQXlNaUE0TGpZNE9IWTJMall5TkdFeUlESWdNQ0F3SURFdExqVTROaUF4TGpReE5Hd3ROQzQyT0RnZ05DNDJPRGhoTWlBeUlEQWdNQ0F4TFRFdU5ERTBMalU0TmtnNExqWTRPR0V5SURJZ01DQXdJREV0TVM0ME1UUXRMalU0Tm5vaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRnZ01USm9PQ0lnTHo0S1BDOXpkbWMrQ2c9PSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvb2N0YWdvbi1taW51c1xuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IE9jdGFnb25NaW51cyA9IGNyZWF0ZUx1Y2lkZUljb24oJ29jdGFnb24tbWludXMnLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgT2N0YWdvbk1pbnVzO1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdNMTAgMTVWOScsIGtleTogJzFsY2tuNycgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xNCAxNVY5Jywga2V5OiAnMW11cWhrJyB9XSxcbiAgW1xuICAgICdwYXRoJyxcbiAgICB7XG4gICAgICBkOiAnTTIuNTg2IDE2LjcyNkEyIDIgMCAwIDEgMiAxNS4zMTJWOC42ODhhMiAyIDAgMCAxIC41ODYtMS40MTRsNC42ODgtNC42ODhBMiAyIDAgMCAxIDguNjg4IDJoNi42MjRhMiAyIDAgMCAxIDEuNDE0LjU4Nmw0LjY4OCA0LjY4OEEyIDIgMCAwIDEgMjIgOC42ODh2Ni42MjRhMiAyIDAgMCAxLS41ODYgMS40MTRsLTQuNjg4IDQuNjg4YTIgMiAwIDAgMS0xLjQxNC41ODZIOC42ODhhMiAyIDAgMCAxLTEuNDE0LS41ODZ6JyxcbiAgICAgIGtleTogJzJkMzhnZycsXG4gICAgfSxcbiAgXSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBPY3RhZ29uUGF1c2VcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1UQWdNVFZXT1NJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTVRRZ01UVldPU0lnTHo0S0lDQThjR0YwYUNCa1BTSk5NaTQxT0RZZ01UWXVOekkyUVRJZ01pQXdJREFnTVNBeUlERTFMak14TWxZNExqWTRPR0V5SURJZ01DQXdJREVnTGpVNE5pMHhMalF4Tkd3MExqWTRPQzAwTGpZNE9FRXlJRElnTUNBd0lERWdPQzQyT0RnZ01tZzJMall5TkdFeUlESWdNQ0F3SURFZ01TNDBNVFF1TlRnMmJEUXVOamc0SURRdU5qZzRRVElnTWlBd0lEQWdNU0F5TWlBNExqWTRPSFkyTGpZeU5HRXlJRElnTUNBd0lERXRMalU0TmlBeExqUXhOR3d0TkM0Mk9EZ2dOQzQyT0RoaE1pQXlJREFnTUNBeExURXVOREUwTGpVNE5rZzRMalk0T0dFeUlESWdNQ0F3SURFdE1TNDBNVFF0TGpVNE5ub2lJQzgrQ2p3dmMzWm5QZ289KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9vY3RhZ29uLXBhdXNlXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgT2N0YWdvblBhdXNlID0gY3JlYXRlTHVjaWRlSWNvbignb2N0YWdvbi1wYXVzZScsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBPY3RhZ29uUGF1c2U7XG4iLCJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ20xNSA5LTYgNicsIGtleTogJzF1emh2cicgfV0sXG4gIFtcbiAgICAncGF0aCcsXG4gICAge1xuICAgICAgZDogJ00yLjU4NiAxNi43MjZBMiAyIDAgMCAxIDIgMTUuMzEyVjguNjg4YTIgMiAwIDAgMSAuNTg2LTEuNDE0bDQuNjg4LTQuNjg4QTIgMiAwIDAgMSA4LjY4OCAyaDYuNjI0YTIgMiAwIDAgMSAxLjQxNC41ODZsNC42ODggNC42ODhBMiAyIDAgMCAxIDIyIDguNjg4djYuNjI0YTIgMiAwIDAgMS0uNTg2IDEuNDE0bC00LjY4OCA0LjY4OGEyIDIgMCAwIDEtMS40MTQuNTg2SDguNjg4YTIgMiAwIDAgMS0xLjQxNC0uNTg2eicsXG4gICAgICBrZXk6ICcyZDM4Z2cnLFxuICAgIH0sXG4gIF0sXG4gIFsncGF0aCcsIHsgZDogJ205IDkgNiA2Jywga2V5OiAnejBiaXFmJyB9XSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBPY3RhZ29uWFxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0p0TVRVZ09TMDJJRFlpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVEl1TlRnMklERTJMamN5TmtFeUlESWdNQ0F3SURFZ01pQXhOUzR6TVRKV09DNDJPRGhoTWlBeUlEQWdNQ0F4SUM0MU9EWXRNUzQwTVRSc05DNDJPRGd0TkM0Mk9EaEJNaUF5SURBZ01DQXhJRGd1TmpnNElESm9OaTQyTWpSaE1pQXlJREFnTUNBeElERXVOREUwTGpVNE5tdzBMalk0T0NBMExqWTRPRUV5SURJZ01DQXdJREVnTWpJZ09DNDJPRGgyTmk0Mk1qUmhNaUF5SURBZ01DQXhMUzQxT0RZZ01TNDBNVFJzTFRRdU5qZzRJRFF1TmpnNFlUSWdNaUF3SURBZ01TMHhMalF4TkM0MU9EWklPQzQyT0RoaE1pQXlJREFnTUNBeExURXVOREUwTFM0MU9EWjZJaUF2UGdvZ0lEeHdZWFJvSUdROUltMDVJRGtnTmlBMklpQXZQZ284TDNOMlp6NEspIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL29jdGFnb24teFxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IE9jdGFnb25YID0gY3JlYXRlTHVjaWRlSWNvbignb2N0YWdvbi14JywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IE9jdGFnb25YO1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbXG4gICAgJ3BhdGgnLFxuICAgIHtcbiAgICAgIGQ6ICdNMi41ODYgMTYuNzI2QTIgMiAwIDAgMSAyIDE1LjMxMlY4LjY4OGEyIDIgMCAwIDEgLjU4Ni0xLjQxNGw0LjY4OC00LjY4OEEyIDIgMCAwIDEgOC42ODggMmg2LjYyNGEyIDIgMCAwIDEgMS40MTQuNTg2bDQuNjg4IDQuNjg4QTIgMiAwIDAgMSAyMiA4LjY4OHY2LjYyNGEyIDIgMCAwIDEtLjU4NiAxLjQxNGwtNC42ODggNC42ODhhMiAyIDAgMCAxLTEuNDE0LjU4Nkg4LjY4OGEyIDIgMCAwIDEtMS40MTQtLjU4NnonLFxuICAgICAga2V5OiAnMmQzOGdnJyxcbiAgICB9LFxuICBdLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIE9jdGFnb25cbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1pNDFPRFlnTVRZdU56STJRVElnTWlBd0lEQWdNU0F5SURFMUxqTXhNbFk0TGpZNE9HRXlJRElnTUNBd0lERWdMalU0TmkweExqUXhOR3cwTGpZNE9DMDBMalk0T0VFeUlESWdNQ0F3SURFZ09DNDJPRGdnTW1nMkxqWXlOR0V5SURJZ01DQXdJREVnTVM0ME1UUXVOVGcyYkRRdU5qZzRJRFF1TmpnNFFUSWdNaUF3SURBZ01TQXlNaUE0TGpZNE9IWTJMall5TkdFeUlESWdNQ0F3SURFdExqVTROaUF4TGpReE5Hd3ROQzQyT0RnZ05DNDJPRGhoTWlBeUlEQWdNQ0F4TFRFdU5ERTBMalU0TmtnNExqWTRPR0V5SURJZ01DQXdJREV0TVM0ME1UUXRMalU0Tm5vaUlDOCtDand2YzNablBnbz0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL29jdGFnb25cbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBPY3RhZ29uID0gY3JlYXRlTHVjaWRlSWNvbignb2N0YWdvbicsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBPY3RhZ29uO1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbXG4gICAgJ3BhdGgnLFxuICAgIHtcbiAgICAgIGQ6ICdNMyAyMGg0LjVhLjUuNSAwIDAgMCAuNS0uNXYtLjI4MmEuNTIuNTIgMCAwIDAtLjI0Ny0uNDM3IDggOCAwIDEgMSA4LjQ5NC0uMDAxLjUyLjUyIDAgMCAwLS4yNDcuNDM4di4yODJhLjUuNSAwIDAgMCAuNS41SDIxJyxcbiAgICAgIGtleTogJzF4OTR4bycsXG4gICAgfSxcbiAgXSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBPbWVnYVxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTXlBeU1HZzBMalZoTGpVdU5TQXdJREFnTUNBdU5TMHVOWFl0TGpJNE1tRXVOVEl1TlRJZ01DQXdJREF0TGpJME55MHVORE0zSURnZ09DQXdJREVnTVNBNExqUTVOQzB1TURBeExqVXlMalV5SURBZ01DQXdMUzR5TkRjdU5ETTRkaTR5T0RKaExqVXVOU0F3SURBZ01DQXVOUzQxU0RJeElpQXZQZ284TDNOMlp6NEspIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL29tZWdhXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgT21lZ2EgPSBjcmVhdGVMdWNpZGVJY29uKCdvbWVnYScsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBPbWVnYTtcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTMgM2g2bDYgMThoNicsIGtleTogJ3BoOXJnaycgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xNCAzaDcnLCBrZXk6ICcxNmYwbXMnIH1dLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIE9wdGlvblxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTXlBemFEWnNOaUF4T0dnMklpQXZQZ29nSUR4d1lYUm9JR1E5SWsweE5DQXphRGNpSUM4K0Nqd3ZjM1puUGdvPSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvb3B0aW9uXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgT3B0aW9uID0gY3JlYXRlTHVjaWRlSWNvbignb3B0aW9uJywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IE9wdGlvbjtcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTIwLjM0MSA2LjQ4NEExMCAxMCAwIDAgMSAxMC4yNjYgMjEuODUnLCBrZXk6ICcxZW5oeGInIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMy42NTkgMTcuNTE2QTEwIDEwIDAgMCAxIDEzLjc0IDIuMTUyJywga2V5OiAnMWNyemdmJyB9XSxcbiAgWydjaXJjbGUnLCB7IGN4OiAnMTInLCBjeTogJzEyJywgcjogJzMnLCBrZXk6ICcxdjd6cmQnIH1dLFxuICBbJ2NpcmNsZScsIHsgY3g6ICcxOScsIGN5OiAnNScsIHI6ICcyJywga2V5OiAnbWhreDMxJyB9XSxcbiAgWydjaXJjbGUnLCB7IGN4OiAnNScsIGN5OiAnMTknLCByOiAnMicsIGtleTogJ3Y4a2Z6eCcgfV0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgT3JiaXRcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1qQXVNelF4SURZdU5EZzBRVEV3SURFd0lEQWdNQ0F4SURFd0xqSTJOaUF5TVM0NE5TSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk15NDJOVGtnTVRjdU5URTJRVEV3SURFd0lEQWdNQ0F4SURFekxqYzBJREl1TVRVeUlpQXZQZ29nSUR4amFYSmpiR1VnWTNnOUlqRXlJaUJqZVQwaU1USWlJSEk5SWpNaUlDOCtDaUFnUEdOcGNtTnNaU0JqZUQwaU1Ua2lJR041UFNJMUlpQnlQU0l5SWlBdlBnb2dJRHhqYVhKamJHVWdZM2c5SWpVaUlHTjVQU0l4T1NJZ2NqMGlNaUlnTHo0S1BDOXpkbWMrQ2c9PSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvb3JiaXRcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBPcmJpdCA9IGNyZWF0ZUx1Y2lkZUljb24oJ29yYml0JywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IE9yYml0O1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdNMTIgMTJWNGExIDEgMCAwIDEgMS0xaDYuMjk3YTEgMSAwIDAgMSAuNjUxIDEuNzU5bC00LjY5NiA0LjAyNScsIGtleTogJzFieDR2YycgfV0sXG4gIFtcbiAgICAncGF0aCcsXG4gICAge1xuICAgICAgZDogJ20xMiAyMS03LjQxNC03LjQxNEEyIDIgMCAwIDEgNCAxMi4xNzJWNi40MTVhMS4wMDIgMS4wMDIgMCAwIDEgMS43MDctLjcwN0wyMCAyMC4wMDknLFxuICAgICAga2V5OiAnMWgza202JyxcbiAgICB9LFxuICBdLFxuICBbXG4gICAgJ3BhdGgnLFxuICAgIHtcbiAgICAgIGQ6ICdtMTIuMjE0IDMuMzgxIDguNDE0IDE0Ljk2NmExIDEgMCAwIDEtLjE2NyAxLjE5OWwtMS4xNjggMS4xNjNhMSAxIDAgMCAxLS43MDYuMjkxSDYuMzUxYTEgMSAwIDAgMS0uNjI1LS4yMTlMMy4yNSAxOC44YTEgMSAwIDAgMSAuNjMxLTEuNzgxbDQuMTY1LjAyNycsXG4gICAgICBrZXk6ICcxaGo0d2cnLFxuICAgIH0sXG4gIF0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgT3JpZ2FtaVxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTVRJZ01USldOR0V4SURFZ01DQXdJREVnTVMweGFEWXVNamszWVRFZ01TQXdJREFnTVNBdU5qVXhJREV1TnpVNWJDMDBMalk1TmlBMExqQXlOU0lnTHo0S0lDQThjR0YwYUNCa1BTSnRNVElnTWpFdE55NDBNVFF0Tnk0ME1UUkJNaUF5SURBZ01DQXhJRFFnTVRJdU1UY3lWall1TkRFMVlURXVNREF5SURFdU1EQXlJREFnTUNBeElERXVOekEzTFM0M01EZE1NakFnTWpBdU1EQTVJaUF2UGdvZ0lEeHdZWFJvSUdROUltMHhNaTR5TVRRZ015NHpPREVnT0M0ME1UUWdNVFF1T1RZMllURWdNU0F3SURBZ01TMHVNVFkzSURFdU1UazViQzB4TGpFMk9DQXhMakUyTTJFeElERWdNQ0F3SURFdExqY3dOaTR5T1RGSU5pNHpOVEZoTVNBeElEQWdNQ0F4TFM0Mk1qVXRMakl4T1V3ekxqSTFJREU0TGpoaE1TQXhJREFnTUNBeElDNDJNekV0TVM0M09ERnNOQzR4TmpVdU1ESTNJaUF2UGdvOEwzTjJaejRLKSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9vcmlnYW1pXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgT3JpZ2FtaSA9IGNyZWF0ZUx1Y2lkZUljb24oJ29yaWdhbWknLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgT3JpZ2FtaTtcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTEyIDN2NicsIGtleTogJzFob2x2NScgfV0sXG4gIFtcbiAgICAncGF0aCcsXG4gICAge1xuICAgICAgZDogJ00xNi43NiAzYTIgMiAwIDAgMSAxLjggMS4xbDIuMjMgNC40NzlhMiAyIDAgMCAxIC4yMS44OTFWMTlhMiAyIDAgMCAxLTIgMkg1YTIgMiAwIDAgMS0yLTJWOS40NzJhMiAyIDAgMCAxIC4yMTEtLjg5NEw1LjQ1IDQuMUEyIDIgMCAwIDEgNy4yNCAzeicsXG4gICAgICBrZXk6ICcxODdxN2knLFxuICAgIH0sXG4gIF0sXG4gIFsncGF0aCcsIHsgZDogJ00zLjA1NCA5LjAxM2gxNy44OTMnLCBrZXk6ICdncndob3MnIH1dLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIFBhY2thZ2UyXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NVElnTTNZMklpQXZQZ29nSUR4d1lYUm9JR1E5SWsweE5pNDNOaUF6WVRJZ01pQXdJREFnTVNBeExqZ2dNUzR4YkRJdU1qTWdOQzQwTnpsaE1pQXlJREFnTUNBeElDNHlNUzQ0T1RGV01UbGhNaUF5SURBZ01DQXhMVElnTWtnMVlUSWdNaUF3SURBZ01TMHlMVEpXT1M0ME56SmhNaUF5SURBZ01DQXhJQzR5TVRFdExqZzVORXcxTGpRMUlEUXVNVUV5SURJZ01DQXdJREVnTnk0eU5DQXplaUlnTHo0S0lDQThjR0YwYUNCa1BTSk5NeTR3TlRRZ09TNHdNVE5vTVRjdU9Ea3pJaUF2UGdvOEwzTjJaejRLKSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9wYWNrYWdlLTJcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBQYWNrYWdlMiA9IGNyZWF0ZUx1Y2lkZUljb24oJ3BhY2thZ2UtMicsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBQYWNrYWdlMjtcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnbTE2IDE2IDIgMiA0LTQnLCBrZXk6ICdnZnUycmUnIH1dLFxuICBbXG4gICAgJ3BhdGgnLFxuICAgIHtcbiAgICAgIGQ6ICdNMjEgMTBWOGEyIDIgMCAwIDAtMS0xLjczbC03LTRhMiAyIDAgMCAwLTIgMGwtNyA0QTIgMiAwIDAgMCAzIDh2OGEyIDIgMCAwIDAgMSAxLjczbDcgNGEyIDIgMCAwIDAgMiAwbDItMS4xNCcsXG4gICAgICBrZXk6ICdlN3RiMmgnLFxuICAgIH0sXG4gIF0sXG4gIFsncGF0aCcsIHsgZDogJ203LjUgNC4yNyA5IDUuMTUnLCBrZXk6ICcxYzgyNHcnIH1dLFxuICBbJ3BvbHlsaW5lJywgeyBwb2ludHM6ICczLjI5IDcgMTIgMTIgMjAuNzEgNycsIGtleTogJ291c3Y4NCcgfV0sXG4gIFsnbGluZScsIHsgeDE6ICcxMicsIHgyOiAnMTInLCB5MTogJzIyJywgeTI6ICcxMicsIGtleTogJ2E0ZThnOCcgfV0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgUGFja2FnZUNoZWNrXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSnRNVFlnTVRZZ01pQXlJRFF0TkNJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTWpFZ01UQldPR0V5SURJZ01DQXdJREF0TVMweExqY3piQzAzTFRSaE1pQXlJREFnTUNBd0xUSWdNR3d0TnlBMFFUSWdNaUF3SURBZ01DQXpJRGgyT0dFeUlESWdNQ0F3SURBZ01TQXhMamN6YkRjZ05HRXlJRElnTUNBd0lEQWdNaUF3YkRJdE1TNHhOQ0lnTHo0S0lDQThjR0YwYUNCa1BTSnROeTQxSURRdU1qY2dPU0ExTGpFMUlpQXZQZ29nSUR4d2IyeDViR2x1WlNCd2IybHVkSE05SWpNdU1qa2dOeUF4TWlBeE1pQXlNQzQzTVNBM0lpQXZQZ29nSUR4c2FXNWxJSGd4UFNJeE1pSWdlREk5SWpFeUlpQjVNVDBpTWpJaUlIa3lQU0l4TWlJZ0x6NEtQQzl6ZG1jK0NnPT0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL3BhY2thZ2UtY2hlY2tcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBQYWNrYWdlQ2hlY2sgPSBjcmVhdGVMdWNpZGVJY29uKCdwYWNrYWdlLWNoZWNrJywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IFBhY2thZ2VDaGVjaztcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTE2IDE2aDYnLCBrZXk6ICcxMDBiZ3knIH1dLFxuICBbXG4gICAgJ3BhdGgnLFxuICAgIHtcbiAgICAgIGQ6ICdNMjEgMTBWOGEyIDIgMCAwIDAtMS0xLjczbC03LTRhMiAyIDAgMCAwLTIgMGwtNyA0QTIgMiAwIDAgMCAzIDh2OGEyIDIgMCAwIDAgMSAxLjczbDcgNGEyIDIgMCAwIDAgMiAwbDItMS4xNCcsXG4gICAgICBrZXk6ICdlN3RiMmgnLFxuICAgIH0sXG4gIF0sXG4gIFsncGF0aCcsIHsgZDogJ203LjUgNC4yNyA5IDUuMTUnLCBrZXk6ICcxYzgyNHcnIH1dLFxuICBbJ3BvbHlsaW5lJywgeyBwb2ludHM6ICczLjI5IDcgMTIgMTIgMjAuNzEgNycsIGtleTogJ291c3Y4NCcgfV0sXG4gIFsnbGluZScsIHsgeDE6ICcxMicsIHgyOiAnMTInLCB5MTogJzIyJywgeTI6ICcxMicsIGtleTogJ2E0ZThnOCcgfV0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgUGFja2FnZU1pbnVzXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NVFlnTVRab05pSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk1qRWdNVEJXT0dFeUlESWdNQ0F3SURBdE1TMHhMamN6YkMwM0xUUmhNaUF5SURBZ01DQXdMVElnTUd3dE55QTBRVElnTWlBd0lEQWdNQ0F6SURoMk9HRXlJRElnTUNBd0lEQWdNU0F4TGpjemJEY2dOR0V5SURJZ01DQXdJREFnTWlBd2JESXRNUzR4TkNJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0p0Tnk0MUlEUXVNamNnT1NBMUxqRTFJaUF2UGdvZ0lEeHdiMng1YkdsdVpTQndiMmx1ZEhNOUlqTXVNamtnTnlBeE1pQXhNaUF5TUM0M01TQTNJaUF2UGdvZ0lEeHNhVzVsSUhneFBTSXhNaUlnZURJOUlqRXlJaUI1TVQwaU1qSWlJSGt5UFNJeE1pSWdMejRLUEM5emRtYytDZz09KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9wYWNrYWdlLW1pbnVzXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgUGFja2FnZU1pbnVzID0gY3JlYXRlTHVjaWRlSWNvbigncGFja2FnZS1taW51cycsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBQYWNrYWdlTWludXM7XG4iLCJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ00xMiAyMnYtOScsIGtleTogJ3gzaGtvbScgfV0sXG4gIFtcbiAgICAncGF0aCcsXG4gICAge1xuICAgICAgZDogJ00xNS4xNyAyLjIxYTEuNjcgMS42NyAwIDAgMSAxLjYzIDBMMjEgNC41N2ExLjkzIDEuOTMgMCAwIDEgMCAzLjM2TDguODIgMTQuNzlhMS42NTUgMS42NTUgMCAwIDEtMS42NCAwTDMgMTIuNDNhMS45MyAxLjkzIDAgMCAxIDAtMy4zNnonLFxuICAgICAga2V5OiAnMm50d3k2JyxcbiAgICB9LFxuICBdLFxuICBbXG4gICAgJ3BhdGgnLFxuICAgIHtcbiAgICAgIGQ6ICdNMjAgMTN2My44N2EyLjA2IDIuMDYgMCAwIDEtMS4xMSAxLjgzbC02IDMuMDhhMS45MyAxLjkzIDAgMCAxLTEuNzggMGwtNi0zLjA4QTIuMDYgMi4wNiAwIDAgMSA0IDE2Ljg3VjEzJyxcbiAgICAgIGtleTogJzFwbW0xYycsXG4gICAgfSxcbiAgXSxcbiAgW1xuICAgICdwYXRoJyxcbiAgICB7XG4gICAgICBkOiAnTTIxIDEyLjQzYTEuOTMgMS45MyAwIDAgMCAwLTMuMzZMOC44MyAyLjJhMS42NCAxLjY0IDAgMCAwLTEuNjMgMEwzIDQuNTdhMS45MyAxLjkzIDAgMCAwIDAgMy4zNmwxMi4xOCA2Ljg2YTEuNjM2IDEuNjM2IDAgMCAwIDEuNjMgMHonLFxuICAgICAga2V5OiAnMTJ0dG9vJyxcbiAgICB9LFxuICBdLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIFBhY2thZ2VPcGVuXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NVElnTWpKMkxUa2lJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRURTFMakUzSURJdU1qRmhNUzQyTnlBeExqWTNJREFnTUNBeElERXVOak1nTUV3eU1TQTBMalUzWVRFdU9UTWdNUzQ1TXlBd0lEQWdNU0F3SURNdU16Wk1PQzQ0TWlBeE5DNDNPV0V4TGpZMU5TQXhMalkxTlNBd0lEQWdNUzB4TGpZMElEQk1NeUF4TWk0ME0yRXhMamt6SURFdU9UTWdNQ0F3SURFZ01DMHpMak0yZWlJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTWpBZ01UTjJNeTQ0TjJFeUxqQTJJREl1TURZZ01DQXdJREV0TVM0eE1TQXhMamd6YkMwMklETXVNRGhoTVM0NU15QXhMamt6SURBZ01DQXhMVEV1TnpnZ01Hd3ROaTB6TGpBNFFUSXVNRFlnTWk0d05pQXdJREFnTVNBMElERTJMamczVmpFeklpQXZQZ29nSUR4d1lYUm9JR1E5SWsweU1TQXhNaTQwTTJFeExqa3pJREV1T1RNZ01DQXdJREFnTUMwekxqTTJURGd1T0RNZ01pNHlZVEV1TmpRZ01TNDJOQ0F3SURBZ01DMHhMall6SURCTU15QTBMalUzWVRFdU9UTWdNUzQ1TXlBd0lEQWdNQ0F3SURNdU16WnNNVEl1TVRnZ05pNDRObUV4TGpZek5pQXhMall6TmlBd0lEQWdNQ0F4TGpZeklEQjZJaUF2UGdvOEwzTjJaejRLKSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9wYWNrYWdlLW9wZW5cbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBQYWNrYWdlT3BlbiA9IGNyZWF0ZUx1Y2lkZUljb24oJ3BhY2thZ2Utb3BlbicsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBQYWNrYWdlT3BlbjtcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTE2IDE2aDYnLCBrZXk6ICcxMDBiZ3knIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTkgMTN2NicsIGtleTogJzg1Y3lmMScgfV0sXG4gIFtcbiAgICAncGF0aCcsXG4gICAge1xuICAgICAgZDogJ00yMSAxMFY4YTIgMiAwIDAgMC0xLTEuNzNsLTctNGEyIDIgMCAwIDAtMiAwbC03IDRBMiAyIDAgMCAwIDMgOHY4YTIgMiAwIDAgMCAxIDEuNzNsNyA0YTIgMiAwIDAgMCAyIDBsMi0xLjE0JyxcbiAgICAgIGtleTogJ2U3dGIyaCcsXG4gICAgfSxcbiAgXSxcbiAgWydwYXRoJywgeyBkOiAnbTcuNSA0LjI3IDkgNS4xNScsIGtleTogJzFjODI0dycgfV0sXG4gIFsncG9seWxpbmUnLCB7IHBvaW50czogJzMuMjkgNyAxMiAxMiAyMC43MSA3Jywga2V5OiAnb3Vzdjg0JyB9XSxcbiAgWydsaW5lJywgeyB4MTogJzEyJywgeDI6ICcxMicsIHkxOiAnMjInLCB5MjogJzEyJywga2V5OiAnYTRlOGc4JyB9XSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBQYWNrYWdlUGx1c1xuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTVRZZ01UWm9OaUlnTHo0S0lDQThjR0YwYUNCa1BTSk5NVGtnTVROMk5pSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk1qRWdNVEJXT0dFeUlESWdNQ0F3SURBdE1TMHhMamN6YkMwM0xUUmhNaUF5SURBZ01DQXdMVElnTUd3dE55QTBRVElnTWlBd0lEQWdNQ0F6SURoMk9HRXlJRElnTUNBd0lEQWdNU0F4TGpjemJEY2dOR0V5SURJZ01DQXdJREFnTWlBd2JESXRNUzR4TkNJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0p0Tnk0MUlEUXVNamNnT1NBMUxqRTFJaUF2UGdvZ0lEeHdiMng1YkdsdVpTQndiMmx1ZEhNOUlqTXVNamtnTnlBeE1pQXhNaUF5TUM0M01TQTNJaUF2UGdvZ0lEeHNhVzVsSUhneFBTSXhNaUlnZURJOUlqRXlJaUI1TVQwaU1qSWlJSGt5UFNJeE1pSWdMejRLUEM5emRtYytDZz09KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9wYWNrYWdlLXBsdXNcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBQYWNrYWdlUGx1cyA9IGNyZWF0ZUx1Y2lkZUljb24oJ3BhY2thZ2UtcGx1cycsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBQYWNrYWdlUGx1cztcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgW1xuICAgICdwYXRoJyxcbiAgICB7XG4gICAgICBkOiAnTTIxIDEwVjhhMiAyIDAgMCAwLTEtMS43M2wtNy00YTIgMiAwIDAgMC0yIDBsLTcgNEEyIDIgMCAwIDAgMyA4djhhMiAyIDAgMCAwIDEgMS43M2w3IDRhMiAyIDAgMCAwIDIgMGwyLTEuMTQnLFxuICAgICAga2V5OiAnZTd0YjJoJyxcbiAgICB9LFxuICBdLFxuICBbJ3BhdGgnLCB7IGQ6ICdtNy41IDQuMjcgOSA1LjE1Jywga2V5OiAnMWM4MjR3JyB9XSxcbiAgWydwb2x5bGluZScsIHsgcG9pbnRzOiAnMy4yOSA3IDEyIDEyIDIwLjcxIDcnLCBrZXk6ICdvdXN2ODQnIH1dLFxuICBbJ2xpbmUnLCB7IHgxOiAnMTInLCB4MjogJzEyJywgeTE6ICcyMicsIHkyOiAnMTInLCBrZXk6ICdhNGU4ZzgnIH1dLFxuICBbJ2NpcmNsZScsIHsgY3g6ICcxOC41JywgY3k6ICcxNS41JywgcjogJzIuNScsIGtleTogJ2I1emQxMicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00yMC4yNyAxNy4yNyAyMiAxOScsIGtleTogJzFsNG11eicgfV0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgUGFja2FnZVNlYXJjaFxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTWpFZ01UQldPR0V5SURJZ01DQXdJREF0TVMweExqY3piQzAzTFRSaE1pQXlJREFnTUNBd0xUSWdNR3d0TnlBMFFUSWdNaUF3SURBZ01DQXpJRGgyT0dFeUlESWdNQ0F3SURBZ01TQXhMamN6YkRjZ05HRXlJRElnTUNBd0lEQWdNaUF3YkRJdE1TNHhOQ0lnTHo0S0lDQThjR0YwYUNCa1BTSnROeTQxSURRdU1qY2dPU0ExTGpFMUlpQXZQZ29nSUR4d2IyeDViR2x1WlNCd2IybHVkSE05SWpNdU1qa2dOeUF4TWlBeE1pQXlNQzQzTVNBM0lpQXZQZ29nSUR4c2FXNWxJSGd4UFNJeE1pSWdlREk5SWpFeUlpQjVNVDBpTWpJaUlIa3lQU0l4TWlJZ0x6NEtJQ0E4WTJseVkyeGxJR040UFNJeE9DNDFJaUJqZVQwaU1UVXVOU0lnY2owaU1pNDFJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHlNQzR5TnlBeE55NHlOeUF5TWlBeE9TSWdMejRLUEM5emRtYytDZz09KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9wYWNrYWdlLXNlYXJjaFxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IFBhY2thZ2VTZWFyY2ggPSBjcmVhdGVMdWNpZGVJY29uKCdwYWNrYWdlLXNlYXJjaCcsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBQYWNrYWdlU2VhcmNoO1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbXG4gICAgJ3BhdGgnLFxuICAgIHtcbiAgICAgIGQ6ICdNMjEgMTBWOGEyIDIgMCAwIDAtMS0xLjczbC03LTRhMiAyIDAgMCAwLTIgMGwtNyA0QTIgMiAwIDAgMCAzIDh2OGEyIDIgMCAwIDAgMSAxLjczbDcgNGEyIDIgMCAwIDAgMiAwbDItMS4xNCcsXG4gICAgICBrZXk6ICdlN3RiMmgnLFxuICAgIH0sXG4gIF0sXG4gIFsncGF0aCcsIHsgZDogJ203LjUgNC4yNyA5IDUuMTUnLCBrZXk6ICcxYzgyNHcnIH1dLFxuICBbJ3BvbHlsaW5lJywgeyBwb2ludHM6ICczLjI5IDcgMTIgMTIgMjAuNzEgNycsIGtleTogJ291c3Y4NCcgfV0sXG4gIFsnbGluZScsIHsgeDE6ICcxMicsIHgyOiAnMTInLCB5MTogJzIyJywgeTI6ICcxMicsIGtleTogJ2E0ZThnOCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ20xNyAxMyA1IDVtLTUgMCA1LTUnLCBrZXk6ICdpbTN3NGInIH1dLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIFBhY2thZ2VYXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NakVnTVRCV09HRXlJRElnTUNBd0lEQXRNUzB4TGpjemJDMDNMVFJoTWlBeUlEQWdNQ0F3TFRJZ01Hd3ROeUEwUVRJZ01pQXdJREFnTUNBeklEaDJPR0V5SURJZ01DQXdJREFnTVNBeExqY3piRGNnTkdFeUlESWdNQ0F3SURBZ01pQXdiREl0TVM0eE5DSWdMejRLSUNBOGNHRjBhQ0JrUFNKdE55NDFJRFF1TWpjZ09TQTFMakUxSWlBdlBnb2dJRHh3YjJ4NWJHbHVaU0J3YjJsdWRITTlJak11TWprZ055QXhNaUF4TWlBeU1DNDNNU0EzSWlBdlBnb2dJRHhzYVc1bElIZ3hQU0l4TWlJZ2VESTlJakV5SWlCNU1UMGlNaklpSUhreVBTSXhNaUlnTHo0S0lDQThjR0YwYUNCa1BTSnRNVGNnTVRNZ05TQTFiUzAxSURBZ05TMDFJaUF2UGdvOEwzTjJaejRLKSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9wYWNrYWdlLXhcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBQYWNrYWdlWCA9IGNyZWF0ZUx1Y2lkZUljb24oJ3BhY2thZ2UteCcsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBQYWNrYWdlWDtcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgW1xuICAgICdwYXRoJyxcbiAgICB7XG4gICAgICBkOiAnTTExIDIxLjczYTIgMiAwIDAgMCAyIDBsNy00QTIgMiAwIDAgMCAyMSAxNlY4YTIgMiAwIDAgMC0xLTEuNzNsLTctNGEyIDIgMCAwIDAtMiAwbC03IDRBMiAyIDAgMCAwIDMgOHY4YTIgMiAwIDAgMCAxIDEuNzN6JyxcbiAgICAgIGtleTogJzFhMGVkdycsXG4gICAgfSxcbiAgXSxcbiAgWydwYXRoJywgeyBkOiAnTTEyIDIyVjEyJywga2V5OiAnZDB4cXRkJyB9XSxcbiAgWydwb2x5bGluZScsIHsgcG9pbnRzOiAnMy4yOSA3IDEyIDEyIDIwLjcxIDcnLCBrZXk6ICdvdXN2ODQnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdtNy41IDQuMjcgOSA1LjE1Jywga2V5OiAnMWM4MjR3JyB9XSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBQYWNrYWdlXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NVEVnTWpFdU56TmhNaUF5SURBZ01DQXdJRElnTUd3M0xUUkJNaUF5SURBZ01DQXdJREl4SURFMlZqaGhNaUF5SURBZ01DQXdMVEV0TVM0M00yd3ROeTAwWVRJZ01pQXdJREFnTUMweUlEQnNMVGNnTkVFeUlESWdNQ0F3SURBZ015QTRkamhoTWlBeUlEQWdNQ0F3SURFZ01TNDNNM29pSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVEV5SURJeVZqRXlJaUF2UGdvZ0lEeHdiMng1YkdsdVpTQndiMmx1ZEhNOUlqTXVNamtnTnlBeE1pQXhNaUF5TUM0M01TQTNJaUF2UGdvZ0lEeHdZWFJvSUdROUltMDNMalVnTkM0eU55QTVJRFV1TVRVaUlDOCtDand2YzNablBnbz0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL3BhY2thZ2VcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBQYWNrYWdlID0gY3JlYXRlTHVjaWRlSWNvbigncGFja2FnZScsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBQYWNrYWdlO1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbXG4gICAgJ3BhdGgnLFxuICAgIHsgZDogJ20xOSAxMS04LTgtOC42IDguNmEyIDIgMCAwIDAgMCAyLjhsNS4yIDUuMmMuOC44IDIgLjggMi44IDBMMTkgMTFaJywga2V5OiAnaXJ1YTFpJyB9LFxuICBdLFxuICBbJ3BhdGgnLCB7IGQ6ICdtNSAyIDUgNScsIGtleTogJzFsbHMyYycgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00yIDEzaDE1Jywga2V5OiAnMWhrenZ1JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTIyIDIwYTIgMiAwIDEgMS00IDBjMC0xLjYgMS43LTIuNCAyLTQgLjMgMS42IDIgMi40IDIgNFonLCBrZXk6ICd4azc2bHEnIH1dLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIFBhaW50QnVja2V0XG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSnRNVGtnTVRFdE9DMDRMVGd1TmlBNExqWmhNaUF5SURBZ01DQXdJREFnTWk0NGJEVXVNaUExTGpKakxqZ3VPQ0F5SUM0NElESXVPQ0F3VERFNUlERXhXaUlnTHo0S0lDQThjR0YwYUNCa1BTSnROU0F5SURVZ05TSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk1pQXhNMmd4TlNJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTWpJZ01qQmhNaUF5SURBZ01TQXhMVFFnTUdNd0xURXVOaUF4TGpjdE1pNDBJREl0TkNBdU15QXhMallnTWlBeUxqUWdNaUEwV2lJZ0x6NEtQQzl6ZG1jK0NnPT0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL3BhaW50LWJ1Y2tldFxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IFBhaW50QnVja2V0ID0gY3JlYXRlTHVjaWRlSWNvbigncGFpbnQtYnVja2V0JywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IFBhaW50QnVja2V0O1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbJ3JlY3QnLCB7IHdpZHRoOiAnMTYnLCBoZWlnaHQ6ICc2JywgeDogJzInLCB5OiAnMicsIHJ4OiAnMicsIGtleTogJ2pjeXo3bScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xMCAxNnYtMmEyIDIgMCAwIDEgMi0yaDhhMiAyIDAgMCAwIDItMlY3YTIgMiAwIDAgMC0yLTJoLTInLCBrZXk6ICcxYjloN2MnIH1dLFxuICBbJ3JlY3QnLCB7IHdpZHRoOiAnNCcsIGhlaWdodDogJzYnLCB4OiAnOCcsIHk6ICcxNicsIHJ4OiAnMScsIGtleTogJ2Q2ZTd5bCcgfV0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgUGFpbnRSb2xsZXJcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNtVmpkQ0IzYVdSMGFEMGlNVFlpSUdobGFXZG9kRDBpTmlJZ2VEMGlNaUlnZVQwaU1pSWdjbmc5SWpJaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRFd0lERTJkaTB5WVRJZ01pQXdJREFnTVNBeUxUSm9PR0V5SURJZ01DQXdJREFnTWkweVZqZGhNaUF5SURBZ01DQXdMVEl0TW1ndE1pSWdMejRLSUNBOGNtVmpkQ0IzYVdSMGFEMGlOQ0lnYUdWcFoyaDBQU0kySWlCNFBTSTRJaUI1UFNJeE5pSWdjbmc5SWpFaUlDOCtDand2YzNablBnbz0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL3BhaW50LXJvbGxlclxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IFBhaW50Um9sbGVyID0gY3JlYXRlTHVjaWRlSWNvbigncGFpbnQtcm9sbGVyJywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IFBhaW50Um9sbGVyO1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdNMTAgMnYyJywga2V5OiAnN3UwcWRjJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTE0IDJ2NCcsIGtleTogJ3FtemJsdScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xNyAyYTEgMSAwIDAgMSAxIDF2OUg2VjNhMSAxIDAgMCAxIDEtMXonLCBrZXk6ICd5Y3Z1MDAnIH1dLFxuICBbXG4gICAgJ3BhdGgnLFxuICAgIHtcbiAgICAgIGQ6ICdNNiAxMmExIDEgMCAwIDAtMSAxdjFhMiAyIDAgMCAwIDIgMmgyYTEgMSAwIDAgMSAxIDF2Mi45YTIgMiAwIDEgMCA0IDBWMTdhMSAxIDAgMCAxIDEtMWgyYTIgMiAwIDAgMCAyLTJ2LTFhMSAxIDAgMCAwLTEtMScsXG4gICAgICBrZXk6ICdpdzR3bnAnLFxuICAgIH0sXG4gIF0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgUGFpbnRicnVzaFZlcnRpY2FsXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NVEFnTW5ZeUlpQXZQZ29nSUR4d1lYUm9JR1E5SWsweE5DQXlkalFpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVEUzSURKaE1TQXhJREFnTUNBeElERWdNWFk1U0RaV00yRXhJREVnTUNBd0lERWdNUzB4ZWlJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTmlBeE1tRXhJREVnTUNBd0lEQXRNU0F4ZGpGaE1pQXlJREFnTUNBd0lESWdNbWd5WVRFZ01TQXdJREFnTVNBeElERjJNaTQ1WVRJZ01pQXdJREVnTUNBMElEQldNVGRoTVNBeElEQWdNQ0F4SURFdE1XZ3lZVElnTWlBd0lEQWdNQ0F5TFRKMkxURmhNU0F4SURBZ01DQXdMVEV0TVNJZ0x6NEtQQzl6ZG1jK0NnPT0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL3BhaW50YnJ1c2gtdmVydGljYWxcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBQYWludGJydXNoVmVydGljYWwgPSBjcmVhdGVMdWNpZGVJY29uKCdwYWludGJydXNoLXZlcnRpY2FsJywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IFBhaW50YnJ1c2hWZXJ0aWNhbDtcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnbTE0LjYyMiAxNy44OTctMTAuNjgtMi45MTMnLCBrZXk6ICd2ajJwMXUnIH1dLFxuICBbXG4gICAgJ3BhdGgnLFxuICAgIHtcbiAgICAgIGQ6ICdNMTguMzc2IDIuNjIyYTEgMSAwIDEgMSAzLjAwMiAzLjAwMkwxNy4zNiA5LjY0M2EuNS41IDAgMCAwIDAgLjcwN2wuOTQ0Ljk0NGEyLjQxIDIuNDEgMCAwIDEgMCAzLjQwOGwtLjk0NC45NDRhLjUuNSAwIDAgMS0uNzA3IDBMOC4zNTQgNy4zNDhhLjUuNSAwIDAgMSAwLS43MDdsLjk0NC0uOTQ0YTIuNDEgMi40MSAwIDAgMSAzLjQwOCAwbC45NDQuOTQ0YS41LjUgMCAwIDAgLjcwNyAweicsXG4gICAgICBrZXk6ICcxOHRjNWMnLFxuICAgIH0sXG4gIF0sXG4gIFtcbiAgICAncGF0aCcsXG4gICAge1xuICAgICAgZDogJ005IDhjLTEuODA0IDIuNzEtMy45NyAzLjQ2LTYuNTgzIDMuOTQ4YS41MDcuNTA3IDAgMCAwLS4zMDIuODE5bDcuMzIgOC44ODNhMSAxIDAgMCAwIDEuMTg1LjIwNEMxMi43MzUgMjAuNDA1IDE2IDE2Ljc5MiAxNiAxNScsXG4gICAgICBrZXk6ICd5dHpmeHknLFxuICAgIH0sXG4gIF0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgUGFpbnRicnVzaFxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0p0TVRRdU5qSXlJREUzTGpnNU55MHhNQzQyT0MweUxqa3hNeUlnTHo0S0lDQThjR0YwYUNCa1BTSk5NVGd1TXpjMklESXVOakl5WVRFZ01TQXdJREVnTVNBekxqQXdNaUF6TGpBd01rd3hOeTR6TmlBNUxqWTBNMkV1TlM0MUlEQWdNQ0F3SURBZ0xqY3dOMnd1T1RRMExqazBOR0V5TGpReElESXVOREVnTUNBd0lERWdNQ0F6TGpRd09Hd3RMamswTkM0NU5EUmhMalV1TlNBd0lEQWdNUzB1TnpBM0lEQk1PQzR6TlRRZ055NHpORGhoTGpVdU5TQXdJREFnTVNBd0xTNDNNRGRzTGprME5DMHVPVFEwWVRJdU5ERWdNaTQwTVNBd0lEQWdNU0F6TGpRd09DQXdiQzQ1TkRRdU9UUTBZUzQxTGpVZ01DQXdJREFnTGpjd055QXdlaUlnTHo0S0lDQThjR0YwYUNCa1BTSk5PU0E0WXkweExqZ3dOQ0F5TGpjeExUTXVPVGNnTXk0ME5pMDJMalU0TXlBekxqazBPR0V1TlRBM0xqVXdOeUF3SURBZ01DMHVNekF5TGpneE9XdzNMak15SURndU9EZ3pZVEVnTVNBd0lEQWdNQ0F4TGpFNE5TNHlNRFJETVRJdU56TTFJREl3TGpRd05TQXhOaUF4Tmk0M09USWdNVFlnTVRVaUlDOCtDand2YzNablBnbz0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL3BhaW50YnJ1c2hcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBQYWludGJydXNoID0gY3JlYXRlTHVjaWRlSWNvbigncGFpbnRicnVzaCcsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBQYWludGJydXNoO1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbXG4gICAgJ3BhdGgnLFxuICAgIHtcbiAgICAgIGQ6ICdNMTIgMjJhMSAxIDAgMCAxIDAtMjAgMTAgOSAwIDAgMSAxMCA5IDUgNSAwIDAgMS01IDVoLTIuMjVhMS43NSAxLjc1IDAgMCAwLTEuNCAyLjhsLjMuNGExLjc1IDEuNzUgMCAwIDEtMS40IDIuOHonLFxuICAgICAga2V5OiAnZTc5amZjJyxcbiAgICB9LFxuICBdLFxuICBbJ2NpcmNsZScsIHsgY3g6ICcxMy41JywgY3k6ICc2LjUnLCByOiAnLjUnLCBmaWxsOiAnY3VycmVudENvbG9yJywga2V5OiAnMW9razR3JyB9XSxcbiAgWydjaXJjbGUnLCB7IGN4OiAnMTcuNScsIGN5OiAnMTAuNScsIHI6ICcuNScsIGZpbGw6ICdjdXJyZW50Q29sb3InLCBrZXk6ICdmNjRoOWYnIH1dLFxuICBbJ2NpcmNsZScsIHsgY3g6ICc2LjUnLCBjeTogJzEyLjUnLCByOiAnLjUnLCBmaWxsOiAnY3VycmVudENvbG9yJywga2V5OiAncXkyMWd4JyB9XSxcbiAgWydjaXJjbGUnLCB7IGN4OiAnOC41JywgY3k6ICc3LjUnLCByOiAnLjUnLCBmaWxsOiAnY3VycmVudENvbG9yJywga2V5OiAnZm90eGhuJyB9XSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBQYWxldHRlXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NVElnTWpKaE1TQXhJREFnTUNBeElEQXRNakFnTVRBZ09TQXdJREFnTVNBeE1DQTVJRFVnTlNBd0lEQWdNUzAxSURWb0xUSXVNalZoTVM0M05TQXhMamMxSURBZ01DQXdMVEV1TkNBeUxqaHNMak11TkdFeExqYzFJREV1TnpVZ01DQXdJREV0TVM0MElESXVPSG9pSUM4K0NpQWdQR05wY21Oc1pTQmplRDBpTVRNdU5TSWdZM2s5SWpZdU5TSWdjajBpTGpVaUlHWnBiR3c5SW1OMWNuSmxiblJEYjJ4dmNpSWdMejRLSUNBOFkybHlZMnhsSUdONFBTSXhOeTQxSWlCamVUMGlNVEF1TlNJZ2NqMGlMalVpSUdacGJHdzlJbU4xY25KbGJuUkRiMnh2Y2lJZ0x6NEtJQ0E4WTJseVkyeGxJR040UFNJMkxqVWlJR041UFNJeE1pNDFJaUJ5UFNJdU5TSWdabWxzYkQwaVkzVnljbVZ1ZEVOdmJHOXlJaUF2UGdvZ0lEeGphWEpqYkdVZ1kzZzlJamd1TlNJZ1kzazlJamN1TlNJZ2NqMGlMalVpSUdacGJHdzlJbU4xY25KbGJuUkRiMnh2Y2lJZ0x6NEtQQzl6ZG1jK0NnPT0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL3BhbGV0dGVcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBQYWxldHRlID0gY3JlYXRlTHVjaWRlSWNvbigncGFsZXR0ZScsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBQYWxldHRlO1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdNMTEuMjUgMTcuMjVoMS41TDEyIDE4eicsIGtleTogJzF3bXd3aicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ20xNSAxMiAyIDInLCBrZXk6ICdrNjB3ejQnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTggNi41YS41LjUgMCAwIDAtLjUtLjUnLCBrZXk6ICcxY2g0aDQnIH1dLFxuICBbXG4gICAgJ3BhdGgnLFxuICAgIHtcbiAgICAgIGQ6ICdNMjAuNjkgOS42N2E0LjUgNC41IDAgMSAwLTcuMDQtNS41IDguMzUgOC4zNSAwIDAgMC0zLjMgMCA0LjUgNC41IDAgMSAwLTcuMDQgNS41QzIuNDkgMTEuMiAyIDEyLjg4IDIgMTQuNSAyIDE5LjQ3IDYuNDggMjIgMTIgMjJzMTAtMi41MyAxMC03LjVjMC0xLjYyLS40OC0zLjMtMS4zLTQuODMnLFxuICAgICAga2V5OiAnMWM2NjBsJyxcbiAgICB9LFxuICBdLFxuICBbJ3BhdGgnLCB7IGQ6ICdNNiA2LjVhLjQ5NS40OTUgMCAwIDEgLjUtLjUnLCBrZXk6ICdldml1ZXAnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdtOSAxMi0yIDInLCBrZXk6ICczMjZua3cnIH1dLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIFBhbmRhXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NVEV1TWpVZ01UY3VNalZvTVM0MVRERXlJREU0ZWlJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0p0TVRVZ01USWdNaUF5SWlBdlBnb2dJRHh3WVhSb0lHUTlJazB4T0NBMkxqVmhMalV1TlNBd0lEQWdNQzB1TlMwdU5TSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk1qQXVOamtnT1M0Mk4yRTBMalVnTkM0MUlEQWdNU0F3TFRjdU1EUXROUzQxSURndU16VWdPQzR6TlNBd0lEQWdNQzB6TGpNZ01DQTBMalVnTkM0MUlEQWdNU0F3TFRjdU1EUWdOUzQxUXpJdU5Ea2dNVEV1TWlBeUlERXlMamc0SURJZ01UUXVOU0F5SURFNUxqUTNJRFl1TkRnZ01qSWdNVElnTWpKek1UQXRNaTQxTXlBeE1DMDNMalZqTUMweExqWXlMUzQwT0MwekxqTXRNUzR6TFRRdU9ETWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRUWWdOaTQxWVM0ME9UVXVORGsxSURBZ01DQXhJQzQxTFM0MUlpQXZQZ29nSUR4d1lYUm9JR1E5SW0wNUlERXlMVElnTWlJZ0x6NEtQQzl6ZG1jK0NnPT0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL3BhbmRhXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgUGFuZGEgPSBjcmVhdGVMdWNpZGVJY29uKCdwYW5kYScsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBQYW5kYTtcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgWydyZWN0JywgeyB3aWR0aDogJzE4JywgaGVpZ2h0OiAnMTgnLCB4OiAnMycsIHk6ICczJywgcng6ICcyJywga2V5OiAnYWZpdHY3JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTMgMTVoMTgnLCBrZXk6ICc1eHNodXAnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdtMTUgOC0zIDMtMy0zJywga2V5OiAnMW94eTF6JyB9XSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBQYW5lbEJvdHRvbUNsb3NlXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjbVZqZENCM2FXUjBhRDBpTVRnaUlHaGxhV2RvZEQwaU1UZ2lJSGc5SWpNaUlIazlJak1pSUhKNFBTSXlJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHpJREUxYURFNElpQXZQZ29nSUR4d1lYUm9JR1E5SW0weE5TQTRMVE1nTXkwekxUTWlJQzgrQ2p3dmMzWm5QZ289KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9wYW5lbC1ib3R0b20tY2xvc2VcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBQYW5lbEJvdHRvbUNsb3NlID0gY3JlYXRlTHVjaWRlSWNvbigncGFuZWwtYm90dG9tLWNsb3NlJywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IFBhbmVsQm90dG9tQ2xvc2U7XG4iLCJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbXG4gIFsncmVjdCcsIHsgd2lkdGg6ICcxOCcsIGhlaWdodDogJzE4JywgeDogJzMnLCB5OiAnMycsIHJ4OiAnMicsIGtleTogJ2FmaXR2NycgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xNCAxNWgxJywga2V5OiAnMTcxbmV2JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTE5IDE1aDInLCBrZXk6ICcxdm51Y3AnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMyAxNWgyJywga2V5OiAnOGJ5bTBxJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTkgMTVoMScsIGtleTogJzF0ZzNrcycgfV0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgUGFuZWxCb3R0b21EYXNoZWRcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNtVmpkQ0IzYVdSMGFEMGlNVGdpSUdobGFXZG9kRDBpTVRnaUlIZzlJak1pSUhrOUlqTWlJSEo0UFNJeUlpQXZQZ29nSUR4d1lYUm9JR1E5SWsweE5DQXhOV2d4SWlBdlBnb2dJRHh3WVhSb0lHUTlJazB4T1NBeE5XZ3lJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHpJREUxYURJaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRrZ01UVm9NU0lnTHo0S1BDOXpkbWMrQ2c9PSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvcGFuZWwtYm90dG9tLWRhc2hlZFxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IFBhbmVsQm90dG9tRGFzaGVkID0gY3JlYXRlTHVjaWRlSWNvbigncGFuZWwtYm90dG9tLWRhc2hlZCcsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBQYW5lbEJvdHRvbURhc2hlZDtcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgWydyZWN0JywgeyB3aWR0aDogJzE4JywgaGVpZ2h0OiAnMTgnLCB4OiAnMycsIHk6ICczJywgcng6ICcyJywga2V5OiAnYWZpdHY3JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTMgMTVoMTgnLCBrZXk6ICc1eHNodXAnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdtOSAxMCAzLTMgMyAzJywga2V5OiAnMTFnc3hzJyB9XSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBQYW5lbEJvdHRvbU9wZW5cbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNtVmpkQ0IzYVdSMGFEMGlNVGdpSUdobGFXZG9kRDBpTVRnaUlIZzlJak1pSUhrOUlqTWlJSEo0UFNJeUlpQXZQZ29nSUR4d1lYUm9JR1E5SWsweklERTFhREU0SWlBdlBnb2dJRHh3WVhSb0lHUTlJbTA1SURFd0lETXRNeUF6SURNaUlDOCtDand2YzNablBnbz0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL3BhbmVsLWJvdHRvbS1vcGVuXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgUGFuZWxCb3R0b21PcGVuID0gY3JlYXRlTHVjaWRlSWNvbigncGFuZWwtYm90dG9tLW9wZW4nLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgUGFuZWxCb3R0b21PcGVuO1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbJ3JlY3QnLCB7IHdpZHRoOiAnMTgnLCBoZWlnaHQ6ICcxOCcsIHg6ICczJywgeTogJzMnLCByeDogJzInLCBrZXk6ICdhZml0djcnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMyAxNWgxOCcsIGtleTogJzV4c2h1cCcgfV0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgUGFuZWxCb3R0b21cbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNtVmpkQ0IzYVdSMGFEMGlNVGdpSUdobGFXZG9kRDBpTVRnaUlIZzlJak1pSUhrOUlqTWlJSEo0UFNJeUlpQXZQZ29nSUR4d1lYUm9JR1E5SWsweklERTFhREU0SWlBdlBnbzhMM04yWno0SykgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvcGFuZWwtYm90dG9tXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgUGFuZWxCb3R0b20gPSBjcmVhdGVMdWNpZGVJY29uKCdwYW5lbC1ib3R0b20nLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgUGFuZWxCb3R0b207XG4iLCJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbXG4gIFsncmVjdCcsIHsgd2lkdGg6ICcxOCcsIGhlaWdodDogJzE4JywgeDogJzMnLCB5OiAnMycsIHJ4OiAnMicsIGtleTogJ2FmaXR2NycgfV0sXG4gIFsncGF0aCcsIHsgZDogJ005IDE0djEnLCBrZXk6ICdhc2twZDgnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNOSAxOXYyJywga2V5OiAnMTZ0ZWp4JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTkgM3YyJywga2V5OiAnMW5vdWJsJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTkgOXYxJywga2V5OiAnMTllYnhnJyB9XSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBQYW5lbExlZnREYXNoZWRcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNtVmpkQ0IzYVdSMGFEMGlNVGdpSUdobGFXZG9kRDBpTVRnaUlIZzlJak1pSUhrOUlqTWlJSEo0UFNJeUlpQXZQZ29nSUR4d1lYUm9JR1E5SWswNUlERTBkakVpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVGtnTVRsMk1pSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk9TQXpkaklpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVGtnT1hZeElpQXZQZ284TDNOMlp6NEspIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL3BhbmVsLWxlZnQtZGFzaGVkXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgUGFuZWxMZWZ0RGFzaGVkID0gY3JlYXRlTHVjaWRlSWNvbigncGFuZWwtbGVmdC1kYXNoZWQnLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgUGFuZWxMZWZ0RGFzaGVkO1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbJ3JlY3QnLCB7IHdpZHRoOiAnMTgnLCBoZWlnaHQ6ICcxOCcsIHg6ICczJywgeTogJzMnLCByeDogJzInLCBrZXk6ICdhZml0djcnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNOSAzdjE4Jywga2V5OiAnZmgzaHFhJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnbTE2IDE1LTMtMyAzLTMnLCBrZXk6ICcxNHk5OXonIH1dLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIFBhbmVsTGVmdENsb3NlXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjbVZqZENCM2FXUjBhRDBpTVRnaUlHaGxhV2RvZEQwaU1UZ2lJSGc5SWpNaUlIazlJak1pSUhKNFBTSXlJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMDVJRE4yTVRnaUlDOCtDaUFnUEhCaGRHZ2daRDBpYlRFMklERTFMVE10TXlBekxUTWlJQzgrQ2p3dmMzWm5QZ289KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9wYW5lbC1sZWZ0LWNsb3NlXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgUGFuZWxMZWZ0Q2xvc2UgPSBjcmVhdGVMdWNpZGVJY29uKCdwYW5lbC1sZWZ0LWNsb3NlJywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IFBhbmVsTGVmdENsb3NlO1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbJ3JlY3QnLCB7IHdpZHRoOiAnMTgnLCBoZWlnaHQ6ICcxOCcsIHg6ICczJywgeTogJzMnLCByeDogJzInLCBrZXk6ICdhZml0djcnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNOSAzdjE4Jywga2V5OiAnZmgzaHFhJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnbTE0IDkgMyAzLTMgMycsIGtleTogJzgwMTBlZScgfV0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgUGFuZWxMZWZ0T3BlblxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y21WamRDQjNhV1IwYUQwaU1UZ2lJR2hsYVdkb2REMGlNVGdpSUhnOUlqTWlJSGs5SWpNaUlISjRQU0l5SWlBdlBnb2dJRHh3WVhSb0lHUTlJazA1SUROMk1UZ2lJQzgrQ2lBZ1BIQmhkR2dnWkQwaWJURTBJRGtnTXlBekxUTWdNeUlnTHo0S1BDOXpkbWMrQ2c9PSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvcGFuZWwtbGVmdC1vcGVuXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgUGFuZWxMZWZ0T3BlbiA9IGNyZWF0ZUx1Y2lkZUljb24oJ3BhbmVsLWxlZnQtb3BlbicsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBQYW5lbExlZnRPcGVuO1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbJ3JlY3QnLCB7IHdpZHRoOiAnMTgnLCBoZWlnaHQ6ICcxOCcsIHg6ICczJywgeTogJzMnLCByeDogJzInLCBrZXk6ICdhZml0djcnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNOSAzdjE4Jywga2V5OiAnZmgzaHFhJyB9XSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBQYW5lbExlZnRcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNtVmpkQ0IzYVdSMGFEMGlNVGdpSUdobGFXZG9kRDBpTVRnaUlIZzlJak1pSUhrOUlqTWlJSEo0UFNJeUlpQXZQZ29nSUR4d1lYUm9JR1E5SWswNUlETjJNVGdpSUM4K0Nqd3ZjM1puUGdvPSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvcGFuZWwtbGVmdFxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IFBhbmVsTGVmdCA9IGNyZWF0ZUx1Y2lkZUljb24oJ3BhbmVsLWxlZnQnLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgUGFuZWxMZWZ0O1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbJ3JlY3QnLCB7IHdpZHRoOiAnMTgnLCBoZWlnaHQ6ICcxOCcsIHg6ICczJywgeTogJzMnLCByeDogJzInLCBrZXk6ICdhZml0djcnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTUgM3YxOCcsIGtleTogJzE0bnZwMCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ204IDkgMyAzLTMgMycsIGtleTogJzEyaGw1bScgfV0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgUGFuZWxSaWdodENsb3NlXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjbVZqZENCM2FXUjBhRDBpTVRnaUlHaGxhV2RvZEQwaU1UZ2lJSGc5SWpNaUlIazlJak1pSUhKNFBTSXlJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHhOU0F6ZGpFNElpQXZQZ29nSUR4d1lYUm9JR1E5SW0wNElEa2dNeUF6TFRNZ015SWdMejRLUEM5emRtYytDZz09KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9wYW5lbC1yaWdodC1jbG9zZVxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IFBhbmVsUmlnaHRDbG9zZSA9IGNyZWF0ZUx1Y2lkZUljb24oJ3BhbmVsLXJpZ2h0LWNsb3NlJywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IFBhbmVsUmlnaHRDbG9zZTtcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgWydyZWN0JywgeyB3aWR0aDogJzE4JywgaGVpZ2h0OiAnMTgnLCB4OiAnMycsIHk6ICczJywgcng6ICcyJywga2V5OiAnYWZpdHY3JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTE1IDE0djEnLCBrZXk6ICdpbHNmY2gnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTUgMTl2MicsIGtleTogJzFmc3QyZicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xNSAzdjInLCBrZXk6ICd6MjA0ZzQnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTUgOXYxJywga2V5OiAnejJhOGIxJyB9XSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBQYW5lbFJpZ2h0RGFzaGVkXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjbVZqZENCM2FXUjBhRDBpTVRnaUlHaGxhV2RvZEQwaU1UZ2lJSGc5SWpNaUlIazlJak1pSUhKNFBTSXlJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHhOU0F4TkhZeElpQXZQZ29nSUR4d1lYUm9JR1E5SWsweE5TQXhPWFl5SWlBdlBnb2dJRHh3WVhSb0lHUTlJazB4TlNBemRqSWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRURTFJRGwyTVNJZ0x6NEtQQzl6ZG1jK0NnPT0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL3BhbmVsLXJpZ2h0LWRhc2hlZFxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IFBhbmVsUmlnaHREYXNoZWQgPSBjcmVhdGVMdWNpZGVJY29uKCdwYW5lbC1yaWdodC1kYXNoZWQnLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgUGFuZWxSaWdodERhc2hlZDtcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgWydyZWN0JywgeyB3aWR0aDogJzE4JywgaGVpZ2h0OiAnMTgnLCB4OiAnMycsIHk6ICczJywgcng6ICcyJywga2V5OiAnYWZpdHY3JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTE1IDN2MTgnLCBrZXk6ICcxNG52cDAnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdtMTAgMTUtMy0zIDMtMycsIGtleTogJzFwZ3VwYycgfV0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgUGFuZWxSaWdodE9wZW5cbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNtVmpkQ0IzYVdSMGFEMGlNVGdpSUdobGFXZG9kRDBpTVRnaUlIZzlJak1pSUhrOUlqTWlJSEo0UFNJeUlpQXZQZ29nSUR4d1lYUm9JR1E5SWsweE5TQXpkakU0SWlBdlBnb2dJRHh3WVhSb0lHUTlJbTB4TUNBeE5TMHpMVE1nTXkweklpQXZQZ284TDNOMlp6NEspIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL3BhbmVsLXJpZ2h0LW9wZW5cbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBQYW5lbFJpZ2h0T3BlbiA9IGNyZWF0ZUx1Y2lkZUljb24oJ3BhbmVsLXJpZ2h0LW9wZW4nLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgUGFuZWxSaWdodE9wZW47XG4iLCJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbXG4gIFsncmVjdCcsIHsgd2lkdGg6ICcxOCcsIGhlaWdodDogJzE4JywgeDogJzMnLCB5OiAnMycsIHJ4OiAnMicsIGtleTogJ2FmaXR2NycgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xNSAzdjE4Jywga2V5OiAnMTRudnAwJyB9XSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBQYW5lbFJpZ2h0XG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjbVZqZENCM2FXUjBhRDBpTVRnaUlHaGxhV2RvZEQwaU1UZ2lJSGc5SWpNaUlIazlJak1pSUhKNFBTSXlJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHhOU0F6ZGpFNElpQXZQZ284TDNOMlp6NEspIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL3BhbmVsLXJpZ2h0XG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgUGFuZWxSaWdodCA9IGNyZWF0ZUx1Y2lkZUljb24oJ3BhbmVsLXJpZ2h0JywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IFBhbmVsUmlnaHQ7XG4iLCJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbXG4gIFsncmVjdCcsIHsgd2lkdGg6ICcxOCcsIGhlaWdodDogJzE4JywgeDogJzMnLCB5OiAnMycsIHJ4OiAnMicsIGtleTogJ2FmaXR2NycgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00zIDloMTgnLCBrZXk6ICcxcHVkY3QnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdtOSAxNiAzLTMgMyAzJywga2V5OiAnMWlkY25tJyB9XSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBQYW5lbFRvcENsb3NlXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjbVZqZENCM2FXUjBhRDBpTVRnaUlHaGxhV2RvZEQwaU1UZ2lJSGc5SWpNaUlIazlJak1pSUhKNFBTSXlJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHpJRGxvTVRnaUlDOCtDaUFnUEhCaGRHZ2daRDBpYlRrZ01UWWdNeTB6SURNZ015SWdMejRLUEM5emRtYytDZz09KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9wYW5lbC10b3AtY2xvc2VcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBQYW5lbFRvcENsb3NlID0gY3JlYXRlTHVjaWRlSWNvbigncGFuZWwtdG9wLWNsb3NlJywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IFBhbmVsVG9wQ2xvc2U7XG4iLCJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbXG4gIFsncmVjdCcsIHsgd2lkdGg6ICcxOCcsIGhlaWdodDogJzE4JywgeDogJzMnLCB5OiAnMycsIHJ4OiAnMicsIGtleTogJ2FmaXR2NycgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xNCA5aDEnLCBrZXk6ICdsMHN2Z3knIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTkgOWgyJywga2V5OiAndGUyemZnJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTMgOWgyJywga2V5OiAnMWg0bGR3JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTkgOWgxJywga2V5OiAnMTVqenV6JyB9XSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBQYW5lbFRvcERhc2hlZFxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y21WamRDQjNhV1IwYUQwaU1UZ2lJR2hsYVdkb2REMGlNVGdpSUhnOUlqTWlJSGs5SWpNaUlISjRQU0l5SWlBdlBnb2dJRHh3WVhSb0lHUTlJazB4TkNBNWFERWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRURTVJRGxvTWlJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTXlBNWFESWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRUa2dPV2d4SWlBdlBnbzhMM04yWno0SykgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvcGFuZWwtdG9wLWRhc2hlZFxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IFBhbmVsVG9wRGFzaGVkID0gY3JlYXRlTHVjaWRlSWNvbigncGFuZWwtdG9wLWRhc2hlZCcsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBQYW5lbFRvcERhc2hlZDtcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgWydyZWN0JywgeyB3aWR0aDogJzE4JywgaGVpZ2h0OiAnMTgnLCB4OiAnMycsIHk6ICczJywgcng6ICcyJywga2V5OiAnYWZpdHY3JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTMgOWgxOCcsIGtleTogJzFwdWRjdCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ20xNSAxNC0zIDMtMy0zJywga2V5OiAnZzIxNXZmJyB9XSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBQYW5lbFRvcE9wZW5cbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNtVmpkQ0IzYVdSMGFEMGlNVGdpSUdobGFXZG9kRDBpTVRnaUlIZzlJak1pSUhrOUlqTWlJSEo0UFNJeUlpQXZQZ29nSUR4d1lYUm9JR1E5SWsweklEbG9NVGdpSUM4K0NpQWdQSEJoZEdnZ1pEMGliVEUxSURFMExUTWdNeTB6TFRNaUlDOCtDand2YzNablBnbz0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL3BhbmVsLXRvcC1vcGVuXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgUGFuZWxUb3BPcGVuID0gY3JlYXRlTHVjaWRlSWNvbigncGFuZWwtdG9wLW9wZW4nLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgUGFuZWxUb3BPcGVuO1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbJ3JlY3QnLCB7IHdpZHRoOiAnMTgnLCBoZWlnaHQ6ICcxOCcsIHg6ICczJywgeTogJzMnLCByeDogJzInLCBrZXk6ICdhZml0djcnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMyA5aDE4Jywga2V5OiAnMXB1ZGN0JyB9XSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBQYW5lbFRvcFxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y21WamRDQjNhV1IwYUQwaU1UZ2lJR2hsYVdkb2REMGlNVGdpSUhnOUlqTWlJSGs5SWpNaUlISjRQU0l5SWlBdlBnb2dJRHh3WVhSb0lHUTlJazB6SURsb01UZ2lJQzgrQ2p3dmMzWm5QZ289KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9wYW5lbC10b3BcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBQYW5lbFRvcCA9IGNyZWF0ZUx1Y2lkZUljb24oJ3BhbmVsLXRvcCcsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBQYW5lbFRvcDtcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgWydyZWN0JywgeyB3aWR0aDogJzE4JywgaGVpZ2h0OiAnMTgnLCB4OiAnMycsIHk6ICczJywgcng6ICcyJywga2V5OiAnYWZpdHY3JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTkgM3YxOCcsIGtleTogJ2ZoM2hxYScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ005IDE1aDEyJywga2V5OiAnNWlqZW41JyB9XSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBQYW5lbHNMZWZ0Qm90dG9tXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjbVZqZENCM2FXUjBhRDBpTVRnaUlHaGxhV2RvZEQwaU1UZ2lJSGc5SWpNaUlIazlJak1pSUhKNFBTSXlJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMDVJRE4yTVRnaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRrZ01UVm9NVElpSUM4K0Nqd3ZjM1puUGdvPSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvcGFuZWxzLWxlZnQtYm90dG9tXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgUGFuZWxzTGVmdEJvdHRvbSA9IGNyZWF0ZUx1Y2lkZUljb24oJ3BhbmVscy1sZWZ0LWJvdHRvbScsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBQYW5lbHNMZWZ0Qm90dG9tO1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbJ3JlY3QnLCB7IHdpZHRoOiAnMTgnLCBoZWlnaHQ6ICcxOCcsIHg6ICczJywgeTogJzMnLCByeDogJzInLCBrZXk6ICdhZml0djcnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMyAxNWgxMicsIGtleTogJzF3a3FiMycgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xNSAzdjE4Jywga2V5OiAnMTRudnAwJyB9XSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBQYW5lbHNSaWdodEJvdHRvbVxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y21WamRDQjNhV1IwYUQwaU1UZ2lJR2hsYVdkb2REMGlNVGdpSUhnOUlqTWlJSGs5SWpNaUlISjRQU0l5SWlBdlBnb2dJRHh3WVhSb0lHUTlJazB6SURFMWFERXlJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHhOU0F6ZGpFNElpQXZQZ284TDNOMlp6NEspIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL3BhbmVscy1yaWdodC1ib3R0b21cbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBQYW5lbHNSaWdodEJvdHRvbSA9IGNyZWF0ZUx1Y2lkZUljb24oJ3BhbmVscy1yaWdodC1ib3R0b20nLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgUGFuZWxzUmlnaHRCb3R0b207XG4iLCJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbXG4gIFsncmVjdCcsIHsgd2lkdGg6ICcxOCcsIGhlaWdodDogJzE4JywgeDogJzMnLCB5OiAnMycsIHJ4OiAnMicsIGtleTogJ2FmaXR2NycgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00zIDloMTgnLCBrZXk6ICcxcHVkY3QnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNOSAyMVY5Jywga2V5OiAnMW90bzVwJyB9XSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBQYW5lbHNUb3BMZWZ0XG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjbVZqZENCM2FXUjBhRDBpTVRnaUlHaGxhV2RvZEQwaU1UZ2lJSGc5SWpNaUlIazlJak1pSUhKNFBTSXlJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHpJRGxvTVRnaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRrZ01qRldPU0lnTHo0S1BDOXpkbWMrQ2c9PSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvcGFuZWxzLXRvcC1sZWZ0XG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgUGFuZWxzVG9wTGVmdCA9IGNyZWF0ZUx1Y2lkZUljb24oJ3BhbmVscy10b3AtbGVmdCcsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBQYW5lbHNUb3BMZWZ0O1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbXG4gICAgJ3BhdGgnLFxuICAgIHtcbiAgICAgIGQ6ICdtMTYgNi04LjQxNCA4LjU4NmEyIDIgMCAwIDAgMi44MjkgMi44MjlsOC40MTQtOC41ODZhNCA0IDAgMSAwLTUuNjU3LTUuNjU3bC04LjM3OSA4LjU1MWE2IDYgMCAxIDAgOC40ODUgOC40ODVsOC4zNzktOC41NTEnLFxuICAgICAga2V5OiAnMW1pZWN1JyxcbiAgICB9LFxuICBdLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIFBhcGVyY2xpcFxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0p0TVRZZ05pMDRMalF4TkNBNExqVTRObUV5SURJZ01DQXdJREFnTWk0NE1qa2dNaTQ0TWpsc09DNDBNVFF0T0M0MU9EWmhOQ0EwSURBZ01TQXdMVFV1TmpVM0xUVXVOalUzYkMwNExqTTNPU0E0TGpVMU1XRTJJRFlnTUNBeElEQWdPQzQwT0RVZ09DNDBPRFZzT0M0ek56a3RPQzQxTlRFaUlDOCtDand2YzNablBnbz0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL3BhcGVyY2xpcFxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IFBhcGVyY2xpcCA9IGNyZWF0ZUx1Y2lkZUljb24oJ3BhcGVyY2xpcCcsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBQYXBlcmNsaXA7XG4iLCJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ004IDIxcy00LTMtNC05IDQtOSA0LTknLCBrZXk6ICd1dG85dWQnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTYgM3M0IDMgNCA5LTQgOS00IDknLCBrZXk6ICc0dzJ2c3EnIH1dLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIFBhcmVudGhlc2VzXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5PQ0F5TVhNdE5DMHpMVFF0T1NBMExUa2dOQzA1SWlBdlBnb2dJRHh3WVhSb0lHUTlJazB4TmlBemN6UWdNeUEwSURrdE5DQTVMVFFnT1NJZ0x6NEtQQzl6ZG1jK0NnPT0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL3BhcmVudGhlc2VzXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgUGFyZW50aGVzZXMgPSBjcmVhdGVMdWNpZGVJY29uKCdwYXJlbnRoZXNlcycsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBQYXJlbnRoZXNlcztcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTExIDE1aDInLCBrZXk6ICcxOTlxcDYnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTIgMTJ2MycsIGtleTogJzE1OGt2OCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xMiAxOXYzJywga2V5OiAnbnBhMjFsJyB9XSxcbiAgW1xuICAgICdwYXRoJyxcbiAgICB7XG4gICAgICBkOiAnTTE1LjI4MiAxOWExIDEgMCAwIDAgLjk0OC0uNjhsMi4zNy02Ljk4OGE3IDcgMCAxIDAtMTMuMiAwbDIuMzcgNi45ODhhMSAxIDAgMCAwIC45NDguNjh6JyxcbiAgICAgIGtleTogJzFqb2ZpdCcsXG4gICAgfSxcbiAgXSxcbiAgWydwYXRoJywgeyBkOiAnTTkgOWEzIDMgMCAxIDEgNiAwJywga2V5OiAnamRvZXU4JyB9XSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBQYXJraW5nTWV0ZXJcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1URWdNVFZvTWlJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTVRJZ01USjJNeUlnTHo0S0lDQThjR0YwYUNCa1BTSk5NVElnTVRsMk15SWdMejRLSUNBOGNHRjBhQ0JrUFNKTk1UVXVNamd5SURFNVlURWdNU0F3SURBZ01DQXVPVFE0TFM0Mk9Hd3lMak0zTFRZdU9UZzRZVGNnTnlBd0lERWdNQzB4TXk0eUlEQnNNaTR6TnlBMkxqazRPR0V4SURFZ01DQXdJREFnTGprME9DNDJPSG9pSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVGtnT1dFeklETWdNQ0F4SURFZ05pQXdJaUF2UGdvOEwzTjJaejRLKSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9wYXJraW5nLW1ldGVyXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgUGFya2luZ01ldGVyID0gY3JlYXRlTHVjaWRlSWNvbigncGFya2luZy1tZXRlcicsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBQYXJraW5nTWV0ZXI7XG4iLCJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ001LjggMTEuMyAyIDIybDEwLjctMy43OScsIGtleTogJ2d3eGkxZCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ000IDNoLjAxJywga2V5OiAnMXZjdXllJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTIyIDhoLjAxJywga2V5OiAnMW1ydGMyJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTE1IDJoLjAxJywga2V5OiAnMWNqdHFyJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTIyIDIwaC4wMScsIGtleTogJzFtcnlzMicgfV0sXG4gIFtcbiAgICAncGF0aCcsXG4gICAge1xuICAgICAgZDogJ20yMiAyLTIuMjQuNzVhMi45IDIuOSAwIDAgMC0xLjk2IDMuMTJjLjEuODYtLjU3IDEuNjMtMS40NSAxLjYzaC0uMzhjLS44NiAwLTEuNi42LTEuNzYgMS40NEwxNCAxMCcsXG4gICAgICBrZXk6ICdoYmljdjgnLFxuICAgIH0sXG4gIF0sXG4gIFtcbiAgICAncGF0aCcsXG4gICAgeyBkOiAnbTIyIDEzLS44Mi0uMzNjLS44Ni0uMzQtMS44Mi4yLTEuOTggMS4xMWMtLjExLjctLjcyIDEuMjItMS40MyAxLjIySDE3Jywga2V5OiAnMWk5NHBsJyB9LFxuICBdLFxuICBbJ3BhdGgnLCB7IGQ6ICdtMTEgMiAuMzMuODJjLjM0Ljg2LS4yIDEuODItMS4xMSAxLjk4QzkuNTIgNC45IDkgNS41MiA5IDYuMjNWNycsIGtleTogJzFjb2ZrcycgfV0sXG4gIFtcbiAgICAncGF0aCcsXG4gICAge1xuICAgICAgZDogJ00xMSAxM2MxLjkzIDEuOTMgMi44MyA0LjE3IDIgNS0uODMuODMtMy4wNy0uMDctNS0yLTEuOTMtMS45My0yLjgzLTQuMTctMi01IC44My0uODMgMy4wNy4wNyA1IDJaJyxcbiAgICAgIGtleTogJzRrYm1rcycsXG4gICAgfSxcbiAgXSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBQYXJ0eVBvcHBlclxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTlM0NElERXhMak1nTWlBeU1td3hNQzQzTFRNdU56a2lJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRUUWdNMmd1TURFaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRJeUlEaG9MakF4SWlBdlBnb2dJRHh3WVhSb0lHUTlJazB4TlNBeWFDNHdNU0lnTHo0S0lDQThjR0YwYUNCa1BTSk5NaklnTWpCb0xqQXhJaUF2UGdvZ0lEeHdZWFJvSUdROUltMHlNaUF5TFRJdU1qUXVOelZoTWk0NUlESXVPU0F3SURBZ01DMHhMamsySURNdU1USmpMakV1T0RZdExqVTNJREV1TmpNdE1TNDBOU0F4TGpZemFDMHVNemhqTFM0NE5pQXdMVEV1Tmk0MkxURXVOellnTVM0ME5Fd3hOQ0F4TUNJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0p0TWpJZ01UTXRMamd5TFM0ek0yTXRMamcyTFM0ek5DMHhMamd5TGpJdE1TNDVPQ0F4TGpFeFl5MHVNVEV1TnkwdU56SWdNUzR5TWkweExqUXpJREV1TWpKSU1UY2lJQzgrQ2lBZ1BIQmhkR2dnWkQwaWJURXhJRElnTGpNekxqZ3lZeTR6TkM0NE5pMHVNaUF4TGpneUxURXVNVEVnTVM0NU9FTTVMalV5SURRdU9TQTVJRFV1TlRJZ09TQTJMakl6VmpjaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRFeElERXpZekV1T1RNZ01TNDVNeUF5TGpneklEUXVNVGNnTWlBMUxTNDRNeTQ0TXkwekxqQTNMUzR3TnkwMUxUSXRNUzQ1TXkweExqa3pMVEl1T0RNdE5DNHhOeTB5TFRVZ0xqZ3pMUzQ0TXlBekxqQTNMakEzSURVZ01sb2lJQzgrQ2p3dmMzWm5QZ289KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9wYXJ0eS1wb3BwZXJcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBQYXJ0eVBvcHBlciA9IGNyZWF0ZUx1Y2lkZUljb24oJ3BhcnR5LXBvcHBlcicsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBQYXJ0eVBvcHBlcjtcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgWydyZWN0JywgeyB4OiAnMTQnLCB5OiAnNCcsIHdpZHRoOiAnNCcsIGhlaWdodDogJzE2Jywgcng6ICcxJywga2V5OiAnenV4ZnptJyB9XSxcbiAgWydyZWN0JywgeyB4OiAnNicsIHk6ICc0Jywgd2lkdGg6ICc0JywgaGVpZ2h0OiAnMTYnLCByeDogJzEnLCBrZXk6ICcxb2t3Z3YnIH1dLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIFBhdXNlXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjbVZqZENCNFBTSXhOQ0lnZVQwaU5DSWdkMmxrZEdnOUlqUWlJR2hsYVdkb2REMGlNVFlpSUhKNFBTSXhJaUF2UGdvZ0lEeHlaV04wSUhnOUlqWWlJSGs5SWpRaUlIZHBaSFJvUFNJMElpQm9aV2xuYUhROUlqRTJJaUJ5ZUQwaU1TSWdMejRLUEM5emRtYytDZz09KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9wYXVzZVxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IFBhdXNlID0gY3JlYXRlTHVjaWRlSWNvbigncGF1c2UnLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgUGF1c2U7XG4iLCJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbXG4gIFsnY2lyY2xlJywgeyBjeDogJzExJywgY3k6ICc0JywgcjogJzInLCBrZXk6ICd2b2w5cDAnIH1dLFxuICBbJ2NpcmNsZScsIHsgY3g6ICcxOCcsIGN5OiAnOCcsIHI6ICcyJywga2V5OiAnMTdnb3ppJyB9XSxcbiAgWydjaXJjbGUnLCB7IGN4OiAnMjAnLCBjeTogJzE2JywgcjogJzInLCBrZXk6ICcxdjlieGgnIH1dLFxuICBbXG4gICAgJ3BhdGgnLFxuICAgIHtcbiAgICAgIGQ6ICdNOSAxMGE1IDUgMCAwIDEgNSA1djMuNWEzLjUgMy41IDAgMCAxLTYuODQgMS4wNDVRNi41MiAxNy40OCA0LjQ2IDE2Ljg0QTMuNSAzLjUgMCAwIDEgNS41IDEwWicsXG4gICAgICBrZXk6ICcxeWR3MXonLFxuICAgIH0sXG4gIF0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgUGF3UHJpbnRcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOFkybHlZMnhsSUdONFBTSXhNU0lnWTNrOUlqUWlJSEk5SWpJaUlDOCtDaUFnUEdOcGNtTnNaU0JqZUQwaU1UZ2lJR041UFNJNElpQnlQU0l5SWlBdlBnb2dJRHhqYVhKamJHVWdZM2c5SWpJd0lpQmplVDBpTVRZaUlISTlJaklpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVGtnTVRCaE5TQTFJREFnTUNBeElEVWdOWFl6TGpWaE15NDFJRE11TlNBd0lEQWdNUzAyTGpnMElERXVNRFExVVRZdU5USWdNVGN1TkRnZ05DNDBOaUF4Tmk0NE5FRXpMalVnTXk0MUlEQWdNQ0F4SURVdU5TQXhNRm9pSUM4K0Nqd3ZjM1puUGdvPSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvcGF3LXByaW50XG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgUGF3UHJpbnQgPSBjcmVhdGVMdWNpZGVJY29uKCdwYXctcHJpbnQnLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgUGF3UHJpbnQ7XG4iLCJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbXG4gIFsncmVjdCcsIHsgd2lkdGg6ICcxNCcsIGhlaWdodDogJzIwJywgeDogJzUnLCB5OiAnMicsIHJ4OiAnMicsIGtleTogJzF1cTFkNycgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xNSAxNGguMDEnLCBrZXk6ICcxa3AzYmgnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNOSA2aDYnLCBrZXk6ICdkZ20xNnUnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNOSAxMGg2Jywga2V5OiAnOWd4enNoJyB9XSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBQY0Nhc2VcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNtVmpkQ0IzYVdSMGFEMGlNVFFpSUdobGFXZG9kRDBpTWpBaUlIZzlJalVpSUhrOUlqSWlJSEo0UFNJeUlpQXZQZ29nSUR4d1lYUm9JR1E5SWsweE5TQXhOR2d1TURFaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRrZ05tZzJJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMDVJREV3YURZaUlDOCtDand2YzNablBnbz0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL3BjLWNhc2VcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBQY0Nhc2UgPSBjcmVhdGVMdWNpZGVJY29uKCdwYy1jYXNlJywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IFBjQ2FzZTtcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgW1xuICAgICdwYXRoJyxcbiAgICB7XG4gICAgICBkOiAnbTEwIDEwLTYuMTU3IDYuMTYyYTIgMiAwIDAgMC0uNS44MzNsLTEuMzIyIDQuMzZhLjUuNSAwIDAgMCAuNjIyLjYyNGw0LjM1OC0xLjMyM2EyIDIgMCAwIDAgLjgzLS41TDE0IDEzLjk4MicsXG4gICAgICBrZXk6ICdiam84cjgnLFxuICAgIH0sXG4gIF0sXG4gIFsncGF0aCcsIHsgZDogJ20xMi44MjkgNy4xNzIgNC4zNTktNC4zNDZhMSAxIDAgMSAxIDMuOTg2IDMuOTg2bC00LjM1MyA0LjM1MycsIGtleTogJzE2aDVuZScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ20yIDIgMjAgMjAnLCBrZXk6ICcxb29ld3knIH1dLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIFBlbk9mZlxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0p0TVRBZ01UQXROaTR4TlRjZ05pNHhOakpoTWlBeUlEQWdNQ0F3TFM0MUxqZ3pNMnd0TVM0ek1qSWdOQzR6Tm1FdU5TNDFJREFnTUNBd0lDNDJNakl1TmpJMGJEUXVNelU0TFRFdU16SXpZVElnTWlBd0lEQWdNQ0F1T0RNdExqVk1NVFFnTVRNdU9UZ3lJaUF2UGdvZ0lEeHdZWFJvSUdROUltMHhNaTQ0TWprZ055NHhOeklnTkM0ek5Ua3ROQzR6TkRaaE1TQXhJREFnTVNBeElETXVPVGcySURNdU9UZzJiQzAwTGpNMU15QTBMak0xTXlJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0p0TWlBeUlESXdJREl3SWlBdlBnbzhMM04yWno0SykgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvcGVuLW9mZlxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IFBlbk9mZiA9IGNyZWF0ZUx1Y2lkZUljb24oJ3Blbi1vZmYnLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgUGVuT2ZmO1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdNMTIgMjBoOScsIGtleTogJ3QyZHU3YicgfV0sXG4gIFtcbiAgICAncGF0aCcsXG4gICAge1xuICAgICAgZDogJ00xNi4zNzYgMy42MjJhMSAxIDAgMCAxIDMuMDAyIDMuMDAyTDcuMzY4IDE4LjYzNWEyIDIgMCAwIDEtLjg1NS41MDZsLTIuODcyLjgzOGEuNS41IDAgMCAxLS42Mi0uNjJsLjgzOC0yLjg3MmEyIDIgMCAwIDEgLjUwNi0uODU0eicsXG4gICAgICBrZXk6ICcxeWtjdnknLFxuICAgIH0sXG4gIF0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgUGVuTGluZVxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTVRJZ01qQm9PU0lnTHo0S0lDQThjR0YwYUNCa1BTSk5NVFl1TXpjMklETXVOakl5WVRFZ01TQXdJREFnTVNBekxqQXdNaUF6TGpBd01rdzNMak0yT0NBeE9DNDJNelZoTWlBeUlEQWdNQ0F4TFM0NE5UVXVOVEEyYkMweUxqZzNNaTQ0TXpoaExqVXVOU0F3SURBZ01TMHVOakl0TGpZeWJDNDRNemd0TWk0NE56SmhNaUF5SURBZ01DQXhJQzQxTURZdExqZzFOSG9pSUM4K0Nqd3ZjM1puUGdvPSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvcGVuLWxpbmVcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBQZW5MaW5lID0gY3JlYXRlTHVjaWRlSWNvbigncGVuLWxpbmUnLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgUGVuTGluZTtcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgW1xuICAgICdwYXRoJyxcbiAgICB7XG4gICAgICBkOiAnTTE1LjcwNyAyMS4yOTNhMSAxIDAgMCAxLTEuNDE0IDBsLTEuNTg2LTEuNTg2YTEgMSAwIDAgMSAwLTEuNDE0bDUuNTg2LTUuNTg2YTEgMSAwIDAgMSAxLjQxNCAwbDEuNTg2IDEuNTg2YTEgMSAwIDAgMSAwIDEuNDE0eicsXG4gICAgICBrZXk6ICdudDExdm4nLFxuICAgIH0sXG4gIF0sXG4gIFtcbiAgICAncGF0aCcsXG4gICAge1xuICAgICAgZDogJ20xOCAxMy0xLjM3NS02Ljg3NGExIDEgMCAwIDAtLjc0Ni0uNzc2TDMuMjM1IDIuMDI4YTEgMSAwIDAgMC0xLjIwNyAxLjIwN0w1LjM1IDE1Ljg3OWExIDEgMCAwIDAgLjc3Ni43NDZMMTMgMTgnLFxuICAgICAga2V5OiAnMTVxYzFlJyxcbiAgICB9LFxuICBdLFxuICBbJ3BhdGgnLCB7IGQ6ICdtMi4zIDIuMyA3LjI4NiA3LjI4NicsIGtleTogJzF3dXp6aScgfV0sXG4gIFsnY2lyY2xlJywgeyBjeDogJzExJywgY3k6ICcxMScsIHI6ICcyJywga2V5OiAneG1nZWhzJyB9XSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBQZW5Ub29sXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NVFV1TnpBM0lESXhMakk1TTJFeElERWdNQ0F3SURFdE1TNDBNVFFnTUd3dE1TNDFPRFl0TVM0MU9EWmhNU0F4SURBZ01DQXhJREF0TVM0ME1UUnNOUzQxT0RZdE5TNDFPRFpoTVNBeElEQWdNQ0F4SURFdU5ERTBJREJzTVM0MU9EWWdNUzQxT0RaaE1TQXhJREFnTUNBeElEQWdNUzQwTVRSNklpQXZQZ29nSUR4d1lYUm9JR1E5SW0weE9DQXhNeTB4TGpNM05TMDJMamczTkdFeElERWdNQ0F3SURBdExqYzBOaTB1TnpjMlRETXVNak0xSURJdU1ESTRZVEVnTVNBd0lEQWdNQzB4TGpJd055QXhMakl3TjB3MUxqTTFJREUxTGpnM09XRXhJREVnTUNBd0lEQWdMamMzTmk0M05EWk1NVE1nTVRnaUlDOCtDaUFnUEhCaGRHZ2daRDBpYlRJdU15QXlMak1nTnk0eU9EWWdOeTR5T0RZaUlDOCtDaUFnUEdOcGNtTnNaU0JqZUQwaU1URWlJR041UFNJeE1TSWdjajBpTWlJZ0x6NEtQQzl6ZG1jK0NnPT0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL3Blbi10b29sXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgUGVuVG9vbCA9IGNyZWF0ZUx1Y2lkZUljb24oJ3Blbi10b29sJywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IFBlblRvb2w7XG4iLCJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbXG4gIFtcbiAgICAncGF0aCcsXG4gICAge1xuICAgICAgZDogJ00yMS4xNzQgNi44MTJhMSAxIDAgMCAwLTMuOTg2LTMuOTg3TDMuODQyIDE2LjE3NGEyIDIgMCAwIDAtLjUuODNsLTEuMzIxIDQuMzUyYS41LjUgMCAwIDAgLjYyMy42MjJsNC4zNTMtMS4zMmEyIDIgMCAwIDAgLjgzLS40OTd6JyxcbiAgICAgIGtleTogJzFhOHVzdScsXG4gICAgfSxcbiAgXSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBQZW5cbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1qRXVNVGMwSURZdU9ERXlZVEVnTVNBd0lEQWdNQzB6TGprNE5pMHpMams0TjB3ekxqZzBNaUF4Tmk0eE56UmhNaUF5SURBZ01DQXdMUzQxTGpnemJDMHhMak15TVNBMExqTTFNbUV1TlM0MUlEQWdNQ0F3SUM0Mk1qTXVOakl5YkRRdU16VXpMVEV1TXpKaE1pQXlJREFnTUNBd0lDNDRNeTB1TkRrM2VpSWdMejRLUEM5emRtYytDZz09KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9wZW5cbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBQZW4gPSBjcmVhdGVMdWNpZGVJY29uKCdwZW4nLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgUGVuO1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbXG4gICAgJ3BhdGgnLFxuICAgIHtcbiAgICAgIGQ6ICdtMTAgMTAtNi4xNTcgNi4xNjJhMiAyIDAgMCAwLS41LjgzM2wtMS4zMjIgNC4zNmEuNS41IDAgMCAwIC42MjIuNjI0bDQuMzU4LTEuMzIzYTIgMiAwIDAgMCAuODMtLjVMMTQgMTMuOTgyJyxcbiAgICAgIGtleTogJ2JqbzhyOCcsXG4gICAgfSxcbiAgXSxcbiAgWydwYXRoJywgeyBkOiAnbTEyLjgyOSA3LjE3MiA0LjM1OS00LjM0NmExIDEgMCAxIDEgMy45ODYgMy45ODZsLTQuMzUzIDQuMzUzJywga2V5OiAnMTZoNW5lJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnbTE1IDUgNCA0Jywga2V5OiAnMW1rN3pvJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnbTIgMiAyMCAyMCcsIGtleTogJzFvb2V3eScgfV0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgUGVuY2lsT2ZmXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSnRNVEFnTVRBdE5pNHhOVGNnTmk0eE5qSmhNaUF5SURBZ01DQXdMUzQxTGpnek0yd3RNUzR6TWpJZ05DNHpObUV1TlM0MUlEQWdNQ0F3SUM0Mk1qSXVOakkwYkRRdU16VTRMVEV1TXpJellUSWdNaUF3SURBZ01DQXVPRE10TGpWTU1UUWdNVE11T1RneUlpQXZQZ29nSUR4d1lYUm9JR1E5SW0weE1pNDRNamtnTnk0eE56SWdOQzR6TlRrdE5DNHpORFpoTVNBeElEQWdNU0F4SURNdU9UZzJJRE11T1RnMmJDMDBMak0xTXlBMExqTTFNeUlnTHo0S0lDQThjR0YwYUNCa1BTSnRNVFVnTlNBMElEUWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaWJUSWdNaUF5TUNBeU1DSWdMejRLUEM5emRtYytDZz09KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9wZW5jaWwtb2ZmXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgUGVuY2lsT2ZmID0gY3JlYXRlTHVjaWRlSWNvbigncGVuY2lsLW9mZicsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBQZW5jaWxPZmY7XG4iLCJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ00xMiAyMGg5Jywga2V5OiAndDJkdTdiJyB9XSxcbiAgW1xuICAgICdwYXRoJyxcbiAgICB7XG4gICAgICBkOiAnTTE2LjM3NiAzLjYyMmExIDEgMCAwIDEgMy4wMDIgMy4wMDJMNy4zNjggMTguNjM1YTIgMiAwIDAgMS0uODU1LjUwNmwtMi44NzIuODM4YS41LjUgMCAwIDEtLjYyLS42MmwuODM4LTIuODcyYTIgMiAwIDAgMSAuNTA2LS44NTR6JyxcbiAgICAgIGtleTogJzF5a2N2eScsXG4gICAgfSxcbiAgXSxcbiAgWydwYXRoJywgeyBkOiAnbTE1IDUgMyAzJywga2V5OiAnMXcyNWhiJyB9XSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBQZW5jaWxMaW5lXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NVElnTWpCb09TSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk1UWXVNemMySURNdU5qSXlZVEVnTVNBd0lEQWdNU0F6TGpBd01pQXpMakF3TWt3M0xqTTJPQ0F4T0M0Mk16VmhNaUF5SURBZ01DQXhMUzQ0TlRVdU5UQTJiQzB5TGpnM01pNDRNemhoTGpVdU5TQXdJREFnTVMwdU5qSXRMall5YkM0NE16Z3RNaTQ0TnpKaE1pQXlJREFnTUNBeElDNDFNRFl0TGpnMU5Ib2lJQzgrQ2lBZ1BIQmhkR2dnWkQwaWJURTFJRFVnTXlBeklpQXZQZ284TDNOMlp6NEspIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL3BlbmNpbC1saW5lXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgUGVuY2lsTGluZSA9IGNyZWF0ZUx1Y2lkZUljb24oJ3BlbmNpbC1saW5lJywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IFBlbmNpbExpbmU7XG4iLCJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbXG4gIFtcbiAgICAncGF0aCcsXG4gICAgeyBkOiAnTTEzIDcgOC43IDIuN2EyLjQxIDIuNDEgMCAwIDAtMy40IDBMMi43IDUuM2EyLjQxIDIuNDEgMCAwIDAgMCAzLjRMNyAxMycsIGtleTogJ29yYXB1YicgfSxcbiAgXSxcbiAgWydwYXRoJywgeyBkOiAnbTggNiAyLTInLCBrZXk6ICcxMTV5MXMnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdtMTggMTYgMi0yJywga2V5OiAnZWU5NHM0JyB9XSxcbiAgW1xuICAgICdwYXRoJyxcbiAgICB7XG4gICAgICBkOiAnbTE3IDExIDQuMyA0LjNjLjk0Ljk0Ljk0IDIuNDYgMCAzLjRsLTIuNiAyLjZjLS45NC45NC0yLjQ2Ljk0LTMuNCAwTDExIDE3JyxcbiAgICAgIGtleTogJ2NmcTI3cicsXG4gICAgfSxcbiAgXSxcbiAgW1xuICAgICdwYXRoJyxcbiAgICB7XG4gICAgICBkOiAnTTIxLjE3NCA2LjgxMmExIDEgMCAwIDAtMy45ODYtMy45ODdMMy44NDIgMTYuMTc0YTIgMiAwIDAgMC0uNS44M2wtMS4zMjEgNC4zNTJhLjUuNSAwIDAgMCAuNjIzLjYyMmw0LjM1My0xLjMyYTIgMiAwIDAgMCAuODMtLjQ5N3onLFxuICAgICAga2V5OiAnMWE4dXN1JyxcbiAgICB9LFxuICBdLFxuICBbJ3BhdGgnLCB7IGQ6ICdtMTUgNSA0IDQnLCBrZXk6ICcxbWs3em8nIH1dLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIFBlbmNpbFJ1bGVyXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NVE1nTnlBNExqY2dNaTQzWVRJdU5ERWdNaTQwTVNBd0lEQWdNQzB6TGpRZ01Fd3lMamNnTlM0ellUSXVOREVnTWk0ME1TQXdJREFnTUNBd0lETXVORXczSURFeklpQXZQZ29nSUR4d1lYUm9JR1E5SW0wNElEWWdNaTB5SWlBdlBnb2dJRHh3WVhSb0lHUTlJbTB4T0NBeE5pQXlMVElpSUM4K0NpQWdQSEJoZEdnZ1pEMGliVEUzSURFeElEUXVNeUEwTGpOakxqazBMamswTGprMElESXVORFlnTUNBekxqUnNMVEl1TmlBeUxqWmpMUzQ1TkM0NU5DMHlMalEyTGprMExUTXVOQ0F3VERFeElERTNJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHlNUzR4TnpRZ05pNDRNVEpoTVNBeElEQWdNQ0F3TFRNdU9UZzJMVE11T1RnM1RETXVPRFF5SURFMkxqRTNOR0V5SURJZ01DQXdJREF0TGpVdU9ETnNMVEV1TXpJeElEUXVNelV5WVM0MUxqVWdNQ0F3SURBZ0xqWXlNeTQyTWpKc05DNHpOVE10TVM0ek1tRXlJRElnTUNBd0lEQWdMamd6TFM0ME9UZDZJaUF2UGdvZ0lEeHdZWFJvSUdROUltMHhOU0ExSURRZ05DSWdMejRLUEM5emRtYytDZz09KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9wZW5jaWwtcnVsZXJcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBQZW5jaWxSdWxlciA9IGNyZWF0ZUx1Y2lkZUljb24oJ3BlbmNpbC1ydWxlcicsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBQZW5jaWxSdWxlcjtcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgW1xuICAgICdwYXRoJyxcbiAgICB7XG4gICAgICBkOiAnTTIxLjE3NCA2LjgxMmExIDEgMCAwIDAtMy45ODYtMy45ODdMMy44NDIgMTYuMTc0YTIgMiAwIDAgMC0uNS44M2wtMS4zMjEgNC4zNTJhLjUuNSAwIDAgMCAuNjIzLjYyMmw0LjM1My0xLjMyYTIgMiAwIDAgMCAuODMtLjQ5N3onLFxuICAgICAga2V5OiAnMWE4dXN1JyxcbiAgICB9LFxuICBdLFxuICBbJ3BhdGgnLCB7IGQ6ICdtMTUgNSA0IDQnLCBrZXk6ICcxbWs3em8nIH1dLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIFBlbmNpbFxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTWpFdU1UYzBJRFl1T0RFeVlURWdNU0F3SURBZ01DMHpMams0TmkwekxqazROMHd6TGpnME1pQXhOaTR4TnpSaE1pQXlJREFnTUNBd0xTNDFMamd6YkMweExqTXlNU0EwTGpNMU1tRXVOUzQxSURBZ01DQXdJQzQyTWpNdU5qSXliRFF1TXpVekxURXVNekpoTWlBeUlEQWdNQ0F3SUM0NE15MHVORGszZWlJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0p0TVRVZ05TQTBJRFFpSUM4K0Nqd3ZjM1puUGdvPSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvcGVuY2lsXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgUGVuY2lsID0gY3JlYXRlTHVjaWRlSWNvbigncGVuY2lsJywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IFBlbmNpbDtcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgW1xuICAgICdwYXRoJyxcbiAgICB7XG4gICAgICBkOiAnTTEwLjgzIDIuMzhhMiAyIDAgMCAxIDIuMzQgMGw4IDUuNzRhMiAyIDAgMCAxIC43MyAyLjI1bC0zLjA0IDkuMjZhMiAyIDAgMCAxLTEuOSAxLjM3SDcuMDRhMiAyIDAgMCAxLTEuOS0xLjM3TDIuMSAxMC4zN2EyIDIgMCAwIDEgLjczLTIuMjV6JyxcbiAgICAgIGtleTogJzJoZWEwdCcsXG4gICAgfSxcbiAgXSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBQZW50YWdvblxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTVRBdU9ETWdNaTR6T0dFeUlESWdNQ0F3SURFZ01pNHpOQ0F3YkRnZ05TNDNOR0V5SURJZ01DQXdJREVnTGpjeklESXVNalZzTFRNdU1EUWdPUzR5Tm1FeUlESWdNQ0F3SURFdE1TNDVJREV1TXpkSU55NHdOR0V5SURJZ01DQXdJREV0TVM0NUxURXVNemRNTWk0eElERXdMak0zWVRJZ01pQXdJREFnTVNBdU56TXRNaTR5TlhvaUlDOCtDand2YzNablBnbz0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL3BlbnRhZ29uXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgUGVudGFnb24gPSBjcmVhdGVMdWNpZGVJY29uKCdwZW50YWdvbicsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBQZW50YWdvbjtcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgWydsaW5lJywgeyB4MTogJzE5JywgeDI6ICc1JywgeTE6ICc1JywgeTI6ICcxOScsIGtleTogJzF4OXZsbScgfV0sXG4gIFsnY2lyY2xlJywgeyBjeDogJzYuNScsIGN5OiAnNi41JywgcjogJzIuNScsIGtleTogJzRtaDNoNycgfV0sXG4gIFsnY2lyY2xlJywgeyBjeDogJzE3LjUnLCBjeTogJzE3LjUnLCByOiAnMi41Jywga2V5OiAnMW1kcnpxJyB9XSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBQZXJjZW50XG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThiR2x1WlNCNE1UMGlNVGtpSUhneVBTSTFJaUI1TVQwaU5TSWdlVEk5SWpFNUlpQXZQZ29nSUR4amFYSmpiR1VnWTNnOUlqWXVOU0lnWTNrOUlqWXVOU0lnY2owaU1pNDFJaUF2UGdvZ0lEeGphWEpqYkdVZ1kzZzlJakUzTGpVaUlHTjVQU0l4Tnk0MUlpQnlQU0l5TGpVaUlDOCtDand2YzNablBnbz0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL3BlcmNlbnRcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBQZXJjZW50ID0gY3JlYXRlTHVjaWRlSWNvbigncGVyY2VudCcsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBQZXJjZW50O1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbJ2NpcmNsZScsIHsgY3g6ICcxMicsIGN5OiAnNScsIHI6ICcxJywga2V5OiAnZ3hlb2I5JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnbTkgMjAgMy02IDMgNicsIGtleTogJ3NlMmtveCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ202IDggNiAyIDYtMicsIGtleTogJzRvM3VzNCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xMiAxMHY0Jywga2V5OiAnMWtqcHhjJyB9XSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBQZXJzb25TdGFuZGluZ1xuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4WTJseVkyeGxJR040UFNJeE1pSWdZM2s5SWpVaUlISTlJakVpSUM4K0NpQWdQSEJoZEdnZ1pEMGliVGtnTWpBZ015MDJJRE1nTmlJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0p0TmlBNElEWWdNaUEyTFRJaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRFeUlERXdkalFpSUM4K0Nqd3ZjM1puUGdvPSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvcGVyc29uLXN0YW5kaW5nXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgUGVyc29uU3RhbmRpbmcgPSBjcmVhdGVMdWNpZGVJY29uKCdwZXJzb24tc3RhbmRpbmcnLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgUGVyc29uU3RhbmRpbmc7XG4iLCJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ00yMCAxMUg0Jywga2V5OiAnNnV0ODZoJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTIwIDdINCcsIGtleTogJ3pibDBiaScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ003IDIxVjRhMSAxIDAgMCAxIDEtMWg0YTEgMSAwIDAgMSAwIDEySDcnLCBrZXk6ICcxYW5hNXInIH1dLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIFBoaWxpcHBpbmVQZXNvXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NakFnTVRGSU5DSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk1qQWdOMGcwSWlBdlBnb2dJRHh3WVhSb0lHUTlJazAzSURJeFZqUmhNU0F4SURBZ01DQXhJREV0TVdnMFlURWdNU0F3SURBZ01TQXdJREV5U0RjaUlDOCtDand2YzNablBnbz0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL3BoaWxpcHBpbmUtcGVzb1xuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IFBoaWxpcHBpbmVQZXNvID0gY3JlYXRlTHVjaWRlSWNvbigncGhpbGlwcGluZS1wZXNvJywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IFBoaWxpcHBpbmVQZXNvO1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdNMTMgMmE5IDkgMCAwIDEgOSA5Jywga2V5OiAnMWl0bngyJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTEzIDZhNSA1IDAgMCAxIDUgNScsIGtleTogJzExbmtpNycgfV0sXG4gIFtcbiAgICAncGF0aCcsXG4gICAge1xuICAgICAgZDogJ00xMy44MzIgMTYuNTY4YTEgMSAwIDAgMCAxLjIxMy0uMzAzbC4zNTUtLjQ2NUEyIDIgMCAwIDEgMTcgMTVoM2EyIDIgMCAwIDEgMiAydjNhMiAyIDAgMCAxLTIgMkExOCAxOCAwIDAgMSAyIDRhMiAyIDAgMCAxIDItMmgzYTIgMiAwIDAgMSAyIDJ2M2EyIDIgMCAwIDEtLjggMS42bC0uNDY4LjM1MWExIDEgMCAwIDAtLjI5MiAxLjIzMyAxNCAxNCAwIDAgMCA2LjM5MiA2LjM4NCcsXG4gICAgICBrZXk6ICc5bmpwNXYnLFxuICAgIH0sXG4gIF0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgUGhvbmVDYWxsXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NVE1nTW1FNUlEa2dNQ0F3SURFZ09TQTVJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHhNeUEyWVRVZ05TQXdJREFnTVNBMUlEVWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRURXpMamd6TWlBeE5pNDFOamhoTVNBeElEQWdNQ0F3SURFdU1qRXpMUzR6TUROc0xqTTFOUzB1TkRZMVFUSWdNaUF3SURBZ01TQXhOeUF4TldnellUSWdNaUF3SURBZ01TQXlJREoyTTJFeUlESWdNQ0F3SURFdE1pQXlRVEU0SURFNElEQWdNQ0F4SURJZ05HRXlJRElnTUNBd0lERWdNaTB5YUROaE1pQXlJREFnTUNBeElESWdNbll6WVRJZ01pQXdJREFnTVMwdU9DQXhMalpzTFM0ME5qZ3VNelV4WVRFZ01TQXdJREFnTUMwdU1qa3lJREV1TWpNeklERTBJREUwSURBZ01DQXdJRFl1TXpreUlEWXVNemcwSWlBdlBnbzhMM04yWno0SykgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvcGhvbmUtY2FsbFxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IFBob25lQ2FsbCA9IGNyZWF0ZUx1Y2lkZUljb24oJ3Bob25lLWNhbGwnLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgUGhvbmVDYWxsO1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdNMTQgNmg4Jywga2V5OiAneWQ2OGs0JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnbTE4IDIgNCA0LTQgNCcsIGtleTogJ3B1Y3AxZCcgfV0sXG4gIFtcbiAgICAncGF0aCcsXG4gICAge1xuICAgICAgZDogJ00xMy44MzIgMTYuNTY4YTEgMSAwIDAgMCAxLjIxMy0uMzAzbC4zNTUtLjQ2NUEyIDIgMCAwIDEgMTcgMTVoM2EyIDIgMCAwIDEgMiAydjNhMiAyIDAgMCAxLTIgMkExOCAxOCAwIDAgMSAyIDRhMiAyIDAgMCAxIDItMmgzYTIgMiAwIDAgMSAyIDJ2M2EyIDIgMCAwIDEtLjggMS42bC0uNDY4LjM1MWExIDEgMCAwIDAtLjI5MiAxLjIzMyAxNCAxNCAwIDAgMCA2LjM5MiA2LjM4NCcsXG4gICAgICBrZXk6ICc5bmpwNXYnLFxuICAgIH0sXG4gIF0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgUGhvbmVGb3J3YXJkZWRcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1UUWdObWc0SWlBdlBnb2dJRHh3WVhSb0lHUTlJbTB4T0NBeUlEUWdOQzAwSURRaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRFekxqZ3pNaUF4Tmk0MU5qaGhNU0F4SURBZ01DQXdJREV1TWpFekxTNHpNRE5zTGpNMU5TMHVORFkxUVRJZ01pQXdJREFnTVNBeE55QXhOV2d6WVRJZ01pQXdJREFnTVNBeUlESjJNMkV5SURJZ01DQXdJREV0TWlBeVFURTRJREU0SURBZ01DQXhJRElnTkdFeUlESWdNQ0F3SURFZ01pMHlhRE5oTWlBeUlEQWdNQ0F4SURJZ01uWXpZVElnTWlBd0lEQWdNUzB1T0NBeExqWnNMUzQwTmpndU16VXhZVEVnTVNBd0lEQWdNQzB1TWpreUlERXVNak16SURFMElERTBJREFnTUNBd0lEWXVNemt5SURZdU16ZzBJaUF2UGdvOEwzTjJaejRLKSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9waG9uZS1mb3J3YXJkZWRcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBQaG9uZUZvcndhcmRlZCA9IGNyZWF0ZUx1Y2lkZUljb24oJ3Bob25lLWZvcndhcmRlZCcsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBQaG9uZUZvcndhcmRlZDtcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTE2IDJ2Nmg2Jywga2V5OiAnMW1mcmw1JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnbTIyIDItNiA2Jywga2V5OiAnNmYwc2EwJyB9XSxcbiAgW1xuICAgICdwYXRoJyxcbiAgICB7XG4gICAgICBkOiAnTTEzLjgzMiAxNi41NjhhMSAxIDAgMCAwIDEuMjEzLS4zMDNsLjM1NS0uNDY1QTIgMiAwIDAgMSAxNyAxNWgzYTIgMiAwIDAgMSAyIDJ2M2EyIDIgMCAwIDEtMiAyQTE4IDE4IDAgMCAxIDIgNGEyIDIgMCAwIDEgMi0yaDNhMiAyIDAgMCAxIDIgMnYzYTIgMiAwIDAgMS0uOCAxLjZsLS40NjguMzUxYTEgMSAwIDAgMC0uMjkyIDEuMjMzIDE0IDE0IDAgMCAwIDYuMzkyIDYuMzg0JyxcbiAgICAgIGtleTogJzluanA1dicsXG4gICAgfSxcbiAgXSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBQaG9uZUluY29taW5nXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NVFlnTW5ZMmFEWWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaWJUSXlJREl0TmlBMklpQXZQZ29nSUR4d1lYUm9JR1E5SWsweE15NDRNeklnTVRZdU5UWTRZVEVnTVNBd0lEQWdNQ0F4TGpJeE15MHVNekF6YkM0ek5UVXRMalEyTlVFeUlESWdNQ0F3SURFZ01UY2dNVFZvTTJFeUlESWdNQ0F3SURFZ01pQXlkak5oTWlBeUlEQWdNQ0F4TFRJZ01rRXhPQ0F4T0NBd0lEQWdNU0F5SURSaE1pQXlJREFnTUNBeElESXRNbWd6WVRJZ01pQXdJREFnTVNBeUlESjJNMkV5SURJZ01DQXdJREV0TGpnZ01TNDJiQzB1TkRZNExqTTFNV0V4SURFZ01DQXdJREF0TGpJNU1pQXhMakl6TXlBeE5DQXhOQ0F3SURBZ01DQTJMak01TWlBMkxqTTROQ0lnTHo0S1BDOXpkbWMrQ2c9PSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvcGhvbmUtaW5jb21pbmdcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBQaG9uZUluY29taW5nID0gY3JlYXRlTHVjaWRlSWNvbigncGhvbmUtaW5jb21pbmcnLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgUGhvbmVJbmNvbWluZztcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnbTE2IDIgNiA2Jywga2V5OiAnMWd3ODdkJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnbTIyIDItNiA2Jywga2V5OiAnNmYwc2EwJyB9XSxcbiAgW1xuICAgICdwYXRoJyxcbiAgICB7XG4gICAgICBkOiAnTTEzLjgzMiAxNi41NjhhMSAxIDAgMCAwIDEuMjEzLS4zMDNsLjM1NS0uNDY1QTIgMiAwIDAgMSAxNyAxNWgzYTIgMiAwIDAgMSAyIDJ2M2EyIDIgMCAwIDEtMiAyQTE4IDE4IDAgMCAxIDIgNGEyIDIgMCAwIDEgMi0yaDNhMiAyIDAgMCAxIDIgMnYzYTIgMiAwIDAgMS0uOCAxLjZsLS40NjguMzUxYTEgMSAwIDAgMC0uMjkyIDEuMjMzIDE0IDE0IDAgMCAwIDYuMzkyIDYuMzg0JyxcbiAgICAgIGtleTogJzluanA1dicsXG4gICAgfSxcbiAgXSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBQaG9uZU1pc3NlZFxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0p0TVRZZ01pQTJJRFlpSUM4K0NpQWdQSEJoZEdnZ1pEMGliVEl5SURJdE5pQTJJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHhNeTQ0TXpJZ01UWXVOVFk0WVRFZ01TQXdJREFnTUNBeExqSXhNeTB1TXpBemJDNHpOVFV0TGpRMk5VRXlJRElnTUNBd0lERWdNVGNnTVRWb00yRXlJRElnTUNBd0lERWdNaUF5ZGpOaE1pQXlJREFnTUNBeExUSWdNa0V4T0NBeE9DQXdJREFnTVNBeUlEUmhNaUF5SURBZ01DQXhJREl0TW1nellUSWdNaUF3SURBZ01TQXlJREoyTTJFeUlESWdNQ0F3SURFdExqZ2dNUzQyYkMwdU5EWTRMak0xTVdFeElERWdNQ0F3SURBdExqSTVNaUF4TGpJek15QXhOQ0F4TkNBd0lEQWdNQ0EyTGpNNU1pQTJMak00TkNJZ0x6NEtQQzl6ZG1jK0NnPT0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL3Bob25lLW1pc3NlZFxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IFBob25lTWlzc2VkID0gY3JlYXRlTHVjaWRlSWNvbigncGhvbmUtbWlzc2VkJywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IFBob25lTWlzc2VkO1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbXG4gICAgJ3BhdGgnLFxuICAgIHtcbiAgICAgIGQ6ICdNMTAuMSAxMy45YTE0IDE0IDAgMCAwIDMuNzMyIDIuNjY4IDEgMSAwIDAgMCAxLjIxMy0uMzAzbC4zNTUtLjQ2NUEyIDIgMCAwIDEgMTcgMTVoM2EyIDIgMCAwIDEgMiAydjNhMiAyIDAgMCAxLTIgMiAxOCAxOCAwIDAgMS0xMi43MjgtNS4yNzInLFxuICAgICAga2V5OiAnMXduZ2s3JyxcbiAgICB9LFxuICBdLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMjIgMiAyIDIyJywga2V5OiAneTRrcWduJyB9XSxcbiAgW1xuICAgICdwYXRoJyxcbiAgICB7XG4gICAgICBkOiAnTTQuNzYgMTMuNTgyQTE4IDE4IDAgMCAxIDIgNGEyIDIgMCAwIDEgMi0yaDNhMiAyIDAgMCAxIDIgMnYzYTIgMiAwIDAgMS0uOCAxLjZsLS40NjguMzUxYTEgMSAwIDAgMC0uMjkyIDEuMjMzIDE0IDE0IDAgMCAwIC4yNDQuNDczJyxcbiAgICAgIGtleTogJzEwaHY1cCcsXG4gICAgfSxcbiAgXSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBQaG9uZU9mZlxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTVRBdU1TQXhNeTQ1WVRFMElERTBJREFnTUNBd0lETXVOek15SURJdU5qWTRJREVnTVNBd0lEQWdNQ0F4TGpJeE15MHVNekF6YkM0ek5UVXRMalEyTlVFeUlESWdNQ0F3SURFZ01UY2dNVFZvTTJFeUlESWdNQ0F3SURFZ01pQXlkak5oTWlBeUlEQWdNQ0F4TFRJZ01pQXhPQ0F4T0NBd0lEQWdNUzB4TWk0M01qZ3ROUzR5TnpJaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRJeUlESWdNaUF5TWlJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTkM0M05pQXhNeTQxT0RKQk1UZ2dNVGdnTUNBd0lERWdNaUEwWVRJZ01pQXdJREFnTVNBeUxUSm9NMkV5SURJZ01DQXdJREVnTWlBeWRqTmhNaUF5SURBZ01DQXhMUzQ0SURFdU5td3RMalEyT0M0ek5URmhNU0F4SURBZ01DQXdMUzR5T1RJZ01TNHlNek1nTVRRZ01UUWdNQ0F3SURBZ0xqSTBOQzQwTnpNaUlDOCtDand2YzNablBnbz0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL3Bob25lLW9mZlxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IFBob25lT2ZmID0gY3JlYXRlTHVjaWRlSWNvbigncGhvbmUtb2ZmJywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IFBob25lT2ZmO1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdtMTYgOCA2LTYnLCBrZXk6ICdvYXdjMDUnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMjIgOFYyaC02Jywga2V5OiAnb3F5MnpjJyB9XSxcbiAgW1xuICAgICdwYXRoJyxcbiAgICB7XG4gICAgICBkOiAnTTEzLjgzMiAxNi41NjhhMSAxIDAgMCAwIDEuMjEzLS4zMDNsLjM1NS0uNDY1QTIgMiAwIDAgMSAxNyAxNWgzYTIgMiAwIDAgMSAyIDJ2M2EyIDIgMCAwIDEtMiAyQTE4IDE4IDAgMCAxIDIgNGEyIDIgMCAwIDEgMi0yaDNhMiAyIDAgMCAxIDIgMnYzYTIgMiAwIDAgMS0uOCAxLjZsLS40NjguMzUxYTEgMSAwIDAgMC0uMjkyIDEuMjMzIDE0IDE0IDAgMCAwIDYuMzkyIDYuMzg0JyxcbiAgICAgIGtleTogJzluanA1dicsXG4gICAgfSxcbiAgXSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBQaG9uZU91dGdvaW5nXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSnRNVFlnT0NBMkxUWWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRUSXlJRGhXTW1ndE5pSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk1UTXVPRE15SURFMkxqVTJPR0V4SURFZ01DQXdJREFnTVM0eU1UTXRMak13TTJ3dU16VTFMUzQwTmpWQk1pQXlJREFnTUNBeElERTNJREUxYUROaE1pQXlJREFnTUNBeElESWdNbll6WVRJZ01pQXdJREFnTVMweUlESkJNVGdnTVRnZ01DQXdJREVnTWlBMFlUSWdNaUF3SURBZ01TQXlMVEpvTTJFeUlESWdNQ0F3SURFZ01pQXlkak5oTWlBeUlEQWdNQ0F4TFM0NElERXVObXd0TGpRMk9DNHpOVEZoTVNBeElEQWdNQ0F3TFM0eU9USWdNUzR5TXpNZ01UUWdNVFFnTUNBd0lEQWdOaTR6T1RJZ05pNHpPRFFpSUM4K0Nqd3ZjM1puUGdvPSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvcGhvbmUtb3V0Z29pbmdcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBQaG9uZU91dGdvaW5nID0gY3JlYXRlTHVjaWRlSWNvbigncGhvbmUtb3V0Z29pbmcnLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgUGhvbmVPdXRnb2luZztcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgW1xuICAgICdwYXRoJyxcbiAgICB7XG4gICAgICBkOiAnTTEzLjgzMiAxNi41NjhhMSAxIDAgMCAwIDEuMjEzLS4zMDNsLjM1NS0uNDY1QTIgMiAwIDAgMSAxNyAxNWgzYTIgMiAwIDAgMSAyIDJ2M2EyIDIgMCAwIDEtMiAyQTE4IDE4IDAgMCAxIDIgNGEyIDIgMCAwIDEgMi0yaDNhMiAyIDAgMCAxIDIgMnYzYTIgMiAwIDAgMS0uOCAxLjZsLS40NjguMzUxYTEgMSAwIDAgMC0uMjkyIDEuMjMzIDE0IDE0IDAgMCAwIDYuMzkyIDYuMzg0JyxcbiAgICAgIGtleTogJzluanA1dicsXG4gICAgfSxcbiAgXSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBQaG9uZVxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTVRNdU9ETXlJREUyTGpVMk9HRXhJREVnTUNBd0lEQWdNUzR5TVRNdExqTXdNMnd1TXpVMUxTNDBOalZCTWlBeUlEQWdNQ0F4SURFM0lERTFhRE5oTWlBeUlEQWdNQ0F4SURJZ01uWXpZVElnTWlBd0lEQWdNUzB5SURKQk1UZ2dNVGdnTUNBd0lERWdNaUEwWVRJZ01pQXdJREFnTVNBeUxUSm9NMkV5SURJZ01DQXdJREVnTWlBeWRqTmhNaUF5SURBZ01DQXhMUzQ0SURFdU5td3RMalEyT0M0ek5URmhNU0F4SURBZ01DQXdMUzR5T1RJZ01TNHlNek1nTVRRZ01UUWdNQ0F3SURBZ05pNHpPVElnTmk0ek9EUWlJQzgrQ2p3dmMzWm5QZ289KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9waG9uZVxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IFBob25lID0gY3JlYXRlTHVjaWRlSWNvbigncGhvbmUnLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgUGhvbmU7XG4iLCJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbXG4gIFsnbGluZScsIHsgeDE6ICc5JywgeDI6ICc5JywgeTE6ICc0JywgeTI6ICcyMCcsIGtleTogJ292czVhNScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ000IDdjMC0xLjcgMS4zLTMgMy0zaDEzJywga2V5OiAnMTBwYWc0JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTE4IDIwYy0xLjcgMC0zLTEuMy0zLTNWNCcsIGtleTogJzFnYW9zcicgfV0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgUGlcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGJHbHVaU0I0TVQwaU9TSWdlREk5SWpraUlIa3hQU0kwSWlCNU1qMGlNakFpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVFFnTjJNd0xURXVOeUF4TGpNdE15QXpMVE5vTVRNaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRFNElESXdZeTB4TGpjZ01DMHpMVEV1TXkwekxUTldOQ0lnTHo0S1BDOXpkbWMrQ2c9PSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvcGlcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBQaSA9IGNyZWF0ZUx1Y2lkZUljb24oJ3BpJywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IFBpO1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbXG4gICAgJ3BhdGgnLFxuICAgIHtcbiAgICAgIGQ6ICdNMTguNSA4Yy0xLjQgMC0yLjYtLjgtMy4yLTJBNi44NyA2Ljg3IDAgMCAwIDIgOXYxMWEyIDIgMCAwIDAgMiAyaDE2YTIgMiAwIDAgMCAyLTJ2LTguNUMyMiA5LjYgMjAuNCA4IDE4LjUgOCcsXG4gICAgICBrZXk6ICdsYWcweWYnLFxuICAgIH0sXG4gIF0sXG4gIFsncGF0aCcsIHsgZDogJ00yIDE0aDIwJywga2V5OiAnbXlqMTZ5JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTYgMTR2NCcsIGtleTogJzluZzB1ZScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xMCAxNHY0Jywga2V5OiAnMXY4dWs1JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTE0IDE0djQnLCBrZXk6ICcxdHFvcHMnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTggMTR2NCcsIGtleTogJzE4dXF3bScgfV0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgUGlhbm9cbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1UZ3VOU0E0WXkweExqUWdNQzB5TGpZdExqZ3RNeTR5TFRKQk5pNDROeUEyTGpnM0lEQWdNQ0F3SURJZ09YWXhNV0V5SURJZ01DQXdJREFnTWlBeWFERTJZVElnTWlBd0lEQWdNQ0F5TFRKMkxUZ3VOVU15TWlBNUxqWWdNakF1TkNBNElERTRMalVnT0NJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTWlBeE5HZ3lNQ0lnTHo0S0lDQThjR0YwYUNCa1BTSk5OaUF4TkhZMElpQXZQZ29nSUR4d1lYUm9JR1E5SWsweE1DQXhOSFkwSWlBdlBnb2dJRHh3WVhSb0lHUTlJazB4TkNBeE5IWTBJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHhPQ0F4TkhZMElpQXZQZ284TDNOMlp6NEspIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL3BpYW5vXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgUGlhbm8gPSBjcmVhdGVMdWNpZGVJY29uKCdwaWFubycsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBQaWFubztcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTE0LjUzMSAxMi40NjkgNi42MTkgMjAuMzhhMSAxIDAgMSAxLTMtM2w3LjkxMi03LjkxMicsIGtleTogJ3dlOTlyZycgfV0sXG4gIFtcbiAgICAncGF0aCcsXG4gICAge1xuICAgICAgZDogJ00xNS42ODYgNC4zMTRBMTIuNSAxMi41IDAgMCAwIDUuNDYxIDIuOTU4IDEgMSAwIDAgMCA1LjU4IDQuNzFhMjIgMjIgMCAwIDEgNi4zMTggMy4zOTMnLFxuICAgICAga2V5OiAnMXc2aGNrJyxcbiAgICB9LFxuICBdLFxuICBbXG4gICAgJ3BhdGgnLFxuICAgIHtcbiAgICAgIGQ6ICdNMTcuNyAzLjdhMSAxIDAgMCAwLTEuNCAwbC00LjYgNC42YTEgMSAwIDAgMCAwIDEuNGwyLjYgMi42YTEgMSAwIDAgMCAxLjQgMGw0LjYtNC42YTEgMSAwIDAgMCAwLTEuNHonLFxuICAgICAga2V5OiAnMTVoZ2Z4JyxcbiAgICB9LFxuICBdLFxuICBbXG4gICAgJ3BhdGgnLFxuICAgIHtcbiAgICAgIGQ6ICdNMTkuNjg2IDguMzE0YTEyLjUwMSAxMi41MDEgMCAwIDEgMS4zNTYgMTAuMjI1IDEgMSAwIDAgMS0xLjc1MS0uMTE5IDIyIDIyIDAgMCAwLTMuMzkzLTYuMzE5JyxcbiAgICAgIGtleTogJzQ1MmI0aCcsXG4gICAgfSxcbiAgXSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBQaWNrYXhlXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NVFF1TlRNeElERXlMalEyT1NBMkxqWXhPU0F5TUM0ek9HRXhJREVnTUNBeElERXRNeTB6YkRjdU9URXlMVGN1T1RFeUlpQXZQZ29nSUR4d1lYUm9JR1E5SWsweE5TNDJPRFlnTkM0ek1UUkJNVEl1TlNBeE1pNDFJREFnTUNBd0lEVXVORFl4SURJdU9UVTRJREVnTVNBd0lEQWdNQ0ExTGpVNElEUXVOekZoTWpJZ01qSWdNQ0F3SURFZ05pNHpNVGdnTXk0ek9UTWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRURTNMamNnTXk0M1lURWdNU0F3SURBZ01DMHhMalFnTUd3dE5DNDJJRFF1Tm1FeElERWdNQ0F3SURBZ01DQXhMalJzTWk0MklESXVObUV4SURFZ01DQXdJREFnTVM0MElEQnNOQzQyTFRRdU5tRXhJREVnTUNBd0lEQWdNQzB4TGpSNklpQXZQZ29nSUR4d1lYUm9JR1E5SWsweE9TNDJPRFlnT0M0ek1UUmhNVEl1TlRBeElERXlMalV3TVNBd0lEQWdNU0F4TGpNMU5pQXhNQzR5TWpVZ01TQXhJREFnTUNBeExURXVOelV4TFM0eE1Ua2dNaklnTWpJZ01DQXdJREF0TXk0ek9UTXROaTR6TVRraUlDOCtDand2YzNablBnbz0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL3BpY2theGVcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBQaWNrYXhlID0gY3JlYXRlTHVjaWRlSWNvbigncGlja2F4ZScsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBQaWNrYXhlO1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdNMjEgOVY2YTIgMiAwIDAgMC0yLTJINGEyIDIgMCAwIDAtMiAydjEwYzAgMS4xLjkgMiAyIDJoNCcsIGtleTogJ2RhYTRvZicgfV0sXG4gIFsncmVjdCcsIHsgd2lkdGg6ICcxMCcsIGhlaWdodDogJzcnLCB4OiAnMTInLCB5OiAnMTMnLCByeDogJzInLCBrZXk6ICcxbmI4Z3MnIH1dLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIFBpY3R1cmVJblBpY3R1cmUyXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NakVnT1ZZMllUSWdNaUF3SURBZ01DMHlMVEpJTkdFeUlESWdNQ0F3SURBdE1pQXlkakV3WXpBZ01TNHhMamtnTWlBeUlESm9OQ0lnTHo0S0lDQThjbVZqZENCM2FXUjBhRDBpTVRBaUlHaGxhV2RvZEQwaU55SWdlRDBpTVRJaUlIazlJakV6SWlCeWVEMGlNaUlnTHo0S1BDOXpkbWMrQ2c9PSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvcGljdHVyZS1pbi1waWN0dXJlLTJcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBQaWN0dXJlSW5QaWN0dXJlMiA9IGNyZWF0ZUx1Y2lkZUljb24oJ3BpY3R1cmUtaW4tcGljdHVyZS0yJywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IFBpY3R1cmVJblBpY3R1cmUyO1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdNMiAxMGg2VjQnLCBrZXk6ICd6d3JjbycgfV0sXG4gIFsncGF0aCcsIHsgZDogJ20yIDQgNiA2Jywga2V5OiAndWcwODV0JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTIxIDEwVjdhMiAyIDAgMCAwLTItMmgtNycsIGtleTogJ2dpdDVqcicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00zIDE0djJhMiAyIDAgMCAwIDIgMmgzJywga2V5OiAnMWY3ZmgzJyB9XSxcbiAgWydyZWN0JywgeyB4OiAnMTInLCB5OiAnMTQnLCB3aWR0aDogJzEwJywgaGVpZ2h0OiAnNycsIHJ4OiAnMScsIGtleTogJzF3anMzbycgfV0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgUGljdHVyZUluUGljdHVyZVxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTWlBeE1HZzJWalFpSUM4K0NpQWdQSEJoZEdnZ1pEMGliVElnTkNBMklEWWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRUSXhJREV3VmpkaE1pQXlJREFnTUNBd0xUSXRNbWd0TnlJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTXlBeE5IWXlZVElnTWlBd0lEQWdNQ0F5SURKb015SWdMejRLSUNBOGNtVmpkQ0I0UFNJeE1pSWdlVDBpTVRRaUlIZHBaSFJvUFNJeE1DSWdhR1ZwWjJoMFBTSTNJaUJ5ZUQwaU1TSWdMejRLUEM5emRtYytDZz09KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9waWN0dXJlLWluLXBpY3R1cmVcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBQaWN0dXJlSW5QaWN0dXJlID0gY3JlYXRlTHVjaWRlSWNvbigncGljdHVyZS1pbi1waWN0dXJlJywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IFBpY3R1cmVJblBpY3R1cmU7XG4iLCJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbXG4gIFtcbiAgICAncGF0aCcsXG4gICAge1xuICAgICAgZDogJ00xMSAxN2gzdjJhMSAxIDAgMCAwIDEgMWgyYTEgMSAwIDAgMCAxLTF2LTNhMy4xNiAzLjE2IDAgMCAwIDItMmgxYTEgMSAwIDAgMCAxLTF2LTJhMSAxIDAgMCAwLTEtMWgtMWE1IDUgMCAwIDAtMi00VjNhNCA0IDAgMCAwLTMuMiAxLjZsLS4zLjRIMTFhNiA2IDAgMCAwLTYgNnYxYTUgNSAwIDAgMCAyIDR2M2ExIDEgMCAwIDAgMSAxaDJhMSAxIDAgMCAwIDEtMXonLFxuICAgICAga2V5OiAnMXBpZ2xjJyxcbiAgICB9LFxuICBdLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTYgMTBoLjAxJywga2V5OiAnMW05NHd6JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTIgOHYxYTIgMiAwIDAgMCAyIDJoMScsIGtleTogJzFlbnY0MycgfV0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgUGlnZ3lCYW5rXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NVEVnTVRkb00zWXlZVEVnTVNBd0lEQWdNQ0F4SURGb01tRXhJREVnTUNBd0lEQWdNUzB4ZGkwellUTXVNVFlnTXk0eE5pQXdJREFnTUNBeUxUSm9NV0V4SURFZ01DQXdJREFnTVMweGRpMHlZVEVnTVNBd0lEQWdNQzB4TFRGb0xURmhOU0ExSURBZ01DQXdMVEl0TkZZellUUWdOQ0F3SURBZ01DMHpMaklnTVM0MmJDMHVNeTQwU0RFeFlUWWdOaUF3SURBZ01DMDJJRFoyTVdFMUlEVWdNQ0F3SURBZ01pQTBkak5oTVNBeElEQWdNQ0F3SURFZ01XZ3lZVEVnTVNBd0lEQWdNQ0F4TFRGNklpQXZQZ29nSUR4d1lYUm9JR1E5SWsweE5pQXhNR2d1TURFaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRJZ09IWXhZVElnTWlBd0lEQWdNQ0F5SURKb01TSWdMejRLUEM5emRtYytDZz09KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9waWdneS1iYW5rXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgUGlnZ3lCYW5rID0gY3JlYXRlTHVjaWRlSWNvbigncGlnZ3ktYmFuaycsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBQaWdneUJhbms7XG4iLCJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ00xNCAzdjExJywga2V5OiAnbWxmYjdiJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTE0IDloLTNhMyAzIDAgMCAxIDAtNmg5Jywga2V5OiAnMXVsYzE5JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTE4IDN2MTEnLCBrZXk6ICcxcGhpMHInIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMjIgMThIMmw0LTQnLCBrZXk6ICd5dDY1ajknIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdtNiAyMi00LTQnLCBrZXk6ICc2amd5ZjUnIH1dLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIFBpbGNyb3dMZWZ0XG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NVFFnTTNZeE1TSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk1UUWdPV2d0TTJFeklETWdNQ0F3SURFZ01DMDJhRGtpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVEU0SUROMk1URWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRUSXlJREU0U0RKc05DMDBJaUF2UGdvZ0lEeHdZWFJvSUdROUltMDJJREl5TFRRdE5DSWdMejRLUEM5emRtYytDZz09KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9waWxjcm93LWxlZnRcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBQaWxjcm93TGVmdCA9IGNyZWF0ZUx1Y2lkZUljb24oJ3BpbGNyb3ctbGVmdCcsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBQaWxjcm93TGVmdDtcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTEwIDN2MTEnLCBrZXk6ICdvM2w1a2onIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTAgOUg3YTEgMSAwIDAgMSAwLTZoOCcsIGtleTogJzF3YjFuYycgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xNCAzdjExJywga2V5OiAnbWxmYjdiJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnbTE4IDE0IDQgNEgyJywga2V5OiAnNHI4aW8xJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnbTIyIDE4LTQgNCcsIGtleTogJzFoampyZCcgfV0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgUGlsY3Jvd1JpZ2h0XG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NVEFnTTNZeE1TSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk1UQWdPVWczWVRFZ01TQXdJREFnTVNBd0xUWm9PQ0lnTHo0S0lDQThjR0YwYUNCa1BTSk5NVFFnTTNZeE1TSWdMejRLSUNBOGNHRjBhQ0JrUFNKdE1UZ2dNVFFnTkNBMFNESWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaWJUSXlJREU0TFRRZ05DSWdMejRLUEM5emRtYyspIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL3BpbGNyb3ctcmlnaHRcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBQaWxjcm93UmlnaHQgPSBjcmVhdGVMdWNpZGVJY29uKCdwaWxjcm93LXJpZ2h0JywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IFBpbGNyb3dSaWdodDtcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTEzIDR2MTYnLCBrZXk6ICc4dnZqODAnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTcgNHYxNicsIGtleTogJzdkcG91cycgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xOSA0SDkuNWE0LjUgNC41IDAgMCAwIDAgOUgxMycsIGtleTogJ3NoNG45dicgfV0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgUGlsY3Jvd1xuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTVRNZ05IWXhOaUlnTHo0S0lDQThjR0YwYUNCa1BTSk5NVGNnTkhZeE5pSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk1Ua2dORWc1TGpWaE5DNDFJRFF1TlNBd0lEQWdNQ0F3SURsSU1UTWlJQzgrQ2p3dmMzWm5QZ289KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9waWxjcm93XG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgUGlsY3JvdyA9IGNyZWF0ZUx1Y2lkZUljb24oJ3BpbGNyb3cnLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgUGlsY3JvdztcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTE4IDExaC00YTEgMSAwIDAgMC0xIDF2NWExIDEgMCAwIDAgMSAxaDQnLCBrZXk6ICcxN2xkZWInIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNNiA3djEzYTIgMiAwIDAgMCAyIDJoOGEyIDIgMCAwIDAgMi0yVjcnLCBrZXk6ICduYzM3eTYnIH1dLFxuICBbJ3JlY3QnLCB7IHdpZHRoOiAnMTYnLCBoZWlnaHQ6ICc1JywgeDogJzQnLCB5OiAnMicsIHJ4OiAnMScsIGtleTogJzNqZWV6bycgfV0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgUGlsbEJvdHRsZVxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTVRnZ01URm9MVFJoTVNBeElEQWdNQ0F3TFRFZ01YWTFZVEVnTVNBd0lEQWdNQ0F4SURGb05DSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk5pQTNkakV6WVRJZ01pQXdJREFnTUNBeUlESm9PR0V5SURJZ01DQXdJREFnTWkweVZqY2lJQzgrQ2lBZ1BISmxZM1FnZDJsa2RHZzlJakUySWlCb1pXbG5hSFE5SWpVaUlIZzlJalFpSUhrOUlqSWlJSEo0UFNJeElpQXZQZ284TDNOMlp6NEspIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL3BpbGwtYm90dGxlXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgUGlsbEJvdHRsZSA9IGNyZWF0ZUx1Y2lkZUljb24oJ3BpbGwtYm90dGxlJywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IFBpbGxCb3R0bGU7XG4iLCJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbXG4gIFtcbiAgICAncGF0aCcsXG4gICAgeyBkOiAnbTEwLjUgMjAuNSAxMC0xMGE0Ljk1IDQuOTUgMCAxIDAtNy03bC0xMCAxMGE0Ljk1IDQuOTUgMCAxIDAgNyA3WicsIGtleTogJ3dhMWxnaScgfSxcbiAgXSxcbiAgWydwYXRoJywgeyBkOiAnbTguNSA4LjUgNyA3Jywga2V5OiAncnZmbXZyJyB9XSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBQaWxsXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSnRNVEF1TlNBeU1DNDFJREV3TFRFd1lUUXVPVFVnTkM0NU5TQXdJREVnTUMwM0xUZHNMVEV3SURFd1lUUXVPVFVnTkM0NU5TQXdJREVnTUNBM0lEZGFJaUF2UGdvZ0lEeHdZWFJvSUdROUltMDRMalVnT0M0MUlEY2dOeUlnTHo0S1BDOXpkbWMrQ2c9PSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvcGlsbFxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IFBpbGwgPSBjcmVhdGVMdWNpZGVJY29uKCdwaWxsJywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IFBpbGw7XG4iLCJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ00xMiAxN3Y1Jywga2V5OiAnYmIxZHU5JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTE1IDkuMzRWN2ExIDEgMCAwIDEgMS0xIDIgMiAwIDAgMCAwLTRINy44OScsIGtleTogJ3pud256cScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ20yIDIgMjAgMjAnLCBrZXk6ICcxb29ld3knIH1dLFxuICBbXG4gICAgJ3BhdGgnLFxuICAgIHtcbiAgICAgIGQ6ICdNOSA5djEuNzZhMiAyIDAgMCAxLTEuMTEgMS43OWwtMS43OC45QTIgMiAwIDAgMCA1IDE1LjI0VjE2YTEgMSAwIDAgMCAxIDFoMTEnLFxuICAgICAga2V5OiAnYzlxaG0yJyxcbiAgICB9LFxuICBdLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIFBpbk9mZlxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTVRJZ01UZDJOU0lnTHo0S0lDQThjR0YwYUNCa1BTSk5NVFVnT1M0ek5GWTNZVEVnTVNBd0lEQWdNU0F4TFRFZ01pQXlJREFnTUNBd0lEQXRORWczTGpnNUlpQXZQZ29nSUR4d1lYUm9JR1E5SW0weUlESWdNakFnTWpBaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRrZ09YWXhMamMyWVRJZ01pQXdJREFnTVMweExqRXhJREV1Tnpsc0xURXVOemd1T1VFeUlESWdNQ0F3SURBZ05TQXhOUzR5TkZZeE5tRXhJREVnTUNBd0lEQWdNU0F4YURFeElpQXZQZ284TDNOMlp6NEspIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL3Bpbi1vZmZcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBQaW5PZmYgPSBjcmVhdGVMdWNpZGVJY29uKCdwaW4tb2ZmJywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IFBpbk9mZjtcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTEyIDE3djUnLCBrZXk6ICdiYjFkdTknIH1dLFxuICBbXG4gICAgJ3BhdGgnLFxuICAgIHtcbiAgICAgIGQ6ICdNOSAxMC43NmEyIDIgMCAwIDEtMS4xMSAxLjc5bC0xLjc4LjlBMiAyIDAgMCAwIDUgMTUuMjRWMTZhMSAxIDAgMCAwIDEgMWgxMmExIDEgMCAwIDAgMS0xdi0uNzZhMiAyIDAgMCAwLTEuMTEtMS43OWwtMS43OC0uOUEyIDIgMCAwIDEgMTUgMTAuNzZWN2ExIDEgMCAwIDEgMS0xIDIgMiAwIDAgMCAwLTRIOGEyIDIgMCAwIDAgMCA0IDEgMSAwIDAgMSAxIDF6JyxcbiAgICAgIGtleTogJzFua3o4YicsXG4gICAgfSxcbiAgXSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBQaW5cbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1USWdNVGQyTlNJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOT1NBeE1DNDNObUV5SURJZ01DQXdJREV0TVM0eE1TQXhMamM1YkMweExqYzRMamxCTWlBeUlEQWdNQ0F3SURVZ01UVXVNalJXTVRaaE1TQXhJREFnTUNBd0lERWdNV2d4TW1FeElERWdNQ0F3SURBZ01TMHhkaTB1TnpaaE1pQXlJREFnTUNBd0xURXVNVEV0TVM0M09Xd3RNUzQzT0MwdU9VRXlJRElnTUNBd0lERWdNVFVnTVRBdU56WldOMkV4SURFZ01DQXdJREVnTVMweElESWdNaUF3SURBZ01DQXdMVFJJT0dFeUlESWdNQ0F3SURBZ01DQTBJREVnTVNBd0lEQWdNU0F4SURGNklpQXZQZ284TDNOMlp6NEspIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL3BpblxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IFBpbiA9IGNyZWF0ZUx1Y2lkZUljb24oJ3BpbicsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBQaW47XG4iLCJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbXG4gIFtcbiAgICAncGF0aCcsXG4gICAge1xuICAgICAgZDogJ20xMiA5LTguNDE0IDguNDE0QTIgMiAwIDAgMCAzIDE4LjgyOHYxLjM0NGEyIDIgMCAwIDEtLjU4NiAxLjQxNEEyIDIgMCAwIDEgMy44MjggMjFoMS4zNDRhMiAyIDAgMCAwIDEuNDE0LS41ODZMMTUgMTInLFxuICAgICAga2V5OiAnMXkzd3N1JyxcbiAgICB9LFxuICBdLFxuICBbXG4gICAgJ3BhdGgnLFxuICAgIHtcbiAgICAgIGQ6ICdtMTggOSAuNC40YTEgMSAwIDEgMS0zIDNsLTMuOC0zLjhhMSAxIDAgMSAxIDMtM2wuNC40IDMuNC0zLjRhMSAxIDAgMSAxIDMgM3onLFxuICAgICAga2V5OiAnMTEwbHIxJyxcbiAgICB9LFxuICBdLFxuICBbJ3BhdGgnLCB7IGQ6ICdtMiAyMiAuNDE0LS40MTQnLCBrZXk6ICdqaHhtMDgnIH1dLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIFBpcGV0dGVcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKdE1USWdPUzA0TGpReE5DQTRMalF4TkVFeUlESWdNQ0F3SURBZ015QXhPQzQ0TWpoMk1TNHpORFJoTWlBeUlEQWdNQ0F4TFM0MU9EWWdNUzQwTVRSQk1pQXlJREFnTUNBeElETXVPREk0SURJeGFERXVNelEwWVRJZ01pQXdJREFnTUNBeExqUXhOQzB1TlRnMlRERTFJREV5SWlBdlBnb2dJRHh3WVhSb0lHUTlJbTB4T0NBNUlDNDBMalJoTVNBeElEQWdNU0F4TFRNZ00yd3RNeTQ0TFRNdU9HRXhJREVnTUNBeElERWdNeTB6YkM0MExqUWdNeTQwTFRNdU5HRXhJREVnTUNBeElERWdNeUF6ZWlJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0p0TWlBeU1pQXVOREUwTFM0ME1UUWlJQzgrQ2p3dmMzWm5QZ289KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9waXBldHRlXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgUGlwZXR0ZSA9IGNyZWF0ZUx1Y2lkZUljb24oJ3BpcGV0dGUnLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgUGlwZXR0ZTtcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnbTEyIDE0LTEgMScsIGtleTogJzExb25ocicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ20xMy43NSAxOC4yNS0xLjI1IDEuNDInLCBrZXk6ICcxeWlzcjMnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTcuNzc1IDUuNjU0YTE1LjY4IDE1LjY4IDAgMCAwLTEyLjEyMSAxMi4xMicsIGtleTogJzFxdHFrNicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xOC44IDkuM2ExIDEgMCAwIDAgMi4xIDcuNycsIGtleTogJ2ZiYmJyMicgfV0sXG4gIFtcbiAgICAncGF0aCcsXG4gICAge1xuICAgICAgZDogJ00yMS45NjQgMjAuNzMyYTEgMSAwIDAgMS0xLjIzMiAxLjIzMmwtMTgtNWExIDEgMCAwIDEtLjY5NS0xLjIzMkExOS42OCAxOS42OCAwIDAgMSAxNS43MzIgMi4wMzdhMSAxIDAgMCAxIDEuMjMyLjY5NXonLFxuICAgICAga2V5OiAnMWh5ZmRkJyxcbiAgICB9LFxuICBdLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIFBpenphXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSnRNVElnTVRRdE1TQXhJaUF2UGdvZ0lEeHdZWFJvSUdROUltMHhNeTQzTlNBeE9DNHlOUzB4TGpJMUlERXVORElpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVEUzTGpjM05TQTFMalkxTkdFeE5TNDJPQ0F4TlM0Mk9DQXdJREFnTUMweE1pNHhNakVnTVRJdU1USWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRURTRMamdnT1M0ellURWdNU0F3SURBZ01DQXlMakVnTnk0M0lpQXZQZ29nSUR4d1lYUm9JR1E5SWsweU1TNDVOalFnTWpBdU56TXlZVEVnTVNBd0lEQWdNUzB4TGpJek1pQXhMakl6TW13dE1UZ3ROV0V4SURFZ01DQXdJREV0TGpZNU5TMHhMakl6TWtFeE9TNDJPQ0F4T1M0Mk9DQXdJREFnTVNBeE5TNDNNeklnTWk0d016ZGhNU0F4SURBZ01DQXhJREV1TWpNeUxqWTVOWG9pSUM4K0Nqd3ZjM1puUGdvPSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvcGl6emFcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBQaXp6YSA9IGNyZWF0ZUx1Y2lkZUljb24oJ3BpenphJywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IFBpenphO1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdNMiAyMmgyMCcsIGtleTogJzI3MnFpNycgfV0sXG4gIFtcbiAgICAncGF0aCcsXG4gICAge1xuICAgICAgZDogJ00zLjc3IDEwLjc3IDIgOWwyLTQuNSAxLjEuNTVjLjU1LjI4LjkuODQuOSAxLjQ1cy4zNSAxLjE3LjkgMS40NUw4IDguNWwzLTYgMS4wNS41M2EyIDIgMCAwIDEgMS4wOSAxLjUybC43MiA1LjRhMiAyIDAgMCAwIDEuMDkgMS41Mmw0LjQgMi4yYy40Mi4yMi43OC41NSAxLjAxLjk2bC42IDEuMDNjLjQ5Ljg4LS4wNiAxLjk4LTEuMDYgMi4xbC0xLjE4LjE1Yy0uNDcuMDYtLjk1LS4wMi0xLjM3LS4yNEw0LjI5IDExLjE1YTIgMiAwIDAgMS0uNTItLjM4WicsXG4gICAgICBrZXk6ICcxbWEyMWUnLFxuICAgIH0sXG4gIF0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgUGxhbmVMYW5kaW5nXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NaUF5TW1neU1DSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk15NDNOeUF4TUM0M055QXlJRGxzTWkwMExqVWdNUzR4TGpVMVl5NDFOUzR5T0M0NUxqZzBMamtnTVM0ME5YTXVNelVnTVM0eE55NDVJREV1TkRWTU9DQTRMalZzTXkwMklERXVNRFV1TlROaE1pQXlJREFnTUNBeElERXVNRGtnTVM0MU1td3VOeklnTlM0MFlUSWdNaUF3SURBZ01DQXhMakE1SURFdU5USnNOQzQwSURJdU1tTXVOREl1TWpJdU56Z3VOVFVnTVM0d01TNDVObXd1TmlBeExqQXpZeTQwT1M0NE9DMHVNRFlnTVM0NU9DMHhMakEySURJdU1Xd3RNUzR4T0M0eE5XTXRMalEzTGpBMkxTNDVOUzB1TURJdE1TNHpOeTB1TWpSTU5DNHlPU0F4TVM0eE5XRXlJRElnTUNBd0lERXRMalV5TFM0ek9Gb2lJQzgrQ2p3dmMzWm5QZ289KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9wbGFuZS1sYW5kaW5nXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgUGxhbmVMYW5kaW5nID0gY3JlYXRlTHVjaWRlSWNvbigncGxhbmUtbGFuZGluZycsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBQbGFuZUxhbmRpbmc7XG4iLCJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ00yIDIyaDIwJywga2V5OiAnMjcycWk3JyB9XSxcbiAgW1xuICAgICdwYXRoJyxcbiAgICB7XG4gICAgICBkOiAnTTYuMzYgMTcuNCA0IDE3bC0yLTQgMS4xLS41NWEyIDIgMCAwIDEgMS44IDBsLjE3LjFhMiAyIDAgMCAwIDEuOCAwTDggMTIgNSA2bC45LS40NWEyIDIgMCAwIDEgMi4wOS4ybDQuMDIgM2EyIDIgMCAwIDAgMi4xLjJsNC4xOS0yLjA2YTIuNDEgMi40MSAwIDAgMSAxLjczLS4xN0wyMSA3YTEuNCAxLjQgMCAwIDEgLjg3IDEuOTlsLS4zOC43NmMtLjIzLjQ2LS42Ljg0LTEuMDcgMS4wOEw3LjU4IDE3LjJhMiAyIDAgMCAxLTEuMjIuMThaJyxcbiAgICAgIGtleTogJ2ZraWdqOScsXG4gICAgfSxcbiAgXSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBQbGFuZVRha2VvZmZcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1pQXlNbWd5TUNJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTmk0ek5pQXhOeTQwSURRZ01UZHNMVEl0TkNBeExqRXRMalUxWVRJZ01pQXdJREFnTVNBeExqZ2dNR3d1TVRjdU1XRXlJRElnTUNBd0lEQWdNUzQ0SURCTU9DQXhNaUExSURac0xqa3RMalExWVRJZ01pQXdJREFnTVNBeUxqQTVMakpzTkM0d01pQXpZVElnTWlBd0lEQWdNQ0F5TGpFdU1tdzBMakU1TFRJdU1EWmhNaTQwTVNBeUxqUXhJREFnTUNBeElERXVOek10TGpFM1RESXhJRGRoTVM0MElERXVOQ0F3SURBZ01TQXVPRGNnTVM0NU9Xd3RMak00TGpjMll5MHVNak11TkRZdExqWXVPRFF0TVM0d055QXhMakE0VERjdU5UZ2dNVGN1TW1FeUlESWdNQ0F3SURFdE1TNHlNaTR4T0ZvaUlDOCtDand2YzNablBnbz0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL3BsYW5lLXRha2VvZmZcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBQbGFuZVRha2VvZmYgPSBjcmVhdGVMdWNpZGVJY29uKCdwbGFuZS10YWtlb2ZmJywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IFBsYW5lVGFrZW9mZjtcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgW1xuICAgICdwYXRoJyxcbiAgICB7XG4gICAgICBkOiAnTTE3LjggMTkuMiAxNiAxMWwzLjUtMy41QzIxIDYgMjEuNSA0IDIxIDNjLTEtLjUtMyAwLTQuNSAxLjVMMTMgOCA0LjggNi4yYy0uNS0uMS0uOS4xLTEuMS41bC0uMy41Yy0uMi41LS4xIDEgLjMgMS4zTDkgMTJsLTIgM0g0bC0xIDEgMyAyIDIgMyAxLTF2LTNsMy0yIDMuNSA1LjNjLjMuNC44LjUgMS4zLjNsLjUtLjJjLjQtLjMuNi0uNy41LTEuMnonLFxuICAgICAga2V5OiAnMXY5d3Q4JyxcbiAgICB9LFxuICBdLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIFBsYW5lXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NVGN1T0NBeE9TNHlJREUySURFeGJETXVOUzB6TGpWRE1qRWdOaUF5TVM0MUlEUWdNakVnTTJNdE1TMHVOUzB6SURBdE5DNDFJREV1TlV3eE15QTRJRFF1T0NBMkxqSmpMUzQxTFM0eExTNDVMakV0TVM0eExqVnNMUzR6TGpWakxTNHlMalV0TGpFZ01TQXVNeUF4TGpOTU9TQXhNbXd0TWlBelNEUnNMVEVnTVNBeklESWdNaUF6SURFdE1YWXRNMnd6TFRJZ015NDFJRFV1TTJNdU15NDBMamd1TlNBeExqTXVNMnd1TlMwdU1tTXVOQzB1TXk0MkxTNDNMalV0TVM0eWVpSWdMejRLUEM5emRtYytDZz09KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9wbGFuZVxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IFBsYW5lID0gY3JlYXRlTHVjaWRlSWNvbigncGxhbmUnLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgUGxhbmU7XG4iLCJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbWydwb2x5Z29uJywgeyBwb2ludHM6ICc2IDMgMjAgMTIgNiAyMSA2IDMnLCBrZXk6ICcxb2E4aGInIH1dXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIFBsYXlcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHOXNlV2R2YmlCd2IybHVkSE05SWpZZ015QXlNQ0F4TWlBMklESXhJRFlnTXlJZ0x6NEtQQzl6ZG1jK0NnPT0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL3BsYXlcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBQbGF5ID0gY3JlYXRlTHVjaWRlSWNvbigncGxheScsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBQbGF5O1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdNOSAydjYnLCBrZXk6ICcxN25ndW4nIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTUgMnY2Jywga2V5OiAnczd5eTJwJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTEyIDE3djUnLCBrZXk6ICdiYjFkdTknIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNNSA4aDE0Jywga2V5OiAncGN6NGwzJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTYgMTFWOGgxMnYzYTYgNiAwIDEgMS0xMiAwWicsIGtleTogJ3d0ZncyYycgfV0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgUGx1ZzJcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk9TQXlkallpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVEUxSURKMk5pSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk1USWdNVGQyTlNJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTlNBNGFERTBJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMDJJREV4Vmpob01USjJNMkUySURZZ01DQXhJREV0TVRJZ01Gb2lJQzgrQ2p3dmMzWm5QZ289KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9wbHVnLTJcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBQbHVnMiA9IGNyZWF0ZUx1Y2lkZUljb24oJ3BsdWctMicsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBQbHVnMjtcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgW1xuICAgICdwYXRoJyxcbiAgICB7IGQ6ICdNNi4zIDIwLjNhMi40IDIuNCAwIDAgMCAzLjQgMEwxMiAxOGwtNi02LTIuMyAyLjNhMi40IDIuNCAwIDAgMCAwIDMuNFonLCBrZXk6ICdnb3o3M3knIH0sXG4gIF0sXG4gIFsncGF0aCcsIHsgZDogJ20yIDIyIDMtMycsIGtleTogJzE5bWdtOScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ003LjUgMTMuNSAxMCAxMScsIGtleTogJzd4Z2VlYicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xMC41IDE2LjUgMTMgMTQnLCBrZXk6ICcxMGJ0a2cnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdtMTggMy00IDRoNmwtNCA0Jywga2V5OiAnMTZwc2c5JyB9XSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBQbHVnWmFwXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5OaTR6SURJd0xqTmhNaTQwSURJdU5DQXdJREFnTUNBekxqUWdNRXd4TWlBeE9Hd3ROaTAyTFRJdU15QXlMak5oTWk0MElESXVOQ0F3SURBZ01DQXdJRE11TkZvaUlDOCtDaUFnUEhCaGRHZ2daRDBpYlRJZ01qSWdNeTB6SWlBdlBnb2dJRHh3WVhSb0lHUTlJazAzTGpVZ01UTXVOU0F4TUNBeE1TSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk1UQXVOU0F4Tmk0MUlERXpJREUwSWlBdlBnb2dJRHh3WVhSb0lHUTlJbTB4T0NBekxUUWdOR2cyYkMwMElEUWlJQzgrQ2p3dmMzWm5QZ289KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9wbHVnLXphcFxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IFBsdWdaYXAgPSBjcmVhdGVMdWNpZGVJY29uKCdwbHVnLXphcCcsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBQbHVnWmFwO1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdNMTIgMjJ2LTUnLCBrZXk6ICcxZWdhNzcnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNOSA4VjInLCBrZXk6ICcxNGlvc2onIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTUgOFYyJywga2V5OiAnMThnNXh0JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTE4IDh2NWE0IDQgMCAwIDEtNCA0aC00YTQgNCAwIDAgMS00LTRWOFonLCBrZXk6ICdvc3hvNmwnIH1dLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIFBsdWdcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1USWdNakoyTFRVaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRrZ09GWXlJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHhOU0E0VmpJaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRFNElEaDJOV0UwSURRZ01DQXdJREV0TkNBMGFDMDBZVFFnTkNBd0lEQWdNUzAwTFRSV09Gb2lJQzgrQ2p3dmMzWm5QZ289KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9wbHVnXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgUGx1ZyA9IGNyZWF0ZUx1Y2lkZUljb24oJ3BsdWcnLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgUGx1ZztcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTUgMTJoMTQnLCBrZXk6ICcxYXlzMGgnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTIgNXYxNCcsIGtleTogJ3M2OTlsZScgfV0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgUGx1c1xuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTlNBeE1tZ3hOQ0lnTHo0S0lDQThjR0YwYUNCa1BTSk5NVElnTlhZeE5DSWdMejRLUEM5emRtYytDZz09KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9wbHVzXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgUGx1cyA9IGNyZWF0ZUx1Y2lkZUljb24oJ3BsdXMnLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgUGx1cztcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTIwIDNhMiAyIDAgMCAxIDIgMnY2YTEgMSAwIDAgMS0yMCAwVjVhMiAyIDAgMCAxIDItMnonLCBrZXk6ICcxdW9kcXcnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdtOCAxMCA0IDQgNC00Jywga2V5OiAnMW14ZDVxJyB9XSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBQb2NrZXRcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1qQWdNMkV5SURJZ01DQXdJREVnTWlBeWRqWmhNU0F4SURBZ01DQXhMVEl3SURCV05XRXlJRElnTUNBd0lERWdNaTB5ZWlJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0p0T0NBeE1DQTBJRFFnTkMwMElpQXZQZ284TDNOMlp6NEspIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL3BvY2tldFxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqIEBkZXByZWNhdGVkIEJyYW5kIGljb25zIGhhdmUgYmVlbiBkZXByZWNhdGVkIGFuZCBhcmUgZHVlIHRvIGJlIHJlbW92ZWQsIHBsZWFzZSByZWZlciB0byBodHRwczovL2dpdGh1Yi5jb20vbHVjaWRlLWljb25zL2x1Y2lkZS9pc3N1ZXMvNjcwLiBXZSByZWNvbW1lbmQgdXNpbmcgaHR0cHM6Ly9zaW1wbGVpY29ucy5vcmcvP3E9cG9ja2V0IGluc3RlYWQuIFRoaXMgaWNvbiB3aWxsIGJlIHJlbW92ZWQgaW4gdjEuMFxuICovXG5jb25zdCBQb2NrZXQgPSBjcmVhdGVMdWNpZGVJY29uKCdwb2NrZXQnLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgUG9ja2V0O1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdNMyAydjFjMCAxIDIgMSAyIDJTMyA2IDMgN3MyIDEgMiAyLTIgMS0yIDIgMiAxIDIgMicsIGtleTogJzE5dzNvZScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xOCA2aC4wMScsIGtleTogJzF2NHdzdycgfV0sXG4gIFsncGF0aCcsIHsgZDogJ002IDE4aC4wMScsIGtleTogJ3VoeXdlbicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00yMC44MyA4LjgzYTQgNCAwIDAgMC01LjY2LTUuNjZsLTEyIDEyYTQgNCAwIDEgMCA1LjY2IDUuNjZaJywga2V5OiAnNmZ5a3hqJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTE4IDExLjY2VjIyYTQgNCAwIDAgMCA0LTRWNicsIGtleTogJzF1dHplaycgfV0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgUG9ja2V0S25pZmVcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk15QXlkakZqTUNBeElESWdNU0F5SURKVE15QTJJRE1nTjNNeUlERWdNaUF5TFRJZ01TMHlJRElnTWlBeElESWdNaUlnTHo0S0lDQThjR0YwYUNCa1BTSk5NVGdnTm1ndU1ERWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRUWWdNVGhvTGpBeElpQXZQZ29nSUR4d1lYUm9JR1E5SWsweU1DNDRNeUE0TGpnellUUWdOQ0F3SURBZ01DMDFMalkyTFRVdU5qWnNMVEV5SURFeVlUUWdOQ0F3SURFZ01DQTFMalkySURVdU5qWmFJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHhPQ0F4TVM0Mk5sWXlNbUUwSURRZ01DQXdJREFnTkMwMFZqWWlJQzgrQ2p3dmMzWm5QZ289KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9wb2NrZXQta25pZmVcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBQb2NrZXRLbmlmZSA9IGNyZWF0ZUx1Y2lkZUljb24oJ3BvY2tldC1rbmlmZScsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBQb2NrZXRLbmlmZTtcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTE2Ljg1IDE4LjU4YTkgOSAwIDEgMC05LjcgMCcsIGtleTogJ2Q3MW1wZycgfV0sXG4gIFsncGF0aCcsIHsgZDogJ004IDE0YTUgNSAwIDEgMSA4IDAnLCBrZXk6ICdmYzgxcm4nIH1dLFxuICBbJ2NpcmNsZScsIHsgY3g6ICcxMicsIGN5OiAnMTEnLCByOiAnMScsIGtleTogJzFndnVmbycgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xMyAxN2ExIDEgMCAxIDAtMiAwbC41IDQuNWEuNS41IDAgMSAwIDEgMFonLCBrZXk6ICd6YTVrYmonIH1dLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIFBvZGNhc3RcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1UWXVPRFVnTVRndU5UaGhPU0E1SURBZ01TQXdMVGt1TnlBd0lpQXZQZ29nSUR4d1lYUm9JR1E5SWswNElERTBZVFVnTlNBd0lERWdNU0E0SURBaUlDOCtDaUFnUEdOcGNtTnNaU0JqZUQwaU1USWlJR041UFNJeE1TSWdjajBpTVNJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTVRNZ01UZGhNU0F4SURBZ01TQXdMVElnTUd3dU5TQTBMalZoTGpVdU5TQXdJREVnTUNBeElEQmFJaUF2UGdvOEwzTjJaejRLKSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9wb2RjYXN0XG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgUG9kY2FzdCA9IGNyZWF0ZUx1Y2lkZUljb24oJ3BvZGNhc3QnLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgUG9kY2FzdDtcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTEwIDQuNVY0YTIgMiAwIDAgMC0yLjQxLTEuOTU3Jywga2V5OiAnanNpMTRuJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTEzLjkgOC40YTIgMiAwIDAgMC0xLjI2LTEuMjk1Jywga2V5OiAnaGlyYzdmJyB9XSxcbiAgW1xuICAgICdwYXRoJyxcbiAgICB7IGQ6ICdNMjEuNyAxNi4yQTggOCAwIDAgMCAyMiAxNHYtM2EyIDIgMCAxIDAtNCAwdi0xYTIgMiAwIDAgMC0zLjYzLTEuMTU4Jywga2V5OiAnMWp4YjJlJyB9LFxuICBdLFxuICBbXG4gICAgJ3BhdGgnLFxuICAgIHtcbiAgICAgIGQ6ICdtNyAxNS0xLjgtMS44YTIgMiAwIDAgMC0yLjc5IDIuODZMNiAxOS43YTcuNzQgNy43NCAwIDAgMCA2IDIuM2gyYTggOCAwIDAgMCA1LjY1Ny0yLjM0MycsXG4gICAgICBrZXk6ICcxMHI3aG0nLFxuICAgIH0sXG4gIF0sXG4gIFsncGF0aCcsIHsgZDogJ002IDZ2OCcsIGtleTogJ3R2NXhrcCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ20yIDIgMjAgMjAnLCBrZXk6ICcxb29ld3knIH1dLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIFBvaW50ZXJPZmZcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1UQWdOQzQxVmpSaE1pQXlJREFnTUNBd0xUSXVOREV0TVM0NU5UY2lJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRURXpMamtnT0M0MFlUSWdNaUF3SURBZ01DMHhMakkyTFRFdU1qazFJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHlNUzQzSURFMkxqSkJPQ0E0SURBZ01DQXdJREl5SURFMGRpMHpZVElnTWlBd0lERWdNQzAwSURCMkxURmhNaUF5SURBZ01DQXdMVE11TmpNdE1TNHhOVGdpSUM4K0NpQWdQSEJoZEdnZ1pEMGliVGNnTVRVdE1TNDRMVEV1T0dFeUlESWdNQ0F3SURBdE1pNDNPU0F5TGpnMlREWWdNVGt1TjJFM0xqYzBJRGN1TnpRZ01DQXdJREFnTmlBeUxqTm9NbUU0SURnZ01DQXdJREFnTlM0Mk5UY3RNaTR6TkRNaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRZZ05uWTRJaUF2UGdvZ0lEeHdZWFJvSUdROUltMHlJRElnTWpBZ01qQWlJQzgrQ2p3dmMzWm5QZ289KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9wb2ludGVyLW9mZlxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IFBvaW50ZXJPZmYgPSBjcmVhdGVMdWNpZGVJY29uKCdwb2ludGVyLW9mZicsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBQb2ludGVyT2ZmO1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdNMjIgMTRhOCA4IDAgMCAxLTggOCcsIGtleTogJzU2dmNyMycgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xOCAxMXYtMWEyIDIgMCAwIDAtMi0yYTIgMiAwIDAgMC0yIDInLCBrZXk6ICcxYWdqbWsnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTQgMTBWOWEyIDIgMCAwIDAtMi0yYTIgMiAwIDAgMC0yIDJ2MScsIGtleTogJ3dkYmgydScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xMCA5LjVWNGEyIDIgMCAwIDAtMi0yYTIgMiAwIDAgMC0yIDJ2MTAnLCBrZXk6ICcxaWJ1azknIH1dLFxuICBbXG4gICAgJ3BhdGgnLFxuICAgIHtcbiAgICAgIGQ6ICdNMTggMTFhMiAyIDAgMSAxIDQgMHYzYTggOCAwIDAgMS04IDhoLTJjLTIuOCAwLTQuNS0uODYtNS45OS0yLjM0bC0zLjYtMy42YTIgMiAwIDAgMSAyLjgzLTIuODJMNyAxNScsXG4gICAgICBrZXk6ICdnNnlzNzInLFxuICAgIH0sXG4gIF0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgUG9pbnRlclxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTWpJZ01UUmhPQ0E0SURBZ01DQXhMVGdnT0NJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTVRnZ01URjJMVEZoTWlBeUlEQWdNQ0F3TFRJdE1tRXlJRElnTUNBd0lEQXRNaUF5SWlBdlBnb2dJRHh3WVhSb0lHUTlJazB4TkNBeE1GWTVZVElnTWlBd0lEQWdNQzB5TFRKaE1pQXlJREFnTUNBd0xUSWdNbll4SWlBdlBnb2dJRHh3WVhSb0lHUTlJazB4TUNBNUxqVldOR0V5SURJZ01DQXdJREF0TWkweVlUSWdNaUF3SURBZ01DMHlJREoyTVRBaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRFNElERXhZVElnTWlBd0lERWdNU0EwSURCMk0yRTRJRGdnTUNBd0lERXRPQ0E0YUMweVl5MHlMamdnTUMwMExqVXRMamcyTFRVdU9Ua3RNaTR6Tkd3dE15NDJMVE11Tm1FeUlESWdNQ0F3SURFZ01pNDRNeTB5TGpneVREY2dNVFVpSUM4K0Nqd3ZjM1puUGdvPSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvcG9pbnRlclxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IFBvaW50ZXIgPSBjcmVhdGVMdWNpZGVJY29uKCdwb2ludGVyJywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IFBvaW50ZXI7XG4iLCJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbXG4gIFtcbiAgICAncGF0aCcsXG4gICAge1xuICAgICAgZDogJ00xOCA4YTIgMiAwIDAgMCAwLTQgMiAyIDAgMCAwLTQgMCAyIDIgMCAwIDAtNCAwIDIgMiAwIDAgMC00IDAgMiAyIDAgMCAwIDAgNCcsXG4gICAgICBrZXk6ICcxMHRkMWYnLFxuICAgIH0sXG4gIF0sXG4gIFsncGF0aCcsIHsgZDogJ00xMCAyMiA5IDgnLCBrZXk6ICd5anB0aXYnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdtMTQgMjIgMS0xNCcsIGtleTogJzhqd2M4YicgfV0sXG4gIFtcbiAgICAncGF0aCcsXG4gICAge1xuICAgICAgZDogJ00yMCA4Yy41IDAgLjkuNC44IDFsLTIuNiAxMmMtLjEuNS0uNyAxLTEuMiAxSDdjLS42IDAtMS4xLS40LTEuMi0xTDMuMiA5Yy0uMS0uNi4zLTEgLjgtMVonLFxuICAgICAga2V5OiAnMXFvMzN0JyxcbiAgICB9LFxuICBdLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIFBvcGNvcm5cbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1UZ2dPR0V5SURJZ01DQXdJREFnTUMwMElESWdNaUF3SURBZ01DMDBJREFnTWlBeUlEQWdNQ0F3TFRRZ01DQXlJRElnTUNBd0lEQXROQ0F3SURJZ01pQXdJREFnTUNBd0lEUWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRURXdJREl5SURrZ09DSWdMejRLSUNBOGNHRjBhQ0JrUFNKdE1UUWdNaklnTVMweE5DSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk1qQWdPR011TlNBd0lDNDVMalF1T0NBeGJDMHlMallnTVRKakxTNHhMalV0TGpjZ01TMHhMaklnTVVnM1l5MHVOaUF3TFRFdU1TMHVOQzB4TGpJdE1Vd3pMaklnT1dNdExqRXRMall1TXkweElDNDRMVEZhSWlBdlBnbzhMM04yWno0SykgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvcG9wY29yblxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IFBvcGNvcm4gPSBjcmVhdGVMdWNpZGVJY29uKCdwb3Bjb3JuJywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IFBvcGNvcm47XG4iLCJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbXG4gIFtcbiAgICAncGF0aCcsXG4gICAge1xuICAgICAgZDogJ00xOC42IDE0LjRjLjgtLjguOC0yIDAtMi44bC04LjEtOC4xYTQuOTUgNC45NSAwIDEgMC03LjEgNy4xbDguMSA4LjFjLjkuNyAyLjEuNyAyLjktLjFaJyxcbiAgICAgIGtleTogJzFvNjhwcycsXG4gICAgfSxcbiAgXSxcbiAgWydwYXRoJywgeyBkOiAnbTIyIDIyLTUuNS01LjUnLCBrZXk6ICcxN283MHknIH1dLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIFBvcHNpY2xlXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NVGd1TmlBeE5DNDBZeTQ0TFM0NExqZ3RNaUF3TFRJdU9Hd3RPQzR4TFRndU1XRTBMamsxSURRdU9UVWdNQ0F4SURBdE55NHhJRGN1TVd3NExqRWdPQzR4WXk0NUxqY2dNaTR4TGpjZ01pNDVMUzR4V2lJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0p0TWpJZ01qSXROUzQxTFRVdU5TSWdMejRLUEM5emRtYytDZz09KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9wb3BzaWNsZVxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IFBvcHNpY2xlID0gY3JlYXRlTHVjaWRlSWNvbigncG9wc2ljbGUnLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgUG9wc2ljbGU7XG4iLCJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ00xOCA3YzAtNS4zMzMtOC01LjMzMy04IDAnLCBrZXk6ICcxcHJtMm4nIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTAgN3YxNCcsIGtleTogJzE4dG1jcycgfV0sXG4gIFsncGF0aCcsIHsgZDogJ002IDIxaDEyJywga2V5OiAnNGRrbWkxJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTYgMTNoMTAnLCBrZXk6ICd5YndyNGEnIH1dLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIFBvdW5kU3RlcmxpbmdcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1UZ2dOMk13TFRVdU16TXpMVGd0TlM0ek16TXRPQ0F3SWlBdlBnb2dJRHh3WVhSb0lHUTlJazB4TUNBM2RqRTBJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMDJJREl4YURFeUlpQXZQZ29nSUR4d1lYUm9JR1E5SWswMklERXphREV3SWlBdlBnbzhMM04yWno0SykgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvcG91bmQtc3RlcmxpbmdcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBQb3VuZFN0ZXJsaW5nID0gY3JlYXRlTHVjaWRlSWNvbigncG91bmQtc3RlcmxpbmcnLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgUG91bmRTdGVybGluZztcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTE4LjM2IDYuNjRBOSA5IDAgMCAxIDIwLjc3IDE1Jywga2V5OiAnZHhrbnZiJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTYuMTYgNi4xNmE5IDkgMCAxIDAgMTIuNjggMTIuNjgnLCBrZXk6ICcxeDdxYjUnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTIgMnY0Jywga2V5OiAnMzQyN2ljJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnbTIgMiAyMCAyMCcsIGtleTogJzFvb2V3eScgfV0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgUG93ZXJPZmZcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1UZ3VNellnTmk0Mk5FRTVJRGtnTUNBd0lERWdNakF1TnpjZ01UVWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRUWXVNVFlnTmk0eE5tRTVJRGtnTUNBeElEQWdNVEl1TmpnZ01USXVOamdpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVEV5SURKMk5DSWdMejRLSUNBOGNHRjBhQ0JrUFNKdE1pQXlJREl3SURJd0lpQXZQZ284TDNOMlp6NEspIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL3Bvd2VyLW9mZlxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IFBvd2VyT2ZmID0gY3JlYXRlTHVjaWRlSWNvbigncG93ZXItb2ZmJywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IFBvd2VyT2ZmO1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdNMTIgMnYxMCcsIGtleTogJ21uZmJsJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTE4LjQgNi42YTkgOSAwIDEgMS0xMi43Ny4wNCcsIGtleTogJ29ib2Z1OScgfV0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgUG93ZXJcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1USWdNbll4TUNJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTVRndU5DQTJMalpoT1NBNUlEQWdNU0F4TFRFeUxqYzNMakEwSWlBdlBnbzhMM04yWno0SykgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvcG93ZXJcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBQb3dlciA9IGNyZWF0ZUx1Y2lkZUljb24oJ3Bvd2VyJywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IFBvd2VyO1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdNMiAzaDIwJywga2V5OiAnOTFhbm1rJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTIxIDN2MTFhMiAyIDAgMCAxLTIgMkg1YTIgMiAwIDAgMS0yLTJWMycsIGtleTogJzJrOXNuOCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ203IDIxIDUtNSA1IDUnLCBrZXk6ICdiaXA0d2UnIH1dLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIFByZXNlbnRhdGlvblxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTWlBemFESXdJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHlNU0F6ZGpFeFlUSWdNaUF3SURBZ01TMHlJREpJTldFeUlESWdNQ0F3SURFdE1pMHlWak1pSUM4K0NpQWdQSEJoZEdnZ1pEMGliVGNnTWpFZ05TMDFJRFVnTlNJZ0x6NEtQQzl6ZG1jK0NnPT0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL3ByZXNlbnRhdGlvblxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IFByZXNlbnRhdGlvbiA9IGNyZWF0ZUx1Y2lkZUljb24oJ3ByZXNlbnRhdGlvbicsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBQcmVzZW50YXRpb247XG4iLCJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ00xMy41IDIySDdhMSAxIDAgMCAxLTEtMXYtNmExIDEgMCAwIDEgMS0xaDEwYTEgMSAwIDAgMSAxIDF2LjUnLCBrZXk6ICdxZWIwOXgnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdtMTYgMTkgMiAyIDQtNCcsIGtleTogJzFiMTRtNicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ002IDE4SDRhMiAyIDAgMCAxLTItMnYtNWEyIDIgMCAwIDEgMi0yaDE2YTIgMiAwIDAgMSAyIDJ2MicsIGtleTogJzFtZDkwaScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ002IDlWM2ExIDEgMCAwIDEgMS0xaDEwYTEgMSAwIDAgMSAxIDF2NicsIGtleTogJzFpdG5lNycgfV0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgUHJpbnRlckNoZWNrXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NVE11TlNBeU1rZzNZVEVnTVNBd0lEQWdNUzB4TFRGMkxUWmhNU0F4SURBZ01DQXhJREV0TVdneE1HRXhJREVnTUNBd0lERWdNU0F4ZGk0MUlpQXZQZ29nSUR4d1lYUm9JR1E5SW0weE5pQXhPU0F5SURJZ05DMDBJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMDJJREU0U0RSaE1pQXlJREFnTUNBeExUSXRNbll0TldFeUlESWdNQ0F3SURFZ01pMHlhREUyWVRJZ01pQXdJREFnTVNBeUlESjJNaUlnTHo0S0lDQThjR0YwYUNCa1BTSk5OaUE1VmpOaE1TQXhJREFnTUNBeElERXRNV2d4TUdFeElERWdNQ0F3SURFZ01TQXhkallpSUM4K0Nqd3ZjM1puUGdvPSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvcHJpbnRlci1jaGVja1xuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IFByaW50ZXJDaGVjayA9IGNyZWF0ZUx1Y2lkZUljb24oJ3ByaW50ZXItY2hlY2snLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgUHJpbnRlckNoZWNrO1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbXG4gICAgJ3BhdGgnLFxuICAgIHtcbiAgICAgIGQ6ICdNNiAxOEg0YTIgMiAwIDAgMS0yLTJ2LTVhMiAyIDAgMCAxIDItMmgxNmEyIDIgMCAwIDEgMiAydjVhMiAyIDAgMCAxLTIgMmgtMicsXG4gICAgICBrZXk6ICcxNDN3eWQnLFxuICAgIH0sXG4gIF0sXG4gIFsncGF0aCcsIHsgZDogJ002IDlWM2ExIDEgMCAwIDEgMS0xaDEwYTEgMSAwIDAgMSAxIDF2NicsIGtleTogJzFpdG5lNycgfV0sXG4gIFsncmVjdCcsIHsgeDogJzYnLCB5OiAnMTQnLCB3aWR0aDogJzEyJywgaGVpZ2h0OiAnOCcsIHJ4OiAnMScsIGtleTogJzF1ZTB0ZycgfV0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgUHJpbnRlclxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTmlBeE9FZzBZVElnTWlBd0lEQWdNUzB5TFRKMkxUVmhNaUF5SURBZ01DQXhJREl0TW1neE5tRXlJRElnTUNBd0lERWdNaUF5ZGpWaE1pQXlJREFnTUNBeExUSWdNbWd0TWlJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTmlBNVZqTmhNU0F4SURBZ01DQXhJREV0TVdneE1HRXhJREVnTUNBd0lERWdNU0F4ZGpZaUlDOCtDaUFnUEhKbFkzUWdlRDBpTmlJZ2VUMGlNVFFpSUhkcFpIUm9QU0l4TWlJZ2FHVnBaMmgwUFNJNElpQnllRDBpTVNJZ0x6NEtQQzl6ZG1jK0NnPT0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL3ByaW50ZXJcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBQcmludGVyID0gY3JlYXRlTHVjaWRlSWNvbigncHJpbnRlcicsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBQcmludGVyO1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdNNSA3IDMgNScsIGtleTogJzF5eXM1OCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ005IDZWMycsIGtleTogJzFwdHo5dScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ20xMyA3IDItMicsIGtleTogJzF3M3ZtcScgfV0sXG4gIFsnY2lyY2xlJywgeyBjeDogJzknLCBjeTogJzEzJywgcjogJzMnLCBrZXk6ICcxbW1hMTMnIH1dLFxuICBbXG4gICAgJ3BhdGgnLFxuICAgIHtcbiAgICAgIGQ6ICdNMTEuODMgMTJIMjBhMiAyIDAgMCAxIDIgMnY0YTIgMiAwIDAgMS0yIDJINGEyIDIgMCAwIDEtMi0ydi00YTIgMiAwIDAgMSAyLTJoMi4xNycsXG4gICAgICBrZXk6ICcyZnJ3emMnLFxuICAgIH0sXG4gIF0sXG4gIFsncGF0aCcsIHsgZDogJ00xNiAxNmgyJywga2V5OiAnZG5xMm9kJyB9XSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBQcm9qZWN0b3JcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk5TQTNJRE1nTlNJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOT1NBMlZqTWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaWJURXpJRGNnTWkweUlpQXZQZ29nSUR4amFYSmpiR1VnWTNnOUlqa2lJR041UFNJeE15SWdjajBpTXlJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTVRFdU9ETWdNVEpJTWpCaE1pQXlJREFnTUNBeElESWdNblkwWVRJZ01pQXdJREFnTVMweUlESklOR0V5SURJZ01DQXdJREV0TWkweWRpMDBZVElnTWlBd0lEQWdNU0F5TFRKb01pNHhOeUlnTHo0S0lDQThjR0YwYUNCa1BTSk5NVFlnTVRab01pSWdMejRLUEM5emRtYytDZz09KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9wcm9qZWN0b3JcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBQcm9qZWN0b3IgPSBjcmVhdGVMdWNpZGVJY29uKCdwcm9qZWN0b3InLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgUHJvamVjdG9yO1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbJ3JlY3QnLCB7IHdpZHRoOiAnMjAnLCBoZWlnaHQ6ICcxNicsIHg6ICcyJywgeTogJzQnLCByeDogJzInLCBrZXk6ICcxOG4zazEnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTIgOXYxMScsIGtleTogJzFmbmtybicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00yIDloMTNhMiAyIDAgMCAxIDIgMnY5Jywga2V5OiAnMTF6M2V4JyB9XSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBQcm9wb3J0aW9uc1xuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y21WamRDQjNhV1IwYUQwaU1qQWlJR2hsYVdkb2REMGlNVFlpSUhnOUlqSWlJSGs5SWpRaUlISjRQU0l5SWlBdlBnb2dJRHh3WVhSb0lHUTlJazB4TWlBNWRqRXhJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHlJRGxvTVROaE1pQXlJREFnTUNBeElESWdNblk1SWlBdlBnbzhMM04yWno0SykgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvcHJvcG9ydGlvbnNcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBQcm9wb3J0aW9ucyA9IGNyZWF0ZUx1Y2lkZUljb24oJ3Byb3BvcnRpb25zJywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IFByb3BvcnRpb25zO1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbXG4gICAgJ3BhdGgnLFxuICAgIHtcbiAgICAgIGQ6ICdNMTUuMzkgNC4zOWExIDEgMCAwIDAgMS42OC0uNDc0IDIuNSAyLjUgMCAxIDEgMy4wMTQgMy4wMTUgMSAxIDAgMCAwLS40NzQgMS42OGwxLjY4MyAxLjY4MmEyLjQxNCAyLjQxNCAwIDAgMSAwIDMuNDE0TDE5LjYxIDE1LjM5YTEgMSAwIDAgMS0xLjY4LS40NzQgMi41IDIuNSAwIDEgMC0zLjAxNCAzLjAxNSAxIDEgMCAwIDEgLjQ3NCAxLjY4bC0xLjY4MyAxLjY4MmEyLjQxNCAyLjQxNCAwIDAgMS0zLjQxNCAwTDguNjEgMTkuNjFhMSAxIDAgMCAwLTEuNjguNDc0IDIuNSAyLjUgMCAxIDEtMy4wMTQtMy4wMTUgMSAxIDAgMCAwIC40NzQtMS42OGwtMS42ODMtMS42ODJhMi40MTQgMi40MTQgMCAwIDEgMC0zLjQxNEw0LjM5IDguNjFhMSAxIDAgMCAxIDEuNjguNDc0IDIuNSAyLjUgMCAxIDAgMy4wMTQtMy4wMTUgMSAxIDAgMCAxLS40NzQtMS42OGwxLjY4My0xLjY4MmEyLjQxNCAyLjQxNCAwIDAgMSAzLjQxNCAweicsXG4gICAgICBrZXk6ICd3NDZkcjUnLFxuICAgIH0sXG4gIF0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgUHV6emxlXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NVFV1TXprZ05DNHpPV0V4SURFZ01DQXdJREFnTVM0Mk9DMHVORGMwSURJdU5TQXlMalVnTUNBeElERWdNeTR3TVRRZ015NHdNVFVnTVNBeElEQWdNQ0F3TFM0ME56UWdNUzQyT0d3eExqWTRNeUF4TGpZNE1tRXlMalF4TkNBeUxqUXhOQ0F3SURBZ01TQXdJRE11TkRFMFRERTVMall4SURFMUxqTTVZVEVnTVNBd0lEQWdNUzB4TGpZNExTNDBOelFnTWk0MUlESXVOU0F3SURFZ01DMHpMakF4TkNBekxqQXhOU0F4SURFZ01DQXdJREVnTGpRM05DQXhMalk0YkMweExqWTRNeUF4TGpZNE1tRXlMalF4TkNBeUxqUXhOQ0F3SURBZ01TMHpMalF4TkNBd1REZ3VOakVnTVRrdU5qRmhNU0F4SURBZ01DQXdMVEV1TmpndU5EYzBJREl1TlNBeUxqVWdNQ0F4SURFdE15NHdNVFF0TXk0d01UVWdNU0F4SURBZ01DQXdJQzQwTnpRdE1TNDJPR3d0TVM0Mk9ETXRNUzQyT0RKaE1pNDBNVFFnTWk0ME1UUWdNQ0F3SURFZ01DMHpMalF4TkV3MExqTTVJRGd1TmpGaE1TQXhJREFnTUNBeElERXVOamd1TkRjMElESXVOU0F5TGpVZ01DQXhJREFnTXk0d01UUXRNeTR3TVRVZ01TQXhJREFnTUNBeExTNDBOelF0TVM0Mk9Hd3hMalk0TXkweExqWTRNbUV5TGpReE5DQXlMalF4TkNBd0lEQWdNU0F6TGpReE5DQXdlaUlnTHo0S1BDOXpkbWMrQ2c9PSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvcHV6emxlXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgUHV6emxlID0gY3JlYXRlTHVjaWRlSWNvbigncHV6emxlJywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IFB1enpsZTtcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgW1xuICAgICdwYXRoJyxcbiAgICB7XG4gICAgICBkOiAnTTIuNSAxNi44OGExIDEgMCAwIDEtLjMyLTEuNDNsOS0xMy4wMmExIDEgMCAwIDEgMS42NCAwbDkgMTMuMDFhMSAxIDAgMCAxLS4zMiAxLjQ0bC04LjUxIDQuODZhMiAyIDAgMCAxLTEuOTggMFonLFxuICAgICAga2V5OiAnYWVueHMwJyxcbiAgICB9LFxuICBdLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTIgMnYyMCcsIGtleTogJ3Q2enAzbScgfV0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgUHlyYW1pZFxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTWk0MUlERTJMamc0WVRFZ01TQXdJREFnTVMwdU16SXRNUzQwTTJ3NUxURXpMakF5WVRFZ01TQXdJREFnTVNBeExqWTBJREJzT1NBeE15NHdNV0V4SURFZ01DQXdJREV0TGpNeUlERXVORFJzTFRndU5URWdOQzQ0Tm1FeUlESWdNQ0F3SURFdE1TNDVPQ0F3V2lJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTVRJZ01uWXlNQ0lnTHo0S1BDOXpkbWMrQ2c9PSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvcHlyYW1pZFxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IFB5cmFtaWQgPSBjcmVhdGVMdWNpZGVJY29uKCdweXJhbWlkJywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IFB5cmFtaWQ7XG4iLCJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbXG4gIFsncmVjdCcsIHsgd2lkdGg6ICc1JywgaGVpZ2h0OiAnNScsIHg6ICczJywgeTogJzMnLCByeDogJzEnLCBrZXk6ICcxdHU1ZmonIH1dLFxuICBbJ3JlY3QnLCB7IHdpZHRoOiAnNScsIGhlaWdodDogJzUnLCB4OiAnMTYnLCB5OiAnMycsIHJ4OiAnMScsIGtleTogJzF2OHI0cScgfV0sXG4gIFsncmVjdCcsIHsgd2lkdGg6ICc1JywgaGVpZ2h0OiAnNScsIHg6ICczJywgeTogJzE2Jywgcng6ICcxJywga2V5OiAnMXgwM2pnJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTIxIDE2aC0zYTIgMiAwIDAgMC0yIDJ2MycsIGtleTogJzE3N2dxaCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00yMSAyMXYuMDEnLCBrZXk6ICdlbnRzMzInIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTIgN3YzYTIgMiAwIDAgMS0yIDJINycsIGtleTogJzhjcmwyYycgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00zIDEyaC4wMScsIGtleTogJ25sejIzaycgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xMiAzaC4wMScsIGtleTogJ24zNnRvZycgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xMiAxNnYuMDEnLCBrZXk6ICcxMzNtaG0nIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTYgMTJoMScsIGtleTogJzFzbHpiYScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00yMSAxMnYuMDEnLCBrZXk6ICcxbHd0azknIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTIgMjF2LTEnLCBrZXk6ICcxODgwYW4nIH1dLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIFFyQ29kZVxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y21WamRDQjNhV1IwYUQwaU5TSWdhR1ZwWjJoMFBTSTFJaUI0UFNJeklpQjVQU0l6SWlCeWVEMGlNU0lnTHo0S0lDQThjbVZqZENCM2FXUjBhRDBpTlNJZ2FHVnBaMmgwUFNJMUlpQjRQU0l4TmlJZ2VUMGlNeUlnY25nOUlqRWlJQzgrQ2lBZ1BISmxZM1FnZDJsa2RHZzlJalVpSUdobGFXZG9kRDBpTlNJZ2VEMGlNeUlnZVQwaU1UWWlJSEo0UFNJeElpQXZQZ29nSUR4d1lYUm9JR1E5SWsweU1TQXhObWd0TTJFeUlESWdNQ0F3SURBdE1pQXlkak1pSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVEl4SURJeGRpNHdNU0lnTHo0S0lDQThjR0YwYUNCa1BTSk5NVElnTjNZellUSWdNaUF3SURBZ01TMHlJREpJTnlJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTXlBeE1tZ3VNREVpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVEV5SUROb0xqQXhJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHhNaUF4Tm5ZdU1ERWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRURTJJREV5YURFaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRJeElERXlkaTR3TVNJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTVRJZ01qRjJMVEVpSUM4K0Nqd3ZjM1puUGdvPSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvcXItY29kZVxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IFFyQ29kZSA9IGNyZWF0ZUx1Y2lkZUljb24oJ3FyLWNvZGUnLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgUXJDb2RlO1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbXG4gICAgJ3BhdGgnLFxuICAgIHtcbiAgICAgIGQ6ICdNMTYgM2EyIDIgMCAwIDAtMiAydjZhMiAyIDAgMCAwIDIgMiAxIDEgMCAwIDEgMSAxdjFhMiAyIDAgMCAxLTIgMiAxIDEgMCAwIDAtMSAxdjJhMSAxIDAgMCAwIDEgMSA2IDYgMCAwIDAgNi02VjVhMiAyIDAgMCAwLTItMnonLFxuICAgICAga2V5OiAncmliN3EwJyxcbiAgICB9LFxuICBdLFxuICBbXG4gICAgJ3BhdGgnLFxuICAgIHtcbiAgICAgIGQ6ICdNNSAzYTIgMiAwIDAgMC0yIDJ2NmEyIDIgMCAwIDAgMiAyIDEgMSAwIDAgMSAxIDF2MWEyIDIgMCAwIDEtMiAyIDEgMSAwIDAgMC0xIDF2MmExIDEgMCAwIDAgMSAxIDYgNiAwIDAgMCA2LTZWNWEyIDIgMCAwIDAtMi0yeicsXG4gICAgICBrZXk6ICcxeW1rcmQnLFxuICAgIH0sXG4gIF0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgUXVvdGVcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1UWWdNMkV5SURJZ01DQXdJREF0TWlBeWRqWmhNaUF5SURBZ01DQXdJRElnTWlBeElERWdNQ0F3SURFZ01TQXhkakZoTWlBeUlEQWdNQ0F4TFRJZ01pQXhJREVnTUNBd0lEQXRNU0F4ZGpKaE1TQXhJREFnTUNBd0lERWdNU0EySURZZ01DQXdJREFnTmkwMlZqVmhNaUF5SURBZ01DQXdMVEl0TW5vaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRVZ00yRXlJRElnTUNBd0lEQXRNaUF5ZGpaaE1pQXlJREFnTUNBd0lESWdNaUF4SURFZ01DQXdJREVnTVNBeGRqRmhNaUF5SURBZ01DQXhMVElnTWlBeElERWdNQ0F3SURBdE1TQXhkakpoTVNBeElEQWdNQ0F3SURFZ01TQTJJRFlnTUNBd0lEQWdOaTAyVmpWaE1pQXlJREFnTUNBd0xUSXRNbm9pSUM4K0Nqd3ZjM1puUGdvPSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvcXVvdGVcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBRdW90ZSA9IGNyZWF0ZUx1Y2lkZUljb24oJ3F1b3RlJywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IFF1b3RlO1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdNMTMgMTZhMyAzIDAgMCAxIDIuMjQgNScsIGtleTogJzFlcGliNScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xOCAxMmguMDEnLCBrZXk6ICd5am5ldDYnIH1dLFxuICBbXG4gICAgJ3BhdGgnLFxuICAgIHtcbiAgICAgIGQ6ICdNMTggMjFoLThhNCA0IDAgMCAxLTQtNCA3IDcgMCAwIDEgNy03aC4yTDkuNiA2LjRhMSAxIDAgMSAxIDIuOC0yLjhMMTUuOCA3aC4yYzMuMyAwIDYgMi43IDYgNnYxYTIgMiAwIDAgMS0yIDJoLTFhMyAzIDAgMCAwLTMgMycsXG4gICAgICBrZXk6ICd1ZTlvenUnLFxuICAgIH0sXG4gIF0sXG4gIFsncGF0aCcsIHsgZDogJ00yMCA4LjU0VjRhMiAyIDAgMSAwLTQgMHYzJywga2V5OiAnNDlpcWw4JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTcuNjEyIDEyLjUyNGEzIDMgMCAxIDAtMS42IDQuMycsIGtleTogJzFlMzNpMCcgfV0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgUmFiYml0XG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NVE1nTVRaaE15QXpJREFnTUNBeElESXVNalFnTlNJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTVRnZ01USm9MakF4SWlBdlBnb2dJRHh3WVhSb0lHUTlJazB4T0NBeU1XZ3RPR0UwSURRZ01DQXdJREV0TkMwMElEY2dOeUF3SURBZ01TQTNMVGRvTGpKTU9TNDJJRFl1TkdFeElERWdNQ0F4SURFZ01pNDRMVEl1T0V3eE5TNDRJRGRvTGpKak15NHpJREFnTmlBeUxqY2dOaUEyZGpGaE1pQXlJREFnTUNBeExUSWdNbWd0TVdFeklETWdNQ0F3SURBdE15QXpJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHlNQ0E0TGpVMFZqUmhNaUF5SURBZ01TQXdMVFFnTUhZeklpQXZQZ29nSUR4d1lYUm9JR1E5SWswM0xqWXhNaUF4TWk0MU1qUmhNeUF6SURBZ01TQXdMVEV1TmlBMExqTWlJQzgrQ2p3dmMzWm5QZ289KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9yYWJiaXRcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBSYWJiaXQgPSBjcmVhdGVMdWNpZGVJY29uKCdyYWJiaXQnLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgUmFiYml0O1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdNMTkuMDcgNC45M0ExMCAxMCAwIDAgMCA2Ljk5IDMuMzQnLCBrZXk6ICd6M2R1NTEnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNNCA2aC4wMScsIGtleTogJ295cHptYScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00yLjI5IDkuNjJBMTAgMTAgMCAxIDAgMjEuMzEgOC4zNScsIGtleTogJ3F6enowJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTE2LjI0IDcuNzZBNiA2IDAgMSAwIDguMjMgMTYuNjcnLCBrZXk6ICcxeWplc2gnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTIgMThoLjAxJywga2V5OiAnbWh5Z3Z1JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTE3Ljk5IDExLjY2QTYgNiAwIDAgMSAxNS43NyAxNi42NycsIGtleTogJzF1Mnk5MScgfV0sXG4gIFsnY2lyY2xlJywgeyBjeDogJzEyJywgY3k6ICcxMicsIHI6ICcyJywga2V5OiAnMWM5cDc4JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnbTEzLjQxIDEwLjU5IDUuNjYtNS42NicsIGtleTogJ21ocTRrMCcgfV0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgUmFkYXJcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1Ua3VNRGNnTkM0NU0wRXhNQ0F4TUNBd0lEQWdNQ0EyTGprNUlETXVNelFpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVFFnTm1ndU1ERWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRUSXVNamtnT1M0Mk1rRXhNQ0F4TUNBd0lERWdNQ0F5TVM0ek1TQTRMak0xSWlBdlBnb2dJRHh3WVhSb0lHUTlJazB4Tmk0eU5DQTNMamMyUVRZZ05pQXdJREVnTUNBNExqSXpJREUyTGpZM0lpQXZQZ29nSUR4d1lYUm9JR1E5SWsweE1pQXhPR2d1TURFaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRFM0xqazVJREV4TGpZMlFUWWdOaUF3SURBZ01TQXhOUzQzTnlBeE5pNDJOeUlnTHo0S0lDQThZMmx5WTJ4bElHTjRQU0l4TWlJZ1kzazlJakV5SWlCeVBTSXlJaUF2UGdvZ0lEeHdZWFJvSUdROUltMHhNeTQwTVNBeE1DNDFPU0ExTGpZMkxUVXVOallpSUM4K0Nqd3ZjM1puUGdvPSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvcmFkYXJcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBSYWRhciA9IGNyZWF0ZUx1Y2lkZUljb24oJ3JhZGFyJywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IFJhZGFyO1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbXG4gICAgJ3BhdGgnLFxuICAgIHtcbiAgICAgIGQ6ICdNMyAxMmgzLjI4YTEgMSAwIDAgMSAuOTQ4LjY4NGwyLjI5OCA3LjkzNGEuNS41IDAgMCAwIC45Ni0uMDQ0TDEzLjgyIDQuNzcxQTEgMSAwIDAgMSAxNC43OTIgNEgyMScsXG4gICAgICBrZXk6ICcxbXFqOGknLFxuICAgIH0sXG4gIF0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgUmFkaWNhbFxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTXlBeE1tZ3pMakk0WVRFZ01TQXdJREFnTVNBdU9UUTRMalk0Tkd3eUxqSTVPQ0EzTGprek5HRXVOUzQxSURBZ01DQXdJQzQ1TmkwdU1EUTBUREV6TGpneUlEUXVOemN4UVRFZ01TQXdJREFnTVNBeE5DNDNPVElnTkVneU1TSWdMejRLUEM5emRtYytDZz09KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9yYWRpY2FsXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgUmFkaWNhbCA9IGNyZWF0ZUx1Y2lkZUljb24oJ3JhZGljYWwnLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgUmFkaWNhbDtcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTEyIDEyaC4wMScsIGtleTogJzFtcDNqYycgfV0sXG4gIFtcbiAgICAncGF0aCcsXG4gICAge1xuICAgICAgZDogJ00xNCAxNS40NjQxYTQgNCAwIDAgMS00IDBMNy41Mjc4NiAxOS43NDU5NyBBIDEgMSAwIDAgMCA3Ljk5MzAzIDIxLjE2MjExIDEwIDEwIDAgMCAwIDE2LjAwNjk3IDIxLjE2MjExIDEgMSAwIDAgMCAxNi40NzIxNCAxOS43NDU5N3onLFxuICAgICAga2V5OiAnMXk0bHpiJyxcbiAgICB9LFxuICBdLFxuICBbXG4gICAgJ3BhdGgnLFxuICAgIHtcbiAgICAgIGQ6ICdNMTYgMTJhNCA0IDAgMCAwLTItMy40NjRsMi40NzItNC4yODJhMSAxIDAgMCAxIDEuNDYtLjMwNSAxMCAxMCAwIDAgMSA0LjAwNiA2Ljk0QTEgMSAwIDAgMSAyMSAxMnonLFxuICAgICAga2V5OiAnMTYzZ2drJyxcbiAgICB9LFxuICBdLFxuICBbXG4gICAgJ3BhdGgnLFxuICAgIHtcbiAgICAgIGQ6ICdNOCAxMmE0IDQgMCAwIDEgMi0zLjQ2NEw3LjUyOCA0LjI1NGExIDEgMCAwIDAtMS40Ni0uMzA1IDEwIDEwIDAgMCAwLTQuMDA2IDYuOTRBMSAxIDAgMCAwIDMgMTJ6JyxcbiAgICAgIGtleTogJzFsOWkwYicsXG4gICAgfSxcbiAgXSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBSYWRpYXRpb25cbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1USWdNVEpvTGpBeElpQXZQZ29nSUR4d1lYUm9JR1E5SWsweE5DQXhOUzQwTmpReFlUUWdOQ0F3SURBZ01TMDBJREJNTnk0MU1qYzROaUF4T1M0M05EVTVOeUJCSURFZ01TQXdJREFnTUNBM0xqazVNekF6SURJeExqRTJNakV4SURFd0lERXdJREFnTUNBd0lERTJMakF3TmprM0lESXhMakUyTWpFeElERWdNU0F3SURBZ01DQXhOaTQwTnpJeE5DQXhPUzQzTkRVNU4zb2lJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRURTJJREV5WVRRZ05DQXdJREFnTUMweUxUTXVORFkwYkRJdU5EY3lMVFF1TWpneVlURWdNU0F3SURBZ01TQXhMalEyTFM0ek1EVWdNVEFnTVRBZ01DQXdJREVnTkM0d01EWWdOaTQ1TkVFeElERWdNQ0F3SURFZ01qRWdNVEo2SWlBdlBnb2dJRHh3WVhSb0lHUTlJazA0SURFeVlUUWdOQ0F3SURBZ01TQXlMVE11TkRZMFREY3VOVEk0SURRdU1qVTBZVEVnTVNBd0lEQWdNQzB4TGpRMkxTNHpNRFVnTVRBZ01UQWdNQ0F3SURBdE5DNHdNRFlnTmk0NU5FRXhJREVnTUNBd0lEQWdNeUF4TW5vaUlDOCtDand2YzNablBnbz0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL3JhZGlhdGlvblxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IFJhZGlhdGlvbiA9IGNyZWF0ZUx1Y2lkZUljb24oJ3JhZGlhdGlvbicsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBSYWRpYXRpb247XG4iLCJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ001IDE2djInLCBrZXk6ICdnNXFjdjUnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTkgMTZ2MicsIGtleTogJzFnYmFpbycgfV0sXG4gIFsncmVjdCcsIHsgd2lkdGg6ICcyMCcsIGhlaWdodDogJzgnLCB4OiAnMicsIHk6ICc4Jywgcng6ICcyJywga2V5OiAndmpzanVyJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTE4IDEyaC4wMScsIGtleTogJ3lqbmV0NicgfV0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgUmFkaW9SZWNlaXZlclxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTlNBeE5uWXlJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHhPU0F4Tm5ZeUlpQXZQZ29nSUR4eVpXTjBJSGRwWkhSb1BTSXlNQ0lnYUdWcFoyaDBQU0k0SWlCNFBTSXlJaUI1UFNJNElpQnllRDBpTWlJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTVRnZ01USm9MakF4SWlBdlBnbzhMM04yWno0SykgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvcmFkaW8tcmVjZWl2ZXJcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBSYWRpb1JlY2VpdmVyID0gY3JlYXRlTHVjaWRlSWNvbigncmFkaW8tcmVjZWl2ZXInLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgUmFkaW9SZWNlaXZlcjtcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTQuOSAxNi4xQzEgMTIuMiAxIDUuOCA0LjkgMS45Jywga2V5OiAnczBxeDF5JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTcuOCA0LjdhNi4xNCA2LjE0IDAgMCAwLS44IDcuNScsIGtleTogJzFpZG5rdycgfV0sXG4gIFsnY2lyY2xlJywgeyBjeDogJzEyJywgY3k6ICc5JywgcjogJzInLCBrZXk6ICcxMDkyd3YnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTYuMiA0LjhjMiAyIDIuMjYgNS4xMS44IDcuNDcnLCBrZXk6ICdvanJ1MnEnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTkuMSAxLjlhOS45NiA5Ljk2IDAgMCAxIDAgMTQuMScsIGtleTogJ3JoaTdmZycgfV0sXG4gIFsncGF0aCcsIHsgZDogJ005LjUgMThoNScsIGtleTogJ21meTNwZCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ204IDIyIDQtMTEgNCAxMScsIGtleTogJzI1eWZ0dScgfV0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgUmFkaW9Ub3dlclxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTkM0NUlERTJMakZETVNBeE1pNHlJREVnTlM0NElEUXVPU0F4TGpraUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRjdU9DQTBMamRoTmk0eE5DQTJMakUwSURBZ01DQXdMUzQ0SURjdU5TSWdMejRLSUNBOFkybHlZMnhsSUdONFBTSXhNaUlnWTNrOUlqa2lJSEk5SWpJaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRFMkxqSWdOQzQ0WXpJZ01pQXlMakkySURVdU1URXVPQ0EzTGpRM0lpQXZQZ29nSUR4d1lYUm9JR1E5SWsweE9TNHhJREV1T1dFNUxqazJJRGt1T1RZZ01DQXdJREVnTUNBeE5DNHhJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMDVMalVnTVRob05TSWdMejRLSUNBOGNHRjBhQ0JrUFNKdE9DQXlNaUEwTFRFeElEUWdNVEVpSUM4K0Nqd3ZjM1puUGdvPSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvcmFkaW8tdG93ZXJcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBSYWRpb1Rvd2VyID0gY3JlYXRlTHVjaWRlSWNvbigncmFkaW8tdG93ZXInLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgUmFkaW9Ub3dlcjtcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTIwLjM0IDE3LjUyYTEwIDEwIDAgMSAwLTIuODIgMi44MicsIGtleTogJ2Z5ZHlrdScgfV0sXG4gIFsnY2lyY2xlJywgeyBjeDogJzE5JywgY3k6ICcxOScsIHI6ICcyJywga2V5OiAnMTdmNWNnJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnbTEzLjQxIDEzLjQxIDQuMTggNC4xOCcsIGtleTogJzFncWJ3YycgfV0sXG4gIFsnY2lyY2xlJywgeyBjeDogJzEyJywgY3k6ICcxMicsIHI6ICcyJywga2V5OiAnMWM5cDc4JyB9XSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBSYWRpdXNcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1qQXVNelFnTVRjdU5USmhNVEFnTVRBZ01DQXhJREF0TWk0NE1pQXlMamd5SWlBdlBnb2dJRHhqYVhKamJHVWdZM2c5SWpFNUlpQmplVDBpTVRraUlISTlJaklpSUM4K0NpQWdQSEJoZEdnZ1pEMGliVEV6TGpReElERXpMalF4SURRdU1UZ2dOQzR4T0NJZ0x6NEtJQ0E4WTJseVkyeGxJR040UFNJeE1pSWdZM2s5SWpFeUlpQnlQU0l5SWlBdlBnbzhMM04yWno0SykgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvcmFkaXVzXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgUmFkaXVzID0gY3JlYXRlTHVjaWRlSWNvbigncmFkaXVzJywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IFJhZGl1cztcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTE2LjI0NyA3Ljc2MWE2IDYgMCAwIDEgMCA4LjQ3OCcsIGtleTogJzFmd2pzNScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xOS4wNzUgNC45MzNhMTAgMTAgMCAwIDEgMCAxNC4xMzQnLCBrZXk6ICdlaGR5djEnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNNC45MjUgMTkuMDY3YTEwIDEwIDAgMCAxIDAtMTQuMTM0Jywga2V5OiAnMXEyMmdpJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTcuNzUzIDE2LjIzOWE2IDYgMCAwIDEgMC04LjQ3OCcsIGtleTogJ3IycTdxbScgfV0sXG4gIFsnY2lyY2xlJywgeyBjeDogJzEyJywgY3k6ICcxMicsIHI6ICcyJywga2V5OiAnMWM5cDc4JyB9XSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBSYWRpb1xuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTVRZdU1qUTNJRGN1TnpZeFlUWWdOaUF3SURBZ01TQXdJRGd1TkRjNElpQXZQZ29nSUR4d1lYUm9JR1E5SWsweE9TNHdOelVnTkM0NU16TmhNVEFnTVRBZ01DQXdJREVnTUNBeE5DNHhNelFpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVFF1T1RJMUlERTVMakEyTjJFeE1DQXhNQ0F3SURBZ01TQXdMVEUwTGpFek5DSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk55NDNOVE1nTVRZdU1qTTVZVFlnTmlBd0lEQWdNU0F3TFRndU5EYzRJaUF2UGdvZ0lEeGphWEpqYkdVZ1kzZzlJakV5SWlCamVUMGlNVElpSUhJOUlqSWlJQzgrQ2p3dmMzWm5QZ289KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9yYWRpb1xuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IFJhZGlvID0gY3JlYXRlTHVjaWRlSWNvbigncmFkaW8nLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgUmFkaW87XG4iLCJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ001IDE1aDE0Jywga2V5OiAnbTB5ZXkzJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTUgOWgxNCcsIGtleTogJzd0c3ZvNicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ20xNCAyMC01LTUgNi02LTUtNScsIGtleTogJzFqbzQyaScgfV0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgUmFpbFN5bWJvbFxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTlNBeE5XZ3hOQ0lnTHo0S0lDQThjR0YwYUNCa1BTSk5OU0E1YURFMElpQXZQZ29nSUR4d1lYUm9JR1E5SW0weE5DQXlNQzAxTFRVZ05pMDJMVFV0TlNJZ0x6NEtQQzl6ZG1jK0NnPT0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL3JhaWwtc3ltYm9sXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgUmFpbFN5bWJvbCA9IGNyZWF0ZUx1Y2lkZUljb24oJ3JhaWwtc3ltYm9sJywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IFJhaWxTeW1ib2w7XG4iLCJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ00yMiAxN2ExMCAxMCAwIDAgMC0yMCAwJywga2V5OiAnb3plZ3YnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNNiAxN2E2IDYgMCAwIDEgMTIgMCcsIGtleTogJzVnaWZ0dycgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xMCAxN2EyIDIgMCAwIDEgNCAwJywga2V5OiAnZ25zaWtrJyB9XSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBSYWluYm93XG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NaklnTVRkaE1UQWdNVEFnTUNBd0lEQXRNakFnTUNJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTmlBeE4yRTJJRFlnTUNBd0lERWdNVElnTUNJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTVRBZ01UZGhNaUF5SURBZ01DQXhJRFFnTUNJZ0x6NEtQQzl6ZG1jK0NnPT0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL3JhaW5ib3dcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBSYWluYm93ID0gY3JlYXRlTHVjaWRlSWNvbigncmFpbmJvdycsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBSYWluYm93O1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdNMTMgMjJINGEyIDIgMCAwIDEgMC00aDEyJywga2V5OiAnYnQzZjIzJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTEzLjIzNiAxOGEzIDMgMCAwIDAtMi4yLTUnLCBrZXk6ICcxdGJ2bW8nIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTYgOWguMDEnLCBrZXk6ICcxYmRvNGUnIH1dLFxuICBbXG4gICAgJ3BhdGgnLFxuICAgIHtcbiAgICAgIGQ6ICdNMTYuODIgMy45NGEzIDMgMCAxIDEgMy4yMzcgNC44NjhsMS44MTUgMi41ODdhMS41IDEuNSAwIDAgMS0xLjUgMi4xbC0yLjg3Mi0uNDUzYTMgMyAwIDAgMC0zLjUgMycsXG4gICAgICBrZXk6ICc5Y2g3a24nLFxuICAgIH0sXG4gIF0sXG4gIFsncGF0aCcsIHsgZDogJ00xNyA0Ljk4OGEzIDMgMCAxIDAtNS4yIDIuMDUyQTcgNyAwIDAgMCA0IDE0LjAxNSA0IDQgMCAwIDAgOCAxOCcsIGtleTogJzNzN2U5aScgfV0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgUmF0XG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NVE1nTWpKSU5HRXlJRElnTUNBd0lERWdNQzAwYURFeUlpQXZQZ29nSUR4d1lYUm9JR1E5SWsweE15NHlNellnTVRoaE15QXpJREFnTUNBd0xUSXVNaTAxSWlBdlBnb2dJRHh3WVhSb0lHUTlJazB4TmlBNWFDNHdNU0lnTHo0S0lDQThjR0YwYUNCa1BTSk5NVFl1T0RJZ015NDVOR0V6SURNZ01DQXhJREVnTXk0eU16Y2dOQzQ0Tmpoc01TNDRNVFVnTWk0MU9EZGhNUzQxSURFdU5TQXdJREFnTVMweExqVWdNaTR4YkMweUxqZzNNaTB1TkRVellUTWdNeUF3SURBZ01DMHpMalVnTXlJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTVRjZ05DNDVPRGhoTXlBeklEQWdNU0F3TFRVdU1pQXlMakExTWtFM0lEY2dNQ0F3SURBZ05DQXhOQzR3TVRVZ05DQTBJREFnTUNBd0lEZ2dNVGdpSUM4K0Nqd3ZjM1puUGdvPSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvcmF0XG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgUmF0ID0gY3JlYXRlTHVjaWRlSWNvbigncmF0JywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IFJhdDtcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgWydyZWN0JywgeyB3aWR0aDogJzEyJywgaGVpZ2h0OiAnMjAnLCB4OiAnNicsIHk6ICcyJywgcng6ICcyJywga2V5OiAnMW94dGl1JyB9XSxcbiAgWydyZWN0JywgeyB3aWR0aDogJzIwJywgaGVpZ2h0OiAnMTInLCB4OiAnMicsIHk6ICc2Jywgcng6ICcyJywga2V5OiAnOWx1M2c2JyB9XSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBSYXRpb1xuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y21WamRDQjNhV1IwYUQwaU1USWlJR2hsYVdkb2REMGlNakFpSUhnOUlqWWlJSGs5SWpJaUlISjRQU0l5SWlBdlBnb2dJRHh5WldOMElIZHBaSFJvUFNJeU1DSWdhR1ZwWjJoMFBTSXhNaUlnZUQwaU1pSWdlVDBpTmlJZ2NuZzlJaklpSUM4K0Nqd3ZjM1puUGdvPSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvcmF0aW9cbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBSYXRpbyA9IGNyZWF0ZUx1Y2lkZUljb24oJ3JhdGlvJywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IFJhdGlvO1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbXG4gICAgJ3BhdGgnLFxuICAgIHsgZDogJ000IDJ2MjBsMi0xIDIgMSAyLTEgMiAxIDItMSAyIDEgMi0xIDIgMVYybC0yIDEtMi0xLTIgMS0yLTEtMiAxLTItMS0yIDFaJywga2V5OiAncTNhejZnJyB9LFxuICBdLFxuICBbJ3BhdGgnLCB7IGQ6ICdNOCAxMmg1Jywga2V5OiAnMWc2cWk4JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTE2IDkuNWE0IDQgMCAxIDAgMCA1LjInLCBrZXk6ICdiMnB4NHInIH1dLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIFJlY2VpcHRFdXJvXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5OQ0F5ZGpJd2JESXRNU0F5SURFZ01pMHhJRElnTVNBeUxURWdNaUF4SURJdE1TQXlJREZXTW13dE1pQXhMVEl0TVMweUlERXRNaTB4TFRJZ01TMHlMVEV0TWlBeFdpSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk9DQXhNbWcxSWlBdlBnb2dJRHh3WVhSb0lHUTlJazB4TmlBNUxqVmhOQ0EwSURBZ01TQXdJREFnTlM0eUlpQXZQZ284TDNOMlp6NEspIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL3JlY2VpcHQtZXVyb1xuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IFJlY2VpcHRFdXJvID0gY3JlYXRlTHVjaWRlSWNvbigncmVjZWlwdC1ldXJvJywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IFJlY2VpcHRFdXJvO1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbXG4gICAgJ3BhdGgnLFxuICAgIHsgZDogJ000IDJ2MjBsMi0xIDIgMSAyLTEgMiAxIDItMSAyIDEgMi0xIDIgMVYybC0yIDEtMi0xLTIgMS0yLTEtMiAxLTItMS0yIDFaJywga2V5OiAncTNhejZnJyB9LFxuICBdLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTIgNi41djExJywga2V5OiAnZWNmaGtmJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTE1IDkuNGE0IDQgMCAxIDAgMCA1LjInLCBrZXk6ICcxbWFrbWInIH1dLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIFJlY2VpcHRDZW50XG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5OQ0F5ZGpJd2JESXRNU0F5SURFZ01pMHhJRElnTVNBeUxURWdNaUF4SURJdE1TQXlJREZXTW13dE1pQXhMVEl0TVMweUlERXRNaTB4TFRJZ01TMHlMVEV0TWlBeFdpSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk1USWdOaTQxZGpFeElpQXZQZ29nSUR4d1lYUm9JR1E5SWsweE5TQTVMalJoTkNBMElEQWdNU0F3SURBZ05TNHlJaUF2UGdvOEwzTjJaejRLKSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9yZWNlaXB0LWNlbnRcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBSZWNlaXB0Q2VudCA9IGNyZWF0ZUx1Y2lkZUljb24oJ3JlY2VpcHQtY2VudCcsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBSZWNlaXB0Q2VudDtcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgW1xuICAgICdwYXRoJyxcbiAgICB7IGQ6ICdNNCAydjIwbDItMSAyIDEgMi0xIDIgMSAyLTEgMiAxIDItMSAyIDFWMmwtMiAxLTItMS0yIDEtMi0xLTIgMS0yLTEtMiAxWicsIGtleTogJ3EzYXo2ZycgfSxcbiAgXSxcbiAgWydwYXRoJywgeyBkOiAnTTggN2g4Jywga2V5OiAnaTg2ZHZzJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTEyIDE3LjUgOCAxNWgxYTQgNCAwIDAgMCAwLTgnLCBrZXk6ICdncnBrbDQnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNOCAxMWg4Jywga2V5OiAndndwejZuJyB9XSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBSZWNlaXB0SW5kaWFuUnVwZWVcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk5DQXlkakl3YkRJdE1TQXlJREVnTWkweElESWdNU0F5TFRFZ01pQXhJREl0TVNBeUlERldNbXd0TWlBeExUSXRNUzB5SURFdE1pMHhMVElnTVMweUxURXRNaUF4V2lJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOT0NBM2FEZ2lJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRURXlJREUzTGpVZ09DQXhOV2d4WVRRZ05DQXdJREFnTUNBd0xUZ2lJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRUZ2dNVEZvT0NJZ0x6NEtQQzl6ZG1jK0NnPT0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL3JlY2VpcHQtaW5kaWFuLXJ1cGVlXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgUmVjZWlwdEluZGlhblJ1cGVlID0gY3JlYXRlTHVjaWRlSWNvbigncmVjZWlwdC1pbmRpYW4tcnVwZWUnLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgUmVjZWlwdEluZGlhblJ1cGVlO1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbXG4gICAgJ3BhdGgnLFxuICAgIHsgZDogJ000IDJ2MjBsMi0xIDIgMSAyLTEgMiAxIDItMSAyIDEgMi0xIDIgMVYybC0yIDEtMi0xLTIgMS0yLTEtMiAxLTItMS0yIDFaJywga2V5OiAncTNhejZnJyB9LFxuICBdLFxuICBbJ3BhdGgnLCB7IGQ6ICdtMTIgMTAgMy0zJywga2V5OiAnMW1jMTJ3JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnbTkgNyAzIDN2Ny41Jywga2V5OiAnMzlpMHh2JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTkgMTFoNicsIGtleTogJzFmbGRtaScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ005IDE1aDYnLCBrZXk6ICdjY3R3bDAnIH1dLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIFJlY2VpcHRKYXBhbmVzZVllblxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTkNBeWRqSXdiREl0TVNBeUlERWdNaTB4SURJZ01TQXlMVEVnTWlBeElESXRNU0F5SURGV01td3RNaUF4TFRJdE1TMHlJREV0TWkweExUSWdNUzB5TFRFdE1pQXhXaUlnTHo0S0lDQThjR0YwYUNCa1BTSnRNVElnTVRBZ015MHpJaUF2UGdvZ0lEeHdZWFJvSUdROUltMDVJRGNnTXlBemRqY3VOU0lnTHo0S0lDQThjR0YwYUNCa1BTSk5PU0F4TVdnMklpQXZQZ29nSUR4d1lYUm9JR1E5SWswNUlERTFhRFlpSUM4K0Nqd3ZjM1puUGdvPSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvcmVjZWlwdC1qYXBhbmVzZS15ZW5cbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBSZWNlaXB0SmFwYW5lc2VZZW4gPSBjcmVhdGVMdWNpZGVJY29uKCdyZWNlaXB0LWphcGFuZXNlLXllbicsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBSZWNlaXB0SmFwYW5lc2VZZW47XG4iLCJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbXG4gIFtcbiAgICAncGF0aCcsXG4gICAgeyBkOiAnTTQgMnYyMGwyLTEgMiAxIDItMSAyIDEgMi0xIDIgMSAyLTEgMiAxVjJsLTIgMS0yLTEtMiAxLTItMS0yIDEtMi0xLTIgMVonLCBrZXk6ICdxM2F6NmcnIH0sXG4gIF0sXG4gIFsncGF0aCcsIHsgZDogJ004IDEzaDUnLCBrZXk6ICcxazl6OHcnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTAgMTdWOS41YTIuNSAyLjUgMCAwIDEgNSAwJywga2V5OiAnMWR6Z3AwJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTggMTdoNycsIGtleTogJzhtamRxdScgfV0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgUmVjZWlwdFBvdW5kU3RlcmxpbmdcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk5DQXlkakl3YkRJdE1TQXlJREVnTWkweElESWdNU0F5TFRFZ01pQXhJREl0TVNBeUlERldNbXd0TWlBeExUSXRNUzB5SURFdE1pMHhMVElnTVMweUxURXRNaUF4V2lJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOT0NBeE0yZzFJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHhNQ0F4TjFZNUxqVmhNaTQxSURJdU5TQXdJREFnTVNBMUlEQWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRUZ2dNVGRvTnlJZ0x6NEtQQzl6ZG1jK0NnPT0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL3JlY2VpcHQtcG91bmQtc3RlcmxpbmdcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBSZWNlaXB0UG91bmRTdGVybGluZyA9IGNyZWF0ZUx1Y2lkZUljb24oJ3JlY2VpcHQtcG91bmQtc3RlcmxpbmcnLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgUmVjZWlwdFBvdW5kU3Rlcmxpbmc7XG4iLCJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbXG4gIFtcbiAgICAncGF0aCcsXG4gICAgeyBkOiAnTTQgMnYyMGwyLTEgMiAxIDItMSAyIDEgMi0xIDIgMSAyLTEgMiAxVjJsLTIgMS0yLTEtMiAxLTItMS0yIDEtMi0xLTIgMVonLCBrZXk6ICdxM2F6NmcnIH0sXG4gIF0sXG4gIFsncGF0aCcsIHsgZDogJ004IDE1aDUnLCBrZXk6ICd2eGc1N2EnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNOCAxMWg1YTIgMiAwIDEgMCAwLTRoLTN2MTAnLCBrZXk6ICcxdXNpNXUnIH1dLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIFJlY2VpcHRSdXNzaWFuUnVibGVcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk5DQXlkakl3YkRJdE1TQXlJREVnTWkweElESWdNU0F5TFRFZ01pQXhJREl0TVNBeUlERldNbXd0TWlBeExUSXRNUzB5SURFdE1pMHhMVElnTVMweUxURXRNaUF4V2lJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOT0NBeE5XZzFJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMDRJREV4YURWaE1pQXlJREFnTVNBd0lEQXROR2d0TTNZeE1DSWdMejRLUEM5emRtYytDZz09KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9yZWNlaXB0LXJ1c3NpYW4tcnVibGVcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBSZWNlaXB0UnVzc2lhblJ1YmxlID0gY3JlYXRlTHVjaWRlSWNvbigncmVjZWlwdC1ydXNzaWFuLXJ1YmxlJywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IFJlY2VpcHRSdXNzaWFuUnVibGU7XG4iLCJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbXG4gIFtcbiAgICAncGF0aCcsXG4gICAgeyBkOiAnTTQgMnYyMGwyLTEgMiAxIDItMSAyIDEgMi0xIDIgMSAyLTEgMiAxVjJsLTIgMS0yLTEtMiAxLTItMS0yIDEtMi0xLTIgMVonLCBrZXk6ICdxM2F6NmcnIH0sXG4gIF0sXG4gIFsncGF0aCcsIHsgZDogJ00xMCAxN1Y3aDUnLCBrZXk6ICdrN2pxMTgnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTAgMTFoNCcsIGtleTogJzFpMG1rYScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ004IDE1aDUnLCBrZXk6ICd2eGc1N2EnIH1dLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIFJlY2VpcHRTd2lzc0ZyYW5jXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5OQ0F5ZGpJd2JESXRNU0F5SURFZ01pMHhJRElnTVNBeUxURWdNaUF4SURJdE1TQXlJREZXTW13dE1pQXhMVEl0TVMweUlERXRNaTB4TFRJZ01TMHlMVEV0TWlBeFdpSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk1UQWdNVGRXTjJnMUlpQXZQZ29nSUR4d1lYUm9JR1E5SWsweE1DQXhNV2cwSWlBdlBnb2dJRHh3WVhSb0lHUTlJazA0SURFMWFEVWlJQzgrQ2p3dmMzWm5QZ289KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9yZWNlaXB0LXN3aXNzLWZyYW5jXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgUmVjZWlwdFN3aXNzRnJhbmMgPSBjcmVhdGVMdWNpZGVJY29uKCdyZWNlaXB0LXN3aXNzLWZyYW5jJywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IFJlY2VpcHRTd2lzc0ZyYW5jO1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbXG4gICAgJ3BhdGgnLFxuICAgIHsgZDogJ000IDJ2MjBsMi0xIDIgMSAyLTEgMiAxIDItMSAyIDEgMi0xIDIgMVYybC0yIDEtMi0xLTIgMS0yLTEtMiAxLTItMS0yIDFaJywga2V5OiAncTNhejZnJyB9LFxuICBdLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTQgOEg4Jywga2V5OiAnMWwzeGZzJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTE2IDEySDgnLCBrZXk6ICcxZnI1aDAnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTMgMTZIOCcsIGtleTogJ3dzbG40eScgfV0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgUmVjZWlwdFRleHRcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk5DQXlkakl3YkRJdE1TQXlJREVnTWkweElESWdNU0F5TFRFZ01pQXhJREl0TVNBeUlERldNbXd0TWlBeExUSXRNUzB5SURFdE1pMHhMVElnTVMweUxURXRNaUF4V2lJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTVRRZ09FZzRJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHhOaUF4TWtnNElpQXZQZ29nSUR4d1lYUm9JR1E5SWsweE15QXhOa2c0SWlBdlBnbzhMM04yWno0SykgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvcmVjZWlwdC10ZXh0XG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgUmVjZWlwdFRleHQgPSBjcmVhdGVMdWNpZGVJY29uKCdyZWNlaXB0LXRleHQnLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgUmVjZWlwdFRleHQ7XG4iLCJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ00xNCA0djE2SDNhMSAxIDAgMCAxLTEtMVY1YTEgMSAwIDAgMSAxLTF6Jywga2V5OiAnMW01bjdxJyB9XSxcbiAgWydjaXJjbGUnLCB7IGN4OiAnMTQnLCBjeTogJzEyJywgcjogJzgnLCBrZXk6ICcxcGFnNmsnIH1dLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIFJlY3RhbmdsZUNpcmNsZVxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTVRRZ05IWXhOa2d6WVRFZ01TQXdJREFnTVMweExURldOV0V4SURFZ01DQXdJREVnTVMweGVpSWdMejRLSUNBOFkybHlZMnhsSUdONFBTSXhOQ0lnWTNrOUlqRXlJaUJ5UFNJNElpQXZQZ284TDNOMlp6NEspIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL3JlY3RhbmdsZS1jaXJjbGVcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBSZWN0YW5nbGVDaXJjbGUgPSBjcmVhdGVMdWNpZGVJY29uKCdyZWN0YW5nbGUtY2lyY2xlJywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IFJlY3RhbmdsZUNpcmNsZTtcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgW1xuICAgICdwYXRoJyxcbiAgICB7IGQ6ICdNNCAydjIwbDItMSAyIDEgMi0xIDIgMSAyLTEgMiAxIDItMSAyIDFWMmwtMiAxLTItMS0yIDEtMi0xLTIgMS0yLTEtMiAxWicsIGtleTogJ3EzYXo2ZycgfSxcbiAgXSxcbiAgWydwYXRoJywgeyBkOiAnTTE2IDhoLTZhMiAyIDAgMSAwIDAgNGg0YTIgMiAwIDEgMSAwIDRIOCcsIGtleTogJzFoNHBldCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xMiAxNy41di0xMScsIGtleTogJzFqYzFueScgfV0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgUmVjZWlwdFxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTkNBeWRqSXdiREl0TVNBeUlERWdNaTB4SURJZ01TQXlMVEVnTWlBeElESXRNU0F5SURGV01td3RNaUF4TFRJdE1TMHlJREV0TWkweExUSWdNUzB5TFRFdE1pQXhXaUlnTHo0S0lDQThjR0YwYUNCa1BTSk5NVFlnT0dndE5tRXlJRElnTUNBeElEQWdNQ0EwYURSaE1pQXlJREFnTVNBeElEQWdORWc0SWlBdlBnb2dJRHh3WVhSb0lHUTlJazB4TWlBeE55NDFkaTB4TVNJZ0x6NEtQQzl6ZG1jK0NnPT0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL3JlY2VpcHRcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBSZWNlaXB0ID0gY3JlYXRlTHVjaWRlSWNvbigncmVjZWlwdCcsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBSZWNlaXB0O1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbJ3JlY3QnLCB7IHdpZHRoOiAnMjAnLCBoZWlnaHQ6ICcxMicsIHg6ICcyJywgeTogJzYnLCByeDogJzInLCBrZXk6ICc5bHUzZzYnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTIgMTJoLjAxJywga2V5OiAnMW1wM2pjJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTE3IDEyaC4wMScsIGtleTogJzFtMGI2dCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ003IDEyaC4wMScsIGtleTogJ2VxZGRkMCcgfV0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgUmVjdGFuZ2xlRWxsaXBzaXNcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNtVmpkQ0IzYVdSMGFEMGlNakFpSUdobGFXZG9kRDBpTVRJaUlIZzlJaklpSUhrOUlqWWlJSEo0UFNJeUlpQXZQZ29nSUR4d1lYUm9JR1E5SWsweE1pQXhNbWd1TURFaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRFM0lERXlhQzR3TVNJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTnlBeE1tZ3VNREVpSUM4K0Nqd3ZjM1puUGdvPSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvcmVjdGFuZ2xlLWVsbGlwc2lzXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgUmVjdGFuZ2xlRWxsaXBzaXMgPSBjcmVhdGVMdWNpZGVJY29uKCdyZWN0YW5nbGUtZWxsaXBzaXMnLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgUmVjdGFuZ2xlRWxsaXBzaXM7XG4iLCJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbXG4gIFtcbiAgICAncGF0aCcsXG4gICAge1xuICAgICAgZDogJ00yMCA2YTIgMiAwIDAgMSAyIDJ2OGEyIDIgMCAwIDEtMiAyaC00YTIgMiAwIDAgMS0xLjYtLjhsLTEuNi0yLjEzYTEgMSAwIDAgMC0xLjYgMEw5LjYgMTcuMkEyIDIgMCAwIDEgOCAxOEg0YTIgMiAwIDAgMS0yLTJWOGEyIDIgMCAwIDEgMi0yeicsXG4gICAgICBrZXk6ICdkNXkxZicsXG4gICAgfSxcbiAgXSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBSZWN0YW5nbGVHb2dnbGVzXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NakFnTm1FeUlESWdNQ0F3SURFZ01pQXlkamhoTWlBeUlEQWdNQ0F4TFRJZ01tZ3ROR0V5SURJZ01DQXdJREV0TVM0MkxTNDRiQzB4TGpZdE1pNHhNMkV4SURFZ01DQXdJREF0TVM0MklEQk1PUzQySURFM0xqSkJNaUF5SURBZ01DQXhJRGdnTVRoSU5HRXlJRElnTUNBd0lERXRNaTB5VmpoaE1pQXlJREFnTUNBeElESXRNbm9pSUM4K0Nqd3ZjM1puUGdvPSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvcmVjdGFuZ2xlLWdvZ2dsZXNcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBSZWN0YW5nbGVHb2dnbGVzID0gY3JlYXRlTHVjaWRlSWNvbigncmVjdGFuZ2xlLWdvZ2dsZXMnLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgUmVjdGFuZ2xlR29nZ2xlcztcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgWydyZWN0JywgeyB3aWR0aDogJzIwJywgaGVpZ2h0OiAnMTInLCB4OiAnMicsIHk6ICc2Jywgcng6ICcyJywga2V5OiAnOWx1M2c2JyB9XSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBSZWN0YW5nbGVIb3Jpem9udGFsXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjbVZqZENCM2FXUjBhRDBpTWpBaUlHaGxhV2RvZEQwaU1USWlJSGc5SWpJaUlIazlJallpSUhKNFBTSXlJaUF2UGdvOEwzTjJaejRLKSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9yZWN0YW5nbGUtaG9yaXpvbnRhbFxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IFJlY3RhbmdsZUhvcml6b250YWwgPSBjcmVhdGVMdWNpZGVJY29uKCdyZWN0YW5nbGUtaG9yaXpvbnRhbCcsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBSZWN0YW5nbGVIb3Jpem9udGFsO1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbXG4gICAgJ3BhdGgnLFxuICAgIHtcbiAgICAgIGQ6ICdNNyAxOUg0LjgxNWExLjgzIDEuODMgMCAwIDEtMS41Ny0uODgxIDEuNzg1IDEuNzg1IDAgMCAxLS4wMDQtMS43ODRMNy4xOTYgOS41JyxcbiAgICAgIGtleTogJ3g2ejV4dScsXG4gICAgfSxcbiAgXSxcbiAgW1xuICAgICdwYXRoJyxcbiAgICB7XG4gICAgICBkOiAnTTExIDE5aDguMjAzYTEuODMgMS44MyAwIDAgMCAxLjU1Ni0uODkgMS43ODQgMS43ODQgMCAwIDAgMC0xLjc3NWwtMS4yMjYtMi4xMicsXG4gICAgICBrZXk6ICcxeDR6aDUnLFxuICAgIH0sXG4gIF0sXG4gIFsncGF0aCcsIHsgZDogJ20xNCAxNi0zIDMgMyAzJywga2V5OiAnZjZqeWV3JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTguMjkzIDEzLjU5NiA3LjE5NiA5LjUgMy4xIDEwLjU5OCcsIGtleTogJ3dmMW9iaCcgfV0sXG4gIFtcbiAgICAncGF0aCcsXG4gICAge1xuICAgICAgZDogJ205LjM0NCA1LjgxMSAxLjA5My0xLjg5MkExLjgzIDEuODMgMCAwIDEgMTEuOTg1IDNhMS43ODQgMS43ODQgMCAwIDEgMS41NDYuODg4bDMuOTQzIDYuODQzJyxcbiAgICAgIGtleTogJzl0enBncicsXG4gICAgfSxcbiAgXSxcbiAgWydwYXRoJywgeyBkOiAnbTEzLjM3OCA5LjYzMyA0LjA5NiAxLjA5OCAxLjA5Ny00LjA5NicsIGtleTogJzFvZTgzZycgfV0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgUmVjeWNsZVxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTnlBeE9VZzBMamd4TldFeExqZ3pJREV1T0RNZ01DQXdJREV0TVM0MU55MHVPRGd4SURFdU56ZzFJREV1TnpnMUlEQWdNQ0F4TFM0d01EUXRNUzQzT0RSTU55NHhPVFlnT1M0MUlpQXZQZ29nSUR4d1lYUm9JR1E5SWsweE1TQXhPV2c0TGpJd00yRXhMamd6SURFdU9ETWdNQ0F3SURBZ01TNDFOVFl0TGpnNUlERXVOemcwSURFdU56ZzBJREFnTUNBd0lEQXRNUzQzTnpWc0xURXVNakkyTFRJdU1USWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaWJURTBJREUyTFRNZ015QXpJRE1pSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVGd1TWpreklERXpMalU1TmlBM0xqRTVOaUE1TGpVZ015NHhJREV3TGpVNU9DSWdMejRLSUNBOGNHRjBhQ0JrUFNKdE9TNHpORFFnTlM0NE1URWdNUzR3T1RNdE1TNDRPVEpCTVM0NE15QXhMamd6SURBZ01DQXhJREV4TGprNE5TQXpZVEV1TnpnMElERXVOemcwSURBZ01DQXhJREV1TlRRMkxqZzRPR3d6TGprME15QTJMamcwTXlJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0p0TVRNdU16YzRJRGt1TmpNeklEUXVNRGsySURFdU1EazRJREV1TURrM0xUUXVNRGsySWlBdlBnbzhMM04yWno0SykgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvcmVjeWNsZVxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IFJlY3ljbGUgPSBjcmVhdGVMdWNpZGVJY29uKCdyZWN5Y2xlJywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IFJlY3ljbGU7XG4iLCJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbXG4gIFsncmVjdCcsIHsgd2lkdGg6ICcxMicsIGhlaWdodDogJzIwJywgeDogJzYnLCB5OiAnMicsIHJ4OiAnMicsIGtleTogJzFveHRpdScgfV0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgUmVjdGFuZ2xlVmVydGljYWxcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNtVmpkQ0IzYVdSMGFEMGlNVElpSUdobGFXZG9kRDBpTWpBaUlIZzlJallpSUhrOUlqSWlJSEo0UFNJeUlpQXZQZ284TDNOMlp6NEspIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL3JlY3RhbmdsZS12ZXJ0aWNhbFxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IFJlY3RhbmdsZVZlcnRpY2FsID0gY3JlYXRlTHVjaWRlSWNvbigncmVjdGFuZ2xlLXZlcnRpY2FsJywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IFJlY3RhbmdsZVZlcnRpY2FsO1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbJ2NpcmNsZScsIHsgY3g6ICcxMicsIGN5OiAnMTcnLCByOiAnMScsIGtleTogJzFpeG50eScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00yMSA3djZoLTYnLCBrZXk6ICczcHR1cjQnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMyAxN2E5IDkgMCAwIDEgOS05IDkgOSAwIDAgMSA2IDIuM2wzIDIuNycsIGtleTogJzFrZ2F3cicgfV0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgUmVkb0RvdFxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4WTJseVkyeGxJR040UFNJeE1pSWdZM2s5SWpFM0lpQnlQU0l4SWlBdlBnb2dJRHh3WVhSb0lHUTlJazB5TVNBM2RqWm9MVFlpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVE1nTVRkaE9TQTVJREFnTUNBeElEa3RPU0E1SURrZ01DQXdJREVnTmlBeUxqTnNNeUF5TGpjaUlDOCtDand2YzNablBnbz0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL3JlZG8tZG90XG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgUmVkb0RvdCA9IGNyZWF0ZUx1Y2lkZUljb24oJ3JlZG8tZG90JywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IFJlZG9Eb3Q7XG4iLCJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ20xNSAxNCA1LTUtNS01Jywga2V5OiAnMTJ2ZzFtJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTIwIDlIOS41QTUuNSA1LjUgMCAwIDAgNCAxNC41QTUuNSA1LjUgMCAwIDAgOS41IDIwSDEzJywga2V5OiAnNnVrbHphJyB9XSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBSZWRvMlxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0p0TVRVZ01UUWdOUzAxTFRVdE5TSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk1qQWdPVWc1TGpWQk5TNDFJRFV1TlNBd0lEQWdNQ0EwSURFMExqVkJOUzQxSURVdU5TQXdJREFnTUNBNUxqVWdNakJJTVRNaUlDOCtDand2YzNablBnbz0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL3JlZG8tMlxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IFJlZG8yID0gY3JlYXRlTHVjaWRlSWNvbigncmVkby0yJywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IFJlZG8yO1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdNMjEgN3Y2aC02Jywga2V5OiAnM3B0dXI0JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTMgMTdhOSA5IDAgMCAxIDktOSA5IDkgMCAwIDEgNiAyLjNsMyAyLjcnLCBrZXk6ICcxa2dhd3InIH1dLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIFJlZG9cbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1qRWdOM1kyYUMwMklpQXZQZ29nSUR4d1lYUm9JR1E5SWsweklERTNZVGtnT1NBd0lEQWdNU0E1TFRrZ09TQTVJREFnTUNBeElEWWdNaTR6YkRNZ01pNDNJaUF2UGdvOEwzTjJaejRLKSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9yZWRvXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgUmVkbyA9IGNyZWF0ZUx1Y2lkZUljb24oJ3JlZG8nLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgUmVkbztcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTMgMnY2aDYnLCBrZXk6ICcxOGxkd3cnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMjEgMTJBOSA5IDAgMCAwIDYgNS4zTDMgOCcsIGtleTogJzFwYnJxeicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00yMSAyMnYtNmgtNicsIGtleTogJ3VzZGZiZScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00zIDEyYTkgOSAwIDAgMCAxNSA2LjdsMy0yLjcnLCBrZXk6ICcxaG9zb2UnIH1dLFxuICBbJ2NpcmNsZScsIHsgY3g6ICcxMicsIGN5OiAnMTInLCByOiAnMScsIGtleTogJzQxaGlsZicgfV0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgUmVmcmVzaENjd0RvdFxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTXlBeWRqWm9OaUlnTHo0S0lDQThjR0YwYUNCa1BTSk5NakVnTVRKQk9TQTVJREFnTUNBd0lEWWdOUzR6VERNZ09DSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk1qRWdNakoyTFRab0xUWWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRUTWdNVEpoT1NBNUlEQWdNQ0F3SURFMUlEWXVOMnd6TFRJdU55SWdMejRLSUNBOFkybHlZMnhsSUdONFBTSXhNaUlnWTNrOUlqRXlJaUJ5UFNJeElpQXZQZ284TDNOMlp6NEspIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL3JlZnJlc2gtY2N3LWRvdFxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IFJlZnJlc2hDY3dEb3QgPSBjcmVhdGVMdWNpZGVJY29uKCdyZWZyZXNoLWNjdy1kb3QnLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgUmVmcmVzaENjd0RvdDtcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTIxIDEyYTkgOSAwIDAgMC05LTkgOS43NSA5Ljc1IDAgMCAwLTYuNzQgMi43NEwzIDgnLCBrZXk6ICcxNHN4bmUnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMyAzdjVoNScsIGtleTogJzF4aHE4YScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00zIDEyYTkgOSAwIDAgMCA5IDkgOS43NSA5Ljc1IDAgMCAwIDYuNzQtMi43NEwyMSAxNicsIGtleTogJzFobGJzYicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xNiAxNmg1djUnLCBrZXk6ICdjY3dpaDUnIH1dLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIFJlZnJlc2hDY3dcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1qRWdNVEpoT1NBNUlEQWdNQ0F3TFRrdE9TQTVMamMxSURrdU56VWdNQ0F3SURBdE5pNDNOQ0F5TGpjMFRETWdPQ0lnTHo0S0lDQThjR0YwYUNCa1BTSk5NeUF6ZGpWb05TSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk15QXhNbUU1SURrZ01DQXdJREFnT1NBNUlEa3VOelVnT1M0M05TQXdJREFnTUNBMkxqYzBMVEl1TnpSTU1qRWdNVFlpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVEUySURFMmFEVjJOU0lnTHo0S1BDOXpkbWMrQ2c9PSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvcmVmcmVzaC1jY3dcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBSZWZyZXNoQ2N3ID0gY3JlYXRlTHVjaWRlSWNvbigncmVmcmVzaC1jY3cnLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgUmVmcmVzaENjdztcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTIxIDhMMTguNzQgNS43NEE5Ljc1IDkuNzUgMCAwIDAgMTIgM0MxMSAzIDEwLjAzIDMuMTYgOS4xMyAzLjQ3Jywga2V5OiAnMWtyZjZoJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTggMTZIM3Y1Jywga2V5OiAnMWN2Njc4JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTMgMTJDMyA5LjUxIDQgNy4yNiA1LjY0IDUuNjQnLCBrZXk6ICdydXZvY3QnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdtMyAxNiAyLjI2IDIuMjZBOS43NSA5Ljc1IDAgMCAwIDEyIDIxYzIuNDkgMCA0Ljc0LTEgNi4zNi0yLjY0Jywga2V5OiAnMTlxMTMwJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTIxIDEyYzAgMS0uMTYgMS45Ny0uNDcgMi44NycsIGtleTogJzR3OGVtcicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00yMSAzdjVoLTUnLCBrZXk6ICcxcTd0bzAnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMjIgMjIgMiAyJywga2V5OiAnMXI4dG45JyB9XSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBSZWZyZXNoQ3dPZmZcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1qRWdPRXd4T0M0M05DQTFMamMwUVRrdU56VWdPUzQzTlNBd0lEQWdNQ0F4TWlBelF6RXhJRE1nTVRBdU1ETWdNeTR4TmlBNUxqRXpJRE11TkRjaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRnZ01UWklNM1kxSWlBdlBnb2dJRHh3WVhSb0lHUTlJazB6SURFeVF6TWdPUzQxTVNBMElEY3VNallnTlM0Mk5DQTFMalkwSWlBdlBnb2dJRHh3WVhSb0lHUTlJbTB6SURFMklESXVNallnTWk0eU5rRTVMamMxSURrdU56VWdNQ0F3SURBZ01USWdNakZqTWk0ME9TQXdJRFF1TnpRdE1TQTJMak0yTFRJdU5qUWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRUSXhJREV5WXpBZ01TMHVNVFlnTVM0NU55MHVORGNnTWk0NE55SWdMejRLSUNBOGNHRjBhQ0JrUFNKTk1qRWdNM1kxYUMwMUlpQXZQZ29nSUR4d1lYUm9JR1E5SWsweU1pQXlNaUF5SURJaUlDOCtDand2YzNablBnbz0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL3JlZnJlc2gtY3ctb2ZmXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgUmVmcmVzaEN3T2ZmID0gY3JlYXRlTHVjaWRlSWNvbigncmVmcmVzaC1jdy1vZmYnLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgUmVmcmVzaEN3T2ZmO1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdNMyAxMmE5IDkgMCAwIDEgOS05IDkuNzUgOS43NSAwIDAgMSA2Ljc0IDIuNzRMMjEgOCcsIGtleTogJ3Y5aDV2YycgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00yMSAzdjVoLTUnLCBrZXk6ICcxcTd0bzAnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMjEgMTJhOSA5IDAgMCAxLTkgOSA5Ljc1IDkuNzUgMCAwIDEtNi43NC0yLjc0TDMgMTYnLCBrZXk6ICczdWlmbDMnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNOCAxNkgzdjUnLCBrZXk6ICcxY3Y2NzgnIH1dLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIFJlZnJlc2hDd1xuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTXlBeE1tRTVJRGtnTUNBd0lERWdPUzA1SURrdU56VWdPUzQzTlNBd0lEQWdNU0EyTGpjMElESXVOelJNTWpFZ09DSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk1qRWdNM1kxYUMwMUlpQXZQZ29nSUR4d1lYUm9JR1E5SWsweU1TQXhNbUU1SURrZ01DQXdJREV0T1NBNUlEa3VOelVnT1M0M05TQXdJREFnTVMwMkxqYzBMVEl1TnpSTU15QXhOaUlnTHo0S0lDQThjR0YwYUNCa1BTSk5PQ0F4TmtnemRqVWlJQzgrQ2p3dmMzWm5QZ289KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9yZWZyZXNoLWN3XG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgUmVmcmVzaEN3ID0gY3JlYXRlTHVjaWRlSWNvbigncmVmcmVzaC1jdycsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBSZWZyZXNoQ3c7XG4iLCJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbXG4gIFtcbiAgICAncGF0aCcsXG4gICAgeyBkOiAnTTUgNmE0IDQgMCAwIDEgNC00aDZhNCA0IDAgMCAxIDQgNHYxNGEyIDIgMCAwIDEtMiAySDdhMiAyIDAgMCAxLTItMlY2WicsIGtleTogJ2ZwcTExOCcgfSxcbiAgXSxcbiAgWydwYXRoJywgeyBkOiAnTTUgMTBoMTQnLCBrZXk6ICdlbHNiZnknIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTUgN3Y2Jywga2V5OiAnMW54MzB4JyB9XSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBSZWZyaWdlcmF0b3JcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk5TQTJZVFFnTkNBd0lEQWdNU0EwTFRSb05tRTBJRFFnTUNBd0lERWdOQ0EwZGpFMFlUSWdNaUF3SURBZ01TMHlJREpJTjJFeUlESWdNQ0F3SURFdE1pMHlWalphSWlBdlBnb2dJRHh3WVhSb0lHUTlJazAxSURFd2FERTBJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHhOU0EzZGpZaUlDOCtDand2YzNablBnbz0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL3JlZnJpZ2VyYXRvclxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IFJlZnJpZ2VyYXRvciA9IGNyZWF0ZUx1Y2lkZUljb24oJ3JlZnJpZ2VyYXRvcicsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBSZWZyaWdlcmF0b3I7XG4iLCJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ00xNyAzdjEwJywga2V5OiAnMTVmZ2VoJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnbTEyLjY3IDUuNSA4LjY2IDUnLCBrZXk6ICcxZ3BoZXEnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdtMTIuNjcgMTAuNSA4LjY2LTUnLCBrZXk6ICcxZGtmYTYnIH1dLFxuICBbXG4gICAgJ3BhdGgnLFxuICAgIHsgZDogJ005IDE3YTIgMiAwIDAgMC0yLTJINWEyIDIgMCAwIDAtMiAydjJhMiAyIDAgMCAwIDIgMmgyYTIgMiAwIDAgMCAyLTJ2LTJ6Jywga2V5OiAnc3d3Zng0JyB9LFxuICBdLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIFJlZ2V4XG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NVGNnTTNZeE1DSWdMejRLSUNBOGNHRjBhQ0JrUFNKdE1USXVOamNnTlM0MUlEZ3VOallnTlNJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0p0TVRJdU5qY2dNVEF1TlNBNExqWTJMVFVpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVGtnTVRkaE1pQXlJREFnTUNBd0xUSXRNa2cxWVRJZ01pQXdJREFnTUMweUlESjJNbUV5SURJZ01DQXdJREFnTWlBeWFESmhNaUF5SURBZ01DQXdJREl0TW5ZdE1ub2lJQzgrQ2p3dmMzWm5QZ289KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9yZWdleFxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IFJlZ2V4ID0gY3JlYXRlTHVjaWRlSWNvbigncmVnZXgnLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgUmVnZXg7XG4iLCJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ000IDdWNGgxNnYzJywga2V5OiAnOW1zbTU4JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTUgMjBoNicsIGtleTogJzFoNnB4bicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xMyA0IDggMjAnLCBrZXk6ICdrcXE2YWonIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdtMTUgMTUgNSA1Jywga2V5OiAnbWU1NXNuJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnbTIwIDE1LTUgNScsIGtleTogJzExcDdvbCcgfV0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgUmVtb3ZlRm9ybWF0dGluZ1xuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTkNBM1ZqUm9NVFoyTXlJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTlNBeU1HZzJJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHhNeUEwSURnZ01qQWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaWJURTFJREUxSURVZ05TSWdMejRLSUNBOGNHRjBhQ0JrUFNKdE1qQWdNVFV0TlNBMUlpQXZQZ284TDNOMlp6NEspIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL3JlbW92ZS1mb3JtYXR0aW5nXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgUmVtb3ZlRm9ybWF0dGluZyA9IGNyZWF0ZUx1Y2lkZUljb24oJ3JlbW92ZS1mb3JtYXR0aW5nJywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IFJlbW92ZUZvcm1hdHRpbmc7XG4iLCJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ20yIDkgMy0zIDMgMycsIGtleTogJzFsdG41aScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xMyAxOEg3YTIgMiAwIDAgMS0yLTJWNicsIGtleTogJzFyNnRmdycgfV0sXG4gIFsncGF0aCcsIHsgZDogJ20yMiAxNS0zIDMtMy0zJywga2V5OiAnNHJud24yJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTExIDZoNmEyIDIgMCAwIDEgMiAydjEwJywga2V5OiAnMmY3MmJjJyB9XSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBSZXBlYXQyXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSnRNaUE1SURNdE15QXpJRE1pSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVEV6SURFNFNEZGhNaUF5SURBZ01DQXhMVEl0TWxZMklpQXZQZ29nSUR4d1lYUm9JR1E5SW0weU1pQXhOUzB6SURNdE15MHpJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHhNU0EyYURaaE1pQXlJREFnTUNBeElESWdNbll4TUNJZ0x6NEtQQzl6ZG1jK0NnPT0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL3JlcGVhdC0yXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgUmVwZWF0MiA9IGNyZWF0ZUx1Y2lkZUljb24oJ3JlcGVhdC0yJywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IFJlcGVhdDI7XG4iLCJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ20xNyAyIDQgNC00IDQnLCBrZXk6ICdubnRyeW0nIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMyAxMXYtMWE0IDQgMCAwIDEgNC00aDE0Jywga2V5OiAnODRidTNpJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnbTcgMjItNC00IDQtNCcsIGtleTogJzF3cWhmaScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00yMSAxM3YxYTQgNCAwIDAgMS00IDRIMycsIGtleTogJzFyeDM3cicgfV0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgUmVwZWF0XG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSnRNVGNnTWlBMElEUXROQ0EwSWlBdlBnb2dJRHh3WVhSb0lHUTlJazB6SURFeGRpMHhZVFFnTkNBd0lEQWdNU0EwTFRSb01UUWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaWJUY2dNakl0TkMwMElEUXROQ0lnTHo0S0lDQThjR0YwYUNCa1BTSk5NakVnTVROMk1XRTBJRFFnTUNBd0lERXROQ0EwU0RNaUlDOCtDand2YzNablBnbz0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL3JlcGVhdFxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IFJlcGVhdCA9IGNyZWF0ZUx1Y2lkZUljb24oJ3JlcGVhdCcsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBSZXBlYXQ7XG4iLCJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ20xNyAyIDQgNC00IDQnLCBrZXk6ICdubnRyeW0nIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMyAxMXYtMWE0IDQgMCAwIDEgNC00aDE0Jywga2V5OiAnODRidTNpJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnbTcgMjItNC00IDQtNCcsIGtleTogJzF3cWhmaScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00yMSAxM3YxYTQgNCAwIDAgMS00IDRIMycsIGtleTogJzFyeDM3cicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xMSAxMGgxdjQnLCBrZXk6ICc3MGN6MXAnIH1dLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIFJlcGVhdDFcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKdE1UY2dNaUEwSURRdE5DQTBJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHpJREV4ZGkweFlUUWdOQ0F3SURBZ01TQTBMVFJvTVRRaUlDOCtDaUFnUEhCaGRHZ2daRDBpYlRjZ01qSXROQzAwSURRdE5DSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk1qRWdNVE4yTVdFMElEUWdNQ0F3SURFdE5DQTBTRE1pSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVEV4SURFd2FERjJOQ0lnTHo0S1BDOXpkbWMrQ2c9PSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvcmVwZWF0LTFcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBSZXBlYXQxID0gY3JlYXRlTHVjaWRlSWNvbigncmVwZWF0LTEnLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgUmVwZWF0MTtcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTE0IDE0YTIgMiAwIDAgMSAyIDJ2NGEyIDIgMCAwIDEtMiAyJywga2V5OiAnMXl5emJzJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTE0IDRhMiAyIDAgMCAxIDItMicsIGtleTogJzF3MmhwNycgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xNiAxMGEyIDIgMCAwIDEtMi0yJywga2V5OiAnc2hqYWNoJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTIwIDE0YTIgMiAwIDAgMSAyIDJ2NGEyIDIgMCAwIDEtMiAyJywga2V5OiAnemZqNHhyJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTIwIDJhMiAyIDAgMCAxIDIgMicsIGtleTogJzE4OG10eCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00yMiA4YTIgMiAwIDAgMS0yIDInLCBrZXk6ICdkZGY0dHUnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdtMyA3IDMgMyAzLTMnLCBrZXk6ICd4MjVlNzInIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNNiAxMFY1YSAzIDMgMCAwIDEgMy0zaDEnLCBrZXk6ICcxYWdlamUnIH1dLFxuICBbJ3JlY3QnLCB7IHg6ICcyJywgeTogJzE0Jywgd2lkdGg6ICc4JywgaGVpZ2h0OiAnOCcsIHJ4OiAnMicsIGtleTogJzRya3N4dycgfV0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgUmVwbGFjZUFsbFxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTVRRZ01UUmhNaUF5SURBZ01DQXhJRElnTW5ZMFlUSWdNaUF3SURBZ01TMHlJRElpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVEUwSURSaE1pQXlJREFnTUNBeElESXRNaUlnTHo0S0lDQThjR0YwYUNCa1BTSk5NVFlnTVRCaE1pQXlJREFnTUNBeExUSXRNaUlnTHo0S0lDQThjR0YwYUNCa1BTSk5NakFnTVRSaE1pQXlJREFnTUNBeElESWdNblkwWVRJZ01pQXdJREFnTVMweUlESWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRUSXdJREpoTWlBeUlEQWdNQ0F4SURJZ01pSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk1qSWdPR0V5SURJZ01DQXdJREV0TWlBeUlpQXZQZ29nSUR4d1lYUm9JR1E5SW0weklEY2dNeUF6SURNdE15SWdMejRLSUNBOGNHRjBhQ0JrUFNKTk5pQXhNRlkxWVNBeklETWdNQ0F3SURFZ015MHphREVpSUM4K0NpQWdQSEpsWTNRZ2VEMGlNaUlnZVQwaU1UUWlJSGRwWkhSb1BTSTRJaUJvWldsbmFIUTlJamdpSUhKNFBTSXlJaUF2UGdvOEwzTjJaejRLKSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9yZXBsYWNlLWFsbFxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IFJlcGxhY2VBbGwgPSBjcmVhdGVMdWNpZGVJY29uKCdyZXBsYWNlLWFsbCcsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBSZXBsYWNlQWxsO1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdNMTQgNGEyIDIgMCAwIDEgMi0yJywga2V5OiAnMXcyaHA3JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTE2IDEwYTIgMiAwIDAgMS0yLTInLCBrZXk6ICdzaGphY2gnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMjAgMmEyIDIgMCAwIDEgMiAyJywga2V5OiAnMTg4bXR4JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTIyIDhhMiAyIDAgMCAxLTIgMicsIGtleTogJ2RkZjR0dScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ20zIDcgMyAzIDMtMycsIGtleTogJ3gyNWU3MicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ002IDEwVjVhMyAzIDAgMCAxIDMtM2gxJywga2V5OiAnM3kzdDV6JyB9XSxcbiAgWydyZWN0JywgeyB4OiAnMicsIHk6ICcxNCcsIHdpZHRoOiAnOCcsIGhlaWdodDogJzgnLCByeDogJzInLCBrZXk6ICc0cmtzeHcnIH1dLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIFJlcGxhY2VcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1UUWdOR0V5SURJZ01DQXdJREVnTWkweUlpQXZQZ29nSUR4d1lYUm9JR1E5SWsweE5pQXhNR0V5SURJZ01DQXdJREV0TWkweUlpQXZQZ29nSUR4d1lYUm9JR1E5SWsweU1DQXlZVElnTWlBd0lEQWdNU0F5SURJaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRJeUlEaGhNaUF5SURBZ01DQXhMVElnTWlJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0p0TXlBM0lETWdNeUF6TFRNaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRZZ01UQldOV0V6SURNZ01DQXdJREVnTXkwemFERWlJQzgrQ2lBZ1BISmxZM1FnZUQwaU1pSWdlVDBpTVRRaUlIZHBaSFJvUFNJNElpQm9aV2xuYUhROUlqZ2lJSEo0UFNJeUlpQXZQZ284TDNOMlp6NEspIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL3JlcGxhY2VcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBSZXBsYWNlID0gY3JlYXRlTHVjaWRlSWNvbigncmVwbGFjZScsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBSZXBsYWNlO1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdtMTIgMTctNS01IDUtNScsIGtleTogJzFzM3k1dScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00yMiAxOHYtMmE0IDQgMCAwIDAtNC00SDcnLCBrZXk6ICcxZmN5b2cnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdtNyAxNy01LTUgNS01Jywga2V5OiAnMWVkOGkyJyB9XSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBSZXBseUFsbFxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0p0TVRJZ01UY3ROUzAxSURVdE5TSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk1qSWdNVGgyTFRKaE5DQTBJREFnTUNBd0xUUXRORWczSWlBdlBnb2dJRHh3WVhSb0lHUTlJbTAzSURFM0xUVXROU0ExTFRVaUlDOCtDand2YzNablBnbz0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL3JlcGx5LWFsbFxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IFJlcGx5QWxsID0gY3JlYXRlTHVjaWRlSWNvbigncmVwbHktYWxsJywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IFJlcGx5QWxsO1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdNMjAgMTh2LTJhNCA0IDAgMCAwLTQtNEg0Jywga2V5OiAnNXZtY3BrJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnbTkgMTctNS01IDUtNScsIGtleTogJ252bGMxMScgfV0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgUmVwbHlcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1qQWdNVGgyTFRKaE5DQTBJREFnTUNBd0xUUXRORWcwSWlBdlBnb2dJRHh3WVhSb0lHUTlJbTA1SURFM0xUVXROU0ExTFRVaUlDOCtDand2YzNablBnbz0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL3JlcGx5XG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgUmVwbHkgPSBjcmVhdGVMdWNpZGVJY29uKCdyZXBseScsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBSZXBseTtcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgWydwb2x5Z29uJywgeyBwb2ludHM6ICcxMSAxOSAyIDEyIDExIDUgMTEgMTknLCBrZXk6ICcxNHliYTUnIH1dLFxuICBbJ3BvbHlnb24nLCB7IHBvaW50czogJzIyIDE5IDEzIDEyIDIyIDUgMjIgMTknLCBrZXk6ICcxcGkxY2onIH1dLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIFJld2luZFxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0c5c2VXZHZiaUJ3YjJsdWRITTlJakV4SURFNUlESWdNVElnTVRFZ05TQXhNU0F4T1NJZ0x6NEtJQ0E4Y0c5c2VXZHZiaUJ3YjJsdWRITTlJakl5SURFNUlERXpJREV5SURJeUlEVWdNaklnTVRraUlDOCtDand2YzNablBnbz0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL3Jld2luZFxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IFJld2luZCA9IGNyZWF0ZUx1Y2lkZUljb24oJ3Jld2luZCcsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBSZXdpbmQ7XG4iLCJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbXG4gIFtcbiAgICAncGF0aCcsXG4gICAgeyBkOiAnTTEyIDExLjIyQzExIDkuOTk3IDEwIDkgMTAgOGEyIDIgMCAwIDEgNCAwYzAgMS0uOTk4IDIuMDAyLTIuMDEgMy4yMicsIGtleTogJzFybmhxMycgfSxcbiAgXSxcbiAgWydwYXRoJywgeyBkOiAnbTEyIDE4IDIuNTctMy41Jywga2V5OiAnMTE2dnQ3JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTYuMjQzIDkuMDE2YTcgNyAwIDAgMSAxMS41MDctLjAwOScsIGtleTogJzEwZHEwYicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ005LjM1IDE0LjUzIDEyIDExLjIyJywga2V5OiAndGRzeXAyJyB9XSxcbiAgW1xuICAgICdwYXRoJyxcbiAgICB7XG4gICAgICBkOiAnTTkuMzUgMTQuNTNDNy43MjggMTIuMjQ2IDYgMTAuMjIxIDYgN2E2IDUgMCAwIDEgMTIgMGMtLjAwNSAzLjIyLTEuNzc4IDUuMjM1LTMuNDMgNy41bDMuNTU3IDQuNTI3YTEgMSAwIDAgMS0uMjAzIDEuNDNsLTEuODk0IDEuMzZhMSAxIDAgMCAxLTEuMzg0LS4yMTVMMTIgMThsLTIuNjc5IDMuNTkzYTEgMSAwIDAgMS0xLjM5LjIxM2wtMS44NjUtMS4zNTNhMSAxIDAgMCAxLS4yMDMtMS40MjJ6JyxcbiAgICAgIGtleTogJ25taWZleScsXG4gICAgfSxcbiAgXSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBSaWJib25cbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1USWdNVEV1TWpKRE1URWdPUzQ1T1RjZ01UQWdPU0F4TUNBNFlUSWdNaUF3SURBZ01TQTBJREJqTUNBeExTNDVPVGdnTWk0d01ESXRNaTR3TVNBekxqSXlJaUF2UGdvZ0lEeHdZWFJvSUdROUltMHhNaUF4T0NBeUxqVTNMVE11TlNJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTmk0eU5ETWdPUzR3TVRaaE55QTNJREFnTUNBeElERXhMalV3TnkwdU1EQTVJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMDVMak0xSURFMExqVXpJREV5SURFeExqSXlJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMDVMak0xSURFMExqVXpRemN1TnpJNElERXlMakkwTmlBMklERXdMakl5TVNBMklEZGhOaUExSURBZ01DQXhJREV5SURCakxTNHdNRFVnTXk0eU1pMHhMamMzT0NBMUxqSXpOUzB6TGpReklEY3VOV3d6TGpVMU55QTBMalV5TjJFeElERWdNQ0F3SURFdExqSXdNeUF4TGpRemJDMHhMamc1TkNBeExqTTJZVEVnTVNBd0lEQWdNUzB4TGpNNE5DMHVNakUxVERFeUlERTRiQzB5TGpZM09TQXpMalU1TTJFeElERWdNQ0F3SURFdE1TNHpPUzR5TVROc0xURXVPRFkxTFRFdU16VXpZVEVnTVNBd0lEQWdNUzB1TWpBekxURXVOREl5ZWlJZ0x6NEtQQzl6ZG1jK0NnPT0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL3JpYmJvblxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IFJpYmJvbiA9IGNyZWF0ZUx1Y2lkZUljb24oJ3JpYmJvbicsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBSaWJib247XG4iLCJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbXG4gIFtcbiAgICAncGF0aCcsXG4gICAge1xuICAgICAgZDogJ000LjUgMTYuNWMtMS41IDEuMjYtMiA1LTIgNXMzLjc0LS41IDUtMmMuNzEtLjg0LjctMi4xMy0uMDktMi45MWEyLjE4IDIuMTggMCAwIDAtMi45MS0uMDl6JyxcbiAgICAgIGtleTogJ20za2lqeicsXG4gICAgfSxcbiAgXSxcbiAgW1xuICAgICdwYXRoJyxcbiAgICB7XG4gICAgICBkOiAnbTEyIDE1LTMtM2EyMiAyMiAwIDAgMSAyLTMuOTVBMTIuODggMTIuODggMCAwIDEgMjIgMmMwIDIuNzItLjc4IDcuNS02IDExYTIyLjM1IDIyLjM1IDAgMCAxLTQgMnonLFxuICAgICAga2V5OiAnMWZtdm1rJyxcbiAgICB9LFxuICBdLFxuICBbJ3BhdGgnLCB7IGQ6ICdNOSAxMkg0cy41NS0zLjAzIDItNGMxLjYyLTEuMDggNSAwIDUgMCcsIGtleTogJzFmOHNjNCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xMiAxNXY1czMuMDMtLjU1IDQtMmMxLjA4LTEuNjIgMC01IDAtNScsIGtleTogJ3FleXM0JyB9XSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBSb2NrZXRcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk5DNDFJREUyTGpWakxURXVOU0F4TGpJMkxUSWdOUzB5SURWek15NDNOQzB1TlNBMUxUSmpMamN4TFM0NE5DNDNMVEl1TVRNdExqQTVMVEl1T1RGaE1pNHhPQ0F5TGpFNElEQWdNQ0F3TFRJdU9URXRMakE1ZWlJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0p0TVRJZ01UVXRNeTB6WVRJeUlESXlJREFnTUNBeElESXRNeTQ1TlVFeE1pNDRPQ0F4TWk0NE9DQXdJREFnTVNBeU1pQXlZekFnTWk0M01pMHVOemdnTnk0MUxUWWdNVEZoTWpJdU16VWdNakl1TXpVZ01DQXdJREV0TkNBeWVpSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk9TQXhNa2cwY3k0MU5TMHpMakF6SURJdE5HTXhMall5TFRFdU1EZ2dOU0F3SURVZ01DSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk1USWdNVFYyTlhNekxqQXpMUzQxTlNBMExUSmpNUzR3T0MweExqWXlJREF0TlNBd0xUVWlJQzgrQ2p3dmMzWm5QZ289KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9yb2NrZXRcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBSb2NrZXQgPSBjcmVhdGVMdWNpZGVJY29uKCdyb2NrZXQnLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgUm9ja2V0O1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbJ3BvbHlsaW5lJywgeyBwb2ludHM6ICczLjUgMiA2LjUgMTIuNSAxOCAxMi41Jywga2V5OiAneTNpeTUyJyB9XSxcbiAgWydsaW5lJywgeyB4MTogJzkuNScsIHgyOiAnNS41JywgeTE6ICcxMi41JywgeTI6ICcyMCcsIGtleTogJzE5dmc1aScgfV0sXG4gIFsnbGluZScsIHsgeDE6ICcxNScsIHgyOiAnMTguNScsIHkxOiAnMTIuNScsIHkyOiAnMjAnLCBrZXk6ICcxaW5wbXYnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMi43NSAxOGExMyAxMyAwIDAgMCAxOC41IDAnLCBrZXk6ICcxbnF1YXMnIH1dLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIFJvY2tpbmdDaGFpclxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0c5c2VXeHBibVVnY0c5cGJuUnpQU0l6TGpVZ01pQTJMalVnTVRJdU5TQXhPQ0F4TWk0MUlpQXZQZ29nSUR4c2FXNWxJSGd4UFNJNUxqVWlJSGd5UFNJMUxqVWlJSGt4UFNJeE1pNDFJaUI1TWowaU1qQWlJQzgrQ2lBZ1BHeHBibVVnZURFOUlqRTFJaUI0TWowaU1UZ3VOU0lnZVRFOUlqRXlMalVpSUhreVBTSXlNQ0lnTHo0S0lDQThjR0YwYUNCa1BTSk5NaTQzTlNBeE9HRXhNeUF4TXlBd0lEQWdNQ0F4T0M0MUlEQWlJQzgrQ2p3dmMzWm5QZ289KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9yb2NraW5nLWNoYWlyXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgUm9ja2luZ0NoYWlyID0gY3JlYXRlTHVjaWRlSWNvbigncm9ja2luZy1jaGFpcicsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBSb2NraW5nQ2hhaXI7XG4iLCJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ002IDE5VjUnLCBrZXk6ICcxcjg0NW0nIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTAgMTlWNi44Jywga2V5OiAnOWoydGZzJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTE0IDE5di03LjgnLCBrZXk6ICcxMHM4cXYnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTggNXY0Jywga2V5OiAnMXRhamx2JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTE4IDE5di02Jywga2V5OiAnaWVsZnEzJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTIyIDE5VjknLCBrZXk6ICcxNThuenAnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMiAxOVY5YTQgNCAwIDAgMSA0LTRjMiAwIDQgMS4zMyA2IDRzNCA0IDYgNGE0IDQgMCAxIDAtMy02LjY1Jywga2V5OiAnMTkzMG9oJyB9XSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBSb2xsZXJDb2FzdGVyXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5OaUF4T1ZZMUlpQXZQZ29nSUR4d1lYUm9JR1E5SWsweE1DQXhPVlkyTGpnaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRFMElERTVkaTAzTGpnaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRFNElEVjJOQ0lnTHo0S0lDQThjR0YwYUNCa1BTSk5NVGdnTVRsMkxUWWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRUSXlJREU1VmpraUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRJZ01UbFdPV0UwSURRZ01DQXdJREVnTkMwMFl6SWdNQ0EwSURFdU16TWdOaUEwY3pRZ05DQTJJRFJoTkNBMElEQWdNU0F3TFRNdE5pNDJOU0lnTHo0S1BDOXpkbWMrQ2c9PSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvcm9sbGVyLWNvYXN0ZXJcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBSb2xsZXJDb2FzdGVyID0gY3JlYXRlTHVjaWRlSWNvbigncm9sbGVyLWNvYXN0ZXInLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgUm9sbGVyQ29hc3RlcjtcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgW1xuICAgICdwYXRoJyxcbiAgICB7XG4gICAgICBkOiAnTTE2LjQ2NiA3LjVDMTUuNjQzIDQuMjM3IDEzLjk1MiAyIDEyIDIgOS4yMzkgMiA3IDYuNDc3IDcgMTJzMi4yMzkgMTAgNSAxMGMuMzQyIDAgLjY3Ny0uMDY5IDEtLjInLFxuICAgICAga2V5OiAnMTBuMGdjJyxcbiAgICB9LFxuICBdLFxuICBbJ3BhdGgnLCB7IGQ6ICdtMTUuMTk0IDEzLjcwNyAzLjgxNCAxLjg2LTEuODYgMy44MTQnLCBrZXk6ICcxNnNobTknIH1dLFxuICBbXG4gICAgJ3BhdGgnLFxuICAgIHtcbiAgICAgIGQ6ICdNMTkgMTUuNTdjLTEuODA0Ljg4NS00LjI3NCAxLjQzLTcgMS40My01LjUyMyAwLTEwLTIuMjM5LTEwLTVzNC40NzctNSAxMC01YzQuODM4IDAgOC44NzMgMS43MTggOS44IDQnLFxuICAgICAga2V5OiAnMWx4aTc3JyxcbiAgICB9LFxuICBdLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIFJvdGF0ZTNkXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NVFl1TkRZMklEY3VOVU14TlM0Mk5ETWdOQzR5TXpjZ01UTXVPVFV5SURJZ01USWdNaUE1TGpJek9TQXlJRGNnTmk0ME56Y2dOeUF4TW5NeUxqSXpPU0F4TUNBMUlERXdZeTR6TkRJZ01DQXVOamMzTFM0d05qa2dNUzB1TWlJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0p0TVRVdU1UazBJREV6TGpjd055QXpMamd4TkNBeExqZzJMVEV1T0RZZ015NDRNVFFpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVEU1SURFMUxqVTNZeTB4TGpnd05DNDRPRFV0TkM0eU56UWdNUzQwTXkwM0lERXVORE10TlM0MU1qTWdNQzB4TUMweUxqSXpPUzB4TUMwMWN6UXVORGMzTFRVZ01UQXROV00wTGpnek9DQXdJRGd1T0RjeklERXVOekU0SURrdU9DQTBJaUF2UGdvOEwzTjJaejRLKSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9yb3RhdGUtM2RcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBSb3RhdGUzZCA9IGNyZWF0ZUx1Y2lkZUljb24oJ3JvdGF0ZS0zZCcsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBSb3RhdGUzZDtcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnbTE0LjUgOS41IDEgMScsIGtleTogJzE1OWVpcScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ20xNS41IDguNS00IDQnLCBrZXk6ICdpaXJnM3EnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMyAxMmE5IDkgMCAxIDAgOS05IDkuNzQgOS43NCAwIDAgMC02Ljc0IDIuNzRMMyA4Jywga2V5OiAnZzJqbHcnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMyAzdjVoNScsIGtleTogJzF4aHE4YScgfV0sXG4gIFsnY2lyY2xlJywgeyBjeDogJzEwJywgY3k6ICcxNCcsIHI6ICcyJywga2V5OiAnMTIzOXNvJyB9XSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBSb3RhdGVDY3dLZXlcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKdE1UUXVOU0E1TGpVZ01TQXhJaUF2UGdvZ0lEeHdZWFJvSUdROUltMHhOUzQxSURndU5TMDBJRFFpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVE1nTVRKaE9TQTVJREFnTVNBd0lEa3RPU0E1TGpjMElEa3VOelFnTUNBd0lEQXROaTQzTkNBeUxqYzBURE1nT0NJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTXlBemRqVm9OU0lnTHo0S0lDQThZMmx5WTJ4bElHTjRQU0l4TUNJZ1kzazlJakUwSWlCeVBTSXlJaUF2UGdvOEwzTjJaejRLKSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9yb3RhdGUtY2N3LWtleVxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IFJvdGF0ZUNjd0tleSA9IGNyZWF0ZUx1Y2lkZUljb24oJ3JvdGF0ZS1jY3cta2V5JywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IFJvdGF0ZUNjd0tleTtcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTIwIDlWN2EyIDIgMCAwIDAtMi0yaC02Jywga2V5OiAnMTl6OHVjJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnbTE1IDItMyAzIDMgMycsIGtleTogJzE3N2J4cycgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00yMCAxM3Y1YTIgMiAwIDAgMS0yIDJINmEyIDIgMCAwIDEtMi0yVjdhMiAyIDAgMCAxIDItMmgyJywga2V5OiAnZDM2aG5sJyB9XSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBSb3RhdGVDY3dTcXVhcmVcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1qQWdPVlkzWVRJZ01pQXdJREFnTUMweUxUSm9MVFlpSUM4K0NpQWdQSEJoZEdnZ1pEMGliVEUxSURJdE15QXpJRE1nTXlJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTWpBZ01UTjJOV0V5SURJZ01DQXdJREV0TWlBeVNEWmhNaUF5SURBZ01DQXhMVEl0TWxZM1lUSWdNaUF3SURBZ01TQXlMVEpvTWlJZ0x6NEtQQzl6ZG1jK0NnPT0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL3JvdGF0ZS1jY3ctc3F1YXJlXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgUm90YXRlQ2N3U3F1YXJlID0gY3JlYXRlTHVjaWRlSWNvbigncm90YXRlLWNjdy1zcXVhcmUnLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgUm90YXRlQ2N3U3F1YXJlO1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdNMyAxMmE5IDkgMCAxIDAgOS05IDkuNzUgOS43NSAwIDAgMC02Ljc0IDIuNzRMMyA4Jywga2V5OiAnMTM1N2UzJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTMgM3Y1aDUnLCBrZXk6ICcxeGhxOGEnIH1dLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIFJvdGF0ZUNjd1xuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTXlBeE1tRTVJRGtnTUNBeElEQWdPUzA1SURrdU56VWdPUzQzTlNBd0lEQWdNQzAyTGpjMElESXVOelJNTXlBNElpQXZQZ29nSUR4d1lYUm9JR1E5SWsweklETjJOV2cxSWlBdlBnbzhMM04yWno0SykgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvcm90YXRlLWNjd1xuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IFJvdGF0ZUNjdyA9IGNyZWF0ZUx1Y2lkZUljb24oJ3JvdGF0ZS1jY3cnLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgUm90YXRlQ2N3O1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdNMTIgNUg2YTIgMiAwIDAgMC0yIDJ2MycsIGtleTogJ2w5NnVxdScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ205IDggMy0zLTMtMycsIGtleTogJzFnemdjMycgfV0sXG4gIFsncGF0aCcsIHsgZDogJ000IDE0djRhMiAyIDAgMCAwIDIgMmgxMmEyIDIgMCAwIDAgMi0yVjdhMiAyIDAgMCAwLTItMmgtMicsIGtleTogJzF3Mms1aCcgfV0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgUm90YXRlQ3dTcXVhcmVcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1USWdOVWcyWVRJZ01pQXdJREFnTUMweUlESjJNeUlnTHo0S0lDQThjR0YwYUNCa1BTSnRPU0E0SURNdE15MHpMVE1pSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVFFnTVRSMk5HRXlJRElnTUNBd0lEQWdNaUF5YURFeVlUSWdNaUF3SURBZ01DQXlMVEpXTjJFeUlESWdNQ0F3SURBdE1pMHlhQzB5SWlBdlBnbzhMM04yWno0SykgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvcm90YXRlLWN3LXNxdWFyZVxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IFJvdGF0ZUN3U3F1YXJlID0gY3JlYXRlTHVjaWRlSWNvbigncm90YXRlLWN3LXNxdWFyZScsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBSb3RhdGVDd1NxdWFyZTtcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTIxIDEyYTkgOSAwIDEgMS05LTljMi41MiAwIDQuOTMgMSA2Ljc0IDIuNzRMMjEgOCcsIGtleTogJzFwNDVmNicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00yMSAzdjVoLTUnLCBrZXk6ICcxcTd0bzAnIH1dLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIFJvdGF0ZUN3XG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NakVnTVRKaE9TQTVJREFnTVNBeExUa3RPV015TGpVeUlEQWdOQzQ1TXlBeElEWXVOelFnTWk0M05Fd3lNU0E0SWlBdlBnb2dJRHh3WVhSb0lHUTlJazB5TVNBemRqVm9MVFVpSUM4K0Nqd3ZjM1puUGdvPSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvcm90YXRlLWN3XG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgUm90YXRlQ3cgPSBjcmVhdGVMdWNpZGVJY29uKCdyb3RhdGUtY3cnLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgUm90YXRlQ3c7XG4iLCJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbXG4gIFsnY2lyY2xlJywgeyBjeDogJzYnLCBjeTogJzE5JywgcjogJzMnLCBrZXk6ICcxa2o4dHYnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNOSAxOWg4LjVjLjQgMCAuOS0uMSAxLjMtLjInLCBrZXk6ICcxZWZmZXgnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNNS4yIDUuMkEzLjUgMy41MyAwIDAgMCA2LjUgMTJIMTInLCBrZXk6ICdrOXkyZHMnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdtMiAyIDIwIDIwJywga2V5OiAnMW9vZXd5JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTIxIDE1LjNhMy41IDMuNSAwIDAgMC0zLjMtMy4zJywga2V5OiAnMTFubHUyJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTE1IDVoLTQuMycsIGtleTogJzY1MzdqZScgfV0sXG4gIFsnY2lyY2xlJywgeyBjeDogJzE4JywgY3k6ICc1JywgcjogJzMnLCBrZXk6ICdncThhY2QnIH1dLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIFJvdXRlT2ZmXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThZMmx5WTJ4bElHTjRQU0kySWlCamVUMGlNVGtpSUhJOUlqTWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRUa2dNVGxvT0M0MVl5NDBJREFnTGprdExqRWdNUzR6TFM0eUlpQXZQZ29nSUR4d1lYUm9JR1E5SWswMUxqSWdOUzR5UVRNdU5TQXpMalV6SURBZ01DQXdJRFl1TlNBeE1rZ3hNaUlnTHo0S0lDQThjR0YwYUNCa1BTSnRNaUF5SURJd0lESXdJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHlNU0F4TlM0ellUTXVOU0F6TGpVZ01DQXdJREF0TXk0ekxUTXVNeUlnTHo0S0lDQThjR0YwYUNCa1BTSk5NVFVnTldndE5DNHpJaUF2UGdvZ0lEeGphWEpqYkdVZ1kzZzlJakU0SWlCamVUMGlOU0lnY2owaU15SWdMejRLUEM5emRtYytDZz09KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9yb3V0ZS1vZmZcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBSb3V0ZU9mZiA9IGNyZWF0ZUx1Y2lkZUljb24oJ3JvdXRlLW9mZicsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBSb3V0ZU9mZjtcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgWydjaXJjbGUnLCB7IGN4OiAnNicsIGN5OiAnMTknLCByOiAnMycsIGtleTogJzFrajh0dicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ005IDE5aDguNWEzLjUgMy41IDAgMCAwIDAtN2gtMTFhMy41IDMuNSAwIDAgMSAwLTdIMTUnLCBrZXk6ICcxZDhzbCcgfV0sXG4gIFsnY2lyY2xlJywgeyBjeDogJzE4JywgY3k6ICc1JywgcjogJzMnLCBrZXk6ICdncThhY2QnIH1dLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIFJvdXRlXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThZMmx5WTJ4bElHTjRQU0kySWlCamVUMGlNVGtpSUhJOUlqTWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRUa2dNVGxvT0M0MVlUTXVOU0F6TGpVZ01DQXdJREFnTUMwM2FDMHhNV0V6TGpVZ015NDFJREFnTUNBeElEQXROMGd4TlNJZ0x6NEtJQ0E4WTJseVkyeGxJR040UFNJeE9DSWdZM2s5SWpVaUlISTlJak1pSUM4K0Nqd3ZjM1puUGdvPSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvcm91dGVcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBSb3V0ZSA9IGNyZWF0ZUx1Y2lkZUljb24oJ3JvdXRlJywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IFJvdXRlO1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbJ3JlY3QnLCB7IHdpZHRoOiAnMjAnLCBoZWlnaHQ6ICc4JywgeDogJzInLCB5OiAnMTQnLCByeDogJzInLCBrZXk6ICd3Njh1M2knIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNNi4wMSAxOEg2Jywga2V5OiAnMTl2Y2FjJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTEwLjAxIDE4SDEwJywga2V5OiAndWFtY214JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTE1IDEwdjQnLCBrZXk6ICdxanoxeHMnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTcuODQgNy4xN2E0IDQgMCAwIDAtNS42NiAwJywga2V5OiAnMXJpZjQwJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTIwLjY2IDQuMzRhOCA4IDAgMCAwLTExLjMxIDAnLCBrZXk6ICc2YTV4ZnEnIH1dLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIFJvdXRlclxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y21WamRDQjNhV1IwYUQwaU1qQWlJR2hsYVdkb2REMGlPQ0lnZUQwaU1pSWdlVDBpTVRRaUlISjRQU0l5SWlBdlBnb2dJRHh3WVhSb0lHUTlJazAyTGpBeElERTRTRFlpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVEV3TGpBeElERTRTREV3SWlBdlBnb2dJRHh3WVhSb0lHUTlJazB4TlNBeE1IWTBJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHhOeTQ0TkNBM0xqRTNZVFFnTkNBd0lEQWdNQzAxTGpZMklEQWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRUSXdMalkySURRdU16UmhPQ0E0SURBZ01DQXdMVEV4TGpNeElEQWlJQzgrQ2p3dmMzWm5QZ289KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9yb3V0ZXJcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBSb3V0ZXIgPSBjcmVhdGVMdWNpZGVJY29uKCdyb3V0ZXInLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgUm91dGVyO1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbJ3JlY3QnLCB7IHdpZHRoOiAnMTgnLCBoZWlnaHQ6ICcxOCcsIHg6ICczJywgeTogJzMnLCByeDogJzInLCBrZXk6ICdhZml0djcnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMyAxMmgxOCcsIGtleTogJzFpMm4yMScgfV0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgUm93czJcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNtVmpkQ0IzYVdSMGFEMGlNVGdpSUdobGFXZG9kRDBpTVRnaUlIZzlJak1pSUhrOUlqTWlJSEo0UFNJeUlpQXZQZ29nSUR4d1lYUm9JR1E5SWsweklERXlhREU0SWlBdlBnbzhMM04yWno0SykgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvcm93cy0yXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgUm93czIgPSBjcmVhdGVMdWNpZGVJY29uKCdyb3dzLTInLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgUm93czI7XG4iLCJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbXG4gIFsncmVjdCcsIHsgd2lkdGg6ICcxOCcsIGhlaWdodDogJzE4JywgeDogJzMnLCB5OiAnMycsIHJ4OiAnMicsIGtleTogJ2FmaXR2NycgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00yMSA5SDMnLCBrZXk6ICcxMzM4a3knIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMjEgMTVIMycsIGtleTogJzl1azU4cicgfV0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgUm93czNcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNtVmpkQ0IzYVdSMGFEMGlNVGdpSUdobGFXZG9kRDBpTVRnaUlIZzlJak1pSUhrOUlqTWlJSEo0UFNJeUlpQXZQZ29nSUR4d1lYUm9JR1E5SWsweU1TQTVTRE1pSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVEl4SURFMVNETWlJQzgrQ2p3dmMzWm5QZ289KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9yb3dzLTNcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBSb3dzMyA9IGNyZWF0ZUx1Y2lkZUljb24oJ3Jvd3MtMycsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBSb3dzMztcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgWydyZWN0JywgeyB3aWR0aDogJzE4JywgaGVpZ2h0OiAnMTgnLCB4OiAnMycsIHk6ICczJywgcng6ICcyJywga2V5OiAnYWZpdHY3JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTIxIDcuNUgzJywga2V5OiAnMWhtOXBxJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTIxIDEySDMnLCBrZXk6ICcyYXZvejAnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMjEgMTYuNUgzJywga2V5OiAnbjdqemtqJyB9XSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBSb3dzNFxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y21WamRDQjNhV1IwYUQwaU1UZ2lJR2hsYVdkb2REMGlNVGdpSUhnOUlqTWlJSGs5SWpNaUlISjRQU0l5SWlBdlBnb2dJRHh3WVhSb0lHUTlJazB5TVNBM0xqVklNeUlnTHo0S0lDQThjR0YwYUNCa1BTSk5NakVnTVRKSU15SWdMejRLSUNBOGNHRjBhQ0JrUFNKTk1qRWdNVFl1TlVneklpQXZQZ284TDNOMlp6NEspIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL3Jvd3MtNFxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IFJvd3M0ID0gY3JlYXRlTHVjaWRlSWNvbigncm93cy00JywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IFJvd3M0O1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdNNCAxMWE5IDkgMCAwIDEgOSA5Jywga2V5OiAncHY4OW1iJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTQgNGExNiAxNiAwIDAgMSAxNiAxNicsIGtleTogJ2swNjQ3YicgfV0sXG4gIFsnY2lyY2xlJywgeyBjeDogJzUnLCBjeTogJzE5JywgcjogJzEnLCBrZXk6ICdiZnFoMGUnIH1dLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIFJzc1xuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTkNBeE1XRTVJRGtnTUNBd0lERWdPU0E1SWlBdlBnb2dJRHh3WVhSb0lHUTlJazAwSURSaE1UWWdNVFlnTUNBd0lERWdNVFlnTVRZaUlDOCtDaUFnUEdOcGNtTnNaU0JqZUQwaU5TSWdZM2s5SWpFNUlpQnlQU0l4SWlBdlBnbzhMM04yWno0SykgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvcnNzXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgUnNzID0gY3JlYXRlTHVjaWRlSWNvbigncnNzJywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IFJzcztcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTEyIDE1di0zLjAxNCcsIGtleTogJ2F3NnBwZicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xNiAxNXYtMy4wMTQnLCBrZXk6ICc5ZTB2YzcnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMjAgNkg0Jywga2V5OiAnMWxmejg2JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTIwIDhWNCcsIGtleTogJzFsMmc0NycgfV0sXG4gIFsncGF0aCcsIHsgZDogJ000IDhWNCcsIGtleTogJ3NwcHh6dCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ004IDE1di0zLjAxNCcsIGtleTogJ3doZW4wOCcgfV0sXG4gIFsncmVjdCcsIHsgeDogJzMnLCB5OiAnMTInLCB3aWR0aDogJzE4JywgaGVpZ2h0OiAnNycsIHJ4OiAnMScsIGtleTogJzF1Y3dkeicgfV0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgUnVsZXJEaW1lbnNpb25MaW5lXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NVElnTVRWMkxUTXVNREUwSWlBdlBnb2dJRHh3WVhSb0lHUTlJazB4TmlBeE5YWXRNeTR3TVRRaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRJd0lEWklOQ0lnTHo0S0lDQThjR0YwYUNCa1BTSk5NakFnT0ZZMElpQXZQZ29nSUR4d1lYUm9JR1E5SWswMElEaFdOQ0lnTHo0S0lDQThjR0YwYUNCa1BTSk5PQ0F4TlhZdE15NHdNVFFpSUM4K0NpQWdQSEpsWTNRZ2VEMGlNeUlnZVQwaU1USWlJSGRwWkhSb1BTSXhPQ0lnYUdWcFoyaDBQU0kzSWlCeWVEMGlNU0lnTHo0S1BDOXpkbWMrQ2c9PSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvcnVsZXItZGltZW5zaW9uLWxpbmVcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBSdWxlckRpbWVuc2lvbkxpbmUgPSBjcmVhdGVMdWNpZGVJY29uKCdydWxlci1kaW1lbnNpb24tbGluZScsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBSdWxlckRpbWVuc2lvbkxpbmU7XG4iLCJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbXG4gIFtcbiAgICAncGF0aCcsXG4gICAge1xuICAgICAgZDogJ00yMS4zIDE1LjNhMi40IDIuNCAwIDAgMSAwIDMuNGwtMi42IDIuNmEyLjQgMi40IDAgMCAxLTMuNCAwTDIuNyA4LjdhMi40MSAyLjQxIDAgMCAxIDAtMy40bDIuNi0yLjZhMi40MSAyLjQxIDAgMCAxIDMuNCAwWicsXG4gICAgICBrZXk6ICdpY2FtaDgnLFxuICAgIH0sXG4gIF0sXG4gIFsncGF0aCcsIHsgZDogJ20xNC41IDEyLjUgMi0yJywga2V5OiAnaW5ja2JnJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnbTExLjUgOS41IDItMicsIGtleTogJ2ZtbXlmNycgfV0sXG4gIFsncGF0aCcsIHsgZDogJ204LjUgNi41IDItMicsIGtleTogJ3ZjNnUxZycgfV0sXG4gIFsncGF0aCcsIHsgZDogJ20xNy41IDE1LjUgMi0yJywga2V5OiAnd281aG1nJyB9XSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBSdWxlclxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTWpFdU15QXhOUzR6WVRJdU5DQXlMalFnTUNBd0lERWdNQ0F6TGpSc0xUSXVOaUF5TGpaaE1pNDBJREl1TkNBd0lEQWdNUzB6TGpRZ01Fd3lMamNnT0M0M1lUSXVOREVnTWk0ME1TQXdJREFnTVNBd0xUTXVOR3d5TGpZdE1pNDJZVEl1TkRFZ01pNDBNU0F3SURBZ01TQXpMalFnTUZvaUlDOCtDaUFnUEhCaGRHZ2daRDBpYlRFMExqVWdNVEl1TlNBeUxUSWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaWJURXhMalVnT1M0MUlESXRNaUlnTHo0S0lDQThjR0YwYUNCa1BTSnRPQzQxSURZdU5TQXlMVElpSUM4K0NpQWdQSEJoZEdnZ1pEMGliVEUzTGpVZ01UVXVOU0F5TFRJaUlDOCtDand2YzNablBnbz0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL3J1bGVyXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgUnVsZXIgPSBjcmVhdGVMdWNpZGVJY29uKCdydWxlcicsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBSdWxlcjtcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTYgMTFoOGE0IDQgMCAwIDAgMC04SDl2MTgnLCBrZXk6ICcxOGFpOHQnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNNiAxNWg4Jywga2V5OiAnMXk4ZjZsJyB9XSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBSdXNzaWFuUnVibGVcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk5pQXhNV2c0WVRRZ05DQXdJREFnTUNBd0xUaElPWFl4T0NJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTmlBeE5XZzRJaUF2UGdvOEwzTjJaejRLKSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9ydXNzaWFuLXJ1YmxlXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgUnVzc2lhblJ1YmxlID0gY3JlYXRlTHVjaWRlSWNvbigncnVzc2lhbi1ydWJsZScsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBSdXNzaWFuUnVibGU7XG4iLCJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ00yMiAxOEgyYTQgNCAwIDAgMCA0IDRoMTJhNCA0IDAgMCAwIDQtNFonLCBrZXk6ICcxNDA0ZmgnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMjEgMTQgMTAgMiAzIDE0aDE4WicsIGtleTogJzFuemc3dicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xMCAydjE2Jywga2V5OiAnMWxhYnl0JyB9XSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBTYWlsYm9hdFxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTWpJZ01UaElNbUUwSURRZ01DQXdJREFnTkNBMGFERXlZVFFnTkNBd0lEQWdNQ0EwTFRSYUlpQXZQZ29nSUR4d1lYUm9JR1E5SWsweU1TQXhOQ0F4TUNBeUlETWdNVFJvTVRoYUlpQXZQZ29nSUR4d1lYUm9JR1E5SWsweE1DQXlkakUySWlBdlBnbzhMM04yWno0SykgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvc2FpbGJvYXRcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBTYWlsYm9hdCA9IGNyZWF0ZUx1Y2lkZUljb24oJ3NhaWxib2F0JywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IFNhaWxib2F0O1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdNNyAyMWgxMCcsIGtleTogJzFiMGNkNScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xMiAyMWE5IDkgMCAwIDAgOS05SDNhOSA5IDAgMCAwIDkgOVonLCBrZXk6ICc0cnczMTcnIH1dLFxuICBbXG4gICAgJ3BhdGgnLFxuICAgIHtcbiAgICAgIGQ6ICdNMTEuMzggMTJhMi40IDIuNCAwIDAgMS0uNC00Ljc3IDIuNCAyLjQgMCAwIDEgMy4yLTIuNzcgMi40IDIuNCAwIDAgMSAzLjQ3LS42MyAyLjQgMi40IDAgMCAxIDMuMzcgMy4zNyAyLjQgMi40IDAgMCAxLTEuMSAzLjcgMi41MSAyLjUxIDAgMCAxIC4wMyAxLjEnLFxuICAgICAga2V5OiAnMTB4cmowJyxcbiAgICB9LFxuICBdLFxuICBbJ3BhdGgnLCB7IGQ6ICdtMTMgMTIgNC00Jywga2V5OiAnMWhja3F5JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTEwLjkgNy4yNUEzLjk5IDMuOTkgMCAwIDAgNCAxMGMwIC43My4yIDEuNDEuNTQgMicsIGtleTogJzFwNHNyeCcgfV0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgU2FsYWRcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk55QXlNV2d4TUNJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTVRJZ01qRmhPU0E1SURBZ01DQXdJRGt0T1VnellUa2dPU0F3SURBZ01DQTVJRGxhSWlBdlBnb2dJRHh3WVhSb0lHUTlJazB4TVM0ek9DQXhNbUV5TGpRZ01pNDBJREFnTUNBeExTNDBMVFF1TnpjZ01pNDBJREl1TkNBd0lEQWdNU0F6TGpJdE1pNDNOeUF5TGpRZ01pNDBJREFnTUNBeElETXVORGN0TGpZeklESXVOQ0F5TGpRZ01DQXdJREVnTXk0ek55QXpMak0zSURJdU5DQXlMalFnTUNBd0lERXRNUzR4SURNdU55QXlMalV4SURJdU5URWdNQ0F3SURFZ0xqQXpJREV1TVNJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0p0TVRNZ01USWdOQzAwSWlBdlBnb2dJRHh3WVhSb0lHUTlJazB4TUM0NUlEY3VNalZCTXk0NU9TQXpMams1SURBZ01DQXdJRFFnTVRCak1DQXVOek11TWlBeExqUXhMalUwSURJaUlDOCtDand2YzNablBnbz0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL3NhbGFkXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgU2FsYWQgPSBjcmVhdGVMdWNpZGVJY29uKCdzYWxhZCcsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBTYWxhZDtcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnbTIuMzcgMTEuMjIzIDguMzcyLTYuNzc3YTIgMiAwIDAgMSAyLjUxNiAwbDguMzcxIDYuNzc3Jywga2V5OiAnZjF3ZDBlJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTIxIDE1YTEgMSAwIDAgMSAxIDF2MmExIDEgMCAwIDEtMSAxaC01LjI1Jywga2V5OiAnMXBmdTA3JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTMgMTVhMSAxIDAgMCAwLTEgMXYyYTEgMSAwIDAgMCAxIDFoOScsIGtleTogJzFvcTlxdycgfV0sXG4gIFsncGF0aCcsIHsgZDogJ202LjY3IDE1IDYuMTMgNC42YTIgMiAwIDAgMCAyLjgtLjRsMy4xNS00LjInLCBrZXk6ICcxZm53dTUnIH1dLFxuICBbJ3JlY3QnLCB7IHdpZHRoOiAnMjAnLCBoZWlnaHQ6ICc0JywgeDogJzInLCB5OiAnMTEnLCByeDogJzEnLCBrZXk6ICdpdHNoZycgfV0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgU2FuZHdpY2hcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKdE1pNHpOeUF4TVM0eU1qTWdPQzR6TnpJdE5pNDNOemRoTWlBeUlEQWdNQ0F4SURJdU5URTJJREJzT0M0ek56RWdOaTQzTnpjaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRJeElERTFZVEVnTVNBd0lEQWdNU0F4SURGMk1tRXhJREVnTUNBd0lERXRNU0F4YUMwMUxqSTFJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHpJREUxWVRFZ01TQXdJREFnTUMweElERjJNbUV4SURFZ01DQXdJREFnTVNBeGFEa2lJQzgrQ2lBZ1BIQmhkR2dnWkQwaWJUWXVOamNnTVRVZ05pNHhNeUEwTGpaaE1pQXlJREFnTUNBd0lESXVPQzB1Tkd3ekxqRTFMVFF1TWlJZ0x6NEtJQ0E4Y21WamRDQjNhV1IwYUQwaU1qQWlJR2hsYVdkb2REMGlOQ0lnZUQwaU1pSWdlVDBpTVRFaUlISjRQU0l4SWlBdlBnbzhMM04yWno0SykgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvc2FuZHdpY2hcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBTYW5kd2ljaCA9IGNyZWF0ZUx1Y2lkZUljb24oJ3NhbmR3aWNoJywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IFNhbmR3aWNoO1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdNNCAxMGE3LjMxIDcuMzEgMCAwIDAgMTAgMTBaJywga2V5OiAnMWZ6cHAzJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnbTkgMTUgMy0zJywga2V5OiAnODhzYzEzJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTE3IDEzYTYgNiAwIDAgMC02LTYnLCBrZXk6ICcxNWNjNnUnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMjEgMTNBMTAgMTAgMCAwIDAgMTEgMycsIGtleTogJzExbmY4cycgfV0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgU2F0ZWxsaXRlRGlzaFxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTkNBeE1HRTNMak14SURjdU16RWdNQ0F3SURBZ01UQWdNVEJhSWlBdlBnb2dJRHh3WVhSb0lHUTlJbTA1SURFMUlETXRNeUlnTHo0S0lDQThjR0YwYUNCa1BTSk5NVGNnTVROaE5pQTJJREFnTUNBd0xUWXROaUlnTHo0S0lDQThjR0YwYUNCa1BTSk5NakVnTVROQk1UQWdNVEFnTUNBd0lEQWdNVEVnTXlJZ0x6NEtQQzl6ZG1jK0NnPT0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL3NhdGVsbGl0ZS1kaXNoXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgU2F0ZWxsaXRlRGlzaCA9IGNyZWF0ZUx1Y2lkZUljb24oJ3NhdGVsbGl0ZS1kaXNoJywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IFNhdGVsbGl0ZURpc2g7XG4iLCJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbXG4gIFtcbiAgICAncGF0aCcsXG4gICAge1xuICAgICAgZDogJ20xMy41IDYuNS0zLjE0OC0zLjE0OGExLjIwNSAxLjIwNSAwIDAgMC0xLjcwNCAwTDYuMzUyIDUuNjQ4YTEuMjA1IDEuMjA1IDAgMCAwIDAgMS43MDRMOS41IDEwLjUnLFxuICAgICAga2V5OiAnZHpoZnl6JyxcbiAgICB9LFxuICBdLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTYuNSA3LjUgMTkgNScsIGtleTogJzFsdGNqbScgfV0sXG4gIFtcbiAgICAncGF0aCcsXG4gICAge1xuICAgICAgZDogJ20xNy41IDEwLjUgMy4xNDggMy4xNDhhMS4yMDUgMS4yMDUgMCAwIDEgMCAxLjcwNGwtMi4yOTYgMi4yOTZhMS4yMDUgMS4yMDUgMCAwIDEtMS43MDQgMEwxMy41IDE0LjUnLFxuICAgICAga2V5OiAnbmZveW12JyxcbiAgICB9LFxuICBdLFxuICBbJ3BhdGgnLCB7IGQ6ICdNOSAyMWE2IDYgMCAwIDAtNi02Jywga2V5OiAnMWlhamNmJyB9XSxcbiAgW1xuICAgICdwYXRoJyxcbiAgICB7XG4gICAgICBkOiAnTTkuMzUyIDEwLjY0OGExLjIwNSAxLjIwNSAwIDAgMCAwIDEuNzA0bDIuMjk2IDIuMjk2YTEuMjA1IDEuMjA1IDAgMCAwIDEuNzA0IDBsNC4yOTYtNC4yOTZhMS4yMDUgMS4yMDUgMCAwIDAgMC0xLjcwNGwtMi4yOTYtMi4yOTZhMS4yMDUgMS4yMDUgMCAwIDAtMS43MDQgMHonLFxuICAgICAga2V5OiAnbnY5enF5JyxcbiAgICB9LFxuICBdLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIFNhdGVsbGl0ZVxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0p0TVRNdU5TQTJMalV0TXk0eE5EZ3RNeTR4TkRoaE1TNHlNRFVnTVM0eU1EVWdNQ0F3SURBdE1TNDNNRFFnTUV3MkxqTTFNaUExTGpZME9HRXhMakl3TlNBeExqSXdOU0F3SURBZ01DQXdJREV1TnpBMFREa3VOU0F4TUM0MUlpQXZQZ29nSUR4d1lYUm9JR1E5SWsweE5pNDFJRGN1TlNBeE9TQTFJaUF2UGdvZ0lEeHdZWFJvSUdROUltMHhOeTQxSURFd0xqVWdNeTR4TkRnZ015NHhORGhoTVM0eU1EVWdNUzR5TURVZ01DQXdJREVnTUNBeExqY3dOR3d0TWk0eU9UWWdNaTR5T1RaaE1TNHlNRFVnTVM0eU1EVWdNQ0F3SURFdE1TNDNNRFFnTUV3eE15NDFJREUwTGpVaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRrZ01qRmhOaUEySURBZ01DQXdMVFl0TmlJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOT1M0ek5USWdNVEF1TmpRNFlURXVNakExSURFdU1qQTFJREFnTUNBd0lEQWdNUzQzTURSc01pNHlPVFlnTWk0eU9UWmhNUzR5TURVZ01TNHlNRFVnTUNBd0lEQWdNUzQzTURRZ01HdzBMakk1TmkwMExqSTVObUV4TGpJd05TQXhMakl3TlNBd0lEQWdNQ0F3TFRFdU56QTBiQzB5TGpJNU5pMHlMakk1Tm1FeExqSXdOU0F4TGpJd05TQXdJREFnTUMweExqY3dOQ0F3ZWlJZ0x6NEtQQzl6ZG1jK0NnPT0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL3NhdGVsbGl0ZVxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IFNhdGVsbGl0ZSA9IGNyZWF0ZUx1Y2lkZUljb24oJ3NhdGVsbGl0ZScsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBTYXRlbGxpdGU7XG4iLCJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ20yMCAxOS41LTUuNSAxLjInLCBrZXk6ICcxYWVuaHInIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTQuNSA0djExLjIyYTEgMSAwIDAgMCAxLjI0Mi45N0wyMCAxNS4yJywga2V5OiAnMnJ0ZXp0JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnbTIuOTc4IDE5LjM1MSA1LjU0OS0xLjM2M0EyIDIgMCAwIDAgMTAgMTZWMicsIGtleTogJzFrYm05MicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00yMCAxMCA0IDEzLjUnLCBrZXk6ICc4bnVtczknIH1dLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIFNhdWRpUml5YWxcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKdE1qQWdNVGt1TlMwMUxqVWdNUzR5SWlBdlBnb2dJRHh3WVhSb0lHUTlJazB4TkM0MUlEUjJNVEV1TWpKaE1TQXhJREFnTUNBd0lERXVNalF5TGprM1RESXdJREUxTGpJaUlDOCtDaUFnUEhCaGRHZ2daRDBpYlRJdU9UYzRJREU1TGpNMU1TQTFMalUwT1MweExqTTJNMEV5SURJZ01DQXdJREFnTVRBZ01UWldNaUlnTHo0S0lDQThjR0YwYUNCa1BTSk5NakFnTVRBZ05DQXhNeTQxSWlBdlBnbzhMM04yWno0SykgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvc2F1ZGktcml5YWxcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBTYXVkaVJpeWFsID0gY3JlYXRlTHVjaWRlSWNvbignc2F1ZGktcml5YWwnLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgU2F1ZGlSaXlhbDtcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTEwIDJ2M2ExIDEgMCAwIDAgMSAxaDUnLCBrZXk6ICcxeHNwYWwnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTggMTh2LTZhMSAxIDAgMCAwLTEtMWgtNmExIDEgMCAwIDAtMSAxdjYnLCBrZXk6ICcxcmE2MHUnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTggMjJINGEyIDIgMCAwIDEtMi0yVjYnLCBrZXk6ICdwYmxtOWUnIH1dLFxuICBbXG4gICAgJ3BhdGgnLFxuICAgIHtcbiAgICAgIGQ6ICdNOCAxOGEyIDIgMCAwIDEtMi0yVjRhMiAyIDAgMCAxIDItMmg5LjE3MmEyIDIgMCAwIDEgMS40MTQuNTg2bDIuODI4IDIuODI4QTIgMiAwIDAgMSAyMiA2LjgyOFYxNmEyIDIgMCAwIDEtMi4wMSAyeicsXG4gICAgICBrZXk6ICcxeXZlMHgnLFxuICAgIH0sXG4gIF0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgU2F2ZUFsbFxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTVRBZ01uWXpZVEVnTVNBd0lEQWdNQ0F4SURGb05TSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk1UZ2dNVGgyTFRaaE1TQXhJREFnTUNBd0xURXRNV2d0Tm1FeElERWdNQ0F3SURBdE1TQXhkallpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVEU0SURJeVNEUmhNaUF5SURBZ01DQXhMVEl0TWxZMklpQXZQZ29nSUR4d1lYUm9JR1E5SWswNElERTRZVElnTWlBd0lEQWdNUzB5TFRKV05HRXlJRElnTUNBd0lERWdNaTB5YURrdU1UY3lZVElnTWlBd0lEQWdNU0F4TGpReE5DNDFPRFpzTWk0NE1qZ2dNaTQ0TWpoQk1pQXlJREFnTUNBeElESXlJRFl1T0RJNFZqRTJZVElnTWlBd0lEQWdNUzB5TGpBeElESjZJaUF2UGdvOEwzTjJaejRLKSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9zYXZlLWFsbFxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IFNhdmVBbGwgPSBjcmVhdGVMdWNpZGVJY29uKCdzYXZlLWFsbCcsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBTYXZlQWxsO1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdNMTMgMTNIOGExIDEgMCAwIDAtMSAxdjcnLCBrZXk6ICdoOGczOTYnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTQgOGgxJywga2V5OiAnMWxmZW42JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTE3IDIxdi00Jywga2V5OiAnMXlrbnhzJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnbTIgMiAyMCAyMCcsIGtleTogJzFvb2V3eScgfV0sXG4gIFtcbiAgICAncGF0aCcsXG4gICAgeyBkOiAnTTIwLjQxIDIwLjQxQTIgMiAwIDAgMSAxOSAyMUg1YTIgMiAwIDAgMS0yLTJWNWEyIDIgMCAwIDEgLjU5LTEuNDEnLCBrZXk6ICcxdDR2ZGwnIH0sXG4gIF0sXG4gIFsncGF0aCcsIHsgZDogJ00yOS41IDExLjVzNSA1IDQgNScsIGtleTogJ3p6bjRpNicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ005IDNoNi4yYTIgMiAwIDAgMSAxLjQuNmwzLjggMy44YTIgMiAwIDAgMSAuNiAxLjRWMTUnLCBrZXk6ICcyNGNieTknIH1dLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIFNhdmVPZmZcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1UTWdNVE5JT0dFeElERWdNQ0F3SURBdE1TQXhkamNpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVEUwSURob01TSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk1UY2dNakYyTFRRaUlDOCtDaUFnUEhCaGRHZ2daRDBpYlRJZ01pQXlNQ0F5TUNJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTWpBdU5ERWdNakF1TkRGQk1pQXlJREFnTUNBeElERTVJREl4U0RWaE1pQXlJREFnTUNBeExUSXRNbFkxWVRJZ01pQXdJREFnTVNBdU5Ua3RNUzQwTVNJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTWprdU5TQXhNUzQxY3pVZ05TQTBJRFVpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVGtnTTJnMkxqSmhNaUF5SURBZ01DQXhJREV1TkM0MmJETXVPQ0F6TGpoaE1pQXlJREFnTUNBeElDNDJJREV1TkZZeE5TSWdMejRLUEM5emRtYytDZz09KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9zYXZlLW9mZlxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IFNhdmVPZmYgPSBjcmVhdGVMdWNpZGVJY29uKCdzYXZlLW9mZicsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBTYXZlT2ZmO1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbXG4gICAgJ3BhdGgnLFxuICAgIHtcbiAgICAgIGQ6ICdNMTUuMiAzYTIgMiAwIDAgMSAxLjQuNmwzLjggMy44YTIgMiAwIDAgMSAuNiAxLjRWMTlhMiAyIDAgMCAxLTIgMkg1YTIgMiAwIDAgMS0yLTJWNWEyIDIgMCAwIDEgMi0yeicsXG4gICAgICBrZXk6ICcxYzg0NzYnLFxuICAgIH0sXG4gIF0sXG4gIFsncGF0aCcsIHsgZDogJ00xNyAyMXYtN2ExIDEgMCAwIDAtMS0xSDhhMSAxIDAgMCAwLTEgMXY3Jywga2V5OiAnMXlkdG9zJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTcgM3Y0YTEgMSAwIDAgMCAxIDFoNycsIGtleTogJ3Q1MXU3MycgfV0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgU2F2ZVxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTVRVdU1pQXpZVElnTWlBd0lEQWdNU0F4TGpRdU5td3pMamdnTXk0NFlUSWdNaUF3SURBZ01TQXVOaUF4TGpSV01UbGhNaUF5SURBZ01DQXhMVElnTWtnMVlUSWdNaUF3SURBZ01TMHlMVEpXTldFeUlESWdNQ0F3SURFZ01pMHllaUlnTHo0S0lDQThjR0YwYUNCa1BTSk5NVGNnTWpGMkxUZGhNU0F4SURBZ01DQXdMVEV0TVVnNFlURWdNU0F3SURBZ01DMHhJREYyTnlJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTnlBemRqUmhNU0F4SURBZ01DQXdJREVnTVdnM0lpQXZQZ284TDNOMlp6NEspIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL3NhdmVcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBTYXZlID0gY3JlYXRlTHVjaWRlSWNvbignc2F2ZScsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBTYXZlO1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdNNSA3djExYTEgMSAwIDAgMCAxIDFoMTEnLCBrZXk6ICcxM2R0MWonIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNNS4yOTMgMTguNzA3IDExIDEzJywga2V5OiAnZXpnYnN4JyB9XSxcbiAgWydjaXJjbGUnLCB7IGN4OiAnMTknLCBjeTogJzE5JywgcjogJzInLCBrZXk6ICcxN2Y1Y2cnIH1dLFxuICBbJ2NpcmNsZScsIHsgY3g6ICc1JywgY3k6ICc1JywgcjogJzInLCBrZXk6ICcxZ3d2ODMnIH1dLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIFNjYWxlM2RcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk5TQTNkakV4WVRFZ01TQXdJREFnTUNBeElERm9NVEVpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVFV1TWpreklERTRMamN3TnlBeE1TQXhNeUlnTHo0S0lDQThZMmx5WTJ4bElHTjRQU0l4T1NJZ1kzazlJakU1SWlCeVBTSXlJaUF2UGdvZ0lEeGphWEpqYkdVZ1kzZzlJalVpSUdONVBTSTFJaUJ5UFNJeUlpQXZQZ284TDNOMlp6NEspIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL3NjYWxlLTNkXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgU2NhbGUzZCA9IGNyZWF0ZUx1Y2lkZUljb24oJ3NjYWxlLTNkJywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IFNjYWxlM2Q7XG4iLCJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ20xNiAxNiAzLTggMyA4Yy0uODcuNjUtMS45MiAxLTMgMXMtMi4xMy0uMzUtMy0xWicsIGtleTogJzdnNm50dScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ20yIDE2IDMtOCAzIDhjLS44Ny42NS0xLjkyIDEtMyAxcy0yLjEzLS4zNS0zLTFaJywga2V5OiAnaWp3czdyJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTcgMjFoMTAnLCBrZXk6ICcxYjBjZDUnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTIgM3YxOCcsIGtleTogJzEwOHhoMycgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00zIDdoMmMyIDAgNS0xIDctMiAyIDEgNSAyIDcgMmgyJywga2V5OiAnM2d3YncyJyB9XSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBTY2FsZVxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0p0TVRZZ01UWWdNeTA0SURNZ09HTXRMamczTGpZMUxURXVPVElnTVMweklERnpMVEl1TVRNdExqTTFMVE10TVZvaUlDOCtDaUFnUEhCaGRHZ2daRDBpYlRJZ01UWWdNeTA0SURNZ09HTXRMamczTGpZMUxURXVPVElnTVMweklERnpMVEl1TVRNdExqTTFMVE10TVZvaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRjZ01qRm9NVEFpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVEV5SUROMk1UZ2lJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRUTWdOMmd5WXpJZ01DQTFMVEVnTnkweUlESWdNU0ExSURJZ055QXlhRElpSUM4K0Nqd3ZjM1puUGdvPSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvc2NhbGVcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBTY2FsZSA9IGNyZWF0ZUx1Y2lkZUljb24oJ3NjYWxlJywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IFNjYWxlO1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdNMTIgM0g1YTIgMiAwIDAgMC0yIDJ2MTRhMiAyIDAgMCAwIDIgMmgxNGEyIDIgMCAwIDAgMi0ydi03Jywga2V5OiAnMW0wdjZnJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTE0IDE1SDl2LTUnLCBrZXk6ICdwaTRqazknIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTYgM2g1djUnLCBrZXk6ICcxODA2bXMnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMjEgMyA5IDE1Jywga2V5OiAnMTVrZGhxJyB9XSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBTY2FsaW5nXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NVElnTTBnMVlUSWdNaUF3SURBZ01DMHlJREoyTVRSaE1pQXlJREFnTUNBd0lESWdNbWd4TkdFeUlESWdNQ0F3SURBZ01pMHlkaTAzSWlBdlBnb2dJRHh3WVhSb0lHUTlJazB4TkNBeE5VZzVkaTAxSWlBdlBnb2dJRHh3WVhSb0lHUTlJazB4TmlBemFEVjJOU0lnTHo0S0lDQThjR0YwYUNCa1BTSk5NakVnTXlBNUlERTFJaUF2UGdvOEwzTjJaejRLKSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9zY2FsaW5nXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgU2NhbGluZyA9IGNyZWF0ZUx1Y2lkZUljb24oJ3NjYWxpbmcnLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgU2NhbGluZztcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTMgN1Y1YTIgMiAwIDAgMSAyLTJoMicsIGtleTogJ2FhN2wxeicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xNyAzaDJhMiAyIDAgMCAxIDIgMnYyJywga2V5OiAnNHFjeTVvJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTIxIDE3djJhMiAyIDAgMCAxLTIgMmgtMicsIGtleTogJzZ2d3J4OCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ003IDIxSDVhMiAyIDAgMCAxLTItMnYtMicsIGtleTogJ2lvcWN6cicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ004IDd2MTAnLCBrZXk6ICcyM3NmamonIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTIgN3YxMCcsIGtleTogJ2pzcHFkdycgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xNyA3djEwJywga2V5OiAnNTc4ZGFwJyB9XSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBTY2FuQmFyY29kZVxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTXlBM1ZqVmhNaUF5SURBZ01DQXhJREl0TW1neUlpQXZQZ29nSUR4d1lYUm9JR1E5SWsweE55QXphREpoTWlBeUlEQWdNQ0F4SURJZ01uWXlJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHlNU0F4TjNZeVlUSWdNaUF3SURBZ01TMHlJREpvTFRJaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRjZ01qRklOV0V5SURJZ01DQXdJREV0TWkweWRpMHlJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMDRJRGQyTVRBaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRFeUlEZDJNVEFpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVEUzSURkMk1UQWlJQzgrQ2p3dmMzWm5QZ289KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9zY2FuLWJhcmNvZGVcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBTY2FuQmFyY29kZSA9IGNyZWF0ZUx1Y2lkZUljb24oJ3NjYW4tYmFyY29kZScsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBTY2FuQmFyY29kZTtcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTMgN1Y1YTIgMiAwIDAgMSAyLTJoMicsIGtleTogJ2FhN2wxeicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xNyAzaDJhMiAyIDAgMCAxIDIgMnYyJywga2V5OiAnNHFjeTVvJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTIxIDE3djJhMiAyIDAgMCAxLTIgMmgtMicsIGtleTogJzZ2d3J4OCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ003IDIxSDVhMiAyIDAgMCAxLTItMnYtMicsIGtleTogJ2lvcWN6cicgfV0sXG4gIFsnY2lyY2xlJywgeyBjeDogJzEyJywgY3k6ICcxMicsIHI6ICcxJywga2V5OiAnNDFoaWxmJyB9XSxcbiAgW1xuICAgICdwYXRoJyxcbiAgICB7XG4gICAgICBkOiAnTTE4Ljk0NCAxMi4zM2ExIDEgMCAwIDAgMC0uNjYgNy41IDcuNSAwIDAgMC0xMy44ODggMCAxIDEgMCAwIDAgMCAuNjYgNy41IDcuNSAwIDAgMCAxMy44ODggMCcsXG4gICAgICBrZXk6ICcxMWFrNGMnLFxuICAgIH0sXG4gIF0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgU2NhbkV5ZVxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTXlBM1ZqVmhNaUF5SURBZ01DQXhJREl0TW1neUlpQXZQZ29nSUR4d1lYUm9JR1E5SWsweE55QXphREpoTWlBeUlEQWdNQ0F4SURJZ01uWXlJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHlNU0F4TjNZeVlUSWdNaUF3SURBZ01TMHlJREpvTFRJaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRjZ01qRklOV0V5SURJZ01DQXdJREV0TWkweWRpMHlJaUF2UGdvZ0lEeGphWEpqYkdVZ1kzZzlJakV5SWlCamVUMGlNVElpSUhJOUlqRWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRURTRMamswTkNBeE1pNHpNMkV4SURFZ01DQXdJREFnTUMwdU5qWWdOeTQxSURjdU5TQXdJREFnTUMweE15NDRPRGdnTUNBeElERWdNQ0F3SURBZ01DQXVOallnTnk0MUlEY3VOU0F3SURBZ01DQXhNeTQ0T0RnZ01DSWdMejRLUEM5emRtYytDZz09KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9zY2FuLWV5ZVxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IFNjYW5FeWUgPSBjcmVhdGVMdWNpZGVJY29uKCdzY2FuLWV5ZScsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBTY2FuRXllO1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdNMyA3VjVhMiAyIDAgMCAxIDItMmgyJywga2V5OiAnYWE3bDF6JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTE3IDNoMmEyIDIgMCAwIDEgMiAydjInLCBrZXk6ICc0cWN5NW8nIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMjEgMTd2MmEyIDIgMCAwIDEtMiAyaC0yJywga2V5OiAnNnZ3cng4JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTcgMjFINWEyIDIgMCAwIDEtMi0ydi0yJywga2V5OiAnaW9xY3pyJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTggMTRzMS41IDIgNCAyIDQtMiA0LTInLCBrZXk6ICcxeTF2anMnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNOSA5aC4wMScsIGtleTogJzFxNW1lNicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xNSA5aC4wMScsIGtleTogJ3gxZGR4cCcgfV0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgU2NhbkZhY2VcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk15QTNWalZoTWlBeUlEQWdNQ0F4SURJdE1tZ3lJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHhOeUF6YURKaE1pQXlJREFnTUNBeElESWdNbll5SWlBdlBnb2dJRHh3WVhSb0lHUTlJazB5TVNBeE4zWXlZVElnTWlBd0lEQWdNUzB5SURKb0xUSWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRUY2dNakZJTldFeUlESWdNQ0F3SURFdE1pMHlkaTB5SWlBdlBnb2dJRHh3WVhSb0lHUTlJazA0SURFMGN6RXVOU0F5SURRZ01pQTBMVElnTkMweUlpQXZQZ29nSUR4d1lYUm9JR1E5SWswNUlEbG9MakF4SWlBdlBnb2dJRHh3WVhSb0lHUTlJazB4TlNBNWFDNHdNU0lnTHo0S1BDOXpkbWMrQ2c9PSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvc2Nhbi1mYWNlXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgU2NhbkZhY2UgPSBjcmVhdGVMdWNpZGVJY29uKCdzY2FuLWZhY2UnLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgU2NhbkZhY2U7XG4iLCJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbXG4gIFtcbiAgICAncGF0aCcsXG4gICAge1xuICAgICAgZDogJ00xMS4yNDYgMTYuNjU3YTEgMSAwIDAgMCAxLjUwOCAwbDMuNTctNC4xMDFBMi43NSAyLjc1IDAgMSAwIDEyIDkuMTY4YTIuNzUgMi43NSAwIDEgMC00LjMyNCAzLjM4OHonLFxuICAgICAga2V5OiAnMWFsZ3JrJyxcbiAgICB9LFxuICBdLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTcgM2gyYTIgMiAwIDAgMSAyIDJ2MicsIGtleTogJzRxY3k1bycgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00yMSAxN3YyYTIgMiAwIDAgMS0yIDJoLTInLCBrZXk6ICc2dndyeDgnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMyA3VjVhMiAyIDAgMCAxIDItMmgyJywga2V5OiAnYWE3bDF6JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTcgMjFINWEyIDIgMCAwIDEtMi0ydi0yJywga2V5OiAnaW9xY3pyJyB9XSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBTY2FuSGVhcnRcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1URXVNalEySURFMkxqWTFOMkV4SURFZ01DQXdJREFnTVM0MU1EZ2dNR3d6TGpVM0xUUXVNVEF4UVRJdU56VWdNaTQzTlNBd0lERWdNQ0F4TWlBNUxqRTJPR0V5TGpjMUlESXVOelVnTUNBeElEQXROQzR6TWpRZ015NHpPRGg2SWlBdlBnb2dJRHh3WVhSb0lHUTlJazB4TnlBemFESmhNaUF5SURBZ01DQXhJRElnTW5ZeUlpQXZQZ29nSUR4d1lYUm9JR1E5SWsweU1TQXhOM1l5WVRJZ01pQXdJREFnTVMweUlESm9MVElpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVE1nTjFZMVlUSWdNaUF3SURBZ01TQXlMVEpvTWlJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTnlBeU1VZzFZVElnTWlBd0lEQWdNUzB5TFRKMkxUSWlJQzgrQ2p3dmMzWm5QZ289KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9zY2FuLWhlYXJ0XG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgU2NhbkhlYXJ0ID0gY3JlYXRlTHVjaWRlSWNvbignc2Nhbi1oZWFydCcsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBTY2FuSGVhcnQ7XG4iLCJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ00zIDdWNWEyIDIgMCAwIDEgMi0yaDInLCBrZXk6ICdhYTdsMXonIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTcgM2gyYTIgMiAwIDAgMSAyIDJ2MicsIGtleTogJzRxY3k1bycgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00yMSAxN3YyYTIgMiAwIDAgMS0yIDJoLTInLCBrZXk6ICc2dndyeDgnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNNyAyMUg1YTIgMiAwIDAgMS0yLTJ2LTInLCBrZXk6ICdpb3FjenInIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNNyAxMmgxMCcsIGtleTogJ2I3dzUyaScgfV0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgU2NhbkxpbmVcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk15QTNWalZoTWlBeUlEQWdNQ0F4SURJdE1tZ3lJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHhOeUF6YURKaE1pQXlJREFnTUNBeElESWdNbll5SWlBdlBnb2dJRHh3WVhSb0lHUTlJazB5TVNBeE4zWXlZVElnTWlBd0lEQWdNUzB5SURKb0xUSWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRUY2dNakZJTldFeUlESWdNQ0F3SURFdE1pMHlkaTB5SWlBdlBnb2dJRHh3WVhSb0lHUTlJazAzSURFeWFERXdJaUF2UGdvOEwzTjJaejRLKSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9zY2FuLWxpbmVcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBTY2FuTGluZSA9IGNyZWF0ZUx1Y2lkZUljb24oJ3NjYW4tbGluZScsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBTY2FuTGluZTtcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTE3IDEydjRhMSAxIDAgMCAxLTEgMWgtNCcsIGtleTogJ3VrNGZkbycgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xNyAzaDJhMiAyIDAgMCAxIDIgMnYyJywga2V5OiAnNHFjeTVvJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTE3IDhWNycsIGtleTogJ3EyZzl3bycgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00yMSAxN3YyYTIgMiAwIDAgMS0yIDJoLTInLCBrZXk6ICc2dndyeDgnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMyA3VjVhMiAyIDAgMCAxIDItMmgyJywga2V5OiAnYWE3bDF6JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTcgMTdoLjAxJywga2V5OiAnMTl4bjdrJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTcgMjFINWEyIDIgMCAwIDEtMi0ydi0yJywga2V5OiAnaW9xY3pyJyB9XSxcbiAgWydyZWN0JywgeyB4OiAnNycsIHk6ICc3Jywgd2lkdGg6ICc1JywgaGVpZ2h0OiAnNScsIHJ4OiAnMScsIGtleTogJ205a3l0cycgfV0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgU2NhblFyQ29kZVxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTVRjZ01USjJOR0V4SURFZ01DQXdJREV0TVNBeGFDMDBJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHhOeUF6YURKaE1pQXlJREFnTUNBeElESWdNbll5SWlBdlBnb2dJRHh3WVhSb0lHUTlJazB4TnlBNFZqY2lJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRUSXhJREUzZGpKaE1pQXlJREFnTUNBeExUSWdNbWd0TWlJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTXlBM1ZqVmhNaUF5SURBZ01DQXhJREl0TW1neUlpQXZQZ29nSUR4d1lYUm9JR1E5SWswM0lERTNhQzR3TVNJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTnlBeU1VZzFZVElnTWlBd0lEQWdNUzB5TFRKMkxUSWlJQzgrQ2lBZ1BISmxZM1FnZUQwaU55SWdlVDBpTnlJZ2QybGtkR2c5SWpVaUlHaGxhV2RvZEQwaU5TSWdjbmc5SWpFaUlDOCtDand2YzNablBnbz0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL3NjYW4tcXItY29kZVxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IFNjYW5RckNvZGUgPSBjcmVhdGVMdWNpZGVJY29uKCdzY2FuLXFyLWNvZGUnLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgU2NhblFyQ29kZTtcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTMgN1Y1YTIgMiAwIDAgMSAyLTJoMicsIGtleTogJ2FhN2wxeicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xNyAzaDJhMiAyIDAgMCAxIDIgMnYyJywga2V5OiAnNHFjeTVvJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTIxIDE3djJhMiAyIDAgMCAxLTIgMmgtMicsIGtleTogJzZ2d3J4OCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ003IDIxSDVhMiAyIDAgMCAxLTItMnYtMicsIGtleTogJ2lvcWN6cicgfV0sXG4gIFsnY2lyY2xlJywgeyBjeDogJzEyJywgY3k6ICcxMicsIHI6ICczJywga2V5OiAnMXY3enJkJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnbTE2IDE2LTEuOS0xLjknLCBrZXk6ICcxZHE5aGYnIH1dLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIFNjYW5TZWFyY2hcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk15QTNWalZoTWlBeUlEQWdNQ0F4SURJdE1tZ3lJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHhOeUF6YURKaE1pQXlJREFnTUNBeElESWdNbll5SWlBdlBnb2dJRHh3WVhSb0lHUTlJazB5TVNBeE4zWXlZVElnTWlBd0lEQWdNUzB5SURKb0xUSWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRUY2dNakZJTldFeUlESWdNQ0F3SURFdE1pMHlkaTB5SWlBdlBnb2dJRHhqYVhKamJHVWdZM2c5SWpFeUlpQmplVDBpTVRJaUlISTlJak1pSUM4K0NpQWdQSEJoZEdnZ1pEMGliVEUySURFMkxURXVPUzB4TGpraUlDOCtDand2YzNablBnbz0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL3NjYW4tc2VhcmNoXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgU2NhblNlYXJjaCA9IGNyZWF0ZUx1Y2lkZUljb24oJ3NjYW4tc2VhcmNoJywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IFNjYW5TZWFyY2g7XG4iLCJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ00zIDdWNWEyIDIgMCAwIDEgMi0yaDInLCBrZXk6ICdhYTdsMXonIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTcgM2gyYTIgMiAwIDAgMSAyIDJ2MicsIGtleTogJzRxY3k1bycgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00yMSAxN3YyYTIgMiAwIDAgMS0yIDJoLTInLCBrZXk6ICc2dndyeDgnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNNyAyMUg1YTIgMiAwIDAgMS0yLTJ2LTInLCBrZXk6ICdpb3FjenInIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNNyA4aDgnLCBrZXk6ICcxamJzZjknIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNNyAxMmgxMCcsIGtleTogJ2I3dzUyaScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ003IDE2aDYnLCBrZXk6ICcxdnljOW0nIH1dLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIFNjYW5UZXh0XG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NeUEzVmpWaE1pQXlJREFnTUNBeElESXRNbWd5SWlBdlBnb2dJRHh3WVhSb0lHUTlJazB4TnlBemFESmhNaUF5SURBZ01DQXhJRElnTW5ZeUlpQXZQZ29nSUR4d1lYUm9JR1E5SWsweU1TQXhOM1l5WVRJZ01pQXdJREFnTVMweUlESm9MVElpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVGNnTWpGSU5XRXlJRElnTUNBd0lERXRNaTB5ZGkweUlpQXZQZ29nSUR4d1lYUm9JR1E5SWswM0lEaG9PQ0lnTHo0S0lDQThjR0YwYUNCa1BTSk5OeUF4TW1neE1DSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk55QXhObWcySWlBdlBnbzhMM04yWno0SykgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvc2Nhbi10ZXh0XG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgU2NhblRleHQgPSBjcmVhdGVMdWNpZGVJY29uKCdzY2FuLXRleHQnLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgU2NhblRleHQ7XG4iLCJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ00zIDdWNWEyIDIgMCAwIDEgMi0yaDInLCBrZXk6ICdhYTdsMXonIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTcgM2gyYTIgMiAwIDAgMSAyIDJ2MicsIGtleTogJzRxY3k1bycgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00yMSAxN3YyYTIgMiAwIDAgMS0yIDJoLTInLCBrZXk6ICc2dndyeDgnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNNyAyMUg1YTIgMiAwIDAgMS0yLTJ2LTInLCBrZXk6ICdpb3FjenInIH1dLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIFNjYW5cbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk15QTNWalZoTWlBeUlEQWdNQ0F4SURJdE1tZ3lJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHhOeUF6YURKaE1pQXlJREFnTUNBeElESWdNbll5SWlBdlBnb2dJRHh3WVhSb0lHUTlJazB5TVNBeE4zWXlZVElnTWlBd0lEQWdNUzB5SURKb0xUSWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRUY2dNakZJTldFeUlESWdNQ0F3SURFdE1pMHlkaTB5SWlBdlBnbzhMM04yWno0SykgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvc2NhblxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IFNjYW4gPSBjcmVhdGVMdWNpZGVJY29uKCdzY2FuJywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IFNjYW47XG4iLCJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ00xNCAyMnYtNGEyIDIgMCAxIDAtNCAwdjQnLCBrZXk6ICdoaGtpY20nIH1dLFxuICBbXG4gICAgJ3BhdGgnLFxuICAgIHtcbiAgICAgIGQ6ICdtMTggMTAgMy40NDcgMS43MjRhMSAxIDAgMCAxIC41NTMuODk0VjIwYTIgMiAwIDAgMS0yIDJINGEyIDIgMCAwIDEtMi0ydi03LjM4MmExIDEgMCAwIDEgLjU1My0uODk0TDYgMTAnLFxuICAgICAga2V5OiAnMXhxaXAxJyxcbiAgICB9LFxuICBdLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTggNXYxNycsIGtleTogJzFzdzZnZicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ200IDYgNy4xMDYtMy41NTNhMiAyIDAgMCAxIDEuNzg4IDBMMjAgNicsIGtleTogJzlkMm1saycgfV0sXG4gIFsncGF0aCcsIHsgZDogJ002IDV2MTcnLCBrZXk6ICcxeGZzbTAnIH1dLFxuICBbJ2NpcmNsZScsIHsgY3g6ICcxMicsIGN5OiAnOScsIHI6ICcyJywga2V5OiAnMTA5Mnd2JyB9XSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBTY2hvb2xcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1UUWdNakoyTFRSaE1pQXlJREFnTVNBd0xUUWdNSFkwSWlBdlBnb2dJRHh3WVhSb0lHUTlJbTB4T0NBeE1DQXpMalEwTnlBeExqY3lOR0V4SURFZ01DQXdJREVnTGpVMU15NDRPVFJXTWpCaE1pQXlJREFnTUNBeExUSWdNa2cwWVRJZ01pQXdJREFnTVMweUxUSjJMVGN1TXpneVlURWdNU0F3SURBZ01TQXVOVFV6TFM0NE9UUk1OaUF4TUNJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTVRnZ05YWXhOeUlnTHo0S0lDQThjR0YwYUNCa1BTSnROQ0EySURjdU1UQTJMVE11TlRVellUSWdNaUF3SURBZ01TQXhMamM0T0NBd1RESXdJRFlpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVFlnTlhZeE55SWdMejRLSUNBOFkybHlZMnhsSUdONFBTSXhNaUlnWTNrOUlqa2lJSEk5SWpJaUlDOCtDand2YzNablBnbz0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL3NjaG9vbFxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IFNjaG9vbCA9IGNyZWF0ZUx1Y2lkZUljb24oJ3NjaG9vbCcsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBTY2hvb2w7XG4iLCJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ001LjQyIDkuNDIgOCAxMicsIGtleTogJzEycGt1cScgfV0sXG4gIFsnY2lyY2xlJywgeyBjeDogJzQnLCBjeTogJzgnLCByOiAnMicsIGtleTogJzEwN214cicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ20xNCA2LTguNTggOC41OCcsIGtleTogJ2d2enU1bCcgfV0sXG4gIFsnY2lyY2xlJywgeyBjeDogJzQnLCBjeTogJzE2JywgcjogJzInLCBrZXk6ICcxZWhxdmMnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTAuOCAxNC44IDE0IDE4Jywga2V5OiAnYXg3bTlyJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTE2IDEyaC0yJywga2V5OiAnMTBhc2diJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTIyIDEyaC0yJywga2V5OiAnMTRqZ3lkJyB9XSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBTY2lzc29yc0xpbmVEYXNoZWRcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk5TNDBNaUE1TGpReUlEZ2dNVElpSUM4K0NpQWdQR05wY21Oc1pTQmplRDBpTkNJZ1kzazlJamdpSUhJOUlqSWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaWJURTBJRFl0T0M0MU9DQTRMalU0SWlBdlBnb2dJRHhqYVhKamJHVWdZM2c5SWpRaUlHTjVQU0l4TmlJZ2NqMGlNaUlnTHo0S0lDQThjR0YwYUNCa1BTSk5NVEF1T0NBeE5DNDRJREUwSURFNElpQXZQZ29nSUR4d1lYUm9JR1E5SWsweE5pQXhNbWd0TWlJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTWpJZ01USm9MVElpSUM4K0Nqd3ZjM1puUGdvPSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvc2Npc3NvcnMtbGluZS1kYXNoZWRcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBTY2lzc29yc0xpbmVEYXNoZWQgPSBjcmVhdGVMdWNpZGVJY29uKCdzY2lzc29ycy1saW5lLWRhc2hlZCcsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBTY2lzc29yc0xpbmVEYXNoZWQ7XG4iLCJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbXG4gIFsnY2lyY2xlJywgeyBjeDogJzYnLCBjeTogJzYnLCByOiAnMycsIGtleTogJzFsaDl3cicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ004LjEyIDguMTIgMTIgMTInLCBrZXk6ICcxYWxrcHYnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMjAgNCA4LjEyIDE1Ljg4Jywga2V5OiAneGd0YW4yJyB9XSxcbiAgWydjaXJjbGUnLCB7IGN4OiAnNicsIGN5OiAnMTgnLCByOiAnMycsIGtleTogJ2ZxbWN5bScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xNC44IDE0LjggMjAgMjAnLCBrZXk6ICdwdG1sM3InIH1dLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIFNjaXNzb3JzXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThZMmx5WTJ4bElHTjRQU0kySWlCamVUMGlOaUlnY2owaU15SWdMejRLSUNBOGNHRjBhQ0JrUFNKTk9DNHhNaUE0TGpFeUlERXlJREV5SWlBdlBnb2dJRHh3WVhSb0lHUTlJazB5TUNBMElEZ3VNVElnTVRVdU9EZ2lJQzgrQ2lBZ1BHTnBjbU5zWlNCamVEMGlOaUlnWTNrOUlqRTRJaUJ5UFNJeklpQXZQZ29nSUR4d1lYUm9JR1E5SWsweE5DNDRJREUwTGpnZ01qQWdNakFpSUM4K0Nqd3ZjM1puUGdvPSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvc2Npc3NvcnNcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBTY2lzc29ycyA9IGNyZWF0ZUx1Y2lkZUljb24oJ3NjaXNzb3JzJywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IFNjaXNzb3JzO1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdNMTMgM0g0YTIgMiAwIDAgMC0yIDJ2MTBhMiAyIDAgMCAwIDIgMmgxNmEyIDIgMCAwIDAgMi0ydi0zJywga2V5OiAnaTh3ZG9iJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTggMjFoOCcsIGtleTogJzFldjZmMycgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xMiAxN3Y0Jywga2V5OiAnMXJpd3ZoJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnbTIyIDMtNSA1Jywga2V5OiAnMTJqdmEwJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnbTE3IDMgNSA1Jywga2V5OiAnazM2dmhlJyB9XSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBTY3JlZW5TaGFyZU9mZlxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTVRNZ00wZzBZVElnTWlBd0lEQWdNQzB5SURKMk1UQmhNaUF5SURBZ01DQXdJRElnTW1neE5tRXlJRElnTUNBd0lEQWdNaTB5ZGkweklpQXZQZ29nSUR4d1lYUm9JR1E5SWswNElESXhhRGdpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVEV5SURFM2RqUWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaWJUSXlJRE10TlNBMUlpQXZQZ29nSUR4d1lYUm9JR1E5SW0weE55QXpJRFVnTlNJZ0x6NEtQQzl6ZG1jK0NnPT0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL3NjcmVlbi1zaGFyZS1vZmZcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBTY3JlZW5TaGFyZU9mZiA9IGNyZWF0ZUx1Y2lkZUljb24oJ3NjcmVlbi1zaGFyZS1vZmYnLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgU2NyZWVuU2hhcmVPZmY7XG4iLCJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ00xMyAzSDRhMiAyIDAgMCAwLTIgMnYxMGEyIDIgMCAwIDAgMiAyaDE2YTIgMiAwIDAgMCAyLTJ2LTMnLCBrZXk6ICdpOHdkb2InIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNOCAyMWg4Jywga2V5OiAnMWV2NmYzJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTEyIDE3djQnLCBrZXk6ICcxcml3dmgnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdtMTcgOCA1LTUnLCBrZXk6ICdmcWlmN28nIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTcgM2g1djUnLCBrZXk6ICcxbzN0dTgnIH1dLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIFNjcmVlblNoYXJlXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NVE1nTTBnMFlUSWdNaUF3SURBZ01DMHlJREoyTVRCaE1pQXlJREFnTUNBd0lESWdNbWd4Tm1FeUlESWdNQ0F3SURBZ01pMHlkaTB6SWlBdlBnb2dJRHh3WVhSb0lHUTlJazA0SURJeGFEZ2lJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRURXlJREUzZGpRaUlDOCtDaUFnUEhCaGRHZ2daRDBpYlRFM0lEZ2dOUzAxSWlBdlBnb2dJRHh3WVhSb0lHUTlJazB4TnlBemFEVjJOU0lnTHo0S1BDOXpkbWMrQ2c9PSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvc2NyZWVuLXNoYXJlXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgU2NyZWVuU2hhcmUgPSBjcmVhdGVMdWNpZGVJY29uKCdzY3JlZW4tc2hhcmUnLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgU2NyZWVuU2hhcmU7XG4iLCJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ00xNSAxMmgtNScsIGtleTogJ3I3a3JjMCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xNSA4aC01Jywga2V5OiAnMWtodXR5JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTE5IDE3VjVhMiAyIDAgMCAwLTItMkg0Jywga2V5OiAneno4MmwzJyB9XSxcbiAgW1xuICAgICdwYXRoJyxcbiAgICB7XG4gICAgICBkOiAnTTggMjFoMTJhMiAyIDAgMCAwIDItMnYtMWExIDEgMCAwIDAtMS0xSDExYTEgMSAwIDAgMC0xIDF2MWEyIDIgMCAxIDEtNCAwVjVhMiAyIDAgMSAwLTQgMHYyYTEgMSAwIDAgMCAxIDFoMycsXG4gICAgICBrZXk6ICcxcGgxZDcnLFxuICAgIH0sXG4gIF0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgU2Nyb2xsVGV4dFxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTVRVZ01USm9MVFVpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVEUxSURob0xUVWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRURTVJREUzVmpWaE1pQXlJREFnTUNBd0xUSXRNa2cwSWlBdlBnb2dJRHh3WVhSb0lHUTlJazA0SURJeGFERXlZVElnTWlBd0lEQWdNQ0F5TFRKMkxURmhNU0F4SURBZ01DQXdMVEV0TVVneE1XRXhJREVnTUNBd0lEQXRNU0F4ZGpGaE1pQXlJREFnTVNBeExUUWdNRlkxWVRJZ01pQXdJREVnTUMwMElEQjJNbUV4SURFZ01DQXdJREFnTVNBeGFETWlJQzgrQ2p3dmMzWm5QZ289KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9zY3JvbGwtdGV4dFxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IFNjcm9sbFRleHQgPSBjcmVhdGVMdWNpZGVJY29uKCdzY3JvbGwtdGV4dCcsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBTY3JvbGxUZXh0O1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdNMTkgMTdWNWEyIDIgMCAwIDAtMi0ySDQnLCBrZXk6ICd6ejgybDMnIH1dLFxuICBbXG4gICAgJ3BhdGgnLFxuICAgIHtcbiAgICAgIGQ6ICdNOCAyMWgxMmEyIDIgMCAwIDAgMi0ydi0xYTEgMSAwIDAgMC0xLTFIMTFhMSAxIDAgMCAwLTEgMXYxYTIgMiAwIDEgMS00IDBWNWEyIDIgMCAxIDAtNCAwdjJhMSAxIDAgMCAwIDEgMWgzJyxcbiAgICAgIGtleTogJzFwaDFkNycsXG4gICAgfSxcbiAgXSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBTY3JvbGxcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1Ua2dNVGRXTldFeUlESWdNQ0F3SURBdE1pMHlTRFFpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVGdnTWpGb01USmhNaUF5SURBZ01DQXdJREl0TW5ZdE1XRXhJREVnTUNBd0lEQXRNUzB4U0RFeFlURWdNU0F3SURBZ01DMHhJREYyTVdFeUlESWdNQ0F4SURFdE5DQXdWalZoTWlBeUlEQWdNU0F3TFRRZ01IWXlZVEVnTVNBd0lEQWdNQ0F4SURGb015SWdMejRLUEM5emRtYytDZz09KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9zY3JvbGxcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBTY3JvbGwgPSBjcmVhdGVMdWNpZGVJY29uKCdzY3JvbGwnLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgU2Nyb2xsO1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdtOCAxMSAyIDIgNC00Jywga2V5OiAnMXNlZDF2JyB9XSxcbiAgWydjaXJjbGUnLCB7IGN4OiAnMTEnLCBjeTogJzExJywgcjogJzgnLCBrZXk6ICc0ZWo5N3UnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdtMjEgMjEtNC4zLTQuMycsIGtleTogJzFxaWUzcScgfV0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgU2VhcmNoQ2hlY2tcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKdE9DQXhNU0F5SURJZ05DMDBJaUF2UGdvZ0lEeGphWEpqYkdVZ1kzZzlJakV4SWlCamVUMGlNVEVpSUhJOUlqZ2lJQzgrQ2lBZ1BIQmhkR2dnWkQwaWJUSXhJREl4TFRRdU15MDBMak1pSUM4K0Nqd3ZjM1puUGdvPSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvc2VhcmNoLWNoZWNrXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgU2VhcmNoQ2hlY2sgPSBjcmVhdGVMdWNpZGVJY29uKCdzZWFyY2gtY2hlY2snLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgU2VhcmNoQ2hlY2s7XG4iLCJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ20xMyAxMy41IDItMi41LTItMi41Jywga2V5OiAnMXJ2eHJoJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnbTIxIDIxLTQuMy00LjMnLCBrZXk6ICcxcWllM3EnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNOSA4LjUgNyAxMWwyIDIuNScsIGtleTogJzZmZndieCcgfV0sXG4gIFsnY2lyY2xlJywgeyBjeDogJzExJywgY3k6ICcxMScsIHI6ICc4Jywga2V5OiAnNGVqOTd1JyB9XSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBTZWFyY2hDb2RlXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSnRNVE1nTVRNdU5TQXlMVEl1TlMweUxUSXVOU0lnTHo0S0lDQThjR0YwYUNCa1BTSnRNakVnTWpFdE5DNHpMVFF1TXlJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOT1NBNExqVWdOeUF4TVd3eUlESXVOU0lnTHo0S0lDQThZMmx5WTJ4bElHTjRQU0l4TVNJZ1kzazlJakV4SWlCeVBTSTRJaUF2UGdvOEwzTjJaejRLKSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9zZWFyY2gtY29kZVxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IFNlYXJjaENvZGUgPSBjcmVhdGVMdWNpZGVJY29uKCdzZWFyY2gtY29kZScsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBTZWFyY2hDb2RlO1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdtMTMuNSA4LjUtNSA1Jywga2V5OiAnMWNzNTVqJyB9XSxcbiAgWydjaXJjbGUnLCB7IGN4OiAnMTEnLCBjeTogJzExJywgcjogJzgnLCBrZXk6ICc0ZWo5N3UnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdtMjEgMjEtNC4zLTQuMycsIGtleTogJzFxaWUzcScgfV0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgU2VhcmNoU2xhc2hcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKdE1UTXVOU0E0TGpVdE5TQTFJaUF2UGdvZ0lEeGphWEpqYkdVZ1kzZzlJakV4SWlCamVUMGlNVEVpSUhJOUlqZ2lJQzgrQ2lBZ1BIQmhkR2dnWkQwaWJUSXhJREl4TFRRdU15MDBMak1pSUM4K0Nqd3ZjM1puUGdvPSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvc2VhcmNoLXNsYXNoXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgU2VhcmNoU2xhc2ggPSBjcmVhdGVMdWNpZGVJY29uKCdzZWFyY2gtc2xhc2gnLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgU2VhcmNoU2xhc2g7XG4iLCJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ20xMy41IDguNS01IDUnLCBrZXk6ICcxY3M1NWonIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdtOC41IDguNSA1IDUnLCBrZXk6ICdhOG1leGonIH1dLFxuICBbJ2NpcmNsZScsIHsgY3g6ICcxMScsIGN5OiAnMTEnLCByOiAnOCcsIGtleTogJzRlajk3dScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ20yMSAyMS00LjMtNC4zJywga2V5OiAnMXFpZTNxJyB9XSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBTZWFyY2hYXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSnRNVE11TlNBNExqVXROU0ExSWlBdlBnb2dJRHh3WVhSb0lHUTlJbTA0TGpVZ09DNDFJRFVnTlNJZ0x6NEtJQ0E4WTJseVkyeGxJR040UFNJeE1TSWdZM2s5SWpFeElpQnlQU0k0SWlBdlBnb2dJRHh3WVhSb0lHUTlJbTB5TVNBeU1TMDBMak10TkM0eklpQXZQZ284TDNOMlp6NEspIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL3NlYXJjaC14XG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgU2VhcmNoWCA9IGNyZWF0ZUx1Y2lkZUljb24oJ3NlYXJjaC14JywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IFNlYXJjaFg7XG4iLCJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ20yMSAyMS00LjM0LTQuMzQnLCBrZXk6ICcxNGo3cmonIH1dLFxuICBbJ2NpcmNsZScsIHsgY3g6ICcxMScsIGN5OiAnMTEnLCByOiAnOCcsIGtleTogJzRlajk3dScgfV0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgU2VhcmNoXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSnRNakVnTWpFdE5DNHpOQzAwTGpNMElpQXZQZ29nSUR4amFYSmpiR1VnWTNnOUlqRXhJaUJqZVQwaU1URWlJSEk5SWpnaUlDOCtDand2YzNablBnbz0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL3NlYXJjaFxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IFNlYXJjaCA9IGNyZWF0ZUx1Y2lkZUljb24oJ3NlYXJjaCcsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBTZWFyY2g7XG4iLCJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ00xNiA1YTQgMyAwIDAgMC04IDBjMCA0IDggMyA4IDdhNCAzIDAgMCAxLTggMCcsIGtleTogJ3ZxYW42dicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ004IDE5YTQgMyAwIDAgMCA4IDBjMC00LTgtMy04LTdhNCAzIDAgMCAxIDggMCcsIGtleTogJ3dkamQ4bycgfV0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgU2VjdGlvblxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTVRZZ05XRTBJRE1nTUNBd0lEQXRPQ0F3WXpBZ05DQTRJRE1nT0NBM1lUUWdNeUF3SURBZ01TMDRJREFpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVGdnTVRsaE5DQXpJREFnTUNBd0lEZ2dNR013TFRRdE9DMHpMVGd0TjJFMElETWdNQ0F3SURFZ09DQXdJaUF2UGdvOEwzTjJaejRLKSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9zZWN0aW9uXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgU2VjdGlvbiA9IGNyZWF0ZUx1Y2lkZUljb24oJ3NlY3Rpb24nLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgU2VjdGlvbjtcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgW1xuICAgICdwYXRoJyxcbiAgICB7XG4gICAgICBkOiAnTTMuNzE0IDMuMDQ4YS40OTguNDk4IDAgMCAwLS42ODMuNjI3bDIuODQzIDcuNjI3YTIgMiAwIDAgMSAwIDEuMzk2bC0yLjg0MiA3LjYyN2EuNDk4LjQ5OCAwIDAgMCAuNjgyLjYyN2wxOC04LjVhLjUuNSAwIDAgMCAwLS45MDR6JyxcbiAgICAgIGtleTogJzExN3VhdCcsXG4gICAgfSxcbiAgXSxcbiAgWydwYXRoJywgeyBkOiAnTTYgMTJoMTYnLCBrZXk6ICdzNGNkdTUnIH1dLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIFNlbmRIb3Jpem9udGFsXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NeTQzTVRRZ015NHdORGhoTGpRNU9DNDBPVGdnTUNBd0lEQXRMalk0TXk0Mk1qZHNNaTQ0TkRNZ055NDJNamRoTWlBeUlEQWdNQ0F4SURBZ01TNHpPVFpzTFRJdU9EUXlJRGN1TmpJM1lTNDBPVGd1TkRrNElEQWdNQ0F3SUM0Mk9ESXVOakkzYkRFNExUZ3VOV0V1TlM0MUlEQWdNQ0F3SURBdExqa3dOSG9pSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVFlnTVRKb01UWWlJQzgrQ2p3dmMzWm5QZ289KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9zZW5kLWhvcml6b250YWxcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBTZW5kSG9yaXpvbnRhbCA9IGNyZWF0ZUx1Y2lkZUljb24oJ3NlbmQtaG9yaXpvbnRhbCcsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBTZW5kSG9yaXpvbnRhbDtcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgWydyZWN0JywgeyB4OiAnMTQnLCB5OiAnMTQnLCB3aWR0aDogJzgnLCBoZWlnaHQ6ICc4Jywgcng6ICcyJywga2V5OiAnMWIwYnNvJyB9XSxcbiAgWydyZWN0JywgeyB4OiAnMicsIHk6ICcyJywgd2lkdGg6ICc4JywgaGVpZ2h0OiAnOCcsIHJ4OiAnMicsIGtleTogJzF4MDl2bCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ003IDE0djFhMiAyIDAgMCAwIDIgMmgxJywga2V5OiAncGFvNng2JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTE0IDdoMWEyIDIgMCAwIDEgMiAydjEnLCBrZXk6ICcxOXRkcnUnIH1dLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIFNlbmRUb0JhY2tcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNtVmpkQ0I0UFNJeE5DSWdlVDBpTVRRaUlIZHBaSFJvUFNJNElpQm9aV2xuYUhROUlqZ2lJSEo0UFNJeUlpQXZQZ29nSUR4eVpXTjBJSGc5SWpJaUlIazlJaklpSUhkcFpIUm9QU0k0SWlCb1pXbG5hSFE5SWpnaUlISjRQU0l5SWlBdlBnb2dJRHh3WVhSb0lHUTlJazAzSURFMGRqRmhNaUF5SURBZ01DQXdJRElnTW1neElpQXZQZ29nSUR4d1lYUm9JR1E5SWsweE5DQTNhREZoTWlBeUlEQWdNQ0F4SURJZ01uWXhJaUF2UGdvOEwzTjJaejRLKSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9zZW5kLXRvLWJhY2tcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBTZW5kVG9CYWNrID0gY3JlYXRlTHVjaWRlSWNvbignc2VuZC10by1iYWNrJywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IFNlbmRUb0JhY2s7XG4iLCJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbXG4gIFtcbiAgICAncGF0aCcsXG4gICAge1xuICAgICAgZDogJ00xNC41MzYgMjEuNjg2YS41LjUgMCAwIDAgLjkzNy0uMDI0bDYuNS0xOWEuNDk2LjQ5NiAwIDAgMC0uNjM1LS42MzVsLTE5IDYuNWEuNS41IDAgMCAwLS4wMjQuOTM3bDcuOTMgMy4xOGEyIDIgMCAwIDEgMS4xMTIgMS4xMXonLFxuICAgICAga2V5OiAnMWZmeHkzJyxcbiAgICB9LFxuICBdLFxuICBbJ3BhdGgnLCB7IGQ6ICdtMjEuODU0IDIuMTQ3LTEwLjk0IDEwLjkzOScsIGtleTogJzEyY2pwYScgfV0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgU2VuZFxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTVRRdU5UTTJJREl4TGpZNE5tRXVOUzQxSURBZ01DQXdJQzQ1TXpjdExqQXlOR3cyTGpVdE1UbGhMalE1Tmk0ME9UWWdNQ0F3SURBdExqWXpOUzB1TmpNMWJDMHhPU0EyTGpWaExqVXVOU0F3SURBZ01DMHVNREkwTGprek4ydzNMamt6SURNdU1UaGhNaUF5SURBZ01DQXhJREV1TVRFeUlERXVNVEY2SWlBdlBnb2dJRHh3WVhSb0lHUTlJbTB5TVM0NE5UUWdNaTR4TkRjdE1UQXVPVFFnTVRBdU9UTTVJaUF2UGdvOEwzTjJaejRLKSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9zZW5kXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgU2VuZCA9IGNyZWF0ZUx1Y2lkZUljb24oJ3NlbmQnLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgU2VuZDtcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnbTE2IDE2LTQgNC00LTQnLCBrZXk6ICczZHY4amUnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMyAxMmgxOCcsIGtleTogJzFpMm4yMScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ204IDggNC00IDQgNCcsIGtleTogJzJic2NtMicgfV0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgU2VwYXJhdG9ySG9yaXpvbnRhbFxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0p0TVRZZ01UWXROQ0EwTFRRdE5DSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk15QXhNbWd4T0NJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0p0T0NBNElEUXROQ0EwSURRaUlDOCtDand2YzNablBnbz0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL3NlcGFyYXRvci1ob3Jpem9udGFsXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgU2VwYXJhdG9ySG9yaXpvbnRhbCA9IGNyZWF0ZUx1Y2lkZUljb24oJ3NlcGFyYXRvci1ob3Jpem9udGFsJywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IFNlcGFyYXRvckhvcml6b250YWw7XG4iLCJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ00xMiAzdjE4Jywga2V5OiAnMTA4eGgzJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnbTE2IDE2IDQtNC00LTQnLCBrZXk6ICcxanM1NzknIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdtOCA4LTQgNCA0IDQnLCBrZXk6ICcxd2hlbXMnIH1dLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIFNlcGFyYXRvclZlcnRpY2FsXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NVElnTTNZeE9DSWdMejRLSUNBOGNHRjBhQ0JrUFNKdE1UWWdNVFlnTkMwMExUUXROQ0lnTHo0S0lDQThjR0YwYUNCa1BTSnRPQ0E0TFRRZ05DQTBJRFFpSUM4K0Nqd3ZjM1puUGdvPSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvc2VwYXJhdG9yLXZlcnRpY2FsXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgU2VwYXJhdG9yVmVydGljYWwgPSBjcmVhdGVMdWNpZGVJY29uKCdzZXBhcmF0b3ItdmVydGljYWwnLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgU2VwYXJhdG9yVmVydGljYWw7XG4iLCJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ20xMC44NTIgMTQuNzcyLS4zODMuOTIzJywga2V5OiAnMTF2aWw2JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTEzLjE0OCAxNC43NzJhMyAzIDAgMSAwLTIuMjk2LTUuNTQ0bC0uMzgzLS45MjMnLCBrZXk6ICcxdjNjbGInIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdtMTMuMTQ4IDkuMjI4LjM4My0uOTIzJywga2V5OiAndDJ6enljJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnbTEzLjUzIDE1LjY5Ni0uMzgyLS45MjRhMyAzIDAgMSAxLTIuMjk2LTUuNTQ0Jywga2V5OiAnMWJ4Zml2JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnbTE0Ljc3MiAxMC44NTIuOTIzLS4zODMnLCBrZXk6ICdrOW04Y3onIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdtMTQuNzcyIDEzLjE0OC45MjMuMzgzJywga2V5OiAnMXh2aHd3JyB9XSxcbiAgW1xuICAgICdwYXRoJyxcbiAgICB7XG4gICAgICBkOiAnTTQuNSAxMEg0YTIgMiAwIDAgMS0yLTJWNGEyIDIgMCAwIDEgMi0yaDE2YTIgMiAwIDAgMSAyIDJ2NGEyIDIgMCAwIDEtMiAyaC0uNScsXG4gICAgICBrZXk6ICd0bjhkYXMnLFxuICAgIH0sXG4gIF0sXG4gIFtcbiAgICAncGF0aCcsXG4gICAge1xuICAgICAgZDogJ000LjUgMTRINGEyIDIgMCAwIDAtMiAydjRhMiAyIDAgMCAwIDIgMmgxNmEyIDIgMCAwIDAgMi0ydi00YTIgMiAwIDAgMC0yLTJoLS41JyxcbiAgICAgIGtleTogJzFnMnB2ZScsXG4gICAgfSxcbiAgXSxcbiAgWydwYXRoJywgeyBkOiAnTTYgMThoLjAxJywga2V5OiAndWh5d2VuJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTYgNmguMDEnLCBrZXk6ICcxdXRydXQnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdtOS4yMjggMTAuODUyLS45MjMtLjM4MycsIGtleTogJzF3dGIzMCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ205LjIyOCAxMy4xNDgtLjkyMy4zODMnLCBrZXk6ICcxYTgzMHgnIH1dLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIFNlcnZlckNvZ1xuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0p0TVRBdU9EVXlJREUwTGpjM01pMHVNemd6TGpreU15SWdMejRLSUNBOGNHRjBhQ0JrUFNKTk1UTXVNVFE0SURFMExqYzNNbUV6SURNZ01DQXhJREF0TWk0eU9UWXROUzQxTkRSc0xTNHpPRE10TGpreU15SWdMejRLSUNBOGNHRjBhQ0JrUFNKdE1UTXVNVFE0SURrdU1qSTRMak00TXkwdU9USXpJaUF2UGdvZ0lEeHdZWFJvSUdROUltMHhNeTQxTXlBeE5TNDJPVFl0TGpNNE1pMHVPVEkwWVRNZ015QXdJREVnTVMweUxqSTVOaTAxTGpVME5DSWdMejRLSUNBOGNHRjBhQ0JrUFNKdE1UUXVOemN5SURFd0xqZzFNaTQ1TWpNdExqTTRNeUlnTHo0S0lDQThjR0YwYUNCa1BTSnRNVFF1TnpjeUlERXpMakUwT0M0NU1qTXVNemd6SWlBdlBnb2dJRHh3WVhSb0lHUTlJazAwTGpVZ01UQklOR0V5SURJZ01DQXdJREV0TWkweVZqUmhNaUF5SURBZ01DQXhJREl0TW1neE5tRXlJRElnTUNBd0lERWdNaUF5ZGpSaE1pQXlJREFnTUNBeExUSWdNbWd0TGpVaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRRdU5TQXhORWcwWVRJZ01pQXdJREFnTUMweUlESjJOR0V5SURJZ01DQXdJREFnTWlBeWFERTJZVElnTWlBd0lEQWdNQ0F5TFRKMkxUUmhNaUF5SURBZ01DQXdMVEl0TW1ndExqVWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRUWWdNVGhvTGpBeElpQXZQZ29nSUR4d1lYUm9JR1E5SWswMklEWm9MakF4SWlBdlBnb2dJRHh3WVhSb0lHUTlJbTA1TGpJeU9DQXhNQzQ0TlRJdExqa3lNeTB1TXpneklpQXZQZ29nSUR4d1lYUm9JR1E5SW0wNUxqSXlPQ0F4TXk0eE5EZ3RMamt5TXk0ek9ETWlJQzgrQ2p3dmMzWm5QZ289KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9zZXJ2ZXItY29nXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgU2VydmVyQ29nID0gY3JlYXRlTHVjaWRlSWNvbignc2VydmVyLWNvZycsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBTZXJ2ZXJDb2c7XG4iLCJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbXG4gIFtcbiAgICAncGF0aCcsXG4gICAge1xuICAgICAgZDogJ002IDEwSDRhMiAyIDAgMCAxLTItMlY0YTIgMiAwIDAgMSAyLTJoMTZhMiAyIDAgMCAxIDIgMnY0YTIgMiAwIDAgMS0yIDJoLTInLFxuICAgICAga2V5OiAnNGI5ZHFjJyxcbiAgICB9LFxuICBdLFxuICBbXG4gICAgJ3BhdGgnLFxuICAgIHtcbiAgICAgIGQ6ICdNNiAxNEg0YTIgMiAwIDAgMC0yIDJ2NGEyIDIgMCAwIDAgMiAyaDE2YTIgMiAwIDAgMCAyLTJ2LTRhMiAyIDAgMCAwLTItMmgtMicsXG4gICAgICBrZXk6ICcyMm5ua2QnLFxuICAgIH0sXG4gIF0sXG4gIFsncGF0aCcsIHsgZDogJ002IDZoLjAxJywga2V5OiAnMXV0cnV0JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTYgMThoLjAxJywga2V5OiAndWh5d2VuJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnbTEzIDYtNCA2aDZsLTQgNicsIGtleTogJzE0aHFpaCcgfV0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgU2VydmVyQ3Jhc2hcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk5pQXhNRWcwWVRJZ01pQXdJREFnTVMweUxUSldOR0V5SURJZ01DQXdJREVnTWkweWFERTJZVElnTWlBd0lEQWdNU0F5SURKMk5HRXlJRElnTUNBd0lERXRNaUF5YUMweUlpQXZQZ29nSUR4d1lYUm9JR1E5SWswMklERTBTRFJoTWlBeUlEQWdNQ0F3TFRJZ01uWTBZVElnTWlBd0lEQWdNQ0F5SURKb01UWmhNaUF5SURBZ01DQXdJREl0TW5ZdE5HRXlJRElnTUNBd0lEQXRNaTB5YUMweUlpQXZQZ29nSUR4d1lYUm9JR1E5SWswMklEWm9MakF4SWlBdlBnb2dJRHh3WVhSb0lHUTlJazAySURFNGFDNHdNU0lnTHo0S0lDQThjR0YwYUNCa1BTSnRNVE1nTmkwMElEWm9ObXd0TkNBMklpQXZQZ284TDNOMlp6NEspIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL3NlcnZlci1jcmFzaFxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IFNlcnZlckNyYXNoID0gY3JlYXRlTHVjaWRlSWNvbignc2VydmVyLWNyYXNoJywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IFNlcnZlckNyYXNoO1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdNNyAyaDEzYTIgMiAwIDAgMSAyIDJ2NGEyIDIgMCAwIDEtMiAyaC01Jywga2V5OiAnYnQyc2l2JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTEwIDEwIDIuNSAyLjVDMiAyIDIgMi41IDIgNXYzYTIgMiAwIDAgMCAyIDJoNnonLCBrZXk6ICcxaGpydjEnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMjIgMTd2LTFhMiAyIDAgMCAwLTItMmgtMScsIGtleTogJzFpeW55cicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ000IDE0YTIgMiAwIDAgMC0yIDJ2NGEyIDIgMCAwIDAgMiAyaDE2LjVsMS0uNS41LjUtOC04SDR6Jywga2V5OiAnMTYxZ2dnJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTYgMThoLjAxJywga2V5OiAndWh5d2VuJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnbTIgMiAyMCAyMCcsIGtleTogJzFvb2V3eScgfV0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgU2VydmVyT2ZmXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5OeUF5YURFellUSWdNaUF3SURBZ01TQXlJREoyTkdFeUlESWdNQ0F3SURFdE1pQXlhQzAxSWlBdlBnb2dJRHh3WVhSb0lHUTlJazB4TUNBeE1DQXlMalVnTWk0MVF6SWdNaUF5SURJdU5TQXlJRFYyTTJFeUlESWdNQ0F3SURBZ01pQXlhRFo2SWlBdlBnb2dJRHh3WVhSb0lHUTlJazB5TWlBeE4zWXRNV0V5SURJZ01DQXdJREF0TWkweWFDMHhJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMDBJREUwWVRJZ01pQXdJREFnTUMweUlESjJOR0V5SURJZ01DQXdJREFnTWlBeWFERTJMalZzTVMwdU5TNDFMalV0T0MwNFNEUjZJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMDJJREU0YUM0d01TSWdMejRLSUNBOGNHRjBhQ0JrUFNKdE1pQXlJREl3SURJd0lpQXZQZ284TDNOMlp6NEspIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL3NlcnZlci1vZmZcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBTZXJ2ZXJPZmYgPSBjcmVhdGVMdWNpZGVJY29uKCdzZXJ2ZXItb2ZmJywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IFNlcnZlck9mZjtcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgWydyZWN0JywgeyB3aWR0aDogJzIwJywgaGVpZ2h0OiAnOCcsIHg6ICcyJywgeTogJzInLCByeDogJzInLCByeTogJzInLCBrZXk6ICduZ2t3anEnIH1dLFxuICBbJ3JlY3QnLCB7IHdpZHRoOiAnMjAnLCBoZWlnaHQ6ICc4JywgeDogJzInLCB5OiAnMTQnLCByeDogJzInLCByeTogJzInLCBrZXk6ICdpZWNxaTknIH1dLFxuICBbJ2xpbmUnLCB7IHgxOiAnNicsIHgyOiAnNi4wMScsIHkxOiAnNicsIHkyOiAnNicsIGtleTogJzE2emczMicgfV0sXG4gIFsnbGluZScsIHsgeDE6ICc2JywgeDI6ICc2LjAxJywgeTE6ICcxOCcsIHkyOiAnMTgnLCBrZXk6ICduenc4eXMnIH1dLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIFNlcnZlclxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y21WamRDQjNhV1IwYUQwaU1qQWlJR2hsYVdkb2REMGlPQ0lnZUQwaU1pSWdlVDBpTWlJZ2NuZzlJaklpSUhKNVBTSXlJaUF2UGdvZ0lEeHlaV04wSUhkcFpIUm9QU0l5TUNJZ2FHVnBaMmgwUFNJNElpQjRQU0l5SWlCNVBTSXhOQ0lnY25nOUlqSWlJSEo1UFNJeUlpQXZQZ29nSUR4c2FXNWxJSGd4UFNJMklpQjRNajBpTmk0d01TSWdlVEU5SWpZaUlIa3lQU0kySWlBdlBnb2dJRHhzYVc1bElIZ3hQU0kySWlCNE1qMGlOaTR3TVNJZ2VURTlJakU0SWlCNU1qMGlNVGdpSUM4K0Nqd3ZjM1puUGdvPSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvc2VydmVyXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgU2VydmVyID0gY3JlYXRlTHVjaWRlSWNvbignc2VydmVyJywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IFNlcnZlcjtcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTE0IDE3SDUnLCBrZXk6ICdnZm4zbXgnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTkgN2gtOScsIGtleTogJzZpOXRnJyB9XSxcbiAgWydjaXJjbGUnLCB7IGN4OiAnMTcnLCBjeTogJzE3JywgcjogJzMnLCBrZXk6ICcxOGI0OXknIH1dLFxuICBbJ2NpcmNsZScsIHsgY3g6ICc3JywgY3k6ICc3JywgcjogJzMnLCBrZXk6ICdkZm15MHgnIH1dLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIFNldHRpbmdzMlxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTVRRZ01UZElOU0lnTHo0S0lDQThjR0YwYUNCa1BTSk5NVGtnTjJndE9TSWdMejRLSUNBOFkybHlZMnhsSUdONFBTSXhOeUlnWTNrOUlqRTNJaUJ5UFNJeklpQXZQZ29nSUR4amFYSmpiR1VnWTNnOUlqY2lJR041UFNJM0lpQnlQU0l6SWlBdlBnbzhMM04yWno0SykgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvc2V0dGluZ3MtMlxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IFNldHRpbmdzMiA9IGNyZWF0ZUx1Y2lkZUljb24oJ3NldHRpbmdzLTInLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgU2V0dGluZ3MyO1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbXG4gICAgJ3BhdGgnLFxuICAgIHtcbiAgICAgIGQ6ICdNMTIuMjIgMmgtLjQ0YTIgMiAwIDAgMC0yIDJ2LjE4YTIgMiAwIDAgMS0xIDEuNzNsLS40My4yNWEyIDIgMCAwIDEtMiAwbC0uMTUtLjA4YTIgMiAwIDAgMC0yLjczLjczbC0uMjIuMzhhMiAyIDAgMCAwIC43MyAyLjczbC4xNS4xYTIgMiAwIDAgMSAxIDEuNzJ2LjUxYTIgMiAwIDAgMS0xIDEuNzRsLS4xNS4wOWEyIDIgMCAwIDAtLjczIDIuNzNsLjIyLjM4YTIgMiAwIDAgMCAyLjczLjczbC4xNS0uMDhhMiAyIDAgMCAxIDIgMGwuNDMuMjVhMiAyIDAgMCAxIDEgMS43M1YyMGEyIDIgMCAwIDAgMiAyaC40NGEyIDIgMCAwIDAgMi0ydi0uMThhMiAyIDAgMCAxIDEtMS43M2wuNDMtLjI1YTIgMiAwIDAgMSAyIDBsLjE1LjA4YTIgMiAwIDAgMCAyLjczLS43M2wuMjItLjM5YTIgMiAwIDAgMC0uNzMtMi43M2wtLjE1LS4wOGEyIDIgMCAwIDEtMS0xLjc0di0uNWEyIDIgMCAwIDEgMS0xLjc0bC4xNS0uMDlhMiAyIDAgMCAwIC43My0yLjczbC0uMjItLjM4YTIgMiAwIDAgMC0yLjczLS43M2wtLjE1LjA4YTIgMiAwIDAgMS0yIDBsLS40My0uMjVhMiAyIDAgMCAxLTEtMS43M1Y0YTIgMiAwIDAgMC0yLTJ6JyxcbiAgICAgIGtleTogJzFxbWUyZicsXG4gICAgfSxcbiAgXSxcbiAgWydjaXJjbGUnLCB7IGN4OiAnMTInLCBjeTogJzEyJywgcjogJzMnLCBrZXk6ICcxdjd6cmQnIH1dLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIFNldHRpbmdzXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NVEl1TWpJZ01tZ3RMalEwWVRJZ01pQXdJREFnTUMweUlESjJMakU0WVRJZ01pQXdJREFnTVMweElERXVOek5zTFM0ME15NHlOV0V5SURJZ01DQXdJREV0TWlBd2JDMHVNVFV0TGpBNFlUSWdNaUF3SURBZ01DMHlMamN6TGpjemJDMHVNakl1TXpoaE1pQXlJREFnTUNBd0lDNDNNeUF5TGpjemJDNHhOUzR4WVRJZ01pQXdJREFnTVNBeElERXVOekoyTGpVeFlUSWdNaUF3SURBZ01TMHhJREV1TnpSc0xTNHhOUzR3T1dFeUlESWdNQ0F3SURBdExqY3pJREl1TnpOc0xqSXlMak00WVRJZ01pQXdJREFnTUNBeUxqY3pMamN6YkM0eE5TMHVNRGhoTWlBeUlEQWdNQ0F4SURJZ01Hd3VORE11TWpWaE1pQXlJREFnTUNBeElERWdNUzQzTTFZeU1HRXlJRElnTUNBd0lEQWdNaUF5YUM0ME5HRXlJRElnTUNBd0lEQWdNaTB5ZGkwdU1UaGhNaUF5SURBZ01DQXhJREV0TVM0M00yd3VORE10TGpJMVlUSWdNaUF3SURBZ01TQXlJREJzTGpFMUxqQTRZVElnTWlBd0lEQWdNQ0F5TGpjekxTNDNNMnd1TWpJdExqTTVZVElnTWlBd0lEQWdNQzB1TnpNdE1pNDNNMnd0TGpFMUxTNHdPR0V5SURJZ01DQXdJREV0TVMweExqYzBkaTB1TldFeUlESWdNQ0F3SURFZ01TMHhMamMwYkM0eE5TMHVNRGxoTWlBeUlEQWdNQ0F3SUM0M015MHlMamN6YkMwdU1qSXRMak00WVRJZ01pQXdJREFnTUMweUxqY3pMUzQzTTJ3dExqRTFMakE0WVRJZ01pQXdJREFnTVMweUlEQnNMUzQwTXkwdU1qVmhNaUF5SURBZ01DQXhMVEV0TVM0M00xWTBZVElnTWlBd0lEQWdNQzB5TFRKNklpQXZQZ29nSUR4amFYSmpiR1VnWTNnOUlqRXlJaUJqZVQwaU1USWlJSEk5SWpNaUlDOCtDand2YzNablBnbz0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL3NldHRpbmdzXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgU2V0dGluZ3MgPSBjcmVhdGVMdWNpZGVJY29uKCdzZXR0aW5ncycsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBTZXR0aW5ncztcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgW1xuICAgICdwYXRoJyxcbiAgICB7XG4gICAgICBkOiAnTTguMyAxMGEuNy43IDAgMCAxLS42MjYtMS4wNzlMMTEuNCAzYS43LjcgMCAwIDEgMS4xOTgtLjA0M0wxNi4zIDguOWEuNy43IDAgMCAxLS41NzIgMS4xWicsXG4gICAgICBrZXk6ICcxYm82N3cnLFxuICAgIH0sXG4gIF0sXG4gIFsncmVjdCcsIHsgeDogJzMnLCB5OiAnMTQnLCB3aWR0aDogJzcnLCBoZWlnaHQ6ICc3Jywgcng6ICcxJywga2V5OiAnMWJreXA4JyB9XSxcbiAgWydjaXJjbGUnLCB7IGN4OiAnMTcuNScsIGN5OiAnMTcuNScsIHI6ICczLjUnLCBrZXk6ICd3M3oxMnknIH1dLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIFNoYXBlc1xuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOT0M0eklERXdZUzQzTGpjZ01DQXdJREV0TGpZeU5pMHhMakEzT1V3eE1TNDBJRE5oTGpjdU55QXdJREFnTVNBeExqRTVPQzB1TURRelRERTJMak1nT0M0NVlTNDNMamNnTUNBd0lERXRMalUzTWlBeExqRmFJaUF2UGdvZ0lEeHlaV04wSUhnOUlqTWlJSGs5SWpFMElpQjNhV1IwYUQwaU55SWdhR1ZwWjJoMFBTSTNJaUJ5ZUQwaU1TSWdMejRLSUNBOFkybHlZMnhsSUdONFBTSXhOeTQxSWlCamVUMGlNVGN1TlNJZ2NqMGlNeTQxSWlBdlBnbzhMM04yWno0SykgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvc2hhcGVzXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgU2hhcGVzID0gY3JlYXRlTHVjaWRlSWNvbignc2hhcGVzJywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IFNoYXBlcztcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgWydjaXJjbGUnLCB7IGN4OiAnMTgnLCBjeTogJzUnLCByOiAnMycsIGtleTogJ2dxOGFjZCcgfV0sXG4gIFsnY2lyY2xlJywgeyBjeDogJzYnLCBjeTogJzEyJywgcjogJzMnLCBrZXk6ICd3N25xZHcnIH1dLFxuICBbJ2NpcmNsZScsIHsgY3g6ICcxOCcsIGN5OiAnMTknLCByOiAnMycsIGtleTogJzF4dDBnZycgfV0sXG4gIFsnbGluZScsIHsgeDE6ICc4LjU5JywgeDI6ICcxNS40MicsIHkxOiAnMTMuNTEnLCB5MjogJzE3LjQ5Jywga2V5OiAnNDdteW5rJyB9XSxcbiAgWydsaW5lJywgeyB4MTogJzE1LjQxJywgeDI6ICc4LjU5JywgeTE6ICc2LjUxJywgeTI6ICcxMC40OScsIGtleTogJzFuM21laScgfV0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgU2hhcmUyXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThZMmx5WTJ4bElHTjRQU0l4T0NJZ1kzazlJalVpSUhJOUlqTWlJQzgrQ2lBZ1BHTnBjbU5zWlNCamVEMGlOaUlnWTNrOUlqRXlJaUJ5UFNJeklpQXZQZ29nSUR4amFYSmpiR1VnWTNnOUlqRTRJaUJqZVQwaU1Ua2lJSEk5SWpNaUlDOCtDaUFnUEd4cGJtVWdlREU5SWpndU5Ua2lJSGd5UFNJeE5TNDBNaUlnZVRFOUlqRXpMalV4SWlCNU1qMGlNVGN1TkRraUlDOCtDaUFnUEd4cGJtVWdlREU5SWpFMUxqUXhJaUI0TWowaU9DNDFPU0lnZVRFOUlqWXVOVEVpSUhreVBTSXhNQzQwT1NJZ0x6NEtQQzl6ZG1jK0NnPT0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL3NoYXJlLTJcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBTaGFyZTIgPSBjcmVhdGVMdWNpZGVJY29uKCdzaGFyZS0yJywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IFNoYXJlMjtcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTEyIDJ2MTMnLCBrZXk6ICcxa204ZjUnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdtMTYgNi00LTQtNCA0Jywga2V5OiAnMTN5bzQzJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTQgMTJ2OGEyIDIgMCAwIDAgMiAyaDEyYTIgMiAwIDAgMCAyLTJ2LTgnLCBrZXk6ICcxYjJoaGonIH1dLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIFNoYXJlXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NVElnTW5ZeE15SWdMejRLSUNBOGNHRjBhQ0JrUFNKdE1UWWdOaTAwTFRRdE5DQTBJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMDBJREV5ZGpoaE1pQXlJREFnTUNBd0lESWdNbWd4TW1FeUlESWdNQ0F3SURBZ01pMHlkaTA0SWlBdlBnbzhMM04yWno0SykgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvc2hhcmVcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBTaGFyZSA9IGNyZWF0ZUx1Y2lkZUljb24oJ3NoYXJlJywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IFNoYXJlO1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbJ3JlY3QnLCB7IHdpZHRoOiAnMTgnLCBoZWlnaHQ6ICcxOCcsIHg6ICczJywgeTogJzMnLCByeDogJzInLCByeTogJzInLCBrZXk6ICcxbTNhZ24nIH1dLFxuICBbJ2xpbmUnLCB7IHgxOiAnMycsIHgyOiAnMjEnLCB5MTogJzknLCB5MjogJzknLCBrZXk6ICcxdnFrNnEnIH1dLFxuICBbJ2xpbmUnLCB7IHgxOiAnMycsIHgyOiAnMjEnLCB5MTogJzE1JywgeTI6ICcxNScsIGtleTogJ28yc2J5eicgfV0sXG4gIFsnbGluZScsIHsgeDE6ICc5JywgeDI6ICc5JywgeTE6ICc5JywgeTI6ICcyMScsIGtleTogJzFpYjYwYycgfV0sXG4gIFsnbGluZScsIHsgeDE6ICcxNScsIHgyOiAnMTUnLCB5MTogJzknLCB5MjogJzIxJywga2V5OiAnMW4yNmZ0JyB9XSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBTaGVldFxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y21WamRDQjNhV1IwYUQwaU1UZ2lJR2hsYVdkb2REMGlNVGdpSUhnOUlqTWlJSGs5SWpNaUlISjRQU0l5SWlCeWVUMGlNaUlnTHo0S0lDQThiR2x1WlNCNE1UMGlNeUlnZURJOUlqSXhJaUI1TVQwaU9TSWdlVEk5SWpraUlDOCtDaUFnUEd4cGJtVWdlREU5SWpNaUlIZ3lQU0l5TVNJZ2VURTlJakUxSWlCNU1qMGlNVFVpSUM4K0NpQWdQR3hwYm1VZ2VERTlJamtpSUhneVBTSTVJaUI1TVQwaU9TSWdlVEk5SWpJeElpQXZQZ29nSUR4c2FXNWxJSGd4UFNJeE5TSWdlREk5SWpFMUlpQjVNVDBpT1NJZ2VUSTlJakl4SWlBdlBnbzhMM04yWno0SykgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvc2hlZXRcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBTaGVldCA9IGNyZWF0ZUx1Y2lkZUljb24oJ3NoZWV0JywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IFNoZWV0O1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbXG4gICAgJ3BhdGgnLFxuICAgIHtcbiAgICAgIGQ6ICdNMTQgMTFhMiAyIDAgMSAxLTQgMCA0IDQgMCAwIDEgOCAwIDYgNiAwIDAgMS0xMiAwIDggOCAwIDAgMSAxNiAwIDEwIDEwIDAgMSAxLTIwIDAgMTEuOTMgMTEuOTMgMCAwIDEgMi40Mi03LjIyIDIgMiAwIDEgMSAzLjE2IDIuNDQnLFxuICAgICAga2V5OiAnMWNuNTUyJyxcbiAgICB9LFxuICBdLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIFNoZWxsXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NVFFnTVRGaE1pQXlJREFnTVNBeExUUWdNQ0EwSURRZ01DQXdJREVnT0NBd0lEWWdOaUF3SURBZ01TMHhNaUF3SURnZ09DQXdJREFnTVNBeE5pQXdJREV3SURFd0lEQWdNU0F4TFRJd0lEQWdNVEV1T1RNZ01URXVPVE1nTUNBd0lERWdNaTQwTWkwM0xqSXlJRElnTWlBd0lERWdNU0F6TGpFMklESXVORFFpSUM4K0Nqd3ZjM1puUGdvPSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvc2hlbGxcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBTaGVsbCA9IGNyZWF0ZUx1Y2lkZUljb24oJ3NoZWxsJywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IFNoZWxsO1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbXG4gICAgJ3BhdGgnLFxuICAgIHtcbiAgICAgIGQ6ICdNMjAgMTNjMCA1LTMuNSA3LjUtNy42NiA4Ljk1YTEgMSAwIDAgMS0uNjctLjAxQzcuNSAyMC41IDQgMTggNCAxM1Y2YTEgMSAwIDAgMSAxLTFjMiAwIDQuNS0xLjIgNi4yNC0yLjcyYTEuMTcgMS4xNyAwIDAgMSAxLjUyIDBDMTQuNTEgMy44MSAxNyA1IDE5IDVhMSAxIDAgMCAxIDEgMXonLFxuICAgICAga2V5OiAnb2VsNDF5JyxcbiAgICB9LFxuICBdLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTIgOHY0Jywga2V5OiAnMWdvdDNiJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTEyIDE2aC4wMScsIGtleTogJzFkcmJkaScgfV0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgU2hpZWxkQWxlcnRcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1qQWdNVE5qTUNBMUxUTXVOU0EzTGpVdE55NDJOaUE0TGprMVlURWdNU0F3SURBZ01TMHVOamN0TGpBeFF6Y3VOU0F5TUM0MUlEUWdNVGdnTkNBeE0xWTJZVEVnTVNBd0lEQWdNU0F4TFRGak1pQXdJRFF1TlMweExqSWdOaTR5TkMweUxqY3lZVEV1TVRjZ01TNHhOeUF3SURBZ01TQXhMalV5SURCRE1UUXVOVEVnTXk0NE1TQXhOeUExSURFNUlEVmhNU0F4SURBZ01DQXhJREVnTVhvaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRFeUlEaDJOQ0lnTHo0S0lDQThjR0YwYUNCa1BTSk5NVElnTVRab0xqQXhJaUF2UGdvOEwzTjJaejRLKSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9zaGllbGQtYWxlcnRcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBTaGllbGRBbGVydCA9IGNyZWF0ZUx1Y2lkZUljb24oJ3NoaWVsZC1hbGVydCcsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBTaGllbGRBbGVydDtcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgW1xuICAgICdwYXRoJyxcbiAgICB7XG4gICAgICBkOiAnTTIwIDEzYzAgNS0zLjUgNy41LTcuNjYgOC45NWExIDEgMCAwIDEtLjY3LS4wMUM3LjUgMjAuNSA0IDE4IDQgMTNWNmExIDEgMCAwIDEgMS0xYzIgMCA0LjUtMS4yIDYuMjQtMi43MmExLjE3IDEuMTcgMCAwIDEgMS41MiAwQzE0LjUxIDMuODEgMTcgNSAxOSA1YTEgMSAwIDAgMSAxIDF6JyxcbiAgICAgIGtleTogJ29lbDQxeScsXG4gICAgfSxcbiAgXSxcbiAgWydwYXRoJywgeyBkOiAnbTQuMjQzIDUuMjEgMTQuMzkgMTIuNDcyJywga2V5OiAnMWM5YTdjJyB9XSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBTaGllbGRCYW5cbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1qQWdNVE5qTUNBMUxUTXVOU0EzTGpVdE55NDJOaUE0TGprMVlURWdNU0F3SURBZ01TMHVOamN0TGpBeFF6Y3VOU0F5TUM0MUlEUWdNVGdnTkNBeE0xWTJZVEVnTVNBd0lEQWdNU0F4TFRGak1pQXdJRFF1TlMweExqSWdOaTR5TkMweUxqY3lZVEV1TVRjZ01TNHhOeUF3SURBZ01TQXhMalV5SURCRE1UUXVOVEVnTXk0NE1TQXhOeUExSURFNUlEVmhNU0F4SURBZ01DQXhJREVnTVhvaUlDOCtDaUFnUEhCaGRHZ2daRDBpYlRRdU1qUXpJRFV1TWpFZ01UUXVNemtnTVRJdU5EY3lJaUF2UGdvOEwzTjJaejRLKSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9zaGllbGQtYmFuXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgU2hpZWxkQmFuID0gY3JlYXRlTHVjaWRlSWNvbignc2hpZWxkLWJhbicsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBTaGllbGRCYW47XG4iLCJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbXG4gIFtcbiAgICAncGF0aCcsXG4gICAge1xuICAgICAgZDogJ00yMCAxM2MwIDUtMy41IDcuNS03LjY2IDguOTVhMSAxIDAgMCAxLS42Ny0uMDFDNy41IDIwLjUgNCAxOCA0IDEzVjZhMSAxIDAgMCAxIDEtMWMyIDAgNC41LTEuMiA2LjI0LTIuNzJhMS4xNyAxLjE3IDAgMCAxIDEuNTIgMEMxNC41MSAzLjgxIDE3IDUgMTkgNWExIDEgMCAwIDEgMSAxeicsXG4gICAgICBrZXk6ICdvZWw0MXknLFxuICAgIH0sXG4gIF0sXG4gIFsncGF0aCcsIHsgZDogJ205IDEyIDIgMiA0LTQnLCBrZXk6ICdkem1tNzQnIH1dLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIFNoaWVsZENoZWNrXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NakFnTVROak1DQTFMVE11TlNBM0xqVXROeTQyTmlBNExqazFZVEVnTVNBd0lEQWdNUzB1TmpjdExqQXhRemN1TlNBeU1DNDFJRFFnTVRnZ05DQXhNMVkyWVRFZ01TQXdJREFnTVNBeExURmpNaUF3SURRdU5TMHhMaklnTmk0eU5DMHlMamN5WVRFdU1UY2dNUzR4TnlBd0lEQWdNU0F4TGpVeUlEQkRNVFF1TlRFZ015NDRNU0F4TnlBMUlERTVJRFZoTVNBeElEQWdNQ0F4SURFZ01Yb2lJQzgrQ2lBZ1BIQmhkR2dnWkQwaWJUa2dNVElnTWlBeUlEUXROQ0lnTHo0S1BDOXpkbWMrQ2c9PSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvc2hpZWxkLWNoZWNrXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgU2hpZWxkQ2hlY2sgPSBjcmVhdGVMdWNpZGVJY29uKCdzaGllbGQtY2hlY2snLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgU2hpZWxkQ2hlY2s7XG4iLCJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbXG4gIFtcbiAgICAncGF0aCcsXG4gICAge1xuICAgICAgZDogJ00yMCAxM2MwIDUtMy41IDcuNS03LjY2IDguOTVhMSAxIDAgMCAxLS42Ny0uMDFDNy41IDIwLjUgNCAxOCA0IDEzVjZhMSAxIDAgMCAxIDEtMWMyIDAgNC41LTEuMiA2LjI0LTIuNzJhMS4xNyAxLjE3IDAgMCAxIDEuNTIgMEMxNC41MSAzLjgxIDE3IDUgMTkgNWExIDEgMCAwIDEgMSAxeicsXG4gICAgICBrZXk6ICdvZWw0MXknLFxuICAgIH0sXG4gIF0sXG4gIFsncGF0aCcsIHsgZDogJ00xMiAyMlYyJywga2V5OiAnenM2czZvJyB9XSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBTaGllbGRIYWxmXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NakFnTVROak1DQTFMVE11TlNBM0xqVXROeTQyTmlBNExqazFZVEVnTVNBd0lEQWdNUzB1TmpjdExqQXhRemN1TlNBeU1DNDFJRFFnTVRnZ05DQXhNMVkyWVRFZ01TQXdJREFnTVNBeExURmpNaUF3SURRdU5TMHhMaklnTmk0eU5DMHlMamN5WVRFdU1UY2dNUzR4TnlBd0lEQWdNU0F4TGpVeUlEQkRNVFF1TlRFZ015NDRNU0F4TnlBMUlERTVJRFZoTVNBeElEQWdNQ0F4SURFZ01Yb2lJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRURXlJREl5VmpJaUlDOCtDand2YzNablBnbz0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL3NoaWVsZC1oYWxmXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgU2hpZWxkSGFsZiA9IGNyZWF0ZUx1Y2lkZUljb24oJ3NoaWVsZC1oYWxmJywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IFNoaWVsZEhhbGY7XG4iLCJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbXG4gIFtcbiAgICAncGF0aCcsXG4gICAge1xuICAgICAgZDogJ00yMCAxM2MwIDUtMy41IDcuNS03LjY2IDguOTVhMSAxIDAgMCAxLS42Ny0uMDFDNy41IDIwLjUgNCAxOCA0IDEzVjZhMSAxIDAgMCAxIDEtMWMyIDAgNC41LTEuMiA2LjI0LTIuNzJhMS4xNyAxLjE3IDAgMCAxIDEuNTIgMEMxNC41MSAzLjgxIDE3IDUgMTkgNWExIDEgMCAwIDEgMSAxeicsXG4gICAgICBrZXk6ICdvZWw0MXknLFxuICAgIH0sXG4gIF0sXG4gIFsncGF0aCcsIHsgZDogJ004IDEyaC4wMScsIGtleTogJ2N6bTQ3ZicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xMiAxMmguMDEnLCBrZXk6ICcxbXAzamMnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTYgMTJoLjAxJywga2V5OiAnMWw2eG96JyB9XSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBTaGllbGRFbGxpcHNpc1xuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTWpBZ01UTmpNQ0ExTFRNdU5TQTNMalV0Tnk0Mk5pQTRMamsxWVRFZ01TQXdJREFnTVMwdU5qY3RMakF4UXpjdU5TQXlNQzQxSURRZ01UZ2dOQ0F4TTFZMllURWdNU0F3SURBZ01TQXhMVEZqTWlBd0lEUXVOUzB4TGpJZ05pNHlOQzB5TGpjeVlURXVNVGNnTVM0eE55QXdJREFnTVNBeExqVXlJREJETVRRdU5URWdNeTQ0TVNBeE55QTFJREU1SURWaE1TQXhJREFnTUNBeElERWdNWG9pSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVGdnTVRKb0xqQXhJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHhNaUF4TW1ndU1ERWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRURTJJREV5YUM0d01TSWdMejRLUEM5emRtYytDZz09KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9zaGllbGQtZWxsaXBzaXNcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBTaGllbGRFbGxpcHNpcyA9IGNyZWF0ZUx1Y2lkZUljb24oJ3NoaWVsZC1lbGxpcHNpcycsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBTaGllbGRFbGxpcHNpcztcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgW1xuICAgICdwYXRoJyxcbiAgICB7XG4gICAgICBkOiAnTTIwIDEzYzAgNS0zLjUgNy41LTcuNjYgOC45NWExIDEgMCAwIDEtLjY3LS4wMUM3LjUgMjAuNSA0IDE4IDQgMTNWNmExIDEgMCAwIDEgMS0xYzIgMCA0LjUtMS4yIDYuMjQtMi43MmExLjE3IDEuMTcgMCAwIDEgMS41MiAwQzE0LjUxIDMuODEgMTcgNSAxOSA1YTEgMSAwIDAgMSAxIDF6JyxcbiAgICAgIGtleTogJ29lbDQxeScsXG4gICAgfSxcbiAgXSxcbiAgWydwYXRoJywgeyBkOiAnTTkgMTJoNicsIGtleTogJzFjNTJjcScgfV0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgU2hpZWxkTWludXNcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1qQWdNVE5qTUNBMUxUTXVOU0EzTGpVdE55NDJOaUE0TGprMVlURWdNU0F3SURBZ01TMHVOamN0TGpBeFF6Y3VOU0F5TUM0MUlEUWdNVGdnTkNBeE0xWTJZVEVnTVNBd0lEQWdNU0F4TFRGak1pQXdJRFF1TlMweExqSWdOaTR5TkMweUxqY3lZVEV1TVRjZ01TNHhOeUF3SURBZ01TQXhMalV5SURCRE1UUXVOVEVnTXk0NE1TQXhOeUExSURFNUlEVmhNU0F4SURBZ01DQXhJREVnTVhvaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRrZ01USm9OaUlnTHo0S1BDOXpkbWMrQ2c9PSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvc2hpZWxkLW1pbnVzXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgU2hpZWxkTWludXMgPSBjcmVhdGVMdWNpZGVJY29uKCdzaGllbGQtbWludXMnLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgU2hpZWxkTWludXM7XG4iLCJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ20yIDIgMjAgMjAnLCBrZXk6ICcxb29ld3knIH1dLFxuICBbXG4gICAgJ3BhdGgnLFxuICAgIHtcbiAgICAgIGQ6ICdNNSA1YTEgMSAwIDAgMC0xIDF2N2MwIDUgMy41IDcuNSA3LjY3IDguOTRhMSAxIDAgMCAwIC42Ny4wMWMyLjM1LS44MiA0LjQ4LTEuOTcgNS45LTMuNzEnLFxuICAgICAga2V5OiAnMWpsazcwJyxcbiAgICB9LFxuICBdLFxuICBbXG4gICAgJ3BhdGgnLFxuICAgIHtcbiAgICAgIGQ6ICdNOS4zMDkgMy42NTJBMTIuMjUyIDEyLjI1MiAwIDAgMCAxMS4yNCAyLjI4YTEuMTcgMS4xNyAwIDAgMSAxLjUyIDBDMTQuNTEgMy44MSAxNyA1IDE5IDVhMSAxIDAgMCAxIDEgMXY3YTkuNzg0IDkuNzg0IDAgMCAxLS4wOCAxLjI2NCcsXG4gICAgICBrZXk6ICcxOHJwMXYnLFxuICAgIH0sXG4gIF0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgU2hpZWxkT2ZmXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSnRNaUF5SURJd0lESXdJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMDFJRFZoTVNBeElEQWdNQ0F3TFRFZ01YWTNZekFnTlNBekxqVWdOeTQxSURjdU5qY2dPQzQ1TkdFeElERWdNQ0F3SURBZ0xqWTNMakF4WXpJdU16VXRMamd5SURRdU5EZ3RNUzQ1TnlBMUxqa3RNeTQzTVNJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOT1M0ek1Ea2dNeTQyTlRKQk1USXVNalV5SURFeUxqSTFNaUF3SURBZ01DQXhNUzR5TkNBeUxqSTRZVEV1TVRjZ01TNHhOeUF3SURBZ01TQXhMalV5SURCRE1UUXVOVEVnTXk0NE1TQXhOeUExSURFNUlEVmhNU0F4SURBZ01DQXhJREVnTVhZM1lUa3VOemcwSURrdU56ZzBJREFnTUNBeExTNHdPQ0F4TGpJMk5DSWdMejRLUEM5emRtYytDZz09KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9zaGllbGQtb2ZmXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgU2hpZWxkT2ZmID0gY3JlYXRlTHVjaWRlSWNvbignc2hpZWxkLW9mZicsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBTaGllbGRPZmY7XG4iLCJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbXG4gIFtcbiAgICAncGF0aCcsXG4gICAge1xuICAgICAgZDogJ00yMCAxM2MwIDUtMy41IDcuNS03LjY2IDguOTVhMSAxIDAgMCAxLS42Ny0uMDFDNy41IDIwLjUgNCAxOCA0IDEzVjZhMSAxIDAgMCAxIDEtMWMyIDAgNC41LTEuMiA2LjI0LTIuNzJhMS4xNyAxLjE3IDAgMCAxIDEuNTIgMEMxNC41MSAzLjgxIDE3IDUgMTkgNWExIDEgMCAwIDEgMSAxeicsXG4gICAgICBrZXk6ICdvZWw0MXknLFxuICAgIH0sXG4gIF0sXG4gIFsncGF0aCcsIHsgZDogJ005IDEyaDYnLCBrZXk6ICcxYzUyY3EnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTIgOXY2Jywga2V5OiAnMTk5azJvJyB9XSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBTaGllbGRQbHVzXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NakFnTVROak1DQTFMVE11TlNBM0xqVXROeTQyTmlBNExqazFZVEVnTVNBd0lEQWdNUzB1TmpjdExqQXhRemN1TlNBeU1DNDFJRFFnTVRnZ05DQXhNMVkyWVRFZ01TQXdJREFnTVNBeExURmpNaUF3SURRdU5TMHhMaklnTmk0eU5DMHlMamN5WVRFdU1UY2dNUzR4TnlBd0lEQWdNU0F4TGpVeUlEQkRNVFF1TlRFZ015NDRNU0F4TnlBMUlERTVJRFZoTVNBeElEQWdNQ0F4SURFZ01Yb2lJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRUa2dNVEpvTmlJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTVRJZ09YWTJJaUF2UGdvOEwzTjJaejRLKSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9zaGllbGQtcGx1c1xuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IFNoaWVsZFBsdXMgPSBjcmVhdGVMdWNpZGVJY29uKCdzaGllbGQtcGx1cycsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBTaGllbGRQbHVzO1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbXG4gICAgJ3BhdGgnLFxuICAgIHtcbiAgICAgIGQ6ICdNMjAgMTNjMCA1LTMuNSA3LjUtNy42NiA4Ljk1YTEgMSAwIDAgMS0uNjctLjAxQzcuNSAyMC41IDQgMTggNCAxM1Y2YTEgMSAwIDAgMSAxLTFjMiAwIDQuNS0xLjIgNi4yNC0yLjcyYTEuMTcgMS4xNyAwIDAgMSAxLjUyIDBDMTQuNTEgMy44MSAxNyA1IDE5IDVhMSAxIDAgMCAxIDEgMXonLFxuICAgICAga2V5OiAnb2VsNDF5JyxcbiAgICB9LFxuICBdLFxuICBbJ3BhdGgnLCB7IGQ6ICdNNi4zNzYgMTguOTFhNiA2IDAgMCAxIDExLjI0OS4wMDMnLCBrZXk6ICdobmpyZjInIH1dLFxuICBbJ2NpcmNsZScsIHsgY3g6ICcxMicsIGN5OiAnMTEnLCByOiAnNCcsIGtleTogJzFndDM0dicgfV0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgU2hpZWxkVXNlclxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTWpBZ01UTmpNQ0ExTFRNdU5TQTNMalV0Tnk0Mk5pQTRMamsxWVRFZ01TQXdJREFnTVMwdU5qY3RMakF4UXpjdU5TQXlNQzQxSURRZ01UZ2dOQ0F4TTFZMllURWdNU0F3SURBZ01TQXhMVEZqTWlBd0lEUXVOUzB4TGpJZ05pNHlOQzB5TGpjeVlURXVNVGNnTVM0eE55QXdJREFnTVNBeExqVXlJREJETVRRdU5URWdNeTQ0TVNBeE55QTFJREU1SURWaE1TQXhJREFnTUNBeElERWdNWG9pSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVFl1TXpjMklERTRMamt4WVRZZ05pQXdJREFnTVNBeE1TNHlORGt1TURBeklpQXZQZ29nSUR4amFYSmpiR1VnWTNnOUlqRXlJaUJqZVQwaU1URWlJSEk5SWpRaUlDOCtDand2YzNablBnbz0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL3NoaWVsZC11c2VyXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgU2hpZWxkVXNlciA9IGNyZWF0ZUx1Y2lkZUljb24oJ3NoaWVsZC11c2VyJywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IFNoaWVsZFVzZXI7XG4iLCJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbXG4gIFtcbiAgICAncGF0aCcsXG4gICAge1xuICAgICAgZDogJ00yMCAxM2MwIDUtMy41IDcuNS03LjY2IDguOTVhMSAxIDAgMCAxLS42Ny0uMDFDNy41IDIwLjUgNCAxOCA0IDEzVjZhMSAxIDAgMCAxIDEtMWMyIDAgNC41LTEuMiA2LjI0LTIuNzJhMS4xNyAxLjE3IDAgMCAxIDEuNTIgMEMxNC41MSAzLjgxIDE3IDUgMTkgNWExIDEgMCAwIDEgMSAxeicsXG4gICAgICBrZXk6ICdvZWw0MXknLFxuICAgIH0sXG4gIF0sXG4gIFsncGF0aCcsIHsgZDogJ005LjEgOWEzIDMgMCAwIDEgNS44MiAxYzAgMi0zIDMtMyAzJywga2V5OiAnbWhsd2Z0JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTEyIDE3aC4wMScsIGtleTogJ3AzMnAwNScgfV0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgU2hpZWxkUXVlc3Rpb25NYXJrXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NakFnTVROak1DQTFMVE11TlNBM0xqVXROeTQyTmlBNExqazFZVEVnTVNBd0lEQWdNUzB1TmpjdExqQXhRemN1TlNBeU1DNDFJRFFnTVRnZ05DQXhNMVkyWVRFZ01TQXdJREFnTVNBeExURmpNaUF3SURRdU5TMHhMaklnTmk0eU5DMHlMamN5WVRFdU1UY2dNUzR4TnlBd0lEQWdNU0F4TGpVeUlEQkRNVFF1TlRFZ015NDRNU0F4TnlBMUlERTVJRFZoTVNBeElEQWdNQ0F4SURFZ01Yb2lJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRUa3VNU0E1WVRNZ015QXdJREFnTVNBMUxqZ3lJREZqTUNBeUxUTWdNeTB6SURNaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRFeUlERTNhQzR3TVNJZ0x6NEtQQzl6ZG1jK0NnPT0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL3NoaWVsZC1xdWVzdGlvbi1tYXJrXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgU2hpZWxkUXVlc3Rpb25NYXJrID0gY3JlYXRlTHVjaWRlSWNvbignc2hpZWxkLXF1ZXN0aW9uLW1hcmsnLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgU2hpZWxkUXVlc3Rpb25NYXJrO1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbXG4gICAgJ3BhdGgnLFxuICAgIHtcbiAgICAgIGQ6ICdNMjAgMTNjMCA1LTMuNSA3LjUtNy42NiA4Ljk1YTEgMSAwIDAgMS0uNjctLjAxQzcuNSAyMC41IDQgMTggNCAxM1Y2YTEgMSAwIDAgMSAxLTFjMiAwIDQuNS0xLjIgNi4yNC0yLjcyYTEuMTcgMS4xNyAwIDAgMSAxLjUyIDBDMTQuNTEgMy44MSAxNyA1IDE5IDVhMSAxIDAgMCAxIDEgMXonLFxuICAgICAga2V5OiAnb2VsNDF5JyxcbiAgICB9LFxuICBdLFxuICBbJ3BhdGgnLCB7IGQ6ICdtMTQuNSA5LjUtNSA1Jywga2V5OiAnMTdxNHI0JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnbTkuNSA5LjUgNSA1Jywga2V5OiAnMThudDR3JyB9XSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBTaGllbGRYXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NakFnTVROak1DQTFMVE11TlNBM0xqVXROeTQyTmlBNExqazFZVEVnTVNBd0lEQWdNUzB1TmpjdExqQXhRemN1TlNBeU1DNDFJRFFnTVRnZ05DQXhNMVkyWVRFZ01TQXdJREFnTVNBeExURmpNaUF3SURRdU5TMHhMaklnTmk0eU5DMHlMamN5WVRFdU1UY2dNUzR4TnlBd0lEQWdNU0F4TGpVeUlEQkRNVFF1TlRFZ015NDRNU0F4TnlBMUlERTVJRFZoTVNBeElEQWdNQ0F4SURFZ01Yb2lJQzgrQ2lBZ1BIQmhkR2dnWkQwaWJURTBMalVnT1M0MUxUVWdOU0lnTHo0S0lDQThjR0YwYUNCa1BTSnRPUzQxSURrdU5TQTFJRFVpSUM4K0Nqd3ZjM1puUGdvPSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvc2hpZWxkLXhcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBTaGllbGRYID0gY3JlYXRlTHVjaWRlSWNvbignc2hpZWxkLXgnLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgU2hpZWxkWDtcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgW1xuICAgICdwYXRoJyxcbiAgICB7XG4gICAgICBkOiAnTTIwIDEzYzAgNS0zLjUgNy41LTcuNjYgOC45NWExIDEgMCAwIDEtLjY3LS4wMUM3LjUgMjAuNSA0IDE4IDQgMTNWNmExIDEgMCAwIDEgMS0xYzIgMCA0LjUtMS4yIDYuMjQtMi43MmExLjE3IDEuMTcgMCAwIDEgMS41MiAwQzE0LjUxIDMuODEgMTcgNSAxOSA1YTEgMSAwIDAgMSAxIDF6JyxcbiAgICAgIGtleTogJ29lbDQxeScsXG4gICAgfSxcbiAgXSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBTaGllbGRcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1qQWdNVE5qTUNBMUxUTXVOU0EzTGpVdE55NDJOaUE0TGprMVlURWdNU0F3SURBZ01TMHVOamN0TGpBeFF6Y3VOU0F5TUM0MUlEUWdNVGdnTkNBeE0xWTJZVEVnTVNBd0lEQWdNU0F4TFRGak1pQXdJRFF1TlMweExqSWdOaTR5TkMweUxqY3lZVEV1TVRjZ01TNHhOeUF3SURBZ01TQXhMalV5SURCRE1UUXVOVEVnTXk0NE1TQXhOeUExSURFNUlEVmhNU0F4SURBZ01DQXhJREVnTVhvaUlDOCtDand2YzNablBnbz0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL3NoaWVsZFxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IFNoaWVsZCA9IGNyZWF0ZUx1Y2lkZUljb24oJ3NoaWVsZCcsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBTaGllbGQ7XG4iLCJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbXG4gIFsnY2lyY2xlJywgeyBjeDogJzEyJywgY3k6ICcxMicsIHI6ICc4Jywga2V5OiAnNDY4OTltJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTEyIDJ2Ny41Jywga2V5OiAnMWU1cmw1JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnbTE5IDUtNS4yMyA1LjIzJywga2V5OiAnMWV6eHhmJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTIyIDEyaC03LjUnLCBrZXk6ICdsZTE3MTknIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdtMTkgMTktNS4yMy01LjIzJywga2V5OiAncDNmbWduJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTEyIDE0LjVWMjInLCBrZXk6ICdkZ2Ntb3MnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTAuMjMgMTMuNzcgNSAxOScsIGtleTogJ3F3b3BkNCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ005LjUgMTJIMicsIGtleTogJ3I3YnVwOCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xMC4yMyAxMC4yMyA1IDUnLCBrZXk6ICdrMnk3bGonIH1dLFxuICBbJ2NpcmNsZScsIHsgY3g6ICcxMicsIGN5OiAnMTInLCByOiAnMi41Jywga2V5OiAnaXgwdXlqJyB9XSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBTaGlwV2hlZWxcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOFkybHlZMnhsSUdONFBTSXhNaUlnWTNrOUlqRXlJaUJ5UFNJNElpQXZQZ29nSUR4d1lYUm9JR1E5SWsweE1pQXlkamN1TlNJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0p0TVRrZ05TMDFMakl6SURVdU1qTWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRUSXlJREV5YUMwM0xqVWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaWJURTVJREU1TFRVdU1qTXROUzR5TXlJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTVRJZ01UUXVOVll5TWlJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTVRBdU1qTWdNVE11TnpjZ05TQXhPU0lnTHo0S0lDQThjR0YwYUNCa1BTSk5PUzQxSURFeVNESWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRURXdMakl6SURFd0xqSXpJRFVnTlNJZ0x6NEtJQ0E4WTJseVkyeGxJR040UFNJeE1pSWdZM2s5SWpFeUlpQnlQU0l5TGpVaUlDOCtDand2YzNablBnbz0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL3NoaXAtd2hlZWxcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBTaGlwV2hlZWwgPSBjcmVhdGVMdWNpZGVJY29uKCdzaGlwLXdoZWVsJywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IFNoaXBXaGVlbDtcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTEyIDEwLjE4OVYxNCcsIGtleTogJzFwOGNxdScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xMiAydjMnLCBrZXk6ICdxYnF4aGYnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTkgMTNWN2EyIDIgMCAwIDAtMi0ySDdhMiAyIDAgMCAwLTIgMnY2Jywga2V5OiAncXBrc3RxJyB9XSxcbiAgW1xuICAgICdwYXRoJyxcbiAgICB7XG4gICAgICBkOiAnTTE5LjM4IDIwQTExLjYgMTEuNiAwIDAgMCAyMSAxNGwtOC4xODgtMy42MzlhMiAyIDAgMCAwLTEuNjI0IDBMMyAxNGExMS42IDExLjYgMCAwIDAgMi44MSA3Ljc2JyxcbiAgICAgIGtleTogJzd0aWd0YycsXG4gICAgfSxcbiAgXSxcbiAgW1xuICAgICdwYXRoJyxcbiAgICB7XG4gICAgICBkOiAnTTIgMjFjLjYuNSAxLjIgMSAyLjUgMSAyLjUgMCAyLjUtMiA1LTIgMS4zIDAgMS45LjUgMi41IDFzMS4yIDEgMi41IDFjMi41IDAgMi41LTIgNS0yIDEuMyAwIDEuOS41IDIuNSAxJyxcbiAgICAgIGtleTogJzE5MjRqNScsXG4gICAgfSxcbiAgXSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBTaGlwXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NVElnTVRBdU1UZzVWakUwSWlBdlBnb2dJRHh3WVhSb0lHUTlJazB4TWlBeWRqTWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRURTVJREV6VmpkaE1pQXlJREFnTUNBd0xUSXRNa2czWVRJZ01pQXdJREFnTUMweUlESjJOaUlnTHo0S0lDQThjR0YwYUNCa1BTSk5NVGt1TXpnZ01qQkJNVEV1TmlBeE1TNDJJREFnTUNBd0lESXhJREUwYkMwNExqRTRPQzB6TGpZek9XRXlJRElnTUNBd0lEQXRNUzQyTWpRZ01Fd3pJREUwWVRFeExqWWdNVEV1TmlBd0lEQWdNQ0F5TGpneElEY3VOellpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVElnTWpGakxqWXVOU0F4TGpJZ01TQXlMalVnTVNBeUxqVWdNQ0F5TGpVdE1pQTFMVElnTVM0eklEQWdNUzQ1TGpVZ01pNDFJREZ6TVM0eUlERWdNaTQxSURGak1pNDFJREFnTWk0MUxUSWdOUzB5SURFdU15QXdJREV1T1M0MUlESXVOU0F4SWlBdlBnbzhMM04yWno0SykgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvc2hpcFxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IFNoaXAgPSBjcmVhdGVMdWNpZGVJY29uKCdzaGlwJywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IFNoaXA7XG4iLCJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbXG4gIFtcbiAgICAncGF0aCcsXG4gICAge1xuICAgICAgZDogJ00yMC4zOCAzLjQ2IDE2IDJhNCA0IDAgMCAxLTggMEwzLjYyIDMuNDZhMiAyIDAgMCAwLTEuMzQgMi4yM2wuNTggMy40N2ExIDEgMCAwIDAgLjk5Ljg0SDZ2MTBjMCAxLjEuOSAyIDIgMmg4YTIgMiAwIDAgMCAyLTJWMTBoMi4xNWExIDEgMCAwIDAgLjk5LS44NGwuNTgtMy40N2EyIDIgMCAwIDAtMS4zNC0yLjIzeicsXG4gICAgICBrZXk6ICcxd2diaGonLFxuICAgIH0sXG4gIF0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgU2hpcnRcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1qQXVNemdnTXk0ME5pQXhOaUF5WVRRZ05DQXdJREFnTVMwNElEQk1NeTQyTWlBekxqUTJZVElnTWlBd0lEQWdNQzB4TGpNMElESXVNak5zTGpVNElETXVORGRoTVNBeElEQWdNQ0F3SUM0NU9TNDRORWcyZGpFd1l6QWdNUzR4TGprZ01pQXlJREpvT0dFeUlESWdNQ0F3SURBZ01pMHlWakV3YURJdU1UVmhNU0F4SURBZ01DQXdJQzQ1T1MwdU9EUnNMalU0TFRNdU5EZGhNaUF5SURBZ01DQXdMVEV1TXpRdE1pNHlNM29pSUM4K0Nqd3ZjM1puUGdvPSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvc2hpcnRcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBTaGlydCA9IGNyZWF0ZUx1Y2lkZUljb24oJ3NoaXJ0JywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IFNoaXJ0O1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdNMTYgMTBhNCA0IDAgMCAxLTggMCcsIGtleTogJzFsdHZpdycgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00zLjEwMyA2LjAzNGgxNy43OTQnLCBrZXk6ICdhd2MxMXAnIH1dLFxuICBbXG4gICAgJ3BhdGgnLFxuICAgIHtcbiAgICAgIGQ6ICdNMy40IDUuNDY3YTIgMiAwIDAgMC0uNCAxLjJWMjBhMiAyIDAgMCAwIDIgMmgxNGEyIDIgMCAwIDAgMi0yVjYuNjY3YTIgMiAwIDAgMC0uNC0xLjJsLTItMi42NjdBMiAyIDAgMCAwIDE3IDJIN2EyIDIgMCAwIDAtMS42Ljh6JyxcbiAgICAgIGtleTogJ285ODhjbScsXG4gICAgfSxcbiAgXSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBTaG9wcGluZ0JhZ1xuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTVRZZ01UQmhOQ0EwSURBZ01DQXhMVGdnTUNJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTXk0eE1ETWdOaTR3TXpSb01UY3VOemswSWlBdlBnb2dJRHh3WVhSb0lHUTlJazB6TGpRZ05TNDBOamRoTWlBeUlEQWdNQ0F3TFM0MElERXVNbFl5TUdFeUlESWdNQ0F3SURBZ01pQXlhREUwWVRJZ01pQXdJREFnTUNBeUxUSldOaTQyTmpkaE1pQXlJREFnTUNBd0xTNDBMVEV1TW13dE1pMHlMalkyTjBFeUlESWdNQ0F3SURBZ01UY2dNa2czWVRJZ01pQXdJREFnTUMweExqWXVPSG9pSUM4K0Nqd3ZjM1puUGdvPSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvc2hvcHBpbmctYmFnXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgU2hvcHBpbmdCYWcgPSBjcmVhdGVMdWNpZGVJY29uKCdzaG9wcGluZy1iYWcnLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgU2hvcHBpbmdCYWc7XG4iLCJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ20xNSAxMS0xIDknLCBrZXk6ICc1d25xM2EnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdtMTkgMTEtNC03Jywga2V5OiAnY25tbDE4JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTIgMTFoMjAnLCBrZXk6ICczZXViYmonIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdtMy41IDExIDEuNiA3LjRhMiAyIDAgMCAwIDIgMS42aDkuOGEyIDIgMCAwIDAgMi0xLjZsMS43LTcuNCcsIGtleTogJ3lpYXp6cCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ000LjUgMTUuNWgxNScsIGtleTogJzEzbXllMScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ201IDExIDQtNycsIGtleTogJzExNnJhOScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ205IDExIDEgOScsIGtleTogJzFvam9mNycgfV0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgU2hvcHBpbmdCYXNrZXRcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKdE1UVWdNVEV0TVNBNUlpQXZQZ29nSUR4d1lYUm9JR1E5SW0weE9TQXhNUzAwTFRjaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRJZ01URm9NakFpSUM4K0NpQWdQSEJoZEdnZ1pEMGliVE11TlNBeE1TQXhMallnTnk0MFlUSWdNaUF3SURBZ01DQXlJREV1Tm1nNUxqaGhNaUF5SURBZ01DQXdJREl0TVM0MmJERXVOeTAzTGpRaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRRdU5TQXhOUzQxYURFMUlpQXZQZ29nSUR4d1lYUm9JR1E5SW0wMUlERXhJRFF0TnlJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0p0T1NBeE1TQXhJRGtpSUM4K0Nqd3ZjM1puUGdvPSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvc2hvcHBpbmctYmFza2V0XG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgU2hvcHBpbmdCYXNrZXQgPSBjcmVhdGVMdWNpZGVJY29uKCdzaG9wcGluZy1iYXNrZXQnLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgU2hvcHBpbmdCYXNrZXQ7XG4iLCJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbXG4gIFsnY2lyY2xlJywgeyBjeDogJzgnLCBjeTogJzIxJywgcjogJzEnLCBrZXk6ICdqaW1vOG8nIH1dLFxuICBbJ2NpcmNsZScsIHsgY3g6ICcxOScsIGN5OiAnMjEnLCByOiAnMScsIGtleTogJzEzNzIzdScgfV0sXG4gIFtcbiAgICAncGF0aCcsXG4gICAge1xuICAgICAgZDogJ00yLjA1IDIuMDVoMmwyLjY2IDEyLjQyYTIgMiAwIDAgMCAyIDEuNThoOS43OGEyIDIgMCAwIDAgMS45NS0xLjU3bDEuNjUtNy40M0g1LjEyJyxcbiAgICAgIGtleTogJzl6aDUwNicsXG4gICAgfSxcbiAgXSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBTaG9wcGluZ0NhcnRcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOFkybHlZMnhsSUdONFBTSTRJaUJqZVQwaU1qRWlJSEk5SWpFaUlDOCtDaUFnUEdOcGNtTnNaU0JqZUQwaU1Ua2lJR041UFNJeU1TSWdjajBpTVNJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTWk0d05TQXlMakExYURKc01pNDJOaUF4TWk0ME1tRXlJRElnTUNBd0lEQWdNaUF4TGpVNGFEa3VOemhoTWlBeUlEQWdNQ0F3SURFdU9UVXRNUzQxTjJ3eExqWTFMVGN1TkROSU5TNHhNaUlnTHo0S1BDOXpkbWMrQ2c9PSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvc2hvcHBpbmctY2FydFxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IFNob3BwaW5nQ2FydCA9IGNyZWF0ZUx1Y2lkZUljb24oJ3Nob3BwaW5nLWNhcnQnLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgU2hvcHBpbmdDYXJ0O1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdNMiAyMnYtNWw1LTUgNSA1LTUgNXonLCBrZXk6ICcxZmgyNWMnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNOS41IDE0LjUgMTYgOCcsIGtleTogJzFzbXo1eCcgfV0sXG4gIFtcbiAgICAncGF0aCcsXG4gICAgeyBkOiAnbTE3IDIgNSA1LS41LjVhMy41MyAzLjUzIDAgMCAxLTUgMHMwIDAgMCAwYTMuNTMgMy41MyAwIDAgMSAwLTVMMTcgMicsIGtleTogJzFxOHV2NScgfSxcbiAgXSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBTaG92ZWxcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1pQXlNbll0Tld3MUxUVWdOU0ExTFRVZ05Yb2lJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRUa3VOU0F4TkM0MUlERTJJRGdpSUM4K0NpQWdQSEJoZEdnZ1pEMGliVEUzSURJZ05TQTFMUzQxTGpWaE15NDFNeUF6TGpVeklEQWdNQ0F4TFRVZ01ITXdJREFnTUNBd1lUTXVOVE1nTXk0MU15QXdJREFnTVNBd0xUVk1NVGNnTWlJZ0x6NEtQQzl6ZG1jK0NnPT0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL3Nob3ZlbFxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IFNob3ZlbCA9IGNyZWF0ZUx1Y2lkZUljb24oJ3Nob3ZlbCcsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBTaG92ZWw7XG4iLCJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ200IDQgMi41IDIuNScsIGtleTogJ3V2MnZtZicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xMy41IDYuNWE0Ljk1IDQuOTUgMCAwIDAtNyA3Jywga2V5OiAnZnJka3d2JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTE1IDUgNSAxNScsIGtleTogJzFhZzhycScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xNCAxN3YuMDEnLCBrZXk6ICdlb2tmcHAnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTAgMTZ2LjAxJywga2V5OiAnMTR1eXlsJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTEzIDEzdi4wMScsIGtleTogJzF2MWs5NycgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xNiAxMHYuMDEnLCBrZXk6ICc1MTY5eWcnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTEgMjB2LjAxJywga2V5OiAnY2o5MnA4JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTE3IDE0di4wMScsIGtleTogJzExY3N3ZCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00yMCAxMXYuMDEnLCBrZXk6ICcxOWUwb2QnIH1dLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIFNob3dlckhlYWRcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKdE5DQTBJREl1TlNBeUxqVWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRURXpMalVnTmk0MVlUUXVPVFVnTkM0NU5TQXdJREFnTUMwM0lEY2lJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRURTFJRFVnTlNBeE5TSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk1UUWdNVGQyTGpBeElpQXZQZ29nSUR4d1lYUm9JR1E5SWsweE1DQXhObll1TURFaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRFeklERXpkaTR3TVNJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTVRZZ01UQjJMakF4SWlBdlBnb2dJRHh3WVhSb0lHUTlJazB4TVNBeU1IWXVNREVpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVEUzSURFMGRpNHdNU0lnTHo0S0lDQThjR0YwYUNCa1BTSk5NakFnTVRGMkxqQXhJaUF2UGdvOEwzTjJaejRLKSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9zaG93ZXItaGVhZFxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IFNob3dlckhlYWQgPSBjcmVhdGVMdWNpZGVJY29uKCdzaG93ZXItaGVhZCcsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBTaG93ZXJIZWFkO1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdNMTAgMjJ2LTUnLCBrZXk6ICdzZml4aDQnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTQgMTl2LTInLCBrZXk6ICdwZHZlOGonIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTQgMnY0YTIgMiAwIDAgMCAyIDJoNCcsIGtleTogJ3RucXJsYicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xOCAyMHYtMycsIGtleTogJ3VveDJnaycgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00yIDEzaDIwJywga2V5OiAnNWV2ejY1JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTIwIDEzVjdsLTUtNUg2YTIgMiAwIDAgMC0yIDJ2OScsIGtleTogJzFybnBlMicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ002IDIwdi0zJywga2V5OiAnYzZwZGNiJyB9XSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBTaHJlZGRlclxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTVRBZ01qSjJMVFVpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVEUwSURFNWRpMHlJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHhOQ0F5ZGpSaE1pQXlJREFnTUNBd0lESWdNbWcwSWlBdlBnb2dJRHh3WVhSb0lHUTlJazB4T0NBeU1IWXRNeUlnTHo0S0lDQThjR0YwYUNCa1BTSk5NaUF4TTJneU1DSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk1qQWdNVE5XTjJ3dE5TMDFTRFpoTWlBeUlEQWdNQ0F3TFRJZ01uWTVJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMDJJREl3ZGkweklpQXZQZ284TDNOMlp6NEspIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL3NocmVkZGVyXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgU2hyZWRkZXIgPSBjcmVhdGVMdWNpZGVJY29uKCdzaHJlZGRlcicsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBTaHJlZGRlcjtcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTExIDEyaC4wMScsIGtleTogJzFscjRrNicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xMyAyMmMuNS0uNSAxLjEyLTEgMi41LTEtMS4zOCAwLTItLjUtMi41LTEnLCBrZXk6ICdmYXRwZGknIH1dLFxuICBbXG4gICAgJ3BhdGgnLFxuICAgIHtcbiAgICAgIGQ6ICdNMTQgMmEzLjI4IDMuMjggMCAwIDEtMy4yMjcgMS43OThsLTYuMTctLjU2MUEyLjM4NyAyLjM4NyAwIDEgMCA0LjM4NyA4SDE1LjVhMSAxIDAgMCAxIDAgMTMgMSAxIDAgMCAwIDAtNUgxMmE3IDcgMCAwIDEtNy03VjgnLFxuICAgICAga2V5OiAna2VocnFlJyxcbiAgICB9LFxuICBdLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTQgOGE4LjUgOC41IDAgMCAxIDAgOCcsIGtleTogJzFpbWp4MicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xNiAxNmMyIDAgNC41LTQgNC02Jywga2V5OiAnejBuZWp6JyB9XSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBTaHJpbXBcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1URWdNVEpvTGpBeElpQXZQZ29nSUR4d1lYUm9JR1E5SWsweE15QXlNbU11TlMwdU5TQXhMakV5TFRFZ01pNDFMVEV0TVM0ek9DQXdMVEl0TGpVdE1pNDFMVEVpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVEUwSURKaE15NHlPQ0F6TGpJNElEQWdNQ0F4TFRNdU1qSTNJREV1TnprNGJDMDJMakUzTFM0MU5qRkJNaTR6T0RjZ01pNHpPRGNnTUNBeElEQWdOQzR6T0RjZ09FZ3hOUzQxWVRFZ01TQXdJREFnTVNBd0lERXpJREVnTVNBd0lEQWdNQ0F3TFRWSU1USmhOeUEzSURBZ01DQXhMVGN0TjFZNElpQXZQZ29nSUR4d1lYUm9JR1E5SWsweE5DQTRZVGd1TlNBNExqVWdNQ0F3SURFZ01DQTRJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHhOaUF4Tm1NeUlEQWdOQzQxTFRRZ05DMDJJaUF2UGdvOEwzTjJaejRLKSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9zaHJpbXBcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBTaHJpbXAgPSBjcmVhdGVMdWNpZGVJY29uKCdzaHJpbXAnLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgU2hyaW1wO1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdtMTUgMTUgNiA2bS02LTZ2NC44bTAtNC44aDQuOCcsIGtleTogJzE3dmF3ZScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ005IDE5LjhWMTVtMCAwSDQuMk05IDE1bC02IDYnLCBrZXk6ICdjaGp4OGUnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTUgNC4yVjltMCAwaDQuOE0xNSA5bDYtNicsIGtleTogJ2xhdjZ5cScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ005IDQuMlY5bTAgMEg0LjJNOSA5IDMgMycsIGtleTogJzFweGkycScgfV0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgU2hyaW5rXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSnRNVFVnTVRVZ05pQTJiUzAyTFRaMk5DNDRiVEF0TkM0NGFEUXVPQ0lnTHo0S0lDQThjR0YwYUNCa1BTSk5PU0F4T1M0NFZqRTFiVEFnTUVnMExqSk5PU0F4Tld3dE5pQTJJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHhOU0EwTGpKV09XMHdJREJvTkM0NFRURTFJRGxzTmkwMklpQXZQZ29nSUR4d1lYUm9JR1E5SWswNUlEUXVNbFk1YlRBZ01FZzBMakpOT1NBNUlETWdNeUlnTHo0S1BDOXpkbWMrQ2c9PSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvc2hyaW5rXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgU2hyaW5rID0gY3JlYXRlTHVjaWRlSWNvbignc2hyaW5rJywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IFNocmluaztcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTEyIDIydi01LjE3MmEyIDIgMCAwIDAtLjU4Ni0xLjQxNEw5LjUgMTMuNScsIGtleTogJzFwMTdmbScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xNC41IDE0LjUgMTIgMTcnLCBrZXk6ICdkeTV3NHknIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTcgOC44QTYgNiAwIDAgMSAxMy44IDIwSDEwQTYuNSA2LjUgMCAwIDEgNyA4YTUgNSAwIDAgMSAxMCAweicsIGtleTogJzZ6N2IzbycgfV0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgU2hydWJcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1USWdNakoyTFRVdU1UY3lZVElnTWlBd0lEQWdNQzB1TlRnMkxURXVOREUwVERrdU5TQXhNeTQxSWlBdlBnb2dJRHh3WVhSb0lHUTlJazB4TkM0MUlERTBMalVnTVRJZ01UY2lJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRURTNJRGd1T0VFMklEWWdNQ0F3SURFZ01UTXVPQ0F5TUVneE1FRTJMalVnTmk0MUlEQWdNQ0F4SURjZ09HRTFJRFVnTUNBd0lERWdNVEFnTUhvaUlDOCtDand2YzNablBnbz0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL3NocnViXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgU2hydWIgPSBjcmVhdGVMdWNpZGVJY29uKCdzaHJ1YicsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBTaHJ1YjtcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnbTE4IDE0IDQgNC00IDQnLCBrZXk6ICcxMHBlMGYnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdtMTggMiA0IDQtNCA0Jywga2V5OiAncHVjcDFkJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTIgMThoMS45NzNhNCA0IDAgMCAwIDMuMy0xLjdsNS40NTQtOC42YTQgNCAwIDAgMSAzLjMtMS43SDIyJywga2V5OiAnMWFpbGtoJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTIgNmgxLjk3MmE0IDQgMCAwIDEgMy42IDIuMicsIGtleTogJ2ttNTd2eCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00yMiAxOGgtNi4wNDFhNCA0IDAgMCAxLTMuMy0xLjhsLS4zNTktLjQ1Jywga2V5OiAnb3MxOGw5JyB9XSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBTaHVmZmxlXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSnRNVGdnTVRRZ05DQTBMVFFnTkNJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0p0TVRnZ01pQTBJRFF0TkNBMElpQXZQZ29nSUR4d1lYUm9JR1E5SWsweUlERTRhREV1T1RjellUUWdOQ0F3SURBZ01DQXpMak10TVM0M2JEVXVORFUwTFRndU5tRTBJRFFnTUNBd0lERWdNeTR6TFRFdU4wZ3lNaUlnTHo0S0lDQThjR0YwYUNCa1BTSk5NaUEyYURFdU9UY3lZVFFnTkNBd0lEQWdNU0F6TGpZZ01pNHlJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHlNaUF4T0dndE5pNHdOREZoTkNBMElEQWdNQ0F4TFRNdU15MHhMamhzTFM0ek5Ua3RMalExSWlBdlBnbzhMM04yWno0SykgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvc2h1ZmZsZVxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IFNodWZmbGUgPSBjcmVhdGVMdWNpZGVJY29uKCdzaHVmZmxlJywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IFNodWZmbGU7XG4iLCJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbXG4gIFtcbiAgICAncGF0aCcsXG4gICAge1xuICAgICAgZDogJ00xOCA3VjVhMSAxIDAgMCAwLTEtMUg2LjVhLjUuNSAwIDAgMC0uNC44bDQuNSA2YTIgMiAwIDAgMSAwIDIuNGwtNC41IDZhLjUuNSAwIDAgMCAuNC44SDE3YTEgMSAwIDAgMCAxLTF2LTInLFxuICAgICAga2V5OiAnd3V3eDFwJyxcbiAgICB9LFxuICBdLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIFNpZ21hXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NVGdnTjFZMVlURWdNU0F3SURBZ01DMHhMVEZJTmk0MVlTNDFMalVnTUNBd0lEQXRMalF1T0d3MExqVWdObUV5SURJZ01DQXdJREVnTUNBeUxqUnNMVFF1TlNBMllTNDFMalVnTUNBd0lEQWdMalF1T0VneE4yRXhJREVnTUNBd0lEQWdNUzB4ZGkweUlpQXZQZ284TDNOMlp6NEspIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL3NpZ21hXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgU2lnbWEgPSBjcmVhdGVMdWNpZGVJY29uKCdzaWdtYScsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBTaWdtYTtcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTIgMjBoLjAxJywga2V5OiAnNGhhajZvJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTcgMjB2LTQnLCBrZXk6ICdqMjk0angnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTIgMjB2LTgnLCBrZXk6ICdpM3l1YjknIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTcgMjBWOCcsIGtleTogJzF0a2FmNScgfV0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgU2lnbmFsSGlnaFxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTWlBeU1HZ3VNREVpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVGNnTWpCMkxUUWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRURXlJREl3ZGkwNElpQXZQZ29nSUR4d1lYUm9JR1E5SWsweE55QXlNRlk0SWlBdlBnbzhMM04yWno0SykgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvc2lnbmFsLWhpZ2hcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBTaWduYWxIaWdoID0gY3JlYXRlTHVjaWRlSWNvbignc2lnbmFsLWhpZ2gnLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgU2lnbmFsSGlnaDtcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTIgMjBoLjAxJywga2V5OiAnNGhhajZvJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTcgMjB2LTQnLCBrZXk6ICdqMjk0angnIH1dLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIFNpZ25hbExvd1xuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTWlBeU1HZ3VNREVpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVGNnTWpCMkxUUWlJQzgrQ2p3dmMzWm5QZ289KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9zaWduYWwtbG93XG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgU2lnbmFsTG93ID0gY3JlYXRlTHVjaWRlSWNvbignc2lnbmFsLWxvdycsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBTaWduYWxMb3c7XG4iLCJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ00yIDIwaC4wMScsIGtleTogJzRoYWo2bycgfV0sXG4gIFsncGF0aCcsIHsgZDogJ003IDIwdi00Jywga2V5OiAnajI5NGp4JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTEyIDIwdi04Jywga2V5OiAnaTN5dWI5JyB9XSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBTaWduYWxNZWRpdW1cbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1pQXlNR2d1TURFaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRjZ01qQjJMVFFpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVEV5SURJd2RpMDRJaUF2UGdvOEwzTjJaejRLKSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9zaWduYWwtbWVkaXVtXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgU2lnbmFsTWVkaXVtID0gY3JlYXRlTHVjaWRlSWNvbignc2lnbmFsLW1lZGl1bScsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBTaWduYWxNZWRpdW07XG4iLCJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbWydwYXRoJywgeyBkOiAnTTIgMjBoLjAxJywga2V5OiAnNGhhajZvJyB9XV07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBTaWduYWxaZXJvXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NaUF5TUdndU1ERWlJQzgrQ2p3dmMzWm5QZ289KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9zaWduYWwtemVyb1xuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IFNpZ25hbFplcm8gPSBjcmVhdGVMdWNpZGVJY29uKCdzaWduYWwtemVybycsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBTaWduYWxaZXJvO1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdNMiAyMGguMDEnLCBrZXk6ICc0aGFqNm8nIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNNyAyMHYtNCcsIGtleTogJ2oyOTRqeCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xMiAyMHYtOCcsIGtleTogJ2kzeXViOScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xNyAyMFY4Jywga2V5OiAnMXRrYWY1JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTIyIDR2MTYnLCBrZXk6ICdzaWg5eXEnIH1dLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIFNpZ25hbFxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTWlBeU1HZ3VNREVpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVGNnTWpCMkxUUWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRURXlJREl3ZGkwNElpQXZQZ29nSUR4d1lYUm9JR1E5SWsweE55QXlNRlk0SWlBdlBnb2dJRHh3WVhSb0lHUTlJazB5TWlBMGRqRTJJaUF2UGdvOEwzTjJaejRLKSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9zaWduYWxcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBTaWduYWwgPSBjcmVhdGVMdWNpZGVJY29uKCdzaWduYWwnLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgU2lnbmFsO1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbXG4gICAgJ3BhdGgnLFxuICAgIHtcbiAgICAgIGQ6ICdtMjEgMTctMi4xNTYtMS44NjhBLjUuNSAwIDAgMCAxOCAxNS41di41YTEgMSAwIDAgMS0xIDFoLTJhMSAxIDAgMCAxLTEtMWMwLTIuNTQ1LTMuOTkxLTMuOTctOC41LTRhMSAxIDAgMCAwIDAgNWM0LjE1MyAwIDQuNzQ1LTExLjI5NSA1LjcwOC0xMy41YTIuNSAyLjUgMCAxIDEgMy4zMSAzLjI4NCcsXG4gICAgICBrZXk6ICd5MzJvZ3QnLFxuICAgIH0sXG4gIF0sXG4gIFsncGF0aCcsIHsgZDogJ00zIDIxaDE4Jywga2V5OiAnaXR6ODVpJyB9XSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBTaWduYXR1cmVcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKdE1qRWdNVGN0TWk0eE5UWXRNUzQ0TmpoQkxqVXVOU0F3SURBZ01DQXhPQ0F4TlM0MWRpNDFZVEVnTVNBd0lEQWdNUzB4SURGb0xUSmhNU0F4SURBZ01DQXhMVEV0TVdNd0xUSXVOVFExTFRNdU9Ua3hMVE11T1RjdE9DNDFMVFJoTVNBeElEQWdNQ0F3SURBZ05XTTBMakUxTXlBd0lEUXVOelExTFRFeExqSTVOU0ExTGpjd09DMHhNeTQxWVRJdU5TQXlMalVnTUNBeElERWdNeTR6TVNBekxqSTROQ0lnTHo0S0lDQThjR0YwYUNCa1BTSk5NeUF5TVdneE9DSWdMejRLUEM5emRtYytDZz09KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9zaWduYXR1cmVcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBTaWduYXR1cmUgPSBjcmVhdGVMdWNpZGVJY29uKCdzaWduYXR1cmUnLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgU2lnbmF0dXJlO1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdNMTAgOUg0TDIgN2wyLTJoNicsIGtleTogJzFocTd4MicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xNCA1aDZsMiAyLTIgMmgtNicsIGtleTogJ2J2NjJlaicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xMCAyMlY0YTIgMiAwIDEgMSA0IDB2MTgnLCBrZXk6ICdlcXBjZjInIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNOCAyMmg4Jywga2V5OiAncm1ldzh2JyB9XSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBTaWducG9zdEJpZ1xuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTVRBZ09VZzBURElnTjJ3eUxUSm9OaUlnTHo0S0lDQThjR0YwYUNCa1BTSk5NVFFnTldnMmJESWdNaTB5SURKb0xUWWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRURXdJREl5VmpSaE1pQXlJREFnTVNBeElEUWdNSFl4T0NJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOT0NBeU1tZzRJaUF2UGdvOEwzTjJaejRLKSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9zaWducG9zdC1iaWdcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBTaWducG9zdEJpZyA9IGNyZWF0ZUx1Y2lkZUljb24oJ3NpZ25wb3N0LWJpZycsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBTaWducG9zdEJpZztcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTcgMTh2LTZhNSA1IDAgMSAxIDEwIDB2NicsIGtleTogJ3BjeDk2cycgfV0sXG4gIFtcbiAgICAncGF0aCcsXG4gICAgeyBkOiAnTTUgMjFhMSAxIDAgMCAwIDEgMWgxMmExIDEgMCAwIDAgMS0xdi0xYTIgMiAwIDAgMC0yLTJIN2EyIDIgMCAwIDAtMiAyeicsIGtleTogJzFiNHM4MycgfSxcbiAgXSxcbiAgWydwYXRoJywgeyBkOiAnTTIxIDEyaDEnLCBrZXk6ICdqdGlvM3knIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTguNSA0LjUgMTggNScsIGtleTogJ2c1c3A5eScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00yIDEyaDEnLCBrZXk6ICcxdWFpaHonIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTIgMnYxJywga2V5OiAnMTFxbHAxJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnbTQuOTI5IDQuOTI5LjcwNy43MDcnLCBrZXk6ICcxaTUxa3cnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTIgMTJ2NicsIGtleTogJzNhaHltdicgfV0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgU2lyZW5cbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk55QXhPSFl0Tm1FMUlEVWdNQ0F4SURFZ01UQWdNSFkySWlBdlBnb2dJRHh3WVhSb0lHUTlJazAxSURJeFlURWdNU0F3SURBZ01DQXhJREZvTVRKaE1TQXhJREFnTUNBd0lERXRNWFl0TVdFeUlESWdNQ0F3SURBdE1pMHlTRGRoTWlBeUlEQWdNQ0F3TFRJZ01ub2lJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRUSXhJREV5YURFaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRFNExqVWdOQzQxSURFNElEVWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRUSWdNVEpvTVNJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTVRJZ01uWXhJaUF2UGdvZ0lEeHdZWFJvSUdROUltMDBMamt5T1NBMExqa3lPUzQzTURjdU56QTNJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHhNaUF4TW5ZMklpQXZQZ284TDNOMlp6NEspIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL3NpcmVuXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgU2lyZW4gPSBjcmVhdGVMdWNpZGVJY29uKCdzaXJlbicsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBTaXJlbjtcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTEyIDEzdjgnLCBrZXk6ICcxbDVwcTAnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTIgM3YzJywga2V5OiAnMW41a2F5JyB9XSxcbiAgW1xuICAgICdwYXRoJyxcbiAgICB7XG4gICAgICBkOiAnTTE4IDZhMiAyIDAgMCAxIDEuMzg3LjU2bDIuMzA3IDIuMjJhMSAxIDAgMCAxIDAgMS40NGwtMi4zMDcgMi4yMkEyIDIgMCAwIDEgMTggMTNINmEyIDIgMCAwIDEtMS4zODctLjU2bC0yLjMwNi0yLjIyYTEgMSAwIDAgMSAwLTEuNDRsMi4zMDYtMi4yMkEyIDIgMCAwIDEgNiA2eicsXG4gICAgICBrZXk6ICdncXFwOW0nLFxuICAgIH0sXG4gIF0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgU2lnbnBvc3RcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1USWdNVE4yT0NJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTVRJZ00zWXpJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHhPQ0EyWVRJZ01pQXdJREFnTVNBeExqTTROeTQxTm13eUxqTXdOeUF5TGpJeVlURWdNU0F3SURBZ01TQXdJREV1TkRSc0xUSXVNekEzSURJdU1qSkJNaUF5SURBZ01DQXhJREU0SURFelNEWmhNaUF5SURBZ01DQXhMVEV1TXpnM0xTNDFObXd0TWk0ek1EWXRNaTR5TW1FeElERWdNQ0F3SURFZ01DMHhMalEwYkRJdU16QTJMVEl1TWpKQk1pQXlJREFnTUNBeElEWWdObm9pSUM4K0Nqd3ZjM1puUGdvPSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvc2lnbnBvc3RcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBTaWducG9zdCA9IGNyZWF0ZUx1Y2lkZUljb24oJ3NpZ25wb3N0JywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IFNpZ25wb3N0O1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbJ3BvbHlnb24nLCB7IHBvaW50czogJzE5IDIwIDkgMTIgMTkgNCAxOSAyMCcsIGtleTogJ28yc3ZhJyB9XSxcbiAgWydsaW5lJywgeyB4MTogJzUnLCB4MjogJzUnLCB5MTogJzE5JywgeTI6ICc1Jywga2V5OiAnMW9jcWprJyB9XSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBTa2lwQmFja1xuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0c5c2VXZHZiaUJ3YjJsdWRITTlJakU1SURJd0lEa2dNVElnTVRrZ05DQXhPU0F5TUNJZ0x6NEtJQ0E4YkdsdVpTQjRNVDBpTlNJZ2VESTlJalVpSUhreFBTSXhPU0lnZVRJOUlqVWlJQzgrQ2p3dmMzWm5QZ289KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9za2lwLWJhY2tcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBTa2lwQmFjayA9IGNyZWF0ZUx1Y2lkZUljb24oJ3NraXAtYmFjaycsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBTa2lwQmFjaztcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnbTEyLjUgMTctLjUtMS0uNSAxaDF6Jywga2V5OiAnM21lMDg3JyB9XSxcbiAgW1xuICAgICdwYXRoJyxcbiAgICB7XG4gICAgICBkOiAnTTE1IDIyYTEgMSAwIDAgMCAxLTF2LTFhMiAyIDAgMCAwIDEuNTYtMy4yNSA4IDggMCAxIDAtMTEuMTIgMEEyIDIgMCAwIDAgOCAyMHYxYTEgMSAwIDAgMCAxIDF6JyxcbiAgICAgIGtleTogJzFvNXBnZScsXG4gICAgfSxcbiAgXSxcbiAgWydjaXJjbGUnLCB7IGN4OiAnMTUnLCBjeTogJzEyJywgcjogJzEnLCBrZXk6ICcxdG1haWonIH1dLFxuICBbJ2NpcmNsZScsIHsgY3g6ICc5JywgY3k6ICcxMicsIHI6ICcxJywga2V5OiAnMXZjdGdmJyB9XSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBTa3VsbFxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0p0TVRJdU5TQXhOeTB1TlMweExTNDFJREZvTVhvaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRFMUlESXlZVEVnTVNBd0lEQWdNQ0F4TFRGMkxURmhNaUF5SURBZ01DQXdJREV1TlRZdE15NHlOU0E0SURnZ01DQXhJREF0TVRFdU1USWdNRUV5SURJZ01DQXdJREFnT0NBeU1IWXhZVEVnTVNBd0lEQWdNQ0F4SURGNklpQXZQZ29nSUR4amFYSmpiR1VnWTNnOUlqRTFJaUJqZVQwaU1USWlJSEk5SWpFaUlDOCtDaUFnUEdOcGNtTnNaU0JqZUQwaU9TSWdZM2s5SWpFeUlpQnlQU0l4SWlBdlBnbzhMM04yWno0SykgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvc2t1bGxcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBTa3VsbCA9IGNyZWF0ZUx1Y2lkZUljb24oJ3NrdWxsJywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IFNrdWxsO1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbJ3BvbHlnb24nLCB7IHBvaW50czogJzUgNCAxNSAxMiA1IDIwIDUgNCcsIGtleTogJzE2cDZlZycgfV0sXG4gIFsnbGluZScsIHsgeDE6ICcxOScsIHgyOiAnMTknLCB5MTogJzUnLCB5MjogJzE5Jywga2V5OiAnZnV0aGNtJyB9XSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBTa2lwRm9yd2FyZFxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0c5c2VXZHZiaUJ3YjJsdWRITTlJalVnTkNBeE5TQXhNaUExSURJd0lEVWdOQ0lnTHo0S0lDQThiR2x1WlNCNE1UMGlNVGtpSUhneVBTSXhPU0lnZVRFOUlqVWlJSGt5UFNJeE9TSWdMejRLUEM5emRtYytDZz09KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9za2lwLWZvcndhcmRcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBTa2lwRm9yd2FyZCA9IGNyZWF0ZUx1Y2lkZUljb24oJ3NraXAtZm9yd2FyZCcsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBTa2lwRm9yd2FyZDtcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgWydyZWN0JywgeyB3aWR0aDogJzMnLCBoZWlnaHQ6ICc4JywgeDogJzEzJywgeTogJzInLCByeDogJzEuNScsIGtleTogJ2RpcXo4MCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xOSA4LjVWMTBoMS41QTEuNSAxLjUgMCAxIDAgMTkgOC41Jywga2V5OiAnMTgzaXdnJyB9XSxcbiAgWydyZWN0JywgeyB3aWR0aDogJzMnLCBoZWlnaHQ6ICc4JywgeDogJzgnLCB5OiAnMTQnLCByeDogJzEuNScsIGtleTogJ2hxZzdyMScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ001IDE1LjVWMTRIMy41QTEuNSAxLjUgMCAxIDAgNSAxNS41Jywga2V5OiAnNzZnNzF3JyB9XSxcbiAgWydyZWN0JywgeyB3aWR0aDogJzgnLCBoZWlnaHQ6ICczJywgeDogJzE0JywgeTogJzEzJywgcng6ICcxLjUnLCBrZXk6ICcxa216MGEnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTUuNSAxOUgxNHYxLjVhMS41IDEuNSAwIDEgMCAxLjUtMS41Jywga2V5OiAnamM0c3owJyB9XSxcbiAgWydyZWN0JywgeyB3aWR0aDogJzgnLCBoZWlnaHQ6ICczJywgeDogJzInLCB5OiAnOCcsIHJ4OiAnMS41Jywga2V5OiAnMW9tdmw0JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTguNSA1SDEwVjMuNUExLjUgMS41IDAgMSAwIDguNSA1Jywga2V5OiAnMTZmM2NsJyB9XSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBTbGFja1xuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y21WamRDQjNhV1IwYUQwaU15SWdhR1ZwWjJoMFBTSTRJaUI0UFNJeE15SWdlVDBpTWlJZ2NuZzlJakV1TlNJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTVRrZ09DNDFWakV3YURFdU5VRXhMalVnTVM0MUlEQWdNU0F3SURFNUlEZ3VOU0lnTHo0S0lDQThjbVZqZENCM2FXUjBhRDBpTXlJZ2FHVnBaMmgwUFNJNElpQjRQU0k0SWlCNVBTSXhOQ0lnY25nOUlqRXVOU0lnTHo0S0lDQThjR0YwYUNCa1BTSk5OU0F4TlM0MVZqRTBTRE11TlVFeExqVWdNUzQxSURBZ01TQXdJRFVnTVRVdU5TSWdMejRLSUNBOGNtVmpkQ0IzYVdSMGFEMGlPQ0lnYUdWcFoyaDBQU0l6SWlCNFBTSXhOQ0lnZVQwaU1UTWlJSEo0UFNJeExqVWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRURTFMalVnTVRsSU1UUjJNUzQxWVRFdU5TQXhMalVnTUNBeElEQWdNUzQxTFRFdU5TSWdMejRLSUNBOGNtVmpkQ0IzYVdSMGFEMGlPQ0lnYUdWcFoyaDBQU0l6SWlCNFBTSXlJaUI1UFNJNElpQnllRDBpTVM0MUlpQXZQZ29nSUR4d1lYUm9JR1E5SWswNExqVWdOVWd4TUZZekxqVkJNUzQxSURFdU5TQXdJREVnTUNBNExqVWdOU0lnTHo0S1BDOXpkbWMrQ2c9PSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvc2xhY2tcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKiBAZGVwcmVjYXRlZCBCcmFuZCBpY29ucyBoYXZlIGJlZW4gZGVwcmVjYXRlZCBhbmQgYXJlIGR1ZSB0byBiZSByZW1vdmVkLCBwbGVhc2UgcmVmZXIgdG8gaHR0cHM6Ly9naXRodWIuY29tL2x1Y2lkZS1pY29ucy9sdWNpZGUvaXNzdWVzLzY3MC4gV2UgcmVjb21tZW5kIHVzaW5nIGh0dHBzOi8vc2ltcGxlaWNvbnMub3JnLz9xPXNsYWNrIGluc3RlYWQuIFRoaXMgaWNvbiB3aWxsIGJlIHJlbW92ZWQgaW4gdjEuMFxuICovXG5jb25zdCBTbGFjayA9IGNyZWF0ZUx1Y2lkZUljb24oJ3NsYWNrJywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IFNsYWNrO1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1sncGF0aCcsIHsgZDogJ00yMiAyIDIgMjInLCBrZXk6ICd5NGtxZ24nIH1dXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIFNsYXNoXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NaklnTWlBeUlESXlJaUF2UGdvOEwzTjJaejRLKSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9zbGFzaFxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IFNsYXNoID0gY3JlYXRlTHVjaWRlSWNvbignc2xhc2gnLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgU2xhc2g7XG4iLCJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbXG4gIFtcbiAgICAncGF0aCcsXG4gICAge1xuICAgICAgZDogJ00xMSAxNi41ODZWMTlhMSAxIDAgMCAxLTEgMUgyTDE4LjM3IDMuNjNhMSAxIDAgMSAxIDMgM2wtOS42NjMgOS42NjNhMSAxIDAgMCAxLTEuNDE0IDBMOCAxNCcsXG4gICAgICBrZXk6ICcxc2xscDUnLFxuICAgIH0sXG4gIF0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgU2xpY2VcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1URWdNVFl1TlRnMlZqRTVZVEVnTVNBd0lEQWdNUzB4SURGSU1rd3hPQzR6TnlBekxqWXpZVEVnTVNBd0lERWdNU0F6SUROc0xUa3VOall6SURrdU5qWXpZVEVnTVNBd0lEQWdNUzB4TGpReE5DQXdURGdnTVRRaUlDOCtDand2YzNablBnbz0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL3NsaWNlXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgU2xpY2UgPSBjcmVhdGVMdWNpZGVJY29uKCdzbGljZScsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBTbGljZTtcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgWydsaW5lJywgeyB4MTogJzIxJywgeDI6ICcxNCcsIHkxOiAnNCcsIHkyOiAnNCcsIGtleTogJ29idWV3ZCcgfV0sXG4gIFsnbGluZScsIHsgeDE6ICcxMCcsIHgyOiAnMycsIHkxOiAnNCcsIHkyOiAnNCcsIGtleTogJzFxNjI5OCcgfV0sXG4gIFsnbGluZScsIHsgeDE6ICcyMScsIHgyOiAnMTInLCB5MTogJzEyJywgeTI6ICcxMicsIGtleTogJzFpdThoMScgfV0sXG4gIFsnbGluZScsIHsgeDE6ICc4JywgeDI6ICczJywgeTE6ICcxMicsIHkyOiAnMTInLCBrZXk6ICdudHNzNjgnIH1dLFxuICBbJ2xpbmUnLCB7IHgxOiAnMjEnLCB4MjogJzE2JywgeTE6ICcyMCcsIHkyOiAnMjAnLCBrZXk6ICcxNGQ4cGgnIH1dLFxuICBbJ2xpbmUnLCB7IHgxOiAnMTInLCB4MjogJzMnLCB5MTogJzIwJywgeTI6ICcyMCcsIGtleTogJ20wd204cicgfV0sXG4gIFsnbGluZScsIHsgeDE6ICcxNCcsIHgyOiAnMTQnLCB5MTogJzInLCB5MjogJzYnLCBrZXk6ICcxNGUxcGgnIH1dLFxuICBbJ2xpbmUnLCB7IHgxOiAnOCcsIHgyOiAnOCcsIHkxOiAnMTAnLCB5MjogJzE0Jywga2V5OiAnMWk2amkwJyB9XSxcbiAgWydsaW5lJywgeyB4MTogJzE2JywgeDI6ICcxNicsIHkxOiAnMTgnLCB5MjogJzIyJywga2V5OiAnMWxjdGx2JyB9XSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBTbGlkZXJzSG9yaXpvbnRhbFxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4YkdsdVpTQjRNVDBpTWpFaUlIZ3lQU0l4TkNJZ2VURTlJalFpSUhreVBTSTBJaUF2UGdvZ0lEeHNhVzVsSUhneFBTSXhNQ0lnZURJOUlqTWlJSGt4UFNJMElpQjVNajBpTkNJZ0x6NEtJQ0E4YkdsdVpTQjRNVDBpTWpFaUlIZ3lQU0l4TWlJZ2VURTlJakV5SWlCNU1qMGlNVElpSUM4K0NpQWdQR3hwYm1VZ2VERTlJamdpSUhneVBTSXpJaUI1TVQwaU1USWlJSGt5UFNJeE1pSWdMejRLSUNBOGJHbHVaU0I0TVQwaU1qRWlJSGd5UFNJeE5pSWdlVEU5SWpJd0lpQjVNajBpTWpBaUlDOCtDaUFnUEd4cGJtVWdlREU5SWpFeUlpQjRNajBpTXlJZ2VURTlJakl3SWlCNU1qMGlNakFpSUM4K0NpQWdQR3hwYm1VZ2VERTlJakUwSWlCNE1qMGlNVFFpSUhreFBTSXlJaUI1TWowaU5pSWdMejRLSUNBOGJHbHVaU0I0TVQwaU9DSWdlREk5SWpnaUlIa3hQU0l4TUNJZ2VUSTlJakUwSWlBdlBnb2dJRHhzYVc1bElIZ3hQU0l4TmlJZ2VESTlJakUySWlCNU1UMGlNVGdpSUhreVBTSXlNaUlnTHo0S1BDOXpkbWMrQ2c9PSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvc2xpZGVycy1ob3Jpem9udGFsXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgU2xpZGVyc0hvcml6b250YWwgPSBjcmVhdGVMdWNpZGVJY29uKCdzbGlkZXJzLWhvcml6b250YWwnLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgU2xpZGVyc0hvcml6b250YWw7XG4iLCJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbXG4gIFsnbGluZScsIHsgeDE6ICc0JywgeDI6ICc0JywgeTE6ICcyMScsIHkyOiAnMTQnLCBrZXk6ICcxcDMzMnInIH1dLFxuICBbJ2xpbmUnLCB7IHgxOiAnNCcsIHgyOiAnNCcsIHkxOiAnMTAnLCB5MjogJzMnLCBrZXk6ICdnYjQxaDUnIH1dLFxuICBbJ2xpbmUnLCB7IHgxOiAnMTInLCB4MjogJzEyJywgeTE6ICcyMScsIHkyOiAnMTInLCBrZXk6ICdoZjJjc3InIH1dLFxuICBbJ2xpbmUnLCB7IHgxOiAnMTInLCB4MjogJzEyJywgeTE6ICc4JywgeTI6ICczJywga2V5OiAnMWtmaTd1JyB9XSxcbiAgWydsaW5lJywgeyB4MTogJzIwJywgeDI6ICcyMCcsIHkxOiAnMjEnLCB5MjogJzE2Jywga2V5OiAnMWxocndsJyB9XSxcbiAgWydsaW5lJywgeyB4MTogJzIwJywgeDI6ICcyMCcsIHkxOiAnMTInLCB5MjogJzMnLCBrZXk6ICcxNnZ2ZnEnIH1dLFxuICBbJ2xpbmUnLCB7IHgxOiAnMicsIHgyOiAnNicsIHkxOiAnMTQnLCB5MjogJzE0Jywga2V5OiAnMXVlYnViJyB9XSxcbiAgWydsaW5lJywgeyB4MTogJzEwJywgeDI6ICcxNCcsIHkxOiAnOCcsIHkyOiAnOCcsIGtleTogJzF5Z2xicCcgfV0sXG4gIFsnbGluZScsIHsgeDE6ICcxOCcsIHgyOiAnMjInLCB5MTogJzE2JywgeTI6ICcxNicsIGtleTogJzFqeHFweicgfV0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgU2xpZGVyc1ZlcnRpY2FsXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThiR2x1WlNCNE1UMGlOQ0lnZURJOUlqUWlJSGt4UFNJeU1TSWdlVEk5SWpFMElpQXZQZ29nSUR4c2FXNWxJSGd4UFNJMElpQjRNajBpTkNJZ2VURTlJakV3SWlCNU1qMGlNeUlnTHo0S0lDQThiR2x1WlNCNE1UMGlNVElpSUhneVBTSXhNaUlnZVRFOUlqSXhJaUI1TWowaU1USWlJQzgrQ2lBZ1BHeHBibVVnZURFOUlqRXlJaUI0TWowaU1USWlJSGt4UFNJNElpQjVNajBpTXlJZ0x6NEtJQ0E4YkdsdVpTQjRNVDBpTWpBaUlIZ3lQU0l5TUNJZ2VURTlJakl4SWlCNU1qMGlNVFlpSUM4K0NpQWdQR3hwYm1VZ2VERTlJakl3SWlCNE1qMGlNakFpSUhreFBTSXhNaUlnZVRJOUlqTWlJQzgrQ2lBZ1BHeHBibVVnZURFOUlqSWlJSGd5UFNJMklpQjVNVDBpTVRRaUlIa3lQU0l4TkNJZ0x6NEtJQ0E4YkdsdVpTQjRNVDBpTVRBaUlIZ3lQU0l4TkNJZ2VURTlJamdpSUhreVBTSTRJaUF2UGdvZ0lEeHNhVzVsSUhneFBTSXhPQ0lnZURJOUlqSXlJaUI1TVQwaU1UWWlJSGt5UFNJeE5pSWdMejRLUEM5emRtYytDZz09KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9zbGlkZXJzLXZlcnRpY2FsXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgU2xpZGVyc1ZlcnRpY2FsID0gY3JlYXRlTHVjaWRlSWNvbignc2xpZGVycy12ZXJ0aWNhbCcsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBTbGlkZXJzVmVydGljYWw7XG4iLCJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbXG4gIFsncmVjdCcsIHsgd2lkdGg6ICcxNCcsIGhlaWdodDogJzIwJywgeDogJzUnLCB5OiAnMicsIHJ4OiAnMicsIHJ5OiAnMicsIGtleTogJzF5dDBvMycgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xMi42NjcgOCAxMCAxMmg0bC0yLjY2NyA0Jywga2V5OiAnaDlsazJkJyB9XSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBTbWFydHBob25lQ2hhcmdpbmdcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNtVmpkQ0IzYVdSMGFEMGlNVFFpSUdobGFXZG9kRDBpTWpBaUlIZzlJalVpSUhrOUlqSWlJSEo0UFNJeUlpQnllVDBpTWlJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTVRJdU5qWTNJRGdnTVRBZ01USm9OR3d0TWk0Mk5qY2dOQ0lnTHo0S1BDOXpkbWMrQ2c9PSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvc21hcnRwaG9uZS1jaGFyZ2luZ1xuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IFNtYXJ0cGhvbmVDaGFyZ2luZyA9IGNyZWF0ZUx1Y2lkZUljb24oJ3NtYXJ0cGhvbmUtY2hhcmdpbmcnLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgU21hcnRwaG9uZUNoYXJnaW5nO1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbJ3JlY3QnLCB7IHdpZHRoOiAnNycsIGhlaWdodDogJzEyJywgeDogJzInLCB5OiAnNicsIHJ4OiAnMScsIGtleTogJzVuamU4dycgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xMyA4LjMyYTcuNDMgNy40MyAwIDAgMSAwIDcuMzYnLCBrZXk6ICcxZzMwNm4nIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTYuNDYgNi4yMWExMS43NiAxMS43NiAwIDAgMSAwIDExLjU4Jywga2V5OiAndXF2anZvJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTE5LjkxIDQuMWExNS45MSAxNS45MSAwIDAgMSAuMDEgMTUuOCcsIGtleTogJ3VqbnR6MycgfV0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgU21hcnRwaG9uZU5mY1xuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y21WamRDQjNhV1IwYUQwaU55SWdhR1ZwWjJoMFBTSXhNaUlnZUQwaU1pSWdlVDBpTmlJZ2NuZzlJakVpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVEV6SURndU16SmhOeTQwTXlBM0xqUXpJREFnTUNBeElEQWdOeTR6TmlJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTVRZdU5EWWdOaTR5TVdFeE1TNDNOaUF4TVM0M05pQXdJREFnTVNBd0lERXhMalU0SWlBdlBnb2dJRHh3WVhSb0lHUTlJazB4T1M0NU1TQTBMakZoTVRVdU9URWdNVFV1T1RFZ01DQXdJREVnTGpBeElERTFMamdpSUM4K0Nqd3ZjM1puUGdvPSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvc21hcnRwaG9uZS1uZmNcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBTbWFydHBob25lTmZjID0gY3JlYXRlTHVjaWRlSWNvbignc21hcnRwaG9uZS1uZmMnLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgU21hcnRwaG9uZU5mYztcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgWydyZWN0JywgeyB3aWR0aDogJzE0JywgaGVpZ2h0OiAnMjAnLCB4OiAnNScsIHk6ICcyJywgcng6ICcyJywgcnk6ICcyJywga2V5OiAnMXl0MG8zJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTEyIDE4aC4wMScsIGtleTogJ21oeWd2dScgfV0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgU21hcnRwaG9uZVxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y21WamRDQjNhV1IwYUQwaU1UUWlJR2hsYVdkb2REMGlNakFpSUhnOUlqVWlJSGs5SWpJaUlISjRQU0l5SWlCeWVUMGlNaUlnTHo0S0lDQThjR0YwYUNCa1BTSk5NVElnTVRob0xqQXhJaUF2UGdvOEwzTjJaejRLKSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9zbWFydHBob25lXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgU21hcnRwaG9uZSA9IGNyZWF0ZUx1Y2lkZUljb24oJ3NtYXJ0cGhvbmUnLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgU21hcnRwaG9uZTtcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTIyIDExdjFhMTAgMTAgMCAxIDEtOS0xMCcsIGtleTogJ2V3MHh3OScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ004IDE0czEuNSAyIDQgMiA0LTIgNC0yJywga2V5OiAnMXkxdmpzJyB9XSxcbiAgWydsaW5lJywgeyB4MTogJzknLCB4MjogJzkuMDEnLCB5MTogJzknLCB5MjogJzknLCBrZXk6ICd5eHhuZDAnIH1dLFxuICBbJ2xpbmUnLCB7IHgxOiAnMTUnLCB4MjogJzE1LjAxJywgeTE6ICc5JywgeTI6ICc5Jywga2V5OiAnMXA0eTllJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTE2IDVoNicsIGtleTogJzF2b2QxNycgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xOSAydjYnLCBrZXk6ICc0YnBnNXAnIH1dLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIFNtaWxlUGx1c1xuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTWpJZ01URjJNV0V4TUNBeE1DQXdJREVnTVMwNUxURXdJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMDRJREUwY3pFdU5TQXlJRFFnTWlBMExUSWdOQzB5SWlBdlBnb2dJRHhzYVc1bElIZ3hQU0k1SWlCNE1qMGlPUzR3TVNJZ2VURTlJamtpSUhreVBTSTVJaUF2UGdvZ0lEeHNhVzVsSUhneFBTSXhOU0lnZURJOUlqRTFMakF4SWlCNU1UMGlPU0lnZVRJOUlqa2lJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRURTJJRFZvTmlJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTVRrZ01uWTJJaUF2UGdvOEwzTjJaejRLKSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9zbWlsZS1wbHVzXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgU21pbGVQbHVzID0gY3JlYXRlTHVjaWRlSWNvbignc21pbGUtcGx1cycsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBTbWlsZVBsdXM7XG4iLCJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbXG4gIFsnY2lyY2xlJywgeyBjeDogJzEyJywgY3k6ICcxMicsIHI6ICcxMCcsIGtleTogJzFtZ2xheScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ004IDE0czEuNSAyIDQgMiA0LTIgNC0yJywga2V5OiAnMXkxdmpzJyB9XSxcbiAgWydsaW5lJywgeyB4MTogJzknLCB4MjogJzkuMDEnLCB5MTogJzknLCB5MjogJzknLCBrZXk6ICd5eHhuZDAnIH1dLFxuICBbJ2xpbmUnLCB7IHgxOiAnMTUnLCB4MjogJzE1LjAxJywgeTE6ICc5JywgeTI6ICc5Jywga2V5OiAnMXA0eTllJyB9XSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBTbWlsZVxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4WTJseVkyeGxJR040UFNJeE1pSWdZM2s5SWpFeUlpQnlQU0l4TUNJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOT0NBeE5ITXhMalVnTWlBMElESWdOQzB5SURRdE1pSWdMejRLSUNBOGJHbHVaU0I0TVQwaU9TSWdlREk5SWprdU1ERWlJSGt4UFNJNUlpQjVNajBpT1NJZ0x6NEtJQ0E4YkdsdVpTQjRNVDBpTVRVaUlIZ3lQU0l4TlM0d01TSWdlVEU5SWpraUlIa3lQU0k1SWlBdlBnbzhMM04yWno0SykgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvc21pbGVcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBTbWlsZSA9IGNyZWF0ZUx1Y2lkZUljb24oJ3NtaWxlJywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IFNtaWxlO1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdNMiAxM2E2IDYgMCAxIDAgMTIgMCA0IDQgMCAxIDAtOCAwIDIgMiAwIDAgMCA0IDAnLCBrZXk6ICdobmVxMnMnIH1dLFxuICBbJ2NpcmNsZScsIHsgY3g6ICcxMCcsIGN5OiAnMTMnLCByOiAnOCcsIGtleTogJzE5NGx6MycgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00yIDIxaDEyYzQuNCAwIDgtMy42IDgtOFY3YTIgMiAwIDEgMC00IDB2NicsIGtleTogJ2l4cXl0NycgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xOCAzIDE5LjEgNS4yJywga2V5OiAnOXRqbTQzJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTIyIDMgMjAuOSA1LjInLCBrZXk6ICdqM29kcnMnIH1dLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIFNuYWlsXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NaUF4TTJFMklEWWdNQ0F4SURBZ01USWdNQ0EwSURRZ01DQXhJREF0T0NBd0lESWdNaUF3SURBZ01DQTBJREFpSUM4K0NpQWdQR05wY21Oc1pTQmplRDBpTVRBaUlHTjVQU0l4TXlJZ2NqMGlPQ0lnTHo0S0lDQThjR0YwYUNCa1BTSk5NaUF5TVdneE1tTTBMalFnTUNBNExUTXVOaUE0TFRoV04yRXlJRElnTUNBeElEQXROQ0F3ZGpZaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRFNElETWdNVGt1TVNBMUxqSWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRUSXlJRE1nTWpBdU9TQTFMaklpSUM4K0Nqd3ZjM1puUGdvPSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvc25haWxcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBTbmFpbCA9IGNyZWF0ZUx1Y2lkZUljb24oJ3NuYWlsJywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IFNuYWlsO1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdtMTAgMjAtMS4yNS0yLjVMNiAxOCcsIGtleTogJzE4ZnJjYicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xMCA0IDguNzUgNi41IDYgNicsIGtleTogJzdtZ2h5MycgfV0sXG4gIFsncGF0aCcsIHsgZDogJ20xNCAyMCAxLjI1LTIuNUwxOCAxOCcsIGtleTogJzFjaHRraScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ20xNCA0IDEuMjUgMi41TDE4IDYnLCBrZXk6ICcxYjR3c3knIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdtMTcgMjEtMy02aC00Jywga2V5OiAnMTVoaHhhJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnbTE3IDMtMyA2IDEuNSAzJywga2V5OiAnMTE2OTdnJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTIgMTJoNi41TDEwIDknLCBrZXk6ICdrdjl6NG4nIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdtMjAgMTAtMS41IDIgMS41IDInLCBrZXk6ICcxc3dscGknIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMjIgMTJoLTYuNUwxNCAxNScsIGtleTogJzFteGkyOCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ200IDEwIDEuNSAyTDQgMTQnLCBrZXk6ICdrOWVucGonIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdtNyAyMSAzLTYtMS41LTMnLCBrZXk6ICdqOGhiOXUnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdtNyAzIDMgNmg0Jywga2V5OiAnMW90dXN4JyB9XSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBTbm93Zmxha2VcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKdE1UQWdNakF0TVM0eU5TMHlMalZNTmlBeE9DSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk1UQWdOQ0E0TGpjMUlEWXVOU0EySURZaUlDOCtDaUFnUEhCaGRHZ2daRDBpYlRFMElESXdJREV1TWpVdE1pNDFUREU0SURFNElpQXZQZ29nSUR4d1lYUm9JR1E5SW0weE5DQTBJREV1TWpVZ01pNDFUREU0SURZaUlDOCtDaUFnUEhCaGRHZ2daRDBpYlRFM0lESXhMVE10Tm1ndE5DSWdMejRLSUNBOGNHRjBhQ0JrUFNKdE1UY2dNeTB6SURZZ01TNDFJRE1pSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVElnTVRKb05pNDFUREV3SURraUlDOCtDaUFnUEhCaGRHZ2daRDBpYlRJd0lERXdMVEV1TlNBeUlERXVOU0F5SWlBdlBnb2dJRHh3WVhSb0lHUTlJazB5TWlBeE1tZ3ROaTQxVERFMElERTFJaUF2UGdvZ0lEeHdZWFJvSUdROUltMDBJREV3SURFdU5TQXlURFFnTVRRaUlDOCtDaUFnUEhCaGRHZ2daRDBpYlRjZ01qRWdNeTAyTFRFdU5TMHpJaUF2UGdvZ0lEeHdZWFJvSUdROUltMDNJRE1nTXlBMmFEUWlJQzgrQ2p3dmMzWm5QZ289KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9zbm93Zmxha2VcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBTbm93Zmxha2UgPSBjcmVhdGVMdWNpZGVJY29uKCdzbm93Zmxha2UnLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgU25vd2ZsYWtlO1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdNMjAgOVY2YTIgMiAwIDAgMC0yLTJINmEyIDIgMCAwIDAtMiAydjMnLCBrZXk6ICcxZGdwaXYnIH1dLFxuICBbXG4gICAgJ3BhdGgnLFxuICAgIHtcbiAgICAgIGQ6ICdNMiAxNmEyIDIgMCAwIDAgMiAyaDE2YTIgMiAwIDAgMCAyLTJ2LTVhMiAyIDAgMCAwLTQgMHYxLjVhLjUuNSAwIDAgMS0uNS41aC0xMWEuNS41IDAgMCAxLS41LS41VjExYTIgMiAwIDAgMC00IDB6JyxcbiAgICAgIGtleTogJ3hhY3c4bScsXG4gICAgfSxcbiAgXSxcbiAgWydwYXRoJywgeyBkOiAnTTQgMTh2MicsIGtleTogJ2p3bzVuMicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00yMCAxOHYyJywga2V5OiAnMWFyMXFpJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTEyIDR2OScsIGtleTogJ29xaGhuMycgfV0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgU29mYVxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTWpBZ09WWTJZVElnTWlBd0lEQWdNQzB5TFRKSU5tRXlJRElnTUNBd0lEQXRNaUF5ZGpNaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRJZ01UWmhNaUF5SURBZ01DQXdJRElnTW1neE5tRXlJRElnTUNBd0lEQWdNaTB5ZGkwMVlUSWdNaUF3SURBZ01DMDBJREIyTVM0MVlTNDFMalVnTUNBd0lERXRMalV1TldndE1URmhMalV1TlNBd0lEQWdNUzB1TlMwdU5WWXhNV0V5SURJZ01DQXdJREF0TkNBd2VpSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk5DQXhPSFl5SWlBdlBnb2dJRHh3WVhSb0lHUTlJazB5TUNBeE9IWXlJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHhNaUEwZGpraUlDOCtDand2YzNablBnbz0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL3NvZmFcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBTb2ZhID0gY3JlYXRlTHVjaWRlSWNvbignc29mYScsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBTb2ZhO1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdNMTAuNSAydjQnLCBrZXk6ICcxeHQ2aW4nIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTQgMkg3YTIgMiAwIDAgMC0yIDInLCBrZXk6ICdlNnhpZzMnIH1dLFxuICBbXG4gICAgJ3BhdGgnLFxuICAgIHtcbiAgICAgIGQ6ICdNMTkuMjkgMTQuNzZBNi42NyA2LjY3IDAgMCAxIDE3IDExYTYuNiA2LjYgMCAwIDEtMi4yOSAzLjc2Yy0xLjE1LjkyLTEuNzEgMi4wNC0xLjcxIDMuMTkgMCAyLjIyIDEuOCA0LjA1IDQgNC4wNXM0LTEuODMgNC00LjA1YzAtMS4xNi0uNTctMi4yNi0xLjcxLTMuMTknLFxuICAgICAga2V5OiAnYWRxN3VjJyxcbiAgICB9LFxuICBdLFxuICBbXG4gICAgJ3BhdGgnLFxuICAgIHtcbiAgICAgIGQ6ICdNOS42MDcgMjFINmEyIDIgMCAwIDEtMi0ydi03YTIgMiAwIDAgMSAyLTJoN1Y3YTEgMSAwIDAgMC0xLTFIOWExIDEgMCAwIDAtMSAxdjMnLFxuICAgICAga2V5OiAndDlobTk2JyxcbiAgICB9LFxuICBdLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIFNvYXBEaXNwZW5zZXJEcm9wbGV0XG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NVEF1TlNBeWRqUWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRURTBJREpJTjJFeUlESWdNQ0F3SURBdE1pQXlJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHhPUzR5T1NBeE5DNDNOa0UyTGpZM0lEWXVOamNnTUNBd0lERWdNVGNnTVRGaE5pNDJJRFl1TmlBd0lEQWdNUzB5TGpJNUlETXVOelpqTFRFdU1UVXVPVEl0TVM0M01TQXlMakEwTFRFdU56RWdNeTR4T1NBd0lESXVNaklnTVM0NElEUXVNRFVnTkNBMExqQTFjelF0TVM0NE15QTBMVFF1TURWak1DMHhMakUyTFM0MU55MHlMakkyTFRFdU56RXRNeTR4T1NJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOT1M0Mk1EY2dNakZJTm1FeUlESWdNQ0F3SURFdE1pMHlkaTAzWVRJZ01pQXdJREFnTVNBeUxUSm9OMVkzWVRFZ01TQXdJREFnTUMweExURklPV0V4SURFZ01DQXdJREF0TVNBeGRqTWlJQzgrQ2p3dmMzWm5QZ289KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9zb2FwLWRpc3BlbnNlci1kcm9wbGV0XG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgU29hcERpc3BlbnNlckRyb3BsZXQgPSBjcmVhdGVMdWNpZGVJY29uKCdzb2FwLWRpc3BlbnNlci1kcm9wbGV0JywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IFNvYXBEaXNwZW5zZXJEcm9wbGV0O1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdNMTIgMjFhOSA5IDAgMCAwIDktOUgzYTkgOSAwIDAgMCA5IDlaJywga2V5OiAnNHJ3MzE3JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTcgMjFoMTAnLCBrZXk6ICcxYjBjZDUnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTkuNSAxMiAyMiA2Jywga2V5OiAnc2hmc3I1JyB9XSxcbiAgW1xuICAgICdwYXRoJyxcbiAgICB7XG4gICAgICBkOiAnTTE2LjI1IDNjLjI3LjEuOC41My43NSAxLjM2LS4wNi44My0uOTMgMS4yLTEgMi4wMi0uMDUuNzguMzQgMS4yNC43MyAxLjYyJyxcbiAgICAgIGtleTogJ3JwYzZ2cCcsXG4gICAgfSxcbiAgXSxcbiAgW1xuICAgICdwYXRoJyxcbiAgICB7XG4gICAgICBkOiAnTTExLjI1IDNjLjI3LjEuOC41My43NCAxLjM2LS4wNS44My0uOTMgMS4yLS45OCAyLjAyLS4wNi43OC4zMyAxLjI0LjcyIDEuNjInLFxuICAgICAga2V5OiAnMWxmNjNtJyxcbiAgICB9LFxuICBdLFxuICBbXG4gICAgJ3BhdGgnLFxuICAgIHsgZDogJ002LjI1IDNjLjI3LjEuOC41My43NSAxLjM2LS4wNi44My0uOTMgMS4yLTEgMi4wMi0uMDUuNzguMzQgMS4yNC43NCAxLjYyJywga2V5OiAnOTd0aWpuJyB9LFxuICBdLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIFNvdXBcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1USWdNakZoT1NBNUlEQWdNQ0F3SURrdE9VZ3pZVGtnT1NBd0lEQWdNQ0E1SURsYUlpQXZQZ29nSUR4d1lYUm9JR1E5SWswM0lESXhhREV3SWlBdlBnb2dJRHh3WVhSb0lHUTlJazB4T1M0MUlERXlJREl5SURZaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRFMkxqSTFJRE5qTGpJM0xqRXVPQzQxTXk0M05TQXhMak0yTFM0d05pNDRNeTB1T1RNZ01TNHlMVEVnTWk0d01pMHVNRFV1TnpndU16UWdNUzR5TkM0M015QXhMall5SWlBdlBnb2dJRHh3WVhSb0lHUTlJazB4TVM0eU5TQXpZeTR5Tnk0eExqZ3VOVE11TnpRZ01TNHpOaTB1TURVdU9ETXRMamt6SURFdU1pMHVPVGdnTWk0d01pMHVNRFl1TnpndU16TWdNUzR5TkM0M01pQXhMall5SWlBdlBnb2dJRHh3WVhSb0lHUTlJazAyTGpJMUlETmpMakkzTGpFdU9DNDFNeTQzTlNBeExqTTJMUzR3Tmk0NE15MHVPVE1nTVM0eUxURWdNaTR3TWkwdU1EVXVOemd1TXpRZ01TNHlOQzQzTkNBeExqWXlJaUF2UGdvOEwzTjJaejRLKSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9zb3VwXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgU291cCA9IGNyZWF0ZUx1Y2lkZUljb24oJ3NvdXAnLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgU291cDtcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTIyIDE3djFjMCAuNS0uNSAxLTEgMUgzYy0uNSAwLTEtLjUtMS0xdi0xJywga2V5OiAnbHQya2dhJyB9XSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBTcGFjZVxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTWpJZ01UZDJNV013SUM0MUxTNDFJREV0TVNBeFNETmpMUzQxSURBdE1TMHVOUzB4TFRGMkxURWlJQzgrQ2p3dmMzWm5QZ289KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9zcGFjZVxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IFNwYWNlID0gY3JlYXRlTHVjaWRlSWNvbignc3BhY2UnLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgU3BhY2U7XG4iLCJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbXG4gIFtcbiAgICAncGF0aCcsXG4gICAge1xuICAgICAgZDogJ001IDljLTEuNSAxLjUtMyAzLjItMyA1LjVBNS41IDUuNSAwIDAgMCA3LjUgMjBjMS44IDAgMy0uNSA0LjUtMiAxLjUgMS41IDIuNyAyIDQuNSAyYTUuNSA1LjUgMCAwIDAgNS41LTUuNWMwLTIuMy0xLjUtNC0zLTUuNWwtNy03LTcgN1onLFxuICAgICAga2V5OiAnNDBibzluJyxcbiAgICB9LFxuICBdLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTIgMTh2NCcsIGtleTogJ2phZG12eicgfV0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgU3BhZGVcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk5TQTVZeTB4TGpVZ01TNDFMVE1nTXk0eUxUTWdOUzQxUVRVdU5TQTFMalVnTUNBd0lEQWdOeTQxSURJd1l6RXVPQ0F3SURNdExqVWdOQzQxTFRJZ01TNDFJREV1TlNBeUxqY2dNaUEwTGpVZ01tRTFMalVnTlM0MUlEQWdNQ0F3SURVdU5TMDFMalZqTUMweUxqTXRNUzQxTFRRdE15MDFMalZzTFRjdE55MDNJRGRhSWlBdlBnb2dJRHh3WVhSb0lHUTlJazB4TWlBeE9IWTBJaUF2UGdvOEwzTjJaejRLKSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9zcGFkZVxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IFNwYWRlID0gY3JlYXRlTHVjaWRlSWNvbignc3BhZGUnLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgU3BhZGU7XG4iLCJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbXG4gIFtcbiAgICAncGF0aCcsXG4gICAge1xuICAgICAgZDogJ005LjkzNyAxNS41QTIgMiAwIDAgMCA4LjUgMTQuMDYzbC02LjEzNS0xLjU4MmEuNS41IDAgMCAxIDAtLjk2Mkw4LjUgOS45MzZBMiAyIDAgMCAwIDkuOTM3IDguNWwxLjU4Mi02LjEzNWEuNS41IDAgMCAxIC45NjMgMEwxNC4wNjMgOC41QTIgMiAwIDAgMCAxNS41IDkuOTM3bDYuMTM1IDEuNTgxYS41LjUgMCAwIDEgMCAuOTY0TDE1LjUgMTQuMDYzYTIgMiAwIDAgMC0xLjQzNyAxLjQzN2wtMS41ODIgNi4xMzVhLjUuNSAwIDAgMS0uOTYzIDB6JyxcbiAgICAgIGtleTogJzRwajJ5eCcsXG4gICAgfSxcbiAgXSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBTcGFya2xlXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5PUzQ1TXpjZ01UVXVOVUV5SURJZ01DQXdJREFnT0M0MUlERTBMakEyTTJ3dE5pNHhNelV0TVM0MU9ESmhMalV1TlNBd0lEQWdNU0F3TFM0NU5qSk1PQzQxSURrdU9UTTJRVElnTWlBd0lEQWdNQ0E1TGprek55QTRMalZzTVM0MU9ESXROaTR4TXpWaExqVXVOU0F3SURBZ01TQXVPVFl6SURCTU1UUXVNRFl6SURndU5VRXlJRElnTUNBd0lEQWdNVFV1TlNBNUxqa3pOMncyTGpFek5TQXhMalU0TVdFdU5TNDFJREFnTUNBeElEQWdMamsyTkV3eE5TNDFJREUwTGpBMk0yRXlJRElnTUNBd0lEQXRNUzQwTXpjZ01TNDBNemRzTFRFdU5UZ3lJRFl1TVRNMVlTNDFMalVnTUNBd0lERXRMamsyTXlBd2VpSWdMejRLUEM5emRtYytDZz09KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9zcGFya2xlXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgU3BhcmtsZSA9IGNyZWF0ZUx1Y2lkZUljb24oJ3NwYXJrbGUnLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgU3BhcmtsZTtcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgW1xuICAgICdwYXRoJyxcbiAgICB7XG4gICAgICBkOiAnTTkuOTM3IDE1LjVBMiAyIDAgMCAwIDguNSAxNC4wNjNsLTYuMTM1LTEuNTgyYS41LjUgMCAwIDEgMC0uOTYyTDguNSA5LjkzNkEyIDIgMCAwIDAgOS45MzcgOC41bDEuNTgyLTYuMTM1YS41LjUgMCAwIDEgLjk2MyAwTDE0LjA2MyA4LjVBMiAyIDAgMCAwIDE1LjUgOS45MzdsNi4xMzUgMS41ODFhLjUuNSAwIDAgMSAwIC45NjRMMTUuNSAxNC4wNjNhMiAyIDAgMCAwLTEuNDM3IDEuNDM3bC0xLjU4MiA2LjEzNWEuNS41IDAgMCAxLS45NjMgMHonLFxuICAgICAga2V5OiAnNHBqMnl4JyxcbiAgICB9LFxuICBdLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMjAgM3Y0Jywga2V5OiAnMW9sbGkxJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTIyIDVoLTQnLCBrZXk6ICcxZ3ZxYXUnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNNCAxN3YyJywga2V5OiAndnVtZ2h0JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTUgMThIMycsIGtleTogJ3pjaHBocycgfV0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgU3BhcmtsZXNcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk9TNDVNemNnTVRVdU5VRXlJRElnTUNBd0lEQWdPQzQxSURFMExqQTJNMnd0Tmk0eE16VXRNUzQxT0RKaExqVXVOU0F3SURBZ01TQXdMUzQ1TmpKTU9DNDFJRGt1T1RNMlFUSWdNaUF3SURBZ01DQTVMamt6TnlBNExqVnNNUzQxT0RJdE5pNHhNelZoTGpVdU5TQXdJREFnTVNBdU9UWXpJREJNTVRRdU1EWXpJRGd1TlVFeUlESWdNQ0F3SURBZ01UVXVOU0E1TGprek4ydzJMakV6TlNBeExqVTRNV0V1TlM0MUlEQWdNQ0F4SURBZ0xqazJORXd4TlM0MUlERTBMakEyTTJFeUlESWdNQ0F3SURBdE1TNDBNemNnTVM0ME16ZHNMVEV1TlRneUlEWXVNVE0xWVM0MUxqVWdNQ0F3SURFdExqazJNeUF3ZWlJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTWpBZ00zWTBJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHlNaUExYUMwMElpQXZQZ29nSUR4d1lYUm9JR1E5SWswMElERTNkaklpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVFVnTVRoSU15SWdMejRLUEM5emRtYytDZz09KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9zcGFya2xlc1xuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IFNwYXJrbGVzID0gY3JlYXRlTHVjaWRlSWNvbignc3BhcmtsZXMnLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgU3BhcmtsZXM7XG4iLCJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbXG4gIFsncmVjdCcsIHsgd2lkdGg6ICcxNicsIGhlaWdodDogJzIwJywgeDogJzQnLCB5OiAnMicsIHJ4OiAnMicsIGtleTogJzFuYjk1dicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xMiA2aC4wMScsIGtleTogJzF2aTk2cCcgfV0sXG4gIFsnY2lyY2xlJywgeyBjeDogJzEyJywgY3k6ICcxNCcsIHI6ICc0Jywga2V5OiAnMWpydWFqJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTEyIDE0aC4wMScsIGtleTogJzFldGlsaScgfV0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgU3BlYWtlclxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y21WamRDQjNhV1IwYUQwaU1UWWlJR2hsYVdkb2REMGlNakFpSUhnOUlqUWlJSGs5SWpJaUlISjRQU0l5SWlBdlBnb2dJRHh3WVhSb0lHUTlJazB4TWlBMmFDNHdNU0lnTHo0S0lDQThZMmx5WTJ4bElHTjRQU0l4TWlJZ1kzazlJakUwSWlCeVBTSTBJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHhNaUF4TkdndU1ERWlJQzgrQ2p3dmMzWm5QZ289KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9zcGVha2VyXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgU3BlYWtlciA9IGNyZWF0ZUx1Y2lkZUljb24oJ3NwZWFrZXInLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgU3BlYWtlcjtcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgW1xuICAgICdwYXRoJyxcbiAgICB7XG4gICAgICBkOiAnTTguOCAyMHYtNC4xbDEuOS4yYTIuMyAyLjMgMCAwIDAgMi4xNjQtMi4xVjguM0E1LjM3IDUuMzcgMCAwIDAgMiA4LjI1YzAgMi44LjY1NiAzLjA1NCAxIDQuNTVhNS43NyA1Ljc3IDAgMCAxIC4wMjkgMi43NThMMiAyMCcsXG4gICAgICBrZXk6ICcxMWF0aXgnLFxuICAgIH0sXG4gIF0sXG4gIFsncGF0aCcsIHsgZDogJ00xOS44IDE3LjhhNy41IDcuNSAwIDAgMCAuMDAzLTEwLjYwMycsIGtleTogJ3lvbDE0MicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xNyAxNWEzLjUgMy41IDAgMCAwLS4wMjUtNC45NzUnLCBrZXk6ICdzc2Jta2MnIH1dLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIFNwZWVjaFxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOT0M0NElESXdkaTAwTGpGc01TNDVMakpoTWk0eklESXVNeUF3SURBZ01DQXlMakUyTkMweUxqRldPQzR6UVRVdU16Y2dOUzR6TnlBd0lEQWdNQ0F5SURndU1qVmpNQ0F5TGpndU5qVTJJRE11TURVMElERWdOQzQxTldFMUxqYzNJRFV1TnpjZ01DQXdJREVnTGpBeU9TQXlMamMxT0V3eUlESXdJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHhPUzQ0SURFM0xqaGhOeTQxSURjdU5TQXdJREFnTUNBdU1EQXpMVEV3TGpZd015SWdMejRLSUNBOGNHRjBhQ0JrUFNKTk1UY2dNVFZoTXk0MUlETXVOU0F3SURBZ01DMHVNREkxTFRRdU9UYzFJaUF2UGdvOEwzTjJaejRLKSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9zcGVlY2hcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBTcGVlY2ggPSBjcmVhdGVMdWNpZGVJY29uKCdzcGVlY2gnLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgU3BlZWNoO1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdtNiAxNiA2LTEyIDYgMTInLCBrZXk6ICcxYjRieXonIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNOCAxMmg4Jywga2V5OiAnMXdjeWV2JyB9XSxcbiAgW1xuICAgICdwYXRoJyxcbiAgICB7XG4gICAgICBkOiAnTTQgMjFjMS4xIDAgMS4xLTEgMi4zLTFzMS4xIDEgMi4zIDFjMS4xIDAgMS4xLTEgMi4zLTEgMS4xIDAgMS4xIDEgMi4zIDEgMS4xIDAgMS4xLTEgMi4zLTEgMS4xIDAgMS4xIDEgMi4zIDEgMS4xIDAgMS4xLTEgMi4zLTEnLFxuICAgICAga2V5OiAnOG1kbXR1JyxcbiAgICB9LFxuICBdLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIFNwZWxsQ2hlY2syXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSnROaUF4TmlBMkxURXlJRFlnTVRJaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRnZ01USm9PQ0lnTHo0S0lDQThjR0YwYUNCa1BTSk5OQ0F5TVdNeExqRWdNQ0F4TGpFdE1TQXlMak10TVhNeExqRWdNU0F5TGpNZ01XTXhMakVnTUNBeExqRXRNU0F5TGpNdE1TQXhMakVnTUNBeExqRWdNU0F5TGpNZ01TQXhMakVnTUNBeExqRXRNU0F5TGpNdE1TQXhMakVnTUNBeExqRWdNU0F5TGpNZ01TQXhMakVnTUNBeExqRXRNU0F5TGpNdE1TSWdMejRLUEM5emRtYytDZz09KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9zcGVsbC1jaGVjay0yXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgU3BlbGxDaGVjazIgPSBjcmVhdGVMdWNpZGVJY29uKCdzcGVsbC1jaGVjay0yJywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IFNwZWxsQ2hlY2syO1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdtNiAxNiA2LTEyIDYgMTInLCBrZXk6ICcxYjRieXonIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNOCAxMmg4Jywga2V5OiAnMXdjeWV2JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnbTE2IDIwIDIgMiA0LTQnLCBrZXk6ICcxM3RjY2EnIH1dLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIFNwZWxsQ2hlY2tcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKdE5pQXhOaUEyTFRFeUlEWWdNVElpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVGdnTVRKb09DSWdMejRLSUNBOGNHRjBhQ0JrUFNKdE1UWWdNakFnTWlBeUlEUXROQ0lnTHo0S1BDOXpkbWMrQ2c9PSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvc3BlbGwtY2hlY2tcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBTcGVsbENoZWNrID0gY3JlYXRlTHVjaWRlSWNvbignc3BlbGwtY2hlY2snLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgU3BlbGxDaGVjaztcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgW1xuICAgICdwYXRoJyxcbiAgICB7XG4gICAgICBkOiAnTTEyLjAzNCAxMi42ODFhLjQ5OC40OTggMCAwIDEgLjY0Ny0uNjQ3bDkgMy41YS41LjUgMCAwIDEtLjAzMy45NDNsLTMuNDQ0IDEuMDY4YTEgMSAwIDAgMC0uNjYuNjZsLTEuMDY3IDMuNDQzYS41LjUgMCAwIDEtLjk0My4wMzN6JyxcbiAgICAgIGtleTogJ3h3bnppcCcsXG4gICAgfSxcbiAgXSxcbiAgWydwYXRoJywgeyBkOiAnTTUgMTdBMTIgMTIgMCAwIDEgMTcgNScsIGtleTogJzFva2t1cCcgfV0sXG4gIFsnY2lyY2xlJywgeyBjeDogJzE5JywgY3k6ICc1JywgcjogJzInLCBrZXk6ICdtaGt4MzEnIH1dLFxuICBbJ2NpcmNsZScsIHsgY3g6ICc1JywgY3k6ICcxOScsIHI6ICcyJywga2V5OiAndjhrZnp4JyB9XSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBTcGxpbmVQb2ludGVyXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NVEl1TURNMElERXlMalk0TVdFdU5EazRMalE1T0NBd0lEQWdNU0F1TmpRM0xTNDJORGRzT1NBekxqVmhMalV1TlNBd0lEQWdNUzB1TURNekxqazBNMnd0TXk0ME5EUWdNUzR3TmpoaE1TQXhJREFnTUNBd0xTNDJOaTQyTm13dE1TNHdOamNnTXk0ME5ETmhMalV1TlNBd0lEQWdNUzB1T1RRekxqQXpNM29pSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVFVnTVRkQk1USWdNVElnTUNBd0lERWdNVGNnTlNJZ0x6NEtJQ0E4WTJseVkyeGxJR040UFNJeE9TSWdZM2s5SWpVaUlISTlJaklpSUM4K0NpQWdQR05wY21Oc1pTQmplRDBpTlNJZ1kzazlJakU1SWlCeVBTSXlJaUF2UGdvOEwzTjJaejQ9KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9zcGxpbmUtcG9pbnRlclxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IFNwbGluZVBvaW50ZXIgPSBjcmVhdGVMdWNpZGVJY29uKCdzcGxpbmUtcG9pbnRlcicsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBTcGxpbmVQb2ludGVyO1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbJ2NpcmNsZScsIHsgY3g6ICcxOScsIGN5OiAnNScsIHI6ICcyJywga2V5OiAnbWhreDMxJyB9XSxcbiAgWydjaXJjbGUnLCB7IGN4OiAnNScsIGN5OiAnMTknLCByOiAnMicsIGtleTogJ3Y4a2Z6eCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ001IDE3QTEyIDEyIDAgMCAxIDE3IDUnLCBrZXk6ICcxb2trdXAnIH1dLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIFNwbGluZVxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4WTJseVkyeGxJR040UFNJeE9TSWdZM2s5SWpVaUlISTlJaklpSUM4K0NpQWdQR05wY21Oc1pTQmplRDBpTlNJZ1kzazlJakU1SWlCeVBTSXlJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMDFJREUzUVRFeUlERXlJREFnTUNBeElERTNJRFVpSUM4K0Nqd3ZjM1puUGdvPSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvc3BsaW5lXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgU3BsaW5lID0gY3JlYXRlTHVjaWRlSWNvbignc3BsaW5lJywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IFNwbGluZTtcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTE2IDNoNXY1Jywga2V5OiAnMTgwNm1zJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTggM0gzdjUnLCBrZXk6ICcxNWRma3YnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTIgMjJ2LTguM2E0IDQgMCAwIDAtMS4xNzItMi44NzJMMyAzJywga2V5OiAnMXFycXpqJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnbTE1IDkgNi02Jywga2V5OiAna28xdmV2JyB9XSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBTcGxpdFxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTVRZZ00yZzFkalVpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVGdnTTBnemRqVWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRURXlJREl5ZGkwNExqTmhOQ0EwSURBZ01DQXdMVEV1TVRjeUxUSXVPRGN5VERNZ015SWdMejRLSUNBOGNHRjBhQ0JrUFNKdE1UVWdPU0EyTFRZaUlDOCtDand2YzNablBnbz0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL3NwbGl0XG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgU3BsaXQgPSBjcmVhdGVMdWNpZGVJY29uKCdzcGxpdCcsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBTcGxpdDtcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgW1xuICAgICdwYXRoJyxcbiAgICB7XG4gICAgICBkOiAnTTE3IDEzLjQ0IDQuNDQyIDE3LjA4MkEyIDIgMCAwIDAgNC45ODIgMjFIMTlhMiAyIDAgMCAwIC41NTgtMy45MjFsLTEuMTE1LS4zMkEyIDIgMCAwIDEgMTcgMTQuODM3VjcuNjYnLFxuICAgICAga2V5OiAnMTN2bnM4JyxcbiAgICB9LFxuICBdLFxuICBbXG4gICAgJ3BhdGgnLFxuICAgIHtcbiAgICAgIGQ6ICdtNyAxMC41NiAxMi41NTgtMy42NDJBMiAyIDAgMCAwIDE5LjAxOCAzSDVhMiAyIDAgMCAwLS41NTggMy45MjFsMS4xMTUuMzJBMiAyIDAgMCAxIDcgOS4xNjN2Ny4xNzgnLFxuICAgICAga2V5OiAnczh4M3UwJyxcbiAgICB9LFxuICBdLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIFNwb29sXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NVGNnTVRNdU5EUWdOQzQwTkRJZ01UY3VNRGd5UVRJZ01pQXdJREFnTUNBMExqazRNaUF5TVVneE9XRXlJRElnTUNBd0lEQWdMalUxT0Mwekxqa3lNV3d0TVM0eE1UVXRMak15UVRJZ01pQXdJREFnTVNBeE55QXhOQzQ0TXpkV055NDJOaUlnTHo0S0lDQThjR0YwYUNCa1BTSnROeUF4TUM0MU5pQXhNaTQxTlRndE15NDJOREpCTWlBeUlEQWdNQ0F3SURFNUxqQXhPQ0F6U0RWaE1pQXlJREFnTUNBd0xTNDFOVGdnTXk0NU1qRnNNUzR4TVRVdU16SkJNaUF5SURBZ01DQXhJRGNnT1M0eE5qTjJOeTR4TnpnaUlDOCtDand2YzNablBnbz0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL3Nwb29sXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgU3Bvb2wgPSBjcmVhdGVMdWNpZGVJY29uKCdzcG9vbCcsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBTcG9vbDtcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTMgM2guMDEnLCBrZXk6ICcxNTlxbjYnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNNyA1aC4wMScsIGtleTogJzFocTIyYScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xMSA3aC4wMScsIGtleTogJzFvc3Y4MCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00zIDdoLjAxJywga2V5OiAnMXh6cmgzJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTcgOWguMDEnLCBrZXk6ICcxOWIzangnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMyAxMWguMDEnLCBrZXk6ICcxZWlmdTcnIH1dLFxuICBbJ3JlY3QnLCB7IHdpZHRoOiAnNCcsIGhlaWdodDogJzQnLCB4OiAnMTUnLCB5OiAnNScsIGtleTogJ21yaTllNCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ20xOSA5IDIgMnYxMGMwIC42LS40IDEtMSAxaC02Yy0uNiAwLTEtLjQtMS0xVjExbDItMicsIGtleTogJ2FpYjZoaycgfV0sXG4gIFsncGF0aCcsIHsgZDogJ20xMyAxNCA4LTInLCBrZXk6ICcxZDdibWsnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdtMTMgMTkgOC0yJywga2V5OiAnMXkydm1sJyB9XSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBTcHJheUNhblxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTXlBemFDNHdNU0lnTHo0S0lDQThjR0YwYUNCa1BTSk5OeUExYUM0d01TSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk1URWdOMmd1TURFaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRNZ04yZ3VNREVpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVGNnT1dndU1ERWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRUTWdNVEZvTGpBeElpQXZQZ29nSUR4eVpXTjBJSGRwWkhSb1BTSTBJaUJvWldsbmFIUTlJalFpSUhnOUlqRTFJaUI1UFNJMUlpQXZQZ29nSUR4d1lYUm9JR1E5SW0weE9TQTVJRElnTW5ZeE1HTXdJQzQyTFM0MElERXRNU0F4YUMwMll5MHVOaUF3TFRFdExqUXRNUzB4VmpFeGJESXRNaUlnTHo0S0lDQThjR0YwYUNCa1BTSnRNVE1nTVRRZ09DMHlJaUF2UGdvZ0lEeHdZWFJvSUdROUltMHhNeUF4T1NBNExUSWlJQzgrQ2p3dmMzWm5QZ289KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9zcHJheS1jYW5cbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBTcHJheUNhbiA9IGNyZWF0ZUx1Y2lkZUljb24oJ3NwcmF5LWNhbicsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBTcHJheUNhbjtcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTcgMjBoMTAnLCBrZXk6ICdlNml6bnYnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTAgMjBjNS41LTIuNS44LTYuNCAzLTEwJywga2V5OiAnMTYxdzQxJyB9XSxcbiAgW1xuICAgICdwYXRoJyxcbiAgICB7XG4gICAgICBkOiAnTTkuNSA5LjRjMS4xLjggMS44IDIuMiAyLjMgMy43LTIgLjQtMy41LjQtNC44LS4zLTEuMi0uNi0yLjMtMS45LTMtNC4yIDIuOC0uNSA0LjQgMCA1LjUuOHonLFxuICAgICAga2V5OiAnOWd0cXdkJyxcbiAgICB9LFxuICBdLFxuICBbXG4gICAgJ3BhdGgnLFxuICAgIHtcbiAgICAgIGQ6ICdNMTQuMSA2YTcgNyAwIDAgMC0xLjEgNGMxLjktLjEgMy4zLS42IDQuMy0xLjQgMS0xIDEuNi0yLjMgMS43LTQuNi0yLjcuMS00IDEtNC45IDJ6JyxcbiAgICAgIGtleTogJ2JreG5kMicsXG4gICAgfSxcbiAgXSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBTcHJvdXRcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk55QXlNR2d4TUNJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTVRBZ01qQmpOUzQxTFRJdU5TNDRMVFl1TkNBekxURXdJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMDVMalVnT1M0MFl6RXVNUzQ0SURFdU9DQXlMaklnTWk0eklETXVOeTB5SUM0MExUTXVOUzQwTFRRdU9DMHVNeTB4TGpJdExqWXRNaTR6TFRFdU9TMHpMVFF1TWlBeUxqZ3RMalVnTkM0MElEQWdOUzQxTGpoNklpQXZQZ29nSUR4d1lYUm9JR1E5SWsweE5DNHhJRFpoTnlBM0lEQWdNQ0F3TFRFdU1TQTBZekV1T1MwdU1TQXpMak10TGpZZ05DNHpMVEV1TkNBeExURWdNUzQyTFRJdU15QXhMamN0TkM0MkxUSXVOeTR4TFRRZ01TMDBMamtnTW5vaUlDOCtDand2YzNablBnbz0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL3Nwcm91dFxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IFNwcm91dCA9IGNyZWF0ZUx1Y2lkZUljb24oJ3Nwcm91dCcsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBTcHJvdXQ7XG4iLCJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbXG4gIFsncmVjdCcsIHsgd2lkdGg6ICcxOCcsIGhlaWdodDogJzE4JywgeDogJzMnLCB5OiAnMycsIHJ4OiAnMicsIGtleTogJ2FmaXR2NycgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xNyAxMmgtMmwtMiA1LTItMTAtMiA1SDcnLCBrZXk6ICcxNWhsbmMnIH1dLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIFNxdWFyZUFjdGl2aXR5XG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjbVZqZENCM2FXUjBhRDBpTVRnaUlHaGxhV2RvZEQwaU1UZ2lJSGc5SWpNaUlIazlJak1pSUhKNFBTSXlJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHhOeUF4TW1ndE1td3RNaUExTFRJdE1UQXRNaUExU0RjaUlDOCtDand2YzNablBnbz0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL3NxdWFyZS1hY3Rpdml0eVxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IFNxdWFyZUFjdGl2aXR5ID0gY3JlYXRlTHVjaWRlSWNvbignc3F1YXJlLWFjdGl2aXR5JywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IFNxdWFyZUFjdGl2aXR5O1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbJ3JlY3QnLCB7IHdpZHRoOiAnMTgnLCBoZWlnaHQ6ICcxOCcsIHg6ICczJywgeTogJzMnLCByeDogJzInLCBrZXk6ICdhZml0djcnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdtMTYgOC04IDgnLCBrZXk6ICcxNjZrZWgnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTYgMTZIOFY4Jywga2V5OiAnMXcycHBtJyB9XSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBTcXVhcmVBcnJvd0Rvd25MZWZ0XG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjbVZqZENCM2FXUjBhRDBpTVRnaUlHaGxhV2RvZEQwaU1UZ2lJSGc5SWpNaUlIazlJak1pSUhKNFBTSXlJaUF2UGdvZ0lEeHdZWFJvSUdROUltMHhOaUE0TFRnZ09DSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk1UWWdNVFpJT0ZZNElpQXZQZ284TDNOMlp6NEspIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL3NxdWFyZS1hcnJvdy1kb3duLWxlZnRcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBTcXVhcmVBcnJvd0Rvd25MZWZ0ID0gY3JlYXRlTHVjaWRlSWNvbignc3F1YXJlLWFycm93LWRvd24tbGVmdCcsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBTcXVhcmVBcnJvd0Rvd25MZWZ0O1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbJ3JlY3QnLCB7IHdpZHRoOiAnMTgnLCBoZWlnaHQ6ICcxOCcsIHg6ICczJywgeTogJzMnLCByeDogJzInLCBrZXk6ICdhZml0djcnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdtOCA4IDggOCcsIGtleTogJzFpbWVjeScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xNiA4djhIOCcsIGtleTogJzFsYnBnbycgfV0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgU3F1YXJlQXJyb3dEb3duUmlnaHRcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNtVmpkQ0IzYVdSMGFEMGlNVGdpSUdobGFXZG9kRDBpTVRnaUlIZzlJak1pSUhrOUlqTWlJSEo0UFNJeUlpQXZQZ29nSUR4d1lYUm9JR1E5SW0wNElEZ2dPQ0E0SWlBdlBnb2dJRHh3WVhSb0lHUTlJazB4TmlBNGRqaElPQ0lnTHo0S1BDOXpkbWMrQ2c9PSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvc3F1YXJlLWFycm93LWRvd24tcmlnaHRcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBTcXVhcmVBcnJvd0Rvd25SaWdodCA9IGNyZWF0ZUx1Y2lkZUljb24oJ3NxdWFyZS1hcnJvdy1kb3duLXJpZ2h0JywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IFNxdWFyZUFycm93RG93blJpZ2h0O1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbJ3JlY3QnLCB7IHdpZHRoOiAnMTgnLCBoZWlnaHQ6ICcxOCcsIHg6ICczJywgeTogJzMnLCByeDogJzInLCBrZXk6ICdhZml0djcnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTIgOHY4Jywga2V5OiAnbmFwa3cyJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnbTggMTIgNCA0IDQtNCcsIGtleTogJ2s5OHNzaCcgfV0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgU3F1YXJlQXJyb3dEb3duXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjbVZqZENCM2FXUjBhRDBpTVRnaUlHaGxhV2RvZEQwaU1UZ2lJSGc5SWpNaUlIazlJak1pSUhKNFBTSXlJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHhNaUE0ZGpnaUlDOCtDaUFnUEhCaGRHZ2daRDBpYlRnZ01USWdOQ0EwSURRdE5DSWdMejRLUEM5emRtYytDZz09KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9zcXVhcmUtYXJyb3ctZG93blxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IFNxdWFyZUFycm93RG93biA9IGNyZWF0ZUx1Y2lkZUljb24oJ3NxdWFyZS1hcnJvdy1kb3duJywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IFNxdWFyZUFycm93RG93bjtcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgWydyZWN0JywgeyB3aWR0aDogJzE4JywgaGVpZ2h0OiAnMTgnLCB4OiAnMycsIHk6ICczJywgcng6ICcyJywga2V5OiAnYWZpdHY3JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnbTEyIDgtNCA0IDQgNCcsIGtleTogJzE1dm01MycgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xNiAxMkg4Jywga2V5OiAnMWZyNWgwJyB9XSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBTcXVhcmVBcnJvd0xlZnRcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNtVmpkQ0IzYVdSMGFEMGlNVGdpSUdobGFXZG9kRDBpTVRnaUlIZzlJak1pSUhrOUlqTWlJSEo0UFNJeUlpQXZQZ29nSUR4d1lYUm9JR1E5SW0weE1pQTRMVFFnTkNBMElEUWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRURTJJREV5U0RnaUlDOCtDand2YzNablBnbz0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL3NxdWFyZS1hcnJvdy1sZWZ0XG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgU3F1YXJlQXJyb3dMZWZ0ID0gY3JlYXRlTHVjaWRlSWNvbignc3F1YXJlLWFycm93LWxlZnQnLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgU3F1YXJlQXJyb3dMZWZ0O1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdNMTMgMjFoNmEyIDIgMCAwIDAgMi0yVjVhMiAyIDAgMCAwLTItMkg1YTIgMiAwIDAgMC0yIDJ2NicsIGtleTogJzE0cXo0eScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ20zIDIxIDktOScsIGtleTogJzFqZnFsNScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ005IDIxSDN2LTYnLCBrZXk6ICd3dHZrdnYnIH1dLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIFNxdWFyZUFycm93T3V0RG93bkxlZnRcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1UTWdNakZvTm1FeUlESWdNQ0F3SURBZ01pMHlWalZoTWlBeUlEQWdNQ0F3TFRJdE1rZzFZVElnTWlBd0lEQWdNQzB5SURKMk5pSWdMejRLSUNBOGNHRjBhQ0JrUFNKdE15QXlNU0E1TFRraUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRrZ01qRklNM1l0TmlJZ0x6NEtQQzl6ZG1jK0NnPT0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL3NxdWFyZS1hcnJvdy1vdXQtZG93bi1sZWZ0XG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgU3F1YXJlQXJyb3dPdXREb3duTGVmdCA9IGNyZWF0ZUx1Y2lkZUljb24oJ3NxdWFyZS1hcnJvdy1vdXQtZG93bi1sZWZ0JywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IFNxdWFyZUFycm93T3V0RG93bkxlZnQ7XG4iLCJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ00yMSAxMVY1YTIgMiAwIDAgMC0yLTJINWEyIDIgMCAwIDAtMiAydjE0YTIgMiAwIDAgMCAyIDJoNicsIGtleTogJzE0cnN2cScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ20yMSAyMS05LTknLCBrZXk6ICcxZXQycHknIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMjEgMTV2NmgtNicsIGtleTogJzFqa28waScgfV0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgU3F1YXJlQXJyb3dPdXREb3duUmlnaHRcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1qRWdNVEZXTldFeUlESWdNQ0F3SURBdE1pMHlTRFZoTWlBeUlEQWdNQ0F3TFRJZ01uWXhOR0V5SURJZ01DQXdJREFnTWlBeWFEWWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaWJUSXhJREl4TFRrdE9TSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk1qRWdNVFYyTm1ndE5pSWdMejRLUEM5emRtYytDZz09KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9zcXVhcmUtYXJyb3ctb3V0LWRvd24tcmlnaHRcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBTcXVhcmVBcnJvd091dERvd25SaWdodCA9IGNyZWF0ZUx1Y2lkZUljb24oJ3NxdWFyZS1hcnJvdy1vdXQtZG93bi1yaWdodCcsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBTcXVhcmVBcnJvd091dERvd25SaWdodDtcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTIxIDEzdjZhMiAyIDAgMCAxLTIgMkg1YTIgMiAwIDAgMS0yLTJWNWEyIDIgMCAwIDEgMi0yaDYnLCBrZXk6ICd5MDl6eGknIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdtMjEgMy05IDknLCBrZXk6ICdtcHg2c3EnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTUgM2g2djYnLCBrZXk6ICcxcTlmd3QnIH1dLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIFNxdWFyZUFycm93T3V0VXBSaWdodFxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTWpFZ01UTjJObUV5SURJZ01DQXdJREV0TWlBeVNEVmhNaUF5SURBZ01DQXhMVEl0TWxZMVlUSWdNaUF3SURBZ01TQXlMVEpvTmlJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0p0TWpFZ015MDVJRGtpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVEUxSUROb05uWTJJaUF2UGdvOEwzTjJaejRLKSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9zcXVhcmUtYXJyb3ctb3V0LXVwLXJpZ2h0XG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgU3F1YXJlQXJyb3dPdXRVcFJpZ2h0ID0gY3JlYXRlTHVjaWRlSWNvbignc3F1YXJlLWFycm93LW91dC11cC1yaWdodCcsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBTcXVhcmVBcnJvd091dFVwUmlnaHQ7XG4iLCJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbXG4gIFsncmVjdCcsIHsgd2lkdGg6ICcxOCcsIGhlaWdodDogJzE4JywgeDogJzMnLCB5OiAnMycsIHJ4OiAnMicsIGtleTogJ2FmaXR2NycgfV0sXG4gIFsncGF0aCcsIHsgZDogJ004IDEyaDgnLCBrZXk6ICcxd2N5ZXYnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdtMTIgMTYgNC00LTQtNCcsIGtleTogJzFpOXpjdicgfV0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgU3F1YXJlQXJyb3dSaWdodFxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y21WamRDQjNhV1IwYUQwaU1UZ2lJR2hsYVdkb2REMGlNVGdpSUhnOUlqTWlJSGs5SWpNaUlISjRQU0l5SWlBdlBnb2dJRHh3WVhSb0lHUTlJazA0SURFeWFEZ2lJQzgrQ2lBZ1BIQmhkR2dnWkQwaWJURXlJREUySURRdE5DMDBMVFFpSUM4K0Nqd3ZjM1puUGdvPSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvc3F1YXJlLWFycm93LXJpZ2h0XG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgU3F1YXJlQXJyb3dSaWdodCA9IGNyZWF0ZUx1Y2lkZUljb24oJ3NxdWFyZS1hcnJvdy1yaWdodCcsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBTcXVhcmVBcnJvd1JpZ2h0O1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdNMTMgM2g2YTIgMiAwIDAgMSAyIDJ2MTRhMiAyIDAgMCAxLTIgMkg1YTIgMiAwIDAgMS0yLTJ2LTYnLCBrZXk6ICcxNG12MXQnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdtMyAzIDkgOScsIGtleTogJ3JrczEzcicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00zIDlWM2g2Jywga2V5OiAnaXJhMGgyJyB9XSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBTcXVhcmVBcnJvd091dFVwTGVmdFxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTVRNZ00yZzJZVElnTWlBd0lEQWdNU0F5SURKMk1UUmhNaUF5SURBZ01DQXhMVElnTWtnMVlUSWdNaUF3SURBZ01TMHlMVEoyTFRZaUlDOCtDaUFnUEhCaGRHZ2daRDBpYlRNZ015QTVJRGtpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVE1nT1ZZemFEWWlJQzgrQ2p3dmMzWm5QZ289KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9zcXVhcmUtYXJyb3ctb3V0LXVwLWxlZnRcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBTcXVhcmVBcnJvd091dFVwTGVmdCA9IGNyZWF0ZUx1Y2lkZUljb24oJ3NxdWFyZS1hcnJvdy1vdXQtdXAtbGVmdCcsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBTcXVhcmVBcnJvd091dFVwTGVmdDtcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgWydyZWN0JywgeyB3aWR0aDogJzE4JywgaGVpZ2h0OiAnMTgnLCB4OiAnMycsIHk6ICczJywgcng6ICcyJywga2V5OiAnYWZpdHY3JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTggMTZWOGg4Jywga2V5OiAnMTl4YjFoJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTE2IDE2IDggOCcsIGtleTogJzFxZHk4bicgfV0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgU3F1YXJlQXJyb3dVcExlZnRcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNtVmpkQ0IzYVdSMGFEMGlNVGdpSUdobGFXZG9kRDBpTVRnaUlIZzlJak1pSUhrOUlqTWlJSEo0UFNJeUlpQXZQZ29nSUR4d1lYUm9JR1E5SWswNElERTJWamhvT0NJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTVRZZ01UWWdPQ0E0SWlBdlBnbzhMM04yWno0SykgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvc3F1YXJlLWFycm93LXVwLWxlZnRcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBTcXVhcmVBcnJvd1VwTGVmdCA9IGNyZWF0ZUx1Y2lkZUljb24oJ3NxdWFyZS1hcnJvdy11cC1sZWZ0JywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IFNxdWFyZUFycm93VXBMZWZ0O1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbJ3JlY3QnLCB7IHdpZHRoOiAnMTgnLCBoZWlnaHQ6ICcxOCcsIHg6ICczJywgeTogJzMnLCByeDogJzInLCBrZXk6ICdhZml0djcnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNOCA4aDh2OCcsIGtleTogJ2I2NWRudCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ204IDE2IDgtOCcsIGtleTogJzEzYjlpaCcgfV0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgU3F1YXJlQXJyb3dVcFJpZ2h0XG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjbVZqZENCM2FXUjBhRDBpTVRnaUlHaGxhV2RvZEQwaU1UZ2lJSGc5SWpNaUlIazlJak1pSUhKNFBTSXlJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMDRJRGhvT0hZNElpQXZQZ29nSUR4d1lYUm9JR1E5SW0wNElERTJJRGd0T0NJZ0x6NEtQQzl6ZG1jK0NnPT0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL3NxdWFyZS1hcnJvdy11cC1yaWdodFxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IFNxdWFyZUFycm93VXBSaWdodCA9IGNyZWF0ZUx1Y2lkZUljb24oJ3NxdWFyZS1hcnJvdy11cC1yaWdodCcsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBTcXVhcmVBcnJvd1VwUmlnaHQ7XG4iLCJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbXG4gIFsncmVjdCcsIHsgd2lkdGg6ICcxOCcsIGhlaWdodDogJzE4JywgeDogJzMnLCB5OiAnMycsIHJ4OiAnMicsIGtleTogJ2FmaXR2NycgfV0sXG4gIFsncGF0aCcsIHsgZDogJ20xNiAxMi00LTQtNCA0Jywga2V5OiAnMTc3YWdsJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTEyIDE2VjgnLCBrZXk6ICcxc2JqMTQnIH1dLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIFNxdWFyZUFycm93VXBcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNtVmpkQ0IzYVdSMGFEMGlNVGdpSUdobGFXZG9kRDBpTVRnaUlIZzlJak1pSUhrOUlqTWlJSEo0UFNJeUlpQXZQZ29nSUR4d1lYUm9JR1E5SW0weE5pQXhNaTAwTFRRdE5DQTBJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHhNaUF4TmxZNElpQXZQZ284TDNOMlp6NEspIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL3NxdWFyZS1hcnJvdy11cFxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IFNxdWFyZUFycm93VXAgPSBjcmVhdGVMdWNpZGVJY29uKCdzcXVhcmUtYXJyb3ctdXAnLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgU3F1YXJlQXJyb3dVcDtcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgWydyZWN0JywgeyB3aWR0aDogJzE4JywgaGVpZ2h0OiAnMTgnLCB4OiAnMycsIHk6ICczJywgcng6ICcyJywga2V5OiAnYWZpdHY3JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTEyIDh2OCcsIGtleTogJ25hcGt3MicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ204LjUgMTQgNy00Jywga2V5OiAnMTJocGJ5JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnbTguNSAxMCA3IDQnLCBrZXk6ICd3d3kyZHknIH1dLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIFNxdWFyZUFzdGVyaXNrXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjbVZqZENCM2FXUjBhRDBpTVRnaUlHaGxhV2RvZEQwaU1UZ2lJSGc5SWpNaUlIazlJak1pSUhKNFBTSXlJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHhNaUE0ZGpnaUlDOCtDaUFnUEhCaGRHZ2daRDBpYlRndU5TQXhOQ0EzTFRRaUlDOCtDaUFnUEhCaGRHZ2daRDBpYlRndU5TQXhNQ0EzSURRaUlDOCtDand2YzNablBnbz0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL3NxdWFyZS1hc3Rlcmlza1xuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IFNxdWFyZUFzdGVyaXNrID0gY3JlYXRlTHVjaWRlSWNvbignc3F1YXJlLWFzdGVyaXNrJywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IFNxdWFyZUFzdGVyaXNrO1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbXG4gICAgJ3BhdGgnLFxuICAgIHsgZDogJ000IDIyYTIgMiAwIDAgMS0yLTJWNGEyIDIgMCAwIDEgMi0yaDE2YTIgMiAwIDAgMSAyIDJ2MTZhMiAyIDAgMCAxLTIgMicsIGtleTogJzF2emcyNicgfSxcbiAgXSxcbiAgWydwYXRoJywgeyBkOiAnTTEwIDIySDgnLCBrZXk6ICdldWt1N2EnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTYgMjJoLTInLCBrZXk6ICcxOGQyNDknIH1dLFxuICBbJ2NpcmNsZScsIHsgY3g6ICc4JywgY3k6ICc4JywgcjogJzInLCBrZXk6ICcxNGNnMDYnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNOS40MTQgOS40MTQgMTIgMTInLCBrZXk6ICdxejRsenInIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTQuOCAxNC44IDE4IDE4Jywga2V5OiAnMTFmbGYxJyB9XSxcbiAgWydjaXJjbGUnLCB7IGN4OiAnOCcsIGN5OiAnMTYnLCByOiAnMicsIGtleTogJzFhY3hzeCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ20xOCA2LTguNTg2IDguNTg2Jywga2V5OiAnMTFremsxJyB9XSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBTcXVhcmVCb3R0b21EYXNoZWRTY2lzc29yc1xuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTkNBeU1tRXlJRElnTUNBd0lERXRNaTB5VmpSaE1pQXlJREFnTUNBeElESXRNbWd4Tm1FeUlESWdNQ0F3SURFZ01pQXlkakUyWVRJZ01pQXdJREFnTVMweUlESWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRURXdJREl5U0RnaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRFMklESXlhQzB5SWlBdlBnb2dJRHhqYVhKamJHVWdZM2c5SWpnaUlHTjVQU0k0SWlCeVBTSXlJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMDVMalF4TkNBNUxqUXhOQ0F4TWlBeE1pSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk1UUXVPQ0F4TkM0NElERTRJREU0SWlBdlBnb2dJRHhqYVhKamJHVWdZM2c5SWpnaUlHTjVQU0l4TmlJZ2NqMGlNaUlnTHo0S0lDQThjR0YwYUNCa1BTSnRNVGdnTmkwNExqVTROaUE0TGpVNE5pSWdMejRLUEM5emRtYytDZz09KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9zcXVhcmUtYm90dG9tLWRhc2hlZC1zY2lzc29yc1xuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IFNxdWFyZUJvdHRvbURhc2hlZFNjaXNzb3JzID0gY3JlYXRlTHVjaWRlSWNvbignc3F1YXJlLWJvdHRvbS1kYXNoZWQtc2Npc3NvcnMnLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgU3F1YXJlQm90dG9tRGFzaGVkU2Npc3NvcnM7XG4iLCJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbXG4gIFsncmVjdCcsIHsgd2lkdGg6ICcxOCcsIGhlaWdodDogJzE4JywgeDogJzMnLCB5OiAnMycsIHJ4OiAnMicsIGtleTogJ2FmaXR2NycgfV0sXG4gIFsncGF0aCcsIHsgZDogJ005IDhoNycsIGtleTogJ2tibzFudCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ004IDEyaDYnLCBrZXk6ICdpa2Fzc3knIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTEgMTZoNScsIGtleTogJ29xNjV3dCcgfV0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgU3F1YXJlQ2hhcnRHYW50dFxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y21WamRDQjNhV1IwYUQwaU1UZ2lJR2hsYVdkb2REMGlNVGdpSUhnOUlqTWlJSGs5SWpNaUlISjRQU0l5SWlBdlBnb2dJRHh3WVhSb0lHUTlJazA1SURob055SWdMejRLSUNBOGNHRjBhQ0JrUFNKTk9DQXhNbWcySWlBdlBnb2dJRHh3WVhSb0lHUTlJazB4TVNBeE5tZzFJaUF2UGdvOEwzTjJaejRLKSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9zcXVhcmUtY2hhcnQtZ2FudHRcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBTcXVhcmVDaGFydEdhbnR0ID0gY3JlYXRlTHVjaWRlSWNvbignc3F1YXJlLWNoYXJ0LWdhbnR0JywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IFNxdWFyZUNoYXJ0R2FudHQ7XG4iLCJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbXG4gIFtcbiAgICAncGF0aCcsXG4gICAgeyBkOiAnTTIxIDEwLjY1NlYxOWEyIDIgMCAwIDEtMiAySDVhMiAyIDAgMCAxLTItMlY1YTIgMiAwIDAgMSAyLTJoMTIuMzQ0Jywga2V5OiAnMmFjeXA0JyB9LFxuICBdLFxuICBbJ3BhdGgnLCB7IGQ6ICdtOSAxMSAzIDNMMjIgNCcsIGtleTogJzFwZmx6bCcgfV0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgU3F1YXJlQ2hlY2tCaWdcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1qRWdNVEF1TmpVMlZqRTVZVElnTWlBd0lEQWdNUzB5SURKSU5XRXlJRElnTUNBd0lERXRNaTB5VmpWaE1pQXlJREFnTUNBeElESXRNbWd4TWk0ek5EUWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaWJUa2dNVEVnTXlBelRESXlJRFFpSUM4K0Nqd3ZjM1puUGdvPSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvc3F1YXJlLWNoZWNrLWJpZ1xuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IFNxdWFyZUNoZWNrQmlnID0gY3JlYXRlTHVjaWRlSWNvbignc3F1YXJlLWNoZWNrLWJpZycsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBTcXVhcmVDaGVja0JpZztcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgWydyZWN0JywgeyB3aWR0aDogJzE4JywgaGVpZ2h0OiAnMTgnLCB4OiAnMycsIHk6ICczJywgcng6ICcyJywga2V5OiAnYWZpdHY3JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnbTkgMTIgMiAyIDQtNCcsIGtleTogJ2R6bW03NCcgfV0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgU3F1YXJlQ2hlY2tcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNtVmpkQ0IzYVdSMGFEMGlNVGdpSUdobGFXZG9kRDBpTVRnaUlIZzlJak1pSUhrOUlqTWlJSEo0UFNJeUlpQXZQZ29nSUR4d1lYUm9JR1E5SW0wNUlERXlJRElnTWlBMExUUWlJQzgrQ2p3dmMzWm5QZ289KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9zcXVhcmUtY2hlY2tcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBTcXVhcmVDaGVjayA9IGNyZWF0ZUx1Y2lkZUljb24oJ3NxdWFyZS1jaGVjaycsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBTcXVhcmVDaGVjaztcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgWydyZWN0JywgeyB3aWR0aDogJzE4JywgaGVpZ2h0OiAnMTgnLCB4OiAnMycsIHk6ICczJywgcng6ICcyJywga2V5OiAnYWZpdHY3JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnbTE2IDEwLTQgNC00LTQnLCBrZXk6ICc4OTRobWsnIH1dLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIFNxdWFyZUNoZXZyb25Eb3duXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjbVZqZENCM2FXUjBhRDBpTVRnaUlHaGxhV2RvZEQwaU1UZ2lJSGc5SWpNaUlIazlJak1pSUhKNFBTSXlJaUF2UGdvZ0lEeHdZWFJvSUdROUltMHhOaUF4TUMwMElEUXROQzAwSWlBdlBnbzhMM04yWno0SykgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvc3F1YXJlLWNoZXZyb24tZG93blxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IFNxdWFyZUNoZXZyb25Eb3duID0gY3JlYXRlTHVjaWRlSWNvbignc3F1YXJlLWNoZXZyb24tZG93bicsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBTcXVhcmVDaGV2cm9uRG93bjtcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgWydyZWN0JywgeyB3aWR0aDogJzE4JywgaGVpZ2h0OiAnMTgnLCB4OiAnMycsIHk6ICczJywgcng6ICcyJywga2V5OiAnYWZpdHY3JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnbTE0IDE2LTQtNCA0LTQnLCBrZXk6ICdvanM3dzgnIH1dLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIFNxdWFyZUNoZXZyb25MZWZ0XG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjbVZqZENCM2FXUjBhRDBpTVRnaUlHaGxhV2RvZEQwaU1UZ2lJSGc5SWpNaUlIazlJak1pSUhKNFBTSXlJaUF2UGdvZ0lEeHdZWFJvSUdROUltMHhOQ0F4TmkwMExUUWdOQzAwSWlBdlBnbzhMM04yWno0SykgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvc3F1YXJlLWNoZXZyb24tbGVmdFxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IFNxdWFyZUNoZXZyb25MZWZ0ID0gY3JlYXRlTHVjaWRlSWNvbignc3F1YXJlLWNoZXZyb24tbGVmdCcsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBTcXVhcmVDaGV2cm9uTGVmdDtcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgWydyZWN0JywgeyB3aWR0aDogJzE4JywgaGVpZ2h0OiAnMTgnLCB4OiAnMycsIHk6ICczJywgcng6ICcyJywga2V5OiAnYWZpdHY3JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnbTEwIDggNCA0LTQgNCcsIGtleTogJzF3eTRyNCcgfV0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgU3F1YXJlQ2hldnJvblJpZ2h0XG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjbVZqZENCM2FXUjBhRDBpTVRnaUlHaGxhV2RvZEQwaU1UZ2lJSGc5SWpNaUlIazlJak1pSUhKNFBTSXlJaUF2UGdvZ0lEeHdZWFJvSUdROUltMHhNQ0E0SURRZ05DMDBJRFFpSUM4K0Nqd3ZjM1puUGdvPSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvc3F1YXJlLWNoZXZyb24tcmlnaHRcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBTcXVhcmVDaGV2cm9uUmlnaHQgPSBjcmVhdGVMdWNpZGVJY29uKCdzcXVhcmUtY2hldnJvbi1yaWdodCcsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBTcXVhcmVDaGV2cm9uUmlnaHQ7XG4iLCJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbXG4gIFsncmVjdCcsIHsgd2lkdGg6ICcxOCcsIGhlaWdodDogJzE4JywgeDogJzMnLCB5OiAnMycsIHJ4OiAnMicsIGtleTogJ2FmaXR2NycgfV0sXG4gIFsncGF0aCcsIHsgZDogJ204IDE0IDQtNCA0IDQnLCBrZXk6ICdmeTJwdHonIH1dLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIFNxdWFyZUNoZXZyb25VcFxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y21WamRDQjNhV1IwYUQwaU1UZ2lJR2hsYVdkb2REMGlNVGdpSUhnOUlqTWlJSGs5SWpNaUlISjRQU0l5SWlBdlBnb2dJRHh3WVhSb0lHUTlJbTA0SURFMElEUXROQ0EwSURRaUlDOCtDand2YzNablBnbz0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL3NxdWFyZS1jaGV2cm9uLXVwXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgU3F1YXJlQ2hldnJvblVwID0gY3JlYXRlTHVjaWRlSWNvbignc3F1YXJlLWNoZXZyb24tdXAnLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgU3F1YXJlQ2hldnJvblVwO1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdtMTAgOS0zIDMgMyAzJywga2V5OiAnMW9ybzBxJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnbTE0IDE1IDMtMy0zLTMnLCBrZXk6ICdiejEzaDcnIH1dLFxuICBbJ3JlY3QnLCB7IHg6ICczJywgeTogJzMnLCB3aWR0aDogJzE4JywgaGVpZ2h0OiAnMTgnLCByeDogJzInLCBrZXk6ICdoMW9pYicgfV0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgU3F1YXJlQ29kZVxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0p0TVRBZ09TMHpJRE1nTXlBeklpQXZQZ29nSUR4d1lYUm9JR1E5SW0weE5DQXhOU0F6TFRNdE15MHpJaUF2UGdvZ0lEeHlaV04wSUhnOUlqTWlJSGs5SWpNaUlIZHBaSFJvUFNJeE9DSWdhR1ZwWjJoMFBTSXhPQ0lnY25nOUlqSWlJQzgrQ2p3dmMzWm5QZ289KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9zcXVhcmUtY29kZVxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IFNxdWFyZUNvZGUgPSBjcmVhdGVMdWNpZGVJY29uKCdzcXVhcmUtY29kZScsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBTcXVhcmVDb2RlO1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdNMTAgOS41IDggMTJsMiAyLjUnLCBrZXk6ICczbWp5NjAnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTQgMjFoMScsIGtleTogJ3Y5dnlicycgfV0sXG4gIFsncGF0aCcsIHsgZDogJ20xNCA5LjUgMiAyLjUtMiAyLjUnLCBrZXk6ICcxYmlyMmwnIH1dLFxuICBbXG4gICAgJ3BhdGgnLFxuICAgIHsgZDogJ001IDIxYTIgMiAwIDAgMS0yLTJWNWEyIDIgMCAwIDEgMi0yaDE0YTIgMiAwIDAgMSAyIDJ2MTRhMiAyIDAgMCAxLTIgMicsIGtleTogJ2FzNXkxbycgfSxcbiAgXSxcbiAgWydwYXRoJywgeyBkOiAnTTkgMjFoMScsIGtleTogJzE1bzdseicgfV0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgU3F1YXJlRGFzaGVkQm90dG9tQ29kZVxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTVRBZ09TNDFJRGdnTVRKc01pQXlMalVpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVEUwSURJeGFERWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaWJURTBJRGt1TlNBeUlESXVOUzB5SURJdU5TSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk5TQXlNV0V5SURJZ01DQXdJREV0TWkweVZqVmhNaUF5SURBZ01DQXhJREl0TW1neE5HRXlJRElnTUNBd0lERWdNaUF5ZGpFMFlUSWdNaUF3SURBZ01TMHlJRElpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVGtnTWpGb01TSWdMejRLUEM5emRtYytDZz09KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9zcXVhcmUtZGFzaGVkLWJvdHRvbS1jb2RlXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgU3F1YXJlRGFzaGVkQm90dG9tQ29kZSA9IGNyZWF0ZUx1Y2lkZUljb24oJ3NxdWFyZS1kYXNoZWQtYm90dG9tLWNvZGUnLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgU3F1YXJlRGFzaGVkQm90dG9tQ29kZTtcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgW1xuICAgICdwYXRoJyxcbiAgICB7IGQ6ICdNNSAyMWEyIDIgMCAwIDEtMi0yVjVhMiAyIDAgMCAxIDItMmgxNGEyIDIgMCAwIDEgMiAydjE0YTIgMiAwIDAgMS0yIDInLCBrZXk6ICdhczV5MW8nIH0sXG4gIF0sXG4gIFsncGF0aCcsIHsgZDogJ005IDIxaDEnLCBrZXk6ICcxNW83bHonIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTQgMjFoMScsIGtleTogJ3Y5dnlicycgfV0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgU3F1YXJlRGFzaGVkQm90dG9tXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5OU0F5TVdFeUlESWdNQ0F3SURFdE1pMHlWalZoTWlBeUlEQWdNQ0F4SURJdE1tZ3hOR0V5SURJZ01DQXdJREVnTWlBeWRqRTBZVElnTWlBd0lEQWdNUzB5SURJaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRrZ01qRm9NU0lnTHo0S0lDQThjR0YwYUNCa1BTSk5NVFFnTWpGb01TSWdMejRLUEM5emRtYytDZz09KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9zcXVhcmUtZGFzaGVkLWJvdHRvbVxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IFNxdWFyZURhc2hlZEJvdHRvbSA9IGNyZWF0ZUx1Y2lkZUljb24oJ3NxdWFyZS1kYXNoZWQtYm90dG9tJywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IFNxdWFyZURhc2hlZEJvdHRvbTtcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTggN3Y3Jywga2V5OiAnMXgyamxtJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTEyIDd2NCcsIGtleTogJ3hhd2FvMScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xNiA3djknLCBrZXk6ICcxaHAyaXknIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNNSAzYTIgMiAwIDAgMC0yIDInLCBrZXk6ICd5NTdhbHAnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNOSAzaDEnLCBrZXk6ICcxeWVzcmknIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTQgM2gxJywga2V5OiAnMWVjNHlqJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTE5IDNhMiAyIDAgMCAxIDIgMicsIGtleTogJzE4cm05MScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00yMSA5djEnLCBrZXk6ICdteHNtbmUnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMjEgMTR2MScsIGtleTogJzE2OXZ1bScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00yMSAxOWEyIDIgMCAwIDEtMiAyJywga2V5OiAnMWo3MDQ5JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTE0IDIxaDEnLCBrZXk6ICd2OXZ5YnMnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNOSAyMWgxJywga2V5OiAnMTVvN2x6JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTUgMjFhMiAyIDAgMCAxLTItMicsIGtleTogJ3NiYWZsZCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00zIDE0djEnLCBrZXk6ICd2bmF0eWUnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMyA5djEnLCBrZXk6ICcxcjBkZXEnIH1dLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIFNxdWFyZURhc2hlZEthbmJhblxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOT0NBM2RqY2lJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRURXlJRGQyTkNJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTVRZZ04zWTVJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMDFJRE5oTWlBeUlEQWdNQ0F3TFRJZ01pSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk9TQXphREVpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVEUwSUROb01TSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk1Ua2dNMkV5SURJZ01DQXdJREVnTWlBeUlpQXZQZ29nSUR4d1lYUm9JR1E5SWsweU1TQTVkakVpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVEl4SURFMGRqRWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRUSXhJREU1WVRJZ01pQXdJREFnTVMweUlESWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRURTBJREl4YURFaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRrZ01qRm9NU0lnTHo0S0lDQThjR0YwYUNCa1BTSk5OU0F5TVdFeUlESWdNQ0F3SURFdE1pMHlJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHpJREUwZGpFaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRNZ09YWXhJaUF2UGdvOEwzTjJaejRLKSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9zcXVhcmUtZGFzaGVkLWthbmJhblxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IFNxdWFyZURhc2hlZEthbmJhbiA9IGNyZWF0ZUx1Y2lkZUljb24oJ3NxdWFyZS1kYXNoZWQta2FuYmFuJywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IFNxdWFyZURhc2hlZEthbmJhbjtcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgW1xuICAgICdwYXRoJyxcbiAgICB7XG4gICAgICBkOiAnTTEyLjAzNCAxMi42ODFhLjQ5OC40OTggMCAwIDEgLjY0Ny0uNjQ3bDkgMy41YS41LjUgMCAwIDEtLjAzMy45NDNsLTMuNDQ0IDEuMDY4YTEgMSAwIDAgMC0uNjYuNjZsLTEuMDY3IDMuNDQzYS41LjUgMCAwIDEtLjk0My4wMzN6JyxcbiAgICAgIGtleTogJ3h3bnppcCcsXG4gICAgfSxcbiAgXSxcbiAgWydwYXRoJywgeyBkOiAnTTUgM2EyIDIgMCAwIDAtMiAyJywga2V5OiAneTU3YWxwJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTE5IDNhMiAyIDAgMCAxIDIgMicsIGtleTogJzE4cm05MScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ001IDIxYTIgMiAwIDAgMS0yLTInLCBrZXk6ICdzYmFmbGQnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNOSAzaDEnLCBrZXk6ICcxeWVzcmknIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNOSAyMWgyJywga2V5OiAnMXF2ZTJ6JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTE0IDNoMScsIGtleTogJzFlYzR5aicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00zIDl2MScsIGtleTogJzFyMGRlcScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00yMSA5djInLCBrZXk6ICdwMTRsaWgnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMyAxNHYxJywga2V5OiAndm5hdHllJyB9XSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBTcXVhcmVEYXNoZWRNb3VzZVBvaW50ZXJcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1USXVNRE0wSURFeUxqWTRNV0V1TkRrNExqUTVPQ0F3SURBZ01TQXVOalEzTFM0Mk5EZHNPU0F6TGpWaExqVXVOU0F3SURBZ01TMHVNRE16TGprME0yd3RNeTQwTkRRZ01TNHdOamhoTVNBeElEQWdNQ0F3TFM0Mk5pNDJObXd0TVM0d05qY2dNeTQwTkROaExqVXVOU0F3SURBZ01TMHVPVFF6TGpBek0zb2lJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRUVWdNMkV5SURJZ01DQXdJREF0TWlBeUlpQXZQZ29nSUR4d1lYUm9JR1E5SWsweE9TQXpZVElnTWlBd0lEQWdNU0F5SURJaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRVZ01qRmhNaUF5SURBZ01DQXhMVEl0TWlJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOT1NBemFERWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRUa2dNakZvTWlJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTVRRZ00yZ3hJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHpJRGwyTVNJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTWpFZ09YWXlJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHpJREUwZGpFaUlDOCtDand2YzNablBnbz0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL3NxdWFyZS1kYXNoZWQtbW91c2UtcG9pbnRlclxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IFNxdWFyZURhc2hlZE1vdXNlUG9pbnRlciA9IGNyZWF0ZUx1Y2lkZUljb24oJ3NxdWFyZS1kYXNoZWQtbW91c2UtcG9pbnRlcicsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBTcXVhcmVEYXNoZWRNb3VzZVBvaW50ZXI7XG4iLCJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ00xNCAyMWgxJywga2V5OiAndjl2eWJzJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTIxIDE0djEnLCBrZXk6ICcxNjl2dW0nIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMjEgMTlhMiAyIDAgMCAxLTIgMicsIGtleTogJzFqNzA0OScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00yMSA5djEnLCBrZXk6ICdteHNtbmUnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMyAxNHYxJywga2V5OiAndm5hdHllJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTMgNWEyIDIgMCAwIDEgMi0yaDE0YTIgMiAwIDAgMSAyIDInLCBrZXk6ICc4OXZvZXAnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMyA5djEnLCBrZXk6ICcxcjBkZXEnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNNSAyMWEyIDIgMCAwIDEtMi0yJywga2V5OiAnc2JhZmxkJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTkgMjFoMScsIGtleTogJzE1bzdseicgfV0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgU3F1YXJlRGFzaGVkVG9wU29saWRcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1UUWdNakZvTVNJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTWpFZ01UUjJNU0lnTHo0S0lDQThjR0YwYUNCa1BTSk5NakVnTVRsaE1pQXlJREFnTUNBeExUSWdNaUlnTHo0S0lDQThjR0YwYUNCa1BTSk5NakVnT1hZeElpQXZQZ29nSUR4d1lYUm9JR1E5SWsweklERTBkakVpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVE1nTldFeUlESWdNQ0F3SURFZ01pMHlhREUwWVRJZ01pQXdJREFnTVNBeUlESWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRUTWdPWFl4SWlBdlBnb2dJRHh3WVhSb0lHUTlJazAxSURJeFlUSWdNaUF3SURBZ01TMHlMVElpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVGtnTWpGb01TSWdMejRLUEM5emRtYytDZz09KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9zcXVhcmUtZGFzaGVkLXRvcC1zb2xpZFxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IFNxdWFyZURhc2hlZFRvcFNvbGlkID0gY3JlYXRlTHVjaWRlSWNvbignc3F1YXJlLWRhc2hlZC10b3Atc29saWQnLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgU3F1YXJlRGFzaGVkVG9wU29saWQ7XG4iLCJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ001IDNhMiAyIDAgMCAwLTIgMicsIGtleTogJ3k1N2FscCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xOSAzYTIgMiAwIDAgMSAyIDInLCBrZXk6ICcxOHJtOTEnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMjEgMTlhMiAyIDAgMCAxLTIgMicsIGtleTogJzFqNzA0OScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ001IDIxYTIgMiAwIDAgMS0yLTInLCBrZXk6ICdzYmFmbGQnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNOSAzaDEnLCBrZXk6ICcxeWVzcmknIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNOSAyMWgxJywga2V5OiAnMTVvN2x6JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTE0IDNoMScsIGtleTogJzFlYzR5aicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xNCAyMWgxJywga2V5OiAndjl2eWJzJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTMgOXYxJywga2V5OiAnMXIwZGVxJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTIxIDl2MScsIGtleTogJ214c21uZScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00zIDE0djEnLCBrZXk6ICd2bmF0eWUnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMjEgMTR2MScsIGtleTogJzE2OXZ1bScgfV0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgU3F1YXJlRGFzaGVkXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5OU0F6WVRJZ01pQXdJREFnTUMweUlESWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRURTVJRE5oTWlBeUlEQWdNQ0F4SURJZ01pSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk1qRWdNVGxoTWlBeUlEQWdNQ0F4TFRJZ01pSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk5TQXlNV0V5SURJZ01DQXdJREV0TWkweUlpQXZQZ29nSUR4d1lYUm9JR1E5SWswNUlETm9NU0lnTHo0S0lDQThjR0YwYUNCa1BTSk5PU0F5TVdneElpQXZQZ29nSUR4d1lYUm9JR1E5SWsweE5DQXphREVpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVEUwSURJeGFERWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRUTWdPWFl4SWlBdlBnb2dJRHh3WVhSb0lHUTlJazB5TVNBNWRqRWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRUTWdNVFIyTVNJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTWpFZ01UUjJNU0lnTHo0S1BDOXpkbWMrQ2c9PSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvc3F1YXJlLWRhc2hlZFxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IFNxdWFyZURhc2hlZCA9IGNyZWF0ZUx1Y2lkZUljb24oJ3NxdWFyZS1kYXNoZWQnLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgU3F1YXJlRGFzaGVkO1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbJ3JlY3QnLCB7IHdpZHRoOiAnMTgnLCBoZWlnaHQ6ICcxOCcsIHg6ICczJywgeTogJzMnLCByeDogJzInLCByeTogJzInLCBrZXk6ICcxbTNhZ24nIH1dLFxuICBbJ2xpbmUnLCB7IHgxOiAnOCcsIHgyOiAnMTYnLCB5MTogJzEyJywgeTI6ICcxMicsIGtleTogJzFqb25jdCcgfV0sXG4gIFsnbGluZScsIHsgeDE6ICcxMicsIHgyOiAnMTInLCB5MTogJzE2JywgeTI6ICcxNicsIGtleTogJ2FxYzZsbicgfV0sXG4gIFsnbGluZScsIHsgeDE6ICcxMicsIHgyOiAnMTInLCB5MTogJzgnLCB5MjogJzgnLCBrZXk6ICcxbWtjbmknIH1dLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIFNxdWFyZURpdmlkZVxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y21WamRDQjNhV1IwYUQwaU1UZ2lJR2hsYVdkb2REMGlNVGdpSUhnOUlqTWlJSGs5SWpNaUlISjRQU0l5SWlCeWVUMGlNaUlnTHo0S0lDQThiR2x1WlNCNE1UMGlPQ0lnZURJOUlqRTJJaUI1TVQwaU1USWlJSGt5UFNJeE1pSWdMejRLSUNBOGJHbHVaU0I0TVQwaU1USWlJSGd5UFNJeE1pSWdlVEU5SWpFMklpQjVNajBpTVRZaUlDOCtDaUFnUEd4cGJtVWdlREU5SWpFeUlpQjRNajBpTVRJaUlIa3hQU0k0SWlCNU1qMGlPQ0lnTHo0S1BDOXpkbWMrQ2c9PSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvc3F1YXJlLWRpdmlkZVxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IFNxdWFyZURpdmlkZSA9IGNyZWF0ZUx1Y2lkZUljb24oJ3NxdWFyZS1kaXZpZGUnLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgU3F1YXJlRGl2aWRlO1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbJ3JlY3QnLCB7IHdpZHRoOiAnMTgnLCBoZWlnaHQ6ICcxOCcsIHg6ICczJywgeTogJzMnLCByeDogJzInLCBrZXk6ICdhZml0djcnIH1dLFxuICBbJ2NpcmNsZScsIHsgY3g6ICcxMicsIGN5OiAnMTInLCByOiAnMScsIGtleTogJzQxaGlsZicgfV0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgU3F1YXJlRG90XG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjbVZqZENCM2FXUjBhRDBpTVRnaUlHaGxhV2RvZEQwaU1UZ2lJSGc5SWpNaUlIazlJak1pSUhKNFBTSXlJaUF2UGdvZ0lEeGphWEpqYkdVZ1kzZzlJakV5SWlCamVUMGlNVElpSUhJOUlqRWlJQzgrQ2p3dmMzWm5QZ289KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9zcXVhcmUtZG90XG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgU3F1YXJlRG90ID0gY3JlYXRlTHVjaWRlSWNvbignc3F1YXJlLWRvdCcsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBTcXVhcmVEb3Q7XG4iLCJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbXG4gIFsncmVjdCcsIHsgd2lkdGg6ICcxOCcsIGhlaWdodDogJzE4JywgeDogJzMnLCB5OiAnMycsIHJ4OiAnMicsIGtleTogJ2FmaXR2NycgfV0sXG4gIFsncGF0aCcsIHsgZDogJ003IDEwaDEwJywga2V5OiAnMTEwMWptJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTcgMTRoMTAnLCBrZXk6ICcxbWhkdzMnIH1dLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIFNxdWFyZUVxdWFsXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjbVZqZENCM2FXUjBhRDBpTVRnaUlHaGxhV2RvZEQwaU1UZ2lJSGc5SWpNaUlIazlJak1pSUhKNFBTSXlJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMDNJREV3YURFd0lpQXZQZ29nSUR4d1lYUm9JR1E5SWswM0lERTBhREV3SWlBdlBnbzhMM04yWno0SykgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvc3F1YXJlLWVxdWFsXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgU3F1YXJlRXF1YWwgPSBjcmVhdGVMdWNpZGVJY29uKCdzcXVhcmUtZXF1YWwnLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgU3F1YXJlRXF1YWw7XG4iLCJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbXG4gIFsncmVjdCcsIHsgd2lkdGg6ICcxOCcsIGhlaWdodDogJzE4JywgeDogJzMnLCB5OiAnMycsIHJ4OiAnMicsIHJ5OiAnMicsIGtleTogJzFtM2FnbicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ005IDE3YzIgMCAyLjgtMSAyLjgtMi44VjEwYzAtMiAxLTMuMyAzLjItMycsIGtleTogJ20xYWY5ZycgfV0sXG4gIFsncGF0aCcsIHsgZDogJ005IDExLjJoNS43Jywga2V5OiAnM3pnY2wyJyB9XSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBTcXVhcmVGdW5jdGlvblxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y21WamRDQjNhV1IwYUQwaU1UZ2lJR2hsYVdkb2REMGlNVGdpSUhnOUlqTWlJSGs5SWpNaUlISjRQU0l5SWlCeWVUMGlNaUlnTHo0S0lDQThjR0YwYUNCa1BTSk5PU0F4TjJNeUlEQWdNaTQ0TFRFZ01pNDRMVEl1T0ZZeE1HTXdMVElnTVMwekxqTWdNeTR5TFRNaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRrZ01URXVNbWcxTGpjaUlDOCtDand2YzNablBnbz0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL3NxdWFyZS1mdW5jdGlvblxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IFNxdWFyZUZ1bmN0aW9uID0gY3JlYXRlTHVjaWRlSWNvbignc3F1YXJlLWZ1bmN0aW9uJywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IFNxdWFyZUZ1bmN0aW9uO1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbJ3JlY3QnLCB7IHdpZHRoOiAnMTgnLCBoZWlnaHQ6ICcxOCcsIHg6ICczJywgeTogJzMnLCByeDogJzInLCBrZXk6ICdhZml0djcnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNOCA3djcnLCBrZXk6ICcxeDJqbG0nIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTIgN3Y0Jywga2V5OiAneGF3YW8xJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTE2IDd2OScsIGtleTogJzFocDJpeScgfV0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgU3F1YXJlS2FuYmFuXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjbVZqZENCM2FXUjBhRDBpTVRnaUlHaGxhV2RvZEQwaU1UZ2lJSGc5SWpNaUlIazlJak1pSUhKNFBTSXlJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMDRJRGQyTnlJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTVRJZ04zWTBJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHhOaUEzZGpraUlDOCtDand2YzNablBnbz0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL3NxdWFyZS1rYW5iYW5cbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBTcXVhcmVLYW5iYW4gPSBjcmVhdGVMdWNpZGVJY29uKCdzcXVhcmUta2FuYmFuJywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IFNxdWFyZUthbmJhbjtcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgWydyZWN0JywgeyB3aWR0aDogJzE4JywgaGVpZ2h0OiAnMTgnLCB4OiAnMycsIHk6ICczJywgcng6ICcyJywga2V5OiAnYWZpdHY3JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTcgN3YxMCcsIGtleTogJ2Q1bmdsYycgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xMSA3djEwJywga2V5OiAncHB0c25yJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnbTE1IDcgMiAxMCcsIGtleTogJzFtN3FtNScgfV0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgU3F1YXJlTGlicmFyeVxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y21WamRDQjNhV1IwYUQwaU1UZ2lJR2hsYVdkb2REMGlNVGdpSUhnOUlqTWlJSGs5SWpNaUlISjRQU0l5SWlBdlBnb2dJRHh3WVhSb0lHUTlJazAzSURkMk1UQWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRURXhJRGQyTVRBaUlDOCtDaUFnUEhCaGRHZ2daRDBpYlRFMUlEY2dNaUF4TUNJZ0x6NEtQQzl6ZG1jK0NnPT0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL3NxdWFyZS1saWJyYXJ5XG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgU3F1YXJlTGlicmFyeSA9IGNyZWF0ZUx1Y2lkZUljb24oJ3NxdWFyZS1saWJyYXJ5JywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IFNxdWFyZUxpYnJhcnk7XG4iLCJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbXG4gIFsncmVjdCcsIHsgd2lkdGg6ICcxOCcsIGhlaWdodDogJzE4JywgeDogJzMnLCB5OiAnMycsIHJ4OiAnMicsIGtleTogJ2FmaXR2NycgfV0sXG4gIFsncGF0aCcsIHsgZDogJ004IDE2VjhsNCA0IDQtNHY4Jywga2V5OiAnMTQxdTRlJyB9XSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBTcXVhcmVNXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjbVZqZENCM2FXUjBhRDBpTVRnaUlHaGxhV2RvZEQwaU1UZ2lJSGc5SWpNaUlIazlJak1pSUhKNFBTSXlJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMDRJREUyVmpoc05DQTBJRFF0TkhZNElpQXZQZ284TDNOMlp6NEspIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL3NxdWFyZS1tXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgU3F1YXJlTSA9IGNyZWF0ZUx1Y2lkZUljb24oJ3NxdWFyZS1tJywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IFNxdWFyZU07XG4iLCJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbXG4gIFsncmVjdCcsIHsgd2lkdGg6ICcxOCcsIGhlaWdodDogJzE4JywgeDogJzMnLCB5OiAnMycsIHJ4OiAnMicsIGtleTogJ2FmaXR2NycgfV0sXG4gIFsncGF0aCcsIHsgZDogJ003IDhoMTAnLCBrZXk6ICcxanc2ODgnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNNyAxMmgxMCcsIGtleTogJ2I3dzUyaScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ003IDE2aDEwJywga2V5OiAnd3A4aGltJyB9XSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBTcXVhcmVNZW51XG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjbVZqZENCM2FXUjBhRDBpTVRnaUlHaGxhV2RvZEQwaU1UZ2lJSGc5SWpNaUlIazlJak1pSUhKNFBTSXlJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMDNJRGhvTVRBaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRjZ01USm9NVEFpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVGNnTVRab01UQWlJQzgrQ2p3dmMzWm5QZ289KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9zcXVhcmUtbWVudVxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IFNxdWFyZU1lbnUgPSBjcmVhdGVMdWNpZGVJY29uKCdzcXVhcmUtbWVudScsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBTcXVhcmVNZW51O1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbJ3JlY3QnLCB7IHdpZHRoOiAnMTgnLCBoZWlnaHQ6ICcxOCcsIHg6ICczJywgeTogJzMnLCByeDogJzInLCBrZXk6ICdhZml0djcnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNOCAxMmg4Jywga2V5OiAnMXdjeWV2JyB9XSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBTcXVhcmVNaW51c1xuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y21WamRDQjNhV1IwYUQwaU1UZ2lJR2hsYVdkb2REMGlNVGdpSUhnOUlqTWlJSGs5SWpNaUlISjRQU0l5SWlBdlBnb2dJRHh3WVhSb0lHUTlJazA0SURFeWFEZ2lJQzgrQ2p3dmMzWm5QZ289KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9zcXVhcmUtbWludXNcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBTcXVhcmVNaW51cyA9IGNyZWF0ZUx1Y2lkZUljb24oJ3NxdWFyZS1taW51cycsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBTcXVhcmVNaW51cztcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgW1xuICAgICdwYXRoJyxcbiAgICB7XG4gICAgICBkOiAnTTEyLjAzNCAxMi42ODFhLjQ5OC40OTggMCAwIDEgLjY0Ny0uNjQ3bDkgMy41YS41LjUgMCAwIDEtLjAzMy45NDNsLTMuNDQ0IDEuMDY4YTEgMSAwIDAgMC0uNjYuNjZsLTEuMDY3IDMuNDQzYS41LjUgMCAwIDEtLjk0My4wMzN6JyxcbiAgICAgIGtleTogJ3h3bnppcCcsXG4gICAgfSxcbiAgXSxcbiAgWydwYXRoJywgeyBkOiAnTTIxIDExVjVhMiAyIDAgMCAwLTItMkg1YTIgMiAwIDAgMC0yIDJ2MTRhMiAyIDAgMCAwIDIgMmg2Jywga2V5OiAnMTRyc3ZxJyB9XSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBTcXVhcmVNb3VzZVBvaW50ZXJcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1USXVNRE0wSURFeUxqWTRNV0V1TkRrNExqUTVPQ0F3SURBZ01TQXVOalEzTFM0Mk5EZHNPU0F6TGpWaExqVXVOU0F3SURBZ01TMHVNRE16TGprME0yd3RNeTQwTkRRZ01TNHdOamhoTVNBeElEQWdNQ0F3TFM0Mk5pNDJObXd0TVM0d05qY2dNeTQwTkROaExqVXVOU0F3SURBZ01TMHVPVFF6TGpBek0zb2lJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRUSXhJREV4VmpWaE1pQXlJREFnTUNBd0xUSXRNa2cxWVRJZ01pQXdJREFnTUMweUlESjJNVFJoTWlBeUlEQWdNQ0F3SURJZ01tZzJJaUF2UGdvOEwzTjJaejRLKSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9zcXVhcmUtbW91c2UtcG9pbnRlclxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IFNxdWFyZU1vdXNlUG9pbnRlciA9IGNyZWF0ZUx1Y2lkZUljb24oJ3NxdWFyZS1tb3VzZS1wb2ludGVyJywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IFNxdWFyZU1vdXNlUG9pbnRlcjtcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTMuNiAzLjZBMiAyIDAgMCAxIDUgM2gxNGEyIDIgMCAwIDEgMiAydjE0YTIgMiAwIDAgMS0uNTkgMS40MScsIGtleTogJzlsMWZ0NicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00zIDguN1YxOWEyIDIgMCAwIDAgMiAyaDEwLjMnLCBrZXk6ICcxN2tua2UnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdtMiAyIDIwIDIwJywga2V5OiAnMW9vZXd5JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTEzIDEzYTMgMyAwIDEgMCAwLTZIOXYyJywga2V5OiAndW9hZ2JkJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTkgMTd2LTIuMycsIGtleTogJzFqeGdvMicgfV0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgU3F1YXJlUGFya2luZ09mZlxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTXk0MklETXVOa0V5SURJZ01DQXdJREVnTlNBemFERTBZVElnTWlBd0lEQWdNU0F5SURKMk1UUmhNaUF5SURBZ01DQXhMUzQxT1NBeExqUXhJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHpJRGd1TjFZeE9XRXlJRElnTUNBd0lEQWdNaUF5YURFd0xqTWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaWJUSWdNaUF5TUNBeU1DSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk1UTWdNVE5oTXlBeklEQWdNU0F3SURBdE5rZzVkaklpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVGtnTVRkMkxUSXVNeUlnTHo0S1BDOXpkbWMrQ2c9PSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvc3F1YXJlLXBhcmtpbmctb2ZmXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgU3F1YXJlUGFya2luZ09mZiA9IGNyZWF0ZUx1Y2lkZUljb24oJ3NxdWFyZS1wYXJraW5nLW9mZicsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBTcXVhcmVQYXJraW5nT2ZmO1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbJ3JlY3QnLCB7IHdpZHRoOiAnMTgnLCBoZWlnaHQ6ICcxOCcsIHg6ICczJywgeTogJzMnLCByeDogJzInLCBrZXk6ICdhZml0djcnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNOSAxN1Y3aDRhMyAzIDAgMCAxIDAgNkg5Jywga2V5OiAnMWRmazJjJyB9XSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBTcXVhcmVQYXJraW5nXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjbVZqZENCM2FXUjBhRDBpTVRnaUlHaGxhV2RvZEQwaU1UZ2lJSGc5SWpNaUlIazlJak1pSUhKNFBTSXlJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMDVJREUzVmpkb05HRXpJRE1nTUNBd0lERWdNQ0EyU0RraUlDOCtDand2YzNablBnbz0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL3NxdWFyZS1wYXJraW5nXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgU3F1YXJlUGFya2luZyA9IGNyZWF0ZUx1Y2lkZUljb24oJ3NxdWFyZS1wYXJraW5nJywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IFNxdWFyZVBhcmtpbmc7XG4iLCJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ00xMiAzSDVhMiAyIDAgMCAwLTIgMnYxNGEyIDIgMCAwIDAgMiAyaDE0YTIgMiAwIDAgMCAyLTJ2LTcnLCBrZXk6ICcxbTB2NmcnIH1dLFxuICBbXG4gICAgJ3BhdGgnLFxuICAgIHtcbiAgICAgIGQ6ICdNMTguMzc1IDIuNjI1YTEgMSAwIDAgMSAzIDNsLTkuMDEzIDkuMDE0YTIgMiAwIDAgMS0uODUzLjUwNWwtMi44NzMuODRhLjUuNSAwIDAgMS0uNjItLjYybC44NC0yLjg3M2EyIDIgMCAwIDEgLjUwNi0uODUyeicsXG4gICAgICBrZXk6ICdvaHJiZzInLFxuICAgIH0sXG4gIF0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgU3F1YXJlUGVuXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NVElnTTBnMVlUSWdNaUF3SURBZ01DMHlJREoyTVRSaE1pQXlJREFnTUNBd0lESWdNbWd4TkdFeUlESWdNQ0F3SURBZ01pMHlkaTAzSWlBdlBnb2dJRHh3WVhSb0lHUTlJazB4T0M0ek56VWdNaTQyTWpWaE1TQXhJREFnTUNBeElETWdNMnd0T1M0d01UTWdPUzR3TVRSaE1pQXlJREFnTUNBeExTNDROVE11TlRBMWJDMHlMamczTXk0NE5HRXVOUzQxSURBZ01DQXhMUzQyTWkwdU5qSnNMamcwTFRJdU9EY3pZVElnTWlBd0lEQWdNU0F1TlRBMkxTNDROVEo2SWlBdlBnbzhMM04yWno0SykgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvc3F1YXJlLXBlblxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IFNxdWFyZVBlbiA9IGNyZWF0ZUx1Y2lkZUljb24oJ3NxdWFyZS1wZW4nLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgU3F1YXJlUGVuO1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbJ3JlY3QnLCB7IHdpZHRoOiAnMTgnLCBoZWlnaHQ6ICcxOCcsIHg6ICczJywgeTogJzMnLCByeDogJzInLCBrZXk6ICdhZml0djcnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdtMTUgOS02IDYnLCBrZXk6ICcxdXpodnInIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNOSA5aC4wMScsIGtleTogJzFxNW1lNicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xNSAxNWguMDEnLCBrZXk6ICdscWJwM2snIH1dLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIFNxdWFyZVBlcmNlbnRcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNtVmpkQ0IzYVdSMGFEMGlNVGdpSUdobGFXZG9kRDBpTVRnaUlIZzlJak1pSUhrOUlqTWlJSEo0UFNJeUlpQXZQZ29nSUR4d1lYUm9JR1E5SW0weE5TQTVMVFlnTmlJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOT1NBNWFDNHdNU0lnTHo0S0lDQThjR0YwYUNCa1BTSk5NVFVnTVRWb0xqQXhJaUF2UGdvOEwzTjJaejRLKSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9zcXVhcmUtcGVyY2VudFxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IFNxdWFyZVBlcmNlbnQgPSBjcmVhdGVMdWNpZGVJY29uKCdzcXVhcmUtcGVyY2VudCcsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBTcXVhcmVQZXJjZW50O1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbJ3JlY3QnLCB7IHdpZHRoOiAnMTgnLCBoZWlnaHQ6ICcxOCcsIHg6ICczJywgeTogJzMnLCByeDogJzInLCBrZXk6ICdhZml0djcnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNNyA3aDEwJywga2V5OiAndWRwMDd5JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTEwIDd2MTAnLCBrZXk6ICdpMWQ5ZWUnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTYgMTdhMiAyIDAgMCAxLTItMlY3Jywga2V5OiAnZnR3ZGM3JyB9XSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBTcXVhcmVQaVxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y21WamRDQjNhV1IwYUQwaU1UZ2lJR2hsYVdkb2REMGlNVGdpSUhnOUlqTWlJSGs5SWpNaUlISjRQU0l5SWlBdlBnb2dJRHh3WVhSb0lHUTlJazAzSURkb01UQWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRURXdJRGQyTVRBaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRFMklERTNZVElnTWlBd0lEQWdNUzB5TFRKV055SWdMejRLUEM5emRtYytDZz09KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9zcXVhcmUtcGlcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBTcXVhcmVQaSA9IGNyZWF0ZUx1Y2lkZUljb24oJ3NxdWFyZS1waScsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBTcXVhcmVQaTtcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgWydyZWN0JywgeyB3aWR0aDogJzE4JywgaGVpZ2h0OiAnMTgnLCB4OiAnMycsIHk6ICczJywgcng6ICcyJywga2V5OiAnYWZpdHY3JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTEyIDEySDkuNWEyLjUgMi41IDAgMCAxIDAtNUgxNycsIGtleTogJzFsOTU4NicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xMiA3djEwJywga2V5OiAnanNwcWR3JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTE2IDd2MTAnLCBrZXk6ICdsYXZrcjQnIH1dLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIFNxdWFyZVBpbGNyb3dcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNtVmpkQ0IzYVdSMGFEMGlNVGdpSUdobGFXZG9kRDBpTVRnaUlIZzlJak1pSUhrOUlqTWlJSEo0UFNJeUlpQXZQZ29nSUR4d1lYUm9JR1E5SWsweE1pQXhNa2c1TGpWaE1pNDFJREl1TlNBd0lEQWdNU0F3TFRWSU1UY2lJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRURXlJRGQyTVRBaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRFMklEZDJNVEFpSUM4K0Nqd3ZjM1puUGdvPSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvc3F1YXJlLXBpbGNyb3dcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBTcXVhcmVQaWxjcm93ID0gY3JlYXRlTHVjaWRlSWNvbignc3F1YXJlLXBpbGNyb3cnLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgU3F1YXJlUGlsY3JvdztcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgWydyZWN0JywgeyB3aWR0aDogJzE4JywgaGVpZ2h0OiAnMTgnLCB4OiAnMycsIHk6ICczJywgcng6ICcyJywga2V5OiAnYWZpdHY3JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnbTkgOCA2IDQtNiA0WicsIGtleTogJ2YxcjNsdCcgfV0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgU3F1YXJlUGxheVxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y21WamRDQjNhV1IwYUQwaU1UZ2lJR2hsYVdkb2REMGlNVGdpSUhnOUlqTWlJSGs5SWpNaUlISjRQU0l5SWlBdlBnb2dJRHh3WVhSb0lHUTlJbTA1SURnZ05pQTBMVFlnTkZvaUlDOCtDand2YzNablBnbz0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL3NxdWFyZS1wbGF5XG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgU3F1YXJlUGxheSA9IGNyZWF0ZUx1Y2lkZUljb24oJ3NxdWFyZS1wbGF5JywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IFNxdWFyZVBsYXk7XG4iLCJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbXG4gIFsncmVjdCcsIHsgd2lkdGg6ICcxOCcsIGhlaWdodDogJzE4JywgeDogJzMnLCB5OiAnMycsIHJ4OiAnMicsIGtleTogJ2FmaXR2NycgfV0sXG4gIFsncGF0aCcsIHsgZDogJ004IDEyaDgnLCBrZXk6ICcxd2N5ZXYnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTIgOHY4Jywga2V5OiAnbmFwa3cyJyB9XSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBTcXVhcmVQbHVzXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjbVZqZENCM2FXUjBhRDBpTVRnaUlHaGxhV2RvZEQwaU1UZ2lJSGc5SWpNaUlIazlJak1pSUhKNFBTSXlJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMDRJREV5YURnaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRFeUlEaDJPQ0lnTHo0S1BDOXpkbWMrQ2c9PSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvc3F1YXJlLXBsdXNcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBTcXVhcmVQbHVzID0gY3JlYXRlTHVjaWRlSWNvbignc3F1YXJlLXBsdXMnLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgU3F1YXJlUGx1cztcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTEyIDd2NCcsIGtleTogJ3hhd2FvMScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ003Ljk5OCA5LjAwM2E1IDUgMCAxIDAgOC0uMDA1Jywga2V5OiAnMXBlazQ1JyB9XSxcbiAgWydyZWN0JywgeyB4OiAnMycsIHk6ICczJywgd2lkdGg6ICcxOCcsIGhlaWdodDogJzE4Jywgcng6ICcyJywga2V5OiAnaDFvaWInIH1dLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIFNxdWFyZVBvd2VyXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NVElnTjNZMElpQXZQZ29nSUR4d1lYUm9JR1E5SWswM0xqazVPQ0E1TGpBd00yRTFJRFVnTUNBeElEQWdPQzB1TURBMUlpQXZQZ29nSUR4eVpXTjBJSGc5SWpNaUlIazlJak1pSUhkcFpIUm9QU0l4T0NJZ2FHVnBaMmgwUFNJeE9DSWdjbmc5SWpJaUlDOCtDand2YzNablBnbz0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL3NxdWFyZS1wb3dlclxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IFNxdWFyZVBvd2VyID0gY3JlYXRlTHVjaWRlSWNvbignc3F1YXJlLXBvd2VyJywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IFNxdWFyZVBvd2VyO1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdNNyAxMmgybDIgNSAyLTEwaDQnLCBrZXk6ICcxZnh2NmgnIH1dLFxuICBbJ3JlY3QnLCB7IHg6ICczJywgeTogJzMnLCB3aWR0aDogJzE4JywgaGVpZ2h0OiAnMTgnLCByeDogJzInLCBrZXk6ICdoMW9pYicgfV0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgU3F1YXJlUmFkaWNhbFxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTnlBeE1tZ3liRElnTlNBeUxURXdhRFFpSUM4K0NpQWdQSEpsWTNRZ2VEMGlNeUlnZVQwaU15SWdkMmxrZEdnOUlqRTRJaUJvWldsbmFIUTlJakU0SWlCeWVEMGlNaUlnTHo0S1BDOXpkbWMrQ2c9PSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvc3F1YXJlLXJhZGljYWxcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBTcXVhcmVSYWRpY2FsID0gY3JlYXRlTHVjaWRlSWNvbignc3F1YXJlLXJhZGljYWwnLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgU3F1YXJlUmFkaWNhbDtcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTIxIDExYTggOCAwIDAgMC04LTgnLCBrZXk6ICcxbHh3bzUnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMjEgMTV2NGEyIDIgMCAwIDEtMiAySDVhMiAyIDAgMCAxLTItMlY1YTIgMiAwIDAgMSAyLTJoNCcsIGtleTogJzFkdjJ5NScgfV0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgU3F1YXJlUm91bmRDb3JuZXJcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1qRWdNVEZoT0NBNElEQWdNQ0F3TFRndE9DSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk1qRWdNVFYyTkdFeUlESWdNQ0F3SURFdE1pQXlTRFZoTWlBeUlEQWdNQ0F4TFRJdE1sWTFZVElnTWlBd0lEQWdNU0F5TFRKb05DSWdMejRLUEM5emRtYytDZz09KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9zcXVhcmUtcm91bmQtY29ybmVyXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgU3F1YXJlUm91bmRDb3JuZXIgPSBjcmVhdGVMdWNpZGVJY29uKCdzcXVhcmUtcm91bmQtY29ybmVyJywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IFNxdWFyZVJvdW5kQ29ybmVyO1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbJ3JlY3QnLCB7IHdpZHRoOiAnMjAnLCBoZWlnaHQ6ICcyMCcsIHg6ICcyJywgeTogJzInLCByeDogJzInLCBrZXk6ICcxYnR6ZW4nIH1dLFxuICBbJ2NpcmNsZScsIHsgY3g6ICc4JywgY3k6ICc4JywgcjogJzInLCBrZXk6ICcxNGNnMDYnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNOS40MTQgOS40MTQgMTIgMTInLCBrZXk6ICdxejRsenInIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTQuOCAxNC44IDE4IDE4Jywga2V5OiAnMTFmbGYxJyB9XSxcbiAgWydjaXJjbGUnLCB7IGN4OiAnOCcsIGN5OiAnMTYnLCByOiAnMicsIGtleTogJzFhY3hzeCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ20xOCA2LTguNTg2IDguNTg2Jywga2V5OiAnMTFremsxJyB9XSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBTcXVhcmVTY2lzc29yc1xuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y21WamRDQjNhV1IwYUQwaU1qQWlJR2hsYVdkb2REMGlNakFpSUhnOUlqSWlJSGs5SWpJaUlISjRQU0l5SWlBdlBnb2dJRHhqYVhKamJHVWdZM2c5SWpnaUlHTjVQU0k0SWlCeVBTSXlJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMDVMalF4TkNBNUxqUXhOQ0F4TWlBeE1pSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk1UUXVPQ0F4TkM0NElERTRJREU0SWlBdlBnb2dJRHhqYVhKamJHVWdZM2c5SWpnaUlHTjVQU0l4TmlJZ2NqMGlNaUlnTHo0S0lDQThjR0YwYUNCa1BTSnRNVGdnTmkwNExqVTROaUE0TGpVNE5pSWdMejRLUEM5emRtYytDZz09KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9zcXVhcmUtc2Npc3NvcnNcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBTcXVhcmVTY2lzc29ycyA9IGNyZWF0ZUx1Y2lkZUljb24oJ3NxdWFyZS1zY2lzc29ycycsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBTcXVhcmVTY2lzc29ycztcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgWydyZWN0JywgeyB3aWR0aDogJzE4JywgaGVpZ2h0OiAnMTgnLCB4OiAnMycsIHk6ICczJywgcng6ICcyJywga2V5OiAnYWZpdHY3JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTE2IDguOVY3SDhsNCA1LTQgNWg4di0xLjknLCBrZXk6ICc5bmloMGknIH1dLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIFNxdWFyZVNpZ21hXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjbVZqZENCM2FXUjBhRDBpTVRnaUlHaGxhV2RvZEQwaU1UZ2lJSGc5SWpNaUlIazlJak1pSUhKNFBTSXlJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHhOaUE0TGpsV04wZzRiRFFnTlMwMElEVm9PSFl0TVM0NUlpQXZQZ284TDNOMlp6NEspIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL3NxdWFyZS1zaWdtYVxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IFNxdWFyZVNpZ21hID0gY3JlYXRlTHVjaWRlSWNvbignc3F1YXJlLXNpZ21hJywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IFNxdWFyZVNpZ21hO1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbJ3JlY3QnLCB7IHdpZHRoOiAnMTgnLCBoZWlnaHQ6ICcxOCcsIHg6ICczJywgeTogJzMnLCByeDogJzInLCBrZXk6ICdhZml0djcnIH1dLFxuICBbJ2xpbmUnLCB7IHgxOiAnOScsIHgyOiAnMTUnLCB5MTogJzE1JywgeTI6ICc5Jywga2V5OiAnMWRmdWZqJyB9XSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBTcXVhcmVTbGFzaFxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y21WamRDQjNhV1IwYUQwaU1UZ2lJR2hsYVdkb2REMGlNVGdpSUhnOUlqTWlJSGs5SWpNaUlISjRQU0l5SWlBdlBnb2dJRHhzYVc1bElIZ3hQU0k1SWlCNE1qMGlNVFVpSUhreFBTSXhOU0lnZVRJOUlqa2lJQzgrQ2p3dmMzWm5QZ289KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9zcXVhcmUtc2xhc2hcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBTcXVhcmVTbGFzaCA9IGNyZWF0ZUx1Y2lkZUljb24oJ3NxdWFyZS1zbGFzaCcsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBTcXVhcmVTbGFzaDtcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTggMTlINWMtMSAwLTItMS0yLTJWN2MwLTEgMS0yIDItMmgzJywga2V5OiAnbHVibXU4JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTE2IDVoM2MxIDAgMiAxIDIgMnYxMGMwIDEtMSAyLTIgMmgtMycsIGtleTogJzFhZzM0ZycgfV0sXG4gIFsnbGluZScsIHsgeDE6ICcxMicsIHgyOiAnMTInLCB5MTogJzQnLCB5MjogJzIwJywga2V5OiAnMXR4MXJyJyB9XSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBTcXVhcmVTcGxpdEhvcml6b250YWxcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk9DQXhPVWcxWXkweElEQXRNaTB4TFRJdE1sWTNZekF0TVNBeExUSWdNaTB5YURNaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRFMklEVm9NMk14SURBZ01pQXhJRElnTW5ZeE1HTXdJREV0TVNBeUxUSWdNbWd0TXlJZ0x6NEtJQ0E4YkdsdVpTQjRNVDBpTVRJaUlIZ3lQU0l4TWlJZ2VURTlJalFpSUhreVBTSXlNQ0lnTHo0S1BDOXpkbWMrQ2c9PSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvc3F1YXJlLXNwbGl0LWhvcml6b250YWxcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBTcXVhcmVTcGxpdEhvcml6b250YWwgPSBjcmVhdGVMdWNpZGVJY29uKCdzcXVhcmUtc3BsaXQtaG9yaXpvbnRhbCcsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBTcXVhcmVTcGxpdEhvcml6b250YWw7XG4iLCJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ001IDhWNWMwLTEgMS0yIDItMmgxMGMxIDAgMiAxIDIgMnYzJywga2V5OiAnMXBpODNpJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTE5IDE2djNjMCAxLTEgMi0yIDJIN2MtMSAwLTItMS0yLTJ2LTMnLCBrZXk6ICdpZG81azcnIH1dLFxuICBbJ2xpbmUnLCB7IHgxOiAnNCcsIHgyOiAnMjAnLCB5MTogJzEyJywgeTI6ICcxMicsIGtleTogJzFlMGE5aScgfV0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgU3F1YXJlU3BsaXRWZXJ0aWNhbFxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTlNBNFZqVmpNQzB4SURFdE1pQXlMVEpvTVRCak1TQXdJRElnTVNBeUlESjJNeUlnTHo0S0lDQThjR0YwYUNCa1BTSk5NVGtnTVRaMk0yTXdJREV0TVNBeUxUSWdNa2czWXkweElEQXRNaTB4TFRJdE1uWXRNeUlnTHo0S0lDQThiR2x1WlNCNE1UMGlOQ0lnZURJOUlqSXdJaUI1TVQwaU1USWlJSGt5UFNJeE1pSWdMejRLUEM5emRtYytDZz09KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9zcXVhcmUtc3BsaXQtdmVydGljYWxcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBTcXVhcmVTcGxpdFZlcnRpY2FsID0gY3JlYXRlTHVjaWRlSWNvbignc3F1YXJlLXNwbGl0LXZlcnRpY2FsJywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IFNxdWFyZVNwbGl0VmVydGljYWw7XG4iLCJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbXG4gIFsncmVjdCcsIHsgeDogJzMnLCB5OiAnMycsIHdpZHRoOiAnMTgnLCBoZWlnaHQ6ICcxOCcsIHJ4OiAnMicsIGtleTogJ2gxb2liJyB9XSxcbiAgWydyZWN0JywgeyB4OiAnOCcsIHk6ICc4Jywgd2lkdGg6ICc4JywgaGVpZ2h0OiAnOCcsIHJ4OiAnMScsIGtleTogJ3o5eGl1bycgfV0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgU3F1YXJlU3F1YXJlXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjbVZqZENCNFBTSXpJaUI1UFNJeklpQjNhV1IwYUQwaU1UZ2lJR2hsYVdkb2REMGlNVGdpSUhKNFBTSXlJaUF2UGdvZ0lEeHlaV04wSUhnOUlqZ2lJSGs5SWpnaUlIZHBaSFJvUFNJNElpQm9aV2xuYUhROUlqZ2lJSEo0UFNJeElpQXZQZ284TDNOMlp6NEspIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL3NxdWFyZS1zcXVhcmVcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBTcXVhcmVTcXVhcmUgPSBjcmVhdGVMdWNpZGVJY29uKCdzcXVhcmUtc3F1YXJlJywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IFNxdWFyZVNxdWFyZTtcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTQgMTBjLTEuMSAwLTItLjktMi0yVjRjMC0xLjEuOS0yIDItMmg0YzEuMSAwIDIgLjkgMiAyJywga2V5OiAnNGkzOGxnJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTEwIDE2Yy0xLjEgMC0yLS45LTItMnYtNGMwLTEuMS45LTIgMi0yaDRjMS4xIDAgMiAuOSAyIDInLCBrZXk6ICdtbHRlNGEnIH1dLFxuICBbJ3JlY3QnLCB7IHdpZHRoOiAnOCcsIGhlaWdodDogJzgnLCB4OiAnMTQnLCB5OiAnMTQnLCByeDogJzInLCBrZXk6ICcxZmE5aTQnIH1dLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIFNxdWFyZVN0YWNrXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5OQ0F4TUdNdE1TNHhJREF0TWkwdU9TMHlMVEpXTkdNd0xURXVNUzQ1TFRJZ01pMHlhRFJqTVM0eElEQWdNaUF1T1NBeUlESWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRURXdJREUyWXkweExqRWdNQzB5TFM0NUxUSXRNbll0TkdNd0xURXVNUzQ1TFRJZ01pMHlhRFJqTVM0eElEQWdNaUF1T1NBeUlESWlJQzgrQ2lBZ1BISmxZM1FnZDJsa2RHZzlJamdpSUdobGFXZG9kRDBpT0NJZ2VEMGlNVFFpSUhrOUlqRTBJaUJ5ZUQwaU1pSWdMejRLUEM5emRtYytDZz09KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9zcXVhcmUtc3RhY2tcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBTcXVhcmVTdGFjayA9IGNyZWF0ZUx1Y2lkZUljb24oJ3NxdWFyZS1zdGFjaycsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBTcXVhcmVTdGFjaztcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnbTcgMTEgMi0yLTItMicsIGtleTogJzFsejB2bCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xMSAxM2g0Jywga2V5OiAnMXA3bDR2JyB9XSxcbiAgWydyZWN0JywgeyB3aWR0aDogJzE4JywgaGVpZ2h0OiAnMTgnLCB4OiAnMycsIHk6ICczJywgcng6ICcyJywgcnk6ICcyJywga2V5OiAnMW0zYWduJyB9XSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBTcXVhcmVUZXJtaW5hbFxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0p0TnlBeE1TQXlMVEl0TWkweUlpQXZQZ29nSUR4d1lYUm9JR1E5SWsweE1TQXhNMmcwSWlBdlBnb2dJRHh5WldOMElIZHBaSFJvUFNJeE9DSWdhR1ZwWjJoMFBTSXhPQ0lnZUQwaU15SWdlVDBpTXlJZ2NuZzlJaklpSUhKNVBTSXlJaUF2UGdvOEwzTjJaejRLKSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9zcXVhcmUtdGVybWluYWxcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBTcXVhcmVUZXJtaW5hbCA9IGNyZWF0ZUx1Y2lkZUljb24oJ3NxdWFyZS10ZXJtaW5hbCcsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBTcXVhcmVUZXJtaW5hbDtcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTE4IDIxYTYgNiAwIDAgMC0xMiAwJywga2V5OiAna2F6MmR1JyB9XSxcbiAgWydjaXJjbGUnLCB7IGN4OiAnMTInLCBjeTogJzExJywgcjogJzQnLCBrZXk6ICcxZ3QzNHYnIH1dLFxuICBbJ3JlY3QnLCB7IHdpZHRoOiAnMTgnLCBoZWlnaHQ6ICcxOCcsIHg6ICczJywgeTogJzMnLCByeDogJzInLCBrZXk6ICdhZml0djcnIH1dLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIFNxdWFyZVVzZXJSb3VuZFxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTVRnZ01qRmhOaUEySURBZ01DQXdMVEV5SURBaUlDOCtDaUFnUEdOcGNtTnNaU0JqZUQwaU1USWlJR041UFNJeE1TSWdjajBpTkNJZ0x6NEtJQ0E4Y21WamRDQjNhV1IwYUQwaU1UZ2lJR2hsYVdkb2REMGlNVGdpSUhnOUlqTWlJSGs5SWpNaUlISjRQU0l5SWlBdlBnbzhMM04yWno0SykgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvc3F1YXJlLXVzZXItcm91bmRcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBTcXVhcmVVc2VyUm91bmQgPSBjcmVhdGVMdWNpZGVJY29uKCdzcXVhcmUtdXNlci1yb3VuZCcsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBTcXVhcmVVc2VyUm91bmQ7XG4iLCJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbXG4gIFsncmVjdCcsIHsgd2lkdGg6ICcxOCcsIGhlaWdodDogJzE4JywgeDogJzMnLCB5OiAnMycsIHJ4OiAnMicsIGtleTogJ2FmaXR2NycgfV0sXG4gIFsnY2lyY2xlJywgeyBjeDogJzEyJywgY3k6ICcxMCcsIHI6ICczJywga2V5OiAnaWxxaHI3JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTcgMjF2LTJhMiAyIDAgMCAxIDItMmg2YTIgMiAwIDAgMSAyIDJ2MicsIGtleTogJzFtNmFjMicgfV0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgU3F1YXJlVXNlclxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y21WamRDQjNhV1IwYUQwaU1UZ2lJR2hsYVdkb2REMGlNVGdpSUhnOUlqTWlJSGs5SWpNaUlISjRQU0l5SWlBdlBnb2dJRHhqYVhKamJHVWdZM2c5SWpFeUlpQmplVDBpTVRBaUlISTlJak1pSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVGNnTWpGMkxUSmhNaUF5SURBZ01DQXhJREl0TW1nMllUSWdNaUF3SURBZ01TQXlJREoyTWlJZ0x6NEtQQzl6ZG1jK0NnPT0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL3NxdWFyZS11c2VyXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgU3F1YXJlVXNlciA9IGNyZWF0ZUx1Y2lkZUljb24oJ3NxdWFyZS11c2VyJywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IFNxdWFyZVVzZXI7XG4iLCJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbXG4gIFsncmVjdCcsIHsgd2lkdGg6ICcxOCcsIGhlaWdodDogJzE4JywgeDogJzMnLCB5OiAnMycsIHJ4OiAnMicsIHJ5OiAnMicsIGtleTogJzFtM2FnbicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ20xNSA5LTYgNicsIGtleTogJzF1emh2cicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ205IDkgNiA2Jywga2V5OiAnejBiaXFmJyB9XSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBTcXVhcmVYXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjbVZqZENCM2FXUjBhRDBpTVRnaUlHaGxhV2RvZEQwaU1UZ2lJSGc5SWpNaUlIazlJak1pSUhKNFBTSXlJaUJ5ZVQwaU1pSWdMejRLSUNBOGNHRjBhQ0JrUFNKdE1UVWdPUzAySURZaUlDOCtDaUFnUEhCaGRHZ2daRDBpYlRrZ09TQTJJRFlpSUM4K0Nqd3ZjM1puUGdvPSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvc3F1YXJlLXhcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBTcXVhcmVYID0gY3JlYXRlTHVjaWRlSWNvbignc3F1YXJlLXgnLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgU3F1YXJlWDtcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgWydyZWN0JywgeyB3aWR0aDogJzE4JywgaGVpZ2h0OiAnMTgnLCB4OiAnMycsIHk6ICczJywgcng6ICcyJywga2V5OiAnYWZpdHY3JyB9XSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBTcXVhcmVcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNtVmpkQ0IzYVdSMGFEMGlNVGdpSUdobGFXZG9kRDBpTVRnaUlIZzlJak1pSUhrOUlqTWlJSEo0UFNJeUlpQXZQZ284TDNOMlp6NEspIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL3NxdWFyZVxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IFNxdWFyZSA9IGNyZWF0ZUx1Y2lkZUljb24oJ3NxdWFyZScsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBTcXVhcmU7XG4iLCJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbXG4gIFtcbiAgICAncGF0aCcsXG4gICAge1xuICAgICAgZDogJ00xNiAxMnYyYTIgMiAwIDAgMS0yIDJIOWExIDEgMCAwIDAtMSAxdjNhMiAyIDAgMCAwIDIgMmgxMGEyIDIgMCAwIDAgMi0yVjEwYTIgMiAwIDAgMC0yLTJoMCcsXG4gICAgICBrZXk6ICcxbWNvaHMnLFxuICAgIH0sXG4gIF0sXG4gIFtcbiAgICAncGF0aCcsXG4gICAge1xuICAgICAgZDogJ000IDE2YTIgMiAwIDAgMS0yLTJWNGEyIDIgMCAwIDEgMi0yaDEwYTIgMiAwIDAgMSAyIDJ2M2ExIDEgMCAwIDEtMSAxaC01YTIgMiAwIDAgMC0yIDJ2MicsXG4gICAgICBrZXk6ICcxcjFlZnAnLFxuICAgIH0sXG4gIF0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgU3F1YXJlc0V4Y2x1ZGVcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1UWWdNVEoyTW1FeUlESWdNQ0F3SURFdE1pQXlTRGxoTVNBeElEQWdNQ0F3TFRFZ01YWXpZVElnTWlBd0lEQWdNQ0F5SURKb01UQmhNaUF5SURBZ01DQXdJREl0TWxZeE1HRXlJRElnTUNBd0lEQXRNaTB5YURBaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRRZ01UWmhNaUF5SURBZ01DQXhMVEl0TWxZMFlUSWdNaUF3SURBZ01TQXlMVEpvTVRCaE1pQXlJREFnTUNBeElESWdNbll6WVRFZ01TQXdJREFnTVMweElERm9MVFZoTWlBeUlEQWdNQ0F3TFRJZ01uWXlJaUF2UGdvOEwzTjJaejQ9KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9zcXVhcmVzLWV4Y2x1ZGVcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBTcXVhcmVzRXhjbHVkZSA9IGNyZWF0ZUx1Y2lkZUljb24oJ3NxdWFyZXMtZXhjbHVkZScsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBTcXVhcmVzRXhjbHVkZTtcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTEwIDIyYTIgMiAwIDAgMS0yLTInLCBrZXk6ICdpN3lqMWknIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTQgMmEyIDIgMCAwIDEgMiAyJywga2V5OiAnMTcwYTBtJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTE2IDIyaC0yJywga2V5OiAnMThkMjQ5JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTIgMTBWOCcsIGtleTogJzd5ajRmZScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00yIDRhMiAyIDAgMCAxIDItMicsIGtleTogJ2RkZ253cycgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00yMCA4YTIgMiAwIDAgMSAyIDInLCBrZXk6ICcxNzcwdnQnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMjIgMTR2MicsIGtleTogJ2lvdDhqYScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00yMiAyMGEyIDIgMCAwIDEtMiAyJywga2V5OiAncWo4cTZnJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTQgMTZhMiAyIDAgMCAxLTItMicsIGtleTogJzFkbmFmZycgfV0sXG4gIFtcbiAgICAncGF0aCcsXG4gICAgeyBkOiAnTTggMTBhMiAyIDAgMCAxIDItMmg1YTEgMSAwIDAgMSAxIDF2NWEyIDIgMCAwIDEtMiAySDlhMSAxIDAgMCAxLTEtMXonLCBrZXk6ICdjaTZmMGInIH0sXG4gIF0sXG4gIFsncGF0aCcsIHsgZDogJ004IDJoMicsIGtleTogJzFnbWt3bScgfV0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgU3F1YXJlc0ludGVyc2VjdFxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTVRBZ01qSmhNaUF5SURBZ01DQXhMVEl0TWlJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTVRRZ01tRXlJRElnTUNBd0lERWdNaUF5SWlBdlBnb2dJRHh3WVhSb0lHUTlJazB4TmlBeU1tZ3RNaUlnTHo0S0lDQThjR0YwYUNCa1BTSk5NaUF4TUZZNElpQXZQZ29nSUR4d1lYUm9JR1E5SWsweUlEUmhNaUF5SURBZ01DQXhJREl0TWlJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTWpBZ09HRXlJRElnTUNBd0lERWdNaUF5SWlBdlBnb2dJRHh3WVhSb0lHUTlJazB5TWlBeE5IWXlJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHlNaUF5TUdFeUlESWdNQ0F3SURFdE1pQXlJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMDBJREUyWVRJZ01pQXdJREFnTVMweUxUSWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRUZ2dNVEJoTWlBeUlEQWdNQ0F4SURJdE1tZzFZVEVnTVNBd0lEQWdNU0F4SURGMk5XRXlJRElnTUNBd0lERXRNaUF5U0RsaE1TQXhJREFnTUNBeExURXRNWG9pSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVGdnTW1neUlpQXZQZ284TDNOMlp6ND0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL3NxdWFyZXMtaW50ZXJzZWN0XG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgU3F1YXJlc0ludGVyc2VjdCA9IGNyZWF0ZUx1Y2lkZUljb24oJ3NxdWFyZXMtaW50ZXJzZWN0JywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IFNxdWFyZXNJbnRlcnNlY3Q7XG4iLCJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ00xMCAyMmEyIDIgMCAwIDEtMi0yJywga2V5OiAnaTd5ajFpJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTE2IDIyaC0yJywga2V5OiAnMThkMjQ5JyB9XSxcbiAgW1xuICAgICdwYXRoJyxcbiAgICB7XG4gICAgICBkOiAnTTE2IDRhMiAyIDAgMCAwLTItMkg0YTIgMiAwIDAgMC0yIDJ2MTBhMiAyIDAgMCAwIDIgMmgzYTEgMSAwIDAgMCAxLTF2LTVhMiAyIDAgMCAxIDItMmg1YTEgMSAwIDAgMCAxLTF6JyxcbiAgICAgIGtleTogJzFuamdiYicsXG4gICAgfSxcbiAgXSxcbiAgWydwYXRoJywgeyBkOiAnTTIwIDhhMiAyIDAgMCAxIDIgMicsIGtleTogJzE3NzB2dCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00yMiAxNHYyJywga2V5OiAnaW90OGphJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTIyIDIwYTIgMiAwIDAgMS0yIDInLCBrZXk6ICdxajhxNmcnIH1dLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIFNxdWFyZXNTdWJ0cmFjdFxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTVRBZ01qSmhNaUF5SURBZ01DQXhMVEl0TWlJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTVRZZ01qSm9MVElpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVEUySURSaE1pQXlJREFnTUNBd0xUSXRNa2cwWVRJZ01pQXdJREFnTUMweUlESjJNVEJoTWlBeUlEQWdNQ0F3SURJZ01tZ3pZVEVnTVNBd0lEQWdNQ0F4TFRGMkxUVmhNaUF5SURBZ01DQXhJREl0TW1nMVlURWdNU0F3SURBZ01DQXhMVEY2SWlBdlBnb2dJRHh3WVhSb0lHUTlJazB5TUNBNFlUSWdNaUF3SURBZ01TQXlJRElpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVEl5SURFMGRqSWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRUSXlJREl3WVRJZ01pQXdJREFnTVMweUlESWlJQzgrQ2p3dmMzWm5QZz09KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9zcXVhcmVzLXN1YnRyYWN0XG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgU3F1YXJlc1N1YnRyYWN0ID0gY3JlYXRlTHVjaWRlSWNvbignc3F1YXJlcy1zdWJ0cmFjdCcsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBTcXVhcmVzU3VidHJhY3Q7XG4iLCJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbXG4gIFtcbiAgICAncGF0aCcsXG4gICAge1xuICAgICAgZDogJ000IDE2YTIgMiAwIDAgMS0yLTJWNGEyIDIgMCAwIDEgMi0yaDEwYTIgMiAwIDAgMSAyIDJ2M2ExIDEgMCAwIDAgMSAxaDNhMiAyIDAgMCAxIDIgMnYxMGEyIDIgMCAwIDEtMiAySDEwYTIgMiAwIDAgMS0yLTJ2LTNhMSAxIDAgMCAwLTEtMXonLFxuICAgICAga2V5OiAnMTdqbnRoJyxcbiAgICB9LFxuICBdLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIFNxdWFyZXNVbml0ZVxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTkNBeE5tRXlJRElnTUNBd0lERXRNaTB5VmpSaE1pQXlJREFnTUNBeElESXRNbWd4TUdFeUlESWdNQ0F3SURFZ01pQXlkak5oTVNBeElEQWdNQ0F3SURFZ01XZ3pZVElnTWlBd0lEQWdNU0F5SURKMk1UQmhNaUF5SURBZ01DQXhMVElnTWtneE1HRXlJRElnTUNBd0lERXRNaTB5ZGkwellURWdNU0F3SURBZ01DMHhMVEY2SWlBdlBnbzhMM04yWno0PSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvc3F1YXJlcy11bml0ZVxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IFNxdWFyZXNVbml0ZSA9IGNyZWF0ZUx1Y2lkZUljb24oJ3NxdWFyZXMtdW5pdGUnLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgU3F1YXJlc1VuaXRlO1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdNMTMuNzcgMy4wNDNhMzQgMzQgMCAwIDAtMy41NCAwJywga2V5OiAnMW9hb2JyJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTEzLjc3MSAyMC45NTZhMzMgMzMgMCAwIDEtMy41NDEuMDAxJywga2V5OiAnOTVpcTBqJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTIwLjE4IDE3Ljc0Yy0uNTEgMS4xNS0xLjI5IDEuOTMtMi40MzkgMi40NCcsIGtleTogJzF1NnF0eScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00yMC4xOCA2LjI1OWMtLjUxLTEuMTQ4LTEuMjkxLTEuOTI5LTIuNDQtMi40MzgnLCBrZXk6ICcxZXc2ZzYnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMjAuOTU3IDEwLjIzYTMzIDMzIDAgMCAxIDAgMy41NCcsIGtleTogJzFsOW5wcicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00zLjA0MyAxMC4yM2EzNCAzNCAwIDAgMCAuMDAxIDMuNTQxJywga2V5OiAnMWl0NmptJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTYuMjYgMjAuMTc5Yy0xLjE1LS41MDgtMS45My0xLjI5LTIuNDQtMi40MzgnLCBrZXk6ICcxNHVjaGQnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNNi4yNiAzLjgyYy0xLjE0OS41MS0xLjkzIDEuMjkxLTIuNDQgMi40NCcsIGtleTogJzhrNGFnYicgfV0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgU3F1aXJjbGVEYXNoZWRcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1UTXVOemNnTXk0d05ETmhNelFnTXpRZ01DQXdJREF0TXk0MU5DQXdJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHhNeTQzTnpFZ01qQXVPVFUyWVRNeklETXpJREFnTUNBeExUTXVOVFF4TGpBd01TSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk1qQXVNVGdnTVRjdU56UmpMUzQxTVNBeExqRTFMVEV1TWprZ01TNDVNeTB5TGpRek9TQXlMalEwSWlBdlBnb2dJRHh3WVhSb0lHUTlJazB5TUM0eE9DQTJMakkxT1dNdExqVXhMVEV1TVRRNExURXVNamt4TFRFdU9USTVMVEl1TkRRdE1pNDBNemdpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVEl3TGprMU55QXhNQzR5TTJFek15QXpNeUF3SURBZ01TQXdJRE11TlRRaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRNdU1EUXpJREV3TGpJellUTTBJRE0wSURBZ01DQXdJQzR3TURFZ015NDFOREVpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVFl1TWpZZ01qQXVNVGM1WXkweExqRTFMUzQxTURndE1TNDVNeTB4TGpJNUxUSXVORFF0TWk0ME16Z2lJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRUWXVNallnTXk0NE1tTXRNUzR4TkRrdU5URXRNUzQ1TXlBeExqSTVNUzB5TGpRMElESXVORFFpSUM4K0Nqd3ZjM1puUGdvPSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvc3F1aXJjbGUtZGFzaGVkXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgU3F1aXJjbGVEYXNoZWQgPSBjcmVhdGVMdWNpZGVJY29uKCdzcXVpcmNsZS1kYXNoZWQnLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgU3F1aXJjbGVEYXNoZWQ7XG4iLCJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ00xMiAzYzcuMiAwIDkgMS44IDkgOXMtMS44IDktOSA5LTktMS44LTktOSAxLjgtOSA5LTknLCBrZXk6ICdnYXJma2MnIH1dLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIFNxdWlyY2xlXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NVElnTTJNM0xqSWdNQ0E1SURFdU9DQTVJRGx6TFRFdU9DQTVMVGtnT1MwNUxURXVPQzA1TFRrZ01TNDRMVGtnT1MwNUlpQXZQZ284TDNOMlp6NEspIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL3NxdWlyY2xlXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgU3F1aXJjbGUgPSBjcmVhdGVMdWNpZGVJY29uKCdzcXVpcmNsZScsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBTcXVpcmNsZTtcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTE1LjIzNiAyMmEzIDMgMCAwIDAtMi4yLTUnLCBrZXk6ICcyMWJpdGMnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTYgMjBhMyAzIDAgMCAxIDMtM2gxYTIgMiAwIDAgMCAyLTJ2LTJhNCA0IDAgMCAwLTQtNFY0Jywga2V5OiAnb2gwZmcwJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTE4IDEzaC4wMScsIGtleTogJzl2ZXFhaicgfV0sXG4gIFtcbiAgICAncGF0aCcsXG4gICAge1xuICAgICAgZDogJ00xOCA2YTQgNCAwIDAgMC00IDQgNyA3IDAgMCAwLTcgN2MwLTUgNC01IDQtMTAuNWE0LjUgNC41IDAgMSAwLTkgMCAyLjUgMi41IDAgMCAwIDUgMEM3IDEwIDMgMTEgMyAxN2MwIDIuOCAyLjIgNSA1IDVoMTAnLFxuICAgICAga2V5OiAnOTgwdjhhJyxcbiAgICB9LFxuICBdLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIFNxdWlycmVsXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NVFV1TWpNMklESXlZVE1nTXlBd0lEQWdNQzB5TGpJdE5TSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk1UWWdNakJoTXlBeklEQWdNQ0F4SURNdE0yZ3hZVElnTWlBd0lEQWdNQ0F5TFRKMkxUSmhOQ0EwSURBZ01DQXdMVFF0TkZZMElpQXZQZ29nSUR4d1lYUm9JR1E5SWsweE9DQXhNMmd1TURFaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRFNElEWmhOQ0EwSURBZ01DQXdMVFFnTkNBM0lEY2dNQ0F3SURBdE55QTNZekF0TlNBMExUVWdOQzB4TUM0MVlUUXVOU0EwTGpVZ01DQXhJREF0T1NBd0lESXVOU0F5TGpVZ01DQXdJREFnTlNBd1F6Y2dNVEFnTXlBeE1TQXpJREUzWXpBZ01pNDRJREl1TWlBMUlEVWdOV2d4TUNJZ0x6NEtQQzl6ZG1jK0NnPT0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL3NxdWlycmVsXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgU3F1aXJyZWwgPSBjcmVhdGVMdWNpZGVJY29uKCdzcXVpcnJlbCcsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBTcXVpcnJlbDtcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTE0IDEzVjguNUMxNCA3IDE1IDcgMTUgNWEzIDMgMCAwIDAtNiAwYzAgMiAxIDIgMSAzLjVWMTMnLCBrZXk6ICdpOWdqZHYnIH1dLFxuICBbXG4gICAgJ3BhdGgnLFxuICAgIHtcbiAgICAgIGQ6ICdNMjAgMTUuNWEyLjUgMi41IDAgMCAwLTIuNS0yLjVoLTExQTIuNSAyLjUgMCAwIDAgNCAxNS41VjE3YTEgMSAwIDAgMCAxIDFoMTRhMSAxIDAgMCAwIDEtMXonLFxuICAgICAga2V5OiAnMXZ6ZzN2JyxcbiAgICB9LFxuICBdLFxuICBbJ3BhdGgnLCB7IGQ6ICdNNSAyMmgxNCcsIGtleTogJ2Vodm53dicgfV0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgU3RhbXBcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1UUWdNVE5XT0M0MVF6RTBJRGNnTVRVZ055QXhOU0ExWVRNZ015QXdJREFnTUMwMklEQmpNQ0F5SURFZ01pQXhJRE11TlZZeE15SWdMejRLSUNBOGNHRjBhQ0JrUFNKTk1qQWdNVFV1TldFeUxqVWdNaTQxSURBZ01DQXdMVEl1TlMweUxqVm9MVEV4UVRJdU5TQXlMalVnTUNBd0lEQWdOQ0F4TlM0MVZqRTNZVEVnTVNBd0lEQWdNQ0F4SURGb01UUmhNU0F4SURBZ01DQXdJREV0TVhvaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRVZ01qSm9NVFFpSUM4K0Nqd3ZjM1puUGdvPSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvc3RhbXBcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBTdGFtcCA9IGNyZWF0ZUx1Y2lkZUljb24oJ3N0YW1wJywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IFN0YW1wO1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbXG4gICAgJ3BhdGgnLFxuICAgIHtcbiAgICAgIGQ6ICdNMTIgMTguMzM4YTIuMSAyLjEgMCAwIDAtLjk4Ny4yNDRMNi4zOTYgMjEuMDFhLjUzLjUzIDAgMCAxLS43Ny0uNTZsLjg4MS01LjEzOWEyLjEyIDIuMTIgMCAwIDAtLjYxMS0xLjg3OUwyLjE2IDkuNzk1YS41My41MyAwIDAgMSAuMjk0LS45MDZsNS4xNjUtLjc1NWEyLjEyIDIuMTIgMCAwIDAgMS41OTctMS4xNmwyLjMwOS00LjY3OUEuNTMuNTMgMCAwIDEgMTIgMicsXG4gICAgICBrZXk6ICcya3NwNDknLFxuICAgIH0sXG4gIF0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgU3RhckhhbGZcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1USWdNVGd1TXpNNFlUSXVNU0F5TGpFZ01DQXdJREF0TGprNE55NHlORFJNTmk0ek9UWWdNakV1TURGaExqVXpMalV6SURBZ01DQXhMUzQzTnkwdU5UWnNMamc0TVMwMUxqRXpPV0V5TGpFeUlESXVNVElnTUNBd0lEQXRMall4TVMweExqZzNPVXd5TGpFMklEa3VOemsxWVM0MU15NDFNeUF3SURBZ01TQXVNamswTFM0NU1EWnNOUzR4TmpVdExqYzFOV0V5TGpFeUlESXVNVElnTUNBd0lEQWdNUzQxT1RjdE1TNHhObXd5TGpNd09TMDBMalkzT1VFdU5UTXVOVE1nTUNBd0lERWdNVElnTWlJZ0x6NEtQQzl6ZG1jK0NnPT0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL3N0YXItaGFsZlxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IFN0YXJIYWxmID0gY3JlYXRlTHVjaWRlSWNvbignc3Rhci1oYWxmJywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IFN0YXJIYWxmO1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdNOC4zNCA4LjM0IDIgOS4yN2w1IDQuODdMNS44MiAyMSAxMiAxNy43NyAxOC4xOCAyMWwtLjU5LTMuNDMnLCBrZXk6ICcxNm0wcWwnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTguNDIgMTIuNzYgMjIgOS4yN2wtNi45MS0xTDEyIDJsLTEuNDQgMi45MScsIGtleTogJzF2dDhucScgfV0sXG4gIFsnbGluZScsIHsgeDE6ICcyJywgeDI6ICcyMicsIHkxOiAnMicsIHkyOiAnMjInLCBrZXk6ICdhNnA2dWonIH1dLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIFN0YXJPZmZcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk9DNHpOQ0E0TGpNMElESWdPUzR5TjJ3MUlEUXVPRGRNTlM0NE1pQXlNU0F4TWlBeE55NDNOeUF4T0M0eE9DQXlNV3d0TGpVNUxUTXVORE1pSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVEU0TGpReUlERXlMamMySURJeUlEa3VNamRzTFRZdU9URXRNVXd4TWlBeWJDMHhMalEwSURJdU9URWlJQzgrQ2lBZ1BHeHBibVVnZURFOUlqSWlJSGd5UFNJeU1pSWdlVEU5SWpJaUlIa3lQU0l5TWlJZ0x6NEtQQzl6ZG1jK0NnPT0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL3N0YXItb2ZmXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgU3Rhck9mZiA9IGNyZWF0ZUx1Y2lkZUljb24oJ3N0YXItb2ZmJywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IFN0YXJPZmY7XG4iLCJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbXG4gIFtcbiAgICAncGF0aCcsXG4gICAge1xuICAgICAgZDogJ00xMS41MjUgMi4yOTVhLjUzLjUzIDAgMCAxIC45NSAwbDIuMzEgNC42NzlhMi4xMjMgMi4xMjMgMCAwIDAgMS41OTUgMS4xNmw1LjE2Ni43NTZhLjUzLjUzIDAgMCAxIC4yOTQuOTA0bC0zLjczNiAzLjYzOGEyLjEyMyAyLjEyMyAwIDAgMC0uNjExIDEuODc4bC44ODIgNS4xNGEuNTMuNTMgMCAwIDEtLjc3MS41NmwtNC42MTgtMi40MjhhMi4xMjIgMi4xMjIgMCAwIDAtMS45NzMgMEw2LjM5NiAyMS4wMWEuNTMuNTMgMCAwIDEtLjc3LS41NmwuODgxLTUuMTM5YTIuMTIyIDIuMTIyIDAgMCAwLS42MTEtMS44NzlMMi4xNiA5Ljc5NWEuNTMuNTMgMCAwIDEgLjI5NC0uOTA2bDUuMTY1LS43NTVhMi4xMjIgMi4xMjIgMCAwIDAgMS41OTctMS4xNnonLFxuICAgICAga2V5OiAncjA0czdzJyxcbiAgICB9LFxuICBdLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIFN0YXJcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1URXVOVEkxSURJdU1qazFZUzQxTXk0MU15QXdJREFnTVNBdU9UVWdNR3d5TGpNeElEUXVOamM1WVRJdU1USXpJREl1TVRJeklEQWdNQ0F3SURFdU5UazFJREV1TVRac05TNHhOall1TnpVMllTNDFNeTQxTXlBd0lEQWdNU0F1TWprMExqa3dOR3d0TXk0M016WWdNeTQyTXpoaE1pNHhNak1nTWk0eE1qTWdNQ0F3SURBdExqWXhNU0F4TGpnM09Hd3VPRGd5SURVdU1UUmhMalV6TGpVeklEQWdNQ0F4TFM0M056RXVOVFpzTFRRdU5qRTRMVEl1TkRJNFlUSXVNVEl5SURJdU1USXlJREFnTUNBd0xURXVPVGN6SURCTU5pNHpPVFlnTWpFdU1ERmhMalV6TGpVeklEQWdNQ0F4TFM0M055MHVOVFpzTGpnNE1TMDFMakV6T1dFeUxqRXlNaUF5TGpFeU1pQXdJREFnTUMwdU5qRXhMVEV1T0RjNVRESXVNVFlnT1M0M09UVmhMalV6TGpVeklEQWdNQ0F4SUM0eU9UUXRMamt3Tm13MUxqRTJOUzB1TnpVMVlUSXVNVEl5SURJdU1USXlJREFnTUNBd0lERXVOVGszTFRFdU1UWjZJaUF2UGdvOEwzTjJaejRLKSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9zdGFyXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgU3RhciA9IGNyZWF0ZUx1Y2lkZUljb24oJ3N0YXInLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgU3RhcjtcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgWydsaW5lJywgeyB4MTogJzE4JywgeDI6ICcxOCcsIHkxOiAnMjAnLCB5MjogJzQnLCBrZXk6ICdjdW44ZTUnIH1dLFxuICBbJ3BvbHlnb24nLCB7IHBvaW50czogJzE0LDIwIDQsMTIgMTQsNCcsIGtleTogJ3lwYWtvZCcgfV0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgU3RlcEJhY2tcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGJHbHVaU0I0TVQwaU1UZ2lJSGd5UFNJeE9DSWdlVEU5SWpJd0lpQjVNajBpTkNJZ0x6NEtJQ0E4Y0c5c2VXZHZiaUJ3YjJsdWRITTlJakUwTERJd0lEUXNNVElnTVRRc05DSWdMejRLUEM5emRtYytDZz09KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9zdGVwLWJhY2tcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBTdGVwQmFjayA9IGNyZWF0ZUx1Y2lkZUljb24oJ3N0ZXAtYmFjaycsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBTdGVwQmFjaztcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgWydsaW5lJywgeyB4MTogJzYnLCB4MjogJzYnLCB5MTogJzQnLCB5MjogJzIwJywga2V5OiAnZnk4cW90JyB9XSxcbiAgWydwb2x5Z29uJywgeyBwb2ludHM6ICcxMCw0IDIwLDEyIDEwLDIwJywga2V5OiAnMW1jMXBmJyB9XSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBTdGVwRm9yd2FyZFxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4YkdsdVpTQjRNVDBpTmlJZ2VESTlJallpSUhreFBTSTBJaUI1TWowaU1qQWlJQzgrQ2lBZ1BIQnZiSGxuYjI0Z2NHOXBiblJ6UFNJeE1DdzBJREl3TERFeUlERXdMREl3SWlBdlBnbzhMM04yWno0SykgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvc3RlcC1mb3J3YXJkXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgU3RlcEZvcndhcmQgPSBjcmVhdGVMdWNpZGVJY29uKCdzdGVwLWZvcndhcmQnLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgU3RlcEZvcndhcmQ7XG4iLCJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ00xMSAydjInLCBrZXk6ICcxNTM5eDQnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNNSAydjInLCBrZXk6ICcxeWYxcTgnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNNSAzSDRhMiAyIDAgMCAwLTIgMnY0YTYgNiAwIDAgMCAxMiAwVjVhMiAyIDAgMCAwLTItMmgtMScsIGtleTogJ3JiNXQzcicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ004IDE1YTYgNiAwIDAgMCAxMiAwdi0zJywga2V5OiAneDE4ZDR4JyB9XSxcbiAgWydjaXJjbGUnLCB7IGN4OiAnMjAnLCBjeTogJzEwJywgcjogJzInLCBrZXk6ICd0czFyNXYnIH1dLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIFN0ZXRob3Njb3BlXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NVEVnTW5ZeUlpQXZQZ29nSUR4d1lYUm9JR1E5SWswMUlESjJNaUlnTHo0S0lDQThjR0YwYUNCa1BTSk5OU0F6U0RSaE1pQXlJREFnTUNBd0xUSWdNblkwWVRZZ05pQXdJREFnTUNBeE1pQXdWalZoTWlBeUlEQWdNQ0F3TFRJdE1tZ3RNU0lnTHo0S0lDQThjR0YwYUNCa1BTSk5PQ0F4TldFMklEWWdNQ0F3SURBZ01USWdNSFl0TXlJZ0x6NEtJQ0E4WTJseVkyeGxJR040UFNJeU1DSWdZM2s5SWpFd0lpQnlQU0l5SWlBdlBnbzhMM04yWno0SykgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvc3RldGhvc2NvcGVcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBTdGV0aG9zY29wZSA9IGNyZWF0ZUx1Y2lkZUljb24oJ3N0ZXRob3Njb3BlJywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IFN0ZXRob3Njb3BlO1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbXG4gICAgJ3BhdGgnLFxuICAgIHsgZDogJ00xNS41IDNINWEyIDIgMCAwIDAtMiAydjE0YzAgMS4xLjkgMiAyIDJoMTRhMiAyIDAgMCAwIDItMlY4LjVMMTUuNSAzWicsIGtleTogJzF3aXMxdCcgfSxcbiAgXSxcbiAgWydwYXRoJywgeyBkOiAnTTE0IDN2NGEyIDIgMCAwIDAgMiAyaDQnLCBrZXk6ICczNnJqZnknIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNOCAxM2guMDEnLCBrZXk6ICcxc2J2NjQnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTYgMTNoLjAxJywga2V5OiAnd2lwMGdsJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTEwIDE2cy44IDEgMiAxYzEuMyAwIDItMSAyLTEnLCBrZXk6ICcxdnZndjMnIH1dLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIFN0aWNrZXJcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1UVXVOU0F6U0RWaE1pQXlJREFnTUNBd0xUSWdNbll4TkdNd0lERXVNUzQ1SURJZ01pQXlhREUwWVRJZ01pQXdJREFnTUNBeUxUSldPQzQxVERFMUxqVWdNMW9pSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVEUwSUROMk5HRXlJRElnTUNBd0lEQWdNaUF5YURRaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRnZ01UTm9MakF4SWlBdlBnb2dJRHh3WVhSb0lHUTlJazB4TmlBeE0yZ3VNREVpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVEV3SURFMmN5NDRJREVnTWlBeFl6RXVNeUF3SURJdE1TQXlMVEVpSUM4K0Nqd3ZjM1puUGdvPSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvc3RpY2tlclxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IFN0aWNrZXIgPSBjcmVhdGVMdWNpZGVJY29uKCdzdGlja2VyJywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IFN0aWNrZXI7XG4iLCJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ00xNiAzSDVhMiAyIDAgMCAwLTIgMnYxNGEyIDIgMCAwIDAgMiAyaDE0YTIgMiAwIDAgMCAyLTJWOFonLCBrZXk6ICdxYXpzanAnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTUgM3Y0YTIgMiAwIDAgMCAyIDJoNCcsIGtleTogJzQwNTE5cicgfV0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgU3RpY2t5Tm90ZVxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTVRZZ00wZzFZVElnTWlBd0lEQWdNQzB5SURKMk1UUmhNaUF5SURBZ01DQXdJRElnTW1neE5HRXlJRElnTUNBd0lEQWdNaTB5VmpoYUlpQXZQZ29nSUR4d1lYUm9JR1E5SWsweE5TQXpkalJoTWlBeUlEQWdNQ0F3SURJZ01tZzBJaUF2UGdvOEwzTjJaejRLKSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9zdGlja3ktbm90ZVxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IFN0aWNreU5vdGUgPSBjcmVhdGVMdWNpZGVJY29uKCdzdGlja3ktbm90ZScsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBTdGlja3lOb3RlO1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdtMiA3IDQuNDEtNC40MUEyIDIgMCAwIDEgNy44MyAyaDguMzRhMiAyIDAgMCAxIDEuNDIuNTlMMjIgNycsIGtleTogJ3p0dnVkaScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ000IDEydjhhMiAyIDAgMCAwIDIgMmgxMmEyIDIgMCAwIDAgMi0ydi04Jywga2V5OiAnMWIyaGhqJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTE1IDIydi00YTIgMiAwIDAgMC0yLTJoLTJhMiAyIDAgMCAwLTIgMnY0Jywga2V5OiAnMmVicGZvJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTIgN2gyMCcsIGtleTogJzFmY2R2bycgfV0sXG4gIFtcbiAgICAncGF0aCcsXG4gICAge1xuICAgICAgZDogJ00yMiA3djNhMiAyIDAgMCAxLTIgMmEyLjcgMi43IDAgMCAxLTEuNTktLjYzLjcuNyAwIDAgMC0uODIgMEEyLjcgMi43IDAgMCAxIDE2IDEyYTIuNyAyLjcgMCAwIDEtMS41OS0uNjMuNy43IDAgMCAwLS44MiAwQTIuNyAyLjcgMCAwIDEgMTIgMTJhMi43IDIuNyAwIDAgMS0xLjU5LS42My43LjcgMCAwIDAtLjgyIDBBMi43IDIuNyAwIDAgMSA4IDEyYTIuNyAyLjcgMCAwIDEtMS41OS0uNjMuNy43IDAgMCAwLS44MiAwQTIuNyAyLjcgMCAwIDEgNCAxMmEyIDIgMCAwIDEtMi0yVjcnLFxuICAgICAga2V5OiAnNmMzdmdoJyxcbiAgICB9LFxuICBdLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIFN0b3JlXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSnRNaUEzSURRdU5ERXROQzQwTVVFeUlESWdNQ0F3SURFZ055NDRNeUF5YURndU16UmhNaUF5SURBZ01DQXhJREV1TkRJdU5UbE1NaklnTnlJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTkNBeE1uWTRZVElnTWlBd0lEQWdNQ0F5SURKb01USmhNaUF5SURBZ01DQXdJREl0TW5ZdE9DSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk1UVWdNakoyTFRSaE1pQXlJREFnTUNBd0xUSXRNbWd0TW1FeUlESWdNQ0F3SURBdE1pQXlkalFpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVElnTjJneU1DSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk1qSWdOM1l6WVRJZ01pQXdJREFnTVMweUlESmhNaTQzSURJdU55QXdJREFnTVMweExqVTVMUzQyTXk0M0xqY2dNQ0F3SURBdExqZ3lJREJCTWk0M0lESXVOeUF3SURBZ01TQXhOaUF4TW1FeUxqY2dNaTQzSURBZ01DQXhMVEV1TlRrdExqWXpMamN1TnlBd0lEQWdNQzB1T0RJZ01FRXlMamNnTWk0M0lEQWdNQ0F4SURFeUlERXlZVEl1TnlBeUxqY2dNQ0F3SURFdE1TNDFPUzB1TmpNdU55NDNJREFnTUNBd0xTNDRNaUF3UVRJdU55QXlMamNnTUNBd0lERWdPQ0F4TW1FeUxqY2dNaTQzSURBZ01DQXhMVEV1TlRrdExqWXpMamN1TnlBd0lEQWdNQzB1T0RJZ01FRXlMamNnTWk0M0lEQWdNQ0F4SURRZ01USmhNaUF5SURBZ01DQXhMVEl0TWxZM0lpQXZQZ284TDNOMlp6NEspIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL3N0b3JlXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgU3RvcmUgPSBjcmVhdGVMdWNpZGVJY29uKCdzdG9yZScsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBTdG9yZTtcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgWydyZWN0JywgeyB3aWR0aDogJzIwJywgaGVpZ2h0OiAnNicsIHg6ICcyJywgeTogJzQnLCByeDogJzInLCBrZXk6ICdxZGVhcmwnIH1dLFxuICBbJ3JlY3QnLCB7IHdpZHRoOiAnMjAnLCBoZWlnaHQ6ICc2JywgeDogJzInLCB5OiAnMTQnLCByeDogJzInLCBrZXk6ICcxeHJuNmonIH1dLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIFN0cmV0Y2hIb3Jpem9udGFsXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjbVZqZENCM2FXUjBhRDBpTWpBaUlHaGxhV2RvZEQwaU5pSWdlRDBpTWlJZ2VUMGlOQ0lnY25nOUlqSWlJQzgrQ2lBZ1BISmxZM1FnZDJsa2RHZzlJakl3SWlCb1pXbG5hSFE5SWpZaUlIZzlJaklpSUhrOUlqRTBJaUJ5ZUQwaU1pSWdMejRLUEM5emRtYytDZz09KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9zdHJldGNoLWhvcml6b250YWxcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBTdHJldGNoSG9yaXpvbnRhbCA9IGNyZWF0ZUx1Y2lkZUljb24oJ3N0cmV0Y2gtaG9yaXpvbnRhbCcsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBTdHJldGNoSG9yaXpvbnRhbDtcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgWydyZWN0JywgeyB3aWR0aDogJzYnLCBoZWlnaHQ6ICcyMCcsIHg6ICc0JywgeTogJzInLCByeDogJzInLCBrZXk6ICcxOXF1N20nIH1dLFxuICBbJ3JlY3QnLCB7IHdpZHRoOiAnNicsIGhlaWdodDogJzIwJywgeDogJzE0JywgeTogJzInLCByeDogJzInLCBrZXk6ICcyNHYwbmsnIH1dLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIFN0cmV0Y2hWZXJ0aWNhbFxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y21WamRDQjNhV1IwYUQwaU5pSWdhR1ZwWjJoMFBTSXlNQ0lnZUQwaU5DSWdlVDBpTWlJZ2NuZzlJaklpSUM4K0NpQWdQSEpsWTNRZ2QybGtkR2c5SWpZaUlHaGxhV2RvZEQwaU1qQWlJSGc5SWpFMElpQjVQU0l5SWlCeWVEMGlNaUlnTHo0S1BDOXpkbWMrQ2c9PSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvc3RyZXRjaC12ZXJ0aWNhbFxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IFN0cmV0Y2hWZXJ0aWNhbCA9IGNyZWF0ZUx1Y2lkZUljb24oJ3N0cmV0Y2gtdmVydGljYWwnLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgU3RyZXRjaFZlcnRpY2FsO1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdNMTYgNEg5YTMgMyAwIDAgMC0yLjgzIDQnLCBrZXk6ICc0M3N1dG0nIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTQgMTJhNCA0IDAgMCAxIDAgOEg2Jywga2V5OiAnbmxmajEzJyB9XSxcbiAgWydsaW5lJywgeyB4MTogJzQnLCB4MjogJzIwJywgeTE6ICcxMicsIHkyOiAnMTInLCBrZXk6ICcxZTBhOWknIH1dLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIFN0cmlrZXRocm91Z2hcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1UWWdORWc1WVRNZ015QXdJREFnTUMweUxqZ3pJRFFpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVEUwSURFeVlUUWdOQ0F3SURBZ01TQXdJRGhJTmlJZ0x6NEtJQ0E4YkdsdVpTQjRNVDBpTkNJZ2VESTlJakl3SWlCNU1UMGlNVElpSUhreVBTSXhNaUlnTHo0S1BDOXpkbWMrQ2c9PSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvc3RyaWtldGhyb3VnaFxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IFN0cmlrZXRocm91Z2ggPSBjcmVhdGVMdWNpZGVJY29uKCdzdHJpa2V0aHJvdWdoJywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IFN0cmlrZXRocm91Z2g7XG4iLCJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ200IDUgOCA4Jywga2V5OiAnMWV1bnZsJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnbTEyIDUtOCA4Jywga2V5OiAnMWFoMGpwJyB9XSxcbiAgW1xuICAgICdwYXRoJyxcbiAgICB7XG4gICAgICBkOiAnTTIwIDE5aC00YzAtMS41LjQ0LTIgMS41LTIuNVMyMCAxNS4zMyAyMCAxNGMwLS40Ny0uMTctLjkzLS40OC0xLjI5YTIuMTEgMi4xMSAwIDAgMC0yLjYyLS40NGMtLjQyLjI0LS43NC42Mi0uOSAxLjA3JyxcbiAgICAgIGtleTogJ2U4dGE4aicsXG4gICAgfSxcbiAgXSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBTdWJzY3JpcHRcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKdE5DQTFJRGdnT0NJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0p0TVRJZ05TMDRJRGdpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVEl3SURFNWFDMDBZekF0TVM0MUxqUTBMVElnTVM0MUxUSXVOVk15TUNBeE5TNHpNeUF5TUNBeE5HTXdMUzQwTnkwdU1UY3RMamt6TFM0ME9DMHhMakk1WVRJdU1URWdNaTR4TVNBd0lEQWdNQzB5TGpZeUxTNDBOR010TGpReUxqSTBMUzQzTkM0Mk1pMHVPU0F4TGpBM0lpQXZQZ284TDNOMlp6NEspIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL3N1YnNjcmlwdFxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IFN1YnNjcmlwdCA9IGNyZWF0ZUx1Y2lkZUljb24oJ3N1YnNjcmlwdCcsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBTdWJzY3JpcHQ7XG4iLCJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbXG4gIFsnY2lyY2xlJywgeyBjeDogJzEyJywgY3k6ICcxMicsIHI6ICc0Jywga2V5OiAnNGV4aXAyJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTEyIDRoLjAxJywga2V5OiAnMXVqYjlqJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTIwIDEyaC4wMScsIGtleTogJzF5a2VpZCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xMiAyMGguMDEnLCBrZXk6ICd6ZWtlaTknIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNNCAxMmguMDEnLCBrZXk6ICcxNTh6cnInIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTcuNjU3IDYuMzQzaC4wMScsIGtleTogJzMxcHF6aycgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xNy42NTcgMTcuNjU3aC4wMScsIGtleTogJ2plaG5mNCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ002LjM0MyAxNy42NTdoLjAxJywga2V5OiAnZ2RrNm93JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTYuMzQzIDYuMzQzaC4wMScsIGtleTogJzF1dXJmMCcgfV0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgU3VuRGltXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThZMmx5WTJ4bElHTjRQU0l4TWlJZ1kzazlJakV5SWlCeVBTSTBJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHhNaUEwYUM0d01TSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk1qQWdNVEpvTGpBeElpQXZQZ29nSUR4d1lYUm9JR1E5SWsweE1pQXlNR2d1TURFaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRRZ01USm9MakF4SWlBdlBnb2dJRHh3WVhSb0lHUTlJazB4Tnk0Mk5UY2dOaTR6TkROb0xqQXhJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHhOeTQyTlRjZ01UY3VOalUzYUM0d01TSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk5pNHpORE1nTVRjdU5qVTNhQzR3TVNJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTmk0ek5ETWdOaTR6TkROb0xqQXhJaUF2UGdvOEwzTjJaejRLKSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9zdW4tZGltXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgU3VuRGltID0gY3JlYXRlTHVjaWRlSWNvbignc3VuLWRpbScsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBTdW5EaW07XG4iLCJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbXG4gIFsnY2lyY2xlJywgeyBjeDogJzEyJywgY3k6ICcxMicsIHI6ICc0Jywga2V5OiAnNGV4aXAyJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTEyIDN2MScsIGtleTogJzFhc2JicycgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xMiAyMHYxJywga2V5OiAnMXdjZGtjJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTMgMTJoMScsIGtleTogJ2xwM3lmMicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00yMCAxMmgxJywga2V5OiAnMXZsb2xsJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnbTE4LjM2NCA1LjYzNi0uNzA3LjcwNycsIGtleTogJzFoYWtoMCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ202LjM0MyAxNy42NTctLjcwNy43MDcnLCBrZXk6ICcxOG05bmYnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdtNS42MzYgNS42MzYuNzA3LjcwNycsIGtleTogJzF4djFjNScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ20xNy42NTcgMTcuNjU3LjcwNy43MDcnLCBrZXk6ICd2bDc2emInIH1dLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIFN1bk1lZGl1bVxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4WTJseVkyeGxJR040UFNJeE1pSWdZM2s5SWpFeUlpQnlQU0kwSWlBdlBnb2dJRHh3WVhSb0lHUTlJazB4TWlBemRqRWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRURXlJREl3ZGpFaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRNZ01USm9NU0lnTHo0S0lDQThjR0YwYUNCa1BTSk5NakFnTVRKb01TSWdMejRLSUNBOGNHRjBhQ0JrUFNKdE1UZ3VNelkwSURVdU5qTTJMUzQzTURjdU56QTNJaUF2UGdvZ0lEeHdZWFJvSUdROUltMDJMak0wTXlBeE55NDJOVGN0TGpjd055NDNNRGNpSUM4K0NpQWdQSEJoZEdnZ1pEMGliVFV1TmpNMklEVXVOak0yTGpjd055NDNNRGNpSUM4K0NpQWdQSEJoZEdnZ1pEMGliVEUzTGpZMU55QXhOeTQyTlRjdU56QTNMamN3TnlJZ0x6NEtQQzl6ZG1jK0NnPT0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL3N1bi1tZWRpdW1cbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBTdW5NZWRpdW0gPSBjcmVhdGVMdWNpZGVJY29uKCdzdW4tbWVkaXVtJywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IFN1bk1lZGl1bTtcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTEyIDJ2MicsIGtleTogJ3R1czAzbScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xMyA4LjEyOUE0IDQgMCAwIDEgMTUuODczIDExJywga2V5OiAnbXkwY24zJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnbTE5IDUtMS4yNTYgMS4yNTYnLCBrZXk6ICcxeWc2YTYnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMjAgMTJoMicsIGtleTogJzFxOG1qdycgfV0sXG4gIFsncGF0aCcsIHsgZDogJ005IDhhNSA1IDAgMSAwIDcgNyA3IDcgMCAxIDEtNy03Jywga2V5OiAnNHFvYjkyJyB9XSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBTdW5Nb29uXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NVElnTW5ZeUlpQXZQZ29nSUR4d1lYUm9JR1E5SWsweE15QTRMakV5T1VFMElEUWdNQ0F3SURFZ01UVXVPRGN6SURFeElpQXZQZ29nSUR4d1lYUm9JR1E5SW0weE9TQTFMVEV1TWpVMklERXVNalUySWlBdlBnb2dJRHh3WVhSb0lHUTlJazB5TUNBeE1tZ3lJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMDVJRGhoTlNBMUlEQWdNU0F3SURjZ055QTNJRGNnTUNBeElERXROeTAzSWlBdlBnbzhMM04yWno0SykgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvc3VuLW1vb25cbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBTdW5Nb29uID0gY3JlYXRlTHVjaWRlSWNvbignc3VuLW1vb24nLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgU3VuTW9vbjtcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTEwIDIxdi0xJywga2V5OiAnMXU4cmtkJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTEwIDRWMycsIGtleTogJ3BrendrbicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xMCA5YTMgMyAwIDAgMCAwIDYnLCBrZXk6ICdndjc1ZGsnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdtMTQgMjAgMS4yNS0yLjVMMTggMTgnLCBrZXk6ICcxY2h0a2knIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdtMTQgNCAxLjI1IDIuNUwxOCA2Jywga2V5OiAnMWI0d3N5JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnbTE3IDIxLTMtNiAxLjUtM0gyMicsIGtleTogJ281cWEzdicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ20xNyAzLTMgNiAxLjUgMycsIGtleTogJzExNjk3ZycgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00yIDEyaDEnLCBrZXk6ICcxdWFpaHonIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdtMjAgMTAtMS41IDIgMS41IDInLCBrZXk6ICcxc3dscGknIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdtMy42NCAxOC4zNi43LS43Jywga2V5OiAnMTA1cm05JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnbTQuMzQgNi4zNC0uNy0uNycsIGtleTogJ2QzdW5qcCcgfV0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgU3VuU25vd1xuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTVRBZ01qRjJMVEVpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVEV3SURSV015SWdMejRLSUNBOGNHRjBhQ0JrUFNKTk1UQWdPV0V6SURNZ01DQXdJREFnTUNBMklpQXZQZ29nSUR4d1lYUm9JR1E5SW0weE5DQXlNQ0F4TGpJMUxUSXVOVXd4T0NBeE9DSWdMejRLSUNBOGNHRjBhQ0JrUFNKdE1UUWdOQ0F4TGpJMUlESXVOVXd4T0NBMklpQXZQZ29nSUR4d1lYUm9JR1E5SW0weE55QXlNUzB6TFRZZ01TNDFMVE5JTWpJaUlDOCtDaUFnUEhCaGRHZ2daRDBpYlRFM0lETXRNeUEySURFdU5TQXpJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHlJREV5YURFaUlDOCtDaUFnUEhCaGRHZ2daRDBpYlRJd0lERXdMVEV1TlNBeUlERXVOU0F5SWlBdlBnb2dJRHh3WVhSb0lHUTlJbTB6TGpZMElERTRMak0yTGpjdExqY2lJQzgrQ2lBZ1BIQmhkR2dnWkQwaWJUUXVNelFnTmk0ek5DMHVOeTB1TnlJZ0x6NEtQQzl6ZG1jK0NnPT0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL3N1bi1zbm93XG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgU3VuU25vdyA9IGNyZWF0ZUx1Y2lkZUljb24oJ3N1bi1zbm93JywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IFN1blNub3c7XG4iLCJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbXG4gIFsnY2lyY2xlJywgeyBjeDogJzEyJywgY3k6ICcxMicsIHI6ICc0Jywga2V5OiAnNGV4aXAyJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTEyIDJ2MicsIGtleTogJ3R1czAzbScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xMiAyMHYyJywga2V5OiAnMWxoMWtnJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnbTQuOTMgNC45MyAxLjQxIDEuNDEnLCBrZXk6ICcxNDl0NmonIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdtMTcuNjYgMTcuNjYgMS40MSAxLjQxJywga2V5OiAncHRiZ3V2JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTIgMTJoMicsIGtleTogJzF0OGY4bicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00yMCAxMmgyJywga2V5OiAnMXE4bWp3JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnbTYuMzQgMTcuNjYtMS40MSAxLjQxJywga2V5OiAnMW04eno1JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnbTE5LjA3IDQuOTMtMS40MSAxLjQxJywga2V5OiAnMXNobGNzJyB9XSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBTdW5cbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOFkybHlZMnhsSUdONFBTSXhNaUlnWTNrOUlqRXlJaUJ5UFNJMElpQXZQZ29nSUR4d1lYUm9JR1E5SWsweE1pQXlkaklpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVEV5SURJd2RqSWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaWJUUXVPVE1nTkM0NU15QXhMalF4SURFdU5ERWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaWJURTNMalkySURFM0xqWTJJREV1TkRFZ01TNDBNU0lnTHo0S0lDQThjR0YwYUNCa1BTSk5NaUF4TW1neUlpQXZQZ29nSUR4d1lYUm9JR1E5SWsweU1DQXhNbWd5SWlBdlBnb2dJRHh3WVhSb0lHUTlJbTAyTGpNMElERTNMalkyTFRFdU5ERWdNUzQwTVNJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0p0TVRrdU1EY2dOQzQ1TXkweExqUXhJREV1TkRFaUlDOCtDand2YzNablBnbz0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL3N1blxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IFN1biA9IGNyZWF0ZUx1Y2lkZUljb24oJ3N1bicsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBTdW47XG4iLCJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ00xMiAydjgnLCBrZXk6ICcxcTRvM24nIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdtNC45MyAxMC45MyAxLjQxIDEuNDEnLCBrZXk6ICcyYTdmNDInIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMiAxOGgyJywga2V5OiAnajEwdml1JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTIwIDE4aDInLCBrZXk6ICd3b2NhbmEnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdtMTkuMDcgMTAuOTMtMS40MSAxLjQxJywga2V5OiAnMTV6czVuJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTIyIDIySDInLCBrZXk6ICcxOXFueDUnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdtOCA2IDQtNCA0IDQnLCBrZXk6ICd5Ym5nOWcnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTYgMThhNCA0IDAgMCAwLTggMCcsIGtleTogJzFsem91cScgfV0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgU3VucmlzZVxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTVRJZ01uWTRJaUF2UGdvZ0lEeHdZWFJvSUdROUltMDBMamt6SURFd0xqa3pJREV1TkRFZ01TNDBNU0lnTHo0S0lDQThjR0YwYUNCa1BTSk5NaUF4T0dneUlpQXZQZ29nSUR4d1lYUm9JR1E5SWsweU1DQXhPR2d5SWlBdlBnb2dJRHh3WVhSb0lHUTlJbTB4T1M0d055QXhNQzQ1TXkweExqUXhJREV1TkRFaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRJeUlESXlTRElpSUM4K0NpQWdQSEJoZEdnZ1pEMGliVGdnTmlBMExUUWdOQ0EwSWlBdlBnb2dJRHh3WVhSb0lHUTlJazB4TmlBeE9HRTBJRFFnTUNBd0lEQXRPQ0F3SWlBdlBnbzhMM04yWno0SykgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvc3VucmlzZVxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IFN1bnJpc2UgPSBjcmVhdGVMdWNpZGVJY29uKCdzdW5yaXNlJywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IFN1bnJpc2U7XG4iLCJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ200IDE5IDgtOCcsIGtleTogJ2hyNDdnbScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ20xMiAxOS04LTgnLCBrZXk6ICcxZGhobW8nIH1dLFxuICBbXG4gICAgJ3BhdGgnLFxuICAgIHtcbiAgICAgIGQ6ICdNMjAgMTJoLTRjMC0xLjUuNDQyLTIgMS41LTIuNVMyMCA4LjMzNCAyMCA3LjAwMmMwLS40NzItLjE3LS45My0uNDg0LTEuMjlhMi4xMDUgMi4xMDUgMCAwIDAtMi42MTctLjQzNmMtLjQyLjIzOS0uNzM4LjYxNC0uODk5IDEuMDYnLFxuICAgICAga2V5OiAnMWRmY3V4JyxcbiAgICB9LFxuICBdLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIFN1cGVyc2NyaXB0XG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSnROQ0F4T1NBNExUZ2lJQzgrQ2lBZ1BIQmhkR2dnWkQwaWJURXlJREU1TFRndE9DSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk1qQWdNVEpvTFRSak1DMHhMalV1TkRReUxUSWdNUzQxTFRJdU5WTXlNQ0E0TGpNek5DQXlNQ0EzTGpBd01tTXdMUzQwTnpJdExqRTNMUzQ1TXkwdU5EZzBMVEV1TWpsaE1pNHhNRFVnTWk0eE1EVWdNQ0F3SURBdE1pNDJNVGN0TGpRek5tTXRMalF5TGpJek9TMHVOek00TGpZeE5DMHVPRGs1SURFdU1EWWlJQzgrQ2p3dmMzWm5QZ289KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9zdXBlcnNjcmlwdFxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IFN1cGVyc2NyaXB0ID0gY3JlYXRlTHVjaWRlSWNvbignc3VwZXJzY3JpcHQnLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgU3VwZXJzY3JpcHQ7XG4iLCJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ00xMiAxMFYyJywga2V5OiAnMTZzZjdnJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnbTQuOTMgMTAuOTMgMS40MSAxLjQxJywga2V5OiAnMmE3ZjQyJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTIgMThoMicsIGtleTogJ2oxMHZpdScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00yMCAxOGgyJywga2V5OiAnd29jYW5hJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnbTE5LjA3IDEwLjkzLTEuNDEgMS40MScsIGtleTogJzE1enM1bicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00yMiAyMkgyJywga2V5OiAnMTlxbng1JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnbTE2IDYtNCA0LTQtNCcsIGtleTogJzZ3dWtyJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTE2IDE4YTQgNCAwIDAgMC04IDAnLCBrZXk6ICcxbHpvdXEnIH1dLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIFN1bnNldFxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTVRJZ01UQldNaUlnTHo0S0lDQThjR0YwYUNCa1BTSnROQzQ1TXlBeE1DNDVNeUF4TGpReElERXVOREVpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVElnTVRob01pSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk1qQWdNVGhvTWlJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0p0TVRrdU1EY2dNVEF1T1RNdE1TNDBNU0F4TGpReElpQXZQZ29nSUR4d1lYUm9JR1E5SWsweU1pQXlNa2d5SWlBdlBnb2dJRHh3WVhSb0lHUTlJbTB4TmlBMkxUUWdOQzAwTFRRaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRFMklERTRZVFFnTkNBd0lEQWdNQzA0SURBaUlDOCtDand2YzNablBnbz0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL3N1bnNldFxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IFN1bnNldCA9IGNyZWF0ZUx1Y2lkZUljb24oJ3N1bnNldCcsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBTdW5zZXQ7XG4iLCJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ00xMSAxN2E0IDQgMCAwIDEtOCAwVjVhMiAyIDAgMCAxIDItMmg0YTIgMiAwIDAgMSAyIDJaJywga2V5OiAnMWxkcnBrJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTE2LjcgMTNIMTlhMiAyIDAgMCAxIDIgMnY0YTIgMiAwIDAgMS0yIDJINycsIGtleTogJzExaTVwbycgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00gNyAxN2guMDEnLCBrZXk6ICcxZXV6Z28nIH1dLFxuICBbXG4gICAgJ3BhdGgnLFxuICAgIHtcbiAgICAgIGQ6ICdtMTEgOCAyLjMtMi4zYTIuNCAyLjQgMCAwIDEgMy40MDQuMDA0TDE4LjYgNy42YTIuNCAyLjQgMCAwIDEgLjAyNiAzLjQzNEw5LjkgMTkuOCcsXG4gICAgICBrZXk6ICdvMmdpaTcnLFxuICAgIH0sXG4gIF0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgU3dhdGNoQm9va1xuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTVRFZ01UZGhOQ0EwSURBZ01DQXhMVGdnTUZZMVlUSWdNaUF3SURBZ01TQXlMVEpvTkdFeUlESWdNQ0F3SURFZ01pQXlXaUlnTHo0S0lDQThjR0YwYUNCa1BTSk5NVFl1TnlBeE0wZ3hPV0V5SURJZ01DQXdJREVnTWlBeWRqUmhNaUF5SURBZ01DQXhMVElnTWtnM0lpQXZQZ29nSUR4d1lYUm9JR1E5SWswZ055QXhOMmd1TURFaUlDOCtDaUFnUEhCaGRHZ2daRDBpYlRFeElEZ2dNaTR6TFRJdU0yRXlMalFnTWk0MElEQWdNQ0F4SURNdU5EQTBMakF3TkV3eE9DNDJJRGN1Tm1FeUxqUWdNaTQwSURBZ01DQXhJQzR3TWpZZ015NDBNelJNT1M0NUlERTVMamdpSUM4K0Nqd3ZjM1puUGdvPSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvc3dhdGNoLWJvb2tcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBTd2F0Y2hCb29rID0gY3JlYXRlTHVjaWRlSWNvbignc3dhdGNoLWJvb2snLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgU3dhdGNoQm9vaztcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTEwIDIxVjNoOCcsIGtleTogJ2JyMmwwZycgfV0sXG4gIFsncGF0aCcsIHsgZDogJ002IDE2aDknLCBrZXk6ICcycHkwd24nIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTAgOS41aDcnLCBrZXk6ICcxM2RtaHonIH1dLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIFN3aXNzRnJhbmNcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1UQWdNakZXTTJnNElpQXZQZ29nSUR4d1lYUm9JR1E5SWswMklERTJhRGtpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVEV3SURrdU5XZzNJaUF2UGdvOEwzTjJaejRLKSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9zd2lzcy1mcmFuY1xuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IFN3aXNzRnJhbmMgPSBjcmVhdGVMdWNpZGVJY29uKCdzd2lzcy1mcmFuYycsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBTd2lzc0ZyYW5jO1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdNMTEgMTlINGEyIDIgMCAwIDEtMi0yVjdhMiAyIDAgMCAxIDItMmg1Jywga2V5OiAnbXRrMmx1JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTEzIDVoN2EyIDIgMCAwIDEgMiAydjEwYTIgMiAwIDAgMS0yIDJoLTUnLCBrZXk6ICcxMjBqc2wnIH1dLFxuICBbJ2NpcmNsZScsIHsgY3g6ICcxMicsIGN5OiAnMTInLCByOiAnMycsIGtleTogJzF2N3pyZCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ20xOCAyMi0zLTMgMy0zJywga2V5OiAna2dkb2o3JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnbTYgMiAzIDMtMyAzJywga2V5OiAnMWZuYmt2JyB9XSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBTd2l0Y2hDYW1lcmFcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1URWdNVGxJTkdFeUlESWdNQ0F3SURFdE1pMHlWamRoTWlBeUlEQWdNQ0F4SURJdE1tZzFJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHhNeUExYURkaE1pQXlJREFnTUNBeElESWdNbll4TUdFeUlESWdNQ0F3SURFdE1pQXlhQzAxSWlBdlBnb2dJRHhqYVhKamJHVWdZM2c5SWpFeUlpQmplVDBpTVRJaUlISTlJak1pSUM4K0NpQWdQSEJoZEdnZ1pEMGliVEU0SURJeUxUTXRNeUF6TFRNaUlDOCtDaUFnUEhCaGRHZ2daRDBpYlRZZ01pQXpJRE10TXlBeklpQXZQZ284TDNOMlp6NEspIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL3N3aXRjaC1jYW1lcmFcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBTd2l0Y2hDYW1lcmEgPSBjcmVhdGVMdWNpZGVJY29uKCdzd2l0Y2gtY2FtZXJhJywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IFN3aXRjaENhbWVyYTtcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgWydwb2x5bGluZScsIHsgcG9pbnRzOiAnMTQuNSAxNy41IDMgNiAzIDMgNiAzIDE3LjUgMTQuNScsIGtleTogJzFoZnN3MicgfV0sXG4gIFsnbGluZScsIHsgeDE6ICcxMycsIHgyOiAnMTknLCB5MTogJzE5JywgeTI6ICcxMycsIGtleTogJzF2cm1odScgfV0sXG4gIFsnbGluZScsIHsgeDE6ICcxNicsIHgyOiAnMjAnLCB5MTogJzE2JywgeTI6ICcyMCcsIGtleTogJzFicm9uMycgfV0sXG4gIFsnbGluZScsIHsgeDE6ICcxOScsIHgyOiAnMjEnLCB5MTogJzIxJywgeTI6ICcxOScsIGtleTogJzEzcHd3NicgfV0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgU3dvcmRcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHOXNlV3hwYm1VZ2NHOXBiblJ6UFNJeE5DNDFJREUzTGpVZ015QTJJRE1nTXlBMklETWdNVGN1TlNBeE5DNDFJaUF2UGdvZ0lEeHNhVzVsSUhneFBTSXhNeUlnZURJOUlqRTVJaUI1TVQwaU1Ua2lJSGt5UFNJeE15SWdMejRLSUNBOGJHbHVaU0I0TVQwaU1UWWlJSGd5UFNJeU1DSWdlVEU5SWpFMklpQjVNajBpTWpBaUlDOCtDaUFnUEd4cGJtVWdlREU5SWpFNUlpQjRNajBpTWpFaUlIa3hQU0l5TVNJZ2VUSTlJakU1SWlBdlBnbzhMM04yWno0SykgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvc3dvcmRcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBTd29yZCA9IGNyZWF0ZUx1Y2lkZUljb24oJ3N3b3JkJywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IFN3b3JkO1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbJ3BvbHlsaW5lJywgeyBwb2ludHM6ICcxNC41IDE3LjUgMyA2IDMgMyA2IDMgMTcuNSAxNC41Jywga2V5OiAnMWhmc3cyJyB9XSxcbiAgWydsaW5lJywgeyB4MTogJzEzJywgeDI6ICcxOScsIHkxOiAnMTknLCB5MjogJzEzJywga2V5OiAnMXZybWh1JyB9XSxcbiAgWydsaW5lJywgeyB4MTogJzE2JywgeDI6ICcyMCcsIHkxOiAnMTYnLCB5MjogJzIwJywga2V5OiAnMWJyb24zJyB9XSxcbiAgWydsaW5lJywgeyB4MTogJzE5JywgeDI6ICcyMScsIHkxOiAnMjEnLCB5MjogJzE5Jywga2V5OiAnMTNwd3c2JyB9XSxcbiAgWydwb2x5bGluZScsIHsgcG9pbnRzOiAnMTQuNSA2LjUgMTggMyAyMSAzIDIxIDYgMTcuNSA5LjUnLCBrZXk6ICdoYmV5MmonIH1dLFxuICBbJ2xpbmUnLCB7IHgxOiAnNScsIHgyOiAnOScsIHkxOiAnMTQnLCB5MjogJzE4Jywga2V5OiAnMWhmNThzJyB9XSxcbiAgWydsaW5lJywgeyB4MTogJzcnLCB4MjogJzQnLCB5MTogJzE3JywgeTI6ICcyMCcsIGtleTogJ3BpZHhtNCcgfV0sXG4gIFsnbGluZScsIHsgeDE6ICczJywgeDI6ICc1JywgeTE6ICcxOScsIHkyOiAnMjEnLCBrZXk6ICcxcGVoc2gnIH1dLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIFN3b3Jkc1xuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0c5c2VXeHBibVVnY0c5cGJuUnpQU0l4TkM0MUlERTNMalVnTXlBMklETWdNeUEySURNZ01UY3VOU0F4TkM0MUlpQXZQZ29nSUR4c2FXNWxJSGd4UFNJeE15SWdlREk5SWpFNUlpQjVNVDBpTVRraUlIa3lQU0l4TXlJZ0x6NEtJQ0E4YkdsdVpTQjRNVDBpTVRZaUlIZ3lQU0l5TUNJZ2VURTlJakUySWlCNU1qMGlNakFpSUM4K0NpQWdQR3hwYm1VZ2VERTlJakU1SWlCNE1qMGlNakVpSUhreFBTSXlNU0lnZVRJOUlqRTVJaUF2UGdvZ0lEeHdiMng1YkdsdVpTQndiMmx1ZEhNOUlqRTBMalVnTmk0MUlERTRJRE1nTWpFZ015QXlNU0EySURFM0xqVWdPUzQxSWlBdlBnb2dJRHhzYVc1bElIZ3hQU0kxSWlCNE1qMGlPU0lnZVRFOUlqRTBJaUI1TWowaU1UZ2lJQzgrQ2lBZ1BHeHBibVVnZURFOUlqY2lJSGd5UFNJMElpQjVNVDBpTVRjaUlIa3lQU0l5TUNJZ0x6NEtJQ0E4YkdsdVpTQjRNVDBpTXlJZ2VESTlJalVpSUhreFBTSXhPU0lnZVRJOUlqSXhJaUF2UGdvOEwzTjJaejRLKSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9zd29yZHNcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBTd29yZHMgPSBjcmVhdGVMdWNpZGVJY29uKCdzd29yZHMnLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgU3dvcmRzO1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdtMTggMiA0IDQnLCBrZXk6ICcyMmt4NjQnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdtMTcgNyAzLTMnLCBrZXk6ICcxdzF6b2onIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTkgOSA4LjcgMTkuM2MtMSAxLTIuNSAxLTMuNCAwbC0uNi0uNmMtMS0xLTEtMi41IDAtMy40TDE1IDUnLCBrZXk6ICcxZXhodHonIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdtOSAxMSA0IDQnLCBrZXk6ICdyb3Z0M2knIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdtNSAxOS0zIDMnLCBrZXk6ICc1OWYydWYnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdtMTQgNCA2IDYnLCBrZXk6ICd5cXA5dDInIH1dLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIFN5cmluZ2VcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKdE1UZ2dNaUEwSURRaUlDOCtDaUFnUEhCaGRHZ2daRDBpYlRFM0lEY2dNeTB6SWlBdlBnb2dJRHh3WVhSb0lHUTlJazB4T1NBNUlEZ3VOeUF4T1M0ell5MHhJREV0TWk0MUlERXRNeTQwSURCc0xTNDJMUzQyWXkweExURXRNUzB5TGpVZ01DMHpMalJNTVRVZ05TSWdMejRLSUNBOGNHRjBhQ0JrUFNKdE9TQXhNU0EwSURRaUlDOCtDaUFnUEhCaGRHZ2daRDBpYlRVZ01Ua3RNeUF6SWlBdlBnb2dJRHh3WVhSb0lHUTlJbTB4TkNBMElEWWdOaUlnTHo0S1BDOXpkbWMrQ2c9PSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvc3lyaW5nZVxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IFN5cmluZ2UgPSBjcmVhdGVMdWNpZGVJY29uKCdzeXJpbmdlJywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IFN5cmluZ2U7XG4iLCJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbXG4gIFtcbiAgICAncGF0aCcsXG4gICAge1xuICAgICAgZDogJ005IDNINWEyIDIgMCAwIDAtMiAydjRtNi02aDEwYTIgMiAwIDAgMSAyIDJ2NE05IDN2MThtMCAwaDEwYTIgMiAwIDAgMCAyLTJWOU05IDIxSDVhMiAyIDAgMCAxLTItMlY5bTAgMGgxOCcsXG4gICAgICBrZXk6ICdndWdqODMnLFxuICAgIH0sXG4gIF0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgVGFibGUyXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5PU0F6U0RWaE1pQXlJREFnTUNBd0xUSWdNblkwYlRZdE5tZ3hNR0V5SURJZ01DQXdJREVnTWlBeWRqUk5PU0F6ZGpFNGJUQWdNR2d4TUdFeUlESWdNQ0F3SURBZ01pMHlWamxOT1NBeU1VZzFZVElnTWlBd0lEQWdNUzB5TFRKV09XMHdJREJvTVRnaUlDOCtDand2YzNablBnbz0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL3RhYmxlLTJcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBUYWJsZTIgPSBjcmVhdGVMdWNpZGVJY29uKCd0YWJsZS0yJywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IFRhYmxlMjtcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTEyIDIxdi02Jywga2V5OiAnbGloenZlJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTEyIDlWMycsIGtleTogJ2RhNWluYycgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00zIDE1aDE4Jywga2V5OiAnNXhzaHVwJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTMgOWgxOCcsIGtleTogJzFwdWRjdCcgfV0sXG4gIFsncmVjdCcsIHsgd2lkdGg6ICcxOCcsIGhlaWdodDogJzE4JywgeDogJzMnLCB5OiAnMycsIHJ4OiAnMicsIGtleTogJ2FmaXR2NycgfV0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgVGFibGVDZWxsc01lcmdlXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NVElnTWpGMkxUWWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRURXlJRGxXTXlJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTXlBeE5XZ3hPQ0lnTHo0S0lDQThjR0YwYUNCa1BTSk5NeUE1YURFNElpQXZQZ29nSUR4eVpXTjBJSGRwWkhSb1BTSXhPQ0lnYUdWcFoyaDBQU0l4T0NJZ2VEMGlNeUlnZVQwaU15SWdjbmc5SWpJaUlDOCtDand2YzNablBnbz0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL3RhYmxlLWNlbGxzLW1lcmdlXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgVGFibGVDZWxsc01lcmdlID0gY3JlYXRlTHVjaWRlSWNvbigndGFibGUtY2VsbHMtbWVyZ2UnLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgVGFibGVDZWxsc01lcmdlO1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdNMTIgMTVWOScsIGtleTogJzhjN3V5bicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00zIDE1aDE4Jywga2V5OiAnNXhzaHVwJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTMgOWgxOCcsIGtleTogJzFwdWRjdCcgfV0sXG4gIFsncmVjdCcsIHsgd2lkdGg6ICcxOCcsIGhlaWdodDogJzE4JywgeDogJzMnLCB5OiAnMycsIHJ4OiAnMicsIGtleTogJ2FmaXR2NycgfV0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgVGFibGVDZWxsc1NwbGl0XG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NVElnTVRWV09TSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk15QXhOV2d4T0NJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTXlBNWFERTRJaUF2UGdvZ0lEeHlaV04wSUhkcFpIUm9QU0l4T0NJZ2FHVnBaMmgwUFNJeE9DSWdlRDBpTXlJZ2VUMGlNeUlnY25nOUlqSWlJQzgrQ2p3dmMzWm5QZ289KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy90YWJsZS1jZWxscy1zcGxpdFxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IFRhYmxlQ2VsbHNTcGxpdCA9IGNyZWF0ZUx1Y2lkZUljb24oJ3RhYmxlLWNlbGxzLXNwbGl0JywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IFRhYmxlQ2VsbHNTcGxpdDtcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTE0IDE0djInLCBrZXk6ICd3MmExeHYnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTQgMjB2MicsIGtleTogJzFscTg3MicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xNCAydjInLCBrZXk6ICc2YnV3MDQnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTQgOHYyJywga2V5OiAnaTY3dzlhJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTIgMTVoOCcsIGtleTogJzgyd3RjaCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00yIDNoNmEyIDIgMCAwIDEgMiAydjE0YTIgMiAwIDAgMS0yIDJIMicsIGtleTogJ3VwMGw2NCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00yIDloOCcsIGtleTogJ3llbGZpaycgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00yMiAxNWgtNCcsIGtleTogJzFlczU4ZicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00yMiAzaC0yYTIgMiAwIDAgMC0yIDJ2MTRhMiAyIDAgMCAwIDIgMmgyJywga2V5OiAncGRqb3FmJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTIyIDloLTQnLCBrZXk6ICcxbHVqYTcnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNNSAzdjE4Jywga2V5OiAnMTRobWlvJyB9XSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBUYWJsZUNvbHVtbnNTcGxpdFxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTVRRZ01UUjJNaUlnTHo0S0lDQThjR0YwYUNCa1BTSk5NVFFnTWpCMk1pSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk1UUWdNbll5SWlBdlBnb2dJRHh3WVhSb0lHUTlJazB4TkNBNGRqSWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRUSWdNVFZvT0NJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTWlBemFEWmhNaUF5SURBZ01DQXhJRElnTW5ZeE5HRXlJRElnTUNBd0lERXRNaUF5U0RJaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRJZ09XZzRJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHlNaUF4TldndE5DSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk1qSWdNMmd0TW1FeUlESWdNQ0F3SURBdE1pQXlkakUwWVRJZ01pQXdJREFnTUNBeUlESm9NaUlnTHo0S0lDQThjR0YwYUNCa1BTSk5NaklnT1dndE5DSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk5TQXpkakU0SWlBdlBnbzhMM04yWno0SykgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvdGFibGUtY29sdW1ucy1zcGxpdFxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IFRhYmxlQ29sdW1uc1NwbGl0ID0gY3JlYXRlTHVjaWRlSWNvbigndGFibGUtY29sdW1ucy1zcGxpdCcsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBUYWJsZUNvbHVtbnNTcGxpdDtcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTE2IDEySDMnLCBrZXk6ICcxYTJyajcnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTYgMThIMycsIGtleTogJzEyeHpuNycgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xNiA2SDMnLCBrZXk6ICcxd3hmanMnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMjEgMTJoLjAxJywga2V5OiAnbXNlazdrJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTIxIDE4aC4wMScsIGtleTogJzFlOHJxMScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00yMSA2aC4wMScsIGtleTogJzFrb2FuaicgfV0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgVGFibGVPZkNvbnRlbnRzXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NVFlnTVRKSU15SWdMejRLSUNBOGNHRjBhQ0JrUFNKTk1UWWdNVGhJTXlJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTVRZZ05rZ3pJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHlNU0F4TW1ndU1ERWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRUSXhJREU0YUM0d01TSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk1qRWdObWd1TURFaUlDOCtDand2YzNablBnbz0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL3RhYmxlLW9mLWNvbnRlbnRzXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgVGFibGVPZkNvbnRlbnRzID0gY3JlYXRlTHVjaWRlSWNvbigndGFibGUtb2YtY29udGVudHMnLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgVGFibGVPZkNvbnRlbnRzO1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdNMTUgM3YxOCcsIGtleTogJzE0bnZwMCcgfV0sXG4gIFsncmVjdCcsIHsgd2lkdGg6ICcxOCcsIGhlaWdodDogJzE4JywgeDogJzMnLCB5OiAnMycsIHJ4OiAnMicsIGtleTogJ2FmaXR2NycgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00yMSA5SDMnLCBrZXk6ICcxMzM4a3knIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMjEgMTVIMycsIGtleTogJzl1azU4cicgfV0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgVGFibGVQcm9wZXJ0aWVzXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NVFVnTTNZeE9DSWdMejRLSUNBOGNtVmpkQ0IzYVdSMGFEMGlNVGdpSUdobGFXZG9kRDBpTVRnaUlIZzlJak1pSUhrOUlqTWlJSEo0UFNJeUlpQXZQZ29nSUR4d1lYUm9JR1E5SWsweU1TQTVTRE1pSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVEl4SURFMVNETWlJQzgrQ2p3dmMzWm5QZ289KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy90YWJsZS1wcm9wZXJ0aWVzXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgVGFibGVQcm9wZXJ0aWVzID0gY3JlYXRlTHVjaWRlSWNvbigndGFibGUtcHJvcGVydGllcycsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBUYWJsZVByb3BlcnRpZXM7XG4iLCJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ00xNCAxMGgyJywga2V5OiAnMWxzdGx1JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTE1IDIydi04Jywga2V5OiAnMWZ3d2dtJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTE1IDJ2NCcsIGtleTogJzEwNDRybicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00yIDEwaDInLCBrZXk6ICcxcjhka3QnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMjAgMTBoMicsIGtleTogJzF1ZzQyNScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00zIDE5aDE4Jywga2V5OiAnYXdsaDd4JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTMgMjJ2LTZhMiAyIDEzNSAwIDEgMi0yaDE0YTIgMiA0NSAwIDEgMiAydjYnLCBrZXk6ICdpYnFob2YnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMyAydjJhMiAyIDQ1IDAgMCAyIDJoMTRhMiAyIDEzNSAwIDAgMi0yVjInLCBrZXk6ICcxdWVuamEnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNOCAxMGgyJywga2V5OiAnNjZvZDAnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNOSAyMnYtOCcsIGtleTogJ2ZtbnUzMScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ005IDJ2NCcsIGtleTogJ2oxeWVvdScgfV0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgVGFibGVSb3dzU3BsaXRcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1UUWdNVEJvTWlJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTVRVZ01qSjJMVGdpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVEUxSURKMk5DSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk1pQXhNR2d5SWlBdlBnb2dJRHh3WVhSb0lHUTlJazB5TUNBeE1HZ3lJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHpJREU1YURFNElpQXZQZ29nSUR4d1lYUm9JR1E5SWsweklESXlkaTAyWVRJZ01pQXhNelVnTUNBeElESXRNbWd4TkdFeUlESWdORFVnTUNBeElESWdNblkySWlBdlBnb2dJRHh3WVhSb0lHUTlJazB6SURKMk1tRXlJRElnTkRVZ01DQXdJRElnTW1neE5HRXlJRElnTVRNMUlEQWdNQ0F5TFRKV01pSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk9DQXhNR2d5SWlBdlBnb2dJRHh3WVhSb0lHUTlJazA1SURJeWRpMDRJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMDVJREoyTkNJZ0x6NEtQQzl6ZG1jK0NnPT0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL3RhYmxlLXJvd3Mtc3BsaXRcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBUYWJsZVJvd3NTcGxpdCA9IGNyZWF0ZUx1Y2lkZUljb24oJ3RhYmxlLXJvd3Mtc3BsaXQnLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgVGFibGVSb3dzU3BsaXQ7XG4iLCJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ00xMiAzdjE4Jywga2V5OiAnMTA4eGgzJyB9XSxcbiAgWydyZWN0JywgeyB3aWR0aDogJzE4JywgaGVpZ2h0OiAnMTgnLCB4OiAnMycsIHk6ICczJywgcng6ICcyJywga2V5OiAnYWZpdHY3JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTMgOWgxOCcsIGtleTogJzFwdWRjdCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00zIDE1aDE4Jywga2V5OiAnNXhzaHVwJyB9XSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBUYWJsZVxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTVRJZ00zWXhPQ0lnTHo0S0lDQThjbVZqZENCM2FXUjBhRDBpTVRnaUlHaGxhV2RvZEQwaU1UZ2lJSGc5SWpNaUlIazlJak1pSUhKNFBTSXlJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHpJRGxvTVRnaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRNZ01UVm9NVGdpSUM4K0Nqd3ZjM1puUGdvPSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvdGFibGVcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBUYWJsZSA9IGNyZWF0ZUx1Y2lkZUljb24oJ3RhYmxlJywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IFRhYmxlO1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbJ3JlY3QnLCB7IHdpZHRoOiAnMTAnLCBoZWlnaHQ6ICcxNCcsIHg6ICczJywgeTogJzgnLCByeDogJzInLCBrZXk6ICcxdnJzaXEnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNNSA0YTIgMiAwIDAgMSAyLTJoMTJhMiAyIDAgMCAxIDIgMnYxNmEyIDIgMCAwIDEtMiAyaC0yLjQnLCBrZXk6ICcxajR6bWcnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNOCAxOGguMDEnLCBrZXk6ICdscnAzNXQnIH1dLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIFRhYmxldFNtYXJ0cGhvbmVcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNtVmpkQ0IzYVdSMGFEMGlNVEFpSUdobGFXZG9kRDBpTVRRaUlIZzlJak1pSUhrOUlqZ2lJSEo0UFNJeUlpQXZQZ29nSUR4d1lYUm9JR1E5SWswMUlEUmhNaUF5SURBZ01DQXhJREl0TW1neE1tRXlJRElnTUNBd0lERWdNaUF5ZGpFMllUSWdNaUF3SURBZ01TMHlJREpvTFRJdU5DSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk9DQXhPR2d1TURFaUlDOCtDand2YzNablBnbz0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL3RhYmxldC1zbWFydHBob25lXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgVGFibGV0U21hcnRwaG9uZSA9IGNyZWF0ZUx1Y2lkZUljb24oJ3RhYmxldC1zbWFydHBob25lJywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IFRhYmxldFNtYXJ0cGhvbmU7XG4iLCJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbXG4gIFsncmVjdCcsIHsgd2lkdGg6ICcxNicsIGhlaWdodDogJzIwJywgeDogJzQnLCB5OiAnMicsIHJ4OiAnMicsIHJ5OiAnMicsIGtleTogJzc2b3RnZicgfV0sXG4gIFsnbGluZScsIHsgeDE6ICcxMicsIHgyOiAnMTIuMDEnLCB5MTogJzE4JywgeTI6ICcxOCcsIGtleTogJzFkcDU2MycgfV0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgVGFibGV0XG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjbVZqZENCM2FXUjBhRDBpTVRZaUlHaGxhV2RvZEQwaU1qQWlJSGc5SWpRaUlIazlJaklpSUhKNFBTSXlJaUJ5ZVQwaU1pSWdMejRLSUNBOGJHbHVaU0I0TVQwaU1USWlJSGd5UFNJeE1pNHdNU0lnZVRFOUlqRTRJaUI1TWowaU1UZ2lJQzgrQ2p3dmMzWm5QZ289KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy90YWJsZXRcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBUYWJsZXQgPSBjcmVhdGVMdWNpZGVJY29uKCd0YWJsZXQnLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgVGFibGV0O1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbJ2NpcmNsZScsIHsgY3g6ICc3JywgY3k6ICc3JywgcjogJzUnLCBrZXk6ICd4MjlieWYnIH1dLFxuICBbJ2NpcmNsZScsIHsgY3g6ICcxNycsIGN5OiAnMTcnLCByOiAnNScsIGtleTogJzFvcDFkMicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xMiAxN2gxMCcsIGtleTogJ2xzMjF6dicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ20zLjQ2IDEwLjU0IDcuMDgtNy4wOCcsIGtleTogJzFyZWhpdScgfV0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgVGFibGV0c1xuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4WTJseVkyeGxJR040UFNJM0lpQmplVDBpTnlJZ2NqMGlOU0lnTHo0S0lDQThZMmx5WTJ4bElHTjRQU0l4TnlJZ1kzazlJakUzSWlCeVBTSTFJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHhNaUF4TjJneE1DSWdMejRLSUNBOGNHRjBhQ0JrUFNKdE15NDBOaUF4TUM0MU5DQTNMakE0TFRjdU1EZ2lJQzgrQ2p3dmMzWm5QZ289KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy90YWJsZXRzXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgVGFibGV0cyA9IGNyZWF0ZUx1Y2lkZUljb24oJ3RhYmxldHMnLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgVGFibGV0cztcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgW1xuICAgICdwYXRoJyxcbiAgICB7XG4gICAgICBkOiAnTTEyLjU4NiAyLjU4NkEyIDIgMCAwIDAgMTEuMTcyIDJINGEyIDIgMCAwIDAtMiAydjcuMTcyYTIgMiAwIDAgMCAuNTg2IDEuNDE0bDguNzA0IDguNzA0YTIuNDI2IDIuNDI2IDAgMCAwIDMuNDIgMGw2LjU4LTYuNThhMi40MjYgMi40MjYgMCAwIDAgMC0zLjQyeicsXG4gICAgICBrZXk6ICd2a3RzZDAnLFxuICAgIH0sXG4gIF0sXG4gIFsnY2lyY2xlJywgeyBjeDogJzcuNScsIGN5OiAnNy41JywgcjogJy41JywgZmlsbDogJ2N1cnJlbnRDb2xvcicsIGtleTogJ2txdjk0NCcgfV0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgVGFnXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NVEl1TlRnMklESXVOVGcyUVRJZ01pQXdJREFnTUNBeE1TNHhOeklnTWtnMFlUSWdNaUF3SURBZ01DMHlJREoyTnk0eE56SmhNaUF5SURBZ01DQXdJQzQxT0RZZ01TNDBNVFJzT0M0M01EUWdPQzQzTURSaE1pNDBNallnTWk0ME1qWWdNQ0F3SURBZ015NDBNaUF3YkRZdU5UZ3ROaTQxT0dFeUxqUXlOaUF5TGpReU5pQXdJREFnTUNBd0xUTXVOREo2SWlBdlBnb2dJRHhqYVhKamJHVWdZM2c5SWpjdU5TSWdZM2s5SWpjdU5TSWdjajBpTGpVaUlHWnBiR3c5SW1OMWNuSmxiblJEYjJ4dmNpSWdMejRLUEM5emRtYytDZz09KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy90YWdcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBUYWcgPSBjcmVhdGVMdWNpZGVJY29uKCd0YWcnLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgVGFnO1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdtMTUgNSA2LjMgNi4zYTIuNCAyLjQgMCAwIDEgMCAzLjRMMTcgMTknLCBrZXk6ICcxY2JmdjEnIH1dLFxuICBbXG4gICAgJ3BhdGgnLFxuICAgIHtcbiAgICAgIGQ6ICdNOS41ODYgNS41ODZBMiAyIDAgMCAwIDguMTcyIDVIM2ExIDEgMCAwIDAtMSAxdjUuMTcyYTIgMiAwIDAgMCAuNTg2IDEuNDE0TDguMjkgMTguMjlhMi40MjYgMi40MjYgMCAwIDAgMy40MiAwbDMuNTgtMy41OGEyLjQyNiAyLjQyNiAwIDAgMCAwLTMuNDJ6JyxcbiAgICAgIGtleTogJzEzNW1nNycsXG4gICAgfSxcbiAgXSxcbiAgWydjaXJjbGUnLCB7IGN4OiAnNi41JywgY3k6ICc5LjUnLCByOiAnLjUnLCBmaWxsOiAnY3VycmVudENvbG9yJywga2V5OiAnNXBtNXhuJyB9XSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBUYWdzXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSnRNVFVnTlNBMkxqTWdOaTR6WVRJdU5DQXlMalFnTUNBd0lERWdNQ0F6TGpSTU1UY2dNVGtpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVGt1TlRnMklEVXVOVGcyUVRJZ01pQXdJREFnTUNBNExqRTNNaUExU0ROaE1TQXhJREFnTUNBd0xURWdNWFkxTGpFM01tRXlJRElnTUNBd0lEQWdMalU0TmlBeExqUXhORXc0TGpJNUlERTRMakk1WVRJdU5ESTJJREl1TkRJMklEQWdNQ0F3SURNdU5ESWdNR3d6TGpVNExUTXVOVGhoTWk0ME1qWWdNaTQwTWpZZ01DQXdJREFnTUMwekxqUXllaUlnTHo0S0lDQThZMmx5WTJ4bElHTjRQU0kyTGpVaUlHTjVQU0k1TGpVaUlISTlJaTQxSWlCbWFXeHNQU0pqZFhKeVpXNTBRMjlzYjNJaUlDOCtDand2YzNablBnbz0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL3RhZ3NcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBUYWdzID0gY3JlYXRlTHVjaWRlSWNvbigndGFncycsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBUYWdzO1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1sncGF0aCcsIHsgZDogJ000IDR2MTYnLCBrZXk6ICc2cWtrbGknIH1dXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIFRhbGx5MVxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTkNBMGRqRTJJaUF2UGdvOEwzTjJaejRLKSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy90YWxseS0xXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgVGFsbHkxID0gY3JlYXRlTHVjaWRlSWNvbigndGFsbHktMScsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBUYWxseTE7XG4iLCJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ000IDR2MTYnLCBrZXk6ICc2cWtrbGknIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNOSA0djE2Jywga2V5OiAnODF5Z3l6JyB9XSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBUYWxseTJcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk5DQTBkakUySWlBdlBnb2dJRHh3WVhSb0lHUTlJazA1SURSMk1UWWlJQzgrQ2p3dmMzWm5QZ289KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy90YWxseS0yXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgVGFsbHkyID0gY3JlYXRlTHVjaWRlSWNvbigndGFsbHktMicsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBUYWxseTI7XG4iLCJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ000IDR2MTYnLCBrZXk6ICc2cWtrbGknIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNOSA0djE2Jywga2V5OiAnODF5Z3l6JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTE0IDR2MTYnLCBrZXk6ICcxMnZtZW0nIH1dLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIFRhbGx5M1xuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTkNBMGRqRTJJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMDVJRFIyTVRZaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRFMElEUjJNVFlpSUM4K0Nqd3ZjM1puUGdvPSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvdGFsbHktM1xuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IFRhbGx5MyA9IGNyZWF0ZUx1Y2lkZUljb24oJ3RhbGx5LTMnLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgVGFsbHkzO1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdNNCA0djE2Jywga2V5OiAnNnFra2xpJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTkgNHYxNicsIGtleTogJzgxeWd5eicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xNCA0djE2Jywga2V5OiAnMTJ2bWVtJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTE5IDR2MTYnLCBrZXk6ICc4aWo1ZWknIH1dLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIFRhbGx5NFxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTkNBMGRqRTJJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMDVJRFIyTVRZaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRFMElEUjJNVFlpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVEU1SURSMk1UWWlJQzgrQ2p3dmMzWm5QZ289KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy90YWxseS00XG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgVGFsbHk0ID0gY3JlYXRlTHVjaWRlSWNvbigndGFsbHktNCcsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBUYWxseTQ7XG4iLCJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ000IDR2MTYnLCBrZXk6ICc2cWtrbGknIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNOSA0djE2Jywga2V5OiAnODF5Z3l6JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTE0IDR2MTYnLCBrZXk6ICcxMnZtZW0nIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTkgNHYxNicsIGtleTogJzhpajVlaScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00yMiA2IDIgMTgnLCBrZXk6ICdoOW1vYWknIH1dLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIFRhbGx5NVxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTkNBMGRqRTJJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMDVJRFIyTVRZaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRFMElEUjJNVFlpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVEU1SURSMk1UWWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRUSXlJRFlnTWlBeE9DSWdMejRLUEM5emRtYytDZz09KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy90YWxseS01XG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgVGFsbHk1ID0gY3JlYXRlTHVjaWRlSWNvbigndGFsbHktNScsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBUYWxseTU7XG4iLCJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbXG4gIFsnY2lyY2xlJywgeyBjeDogJzE3JywgY3k6ICc0JywgcjogJzInLCBrZXk6ICd5NWoyczInIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTUuNTkgNS40MSA1LjQxIDE1LjU5Jywga2V5OiAnbDB2cHJyJyB9XSxcbiAgWydjaXJjbGUnLCB7IGN4OiAnNCcsIGN5OiAnMTcnLCByOiAnMicsIGtleTogJzlwNGVmbScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xMiAyMnMtNC05LTEuNS0xMS41UzIyIDEyIDIyIDEyJywga2V5OiAnMXR3azRvJyB9XSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBUYW5nZW50XG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThZMmx5WTJ4bElHTjRQU0l4TnlJZ1kzazlJalFpSUhJOUlqSWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRURTFMalU1SURVdU5ERWdOUzQwTVNBeE5TNDFPU0lnTHo0S0lDQThZMmx5WTJ4bElHTjRQU0kwSWlCamVUMGlNVGNpSUhJOUlqSWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRURXlJREl5Y3kwMExUa3RNUzQxTFRFeExqVlRNaklnTVRJZ01qSWdNVElpSUM4K0Nqd3ZjM1puUGdvPSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvdGFuZ2VudFxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IFRhbmdlbnQgPSBjcmVhdGVMdWNpZGVJY29uKCd0YW5nZW50JywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IFRhbmdlbnQ7XG4iLCJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbXG4gIFsnY2lyY2xlJywgeyBjeDogJzEyJywgY3k6ICcxMicsIHI6ICcxMCcsIGtleTogJzFtZ2xheScgfV0sXG4gIFsnY2lyY2xlJywgeyBjeDogJzEyJywgY3k6ICcxMicsIHI6ICc2Jywga2V5OiAnMXZsZnJoJyB9XSxcbiAgWydjaXJjbGUnLCB7IGN4OiAnMTInLCBjeTogJzEyJywgcjogJzInLCBrZXk6ICcxYzlwNzgnIH1dLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIFRhcmdldFxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4WTJseVkyeGxJR040UFNJeE1pSWdZM2s5SWpFeUlpQnlQU0l4TUNJZ0x6NEtJQ0E4WTJseVkyeGxJR040UFNJeE1pSWdZM2s5SWpFeUlpQnlQU0kySWlBdlBnb2dJRHhqYVhKamJHVWdZM2c5SWpFeUlpQmplVDBpTVRJaUlISTlJaklpSUM4K0Nqd3ZjM1puUGdvPSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvdGFyZ2V0XG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgVGFyZ2V0ID0gY3JlYXRlTHVjaWRlSWNvbigndGFyZ2V0JywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IFRhcmdldDtcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgW1xuICAgICdwYXRoJyxcbiAgICB7XG4gICAgICBkOiAnbTEwLjA2NSAxMi40OTMtNi4xOCAxLjMxOGEuOTM0LjkzNCAwIDAgMS0xLjEwOC0uNzAybC0uNTM3LTIuMTVhMS4wNyAxLjA3IDAgMCAxIC42OTEtMS4yNjVsMTMuNTA0LTQuNDQnLFxuICAgICAga2V5OiAnazRxcHR1JyxcbiAgICB9LFxuICBdLFxuICBbJ3BhdGgnLCB7IGQ6ICdtMTMuNTYgMTEuNzQ3IDQuMzMyLS45MjQnLCBrZXk6ICcxOWw4MHonIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdtMTYgMjEtMy4xMDUtNi4yMScsIGtleTogJzdvaDlkJyB9XSxcbiAgW1xuICAgICdwYXRoJyxcbiAgICB7XG4gICAgICBkOiAnTTE2LjQ4NSA1Ljk0YTIgMiAwIDAgMSAxLjQ1NS0yLjQyNWwxLjA5LS4yNzJhMSAxIDAgMCAxIDEuMjEyLjcyN2wxLjUxNSA2LjA2YTEgMSAwIDAgMS0uNzI3IDEuMjEzbC0xLjA5LjI3MmEyIDIgMCAwIDEtMi40MjUtMS40NTV6JyxcbiAgICAgIGtleTogJ203eHA0bScsXG4gICAgfSxcbiAgXSxcbiAgWydwYXRoJywgeyBkOiAnbTYuMTU4IDguNjMzIDEuMTE0IDQuNDU2Jywga2V5OiAnNzRvOTc5JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnbTggMjEgMy4xMDUtNi4yMScsIGtleTogJzFmdnh1dCcgfV0sXG4gIFsnY2lyY2xlJywgeyBjeDogJzEyJywgY3k6ICcxMycsIHI6ICcyJywga2V5OiAnMWMxbGpzJyB9XSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBUZWxlc2NvcGVcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKdE1UQXVNRFkxSURFeUxqUTVNeTAyTGpFNElERXVNekU0WVM0NU16UXVPVE0wSURBZ01DQXhMVEV1TVRBNExTNDNNREpzTFM0MU16Y3RNaTR4TldFeExqQTNJREV1TURjZ01DQXdJREVnTGpZNU1TMHhMakkyTld3eE15NDFNRFF0TkM0ME5DSWdMejRLSUNBOGNHRjBhQ0JrUFNKdE1UTXVOVFlnTVRFdU56UTNJRFF1TXpNeUxTNDVNalFpSUM4K0NpQWdQSEJoZEdnZ1pEMGliVEUySURJeExUTXVNVEExTFRZdU1qRWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRURTJMalE0TlNBMUxqazBZVElnTWlBd0lEQWdNU0F4TGpRMU5TMHlMalF5Tld3eExqQTVMUzR5TnpKaE1TQXhJREFnTUNBeElERXVNakV5TGpjeU4yd3hMalV4TlNBMkxqQTJZVEVnTVNBd0lEQWdNUzB1TnpJM0lERXVNakV6YkMweExqQTVMakkzTW1FeUlESWdNQ0F3SURFdE1pNDBNalV0TVM0ME5UVjZJaUF2UGdvZ0lEeHdZWFJvSUdROUltMDJMakUxT0NBNExqWXpNeUF4TGpFeE5DQTBMalExTmlJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0p0T0NBeU1TQXpMakV3TlMwMkxqSXhJaUF2UGdvZ0lEeGphWEpqYkdVZ1kzZzlJakV5SWlCamVUMGlNVE1pSUhJOUlqSWlJQzgrQ2p3dmMzWm5QZ289KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy90ZWxlc2NvcGVcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBUZWxlc2NvcGUgPSBjcmVhdGVMdWNpZGVJY29uKCd0ZWxlc2NvcGUnLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgVGVsZXNjb3BlO1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbJ2NpcmNsZScsIHsgY3g6ICc0JywgY3k6ICc0JywgcjogJzInLCBrZXk6ICdidDVyYTgnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdtMTQgNSAzLTMgMyAzJywga2V5OiAnMXNvcmlmJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnbTE0IDEwIDMtMyAzIDMnLCBrZXk6ICcxanlpOWgnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTcgMTRWMicsIGtleTogJzh5bXFuaycgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xNyAxNEg3bC01IDhoMjBaJywga2V5OiAnMTNhcjdwJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTggMTR2OCcsIGtleTogJzFnaG1xaycgfV0sXG4gIFsncGF0aCcsIHsgZDogJ205IDE0IDUgOCcsIGtleTogJzEzcGdpNicgfV0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgVGVudFRyZWVcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOFkybHlZMnhsSUdONFBTSTBJaUJqZVQwaU5DSWdjajBpTWlJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0p0TVRRZ05TQXpMVE1nTXlBeklpQXZQZ29nSUR4d1lYUm9JR1E5SW0weE5DQXhNQ0F6TFRNZ015QXpJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHhOeUF4TkZZeUlpQXZQZ29nSUR4d1lYUm9JR1E5SWsweE55QXhORWczYkMwMUlEaG9NakJhSWlBdlBnb2dJRHh3WVhSb0lHUTlJazA0SURFMGRqZ2lJQzgrQ2lBZ1BIQmhkR2dnWkQwaWJUa2dNVFFnTlNBNElpQXZQZ284TDNOMlp6NEspIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL3RlbnQtdHJlZVxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IFRlbnRUcmVlID0gY3JlYXRlTHVjaWRlSWNvbigndGVudC10cmVlJywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IFRlbnRUcmVlO1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdNMy41IDIxIDE0IDMnLCBrZXk6ICcxc3pzdDUnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMjAuNSAyMSAxMCAzJywga2V5OiAnMTMxMGMzJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTE1LjUgMjEgMTIgMTVsLTMuNSA2Jywga2V5OiAnMWRkdGZ3JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTIgMjFoMjAnLCBrZXk6ICcxbnl4OXcnIH1dLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIFRlbnRcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk15NDFJREl4SURFMElETWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRUSXdMalVnTWpFZ01UQWdNeUlnTHo0S0lDQThjR0YwYUNCa1BTSk5NVFV1TlNBeU1TQXhNaUF4Tld3dE15NDFJRFlpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVElnTWpGb01qQWlJQzgrQ2p3dmMzWm5QZ289KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy90ZW50XG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgVGVudCA9IGNyZWF0ZUx1Y2lkZUljb24oJ3RlbnQnLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgVGVudDtcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTEyIDE5aDgnLCBrZXk6ICdiYWVveDgnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdtNCAxNyA2LTYtNi02Jywga2V5OiAnMXluZ3l0JyB9XSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBUZXJtaW5hbFxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTVRJZ01UbG9PQ0lnTHo0S0lDQThjR0YwYUNCa1BTSnROQ0F4TnlBMkxUWXROaTAySWlBdlBnbzhMM04yWno0SykgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvdGVybWluYWxcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBUZXJtaW5hbCA9IGNyZWF0ZUx1Y2lkZUljb24oJ3Rlcm1pbmFsJywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IFRlcm1pbmFsO1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbXG4gICAgJ3BhdGgnLFxuICAgIHsgZDogJ00yMSA3IDYuODIgMjEuMThhMi44MyAyLjgzIDAgMCAxLTMuOTktLjAxYTIuODMgMi44MyAwIDAgMSAwLTRMMTcgMycsIGtleTogJzF1YjZ4dycgfSxcbiAgXSxcbiAgWydwYXRoJywgeyBkOiAnbTE2IDIgNiA2Jywga2V5OiAnMWd3ODdkJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTEyIDE2SDQnLCBrZXk6ICcxY2pmaXAnIH1dLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIFRlc3RUdWJlRGlhZ29uYWxcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1qRWdOeUEyTGpneUlESXhMakU0WVRJdU9ETWdNaTQ0TXlBd0lEQWdNUzB6TGprNUxTNHdNV0V5TGpneklESXVPRE1nTUNBd0lERWdNQzAwVERFM0lETWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaWJURTJJRElnTmlBMklpQXZQZ29nSUR4d1lYUm9JR1E5SWsweE1pQXhOa2cwSWlBdlBnbzhMM04yWno0SykgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvdGVzdC10dWJlLWRpYWdvbmFsXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgVGVzdFR1YmVEaWFnb25hbCA9IGNyZWF0ZUx1Y2lkZUljb24oJ3Rlc3QtdHViZS1kaWFnb25hbCcsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBUZXN0VHViZURpYWdvbmFsO1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdNMTQuNSAydjE3LjVjMCAxLjQtMS4xIDIuNS0yLjUgMi41Yy0xLjQgMC0yLjUtMS4xLTIuNS0yLjVWMicsIGtleTogJzEyNWxueCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ004LjUgMmg3Jywga2V5OiAnY3NueGRsJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTE0LjUgMTZoLTUnLCBrZXk6ICcxb3g4NzUnIH1dLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIFRlc3RUdWJlXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NVFF1TlNBeWRqRTNMalZqTUNBeExqUXRNUzR4SURJdU5TMHlMalVnTWk0MVl5MHhMalFnTUMweUxqVXRNUzR4TFRJdU5TMHlMalZXTWlJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOT0M0MUlESm9OeUlnTHo0S0lDQThjR0YwYUNCa1BTSk5NVFF1TlNBeE5tZ3ROU0lnTHo0S1BDOXpkbWMrQ2c9PSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvdGVzdC10dWJlXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgVGVzdFR1YmUgPSBjcmVhdGVMdWNpZGVJY29uKCd0ZXN0LXR1YmUnLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgVGVzdFR1YmU7XG4iLCJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ005IDJ2MTcuNUEyLjUgMi41IDAgMCAxIDYuNSAyMkEyLjUgMi41IDAgMCAxIDQgMTkuNVYyJywga2V5OiAnMWhqcnF0JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTIwIDJ2MTcuNWEyLjUgMi41IDAgMCAxLTIuNSAyLjVhMi41IDIuNSAwIDAgMS0yLjUtMi41VjInLCBrZXk6ICcxNmxjOG4nIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMyAyaDcnLCBrZXk6ICc3czI5ZDUnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTQgMmg3Jywga2V5OiAnN3NpY2luJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTkgMTZINCcsIGtleTogJzFiZnllMycgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00yMCAxNmgtNScsIGtleTogJ2RkbmpwZScgfV0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgVGVzdFR1YmVzXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5PU0F5ZGpFM0xqVkJNaTQxSURJdU5TQXdJREFnTVNBMkxqVWdNakpCTWk0MUlESXVOU0F3SURBZ01TQTBJREU1TGpWV01pSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk1qQWdNbll4Tnk0MVlUSXVOU0F5TGpVZ01DQXdJREV0TWk0MUlESXVOV0V5TGpVZ01pNDFJREFnTUNBeExUSXVOUzB5TGpWV01pSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk15QXlhRGNpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVEUwSURKb055SWdMejRLSUNBOGNHRjBhQ0JrUFNKTk9TQXhOa2cwSWlBdlBnb2dJRHh3WVhSb0lHUTlJazB5TUNBeE5tZ3ROU0lnTHo0S1BDOXpkbWMrQ2c9PSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvdGVzdC10dWJlc1xuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IFRlc3RUdWJlcyA9IGNyZWF0ZUx1Y2lkZUljb24oJ3Rlc3QtdHViZXMnLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgVGVzdFR1YmVzO1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdNMTIgMjBoLTFhMiAyIDAgMCAxLTItMiAyIDIgMCAwIDEtMiAySDYnLCBrZXk6ICcxNTI4azUnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTMgOGg3YTIgMiAwIDAgMSAyIDJ2NGEyIDIgMCAwIDEtMiAyaC03Jywga2V5OiAnMTNrc3BzJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTUgMTZINGEyIDIgMCAwIDEtMi0ydi00YTIgMiAwIDAgMSAyLTJoMScsIGtleTogJzFuOXJoYicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ002IDRoMWEyIDIgMCAwIDEgMiAyIDIgMiAwIDAgMSAyLTJoMScsIGtleTogJzFtajhyZycgfV0sXG4gIFsncGF0aCcsIHsgZDogJ005IDZ2MTInLCBrZXk6ICd2ZWx5angnIH1dLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIFRleHRDdXJzb3JJbnB1dFxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTVRJZ01qQm9MVEZoTWlBeUlEQWdNQ0F4TFRJdE1pQXlJRElnTUNBd0lERXRNaUF5U0RZaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRFeklEaG9OMkV5SURJZ01DQXdJREVnTWlBeWRqUmhNaUF5SURBZ01DQXhMVElnTW1ndE55SWdMejRLSUNBOGNHRjBhQ0JrUFNKTk5TQXhOa2cwWVRJZ01pQXdJREFnTVMweUxUSjJMVFJoTWlBeUlEQWdNQ0F4SURJdE1tZ3hJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMDJJRFJvTVdFeUlESWdNQ0F3SURFZ01pQXlJRElnTWlBd0lEQWdNU0F5TFRKb01TSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk9TQTJkakV5SWlBdlBnbzhMM04yWno0SykgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvdGV4dC1jdXJzb3ItaW5wdXRcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBUZXh0Q3Vyc29ySW5wdXQgPSBjcmVhdGVMdWNpZGVJY29uKCd0ZXh0LWN1cnNvci1pbnB1dCcsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBUZXh0Q3Vyc29ySW5wdXQ7XG4iLCJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ00xNyA2SDMnLCBrZXk6ICcxNmo5ZWcnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMjEgMTJIOCcsIGtleTogJ3Njb2x6YicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00yMSAxOEg4Jywga2V5OiAnMXdmb3p2JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTMgMTJ2NicsIGtleTogJ2Z2NGM4NycgfV0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgVGV4dFF1b3RlXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NVGNnTmtneklpQXZQZ29nSUR4d1lYUm9JR1E5SWsweU1TQXhNa2c0SWlBdlBnb2dJRHh3WVhSb0lHUTlJazB5TVNBeE9FZzRJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHpJREV5ZGpZaUlDOCtDand2YzNablBnbz0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL3RleHQtcXVvdGVcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBUZXh0UXVvdGUgPSBjcmVhdGVMdWNpZGVJY29uKCd0ZXh0LXF1b3RlJywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IFRleHRRdW90ZTtcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTE3IDIyaC0xYTQgNCAwIDAgMS00LTRWNmE0IDQgMCAwIDEgNC00aDEnLCBrZXk6ICd1dmF4bTknIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNNyAyMmgxYTQgNCAwIDAgMCA0LTR2LTEnLCBrZXk6ICcxMXh5OGQnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNNyAyaDFhNCA0IDAgMCAxIDQgNHYxJywga2V5OiAnMXV3MDZtJyB9XSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBUZXh0Q3Vyc29yXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NVGNnTWpKb0xURmhOQ0EwSURBZ01DQXhMVFF0TkZZMllUUWdOQ0F3SURBZ01TQTBMVFJvTVNJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTnlBeU1tZ3hZVFFnTkNBd0lEQWdNQ0EwTFRSMkxURWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRUY2dNbWd4WVRRZ05DQXdJREFnTVNBMElEUjJNU0lnTHo0S1BDOXpkbWMrQ2c9PSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvdGV4dC1jdXJzb3JcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBUZXh0Q3Vyc29yID0gY3JlYXRlTHVjaWRlSWNvbigndGV4dC1jdXJzb3InLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgVGV4dEN1cnNvcjtcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTIxIDZIMycsIGtleTogJzFqd3E3dicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xMCAxMkgzJywga2V5OiAnMXVsY3lrJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTEwIDE4SDMnLCBrZXk6ICcxMzc2OXQnIH1dLFxuICBbJ2NpcmNsZScsIHsgY3g6ICcxNycsIGN5OiAnMTUnLCByOiAnMycsIGtleTogJzF1cHoyYScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ20yMSAxOS0xLjktMS45Jywga2V5OiAnZHdpN3A4JyB9XSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBUZXh0U2VhcmNoXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NakVnTmtneklpQXZQZ29nSUR4d1lYUm9JR1E5SWsweE1DQXhNa2d6SWlBdlBnb2dJRHh3WVhSb0lHUTlJazB4TUNBeE9FZ3pJaUF2UGdvZ0lEeGphWEpqYkdVZ1kzZzlJakUzSWlCamVUMGlNVFVpSUhJOUlqTWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaWJUSXhJREU1TFRFdU9TMHhMamtpSUM4K0Nqd3ZjM1puUGdvPSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvdGV4dC1zZWFyY2hcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBUZXh0U2VhcmNoID0gY3JlYXRlTHVjaWRlSWNvbigndGV4dC1zZWFyY2gnLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgVGV4dFNlYXJjaDtcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTE0IDIxaDEnLCBrZXk6ICd2OXZ5YnMnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTQgM2gxJywga2V5OiAnMWVjNHlqJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTE5IDNhMiAyIDAgMCAxIDIgMicsIGtleTogJzE4cm05MScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00yMSAxNHYxJywga2V5OiAnMTY5dnVtJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTIxIDE5YTIgMiAwIDAgMS0yIDInLCBrZXk6ICcxajcwNDknIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMjEgOXYxJywga2V5OiAnbXhzbW5lJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTMgMTR2MScsIGtleTogJ3ZuYXR5ZScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00zIDl2MScsIGtleTogJzFyMGRlcScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ001IDIxYTIgMiAwIDAgMS0yLTInLCBrZXk6ICdzYmFmbGQnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNNSAzYTIgMiAwIDAgMC0yIDInLCBrZXk6ICd5NTdhbHAnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNNyAxMmgxMCcsIGtleTogJ2I3dzUyaScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ003IDE2aDYnLCBrZXk6ICcxdnljOW0nIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNNyA4aDgnLCBrZXk6ICcxamJzZjknIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNOSAyMWgxJywga2V5OiAnMTVvN2x6JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTkgM2gxJywga2V5OiAnMXllc3JpJyB9XSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBUZXh0U2VsZWN0XG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NVFFnTWpGb01TSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk1UUWdNMmd4SWlBdlBnb2dJRHh3WVhSb0lHUTlJazB4T1NBellUSWdNaUF3SURBZ01TQXlJRElpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVEl4SURFMGRqRWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRUSXhJREU1WVRJZ01pQXdJREFnTVMweUlESWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRUSXhJRGwyTVNJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTXlBeE5IWXhJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHpJRGwyTVNJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTlNBeU1XRXlJRElnTUNBd0lERXRNaTB5SWlBdlBnb2dJRHh3WVhSb0lHUTlJazAxSUROaE1pQXlJREFnTUNBd0xUSWdNaUlnTHo0S0lDQThjR0YwYUNCa1BTSk5OeUF4TW1neE1DSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk55QXhObWcySWlBdlBnb2dJRHh3WVhSb0lHUTlJazAzSURob09DSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk9TQXlNV2d4SWlBdlBnb2dJRHh3WVhSb0lHUTlJazA1SUROb01TSWdMejRLUEM5emRtYytDZz09KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy90ZXh0LXNlbGVjdFxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IFRleHRTZWxlY3QgPSBjcmVhdGVMdWNpZGVJY29uKCd0ZXh0LXNlbGVjdCcsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBUZXh0U2VsZWN0O1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdNMTUgMThIMycsIGtleTogJ29sb3dxcCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xNyA2SDMnLCBrZXk6ICcxNmo5ZWcnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMjEgMTJIMycsIGtleTogJzJhdm96MCcgfV0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgVGV4dFxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTVRVZ01UaElNeUlnTHo0S0lDQThjR0YwYUNCa1BTSk5NVGNnTmtneklpQXZQZ29nSUR4d1lYUm9JR1E5SWsweU1TQXhNa2d6SWlBdlBnbzhMM04yWno0SykgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvdGV4dFxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IFRleHQgPSBjcmVhdGVMdWNpZGVJY29uKCd0ZXh0JywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IFRleHQ7XG4iLCJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ00yIDEwczMtMyAzLTgnLCBrZXk6ICczeGlpZjAnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMjIgMTBzLTMtMy0zLTgnLCBrZXk6ICdpb2FhNXEnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTAgMmMwIDQuNC0zLjYgOC04IDgnLCBrZXk6ICcxNmZrcGknIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTQgMmMwIDQuNCAzLjYgOCA4IDgnLCBrZXk6ICdiOWV1bHEnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMiAxMHMyIDIgMiA1Jywga2V5OiAnMWF1MWxiJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTIyIDEwcy0yIDItMiA1Jywga2V5OiAncWkyeTVlJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTggMTVoOCcsIGtleTogJzQ1bjRyJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTIgMjJ2LTFhMiAyIDAgMCAxIDItMmg0YTIgMiAwIDAgMSAyIDJ2MScsIGtleTogJzF2c2MybScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xNCAyMnYtMWEyIDIgMCAwIDEgMi0yaDRhMiAyIDAgMCAxIDIgMnYxJywga2V5OiAnaHJoYTR1JyB9XSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBUaGVhdGVyXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NaUF4TUhNekxUTWdNeTA0SWlBdlBnb2dJRHh3WVhSb0lHUTlJazB5TWlBeE1ITXRNeTB6TFRNdE9DSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk1UQWdNbU13SURRdU5DMHpMallnT0MwNElEZ2lJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRURTBJREpqTUNBMExqUWdNeTQySURnZ09DQTRJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHlJREV3Y3pJZ01pQXlJRFVpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVEl5SURFd2N5MHlJREl0TWlBMUlpQXZQZ29nSUR4d1lYUm9JR1E5SWswNElERTFhRGdpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVElnTWpKMkxURmhNaUF5SURBZ01DQXhJREl0TW1nMFlUSWdNaUF3SURBZ01TQXlJREoyTVNJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTVRRZ01qSjJMVEZoTWlBeUlEQWdNQ0F4SURJdE1tZzBZVElnTWlBd0lEQWdNU0F5SURKMk1TSWdMejRLUEM5emRtYytDZz09KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy90aGVhdGVyXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgVGhlYXRlciA9IGNyZWF0ZUx1Y2lkZUljb24oJ3RoZWF0ZXInLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgVGhlYXRlcjtcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnbTEwIDIwLTEuMjUtMi41TDYgMTgnLCBrZXk6ICcxOGZyY2InIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTAgNCA4Ljc1IDYuNSA2IDYnLCBrZXk6ICc3bWdoeTMnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTAuNTg1IDE1SDEwJywga2V5OiAnNG5xdWxwJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTIgMTJoNi41TDEwIDknLCBrZXk6ICdrdjl6NG4nIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMjAgMTQuNTRhNCA0IDAgMSAxLTQgMFY0YTIgMiAwIDAgMSA0IDB6Jywga2V5OiAneXUwdTJ6JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnbTQgMTAgMS41IDJMNCAxNCcsIGtleTogJ2s5ZW5waicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ203IDIxIDMtNi0xLjUtMycsIGtleTogJ2o4aGI5dScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ203IDMgMyA2aDInLCBrZXk6ICcxYmJxZ3EnIH1dLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIFRoZXJtb21ldGVyU25vd2ZsYWtlXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSnRNVEFnTWpBdE1TNHlOUzB5TGpWTU5pQXhPQ0lnTHo0S0lDQThjR0YwYUNCa1BTSk5NVEFnTkNBNExqYzFJRFl1TlNBMklEWWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRURXdMalU0TlNBeE5VZ3hNQ0lnTHo0S0lDQThjR0YwYUNCa1BTSk5NaUF4TW1nMkxqVk1NVEFnT1NJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTWpBZ01UUXVOVFJoTkNBMElEQWdNU0F4TFRRZ01GWTBZVElnTWlBd0lEQWdNU0EwSURCNklpQXZQZ29nSUR4d1lYUm9JR1E5SW0wMElERXdJREV1TlNBeVREUWdNVFFpSUM4K0NpQWdQSEJoZEdnZ1pEMGliVGNnTWpFZ015MDJMVEV1TlMweklpQXZQZ29nSUR4d1lYUm9JR1E5SW0wM0lETWdNeUEyYURJaUlDOCtDand2YzNablBnbz0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL3RoZXJtb21ldGVyLXNub3dmbGFrZVxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IFRoZXJtb21ldGVyU25vd2ZsYWtlID0gY3JlYXRlTHVjaWRlSWNvbigndGhlcm1vbWV0ZXItc25vd2ZsYWtlJywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IFRoZXJtb21ldGVyU25vd2ZsYWtlO1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdNMTIgOWE0IDQgMCAwIDAtMiA3LjUnLCBrZXk6ICcxanZzcTYnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTIgM3YyJywga2V5OiAnMXcyMm9sJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnbTYuNiAxOC40LTEuNCAxLjQnLCBrZXk6ICd3MnlpZGonIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMjAgNHYxMC41NGE0IDQgMCAxIDEtNCAwVjRhMiAyIDAgMCAxIDQgMFonLCBrZXk6ICdpb2Y2eTUnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNNCAxM0gyJywga2V5OiAnMTE4bGU0JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTYuMzQgNy4zNCA0LjkzIDUuOTMnLCBrZXk6ICcxYnJkNTEnIH1dLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIFRoZXJtb21ldGVyU3VuXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NVElnT1dFMElEUWdNQ0F3SURBdE1pQTNMalVpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVEV5SUROMk1pSWdMejRLSUNBOGNHRjBhQ0JrUFNKdE5pNDJJREU0TGpRdE1TNDBJREV1TkNJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTWpBZ05IWXhNQzQxTkdFMElEUWdNQ0F4SURFdE5DQXdWalJoTWlBeUlEQWdNQ0F4SURRZ01Gb2lJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRUUWdNVE5JTWlJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTmk0ek5DQTNMak0wSURRdU9UTWdOUzQ1TXlJZ0x6NEtQQzl6ZG1jK0NnPT0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL3RoZXJtb21ldGVyLXN1blxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IFRoZXJtb21ldGVyU3VuID0gY3JlYXRlTHVjaWRlSWNvbigndGhlcm1vbWV0ZXItc3VuJywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IFRoZXJtb21ldGVyU3VuO1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdNMTQgNHYxMC41NGE0IDQgMCAxIDEtNCAwVjRhMiAyIDAgMCAxIDQgMFonLCBrZXk6ICcxN2p6ZXYnIH1dLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIFRoZXJtb21ldGVyXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NVFFnTkhZeE1DNDFOR0UwSURRZ01DQXhJREV0TkNBd1ZqUmhNaUF5SURBZ01DQXhJRFFnTUZvaUlDOCtDand2YzNablBnbz0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL3RoZXJtb21ldGVyXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgVGhlcm1vbWV0ZXIgPSBjcmVhdGVMdWNpZGVJY29uKCd0aGVybW9tZXRlcicsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBUaGVybW9tZXRlcjtcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTE3IDE0VjInLCBrZXk6ICc4eW1xbmsnIH1dLFxuICBbXG4gICAgJ3BhdGgnLFxuICAgIHtcbiAgICAgIGQ6ICdNOSAxOC4xMiAxMCAxNEg0LjE3YTIgMiAwIDAgMS0xLjkyLTIuNTZsMi4zMy04QTIgMiAwIDAgMSA2LjUgMkgyMGEyIDIgMCAwIDEgMiAydjhhMiAyIDAgMCAxLTIgMmgtMi43NmEyIDIgMCAwIDAtMS43OSAxLjExTDEyIDIyYTMuMTMgMy4xMyAwIDAgMS0zLTMuODhaJyxcbiAgICAgIGtleTogJ202MW03NycsXG4gICAgfSxcbiAgXSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBUaHVtYnNEb3duXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NVGNnTVRSV01pSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk9TQXhPQzR4TWlBeE1DQXhORWcwTGpFM1lUSWdNaUF3SURBZ01TMHhMamt5TFRJdU5UWnNNaTR6TXkwNFFUSWdNaUF3SURBZ01TQTJMalVnTWtneU1HRXlJRElnTUNBd0lERWdNaUF5ZGpoaE1pQXlJREFnTUNBeExUSWdNbWd0TWk0M05tRXlJRElnTUNBd0lEQXRNUzQzT1NBeExqRXhUREV5SURJeVlUTXVNVE1nTXk0eE15QXdJREFnTVMwekxUTXVPRGhhSWlBdlBnbzhMM04yWno0SykgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvdGh1bWJzLWRvd25cbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBUaHVtYnNEb3duID0gY3JlYXRlTHVjaWRlSWNvbigndGh1bWJzLWRvd24nLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgVGh1bWJzRG93bjtcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTcgMTB2MTInLCBrZXk6ICcxcWM5M24nIH1dLFxuICBbXG4gICAgJ3BhdGgnLFxuICAgIHtcbiAgICAgIGQ6ICdNMTUgNS44OCAxNCAxMGg1LjgzYTIgMiAwIDAgMSAxLjkyIDIuNTZsLTIuMzMgOEEyIDIgMCAwIDEgMTcuNSAyMkg0YTIgMiAwIDAgMS0yLTJ2LThhMiAyIDAgMCAxIDItMmgyLjc2YTIgMiAwIDAgMCAxLjc5LTEuMTFMMTIgMmEzLjEzIDMuMTMgMCAwIDEgMyAzLjg4WicsXG4gICAgICBrZXk6ICdlbW1tY3InLFxuICAgIH0sXG4gIF0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgVGh1bWJzVXBcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk55QXhNSFl4TWlJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTVRVZ05TNDRPQ0F4TkNBeE1HZzFMamd6WVRJZ01pQXdJREFnTVNBeExqa3lJREl1TlRac0xUSXVNek1nT0VFeUlESWdNQ0F3SURFZ01UY3VOU0F5TWtnMFlUSWdNaUF3SURBZ01TMHlMVEoyTFRoaE1pQXlJREFnTUNBeElESXRNbWd5TGpjMllUSWdNaUF3SURBZ01DQXhMamM1TFRFdU1URk1NVElnTW1FekxqRXpJRE11TVRNZ01DQXdJREVnTXlBekxqZzRXaUlnTHo0S1BDOXpkbWMrQ2c9PSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvdGh1bWJzLXVwXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgVGh1bWJzVXAgPSBjcmVhdGVMdWNpZGVJY29uKCd0aHVtYnMtdXAnLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgVGh1bWJzVXA7XG4iLCJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbXG4gIFtcbiAgICAncGF0aCcsXG4gICAge1xuICAgICAgZDogJ00yIDlhMyAzIDAgMCAxIDAgNnYyYTIgMiAwIDAgMCAyIDJoMTZhMiAyIDAgMCAwIDItMnYtMmEzIDMgMCAwIDEgMC02VjdhMiAyIDAgMCAwLTItMkg0YTIgMiAwIDAgMC0yIDJaJyxcbiAgICAgIGtleTogJ3FuODRsMCcsXG4gICAgfSxcbiAgXSxcbiAgWydwYXRoJywgeyBkOiAnbTkgMTIgMiAyIDQtNCcsIGtleTogJ2R6bW03NCcgfV0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgVGlja2V0Q2hlY2tcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1pQTVZVE1nTXlBd0lEQWdNU0F3SURaMk1tRXlJRElnTUNBd0lEQWdNaUF5YURFMllUSWdNaUF3SURBZ01DQXlMVEoyTFRKaE15QXpJREFnTUNBeElEQXRObFkzWVRJZ01pQXdJREFnTUMweUxUSklOR0V5SURJZ01DQXdJREF0TWlBeVdpSWdMejRLSUNBOGNHRjBhQ0JrUFNKdE9TQXhNaUF5SURJZ05DMDBJaUF2UGdvOEwzTjJaejRLKSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy90aWNrZXQtY2hlY2tcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBUaWNrZXRDaGVjayA9IGNyZWF0ZUx1Y2lkZUljb24oJ3RpY2tldC1jaGVjaycsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBUaWNrZXRDaGVjaztcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgW1xuICAgICdwYXRoJyxcbiAgICB7XG4gICAgICBkOiAnTTIgOWEzIDMgMCAwIDEgMCA2djJhMiAyIDAgMCAwIDIgMmgxNmEyIDIgMCAwIDAgMi0ydi0yYTMgMyAwIDAgMSAwLTZWN2EyIDIgMCAwIDAtMi0ySDRhMiAyIDAgMCAwLTIgMlonLFxuICAgICAga2V5OiAncW44NGwwJyxcbiAgICB9LFxuICBdLFxuICBbJ3BhdGgnLCB7IGQ6ICdNOSAxMmg2Jywga2V5OiAnMWM1MmNxJyB9XSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBUaWNrZXRNaW51c1xuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTWlBNVlUTWdNeUF3SURBZ01TQXdJRFoyTW1FeUlESWdNQ0F3SURBZ01pQXlhREUyWVRJZ01pQXdJREFnTUNBeUxUSjJMVEpoTXlBeklEQWdNQ0F4SURBdE5sWTNZVElnTWlBd0lEQWdNQzB5TFRKSU5HRXlJRElnTUNBd0lEQXRNaUF5V2lJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOT1NBeE1tZzJJaUF2UGdvOEwzTjJaejRLKSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy90aWNrZXQtbWludXNcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBUaWNrZXRNaW51cyA9IGNyZWF0ZUx1Y2lkZUljb24oJ3RpY2tldC1taW51cycsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBUaWNrZXRNaW51cztcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgW1xuICAgICdwYXRoJyxcbiAgICB7XG4gICAgICBkOiAnTTIgOWEzIDMgMCAxIDEgMCA2djJhMiAyIDAgMCAwIDIgMmgxNmEyIDIgMCAwIDAgMi0ydi0yYTMgMyAwIDEgMSAwLTZWN2EyIDIgMCAwIDAtMi0ySDRhMiAyIDAgMCAwLTIgMlonLFxuICAgICAga2V5OiAnMWw0OG5zJyxcbiAgICB9LFxuICBdLFxuICBbJ3BhdGgnLCB7IGQ6ICdNOSA5aC4wMScsIGtleTogJzFxNW1lNicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ20xNSA5LTYgNicsIGtleTogJzF1emh2cicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xNSAxNWguMDEnLCBrZXk6ICdscWJwM2snIH1dLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIFRpY2tldFBlcmNlbnRcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1pQTVZVE1nTXlBd0lERWdNU0F3SURaMk1tRXlJRElnTUNBd0lEQWdNaUF5YURFMllUSWdNaUF3SURBZ01DQXlMVEoyTFRKaE15QXpJREFnTVNBeElEQXRObFkzWVRJZ01pQXdJREFnTUMweUxUSklOR0V5SURJZ01DQXdJREF0TWlBeVdpSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk9TQTVhQzR3TVNJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0p0TVRVZ09TMDJJRFlpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVEUxSURFMWFDNHdNU0lnTHo0S1BDOXpkbWMrQ2c9PSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvdGlja2V0LXBlcmNlbnRcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBUaWNrZXRQZXJjZW50ID0gY3JlYXRlTHVjaWRlSWNvbigndGlja2V0LXBlcmNlbnQnLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgVGlja2V0UGVyY2VudDtcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgW1xuICAgICdwYXRoJyxcbiAgICB7XG4gICAgICBkOiAnTTIgOWEzIDMgMCAwIDEgMCA2djJhMiAyIDAgMCAwIDIgMmgxNmEyIDIgMCAwIDAgMi0ydi0yYTMgMyAwIDAgMSAwLTZWN2EyIDIgMCAwIDAtMi0ySDRhMiAyIDAgMCAwLTIgMlonLFxuICAgICAga2V5OiAncW44NGwwJyxcbiAgICB9LFxuICBdLFxuICBbJ3BhdGgnLCB7IGQ6ICdNOSAxMmg2Jywga2V5OiAnMWM1MmNxJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTEyIDl2NicsIGtleTogJzE5OWsybycgfV0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgVGlja2V0UGx1c1xuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTWlBNVlUTWdNeUF3SURBZ01TQXdJRFoyTW1FeUlESWdNQ0F3SURBZ01pQXlhREUyWVRJZ01pQXdJREFnTUNBeUxUSjJMVEpoTXlBeklEQWdNQ0F4SURBdE5sWTNZVElnTWlBd0lEQWdNQzB5TFRKSU5HRXlJRElnTUNBd0lEQXRNaUF5V2lJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOT1NBeE1tZzJJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHhNaUE1ZGpZaUlDOCtDand2YzNablBnbz0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL3RpY2tldC1wbHVzXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgVGlja2V0UGx1cyA9IGNyZWF0ZUx1Y2lkZUljb24oJ3RpY2tldC1wbHVzJywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IFRpY2tldFBsdXM7XG4iLCJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbXG4gIFtcbiAgICAncGF0aCcsXG4gICAge1xuICAgICAgZDogJ00yIDlhMyAzIDAgMCAxIDAgNnYyYTIgMiAwIDAgMCAyIDJoMTZhMiAyIDAgMCAwIDItMnYtMmEzIDMgMCAwIDEgMC02VjdhMiAyIDAgMCAwLTItMkg0YTIgMiAwIDAgMC0yIDJaJyxcbiAgICAgIGtleTogJ3FuODRsMCcsXG4gICAgfSxcbiAgXSxcbiAgWydwYXRoJywgeyBkOiAnbTkuNSAxNC41IDUtNScsIGtleTogJ3F2aXFmYScgfV0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgVGlja2V0U2xhc2hcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1pQTVZVE1nTXlBd0lEQWdNU0F3SURaMk1tRXlJRElnTUNBd0lEQWdNaUF5YURFMllUSWdNaUF3SURBZ01DQXlMVEoyTFRKaE15QXpJREFnTUNBeElEQXRObFkzWVRJZ01pQXdJREFnTUMweUxUSklOR0V5SURJZ01DQXdJREF0TWlBeVdpSWdMejRLSUNBOGNHRjBhQ0JrUFNKdE9TNDFJREUwTGpVZ05TMDFJaUF2UGdvOEwzTjJaejRLKSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy90aWNrZXQtc2xhc2hcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBUaWNrZXRTbGFzaCA9IGNyZWF0ZUx1Y2lkZUljb24oJ3RpY2tldC1zbGFzaCcsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBUaWNrZXRTbGFzaDtcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgW1xuICAgICdwYXRoJyxcbiAgICB7XG4gICAgICBkOiAnTTIgOWEzIDMgMCAwIDEgMCA2djJhMiAyIDAgMCAwIDIgMmgxNmEyIDIgMCAwIDAgMi0ydi0yYTMgMyAwIDAgMSAwLTZWN2EyIDIgMCAwIDAtMi0ySDRhMiAyIDAgMCAwLTIgMlonLFxuICAgICAga2V5OiAncW44NGwwJyxcbiAgICB9LFxuICBdLFxuICBbJ3BhdGgnLCB7IGQ6ICdtOS41IDE0LjUgNS01Jywga2V5OiAncXZpcWZhJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnbTkuNSA5LjUgNSA1Jywga2V5OiAnMThudDR3JyB9XSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBUaWNrZXRYXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NaUE1WVRNZ015QXdJREFnTVNBd0lEWjJNbUV5SURJZ01DQXdJREFnTWlBeWFERTJZVElnTWlBd0lEQWdNQ0F5TFRKMkxUSmhNeUF6SURBZ01DQXhJREF0TmxZM1lUSWdNaUF3SURBZ01DMHlMVEpJTkdFeUlESWdNQ0F3SURBdE1pQXlXaUlnTHo0S0lDQThjR0YwYUNCa1BTSnRPUzQxSURFMExqVWdOUzAxSWlBdlBnb2dJRHh3WVhSb0lHUTlJbTA1TGpVZ09TNDFJRFVnTlNJZ0x6NEtQQzl6ZG1jK0NnPT0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL3RpY2tldC14XG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgVGlja2V0WCA9IGNyZWF0ZUx1Y2lkZUljb24oJ3RpY2tldC14JywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IFRpY2tldFg7XG4iLCJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbXG4gIFtcbiAgICAncGF0aCcsXG4gICAge1xuICAgICAgZDogJ00yIDlhMyAzIDAgMCAxIDAgNnYyYTIgMiAwIDAgMCAyIDJoMTZhMiAyIDAgMCAwIDItMnYtMmEzIDMgMCAwIDEgMC02VjdhMiAyIDAgMCAwLTItMkg0YTIgMiAwIDAgMC0yIDJaJyxcbiAgICAgIGtleTogJ3FuODRsMCcsXG4gICAgfSxcbiAgXSxcbiAgWydwYXRoJywgeyBkOiAnTTEzIDV2MicsIGtleTogJ2R5emMzbycgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xMyAxN3YyJywga2V5OiAnMW9udDBkJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTEzIDExdjInLCBrZXk6ICcxd2pqeGknIH1dLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIFRpY2tldFxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTWlBNVlUTWdNeUF3SURBZ01TQXdJRFoyTW1FeUlESWdNQ0F3SURBZ01pQXlhREUyWVRJZ01pQXdJREFnTUNBeUxUSjJMVEpoTXlBeklEQWdNQ0F4SURBdE5sWTNZVElnTWlBd0lEQWdNQzB5TFRKSU5HRXlJRElnTUNBd0lEQXRNaUF5V2lJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTVRNZ05YWXlJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHhNeUF4TjNZeUlpQXZQZ29nSUR4d1lYUm9JR1E5SWsweE15QXhNWFl5SWlBdlBnbzhMM04yWno0SykgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvdGlja2V0XG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgVGlja2V0ID0gY3JlYXRlTHVjaWRlSWNvbigndGlja2V0JywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IFRpY2tldDtcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTEwLjUgMTdoMS4yMjdhMiAyIDAgMCAwIDEuMzQ1LS41MkwxOCAxMicsIGtleTogJzE2bXV4bCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ20xMiAxMy41IDMuNzUuNScsIGtleTogJzFpOXFoaycgfV0sXG4gIFsncGF0aCcsIHsgZDogJ200LjUgOCAxMC41OC01LjA2YTEgMSAwIDAgMSAxLjM0Mi40ODhMMTguNSA4Jywga2V5OiAnMTJsZzVwJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTYgMTBWOCcsIGtleTogJzF5NDFobicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ002IDE0djEnLCBrZXk6ICdjYW8ydGYnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNNiAxOXYyJywga2V5OiAnMWxvaGE2JyB9XSxcbiAgWydyZWN0JywgeyB4OiAnMicsIHk6ICc4Jywgd2lkdGg6ICcyMCcsIGhlaWdodDogJzEzJywgcng6ICcyJywga2V5OiAncDNiejVsJyB9XSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBUaWNrZXRzUGxhbmVcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1UQXVOU0F4TjJneExqSXlOMkV5SURJZ01DQXdJREFnTVM0ek5EVXRMalV5VERFNElERXlJaUF2UGdvZ0lEeHdZWFJvSUdROUltMHhNaUF4TXk0MUlETXVOelV1TlNJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0p0TkM0MUlEZ2dNVEF1TlRndE5TNHdObUV4SURFZ01DQXdJREVnTVM0ek5ESXVORGc0VERFNExqVWdPQ0lnTHo0S0lDQThjR0YwYUNCa1BTSk5OaUF4TUZZNElpQXZQZ29nSUR4d1lYUm9JR1E5SWswMklERTBkakVpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVFlnTVRsMk1pSWdMejRLSUNBOGNtVmpkQ0I0UFNJeUlpQjVQU0k0SWlCM2FXUjBhRDBpTWpBaUlHaGxhV2RvZEQwaU1UTWlJSEo0UFNJeUlpQXZQZ284TDNOMlp6NEspIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL3RpY2tldHMtcGxhbmVcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBUaWNrZXRzUGxhbmUgPSBjcmVhdGVMdWNpZGVJY29uKCd0aWNrZXRzLXBsYW5lJywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IFRpY2tldHNQbGFuZTtcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnbTQuNSA4IDEwLjU4LTUuMDZhMSAxIDAgMCAxIDEuMzQyLjQ4OEwxOC41IDgnLCBrZXk6ICcxMmxnNXAnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNNiAxMFY4Jywga2V5OiAnMXk0MWhuJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTYgMTR2MScsIGtleTogJ2NhbzJ0ZicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ002IDE5djInLCBrZXk6ICcxbG9oYTYnIH1dLFxuICBbJ3JlY3QnLCB7IHg6ICcyJywgeTogJzgnLCB3aWR0aDogJzIwJywgaGVpZ2h0OiAnMTMnLCByeDogJzInLCBrZXk6ICdwM2J6NWwnIH1dLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIFRpY2tldHNcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKdE5DNDFJRGdnTVRBdU5UZ3ROUzR3Tm1FeElERWdNQ0F3SURFZ01TNHpOREl1TkRnNFRERTRMalVnT0NJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTmlBeE1GWTRJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMDJJREUwZGpFaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRZZ01UbDJNaUlnTHo0S0lDQThjbVZqZENCNFBTSXlJaUI1UFNJNElpQjNhV1IwYUQwaU1qQWlJR2hsYVdkb2REMGlNVE1pSUhKNFBTSXlJaUF2UGdvOEwzTjJaejRLKSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy90aWNrZXRzXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgVGlja2V0cyA9IGNyZWF0ZUx1Y2lkZUljb24oJ3RpY2tldHMnLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgVGlja2V0cztcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTEwIDJoNCcsIGtleTogJ24xYWJpdycgfV0sXG4gIFsncGF0aCcsIHsgZDogJ000LjYgMTFhOCA4IDAgMCAwIDEuNyA4LjcgOCA4IDAgMCAwIDguNyAxLjcnLCBrZXk6ICcxMGhlMDUnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNNy40IDcuNGE4IDggMCAwIDEgMTAuMyAxIDggOCAwIDAgMSAuOSAxMC4yJywga2V5OiAnMTVmN3NoJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnbTIgMiAyMCAyMCcsIGtleTogJzFvb2V3eScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xMiAxMnYtMicsIGtleTogJ2Z3b2tlNicgfV0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgVGltZXJPZmZcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1UQWdNbWcwSWlBdlBnb2dJRHh3WVhSb0lHUTlJazAwTGpZZ01URmhPQ0E0SURBZ01DQXdJREV1TnlBNExqY2dPQ0E0SURBZ01DQXdJRGd1TnlBeExqY2lJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRUY3VOQ0EzTGpSaE9DQTRJREFnTUNBeElERXdMak1nTVNBNElEZ2dNQ0F3SURFZ0xqa2dNVEF1TWlJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0p0TWlBeUlESXdJREl3SWlBdlBnb2dJRHh3WVhSb0lHUTlJazB4TWlBeE1uWXRNaUlnTHo0S1BDOXpkbWMrQ2c9PSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvdGltZXItb2ZmXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgVGltZXJPZmYgPSBjcmVhdGVMdWNpZGVJY29uKCd0aW1lci1vZmYnLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgVGltZXJPZmY7XG4iLCJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ00xMCAyaDQnLCBrZXk6ICduMWFiaXcnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTIgMTR2LTQnLCBrZXk6ICcxZXZwbnUnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNNCAxM2E4IDggMCAwIDEgOC03IDggOCAwIDEgMS01LjMgMTRMNCAxNy42Jywga2V5OiAnMXRzOTZnJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTkgMTdINHY1Jywga2V5OiAnOHQ1YXYnIH1dLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIFRpbWVyUmVzZXRcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1UQWdNbWcwSWlBdlBnb2dJRHh3WVhSb0lHUTlJazB4TWlBeE5IWXROQ0lnTHo0S0lDQThjR0YwYUNCa1BTSk5OQ0F4TTJFNElEZ2dNQ0F3SURFZ09DMDNJRGdnT0NBd0lERWdNUzAxTGpNZ01UUk1OQ0F4Tnk0MklpQXZQZ29nSUR4d1lYUm9JR1E5SWswNUlERTNTRFIyTlNJZ0x6NEtQQzl6ZG1jK0NnPT0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL3RpbWVyLXJlc2V0XG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgVGltZXJSZXNldCA9IGNyZWF0ZUx1Y2lkZUljb24oJ3RpbWVyLXJlc2V0JywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IFRpbWVyUmVzZXQ7XG4iLCJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbXG4gIFsnbGluZScsIHsgeDE6ICcxMCcsIHgyOiAnMTQnLCB5MTogJzInLCB5MjogJzInLCBrZXk6ICcxNHZhcTgnIH1dLFxuICBbJ2xpbmUnLCB7IHgxOiAnMTInLCB4MjogJzE1JywgeTE6ICcxNCcsIHkyOiAnMTEnLCBrZXk6ICcxN2ZkaXUnIH1dLFxuICBbJ2NpcmNsZScsIHsgY3g6ICcxMicsIGN5OiAnMTQnLCByOiAnOCcsIGtleTogJzFlMXUwbycgfV0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgVGltZXJcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGJHbHVaU0I0TVQwaU1UQWlJSGd5UFNJeE5DSWdlVEU5SWpJaUlIa3lQU0l5SWlBdlBnb2dJRHhzYVc1bElIZ3hQU0l4TWlJZ2VESTlJakUxSWlCNU1UMGlNVFFpSUhreVBTSXhNU0lnTHo0S0lDQThZMmx5WTJ4bElHTjRQU0l4TWlJZ1kzazlJakUwSWlCeVBTSTRJaUF2UGdvOEwzTjJaejRLKSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy90aW1lclxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IFRpbWVyID0gY3JlYXRlTHVjaWRlSWNvbigndGltZXInLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgVGltZXI7XG4iLCJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbXG4gIFsnY2lyY2xlJywgeyBjeDogJzknLCBjeTogJzEyJywgcjogJzMnLCBrZXk6ICd1M2p3b3InIH1dLFxuICBbJ3JlY3QnLCB7IHdpZHRoOiAnMjAnLCBoZWlnaHQ6ICcxNCcsIHg6ICcyJywgeTogJzUnLCByeDogJzcnLCBrZXk6ICdnN2thbDInIH1dLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIFRvZ2dsZUxlZnRcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOFkybHlZMnhsSUdONFBTSTVJaUJqZVQwaU1USWlJSEk5SWpNaUlDOCtDaUFnUEhKbFkzUWdkMmxrZEdnOUlqSXdJaUJvWldsbmFIUTlJakUwSWlCNFBTSXlJaUI1UFNJMUlpQnllRDBpTnlJZ0x6NEtQQzl6ZG1jK0NnPT0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL3RvZ2dsZS1sZWZ0XG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgVG9nZ2xlTGVmdCA9IGNyZWF0ZUx1Y2lkZUljb24oJ3RvZ2dsZS1sZWZ0JywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IFRvZ2dsZUxlZnQ7XG4iLCJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbXG4gIFsnY2lyY2xlJywgeyBjeDogJzE1JywgY3k6ICcxMicsIHI6ICczJywga2V5OiAnMWFmdTByJyB9XSxcbiAgWydyZWN0JywgeyB3aWR0aDogJzIwJywgaGVpZ2h0OiAnMTQnLCB4OiAnMicsIHk6ICc1Jywgcng6ICc3Jywga2V5OiAnZzdrYWwyJyB9XSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBUb2dnbGVSaWdodFxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4WTJseVkyeGxJR040UFNJeE5TSWdZM2s5SWpFeUlpQnlQU0l6SWlBdlBnb2dJRHh5WldOMElIZHBaSFJvUFNJeU1DSWdhR1ZwWjJoMFBTSXhOQ0lnZUQwaU1pSWdlVDBpTlNJZ2NuZzlJamNpSUM4K0Nqd3ZjM1puUGdvPSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvdG9nZ2xlLXJpZ2h0XG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgVG9nZ2xlUmlnaHQgPSBjcmVhdGVMdWNpZGVJY29uKCd0b2dnbGUtcmlnaHQnLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgVG9nZ2xlUmlnaHQ7XG4iLCJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbXG4gIFtcbiAgICAncGF0aCcsXG4gICAge1xuICAgICAgZDogJ003IDEyaDEzYTEgMSAwIDAgMSAxIDEgNSA1IDAgMCAxLTUgNWgtLjU5OGEuNS41IDAgMCAwLS40MjQuNzY1bDEuNTQ0IDIuNDdhLjUuNSAwIDAgMS0uNDI0Ljc2NUg1LjQwMmEuNS41IDAgMCAxLS40MjQtLjc2NUw3IDE4JyxcbiAgICAgIGtleTogJ2tjNGtxcicsXG4gICAgfSxcbiAgXSxcbiAgWydwYXRoJywgeyBkOiAnTTggMThhNSA1IDAgMCAxLTUtNVY0YTIgMiAwIDAgMSAyLTJoOGEyIDIgMCAwIDEgMiAydjgnLCBrZXk6ICcxdHFzNTcnIH1dLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIFRvaWxldFxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTnlBeE1tZ3hNMkV4SURFZ01DQXdJREVnTVNBeElEVWdOU0F3SURBZ01TMDFJRFZvTFM0MU9UaGhMalV1TlNBd0lEQWdNQzB1TkRJMExqYzJOV3d4TGpVME5DQXlMalEzWVM0MUxqVWdNQ0F3SURFdExqUXlOQzQzTmpWSU5TNDBNREpoTGpVdU5TQXdJREFnTVMwdU5ESTBMUzQzTmpWTU55QXhPQ0lnTHo0S0lDQThjR0YwYUNCa1BTSk5PQ0F4T0dFMUlEVWdNQ0F3SURFdE5TMDFWalJoTWlBeUlEQWdNQ0F4SURJdE1tZzRZVElnTWlBd0lEQWdNU0F5SURKMk9DSWdMejRLUEM5emRtYyspIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL3RvaWxldFxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IFRvaWxldCA9IGNyZWF0ZUx1Y2lkZUljb24oJ3RvaWxldCcsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBUb2lsZXQ7XG4iLCJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ00xMCAxNWg0Jywga2V5OiAnMTkydWVnJyB9XSxcbiAgW1xuICAgICdwYXRoJyxcbiAgICB7XG4gICAgICBkOiAnbTE0LjgxNyAxMC45OTUtLjk3MS0xLjQ1IDEuMDM0LTEuMjMyYTIgMiAwIDAgMC0yLjAyNS0zLjIzOGwtMS44Mi4zNjRMOS45MSAzLjg4NWEyIDIgMCAwIDAtMy42MjUuNzQ4TDYuMTQxIDYuNTVsLTEuNzI1LjQyNmEyIDIgMCAwIDAtLjE5IDMuNzU2bC42NTcuMjcnLFxuICAgICAga2V5OiAneGJudW1yJyxcbiAgICB9LFxuICBdLFxuICBbXG4gICAgJ3BhdGgnLFxuICAgIHtcbiAgICAgIGQ6ICdtMTguODIyIDEwLjk5NSAyLjI2LTUuMzhhMSAxIDAgMCAwLS41NTctMS4zMThMMTYuOTU0IDIuOWExIDEgMCAwIDAtMS4yODEuNTMzbC0uOTI0IDIuMTIyJyxcbiAgICAgIGtleTogJ2VhdzdnYycsXG4gICAgfSxcbiAgXSxcbiAgW1xuICAgICdwYXRoJyxcbiAgICB7XG4gICAgICBkOiAnTTQgMTIuMDA2QTEgMSAwIDAgMSA0Ljk5NCAxMUgxOWExIDEgMCAwIDEgMSAxdjdhMiAyIDAgMCAxLTIgMkg2YTIgMiAwIDAgMS0yLTJ6JyxcbiAgICAgIGtleTogJzF2YW9vaCcsXG4gICAgfSxcbiAgXSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBUb29sQ2FzZVxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTVRBZ01UVm9OQ0lnTHo0S0lDQThjR0YwYUNCa1BTSnRNVFF1T0RFM0lERXdMams1TlMwdU9UY3hMVEV1TkRVZ01TNHdNelF0TVM0eU16SmhNaUF5SURBZ01DQXdMVEl1TURJMUxUTXVNak00YkMweExqZ3lMak0yTkV3NUxqa3hJRE11T0RnMVlUSWdNaUF3SURBZ01DMHpMall5TlM0M05EaE1OaTR4TkRFZ05pNDFOV3d0TVM0M01qVXVOREkyWVRJZ01pQXdJREFnTUMwdU1Ua2dNeTQzTlRac0xqWTFOeTR5TnlJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0p0TVRndU9ESXlJREV3TGprNU5TQXlMakkyTFRVdU16aGhNU0F4SURBZ01DQXdMUzQxTlRjdE1TNHpNVGhNTVRZdU9UVTBJREl1T1dFeElERWdNQ0F3SURBdE1TNHlPREV1TlRNemJDMHVPVEkwSURJdU1USXlJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMDBJREV5TGpBd05rRXhJREVnTUNBd0lERWdOQzQ1T1RRZ01URklNVGxoTVNBeElEQWdNQ0F4SURFZ01YWTNZVElnTWlBd0lEQWdNUzB5SURKSU5tRXlJRElnTUNBd0lERXRNaTB5ZWlJZ0x6NEtQQzl6ZG1jK0NnPT0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL3Rvb2wtY2FzZVxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IFRvb2xDYXNlID0gY3JlYXRlTHVjaWRlSWNvbigndG9vbC1jYXNlJywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IFRvb2xDYXNlO1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdNMjEgNEgzJywga2V5OiAnMWh3b2swJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTE4IDhINicsIGtleTogJzQxbjY0OCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xOSAxMkg5Jywga2V5OiAnMWc0bHB6JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTE2IDE2aC02Jywga2V5OiAnMWo1ZDU0JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTExIDIwSDknLCBrZXk6ICczOW9icjgnIH1dLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIFRvcm5hZG9cbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1qRWdORWd6SWlBdlBnb2dJRHh3WVhSb0lHUTlJazB4T0NBNFNEWWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRURTVJREV5U0RraUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRFMklERTJhQzAySWlBdlBnb2dJRHh3WVhSb0lHUTlJazB4TVNBeU1FZzVJaUF2UGdvOEwzTjJaejRLKSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy90b3JuYWRvXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgVG9ybmFkbyA9IGNyZWF0ZUx1Y2lkZUljb24oJ3Rvcm5hZG8nLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgVG9ybmFkbztcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgWydlbGxpcHNlJywgeyBjeDogJzEyJywgY3k6ICcxMScsIHJ4OiAnMycsIHJ5OiAnMicsIGtleTogJzFiMnF4dScgfV0sXG4gIFsnZWxsaXBzZScsIHsgY3g6ICcxMicsIGN5OiAnMTIuNScsIHJ4OiAnMTAnLCByeTogJzguNScsIGtleTogJ2g4ZW1ldScgfV0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgVG9ydXNcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOFpXeHNhWEJ6WlNCamVEMGlNVElpSUdONVBTSXhNU0lnY25nOUlqTWlJSEo1UFNJeUlpQXZQZ29nSUR4bGJHeHBjSE5sSUdONFBTSXhNaUlnWTNrOUlqRXlMalVpSUhKNFBTSXhNQ0lnY25rOUlqZ3VOU0lnTHo0S1BDOXpkbWMrQ2c9PSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvdG9ydXNcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBUb3J1cyA9IGNyZWF0ZUx1Y2lkZUljb24oJ3RvcnVzJywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IFRvcnVzO1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbJ3JlY3QnLCB7IHdpZHRoOiAnMjAnLCBoZWlnaHQ6ICcxNicsIHg6ICcyJywgeTogJzQnLCByeDogJzInLCBrZXk6ICcxOG4zazEnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMiAxNGgyMCcsIGtleTogJ215ajE2eScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xMiAyMHYtNicsIGtleTogJzFybTA5cicgfV0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgVG91Y2hwYWRcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNtVmpkQ0IzYVdSMGFEMGlNakFpSUdobGFXZG9kRDBpTVRZaUlIZzlJaklpSUhrOUlqUWlJSEo0UFNJeUlpQXZQZ29nSUR4d1lYUm9JR1E5SWsweUlERTBhREl3SWlBdlBnb2dJRHh3WVhSb0lHUTlJazB4TWlBeU1IWXROaUlnTHo0S1BDOXpkbWMrQ2c9PSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvdG91Y2hwYWRcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBUb3VjaHBhZCA9IGNyZWF0ZUx1Y2lkZUljb24oJ3RvdWNocGFkJywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IFRvdWNocGFkO1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdNMTIgMjB2LTYnLCBrZXk6ICcxcm0wOXInIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTkuNjU2IDE0SDIyJywga2V5OiAnMTcweHpyJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTIgMTRoMTInLCBrZXk6ICdkOGljcXonIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdtMiAyIDIwIDIwJywga2V5OiAnMW9vZXd5JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTIwIDIwSDRhMiAyIDAgMCAxLTItMlY2YTIgMiAwIDAgMSAyLTInLCBrZXk6ICdzMjNzeDInIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNOS42NTYgNEgyMGEyIDIgMCAwIDEgMiAydjEwLjM0NCcsIGtleTogJ292amN2bCcgfV0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgVG91Y2hwYWRPZmZcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1USWdNakIyTFRZaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRFNUxqWTFOaUF4TkVneU1pSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk1pQXhOR2d4TWlJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0p0TWlBeUlESXdJREl3SWlBdlBnb2dJRHh3WVhSb0lHUTlJazB5TUNBeU1FZzBZVElnTWlBd0lEQWdNUzB5TFRKV05tRXlJRElnTUNBd0lERWdNaTB5SWlBdlBnb2dJRHh3WVhSb0lHUTlJazA1TGpZMU5pQTBTREl3WVRJZ01pQXdJREFnTVNBeUlESjJNVEF1TXpRMElpQXZQZ284TDNOMlp6NEspIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL3RvdWNocGFkLW9mZlxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IFRvdWNocGFkT2ZmID0gY3JlYXRlTHVjaWRlSWNvbigndG91Y2hwYWQtb2ZmJywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IFRvdWNocGFkT2ZmO1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbXG4gICAgJ3BhdGgnLFxuICAgIHsgZDogJ00xOC4yIDEyLjI3IDIwIDZINGwxLjggNi4yN2ExIDEgMCAwIDAgLjk1LjczaDEwLjVhMSAxIDAgMCAwIC45Ni0uNzNaJywga2V5OiAnMXBsZWRiJyB9LFxuICBdLFxuICBbJ3BhdGgnLCB7IGQ6ICdNOCAxM3Y5Jywga2V5OiAnaG12MGNpJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTE2IDIydi05Jywga2V5OiAneWxuZjF1JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnbTkgNiAxIDcnLCBrZXk6ICdkcGRnYW0nIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdtMTUgNi0xIDcnLCBrZXk6ICdsczd6Z3UnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTIgNlYyJywga2V5OiAnMXBqNDhkJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTEzIDJoLTInLCBrZXk6ICdtajZ0aHMnIH1dLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIFRvd2VyQ29udHJvbFxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTVRndU1pQXhNaTR5TnlBeU1DQTJTRFJzTVM0NElEWXVNamRoTVNBeElEQWdNQ0F3SUM0NU5TNDNNMmd4TUM0MVlURWdNU0F3SURBZ01DQXVPVFl0TGpjeldpSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk9DQXhNM1k1SWlBdlBnb2dJRHh3WVhSb0lHUTlJazB4TmlBeU1uWXRPU0lnTHo0S0lDQThjR0YwYUNCa1BTSnRPU0EySURFZ055SWdMejRLSUNBOGNHRjBhQ0JrUFNKdE1UVWdOaTB4SURjaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRFeUlEWldNaUlnTHo0S0lDQThjR0YwYUNCa1BTSk5NVE1nTW1ndE1pSWdMejRLUEM5emRtYytDZz09KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy90b3dlci1jb250cm9sXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgVG93ZXJDb250cm9sID0gY3JlYXRlTHVjaWRlSWNvbigndG93ZXItY29udHJvbCcsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBUb3dlckNvbnRyb2w7XG4iLCJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbXG4gIFsncmVjdCcsIHsgd2lkdGg6ICcxOCcsIGhlaWdodDogJzEyJywgeDogJzMnLCB5OiAnOCcsIHJ4OiAnMScsIGtleTogJzE1OGZ2cCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xMCA4VjVjMC0uNi0uNC0xLTEtMUg2YTEgMSAwIDAgMC0xIDF2MycsIGtleTogJ3MwMDQydicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xOSA4VjVjMC0uNi0uNC0xLTEtMWgtM2ExIDEgMCAwIDAtMSAxdjMnLCBrZXk6ICc5d21laDInIH1dLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIFRveUJyaWNrXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjbVZqZENCM2FXUjBhRDBpTVRnaUlHaGxhV2RvZEQwaU1USWlJSGc5SWpNaUlIazlJamdpSUhKNFBTSXhJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHhNQ0E0VmpWak1DMHVOaTB1TkMweExURXRNVWcyWVRFZ01TQXdJREFnTUMweElERjJNeUlnTHo0S0lDQThjR0YwYUNCa1BTSk5NVGtnT0ZZMVl6QXRMall0TGpRdE1TMHhMVEZvTFROaE1TQXhJREFnTUNBd0xURWdNWFl6SWlBdlBnbzhMM04yWno0SykgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvdG95LWJyaWNrXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgVG95QnJpY2sgPSBjcmVhdGVMdWNpZGVJY29uKCd0b3ktYnJpY2snLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgVG95QnJpY2s7XG4iLCJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ20xMCAxMSAxMSAuOWExIDEgMCAwIDEgLjggMS4xbC0uNjY1IDQuMTU4YTEgMSAwIDAgMS0uOTg4Ljg0MkgyMCcsIGtleTogJ3NoZTFqOScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xNiAxOGgtNScsIGtleTogJ2JxNjBmZCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xOCA1YTEgMSAwIDAgMC0xIDF2NS41NzMnLCBrZXk6ICcxa3Y4aWEnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMyA0aDguMTI5YTEgMSAwIDAgMSAuOTkuODYzTDEzIDExLjI0NicsIGtleTogJzFxMWVydCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ000IDExVjQnLCBrZXk6ICc5ZnQ4cHQnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNNyAxNWguMDEnLCBrZXk6ICdrNWh0MGonIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNOCAxMC4xVjQnLCBrZXk6ICcxamd5em8nIH1dLFxuICBbJ2NpcmNsZScsIHsgY3g6ICcxOCcsIGN5OiAnMTgnLCByOiAnMicsIGtleTogJzFlbW04dicgfV0sXG4gIFsnY2lyY2xlJywgeyBjeDogJzcnLCBjeTogJzE1JywgcjogJzUnLCBrZXk6ICdkZHR1YycgfV0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgVHJhY3RvclxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0p0TVRBZ01URWdNVEVnTGpsaE1TQXhJREFnTUNBeElDNDRJREV1TVd3dExqWTJOU0EwTGpFMU9HRXhJREVnTUNBd0lERXRMams0T0M0NE5ESklNakFpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVEUySURFNGFDMDFJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHhPQ0ExWVRFZ01TQXdJREFnTUMweElERjJOUzQxTnpNaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRNZ05HZzRMakV5T1dFeElERWdNQ0F3SURFZ0xqazVMamcyTTB3eE15QXhNUzR5TkRZaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRRZ01URldOQ0lnTHo0S0lDQThjR0YwYUNCa1BTSk5OeUF4TldndU1ERWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRUZ2dNVEF1TVZZMElpQXZQZ29nSUR4amFYSmpiR1VnWTNnOUlqRTRJaUJqZVQwaU1UZ2lJSEk5SWpJaUlDOCtDaUFnUEdOcGNtTnNaU0JqZUQwaU55SWdZM2s5SWpFMUlpQnlQU0kxSWlBdlBnbzhMM04yWno0SykgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvdHJhY3RvclxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IFRyYWN0b3IgPSBjcmVhdGVMdWNpZGVJY29uKCd0cmFjdG9yJywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IFRyYWN0b3I7XG4iLCJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ00xNi4wNSAxMC45NjZhNSAyLjUgMCAwIDEtOC4xIDAnLCBrZXk6ICdtNWpwd2InIH1dLFxuICBbXG4gICAgJ3BhdGgnLFxuICAgIHtcbiAgICAgIGQ6ICdtMTYuOTIzIDE0LjA0OSA0LjQ4IDIuMDRhMSAxIDAgMCAxIC4wMDEgMS44MzFsLTguNTc0IDMuOWEyIDIgMCAwIDEtMS42NiAwbC04LjU3NC0zLjkxYTEgMSAwIDAgMSAwLTEuODNsNC40ODQtMi4wNCcsXG4gICAgICBrZXk6ICdyYmczZzgnLFxuICAgIH0sXG4gIF0sXG4gIFsncGF0aCcsIHsgZDogJ00xNi45NDkgMTQuMTRhNSAyLjUgMCAxIDEtOS45IDBMMTAuMDYzIDMuNWEyIDIgMCAwIDEgMy44NzQgMHonLCBrZXk6ICd2YXA4YzgnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNOS4xOTQgNi41N2E1IDIuNSAwIDAgMCA1LjYxIDAnLCBrZXk6ICcxNWhuNWMnIH1dLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIFRyYWZmaWNDb25lXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NVFl1TURVZ01UQXVPVFkyWVRVZ01pNDFJREFnTUNBeExUZ3VNU0F3SWlBdlBnb2dJRHh3WVhSb0lHUTlJbTB4Tmk0NU1qTWdNVFF1TURRNUlEUXVORGdnTWk0d05HRXhJREVnTUNBd0lERWdMakF3TVNBeExqZ3pNV3d0T0M0MU56UWdNeTQ1WVRJZ01pQXdJREFnTVMweExqWTJJREJzTFRndU5UYzBMVE11T1RGaE1TQXhJREFnTUNBeElEQXRNUzQ0TTJ3MExqUTROQzB5TGpBMElpQXZQZ29nSUR4d1lYUm9JR1E5SWsweE5pNDVORGtnTVRRdU1UUmhOU0F5TGpVZ01DQXhJREV0T1M0NUlEQk1NVEF1TURZeklETXVOV0V5SURJZ01DQXdJREVnTXk0NE56UWdNSG9pSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVGt1TVRrMElEWXVOVGRoTlNBeUxqVWdNQ0F3SURBZ05TNDJNU0F3SWlBdlBnbzhMM04yWno0SykgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvdHJhZmZpYy1jb25lXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgVHJhZmZpY0NvbmUgPSBjcmVhdGVMdWNpZGVJY29uKCd0cmFmZmljLWNvbmUnLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgVHJhZmZpY0NvbmU7XG4iLCJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ00yIDIyVjEyYTEwIDEwIDAgMSAxIDIwIDB2MTAnLCBrZXk6ICdvMGZ5cDAnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTUgNi44djEuNGEzIDIuOCAwIDEgMS02IDBWNi44Jywga2V5OiAnbThxM245JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTEwIDE1aC4wMScsIGtleTogJzQ0aW45eCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xNCAxNWguMDEnLCBrZXk6ICc1bW9objUnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTAgMTlhNCA0IDAgMCAxLTQtNHYtM2E2IDYgMCAxIDEgMTIgMHYzYTQgNCAwIDAgMS00IDRaJywga2V5OiAnaGNrYm11JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnbTkgMTktMiAzJywga2V5OiAnaWlqN2htJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnbTE1IDE5IDIgMycsIGtleTogJ25weDhzYScgfV0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgVHJhaW5Gcm9udFR1bm5lbFxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTWlBeU1sWXhNbUV4TUNBeE1DQXdJREVnTVNBeU1DQXdkakV3SWlBdlBnb2dJRHh3WVhSb0lHUTlJazB4TlNBMkxqaDJNUzQwWVRNZ01pNDRJREFnTVNBeExUWWdNRlkyTGpnaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRFd0lERTFhQzR3TVNJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTVRRZ01UVm9MakF4SWlBdlBnb2dJRHh3WVhSb0lHUTlJazB4TUNBeE9XRTBJRFFnTUNBd0lERXROQzAwZGkwellUWWdOaUF3SURFZ01TQXhNaUF3ZGpOaE5DQTBJREFnTUNBeExUUWdORm9pSUM4K0NpQWdQSEJoZEdnZ1pEMGliVGtnTVRrdE1pQXpJaUF2UGdvZ0lEeHdZWFJvSUdROUltMHhOU0F4T1NBeUlETWlJQzgrQ2p3dmMzWm5QZ289KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy90cmFpbi1mcm9udC10dW5uZWxcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBUcmFpbkZyb250VHVubmVsID0gY3JlYXRlTHVjaWRlSWNvbigndHJhaW4tZnJvbnQtdHVubmVsJywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IFRyYWluRnJvbnRUdW5uZWw7XG4iLCJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ004IDMuMVY3YTQgNCAwIDAgMCA4IDBWMy4xJywga2V5OiAnMXY3MXpwJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnbTkgMTUtMS0xJywga2V5OiAnMXlycTI0JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnbTE1IDE1IDEtMScsIGtleTogJzF0MGQ2cycgfV0sXG4gIFsncGF0aCcsIHsgZDogJ005IDE5Yy0yLjggMC01LTIuMi01LTV2LTRhOCA4IDAgMCAxIDE2IDB2NGMwIDIuOC0yLjIgNS01IDVaJywga2V5OiAnMXAwaGpzJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnbTggMTktMiAzJywga2V5OiAnMTNpMHhzJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnbTE2IDE5IDIgMycsIGtleTogJ3hvMzF5eCcgfV0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgVHJhaW5Gcm9udFxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOT0NBekxqRldOMkUwSURRZ01DQXdJREFnT0NBd1ZqTXVNU0lnTHo0S0lDQThjR0YwYUNCa1BTSnRPU0F4TlMweExURWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaWJURTFJREUxSURFdE1TSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk9TQXhPV010TWk0NElEQXROUzB5TGpJdE5TMDFkaTAwWVRnZ09DQXdJREFnTVNBeE5pQXdkalJqTUNBeUxqZ3RNaTR5SURVdE5TQTFXaUlnTHo0S0lDQThjR0YwYUNCa1BTSnRPQ0F4T1MweUlETWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaWJURTJJREU1SURJZ015SWdMejRLUEM5emRtYytDZz09KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy90cmFpbi1mcm9udFxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IFRyYWluRnJvbnQgPSBjcmVhdGVMdWNpZGVJY29uKCd0cmFpbi1mcm9udCcsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBUcmFpbkZyb250O1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdNMiAxNyAxNyAyJywga2V5OiAnMThiMDl0JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnbTIgMTQgOCA4Jywga2V5OiAnMWd2OWh1JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnbTUgMTEgOCA4Jywga2V5OiAnMTg5cHFwJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnbTggOCA4IDgnLCBrZXk6ICcxaW1lY3knIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdtMTEgNSA4IDgnLCBrZXk6ICd1bW1xbjYnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdtMTQgMiA4IDgnLCBrZXk6ICcxdms3ZG4nIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNNyAyMiAyMiA3Jywga2V5OiAnMTVtYjFpJyB9XSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBUcmFpblRyYWNrXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NaUF4TnlBeE55QXlJaUF2UGdvZ0lEeHdZWFJvSUdROUltMHlJREUwSURnZ09DSWdMejRLSUNBOGNHRjBhQ0JrUFNKdE5TQXhNU0E0SURnaUlDOCtDaUFnUEhCaGRHZ2daRDBpYlRnZ09DQTRJRGdpSUM4K0NpQWdQSEJoZEdnZ1pEMGliVEV4SURVZ09DQTRJaUF2UGdvZ0lEeHdZWFJvSUdROUltMHhOQ0F5SURnZ09DSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk55QXlNaUF5TWlBM0lpQXZQZ284TDNOMlp6NEspIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL3RyYWluLXRyYWNrXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgVHJhaW5UcmFjayA9IGNyZWF0ZUx1Y2lkZUljb24oJ3RyYWluLXRyYWNrJywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IFRyYWluVHJhY2s7XG4iLCJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbXG4gIFsncmVjdCcsIHsgd2lkdGg6ICcxNicsIGhlaWdodDogJzE2JywgeDogJzQnLCB5OiAnMycsIHJ4OiAnMicsIGtleTogJzF3eHc0YicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ000IDExaDE2Jywga2V5OiAnbXBveG4wJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTEyIDN2OCcsIGtleTogJzFoMnlndycgfV0sXG4gIFsncGF0aCcsIHsgZDogJ204IDE5LTIgMycsIGtleTogJzEzaTB4cycgfV0sXG4gIFsncGF0aCcsIHsgZDogJ20xOCAyMi0yLTMnLCBrZXk6ICcxcDBvaHUnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNOCAxNWguMDEnLCBrZXk6ICdhN2F0emcnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTYgMTVoLjAxJywga2V5OiAncm5mcmRmJyB9XSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBUcmFtRnJvbnRcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNtVmpkQ0IzYVdSMGFEMGlNVFlpSUdobGFXZG9kRDBpTVRZaUlIZzlJalFpSUhrOUlqTWlJSEo0UFNJeUlpQXZQZ29nSUR4d1lYUm9JR1E5SWswMElERXhhREUySWlBdlBnb2dJRHh3WVhSb0lHUTlJazB4TWlBemRqZ2lJQzgrQ2lBZ1BIQmhkR2dnWkQwaWJUZ2dNVGt0TWlBeklpQXZQZ29nSUR4d1lYUm9JR1E5SW0weE9DQXlNaTB5TFRNaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRnZ01UVm9MakF4SWlBdlBnb2dJRHh3WVhSb0lHUTlJazB4TmlBeE5XZ3VNREVpSUM4K0Nqd3ZjM1puUGdvPSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvdHJhbS1mcm9udFxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IFRyYW1Gcm9udCA9IGNyZWF0ZUx1Y2lkZUljb24oJ3RyYW0tZnJvbnQnLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgVHJhbUZyb250O1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdNMTIgMTZ2NicsIGtleTogJ2M4YTRnaicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xNCAyMGgtNCcsIGtleTogJ204bTE5ZCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xOCAyaDR2NCcsIGtleTogJzEzNDFtaicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ20yIDIgNy4xNyA3LjE3Jywga2V5OiAnMTNxOGwyJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTIgNS4zNTVWMmgzLjM1NycsIGtleTogJzE4MTM2cicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ20yMiAyLTcuMTcgNy4xNycsIGtleTogJzFlcHZ5NCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ004IDUgNSA4Jywga2V5OiAnbWdiamh6JyB9XSxcbiAgWydjaXJjbGUnLCB7IGN4OiAnMTInLCBjeTogJzEyJywgcjogJzQnLCBrZXk6ICc0ZXhpcDInIH1dLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIFRyYW5zZ2VuZGVyXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NVElnTVRaMk5pSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk1UUWdNakJvTFRRaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRFNElESm9OSFkwSWlBdlBnb2dJRHh3WVhSb0lHUTlJbTB5SURJZ055NHhOeUEzTGpFM0lpQXZQZ29nSUR4d1lYUm9JR1E5SWsweUlEVXVNelUxVmpKb015NHpOVGNpSUM4K0NpQWdQSEJoZEdnZ1pEMGliVEl5SURJdE55NHhOeUEzTGpFM0lpQXZQZ29nSUR4d1lYUm9JR1E5SWswNElEVWdOU0E0SWlBdlBnb2dJRHhqYVhKamJHVWdZM2c5SWpFeUlpQmplVDBpTVRJaUlISTlJalFpSUM4K0Nqd3ZjM1puUGdvPSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvdHJhbnNnZW5kZXJcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBUcmFuc2dlbmRlciA9IGNyZWF0ZUx1Y2lkZUljb24oJ3RyYW5zZ2VuZGVyJywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IFRyYW5zZ2VuZGVyO1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdNMyA2aDE4Jywga2V5OiAnZDB3bTBqJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTE5IDZ2MTRjMCAxLTEgMi0yIDJIN2MtMSAwLTItMS0yLTJWNicsIGtleTogJzRhbHJ0NCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ004IDZWNGMwLTEgMS0yIDItMmg0YzEgMCAyIDEgMiAydjInLCBrZXk6ICd2MDdzMGUnIH1dLFxuICBbJ2xpbmUnLCB7IHgxOiAnMTAnLCB4MjogJzEwJywgeTE6ICcxMScsIHkyOiAnMTcnLCBrZXk6ICcxdXVmcjUnIH1dLFxuICBbJ2xpbmUnLCB7IHgxOiAnMTQnLCB4MjogJzE0JywgeTE6ICcxMScsIHkyOiAnMTcnLCBrZXk6ICd4dHhrZCcgfV0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgVHJhc2gyXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NeUEyYURFNElpQXZQZ29nSUR4d1lYUm9JR1E5SWsweE9TQTJkakUwWXpBZ01TMHhJREl0TWlBeVNEZGpMVEVnTUMweUxURXRNaTB5VmpZaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRnZ05sWTBZekF0TVNBeExUSWdNaTB5YURSak1TQXdJRElnTVNBeUlESjJNaUlnTHo0S0lDQThiR2x1WlNCNE1UMGlNVEFpSUhneVBTSXhNQ0lnZVRFOUlqRXhJaUI1TWowaU1UY2lJQzgrQ2lBZ1BHeHBibVVnZURFOUlqRTBJaUI0TWowaU1UUWlJSGt4UFNJeE1TSWdlVEk5SWpFM0lpQXZQZ284TDNOMlp6NEspIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL3RyYXNoLTJcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBUcmFzaDIgPSBjcmVhdGVMdWNpZGVJY29uKCd0cmFzaC0yJywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IFRyYXNoMjtcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTMgNmgxOCcsIGtleTogJ2Qwd20waicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xOSA2djE0YzAgMS0xIDItMiAySDdjLTEgMC0yLTEtMi0yVjYnLCBrZXk6ICc0YWxydDQnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNOCA2VjRjMC0xIDEtMiAyLTJoNGMxIDAgMiAxIDIgMnYyJywga2V5OiAndjA3czBlJyB9XSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBUcmFzaFxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTXlBMmFERTRJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHhPU0EyZGpFMFl6QWdNUzB4SURJdE1pQXlTRGRqTFRFZ01DMHlMVEV0TWkweVZqWWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRUZ2dObFkwWXpBdE1TQXhMVElnTWkweWFEUmpNU0F3SURJZ01TQXlJREoyTWlJZ0x6NEtQQzl6ZG1jK0NnPT0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL3RyYXNoXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgVHJhc2ggPSBjcmVhdGVMdWNpZGVJY29uKCd0cmFzaCcsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBUcmFzaDtcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgW1xuICAgICdwYXRoJyxcbiAgICB7XG4gICAgICBkOiAnTTggMTlhNCA0IDAgMCAxLTIuMjQtNy4zMkEzLjUgMy41IDAgMCAxIDkgNi4wM1Y2YTMgMyAwIDEgMSA2IDB2LjA0YTMuNSAzLjUgMCAwIDEgMy4yNCA1LjY1QTQgNCAwIDAgMSAxNiAxOVonLFxuICAgICAga2V5OiAnb2FkemtxJyxcbiAgICB9LFxuICBdLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTIgMTl2MycsIGtleTogJ25wYTIxbCcgfV0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgVHJlZURlY2lkdW91c1xuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOT0NBeE9XRTBJRFFnTUNBd0lERXRNaTR5TkMwM0xqTXlRVE11TlNBekxqVWdNQ0F3SURFZ09TQTJMakF6VmpaaE15QXpJREFnTVNBeElEWWdNSFl1TURSaE15NDFJRE11TlNBd0lEQWdNU0F6TGpJMElEVXVOalZCTkNBMElEQWdNQ0F4SURFMklERTVXaUlnTHo0S0lDQThjR0YwYUNCa1BTSk5NVElnTVRsMk15SWdMejRLUEM5emRtYytDZz09KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy90cmVlLWRlY2lkdW91c1xuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IFRyZWVEZWNpZHVvdXMgPSBjcmVhdGVMdWNpZGVJY29uKCd0cmVlLWRlY2lkdW91cycsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBUcmVlRGVjaWR1b3VzO1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdNMTMgOGMwLTIuNzYtMi40Ni01LTUuNS01UzIgNS4yNCAyIDhoMmwxLTEgMSAxaDQnLCBrZXk6ICdmb3hiZTcnIH1dLFxuICBbXG4gICAgJ3BhdGgnLFxuICAgIHsgZDogJ00xMyA3LjE0QTUuODIgNS44MiAwIDAgMSAxNi41IDZjMy4wNCAwIDUuNSAyLjI0IDUuNSA1aC0zbC0xLTEtMSAxaC0zJywga2V5OiAnMThhcm5oJyB9LFxuICBdLFxuICBbXG4gICAgJ3BhdGgnLFxuICAgIHtcbiAgICAgIGQ6ICdNNS44OSA5LjcxYy0yLjE1IDIuMTUtMi4zIDUuNDctLjM1IDcuNDNsNC4yNC00LjI1LjctLjcuNzEtLjcxIDIuMTItMi4xMmMtMS45NS0xLjk2LTUuMjctMS44LTcuNDIuMzUnLFxuICAgICAga2V5OiAneXdhaG5oJyxcbiAgICB9LFxuICBdLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTEgMTUuNWMuNSAyLjUtLjE3IDQuNS0xIDYuNWg0YzItNS41LS41LTEyLTEtMTQnLCBrZXk6ICdmdDBmZW8nIH1dLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIFRyZWVQYWxtXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NVE1nT0dNd0xUSXVOell0TWk0ME5pMDFMVFV1TlMwMVV6SWdOUzR5TkNBeUlEaG9NbXd4TFRFZ01TQXhhRFFpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVEV6SURjdU1UUkJOUzQ0TWlBMUxqZ3lJREFnTUNBeElERTJMalVnTm1NekxqQTBJREFnTlM0MUlESXVNalFnTlM0MUlEVm9MVE5zTFRFdE1TMHhJREZvTFRNaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRVdU9Ea2dPUzQzTVdNdE1pNHhOU0F5TGpFMUxUSXVNeUExTGpRM0xTNHpOU0EzTGpRemJEUXVNalF0TkM0eU5TNDNMUzQzTGpjeExTNDNNU0F5TGpFeUxUSXVNVEpqTFRFdU9UVXRNUzQ1TmkwMUxqSTNMVEV1T0MwM0xqUXlMak0xSWlBdlBnb2dJRHh3WVhSb0lHUTlJazB4TVNBeE5TNDFZeTQxSURJdU5TMHVNVGNnTkM0MUxURWdOaTQxYURSak1pMDFMalV0TGpVdE1USXRNUzB4TkNJZ0x6NEtQQzl6ZG1jK0NnPT0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL3RyZWUtcGFsbVxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IFRyZWVQYWxtID0gY3JlYXRlTHVjaWRlSWNvbigndHJlZS1wYWxtJywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IFRyZWVQYWxtO1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbXG4gICAgJ3BhdGgnLFxuICAgIHtcbiAgICAgIGQ6ICdtMTcgMTQgMyAzLjNhMSAxIDAgMCAxLS43IDEuN0g0LjdhMSAxIDAgMCAxLS43LTEuN0w3IDE0aC0uM2ExIDEgMCAwIDEtLjctMS43TDkgOWgtLjJBMSAxIDAgMCAxIDggNy4zTDEyIDNsNCA0LjNhMSAxIDAgMCAxLS44IDEuN0gxNWwzIDMuM2ExIDEgMCAwIDEtLjcgMS43SDE3WicsXG4gICAgICBrZXk6ICdjcHl1Z3EnLFxuICAgIH0sXG4gIF0sXG4gIFsncGF0aCcsIHsgZDogJ00xMiAyMnYtMycsIGtleTogJ2ttempsbycgfV0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgVHJlZVBpbmVcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKdE1UY2dNVFFnTXlBekxqTmhNU0F4SURBZ01DQXhMUzQzSURFdU4wZzBMamRoTVNBeElEQWdNQ0F4TFM0M0xURXVOMHczSURFMGFDMHVNMkV4SURFZ01DQXdJREV0TGpjdE1TNDNURGtnT1dndExqSkJNU0F4SURBZ01DQXhJRGdnTnk0elRERXlJRE5zTkNBMExqTmhNU0F4SURBZ01DQXhMUzQ0SURFdU4wZ3hOV3d6SURNdU0yRXhJREVnTUNBd0lERXRMamNnTVM0M1NERTNXaUlnTHo0S0lDQThjR0YwYUNCa1BTSk5NVElnTWpKMkxUTWlJQzgrQ2p3dmMzWm5QZ289KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy90cmVlLXBpbmVcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBUcmVlUGluZSA9IGNyZWF0ZUx1Y2lkZUljb24oJ3RyZWUtcGluZScsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBUcmVlUGluZTtcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTEwIDEwdi4yQTMgMyAwIDAgMSA4LjkgMTZINWEzIDMgMCAwIDEtMS01LjhWMTBhMyAzIDAgMCAxIDYgMFonLCBrZXk6ICcxbDZnajYnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNNyAxNnY2Jywga2V5OiAnMWE4MmRlJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTEzIDE5djMnLCBrZXk6ICcxM3N4OWknIH1dLFxuICBbXG4gICAgJ3BhdGgnLFxuICAgIHtcbiAgICAgIGQ6ICdNMTIgMTloOC4zYTEgMSAwIDAgMCAuNy0xLjdMMTggMTRoLjNhMSAxIDAgMCAwIC43LTEuN0wxNiA5aC4yYTEgMSAwIDAgMCAuOC0xLjdMMTMgM2wtMS40IDEuNScsXG4gICAgICBrZXk6ICcxc2o5a3YnLFxuICAgIH0sXG4gIF0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgVHJlZXNcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1UQWdNVEIyTGpKQk15QXpJREFnTUNBeElEZ3VPU0F4TmtnMVlUTWdNeUF3SURBZ01TMHhMVFV1T0ZZeE1HRXpJRE1nTUNBd0lERWdOaUF3V2lJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTnlBeE5uWTJJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHhNeUF4T1hZeklpQXZQZ29nSUR4d1lYUm9JR1E5SWsweE1pQXhPV2c0TGpOaE1TQXhJREFnTUNBd0lDNDNMVEV1TjB3eE9DQXhOR2d1TTJFeElERWdNQ0F3SURBZ0xqY3RNUzQzVERFMklEbG9MakpoTVNBeElEQWdNQ0F3SUM0NExURXVOMHd4TXlBemJDMHhMalFnTVM0MUlpQXZQZ284TDNOMlp6NEspIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL3RyZWVzXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgVHJlZXMgPSBjcmVhdGVMdWNpZGVJY29uKCd0cmVlcycsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBUcmVlcztcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTE2IDE3aDZ2LTYnLCBrZXk6ICd0Nm4yaXQnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdtMjIgMTctOC41LTguNS01IDVMMiA3Jywga2V5OiAneDQ3M3AnIH1dLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIFRyZW5kaW5nRG93blxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTVRZZ01UZG9Obll0TmlJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0p0TWpJZ01UY3RPQzQxTFRndU5TMDFJRFZNTWlBM0lpQXZQZ284TDNOMlp6NEspIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL3RyZW5kaW5nLWRvd25cbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBUcmVuZGluZ0Rvd24gPSBjcmVhdGVMdWNpZGVJY29uKCd0cmVuZGluZy1kb3duJywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IFRyZW5kaW5nRG93bjtcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgWydyZWN0JywgeyB3aWR0aDogJzE4JywgaGVpZ2h0OiAnMTgnLCB4OiAnMycsIHk6ICczJywgcng6ICcyJywgcnk6ICcyJywga2V5OiAnMW0zYWduJyB9XSxcbiAgWydyZWN0JywgeyB3aWR0aDogJzMnLCBoZWlnaHQ6ICc5JywgeDogJzcnLCB5OiAnNycsIGtleTogJzE0bjN4aScgfV0sXG4gIFsncmVjdCcsIHsgd2lkdGg6ICczJywgaGVpZ2h0OiAnNScsIHg6ICcxNCcsIHk6ICc3Jywga2V5OiAnczRhempkJyB9XSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBUcmVsbG9cbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNtVmpkQ0IzYVdSMGFEMGlNVGdpSUdobGFXZG9kRDBpTVRnaUlIZzlJak1pSUhrOUlqTWlJSEo0UFNJeUlpQnllVDBpTWlJZ0x6NEtJQ0E4Y21WamRDQjNhV1IwYUQwaU15SWdhR1ZwWjJoMFBTSTVJaUI0UFNJM0lpQjVQU0kzSWlBdlBnb2dJRHh5WldOMElIZHBaSFJvUFNJeklpQm9aV2xuYUhROUlqVWlJSGc5SWpFMElpQjVQU0kzSWlBdlBnbzhMM04yWno0SykgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvdHJlbGxvXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICogQGRlcHJlY2F0ZWQgQnJhbmQgaWNvbnMgaGF2ZSBiZWVuIGRlcHJlY2F0ZWQgYW5kIGFyZSBkdWUgdG8gYmUgcmVtb3ZlZCwgcGxlYXNlIHJlZmVyIHRvIGh0dHBzOi8vZ2l0aHViLmNvbS9sdWNpZGUtaWNvbnMvbHVjaWRlL2lzc3Vlcy82NzAuIFdlIHJlY29tbWVuZCB1c2luZyBodHRwczovL3NpbXBsZWljb25zLm9yZy8/cT10cmVsbG8gaW5zdGVhZC4gVGhpcyBpY29uIHdpbGwgYmUgcmVtb3ZlZCBpbiB2MS4wXG4gKi9cbmNvbnN0IFRyZWxsbyA9IGNyZWF0ZUx1Y2lkZUljb24oJ3RyZWxsbycsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBUcmVsbG87XG4iLCJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ00xNC44MjggMTQuODI4IDIxIDIxJywga2V5OiAnYXI1Znc3JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTIxIDE2djVoLTUnLCBrZXk6ICcxY2syc2YnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdtMjEgMy05IDktNC00LTYgNicsIGtleTogJzFoMDJ4bycgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00yMSA4VjNoLTUnLCBrZXk6ICcxcW9xOGEnIH1dLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIFRyZW5kaW5nVXBEb3duXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NVFF1T0RJNElERTBMamd5T0NBeU1TQXlNU0lnTHo0S0lDQThjR0YwYUNCa1BTSk5NakVnTVRaMk5XZ3ROU0lnTHo0S0lDQThjR0YwYUNCa1BTSnRNakVnTXkwNUlEa3ROQzAwTFRZZ05pSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk1qRWdPRll6YUMwMUlpQXZQZ284TDNOMlp6NEspIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL3RyZW5kaW5nLXVwLWRvd25cbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBUcmVuZGluZ1VwRG93biA9IGNyZWF0ZUx1Y2lkZUljb24oJ3RyZW5kaW5nLXVwLWRvd24nLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgVHJlbmRpbmdVcERvd247XG4iLCJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ00xNiA3aDZ2NicsIGtleTogJ2JveDU1bCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ20yMiA3LTguNSA4LjUtNS01TDIgMTcnLCBrZXk6ICcxdDFtNzknIH1dLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIFRyZW5kaW5nVXBcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1UWWdOMmcyZGpZaUlDOCtDaUFnUEhCaGRHZ2daRDBpYlRJeUlEY3RPQzQxSURndU5TMDFMVFZNTWlBeE55SWdMejRLUEM5emRtYytDZz09KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy90cmVuZGluZy11cFxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IFRyZW5kaW5nVXAgPSBjcmVhdGVMdWNpZGVJY29uKCd0cmVuZGluZy11cCcsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBUcmVuZGluZ1VwO1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbXG4gICAgJ3BhdGgnLFxuICAgIHtcbiAgICAgIGQ6ICdtMjEuNzMgMTgtOC0xNGEyIDIgMCAwIDAtMy40OCAwbC04IDE0QTIgMiAwIDAgMCA0IDIxaDE2YTIgMiAwIDAgMCAxLjczLTMnLFxuICAgICAga2V5OiAnd21vZW5xJyxcbiAgICB9LFxuICBdLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTIgOXY0Jywga2V5OiAnanV6cHU3JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTEyIDE3aC4wMScsIGtleTogJ3AzMnAwNScgfV0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgVHJpYW5nbGVBbGVydFxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0p0TWpFdU56TWdNVGd0T0MweE5HRXlJRElnTUNBd0lEQXRNeTQwT0NBd2JDMDRJREUwUVRJZ01pQXdJREFnTUNBMElESXhhREUyWVRJZ01pQXdJREFnTUNBeExqY3pMVE1pSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVEV5SURsMk5DSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk1USWdNVGRvTGpBeElpQXZQZ284TDNOMlp6NEspIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL3RyaWFuZ2xlLWFsZXJ0XG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgVHJpYW5nbGVBbGVydCA9IGNyZWF0ZUx1Y2lkZUljb24oJ3RyaWFuZ2xlLWFsZXJ0JywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IFRyaWFuZ2xlQWxlcnQ7XG4iLCJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ00xMC4xNyA0LjE5M2EyIDIgMCAwIDEgMy42NjYuMDEzJywga2V5OiAncGx0bW13JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTE0IDIxaDInLCBrZXk6ICd2NHFlenYnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdtMTUuODc0IDcuNzQzIDEgMS43MzInLCBrZXk6ICcxMG0waXcnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdtMTguODQ5IDEyLjk1MiAxIDEuNzMyJywga2V5OiAnemFkbmFtJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTIxLjgyNCAxOC4xOGEyIDIgMCAwIDEtMS44MzUgMi44MjQnLCBrZXk6ICdmdnd1azQnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNNC4wMjQgMjFhMiAyIDAgMCAxLTEuODM5LTIuODM5Jywga2V5OiAnMWUxa2FoJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnbTUuMTM2IDEyLjk1Mi0xIDEuNzMyJywga2V5OiAnMXU0bGRpJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTggMjFoMicsIGtleTogJ2k5emplZScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ204LjEwMiA3Ljc0My0xIDEuNzMyJywga2V5OiAnMXp6bzR1JyB9XSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBUcmlhbmdsZURhc2hlZFxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTVRBdU1UY2dOQzR4T1ROaE1pQXlJREFnTUNBeElETXVOalkyTGpBeE15SWdMejRLSUNBOGNHRjBhQ0JrUFNKTk1UUWdNakZvTWlJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0p0TVRVdU9EYzBJRGN1TnpReklERWdNUzQzTXpJaUlDOCtDaUFnUEhCaGRHZ2daRDBpYlRFNExqZzBPU0F4TWk0NU5USWdNU0F4TGpjek1pSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk1qRXVPREkwSURFNExqRTRZVElnTWlBd0lEQWdNUzB4TGpnek5TQXlMamd5TkNJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTkM0d01qUWdNakZoTWlBeUlEQWdNQ0F4TFRFdU9ETTVMVEl1T0RNNUlpQXZQZ29nSUR4d1lYUm9JR1E5SW0wMUxqRXpOaUF4TWk0NU5USXRNU0F4TGpjek1pSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk9DQXlNV2d5SWlBdlBnb2dJRHh3WVhSb0lHUTlJbTA0TGpFd01pQTNMamMwTXkweElERXVOek15SWlBdlBnbzhMM04yWno0SykgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvdHJpYW5nbGUtZGFzaGVkXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgVHJpYW5nbGVEYXNoZWQgPSBjcmVhdGVMdWNpZGVJY29uKCd0cmlhbmdsZS1kYXNoZWQnLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgVHJpYW5nbGVEYXNoZWQ7XG4iLCJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbXG4gIFtcbiAgICAncGF0aCcsXG4gICAge1xuICAgICAgZDogJ00yMiAxOGEyIDIgMCAwIDEtMiAySDNjLTEuMSAwLTEuMy0uNi0uNC0xLjNMMjAuNCA0LjNjLjktLjcgMS42LS40IDEuNi43WicsXG4gICAgICBrZXk6ICcxODN3Y2UnLFxuICAgIH0sXG4gIF0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgVHJpYW5nbGVSaWdodFxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTWpJZ01UaGhNaUF5SURBZ01DQXhMVElnTWtnell5MHhMakVnTUMweExqTXRMall0TGpRdE1TNHpUREl3TGpRZ05DNHpZeTQ1TFM0M0lERXVOaTB1TkNBeExqWXVOMW9pSUM4K0Nqd3ZjM1puUGdvPSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvdHJpYW5nbGUtcmlnaHRcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBUcmlhbmdsZVJpZ2h0ID0gY3JlYXRlTHVjaWRlSWNvbigndHJpYW5nbGUtcmlnaHQnLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgVHJpYW5nbGVSaWdodDtcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgW1xuICAgICdwYXRoJyxcbiAgICB7IGQ6ICdNMTMuNzMgNGEyIDIgMCAwIDAtMy40NiAwbC04IDE0QTIgMiAwIDAgMCA0IDIxaDE2YTIgMiAwIDAgMCAxLjczLTNaJywga2V5OiAnMTR1OXA5JyB9LFxuICBdLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIFRyaWFuZ2xlXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NVE11TnpNZ05HRXlJRElnTUNBd0lEQXRNeTQwTmlBd2JDMDRJREUwUVRJZ01pQXdJREFnTUNBMElESXhhREUyWVRJZ01pQXdJREFnTUNBeExqY3pMVE5hSWlBdlBnbzhMM04yWno0SykgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvdHJpYW5nbGVcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBUcmlhbmdsZSA9IGNyZWF0ZUx1Y2lkZUljb24oJ3RyaWFuZ2xlJywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IFRyaWFuZ2xlO1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdNMTAgMTQuNjZ2MS42MjZhMiAyIDAgMCAxLS45NzYgMS42OTZBNSA1IDAgMCAwIDcgMjEuOTc4Jywga2V5OiAnMW4zaHBkJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTE0IDE0LjY2djEuNjI2YTIgMiAwIDAgMCAuOTc2IDEuNjk2QTUgNSAwIDAgMSAxNyAyMS45NzgnLCBrZXk6ICdyZmUxemknIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTggOWgxLjVhMSAxIDAgMCAwIDAtNUgxOCcsIGtleTogJzd4eTZiaCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ000IDIyaDE2Jywga2V5OiAnNTd3eHYwJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTYgOWE2IDYgMCAwIDAgMTIgMFYzYTEgMSAwIDAgMC0xLTFIN2ExIDEgMCAwIDAtMSAxeicsIGtleTogJzFtaGZ1cScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ002IDlINC41YTEgMSAwIDAgMSAwLTVINicsIGtleTogJ3RleDQ4cCcgfV0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgVHJvcGh5XG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NVEFnTVRRdU5qWjJNUzQyTWpaaE1pQXlJREFnTUNBeExTNDVOellnTVM0Mk9UWkJOU0ExSURBZ01DQXdJRGNnTWpFdU9UYzRJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHhOQ0F4TkM0Mk5uWXhMall5Tm1FeUlESWdNQ0F3SURBZ0xqazNOaUF4TGpZNU5rRTFJRFVnTUNBd0lERWdNVGNnTWpFdU9UYzRJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHhPQ0E1YURFdU5XRXhJREVnTUNBd0lEQWdNQzAxU0RFNElpQXZQZ29nSUR4d1lYUm9JR1E5SWswMElESXlhREUySWlBdlBnb2dJRHh3WVhSb0lHUTlJazAySURsaE5pQTJJREFnTUNBd0lERXlJREJXTTJFeElERWdNQ0F3SURBdE1TMHhTRGRoTVNBeElEQWdNQ0F3TFRFZ01Yb2lJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRUWWdPVWcwTGpWaE1TQXhJREFnTUNBeElEQXROVWcySWlBdlBnbzhMM04yWno0SykgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvdHJvcGh5XG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgVHJvcGh5ID0gY3JlYXRlTHVjaWRlSWNvbigndHJvcGh5JywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IFRyb3BoeTtcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTE0IDE5VjdhMiAyIDAgMCAwLTItMkg5Jywga2V5OiAnMTVwZXNvJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTE1IDE5SDknLCBrZXk6ICcxOHE2ZHQnIH1dLFxuICBbXG4gICAgJ3BhdGgnLFxuICAgIHtcbiAgICAgIGQ6ICdNMTkgMTloMmExIDEgMCAwIDAgMS0xdi0zLjY1YTEgMSAwIDAgMC0uMjItLjYyTDE4LjMgOS4zOGExIDEgMCAwIDAtLjc4LS4zOEgxNCcsXG4gICAgICBrZXk6ICcxZGtwM2onLFxuICAgIH0sXG4gIF0sXG4gIFsncGF0aCcsIHsgZDogJ00yIDEzdjVhMSAxIDAgMCAwIDEgMWgyJywga2V5OiAncGttbXp6JyB9XSxcbiAgW1xuICAgICdwYXRoJyxcbiAgICB7IGQ6ICdNNCAzIDIuMTUgNS4xNWEuNDk1LjQ5NSAwIDAgMCAuMzUuODZoMi4xNWEuNDcuNDcgMCAwIDEgLjM1Ljg2TDMgOS4wMicsIGtleTogJzFuMjZwZCcgfSxcbiAgXSxcbiAgWydjaXJjbGUnLCB7IGN4OiAnMTcnLCBjeTogJzE5JywgcjogJzInLCBrZXk6ICcxbnhjZ2QnIH1dLFxuICBbJ2NpcmNsZScsIHsgY3g6ICc3JywgY3k6ICcxOScsIHI6ICcyJywga2V5OiAnZ3pvN3k3JyB9XSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBUcnVja0VsZWN0cmljXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NVFFnTVRsV04yRXlJRElnTUNBd0lEQXRNaTB5U0RraUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRFMUlERTVTRGtpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVEU1SURFNWFESmhNU0F4SURBZ01DQXdJREV0TVhZdE15NDJOV0V4SURFZ01DQXdJREF0TGpJeUxTNDJNa3d4T0M0eklEa3VNemhoTVNBeElEQWdNQ0F3TFM0M09DMHVNemhJTVRRaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRJZ01UTjJOV0V4SURFZ01DQXdJREFnTVNBeGFESWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRUUWdNeUF5TGpFMUlEVXVNVFZoTGpRNU5TNDBPVFVnTUNBd0lEQWdMak0xTGpnMmFESXVNVFZoTGpRM0xqUTNJREFnTUNBeElDNHpOUzQ0Tmt3eklEa3VNRElpSUM4K0NpQWdQR05wY21Oc1pTQmplRDBpTVRjaUlHTjVQU0l4T1NJZ2NqMGlNaUlnTHo0S0lDQThZMmx5WTJ4bElHTjRQU0kzSWlCamVUMGlNVGtpSUhJOUlqSWlJQzgrQ2p3dmMzWm5QZ289KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy90cnVjay1lbGVjdHJpY1xuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IFRydWNrRWxlY3RyaWMgPSBjcmVhdGVMdWNpZGVJY29uKCd0cnVjay1lbGVjdHJpYycsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBUcnVja0VsZWN0cmljO1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdNMTQgMThWNmEyIDIgMCAwIDAtMi0ySDRhMiAyIDAgMCAwLTIgMnYxMWExIDEgMCAwIDAgMSAxaDInLCBrZXk6ICd3cmJ1NTMnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTUgMThIOScsIGtleTogJzFseXFpNicgfV0sXG4gIFtcbiAgICAncGF0aCcsXG4gICAge1xuICAgICAgZDogJ00xOSAxOGgyYTEgMSAwIDAgMCAxLTF2LTMuNjVhMSAxIDAgMCAwLS4yMi0uNjI0bC0zLjQ4LTQuMzVBMSAxIDAgMCAwIDE3LjUyIDhIMTQnLFxuICAgICAga2V5OiAnbHlzdzNpJyxcbiAgICB9LFxuICBdLFxuICBbJ2NpcmNsZScsIHsgY3g6ICcxNycsIGN5OiAnMTgnLCByOiAnMicsIGtleTogJzMzMmpxbicgfV0sXG4gIFsnY2lyY2xlJywgeyBjeDogJzcnLCBjeTogJzE4JywgcjogJzInLCBrZXk6ICcxOWllY2QnIH1dLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIFRydWNrXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NVFFnTVRoV05tRXlJRElnTUNBd0lEQXRNaTB5U0RSaE1pQXlJREFnTUNBd0xUSWdNbll4TVdFeElERWdNQ0F3SURBZ01TQXhhRElpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVEUxSURFNFNEa2lJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRURTVJREU0YURKaE1TQXhJREFnTUNBd0lERXRNWFl0TXk0Mk5XRXhJREVnTUNBd0lEQXRMakl5TFM0Mk1qUnNMVE11TkRndE5DNHpOVUV4SURFZ01DQXdJREFnTVRjdU5USWdPRWd4TkNJZ0x6NEtJQ0E4WTJseVkyeGxJR040UFNJeE55SWdZM2s5SWpFNElpQnlQU0l5SWlBdlBnb2dJRHhqYVhKamJHVWdZM2c5SWpjaUlHTjVQU0l4T0NJZ2NqMGlNaUlnTHo0S1BDOXpkbWMrKSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy90cnVja1xuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IFRydWNrID0gY3JlYXRlTHVjaWRlSWNvbigndHJ1Y2snLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgVHJ1Y2s7XG4iLCJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbXG4gIFtcbiAgICAncGF0aCcsXG4gICAge1xuICAgICAgZDogJ20xMiAxMCAyIDR2M2ExIDEgMCAwIDAgMSAxaDJhMSAxIDAgMCAwIDEtMXYtM2E4IDggMCAxIDAtMTYgMHYzYTEgMSAwIDAgMCAxIDFoMmExIDEgMCAwIDAgMS0xdi0zbDItNGg0WicsXG4gICAgICBrZXk6ICcxbGJidjcnLFxuICAgIH0sXG4gIF0sXG4gIFsncGF0aCcsIHsgZDogJ000LjgyIDcuOSA4IDEwJywga2V5OiAnbTl3b3NlJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTE1LjE4IDcuOSAxMiAxMCcsIGtleTogJ3A4ZHAydScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xNi45MyAxMEgyMGEyIDIgMCAwIDEgMCA0SDInLCBrZXk6ICcxMm5zbTcnIH1dLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIFR1cnRsZVxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0p0TVRJZ01UQWdNaUEwZGpOaE1TQXhJREFnTUNBd0lERWdNV2d5WVRFZ01TQXdJREFnTUNBeExURjJMVE5oT0NBNElEQWdNU0F3TFRFMklEQjJNMkV4SURFZ01DQXdJREFnTVNBeGFESmhNU0F4SURBZ01DQXdJREV0TVhZdE0yd3lMVFJvTkZvaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRRdU9ESWdOeTQ1SURnZ01UQWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRURTFMakU0SURjdU9TQXhNaUF4TUNJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTVRZdU9UTWdNVEJJTWpCaE1pQXlJREFnTUNBeElEQWdORWd5SWlBdlBnbzhMM04yWno0SykgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvdHVydGxlXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgVHVydGxlID0gY3JlYXRlTHVjaWRlSWNvbigndHVydGxlJywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IFR1cnRsZTtcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTcgMjFoMTAnLCBrZXk6ICcxYjBjZDUnIH1dLFxuICBbJ3JlY3QnLCB7IHdpZHRoOiAnMjAnLCBoZWlnaHQ6ICcxNCcsIHg6ICcyJywgeTogJzMnLCByeDogJzInLCBrZXk6ICc0OGk2NTEnIH1dLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIFR2TWluaW1hbFxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTnlBeU1XZ3hNQ0lnTHo0S0lDQThjbVZqZENCM2FXUjBhRDBpTWpBaUlHaGxhV2RvZEQwaU1UUWlJSGc5SWpJaUlIazlJak1pSUhKNFBTSXlJaUF2UGdvOEwzTjJaejRLKSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy90di1taW5pbWFsXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgVHZNaW5pbWFsID0gY3JlYXRlTHVjaWRlSWNvbigndHYtbWluaW1hbCcsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBUdk1pbmltYWw7XG4iLCJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbXG4gIFtcbiAgICAncGF0aCcsXG4gICAge1xuICAgICAgZDogJ00xMCA3Ljc1YS43NS43NSAwIDAgMSAxLjE0Mi0uNjM4bDMuNjY0IDIuMjQ5YS43NS43NSAwIDAgMSAwIDEuMjc4bC0zLjY2NCAyLjI1YS43NS43NSAwIDAgMS0xLjE0Mi0uNjR6JyxcbiAgICAgIGtleTogJzFwY3R0YScsXG4gICAgfSxcbiAgXSxcbiAgWydwYXRoJywgeyBkOiAnTTcgMjFoMTAnLCBrZXk6ICcxYjBjZDUnIH1dLFxuICBbJ3JlY3QnLCB7IHdpZHRoOiAnMjAnLCBoZWlnaHQ6ICcxNCcsIHg6ICcyJywgeTogJzMnLCByeDogJzInLCBrZXk6ICc0OGk2NTEnIH1dLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIFR2TWluaW1hbFBsYXlcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1UQWdOeTQzTldFdU56VXVOelVnTUNBd0lERWdNUzR4TkRJdExqWXpPR3d6TGpZMk5DQXlMakkwT1dFdU56VXVOelVnTUNBd0lERWdNQ0F4TGpJM09Hd3RNeTQyTmpRZ01pNHlOV0V1TnpVdU56VWdNQ0F3SURFdE1TNHhOREl0TGpZMGVpSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk55QXlNV2d4TUNJZ0x6NEtJQ0E4Y21WamRDQjNhV1IwYUQwaU1qQWlJR2hsYVdkb2REMGlNVFFpSUhnOUlqSWlJSGs5SWpNaUlISjRQU0l5SWlBdlBnbzhMM04yWno0SykgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvdHYtbWluaW1hbC1wbGF5XG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgVHZNaW5pbWFsUGxheSA9IGNyZWF0ZUx1Y2lkZUljb24oJ3R2LW1pbmltYWwtcGxheScsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBUdk1pbmltYWxQbGF5O1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdtMTcgMi01IDUtNS01Jywga2V5OiAnMTZzYXRxJyB9XSxcbiAgWydyZWN0JywgeyB3aWR0aDogJzIwJywgaGVpZ2h0OiAnMTUnLCB4OiAnMicsIHk6ICc3Jywgcng6ICcyJywga2V5OiAnMWU2dml1JyB9XSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBUdlxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0p0TVRjZ01pMDFJRFV0TlMwMUlpQXZQZ29nSUR4eVpXTjBJSGRwWkhSb1BTSXlNQ0lnYUdWcFoyaDBQU0l4TlNJZ2VEMGlNaUlnZVQwaU55SWdjbmc5SWpJaUlDOCtDand2YzNablBnbz0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL3R2XG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgVHYgPSBjcmVhdGVMdWNpZGVJY29uKCd0dicsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBUdjtcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTIxIDJIM3YxNmg1djRsNC00aDVsNC00VjJ6bS0xMCA5VjdtNSA0VjcnLCBrZXk6ICdjMHl6bm8nIH1dLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIFR3aXRjaFxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTWpFZ01rZ3pkakUyYURWMk5HdzBMVFJvTld3MExUUldNbnB0TFRFd0lEbFdOMjAxSURSV055SWdMejRLUEM5emRtYytDZz09KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy90d2l0Y2hcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKiBAZGVwcmVjYXRlZCBCcmFuZCBpY29ucyBoYXZlIGJlZW4gZGVwcmVjYXRlZCBhbmQgYXJlIGR1ZSB0byBiZSByZW1vdmVkLCBwbGVhc2UgcmVmZXIgdG8gaHR0cHM6Ly9naXRodWIuY29tL2x1Y2lkZS1pY29ucy9sdWNpZGUvaXNzdWVzLzY3MC4gV2UgcmVjb21tZW5kIHVzaW5nIGh0dHBzOi8vc2ltcGxlaWNvbnMub3JnLz9xPXR3aXRjaCBpbnN0ZWFkLiBUaGlzIGljb24gd2lsbCBiZSByZW1vdmVkIGluIHYxLjBcbiAqL1xuY29uc3QgVHdpdGNoID0gY3JlYXRlTHVjaWRlSWNvbigndHdpdGNoJywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IFR3aXRjaDtcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgW1xuICAgICdwYXRoJyxcbiAgICB7XG4gICAgICBkOiAnTTIyIDRzLS43IDIuMS0yIDMuNGMxLjYgMTAtOS40IDE3LjMtMTggMTEuNiAyLjIuMSA0LjQtLjYgNi0yQzMgMTUuNS41IDkuNiAzIDVjMi4yIDIuNiA1LjYgNC4xIDkgNC0uOS00LjIgNC02LjYgNy0zLjggMS4xIDAgMy0xLjIgMy0xLjJ6JyxcbiAgICAgIGtleTogJ3BmZjB6NicsXG4gICAgfSxcbiAgXSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBUd2l0dGVyXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NaklnTkhNdExqY2dNaTR4TFRJZ015NDBZekV1TmlBeE1DMDVMalFnTVRjdU15MHhPQ0F4TVM0MklESXVNaTR4SURRdU5DMHVOaUEyTFRKRE15QXhOUzQxTGpVZ09TNDJJRE1nTldNeUxqSWdNaTQySURVdU5pQTBMakVnT1NBMExTNDVMVFF1TWlBMExUWXVOaUEzTFRNdU9DQXhMakVnTUNBekxURXVNaUF6TFRFdU1ub2lJQzgrQ2p3dmMzWm5QZ289KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy90d2l0dGVyXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICogQGRlcHJlY2F0ZWQgQnJhbmQgaWNvbnMgaGF2ZSBiZWVuIGRlcHJlY2F0ZWQgYW5kIGFyZSBkdWUgdG8gYmUgcmVtb3ZlZCwgcGxlYXNlIHJlZmVyIHRvIGh0dHBzOi8vZ2l0aHViLmNvbS9sdWNpZGUtaWNvbnMvbHVjaWRlL2lzc3Vlcy82NzAuIFdlIHJlY29tbWVuZCB1c2luZyBodHRwczovL3NpbXBsZWljb25zLm9yZy8/cT10d2l0dGVyIGluc3RlYWQuIFRoaXMgaWNvbiB3aWxsIGJlIHJlbW92ZWQgaW4gdjEuMFxuICovXG5jb25zdCBUd2l0dGVyID0gY3JlYXRlTHVjaWRlSWNvbigndHdpdHRlcicsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBUd2l0dGVyO1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdNMTIgNHYxNicsIGtleTogJzE2NTRweicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ000IDdWNWExIDEgMCAwIDEgMS0xaDE0YTEgMSAwIDAgMSAxIDF2MicsIGtleTogJ2UwcjEweicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ005IDIwaDYnLCBrZXk6ICdzNjZ3cGUnIH1dLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIFR5cGVcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1USWdOSFl4TmlJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTkNBM1ZqVmhNU0F4SURBZ01DQXhJREV0TVdneE5HRXhJREVnTUNBd0lERWdNU0F4ZGpJaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRrZ01qQm9OaUlnTHo0S1BDOXpkbWMrQ2c9PSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvdHlwZVxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IFR5cGUgPSBjcmVhdGVMdWNpZGVJY29uKCd0eXBlJywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IFR5cGU7XG4iLCJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbXG4gIFtcbiAgICAncGF0aCcsXG4gICAge1xuICAgICAgZDogJ00xNCAxNi41YS41LjUgMCAwIDAgLjUuNWguNWEyIDIgMCAwIDEgMCA0SDlhMiAyIDAgMCAxIDAtNGguNWEuNS41IDAgMCAwIC41LS41di05YS41LjUgMCAwIDAtLjUtLjVoLTNhLjUuNSAwIDAgMC0uNS41VjhhMiAyIDAgMCAxLTQgMFY1YTIgMiAwIDAgMSAyLTJoMTZhMiAyIDAgMCAxIDIgMnYzYTIgMiAwIDAgMS00IDB2LS41YS41LjUgMCAwIDAtLjUtLjVoLTNhLjUuNSAwIDAgMC0uNS41WicsXG4gICAgICBrZXk6ICcxcmVkYTMnLFxuICAgIH0sXG4gIF0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgVHlwZU91dGxpbmVcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1UUWdNVFl1TldFdU5TNDFJREFnTUNBd0lDNDFMalZvTGpWaE1pQXlJREFnTUNBeElEQWdORWc1WVRJZ01pQXdJREFnTVNBd0xUUm9MalZoTGpVdU5TQXdJREFnTUNBdU5TMHVOWFl0T1dFdU5TNDFJREFnTUNBd0xTNDFMUzQxYUMwellTNDFMalVnTUNBd0lEQXRMalV1TlZZNFlUSWdNaUF3SURBZ01TMDBJREJXTldFeUlESWdNQ0F3SURFZ01pMHlhREUyWVRJZ01pQXdJREFnTVNBeUlESjJNMkV5SURJZ01DQXdJREV0TkNBd2RpMHVOV0V1TlM0MUlEQWdNQ0F3TFM0MUxTNDFhQzB6WVM0MUxqVWdNQ0F3SURBdExqVXVOVm9pSUM4K0Nqd3ZjM1puUGdvPSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvdHlwZS1vdXRsaW5lXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgVHlwZU91dGxpbmUgPSBjcmVhdGVMdWNpZGVJY29uKCd0eXBlLW91dGxpbmUnLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgVHlwZU91dGxpbmU7XG4iLCJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ00xMiAydjEnLCBrZXk6ICcxMXFscDEnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTUuNSAyMWExLjg1IDEuODUgMCAwIDEtMy41LTF2LThIMmExMCAxMCAwIDAgMSAzLjQyOC02LjU3NScsIGtleTogJ2VraTEwcScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xNy41IDEySDIyQTEwIDEwIDAgMCAwIDkuMDA0IDMuNDU1Jywga2V5OiAnbjJheWthJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnbTIgMiAyMCAyMCcsIGtleTogJzFvb2V3eScgfV0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgVW1icmVsbGFPZmZcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1USWdNbll4SWlBdlBnb2dJRHh3WVhSb0lHUTlJazB4TlM0MUlESXhZVEV1T0RVZ01TNDROU0F3SURBZ01TMHpMalV0TVhZdE9FZ3lZVEV3SURFd0lEQWdNQ0F4SURNdU5ESTRMVFl1TlRjMUlpQXZQZ29nSUR4d1lYUm9JR1E5SWsweE55NDFJREV5U0RJeVFURXdJREV3SURBZ01DQXdJRGt1TURBMElETXVORFUxSWlBdlBnb2dJRHh3WVhSb0lHUTlJbTB5SURJZ01qQWdNakFpSUM4K0Nqd3ZjM1puUGdvPSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvdW1icmVsbGEtb2ZmXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgVW1icmVsbGFPZmYgPSBjcmVhdGVMdWNpZGVJY29uKCd1bWJyZWxsYS1vZmYnLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgVW1icmVsbGFPZmY7XG4iLCJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ00yMiAxMmExMC4wNiAxMC4wNiAxIDAgMC0yMCAwWicsIGtleTogJzF0ZXlvcCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xMiAxMnY4YTIgMiAwIDAgMCA0IDAnLCBrZXk6ICd1bHBtb2MnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTIgMnYxJywga2V5OiAnMTFxbHAxJyB9XSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBVbWJyZWxsYVxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTWpJZ01USmhNVEF1TURZZ01UQXVNRFlnTVNBd0lEQXRNakFnTUZvaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRFeUlERXlkamhoTWlBeUlEQWdNQ0F3SURRZ01DSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk1USWdNbll4SWlBdlBnbzhMM04yWno0SykgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvdW1icmVsbGFcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBVbWJyZWxsYSA9IGNyZWF0ZUx1Y2lkZUljb24oJ3VtYnJlbGxhJywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IFVtYnJlbGxhO1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdNNiA0djZhNiA2IDAgMCAwIDEyIDBWNCcsIGtleTogJzlrYjAzOScgfV0sXG4gIFsnbGluZScsIHsgeDE6ICc0JywgeDI6ICcyMCcsIHkxOiAnMjAnLCB5MjogJzIwJywga2V5OiAnbnVuMmFsJyB9XSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBVbmRlcmxpbmVcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk5pQTBkalpoTmlBMklEQWdNQ0F3SURFeUlEQldOQ0lnTHo0S0lDQThiR2x1WlNCNE1UMGlOQ0lnZURJOUlqSXdJaUI1TVQwaU1qQWlJSGt5UFNJeU1DSWdMejRLUEM5emRtYytDZz09KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy91bmRlcmxpbmVcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBVbmRlcmxpbmUgPSBjcmVhdGVMdWNpZGVJY29uKCd1bmRlcmxpbmUnLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgVW5kZXJsaW5lO1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdNOSAxNCA0IDlsNS01Jywga2V5OiAnMTAyczVzJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTQgOWgxMC41YTUuNSA1LjUgMCAwIDEgNS41IDUuNWE1LjUgNS41IDAgMCAxLTUuNSA1LjVIMTEnLCBrZXk6ICdmM2I5c2QnIH1dLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIFVuZG8yXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5PU0F4TkNBMElEbHNOUzAxSWlBdlBnb2dJRHh3WVhSb0lHUTlJazAwSURsb01UQXVOV0UxTGpVZ05TNDFJREFnTUNBeElEVXVOU0ExTGpWaE5TNDFJRFV1TlNBd0lEQWdNUzAxTGpVZ05TNDFTREV4SWlBdlBnbzhMM04yWno0SykgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvdW5kby0yXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgVW5kbzIgPSBjcmVhdGVMdWNpZGVJY29uKCd1bmRvLTInLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgVW5kbzI7XG4iLCJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ00yMSAxN2E5IDkgMCAwIDAtMTUtNi43TDMgMTMnLCBrZXk6ICc4bXA2ejknIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMyA3djZoNicsIGtleTogJzF2Mmg5MCcgfV0sXG4gIFsnY2lyY2xlJywgeyBjeDogJzEyJywgY3k6ICcxNycsIHI6ICcxJywga2V5OiAnMWl4bnR5JyB9XSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBVbmRvRG90XG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NakVnTVRkaE9TQTVJREFnTUNBd0xURTFMVFl1TjB3eklERXpJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHpJRGQyTm1nMklpQXZQZ29nSUR4amFYSmpiR1VnWTNnOUlqRXlJaUJqZVQwaU1UY2lJSEk5SWpFaUlDOCtDand2YzNablBnbz0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL3VuZG8tZG90XG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgVW5kb0RvdCA9IGNyZWF0ZUx1Y2lkZUljb24oJ3VuZG8tZG90JywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IFVuZG9Eb3Q7XG4iLCJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ00zIDd2Nmg2Jywga2V5OiAnMXYyaDkwJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTIxIDE3YTkgOSAwIDAgMC05LTkgOSA5IDAgMCAwLTYgMi4zTDMgMTMnLCBrZXk6ICcxcjZ1dTYnIH1dLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIFVuZG9cbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk15QTNkalpvTmlJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTWpFZ01UZGhPU0E1SURBZ01DQXdMVGt0T1NBNUlEa2dNQ0F3SURBdE5pQXlMak5NTXlBeE15SWdMejRLUEM5emRtYytDZz09KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy91bmRvXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgVW5kbyA9IGNyZWF0ZUx1Y2lkZUljb24oJ3VuZG8nLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgVW5kbztcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTE2IDEyaDYnLCBrZXk6ICcxNXhyeTEnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNOCAxMkgyJywga2V5OiAnMWpxcWw2JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTEyIDJ2MicsIGtleTogJ3R1czAzbScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xMiA4djInLCBrZXk6ICcxd29xaXYnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTIgMTR2MicsIGtleTogJzhqY3h1ZCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xMiAyMHYyJywga2V5OiAnMWxoMWtnJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnbTE5IDE1IDMtMy0zLTMnLCBrZXk6ICd3ank3cnEnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdtNSA5LTMgMyAzIDMnLCBrZXk6ICdqNjRraWUnIH1dLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIFVuZm9sZEhvcml6b250YWxcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1UWWdNVEpvTmlJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOT0NBeE1rZ3lJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHhNaUF5ZGpJaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRFeUlEaDJNaUlnTHo0S0lDQThjR0YwYUNCa1BTSk5NVElnTVRSMk1pSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk1USWdNakIyTWlJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0p0TVRrZ01UVWdNeTB6TFRNdE15SWdMejRLSUNBOGNHRjBhQ0JrUFNKdE5TQTVMVE1nTXlBeklETWlJQzgrQ2p3dmMzWm5QZ289KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy91bmZvbGQtaG9yaXpvbnRhbFxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IFVuZm9sZEhvcml6b250YWwgPSBjcmVhdGVMdWNpZGVJY29uKCd1bmZvbGQtaG9yaXpvbnRhbCcsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBVbmZvbGRIb3Jpem9udGFsO1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdNMTIgMjJ2LTYnLCBrZXk6ICc2bzh1NjEnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTIgOFYyJywga2V5OiAnMXdraWYzJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTQgMTJIMicsIGtleTogJ3JoY3htaScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xMCAxMkg4Jywga2V5OiAnczg4Y3gxJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTE2IDEyaC0yJywga2V5OiAnMTBhc2diJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTIyIDEyaC0yJywga2V5OiAnMTRqZ3lkJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnbTE1IDE5LTMgMy0zLTMnLCBrZXk6ICcxMWV1MDQnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdtMTUgNS0zLTMtMyAzJywga2V5OiAnaXR2cTRyJyB9XSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBVbmZvbGRWZXJ0aWNhbFxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTVRJZ01qSjJMVFlpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVEV5SURoV01pSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk5DQXhNa2d5SWlBdlBnb2dJRHh3WVhSb0lHUTlJazB4TUNBeE1rZzRJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHhOaUF4TW1ndE1pSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk1qSWdNVEpvTFRJaUlDOCtDaUFnUEhCaGRHZ2daRDBpYlRFMUlERTVMVE1nTXkwekxUTWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaWJURTFJRFV0TXkwekxUTWdNeUlnTHo0S1BDOXpkbWMrQ2c9PSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvdW5mb2xkLXZlcnRpY2FsXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgVW5mb2xkVmVydGljYWwgPSBjcmVhdGVMdWNpZGVJY29uKCd1bmZvbGQtdmVydGljYWwnLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgVW5mb2xkVmVydGljYWw7XG4iLCJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbXG4gIFsncmVjdCcsIHsgd2lkdGg6ICc4JywgaGVpZ2h0OiAnNicsIHg6ICc1JywgeTogJzQnLCByeDogJzEnLCBrZXk6ICduemNsa3YnIH1dLFxuICBbJ3JlY3QnLCB7IHdpZHRoOiAnOCcsIGhlaWdodDogJzYnLCB4OiAnMTEnLCB5OiAnMTQnLCByeDogJzEnLCBrZXk6ICc0dHl0d2InIH1dLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIFVuZ3JvdXBcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNtVmpkQ0IzYVdSMGFEMGlPQ0lnYUdWcFoyaDBQU0kySWlCNFBTSTFJaUI1UFNJMElpQnllRDBpTVNJZ0x6NEtJQ0E4Y21WamRDQjNhV1IwYUQwaU9DSWdhR1ZwWjJoMFBTSTJJaUI0UFNJeE1TSWdlVDBpTVRRaUlISjRQU0l4SWlBdlBnbzhMM04yWno0SykgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvdW5ncm91cFxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IFVuZ3JvdXAgPSBjcmVhdGVMdWNpZGVJY29uKCd1bmdyb3VwJywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IFVuZ3JvdXA7XG4iLCJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ00xNCAyMXYtM2EyIDIgMCAwIDAtNCAwdjMnLCBrZXk6ICcxcmdpZWknIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTggMTJoLjAxJywga2V5OiAneWpuZXQ2JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTE4IDE2aC4wMScsIGtleTogJ3Bsdjh6aScgfV0sXG4gIFtcbiAgICAncGF0aCcsXG4gICAge1xuICAgICAgZDogJ00yMiA3YTEgMSAwIDAgMC0xLTFoLTJhMiAyIDAgMCAxLTEuMTQzLS4zNTlMMTMuMTQzIDIuMzZhMiAyIDAgMCAwLTIuMjg2LS4wMDFMNi4xNDMgNS42NEEyIDIgMCAwIDEgNSA2SDNhMSAxIDAgMCAwLTEgMXYxMmEyIDIgMCAwIDAgMiAyaDE2YTIgMiAwIDAgMCAyLTJ6JyxcbiAgICAgIGtleTogJzFvZ21pMycsXG4gICAgfSxcbiAgXSxcbiAgWydwYXRoJywgeyBkOiAnTTYgMTJoLjAxJywga2V5OiAnYzJybG9sJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTYgMTZoLjAxJywga2V5OiAnMXBtamI3JyB9XSxcbiAgWydjaXJjbGUnLCB7IGN4OiAnMTInLCBjeTogJzEwJywgcjogJzInLCBrZXk6ICcxeW9qemsnIH1dLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIFVuaXZlcnNpdHlcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1UUWdNakYyTFROaE1pQXlJREFnTUNBd0xUUWdNSFl6SWlBdlBnb2dJRHh3WVhSb0lHUTlJazB4T0NBeE1tZ3VNREVpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVEU0SURFMmFDNHdNU0lnTHo0S0lDQThjR0YwYUNCa1BTSk5NaklnTjJFeElERWdNQ0F3SURBdE1TMHhhQzB5WVRJZ01pQXdJREFnTVMweExqRTBNeTB1TXpVNVRERXpMakUwTXlBeUxqTTJZVElnTWlBd0lEQWdNQzB5TGpJNE5pMHVNREF4VERZdU1UUXpJRFV1TmpSQk1pQXlJREFnTUNBeElEVWdOa2d6WVRFZ01TQXdJREFnTUMweElERjJNVEpoTWlBeUlEQWdNQ0F3SURJZ01tZ3hObUV5SURJZ01DQXdJREFnTWkweWVpSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk5pQXhNbWd1TURFaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRZZ01UWm9MakF4SWlBdlBnb2dJRHhqYVhKamJHVWdZM2c5SWpFeUlpQmplVDBpTVRBaUlISTlJaklpSUM4K0Nqd3ZjM1puUGdvPSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvdW5pdmVyc2l0eVxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IFVuaXZlcnNpdHkgPSBjcmVhdGVMdWNpZGVJY29uKCd1bml2ZXJzaXR5JywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IFVuaXZlcnNpdHk7XG4iLCJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ00xNSA3aDJhNSA1IDAgMCAxIDAgMTBoLTJtLTYgMEg3QTUgNSAwIDAgMSA3IDdoMicsIGtleTogJzFyZTJuZScgfV0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgVW5saW5rMlxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTVRVZ04yZ3lZVFVnTlNBd0lEQWdNU0F3SURFd2FDMHliUzAySURCSU4wRTFJRFVnTUNBd0lERWdOeUEzYURJaUlDOCtDand2YzNablBnbz0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL3VubGluay0yXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgVW5saW5rMiA9IGNyZWF0ZUx1Y2lkZUljb24oJ3VubGluay0yJywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IFVubGluazI7XG4iLCJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbXG4gIFtcbiAgICAncGF0aCcsXG4gICAge1xuICAgICAgZDogJ20xOC44NCAxMi4yNSAxLjcyLTEuNzFoLS4wMmE1LjAwNCA1LjAwNCAwIDAgMC0uMTItNy4wNyA1LjAwNiA1LjAwNiAwIDAgMC02Ljk1IDBsLTEuNzIgMS43MScsXG4gICAgICBrZXk6ICd5cXp4dDQnLFxuICAgIH0sXG4gIF0sXG4gIFtcbiAgICAncGF0aCcsXG4gICAge1xuICAgICAgZDogJ201LjE3IDExLjc1LTEuNzEgMS43MWE1LjAwNCA1LjAwNCAwIDAgMCAuMTIgNy4wNyA1LjAwNiA1LjAwNiAwIDAgMCA2Ljk1IDBsMS43MS0xLjcxJyxcbiAgICAgIGtleTogJzRxaW5iMCcsXG4gICAgfSxcbiAgXSxcbiAgWydsaW5lJywgeyB4MTogJzgnLCB4MjogJzgnLCB5MTogJzInLCB5MjogJzUnLCBrZXk6ICcxMDQxY3AnIH1dLFxuICBbJ2xpbmUnLCB7IHgxOiAnMicsIHgyOiAnNScsIHkxOiAnOCcsIHkyOiAnOCcsIGtleTogJzE0bTFwNScgfV0sXG4gIFsnbGluZScsIHsgeDE6ICcxNicsIHgyOiAnMTYnLCB5MTogJzE5JywgeTI6ICcyMicsIGtleTogJ3J6ZGlybicgfV0sXG4gIFsnbGluZScsIHsgeDE6ICcxOScsIHgyOiAnMjInLCB5MTogJzE2JywgeTI6ICcxNicsIGtleTogJ294OTA1ZicgfV0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgVW5saW5rXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSnRNVGd1T0RRZ01USXVNalVnTVM0M01pMHhMamN4YUMwdU1ESmhOUzR3TURRZ05TNHdNRFFnTUNBd0lEQXRMakV5TFRjdU1EY2dOUzR3TURZZ05TNHdNRFlnTUNBd0lEQXROaTQ1TlNBd2JDMHhMamN5SURFdU56RWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaWJUVXVNVGNnTVRFdU56VXRNUzQzTVNBeExqY3hZVFV1TURBMElEVXVNREEwSURBZ01DQXdJQzR4TWlBM0xqQTNJRFV1TURBMklEVXVNREEySURBZ01DQXdJRFl1T1RVZ01Hd3hMamN4TFRFdU56RWlJQzgrQ2lBZ1BHeHBibVVnZURFOUlqZ2lJSGd5UFNJNElpQjVNVDBpTWlJZ2VUSTlJalVpSUM4K0NpQWdQR3hwYm1VZ2VERTlJaklpSUhneVBTSTFJaUI1TVQwaU9DSWdlVEk5SWpnaUlDOCtDaUFnUEd4cGJtVWdlREU5SWpFMklpQjRNajBpTVRZaUlIa3hQU0l4T1NJZ2VUSTlJakl5SWlBdlBnb2dJRHhzYVc1bElIZ3hQU0l4T1NJZ2VESTlJakl5SWlCNU1UMGlNVFlpSUhreVBTSXhOaUlnTHo0S1BDOXpkbWMrQ2c9PSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvdW5saW5rXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgVW5saW5rID0gY3JlYXRlTHVjaWRlSWNvbigndW5saW5rJywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IFVubGluaztcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnbTE5IDUgMy0zJywga2V5OiAneWs2aXl2JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnbTIgMjIgMy0zJywga2V5OiAnMTltZ205JyB9XSxcbiAgW1xuICAgICdwYXRoJyxcbiAgICB7IGQ6ICdNNi4zIDIwLjNhMi40IDIuNCAwIDAgMCAzLjQgMEwxMiAxOGwtNi02LTIuMyAyLjNhMi40IDIuNCAwIDAgMCAwIDMuNFonLCBrZXk6ICdnb3o3M3knIH0sXG4gIF0sXG4gIFsncGF0aCcsIHsgZDogJ003LjUgMTMuNSAxMCAxMScsIGtleTogJzd4Z2VlYicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xMC41IDE2LjUgMTMgMTQnLCBrZXk6ICcxMGJ0a2cnIH1dLFxuICBbXG4gICAgJ3BhdGgnLFxuICAgIHsgZDogJ20xMiA2IDYgNiAyLjMtMi4zYTIuNCAyLjQgMCAwIDAgMC0zLjRsLTIuNi0yLjZhMi40IDIuNCAwIDAgMC0zLjQgMFonLCBrZXk6ICcxc25zbnInIH0sXG4gIF0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgVW5wbHVnXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSnRNVGtnTlNBekxUTWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaWJUSWdNaklnTXkweklpQXZQZ29nSUR4d1lYUm9JR1E5SWswMkxqTWdNakF1TTJFeUxqUWdNaTQwSURBZ01DQXdJRE11TkNBd1RERXlJREU0YkMwMkxUWXRNaTR6SURJdU0yRXlMalFnTWk0MElEQWdNQ0F3SURBZ015NDBXaUlnTHo0S0lDQThjR0YwYUNCa1BTSk5OeTQxSURFekxqVWdNVEFnTVRFaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRFd0xqVWdNVFl1TlNBeE15QXhOQ0lnTHo0S0lDQThjR0YwYUNCa1BTSnRNVElnTmlBMklEWWdNaTR6TFRJdU0yRXlMalFnTWk0MElEQWdNQ0F3SURBdE15NDBiQzB5TGpZdE1pNDJZVEl1TkNBeUxqUWdNQ0F3SURBdE15NDBJREJhSWlBdlBnbzhMM04yWno0SykgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvdW5wbHVnXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgVW5wbHVnID0gY3JlYXRlTHVjaWRlSWNvbigndW5wbHVnJywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IFVucGx1ZztcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTEyIDN2MTInLCBrZXk6ICcxeDBqNXMnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdtMTcgOC01LTUtNSA1Jywga2V5OiAnN3E5N3I4JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTIxIDE1djRhMiAyIDAgMCAxLTIgMkg1YTIgMiAwIDAgMS0yLTJ2LTQnLCBrZXk6ICdpaDduM2gnIH1dLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIFVwbG9hZFxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTVRJZ00zWXhNaUlnTHo0S0lDQThjR0YwYUNCa1BTSnRNVGNnT0MwMUxUVXROU0ExSWlBdlBnb2dJRHh3WVhSb0lHUTlJazB5TVNBeE5YWTBZVElnTWlBd0lEQWdNUzB5SURKSU5XRXlJRElnTUNBd0lERXRNaTB5ZGkwMElpQXZQZ284TDNOMlp6NEspIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL3VwbG9hZFxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IFVwbG9hZCA9IGNyZWF0ZUx1Y2lkZUljb24oJ3VwbG9hZCcsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBVcGxvYWQ7XG4iLCJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbXG4gIFsnY2lyY2xlJywgeyBjeDogJzEwJywgY3k6ICc3JywgcjogJzEnLCBrZXk6ICdkeXBhYWQnIH1dLFxuICBbJ2NpcmNsZScsIHsgY3g6ICc0JywgY3k6ICcyMCcsIHI6ICcxJywga2V5OiAnMjJpcWFkJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTQuNyAxOS4zIDE5IDUnLCBrZXk6ICcxZW5xZmMnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdtMjEgMy0zIDEgMiAyWicsIGtleTogJ2Qzb3Y4MicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ005LjI2IDcuNjggNSAxMmwyIDUnLCBrZXk6ICcxZXNhd2onIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdtMTAgMTQgNSAyIDMuNS0zLjUnLCBrZXk6ICd2OG9hbDUnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdtMTggMTIgMS0xIDEgMS0xIDFaJywga2V5OiAnMWJoMjJ2JyB9XSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBVc2JcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOFkybHlZMnhsSUdONFBTSXhNQ0lnWTNrOUlqY2lJSEk5SWpFaUlDOCtDaUFnUEdOcGNtTnNaU0JqZUQwaU5DSWdZM2s5SWpJd0lpQnlQU0l4SWlBdlBnb2dJRHh3WVhSb0lHUTlJazAwTGpjZ01Ua3VNeUF4T1NBMUlpQXZQZ29nSUR4d1lYUm9JR1E5SW0weU1TQXpMVE1nTVNBeUlESmFJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMDVMakkySURjdU5qZ2dOU0F4TW13eUlEVWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaWJURXdJREUwSURVZ01pQXpMalV0TXk0MUlpQXZQZ29nSUR4d1lYUm9JR1E5SW0weE9DQXhNaUF4TFRFZ01TQXhMVEVnTVZvaUlDOCtDand2YzNablBnbz0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL3VzYlxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IFVzYiA9IGNyZWF0ZUx1Y2lkZUljb24oJ3VzYicsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBVc2I7XG4iLCJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ20xNiAxMSAyIDIgNC00Jywga2V5OiAnOXJzYnE1JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTE2IDIxdi0yYTQgNCAwIDAgMC00LTRINmE0IDQgMCAwIDAtNCA0djInLCBrZXk6ICcxeXlpdHEnIH1dLFxuICBbJ2NpcmNsZScsIHsgY3g6ICc5JywgY3k6ICc3JywgcjogJzQnLCBrZXk6ICdudWZrOCcgfV0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgVXNlckNoZWNrXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSnRNVFlnTVRFZ01pQXlJRFF0TkNJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTVRZZ01qRjJMVEpoTkNBMElEQWdNQ0F3TFRRdE5FZzJZVFFnTkNBd0lEQWdNQzAwSURSMk1pSWdMejRLSUNBOFkybHlZMnhsSUdONFBTSTVJaUJqZVQwaU55SWdjajBpTkNJZ0x6NEtQQzl6ZG1jK0NnPT0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL3VzZXItY2hlY2tcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBVc2VyQ2hlY2sgPSBjcmVhdGVMdWNpZGVJY29uKCd1c2VyLWNoZWNrJywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IFVzZXJDaGVjaztcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTEwIDE1SDZhNCA0IDAgMCAwLTQgNHYyJywga2V5OiAnMW5mZ2U2JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnbTE0LjMwNSAxNi41My45MjMtLjM4MicsIGtleTogJzFpdHBzcScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ20xNS4yMjggMTMuODUyLS45MjMtLjM4MycsIGtleTogJ2VwbHBrbScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ20xNi44NTIgMTIuMjI4LS4zODMtLjkyMycsIGtleTogJzEzdjNxMCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ20xNi44NTIgMTcuNzcyLS4zODMuOTI0Jywga2V5OiAnMWk4bW5tJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnbTE5LjE0OCAxMi4yMjguMzgzLS45MjMnLCBrZXk6ICcxcThqMXYnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdtMTkuNTMgMTguNjk2LS4zODItLjkyNCcsIGtleTogJ3ZrMXFqMycgfV0sXG4gIFsncGF0aCcsIHsgZDogJ20yMC43NzIgMTMuODUyLjkyNC0uMzgzJywga2V5OiAnbjg4MHMwJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnbTIwLjc3MiAxNi4xNDguOTI0LjM4MycsIGtleTogJzFnNnhleScgfV0sXG4gIFsnY2lyY2xlJywgeyBjeDogJzE4JywgY3k6ICcxNScsIHI6ICczJywga2V5OiAnZ2pqanZ3JyB9XSxcbiAgWydjaXJjbGUnLCB7IGN4OiAnOScsIGN5OiAnNycsIHI6ICc0Jywga2V5OiAnbnVmazgnIH1dLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIFVzZXJDb2dcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1UQWdNVFZJTm1FMElEUWdNQ0F3SURBdE5DQTBkaklpSUM4K0NpQWdQSEJoZEdnZ1pEMGliVEUwTGpNd05TQXhOaTQxTXk0NU1qTXRMak00TWlJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0p0TVRVdU1qSTRJREV6TGpnMU1pMHVPVEl6TFM0ek9ETWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaWJURTJMamcxTWlBeE1pNHlNamd0TGpNNE15MHVPVEl6SWlBdlBnb2dJRHh3WVhSb0lHUTlJbTB4Tmk0NE5USWdNVGN1TnpjeUxTNHpPRE11T1RJMElpQXZQZ29nSUR4d1lYUm9JR1E5SW0weE9TNHhORGdnTVRJdU1qSTRMak00TXkwdU9USXpJaUF2UGdvZ0lEeHdZWFJvSUdROUltMHhPUzQxTXlBeE9DNDJPVFl0TGpNNE1pMHVPVEkwSWlBdlBnb2dJRHh3WVhSb0lHUTlJbTB5TUM0M056SWdNVE11T0RVeUxqa3lOQzB1TXpneklpQXZQZ29nSUR4d1lYUm9JR1E5SW0weU1DNDNOeklnTVRZdU1UUTRMamt5TkM0ek9ETWlJQzgrQ2lBZ1BHTnBjbU5zWlNCamVEMGlNVGdpSUdONVBTSXhOU0lnY2owaU15SWdMejRLSUNBOFkybHlZMnhsSUdONFBTSTVJaUJqZVQwaU55SWdjajBpTkNJZ0x6NEtQQzl6ZG1jK0NnPT0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL3VzZXItY29nXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgVXNlckNvZyA9IGNyZWF0ZUx1Y2lkZUljb24oJ3VzZXItY29nJywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IFVzZXJDb2c7XG4iLCJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbXG4gIFsnY2lyY2xlJywgeyBjeDogJzEwJywgY3k6ICc3JywgcjogJzQnLCBrZXk6ICdlNDVib3cnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTAuMyAxNUg3YTQgNCAwIDAgMC00IDR2MicsIGtleTogJzNibmt0aycgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xNSAxNS41VjE0YTIgMiAwIDAgMSA0IDB2MS41Jywga2V5OiAnMTJ5bTVpJyB9XSxcbiAgWydyZWN0JywgeyB3aWR0aDogJzgnLCBoZWlnaHQ6ICc1JywgeDogJzEzJywgeTogJzE2Jywgcng6ICcuODk5Jywga2V5OiAnNHAxNzZuJyB9XSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBVc2VyTG9ja1xuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4WTJseVkyeGxJR040UFNJeE1DSWdZM2s5SWpjaUlISTlJalFpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVEV3TGpNZ01UVklOMkUwSURRZ01DQXdJREF0TkNBMGRqSWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRURTFJREUxTGpWV01UUmhNaUF5SURBZ01DQXhJRFFnTUhZeExqVWlJQzgrQ2lBZ1BISmxZM1FnZDJsa2RHZzlJamdpSUdobGFXZG9kRDBpTlNJZ2VEMGlNVE1pSUhrOUlqRTJJaUJ5ZUQwaUxqZzVPU0lnTHo0S1BDOXpkbWMrQ2c9PSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvdXNlci1sb2NrXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgVXNlckxvY2sgPSBjcmVhdGVMdWNpZGVJY29uKCd1c2VyLWxvY2snLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgVXNlckxvY2s7XG4iLCJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ00xNiAyMXYtMmE0IDQgMCAwIDAtNC00SDZhNCA0IDAgMCAwLTQgNHYyJywga2V5OiAnMXl5aXRxJyB9XSxcbiAgWydjaXJjbGUnLCB7IGN4OiAnOScsIGN5OiAnNycsIHI6ICc0Jywga2V5OiAnbnVmazgnIH1dLFxuICBbJ2xpbmUnLCB7IHgxOiAnMjInLCB4MjogJzE2JywgeTE6ICcxMScsIHkyOiAnMTEnLCBrZXk6ICcxc2hqZ2wnIH1dLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIFVzZXJNaW51c1xuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTVRZZ01qRjJMVEpoTkNBMElEQWdNQ0F3TFRRdE5FZzJZVFFnTkNBd0lEQWdNQzAwSURSMk1pSWdMejRLSUNBOFkybHlZMnhsSUdONFBTSTVJaUJqZVQwaU55SWdjajBpTkNJZ0x6NEtJQ0E4YkdsdVpTQjRNVDBpTWpJaUlIZ3lQU0l4TmlJZ2VURTlJakV4SWlCNU1qMGlNVEVpSUM4K0Nqd3ZjM1puUGdvPSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvdXNlci1taW51c1xuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IFVzZXJNaW51cyA9IGNyZWF0ZUx1Y2lkZUljb24oJ3VzZXItbWludXMnLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgVXNlck1pbnVzO1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdNMTEuNSAxNUg3YTQgNCAwIDAgMC00IDR2MicsIGtleTogJzE1bHppaicgfV0sXG4gIFtcbiAgICAncGF0aCcsXG4gICAge1xuICAgICAgZDogJ00yMS4zNzggMTYuNjI2YTEgMSAwIDAgMC0zLjAwNC0zLjAwNGwtNC4wMSA0LjAxMmEyIDIgMCAwIDAtLjUwNi44NTRsLS44MzcgMi44N2EuNS41IDAgMCAwIC42Mi42MmwyLjg3LS44MzdhMiAyIDAgMCAwIC44NTQtLjUwNnonLFxuICAgICAga2V5OiAnMTgxN3lzJyxcbiAgICB9LFxuICBdLFxuICBbJ2NpcmNsZScsIHsgY3g6ICcxMCcsIGN5OiAnNycsIHI6ICc0Jywga2V5OiAnZTQ1Ym93JyB9XSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBVc2VyUGVuXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NVEV1TlNBeE5VZzNZVFFnTkNBd0lEQWdNQzAwSURSMk1pSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk1qRXVNemM0SURFMkxqWXlObUV4SURFZ01DQXdJREF0TXk0d01EUXRNeTR3TURSc0xUUXVNREVnTkM0d01USmhNaUF5SURBZ01DQXdMUzQxTURZdU9EVTBiQzB1T0RNM0lESXVPRGRoTGpVdU5TQXdJREFnTUNBdU5qSXVOakpzTWk0NE55MHVPRE0zWVRJZ01pQXdJREFnTUNBdU9EVTBMUzQxTURaNklpQXZQZ29nSUR4amFYSmpiR1VnWTNnOUlqRXdJaUJqZVQwaU55SWdjajBpTkNJZ0x6NEtQQzl6ZG1jK0NnPT0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL3VzZXItcGVuXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgVXNlclBlbiA9IGNyZWF0ZUx1Y2lkZUljb24oJ3VzZXItcGVuJywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IFVzZXJQZW47XG4iLCJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ00xNiAyMXYtMmE0IDQgMCAwIDAtNC00SDZhNCA0IDAgMCAwLTQgNHYyJywga2V5OiAnMXl5aXRxJyB9XSxcbiAgWydjaXJjbGUnLCB7IGN4OiAnOScsIGN5OiAnNycsIHI6ICc0Jywga2V5OiAnbnVmazgnIH1dLFxuICBbJ2xpbmUnLCB7IHgxOiAnMTknLCB4MjogJzE5JywgeTE6ICc4JywgeTI6ICcxNCcsIGtleTogJzFidnl4bicgfV0sXG4gIFsnbGluZScsIHsgeDE6ICcyMicsIHgyOiAnMTYnLCB5MTogJzExJywgeTI6ICcxMScsIGtleTogJzFzaGpnbCcgfV0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgVXNlclBsdXNcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1UWWdNakYyTFRKaE5DQTBJREFnTUNBd0xUUXRORWcyWVRRZ05DQXdJREFnTUMwMElEUjJNaUlnTHo0S0lDQThZMmx5WTJ4bElHTjRQU0k1SWlCamVUMGlOeUlnY2owaU5DSWdMejRLSUNBOGJHbHVaU0I0TVQwaU1Ua2lJSGd5UFNJeE9TSWdlVEU5SWpnaUlIa3lQU0l4TkNJZ0x6NEtJQ0E4YkdsdVpTQjRNVDBpTWpJaUlIZ3lQU0l4TmlJZ2VURTlJakV4SWlCNU1qMGlNVEVpSUM4K0Nqd3ZjM1puUGdvPSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvdXNlci1wbHVzXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgVXNlclBsdXMgPSBjcmVhdGVMdWNpZGVJY29uKCd1c2VyLXBsdXMnLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgVXNlclBsdXM7XG4iLCJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ00yIDIxYTggOCAwIDAgMSAxMy4yOTItNicsIGtleTogJ2JqcDE0bycgfV0sXG4gIFsnY2lyY2xlJywgeyBjeDogJzEwJywgY3k6ICc4JywgcjogJzUnLCBrZXk6ICdvOTMya2UnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdtMTYgMTkgMiAyIDQtNCcsIGtleTogJzFiMTRtNicgfV0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgVXNlclJvdW5kQ2hlY2tcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1pQXlNV0U0SURnZ01DQXdJREVnTVRNdU1qa3lMVFlpSUM4K0NpQWdQR05wY21Oc1pTQmplRDBpTVRBaUlHTjVQU0k0SWlCeVBTSTFJaUF2UGdvZ0lEeHdZWFJvSUdROUltMHhOaUF4T1NBeUlESWdOQzAwSWlBdlBnbzhMM04yWno0SykgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvdXNlci1yb3VuZC1jaGVja1xuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IFVzZXJSb3VuZENoZWNrID0gY3JlYXRlTHVjaWRlSWNvbigndXNlci1yb3VuZC1jaGVjaycsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBVc2VyUm91bmRDaGVjaztcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnbTE0LjMwNSAxOS41My45MjMtLjM4MicsIGtleTogJzNtNzhmYScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ20xNS4yMjggMTYuODUyLS45MjMtLjM4MycsIGtleTogJ25waXhhcicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ20xNi44NTIgMTUuMjI4LS4zODMtLjkyMycsIGtleTogJzV4Z2dyNycgfV0sXG4gIFsncGF0aCcsIHsgZDogJ20xNi44NTIgMjAuNzcyLS4zODMuOTI0Jywga2V5OiAnZHBmaGY5JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnbTE5LjE0OCAxNS4yMjguMzgzLS45MjMnLCBrZXk6ICcxcmV5eXonIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdtMTkuNTMgMjEuNjk2LS4zODItLjkyNCcsIGtleTogJzFnb2l2YycgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00yIDIxYTggOCAwIDAgMSAxMC40MzQtNy42MicsIGtleTogJzF5ZXpyMicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ20yMC43NzIgMTYuODUyLjkyNC0uMzgzJywga2V5OiAnaHRxa3BoJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnbTIwLjc3MiAxOS4xNDguOTI0LjM4MycsIGtleTogJzl3OXBqcCcgfV0sXG4gIFsnY2lyY2xlJywgeyBjeDogJzEwJywgY3k6ICc4JywgcjogJzUnLCBrZXk6ICdvOTMya2UnIH1dLFxuICBbJ2NpcmNsZScsIHsgY3g6ICcxOCcsIGN5OiAnMTgnLCByOiAnMycsIGtleTogJzF4a3d0MCcgfV0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgVXNlclJvdW5kQ29nXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSnRNVFF1TXpBMUlERTVMalV6TGpreU15MHVNemd5SWlBdlBnb2dJRHh3WVhSb0lHUTlJbTB4TlM0eU1qZ2dNVFl1T0RVeUxTNDVNak10TGpNNE15SWdMejRLSUNBOGNHRjBhQ0JrUFNKdE1UWXVPRFV5SURFMUxqSXlPQzB1TXpnekxTNDVNak1pSUM4K0NpQWdQSEJoZEdnZ1pEMGliVEUyTGpnMU1pQXlNQzQzTnpJdExqTTRNeTQ1TWpRaUlDOCtDaUFnUEhCaGRHZ2daRDBpYlRFNUxqRTBPQ0F4TlM0eU1qZ3VNemd6TFM0NU1qTWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaWJURTVMalV6SURJeExqWTVOaTB1TXpneUxTNDVNalFpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVElnTWpGaE9DQTRJREFnTUNBeElERXdMalF6TkMwM0xqWXlJaUF2UGdvZ0lEeHdZWFJvSUdROUltMHlNQzQzTnpJZ01UWXVPRFV5TGpreU5DMHVNemd6SWlBdlBnb2dJRHh3WVhSb0lHUTlJbTB5TUM0M056SWdNVGt1TVRRNExqa3lOQzR6T0RNaUlDOCtDaUFnUEdOcGNtTnNaU0JqZUQwaU1UQWlJR041UFNJNElpQnlQU0kxSWlBdlBnb2dJRHhqYVhKamJHVWdZM2c5SWpFNElpQmplVDBpTVRnaUlISTlJak1pSUM4K0Nqd3ZjM1puUGdvPSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvdXNlci1yb3VuZC1jb2dcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBVc2VyUm91bmRDb2cgPSBjcmVhdGVMdWNpZGVJY29uKCd1c2VyLXJvdW5kLWNvZycsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBVc2VyUm91bmRDb2c7XG4iLCJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ00yIDIxYTggOCAwIDAgMSAxMy4yOTItNicsIGtleTogJ2JqcDE0bycgfV0sXG4gIFsnY2lyY2xlJywgeyBjeDogJzEwJywgY3k6ICc4JywgcjogJzUnLCBrZXk6ICdvOTMya2UnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMjIgMTloLTYnLCBrZXk6ICd2Y3VxOTgnIH1dLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIFVzZXJSb3VuZE1pbnVzXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NaUF5TVdFNElEZ2dNQ0F3SURFZ01UTXVNamt5TFRZaUlDOCtDaUFnUEdOcGNtTnNaU0JqZUQwaU1UQWlJR041UFNJNElpQnlQU0kxSWlBdlBnb2dJRHh3WVhSb0lHUTlJazB5TWlBeE9XZ3ROaUlnTHo0S1BDOXpkbWMrQ2c9PSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvdXNlci1yb3VuZC1taW51c1xuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IFVzZXJSb3VuZE1pbnVzID0gY3JlYXRlTHVjaWRlSWNvbigndXNlci1yb3VuZC1taW51cycsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBVc2VyUm91bmRNaW51cztcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTIgMjFhOCA4IDAgMCAxIDEwLjgyMS03LjQ4NycsIGtleTogJzFjOGg3eicgfV0sXG4gIFtcbiAgICAncGF0aCcsXG4gICAge1xuICAgICAgZDogJ00yMS4zNzggMTYuNjI2YTEgMSAwIDAgMC0zLjAwNC0zLjAwNGwtNC4wMSA0LjAxMmEyIDIgMCAwIDAtLjUwNi44NTRsLS44MzcgMi44N2EuNS41IDAgMCAwIC42Mi42MmwyLjg3LS44MzdhMiAyIDAgMCAwIC44NTQtLjUwNnonLFxuICAgICAga2V5OiAnMTgxN3lzJyxcbiAgICB9LFxuICBdLFxuICBbJ2NpcmNsZScsIHsgY3g6ICcxMCcsIGN5OiAnOCcsIHI6ICc1Jywga2V5OiAnbzkzMmtlJyB9XSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBVc2VyUm91bmRQZW5cbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1pQXlNV0U0SURnZ01DQXdJREVnTVRBdU9ESXhMVGN1TkRnM0lpQXZQZ29nSUR4d1lYUm9JR1E5SWsweU1TNHpOemdnTVRZdU5qSTJZVEVnTVNBd0lEQWdNQzB6TGpBd05DMHpMakF3Tkd3dE5DNHdNU0EwTGpBeE1tRXlJRElnTUNBd0lEQXRMalV3Tmk0NE5UUnNMUzQ0TXpjZ01pNDROMkV1TlM0MUlEQWdNQ0F3SUM0Mk1pNDJNbXd5TGpnM0xTNDRNemRoTWlBeUlEQWdNQ0F3SUM0NE5UUXRMalV3Tm5vaUlDOCtDaUFnUEdOcGNtTnNaU0JqZUQwaU1UQWlJR041UFNJNElpQnlQU0kxSWlBdlBnbzhMM04yWno0SykgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvdXNlci1yb3VuZC1wZW5cbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBVc2VyUm91bmRQZW4gPSBjcmVhdGVMdWNpZGVJY29uKCd1c2VyLXJvdW5kLXBlbicsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBVc2VyUm91bmRQZW47XG4iLCJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ00yIDIxYTggOCAwIDAgMSAxMy4yOTItNicsIGtleTogJ2JqcDE0bycgfV0sXG4gIFsnY2lyY2xlJywgeyBjeDogJzEwJywgY3k6ICc4JywgcjogJzUnLCBrZXk6ICdvOTMya2UnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTkgMTZ2NicsIGtleTogJ3RkZHQzcycgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00yMiAxOWgtNicsIGtleTogJ3ZjdXE5OCcgfV0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgVXNlclJvdW5kUGx1c1xuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTWlBeU1XRTRJRGdnTUNBd0lERWdNVE11TWpreUxUWWlJQzgrQ2lBZ1BHTnBjbU5zWlNCamVEMGlNVEFpSUdONVBTSTRJaUJ5UFNJMUlpQXZQZ29nSUR4d1lYUm9JR1E5SWsweE9TQXhOblkySWlBdlBnb2dJRHh3WVhSb0lHUTlJazB5TWlBeE9XZ3ROaUlnTHo0S1BDOXpkbWMrQ2c9PSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvdXNlci1yb3VuZC1wbHVzXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgVXNlclJvdW5kUGx1cyA9IGNyZWF0ZUx1Y2lkZUljb24oJ3VzZXItcm91bmQtcGx1cycsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBVc2VyUm91bmRQbHVzO1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbJ2NpcmNsZScsIHsgY3g6ICcxMCcsIGN5OiAnOCcsIHI6ICc1Jywga2V5OiAnbzkzMmtlJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTIgMjFhOCA4IDAgMCAxIDEwLjQzNC03LjYyJywga2V5OiAnMXllenIyJyB9XSxcbiAgWydjaXJjbGUnLCB7IGN4OiAnMTgnLCBjeTogJzE4JywgcjogJzMnLCBrZXk6ICcxeGt3dDAnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdtMjIgMjItMS45LTEuOScsIGtleTogJzFlNXVidicgfV0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgVXNlclJvdW5kU2VhcmNoXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThZMmx5WTJ4bElHTjRQU0l4TUNJZ1kzazlJamdpSUhJOUlqVWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRUSWdNakZoT0NBNElEQWdNQ0F4SURFd0xqUXpOQzAzTGpZeUlpQXZQZ29nSUR4amFYSmpiR1VnWTNnOUlqRTRJaUJqZVQwaU1UZ2lJSEk5SWpNaUlDOCtDaUFnUEhCaGRHZ2daRDBpYlRJeUlESXlMVEV1T1MweExqa2lJQzgrQ2p3dmMzWm5QZ289KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy91c2VyLXJvdW5kLXNlYXJjaFxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IFVzZXJSb3VuZFNlYXJjaCA9IGNyZWF0ZUx1Y2lkZUljb24oJ3VzZXItcm91bmQtc2VhcmNoJywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IFVzZXJSb3VuZFNlYXJjaDtcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTIgMjFhOCA4IDAgMCAxIDExLjg3My03Jywga2V5OiAnNzRma3hxJyB9XSxcbiAgWydjaXJjbGUnLCB7IGN4OiAnMTAnLCBjeTogJzgnLCByOiAnNScsIGtleTogJ285MzJrZScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ20xNyAxNyA1IDUnLCBrZXk6ICdwN291czcnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdtMjIgMTctNSA1Jywga2V5OiAnZ3FubXYwJyB9XSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBVc2VyUm91bmRYXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NaUF5TVdFNElEZ2dNQ0F3SURFZ01URXVPRGN6TFRjaUlDOCtDaUFnUEdOcGNtTnNaU0JqZUQwaU1UQWlJR041UFNJNElpQnlQU0kxSWlBdlBnb2dJRHh3WVhSb0lHUTlJbTB4TnlBeE55QTFJRFVpSUM4K0NpQWdQSEJoZEdnZ1pEMGliVEl5SURFM0xUVWdOU0lnTHo0S1BDOXpkbWMrQ2c9PSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvdXNlci1yb3VuZC14XG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgVXNlclJvdW5kWCA9IGNyZWF0ZUx1Y2lkZUljb24oJ3VzZXItcm91bmQteCcsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBVc2VyUm91bmRYO1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbJ2NpcmNsZScsIHsgY3g6ICcxMicsIGN5OiAnOCcsIHI6ICc1Jywga2V5OiAnMWh5cGNuJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTIwIDIxYTggOCAwIDAgMC0xNiAwJywga2V5OiAncmZna3poJyB9XSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBVc2VyUm91bmRcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOFkybHlZMnhsSUdONFBTSXhNaUlnWTNrOUlqZ2lJSEk5SWpVaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRJd0lESXhZVGdnT0NBd0lEQWdNQzB4TmlBd0lpQXZQZ284TDNOMlp6NEspIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL3VzZXItcm91bmRcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBVc2VyUm91bmQgPSBjcmVhdGVMdWNpZGVJY29uKCd1c2VyLXJvdW5kJywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IFVzZXJSb3VuZDtcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgWydjaXJjbGUnLCB7IGN4OiAnMTAnLCBjeTogJzcnLCByOiAnNCcsIGtleTogJ2U0NWJvdycgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xMC4zIDE1SDdhNCA0IDAgMCAwLTQgNHYyJywga2V5OiAnM2Jua3RrJyB9XSxcbiAgWydjaXJjbGUnLCB7IGN4OiAnMTcnLCBjeTogJzE3JywgcjogJzMnLCBrZXk6ICcxOGI0OXknIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdtMjEgMjEtMS45LTEuOScsIGtleTogJzFnMm45cicgfV0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgVXNlclNlYXJjaFxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4WTJseVkyeGxJR040UFNJeE1DSWdZM2s5SWpjaUlISTlJalFpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVEV3TGpNZ01UVklOMkUwSURRZ01DQXdJREF0TkNBMGRqSWlJQzgrQ2lBZ1BHTnBjbU5zWlNCamVEMGlNVGNpSUdONVBTSXhOeUlnY2owaU15SWdMejRLSUNBOGNHRjBhQ0JrUFNKdE1qRWdNakV0TVM0NUxURXVPU0lnTHo0S1BDOXpkbWMrQ2c9PSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvdXNlci1zZWFyY2hcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBVc2VyU2VhcmNoID0gY3JlYXRlTHVjaWRlSWNvbigndXNlci1zZWFyY2gnLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgVXNlclNlYXJjaDtcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTE2IDIxdi0yYTQgNCAwIDAgMC00LTRINmE0IDQgMCAwIDAtNCA0djInLCBrZXk6ICcxeXlpdHEnIH1dLFxuICBbJ2NpcmNsZScsIHsgY3g6ICc5JywgY3k6ICc3JywgcjogJzQnLCBrZXk6ICdudWZrOCcgfV0sXG4gIFsnbGluZScsIHsgeDE6ICcxNycsIHgyOiAnMjInLCB5MTogJzgnLCB5MjogJzEzJywga2V5OiAnM256engzJyB9XSxcbiAgWydsaW5lJywgeyB4MTogJzIyJywgeDI6ICcxNycsIHkxOiAnOCcsIHkyOiAnMTMnLCBrZXk6ICcxc3dyc2UnIH1dLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIFVzZXJYXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NVFlnTWpGMkxUSmhOQ0EwSURBZ01DQXdMVFF0TkVnMllUUWdOQ0F3SURBZ01DMDBJRFIyTWlJZ0x6NEtJQ0E4WTJseVkyeGxJR040UFNJNUlpQmplVDBpTnlJZ2NqMGlOQ0lnTHo0S0lDQThiR2x1WlNCNE1UMGlNVGNpSUhneVBTSXlNaUlnZVRFOUlqZ2lJSGt5UFNJeE15SWdMejRLSUNBOGJHbHVaU0I0TVQwaU1qSWlJSGd5UFNJeE55SWdlVEU5SWpnaUlIa3lQU0l4TXlJZ0x6NEtQQzl6ZG1jK0NnPT0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL3VzZXIteFxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IFVzZXJYID0gY3JlYXRlTHVjaWRlSWNvbigndXNlci14JywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IFVzZXJYO1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdNMTkgMjF2LTJhNCA0IDAgMCAwLTQtNEg5YTQgNCAwIDAgMC00IDR2MicsIGtleTogJzk3NWtlbCcgfV0sXG4gIFsnY2lyY2xlJywgeyBjeDogJzEyJywgY3k6ICc3JywgcjogJzQnLCBrZXk6ICcxN3lzMGQnIH1dLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIFVzZXJcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1Ua2dNakYyTFRKaE5DQTBJREFnTUNBd0xUUXRORWc1WVRRZ05DQXdJREFnTUMwMElEUjJNaUlnTHo0S0lDQThZMmx5WTJ4bElHTjRQU0l4TWlJZ1kzazlJamNpSUhJOUlqUWlJQzgrQ2p3dmMzWm5QZ289KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy91c2VyXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgVXNlciA9IGNyZWF0ZUx1Y2lkZUljb24oJ3VzZXInLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgVXNlcjtcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTE4IDIxYTggOCAwIDAgMC0xNiAwJywga2V5OiAnM3lwZzdxJyB9XSxcbiAgWydjaXJjbGUnLCB7IGN4OiAnMTAnLCBjeTogJzgnLCByOiAnNScsIGtleTogJ285MzJrZScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00yMiAyMGMwLTMuMzctMi02LjUtNC04YTUgNSAwIDAgMC0uNDUtOC4zJywga2V5OiAnMTBzMDZ4JyB9XSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBVc2Vyc1JvdW5kXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NVGdnTWpGaE9DQTRJREFnTUNBd0xURTJJREFpSUM4K0NpQWdQR05wY21Oc1pTQmplRDBpTVRBaUlHTjVQU0k0SWlCeVBTSTFJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHlNaUF5TUdNd0xUTXVNemN0TWkwMkxqVXROQzA0WVRVZ05TQXdJREFnTUMwdU5EVXRPQzR6SWlBdlBnbzhMM04yWno0SykgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvdXNlcnMtcm91bmRcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBVc2Vyc1JvdW5kID0gY3JlYXRlTHVjaWRlSWNvbigndXNlcnMtcm91bmQnLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgVXNlcnNSb3VuZDtcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTE2IDIxdi0yYTQgNCAwIDAgMC00LTRINmE0IDQgMCAwIDAtNCA0djInLCBrZXk6ICcxeXlpdHEnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTYgMy4xMjhhNCA0IDAgMCAxIDAgNy43NDQnLCBrZXk6ICcxNmdyOGonIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMjIgMjF2LTJhNCA0IDAgMCAwLTMtMy44NycsIGtleTogJ2tzaGVnZCcgfV0sXG4gIFsnY2lyY2xlJywgeyBjeDogJzknLCBjeTogJzcnLCByOiAnNCcsIGtleTogJ251Zms4JyB9XSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBVc2Vyc1xuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTVRZZ01qRjJMVEpoTkNBMElEQWdNQ0F3TFRRdE5FZzJZVFFnTkNBd0lEQWdNQzAwSURSMk1pSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk1UWWdNeTR4TWpoaE5DQTBJREFnTUNBeElEQWdOeTQzTkRRaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRJeUlESXhkaTB5WVRRZ05DQXdJREFnTUMwekxUTXVPRGNpSUM4K0NpQWdQR05wY21Oc1pTQmplRDBpT1NJZ1kzazlJamNpSUhJOUlqUWlJQzgrQ2p3dmMzWm5QZ289KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy91c2Vyc1xuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IFVzZXJzID0gY3JlYXRlTHVjaWRlSWNvbigndXNlcnMnLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgVXNlcnM7XG4iLCJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ20xNiAyLTIuMyAyLjNhMyAzIDAgMCAwIDAgNC4ybDEuOCAxLjhhMyAzIDAgMCAwIDQuMiAwTDIyIDgnLCBrZXk6ICduN3FjamInIH1dLFxuICBbXG4gICAgJ3BhdGgnLFxuICAgIHsgZDogJ00xNSAxNSAzLjMgMy4zYTQuMiA0LjIgMCAwIDAgMCA2bDcuMyA3LjNjLjcuNyAyIC43IDIuOCAwTDE1IDE1Wm0wIDAgNyA3Jywga2V5OiAnZDB1NDhiJyB9LFxuICBdLFxuICBbJ3BhdGgnLCB7IGQ6ICdtMi4xIDIxLjggNi40LTYuMycsIGtleTogJ3luMDRsaCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ20xOSA1LTcgNycsIGtleTogJzE5NGx6ZCcgfV0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgVXRlbnNpbHNDcm9zc2VkXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSnRNVFlnTWkweUxqTWdNaTR6WVRNZ015QXdJREFnTUNBd0lEUXVNbXd4TGpnZ01TNDRZVE1nTXlBd0lEQWdNQ0EwTGpJZ01Fd3lNaUE0SWlBdlBnb2dJRHh3WVhSb0lHUTlJazB4TlNBeE5TQXpMak1nTXk0ellUUXVNaUEwTGpJZ01DQXdJREFnTUNBMmJEY3VNeUEzTGpOakxqY3VOeUF5SUM0M0lESXVPQ0F3VERFMUlERTFXbTB3SURBZ055QTNJaUF2UGdvZ0lEeHdZWFJvSUdROUltMHlMakVnTWpFdU9DQTJMalF0Tmk0eklpQXZQZ29nSUR4d1lYUm9JR1E5SW0weE9TQTFMVGNnTnlJZ0x6NEtQQzl6ZG1jK0NnPT0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL3V0ZW5zaWxzLWNyb3NzZWRcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBVdGVuc2lsc0Nyb3NzZWQgPSBjcmVhdGVMdWNpZGVJY29uKCd1dGVuc2lscy1jcm9zc2VkJywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IFV0ZW5zaWxzQ3Jvc3NlZDtcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTMgMnY3YzAgMS4xLjkgMiAyIDJoNGEyIDIgMCAwIDAgMi0yVjInLCBrZXk6ICdjamYwYTMnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNNyAydjIwJywga2V5OiAnMTQ3M3FwJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTIxIDE1VjJhNSA1IDAgMCAwLTUgNXY2YzAgMS4xLjkgMiAyIDJoM1ptMCAwdjcnLCBrZXk6ICdqMjhlNScgfV0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgVXRlbnNpbHNcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk15QXlkamRqTUNBeExqRXVPU0F5SURJZ01tZzBZVElnTWlBd0lEQWdNQ0F5TFRKV01pSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk55QXlkakl3SWlBdlBnb2dJRHh3WVhSb0lHUTlJazB5TVNBeE5WWXlZVFVnTlNBd0lEQWdNQzAxSURWMk5tTXdJREV1TVM0NUlESWdNaUF5YUROYWJUQWdNSFkzSWlBdlBnbzhMM04yWno0SykgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvdXRlbnNpbHNcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBVdGVuc2lscyA9IGNyZWF0ZUx1Y2lkZUljb24oJ3V0ZW5zaWxzJywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IFV0ZW5zaWxzO1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdNOCAyMXMtNC0zLTQtOSA0LTkgNC05Jywga2V5OiAndXRvOXVkJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTE2IDNzNCAzIDQgOS00IDktNCA5Jywga2V5OiAnNHcydnNxJyB9XSxcbiAgWydsaW5lJywgeyB4MTogJzE1JywgeDI6ICc5JywgeTE6ICc5JywgeTI6ICcxNScsIGtleTogJ2Y3ZGpudicgfV0sXG4gIFsnbGluZScsIHsgeDE6ICc5JywgeDI6ICcxNScsIHkxOiAnOScsIHkyOiAnMTUnLCBrZXk6ICcxc2hzeTgnIH1dLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIFZhcmlhYmxlXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5PQ0F5TVhNdE5DMHpMVFF0T1NBMExUa2dOQzA1SWlBdlBnb2dJRHh3WVhSb0lHUTlJazB4TmlBemN6UWdNeUEwSURrdE5DQTVMVFFnT1NJZ0x6NEtJQ0E4YkdsdVpTQjRNVDBpTVRVaUlIZ3lQU0k1SWlCNU1UMGlPU0lnZVRJOUlqRTFJaUF2UGdvZ0lEeHNhVzVsSUhneFBTSTVJaUI0TWowaU1UVWlJSGt4UFNJNUlpQjVNajBpTVRVaUlDOCtDand2YzNablBnbz0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL3ZhcmlhYmxlXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgVmFyaWFibGUgPSBjcmVhdGVMdWNpZGVJY29uKCd2YXJpYWJsZScsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBWYXJpYWJsZTtcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTEyIDJ2MjAnLCBrZXk6ICd0NnpwM20nIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMiA1aDIwJywga2V5OiAnMWZzMWV4JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTMgM3YyJywga2V5OiAnOWltZGlyJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTcgM3YyJywga2V5OiAnbjBvczcnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTcgM3YyJywga2V5OiAnMWwycmU2JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTIxIDN2MicsIGtleTogJzFkdXVhYycgfV0sXG4gIFsncGF0aCcsIHsgZDogJ20xOSA1LTcgNy03LTcnLCBrZXk6ICcxMzN6eGYnIH1dLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIFV0aWxpdHlQb2xlXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NVElnTW5ZeU1DSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk1pQTFhREl3SWlBdlBnb2dJRHh3WVhSb0lHUTlJazB6SUROMk1pSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk55QXpkaklpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVEUzSUROMk1pSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk1qRWdNM1l5SWlBdlBnb2dJRHh3WVhSb0lHUTlJbTB4T1NBMUxUY2dOeTAzTFRjaUlDOCtDand2YzNablBnbz0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL3V0aWxpdHktcG9sZVxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IFV0aWxpdHlQb2xlID0gY3JlYXRlTHVjaWRlSWNvbigndXRpbGl0eS1wb2xlJywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IFV0aWxpdHlQb2xlO1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbJ3JlY3QnLCB7IHdpZHRoOiAnMTgnLCBoZWlnaHQ6ICcxOCcsIHg6ICczJywgeTogJzMnLCByeDogJzInLCBrZXk6ICdhZml0djcnIH1dLFxuICBbJ2NpcmNsZScsIHsgY3g6ICc3LjUnLCBjeTogJzcuNScsIHI6ICcuNScsIGZpbGw6ICdjdXJyZW50Q29sb3InLCBrZXk6ICdrcXY5NDQnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdtNy45IDcuOSAyLjcgMi43Jywga2V5OiAnaHBleWwzJyB9XSxcbiAgWydjaXJjbGUnLCB7IGN4OiAnMTYuNScsIGN5OiAnNy41JywgcjogJy41JywgZmlsbDogJ2N1cnJlbnRDb2xvcicsIGtleTogJ3cwZWtwZycgfV0sXG4gIFsncGF0aCcsIHsgZDogJ20xMy40IDEwLjYgMi43LTIuNycsIGtleTogJzI2NGMxbicgfV0sXG4gIFsnY2lyY2xlJywgeyBjeDogJzcuNScsIGN5OiAnMTYuNScsIHI6ICcuNScsIGZpbGw6ICdjdXJyZW50Q29sb3InLCBrZXk6ICdua3czbWMnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdtNy45IDE2LjEgMi43LTIuNycsIGtleTogJ3A4MWc1ZScgfV0sXG4gIFsnY2lyY2xlJywgeyBjeDogJzE2LjUnLCBjeTogJzE2LjUnLCByOiAnLjUnLCBmaWxsOiAnY3VycmVudENvbG9yJywga2V5OiAnZnVib3B3JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnbTEzLjQgMTMuNCAyLjcgMi43Jywga2V5OiAnYWJoZWwzJyB9XSxcbiAgWydjaXJjbGUnLCB7IGN4OiAnMTInLCBjeTogJzEyJywgcjogJzInLCBrZXk6ICcxYzlwNzgnIH1dLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIFZhdWx0XG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjbVZqZENCM2FXUjBhRDBpTVRnaUlHaGxhV2RvZEQwaU1UZ2lJSGc5SWpNaUlIazlJak1pSUhKNFBTSXlJaUF2UGdvZ0lEeGphWEpqYkdVZ1kzZzlJamN1TlNJZ1kzazlJamN1TlNJZ2NqMGlMalVpSUdacGJHdzlJbU4xY25KbGJuUkRiMnh2Y2lJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0p0Tnk0NUlEY3VPU0F5TGpjZ01pNDNJaUF2UGdvZ0lEeGphWEpqYkdVZ1kzZzlJakUyTGpVaUlHTjVQU0kzTGpVaUlISTlJaTQxSWlCbWFXeHNQU0pqZFhKeVpXNTBRMjlzYjNJaUlDOCtDaUFnUEhCaGRHZ2daRDBpYlRFekxqUWdNVEF1TmlBeUxqY3RNaTQzSWlBdlBnb2dJRHhqYVhKamJHVWdZM2c5SWpjdU5TSWdZM2s5SWpFMkxqVWlJSEk5SWk0MUlpQm1hV3hzUFNKamRYSnlaVzUwUTI5c2IzSWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaWJUY3VPU0F4Tmk0eElESXVOeTB5TGpjaUlDOCtDaUFnUEdOcGNtTnNaU0JqZUQwaU1UWXVOU0lnWTNrOUlqRTJMalVpSUhJOUlpNDFJaUJtYVd4c1BTSmpkWEp5Wlc1MFEyOXNiM0lpSUM4K0NpQWdQSEJoZEdnZ1pEMGliVEV6TGpRZ01UTXVOQ0F5TGpjZ01pNDNJaUF2UGdvZ0lEeGphWEpqYkdVZ1kzZzlJakV5SWlCamVUMGlNVElpSUhJOUlqSWlJQzgrQ2p3dmMzWm5QZ289KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy92YXVsdFxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IFZhdWx0ID0gY3JlYXRlTHVjaWRlSWNvbigndmF1bHQnLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgVmF1bHQ7XG4iLCJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ00xOS41IDdhMjQgMjQgMCAwIDEgMCAxMCcsIGtleTogJzhuNjB4ZScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ000LjUgN2EyNCAyNCAwIDAgMCAwIDEwJywga2V5OiAnMmxtYWRyJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTcgMTkuNWEyNCAyNCAwIDAgMCAxMCAwJywga2V5OiAnMXE5NG8yJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTcgNC41YTI0IDI0IDAgMCAxIDEwIDAnLCBrZXk6ICcyejh5cGEnIH1dLFxuICBbJ3JlY3QnLCB7IHg6ICcxNycsIHk6ICcxNycsIHdpZHRoOiAnNScsIGhlaWdodDogJzUnLCByeDogJzEnLCBrZXk6ICcxYWM3NHMnIH1dLFxuICBbJ3JlY3QnLCB7IHg6ICcxNycsIHk6ICcyJywgd2lkdGg6ICc1JywgaGVpZ2h0OiAnNScsIHJ4OiAnMScsIGtleTogJzFlN2g1aicgfV0sXG4gIFsncmVjdCcsIHsgeDogJzInLCB5OiAnMTcnLCB3aWR0aDogJzUnLCBoZWlnaHQ6ICc1Jywgcng6ICcxJywga2V5OiAnMXQ0ZWFoJyB9XSxcbiAgWydyZWN0JywgeyB4OiAnMicsIHk6ICcyJywgd2lkdGg6ICc1JywgaGVpZ2h0OiAnNScsIHJ4OiAnMScsIGtleTogJzk0MGRocycgfV0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgVmVjdG9yU3F1YXJlXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NVGt1TlNBM1lUSTBJREkwSURBZ01DQXhJREFnTVRBaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRRdU5TQTNZVEkwSURJMElEQWdNQ0F3SURBZ01UQWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRUY2dNVGt1TldFeU5DQXlOQ0F3SURBZ01DQXhNQ0F3SWlBdlBnb2dJRHh3WVhSb0lHUTlJazAzSURRdU5XRXlOQ0F5TkNBd0lEQWdNU0F4TUNBd0lpQXZQZ29nSUR4eVpXTjBJSGc5SWpFM0lpQjVQU0l4TnlJZ2QybGtkR2c5SWpVaUlHaGxhV2RvZEQwaU5TSWdjbmc5SWpFaUlDOCtDaUFnUEhKbFkzUWdlRDBpTVRjaUlIazlJaklpSUhkcFpIUm9QU0kxSWlCb1pXbG5hSFE5SWpVaUlISjRQU0l4SWlBdlBnb2dJRHh5WldOMElIZzlJaklpSUhrOUlqRTNJaUIzYVdSMGFEMGlOU0lnYUdWcFoyaDBQU0kxSWlCeWVEMGlNU0lnTHo0S0lDQThjbVZqZENCNFBTSXlJaUI1UFNJeUlpQjNhV1IwYUQwaU5TSWdhR1ZwWjJoMFBTSTFJaUJ5ZUQwaU1TSWdMejRLUEM5emRtYytDZz09KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy92ZWN0b3Itc3F1YXJlXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgVmVjdG9yU3F1YXJlID0gY3JlYXRlTHVjaWRlSWNvbigndmVjdG9yLXNxdWFyZScsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBWZWN0b3JTcXVhcmU7XG4iLCJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ00xNiA4cTYgMCA2LTYtNiAwLTYgNicsIGtleTogJ3FzeXljNCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xNy40MSAzLjU5YTEwIDEwIDAgMSAwIDMgMycsIGtleTogJzQxbTloNycgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00yIDJhMjYuNiAyNi42IDAgMCAxIDEwIDIwYy45LTYuODIgMS41LTkuNSA0LTE0Jywga2V5OiAncWl2N2xpJyB9XSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBWZWdhblxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTVRZZ09IRTJJREFnTmkwMkxUWWdNQzAySURZaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRFM0xqUXhJRE11TlRsaE1UQWdNVEFnTUNBeElEQWdNeUF6SWlBdlBnb2dJRHh3WVhSb0lHUTlJazB5SURKaE1qWXVOaUF5Tmk0MklEQWdNQ0F4SURFd0lESXdZeTQ1TFRZdU9ESWdNUzQxTFRrdU5TQTBMVEUwSWlBdlBnbzhMM04yWno0SykgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvdmVnYW5cbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBWZWdhbiA9IGNyZWF0ZUx1Y2lkZUljb24oJ3ZlZ2FuJywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IFZlZ2FuO1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdNMTggMTFjLTEuNSAwLTIuNS41LTMgMicsIGtleTogJzFmb2QwMCcgfV0sXG4gIFtcbiAgICAncGF0aCcsXG4gICAge1xuICAgICAgZDogJ000IDZhMiAyIDAgMCAwLTIgMnY0YTUgNSAwIDAgMCA1IDUgOCA4IDAgMCAxIDUgMiA4IDggMCAwIDEgNS0yIDUgNSAwIDAgMCA1LTVWOGEyIDIgMCAwIDAtMi0yaC0zYTggOCAwIDAgMC01IDIgOCA4IDAgMCAwLTUtMnonLFxuICAgICAga2V5OiAnZDcwaGl0JyxcbiAgICB9LFxuICBdLFxuICBbJ3BhdGgnLCB7IGQ6ICdNNiAxMWMxLjUgMCAyLjUuNSAzIDInLCBrZXk6ICcxMzZmaHQnIH1dLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIFZlbmV0aWFuTWFza1xuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTVRnZ01URmpMVEV1TlNBd0xUSXVOUzQxTFRNZ01pSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk5DQTJZVElnTWlBd0lEQWdNQzB5SURKMk5HRTFJRFVnTUNBd0lEQWdOU0ExSURnZ09DQXdJREFnTVNBMUlESWdPQ0E0SURBZ01DQXhJRFV0TWlBMUlEVWdNQ0F3SURBZ05TMDFWamhoTWlBeUlEQWdNQ0F3TFRJdE1tZ3RNMkU0SURnZ01DQXdJREF0TlNBeUlEZ2dPQ0F3SURBZ01DMDFMVEo2SWlBdlBnb2dJRHh3WVhSb0lHUTlJazAySURFeFl6RXVOU0F3SURJdU5TNDFJRE1nTWlJZ0x6NEtQQzl6ZG1jK0NnPT0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL3ZlbmV0aWFuLW1hc2tcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBWZW5ldGlhbk1hc2sgPSBjcmVhdGVMdWNpZGVJY29uKCd2ZW5ldGlhbi1tYXNrJywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IFZlbmV0aWFuTWFzaztcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTEwIDIwaDQnLCBrZXk6ICduaTJ3YXcnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTIgMTZ2NicsIGtleTogJ2M4YTRnaicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xNyAyaDR2NCcsIGtleTogJ3ZoZTU5JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnbTIxIDItNS40NiA1LjQ2Jywga2V5OiAnMTlreXBmJyB9XSxcbiAgWydjaXJjbGUnLCB7IGN4OiAnMTInLCBjeTogJzExJywgcjogJzUnLCBrZXk6ICcxNmd4eWMnIH1dLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIFZlbnVzQW5kTWFyc1xuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTVRBZ01qQm9OQ0lnTHo0S0lDQThjR0YwYUNCa1BTSk5NVElnTVRaMk5pSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk1UY2dNbWcwZGpRaUlDOCtDaUFnUEhCaGRHZ2daRDBpYlRJeElESXROUzQwTmlBMUxqUTJJaUF2UGdvZ0lEeGphWEpqYkdVZ1kzZzlJakV5SWlCamVUMGlNVEVpSUhJOUlqVWlJQzgrQ2p3dmMzWm5QZ289KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy92ZW51cy1hbmQtbWFyc1xuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IFZlbnVzQW5kTWFycyA9IGNyZWF0ZUx1Y2lkZUljb24oJ3ZlbnVzLWFuZC1tYXJzJywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IFZlbnVzQW5kTWFycztcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTEyIDE1djcnLCBrZXk6ICd0MnhoM2wnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNOSAxOWg2Jywga2V5OiAnNDU2YW0wJyB9XSxcbiAgWydjaXJjbGUnLCB7IGN4OiAnMTInLCBjeTogJzknLCByOiAnNicsIGtleTogJzFudzR0cScgfV0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgVmVudXNcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1USWdNVFYyTnlJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOT1NBeE9XZzJJaUF2UGdvZ0lEeGphWEpqYkdVZ1kzZzlJakV5SWlCamVUMGlPU0lnY2owaU5pSWdMejRLUEM5emRtYytDZz09KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy92ZW51c1xuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IFZlbnVzID0gY3JlYXRlTHVjaWRlSWNvbigndmVudXMnLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgVmVudXM7XG4iLCJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ20yIDggMiAyLTIgMiAyIDItMiAyJywga2V5OiAnc3YxYjEnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdtMjIgOC0yIDIgMiAyLTIgMiAyIDInLCBrZXk6ICcxMDFpNHknIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNOCA4djEwYzAgLjU1LjQ1IDEgMSAxaDZjLjU1IDAgMS0uNDUgMS0xdi0yJywga2V5OiAnMWhiYWQ1JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTE2IDEwLjM0VjZjMC0uNTUtLjQ1LTEtMS0xaC00LjM0Jywga2V5OiAnMXg1dGYwJyB9XSxcbiAgWydsaW5lJywgeyB4MTogJzInLCB4MjogJzIyJywgeTE6ICcyJywgeTI6ICcyMicsIGtleTogJ2E2cDZ1aicgfV0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgVmlicmF0ZU9mZlxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0p0TWlBNElESWdNaTB5SURJZ01pQXlMVElnTWlJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0p0TWpJZ09DMHlJRElnTWlBeUxUSWdNaUF5SURJaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRnZ09IWXhNR013SUM0MU5TNDBOU0F4SURFZ01XZzJZeTQxTlNBd0lERXRMalExSURFdE1YWXRNaUlnTHo0S0lDQThjR0YwYUNCa1BTSk5NVFlnTVRBdU16UldObU13TFM0MU5TMHVORFV0TVMweExURm9MVFF1TXpRaUlDOCtDaUFnUEd4cGJtVWdlREU5SWpJaUlIZ3lQU0l5TWlJZ2VURTlJaklpSUhreVBTSXlNaUlnTHo0S1BDOXpkbWMrQ2c9PSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvdmlicmF0ZS1vZmZcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBWaWJyYXRlT2ZmID0gY3JlYXRlTHVjaWRlSWNvbigndmlicmF0ZS1vZmYnLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgVmlicmF0ZU9mZjtcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnbTIgOCAyIDItMiAyIDIgMi0yIDInLCBrZXk6ICdzdjFiMScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ20yMiA4LTIgMiAyIDItMiAyIDIgMicsIGtleTogJzEwMWk0eScgfV0sXG4gIFsncmVjdCcsIHsgd2lkdGg6ICc4JywgaGVpZ2h0OiAnMTQnLCB4OiAnOCcsIHk6ICc1Jywgcng6ICcxJywga2V5OiAnMW95cmw0JyB9XSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBWaWJyYXRlXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSnRNaUE0SURJZ01pMHlJRElnTWlBeUxUSWdNaUlnTHo0S0lDQThjR0YwYUNCa1BTSnRNaklnT0MweUlESWdNaUF5TFRJZ01pQXlJRElpSUM4K0NpQWdQSEpsWTNRZ2QybGtkR2c5SWpnaUlHaGxhV2RvZEQwaU1UUWlJSGc5SWpnaUlIazlJalVpSUhKNFBTSXhJaUF2UGdvOEwzTjJaejRLKSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy92aWJyYXRlXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgVmlicmF0ZSA9IGNyZWF0ZUx1Y2lkZUljb24oJ3ZpYnJhdGUnLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgVmlicmF0ZTtcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgW1xuICAgICdwYXRoJyxcbiAgICB7IGQ6ICdNMTAuNjYgNkgxNGEyIDIgMCAwIDEgMiAydjIuNWw1LjI0OC0zLjA2MkEuNS41IDAgMCAxIDIyIDcuODd2OC4xOTYnLCBrZXk6ICd3OGpqanQnIH0sXG4gIF0sXG4gIFsncGF0aCcsIHsgZDogJ00xNiAxNmEyIDIgMCAwIDEtMiAySDRhMiAyIDAgMCAxLTItMlY4YTIgMiAwIDAgMSAyLTJoMicsIGtleTogJzF4YXdhNycgfV0sXG4gIFsncGF0aCcsIHsgZDogJ20yIDIgMjAgMjAnLCBrZXk6ICcxb29ld3knIH1dLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIFZpZGVvT2ZmXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NVEF1TmpZZ05rZ3hOR0V5SURJZ01DQXdJREVnTWlBeWRqSXVOV3cxTGpJME9DMHpMakEyTWtFdU5TNDFJREFnTUNBeElESXlJRGN1T0RkMk9DNHhPVFlpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVEUySURFMllUSWdNaUF3SURBZ01TMHlJREpJTkdFeUlESWdNQ0F3SURFdE1pMHlWamhoTWlBeUlEQWdNQ0F4SURJdE1tZ3lJaUF2UGdvZ0lEeHdZWFJvSUdROUltMHlJRElnTWpBZ01qQWlJQzgrQ2p3dmMzWm5QZ289KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy92aWRlby1vZmZcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBWaWRlb09mZiA9IGNyZWF0ZUx1Y2lkZUljb24oJ3ZpZGVvLW9mZicsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBWaWRlb09mZjtcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgW1xuICAgICdwYXRoJyxcbiAgICB7XG4gICAgICBkOiAnbTE2IDEzIDUuMjIzIDMuNDgyYS41LjUgMCAwIDAgLjc3Ny0uNDE2VjcuODdhLjUuNSAwIDAgMC0uNzUyLS40MzJMMTYgMTAuNScsXG4gICAgICBrZXk6ICdmdHltZWMnLFxuICAgIH0sXG4gIF0sXG4gIFsncmVjdCcsIHsgeDogJzInLCB5OiAnNicsIHdpZHRoOiAnMTQnLCBoZWlnaHQ6ICcxMicsIHJ4OiAnMicsIGtleTogJzE1OHgwMScgfV0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgVmlkZW9cbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKdE1UWWdNVE1nTlM0eU1qTWdNeTQwT0RKaExqVXVOU0F3SURBZ01DQXVOemMzTFM0ME1UWldOeTQ0TjJFdU5TNDFJREFnTUNBd0xTNDNOVEl0TGpRek1rd3hOaUF4TUM0MUlpQXZQZ29nSUR4eVpXTjBJSGc5SWpJaUlIazlJallpSUhkcFpIUm9QU0l4TkNJZ2FHVnBaMmgwUFNJeE1pSWdjbmc5SWpJaUlDOCtDand2YzNablBnbz0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL3ZpZGVvXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgVmlkZW8gPSBjcmVhdGVMdWNpZGVJY29uKCd2aWRlbycsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBWaWRlbztcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgWydyZWN0JywgeyB3aWR0aDogJzIwJywgaGVpZ2h0OiAnMTYnLCB4OiAnMicsIHk6ICc0Jywgcng6ICcyJywga2V5OiAnMThuM2sxJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTIgOGgyMCcsIGtleTogJ2QxMWNzNycgfV0sXG4gIFsnY2lyY2xlJywgeyBjeDogJzgnLCBjeTogJzE0JywgcjogJzInLCBrZXk6ICcxazJxcjUnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNOCAxMmg4Jywga2V5OiAnMXdjeWV2JyB9XSxcbiAgWydjaXJjbGUnLCB7IGN4OiAnMTYnLCBjeTogJzE0JywgcjogJzInLCBrZXk6ICcxNGs3bHInIH1dLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIFZpZGVvdGFwZVxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y21WamRDQjNhV1IwYUQwaU1qQWlJR2hsYVdkb2REMGlNVFlpSUhnOUlqSWlJSGs5SWpRaUlISjRQU0l5SWlBdlBnb2dJRHh3WVhSb0lHUTlJazB5SURob01qQWlJQzgrQ2lBZ1BHTnBjbU5zWlNCamVEMGlPQ0lnWTNrOUlqRTBJaUJ5UFNJeUlpQXZQZ29nSUR4d1lYUm9JR1E5SWswNElERXlhRGdpSUM4K0NpQWdQR05wY21Oc1pTQmplRDBpTVRZaUlHTjVQU0l4TkNJZ2NqMGlNaUlnTHo0S1BDOXpkbWMrQ2c9PSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvdmlkZW90YXBlXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgVmlkZW90YXBlID0gY3JlYXRlTHVjaWRlSWNvbigndmlkZW90YXBlJywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IFZpZGVvdGFwZTtcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTIxIDE3djJhMiAyIDAgMCAxLTIgMkg1YTIgMiAwIDAgMS0yLTJ2LTInLCBrZXk6ICdtcnE2NXInIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMjEgN1Y1YTIgMiAwIDAgMC0yLTJINWEyIDIgMCAwIDAtMiAydjInLCBrZXk6ICdiZTN4cXMnIH1dLFxuICBbJ2NpcmNsZScsIHsgY3g6ICcxMicsIGN5OiAnMTInLCByOiAnMScsIGtleTogJzQxaGlsZicgfV0sXG4gIFtcbiAgICAncGF0aCcsXG4gICAge1xuICAgICAgZDogJ00xOC45NDQgMTIuMzNhMSAxIDAgMCAwIDAtLjY2IDcuNSA3LjUgMCAwIDAtMTMuODg4IDAgMSAxIDAgMCAwIDAgLjY2IDcuNSA3LjUgMCAwIDAgMTMuODg4IDAnLFxuICAgICAga2V5OiAnMTFhazRjJyxcbiAgICB9LFxuICBdLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIFZpZXdcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1qRWdNVGQyTW1FeUlESWdNQ0F3SURFdE1pQXlTRFZoTWlBeUlEQWdNQ0F4TFRJdE1uWXRNaUlnTHo0S0lDQThjR0YwYUNCa1BTSk5NakVnTjFZMVlUSWdNaUF3SURBZ01DMHlMVEpJTldFeUlESWdNQ0F3SURBdE1pQXlkaklpSUM4K0NpQWdQR05wY21Oc1pTQmplRDBpTVRJaUlHTjVQU0l4TWlJZ2NqMGlNU0lnTHo0S0lDQThjR0YwYUNCa1BTSk5NVGd1T1RRMElERXlMak16WVRFZ01TQXdJREFnTUNBd0xTNDJOaUEzTGpVZ055NDFJREFnTUNBd0xURXpMamc0T0NBd0lERWdNU0F3SURBZ01DQXdJQzQyTmlBM0xqVWdOeTQxSURBZ01DQXdJREV6TGpnNE9DQXdJaUF2UGdvOEwzTjJaejRLKSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy92aWV3XG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgVmlldyA9IGNyZWF0ZUx1Y2lkZUljb24oJ3ZpZXcnLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgVmlldztcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgWydjaXJjbGUnLCB7IGN4OiAnNicsIGN5OiAnMTInLCByOiAnNCcsIGtleTogJzFlaHRnYScgfV0sXG4gIFsnY2lyY2xlJywgeyBjeDogJzE4JywgY3k6ICcxMicsIHI6ICc0Jywga2V5OiAnNHZhZmw4JyB9XSxcbiAgWydsaW5lJywgeyB4MTogJzYnLCB4MjogJzE4JywgeTE6ICcxNicsIHkyOiAnMTYnLCBrZXk6ICdwbXQ4dXMnIH1dLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIFZvaWNlbWFpbFxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4WTJseVkyeGxJR040UFNJMklpQmplVDBpTVRJaUlISTlJalFpSUM4K0NpQWdQR05wY21Oc1pTQmplRDBpTVRnaUlHTjVQU0l4TWlJZ2NqMGlOQ0lnTHo0S0lDQThiR2x1WlNCNE1UMGlOaUlnZURJOUlqRTRJaUI1TVQwaU1UWWlJSGt5UFNJeE5pSWdMejRLUEM5emRtYytDZz09KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy92b2ljZW1haWxcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBWb2ljZW1haWwgPSBjcmVhdGVMdWNpZGVJY29uKCd2b2ljZW1haWwnLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgVm9pY2VtYWlsO1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdNMTEuMSA3LjFhMTYuNTUgMTYuNTUgMCAwIDEgMTAuOSA0Jywga2V5OiAnMjg4MHdpJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTEyIDEyYTEyLjYgMTIuNiAwIDAgMS04LjcgNScsIGtleTogJzExM3NqYScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xNi44IDEzLjZhMTYuNTUgMTYuNTUgMCAwIDEtOSA3LjUnLCBrZXk6ICcxcW1zZ2wnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMjAuNyAxN2ExMi44IDEyLjggMCAwIDAtOC43LTUgMTMuMyAxMy4zIDAgMCAxIDAtMTAnLCBrZXk6ICcxYm1lcXAnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNNi4zIDMuOGExNi41NSAxNi41NSAwIDAgMCAxLjkgMTEuNScsIGtleTogJ2lla3p2OScgfV0sXG4gIFsnY2lyY2xlJywgeyBjeDogJzEyJywgY3k6ICcxMicsIHI6ICcxMCcsIGtleTogJzFtZ2xheScgfV0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgVm9sbGV5YmFsbFxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTVRFdU1TQTNMakZoTVRZdU5UVWdNVFl1TlRVZ01DQXdJREVnTVRBdU9TQTBJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHhNaUF4TW1FeE1pNDJJREV5TGpZZ01DQXdJREV0T0M0M0lEVWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRURTJMamdnTVRNdU5tRXhOaTQxTlNBeE5pNDFOU0F3SURBZ01TMDVJRGN1TlNJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTWpBdU55QXhOMkV4TWk0NElERXlMamdnTUNBd0lEQXRPQzQzTFRVZ01UTXVNeUF4TXk0eklEQWdNQ0F4SURBdE1UQWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRUWXVNeUF6TGpoaE1UWXVOVFVnTVRZdU5UVWdNQ0F3SURBZ01TNDVJREV4TGpVaUlDOCtDaUFnUEdOcGNtTnNaU0JqZUQwaU1USWlJR041UFNJeE1pSWdjajBpTVRBaUlDOCtDand2YzNablBnbz0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL3ZvbGxleWJhbGxcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBWb2xsZXliYWxsID0gY3JlYXRlTHVjaWRlSWNvbigndm9sbGV5YmFsbCcsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBWb2xsZXliYWxsO1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbXG4gICAgJ3BhdGgnLFxuICAgIHtcbiAgICAgIGQ6ICdNMTEgNC43MDJhLjcwNS43MDUgMCAwIDAtMS4yMDMtLjQ5OEw2LjQxMyA3LjU4N0ExLjQgMS40IDAgMCAxIDUuNDE2IDhIM2ExIDEgMCAwIDAtMSAxdjZhMSAxIDAgMCAwIDEgMWgyLjQxNmExLjQgMS40IDAgMCAxIC45OTcuNDEzbDMuMzgzIDMuMzg0QS43MDUuNzA1IDAgMCAwIDExIDE5LjI5OHonLFxuICAgICAga2V5OiAndXFqOXV3JyxcbiAgICB9LFxuICBdLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTYgOWE1IDUgMCAwIDEgMCA2Jywga2V5OiAnMXE2azJiJyB9XSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBWb2x1bWUxXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NVEVnTkM0M01ESmhMamN3TlM0M01EVWdNQ0F3SURBdE1TNHlNRE10TGpRNU9FdzJMalF4TXlBM0xqVTROMEV4TGpRZ01TNDBJREFnTUNBeElEVXVOREUySURoSU0yRXhJREVnTUNBd0lEQXRNU0F4ZGpaaE1TQXhJREFnTUNBd0lERWdNV2d5TGpReE5tRXhMalFnTVM0MElEQWdNQ0F4SUM0NU9UY3VOREV6YkRNdU16Z3pJRE11TXpnMFFTNDNNRFV1TnpBMUlEQWdNQ0F3SURFeElERTVMakk1T0hvaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRFMklEbGhOU0ExSURBZ01DQXhJREFnTmlJZ0x6NEtQQzl6ZG1jK0NnPT0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL3ZvbHVtZS0xXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgVm9sdW1lMSA9IGNyZWF0ZUx1Y2lkZUljb24oJ3ZvbHVtZS0xJywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IFZvbHVtZTE7XG4iLCJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbXG4gIFtcbiAgICAncGF0aCcsXG4gICAge1xuICAgICAgZDogJ00xMSA0LjcwMmEuNzA1LjcwNSAwIDAgMC0xLjIwMy0uNDk4TDYuNDEzIDcuNTg3QTEuNCAxLjQgMCAwIDEgNS40MTYgOEgzYTEgMSAwIDAgMC0xIDF2NmExIDEgMCAwIDAgMSAxaDIuNDE2YTEuNCAxLjQgMCAwIDEgLjk5Ny40MTNsMy4zODMgMy4zODRBLjcwNS43MDUgMCAwIDAgMTEgMTkuMjk4eicsXG4gICAgICBrZXk6ICd1cWo5dXcnLFxuICAgIH0sXG4gIF0sXG4gIFsncGF0aCcsIHsgZDogJ00xNiA5YTUgNSAwIDAgMSAwIDYnLCBrZXk6ICcxcTZrMmInIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTkuMzY0IDE4LjM2NGE5IDkgMCAwIDAgMC0xMi43MjgnLCBrZXk6ICdpandrZ2EnIH1dLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIFZvbHVtZTJcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1URWdOQzQzTURKaExqY3dOUzQzTURVZ01DQXdJREF0TVM0eU1ETXRMalE1T0V3MkxqUXhNeUEzTGpVNE4wRXhMalFnTVM0MElEQWdNQ0F4SURVdU5ERTJJRGhJTTJFeElERWdNQ0F3SURBdE1TQXhkalpoTVNBeElEQWdNQ0F3SURFZ01XZ3lMalF4Tm1FeExqUWdNUzQwSURBZ01DQXhJQzQ1T1RjdU5ERXpiRE11TXpneklETXVNemcwUVM0M01EVXVOekExSURBZ01DQXdJREV4SURFNUxqSTVPSG9pSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVEUySURsaE5TQTFJREFnTUNBeElEQWdOaUlnTHo0S0lDQThjR0YwYUNCa1BTSk5NVGt1TXpZMElERTRMak0yTkdFNUlEa2dNQ0F3SURBZ01DMHhNaTQzTWpnaUlDOCtDand2YzNablBnbz0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL3ZvbHVtZS0yXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgVm9sdW1lMiA9IGNyZWF0ZUx1Y2lkZUljb24oJ3ZvbHVtZS0yJywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IFZvbHVtZTI7XG4iLCJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ00xNiA5YTUgNSAwIDAgMSAuOTUgMi4yOTMnLCBrZXk6ICcxZmd5ZzgnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTkuMzY0IDUuNjM2YTkgOSAwIDAgMSAxLjg4OSA5Ljk2Jywga2V5OiAnbDN6eGFlJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnbTIgMiAyMCAyMCcsIGtleTogJzFvb2V3eScgfV0sXG4gIFtcbiAgICAncGF0aCcsXG4gICAge1xuICAgICAgZDogJ203IDctLjU4Ny41ODdBMS40IDEuNCAwIDAgMSA1LjQxNiA4SDNhMSAxIDAgMCAwLTEgMXY2YTEgMSAwIDAgMCAxIDFoMi40MTZhMS40IDEuNCAwIDAgMSAuOTk3LjQxM2wzLjM4MyAzLjM4NEEuNzA1LjcwNSAwIDAgMCAxMSAxOS4yOThWMTEnLFxuICAgICAga2V5OiAnMWdid293JyxcbiAgICB9LFxuICBdLFxuICBbJ3BhdGgnLCB7IGQ6ICdNOS44MjggNC4xNzJBLjY4Ni42ODYgMCAwIDEgMTEgNC42NTd2LjY4NicsIGtleTogJ3MyamUweScgfV0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgVm9sdW1lT2ZmXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NVFlnT1dFMUlEVWdNQ0F3SURFZ0xqazFJREl1TWpreklpQXZQZ29nSUR4d1lYUm9JR1E5SWsweE9TNHpOalFnTlM0Mk16WmhPU0E1SURBZ01DQXhJREV1T0RnNUlEa3VPVFlpSUM4K0NpQWdQSEJoZEdnZ1pEMGliVElnTWlBeU1DQXlNQ0lnTHo0S0lDQThjR0YwYUNCa1BTSnROeUEzTFM0MU9EY3VOVGczUVRFdU5DQXhMalFnTUNBd0lERWdOUzQwTVRZZ09FZ3pZVEVnTVNBd0lEQWdNQzB4SURGMk5tRXhJREVnTUNBd0lEQWdNU0F4YURJdU5ERTJZVEV1TkNBeExqUWdNQ0F3SURFZ0xqazVOeTQwTVROc015NHpPRE1nTXk0ek9EUkJMamN3TlM0M01EVWdNQ0F3SURBZ01URWdNVGt1TWprNFZqRXhJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMDVMamd5T0NBMExqRTNNa0V1TmpnMkxqWTROaUF3SURBZ01TQXhNU0EwTGpZMU4zWXVOamcySWlBdlBnbzhMM04yWno0SykgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvdm9sdW1lLW9mZlxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IFZvbHVtZU9mZiA9IGNyZWF0ZUx1Y2lkZUljb24oJ3ZvbHVtZS1vZmYnLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgVm9sdW1lT2ZmO1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbXG4gICAgJ3BhdGgnLFxuICAgIHtcbiAgICAgIGQ6ICdNMTEgNC43MDJhLjcwNS43MDUgMCAwIDAtMS4yMDMtLjQ5OEw2LjQxMyA3LjU4N0ExLjQgMS40IDAgMCAxIDUuNDE2IDhIM2ExIDEgMCAwIDAtMSAxdjZhMSAxIDAgMCAwIDEgMWgyLjQxNmExLjQgMS40IDAgMCAxIC45OTcuNDEzbDMuMzgzIDMuMzg0QS43MDUuNzA1IDAgMCAwIDExIDE5LjI5OHonLFxuICAgICAga2V5OiAndXFqOXV3JyxcbiAgICB9LFxuICBdLFxuICBbJ2xpbmUnLCB7IHgxOiAnMjInLCB4MjogJzE2JywgeTE6ICc5JywgeTI6ICcxNScsIGtleTogJzFld2gxNicgfV0sXG4gIFsnbGluZScsIHsgeDE6ICcxNicsIHgyOiAnMjInLCB5MTogJzknLCB5MjogJzE1Jywga2V5OiAnNXlrencxJyB9XSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBWb2x1bWVYXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NVEVnTkM0M01ESmhMamN3TlM0M01EVWdNQ0F3SURBdE1TNHlNRE10TGpRNU9FdzJMalF4TXlBM0xqVTROMEV4TGpRZ01TNDBJREFnTUNBeElEVXVOREUySURoSU0yRXhJREVnTUNBd0lEQXRNU0F4ZGpaaE1TQXhJREFnTUNBd0lERWdNV2d5TGpReE5tRXhMalFnTVM0MElEQWdNQ0F4SUM0NU9UY3VOREV6YkRNdU16Z3pJRE11TXpnMFFTNDNNRFV1TnpBMUlEQWdNQ0F3SURFeElERTVMakk1T0hvaUlDOCtDaUFnUEd4cGJtVWdlREU5SWpJeUlpQjRNajBpTVRZaUlIa3hQU0k1SWlCNU1qMGlNVFVpSUM4K0NpQWdQR3hwYm1VZ2VERTlJakUySWlCNE1qMGlNaklpSUhreFBTSTVJaUI1TWowaU1UVWlJQzgrQ2p3dmMzWm5QZ289KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy92b2x1bWUteFxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IFZvbHVtZVggPSBjcmVhdGVMdWNpZGVJY29uKCd2b2x1bWUteCcsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBWb2x1bWVYO1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbXG4gICAgJ3BhdGgnLFxuICAgIHtcbiAgICAgIGQ6ICdNMTEgNC43MDJhLjcwNS43MDUgMCAwIDAtMS4yMDMtLjQ5OEw2LjQxMyA3LjU4N0ExLjQgMS40IDAgMCAxIDUuNDE2IDhIM2ExIDEgMCAwIDAtMSAxdjZhMSAxIDAgMCAwIDEgMWgyLjQxNmExLjQgMS40IDAgMCAxIC45OTcuNDEzbDMuMzgzIDMuMzg0QS43MDUuNzA1IDAgMCAwIDExIDE5LjI5OHonLFxuICAgICAga2V5OiAndXFqOXV3JyxcbiAgICB9LFxuICBdLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIFZvbHVtZVxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTVRFZ05DNDNNREpoTGpjd05TNDNNRFVnTUNBd0lEQXRNUzR5TURNdExqUTVPRXcyTGpReE15QTNMalU0TjBFeExqUWdNUzQwSURBZ01DQXhJRFV1TkRFMklEaElNMkV4SURFZ01DQXdJREF0TVNBeGRqWmhNU0F4SURBZ01DQXdJREVnTVdneUxqUXhObUV4TGpRZ01TNDBJREFnTUNBeElDNDVPVGN1TkRFemJETXVNemd6SURNdU16ZzBRUzQzTURVdU56QTFJREFnTUNBd0lERXhJREU1TGpJNU9Ib2lJQzgrQ2p3dmMzWm5QZ289KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy92b2x1bWVcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBWb2x1bWUgPSBjcmVhdGVMdWNpZGVJY29uKCd2b2x1bWUnLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgVm9sdW1lO1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdtOSAxMiAyIDIgNC00Jywga2V5OiAnZHptbTc0JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTUgN2MwLTEuMS45LTIgMi0yaDEwYTIgMiAwIDAgMSAyIDJ2MTJINVY3WicsIGtleTogJzFlem91ZScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00yMiAxOUgyJywga2V5OiAnbnVyaXc1JyB9XSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBWb3RlXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSnRPU0F4TWlBeUlESWdOQzAwSWlBdlBnb2dJRHh3WVhSb0lHUTlJazAxSURkak1DMHhMakV1T1MweUlESXRNbWd4TUdFeUlESWdNQ0F3SURFZ01pQXlkakV5U0RWV04xb2lJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRUSXlJREU1U0RJaUlDOCtDand2YzNablBnbz0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL3ZvdGVcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBWb3RlID0gY3JlYXRlTHVjaWRlSWNvbigndm90ZScsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBWb3RlO1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbJ3JlY3QnLCB7IHdpZHRoOiAnMTgnLCBoZWlnaHQ6ICcxOCcsIHg6ICczJywgeTogJzMnLCByeDogJzInLCBrZXk6ICdhZml0djcnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMyA5YTIgMiAwIDAgMSAyLTJoMTRhMiAyIDAgMCAxIDIgMicsIGtleTogJzQxMjVlbCcgfV0sXG4gIFtcbiAgICAncGF0aCcsXG4gICAge1xuICAgICAgZDogJ00zIDExaDNjLjggMCAxLjYuMyAyLjEuOWwxLjEuOWMxLjYgMS42IDQuMSAxLjYgNS43IDBsMS4xLS45Yy41LS41IDEuMy0uOSAyLjEtLjlIMjEnLFxuICAgICAga2V5OiAnMWRwa2k2JyxcbiAgICB9LFxuICBdLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIFdhbGxldENhcmRzXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjbVZqZENCM2FXUjBhRDBpTVRnaUlHaGxhV2RvZEQwaU1UZ2lJSGc5SWpNaUlIazlJak1pSUhKNFBTSXlJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHpJRGxoTWlBeUlEQWdNQ0F4SURJdE1tZ3hOR0V5SURJZ01DQXdJREVnTWlBeUlpQXZQZ29nSUR4d1lYUm9JR1E5SWsweklERXhhRE5qTGpnZ01DQXhMall1TXlBeUxqRXVPV3d4TGpFdU9XTXhMallnTVM0MklEUXVNU0F4TGpZZ05TNDNJREJzTVM0eExTNDVZeTQxTFM0MUlERXVNeTB1T1NBeUxqRXRMamxJTWpFaUlDOCtDand2YzNablBnbz0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL3dhbGxldC1jYXJkc1xuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IFdhbGxldENhcmRzID0gY3JlYXRlTHVjaWRlSWNvbignd2FsbGV0LWNhcmRzJywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IFdhbGxldENhcmRzO1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdNMTcgMTRoLjAxJywga2V5OiAnN29xajh6JyB9XSxcbiAgW1xuICAgICdwYXRoJyxcbiAgICB7XG4gICAgICBkOiAnTTcgN2gxMmEyIDIgMCAwIDEgMiAydjEwYTIgMiAwIDAgMS0yIDJINWEyIDIgMCAwIDEtMi0yVjVhMiAyIDAgMCAxIDItMmgxNCcsXG4gICAgICBrZXk6ICd1MXJxZXcnLFxuICAgIH0sXG4gIF0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgV2FsbGV0TWluaW1hbFxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTVRjZ01UUm9MakF4SWlBdlBnb2dJRHh3WVhSb0lHUTlJazAzSURkb01USmhNaUF5SURBZ01DQXhJRElnTW5ZeE1HRXlJRElnTUNBd0lERXRNaUF5U0RWaE1pQXlJREFnTUNBeExUSXRNbFkxWVRJZ01pQXdJREFnTVNBeUxUSm9NVFFpSUM4K0Nqd3ZjM1puUGdvPSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvd2FsbGV0LW1pbmltYWxcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBXYWxsZXRNaW5pbWFsID0gY3JlYXRlTHVjaWRlSWNvbignd2FsbGV0LW1pbmltYWwnLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgV2FsbGV0TWluaW1hbDtcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgW1xuICAgICdwYXRoJyxcbiAgICB7XG4gICAgICBkOiAnTTE5IDdWNGExIDEgMCAwIDAtMS0xSDVhMiAyIDAgMCAwIDAgNGgxNWExIDEgMCAwIDEgMSAxdjRoLTNhMiAyIDAgMCAwIDAgNGgzYTEgMSAwIDAgMCAxLTF2LTJhMSAxIDAgMCAwLTEtMScsXG4gICAgICBrZXk6ICcxOGV0YjYnLFxuICAgIH0sXG4gIF0sXG4gIFsncGF0aCcsIHsgZDogJ00zIDV2MTRhMiAyIDAgMCAwIDIgMmgxNWExIDEgMCAwIDAgMS0xdi00Jywga2V5OiAneG9jMHE0JyB9XSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBXYWxsZXRcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1Ua2dOMVkwWVRFZ01TQXdJREFnTUMweExURklOV0V5SURJZ01DQXdJREFnTUNBMGFERTFZVEVnTVNBd0lEQWdNU0F4SURGMk5HZ3RNMkV5SURJZ01DQXdJREFnTUNBMGFETmhNU0F4SURBZ01DQXdJREV0TVhZdE1tRXhJREVnTUNBd0lEQXRNUzB4SWlBdlBnb2dJRHh3WVhSb0lHUTlJazB6SURWMk1UUmhNaUF5SURBZ01DQXdJRElnTW1neE5XRXhJREVnTUNBd0lEQWdNUzB4ZGkwMElpQXZQZ284TDNOMlp6NEspIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL3dhbGxldFxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IFdhbGxldCA9IGNyZWF0ZUx1Y2lkZUljb24oJ3dhbGxldCcsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBXYWxsZXQ7XG4iLCJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbXG4gIFsnY2lyY2xlJywgeyBjeDogJzgnLCBjeTogJzknLCByOiAnMicsIGtleTogJ2dqemw5ZCcgfV0sXG4gIFtcbiAgICAncGF0aCcsXG4gICAge1xuICAgICAgZDogJ205IDE3IDYuMS02LjFhMiAyIDAgMCAxIDIuODEuMDFMMjIgMTVWNWEyIDIgMCAwIDAtMi0ySDRhMiAyIDAgMCAwLTIgMnYxMGEyIDIgMCAwIDAgMiAyaDE2YTIgMiAwIDAgMCAyLTInLFxuICAgICAga2V5OiAnNjl4aDQwJyxcbiAgICB9LFxuICBdLFxuICBbJ3BhdGgnLCB7IGQ6ICdNOCAyMWg4Jywga2V5OiAnMWV2NmYzJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTEyIDE3djQnLCBrZXk6ICcxcml3dmgnIH1dLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIFdhbGxwYXBlclxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4WTJseVkyeGxJR040UFNJNElpQmplVDBpT1NJZ2NqMGlNaUlnTHo0S0lDQThjR0YwYUNCa1BTSnRPU0F4TnlBMkxqRXROaTR4WVRJZ01pQXdJREFnTVNBeUxqZ3hMakF4VERJeUlERTFWalZoTWlBeUlEQWdNQ0F3TFRJdE1rZzBZVElnTWlBd0lEQWdNQzB5SURKMk1UQmhNaUF5SURBZ01DQXdJRElnTW1neE5tRXlJRElnTUNBd0lEQWdNaTB5SWlBdlBnb2dJRHh3WVhSb0lHUTlJazA0SURJeGFEZ2lJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRURXlJREUzZGpRaUlDOCtDand2YzNablBnbz0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL3dhbGxwYXBlclxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IFdhbGxwYXBlciA9IGNyZWF0ZUx1Y2lkZUljb24oJ3dhbGxwYXBlcicsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBXYWxscGFwZXI7XG4iLCJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbXG4gIFtcbiAgICAncGF0aCcsXG4gICAge1xuICAgICAgZDogJ20yMS42NCAzLjY0LTEuMjgtMS4yOGExLjIxIDEuMjEgMCAwIDAtMS43MiAwTDIuMzYgMTguNjRhMS4yMSAxLjIxIDAgMCAwIDAgMS43MmwxLjI4IDEuMjhhMS4yIDEuMiAwIDAgMCAxLjcyIDBMMjEuNjQgNS4zNmExLjIgMS4yIDAgMCAwIDAtMS43MicsXG4gICAgICBrZXk6ICd1bDc0bzYnLFxuICAgIH0sXG4gIF0sXG4gIFsncGF0aCcsIHsgZDogJ20xNCA3IDMgMycsIGtleTogJzFyNW40MicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ001IDZ2NCcsIGtleTogJ2lsYjhiYScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xOSAxNHY0Jywga2V5OiAnYmxocHVnJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTEwIDJ2MicsIGtleTogJzd1MHFkYycgfV0sXG4gIFsncGF0aCcsIHsgZDogJ003IDhIMycsIGtleTogJ3pmYjZ5cicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00yMSAxNmgtNCcsIGtleTogJzFjbm1veCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xMSAzSDknLCBrZXk6ICcxb2JwN3UnIH1dLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIFdhbmRTcGFya2xlc1xuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0p0TWpFdU5qUWdNeTQyTkMweExqSTRMVEV1TWpoaE1TNHlNU0F4TGpJeElEQWdNQ0F3TFRFdU56SWdNRXd5TGpNMklERTRMalkwWVRFdU1qRWdNUzR5TVNBd0lEQWdNQ0F3SURFdU56SnNNUzR5T0NBeExqSTRZVEV1TWlBeExqSWdNQ0F3SURBZ01TNDNNaUF3VERJeExqWTBJRFV1TXpaaE1TNHlJREV1TWlBd0lEQWdNQ0F3TFRFdU56SWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaWJURTBJRGNnTXlBeklpQXZQZ29nSUR4d1lYUm9JR1E5SWswMUlEWjJOQ0lnTHo0S0lDQThjR0YwYUNCa1BTSk5NVGtnTVRSMk5DSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk1UQWdNbll5SWlBdlBnb2dJRHh3WVhSb0lHUTlJazAzSURoSU15SWdMejRLSUNBOGNHRjBhQ0JrUFNKTk1qRWdNVFpvTFRRaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRFeElETklPU0lnTHo0S1BDOXpkbWMrQ2c9PSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvd2FuZC1zcGFya2xlc1xuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IFdhbmRTcGFya2xlcyA9IGNyZWF0ZUx1Y2lkZUljb24oJ3dhbmQtc3BhcmtsZXMnLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgV2FuZFNwYXJrbGVzO1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdNMTUgNFYyJywga2V5OiAnejFwOWI3JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTE1IDE2di0yJywga2V5OiAncHgwdW54JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTggOWgyJywga2V5OiAnMWcyMDNtJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTIwIDloMicsIGtleTogJzE5dHpxNycgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xNy44IDExLjggMTkgMTMnLCBrZXk6ICd5aWhnOHInIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTUgOWguMDEnLCBrZXk6ICd4MWRkeHAnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTcuOCA2LjIgMTkgNScsIGtleTogJ2ZkNHVzMCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ20zIDIxIDktOScsIGtleTogJzFqZnFsNScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xMi4yIDYuMiAxMSA1Jywga2V5OiAnaTNkYTNiJyB9XSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBXYW5kXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NVFVnTkZZeUlpQXZQZ29nSUR4d1lYUm9JR1E5SWsweE5TQXhObll0TWlJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOT0NBNWFESWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRUSXdJRGxvTWlJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTVRjdU9DQXhNUzQ0SURFNUlERXpJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHhOU0E1YUM0d01TSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk1UY3VPQ0EyTGpJZ01Ua2dOU0lnTHo0S0lDQThjR0YwYUNCa1BTSnRNeUF5TVNBNUxUa2lJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRURXlMaklnTmk0eUlERXhJRFVpSUM4K0Nqd3ZjM1puUGdvPSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvd2FuZFxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IFdhbmQgPSBjcmVhdGVMdWNpZGVJY29uKCd3YW5kJywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IFdhbmQ7XG4iLCJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ00xOCAyMVYxMGExIDEgMCAwIDAtMS0xSDdhMSAxIDAgMCAwLTEgMXYxMScsIGtleTogJ3BiMnZtNicgfV0sXG4gIFtcbiAgICAncGF0aCcsXG4gICAge1xuICAgICAgZDogJ00yMiAxOWEyIDIgMCAwIDEtMiAySDRhMiAyIDAgMCAxLTItMlY4YTIgMiAwIDAgMSAxLjEzMi0xLjgwM2w3Ljk1LTMuOTc0YTIgMiAwIDAgMSAxLjgzNyAwbDcuOTQ4IDMuOTc0QTIgMiAwIDAgMSAyMiA4eicsXG4gICAgICBrZXk6ICdkb3E1eHYnLFxuICAgIH0sXG4gIF0sXG4gIFsncGF0aCcsIHsgZDogJ002IDEzaDEyJywga2V5OiAneWY2NGpzJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTYgMTdoMTInLCBrZXk6ICcxandpZ3onIH1dLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIFdhcmVob3VzZVxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTVRnZ01qRldNVEJoTVNBeElEQWdNQ0F3TFRFdE1VZzNZVEVnTVNBd0lEQWdNQzB4SURGMk1URWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRUSXlJREU1WVRJZ01pQXdJREFnTVMweUlESklOR0V5SURJZ01DQXdJREV0TWkweVZqaGhNaUF5SURBZ01DQXhJREV1TVRNeUxURXVPREF6YkRjdU9UVXRNeTQ1TnpSaE1pQXlJREFnTUNBeElERXVPRE0zSURCc055NDVORGdnTXk0NU56UkJNaUF5SURBZ01DQXhJREl5SURoNklpQXZQZ29nSUR4d1lYUm9JR1E5SWswMklERXphREV5SWlBdlBnb2dJRHh3WVhSb0lHUTlJazAySURFM2FERXlJaUF2UGdvOEwzTjJaejRLKSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy93YXJlaG91c2VcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBXYXJlaG91c2UgPSBjcmVhdGVMdWNpZGVJY29uKCd3YXJlaG91c2UnLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgV2FyZWhvdXNlO1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdNMyA2aDMnLCBrZXk6ICcxNTVkYmwnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTcgNmguMDEnLCBrZXk6ICdlMnk2a2cnIH1dLFxuICBbJ3JlY3QnLCB7IHdpZHRoOiAnMTgnLCBoZWlnaHQ6ICcyMCcsIHg6ICczJywgeTogJzInLCByeDogJzInLCBrZXk6ICdvZDNrazknIH1dLFxuICBbJ2NpcmNsZScsIHsgY3g6ICcxMicsIGN5OiAnMTMnLCByOiAnNScsIGtleTogJ25sYnFhdScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xMiAxOGEyLjUgMi41IDAgMCAwIDAtNSAyLjUgMi41IDAgMCAxIDAtNScsIGtleTogJzE3bGFjaCcgfV0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgV2FzaGluZ01hY2hpbmVcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk15QTJhRE1pSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVEUzSURab0xqQXhJaUF2UGdvZ0lEeHlaV04wSUhkcFpIUm9QU0l4T0NJZ2FHVnBaMmgwUFNJeU1DSWdlRDBpTXlJZ2VUMGlNaUlnY25nOUlqSWlJQzgrQ2lBZ1BHTnBjbU5zWlNCamVEMGlNVElpSUdONVBTSXhNeUlnY2owaU5TSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk1USWdNVGhoTWk0MUlESXVOU0F3SURBZ01DQXdMVFVnTWk0MUlESXVOU0F3SURBZ01TQXdMVFVpSUM4K0Nqd3ZjM1puUGdvPSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvd2FzaGluZy1tYWNoaW5lXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgV2FzaGluZ01hY2hpbmUgPSBjcmVhdGVMdWNpZGVJY29uKCd3YXNoaW5nLW1hY2hpbmUnLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgV2FzaGluZ01hY2hpbmU7XG4iLCJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ00xMiAxMHYyLjJsMS42IDEnLCBrZXk6ICduM3IyMWwnIH1dLFxuICBbXG4gICAgJ3BhdGgnLFxuICAgIHsgZDogJ20xNi4xMyA3LjY2LS44MS00LjA1YTIgMiAwIDAgMC0yLTEuNjFoLTIuNjhhMiAyIDAgMCAwLTIgMS42MWwtLjc4IDQuMDUnLCBrZXk6ICcxOGs1N3MnIH0sXG4gIF0sXG4gIFsncGF0aCcsIHsgZDogJ203Ljg4IDE2LjM2LjggNGEyIDIgMCAwIDAgMiAxLjYxaDIuNzJhMiAyIDAgMCAwIDItMS42MWwuODEtNC4wNScsIGtleTogJzE2bnkzNicgfV0sXG4gIFsnY2lyY2xlJywgeyBjeDogJzEyJywgY3k6ICcxMicsIHI6ICc2Jywga2V5OiAnMXZsZnJoJyB9XSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBXYXRjaFxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTVRJZ01UQjJNaTR5YkRFdU5pQXhJaUF2UGdvZ0lEeHdZWFJvSUdROUltMHhOaTR4TXlBM0xqWTJMUzQ0TVMwMExqQTFZVElnTWlBd0lEQWdNQzB5TFRFdU5qRm9MVEl1TmpoaE1pQXlJREFnTUNBd0xUSWdNUzQyTVd3dExqYzRJRFF1TURVaUlDOCtDaUFnUEhCaGRHZ2daRDBpYlRjdU9EZ2dNVFl1TXpZdU9DQTBZVElnTWlBd0lEQWdNQ0F5SURFdU5qRm9NaTQzTW1FeUlESWdNQ0F3SURBZ01pMHhMall4YkM0NE1TMDBMakExSWlBdlBnb2dJRHhqYVhKamJHVWdZM2c5SWpFeUlpQmplVDBpTVRJaUlISTlJallpSUM4K0Nqd3ZjM1puUGdvPSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvd2F0Y2hcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBXYXRjaCA9IGNyZWF0ZUx1Y2lkZUljb24oJ3dhdGNoJywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IFdhdGNoO1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdNMTkgNWEyIDIgMCAwIDAtMiAydjExJywga2V5OiAnczQxbzY4JyB9XSxcbiAgW1xuICAgICdwYXRoJyxcbiAgICB7XG4gICAgICBkOiAnTTIgMThjLjYuNSAxLjIgMSAyLjUgMSAyLjUgMCAyLjUtMiA1LTIgMi42IDAgMi40IDIgNSAyIDIuNSAwIDIuNS0yIDUtMiAxLjMgMCAxLjkuNSAyLjUgMScsXG4gICAgICBrZXk6ICdyZDJyNmUnLFxuICAgIH0sXG4gIF0sXG4gIFsncGF0aCcsIHsgZDogJ003IDEzaDEwJywga2V5OiAnMXJ3b2IxJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTcgOWgxMCcsIGtleTogJzEyY3p6YicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ005IDVhMiAyIDAgMCAwLTIgMnYxMScsIGtleTogJ3gwcTRnaCcgfV0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgV2F2ZXNMYWRkZXJcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1Ua2dOV0V5SURJZ01DQXdJREF0TWlBeWRqRXhJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHlJREU0WXk0MkxqVWdNUzR5SURFZ01pNDFJREVnTWk0MUlEQWdNaTQxTFRJZ05TMHlJREl1TmlBd0lESXVOQ0F5SURVZ01pQXlMalVnTUNBeUxqVXRNaUExTFRJZ01TNHpJREFnTVM0NUxqVWdNaTQxSURFaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRjZ01UTm9NVEFpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVGNnT1dneE1DSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk9TQTFZVElnTWlBd0lEQWdNQzB5SURKMk1URWlJQzgrQ2p3dmMzWm5QZ289KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy93YXZlcy1sYWRkZXJcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBXYXZlc0xhZGRlciA9IGNyZWF0ZUx1Y2lkZUljb24oJ3dhdmVzLWxhZGRlcicsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBXYXZlc0xhZGRlcjtcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgW1xuICAgICdwYXRoJyxcbiAgICB7XG4gICAgICBkOiAnTTIgNmMuNi41IDEuMiAxIDIuNSAxQzcgNyA3IDUgOS41IDVjMi42IDAgMi40IDIgNSAyIDIuNSAwIDIuNS0yIDUtMiAxLjMgMCAxLjkuNSAyLjUgMScsXG4gICAgICBrZXk6ICdrbnp4dWgnLFxuICAgIH0sXG4gIF0sXG4gIFtcbiAgICAncGF0aCcsXG4gICAge1xuICAgICAgZDogJ00yIDEyYy42LjUgMS4yIDEgMi41IDEgMi41IDAgMi41LTIgNS0yIDIuNiAwIDIuNCAyIDUgMiAyLjUgMCAyLjUtMiA1LTIgMS4zIDAgMS45LjUgMi41IDEnLFxuICAgICAga2V5OiAnMmpkMmNjJyxcbiAgICB9LFxuICBdLFxuICBbXG4gICAgJ3BhdGgnLFxuICAgIHtcbiAgICAgIGQ6ICdNMiAxOGMuNi41IDEuMiAxIDIuNSAxIDIuNSAwIDIuNS0yIDUtMiAyLjYgMCAyLjQgMiA1IDIgMi41IDAgMi41LTIgNS0yIDEuMyAwIDEuOS41IDIuNSAxJyxcbiAgICAgIGtleTogJ3JkMnI2ZScsXG4gICAgfSxcbiAgXSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBXYXZlc1xuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTWlBMll5NDJMalVnTVM0eUlERWdNaTQxSURGRE55QTNJRGNnTlNBNUxqVWdOV015TGpZZ01DQXlMalFnTWlBMUlESWdNaTQxSURBZ01pNDFMVElnTlMweUlERXVNeUF3SURFdU9TNDFJREl1TlNBeElpQXZQZ29nSUR4d1lYUm9JR1E5SWsweUlERXlZeTQyTGpVZ01TNHlJREVnTWk0MUlERWdNaTQxSURBZ01pNDFMVElnTlMweUlESXVOaUF3SURJdU5DQXlJRFVnTWlBeUxqVWdNQ0F5TGpVdE1pQTFMVElnTVM0eklEQWdNUzQ1TGpVZ01pNDFJREVpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVElnTVRoakxqWXVOU0F4TGpJZ01TQXlMalVnTVNBeUxqVWdNQ0F5TGpVdE1pQTFMVElnTWk0MklEQWdNaTQwSURJZ05TQXlJREl1TlNBd0lESXVOUzB5SURVdE1pQXhMak1nTUNBeExqa3VOU0F5TGpVZ01TSWdMejRLUEM5emRtYytDZz09KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy93YXZlc1xuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IFdhdmVzID0gY3JlYXRlTHVjaWRlSWNvbignd2F2ZXMnLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgV2F2ZXM7XG4iLCJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbXG4gIFsnY2lyY2xlJywgeyBjeDogJzEyJywgY3k6ICc0LjUnLCByOiAnMi41Jywga2V5OiAncjV5c2JiJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnbTEwLjIgNi4zLTMuOSAzLjknLCBrZXk6ICcxbnpxZjYnIH1dLFxuICBbJ2NpcmNsZScsIHsgY3g6ICc0LjUnLCBjeTogJzEyJywgcjogJzIuNScsIGtleTogJ2p5ZGc2dicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ003IDEyaDEwJywga2V5OiAnYjd3NTJpJyB9XSxcbiAgWydjaXJjbGUnLCB7IGN4OiAnMTkuNScsIGN5OiAnMTInLCByOiAnMi41Jywga2V5OiAnMXBpaWVsJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnbTEzLjggMTcuNyAzLjktMy45Jywga2V5OiAnMXd5ZzF5JyB9XSxcbiAgWydjaXJjbGUnLCB7IGN4OiAnMTInLCBjeTogJzE5LjUnLCByOiAnMi41Jywga2V5OiAnMTNvMXB3JyB9XSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBXYXlwb2ludHNcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOFkybHlZMnhsSUdONFBTSXhNaUlnWTNrOUlqUXVOU0lnY2owaU1pNDFJaUF2UGdvZ0lEeHdZWFJvSUdROUltMHhNQzR5SURZdU15MHpMamtnTXk0NUlpQXZQZ29nSUR4amFYSmpiR1VnWTNnOUlqUXVOU0lnWTNrOUlqRXlJaUJ5UFNJeUxqVWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRUY2dNVEpvTVRBaUlDOCtDaUFnUEdOcGNtTnNaU0JqZUQwaU1Ua3VOU0lnWTNrOUlqRXlJaUJ5UFNJeUxqVWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaWJURXpMamdnTVRjdU55QXpMamt0TXk0NUlpQXZQZ29nSUR4amFYSmpiR1VnWTNnOUlqRXlJaUJqZVQwaU1Ua3VOU0lnY2owaU1pNDFJaUF2UGdvOEwzTjJaejRLKSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy93YXlwb2ludHNcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBXYXlwb2ludHMgPSBjcmVhdGVMdWNpZGVJY29uKCd3YXlwb2ludHMnLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgV2F5cG9pbnRzO1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbJ2NpcmNsZScsIHsgY3g6ICcxMicsIGN5OiAnMTAnLCByOiAnOCcsIGtleTogJzFnc2hpdycgfV0sXG4gIFsnY2lyY2xlJywgeyBjeDogJzEyJywgY3k6ICcxMCcsIHI6ICczJywga2V5OiAnaWxxaHI3JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTcgMjJoMTAnLCBrZXk6ICcxMHc0dzMnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTIgMjJ2LTQnLCBrZXk6ICcxdXRrOW0nIH1dLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIFdlYmNhbVxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4WTJseVkyeGxJR040UFNJeE1pSWdZM2s5SWpFd0lpQnlQU0k0SWlBdlBnb2dJRHhqYVhKamJHVWdZM2c5SWpFeUlpQmplVDBpTVRBaUlISTlJak1pSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVGNnTWpKb01UQWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRURXlJREl5ZGkwMElpQXZQZ284TDNOMlp6NEspIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL3dlYmNhbVxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IFdlYmNhbSA9IGNyZWF0ZUx1Y2lkZUljb24oJ3dlYmNhbScsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBXZWJjYW07XG4iLCJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ00xNyAxN2gtNWMtMS4wOS0uMDItMS45NC45Mi0yLjUgMS45QTMgMyAwIDEgMSAyLjU3IDE1Jywga2V5OiAnMXR2bDZ4JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTkgMy40YTQgNCAwIDAgMSA2LjUyLjY2Jywga2V5OiAncTA0amZxJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnbTYgMTcgMy4xLTUuOGEyLjUgMi41IDAgMCAwIC4wNTctMi4wNScsIGtleTogJ2F6b3dmMCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00yMC4zIDIwLjNhNCA0IDAgMCAxLTIuMy43Jywga2V5OiAnNWpvaXdzJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTE4LjYgMTNhNCA0IDAgMCAxIDMuMzU3IDMuNDE0Jywga2V5OiAnY2FuZ2I4JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnbTEyIDYgLjYgMScsIGtleTogJ3RwamwxbicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ20yIDIgMjAgMjAnLCBrZXk6ICcxb29ld3knIH1dLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIFdlYmhvb2tPZmZcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1UY2dNVGRvTFRWakxURXVNRGt0TGpBeUxURXVPVFF1T1RJdE1pNDFJREV1T1VFeklETWdNQ0F4SURFZ01pNDFOeUF4TlNJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOT1NBekxqUmhOQ0EwSURBZ01DQXhJRFl1TlRJdU5qWWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaWJUWWdNVGNnTXk0eExUVXVPR0V5TGpVZ01pNDFJREFnTUNBd0lDNHdOVGN0TWk0d05TSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk1qQXVNeUF5TUM0ellUUWdOQ0F3SURBZ01TMHlMak11TnlJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTVRndU5pQXhNMkUwSURRZ01DQXdJREVnTXk0ek5UY2dNeTQwTVRRaUlDOCtDaUFnUEhCaGRHZ2daRDBpYlRFeUlEWWdMallnTVNJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0p0TWlBeUlESXdJREl3SWlBdlBnbzhMM04yWno0SykgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvd2ViaG9vay1vZmZcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBXZWJob29rT2ZmID0gY3JlYXRlTHVjaWRlSWNvbignd2ViaG9vay1vZmYnLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgV2ViaG9va09mZjtcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgW1xuICAgICdwYXRoJyxcbiAgICB7XG4gICAgICBkOiAnTTE4IDE2Ljk4aC01Ljk5Yy0xLjEgMC0xLjk1Ljk0LTIuNDggMS45QTQgNCAwIDAgMSAyIDE3Yy4wMS0uNy4yLTEuNC41Ny0yJyxcbiAgICAgIGtleTogJ3EzaGF5eicsXG4gICAgfSxcbiAgXSxcbiAgWydwYXRoJywgeyBkOiAnbTYgMTcgMy4xMy01Ljc4Yy41My0uOTcuMS0yLjE4LS41LTMuMWE0IDQgMCAxIDEgNi44OS00LjA2Jywga2V5OiAnMWdvMWhuJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnbTEyIDYgMy4xMyA1LjczQzE1LjY2IDEyLjcgMTYuOSAxMyAxOCAxM2E0IDQgMCAwIDEgMCA4Jywga2V5OiAncWx3c2MwJyB9XSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBXZWJob29rXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NVGdnTVRZdU9UaG9MVFV1T1RsakxURXVNU0F3TFRFdU9UVXVPVFF0TWk0ME9DQXhMamxCTkNBMElEQWdNQ0F4SURJZ01UZGpMakF4TFM0M0xqSXRNUzQwTGpVM0xUSWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaWJUWWdNVGNnTXk0eE15MDFMamM0WXk0MU15MHVPVGN1TVMweUxqRTRMUzQxTFRNdU1XRTBJRFFnTUNBeElERWdOaTQ0T1MwMExqQTJJaUF2UGdvZ0lEeHdZWFJvSUdROUltMHhNaUEySURNdU1UTWdOUzQzTTBNeE5TNDJOaUF4TWk0M0lERTJMamtnTVRNZ01UZ2dNVE5oTkNBMElEQWdNQ0F4SURBZ09DSWdMejRLUEM5emRtYytDZz09KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy93ZWJob29rXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgV2ViaG9vayA9IGNyZWF0ZUx1Y2lkZUljb24oJ3dlYmhvb2snLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgV2ViaG9vaztcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgWydjaXJjbGUnLCB7IGN4OiAnMTInLCBjeTogJzUnLCByOiAnMycsIGtleTogJ3JxcWducicgfV0sXG4gIFtcbiAgICAncGF0aCcsXG4gICAge1xuICAgICAgZDogJ002LjUgOGEyIDIgMCAwIDAtMS45MDUgMS40NkwyLjEgMTguNUEyIDIgMCAwIDAgNCAyMWgxNmEyIDIgMCAwIDAgMS45MjUtMi41NEwxOS40IDkuNUEyIDIgMCAwIDAgMTcuNDggOFonLFxuICAgICAga2V5OiAnNTZvNXNoJyxcbiAgICB9LFxuICBdLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIFdlaWdodFxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4WTJseVkyeGxJR040UFNJeE1pSWdZM2s5SWpVaUlISTlJak1pSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVFl1TlNBNFlUSWdNaUF3SURBZ01DMHhMamt3TlNBeExqUTJUREl1TVNBeE9DNDFRVElnTWlBd0lEQWdNQ0EwSURJeGFERTJZVElnTWlBd0lEQWdNQ0F4TGpreU5TMHlMalUwVERFNUxqUWdPUzQxUVRJZ01pQXdJREFnTUNBeE55NDBPQ0E0V2lJZ0x6NEtQQzl6ZG1jK0NnPT0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL3dlaWdodFxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IFdlaWdodCA9IGNyZWF0ZUx1Y2lkZUljb24oJ3dlaWdodCcsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBXZWlnaHQ7XG4iLCJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ20yIDIyIDEwLTEwJywga2V5OiAnMjhpbHBrJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnbTE2IDgtMS4xNyAxLjE3Jywga2V5OiAnMXFxbTgyJyB9XSxcbiAgW1xuICAgICdwYXRoJyxcbiAgICB7XG4gICAgICBkOiAnTTMuNDcgMTIuNTMgNSAxMWwxLjUzIDEuNTNhMy41IDMuNSAwIDAgMSAwIDQuOTRMNSAxOWwtMS41My0xLjUzYTMuNSAzLjUgMCAwIDEgMC00Ljk0WicsXG4gICAgICBrZXk6ICcxcmRoaTYnLFxuICAgIH0sXG4gIF0sXG4gIFtcbiAgICAncGF0aCcsXG4gICAgeyBkOiAnbTggOC0uNTMuNTNhMy41IDMuNSAwIDAgMCAwIDQuOTRMOSAxNWwxLjUzLTEuNTNjLjU1LS41NS44OC0xLjI1Ljk4LTEuOTcnLCBrZXk6ICc0d3o4cmUnIH0sXG4gIF0sXG4gIFtcbiAgICAncGF0aCcsXG4gICAgeyBkOiAnTTEwLjkxIDUuMjZjLjE1LS4yNi4zNC0uNTEuNTYtLjczTDEzIDNsMS41MyAxLjUzYTMuNSAzLjUgMCAwIDEgLjI4IDQuNjInLCBrZXk6ICdydmVzNjYnIH0sXG4gIF0sXG4gIFsncGF0aCcsIHsgZDogJ00yMCAyaDJ2MmE0IDQgMCAwIDEtNCA0aC0yVjZhNCA0IDAgMCAxIDQtNFonLCBrZXk6ICcxOXJhdTEnIH1dLFxuICBbXG4gICAgJ3BhdGgnLFxuICAgIHtcbiAgICAgIGQ6ICdNMTEuNDcgMTcuNDcgMTMgMTlsLTEuNTMgMS41M2EzLjUgMy41IDAgMCAxLTQuOTQgMEw1IDE5bDEuNTMtMS41M2EzLjUgMy41IDAgMCAxIDQuOTQgMFonLFxuICAgICAga2V5OiAndGM4cGg5JyxcbiAgICB9LFxuICBdLFxuICBbXG4gICAgJ3BhdGgnLFxuICAgIHtcbiAgICAgIGQ6ICdtMTYgMTYtLjUzLjUzYTMuNSAzLjUgMCAwIDEtNC45NCAwTDkgMTVsMS41My0xLjUzYTMuNDkgMy40OSAwIDAgMSAxLjk3LS45OCcsXG4gICAgICBrZXk6ICdhazQ2cicsXG4gICAgfSxcbiAgXSxcbiAgW1xuICAgICdwYXRoJyxcbiAgICB7XG4gICAgICBkOiAnTTE4Ljc0IDEzLjA5Yy4yNi0uMTUuNTEtLjM0LjczLS41NkwyMSAxMWwtMS41My0xLjUzYTMuNSAzLjUgMCAwIDAtNC42Mi0uMjgnLFxuICAgICAga2V5OiAnMXR3NTIwJyxcbiAgICB9LFxuICBdLFxuICBbJ2xpbmUnLCB7IHgxOiAnMicsIHgyOiAnMjInLCB5MTogJzInLCB5MjogJzIyJywga2V5OiAnYTZwNnVqJyB9XSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBXaGVhdE9mZlxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0p0TWlBeU1pQXhNQzB4TUNJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0p0TVRZZ09DMHhMakUzSURFdU1UY2lJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRUTXVORGNnTVRJdU5UTWdOU0F4TVd3eExqVXpJREV1TlROaE15NDFJRE11TlNBd0lEQWdNU0F3SURRdU9UUk1OU0F4T1d3dE1TNDFNeTB4TGpVellUTXVOU0F6TGpVZ01DQXdJREVnTUMwMExqazBXaUlnTHo0S0lDQThjR0YwYUNCa1BTSnRPQ0E0TFM0MU15NDFNMkV6TGpVZ015NDFJREFnTUNBd0lEQWdOQzQ1TkV3NUlERTFiREV1TlRNdE1TNDFNMk11TlRVdExqVTFMamc0TFRFdU1qVXVPVGd0TVM0NU55SWdMejRLSUNBOGNHRjBhQ0JrUFNKTk1UQXVPVEVnTlM0eU5tTXVNVFV0TGpJMkxqTTBMUzQxTVM0MU5pMHVOek5NTVRNZ00yd3hMalV6SURFdU5UTmhNeTQxSURNdU5TQXdJREFnTVNBdU1qZ2dOQzQyTWlJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTWpBZ01tZ3lkakpoTkNBMElEQWdNQ0F4TFRRZ05HZ3RNbFkyWVRRZ05DQXdJREFnTVNBMExUUmFJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHhNUzQwTnlBeE55NDBOeUF4TXlBeE9Xd3RNUzQxTXlBeExqVXpZVE11TlNBekxqVWdNQ0F3SURFdE5DNDVOQ0F3VERVZ01UbHNNUzQxTXkweExqVXpZVE11TlNBekxqVWdNQ0F3SURFZ05DNDVOQ0F3V2lJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0p0TVRZZ01UWXRMalV6TGpVellUTXVOU0F6TGpVZ01DQXdJREV0TkM0NU5DQXdURGtnTVRWc01TNDFNeTB4TGpVellUTXVORGtnTXk0ME9TQXdJREFnTVNBeExqazNMUzQ1T0NJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTVRndU56UWdNVE11TURsakxqSTJMUzR4TlM0MU1TMHVNelF1TnpNdExqVTJUREl4SURFeGJDMHhMalV6TFRFdU5UTmhNeTQxSURNdU5TQXdJREFnTUMwMExqWXlMUzR5T0NJZ0x6NEtJQ0E4YkdsdVpTQjRNVDBpTWlJZ2VESTlJakl5SWlCNU1UMGlNaUlnZVRJOUlqSXlJaUF2UGdvOEwzTjJaejRLKSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy93aGVhdC1vZmZcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBXaGVhdE9mZiA9IGNyZWF0ZUx1Y2lkZUljb24oJ3doZWF0LW9mZicsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBXaGVhdE9mZjtcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTIgMjIgMTYgOCcsIGtleTogJzYwaGY5NicgfV0sXG4gIFtcbiAgICAncGF0aCcsXG4gICAge1xuICAgICAgZDogJ00zLjQ3IDEyLjUzIDUgMTFsMS41MyAxLjUzYTMuNSAzLjUgMCAwIDEgMCA0Ljk0TDUgMTlsLTEuNTMtMS41M2EzLjUgMy41IDAgMCAxIDAtNC45NFonLFxuICAgICAga2V5OiAnMXJkaGk2JyxcbiAgICB9LFxuICBdLFxuICBbXG4gICAgJ3BhdGgnLFxuICAgIHtcbiAgICAgIGQ6ICdNNy40NyA4LjUzIDkgN2wxLjUzIDEuNTNhMy41IDMuNSAwIDAgMSAwIDQuOTRMOSAxNWwtMS41My0xLjUzYTMuNSAzLjUgMCAwIDEgMC00Ljk0WicsXG4gICAgICBrZXk6ICcxc2R6bWInLFxuICAgIH0sXG4gIF0sXG4gIFtcbiAgICAncGF0aCcsXG4gICAge1xuICAgICAgZDogJ00xMS40NyA0LjUzIDEzIDNsMS41MyAxLjUzYTMuNSAzLjUgMCAwIDEgMCA0Ljk0TDEzIDExbC0xLjUzLTEuNTNhMy41IDMuNSAwIDAgMSAwLTQuOTRaJyxcbiAgICAgIGtleTogJ2VvYXRiaScsXG4gICAgfSxcbiAgXSxcbiAgWydwYXRoJywgeyBkOiAnTTIwIDJoMnYyYTQgNCAwIDAgMS00IDRoLTJWNmE0IDQgMCAwIDEgNC00WicsIGtleTogJzE5cmF1MScgfV0sXG4gIFtcbiAgICAncGF0aCcsXG4gICAge1xuICAgICAgZDogJ00xMS40NyAxNy40NyAxMyAxOWwtMS41MyAxLjUzYTMuNSAzLjUgMCAwIDEtNC45NCAwTDUgMTlsMS41My0xLjUzYTMuNSAzLjUgMCAwIDEgNC45NCAwWicsXG4gICAgICBrZXk6ICd0YzhwaDknLFxuICAgIH0sXG4gIF0sXG4gIFtcbiAgICAncGF0aCcsXG4gICAge1xuICAgICAgZDogJ00xNS40NyAxMy40NyAxNyAxNWwtMS41MyAxLjUzYTMuNSAzLjUgMCAwIDEtNC45NCAwTDkgMTVsMS41My0xLjUzYTMuNSAzLjUgMCAwIDEgNC45NCAwWicsXG4gICAgICBrZXk6ICcybThrYzUnLFxuICAgIH0sXG4gIF0sXG4gIFtcbiAgICAncGF0aCcsXG4gICAge1xuICAgICAgZDogJ00xOS40NyA5LjQ3IDIxIDExbC0xLjUzIDEuNTNhMy41IDMuNSAwIDAgMS00Ljk0IDBMMTMgMTFsMS41My0xLjUzYTMuNSAzLjUgMCAwIDEgNC45NCAwWicsXG4gICAgICBrZXk6ICd2ZXgzbmcnLFxuICAgIH0sXG4gIF0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgV2hlYXRcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1pQXlNaUF4TmlBNElpQXZQZ29nSUR4d1lYUm9JR1E5SWswekxqUTNJREV5TGpVeklEVWdNVEZzTVM0MU15QXhMalV6WVRNdU5TQXpMalVnTUNBd0lERWdNQ0EwTGprMFREVWdNVGxzTFRFdU5UTXRNUzQxTTJFekxqVWdNeTQxSURBZ01DQXhJREF0TkM0NU5Gb2lJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRUY3VORGNnT0M0MU15QTVJRGRzTVM0MU15QXhMalV6WVRNdU5TQXpMalVnTUNBd0lERWdNQ0EwTGprMFREa2dNVFZzTFRFdU5UTXRNUzQxTTJFekxqVWdNeTQxSURBZ01DQXhJREF0TkM0NU5Gb2lJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRURXhMalEzSURRdU5UTWdNVE1nTTJ3eExqVXpJREV1TlROaE15NDFJRE11TlNBd0lEQWdNU0F3SURRdU9UUk1NVE1nTVRGc0xURXVOVE10TVM0MU0yRXpMalVnTXk0MUlEQWdNQ0F4SURBdE5DNDVORm9pSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVEl3SURKb01uWXlZVFFnTkNBd0lEQWdNUzAwSURSb0xUSldObUUwSURRZ01DQXdJREVnTkMwMFdpSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk1URXVORGNnTVRjdU5EY2dNVE1nTVRsc0xURXVOVE1nTVM0MU0yRXpMalVnTXk0MUlEQWdNQ0F4TFRRdU9UUWdNRXcxSURFNWJERXVOVE10TVM0MU0yRXpMalVnTXk0MUlEQWdNQ0F4SURRdU9UUWdNRm9pSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVEUxTGpRM0lERXpMalEzSURFM0lERTFiQzB4TGpVeklERXVOVE5oTXk0MUlETXVOU0F3SURBZ01TMDBMamswSURCTU9TQXhOV3d4TGpVekxURXVOVE5oTXk0MUlETXVOU0F3SURBZ01TQTBMamswSURCYUlpQXZQZ29nSUR4d1lYUm9JR1E5SWsweE9TNDBOeUE1TGpRM0lESXhJREV4YkMweExqVXpJREV1TlROaE15NDFJRE11TlNBd0lEQWdNUzAwTGprMElEQk1NVE1nTVRGc01TNDFNeTB4TGpVellUTXVOU0F6TGpVZ01DQXdJREVnTkM0NU5DQXdXaUlnTHo0S1BDOXpkbWMrQ2c9PSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvd2hlYXRcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBXaGVhdCA9IGNyZWF0ZUx1Y2lkZUljb24oJ3doZWF0JywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IFdoZWF0O1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbJ2NpcmNsZScsIHsgY3g6ICc3JywgY3k6ICcxMicsIHI6ICczJywga2V5OiAnMTJjbHdtJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTEwIDl2NicsIGtleTogJzE3aTdsbycgfV0sXG4gIFsnY2lyY2xlJywgeyBjeDogJzE3JywgY3k6ICcxMicsIHI6ICczJywga2V5OiAnZ2w3YzJzJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTE0IDd2OCcsIGtleTogJ2RsODRjcicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00yMiAxN3YxYzAgLjUtLjUgMS0xIDFIM2MtLjUgMC0xLS41LTEtMXYtMScsIGtleTogJ2x0MmtnYScgfV0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgV2hvbGVXb3JkXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThZMmx5WTJ4bElHTjRQU0kzSWlCamVUMGlNVElpSUhJOUlqTWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRURXdJRGwyTmlJZ0x6NEtJQ0E4WTJseVkyeGxJR040UFNJeE55SWdZM2s5SWpFeUlpQnlQU0l6SWlBdlBnb2dJRHh3WVhSb0lHUTlJazB4TkNBM2RqZ2lJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRUSXlJREUzZGpGak1DQXVOUzB1TlNBeExURWdNVWd6WXkwdU5TQXdMVEV0TGpVdE1TMHhkaTB4SWlBdlBnbzhMM04yWno0SykgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvd2hvbGUtd29yZFxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IFdob2xlV29yZCA9IGNyZWF0ZUx1Y2lkZUljb24oJ3dob2xlLXdvcmQnLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgV2hvbGVXb3JkO1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdtMTQuMzA1IDE5LjUzLjkyMy0uMzgyJywga2V5OiAnM203OGZhJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnbTE1LjIyOCAxNi44NTItLjkyMy0uMzgzJywga2V5OiAnbnBpeGFyJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnbTE2Ljg1MiAxNS4yMjgtLjM4My0uOTIzJywga2V5OiAnNXhnZ3I3JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnbTE2Ljg1MiAyMC43NzItLjM4My45MjQnLCBrZXk6ICdkcGZoZjknIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdtMTkuMTQ4IDE1LjIyOC4zODMtLjkyMycsIGtleTogJzFyZXl5eicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ20xOS41MyAyMS42OTYtLjM4Mi0uOTI0Jywga2V5OiAnMWdvaXZjJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTIgNy44MmExNSAxNSAwIDAgMSAyMCAwJywga2V5OiAnMW92anVrJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnbTIwLjc3MiAxNi44NTIuOTI0LS4zODMnLCBrZXk6ICdodHFrcGgnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdtMjAuNzcyIDE5LjE0OC45MjQuMzgzJywga2V5OiAnOXc5cGpwJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTUgMTEuODU4YTEwIDEwIDAgMCAxIDExLjUtMS43ODUnLCBrZXk6ICczc24xNmknIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNOC41IDE1LjQyOWE1IDUgMCAwIDEgMi40MTMtMS4zMScsIGtleTogJzFweG92aCcgfV0sXG4gIFsnY2lyY2xlJywgeyBjeDogJzE4JywgY3k6ICcxOCcsIHI6ICczJywga2V5OiAnMXhrd3QwJyB9XSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBXaWZpQ29nXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSnRNVFF1TXpBMUlERTVMalV6TGpreU15MHVNemd5SWlBdlBnb2dJRHh3WVhSb0lHUTlJbTB4TlM0eU1qZ2dNVFl1T0RVeUxTNDVNak10TGpNNE15SWdMejRLSUNBOGNHRjBhQ0JrUFNKdE1UWXVPRFV5SURFMUxqSXlPQzB1TXpnekxTNDVNak1pSUM4K0NpQWdQSEJoZEdnZ1pEMGliVEUyTGpnMU1pQXlNQzQzTnpJdExqTTRNeTQ1TWpRaUlDOCtDaUFnUEhCaGRHZ2daRDBpYlRFNUxqRTBPQ0F4TlM0eU1qZ3VNemd6TFM0NU1qTWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaWJURTVMalV6SURJeExqWTVOaTB1TXpneUxTNDVNalFpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVElnTnk0NE1tRXhOU0F4TlNBd0lEQWdNU0F5TUNBd0lpQXZQZ29nSUR4d1lYUm9JR1E5SW0weU1DNDNOeklnTVRZdU9EVXlMamt5TkMwdU16Z3pJaUF2UGdvZ0lEeHdZWFJvSUdROUltMHlNQzQzTnpJZ01Ua3VNVFE0TGpreU5DNHpPRE1pSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVFVnTVRFdU9EVTRZVEV3SURFd0lEQWdNQ0F4SURFeExqVXRNUzQzT0RVaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRndU5TQXhOUzQwTWpsaE5TQTFJREFnTUNBeElESXVOREV6TFRFdU16RWlJQzgrQ2lBZ1BHTnBjbU5zWlNCamVEMGlNVGdpSUdONVBTSXhPQ0lnY2owaU15SWdMejRLUEM5emRtYytDZz09KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy93aWZpLWNvZ1xuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IFdpZmlDb2cgPSBjcmVhdGVMdWNpZGVJY29uKCd3aWZpLWNvZycsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBXaWZpQ29nO1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdNMTIgMjBoLjAxJywga2V5OiAnemVrZWk5JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTUgMTIuODU5YTEwIDEwIDAgMCAxIDE0IDAnLCBrZXk6ICcxeDFlNmMnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNOC41IDE2LjQyOWE1IDUgMCAwIDEgNyAwJywga2V5OiAnMWJ5Y2ZmJyB9XSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBXaWZpSGlnaFxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTVRJZ01qQm9MakF4SWlBdlBnb2dJRHh3WVhSb0lHUTlJazAxSURFeUxqZzFPV0V4TUNBeE1DQXdJREFnTVNBeE5DQXdJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMDRMalVnTVRZdU5ESTVZVFVnTlNBd0lEQWdNU0EzSURBaUlDOCtDand2YzNablBnbz0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL3dpZmktaGlnaFxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IFdpZmlIaWdoID0gY3JlYXRlTHVjaWRlSWNvbignd2lmaS1oaWdoJywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IFdpZmlIaWdoO1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdNMTIgMjBoLjAxJywga2V5OiAnemVrZWk5JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTguNSAxNi40MjlhNSA1IDAgMCAxIDcgMCcsIGtleTogJzFieWNmZicgfV0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgV2lmaUxvd1xuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTVRJZ01qQm9MakF4SWlBdlBnb2dJRHh3WVhSb0lHUTlJazA0TGpVZ01UWXVOREk1WVRVZ05TQXdJREFnTVNBM0lEQWlJQzgrQ2p3dmMzWm5QZ289KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy93aWZpLWxvd1xuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IFdpZmlMb3cgPSBjcmVhdGVMdWNpZGVJY29uKCd3aWZpLWxvdycsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBXaWZpTG93O1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdNMTIgMjBoLjAxJywga2V5OiAnemVrZWk5JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTguNSAxNi40MjlhNSA1IDAgMCAxIDcgMCcsIGtleTogJzFieWNmZicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ001IDEyLjg1OWExMCAxMCAwIDAgMSA1LjE3LTIuNjknLCBrZXk6ICcxZGwxd2YnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTkgMTIuODU5YTEwIDEwIDAgMCAwLTIuMDA3LTEuNTIzJywga2V5OiAnNGsyM2tuJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTIgOC44MmExNSAxNSAwIDAgMSA0LjE3Ny0yLjY0MycsIGtleTogJzFncmhqcCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00yMiA4LjgyYTE1IDE1IDAgMCAwLTExLjI4OC0zLjc2NCcsIGtleTogJ3ozandieScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ20yIDIgMjAgMjAnLCBrZXk6ICcxb29ld3knIH1dLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIFdpZmlPZmZcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1USWdNakJvTGpBeElpQXZQZ29nSUR4d1lYUm9JR1E5SWswNExqVWdNVFl1TkRJNVlUVWdOU0F3SURBZ01TQTNJREFpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVFVnTVRJdU9EVTVZVEV3SURFd0lEQWdNQ0F4SURVdU1UY3RNaTQyT1NJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTVRrZ01USXVPRFU1WVRFd0lERXdJREFnTUNBd0xUSXVNREEzTFRFdU5USXpJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHlJRGd1T0RKaE1UVWdNVFVnTUNBd0lERWdOQzR4TnpjdE1pNDJORE1pSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVEl5SURndU9ESmhNVFVnTVRVZ01DQXdJREF0TVRFdU1qZzRMVE11TnpZMElpQXZQZ29nSUR4d1lYUm9JR1E5SW0weUlESWdNakFnTWpBaUlDOCtDand2YzNablBnbz0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL3dpZmktb2ZmXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgV2lmaU9mZiA9IGNyZWF0ZUx1Y2lkZUljb24oJ3dpZmktb2ZmJywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IFdpZmlPZmY7XG4iLCJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ00yIDguODJhMTUgMTUgMCAwIDEgMjAgMCcsIGtleTogJ2RucHIyeicgfV0sXG4gIFtcbiAgICAncGF0aCcsXG4gICAge1xuICAgICAgZDogJ00yMS4zNzggMTYuNjI2YTEgMSAwIDAgMC0zLjAwNC0zLjAwNGwtNC4wMSA0LjAxMmEyIDIgMCAwIDAtLjUwNi44NTRsLS44MzcgMi44N2EuNS41IDAgMCAwIC42Mi42MmwyLjg3LS44MzdhMiAyIDAgMCAwIC44NTQtLjUwNnonLFxuICAgICAga2V5OiAnMTgxN3lzJyxcbiAgICB9LFxuICBdLFxuICBbJ3BhdGgnLCB7IGQ6ICdNNSAxMi44NTlhMTAgMTAgMCAwIDEgMTAuNS0yLjIyMicsIGtleTogJ3JwYjdveScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ004LjUgMTYuNDI5YTUgNSAwIDAgMSAzLTEuNDA2Jywga2V5OiAncjhibXpsJyB9XSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBXaWZpUGVuXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NaUE0TGpneVlURTFJREUxSURBZ01DQXhJREl3SURBaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRJeExqTTNPQ0F4Tmk0Mk1qWmhNU0F4SURBZ01DQXdMVE11TURBMExUTXVNREEwYkMwMExqQXhJRFF1TURFeVlUSWdNaUF3SURBZ01DMHVOVEEyTGpnMU5Hd3RMamd6TnlBeUxqZzNZUzQxTGpVZ01DQXdJREFnTGpZeUxqWXliREl1T0RjdExqZ3pOMkV5SURJZ01DQXdJREFnTGpnMU5DMHVOVEEyZWlJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTlNBeE1pNDROVGxoTVRBZ01UQWdNQ0F3SURFZ01UQXVOUzB5TGpJeU1pSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk9DNDFJREUyTGpReU9XRTFJRFVnTUNBd0lERWdNeTB4TGpRd05pSWdMejRLUEM5emRtYytDZz09KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy93aWZpLXBlblxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IFdpZmlQZW4gPSBjcmVhdGVMdWNpZGVJY29uKCd3aWZpLXBlbicsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBXaWZpUGVuO1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1sncGF0aCcsIHsgZDogJ00xMiAyMGguMDEnLCBrZXk6ICd6ZWtlaTknIH1dXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIFdpZmlaZXJvXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NVElnTWpCb0xqQXhJaUF2UGdvOEwzTjJaejRLKSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy93aWZpLXplcm9cbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBXaWZpWmVybyA9IGNyZWF0ZUx1Y2lkZUljb24oJ3dpZmktemVybycsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBXaWZpWmVybztcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTEyIDIwaC4wMScsIGtleTogJ3pla2VpOScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00yIDguODJhMTUgMTUgMCAwIDEgMjAgMCcsIGtleTogJ2RucHIyeicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ001IDEyLjg1OWExMCAxMCAwIDAgMSAxNCAwJywga2V5OiAnMXgxZTZjJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTguNSAxNi40MjlhNSA1IDAgMCAxIDcgMCcsIGtleTogJzFieWNmZicgfV0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgV2lmaVxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTVRJZ01qQm9MakF4SWlBdlBnb2dJRHh3WVhSb0lHUTlJazB5SURndU9ESmhNVFVnTVRVZ01DQXdJREVnTWpBZ01DSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk5TQXhNaTQ0TlRsaE1UQWdNVEFnTUNBd0lERWdNVFFnTUNJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOT0M0MUlERTJMalF5T1dFMUlEVWdNQ0F3SURFZ055QXdJaUF2UGdvOEwzTjJaejRLKSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy93aWZpXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgV2lmaSA9IGNyZWF0ZUx1Y2lkZUljb24oJ3dpZmknLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgV2lmaTtcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTEwIDJ2OCcsIGtleTogJ2Q0YmJleScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xMi44IDIxLjZBMiAyIDAgMSAwIDE0IDE4SDInLCBrZXk6ICcxOWtwMWQnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTcuNSAxMGEyLjUgMi41IDAgMSAxIDIgNEgyJywga2V5OiAnMTlrcGpjJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnbTYgNiA0IDQgNC00Jywga2V5OiAnazEzbjE2JyB9XSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBXaW5kQXJyb3dEb3duXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NVEFnTW5ZNElpQXZQZ29nSUR4d1lYUm9JR1E5SWsweE1pNDRJREl4TGpaQk1pQXlJREFnTVNBd0lERTBJREU0U0RJaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRFM0xqVWdNVEJoTWk0MUlESXVOU0F3SURFZ01TQXlJRFJJTWlJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0p0TmlBMklEUWdOQ0EwTFRRaUlDOCtDand2YzNablBnbz0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL3dpbmQtYXJyb3ctZG93blxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IFdpbmRBcnJvd0Rvd24gPSBjcmVhdGVMdWNpZGVJY29uKCd3aW5kLWFycm93LWRvd24nLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgV2luZEFycm93RG93bjtcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTggMjJoOCcsIGtleTogJ3JtZXc4dicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ003IDEwaDNtNyAwaC0xLjM0MycsIGtleTogJ3Y0OGJlbScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xMiAxNXY3Jywga2V5OiAndDJ4aDNsJyB9XSxcbiAgW1xuICAgICdwYXRoJyxcbiAgICB7XG4gICAgICBkOiAnTTcuMzA3IDcuMzA3QTEyLjMzIDEyLjMzIDAgMCAwIDcgMTBhNSA1IDAgMCAwIDcuMzkxIDQuMzkxTTguNjM4IDIuOTgxQzguNzUgMi42NjggOC44NzIgMi4zNCA5IDJoNmMxLjUgNCAyIDYgMiA4IDAgLjQwNy0uMDUuODA5LS4xNDUgMS4xOTgnLFxuICAgICAga2V5OiAnMXltamx1JyxcbiAgICB9LFxuICBdLFxuICBbJ2xpbmUnLCB7IHgxOiAnMicsIHgyOiAnMjInLCB5MTogJzInLCB5MjogJzIyJywga2V5OiAnYTZwNnVqJyB9XSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBXaW5lT2ZmXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5PQ0F5TW1nNElpQXZQZ29nSUR4d1lYUm9JR1E5SWswM0lERXdhRE50TnlBd2FDMHhMak0wTXlJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTVRJZ01UVjJOeUlnTHo0S0lDQThjR0YwYUNCa1BTSk5OeTR6TURjZ055NHpNRGRCTVRJdU16TWdNVEl1TXpNZ01DQXdJREFnTnlBeE1HRTFJRFVnTUNBd0lEQWdOeTR6T1RFZ05DNHpPVEZOT0M0Mk16Z2dNaTQ1T0RGRE9DNDNOU0F5TGpZMk9DQTRMamczTWlBeUxqTTBJRGtnTW1nMll6RXVOU0EwSURJZ05pQXlJRGdnTUNBdU5EQTNMUzR3TlM0NE1Ea3RMakUwTlNBeExqRTVPQ0lnTHo0S0lDQThiR2x1WlNCNE1UMGlNaUlnZURJOUlqSXlJaUI1TVQwaU1pSWdlVEk5SWpJeUlpQXZQZ284TDNOMlp6NEspIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL3dpbmUtb2ZmXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgV2luZU9mZiA9IGNyZWF0ZUx1Y2lkZUljb24oJ3dpbmUtb2ZmJywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IFdpbmVPZmY7XG4iLCJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ00xMi44IDE5LjZBMiAyIDAgMSAwIDE0IDE2SDInLCBrZXk6ICcxNDh4ZWQnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTcuNSA4YTIuNSAyLjUgMCAxIDEgMiA0SDInLCBrZXk6ICcxdTR0b20nIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNOS44IDQuNEEyIDIgMCAxIDEgMTEgOEgyJywga2V5OiAnNzV2YWxoJyB9XSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBXaW5kXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NVEl1T0NBeE9TNDJRVElnTWlBd0lERWdNQ0F4TkNBeE5rZ3lJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHhOeTQxSURoaE1pNDFJREl1TlNBd0lERWdNU0F5SURSSU1pSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk9TNDRJRFF1TkVFeUlESWdNQ0F4SURFZ01URWdPRWd5SWlBdlBnbzhMM04yWno0SykgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvd2luZFxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IFdpbmQgPSBjcmVhdGVMdWNpZGVJY29uKCd3aW5kJywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IFdpbmQ7XG4iLCJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ004IDIyaDgnLCBrZXk6ICdybWV3OHYnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNNyAxMGgxMCcsIGtleTogJzExMDFqbScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xMiAxNXY3Jywga2V5OiAndDJ4aDNsJyB9XSxcbiAgW1xuICAgICdwYXRoJyxcbiAgICB7IGQ6ICdNMTIgMTVhNSA1IDAgMCAwIDUtNWMwLTItLjUtNC0yLThIOWMtMS41IDQtMiA2LTIgOGE1IDUgMCAwIDAgNSA1WicsIGtleTogJzEwZmZpMycgfSxcbiAgXSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBXaW5lXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5PQ0F5TW1nNElpQXZQZ29nSUR4d1lYUm9JR1E5SWswM0lERXdhREV3SWlBdlBnb2dJRHh3WVhSb0lHUTlJazB4TWlBeE5YWTNJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHhNaUF4TldFMUlEVWdNQ0F3SURBZ05TMDFZekF0TWkwdU5TMDBMVEl0T0VnNVl5MHhMalVnTkMweUlEWXRNaUE0WVRVZ05TQXdJREFnTUNBMUlEVmFJaUF2UGdvOEwzTjJaejRLKSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy93aW5lXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgV2luZSA9IGNyZWF0ZUx1Y2lkZUljb24oJ3dpbmUnLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgV2luZTtcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgWydyZWN0JywgeyB3aWR0aDogJzgnLCBoZWlnaHQ6ICc4JywgeDogJzMnLCB5OiAnMycsIHJ4OiAnMicsIGtleTogJ2J5Mnc5ZicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ003IDExdjRhMiAyIDAgMCAwIDIgMmg0Jywga2V5OiAneGtuN3luJyB9XSxcbiAgWydyZWN0JywgeyB3aWR0aDogJzgnLCBoZWlnaHQ6ICc4JywgeDogJzEzJywgeTogJzEzJywgcng6ICcyJywga2V5OiAnMWNnbXZuJyB9XSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBXb3JrZmxvd1xuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y21WamRDQjNhV1IwYUQwaU9DSWdhR1ZwWjJoMFBTSTRJaUI0UFNJeklpQjVQU0l6SWlCeWVEMGlNaUlnTHo0S0lDQThjR0YwYUNCa1BTSk5OeUF4TVhZMFlUSWdNaUF3SURBZ01DQXlJREpvTkNJZ0x6NEtJQ0E4Y21WamRDQjNhV1IwYUQwaU9DSWdhR1ZwWjJoMFBTSTRJaUI0UFNJeE15SWdlVDBpTVRNaUlISjRQU0l5SWlBdlBnbzhMM04yWno0SykgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvd29ya2Zsb3dcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBXb3JrZmxvdyA9IGNyZWF0ZUx1Y2lkZUljb24oJ3dvcmtmbG93JywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IFdvcmtmbG93O1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdtMTkgMTItMS41IDMnLCBrZXk6ICc5YmN1NG8nIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTkuNjMgMTguODEgMjIgMjAnLCBrZXk6ICcxMjF2OTgnIH1dLFxuICBbXG4gICAgJ3BhdGgnLFxuICAgIHtcbiAgICAgIGQ6ICdNNi40NyA4LjIzYTEuNjggMS42OCAwIDAgMSAyLjQ0IDEuOTNsLS42NCAyLjA4YTYuNzYgNi43NiAwIDAgMCAxMC4xNiA3LjY3bC40Mi0uMjdhMSAxIDAgMSAwLTIuNzMtNC4yMWwtLjQyLjI3YTEuNzYgMS43NiAwIDAgMS0yLjYzLTEuOTlsLjY0LTIuMDhBNi42NiA2LjY2IDAgMCAwIDMuOTQgMy45bC0uNy40YTEgMSAwIDEgMCAyLjU1IDQuMzR6JyxcbiAgICAgIGtleTogJzF0aWo2cScsXG4gICAgfSxcbiAgXSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBXb3JtXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSnRNVGtnTVRJdE1TNDFJRE1pSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVEU1TGpZeklERTRMamd4SURJeUlESXdJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMDJMalEzSURndU1qTmhNUzQyT0NBeExqWTRJREFnTUNBeElESXVORFFnTVM0NU0yd3RMalkwSURJdU1EaGhOaTQzTmlBMkxqYzJJREFnTUNBd0lERXdMakUySURjdU5qZHNMalF5TFM0eU4yRXhJREVnTUNBeElEQXRNaTQzTXkwMExqSXhiQzB1TkRJdU1qZGhNUzQzTmlBeExqYzJJREFnTUNBeExUSXVOak10TVM0NU9Xd3VOalF0TWk0d09FRTJMalkySURZdU5qWWdNQ0F3SURBZ015NDVOQ0F6TGpsc0xTNDNMalJoTVNBeElEQWdNU0F3SURJdU5UVWdOQzR6TkhvaUlDOCtDand2YzNablBnbz0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL3dvcm1cbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBXb3JtID0gY3JlYXRlTHVjaWRlSWNvbignd29ybScsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBXb3JtO1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdtMTYgMTYtMiAyIDIgMicsIGtleTogJ2trYzZwbScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00zIDEyaDE1YTMgMyAwIDEgMSAwIDZoLTQnLCBrZXk6ICcxY2w3djcnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMyAxOGg3Jywga2V5OiAnc3EyMXY2JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTMgNmgxOCcsIGtleTogJ2Qwd20waicgfV0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgV3JhcFRleHRcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKdE1UWWdNVFl0TWlBeUlESWdNaUlnTHo0S0lDQThjR0YwYUNCa1BTSk5NeUF4TW1neE5XRXpJRE1nTUNBeElERWdNQ0EyYUMwMElpQXZQZ29nSUR4d1lYUm9JR1E5SWsweklERTRhRGNpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVE1nTm1neE9DSWdMejRLUEM5emRtYytDZz09KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy93cmFwLXRleHRcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBXcmFwVGV4dCA9IGNyZWF0ZUx1Y2lkZUljb24oJ3dyYXAtdGV4dCcsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBXcmFwVGV4dDtcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgW1xuICAgICdwYXRoJyxcbiAgICB7XG4gICAgICBkOiAnTTE0LjcgNi4zYTEgMSAwIDAgMCAwIDEuNGwxLjYgMS42YTEgMSAwIDAgMCAxLjQgMGwzLjc3LTMuNzdhNiA2IDAgMCAxLTcuOTQgNy45NGwtNi45MSA2LjkxYTIuMTIgMi4xMiAwIDAgMS0zLTNsNi45MS02LjkxYTYgNiAwIDAgMSA3Ljk0LTcuOTRsLTMuNzYgMy43NnonLFxuICAgICAga2V5OiAnY2JyamhpJyxcbiAgICB9LFxuICBdLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIFdyZW5jaFxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTVRRdU55QTJMak5oTVNBeElEQWdNQ0F3SURBZ01TNDBiREV1TmlBeExqWmhNU0F4SURBZ01DQXdJREV1TkNBd2JETXVOemN0TXk0M04yRTJJRFlnTUNBd0lERXROeTQ1TkNBM0xqazBiQzAyTGpreElEWXVPVEZoTWk0eE1pQXlMakV5SURBZ01DQXhMVE10TTJ3Mkxqa3hMVFl1T1RGaE5pQTJJREFnTUNBeElEY3VPVFF0Tnk0NU5Hd3RNeTQzTmlBekxqYzJlaUlnTHo0S1BDOXpkbWMrQ2c9PSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvd3JlbmNoXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgV3JlbmNoID0gY3JlYXRlTHVjaWRlSWNvbignd3JlbmNoJywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IFdyZW5jaDtcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTE4IDYgNiAxOCcsIGtleTogJzFibDVmOCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ202IDYgMTIgMTInLCBrZXk6ICdkOGJrNnYnIH1dLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIFhcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1UZ2dOaUEySURFNElpQXZQZ29nSUR4d1lYUm9JR1E5SW0wMklEWWdNVElnTVRJaUlDOCtDand2YzNablBnbz0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL3hcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBYID0gY3JlYXRlTHVjaWRlSWNvbigneCcsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBYO1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbXG4gICAgJ3BhdGgnLFxuICAgIHtcbiAgICAgIGQ6ICdNMi41IDE3YTI0LjEyIDI0LjEyIDAgMCAxIDAtMTAgMiAyIDAgMCAxIDEuNC0xLjQgNDkuNTYgNDkuNTYgMCAwIDEgMTYuMiAwQTIgMiAwIDAgMSAyMS41IDdhMjQuMTIgMjQuMTIgMCAwIDEgMCAxMCAyIDIgMCAwIDEtMS40IDEuNCA0OS41NSA0OS41NSAwIDAgMS0xNi4yIDBBMiAyIDAgMCAxIDIuNSAxNycsXG4gICAgICBrZXk6ICcxcTJ2aTQnLFxuICAgIH0sXG4gIF0sXG4gIFsncGF0aCcsIHsgZDogJ20xMCAxNSA1LTMtNS0zeicsIGtleTogJzFqcDE1eCcgfV0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgWW91dHViZVxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTWk0MUlERTNZVEkwTGpFeUlESTBMakV5SURBZ01DQXhJREF0TVRBZ01pQXlJREFnTUNBeElERXVOQzB4TGpRZ05Ea3VOVFlnTkRrdU5UWWdNQ0F3SURFZ01UWXVNaUF3UVRJZ01pQXdJREFnTVNBeU1TNDFJRGRoTWpRdU1USWdNalF1TVRJZ01DQXdJREVnTUNBeE1DQXlJRElnTUNBd0lERXRNUzQwSURFdU5DQTBPUzQxTlNBME9TNDFOU0F3SURBZ01TMHhOaTR5SURCQk1pQXlJREFnTUNBeElESXVOU0F4TnlJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0p0TVRBZ01UVWdOUzB6TFRVdE0zb2lJQzgrQ2p3dmMzWm5QZ289KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy95b3V0dWJlXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICogQGRlcHJlY2F0ZWQgQnJhbmQgaWNvbnMgaGF2ZSBiZWVuIGRlcHJlY2F0ZWQgYW5kIGFyZSBkdWUgdG8gYmUgcmVtb3ZlZCwgcGxlYXNlIHJlZmVyIHRvIGh0dHBzOi8vZ2l0aHViLmNvbS9sdWNpZGUtaWNvbnMvbHVjaWRlL2lzc3Vlcy82NzAuIFdlIHJlY29tbWVuZCB1c2luZyBodHRwczovL3NpbXBsZWljb25zLm9yZy8/cT15b3V0dWJlIGluc3RlYWQuIFRoaXMgaWNvbiB3aWxsIGJlIHJlbW92ZWQgaW4gdjEuMFxuICovXG5jb25zdCBZb3V0dWJlID0gY3JlYXRlTHVjaWRlSWNvbigneW91dHViZScsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBZb3V0dWJlO1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdNMTAuNTEzIDQuODU2IDEzLjEyIDIuMTdhLjUuNSAwIDAgMSAuODYuNDZsLTEuMzc3IDQuMzE3Jywga2V5OiAnMTkzbnhkJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTE1LjY1NiAxMEgyMGExIDEgMCAwIDEgLjc4IDEuNjNsLTEuNzIgMS43NzMnLCBrZXk6ICcyN2E3bHInIH1dLFxuICBbXG4gICAgJ3BhdGgnLFxuICAgIHtcbiAgICAgIGQ6ICdNMTYuMjczIDE2LjI3MyAxMC44OCAyMS44M2EuNS41IDAgMCAxLS44Ni0uNDZsMS45Mi02LjAyQTEgMSAwIDAgMCAxMSAxNEg0YTEgMSAwIDAgMS0uNzgtMS42M2w0LjUwNy00LjY0MycsXG4gICAgICBrZXk6ICcxZTBxZTknLFxuICAgIH0sXG4gIF0sXG4gIFsncGF0aCcsIHsgZDogJ20yIDIgMjAgMjAnLCBrZXk6ICcxb29ld3knIH1dLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIFphcE9mZlxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTVRBdU5URXpJRFF1T0RVMklERXpMakV5SURJdU1UZGhMalV1TlNBd0lEQWdNU0F1T0RZdU5EWnNMVEV1TXpjM0lEUXVNekUzSWlBdlBnb2dJRHh3WVhSb0lHUTlJazB4TlM0Mk5UWWdNVEJJTWpCaE1TQXhJREFnTUNBeElDNDNPQ0F4TGpZemJDMHhMamN5SURFdU56Y3pJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHhOaTR5TnpNZ01UWXVNamN6SURFd0xqZzRJREl4TGpnellTNDFMalVnTUNBd0lERXRMamcyTFM0ME5td3hMamt5TFRZdU1ESkJNU0F4SURBZ01DQXdJREV4SURFMFNEUmhNU0F4SURBZ01DQXhMUzQzT0MweExqWXpiRFF1TlRBM0xUUXVOalF6SWlBdlBnb2dJRHh3WVhSb0lHUTlJbTB5SURJZ01qQWdNakFpSUM4K0Nqd3ZjM1puUGdvPSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvemFwLW9mZlxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IFphcE9mZiA9IGNyZWF0ZUx1Y2lkZUljb24oJ3phcC1vZmYnLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgWmFwT2ZmO1xuIiwiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbXG4gICAgJ3BhdGgnLFxuICAgIHtcbiAgICAgIGQ6ICdNNCAxNGExIDEgMCAwIDEtLjc4LTEuNjNsOS45LTEwLjJhLjUuNSAwIDAgMSAuODYuNDZsLTEuOTIgNi4wMkExIDEgMCAwIDAgMTMgMTBoN2ExIDEgMCAwIDEgLjc4IDEuNjNsLTkuOSAxMC4yYS41LjUgMCAwIDEtLjg2LS40NmwxLjkyLTYuMDJBMSAxIDAgMCAwIDExIDE0eicsXG4gICAgICBrZXk6ICcxeHEyZGInLFxuICAgIH0sXG4gIF0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgWmFwXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5OQ0F4TkdFeElERWdNQ0F3SURFdExqYzRMVEV1TmpOc09TNDVMVEV3TGpKaExqVXVOU0F3SURBZ01TQXVPRFl1TkRac0xURXVPVElnTmk0d01rRXhJREVnTUNBd0lEQWdNVE1nTVRCb04yRXhJREVnTUNBd0lERWdMamM0SURFdU5qTnNMVGt1T1NBeE1DNHlZUzQxTGpVZ01DQXdJREV0TGpnMkxTNDBObXd4TGpreUxUWXVNREpCTVNBeElEQWdNQ0F3SURFeElERTBlaUlnTHo0S1BDOXpkbWMrQ2c9PSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvemFwXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgWmFwID0gY3JlYXRlTHVjaWRlSWNvbignemFwJywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IFphcDtcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgWydjaXJjbGUnLCB7IGN4OiAnMTEnLCBjeTogJzExJywgcjogJzgnLCBrZXk6ICc0ZWo5N3UnIH1dLFxuICBbJ2xpbmUnLCB7IHgxOiAnMjEnLCB4MjogJzE2LjY1JywgeTE6ICcyMScsIHkyOiAnMTYuNjUnLCBrZXk6ICcxM2dqN2MnIH1dLFxuICBbJ2xpbmUnLCB7IHgxOiAnMTEnLCB4MjogJzExJywgeTE6ICc4JywgeTI6ICcxNCcsIGtleTogJzF2bXNrcCcgfV0sXG4gIFsnbGluZScsIHsgeDE6ICc4JywgeDI6ICcxNCcsIHkxOiAnMTEnLCB5MjogJzExJywga2V5OiAnZHVyeW11JyB9XSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBab29tSW5cbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOFkybHlZMnhsSUdONFBTSXhNU0lnWTNrOUlqRXhJaUJ5UFNJNElpQXZQZ29nSUR4c2FXNWxJSGd4UFNJeU1TSWdlREk5SWpFMkxqWTFJaUI1TVQwaU1qRWlJSGt5UFNJeE5pNDJOU0lnTHo0S0lDQThiR2x1WlNCNE1UMGlNVEVpSUhneVBTSXhNU0lnZVRFOUlqZ2lJSGt5UFNJeE5DSWdMejRLSUNBOGJHbHVaU0I0TVQwaU9DSWdlREk5SWpFMElpQjVNVDBpTVRFaUlIa3lQU0l4TVNJZ0x6NEtQQzl6ZG1jK0NnPT0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL3pvb20taW5cbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBab29tSW4gPSBjcmVhdGVMdWNpZGVJY29uKCd6b29tLWluJywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IFpvb21JbjtcbiIsImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgWydjaXJjbGUnLCB7IGN4OiAnMTEnLCBjeTogJzExJywgcjogJzgnLCBrZXk6ICc0ZWo5N3UnIH1dLFxuICBbJ2xpbmUnLCB7IHgxOiAnMjEnLCB4MjogJzE2LjY1JywgeTE6ICcyMScsIHkyOiAnMTYuNjUnLCBrZXk6ICcxM2dqN2MnIH1dLFxuICBbJ2xpbmUnLCB7IHgxOiAnOCcsIHgyOiAnMTQnLCB5MTogJzExJywgeTI6ICcxMScsIGtleTogJ2R1cnltdScgfV0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgWm9vbU91dFxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4WTJseVkyeGxJR040UFNJeE1TSWdZM2s5SWpFeElpQnlQU0k0SWlBdlBnb2dJRHhzYVc1bElIZ3hQU0l5TVNJZ2VESTlJakUyTGpZMUlpQjVNVDBpTWpFaUlIa3lQU0l4Tmk0Mk5TSWdMejRLSUNBOGJHbHVaU0I0TVQwaU9DSWdlREk5SWpFMElpQjVNVDBpTVRFaUlIa3lQU0l4TVNJZ0x6NEtQQzl6ZG1jK0NnPT0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL3pvb20tb3V0XG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgWm9vbU91dCA9IGNyZWF0ZUx1Y2lkZUljb24oJ3pvb20tb3V0JywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IFpvb21PdXQ7XG4iXSwibmFtZXMiOlsiZm9yd2FyZFJlZiIsImNyZWF0ZUVsZW1lbnQiLCJfX2ljb25Ob2RlIl0sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(pages-dir-node)/./node_modules/lucide-react/dist/cjs/lucide-react.js\n"); - -/***/ }) - -}; -; \ No newline at end of file diff --git a/build/server/vendor-chunks/next.js b/build/server/vendor-chunks/next.js deleted file mode 100644 index 9c9f7bf..0000000 --- a/build/server/vendor-chunks/next.js +++ /dev/null @@ -1,1144 +0,0 @@ -/* - * ATTENTION: An "eval-source-map" devtool has been used. - * This devtool is neither made for production nor for readable output files. - * It uses "eval()" calls to create a separate source file with attached SourceMaps in the browser devtools. - * If you are trying to read the output file, select a different devtool (https://webpack.js.org/configuration/devtool/) - * or disable the default devtool with "devtool: false". - * If you are looking for production-ready output files, see mode: "production" (https://webpack.js.org/configuration/mode/). - */ -exports.id = "vendor-chunks/next"; -exports.ids = ["vendor-chunks/next"]; -exports.modules = { - -/***/ "(pages-dir-node)/./node_modules/next/dist/build/templates/helpers.js": -/*!***********************************************************!*\ - !*** ./node_modules/next/dist/build/templates/helpers.js ***! - \***********************************************************/ -/***/ ((__unused_webpack_module, exports) => { - -"use strict"; -eval("/**\n * Hoists a name from a module or promised module.\n *\n * @param module the module to hoist the name from\n * @param name the name to hoist\n * @returns the value on the module (or promised module)\n */ \nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"hoist\", ({\n enumerable: true,\n get: function() {\n return hoist;\n }\n}));\nfunction hoist(module, name) {\n // If the name is available in the module, return it.\n if (name in module) {\n return module[name];\n }\n // If a property called `then` exists, assume it's a promise and\n // return a promise that resolves to the name.\n if ('then' in module && typeof module.then === 'function') {\n return module.then((mod)=>hoist(mod, name));\n }\n // If we're trying to hoise the default export, and the module is a function,\n // return the module itself.\n if (typeof module === 'function' && name === 'default') {\n return module;\n }\n // Otherwise, return undefined.\n return undefined;\n}\n\n//# sourceMappingURL=helpers.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1ub2RlKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvYnVpbGQvdGVtcGxhdGVzL2hlbHBlcnMuanMiLCJtYXBwaW5ncyI6IkFBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsSUFBaUI7QUFDakIsOENBQTZDO0FBQzdDO0FBQ0EsQ0FBQyxFQUFDO0FBQ0YseUNBQXdDO0FBQ3hDO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsQ0FBQyxFQUFDO0FBQ0Y7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBIiwic291cmNlcyI6WyJEOlxcZG9uZ3l1bi1wcm9qZWN0c1xcdHdvXFxub2RlX21vZHVsZXNcXG5leHRcXGRpc3RcXGJ1aWxkXFx0ZW1wbGF0ZXNcXGhlbHBlcnMuanMiXSwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBIb2lzdHMgYSBuYW1lIGZyb20gYSBtb2R1bGUgb3IgcHJvbWlzZWQgbW9kdWxlLlxuICpcbiAqIEBwYXJhbSBtb2R1bGUgdGhlIG1vZHVsZSB0byBob2lzdCB0aGUgbmFtZSBmcm9tXG4gKiBAcGFyYW0gbmFtZSB0aGUgbmFtZSB0byBob2lzdFxuICogQHJldHVybnMgdGhlIHZhbHVlIG9uIHRoZSBtb2R1bGUgKG9yIHByb21pc2VkIG1vZHVsZSlcbiAqLyBcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwge1xuICAgIHZhbHVlOiB0cnVlXG59KTtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcImhvaXN0XCIsIHtcbiAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgIGdldDogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBob2lzdDtcbiAgICB9XG59KTtcbmZ1bmN0aW9uIGhvaXN0KG1vZHVsZSwgbmFtZSkge1xuICAgIC8vIElmIHRoZSBuYW1lIGlzIGF2YWlsYWJsZSBpbiB0aGUgbW9kdWxlLCByZXR1cm4gaXQuXG4gICAgaWYgKG5hbWUgaW4gbW9kdWxlKSB7XG4gICAgICAgIHJldHVybiBtb2R1bGVbbmFtZV07XG4gICAgfVxuICAgIC8vIElmIGEgcHJvcGVydHkgY2FsbGVkIGB0aGVuYCBleGlzdHMsIGFzc3VtZSBpdCdzIGEgcHJvbWlzZSBhbmRcbiAgICAvLyByZXR1cm4gYSBwcm9taXNlIHRoYXQgcmVzb2x2ZXMgdG8gdGhlIG5hbWUuXG4gICAgaWYgKCd0aGVuJyBpbiBtb2R1bGUgJiYgdHlwZW9mIG1vZHVsZS50aGVuID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgIHJldHVybiBtb2R1bGUudGhlbigobW9kKT0+aG9pc3QobW9kLCBuYW1lKSk7XG4gICAgfVxuICAgIC8vIElmIHdlJ3JlIHRyeWluZyB0byBob2lzZSB0aGUgZGVmYXVsdCBleHBvcnQsIGFuZCB0aGUgbW9kdWxlIGlzIGEgZnVuY3Rpb24sXG4gICAgLy8gcmV0dXJuIHRoZSBtb2R1bGUgaXRzZWxmLlxuICAgIGlmICh0eXBlb2YgbW9kdWxlID09PSAnZnVuY3Rpb24nICYmIG5hbWUgPT09ICdkZWZhdWx0Jykge1xuICAgICAgICByZXR1cm4gbW9kdWxlO1xuICAgIH1cbiAgICAvLyBPdGhlcndpc2UsIHJldHVybiB1bmRlZmluZWQuXG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbn1cblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9aGVscGVycy5qcy5tYXAiXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(pages-dir-node)/./node_modules/next/dist/build/templates/helpers.js\n"); - -/***/ }), - -/***/ "(pages-dir-node)/./node_modules/next/dist/client/add-base-path.js": -/*!********************************************************!*\ - !*** ./node_modules/next/dist/client/add-base-path.js ***! - \********************************************************/ -/***/ ((module, exports, __webpack_require__) => { - -"use strict"; -eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"addBasePath\", ({\n enumerable: true,\n get: function() {\n return addBasePath;\n }\n}));\nconst _addpathprefix = __webpack_require__(/*! ../shared/lib/router/utils/add-path-prefix */ \"(pages-dir-node)/./node_modules/next/dist/shared/lib/router/utils/add-path-prefix.js\");\nconst _normalizetrailingslash = __webpack_require__(/*! ./normalize-trailing-slash */ \"(pages-dir-node)/./node_modules/next/dist/client/normalize-trailing-slash.js\");\nconst basePath = false || '';\nfunction addBasePath(path, required) {\n return (0, _normalizetrailingslash.normalizePathTrailingSlash)( false ? 0 : (0, _addpathprefix.addPathPrefix)(path, basePath));\n}\nif ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=add-base-path.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1ub2RlKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvY2xpZW50L2FkZC1iYXNlLXBhdGguanMiLCJtYXBwaW5ncyI6Ijs7OzsrQ0FLZ0JBOzs7ZUFBQUE7OzsyQ0FMYztvREFDYTtBQUUzQyxNQUFNQyxXQUFZQyxNQUFrQyxJQUFlO0FBRTVELFNBQVNGLFlBQVlLLElBQVksRUFBRUMsUUFBa0I7SUFDMUQsT0FBT0MsQ0FBQUEsR0FBQUEsd0JBQUFBLDBCQUFBQSxFQUNMTCxNQUF1REksR0FDbkRELENBQUlBLEdBQ0pJLENBQUFBLEdBQUFBLGVBQUFBLGFBQUFBLEVBQWNKLE1BQU1KO0FBRTVCIiwic291cmNlcyI6WyJEOlxcc3JjXFxjbGllbnRcXGFkZC1iYXNlLXBhdGgudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgYWRkUGF0aFByZWZpeCB9IGZyb20gJy4uL3NoYXJlZC9saWIvcm91dGVyL3V0aWxzL2FkZC1wYXRoLXByZWZpeCdcbmltcG9ydCB7IG5vcm1hbGl6ZVBhdGhUcmFpbGluZ1NsYXNoIH0gZnJvbSAnLi9ub3JtYWxpemUtdHJhaWxpbmctc2xhc2gnXG5cbmNvbnN0IGJhc2VQYXRoID0gKHByb2Nlc3MuZW52Ll9fTkVYVF9ST1VURVJfQkFTRVBBVEggYXMgc3RyaW5nKSB8fCAnJ1xuXG5leHBvcnQgZnVuY3Rpb24gYWRkQmFzZVBhdGgocGF0aDogc3RyaW5nLCByZXF1aXJlZD86IGJvb2xlYW4pOiBzdHJpbmcge1xuICByZXR1cm4gbm9ybWFsaXplUGF0aFRyYWlsaW5nU2xhc2goXG4gICAgcHJvY2Vzcy5lbnYuX19ORVhUX01BTlVBTF9DTElFTlRfQkFTRV9QQVRIICYmICFyZXF1aXJlZFxuICAgICAgPyBwYXRoXG4gICAgICA6IGFkZFBhdGhQcmVmaXgocGF0aCwgYmFzZVBhdGgpXG4gIClcbn1cbiJdLCJuYW1lcyI6WyJhZGRCYXNlUGF0aCIsImJhc2VQYXRoIiwicHJvY2VzcyIsImVudiIsIl9fTkVYVF9ST1VURVJfQkFTRVBBVEgiLCJwYXRoIiwicmVxdWlyZWQiLCJub3JtYWxpemVQYXRoVHJhaWxpbmdTbGFzaCIsIl9fTkVYVF9NQU5VQUxfQ0xJRU5UX0JBU0VfUEFUSCIsImFkZFBhdGhQcmVmaXgiXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(pages-dir-node)/./node_modules/next/dist/client/add-base-path.js\n"); - -/***/ }), - -/***/ "(pages-dir-node)/./node_modules/next/dist/client/add-locale.js": -/*!*****************************************************!*\ - !*** ./node_modules/next/dist/client/add-locale.js ***! - \*****************************************************/ -/***/ ((module, exports, __webpack_require__) => { - -"use strict"; -eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"addLocale\", ({\n enumerable: true,\n get: function() {\n return addLocale;\n }\n}));\nconst _normalizetrailingslash = __webpack_require__(/*! ./normalize-trailing-slash */ \"(pages-dir-node)/./node_modules/next/dist/client/normalize-trailing-slash.js\");\nconst addLocale = function(path) {\n for(var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++){\n args[_key - 1] = arguments[_key];\n }\n if (false) {}\n return path;\n};\nif ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=add-locale.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1ub2RlKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvY2xpZW50L2FkZC1sb2NhbGUuanMiLCJtYXBwaW5ncyI6Ijs7Ozs2Q0FHYUE7OztlQUFBQTs7O29EQUY4QjtBQUVwQyxNQUFNQSxZQUF1QixTQUFDQyxJQUFBQTtxQ0FBU0MsT0FBQUEsSUFBQUEsTUFBQUEsT0FBQUEsSUFBQUEsT0FBQUEsSUFBQUEsSUFBQUEsT0FBQUEsR0FBQUEsT0FBQUEsTUFBQUEsT0FBQUE7UUFBQUEsSUFBQUEsQ0FBQUEsT0FBQUEsRUFBQUEsR0FBQUEsU0FBQUEsQ0FBQUEsS0FBQUE7O0lBQzVDLElBQUlDLEtBQStCLEVBQUUsRUFNcEM7SUFDRCxPQUFPRjtBQUNUIiwic291cmNlcyI6WyJEOlxcc3JjXFxjbGllbnRcXGFkZC1sb2NhbGUudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBhZGRMb2NhbGUgYXMgRm4gfSBmcm9tICcuLi9zaGFyZWQvbGliL3JvdXRlci91dGlscy9hZGQtbG9jYWxlJ1xuaW1wb3J0IHsgbm9ybWFsaXplUGF0aFRyYWlsaW5nU2xhc2ggfSBmcm9tICcuL25vcm1hbGl6ZS10cmFpbGluZy1zbGFzaCdcblxuZXhwb3J0IGNvbnN0IGFkZExvY2FsZTogdHlwZW9mIEZuID0gKHBhdGgsIC4uLmFyZ3MpID0+IHtcbiAgaWYgKHByb2Nlc3MuZW52Ll9fTkVYVF9JMThOX1NVUFBPUlQpIHtcbiAgICByZXR1cm4gbm9ybWFsaXplUGF0aFRyYWlsaW5nU2xhc2goXG4gICAgICAoXG4gICAgICAgIHJlcXVpcmUoJy4uL3NoYXJlZC9saWIvcm91dGVyL3V0aWxzL2FkZC1sb2NhbGUnKSBhcyB0eXBlb2YgaW1wb3J0KCcuLi9zaGFyZWQvbGliL3JvdXRlci91dGlscy9hZGQtbG9jYWxlJylcbiAgICAgICkuYWRkTG9jYWxlKHBhdGgsIC4uLmFyZ3MpXG4gICAgKVxuICB9XG4gIHJldHVybiBwYXRoXG59XG4iXSwibmFtZXMiOlsiYWRkTG9jYWxlIiwicGF0aCIsImFyZ3MiLCJwcm9jZXNzIiwiZW52IiwiX19ORVhUX0kxOE5fU1VQUE9SVCIsIm5vcm1hbGl6ZVBhdGhUcmFpbGluZ1NsYXNoIiwicmVxdWlyZSJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(pages-dir-node)/./node_modules/next/dist/client/add-locale.js\n"); - -/***/ }), - -/***/ "(pages-dir-node)/./node_modules/next/dist/client/components/app-router-headers.js": -/*!************************************************************************!*\ - !*** ./node_modules/next/dist/client/components/app-router-headers.js ***! - \************************************************************************/ -/***/ ((module, exports) => { - -"use strict"; -eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n ACTION_HEADER: function() {\n return ACTION_HEADER;\n },\n FLIGHT_HEADERS: function() {\n return FLIGHT_HEADERS;\n },\n NEXT_ACTION_NOT_FOUND_HEADER: function() {\n return NEXT_ACTION_NOT_FOUND_HEADER;\n },\n NEXT_DID_POSTPONE_HEADER: function() {\n return NEXT_DID_POSTPONE_HEADER;\n },\n NEXT_HMR_REFRESH_HASH_COOKIE: function() {\n return NEXT_HMR_REFRESH_HASH_COOKIE;\n },\n NEXT_HMR_REFRESH_HEADER: function() {\n return NEXT_HMR_REFRESH_HEADER;\n },\n NEXT_IS_PRERENDER_HEADER: function() {\n return NEXT_IS_PRERENDER_HEADER;\n },\n NEXT_REWRITTEN_PATH_HEADER: function() {\n return NEXT_REWRITTEN_PATH_HEADER;\n },\n NEXT_REWRITTEN_QUERY_HEADER: function() {\n return NEXT_REWRITTEN_QUERY_HEADER;\n },\n NEXT_ROUTER_PREFETCH_HEADER: function() {\n return NEXT_ROUTER_PREFETCH_HEADER;\n },\n NEXT_ROUTER_SEGMENT_PREFETCH_HEADER: function() {\n return NEXT_ROUTER_SEGMENT_PREFETCH_HEADER;\n },\n NEXT_ROUTER_STALE_TIME_HEADER: function() {\n return NEXT_ROUTER_STALE_TIME_HEADER;\n },\n NEXT_ROUTER_STATE_TREE_HEADER: function() {\n return NEXT_ROUTER_STATE_TREE_HEADER;\n },\n NEXT_RSC_UNION_QUERY: function() {\n return NEXT_RSC_UNION_QUERY;\n },\n NEXT_URL: function() {\n return NEXT_URL;\n },\n RSC_CONTENT_TYPE_HEADER: function() {\n return RSC_CONTENT_TYPE_HEADER;\n },\n RSC_HEADER: function() {\n return RSC_HEADER;\n }\n});\nconst RSC_HEADER = 'RSC';\nconst ACTION_HEADER = 'Next-Action';\nconst NEXT_ROUTER_STATE_TREE_HEADER = 'Next-Router-State-Tree';\nconst NEXT_ROUTER_PREFETCH_HEADER = 'Next-Router-Prefetch';\nconst NEXT_ROUTER_SEGMENT_PREFETCH_HEADER = 'Next-Router-Segment-Prefetch';\nconst NEXT_HMR_REFRESH_HEADER = 'Next-HMR-Refresh';\nconst NEXT_HMR_REFRESH_HASH_COOKIE = '__next_hmr_refresh_hash__';\nconst NEXT_URL = 'Next-Url';\nconst RSC_CONTENT_TYPE_HEADER = 'text/x-component';\nconst FLIGHT_HEADERS = [\n RSC_HEADER,\n NEXT_ROUTER_STATE_TREE_HEADER,\n NEXT_ROUTER_PREFETCH_HEADER,\n NEXT_HMR_REFRESH_HEADER,\n NEXT_ROUTER_SEGMENT_PREFETCH_HEADER\n];\nconst NEXT_RSC_UNION_QUERY = '_rsc';\nconst NEXT_ROUTER_STALE_TIME_HEADER = 'x-nextjs-stale-time';\nconst NEXT_DID_POSTPONE_HEADER = 'x-nextjs-postponed';\nconst NEXT_REWRITTEN_PATH_HEADER = 'x-nextjs-rewritten-path';\nconst NEXT_REWRITTEN_QUERY_HEADER = 'x-nextjs-rewritten-query';\nconst NEXT_IS_PRERENDER_HEADER = 'x-nextjs-prerender';\nconst NEXT_ACTION_NOT_FOUND_HEADER = 'x-nextjs-action-not-found';\nif ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=app-router-headers.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1ub2RlKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvY2xpZW50L2NvbXBvbmVudHMvYXBwLXJvdXRlci1oZWFkZXJzLmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7OztJQUNhQSxhQUFhO2VBQWJBOztJQWlCQUMsY0FBYztlQUFkQTs7SUFlQUMsNEJBQTRCO2VBQTVCQTs7SUFKQUMsd0JBQXdCO2VBQXhCQTs7SUFmQUMsNEJBQTRCO2VBQTVCQTs7SUFEQUMsdUJBQXVCO2VBQXZCQTs7SUFtQkFDLHdCQUF3QjtlQUF4QkE7O0lBRkFDLDBCQUEwQjtlQUExQkE7O0lBQ0FDLDJCQUEyQjtlQUEzQkE7O0lBekJBQywyQkFBMkI7ZUFBM0JBOztJQUtBQyxtQ0FBbUM7ZUFBbkNBOztJQWlCQUMsNkJBQTZCO2VBQTdCQTs7SUF2QkFDLDZCQUE2QjtlQUE3QkE7O0lBcUJBQyxvQkFBb0I7ZUFBcEJBOztJQVhBQyxRQUFRO2VBQVJBOztJQUNBQyx1QkFBdUI7ZUFBdkJBOztJQWhCQUMsVUFBVTtlQUFWQTs7O0FBQU4sTUFBTUEsYUFBYTtBQUNuQixNQUFNaEIsZ0JBQWdCO0FBSXRCLE1BQU1ZLGdDQUFnQztBQUN0QyxNQUFNSCw4QkFBOEI7QUFLcEMsTUFBTUMsc0NBQ1g7QUFDSyxNQUFNTCwwQkFBMEI7QUFDaEMsTUFBTUQsK0JBQStCO0FBQ3JDLE1BQU1VLFdBQVc7QUFDakIsTUFBTUMsMEJBQTBCO0FBRWhDLE1BQU1kLGlCQUFpQjtJQUM1QmU7SUFDQUo7SUFDQUg7SUFDQUo7SUFDQUs7Q0FDRDtBQUVNLE1BQU1HLHVCQUF1QjtBQUU3QixNQUFNRixnQ0FBZ0M7QUFDdEMsTUFBTVIsMkJBQTJCO0FBQ2pDLE1BQU1JLDZCQUE2QjtBQUNuQyxNQUFNQyw4QkFBOEI7QUFDcEMsTUFBTUYsMkJBQTJCO0FBQ2pDLE1BQU1KLCtCQUErQiIsInNvdXJjZXMiOlsiRDpcXHNyY1xcY2xpZW50XFxjb21wb25lbnRzXFxhcHAtcm91dGVyLWhlYWRlcnMudHMiXSwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNvbnN0IFJTQ19IRUFERVIgPSAnUlNDJyBhcyBjb25zdFxuZXhwb3J0IGNvbnN0IEFDVElPTl9IRUFERVIgPSAnTmV4dC1BY3Rpb24nIGFzIGNvbnN0XG4vLyBUT0RPOiBJbnN0ZWFkIG9mIHNlbmRpbmcgdGhlIGZ1bGwgcm91dGVyIHN0YXRlLCB3ZSBvbmx5IG5lZWQgdG8gc2VuZCB0aGVcbi8vIHNlZ21lbnQgcGF0aC4gU2F2ZXMgYnl0ZXMuIFRoZW4gd2UgY291bGQgYWxzbyB1c2UgdGhpcyBmaWVsZCBmb3Igc2VnbWVudFxuLy8gcHJlZmV0Y2hlcywgd2hpY2ggYWxzbyBuZWVkIHRvIHNwZWNpZnkgYSBwYXJ0aWN1bGFyIHNlZ21lbnQuXG5leHBvcnQgY29uc3QgTkVYVF9ST1VURVJfU1RBVEVfVFJFRV9IRUFERVIgPSAnTmV4dC1Sb3V0ZXItU3RhdGUtVHJlZScgYXMgY29uc3RcbmV4cG9ydCBjb25zdCBORVhUX1JPVVRFUl9QUkVGRVRDSF9IRUFERVIgPSAnTmV4dC1Sb3V0ZXItUHJlZmV0Y2gnIGFzIGNvbnN0XG4vLyBUaGlzIGNvbnRhaW5zIHRoZSBwYXRoIHRvIHRoZSBzZWdtZW50IGJlaW5nIHByZWZldGNoZWQuXG4vLyBUT0RPOiBJZiB3ZSBjaGFuZ2UgTmV4dC1Sb3V0ZXItU3RhdGUtVHJlZSB0byBiZSBhIHNlZ21lbnQgcGF0aCwgd2UgY2FuIHVzZVxuLy8gdGhhdCBpbnN0ZWFkLiBUaGVuIE5leHQtUm91dGVyLVByZWZldGNoIGFuZCBOZXh0LVJvdXRlci1TZWdtZW50LVByZWZldGNoIGNhblxuLy8gYmUgbWVyZ2VkIGludG8gYSBzaW5nbGUgZW51bS5cbmV4cG9ydCBjb25zdCBORVhUX1JPVVRFUl9TRUdNRU5UX1BSRUZFVENIX0hFQURFUiA9XG4gICdOZXh0LVJvdXRlci1TZWdtZW50LVByZWZldGNoJyBhcyBjb25zdFxuZXhwb3J0IGNvbnN0IE5FWFRfSE1SX1JFRlJFU0hfSEVBREVSID0gJ05leHQtSE1SLVJlZnJlc2gnIGFzIGNvbnN0XG5leHBvcnQgY29uc3QgTkVYVF9ITVJfUkVGUkVTSF9IQVNIX0NPT0tJRSA9ICdfX25leHRfaG1yX3JlZnJlc2hfaGFzaF9fJyBhcyBjb25zdFxuZXhwb3J0IGNvbnN0IE5FWFRfVVJMID0gJ05leHQtVXJsJyBhcyBjb25zdFxuZXhwb3J0IGNvbnN0IFJTQ19DT05URU5UX1RZUEVfSEVBREVSID0gJ3RleHQveC1jb21wb25lbnQnIGFzIGNvbnN0XG5cbmV4cG9ydCBjb25zdCBGTElHSFRfSEVBREVSUyA9IFtcbiAgUlNDX0hFQURFUixcbiAgTkVYVF9ST1VURVJfU1RBVEVfVFJFRV9IRUFERVIsXG4gIE5FWFRfUk9VVEVSX1BSRUZFVENIX0hFQURFUixcbiAgTkVYVF9ITVJfUkVGUkVTSF9IRUFERVIsXG4gIE5FWFRfUk9VVEVSX1NFR01FTlRfUFJFRkVUQ0hfSEVBREVSLFxuXSBhcyBjb25zdFxuXG5leHBvcnQgY29uc3QgTkVYVF9SU0NfVU5JT05fUVVFUlkgPSAnX3JzYycgYXMgY29uc3RcblxuZXhwb3J0IGNvbnN0IE5FWFRfUk9VVEVSX1NUQUxFX1RJTUVfSEVBREVSID0gJ3gtbmV4dGpzLXN0YWxlLXRpbWUnIGFzIGNvbnN0XG5leHBvcnQgY29uc3QgTkVYVF9ESURfUE9TVFBPTkVfSEVBREVSID0gJ3gtbmV4dGpzLXBvc3Rwb25lZCcgYXMgY29uc3RcbmV4cG9ydCBjb25zdCBORVhUX1JFV1JJVFRFTl9QQVRIX0hFQURFUiA9ICd4LW5leHRqcy1yZXdyaXR0ZW4tcGF0aCcgYXMgY29uc3RcbmV4cG9ydCBjb25zdCBORVhUX1JFV1JJVFRFTl9RVUVSWV9IRUFERVIgPSAneC1uZXh0anMtcmV3cml0dGVuLXF1ZXJ5JyBhcyBjb25zdFxuZXhwb3J0IGNvbnN0IE5FWFRfSVNfUFJFUkVOREVSX0hFQURFUiA9ICd4LW5leHRqcy1wcmVyZW5kZXInIGFzIGNvbnN0XG5leHBvcnQgY29uc3QgTkVYVF9BQ1RJT05fTk9UX0ZPVU5EX0hFQURFUiA9ICd4LW5leHRqcy1hY3Rpb24tbm90LWZvdW5kJyBhcyBjb25zdFxuIl0sIm5hbWVzIjpbIkFDVElPTl9IRUFERVIiLCJGTElHSFRfSEVBREVSUyIsIk5FWFRfQUNUSU9OX05PVF9GT1VORF9IRUFERVIiLCJORVhUX0RJRF9QT1NUUE9ORV9IRUFERVIiLCJORVhUX0hNUl9SRUZSRVNIX0hBU0hfQ09PS0lFIiwiTkVYVF9ITVJfUkVGUkVTSF9IRUFERVIiLCJORVhUX0lTX1BSRVJFTkRFUl9IRUFERVIiLCJORVhUX1JFV1JJVFRFTl9QQVRIX0hFQURFUiIsIk5FWFRfUkVXUklUVEVOX1FVRVJZX0hFQURFUiIsIk5FWFRfUk9VVEVSX1BSRUZFVENIX0hFQURFUiIsIk5FWFRfUk9VVEVSX1NFR01FTlRfUFJFRkVUQ0hfSEVBREVSIiwiTkVYVF9ST1VURVJfU1RBTEVfVElNRV9IRUFERVIiLCJORVhUX1JPVVRFUl9TVEFURV9UUkVFX0hFQURFUiIsIk5FWFRfUlNDX1VOSU9OX1FVRVJZIiwiTkVYVF9VUkwiLCJSU0NfQ09OVEVOVF9UWVBFX0hFQURFUiIsIlJTQ19IRUFERVIiXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(pages-dir-node)/./node_modules/next/dist/client/components/app-router-headers.js\n"); - -/***/ }), - -/***/ "(pages-dir-node)/./node_modules/next/dist/client/components/redirect-status-code.js": -/*!**************************************************************************!*\ - !*** ./node_modules/next/dist/client/components/redirect-status-code.js ***! - \**************************************************************************/ -/***/ ((module, exports) => { - -"use strict"; -eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"RedirectStatusCode\", ({\n enumerable: true,\n get: function() {\n return RedirectStatusCode;\n }\n}));\nvar RedirectStatusCode = /*#__PURE__*/ function(RedirectStatusCode) {\n RedirectStatusCode[RedirectStatusCode[\"SeeOther\"] = 303] = \"SeeOther\";\n RedirectStatusCode[RedirectStatusCode[\"TemporaryRedirect\"] = 307] = \"TemporaryRedirect\";\n RedirectStatusCode[RedirectStatusCode[\"PermanentRedirect\"] = 308] = \"PermanentRedirect\";\n return RedirectStatusCode;\n}({});\nif ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=redirect-status-code.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1ub2RlKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvY2xpZW50L2NvbXBvbmVudHMvcmVkaXJlY3Qtc3RhdHVzLWNvZGUuanMiLCJtYXBwaW5ncyI6Ijs7OztzREFBWUE7OztlQUFBQTs7O0FBQUwsSUFBS0EscUJBQUFBLFdBQUFBLEdBQUFBLFNBQUFBLGtCQUFBQTs7OztXQUFBQSIsInNvdXJjZXMiOlsiRDpcXHNyY1xcY2xpZW50XFxjb21wb25lbnRzXFxyZWRpcmVjdC1zdGF0dXMtY29kZS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgZW51bSBSZWRpcmVjdFN0YXR1c0NvZGUge1xuICBTZWVPdGhlciA9IDMwMyxcbiAgVGVtcG9yYXJ5UmVkaXJlY3QgPSAzMDcsXG4gIFBlcm1hbmVudFJlZGlyZWN0ID0gMzA4LFxufVxuIl0sIm5hbWVzIjpbIlJlZGlyZWN0U3RhdHVzQ29kZSJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(pages-dir-node)/./node_modules/next/dist/client/components/redirect-status-code.js\n"); - -/***/ }), - -/***/ "(pages-dir-node)/./node_modules/next/dist/client/get-domain-locale.js": -/*!************************************************************!*\ - !*** ./node_modules/next/dist/client/get-domain-locale.js ***! - \************************************************************/ -/***/ ((module, exports, __webpack_require__) => { - -"use strict"; -eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"getDomainLocale\", ({\n enumerable: true,\n get: function() {\n return getDomainLocale;\n }\n}));\nconst _normalizetrailingslash = __webpack_require__(/*! ./normalize-trailing-slash */ \"(pages-dir-node)/./node_modules/next/dist/client/normalize-trailing-slash.js\");\nconst basePath = false || '';\nfunction getDomainLocale(path, locale, locales, domainLocales) {\n if (false) {} else {\n return false;\n }\n}\nif ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=get-domain-locale.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1ub2RlKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvY2xpZW50L2dldC1kb21haW4tbG9jYWxlLmpzIiwibWFwcGluZ3MiOiI7Ozs7bURBT2dCQTs7O2VBQUFBOzs7b0RBSjJCO0FBRTNDLE1BQU1DLFdBQVlDLE1BQWtDLElBQWU7QUFFNUQsU0FBU0YsZ0JBQ2RLLElBQVksRUFDWkMsTUFBdUIsRUFDdkJDLE9BQTJCLEVBQzNCQyxhQUF1QztJQUV2QyxJQUFJTixLQUErQixFQUFFLEVBa0JwQyxNQUFNO1FBQ0wsT0FBTztJQUNUO0FBQ0YiLCJzb3VyY2VzIjpbIkQ6XFxzcmNcXGNsaWVudFxcZ2V0LWRvbWFpbi1sb2NhbGUudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBEb21haW5Mb2NhbGUgfSBmcm9tICcuLi9zZXJ2ZXIvY29uZmlnJ1xuaW1wb3J0IHR5cGUgeyBub3JtYWxpemVMb2NhbGVQYXRoIGFzIE5vcm1hbGl6ZUZuIH0gZnJvbSAnLi9ub3JtYWxpemUtbG9jYWxlLXBhdGgnXG5pbXBvcnQgdHlwZSB7IGRldGVjdERvbWFpbkxvY2FsZSBhcyBEZXRlY3RGbiB9IGZyb20gJy4vZGV0ZWN0LWRvbWFpbi1sb2NhbGUnXG5pbXBvcnQgeyBub3JtYWxpemVQYXRoVHJhaWxpbmdTbGFzaCB9IGZyb20gJy4vbm9ybWFsaXplLXRyYWlsaW5nLXNsYXNoJ1xuXG5jb25zdCBiYXNlUGF0aCA9IChwcm9jZXNzLmVudi5fX05FWFRfUk9VVEVSX0JBU0VQQVRIIGFzIHN0cmluZykgfHwgJydcblxuZXhwb3J0IGZ1bmN0aW9uIGdldERvbWFpbkxvY2FsZShcbiAgcGF0aDogc3RyaW5nLFxuICBsb2NhbGU/OiBzdHJpbmcgfCBmYWxzZSxcbiAgbG9jYWxlcz86IHJlYWRvbmx5IHN0cmluZ1tdLFxuICBkb21haW5Mb2NhbGVzPzogcmVhZG9ubHkgRG9tYWluTG9jYWxlW11cbikge1xuICBpZiAocHJvY2Vzcy5lbnYuX19ORVhUX0kxOE5fU1VQUE9SVCkge1xuICAgIGNvbnN0IG5vcm1hbGl6ZUxvY2FsZVBhdGg6IHR5cGVvZiBOb3JtYWxpemVGbiA9IChcbiAgICAgIHJlcXVpcmUoJy4vbm9ybWFsaXplLWxvY2FsZS1wYXRoJykgYXMgdHlwZW9mIGltcG9ydCgnLi9ub3JtYWxpemUtbG9jYWxlLXBhdGgnKVxuICAgICkubm9ybWFsaXplTG9jYWxlUGF0aFxuICAgIGNvbnN0IGRldGVjdERvbWFpbkxvY2FsZTogdHlwZW9mIERldGVjdEZuID0gKFxuICAgICAgcmVxdWlyZSgnLi9kZXRlY3QtZG9tYWluLWxvY2FsZScpIGFzIHR5cGVvZiBpbXBvcnQoJy4vZGV0ZWN0LWRvbWFpbi1sb2NhbGUnKVxuICAgICkuZGV0ZWN0RG9tYWluTG9jYWxlXG5cbiAgICBjb25zdCB0YXJnZXQgPSBsb2NhbGUgfHwgbm9ybWFsaXplTG9jYWxlUGF0aChwYXRoLCBsb2NhbGVzKS5kZXRlY3RlZExvY2FsZVxuICAgIGNvbnN0IGRvbWFpbiA9IGRldGVjdERvbWFpbkxvY2FsZShkb21haW5Mb2NhbGVzLCB1bmRlZmluZWQsIHRhcmdldClcbiAgICBpZiAoZG9tYWluKSB7XG4gICAgICBjb25zdCBwcm90byA9IGBodHRwJHtkb21haW4uaHR0cCA/ICcnIDogJ3MnfTovL2BcbiAgICAgIGNvbnN0IGZpbmFsTG9jYWxlID0gdGFyZ2V0ID09PSBkb21haW4uZGVmYXVsdExvY2FsZSA/ICcnIDogYC8ke3RhcmdldH1gXG4gICAgICByZXR1cm4gYCR7cHJvdG99JHtkb21haW4uZG9tYWlufSR7bm9ybWFsaXplUGF0aFRyYWlsaW5nU2xhc2goXG4gICAgICAgIGAke2Jhc2VQYXRofSR7ZmluYWxMb2NhbGV9JHtwYXRofWBcbiAgICAgICl9YFxuICAgIH1cbiAgICByZXR1cm4gZmFsc2VcbiAgfSBlbHNlIHtcbiAgICByZXR1cm4gZmFsc2VcbiAgfVxufVxuIl0sIm5hbWVzIjpbImdldERvbWFpbkxvY2FsZSIsImJhc2VQYXRoIiwicHJvY2VzcyIsImVudiIsIl9fTkVYVF9ST1VURVJfQkFTRVBBVEgiLCJwYXRoIiwibG9jYWxlIiwibG9jYWxlcyIsImRvbWFpbkxvY2FsZXMiLCJfX05FWFRfSTE4Tl9TVVBQT1JUIiwibm9ybWFsaXplTG9jYWxlUGF0aCIsInJlcXVpcmUiLCJkZXRlY3REb21haW5Mb2NhbGUiLCJ0YXJnZXQiLCJkZXRlY3RlZExvY2FsZSIsImRvbWFpbiIsInVuZGVmaW5lZCIsInByb3RvIiwiaHR0cCIsImZpbmFsTG9jYWxlIiwiZGVmYXVsdExvY2FsZSIsIm5vcm1hbGl6ZVBhdGhUcmFpbGluZ1NsYXNoIl0sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(pages-dir-node)/./node_modules/next/dist/client/get-domain-locale.js\n"); - -/***/ }), - -/***/ "(pages-dir-node)/./node_modules/next/dist/client/has-base-path.js": -/*!********************************************************!*\ - !*** ./node_modules/next/dist/client/has-base-path.js ***! - \********************************************************/ -/***/ ((module, exports, __webpack_require__) => { - -"use strict"; -eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"hasBasePath\", ({\n enumerable: true,\n get: function() {\n return hasBasePath;\n }\n}));\nconst _pathhasprefix = __webpack_require__(/*! ../shared/lib/router/utils/path-has-prefix */ \"(pages-dir-node)/./node_modules/next/dist/shared/lib/router/utils/path-has-prefix.js\");\nconst basePath = false || '';\nfunction hasBasePath(path) {\n return (0, _pathhasprefix.pathHasPrefix)(path, basePath);\n}\nif ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=has-base-path.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1ub2RlKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvY2xpZW50L2hhcy1iYXNlLXBhdGguanMiLCJtYXBwaW5ncyI6Ijs7OzsrQ0FJZ0JBOzs7ZUFBQUE7OzsyQ0FKYztBQUU5QixNQUFNQyxXQUFZQyxNQUFrQyxJQUFlO0FBRTVELFNBQVNGLFlBQVlLLElBQVk7SUFDdEMsT0FBT0MsQ0FBQUEsR0FBQUEsZUFBQUEsYUFBQUEsRUFBY0QsTUFBTUo7QUFDN0IiLCJzb3VyY2VzIjpbIkQ6XFxzcmNcXGNsaWVudFxcaGFzLWJhc2UtcGF0aC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBwYXRoSGFzUHJlZml4IH0gZnJvbSAnLi4vc2hhcmVkL2xpYi9yb3V0ZXIvdXRpbHMvcGF0aC1oYXMtcHJlZml4J1xuXG5jb25zdCBiYXNlUGF0aCA9IChwcm9jZXNzLmVudi5fX05FWFRfUk9VVEVSX0JBU0VQQVRIIGFzIHN0cmluZykgfHwgJydcblxuZXhwb3J0IGZ1bmN0aW9uIGhhc0Jhc2VQYXRoKHBhdGg6IHN0cmluZyk6IGJvb2xlYW4ge1xuICByZXR1cm4gcGF0aEhhc1ByZWZpeChwYXRoLCBiYXNlUGF0aClcbn1cbiJdLCJuYW1lcyI6WyJoYXNCYXNlUGF0aCIsImJhc2VQYXRoIiwicHJvY2VzcyIsImVudiIsIl9fTkVYVF9ST1VURVJfQkFTRVBBVEgiLCJwYXRoIiwicGF0aEhhc1ByZWZpeCJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(pages-dir-node)/./node_modules/next/dist/client/has-base-path.js\n"); - -/***/ }), - -/***/ "(pages-dir-node)/./node_modules/next/dist/client/link.js": -/*!***********************************************!*\ - !*** ./node_modules/next/dist/client/link.js ***! - \***********************************************/ -/***/ ((module, exports, __webpack_require__) => { - -"use strict"; -eval("/* __next_internal_client_entry_do_not_use__ cjs */ \nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n default: function() {\n return _default;\n },\n useLinkStatus: function() {\n return useLinkStatus;\n }\n});\nconst _interop_require_wildcard = __webpack_require__(/*! @swc/helpers/_/_interop_require_wildcard */ \"(pages-dir-node)/./node_modules/@swc/helpers/cjs/_interop_require_wildcard.cjs\");\nconst _jsxruntime = __webpack_require__(/*! react/jsx-runtime */ \"react/jsx-runtime\");\nconst _react = /*#__PURE__*/ _interop_require_wildcard._(__webpack_require__(/*! react */ \"react\"));\nconst _resolvehref = __webpack_require__(/*! ./resolve-href */ \"(pages-dir-node)/./node_modules/next/dist/client/resolve-href.js\");\nconst _islocalurl = __webpack_require__(/*! ../shared/lib/router/utils/is-local-url */ \"(pages-dir-node)/./node_modules/next/dist/shared/lib/router/utils/is-local-url.js\");\nconst _formaturl = __webpack_require__(/*! ../shared/lib/router/utils/format-url */ \"(pages-dir-node)/./node_modules/next/dist/shared/lib/router/utils/format-url.js\");\nconst _utils = __webpack_require__(/*! ../shared/lib/utils */ \"(pages-dir-node)/./node_modules/next/dist/shared/lib/utils.js\");\nconst _addlocale = __webpack_require__(/*! ./add-locale */ \"(pages-dir-node)/./node_modules/next/dist/client/add-locale.js\");\nconst _routercontextsharedruntime = __webpack_require__(/*! ../shared/lib/router-context.shared-runtime */ \"(pages-dir-node)/./node_modules/next/dist/server/route-modules/pages/vendored/contexts/router-context.js\");\nconst _useintersection = __webpack_require__(/*! ./use-intersection */ \"(pages-dir-node)/./node_modules/next/dist/client/use-intersection.js\");\nconst _getdomainlocale = __webpack_require__(/*! ./get-domain-locale */ \"(pages-dir-node)/./node_modules/next/dist/client/get-domain-locale.js\");\nconst _addbasepath = __webpack_require__(/*! ./add-base-path */ \"(pages-dir-node)/./node_modules/next/dist/client/add-base-path.js\");\nconst _usemergedref = __webpack_require__(/*! ./use-merged-ref */ \"(pages-dir-node)/./node_modules/next/dist/client/use-merged-ref.js\");\nconst _erroronce = __webpack_require__(/*! ../shared/lib/utils/error-once */ \"(pages-dir-node)/./node_modules/next/dist/shared/lib/utils/error-once.js\");\nconst prefetched = new Set();\nfunction prefetch(router, href, as, options) {\n if (true) {\n return;\n }\n if (!(0, _islocalurl.isLocalURL)(href)) {\n return;\n }\n // We should only dedupe requests when experimental.optimisticClientCache is\n // disabled.\n if (!options.bypassPrefetchedCheck) {\n const locale = typeof options.locale !== 'undefined' ? options.locale : 'locale' in router ? router.locale : undefined;\n const prefetchedKey = href + '%' + as + '%' + locale;\n // If we've already fetched the key, then don't prefetch it again!\n if (prefetched.has(prefetchedKey)) {\n return;\n }\n // Mark this URL as prefetched.\n prefetched.add(prefetchedKey);\n }\n // Prefetch the JSON page if asked (only in the client)\n // We need to handle a prefetch error here since we may be\n // loading with priority which can reject but we don't\n // want to force navigation since this is only a prefetch\n router.prefetch(href, as, options).catch((err)=>{\n if (true) {\n // rethrow to show invalid URL errors\n throw err;\n }\n });\n}\nfunction isModifiedEvent(event) {\n const eventTarget = event.currentTarget;\n const target = eventTarget.getAttribute('target');\n return target && target !== '_self' || event.metaKey || event.ctrlKey || event.shiftKey || event.altKey || // triggers resource download\n event.nativeEvent && event.nativeEvent.which === 2;\n}\nfunction linkClicked(e, router, href, as, replace, shallow, scroll, locale, onNavigate) {\n const { nodeName } = e.currentTarget;\n // anchors inside an svg have a lowercase nodeName\n const isAnchorNodeName = nodeName.toUpperCase() === 'A';\n if (isAnchorNodeName && isModifiedEvent(e) || e.currentTarget.hasAttribute('download')) {\n // ignore click for browser’s default behavior\n return;\n }\n if (!(0, _islocalurl.isLocalURL)(href)) {\n if (replace) {\n // browser default behavior does not replace the history state\n // so we need to do it manually\n e.preventDefault();\n location.replace(href);\n }\n // ignore click for browser’s default behavior\n return;\n }\n e.preventDefault();\n const navigate = ()=>{\n if (onNavigate) {\n let isDefaultPrevented = false;\n onNavigate({\n preventDefault: ()=>{\n isDefaultPrevented = true;\n }\n });\n if (isDefaultPrevented) {\n return;\n }\n }\n // If the router is an NextRouter instance it will have `beforePopState`\n const routerScroll = scroll != null ? scroll : true;\n if ('beforePopState' in router) {\n router[replace ? 'replace' : 'push'](href, as, {\n shallow,\n locale,\n scroll: routerScroll\n });\n } else {\n router[replace ? 'replace' : 'push'](as || href, {\n scroll: routerScroll\n });\n }\n };\n navigate();\n}\nfunction formatStringOrUrl(urlObjOrString) {\n if (typeof urlObjOrString === 'string') {\n return urlObjOrString;\n }\n return (0, _formaturl.formatUrl)(urlObjOrString);\n}\n/**\n * A React component that extends the HTML `` element to provide [prefetching](https://nextjs.org/docs/app/building-your-application/routing/linking-and-navigating#2-prefetching)\n * and client-side navigation between routes.\n *\n * It is the primary way to navigate between routes in Next.js.\n *\n * Read more: [Next.js docs: ``](https://nextjs.org/docs/app/api-reference/components/link)\n */ const Link = /*#__PURE__*/ _react.default.forwardRef(function LinkComponent(props, forwardedRef) {\n let children;\n const { href: hrefProp, as: asProp, children: childrenProp, prefetch: prefetchProp = null, passHref, replace, shallow, scroll, locale, onClick, onNavigate, onMouseEnter: onMouseEnterProp, onTouchStart: onTouchStartProp, legacyBehavior = false, ...restProps } = props;\n children = childrenProp;\n if (legacyBehavior && (typeof children === 'string' || typeof children === 'number')) {\n children = /*#__PURE__*/ (0, _jsxruntime.jsx)(\"a\", {\n children: children\n });\n }\n const router = _react.default.useContext(_routercontextsharedruntime.RouterContext);\n const prefetchEnabled = prefetchProp !== false;\n if (true) {\n function createPropError(args) {\n return Object.defineProperty(new Error(\"Failed prop type: The prop `\" + args.key + \"` expects a \" + args.expected + \" in ``, but got `\" + args.actual + \"` instead.\" + ( false ? 0 : '')), \"__NEXT_ERROR_CODE\", {\n value: \"E319\",\n enumerable: false,\n configurable: true\n });\n }\n // TypeScript trick for type-guarding:\n const requiredPropsGuard = {\n href: true\n };\n const requiredProps = Object.keys(requiredPropsGuard);\n requiredProps.forEach((key)=>{\n if (key === 'href') {\n if (props[key] == null || typeof props[key] !== 'string' && typeof props[key] !== 'object') {\n throw createPropError({\n key,\n expected: '`string` or `object`',\n actual: props[key] === null ? 'null' : typeof props[key]\n });\n }\n } else {\n // TypeScript trick for type-guarding:\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n const _ = key;\n }\n });\n // TypeScript trick for type-guarding:\n const optionalPropsGuard = {\n as: true,\n replace: true,\n scroll: true,\n shallow: true,\n passHref: true,\n prefetch: true,\n locale: true,\n onClick: true,\n onMouseEnter: true,\n onTouchStart: true,\n legacyBehavior: true,\n onNavigate: true\n };\n const optionalProps = Object.keys(optionalPropsGuard);\n optionalProps.forEach((key)=>{\n const valType = typeof props[key];\n if (key === 'as') {\n if (props[key] && valType !== 'string' && valType !== 'object') {\n throw createPropError({\n key,\n expected: '`string` or `object`',\n actual: valType\n });\n }\n } else if (key === 'locale') {\n if (props[key] && valType !== 'string') {\n throw createPropError({\n key,\n expected: '`string`',\n actual: valType\n });\n }\n } else if (key === 'onClick' || key === 'onMouseEnter' || key === 'onTouchStart' || key === 'onNavigate') {\n if (props[key] && valType !== 'function') {\n throw createPropError({\n key,\n expected: '`function`',\n actual: valType\n });\n }\n } else if (key === 'replace' || key === 'scroll' || key === 'shallow' || key === 'passHref' || key === 'legacyBehavior') {\n if (props[key] != null && valType !== 'boolean') {\n throw createPropError({\n key,\n expected: '`boolean`',\n actual: valType\n });\n }\n } else if (key === 'prefetch') {\n if (props[key] != null && valType !== 'boolean' && props[key] !== 'auto') {\n throw createPropError({\n key,\n expected: '`boolean | \"auto\"`',\n actual: valType\n });\n }\n } else {\n // TypeScript trick for type-guarding:\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n const _ = key;\n }\n });\n }\n const { href, as } = _react.default.useMemo({\n \"Link.LinkComponent.useMemo\": ()=>{\n if (!router) {\n const resolvedHref = formatStringOrUrl(hrefProp);\n return {\n href: resolvedHref,\n as: asProp ? formatStringOrUrl(asProp) : resolvedHref\n };\n }\n const [resolvedHref, resolvedAs] = (0, _resolvehref.resolveHref)(router, hrefProp, true);\n return {\n href: resolvedHref,\n as: asProp ? (0, _resolvehref.resolveHref)(router, asProp) : resolvedAs || resolvedHref\n };\n }\n }[\"Link.LinkComponent.useMemo\"], [\n router,\n hrefProp,\n asProp\n ]);\n const previousHref = _react.default.useRef(href);\n const previousAs = _react.default.useRef(as);\n // This will return the first child, if multiple are provided it will throw an error\n let child;\n if (legacyBehavior) {\n if (true) {\n if (onClick) {\n console.warn('\"onClick\" was passed to with `href` of `' + hrefProp + '` but \"legacyBehavior\" was set. The legacy behavior requires onClick be set on the child of next/link');\n }\n if (onMouseEnterProp) {\n console.warn('\"onMouseEnter\" was passed to with `href` of `' + hrefProp + '` but \"legacyBehavior\" was set. The legacy behavior requires onMouseEnter be set on the child of next/link');\n }\n try {\n child = _react.default.Children.only(children);\n } catch (err) {\n if (!children) {\n throw Object.defineProperty(new Error(\"No children were passed to with `href` of `\" + hrefProp + \"` but one child is required https://nextjs.org/docs/messages/link-no-children\"), \"__NEXT_ERROR_CODE\", {\n value: \"E320\",\n enumerable: false,\n configurable: true\n });\n }\n throw Object.defineProperty(new Error(\"Multiple children were passed to with `href` of `\" + hrefProp + \"` but only one child is supported https://nextjs.org/docs/messages/link-multiple-children\" + ( false ? 0 : '')), \"__NEXT_ERROR_CODE\", {\n value: \"E266\",\n enumerable: false,\n configurable: true\n });\n }\n } else {}\n } else {\n if (true) {\n if ((children == null ? void 0 : children.type) === 'a') {\n throw Object.defineProperty(new Error('Invalid with child. Please remove or use .\\nLearn more: https://nextjs.org/docs/messages/invalid-new-link-with-extra-anchor'), \"__NEXT_ERROR_CODE\", {\n value: \"E209\",\n enumerable: false,\n configurable: true\n });\n }\n }\n }\n const childRef = legacyBehavior ? child && typeof child === 'object' && child.ref : forwardedRef;\n const [setIntersectionRef, isVisible, resetVisible] = (0, _useintersection.useIntersection)({\n rootMargin: '200px'\n });\n const setIntersectionWithResetRef = _react.default.useCallback({\n \"Link.LinkComponent.useCallback[setIntersectionWithResetRef]\": (el)=>{\n // Before the link getting observed, check if visible state need to be reset\n if (previousAs.current !== as || previousHref.current !== href) {\n resetVisible();\n previousAs.current = as;\n previousHref.current = href;\n }\n setIntersectionRef(el);\n }\n }[\"Link.LinkComponent.useCallback[setIntersectionWithResetRef]\"], [\n as,\n href,\n resetVisible,\n setIntersectionRef\n ]);\n const setRef = (0, _usemergedref.useMergedRef)(setIntersectionWithResetRef, childRef);\n // Prefetch the URL if we haven't already and it's visible.\n _react.default.useEffect({\n \"Link.LinkComponent.useEffect\": ()=>{\n // in dev, we only prefetch on hover to avoid wasting resources as the prefetch will trigger compiling the page.\n if (true) {\n return;\n }\n if (!router) {\n return;\n }\n // If we don't need to prefetch the URL, don't do prefetch.\n if (!isVisible || !prefetchEnabled) {\n return;\n }\n // Prefetch the URL.\n prefetch(router, href, as, {\n locale\n });\n }\n }[\"Link.LinkComponent.useEffect\"], [\n as,\n href,\n isVisible,\n locale,\n prefetchEnabled,\n router == null ? void 0 : router.locale,\n router\n ]);\n const childProps = {\n ref: setRef,\n onClick (e) {\n if (true) {\n if (!e) {\n throw Object.defineProperty(new Error('Component rendered inside next/link has to pass click event to \"onClick\" prop.'), \"__NEXT_ERROR_CODE\", {\n value: \"E312\",\n enumerable: false,\n configurable: true\n });\n }\n }\n if (!legacyBehavior && typeof onClick === 'function') {\n onClick(e);\n }\n if (legacyBehavior && child.props && typeof child.props.onClick === 'function') {\n child.props.onClick(e);\n }\n if (!router) {\n return;\n }\n if (e.defaultPrevented) {\n return;\n }\n linkClicked(e, router, href, as, replace, shallow, scroll, locale, onNavigate);\n },\n onMouseEnter (e) {\n if (!legacyBehavior && typeof onMouseEnterProp === 'function') {\n onMouseEnterProp(e);\n }\n if (legacyBehavior && child.props && typeof child.props.onMouseEnter === 'function') {\n child.props.onMouseEnter(e);\n }\n if (!router) {\n return;\n }\n prefetch(router, href, as, {\n locale,\n priority: true,\n // @see {https://github.com/vercel/next.js/discussions/40268?sort=top#discussioncomment-3572642}\n bypassPrefetchedCheck: true\n });\n },\n onTouchStart: false ? 0 : function onTouchStart(e) {\n if (!legacyBehavior && typeof onTouchStartProp === 'function') {\n onTouchStartProp(e);\n }\n if (legacyBehavior && child.props && typeof child.props.onTouchStart === 'function') {\n child.props.onTouchStart(e);\n }\n if (!router) {\n return;\n }\n prefetch(router, href, as, {\n locale,\n priority: true,\n // @see {https://github.com/vercel/next.js/discussions/40268?sort=top#discussioncomment-3572642}\n bypassPrefetchedCheck: true\n });\n }\n };\n // If child is an tag and doesn't have a href attribute, or if the 'passHref' property is\n // defined, we specify the current 'href', so that repetition is not needed by the user.\n // If the url is absolute, we can bypass the logic to prepend the domain and locale.\n if ((0, _utils.isAbsoluteUrl)(as)) {\n childProps.href = as;\n } else if (!legacyBehavior || passHref || child.type === 'a' && !('href' in child.props)) {\n const curLocale = typeof locale !== 'undefined' ? locale : router == null ? void 0 : router.locale;\n // we only render domain locales if we are currently on a domain locale\n // so that locale links are still visitable in development/preview envs\n const localeDomain = (router == null ? void 0 : router.isLocaleDomain) && (0, _getdomainlocale.getDomainLocale)(as, curLocale, router == null ? void 0 : router.locales, router == null ? void 0 : router.domainLocales);\n childProps.href = localeDomain || (0, _addbasepath.addBasePath)((0, _addlocale.addLocale)(as, curLocale, router == null ? void 0 : router.defaultLocale));\n }\n if (legacyBehavior) {\n if (true) {\n (0, _erroronce.errorOnce)('`legacyBehavior` is deprecated and will be removed in a future ' + 'release. A codemod is available to upgrade your components:\\n\\n' + 'npx @next/codemod@latest new-link .\\n\\n' + 'Learn more: https://nextjs.org/docs/app/building-your-application/upgrading/codemods#remove-a-tags-from-link-components');\n }\n return /*#__PURE__*/ _react.default.cloneElement(child, childProps);\n }\n return /*#__PURE__*/ (0, _jsxruntime.jsx)(\"a\", {\n ...restProps,\n ...childProps,\n children: children\n });\n});\nconst LinkStatusContext = /*#__PURE__*/ (0, _react.createContext)({\n // We do not support link status in the Pages Router, so we always return false\n pending: false\n});\nconst useLinkStatus = ()=>{\n // This behaviour is like React's useFormStatus. When the component is not under\n // a
tag, it will get the default value, instead of throwing an error.\n return (0, _react.useContext)(LinkStatusContext);\n};\nconst _default = Link;\nif ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=link.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1ub2RlKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvY2xpZW50L2xpbmsuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7O0lBNHNCQSxPQUFtQjtlQUFuQjs7SUFOYUEsYUFBYTtlQUFiQTs7Ozs7NkVBL3JCb0M7eUNBRXJCO3dDQUNEO3VDQUNEO21DQUNJO3VDQUNKO3dEQUNJOzZDQUVFOzZDQUNBO3lDQUNKOzBDQUNDO3VDQUNIO0FBNkcxQixNQUFNQyxhQUFhLElBQUlDO0FBVXZCLFNBQVNDLFNBQ1BDLE1BQWtCLEVBQ2xCQyxJQUFZLEVBQ1pDLEVBQVUsRUFDVkMsT0FBd0I7SUFFeEIsSUFBSSxJQUE2QixFQUFFO1FBQ2pDO0lBQ0Y7SUFFQSxJQUFJLENBQUNFLENBQUFBLEdBQUFBLFlBQUFBLFVBQUFBLEVBQVdKLE9BQU87UUFDckI7SUFDRjtJQUVBLDRFQUE0RTtJQUM1RSxZQUFZO0lBQ1osSUFBSSxDQUFDRSxRQUFRRyxxQkFBcUIsRUFBRTtRQUNsQyxNQUFNQyxTQUNKLE9BQ09KLFFBQVFJLE1BQU0sS0FBSyxjQUN0QkosUUFBUUksTUFBTSxHQUVkLFFBSjZELElBSWpEUCxTQUNWQSxPQUFPTyxNQUFNLEdBQ2JDO1FBRVIsTUFBTUMsZ0JBQWdCUixPQUFPLE1BQU1DLEtBQUssTUFBTUs7UUFFOUMsa0VBQWtFO1FBQ2xFLElBQUlWLFdBQVdhLEdBQUcsQ0FBQ0QsZ0JBQWdCO1lBQ2pDO1FBQ0Y7UUFFQSwrQkFBK0I7UUFDL0JaLFdBQVdjLEdBQUcsQ0FBQ0Y7SUFDakI7SUFFQSx1REFBdUQ7SUFDdkQsMERBQTBEO0lBQzFELHNEQUFzRDtJQUN0RCx5REFBeUQ7SUFDekRULE9BQU9ELFFBQVEsQ0FBQ0UsTUFBTUMsSUFBSUMsU0FBU1MsS0FBSyxDQUFDLENBQUNDO1FBQ3hDLElBQUlDLElBQW9CLEVBQW1CO1lBQ3pDLHFDQUFxQztZQUNyQyxNQUFNRDtRQUNSO0lBQ0Y7QUFDRjtBQUVBLFNBQVNJLGdCQUFnQkMsS0FBdUI7SUFDOUMs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SCxDQUFBQSxVQUFBQSxPQUFBQSxLQUFBQSxJQUFBQSxPQUFRdUgsY0FBQUEsS0FDUkMsQ0FBQUEsR0FBQUEsaUJBQUFBLGVBQUFBLEVBQWdCdEgsSUFBSW1ILFdBQVdySCxVQUFBQSxPQUFBQSxLQUFBQSxJQUFBQSxPQUFReUgsT0FBTyxFQUFFekgsVUFBQUEsT0FBQUEsS0FBQUEsSUFBQUEsT0FBUTBILGFBQWE7UUFFdkVWLFdBQVcvRyxJQUFJLEdBQ2JxSCxnQkFDQUssQ0FBQUEsR0FBQUEsYUFBQUEsV0FBQUEsRUFBWUMsQ0FBQUEsR0FBQUEsV0FBQUEsU0FBQUEsRUFBVTFILElBQUltSCxXQUFXckgsVUFBQUEsT0FBQUEsS0FBQUEsSUFBQUEsT0FBUTZILGFBQWE7SUFDOUQ7SUFFQSxJQUFJN0QsZ0JBQWdCO1FBQ2xCLElBQUlsRCxJQUFvQixFQUFvQjtZQUMxQ2dILENBQUFBLEdBQUFBLFdBQUFBLFNBQUFBLEVBQ0Usb0VBQ0Usb0VBQ0EsNENBQ0E7UUFFTjtRQUNBLHFCQUFPOUUsT0FBQUEsT0FBSyxDQUFDK0UsWUFBWSxDQUFDbkMsT0FBT29CO0lBQ25DO0lBRUEscUJBQ0UscUJBQUM5QyxLQUFBQTtRQUFHLEdBQUdELFNBQVM7UUFBRyxHQUFHK0MsVUFBVTtrQkFDN0IzRDs7QUFHUDtBQUdGLE1BQU0yRSxvQkFBQUEsV0FBQUEsR0FBb0JDLENBQUFBLEdBQUFBLE9BQUFBLGFBQUFBLEVBRXZCO0lBQ0QsK0VBQStFO0lBQy9FQyxTQUFTO0FBQ1g7QUFFTyxNQUFNdEksZ0JBQWdCO0lBQzNCLGdGQUFnRjtJQUNoRiw2RUFBNkU7SUFDN0UsT0FBT3VFLENBQUFBLEdBQUFBLE9BQUFBLFVBQUFBLEVBQVc2RDtBQUNwQjtNQUVBLFdBQWVqRiIsInNvdXJjZXMiOlsiRDpcXHNyY1xcY2xpZW50XFxsaW5rLnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyIndXNlIGNsaWVudCdcblxuaW1wb3J0IHR5cGUge1xuICBOZXh0Um91dGVyLFxuICBQcmVmZXRjaE9wdGlvbnMgYXMgUm91dGVyUHJlZmV0Y2hPcHRpb25zLFxufSBmcm9tICcuLi9zaGFyZWQvbGliL3JvdXRlci9yb3V0ZXInXG5cbmltcG9ydCBSZWFjdCwgeyBjcmVhdGVDb250ZXh0LCB1c2VDb250ZXh0IH0gZnJvbSAncmVhY3QnXG5pbXBvcnQgdHlwZSB7IFVybE9iamVjdCB9IGZyb20gJ3VybCdcbmltcG9ydCB7IHJlc29sdmVIcmVmIH0gZnJvbSAnLi9yZXNvbHZlLWhyZWYnXG5pbXBvcnQgeyBpc0xvY2FsVVJMIH0gZnJvbSAnLi4vc2hhcmVkL2xpYi9yb3V0ZXIvdXRpbHMvaXMtbG9jYWwtdXJsJ1xuaW1wb3J0IHsgZm9ybWF0VXJsIH0gZnJvbSAnLi4vc2hhcmVkL2xpYi9yb3V0ZXIvdXRpbHMvZm9ybWF0LXVybCdcbmltcG9ydCB7IGlzQWJzb2x1dGVVcmwgfSBmcm9tICcuLi9zaGFyZWQvbGliL3V0aWxzJ1xuaW1wb3J0IHsgYWRkTG9jYWxlIH0gZnJvbSAnLi9hZGQtbG9jYWxlJ1xuaW1wb3J0IHsgUm91dGVyQ29udGV4dCB9IGZyb20gJy4uL3NoYXJlZC9saWIvcm91dGVyLWNvbnRleHQuc2hhcmVkLXJ1bnRpbWUnXG5pbXBvcnQgdHlwZSB7IEFwcFJvdXRlckluc3RhbmNlIH0gZnJvbSAnLi4vc2hhcmVkL2xpYi9hcHAtcm91dGVyLWNvbnRleHQuc2hhcmVkLXJ1bnRpbWUnXG5pbXBvcnQgeyB1c2VJbnRlcnNlY3Rpb24gfSBmcm9tICcuL3VzZS1pbnRlcnNlY3Rpb24nXG5pbXBvcnQgeyBnZXREb21haW5Mb2NhbGUgfSBmcm9tICcuL2dldC1kb21haW4tbG9jYWxlJ1xuaW1wb3J0IHsgYWRkQmFzZVBhdGggfSBmcm9tICcuL2FkZC1iYXNlLXBhdGgnXG5pbXBvcnQgeyB1c2VNZXJnZWRSZWYgfSBmcm9tICcuL3VzZS1tZXJnZWQtcmVmJ1xuaW1wb3J0IHsgZXJyb3JPbmNlIH0gZnJvbSAnLi4vc2hhcmVkL2xpYi91dGlscy9lcnJvci1vbmNlJ1xuXG50eXBlIFVybCA9IHN0cmluZyB8IFVybE9iamVjdFxudHlwZSBSZXF1aXJlZEtleXM8VD4gPSB7XG4gIFtLIGluIGtleW9mIFRdLT86IHt9IGV4dGVuZHMgUGljazxULCBLPiA/IG5ldmVyIDogS1xufVtrZXlvZiBUXVxudHlwZSBPcHRpb25hbEtleXM8VD4gPSB7XG4gIFtLIGluIGtleW9mIFRdLT86IHt9IGV4dGVuZHMgUGljazxULCBLPiA/IEsgOiBuZXZlclxufVtrZXlvZiBUXVxuXG50eXBlIE9uTmF2aWdhdGVFdmVudEhhbmRsZXIgPSAoZXZlbnQ6IHsgcHJldmVudERlZmF1bHQ6ICgpID0+IHZvaWQgfSkgPT4gdm9pZFxuXG50eXBlIEludGVybmFsTGlua1Byb3BzID0ge1xuICAvKipcbiAgICogVGhlIHBhdGggb3IgVVJMIHRvIG5hdmlnYXRlIHRvLiBJdCBjYW4gYWxzbyBiZSBhbiBvYmplY3QuXG4gICAqXG4gICAqIEBleGFtcGxlIGh0dHBzOi8vbmV4dGpzLm9yZy9kb2NzL2FwaS1yZWZlcmVuY2UvbmV4dC9saW5rI3dpdGgtdXJsLW9iamVjdFxuICAgKi9cbiAgaHJlZjogVXJsXG4gIC8qKlxuICAgKiBPcHRpb25hbCBkZWNvcmF0b3IgZm9yIHRoZSBwYXRoIHRoYXQgd2lsbCBiZSBzaG93biBpbiB0aGUgYnJvd3NlciBVUkwgYmFyLiBCZWZvcmUgTmV4dC5qcyA5LjUuMyB0aGlzIHdhcyB1c2VkIGZvciBkeW5hbWljIHJvdXRlcywgY2hlY2sgb3VyIFtwcmV2aW91cyBkb2NzXShodHRwczovL2dpdGh1Yi5jb20vdmVyY2VsL25leHQuanMvYmxvYi92OS41LjIvZG9jcy9hcGktcmVmZXJlbmNlL25leHQvbGluay5tZCNkeW5hbWljLXJvdXRlcykgdG8gc2VlIGhvdyBpdCB3b3JrZWQuIE5vdGU6IHdoZW4gdGhpcyBwYXRoIGRpZmZlcnMgZnJvbSB0aGUgb25lIHByb3ZpZGVkIGluIGBocmVmYCB0aGUgcHJldmlvdXMgYGhyZWZgL2Bhc2AgYmVoYXZpb3IgaXMgdXNlZCBhcyBzaG93biBpbiB0aGUgW3ByZXZpb3VzIGRvY3NdKGh0dHBzOi8vZ2l0aHViLmNvbS92ZXJjZWwvbmV4dC5qcy9ibG9iL3Y5LjUuMi9kb2NzL2FwaS1yZWZlcmVuY2UvbmV4dC9saW5rLm1kI2R5bmFtaWMtcm91dGVzKS5cbiAgICovXG4gIGFzPzogVXJsXG4gIC8qKlxuICAgKiBSZXBsYWNlIHRoZSBjdXJyZW50IGBoaXN0b3J5YCBzdGF0ZSBpbnN0ZWFkIG9mIGFkZGluZyBhIG5ldyB1cmwgaW50byB0aGUgc3RhY2suXG4gICAqXG4gICAqIEBkZWZhdWx0VmFsdWUgYGZhbHNlYFxuICAgKi9cbiAgcmVwbGFjZT86IGJvb2xlYW5cbiAgLyoqXG4gICAqIFdoZXRoZXIgdG8gb3ZlcnJpZGUgdGhlIGRlZmF1bHQgc2Nyb2xsIGJlaGF2aW9yXG4gICAqXG4gICAqIEBleGFtcGxlIGh0dHBzOi8vbmV4dGpzLm9yZy9kb2NzL2FwaS1yZWZlcmVuY2UvbmV4dC9saW5rI2Rpc2FibGUtc2Nyb2xsaW5nLXRvLXRoZS10b3Atb2YtdGhlLXBhZ2VcbiAgICpcbiAgICogQGRlZmF1bHRWYWx1ZSBgdHJ1ZWBcbiAgICovXG4gIHNjcm9sbD86IGJvb2xlYW5cbiAgLyoqXG4gICAqIFVwZGF0ZSB0aGUgcGF0aCBvZiB0aGUgY3VycmVudCBwYWdlIHdpdGhvdXQgcmVydW5uaW5nIFtgZ2V0U3RhdGljUHJvcHNgXShodHRwczovL25leHRqcy5vcmcvZG9jcy9wYWdlcy9idWlsZGluZy15b3VyLWFwcGxpY2F0aW9uL2RhdGEtZmV0Y2hpbmcvZ2V0LXN0YXRpYy1wcm9wcyksIFtgZ2V0U2VydmVyU2lkZVByb3BzYF0oaHR0cHM6Ly9uZXh0anMub3JnL2RvY3MvcGFnZXMvYnVpbGRpbmcteW91ci1hcHBsaWNhdGlvbi9kYXRhLWZldGNoaW5nL2dldC1zZXJ2ZXItc2lkZS1wcm9wcykgb3IgW2BnZXRJbml0aWFsUHJvcHNgXSgvZG9jcy9wYWdlcy9hcGktcmVmZXJlbmNlL2Z1bmN0aW9ucy9nZXQtaW5pdGlhbC1wcm9wcykuXG4gICAqXG4gICAqIEBkZWZhdWx0VmFsdWUgYGZhbHNlYFxuICAgKi9cbiAgc2hhbGxvdz86IGJvb2xlYW5cbiAgLyoqXG4gICAqIEZvcmNlcyBgTGlua2AgdG8gc2VuZCB0aGUgYGhyZWZgIHByb3BlcnR5IHRvIGl0cyBjaGlsZC5cbiAgICpcbiAgICogQGRlZmF1bHRWYWx1ZSBgZmFsc2VgXG4gICAqL1xuICBwYXNzSHJlZj86IGJvb2xlYW5cbiAgLyoqXG4gICAqIFByZWZldGNoIHRoZSBwYWdlIGluIHRoZSBiYWNrZ3JvdW5kLlxuICAgKiBBbnkgYDxMaW5rIC8+YCB0aGF0IGlzIGluIHRoZSB2aWV3cG9ydCAoaW5pdGlhbGx5IG9yIHRocm91Z2ggc2Nyb2xsKSB3aWxsIGJlIHByZWZldGNoZWQuXG4gICAqIFByZWZldGNoIGNhbiBiZSBkaXNhYmxlZCBieSBwYXNzaW5nIGBwcmVmZXRjaD17ZmFsc2V9YC4gUHJlZmV0Y2hpbmcgaXMgb25seSBlbmFibGVkIGluIHByb2R1Y3Rpb24uXG4gICAqXG4gICAqIEluIEFwcCBSb3V0ZXI6XG4gICAqIC0gXCJhdXRvXCIsIG51bGwsIHVuZGVmaW5lZCAoZGVmYXVsdCk6IEZvciBzdGF0aWNhbGx5IGdlbmVyYXRlZCBwYWdlcywgdGhpcyB3aWxsIHByZWZldGNoIHRoZSBmdWxsIFJlYWN0IFNlcnZlciBDb21wb25lbnQgZGF0YS4gRm9yIGR5bmFtaWMgcGFnZXMsIHRoaXMgd2lsbCBwcmVmZXRjaCB1cCB0byB0aGUgbmVhcmVzdCByb3V0ZSBzZWdtZW50IHdpdGggYSBbYGxvYWRpbmcuanNgXShodHRwczovL25leHRqcy5vcmcvZG9jcy9hcHAvYXBpLXJlZmVyZW5jZS9maWxlLWNvbnZlbnRpb25zL2xvYWRpbmcpIGZpbGUuIElmIHRoZXJlIGlzIG5vIGxvYWRpbmcgZmlsZSwgaXQgd2lsbCBub3QgZmV0Y2ggdGhlIGZ1bGwgdHJlZSB0byBhdm9pZCBmZXRjaGluZyB0b28gbXVjaCBkYXRhLlxuICAgKiAtIGB0cnVlYDogVGhpcyB3aWxsIHByZWZldGNoIHRoZSBmdWxsIFJlYWN0IFNlcnZlciBDb21wb25lbnQgZGF0YSBmb3IgYWxsIHJvdXRlIHNlZ21lbnRzLCByZWdhcmRsZXNzIG9mIHdoZXRoZXIgdGhleSBjb250YWluIGEgc2VnbWVudCB3aXRoIGBsb2FkaW5nLmpzYC5cbiAgICogLSBgZmFsc2VgOiBUaGlzIHdpbGwgbm90IHByZWZldGNoIGFueSBkYXRhLCBldmVuIG9uIGhvdmVyLlxuICAgKlxuICAgKiBJbiBQYWdlcyBSb3V0ZXI6XG4gICAqIC0gYHRydWVgIChkZWZhdWx0KTogVGhlIGZ1bGwgcm91dGUgJiBpdHMgZGF0YSB3aWxsIGJlIHByZWZldGNoZWQuXG4gICAqIC0gYGZhbHNlYDogUHJlZmV0Y2hpbmcgd2lsbCBub3QgaGFwcGVuIHdoZW4gZW50ZXJpbmcgdGhlIHZpZXdwb3J0LCBidXQgd2lsbCBzdGlsbCBoYXBwZW4gb24gaG92ZXIuXG4gICAqIEBkZWZhdWx0VmFsdWUgYHRydWVgIChwYWdlcyByb3V0ZXIpIG9yIGBudWxsYCAoYXBwIHJvdXRlcilcbiAgICovXG4gIHByZWZldGNoPzogYm9vbGVhbiB8ICdhdXRvJyB8IG51bGxcbiAgLyoqXG4gICAqIFRoZSBhY3RpdmUgbG9jYWxlIGlzIGF1dG9tYXRpY2FsbHkgcHJlcGVuZGVkLiBgbG9jYWxlYCBhbGxvd3MgZm9yIHByb3ZpZGluZyBhIGRpZmZlcmVudCBsb2NhbGUuXG4gICAqIFdoZW4gYGZhbHNlYCBgaHJlZmAgaGFzIHRvIGluY2x1ZGUgdGhlIGxvY2FsZSBhcyB0aGUgZGVmYXVsdCBiZWhhdmlvciBpcyBkaXNhYmxlZC5cbiAgICogTm90ZTogVGhpcyBpcyBvbmx5IGF2YWlsYWJsZSBpbiB0aGUgUGFnZXMgUm91dGVyLlxuICAgKi9cbiAgbG9jYWxlPzogc3RyaW5nIHwgZmFsc2VcbiAgLyoqXG4gICAqIEVuYWJsZSBsZWdhY3kgbGluayBiZWhhdmlvci5cbiAgICogQGRlcHJlY2F0ZWQgVGhpcyB3aWxsIGJlIHJlbW92ZWQgaW4gdjE2XG4gICAqIEBkZWZhdWx0VmFsdWUgYGZhbHNlYFxuICAgKiBAc2VlIGh0dHBzOi8vZ2l0aHViLmNvbS92ZXJjZWwvbmV4dC5qcy9jb21taXQvNDg5ZTY1ZWQ5ODU0NGU2OWIwYWZkN2UwY2ZjM2Y5ZjZjMmI4MDNiN1xuICAgKi9cbiAgbGVnYWN5QmVoYXZpb3I/OiBib29sZWFuXG4gIC8qKlxuICAgKiBPcHRpb25hbCBldmVudCBoYW5kbGVyIGZvciB3aGVuIHRoZSBtb3VzZSBwb2ludGVyIGlzIG1vdmVkIG9udG8gTGlua1xuICAgKi9cbiAgb25Nb3VzZUVudGVyPzogUmVhY3QuTW91c2VFdmVudEhhbmRsZXI8SFRNTEFuY2hvckVsZW1lbnQ+XG4gIC8qKlxuICAgKiBPcHRpb25hbCBldmVudCBoYW5kbGVyIGZvciB3aGVuIExpbmsgaXMgdG91Y2hlZC5cbiAgICovXG4gIG9uVG91Y2hTdGFydD86IFJlYWN0LlRvdWNoRXZlbnRIYW5kbGVyPEhUTUxBbmNob3JFbGVtZW50PlxuICAvKipcbiAgICogT3B0aW9uYWwgZXZlbnQgaGFuZGxlciBmb3Igd2hlbiBMaW5rIGlzIGNsaWNrZWQuXG4gICAqL1xuICBvbkNsaWNrPzogUmVhY3QuTW91c2VFdmVudEhhbmRsZXI8SFRNTEFuY2hvckVsZW1lbnQ+XG4gIC8qKlxuICAgKiBPcHRpb25hbCBldmVudCBoYW5kbGVyIGZvciB3aGVuIHRoZSBgPExpbms+YCBpcyBuYXZpZ2F0ZWQuXG4gICAqL1xuICBvbk5hdmlnYXRlPzogT25OYXZpZ2F0ZUV2ZW50SGFuZGxlclxufVxuXG4vLyBUT0RPLUFQUDogSW5jbHVkZSB0aGUgZnVsbCBzZXQgb2YgQW5jaG9yIHByb3BzXG4vLyBhZGRpbmcgdGhpcyB0byB0aGUgcHVibGljbHkgZXhwb3J0ZWQgdHlwZSBjdXJyZW50bHkgYnJlYWtzIGV4aXN0aW5nIGFwcHNcblxuLy8gYFJvdXRlSW5mZXJUeXBlYCBpcyBhIHN0dWIgaGVyZSB0byBhdm9pZCBicmVha2luZyBgdHlwZWRSb3V0ZXNgIHdoZW4gdGhlIHR5cGVcbi8vIGlzbid0IGdlbmVyYXRlZCB5ZXQuIEl0IHdpbGwgYmUgcmVwbGFjZWQgd2hlbiB0aGUgd2VicGFjayBwbHVnaW4gcnVucy5cbi8vIFdBUk5JTkc6IFRoaXMgc2hvdWxkIGJlIGFuIGludGVyZmFjZSB0byBwcmV2ZW50IFR5cGVTY3JpcHQgZnJvbSBpbmxpbmluZyBpdFxuLy8gaW4gZGVjbGFyYXRpb25zIG9mIGxpYnJhcmllcyBkZXBlbmRlbmRpbmcgb24gTmV4dC5qcy5cbi8vIE5vdCB0cml2aWFsIHRvIHJlcHJvZHVjZSBzbyBvbmx5IGNvbnZlcnQgdG8gYW4gaW50ZXJmYWNlIHdoZW4gbmVlZGVkLlxuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby11bnVzZWQtdmFyc1xuZXhwb3J0IGludGVyZmFjZSBMaW5rUHJvcHM8Um91dGVJbmZlclR5cGUgPSBhbnk+IGV4dGVuZHMgSW50ZXJuYWxMaW5rUHJvcHMge31cbnR5cGUgTGlua1Byb3BzUmVxdWlyZWQgPSBSZXF1aXJlZEtleXM8TGlua1Byb3BzPlxudHlwZSBMaW5rUHJvcHNPcHRpb25hbCA9IE9wdGlvbmFsS2V5czxJbnRlcm5hbExpbmtQcm9wcz5cblxuY29uc3QgcHJlZmV0Y2hlZCA9IG5ldyBTZXQ8c3RyaW5nPigpXG5cbnR5cGUgUHJlZmV0Y2hPcHRpb25zID0gUm91dGVyUHJlZmV0Y2hPcHRpb25zICYge1xuICAvKipcbiAgICogYnlwYXNzUHJlZmV0Y2hlZENoZWNrIHdpbGwgYnlwYXNzIHRoZSBjaGVjayB0byBzZWUgaWYgdGhlIGBocmVmYCBoYXNcbiAgICogYWxyZWFkeSBiZWVuIGZldGNoZWQuXG4gICAqL1xuICBieXBhc3NQcmVmZXRjaGVkQ2hlY2s/OiBib29sZWFuXG59XG5cbmZ1bmN0aW9uIHByZWZldGNoKFxuICByb3V0ZXI6IE5leHRSb3V0ZXIsXG4gIGhyZWY6IHN0cmluZyxcbiAgYXM6IHN0cmluZyxcbiAgb3B0aW9uczogUHJlZmV0Y2hPcHRpb25zXG4pOiB2b2lkIHtcbiAgaWYgKHR5cGVvZiB3aW5kb3cgPT09ICd1bmRlZmluZWQnKSB7XG4gICAgcmV0dXJuXG4gIH1cblxuICBpZiAoIWlzTG9jYWxVUkwoaHJlZikpIHtcbiAgICByZXR1cm5cbiAgfVxuXG4gIC8vIFdlIHNob3VsZCBvbmx5IGRlZHVwZSByZXF1ZXN0cyB3aGVuIGV4cGVyaW1lbnRhbC5vcHRpbWlzdGljQ2xpZW50Q2FjaGUgaXNcbiAgLy8gZGlzYWJsZWQuXG4gIGlmICghb3B0aW9ucy5ieXBhc3NQcmVmZXRjaGVkQ2hlY2spIHtcbiAgICBjb25zdCBsb2NhbGUgPVxuICAgICAgLy8gTGV0IHRoZSBsaW5rJ3MgbG9jYWxlIHByb3Agb3ZlcnJpZGUgdGhlIGRlZmF1bHQgcm91dGVyIGxvY2FsZS5cbiAgICAgIHR5cGVvZiBvcHRpb25zLmxvY2FsZSAhPT0gJ3VuZGVmaW5lZCdcbiAgICAgICAgPyBvcHRpb25zLmxvY2FsZVxuICAgICAgICA6IC8vIE90aGVyd2lzZSBmYWxsYmFjayB0byB0aGUgcm91dGVyJ3MgbG9jYWxlLlxuICAgICAgICAgICdsb2NhbGUnIGluIHJvdXRlclxuICAgICAgICAgID8gcm91dGVyLmxvY2FsZVxuICAgICAgICAgIDogdW5kZWZpbmVkXG5cbiAgICBjb25zdCBwcmVmZXRjaGVkS2V5ID0gaHJlZiArICclJyArIGFzICsgJyUnICsgbG9jYWxlXG5cbiAgICAvLyBJZiB3ZSd2ZSBhbHJlYWR5IGZldGNoZWQgdGhlIGtleSwgdGhlbiBkb24ndCBwcmVmZXRjaCBpdCBhZ2FpbiFcbiAgICBpZiAocHJlZmV0Y2hlZC5oYXMocHJlZmV0Y2hlZEtleSkpIHtcbiAgICAgIHJldHVyblxuICAgIH1cblxuICAgIC8vIE1hcmsgdGhpcyBVUkwgYXMgcHJlZmV0Y2hlZC5cbiAgICBwcmVmZXRjaGVkLmFkZChwcmVmZXRjaGVkS2V5KVxuICB9XG5cbiAgLy8gUHJlZmV0Y2ggdGhlIEpTT04gcGFnZSBpZiBhc2tlZCAob25seSBpbiB0aGUgY2xpZW50KVxuICAvLyBXZSBuZWVkIHRvIGhhbmRsZSBhIHByZWZldGNoIGVycm9yIGhlcmUgc2luY2Ugd2UgbWF5IGJlXG4gIC8vIGxvYWRpbmcgd2l0aCBwcmlvcml0eSB3aGljaCBjYW4gcmVqZWN0IGJ1dCB3ZSBkb24ndFxuICAvLyB3YW50IHRvIGZvcmNlIG5hdmlnYXRpb24gc2luY2UgdGhpcyBpcyBvbmx5IGEgcHJlZmV0Y2hcbiAgcm91dGVyLnByZWZldGNoKGhyZWYsIGFzLCBvcHRpb25zKS5jYXRjaCgoZXJyKSA9PiB7XG4gICAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpIHtcbiAgICAgIC8vIHJldGhyb3cgdG8gc2hvdyBpbnZhbGlkIFVSTCBlcnJvcnNcbiAgICAgIHRocm93IGVyclxuICAgIH1cbiAgfSlcbn1cblxuZnVuY3Rpb24gaXNNb2RpZmllZEV2ZW50KGV2ZW50OiBSZWFjdC5Nb3VzZUV2ZW50KTogYm9vbGVhbiB7XG4gIGNvbnN0IGV2ZW50VGFyZ2V0ID0gZXZlbnQuY3VycmVudFRhcmdldCBhcyBIVE1MQW5jaG9yRWxlbWVudCB8IFNWR0FFbGVtZW50XG4gIGNvbnN0IHRhcmdldCA9IGV2ZW50VGFyZ2V0LmdldEF0dHJpYnV0ZSgndGFyZ2V0JylcbiAgcmV0dXJuIChcbiAgICAodGFyZ2V0ICYmIHRhcmdldCAhPT0gJ19zZWxmJykgfHxcbiAgICBldmVudC5tZXRhS2V5IHx8XG4gICAgZXZlbnQuY3RybEtleSB8fFxuICAgIGV2ZW50LnNoaWZ0S2V5IHx8XG4gICAgZXZlbnQuYWx0S2V5IHx8IC8vIHRyaWdnZXJzIHJlc291cmNlIGRvd25sb2FkXG4gICAgKGV2ZW50Lm5hdGl2ZUV2ZW50ICYmIGV2ZW50Lm5hdGl2ZUV2ZW50LndoaWNoID09PSAyKVxuICApXG59XG5cbmZ1bmN0aW9uIGxpbmtDbGlja2VkKFxuICBlOiBSZWFjdC5Nb3VzZUV2ZW50LFxuICByb3V0ZXI6IE5leHRSb3V0ZXIgfCBBcHBSb3V0ZXJJbnN0YW5jZSxcbiAgaHJlZjogc3RyaW5nLFxuICBhczogc3RyaW5nLFxuICByZXBsYWNlPzogYm9vbGVhbixcbiAgc2hhbGxvdz86IGJvb2xlYW4sXG4gIHNjcm9sbD86IGJvb2xlYW4sXG4gIGxvY2FsZT86IHN0cmluZyB8IGZhbHNlLFxuICBvbk5hdmlnYXRlPzogT25OYXZpZ2F0ZUV2ZW50SGFuZGxlclxuKTogdm9pZCB7XG4gIGNvbnN0IHsgbm9kZU5hbWUgfSA9IGUuY3VycmVudFRhcmdldFxuXG4gIC8vIGFuY2hvcnMgaW5zaWRlIGFuIHN2ZyBoYXZlIGEgbG93ZXJjYXNlIG5vZGVOYW1lXG4gIGNvbnN0IGlzQW5jaG9yTm9kZU5hbWUgPSBub2RlTmFtZS50b1VwcGVyQ2FzZSgpID09PSAnQSdcblxuICBpZiAoXG4gICAgKGlzQW5jaG9yTm9kZU5hbWUgJiYgaXNNb2RpZmllZEV2ZW50KGUpKSB8fFxuICAgIGUuY3VycmVudFRhcmdldC5oYXNBdHRyaWJ1dGUoJ2Rvd25sb2FkJylcbiAgKSB7XG4gICAgLy8gaWdub3JlIGNsaWNrIGZvciBicm93c2Vy4oCZcyBkZWZhdWx0IGJlaGF2aW9yXG4gICAgcmV0dXJuXG4gIH1cblxuICBpZiAoIWlzTG9jYWxVUkwoaHJlZikpIHtcbiAgICBpZiAocmVwbGFjZSkge1xuICAgICAgLy8gYnJvd3NlciBkZWZhdWx0IGJlaGF2aW9yIGRvZXMgbm90IHJlcGxhY2UgdGhlIGhpc3Rvcnkgc3RhdGVcbiAgICAgIC8vIHNvIHdlIG5lZWQgdG8gZG8gaXQgbWFudWFsbHlcbiAgICAgIGUucHJldmVudERlZmF1bHQoKVxuICAgICAgbG9jYXRpb24ucmVwbGFjZShocmVmKVxuICAgIH1cblxuICAgIC8vIGlnbm9yZSBjbGljayBmb3IgYnJvd3NlcuKAmXMgZGVmYXVsdCBiZWhhdmlvclxuICAgIHJldHVyblxuICB9XG5cbiAgZS5wcmV2ZW50RGVmYXVsdCgpXG5cbiAgY29uc3QgbmF2aWdhdGUgPSAoKSA9PiB7XG4gICAgaWYgKG9uTmF2aWdhdGUpIHtcbiAgICAgIGxldCBpc0RlZmF1bHRQcmV2ZW50ZWQgPSBmYWxzZVxuXG4gICAgICBvbk5hdmlnYXRlKHtcbiAgICAgICAgcHJldmVudERlZmF1bHQ6ICgpID0+IHtcbiAgICAgICAgICBpc0RlZmF1bHRQcmV2ZW50ZWQgPSB0cnVlXG4gICAgICAgIH0sXG4gICAgICB9KVxuXG4gICAgICBpZiAoaXNEZWZhdWx0UHJldmVudGVkKSB7XG4gICAgICAgIHJldHVyblxuICAgICAgfVxuICAgIH1cblxuICAgIC8vIElmIHRoZSByb3V0ZXIgaXMgYW4gTmV4dFJvdXRlciBpbnN0YW5jZSBpdCB3aWxsIGhhdmUgYGJlZm9yZVBvcFN0YXRlYFxuICAgIGNvbnN0IHJvdXRlclNjcm9sbCA9IHNjcm9sbCA/PyB0cnVlXG4gICAgaWYgKCdiZWZvcmVQb3BTdGF0ZScgaW4gcm91dGVyKSB7XG4gICAgICByb3V0ZXJbcmVwbGFjZSA/ICdyZXBsYWNlJyA6ICdwdXNoJ10oaHJlZiwgYXMsIHtcbiAgICAgICAgc2hhbGxvdyxcbiAgICAgICAgbG9jYWxlLFxuICAgICAgICBzY3JvbGw6IHJvdXRlclNjcm9sbCxcbiAgICAgIH0pXG4gICAgfSBlbHNlIHtcbiAgICAgIHJvdXRlcltyZXBsYWNlID8gJ3JlcGxhY2UnIDogJ3B1c2gnXShhcyB8fCBocmVmLCB7XG4gICAgICAgIHNjcm9sbDogcm91dGVyU2Nyb2xsLFxuICAgICAgfSlcbiAgICB9XG4gIH1cblxuICBuYXZpZ2F0ZSgpXG59XG5cbnR5cGUgTGlua1Byb3BzUmVhbCA9IFJlYWN0LlByb3BzV2l0aENoaWxkcmVuPFxuICBPbWl0PFJlYWN0LkFuY2hvckhUTUxBdHRyaWJ1dGVzPEhUTUxBbmNob3JFbGVtZW50Piwga2V5b2YgTGlua1Byb3BzPiAmXG4gICAgTGlua1Byb3BzXG4+XG5cbmZ1bmN0aW9uIGZvcm1hdFN0cmluZ09yVXJsKHVybE9iak9yU3RyaW5nOiBVcmxPYmplY3QgfCBzdHJpbmcpOiBzdHJpbmcge1xuICBpZiAodHlwZW9mIHVybE9iak9yU3RyaW5nID09PSAnc3RyaW5nJykge1xuICAgIHJldHVybiB1cmxPYmpPclN0cmluZ1xuICB9XG5cbiAgcmV0dXJuIGZvcm1hdFVybCh1cmxPYmpPclN0cmluZylcbn1cblxuLyoqXG4gKiBBIFJlYWN0IGNvbXBvbmVudCB0aGF0IGV4dGVuZHMgdGhlIEhUTUwgYDxhPmAgZWxlbWVudCB0byBwcm92aWRlIFtwcmVmZXRjaGluZ10oaHR0cHM6Ly9uZXh0anMub3JnL2RvY3MvYXBwL2J1aWxkaW5nLXlvdXItYXBwbGljYXRpb24vcm91dGluZy9saW5raW5nLWFuZC1uYXZpZ2F0aW5nIzItcHJlZmV0Y2hpbmcpXG4gKiBhbmQgY2xpZW50LXNpZGUgbmF2aWdhdGlvbiBiZXR3ZWVuIHJvdXRlcy5cbiAqXG4gKiBJdCBpcyB0aGUgcHJpbWFyeSB3YXkgdG8gbmF2aWdhdGUgYmV0d2VlbiByb3V0ZXMgaW4gTmV4dC5qcy5cbiAqXG4gKiBSZWFkIG1vcmU6IFtOZXh0LmpzIGRvY3M6IGA8TGluaz5gXShodHRwczovL25leHRqcy5vcmcvZG9jcy9hcHAvYXBpLXJlZmVyZW5jZS9jb21wb25lbnRzL2xpbmspXG4gKi9cbmNvbnN0IExpbmsgPSBSZWFjdC5mb3J3YXJkUmVmPEhUTUxBbmNob3JFbGVtZW50LCBMaW5rUHJvcHNSZWFsPihcbiAgZnVuY3Rpb24gTGlua0NvbXBvbmVudChwcm9wcywgZm9yd2FyZGVkUmVmKSB7XG4gICAgbGV0IGNoaWxkcmVuOiBSZWFjdC5SZWFjdE5vZGVcblxuICAgIGNvbnN0IHtcbiAgICAgIGhyZWY6IGhyZWZQcm9wLFxuICAgICAgYXM6IGFzUHJvcCxcbiAgICAgIGNoaWxkcmVuOiBjaGlsZHJlblByb3AsXG4gICAgICBwcmVmZXRjaDogcHJlZmV0Y2hQcm9wID0gbnVsbCxcbiAgICAgIHBhc3NIcmVmLFxuICAgICAgcmVwbGFjZSxcbiAgICAgIHNoYWxsb3csXG4gICAgICBzY3JvbGwsXG4gICAgICBsb2NhbGUsXG4gICAgICBvbkNsaWNrLFxuICAgICAgb25OYXZpZ2F0ZSxcbiAgICAgIG9uTW91c2VFbnRlcjogb25Nb3VzZUVudGVyUHJvcCxcbiAgICAgIG9uVG91Y2hTdGFydDogb25Ub3VjaFN0YXJ0UHJvcCxcbiAgICAgIGxlZ2FjeUJlaGF2aW9yID0gZmFsc2UsXG4gICAgICAuLi5yZXN0UHJvcHNcbiAgICB9ID0gcHJvcHNcblxuICAgIGNoaWxkcmVuID0gY2hpbGRyZW5Qcm9wXG5cbiAgICBpZiAoXG4gICAgICBsZWdhY3lCZWhhdmlvciAmJlxuICAgICAgKHR5cGVvZiBjaGlsZHJlbiA9PT0gJ3N0cmluZycgfHwgdHlwZW9mIGNoaWxkcmVuID09PSAnbnVtYmVyJylcbiAgICApIHtcbiAgICAgIGNoaWxkcmVuID0gPGE+e2NoaWxkcmVufTwvYT5cbiAgICB9XG5cbiAgICBjb25zdCByb3V0ZXIgPSBSZWFjdC51c2VDb250ZXh0KFJvdXRlckNvbnRleHQpXG5cbiAgICBjb25zdCBwcmVmZXRjaEVuYWJsZWQgPSBwcmVmZXRjaFByb3AgIT09IGZhbHNlXG5cbiAgICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJykge1xuICAgICAgZnVuY3Rpb24gY3JlYXRlUHJvcEVycm9yKGFyZ3M6IHtcbiAgICAgICAga2V5OiBzdHJpbmdcbiAgICAgICAgZXhwZWN0ZWQ6IHN0cmluZ1xuICAgICAgICBhY3R1YWw6IHN0cmluZ1xuICAgICAgfSkge1xuICAgICAgICByZXR1cm4gbmV3IEVycm9yKFxuICAgICAgICAgIGBGYWlsZWQgcHJvcCB0eXBlOiBUaGUgcHJvcCBcXGAke2FyZ3Mua2V5fVxcYCBleHBlY3RzIGEgJHthcmdzLmV4cGVjdGVkfSBpbiBcXGA8TGluaz5cXGAsIGJ1dCBnb3QgXFxgJHthcmdzLmFjdHVhbH1cXGAgaW5zdGVhZC5gICtcbiAgICAgICAgICAgICh0eXBlb2Ygd2luZG93ICE9PSAndW5kZWZpbmVkJ1xuICAgICAgICAgICAgICA/IC8vIFRPRE86IFJlbW92ZSB0aGlzIGFkZGVuZHVtIGlmIE93bmVyIFN0YWNrcyBhcmUgYXZhaWxhYmxlXG4gICAgICAgICAgICAgICAgXCJcXG5PcGVuIHlvdXIgYnJvd3NlcidzIGNvbnNvbGUgdG8gdmlldyB0aGUgQ29tcG9uZW50IHN0YWNrIHRyYWNlLlwiXG4gICAgICAgICAgICAgIDogJycpXG4gICAgICAgIClcbiAgICAgIH1cblxuICAgICAgLy8gVHlwZVNjcmlwdCB0cmljayBmb3IgdHlwZS1ndWFyZGluZzpcbiAgICAgIGNvbnN0IHJlcXVpcmVkUHJvcHNHdWFyZDogUmVjb3JkPExpbmtQcm9wc1JlcXVpcmVkLCB0cnVlPiA9IHtcbiAgICAgICAgaHJlZjogdHJ1ZSxcbiAgICAgIH0gYXMgY29uc3RcbiAgICAgIGNvbnN0IHJlcXVpcmVkUHJvcHM6IExpbmtQcm9wc1JlcXVpcmVkW10gPSBPYmplY3Qua2V5cyhcbiAgICAgICAgcmVxdWlyZWRQcm9wc0d1YXJkXG4gICAgICApIGFzIExpbmtQcm9wc1JlcXVpcmVkW11cbiAgICAgIHJlcXVpcmVkUHJvcHMuZm9yRWFjaCgoa2V5OiBMaW5rUHJvcHNSZXF1aXJlZCkgPT4ge1xuICAgICAgICBpZiAoa2V5ID09PSAnaHJlZicpIHtcbiAgICAgICAgICBpZiAoXG4gICAgICAgICAgICBwcm9wc1trZXldID09IG51bGwgfHxcbiAgICAgICAgICAgICh0eXBlb2YgcHJvcHNba2V5XSAhPT0gJ3N0cmluZycgJiYgdHlwZW9mIHByb3BzW2tleV0gIT09ICdvYmplY3QnKVxuICAgICAgICAgICkge1xuICAgICAgICAgICAgdGhyb3cgY3JlYXRlUHJvcEVycm9yKHtcbiAgICAgICAgICAgICAga2V5LFxuICAgICAgICAgICAgICBleHBlY3RlZDogJ2BzdHJpbmdgIG9yIGBvYmplY3RgJyxcbiAgICAgICAgICAgICAgYWN0dWFsOiBwcm9wc1trZXldID09PSBudWxsID8gJ251bGwnIDogdHlwZW9mIHByb3BzW2tleV0sXG4gICAgICAgICAgICB9KVxuICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAvLyBUeXBlU2NyaXB0IHRyaWNrIGZvciB0eXBlLWd1YXJkaW5nOlxuICAgICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW51c2VkLXZhcnNcbiAgICAgICAgICBjb25zdCBfOiBuZXZlciA9IGtleVxuICAgICAgICB9XG4gICAgICB9KVxuXG4gICAgICAvLyBUeXBlU2NyaXB0IHRyaWNrIGZvciB0eXBlLWd1YXJkaW5nOlxuICAgICAgY29uc3Qgb3B0aW9uYWxQcm9wc0d1YXJkOiBSZWNvcmQ8TGlua1Byb3BzT3B0aW9uYWwsIHRydWU+ID0ge1xuICAgICAgICBhczogdHJ1ZSxcbiAgICAgICAgcmVwbGFjZTogdHJ1ZSxcbiAgICAgICAgc2Nyb2xsOiB0cnVlLFxuICAgICAgICBzaGFsbG93OiB0cnVlLFxuICAgICAgICBwYXNzSHJlZjogdHJ1ZSxcbiAgICAgICAgcHJlZmV0Y2g6IHRydWUsXG4gICAgICAgIGxvY2FsZTogdHJ1ZSxcbiAgICAgICAgb25DbGljazogdHJ1ZSxcbiAgICAgICAgb25Nb3VzZUVudGVyOiB0cnVlLFxuICAgICAgICBvblRvdWNoU3RhcnQ6IHRydWUsXG4gICAgICAgIGxlZ2FjeUJlaGF2aW9yOiB0cnVlLFxuICAgICAgICBvbk5hdmlnYXRlOiB0cnVlLFxuICAgICAgfSBhcyBjb25zdFxuICAgICAgY29uc3Qgb3B0aW9uYWxQcm9wczogTGlua1Byb3BzT3B0aW9uYWxbXSA9IE9iamVjdC5rZXlzKFxuICAgICAgICBvcHRpb25hbFByb3BzR3VhcmRcbiAgICAgICkgYXMgTGlua1Byb3BzT3B0aW9uYWxbXVxuICAgICAgb3B0aW9uYWxQcm9wcy5mb3JFYWNoKChrZXk6IExpbmtQcm9wc09wdGlvbmFsKSA9PiB7XG4gICAgICAgIGNvbnN0IHZhbFR5cGUgPSB0eXBlb2YgcHJvcHNba2V5XVxuXG4gICAgICAgIGlmIChrZXkgPT09ICdhcycpIHtcbiAgICAgICAgICBpZiAocHJvcHNba2V5XSAmJiB2YWxUeXBlICE9PSAnc3RyaW5nJyAmJiB2YWxUeXBlICE9PSAnb2JqZWN0Jykge1xuICAgICAgICAgICAgdGhyb3cgY3JlYXRlUHJvcEVycm9yKHtcbiAgICAgICAgICAgICAga2V5LFxuICAgICAgICAgICAgICBleHBlY3RlZDogJ2BzdHJpbmdgIG9yIGBvYmplY3RgJyxcbiAgICAgICAgICAgICAgYWN0dWFsOiB2YWxUeXBlLFxuICAgICAgICAgICAgfSlcbiAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSBpZiAoa2V5ID09PSAnbG9jYWxlJykge1xuICAgICAgICAgIGlmIChwcm9wc1trZXldICYmIHZhbFR5cGUgIT09ICdzdHJpbmcnKSB7XG4gICAgICAgICAgICB0aHJvdyBjcmVhdGVQcm9wRXJyb3Ioe1xuICAgICAgICAgICAgICBrZXksXG4gICAgICAgICAgICAgIGV4cGVjdGVkOiAnYHN0cmluZ2AnLFxuICAgICAgICAgICAgICBhY3R1YWw6IHZhbFR5cGUsXG4gICAgICAgICAgICB9KVxuICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIGlmIChcbiAgICAgICAgICBrZXkgPT09ICdvbkNsaWNrJyB8fFxuICAgICAgICAgIGtleSA9PT0gJ29uTW91c2VFbnRlcicgfHxcbiAgICAgICAgICBrZXkgPT09ICdvblRvdWNoU3RhcnQnIHx8XG4gICAgICAgICAga2V5ID09PSAnb25OYXZpZ2F0ZSdcbiAgICAgICAgKSB7XG4gICAgICAgICAgaWYgKHByb3BzW2tleV0gJiYgdmFsVHlwZSAhPT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICAgICAgdGhyb3cgY3JlYXRlUHJvcEVycm9yKHtcbiAgICAgICAgICAgICAga2V5LFxuICAgICAgICAgICAgICBleHBlY3RlZDogJ2BmdW5jdGlvbmAnLFxuICAgICAgICAgICAgICBhY3R1YWw6IHZhbFR5cGUsXG4gICAgICAgICAgICB9KVxuICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIGlmIChcbiAgICAgICAgICBrZXkgPT09ICdyZXBsYWNlJyB8fFxuICAgICAgICAgIGtleSA9PT0gJ3Njcm9sbCcgfHxcbiAgICAgICAgICBrZXkgPT09ICdzaGFsbG93JyB8fFxuICAgICAgICAgIGtleSA9PT0gJ3Bhc3NIcmVmJyB8fFxuICAgICAgICAgIGtleSA9PT0gJ2xlZ2FjeUJlaGF2aW9yJ1xuICAgICAgICApIHtcbiAgICAgICAgICBpZiAocHJvcHNba2V5XSAhPSBudWxsICYmIHZhbFR5cGUgIT09ICdib29sZWFuJykge1xuICAgICAgICAgICAgdGhyb3cgY3JlYXRlUHJvcEVycm9yKHtcbiAgICAgICAgICAgICAga2V5LFxuICAgICAgICAgICAgICBleHBlY3RlZDogJ2Bib29sZWFuYCcsXG4gICAgICAgICAgICAgIGFjdHVhbDogdmFsVHlwZSxcbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgfVxuICAgICAgICB9IGVsc2UgaWYgKGtleSA9PT0gJ3ByZWZldGNoJykge1xuICAgICAgICAgIGlmIChcbiAgICAgICAgICAgIHByb3BzW2tleV0gIT0gbnVsbCAmJlxuICAgICAgICAgICAgdmFsVHlwZSAhPT0gJ2Jvb2xlYW4nICYmXG4gICAgICAgICAgICBwcm9wc1trZXldICE9PSAnYXV0bydcbiAgICAgICAgICApIHtcbiAgICAgICAgICAgIHRocm93IGNyZWF0ZVByb3BFcnJvcih7XG4gICAgICAgICAgICAgIGtleSxcbiAgICAgICAgICAgICAgZXhwZWN0ZWQ6ICdgYm9vbGVhbiB8IFwiYXV0b1wiYCcsXG4gICAgICAgICAgICAgIGFjdHVhbDogdmFsVHlwZSxcbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIC8vIFR5cGVTY3JpcHQgdHJpY2sgZm9yIHR5cGUtZ3VhcmRpbmc6XG4gICAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby11bnVzZWQtdmFyc1xuICAgICAgICAgIGNvbnN0IF86IG5ldmVyID0ga2V5XG4gICAgICAgIH1cbiAgICAgIH0pXG4gICAgfVxuXG4gICAgY29uc3QgeyBocmVmLCBhcyB9ID0gUmVhY3QudXNlTWVtbygoKSA9PiB7XG4gICAgICBpZiAoIXJvdXRlcikge1xuICAgICAgICBjb25zdCByZXNvbHZlZEhyZWYgPSBmb3JtYXRTdHJpbmdPclVybChocmVmUHJvcClcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICBocmVmOiByZXNvbHZlZEhyZWYsXG4gICAgICAgICAgYXM6IGFzUHJvcCA/IGZvcm1hdFN0cmluZ09yVXJsKGFzUHJvcCkgOiByZXNvbHZlZEhyZWYsXG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgY29uc3QgW3Jlc29sdmVkSHJlZiwgcmVzb2x2ZWRBc10gPSByZXNvbHZlSHJlZihyb3V0ZXIsIGhyZWZQcm9wLCB0cnVlKVxuXG4gICAgICByZXR1cm4ge1xuICAgICAgICBocmVmOiByZXNvbHZlZEhyZWYsXG4gICAgICAgIGFzOiBhc1Byb3AgPyByZXNvbHZlSHJlZihyb3V0ZXIsIGFzUHJvcCkgOiByZXNvbHZlZEFzIHx8IHJlc29sdmVkSHJlZixcbiAgICAgIH1cbiAgICB9LCBbcm91dGVyLCBocmVmUHJvcCwgYXNQcm9wXSlcblxuICAgIGNvbnN0IHByZXZpb3VzSHJlZiA9IFJlYWN0LnVzZVJlZjxzdHJpbmc+KGhyZWYpXG4gICAgY29uc3QgcHJldmlvdXNBcyA9IFJlYWN0LnVzZVJlZjxzdHJpbmc+KGFzKVxuXG4gICAgLy8gVGhpcyB3aWxsIHJldHVybiB0aGUgZmlyc3QgY2hpbGQsIGlmIG11bHRpcGxlIGFyZSBwcm92aWRlZCBpdCB3aWxsIHRocm93IGFuIGVycm9yXG4gICAgbGV0IGNoaWxkOiBhbnlcbiAgICBpZiAobGVnYWN5QmVoYXZpb3IpIHtcbiAgICAgIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViA9PT0gJ2RldmVsb3BtZW50Jykge1xuICAgICAgICBpZiAob25DbGljaykge1xuICAgICAgICAgIGNvbnNvbGUud2FybihcbiAgICAgICAgICAgIGBcIm9uQ2xpY2tcIiB3YXMgcGFzc2VkIHRvIDxMaW5rPiB3aXRoIFxcYGhyZWZcXGAgb2YgXFxgJHtocmVmUHJvcH1cXGAgYnV0IFwibGVnYWN5QmVoYXZpb3JcIiB3YXMgc2V0LiBUaGUgbGVnYWN5IGJlaGF2aW9yIHJlcXVpcmVzIG9uQ2xpY2sgYmUgc2V0IG9uIHRoZSBjaGlsZCBvZiBuZXh0L2xpbmtgXG4gICAgICAgICAgKVxuICAgICAgICB9XG4gICAgICAgIGlmIChvbk1vdXNlRW50ZXJQcm9wKSB7XG4gICAgICAgICAgY29uc29sZS53YXJuKFxuICAgICAgICAgICAgYFwib25Nb3VzZUVudGVyXCIgd2FzIHBhc3NlZCB0byA8TGluaz4gd2l0aCBcXGBocmVmXFxgIG9mIFxcYCR7aHJlZlByb3B9XFxgIGJ1dCBcImxlZ2FjeUJlaGF2aW9yXCIgd2FzIHNldC4gVGhlIGxlZ2FjeSBiZWhhdmlvciByZXF1aXJlcyBvbk1vdXNlRW50ZXIgYmUgc2V0IG9uIHRoZSBjaGlsZCBvZiBuZXh0L2xpbmtgXG4gICAgICAgICAgKVxuICAgICAgICB9XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgY2hpbGQgPSBSZWFjdC5DaGlsZHJlbi5vbmx5KGNoaWxkcmVuKVxuICAgICAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgICAgICBpZiAoIWNoaWxkcmVuKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgICAgICAgIGBObyBjaGlsZHJlbiB3ZXJlIHBhc3NlZCB0byA8TGluaz4gd2l0aCBcXGBocmVmXFxgIG9mIFxcYCR7aHJlZlByb3B9XFxgIGJ1dCBvbmUgY2hpbGQgaXMgcmVxdWlyZWQgaHR0cHM6Ly9uZXh0anMub3JnL2RvY3MvbWVzc2FnZXMvbGluay1uby1jaGlsZHJlbmBcbiAgICAgICAgICAgIClcbiAgICAgICAgICB9XG4gICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICAgICAgYE11bHRpcGxlIGNoaWxkcmVuIHdlcmUgcGFzc2VkIHRvIDxMaW5rPiB3aXRoIFxcYGhyZWZcXGAgb2YgXFxgJHtocmVmUHJvcH1cXGAgYnV0IG9ubHkgb25lIGNoaWxkIGlzIHN1cHBvcnRlZCBodHRwczovL25leHRqcy5vcmcvZG9jcy9tZXNzYWdlcy9saW5rLW11bHRpcGxlLWNoaWxkcmVuYCArXG4gICAgICAgICAgICAgICh0eXBlb2Ygd2luZG93ICE9PSAndW5kZWZpbmVkJ1xuICAgICAgICAgICAgICAgID8gXCIgXFxuT3BlbiB5b3VyIGJyb3dzZXIncyBjb25zb2xlIHRvIHZpZXcgdGhlIENvbXBvbmVudCBzdGFjayB0cmFjZS5cIlxuICAgICAgICAgICAgICAgIDogJycpXG4gICAgICAgICAgKVxuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBjaGlsZCA9IFJlYWN0LkNoaWxkcmVuLm9ubHkoY2hpbGRyZW4pXG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViA9PT0gJ2RldmVsb3BtZW50Jykge1xuICAgICAgICBpZiAoKGNoaWxkcmVuIGFzIGFueSk/LnR5cGUgPT09ICdhJykge1xuICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgICAgICdJbnZhbGlkIDxMaW5rPiB3aXRoIDxhPiBjaGlsZC4gUGxlYXNlIHJlbW92ZSA8YT4gb3IgdXNlIDxMaW5rIGxlZ2FjeUJlaGF2aW9yPi5cXG5MZWFybiBtb3JlOiBodHRwczovL25leHRqcy5vcmcvZG9jcy9tZXNzYWdlcy9pbnZhbGlkLW5ldy1saW5rLXdpdGgtZXh0cmEtYW5jaG9yJ1xuICAgICAgICAgIClcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIGNvbnN0IGNoaWxkUmVmOiBhbnkgPSBsZWdhY3lCZWhhdmlvclxuICAgICAgPyBjaGlsZCAmJiB0eXBlb2YgY2hpbGQgPT09ICdvYmplY3QnICYmIGNoaWxkLnJlZlxuICAgICAgOiBmb3J3YXJkZWRSZWZcblxuICAgIGNvbnN0IFtzZXRJbnRlcnNlY3Rpb25SZWYsIGlzVmlzaWJsZSwgcmVzZXRWaXNpYmxlXSA9IHVzZUludGVyc2VjdGlvbih7XG4gICAgICByb290TWFyZ2luOiAnMjAwcHgnLFxuICAgIH0pXG5cbiAgICBjb25zdCBzZXRJbnRlcnNlY3Rpb25XaXRoUmVzZXRSZWYgPSBSZWFjdC51c2VDYWxsYmFjayhcbiAgICAgIChlbDogRWxlbWVudCB8IG51bGwpID0+IHtcbiAgICAgICAgLy8gQmVmb3JlIHRoZSBsaW5rIGdldHRpbmcgb2JzZXJ2ZWQsIGNoZWNrIGlmIHZpc2libGUgc3RhdGUgbmVlZCB0byBiZSByZXNldFxuICAgICAgICBpZiAocHJldmlvdXNBcy5jdXJyZW50ICE9PSBhcyB8fCBwcmV2aW91c0hyZWYuY3VycmVudCAhPT0gaHJlZikge1xuICAgICAgICAgIHJlc2V0VmlzaWJsZSgpXG4gICAgICAgICAgcHJldmlvdXNBcy5jdXJyZW50ID0gYXNcbiAgICAgICAgICBwcmV2aW91c0hyZWYuY3VycmVudCA9IGhyZWZcbiAgICAgICAgfVxuXG4gICAgICAgIHNldEludGVyc2VjdGlvblJlZihlbClcbiAgICAgIH0sXG4gICAgICBbYXMsIGhyZWYsIHJlc2V0VmlzaWJsZSwgc2V0SW50ZXJzZWN0aW9uUmVmXVxuICAgIClcblxuICAgIGNvbnN0IHNldFJlZiA9IHVzZU1lcmdlZFJlZihzZXRJbnRlcnNlY3Rpb25XaXRoUmVzZXRSZWYsIGNoaWxkUmVmKVxuXG4gICAgLy8gUHJlZmV0Y2ggdGhlIFVSTCBpZiB3ZSBoYXZlbid0IGFscmVhZHkgYW5kIGl0J3MgdmlzaWJsZS5cbiAgICBSZWFjdC51c2VFZmZlY3QoKCkgPT4ge1xuICAgICAgLy8gaW4gZGV2LCB3ZSBvbmx5IHByZWZldGNoIG9uIGhvdmVyIHRvIGF2b2lkIHdhc3RpbmcgcmVzb3VyY2VzIGFzIHRoZSBwcmVmZXRjaCB3aWxsIHRyaWdnZXIgY29tcGlsaW5nIHRoZSBwYWdlLlxuICAgICAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpIHtcbiAgICAgICAgcmV0dXJuXG4gICAgICB9XG5cbiAgICAgIGlmICghcm91dGVyKSB7XG4gICAgICAgIHJldHVyblxuICAgICAgfVxuXG4gICAgICAvLyBJZiB3ZSBkb24ndCBuZWVkIHRvIHByZWZldGNoIHRoZSBVUkwsIGRvbid0IGRvIHByZWZldGNoLlxuICAgICAgaWYgKCFpc1Zpc2libGUgfHwgIXByZWZldGNoRW5hYmxlZCkge1xuICAgICAgICByZXR1cm5cbiAgICAgIH1cblxuICAgICAgLy8gUHJlZmV0Y2ggdGhlIFVSTC5cbiAgICAgIHByZWZldGNoKHJvdXRlciwgaHJlZiwgYXMsIHsgbG9jYWxlIH0pXG4gICAgfSwgW2FzLCBocmVmLCBpc1Zpc2libGUsIGxvY2FsZSwgcHJlZmV0Y2hFbmFibGVkLCByb3V0ZXI/LmxvY2FsZSwgcm91dGVyXSlcblxuICAgIGNvbnN0IGNoaWxkUHJvcHM6IHtcbiAgICAgIG9uVG91Y2hTdGFydD86IFJlYWN0LlRvdWNoRXZlbnRIYW5kbGVyPEhUTUxBbmNob3JFbGVtZW50PlxuICAgICAgb25Nb3VzZUVudGVyOiBSZWFjdC5Nb3VzZUV2ZW50SGFuZGxlcjxIVE1MQW5jaG9yRWxlbWVudD5cbiAgICAgIG9uQ2xpY2s6IFJlYWN0Lk1vdXNlRXZlbnRIYW5kbGVyPEhUTUxBbmNob3JFbGVtZW50PlxuICAgICAgaHJlZj86IHN0cmluZ1xuICAgICAgcmVmPzogYW55XG4gICAgfSA9IHtcbiAgICAgIHJlZjogc2V0UmVmLFxuICAgICAgb25DbGljayhlKSB7XG4gICAgICAgIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSB7XG4gICAgICAgICAgaWYgKCFlKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgICAgICAgIGBDb21wb25lbnQgcmVuZGVyZWQgaW5zaWRlIG5leHQvbGluayBoYXMgdG8gcGFzcyBjbGljayBldmVudCB0byBcIm9uQ2xpY2tcIiBwcm9wLmBcbiAgICAgICAgICAgIClcbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoIWxlZ2FjeUJlaGF2aW9yICYmIHR5cGVvZiBvbkNsaWNrID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgICAgb25DbGljayhlKVxuICAgICAgICB9XG5cbiAgICAgICAgaWYgKFxuICAgICAgICAgIGxlZ2FjeUJlaGF2aW9yICYmXG4gICAgICAgICAgY2hpbGQucHJvcHMgJiZcbiAgICAgICAgICB0eXBlb2YgY2hpbGQucHJvcHMub25DbGljayA9PT0gJ2Z1bmN0aW9uJ1xuICAgICAgICApIHtcbiAgICAgICAgICBjaGlsZC5wcm9wcy5vbkNsaWNrKGUpXG4gICAgICAgIH1cblxuICAgICAgICBpZiAoIXJvdXRlcikge1xuICAgICAgICAgIHJldHVyblxuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGUuZGVmYXVsdFByZXZlbnRlZCkge1xuICAgICAgICAgIHJldHVyblxuICAgICAgICB9XG5cbiAgICAgICAgbGlua0NsaWNrZWQoXG4gICAgICAgICAgZSxcbiAgICAgICAgICByb3V0ZXIsXG4gICAgICAgICAgaHJlZixcbiAgICAgICAgICBhcyxcbiAgICAgICAgICByZXBsYWNlLFxuICAgICAgICAgIHNoYWxsb3csXG4gICAgICAgICAgc2Nyb2xsLFxuICAgICAgICAgIGxvY2FsZSxcbiAgICAgICAgICBvbk5hdmlnYXRlXG4gICAgICAgIClcbiAgICAgIH0sXG4gICAgICBvbk1vdXNlRW50ZXIoZSkge1xuICAgICAgICBpZiAoIWxlZ2FjeUJlaGF2aW9yICYmIHR5cGVvZiBvbk1vdXNlRW50ZXJQcm9wID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgICAgb25Nb3VzZUVudGVyUHJvcChlKVxuICAgICAgICB9XG5cbiAgICAgICAgaWYgKFxuICAgICAgICAgIGxlZ2FjeUJlaGF2aW9yICYmXG4gICAgICAgICAgY2hpbGQucHJvcHMgJiZcbiAgICAgICAgICB0eXBlb2YgY2hpbGQucHJvcHMub25Nb3VzZUVudGVyID09PSAnZnVuY3Rpb24nXG4gICAgICAgICkge1xuICAgICAgICAgIGNoaWxkLnByb3BzLm9uTW91c2VFbnRlcihlKVxuICAgICAgICB9XG5cbiAgICAgICAgaWYgKCFyb3V0ZXIpIHtcbiAgICAgICAgICByZXR1cm5cbiAgICAgICAgfVxuXG4gICAgICAgIHByZWZldGNoKHJvdXRlciwgaHJlZiwgYXMsIHtcbiAgICAgICAgICBsb2NhbGUsXG4gICAgICAgICAgcHJpb3JpdHk6IHRydWUsXG4gICAgICAgICAgLy8gQHNlZSB7aHR0cHM6Ly9naXRodWIuY29tL3ZlcmNlbC9uZXh0LmpzL2Rpc2N1c3Npb25zLzQwMjY4P3NvcnQ9dG9wI2Rpc2N1c3Npb25jb21tZW50LTM1NzI2NDJ9XG4gICAgICAgICAgYnlwYXNzUHJlZmV0Y2hlZENoZWNrOiB0cnVlLFxuICAgICAgICB9KVxuICAgICAgfSxcbiAgICAgIG9uVG91Y2hTdGFydDogcHJvY2Vzcy5lbnYuX19ORVhUX0xJTktfTk9fVE9VQ0hfU1RBUlRcbiAgICAgICAgPyB1bmRlZmluZWRcbiAgICAgICAgOiBmdW5jdGlvbiBvblRvdWNoU3RhcnQoZSkge1xuICAgICAgICAgICAgaWYgKCFsZWdhY3lCZWhhdmlvciAmJiB0eXBlb2Ygb25Ub3VjaFN0YXJ0UHJvcCA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICAgICAgICBvblRvdWNoU3RhcnRQcm9wKGUpXG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlmIChcbiAgICAgICAgICAgICAgbGVnYWN5QmVoYXZpb3IgJiZcbiAgICAgICAgICAgICAgY2hpbGQucHJvcHMgJiZcbiAgICAgICAgICAgICAgdHlwZW9mIGNoaWxkLnByb3BzLm9uVG91Y2hTdGFydCA9PT0gJ2Z1bmN0aW9uJ1xuICAgICAgICAgICAgKSB7XG4gICAgICAgICAgICAgIGNoaWxkLnByb3BzLm9uVG91Y2hTdGFydChlKVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpZiAoIXJvdXRlcikge1xuICAgICAgICAgICAgICByZXR1cm5cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgcHJlZmV0Y2gocm91dGVyLCBocmVmLCBhcywge1xuICAgICAgICAgICAgICBsb2NhbGUsXG4gICAgICAgICAgICAgIHByaW9yaXR5OiB0cnVlLFxuICAgICAgICAgICAgICAvLyBAc2VlIHtodHRwczovL2dpdGh1Yi5jb20vdmVyY2VsL25leHQuanMvZGlzY3Vzc2lvbnMvNDAyNjg/c29ydD10b3AjZGlzY3Vzc2lvbmNvbW1lbnQtMzU3MjY0Mn1cbiAgICAgICAgICAgICAgYnlwYXNzUHJlZmV0Y2hlZENoZWNrOiB0cnVlLFxuICAgICAgICAgICAgfSlcbiAgICAgICAgICB9LFxuICAgIH1cblxuICAgIC8vIElmIGNoaWxkIGlzIGFuIDxhPiB0YWcgYW5kIGRvZXNuJ3QgaGF2ZSBhIGhyZWYgYXR0cmlidXRlLCBvciBpZiB0aGUgJ3Bhc3NIcmVmJyBwcm9wZXJ0eSBpc1xuICAgIC8vIGRlZmluZWQsIHdlIHNwZWNpZnkgdGhlIGN1cnJlbnQgJ2hyZWYnLCBzbyB0aGF0IHJlcGV0aXRpb24gaXMgbm90IG5lZWRlZCBieSB0aGUgdXNlci5cbiAgICAvLyBJZiB0aGUgdXJsIGlzIGFic29sdXRlLCB3ZSBjYW4gYnlwYXNzIHRoZSBsb2dpYyB0byBwcmVwZW5kIHRoZSBkb21haW4gYW5kIGxvY2FsZS5cbiAgICBpZiAoaXNBYnNvbHV0ZVVybChhcykpIHtcbiAgICAgIGNoaWxkUHJvcHMuaHJlZiA9IGFzXG4gICAgfSBlbHNlIGlmIChcbiAgICAgICFsZWdhY3lCZWhhdmlvciB8fFxuICAgICAgcGFzc0hyZWYgfHxcbiAgICAgIChjaGlsZC50eXBlID09PSAnYScgJiYgISgnaHJlZicgaW4gY2hpbGQucHJvcHMpKVxuICAgICkge1xuICAgICAgY29uc3QgY3VyTG9jYWxlID0gdHlwZW9mIGxvY2FsZSAhPT0gJ3VuZGVmaW5lZCcgPyBsb2NhbGUgOiByb3V0ZXI/LmxvY2FsZVxuXG4gICAgICAvLyB3ZSBvbmx5IHJlbmRlciBkb21haW4gbG9jYWxlcyBpZiB3ZSBhcmUgY3VycmVudGx5IG9uIGEgZG9tYWluIGxvY2FsZVxuICAgICAgLy8gc28gdGhhdCBsb2NhbGUgbGlua3MgYXJlIHN0aWxsIHZpc2l0YWJsZSBpbiBkZXZlbG9wbWVudC9wcmV2aWV3IGVudnNcbiAgICAgIGNvbnN0IGxvY2FsZURvbWFpbiA9XG4gICAgICAgIHJvdXRlcj8uaXNMb2NhbGVEb21haW4gJiZcbiAgICAgICAgZ2V0RG9tYWluTG9jYWxlKGFzLCBjdXJMb2NhbGUsIHJvdXRlcj8ubG9jYWxlcywgcm91dGVyPy5kb21haW5Mb2NhbGVzKVxuXG4gICAgICBjaGlsZFByb3BzLmhyZWYgPVxuICAgICAgICBsb2NhbGVEb21haW4gfHxcbiAgICAgICAgYWRkQmFzZVBhdGgoYWRkTG9jYWxlKGFzLCBjdXJMb2NhbGUsIHJvdXRlcj8uZGVmYXVsdExvY2FsZSkpXG4gICAgfVxuXG4gICAgaWYgKGxlZ2FjeUJlaGF2aW9yKSB7XG4gICAgICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgPT09ICdkZXZlbG9wbWVudCcpIHtcbiAgICAgICAgZXJyb3JPbmNlKFxuICAgICAgICAgICdgbGVnYWN5QmVoYXZpb3JgIGlzIGRlcHJlY2F0ZWQgYW5kIHdpbGwgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSAnICtcbiAgICAgICAgICAgICdyZWxlYXNlLiBBIGNvZGVtb2QgaXMgYXZhaWxhYmxlIHRvIHVwZ3JhZGUgeW91ciBjb21wb25lbnRzOlxcblxcbicgK1xuICAgICAgICAgICAgJ25weCBAbmV4dC9jb2RlbW9kQGxhdGVzdCBuZXctbGluayAuXFxuXFxuJyArXG4gICAgICAgICAgICAnTGVhcm4gbW9yZTogaHR0cHM6Ly9uZXh0anMub3JnL2RvY3MvYXBwL2J1aWxkaW5nLXlvdXItYXBwbGljYXRpb24vdXBncmFkaW5nL2NvZGVtb2RzI3JlbW92ZS1hLXRhZ3MtZnJvbS1saW5rLWNvbXBvbmVudHMnXG4gICAgICAgIClcbiAgICAgIH1cbiAgICAgIHJldHVybiBSZWFjdC5jbG9uZUVsZW1lbnQoY2hpbGQsIGNoaWxkUHJvcHMpXG4gICAgfVxuXG4gICAgcmV0dXJuIChcbiAgICAgIDxhIHsuLi5yZXN0UHJvcHN9IHsuLi5jaGlsZFByb3BzfT5cbiAgICAgICAge2NoaWxkcmVufVxuICAgICAgPC9hPlxuICAgIClcbiAgfVxuKVxuXG5jb25zdCBMaW5rU3RhdHVzQ29udGV4dCA9IGNyZWF0ZUNvbnRleHQ8e1xuICBwZW5kaW5nOiBib29sZWFuXG59Pih7XG4gIC8vIFdlIGRvIG5vdCBzdXBwb3J0IGxpbmsgc3RhdHVzIGluIHRoZSBQYWdlcyBSb3V0ZXIsIHNvIHdlIGFsd2F5cyByZXR1cm4gZmFsc2VcbiAgcGVuZGluZzogZmFsc2UsXG59KVxuXG5leHBvcnQgY29uc3QgdXNlTGlua1N0YXR1cyA9ICgpID0+IHtcbiAgLy8gVGhpcyBiZWhhdmlvdXIgaXMgbGlrZSBSZWFjdCdzIHVzZUZvcm1TdGF0dXMuIFdoZW4gdGhlIGNvbXBvbmVudCBpcyBub3QgdW5kZXJcbiAgLy8gYSA8Zm9ybT4gdGFnLCBpdCB3aWxsIGdldCB0aGUgZGVmYXVsdCB2YWx1ZSwgaW5zdGVhZCBvZiB0aHJvd2luZyBhbiBlcnJvci5cbiAgcmV0dXJuIHVzZUNvbnRleHQoTGlua1N0YXR1c0NvbnRleHQpXG59XG5cbmV4cG9ydCBkZWZhdWx0IExpbmtcbiJdLCJuYW1lcyI6WyJ1c2VMaW5rU3RhdHVzIiwicHJlZmV0Y2hlZCIsIlNldCIsInByZWZldGNoIiwicm91dGVyIiwiaHJlZiIsImFzIiwib3B0aW9ucyIsIndpbmRvdyIsImlzTG9jYWxVUkwiLCJieXBhc3NQcmVmZXRjaGVkQ2hlY2siLCJsb2NhbGUiLCJ1bmRlZmluZWQiLCJwcmVmZXRjaGVkS2V5IiwiaGFzIiwiYWRkIiwiY2F0Y2giLCJlcnIiLCJwcm9jZXNzIiwiZW52IiwiTk9ERV9FTlYiLCJpc01vZGlmaWVkRXZlbnQiLCJldmVudCIsImV2ZW50VGFyZ2V0IiwiY3VycmVudFRhcmdldCIsInRhcmdldCIsImdldEF0dHJpYnV0ZSIsIm1ldGFLZXkiLCJjdHJsS2V5Iiwic2hpZnRLZXkiLCJhbHRLZXkiLCJuYXRpdmVFdmVudCIsIndoaWNoIiwibGlua0NsaWNrZWQiLCJlIiwicmVwbGFjZSIsInNoYWxsb3ciLCJzY3JvbGwiLCJvbk5hdmlnYXRlIiwibm9kZU5hbWUiLCJpc0FuY2hvck5vZGVOYW1lIiwidG9VcHBlckNhc2UiLCJoYXNBdHRyaWJ1dGUiLCJwcmV2ZW50RGVmYXVsdCIsImxvY2F0aW9uIiwibmF2aWdhdGUiLCJpc0RlZmF1bHRQcmV2ZW50ZWQiLCJyb3V0ZXJTY3JvbGwiLCJmb3JtYXRTdHJpbmdPclVybCIsInVybE9iak9yU3RyaW5nIiwiZm9ybWF0VXJsIiwiTGluayIsIlJlYWN0IiwiZm9yd2FyZFJlZiIsIkxpbmtDb21wb25lbnQiLCJwcm9wcyIsImZvcndhcmRlZFJlZiIsImNoaWxkcmVuIiwiaHJlZlByb3AiLCJhc1Byb3AiLCJjaGlsZHJlblByb3AiLCJwcmVmZXRjaFByb3AiLCJwYXNzSHJlZiIsIm9uQ2xpY2siLCJvbk1vdXNlRW50ZXIiLCJvbk1vdXNlRW50ZXJQcm9wIiwib25Ub3VjaFN0YXJ0Iiwib25Ub3VjaFN0YXJ0UHJvcCIsImxlZ2FjeUJlaGF2aW9yIiwicmVzdFByb3BzIiwiYSIsInVzZUNvbnRleHQiLCJSb3V0ZXJDb250ZXh0IiwicHJlZmV0Y2hFbmFibGVkIiwiY3JlYXRlUHJvcEVycm9yIiwiYXJncyIsIkVycm9yIiwia2V5IiwiZXhwZWN0ZWQiLCJhY3R1YWwiLCJyZXF1aXJlZFByb3BzR3VhcmQiLCJyZXF1aXJlZFByb3BzIiwiT2JqZWN0Iiwia2V5cyIsImZvckVhY2giLCJfIiwib3B0aW9uYWxQcm9wc0d1YXJkIiwib3B0aW9uYWxQcm9wcyIsInZhbFR5cGUiLCJ1c2VNZW1vIiwicmVzb2x2ZWRIcmVmIiwicmVzb2x2ZWRBcyIsInJlc29sdmVIcmVmIiwicHJldmlvdXNIcmVmIiwidXNlUmVmIiwicHJldmlvdXNBcyIsImNoaWxkIiwiY29uc29sZSIsIndhcm4iLCJDaGlsZHJlbiIsIm9ubHkiLCJ0eXBlIiwiY2hpbGRSZWYiLCJyZWYiLCJzZXRJbnRlcnNlY3Rpb25SZWYiLCJpc1Zpc2libGUiLCJyZXNldFZpc2libGUiLCJ1c2VJbnRlcnNlY3Rpb24iLCJyb290TWFyZ2luIiwic2V0SW50ZXJzZWN0aW9uV2l0aFJlc2V0UmVmIiwidXNlQ2FsbGJhY2siLCJlbCIsImN1cnJlbnQiLCJzZXRSZWYiLCJ1c2VNZXJnZWRSZWYiLCJ1c2VFZmZlY3QiLCJjaGlsZFByb3BzIiwiZGVmYXVsdFByZXZlbnRlZCIsInByaW9yaXR5IiwiX19ORVhUX0xJTktfTk9fVE9VQ0hfU1RBUlQiLCJpc0Fic29sdXRlVXJsIiwiY3VyTG9jYWxlIiwibG9jYWxlRG9tYWluIiwiaXNMb2NhbGVEb21haW4iLCJnZXREb21haW5Mb2NhbGUiLCJsb2NhbGVzIiwiZG9tYWluTG9jYWxlcyIsImFkZEJhc2VQYXRoIiwiYWRkTG9jYWxlIiwiZGVmYXVsdExvY2FsZSIsImVycm9yT25jZSIsImNsb25lRWxlbWVudCIsIkxpbmtTdGF0dXNDb250ZXh0IiwiY3JlYXRlQ29udGV4dCIsInBlbmRpbmciXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(pages-dir-node)/./node_modules/next/dist/client/link.js\n"); - -/***/ }), - -/***/ "(pages-dir-node)/./node_modules/next/dist/client/normalize-trailing-slash.js": -/*!*******************************************************************!*\ - !*** ./node_modules/next/dist/client/normalize-trailing-slash.js ***! - \*******************************************************************/ -/***/ ((module, exports, __webpack_require__) => { - -"use strict"; -eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"normalizePathTrailingSlash\", ({\n enumerable: true,\n get: function() {\n return normalizePathTrailingSlash;\n }\n}));\nconst _removetrailingslash = __webpack_require__(/*! ../shared/lib/router/utils/remove-trailing-slash */ \"(pages-dir-node)/./node_modules/next/dist/shared/lib/router/utils/remove-trailing-slash.js\");\nconst _parsepath = __webpack_require__(/*! ../shared/lib/router/utils/parse-path */ \"(pages-dir-node)/./node_modules/next/dist/shared/lib/router/utils/parse-path.js\");\nconst normalizePathTrailingSlash = (path)=>{\n if (!path.startsWith('/') || undefined) {\n return path;\n }\n const { pathname, query, hash } = (0, _parsepath.parsePath)(path);\n if (false) {}\n return \"\" + (0, _removetrailingslash.removeTrailingSlash)(pathname) + query + hash;\n};\nif ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=normalize-trailing-slash.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1ub2RlKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvY2xpZW50L25vcm1hbGl6ZS10cmFpbGluZy1zbGFzaC5qcyIsIm1hcHBpbmdzIjoiOzs7OzhEQU9hQTs7O2VBQUFBOzs7aURBUHVCO3VDQUNWO0FBTW5CLE1BQU1BLDZCQUE2QixDQUFDQztJQUN6QyxJQUFJLENBQUNBLEtBQUtDLFVBQVUsQ0FBQyxRQUFRQyxTQUF3QyxFQUFFO1FBQ3JFLE9BQU9GO0lBQ1Q7SUFFQSxNQUFNLEVBQUVLLFFBQVEsRUFBRUMsS0FBSyxFQUFFQyxJQUFJLEVBQUUsR0FBR0MsQ0FBQUEsR0FBQUEsV0FBQUEsU0FBQUEsRUFBVVI7SUFDNUMsSUFBSUUsS0FBaUMsRUFBRSxFQVF0QztJQUVELE9BQVEsS0FBRVMsQ0FBQUEsR0FBQUEscUJBQUFBLG1CQUFBQSxFQUFvQk4sWUFBWUMsUUFBUUM7QUFDcEQiLCJzb3VyY2VzIjpbIkQ6XFxzcmNcXGNsaWVudFxcbm9ybWFsaXplLXRyYWlsaW5nLXNsYXNoLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHJlbW92ZVRyYWlsaW5nU2xhc2ggfSBmcm9tICcuLi9zaGFyZWQvbGliL3JvdXRlci91dGlscy9yZW1vdmUtdHJhaWxpbmctc2xhc2gnXG5pbXBvcnQgeyBwYXJzZVBhdGggfSBmcm9tICcuLi9zaGFyZWQvbGliL3JvdXRlci91dGlscy9wYXJzZS1wYXRoJ1xuXG4vKipcbiAqIE5vcm1hbGl6ZXMgdGhlIHRyYWlsaW5nIHNsYXNoIG9mIGEgcGF0aCBhY2NvcmRpbmcgdG8gdGhlIGB0cmFpbGluZ1NsYXNoYCBvcHRpb25cbiAqIGluIGBuZXh0LmNvbmZpZy5qc2AuXG4gKi9cbmV4cG9ydCBjb25zdCBub3JtYWxpemVQYXRoVHJhaWxpbmdTbGFzaCA9IChwYXRoOiBzdHJpbmcpID0+IHtcbiAgaWYgKCFwYXRoLnN0YXJ0c1dpdGgoJy8nKSB8fCBwcm9jZXNzLmVudi5fX05FWFRfTUFOVUFMX1RSQUlMSU5HX1NMQVNIKSB7XG4gICAgcmV0dXJuIHBhdGhcbiAgfVxuXG4gIGNvbnN0IHsgcGF0aG5hbWUsIHF1ZXJ5LCBoYXNoIH0gPSBwYXJzZVBhdGgocGF0aClcbiAgaWYgKHByb2Nlc3MuZW52Ll9fTkVYVF9UUkFJTElOR19TTEFTSCkge1xuICAgIGlmICgvXFwuW14vXStcXC8/JC8udGVzdChwYXRobmFtZSkpIHtcbiAgICAgIHJldHVybiBgJHtyZW1vdmVUcmFpbGluZ1NsYXNoKHBhdGhuYW1lKX0ke3F1ZXJ5fSR7aGFzaH1gXG4gICAgfSBlbHNlIGlmIChwYXRobmFtZS5lbmRzV2l0aCgnLycpKSB7XG4gICAgICByZXR1cm4gYCR7cGF0aG5hbWV9JHtxdWVyeX0ke2hhc2h9YFxuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gYCR7cGF0aG5hbWV9LyR7cXVlcnl9JHtoYXNofWBcbiAgICB9XG4gIH1cblxuICByZXR1cm4gYCR7cmVtb3ZlVHJhaWxpbmdTbGFzaChwYXRobmFtZSl9JHtxdWVyeX0ke2hhc2h9YFxufVxuIl0sIm5hbWVzIjpbIm5vcm1hbGl6ZVBhdGhUcmFpbGluZ1NsYXNoIiwicGF0aCIsInN0YXJ0c1dpdGgiLCJwcm9jZXNzIiwiZW52IiwiX19ORVhUX01BTlVBTF9UUkFJTElOR19TTEFTSCIsInBhdGhuYW1lIiwicXVlcnkiLCJoYXNoIiwicGFyc2VQYXRoIiwiX19ORVhUX1RSQUlMSU5HX1NMQVNIIiwidGVzdCIsInJlbW92ZVRyYWlsaW5nU2xhc2giLCJlbmRzV2l0aCJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(pages-dir-node)/./node_modules/next/dist/client/normalize-trailing-slash.js\n"); - -/***/ }), - -/***/ "(pages-dir-node)/./node_modules/next/dist/client/request-idle-callback.js": -/*!****************************************************************!*\ - !*** ./node_modules/next/dist/client/request-idle-callback.js ***! - \****************************************************************/ -/***/ ((module, exports) => { - -"use strict"; -eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n cancelIdleCallback: function() {\n return cancelIdleCallback;\n },\n requestIdleCallback: function() {\n return requestIdleCallback;\n }\n});\nconst requestIdleCallback = typeof self !== 'undefined' && self.requestIdleCallback && self.requestIdleCallback.bind(window) || function(cb) {\n let start = Date.now();\n return self.setTimeout(function() {\n cb({\n didTimeout: false,\n timeRemaining: function() {\n return Math.max(0, 50 - (Date.now() - start));\n }\n });\n }, 1);\n};\nconst cancelIdleCallback = typeof self !== 'undefined' && self.cancelIdleCallback && self.cancelIdleCallback.bind(window) || function(id) {\n return clearTimeout(id);\n};\nif ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=request-idle-callback.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1ub2RlKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvY2xpZW50L3JlcXVlc3QtaWRsZS1jYWxsYmFjay5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7SUFnQmFBLGtCQUFrQjtlQUFsQkE7O0lBaEJBQyxtQkFBbUI7ZUFBbkJBOzs7QUFBTixNQUFNQSxzQkFDVixPQUFPQyxTQUFTLGVBQ2ZBLEtBQUtELG1CQUFtQixJQUN4QkMsS0FBS0QsbUJBQW1CLENBQUNFLElBQUksQ0FBQ0MsV0FDaEMsU0FBVUMsRUFBdUI7SUFDL0IsSUFBSUMsUUFBUUMsS0FBS0MsR0FBRztJQUNwQixPQUFPTixLQUFLTyxVQUFVLENBQUM7UUFDckJKLEdBQUc7WUFDREssWUFBWTtZQUNaQyxlQUFlO2dCQUNiLE9BQU9DLEtBQUtDLEdBQUcsQ0FBQyxHQUFHLEtBQU1OLENBQUFBLEtBQUtDLEdBQUcsS0FBS0YsS0FBQUEsQ0FBSTtZQUM1QztRQUNGO0lBQ0YsR0FBRztBQUNMO0FBRUssTUFBTU4scUJBQ1YsT0FBT0UsU0FBUyxlQUNmQSxLQUFLRixrQkFBa0IsSUFDdkJFLEtBQUtGLGtCQUFrQixDQUFDRyxJQUFJLENBQUNDLFdBQy9CLFNBQVVVLEVBQVU7SUFDbEIsT0FBT0MsYUFBYUQ7QUFDdEIiLCJzb3VyY2VzIjpbIkQ6XFxzcmNcXGNsaWVudFxccmVxdWVzdC1pZGxlLWNhbGxiYWNrLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBjb25zdCByZXF1ZXN0SWRsZUNhbGxiYWNrID1cbiAgKHR5cGVvZiBzZWxmICE9PSAndW5kZWZpbmVkJyAmJlxuICAgIHNlbGYucmVxdWVzdElkbGVDYWxsYmFjayAmJlxuICAgIHNlbGYucmVxdWVzdElkbGVDYWxsYmFjay5iaW5kKHdpbmRvdykpIHx8XG4gIGZ1bmN0aW9uIChjYjogSWRsZVJlcXVlc3RDYWxsYmFjayk6IG51bWJlciB7XG4gICAgbGV0IHN0YXJ0ID0gRGF0ZS5ub3coKVxuICAgIHJldHVybiBzZWxmLnNldFRpbWVvdXQoZnVuY3Rpb24gKCkge1xuICAgICAgY2Ioe1xuICAgICAgICBkaWRUaW1lb3V0OiBmYWxzZSxcbiAgICAgICAgdGltZVJlbWFpbmluZzogZnVuY3Rpb24gKCkge1xuICAgICAgICAgIHJldHVybiBNYXRoLm1heCgwLCA1MCAtIChEYXRlLm5vdygpIC0gc3RhcnQpKVxuICAgICAgICB9LFxuICAgICAgfSlcbiAgICB9LCAxKVxuICB9XG5cbmV4cG9ydCBjb25zdCBjYW5jZWxJZGxlQ2FsbGJhY2sgPVxuICAodHlwZW9mIHNlbGYgIT09ICd1bmRlZmluZWQnICYmXG4gICAgc2VsZi5jYW5jZWxJZGxlQ2FsbGJhY2sgJiZcbiAgICBzZWxmLmNhbmNlbElkbGVDYWxsYmFjay5iaW5kKHdpbmRvdykpIHx8XG4gIGZ1bmN0aW9uIChpZDogbnVtYmVyKSB7XG4gICAgcmV0dXJuIGNsZWFyVGltZW91dChpZClcbiAgfVxuIl0sIm5hbWVzIjpbImNhbmNlbElkbGVDYWxsYmFjayIsInJlcXVlc3RJZGxlQ2FsbGJhY2siLCJzZWxmIiwiYmluZCIsIndpbmRvdyIsImNiIiwic3RhcnQiLCJEYXRlIiwibm93Iiwic2V0VGltZW91dCIsImRpZFRpbWVvdXQiLCJ0aW1lUmVtYWluaW5nIiwiTWF0aCIsIm1heCIsImlkIiwiY2xlYXJUaW1lb3V0Il0sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(pages-dir-node)/./node_modules/next/dist/client/request-idle-callback.js\n"); - -/***/ }), - -/***/ "(pages-dir-node)/./node_modules/next/dist/client/resolve-href.js": -/*!*******************************************************!*\ - !*** ./node_modules/next/dist/client/resolve-href.js ***! - \*******************************************************/ -/***/ ((module, exports, __webpack_require__) => { - -"use strict"; -eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"resolveHref\", ({\n enumerable: true,\n get: function() {\n return resolveHref;\n }\n}));\nconst _querystring = __webpack_require__(/*! ../shared/lib/router/utils/querystring */ \"(pages-dir-node)/./node_modules/next/dist/shared/lib/router/utils/querystring.js\");\nconst _formaturl = __webpack_require__(/*! ../shared/lib/router/utils/format-url */ \"(pages-dir-node)/./node_modules/next/dist/shared/lib/router/utils/format-url.js\");\nconst _omit = __webpack_require__(/*! ../shared/lib/router/utils/omit */ \"(pages-dir-node)/./node_modules/next/dist/shared/lib/router/utils/omit.js\");\nconst _utils = __webpack_require__(/*! ../shared/lib/utils */ \"(pages-dir-node)/./node_modules/next/dist/shared/lib/utils.js\");\nconst _normalizetrailingslash = __webpack_require__(/*! ./normalize-trailing-slash */ \"(pages-dir-node)/./node_modules/next/dist/client/normalize-trailing-slash.js\");\nconst _islocalurl = __webpack_require__(/*! ../shared/lib/router/utils/is-local-url */ \"(pages-dir-node)/./node_modules/next/dist/shared/lib/router/utils/is-local-url.js\");\nconst _utils1 = __webpack_require__(/*! ../shared/lib/router/utils */ \"(pages-dir-node)/./node_modules/next/dist/shared/lib/router/utils/index.js\");\nconst _interpolateas = __webpack_require__(/*! ../shared/lib/router/utils/interpolate-as */ \"(pages-dir-node)/./node_modules/next/dist/shared/lib/router/utils/interpolate-as.js\");\nfunction resolveHref(router, href, resolveAs) {\n // we use a dummy base url for relative urls\n let base;\n let urlAsString = typeof href === 'string' ? href : (0, _formaturl.formatWithValidation)(href);\n // repeated slashes and backslashes in the URL are considered\n // invalid and will never match a Next.js page/file\n // https://www.rfc-editor.org/rfc/rfc3986.html#section-3.1\n const urlProtoMatch = urlAsString.match(/^[a-z][a-z0-9+.-]*:\\/\\//i);\n const urlAsStringNoProto = urlProtoMatch ? urlAsString.slice(urlProtoMatch[0].length) : urlAsString;\n const urlParts = urlAsStringNoProto.split('?', 1);\n if ((urlParts[0] || '').match(/(\\/\\/|\\\\)/)) {\n console.error(\"Invalid href '\" + urlAsString + \"' passed to next/router in page: '\" + router.pathname + \"'. Repeated forward-slashes (//) or backslashes \\\\ are not valid in the href.\");\n const normalizedUrl = (0, _utils.normalizeRepeatedSlashes)(urlAsStringNoProto);\n urlAsString = (urlProtoMatch ? urlProtoMatch[0] : '') + normalizedUrl;\n }\n // Return because it cannot be routed by the Next.js router\n if (!(0, _islocalurl.isLocalURL)(urlAsString)) {\n return resolveAs ? [\n urlAsString\n ] : urlAsString;\n }\n try {\n base = new URL(urlAsString.startsWith('#') ? router.asPath : router.pathname, 'http://n');\n } catch (_) {\n // fallback to / for invalid asPath values e.g. //\n base = new URL('/', 'http://n');\n }\n try {\n const finalUrl = new URL(urlAsString, base);\n finalUrl.pathname = (0, _normalizetrailingslash.normalizePathTrailingSlash)(finalUrl.pathname);\n let interpolatedAs = '';\n if ((0, _utils1.isDynamicRoute)(finalUrl.pathname) && finalUrl.searchParams && resolveAs) {\n const query = (0, _querystring.searchParamsToUrlQuery)(finalUrl.searchParams);\n const { result, params } = (0, _interpolateas.interpolateAs)(finalUrl.pathname, finalUrl.pathname, query);\n if (result) {\n interpolatedAs = (0, _formaturl.formatWithValidation)({\n pathname: result,\n hash: finalUrl.hash,\n query: (0, _omit.omit)(query, params)\n });\n }\n }\n // if the origin didn't change, it means we received a relative href\n const resolvedHref = finalUrl.origin === base.origin ? finalUrl.href.slice(finalUrl.origin.length) : finalUrl.href;\n return resolveAs ? [\n resolvedHref,\n interpolatedAs || resolvedHref\n ] : resolvedHref;\n } catch (_) {\n return resolveAs ? [\n urlAsString\n ] : urlAsString;\n }\n}\nif ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=resolve-href.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1ub2RlKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvY2xpZW50L3Jlc29sdmUtaHJlZi5qcyIsIm1hcHBpbmdzIjoiOzs7OytDQXlCZ0JBOzs7ZUFBQUE7Ozt5Q0F2QnVCO3VDQUNGO2tDQUNoQjttQ0FDb0I7b0RBQ0U7d0NBQ2hCO29DQUNJOzJDQUNEO0FBZ0J2QixTQUFTQSxZQUNkQyxNQUFrQixFQUNsQkMsSUFBUyxFQUNUQyxTQUFtQjtJQUVuQiw0Q0FBNEM7SUFDNUMsSUFBSUM7SUFDSixJQUFJQyxjQUFjLE9BQU9ILFNBQVMsV0FBV0EsT0FBT0ksQ0FBQUEsR0FBQUEsV0FBQUEsb0JBQUFBLEVBQXFCSjtJQUV6RSw2REFBNkQ7SUFDN0QsbURBQW1EO0lBQ25ELDBEQUEwRDtJQUMxRCxNQUFNSyxnQkFBZ0JGLFlBQVlHLEtBQUssQ0FBQztJQUN4QyxNQUFNQyxxQkFBcUJGLGdCQUN2QkYsWUFBWUssS0FBSyxDQUFDSCxhQUFhLENBQUMsRUFBRSxDQUFDSSxNQUFNLElBQ3pDTjtJQUVKLE1BQU1PLFdBQVdILG1CQUFtQkksS0FBSyxDQUFDLEtBQUs7SUFFL0MsSUFBS0QsQ0FBQUEsUUFBUSxDQUFDLEVBQUUsSUFBSSxHQUFDLENBQUdKLEtBQUssQ0FBQyxjQUFjO1FBQzFDTSxRQUFRQyxLQUFLLENBQ1YsbUJBQWdCVixjQUFZLHVDQUFvQ0osT0FBT2UsUUFBUSxHQUFDO1FBRW5GLE1BQU1DLGdCQUFnQkMsQ0FBQUEsR0FBQUEsT0FBQUEsd0JBQUFBLEVBQXlCVDtRQUMvQ0osY0FBZUUsQ0FBQUEsZ0JBQWdCQSxhQUFhLENBQUMsRUFBRSxHQUFHLEdBQUMsR0FBS1U7SUFDMUQ7SUFFQSwyREFBMkQ7SUFDM0QsSUFBSSxDQUFDRSxDQUFBQSxHQUFBQSxZQUFBQSxVQUFBQSxFQUFXZCxjQUFjO1FBQzVCLE9BQVFGLFlBQVk7WUFBQ0U7U0FBWSxHQUFHQTtJQUN0QztJQUVBLElBQUk7UUFDRkQsT0FBTyxJQUFJZ0IsSUFDVGYsWUFBWWdCLFVBQVUsQ0FBQyxPQUFPcEIsT0FBT3FCLE1BQU0sR0FBR3JCLE9BQU9lLFFBQVEsRUFDN0Q7SUFFSixFQUFFLE9BQU9PLEdBQUc7UUFDVixrREFBa0Q7UUFDbERuQixPQUFPLElBQUlnQixJQUFJLEtBQUs7SUFDdEI7SUFFQSxJQUFJO1FBQ0YsTUFBTUksV0FBVyxJQUFJSixJQUFJZixhQUFhRDtRQUN0Q29CLFNBQVNSLFFBQVEsR0FBR1MsQ0FBQUEsR0FBQUEsd0JBQUFBLDBCQUFBQSxFQUEyQkQsU0FBU1IsUUFBUTtRQUNoRSxJQUFJVSxpQkFBaUI7UUFFckIsSUFDRUMsQ0FBQUEsR0FBQUEsUUFBQUEsY0FBQUEsRUFBZUgsU0FBU1IsUUFBUSxLQUNoQ1EsU0FBU0ksWUFBWSxJQUNyQnpCLFdBQ0E7WUFDQSxNQUFNMEIsUUFBUUMsQ0FBQUEsR0FBQUEsYUFBQUEsc0JBQXNCLEVBQUNOLFNBQVNJLFlBQVk7WUFFMUQsTUFBTSxFQUFFRyxNQUFNLEVBQUVDLE1BQU0sRUFBRSxHQUFHQyxDQUFBQSxHQUFBQSxlQUFBQSxhQUFhLEVBQ3RDVCxTQUFTUixRQUFRLEVBQ2pCUSxTQUFTUixRQUFRLEVBQ2pCYTtZQUdGLElBQUlFLFFBQVE7Z0JBQ1ZMLGlCQUFpQnBCLENBQUFBLEdBQUFBLFdBQUFBLG9CQUFvQixFQUFDO29CQUNwQ1UsVUFBVWU7b0JBQ1ZHLE1BQU1WLFNBQVNVLElBQUk7b0JBQ25CTCxPQUFPTSxDQUFBQSxHQUFBQSxNQUFBQSxJQUFBQSxFQUFLTixPQUFPRztnQkFDckI7WUFDRjtRQUNGO1FBRUEsb0VBQW9FO1FBQ3BFLE1BQU1JLGVBQ0paLFNBQVNhLE1BQU0sS0FBS2pDLEtBQUtpQyxNQUFNLEdBQzNCYixTQUFTdEIsSUFBSSxDQUFDUSxLQUFLLENBQUNjLFNBQVNhLE1BQU0sQ0FBQzFCLE1BQU0sSUFDMUNhLFNBQVN0QixJQUFJO1FBRW5CLE9BQU9DLFlBQ0g7WUFBQ2lDO1lBQWNWLGtCQUFrQlU7U0FBYSxHQUM5Q0E7SUFDTixFQUFFLE9BQU9iLEdBQUc7UUFDVixPQUFPcEIsWUFBWTtZQUFDRTtTQUFZLEdBQUdBO0lBQ3JDO0FBQ0YiLCJzb3VyY2VzIjpbIkQ6XFxzcmNcXGNsaWVudFxccmVzb2x2ZS1ocmVmLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgTmV4dFJvdXRlciwgVXJsIH0gZnJvbSAnLi4vc2hhcmVkL2xpYi9yb3V0ZXIvcm91dGVyJ1xuXG5pbXBvcnQgeyBzZWFyY2hQYXJhbXNUb1VybFF1ZXJ5IH0gZnJvbSAnLi4vc2hhcmVkL2xpYi9yb3V0ZXIvdXRpbHMvcXVlcnlzdHJpbmcnXG5pbXBvcnQgeyBmb3JtYXRXaXRoVmFsaWRhdGlvbiB9IGZyb20gJy4uL3NoYXJlZC9saWIvcm91dGVyL3V0aWxzL2Zvcm1hdC11cmwnXG5pbXBvcnQgeyBvbWl0IH0gZnJvbSAnLi4vc2hhcmVkL2xpYi9yb3V0ZXIvdXRpbHMvb21pdCdcbmltcG9ydCB7IG5vcm1hbGl6ZVJlcGVhdGVkU2xhc2hlcyB9IGZyb20gJy4uL3NoYXJlZC9saWIvdXRpbHMnXG5pbXBvcnQgeyBub3JtYWxpemVQYXRoVHJhaWxpbmdTbGFzaCB9IGZyb20gJy4vbm9ybWFsaXplLXRyYWlsaW5nLXNsYXNoJ1xuaW1wb3J0IHsgaXNMb2NhbFVSTCB9IGZyb20gJy4uL3NoYXJlZC9saWIvcm91dGVyL3V0aWxzL2lzLWxvY2FsLXVybCdcbmltcG9ydCB7IGlzRHluYW1pY1JvdXRlIH0gZnJvbSAnLi4vc2hhcmVkL2xpYi9yb3V0ZXIvdXRpbHMnXG5pbXBvcnQgeyBpbnRlcnBvbGF0ZUFzIH0gZnJvbSAnLi4vc2hhcmVkL2xpYi9yb3V0ZXIvdXRpbHMvaW50ZXJwb2xhdGUtYXMnXG5cbi8qKlxuICogUmVzb2x2ZXMgYSBnaXZlbiBoeXBlcmxpbmsgd2l0aCBhIGNlcnRhaW4gcm91dGVyIHN0YXRlIChiYXNlUGF0aCBub3QgaW5jbHVkZWQpLlxuICogUHJlc2VydmVzIGFic29sdXRlIHVybHMuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiByZXNvbHZlSHJlZihcbiAgcm91dGVyOiBOZXh0Um91dGVyLFxuICBocmVmOiBVcmwsXG4gIHJlc29sdmVBczogdHJ1ZVxuKTogW3N0cmluZywgc3RyaW5nXSB8IFtzdHJpbmddXG5leHBvcnQgZnVuY3Rpb24gcmVzb2x2ZUhyZWYoXG4gIHJvdXRlcjogTmV4dFJvdXRlcixcbiAgaHJlZjogVXJsLFxuICByZXNvbHZlQXM/OiBmYWxzZVxuKTogc3RyaW5nXG5leHBvcnQgZnVuY3Rpb24gcmVzb2x2ZUhyZWYoXG4gIHJvdXRlcjogTmV4dFJvdXRlcixcbiAgaHJlZjogVXJsLFxuICByZXNvbHZlQXM/OiBib29sZWFuXG4pOiBbc3RyaW5nLCBzdHJpbmddIHwgW3N0cmluZ10gfCBzdHJpbmcge1xuICAvLyB3ZSB1c2UgYSBkdW1teSBiYXNlIHVybCBmb3IgcmVsYXRpdmUgdXJsc1xuICBsZXQgYmFzZTogVVJMXG4gIGxldCB1cmxBc1N0cmluZyA9IHR5cGVvZiBocmVmID09PSAnc3RyaW5nJyA/IGhyZWYgOiBmb3JtYXRXaXRoVmFsaWRhdGlvbihocmVmKVxuXG4gIC8vIHJlcGVhdGVkIHNsYXNoZXMgYW5kIGJhY2tzbGFzaGVzIGluIHRoZSBVUkwgYXJlIGNvbnNpZGVyZWRcbiAgLy8gaW52YWxpZCBhbmQgd2lsbCBuZXZlciBtYXRjaCBhIE5leHQuanMgcGFnZS9maWxlXG4gIC8vIGh0dHBzOi8vd3d3LnJmYy1lZGl0b3Iub3JnL3JmYy9yZmMzOTg2Lmh0bWwjc2VjdGlvbi0zLjFcbiAgY29uc3QgdXJsUHJvdG9NYXRjaCA9IHVybEFzU3RyaW5nLm1hdGNoKC9eW2Etel1bYS16MC05Ky4tXSo6XFwvXFwvL2kpXG4gIGNvbnN0IHVybEFzU3RyaW5nTm9Qcm90byA9IHVybFByb3RvTWF0Y2hcbiAgICA/IHVybEFzU3RyaW5nLnNsaWNlKHVybFByb3RvTWF0Y2hbMF0ubGVuZ3RoKVxuICAgIDogdXJsQXNTdHJpbmdcblxuICBjb25zdCB1cmxQYXJ0cyA9IHVybEFzU3RyaW5nTm9Qcm90by5zcGxpdCgnPycsIDEpXG5cbiAgaWYgKCh1cmxQYXJ0c1swXSB8fCAnJykubWF0Y2goLyhcXC9cXC98XFxcXCkvKSkge1xuICAgIGNvbnNvbGUuZXJyb3IoXG4gICAgICBgSW52YWxpZCBocmVmICcke3VybEFzU3RyaW5nfScgcGFzc2VkIHRvIG5leHQvcm91dGVyIGluIHBhZ2U6ICcke3JvdXRlci5wYXRobmFtZX0nLiBSZXBlYXRlZCBmb3J3YXJkLXNsYXNoZXMgKC8vKSBvciBiYWNrc2xhc2hlcyBcXFxcIGFyZSBub3QgdmFsaWQgaW4gdGhlIGhyZWYuYFxuICAgIClcbiAgICBjb25zdCBub3JtYWxpemVkVXJsID0gbm9ybWFsaXplUmVwZWF0ZWRTbGFzaGVzKHVybEFzU3RyaW5nTm9Qcm90bylcbiAgICB1cmxBc1N0cmluZyA9ICh1cmxQcm90b01hdGNoID8gdXJsUHJvdG9NYXRjaFswXSA6ICcnKSArIG5vcm1hbGl6ZWRVcmxcbiAgfVxuXG4gIC8vIFJldHVybiBiZWNhdXNlIGl0IGNhbm5vdCBiZSByb3V0ZWQgYnkgdGhlIE5leHQuanMgcm91dGVyXG4gIGlmICghaXNMb2NhbFVSTCh1cmxBc1N0cmluZykpIHtcbiAgICByZXR1cm4gKHJlc29sdmVBcyA/IFt1cmxBc1N0cmluZ10gOiB1cmxBc1N0cmluZykgYXMgc3RyaW5nXG4gIH1cblxuICB0cnkge1xuICAgIGJhc2UgPSBuZXcgVVJMKFxuICAgICAgdXJsQXNTdHJpbmcuc3RhcnRzV2l0aCgnIycpID8gcm91dGVyLmFzUGF0aCA6IHJvdXRlci5wYXRobmFtZSxcbiAgICAgICdodHRwOi8vbidcbiAgICApXG4gIH0gY2F0Y2ggKF8pIHtcbiAgICAvLyBmYWxsYmFjayB0byAvIGZvciBpbnZhbGlkIGFzUGF0aCB2YWx1ZXMgZS5nLiAvL1xuICAgIGJhc2UgPSBuZXcgVVJMKCcvJywgJ2h0dHA6Ly9uJylcbiAgfVxuXG4gIHRyeSB7XG4gICAgY29uc3QgZmluYWxVcmwgPSBuZXcgVVJMKHVybEFzU3RyaW5nLCBiYXNlKVxuICAgIGZpbmFsVXJsLnBhdGhuYW1lID0gbm9ybWFsaXplUGF0aFRyYWlsaW5nU2xhc2goZmluYWxVcmwucGF0aG5hbWUpXG4gICAgbGV0IGludGVycG9sYXRlZEFzID0gJydcblxuICAgIGlmIChcbiAgICAgIGlzRHluYW1pY1JvdXRlKGZpbmFsVXJsLnBhdGhuYW1lKSAmJlxuICAgICAgZmluYWxVcmwuc2VhcmNoUGFyYW1zICYmXG4gICAgICByZXNvbHZlQXNcbiAgICApIHtcbiAgICAgIGNvbnN0IHF1ZXJ5ID0gc2VhcmNoUGFyYW1zVG9VcmxRdWVyeShmaW5hbFVybC5zZWFyY2hQYXJhbXMpXG5cbiAgICAgIGNvbnN0IHsgcmVzdWx0LCBwYXJhbXMgfSA9IGludGVycG9sYXRlQXMoXG4gICAgICAgIGZpbmFsVXJsLnBhdGhuYW1lLFxuICAgICAgICBmaW5hbFVybC5wYXRobmFtZSxcbiAgICAgICAgcXVlcnlcbiAgICAgIClcblxuICAgICAgaWYgKHJlc3VsdCkge1xuICAgICAgICBpbnRlcnBvbGF0ZWRBcyA9IGZvcm1hdFdpdGhWYWxpZGF0aW9uKHtcbiAgICAgICAgICBwYXRobmFtZTogcmVzdWx0LFxuICAgICAgICAgIGhhc2g6IGZpbmFsVXJsLmhhc2gsXG4gICAgICAgICAgcXVlcnk6IG9taXQocXVlcnksIHBhcmFtcyksXG4gICAgICAgIH0pXG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gaWYgdGhlIG9yaWdpbiBkaWRuJ3QgY2hhbmdlLCBpdCBtZWFucyB3ZSByZWNlaXZlZCBhIHJlbGF0aXZlIGhyZWZcbiAgICBjb25zdCByZXNvbHZlZEhyZWYgPVxuICAgICAgZmluYWxVcmwub3JpZ2luID09PSBiYXNlLm9yaWdpblxuICAgICAgICA/IGZpbmFsVXJsLmhyZWYuc2xpY2UoZmluYWxVcmwub3JpZ2luLmxlbmd0aClcbiAgICAgICAgOiBmaW5hbFVybC5ocmVmXG5cbiAgICByZXR1cm4gcmVzb2x2ZUFzXG4gICAgICA/IFtyZXNvbHZlZEhyZWYsIGludGVycG9sYXRlZEFzIHx8IHJlc29sdmVkSHJlZl1cbiAgICAgIDogcmVzb2x2ZWRIcmVmXG4gIH0gY2F0Y2ggKF8pIHtcbiAgICByZXR1cm4gcmVzb2x2ZUFzID8gW3VybEFzU3RyaW5nXSA6IHVybEFzU3RyaW5nXG4gIH1cbn1cbiJdLCJuYW1lcyI6WyJyZXNvbHZlSHJlZiIsInJvdXRlciIsImhyZWYiLCJyZXNvbHZlQXMiLCJiYXNlIiwidXJsQXNTdHJpbmciLCJmb3JtYXRXaXRoVmFsaWRhdGlvbiIsInVybFByb3RvTWF0Y2giLCJtYXRjaCIsInVybEFzU3RyaW5nTm9Qcm90byIsInNsaWNlIiwibGVuZ3RoIiwidXJsUGFydHMiLCJzcGxpdCIsImNvbnNvbGUiLCJlcnJvciIsInBhdGhuYW1lIiwibm9ybWFsaXplZFVybCIsIm5vcm1hbGl6ZVJlcGVhdGVkU2xhc2hlcyIsImlzTG9jYWxVUkwiLCJVUkwiLCJzdGFydHNXaXRoIiwiYXNQYXRoIiwiXyIsImZpbmFsVXJsIiwibm9ybWFsaXplUGF0aFRyYWlsaW5nU2xhc2giLCJpbnRlcnBvbGF0ZWRBcyIsImlzRHluYW1pY1JvdXRlIiwic2VhcmNoUGFyYW1zIiwicXVlcnkiLCJzZWFyY2hQYXJhbXNUb1VybFF1ZXJ5IiwicmVzdWx0IiwicGFyYW1zIiwiaW50ZXJwb2xhdGVBcyIsImhhc2giLCJvbWl0IiwicmVzb2x2ZWRIcmVmIiwib3JpZ2luIl0sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(pages-dir-node)/./node_modules/next/dist/client/resolve-href.js\n"); - -/***/ }), - -/***/ "(pages-dir-node)/./node_modules/next/dist/client/use-intersection.js": -/*!***********************************************************!*\ - !*** ./node_modules/next/dist/client/use-intersection.js ***! - \***********************************************************/ -/***/ ((module, exports, __webpack_require__) => { - -"use strict"; -eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"useIntersection\", ({\n enumerable: true,\n get: function() {\n return useIntersection;\n }\n}));\nconst _react = __webpack_require__(/*! react */ \"react\");\nconst _requestidlecallback = __webpack_require__(/*! ./request-idle-callback */ \"(pages-dir-node)/./node_modules/next/dist/client/request-idle-callback.js\");\nconst hasIntersectionObserver = typeof IntersectionObserver === 'function';\nconst observers = new Map();\nconst idList = [];\nfunction createObserver(options) {\n const id = {\n root: options.root || null,\n margin: options.rootMargin || ''\n };\n const existing = idList.find((obj)=>obj.root === id.root && obj.margin === id.margin);\n let instance;\n if (existing) {\n instance = observers.get(existing);\n if (instance) {\n return instance;\n }\n }\n const elements = new Map();\n const observer = new IntersectionObserver((entries)=>{\n entries.forEach((entry)=>{\n const callback = elements.get(entry.target);\n const isVisible = entry.isIntersecting || entry.intersectionRatio > 0;\n if (callback && isVisible) {\n callback(isVisible);\n }\n });\n }, options);\n instance = {\n id,\n observer,\n elements\n };\n idList.push(id);\n observers.set(id, instance);\n return instance;\n}\nfunction observe(element, callback, options) {\n const { id, observer, elements } = createObserver(options);\n elements.set(element, callback);\n observer.observe(element);\n return function unobserve() {\n elements.delete(element);\n observer.unobserve(element);\n // Destroy observer when there's nothing left to watch:\n if (elements.size === 0) {\n observer.disconnect();\n observers.delete(id);\n const index = idList.findIndex((obj)=>obj.root === id.root && obj.margin === id.margin);\n if (index > -1) {\n idList.splice(index, 1);\n }\n }\n };\n}\nfunction useIntersection(param) {\n let { rootRef, rootMargin, disabled } = param;\n const isDisabled = disabled || !hasIntersectionObserver;\n const [visible, setVisible] = (0, _react.useState)(false);\n const elementRef = (0, _react.useRef)(null);\n const setElement = (0, _react.useCallback)((element)=>{\n elementRef.current = element;\n }, []);\n (0, _react.useEffect)(()=>{\n if (hasIntersectionObserver) {\n if (isDisabled || visible) return;\n const element = elementRef.current;\n if (element && element.tagName) {\n const unobserve = observe(element, (isVisible)=>isVisible && setVisible(isVisible), {\n root: rootRef == null ? void 0 : rootRef.current,\n rootMargin\n });\n return unobserve;\n }\n } else {\n if (!visible) {\n const idleCallback = (0, _requestidlecallback.requestIdleCallback)(()=>setVisible(true));\n return ()=>(0, _requestidlecallback.cancelIdleCallback)(idleCallback);\n }\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [\n isDisabled,\n rootMargin,\n rootRef,\n visible,\n elementRef.current\n ]);\n const resetVisible = (0, _react.useCallback)(()=>{\n setVisible(false);\n }, []);\n return [\n setElement,\n visible,\n resetVisible\n ];\n}\nif ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=use-intersection.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1ub2RlKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvY2xpZW50L3VzZS1pbnRlcnNlY3Rpb24uanMiLCJtYXBwaW5ncyI6Ijs7OzttREErRmdCQTs7O2VBQUFBOzs7bUNBL0Z5QztpREFJbEQ7QUFxQlAsTUFBTUMsMEJBQTBCLE9BQU9DLHlCQUF5QjtBQUVoRSxNQUFNQyxZQUFZLElBQUlDO0FBQ3RCLE1BQU1DLFNBQXVCLEVBQUU7QUFFL0IsU0FBU0MsZUFBZUMsT0FBb0M7SUFDMUQsTUFBTUMsS0FBSztRQUNUQyxNQUFNRixRQUFRRSxJQUFJLElBQUk7UUFDdEJDLFFBQVFILFFBQVFJLFVBQVUsSUFBSTtJQUNoQztJQUNBLE1BQU1DLFdBQVdQLE9BQU9RLElBQUksQ0FDMUIsQ0FBQ0MsTUFBUUEsSUFBSUwsSUFBSSxLQUFLRCxHQUFHQyxJQUFJLElBQUlLLElBQUlKLE1BQU0sS0FBS0YsR0FBR0UsTUFBTTtJQUUzRCxJQUFJSztJQUVKLElBQUlILFVBQVU7UUFDWkcsV0FBV1osVUFBVWEsR0FBRyxDQUFDSjtRQUN6QixJQUFJRyxVQUFVO1lBQ1osT0FBT0E7UUFDVDtJQUNGO0lBRUEsTUFBTUUsV0FBVyxJQUFJYjtJQUNyQixNQUFNYyxXQUFXLElBQUloQixxQkFBcUIsQ0FBQ2lCO1FBQ3pDQSxRQUFRQyxPQUFPLENBQUMsQ0FBQ0M7WUFDZixNQUFNQyxXQUFXTCxTQUFTRCxHQUFHLENBQUNLLE1BQU1FLE1BQU07WUFDMUMsTUFBTUMsWUFBWUgsTUFBTUksY0FBYyxJQUFJSixNQUFNSyxpQkFBaUIsR0FBRztZQUNwRSxJQUFJSixZQUFZRSxXQUFXO2dCQUN6QkYsU0FBU0U7WUFDWDtRQUNGO0lBQ0YsR0FBR2pCO0lBQ0hRLFdBQVc7UUFDVFA7UUFDQVU7UUFDQUQ7SUFDRjtJQUVBWixPQUFPc0IsSUFBSSxDQUFDbkI7SUFDWkwsVUFBVXlCLEdBQUcsQ0FBQ3BCLElBQUlPO0lBQ2xCLE9BQU9BO0FBQ1Q7QUFFQSxTQUFTYyxRQUNQQyxPQUFnQixFQUNoQlIsUUFBeUIsRUFDekJmLE9BQW9DO0lBRXBDLE1BQU0sRUFBRUMsRUFBRSxFQUFFVSxRQUFRLEVBQUVELFFBQVEsRUFBRSxHQUFHWCxlQUFlQztJQUNsRFUsU0FBU1csR0FBRyxDQUFDRSxTQUFTUjtJQUV0QkosU0FBU1csT0FBTyxDQUFDQztJQUNqQixPQUFPLFNBQVNDO1FBQ2RkLFNBQVNlLE1BQU0sQ0FBQ0Y7UUFDaEJaLFNBQVNhLFNBQVMsQ0FBQ0Q7UUFFbkIsdURBQXVEO1FBQ3ZELElBQUliLFNBQVNnQixJQUFJLEtBQUssR0FBRztZQUN2QmYsU0FBU2dCLFVBQVU7WUFDbkIvQixVQUFVNkIsTUFBTSxDQUFDeEI7WUFDakIsTUFBTTJCLFFBQVE5QixPQUFPK0IsU0FBUyxDQUM1QixDQUFDdEIsTUFBUUEsSUFBSUwsSUFBSSxLQUFLRCxHQUFHQyxJQUFJLElBQUlLLElBQUlKLE1BQU0sS0FBS0YsR0FBR0UsTUFBTTtZQUUzRCxJQUFJeUIsUUFBUSxDQUFDLEdBQUc7Z0JBQ2Q5QixPQUFPZ0MsTUFBTSxDQUFDRixPQUFPO1lBQ3ZCO1FBQ0Y7SUFDRjtBQUNGO0FBRU8sU0FBU25DLGdCQUFtQyxLQUlqQztJQUppQyxNQUNqRHNDLE9BQU8sRUFDUDNCLFVBQVUsRUFDVjRCLFFBQVEsRUFDUSxHQUppQztJQUtqRCxNQUFNQyxhQUFzQkQsWUFBWSxDQUFDdEM7SUFFekMsTUFBTSxDQUFDd0MsU0FBU0MsV0FBVyxHQUFHQyxDQUFBQSxHQUFBQSxPQUFBQSxRQUFBQSxFQUFTO0lBQ3ZDLE1BQU1DLGFBQWFDLENBQUFBLEdBQUFBLE9BQUFBLE1BQUFBLEVBQWlCO0lBQ3BDLE1BQU1DLGFBQWFDLENBQUFBLEdBQUFBLE9BQUFBLFdBQUFBLEVBQVksQ0FBQ2pCO1FBQzlCYyxXQUFXSSxPQUFPLEdBQUdsQjtJQUN2QixHQUFHLEVBQUU7SUFFTG1CLENBQUFBLEdBQUFBLE9BQUFBLFNBQUFBLEVBQVU7UUFDUixJQUFJaEQseUJBQXlCO1lBQzNCLElBQUl1QyxjQUFjQyxTQUFTO1lBRTNCLE1BQU1YLFVBQVVjLFdBQVdJLE9BQU87WUFDbEMsSUFBSWxCLFdBQVdBLFFBQVFvQixPQUFPLEVBQUU7Z0JBQzlCLE1BQU1uQixZQUFZRixRQUNoQkMsU0FDQSxDQUFDTixZQUFjQSxhQUFha0IsV0FBV2xCLFlBQ3ZDO29CQUFFZixJQUFJLEVBQUU2QixXQUFBQSxPQUFBQSxLQUFBQSxJQUFBQSxRQUFTVSxPQUFPO29CQUFFckM7Z0JBQVc7Z0JBR3ZDLE9BQU9vQjtZQUNUO1FBQ0YsT0FBTztZQUNMLElBQUksQ0FBQ1UsU0FBUztnQkFDWixNQUFNVSxlQUFlQyxDQUFBQSxHQUFBQSxxQkFBQUEsbUJBQUFBLEVBQW9CLElBQU1WLFdBQVc7Z0JBQzFELE9BQU8sSUFBTVcsQ0FBQUEsR0FBQUEscUJBQUFBLGtCQUFBQSxFQUFtQkY7WUFDbEM7UUFDRjtJQUNBLHVEQUF1RDtJQUN6RCxHQUFHO1FBQUNYO1FBQVk3QjtRQUFZMkI7UUFBU0c7UUFBU0csV0FBV0ksT0FBTztLQUFDO0lBRWpFLE1BQU1NLGVBQWVQLENBQUFBLEdBQUFBLE9BQUFBLFdBQUFBLEVBQVk7UUFDL0JMLFdBQVc7SUFDYixHQUFHLEVBQUU7SUFFTCxPQUFPO1FBQUNJO1FBQVlMO1FBQVNhO0tBQWE7QUFDNUMiLCJzb3VyY2VzIjpbIkQ6XFxzcmNcXGNsaWVudFxcdXNlLWludGVyc2VjdGlvbi50c3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgdXNlQ2FsbGJhY2ssIHVzZUVmZmVjdCwgdXNlUmVmLCB1c2VTdGF0ZSB9IGZyb20gJ3JlYWN0J1xuaW1wb3J0IHtcbiAgcmVxdWVzdElkbGVDYWxsYmFjayxcbiAgY2FuY2VsSWRsZUNhbGxiYWNrLFxufSBmcm9tICcuL3JlcXVlc3QtaWRsZS1jYWxsYmFjaydcblxudHlwZSBVc2VJbnRlcnNlY3Rpb25PYnNlcnZlckluaXQgPSBQaWNrPFxuICBJbnRlcnNlY3Rpb25PYnNlcnZlckluaXQsXG4gICdyb290TWFyZ2luJyB8ICdyb290J1xuPlxuXG50eXBlIFVzZUludGVyc2VjdGlvbiA9IHsgZGlzYWJsZWQ/OiBib29sZWFuIH0gJiBVc2VJbnRlcnNlY3Rpb25PYnNlcnZlckluaXQgJiB7XG4gICAgcm9vdFJlZj86IFJlYWN0LlJlZk9iamVjdDxIVE1MRWxlbWVudCB8IG51bGw+IHwgbnVsbFxuICB9XG50eXBlIE9ic2VydmVDYWxsYmFjayA9IChpc1Zpc2libGU6IGJvb2xlYW4pID0+IHZvaWRcbnR5cGUgSWRlbnRpZmllciA9IHtcbiAgcm9vdDogRWxlbWVudCB8IERvY3VtZW50IHwgbnVsbFxuICBtYXJnaW46IHN0cmluZ1xufVxudHlwZSBPYnNlcnZlciA9IHtcbiAgaWQ6IElkZW50aWZpZXJcbiAgb2JzZXJ2ZXI6IEludGVyc2VjdGlvbk9ic2VydmVyXG4gIGVsZW1lbnRzOiBNYXA8RWxlbWVudCwgT2JzZXJ2ZUNhbGxiYWNrPlxufVxuXG5jb25zdCBoYXNJbnRlcnNlY3Rpb25PYnNlcnZlciA9IHR5cGVvZiBJbnRlcnNlY3Rpb25PYnNlcnZlciA9PT0gJ2Z1bmN0aW9uJ1xuXG5jb25zdCBvYnNlcnZlcnMgPSBuZXcgTWFwPElkZW50aWZpZXIsIE9ic2VydmVyPigpXG5jb25zdCBpZExpc3Q6IElkZW50aWZpZXJbXSA9IFtdXG5cbmZ1bmN0aW9uIGNyZWF0ZU9ic2VydmVyKG9wdGlvbnM6IFVzZUludGVyc2VjdGlvbk9ic2VydmVySW5pdCk6IE9ic2VydmVyIHtcbiAgY29uc3QgaWQgPSB7XG4gICAgcm9vdDogb3B0aW9ucy5yb290IHx8IG51bGwsXG4gICAgbWFyZ2luOiBvcHRpb25zLnJvb3RNYXJnaW4gfHwgJycsXG4gIH1cbiAgY29uc3QgZXhpc3RpbmcgPSBpZExpc3QuZmluZChcbiAgICAob2JqKSA9PiBvYmoucm9vdCA9PT0gaWQucm9vdCAmJiBvYmoubWFyZ2luID09PSBpZC5tYXJnaW5cbiAgKVxuICBsZXQgaW5zdGFuY2U6IE9ic2VydmVyIHwgdW5kZWZpbmVkXG5cbiAgaWYgKGV4aXN0aW5nKSB7XG4gICAgaW5zdGFuY2UgPSBvYnNlcnZlcnMuZ2V0KGV4aXN0aW5nKVxuICAgIGlmIChpbnN0YW5jZSkge1xuICAgICAgcmV0dXJuIGluc3RhbmNlXG4gICAgfVxuICB9XG5cbiAgY29uc3QgZWxlbWVudHMgPSBuZXcgTWFwPEVsZW1lbnQsIE9ic2VydmVDYWxsYmFjaz4oKVxuICBjb25zdCBvYnNlcnZlciA9IG5ldyBJbnRlcnNlY3Rpb25PYnNlcnZlcigoZW50cmllcykgPT4ge1xuICAgIGVudHJpZXMuZm9yRWFjaCgoZW50cnkpID0+IHtcbiAgICAgIGNvbnN0IGNhbGxiYWNrID0gZWxlbWVudHMuZ2V0KGVudHJ5LnRhcmdldClcbiAgICAgIGNvbnN0IGlzVmlzaWJsZSA9IGVudHJ5LmlzSW50ZXJzZWN0aW5nIHx8IGVudHJ5LmludGVyc2VjdGlvblJhdGlvID4gMFxuICAgICAgaWYgKGNhbGxiYWNrICYmIGlzVmlzaWJsZSkge1xuICAgICAgICBjYWxsYmFjayhpc1Zpc2libGUpXG4gICAgICB9XG4gICAgfSlcbiAgfSwgb3B0aW9ucylcbiAgaW5zdGFuY2UgPSB7XG4gICAgaWQsXG4gICAgb2JzZXJ2ZXIsXG4gICAgZWxlbWVudHMsXG4gIH1cblxuICBpZExpc3QucHVzaChpZClcbiAgb2JzZXJ2ZXJzLnNldChpZCwgaW5zdGFuY2UpXG4gIHJldHVybiBpbnN0YW5jZVxufVxuXG5mdW5jdGlvbiBvYnNlcnZlKFxuICBlbGVtZW50OiBFbGVtZW50LFxuICBjYWxsYmFjazogT2JzZXJ2ZUNhbGxiYWNrLFxuICBvcHRpb25zOiBVc2VJbnRlcnNlY3Rpb25PYnNlcnZlckluaXRcbik6ICgpID0+IHZvaWQge1xuICBjb25zdCB7IGlkLCBvYnNlcnZlciwgZWxlbWVudHMgfSA9IGNyZWF0ZU9ic2VydmVyKG9wdGlvbnMpXG4gIGVsZW1lbnRzLnNldChlbGVtZW50LCBjYWxsYmFjaylcblxuICBvYnNlcnZlci5vYnNlcnZlKGVsZW1lbnQpXG4gIHJldHVybiBmdW5jdGlvbiB1bm9ic2VydmUoKTogdm9pZCB7XG4gICAgZWxlbWVudHMuZGVsZXRlKGVsZW1lbnQpXG4gICAgb2JzZXJ2ZXIudW5vYnNlcnZlKGVsZW1lbnQpXG5cbiAgICAvLyBEZXN0cm95IG9ic2VydmVyIHdoZW4gdGhlcmUncyBub3RoaW5nIGxlZnQgdG8gd2F0Y2g6XG4gICAgaWYgKGVsZW1lbnRzLnNpemUgPT09IDApIHtcbiAgICAgIG9ic2VydmVyLmRpc2Nvbm5lY3QoKVxuICAgICAgb2JzZXJ2ZXJzLmRlbGV0ZShpZClcbiAgICAgIGNvbnN0IGluZGV4ID0gaWRMaXN0LmZpbmRJbmRleChcbiAgICAgICAgKG9iaikgPT4gb2JqLnJvb3QgPT09IGlkLnJvb3QgJiYgb2JqLm1hcmdpbiA9PT0gaWQubWFyZ2luXG4gICAgICApXG4gICAgICBpZiAoaW5kZXggPiAtMSkge1xuICAgICAgICBpZExpc3Quc3BsaWNlKGluZGV4LCAxKVxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gdXNlSW50ZXJzZWN0aW9uPFQgZXh0ZW5kcyBFbGVtZW50Pih7XG4gIHJvb3RSZWYsXG4gIHJvb3RNYXJnaW4sXG4gIGRpc2FibGVkLFxufTogVXNlSW50ZXJzZWN0aW9uKTogWyhlbGVtZW50OiBUIHwgbnVsbCkgPT4gdm9pZCwgYm9vbGVhbiwgKCkgPT4gdm9pZF0ge1xuICBjb25zdCBpc0Rpc2FibGVkOiBib29sZWFuID0gZGlzYWJsZWQgfHwgIWhhc0ludGVyc2VjdGlvbk9ic2VydmVyXG5cbiAgY29uc3QgW3Zpc2libGUsIHNldFZpc2libGVdID0gdXNlU3RhdGUoZmFsc2UpXG4gIGNvbnN0IGVsZW1lbnRSZWYgPSB1c2VSZWY8VCB8IG51bGw+KG51bGwpXG4gIGNvbnN0IHNldEVsZW1lbnQgPSB1c2VDYWxsYmFjaygoZWxlbWVudDogVCB8IG51bGwpID0+IHtcbiAgICBlbGVtZW50UmVmLmN1cnJlbnQgPSBlbGVtZW50XG4gIH0sIFtdKVxuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKGhhc0ludGVyc2VjdGlvbk9ic2VydmVyKSB7XG4gICAgICBpZiAoaXNEaXNhYmxlZCB8fCB2aXNpYmxlKSByZXR1cm5cblxuICAgICAgY29uc3QgZWxlbWVudCA9IGVsZW1lbnRSZWYuY3VycmVudFxuICAgICAgaWYgKGVsZW1lbnQgJiYgZWxlbWVudC50YWdOYW1lKSB7XG4gICAgICAgIGNvbnN0IHVub2JzZXJ2ZSA9IG9ic2VydmUoXG4gICAgICAgICAgZWxlbWVudCxcbiAgICAgICAgICAoaXNWaXNpYmxlKSA9PiBpc1Zpc2libGUgJiYgc2V0VmlzaWJsZShpc1Zpc2libGUpLFxuICAgICAgICAgIHsgcm9vdDogcm9vdFJlZj8uY3VycmVudCwgcm9vdE1hcmdpbiB9XG4gICAgICAgIClcblxuICAgICAgICByZXR1cm4gdW5vYnNlcnZlXG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIGlmICghdmlzaWJsZSkge1xuICAgICAgICBjb25zdCBpZGxlQ2FsbGJhY2sgPSByZXF1ZXN0SWRsZUNhbGxiYWNrKCgpID0+IHNldFZpc2libGUodHJ1ZSkpXG4gICAgICAgIHJldHVybiAoKSA9PiBjYW5jZWxJZGxlQ2FsbGJhY2soaWRsZUNhbGxiYWNrKVxuICAgICAgfVxuICAgIH1cbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgcmVhY3QtaG9va3MvZXhoYXVzdGl2ZS1kZXBzXG4gIH0sIFtpc0Rpc2FibGVkLCByb290TWFyZ2luLCByb290UmVmLCB2aXNpYmxlLCBlbGVtZW50UmVmLmN1cnJlbnRdKVxuXG4gIGNvbnN0IHJlc2V0VmlzaWJsZSA9IHVzZUNhbGxiYWNrKCgpID0+IHtcbiAgICBzZXRWaXNpYmxlKGZhbHNlKVxuICB9LCBbXSlcblxuICByZXR1cm4gW3NldEVsZW1lbnQsIHZpc2libGUsIHJlc2V0VmlzaWJsZV1cbn1cbiJdLCJuYW1lcyI6WyJ1c2VJbnRlcnNlY3Rpb24iLCJoYXNJbnRlcnNlY3Rpb25PYnNlcnZlciIsIkludGVyc2VjdGlvbk9ic2VydmVyIiwib2JzZXJ2ZXJzIiwiTWFwIiwiaWRMaXN0IiwiY3JlYXRlT2JzZXJ2ZXIiLCJvcHRpb25zIiwiaWQiLCJyb290IiwibWFyZ2luIiwicm9vdE1hcmdpbiIsImV4aXN0aW5nIiwiZmluZCIsIm9iaiIsImluc3RhbmNlIiwiZ2V0IiwiZWxlbWVudHMiLCJvYnNlcnZlciIsImVudHJpZXMiLCJmb3JFYWNoIiwiZW50cnkiLCJjYWxsYmFjayIsInRhcmdldCIsImlzVmlzaWJsZSIsImlzSW50ZXJzZWN0aW5nIiwiaW50ZXJzZWN0aW9uUmF0aW8iLCJwdXNoIiwic2V0Iiwib2JzZXJ2ZSIsImVsZW1lbnQiLCJ1bm9ic2VydmUiLCJkZWxldGUiLCJzaXplIiwiZGlzY29ubmVjdCIsImluZGV4IiwiZmluZEluZGV4Iiwic3BsaWNlIiwicm9vdFJlZiIsImRpc2FibGVkIiwiaXNEaXNhYmxlZCIsInZpc2libGUiLCJzZXRWaXNpYmxlIiwidXNlU3RhdGUiLCJlbGVtZW50UmVmIiwidXNlUmVmIiwic2V0RWxlbWVudCIsInVzZUNhbGxiYWNrIiwiY3VycmVudCIsInVzZUVmZmVjdCIsInRhZ05hbWUiLCJpZGxlQ2FsbGJhY2siLCJyZXF1ZXN0SWRsZUNhbGxiYWNrIiwiY2FuY2VsSWRsZUNhbGxiYWNrIiwicmVzZXRWaXNpYmxlIl0sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(pages-dir-node)/./node_modules/next/dist/client/use-intersection.js\n"); - -/***/ }), - -/***/ "(pages-dir-node)/./node_modules/next/dist/client/use-merged-ref.js": -/*!*********************************************************!*\ - !*** ./node_modules/next/dist/client/use-merged-ref.js ***! - \*********************************************************/ -/***/ ((module, exports, __webpack_require__) => { - -"use strict"; -eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"useMergedRef\", ({\n enumerable: true,\n get: function() {\n return useMergedRef;\n }\n}));\nconst _react = __webpack_require__(/*! react */ \"react\");\nfunction useMergedRef(refA, refB) {\n const cleanupA = (0, _react.useRef)(null);\n const cleanupB = (0, _react.useRef)(null);\n // NOTE: In theory, we could skip the wrapping if only one of the refs is non-null.\n // (this happens often if the user doesn't pass a ref to Link/Form/Image)\n // But this can cause us to leak a cleanup-ref into user code (e.g. via ``),\n // and the user might pass that ref into ref-merging library that doesn't support cleanup refs\n // (because it hasn't been updated for React 19)\n // which can then cause things to blow up, because a cleanup-returning ref gets called with `null`.\n // So in practice, it's safer to be defensive and always wrap the ref, even on React 19.\n return (0, _react.useCallback)((current)=>{\n if (current === null) {\n const cleanupFnA = cleanupA.current;\n if (cleanupFnA) {\n cleanupA.current = null;\n cleanupFnA();\n }\n const cleanupFnB = cleanupB.current;\n if (cleanupFnB) {\n cleanupB.current = null;\n cleanupFnB();\n }\n } else {\n if (refA) {\n cleanupA.current = applyRef(refA, current);\n }\n if (refB) {\n cleanupB.current = applyRef(refB, current);\n }\n }\n }, [\n refA,\n refB\n ]);\n}\nfunction applyRef(refA, current) {\n if (typeof refA === 'function') {\n const cleanup = refA(current);\n if (typeof cleanup === 'function') {\n return cleanup;\n } else {\n return ()=>refA(null);\n }\n } else {\n refA.current = current;\n return ()=>{\n refA.current = null;\n };\n }\n}\nif ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=use-merged-ref.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1ub2RlKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvY2xpZW50L3VzZS1tZXJnZWQtcmVmLmpzIiwibWFwcGluZ3MiOiI7Ozs7Z0RBU2dCQTs7O2VBQUFBOzs7bUNBVDhCO0FBU3ZDLFNBQVNBLGFBQ2RDLElBQW1CLEVBQ25CQyxJQUFtQjtJQUVuQixNQUFNQyxXQUFXQyxDQUFBQSxHQUFBQSxPQUFBQSxNQUFBQSxFQUE0QjtJQUM3QyxNQUFNQyxXQUFXRCxDQUFBQSxHQUFBQSxPQUFBQSxNQUFBQSxFQUE0QjtJQUU3QyxtRkFBbUY7SUFDbkYseUVBQXlFO0lBQ3pFLGlHQUFpRztJQUNqRyw4RkFBOEY7SUFDOUYsZ0RBQWdEO0lBQ2hELG1HQUFtRztJQUNuRyx3RkFBd0Y7SUFDeEYsT0FBT0UsQ0FBQUEsR0FBQUEsT0FBQUEsV0FBQUEsRUFDTCxDQUFDQztRQUNDLElBQUlBLFlBQVksTUFBTTtZQUNwQixNQUFNQyxhQUFhTCxTQUFTSSxPQUFPO1lBQ25DLElBQUlDLFlBQVk7Z0JBQ2RMLFNBQVNJLE9BQU8sR0FBRztnQkFDbkJDO1lBQ0Y7WUFDQSxNQUFNQyxhQUFhSixTQUFTRSxPQUFPO1lBQ25DLElBQUlFLFlBQVk7Z0JBQ2RKLFNBQVNFLE9BQU8sR0FBRztnQkFDbkJFO1lBQ0Y7UUFDRixPQUFPO1lBQ0wsSUFBSVIsTUFBTTtnQkFDUkUsU0FBU0ksT0FBTyxHQUFHRyxTQUFTVCxNQUFNTTtZQUNwQztZQUNBLElBQUlMLE1BQU07Z0JBQ1JHLFNBQVNFLE9BQU8sR0FBR0csU0FBU1IsTUFBTUs7WUFDcEM7UUFDRjtJQUNGLEdBQ0E7UUFBQ047UUFBTUM7S0FBSztBQUVoQjtBQUVBLFNBQVNRLFNBQ1BULElBQWdDLEVBQ2hDTSxPQUFpQjtJQUVqQixJQUFJLE9BQU9OLFNBQVMsWUFBWTtRQUM5QixNQUFNVSxVQUFVVixLQUFLTTtRQUNyQixJQUFJLE9BQU9JLFlBQVksWUFBWTtZQUNqQyxPQUFPQTtRQUNULE9BQU87WUFDTCxPQUFPLElBQU1WLEtBQUs7UUFDcEI7SUFDRixPQUFPO1FBQ0xBLEtBQUtNLE9BQU8sR0FBR0E7UUFDZixPQUFPO1lBQ0xOLEtBQUtNLE9BQU8sR0FBRztRQUNqQjtJQUNGO0FBQ0YiLCJzb3VyY2VzIjpbIkQ6XFxzcmNcXGNsaWVudFxcdXNlLW1lcmdlZC1yZWYudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgdXNlQ2FsbGJhY2ssIHVzZVJlZiwgdHlwZSBSZWYgfSBmcm9tICdyZWFjdCdcblxuLy8gVGhpcyBpcyBhIGNvbXBhdGliaWxpdHkgaG9vayB0byBzdXBwb3J0IFJlYWN0IDE4IGFuZCAxOSByZWZzLlxuLy8gSW4gMTksIGEgY2xlYW51cCBmdW5jdGlvbiBmcm9tIHJlZnMgbWF5IGJlIHJldHVybmVkLlxuLy8gSW4gMTgsIHJldHVybmluZyBhIGNsZWFudXAgZnVuY3Rpb24gY3JlYXRlcyBhIHdhcm5pbmcuXG4vLyBTaW5jZSB3ZSB0YWtlIHVzZXJzcGFjZSByZWZzLCB3ZSBkb24ndCBrbm93IGFoZWFkIG9mIHRpbWUgaWYgYSBjbGVhbnVwIGZ1bmN0aW9uIHdpbGwgYmUgcmV0dXJuZWQuXG4vLyBUaGlzIGltcGxlbWVudHMgY2xlYW51cCBmdW5jdGlvbnMgd2l0aCB0aGUgb2xkIGJlaGF2aW9yIGluIDE4LlxuLy8gV2Uga25vdyByZWZzIGFyZSBhbHdheXMgY2FsbGVkIGFsdGVybmF0aW5nIHdpdGggYG51bGxgIGFuZCB0aGVuIGBUYC5cbi8vIFNvIGEgY2FsbCB3aXRoIGBudWxsYCBtZWFucyB3ZSBuZWVkIHRvIGNhbGwgdGhlIHByZXZpb3VzIGNsZWFudXAgZnVuY3Rpb25zLlxuZXhwb3J0IGZ1bmN0aW9uIHVzZU1lcmdlZFJlZjxURWxlbWVudD4oXG4gIHJlZkE6IFJlZjxURWxlbWVudD4sXG4gIHJlZkI6IFJlZjxURWxlbWVudD5cbik6IFJlZjxURWxlbWVudD4ge1xuICBjb25zdCBjbGVhbnVwQSA9IHVzZVJlZjwoKCkgPT4gdm9pZCkgfCBudWxsPihudWxsKVxuICBjb25zdCBjbGVhbnVwQiA9IHVzZVJlZjwoKCkgPT4gdm9pZCkgfCBudWxsPihudWxsKVxuXG4gIC8vIE5PVEU6IEluIHRoZW9yeSwgd2UgY291bGQgc2tpcCB0aGUgd3JhcHBpbmcgaWYgb25seSBvbmUgb2YgdGhlIHJlZnMgaXMgbm9uLW51bGwuXG4gIC8vICh0aGlzIGhhcHBlbnMgb2Z0ZW4gaWYgdGhlIHVzZXIgZG9lc24ndCBwYXNzIGEgcmVmIHRvIExpbmsvRm9ybS9JbWFnZSlcbiAgLy8gQnV0IHRoaXMgY2FuIGNhdXNlIHVzIHRvIGxlYWsgYSBjbGVhbnVwLXJlZiBpbnRvIHVzZXIgY29kZSAoZS5nLiB2aWEgYDxMaW5rIGxlZ2FjeUJlaGF2aW9yPmApLFxuICAvLyBhbmQgdGhlIHVzZXIgbWlnaHQgcGFzcyB0aGF0IHJlZiBpbnRvIHJlZi1tZXJnaW5nIGxpYnJhcnkgdGhhdCBkb2Vzbid0IHN1cHBvcnQgY2xlYW51cCByZWZzXG4gIC8vIChiZWNhdXNlIGl0IGhhc24ndCBiZWVuIHVwZGF0ZWQgZm9yIFJlYWN0IDE5KVxuICAvLyB3aGljaCBjYW4gdGhlbiBjYXVzZSB0aGluZ3MgdG8gYmxvdyB1cCwgYmVjYXVzZSBhIGNsZWFudXAtcmV0dXJuaW5nIHJlZiBnZXRzIGNhbGxlZCB3aXRoIGBudWxsYC5cbiAgLy8gU28gaW4gcHJhY3RpY2UsIGl0J3Mgc2FmZXIgdG8gYmUgZGVmZW5zaXZlIGFuZCBhbHdheXMgd3JhcCB0aGUgcmVmLCBldmVuIG9uIFJlYWN0IDE5LlxuICByZXR1cm4gdXNlQ2FsbGJhY2soXG4gICAgKGN1cnJlbnQ6IFRFbGVtZW50IHwgbnVsbCk6IHZvaWQgPT4ge1xuICAgICAgaWYgKGN1cnJlbnQgPT09IG51bGwpIHtcbiAgICAgICAgY29uc3QgY2xlYW51cEZuQSA9IGNsZWFudXBBLmN1cnJlbnRcbiAgICAgICAgaWYgKGNsZWFudXBGbkEpIHtcbiAgICAgICAgICBjbGVhbnVwQS5jdXJyZW50ID0gbnVsbFxuICAgICAgICAgIGNsZWFudXBGbkEoKVxuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGNsZWFudXBGbkIgPSBjbGVhbnVwQi5jdXJyZW50XG4gICAgICAgIGlmIChjbGVhbnVwRm5CKSB7XG4gICAgICAgICAgY2xlYW51cEIuY3VycmVudCA9IG51bGxcbiAgICAgICAgICBjbGVhbnVwRm5CKClcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgaWYgKHJlZkEpIHtcbiAgICAgICAgICBjbGVhbnVwQS5jdXJyZW50ID0gYXBwbHlSZWYocmVmQSwgY3VycmVudClcbiAgICAgICAgfVxuICAgICAgICBpZiAocmVmQikge1xuICAgICAgICAgIGNsZWFudXBCLmN1cnJlbnQgPSBhcHBseVJlZihyZWZCLCBjdXJyZW50KVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBbcmVmQSwgcmVmQl1cbiAgKVxufVxuXG5mdW5jdGlvbiBhcHBseVJlZjxURWxlbWVudD4oXG4gIHJlZkE6IE5vbk51bGxhYmxlPFJlZjxURWxlbWVudD4+LFxuICBjdXJyZW50OiBURWxlbWVudFxuKSB7XG4gIGlmICh0eXBlb2YgcmVmQSA9PT0gJ2Z1bmN0aW9uJykge1xuICAgIGNvbnN0IGNsZWFudXAgPSByZWZBKGN1cnJlbnQpXG4gICAgaWYgKHR5cGVvZiBjbGVhbnVwID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICByZXR1cm4gY2xlYW51cFxuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gKCkgPT4gcmVmQShudWxsKVxuICAgIH1cbiAgfSBlbHNlIHtcbiAgICByZWZBLmN1cnJlbnQgPSBjdXJyZW50XG4gICAgcmV0dXJuICgpID0+IHtcbiAgICAgIHJlZkEuY3VycmVudCA9IG51bGxcbiAgICB9XG4gIH1cbn1cbiJdLCJuYW1lcyI6WyJ1c2VNZXJnZWRSZWYiLCJyZWZBIiwicmVmQiIsImNsZWFudXBBIiwidXNlUmVmIiwiY2xlYW51cEIiLCJ1c2VDYWxsYmFjayIsImN1cnJlbnQiLCJjbGVhbnVwRm5BIiwiY2xlYW51cEZuQiIsImFwcGx5UmVmIiwiY2xlYW51cCJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(pages-dir-node)/./node_modules/next/dist/client/use-merged-ref.js\n"); - -/***/ }), - -/***/ "(pages-dir-node)/./node_modules/next/dist/compiled/@edge-runtime/cookies/index.js": -/*!************************************************************************!*\ - !*** ./node_modules/next/dist/compiled/@edge-runtime/cookies/index.js ***! - \************************************************************************/ -/***/ ((module) => { - -"use strict"; -eval("\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n// src/index.ts\nvar src_exports = {};\n__export(src_exports, {\n RequestCookies: () => RequestCookies,\n ResponseCookies: () => ResponseCookies,\n parseCookie: () => parseCookie,\n parseSetCookie: () => parseSetCookie,\n stringifyCookie: () => stringifyCookie\n});\nmodule.exports = __toCommonJS(src_exports);\n\n// src/serialize.ts\nfunction stringifyCookie(c) {\n var _a;\n const attrs = [\n \"path\" in c && c.path && `Path=${c.path}`,\n \"expires\" in c && (c.expires || c.expires === 0) && `Expires=${(typeof c.expires === \"number\" ? new Date(c.expires) : c.expires).toUTCString()}`,\n \"maxAge\" in c && typeof c.maxAge === \"number\" && `Max-Age=${c.maxAge}`,\n \"domain\" in c && c.domain && `Domain=${c.domain}`,\n \"secure\" in c && c.secure && \"Secure\",\n \"httpOnly\" in c && c.httpOnly && \"HttpOnly\",\n \"sameSite\" in c && c.sameSite && `SameSite=${c.sameSite}`,\n \"partitioned\" in c && c.partitioned && \"Partitioned\",\n \"priority\" in c && c.priority && `Priority=${c.priority}`\n ].filter(Boolean);\n const stringified = `${c.name}=${encodeURIComponent((_a = c.value) != null ? _a : \"\")}`;\n return attrs.length === 0 ? stringified : `${stringified}; ${attrs.join(\"; \")}`;\n}\nfunction parseCookie(cookie) {\n const map = /* @__PURE__ */ new Map();\n for (const pair of cookie.split(/; */)) {\n if (!pair)\n continue;\n const splitAt = pair.indexOf(\"=\");\n if (splitAt === -1) {\n map.set(pair, \"true\");\n continue;\n }\n const [key, value] = [pair.slice(0, splitAt), pair.slice(splitAt + 1)];\n try {\n map.set(key, decodeURIComponent(value != null ? value : \"true\"));\n } catch {\n }\n }\n return map;\n}\nfunction parseSetCookie(setCookie) {\n if (!setCookie) {\n return void 0;\n }\n const [[name, value], ...attributes] = parseCookie(setCookie);\n const {\n domain,\n expires,\n httponly,\n maxage,\n path,\n samesite,\n secure,\n partitioned,\n priority\n } = Object.fromEntries(\n attributes.map(([key, value2]) => [\n key.toLowerCase().replace(/-/g, \"\"),\n value2\n ])\n );\n const cookie = {\n name,\n value: decodeURIComponent(value),\n domain,\n ...expires && { expires: new Date(expires) },\n ...httponly && { httpOnly: true },\n ...typeof maxage === \"string\" && { maxAge: Number(maxage) },\n path,\n ...samesite && { sameSite: parseSameSite(samesite) },\n ...secure && { secure: true },\n ...priority && { priority: parsePriority(priority) },\n ...partitioned && { partitioned: true }\n };\n return compact(cookie);\n}\nfunction compact(t) {\n const newT = {};\n for (const key in t) {\n if (t[key]) {\n newT[key] = t[key];\n }\n }\n return newT;\n}\nvar SAME_SITE = [\"strict\", \"lax\", \"none\"];\nfunction parseSameSite(string) {\n string = string.toLowerCase();\n return SAME_SITE.includes(string) ? string : void 0;\n}\nvar PRIORITY = [\"low\", \"medium\", \"high\"];\nfunction parsePriority(string) {\n string = string.toLowerCase();\n return PRIORITY.includes(string) ? string : void 0;\n}\nfunction splitCookiesString(cookiesString) {\n if (!cookiesString)\n return [];\n var cookiesStrings = [];\n var pos = 0;\n var start;\n var ch;\n var lastComma;\n var nextStart;\n var cookiesSeparatorFound;\n function skipWhitespace() {\n while (pos < cookiesString.length && /\\s/.test(cookiesString.charAt(pos))) {\n pos += 1;\n }\n return pos < cookiesString.length;\n }\n function notSpecialChar() {\n ch = cookiesString.charAt(pos);\n return ch !== \"=\" && ch !== \";\" && ch !== \",\";\n }\n while (pos < cookiesString.length) {\n start = pos;\n cookiesSeparatorFound = false;\n while (skipWhitespace()) {\n ch = cookiesString.charAt(pos);\n if (ch === \",\") {\n lastComma = pos;\n pos += 1;\n skipWhitespace();\n nextStart = pos;\n while (pos < cookiesString.length && notSpecialChar()) {\n pos += 1;\n }\n if (pos < cookiesString.length && cookiesString.charAt(pos) === \"=\") {\n cookiesSeparatorFound = true;\n pos = nextStart;\n cookiesStrings.push(cookiesString.substring(start, lastComma));\n start = pos;\n } else {\n pos = lastComma + 1;\n }\n } else {\n pos += 1;\n }\n }\n if (!cookiesSeparatorFound || pos >= cookiesString.length) {\n cookiesStrings.push(cookiesString.substring(start, cookiesString.length));\n }\n }\n return cookiesStrings;\n}\n\n// src/request-cookies.ts\nvar RequestCookies = class {\n constructor(requestHeaders) {\n /** @internal */\n this._parsed = /* @__PURE__ */ new Map();\n this._headers = requestHeaders;\n const header = requestHeaders.get(\"cookie\");\n if (header) {\n const parsed = parseCookie(header);\n for (const [name, value] of parsed) {\n this._parsed.set(name, { name, value });\n }\n }\n }\n [Symbol.iterator]() {\n return this._parsed[Symbol.iterator]();\n }\n /**\n * The amount of cookies received from the client\n */\n get size() {\n return this._parsed.size;\n }\n get(...args) {\n const name = typeof args[0] === \"string\" ? args[0] : args[0].name;\n return this._parsed.get(name);\n }\n getAll(...args) {\n var _a;\n const all = Array.from(this._parsed);\n if (!args.length) {\n return all.map(([_, value]) => value);\n }\n const name = typeof args[0] === \"string\" ? args[0] : (_a = args[0]) == null ? void 0 : _a.name;\n return all.filter(([n]) => n === name).map(([_, value]) => value);\n }\n has(name) {\n return this._parsed.has(name);\n }\n set(...args) {\n const [name, value] = args.length === 1 ? [args[0].name, args[0].value] : args;\n const map = this._parsed;\n map.set(name, { name, value });\n this._headers.set(\n \"cookie\",\n Array.from(map).map(([_, value2]) => stringifyCookie(value2)).join(\"; \")\n );\n return this;\n }\n /**\n * Delete the cookies matching the passed name or names in the request.\n */\n delete(names) {\n const map = this._parsed;\n const result = !Array.isArray(names) ? map.delete(names) : names.map((name) => map.delete(name));\n this._headers.set(\n \"cookie\",\n Array.from(map).map(([_, value]) => stringifyCookie(value)).join(\"; \")\n );\n return result;\n }\n /**\n * Delete all the cookies in the cookies in the request.\n */\n clear() {\n this.delete(Array.from(this._parsed.keys()));\n return this;\n }\n /**\n * Format the cookies in the request as a string for logging\n */\n [Symbol.for(\"edge-runtime.inspect.custom\")]() {\n return `RequestCookies ${JSON.stringify(Object.fromEntries(this._parsed))}`;\n }\n toString() {\n return [...this._parsed.values()].map((v) => `${v.name}=${encodeURIComponent(v.value)}`).join(\"; \");\n }\n};\n\n// src/response-cookies.ts\nvar ResponseCookies = class {\n constructor(responseHeaders) {\n /** @internal */\n this._parsed = /* @__PURE__ */ new Map();\n var _a, _b, _c;\n this._headers = responseHeaders;\n const setCookie = (_c = (_b = (_a = responseHeaders.getSetCookie) == null ? void 0 : _a.call(responseHeaders)) != null ? _b : responseHeaders.get(\"set-cookie\")) != null ? _c : [];\n const cookieStrings = Array.isArray(setCookie) ? setCookie : splitCookiesString(setCookie);\n for (const cookieString of cookieStrings) {\n const parsed = parseSetCookie(cookieString);\n if (parsed)\n this._parsed.set(parsed.name, parsed);\n }\n }\n /**\n * {@link https://wicg.github.io/cookie-store/#CookieStore-get CookieStore#get} without the Promise.\n */\n get(...args) {\n const key = typeof args[0] === \"string\" ? args[0] : args[0].name;\n return this._parsed.get(key);\n }\n /**\n * {@link https://wicg.github.io/cookie-store/#CookieStore-getAll CookieStore#getAll} without the Promise.\n */\n getAll(...args) {\n var _a;\n const all = Array.from(this._parsed.values());\n if (!args.length) {\n return all;\n }\n const key = typeof args[0] === \"string\" ? args[0] : (_a = args[0]) == null ? void 0 : _a.name;\n return all.filter((c) => c.name === key);\n }\n has(name) {\n return this._parsed.has(name);\n }\n /**\n * {@link https://wicg.github.io/cookie-store/#CookieStore-set CookieStore#set} without the Promise.\n */\n set(...args) {\n const [name, value, cookie] = args.length === 1 ? [args[0].name, args[0].value, args[0]] : args;\n const map = this._parsed;\n map.set(name, normalizeCookie({ name, value, ...cookie }));\n replace(map, this._headers);\n return this;\n }\n /**\n * {@link https://wicg.github.io/cookie-store/#CookieStore-delete CookieStore#delete} without the Promise.\n */\n delete(...args) {\n const [name, options] = typeof args[0] === \"string\" ? [args[0]] : [args[0].name, args[0]];\n return this.set({ ...options, name, value: \"\", expires: /* @__PURE__ */ new Date(0) });\n }\n [Symbol.for(\"edge-runtime.inspect.custom\")]() {\n return `ResponseCookies ${JSON.stringify(Object.fromEntries(this._parsed))}`;\n }\n toString() {\n return [...this._parsed.values()].map(stringifyCookie).join(\"; \");\n }\n};\nfunction replace(bag, headers) {\n headers.delete(\"set-cookie\");\n for (const [, value] of bag) {\n const serialized = stringifyCookie(value);\n headers.append(\"set-cookie\", serialized);\n }\n}\nfunction normalizeCookie(cookie = { name: \"\", value: \"\" }) {\n if (typeof cookie.expires === \"number\") {\n cookie.expires = new Date(cookie.expires);\n }\n if (cookie.maxAge) {\n cookie.expires = new Date(Date.now() + cookie.maxAge * 1e3);\n }\n if (cookie.path === null || cookie.path === void 0) {\n cookie.path = \"/\";\n }\n return cookie;\n}\n// Annotate the CommonJS export names for ESM import in node:\n0 && (0);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1ub2RlKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvY29tcGlsZWQvQGVkZ2UtcnVudGltZS9jb29raWVzL2luZGV4LmpzIiwibWFwcGluZ3MiOiJBQUFhO0FBQ2I7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsOEJBQThCLGtDQUFrQztBQUNoRTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsNkJBQTZCLDRGQUE0RjtBQUN6SDtBQUNBO0FBQ0E7QUFDQSxvREFBb0Qsa0JBQWtCLGFBQWE7O0FBRW5GO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxDQUFDO0FBQ0Q7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQSxxQ0FBcUMsT0FBTztBQUM1QyxtRUFBbUUsZ0ZBQWdGO0FBQ25KLGdFQUFnRSxTQUFTO0FBQ3pFLDJDQUEyQyxTQUFTO0FBQ3BEO0FBQ0E7QUFDQSxpREFBaUQsV0FBVztBQUM1RDtBQUNBLGlEQUFpRCxXQUFXO0FBQzVEO0FBQ0EseUJBQXlCLE9BQU8sR0FBRyxxREFBcUQ7QUFDeEYsK0NBQStDLGNBQWMsRUFBRSxjQUFjLEdBQUc7QUFDaEY7QUFDQTtBQUNBO0FBQ0EscUNBQXFDO0FBQ3JDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsTUFBTTtBQUNOO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsSUFBSTtBQUNKO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLG9CQUFvQiw0QkFBNEI7QUFDaEQscUJBQXFCLGdCQUFnQjtBQUNyQyx1Q0FBdUMsd0JBQXdCO0FBQy9EO0FBQ0EscUJBQXFCLG1DQUFtQztBQUN4RCxtQkFBbUIsY0FBYztBQUNqQyxxQkFBcUIsbUNBQW1DO0FBQ3hELHdCQUF3QjtBQUN4QjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGtDQUFrQztBQUNsQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFVBQVU7QUFDVjtBQUNBO0FBQ0EsUUFBUTtBQUNSO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGlDQUFpQyxhQUFhO0FBQzlDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esb0JBQW9CLGFBQWE7QUFDakM7QUFDQTtBQUNBLDRFQUE0RTtBQUM1RTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsMEVBQTBFO0FBQzFFO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSw2QkFBNkIsaURBQWlEO0FBQzlFO0FBQ0E7QUFDQSxvREFBb0QsT0FBTyxHQUFHLDRCQUE0QixXQUFXO0FBQ3JHO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxNQUFNLDRFQUE0RTtBQUNsRjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxNQUFNLGtGQUFrRjtBQUN4RjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsTUFBTSw0RUFBNEU7QUFDbEY7QUFDQTtBQUNBO0FBQ0E7QUFDQSxvQ0FBb0Msd0JBQXdCO0FBQzVEO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsTUFBTSxrRkFBa0Y7QUFDeEY7QUFDQTtBQUNBO0FBQ0Esc0JBQXNCLG1FQUFtRTtBQUN6RjtBQUNBO0FBQ0EsOEJBQThCLGlEQUFpRDtBQUMvRTtBQUNBO0FBQ0EsbUVBQW1FO0FBQ25FO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLG9DQUFvQyxxQkFBcUI7QUFDekQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsTUFBTSxDQU1MIiwic291cmNlcyI6WyJEOlxcZG9uZ3l1bi1wcm9qZWN0c1xcdHdvXFxub2RlX21vZHVsZXNcXG5leHRcXGRpc3RcXGNvbXBpbGVkXFxAZWRnZS1ydW50aW1lXFxjb29raWVzXFxpbmRleC5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbnZhciBfX2RlZlByb3AgPSBPYmplY3QuZGVmaW5lUHJvcGVydHk7XG52YXIgX19nZXRPd25Qcm9wRGVzYyA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3I7XG52YXIgX19nZXRPd25Qcm9wTmFtZXMgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcztcbnZhciBfX2hhc093blByb3AgPSBPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5O1xudmFyIF9fZXhwb3J0ID0gKHRhcmdldCwgYWxsKSA9PiB7XG4gIGZvciAodmFyIG5hbWUgaW4gYWxsKVxuICAgIF9fZGVmUHJvcCh0YXJnZXQsIG5hbWUsIHsgZ2V0OiBhbGxbbmFtZV0sIGVudW1lcmFibGU6IHRydWUgfSk7XG59O1xudmFyIF9fY29weVByb3BzID0gKHRvLCBmcm9tLCBleGNlcHQsIGRlc2MpID0+IHtcbiAgaWYgKGZyb20gJiYgdHlwZW9mIGZyb20gPT09IFwib2JqZWN0XCIgfHwgdHlwZW9mIGZyb20gPT09IFwiZnVuY3Rpb25cIikge1xuICAgIGZvciAobGV0IGtleSBvZiBfX2dldE93blByb3BOYW1lcyhmcm9tKSlcbiAgICAgIGlmICghX19oYXNPd25Qcm9wLmNhbGwodG8sIGtleSkgJiYga2V5ICE9PSBleGNlcHQpXG4gICAgICAgIF9fZGVmUHJvcCh0bywga2V5LCB7IGdldDogKCkgPT4gZnJvbVtrZXldLCBlbnVtZXJhYmxlOiAhKGRlc2MgPSBfX2dldE93blByb3BEZXNjKGZyb20sIGtleSkpIHx8IGRlc2MuZW51bWVyYWJsZSB9KTtcbiAgfVxuICByZXR1cm4gdG87XG59O1xudmFyIF9fdG9Db21tb25KUyA9IChtb2QpID0+IF9fY29weVByb3BzKF9fZGVmUHJvcCh7fSwgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSksIG1vZCk7XG5cbi8vIHNyYy9pbmRleC50c1xudmFyIHNyY19leHBvcnRzID0ge307XG5fX2V4cG9ydChzcmNfZXhwb3J0cywge1xuICBSZXF1ZXN0Q29va2llczogKCkgPT4gUmVxdWVzdENvb2tpZXMsXG4gIFJlc3BvbnNlQ29va2llczogKCkgPT4gUmVzcG9uc2VDb29raWVzLFxuICBwYXJzZUNvb2tpZTogKCkgPT4gcGFyc2VDb29raWUsXG4gIHBhcnNlU2V0Q29va2llOiAoKSA9PiBwYXJzZVNldENvb2tpZSxcbiAgc3RyaW5naWZ5Q29va2llOiAoKSA9PiBzdHJpbmdpZnlDb29raWVcbn0pO1xubW9kdWxlLmV4cG9ydHMgPSBfX3RvQ29tbW9uSlMoc3JjX2V4cG9ydHMpO1xuXG4vLyBzcmMvc2VyaWFsaXplLnRzXG5mdW5jdGlvbiBzdHJpbmdpZnlDb29raWUoYykge1xuICB2YXIgX2E7XG4gIGNvbnN0IGF0dHJzID0gW1xuICAgIFwicGF0aFwiIGluIGMgJiYgYy5wYXRoICYmIGBQYXRoPSR7Yy5wYXRofWAsXG4gICAgXCJleHBpcmVzXCIgaW4gYyAmJiAoYy5leHBpcmVzIHx8IGMuZXhwaXJlcyA9PT0gMCkgJiYgYEV4cGlyZXM9JHsodHlwZW9mIGMuZXhwaXJlcyA9PT0gXCJudW1iZXJcIiA/IG5ldyBEYXRlKGMuZXhwaXJlcykgOiBjLmV4cGlyZXMpLnRvVVRDU3RyaW5nKCl9YCxcbiAgICBcIm1heEFnZVwiIGluIGMgJiYgdHlwZW9mIGMubWF4QWdlID09PSBcIm51bWJlclwiICYmIGBNYXgtQWdlPSR7Yy5tYXhBZ2V9YCxcbiAgICBcImRvbWFpblwiIGluIGMgJiYgYy5kb21haW4gJiYgYERvbWFpbj0ke2MuZG9tYWlufWAsXG4gICAgXCJzZWN1cmVcIiBpbiBjICYmIGMuc2VjdXJlICYmIFwiU2VjdXJlXCIsXG4gICAgXCJodHRwT25seVwiIGluIGMgJiYgYy5odHRwT25seSAmJiBcIkh0dHBPbmx5XCIsXG4gICAgXCJzYW1lU2l0ZVwiIGluIGMgJiYgYy5zYW1lU2l0ZSAmJiBgU2FtZVNpdGU9JHtjLnNhbWVTaXRlfWAsXG4gICAgXCJwYXJ0aXRpb25lZFwiIGluIGMgJiYgYy5wYXJ0aXRpb25lZCAmJiBcIlBhcnRpdGlvbmVkXCIsXG4gICAgXCJwcmlvcml0eVwiIGluIGMgJiYgYy5wcmlvcml0eSAmJiBgUHJpb3JpdHk9JHtjLnByaW9yaXR5fWBcbiAgXS5maWx0ZXIoQm9vbGVhbik7XG4gIGNvbnN0IHN0cmluZ2lmaWVkID0gYCR7Yy5uYW1lfT0ke2VuY29kZVVSSUNvbXBvbmVudCgoX2EgPSBjLnZhbHVlKSAhPSBudWxsID8gX2EgOiBcIlwiKX1gO1xuICByZXR1cm4gYXR0cnMubGVuZ3RoID09PSAwID8gc3RyaW5naWZpZWQgOiBgJHtzdHJpbmdpZmllZH07ICR7YXR0cnMuam9pbihcIjsgXCIpfWA7XG59XG5mdW5jdGlvbiBwYXJzZUNvb2tpZShjb29raWUpIHtcbiAgY29uc3QgbWFwID0gLyogQF9fUFVSRV9fICovIG5ldyBNYXAoKTtcbiAgZm9yIChjb25zdCBwYWlyIG9mIGNvb2tpZS5zcGxpdCgvOyAqLykpIHtcbiAgICBpZiAoIXBhaXIpXG4gICAgICBjb250aW51ZTtcbiAgICBjb25zdCBzcGxpdEF0ID0gcGFpci5pbmRleE9mKFwiPVwiKTtcbiAgICBpZiAoc3BsaXRBdCA9PT0gLTEpIHtcbiAgICAgIG1hcC5zZXQocGFpciwgXCJ0cnVlXCIpO1xuICAgICAgY29udGludWU7XG4gICAgfVxuICAgIGNvbnN0IFtrZXksIHZhbHVlXSA9IFtwYWlyLnNsaWNlKDAsIHNwbGl0QXQpLCBwYWlyLnNsaWNlKHNwbGl0QXQgKyAxKV07XG4gICAgdHJ5IHtcbiAgICAgIG1hcC5zZXQoa2V5LCBkZWNvZGVVUklDb21wb25lbnQodmFsdWUgIT0gbnVsbCA/IHZhbHVlIDogXCJ0cnVlXCIpKTtcbiAgICB9IGNhdGNoIHtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIG1hcDtcbn1cbmZ1bmN0aW9uIHBhcnNlU2V0Q29va2llKHNldENvb2tpZSkge1xuICBpZiAoIXNldENvb2tpZSkge1xuICAgIHJldHVybiB2b2lkIDA7XG4gIH1cbiAgY29uc3QgW1tuYW1lLCB2YWx1ZV0sIC4uLmF0dHJpYnV0ZXNdID0gcGFyc2VDb29raWUoc2V0Q29va2llKTtcbiAgY29uc3Qge1xuICAgIGRvbWFpbixcbiAgICBleHBpcmVzLFxuICAgIGh0dHBvbmx5LFxuICAgIG1heGFnZSxcbiAgICBwYXRoLFxuICAgIHNhbWVzaXRlLFxuICAgIHNlY3VyZSxcbiAgICBwYXJ0aXRpb25lZCxcbiAgICBwcmlvcml0eVxuICB9ID0gT2JqZWN0LmZyb21FbnRyaWVzKFxuICAgIGF0dHJpYnV0ZXMubWFwKChba2V5LCB2YWx1ZTJdKSA9PiBbXG4gICAgICBrZXkudG9Mb3dlckNhc2UoKS5yZXBsYWNlKC8tL2csIFwiXCIpLFxuICAgICAgdmFsdWUyXG4gICAgXSlcbiAgKTtcbiAgY29uc3QgY29va2llID0ge1xuICAgIG5hbWUsXG4gICAgdmFsdWU6IGRlY29kZVVSSUNvbXBvbmVudCh2YWx1ZSksXG4gICAgZG9tYWluLFxuICAgIC4uLmV4cGlyZXMgJiYgeyBleHBpcmVzOiBuZXcgRGF0ZShleHBpcmVzKSB9LFxuICAgIC4uLmh0dHBvbmx5ICYmIHsgaHR0cE9ubHk6IHRydWUgfSxcbiAgICAuLi50eXBlb2YgbWF4YWdlID09PSBcInN0cmluZ1wiICYmIHsgbWF4QWdlOiBOdW1iZXIobWF4YWdlKSB9LFxuICAgIHBhdGgsXG4gICAgLi4uc2FtZXNpdGUgJiYgeyBzYW1lU2l0ZTogcGFyc2VTYW1lU2l0ZShzYW1lc2l0ZSkgfSxcbiAgICAuLi5zZWN1cmUgJiYgeyBzZWN1cmU6IHRydWUgfSxcbiAgICAuLi5wcmlvcml0eSAmJiB7IHByaW9yaXR5OiBwYXJzZVByaW9yaXR5KHByaW9yaXR5KSB9LFxuICAgIC4uLnBhcnRpdGlvbmVkICYmIHsgcGFydGl0aW9uZWQ6IHRydWUgfVxuICB9O1xuICByZXR1cm4gY29tcGFjdChjb29raWUpO1xufVxuZnVuY3Rpb24gY29tcGFjdCh0KSB7XG4gIGNvbnN0IG5ld1QgPSB7fTtcbiAgZm9yIChjb25zdCBrZXkgaW4gdCkge1xuICAgIGlmICh0W2tleV0pIHtcbiAgICAgIG5ld1Rba2V5XSA9IHRba2V5XTtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIG5ld1Q7XG59XG52YXIgU0FNRV9TSVRFID0gW1wic3RyaWN0XCIsIFwibGF4XCIsIFwibm9uZVwiXTtcbmZ1bmN0aW9uIHBhcnNlU2FtZVNpdGUoc3RyaW5nKSB7XG4gIHN0cmluZyA9IHN0cmluZy50b0xvd2VyQ2FzZSgpO1xuICByZXR1cm4gU0FNRV9TSVRFLmluY2x1ZGVzKHN0cmluZykgPyBzdHJpbmcgOiB2b2lkIDA7XG59XG52YXIgUFJJT1JJVFkgPSBbXCJsb3dcIiwgXCJtZWRpdW1cIiwgXCJoaWdoXCJdO1xuZnVuY3Rpb24gcGFyc2VQcmlvcml0eShzdHJpbmcpIHtcbiAgc3RyaW5nID0gc3RyaW5nLnRvTG93ZXJDYXNlKCk7XG4gIHJldHVybiBQUklPUklUWS5pbmNsdWRlcyhzdHJpbmcpID8gc3RyaW5nIDogdm9pZCAwO1xufVxuZnVuY3Rpb24gc3BsaXRDb29raWVzU3RyaW5nKGNvb2tpZXNTdHJpbmcpIHtcbiAgaWYgKCFjb29raWVzU3RyaW5nKVxuICAgIHJldHVybiBbXTtcbiAgdmFyIGNvb2tpZXNTdHJpbmdzID0gW107XG4gIHZhciBwb3MgPSAwO1xuICB2YXIgc3RhcnQ7XG4gIHZhciBjaDtcbiAgdmFyIGxhc3RDb21tYTtcbiAgdmFyIG5leHRTdGFydDtcbiAgdmFyIGNvb2tpZXNTZXBhcmF0b3JGb3VuZDtcbiAgZnVuY3Rpb24gc2tpcFdoaXRlc3BhY2UoKSB7XG4gICAgd2hpbGUgKHBvcyA8IGNvb2tpZXNTdHJpbmcubGVuZ3RoICYmIC9cXHMvLnRlc3QoY29va2llc1N0cmluZy5jaGFyQXQocG9zKSkpIHtcbiAgICAgIHBvcyArPSAxO1xuICAgIH1cbiAgICByZXR1cm4gcG9zIDwgY29va2llc1N0cmluZy5sZW5ndGg7XG4gIH1cbiAgZnVuY3Rpb24gbm90U3BlY2lhbENoYXIoKSB7XG4gICAgY2ggPSBjb29raWVzU3RyaW5nLmNoYXJBdChwb3MpO1xuICAgIHJldHVybiBjaCAhPT0gXCI9XCIgJiYgY2ggIT09IFwiO1wiICYmIGNoICE9PSBcIixcIjtcbiAgfVxuICB3aGlsZSAocG9zIDwgY29va2llc1N0cmluZy5sZW5ndGgpIHtcbiAgICBzdGFydCA9IHBvcztcbiAgICBjb29raWVzU2VwYXJhdG9yRm91bmQgPSBmYWxzZTtcbiAgICB3aGlsZSAoc2tpcFdoaXRlc3BhY2UoKSkge1xuICAgICAgY2ggPSBjb29raWVzU3RyaW5nLmNoYXJBdChwb3MpO1xuICAgICAgaWYgKGNoID09PSBcIixcIikge1xuICAgICAgICBsYXN0Q29tbWEgPSBwb3M7XG4gICAgICAgIHBvcyArPSAxO1xuICAgICAgICBza2lwV2hpdGVzcGFjZSgpO1xuICAgICAgICBuZXh0U3RhcnQgPSBwb3M7XG4gICAgICAgIHdoaWxlIChwb3MgPCBjb29raWVzU3RyaW5nLmxlbmd0aCAmJiBub3RTcGVjaWFsQ2hhcigpKSB7XG4gICAgICAgICAgcG9zICs9IDE7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHBvcyA8IGNvb2tpZXNTdHJpbmcubGVuZ3RoICYmIGNvb2tpZXNTdHJpbmcuY2hhckF0KHBvcykgPT09IFwiPVwiKSB7XG4gICAgICAgICAgY29va2llc1NlcGFyYXRvckZvdW5kID0gdHJ1ZTtcbiAgICAgICAgICBwb3MgPSBuZXh0U3RhcnQ7XG4gICAgICAgICAgY29va2llc1N0cmluZ3MucHVzaChjb29raWVzU3RyaW5nLnN1YnN0cmluZyhzdGFydCwgbGFzdENvbW1hKSk7XG4gICAgICAgICAgc3RhcnQgPSBwb3M7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgcG9zID0gbGFzdENvbW1hICsgMTtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcG9zICs9IDE7XG4gICAgICB9XG4gICAgfVxuICAgIGlmICghY29va2llc1NlcGFyYXRvckZvdW5kIHx8IHBvcyA+PSBjb29raWVzU3RyaW5nLmxlbmd0aCkge1xuICAgICAgY29va2llc1N0cmluZ3MucHVzaChjb29raWVzU3RyaW5nLnN1YnN0cmluZyhzdGFydCwgY29va2llc1N0cmluZy5sZW5ndGgpKTtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIGNvb2tpZXNTdHJpbmdzO1xufVxuXG4vLyBzcmMvcmVxdWVzdC1jb29raWVzLnRzXG52YXIgUmVxdWVzdENvb2tpZXMgPSBjbGFzcyB7XG4gIGNvbnN0cnVjdG9yKHJlcXVlc3RIZWFkZXJzKSB7XG4gICAgLyoqIEBpbnRlcm5hbCAqL1xuICAgIHRoaXMuX3BhcnNlZCA9IC8qIEBfX1BVUkVfXyAqLyBuZXcgTWFwKCk7XG4gICAgdGhpcy5faGVhZGVycyA9IHJlcXVlc3RIZWFkZXJzO1xuICAgIGNvbnN0IGhlYWRlciA9IHJlcXVlc3RIZWFkZXJzLmdldChcImNvb2tpZVwiKTtcbiAgICBpZiAoaGVhZGVyKSB7XG4gICAgICBjb25zdCBwYXJzZWQgPSBwYXJzZUNvb2tpZShoZWFkZXIpO1xuICAgICAgZm9yIChjb25zdCBbbmFtZSwgdmFsdWVdIG9mIHBhcnNlZCkge1xuICAgICAgICB0aGlzLl9wYXJzZWQuc2V0KG5hbWUsIHsgbmFtZSwgdmFsdWUgfSk7XG4gICAgICB9XG4gICAgfVxuICB9XG4gIFtTeW1ib2wuaXRlcmF0b3JdKCkge1xuICAgIHJldHVybiB0aGlzLl9wYXJzZWRbU3ltYm9sLml0ZXJhdG9yXSgpO1xuICB9XG4gIC8qKlxuICAgKiBUaGUgYW1vdW50IG9mIGNvb2tpZXMgcmVjZWl2ZWQgZnJvbSB0aGUgY2xpZW50XG4gICAqL1xuICBnZXQgc2l6ZSgpIHtcbiAgICByZXR1cm4gdGhpcy5fcGFyc2VkLnNpemU7XG4gIH1cbiAgZ2V0KC4uLmFyZ3MpIHtcbiAgICBjb25zdCBuYW1lID0gdHlwZW9mIGFyZ3NbMF0gPT09IFwic3RyaW5nXCIgPyBhcmdzWzBdIDogYXJnc1swXS5uYW1lO1xuICAgIHJldHVybiB0aGlzLl9wYXJzZWQuZ2V0KG5hbWUpO1xuICB9XG4gIGdldEFsbCguLi5hcmdzKSB7XG4gICAgdmFyIF9hO1xuICAgIGNvbnN0IGFsbCA9IEFycmF5LmZyb20odGhpcy5fcGFyc2VkKTtcbiAgICBpZiAoIWFyZ3MubGVuZ3RoKSB7XG4gICAgICByZXR1cm4gYWxsLm1hcCgoW18sIHZhbHVlXSkgPT4gdmFsdWUpO1xuICAgIH1cbiAgICBjb25zdCBuYW1lID0gdHlwZW9mIGFyZ3NbMF0gPT09IFwic3RyaW5nXCIgPyBhcmdzWzBdIDogKF9hID0gYXJnc1swXSkgPT0gbnVsbCA/IHZvaWQgMCA6IF9hLm5hbWU7XG4gICAgcmV0dXJuIGFsbC5maWx0ZXIoKFtuXSkgPT4gbiA9PT0gbmFtZSkubWFwKChbXywgdmFsdWVdKSA9PiB2YWx1ZSk7XG4gIH1cbiAgaGFzKG5hbWUpIHtcbiAgICByZXR1cm4gdGhpcy5fcGFyc2VkLmhhcyhuYW1lKTtcbiAgfVxuICBzZXQoLi4uYXJncykge1xuICAgIGNvbnN0IFtuYW1lLCB2YWx1ZV0gPSBhcmdzLmxlbmd0aCA9PT0gMSA/IFthcmdzWzBdLm5hbWUsIGFyZ3NbMF0udmFsdWVdIDogYXJncztcbiAgICBjb25zdCBtYXAgPSB0aGlzLl9wYXJzZWQ7XG4gICAgbWFwLnNldChuYW1lLCB7IG5hbWUsIHZhbHVlIH0pO1xuICAgIHRoaXMuX2hlYWRlcnMuc2V0KFxuICAgICAgXCJjb29raWVcIixcbiAgICAgIEFycmF5LmZyb20obWFwKS5tYXAoKFtfLCB2YWx1ZTJdKSA9PiBzdHJpbmdpZnlDb29raWUodmFsdWUyKSkuam9pbihcIjsgXCIpXG4gICAgKTtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuICAvKipcbiAgICogRGVsZXRlIHRoZSBjb29raWVzIG1hdGNoaW5nIHRoZSBwYXNzZWQgbmFtZSBvciBuYW1lcyBpbiB0aGUgcmVxdWVzdC5cbiAgICovXG4gIGRlbGV0ZShuYW1lcykge1xuICAgIGNvbnN0IG1hcCA9IHRoaXMuX3BhcnNlZDtcbiAgICBjb25zdCByZXN1bHQgPSAhQXJyYXkuaXNBcnJheShuYW1lcykgPyBtYXAuZGVsZXRlKG5hbWVzKSA6IG5hbWVzLm1hcCgobmFtZSkgPT4gbWFwLmRlbGV0ZShuYW1lKSk7XG4gICAgdGhpcy5faGVhZGVycy5zZXQoXG4gICAgICBcImNvb2tpZVwiLFxuICAgICAgQXJyYXkuZnJvbShtYXApLm1hcCgoW18sIHZhbHVlXSkgPT4gc3RyaW5naWZ5Q29va2llKHZhbHVlKSkuam9pbihcIjsgXCIpXG4gICAgKTtcbiAgICByZXR1cm4gcmVzdWx0O1xuICB9XG4gIC8qKlxuICAgKiBEZWxldGUgYWxsIHRoZSBjb29raWVzIGluIHRoZSBjb29raWVzIGluIHRoZSByZXF1ZXN0LlxuICAgKi9cbiAgY2xlYXIoKSB7XG4gICAgdGhpcy5kZWxldGUoQXJyYXkuZnJvbSh0aGlzLl9wYXJzZWQua2V5cygpKSk7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cbiAgLyoqXG4gICAqIEZvcm1hdCB0aGUgY29va2llcyBpbiB0aGUgcmVxdWVzdCBhcyBhIHN0cmluZyBmb3IgbG9nZ2luZ1xuICAgKi9cbiAgW1N5bWJvbC5mb3IoXCJlZGdlLXJ1bnRpbWUuaW5zcGVjdC5jdXN0b21cIildKCkge1xuICAgIHJldHVybiBgUmVxdWVzdENvb2tpZXMgJHtKU09OLnN0cmluZ2lmeShPYmplY3QuZnJvbUVudHJpZXModGhpcy5fcGFyc2VkKSl9YDtcbiAgfVxuICB0b1N0cmluZygpIHtcbiAgICByZXR1cm4gWy4uLnRoaXMuX3BhcnNlZC52YWx1ZXMoKV0ubWFwKCh2KSA9PiBgJHt2Lm5hbWV9PSR7ZW5jb2RlVVJJQ29tcG9uZW50KHYudmFsdWUpfWApLmpvaW4oXCI7IFwiKTtcbiAgfVxufTtcblxuLy8gc3JjL3Jlc3BvbnNlLWNvb2tpZXMudHNcbnZhciBSZXNwb25zZUNvb2tpZXMgPSBjbGFzcyB7XG4gIGNvbnN0cnVjdG9yKHJlc3BvbnNlSGVhZGVycykge1xuICAgIC8qKiBAaW50ZXJuYWwgKi9cbiAgICB0aGlzLl9wYXJzZWQgPSAvKiBAX19QVVJFX18gKi8gbmV3IE1hcCgpO1xuICAgIHZhciBfYSwgX2IsIF9jO1xuICAgIHRoaXMuX2hlYWRlcnMgPSByZXNwb25zZUhlYWRlcnM7XG4gICAgY29uc3Qgc2V0Q29va2llID0gKF9jID0gKF9iID0gKF9hID0gcmVzcG9uc2VIZWFkZXJzLmdldFNldENvb2tpZSkgPT0gbnVsbCA/IHZvaWQgMCA6IF9hLmNhbGwocmVzcG9uc2VIZWFkZXJzKSkgIT0gbnVsbCA/IF9iIDogcmVzcG9uc2VIZWFkZXJzLmdldChcInNldC1jb29raWVcIikpICE9IG51bGwgPyBfYyA6IFtdO1xuICAgIGNvbnN0IGNvb2tpZVN0cmluZ3MgPSBBcnJheS5pc0FycmF5KHNldENvb2tpZSkgPyBzZXRDb29raWUgOiBzcGxpdENvb2tpZXNTdHJpbmcoc2V0Q29va2llKTtcbiAgICBmb3IgKGNvbnN0IGNvb2tpZVN0cmluZyBvZiBjb29raWVTdHJpbmdzKSB7XG4gICAgICBjb25zdCBwYXJzZWQgPSBwYXJzZVNldENvb2tpZShjb29raWVTdHJpbmcpO1xuICAgICAgaWYgKHBhcnNlZClcbiAgICAgICAgdGhpcy5fcGFyc2VkLnNldChwYXJzZWQubmFtZSwgcGFyc2VkKTtcbiAgICB9XG4gIH1cbiAgLyoqXG4gICAqIHtAbGluayBodHRwczovL3dpY2cuZ2l0aHViLmlvL2Nvb2tpZS1zdG9yZS8jQ29va2llU3RvcmUtZ2V0IENvb2tpZVN0b3JlI2dldH0gd2l0aG91dCB0aGUgUHJvbWlzZS5cbiAgICovXG4gIGdldCguLi5hcmdzKSB7XG4gICAgY29uc3Qga2V5ID0gdHlwZW9mIGFyZ3NbMF0gPT09IFwic3RyaW5nXCIgPyBhcmdzWzBdIDogYXJnc1swXS5uYW1lO1xuICAgIHJldHVybiB0aGlzLl9wYXJzZWQuZ2V0KGtleSk7XG4gIH1cbiAgLyoqXG4gICAqIHtAbGluayBodHRwczovL3dpY2cuZ2l0aHViLmlvL2Nvb2tpZS1zdG9yZS8jQ29va2llU3RvcmUtZ2V0QWxsIENvb2tpZVN0b3JlI2dldEFsbH0gd2l0aG91dCB0aGUgUHJvbWlzZS5cbiAgICovXG4gIGdldEFsbCguLi5hcmdzKSB7XG4gICAgdmFyIF9hO1xuICAgIGNvbnN0IGFsbCA9IEFycmF5LmZyb20odGhpcy5fcGFyc2VkLnZhbHVlcygpKTtcbiAgICBpZiAoIWFyZ3MubGVuZ3RoKSB7XG4gICAgICByZXR1cm4gYWxsO1xuICAgIH1cbiAgICBjb25zdCBrZXkgPSB0eXBlb2YgYXJnc1swXSA9PT0gXCJzdHJpbmdcIiA/IGFyZ3NbMF0gOiAoX2EgPSBhcmdzWzBdKSA9PSBudWxsID8gdm9pZCAwIDogX2EubmFtZTtcbiAgICByZXR1cm4gYWxsLmZpbHRlcigoYykgPT4gYy5uYW1lID09PSBrZXkpO1xuICB9XG4gIGhhcyhuYW1lKSB7XG4gICAgcmV0dXJuIHRoaXMuX3BhcnNlZC5oYXMobmFtZSk7XG4gIH1cbiAgLyoqXG4gICAqIHtAbGluayBodHRwczovL3dpY2cuZ2l0aHViLmlvL2Nvb2tpZS1zdG9yZS8jQ29va2llU3RvcmUtc2V0IENvb2tpZVN0b3JlI3NldH0gd2l0aG91dCB0aGUgUHJvbWlzZS5cbiAgICovXG4gIHNldCguLi5hcmdzKSB7XG4gICAgY29uc3QgW25hbWUsIHZhbHVlLCBjb29raWVdID0gYXJncy5sZW5ndGggPT09IDEgPyBbYXJnc1swXS5uYW1lLCBhcmdzWzBdLnZhbHVlLCBhcmdzWzBdXSA6IGFyZ3M7XG4gICAgY29uc3QgbWFwID0gdGhpcy5fcGFyc2VkO1xuICAgIG1hcC5zZXQobmFtZSwgbm9ybWFsaXplQ29va2llKHsgbmFtZSwgdmFsdWUsIC4uLmNvb2tpZSB9KSk7XG4gICAgcmVwbGFjZShtYXAsIHRoaXMuX2hlYWRlcnMpO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG4gIC8qKlxuICAgKiB7QGxpbmsgaHR0cHM6Ly93aWNnLmdpdGh1Yi5pby9jb29raWUtc3RvcmUvI0Nvb2tpZVN0b3JlLWRlbGV0ZSBDb29raWVTdG9yZSNkZWxldGV9IHdpdGhvdXQgdGhlIFByb21pc2UuXG4gICAqL1xuICBkZWxldGUoLi4uYXJncykge1xuICAgIGNvbnN0IFtuYW1lLCBvcHRpb25zXSA9IHR5cGVvZiBhcmdzWzBdID09PSBcInN0cmluZ1wiID8gW2FyZ3NbMF1dIDogW2FyZ3NbMF0ubmFtZSwgYXJnc1swXV07XG4gICAgcmV0dXJuIHRoaXMuc2V0KHsgLi4ub3B0aW9ucywgbmFtZSwgdmFsdWU6IFwiXCIsIGV4cGlyZXM6IC8qIEBfX1BVUkVfXyAqLyBuZXcgRGF0ZSgwKSB9KTtcbiAgfVxuICBbU3ltYm9sLmZvcihcImVkZ2UtcnVudGltZS5pbnNwZWN0LmN1c3RvbVwiKV0oKSB7XG4gICAgcmV0dXJuIGBSZXNwb25zZUNvb2tpZXMgJHtKU09OLnN0cmluZ2lmeShPYmplY3QuZnJvbUVudHJpZXModGhpcy5fcGFyc2VkKSl9YDtcbiAgfVxuICB0b1N0cmluZygpIHtcbiAgICByZXR1cm4gWy4uLnRoaXMuX3BhcnNlZC52YWx1ZXMoKV0ubWFwKHN0cmluZ2lmeUNvb2tpZSkuam9pbihcIjsgXCIpO1xuICB9XG59O1xuZnVuY3Rpb24gcmVwbGFjZShiYWcsIGhlYWRlcnMpIHtcbiAgaGVhZGVycy5kZWxldGUoXCJzZXQtY29va2llXCIpO1xuICBmb3IgKGNvbnN0IFssIHZhbHVlXSBvZiBiYWcpIHtcbiAgICBjb25zdCBzZXJpYWxpemVkID0gc3RyaW5naWZ5Q29va2llKHZhbHVlKTtcbiAgICBoZWFkZXJzLmFwcGVuZChcInNldC1jb29raWVcIiwgc2VyaWFsaXplZCk7XG4gIH1cbn1cbmZ1bmN0aW9uIG5vcm1hbGl6ZUNvb2tpZShjb29raWUgPSB7IG5hbWU6IFwiXCIsIHZhbHVlOiBcIlwiIH0pIHtcbiAgaWYgKHR5cGVvZiBjb29raWUuZXhwaXJlcyA9PT0gXCJudW1iZXJcIikge1xuICAgIGNvb2tpZS5leHBpcmVzID0gbmV3IERhdGUoY29va2llLmV4cGlyZXMpO1xuICB9XG4gIGlmIChjb29raWUubWF4QWdlKSB7XG4gICAgY29va2llLmV4cGlyZXMgPSBuZXcgRGF0ZShEYXRlLm5vdygpICsgY29va2llLm1heEFnZSAqIDFlMyk7XG4gIH1cbiAgaWYgKGNvb2tpZS5wYXRoID09PSBudWxsIHx8IGNvb2tpZS5wYXRoID09PSB2b2lkIDApIHtcbiAgICBjb29raWUucGF0aCA9IFwiL1wiO1xuICB9XG4gIHJldHVybiBjb29raWU7XG59XG4vLyBBbm5vdGF0ZSB0aGUgQ29tbW9uSlMgZXhwb3J0IG5hbWVzIGZvciBFU00gaW1wb3J0IGluIG5vZGU6XG4wICYmIChtb2R1bGUuZXhwb3J0cyA9IHtcbiAgUmVxdWVzdENvb2tpZXMsXG4gIFJlc3BvbnNlQ29va2llcyxcbiAgcGFyc2VDb29raWUsXG4gIHBhcnNlU2V0Q29va2llLFxuICBzdHJpbmdpZnlDb29raWVcbn0pO1xuIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(pages-dir-node)/./node_modules/next/dist/compiled/@edge-runtime/cookies/index.js\n"); - -/***/ }), - -/***/ "(pages-dir-node)/./node_modules/next/dist/compiled/@opentelemetry/api/index.js": -/*!*********************************************************************!*\ - !*** ./node_modules/next/dist/compiled/@opentelemetry/api/index.js ***! - \*********************************************************************/ -/***/ ((module) => { - -eval("(()=>{\"use strict\";var e={491:(e,t,r)=>{Object.defineProperty(t,\"__esModule\",{value:true});t.ContextAPI=void 0;const n=r(223);const a=r(172);const o=r(930);const i=\"context\";const c=new n.NoopContextManager;class ContextAPI{constructor(){}static getInstance(){if(!this._instance){this._instance=new ContextAPI}return this._instance}setGlobalContextManager(e){return(0,a.registerGlobal)(i,e,o.DiagAPI.instance())}active(){return this._getContextManager().active()}with(e,t,r,...n){return this._getContextManager().with(e,t,r,...n)}bind(e,t){return this._getContextManager().bind(e,t)}_getContextManager(){return(0,a.getGlobal)(i)||c}disable(){this._getContextManager().disable();(0,a.unregisterGlobal)(i,o.DiagAPI.instance())}}t.ContextAPI=ContextAPI},930:(e,t,r)=>{Object.defineProperty(t,\"__esModule\",{value:true});t.DiagAPI=void 0;const n=r(56);const a=r(912);const o=r(957);const i=r(172);const c=\"diag\";class DiagAPI{constructor(){function _logProxy(e){return function(...t){const r=(0,i.getGlobal)(\"diag\");if(!r)return;return r[e](...t)}}const e=this;const setLogger=(t,r={logLevel:o.DiagLogLevel.INFO})=>{var n,c,s;if(t===e){const t=new Error(\"Cannot use diag as the logger for itself. Please use a DiagLogger implementation like ConsoleDiagLogger or a custom implementation\");e.error((n=t.stack)!==null&&n!==void 0?n:t.message);return false}if(typeof r===\"number\"){r={logLevel:r}}const u=(0,i.getGlobal)(\"diag\");const l=(0,a.createLogLevelDiagLogger)((c=r.logLevel)!==null&&c!==void 0?c:o.DiagLogLevel.INFO,t);if(u&&!r.suppressOverrideMessage){const e=(s=(new Error).stack)!==null&&s!==void 0?s:\"\";u.warn(`Current logger will be overwritten from ${e}`);l.warn(`Current logger will overwrite one already registered from ${e}`)}return(0,i.registerGlobal)(\"diag\",l,e,true)};e.setLogger=setLogger;e.disable=()=>{(0,i.unregisterGlobal)(c,e)};e.createComponentLogger=e=>new n.DiagComponentLogger(e);e.verbose=_logProxy(\"verbose\");e.debug=_logProxy(\"debug\");e.info=_logProxy(\"info\");e.warn=_logProxy(\"warn\");e.error=_logProxy(\"error\")}static instance(){if(!this._instance){this._instance=new DiagAPI}return this._instance}}t.DiagAPI=DiagAPI},653:(e,t,r)=>{Object.defineProperty(t,\"__esModule\",{value:true});t.MetricsAPI=void 0;const n=r(660);const a=r(172);const o=r(930);const i=\"metrics\";class MetricsAPI{constructor(){}static getInstance(){if(!this._instance){this._instance=new MetricsAPI}return this._instance}setGlobalMeterProvider(e){return(0,a.registerGlobal)(i,e,o.DiagAPI.instance())}getMeterProvider(){return(0,a.getGlobal)(i)||n.NOOP_METER_PROVIDER}getMeter(e,t,r){return this.getMeterProvider().getMeter(e,t,r)}disable(){(0,a.unregisterGlobal)(i,o.DiagAPI.instance())}}t.MetricsAPI=MetricsAPI},181:(e,t,r)=>{Object.defineProperty(t,\"__esModule\",{value:true});t.PropagationAPI=void 0;const n=r(172);const a=r(874);const o=r(194);const i=r(277);const c=r(369);const s=r(930);const u=\"propagation\";const l=new a.NoopTextMapPropagator;class PropagationAPI{constructor(){this.createBaggage=c.createBaggage;this.getBaggage=i.getBaggage;this.getActiveBaggage=i.getActiveBaggage;this.setBaggage=i.setBaggage;this.deleteBaggage=i.deleteBaggage}static getInstance(){if(!this._instance){this._instance=new PropagationAPI}return this._instance}setGlobalPropagator(e){return(0,n.registerGlobal)(u,e,s.DiagAPI.instance())}inject(e,t,r=o.defaultTextMapSetter){return this._getGlobalPropagator().inject(e,t,r)}extract(e,t,r=o.defaultTextMapGetter){return this._getGlobalPropagator().extract(e,t,r)}fields(){return this._getGlobalPropagator().fields()}disable(){(0,n.unregisterGlobal)(u,s.DiagAPI.instance())}_getGlobalPropagator(){return(0,n.getGlobal)(u)||l}}t.PropagationAPI=PropagationAPI},997:(e,t,r)=>{Object.defineProperty(t,\"__esModule\",{value:true});t.TraceAPI=void 0;const n=r(172);const a=r(846);const o=r(139);const i=r(607);const c=r(930);const s=\"trace\";class TraceAPI{constructor(){this._proxyTracerProvider=new a.ProxyTracerProvider;this.wrapSpanContext=o.wrapSpanContext;this.isSpanContextValid=o.isSpanContextValid;this.deleteSpan=i.deleteSpan;this.getSpan=i.getSpan;this.getActiveSpan=i.getActiveSpan;this.getSpanContext=i.getSpanContext;this.setSpan=i.setSpan;this.setSpanContext=i.setSpanContext}static getInstance(){if(!this._instance){this._instance=new TraceAPI}return this._instance}setGlobalTracerProvider(e){const t=(0,n.registerGlobal)(s,this._proxyTracerProvider,c.DiagAPI.instance());if(t){this._proxyTracerProvider.setDelegate(e)}return t}getTracerProvider(){return(0,n.getGlobal)(s)||this._proxyTracerProvider}getTracer(e,t){return this.getTracerProvider().getTracer(e,t)}disable(){(0,n.unregisterGlobal)(s,c.DiagAPI.instance());this._proxyTracerProvider=new a.ProxyTracerProvider}}t.TraceAPI=TraceAPI},277:(e,t,r)=>{Object.defineProperty(t,\"__esModule\",{value:true});t.deleteBaggage=t.setBaggage=t.getActiveBaggage=t.getBaggage=void 0;const n=r(491);const a=r(780);const o=(0,a.createContextKey)(\"OpenTelemetry Baggage Key\");function getBaggage(e){return e.getValue(o)||undefined}t.getBaggage=getBaggage;function getActiveBaggage(){return getBaggage(n.ContextAPI.getInstance().active())}t.getActiveBaggage=getActiveBaggage;function setBaggage(e,t){return e.setValue(o,t)}t.setBaggage=setBaggage;function deleteBaggage(e){return e.deleteValue(o)}t.deleteBaggage=deleteBaggage},993:(e,t)=>{Object.defineProperty(t,\"__esModule\",{value:true});t.BaggageImpl=void 0;class BaggageImpl{constructor(e){this._entries=e?new Map(e):new Map}getEntry(e){const t=this._entries.get(e);if(!t){return undefined}return Object.assign({},t)}getAllEntries(){return Array.from(this._entries.entries()).map((([e,t])=>[e,t]))}setEntry(e,t){const r=new BaggageImpl(this._entries);r._entries.set(e,t);return r}removeEntry(e){const t=new BaggageImpl(this._entries);t._entries.delete(e);return t}removeEntries(...e){const t=new BaggageImpl(this._entries);for(const r of e){t._entries.delete(r)}return t}clear(){return new BaggageImpl}}t.BaggageImpl=BaggageImpl},830:(e,t)=>{Object.defineProperty(t,\"__esModule\",{value:true});t.baggageEntryMetadataSymbol=void 0;t.baggageEntryMetadataSymbol=Symbol(\"BaggageEntryMetadata\")},369:(e,t,r)=>{Object.defineProperty(t,\"__esModule\",{value:true});t.baggageEntryMetadataFromString=t.createBaggage=void 0;const n=r(930);const a=r(993);const o=r(830);const i=n.DiagAPI.instance();function createBaggage(e={}){return new a.BaggageImpl(new Map(Object.entries(e)))}t.createBaggage=createBaggage;function baggageEntryMetadataFromString(e){if(typeof e!==\"string\"){i.error(`Cannot create baggage metadata from unknown type: ${typeof e}`);e=\"\"}return{__TYPE__:o.baggageEntryMetadataSymbol,toString(){return e}}}t.baggageEntryMetadataFromString=baggageEntryMetadataFromString},67:(e,t,r)=>{Object.defineProperty(t,\"__esModule\",{value:true});t.context=void 0;const n=r(491);t.context=n.ContextAPI.getInstance()},223:(e,t,r)=>{Object.defineProperty(t,\"__esModule\",{value:true});t.NoopContextManager=void 0;const n=r(780);class NoopContextManager{active(){return n.ROOT_CONTEXT}with(e,t,r,...n){return t.call(r,...n)}bind(e,t){return t}enable(){return this}disable(){return this}}t.NoopContextManager=NoopContextManager},780:(e,t)=>{Object.defineProperty(t,\"__esModule\",{value:true});t.ROOT_CONTEXT=t.createContextKey=void 0;function createContextKey(e){return Symbol.for(e)}t.createContextKey=createContextKey;class BaseContext{constructor(e){const t=this;t._currentContext=e?new Map(e):new Map;t.getValue=e=>t._currentContext.get(e);t.setValue=(e,r)=>{const n=new BaseContext(t._currentContext);n._currentContext.set(e,r);return n};t.deleteValue=e=>{const r=new BaseContext(t._currentContext);r._currentContext.delete(e);return r}}}t.ROOT_CONTEXT=new BaseContext},506:(e,t,r)=>{Object.defineProperty(t,\"__esModule\",{value:true});t.diag=void 0;const n=r(930);t.diag=n.DiagAPI.instance()},56:(e,t,r)=>{Object.defineProperty(t,\"__esModule\",{value:true});t.DiagComponentLogger=void 0;const n=r(172);class DiagComponentLogger{constructor(e){this._namespace=e.namespace||\"DiagComponentLogger\"}debug(...e){return logProxy(\"debug\",this._namespace,e)}error(...e){return logProxy(\"error\",this._namespace,e)}info(...e){return logProxy(\"info\",this._namespace,e)}warn(...e){return logProxy(\"warn\",this._namespace,e)}verbose(...e){return logProxy(\"verbose\",this._namespace,e)}}t.DiagComponentLogger=DiagComponentLogger;function logProxy(e,t,r){const a=(0,n.getGlobal)(\"diag\");if(!a){return}r.unshift(t);return a[e](...r)}},972:(e,t)=>{Object.defineProperty(t,\"__esModule\",{value:true});t.DiagConsoleLogger=void 0;const r=[{n:\"error\",c:\"error\"},{n:\"warn\",c:\"warn\"},{n:\"info\",c:\"info\"},{n:\"debug\",c:\"debug\"},{n:\"verbose\",c:\"trace\"}];class DiagConsoleLogger{constructor(){function _consoleFunc(e){return function(...t){if(console){let r=console[e];if(typeof r!==\"function\"){r=console.log}if(typeof r===\"function\"){return r.apply(console,t)}}}}for(let e=0;e{Object.defineProperty(t,\"__esModule\",{value:true});t.createLogLevelDiagLogger=void 0;const n=r(957);function createLogLevelDiagLogger(e,t){if(en.DiagLogLevel.ALL){e=n.DiagLogLevel.ALL}t=t||{};function _filterFunc(r,n){const a=t[r];if(typeof a===\"function\"&&e>=n){return a.bind(t)}return function(){}}return{error:_filterFunc(\"error\",n.DiagLogLevel.ERROR),warn:_filterFunc(\"warn\",n.DiagLogLevel.WARN),info:_filterFunc(\"info\",n.DiagLogLevel.INFO),debug:_filterFunc(\"debug\",n.DiagLogLevel.DEBUG),verbose:_filterFunc(\"verbose\",n.DiagLogLevel.VERBOSE)}}t.createLogLevelDiagLogger=createLogLevelDiagLogger},957:(e,t)=>{Object.defineProperty(t,\"__esModule\",{value:true});t.DiagLogLevel=void 0;var r;(function(e){e[e[\"NONE\"]=0]=\"NONE\";e[e[\"ERROR\"]=30]=\"ERROR\";e[e[\"WARN\"]=50]=\"WARN\";e[e[\"INFO\"]=60]=\"INFO\";e[e[\"DEBUG\"]=70]=\"DEBUG\";e[e[\"VERBOSE\"]=80]=\"VERBOSE\";e[e[\"ALL\"]=9999]=\"ALL\"})(r=t.DiagLogLevel||(t.DiagLogLevel={}))},172:(e,t,r)=>{Object.defineProperty(t,\"__esModule\",{value:true});t.unregisterGlobal=t.getGlobal=t.registerGlobal=void 0;const n=r(200);const a=r(521);const o=r(130);const i=a.VERSION.split(\".\")[0];const c=Symbol.for(`opentelemetry.js.api.${i}`);const s=n._globalThis;function registerGlobal(e,t,r,n=false){var o;const i=s[c]=(o=s[c])!==null&&o!==void 0?o:{version:a.VERSION};if(!n&&i[e]){const t=new Error(`@opentelemetry/api: Attempted duplicate registration of API: ${e}`);r.error(t.stack||t.message);return false}if(i.version!==a.VERSION){const t=new Error(`@opentelemetry/api: Registration of version v${i.version} for ${e} does not match previously registered API v${a.VERSION}`);r.error(t.stack||t.message);return false}i[e]=t;r.debug(`@opentelemetry/api: Registered a global for ${e} v${a.VERSION}.`);return true}t.registerGlobal=registerGlobal;function getGlobal(e){var t,r;const n=(t=s[c])===null||t===void 0?void 0:t.version;if(!n||!(0,o.isCompatible)(n)){return}return(r=s[c])===null||r===void 0?void 0:r[e]}t.getGlobal=getGlobal;function unregisterGlobal(e,t){t.debug(`@opentelemetry/api: Unregistering a global for ${e} v${a.VERSION}.`);const r=s[c];if(r){delete r[e]}}t.unregisterGlobal=unregisterGlobal},130:(e,t,r)=>{Object.defineProperty(t,\"__esModule\",{value:true});t.isCompatible=t._makeCompatibilityCheck=void 0;const n=r(521);const a=/^(\\d+)\\.(\\d+)\\.(\\d+)(-(.+))?$/;function _makeCompatibilityCheck(e){const t=new Set([e]);const r=new Set;const n=e.match(a);if(!n){return()=>false}const o={major:+n[1],minor:+n[2],patch:+n[3],prerelease:n[4]};if(o.prerelease!=null){return function isExactmatch(t){return t===e}}function _reject(e){r.add(e);return false}function _accept(e){t.add(e);return true}return function isCompatible(e){if(t.has(e)){return true}if(r.has(e)){return false}const n=e.match(a);if(!n){return _reject(e)}const i={major:+n[1],minor:+n[2],patch:+n[3],prerelease:n[4]};if(i.prerelease!=null){return _reject(e)}if(o.major!==i.major){return _reject(e)}if(o.major===0){if(o.minor===i.minor&&o.patch<=i.patch){return _accept(e)}return _reject(e)}if(o.minor<=i.minor){return _accept(e)}return _reject(e)}}t._makeCompatibilityCheck=_makeCompatibilityCheck;t.isCompatible=_makeCompatibilityCheck(n.VERSION)},886:(e,t,r)=>{Object.defineProperty(t,\"__esModule\",{value:true});t.metrics=void 0;const n=r(653);t.metrics=n.MetricsAPI.getInstance()},901:(e,t)=>{Object.defineProperty(t,\"__esModule\",{value:true});t.ValueType=void 0;var r;(function(e){e[e[\"INT\"]=0]=\"INT\";e[e[\"DOUBLE\"]=1]=\"DOUBLE\"})(r=t.ValueType||(t.ValueType={}))},102:(e,t)=>{Object.defineProperty(t,\"__esModule\",{value:true});t.createNoopMeter=t.NOOP_OBSERVABLE_UP_DOWN_COUNTER_METRIC=t.NOOP_OBSERVABLE_GAUGE_METRIC=t.NOOP_OBSERVABLE_COUNTER_METRIC=t.NOOP_UP_DOWN_COUNTER_METRIC=t.NOOP_HISTOGRAM_METRIC=t.NOOP_COUNTER_METRIC=t.NOOP_METER=t.NoopObservableUpDownCounterMetric=t.NoopObservableGaugeMetric=t.NoopObservableCounterMetric=t.NoopObservableMetric=t.NoopHistogramMetric=t.NoopUpDownCounterMetric=t.NoopCounterMetric=t.NoopMetric=t.NoopMeter=void 0;class NoopMeter{constructor(){}createHistogram(e,r){return t.NOOP_HISTOGRAM_METRIC}createCounter(e,r){return t.NOOP_COUNTER_METRIC}createUpDownCounter(e,r){return t.NOOP_UP_DOWN_COUNTER_METRIC}createObservableGauge(e,r){return t.NOOP_OBSERVABLE_GAUGE_METRIC}createObservableCounter(e,r){return t.NOOP_OBSERVABLE_COUNTER_METRIC}createObservableUpDownCounter(e,r){return t.NOOP_OBSERVABLE_UP_DOWN_COUNTER_METRIC}addBatchObservableCallback(e,t){}removeBatchObservableCallback(e){}}t.NoopMeter=NoopMeter;class NoopMetric{}t.NoopMetric=NoopMetric;class NoopCounterMetric extends NoopMetric{add(e,t){}}t.NoopCounterMetric=NoopCounterMetric;class NoopUpDownCounterMetric extends NoopMetric{add(e,t){}}t.NoopUpDownCounterMetric=NoopUpDownCounterMetric;class NoopHistogramMetric extends NoopMetric{record(e,t){}}t.NoopHistogramMetric=NoopHistogramMetric;class NoopObservableMetric{addCallback(e){}removeCallback(e){}}t.NoopObservableMetric=NoopObservableMetric;class NoopObservableCounterMetric extends NoopObservableMetric{}t.NoopObservableCounterMetric=NoopObservableCounterMetric;class NoopObservableGaugeMetric extends NoopObservableMetric{}t.NoopObservableGaugeMetric=NoopObservableGaugeMetric;class NoopObservableUpDownCounterMetric extends NoopObservableMetric{}t.NoopObservableUpDownCounterMetric=NoopObservableUpDownCounterMetric;t.NOOP_METER=new NoopMeter;t.NOOP_COUNTER_METRIC=new NoopCounterMetric;t.NOOP_HISTOGRAM_METRIC=new NoopHistogramMetric;t.NOOP_UP_DOWN_COUNTER_METRIC=new NoopUpDownCounterMetric;t.NOOP_OBSERVABLE_COUNTER_METRIC=new NoopObservableCounterMetric;t.NOOP_OBSERVABLE_GAUGE_METRIC=new NoopObservableGaugeMetric;t.NOOP_OBSERVABLE_UP_DOWN_COUNTER_METRIC=new NoopObservableUpDownCounterMetric;function createNoopMeter(){return t.NOOP_METER}t.createNoopMeter=createNoopMeter},660:(e,t,r)=>{Object.defineProperty(t,\"__esModule\",{value:true});t.NOOP_METER_PROVIDER=t.NoopMeterProvider=void 0;const n=r(102);class NoopMeterProvider{getMeter(e,t,r){return n.NOOP_METER}}t.NoopMeterProvider=NoopMeterProvider;t.NOOP_METER_PROVIDER=new NoopMeterProvider},200:function(e,t,r){var n=this&&this.__createBinding||(Object.create?function(e,t,r,n){if(n===undefined)n=r;Object.defineProperty(e,n,{enumerable:true,get:function(){return t[r]}})}:function(e,t,r,n){if(n===undefined)n=r;e[n]=t[r]});var a=this&&this.__exportStar||function(e,t){for(var r in e)if(r!==\"default\"&&!Object.prototype.hasOwnProperty.call(t,r))n(t,e,r)};Object.defineProperty(t,\"__esModule\",{value:true});a(r(46),t)},651:(e,t)=>{Object.defineProperty(t,\"__esModule\",{value:true});t._globalThis=void 0;t._globalThis=typeof globalThis===\"object\"?globalThis:global},46:function(e,t,r){var n=this&&this.__createBinding||(Object.create?function(e,t,r,n){if(n===undefined)n=r;Object.defineProperty(e,n,{enumerable:true,get:function(){return t[r]}})}:function(e,t,r,n){if(n===undefined)n=r;e[n]=t[r]});var a=this&&this.__exportStar||function(e,t){for(var r in e)if(r!==\"default\"&&!Object.prototype.hasOwnProperty.call(t,r))n(t,e,r)};Object.defineProperty(t,\"__esModule\",{value:true});a(r(651),t)},939:(e,t,r)=>{Object.defineProperty(t,\"__esModule\",{value:true});t.propagation=void 0;const n=r(181);t.propagation=n.PropagationAPI.getInstance()},874:(e,t)=>{Object.defineProperty(t,\"__esModule\",{value:true});t.NoopTextMapPropagator=void 0;class NoopTextMapPropagator{inject(e,t){}extract(e,t){return e}fields(){return[]}}t.NoopTextMapPropagator=NoopTextMapPropagator},194:(e,t)=>{Object.defineProperty(t,\"__esModule\",{value:true});t.defaultTextMapSetter=t.defaultTextMapGetter=void 0;t.defaultTextMapGetter={get(e,t){if(e==null){return undefined}return e[t]},keys(e){if(e==null){return[]}return Object.keys(e)}};t.defaultTextMapSetter={set(e,t,r){if(e==null){return}e[t]=r}}},845:(e,t,r)=>{Object.defineProperty(t,\"__esModule\",{value:true});t.trace=void 0;const n=r(997);t.trace=n.TraceAPI.getInstance()},403:(e,t,r)=>{Object.defineProperty(t,\"__esModule\",{value:true});t.NonRecordingSpan=void 0;const n=r(476);class NonRecordingSpan{constructor(e=n.INVALID_SPAN_CONTEXT){this._spanContext=e}spanContext(){return this._spanContext}setAttribute(e,t){return this}setAttributes(e){return this}addEvent(e,t){return this}setStatus(e){return this}updateName(e){return this}end(e){}isRecording(){return false}recordException(e,t){}}t.NonRecordingSpan=NonRecordingSpan},614:(e,t,r)=>{Object.defineProperty(t,\"__esModule\",{value:true});t.NoopTracer=void 0;const n=r(491);const a=r(607);const o=r(403);const i=r(139);const c=n.ContextAPI.getInstance();class NoopTracer{startSpan(e,t,r=c.active()){const n=Boolean(t===null||t===void 0?void 0:t.root);if(n){return new o.NonRecordingSpan}const s=r&&(0,a.getSpanContext)(r);if(isSpanContext(s)&&(0,i.isSpanContextValid)(s)){return new o.NonRecordingSpan(s)}else{return new o.NonRecordingSpan}}startActiveSpan(e,t,r,n){let o;let i;let s;if(arguments.length<2){return}else if(arguments.length===2){s=t}else if(arguments.length===3){o=t;s=r}else{o=t;i=r;s=n}const u=i!==null&&i!==void 0?i:c.active();const l=this.startSpan(e,o,u);const g=(0,a.setSpan)(u,l);return c.with(g,s,undefined,l)}}t.NoopTracer=NoopTracer;function isSpanContext(e){return typeof e===\"object\"&&typeof e[\"spanId\"]===\"string\"&&typeof e[\"traceId\"]===\"string\"&&typeof e[\"traceFlags\"]===\"number\"}},124:(e,t,r)=>{Object.defineProperty(t,\"__esModule\",{value:true});t.NoopTracerProvider=void 0;const n=r(614);class NoopTracerProvider{getTracer(e,t,r){return new n.NoopTracer}}t.NoopTracerProvider=NoopTracerProvider},125:(e,t,r)=>{Object.defineProperty(t,\"__esModule\",{value:true});t.ProxyTracer=void 0;const n=r(614);const a=new n.NoopTracer;class ProxyTracer{constructor(e,t,r,n){this._provider=e;this.name=t;this.version=r;this.options=n}startSpan(e,t,r){return this._getTracer().startSpan(e,t,r)}startActiveSpan(e,t,r,n){const a=this._getTracer();return Reflect.apply(a.startActiveSpan,a,arguments)}_getTracer(){if(this._delegate){return this._delegate}const e=this._provider.getDelegateTracer(this.name,this.version,this.options);if(!e){return a}this._delegate=e;return this._delegate}}t.ProxyTracer=ProxyTracer},846:(e,t,r)=>{Object.defineProperty(t,\"__esModule\",{value:true});t.ProxyTracerProvider=void 0;const n=r(125);const a=r(124);const o=new a.NoopTracerProvider;class ProxyTracerProvider{getTracer(e,t,r){var a;return(a=this.getDelegateTracer(e,t,r))!==null&&a!==void 0?a:new n.ProxyTracer(this,e,t,r)}getDelegate(){var e;return(e=this._delegate)!==null&&e!==void 0?e:o}setDelegate(e){this._delegate=e}getDelegateTracer(e,t,r){var n;return(n=this._delegate)===null||n===void 0?void 0:n.getTracer(e,t,r)}}t.ProxyTracerProvider=ProxyTracerProvider},996:(e,t)=>{Object.defineProperty(t,\"__esModule\",{value:true});t.SamplingDecision=void 0;var r;(function(e){e[e[\"NOT_RECORD\"]=0]=\"NOT_RECORD\";e[e[\"RECORD\"]=1]=\"RECORD\";e[e[\"RECORD_AND_SAMPLED\"]=2]=\"RECORD_AND_SAMPLED\"})(r=t.SamplingDecision||(t.SamplingDecision={}))},607:(e,t,r)=>{Object.defineProperty(t,\"__esModule\",{value:true});t.getSpanContext=t.setSpanContext=t.deleteSpan=t.setSpan=t.getActiveSpan=t.getSpan=void 0;const n=r(780);const a=r(403);const o=r(491);const i=(0,n.createContextKey)(\"OpenTelemetry Context Key SPAN\");function getSpan(e){return e.getValue(i)||undefined}t.getSpan=getSpan;function getActiveSpan(){return getSpan(o.ContextAPI.getInstance().active())}t.getActiveSpan=getActiveSpan;function setSpan(e,t){return e.setValue(i,t)}t.setSpan=setSpan;function deleteSpan(e){return e.deleteValue(i)}t.deleteSpan=deleteSpan;function setSpanContext(e,t){return setSpan(e,new a.NonRecordingSpan(t))}t.setSpanContext=setSpanContext;function getSpanContext(e){var t;return(t=getSpan(e))===null||t===void 0?void 0:t.spanContext()}t.getSpanContext=getSpanContext},325:(e,t,r)=>{Object.defineProperty(t,\"__esModule\",{value:true});t.TraceStateImpl=void 0;const n=r(564);const a=32;const o=512;const i=\",\";const c=\"=\";class TraceStateImpl{constructor(e){this._internalState=new Map;if(e)this._parse(e)}set(e,t){const r=this._clone();if(r._internalState.has(e)){r._internalState.delete(e)}r._internalState.set(e,t);return r}unset(e){const t=this._clone();t._internalState.delete(e);return t}get(e){return this._internalState.get(e)}serialize(){return this._keys().reduce(((e,t)=>{e.push(t+c+this.get(t));return e}),[]).join(i)}_parse(e){if(e.length>o)return;this._internalState=e.split(i).reverse().reduce(((e,t)=>{const r=t.trim();const a=r.indexOf(c);if(a!==-1){const o=r.slice(0,a);const i=r.slice(a+1,t.length);if((0,n.validateKey)(o)&&(0,n.validateValue)(i)){e.set(o,i)}else{}}return e}),new Map);if(this._internalState.size>a){this._internalState=new Map(Array.from(this._internalState.entries()).reverse().slice(0,a))}}_keys(){return Array.from(this._internalState.keys()).reverse()}_clone(){const e=new TraceStateImpl;e._internalState=new Map(this._internalState);return e}}t.TraceStateImpl=TraceStateImpl},564:(e,t)=>{Object.defineProperty(t,\"__esModule\",{value:true});t.validateValue=t.validateKey=void 0;const r=\"[_0-9a-z-*/]\";const n=`[a-z]${r}{0,255}`;const a=`[a-z0-9]${r}{0,240}@[a-z]${r}{0,13}`;const o=new RegExp(`^(?:${n}|${a})$`);const i=/^[ -~]{0,255}[!-~]$/;const c=/,|=/;function validateKey(e){return o.test(e)}t.validateKey=validateKey;function validateValue(e){return i.test(e)&&!c.test(e)}t.validateValue=validateValue},98:(e,t,r)=>{Object.defineProperty(t,\"__esModule\",{value:true});t.createTraceState=void 0;const n=r(325);function createTraceState(e){return new n.TraceStateImpl(e)}t.createTraceState=createTraceState},476:(e,t,r)=>{Object.defineProperty(t,\"__esModule\",{value:true});t.INVALID_SPAN_CONTEXT=t.INVALID_TRACEID=t.INVALID_SPANID=void 0;const n=r(475);t.INVALID_SPANID=\"0000000000000000\";t.INVALID_TRACEID=\"00000000000000000000000000000000\";t.INVALID_SPAN_CONTEXT={traceId:t.INVALID_TRACEID,spanId:t.INVALID_SPANID,traceFlags:n.TraceFlags.NONE}},357:(e,t)=>{Object.defineProperty(t,\"__esModule\",{value:true});t.SpanKind=void 0;var r;(function(e){e[e[\"INTERNAL\"]=0]=\"INTERNAL\";e[e[\"SERVER\"]=1]=\"SERVER\";e[e[\"CLIENT\"]=2]=\"CLIENT\";e[e[\"PRODUCER\"]=3]=\"PRODUCER\";e[e[\"CONSUMER\"]=4]=\"CONSUMER\"})(r=t.SpanKind||(t.SpanKind={}))},139:(e,t,r)=>{Object.defineProperty(t,\"__esModule\",{value:true});t.wrapSpanContext=t.isSpanContextValid=t.isValidSpanId=t.isValidTraceId=void 0;const n=r(476);const a=r(403);const o=/^([0-9a-f]{32})$/i;const i=/^[0-9a-f]{16}$/i;function isValidTraceId(e){return o.test(e)&&e!==n.INVALID_TRACEID}t.isValidTraceId=isValidTraceId;function isValidSpanId(e){return i.test(e)&&e!==n.INVALID_SPANID}t.isValidSpanId=isValidSpanId;function isSpanContextValid(e){return isValidTraceId(e.traceId)&&isValidSpanId(e.spanId)}t.isSpanContextValid=isSpanContextValid;function wrapSpanContext(e){return new a.NonRecordingSpan(e)}t.wrapSpanContext=wrapSpanContext},847:(e,t)=>{Object.defineProperty(t,\"__esModule\",{value:true});t.SpanStatusCode=void 0;var r;(function(e){e[e[\"UNSET\"]=0]=\"UNSET\";e[e[\"OK\"]=1]=\"OK\";e[e[\"ERROR\"]=2]=\"ERROR\"})(r=t.SpanStatusCode||(t.SpanStatusCode={}))},475:(e,t)=>{Object.defineProperty(t,\"__esModule\",{value:true});t.TraceFlags=void 0;var r;(function(e){e[e[\"NONE\"]=0]=\"NONE\";e[e[\"SAMPLED\"]=1]=\"SAMPLED\"})(r=t.TraceFlags||(t.TraceFlags={}))},521:(e,t)=>{Object.defineProperty(t,\"__esModule\",{value:true});t.VERSION=void 0;t.VERSION=\"1.6.0\"}};var t={};function __nccwpck_require__(r){var n=t[r];if(n!==undefined){return n.exports}var a=t[r]={exports:{}};var o=true;try{e[r].call(a.exports,a,a.exports,__nccwpck_require__);o=false}finally{if(o)delete t[r]}return a.exports}if(typeof __nccwpck_require__!==\"undefined\")__nccwpck_require__.ab=__dirname+\"/\";var r={};(()=>{var e=r;Object.defineProperty(e,\"__esModule\",{value:true});e.trace=e.propagation=e.metrics=e.diag=e.context=e.INVALID_SPAN_CONTEXT=e.INVALID_TRACEID=e.INVALID_SPANID=e.isValidSpanId=e.isValidTraceId=e.isSpanContextValid=e.createTraceState=e.TraceFlags=e.SpanStatusCode=e.SpanKind=e.SamplingDecision=e.ProxyTracerProvider=e.ProxyTracer=e.defaultTextMapSetter=e.defaultTextMapGetter=e.ValueType=e.createNoopMeter=e.DiagLogLevel=e.DiagConsoleLogger=e.ROOT_CONTEXT=e.createContextKey=e.baggageEntryMetadataFromString=void 0;var t=__nccwpck_require__(369);Object.defineProperty(e,\"baggageEntryMetadataFromString\",{enumerable:true,get:function(){return t.baggageEntryMetadataFromString}});var n=__nccwpck_require__(780);Object.defineProperty(e,\"createContextKey\",{enumerable:true,get:function(){return n.createContextKey}});Object.defineProperty(e,\"ROOT_CONTEXT\",{enumerable:true,get:function(){return n.ROOT_CONTEXT}});var a=__nccwpck_require__(972);Object.defineProperty(e,\"DiagConsoleLogger\",{enumerable:true,get:function(){return a.DiagConsoleLogger}});var o=__nccwpck_require__(957);Object.defineProperty(e,\"DiagLogLevel\",{enumerable:true,get:function(){return o.DiagLogLevel}});var i=__nccwpck_require__(102);Object.defineProperty(e,\"createNoopMeter\",{enumerable:true,get:function(){return i.createNoopMeter}});var c=__nccwpck_require__(901);Object.defineProperty(e,\"ValueType\",{enumerable:true,get:function(){return c.ValueType}});var s=__nccwpck_require__(194);Object.defineProperty(e,\"defaultTextMapGetter\",{enumerable:true,get:function(){return s.defaultTextMapGetter}});Object.defineProperty(e,\"defaultTextMapSetter\",{enumerable:true,get:function(){return s.defaultTextMapSetter}});var u=__nccwpck_require__(125);Object.defineProperty(e,\"ProxyTracer\",{enumerable:true,get:function(){return u.ProxyTracer}});var l=__nccwpck_require__(846);Object.defineProperty(e,\"ProxyTracerProvider\",{enumerable:true,get:function(){return l.ProxyTracerProvider}});var g=__nccwpck_require__(996);Object.defineProperty(e,\"SamplingDecision\",{enumerable:true,get:function(){return g.SamplingDecision}});var p=__nccwpck_require__(357);Object.defineProperty(e,\"SpanKind\",{enumerable:true,get:function(){return p.SpanKind}});var d=__nccwpck_require__(847);Object.defineProperty(e,\"SpanStatusCode\",{enumerable:true,get:function(){return d.SpanStatusCode}});var _=__nccwpck_require__(475);Object.defineProperty(e,\"TraceFlags\",{enumerable:true,get:function(){return _.TraceFlags}});var f=__nccwpck_require__(98);Object.defineProperty(e,\"createTraceState\",{enumerable:true,get:function(){return f.createTraceState}});var b=__nccwpck_require__(139);Object.defineProperty(e,\"isSpanContextValid\",{enumerable:true,get:function(){return b.isSpanContextValid}});Object.defineProperty(e,\"isValidTraceId\",{enumerable:true,get:function(){return b.isValidTraceId}});Object.defineProperty(e,\"isValidSpanId\",{enumerable:true,get:function(){return b.isValidSpanId}});var v=__nccwpck_require__(476);Object.defineProperty(e,\"INVALID_SPANID\",{enumerable:true,get:function(){return v.INVALID_SPANID}});Object.defineProperty(e,\"INVALID_TRACEID\",{enumerable:true,get:function(){return v.INVALID_TRACEID}});Object.defineProperty(e,\"INVALID_SPAN_CONTEXT\",{enumerable:true,get:function(){return v.INVALID_SPAN_CONTEXT}});const O=__nccwpck_require__(67);Object.defineProperty(e,\"context\",{enumerable:true,get:function(){return O.context}});const P=__nccwpck_require__(506);Object.defineProperty(e,\"diag\",{enumerable:true,get:function(){return P.diag}});const N=__nccwpck_require__(886);Object.defineProperty(e,\"metrics\",{enumerable:true,get:function(){return N.metrics}});const S=__nccwpck_require__(939);Object.defineProperty(e,\"propagation\",{enumerable:true,get:function(){return S.propagation}});const C=__nccwpck_require__(845);Object.defineProperty(e,\"trace\",{enumerable:true,get:function(){return C.trace}});e[\"default\"]={context:O.context,diag:P.diag,metrics:N.metrics,propagation:S.propagation,trace:C.trace}})();module.exports=r})();//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1ub2RlKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvY29tcGlsZWQvQG9wZW50ZWxlbWV0cnkvYXBpL2luZGV4LmpzIiwibWFwcGluZ3MiOiJBQUFBLE1BQU0sYUFBYSxPQUFPLGNBQWMsc0NBQXNDLFdBQVcsRUFBRSxvQkFBb0IsZUFBZSxlQUFlLGVBQWUsa0JBQWtCLGlDQUFpQyxpQkFBaUIsZUFBZSxxQkFBcUIsb0JBQW9CLDhCQUE4QixzQkFBc0IsMkJBQTJCLHFEQUFxRCxTQUFTLDBDQUEwQyxpQkFBaUIsa0RBQWtELFVBQVUsMkNBQTJDLHFCQUFxQiw0QkFBNEIsVUFBVSxvQ0FBb0MsZ0RBQWdELHdCQUF3QixlQUFlLHNDQUFzQyxXQUFXLEVBQUUsaUJBQWlCLGNBQWMsZUFBZSxlQUFlLGVBQWUsZUFBZSxjQUFjLGNBQWMsc0JBQXNCLHNCQUFzQixnQ0FBZ0MsYUFBYSxtQkFBbUIsYUFBYSxzQkFBc0IsNkJBQTZCLElBQUksVUFBVSxVQUFVLHdKQUF3SixvREFBb0QsYUFBYSx3QkFBd0IsR0FBRyxZQUFZLGdDQUFnQyxrR0FBa0csa0NBQWtDLHFGQUFxRixrREFBa0QsRUFBRSxHQUFHLG9FQUFvRSxFQUFFLEdBQUcsNkNBQTZDLHNCQUFzQixlQUFlLDZCQUE2Qix3REFBd0QsK0JBQStCLDJCQUEyQix5QkFBeUIseUJBQXlCLDJCQUEyQixrQkFBa0Isb0JBQW9CLDJCQUEyQix1QkFBdUIsa0JBQWtCLGVBQWUsc0NBQXNDLFdBQVcsRUFBRSxvQkFBb0IsZUFBZSxlQUFlLGVBQWUsa0JBQWtCLGlCQUFpQixlQUFlLHFCQUFxQixvQkFBb0IsOEJBQThCLHNCQUFzQiwwQkFBMEIscURBQXFELG1CQUFtQixnREFBZ0QsZ0JBQWdCLCtDQUErQyxVQUFVLGdEQUFnRCx3QkFBd0IsZUFBZSxzQ0FBc0MsV0FBVyxFQUFFLHdCQUF3QixlQUFlLGVBQWUsZUFBZSxlQUFlLGVBQWUsZUFBZSxzQkFBc0Isb0NBQW9DLHFCQUFxQixjQUFjLG1DQUFtQyw2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LCtCQUErQixFQUFFLGdDQUFnQyxtQ0FBbUMsK0JBQStCLGtCQUFrQixFQUFFLGlDQUFpQyxnQ0FBZ0MsK0JBQStCLGVBQWUsRUFBRSxpQ0FBaUMsbUNBQW1DLCtCQUErQixrQkFBa0IsRUFBRSxpQ0FBaUMsdUNBQXVDLCtCQUErQixzQkFBc0IsRUFBRSxpQ0FBaUMsaUNBQWlDLCtCQUErQixnQkFBZ0IsRUFBRSxjQUFjLHlGQUF5RixJQUFJLGlCQUFpQiIsInNvdXJjZXMiOlsiRDpcXGRvbmd5dW4tcHJvamVjdHNcXHR3b1xcbm9kZV9tb2R1bGVzXFxuZXh0XFxkaXN0XFxjb21waWxlZFxcQG9wZW50ZWxlbWV0cnlcXGFwaVxcaW5kZXguanMiXSwic291cmNlc0NvbnRlbnQiOlsiKCgpPT57XCJ1c2Ugc3RyaWN0XCI7dmFyIGU9ezQ5MTooZSx0LHIpPT57T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsXCJfX2VzTW9kdWxlXCIse3ZhbHVlOnRydWV9KTt0LkNvbnRleHRBUEk9dm9pZCAwO2NvbnN0IG49cigyMjMpO2NvbnN0IGE9cigxNzIpO2NvbnN0IG89cig5MzApO2NvbnN0IGk9XCJjb250ZXh0XCI7Y29uc3QgYz1uZXcgbi5Ob29wQ29udGV4dE1hbmFnZXI7Y2xhc3MgQ29udGV4dEFQSXtjb25zdHJ1Y3Rvcigpe31zdGF0aWMgZ2V0SW5zdGFuY2UoKXtpZighdGhpcy5faW5zdGFuY2Upe3RoaXMuX2luc3RhbmNlPW5ldyBDb250ZXh0QVBJfXJldHVybiB0aGlzLl9pbnN0YW5jZX1zZXRHbG9iYWxDb250ZXh0TWFuYWdlcihlKXtyZXR1cm4oMCxhLnJlZ2lzdGVyR2xvYmFsKShpLGUsby5EaWFnQVBJLmluc3RhbmNlKCkpfWFjdGl2ZSgpe3JldHVybiB0aGlzLl9nZXRDb250ZXh0TWFuYWdlcigpLmFjdGl2ZSgpfXdpdGgoZSx0LHIsLi4ubil7cmV0dXJuIHRoaXMuX2dldENvbnRleHRNYW5hZ2VyKCkud2l0aChlLHQsciwuLi5uKX1iaW5kKGUsdCl7cmV0dXJuIHRoaXMuX2dldENvbnRleHRNYW5hZ2VyKCkuYmluZChlLHQpfV9nZXRDb250ZXh0TWFuYWdlcigpe3JldHVybigwLGEuZ2V0R2xvYmFsKShpKXx8Y31kaXNhYmxlKCl7dGhpcy5fZ2V0Q29udGV4dE1hbmFnZXIoKS5kaXNhYmxlKCk7KDAsYS51bnJlZ2lzdGVyR2xvYmFsKShpLG8uRGlhZ0FQSS5pbnN0YW5jZSgpKX19dC5Db250ZXh0QVBJPUNvbnRleHRBUEl9LDkzMDooZSx0LHIpPT57T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsXCJfX2VzTW9kdWxlXCIse3ZhbHVlOnRydWV9KTt0LkRpYWdBUEk9dm9pZCAwO2NvbnN0IG49cig1Nik7Y29uc3QgYT1yKDkxMik7Y29uc3Qgbz1yKDk1Nyk7Y29uc3QgaT1yKDE3Mik7Y29uc3QgYz1cImRpYWdcIjtjbGFzcyBEaWFnQVBJe2NvbnN0cnVjdG9yKCl7ZnVuY3Rpb24gX2xvZ1Byb3h5KGUpe3JldHVybiBmdW5jdGlvbiguLi50KXtjb25zdCByPSgwLGkuZ2V0R2xvYmFsKShcImRpYWdcIik7aWYoIXIpcmV0dXJuO3JldHVybiByW2VdKC4uLnQpfX1jb25zdCBlPXRoaXM7Y29uc3Qgc2V0TG9nZ2VyPSh0LHI9e2xvZ0xldmVsOm8uRGlhZ0xvZ0xldmVsLklORk99KT0+e3ZhciBuLGMscztpZih0PT09ZSl7Y29uc3QgdD1uZXcgRXJyb3IoXCJDYW5ub3QgdXNlIGRpYWcgYXMgdGhlIGxvZ2dlciBmb3IgaXRzZWxmLiBQbGVhc2UgdXNlIGEgRGlhZ0xvZ2dlciBpbXBsZW1lbnRhdGlvbiBsaWtlIENvbnNvbGVEaWFnTG9nZ2VyIG9yIGEgY3VzdG9tIGltcGxlbWVudGF0aW9uXCIpO2UuZXJyb3IoKG49dC5zdGFjaykhPT1udWxsJiZuIT09dm9pZCAwP246dC5tZXNzYWdlKTtyZXR1cm4gZmFsc2V9aWYodHlwZW9mIHI9PT1cIm51bWJlclwiKXtyPXtsb2dMZXZlbDpyfX1jb25zdCB1PSgwLGkuZ2V0R2xvYmFsKShcImRpYWdcIik7Y29uc3QgbD0oMCxhLmNyZWF0ZUxvZ0xldmVsRGlhZ0xvZ2dlcikoKGM9ci5sb2dMZXZlbCkhPT1udWxsJiZjIT09dm9pZCAwP2M6by5EaWFnTG9nTGV2ZWwuSU5GTyx0KTtpZih1JiYhci5zdXBwcmVzc092ZXJyaWRlTWVzc2FnZSl7Y29uc3QgZT0ocz0obmV3IEVycm9yKS5zdGFjaykhPT1udWxsJiZzIT09dm9pZCAwP3M6XCI8ZmFpbGVkIHRvIGdlbmVyYXRlIHN0YWNrdHJhY2U+XCI7dS53YXJuKGBDdXJyZW50IGxvZ2dlciB3aWxsIGJlIG92ZXJ3cml0dGVuIGZyb20gJHtlfWApO2wud2FybihgQ3VycmVudCBsb2dnZXIgd2lsbCBvdmVyd3JpdGUgb25lIGFscmVhZHkgcmVnaXN0ZXJlZCBmcm9tICR7ZX1gKX1yZXR1cm4oMCxpLnJlZ2lzdGVyR2xvYmFsKShcImRpYWdcIixsLGUsdHJ1ZSl9O2Uuc2V0TG9nZ2VyPXNldExvZ2dlcjtlLmRpc2FibGU9KCk9PnsoMCxpLnVucmVnaXN0ZXJHbG9iYWwpKGMsZSl9O2UuY3JlYXRlQ29tcG9uZW50TG9nZ2VyPWU9Pm5ldyBuLkRpYWdDb21wb25lbnRMb2dnZXIoZSk7ZS52ZXJib3NlPV9sb2dQcm94eShcInZlcmJvc2VcIik7ZS5kZWJ1Zz1fbG9nUHJveHkoXCJkZWJ1Z1wiKTtlLmluZm89X2xvZ1Byb3h5KFwiaW5mb1wiKTtlLndhcm49X2xvZ1Byb3h5KFwid2FyblwiKTtlLmVycm9yPV9sb2dQcm94eShcImVycm9yXCIpfXN0YXRpYyBpbnN0YW5jZSgpe2lmKCF0aGlzLl9pbnN0YW5jZSl7dGhpcy5faW5zdGFuY2U9bmV3IERpYWdBUEl9cmV0dXJuIHRoaXMuX2luc3RhbmNlfX10LkRpYWdBUEk9RGlhZ0FQSX0sNjUzOihlLHQscik9PntPYmplY3QuZGVmaW5lUHJvcGVydHkodCxcIl9fZXNNb2R1bGVcIix7dmFsdWU6dHJ1ZX0pO3QuTWV0cmljc0FQST12b2lkIDA7Y29uc3Qgbj1yKDY2MCk7Y29uc3QgYT1yKDE3Mik7Y29uc3Qgbz1yKDkzMCk7Y29uc3QgaT1cIm1ldHJpY3NcIjtjbGFzcyBNZXRyaWNzQVBJe2NvbnN0cnVjdG9yKCl7fXN0YXRpYyBnZXRJbnN0YW5jZSgpe2lmKCF0aGlzLl9pbnN0YW5jZSl7dGhpcy5faW5zdGFuY2U9bmV3IE1ldHJpY3NBUEl9cmV0dXJuIHRoaXMuX2luc3RhbmNlfXNldEdsb2JhbE1ldGVyUHJvdmlkZXIoZSl7cmV0dXJuKDAsYS5yZWdpc3Rlckdsb2JhbCkoaSxlLG8uRGlhZ0FQSS5pbnN0YW5jZSgpKX1nZXRNZXRlclByb3ZpZGVyKCl7cmV0dXJuKDAsYS5nZXRHbG9iYWwpKGkpfHxuLk5PT1BfTUVURVJfUFJPVklERVJ9Z2V0TWV0ZXIoZSx0LHIpe3JldHVybiB0aGlzLmdldE1ldGVyUHJvdmlkZXIoKS5nZXRNZXRlcihlLHQscil9ZGlzYWJsZSgpeygwLGEudW5yZWdpc3Rlckdsb2JhbCkoaSxvLkRpYWdBUEkuaW5zdGFuY2UoKSl9fXQuTWV0cmljc0FQST1NZXRyaWNzQVBJfSwxODE6KGUsdCxyKT0+e09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LFwiX19lc01vZHVsZVwiLHt2YWx1ZTp0cnVlfSk7dC5Qcm9wYWdhdGlvbkFQST12b2lkIDA7Y29uc3Qgbj1yKDE3Mik7Y29uc3QgYT1yKDg3NCk7Y29uc3Qgbz1yKDE5NCk7Y29uc3QgaT1yKDI3Nyk7Y29uc3QgYz1yKDM2OSk7Y29uc3Qgcz1yKDkzMCk7Y29uc3QgdT1cInByb3BhZ2F0aW9uXCI7Y29uc3QgbD1uZXcgYS5Ob29wVGV4dE1hcFByb3BhZ2F0b3I7Y2xhc3MgUHJvcGFnYXRpb25BUEl7Y29uc3RydWN0b3IoKXt0aGlzLmNyZWF0ZUJhZ2dhZ2U9Yy5jcmVhdGVCYWdnYWdlO3RoaXMuZ2V0QmFnZ2FnZT1pLmdldEJhZ2dhZ2U7dGhpcy5nZXRBY3RpdmVCYWdnYWdlPWkuZ2V0QWN0aXZlQmFnZ2FnZTt0aGlzLnNldEJhZ2dhZ2U9aS5zZXRCYWdnYWdlO3RoaXMuZGVsZXRlQmFnZ2FnZT1pLmRlbGV0ZUJhZ2dhZ2V9c3RhdGljIGdldEluc3RhbmNlKCl7aWYoIXRoaXMuX2luc3RhbmNlKXt0aGlzLl9pbnN0YW5jZT1uZXcgUHJvcGFnYXRpb25BUEl9cmV0dXJuIHRoaXMuX2luc3RhbmNlfXNldEdsb2JhbFByb3BhZ2F0b3IoZSl7cmV0dXJuKDAsbi5yZWdpc3Rlckdsb2JhbCkodSxlLHMuRGlhZ0FQSS5pbnN0YW5jZSgpKX1pbmplY3QoZSx0LHI9by5kZWZhdWx0VGV4dE1hcFNldHRlcil7cmV0dXJuIHRoaXMuX2dldEdsb2JhbFByb3BhZ2F0b3IoKS5pbmplY3QoZSx0LHIpfWV4dHJhY3QoZSx0LHI9by5kZWZhdWx0VGV4dE1hcEdldHRlcil7cmV0dXJuIHRoaXMuX2dldEdsb2JhbFByb3BhZ2F0b3IoKS5leHRyYWN0KGUsdCxyKX1maWVsZHMoKXtyZXR1cm4gdGhpcy5fZ2V0R2xvYmFsUHJvcGFnYXRvcigpLmZpZWxkcygpfWRpc2FibGUoKXsoMCxuLnVucmVnaXN0ZXJHbG9iYWwpKHUscy5EaWFnQVBJLmluc3RhbmNlKCkpfV9nZXRHbG9iYWxQcm9wYWdhdG9yKCl7cmV0dXJuKDAsbi5nZXRHbG9iYWwpKHUpfHxsfX10LlByb3BhZ2F0aW9uQVBJPVByb3BhZ2F0aW9uQVBJfSw5OTc6KGUsdCxyKT0+e09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LFwiX19lc01vZHVsZVwiLHt2YWx1ZTp0cnVlfSk7dC5UcmFjZUFQST12b2lkIDA7Y29uc3Qgbj1yKDE3Mik7Y29uc3QgYT1yKDg0Nik7Y29uc3Qgbz1yKDEzOSk7Y29uc3QgaT1yKDYwNyk7Y29uc3QgYz1yKDkzMCk7Y29uc3Qgcz1cInRyYWNlXCI7Y2xhc3MgVHJhY2VBUEl7Y29uc3RydWN0b3IoKXt0aGlzLl9wcm94eVRyYWNlclByb3ZpZGVyPW5ldyBhLlByb3h5VHJhY2VyUHJvdmlkZXI7dGhpcy53cmFwU3BhbkNvbnRleHQ9by53cmFwU3BhbkNvbnRleHQ7dGhpcy5pc1NwYW5Db250ZXh0VmFsaWQ9by5pc1NwYW5Db250ZXh0VmFsaWQ7dGhpcy5kZWxldGVTcGFuPWkuZGVsZXRlU3Bhbjt0aGlzLmdldFNwYW49aS5nZXRTcGFuO3RoaXMuZ2V0QWN0aXZlU3Bhbj1pLmdldEFjdGl2ZVNwYW47dGhpcy5nZXRTcGFuQ29udGV4dD1pLmdldFNwYW5Db250ZXh0O3RoaXMuc2V0U3Bhbj1pLnNldFNwYW47dGhpcy5zZXRTcGFuQ29udGV4dD1pLnNldFNwYW5Db250ZXh0fXN0YXRpYyBnZXRJbnN0YW5jZSgpe2lmKCF0aGlzLl9pbnN0YW5jZSl7dGhpcy5faW5zdGFuY2U9bmV3IFRyYWNlQVBJfXJldHVybiB0aGlzLl9pbnN0YW5jZX1zZXRHbG9iYWxUcmFjZXJQcm92aWRlcihlKXtjb25zdCB0PSgwLG4ucmVnaXN0ZXJHbG9iYWwpKHMsdGhpcy5fcHJveHlUcmFjZXJQcm92aWRlcixjLkRpYWdBUEkuaW5zdGFuY2UoKSk7aWYodCl7dGhpcy5fcHJveHlUcmFjZXJQcm92aWRlci5zZXREZWxlZ2F0ZShlKX1yZXR1cm4gdH1nZXRUcmFjZXJQcm92aWRlcigpe3JldHVybigwLG4uZ2V0R2xvYmFsKShzKXx8dGhpcy5fcHJveHlUcmFjZXJQcm92aWRlcn1nZXRUcmFjZXIoZSx0KXtyZXR1cm4gdGhpcy5nZXRUcmFjZXJQcm92aWRlcigpLmdldFRyYWNlcihlLHQpfWRpc2FibGUoKXsoMCxuLnVucmVnaXN0ZXJHbG9iYWwpKHMsYy5EaWFnQVBJLmluc3RhbmNlKCkpO3RoaXMuX3Byb3h5VHJhY2VyUHJvdmlkZXI9bmV3IGEuUHJveHlUcmFjZXJQcm92aWRlcn19dC5UcmFjZUFQST1UcmFjZUFQSX0sMjc3OihlLHQscik9PntPYmplY3QuZGVmaW5lUHJvcGVydHkodCxcIl9fZXNNb2R1bGVcIix7dmFsdWU6dHJ1ZX0pO3QuZGVsZXRlQmFnZ2FnZT10LnNldEJhZ2dhZ2U9dC5nZXRBY3RpdmVCYWdnYWdlPXQuZ2V0QmFnZ2FnZT12b2lkIDA7Y29uc3Qgbj1yKDQ5MSk7Y29uc3QgYT1yKDc4MCk7Y29uc3Qgbz0oMCxhLmNyZWF0ZUNvbnRleHRLZXkpKFwiT3BlblRlbGVtZXRyeSBCYWdnYWdlIEtleVwiKTtmdW5jdGlvbiBnZXRCYWdnYWdlKGUpe3JldHVybiBlLmdldFZhbHVlKG8pfHx1bmRlZmluZWR9dC5nZXRCYWdnYWdlPWdldEJhZ2dhZ2U7ZnVuY3Rpb24gZ2V0QWN0aXZlQmFnZ2FnZSgpe3JldHVybiBnZXRCYWdnYWdlKG4uQ29udGV4dEFQSS5nZXRJbnN0YW5jZSgpLmFjdGl2ZSgpKX10LmdldEFjdGl2ZUJhZ2dhZ2U9Z2V0QWN0aXZlQmFnZ2FnZTtmdW5jdGlvbiBzZXRCYWdnYWdlKGUsdCl7cmV0dXJuIGUuc2V0VmFsdWUobyx0KX10LnNldEJhZ2dhZ2U9c2V0QmFnZ2FnZTtmdW5jdGlvbiBkZWxldGVCYWdnYWdlKGUpe3JldHVybiBlLmRlbGV0ZVZhbHVlKG8pfXQuZGVsZXRlQmFnZ2FnZT1kZWxldGVCYWdnYWdlfSw5OTM6KGUsdCk9PntPYmplY3QuZGVmaW5lUHJvcGVydHkodCxcIl9fZXNNb2R1bGVcIix7dmFsdWU6dHJ1ZX0pO3QuQmFnZ2FnZUltcGw9dm9pZCAwO2NsYXNzIEJhZ2dhZ2VJbXBse2NvbnN0cnVjdG9yKGUpe3RoaXMuX2VudHJpZXM9ZT9uZXcgTWFwKGUpOm5ldyBNYXB9Z2V0RW50cnkoZSl7Y29uc3QgdD10aGlzLl9lbnRyaWVzLmdldChlKTtpZighdCl7cmV0dXJuIHVuZGVmaW5lZH1yZXR1cm4gT2JqZWN0LmFzc2lnbih7fSx0KX1nZXRBbGxFbnRyaWVzKCl7cmV0dXJuIEFycmF5LmZyb20odGhpcy5fZW50cmllcy5lbnRyaWVzKCkpLm1hcCgoKFtlLHRdKT0+W2UsdF0pKX1zZXRFbnRyeShlLHQpe2NvbnN0IHI9bmV3IEJhZ2dhZ2VJbXBsKHRoaXMuX2VudHJpZXMpO3IuX2VudHJpZXMuc2V0KGUsdCk7cmV0dXJuIHJ9cmVtb3ZlRW50cnkoZSl7Y29uc3QgdD1uZXcgQmFnZ2FnZUltcGwodGhpcy5fZW50cmllcyk7dC5fZW50cmllcy5kZWxldGUoZSk7cmV0dXJuIHR9cmVtb3ZlRW50cmllcyguLi5lKXtjb25zdCB0PW5ldyBCYWdnYWdlSW1wbCh0aGlzLl9lbnRyaWVzKTtmb3IoY29uc3QgciBvZiBlKXt0Ll9lbnRyaWVzLmRlbGV0ZShyKX1yZXR1cm4gdH1jbGVhcigpe3JldHVybiBuZXcgQmFnZ2FnZUltcGx9fXQuQmFnZ2FnZUltcGw9QmFnZ2FnZUltcGx9LDgzMDooZSx0KT0+e09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LFwiX19lc01vZHVsZVwiLHt2YWx1ZTp0cnVlfSk7dC5iYWdnYWdlRW50cnlNZXRhZGF0YVN5bWJvbD12b2lkIDA7dC5iYWdnYWdlRW50cnlNZXRhZGF0YVN5bWJvbD1TeW1ib2woXCJCYWdnYWdlRW50cnlNZXRhZGF0YVwiKX0sMzY5OihlLHQscik9PntPYmplY3QuZGVmaW5lUHJvcGVydHkodCxcIl9fZXNNb2R1bGVcIix7dmFsdWU6dHJ1ZX0pO3QuYmFnZ2FnZUVudHJ5TWV0YWRhdGFGcm9tU3RyaW5nPXQuY3JlYXRlQmFnZ2FnZT12b2lkIDA7Y29uc3Qgbj1yKDkzMCk7Y29uc3QgYT1yKDk5Myk7Y29uc3Qgbz1yKDgzMCk7Y29uc3QgaT1uLkRpYWdBUEkuaW5zdGFuY2UoKTtmdW5jdGlvbiBjcmVhdGVCYWdnYWdlKGU9e30pe3JldHVybiBuZXcgYS5CYWdnYWdlSW1wbChuZXcgTWFwKE9iamVjdC5lbnRyaWVzKGUpKSl9dC5jcmVhdGVCYWdnYWdlPWNyZWF0ZUJhZ2dhZ2U7ZnVuY3Rpb24gYmFnZ2FnZUVudHJ5TWV0YWRhdGFGcm9tU3RyaW5nKGUpe2lmKHR5cGVvZiBlIT09XCJzdHJpbmdcIil7aS5lcnJvcihgQ2Fubm90IGNyZWF0ZSBiYWdnYWdlIG1ldGFkYXRhIGZyb20gdW5rbm93biB0eXBlOiAke3R5cGVvZiBlfWApO2U9XCJcIn1yZXR1cm57X19UWVBFX186by5iYWdnYWdlRW50cnlNZXRhZGF0YVN5bWJvbCx0b1N0cmluZygpe3JldHVybiBlfX19dC5iYWdnYWdlRW50cnlNZXRhZGF0YUZyb21TdHJpbmc9YmFnZ2FnZUVudHJ5TWV0YWRhdGFGcm9tU3RyaW5nfSw2NzooZSx0LHIpPT57T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsXCJfX2VzTW9kdWxlXCIse3ZhbHVlOnRydWV9KTt0LmNvbnRleHQ9dm9pZCAwO2NvbnN0IG49cig0OTEpO3QuY29udGV4dD1uLkNvbnRleHRBUEkuZ2V0SW5zdGFuY2UoKX0sMjIzOihlLHQscik9PntPYmplY3QuZGVmaW5lUHJvcGVydHkodCxcIl9fZXNNb2R1bGVcIix7dmFsdWU6dHJ1ZX0pO3QuTm9vcENvbnRleHRNYW5hZ2VyPXZvaWQgMDtjb25zdCBuPXIoNzgwKTtjbGFzcyBOb29wQ29udGV4dE1hbmFnZXJ7YWN0aXZlKCl7cmV0dXJuIG4uUk9PVF9DT05URVhUfXdpdGgoZSx0LHIsLi4ubil7cmV0dXJuIHQuY2FsbChyLC4uLm4pfWJpbmQoZSx0KXtyZXR1cm4gdH1lbmFibGUoKXtyZXR1cm4gdGhpc31kaXNhYmxlKCl7cmV0dXJuIHRoaXN9fXQuTm9vcENvbnRleHRNYW5hZ2VyPU5vb3BDb250ZXh0TWFuYWdlcn0sNzgwOihlLHQpPT57T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsXCJfX2VzTW9kdWxlXCIse3ZhbHVlOnRydWV9KTt0LlJPT1RfQ09OVEVYVD10LmNyZWF0ZUNvbnRleHRLZXk9dm9pZCAwO2Z1bmN0aW9uIGNyZWF0ZUNvbnRleHRLZXkoZSl7cmV0dXJuIFN5bWJvbC5mb3IoZSl9dC5jcmVhdGVDb250ZXh0S2V5PWNyZWF0ZUNvbnRleHRLZXk7Y2xhc3MgQmFzZUNvbnRleHR7Y29uc3RydWN0b3IoZSl7Y29uc3QgdD10aGlzO3QuX2N1cnJlbnRDb250ZXh0PWU/bmV3IE1hcChlKTpuZXcgTWFwO3QuZ2V0VmFsdWU9ZT0+dC5fY3VycmVudENvbnRleHQuZ2V0KGUpO3Quc2V0VmFsdWU9KGUscik9Pntjb25zdCBuPW5ldyBCYXNlQ29udGV4dCh0Ll9jdXJyZW50Q29udGV4dCk7bi5fY3VycmVudENvbnRleHQuc2V0KGUscik7cmV0dXJuIG59O3QuZGVsZXRlVmFsdWU9ZT0+e2NvbnN0IHI9bmV3IEJhc2VDb250ZXh0KHQuX2N1cnJlbnRDb250ZXh0KTtyLl9jdXJyZW50Q29udGV4dC5kZWxldGUoZSk7cmV0dXJuIHJ9fX10LlJPT1RfQ09OVEVYVD1uZXcgQmFzZUNvbnRleHR9LDUwNjooZSx0LHIpPT57T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsXCJfX2VzTW9kdWxlXCIse3ZhbHVlOnRydWV9KTt0LmRpYWc9dm9pZCAwO2NvbnN0IG49cig5MzApO3QuZGlhZz1uLkRpYWdBUEkuaW5zdGFuY2UoKX0sNTY6KGUsdCxyKT0+e09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LFwiX19lc01vZHVsZVwiLHt2YWx1ZTp0cnVlfSk7dC5EaWFnQ29tcG9uZW50TG9nZ2VyPXZvaWQgMDtjb25zdCBuPXIoMTcyKTtjbGFzcyBEaWFnQ29tcG9uZW50TG9nZ2Vye2NvbnN0cnVjdG9yKGUpe3RoaXMuX25hbWVzcGFjZT1lLm5hbWVzcGFjZXx8XCJEaWFnQ29tcG9uZW50TG9nZ2VyXCJ9ZGVidWcoLi4uZSl7cmV0dXJuIGxvZ1Byb3h5KFwiZGVidWdcIix0aGlzLl9uYW1lc3BhY2UsZSl9ZXJyb3IoLi4uZSl7cmV0dXJuIGxvZ1Byb3h5KFwiZXJyb3JcIix0aGlzLl9uYW1lc3BhY2UsZSl9aW5mbyguLi5lKXtyZXR1cm4gbG9nUHJveHkoXCJpbmZvXCIsdGhpcy5fbmFtZXNwYWNlLGUpfXdhcm4oLi4uZSl7cmV0dXJuIGxvZ1Byb3h5KFwid2FyblwiLHRoaXMuX25hbWVzcGFjZSxlKX12ZXJib3NlKC4uLmUpe3JldHVybiBsb2dQcm94eShcInZlcmJvc2VcIix0aGlzLl9uYW1lc3BhY2UsZSl9fXQuRGlhZ0NvbXBvbmVudExvZ2dlcj1EaWFnQ29tcG9uZW50TG9nZ2VyO2Z1bmN0aW9uIGxvZ1Byb3h5KGUsdCxyKXtjb25zdCBhPSgwLG4uZ2V0R2xvYmFsKShcImRpYWdcIik7aWYoIWEpe3JldHVybn1yLnVuc2hpZnQodCk7cmV0dXJuIGFbZV0oLi4ucil9fSw5NzI6KGUsdCk9PntPYmplY3QuZGVmaW5lUHJvcGVydHkodCxcIl9fZXNNb2R1bGVcIix7dmFsdWU6dHJ1ZX0pO3QuRGlhZ0NvbnNvbGVMb2dnZXI9dm9pZCAwO2NvbnN0IHI9W3tuOlwiZXJyb3JcIixjOlwiZXJyb3JcIn0se246XCJ3YXJuXCIsYzpcIndhcm5cIn0se246XCJpbmZvXCIsYzpcImluZm9cIn0se246XCJkZWJ1Z1wiLGM6XCJkZWJ1Z1wifSx7bjpcInZlcmJvc2VcIixjOlwidHJhY2VcIn1dO2NsYXNzIERpYWdDb25zb2xlTG9nZ2Vye2NvbnN0cnVjdG9yKCl7ZnVuY3Rpb24gX2NvbnNvbGVGdW5jKGUpe3JldHVybiBmdW5jdGlvbiguLi50KXtpZihjb25zb2xlKXtsZXQgcj1jb25zb2xlW2VdO2lmKHR5cGVvZiByIT09XCJmdW5jdGlvblwiKXtyPWNvbnNvbGUubG9nfWlmKHR5cGVvZiByPT09XCJmdW5jdGlvblwiKXtyZXR1cm4gci5hcHBseShjb25zb2xlLHQpfX19fWZvcihsZXQgZT0wO2U8ci5sZW5ndGg7ZSsrKXt0aGlzW3JbZV0ubl09X2NvbnNvbGVGdW5jKHJbZV0uYyl9fX10LkRpYWdDb25zb2xlTG9nZ2VyPURpYWdDb25zb2xlTG9nZ2VyfSw5MTI6KGUsdCxyKT0+e09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LFwiX19lc01vZHVsZVwiLHt2YWx1ZTp0cnVlfSk7dC5jcmVhdGVMb2dMZXZlbERpYWdMb2dnZXI9dm9pZCAwO2NvbnN0IG49cig5NTcpO2Z1bmN0aW9uIGNyZWF0ZUxvZ0xldmVsRGlhZ0xvZ2dlcihlLHQpe2lmKGU8bi5EaWFnTG9nTGV2ZWwuTk9ORSl7ZT1uLkRpYWdMb2dMZXZlbC5OT05FfWVsc2UgaWYoZT5uLkRpYWdMb2dMZXZlbC5BTEwpe2U9bi5EaWFnTG9nTGV2ZWwuQUxMfXQ9dHx8e307ZnVuY3Rpb24gX2ZpbHRlckZ1bmMocixuKXtjb25zdCBhPXRbcl07aWYodHlwZW9mIGE9PT1cImZ1bmN0aW9uXCImJmU+PW4pe3JldHVybiBhLmJpbmQodCl9cmV0dXJuIGZ1bmN0aW9uKCl7fX1yZXR1cm57ZXJyb3I6X2ZpbHRlckZ1bmMoXCJlcnJvclwiLG4uRGlhZ0xvZ0xldmVsLkVSUk9SKSx3YXJuOl9maWx0ZXJGdW5jKFwid2FyblwiLG4uRGlhZ0xvZ0xldmVsLldBUk4pLGluZm86X2ZpbHRlckZ1bmMoXCJpbmZvXCIsbi5EaWFnTG9nTGV2ZWwuSU5GTyksZGVidWc6X2ZpbHRlckZ1bmMoXCJkZWJ1Z1wiLG4uRGlhZ0xvZ0xldmVsLkRFQlVHKSx2ZXJib3NlOl9maWx0ZXJGdW5jKFwidmVyYm9zZVwiLG4uRGlhZ0xvZ0xldmVsLlZFUkJPU0UpfX10LmNyZWF0ZUxvZ0xldmVsRGlhZ0xvZ2dlcj1jcmVhdGVMb2dMZXZlbERpYWdMb2dnZXJ9LDk1NzooZSx0KT0+e09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LFwiX19lc01vZHVsZVwiLHt2YWx1ZTp0cnVlfSk7dC5EaWFnTG9nTGV2ZWw9dm9pZCAwO3ZhciByOyhmdW5jdGlvbihlKXtlW2VbXCJOT05FXCJdPTBdPVwiTk9ORVwiO2VbZVtcIkVSUk9SXCJdPTMwXT1cIkVSUk9SXCI7ZVtlW1wiV0FSTlwiXT01MF09XCJXQVJOXCI7ZVtlW1wiSU5GT1wiXT02MF09XCJJTkZPXCI7ZVtlW1wiREVCVUdcIl09NzBdPVwiREVCVUdcIjtlW2VbXCJWRVJCT1NFXCJdPTgwXT1cIlZFUkJPU0VcIjtlW2VbXCJBTExcIl09OTk5OV09XCJBTExcIn0pKHI9dC5EaWFnTG9nTGV2ZWx8fCh0LkRpYWdMb2dMZXZlbD17fSkpfSwxNzI6KGUsdCxyKT0+e09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LFwiX19lc01vZHVsZVwiLHt2YWx1ZTp0cnVlfSk7dC51bnJlZ2lzdGVyR2xvYmFsPXQuZ2V0R2xvYmFsPXQucmVnaXN0ZXJHbG9iYWw9dm9pZCAwO2NvbnN0IG49cigyMDApO2NvbnN0IGE9cig1MjEpO2NvbnN0IG89cigxMzApO2NvbnN0IGk9YS5WRVJTSU9OLnNwbGl0KFwiLlwiKVswXTtjb25zdCBjPVN5bWJvbC5mb3IoYG9wZW50ZWxlbWV0cnkuanMuYXBpLiR7aX1gKTtjb25zdCBzPW4uX2dsb2JhbFRoaXM7ZnVuY3Rpb24gcmVnaXN0ZXJHbG9iYWwoZSx0LHIsbj1mYWxzZSl7dmFyIG87Y29uc3QgaT1zW2NdPShvPXNbY10pIT09bnVsbCYmbyE9PXZvaWQgMD9vOnt2ZXJzaW9uOmEuVkVSU0lPTn07aWYoIW4mJmlbZV0pe2NvbnN0IHQ9bmV3IEVycm9yKGBAb3BlbnRlbGVtZXRyeS9hcGk6IEF0dGVtcHRlZCBkdXBsaWNhdGUgcmVnaXN0cmF0aW9uIG9mIEFQSTogJHtlfWApO3IuZXJyb3IodC5zdGFja3x8dC5tZXNzYWdlKTtyZXR1cm4gZmFsc2V9aWYoaS52ZXJzaW9uIT09YS5WRVJTSU9OKXtjb25zdCB0PW5ldyBFcnJvcihgQG9wZW50ZWxlbWV0cnkvYXBpOiBSZWdpc3RyYXRpb24gb2YgdmVyc2lvbiB2JHtpLnZlcnNpb259IGZvciAke2V9IGRvZXMgbm90IG1hdGNoIHByZXZpb3VzbHkgcmVnaXN0ZXJlZCBBUEkgdiR7YS5WRVJTSU9OfWApO3IuZXJyb3IodC5zdGFja3x8dC5tZXNzYWdlKTtyZXR1cm4gZmFsc2V9aVtlXT10O3IuZGVidWcoYEBvcGVudGVsZW1ldHJ5L2FwaTogUmVnaXN0ZXJlZCBhIGdsb2JhbCBmb3IgJHtlfSB2JHthLlZFUlNJT059LmApO3JldHVybiB0cnVlfXQucmVnaXN0ZXJHbG9iYWw9cmVnaXN0ZXJHbG9iYWw7ZnVuY3Rpb24gZ2V0R2xvYmFsKGUpe3ZhciB0LHI7Y29uc3Qgbj0odD1zW2NdKT09PW51bGx8fHQ9PT12b2lkIDA/dm9pZCAwOnQudmVyc2lvbjtpZighbnx8ISgwLG8uaXNDb21wYXRpYmxlKShuKSl7cmV0dXJufXJldHVybihyPXNbY10pPT09bnVsbHx8cj09PXZvaWQgMD92b2lkIDA6cltlXX10LmdldEdsb2JhbD1nZXRHbG9iYWw7ZnVuY3Rpb24gdW5yZWdpc3Rlckdsb2JhbChlLHQpe3QuZGVidWcoYEBvcGVudGVsZW1ldHJ5L2FwaTogVW5yZWdpc3RlcmluZyBhIGdsb2JhbCBmb3IgJHtlfSB2JHthLlZFUlNJT059LmApO2NvbnN0IHI9c1tjXTtpZihyKXtkZWxldGUgcltlXX19dC51bnJlZ2lzdGVyR2xvYmFsPXVucmVnaXN0ZXJHbG9iYWx9LDEzMDooZSx0LHIpPT57T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsXCJfX2VzTW9kdWxlXCIse3ZhbHVlOnRydWV9KTt0LmlzQ29tcGF0aWJsZT10Ll9tYWtlQ29tcGF0aWJpbGl0eUNoZWNrPXZvaWQgMDtjb25zdCBuPXIoNTIxKTtjb25zdCBhPS9eKFxcZCspXFwuKFxcZCspXFwuKFxcZCspKC0oLispKT8kLztmdW5jdGlvbiBfbWFrZUNvbXBhdGliaWxpdHlDaGVjayhlKXtjb25zdCB0PW5ldyBTZXQoW2VdKTtjb25zdCByPW5ldyBTZXQ7Y29uc3Qgbj1lLm1hdGNoKGEpO2lmKCFuKXtyZXR1cm4oKT0+ZmFsc2V9Y29uc3Qgbz17bWFqb3I6K25bMV0sbWlub3I6K25bMl0scGF0Y2g6K25bM10scHJlcmVsZWFzZTpuWzRdfTtpZihvLnByZXJlbGVhc2UhPW51bGwpe3JldHVybiBmdW5jdGlvbiBpc0V4YWN0bWF0Y2godCl7cmV0dXJuIHQ9PT1lfX1mdW5jdGlvbiBfcmVqZWN0KGUpe3IuYWRkKGUpO3JldHVybiBmYWxzZX1mdW5jdGlvbiBfYWNjZXB0KGUpe3QuYWRkKGUpO3JldHVybiB0cnVlfXJldHVybiBmdW5jdGlvbiBpc0NvbXBhdGlibGUoZSl7aWYodC5oYXMoZSkpe3JldHVybiB0cnVlfWlmKHIuaGFzKGUpKXtyZXR1cm4gZmFsc2V9Y29uc3Qgbj1lLm1hdGNoKGEpO2lmKCFuKXtyZXR1cm4gX3JlamVjdChlKX1jb25zdCBpPXttYWpvcjorblsxXSxtaW5vcjorblsyXSxwYXRjaDorblszXSxwcmVyZWxlYXNlOm5bNF19O2lmKGkucHJlcmVsZWFzZSE9bnVsbCl7cmV0dXJuIF9yZWplY3QoZSl9aWYoby5tYWpvciE9PWkubWFqb3Ipe3JldHVybiBfcmVqZWN0KGUpfWlmKG8ubWFqb3I9PT0wKXtpZihvLm1pbm9yPT09aS5taW5vciYmby5wYXRjaDw9aS5wYXRjaCl7cmV0dXJuIF9hY2NlcHQoZSl9cmV0dXJuIF9yZWplY3QoZSl9aWYoby5taW5vcjw9aS5taW5vcil7cmV0dXJuIF9hY2NlcHQoZSl9cmV0dXJuIF9yZWplY3QoZSl9fXQuX21ha2VDb21wYXRpYmlsaXR5Q2hlY2s9X21ha2VDb21wYXRpYmlsaXR5Q2hlY2s7dC5pc0NvbXBhdGlibGU9X21ha2VDb21wYXRpYmlsaXR5Q2hlY2sobi5WRVJTSU9OKX0sODg2OihlLHQscik9PntPYmplY3QuZGVmaW5lUHJvcGVydHkodCxcIl9fZXNNb2R1bGVcIix7dmFsdWU6dHJ1ZX0pO3QubWV0cmljcz12b2lkIDA7Y29uc3Qgbj1yKDY1Myk7dC5tZXRyaWNzPW4uTWV0cmljc0FQSS5nZXRJbnN0YW5jZSgpfSw5MDE6KGUsdCk9PntPYmplY3QuZGVmaW5lUHJvcGVydHkodCxcIl9fZXNNb2R1bGVcIix7dmFsdWU6dHJ1ZX0pO3QuVmFsdWVUeXBlPXZvaWQgMDt2YXIgcjsoZnVuY3Rpb24oZSl7ZVtlW1wiSU5UXCJdPTBdPVwiSU5UXCI7ZVtlW1wiRE9VQkxFXCJdPTFdPVwiRE9VQkxFXCJ9KShyPXQuVmFsdWVUeXBlfHwodC5WYWx1ZVR5cGU9e30pKX0sMTAyOihlLHQpPT57T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsXCJfX2VzTW9kdWxlXCIse3ZhbHVlOnRydWV9KTt0LmNyZWF0ZU5vb3BNZXRlcj10Lk5PT1BfT0JTRVJWQUJMRV9VUF9ET1dOX0NPVU5URVJfTUVUUklDPXQuTk9PUF9PQlNFUlZBQkxFX0dBVUdFX01FVFJJQz10Lk5PT1BfT0JTRVJWQUJMRV9DT1VOVEVSX01FVFJJQz10Lk5PT1BfVVBfRE9XTl9DT1VOVEVSX01FVFJJQz10Lk5PT1BfSElTVE9HUkFNX01FVFJJQz10Lk5PT1BfQ09VTlRFUl9NRVRSSUM9dC5OT09QX01FVEVSPXQuTm9vcE9ic2VydmFibGVVcERvd25Db3VudGVyTWV0cmljPXQuTm9vcE9ic2VydmFibGVHYXVnZU1ldHJpYz10Lk5vb3BPYnNlcnZhYmxlQ291bnRlck1ldHJpYz10Lk5vb3BPYnNlcnZhYmxlTWV0cmljPXQuTm9vcEhpc3RvZ3JhbU1ldHJpYz10Lk5vb3BVcERvd25Db3VudGVyTWV0cmljPXQuTm9vcENvdW50ZXJNZXRyaWM9dC5Ob29wTWV0cmljPXQuTm9vcE1ldGVyPXZvaWQgMDtjbGFzcyBOb29wTWV0ZXJ7Y29uc3RydWN0b3IoKXt9Y3JlYXRlSGlzdG9ncmFtKGUscil7cmV0dXJuIHQuTk9PUF9ISVNUT0dSQU1fTUVUUklDfWNyZWF0ZUNvdW50ZXIoZSxyKXtyZXR1cm4gdC5OT09QX0NPVU5URVJfTUVUUklDfWNyZWF0ZVVwRG93bkNvdW50ZXIoZSxyKXtyZXR1cm4gdC5OT09QX1VQX0RPV05fQ09VTlRFUl9NRVRSSUN9Y3JlYXRlT2JzZXJ2YWJsZUdhdWdlKGUscil7cmV0dXJuIHQuTk9PUF9PQlNFUlZBQkxFX0dBVUdFX01FVFJJQ31jcmVhdGVPYnNlcnZhYmxlQ291bnRlcihlLHIpe3JldHVybiB0Lk5PT1BfT0JTRVJWQUJMRV9DT1VOVEVSX01FVFJJQ31jcmVhdGVPYnNlcnZhYmxlVXBEb3duQ291bnRlcihlLHIpe3JldHVybiB0Lk5PT1BfT0JTRVJWQUJMRV9VUF9ET1dOX0NPVU5URVJfTUVUUklDfWFkZEJhdGNoT2JzZXJ2YWJsZUNhbGxiYWNrKGUsdCl7fXJlbW92ZUJhdGNoT2JzZXJ2YWJsZUNhbGxiYWNrKGUpe319dC5Ob29wTWV0ZXI9Tm9vcE1ldGVyO2NsYXNzIE5vb3BNZXRyaWN7fXQuTm9vcE1ldHJpYz1Ob29wTWV0cmljO2NsYXNzIE5vb3BDb3VudGVyTWV0cmljIGV4dGVuZHMgTm9vcE1ldHJpY3thZGQoZSx0KXt9fXQuTm9vcENvdW50ZXJNZXRyaWM9Tm9vcENvdW50ZXJNZXRyaWM7Y2xhc3MgTm9vcFVwRG93bkNvdW50ZXJNZXRyaWMgZXh0ZW5kcyBOb29wTWV0cmlje2FkZChlLHQpe319dC5Ob29wVXBEb3duQ291bnRlck1ldHJpYz1Ob29wVXBEb3duQ291bnRlck1ldHJpYztjbGFzcyBOb29wSGlzdG9ncmFtTWV0cmljIGV4dGVuZHMgTm9vcE1ldHJpY3tyZWNvcmQoZSx0KXt9fXQuTm9vcEhpc3RvZ3JhbU1ldHJpYz1Ob29wSGlzdG9ncmFtTWV0cmljO2NsYXNzIE5vb3BPYnNlcnZhYmxlTWV0cmlje2FkZENhbGxiYWNrKGUpe31yZW1vdmVDYWxsYmFjayhlKXt9fXQuTm9vcE9ic2VydmFibGVNZXRyaWM9Tm9vcE9ic2VydmFibGVNZXRyaWM7Y2xhc3MgTm9vcE9ic2VydmFibGVDb3VudGVyTWV0cmljIGV4dGVuZHMgTm9vcE9ic2VydmFibGVNZXRyaWN7fXQuTm9vcE9ic2VydmFibGVDb3VudGVyTWV0cmljPU5vb3BPYnNlcnZhYmxlQ291bnRlck1ldHJpYztjbGFzcyBOb29wT2JzZXJ2YWJsZUdhdWdlTWV0cmljIGV4dGVuZHMgTm9vcE9ic2VydmFibGVNZXRyaWN7fXQuTm9vcE9ic2VydmFibGVHYXVnZU1ldHJpYz1Ob29wT2JzZXJ2YWJsZUdhdWdlTWV0cmljO2NsYXNzIE5vb3BPYnNlcnZhYmxlVXBEb3duQ291bnRlck1ldHJpYyBleHRlbmRzIE5vb3BPYnNlcnZhYmxlTWV0cmlje310Lk5vb3BPYnNlcnZhYmxlVXBEb3duQ291bnRlck1ldHJpYz1Ob29wT2JzZXJ2YWJsZVVwRG93bkNvdW50ZXJNZXRyaWM7dC5OT09QX01FVEVSPW5ldyBOb29wTWV0ZXI7dC5OT09QX0NPVU5URVJfTUVUUklDPW5ldyBOb29wQ291bnRlck1ldHJpYzt0Lk5PT1BfSElTVE9HUkFNX01FVFJJQz1uZXcgTm9vcEhpc3RvZ3JhbU1ldHJpYzt0Lk5PT1BfVVBfRE9XTl9DT1VOVEVSX01FVFJJQz1uZXcgTm9vcFVwRG93bkNvdW50ZXJNZXRyaWM7dC5OT09QX09CU0VSVkFCTEVfQ09VTlRFUl9NRVRSSUM9bmV3IE5vb3BPYnNlcnZhYmxlQ291bnRlck1ldHJpYzt0Lk5PT1BfT0JTRVJWQUJMRV9HQVVHRV9NRVRSSUM9bmV3IE5vb3BPYnNlcnZhYmxlR2F1Z2VNZXRyaWM7dC5OT09QX09CU0VSVkFCTEVfVVBfRE9XTl9DT1VOVEVSX01FVFJJQz1uZXcgTm9vcE9ic2VydmFibGVVcERvd25Db3VudGVyTWV0cmljO2Z1bmN0aW9uIGNyZWF0ZU5vb3BNZXRlcigpe3JldHVybiB0Lk5PT1BfTUVURVJ9dC5jcmVhdGVOb29wTWV0ZXI9Y3JlYXRlTm9vcE1ldGVyfSw2NjA6KGUsdCxyKT0+e09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LFwiX19lc01vZHVsZVwiLHt2YWx1ZTp0cnVlfSk7dC5OT09QX01FVEVSX1BST1ZJREVSPXQuTm9vcE1ldGVyUHJvdmlkZXI9dm9pZCAwO2NvbnN0IG49cigxMDIpO2NsYXNzIE5vb3BNZXRlclByb3ZpZGVye2dldE1ldGVyKGUsdCxyKXtyZXR1cm4gbi5OT09QX01FVEVSfX10Lk5vb3BNZXRlclByb3ZpZGVyPU5vb3BNZXRlclByb3ZpZGVyO3QuTk9PUF9NRVRFUl9QUk9WSURFUj1uZXcgTm9vcE1ldGVyUHJvdmlkZXJ9LDIwMDpmdW5jdGlvbihlLHQscil7dmFyIG49dGhpcyYmdGhpcy5fX2NyZWF0ZUJpbmRpbmd8fChPYmplY3QuY3JlYXRlP2Z1bmN0aW9uKGUsdCxyLG4pe2lmKG49PT11bmRlZmluZWQpbj1yO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLG4se2VudW1lcmFibGU6dHJ1ZSxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdFtyXX19KX06ZnVuY3Rpb24oZSx0LHIsbil7aWYobj09PXVuZGVmaW5lZCluPXI7ZVtuXT10W3JdfSk7dmFyIGE9dGhpcyYmdGhpcy5fX2V4cG9ydFN0YXJ8fGZ1bmN0aW9uKGUsdCl7Zm9yKHZhciByIGluIGUpaWYociE9PVwiZGVmYXVsdFwiJiYhT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHQscikpbih0LGUscil9O09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LFwiX19lc01vZHVsZVwiLHt2YWx1ZTp0cnVlfSk7YShyKDQ2KSx0KX0sNjUxOihlLHQpPT57T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsXCJfX2VzTW9kdWxlXCIse3ZhbHVlOnRydWV9KTt0Ll9nbG9iYWxUaGlzPXZvaWQgMDt0Ll9nbG9iYWxUaGlzPXR5cGVvZiBnbG9iYWxUaGlzPT09XCJvYmplY3RcIj9nbG9iYWxUaGlzOmdsb2JhbH0sNDY6ZnVuY3Rpb24oZSx0LHIpe3ZhciBuPXRoaXMmJnRoaXMuX19jcmVhdGVCaW5kaW5nfHwoT2JqZWN0LmNyZWF0ZT9mdW5jdGlvbihlLHQscixuKXtpZihuPT09dW5kZWZpbmVkKW49cjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSxuLHtlbnVtZXJhYmxlOnRydWUsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRbcl19fSl9OmZ1bmN0aW9uKGUsdCxyLG4pe2lmKG49PT11bmRlZmluZWQpbj1yO2Vbbl09dFtyXX0pO3ZhciBhPXRoaXMmJnRoaXMuX19leHBvcnRTdGFyfHxmdW5jdGlvbihlLHQpe2Zvcih2YXIgciBpbiBlKWlmKHIhPT1cImRlZmF1bHRcIiYmIU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbCh0LHIpKW4odCxlLHIpfTtPYmplY3QuZGVmaW5lUHJvcGVydHkodCxcIl9fZXNNb2R1bGVcIix7dmFsdWU6dHJ1ZX0pO2Eocig2NTEpLHQpfSw5Mzk6KGUsdCxyKT0+e09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LFwiX19lc01vZHVsZVwiLHt2YWx1ZTp0cnVlfSk7dC5wcm9wYWdhdGlvbj12b2lkIDA7Y29uc3Qgbj1yKDE4MSk7dC5wcm9wYWdhdGlvbj1uLlByb3BhZ2F0aW9uQVBJLmdldEluc3RhbmNlKCl9LDg3NDooZSx0KT0+e09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LFwiX19lc01vZHVsZVwiLHt2YWx1ZTp0cnVlfSk7dC5Ob29wVGV4dE1hcFByb3BhZ2F0b3I9dm9pZCAwO2NsYXNzIE5vb3BUZXh0TWFwUHJvcGFnYXRvcntpbmplY3QoZSx0KXt9ZXh0cmFjdChlLHQpe3JldHVybiBlfWZpZWxkcygpe3JldHVybltdfX10Lk5vb3BUZXh0TWFwUHJvcGFnYXRvcj1Ob29wVGV4dE1hcFByb3BhZ2F0b3J9LDE5NDooZSx0KT0+e09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LFwiX19lc01vZHVsZVwiLHt2YWx1ZTp0cnVlfSk7dC5kZWZhdWx0VGV4dE1hcFNldHRlcj10LmRlZmF1bHRUZXh0TWFwR2V0dGVyPXZvaWQgMDt0LmRlZmF1bHRUZXh0TWFwR2V0dGVyPXtnZXQoZSx0KXtpZihlPT1udWxsKXtyZXR1cm4gdW5kZWZpbmVkfXJldHVybiBlW3RdfSxrZXlzKGUpe2lmKGU9PW51bGwpe3JldHVybltdfXJldHVybiBPYmplY3Qua2V5cyhlKX19O3QuZGVmYXVsdFRleHRNYXBTZXR0ZXI9e3NldChlLHQscil7aWYoZT09bnVsbCl7cmV0dXJufWVbdF09cn19fSw4NDU6KGUsdCxyKT0+e09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LFwiX19lc01vZHVsZVwiLHt2YWx1ZTp0cnVlfSk7dC50cmFjZT12b2lkIDA7Y29uc3Qgbj1yKDk5Nyk7dC50cmFjZT1uLlRyYWNlQVBJLmdldEluc3RhbmNlKCl9LDQwMzooZSx0LHIpPT57T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsXCJfX2VzTW9kdWxlXCIse3ZhbHVlOnRydWV9KTt0Lk5vblJlY29yZGluZ1NwYW49dm9pZCAwO2NvbnN0IG49cig0NzYpO2NsYXNzIE5vblJlY29yZGluZ1NwYW57Y29uc3RydWN0b3IoZT1uLklOVkFMSURfU1BBTl9DT05URVhUKXt0aGlzLl9zcGFuQ29udGV4dD1lfXNwYW5Db250ZXh0KCl7cmV0dXJuIHRoaXMuX3NwYW5Db250ZXh0fXNldEF0dHJpYnV0ZShlLHQpe3JldHVybiB0aGlzfXNldEF0dHJpYnV0ZXMoZSl7cmV0dXJuIHRoaXN9YWRkRXZlbnQoZSx0KXtyZXR1cm4gdGhpc31zZXRTdGF0dXMoZSl7cmV0dXJuIHRoaXN9dXBkYXRlTmFtZShlKXtyZXR1cm4gdGhpc31lbmQoZSl7fWlzUmVjb3JkaW5nKCl7cmV0dXJuIGZhbHNlfXJlY29yZEV4Y2VwdGlvbihlLHQpe319dC5Ob25SZWNvcmRpbmdTcGFuPU5vblJlY29yZGluZ1NwYW59LDYxNDooZSx0LHIpPT57T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsXCJfX2VzTW9kdWxlXCIse3ZhbHVlOnRydWV9KTt0Lk5vb3BUcmFjZXI9dm9pZCAwO2NvbnN0IG49cig0OTEpO2NvbnN0IGE9cig2MDcpO2NvbnN0IG89cig0MDMpO2NvbnN0IGk9cigxMzkpO2NvbnN0IGM9bi5Db250ZXh0QVBJLmdldEluc3RhbmNlKCk7Y2xhc3MgTm9vcFRyYWNlcntzdGFydFNwYW4oZSx0LHI9Yy5hY3RpdmUoKSl7Y29uc3Qgbj1Cb29sZWFuKHQ9PT1udWxsfHx0PT09dm9pZCAwP3ZvaWQgMDp0LnJvb3QpO2lmKG4pe3JldHVybiBuZXcgby5Ob25SZWNvcmRpbmdTcGFufWNvbnN0IHM9ciYmKDAsYS5nZXRTcGFuQ29udGV4dCkocik7aWYoaXNTcGFuQ29udGV4dChzKSYmKDAsaS5pc1NwYW5Db250ZXh0VmFsaWQpKHMpKXtyZXR1cm4gbmV3IG8uTm9uUmVjb3JkaW5nU3BhbihzKX1lbHNle3JldHVybiBuZXcgby5Ob25SZWNvcmRpbmdTcGFufX1zdGFydEFjdGl2ZVNwYW4oZSx0LHIsbil7bGV0IG87bGV0IGk7bGV0IHM7aWYoYXJndW1lbnRzLmxlbmd0aDwyKXtyZXR1cm59ZWxzZSBpZihhcmd1bWVudHMubGVuZ3RoPT09Mil7cz10fWVsc2UgaWYoYXJndW1lbnRzLmxlbmd0aD09PTMpe289dDtzPXJ9ZWxzZXtvPXQ7aT1yO3M9bn1jb25zdCB1PWkhPT1udWxsJiZpIT09dm9pZCAwP2k6Yy5hY3RpdmUoKTtjb25zdCBsPXRoaXMuc3RhcnRTcGFuKGUsbyx1KTtjb25zdCBnPSgwLGEuc2V0U3BhbikodSxsKTtyZXR1cm4gYy53aXRoKGcscyx1bmRlZmluZWQsbCl9fXQuTm9vcFRyYWNlcj1Ob29wVHJhY2VyO2Z1bmN0aW9uIGlzU3BhbkNvbnRleHQoZSl7cmV0dXJuIHR5cGVvZiBlPT09XCJvYmplY3RcIiYmdHlwZW9mIGVbXCJzcGFuSWRcIl09PT1cInN0cmluZ1wiJiZ0eXBlb2YgZVtcInRyYWNlSWRcIl09PT1cInN0cmluZ1wiJiZ0eXBlb2YgZVtcInRyYWNlRmxhZ3NcIl09PT1cIm51bWJlclwifX0sMTI0OihlLHQscik9PntPYmplY3QuZGVmaW5lUHJvcGVydHkodCxcIl9fZXNNb2R1bGVcIix7dmFsdWU6dHJ1ZX0pO3QuTm9vcFRyYWNlclByb3ZpZGVyPXZvaWQgMDtjb25zdCBuPXIoNjE0KTtjbGFzcyBOb29wVHJhY2VyUHJvdmlkZXJ7Z2V0VHJhY2VyKGUsdCxyKXtyZXR1cm4gbmV3IG4uTm9vcFRyYWNlcn19dC5Ob29wVHJhY2VyUHJvdmlkZXI9Tm9vcFRyYWNlclByb3ZpZGVyfSwxMjU6KGUsdCxyKT0+e09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LFwiX19lc01vZHVsZVwiLHt2YWx1ZTp0cnVlfSk7dC5Qcm94eVRyYWNlcj12b2lkIDA7Y29uc3Qgbj1yKDYxNCk7Y29uc3QgYT1uZXcgbi5Ob29wVHJhY2VyO2NsYXNzIFByb3h5VHJhY2Vye2NvbnN0cnVjdG9yKGUsdCxyLG4pe3RoaXMuX3Byb3ZpZGVyPWU7dGhpcy5uYW1lPXQ7dGhpcy52ZXJzaW9uPXI7dGhpcy5vcHRpb25zPW59c3RhcnRTcGFuKGUsdCxyKXtyZXR1cm4gdGhpcy5fZ2V0VHJhY2VyKCkuc3RhcnRTcGFuKGUsdCxyKX1zdGFydEFjdGl2ZVNwYW4oZSx0LHIsbil7Y29uc3QgYT10aGlzLl9nZXRUcmFjZXIoKTtyZXR1cm4gUmVmbGVjdC5hcHBseShhLnN0YXJ0QWN0aXZlU3BhbixhLGFyZ3VtZW50cyl9X2dldFRyYWNlcigpe2lmKHRoaXMuX2RlbGVnYXRlKXtyZXR1cm4gdGhpcy5fZGVsZWdhdGV9Y29uc3QgZT10aGlzLl9wcm92aWRlci5nZXREZWxlZ2F0ZVRyYWNlcih0aGlzLm5hbWUsdGhpcy52ZXJzaW9uLHRoaXMub3B0aW9ucyk7aWYoIWUpe3JldHVybiBhfXRoaXMuX2RlbGVnYXRlPWU7cmV0dXJuIHRoaXMuX2RlbGVnYXRlfX10LlByb3h5VHJhY2VyPVByb3h5VHJhY2VyfSw4NDY6KGUsdCxyKT0+e09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LFwiX19lc01vZHVsZVwiLHt2YWx1ZTp0cnVlfSk7dC5Qcm94eVRyYWNlclByb3ZpZGVyPXZvaWQgMDtjb25zdCBuPXIoMTI1KTtjb25zdCBhPXIoMTI0KTtjb25zdCBvPW5ldyBhLk5vb3BUcmFjZXJQcm92aWRlcjtjbGFzcyBQcm94eVRyYWNlclByb3ZpZGVye2dldFRyYWNlcihlLHQscil7dmFyIGE7cmV0dXJuKGE9dGhpcy5nZXREZWxlZ2F0ZVRyYWNlcihlLHQscikpIT09bnVsbCYmYSE9PXZvaWQgMD9hOm5ldyBuLlByb3h5VHJhY2VyKHRoaXMsZSx0LHIpfWdldERlbGVnYXRlKCl7dmFyIGU7cmV0dXJuKGU9dGhpcy5fZGVsZWdhdGUpIT09bnVsbCYmZSE9PXZvaWQgMD9lOm99c2V0RGVsZWdhdGUoZSl7dGhpcy5fZGVsZWdhdGU9ZX1nZXREZWxlZ2F0ZVRyYWNlcihlLHQscil7dmFyIG47cmV0dXJuKG49dGhpcy5fZGVsZWdhdGUpPT09bnVsbHx8bj09PXZvaWQgMD92b2lkIDA6bi5nZXRUcmFjZXIoZSx0LHIpfX10LlByb3h5VHJhY2VyUHJvdmlkZXI9UHJveHlUcmFjZXJQcm92aWRlcn0sOTk2OihlLHQpPT57T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsXCJfX2VzTW9kdWxlXCIse3ZhbHVlOnRydWV9KTt0LlNhbXBsaW5nRGVjaXNpb249dm9pZCAwO3ZhciByOyhmdW5jdGlvbihlKXtlW2VbXCJOT1RfUkVDT1JEXCJdPTBdPVwiTk9UX1JFQ09SRFwiO2VbZVtcIlJFQ09SRFwiXT0xXT1cIlJFQ09SRFwiO2VbZVtcIlJFQ09SRF9BTkRfU0FNUExFRFwiXT0yXT1cIlJFQ09SRF9BTkRfU0FNUExFRFwifSkocj10LlNhbXBsaW5nRGVjaXNpb258fCh0LlNhbXBsaW5nRGVjaXNpb249e30pKX0sNjA3OihlLHQscik9PntPYmplY3QuZGVmaW5lUHJvcGVydHkodCxcIl9fZXNNb2R1bGVcIix7dmFsdWU6dHJ1ZX0pO3QuZ2V0U3BhbkNvbnRleHQ9dC5zZXRTcGFuQ29udGV4dD10LmRlbGV0ZVNwYW49dC5zZXRTcGFuPXQuZ2V0QWN0aXZlU3Bhbj10LmdldFNwYW49dm9pZCAwO2NvbnN0IG49cig3ODApO2NvbnN0IGE9cig0MDMpO2NvbnN0IG89cig0OTEpO2NvbnN0IGk9KDAsbi5jcmVhdGVDb250ZXh0S2V5KShcIk9wZW5UZWxlbWV0cnkgQ29udGV4dCBLZXkgU1BBTlwiKTtmdW5jdGlvbiBnZXRTcGFuKGUpe3JldHVybiBlLmdldFZhbHVlKGkpfHx1bmRlZmluZWR9dC5nZXRTcGFuPWdldFNwYW47ZnVuY3Rpb24gZ2V0QWN0aXZlU3Bhbigpe3JldHVybiBnZXRTcGFuKG8uQ29udGV4dEFQSS5nZXRJbnN0YW5jZSgpLmFjdGl2ZSgpKX10LmdldEFjdGl2ZVNwYW49Z2V0QWN0aXZlU3BhbjtmdW5jdGlvbiBzZXRTcGFuKGUsdCl7cmV0dXJuIGUuc2V0VmFsdWUoaSx0KX10LnNldFNwYW49c2V0U3BhbjtmdW5jdGlvbiBkZWxldGVTcGFuKGUpe3JldHVybiBlLmRlbGV0ZVZhbHVlKGkpfXQuZGVsZXRlU3Bhbj1kZWxldGVTcGFuO2Z1bmN0aW9uIHNldFNwYW5Db250ZXh0KGUsdCl7cmV0dXJuIHNldFNwYW4oZSxuZXcgYS5Ob25SZWNvcmRpbmdTcGFuKHQpKX10LnNldFNwYW5Db250ZXh0PXNldFNwYW5Db250ZXh0O2Z1bmN0aW9uIGdldFNwYW5Db250ZXh0KGUpe3ZhciB0O3JldHVybih0PWdldFNwYW4oZSkpPT09bnVsbHx8dD09PXZvaWQgMD92b2lkIDA6dC5zcGFuQ29udGV4dCgpfXQuZ2V0U3BhbkNvbnRleHQ9Z2V0U3BhbkNvbnRleHR9LDMyNTooZSx0LHIpPT57T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsXCJfX2VzTW9kdWxlXCIse3ZhbHVlOnRydWV9KTt0LlRyYWNlU3RhdGVJbXBsPXZvaWQgMDtjb25zdCBuPXIoNTY0KTtjb25zdCBhPTMyO2NvbnN0IG89NTEyO2NvbnN0IGk9XCIsXCI7Y29uc3QgYz1cIj1cIjtjbGFzcyBUcmFjZVN0YXRlSW1wbHtjb25zdHJ1Y3RvcihlKXt0aGlzLl9pbnRlcm5hbFN0YXRlPW5ldyBNYXA7aWYoZSl0aGlzLl9wYXJzZShlKX1zZXQoZSx0KXtjb25zdCByPXRoaXMuX2Nsb25lKCk7aWYoci5faW50ZXJuYWxTdGF0ZS5oYXMoZSkpe3IuX2ludGVybmFsU3RhdGUuZGVsZXRlKGUpfXIuX2ludGVybmFsU3RhdGUuc2V0KGUsdCk7cmV0dXJuIHJ9dW5zZXQoZSl7Y29uc3QgdD10aGlzLl9jbG9uZSgpO3QuX2ludGVybmFsU3RhdGUuZGVsZXRlKGUpO3JldHVybiB0fWdldChlKXtyZXR1cm4gdGhpcy5faW50ZXJuYWxTdGF0ZS5nZXQoZSl9c2VyaWFsaXplKCl7cmV0dXJuIHRoaXMuX2tleXMoKS5yZWR1Y2UoKChlLHQpPT57ZS5wdXNoKHQrYyt0aGlzLmdldCh0KSk7cmV0dXJuIGV9KSxbXSkuam9pbihpKX1fcGFyc2UoZSl7aWYoZS5sZW5ndGg+bylyZXR1cm47dGhpcy5faW50ZXJuYWxTdGF0ZT1lLnNwbGl0KGkpLnJldmVyc2UoKS5yZWR1Y2UoKChlLHQpPT57Y29uc3Qgcj10LnRyaW0oKTtjb25zdCBhPXIuaW5kZXhPZihjKTtpZihhIT09LTEpe2NvbnN0IG89ci5zbGljZSgwLGEpO2NvbnN0IGk9ci5zbGljZShhKzEsdC5sZW5ndGgpO2lmKCgwLG4udmFsaWRhdGVLZXkpKG8pJiYoMCxuLnZhbGlkYXRlVmFsdWUpKGkpKXtlLnNldChvLGkpfWVsc2V7fX1yZXR1cm4gZX0pLG5ldyBNYXApO2lmKHRoaXMuX2ludGVybmFsU3RhdGUuc2l6ZT5hKXt0aGlzLl9pbnRlcm5hbFN0YXRlPW5ldyBNYXAoQXJyYXkuZnJvbSh0aGlzLl9pbnRlcm5hbFN0YXRlLmVudHJpZXMoKSkucmV2ZXJzZSgpLnNsaWNlKDAsYSkpfX1fa2V5cygpe3JldHVybiBBcnJheS5mcm9tKHRoaXMuX2ludGVybmFsU3RhdGUua2V5cygpKS5yZXZlcnNlKCl9X2Nsb25lKCl7Y29uc3QgZT1uZXcgVHJhY2VTdGF0ZUltcGw7ZS5faW50ZXJuYWxTdGF0ZT1uZXcgTWFwKHRoaXMuX2ludGVybmFsU3RhdGUpO3JldHVybiBlfX10LlRyYWNlU3RhdGVJbXBsPVRyYWNlU3RhdGVJbXBsfSw1NjQ6KGUsdCk9PntPYmplY3QuZGVmaW5lUHJvcGVydHkodCxcIl9fZXNNb2R1bGVcIix7dmFsdWU6dHJ1ZX0pO3QudmFsaWRhdGVWYWx1ZT10LnZhbGlkYXRlS2V5PXZvaWQgMDtjb25zdCByPVwiW18wLTlhLXotKi9dXCI7Y29uc3Qgbj1gW2Etel0ke3J9ezAsMjU1fWA7Y29uc3QgYT1gW2EtejAtOV0ke3J9ezAsMjQwfUBbYS16XSR7cn17MCwxM31gO2NvbnN0IG89bmV3IFJlZ0V4cChgXig/OiR7bn18JHthfSkkYCk7Y29uc3QgaT0vXlsgLX5dezAsMjU1fVshLX5dJC87Y29uc3QgYz0vLHw9LztmdW5jdGlvbiB2YWxpZGF0ZUtleShlKXtyZXR1cm4gby50ZXN0KGUpfXQudmFsaWRhdGVLZXk9dmFsaWRhdGVLZXk7ZnVuY3Rpb24gdmFsaWRhdGVWYWx1ZShlKXtyZXR1cm4gaS50ZXN0KGUpJiYhYy50ZXN0KGUpfXQudmFsaWRhdGVWYWx1ZT12YWxpZGF0ZVZhbHVlfSw5ODooZSx0LHIpPT57T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsXCJfX2VzTW9kdWxlXCIse3ZhbHVlOnRydWV9KTt0LmNyZWF0ZVRyYWNlU3RhdGU9dm9pZCAwO2NvbnN0IG49cigzMjUpO2Z1bmN0aW9uIGNyZWF0ZVRyYWNlU3RhdGUoZSl7cmV0dXJuIG5ldyBuLlRyYWNlU3RhdGVJbXBsKGUpfXQuY3JlYXRlVHJhY2VTdGF0ZT1jcmVhdGVUcmFjZVN0YXRlfSw0NzY6KGUsdCxyKT0+e09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LFwiX19lc01vZHVsZVwiLHt2YWx1ZTp0cnVlfSk7dC5JTlZBTElEX1NQQU5fQ09OVEVYVD10LklOVkFMSURfVFJBQ0VJRD10LklOVkFMSURfU1BBTklEPXZvaWQgMDtjb25zdCBuPXIoNDc1KTt0LklOVkFMSURfU1BBTklEPVwiMDAwMDAwMDAwMDAwMDAwMFwiO3QuSU5WQUxJRF9UUkFDRUlEPVwiMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBcIjt0LklOVkFMSURfU1BBTl9DT05URVhUPXt0cmFjZUlkOnQuSU5WQUxJRF9UUkFDRUlELHNwYW5JZDp0LklOVkFMSURfU1BBTklELHRyYWNlRmxhZ3M6bi5UcmFjZUZsYWdzLk5PTkV9fSwzNTc6KGUsdCk9PntPYmplY3QuZGVmaW5lUHJvcGVydHkodCxcIl9fZXNNb2R1bGVcIix7dmFsdWU6dHJ1ZX0pO3QuU3BhbktpbmQ9dm9pZCAwO3ZhciByOyhmdW5jdGlvbihlKXtlW2VbXCJJTlRFUk5BTFwiXT0wXT1cIklOVEVSTkFMXCI7ZVtlW1wiU0VSVkVSXCJdPTFdPVwiU0VSVkVSXCI7ZVtlW1wiQ0xJRU5UXCJdPTJdPVwiQ0xJRU5UXCI7ZVtlW1wiUFJPRFVDRVJcIl09M109XCJQUk9EVUNFUlwiO2VbZVtcIkNPTlNVTUVSXCJdPTRdPVwiQ09OU1VNRVJcIn0pKHI9dC5TcGFuS2luZHx8KHQuU3BhbktpbmQ9e30pKX0sMTM5OihlLHQscik9PntPYmplY3QuZGVmaW5lUHJvcGVydHkodCxcIl9fZXNNb2R1bGVcIix7dmFsdWU6dHJ1ZX0pO3Qud3JhcFNwYW5Db250ZXh0PXQuaXNTcGFuQ29udGV4dFZhbGlkPXQuaXNWYWxpZFNwYW5JZD10LmlzVmFsaWRUcmFjZUlkPXZvaWQgMDtjb25zdCBuPXIoNDc2KTtjb25zdCBhPXIoNDAzKTtjb25zdCBvPS9eKFswLTlhLWZdezMyfSkkL2k7Y29uc3QgaT0vXlswLTlhLWZdezE2fSQvaTtmdW5jdGlvbiBpc1ZhbGlkVHJhY2VJZChlKXtyZXR1cm4gby50ZXN0KGUpJiZlIT09bi5JTlZBTElEX1RSQUNFSUR9dC5pc1ZhbGlkVHJhY2VJZD1pc1ZhbGlkVHJhY2VJZDtmdW5jdGlvbiBpc1ZhbGlkU3BhbklkKGUpe3JldHVybiBpLnRlc3QoZSkmJmUhPT1uLklOVkFMSURfU1BBTklEfXQuaXNWYWxpZFNwYW5JZD1pc1ZhbGlkU3BhbklkO2Z1bmN0aW9uIGlzU3BhbkNvbnRleHRWYWxpZChlKXtyZXR1cm4gaXNWYWxpZFRyYWNlSWQoZS50cmFjZUlkKSYmaXNWYWxpZFNwYW5JZChlLnNwYW5JZCl9dC5pc1NwYW5Db250ZXh0VmFsaWQ9aXNTcGFuQ29udGV4dFZhbGlkO2Z1bmN0aW9uIHdyYXBTcGFuQ29udGV4dChlKXtyZXR1cm4gbmV3IGEuTm9uUmVjb3JkaW5nU3BhbihlKX10LndyYXBTcGFuQ29udGV4dD13cmFwU3BhbkNvbnRleHR9LDg0NzooZSx0KT0+e09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LFwiX19lc01vZHVsZVwiLHt2YWx1ZTp0cnVlfSk7dC5TcGFuU3RhdHVzQ29kZT12b2lkIDA7dmFyIHI7KGZ1bmN0aW9uKGUpe2VbZVtcIlVOU0VUXCJdPTBdPVwiVU5TRVRcIjtlW2VbXCJPS1wiXT0xXT1cIk9LXCI7ZVtlW1wiRVJST1JcIl09Ml09XCJFUlJPUlwifSkocj10LlNwYW5TdGF0dXNDb2RlfHwodC5TcGFuU3RhdHVzQ29kZT17fSkpfSw0NzU6KGUsdCk9PntPYmplY3QuZGVmaW5lUHJvcGVydHkodCxcIl9fZXNNb2R1bGVcIix7dmFsdWU6dHJ1ZX0pO3QuVHJhY2VGbGFncz12b2lkIDA7dmFyIHI7KGZ1bmN0aW9uKGUpe2VbZVtcIk5PTkVcIl09MF09XCJOT05FXCI7ZVtlW1wiU0FNUExFRFwiXT0xXT1cIlNBTVBMRURcIn0pKHI9dC5UcmFjZUZsYWdzfHwodC5UcmFjZUZsYWdzPXt9KSl9LDUyMTooZSx0KT0+e09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LFwiX19lc01vZHVsZVwiLHt2YWx1ZTp0cnVlfSk7dC5WRVJTSU9OPXZvaWQgMDt0LlZFUlNJT049XCIxLjYuMFwifX07dmFyIHQ9e307ZnVuY3Rpb24gX19uY2N3cGNrX3JlcXVpcmVfXyhyKXt2YXIgbj10W3JdO2lmKG4hPT11bmRlZmluZWQpe3JldHVybiBuLmV4cG9ydHN9dmFyIGE9dFtyXT17ZXhwb3J0czp7fX07dmFyIG89dHJ1ZTt0cnl7ZVtyXS5jYWxsKGEuZXhwb3J0cyxhLGEuZXhwb3J0cyxfX25jY3dwY2tfcmVxdWlyZV9fKTtvPWZhbHNlfWZpbmFsbHl7aWYobylkZWxldGUgdFtyXX1yZXR1cm4gYS5leHBvcnRzfWlmKHR5cGVvZiBfX25jY3dwY2tfcmVxdWlyZV9fIT09XCJ1bmRlZmluZWRcIilfX25jY3dwY2tfcmVxdWlyZV9fLmFiPV9fZGlybmFtZStcIi9cIjt2YXIgcj17fTsoKCk9Pnt2YXIgZT1yO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLFwiX19lc01vZHVsZVwiLHt2YWx1ZTp0cnVlfSk7ZS50cmFjZT1lLnByb3BhZ2F0aW9uPWUubWV0cmljcz1lLmRpYWc9ZS5jb250ZXh0PWUuSU5WQUxJRF9TUEFOX0NPTlRFWFQ9ZS5JTlZBTElEX1RSQUNFSUQ9ZS5JTlZBTElEX1NQQU5JRD1lLmlzVmFsaWRTcGFuSWQ9ZS5pc1ZhbGlkVHJhY2VJZD1lLmlzU3BhbkNvbnRleHRWYWxpZD1lLmNyZWF0ZVRyYWNlU3RhdGU9ZS5UcmFjZUZsYWdzPWUuU3BhblN0YXR1c0NvZGU9ZS5TcGFuS2luZD1lLlNhbXBsaW5nRGVjaXNpb249ZS5Qcm94eVRyYWNlclByb3ZpZGVyPWUuUHJveHlUcmFjZXI9ZS5kZWZhdWx0VGV4dE1hcFNldHRlcj1lLmRlZmF1bHRUZXh0TWFwR2V0dGVyPWUuVmFsdWVUeXBlPWUuY3JlYXRlTm9vcE1ldGVyPWUuRGlhZ0xvZ0xldmVsPWUuRGlhZ0NvbnNvbGVMb2dnZXI9ZS5ST09UX0NPTlRFWFQ9ZS5jcmVhdGVDb250ZXh0S2V5PWUuYmFnZ2FnZUVudHJ5TWV0YWRhdGFGcm9tU3RyaW5nPXZvaWQgMDt2YXIgdD1fX25jY3dwY2tfcmVxdWlyZV9fKDM2OSk7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsXCJiYWdnYWdlRW50cnlNZXRhZGF0YUZyb21TdHJpbmdcIix7ZW51bWVyYWJsZTp0cnVlLGdldDpmdW5jdGlvbigpe3JldHVybiB0LmJhZ2dhZ2VFbnRyeU1ldGFkYXRhRnJvbVN0cmluZ319KTt2YXIgbj1fX25jY3dwY2tfcmVxdWlyZV9fKDc4MCk7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsXCJjcmVhdGVDb250ZXh0S2V5XCIse2VudW1lcmFibGU6dHJ1ZSxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gbi5jcmVhdGVDb250ZXh0S2V5fX0pO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLFwiUk9PVF9DT05URVhUXCIse2VudW1lcmFibGU6dHJ1ZSxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gbi5ST09UX0NPTlRFWFR9fSk7dmFyIGE9X19uY2N3cGNrX3JlcXVpcmVfXyg5NzIpO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLFwiRGlhZ0NvbnNvbGVMb2dnZXJcIix7ZW51bWVyYWJsZTp0cnVlLGdldDpmdW5jdGlvbigpe3JldHVybiBhLkRpYWdDb25zb2xlTG9nZ2VyfX0pO3ZhciBvPV9fbmNjd3Bja19yZXF1aXJlX18oOTU3KTtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSxcIkRpYWdMb2dMZXZlbFwiLHtlbnVtZXJhYmxlOnRydWUsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIG8uRGlhZ0xvZ0xldmVsfX0pO3ZhciBpPV9fbmNjd3Bja19yZXF1aXJlX18oMTAyKTtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSxcImNyZWF0ZU5vb3BNZXRlclwiLHtlbnVtZXJhYmxlOnRydWUsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIGkuY3JlYXRlTm9vcE1ldGVyfX0pO3ZhciBjPV9fbmNjd3Bja19yZXF1aXJlX18oOTAxKTtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSxcIlZhbHVlVHlwZVwiLHtlbnVtZXJhYmxlOnRydWUsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIGMuVmFsdWVUeXBlfX0pO3ZhciBzPV9fbmNjd3Bja19yZXF1aXJlX18oMTk0KTtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSxcImRlZmF1bHRUZXh0TWFwR2V0dGVyXCIse2VudW1lcmFibGU6dHJ1ZSxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gcy5kZWZhdWx0VGV4dE1hcEdldHRlcn19KTtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSxcImRlZmF1bHRUZXh0TWFwU2V0dGVyXCIse2VudW1lcmFibGU6dHJ1ZSxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gcy5kZWZhdWx0VGV4dE1hcFNldHRlcn19KTt2YXIgdT1fX25jY3dwY2tfcmVxdWlyZV9fKDEyNSk7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsXCJQcm94eVRyYWNlclwiLHtlbnVtZXJhYmxlOnRydWUsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHUuUHJveHlUcmFjZXJ9fSk7dmFyIGw9X19uY2N3cGNrX3JlcXVpcmVfXyg4NDYpO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLFwiUHJveHlUcmFjZXJQcm92aWRlclwiLHtlbnVtZXJhYmxlOnRydWUsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIGwuUHJveHlUcmFjZXJQcm92aWRlcn19KTt2YXIgZz1fX25jY3dwY2tfcmVxdWlyZV9fKDk5Nik7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsXCJTYW1wbGluZ0RlY2lzaW9uXCIse2VudW1lcmFibGU6dHJ1ZSxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gZy5TYW1wbGluZ0RlY2lzaW9ufX0pO3ZhciBwPV9fbmNjd3Bja19yZXF1aXJlX18oMzU3KTtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSxcIlNwYW5LaW5kXCIse2VudW1lcmFibGU6dHJ1ZSxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gcC5TcGFuS2luZH19KTt2YXIgZD1fX25jY3dwY2tfcmVxdWlyZV9fKDg0Nyk7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsXCJTcGFuU3RhdHVzQ29kZVwiLHtlbnVtZXJhYmxlOnRydWUsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIGQuU3BhblN0YXR1c0NvZGV9fSk7dmFyIF89X19uY2N3cGNrX3JlcXVpcmVfXyg0NzUpO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLFwiVHJhY2VGbGFnc1wiLHtlbnVtZXJhYmxlOnRydWUsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIF8uVHJhY2VGbGFnc319KTt2YXIgZj1fX25jY3dwY2tfcmVxdWlyZV9fKDk4KTtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSxcImNyZWF0ZVRyYWNlU3RhdGVcIix7ZW51bWVyYWJsZTp0cnVlLGdldDpmdW5jdGlvbigpe3JldHVybiBmLmNyZWF0ZVRyYWNlU3RhdGV9fSk7dmFyIGI9X19uY2N3cGNrX3JlcXVpcmVfXygxMzkpO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLFwiaXNTcGFuQ29udGV4dFZhbGlkXCIse2VudW1lcmFibGU6dHJ1ZSxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gYi5pc1NwYW5Db250ZXh0VmFsaWR9fSk7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsXCJpc1ZhbGlkVHJhY2VJZFwiLHtlbnVtZXJhYmxlOnRydWUsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIGIuaXNWYWxpZFRyYWNlSWR9fSk7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsXCJpc1ZhbGlkU3BhbklkXCIse2VudW1lcmFibGU6dHJ1ZSxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gYi5pc1ZhbGlkU3BhbklkfX0pO3ZhciB2PV9fbmNjd3Bja19yZXF1aXJlX18oNDc2KTtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSxcIklOVkFMSURfU1BBTklEXCIse2VudW1lcmFibGU6dHJ1ZSxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdi5JTlZBTElEX1NQQU5JRH19KTtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSxcIklOVkFMSURfVFJBQ0VJRFwiLHtlbnVtZXJhYmxlOnRydWUsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHYuSU5WQUxJRF9UUkFDRUlEfX0pO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLFwiSU5WQUxJRF9TUEFOX0NPTlRFWFRcIix7ZW51bWVyYWJsZTp0cnVlLGdldDpmdW5jdGlvbigpe3JldHVybiB2LklOVkFMSURfU1BBTl9DT05URVhUfX0pO2NvbnN0IE89X19uY2N3cGNrX3JlcXVpcmVfXyg2Nyk7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsXCJjb250ZXh0XCIse2VudW1lcmFibGU6dHJ1ZSxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gTy5jb250ZXh0fX0pO2NvbnN0IFA9X19uY2N3cGNrX3JlcXVpcmVfXyg1MDYpO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLFwiZGlhZ1wiLHtlbnVtZXJhYmxlOnRydWUsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIFAuZGlhZ319KTtjb25zdCBOPV9fbmNjd3Bja19yZXF1aXJlX18oODg2KTtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSxcIm1ldHJpY3NcIix7ZW51bWVyYWJsZTp0cnVlLGdldDpmdW5jdGlvbigpe3JldHVybiBOLm1ldHJpY3N9fSk7Y29uc3QgUz1fX25jY3dwY2tfcmVxdWlyZV9fKDkzOSk7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsXCJwcm9wYWdhdGlvblwiLHtlbnVtZXJhYmxlOnRydWUsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIFMucHJvcGFnYXRpb259fSk7Y29uc3QgQz1fX25jY3dwY2tfcmVxdWlyZV9fKDg0NSk7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsXCJ0cmFjZVwiLHtlbnVtZXJhYmxlOnRydWUsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIEMudHJhY2V9fSk7ZVtcImRlZmF1bHRcIl09e2NvbnRleHQ6Ty5jb250ZXh0LGRpYWc6UC5kaWFnLG1ldHJpY3M6Ti5tZXRyaWNzLHByb3BhZ2F0aW9uOlMucHJvcGFnYXRpb24sdHJhY2U6Qy50cmFjZX19KSgpO21vZHVsZS5leHBvcnRzPXJ9KSgpOyJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(pages-dir-node)/./node_modules/next/dist/compiled/@opentelemetry/api/index.js\n"); - -/***/ }), - -/***/ "(pages-dir-node)/./node_modules/next/dist/compiled/fresh/index.js": -/*!********************************************************!*\ - !*** ./node_modules/next/dist/compiled/fresh/index.js ***! - \********************************************************/ -/***/ ((module) => { - -eval("(()=>{\"use strict\";var e={695:e=>{\n/*!\n * fresh\n * Copyright(c) 2012 TJ Holowaychuk\n * Copyright(c) 2016-2017 Douglas Christopher Wilson\n * MIT Licensed\n */\nvar r=/(?:^|,)\\s*?no-cache\\s*?(?:,|$)/;e.exports=fresh;function fresh(e,a){var t=e[\"if-modified-since\"];var s=e[\"if-none-match\"];if(!t&&!s){return false}var i=e[\"cache-control\"];if(i&&r.test(i)){return false}if(s&&s!==\"*\"){var f=a[\"etag\"];if(!f){return false}var n=true;var u=parseTokenList(s);for(var _=0;_ { - -"use strict"; -eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"Batcher\", ({\n enumerable: true,\n get: function() {\n return Batcher;\n }\n}));\nconst _detachedpromise = __webpack_require__(/*! ./detached-promise */ \"(pages-dir-node)/./node_modules/next/dist/lib/detached-promise.js\");\nclass Batcher {\n constructor(cacheKeyFn, /**\n * A function that will be called to schedule the wrapped function to be\n * executed. This defaults to a function that will execute the function\n * immediately.\n */ schedulerFn = (fn)=>fn()){\n this.cacheKeyFn = cacheKeyFn;\n this.schedulerFn = schedulerFn;\n this.pending = new Map();\n }\n static create(options) {\n return new Batcher(options == null ? void 0 : options.cacheKeyFn, options == null ? void 0 : options.schedulerFn);\n }\n /**\n * Wraps a function in a promise that will be resolved or rejected only once\n * for a given key. This will allow multiple calls to the function to be\n * made, but only one will be executed at a time. The result of the first\n * call will be returned to all callers.\n *\n * @param key the key to use for the cache\n * @param fn the function to wrap\n * @returns a promise that resolves to the result of the function\n */ async batch(key, fn) {\n const cacheKey = this.cacheKeyFn ? await this.cacheKeyFn(key) : key;\n if (cacheKey === null) {\n return fn(cacheKey, Promise.resolve);\n }\n const pending = this.pending.get(cacheKey);\n if (pending) return pending;\n const { promise, resolve, reject } = new _detachedpromise.DetachedPromise();\n this.pending.set(cacheKey, promise);\n this.schedulerFn(async ()=>{\n try {\n const result = await fn(cacheKey, resolve);\n // Resolving a promise multiple times is a no-op, so we can safely\n // resolve all pending promises with the same result.\n resolve(result);\n } catch (err) {\n reject(err);\n } finally{\n this.pending.delete(cacheKey);\n }\n });\n return promise;\n }\n}\n\n//# sourceMappingURL=batcher.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1ub2RlKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvbGliL2JhdGNoZXIuanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYiw4Q0FBNkM7QUFDN0M7QUFDQSxDQUFDLEVBQUM7QUFDRiwyQ0FBMEM7QUFDMUM7QUFDQTtBQUNBO0FBQ0E7QUFDQSxDQUFDLEVBQUM7QUFDRix5QkFBeUIsbUJBQU8sQ0FBQyw2RkFBb0I7QUFDckQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGdCQUFnQiwyQkFBMkI7QUFDM0M7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxjQUFjO0FBQ2Q7QUFDQSxjQUFjO0FBQ2Q7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0E7O0FBRUEiLCJzb3VyY2VzIjpbIkQ6XFxkb25neXVuLXByb2plY3RzXFx0d29cXG5vZGVfbW9kdWxlc1xcbmV4dFxcZGlzdFxcbGliXFxiYXRjaGVyLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7XG4gICAgdmFsdWU6IHRydWVcbn0pO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiQmF0Y2hlclwiLCB7XG4gICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICBnZXQ6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gQmF0Y2hlcjtcbiAgICB9XG59KTtcbmNvbnN0IF9kZXRhY2hlZHByb21pc2UgPSByZXF1aXJlKFwiLi9kZXRhY2hlZC1wcm9taXNlXCIpO1xuY2xhc3MgQmF0Y2hlciB7XG4gICAgY29uc3RydWN0b3IoY2FjaGVLZXlGbiwgLyoqXG4gICAgICogQSBmdW5jdGlvbiB0aGF0IHdpbGwgYmUgY2FsbGVkIHRvIHNjaGVkdWxlIHRoZSB3cmFwcGVkIGZ1bmN0aW9uIHRvIGJlXG4gICAgICogZXhlY3V0ZWQuIFRoaXMgZGVmYXVsdHMgdG8gYSBmdW5jdGlvbiB0aGF0IHdpbGwgZXhlY3V0ZSB0aGUgZnVuY3Rpb25cbiAgICAgKiBpbW1lZGlhdGVseS5cbiAgICAgKi8gc2NoZWR1bGVyRm4gPSAoZm4pPT5mbigpKXtcbiAgICAgICAgdGhpcy5jYWNoZUtleUZuID0gY2FjaGVLZXlGbjtcbiAgICAgICAgdGhpcy5zY2hlZHVsZXJGbiA9IHNjaGVkdWxlckZuO1xuICAgICAgICB0aGlzLnBlbmRpbmcgPSBuZXcgTWFwKCk7XG4gICAgfVxuICAgIHN0YXRpYyBjcmVhdGUob3B0aW9ucykge1xuICAgICAgICByZXR1cm4gbmV3IEJhdGNoZXIob3B0aW9ucyA9PSBudWxsID8gdm9pZCAwIDogb3B0aW9ucy5jYWNoZUtleUZuLCBvcHRpb25zID09IG51bGwgPyB2b2lkIDAgOiBvcHRpb25zLnNjaGVkdWxlckZuKTtcbiAgICB9XG4gICAgLyoqXG4gICAqIFdyYXBzIGEgZnVuY3Rpb24gaW4gYSBwcm9taXNlIHRoYXQgd2lsbCBiZSByZXNvbHZlZCBvciByZWplY3RlZCBvbmx5IG9uY2VcbiAgICogZm9yIGEgZ2l2ZW4ga2V5LiBUaGlzIHdpbGwgYWxsb3cgbXVsdGlwbGUgY2FsbHMgdG8gdGhlIGZ1bmN0aW9uIHRvIGJlXG4gICAqIG1hZGUsIGJ1dCBvbmx5IG9uZSB3aWxsIGJlIGV4ZWN1dGVkIGF0IGEgdGltZS4gVGhlIHJlc3VsdCBvZiB0aGUgZmlyc3RcbiAgICogY2FsbCB3aWxsIGJlIHJldHVybmVkIHRvIGFsbCBjYWxsZXJzLlxuICAgKlxuICAgKiBAcGFyYW0ga2V5IHRoZSBrZXkgdG8gdXNlIGZvciB0aGUgY2FjaGVcbiAgICogQHBhcmFtIGZuIHRoZSBmdW5jdGlvbiB0byB3cmFwXG4gICAqIEByZXR1cm5zIGEgcHJvbWlzZSB0aGF0IHJlc29sdmVzIHRvIHRoZSByZXN1bHQgb2YgdGhlIGZ1bmN0aW9uXG4gICAqLyBhc3luYyBiYXRjaChrZXksIGZuKSB7XG4gICAgICAgIGNvbnN0IGNhY2hlS2V5ID0gdGhpcy5jYWNoZUtleUZuID8gYXdhaXQgdGhpcy5jYWNoZUtleUZuKGtleSkgOiBrZXk7XG4gICAgICAgIGlmIChjYWNoZUtleSA9PT0gbnVsbCkge1xuICAgICAgICAgICAgcmV0dXJuIGZuKGNhY2hlS2V5LCBQcm9taXNlLnJlc29sdmUpO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHBlbmRpbmcgPSB0aGlzLnBlbmRpbmcuZ2V0KGNhY2hlS2V5KTtcbiAgICAgICAgaWYgKHBlbmRpbmcpIHJldHVybiBwZW5kaW5nO1xuICAgICAgICBjb25zdCB7IHByb21pc2UsIHJlc29sdmUsIHJlamVjdCB9ID0gbmV3IF9kZXRhY2hlZHByb21pc2UuRGV0YWNoZWRQcm9taXNlKCk7XG4gICAgICAgIHRoaXMucGVuZGluZy5zZXQoY2FjaGVLZXksIHByb21pc2UpO1xuICAgICAgICB0aGlzLnNjaGVkdWxlckZuKGFzeW5jICgpPT57XG4gICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IGZuKGNhY2hlS2V5LCByZXNvbHZlKTtcbiAgICAgICAgICAgICAgICAvLyBSZXNvbHZpbmcgYSBwcm9taXNlIG11bHRpcGxlIHRpbWVzIGlzIGEgbm8tb3AsIHNvIHdlIGNhbiBzYWZlbHlcbiAgICAgICAgICAgICAgICAvLyByZXNvbHZlIGFsbCBwZW5kaW5nIHByb21pc2VzIHdpdGggdGhlIHNhbWUgcmVzdWx0LlxuICAgICAgICAgICAgICAgIHJlc29sdmUocmVzdWx0KTtcbiAgICAgICAgICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgICAgICAgICAgIHJlamVjdChlcnIpO1xuICAgICAgICAgICAgfSBmaW5hbGx5e1xuICAgICAgICAgICAgICAgIHRoaXMucGVuZGluZy5kZWxldGUoY2FjaGVLZXkpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgICAgcmV0dXJuIHByb21pc2U7XG4gICAgfVxufVxuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1iYXRjaGVyLmpzLm1hcCJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(pages-dir-node)/./node_modules/next/dist/lib/batcher.js\n"); - -/***/ }), - -/***/ "(pages-dir-node)/./node_modules/next/dist/lib/constants.js": -/*!*************************************************!*\ - !*** ./node_modules/next/dist/lib/constants.js ***! - \*************************************************/ -/***/ ((__unused_webpack_module, exports) => { - -"use strict"; -eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n ACTION_SUFFIX: function() {\n return ACTION_SUFFIX;\n },\n APP_DIR_ALIAS: function() {\n return APP_DIR_ALIAS;\n },\n CACHE_ONE_YEAR: function() {\n return CACHE_ONE_YEAR;\n },\n DOT_NEXT_ALIAS: function() {\n return DOT_NEXT_ALIAS;\n },\n ESLINT_DEFAULT_DIRS: function() {\n return ESLINT_DEFAULT_DIRS;\n },\n GSP_NO_RETURNED_VALUE: function() {\n return GSP_NO_RETURNED_VALUE;\n },\n GSSP_COMPONENT_MEMBER_ERROR: function() {\n return GSSP_COMPONENT_MEMBER_ERROR;\n },\n GSSP_NO_RETURNED_VALUE: function() {\n return GSSP_NO_RETURNED_VALUE;\n },\n INFINITE_CACHE: function() {\n return INFINITE_CACHE;\n },\n INSTRUMENTATION_HOOK_FILENAME: function() {\n return INSTRUMENTATION_HOOK_FILENAME;\n },\n MATCHED_PATH_HEADER: function() {\n return MATCHED_PATH_HEADER;\n },\n MIDDLEWARE_FILENAME: function() {\n return MIDDLEWARE_FILENAME;\n },\n MIDDLEWARE_LOCATION_REGEXP: function() {\n return MIDDLEWARE_LOCATION_REGEXP;\n },\n NEXT_BODY_SUFFIX: function() {\n return NEXT_BODY_SUFFIX;\n },\n NEXT_CACHE_IMPLICIT_TAG_ID: function() {\n return NEXT_CACHE_IMPLICIT_TAG_ID;\n },\n NEXT_CACHE_REVALIDATED_TAGS_HEADER: function() {\n return NEXT_CACHE_REVALIDATED_TAGS_HEADER;\n },\n NEXT_CACHE_REVALIDATE_TAG_TOKEN_HEADER: function() {\n return NEXT_CACHE_REVALIDATE_TAG_TOKEN_HEADER;\n },\n NEXT_CACHE_SOFT_TAG_MAX_LENGTH: function() {\n return NEXT_CACHE_SOFT_TAG_MAX_LENGTH;\n },\n NEXT_CACHE_TAGS_HEADER: function() {\n return NEXT_CACHE_TAGS_HEADER;\n },\n NEXT_CACHE_TAG_MAX_ITEMS: function() {\n return NEXT_CACHE_TAG_MAX_ITEMS;\n },\n NEXT_CACHE_TAG_MAX_LENGTH: function() {\n return NEXT_CACHE_TAG_MAX_LENGTH;\n },\n NEXT_DATA_SUFFIX: function() {\n return NEXT_DATA_SUFFIX;\n },\n NEXT_INTERCEPTION_MARKER_PREFIX: function() {\n return NEXT_INTERCEPTION_MARKER_PREFIX;\n },\n NEXT_META_SUFFIX: function() {\n return NEXT_META_SUFFIX;\n },\n NEXT_QUERY_PARAM_PREFIX: function() {\n return NEXT_QUERY_PARAM_PREFIX;\n },\n NEXT_RESUME_HEADER: function() {\n return NEXT_RESUME_HEADER;\n },\n NON_STANDARD_NODE_ENV: function() {\n return NON_STANDARD_NODE_ENV;\n },\n PAGES_DIR_ALIAS: function() {\n return PAGES_DIR_ALIAS;\n },\n PRERENDER_REVALIDATE_HEADER: function() {\n return PRERENDER_REVALIDATE_HEADER;\n },\n PRERENDER_REVALIDATE_ONLY_GENERATED_HEADER: function() {\n return PRERENDER_REVALIDATE_ONLY_GENERATED_HEADER;\n },\n PUBLIC_DIR_MIDDLEWARE_CONFLICT: function() {\n return PUBLIC_DIR_MIDDLEWARE_CONFLICT;\n },\n ROOT_DIR_ALIAS: function() {\n return ROOT_DIR_ALIAS;\n },\n RSC_ACTION_CLIENT_WRAPPER_ALIAS: function() {\n return RSC_ACTION_CLIENT_WRAPPER_ALIAS;\n },\n RSC_ACTION_ENCRYPTION_ALIAS: function() {\n return RSC_ACTION_ENCRYPTION_ALIAS;\n },\n RSC_ACTION_PROXY_ALIAS: function() {\n return RSC_ACTION_PROXY_ALIAS;\n },\n RSC_ACTION_VALIDATE_ALIAS: function() {\n return RSC_ACTION_VALIDATE_ALIAS;\n },\n RSC_CACHE_WRAPPER_ALIAS: function() {\n return RSC_CACHE_WRAPPER_ALIAS;\n },\n RSC_DYNAMIC_IMPORT_WRAPPER_ALIAS: function() {\n return RSC_DYNAMIC_IMPORT_WRAPPER_ALIAS;\n },\n RSC_MOD_REF_PROXY_ALIAS: function() {\n return RSC_MOD_REF_PROXY_ALIAS;\n },\n RSC_PREFETCH_SUFFIX: function() {\n return RSC_PREFETCH_SUFFIX;\n },\n RSC_SEGMENTS_DIR_SUFFIX: function() {\n return RSC_SEGMENTS_DIR_SUFFIX;\n },\n RSC_SEGMENT_SUFFIX: function() {\n return RSC_SEGMENT_SUFFIX;\n },\n RSC_SUFFIX: function() {\n return RSC_SUFFIX;\n },\n SERVER_PROPS_EXPORT_ERROR: function() {\n return SERVER_PROPS_EXPORT_ERROR;\n },\n SERVER_PROPS_GET_INIT_PROPS_CONFLICT: function() {\n return SERVER_PROPS_GET_INIT_PROPS_CONFLICT;\n },\n SERVER_PROPS_SSG_CONFLICT: function() {\n return SERVER_PROPS_SSG_CONFLICT;\n },\n SERVER_RUNTIME: function() {\n return SERVER_RUNTIME;\n },\n SSG_FALLBACK_EXPORT_ERROR: function() {\n return SSG_FALLBACK_EXPORT_ERROR;\n },\n SSG_GET_INITIAL_PROPS_CONFLICT: function() {\n return SSG_GET_INITIAL_PROPS_CONFLICT;\n },\n STATIC_STATUS_PAGE_GET_INITIAL_PROPS_ERROR: function() {\n return STATIC_STATUS_PAGE_GET_INITIAL_PROPS_ERROR;\n },\n UNSTABLE_REVALIDATE_RENAME_ERROR: function() {\n return UNSTABLE_REVALIDATE_RENAME_ERROR;\n },\n WEBPACK_LAYERS: function() {\n return WEBPACK_LAYERS;\n },\n WEBPACK_RESOURCE_QUERIES: function() {\n return WEBPACK_RESOURCE_QUERIES;\n }\n});\nconst NEXT_QUERY_PARAM_PREFIX = 'nxtP';\nconst NEXT_INTERCEPTION_MARKER_PREFIX = 'nxtI';\nconst MATCHED_PATH_HEADER = 'x-matched-path';\nconst PRERENDER_REVALIDATE_HEADER = 'x-prerender-revalidate';\nconst PRERENDER_REVALIDATE_ONLY_GENERATED_HEADER = 'x-prerender-revalidate-if-generated';\nconst RSC_PREFETCH_SUFFIX = '.prefetch.rsc';\nconst RSC_SEGMENTS_DIR_SUFFIX = '.segments';\nconst RSC_SEGMENT_SUFFIX = '.segment.rsc';\nconst RSC_SUFFIX = '.rsc';\nconst ACTION_SUFFIX = '.action';\nconst NEXT_DATA_SUFFIX = '.json';\nconst NEXT_META_SUFFIX = '.meta';\nconst NEXT_BODY_SUFFIX = '.body';\nconst NEXT_CACHE_TAGS_HEADER = 'x-next-cache-tags';\nconst NEXT_CACHE_REVALIDATED_TAGS_HEADER = 'x-next-revalidated-tags';\nconst NEXT_CACHE_REVALIDATE_TAG_TOKEN_HEADER = 'x-next-revalidate-tag-token';\nconst NEXT_RESUME_HEADER = 'next-resume';\nconst NEXT_CACHE_TAG_MAX_ITEMS = 128;\nconst NEXT_CACHE_TAG_MAX_LENGTH = 256;\nconst NEXT_CACHE_SOFT_TAG_MAX_LENGTH = 1024;\nconst NEXT_CACHE_IMPLICIT_TAG_ID = '_N_T_';\nconst CACHE_ONE_YEAR = 31536000;\nconst INFINITE_CACHE = 0xfffffffe;\nconst MIDDLEWARE_FILENAME = 'middleware';\nconst MIDDLEWARE_LOCATION_REGEXP = `(?:src/)?${MIDDLEWARE_FILENAME}`;\nconst INSTRUMENTATION_HOOK_FILENAME = 'instrumentation';\nconst PAGES_DIR_ALIAS = 'private-next-pages';\nconst DOT_NEXT_ALIAS = 'private-dot-next';\nconst ROOT_DIR_ALIAS = 'private-next-root-dir';\nconst APP_DIR_ALIAS = 'private-next-app-dir';\nconst RSC_MOD_REF_PROXY_ALIAS = 'private-next-rsc-mod-ref-proxy';\nconst RSC_ACTION_VALIDATE_ALIAS = 'private-next-rsc-action-validate';\nconst RSC_ACTION_PROXY_ALIAS = 'private-next-rsc-server-reference';\nconst RSC_CACHE_WRAPPER_ALIAS = 'private-next-rsc-cache-wrapper';\nconst RSC_DYNAMIC_IMPORT_WRAPPER_ALIAS = 'private-next-rsc-track-dynamic-import';\nconst RSC_ACTION_ENCRYPTION_ALIAS = 'private-next-rsc-action-encryption';\nconst RSC_ACTION_CLIENT_WRAPPER_ALIAS = 'private-next-rsc-action-client-wrapper';\nconst PUBLIC_DIR_MIDDLEWARE_CONFLICT = `You can not have a '_next' folder inside of your public folder. This conflicts with the internal '/_next' route. https://nextjs.org/docs/messages/public-next-folder-conflict`;\nconst SSG_GET_INITIAL_PROPS_CONFLICT = `You can not use getInitialProps with getStaticProps. To use SSG, please remove your getInitialProps`;\nconst SERVER_PROPS_GET_INIT_PROPS_CONFLICT = `You can not use getInitialProps with getServerSideProps. Please remove getInitialProps.`;\nconst SERVER_PROPS_SSG_CONFLICT = `You can not use getStaticProps or getStaticPaths with getServerSideProps. To use SSG, please remove getServerSideProps`;\nconst STATIC_STATUS_PAGE_GET_INITIAL_PROPS_ERROR = `can not have getInitialProps/getServerSideProps, https://nextjs.org/docs/messages/404-get-initial-props`;\nconst SERVER_PROPS_EXPORT_ERROR = `pages with \\`getServerSideProps\\` can not be exported. See more info here: https://nextjs.org/docs/messages/gssp-export`;\nconst GSP_NO_RETURNED_VALUE = 'Your `getStaticProps` function did not return an object. Did you forget to add a `return`?';\nconst GSSP_NO_RETURNED_VALUE = 'Your `getServerSideProps` function did not return an object. Did you forget to add a `return`?';\nconst UNSTABLE_REVALIDATE_RENAME_ERROR = 'The `unstable_revalidate` property is available for general use.\\n' + 'Please use `revalidate` instead.';\nconst GSSP_COMPONENT_MEMBER_ERROR = `can not be attached to a page's component and must be exported from the page. See more info here: https://nextjs.org/docs/messages/gssp-component-member`;\nconst NON_STANDARD_NODE_ENV = `You are using a non-standard \"NODE_ENV\" value in your environment. This creates inconsistencies in the project and is strongly advised against. Read more: https://nextjs.org/docs/messages/non-standard-node-env`;\nconst SSG_FALLBACK_EXPORT_ERROR = `Pages with \\`fallback\\` enabled in \\`getStaticPaths\\` can not be exported. See more info here: https://nextjs.org/docs/messages/ssg-fallback-true-export`;\nconst ESLINT_DEFAULT_DIRS = [\n 'app',\n 'pages',\n 'components',\n 'lib',\n 'src'\n];\nconst SERVER_RUNTIME = {\n edge: 'edge',\n experimentalEdge: 'experimental-edge',\n nodejs: 'nodejs'\n};\n/**\n * The names of the webpack layers. These layers are the primitives for the\n * webpack chunks.\n */ const WEBPACK_LAYERS_NAMES = {\n /**\n * The layer for the shared code between the client and server bundles.\n */ shared: 'shared',\n /**\n * The layer for server-only runtime and picking up `react-server` export conditions.\n * Including app router RSC pages and app router custom routes and metadata routes.\n */ reactServerComponents: 'rsc',\n /**\n * Server Side Rendering layer for app (ssr).\n */ serverSideRendering: 'ssr',\n /**\n * The browser client bundle layer for actions.\n */ actionBrowser: 'action-browser',\n /**\n * The Node.js bundle layer for the API routes.\n */ apiNode: 'api-node',\n /**\n * The Edge Lite bundle layer for the API routes.\n */ apiEdge: 'api-edge',\n /**\n * The layer for the middleware code.\n */ middleware: 'middleware',\n /**\n * The layer for the instrumentation hooks.\n */ instrument: 'instrument',\n /**\n * The layer for assets on the edge.\n */ edgeAsset: 'edge-asset',\n /**\n * The browser client bundle layer for App directory.\n */ appPagesBrowser: 'app-pages-browser',\n /**\n * The browser client bundle layer for Pages directory.\n */ pagesDirBrowser: 'pages-dir-browser',\n /**\n * The Edge Lite bundle layer for Pages directory.\n */ pagesDirEdge: 'pages-dir-edge',\n /**\n * The Node.js bundle layer for Pages directory.\n */ pagesDirNode: 'pages-dir-node'\n};\nconst WEBPACK_LAYERS = {\n ...WEBPACK_LAYERS_NAMES,\n GROUP: {\n builtinReact: [\n WEBPACK_LAYERS_NAMES.reactServerComponents,\n WEBPACK_LAYERS_NAMES.actionBrowser\n ],\n serverOnly: [\n WEBPACK_LAYERS_NAMES.reactServerComponents,\n WEBPACK_LAYERS_NAMES.actionBrowser,\n WEBPACK_LAYERS_NAMES.instrument,\n WEBPACK_LAYERS_NAMES.middleware\n ],\n neutralTarget: [\n // pages api\n WEBPACK_LAYERS_NAMES.apiNode,\n WEBPACK_LAYERS_NAMES.apiEdge\n ],\n clientOnly: [\n WEBPACK_LAYERS_NAMES.serverSideRendering,\n WEBPACK_LAYERS_NAMES.appPagesBrowser\n ],\n bundled: [\n WEBPACK_LAYERS_NAMES.reactServerComponents,\n WEBPACK_LAYERS_NAMES.actionBrowser,\n WEBPACK_LAYERS_NAMES.serverSideRendering,\n WEBPACK_LAYERS_NAMES.appPagesBrowser,\n WEBPACK_LAYERS_NAMES.shared,\n WEBPACK_LAYERS_NAMES.instrument,\n WEBPACK_LAYERS_NAMES.middleware\n ],\n appPages: [\n // app router pages and layouts\n WEBPACK_LAYERS_NAMES.reactServerComponents,\n WEBPACK_LAYERS_NAMES.serverSideRendering,\n WEBPACK_LAYERS_NAMES.appPagesBrowser,\n WEBPACK_LAYERS_NAMES.actionBrowser\n ]\n }\n};\nconst WEBPACK_RESOURCE_QUERIES = {\n edgeSSREntry: '__next_edge_ssr_entry__',\n metadata: '__next_metadata__',\n metadataRoute: '__next_metadata_route__',\n metadataImageMeta: '__next_metadata_image_meta__'\n};\n\n//# sourceMappingURL=constants.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1ub2RlKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvbGliL2NvbnN0YW50cy5qcyIsIm1hcHBpbmdzIjoiQUFBYTtBQUNiLDhDQUE2QztBQUM3QztBQUNBLENBQUMsRUFBQztBQUNGLE1BQU0sQ0FzREw7QUFDRDtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQSxDQUFDO0FBQ0Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsK0NBQStDLG9CQUFvQjtBQUNuRTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQSIsInNvdXJjZXMiOlsiRDpcXGRvbmd5dW4tcHJvamVjdHNcXHR3b1xcbm9kZV9tb2R1bGVzXFxuZXh0XFxkaXN0XFxsaWJcXGNvbnN0YW50cy5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwge1xuICAgIHZhbHVlOiB0cnVlXG59KTtcbjAgJiYgKG1vZHVsZS5leHBvcnRzID0ge1xuICAgIEFDVElPTl9TVUZGSVg6IG51bGwsXG4gICAgQVBQX0RJUl9BTElBUzogbnVsbCxcbiAgICBDQUNIRV9PTkVfWUVBUjogbnVsbCxcbiAgICBET1RfTkVYVF9BTElBUzogbnVsbCxcbiAgICBFU0xJTlRfREVGQVVMVF9ESVJTOiBudWxsLFxuICAgIEdTUF9OT19SRVRVUk5FRF9WQUxVRTogbnVsbCxcbiAgICBHU1NQX0NPTVBPTkVOVF9NRU1CRVJfRVJST1I6IG51bGwsXG4gICAgR1NTUF9OT19SRVRVUk5FRF9WQUxVRTogbnVsbCxcbiAgICBJTkZJTklURV9DQUNIRTogbnVsbCxcbiAgICBJTlNUUlVNRU5UQVRJT05fSE9PS19GSUxFTkFNRTogbnVsbCxcbiAgICBNQVRDSEVEX1BBVEhfSEVBREVSOiBudWxsLFxuICAgIE1JRERMRVdBUkVfRklMRU5BTUU6IG51bGwsXG4gICAgTUlERExFV0FSRV9MT0NBVElPTl9SRUdFWFA6IG51bGwsXG4gICAgTkVYVF9CT0RZX1NVRkZJWDogbnVsbCxcbiAgICBORVhUX0NBQ0hFX0lNUExJQ0lUX1RBR19JRDogbnVsbCxcbiAgICBORVhUX0NBQ0hFX1JFVkFMSURBVEVEX1RBR1NfSEVBREVSOiBudWxsLFxuICAgIE5FWFRfQ0FDSEVfUkVWQUxJREFURV9UQUdfVE9LRU5fSEVBREVSOiBudWxsLFxuICAgIE5FWFRfQ0FDSEVfU09GVF9UQUdfTUFYX0xFTkdUSDogbnVsbCxcbiAgICBORVhUX0NBQ0hFX1RBR1NfSEVBREVSOiBudWxsLFxuICAgIE5FWFRfQ0FDSEVfVEFHX01BWF9JVEVNUzogbnVsbCxcbiAgICBORVhUX0NBQ0hFX1RBR19NQVhfTEVOR1RIOiBudWxsLFxuICAgIE5FWFRfREFUQV9TVUZGSVg6IG51bGwsXG4gICAgTkVYVF9JTlRFUkNFUFRJT05fTUFSS0VSX1BSRUZJWDogbnVsbCxcbiAgICBORVhUX01FVEFfU1VGRklYOiBudWxsLFxuICAgIE5FWFRfUVVFUllfUEFSQU1fUFJFRklYOiBudWxsLFxuICAgIE5FWFRfUkVTVU1FX0hFQURFUjogbnVsbCxcbiAgICBOT05fU1RBTkRBUkRfTk9ERV9FTlY6IG51bGwsXG4gICAgUEFHRVNfRElSX0FMSUFTOiBudWxsLFxuICAgIFBSRVJFTkRFUl9SRVZBTElEQVRFX0hFQURFUjogbnVsbCxcbiAgICBQUkVSRU5ERVJfUkVWQUxJREFURV9PTkxZX0dFTkVSQVRFRF9IRUFERVI6IG51bGwsXG4gICAgUFVCTElDX0RJUl9NSURETEVXQVJFX0NPTkZMSUNUOiBudWxsLFxuICAgIFJPT1RfRElSX0FMSUFTOiBudWxsLFxuICAgIFJTQ19BQ1RJT05fQ0xJRU5UX1dSQVBQRVJfQUxJQVM6IG51bGwsXG4gICAgUlNDX0FDVElPTl9FTkNSWVBUSU9OX0FMSUFTOiBudWxsLFxuICAgIFJTQ19BQ1RJT05fUFJPWFlfQUxJQVM6IG51bGwsXG4gICAgUlNDX0FDVElPTl9WQUxJREFURV9BTElBUzogbnVsbCxcbiAgICBSU0NfQ0FDSEVfV1JBUFBFUl9BTElBUzogbnVsbCxcbiAgICBSU0NfRFlOQU1JQ19JTVBPUlRfV1JBUFBFUl9BTElBUzogbnVsbCxcbiAgICBSU0NfTU9EX1JFRl9QUk9YWV9BTElBUzogbnVsbCxcbiAgICBSU0NfUFJFRkVUQ0hfU1VGRklYOiBudWxsLFxuICAgIFJTQ19TRUdNRU5UU19ESVJfU1VGRklYOiBudWxsLFxuICAgIFJTQ19TRUdNRU5UX1NVRkZJWDogbnVsbCxcbiAgICBSU0NfU1VGRklYOiBudWxsLFxuICAgIFNFUlZFUl9QUk9QU19FWFBPUlRfRVJST1I6IG51bGwsXG4gICAgU0VSVkVSX1BST1BTX0dFVF9JTklUX1BST1BTX0NPTkZMSUNUOiBudWxsLFxuICAgIFNFUlZFUl9QUk9QU19TU0dfQ09ORkxJQ1Q6IG51bGwsXG4gICAgU0VSVkVSX1JVTlRJTUU6IG51bGwsXG4gICAgU1NHX0ZBTExCQUNLX0VYUE9SVF9FUlJPUjogbnVsbCxcbiAgICBTU0dfR0VUX0lOSVRJQUxfUFJPUFNfQ09ORkxJQ1Q6IG51bGwsXG4gICAgU1RBVElDX1NUQVRVU19QQUdFX0dFVF9JTklUSUFMX1BST1BTX0VSUk9SOiBudWxsLFxuICAgIFVOU1RBQkxFX1JFVkFMSURBVEVfUkVOQU1FX0VSUk9SOiBudWxsLFxuICAgIFdFQlBBQ0tfTEFZRVJTOiBudWxsLFxuICAgIFdFQlBBQ0tfUkVTT1VSQ0VfUVVFUklFUzogbnVsbFxufSk7XG5mdW5jdGlvbiBfZXhwb3J0KHRhcmdldCwgYWxsKSB7XG4gICAgZm9yKHZhciBuYW1lIGluIGFsbClPYmplY3QuZGVmaW5lUHJvcGVydHkodGFyZ2V0LCBuYW1lLCB7XG4gICAgICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgICAgIGdldDogYWxsW25hbWVdXG4gICAgfSk7XG59XG5fZXhwb3J0KGV4cG9ydHMsIHtcbiAgICBBQ1RJT05fU1VGRklYOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIEFDVElPTl9TVUZGSVg7XG4gICAgfSxcbiAgICBBUFBfRElSX0FMSUFTOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIEFQUF9ESVJfQUxJQVM7XG4gICAgfSxcbiAgICBDQUNIRV9PTkVfWUVBUjogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBDQUNIRV9PTkVfWUVBUjtcbiAgICB9LFxuICAgIERPVF9ORVhUX0FMSUFTOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIERPVF9ORVhUX0FMSUFTO1xuICAgIH0sXG4gICAgRVNMSU5UX0RFRkFVTFRfRElSUzogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBFU0xJTlRfREVGQVVMVF9ESVJTO1xuICAgIH0sXG4gICAgR1NQX05PX1JFVFVSTkVEX1ZBTFVFOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIEdTUF9OT19SRVRVUk5FRF9WQUxVRTtcbiAgICB9LFxuICAgIEdTU1BfQ09NUE9ORU5UX01FTUJFUl9FUlJPUjogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBHU1NQX0NPTVBPTkVOVF9NRU1CRVJfRVJST1I7XG4gICAgfSxcbiAgICBHU1NQX05PX1JFVFVSTkVEX1ZBTFVFOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIEdTU1BfTk9fUkVUVVJORURfVkFMVUU7XG4gICAgfSxcbiAgICBJTkZJTklURV9DQUNIRTogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBJTkZJTklURV9DQUNIRTtcbiAgICB9LFxuICAgIElOU1RSVU1FTlRBVElPTl9IT09LX0ZJTEVOQU1FOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIElOU1RSVU1FTlRBVElPTl9IT09LX0ZJTEVOQU1FO1xuICAgIH0sXG4gICAgTUFUQ0hFRF9QQVRIX0hFQURFUjogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBNQVRDSEVEX1BBVEhfSEVBREVSO1xuICAgIH0sXG4gICAgTUlERExFV0FSRV9GSUxFTkFNRTogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBNSURETEVXQVJFX0ZJTEVOQU1FO1xuICAgIH0sXG4gICAgTUlERExFV0FSRV9MT0NBVElPTl9SRUdFWFA6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gTUlERExFV0FSRV9MT0NBVElPTl9SRUdFWFA7XG4gICAgfSxcbiAgICBORVhUX0JPRFlfU1VGRklYOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIE5FWFRfQk9EWV9TVUZGSVg7XG4gICAgfSxcbiAgICBORVhUX0NBQ0hFX0lNUExJQ0lUX1RBR19JRDogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBORVhUX0NBQ0hFX0lNUExJQ0lUX1RBR19JRDtcbiAgICB9LFxuICAgIE5FWFRfQ0FDSEVfUkVWQUxJREFURURfVEFHU19IRUFERVI6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gTkVYVF9DQUNIRV9SRVZBTElEQVRFRF9UQUdTX0hFQURFUjtcbiAgICB9LFxuICAgIE5FWFRfQ0FDSEVfUkVWQUxJREFURV9UQUdfVE9LRU5fSEVBREVSOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIE5FWFRfQ0FDSEVfUkVWQUxJREFURV9UQUdfVE9LRU5fSEVBREVSO1xuICAgIH0sXG4gICAgTkVYVF9DQUNIRV9TT0ZUX1RBR19NQVhfTEVOR1RIOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIE5FWFRfQ0FDSEVfU09GVF9UQUdfTUFYX0xFTkdUSDtcbiAgICB9LFxuICAgIE5FWFRfQ0FDSEVfVEFHU19IRUFERVI6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gTkVYVF9DQUNIRV9UQUdTX0hFQURFUjtcbiAgICB9LFxuICAgIE5FWFRfQ0FDSEVfVEFHX01BWF9JVEVNUzogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBORVhUX0NBQ0hFX1RBR19NQVhfSVRFTVM7XG4gICAgfSxcbiAgICBORVhUX0NBQ0hFX1RBR19NQVhfTEVOR1RIOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIE5FWFRfQ0FDSEVfVEFHX01BWF9MRU5HVEg7XG4gICAgfSxcbiAgICBORVhUX0RBVEFfU1VGRklYOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIE5FWFRfREFUQV9TVUZGSVg7XG4gICAgfSxcbiAgICBORVhUX0lOVEVSQ0VQVElPTl9NQVJLRVJfUFJFRklYOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIE5FWFRfSU5URVJDRVBUSU9OX01BUktFUl9QUkVGSVg7XG4gICAgfSxcbiAgICBORVhUX01FVEFfU1VGRklYOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIE5FWFRfTUVUQV9TVUZGSVg7XG4gICAgfSxcbiAgICBORVhUX1FVRVJZX1BBUkFNX1BSRUZJWDogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBORVhUX1FVRVJZX1BBUkFNX1BSRUZJWDtcbiAgICB9LFxuICAgIE5FWFRfUkVTVU1FX0hFQURFUjogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBORVhUX1JFU1VNRV9IRUFERVI7XG4gICAgfSxcbiAgICBOT05fU1RBTkRBUkRfTk9ERV9FTlY6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gTk9OX1NUQU5EQVJEX05PREVfRU5WO1xuICAgIH0sXG4gICAgUEFHRVNfRElSX0FMSUFTOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIFBBR0VTX0RJUl9BTElBUztcbiAgICB9LFxuICAgIFBSRVJFTkRFUl9SRVZBTElEQVRFX0hFQURFUjogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBQUkVSRU5ERVJfUkVWQUxJREFURV9IRUFERVI7XG4gICAgfSxcbiAgICBQUkVSRU5ERVJfUkVWQUxJREFURV9PTkxZX0dFTkVSQVRFRF9IRUFERVI6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gUFJFUkVOREVSX1JFVkFMSURBVEVfT05MWV9HRU5FUkFURURfSEVBREVSO1xuICAgIH0sXG4gICAgUFVCTElDX0RJUl9NSURETEVXQVJFX0NPTkZMSUNUOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIFBVQkxJQ19ESVJfTUlERExFV0FSRV9DT05GTElDVDtcbiAgICB9LFxuICAgIFJPT1RfRElSX0FMSUFTOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIFJPT1RfRElSX0FMSUFTO1xuICAgIH0sXG4gICAgUlNDX0FDVElPTl9DTElFTlRfV1JBUFBFUl9BTElBUzogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBSU0NfQUNUSU9OX0NMSUVOVF9XUkFQUEVSX0FMSUFTO1xuICAgIH0sXG4gICAgUlNDX0FDVElPTl9FTkNSWVBUSU9OX0FMSUFTOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIFJTQ19BQ1RJT05fRU5DUllQVElPTl9BTElBUztcbiAgICB9LFxuICAgIFJTQ19BQ1RJT05fUFJPWFlfQUxJQVM6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gUlNDX0FDVElPTl9QUk9YWV9BTElBUztcbiAgICB9LFxuICAgIFJTQ19BQ1RJT05fVkFMSURBVEVfQUxJQVM6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gUlNDX0FDVElPTl9WQUxJREFURV9BTElBUztcbiAgICB9LFxuICAgIFJTQ19DQUNIRV9XUkFQUEVSX0FMSUFTOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIFJTQ19DQUNIRV9XUkFQUEVSX0FMSUFTO1xuICAgIH0sXG4gICAgUlNDX0RZTkFNSUNfSU1QT1JUX1dSQVBQRVJfQUxJQVM6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gUlNDX0RZTkFNSUNfSU1QT1JUX1dSQVBQRVJfQUxJQVM7XG4gICAgfSxcbiAgICBSU0NfTU9EX1JFRl9QUk9YWV9BTElBUzogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBSU0NfTU9EX1JFRl9QUk9YWV9BTElBUztcbiAgICB9LFxuICAgIFJTQ19QUkVGRVRDSF9TVUZGSVg6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gUlNDX1BSRUZFVENIX1NVRkZJWDtcbiAgICB9LFxuICAgIFJTQ19TRUdNRU5UU19ESVJfU1VGRklYOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIFJTQ19TRUdNRU5UU19ESVJfU1VGRklYO1xuICAgIH0sXG4gICAgUlNDX1NFR01FTlRfU1VGRklYOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIFJTQ19TRUdNRU5UX1NVRkZJWDtcbiAgICB9LFxuICAgIFJTQ19TVUZGSVg6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gUlNDX1NVRkZJWDtcbiAgICB9LFxuICAgIFNFUlZFUl9QUk9QU19FWFBPUlRfRVJST1I6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gU0VSVkVSX1BST1BTX0VYUE9SVF9FUlJPUjtcbiAgICB9LFxuICAgIFNFUlZFUl9QUk9QU19HRVRfSU5JVF9QUk9QU19DT05GTElDVDogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBTRVJWRVJfUFJPUFNfR0VUX0lOSVRfUFJPUFNfQ09ORkxJQ1Q7XG4gICAgfSxcbiAgICBTRVJWRVJfUFJPUFNfU1NHX0NPTkZMSUNUOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIFNFUlZFUl9QUk9QU19TU0dfQ09ORkxJQ1Q7XG4gICAgfSxcbiAgICBTRVJWRVJfUlVOVElNRTogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBTRVJWRVJfUlVOVElNRTtcbiAgICB9LFxuICAgIFNTR19GQUxMQkFDS19FWFBPUlRfRVJST1I6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gU1NHX0ZBTExCQUNLX0VYUE9SVF9FUlJPUjtcbiAgICB9LFxuICAgIFNTR19HRVRfSU5JVElBTF9QUk9QU19DT05GTElDVDogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBTU0dfR0VUX0lOSVRJQUxfUFJPUFNfQ09ORkxJQ1Q7XG4gICAgfSxcbiAgICBTVEFUSUNfU1RBVFVTX1BBR0VfR0VUX0lOSVRJQUxfUFJPUFNfRVJST1I6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gU1RBVElDX1NUQVRVU19QQUdFX0dFVF9JTklUSUFMX1BST1BTX0VSUk9SO1xuICAgIH0sXG4gICAgVU5TVEFCTEVfUkVWQUxJREFURV9SRU5BTUVfRVJST1I6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gVU5TVEFCTEVfUkVWQUxJREFURV9SRU5BTUVfRVJST1I7XG4gICAgfSxcbiAgICBXRUJQQUNLX0xBWUVSUzogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBXRUJQQUNLX0xBWUVSUztcbiAgICB9LFxuICAgIFdFQlBBQ0tfUkVTT1VSQ0VfUVVFUklFUzogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBXRUJQQUNLX1JFU09VUkNFX1FVRVJJRVM7XG4gICAgfVxufSk7XG5jb25zdCBORVhUX1FVRVJZX1BBUkFNX1BSRUZJWCA9ICdueHRQJztcbmNvbnN0IE5FWFRfSU5URVJDRVBUSU9OX01BUktFUl9QUkVGSVggPSAnbnh0SSc7XG5jb25zdCBNQVRDSEVEX1BBVEhfSEVBREVSID0gJ3gtbWF0Y2hlZC1wYXRoJztcbmNvbnN0IFBSRVJFTkRFUl9SRVZBTElEQVRFX0hFQURFUiA9ICd4LXByZXJlbmRlci1yZXZhbGlkYXRlJztcbmNvbnN0IFBSRVJFTkRFUl9SRVZBTElEQVRFX09OTFlfR0VORVJBVEVEX0hFQURFUiA9ICd4LXByZXJlbmRlci1yZXZhbGlkYXRlLWlmLWdlbmVyYXRlZCc7XG5jb25zdCBSU0NfUFJFRkVUQ0hfU1VGRklYID0gJy5wcmVmZXRjaC5yc2MnO1xuY29uc3QgUlNDX1NFR01FTlRTX0RJUl9TVUZGSVggPSAnLnNlZ21lbnRzJztcbmNvbnN0IFJTQ19TRUdNRU5UX1NVRkZJWCA9ICcuc2VnbWVudC5yc2MnO1xuY29uc3QgUlNDX1NVRkZJWCA9ICcucnNjJztcbmNvbnN0IEFDVElPTl9TVUZGSVggPSAnLmFjdGlvbic7XG5jb25zdCBORVhUX0RBVEFfU1VGRklYID0gJy5qc29uJztcbmNvbnN0IE5FWFRfTUVUQV9TVUZGSVggPSAnLm1ldGEnO1xuY29uc3QgTkVYVF9CT0RZX1NVRkZJWCA9ICcuYm9keSc7XG5jb25zdCBORVhUX0NBQ0hFX1RBR1NfSEVBREVSID0gJ3gtbmV4dC1jYWNoZS10YWdzJztcbmNvbnN0IE5FWFRfQ0FDSEVfUkVWQUxJREFURURfVEFHU19IRUFERVIgPSAneC1uZXh0LXJldmFsaWRhdGVkLXRhZ3MnO1xuY29uc3QgTkVYVF9DQUNIRV9SRVZBTElEQVRFX1RBR19UT0tFTl9IRUFERVIgPSAneC1uZXh0LXJldmFsaWRhdGUtdGFnLXRva2VuJztcbmNvbnN0IE5FWFRfUkVTVU1FX0hFQURFUiA9ICduZXh0LXJlc3VtZSc7XG5jb25zdCBORVhUX0NBQ0hFX1RBR19NQVhfSVRFTVMgPSAxMjg7XG5jb25zdCBORVhUX0NBQ0hFX1RBR19NQVhfTEVOR1RIID0gMjU2O1xuY29uc3QgTkVYVF9DQUNIRV9TT0ZUX1RBR19NQVhfTEVOR1RIID0gMTAyNDtcbmNvbnN0IE5FWFRfQ0FDSEVfSU1QTElDSVRfVEFHX0lEID0gJ19OX1RfJztcbmNvbnN0IENBQ0hFX09ORV9ZRUFSID0gMzE1MzYwMDA7XG5jb25zdCBJTkZJTklURV9DQUNIRSA9IDB4ZmZmZmZmZmU7XG5jb25zdCBNSURETEVXQVJFX0ZJTEVOQU1FID0gJ21pZGRsZXdhcmUnO1xuY29uc3QgTUlERExFV0FSRV9MT0NBVElPTl9SRUdFWFAgPSBgKD86c3JjLyk/JHtNSURETEVXQVJFX0ZJTEVOQU1FfWA7XG5jb25zdCBJTlNUUlVNRU5UQVRJT05fSE9PS19GSUxFTkFNRSA9ICdpbnN0cnVtZW50YXRpb24nO1xuY29uc3QgUEFHRVNfRElSX0FMSUFTID0gJ3ByaXZhdGUtbmV4dC1wYWdlcyc7XG5jb25zdCBET1RfTkVYVF9BTElBUyA9ICdwcml2YXRlLWRvdC1uZXh0JztcbmNvbnN0IFJPT1RfRElSX0FMSUFTID0gJ3ByaXZhdGUtbmV4dC1yb290LWRpcic7XG5jb25zdCBBUFBfRElSX0FMSUFTID0gJ3ByaXZhdGUtbmV4dC1hcHAtZGlyJztcbmNvbnN0IFJTQ19NT0RfUkVGX1BST1hZX0FMSUFTID0gJ3ByaXZhdGUtbmV4dC1yc2MtbW9kLXJlZi1wcm94eSc7XG5jb25zdCBSU0NfQUNUSU9OX1ZBTElEQVRFX0FMSUFTID0gJ3ByaXZhdGUtbmV4dC1yc2MtYWN0aW9uLXZhbGlkYXRlJztcbmNvbnN0IFJTQ19BQ1RJT05fUFJPWFlfQUxJQVMgPSAncHJpdmF0ZS1uZXh0LXJzYy1zZXJ2ZXItcmVmZXJlbmNlJztcbmNvbnN0IFJTQ19DQUNIRV9XUkFQUEVSX0FMSUFTID0gJ3ByaXZhdGUtbmV4dC1yc2MtY2FjaGUtd3JhcHBlcic7XG5jb25zdCBSU0NfRFlOQU1JQ19JTVBPUlRfV1JBUFBFUl9BTElBUyA9ICdwcml2YXRlLW5leHQtcnNjLXRyYWNrLWR5bmFtaWMtaW1wb3J0JztcbmNvbnN0IFJTQ19BQ1RJT05fRU5DUllQVElPTl9BTElBUyA9ICdwcml2YXRlLW5leHQtcnNjLWFjdGlvbi1lbmNyeXB0aW9uJztcbmNvbnN0IFJTQ19BQ1RJT05fQ0xJRU5UX1dSQVBQRVJfQUxJQVMgPSAncHJpdmF0ZS1uZXh0LXJzYy1hY3Rpb24tY2xpZW50LXdyYXBwZXInO1xuY29uc3QgUFVCTElDX0RJUl9NSURETEVXQVJFX0NPTkZMSUNUID0gYFlvdSBjYW4gbm90IGhhdmUgYSAnX25leHQnIGZvbGRlciBpbnNpZGUgb2YgeW91ciBwdWJsaWMgZm9sZGVyLiBUaGlzIGNvbmZsaWN0cyB3aXRoIHRoZSBpbnRlcm5hbCAnL19uZXh0JyByb3V0ZS4gaHR0cHM6Ly9uZXh0anMub3JnL2RvY3MvbWVzc2FnZXMvcHVibGljLW5leHQtZm9sZGVyLWNvbmZsaWN0YDtcbmNvbnN0IFNTR19HRVRfSU5JVElBTF9QUk9QU19DT05GTElDVCA9IGBZb3UgY2FuIG5vdCB1c2UgZ2V0SW5pdGlhbFByb3BzIHdpdGggZ2V0U3RhdGljUHJvcHMuIFRvIHVzZSBTU0csIHBsZWFzZSByZW1vdmUgeW91ciBnZXRJbml0aWFsUHJvcHNgO1xuY29uc3QgU0VSVkVSX1BST1BTX0dFVF9JTklUX1BST1BTX0NPTkZMSUNUID0gYFlvdSBjYW4gbm90IHVzZSBnZXRJbml0aWFsUHJvcHMgd2l0aCBnZXRTZXJ2ZXJTaWRlUHJvcHMuIFBsZWFzZSByZW1vdmUgZ2V0SW5pdGlhbFByb3BzLmA7XG5jb25zdCBTRVJWRVJfUFJPUFNfU1NHX0NPTkZMSUNUID0gYFlvdSBjYW4gbm90IHVzZSBnZXRTdGF0aWNQcm9wcyBvciBnZXRTdGF0aWNQYXRocyB3aXRoIGdldFNlcnZlclNpZGVQcm9wcy4gVG8gdXNlIFNTRywgcGxlYXNlIHJlbW92ZSBnZXRTZXJ2ZXJTaWRlUHJvcHNgO1xuY29uc3QgU1RBVElDX1NUQVRVU19QQUdFX0dFVF9JTklUSUFMX1BST1BTX0VSUk9SID0gYGNhbiBub3QgaGF2ZSBnZXRJbml0aWFsUHJvcHMvZ2V0U2VydmVyU2lkZVByb3BzLCBodHRwczovL25leHRqcy5vcmcvZG9jcy9tZXNzYWdlcy80MDQtZ2V0LWluaXRpYWwtcHJvcHNgO1xuY29uc3QgU0VSVkVSX1BST1BTX0VYUE9SVF9FUlJPUiA9IGBwYWdlcyB3aXRoIFxcYGdldFNlcnZlclNpZGVQcm9wc1xcYCBjYW4gbm90IGJlIGV4cG9ydGVkLiBTZWUgbW9yZSBpbmZvIGhlcmU6IGh0dHBzOi8vbmV4dGpzLm9yZy9kb2NzL21lc3NhZ2VzL2dzc3AtZXhwb3J0YDtcbmNvbnN0IEdTUF9OT19SRVRVUk5FRF9WQUxVRSA9ICdZb3VyIGBnZXRTdGF0aWNQcm9wc2AgZnVuY3Rpb24gZGlkIG5vdCByZXR1cm4gYW4gb2JqZWN0LiBEaWQgeW91IGZvcmdldCB0byBhZGQgYSBgcmV0dXJuYD8nO1xuY29uc3QgR1NTUF9OT19SRVRVUk5FRF9WQUxVRSA9ICdZb3VyIGBnZXRTZXJ2ZXJTaWRlUHJvcHNgIGZ1bmN0aW9uIGRpZCBub3QgcmV0dXJuIGFuIG9iamVjdC4gRGlkIHlvdSBmb3JnZXQgdG8gYWRkIGEgYHJldHVybmA/JztcbmNvbnN0IFVOU1RBQkxFX1JFVkFMSURBVEVfUkVOQU1FX0VSUk9SID0gJ1RoZSBgdW5zdGFibGVfcmV2YWxpZGF0ZWAgcHJvcGVydHkgaXMgYXZhaWxhYmxlIGZvciBnZW5lcmFsIHVzZS5cXG4nICsgJ1BsZWFzZSB1c2UgYHJldmFsaWRhdGVgIGluc3RlYWQuJztcbmNvbnN0IEdTU1BfQ09NUE9ORU5UX01FTUJFUl9FUlJPUiA9IGBjYW4gbm90IGJlIGF0dGFjaGVkIHRvIGEgcGFnZSdzIGNvbXBvbmVudCBhbmQgbXVzdCBiZSBleHBvcnRlZCBmcm9tIHRoZSBwYWdlLiBTZWUgbW9yZSBpbmZvIGhlcmU6IGh0dHBzOi8vbmV4dGpzLm9yZy9kb2NzL21lc3NhZ2VzL2dzc3AtY29tcG9uZW50LW1lbWJlcmA7XG5jb25zdCBOT05fU1RBTkRBUkRfTk9ERV9FTlYgPSBgWW91IGFyZSB1c2luZyBhIG5vbi1zdGFuZGFyZCBcIk5PREVfRU5WXCIgdmFsdWUgaW4geW91ciBlbnZpcm9ubWVudC4gVGhpcyBjcmVhdGVzIGluY29uc2lzdGVuY2llcyBpbiB0aGUgcHJvamVjdCBhbmQgaXMgc3Ryb25nbHkgYWR2aXNlZCBhZ2FpbnN0LiBSZWFkIG1vcmU6IGh0dHBzOi8vbmV4dGpzLm9yZy9kb2NzL21lc3NhZ2VzL25vbi1zdGFuZGFyZC1ub2RlLWVudmA7XG5jb25zdCBTU0dfRkFMTEJBQ0tfRVhQT1JUX0VSUk9SID0gYFBhZ2VzIHdpdGggXFxgZmFsbGJhY2tcXGAgZW5hYmxlZCBpbiBcXGBnZXRTdGF0aWNQYXRoc1xcYCBjYW4gbm90IGJlIGV4cG9ydGVkLiBTZWUgbW9yZSBpbmZvIGhlcmU6IGh0dHBzOi8vbmV4dGpzLm9yZy9kb2NzL21lc3NhZ2VzL3NzZy1mYWxsYmFjay10cnVlLWV4cG9ydGA7XG5jb25zdCBFU0xJTlRfREVGQVVMVF9ESVJTID0gW1xuICAgICdhcHAnLFxuICAgICdwYWdlcycsXG4gICAgJ2NvbXBvbmVudHMnLFxuICAgICdsaWInLFxuICAgICdzcmMnXG5dO1xuY29uc3QgU0VSVkVSX1JVTlRJTUUgPSB7XG4gICAgZWRnZTogJ2VkZ2UnLFxuICAgIGV4cGVyaW1lbnRhbEVkZ2U6ICdleHBlcmltZW50YWwtZWRnZScsXG4gICAgbm9kZWpzOiAnbm9kZWpzJ1xufTtcbi8qKlxuICogVGhlIG5hbWVzIG9mIHRoZSB3ZWJwYWNrIGxheWVycy4gVGhlc2UgbGF5ZXJzIGFyZSB0aGUgcHJpbWl0aXZlcyBmb3IgdGhlXG4gKiB3ZWJwYWNrIGNodW5rcy5cbiAqLyBjb25zdCBXRUJQQUNLX0xBWUVSU19OQU1FUyA9IHtcbiAgICAvKipcbiAgICogVGhlIGxheWVyIGZvciB0aGUgc2hhcmVkIGNvZGUgYmV0d2VlbiB0aGUgY2xpZW50IGFuZCBzZXJ2ZXIgYnVuZGxlcy5cbiAgICovIHNoYXJlZDogJ3NoYXJlZCcsXG4gICAgLyoqXG4gICAqIFRoZSBsYXllciBmb3Igc2VydmVyLW9ubHkgcnVudGltZSBhbmQgcGlja2luZyB1cCBgcmVhY3Qtc2VydmVyYCBleHBvcnQgY29uZGl0aW9ucy5cbiAgICogSW5jbHVkaW5nIGFwcCByb3V0ZXIgUlNDIHBhZ2VzIGFuZCBhcHAgcm91dGVyIGN1c3RvbSByb3V0ZXMgYW5kIG1ldGFkYXRhIHJvdXRlcy5cbiAgICovIHJlYWN0U2VydmVyQ29tcG9uZW50czogJ3JzYycsXG4gICAgLyoqXG4gICAqIFNlcnZlciBTaWRlIFJlbmRlcmluZyBsYXllciBmb3IgYXBwIChzc3IpLlxuICAgKi8gc2VydmVyU2lkZVJlbmRlcmluZzogJ3NzcicsXG4gICAgLyoqXG4gICAqIFRoZSBicm93c2VyIGNsaWVudCBidW5kbGUgbGF5ZXIgZm9yIGFjdGlvbnMuXG4gICAqLyBhY3Rpb25Ccm93c2VyOiAnYWN0aW9uLWJyb3dzZXInLFxuICAgIC8qKlxuICAgKiBUaGUgTm9kZS5qcyBidW5kbGUgbGF5ZXIgZm9yIHRoZSBBUEkgcm91dGVzLlxuICAgKi8gYXBpTm9kZTogJ2FwaS1ub2RlJyxcbiAgICAvKipcbiAgICogVGhlIEVkZ2UgTGl0ZSBidW5kbGUgbGF5ZXIgZm9yIHRoZSBBUEkgcm91dGVzLlxuICAgKi8gYXBpRWRnZTogJ2FwaS1lZGdlJyxcbiAgICAvKipcbiAgICogVGhlIGxheWVyIGZvciB0aGUgbWlkZGxld2FyZSBjb2RlLlxuICAgKi8gbWlkZGxld2FyZTogJ21pZGRsZXdhcmUnLFxuICAgIC8qKlxuICAgKiBUaGUgbGF5ZXIgZm9yIHRoZSBpbnN0cnVtZW50YXRpb24gaG9va3MuXG4gICAqLyBpbnN0cnVtZW50OiAnaW5zdHJ1bWVudCcsXG4gICAgLyoqXG4gICAqIFRoZSBsYXllciBmb3IgYXNzZXRzIG9uIHRoZSBlZGdlLlxuICAgKi8gZWRnZUFzc2V0OiAnZWRnZS1hc3NldCcsXG4gICAgLyoqXG4gICAqIFRoZSBicm93c2VyIGNsaWVudCBidW5kbGUgbGF5ZXIgZm9yIEFwcCBkaXJlY3RvcnkuXG4gICAqLyBhcHBQYWdlc0Jyb3dzZXI6ICdhcHAtcGFnZXMtYnJvd3NlcicsXG4gICAgLyoqXG4gICAqIFRoZSBicm93c2VyIGNsaWVudCBidW5kbGUgbGF5ZXIgZm9yIFBhZ2VzIGRpcmVjdG9yeS5cbiAgICovIHBhZ2VzRGlyQnJvd3NlcjogJ3BhZ2VzLWRpci1icm93c2VyJyxcbiAgICAvKipcbiAgICogVGhlIEVkZ2UgTGl0ZSBidW5kbGUgbGF5ZXIgZm9yIFBhZ2VzIGRpcmVjdG9yeS5cbiAgICovIHBhZ2VzRGlyRWRnZTogJ3BhZ2VzLWRpci1lZGdlJyxcbiAgICAvKipcbiAgICogVGhlIE5vZGUuanMgYnVuZGxlIGxheWVyIGZvciBQYWdlcyBkaXJlY3RvcnkuXG4gICAqLyBwYWdlc0Rpck5vZGU6ICdwYWdlcy1kaXItbm9kZSdcbn07XG5jb25zdCBXRUJQQUNLX0xBWUVSUyA9IHtcbiAgICAuLi5XRUJQQUNLX0xBWUVSU19OQU1FUyxcbiAgICBHUk9VUDoge1xuICAgICAgICBidWlsdGluUmVhY3Q6IFtcbiAgICAgICAgICAgIFdFQlBBQ0tfTEFZRVJTX05BTUVTLnJlYWN0U2VydmVyQ29tcG9uZW50cyxcbiAgICAgICAgICAgIFdFQlBBQ0tfTEFZRVJTX05BTUVTLmFjdGlvbkJyb3dzZXJcbiAgICAgICAgXSxcbiAgICAgICAgc2VydmVyT25seTogW1xuICAgICAgICAgICAgV0VCUEFDS19MQVlFUlNfTkFNRVMucmVhY3RTZXJ2ZXJDb21wb25lbnRzLFxuICAgICAgICAgICAgV0VCUEFDS19MQVlFUlNfTkFNRVMuYWN0aW9uQnJvd3NlcixcbiAgICAgICAgICAgIFdFQlBBQ0tfTEFZRVJTX05BTUVTLmluc3RydW1lbnQsXG4gICAgICAgICAgICBXRUJQQUNLX0xBWUVSU19OQU1FUy5taWRkbGV3YXJlXG4gICAgICAgIF0sXG4gICAgICAgIG5ldXRyYWxUYXJnZXQ6IFtcbiAgICAgICAgICAgIC8vIHBhZ2VzIGFwaVxuICAgICAgICAgICAgV0VCUEFDS19MQVlFUlNfTkFNRVMuYXBpTm9kZSxcbiAgICAgICAgICAgIFdFQlBBQ0tfTEFZRVJTX05BTUVTLmFwaUVkZ2VcbiAgICAgICAgXSxcbiAgICAgICAgY2xpZW50T25seTogW1xuICAgICAgICAgICAgV0VCUEFDS19MQVlFUlNfTkFNRVMuc2VydmVyU2lkZVJlbmRlcmluZyxcbiAgICAgICAgICAgIFdFQlBBQ0tfTEFZRVJTX05BTUVTLmFwcFBhZ2VzQnJvd3NlclxuICAgICAgICBdLFxuICAgICAgICBidW5kbGVkOiBbXG4gICAgICAgICAgICBXRUJQQUNLX0xBWUVSU19OQU1FUy5yZWFjdFNlcnZlckNvbXBvbmVudHMsXG4gICAgICAgICAgICBXRUJQQUNLX0xBWUVSU19OQU1FUy5hY3Rpb25Ccm93c2VyLFxuICAgICAgICAgICAgV0VCUEFDS19MQVlFUlNfTkFNRVMuc2VydmVyU2lkZVJlbmRlcmluZyxcbiAgICAgICAgICAgIFdFQlBBQ0tfTEFZRVJTX05BTUVTLmFwcFBhZ2VzQnJvd3NlcixcbiAgICAgICAgICAgIFdFQlBBQ0tfTEFZRVJTX05BTUVTLnNoYXJlZCxcbiAgICAgICAgICAgIFdFQlBBQ0tfTEFZRVJTX05BTUVTLmluc3RydW1lbnQsXG4gICAgICAgICAgICBXRUJQQUNLX0xBWUVSU19OQU1FUy5taWRkbGV3YXJlXG4gICAgICAgIF0sXG4gICAgICAgIGFwcFBhZ2VzOiBbXG4gICAgICAgICAgICAvLyBhcHAgcm91dGVyIHBhZ2VzIGFuZCBsYXlvdXRzXG4gICAgICAgICAgICBXRUJQQUNLX0xBWUVSU19OQU1FUy5yZWFjdFNlcnZlckNvbXBvbmVudHMsXG4gICAgICAgICAgICBXRUJQQUNLX0xBWUVSU19OQU1FUy5zZXJ2ZXJTaWRlUmVuZGVyaW5nLFxuICAgICAgICAgICAgV0VCUEFDS19MQVlFUlNfTkFNRVMuYXBwUGFnZXNCcm93c2VyLFxuICAgICAgICAgICAgV0VCUEFDS19MQVlFUlNfTkFNRVMuYWN0aW9uQnJvd3NlclxuICAgICAgICBdXG4gICAgfVxufTtcbmNvbnN0IFdFQlBBQ0tfUkVTT1VSQ0VfUVVFUklFUyA9IHtcbiAgICBlZGdlU1NSRW50cnk6ICdfX25leHRfZWRnZV9zc3JfZW50cnlfXycsXG4gICAgbWV0YWRhdGE6ICdfX25leHRfbWV0YWRhdGFfXycsXG4gICAgbWV0YWRhdGFSb3V0ZTogJ19fbmV4dF9tZXRhZGF0YV9yb3V0ZV9fJyxcbiAgICBtZXRhZGF0YUltYWdlTWV0YTogJ19fbmV4dF9tZXRhZGF0YV9pbWFnZV9tZXRhX18nXG59O1xuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1jb25zdGFudHMuanMubWFwIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(pages-dir-node)/./node_modules/next/dist/lib/constants.js\n"); - -/***/ }), - -/***/ "(pages-dir-node)/./node_modules/next/dist/lib/detached-promise.js": -/*!********************************************************!*\ - !*** ./node_modules/next/dist/lib/detached-promise.js ***! - \********************************************************/ -/***/ ((__unused_webpack_module, exports) => { - -"use strict"; -eval("/**\n * A `Promise.withResolvers` implementation that exposes the `resolve` and\n * `reject` functions on a `Promise`.\n *\n * @see https://tc39.es/proposal-promise-with-resolvers/\n */ \nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"DetachedPromise\", ({\n enumerable: true,\n get: function() {\n return DetachedPromise;\n }\n}));\nclass DetachedPromise {\n constructor(){\n let resolve;\n let reject;\n // Create the promise and assign the resolvers to the object.\n this.promise = new Promise((res, rej)=>{\n resolve = res;\n reject = rej;\n });\n // We know that resolvers is defined because the Promise constructor runs\n // synchronously.\n this.resolve = resolve;\n this.reject = reject;\n }\n}\n\n//# sourceMappingURL=detached-promise.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1ub2RlKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvbGliL2RldGFjaGVkLXByb21pc2UuanMiLCJtYXBwaW5ncyI6IkFBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLElBQWlCO0FBQ2pCLDhDQUE2QztBQUM3QztBQUNBLENBQUMsRUFBQztBQUNGLG1EQUFrRDtBQUNsRDtBQUNBO0FBQ0E7QUFDQTtBQUNBLENBQUMsRUFBQztBQUNGO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBIiwic291cmNlcyI6WyJEOlxcZG9uZ3l1bi1wcm9qZWN0c1xcdHdvXFxub2RlX21vZHVsZXNcXG5leHRcXGRpc3RcXGxpYlxcZGV0YWNoZWQtcHJvbWlzZS5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEEgYFByb21pc2Uud2l0aFJlc29sdmVyc2AgaW1wbGVtZW50YXRpb24gdGhhdCBleHBvc2VzIHRoZSBgcmVzb2x2ZWAgYW5kXG4gKiBgcmVqZWN0YCBmdW5jdGlvbnMgb24gYSBgUHJvbWlzZWAuXG4gKlxuICogQHNlZSBodHRwczovL3RjMzkuZXMvcHJvcG9zYWwtcHJvbWlzZS13aXRoLXJlc29sdmVycy9cbiAqLyBcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwge1xuICAgIHZhbHVlOiB0cnVlXG59KTtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIkRldGFjaGVkUHJvbWlzZVwiLCB7XG4gICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICBnZXQ6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gRGV0YWNoZWRQcm9taXNlO1xuICAgIH1cbn0pO1xuY2xhc3MgRGV0YWNoZWRQcm9taXNlIHtcbiAgICBjb25zdHJ1Y3Rvcigpe1xuICAgICAgICBsZXQgcmVzb2x2ZTtcbiAgICAgICAgbGV0IHJlamVjdDtcbiAgICAgICAgLy8gQ3JlYXRlIHRoZSBwcm9taXNlIGFuZCBhc3NpZ24gdGhlIHJlc29sdmVycyB0byB0aGUgb2JqZWN0LlxuICAgICAgICB0aGlzLnByb21pc2UgPSBuZXcgUHJvbWlzZSgocmVzLCByZWopPT57XG4gICAgICAgICAgICByZXNvbHZlID0gcmVzO1xuICAgICAgICAgICAgcmVqZWN0ID0gcmVqO1xuICAgICAgICB9KTtcbiAgICAgICAgLy8gV2Uga25vdyB0aGF0IHJlc29sdmVycyBpcyBkZWZpbmVkIGJlY2F1c2UgdGhlIFByb21pc2UgY29uc3RydWN0b3IgcnVuc1xuICAgICAgICAvLyBzeW5jaHJvbm91c2x5LlxuICAgICAgICB0aGlzLnJlc29sdmUgPSByZXNvbHZlO1xuICAgICAgICB0aGlzLnJlamVjdCA9IHJlamVjdDtcbiAgICB9XG59XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWRldGFjaGVkLXByb21pc2UuanMubWFwIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(pages-dir-node)/./node_modules/next/dist/lib/detached-promise.js\n"); - -/***/ }), - -/***/ "(pages-dir-node)/./node_modules/next/dist/lib/is-error.js": -/*!************************************************!*\ - !*** ./node_modules/next/dist/lib/is-error.js ***! - \************************************************/ -/***/ ((__unused_webpack_module, exports, __webpack_require__) => { - -"use strict"; -eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n /**\n * Checks whether the given value is a NextError.\n * This can be used to print a more detailed error message with properties like `code` & `digest`.\n */ default: function() {\n return isError;\n },\n getProperError: function() {\n return getProperError;\n }\n});\nconst _isplainobject = __webpack_require__(/*! ../shared/lib/is-plain-object */ \"(pages-dir-node)/./node_modules/next/dist/shared/lib/is-plain-object.js\");\nfunction isError(err) {\n return typeof err === 'object' && err !== null && 'name' in err && 'message' in err;\n}\nfunction safeStringify(obj) {\n const seen = new WeakSet();\n return JSON.stringify(obj, (_key, value)=>{\n // If value is an object and already seen, replace with \"[Circular]\"\n if (typeof value === 'object' && value !== null) {\n if (seen.has(value)) {\n return '[Circular]';\n }\n seen.add(value);\n }\n return value;\n });\n}\nfunction getProperError(err) {\n if (isError(err)) {\n return err;\n }\n if (true) {\n // provide better error for case where `throw undefined`\n // is called in development\n if (typeof err === 'undefined') {\n return Object.defineProperty(new Error('An undefined error was thrown, ' + 'see here for more info: https://nextjs.org/docs/messages/threw-undefined'), \"__NEXT_ERROR_CODE\", {\n value: \"E98\",\n enumerable: false,\n configurable: true\n });\n }\n if (err === null) {\n return Object.defineProperty(new Error('A null error was thrown, ' + 'see here for more info: https://nextjs.org/docs/messages/threw-undefined'), \"__NEXT_ERROR_CODE\", {\n value: \"E336\",\n enumerable: false,\n configurable: true\n });\n }\n }\n return Object.defineProperty(new Error((0, _isplainobject.isPlainObject)(err) ? safeStringify(err) : err + ''), \"__NEXT_ERROR_CODE\", {\n value: \"E394\",\n enumerable: false,\n configurable: true\n });\n}\n\n//# sourceMappingURL=is-error.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1ub2RlKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvbGliL2lzLWVycm9yLmpzIiwibWFwcGluZ3MiOiJBQUFhO0FBQ2IsOENBQTZDO0FBQzdDO0FBQ0EsQ0FBQyxFQUFDO0FBQ0YsTUFBTSxDQUdMO0FBQ0Q7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0EsQ0FBQztBQUNELHVCQUF1QixtQkFBTyxDQUFDLDhHQUErQjtBQUM5RDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxRQUFRLElBQXNDO0FBQzlDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsYUFBYTtBQUNiO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGFBQWE7QUFDYjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7O0FBRUEiLCJzb3VyY2VzIjpbIkQ6XFxkb25neXVuLXByb2plY3RzXFx0d29cXG5vZGVfbW9kdWxlc1xcbmV4dFxcZGlzdFxcbGliXFxpcy1lcnJvci5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwge1xuICAgIHZhbHVlOiB0cnVlXG59KTtcbjAgJiYgKG1vZHVsZS5leHBvcnRzID0ge1xuICAgIGRlZmF1bHQ6IG51bGwsXG4gICAgZ2V0UHJvcGVyRXJyb3I6IG51bGxcbn0pO1xuZnVuY3Rpb24gX2V4cG9ydCh0YXJnZXQsIGFsbCkge1xuICAgIGZvcih2YXIgbmFtZSBpbiBhbGwpT2JqZWN0LmRlZmluZVByb3BlcnR5KHRhcmdldCwgbmFtZSwge1xuICAgICAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgICAgICBnZXQ6IGFsbFtuYW1lXVxuICAgIH0pO1xufVxuX2V4cG9ydChleHBvcnRzLCB7XG4gICAgLyoqXG4gKiBDaGVja3Mgd2hldGhlciB0aGUgZ2l2ZW4gdmFsdWUgaXMgYSBOZXh0RXJyb3IuXG4gKiBUaGlzIGNhbiBiZSB1c2VkIHRvIHByaW50IGEgbW9yZSBkZXRhaWxlZCBlcnJvciBtZXNzYWdlIHdpdGggcHJvcGVydGllcyBsaWtlIGBjb2RlYCAmIGBkaWdlc3RgLlxuICovIGRlZmF1bHQ6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gaXNFcnJvcjtcbiAgICB9LFxuICAgIGdldFByb3BlckVycm9yOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIGdldFByb3BlckVycm9yO1xuICAgIH1cbn0pO1xuY29uc3QgX2lzcGxhaW5vYmplY3QgPSByZXF1aXJlKFwiLi4vc2hhcmVkL2xpYi9pcy1wbGFpbi1vYmplY3RcIik7XG5mdW5jdGlvbiBpc0Vycm9yKGVycikge1xuICAgIHJldHVybiB0eXBlb2YgZXJyID09PSAnb2JqZWN0JyAmJiBlcnIgIT09IG51bGwgJiYgJ25hbWUnIGluIGVyciAmJiAnbWVzc2FnZScgaW4gZXJyO1xufVxuZnVuY3Rpb24gc2FmZVN0cmluZ2lmeShvYmopIHtcbiAgICBjb25zdCBzZWVuID0gbmV3IFdlYWtTZXQoKTtcbiAgICByZXR1cm4gSlNPTi5zdHJpbmdpZnkob2JqLCAoX2tleSwgdmFsdWUpPT57XG4gICAgICAgIC8vIElmIHZhbHVlIGlzIGFuIG9iamVjdCBhbmQgYWxyZWFkeSBzZWVuLCByZXBsYWNlIHdpdGggXCJbQ2lyY3VsYXJdXCJcbiAgICAgICAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gJ29iamVjdCcgJiYgdmFsdWUgIT09IG51bGwpIHtcbiAgICAgICAgICAgIGlmIChzZWVuLmhhcyh2YWx1ZSkpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gJ1tDaXJjdWxhcl0nO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgc2Vlbi5hZGQodmFsdWUpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB2YWx1ZTtcbiAgICB9KTtcbn1cbmZ1bmN0aW9uIGdldFByb3BlckVycm9yKGVycikge1xuICAgIGlmIChpc0Vycm9yKGVycikpIHtcbiAgICAgICAgcmV0dXJuIGVycjtcbiAgICB9XG4gICAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WID09PSAnZGV2ZWxvcG1lbnQnKSB7XG4gICAgICAgIC8vIHByb3ZpZGUgYmV0dGVyIGVycm9yIGZvciBjYXNlIHdoZXJlIGB0aHJvdyB1bmRlZmluZWRgXG4gICAgICAgIC8vIGlzIGNhbGxlZCBpbiBkZXZlbG9wbWVudFxuICAgICAgICBpZiAodHlwZW9mIGVyciA9PT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgICAgICAgIHJldHVybiBPYmplY3QuZGVmaW5lUHJvcGVydHkobmV3IEVycm9yKCdBbiB1bmRlZmluZWQgZXJyb3Igd2FzIHRocm93biwgJyArICdzZWUgaGVyZSBmb3IgbW9yZSBpbmZvOiBodHRwczovL25leHRqcy5vcmcvZG9jcy9tZXNzYWdlcy90aHJldy11bmRlZmluZWQnKSwgXCJfX05FWFRfRVJST1JfQ09ERVwiLCB7XG4gICAgICAgICAgICAgICAgdmFsdWU6IFwiRTk4XCIsXG4gICAgICAgICAgICAgICAgZW51bWVyYWJsZTogZmFsc2UsXG4gICAgICAgICAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoZXJyID09PSBudWxsKSB7XG4gICAgICAgICAgICByZXR1cm4gT2JqZWN0LmRlZmluZVByb3BlcnR5KG5ldyBFcnJvcignQSBudWxsIGVycm9yIHdhcyB0aHJvd24sICcgKyAnc2VlIGhlcmUgZm9yIG1vcmUgaW5mbzogaHR0cHM6Ly9uZXh0anMub3JnL2RvY3MvbWVzc2FnZXMvdGhyZXctdW5kZWZpbmVkJyksIFwiX19ORVhUX0VSUk9SX0NPREVcIiwge1xuICAgICAgICAgICAgICAgIHZhbHVlOiBcIkUzMzZcIixcbiAgICAgICAgICAgICAgICBlbnVtZXJhYmxlOiBmYWxzZSxcbiAgICAgICAgICAgICAgICBjb25maWd1cmFibGU6IHRydWVcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgfVxuICAgIHJldHVybiBPYmplY3QuZGVmaW5lUHJvcGVydHkobmV3IEVycm9yKCgwLCBfaXNwbGFpbm9iamVjdC5pc1BsYWluT2JqZWN0KShlcnIpID8gc2FmZVN0cmluZ2lmeShlcnIpIDogZXJyICsgJycpLCBcIl9fTkVYVF9FUlJPUl9DT0RFXCIsIHtcbiAgICAgICAgdmFsdWU6IFwiRTM5NFwiLFxuICAgICAgICBlbnVtZXJhYmxlOiBmYWxzZSxcbiAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlXG4gICAgfSk7XG59XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWlzLWVycm9yLmpzLm1hcCJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(pages-dir-node)/./node_modules/next/dist/lib/is-error.js\n"); - -/***/ }), - -/***/ "(pages-dir-node)/./node_modules/next/dist/lib/pretty-bytes.js": -/*!****************************************************!*\ - !*** ./node_modules/next/dist/lib/pretty-bytes.js ***! - \****************************************************/ -/***/ ((__unused_webpack_module, exports) => { - -"use strict"; -eval("/*\nMIT License\n\nCopyright (c) Sindre Sorhus (sindresorhus.com)\n\nPermission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the \"Software\"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n*/ \nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"default\", ({\n enumerable: true,\n get: function() {\n return prettyBytes;\n }\n}));\nconst UNITS = [\n 'B',\n 'kB',\n 'MB',\n 'GB',\n 'TB',\n 'PB',\n 'EB',\n 'ZB',\n 'YB'\n];\n/*\nFormats the given number using `Number#toLocaleString`.\n- If locale is a string, the value is expected to be a locale-key (for example: `de`).\n- If locale is true, the system default locale is used for translation.\n- If no value for locale is specified, the number is returned unmodified.\n*/ const toLocaleString = (number, locale)=>{\n let result = number;\n if (typeof locale === 'string') {\n result = number.toLocaleString(locale);\n } else if (locale === true) {\n result = number.toLocaleString();\n }\n return result;\n};\nfunction prettyBytes(number, options) {\n if (!Number.isFinite(number)) {\n throw Object.defineProperty(new TypeError(`Expected a finite number, got ${typeof number}: ${number}`), \"__NEXT_ERROR_CODE\", {\n value: \"E572\",\n enumerable: false,\n configurable: true\n });\n }\n options = Object.assign({}, options);\n if (options.signed && number === 0) {\n return ' 0 B';\n }\n const isNegative = number < 0;\n const prefix = isNegative ? '-' : options.signed ? '+' : '';\n if (isNegative) {\n number = -number;\n }\n if (number < 1) {\n const numberString = toLocaleString(number, options.locale);\n return prefix + numberString + ' B';\n }\n const exponent = Math.min(Math.floor(Math.log10(number) / 3), UNITS.length - 1);\n number = Number((number / Math.pow(1000, exponent)).toPrecision(3));\n const numberString = toLocaleString(number, options.locale);\n const unit = UNITS[exponent];\n return prefix + numberString + ' ' + unit;\n}\n\n//# sourceMappingURL=pretty-bytes.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1ub2RlKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvbGliL3ByZXR0eS1ieXRlcy5qcyIsIm1hcHBpbmdzIjoiQUFBQTtBQUNBOztBQUVBOztBQUVBOztBQUVBOztBQUVBO0FBQ0EsR0FBZ0I7QUFDaEIsOENBQTZDO0FBQzdDO0FBQ0EsQ0FBQyxFQUFDO0FBQ0YsMkNBQTBDO0FBQzFDO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsQ0FBQyxFQUFDO0FBQ0Y7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE1BQU07QUFDTjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxtRkFBbUYsY0FBYyxJQUFJLE9BQU87QUFDNUc7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0EsOEJBQThCO0FBQzlCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQSIsInNvdXJjZXMiOlsiRDpcXGRvbmd5dW4tcHJvamVjdHNcXHR3b1xcbm9kZV9tb2R1bGVzXFxuZXh0XFxkaXN0XFxsaWJcXHByZXR0eS1ieXRlcy5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuTUlUIExpY2Vuc2VcblxuQ29weXJpZ2h0IChjKSBTaW5kcmUgU29yaHVzIDxzaW5kcmVzb3JodXNAZ21haWwuY29tPiAoc2luZHJlc29yaHVzLmNvbSlcblxuUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEgY29weSBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSBcIlNvZnR3YXJlXCIpLCB0byBkZWFsIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHMgdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Igc2VsbCBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUgU29mdHdhcmUgaXMgZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczpcblxuVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQgaW4gYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUuXG5cblRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCBcIkFTIElTXCIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1MgT1IgSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU4gVEhFIFNPRlRXQVJFLlxuKi8gXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHtcbiAgICB2YWx1ZTogdHJ1ZVxufSk7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJkZWZhdWx0XCIsIHtcbiAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgIGdldDogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBwcmV0dHlCeXRlcztcbiAgICB9XG59KTtcbmNvbnN0IFVOSVRTID0gW1xuICAgICdCJyxcbiAgICAna0InLFxuICAgICdNQicsXG4gICAgJ0dCJyxcbiAgICAnVEInLFxuICAgICdQQicsXG4gICAgJ0VCJyxcbiAgICAnWkInLFxuICAgICdZQidcbl07XG4vKlxuRm9ybWF0cyB0aGUgZ2l2ZW4gbnVtYmVyIHVzaW5nIGBOdW1iZXIjdG9Mb2NhbGVTdHJpbmdgLlxuLSBJZiBsb2NhbGUgaXMgYSBzdHJpbmcsIHRoZSB2YWx1ZSBpcyBleHBlY3RlZCB0byBiZSBhIGxvY2FsZS1rZXkgKGZvciBleGFtcGxlOiBgZGVgKS5cbi0gSWYgbG9jYWxlIGlzIHRydWUsIHRoZSBzeXN0ZW0gZGVmYXVsdCBsb2NhbGUgaXMgdXNlZCBmb3IgdHJhbnNsYXRpb24uXG4tIElmIG5vIHZhbHVlIGZvciBsb2NhbGUgaXMgc3BlY2lmaWVkLCB0aGUgbnVtYmVyIGlzIHJldHVybmVkIHVubW9kaWZpZWQuXG4qLyBjb25zdCB0b0xvY2FsZVN0cmluZyA9IChudW1iZXIsIGxvY2FsZSk9PntcbiAgICBsZXQgcmVzdWx0ID0gbnVtYmVyO1xuICAgIGlmICh0eXBlb2YgbG9jYWxlID09PSAnc3RyaW5nJykge1xuICAgICAgICByZXN1bHQgPSBudW1iZXIudG9Mb2NhbGVTdHJpbmcobG9jYWxlKTtcbiAgICB9IGVsc2UgaWYgKGxvY2FsZSA9PT0gdHJ1ZSkge1xuICAgICAgICByZXN1bHQgPSBudW1iZXIudG9Mb2NhbGVTdHJpbmcoKTtcbiAgICB9XG4gICAgcmV0dXJuIHJlc3VsdDtcbn07XG5mdW5jdGlvbiBwcmV0dHlCeXRlcyhudW1iZXIsIG9wdGlvbnMpIHtcbiAgICBpZiAoIU51bWJlci5pc0Zpbml0ZShudW1iZXIpKSB7XG4gICAgICAgIHRocm93IE9iamVjdC5kZWZpbmVQcm9wZXJ0eShuZXcgVHlwZUVycm9yKGBFeHBlY3RlZCBhIGZpbml0ZSBudW1iZXIsIGdvdCAke3R5cGVvZiBudW1iZXJ9OiAke251bWJlcn1gKSwgXCJfX05FWFRfRVJST1JfQ09ERVwiLCB7XG4gICAgICAgICAgICB2YWx1ZTogXCJFNTcyXCIsXG4gICAgICAgICAgICBlbnVtZXJhYmxlOiBmYWxzZSxcbiAgICAgICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZVxuICAgICAgICB9KTtcbiAgICB9XG4gICAgb3B0aW9ucyA9IE9iamVjdC5hc3NpZ24oe30sIG9wdGlvbnMpO1xuICAgIGlmIChvcHRpb25zLnNpZ25lZCAmJiBudW1iZXIgPT09IDApIHtcbiAgICAgICAgcmV0dXJuICcgMCBCJztcbiAgICB9XG4gICAgY29uc3QgaXNOZWdhdGl2ZSA9IG51bWJlciA8IDA7XG4gICAgY29uc3QgcHJlZml4ID0gaXNOZWdhdGl2ZSA/ICctJyA6IG9wdGlvbnMuc2lnbmVkID8gJysnIDogJyc7XG4gICAgaWYgKGlzTmVnYXRpdmUpIHtcbiAgICAgICAgbnVtYmVyID0gLW51bWJlcjtcbiAgICB9XG4gICAgaWYgKG51bWJlciA8IDEpIHtcbiAgICAgICAgY29uc3QgbnVtYmVyU3RyaW5nID0gdG9Mb2NhbGVTdHJpbmcobnVtYmVyLCBvcHRpb25zLmxvY2FsZSk7XG4gICAgICAgIHJldHVybiBwcmVmaXggKyBudW1iZXJTdHJpbmcgKyAnIEInO1xuICAgIH1cbiAgICBjb25zdCBleHBvbmVudCA9IE1hdGgubWluKE1hdGguZmxvb3IoTWF0aC5sb2cxMChudW1iZXIpIC8gMyksIFVOSVRTLmxlbmd0aCAtIDEpO1xuICAgIG51bWJlciA9IE51bWJlcigobnVtYmVyIC8gTWF0aC5wb3coMTAwMCwgZXhwb25lbnQpKS50b1ByZWNpc2lvbigzKSk7XG4gICAgY29uc3QgbnVtYmVyU3RyaW5nID0gdG9Mb2NhbGVTdHJpbmcobnVtYmVyLCBvcHRpb25zLmxvY2FsZSk7XG4gICAgY29uc3QgdW5pdCA9IFVOSVRTW2V4cG9uZW50XTtcbiAgICByZXR1cm4gcHJlZml4ICsgbnVtYmVyU3RyaW5nICsgJyAnICsgdW5pdDtcbn1cblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9cHJldHR5LWJ5dGVzLmpzLm1hcCJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(pages-dir-node)/./node_modules/next/dist/lib/pretty-bytes.js\n"); - -/***/ }), - -/***/ "(pages-dir-node)/./node_modules/next/dist/lib/redirect-status.js": -/*!*******************************************************!*\ - !*** ./node_modules/next/dist/lib/redirect-status.js ***! - \*******************************************************/ -/***/ ((__unused_webpack_module, exports, __webpack_require__) => { - -"use strict"; -eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n allowedStatusCodes: function() {\n return allowedStatusCodes;\n },\n getRedirectStatus: function() {\n return getRedirectStatus;\n },\n modifyRouteRegex: function() {\n return modifyRouteRegex;\n }\n});\nconst _redirectstatuscode = __webpack_require__(/*! ../client/components/redirect-status-code */ \"(pages-dir-node)/./node_modules/next/dist/client/components/redirect-status-code.js\");\nconst allowedStatusCodes = new Set([\n 301,\n 302,\n 303,\n 307,\n 308\n]);\nfunction getRedirectStatus(route) {\n return route.statusCode || (route.permanent ? _redirectstatuscode.RedirectStatusCode.PermanentRedirect : _redirectstatuscode.RedirectStatusCode.TemporaryRedirect);\n}\nfunction modifyRouteRegex(regex, restrictedPaths) {\n if (restrictedPaths) {\n regex = regex.replace(/\\^/, `^(?!${restrictedPaths.map((path)=>path.replace(/\\//g, '\\\\/')).join('|')})`);\n }\n regex = regex.replace(/\\$$/, '(?:\\\\/)?$');\n return regex;\n}\n\n//# sourceMappingURL=redirect-status.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1ub2RlKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvbGliL3JlZGlyZWN0LXN0YXR1cy5qcyIsIm1hcHBpbmdzIjoiQUFBYTtBQUNiLDhDQUE2QztBQUM3QztBQUNBLENBQUMsRUFBQztBQUNGLE1BQU0sQ0FJTDtBQUNEO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0EsQ0FBQztBQUNELDRCQUE0QixtQkFBTyxDQUFDLHNJQUEyQztBQUMvRTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSwyQ0FBMkMsa0VBQWtFO0FBQzdHO0FBQ0E7QUFDQTtBQUNBOztBQUVBIiwic291cmNlcyI6WyJEOlxcZG9uZ3l1bi1wcm9qZWN0c1xcdHdvXFxub2RlX21vZHVsZXNcXG5leHRcXGRpc3RcXGxpYlxccmVkaXJlY3Qtc3RhdHVzLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7XG4gICAgdmFsdWU6IHRydWVcbn0pO1xuMCAmJiAobW9kdWxlLmV4cG9ydHMgPSB7XG4gICAgYWxsb3dlZFN0YXR1c0NvZGVzOiBudWxsLFxuICAgIGdldFJlZGlyZWN0U3RhdHVzOiBudWxsLFxuICAgIG1vZGlmeVJvdXRlUmVnZXg6IG51bGxcbn0pO1xuZnVuY3Rpb24gX2V4cG9ydCh0YXJnZXQsIGFsbCkge1xuICAgIGZvcih2YXIgbmFtZSBpbiBhbGwpT2JqZWN0LmRlZmluZVByb3BlcnR5KHRhcmdldCwgbmFtZSwge1xuICAgICAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgICAgICBnZXQ6IGFsbFtuYW1lXVxuICAgIH0pO1xufVxuX2V4cG9ydChleHBvcnRzLCB7XG4gICAgYWxsb3dlZFN0YXR1c0NvZGVzOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIGFsbG93ZWRTdGF0dXNDb2RlcztcbiAgICB9LFxuICAgIGdldFJlZGlyZWN0U3RhdHVzOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIGdldFJlZGlyZWN0U3RhdHVzO1xuICAgIH0sXG4gICAgbW9kaWZ5Um91dGVSZWdleDogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBtb2RpZnlSb3V0ZVJlZ2V4O1xuICAgIH1cbn0pO1xuY29uc3QgX3JlZGlyZWN0c3RhdHVzY29kZSA9IHJlcXVpcmUoXCIuLi9jbGllbnQvY29tcG9uZW50cy9yZWRpcmVjdC1zdGF0dXMtY29kZVwiKTtcbmNvbnN0IGFsbG93ZWRTdGF0dXNDb2RlcyA9IG5ldyBTZXQoW1xuICAgIDMwMSxcbiAgICAzMDIsXG4gICAgMzAzLFxuICAgIDMwNyxcbiAgICAzMDhcbl0pO1xuZnVuY3Rpb24gZ2V0UmVkaXJlY3RTdGF0dXMocm91dGUpIHtcbiAgICByZXR1cm4gcm91dGUuc3RhdHVzQ29kZSB8fCAocm91dGUucGVybWFuZW50ID8gX3JlZGlyZWN0c3RhdHVzY29kZS5SZWRpcmVjdFN0YXR1c0NvZGUuUGVybWFuZW50UmVkaXJlY3QgOiBfcmVkaXJlY3RzdGF0dXNjb2RlLlJlZGlyZWN0U3RhdHVzQ29kZS5UZW1wb3JhcnlSZWRpcmVjdCk7XG59XG5mdW5jdGlvbiBtb2RpZnlSb3V0ZVJlZ2V4KHJlZ2V4LCByZXN0cmljdGVkUGF0aHMpIHtcbiAgICBpZiAocmVzdHJpY3RlZFBhdGhzKSB7XG4gICAgICAgIHJlZ2V4ID0gcmVnZXgucmVwbGFjZSgvXFxeLywgYF4oPyEke3Jlc3RyaWN0ZWRQYXRocy5tYXAoKHBhdGgpPT5wYXRoLnJlcGxhY2UoL1xcLy9nLCAnXFxcXC8nKSkuam9pbignfCcpfSlgKTtcbiAgICB9XG4gICAgcmVnZXggPSByZWdleC5yZXBsYWNlKC9cXCQkLywgJyg/OlxcXFwvKT8kJyk7XG4gICAgcmV0dXJuIHJlZ2V4O1xufVxuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1yZWRpcmVjdC1zdGF0dXMuanMubWFwIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(pages-dir-node)/./node_modules/next/dist/lib/redirect-status.js\n"); - -/***/ }), - -/***/ "(pages-dir-node)/./node_modules/next/dist/lib/scheduler.js": -/*!*************************************************!*\ - !*** ./node_modules/next/dist/lib/scheduler.js ***! - \*************************************************/ -/***/ ((__unused_webpack_module, exports) => { - -"use strict"; -eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n atLeastOneTask: function() {\n return atLeastOneTask;\n },\n scheduleImmediate: function() {\n return scheduleImmediate;\n },\n scheduleOnNextTick: function() {\n return scheduleOnNextTick;\n },\n waitAtLeastOneReactRenderTask: function() {\n return waitAtLeastOneReactRenderTask;\n }\n});\nconst scheduleOnNextTick = (cb)=>{\n // We use Promise.resolve().then() here so that the operation is scheduled at\n // the end of the promise job queue, we then add it to the next process tick\n // to ensure it's evaluated afterwards.\n //\n // This was inspired by the implementation of the DataLoader interface: https://github.com/graphql/dataloader/blob/d336bd15282664e0be4b4a657cb796f09bafbc6b/src/index.js#L213-L255\n //\n Promise.resolve().then(()=>{\n if (false) {} else {\n process.nextTick(cb);\n }\n });\n};\nconst scheduleImmediate = (cb)=>{\n if (false) {} else {\n setImmediate(cb);\n }\n};\nfunction atLeastOneTask() {\n return new Promise((resolve)=>scheduleImmediate(resolve));\n}\nfunction waitAtLeastOneReactRenderTask() {\n if (false) {} else {\n return new Promise((r)=>setImmediate(r));\n }\n}\n\n//# sourceMappingURL=scheduler.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1ub2RlKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvbGliL3NjaGVkdWxlci5qcyIsIm1hcHBpbmdzIjoiQUFBYTtBQUNiLDhDQUE2QztBQUM3QztBQUNBLENBQUMsRUFBQztBQUNGLE1BQU0sQ0FLTDtBQUNEO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQSxDQUFDO0FBQ0Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFlBQVksS0FBbUMsRUFBRSxFQUV4QyxDQUFDO0FBQ1Y7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsUUFBUSxLQUFtQyxFQUFFLEVBRXhDLENBQUM7QUFDTjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFFBQVEsS0FBbUMsRUFBRSxFQUV4QyxDQUFDO0FBQ047QUFDQTtBQUNBOztBQUVBIiwic291cmNlcyI6WyJEOlxcZG9uZ3l1bi1wcm9qZWN0c1xcdHdvXFxub2RlX21vZHVsZXNcXG5leHRcXGRpc3RcXGxpYlxcc2NoZWR1bGVyLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7XG4gICAgdmFsdWU6IHRydWVcbn0pO1xuMCAmJiAobW9kdWxlLmV4cG9ydHMgPSB7XG4gICAgYXRMZWFzdE9uZVRhc2s6IG51bGwsXG4gICAgc2NoZWR1bGVJbW1lZGlhdGU6IG51bGwsXG4gICAgc2NoZWR1bGVPbk5leHRUaWNrOiBudWxsLFxuICAgIHdhaXRBdExlYXN0T25lUmVhY3RSZW5kZXJUYXNrOiBudWxsXG59KTtcbmZ1bmN0aW9uIF9leHBvcnQodGFyZ2V0LCBhbGwpIHtcbiAgICBmb3IodmFyIG5hbWUgaW4gYWxsKU9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0YXJnZXQsIG5hbWUsIHtcbiAgICAgICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICAgICAgZ2V0OiBhbGxbbmFtZV1cbiAgICB9KTtcbn1cbl9leHBvcnQoZXhwb3J0cywge1xuICAgIGF0TGVhc3RPbmVUYXNrOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIGF0TGVhc3RPbmVUYXNrO1xuICAgIH0sXG4gICAgc2NoZWR1bGVJbW1lZGlhdGU6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gc2NoZWR1bGVJbW1lZGlhdGU7XG4gICAgfSxcbiAgICBzY2hlZHVsZU9uTmV4dFRpY2s6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gc2NoZWR1bGVPbk5leHRUaWNrO1xuICAgIH0sXG4gICAgd2FpdEF0TGVhc3RPbmVSZWFjdFJlbmRlclRhc2s6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gd2FpdEF0TGVhc3RPbmVSZWFjdFJlbmRlclRhc2s7XG4gICAgfVxufSk7XG5jb25zdCBzY2hlZHVsZU9uTmV4dFRpY2sgPSAoY2IpPT57XG4gICAgLy8gV2UgdXNlIFByb21pc2UucmVzb2x2ZSgpLnRoZW4oKSBoZXJlIHNvIHRoYXQgdGhlIG9wZXJhdGlvbiBpcyBzY2hlZHVsZWQgYXRcbiAgICAvLyB0aGUgZW5kIG9mIHRoZSBwcm9taXNlIGpvYiBxdWV1ZSwgd2UgdGhlbiBhZGQgaXQgdG8gdGhlIG5leHQgcHJvY2VzcyB0aWNrXG4gICAgLy8gdG8gZW5zdXJlIGl0J3MgZXZhbHVhdGVkIGFmdGVyd2FyZHMuXG4gICAgLy9cbiAgICAvLyBUaGlzIHdhcyBpbnNwaXJlZCBieSB0aGUgaW1wbGVtZW50YXRpb24gb2YgdGhlIERhdGFMb2FkZXIgaW50ZXJmYWNlOiBodHRwczovL2dpdGh1Yi5jb20vZ3JhcGhxbC9kYXRhbG9hZGVyL2Jsb2IvZDMzNmJkMTUyODI2NjRlMGJlNGI0YTY1N2NiNzk2ZjA5YmFmYmM2Yi9zcmMvaW5kZXguanMjTDIxMy1MMjU1XG4gICAgLy9cbiAgICBQcm9taXNlLnJlc29sdmUoKS50aGVuKCgpPT57XG4gICAgICAgIGlmIChwcm9jZXNzLmVudi5ORVhUX1JVTlRJTUUgPT09ICdlZGdlJykge1xuICAgICAgICAgICAgc2V0VGltZW91dChjYiwgMCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBwcm9jZXNzLm5leHRUaWNrKGNiKTtcbiAgICAgICAgfVxuICAgIH0pO1xufTtcbmNvbnN0IHNjaGVkdWxlSW1tZWRpYXRlID0gKGNiKT0+e1xuICAgIGlmIChwcm9jZXNzLmVudi5ORVhUX1JVTlRJTUUgPT09ICdlZGdlJykge1xuICAgICAgICBzZXRUaW1lb3V0KGNiLCAwKTtcbiAgICB9IGVsc2Uge1xuICAgICAgICBzZXRJbW1lZGlhdGUoY2IpO1xuICAgIH1cbn07XG5mdW5jdGlvbiBhdExlYXN0T25lVGFzaygpIHtcbiAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUpPT5zY2hlZHVsZUltbWVkaWF0ZShyZXNvbHZlKSk7XG59XG5mdW5jdGlvbiB3YWl0QXRMZWFzdE9uZVJlYWN0UmVuZGVyVGFzaygpIHtcbiAgICBpZiAocHJvY2Vzcy5lbnYuTkVYVF9SVU5USU1FID09PSAnZWRnZScpIHtcbiAgICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKChyKT0+c2V0VGltZW91dChyLCAwKSk7XG4gICAgfSBlbHNlIHtcbiAgICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKChyKT0+c2V0SW1tZWRpYXRlKHIpKTtcbiAgICB9XG59XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPXNjaGVkdWxlci5qcy5tYXAiXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(pages-dir-node)/./node_modules/next/dist/lib/scheduler.js\n"); - -/***/ }), - -/***/ "(pages-dir-node)/./node_modules/next/dist/pages/_document.js": -/*!***************************************************!*\ - !*** ./node_modules/next/dist/pages/_document.js ***! - \***************************************************/ -/***/ ((__unused_webpack_module, exports, __webpack_require__) => { - -"use strict"; -eval("/// \n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n Head: function() {\n return Head;\n },\n Html: function() {\n return Html;\n },\n Main: function() {\n return Main;\n },\n NextScript: function() {\n return NextScript;\n },\n /**\n * `Document` component handles the initial `document` markup and renders only on the server side.\n * Commonly used for implementing server side rendering for `css-in-js` libraries.\n */ default: function() {\n return Document;\n }\n});\nconst _jsxruntime = __webpack_require__(/*! react/jsx-runtime */ \"react/jsx-runtime\");\nconst _react = /*#__PURE__*/ _interop_require_wildcard(__webpack_require__(/*! react */ \"react\"));\nconst _constants = __webpack_require__(/*! ../shared/lib/constants */ \"(pages-dir-node)/./node_modules/next/dist/shared/lib/constants.js\");\nconst _getpagefiles = __webpack_require__(/*! ../server/get-page-files */ \"(pages-dir-node)/./node_modules/next/dist/server/get-page-files.js\");\nconst _htmlescape = __webpack_require__(/*! ../server/htmlescape */ \"(pages-dir-node)/./node_modules/next/dist/server/htmlescape.js\");\nconst _iserror = /*#__PURE__*/ _interop_require_default(__webpack_require__(/*! ../lib/is-error */ \"(pages-dir-node)/./node_modules/next/dist/lib/is-error.js\"));\nconst _htmlcontextsharedruntime = __webpack_require__(/*! ../shared/lib/html-context.shared-runtime */ \"(pages-dir-node)/./node_modules/next/dist/server/route-modules/pages/vendored/contexts/html-context.js\");\nconst _encodeuripath = __webpack_require__(/*! ../shared/lib/encode-uri-path */ \"(pages-dir-node)/./node_modules/next/dist/shared/lib/encode-uri-path.js\");\nconst _tracer = __webpack_require__(/*! ../server/lib/trace/tracer */ \"(pages-dir-node)/./node_modules/next/dist/server/lib/trace/tracer.js\");\nconst _utils = __webpack_require__(/*! ../server/lib/trace/utils */ \"(pages-dir-node)/./node_modules/next/dist/server/lib/trace/utils.js\");\nfunction _interop_require_default(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n}\nfunction _getRequireWildcardCache(nodeInterop) {\n if (typeof WeakMap !== \"function\") return null;\n var cacheBabelInterop = new WeakMap();\n var cacheNodeInterop = new WeakMap();\n return (_getRequireWildcardCache = function(nodeInterop) {\n return nodeInterop ? cacheNodeInterop : cacheBabelInterop;\n })(nodeInterop);\n}\nfunction _interop_require_wildcard(obj, nodeInterop) {\n if (!nodeInterop && obj && obj.__esModule) {\n return obj;\n }\n if (obj === null || typeof obj !== \"object\" && typeof obj !== \"function\") {\n return {\n default: obj\n };\n }\n var cache = _getRequireWildcardCache(nodeInterop);\n if (cache && cache.has(obj)) {\n return cache.get(obj);\n }\n var newObj = {\n __proto__: null\n };\n var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;\n for(var key in obj){\n if (key !== \"default\" && Object.prototype.hasOwnProperty.call(obj, key)) {\n var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;\n if (desc && (desc.get || desc.set)) {\n Object.defineProperty(newObj, key, desc);\n } else {\n newObj[key] = obj[key];\n }\n }\n }\n newObj.default = obj;\n if (cache) {\n cache.set(obj, newObj);\n }\n return newObj;\n}\n/** Set of pages that have triggered a large data warning on production mode. */ const largePageDataWarnings = new Set();\nfunction getDocumentFiles(buildManifest, pathname, inAmpMode) {\n const sharedFiles = (0, _getpagefiles.getPageFiles)(buildManifest, '/_app');\n const pageFiles = true && inAmpMode ? [] : (0, _getpagefiles.getPageFiles)(buildManifest, pathname);\n return {\n sharedFiles,\n pageFiles,\n allFiles: [\n ...new Set([\n ...sharedFiles,\n ...pageFiles\n ])\n ]\n };\n}\nfunction getPolyfillScripts(context, props) {\n // polyfills.js has to be rendered as nomodule without async\n // It also has to be the first script to load\n const { assetPrefix, buildManifest, assetQueryString, disableOptimizedLoading, crossOrigin } = context;\n return buildManifest.polyfillFiles.filter((polyfill)=>polyfill.endsWith('.js') && !polyfill.endsWith('.module.js')).map((polyfill)=>/*#__PURE__*/ (0, _jsxruntime.jsx)(\"script\", {\n defer: !disableOptimizedLoading,\n nonce: props.nonce,\n crossOrigin: props.crossOrigin || crossOrigin,\n noModule: true,\n src: `${assetPrefix}/_next/${(0, _encodeuripath.encodeURIPath)(polyfill)}${assetQueryString}`\n }, polyfill));\n}\nfunction hasComponentProps(child) {\n return !!child && !!child.props;\n}\nfunction AmpStyles({ styles }) {\n if (!styles) return null;\n // try to parse styles from fragment for backwards compat\n const curStyles = Array.isArray(styles) ? styles : [];\n if (styles.props && // @ts-ignore Property 'props' does not exist on type ReactElement\n Array.isArray(styles.props.children)) {\n const hasStyles = (el)=>{\n var _el_props_dangerouslySetInnerHTML, _el_props;\n return el == null ? void 0 : (_el_props = el.props) == null ? void 0 : (_el_props_dangerouslySetInnerHTML = _el_props.dangerouslySetInnerHTML) == null ? void 0 : _el_props_dangerouslySetInnerHTML.__html;\n };\n // @ts-ignore Property 'props' does not exist on type ReactElement\n styles.props.children.forEach((child)=>{\n if (Array.isArray(child)) {\n child.forEach((el)=>hasStyles(el) && curStyles.push(el));\n } else if (hasStyles(child)) {\n curStyles.push(child);\n }\n });\n }\n /* Add custom styles before AMP styles to prevent accidental overrides */ return /*#__PURE__*/ (0, _jsxruntime.jsx)(\"style\", {\n \"amp-custom\": \"\",\n dangerouslySetInnerHTML: {\n __html: curStyles.map((style)=>style.props.dangerouslySetInnerHTML.__html).join('').replace(/\\/\\*# sourceMappingURL=.*\\*\\//g, '').replace(/\\/\\*@ sourceURL=.*?\\*\\//g, '')\n }\n });\n}\nfunction getDynamicChunks(context, props, files) {\n const { dynamicImports, assetPrefix, isDevelopment, assetQueryString, disableOptimizedLoading, crossOrigin } = context;\n return dynamicImports.map((file)=>{\n if (!file.endsWith('.js') || files.allFiles.includes(file)) return null;\n return /*#__PURE__*/ (0, _jsxruntime.jsx)(\"script\", {\n async: !isDevelopment && disableOptimizedLoading,\n defer: !disableOptimizedLoading,\n src: `${assetPrefix}/_next/${(0, _encodeuripath.encodeURIPath)(file)}${assetQueryString}`,\n nonce: props.nonce,\n crossOrigin: props.crossOrigin || crossOrigin\n }, file);\n });\n}\nfunction getScripts(context, props, files) {\n var _buildManifest_lowPriorityFiles;\n const { assetPrefix, buildManifest, isDevelopment, assetQueryString, disableOptimizedLoading, crossOrigin } = context;\n const normalScripts = files.allFiles.filter((file)=>file.endsWith('.js'));\n const lowPriorityScripts = (_buildManifest_lowPriorityFiles = buildManifest.lowPriorityFiles) == null ? void 0 : _buildManifest_lowPriorityFiles.filter((file)=>file.endsWith('.js'));\n return [\n ...normalScripts,\n ...lowPriorityScripts\n ].map((file)=>{\n return /*#__PURE__*/ (0, _jsxruntime.jsx)(\"script\", {\n src: `${assetPrefix}/_next/${(0, _encodeuripath.encodeURIPath)(file)}${assetQueryString}`,\n nonce: props.nonce,\n async: !isDevelopment && disableOptimizedLoading,\n defer: !disableOptimizedLoading,\n crossOrigin: props.crossOrigin || crossOrigin\n }, file);\n });\n}\nfunction getPreNextWorkerScripts(context, props) {\n const { assetPrefix, scriptLoader, crossOrigin, nextScriptWorkers } = context;\n // disable `nextScriptWorkers` in edge runtime\n if (!nextScriptWorkers || \"nodejs\" === 'edge') return null;\n try {\n // @ts-expect-error: Prevent webpack from processing this require\n let { partytownSnippet } = require('@builder.io/partytown/integration');\n const children = Array.isArray(props.children) ? props.children : [\n props.children\n ];\n // Check to see if the user has defined their own Partytown configuration\n const userDefinedConfig = children.find((child)=>{\n var _child_props_dangerouslySetInnerHTML, _child_props;\n return hasComponentProps(child) && (child == null ? void 0 : (_child_props = child.props) == null ? void 0 : (_child_props_dangerouslySetInnerHTML = _child_props.dangerouslySetInnerHTML) == null ? void 0 : _child_props_dangerouslySetInnerHTML.__html.length) && 'data-partytown-config' in child.props;\n });\n return /*#__PURE__*/ (0, _jsxruntime.jsxs)(_jsxruntime.Fragment, {\n children: [\n !userDefinedConfig && /*#__PURE__*/ (0, _jsxruntime.jsx)(\"script\", {\n \"data-partytown-config\": \"\",\n dangerouslySetInnerHTML: {\n __html: `\n partytown = {\n lib: \"${assetPrefix}/_next/static/~partytown/\"\n };\n `\n }\n }),\n /*#__PURE__*/ (0, _jsxruntime.jsx)(\"script\", {\n \"data-partytown\": \"\",\n dangerouslySetInnerHTML: {\n __html: partytownSnippet()\n }\n }),\n (scriptLoader.worker || []).map((file, index)=>{\n const { strategy, src, children: scriptChildren, dangerouslySetInnerHTML, ...scriptProps } = file;\n let srcProps = {};\n if (src) {\n // Use external src if provided\n srcProps.src = src;\n } else if (dangerouslySetInnerHTML && dangerouslySetInnerHTML.__html) {\n // Embed inline script if provided with dangerouslySetInnerHTML\n srcProps.dangerouslySetInnerHTML = {\n __html: dangerouslySetInnerHTML.__html\n };\n } else if (scriptChildren) {\n // Embed inline script if provided with children\n srcProps.dangerouslySetInnerHTML = {\n __html: typeof scriptChildren === 'string' ? scriptChildren : Array.isArray(scriptChildren) ? scriptChildren.join('') : ''\n };\n } else {\n throw Object.defineProperty(new Error('Invalid usage of next/script. Did you forget to include a src attribute or an inline script? https://nextjs.org/docs/messages/invalid-script'), \"__NEXT_ERROR_CODE\", {\n value: \"E82\",\n enumerable: false,\n configurable: true\n });\n }\n return /*#__PURE__*/ (0, _react.createElement)(\"script\", {\n ...srcProps,\n ...scriptProps,\n type: \"text/partytown\",\n key: src || index,\n nonce: props.nonce,\n \"data-nscript\": \"worker\",\n crossOrigin: props.crossOrigin || crossOrigin\n });\n })\n ]\n });\n } catch (err) {\n if ((0, _iserror.default)(err) && err.code !== 'MODULE_NOT_FOUND') {\n console.warn(`Warning: ${err.message}`);\n }\n return null;\n }\n}\nfunction getPreNextScripts(context, props) {\n const { scriptLoader, disableOptimizedLoading, crossOrigin } = context;\n const webWorkerScripts = getPreNextWorkerScripts(context, props);\n const beforeInteractiveScripts = (scriptLoader.beforeInteractive || []).filter((script)=>script.src).map((file, index)=>{\n const { strategy, ...scriptProps } = file;\n return /*#__PURE__*/ (0, _react.createElement)(\"script\", {\n ...scriptProps,\n key: scriptProps.src || index,\n defer: scriptProps.defer ?? !disableOptimizedLoading,\n nonce: scriptProps.nonce || props.nonce,\n \"data-nscript\": \"beforeInteractive\",\n crossOrigin: props.crossOrigin || crossOrigin\n });\n });\n return /*#__PURE__*/ (0, _jsxruntime.jsxs)(_jsxruntime.Fragment, {\n children: [\n webWorkerScripts,\n beforeInteractiveScripts\n ]\n });\n}\nfunction getHeadHTMLProps(props) {\n const { crossOrigin, nonce, ...restProps } = props;\n // This assignment is necessary for additional type checking to avoid unsupported attributes in \n const headProps = restProps;\n return headProps;\n}\nfunction getAmpPath(ampPath, asPath) {\n return ampPath || `${asPath}${asPath.includes('?') ? '&' : '?'}amp=1`;\n}\nfunction getNextFontLinkTags(nextFontManifest, dangerousAsPath, assetPrefix = '') {\n if (!nextFontManifest) {\n return {\n preconnect: null,\n preload: null\n };\n }\n const appFontsEntry = nextFontManifest.pages['/_app'];\n const pageFontsEntry = nextFontManifest.pages[dangerousAsPath];\n const preloadedFontFiles = Array.from(new Set([\n ...appFontsEntry ?? [],\n ...pageFontsEntry ?? []\n ]));\n // If no font files should preload but there's an entry for the path, add a preconnect tag.\n const preconnectToSelf = !!(preloadedFontFiles.length === 0 && (appFontsEntry || pageFontsEntry));\n return {\n preconnect: preconnectToSelf ? /*#__PURE__*/ (0, _jsxruntime.jsx)(\"link\", {\n \"data-next-font\": nextFontManifest.pagesUsingSizeAdjust ? 'size-adjust' : '',\n rel: \"preconnect\",\n href: \"/\",\n crossOrigin: \"anonymous\"\n }) : null,\n preload: preloadedFontFiles ? preloadedFontFiles.map((fontFile)=>{\n const ext = /\\.(woff|woff2|eot|ttf|otf)$/.exec(fontFile)[1];\n return /*#__PURE__*/ (0, _jsxruntime.jsx)(\"link\", {\n rel: \"preload\",\n href: `${assetPrefix}/_next/${(0, _encodeuripath.encodeURIPath)(fontFile)}`,\n as: \"font\",\n type: `font/${ext}`,\n crossOrigin: \"anonymous\",\n \"data-next-font\": fontFile.includes('-s') ? 'size-adjust' : ''\n }, fontFile);\n }) : null\n };\n}\nclass Head extends _react.default.Component {\n static #_ = this.contextType = _htmlcontextsharedruntime.HtmlContext;\n getCssLinks(files) {\n const { assetPrefix, assetQueryString, dynamicImports, dynamicCssManifest, crossOrigin, optimizeCss } = this.context;\n const cssFiles = files.allFiles.filter((f)=>f.endsWith('.css'));\n const sharedFiles = new Set(files.sharedFiles);\n // Unmanaged files are CSS files that will be handled directly by the\n // webpack runtime (`mini-css-extract-plugin`).\n let unmanagedFiles = new Set([]);\n let localDynamicCssFiles = Array.from(new Set(dynamicImports.filter((file)=>file.endsWith('.css'))));\n if (localDynamicCssFiles.length) {\n const existing = new Set(cssFiles);\n localDynamicCssFiles = localDynamicCssFiles.filter((f)=>!(existing.has(f) || sharedFiles.has(f)));\n unmanagedFiles = new Set(localDynamicCssFiles);\n cssFiles.push(...localDynamicCssFiles);\n }\n let cssLinkElements = [];\n cssFiles.forEach((file)=>{\n const isSharedFile = sharedFiles.has(file);\n const isUnmanagedFile = unmanagedFiles.has(file);\n const isFileInDynamicCssManifest = dynamicCssManifest.has(file);\n if (!optimizeCss) {\n cssLinkElements.push(/*#__PURE__*/ (0, _jsxruntime.jsx)(\"link\", {\n nonce: this.props.nonce,\n rel: \"preload\",\n href: `${assetPrefix}/_next/${(0, _encodeuripath.encodeURIPath)(file)}${assetQueryString}`,\n as: \"style\",\n crossOrigin: this.props.crossOrigin || crossOrigin\n }, `${file}-preload`));\n }\n cssLinkElements.push(/*#__PURE__*/ (0, _jsxruntime.jsx)(\"link\", {\n nonce: this.props.nonce,\n rel: \"stylesheet\",\n href: `${assetPrefix}/_next/${(0, _encodeuripath.encodeURIPath)(file)}${assetQueryString}`,\n crossOrigin: this.props.crossOrigin || crossOrigin,\n \"data-n-g\": isUnmanagedFile ? undefined : isSharedFile ? '' : undefined,\n \"data-n-p\": isSharedFile || isUnmanagedFile || isFileInDynamicCssManifest ? undefined : ''\n }, file));\n });\n return cssLinkElements.length === 0 ? null : cssLinkElements;\n }\n getPreloadDynamicChunks() {\n const { dynamicImports, assetPrefix, assetQueryString, crossOrigin } = this.context;\n return dynamicImports.map((file)=>{\n if (!file.endsWith('.js')) {\n return null;\n }\n return /*#__PURE__*/ (0, _jsxruntime.jsx)(\"link\", {\n rel: \"preload\",\n href: `${assetPrefix}/_next/${(0, _encodeuripath.encodeURIPath)(file)}${assetQueryString}`,\n as: \"script\",\n nonce: this.props.nonce,\n crossOrigin: this.props.crossOrigin || crossOrigin\n }, file);\n }) // Filter out nulled scripts\n .filter(Boolean);\n }\n getPreloadMainLinks(files) {\n const { assetPrefix, assetQueryString, scriptLoader, crossOrigin } = this.context;\n const preloadFiles = files.allFiles.filter((file)=>{\n return file.endsWith('.js');\n });\n return [\n ...(scriptLoader.beforeInteractive || []).map((file)=>/*#__PURE__*/ (0, _jsxruntime.jsx)(\"link\", {\n nonce: this.props.nonce,\n rel: \"preload\",\n href: file.src,\n as: \"script\",\n crossOrigin: this.props.crossOrigin || crossOrigin\n }, file.src)),\n ...preloadFiles.map((file)=>/*#__PURE__*/ (0, _jsxruntime.jsx)(\"link\", {\n nonce: this.props.nonce,\n rel: \"preload\",\n href: `${assetPrefix}/_next/${(0, _encodeuripath.encodeURIPath)(file)}${assetQueryString}`,\n as: \"script\",\n crossOrigin: this.props.crossOrigin || crossOrigin\n }, file))\n ];\n }\n getBeforeInteractiveInlineScripts() {\n const { scriptLoader } = this.context;\n const { nonce, crossOrigin } = this.props;\n return (scriptLoader.beforeInteractive || []).filter((script)=>!script.src && (script.dangerouslySetInnerHTML || script.children)).map((file, index)=>{\n const { strategy, children, dangerouslySetInnerHTML, src, ...scriptProps } = file;\n let html = '';\n if (dangerouslySetInnerHTML && dangerouslySetInnerHTML.__html) {\n html = dangerouslySetInnerHTML.__html;\n } else if (children) {\n html = typeof children === 'string' ? children : Array.isArray(children) ? children.join('') : '';\n }\n return /*#__PURE__*/ (0, _react.createElement)(\"script\", {\n ...scriptProps,\n dangerouslySetInnerHTML: {\n __html: html\n },\n key: scriptProps.id || index,\n nonce: nonce,\n \"data-nscript\": \"beforeInteractive\",\n crossOrigin: crossOrigin || undefined\n });\n });\n }\n getDynamicChunks(files) {\n return getDynamicChunks(this.context, this.props, files);\n }\n getPreNextScripts() {\n return getPreNextScripts(this.context, this.props);\n }\n getScripts(files) {\n return getScripts(this.context, this.props, files);\n }\n getPolyfillScripts() {\n return getPolyfillScripts(this.context, this.props);\n }\n render() {\n const { styles, ampPath, inAmpMode, hybridAmp, canonicalBase, __NEXT_DATA__, dangerousAsPath, headTags, unstable_runtimeJS, unstable_JsPreload, disableOptimizedLoading, optimizeCss, assetPrefix, nextFontManifest } = this.context;\n const disableRuntimeJS = unstable_runtimeJS === false;\n const disableJsPreload = unstable_JsPreload === false || !disableOptimizedLoading;\n this.context.docComponentsRendered.Head = true;\n let { head } = this.context;\n let cssPreloads = [];\n let otherHeadElements = [];\n if (head) {\n head.forEach((child)=>{\n if (child && child.type === 'link' && child.props['rel'] === 'preload' && child.props['as'] === 'style') {\n if (this.context.strictNextHead) {\n cssPreloads.push(/*#__PURE__*/ _react.default.cloneElement(child, {\n 'data-next-head': ''\n }));\n } else {\n cssPreloads.push(child);\n }\n } else {\n if (child) {\n if (this.context.strictNextHead) {\n otherHeadElements.push(/*#__PURE__*/ _react.default.cloneElement(child, {\n 'data-next-head': ''\n }));\n } else {\n otherHeadElements.push(child);\n }\n }\n }\n });\n head = cssPreloads.concat(otherHeadElements);\n }\n let children = _react.default.Children.toArray(this.props.children).filter(Boolean);\n // show a warning if Head contains (only in development)\n if (true) {\n children = _react.default.Children.map(children, (child)=>{\n var _child_props;\n const isReactHelmet = child == null ? void 0 : (_child_props = child.props) == null ? void 0 : _child_props['data-react-helmet'];\n if (!isReactHelmet) {\n var _child_props1;\n if ((child == null ? void 0 : child.type) === 'title') {\n console.warn(\"Warning: <title> should not be used in _document.js's <Head>. https://nextjs.org/docs/messages/no-document-title\");\n } else if ((child == null ? void 0 : child.type) === 'meta' && (child == null ? void 0 : (_child_props1 = child.props) == null ? void 0 : _child_props1.name) === 'viewport') {\n console.warn(\"Warning: viewport meta tags should not be used in _document.js's <Head>. https://nextjs.org/docs/messages/no-document-viewport-meta\");\n }\n }\n return child;\n // @types/react bug. Returned value from .map will not be `null` if you pass in `[null]`\n });\n if (this.props.crossOrigin) console.warn('Warning: `Head` attribute `crossOrigin` is deprecated. https://nextjs.org/docs/messages/doc-crossorigin-deprecated');\n }\n let hasAmphtmlRel = false;\n let hasCanonicalRel = false;\n // show warning and remove conflicting amp head tags\n head = _react.default.Children.map(head || [], (child)=>{\n if (!child) return child;\n const { type, props } = child;\n if ( true && inAmpMode) {\n let badProp = '';\n if (type === 'meta' && props.name === 'viewport') {\n badProp = 'name=\"viewport\"';\n } else if (type === 'link' && props.rel === 'canonical') {\n hasCanonicalRel = true;\n } else if (type === 'script') {\n // only block if\n // 1. it has a src and isn't pointing to ampproject's CDN\n // 2. it is using dangerouslySetInnerHTML without a type or\n // a type of text/javascript\n if (props.src && props.src.indexOf('ampproject') < -1 || props.dangerouslySetInnerHTML && (!props.type || props.type === 'text/javascript')) {\n badProp = '<script';\n Object.keys(props).forEach((prop)=>{\n badProp += ` ${prop}=\"${props[prop]}\"`;\n });\n badProp += '/>';\n }\n }\n if (badProp) {\n console.warn(`Found conflicting amp tag \"${child.type}\" with conflicting prop ${badProp} in ${__NEXT_DATA__.page}. https://nextjs.org/docs/messages/conflicting-amp-tag`);\n return null;\n }\n } else {\n // non-amp mode\n if (type === 'link' && props.rel === 'amphtml') {\n hasAmphtmlRel = true;\n }\n }\n return child;\n // @types/react bug. Returned value from .map will not be `null` if you pass in `[null]`\n });\n const files = getDocumentFiles(this.context.buildManifest, this.context.__NEXT_DATA__.page, true && inAmpMode);\n const nextFontLinkTags = getNextFontLinkTags(nextFontManifest, dangerousAsPath, assetPrefix);\n const tracingMetadata = (0, _utils.getTracedMetadata)((0, _tracer.getTracer)().getTracePropagationData(), this.context.experimentalClientTraceMetadata);\n const traceMetaTags = (tracingMetadata || []).map(({ key, value }, index)=>/*#__PURE__*/ (0, _jsxruntime.jsx)(\"meta\", {\n name: key,\n content: value\n }, `next-trace-data-${index}`));\n return /*#__PURE__*/ (0, _jsxruntime.jsxs)(\"head\", {\n ...getHeadHTMLProps(this.props),\n children: [\n this.context.isDevelopment && /*#__PURE__*/ (0, _jsxruntime.jsxs)(_jsxruntime.Fragment, {\n children: [\n /*#__PURE__*/ (0, _jsxruntime.jsx)(\"style\", {\n \"data-next-hide-fouc\": true,\n \"data-ampdevmode\": true && inAmpMode ? 'true' : undefined,\n dangerouslySetInnerHTML: {\n __html: `body{display:none}`\n }\n }),\n /*#__PURE__*/ (0, _jsxruntime.jsx)(\"noscript\", {\n \"data-next-hide-fouc\": true,\n \"data-ampdevmode\": true && inAmpMode ? 'true' : undefined,\n children: /*#__PURE__*/ (0, _jsxruntime.jsx)(\"style\", {\n dangerouslySetInnerHTML: {\n __html: `body{display:block}`\n }\n })\n })\n ]\n }),\n head,\n this.context.strictNextHead ? null : /*#__PURE__*/ (0, _jsxruntime.jsx)(\"meta\", {\n name: \"next-head-count\",\n content: _react.default.Children.count(head || []).toString()\n }),\n children,\n nextFontLinkTags.preconnect,\n nextFontLinkTags.preload,\n true && inAmpMode && /*#__PURE__*/ (0, _jsxruntime.jsxs)(_jsxruntime.Fragment, {\n children: [\n /*#__PURE__*/ (0, _jsxruntime.jsx)(\"meta\", {\n name: \"viewport\",\n content: \"width=device-width,minimum-scale=1,initial-scale=1\"\n }),\n !hasCanonicalRel && /*#__PURE__*/ (0, _jsxruntime.jsx)(\"link\", {\n rel: \"canonical\",\n href: canonicalBase + (__webpack_require__(/*! ../server/utils */ \"(pages-dir-node)/./node_modules/next/dist/server/utils.js\").cleanAmpPath)(dangerousAsPath)\n }),\n /*#__PURE__*/ (0, _jsxruntime.jsx)(\"link\", {\n rel: \"preload\",\n as: \"script\",\n href: \"https://cdn.ampproject.org/v0.js\"\n }),\n /*#__PURE__*/ (0, _jsxruntime.jsx)(AmpStyles, {\n styles: styles\n }),\n /*#__PURE__*/ (0, _jsxruntime.jsx)(\"style\", {\n \"amp-boilerplate\": \"\",\n dangerouslySetInnerHTML: {\n __html: `body{-webkit-animation:-amp-start 8s steps(1,end) 0s 1 normal both;-moz-animation:-amp-start 8s steps(1,end) 0s 1 normal both;-ms-animation:-amp-start 8s steps(1,end) 0s 1 normal both;animation:-amp-start 8s steps(1,end) 0s 1 normal both}@-webkit-keyframes -amp-start{from{visibility:hidden}to{visibility:visible}}@-moz-keyframes -amp-start{from{visibility:hidden}to{visibility:visible}}@-ms-keyframes -amp-start{from{visibility:hidden}to{visibility:visible}}@-o-keyframes -amp-start{from{visibility:hidden}to{visibility:visible}}@keyframes -amp-start{from{visibility:hidden}to{visibility:visible}}`\n }\n }),\n /*#__PURE__*/ (0, _jsxruntime.jsx)(\"noscript\", {\n children: /*#__PURE__*/ (0, _jsxruntime.jsx)(\"style\", {\n \"amp-boilerplate\": \"\",\n dangerouslySetInnerHTML: {\n __html: `body{-webkit-animation:none;-moz-animation:none;-ms-animation:none;animation:none}`\n }\n })\n }),\n /*#__PURE__*/ (0, _jsxruntime.jsx)(\"script\", {\n async: true,\n src: \"https://cdn.ampproject.org/v0.js\"\n })\n ]\n }),\n !( true && inAmpMode) && /*#__PURE__*/ (0, _jsxruntime.jsxs)(_jsxruntime.Fragment, {\n children: [\n !hasAmphtmlRel && hybridAmp && /*#__PURE__*/ (0, _jsxruntime.jsx)(\"link\", {\n rel: \"amphtml\",\n href: canonicalBase + getAmpPath(ampPath, dangerousAsPath)\n }),\n this.getBeforeInteractiveInlineScripts(),\n !optimizeCss && this.getCssLinks(files),\n !optimizeCss && /*#__PURE__*/ (0, _jsxruntime.jsx)(\"noscript\", {\n \"data-n-css\": this.props.nonce ?? ''\n }),\n !disableRuntimeJS && !disableJsPreload && this.getPreloadDynamicChunks(),\n !disableRuntimeJS && !disableJsPreload && this.getPreloadMainLinks(files),\n !disableOptimizedLoading && !disableRuntimeJS && this.getPolyfillScripts(),\n !disableOptimizedLoading && !disableRuntimeJS && this.getPreNextScripts(),\n !disableOptimizedLoading && !disableRuntimeJS && this.getDynamicChunks(files),\n !disableOptimizedLoading && !disableRuntimeJS && this.getScripts(files),\n optimizeCss && this.getCssLinks(files),\n optimizeCss && /*#__PURE__*/ (0, _jsxruntime.jsx)(\"noscript\", {\n \"data-n-css\": this.props.nonce ?? ''\n }),\n this.context.isDevelopment && // this element is used to mount development styles so the\n // ordering matches production\n // (by default, style-loader injects at the bottom of <head />)\n /*#__PURE__*/ (0, _jsxruntime.jsx)(\"noscript\", {\n id: \"__next_css__DO_NOT_USE__\"\n }),\n traceMetaTags,\n styles || null\n ]\n }),\n /*#__PURE__*/ _react.default.createElement(_react.default.Fragment, {}, ...headTags || [])\n ]\n });\n }\n}\nfunction handleDocumentScriptLoaderItems(scriptLoader, __NEXT_DATA__, props) {\n var _children_find_props, _children_find, _children_find_props1, _children_find1;\n if (!props.children) return;\n const scriptLoaderItems = [];\n const children = Array.isArray(props.children) ? props.children : [\n props.children\n ];\n const headChildren = (_children_find = children.find((child)=>child.type === Head)) == null ? void 0 : (_children_find_props = _children_find.props) == null ? void 0 : _children_find_props.children;\n const bodyChildren = (_children_find1 = children.find((child)=>child.type === 'body')) == null ? void 0 : (_children_find_props1 = _children_find1.props) == null ? void 0 : _children_find_props1.children;\n // Scripts with beforeInteractive can be placed inside Head or <body> so children of both needs to be traversed\n const combinedChildren = [\n ...Array.isArray(headChildren) ? headChildren : [\n headChildren\n ],\n ...Array.isArray(bodyChildren) ? bodyChildren : [\n bodyChildren\n ]\n ];\n _react.default.Children.forEach(combinedChildren, (child)=>{\n var _child_type;\n if (!child) return;\n // When using the `next/script` component, register it in script loader.\n if ((_child_type = child.type) == null ? void 0 : _child_type.__nextScript) {\n if (child.props.strategy === 'beforeInteractive') {\n scriptLoader.beforeInteractive = (scriptLoader.beforeInteractive || []).concat([\n {\n ...child.props\n }\n ]);\n return;\n } else if ([\n 'lazyOnload',\n 'afterInteractive',\n 'worker'\n ].includes(child.props.strategy)) {\n scriptLoaderItems.push(child.props);\n return;\n } else if (typeof child.props.strategy === 'undefined') {\n scriptLoaderItems.push({\n ...child.props,\n strategy: 'afterInteractive'\n });\n return;\n }\n }\n });\n __NEXT_DATA__.scriptLoader = scriptLoaderItems;\n}\nclass NextScript extends _react.default.Component {\n static #_ = this.contextType = _htmlcontextsharedruntime.HtmlContext;\n getDynamicChunks(files) {\n return getDynamicChunks(this.context, this.props, files);\n }\n getPreNextScripts() {\n return getPreNextScripts(this.context, this.props);\n }\n getScripts(files) {\n return getScripts(this.context, this.props, files);\n }\n getPolyfillScripts() {\n return getPolyfillScripts(this.context, this.props);\n }\n static getInlineScriptSource(context) {\n const { __NEXT_DATA__, largePageDataBytes } = context;\n try {\n const data = JSON.stringify(__NEXT_DATA__);\n if (largePageDataWarnings.has(__NEXT_DATA__.page)) {\n return (0, _htmlescape.htmlEscapeJsonString)(data);\n }\n const bytes = false ? 0 : Buffer.from(data).byteLength;\n const prettyBytes = (__webpack_require__(/*! ../lib/pretty-bytes */ \"(pages-dir-node)/./node_modules/next/dist/lib/pretty-bytes.js\")[\"default\"]);\n if (largePageDataBytes && bytes > largePageDataBytes) {\n if (false) {}\n console.warn(`Warning: data for page \"${__NEXT_DATA__.page}\"${__NEXT_DATA__.page === context.dangerousAsPath ? '' : ` (path \"${context.dangerousAsPath}\")`} is ${prettyBytes(bytes)} which exceeds the threshold of ${prettyBytes(largePageDataBytes)}, this amount of data can reduce performance.\\nSee more info here: https://nextjs.org/docs/messages/large-page-data`);\n }\n return (0, _htmlescape.htmlEscapeJsonString)(data);\n } catch (err) {\n if ((0, _iserror.default)(err) && err.message.indexOf('circular structure') !== -1) {\n throw Object.defineProperty(new Error(`Circular structure in \"getInitialProps\" result of page \"${__NEXT_DATA__.page}\". https://nextjs.org/docs/messages/circular-structure`), \"__NEXT_ERROR_CODE\", {\n value: \"E490\",\n enumerable: false,\n configurable: true\n });\n }\n throw err;\n }\n }\n render() {\n const { assetPrefix, inAmpMode, buildManifest, unstable_runtimeJS, docComponentsRendered, assetQueryString, disableOptimizedLoading, crossOrigin } = this.context;\n const disableRuntimeJS = unstable_runtimeJS === false;\n docComponentsRendered.NextScript = true;\n if ( true && inAmpMode) {\n if (false) {}\n const ampDevFiles = [\n ...buildManifest.devFiles,\n ...buildManifest.polyfillFiles,\n ...buildManifest.ampDevFiles\n ];\n return /*#__PURE__*/ (0, _jsxruntime.jsxs)(_jsxruntime.Fragment, {\n children: [\n disableRuntimeJS ? null : /*#__PURE__*/ (0, _jsxruntime.jsx)(\"script\", {\n id: \"__NEXT_DATA__\",\n type: \"application/json\",\n nonce: this.props.nonce,\n crossOrigin: this.props.crossOrigin || crossOrigin,\n dangerouslySetInnerHTML: {\n __html: NextScript.getInlineScriptSource(this.context)\n },\n \"data-ampdevmode\": true\n }),\n ampDevFiles.map((file)=>/*#__PURE__*/ (0, _jsxruntime.jsx)(\"script\", {\n src: `${assetPrefix}/_next/${(0, _encodeuripath.encodeURIPath)(file)}${assetQueryString}`,\n nonce: this.props.nonce,\n crossOrigin: this.props.crossOrigin || crossOrigin,\n \"data-ampdevmode\": true\n }, file))\n ]\n });\n }\n if (true) {\n if (this.props.crossOrigin) console.warn('Warning: `NextScript` attribute `crossOrigin` is deprecated. https://nextjs.org/docs/messages/doc-crossorigin-deprecated');\n }\n const files = getDocumentFiles(this.context.buildManifest, this.context.__NEXT_DATA__.page, true && inAmpMode);\n return /*#__PURE__*/ (0, _jsxruntime.jsxs)(_jsxruntime.Fragment, {\n children: [\n !disableRuntimeJS && buildManifest.devFiles ? buildManifest.devFiles.map((file)=>/*#__PURE__*/ (0, _jsxruntime.jsx)(\"script\", {\n src: `${assetPrefix}/_next/${(0, _encodeuripath.encodeURIPath)(file)}${assetQueryString}`,\n nonce: this.props.nonce,\n crossOrigin: this.props.crossOrigin || crossOrigin\n }, file)) : null,\n disableRuntimeJS ? null : /*#__PURE__*/ (0, _jsxruntime.jsx)(\"script\", {\n id: \"__NEXT_DATA__\",\n type: \"application/json\",\n nonce: this.props.nonce,\n crossOrigin: this.props.crossOrigin || crossOrigin,\n dangerouslySetInnerHTML: {\n __html: NextScript.getInlineScriptSource(this.context)\n }\n }),\n disableOptimizedLoading && !disableRuntimeJS && this.getPolyfillScripts(),\n disableOptimizedLoading && !disableRuntimeJS && this.getPreNextScripts(),\n disableOptimizedLoading && !disableRuntimeJS && this.getDynamicChunks(files),\n disableOptimizedLoading && !disableRuntimeJS && this.getScripts(files)\n ]\n });\n }\n}\nfunction Html(props) {\n const { inAmpMode, docComponentsRendered, locale, scriptLoader, __NEXT_DATA__ } = (0, _htmlcontextsharedruntime.useHtmlContext)();\n docComponentsRendered.Html = true;\n handleDocumentScriptLoaderItems(scriptLoader, __NEXT_DATA__, props);\n return /*#__PURE__*/ (0, _jsxruntime.jsx)(\"html\", {\n ...props,\n lang: props.lang || locale || undefined,\n amp: true && inAmpMode ? '' : undefined,\n \"data-ampdevmode\": true && inAmpMode && \"development\" !== 'production' ? '' : undefined\n });\n}\nfunction Main() {\n const { docComponentsRendered } = (0, _htmlcontextsharedruntime.useHtmlContext)();\n docComponentsRendered.Main = true;\n // @ts-ignore\n return /*#__PURE__*/ (0, _jsxruntime.jsx)(\"next-js-internal-body-render-target\", {});\n}\nclass Document extends _react.default.Component {\n /**\n * `getInitialProps` hook returns the context object with the addition of `renderPage`.\n * `renderPage` callback executes `React` rendering logic synchronously to support server-rendering wrappers\n */ static getInitialProps(ctx) {\n return ctx.defaultGetInitialProps(ctx);\n }\n render() {\n return /*#__PURE__*/ (0, _jsxruntime.jsxs)(Html, {\n children: [\n /*#__PURE__*/ (0, _jsxruntime.jsx)(Head, {\n nonce: this.props.nonce\n }),\n /*#__PURE__*/ (0, _jsxruntime.jsxs)(\"body\", {\n children: [\n /*#__PURE__*/ (0, _jsxruntime.jsx)(Main, {}),\n /*#__PURE__*/ (0, _jsxruntime.jsx)(NextScript, {\n nonce: this.props.nonce\n })\n ]\n })\n ]\n });\n }\n}\n// Add a special property to the built-in `Document` component so later we can\n// identify if a user customized `Document` is used or not.\nconst InternalFunctionDocument = function InternalFunctionDocument() {\n return /*#__PURE__*/ (0, _jsxruntime.jsxs)(Html, {\n children: [\n /*#__PURE__*/ (0, _jsxruntime.jsx)(Head, {}),\n /*#__PURE__*/ (0, _jsxruntime.jsxs)(\"body\", {\n children: [\n /*#__PURE__*/ (0, _jsxruntime.jsx)(Main, {}),\n /*#__PURE__*/ (0, _jsxruntime.jsx)(NextScript, {})\n ]\n })\n ]\n });\n};\nDocument[_constants.NEXT_BUILTIN_DOCUMENT] = InternalFunctionDocument; //# sourceMappingURL=_document.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1ub2RlKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvcGFnZXMvX2RvY3VtZW50LmpzIiwibWFwcGluZ3MiOiJBQUFBLDZDQUE2Qzs7Ozs7Ozs7Ozs7OztJQXVhaENBLElBQUk7ZUFBSkE7O0lBcXRCR0MsSUFBSTtlQUFKQTs7SUFpQ0FDLElBQUk7ZUFBSkE7O0lBL01IQyxVQUFVO2VBQVZBOztJQXNOYjs7O0NBR0MsR0FDRCxPQXNCQztlQXRCb0JDOzs7OzJFQXRxQ1c7dUNBQ007MENBV1Q7d0NBRVE7NEVBQ2pCO3NEQUtiOzJDQUV1QjtvQ0FFSjttQ0FDUTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUF1QmxDLDhFQUE4RSxHQUM5RSxNQUFNQyx3QkFBd0IsSUFBSUM7QUFFbEMsU0FBU0MsaUJBQ1BDLGFBQTRCLEVBQzVCQyxRQUFnQixFQUNoQkMsU0FBa0I7SUFFbEIsTUFBTUMsY0FBaUNDLENBQUFBLEdBQUFBLGNBQUFBLFlBQVksRUFBQ0osZUFBZTtJQUNuRSxNQUFNSyxZQUNKQyxLQUFtQyxJQUFJSixZQUNuQyxFQUFFLEdBQ0ZFLENBQUFBLEdBQUFBLGNBQUFBLFlBQUFBLEVBQWFKLGVBQWVDO0lBRWxDLE9BQU87UUFDTEU7UUFDQUU7UUFDQUksVUFBVTtlQUFJLElBQUlYLElBQUk7bUJBQUlLO21CQUFnQkU7YUFBVTtTQUFFO0lBQ3hEO0FBQ0Y7QUFFQSxTQUFTSyxtQkFBbUJDLE9BQWtCLEVBQUVDLEtBQWtCO0lBQ2hFLDREQUE0RDtJQUM1RCw2Q0FBNkM7SUFDN0MsTUFBTSxFQUNKQyxXQUFXLEVBQ1hiLGFBQWEsRUFDYmMsZ0JBQWdCLEVBQ2hCQyx1QkFBdUIsRUFDdkJDLFdBQVcsRUFDWixHQUFHTDtJQUVKLE9BQU9YLGNBQWNpQixhQUFhLENBQy9CQyxNQUFNLENBQ0wsQ0FBQ0MsV0FBYUEsU0FBU0MsUUFBUSxDQUFDLFVBQVUsQ0FBQ0QsU0FBU0MsUUFBUSxDQUFDLGVBRTlEQyxHQUFH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QUFMLGFBQ2hCLEtBQ0E1Qjs7QUFJWjtBQUVPLFNBQVN6STtJQUNkLE1BQU0sRUFBRTRKLHFCQUFxQixFQUFFLEdBQUdpRSxDQUFBQSxHQUFBQSwwQkFBQUEsY0FBQUE7SUFDbENqRSxzQkFBc0I1SixJQUFJLEdBQUc7SUFDN0IsYUFBYTtJQUNiLE9BQU8sV0FBUCxHQUFPLHFCQUFDZ08sdUNBQUFBLENBQUFBO0FBQ1Y7QUFNZSxNQUFNOU4saUJBQXlCcUgsT0FBQUEsT0FBSyxDQUFDQyxTQUFTO0lBRzNEOzs7R0FHQyxHQUNELE9BQU95RyxnQkFBZ0JDLEdBQW9CLEVBQWlDO1FBQzFFLE9BQU9BLElBQUlDLHNCQUFzQixDQUFDRDtJQUNwQztJQUVBL0UsU0FBUztRQUNQLHFCQUNFLHNCQUFDcEosTUFBQUE7OzhCQUNDLHFCQUFDRCxNQUFBQTtvQkFBS2dDLE9BQU8sSUFBSSxDQUFDWixLQUFLLENBQUNZLEtBQUs7OzhCQUM3QixzQkFBQ3NNLFFBQUFBOztzQ0FDQyxxQkFBQ3BPLE1BQUFBLENBQUFBO3NDQUNELHFCQUFDQyxZQUFBQTs0QkFBVzZCLE9BQU8sSUFBSSxDQUFDWixLQUFLLENBQUNZLEtBQUs7Ozs7OztJQUkzQztBQUNGO0FBRUEsOEVBQThFO0FBQzlFLDJEQUEyRDtBQUMzRCxNQUFNdU0sMkJBQ0osU0FBU0E7SUFDUCxxQkFDRSxzQkFBQ3RPLE1BQUFBOzswQkFDQyxxQkFBQ0QsTUFBQUEsQ0FBQUE7MEJBQ0Qsc0JBQUNzTyxRQUFBQTs7a0NBQ0MscUJBQUNwTyxNQUFBQSxDQUFBQTtrQ0FDRCxxQkFBQ0MsWUFBQUEsQ0FBQUE7Ozs7O0FBSVQ7QUFDQUMsUUFBZ0IsQ0FBQ29PLFdBQUFBLHFCQUFxQixDQUFDLEdBQUdEIiwic291cmNlcyI6WyJEOlxcc3JjXFxwYWdlc1xcX2RvY3VtZW50LnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyIvLy8gPHJlZmVyZW5jZSB0eXBlcz1cIndlYnBhY2svbW9kdWxlLmQudHNcIiAvPlxuXG5pbXBvcnQgUmVhY3QsIHsgdHlwZSBKU1ggfSBmcm9tICdyZWFjdCdcbmltcG9ydCB7IE5FWFRfQlVJTFRJTl9ET0NVTUVOVCB9IGZyb20gJy4uL3NoYXJlZC9saWIvY29uc3RhbnRzJ1xuaW1wb3J0IHR5cGUge1xuICBEb2N1bWVudENvbnRleHQsXG4gIERvY3VtZW50SW5pdGlhbFByb3BzLFxuICBEb2N1bWVudFByb3BzLFxuICBEb2N1bWVudFR5cGUsXG4gIE5FWFRfREFUQSxcbn0gZnJvbSAnLi4vc2hhcmVkL2xpYi91dGlscydcbmltcG9ydCB0eXBlIHsgU2NyaXB0UHJvcHMgfSBmcm9tICcuLi9jbGllbnQvc2NyaXB0J1xuaW1wb3J0IHR5cGUgeyBOZXh0Rm9udE1hbmlmZXN0IH0gZnJvbSAnLi4vYnVpbGQvd2VicGFjay9wbHVnaW5zL25leHQtZm9udC1tYW5pZmVzdC1wbHVnaW4nXG5cbmltcG9ydCB7IGdldFBhZ2VGaWxlcyB9IGZyb20gJy4uL3NlcnZlci9nZXQtcGFnZS1maWxlcydcbmltcG9ydCB0eXBlIHsgQnVpbGRNYW5pZmVzdCB9IGZyb20gJy4uL3NlcnZlci9nZXQtcGFnZS1maWxlcydcbmltcG9ydCB7IGh0bWxFc2NhcGVKc29uU3RyaW5nIH0gZnJvbSAnLi4vc2VydmVyL2h0bWxlc2NhcGUnXG5pbXBvcnQgaXNFcnJvciBmcm9tICcuLi9saWIvaXMtZXJyb3InXG5cbmltcG9ydCB7XG4gIEh0bWxDb250ZXh0LFxuICB1c2VIdG1sQ29udGV4dCxcbn0gZnJvbSAnLi4vc2hhcmVkL2xpYi9odG1sLWNvbnRleHQuc2hhcmVkLXJ1bnRpbWUnXG5pbXBvcnQgdHlwZSB7IEh0bWxQcm9wcyB9IGZyb20gJy4uL3NoYXJlZC9saWIvaHRtbC1jb250ZXh0LnNoYXJlZC1ydW50aW1lJ1xuaW1wb3J0IHsgZW5jb2RlVVJJUGF0aCB9IGZyb20gJy4uL3NoYXJlZC9saWIvZW5jb2RlLXVyaS1wYXRoJ1xuaW1wb3J0IHR5cGUgeyBEZWVwUmVhZG9ubHkgfSBmcm9tICcuLi9zaGFyZWQvbGliL2RlZXAtcmVhZG9ubHknXG5pbXBvcnQgeyBnZXRUcmFjZXIgfSBmcm9tICcuLi9zZXJ2ZXIvbGliL3RyYWNlL3RyYWNlcidcbmltcG9ydCB7IGdldFRyYWNlZE1ldGFkYXRhIH0gZnJvbSAnLi4vc2VydmVyL2xpYi90cmFjZS91dGlscydcblxuZXhwb3J0IHR5cGUgeyBEb2N1bWVudENvbnRleHQsIERvY3VtZW50SW5pdGlhbFByb3BzLCBEb2N1bWVudFByb3BzIH1cblxuZXhwb3J0IHR5cGUgT3JpZ2luUHJvcHMgPSB7XG4gIG5vbmNlPzogc3RyaW5nXG4gIGNyb3NzT3JpZ2luPzogJ2Fub255bW91cycgfCAndXNlLWNyZWRlbnRpYWxzJyB8ICcnIHwgdW5kZWZpbmVkXG4gIGNoaWxkcmVuPzogUmVhY3QuUmVhY3ROb2RlXG59XG5cbnR5cGUgRG9jdW1lbnRGaWxlcyA9IHtcbiAgc2hhcmVkRmlsZXM6IHJlYWRvbmx5IHN0cmluZ1tdXG4gIHBhZ2VGaWxlczogcmVhZG9ubHkgc3RyaW5nW11cbiAgYWxsRmlsZXM6IHJlYWRvbmx5IHN0cmluZ1tdXG59XG5cbnR5cGUgSGVhZEhUTUxQcm9wcyA9IFJlYWN0LkRldGFpbGVkSFRNTFByb3BzPFxuICBSZWFjdC5IVE1MQXR0cmlidXRlczxIVE1MSGVhZEVsZW1lbnQ+LFxuICBIVE1MSGVhZEVsZW1lbnRcbj5cblxudHlwZSBIZWFkUHJvcHMgPSBPcmlnaW5Qcm9wcyAmIEhlYWRIVE1MUHJvcHNcblxuLyoqIFNldCBvZiBwYWdlcyB0aGF0IGhhdmUgdHJpZ2dlcmVkIGEgbGFyZ2UgZGF0YSB3YXJuaW5nIG9uIHByb2R1Y3Rpb24gbW9kZS4gKi9cbmNvbnN0IGxhcmdlUGFnZURhdGFXYXJuaW5ncyA9IG5ldyBTZXQ8c3RyaW5nPigpXG5cbmZ1bmN0aW9uIGdldERvY3VtZW50RmlsZXMoXG4gIGJ1aWxkTWFuaWZlc3Q6IEJ1aWxkTWFuaWZlc3QsXG4gIHBhdGhuYW1lOiBzdHJpbmcsXG4gIGluQW1wTW9kZTogYm9vbGVhblxuKTogRG9jdW1lbnRGaWxlcyB7XG4gIGNvbnN0IHNoYXJlZEZpbGVzOiByZWFkb25seSBzdHJpbmdbXSA9IGdldFBhZ2VGaWxlcyhidWlsZE1hbmlmZXN0LCAnL19hcHAnKVxuICBjb25zdCBwYWdlRmlsZXM6IHJlYWRvbmx5IHN0cmluZ1tdID1cbiAgICBwcm9jZXNzLmVudi5ORVhUX1JVTlRJTUUgIT09ICdlZGdlJyAmJiBpbkFtcE1vZGVcbiAgICAgID8gW11cbiAgICAgIDogZ2V0UGFnZUZpbGVzKGJ1aWxkTWFuaWZlc3QsIHBhdGhuYW1lKVxuXG4gIHJldHVybiB7XG4gICAgc2hhcmVkRmlsZXMsXG4gICAgcGFnZUZpbGVzLFxuICAgIGFsbEZpbGVzOiBbLi4ubmV3IFNldChbLi4uc2hhcmVkRmlsZXMsIC4uLnBhZ2VGaWxlc10pXSxcbiAgfVxufVxuXG5mdW5jdGlvbiBnZXRQb2x5ZmlsbFNjcmlwdHMoY29udGV4dDogSHRtbFByb3BzLCBwcm9wczogT3JpZ2luUHJvcHMpIHtcbiAgLy8gcG9seWZpbGxzLmpzIGhhcyB0byBiZSByZW5kZXJlZCBhcyBub21vZHVsZSB3aXRob3V0IGFzeW5jXG4gIC8vIEl0IGFsc28gaGFzIHRvIGJlIHRoZSBmaXJzdCBzY3JpcHQgdG8gbG9hZFxuICBjb25zdCB7XG4gICAgYXNzZXRQcmVmaXgsXG4gICAgYnVpbGRNYW5pZmVzdCxcbiAgICBhc3NldFF1ZXJ5U3RyaW5nLFxuICAgIGRpc2FibGVPcHRpbWl6ZWRMb2FkaW5nLFxuICAgIGNyb3NzT3JpZ2luLFxuICB9ID0gY29udGV4dFxuXG4gIHJldHVybiBidWlsZE1hbmlmZXN0LnBvbHlmaWxsRmlsZXNcbiAgICAuZmlsdGVyKFxuICAgICAgKHBvbHlmaWxsKSA9PiBwb2x5ZmlsbC5lbmRzV2l0aCgnLmpzJykgJiYgIXBvbHlmaWxsLmVuZHNXaXRoKCcubW9kdWxlLmpzJylcbiAgICApXG4gICAgLm1hcCgocG9seWZpbGwpID0+IChcbiAgICAgIDxzY3JpcHRcbiAgICAgICAga2V5PXtwb2x5ZmlsbH1cbiAgICAgICAgZGVmZXI9eyFkaXNhYmxlT3B0aW1pemVkTG9hZGluZ31cbiAgICAgICAgbm9uY2U9e3Byb3BzLm5vbmNlfVxuICAgICAgICBjcm9zc09yaWdpbj17cHJvcHMuY3Jvc3NPcmlnaW4gfHwgY3Jvc3NPcmlnaW59XG4gICAgICAgIG5vTW9kdWxlPXt0cnVlfVxuICAgICAgICBzcmM9e2Ake2Fzc2V0UHJlZml4fS9fbmV4dC8ke2VuY29kZVVSSVBhdGgoXG4gICAgICAgICAgcG9seWZpbGxcbiAgICAgICAgKX0ke2Fzc2V0UXVlcnlTdHJpbmd9YH1cbiAgICAgIC8+XG4gICAgKSlcbn1cblxuZnVuY3Rpb24gaGFzQ29tcG9uZW50UHJvcHMoY2hpbGQ6IGFueSk6IGNoaWxkIGlzIFJlYWN0LlJlYWN0RWxlbWVudDxhbnk+IHtcbiAgcmV0dXJuICEhY2hpbGQgJiYgISFjaGlsZC5wcm9wc1xufVxuXG5mdW5jdGlvbiBBbXBTdHlsZXMoe1xuICBzdHlsZXMsXG59OiB7XG4gIHN0eWxlcz86IFJlYWN0LlJlYWN0RWxlbWVudFtdIHwgSXRlcmFibGU8UmVhY3QuUmVhY3ROb2RlPlxufSkge1xuICBpZiAoIXN0eWxlcykgcmV0dXJuIG51bGxcblxuICAvLyB0cnkgdG8gcGFyc2Ugc3R5bGVzIGZyb20gZnJhZ21lbnQgZm9yIGJhY2t3YXJkcyBjb21wYXRcbiAgY29uc3QgY3VyU3R5bGVzOiBSZWFjdC5SZWFjdEVsZW1lbnQ8YW55PltdID0gQXJyYXkuaXNBcnJheShzdHlsZXMpXG4gICAgPyAoc3R5bGVzIGFzIFJlYWN0LlJlYWN0RWxlbWVudFtdKVxuICAgIDogW11cbiAgaWYgKFxuICAgIC8vIEB0cy1pZ25vcmUgUHJvcGVydHkgJ3Byb3BzJyBkb2VzIG5vdCBleGlzdCBvbiB0eXBlIFJlYWN0RWxlbWVudFxuICAgIHN0eWxlcy5wcm9wcyAmJlxuICAgIC8vIEB0cy1pZ25vcmUgUHJvcGVydHkgJ3Byb3BzJyBkb2VzIG5vdCBleGlzdCBvbiB0eXBlIFJlYWN0RWxlbWVudFxuICAgIEFycmF5LmlzQXJyYXkoc3R5bGVzLnByb3BzLmNoaWxkcmVuKVxuICApIHtcbiAgICBjb25zdCBoYXNTdHlsZXMgPSAoZWw6IFJlYWN0LlJlYWN0RWxlbWVudDxhbnk+KSA9PlxuICAgICAgZWw/LnByb3BzPy5kYW5nZXJvdXNseVNldElubmVySFRNTD8uX19odG1sXG4gICAgLy8gQHRzLWlnbm9yZSBQcm9wZXJ0eSAncHJvcHMnIGRvZXMgbm90IGV4aXN0IG9uIHR5cGUgUmVhY3RFbGVtZW50XG4gICAgc3R5bGVzLnByb3BzLmNoaWxkcmVuLmZvckVhY2goKGNoaWxkOiBSZWFjdC5SZWFjdEVsZW1lbnQpID0+IHtcbiAgICAgIGlmIChBcnJheS5pc0FycmF5KGNoaWxkKSkge1xuICAgICAgICBjaGlsZC5mb3JFYWNoKChlbCkgPT4gaGFzU3R5bGVzKGVsKSAmJiBjdXJTdHlsZXMucHVzaChlbCkpXG4gICAgICB9IGVsc2UgaWYgKGhhc1N0eWxlcyhjaGlsZCkpIHtcbiAgICAgICAgY3VyU3R5bGVzLnB1c2goY2hpbGQpXG4gICAgICB9XG4gICAgfSlcbiAgfVxuXG4gIC8qIEFkZCBjdXN0b20gc3R5bGVzIGJlZm9yZSBBTVAgc3R5bGVzIHRvIHByZXZlbnQgYWNjaWRlbnRhbCBvdmVycmlkZXMgKi9cbiAgcmV0dXJuIChcbiAgICA8c3R5bGVcbiAgICAgIGFtcC1jdXN0b209XCJcIlxuICAgICAgZGFuZ2Vyb3VzbHlTZXRJbm5lckhUTUw9e3tcbiAgICAgICAgX19odG1sOiBjdXJTdHlsZXNcbiAgICAgICAgICAubWFwKChzdHlsZSkgPT4gc3R5bGUucHJvcHMuZGFuZ2Vyb3VzbHlTZXRJbm5lckhUTUwuX19odG1sKVxuICAgICAgICAgIC5qb2luKCcnKVxuICAgICAgICAgIC5yZXBsYWNlKC9cXC9cXCojIHNvdXJjZU1hcHBpbmdVUkw9LipcXCpcXC8vZywgJycpXG4gICAgICAgICAgLnJlcGxhY2UoL1xcL1xcKkAgc291cmNlVVJMPS4qP1xcKlxcLy9nLCAnJyksXG4gICAgICB9fVxuICAgIC8+XG4gIClcbn1cblxuZnVuY3Rpb24gZ2V0RHluYW1pY0NodW5rcyhcbiAgY29udGV4dDogSHRtbFByb3BzLFxuICBwcm9wczogT3JpZ2luUHJvcHMsXG4gIGZpbGVzOiBEb2N1bWVudEZpbGVzXG4pIHtcbiAgY29uc3Qge1xuICAgIGR5bmFtaWNJbXBvcnRzLFxuICAgIGFzc2V0UHJlZml4LFxuICAgIGlzRGV2ZWxvcG1lbnQsXG4gICAgYXNzZXRRdWVyeVN0cmluZyxcbiAgICBkaXNhYmxlT3B0aW1pemVkTG9hZGluZyxcbiAgICBjcm9zc09yaWdpbixcbiAgfSA9IGNvbnRleHRcblxuICByZXR1cm4gZHluYW1pY0ltcG9ydHMubWFwKChmaWxlKSA9PiB7XG4gICAgaWYgKCFmaWxlLmVuZHNXaXRoKCcuanMnKSB8fCBmaWxlcy5hbGxGaWxlcy5pbmNsdWRlcyhmaWxlKSkgcmV0dXJuIG51bGxcblxuICAgIHJldHVybiAoXG4gICAgICA8c2NyaXB0XG4gICAgICAgIGFzeW5jPXshaXNEZXZlbG9wbWVudCAmJiBkaXNhYmxlT3B0aW1pemVkTG9hZGluZ31cbiAgICAgICAgZGVmZXI9eyFkaXNhYmxlT3B0aW1pemVkTG9hZGluZ31cbiAgICAgICAga2V5PXtmaWxlfVxuICAgICAgICBzcmM9e2Ake2Fzc2V0UHJlZml4fS9fbmV4dC8ke2VuY29kZVVSSVBhdGgoZmlsZSl9JHthc3NldFF1ZXJ5U3RyaW5nfWB9XG4gICAgICAgIG5vbmNlPXtwcm9wcy5ub25jZX1cbiAgICAgICAgY3Jvc3NPcmlnaW49e3Byb3BzLmNyb3NzT3JpZ2luIHx8IGNyb3NzT3JpZ2lufVxuICAgICAgLz5cbiAgICApXG4gIH0pXG59XG5cbmZ1bmN0aW9uIGdldFNjcmlwdHMoXG4gIGNvbnRleHQ6IEh0bWxQcm9wcyxcbiAgcHJvcHM6IE9yaWdpblByb3BzLFxuICBmaWxlczogRG9jdW1lbnRGaWxlc1xuKSB7XG4gIGNvbnN0IHtcbiAgICBhc3NldFByZWZpeCxcbiAgICBidWlsZE1hbmlmZXN0LFxuICAgIGlzRGV2ZWxvcG1lbnQsXG4gICAgYXNzZXRRdWVyeVN0cmluZyxcbiAgICBkaXNhYmxlT3B0aW1pemVkTG9hZGluZyxcbiAgICBjcm9zc09yaWdpbixcbiAgfSA9IGNvbnRleHRcblxuICBjb25zdCBub3JtYWxTY3JpcHRzID0gZmlsZXMuYWxsRmlsZXMuZmlsdGVyKChmaWxlKSA9PiBmaWxlLmVuZHNXaXRoKCcuanMnKSlcbiAgY29uc3QgbG93UHJpb3JpdHlTY3JpcHRzID0gYnVpbGRNYW5pZmVzdC5sb3dQcmlvcml0eUZpbGVzPy5maWx0ZXIoKGZpbGUpID0+XG4gICAgZmlsZS5lbmRzV2l0aCgnLmpzJylcbiAgKVxuXG4gIHJldHVybiBbLi4ubm9ybWFsU2NyaXB0cywgLi4ubG93UHJpb3JpdHlTY3JpcHRzXS5tYXAoKGZpbGUpID0+IHtcbiAgICByZXR1cm4gKFxuICAgICAgPHNjcmlwdFxuICAgICAgICBrZXk9e2ZpbGV9XG4gICAgICAgIHNyYz17YCR7YXNzZXRQcmVmaXh9L19uZXh0LyR7ZW5jb2RlVVJJUGF0aChmaWxlKX0ke2Fzc2V0UXVlcnlTdHJpbmd9YH1cbiAgICAgICAgbm9uY2U9e3Byb3BzLm5vbmNlfVxuICAgICAgICBhc3luYz17IWlzRGV2ZWxvcG1lbnQgJiYgZGlzYWJsZU9wdGltaXplZExvYWRpbmd9XG4gICAgICAgIGRlZmVyPXshZGlzYWJsZU9wdGltaXplZExvYWRpbmd9XG4gICAgICAgIGNyb3NzT3JpZ2luPXtwcm9wcy5jcm9zc09yaWdpbiB8fCBjcm9zc09yaWdpbn1cbiAgICAgIC8+XG4gICAgKVxuICB9KVxufVxuXG5mdW5jdGlvbiBnZXRQcmVOZXh0V29ya2VyU2NyaXB0cyhjb250ZXh0OiBIdG1sUHJvcHMsIHByb3BzOiBPcmlnaW5Qcm9wcykge1xuICBjb25zdCB7IGFzc2V0UHJlZml4LCBzY3JpcHRMb2FkZXIsIGNyb3NzT3JpZ2luLCBuZXh0U2NyaXB0V29ya2VycyB9ID0gY29udGV4dFxuXG4gIC8vIGRpc2FibGUgYG5leHRTY3JpcHRXb3JrZXJzYCBpbiBlZGdlIHJ1bnRpbWVcbiAgaWYgKCFuZXh0U2NyaXB0V29ya2VycyB8fCBwcm9jZXNzLmVudi5ORVhUX1JVTlRJTUUgPT09ICdlZGdlJykgcmV0dXJuIG51bGxcblxuICB0cnkge1xuICAgIC8vIEB0cy1leHBlY3QtZXJyb3I6IFByZXZlbnQgd2VicGFjayBmcm9tIHByb2Nlc3NpbmcgdGhpcyByZXF1aXJlXG4gICAgbGV0IHsgcGFydHl0b3duU25pcHBldCB9ID0gX19ub25fd2VicGFja19yZXF1aXJlX18oXG4gICAgICAnQGJ1aWxkZXIuaW8vcGFydHl0b3duL2ludGVncmF0aW9uJyFcbiAgICApXG5cbiAgICBjb25zdCBjaGlsZHJlbiA9IEFycmF5LmlzQXJyYXkocHJvcHMuY2hpbGRyZW4pXG4gICAgICA/IHByb3BzLmNoaWxkcmVuXG4gICAgICA6IFtwcm9wcy5jaGlsZHJlbl1cblxuICAgIC8vIENoZWNrIHRvIHNlZSBpZiB0aGUgdXNlciBoYXMgZGVmaW5lZCB0aGVpciBvd24gUGFydHl0b3duIGNvbmZpZ3VyYXRpb25cbiAgICBjb25zdCB1c2VyRGVmaW5lZENvbmZpZyA9IGNoaWxkcmVuLmZpbmQoXG4gICAgICAoY2hpbGQpID0+XG4gICAgICAgIGhhc0NvbXBvbmVudFByb3BzKGNoaWxkKSAmJlxuICAgICAgICBjaGlsZD8ucHJvcHM/LmRhbmdlcm91c2x5U2V0SW5uZXJIVE1MPy5fX2h0bWwubGVuZ3RoICYmXG4gICAgICAgICdkYXRhLXBhcnR5dG93bi1jb25maWcnIGluIGNoaWxkLnByb3BzXG4gICAgKVxuXG4gICAgcmV0dXJuIChcbiAgICAgIDw+XG4gICAgICAgIHshdXNlckRlZmluZWRDb25maWcgJiYgKFxuICAgICAgICAgIDxzY3JpcHRcbiAgICAgICAgICAgIGRhdGEtcGFydHl0b3duLWNvbmZpZz1cIlwiXG4gICAgICAgICAgICBkYW5nZXJvdXNseVNldElubmVySFRNTD17e1xuICAgICAgICAgICAgICBfX2h0bWw6IGBcbiAgICAgICAgICAgIHBhcnR5dG93biA9IHtcbiAgICAgICAgICAgICAgbGliOiBcIiR7YXNzZXRQcmVmaXh9L19uZXh0L3N0YXRpYy9+cGFydHl0b3duL1wiXG4gICAgICAgICAgICB9O1xuICAgICAgICAgIGAsXG4gICAgICAgICAgICB9fVxuICAgICAgICAgIC8+XG4gICAgICAgICl9XG4gICAgICAgIDxzY3JpcHRcbiAgICAgICAgICBkYXRhLXBhcnR5dG93bj1cIlwiXG4gICAgICAgICAgZGFuZ2Vyb3VzbHlTZXRJbm5lckhUTUw9e3tcbiAgICAgICAgICAgIF9faHRtbDogcGFydHl0b3duU25pcHBldCgpLFxuICAgICAgICAgIH19XG4gICAgICAgIC8+XG4gICAgICAgIHsoc2NyaXB0TG9hZGVyLndvcmtlciB8fCBbXSkubWFwKChmaWxlOiBTY3JpcHRQcm9wcywgaW5kZXg6IG51bWJlcikgPT4ge1xuICAgICAgICAgIGNvbnN0IHtcbiAgICAgICAgICAgIHN0cmF0ZWd5LFxuICAgICAgICAgICAgc3JjLFxuICAgICAgICAgICAgY2hpbGRyZW46IHNjcmlwdENoaWxkcmVuLFxuICAgICAgICAgICAgZGFuZ2Vyb3VzbHlTZXRJbm5lckhUTUwsXG4gICAgICAgICAgICAuLi5zY3JpcHRQcm9wc1xuICAgICAgICAgIH0gPSBmaWxlXG5cbiAgICAgICAgICBsZXQgc3JjUHJvcHM6IHtcbiAgICAgICAgICAgIHNyYz86IHN0cmluZ1xuICAgICAgICAgICAgZGFuZ2Vyb3VzbHlTZXRJbm5lckhUTUw/OiBTY3JpcHRQcm9wc1snZGFuZ2Vyb3VzbHlTZXRJbm5lckhUTUwnXVxuICAgICAgICAgIH0gPSB7fVxuXG4gICAgICAgICAgaWYgKHNyYykge1xuICAgICAgICAgICAgLy8gVXNlIGV4dGVybmFsIHNyYyBpZiBwcm92aWRlZFxuICAgICAgICAgICAgc3JjUHJvcHMuc3JjID0gc3JjXG4gICAgICAgICAgfSBlbHNlIGlmIChcbiAgICAgICAgICAgIGRhbmdlcm91c2x5U2V0SW5uZXJIVE1MICYmXG4gICAgICAgICAgICBkYW5nZXJvdXNseVNldElubmVySFRNTC5fX2h0bWxcbiAgICAgICAgICApIHtcbiAgICAgICAgICAgIC8vIEVtYmVkIGlubGluZSBzY3JpcHQgaWYgcHJvdmlkZWQgd2l0aCBkYW5nZXJvdXNseVNldElubmVySFRNTFxuICAgICAgICAgICAgc3JjUHJvcHMuZGFuZ2Vyb3VzbHlTZXRJbm5lckhUTUwgPSB7XG4gICAgICAgICAgICAgIF9faHRtbDogZGFuZ2Vyb3VzbHlTZXRJbm5lckhUTUwuX19odG1sLFxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0gZWxzZSBpZiAoc2NyaXB0Q2hpbGRyZW4pIHtcbiAgICAgICAgICAgIC8vIEVtYmVkIGlubGluZSBzY3JpcHQgaWYgcHJvdmlkZWQgd2l0aCBjaGlsZHJlblxuICAgICAgICAgICAgc3JjUHJvcHMuZGFuZ2Vyb3VzbHlTZXRJbm5lckhUTUwgPSB7XG4gICAgICAgICAgICAgIF9faHRtbDpcbiAgICAgICAgICAgICAgICB0eXBlb2Ygc2NyaXB0Q2hpbGRyZW4gPT09ICdzdHJpbmcnXG4gICAgICAgICAgICAgICAgICA/IHNjcmlwdENoaWxkcmVuXG4gICAgICAgICAgICAgICAgICA6IEFycmF5LmlzQXJyYXkoc2NyaXB0Q2hpbGRyZW4pXG4gICAgICAgICAgICAgICAgICAgID8gc2NyaXB0Q2hpbGRyZW4uam9pbignJylcbiAgICAgICAgICAgICAgICAgICAgOiAnJyxcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICAgICAgICAnSW52YWxpZCB1c2FnZSBvZiBuZXh0L3NjcmlwdC4gRGlkIHlvdSBmb3JnZXQgdG8gaW5jbHVkZSBhIHNyYyBhdHRyaWJ1dGUgb3IgYW4gaW5saW5lIHNjcmlwdD8gaHR0cHM6Ly9uZXh0anMub3JnL2RvY3MvbWVzc2FnZXMvaW52YWxpZC1zY3JpcHQnXG4gICAgICAgICAgICApXG4gICAgICAgICAgfVxuXG4gICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgIDxzY3JpcHRcbiAgICAgICAgICAgICAgey4uLnNyY1Byb3BzfVxuICAgICAgICAgICAgICB7Li4uc2NyaXB0UHJvcHN9XG4gICAgICAgICAgICAgIHR5cGU9XCJ0ZXh0L3BhcnR5dG93blwiXG4gICAgICAgICAgICAgIGtleT17c3JjIHx8IGluZGV4fVxuICAgICAgICAgICAgICBub25jZT17cHJvcHMubm9uY2V9XG4gICAgICAgICAgICAgIGRhdGEtbnNjcmlwdD1cIndvcmtlclwiXG4gICAgICAgICAgICAgIGNyb3NzT3JpZ2luPXtwcm9wcy5jcm9zc09yaWdpbiB8fCBjcm9zc09yaWdpbn1cbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgKVxuICAgICAgICB9KX1cbiAgICAgIDwvPlxuICAgIClcbiAgfSBjYXRjaCAoZXJyKSB7XG4gICAgaWYgKGlzRXJyb3IoZXJyKSAmJiBlcnIuY29kZSAhPT0gJ01PRFVMRV9OT1RfRk9VTkQnKSB7XG4gICAgICBjb25zb2xlLndhcm4oYFdhcm5pbmc6ICR7ZXJyLm1lc3NhZ2V9YClcbiAgICB9XG4gICAgcmV0dXJuIG51bGxcbiAgfVxufVxuXG5mdW5jdGlvbiBnZXRQcmVOZXh0U2NyaXB0cyhjb250ZXh0OiBIdG1sUHJvcHMsIHByb3BzOiBPcmlnaW5Qcm9wcykge1xuICBjb25zdCB7IHNjcmlwdExvYWRlciwgZGlzYWJsZU9wdGltaXplZExvYWRpbmcsIGNyb3NzT3JpZ2luIH0gPSBjb250ZXh0XG5cbiAgY29uc3Qgd2ViV29ya2VyU2NyaXB0cyA9IGdldFByZU5leHRXb3JrZXJTY3JpcHRzKGNvbnRleHQsIHByb3BzKVxuXG4gIGNvbnN0IGJlZm9yZUludGVyYWN0aXZlU2NyaXB0cyA9IChzY3JpcHRMb2FkZXIuYmVmb3JlSW50ZXJhY3RpdmUgfHwgW10pXG4gICAgLmZpbHRlcigoc2NyaXB0KSA9PiBzY3JpcHQuc3JjKVxuICAgIC5tYXAoKGZpbGU6IFNjcmlwdFByb3BzLCBpbmRleDogbnVtYmVyKSA9PiB7XG4gICAgICBjb25zdCB7IHN0cmF0ZWd5LCAuLi5zY3JpcHRQcm9wcyB9ID0gZmlsZVxuICAgICAgcmV0dXJuIChcbiAgICAgICAgPHNjcmlwdFxuICAgICAgICAgIHsuLi5zY3JpcHRQcm9wc31cbiAgICAgICAgICBrZXk9e3NjcmlwdFByb3BzLnNyYyB8fCBpbmRleH1cbiAgICAgICAgICBkZWZlcj17c2NyaXB0UHJvcHMuZGVmZXIgPz8gIWRpc2FibGVPcHRpbWl6ZWRMb2FkaW5nfVxuICAgICAgICAgIG5vbmNlPXtzY3JpcHRQcm9wcy5ub25jZSB8fCBwcm9wcy5ub25jZX1cbiAgICAgICAgICBkYXRhLW5zY3JpcHQ9XCJiZWZvcmVJbnRlcmFjdGl2ZVwiXG4gICAgICAgICAgY3Jvc3NPcmlnaW49e3Byb3BzLmNyb3NzT3JpZ2luIHx8IGNyb3NzT3JpZ2lufVxuICAgICAgICAvPlxuICAgICAgKVxuICAgIH0pXG5cbiAgcmV0dXJuIChcbiAgICA8PlxuICAgICAge3dlYldvcmtlclNjcmlwdHN9XG4gICAgICB7YmVmb3JlSW50ZXJhY3RpdmVTY3JpcHRzfVxuICAgIDwvPlxuICApXG59XG5cbmZ1bmN0aW9uIGdldEhlYWRIVE1MUHJvcHMocHJvcHM6IEhlYWRQcm9wcykge1xuICBjb25zdCB7IGNyb3NzT3JpZ2luLCBub25jZSwgLi4ucmVzdFByb3BzIH0gPSBwcm9wc1xuXG4gIC8vIFRoaXMgYXNzaWdubWVudCBpcyBuZWNlc3NhcnkgZm9yIGFkZGl0aW9uYWwgdHlwZSBjaGVja2luZyB0byBhdm9pZCB1bnN1cHBvcnRlZCBhdHRyaWJ1dGVzIGluIDxoZWFkPlxuICBjb25zdCBoZWFkUHJvcHM6IEhlYWRIVE1MUHJvcHMgJiB7XG4gICAgW1AgaW4gRXhjbHVkZTxrZXlvZiBIZWFkUHJvcHMsIGtleW9mIEhlYWRIVE1MUHJvcHM+XT86IG5ldmVyXG4gIH0gPSByZXN0UHJvcHNcblxuICByZXR1cm4gaGVhZFByb3BzXG59XG5cbmZ1bmN0aW9uIGdldEFtcFBhdGgoYW1wUGF0aDogc3RyaW5nLCBhc1BhdGg6IHN0cmluZyk6IHN0cmluZyB7XG4gIHJldHVybiBhbXBQYXRoIHx8IGAke2FzUGF0aH0ke2FzUGF0aC5pbmNsdWRlcygnPycpID8gJyYnIDogJz8nfWFtcD0xYFxufVxuXG5mdW5jdGlvbiBnZXROZXh0Rm9udExpbmtUYWdzKFxuICBuZXh0Rm9udE1hbmlmZXN0OiBEZWVwUmVhZG9ubHk8TmV4dEZvbnRNYW5pZmVzdD4gfCB1bmRlZmluZWQsXG4gIGRhbmdlcm91c0FzUGF0aDogc3RyaW5nLFxuICBhc3NldFByZWZpeDogc3RyaW5nID0gJydcbikge1xuICBpZiAoIW5leHRGb250TWFuaWZlc3QpIHtcbiAgICByZXR1cm4ge1xuICAgICAgcHJlY29ubmVjdDogbnVsbCxcbiAgICAgIHByZWxvYWQ6IG51bGwsXG4gICAgfVxuICB9XG5cbiAgY29uc3QgYXBwRm9udHNFbnRyeSA9IG5leHRGb250TWFuaWZlc3QucGFnZXNbJy9fYXBwJ11cbiAgY29uc3QgcGFnZUZvbnRzRW50cnkgPSBuZXh0Rm9udE1hbmlmZXN0LnBhZ2VzW2Rhbmdlcm91c0FzUGF0aF1cblxuICBjb25zdCBwcmVsb2FkZWRGb250RmlsZXMgPSBBcnJheS5mcm9tKFxuICAgIG5ldyBTZXQoWy4uLihhcHBGb250c0VudHJ5ID8/IFtdKSwgLi4uKHBhZ2VGb250c0VudHJ5ID8/IFtdKV0pXG4gIClcblxuICAvLyBJZiBubyBmb250IGZpbGVzIHNob3VsZCBwcmVsb2FkIGJ1dCB0aGVyZSdzIGFuIGVudHJ5IGZvciB0aGUgcGF0aCwgYWRkIGEgcHJlY29ubmVjdCB0YWcuXG4gIGNvbnN0IHByZWNvbm5lY3RUb1NlbGYgPSAhIShcbiAgICBwcmVsb2FkZWRGb250RmlsZXMubGVuZ3RoID09PSAwICYmXG4gICAgKGFwcEZvbnRzRW50cnkgfHwgcGFnZUZvbnRzRW50cnkpXG4gIClcblxuICByZXR1cm4ge1xuICAgIHByZWNvbm5lY3Q6IHByZWNvbm5lY3RUb1NlbGYgPyAoXG4gICAgICA8bGlua1xuICAgICAgICBkYXRhLW5leHQtZm9udD17XG4gICAgICAgICAgbmV4dEZvbnRNYW5pZmVzdC5wYWdlc1VzaW5nU2l6ZUFkanVzdCA/ICdzaXplLWFkanVzdCcgOiAnJ1xuICAgICAgICB9XG4gICAgICAgIHJlbD1cInByZWNvbm5lY3RcIlxuICAgICAgICBocmVmPVwiL1wiXG4gICAgICAgIGNyb3NzT3JpZ2luPVwiYW5vbnltb3VzXCJcbiAgICAgIC8+XG4gICAgKSA6IG51bGwsXG4gICAgcHJlbG9hZDogcHJlbG9hZGVkRm9udEZpbGVzXG4gICAgICA/IHByZWxvYWRlZEZvbnRGaWxlcy5tYXAoKGZvbnRGaWxlKSA9PiB7XG4gICAgICAgICAgY29uc3QgZXh0ID0gL1xcLih3b2ZmfHdvZmYyfGVvdHx0dGZ8b3RmKSQvLmV4ZWMoZm9udEZpbGUpIVsxXVxuICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICA8bGlua1xuICAgICAgICAgICAgICBrZXk9e2ZvbnRGaWxlfVxuICAgICAgICAgICAgICByZWw9XCJwcmVsb2FkXCJcbiAgICAgICAgICAgICAgaHJlZj17YCR7YXNzZXRQcmVmaXh9L19uZXh0LyR7ZW5jb2RlVVJJUGF0aChmb250RmlsZSl9YH1cbiAgICAgICAgICAgICAgYXM9XCJmb250XCJcbiAgICAgICAgICAgICAgdHlwZT17YGZvbnQvJHtleHR9YH1cbiAgICAgICAgICAgICAgY3Jvc3NPcmlnaW49XCJhbm9ueW1vdXNcIlxuICAgICAgICAgICAgICBkYXRhLW5leHQtZm9udD17Zm9udEZpbGUuaW5jbHVkZXMoJy1zJykgPyAnc2l6ZS1hZGp1c3QnIDogJyd9XG4gICAgICAgICAgICAvPlxuICAgICAgICAgIClcbiAgICAgICAgfSlcbiAgICAgIDogbnVsbCxcbiAgfVxufVxuXG4vLyBVc2UgYFJlYWN0LkNvbXBvbmVudGAgdG8gYXZvaWQgZXJyb3JzIGZyb20gdGhlIFJTQyBjaGVja3MgYmVjYXVzZVxuLy8gaXQgY2FuJ3QgYmUgaW1wb3J0ZWQgZGlyZWN0bHkgaW4gU2VydmVyIENvbXBvbmVudHM6XG4vL1xuLy8gICBpbXBvcnQgeyBDb21wb25lbnQgfSBmcm9tICdyZWFjdCdcbi8vXG4vLyBNb3JlIGluZm86IGh0dHBzOi8vZ2l0aHViLmNvbS92ZXJjZWwvbmV4dC5qcy9wdWxsLzQwNjg2XG5leHBvcnQgY2xhc3MgSGVhZCBleHRlbmRzIFJlYWN0LkNvbXBvbmVudDxIZWFkUHJvcHM+IHtcbiAgc3RhdGljIGNvbnRleHRUeXBlID0gSHRtbENvbnRleHRcblxuICBjb250ZXh0ITogSHRtbFByb3BzXG5cbiAgZ2V0Q3NzTGlua3MoZmlsZXM6IERvY3VtZW50RmlsZXMpOiBKU1guRWxlbWVudFtdIHwgbnVsbCB7XG4gICAgY29uc3Qge1xuICAgICAgYXNzZXRQcmVmaXgsXG4gICAgICBhc3NldFF1ZXJ5U3RyaW5nLFxuICAgICAgZHluYW1pY0ltcG9ydHMsXG4gICAgICBkeW5hbWljQ3NzTWFuaWZlc3QsXG4gICAgICBjcm9zc09yaWdpbixcbiAgICAgIG9wdGltaXplQ3NzLFxuICAgIH0gPSB0aGlzLmNvbnRleHRcbiAgICBjb25zdCBjc3NGaWxlcyA9IGZpbGVzLmFsbEZpbGVzLmZpbHRlcigoZikgPT4gZi5lbmRzV2l0aCgnLmNzcycpKVxuICAgIGNvbnN0IHNoYXJlZEZpbGVzOiBTZXQ8c3RyaW5nPiA9IG5ldyBTZXQoZmlsZXMuc2hhcmVkRmlsZXMpXG5cbiAgICAvLyBVbm1hbmFnZWQgZmlsZXMgYXJlIENTUyBmaWxlcyB0aGF0IHdpbGwgYmUgaGFuZGxlZCBkaXJlY3RseSBieSB0aGVcbiAgICAvLyB3ZWJwYWNrIHJ1bnRpbWUgKGBtaW5pLWNzcy1leHRyYWN0LXBsdWdpbmApLlxuICAgIGxldCB1bm1hbmFnZWRGaWxlczogU2V0PHN0cmluZz4gPSBuZXcgU2V0KFtdKVxuICAgIGxldCBsb2NhbER5bmFtaWNDc3NGaWxlcyA9IEFycmF5LmZyb20oXG4gICAgICBuZXcgU2V0KGR5bmFtaWNJbXBvcnRzLmZpbHRlcigoZmlsZSkgPT4gZmlsZS5lbmRzV2l0aCgnLmNzcycpKSlcbiAgICApXG4gICAgaWYgKGxvY2FsRHluYW1pY0Nzc0ZpbGVzLmxlbmd0aCkge1xuICAgICAgY29uc3QgZXhpc3RpbmcgPSBuZXcgU2V0KGNzc0ZpbGVzKVxuICAgICAgbG9jYWxEeW5hbWljQ3NzRmlsZXMgPSBsb2NhbER5bmFtaWNDc3NGaWxlcy5maWx0ZXIoXG4gICAgICAgIChmKSA9PiAhKGV4aXN0aW5nLmhhcyhmKSB8fCBzaGFyZWRGaWxlcy5oYXMoZikpXG4gICAgICApXG4gICAgICB1bm1hbmFnZWRGaWxlcyA9IG5ldyBTZXQobG9jYWxEeW5hbWljQ3NzRmlsZXMpXG4gICAgICBjc3NGaWxlcy5wdXNoKC4uLmxvY2FsRHluYW1pY0Nzc0ZpbGVzKVxuICAgIH1cblxuICAgIGxldCBjc3NMaW5rRWxlbWVudHM6IEpTWC5FbGVtZW50W10gPSBbXVxuICAgIGNzc0ZpbGVzLmZvckVhY2goKGZpbGUpID0+IHtcbiAgICAgIGNvbnN0IGlzU2hhcmVkRmlsZSA9IHNoYXJlZEZpbGVzLmhhcyhmaWxlKVxuICAgICAgY29uc3QgaXNVbm1hbmFnZWRGaWxlID0gdW5tYW5hZ2VkRmlsZXMuaGFzKGZpbGUpXG4gICAgICBjb25zdCBpc0ZpbGVJbkR5bmFtaWNDc3NNYW5pZmVzdCA9IGR5bmFtaWNDc3NNYW5pZmVzdC5oYXMoZmlsZSlcblxuICAgICAgaWYgKCFvcHRpbWl6ZUNzcykge1xuICAgICAgICBjc3NMaW5rRWxlbWVudHMucHVzaChcbiAgICAgICAgICA8bGlua1xuICAgICAgICAgICAga2V5PXtgJHtmaWxlfS1wcmVsb2FkYH1cbiAgICAgICAgICAgIG5vbmNlPXt0aGlzLnByb3BzLm5vbmNlfVxuICAgICAgICAgICAgcmVsPVwicHJlbG9hZFwiXG4gICAgICAgICAgICBocmVmPXtgJHthc3NldFByZWZpeH0vX25leHQvJHtlbmNvZGVVUklQYXRoKFxuICAgICAgICAgICAgICBmaWxlXG4gICAgICAgICAgICApfSR7YXNzZXRRdWVyeVN0cmluZ31gfVxuICAgICAgICAgICAgYXM9XCJzdHlsZVwiXG4gICAgICAgICAgICBjcm9zc09yaWdpbj17dGhpcy5wcm9wcy5jcm9zc09yaWdpbiB8fCBjcm9zc09yaWdpbn1cbiAgICAgICAgICAvPlxuICAgICAgICApXG4gICAgICB9XG5cbiAgICAgIGNzc0xpbmtFbGVtZW50cy5wdXNoKFxuICAgICAgICA8bGlua1xuICAgICAgICAgIGtleT17ZmlsZX1cbiAgICAgICAgICBub25jZT17dGhpcy5wcm9wcy5ub25jZX1cbiAgICAgICAgICByZWw9XCJzdHlsZXNoZWV0XCJcbiAgICAgICAgICBocmVmPXtgJHthc3NldFByZWZpeH0vX25leHQvJHtlbmNvZGVVUklQYXRoKFxuICAgICAgICAgICAgZmlsZVxuICAgICAgICAgICl9JHthc3NldFF1ZXJ5U3RyaW5nfWB9XG4gICAgICAgICAgY3Jvc3NPcmlnaW49e3RoaXMucHJvcHMuY3Jvc3NPcmlnaW4gfHwgY3Jvc3NPcmlnaW59XG4gICAgICAgICAgZGF0YS1uLWc9e2lzVW5tYW5hZ2VkRmlsZSA/IHVuZGVmaW5lZCA6IGlzU2hhcmVkRmlsZSA/ICcnIDogdW5kZWZpbmVkfVxuICAgICAgICAgIGRhdGEtbi1wPXtcbiAgICAgICAgICAgIGlzU2hhcmVkRmlsZSB8fCBpc1VubWFuYWdlZEZpbGUgfHwgaXNGaWxlSW5EeW5hbWljQ3NzTWFuaWZlc3RcbiAgICAgICAgICAgICAgPyB1bmRlZmluZWRcbiAgICAgICAgICAgICAgOiAnJ1xuICAgICAgICAgIH1cbiAgICAgICAgLz5cbiAgICAgIClcbiAgICB9KVxuXG4gICAgcmV0dXJuIGNzc0xpbmtFbGVtZW50cy5sZW5ndGggPT09IDAgPyBudWxsIDogY3NzTGlua0VsZW1lbnRzXG4gIH1cblxuICBnZXRQcmVsb2FkRHluYW1pY0NodW5rcygpIHtcbiAgICBjb25zdCB7IGR5bmFtaWNJbXBvcnRzLCBhc3NldFByZWZpeCwgYXNzZXRRdWVyeVN0cmluZywgY3Jvc3NPcmlnaW4gfSA9XG4gICAgICB0aGlzLmNvbnRleHRcblxuICAgIHJldHVybiAoXG4gICAgICBkeW5hbWljSW1wb3J0c1xuICAgICAgICAubWFwKChmaWxlKSA9PiB7XG4gICAgICAgICAgaWYgKCFmaWxlLmVuZHNXaXRoKCcuanMnKSkge1xuICAgICAgICAgICAgcmV0dXJuIG51bGxcbiAgICAgICAgICB9XG5cbiAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgPGxpbmtcbiAgICAgICAgICAgICAgcmVsPVwicHJlbG9hZFwiXG4gICAgICAgICAgICAgIGtleT17ZmlsZX1cbiAgICAgICAgICAgICAgaHJlZj17YCR7YXNzZXRQcmVmaXh9L19uZXh0LyR7ZW5jb2RlVVJJUGF0aChcbiAgICAgICAgICAgICAgICBmaWxlXG4gICAgICAgICAgICAgICl9JHthc3NldFF1ZXJ5U3RyaW5nfWB9XG4gICAgICAgICAgICAgIGFzPVwic2NyaXB0XCJcbiAgICAgICAgICAgICAgbm9uY2U9e3RoaXMucHJvcHMubm9uY2V9XG4gICAgICAgICAgICAgIGNyb3NzT3JpZ2luPXt0aGlzLnByb3BzLmNyb3NzT3JpZ2luIHx8IGNyb3NzT3JpZ2lufVxuICAgICAgICAgICAgLz5cbiAgICAgICAgICApXG4gICAgICAgIH0pXG4gICAgICAgIC8vIEZpbHRlciBvdXQgbnVsbGVkIHNjcmlwdHNcbiAgICAgICAgLmZpbHRlcihCb29sZWFuKVxuICAgIClcbiAgfVxuXG4gIGdldFByZWxvYWRNYWluTGlua3MoZmlsZXM6IERvY3VtZW50RmlsZXMpOiBKU1guRWxlbWVudFtdIHwgbnVsbCB7XG4gICAgY29uc3QgeyBhc3NldFByZWZpeCwgYXNzZXRRdWVyeVN0cmluZywgc2NyaXB0TG9hZGVyLCBjcm9zc09yaWdpbiB9ID1cbiAgICAgIHRoaXMuY29udGV4dFxuICAgIGNvbnN0IHByZWxvYWRGaWxlcyA9IGZpbGVzLmFsbEZpbGVzLmZpbHRlcigoZmlsZTogc3RyaW5nKSA9PiB7XG4gICAgICByZXR1cm4gZmlsZS5lbmRzV2l0aCgnLmpzJylcbiAgICB9KVxuXG4gICAgcmV0dXJuIFtcbiAgICAgIC4uLihzY3JpcHRMb2FkZXIuYmVmb3JlSW50ZXJhY3RpdmUgfHwgW10pLm1hcCgoZmlsZSkgPT4gKFxuICAgICAgICA8bGlua1xuICAgICAgICAgIGtleT17ZmlsZS5zcmN9XG4gICAgICAgICAgbm9uY2U9e3RoaXMucHJvcHMubm9uY2V9XG4gICAgICAgICAgcmVsPVwicHJlbG9hZFwiXG4gICAgICAgICAgaHJlZj17ZmlsZS5zcmN9XG4gICAgICAgICAgYXM9XCJzY3JpcHRcIlxuICAgICAgICAgIGNyb3NzT3JpZ2luPXt0aGlzLnByb3BzLmNyb3NzT3JpZ2luIHx8IGNyb3NzT3JpZ2lufVxuICAgICAgICAvPlxuICAgICAgKSksXG4gICAgICAuLi5wcmVsb2FkRmlsZXMubWFwKChmaWxlOiBzdHJpbmcpID0+IChcbiAgICAgICAgPGxpbmtcbiAgICAgICAgICBrZXk9e2ZpbGV9XG4gICAgICAgICAgbm9uY2U9e3RoaXMucHJvcHMubm9uY2V9XG4gICAgICAgICAgcmVsPVwicHJlbG9hZFwiXG4gICAgICAgICAgaHJlZj17YCR7YXNzZXRQcmVmaXh9L19uZXh0LyR7ZW5jb2RlVVJJUGF0aChcbiAgICAgICAgICAgIGZpbGVcbiAgICAgICAgICApfSR7YXNzZXRRdWVyeVN0cmluZ31gfVxuICAgICAgICAgIGFzPVwic2NyaXB0XCJcbiAgICAgICAgICBjcm9zc09yaWdpbj17dGhpcy5wcm9wcy5jcm9zc09yaWdpbiB8fCBjcm9zc09yaWdpbn1cbiAgICAgICAgLz5cbiAgICAgICkpLFxuICAgIF1cbiAgfVxuXG4gIGdldEJlZm9yZUludGVyYWN0aXZlSW5saW5lU2NyaXB0cygpIHtcbiAgICBjb25zdCB7IHNjcmlwdExvYWRlciB9ID0gdGhpcy5jb250ZXh0XG4gICAgY29uc3QgeyBub25jZSwgY3Jvc3NPcmlnaW4gfSA9IHRoaXMucHJvcHNcblxuICAgIHJldHVybiAoc2NyaXB0TG9hZGVyLmJlZm9yZUludGVyYWN0aXZlIHx8IFtdKVxuICAgICAgLmZpbHRlcihcbiAgICAgICAgKHNjcmlwdCkgPT5cbiAgICAgICAgICAhc2NyaXB0LnNyYyAmJiAoc2NyaXB0LmRhbmdlcm91c2x5U2V0SW5uZXJIVE1MIHx8IHNjcmlwdC5jaGlsZHJlbilcbiAgICAgIClcbiAgICAgIC5tYXAoKGZpbGU6IFNjcmlwdFByb3BzLCBpbmRleDogbnVtYmVyKSA9PiB7XG4gICAgICAgIGNvbnN0IHtcbiAgICAgICAgICBzdHJhdGVneSxcbiAgICAgICAgICBjaGlsZHJlbixcbiAgICAgICAgICBkYW5nZXJvdXNseVNldElubmVySFRNTCxcbiAgICAgICAgICBzcmMsXG4gICAgICAgICAgLi4uc2NyaXB0UHJvcHNcbiAgICAgICAgfSA9IGZpbGVcbiAgICAgICAgbGV0IGh0bWw6IE5vbk51bGxhYmxlPFxuICAgICAgICAgIFNjcmlwdFByb3BzWydkYW5nZXJvdXNseVNldElubmVySFRNTCddXG4gICAgICAgID5bJ19faHRtbCddID0gJydcblxuICAgICAgICBpZiAoZGFuZ2Vyb3VzbHlTZXRJbm5lckhUTUwgJiYgZGFuZ2Vyb3VzbHlTZXRJbm5lckhUTUwuX19odG1sKSB7XG4gICAgICAgICAgaHRtbCA9IGRhbmdlcm91c2x5U2V0SW5uZXJIVE1MLl9faHRtbFxuICAgICAgICB9IGVsc2UgaWYgKGNoaWxkcmVuKSB7XG4gICAgICAgICAgaHRtbCA9XG4gICAgICAgICAgICB0eXBlb2YgY2hpbGRyZW4gPT09ICdzdHJpbmcnXG4gICAgICAgICAgICAgID8gY2hpbGRyZW5cbiAgICAgICAgICAgICAgOiBBcnJheS5pc0FycmF5KGNoaWxkcmVuKVxuICAgICAgICAgICAgICAgID8gY2hpbGRyZW4uam9pbignJylcbiAgICAgICAgICAgICAgICA6ICcnXG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gKFxuICAgICAgICAgIDxzY3JpcHRcbiAgICAgICAgICAgIHsuLi5zY3JpcHRQcm9wc31cbiAgICAgICAgICAgIGRhbmdlcm91c2x5U2V0SW5uZXJIVE1MPXt7IF9faHRtbDogaHRtbCB9fVxuICAgICAgICAgICAga2V5PXtzY3JpcHRQcm9wcy5pZCB8fCBpbmRleH1cbiAgICAgICAgICAgIG5vbmNlPXtub25jZX1cbiAgICAgICAgICAgIGRhdGEtbnNjcmlwdD1cImJlZm9yZUludGVyYWN0aXZlXCJcbiAgICAgICAgICAgIGNyb3NzT3JpZ2luPXtcbiAgICAgICAgICAgICAgY3Jvc3NPcmlnaW4gfHxcbiAgICAgICAgICAgICAgKHByb2Nlc3MuZW52Ll9fTkVYVF9DUk9TU19PUklHSU4gYXMgdHlwZW9mIGNyb3NzT3JpZ2luKVxuICAgICAgICAgICAgfVxuICAgICAgICAgIC8+XG4gICAgICAgIClcbiAgICAgIH0pXG4gIH1cblxuICBnZXREeW5hbWljQ2h1bmtzKGZpbGVzOiBEb2N1bWVudEZpbGVzKSB7XG4gICAgcmV0dXJuIGdldER5bmFtaWNDaHVua3ModGhpcy5jb250ZXh0LCB0aGlzLnByb3BzLCBmaWxlcylcbiAgfVxuXG4gIGdldFByZU5leHRTY3JpcHRzKCkge1xuICAgIHJldHVybiBnZXRQcmVOZXh0U2NyaXB0cyh0aGlzLmNvbnRleHQsIHRoaXMucHJvcHMpXG4gIH1cblxuICBnZXRTY3JpcHRzKGZpbGVzOiBEb2N1bWVudEZpbGVzKSB7XG4gICAgcmV0dXJuIGdldFNjcmlwdHModGhpcy5jb250ZXh0LCB0aGlzLnByb3BzLCBmaWxlcylcbiAgfVxuXG4gIGdldFBvbHlmaWxsU2NyaXB0cygpIHtcbiAgICByZXR1cm4gZ2V0UG9seWZpbGxTY3JpcHRzKHRoaXMuY29udGV4dCwgdGhpcy5wcm9wcylcbiAgfVxuXG4gIHJlbmRlcigpIHtcbiAgICBjb25zdCB7XG4gICAgICBzdHlsZXMsXG4gICAgICBhbXBQYXRoLFxuICAgICAgaW5BbXBNb2RlLFxuICAgICAgaHlicmlkQW1wLFxuICAgICAgY2Fub25pY2FsQmFzZSxcbiAgICAgIF9fTkVYVF9EQVRBX18sXG4gICAgICBkYW5nZXJvdXNBc1BhdGgsXG4gICAgICBoZWFkVGFncyxcbiAgICAgIHVuc3RhYmxlX3J1bnRpbWVKUyxcbiAgICAgIHVuc3RhYmxlX0pzUHJlbG9hZCxcbiAgICAgIGRpc2FibGVPcHRpbWl6ZWRMb2FkaW5nLFxuICAgICAgb3B0aW1pemVDc3MsXG4gICAgICBhc3NldFByZWZpeCxcbiAgICAgIG5leHRGb250TWFuaWZlc3QsXG4gICAgfSA9IHRoaXMuY29udGV4dFxuXG4gICAgY29uc3QgZGlzYWJsZVJ1bnRpbWVKUyA9IHVuc3RhYmxlX3J1bnRpbWVKUyA9PT0gZmFsc2VcbiAgICBjb25zdCBkaXNhYmxlSnNQcmVsb2FkID1cbiAgICAgIHVuc3RhYmxlX0pzUHJlbG9hZCA9PT0gZmFsc2UgfHwgIWRpc2FibGVPcHRpbWl6ZWRMb2FkaW5nXG5cbiAgICB0aGlzLmNvbnRleHQuZG9jQ29tcG9uZW50c1JlbmRlcmVkLkhlYWQgPSB0cnVlXG5cbiAgICBsZXQgeyBoZWFkIH0gPSB0aGlzLmNvbnRleHRcbiAgICBsZXQgY3NzUHJlbG9hZHM6IEFycmF5PEpTWC5FbGVtZW50PiA9IFtdXG4gICAgbGV0IG90aGVySGVhZEVsZW1lbnRzOiBBcnJheTxKU1guRWxlbWVudD4gPSBbXVxuICAgIGlmIChoZWFkKSB7XG4gICAgICBoZWFkLmZvckVhY2goKGNoaWxkKSA9PiB7XG4gICAgICAgIGlmIChcbiAgICAgICAgICBjaGlsZCAmJlxuICAgICAgICAgIGNoaWxkLnR5cGUgPT09ICdsaW5rJyAmJlxuICAgICAgICAgIGNoaWxkLnByb3BzWydyZWwnXSA9PT0gJ3ByZWxvYWQnICYmXG4gICAgICAgICAgY2hpbGQucHJvcHNbJ2FzJ10gPT09ICdzdHlsZSdcbiAgICAgICAgKSB7XG4gICAgICAgICAgaWYgKHRoaXMuY29udGV4dC5zdHJpY3ROZXh0SGVhZCkge1xuICAgICAgICAgICAgY3NzUHJlbG9hZHMucHVzaChcbiAgICAgICAgICAgICAgUmVhY3QuY2xvbmVFbGVtZW50KGNoaWxkLCB7ICdkYXRhLW5leHQtaGVhZCc6ICcnIH0pXG4gICAgICAgICAgICApXG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGNzc1ByZWxvYWRzLnB1c2goY2hpbGQpXG4gICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGlmIChjaGlsZCkge1xuICAgICAgICAgICAgaWYgKHRoaXMuY29udGV4dC5zdHJpY3ROZXh0SGVhZCkge1xuICAgICAgICAgICAgICBvdGhlckhlYWRFbGVtZW50cy5wdXNoKFxuICAgICAgICAgICAgICAgIFJlYWN0LmNsb25lRWxlbWVudChjaGlsZCwgeyAnZGF0YS1uZXh0LWhlYWQnOiAnJyB9KVxuICAgICAgICAgICAgICApXG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICBvdGhlckhlYWRFbGVtZW50cy5wdXNoKGNoaWxkKVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSlcbiAgICAgIGhlYWQgPSBjc3NQcmVsb2Fkcy5jb25jYXQob3RoZXJIZWFkRWxlbWVudHMpXG4gICAgfVxuICAgIGxldCBjaGlsZHJlbjogUmVhY3QuUmVhY3ROb2RlW10gPSBSZWFjdC5DaGlsZHJlbi50b0FycmF5KFxuICAgICAgdGhpcy5wcm9wcy5jaGlsZHJlblxuICAgICkuZmlsdGVyKEJvb2xlYW4pXG4gICAgLy8gc2hvdyBhIHdhcm5pbmcgaWYgSGVhZCBjb250YWlucyA8dGl0bGU+IChvbmx5IGluIGRldmVsb3BtZW50KVxuICAgIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSB7XG4gICAgICBjaGlsZHJlbiA9IFJlYWN0LkNoaWxkcmVuLm1hcChjaGlsZHJlbiwgKGNoaWxkOiBhbnkpID0+IHtcbiAgICAgICAgY29uc3QgaXNSZWFjdEhlbG1ldCA9IGNoaWxkPy5wcm9wcz8uWydkYXRhLXJlYWN0LWhlbG1ldCddXG4gICAgICAgIGlmICghaXNSZWFjdEhlbG1ldCkge1xuICAgICAgICAgIGlmIChjaGlsZD8udHlwZSA9PT0gJ3RpdGxlJykge1xuICAgICAgICAgICAgY29uc29sZS53YXJuKFxuICAgICAgICAgICAgICBcIldhcm5pbmc6IDx0aXRsZT4gc2hvdWxkIG5vdCBiZSB1c2VkIGluIF9kb2N1bWVudC5qcydzIDxIZWFkPi4gaHR0cHM6Ly9uZXh0anMub3JnL2RvY3MvbWVzc2FnZXMvbm8tZG9jdW1lbnQtdGl0bGVcIlxuICAgICAgICAgICAgKVxuICAgICAgICAgIH0gZWxzZSBpZiAoXG4gICAgICAgICAgICBjaGlsZD8udHlwZSA9PT0gJ21ldGEnICYmXG4gICAgICAgICAgICBjaGlsZD8ucHJvcHM/Lm5hbWUgPT09ICd2aWV3cG9ydCdcbiAgICAgICAgICApIHtcbiAgICAgICAgICAgIGNvbnNvbGUud2FybihcbiAgICAgICAgICAgICAgXCJXYXJuaW5nOiB2aWV3cG9ydCBtZXRhIHRhZ3Mgc2hvdWxkIG5vdCBiZSB1c2VkIGluIF9kb2N1bWVudC5qcydzIDxIZWFkPi4gaHR0cHM6Ly9uZXh0anMub3JnL2RvY3MvbWVzc2FnZXMvbm8tZG9jdW1lbnQtdmlld3BvcnQtbWV0YVwiXG4gICAgICAgICAgICApXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiBjaGlsZFxuICAgICAgICAvLyBAdHlwZXMvcmVhY3QgYnVnLiBSZXR1cm5lZCB2YWx1ZSBmcm9tIC5tYXAgd2lsbCBub3QgYmUgYG51bGxgIGlmIHlvdSBwYXNzIGluIGBbbnVsbF1gXG4gICAgICB9KSFcbiAgICAgIGlmICh0aGlzLnByb3BzLmNyb3NzT3JpZ2luKVxuICAgICAgICBjb25zb2xlLndhcm4oXG4gICAgICAgICAgJ1dhcm5pbmc6IGBIZWFkYCBhdHRyaWJ1dGUgYGNyb3NzT3JpZ2luYCBpcyBkZXByZWNhdGVkLiBodHRwczovL25leHRqcy5vcmcvZG9jcy9tZXNzYWdlcy9kb2MtY3Jvc3NvcmlnaW4tZGVwcmVjYXRlZCdcbiAgICAgICAgKVxuICAgIH1cblxuICAgIGxldCBoYXNBbXBodG1sUmVsID0gZmFsc2VcbiAgICBsZXQgaGFzQ2Fub25pY2FsUmVsID0gZmFsc2VcblxuICAgIC8vIHNob3cgd2FybmluZyBhbmQgcmVtb3ZlIGNvbmZsaWN0aW5nIGFtcCBoZWFkIHRhZ3NcbiAgICBoZWFkID0gUmVhY3QuQ2hpbGRyZW4ubWFwKGhlYWQgfHwgW10sIChjaGlsZCkgPT4ge1xuICAgICAgaWYgKCFjaGlsZCkgcmV0dXJuIGNoaWxkXG4gICAgICBjb25zdCB7IHR5cGUsIHByb3BzIH0gPSBjaGlsZFxuICAgICAgaWYgKHByb2Nlc3MuZW52Lk5FWFRfUlVOVElNRSAhPT0gJ2VkZ2UnICYmIGluQW1wTW9kZSkge1xuICAgICAgICBsZXQgYmFkUHJvcDogc3RyaW5nID0gJydcblxuICAgICAgICBpZiAodHlwZSA9PT0gJ21ldGEnICYmIHByb3BzLm5hbWUgPT09ICd2aWV3cG9ydCcpIHtcbiAgICAgICAgICBiYWRQcm9wID0gJ25hbWU9XCJ2aWV3cG9ydFwiJ1xuICAgICAgICB9IGVsc2UgaWYgKHR5cGUgPT09ICdsaW5rJyAmJiBwcm9wcy5yZWwgPT09ICdjYW5vbmljYWwnKSB7XG4gICAgICAgICAgaGFzQ2Fub25pY2FsUmVsID0gdHJ1ZVxuICAgICAgICB9IGVsc2UgaWYgKHR5cGUgPT09ICdzY3JpcHQnKSB7XG4gICAgICAgICAgLy8gb25seSBibG9jayBpZlxuICAgICAgICAgIC8vIDEuIGl0IGhhcyBhIHNyYyBhbmQgaXNuJ3QgcG9pbnRpbmcgdG8gYW1wcHJvamVjdCdzIENETlxuICAgICAgICAgIC8vIDIuIGl0IGlzIHVzaW5nIGRhbmdlcm91c2x5U2V0SW5uZXJIVE1MIHdpdGhvdXQgYSB0eXBlIG9yXG4gICAgICAgICAgLy8gYSB0eXBlIG9mIHRleHQvamF2YXNjcmlwdFxuICAgICAgICAgIGlmIChcbiAgICAgICAgICAgIChwcm9wcy5zcmMgJiYgcHJvcHMuc3JjLmluZGV4T2YoJ2FtcHByb2plY3QnKSA8IC0xKSB8fFxuICAgICAgICAgICAgKHByb3BzLmRhbmdlcm91c2x5U2V0SW5uZXJIVE1MICYmXG4gICAgICAgICAgICAgICghcHJvcHMudHlwZSB8fCBwcm9wcy50eXBlID09PSAndGV4dC9qYXZhc2NyaXB0JykpXG4gICAgICAgICAgKSB7XG4gICAgICAgICAgICBiYWRQcm9wID0gJzxzY3JpcHQnXG4gICAgICAgICAgICBPYmplY3Qua2V5cyhwcm9wcykuZm9yRWFjaCgocHJvcCkgPT4ge1xuICAgICAgICAgICAgICBiYWRQcm9wICs9IGAgJHtwcm9wfT1cIiR7cHJvcHNbcHJvcF19XCJgXG4gICAgICAgICAgICB9KVxuICAgICAgICAgICAgYmFkUHJvcCArPSAnLz4nXG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGJhZFByb3ApIHtcbiAgICAgICAgICBjb25zb2xlLndhcm4oXG4gICAgICAgICAgICBgRm91bmQgY29uZmxpY3RpbmcgYW1wIHRhZyBcIiR7Y2hpbGQudHlwZX1cIiB3aXRoIGNvbmZsaWN0aW5nIHByb3AgJHtiYWRQcm9wfSBpbiAke19fTkVYVF9EQVRBX18ucGFnZX0uIGh0dHBzOi8vbmV4dGpzLm9yZy9kb2NzL21lc3NhZ2VzL2NvbmZsaWN0aW5nLWFtcC10YWdgXG4gICAgICAgICAgKVxuICAgICAgICAgIHJldHVybiBudWxsXG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIC8vIG5vbi1hbXAgbW9kZVxuICAgICAgICBpZiAodHlwZSA9PT0gJ2xpbmsnICYmIHByb3BzLnJlbCA9PT0gJ2FtcGh0bWwnKSB7XG4gICAgICAgICAgaGFzQW1waHRtbFJlbCA9IHRydWVcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgcmV0dXJuIGNoaWxkXG4gICAgICAvLyBAdHlwZXMvcmVhY3QgYnVnLiBSZXR1cm5lZCB2YWx1ZSBmcm9tIC5tYXAgd2lsbCBub3QgYmUgYG51bGxgIGlmIHlvdSBwYXNzIGluIGBbbnVsbF1gXG4gICAgfSkhXG5cbiAgICBjb25zdCBmaWxlczogRG9jdW1lbnRGaWxlcyA9IGdldERvY3VtZW50RmlsZXMoXG4gICAgICB0aGlzLmNvbnRleHQuYnVpbGRNYW5pZmVzdCxcbiAgICAgIHRoaXMuY29udGV4dC5fX05FWFRfREFUQV9fLnBhZ2UsXG4gICAgICBwcm9jZXNzLmVudi5ORVhUX1JVTlRJTUUgIT09ICdlZGdlJyAmJiBpbkFtcE1vZGVcbiAgICApXG5cbiAgICBjb25zdCBuZXh0Rm9udExpbmtUYWdzID0gZ2V0TmV4dEZvbnRMaW5rVGFncyhcbiAgICAgIG5leHRGb250TWFuaWZlc3QsXG4gICAgICBkYW5nZXJvdXNBc1BhdGgsXG4gICAgICBhc3NldFByZWZpeFxuICAgIClcblxuICAgIGNvbnN0IHRyYWNpbmdNZXRhZGF0YSA9IGdldFRyYWNlZE1ldGFkYXRhKFxuICAgICAgZ2V0VHJhY2VyKCkuZ2V0VHJhY2VQcm9wYWdhdGlvbkRhdGEoKSxcbiAgICAgIHRoaXMuY29udGV4dC5leHBlcmltZW50YWxDbGllbnRUcmFjZU1ldGFkYXRhXG4gICAgKVxuXG4gICAgY29uc3QgdHJhY2VNZXRhVGFncyA9ICh0cmFjaW5nTWV0YWRhdGEgfHwgW10pLm1hcChcbiAgICAgICh7IGtleSwgdmFsdWUgfSwgaW5kZXgpID0+IChcbiAgICAgICAgPG1ldGEga2V5PXtgbmV4dC10cmFjZS1kYXRhLSR7aW5kZXh9YH0gbmFtZT17a2V5fSBjb250ZW50PXt2YWx1ZX0gLz5cbiAgICAgIClcbiAgICApXG5cbiAgICByZXR1cm4gKFxuICAgICAgPGhlYWQgey4uLmdldEhlYWRIVE1MUHJvcHModGhpcy5wcm9wcyl9PlxuICAgICAgICB7dGhpcy5jb250ZXh0LmlzRGV2ZWxvcG1lbnQgJiYgKFxuICAgICAgICAgIDw+XG4gICAgICAgICAgICA8c3R5bGVcbiAgICAgICAgICAgICAgZGF0YS1uZXh0LWhpZGUtZm91Y1xuICAgICAgICAgICAgICBkYXRhLWFtcGRldm1vZGU9e1xuICAgICAgICAgICAgICAgIHByb2Nlc3MuZW52Lk5FWFRfUlVOVElNRSAhPT0gJ2VkZ2UnICYmIGluQW1wTW9kZVxuICAgICAgICAgICAgICAgICAgPyAndHJ1ZSdcbiAgICAgICAgICAgICAgICAgIDogdW5kZWZpbmVkXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgZGFuZ2Vyb3VzbHlTZXRJbm5lckhUTUw9e3tcbiAgICAgICAgICAgICAgICBfX2h0bWw6IGBib2R5e2Rpc3BsYXk6bm9uZX1gLFxuICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIDxub3NjcmlwdFxuICAgICAgICAgICAgICBkYXRhLW5leHQtaGlkZS1mb3VjXG4gICAgICAgICAgICAgIGRhdGEtYW1wZGV2bW9kZT17XG4gICAgICAgICAgICAgICAgcHJvY2Vzcy5lbnYuTkVYVF9SVU5USU1FICE9PSAnZWRnZScgJiYgaW5BbXBNb2RlXG4gICAgICAgICAgICAgICAgICA/ICd0cnVlJ1xuICAgICAgICAgICAgICAgICAgOiB1bmRlZmluZWRcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICA8c3R5bGVcbiAgICAgICAgICAgICAgICBkYW5nZXJvdXNseVNldElubmVySFRNTD17e1xuICAgICAgICAgICAgICAgICAgX19odG1sOiBgYm9keXtkaXNwbGF5OmJsb2NrfWAsXG4gICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIDwvbm9zY3JpcHQ+XG4gICAgICAgICAgPC8+XG4gICAgICAgICl9XG4gICAgICAgIHtoZWFkfVxuICAgICAgICB7dGhpcy5jb250ZXh0LnN0cmljdE5leHRIZWFkID8gbnVsbCA6IChcbiAgICAgICAgICA8bWV0YVxuICAgICAgICAgICAgbmFtZT1cIm5leHQtaGVhZC1jb3VudFwiXG4gICAgICAgICAgICBjb250ZW50PXtSZWFjdC5DaGlsZHJlbi5jb3VudChoZWFkIHx8IFtdKS50b1N0cmluZygpfVxuICAgICAgICAgIC8+XG4gICAgICAgICl9XG5cbiAgICAgICAge2NoaWxkcmVufVxuXG4gICAgICAgIHtuZXh0Rm9udExpbmtUYWdzLnByZWNvbm5lY3R9XG4gICAgICAgIHtuZXh0Rm9udExpbmtUYWdzLnByZWxvYWR9XG5cbiAgICAgICAge3Byb2Nlc3MuZW52Lk5FWFRfUlVOVElNRSAhPT0gJ2VkZ2UnICYmIGluQW1wTW9kZSAmJiAoXG4gICAgICAgICAgPD5cbiAgICAgICAgICAgIDxtZXRhXG4gICAgICAgICAgICAgIG5hbWU9XCJ2aWV3cG9ydFwiXG4gICAgICAgICAgICAgIGNvbnRlbnQ9XCJ3aWR0aD1kZXZpY2Utd2lkdGgsbWluaW11bS1zY2FsZT0xLGluaXRpYWwtc2NhbGU9MVwiXG4gICAgICAgICAgICAvPlxuICAgICAgICAgICAgeyFoYXNDYW5vbmljYWxSZWwgJiYgKFxuICAgICAgICAgICAgICA8bGlua1xuICAgICAgICAgICAgICAgIHJlbD1cImNhbm9uaWNhbFwiXG4gICAgICAgICAgICAgICAgaHJlZj17XG4gICAgICAgICAgICAgICAgICBjYW5vbmljYWxCYXNlICtcbiAgICAgICAgICAgICAgICAgIChcbiAgICAgICAgICAgICAgICAgICAgcmVxdWlyZSgnLi4vc2VydmVyL3V0aWxzJykgYXMgdHlwZW9mIGltcG9ydCgnLi4vc2VydmVyL3V0aWxzJylcbiAgICAgICAgICAgICAgICAgICkuY2xlYW5BbXBQYXRoKGRhbmdlcm91c0FzUGF0aClcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICApfVxuICAgICAgICAgICAgey8qIGh0dHBzOi8vd3d3LmFtcHByb2plY3Qub3JnL2RvY3MvZnVuZGFtZW50YWxzL29wdGltaXplX2FtcCNvcHRpbWl6ZS10aGUtYW1wLXJ1bnRpbWUtbG9hZGluZyAqL31cbiAgICAgICAgICAgIDxsaW5rXG4gICAgICAgICAgICAgIHJlbD1cInByZWxvYWRcIlxuICAgICAgICAgICAgICBhcz1cInNjcmlwdFwiXG4gICAgICAgICAgICAgIGhyZWY9XCJodHRwczovL2Nkbi5hbXBwcm9qZWN0Lm9yZy92MC5qc1wiXG4gICAgICAgICAgICAvPlxuICAgICAgICAgICAgPEFtcFN0eWxlcyBzdHlsZXM9e3N0eWxlc30gLz5cbiAgICAgICAgICAgIDxzdHlsZVxuICAgICAgICAgICAgICBhbXAtYm9pbGVycGxhdGU9XCJcIlxuICAgICAgICAgICAgICBkYW5nZXJvdXNseVNldElubmVySFRNTD17e1xuICAgICAgICAgICAgICAgIF9faHRtbDogYGJvZHl7LXdlYmtpdC1hbmltYXRpb246LWFtcC1zdGFydCA4cyBzdGVwcygxLGVuZCkgMHMgMSBub3JtYWwgYm90aDstbW96LWFuaW1hdGlvbjotYW1wLXN0YXJ0IDhzIHN0ZXBzKDEsZW5kKSAwcyAxIG5vcm1hbCBib3RoOy1tcy1hbmltYXRpb246LWFtcC1zdGFydCA4cyBzdGVwcygxLGVuZCkgMHMgMSBub3JtYWwgYm90aDthbmltYXRpb246LWFtcC1zdGFydCA4cyBzdGVwcygxLGVuZCkgMHMgMSBub3JtYWwgYm90aH1ALXdlYmtpdC1rZXlmcmFtZXMgLWFtcC1zdGFydHtmcm9te3Zpc2liaWxpdHk6aGlkZGVufXRve3Zpc2liaWxpdHk6dmlzaWJsZX19QC1tb3ota2V5ZnJhbWVzIC1hbXAtc3RhcnR7ZnJvbXt2aXNpYmlsaXR5OmhpZGRlbn10b3t2aXNpYmlsaXR5OnZpc2libGV9fUAtbXMta2V5ZnJhbWVzIC1hbXAtc3RhcnR7ZnJvbXt2aXNpYmlsaXR5OmhpZGRlbn10b3t2aXNpYmlsaXR5OnZpc2libGV9fUAtby1rZXlmcmFtZXMgLWFtcC1zdGFydHtmcm9te3Zpc2liaWxpdHk6aGlkZGVufXRve3Zpc2liaWxpdHk6dmlzaWJsZX19QGtleWZyYW1lcyAtYW1wLXN0YXJ0e2Zyb217dmlzaWJpbGl0eTpoaWRkZW59dG97dmlzaWJpbGl0eTp2aXNpYmxlfX1gLFxuICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIDxub3NjcmlwdD5cbiAgICAgICAgICAgICAgPHN0eWxlXG4gICAgICAgICAgICAgICAgYW1wLWJvaWxlcnBsYXRlPVwiXCJcbiAgICAgICAgICAgICAgICBkYW5nZXJvdXNseVNldElubmVySFRNTD17e1xuICAgICAgICAgICAgICAgICAgX19odG1sOiBgYm9keXstd2Via2l0LWFuaW1hdGlvbjpub25lOy1tb3otYW5pbWF0aW9uOm5vbmU7LW1zLWFuaW1hdGlvbjpub25lO2FuaW1hdGlvbjpub25lfWAsXG4gICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIDwvbm9zY3JpcHQ+XG4gICAgICAgICAgICA8c2NyaXB0IGFzeW5jIHNyYz1cImh0dHBzOi8vY2RuLmFtcHByb2plY3Qub3JnL3YwLmpzXCIgLz5cbiAgICAgICAgICA8Lz5cbiAgICAgICAgKX1cbiAgICAgICAgeyEocHJvY2Vzcy5lbnYuTkVYVF9SVU5USU1FICE9PSAnZWRnZScgJiYgaW5BbXBNb2RlKSAmJiAoXG4gICAgICAgICAgPD5cbiAgICAgICAgICAgIHshaGFzQW1waHRtbFJlbCAmJiBoeWJyaWRBbXAgJiYgKFxuICAgICAgICAgICAgICA8bGlua1xuICAgICAgICAgICAgICAgIHJlbD1cImFtcGh0bWxcIlxuICAgICAgICAgICAgICAgIGhyZWY9e2Nhbm9uaWNhbEJhc2UgKyBnZXRBbXBQYXRoKGFtcFBhdGgsIGRhbmdlcm91c0FzUGF0aCl9XG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICApfVxuICAgICAgICAgICAge3RoaXMuZ2V0QmVmb3JlSW50ZXJhY3RpdmVJbmxpbmVTY3JpcHRzKCl9XG4gICAgICAgICAgICB7IW9wdGltaXplQ3NzICYmIHRoaXMuZ2V0Q3NzTGlua3MoZmlsZXMpfVxuICAgICAgICAgICAgeyFvcHRpbWl6ZUNzcyAmJiA8bm9zY3JpcHQgZGF0YS1uLWNzcz17dGhpcy5wcm9wcy5ub25jZSA/PyAnJ30gLz59XG5cbiAgICAgICAgICAgIHshZGlzYWJsZVJ1bnRpbWVKUyAmJlxuICAgICAgICAgICAgICAhZGlzYWJsZUpzUHJlbG9hZCAmJlxuICAgICAgICAgICAgICB0aGlzLmdldFByZWxvYWREeW5hbWljQ2h1bmtzKCl9XG4gICAgICAgICAgICB7IWRpc2FibGVSdW50aW1lSlMgJiZcbiAgICAgICAgICAgICAgIWRpc2FibGVKc1ByZWxvYWQgJiZcbiAgICAgICAgICAgICAgdGhpcy5nZXRQcmVsb2FkTWFpbkxpbmtzKGZpbGVzKX1cblxuICAgICAgICAgICAgeyFkaXNhYmxlT3B0aW1pemVkTG9hZGluZyAmJlxuICAgICAgICAgICAgICAhZGlzYWJsZVJ1bnRpbWVKUyAmJlxuICAgICAgICAgICAgICB0aGlzLmdldFBvbHlmaWxsU2NyaXB0cygpfVxuXG4gICAgICAgICAgICB7IWRpc2FibGVPcHRpbWl6ZWRMb2FkaW5nICYmXG4gICAgICAgICAgICAgICFkaXNhYmxlUnVudGltZUpTICYmXG4gICAgICAgICAgICAgIHRoaXMuZ2V0UHJlTmV4dFNjcmlwdHMoKX1cbiAgICAgICAgICAgIHshZGlzYWJsZU9wdGltaXplZExvYWRpbmcgJiZcbiAgICAgICAgICAgICAgIWRpc2FibGVSdW50aW1lSlMgJiZcbiAgICAgICAgICAgICAgdGhpcy5nZXREeW5hbWljQ2h1bmtzKGZpbGVzKX1cbiAgICAgICAgICAgIHshZGlzYWJsZU9wdGltaXplZExvYWRpbmcgJiZcbiAgICAgICAgICAgICAgIWRpc2FibGVSdW50aW1lSlMgJiZcbiAgICAgICAgICAgICAgdGhpcy5nZXRTY3JpcHRzKGZpbGVzKX1cblxuICAgICAgICAgICAge29wdGltaXplQ3NzICYmIHRoaXMuZ2V0Q3NzTGlua3MoZmlsZXMpfVxuICAgICAgICAgICAge29wdGltaXplQ3NzICYmIDxub3NjcmlwdCBkYXRhLW4tY3NzPXt0aGlzLnByb3BzLm5vbmNlID8/ICcnfSAvPn1cbiAgICAgICAgICAgIHt0aGlzLmNvbnRleHQuaXNEZXZlbG9wbWVudCAmJiAoXG4gICAgICAgICAgICAgIC8vIHRoaXMgZWxlbWVudCBpcyB1c2VkIHRvIG1vdW50IGRldmVsb3BtZW50IHN0eWxlcyBzbyB0aGVcbiAgICAgICAgICAgICAgLy8gb3JkZXJpbmcgbWF0Y2hlcyBwcm9kdWN0aW9uXG4gICAgICAgICAgICAgIC8vIChieSBkZWZhdWx0LCBzdHlsZS1sb2FkZXIgaW5qZWN0cyBhdCB0aGUgYm90dG9tIG9mIDxoZWFkIC8+KVxuICAgICAgICAgICAgICA8bm9zY3JpcHQgaWQ9XCJfX25leHRfY3NzX19ET19OT1RfVVNFX19cIiAvPlxuICAgICAgICAgICAgKX1cbiAgICAgICAgICAgIHt0cmFjZU1ldGFUYWdzfVxuICAgICAgICAgICAge3N0eWxlcyB8fCBudWxsfVxuICAgICAgICAgIDwvPlxuICAgICAgICApfVxuICAgICAgICB7UmVhY3QuY3JlYXRlRWxlbWVudChSZWFjdC5GcmFnbWVudCwge30sIC4uLihoZWFkVGFncyB8fCBbXSkpfVxuICAgICAgPC9oZWFkPlxuICAgIClcbiAgfVxufVxuXG5mdW5jdGlvbiBoYW5kbGVEb2N1bWVudFNjcmlwdExvYWRlckl0ZW1zKFxuICBzY3JpcHRMb2FkZXI6IHsgYmVmb3JlSW50ZXJhY3RpdmU/OiBhbnlbXSB9LFxuICBfX05FWFRfREFUQV9fOiBORVhUX0RBVEEsXG4gIHByb3BzOiBhbnlcbik6IHZvaWQge1xuICBpZiAoIXByb3BzLmNoaWxkcmVuKSByZXR1cm5cblxuICBjb25zdCBzY3JpcHRMb2FkZXJJdGVtczogU2NyaXB0UHJvcHNbXSA9IFtdXG5cbiAgY29uc3QgY2hpbGRyZW4gPSBBcnJheS5pc0FycmF5KHByb3BzLmNoaWxkcmVuKVxuICAgID8gcHJvcHMuY2hpbGRyZW5cbiAgICA6IFtwcm9wcy5jaGlsZHJlbl1cblxuICBjb25zdCBoZWFkQ2hpbGRyZW4gPSBjaGlsZHJlbi5maW5kKFxuICAgIChjaGlsZDogUmVhY3QuUmVhY3RFbGVtZW50KSA9PiBjaGlsZC50eXBlID09PSBIZWFkXG4gICk/LnByb3BzPy5jaGlsZHJlblxuICBjb25zdCBib2R5Q2hpbGRyZW4gPSBjaGlsZHJlbi5maW5kKFxuICAgIChjaGlsZDogUmVhY3QuUmVhY3RFbGVtZW50KSA9PiBjaGlsZC50eXBlID09PSAnYm9keSdcbiAgKT8ucHJvcHM/LmNoaWxkcmVuXG5cbiAgLy8gU2NyaXB0cyB3aXRoIGJlZm9yZUludGVyYWN0aXZlIGNhbiBiZSBwbGFjZWQgaW5zaWRlIEhlYWQgb3IgPGJvZHk+IHNvIGNoaWxkcmVuIG9mIGJvdGggbmVlZHMgdG8gYmUgdHJhdmVyc2VkXG4gIGNvbnN0IGNvbWJpbmVkQ2hpbGRyZW4gPSBbXG4gICAgLi4uKEFycmF5LmlzQXJyYXkoaGVhZENoaWxkcmVuKSA/IGhlYWRDaGlsZHJlbiA6IFtoZWFkQ2hpbGRyZW5dKSxcbiAgICAuLi4oQXJyYXkuaXNBcnJheShib2R5Q2hpbGRyZW4pID8gYm9keUNoaWxkcmVuIDogW2JvZHlDaGlsZHJlbl0pLFxuICBdXG5cbiAgUmVhY3QuQ2hpbGRyZW4uZm9yRWFjaChjb21iaW5lZENoaWxkcmVuLCAoY2hpbGQ6IGFueSkgPT4ge1xuICAgIGlmICghY2hpbGQpIHJldHVyblxuXG4gICAgLy8gV2hlbiB1c2luZyB0aGUgYG5leHQvc2NyaXB0YCBjb21wb25lbnQsIHJlZ2lzdGVyIGl0IGluIHNjcmlwdCBsb2FkZXIuXG4gICAgaWYgKGNoaWxkLnR5cGU/Ll9fbmV4dFNjcmlwdCkge1xuICAgICAgaWYgKGNoaWxkLnByb3BzLnN0cmF0ZWd5ID09PSAnYmVmb3JlSW50ZXJhY3RpdmUnKSB7XG4gICAgICAgIHNjcmlwdExvYWRlci5iZWZvcmVJbnRlcmFjdGl2ZSA9IChcbiAgICAgICAgICBzY3JpcHRMb2FkZXIuYmVmb3JlSW50ZXJhY3RpdmUgfHwgW11cbiAgICAgICAgKS5jb25jYXQoW1xuICAgICAgICAgIHtcbiAgICAgICAgICAgIC4uLmNoaWxkLnByb3BzLFxuICAgICAgICAgIH0sXG4gICAgICAgIF0pXG4gICAgICAgIHJldHVyblxuICAgICAgfSBlbHNlIGlmIChcbiAgICAgICAgWydsYXp5T25sb2FkJywgJ2FmdGVySW50ZXJhY3RpdmUnLCAnd29ya2VyJ10uaW5jbHVkZXMoXG4gICAgICAgICAgY2hpbGQucHJvcHMuc3RyYXRlZ3lcbiAgICAgICAgKVxuICAgICAgKSB7XG4gICAgICAgIHNjcmlwdExvYWRlckl0ZW1zLnB1c2goY2hpbGQucHJvcHMpXG4gICAgICAgIHJldHVyblxuICAgICAgfSBlbHNlIGlmICh0eXBlb2YgY2hpbGQucHJvcHMuc3RyYXRlZ3kgPT09ICd1bmRlZmluZWQnKSB7XG4gICAgICAgIHNjcmlwdExvYWRlckl0ZW1zLnB1c2goeyAuLi5jaGlsZC5wcm9wcywgc3RyYXRlZ3k6ICdhZnRlckludGVyYWN0aXZlJyB9KVxuICAgICAgICByZXR1cm5cbiAgICAgIH1cbiAgICB9XG4gIH0pXG5cbiAgX19ORVhUX0RBVEFfXy5zY3JpcHRMb2FkZXIgPSBzY3JpcHRMb2FkZXJJdGVtc1xufVxuXG5leHBvcnQgY2xhc3MgTmV4dFNjcmlwdCBleHRlbmRzIFJlYWN0LkNvbXBvbmVudDxPcmlnaW5Qcm9wcz4ge1xuICBzdGF0aWMgY29udGV4dFR5cGUgPSBIdG1sQ29udGV4dFxuXG4gIGNvbnRleHQhOiBIdG1sUHJvcHNcblxuICBnZXREeW5hbWljQ2h1bmtzKGZpbGVzOiBEb2N1bWVudEZpbGVzKSB7XG4gICAgcmV0dXJuIGdldER5bmFtaWNDaHVua3ModGhpcy5jb250ZXh0LCB0aGlzLnByb3BzLCBmaWxlcylcbiAgfVxuXG4gIGdldFByZU5leHRTY3JpcHRzKCkge1xuICAgIHJldHVybiBnZXRQcmVOZXh0U2NyaXB0cyh0aGlzLmNvbnRleHQsIHRoaXMucHJvcHMpXG4gIH1cblxuICBnZXRTY3JpcHRzKGZpbGVzOiBEb2N1bWVudEZpbGVzKSB7XG4gICAgcmV0dXJuIGdldFNjcmlwdHModGhpcy5jb250ZXh0LCB0aGlzLnByb3BzLCBmaWxlcylcbiAgfVxuXG4gIGdldFBvbHlmaWxsU2NyaXB0cygpIHtcbiAgICByZXR1cm4gZ2V0UG9seWZpbGxTY3JpcHRzKHRoaXMuY29udGV4dCwgdGhpcy5wcm9wcylcbiAgfVxuXG4gIHN0YXRpYyBnZXRJbmxpbmVTY3JpcHRTb3VyY2UoY29udGV4dDogUmVhZG9ubHk8SHRtbFByb3BzPik6IHN0cmluZyB7XG4gICAgY29uc3QgeyBfX05FWFRfREFUQV9fLCBsYXJnZVBhZ2VEYXRhQnl0ZXMgfSA9IGNvbnRleHRcbiAgICB0cnkge1xuICAgICAgY29uc3QgZGF0YSA9IEpTT04uc3RyaW5naWZ5KF9fTkVYVF9EQVRBX18pXG5cbiAgICAgIGlmIChsYXJnZVBhZ2VEYXRhV2FybmluZ3MuaGFzKF9fTkVYVF9EQVRBX18ucGFnZSkpIHtcbiAgICAgICAgcmV0dXJuIGh0bWxFc2NhcGVKc29uU3RyaW5nKGRhdGEpXG4gICAgICB9XG5cbiAgICAgIGNvbnN0IGJ5dGVzID1cbiAgICAgICAgcHJvY2Vzcy5lbnYuTkVYVF9SVU5USU1FID09PSAnZWRnZSdcbiAgICAgICAgICA/IG5ldyBUZXh0RW5jb2RlcigpLmVuY29kZShkYXRhKS5idWZmZXIuYnl0ZUxlbmd0aFxuICAgICAgICAgIDogQnVmZmVyLmZyb20oZGF0YSkuYnl0ZUxlbmd0aFxuICAgICAgY29uc3QgcHJldHR5Qnl0ZXMgPSAoXG4gICAgICAgIHJlcXVpcmUoJy4uL2xpYi9wcmV0dHktYnl0ZXMnKSBhcyB0eXBlb2YgaW1wb3J0KCcuLi9saWIvcHJldHR5LWJ5dGVzJylcbiAgICAgICkuZGVmYXVsdFxuXG4gICAgICBpZiAobGFyZ2VQYWdlRGF0YUJ5dGVzICYmIGJ5dGVzID4gbGFyZ2VQYWdlRGF0YUJ5dGVzKSB7XG4gICAgICAgIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViA9PT0gJ3Byb2R1Y3Rpb24nKSB7XG4gICAgICAgICAgbGFyZ2VQYWdlRGF0YVdhcm5pbmdzLmFkZChfX05FWFRfREFUQV9fLnBhZ2UpXG4gICAgICAgIH1cblxuICAgICAgICBjb25zb2xlLndhcm4oXG4gICAgICAgICAgYFdhcm5pbmc6IGRhdGEgZm9yIHBhZ2UgXCIke19fTkVYVF9EQVRBX18ucGFnZX1cIiR7XG4gICAgICAgICAgICBfX05FWFRfREFUQV9fLnBhZ2UgPT09IGNvbnRleHQuZGFuZ2Vyb3VzQXNQYXRoXG4gICAgICAgICAgICAgID8gJydcbiAgICAgICAgICAgICAgOiBgIChwYXRoIFwiJHtjb250ZXh0LmRhbmdlcm91c0FzUGF0aH1cIilgXG4gICAgICAgICAgfSBpcyAke3ByZXR0eUJ5dGVzKFxuICAgICAgICAgICAgYnl0ZXNcbiAgICAgICAgICApfSB3aGljaCBleGNlZWRzIHRoZSB0aHJlc2hvbGQgb2YgJHtwcmV0dHlCeXRlcyhcbiAgICAgICAgICAgIGxhcmdlUGFnZURhdGFCeXRlc1xuICAgICAgICAgICl9LCB0aGlzIGFtb3VudCBvZiBkYXRhIGNhbiByZWR1Y2UgcGVyZm9ybWFuY2UuXFxuU2VlIG1vcmUgaW5mbyBoZXJlOiBodHRwczovL25leHRqcy5vcmcvZG9jcy9tZXNzYWdlcy9sYXJnZS1wYWdlLWRhdGFgXG4gICAgICAgIClcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIGh0bWxFc2NhcGVKc29uU3RyaW5nKGRhdGEpXG4gICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICBpZiAoaXNFcnJvcihlcnIpICYmIGVyci5tZXNzYWdlLmluZGV4T2YoJ2NpcmN1bGFyIHN0cnVjdHVyZScpICE9PSAtMSkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgICAgYENpcmN1bGFyIHN0cnVjdHVyZSBpbiBcImdldEluaXRpYWxQcm9wc1wiIHJlc3VsdCBvZiBwYWdlIFwiJHtfX05FWFRfREFUQV9fLnBhZ2V9XCIuIGh0dHBzOi8vbmV4dGpzLm9yZy9kb2NzL21lc3NhZ2VzL2NpcmN1bGFyLXN0cnVjdHVyZWBcbiAgICAgICAgKVxuICAgICAgfVxuICAgICAgdGhyb3cgZXJyXG4gICAgfVxuICB9XG5cbiAgcmVuZGVyKCkge1xuICAgIGNvbnN0IHtcbiAgICAgIGFzc2V0UHJlZml4LFxuICAgICAgaW5BbXBNb2RlLFxuICAgICAgYnVpbGRNYW5pZmVzdCxcbiAgICAgIHVuc3RhYmxlX3J1bnRpbWVKUyxcbiAgICAgIGRvY0NvbXBvbmVudHNSZW5kZXJlZCxcbiAgICAgIGFzc2V0UXVlcnlTdHJpbmcsXG4gICAgICBkaXNhYmxlT3B0aW1pemVkTG9hZGluZyxcbiAgICAgIGNyb3NzT3JpZ2luLFxuICAgIH0gPSB0aGlzLmNvbnRleHRcbiAgICBjb25zdCBkaXNhYmxlUnVudGltZUpTID0gdW5zdGFibGVfcnVudGltZUpTID09PSBmYWxzZVxuXG4gICAgZG9jQ29tcG9uZW50c1JlbmRlcmVkLk5leHRTY3JpcHQgPSB0cnVlXG5cbiAgICBpZiAocHJvY2Vzcy5lbnYuTkVYVF9SVU5USU1FICE9PSAnZWRnZScgJiYgaW5BbXBNb2RlKSB7XG4gICAgICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgPT09ICdwcm9kdWN0aW9uJykge1xuICAgICAgICByZXR1cm4gbnVsbFxuICAgICAgfVxuICAgICAgY29uc3QgYW1wRGV2RmlsZXMgPSBbXG4gICAgICAgIC4uLmJ1aWxkTWFuaWZlc3QuZGV2RmlsZXMsXG4gICAgICAgIC4uLmJ1aWxkTWFuaWZlc3QucG9seWZpbGxGaWxlcyxcbiAgICAgICAgLi4uYnVpbGRNYW5pZmVzdC5hbXBEZXZGaWxlcyxcbiAgICAgIF1cblxuICAgICAgcmV0dXJuIChcbiAgICAgICAgPD5cbiAgICAgICAgICB7ZGlzYWJsZVJ1bnRpbWVKUyA/IG51bGwgOiAoXG4gICAgICAgICAgICA8c2NyaXB0XG4gICAgICAgICAgICAgIGlkPVwiX19ORVhUX0RBVEFfX1wiXG4gICAgICAgICAgICAgIHR5cGU9XCJhcHBsaWNhdGlvbi9qc29uXCJcbiAgICAgICAgICAgICAgbm9uY2U9e3RoaXMucHJvcHMubm9uY2V9XG4gICAgICAgICAgICAgIGNyb3NzT3JpZ2luPXt0aGlzLnByb3BzLmNyb3NzT3JpZ2luIHx8IGNyb3NzT3JpZ2lufVxuICAgICAgICAgICAgICBkYW5nZXJvdXNseVNldElubmVySFRNTD17e1xuICAgICAgICAgICAgICAgIF9faHRtbDogTmV4dFNjcmlwdC5nZXRJbmxpbmVTY3JpcHRTb3VyY2UodGhpcy5jb250ZXh0KSxcbiAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgZGF0YS1hbXBkZXZtb2RlXG4gICAgICAgICAgICAvPlxuICAgICAgICAgICl9XG4gICAgICAgICAge2FtcERldkZpbGVzLm1hcCgoZmlsZSkgPT4gKFxuICAgICAgICAgICAgPHNjcmlwdFxuICAgICAgICAgICAgICBrZXk9e2ZpbGV9XG4gICAgICAgICAgICAgIHNyYz17YCR7YXNzZXRQcmVmaXh9L19uZXh0LyR7ZW5jb2RlVVJJUGF0aChcbiAgICAgICAgICAgICAgICBmaWxlXG4gICAgICAgICAgICAgICl9JHthc3NldFF1ZXJ5U3RyaW5nfWB9XG4gICAgICAgICAgICAgIG5vbmNlPXt0aGlzLnByb3BzLm5vbmNlfVxuICAgICAgICAgICAgICBjcm9zc09yaWdpbj17dGhpcy5wcm9wcy5jcm9zc09yaWdpbiB8fCBjcm9zc09yaWdpbn1cbiAgICAgICAgICAgICAgZGF0YS1hbXBkZXZtb2RlXG4gICAgICAgICAgICAvPlxuICAgICAgICAgICkpfVxuICAgICAgICA8Lz5cbiAgICAgIClcbiAgICB9XG5cbiAgICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJykge1xuICAgICAgaWYgKHRoaXMucHJvcHMuY3Jvc3NPcmlnaW4pXG4gICAgICAgIGNvbnNvbGUud2FybihcbiAgICAgICAgICAnV2FybmluZzogYE5leHRTY3JpcHRgIGF0dHJpYnV0ZSBgY3Jvc3NPcmlnaW5gIGlzIGRlcHJlY2F0ZWQuIGh0dHBzOi8vbmV4dGpzLm9yZy9kb2NzL21lc3NhZ2VzL2RvYy1jcm9zc29yaWdpbi1kZXByZWNhdGVkJ1xuICAgICAgICApXG4gICAgfVxuXG4gICAgY29uc3QgZmlsZXM6IERvY3VtZW50RmlsZXMgPSBnZXREb2N1bWVudEZpbGVzKFxuICAgICAgdGhpcy5jb250ZXh0LmJ1aWxkTWFuaWZlc3QsXG4gICAgICB0aGlzLmNvbnRleHQuX19ORVhUX0RBVEFfXy5wYWdlLFxuICAgICAgcHJvY2Vzcy5lbnYuTkVYVF9SVU5USU1FICE9PSAnZWRnZScgJiYgaW5BbXBNb2RlXG4gICAgKVxuXG4gICAgcmV0dXJuIChcbiAgICAgIDw+XG4gICAgICAgIHshZGlzYWJsZVJ1bnRpbWVKUyAmJiBidWlsZE1hbmlmZXN0LmRldkZpbGVzXG4gICAgICAgICAgPyBidWlsZE1hbmlmZXN0LmRldkZpbGVzLm1hcCgoZmlsZTogc3RyaW5nKSA9PiAoXG4gICAgICAgICAgICAgIDxzY3JpcHRcbiAgICAgICAgICAgICAgICBrZXk9e2ZpbGV9XG4gICAgICAgICAgICAgICAgc3JjPXtgJHthc3NldFByZWZpeH0vX25leHQvJHtlbmNvZGVVUklQYXRoKFxuICAgICAgICAgICAgICAgICAgZmlsZVxuICAgICAgICAgICAgICAgICl9JHthc3NldFF1ZXJ5U3RyaW5nfWB9XG4gICAgICAgICAgICAgICAgbm9uY2U9e3RoaXMucHJvcHMubm9uY2V9XG4gICAgICAgICAgICAgICAgY3Jvc3NPcmlnaW49e3RoaXMucHJvcHMuY3Jvc3NPcmlnaW4gfHwgY3Jvc3NPcmlnaW59XG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICApKVxuICAgICAgICAgIDogbnVsbH1cbiAgICAgICAge2Rpc2FibGVSdW50aW1lSlMgPyBudWxsIDogKFxuICAgICAgICAgIDxzY3JpcHRcbiAgICAgICAgICAgIGlkPVwiX19ORVhUX0RBVEFfX1wiXG4gICAgICAgICAgICB0eXBlPVwiYXBwbGljYXRpb24vanNvblwiXG4gICAgICAgICAgICBub25jZT17dGhpcy5wcm9wcy5ub25jZX1cbiAgICAgICAgICAgIGNyb3NzT3JpZ2luPXt0aGlzLnByb3BzLmNyb3NzT3JpZ2luIHx8IGNyb3NzT3JpZ2lufVxuICAgICAgICAgICAgZGFuZ2Vyb3VzbHlTZXRJbm5lckhUTUw9e3tcbiAgICAgICAgICAgICAgX19odG1sOiBOZXh0U2NyaXB0LmdldElubGluZVNjcmlwdFNvdXJjZSh0aGlzLmNvbnRleHQpLFxuICAgICAgICAgICAgfX1cbiAgICAgICAgICAvPlxuICAgICAgICApfVxuICAgICAgICB7ZGlzYWJsZU9wdGltaXplZExvYWRpbmcgJiZcbiAgICAgICAgICAhZGlzYWJsZVJ1bnRpbWVKUyAmJlxuICAgICAgICAgIHRoaXMuZ2V0UG9seWZpbGxTY3JpcHRzKCl9XG4gICAgICAgIHtkaXNhYmxlT3B0aW1pemVkTG9hZGluZyAmJlxuICAgICAgICAgICFkaXNhYmxlUnVudGltZUpTICYmXG4gICAgICAgICAgdGhpcy5nZXRQcmVOZXh0U2NyaXB0cygpfVxuICAgICAgICB7ZGlzYWJsZU9wdGltaXplZExvYWRpbmcgJiZcbiAgICAgICAgICAhZGlzYWJsZVJ1bnRpbWVKUyAmJlxuICAgICAgICAgIHRoaXMuZ2V0RHluYW1pY0NodW5rcyhmaWxlcyl9XG4gICAgICAgIHtkaXNhYmxlT3B0aW1pemVkTG9hZGluZyAmJiAhZGlzYWJsZVJ1bnRpbWVKUyAmJiB0aGlzLmdldFNjcmlwdHMoZmlsZXMpfVxuICAgICAgPC8+XG4gICAgKVxuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBIdG1sKFxuICBwcm9wczogUmVhY3QuRGV0YWlsZWRIVE1MUHJvcHM8XG4gICAgUmVhY3QuSHRtbEhUTUxBdHRyaWJ1dGVzPEhUTUxIdG1sRWxlbWVudD4sXG4gICAgSFRNTEh0bWxFbGVtZW50XG4gID5cbikge1xuICBjb25zdCB7XG4gICAgaW5BbXBNb2RlLFxuICAgIGRvY0NvbXBvbmVudHNSZW5kZXJlZCxcbiAgICBsb2NhbGUsXG4gICAgc2NyaXB0TG9hZGVyLFxuICAgIF9fTkVYVF9EQVRBX18sXG4gIH0gPSB1c2VIdG1sQ29udGV4dCgpXG5cbiAgZG9jQ29tcG9uZW50c1JlbmRlcmVkLkh0bWwgPSB0cnVlXG4gIGhhbmRsZURvY3VtZW50U2NyaXB0TG9hZGVySXRlbXMoc2NyaXB0TG9hZGVyLCBfX05FWFRfREFUQV9fLCBwcm9wcylcblxuICByZXR1cm4gKFxuICAgIDxodG1sXG4gICAgICB7Li4ucHJvcHN9XG4gICAgICBsYW5nPXtwcm9wcy5sYW5nIHx8IGxvY2FsZSB8fCB1bmRlZmluZWR9XG4gICAgICBhbXA9e3Byb2Nlc3MuZW52Lk5FWFRfUlVOVElNRSAhPT0gJ2VkZ2UnICYmIGluQW1wTW9kZSA/ICcnIDogdW5kZWZpbmVkfVxuICAgICAgZGF0YS1hbXBkZXZtb2RlPXtcbiAgICAgICAgcHJvY2Vzcy5lbnYuTkVYVF9SVU5USU1FICE9PSAnZWRnZScgJiZcbiAgICAgICAgaW5BbXBNb2RlICYmXG4gICAgICAgIHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbidcbiAgICAgICAgICA/ICcnXG4gICAgICAgICAgOiB1bmRlZmluZWRcbiAgICAgIH1cbiAgICAvPlxuICApXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBNYWluKCkge1xuICBjb25zdCB7IGRvY0NvbXBvbmVudHNSZW5kZXJlZCB9ID0gdXNlSHRtbENvbnRleHQoKVxuICBkb2NDb21wb25lbnRzUmVuZGVyZWQuTWFpbiA9IHRydWVcbiAgLy8gQHRzLWlnbm9yZVxuICByZXR1cm4gPG5leHQtanMtaW50ZXJuYWwtYm9keS1yZW5kZXItdGFyZ2V0IC8+XG59XG5cbi8qKlxuICogYERvY3VtZW50YCBjb21wb25lbnQgaGFuZGxlcyB0aGUgaW5pdGlhbCBgZG9jdW1lbnRgIG1hcmt1cCBhbmQgcmVuZGVycyBvbmx5IG9uIHRoZSBzZXJ2ZXIgc2lkZS5cbiAqIENvbW1vbmx5IHVzZWQgZm9yIGltcGxlbWVudGluZyBzZXJ2ZXIgc2lkZSByZW5kZXJpbmcgZm9yIGBjc3MtaW4tanNgIGxpYnJhcmllcy5cbiAqL1xuZXhwb3J0IGRlZmF1bHQgY2xhc3MgRG9jdW1lbnQ8UCA9IHt9PiBleHRlbmRzIFJlYWN0LkNvbXBvbmVudDxcbiAgRG9jdW1lbnRQcm9wcyAmIFBcbj4ge1xuICAvKipcbiAgICogYGdldEluaXRpYWxQcm9wc2AgaG9vayByZXR1cm5zIHRoZSBjb250ZXh0IG9iamVjdCB3aXRoIHRoZSBhZGRpdGlvbiBvZiBgcmVuZGVyUGFnZWAuXG4gICAqIGByZW5kZXJQYWdlYCBjYWxsYmFjayBleGVjdXRlcyBgUmVhY3RgIHJlbmRlcmluZyBsb2dpYyBzeW5jaHJvbm91c2x5IHRvIHN1cHBvcnQgc2VydmVyLXJlbmRlcmluZyB3cmFwcGVyc1xuICAgKi9cbiAgc3RhdGljIGdldEluaXRpYWxQcm9wcyhjdHg6IERvY3VtZW50Q29udGV4dCk6IFByb21pc2U8RG9jdW1lbnRJbml0aWFsUHJvcHM+IHtcbiAgICByZXR1cm4gY3R4LmRlZmF1bHRHZXRJbml0aWFsUHJvcHMoY3R4KVxuICB9XG5cbiAgcmVuZGVyKCkge1xuICAgIHJldHVybiAoXG4gICAgICA8SHRtbD5cbiAgICAgICAgPEhlYWQgbm9uY2U9e3RoaXMucHJvcHMubm9uY2V9IC8+XG4gICAgICAgIDxib2R5PlxuICAgICAgICAgIDxNYWluIC8+XG4gICAgICAgICAgPE5leHRTY3JpcHQgbm9uY2U9e3RoaXMucHJvcHMubm9uY2V9IC8+XG4gICAgICAgIDwvYm9keT5cbiAgICAgIDwvSHRtbD5cbiAgICApXG4gIH1cbn1cblxuLy8gQWRkIGEgc3BlY2lhbCBwcm9wZXJ0eSB0byB0aGUgYnVpbHQtaW4gYERvY3VtZW50YCBjb21wb25lbnQgc28gbGF0ZXIgd2UgY2FuXG4vLyBpZGVudGlmeSBpZiBhIHVzZXIgY3VzdG9taXplZCBgRG9jdW1lbnRgIGlzIHVzZWQgb3Igbm90LlxuY29uc3QgSW50ZXJuYWxGdW5jdGlvbkRvY3VtZW50OiBEb2N1bWVudFR5cGUgPVxuICBmdW5jdGlvbiBJbnRlcm5hbEZ1bmN0aW9uRG9jdW1lbnQoKSB7XG4gICAgcmV0dXJuIChcbiAgICAgIDxIdG1sPlxuICAgICAgICA8SGVhZCAvPlxuICAgICAgICA8Ym9keT5cbiAgICAgICAgICA8TWFpbiAvPlxuICAgICAgICAgIDxOZXh0U2NyaXB0IC8+XG4gICAgICAgIDwvYm9keT5cbiAgICAgIDwvSHRtbD5cbiAgICApXG4gIH1cbjsoRG9jdW1lbnQgYXMgYW55KVtORVhUX0JVSUxUSU5fRE9DVU1FTlRdID0gSW50ZXJuYWxGdW5jdGlvbkRvY3VtZW50XG4iXSwibmFtZXMiOlsiSGVhZCIsIkh0bWwiLCJNYWluIiwiTmV4dFNjcmlwdCIsIkRvY3VtZW50IiwibGFyZ2VQYWdlRGF0YVdhcm5pbmdzIiwiU2V0IiwiZ2V0RG9jdW1lbnRGaWxlcyIsImJ1aWxkTWFuaWZlc3QiLCJwYXRobmFtZSIsImluQW1wTW9kZSIsInNoYXJlZEZpbGVzIiwiZ2V0UGFnZUZpbGVzIiwicGFnZUZpbGVzIiwicHJvY2VzcyIsImVudiIsIk5FWFRfUlVOVElNRSIsImFsbEZpbGVzIiwiZ2V0UG9seWZpbGxTY3JpcHRzIiwiY29udGV4dCIsInByb3BzIiwiYXNzZXRQcmVmaXgiLCJhc3NldFF1ZXJ5U3RyaW5nIiwiZGlzYWJsZU9wdGltaXplZExvYWRpbmciLCJjcm9zc09yaWdpbiIsInBvbHlmaWxsRmlsZXMiLCJmaWx0ZXIiLCJwb2x5ZmlsbCIsImVuZHNXaXRoIiwibWFwIiwic2NyaXB0IiwiZGVmZXIiLCJub25jZSIsIm5vTW9kdWxlIiwic3JjIiwiZW5jb2RlVVJJUGF0aCIsImhhc0NvbXBvbmVudFByb3BzIiwiY2hpbGQiLCJBbXBTdHlsZXMiLCJzdHlsZXMiLCJjdXJTdHlsZXMiLCJBcnJheSIsImlzQXJyYXkiLCJjaGlsZHJlbiIsImhhc1N0eWxlcyIsImVsIiwiZGFuZ2Vyb3VzbHlTZXRJbm5lckhUTUwiLCJfX2h0bWwiLCJmb3JFYWNoIiwicHVzaCIsInN0eWxlIiwiYW1wLWN1c3RvbSIsImpvaW4iLCJyZXBsYWNlIiwiZ2V0RHluYW1pY0NodW5rcyIsImZpbGVzIiwiZHluYW1pY0ltcG9ydHMiLCJpc0RldmVsb3BtZW50IiwiZmlsZSIsImluY2x1ZGVzIiwiYXN5bmMiLCJnZXRTY3JpcHRzIiwibm9ybWFsU2NyaXB0cyIsImxvd1ByaW9yaXR5U2NyaXB0cyIsImxvd1ByaW9yaXR5RmlsZXMiLCJnZXRQcmVOZXh0V29ya2VyU2NyaXB0cyIsInNjcmlwdExvYWRlciIsIm5leHRTY3JpcHRXb3JrZXJzIiwicGFydHl0b3duU25pcHBldCIsIl9fbm9uX3dlYnBhY2tfcmVxdWlyZV9fIiwidXNlckRlZmluZWRDb25maWciLCJmaW5kIiwibGVuZ3RoIiwiZGF0YS1wYXJ0eXRvd24tY29uZmlnIiwiZGF0YS1wYXJ0eXRvd24iLCJ3b3JrZXIiLCJpbmRleCIsInN0cmF0ZWd5Iiwic2NyaXB0Q2hpbGRyZW4iLCJzY3JpcHRQcm9wcyIsInNyY1Byb3BzIiwiRXJyb3IiLCJ0eXBlIiwia2V5IiwiZGF0YS1uc2NyaXB0IiwiZXJyIiwiaXNFcnJvciIsImNvZGUiLCJjb25zb2xlIiwid2FybiIsIm1lc3NhZ2UiLCJnZXRQcmVOZXh0U2NyaXB0cyIsIndlYldvcmtlclNjcmlwdHMiLCJiZWZvcmVJbnRlcmFjdGl2ZVNjcmlwdHMiLCJiZWZvcmVJbnRlcmFjdGl2ZSIsImdldEhlYWRIVE1MUHJvcHMiLCJyZXN0UHJvcHMiLCJoZWFkUHJvcHMiLCJnZXRBbXBQYXRoIiwiYW1wUGF0aCIsImFzUGF0aCIsImdldE5leHRGb250TGlua1RhZ3MiLCJuZXh0Rm9udE1hbmlmZXN0IiwiZGFuZ2Vyb3VzQXNQYXRoIiwicHJlY29ubmVjdCIsInByZWxvYWQiLCJhcHBGb250c0VudHJ5IiwicGFnZXMiLCJwYWdlRm9udHNFbnRyeSIsInByZWxvYWRlZEZvbnRGaWxlcyIsImZyb20iLCJwcmVjb25uZWN0VG9TZWxmIiwibGluayIsImRhdGEtbmV4dC1mb250IiwicGFnZXNVc2luZ1NpemVBZGp1c3QiLCJyZWwiLCJocmVmIiwiZm9udEZpbGUiLCJleHQiLCJleGVjIiwiYXMiLCJSZWFjdCIsIkNvbXBvbmVudCIsImNvbnRleHRUeXBlIiwiSHRtbENvbnRleHQiLCJnZXRDc3NMaW5rcyIsImR5bmFtaWNDc3NNYW5pZmVzdCIsIm9wdGltaXplQ3NzIiwiY3NzRmlsZXMiLCJmIiwidW5tYW5hZ2VkRmlsZXMiLCJsb2NhbER5bmFtaWNDc3NGaWxlcyIsImV4aXN0aW5nIiwiaGFzIiwiY3NzTGlua0VsZW1lbnRzIiwiaXNTaGFyZWRGaWxlIiwiaXNVbm1hbmFnZWRGaWxlIiwiaXNGaWxlSW5EeW5hbWljQ3NzTWFuaWZlc3QiLCJkYXRhLW4tZyIsInVuZGVmaW5lZCIsImRhdGEtbi1wIiwiZ2V0UHJlbG9hZER5bmFtaWNDaHVua3MiLCJCb29sZWFuIiwiZ2V0UHJlbG9hZE1haW5MaW5rcyIsInByZWxvYWRGaWxlcyIsImdldEJlZm9yZUludGVyYWN0aXZlSW5saW5lU2NyaXB0cyIsImh0bWwiLCJpZCIsIl9fTkVYVF9DUk9TU19PUklHSU4iLCJyZW5kZXIiLCJoeWJyaWRBbXAiLCJjYW5vbmljYWxCYXNlIiwiX19ORVhUX0RBVEFfXyIsImhlYWRUYWdzIiwidW5zdGFibGVfcnVudGltZUpTIiwidW5zdGFibGVfSnNQcmVsb2FkIiwiZGlzYWJsZVJ1bnRpbWVKUyIsImRpc2FibGVKc1ByZWxvYWQiLCJkb2NDb21wb25lbnRzUmVuZGVyZWQiLCJoZWFkIiwiY3NzUHJlbG9hZHMiLCJvdGhlckhlYWRFbGVtZW50cyIsInN0cmljdE5leHRIZWFkIiwiY2xvbmVFbGVtZW50IiwiY29uY2F0IiwiQ2hpbGRyZW4iLCJ0b0FycmF5IiwiTk9ERV9FTlYiLCJpc1JlYWN0SGVsbWV0IiwibmFtZSIsImhhc0FtcGh0bWxSZWwiLCJoYXNDYW5vbmljYWxSZWwiLCJiYWRQcm9wIiwiaW5kZXhPZiIsIk9iamVjdCIsImtleXMiLCJwcm9wIiwicGFnZSIsIm5leHRGb250TGlua1RhZ3MiLCJ0cmFjaW5nTWV0YWRhdGEiLCJnZXRUcmFjZWRNZXRhZGF0YSIsImdldFRyYWNlciIsImdldFRyYWNlUHJvcGFnYXRpb25EYXRhIiwiZXhwZXJpbWVudGFsQ2xpZW50VHJhY2VNZXRhZGF0YSIsInRyYWNlTWV0YVRhZ3MiLCJ2YWx1ZSIsIm1ldGEiLCJjb250ZW50IiwiZGF0YS1uZXh0LWhpZGUtZm91YyIsImRhdGEtYW1wZGV2bW9kZSIsIm5vc2NyaXB0IiwiY291bnQiLCJ0b1N0cmluZyIsInJlcXVpcmUiLCJjbGVhbkFtcFBhdGgiLCJhbXAtYm9pbGVycGxhdGUiLCJkYXRhLW4tY3NzIiwiY3JlYXRlRWxlbWVudCIsIkZyYWdtZW50IiwiaGFuZGxlRG9jdW1lbnRTY3JpcHRMb2FkZXJJdGVtcyIsInNjcmlwdExvYWRlckl0ZW1zIiwiaGVhZENoaWxkcmVuIiwiYm9keUNoaWxkcmVuIiwiY29tYmluZWRDaGlsZHJlbiIsIl9fbmV4dFNjcmlwdCIsImdldElubGluZVNjcmlwdFNvdXJjZSIsImxhcmdlUGFnZURhdGFCeXRlcyIsImRhdGEiLCJKU09OIiwic3RyaW5naWZ5IiwiaHRtbEVzY2FwZUpzb25TdHJpbmciLCJieXRlcyIsIlRleHRFbmNvZGVyIiwiZW5jb2RlIiwiYnVmZmVyIiwiYnl0ZUxlbmd0aCIsIkJ1ZmZlciIsInByZXR0eUJ5dGVzIiwiZGVmYXVsdCIsImFkZCIsImFtcERldkZpbGVzIiwiZGV2RmlsZXMiLCJsb2NhbGUiLCJ1c2VIdG1sQ29udGV4dCIsImxhbmciLCJhbXAiLCJuZXh0LWpzLWludGVybmFsLWJvZHktcmVuZGVyLXRhcmdldCIsImdldEluaXRpYWxQcm9wcyIsImN0eCIsImRlZmF1bHRHZXRJbml0aWFsUHJvcHMiLCJib2R5IiwiSW50ZXJuYWxGdW5jdGlvbkRvY3VtZW50IiwiTkVYVF9CVUlMVElOX0RPQ1VNRU5UIl0sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(pages-dir-node)/./node_modules/next/dist/pages/_document.js\n"); - -/***/ }), - -/***/ "(pages-dir-node)/./node_modules/next/dist/pages/_error.js": -/*!************************************************!*\ - !*** ./node_modules/next/dist/pages/_error.js ***! - \************************************************/ -/***/ ((module, exports, __webpack_require__) => { - -"use strict"; -eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"default\", ({\n enumerable: true,\n get: function() {\n return Error;\n }\n}));\nconst _interop_require_default = __webpack_require__(/*! @swc/helpers/_/_interop_require_default */ \"(pages-dir-node)/./node_modules/@swc/helpers/cjs/_interop_require_default.cjs\");\nconst _jsxruntime = __webpack_require__(/*! react/jsx-runtime */ \"react/jsx-runtime\");\nconst _react = /*#__PURE__*/ _interop_require_default._(__webpack_require__(/*! react */ \"react\"));\nconst _head = /*#__PURE__*/ _interop_require_default._(__webpack_require__(/*! ../shared/lib/head */ \"(pages-dir-node)/./node_modules/next/dist/shared/lib/head.js\"));\nconst statusCodes = {\n 400: 'Bad Request',\n 404: 'This page could not be found',\n 405: 'Method Not Allowed',\n 500: 'Internal Server Error'\n};\nfunction _getInitialProps(param) {\n let { req, res, err } = param;\n const statusCode = res && res.statusCode ? res.statusCode : err ? err.statusCode : 404;\n let hostname;\n if (false) {} else if (req) {\n const { getRequestMeta } = __webpack_require__(/*! ../server/request-meta */ \"(pages-dir-node)/./node_modules/next/dist/server/request-meta.js\");\n const initUrl = getRequestMeta(req, 'initURL');\n if (initUrl) {\n const url = new URL(initUrl);\n hostname = url.hostname;\n }\n }\n return {\n statusCode,\n hostname\n };\n}\nconst styles = {\n error: {\n // https://github.com/sindresorhus/modern-normalize/blob/main/modern-normalize.css#L38-L52\n fontFamily: 'system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"',\n height: '100vh',\n textAlign: 'center',\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'center',\n justifyContent: 'center'\n },\n desc: {\n lineHeight: '48px'\n },\n h1: {\n display: 'inline-block',\n margin: '0 20px 0 0',\n paddingRight: 23,\n fontSize: 24,\n fontWeight: 500,\n verticalAlign: 'top'\n },\n h2: {\n fontSize: 14,\n fontWeight: 400,\n lineHeight: '28px'\n },\n wrap: {\n display: 'inline-block'\n }\n};\nclass Error extends _react.default.Component {\n render() {\n const { statusCode, withDarkMode = true } = this.props;\n const title = this.props.title || statusCodes[statusCode] || 'An unexpected error has occurred';\n return /*#__PURE__*/ (0, _jsxruntime.jsxs)(\"div\", {\n style: styles.error,\n children: [\n /*#__PURE__*/ (0, _jsxruntime.jsx)(_head.default, {\n children: /*#__PURE__*/ (0, _jsxruntime.jsx)(\"title\", {\n children: statusCode ? statusCode + \": \" + title : 'Application error: a client-side exception has occurred'\n })\n }),\n /*#__PURE__*/ (0, _jsxruntime.jsxs)(\"div\", {\n style: styles.desc,\n children: [\n /*#__PURE__*/ (0, _jsxruntime.jsx)(\"style\", {\n dangerouslySetInnerHTML: {\n /* CSS minified from\n body { margin: 0; color: #000; background: #fff; }\n .next-error-h1 {\n border-right: 1px solid rgba(0, 0, 0, .3);\n }\n\n ${\n withDarkMode\n ? `@media (prefers-color-scheme: dark) {\n body { color: #fff; background: #000; }\n .next-error-h1 {\n border-right: 1px solid rgba(255, 255, 255, .3);\n }\n }`\n : ''\n }\n */ __html: \"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}\" + (withDarkMode ? '@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}' : '')\n }\n }),\n statusCode ? /*#__PURE__*/ (0, _jsxruntime.jsx)(\"h1\", {\n className: \"next-error-h1\",\n style: styles.h1,\n children: statusCode\n }) : null,\n /*#__PURE__*/ (0, _jsxruntime.jsx)(\"div\", {\n style: styles.wrap,\n children: /*#__PURE__*/ (0, _jsxruntime.jsxs)(\"h2\", {\n style: styles.h2,\n children: [\n this.props.title || statusCode ? title : /*#__PURE__*/ (0, _jsxruntime.jsxs)(_jsxruntime.Fragment, {\n children: [\n \"Application error: a client-side exception has occurred\",\n ' ',\n Boolean(this.props.hostname) && /*#__PURE__*/ (0, _jsxruntime.jsxs)(_jsxruntime.Fragment, {\n children: [\n \"while loading \",\n this.props.hostname\n ]\n }),\n ' ',\n \"(see the browser console for more information)\"\n ]\n }),\n \".\"\n ]\n })\n })\n ]\n })\n ]\n });\n }\n}\nError.displayName = 'ErrorPage';\nError.getInitialProps = _getInitialProps;\nError.origGetInitialProps = _getInitialProps;\nif ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=_error.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1ub2RlKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvcGFnZXMvX2Vycm9yLmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7ZUFnRnFCQTs7Ozs7NEVBaEZIOzJFQUNEO0FBR2pCLE1BQU1DLGNBQTBDO0lBQzlDLEtBQUs7SUFDTCxLQUFLO0lBQ0wsS0FBSztJQUNMLEtBQUs7QUFDUDtBQVNBLFNBQVNDLGlCQUFpQixLQUlSO0lBSlEsTUFDeEJDLEdBQUcsRUFDSEMsR0FBRyxFQUNIQyxHQUFHLEVBQ2EsR0FKUTtJQUt4QixNQUFNQyxhQUNKRixPQUFPQSxJQUFJRSxVQUFVLEdBQUdGLElBQUlFLFVBQVUsR0FBR0QsTUFBTUEsSUFBSUMsVUFBVSxHQUFJO0lBRW5FLElBQUlDO0lBRUosSUFBSSxLQUE2QixFQUFFLEVBRWxDLE1BQU0sSUFBSUosS0FBSztRQUNkLE1BQU0sRUFBRU8sY0FBYyxFQUFFLEdBQ3RCQyxtQkFBT0EsQ0FBQyxnR0FBd0I7UUFFbEMsTUFBTUMsVUFBVUYsZUFBZVAsS0FBSztRQUNwQyxJQUFJUyxTQUFTO1lBQ1gsTUFBTUMsTUFBTSxJQUFJQyxJQUFJRjtZQUNwQkwsV0FBV00sSUFBSU4sUUFBUTtRQUN6QjtJQUNGO0lBRUEsT0FBTztRQUFFRDtRQUFZQztJQUFTO0FBQ2hDO0FBRUEsTUFBTVEsU0FBOEM7SUFDbERDLE9BQU87UUFDTCwwRkFBMEY7UUFDMUZDLFlBQ0U7UUFDRkMsUUFBUTtRQUNSQyxXQUFXO1FBQ1hDLFNBQVM7UUFDVEMsZUFBZTtRQUNmQyxZQUFZO1FBQ1pDLGdCQUFnQjtJQUNsQjtJQUNBQyxNQUFNO1FBQ0pDLFlBQVk7SUFDZDtJQUNBQyxJQUFJO1FBQ0ZOLFNBQVM7UUFDVE8sUUFBUTtRQUNSQyxjQUFjO1FBQ2RDLFVBQVU7UUFDVkMsWUFBWTtRQUNaQyxlQUFlO0lBQ2pCO0lBQ0FDLElBQUk7UUFDRkgsVUFBVTtRQUNWQyxZQUFZO1FBQ1pMLFlBQVk7SUFDZDtJQUNBUSxNQUFNO1FBQ0piLFNBQVM7SUFDWDtBQUNGO0FBS2UsTUFBTXBCLGNBQXNCa0MsT0FBQUEsT0FBSyxDQUFDQyxTQUFTO0lBTXhEQyxTQUFTO1FBQ1AsTUFBTSxFQUFFOUIsVUFBVSxFQUFFK0IsZUFBZSxJQUFJLEVBQUUsR0FBRyxJQUFJLENBQUNDLEtBQUs7UUFDdEQsTUFBTUMsUUFDSixJQUFJLENBQUNELEtBQUssQ0FBQ0MsS0FBSyxJQUNoQnRDLFdBQVcsQ0FBQ0ssV0FBVyxJQUN2QjtRQUVGLHFCQUNFLHNCQUFDa0MsT0FBQUE7WUFBSUMsT0FBTzFCLE9BQU9DLEtBQUs7OzhCQUN0QixxQkFBQzBCLE1BQUFBLE9BQUk7OEJBQ0gsbUNBQUNILFNBQUFBO2tDQUNFakMsYUFDTUEsYUFBVyxPQUFJaUMsUUFDbEI7Ozs4QkFHUixzQkFBQ0MsT0FBQUE7b0JBQUlDLE9BQU8xQixPQUFPUyxJQUFJOztzQ0FDckIscUJBQUNpQixTQUFBQTs0QkFDQ0UseUJBQXlCO2dDQUN2Qjs7Ozs7Ozs7Ozs7Ozs7OztlQWdCQyxHQUNEQyxRQUFTLG1HQUNQUCxDQUFBQSxlQUNJLG9JQUNBLEdBQUM7NEJBRVQ7O3dCQUdEL0IsYUFBQUEsV0FBQUEsR0FDQyxxQkFBQ29CLE1BQUFBOzRCQUFHbUIsV0FBVTs0QkFBZ0JKLE9BQU8xQixPQUFPVyxFQUFFO3NDQUMzQ3BCOzZCQUVEO3NDQUNKLHFCQUFDa0MsT0FBQUE7NEJBQUlDLE9BQU8xQixPQUFPa0IsSUFBSTtzQ0FDckIsb0NBQUNELE1BQUFBO2dDQUFHUyxPQUFPMUIsT0FBT2lCLEVBQUU7O29DQUNqQixJQUFJLENBQUNNLEtBQUssQ0FBQ0MsS0FBSyxJQUFJakMsYUFDbkJpQyxRQUVBLFdBRkFBLEdBRUE7OzRDQUFFOzRDQUN3RDs0Q0FDdkRPLFFBQVEsSUFBSSxDQUFDUixLQUFLLENBQUMvQixRQUFRLEtBQzFCLFdBRDBCLEdBQzFCOztvREFBRTtvREFBZSxJQUFJLENBQUMrQixLQUFLLENBQUMvQixRQUFROzs7NENBQ25DOzRDQUFJOzs7b0NBR1Q7Ozs7Ozs7O0lBT2Q7QUFDRjtBQTNFcUJQLE1BQ1orQyxXQUFBQSxHQUFjO0FBREYvQyxNQUdaZ0QsZUFBQUEsR0FBa0I5QztBQUhORixNQUlaaUQsbUJBQUFBLEdBQXNCL0MiLCJzb3VyY2VzIjpbIkQ6XFxzcmNcXHBhZ2VzXFxfZXJyb3IudHN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCdcbmltcG9ydCBIZWFkIGZyb20gJy4uL3NoYXJlZC9saWIvaGVhZCdcbmltcG9ydCB0eXBlIHsgTmV4dFBhZ2VDb250ZXh0IH0gZnJvbSAnLi4vc2hhcmVkL2xpYi91dGlscydcblxuY29uc3Qgc3RhdHVzQ29kZXM6IHsgW2NvZGU6IG51bWJlcl06IHN0cmluZyB9ID0ge1xuICA0MDA6ICdCYWQgUmVxdWVzdCcsXG4gIDQwNDogJ1RoaXMgcGFnZSBjb3VsZCBub3QgYmUgZm91bmQnLFxuICA0MDU6ICdNZXRob2QgTm90IEFsbG93ZWQnLFxuICA1MDA6ICdJbnRlcm5hbCBTZXJ2ZXIgRXJyb3InLFxufVxuXG5leHBvcnQgdHlwZSBFcnJvclByb3BzID0ge1xuICBzdGF0dXNDb2RlOiBudW1iZXJcbiAgaG9zdG5hbWU/OiBzdHJpbmdcbiAgdGl0bGU/OiBzdHJpbmdcbiAgd2l0aERhcmtNb2RlPzogYm9vbGVhblxufVxuXG5mdW5jdGlvbiBfZ2V0SW5pdGlhbFByb3BzKHtcbiAgcmVxLFxuICByZXMsXG4gIGVycixcbn06IE5leHRQYWdlQ29udGV4dCk6IFByb21pc2U8RXJyb3JQcm9wcz4gfCBFcnJvclByb3BzIHtcbiAgY29uc3Qgc3RhdHVzQ29kZSA9XG4gICAgcmVzICYmIHJlcy5zdGF0dXNDb2RlID8gcmVzLnN0YXR1c0NvZGUgOiBlcnIgPyBlcnIuc3RhdHVzQ29kZSEgOiA0MDRcblxuICBsZXQgaG9zdG5hbWVcblxuICBpZiAodHlwZW9mIHdpbmRvdyAhPT0gJ3VuZGVmaW5lZCcpIHtcbiAgICBob3N0bmFtZSA9IHdpbmRvdy5sb2NhdGlvbi5ob3N0bmFtZVxuICB9IGVsc2UgaWYgKHJlcSkge1xuICAgIGNvbnN0IHsgZ2V0UmVxdWVzdE1ldGEgfSA9XG4gICAgICByZXF1aXJlKCcuLi9zZXJ2ZXIvcmVxdWVzdC1tZXRhJykgYXMgdHlwZW9mIGltcG9ydCgnLi4vc2VydmVyL3JlcXVlc3QtbWV0YScpXG5cbiAgICBjb25zdCBpbml0VXJsID0gZ2V0UmVxdWVzdE1ldGEocmVxLCAnaW5pdFVSTCcpXG4gICAgaWYgKGluaXRVcmwpIHtcbiAgICAgIGNvbnN0IHVybCA9IG5ldyBVUkwoaW5pdFVybClcbiAgICAgIGhvc3RuYW1lID0gdXJsLmhvc3RuYW1lXG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHsgc3RhdHVzQ29kZSwgaG9zdG5hbWUgfVxufVxuXG5jb25zdCBzdHlsZXM6IFJlY29yZDxzdHJpbmcsIFJlYWN0LkNTU1Byb3BlcnRpZXM+ID0ge1xuICBlcnJvcjoge1xuICAgIC8vIGh0dHBzOi8vZ2l0aHViLmNvbS9zaW5kcmVzb3JodXMvbW9kZXJuLW5vcm1hbGl6ZS9ibG9iL21haW4vbW9kZXJuLW5vcm1hbGl6ZS5jc3MjTDM4LUw1MlxuICAgIGZvbnRGYW1pbHk6XG4gICAgICAnc3lzdGVtLXVpLFwiU2Vnb2UgVUlcIixSb2JvdG8sSGVsdmV0aWNhLEFyaWFsLHNhbnMtc2VyaWYsXCJBcHBsZSBDb2xvciBFbW9qaVwiLFwiU2Vnb2UgVUkgRW1vamlcIicsXG4gICAgaGVpZ2h0OiAnMTAwdmgnLFxuICAgIHRleHRBbGlnbjogJ2NlbnRlcicsXG4gICAgZGlzcGxheTogJ2ZsZXgnLFxuICAgIGZsZXhEaXJlY3Rpb246ICdjb2x1bW4nLFxuICAgIGFsaWduSXRlbXM6ICdjZW50ZXInLFxuICAgIGp1c3RpZnlDb250ZW50OiAnY2VudGVyJyxcbiAgfSxcbiAgZGVzYzoge1xuICAgIGxpbmVIZWlnaHQ6ICc0OHB4JyxcbiAgfSxcbiAgaDE6IHtcbiAgICBkaXNwbGF5OiAnaW5saW5lLWJsb2NrJyxcbiAgICBtYXJnaW46ICcwIDIwcHggMCAwJyxcbiAgICBwYWRkaW5nUmlnaHQ6IDIzLFxuICAgIGZvbnRTaXplOiAyNCxcbiAgICBmb250V2VpZ2h0OiA1MDAsXG4gICAgdmVydGljYWxBbGlnbjogJ3RvcCcsXG4gIH0sXG4gIGgyOiB7XG4gICAgZm9udFNpemU6IDE0LFxuICAgIGZvbnRXZWlnaHQ6IDQwMCxcbiAgICBsaW5lSGVpZ2h0OiAnMjhweCcsXG4gIH0sXG4gIHdyYXA6IHtcbiAgICBkaXNwbGF5OiAnaW5saW5lLWJsb2NrJyxcbiAgfSxcbn1cblxuLyoqXG4gKiBgRXJyb3JgIGNvbXBvbmVudCB1c2VkIGZvciBoYW5kbGluZyBlcnJvcnMuXG4gKi9cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIEVycm9yPFAgPSB7fT4gZXh0ZW5kcyBSZWFjdC5Db21wb25lbnQ8UCAmIEVycm9yUHJvcHM+IHtcbiAgc3RhdGljIGRpc3BsYXlOYW1lID0gJ0Vycm9yUGFnZSdcblxuICBzdGF0aWMgZ2V0SW5pdGlhbFByb3BzID0gX2dldEluaXRpYWxQcm9wc1xuICBzdGF0aWMgb3JpZ0dldEluaXRpYWxQcm9wcyA9IF9nZXRJbml0aWFsUHJvcHNcblxuICByZW5kZXIoKSB7XG4gICAgY29uc3QgeyBzdGF0dXNDb2RlLCB3aXRoRGFya01vZGUgPSB0cnVlIH0gPSB0aGlzLnByb3BzXG4gICAgY29uc3QgdGl0bGUgPVxuICAgICAgdGhpcy5wcm9wcy50aXRsZSB8fFxuICAgICAgc3RhdHVzQ29kZXNbc3RhdHVzQ29kZV0gfHxcbiAgICAgICdBbiB1bmV4cGVjdGVkIGVycm9yIGhhcyBvY2N1cnJlZCdcblxuICAgIHJldHVybiAoXG4gICAgICA8ZGl2IHN0eWxlPXtzdHlsZXMuZXJyb3J9PlxuICAgICAgICA8SGVhZD5cbiAgICAgICAgICA8dGl0bGU+XG4gICAgICAgICAgICB7c3RhdHVzQ29kZVxuICAgICAgICAgICAgICA/IGAke3N0YXR1c0NvZGV9OiAke3RpdGxlfWBcbiAgICAgICAgICAgICAgOiAnQXBwbGljYXRpb24gZXJyb3I6IGEgY2xpZW50LXNpZGUgZXhjZXB0aW9uIGhhcyBvY2N1cnJlZCd9XG4gICAgICAgICAgPC90aXRsZT5cbiAgICAgICAgPC9IZWFkPlxuICAgICAgICA8ZGl2IHN0eWxlPXtzdHlsZXMuZGVzY30+XG4gICAgICAgICAgPHN0eWxlXG4gICAgICAgICAgICBkYW5nZXJvdXNseVNldElubmVySFRNTD17e1xuICAgICAgICAgICAgICAvKiBDU1MgbWluaWZpZWQgZnJvbVxuICAgICAgICAgICAgICAgIGJvZHkgeyBtYXJnaW46IDA7IGNvbG9yOiAjMDAwOyBiYWNrZ3JvdW5kOiAjZmZmOyB9XG4gICAgICAgICAgICAgICAgLm5leHQtZXJyb3ItaDEge1xuICAgICAgICAgICAgICAgICAgYm9yZGVyLXJpZ2h0OiAxcHggc29saWQgcmdiYSgwLCAwLCAwLCAuMyk7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJHtcbiAgICAgICAgICAgICAgICAgIHdpdGhEYXJrTW9kZVxuICAgICAgICAgICAgICAgICAgICA/IGBAbWVkaWEgKHByZWZlcnMtY29sb3Itc2NoZW1lOiBkYXJrKSB7XG4gICAgICAgICAgICAgICAgICBib2R5IHsgY29sb3I6ICNmZmY7IGJhY2tncm91bmQ6ICMwMDA7IH1cbiAgICAgICAgICAgICAgICAgIC5uZXh0LWVycm9yLWgxIHtcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyLXJpZ2h0OiAxcHggc29saWQgcmdiYSgyNTUsIDI1NSwgMjU1LCAuMyk7XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfWBcbiAgICAgICAgICAgICAgICAgICAgOiAnJ1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICovXG4gICAgICAgICAgICAgIF9faHRtbDogYGJvZHl7Y29sb3I6IzAwMDtiYWNrZ3JvdW5kOiNmZmY7bWFyZ2luOjB9Lm5leHQtZXJyb3ItaDF7Ym9yZGVyLXJpZ2h0OjFweCBzb2xpZCByZ2JhKDAsMCwwLC4zKX0ke1xuICAgICAgICAgICAgICAgIHdpdGhEYXJrTW9kZVxuICAgICAgICAgICAgICAgICAgPyAnQG1lZGlhIChwcmVmZXJzLWNvbG9yLXNjaGVtZTpkYXJrKXtib2R5e2NvbG9yOiNmZmY7YmFja2dyb3VuZDojMDAwfS5uZXh0LWVycm9yLWgxe2JvcmRlci1yaWdodDoxcHggc29saWQgcmdiYSgyNTUsMjU1LDI1NSwuMyl9fSdcbiAgICAgICAgICAgICAgICAgIDogJydcbiAgICAgICAgICAgICAgfWAsXG4gICAgICAgICAgICB9fVxuICAgICAgICAgIC8+XG5cbiAgICAgICAgICB7c3RhdHVzQ29kZSA/IChcbiAgICAgICAgICAgIDxoMSBjbGFzc05hbWU9XCJuZXh0LWVycm9yLWgxXCIgc3R5bGU9e3N0eWxlcy5oMX0+XG4gICAgICAgICAgICAgIHtzdGF0dXNDb2RlfVxuICAgICAgICAgICAgPC9oMT5cbiAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICA8ZGl2IHN0eWxlPXtzdHlsZXMud3JhcH0+XG4gICAgICAgICAgICA8aDIgc3R5bGU9e3N0eWxlcy5oMn0+XG4gICAgICAgICAgICAgIHt0aGlzLnByb3BzLnRpdGxlIHx8IHN0YXR1c0NvZGUgPyAoXG4gICAgICAgICAgICAgICAgdGl0bGVcbiAgICAgICAgICAgICAgKSA6IChcbiAgICAgICAgICAgICAgICA8PlxuICAgICAgICAgICAgICAgICAgQXBwbGljYXRpb24gZXJyb3I6IGEgY2xpZW50LXNpZGUgZXhjZXB0aW9uIGhhcyBvY2N1cnJlZHsnICd9XG4gICAgICAgICAgICAgICAgICB7Qm9vbGVhbih0aGlzLnByb3BzLmhvc3RuYW1lKSAmJiAoXG4gICAgICAgICAgICAgICAgICAgIDw+d2hpbGUgbG9hZGluZyB7dGhpcy5wcm9wcy5ob3N0bmFtZX08Lz5cbiAgICAgICAgICAgICAgICAgICl9eycgJ31cbiAgICAgICAgICAgICAgICAgIChzZWUgdGhlIGJyb3dzZXIgY29uc29sZSBmb3IgbW9yZSBpbmZvcm1hdGlvbilcbiAgICAgICAgICAgICAgICA8Lz5cbiAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgICAgLlxuICAgICAgICAgICAgPC9oMj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICApXG4gIH1cbn1cbiJdLCJuYW1lcyI6WyJFcnJvciIsInN0YXR1c0NvZGVzIiwiX2dldEluaXRpYWxQcm9wcyIsInJlcSIsInJlcyIsImVyciIsInN0YXR1c0NvZGUiLCJob3N0bmFtZSIsIndpbmRvdyIsImxvY2F0aW9uIiwiZ2V0UmVxdWVzdE1ldGEiLCJyZXF1aXJlIiwiaW5pdFVybCIsInVybCIsIlVSTCIsInN0eWxlcyIsImVycm9yIiwiZm9udEZhbWlseSIsImhlaWdodCIsInRleHRBbGlnbiIsImRpc3BsYXkiLCJmbGV4RGlyZWN0aW9uIiwiYWxpZ25JdGVtcyIsImp1c3RpZnlDb250ZW50IiwiZGVzYyIsImxpbmVIZWlnaHQiLCJoMSIsIm1hcmdpbiIsInBhZGRpbmdSaWdodCIsImZvbnRTaXplIiwiZm9udFdlaWdodCIsInZlcnRpY2FsQWxpZ24iLCJoMiIsIndyYXAiLCJSZWFjdCIsIkNvbXBvbmVudCIsInJlbmRlciIsIndpdGhEYXJrTW9kZSIsInByb3BzIiwidGl0bGUiLCJkaXYiLCJzdHlsZSIsIkhlYWQiLCJkYW5nZXJvdXNseVNldElubmVySFRNTCIsIl9faHRtbCIsImNsYXNzTmFtZSIsIkJvb2xlYW4iLCJkaXNwbGF5TmFtZSIsImdldEluaXRpYWxQcm9wcyIsIm9yaWdHZXRJbml0aWFsUHJvcHMiXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(pages-dir-node)/./node_modules/next/dist/pages/_error.js\n"); - -/***/ }), - -/***/ "(pages-dir-node)/./node_modules/next/dist/server/app-render/interop-default.js": -/*!*********************************************************************!*\ - !*** ./node_modules/next/dist/server/app-render/interop-default.js ***! - \*********************************************************************/ -/***/ ((__unused_webpack_module, exports) => { - -"use strict"; -eval("/**\n * Interop between \"export default\" and \"module.exports\".\n */ \nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"interopDefault\", ({\n enumerable: true,\n get: function() {\n return interopDefault;\n }\n}));\nfunction interopDefault(mod) {\n return mod.default || mod;\n}\n\n//# sourceMappingURL=interop-default.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1ub2RlKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3Qvc2VydmVyL2FwcC1yZW5kZXIvaW50ZXJvcC1kZWZhdWx0LmpzIiwibWFwcGluZ3MiOiJBQUFBO0FBQ0E7QUFDQSxJQUFpQjtBQUNqQiw4Q0FBNkM7QUFDN0M7QUFDQSxDQUFDLEVBQUM7QUFDRixrREFBaUQ7QUFDakQ7QUFDQTtBQUNBO0FBQ0E7QUFDQSxDQUFDLEVBQUM7QUFDRjtBQUNBO0FBQ0E7O0FBRUEiLCJzb3VyY2VzIjpbIkQ6XFxkb25neXVuLXByb2plY3RzXFx0d29cXG5vZGVfbW9kdWxlc1xcbmV4dFxcZGlzdFxcc2VydmVyXFxhcHAtcmVuZGVyXFxpbnRlcm9wLWRlZmF1bHQuanMiXSwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBJbnRlcm9wIGJldHdlZW4gXCJleHBvcnQgZGVmYXVsdFwiIGFuZCBcIm1vZHVsZS5leHBvcnRzXCIuXG4gKi8gXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHtcbiAgICB2YWx1ZTogdHJ1ZVxufSk7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJpbnRlcm9wRGVmYXVsdFwiLCB7XG4gICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICBnZXQ6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gaW50ZXJvcERlZmF1bHQ7XG4gICAgfVxufSk7XG5mdW5jdGlvbiBpbnRlcm9wRGVmYXVsdChtb2QpIHtcbiAgICByZXR1cm4gbW9kLmRlZmF1bHQgfHwgbW9kO1xufVxuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1pbnRlcm9wLWRlZmF1bHQuanMubWFwIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(pages-dir-node)/./node_modules/next/dist/server/app-render/interop-default.js\n"); - -/***/ }), - -/***/ "(pages-dir-node)/./node_modules/next/dist/server/base-http/helpers.js": -/*!************************************************************!*\ - !*** ./node_modules/next/dist/server/base-http/helpers.js ***! - \************************************************************/ -/***/ ((__unused_webpack_module, exports) => { - -"use strict"; -eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n isNodeNextRequest: function() {\n return isNodeNextRequest;\n },\n isNodeNextResponse: function() {\n return isNodeNextResponse;\n },\n isWebNextRequest: function() {\n return isWebNextRequest;\n },\n isWebNextResponse: function() {\n return isWebNextResponse;\n }\n});\nconst isWebNextRequest = (req)=>\"nodejs\" === 'edge';\nconst isWebNextResponse = (res)=>\"nodejs\" === 'edge';\nconst isNodeNextRequest = (req)=>\"nodejs\" !== 'edge';\nconst isNodeNextResponse = (res)=>\"nodejs\" !== 'edge';\n\n//# sourceMappingURL=helpers.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1ub2RlKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3Qvc2VydmVyL2Jhc2UtaHR0cC9oZWxwZXJzLmpzIiwibWFwcGluZ3MiOiJBQUFhO0FBQ2IsOENBQTZDO0FBQzdDO0FBQ0EsQ0FBQyxFQUFDO0FBQ0YsTUFBTSxDQUtMO0FBQ0Q7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBLENBQUM7QUFDRCxnQ0FBZ0MsUUFBd0I7QUFDeEQsaUNBQWlDLFFBQXdCO0FBQ3pELGlDQUFpQyxRQUF3QjtBQUN6RCxrQ0FBa0MsUUFBd0I7O0FBRTFEIiwic291cmNlcyI6WyJEOlxcZG9uZ3l1bi1wcm9qZWN0c1xcdHdvXFxub2RlX21vZHVsZXNcXG5leHRcXGRpc3RcXHNlcnZlclxcYmFzZS1odHRwXFxoZWxwZXJzLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7XG4gICAgdmFsdWU6IHRydWVcbn0pO1xuMCAmJiAobW9kdWxlLmV4cG9ydHMgPSB7XG4gICAgaXNOb2RlTmV4dFJlcXVlc3Q6IG51bGwsXG4gICAgaXNOb2RlTmV4dFJlc3BvbnNlOiBudWxsLFxuICAgIGlzV2ViTmV4dFJlcXVlc3Q6IG51bGwsXG4gICAgaXNXZWJOZXh0UmVzcG9uc2U6IG51bGxcbn0pO1xuZnVuY3Rpb24gX2V4cG9ydCh0YXJnZXQsIGFsbCkge1xuICAgIGZvcih2YXIgbmFtZSBpbiBhbGwpT2JqZWN0LmRlZmluZVByb3BlcnR5KHRhcmdldCwgbmFtZSwge1xuICAgICAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgICAgICBnZXQ6IGFsbFtuYW1lXVxuICAgIH0pO1xufVxuX2V4cG9ydChleHBvcnRzLCB7XG4gICAgaXNOb2RlTmV4dFJlcXVlc3Q6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gaXNOb2RlTmV4dFJlcXVlc3Q7XG4gICAgfSxcbiAgICBpc05vZGVOZXh0UmVzcG9uc2U6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gaXNOb2RlTmV4dFJlc3BvbnNlO1xuICAgIH0sXG4gICAgaXNXZWJOZXh0UmVxdWVzdDogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBpc1dlYk5leHRSZXF1ZXN0O1xuICAgIH0sXG4gICAgaXNXZWJOZXh0UmVzcG9uc2U6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gaXNXZWJOZXh0UmVzcG9uc2U7XG4gICAgfVxufSk7XG5jb25zdCBpc1dlYk5leHRSZXF1ZXN0ID0gKHJlcSk9PnByb2Nlc3MuZW52Lk5FWFRfUlVOVElNRSA9PT0gJ2VkZ2UnO1xuY29uc3QgaXNXZWJOZXh0UmVzcG9uc2UgPSAocmVzKT0+cHJvY2Vzcy5lbnYuTkVYVF9SVU5USU1FID09PSAnZWRnZSc7XG5jb25zdCBpc05vZGVOZXh0UmVxdWVzdCA9IChyZXEpPT5wcm9jZXNzLmVudi5ORVhUX1JVTlRJTUUgIT09ICdlZGdlJztcbmNvbnN0IGlzTm9kZU5leHRSZXNwb25zZSA9IChyZXMpPT5wcm9jZXNzLmVudi5ORVhUX1JVTlRJTUUgIT09ICdlZGdlJztcblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9aGVscGVycy5qcy5tYXAiXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(pages-dir-node)/./node_modules/next/dist/server/base-http/helpers.js\n"); - -/***/ }), - -/***/ "(pages-dir-node)/./node_modules/next/dist/server/client-component-renderer-logger.js": -/*!***************************************************************************!*\ - !*** ./node_modules/next/dist/server/client-component-renderer-logger.js ***! - \***************************************************************************/ -/***/ ((__unused_webpack_module, exports) => { - -"use strict"; -eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n getClientComponentLoaderMetrics: function() {\n return getClientComponentLoaderMetrics;\n },\n wrapClientComponentLoader: function() {\n return wrapClientComponentLoader;\n }\n});\n// Combined load times for loading client components\nlet clientComponentLoadStart = 0;\nlet clientComponentLoadTimes = 0;\nlet clientComponentLoadCount = 0;\nfunction wrapClientComponentLoader(ComponentMod) {\n if (!('performance' in globalThis)) {\n return ComponentMod.__next_app__;\n }\n return {\n require: (...args)=>{\n const startTime = performance.now();\n if (clientComponentLoadStart === 0) {\n clientComponentLoadStart = startTime;\n }\n try {\n clientComponentLoadCount += 1;\n return ComponentMod.__next_app__.require(...args);\n } finally{\n clientComponentLoadTimes += performance.now() - startTime;\n }\n },\n loadChunk: (...args)=>{\n const startTime = performance.now();\n const result = ComponentMod.__next_app__.loadChunk(...args);\n // Avoid wrapping `loadChunk`'s result in an extra promise in case something like React depends on its identity.\n // We only need to know when it's settled.\n result.finally(()=>{\n clientComponentLoadTimes += performance.now() - startTime;\n });\n return result;\n }\n };\n}\nfunction getClientComponentLoaderMetrics(options = {}) {\n const metrics = clientComponentLoadStart === 0 ? undefined : {\n clientComponentLoadStart,\n clientComponentLoadTimes,\n clientComponentLoadCount\n };\n if (options.reset) {\n clientComponentLoadStart = 0;\n clientComponentLoadTimes = 0;\n clientComponentLoadCount = 0;\n }\n return metrics;\n}\n\n//# sourceMappingURL=client-component-renderer-logger.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1ub2RlKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3Qvc2VydmVyL2NsaWVudC1jb21wb25lbnQtcmVuZGVyZXItbG9nZ2VyLmpzIiwibWFwcGluZ3MiOiJBQUFhO0FBQ2IsOENBQTZDO0FBQzdDO0FBQ0EsQ0FBQyxFQUFDO0FBQ0YsTUFBTSxDQUdMO0FBQ0Q7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0EsQ0FBQztBQUNEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxjQUFjO0FBQ2Q7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGFBQWE7QUFDYjtBQUNBO0FBQ0E7QUFDQTtBQUNBLHFEQUFxRDtBQUNyRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUEiLCJzb3VyY2VzIjpbIkQ6XFxkb25neXVuLXByb2plY3RzXFx0d29cXG5vZGVfbW9kdWxlc1xcbmV4dFxcZGlzdFxcc2VydmVyXFxjbGllbnQtY29tcG9uZW50LXJlbmRlcmVyLWxvZ2dlci5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwge1xuICAgIHZhbHVlOiB0cnVlXG59KTtcbjAgJiYgKG1vZHVsZS5leHBvcnRzID0ge1xuICAgIGdldENsaWVudENvbXBvbmVudExvYWRlck1ldHJpY3M6IG51bGwsXG4gICAgd3JhcENsaWVudENvbXBvbmVudExvYWRlcjogbnVsbFxufSk7XG5mdW5jdGlvbiBfZXhwb3J0KHRhcmdldCwgYWxsKSB7XG4gICAgZm9yKHZhciBuYW1lIGluIGFsbClPYmplY3QuZGVmaW5lUHJvcGVydHkodGFyZ2V0LCBuYW1lLCB7XG4gICAgICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgICAgIGdldDogYWxsW25hbWVdXG4gICAgfSk7XG59XG5fZXhwb3J0KGV4cG9ydHMsIHtcbiAgICBnZXRDbGllbnRDb21wb25lbnRMb2FkZXJNZXRyaWNzOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIGdldENsaWVudENvbXBvbmVudExvYWRlck1ldHJpY3M7XG4gICAgfSxcbiAgICB3cmFwQ2xpZW50Q29tcG9uZW50TG9hZGVyOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIHdyYXBDbGllbnRDb21wb25lbnRMb2FkZXI7XG4gICAgfVxufSk7XG4vLyBDb21iaW5lZCBsb2FkIHRpbWVzIGZvciBsb2FkaW5nIGNsaWVudCBjb21wb25lbnRzXG5sZXQgY2xpZW50Q29tcG9uZW50TG9hZFN0YXJ0ID0gMDtcbmxldCBjbGllbnRDb21wb25lbnRMb2FkVGltZXMgPSAwO1xubGV0IGNsaWVudENvbXBvbmVudExvYWRDb3VudCA9IDA7XG5mdW5jdGlvbiB3cmFwQ2xpZW50Q29tcG9uZW50TG9hZGVyKENvbXBvbmVudE1vZCkge1xuICAgIGlmICghKCdwZXJmb3JtYW5jZScgaW4gZ2xvYmFsVGhpcykpIHtcbiAgICAgICAgcmV0dXJuIENvbXBvbmVudE1vZC5fX25leHRfYXBwX187XG4gICAgfVxuICAgIHJldHVybiB7XG4gICAgICAgIHJlcXVpcmU6ICguLi5hcmdzKT0+e1xuICAgICAgICAgICAgY29uc3Qgc3RhcnRUaW1lID0gcGVyZm9ybWFuY2Uubm93KCk7XG4gICAgICAgICAgICBpZiAoY2xpZW50Q29tcG9uZW50TG9hZFN0YXJ0ID09PSAwKSB7XG4gICAgICAgICAgICAgICAgY2xpZW50Q29tcG9uZW50TG9hZFN0YXJ0ID0gc3RhcnRUaW1lO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICBjbGllbnRDb21wb25lbnRMb2FkQ291bnQgKz0gMTtcbiAgICAgICAgICAgICAgICByZXR1cm4gQ29tcG9uZW50TW9kLl9fbmV4dF9hcHBfXy5yZXF1aXJlKC4uLmFyZ3MpO1xuICAgICAgICAgICAgfSBmaW5hbGx5e1xuICAgICAgICAgICAgICAgIGNsaWVudENvbXBvbmVudExvYWRUaW1lcyArPSBwZXJmb3JtYW5jZS5ub3coKSAtIHN0YXJ0VGltZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgbG9hZENodW5rOiAoLi4uYXJncyk9PntcbiAgICAgICAgICAgIGNvbnN0IHN0YXJ0VGltZSA9IHBlcmZvcm1hbmNlLm5vdygpO1xuICAgICAgICAgICAgY29uc3QgcmVzdWx0ID0gQ29tcG9uZW50TW9kLl9fbmV4dF9hcHBfXy5sb2FkQ2h1bmsoLi4uYXJncyk7XG4gICAgICAgICAgICAvLyBBdm9pZCB3cmFwcGluZyBgbG9hZENodW5rYCdzIHJlc3VsdCBpbiBhbiBleHRyYSBwcm9taXNlIGluIGNhc2Ugc29tZXRoaW5nIGxpa2UgUmVhY3QgZGVwZW5kcyBvbiBpdHMgaWRlbnRpdHkuXG4gICAgICAgICAgICAvLyBXZSBvbmx5IG5lZWQgdG8ga25vdyB3aGVuIGl0J3Mgc2V0dGxlZC5cbiAgICAgICAgICAgIHJlc3VsdC5maW5hbGx5KCgpPT57XG4gICAgICAgICAgICAgICAgY2xpZW50Q29tcG9uZW50TG9hZFRpbWVzICs9IHBlcmZvcm1hbmNlLm5vdygpIC0gc3RhcnRUaW1lO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgICAgICB9XG4gICAgfTtcbn1cbmZ1bmN0aW9uIGdldENsaWVudENvbXBvbmVudExvYWRlck1ldHJpY3Mob3B0aW9ucyA9IHt9KSB7XG4gICAgY29uc3QgbWV0cmljcyA9IGNsaWVudENvbXBvbmVudExvYWRTdGFydCA9PT0gMCA/IHVuZGVmaW5lZCA6IHtcbiAgICAgICAgY2xpZW50Q29tcG9uZW50TG9hZFN0YXJ0LFxuICAgICAgICBjbGllbnRDb21wb25lbnRMb2FkVGltZXMsXG4gICAgICAgIGNsaWVudENvbXBvbmVudExvYWRDb3VudFxuICAgIH07XG4gICAgaWYgKG9wdGlvbnMucmVzZXQpIHtcbiAgICAgICAgY2xpZW50Q29tcG9uZW50TG9hZFN0YXJ0ID0gMDtcbiAgICAgICAgY2xpZW50Q29tcG9uZW50TG9hZFRpbWVzID0gMDtcbiAgICAgICAgY2xpZW50Q29tcG9uZW50TG9hZENvdW50ID0gMDtcbiAgICB9XG4gICAgcmV0dXJuIG1ldHJpY3M7XG59XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWNsaWVudC1jb21wb25lbnQtcmVuZGVyZXItbG9nZ2VyLmpzLm1hcCJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(pages-dir-node)/./node_modules/next/dist/server/client-component-renderer-logger.js\n"); - -/***/ }), - -/***/ "(pages-dir-node)/./node_modules/next/dist/server/get-page-files.js": -/*!*********************************************************!*\ - !*** ./node_modules/next/dist/server/get-page-files.js ***! - \*********************************************************/ -/***/ ((__unused_webpack_module, exports, __webpack_require__) => { - -"use strict"; -eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"getPageFiles\", ({\n enumerable: true,\n get: function() {\n return getPageFiles;\n }\n}));\nconst _denormalizepagepath = __webpack_require__(/*! ../shared/lib/page-path/denormalize-page-path */ \"(pages-dir-node)/./node_modules/next/dist/shared/lib/page-path/denormalize-page-path.js\");\nconst _normalizepagepath = __webpack_require__(/*! ../shared/lib/page-path/normalize-page-path */ \"(pages-dir-node)/./node_modules/next/dist/shared/lib/page-path/normalize-page-path.js\");\nfunction getPageFiles(buildManifest, page) {\n const normalizedPage = (0, _denormalizepagepath.denormalizePagePath)((0, _normalizepagepath.normalizePagePath)(page));\n let files = buildManifest.pages[normalizedPage];\n if (!files) {\n console.warn(`Could not find files for ${normalizedPage} in .next/build-manifest.json`);\n return [];\n }\n return files;\n}\n\n//# sourceMappingURL=get-page-files.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1ub2RlKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3Qvc2VydmVyL2dldC1wYWdlLWZpbGVzLmpzIiwibWFwcGluZ3MiOiJBQUFhO0FBQ2IsOENBQTZDO0FBQzdDO0FBQ0EsQ0FBQyxFQUFDO0FBQ0YsZ0RBQStDO0FBQy9DO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsQ0FBQyxFQUFDO0FBQ0YsNkJBQTZCLG1CQUFPLENBQUMsOElBQStDO0FBQ3BGLDJCQUEyQixtQkFBTyxDQUFDLDBJQUE2QztBQUNoRjtBQUNBO0FBQ0E7QUFDQTtBQUNBLGlEQUFpRCxnQkFBZ0I7QUFDakU7QUFDQTtBQUNBO0FBQ0E7O0FBRUEiLCJzb3VyY2VzIjpbIkQ6XFxkb25neXVuLXByb2plY3RzXFx0d29cXG5vZGVfbW9kdWxlc1xcbmV4dFxcZGlzdFxcc2VydmVyXFxnZXQtcGFnZS1maWxlcy5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwge1xuICAgIHZhbHVlOiB0cnVlXG59KTtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcImdldFBhZ2VGaWxlc1wiLCB7XG4gICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICBnZXQ6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gZ2V0UGFnZUZpbGVzO1xuICAgIH1cbn0pO1xuY29uc3QgX2Rlbm9ybWFsaXplcGFnZXBhdGggPSByZXF1aXJlKFwiLi4vc2hhcmVkL2xpYi9wYWdlLXBhdGgvZGVub3JtYWxpemUtcGFnZS1wYXRoXCIpO1xuY29uc3QgX25vcm1hbGl6ZXBhZ2VwYXRoID0gcmVxdWlyZShcIi4uL3NoYXJlZC9saWIvcGFnZS1wYXRoL25vcm1hbGl6ZS1wYWdlLXBhdGhcIik7XG5mdW5jdGlvbiBnZXRQYWdlRmlsZXMoYnVpbGRNYW5pZmVzdCwgcGFnZSkge1xuICAgIGNvbnN0IG5vcm1hbGl6ZWRQYWdlID0gKDAsIF9kZW5vcm1hbGl6ZXBhZ2VwYXRoLmRlbm9ybWFsaXplUGFnZVBhdGgpKCgwLCBfbm9ybWFsaXplcGFnZXBhdGgubm9ybWFsaXplUGFnZVBhdGgpKHBhZ2UpKTtcbiAgICBsZXQgZmlsZXMgPSBidWlsZE1hbmlmZXN0LnBhZ2VzW25vcm1hbGl6ZWRQYWdlXTtcbiAgICBpZiAoIWZpbGVzKSB7XG4gICAgICAgIGNvbnNvbGUud2FybihgQ291bGQgbm90IGZpbmQgZmlsZXMgZm9yICR7bm9ybWFsaXplZFBhZ2V9IGluIC5uZXh0L2J1aWxkLW1hbmlmZXN0Lmpzb25gKTtcbiAgICAgICAgcmV0dXJuIFtdO1xuICAgIH1cbiAgICByZXR1cm4gZmlsZXM7XG59XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWdldC1wYWdlLWZpbGVzLmpzLm1hcCJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(pages-dir-node)/./node_modules/next/dist/server/get-page-files.js\n"); - -/***/ }), - -/***/ "(pages-dir-node)/./node_modules/next/dist/server/htmlescape.js": -/*!*****************************************************!*\ - !*** ./node_modules/next/dist/server/htmlescape.js ***! - \*****************************************************/ -/***/ ((__unused_webpack_module, exports) => { - -"use strict"; -eval("// This utility is based on https://github.com/zertosh/htmlescape\n// License: https://github.com/zertosh/htmlescape/blob/0527ca7156a524d256101bb310a9f970f63078ad/LICENSE\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n ESCAPE_REGEX: function() {\n return ESCAPE_REGEX;\n },\n htmlEscapeJsonString: function() {\n return htmlEscapeJsonString;\n }\n});\nconst ESCAPE_LOOKUP = {\n '&': '\\\\u0026',\n '>': '\\\\u003e',\n '<': '\\\\u003c',\n '\\u2028': '\\\\u2028',\n '\\u2029': '\\\\u2029'\n};\nconst ESCAPE_REGEX = /[&><\\u2028\\u2029]/g;\nfunction htmlEscapeJsonString(str) {\n return str.replace(ESCAPE_REGEX, (match)=>ESCAPE_LOOKUP[match]);\n}\n\n//# sourceMappingURL=htmlescape.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1ub2RlKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3Qvc2VydmVyL2h0bWxlc2NhcGUuanMiLCJtYXBwaW5ncyI6IkFBQUE7QUFDQTtBQUNhO0FBQ2IsOENBQTZDO0FBQzdDO0FBQ0EsQ0FBQyxFQUFDO0FBQ0YsTUFBTSxDQUdMO0FBQ0Q7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0EsQ0FBQztBQUNEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUEiLCJzb3VyY2VzIjpbIkQ6XFxkb25neXVuLXByb2plY3RzXFx0d29cXG5vZGVfbW9kdWxlc1xcbmV4dFxcZGlzdFxcc2VydmVyXFxodG1sZXNjYXBlLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIi8vIFRoaXMgdXRpbGl0eSBpcyBiYXNlZCBvbiBodHRwczovL2dpdGh1Yi5jb20vemVydG9zaC9odG1sZXNjYXBlXG4vLyBMaWNlbnNlOiBodHRwczovL2dpdGh1Yi5jb20vemVydG9zaC9odG1sZXNjYXBlL2Jsb2IvMDUyN2NhNzE1NmE1MjRkMjU2MTAxYmIzMTBhOWY5NzBmNjMwNzhhZC9MSUNFTlNFXG5cInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwge1xuICAgIHZhbHVlOiB0cnVlXG59KTtcbjAgJiYgKG1vZHVsZS5leHBvcnRzID0ge1xuICAgIEVTQ0FQRV9SRUdFWDogbnVsbCxcbiAgICBodG1sRXNjYXBlSnNvblN0cmluZzogbnVsbFxufSk7XG5mdW5jdGlvbiBfZXhwb3J0KHRhcmdldCwgYWxsKSB7XG4gICAgZm9yKHZhciBuYW1lIGluIGFsbClPYmplY3QuZGVmaW5lUHJvcGVydHkodGFyZ2V0LCBuYW1lLCB7XG4gICAgICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgICAgIGdldDogYWxsW25hbWVdXG4gICAgfSk7XG59XG5fZXhwb3J0KGV4cG9ydHMsIHtcbiAgICBFU0NBUEVfUkVHRVg6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gRVNDQVBFX1JFR0VYO1xuICAgIH0sXG4gICAgaHRtbEVzY2FwZUpzb25TdHJpbmc6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gaHRtbEVzY2FwZUpzb25TdHJpbmc7XG4gICAgfVxufSk7XG5jb25zdCBFU0NBUEVfTE9PS1VQID0ge1xuICAgICcmJzogJ1xcXFx1MDAyNicsXG4gICAgJz4nOiAnXFxcXHUwMDNlJyxcbiAgICAnPCc6ICdcXFxcdTAwM2MnLFxuICAgICdcXHUyMDI4JzogJ1xcXFx1MjAyOCcsXG4gICAgJ1xcdTIwMjknOiAnXFxcXHUyMDI5J1xufTtcbmNvbnN0IEVTQ0FQRV9SRUdFWCA9IC9bJj48XFx1MjAyOFxcdTIwMjldL2c7XG5mdW5jdGlvbiBodG1sRXNjYXBlSnNvblN0cmluZyhzdHIpIHtcbiAgICByZXR1cm4gc3RyLnJlcGxhY2UoRVNDQVBFX1JFR0VYLCAobWF0Y2gpPT5FU0NBUEVfTE9PS1VQW21hdGNoXSk7XG59XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWh0bWxlc2NhcGUuanMubWFwIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(pages-dir-node)/./node_modules/next/dist/server/htmlescape.js\n"); - -/***/ }), - -/***/ "(pages-dir-node)/./node_modules/next/dist/server/instrumentation/utils.js": -/*!****************************************************************!*\ - !*** ./node_modules/next/dist/server/instrumentation/utils.js ***! - \****************************************************************/ -/***/ ((__unused_webpack_module, exports) => { - -"use strict"; -eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"getRevalidateReason\", ({\n enumerable: true,\n get: function() {\n return getRevalidateReason;\n }\n}));\nfunction getRevalidateReason(params) {\n if (params.isOnDemandRevalidate) {\n return 'on-demand';\n }\n if (params.isRevalidate) {\n return 'stale';\n }\n return undefined;\n}\n\n//# sourceMappingURL=utils.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1ub2RlKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3Qvc2VydmVyL2luc3RydW1lbnRhdGlvbi91dGlscy5qcyIsIm1hcHBpbmdzIjoiQUFBYTtBQUNiLDhDQUE2QztBQUM3QztBQUNBLENBQUMsRUFBQztBQUNGLHVEQUFzRDtBQUN0RDtBQUNBO0FBQ0E7QUFDQTtBQUNBLENBQUMsRUFBQztBQUNGO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQSIsInNvdXJjZXMiOlsiRDpcXGRvbmd5dW4tcHJvamVjdHNcXHR3b1xcbm9kZV9tb2R1bGVzXFxuZXh0XFxkaXN0XFxzZXJ2ZXJcXGluc3RydW1lbnRhdGlvblxcdXRpbHMuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHtcbiAgICB2YWx1ZTogdHJ1ZVxufSk7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJnZXRSZXZhbGlkYXRlUmVhc29uXCIsIHtcbiAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgIGdldDogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBnZXRSZXZhbGlkYXRlUmVhc29uO1xuICAgIH1cbn0pO1xuZnVuY3Rpb24gZ2V0UmV2YWxpZGF0ZVJlYXNvbihwYXJhbXMpIHtcbiAgICBpZiAocGFyYW1zLmlzT25EZW1hbmRSZXZhbGlkYXRlKSB7XG4gICAgICAgIHJldHVybiAnb24tZGVtYW5kJztcbiAgICB9XG4gICAgaWYgKHBhcmFtcy5pc1JldmFsaWRhdGUpIHtcbiAgICAgICAgcmV0dXJuICdzdGFsZSc7XG4gICAgfVxuICAgIHJldHVybiB1bmRlZmluZWQ7XG59XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPXV0aWxzLmpzLm1hcCJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(pages-dir-node)/./node_modules/next/dist/server/instrumentation/utils.js\n"); - -/***/ }), - -/***/ "(pages-dir-node)/./node_modules/next/dist/server/lib/cache-control.js": -/*!************************************************************!*\ - !*** ./node_modules/next/dist/server/lib/cache-control.js ***! - \************************************************************/ -/***/ ((__unused_webpack_module, exports, __webpack_require__) => { - -"use strict"; -eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"getCacheControlHeader\", ({\n enumerable: true,\n get: function() {\n return getCacheControlHeader;\n }\n}));\nconst _constants = __webpack_require__(/*! ../../lib/constants */ \"(pages-dir-node)/./node_modules/next/dist/lib/constants.js\");\nfunction getCacheControlHeader({ revalidate, expire }) {\n const swrHeader = typeof revalidate === 'number' && expire !== undefined && revalidate < expire ? `, stale-while-revalidate=${expire - revalidate}` : '';\n if (revalidate === 0) {\n return 'private, no-cache, no-store, max-age=0, must-revalidate';\n } else if (typeof revalidate === 'number') {\n return `s-maxage=${revalidate}${swrHeader}`;\n }\n return `s-maxage=${_constants.CACHE_ONE_YEAR}${swrHeader}`;\n}\n\n//# sourceMappingURL=cache-control.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1ub2RlKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3Qvc2VydmVyL2xpYi9jYWNoZS1jb250cm9sLmpzIiwibWFwcGluZ3MiOiJBQUFhO0FBQ2IsOENBQTZDO0FBQzdDO0FBQ0EsQ0FBQyxFQUFDO0FBQ0YseURBQXdEO0FBQ3hEO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsQ0FBQyxFQUFDO0FBQ0YsbUJBQW1CLG1CQUFPLENBQUMsdUZBQXFCO0FBQ2hELGlDQUFpQyxvQkFBb0I7QUFDckQsa0lBQWtJLG9CQUFvQjtBQUN0SjtBQUNBO0FBQ0EsTUFBTTtBQUNOLDJCQUEyQixXQUFXLEVBQUUsVUFBVTtBQUNsRDtBQUNBLHVCQUF1QiwwQkFBMEIsRUFBRSxVQUFVO0FBQzdEOztBQUVBIiwic291cmNlcyI6WyJEOlxcZG9uZ3l1bi1wcm9qZWN0c1xcdHdvXFxub2RlX21vZHVsZXNcXG5leHRcXGRpc3RcXHNlcnZlclxcbGliXFxjYWNoZS1jb250cm9sLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7XG4gICAgdmFsdWU6IHRydWVcbn0pO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiZ2V0Q2FjaGVDb250cm9sSGVhZGVyXCIsIHtcbiAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgIGdldDogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBnZXRDYWNoZUNvbnRyb2xIZWFkZXI7XG4gICAgfVxufSk7XG5jb25zdCBfY29uc3RhbnRzID0gcmVxdWlyZShcIi4uLy4uL2xpYi9jb25zdGFudHNcIik7XG5mdW5jdGlvbiBnZXRDYWNoZUNvbnRyb2xIZWFkZXIoeyByZXZhbGlkYXRlLCBleHBpcmUgfSkge1xuICAgIGNvbnN0IHN3ckhlYWRlciA9IHR5cGVvZiByZXZhbGlkYXRlID09PSAnbnVtYmVyJyAmJiBleHBpcmUgIT09IHVuZGVmaW5lZCAmJiByZXZhbGlkYXRlIDwgZXhwaXJlID8gYCwgc3RhbGUtd2hpbGUtcmV2YWxpZGF0ZT0ke2V4cGlyZSAtIHJldmFsaWRhdGV9YCA6ICcnO1xuICAgIGlmIChyZXZhbGlkYXRlID09PSAwKSB7XG4gICAgICAgIHJldHVybiAncHJpdmF0ZSwgbm8tY2FjaGUsIG5vLXN0b3JlLCBtYXgtYWdlPTAsIG11c3QtcmV2YWxpZGF0ZSc7XG4gICAgfSBlbHNlIGlmICh0eXBlb2YgcmV2YWxpZGF0ZSA9PT0gJ251bWJlcicpIHtcbiAgICAgICAgcmV0dXJuIGBzLW1heGFnZT0ke3JldmFsaWRhdGV9JHtzd3JIZWFkZXJ9YDtcbiAgICB9XG4gICAgcmV0dXJuIGBzLW1heGFnZT0ke19jb25zdGFudHMuQ0FDSEVfT05FX1lFQVJ9JHtzd3JIZWFkZXJ9YDtcbn1cblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9Y2FjaGUtY29udHJvbC5qcy5tYXAiXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(pages-dir-node)/./node_modules/next/dist/server/lib/cache-control.js\n"); - -/***/ }), - -/***/ "(pages-dir-node)/./node_modules/next/dist/server/lib/etag.js": -/*!***************************************************!*\ - !*** ./node_modules/next/dist/server/lib/etag.js ***! - \***************************************************/ -/***/ ((__unused_webpack_module, exports) => { - -"use strict"; -eval("/**\n * FNV-1a Hash implementation\n * @author Travis Webb (tjwebb) <me@traviswebb.com>\n *\n * Ported from https://github.com/tjwebb/fnv-plus/blob/master/index.js\n *\n * Simplified, optimized and add modified for 52 bit, which provides a larger hash space\n * and still making use of Javascript's 53-bit integer space.\n */ \nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n fnv1a52: function() {\n return fnv1a52;\n },\n generateETag: function() {\n return generateETag;\n }\n});\nconst fnv1a52 = (str)=>{\n const len = str.length;\n let i = 0, t0 = 0, v0 = 0x2325, t1 = 0, v1 = 0x8422, t2 = 0, v2 = 0x9ce4, t3 = 0, v3 = 0xcbf2;\n while(i < len){\n v0 ^= str.charCodeAt(i++);\n t0 = v0 * 435;\n t1 = v1 * 435;\n t2 = v2 * 435;\n t3 = v3 * 435;\n t2 += v0 << 8;\n t3 += v1 << 8;\n t1 += t0 >>> 16;\n v0 = t0 & 65535;\n t2 += t1 >>> 16;\n v1 = t1 & 65535;\n v3 = t3 + (t2 >>> 16) & 65535;\n v2 = t2 & 65535;\n }\n return (v3 & 15) * 281474976710656 + v2 * 4294967296 + v1 * 65536 + (v0 ^ v3 >> 4);\n};\nconst generateETag = (payload, weak = false)=>{\n const prefix = weak ? 'W/\"' : '\"';\n return prefix + fnv1a52(payload).toString(36) + payload.length.toString(36) + '\"';\n};\n\n//# sourceMappingURL=etag.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1ub2RlKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3Qvc2VydmVyL2xpYi9ldGFnLmpzIiwibWFwcGluZ3MiOiJBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxJQUFpQjtBQUNqQiw4Q0FBNkM7QUFDN0M7QUFDQSxDQUFDLEVBQUM7QUFDRixNQUFNLENBR0w7QUFDRDtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQSxDQUFDO0FBQ0Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBIiwic291cmNlcyI6WyJEOlxcZG9uZ3l1bi1wcm9qZWN0c1xcdHdvXFxub2RlX21vZHVsZXNcXG5leHRcXGRpc3RcXHNlcnZlclxcbGliXFxldGFnLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogRk5WLTFhIEhhc2ggaW1wbGVtZW50YXRpb25cbiAqIEBhdXRob3IgVHJhdmlzIFdlYmIgKHRqd2ViYikgPG1lQHRyYXZpc3dlYmIuY29tPlxuICpcbiAqIFBvcnRlZCBmcm9tIGh0dHBzOi8vZ2l0aHViLmNvbS90andlYmIvZm52LXBsdXMvYmxvYi9tYXN0ZXIvaW5kZXguanNcbiAqXG4gKiBTaW1wbGlmaWVkLCBvcHRpbWl6ZWQgYW5kIGFkZCBtb2RpZmllZCBmb3IgNTIgYml0LCB3aGljaCBwcm92aWRlcyBhIGxhcmdlciBoYXNoIHNwYWNlXG4gKiBhbmQgc3RpbGwgbWFraW5nIHVzZSBvZiBKYXZhc2NyaXB0J3MgNTMtYml0IGludGVnZXIgc3BhY2UuXG4gKi8gXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHtcbiAgICB2YWx1ZTogdHJ1ZVxufSk7XG4wICYmIChtb2R1bGUuZXhwb3J0cyA9IHtcbiAgICBmbnYxYTUyOiBudWxsLFxuICAgIGdlbmVyYXRlRVRhZzogbnVsbFxufSk7XG5mdW5jdGlvbiBfZXhwb3J0KHRhcmdldCwgYWxsKSB7XG4gICAgZm9yKHZhciBuYW1lIGluIGFsbClPYmplY3QuZGVmaW5lUHJvcGVydHkodGFyZ2V0LCBuYW1lLCB7XG4gICAgICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgICAgIGdldDogYWxsW25hbWVdXG4gICAgfSk7XG59XG5fZXhwb3J0KGV4cG9ydHMsIHtcbiAgICBmbnYxYTUyOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIGZudjFhNTI7XG4gICAgfSxcbiAgICBnZW5lcmF0ZUVUYWc6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gZ2VuZXJhdGVFVGFnO1xuICAgIH1cbn0pO1xuY29uc3QgZm52MWE1MiA9IChzdHIpPT57XG4gICAgY29uc3QgbGVuID0gc3RyLmxlbmd0aDtcbiAgICBsZXQgaSA9IDAsIHQwID0gMCwgdjAgPSAweDIzMjUsIHQxID0gMCwgdjEgPSAweDg0MjIsIHQyID0gMCwgdjIgPSAweDljZTQsIHQzID0gMCwgdjMgPSAweGNiZjI7XG4gICAgd2hpbGUoaSA8IGxlbil7XG4gICAgICAgIHYwIF49IHN0ci5jaGFyQ29kZUF0KGkrKyk7XG4gICAgICAgIHQwID0gdjAgKiA0MzU7XG4gICAgICAgIHQxID0gdjEgKiA0MzU7XG4gICAgICAgIHQyID0gdjIgKiA0MzU7XG4gICAgICAgIHQzID0gdjMgKiA0MzU7XG4gICAgICAgIHQyICs9IHYwIDw8IDg7XG4gICAgICAgIHQzICs9IHYxIDw8IDg7XG4gICAgICAgIHQxICs9IHQwID4+PiAxNjtcbiAgICAgICAgdjAgPSB0MCAmIDY1NTM1O1xuICAgICAgICB0MiArPSB0MSA+Pj4gMTY7XG4gICAgICAgIHYxID0gdDEgJiA2NTUzNTtcbiAgICAgICAgdjMgPSB0MyArICh0MiA+Pj4gMTYpICYgNjU1MzU7XG4gICAgICAgIHYyID0gdDIgJiA2NTUzNTtcbiAgICB9XG4gICAgcmV0dXJuICh2MyAmIDE1KSAqIDI4MTQ3NDk3NjcxMDY1NiArIHYyICogNDI5NDk2NzI5NiArIHYxICogNjU1MzYgKyAodjAgXiB2MyA+PiA0KTtcbn07XG5jb25zdCBnZW5lcmF0ZUVUYWcgPSAocGF5bG9hZCwgd2VhayA9IGZhbHNlKT0+e1xuICAgIGNvbnN0IHByZWZpeCA9IHdlYWsgPyAnVy9cIicgOiAnXCInO1xuICAgIHJldHVybiBwcmVmaXggKyBmbnYxYTUyKHBheWxvYWQpLnRvU3RyaW5nKDM2KSArIHBheWxvYWQubGVuZ3RoLnRvU3RyaW5nKDM2KSArICdcIic7XG59O1xuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1ldGFnLmpzLm1hcCJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(pages-dir-node)/./node_modules/next/dist/server/lib/etag.js\n"); - -/***/ }), - -/***/ "(pages-dir-node)/./node_modules/next/dist/server/lib/trace/constants.js": -/*!**************************************************************!*\ - !*** ./node_modules/next/dist/server/lib/trace/constants.js ***! - \**************************************************************/ -/***/ ((__unused_webpack_module, exports) => { - -"use strict"; -eval("/**\n * Contains predefined constants for the trace span name in next/server.\n *\n * Currently, next/server/tracer is internal implementation only for tracking\n * next.js's implementation only with known span names defined here.\n **/ // eslint typescript has a bug with TS enums\n/* eslint-disable no-shadow */ \nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n AppRenderSpan: function() {\n return AppRenderSpan;\n },\n AppRouteRouteHandlersSpan: function() {\n return AppRouteRouteHandlersSpan;\n },\n BaseServerSpan: function() {\n return BaseServerSpan;\n },\n LoadComponentsSpan: function() {\n return LoadComponentsSpan;\n },\n LogSpanAllowList: function() {\n return LogSpanAllowList;\n },\n MiddlewareSpan: function() {\n return MiddlewareSpan;\n },\n NextNodeServerSpan: function() {\n return NextNodeServerSpan;\n },\n NextServerSpan: function() {\n return NextServerSpan;\n },\n NextVanillaSpanAllowlist: function() {\n return NextVanillaSpanAllowlist;\n },\n NodeSpan: function() {\n return NodeSpan;\n },\n RenderSpan: function() {\n return RenderSpan;\n },\n ResolveMetadataSpan: function() {\n return ResolveMetadataSpan;\n },\n RouterSpan: function() {\n return RouterSpan;\n },\n StartServerSpan: function() {\n return StartServerSpan;\n }\n});\nvar BaseServerSpan = /*#__PURE__*/ function(BaseServerSpan) {\n BaseServerSpan[\"handleRequest\"] = \"BaseServer.handleRequest\";\n BaseServerSpan[\"run\"] = \"BaseServer.run\";\n BaseServerSpan[\"pipe\"] = \"BaseServer.pipe\";\n BaseServerSpan[\"getStaticHTML\"] = \"BaseServer.getStaticHTML\";\n BaseServerSpan[\"render\"] = \"BaseServer.render\";\n BaseServerSpan[\"renderToResponseWithComponents\"] = \"BaseServer.renderToResponseWithComponents\";\n BaseServerSpan[\"renderToResponse\"] = \"BaseServer.renderToResponse\";\n BaseServerSpan[\"renderToHTML\"] = \"BaseServer.renderToHTML\";\n BaseServerSpan[\"renderError\"] = \"BaseServer.renderError\";\n BaseServerSpan[\"renderErrorToResponse\"] = \"BaseServer.renderErrorToResponse\";\n BaseServerSpan[\"renderErrorToHTML\"] = \"BaseServer.renderErrorToHTML\";\n BaseServerSpan[\"render404\"] = \"BaseServer.render404\";\n return BaseServerSpan;\n}(BaseServerSpan || {});\nvar LoadComponentsSpan = /*#__PURE__*/ function(LoadComponentsSpan) {\n LoadComponentsSpan[\"loadDefaultErrorComponents\"] = \"LoadComponents.loadDefaultErrorComponents\";\n LoadComponentsSpan[\"loadComponents\"] = \"LoadComponents.loadComponents\";\n return LoadComponentsSpan;\n}(LoadComponentsSpan || {});\nvar NextServerSpan = /*#__PURE__*/ function(NextServerSpan) {\n NextServerSpan[\"getRequestHandler\"] = \"NextServer.getRequestHandler\";\n NextServerSpan[\"getServer\"] = \"NextServer.getServer\";\n NextServerSpan[\"getServerRequestHandler\"] = \"NextServer.getServerRequestHandler\";\n NextServerSpan[\"createServer\"] = \"createServer.createServer\";\n return NextServerSpan;\n}(NextServerSpan || {});\nvar NextNodeServerSpan = /*#__PURE__*/ function(NextNodeServerSpan) {\n NextNodeServerSpan[\"compression\"] = \"NextNodeServer.compression\";\n NextNodeServerSpan[\"getBuildId\"] = \"NextNodeServer.getBuildId\";\n NextNodeServerSpan[\"createComponentTree\"] = \"NextNodeServer.createComponentTree\";\n NextNodeServerSpan[\"clientComponentLoading\"] = \"NextNodeServer.clientComponentLoading\";\n NextNodeServerSpan[\"getLayoutOrPageModule\"] = \"NextNodeServer.getLayoutOrPageModule\";\n NextNodeServerSpan[\"generateStaticRoutes\"] = \"NextNodeServer.generateStaticRoutes\";\n NextNodeServerSpan[\"generateFsStaticRoutes\"] = \"NextNodeServer.generateFsStaticRoutes\";\n NextNodeServerSpan[\"generatePublicRoutes\"] = \"NextNodeServer.generatePublicRoutes\";\n NextNodeServerSpan[\"generateImageRoutes\"] = \"NextNodeServer.generateImageRoutes.route\";\n NextNodeServerSpan[\"sendRenderResult\"] = \"NextNodeServer.sendRenderResult\";\n NextNodeServerSpan[\"proxyRequest\"] = \"NextNodeServer.proxyRequest\";\n NextNodeServerSpan[\"runApi\"] = \"NextNodeServer.runApi\";\n NextNodeServerSpan[\"render\"] = \"NextNodeServer.render\";\n NextNodeServerSpan[\"renderHTML\"] = \"NextNodeServer.renderHTML\";\n NextNodeServerSpan[\"imageOptimizer\"] = \"NextNodeServer.imageOptimizer\";\n NextNodeServerSpan[\"getPagePath\"] = \"NextNodeServer.getPagePath\";\n NextNodeServerSpan[\"getRoutesManifest\"] = \"NextNodeServer.getRoutesManifest\";\n NextNodeServerSpan[\"findPageComponents\"] = \"NextNodeServer.findPageComponents\";\n NextNodeServerSpan[\"getFontManifest\"] = \"NextNodeServer.getFontManifest\";\n NextNodeServerSpan[\"getServerComponentManifest\"] = \"NextNodeServer.getServerComponentManifest\";\n NextNodeServerSpan[\"getRequestHandler\"] = \"NextNodeServer.getRequestHandler\";\n NextNodeServerSpan[\"renderToHTML\"] = \"NextNodeServer.renderToHTML\";\n NextNodeServerSpan[\"renderError\"] = \"NextNodeServer.renderError\";\n NextNodeServerSpan[\"renderErrorToHTML\"] = \"NextNodeServer.renderErrorToHTML\";\n NextNodeServerSpan[\"render404\"] = \"NextNodeServer.render404\";\n NextNodeServerSpan[\"startResponse\"] = \"NextNodeServer.startResponse\";\n // nested inner span, does not require parent scope name\n NextNodeServerSpan[\"route\"] = \"route\";\n NextNodeServerSpan[\"onProxyReq\"] = \"onProxyReq\";\n NextNodeServerSpan[\"apiResolver\"] = \"apiResolver\";\n NextNodeServerSpan[\"internalFetch\"] = \"internalFetch\";\n return NextNodeServerSpan;\n}(NextNodeServerSpan || {});\nvar StartServerSpan = /*#__PURE__*/ function(StartServerSpan) {\n StartServerSpan[\"startServer\"] = \"startServer.startServer\";\n return StartServerSpan;\n}(StartServerSpan || {});\nvar RenderSpan = /*#__PURE__*/ function(RenderSpan) {\n RenderSpan[\"getServerSideProps\"] = \"Render.getServerSideProps\";\n RenderSpan[\"getStaticProps\"] = \"Render.getStaticProps\";\n RenderSpan[\"renderToString\"] = \"Render.renderToString\";\n RenderSpan[\"renderDocument\"] = \"Render.renderDocument\";\n RenderSpan[\"createBodyResult\"] = \"Render.createBodyResult\";\n return RenderSpan;\n}(RenderSpan || {});\nvar AppRenderSpan = /*#__PURE__*/ function(AppRenderSpan) {\n AppRenderSpan[\"renderToString\"] = \"AppRender.renderToString\";\n AppRenderSpan[\"renderToReadableStream\"] = \"AppRender.renderToReadableStream\";\n AppRenderSpan[\"getBodyResult\"] = \"AppRender.getBodyResult\";\n AppRenderSpan[\"fetch\"] = \"AppRender.fetch\";\n return AppRenderSpan;\n}(AppRenderSpan || {});\nvar RouterSpan = /*#__PURE__*/ function(RouterSpan) {\n RouterSpan[\"executeRoute\"] = \"Router.executeRoute\";\n return RouterSpan;\n}(RouterSpan || {});\nvar NodeSpan = /*#__PURE__*/ function(NodeSpan) {\n NodeSpan[\"runHandler\"] = \"Node.runHandler\";\n return NodeSpan;\n}(NodeSpan || {});\nvar AppRouteRouteHandlersSpan = /*#__PURE__*/ function(AppRouteRouteHandlersSpan) {\n AppRouteRouteHandlersSpan[\"runHandler\"] = \"AppRouteRouteHandlers.runHandler\";\n return AppRouteRouteHandlersSpan;\n}(AppRouteRouteHandlersSpan || {});\nvar ResolveMetadataSpan = /*#__PURE__*/ function(ResolveMetadataSpan) {\n ResolveMetadataSpan[\"generateMetadata\"] = \"ResolveMetadata.generateMetadata\";\n ResolveMetadataSpan[\"generateViewport\"] = \"ResolveMetadata.generateViewport\";\n return ResolveMetadataSpan;\n}(ResolveMetadataSpan || {});\nvar MiddlewareSpan = /*#__PURE__*/ function(MiddlewareSpan) {\n MiddlewareSpan[\"execute\"] = \"Middleware.execute\";\n return MiddlewareSpan;\n}(MiddlewareSpan || {});\nconst NextVanillaSpanAllowlist = [\n \"Middleware.execute\",\n \"BaseServer.handleRequest\",\n \"Render.getServerSideProps\",\n \"Render.getStaticProps\",\n \"AppRender.fetch\",\n \"AppRender.getBodyResult\",\n \"Render.renderDocument\",\n \"Node.runHandler\",\n \"AppRouteRouteHandlers.runHandler\",\n \"ResolveMetadata.generateMetadata\",\n \"ResolveMetadata.generateViewport\",\n \"NextNodeServer.createComponentTree\",\n \"NextNodeServer.findPageComponents\",\n \"NextNodeServer.getLayoutOrPageModule\",\n \"NextNodeServer.startResponse\",\n \"NextNodeServer.clientComponentLoading\"\n];\nconst LogSpanAllowList = [\n \"NextNodeServer.findPageComponents\",\n \"NextNodeServer.createComponentTree\",\n \"NextNodeServer.clientComponentLoading\"\n];\n\n//# sourceMappingURL=constants.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1ub2RlKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3Qvc2VydmVyL2xpYi90cmFjZS9jb25zdGFudHMuanMiLCJtYXBwaW5ncyI6IkFBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsK0JBQTRDO0FBQzVDLDhDQUE2QztBQUM3QztBQUNBLENBQUMsRUFBQztBQUNGLE1BQU0sQ0FlTDtBQUNEO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBLENBQUM7QUFDRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsQ0FBQyxxQkFBcUI7QUFDdEI7QUFDQTtBQUNBO0FBQ0E7QUFDQSxDQUFDLHlCQUF5QjtBQUMxQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxDQUFDLHFCQUFxQjtBQUN0QjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxDQUFDLHlCQUF5QjtBQUMxQjtBQUNBO0FBQ0E7QUFDQSxDQUFDLHNCQUFzQjtBQUN2QjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLENBQUMsaUJBQWlCO0FBQ2xCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLENBQUMsb0JBQW9CO0FBQ3JCO0FBQ0E7QUFDQTtBQUNBLENBQUMsaUJBQWlCO0FBQ2xCO0FBQ0E7QUFDQTtBQUNBLENBQUMsZUFBZTtBQUNoQjtBQUNBO0FBQ0E7QUFDQSxDQUFDLGdDQUFnQztBQUNqQztBQUNBO0FBQ0E7QUFDQTtBQUNBLENBQUMsMEJBQTBCO0FBQzNCO0FBQ0E7QUFDQTtBQUNBLENBQUMscUJBQXFCO0FBQ3RCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUEiLCJzb3VyY2VzIjpbIkQ6XFxkb25neXVuLXByb2plY3RzXFx0d29cXG5vZGVfbW9kdWxlc1xcbmV4dFxcZGlzdFxcc2VydmVyXFxsaWJcXHRyYWNlXFxjb25zdGFudHMuanMiXSwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBDb250YWlucyBwcmVkZWZpbmVkIGNvbnN0YW50cyBmb3IgdGhlIHRyYWNlIHNwYW4gbmFtZSBpbiBuZXh0L3NlcnZlci5cbiAqXG4gKiBDdXJyZW50bHksIG5leHQvc2VydmVyL3RyYWNlciBpcyBpbnRlcm5hbCBpbXBsZW1lbnRhdGlvbiBvbmx5IGZvciB0cmFja2luZ1xuICogbmV4dC5qcydzIGltcGxlbWVudGF0aW9uIG9ubHkgd2l0aCBrbm93biBzcGFuIG5hbWVzIGRlZmluZWQgaGVyZS5cbiAqKi8gLy8gZXNsaW50IHR5cGVzY3JpcHQgaGFzIGEgYnVnIHdpdGggVFMgZW51bXNcbi8qIGVzbGludC1kaXNhYmxlIG5vLXNoYWRvdyAqLyBcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwge1xuICAgIHZhbHVlOiB0cnVlXG59KTtcbjAgJiYgKG1vZHVsZS5leHBvcnRzID0ge1xuICAgIEFwcFJlbmRlclNwYW46IG51bGwsXG4gICAgQXBwUm91dGVSb3V0ZUhhbmRsZXJzU3BhbjogbnVsbCxcbiAgICBCYXNlU2VydmVyU3BhbjogbnVsbCxcbiAgICBMb2FkQ29tcG9uZW50c1NwYW46IG51bGwsXG4gICAgTG9nU3BhbkFsbG93TGlzdDogbnVsbCxcbiAgICBNaWRkbGV3YXJlU3BhbjogbnVsbCxcbiAgICBOZXh0Tm9kZVNlcnZlclNwYW46IG51bGwsXG4gICAgTmV4dFNlcnZlclNwYW46IG51bGwsXG4gICAgTmV4dFZhbmlsbGFTcGFuQWxsb3dsaXN0OiBudWxsLFxuICAgIE5vZGVTcGFuOiBudWxsLFxuICAgIFJlbmRlclNwYW46IG51bGwsXG4gICAgUmVzb2x2ZU1ldGFkYXRhU3BhbjogbnVsbCxcbiAgICBSb3V0ZXJTcGFuOiBudWxsLFxuICAgIFN0YXJ0U2VydmVyU3BhbjogbnVsbFxufSk7XG5mdW5jdGlvbiBfZXhwb3J0KHRhcmdldCwgYWxsKSB7XG4gICAgZm9yKHZhciBuYW1lIGluIGFsbClPYmplY3QuZGVmaW5lUHJvcGVydHkodGFyZ2V0LCBuYW1lLCB7XG4gICAgICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgICAgIGdldDogYWxsW25hbWVdXG4gICAgfSk7XG59XG5fZXhwb3J0KGV4cG9ydHMsIHtcbiAgICBBcHBSZW5kZXJTcGFuOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIEFwcFJlbmRlclNwYW47XG4gICAgfSxcbiAgICBBcHBSb3V0ZVJvdXRlSGFuZGxlcnNTcGFuOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIEFwcFJvdXRlUm91dGVIYW5kbGVyc1NwYW47XG4gICAgfSxcbiAgICBCYXNlU2VydmVyU3BhbjogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBCYXNlU2VydmVyU3BhbjtcbiAgICB9LFxuICAgIExvYWRDb21wb25lbnRzU3BhbjogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBMb2FkQ29tcG9uZW50c1NwYW47XG4gICAgfSxcbiAgICBMb2dTcGFuQWxsb3dMaXN0OiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIExvZ1NwYW5BbGxvd0xpc3Q7XG4gICAgfSxcbiAgICBNaWRkbGV3YXJlU3BhbjogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBNaWRkbGV3YXJlU3BhbjtcbiAgICB9LFxuICAgIE5leHROb2RlU2VydmVyU3BhbjogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBOZXh0Tm9kZVNlcnZlclNwYW47XG4gICAgfSxcbiAgICBOZXh0U2VydmVyU3BhbjogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBOZXh0U2VydmVyU3BhbjtcbiAgICB9LFxuICAgIE5leHRWYW5pbGxhU3BhbkFsbG93bGlzdDogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBOZXh0VmFuaWxsYVNwYW5BbGxvd2xpc3Q7XG4gICAgfSxcbiAgICBOb2RlU3BhbjogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBOb2RlU3BhbjtcbiAgICB9LFxuICAgIFJlbmRlclNwYW46IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gUmVuZGVyU3BhbjtcbiAgICB9LFxuICAgIFJlc29sdmVNZXRhZGF0YVNwYW46IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gUmVzb2x2ZU1ldGFkYXRhU3BhbjtcbiAgICB9LFxuICAgIFJvdXRlclNwYW46IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gUm91dGVyU3BhbjtcbiAgICB9LFxuICAgIFN0YXJ0U2VydmVyU3BhbjogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBTdGFydFNlcnZlclNwYW47XG4gICAgfVxufSk7XG52YXIgQmFzZVNlcnZlclNwYW4gPSAvKiNfX1BVUkVfXyovIGZ1bmN0aW9uKEJhc2VTZXJ2ZXJTcGFuKSB7XG4gICAgQmFzZVNlcnZlclNwYW5bXCJoYW5kbGVSZXF1ZXN0XCJdID0gXCJCYXNlU2VydmVyLmhhbmRsZVJlcXVlc3RcIjtcbiAgICBCYXNlU2VydmVyU3BhbltcInJ1blwiXSA9IFwiQmFzZVNlcnZlci5ydW5cIjtcbiAgICBCYXNlU2VydmVyU3BhbltcInBpcGVcIl0gPSBcIkJhc2VTZXJ2ZXIucGlwZVwiO1xuICAgIEJhc2VTZXJ2ZXJTcGFuW1wiZ2V0U3RhdGljSFRNTFwiXSA9IFwiQmFzZVNlcnZlci5nZXRTdGF0aWNIVE1MXCI7XG4gICAgQmFzZVNlcnZlclNwYW5bXCJyZW5kZXJcIl0gPSBcIkJhc2VTZXJ2ZXIucmVuZGVyXCI7XG4gICAgQmFzZVNlcnZlclNwYW5bXCJyZW5kZXJUb1Jlc3BvbnNlV2l0aENvbXBvbmVudHNcIl0gPSBcIkJhc2VTZXJ2ZXIucmVuZGVyVG9SZXNwb25zZVdpdGhDb21wb25lbnRzXCI7XG4gICAgQmFzZVNlcnZlclNwYW5bXCJyZW5kZXJUb1Jlc3BvbnNlXCJdID0gXCJCYXNlU2VydmVyLnJlbmRlclRvUmVzcG9uc2VcIjtcbiAgICBCYXNlU2VydmVyU3BhbltcInJlbmRlclRvSFRNTFwiXSA9IFwiQmFzZVNlcnZlci5yZW5kZXJUb0hUTUxcIjtcbiAgICBCYXNlU2VydmVyU3BhbltcInJlbmRlckVycm9yXCJdID0gXCJCYXNlU2VydmVyLnJlbmRlckVycm9yXCI7XG4gICAgQmFzZVNlcnZlclNwYW5bXCJyZW5kZXJFcnJvclRvUmVzcG9uc2VcIl0gPSBcIkJhc2VTZXJ2ZXIucmVuZGVyRXJyb3JUb1Jlc3BvbnNlXCI7XG4gICAgQmFzZVNlcnZlclNwYW5bXCJyZW5kZXJFcnJvclRvSFRNTFwiXSA9IFwiQmFzZVNlcnZlci5yZW5kZXJFcnJvclRvSFRNTFwiO1xuICAgIEJhc2VTZXJ2ZXJTcGFuW1wicmVuZGVyNDA0XCJdID0gXCJCYXNlU2VydmVyLnJlbmRlcjQwNFwiO1xuICAgIHJldHVybiBCYXNlU2VydmVyU3Bhbjtcbn0oQmFzZVNlcnZlclNwYW4gfHwge30pO1xudmFyIExvYWRDb21wb25lbnRzU3BhbiA9IC8qI19fUFVSRV9fKi8gZnVuY3Rpb24oTG9hZENvbXBvbmVudHNTcGFuKSB7XG4gICAgTG9hZENvbXBvbmVudHNTcGFuW1wibG9hZERlZmF1bHRFcnJvckNvbXBvbmVudHNcIl0gPSBcIkxvYWRDb21wb25lbnRzLmxvYWREZWZhdWx0RXJyb3JDb21wb25lbnRzXCI7XG4gICAgTG9hZENvbXBvbmVudHNTcGFuW1wibG9hZENvbXBvbmVudHNcIl0gPSBcIkxvYWRDb21wb25lbnRzLmxvYWRDb21wb25lbnRzXCI7XG4gICAgcmV0dXJuIExvYWRDb21wb25lbnRzU3Bhbjtcbn0oTG9hZENvbXBvbmVudHNTcGFuIHx8IHt9KTtcbnZhciBOZXh0U2VydmVyU3BhbiA9IC8qI19fUFVSRV9fKi8gZnVuY3Rpb24oTmV4dFNlcnZlclNwYW4pIHtcbiAgICBOZXh0U2VydmVyU3BhbltcImdldFJlcXVlc3RIYW5kbGVyXCJdID0gXCJOZXh0U2VydmVyLmdldFJlcXVlc3RIYW5kbGVyXCI7XG4gICAgTmV4dFNlcnZlclNwYW5bXCJnZXRTZXJ2ZXJcIl0gPSBcIk5leHRTZXJ2ZXIuZ2V0U2VydmVyXCI7XG4gICAgTmV4dFNlcnZlclNwYW5bXCJnZXRTZXJ2ZXJSZXF1ZXN0SGFuZGxlclwiXSA9IFwiTmV4dFNlcnZlci5nZXRTZXJ2ZXJSZXF1ZXN0SGFuZGxlclwiO1xuICAgIE5leHRTZXJ2ZXJTcGFuW1wiY3JlYXRlU2VydmVyXCJdID0gXCJjcmVhdGVTZXJ2ZXIuY3JlYXRlU2VydmVyXCI7XG4gICAgcmV0dXJuIE5leHRTZXJ2ZXJTcGFuO1xufShOZXh0U2VydmVyU3BhbiB8fCB7fSk7XG52YXIgTmV4dE5vZGVTZXJ2ZXJTcGFuID0gLyojX19QVVJFX18qLyBmdW5jdGlvbihOZXh0Tm9kZVNlcnZlclNwYW4pIHtcbiAgICBOZXh0Tm9kZVNlcnZlclNwYW5bXCJjb21wcmVzc2lvblwiXSA9IFwiTmV4dE5vZGVTZXJ2ZXIuY29tcHJlc3Npb25cIjtcbiAgICBOZXh0Tm9kZVNlcnZlclNwYW5bXCJnZXRCdWlsZElkXCJdID0gXCJOZXh0Tm9kZVNlcnZlci5nZXRCdWlsZElkXCI7XG4gICAgTmV4dE5vZGVTZXJ2ZXJTcGFuW1wiY3JlYXRlQ29tcG9uZW50VHJlZVwiXSA9IFwiTmV4dE5vZGVTZXJ2ZXIuY3JlYXRlQ29tcG9uZW50VHJlZVwiO1xuICAgIE5leHROb2RlU2VydmVyU3BhbltcImNsaWVudENvbXBvbmVudExvYWRpbmdcIl0gPSBcIk5leHROb2RlU2VydmVyLmNsaWVudENvbXBvbmVudExvYWRpbmdcIjtcbiAgICBOZXh0Tm9kZVNlcnZlclNwYW5bXCJnZXRMYXlvdXRPclBhZ2VNb2R1bGVcIl0gPSBcIk5leHROb2RlU2VydmVyLmdldExheW91dE9yUGFnZU1vZHVsZVwiO1xuICAgIE5leHROb2RlU2VydmVyU3BhbltcImdlbmVyYXRlU3RhdGljUm91dGVzXCJdID0gXCJOZXh0Tm9kZVNlcnZlci5nZW5lcmF0ZVN0YXRpY1JvdXRlc1wiO1xuICAgIE5leHROb2RlU2VydmVyU3BhbltcImdlbmVyYXRlRnNTdGF0aWNSb3V0ZXNcIl0gPSBcIk5leHROb2RlU2VydmVyLmdlbmVyYXRlRnNTdGF0aWNSb3V0ZXNcIjtcbiAgICBOZXh0Tm9kZVNlcnZlclNwYW5bXCJnZW5lcmF0ZVB1YmxpY1JvdXRlc1wiXSA9IFwiTmV4dE5vZGVTZXJ2ZXIuZ2VuZXJhdGVQdWJsaWNSb3V0ZXNcIjtcbiAgICBOZXh0Tm9kZVNlcnZlclNwYW5bXCJnZW5lcmF0ZUltYWdlUm91dGVzXCJdID0gXCJOZXh0Tm9kZVNlcnZlci5nZW5lcmF0ZUltYWdlUm91dGVzLnJvdXRlXCI7XG4gICAgTmV4dE5vZGVTZXJ2ZXJTcGFuW1wic2VuZFJlbmRlclJlc3VsdFwiXSA9IFwiTmV4dE5vZGVTZXJ2ZXIuc2VuZFJlbmRlclJlc3VsdFwiO1xuICAgIE5leHROb2RlU2VydmVyU3BhbltcInByb3h5UmVxdWVzdFwiXSA9IFwiTmV4dE5vZGVTZXJ2ZXIucHJveHlSZXF1ZXN0XCI7XG4gICAgTmV4dE5vZGVTZXJ2ZXJTcGFuW1wicnVuQXBpXCJdID0gXCJOZXh0Tm9kZVNlcnZlci5ydW5BcGlcIjtcbiAgICBOZXh0Tm9kZVNlcnZlclNwYW5bXCJyZW5kZXJcIl0gPSBcIk5leHROb2RlU2VydmVyLnJlbmRlclwiO1xuICAgIE5leHROb2RlU2VydmVyU3BhbltcInJlbmRlckhUTUxcIl0gPSBcIk5leHROb2RlU2VydmVyLnJlbmRlckhUTUxcIjtcbiAgICBOZXh0Tm9kZVNlcnZlclNwYW5bXCJpbWFnZU9wdGltaXplclwiXSA9IFwiTmV4dE5vZGVTZXJ2ZXIuaW1hZ2VPcHRpbWl6ZXJcIjtcbiAgICBOZXh0Tm9kZVNlcnZlclNwYW5bXCJnZXRQYWdlUGF0aFwiXSA9IFwiTmV4dE5vZGVTZXJ2ZXIuZ2V0UGFnZVBhdGhcIjtcbiAgICBOZXh0Tm9kZVNlcnZlclNwYW5bXCJnZXRSb3V0ZXNNYW5pZmVzdFwiXSA9IFwiTmV4dE5vZGVTZXJ2ZXIuZ2V0Um91dGVzTWFuaWZlc3RcIjtcbiAgICBOZXh0Tm9kZVNlcnZlclNwYW5bXCJmaW5kUGFnZUNvbXBvbmVudHNcIl0gPSBcIk5leHROb2RlU2VydmVyLmZpbmRQYWdlQ29tcG9uZW50c1wiO1xuICAgIE5leHROb2RlU2VydmVyU3BhbltcImdldEZvbnRNYW5pZmVzdFwiXSA9IFwiTmV4dE5vZGVTZXJ2ZXIuZ2V0Rm9udE1hbmlmZXN0XCI7XG4gICAgTmV4dE5vZGVTZXJ2ZXJTcGFuW1wiZ2V0U2VydmVyQ29tcG9uZW50TWFuaWZlc3RcIl0gPSBcIk5leHROb2RlU2VydmVyLmdldFNlcnZlckNvbXBvbmVudE1hbmlmZXN0XCI7XG4gICAgTmV4dE5vZGVTZXJ2ZXJTcGFuW1wiZ2V0UmVxdWVzdEhhbmRsZXJcIl0gPSBcIk5leHROb2RlU2VydmVyLmdldFJlcXVlc3RIYW5kbGVyXCI7XG4gICAgTmV4dE5vZGVTZXJ2ZXJTcGFuW1wicmVuZGVyVG9IVE1MXCJdID0gXCJOZXh0Tm9kZVNlcnZlci5yZW5kZXJUb0hUTUxcIjtcbiAgICBOZXh0Tm9kZVNlcnZlclNwYW5bXCJyZW5kZXJFcnJvclwiXSA9IFwiTmV4dE5vZGVTZXJ2ZXIucmVuZGVyRXJyb3JcIjtcbiAgICBOZXh0Tm9kZVNlcnZlclNwYW5bXCJyZW5kZXJFcnJvclRvSFRNTFwiXSA9IFwiTmV4dE5vZGVTZXJ2ZXIucmVuZGVyRXJyb3JUb0hUTUxcIjtcbiAgICBOZXh0Tm9kZVNlcnZlclNwYW5bXCJyZW5kZXI0MDRcIl0gPSBcIk5leHROb2RlU2VydmVyLnJlbmRlcjQwNFwiO1xuICAgIE5leHROb2RlU2VydmVyU3BhbltcInN0YXJ0UmVzcG9uc2VcIl0gPSBcIk5leHROb2RlU2VydmVyLnN0YXJ0UmVzcG9uc2VcIjtcbiAgICAvLyBuZXN0ZWQgaW5uZXIgc3BhbiwgZG9lcyBub3QgcmVxdWlyZSBwYXJlbnQgc2NvcGUgbmFtZVxuICAgIE5leHROb2RlU2VydmVyU3BhbltcInJvdXRlXCJdID0gXCJyb3V0ZVwiO1xuICAgIE5leHROb2RlU2VydmVyU3BhbltcIm9uUHJveHlSZXFcIl0gPSBcIm9uUHJveHlSZXFcIjtcbiAgICBOZXh0Tm9kZVNlcnZlclNwYW5bXCJhcGlSZXNvbHZlclwiXSA9IFwiYXBpUmVzb2x2ZXJcIjtcbiAgICBOZXh0Tm9kZVNlcnZlclNwYW5bXCJpbnRlcm5hbEZldGNoXCJdID0gXCJpbnRlcm5hbEZldGNoXCI7XG4gICAgcmV0dXJuIE5leHROb2RlU2VydmVyU3Bhbjtcbn0oTmV4dE5vZGVTZXJ2ZXJTcGFuIHx8IHt9KTtcbnZhciBTdGFydFNlcnZlclNwYW4gPSAvKiNfX1BVUkVfXyovIGZ1bmN0aW9uKFN0YXJ0U2VydmVyU3Bhbikge1xuICAgIFN0YXJ0U2VydmVyU3BhbltcInN0YXJ0U2VydmVyXCJdID0gXCJzdGFydFNlcnZlci5zdGFydFNlcnZlclwiO1xuICAgIHJldHVybiBTdGFydFNlcnZlclNwYW47XG59KFN0YXJ0U2VydmVyU3BhbiB8fCB7fSk7XG52YXIgUmVuZGVyU3BhbiA9IC8qI19fUFVSRV9fKi8gZnVuY3Rpb24oUmVuZGVyU3Bhbikge1xuICAgIFJlbmRlclNwYW5bXCJnZXRTZXJ2ZXJTaWRlUHJvcHNcIl0gPSBcIlJlbmRlci5nZXRTZXJ2ZXJTaWRlUHJvcHNcIjtcbiAgICBSZW5kZXJTcGFuW1wiZ2V0U3RhdGljUHJvcHNcIl0gPSBcIlJlbmRlci5nZXRTdGF0aWNQcm9wc1wiO1xuICAgIFJlbmRlclNwYW5bXCJyZW5kZXJUb1N0cmluZ1wiXSA9IFwiUmVuZGVyLnJlbmRlclRvU3RyaW5nXCI7XG4gICAgUmVuZGVyU3BhbltcInJlbmRlckRvY3VtZW50XCJdID0gXCJSZW5kZXIucmVuZGVyRG9jdW1lbnRcIjtcbiAgICBSZW5kZXJTcGFuW1wiY3JlYXRlQm9keVJlc3VsdFwiXSA9IFwiUmVuZGVyLmNyZWF0ZUJvZHlSZXN1bHRcIjtcbiAgICByZXR1cm4gUmVuZGVyU3Bhbjtcbn0oUmVuZGVyU3BhbiB8fCB7fSk7XG52YXIgQXBwUmVuZGVyU3BhbiA9IC8qI19fUFVSRV9fKi8gZnVuY3Rpb24oQXBwUmVuZGVyU3Bhbikge1xuICAgIEFwcFJlbmRlclNwYW5bXCJyZW5kZXJUb1N0cmluZ1wiXSA9IFwiQXBwUmVuZGVyLnJlbmRlclRvU3RyaW5nXCI7XG4gICAgQXBwUmVuZGVyU3BhbltcInJlbmRlclRvUmVhZGFibGVTdHJlYW1cIl0gPSBcIkFwcFJlbmRlci5yZW5kZXJUb1JlYWRhYmxlU3RyZWFtXCI7XG4gICAgQXBwUmVuZGVyU3BhbltcImdldEJvZHlSZXN1bHRcIl0gPSBcIkFwcFJlbmRlci5nZXRCb2R5UmVzdWx0XCI7XG4gICAgQXBwUmVuZGVyU3BhbltcImZldGNoXCJdID0gXCJBcHBSZW5kZXIuZmV0Y2hcIjtcbiAgICByZXR1cm4gQXBwUmVuZGVyU3Bhbjtcbn0oQXBwUmVuZGVyU3BhbiB8fCB7fSk7XG52YXIgUm91dGVyU3BhbiA9IC8qI19fUFVSRV9fKi8gZnVuY3Rpb24oUm91dGVyU3Bhbikge1xuICAgIFJvdXRlclNwYW5bXCJleGVjdXRlUm91dGVcIl0gPSBcIlJvdXRlci5leGVjdXRlUm91dGVcIjtcbiAgICByZXR1cm4gUm91dGVyU3Bhbjtcbn0oUm91dGVyU3BhbiB8fCB7fSk7XG52YXIgTm9kZVNwYW4gPSAvKiNfX1BVUkVfXyovIGZ1bmN0aW9uKE5vZGVTcGFuKSB7XG4gICAgTm9kZVNwYW5bXCJydW5IYW5kbGVyXCJdID0gXCJOb2RlLnJ1bkhhbmRsZXJcIjtcbiAgICByZXR1cm4gTm9kZVNwYW47XG59KE5vZGVTcGFuIHx8IHt9KTtcbnZhciBBcHBSb3V0ZVJvdXRlSGFuZGxlcnNTcGFuID0gLyojX19QVVJFX18qLyBmdW5jdGlvbihBcHBSb3V0ZVJvdXRlSGFuZGxlcnNTcGFuKSB7XG4gICAgQXBwUm91dGVSb3V0ZUhhbmRsZXJzU3BhbltcInJ1bkhhbmRsZXJcIl0gPSBcIkFwcFJvdXRlUm91dGVIYW5kbGVycy5ydW5IYW5kbGVyXCI7XG4gICAgcmV0dXJuIEFwcFJvdXRlUm91dGVIYW5kbGVyc1NwYW47XG59KEFwcFJvdXRlUm91dGVIYW5kbGVyc1NwYW4gfHwge30pO1xudmFyIFJlc29sdmVNZXRhZGF0YVNwYW4gPSAvKiNfX1BVUkVfXyovIGZ1bmN0aW9uKFJlc29sdmVNZXRhZGF0YVNwYW4pIHtcbiAgICBSZXNvbHZlTWV0YWRhdGFTcGFuW1wiZ2VuZXJhdGVNZXRhZGF0YVwiXSA9IFwiUmVzb2x2ZU1ldGFkYXRhLmdlbmVyYXRlTWV0YWRhdGFcIjtcbiAgICBSZXNvbHZlTWV0YWRhdGFTcGFuW1wiZ2VuZXJhdGVWaWV3cG9ydFwiXSA9IFwiUmVzb2x2ZU1ldGFkYXRhLmdlbmVyYXRlVmlld3BvcnRcIjtcbiAgICByZXR1cm4gUmVzb2x2ZU1ldGFkYXRhU3Bhbjtcbn0oUmVzb2x2ZU1ldGFkYXRhU3BhbiB8fCB7fSk7XG52YXIgTWlkZGxld2FyZVNwYW4gPSAvKiNfX1BVUkVfXyovIGZ1bmN0aW9uKE1pZGRsZXdhcmVTcGFuKSB7XG4gICAgTWlkZGxld2FyZVNwYW5bXCJleGVjdXRlXCJdID0gXCJNaWRkbGV3YXJlLmV4ZWN1dGVcIjtcbiAgICByZXR1cm4gTWlkZGxld2FyZVNwYW47XG59KE1pZGRsZXdhcmVTcGFuIHx8IHt9KTtcbmNvbnN0IE5leHRWYW5pbGxhU3BhbkFsbG93bGlzdCA9IFtcbiAgICBcIk1pZGRsZXdhcmUuZXhlY3V0ZVwiLFxuICAgIFwiQmFzZVNlcnZlci5oYW5kbGVSZXF1ZXN0XCIsXG4gICAgXCJSZW5kZXIuZ2V0U2VydmVyU2lkZVByb3BzXCIsXG4gICAgXCJSZW5kZXIuZ2V0U3RhdGljUHJvcHNcIixcbiAgICBcIkFwcFJlbmRlci5mZXRjaFwiLFxuICAgIFwiQXBwUmVuZGVyLmdldEJvZHlSZXN1bHRcIixcbiAgICBcIlJlbmRlci5yZW5kZXJEb2N1bWVudFwiLFxuICAgIFwiTm9kZS5ydW5IYW5kbGVyXCIsXG4gICAgXCJBcHBSb3V0ZVJvdXRlSGFuZGxlcnMucnVuSGFuZGxlclwiLFxuICAgIFwiUmVzb2x2ZU1ldGFkYXRhLmdlbmVyYXRlTWV0YWRhdGFcIixcbiAgICBcIlJlc29sdmVNZXRhZGF0YS5nZW5lcmF0ZVZpZXdwb3J0XCIsXG4gICAgXCJOZXh0Tm9kZVNlcnZlci5jcmVhdGVDb21wb25lbnRUcmVlXCIsXG4gICAgXCJOZXh0Tm9kZVNlcnZlci5maW5kUGFnZUNvbXBvbmVudHNcIixcbiAgICBcIk5leHROb2RlU2VydmVyLmdldExheW91dE9yUGFnZU1vZHVsZVwiLFxuICAgIFwiTmV4dE5vZGVTZXJ2ZXIuc3RhcnRSZXNwb25zZVwiLFxuICAgIFwiTmV4dE5vZGVTZXJ2ZXIuY2xpZW50Q29tcG9uZW50TG9hZGluZ1wiXG5dO1xuY29uc3QgTG9nU3BhbkFsbG93TGlzdCA9IFtcbiAgICBcIk5leHROb2RlU2VydmVyLmZpbmRQYWdlQ29tcG9uZW50c1wiLFxuICAgIFwiTmV4dE5vZGVTZXJ2ZXIuY3JlYXRlQ29tcG9uZW50VHJlZVwiLFxuICAgIFwiTmV4dE5vZGVTZXJ2ZXIuY2xpZW50Q29tcG9uZW50TG9hZGluZ1wiXG5dO1xuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1jb25zdGFudHMuanMubWFwIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(pages-dir-node)/./node_modules/next/dist/server/lib/trace/constants.js\n"); - -/***/ }), - -/***/ "(pages-dir-node)/./node_modules/next/dist/server/lib/trace/tracer.js": -/*!***********************************************************!*\ - !*** ./node_modules/next/dist/server/lib/trace/tracer.js ***! - \***********************************************************/ -/***/ ((__unused_webpack_module, exports, __webpack_require__) => { - -"use strict"; -eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n BubbledError: function() {\n return BubbledError;\n },\n SpanKind: function() {\n return SpanKind;\n },\n SpanStatusCode: function() {\n return SpanStatusCode;\n },\n getTracer: function() {\n return getTracer;\n },\n isBubbledError: function() {\n return isBubbledError;\n }\n});\nconst _constants = __webpack_require__(/*! ./constants */ \"(pages-dir-node)/./node_modules/next/dist/server/lib/trace/constants.js\");\nconst _isthenable = __webpack_require__(/*! ../../../shared/lib/is-thenable */ \"(pages-dir-node)/./node_modules/next/dist/shared/lib/is-thenable.js\");\nlet api;\n// we want to allow users to use their own version of @opentelemetry/api if they\n// want to, so we try to require it first, and if it fails we fall back to the\n// version that is bundled with Next.js\n// this is because @opentelemetry/api has to be synced with the version of\n// @opentelemetry/tracing that is used, and we don't want to force users to use\n// the version that is bundled with Next.js.\n// the API is ~stable, so this should be fine\nif (false) {} else {\n try {\n api = __webpack_require__(/*! @opentelemetry/api */ \"(pages-dir-node)/./node_modules/next/dist/compiled/@opentelemetry/api/index.js\");\n } catch (err) {\n api = __webpack_require__(/*! next/dist/compiled/@opentelemetry/api */ \"(pages-dir-node)/./node_modules/next/dist/compiled/@opentelemetry/api/index.js\");\n }\n}\nconst { context, propagation, trace, SpanStatusCode, SpanKind, ROOT_CONTEXT } = api;\nclass BubbledError extends Error {\n constructor(bubble, result){\n super(), this.bubble = bubble, this.result = result;\n }\n}\nfunction isBubbledError(error) {\n if (typeof error !== 'object' || error === null) return false;\n return error instanceof BubbledError;\n}\nconst closeSpanWithError = (span, error)=>{\n if (isBubbledError(error) && error.bubble) {\n span.setAttribute('next.bubble', true);\n } else {\n if (error) {\n span.recordException(error);\n }\n span.setStatus({\n code: SpanStatusCode.ERROR,\n message: error == null ? void 0 : error.message\n });\n }\n span.end();\n};\n/** we use this map to propagate attributes from nested spans to the top span */ const rootSpanAttributesStore = new Map();\nconst rootSpanIdKey = api.createContextKey('next.rootSpanId');\nlet lastSpanId = 0;\nconst getSpanId = ()=>lastSpanId++;\nconst clientTraceDataSetter = {\n set (carrier, key, value) {\n carrier.push({\n key,\n value\n });\n }\n};\nclass NextTracerImpl {\n /**\n * Returns an instance to the trace with configured name.\n * Since wrap / trace can be defined in any place prior to actual trace subscriber initialization,\n * This should be lazily evaluated.\n */ getTracerInstance() {\n return trace.getTracer('next.js', '0.0.1');\n }\n getContext() {\n return context;\n }\n getTracePropagationData() {\n const activeContext = context.active();\n const entries = [];\n propagation.inject(activeContext, entries, clientTraceDataSetter);\n return entries;\n }\n getActiveScopeSpan() {\n return trace.getSpan(context == null ? void 0 : context.active());\n }\n withPropagatedContext(carrier, fn, getter) {\n const activeContext = context.active();\n if (trace.getSpanContext(activeContext)) {\n // Active span is already set, too late to propagate.\n return fn();\n }\n const remoteContext = propagation.extract(activeContext, carrier, getter);\n return context.with(remoteContext, fn);\n }\n trace(...args) {\n var _trace_getSpanContext;\n const [type, fnOrOptions, fnOrEmpty] = args;\n // coerce options form overload\n const { fn, options } = typeof fnOrOptions === 'function' ? {\n fn: fnOrOptions,\n options: {}\n } : {\n fn: fnOrEmpty,\n options: {\n ...fnOrOptions\n }\n };\n const spanName = options.spanName ?? type;\n if (!_constants.NextVanillaSpanAllowlist.includes(type) && process.env.NEXT_OTEL_VERBOSE !== '1' || options.hideSpan) {\n return fn();\n }\n // Trying to get active scoped span to assign parent. If option specifies parent span manually, will try to use it.\n let spanContext = this.getSpanContext((options == null ? void 0 : options.parentSpan) ?? this.getActiveScopeSpan());\n let isRootSpan = false;\n if (!spanContext) {\n spanContext = (context == null ? void 0 : context.active()) ?? ROOT_CONTEXT;\n isRootSpan = true;\n } else if ((_trace_getSpanContext = trace.getSpanContext(spanContext)) == null ? void 0 : _trace_getSpanContext.isRemote) {\n isRootSpan = true;\n }\n const spanId = getSpanId();\n options.attributes = {\n 'next.span_name': spanName,\n 'next.span_type': type,\n ...options.attributes\n };\n return context.with(spanContext.setValue(rootSpanIdKey, spanId), ()=>this.getTracerInstance().startActiveSpan(spanName, options, (span)=>{\n const startTime = 'performance' in globalThis && 'measure' in performance ? globalThis.performance.now() : undefined;\n const onCleanup = ()=>{\n rootSpanAttributesStore.delete(spanId);\n if (startTime && process.env.NEXT_OTEL_PERFORMANCE_PREFIX && _constants.LogSpanAllowList.includes(type || '')) {\n performance.measure(`${process.env.NEXT_OTEL_PERFORMANCE_PREFIX}:next-${(type.split('.').pop() || '').replace(/[A-Z]/g, (match)=>'-' + match.toLowerCase())}`, {\n start: startTime,\n end: performance.now()\n });\n }\n };\n if (isRootSpan) {\n rootSpanAttributesStore.set(spanId, new Map(Object.entries(options.attributes ?? {})));\n }\n try {\n if (fn.length > 1) {\n return fn(span, (err)=>closeSpanWithError(span, err));\n }\n const result = fn(span);\n if ((0, _isthenable.isThenable)(result)) {\n // If there's error make sure it throws\n return result.then((res)=>{\n span.end();\n // Need to pass down the promise result,\n // it could be react stream response with error { error, stream }\n return res;\n }).catch((err)=>{\n closeSpanWithError(span, err);\n throw err;\n }).finally(onCleanup);\n } else {\n span.end();\n onCleanup();\n }\n return result;\n } catch (err) {\n closeSpanWithError(span, err);\n onCleanup();\n throw err;\n }\n }));\n }\n wrap(...args) {\n const tracer = this;\n const [name, options, fn] = args.length === 3 ? args : [\n args[0],\n {},\n args[1]\n ];\n if (!_constants.NextVanillaSpanAllowlist.includes(name) && process.env.NEXT_OTEL_VERBOSE !== '1') {\n return fn;\n }\n return function() {\n let optionsObj = options;\n if (typeof optionsObj === 'function' && typeof fn === 'function') {\n optionsObj = optionsObj.apply(this, arguments);\n }\n const lastArgId = arguments.length - 1;\n const cb = arguments[lastArgId];\n if (typeof cb === 'function') {\n const scopeBoundCb = tracer.getContext().bind(context.active(), cb);\n return tracer.trace(name, optionsObj, (_span, done)=>{\n arguments[lastArgId] = function(err) {\n done == null ? void 0 : done(err);\n return scopeBoundCb.apply(this, arguments);\n };\n return fn.apply(this, arguments);\n });\n } else {\n return tracer.trace(name, optionsObj, ()=>fn.apply(this, arguments));\n }\n };\n }\n startSpan(...args) {\n const [type, options] = args;\n const spanContext = this.getSpanContext((options == null ? void 0 : options.parentSpan) ?? this.getActiveScopeSpan());\n return this.getTracerInstance().startSpan(type, options, spanContext);\n }\n getSpanContext(parentSpan) {\n const spanContext = parentSpan ? trace.setSpan(context.active(), parentSpan) : undefined;\n return spanContext;\n }\n getRootSpanAttributes() {\n const spanId = context.active().getValue(rootSpanIdKey);\n return rootSpanAttributesStore.get(spanId);\n }\n setRootSpanAttribute(key, value) {\n const spanId = context.active().getValue(rootSpanIdKey);\n const attributes = rootSpanAttributesStore.get(spanId);\n if (attributes) {\n attributes.set(key, value);\n }\n }\n}\nconst getTracer = (()=>{\n const tracer = new NextTracerImpl();\n return ()=>tracer;\n})();\n\n//# sourceMappingURL=tracer.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1ub2RlKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3Qvc2VydmVyL2xpYi90cmFjZS90cmFjZXIuanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYiw4Q0FBNkM7QUFDN0M7QUFDQSxDQUFDLEVBQUM7QUFDRixNQUFNLENBTUw7QUFDRDtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQSxDQUFDO0FBQ0QsbUJBQW1CLG1CQUFPLENBQUMsNEZBQWE7QUFDeEMsb0JBQW9CLG1CQUFPLENBQUMsNEdBQWlDO0FBQzdEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxJQUFJLEtBQW1DLEVBQUUsRUFFeEMsQ0FBQztBQUNGO0FBQ0EsY0FBYyxtQkFBTyxDQUFDLDBHQUFvQjtBQUMxQyxNQUFNO0FBQ04sY0FBYyxtQkFBTyxDQUFDLDZIQUF1QztBQUM3RDtBQUNBO0FBQ0EsUUFBUSxzRUFBc0U7QUFDOUU7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsTUFBTTtBQUNOO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGdCQUFnQixjQUFjO0FBQzlCO0FBQ0E7QUFDQSxVQUFVO0FBQ1Y7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsVUFBVTtBQUNWO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsK0NBQStDLHlDQUF5QyxRQUFRLG9GQUFvRjtBQUNwTDtBQUNBO0FBQ0EseUJBQXlCO0FBQ3pCO0FBQ0E7QUFDQTtBQUNBLHVHQUF1RztBQUN2RztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsOEVBQThFO0FBQzlFO0FBQ0EseUJBQXlCO0FBQ3pCO0FBQ0E7QUFDQSx5QkFBeUI7QUFDekIsc0JBQXNCO0FBQ3RCO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esa0JBQWtCO0FBQ2xCO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsYUFBYTtBQUNiO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxjQUFjO0FBQ2Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGlCQUFpQjtBQUNqQixjQUFjO0FBQ2Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxDQUFDOztBQUVEIiwic291cmNlcyI6WyJEOlxcZG9uZ3l1bi1wcm9qZWN0c1xcdHdvXFxub2RlX21vZHVsZXNcXG5leHRcXGRpc3RcXHNlcnZlclxcbGliXFx0cmFjZVxcdHJhY2VyLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7XG4gICAgdmFsdWU6IHRydWVcbn0pO1xuMCAmJiAobW9kdWxlLmV4cG9ydHMgPSB7XG4gICAgQnViYmxlZEVycm9yOiBudWxsLFxuICAgIFNwYW5LaW5kOiBudWxsLFxuICAgIFNwYW5TdGF0dXNDb2RlOiBudWxsLFxuICAgIGdldFRyYWNlcjogbnVsbCxcbiAgICBpc0J1YmJsZWRFcnJvcjogbnVsbFxufSk7XG5mdW5jdGlvbiBfZXhwb3J0KHRhcmdldCwgYWxsKSB7XG4gICAgZm9yKHZhciBuYW1lIGluIGFsbClPYmplY3QuZGVmaW5lUHJvcGVydHkodGFyZ2V0LCBuYW1lLCB7XG4gICAgICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgICAgIGdldDogYWxsW25hbWVdXG4gICAgfSk7XG59XG5fZXhwb3J0KGV4cG9ydHMsIHtcbiAgICBCdWJibGVkRXJyb3I6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gQnViYmxlZEVycm9yO1xuICAgIH0sXG4gICAgU3BhbktpbmQ6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gU3BhbktpbmQ7XG4gICAgfSxcbiAgICBTcGFuU3RhdHVzQ29kZTogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBTcGFuU3RhdHVzQ29kZTtcbiAgICB9LFxuICAgIGdldFRyYWNlcjogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBnZXRUcmFjZXI7XG4gICAgfSxcbiAgICBpc0J1YmJsZWRFcnJvcjogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBpc0J1YmJsZWRFcnJvcjtcbiAgICB9XG59KTtcbmNvbnN0IF9jb25zdGFudHMgPSByZXF1aXJlKFwiLi9jb25zdGFudHNcIik7XG5jb25zdCBfaXN0aGVuYWJsZSA9IHJlcXVpcmUoXCIuLi8uLi8uLi9zaGFyZWQvbGliL2lzLXRoZW5hYmxlXCIpO1xubGV0IGFwaTtcbi8vIHdlIHdhbnQgdG8gYWxsb3cgdXNlcnMgdG8gdXNlIHRoZWlyIG93biB2ZXJzaW9uIG9mIEBvcGVudGVsZW1ldHJ5L2FwaSBpZiB0aGV5XG4vLyB3YW50IHRvLCBzbyB3ZSB0cnkgdG8gcmVxdWlyZSBpdCBmaXJzdCwgYW5kIGlmIGl0IGZhaWxzIHdlIGZhbGwgYmFjayB0byB0aGVcbi8vIHZlcnNpb24gdGhhdCBpcyBidW5kbGVkIHdpdGggTmV4dC5qc1xuLy8gdGhpcyBpcyBiZWNhdXNlIEBvcGVudGVsZW1ldHJ5L2FwaSBoYXMgdG8gYmUgc3luY2VkIHdpdGggdGhlIHZlcnNpb24gb2Zcbi8vIEBvcGVudGVsZW1ldHJ5L3RyYWNpbmcgdGhhdCBpcyB1c2VkLCBhbmQgd2UgZG9uJ3Qgd2FudCB0byBmb3JjZSB1c2VycyB0byB1c2Vcbi8vIHRoZSB2ZXJzaW9uIHRoYXQgaXMgYnVuZGxlZCB3aXRoIE5leHQuanMuXG4vLyB0aGUgQVBJIGlzIH5zdGFibGUsIHNvIHRoaXMgc2hvdWxkIGJlIGZpbmVcbmlmIChwcm9jZXNzLmVudi5ORVhUX1JVTlRJTUUgPT09ICdlZGdlJykge1xuICAgIGFwaSA9IHJlcXVpcmUoJ0BvcGVudGVsZW1ldHJ5L2FwaScpO1xufSBlbHNlIHtcbiAgICB0cnkge1xuICAgICAgICBhcGkgPSByZXF1aXJlKCdAb3BlbnRlbGVtZXRyeS9hcGknKTtcbiAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgICAgYXBpID0gcmVxdWlyZSgnbmV4dC9kaXN0L2NvbXBpbGVkL0BvcGVudGVsZW1ldHJ5L2FwaScpO1xuICAgIH1cbn1cbmNvbnN0IHsgY29udGV4dCwgcHJvcGFnYXRpb24sIHRyYWNlLCBTcGFuU3RhdHVzQ29kZSwgU3BhbktpbmQsIFJPT1RfQ09OVEVYVCB9ID0gYXBpO1xuY2xhc3MgQnViYmxlZEVycm9yIGV4dGVuZHMgRXJyb3Ige1xuICAgIGNvbnN0cnVjdG9yKGJ1YmJsZSwgcmVzdWx0KXtcbiAgICAgICAgc3VwZXIoKSwgdGhpcy5idWJibGUgPSBidWJibGUsIHRoaXMucmVzdWx0ID0gcmVzdWx0O1xuICAgIH1cbn1cbmZ1bmN0aW9uIGlzQnViYmxlZEVycm9yKGVycm9yKSB7XG4gICAgaWYgKHR5cGVvZiBlcnJvciAhPT0gJ29iamVjdCcgfHwgZXJyb3IgPT09IG51bGwpIHJldHVybiBmYWxzZTtcbiAgICByZXR1cm4gZXJyb3IgaW5zdGFuY2VvZiBCdWJibGVkRXJyb3I7XG59XG5jb25zdCBjbG9zZVNwYW5XaXRoRXJyb3IgPSAoc3BhbiwgZXJyb3IpPT57XG4gICAgaWYgKGlzQnViYmxlZEVycm9yKGVycm9yKSAmJiBlcnJvci5idWJibGUpIHtcbiAgICAgICAgc3Bhbi5zZXRBdHRyaWJ1dGUoJ25leHQuYnViYmxlJywgdHJ1ZSk7XG4gICAgfSBlbHNlIHtcbiAgICAgICAgaWYgKGVycm9yKSB7XG4gICAgICAgICAgICBzcGFuLnJlY29yZEV4Y2VwdGlvbihlcnJvcik7XG4gICAgICAgIH1cbiAgICAgICAgc3Bhbi5zZXRTdGF0dXMoe1xuICAgICAgICAgICAgY29kZTogU3BhblN0YXR1c0NvZGUuRVJST1IsXG4gICAgICAgICAgICBtZXNzYWdlOiBlcnJvciA9PSBudWxsID8gdm9pZCAwIDogZXJyb3IubWVzc2FnZVxuICAgICAgICB9KTtcbiAgICB9XG4gICAgc3Bhbi5lbmQoKTtcbn07XG4vKiogd2UgdXNlIHRoaXMgbWFwIHRvIHByb3BhZ2F0ZSBhdHRyaWJ1dGVzIGZyb20gbmVzdGVkIHNwYW5zIHRvIHRoZSB0b3Agc3BhbiAqLyBjb25zdCByb290U3BhbkF0dHJpYnV0ZXNTdG9yZSA9IG5ldyBNYXAoKTtcbmNvbnN0IHJvb3RTcGFuSWRLZXkgPSBhcGkuY3JlYXRlQ29udGV4dEtleSgnbmV4dC5yb290U3BhbklkJyk7XG5sZXQgbGFzdFNwYW5JZCA9IDA7XG5jb25zdCBnZXRTcGFuSWQgPSAoKT0+bGFzdFNwYW5JZCsrO1xuY29uc3QgY2xpZW50VHJhY2VEYXRhU2V0dGVyID0ge1xuICAgIHNldCAoY2Fycmllciwga2V5LCB2YWx1ZSkge1xuICAgICAgICBjYXJyaWVyLnB1c2goe1xuICAgICAgICAgICAga2V5LFxuICAgICAgICAgICAgdmFsdWVcbiAgICAgICAgfSk7XG4gICAgfVxufTtcbmNsYXNzIE5leHRUcmFjZXJJbXBsIHtcbiAgICAvKipcbiAgICogUmV0dXJucyBhbiBpbnN0YW5jZSB0byB0aGUgdHJhY2Ugd2l0aCBjb25maWd1cmVkIG5hbWUuXG4gICAqIFNpbmNlIHdyYXAgLyB0cmFjZSBjYW4gYmUgZGVmaW5lZCBpbiBhbnkgcGxhY2UgcHJpb3IgdG8gYWN0dWFsIHRyYWNlIHN1YnNjcmliZXIgaW5pdGlhbGl6YXRpb24sXG4gICAqIFRoaXMgc2hvdWxkIGJlIGxhemlseSBldmFsdWF0ZWQuXG4gICAqLyBnZXRUcmFjZXJJbnN0YW5jZSgpIHtcbiAgICAgICAgcmV0dXJuIHRyYWNlLmdldFRyYWNlcignbmV4dC5qcycsICcwLjAuMScpO1xuICAgIH1cbiAgICBnZXRDb250ZXh0KCkge1xuICAgICAgICByZXR1cm4gY29udGV4dDtcbiAgICB9XG4gICAgZ2V0VHJhY2VQcm9wYWdhdGlvbkRhdGEoKSB7XG4gICAgICAgIGNvbnN0IGFjdGl2ZUNvbnRleHQgPSBjb250ZXh0LmFjdGl2ZSgpO1xuICAgICAgICBjb25zdCBlbnRyaWVzID0gW107XG4gICAgICAgIHByb3BhZ2F0aW9uLmluamVjdChhY3RpdmVDb250ZXh0LCBlbnRyaWVzLCBjbGllbnRUcmFjZURhdGFTZXR0ZXIpO1xuICAgICAgICByZXR1cm4gZW50cmllcztcbiAgICB9XG4gICAgZ2V0QWN0aXZlU2NvcGVTcGFuKCkge1xuICAgICAgICByZXR1cm4gdHJhY2UuZ2V0U3Bhbihjb250ZXh0ID09IG51bGwgPyB2b2lkIDAgOiBjb250ZXh0LmFjdGl2ZSgpKTtcbiAgICB9XG4gICAgd2l0aFByb3BhZ2F0ZWRDb250ZXh0KGNhcnJpZXIsIGZuLCBnZXR0ZXIpIHtcbiAgICAgICAgY29uc3QgYWN0aXZlQ29udGV4dCA9IGNvbnRleHQuYWN0aXZlKCk7XG4gICAgICAgIGlmICh0cmFjZS5nZXRTcGFuQ29udGV4dChhY3RpdmVDb250ZXh0KSkge1xuICAgICAgICAgICAgLy8gQWN0aXZlIHNwYW4gaXMgYWxyZWFkeSBzZXQsIHRvbyBsYXRlIHRvIHByb3BhZ2F0ZS5cbiAgICAgICAgICAgIHJldHVybiBmbigpO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHJlbW90ZUNvbnRleHQgPSBwcm9wYWdhdGlvbi5leHRyYWN0KGFjdGl2ZUNvbnRleHQsIGNhcnJpZXIsIGdldHRlcik7XG4gICAgICAgIHJldHVybiBjb250ZXh0LndpdGgocmVtb3RlQ29udGV4dCwgZm4pO1xuICAgIH1cbiAgICB0cmFjZSguLi5hcmdzKSB7XG4gICAgICAgIHZhciBfdHJhY2VfZ2V0U3BhbkNvbnRleHQ7XG4gICAgICAgIGNvbnN0IFt0eXBlLCBmbk9yT3B0aW9ucywgZm5PckVtcHR5XSA9IGFyZ3M7XG4gICAgICAgIC8vIGNvZXJjZSBvcHRpb25zIGZvcm0gb3ZlcmxvYWRcbiAgICAgICAgY29uc3QgeyBmbiwgb3B0aW9ucyB9ID0gdHlwZW9mIGZuT3JPcHRpb25zID09PSAnZnVuY3Rpb24nID8ge1xuICAgICAgICAgICAgZm46IGZuT3JPcHRpb25zLFxuICAgICAgICAgICAgb3B0aW9uczoge31cbiAgICAgICAgfSA6IHtcbiAgICAgICAgICAgIGZuOiBmbk9yRW1wdHksXG4gICAgICAgICAgICBvcHRpb25zOiB7XG4gICAgICAgICAgICAgICAgLi4uZm5Pck9wdGlvbnNcbiAgICAgICAgICAgIH1cbiAgICAgICAgfTtcbiAgICAgICAgY29uc3Qgc3Bhbk5hbWUgPSBvcHRpb25zLnNwYW5OYW1lID8/IHR5cGU7XG4gICAgICAgIGlmICghX2NvbnN0YW50cy5OZXh0VmFuaWxsYVNwYW5BbGxvd2xpc3QuaW5jbHVkZXModHlwZSkgJiYgcHJvY2Vzcy5lbnYuTkVYVF9PVEVMX1ZFUkJPU0UgIT09ICcxJyB8fCBvcHRpb25zLmhpZGVTcGFuKSB7XG4gICAgICAgICAgICByZXR1cm4gZm4oKTtcbiAgICAgICAgfVxuICAgICAgICAvLyBUcnlpbmcgdG8gZ2V0IGFjdGl2ZSBzY29wZWQgc3BhbiB0byBhc3NpZ24gcGFyZW50LiBJZiBvcHRpb24gc3BlY2lmaWVzIHBhcmVudCBzcGFuIG1hbnVhbGx5LCB3aWxsIHRyeSB0byB1c2UgaXQuXG4gICAgICAgIGxldCBzcGFuQ29udGV4dCA9IHRoaXMuZ2V0U3BhbkNvbnRleHQoKG9wdGlvbnMgPT0gbnVsbCA/IHZvaWQgMCA6IG9wdGlvbnMucGFyZW50U3BhbikgPz8gdGhpcy5nZXRBY3RpdmVTY29wZVNwYW4oKSk7XG4gICAgICAgIGxldCBpc1Jvb3RTcGFuID0gZmFsc2U7XG4gICAgICAgIGlmICghc3BhbkNvbnRleHQpIHtcbiAgICAgICAgICAgIHNwYW5Db250ZXh0ID0gKGNvbnRleHQgPT0gbnVsbCA/IHZvaWQgMCA6IGNvbnRleHQuYWN0aXZlKCkpID8/IFJPT1RfQ09OVEVYVDtcbiAgICAgICAgICAgIGlzUm9vdFNwYW4gPSB0cnVlO1xuICAgICAgICB9IGVsc2UgaWYgKChfdHJhY2VfZ2V0U3BhbkNvbnRleHQgPSB0cmFjZS5nZXRTcGFuQ29udGV4dChzcGFuQ29udGV4dCkpID09IG51bGwgPyB2b2lkIDAgOiBfdHJhY2VfZ2V0U3BhbkNvbnRleHQuaXNSZW1vdGUpIHtcbiAgICAgICAgICAgIGlzUm9vdFNwYW4gPSB0cnVlO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHNwYW5JZCA9IGdldFNwYW5JZCgpO1xuICAgICAgICBvcHRpb25zLmF0dHJpYnV0ZXMgPSB7XG4gICAgICAgICAgICAnbmV4dC5zcGFuX25hbWUnOiBzcGFuTmFtZSxcbiAgICAgICAgICAgICduZXh0LnNwYW5fdHlwZSc6IHR5cGUsXG4gICAgICAgICAgICAuLi5vcHRpb25zLmF0dHJpYnV0ZXNcbiAgICAgICAgfTtcbiAgICAgICAgcmV0dXJuIGNvbnRleHQud2l0aChzcGFuQ29udGV4dC5zZXRWYWx1ZShyb290U3BhbklkS2V5LCBzcGFuSWQpLCAoKT0+dGhpcy5nZXRUcmFjZXJJbnN0YW5jZSgpLnN0YXJ0QWN0aXZlU3BhbihzcGFuTmFtZSwgb3B0aW9ucywgKHNwYW4pPT57XG4gICAgICAgICAgICAgICAgY29uc3Qgc3RhcnRUaW1lID0gJ3BlcmZvcm1hbmNlJyBpbiBnbG9iYWxUaGlzICYmICdtZWFzdXJlJyBpbiBwZXJmb3JtYW5jZSA/IGdsb2JhbFRoaXMucGVyZm9ybWFuY2Uubm93KCkgOiB1bmRlZmluZWQ7XG4gICAgICAgICAgICAgICAgY29uc3Qgb25DbGVhbnVwID0gKCk9PntcbiAgICAgICAgICAgICAgICAgICAgcm9vdFNwYW5BdHRyaWJ1dGVzU3RvcmUuZGVsZXRlKHNwYW5JZCk7XG4gICAgICAgICAgICAgICAgICAgIGlmIChzdGFydFRpbWUgJiYgcHJvY2Vzcy5lbnYuTkVYVF9PVEVMX1BFUkZPUk1BTkNFX1BSRUZJWCAmJiBfY29uc3RhbnRzLkxvZ1NwYW5BbGxvd0xpc3QuaW5jbHVkZXModHlwZSB8fCAnJykpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHBlcmZvcm1hbmNlLm1lYXN1cmUoYCR7cHJvY2Vzcy5lbnYuTkVYVF9PVEVMX1BFUkZPUk1BTkNFX1BSRUZJWH06bmV4dC0keyh0eXBlLnNwbGl0KCcuJykucG9wKCkgfHwgJycpLnJlcGxhY2UoL1tBLVpdL2csIChtYXRjaCk9PictJyArIG1hdGNoLnRvTG93ZXJDYXNlKCkpfWAsIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydDogc3RhcnRUaW1lLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZDogcGVyZm9ybWFuY2Uubm93KClcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICBpZiAoaXNSb290U3Bhbikge1xuICAgICAgICAgICAgICAgICAgICByb290U3BhbkF0dHJpYnV0ZXNTdG9yZS5zZXQoc3BhbklkLCBuZXcgTWFwKE9iamVjdC5lbnRyaWVzKG9wdGlvbnMuYXR0cmlidXRlcyA/PyB7fSkpKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGZuLmxlbmd0aCA+IDEpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBmbihzcGFuLCAoZXJyKT0+Y2xvc2VTcGFuV2l0aEVycm9yKHNwYW4sIGVycikpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHJlc3VsdCA9IGZuKHNwYW4pO1xuICAgICAgICAgICAgICAgICAgICBpZiAoKDAsIF9pc3RoZW5hYmxlLmlzVGhlbmFibGUpKHJlc3VsdCkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIElmIHRoZXJlJ3MgZXJyb3IgbWFrZSBzdXJlIGl0IHRocm93c1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdC50aGVuKChyZXMpPT57XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Bhbi5lbmQoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBOZWVkIHRvIHBhc3MgZG93biB0aGUgcHJvbWlzZSByZXN1bHQsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gaXQgY291bGQgYmUgcmVhY3Qgc3RyZWFtIHJlc3BvbnNlIHdpdGggZXJyb3IgeyBlcnJvciwgc3RyZWFtIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gcmVzO1xuICAgICAgICAgICAgICAgICAgICAgICAgfSkuY2F0Y2goKGVycik9PntcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbG9zZVNwYW5XaXRoRXJyb3Ioc3BhbiwgZXJyKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aHJvdyBlcnI7XG4gICAgICAgICAgICAgICAgICAgICAgICB9KS5maW5hbGx5KG9uQ2xlYW51cCk7XG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBzcGFuLmVuZCgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgb25DbGVhbnVwKCk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICAgICAgICAgICAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgICAgICAgICAgICAgICAgY2xvc2VTcGFuV2l0aEVycm9yKHNwYW4sIGVycik7XG4gICAgICAgICAgICAgICAgICAgIG9uQ2xlYW51cCgpO1xuICAgICAgICAgICAgICAgICAgICB0aHJvdyBlcnI7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSkpO1xuICAgIH1cbiAgICB3cmFwKC4uLmFyZ3MpIHtcbiAgICAgICAgY29uc3QgdHJhY2VyID0gdGhpcztcbiAgICAgICAgY29uc3QgW25hbWUsIG9wdGlvbnMsIGZuXSA9IGFyZ3MubGVuZ3RoID09PSAzID8gYXJncyA6IFtcbiAgICAgICAgICAgIGFyZ3NbMF0sXG4gICAgICAgICAgICB7fSxcbiAgICAgICAgICAgIGFyZ3NbMV1cbiAgICAgICAgXTtcbiAgICAgICAgaWYgKCFfY29uc3RhbnRzLk5leHRWYW5pbGxhU3BhbkFsbG93bGlzdC5pbmNsdWRlcyhuYW1lKSAmJiBwcm9jZXNzLmVudi5ORVhUX09URUxfVkVSQk9TRSAhPT0gJzEnKSB7XG4gICAgICAgICAgICByZXR1cm4gZm47XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGZ1bmN0aW9uKCkge1xuICAgICAgICAgICAgbGV0IG9wdGlvbnNPYmogPSBvcHRpb25zO1xuICAgICAgICAgICAgaWYgKHR5cGVvZiBvcHRpb25zT2JqID09PSAnZnVuY3Rpb24nICYmIHR5cGVvZiBmbiA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICAgICAgICAgIG9wdGlvbnNPYmogPSBvcHRpb25zT2JqLmFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjb25zdCBsYXN0QXJnSWQgPSBhcmd1bWVudHMubGVuZ3RoIC0gMTtcbiAgICAgICAgICAgIGNvbnN0IGNiID0gYXJndW1lbnRzW2xhc3RBcmdJZF07XG4gICAgICAgICAgICBpZiAodHlwZW9mIGNiID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgICAgICAgICAgY29uc3Qgc2NvcGVCb3VuZENiID0gdHJhY2VyLmdldENvbnRleHQoKS5iaW5kKGNvbnRleHQuYWN0aXZlKCksIGNiKTtcbiAgICAgICAgICAgICAgICByZXR1cm4gdHJhY2VyLnRyYWNlKG5hbWUsIG9wdGlvbnNPYmosIChfc3BhbiwgZG9uZSk9PntcbiAgICAgICAgICAgICAgICAgICAgYXJndW1lbnRzW2xhc3RBcmdJZF0gPSBmdW5jdGlvbihlcnIpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGRvbmUgPT0gbnVsbCA/IHZvaWQgMCA6IGRvbmUoZXJyKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBzY29wZUJvdW5kQ2IuYXBwbHkodGhpcywgYXJndW1lbnRzKTtcbiAgICAgICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZuLmFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHJldHVybiB0cmFjZXIudHJhY2UobmFtZSwgb3B0aW9uc09iaiwgKCk9PmZuLmFwcGx5KHRoaXMsIGFyZ3VtZW50cykpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9O1xuICAgIH1cbiAgICBzdGFydFNwYW4oLi4uYXJncykge1xuICAgICAgICBjb25zdCBbdHlwZSwgb3B0aW9uc10gPSBhcmdzO1xuICAgICAgICBjb25zdCBzcGFuQ29udGV4dCA9IHRoaXMuZ2V0U3BhbkNvbnRleHQoKG9wdGlvbnMgPT0gbnVsbCA/IHZvaWQgMCA6IG9wdGlvbnMucGFyZW50U3BhbikgPz8gdGhpcy5nZXRBY3RpdmVTY29wZVNwYW4oKSk7XG4gICAgICAgIHJldHVybiB0aGlzLmdldFRyYWNlckluc3RhbmNlKCkuc3RhcnRTcGFuKHR5cGUsIG9wdGlvbnMsIHNwYW5Db250ZXh0KTtcbiAgICB9XG4gICAgZ2V0U3BhbkNvbnRleHQocGFyZW50U3Bhbikge1xuICAgICAgICBjb25zdCBzcGFuQ29udGV4dCA9IHBhcmVudFNwYW4gPyB0cmFjZS5zZXRTcGFuKGNvbnRleHQuYWN0aXZlKCksIHBhcmVudFNwYW4pIDogdW5kZWZpbmVkO1xuICAgICAgICByZXR1cm4gc3BhbkNvbnRleHQ7XG4gICAgfVxuICAgIGdldFJvb3RTcGFuQXR0cmlidXRlcygpIHtcbiAgICAgICAgY29uc3Qgc3BhbklkID0gY29udGV4dC5hY3RpdmUoKS5nZXRWYWx1ZShyb290U3BhbklkS2V5KTtcbiAgICAgICAgcmV0dXJuIHJvb3RTcGFuQXR0cmlidXRlc1N0b3JlLmdldChzcGFuSWQpO1xuICAgIH1cbiAgICBzZXRSb290U3BhbkF0dHJpYnV0ZShrZXksIHZhbHVlKSB7XG4gICAgICAgIGNvbnN0IHNwYW5JZCA9IGNvbnRleHQuYWN0aXZlKCkuZ2V0VmFsdWUocm9vdFNwYW5JZEtleSk7XG4gICAgICAgIGNvbnN0IGF0dHJpYnV0ZXMgPSByb290U3BhbkF0dHJpYnV0ZXNTdG9yZS5nZXQoc3BhbklkKTtcbiAgICAgICAgaWYgKGF0dHJpYnV0ZXMpIHtcbiAgICAgICAgICAgIGF0dHJpYnV0ZXMuc2V0KGtleSwgdmFsdWUpO1xuICAgICAgICB9XG4gICAgfVxufVxuY29uc3QgZ2V0VHJhY2VyID0gKCgpPT57XG4gICAgY29uc3QgdHJhY2VyID0gbmV3IE5leHRUcmFjZXJJbXBsKCk7XG4gICAgcmV0dXJuICgpPT50cmFjZXI7XG59KSgpO1xuXG4vLyMgc291cmNlTWFwcGluZ1VSTD10cmFjZXIuanMubWFwIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(pages-dir-node)/./node_modules/next/dist/server/lib/trace/tracer.js\n"); - -/***/ }), - -/***/ "(pages-dir-node)/./node_modules/next/dist/server/lib/trace/utils.js": -/*!**********************************************************!*\ - !*** ./node_modules/next/dist/server/lib/trace/utils.js ***! - \**********************************************************/ -/***/ ((__unused_webpack_module, exports) => { - -"use strict"; -eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"getTracedMetadata\", ({\n enumerable: true,\n get: function() {\n return getTracedMetadata;\n }\n}));\nfunction getTracedMetadata(traceData, clientTraceMetadata) {\n if (!clientTraceMetadata) return undefined;\n return traceData.filter(({ key })=>clientTraceMetadata.includes(key));\n}\n\n//# sourceMappingURL=utils.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1ub2RlKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3Qvc2VydmVyL2xpYi90cmFjZS91dGlscy5qcyIsIm1hcHBpbmdzIjoiQUFBYTtBQUNiLDhDQUE2QztBQUM3QztBQUNBLENBQUMsRUFBQztBQUNGLHFEQUFvRDtBQUNwRDtBQUNBO0FBQ0E7QUFDQTtBQUNBLENBQUMsRUFBQztBQUNGO0FBQ0E7QUFDQSwrQkFBK0IsS0FBSztBQUNwQzs7QUFFQSIsInNvdXJjZXMiOlsiRDpcXGRvbmd5dW4tcHJvamVjdHNcXHR3b1xcbm9kZV9tb2R1bGVzXFxuZXh0XFxkaXN0XFxzZXJ2ZXJcXGxpYlxcdHJhY2VcXHV0aWxzLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7XG4gICAgdmFsdWU6IHRydWVcbn0pO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiZ2V0VHJhY2VkTWV0YWRhdGFcIiwge1xuICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgZ2V0OiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIGdldFRyYWNlZE1ldGFkYXRhO1xuICAgIH1cbn0pO1xuZnVuY3Rpb24gZ2V0VHJhY2VkTWV0YWRhdGEodHJhY2VEYXRhLCBjbGllbnRUcmFjZU1ldGFkYXRhKSB7XG4gICAgaWYgKCFjbGllbnRUcmFjZU1ldGFkYXRhKSByZXR1cm4gdW5kZWZpbmVkO1xuICAgIHJldHVybiB0cmFjZURhdGEuZmlsdGVyKCh7IGtleSB9KT0+Y2xpZW50VHJhY2VNZXRhZGF0YS5pbmNsdWRlcyhrZXkpKTtcbn1cblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9dXRpbHMuanMubWFwIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(pages-dir-node)/./node_modules/next/dist/server/lib/trace/utils.js\n"); - -/***/ }), - -/***/ "(pages-dir-node)/./node_modules/next/dist/server/pipe-readable.js": -/*!********************************************************!*\ - !*** ./node_modules/next/dist/server/pipe-readable.js ***! - \********************************************************/ -/***/ ((__unused_webpack_module, exports, __webpack_require__) => { - -"use strict"; -eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n isAbortError: function() {\n return isAbortError;\n },\n pipeToNodeResponse: function() {\n return pipeToNodeResponse;\n }\n});\nconst _nextrequest = __webpack_require__(/*! ./web/spec-extension/adapters/next-request */ \"(pages-dir-node)/./node_modules/next/dist/server/web/spec-extension/adapters/next-request.js\");\nconst _detachedpromise = __webpack_require__(/*! ../lib/detached-promise */ \"(pages-dir-node)/./node_modules/next/dist/lib/detached-promise.js\");\nconst _tracer = __webpack_require__(/*! ./lib/trace/tracer */ \"(pages-dir-node)/./node_modules/next/dist/server/lib/trace/tracer.js\");\nconst _constants = __webpack_require__(/*! ./lib/trace/constants */ \"(pages-dir-node)/./node_modules/next/dist/server/lib/trace/constants.js\");\nconst _clientcomponentrendererlogger = __webpack_require__(/*! ./client-component-renderer-logger */ \"(pages-dir-node)/./node_modules/next/dist/server/client-component-renderer-logger.js\");\nfunction isAbortError(e) {\n return (e == null ? void 0 : e.name) === 'AbortError' || (e == null ? void 0 : e.name) === _nextrequest.ResponseAbortedName;\n}\nfunction createWriterFromResponse(res, waitUntilForEnd) {\n let started = false;\n // Create a promise that will resolve once the response has drained. See\n // https://nodejs.org/api/stream.html#stream_event_drain\n let drained = new _detachedpromise.DetachedPromise();\n function onDrain() {\n drained.resolve();\n }\n res.on('drain', onDrain);\n // If the finish event fires, it means we shouldn't block and wait for the\n // drain event.\n res.once('close', ()=>{\n res.off('drain', onDrain);\n drained.resolve();\n });\n // Create a promise that will resolve once the response has finished. See\n // https://nodejs.org/api/http.html#event-finish_1\n const finished = new _detachedpromise.DetachedPromise();\n res.once('finish', ()=>{\n finished.resolve();\n });\n // Create a writable stream that will write to the response.\n return new WritableStream({\n write: async (chunk)=>{\n // You'd think we'd want to use `start` instead of placing this in `write`\n // but this ensures that we don't actually flush the headers until we've\n // started writing chunks.\n if (!started) {\n started = true;\n if ('performance' in globalThis && process.env.NEXT_OTEL_PERFORMANCE_PREFIX) {\n const metrics = (0, _clientcomponentrendererlogger.getClientComponentLoaderMetrics)();\n if (metrics) {\n performance.measure(`${process.env.NEXT_OTEL_PERFORMANCE_PREFIX}:next-client-component-loading`, {\n start: metrics.clientComponentLoadStart,\n end: metrics.clientComponentLoadStart + metrics.clientComponentLoadTimes\n });\n }\n }\n res.flushHeaders();\n (0, _tracer.getTracer)().trace(_constants.NextNodeServerSpan.startResponse, {\n spanName: 'start response'\n }, ()=>undefined);\n }\n try {\n const ok = res.write(chunk);\n // Added by the `compression` middleware, this is a function that will\n // flush the partially-compressed response to the client.\n if ('flush' in res && typeof res.flush === 'function') {\n res.flush();\n }\n // If the write returns false, it means there's some backpressure, so\n // wait until it's streamed before continuing.\n if (!ok) {\n await drained.promise;\n // Reset the drained promise so that we can wait for the next drain event.\n drained = new _detachedpromise.DetachedPromise();\n }\n } catch (err) {\n res.end();\n throw Object.defineProperty(new Error('failed to write chunk to response', {\n cause: err\n }), \"__NEXT_ERROR_CODE\", {\n value: \"E321\",\n enumerable: false,\n configurable: true\n });\n }\n },\n abort: (err)=>{\n if (res.writableFinished) return;\n res.destroy(err);\n },\n close: async ()=>{\n // if a waitUntil promise was passed, wait for it to resolve before\n // ending the response.\n if (waitUntilForEnd) {\n await waitUntilForEnd;\n }\n if (res.writableFinished) return;\n res.end();\n return finished.promise;\n }\n });\n}\nasync function pipeToNodeResponse(readable, res, waitUntilForEnd) {\n try {\n // If the response has already errored, then just return now.\n const { errored, destroyed } = res;\n if (errored || destroyed) return;\n // Create a new AbortController so that we can abort the readable if the\n // client disconnects.\n const controller = (0, _nextrequest.createAbortController)(res);\n const writer = createWriterFromResponse(res, waitUntilForEnd);\n await readable.pipeTo(writer, {\n signal: controller.signal\n });\n } catch (err) {\n // If this isn't related to an abort error, re-throw it.\n if (isAbortError(err)) return;\n throw Object.defineProperty(new Error('failed to pipe response', {\n cause: err\n }), \"__NEXT_ERROR_CODE\", {\n value: \"E180\",\n enumerable: false,\n configurable: true\n });\n }\n}\n\n//# sourceMappingURL=pipe-readable.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1ub2RlKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3Qvc2VydmVyL3BpcGUtcmVhZGFibGUuanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYiw4Q0FBNkM7QUFDN0M7QUFDQSxDQUFDLEVBQUM7QUFDRixNQUFNLENBR0w7QUFDRDtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQSxDQUFDO0FBQ0QscUJBQXFCLG1CQUFPLENBQUMsZ0pBQTRDO0FBQ3pFLHlCQUF5QixtQkFBTyxDQUFDLGtHQUF5QjtBQUMxRCxnQkFBZ0IsbUJBQU8sQ0FBQyxnR0FBb0I7QUFDNUMsbUJBQW1CLG1CQUFPLENBQUMsc0dBQXVCO0FBQ2xELHVDQUF1QyxtQkFBTyxDQUFDLGdJQUFvQztBQUNuRjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLCtDQUErQyx5Q0FBeUM7QUFDeEY7QUFDQTtBQUNBLHlCQUF5QjtBQUN6QjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsaUJBQWlCO0FBQ2pCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGNBQWM7QUFDZDtBQUNBO0FBQ0E7QUFDQSxpQkFBaUI7QUFDakI7QUFDQTtBQUNBO0FBQ0EsaUJBQWlCO0FBQ2pCO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBLGdCQUFnQixxQkFBcUI7QUFDckM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1QsTUFBTTtBQUNOO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBOztBQUVBIiwic291cmNlcyI6WyJEOlxcZG9uZ3l1bi1wcm9qZWN0c1xcdHdvXFxub2RlX21vZHVsZXNcXG5leHRcXGRpc3RcXHNlcnZlclxccGlwZS1yZWFkYWJsZS5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwge1xuICAgIHZhbHVlOiB0cnVlXG59KTtcbjAgJiYgKG1vZHVsZS5leHBvcnRzID0ge1xuICAgIGlzQWJvcnRFcnJvcjogbnVsbCxcbiAgICBwaXBlVG9Ob2RlUmVzcG9uc2U6IG51bGxcbn0pO1xuZnVuY3Rpb24gX2V4cG9ydCh0YXJnZXQsIGFsbCkge1xuICAgIGZvcih2YXIgbmFtZSBpbiBhbGwpT2JqZWN0LmRlZmluZVByb3BlcnR5KHRhcmdldCwgbmFtZSwge1xuICAgICAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgICAgICBnZXQ6IGFsbFtuYW1lXVxuICAgIH0pO1xufVxuX2V4cG9ydChleHBvcnRzLCB7XG4gICAgaXNBYm9ydEVycm9yOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIGlzQWJvcnRFcnJvcjtcbiAgICB9LFxuICAgIHBpcGVUb05vZGVSZXNwb25zZTogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBwaXBlVG9Ob2RlUmVzcG9uc2U7XG4gICAgfVxufSk7XG5jb25zdCBfbmV4dHJlcXVlc3QgPSByZXF1aXJlKFwiLi93ZWIvc3BlYy1leHRlbnNpb24vYWRhcHRlcnMvbmV4dC1yZXF1ZXN0XCIpO1xuY29uc3QgX2RldGFjaGVkcHJvbWlzZSA9IHJlcXVpcmUoXCIuLi9saWIvZGV0YWNoZWQtcHJvbWlzZVwiKTtcbmNvbnN0IF90cmFjZXIgPSByZXF1aXJlKFwiLi9saWIvdHJhY2UvdHJhY2VyXCIpO1xuY29uc3QgX2NvbnN0YW50cyA9IHJlcXVpcmUoXCIuL2xpYi90cmFjZS9jb25zdGFudHNcIik7XG5jb25zdCBfY2xpZW50Y29tcG9uZW50cmVuZGVyZXJsb2dnZXIgPSByZXF1aXJlKFwiLi9jbGllbnQtY29tcG9uZW50LXJlbmRlcmVyLWxvZ2dlclwiKTtcbmZ1bmN0aW9uIGlzQWJvcnRFcnJvcihlKSB7XG4gICAgcmV0dXJuIChlID09IG51bGwgPyB2b2lkIDAgOiBlLm5hbWUpID09PSAnQWJvcnRFcnJvcicgfHwgKGUgPT0gbnVsbCA/IHZvaWQgMCA6IGUubmFtZSkgPT09IF9uZXh0cmVxdWVzdC5SZXNwb25zZUFib3J0ZWROYW1lO1xufVxuZnVuY3Rpb24gY3JlYXRlV3JpdGVyRnJvbVJlc3BvbnNlKHJlcywgd2FpdFVudGlsRm9yRW5kKSB7XG4gICAgbGV0IHN0YXJ0ZWQgPSBmYWxzZTtcbiAgICAvLyBDcmVhdGUgYSBwcm9taXNlIHRoYXQgd2lsbCByZXNvbHZlIG9uY2UgdGhlIHJlc3BvbnNlIGhhcyBkcmFpbmVkLiBTZWVcbiAgICAvLyBodHRwczovL25vZGVqcy5vcmcvYXBpL3N0cmVhbS5odG1sI3N0cmVhbV9ldmVudF9kcmFpblxuICAgIGxldCBkcmFpbmVkID0gbmV3IF9kZXRhY2hlZHByb21pc2UuRGV0YWNoZWRQcm9taXNlKCk7XG4gICAgZnVuY3Rpb24gb25EcmFpbigpIHtcbiAgICAgICAgZHJhaW5lZC5yZXNvbHZlKCk7XG4gICAgfVxuICAgIHJlcy5vbignZHJhaW4nLCBvbkRyYWluKTtcbiAgICAvLyBJZiB0aGUgZmluaXNoIGV2ZW50IGZpcmVzLCBpdCBtZWFucyB3ZSBzaG91bGRuJ3QgYmxvY2sgYW5kIHdhaXQgZm9yIHRoZVxuICAgIC8vIGRyYWluIGV2ZW50LlxuICAgIHJlcy5vbmNlKCdjbG9zZScsICgpPT57XG4gICAgICAgIHJlcy5vZmYoJ2RyYWluJywgb25EcmFpbik7XG4gICAgICAgIGRyYWluZWQucmVzb2x2ZSgpO1xuICAgIH0pO1xuICAgIC8vIENyZWF0ZSBhIHByb21pc2UgdGhhdCB3aWxsIHJlc29sdmUgb25jZSB0aGUgcmVzcG9uc2UgaGFzIGZpbmlzaGVkLiBTZWVcbiAgICAvLyBodHRwczovL25vZGVqcy5vcmcvYXBpL2h0dHAuaHRtbCNldmVudC1maW5pc2hfMVxuICAgIGNvbnN0IGZpbmlzaGVkID0gbmV3IF9kZXRhY2hlZHByb21pc2UuRGV0YWNoZWRQcm9taXNlKCk7XG4gICAgcmVzLm9uY2UoJ2ZpbmlzaCcsICgpPT57XG4gICAgICAgIGZpbmlzaGVkLnJlc29sdmUoKTtcbiAgICB9KTtcbiAgICAvLyBDcmVhdGUgYSB3cml0YWJsZSBzdHJlYW0gdGhhdCB3aWxsIHdyaXRlIHRvIHRoZSByZXNwb25zZS5cbiAgICByZXR1cm4gbmV3IFdyaXRhYmxlU3RyZWFtKHtcbiAgICAgICAgd3JpdGU6IGFzeW5jIChjaHVuayk9PntcbiAgICAgICAgICAgIC8vIFlvdSdkIHRoaW5rIHdlJ2Qgd2FudCB0byB1c2UgYHN0YXJ0YCBpbnN0ZWFkIG9mIHBsYWNpbmcgdGhpcyBpbiBgd3JpdGVgXG4gICAgICAgICAgICAvLyBidXQgdGhpcyBlbnN1cmVzIHRoYXQgd2UgZG9uJ3QgYWN0dWFsbHkgZmx1c2ggdGhlIGhlYWRlcnMgdW50aWwgd2UndmVcbiAgICAgICAgICAgIC8vIHN0YXJ0ZWQgd3JpdGluZyBjaHVua3MuXG4gICAgICAgICAgICBpZiAoIXN0YXJ0ZWQpIHtcbiAgICAgICAgICAgICAgICBzdGFydGVkID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICBpZiAoJ3BlcmZvcm1hbmNlJyBpbiBnbG9iYWxUaGlzICYmIHByb2Nlc3MuZW52Lk5FWFRfT1RFTF9QRVJGT1JNQU5DRV9QUkVGSVgpIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgbWV0cmljcyA9ICgwLCBfY2xpZW50Y29tcG9uZW50cmVuZGVyZXJsb2dnZXIuZ2V0Q2xpZW50Q29tcG9uZW50TG9hZGVyTWV0cmljcykoKTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKG1ldHJpY3MpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHBlcmZvcm1hbmNlLm1lYXN1cmUoYCR7cHJvY2Vzcy5lbnYuTkVYVF9PVEVMX1BFUkZPUk1BTkNFX1BSRUZJWH06bmV4dC1jbGllbnQtY29tcG9uZW50LWxvYWRpbmdgLCB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnQ6IG1ldHJpY3MuY2xpZW50Q29tcG9uZW50TG9hZFN0YXJ0LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZDogbWV0cmljcy5jbGllbnRDb21wb25lbnRMb2FkU3RhcnQgKyBtZXRyaWNzLmNsaWVudENvbXBvbmVudExvYWRUaW1lc1xuICAgICAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgcmVzLmZsdXNoSGVhZGVycygpO1xuICAgICAgICAgICAgICAgICgwLCBfdHJhY2VyLmdldFRyYWNlcikoKS50cmFjZShfY29uc3RhbnRzLk5leHROb2RlU2VydmVyU3Bhbi5zdGFydFJlc3BvbnNlLCB7XG4gICAgICAgICAgICAgICAgICAgIHNwYW5OYW1lOiAnc3RhcnQgcmVzcG9uc2UnXG4gICAgICAgICAgICAgICAgfSwgKCk9PnVuZGVmaW5lZCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgIGNvbnN0IG9rID0gcmVzLndyaXRlKGNodW5rKTtcbiAgICAgICAgICAgICAgICAvLyBBZGRlZCBieSB0aGUgYGNvbXByZXNzaW9uYCBtaWRkbGV3YXJlLCB0aGlzIGlzIGEgZnVuY3Rpb24gdGhhdCB3aWxsXG4gICAgICAgICAgICAgICAgLy8gZmx1c2ggdGhlIHBhcnRpYWxseS1jb21wcmVzc2VkIHJlc3BvbnNlIHRvIHRoZSBjbGllbnQuXG4gICAgICAgICAgICAgICAgaWYgKCdmbHVzaCcgaW4gcmVzICYmIHR5cGVvZiByZXMuZmx1c2ggPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgICAgICAgICAgICAgcmVzLmZsdXNoKCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIC8vIElmIHRoZSB3cml0ZSByZXR1cm5zIGZhbHNlLCBpdCBtZWFucyB0aGVyZSdzIHNvbWUgYmFja3ByZXNzdXJlLCBzb1xuICAgICAgICAgICAgICAgIC8vIHdhaXQgdW50aWwgaXQncyBzdHJlYW1lZCBiZWZvcmUgY29udGludWluZy5cbiAgICAgICAgICAgICAgICBpZiAoIW9rKSB7XG4gICAgICAgICAgICAgICAgICAgIGF3YWl0IGRyYWluZWQucHJvbWlzZTtcbiAgICAgICAgICAgICAgICAgICAgLy8gUmVzZXQgdGhlIGRyYWluZWQgcHJvbWlzZSBzbyB0aGF0IHdlIGNhbiB3YWl0IGZvciB0aGUgbmV4dCBkcmFpbiBldmVudC5cbiAgICAgICAgICAgICAgICAgICAgZHJhaW5lZCA9IG5ldyBfZGV0YWNoZWRwcm9taXNlLkRldGFjaGVkUHJvbWlzZSgpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgICAgICAgICAgIHJlcy5lbmQoKTtcbiAgICAgICAgICAgICAgICB0aHJvdyBPYmplY3QuZGVmaW5lUHJvcGVydHkobmV3IEVycm9yKCdmYWlsZWQgdG8gd3JpdGUgY2h1bmsgdG8gcmVzcG9uc2UnLCB7XG4gICAgICAgICAgICAgICAgICAgIGNhdXNlOiBlcnJcbiAgICAgICAgICAgICAgICB9KSwgXCJfX05FWFRfRVJST1JfQ09ERVwiLCB7XG4gICAgICAgICAgICAgICAgICAgIHZhbHVlOiBcIkUzMjFcIixcbiAgICAgICAgICAgICAgICAgICAgZW51bWVyYWJsZTogZmFsc2UsXG4gICAgICAgICAgICAgICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZVxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBhYm9ydDogKGVycik9PntcbiAgICAgICAgICAgIGlmIChyZXMud3JpdGFibGVGaW5pc2hlZCkgcmV0dXJuO1xuICAgICAgICAgICAgcmVzLmRlc3Ryb3koZXJyKTtcbiAgICAgICAgfSxcbiAgICAgICAgY2xvc2U6IGFzeW5jICgpPT57XG4gICAgICAgICAgICAvLyBpZiBhIHdhaXRVbnRpbCBwcm9taXNlIHdhcyBwYXNzZWQsIHdhaXQgZm9yIGl0IHRvIHJlc29sdmUgYmVmb3JlXG4gICAgICAgICAgICAvLyBlbmRpbmcgdGhlIHJlc3BvbnNlLlxuICAgICAgICAgICAgaWYgKHdhaXRVbnRpbEZvckVuZCkge1xuICAgICAgICAgICAgICAgIGF3YWl0IHdhaXRVbnRpbEZvckVuZDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChyZXMud3JpdGFibGVGaW5pc2hlZCkgcmV0dXJuO1xuICAgICAgICAgICAgcmVzLmVuZCgpO1xuICAgICAgICAgICAgcmV0dXJuIGZpbmlzaGVkLnByb21pc2U7XG4gICAgICAgIH1cbiAgICB9KTtcbn1cbmFzeW5jIGZ1bmN0aW9uIHBpcGVUb05vZGVSZXNwb25zZShyZWFkYWJsZSwgcmVzLCB3YWl0VW50aWxGb3JFbmQpIHtcbiAgICB0cnkge1xuICAgICAgICAvLyBJZiB0aGUgcmVzcG9uc2UgaGFzIGFscmVhZHkgZXJyb3JlZCwgdGhlbiBqdXN0IHJldHVybiBub3cuXG4gICAgICAgIGNvbnN0IHsgZXJyb3JlZCwgZGVzdHJveWVkIH0gPSByZXM7XG4gICAgICAgIGlmIChlcnJvcmVkIHx8IGRlc3Ryb3llZCkgcmV0dXJuO1xuICAgICAgICAvLyBDcmVhdGUgYSBuZXcgQWJvcnRDb250cm9sbGVyIHNvIHRoYXQgd2UgY2FuIGFib3J0IHRoZSByZWFkYWJsZSBpZiB0aGVcbiAgICAgICAgLy8gY2xpZW50IGRpc2Nvbm5lY3RzLlxuICAgICAgICBjb25zdCBjb250cm9sbGVyID0gKDAsIF9uZXh0cmVxdWVzdC5jcmVhdGVBYm9ydENvbnRyb2xsZXIpKHJlcyk7XG4gICAgICAgIGNvbnN0IHdyaXRlciA9IGNyZWF0ZVdyaXRlckZyb21SZXNwb25zZShyZXMsIHdhaXRVbnRpbEZvckVuZCk7XG4gICAgICAgIGF3YWl0IHJlYWRhYmxlLnBpcGVUbyh3cml0ZXIsIHtcbiAgICAgICAgICAgIHNpZ25hbDogY29udHJvbGxlci5zaWduYWxcbiAgICAgICAgfSk7XG4gICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICAgIC8vIElmIHRoaXMgaXNuJ3QgcmVsYXRlZCB0byBhbiBhYm9ydCBlcnJvciwgcmUtdGhyb3cgaXQuXG4gICAgICAgIGlmIChpc0Fib3J0RXJyb3IoZXJyKSkgcmV0dXJuO1xuICAgICAgICB0aHJvdyBPYmplY3QuZGVmaW5lUHJvcGVydHkobmV3IEVycm9yKCdmYWlsZWQgdG8gcGlwZSByZXNwb25zZScsIHtcbiAgICAgICAgICAgIGNhdXNlOiBlcnJcbiAgICAgICAgfSksIFwiX19ORVhUX0VSUk9SX0NPREVcIiwge1xuICAgICAgICAgICAgdmFsdWU6IFwiRTE4MFwiLFxuICAgICAgICAgICAgZW51bWVyYWJsZTogZmFsc2UsXG4gICAgICAgICAgICBjb25maWd1cmFibGU6IHRydWVcbiAgICAgICAgfSk7XG4gICAgfVxufVxuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1waXBlLXJlYWRhYmxlLmpzLm1hcCJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(pages-dir-node)/./node_modules/next/dist/server/pipe-readable.js\n"); - -/***/ }), - -/***/ "(pages-dir-node)/./node_modules/next/dist/server/render-result.js": -/*!********************************************************!*\ - !*** ./node_modules/next/dist/server/render-result.js ***! - \********************************************************/ -/***/ ((__unused_webpack_module, exports, __webpack_require__) => { - -"use strict"; -eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"default\", ({\n enumerable: true,\n get: function() {\n return RenderResult;\n }\n}));\nconst _nodewebstreamshelper = __webpack_require__(/*! ./stream-utils/node-web-streams-helper */ \"(pages-dir-node)/./node_modules/next/dist/server/stream-utils/node-web-streams-helper.js\");\nconst _pipereadable = __webpack_require__(/*! ./pipe-readable */ \"(pages-dir-node)/./node_modules/next/dist/server/pipe-readable.js\");\nclass RenderResult {\n /**\n * Creates a new RenderResult instance from a static response.\n *\n * @param value the static response value\n * @returns a new RenderResult instance\n */ static fromStatic(value) {\n return new RenderResult(value, {\n metadata: {}\n });\n }\n constructor(response, { contentType, waitUntil, metadata }){\n this.response = response;\n this.contentType = contentType;\n this.metadata = metadata;\n this.waitUntil = waitUntil;\n }\n assignMetadata(metadata) {\n Object.assign(this.metadata, metadata);\n }\n /**\n * Returns true if the response is null. It can be null if the response was\n * not found or was already sent.\n */ get isNull() {\n return this.response === null;\n }\n /**\n * Returns false if the response is a string. It can be a string if the page\n * was prerendered. If it's not, then it was generated dynamically.\n */ get isDynamic() {\n return typeof this.response !== 'string';\n }\n toUnchunkedBuffer(stream = false) {\n if (this.response === null) {\n throw Object.defineProperty(new Error('Invariant: null responses cannot be unchunked'), \"__NEXT_ERROR_CODE\", {\n value: \"E274\",\n enumerable: false,\n configurable: true\n });\n }\n if (typeof this.response !== 'string') {\n if (!stream) {\n throw Object.defineProperty(new Error('Invariant: dynamic responses cannot be unchunked. This is a bug in Next.js'), \"__NEXT_ERROR_CODE\", {\n value: \"E81\",\n enumerable: false,\n configurable: true\n });\n }\n return (0, _nodewebstreamshelper.streamToBuffer)(this.readable);\n }\n return Buffer.from(this.response);\n }\n toUnchunkedString(stream = false) {\n if (this.response === null) {\n throw Object.defineProperty(new Error('Invariant: null responses cannot be unchunked'), \"__NEXT_ERROR_CODE\", {\n value: \"E274\",\n enumerable: false,\n configurable: true\n });\n }\n if (typeof this.response !== 'string') {\n if (!stream) {\n throw Object.defineProperty(new Error('Invariant: dynamic responses cannot be unchunked. This is a bug in Next.js'), \"__NEXT_ERROR_CODE\", {\n value: \"E81\",\n enumerable: false,\n configurable: true\n });\n }\n return (0, _nodewebstreamshelper.streamToString)(this.readable);\n }\n return this.response;\n }\n /**\n * Returns the response if it is a stream, or throws an error if it is a\n * string.\n */ get readable() {\n if (this.response === null) {\n throw Object.defineProperty(new Error('Invariant: null responses cannot be streamed'), \"__NEXT_ERROR_CODE\", {\n value: \"E14\",\n enumerable: false,\n configurable: true\n });\n }\n if (typeof this.response === 'string') {\n throw Object.defineProperty(new Error('Invariant: static responses cannot be streamed'), \"__NEXT_ERROR_CODE\", {\n value: \"E151\",\n enumerable: false,\n configurable: true\n });\n }\n if (Buffer.isBuffer(this.response)) {\n return (0, _nodewebstreamshelper.streamFromBuffer)(this.response);\n }\n // If the response is an array of streams, then chain them together.\n if (Array.isArray(this.response)) {\n return (0, _nodewebstreamshelper.chainStreams)(...this.response);\n }\n return this.response;\n }\n /**\n * Chains a new stream to the response. This will convert the response to an\n * array of streams if it is not already one and will add the new stream to\n * the end. When this response is piped, all of the streams will be piped\n * one after the other.\n *\n * @param readable The new stream to chain\n */ chain(readable) {\n if (this.response === null) {\n throw Object.defineProperty(new Error('Invariant: response is null. This is a bug in Next.js'), \"__NEXT_ERROR_CODE\", {\n value: \"E258\",\n enumerable: false,\n configurable: true\n });\n }\n // If the response is not an array of streams already, make it one.\n let responses;\n if (typeof this.response === 'string') {\n responses = [\n (0, _nodewebstreamshelper.streamFromString)(this.response)\n ];\n } else if (Array.isArray(this.response)) {\n responses = this.response;\n } else if (Buffer.isBuffer(this.response)) {\n responses = [\n (0, _nodewebstreamshelper.streamFromBuffer)(this.response)\n ];\n } else {\n responses = [\n this.response\n ];\n }\n // Add the new stream to the array.\n responses.push(readable);\n // Update the response.\n this.response = responses;\n }\n /**\n * Pipes the response to a writable stream. This will close/cancel the\n * writable stream if an error is encountered. If this doesn't throw, then\n * the writable stream will be closed or aborted.\n *\n * @param writable Writable stream to pipe the response to\n */ async pipeTo(writable) {\n try {\n await this.readable.pipeTo(writable, {\n // We want to close the writable stream ourselves so that we can wait\n // for the waitUntil promise to resolve before closing it. If an error\n // is encountered, we'll abort the writable stream if we swallowed the\n // error.\n preventClose: true\n });\n // If there is a waitUntil promise, wait for it to resolve before\n // closing the writable stream.\n if (this.waitUntil) await this.waitUntil;\n // Close the writable stream.\n await writable.close();\n } catch (err) {\n // If this is an abort error, we should abort the writable stream (as we\n // took ownership of it when we started piping). We don't need to re-throw\n // because we handled the error.\n if ((0, _pipereadable.isAbortError)(err)) {\n // Abort the writable stream if an error is encountered.\n await writable.abort(err);\n return;\n }\n // We're not aborting the writer here as when this method throws it's not\n // clear as to how so the caller should assume it's their responsibility\n // to clean up the writer.\n throw err;\n }\n }\n /**\n * Pipes the response to a node response. This will close/cancel the node\n * response if an error is encountered.\n *\n * @param res\n */ async pipeToNodeResponse(res) {\n await (0, _pipereadable.pipeToNodeResponse)(this.readable, res, this.waitUntil);\n }\n}\n\n//# sourceMappingURL=render-result.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1ub2RlKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3Qvc2VydmVyL3JlbmRlci1yZXN1bHQuanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYiw4Q0FBNkM7QUFDN0M7QUFDQSxDQUFDLEVBQUM7QUFDRiwyQ0FBMEM7QUFDMUM7QUFDQTtBQUNBO0FBQ0E7QUFDQSxDQUFDLEVBQUM7QUFDRiw4QkFBOEIsbUJBQU8sQ0FBQyx3SUFBd0M7QUFDOUUsc0JBQXNCLG1CQUFPLENBQUMsMEZBQWlCO0FBQy9DO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBLDRCQUE0QixrQ0FBa0M7QUFDOUQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGFBQWE7QUFDYjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGlCQUFpQjtBQUNqQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsYUFBYTtBQUNiO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsaUJBQWlCO0FBQ2pCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxhQUFhO0FBQ2I7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsYUFBYTtBQUNiO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxhQUFhO0FBQ2I7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxVQUFVO0FBQ1Y7QUFDQSxVQUFVO0FBQ1Y7QUFDQTtBQUNBO0FBQ0EsVUFBVTtBQUNWO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxhQUFhO0FBQ2I7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFVBQVU7QUFDVjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBIiwic291cmNlcyI6WyJEOlxcZG9uZ3l1bi1wcm9qZWN0c1xcdHdvXFxub2RlX21vZHVsZXNcXG5leHRcXGRpc3RcXHNlcnZlclxccmVuZGVyLXJlc3VsdC5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwge1xuICAgIHZhbHVlOiB0cnVlXG59KTtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcImRlZmF1bHRcIiwge1xuICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgZ2V0OiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIFJlbmRlclJlc3VsdDtcbiAgICB9XG59KTtcbmNvbnN0IF9ub2Rld2Vic3RyZWFtc2hlbHBlciA9IHJlcXVpcmUoXCIuL3N0cmVhbS11dGlscy9ub2RlLXdlYi1zdHJlYW1zLWhlbHBlclwiKTtcbmNvbnN0IF9waXBlcmVhZGFibGUgPSByZXF1aXJlKFwiLi9waXBlLXJlYWRhYmxlXCIpO1xuY2xhc3MgUmVuZGVyUmVzdWx0IHtcbiAgICAvKipcbiAgICogQ3JlYXRlcyBhIG5ldyBSZW5kZXJSZXN1bHQgaW5zdGFuY2UgZnJvbSBhIHN0YXRpYyByZXNwb25zZS5cbiAgICpcbiAgICogQHBhcmFtIHZhbHVlIHRoZSBzdGF0aWMgcmVzcG9uc2UgdmFsdWVcbiAgICogQHJldHVybnMgYSBuZXcgUmVuZGVyUmVzdWx0IGluc3RhbmNlXG4gICAqLyBzdGF0aWMgZnJvbVN0YXRpYyh2YWx1ZSkge1xuICAgICAgICByZXR1cm4gbmV3IFJlbmRlclJlc3VsdCh2YWx1ZSwge1xuICAgICAgICAgICAgbWV0YWRhdGE6IHt9XG4gICAgICAgIH0pO1xuICAgIH1cbiAgICBjb25zdHJ1Y3RvcihyZXNwb25zZSwgeyBjb250ZW50VHlwZSwgd2FpdFVudGlsLCBtZXRhZGF0YSB9KXtcbiAgICAgICAgdGhpcy5yZXNwb25zZSA9IHJlc3BvbnNlO1xuICAgICAgICB0aGlzLmNvbnRlbnRUeXBlID0gY29udGVudFR5cGU7XG4gICAgICAgIHRoaXMubWV0YWRhdGEgPSBtZXRhZGF0YTtcbiAgICAgICAgdGhpcy53YWl0VW50aWwgPSB3YWl0VW50aWw7XG4gICAgfVxuICAgIGFzc2lnbk1ldGFkYXRhKG1ldGFkYXRhKSB7XG4gICAgICAgIE9iamVjdC5hc3NpZ24odGhpcy5tZXRhZGF0YSwgbWV0YWRhdGEpO1xuICAgIH1cbiAgICAvKipcbiAgICogUmV0dXJucyB0cnVlIGlmIHRoZSByZXNwb25zZSBpcyBudWxsLiBJdCBjYW4gYmUgbnVsbCBpZiB0aGUgcmVzcG9uc2Ugd2FzXG4gICAqIG5vdCBmb3VuZCBvciB3YXMgYWxyZWFkeSBzZW50LlxuICAgKi8gZ2V0IGlzTnVsbCgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMucmVzcG9uc2UgPT09IG51bGw7XG4gICAgfVxuICAgIC8qKlxuICAgKiBSZXR1cm5zIGZhbHNlIGlmIHRoZSByZXNwb25zZSBpcyBhIHN0cmluZy4gSXQgY2FuIGJlIGEgc3RyaW5nIGlmIHRoZSBwYWdlXG4gICAqIHdhcyBwcmVyZW5kZXJlZC4gSWYgaXQncyBub3QsIHRoZW4gaXQgd2FzIGdlbmVyYXRlZCBkeW5hbWljYWxseS5cbiAgICovIGdldCBpc0R5bmFtaWMoKSB7XG4gICAgICAgIHJldHVybiB0eXBlb2YgdGhpcy5yZXNwb25zZSAhPT0gJ3N0cmluZyc7XG4gICAgfVxuICAgIHRvVW5jaHVua2VkQnVmZmVyKHN0cmVhbSA9IGZhbHNlKSB7XG4gICAgICAgIGlmICh0aGlzLnJlc3BvbnNlID09PSBudWxsKSB7XG4gICAgICAgICAgICB0aHJvdyBPYmplY3QuZGVmaW5lUHJvcGVydHkobmV3IEVycm9yKCdJbnZhcmlhbnQ6IG51bGwgcmVzcG9uc2VzIGNhbm5vdCBiZSB1bmNodW5rZWQnKSwgXCJfX05FWFRfRVJST1JfQ09ERVwiLCB7XG4gICAgICAgICAgICAgICAgdmFsdWU6IFwiRTI3NFwiLFxuICAgICAgICAgICAgICAgIGVudW1lcmFibGU6IGZhbHNlLFxuICAgICAgICAgICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZVxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLnJlc3BvbnNlICE9PSAnc3RyaW5nJykge1xuICAgICAgICAgICAgaWYgKCFzdHJlYW0pIHtcbiAgICAgICAgICAgICAgICB0aHJvdyBPYmplY3QuZGVmaW5lUHJvcGVydHkobmV3IEVycm9yKCdJbnZhcmlhbnQ6IGR5bmFtaWMgcmVzcG9uc2VzIGNhbm5vdCBiZSB1bmNodW5rZWQuIFRoaXMgaXMgYSBidWcgaW4gTmV4dC5qcycpLCBcIl9fTkVYVF9FUlJPUl9DT0RFXCIsIHtcbiAgICAgICAgICAgICAgICAgICAgdmFsdWU6IFwiRTgxXCIsXG4gICAgICAgICAgICAgICAgICAgIGVudW1lcmFibGU6IGZhbHNlLFxuICAgICAgICAgICAgICAgICAgICBjb25maWd1cmFibGU6IHRydWVcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiAoMCwgX25vZGV3ZWJzdHJlYW1zaGVscGVyLnN0cmVhbVRvQnVmZmVyKSh0aGlzLnJlYWRhYmxlKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gQnVmZmVyLmZyb20odGhpcy5yZXNwb25zZSk7XG4gICAgfVxuICAgIHRvVW5jaHVua2VkU3RyaW5nKHN0cmVhbSA9IGZhbHNlKSB7XG4gICAgICAgIGlmICh0aGlzLnJlc3BvbnNlID09PSBudWxsKSB7XG4gICAgICAgICAgICB0aHJvdyBPYmplY3QuZGVmaW5lUHJvcGVydHkobmV3IEVycm9yKCdJbnZhcmlhbnQ6IG51bGwgcmVzcG9uc2VzIGNhbm5vdCBiZSB1bmNodW5rZWQnKSwgXCJfX05FWFRfRVJST1JfQ09ERVwiLCB7XG4gICAgICAgICAgICAgICAgdmFsdWU6IFwiRTI3NFwiLFxuICAgICAgICAgICAgICAgIGVudW1lcmFibGU6IGZhbHNlLFxuICAgICAgICAgICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZVxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLnJlc3BvbnNlICE9PSAnc3RyaW5nJykge1xuICAgICAgICAgICAgaWYgKCFzdHJlYW0pIHtcbiAgICAgICAgICAgICAgICB0aHJvdyBPYmplY3QuZGVmaW5lUHJvcGVydHkobmV3IEVycm9yKCdJbnZhcmlhbnQ6IGR5bmFtaWMgcmVzcG9uc2VzIGNhbm5vdCBiZSB1bmNodW5rZWQuIFRoaXMgaXMgYSBidWcgaW4gTmV4dC5qcycpLCBcIl9fTkVYVF9FUlJPUl9DT0RFXCIsIHtcbiAgICAgICAgICAgICAgICAgICAgdmFsdWU6IFwiRTgxXCIsXG4gICAgICAgICAgICAgICAgICAgIGVudW1lcmFibGU6IGZhbHNlLFxuICAgICAgICAgICAgICAgICAgICBjb25maWd1cmFibGU6IHRydWVcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiAoMCwgX25vZGV3ZWJzdHJlYW1zaGVscGVyLnN0cmVhbVRvU3RyaW5nKSh0aGlzLnJlYWRhYmxlKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdGhpcy5yZXNwb25zZTtcbiAgICB9XG4gICAgLyoqXG4gICAqIFJldHVybnMgdGhlIHJlc3BvbnNlIGlmIGl0IGlzIGEgc3RyZWFtLCBvciB0aHJvd3MgYW4gZXJyb3IgaWYgaXQgaXMgYVxuICAgKiBzdHJpbmcuXG4gICAqLyBnZXQgcmVhZGFibGUoKSB7XG4gICAgICAgIGlmICh0aGlzLnJlc3BvbnNlID09PSBudWxsKSB7XG4gICAgICAgICAgICB0aHJvdyBPYmplY3QuZGVmaW5lUHJvcGVydHkobmV3IEVycm9yKCdJbnZhcmlhbnQ6IG51bGwgcmVzcG9uc2VzIGNhbm5vdCBiZSBzdHJlYW1lZCcpLCBcIl9fTkVYVF9FUlJPUl9DT0RFXCIsIHtcbiAgICAgICAgICAgICAgICB2YWx1ZTogXCJFMTRcIixcbiAgICAgICAgICAgICAgICBlbnVtZXJhYmxlOiBmYWxzZSxcbiAgICAgICAgICAgICAgICBjb25maWd1cmFibGU6IHRydWVcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5yZXNwb25zZSA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgICAgIHRocm93IE9iamVjdC5kZWZpbmVQcm9wZXJ0eShuZXcgRXJyb3IoJ0ludmFyaWFudDogc3RhdGljIHJlc3BvbnNlcyBjYW5ub3QgYmUgc3RyZWFtZWQnKSwgXCJfX05FWFRfRVJST1JfQ09ERVwiLCB7XG4gICAgICAgICAgICAgICAgdmFsdWU6IFwiRTE1MVwiLFxuICAgICAgICAgICAgICAgIGVudW1lcmFibGU6IGZhbHNlLFxuICAgICAgICAgICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZVxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKEJ1ZmZlci5pc0J1ZmZlcih0aGlzLnJlc3BvbnNlKSkge1xuICAgICAgICAgICAgcmV0dXJuICgwLCBfbm9kZXdlYnN0cmVhbXNoZWxwZXIuc3RyZWFtRnJvbUJ1ZmZlcikodGhpcy5yZXNwb25zZSk7XG4gICAgICAgIH1cbiAgICAgICAgLy8gSWYgdGhlIHJlc3BvbnNlIGlzIGFuIGFycmF5IG9mIHN0cmVhbXMsIHRoZW4gY2hhaW4gdGhlbSB0b2dldGhlci5cbiAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkodGhpcy5yZXNwb25zZSkpIHtcbiAgICAgICAgICAgIHJldHVybiAoMCwgX25vZGV3ZWJzdHJlYW1zaGVscGVyLmNoYWluU3RyZWFtcykoLi4udGhpcy5yZXNwb25zZSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRoaXMucmVzcG9uc2U7XG4gICAgfVxuICAgIC8qKlxuICAgKiBDaGFpbnMgYSBuZXcgc3RyZWFtIHRvIHRoZSByZXNwb25zZS4gVGhpcyB3aWxsIGNvbnZlcnQgdGhlIHJlc3BvbnNlIHRvIGFuXG4gICAqIGFycmF5IG9mIHN0cmVhbXMgaWYgaXQgaXMgbm90IGFscmVhZHkgb25lIGFuZCB3aWxsIGFkZCB0aGUgbmV3IHN0cmVhbSB0b1xuICAgKiB0aGUgZW5kLiBXaGVuIHRoaXMgcmVzcG9uc2UgaXMgcGlwZWQsIGFsbCBvZiB0aGUgc3RyZWFtcyB3aWxsIGJlIHBpcGVkXG4gICAqIG9uZSBhZnRlciB0aGUgb3RoZXIuXG4gICAqXG4gICAqIEBwYXJhbSByZWFkYWJsZSBUaGUgbmV3IHN0cmVhbSB0byBjaGFpblxuICAgKi8gY2hhaW4ocmVhZGFibGUpIHtcbiAgICAgICAgaWYgKHRoaXMucmVzcG9uc2UgPT09IG51bGwpIHtcbiAgICAgICAgICAgIHRocm93IE9iamVjdC5kZWZpbmVQcm9wZXJ0eShuZXcgRXJyb3IoJ0ludmFyaWFudDogcmVzcG9uc2UgaXMgbnVsbC4gVGhpcyBpcyBhIGJ1ZyBpbiBOZXh0LmpzJyksIFwiX19ORVhUX0VSUk9SX0NPREVcIiwge1xuICAgICAgICAgICAgICAgIHZhbHVlOiBcIkUyNThcIixcbiAgICAgICAgICAgICAgICBlbnVtZXJhYmxlOiBmYWxzZSxcbiAgICAgICAgICAgICAgICBjb25maWd1cmFibGU6IHRydWVcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICAgIC8vIElmIHRoZSByZXNwb25zZSBpcyBub3QgYW4gYXJyYXkgb2Ygc3RyZWFtcyBhbHJlYWR5LCBtYWtlIGl0IG9uZS5cbiAgICAgICAgbGV0IHJlc3BvbnNlcztcbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLnJlc3BvbnNlID09PSAnc3RyaW5nJykge1xuICAgICAgICAgICAgcmVzcG9uc2VzID0gW1xuICAgICAgICAgICAgICAgICgwLCBfbm9kZXdlYnN0cmVhbXNoZWxwZXIuc3RyZWFtRnJvbVN0cmluZykodGhpcy5yZXNwb25zZSlcbiAgICAgICAgICAgIF07XG4gICAgICAgIH0gZWxzZSBpZiAoQXJyYXkuaXNBcnJheSh0aGlzLnJlc3BvbnNlKSkge1xuICAgICAgICAgICAgcmVzcG9uc2VzID0gdGhpcy5yZXNwb25zZTtcbiAgICAgICAgfSBlbHNlIGlmIChCdWZmZXIuaXNCdWZmZXIodGhpcy5yZXNwb25zZSkpIHtcbiAgICAgICAgICAgIHJlc3BvbnNlcyA9IFtcbiAgICAgICAgICAgICAgICAoMCwgX25vZGV3ZWJzdHJlYW1zaGVscGVyLnN0cmVhbUZyb21CdWZmZXIpKHRoaXMucmVzcG9uc2UpXG4gICAgICAgICAgICBdO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmVzcG9uc2VzID0gW1xuICAgICAgICAgICAgICAgIHRoaXMucmVzcG9uc2VcbiAgICAgICAgICAgIF07XG4gICAgICAgIH1cbiAgICAgICAgLy8gQWRkIHRoZSBuZXcgc3RyZWFtIHRvIHRoZSBhcnJheS5cbiAgICAgICAgcmVzcG9uc2VzLnB1c2gocmVhZGFibGUpO1xuICAgICAgICAvLyBVcGRhdGUgdGhlIHJlc3BvbnNlLlxuICAgICAgICB0aGlzLnJlc3BvbnNlID0gcmVzcG9uc2VzO1xuICAgIH1cbiAgICAvKipcbiAgICogUGlwZXMgdGhlIHJlc3BvbnNlIHRvIGEgd3JpdGFibGUgc3RyZWFtLiBUaGlzIHdpbGwgY2xvc2UvY2FuY2VsIHRoZVxuICAgKiB3cml0YWJsZSBzdHJlYW0gaWYgYW4gZXJyb3IgaXMgZW5jb3VudGVyZWQuIElmIHRoaXMgZG9lc24ndCB0aHJvdywgdGhlblxuICAgKiB0aGUgd3JpdGFibGUgc3RyZWFtIHdpbGwgYmUgY2xvc2VkIG9yIGFib3J0ZWQuXG4gICAqXG4gICAqIEBwYXJhbSB3cml0YWJsZSBXcml0YWJsZSBzdHJlYW0gdG8gcGlwZSB0aGUgcmVzcG9uc2UgdG9cbiAgICovIGFzeW5jIHBpcGVUbyh3cml0YWJsZSkge1xuICAgICAgICB0cnkge1xuICAgICAgICAgICAgYXdhaXQgdGhpcy5yZWFkYWJsZS5waXBlVG8od3JpdGFibGUsIHtcbiAgICAgICAgICAgICAgICAvLyBXZSB3YW50IHRvIGNsb3NlIHRoZSB3cml0YWJsZSBzdHJlYW0gb3Vyc2VsdmVzIHNvIHRoYXQgd2UgY2FuIHdhaXRcbiAgICAgICAgICAgICAgICAvLyBmb3IgdGhlIHdhaXRVbnRpbCBwcm9taXNlIHRvIHJlc29sdmUgYmVmb3JlIGNsb3NpbmcgaXQuIElmIGFuIGVycm9yXG4gICAgICAgICAgICAgICAgLy8gaXMgZW5jb3VudGVyZWQsIHdlJ2xsIGFib3J0IHRoZSB3cml0YWJsZSBzdHJlYW0gaWYgd2Ugc3dhbGxvd2VkIHRoZVxuICAgICAgICAgICAgICAgIC8vIGVycm9yLlxuICAgICAgICAgICAgICAgIHByZXZlbnRDbG9zZTogdHJ1ZVxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAvLyBJZiB0aGVyZSBpcyBhIHdhaXRVbnRpbCBwcm9taXNlLCB3YWl0IGZvciBpdCB0byByZXNvbHZlIGJlZm9yZVxuICAgICAgICAgICAgLy8gY2xvc2luZyB0aGUgd3JpdGFibGUgc3RyZWFtLlxuICAgICAgICAgICAgaWYgKHRoaXMud2FpdFVudGlsKSBhd2FpdCB0aGlzLndhaXRVbnRpbDtcbiAgICAgICAgICAgIC8vIENsb3NlIHRoZSB3cml0YWJsZSBzdHJlYW0uXG4gICAgICAgICAgICBhd2FpdCB3cml0YWJsZS5jbG9zZSgpO1xuICAgICAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgICAgICAgIC8vIElmIHRoaXMgaXMgYW4gYWJvcnQgZXJyb3IsIHdlIHNob3VsZCBhYm9ydCB0aGUgd3JpdGFibGUgc3RyZWFtIChhcyB3ZVxuICAgICAgICAgICAgLy8gdG9vayBvd25lcnNoaXAgb2YgaXQgd2hlbiB3ZSBzdGFydGVkIHBpcGluZykuIFdlIGRvbid0IG5lZWQgdG8gcmUtdGhyb3dcbiAgICAgICAgICAgIC8vIGJlY2F1c2Ugd2UgaGFuZGxlZCB0aGUgZXJyb3IuXG4gICAgICAgICAgICBpZiAoKDAsIF9waXBlcmVhZGFibGUuaXNBYm9ydEVycm9yKShlcnIpKSB7XG4gICAgICAgICAgICAgICAgLy8gQWJvcnQgdGhlIHdyaXRhYmxlIHN0cmVhbSBpZiBhbiBlcnJvciBpcyBlbmNvdW50ZXJlZC5cbiAgICAgICAgICAgICAgICBhd2FpdCB3cml0YWJsZS5hYm9ydChlcnIpO1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC8vIFdlJ3JlIG5vdCBhYm9ydGluZyB0aGUgd3JpdGVyIGhlcmUgYXMgd2hlbiB0aGlzIG1ldGhvZCB0aHJvd3MgaXQncyBub3RcbiAgICAgICAgICAgIC8vIGNsZWFyIGFzIHRvIGhvdyBzbyB0aGUgY2FsbGVyIHNob3VsZCBhc3N1bWUgaXQncyB0aGVpciByZXNwb25zaWJpbGl0eVxuICAgICAgICAgICAgLy8gdG8gY2xlYW4gdXAgdGhlIHdyaXRlci5cbiAgICAgICAgICAgIHRocm93IGVycjtcbiAgICAgICAgfVxuICAgIH1cbiAgICAvKipcbiAgICogUGlwZXMgdGhlIHJlc3BvbnNlIHRvIGEgbm9kZSByZXNwb25zZS4gVGhpcyB3aWxsIGNsb3NlL2NhbmNlbCB0aGUgbm9kZVxuICAgKiByZXNwb25zZSBpZiBhbiBlcnJvciBpcyBlbmNvdW50ZXJlZC5cbiAgICpcbiAgICogQHBhcmFtIHJlc1xuICAgKi8gYXN5bmMgcGlwZVRvTm9kZVJlc3BvbnNlKHJlcykge1xuICAgICAgICBhd2FpdCAoMCwgX3BpcGVyZWFkYWJsZS5waXBlVG9Ob2RlUmVzcG9uc2UpKHRoaXMucmVhZGFibGUsIHJlcywgdGhpcy53YWl0VW50aWwpO1xuICAgIH1cbn1cblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9cmVuZGVyLXJlc3VsdC5qcy5tYXAiXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(pages-dir-node)/./node_modules/next/dist/server/render-result.js\n"); - -/***/ }), - -/***/ "(pages-dir-node)/./node_modules/next/dist/server/request-meta.js": -/*!*******************************************************!*\ - !*** ./node_modules/next/dist/server/request-meta.js ***! - \*******************************************************/ -/***/ ((__unused_webpack_module, exports) => { - -"use strict"; -eval("/* eslint-disable no-redeclare */ \nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n NEXT_REQUEST_META: function() {\n return NEXT_REQUEST_META;\n },\n addRequestMeta: function() {\n return addRequestMeta;\n },\n getRequestMeta: function() {\n return getRequestMeta;\n },\n removeRequestMeta: function() {\n return removeRequestMeta;\n },\n setRequestMeta: function() {\n return setRequestMeta;\n }\n});\nconst NEXT_REQUEST_META = Symbol.for('NextInternalRequestMeta');\nfunction getRequestMeta(req, key) {\n const meta = req[NEXT_REQUEST_META] || {};\n return typeof key === 'string' ? meta[key] : meta;\n}\nfunction setRequestMeta(req, meta) {\n req[NEXT_REQUEST_META] = meta;\n return meta;\n}\nfunction addRequestMeta(request, key, value) {\n const meta = getRequestMeta(request);\n meta[key] = value;\n return setRequestMeta(request, meta);\n}\nfunction removeRequestMeta(request, key) {\n const meta = getRequestMeta(request);\n delete meta[key];\n return setRequestMeta(request, meta);\n}\n\n//# sourceMappingURL=request-meta.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1ub2RlKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3Qvc2VydmVyL3JlcXVlc3QtbWV0YS5qcyIsIm1hcHBpbmdzIjoiQUFBQSxrQ0FBK0M7QUFDL0MsOENBQTZDO0FBQzdDO0FBQ0EsQ0FBQyxFQUFDO0FBQ0YsTUFBTSxDQU1MO0FBQ0Q7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0EsQ0FBQztBQUNEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBIiwic291cmNlcyI6WyJEOlxcZG9uZ3l1bi1wcm9qZWN0c1xcdHdvXFxub2RlX21vZHVsZXNcXG5leHRcXGRpc3RcXHNlcnZlclxccmVxdWVzdC1tZXRhLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIG5vLXJlZGVjbGFyZSAqLyBcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwge1xuICAgIHZhbHVlOiB0cnVlXG59KTtcbjAgJiYgKG1vZHVsZS5leHBvcnRzID0ge1xuICAgIE5FWFRfUkVRVUVTVF9NRVRBOiBudWxsLFxuICAgIGFkZFJlcXVlc3RNZXRhOiBudWxsLFxuICAgIGdldFJlcXVlc3RNZXRhOiBudWxsLFxuICAgIHJlbW92ZVJlcXVlc3RNZXRhOiBudWxsLFxuICAgIHNldFJlcXVlc3RNZXRhOiBudWxsXG59KTtcbmZ1bmN0aW9uIF9leHBvcnQodGFyZ2V0LCBhbGwpIHtcbiAgICBmb3IodmFyIG5hbWUgaW4gYWxsKU9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0YXJnZXQsIG5hbWUsIHtcbiAgICAgICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICAgICAgZ2V0OiBhbGxbbmFtZV1cbiAgICB9KTtcbn1cbl9leHBvcnQoZXhwb3J0cywge1xuICAgIE5FWFRfUkVRVUVTVF9NRVRBOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIE5FWFRfUkVRVUVTVF9NRVRBO1xuICAgIH0sXG4gICAgYWRkUmVxdWVzdE1ldGE6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gYWRkUmVxdWVzdE1ldGE7XG4gICAgfSxcbiAgICBnZXRSZXF1ZXN0TWV0YTogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBnZXRSZXF1ZXN0TWV0YTtcbiAgICB9LFxuICAgIHJlbW92ZVJlcXVlc3RNZXRhOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIHJlbW92ZVJlcXVlc3RNZXRhO1xuICAgIH0sXG4gICAgc2V0UmVxdWVzdE1ldGE6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gc2V0UmVxdWVzdE1ldGE7XG4gICAgfVxufSk7XG5jb25zdCBORVhUX1JFUVVFU1RfTUVUQSA9IFN5bWJvbC5mb3IoJ05leHRJbnRlcm5hbFJlcXVlc3RNZXRhJyk7XG5mdW5jdGlvbiBnZXRSZXF1ZXN0TWV0YShyZXEsIGtleSkge1xuICAgIGNvbnN0IG1ldGEgPSByZXFbTkVYVF9SRVFVRVNUX01FVEFdIHx8IHt9O1xuICAgIHJldHVybiB0eXBlb2Yga2V5ID09PSAnc3RyaW5nJyA/IG1ldGFba2V5XSA6IG1ldGE7XG59XG5mdW5jdGlvbiBzZXRSZXF1ZXN0TWV0YShyZXEsIG1ldGEpIHtcbiAgICByZXFbTkVYVF9SRVFVRVNUX01FVEFdID0gbWV0YTtcbiAgICByZXR1cm4gbWV0YTtcbn1cbmZ1bmN0aW9uIGFkZFJlcXVlc3RNZXRhKHJlcXVlc3QsIGtleSwgdmFsdWUpIHtcbiAgICBjb25zdCBtZXRhID0gZ2V0UmVxdWVzdE1ldGEocmVxdWVzdCk7XG4gICAgbWV0YVtrZXldID0gdmFsdWU7XG4gICAgcmV0dXJuIHNldFJlcXVlc3RNZXRhKHJlcXVlc3QsIG1ldGEpO1xufVxuZnVuY3Rpb24gcmVtb3ZlUmVxdWVzdE1ldGEocmVxdWVzdCwga2V5KSB7XG4gICAgY29uc3QgbWV0YSA9IGdldFJlcXVlc3RNZXRhKHJlcXVlc3QpO1xuICAgIGRlbGV0ZSBtZXRhW2tleV07XG4gICAgcmV0dXJuIHNldFJlcXVlc3RNZXRhKHJlcXVlc3QsIG1ldGEpO1xufVxuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1yZXF1ZXN0LW1ldGEuanMubWFwIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(pages-dir-node)/./node_modules/next/dist/server/request-meta.js\n"); - -/***/ }), - -/***/ "(pages-dir-node)/./node_modules/next/dist/server/response-cache/index.js": -/*!***************************************************************!*\ - !*** ./node_modules/next/dist/server/response-cache/index.js ***! - \***************************************************************/ -/***/ ((__unused_webpack_module, exports, __webpack_require__) => { - -"use strict"; -eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"default\", ({\n enumerable: true,\n get: function() {\n return ResponseCache;\n }\n}));\n0 && 0;\nconst _batcher = __webpack_require__(/*! ../../lib/batcher */ \"(pages-dir-node)/./node_modules/next/dist/lib/batcher.js\");\nconst _scheduler = __webpack_require__(/*! ../../lib/scheduler */ \"(pages-dir-node)/./node_modules/next/dist/lib/scheduler.js\");\nconst _utils = __webpack_require__(/*! ./utils */ \"(pages-dir-node)/./node_modules/next/dist/server/response-cache/utils.js\");\n_export_star(__webpack_require__(/*! ./types */ \"(pages-dir-node)/./node_modules/next/dist/server/response-cache/types.js\"), exports);\nfunction _export_star(from, to) {\n Object.keys(from).forEach(function(k) {\n if (k !== \"default\" && !Object.prototype.hasOwnProperty.call(to, k)) {\n Object.defineProperty(to, k, {\n enumerable: true,\n get: function() {\n return from[k];\n }\n });\n }\n });\n return from;\n}\nclass ResponseCache {\n constructor(minimal_mode){\n this.batcher = _batcher.Batcher.create({\n // Ensure on-demand revalidate doesn't block normal requests, it should be\n // safe to run an on-demand revalidate for the same key as a normal request.\n cacheKeyFn: ({ key, isOnDemandRevalidate })=>`${key}-${isOnDemandRevalidate ? '1' : '0'}`,\n // We wait to do any async work until after we've added our promise to\n // `pendingResponses` to ensure that any any other calls will reuse the\n // same promise until we've fully finished our work.\n schedulerFn: _scheduler.scheduleOnNextTick\n });\n this.minimal_mode = minimal_mode;\n }\n async get(key, responseGenerator, context) {\n // If there is no key for the cache, we can't possibly look this up in the\n // cache so just return the result of the response generator.\n if (!key) {\n return responseGenerator({\n hasResolved: false,\n previousCacheEntry: null\n });\n }\n const { incrementalCache, isOnDemandRevalidate = false, isFallback = false, isRoutePPREnabled = false, waitUntil } = context;\n const response = await this.batcher.batch({\n key,\n isOnDemandRevalidate\n }, (cacheKey, resolve)=>{\n const prom = (async ()=>{\n var _this_previousCacheItem;\n // We keep the previous cache entry around to leverage when the\n // incremental cache is disabled in minimal mode.\n if (this.minimal_mode && ((_this_previousCacheItem = this.previousCacheItem) == null ? void 0 : _this_previousCacheItem.key) === cacheKey && this.previousCacheItem.expiresAt > Date.now()) {\n return this.previousCacheItem.entry;\n }\n // Coerce the kindHint into a given kind for the incremental cache.\n const kind = (0, _utils.routeKindToIncrementalCacheKind)(context.routeKind);\n let resolved = false;\n let cachedResponse = null;\n try {\n cachedResponse = !this.minimal_mode ? await incrementalCache.get(key, {\n kind,\n isRoutePPREnabled: context.isRoutePPREnabled,\n isFallback\n }) : null;\n if (cachedResponse && !isOnDemandRevalidate) {\n resolve(cachedResponse);\n resolved = true;\n if (!cachedResponse.isStale || context.isPrefetch) {\n // The cached value is still valid, so we don't need\n // to update it yet.\n return null;\n }\n }\n const cacheEntry = await responseGenerator({\n hasResolved: resolved,\n previousCacheEntry: cachedResponse,\n isRevalidating: true\n });\n // If the cache entry couldn't be generated, we don't want to cache\n // the result.\n if (!cacheEntry) {\n // Unset the previous cache item if it was set.\n if (this.minimal_mode) this.previousCacheItem = undefined;\n return null;\n }\n const resolveValue = await (0, _utils.fromResponseCacheEntry)({\n ...cacheEntry,\n isMiss: !cachedResponse\n });\n if (!resolveValue) {\n // Unset the previous cache item if it was set.\n if (this.minimal_mode) this.previousCacheItem = undefined;\n return null;\n }\n // For on-demand revalidate wait to resolve until cache is set.\n // Otherwise resolve now.\n if (!isOnDemandRevalidate && !resolved) {\n resolve(resolveValue);\n resolved = true;\n }\n // We want to persist the result only if it has a cache control value\n // defined.\n if (resolveValue.cacheControl) {\n if (this.minimal_mode) {\n this.previousCacheItem = {\n key: cacheKey,\n entry: resolveValue,\n expiresAt: Date.now() + 1000\n };\n } else {\n await incrementalCache.set(key, resolveValue.value, {\n cacheControl: resolveValue.cacheControl,\n isRoutePPREnabled,\n isFallback\n });\n }\n }\n return resolveValue;\n } catch (err) {\n // When a path is erroring we automatically re-set the existing cache\n // with new revalidate and expire times to prevent non-stop retrying.\n if (cachedResponse == null ? void 0 : cachedResponse.cacheControl) {\n const newRevalidate = Math.min(Math.max(cachedResponse.cacheControl.revalidate || 3, 3), 30);\n const newExpire = cachedResponse.cacheControl.expire === undefined ? undefined : Math.max(newRevalidate + 3, cachedResponse.cacheControl.expire);\n await incrementalCache.set(key, cachedResponse.value, {\n cacheControl: {\n revalidate: newRevalidate,\n expire: newExpire\n },\n isRoutePPREnabled,\n isFallback\n });\n }\n // While revalidating in the background we can't reject as we already\n // resolved the cache entry so log the error here.\n if (resolved) {\n console.error(err);\n return null;\n }\n // We haven't resolved yet, so let's throw to indicate an error.\n throw err;\n }\n })();\n // we need to ensure background revalidates are\n // passed to waitUntil\n if (waitUntil) {\n waitUntil(prom);\n }\n return prom;\n });\n return (0, _utils.toResponseCacheEntry)(response);\n }\n}\n\n//# sourceMappingURL=index.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1ub2RlKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3Qvc2VydmVyL3Jlc3BvbnNlLWNhY2hlL2luZGV4LmpzIiwibWFwcGluZ3MiOiJBQUFhO0FBQ2IsOENBQTZDO0FBQzdDO0FBQ0EsQ0FBQyxFQUFDO0FBQ0YsMkNBQTBDO0FBQzFDO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsQ0FBQyxFQUFDO0FBQ0YsS0FBSyxDQUE0QjtBQUNqQyxpQkFBaUIsbUJBQU8sQ0FBQyxtRkFBbUI7QUFDNUMsbUJBQW1CLG1CQUFPLENBQUMsdUZBQXFCO0FBQ2hELGVBQWUsbUJBQU8sQ0FBQyx5RkFBUztBQUNoQyxhQUFhLG1CQUFPLENBQUMseUZBQVM7QUFDOUI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGFBQWE7QUFDYjtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLDJCQUEyQiwyQkFBMkIsTUFBTSxJQUFJLEdBQUcsaUNBQWlDO0FBQ3BHO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGFBQWE7QUFDYjtBQUNBLGdCQUFnQiwyR0FBMkc7QUFDM0g7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EscUJBQXFCO0FBQ3JCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EscUJBQXFCO0FBQ3JCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EscUJBQXFCO0FBQ3JCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSwwQkFBMEI7QUFDMUI7QUFDQTtBQUNBO0FBQ0E7QUFDQSw2QkFBNkI7QUFDN0I7QUFDQTtBQUNBO0FBQ0Esa0JBQWtCO0FBQ2xCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLDZCQUE2QjtBQUM3QjtBQUNBO0FBQ0EseUJBQXlCO0FBQ3pCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsYUFBYTtBQUNiO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0E7O0FBRUEiLCJzb3VyY2VzIjpbIkQ6XFxkb25neXVuLXByb2plY3RzXFx0d29cXG5vZGVfbW9kdWxlc1xcbmV4dFxcZGlzdFxcc2VydmVyXFxyZXNwb25zZS1jYWNoZVxcaW5kZXguanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHtcbiAgICB2YWx1ZTogdHJ1ZVxufSk7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJkZWZhdWx0XCIsIHtcbiAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgIGdldDogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBSZXNwb25zZUNhY2hlO1xuICAgIH1cbn0pO1xuMCAmJiBfX2V4cG9ydChyZXF1aXJlKFwiLi90eXBlc1wiKSk7XG5jb25zdCBfYmF0Y2hlciA9IHJlcXVpcmUoXCIuLi8uLi9saWIvYmF0Y2hlclwiKTtcbmNvbnN0IF9zY2hlZHVsZXIgPSByZXF1aXJlKFwiLi4vLi4vbGliL3NjaGVkdWxlclwiKTtcbmNvbnN0IF91dGlscyA9IHJlcXVpcmUoXCIuL3V0aWxzXCIpO1xuX2V4cG9ydF9zdGFyKHJlcXVpcmUoXCIuL3R5cGVzXCIpLCBleHBvcnRzKTtcbmZ1bmN0aW9uIF9leHBvcnRfc3Rhcihmcm9tLCB0bykge1xuICAgIE9iamVjdC5rZXlzKGZyb20pLmZvckVhY2goZnVuY3Rpb24oaykge1xuICAgICAgICBpZiAoayAhPT0gXCJkZWZhdWx0XCIgJiYgIU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbCh0bywgaykpIHtcbiAgICAgICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0bywgaywge1xuICAgICAgICAgICAgICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgICAgICAgICAgICAgZ2V0OiBmdW5jdGlvbigpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZyb21ba107XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICB9KTtcbiAgICByZXR1cm4gZnJvbTtcbn1cbmNsYXNzIFJlc3BvbnNlQ2FjaGUge1xuICAgIGNvbnN0cnVjdG9yKG1pbmltYWxfbW9kZSl7XG4gICAgICAgIHRoaXMuYmF0Y2hlciA9IF9iYXRjaGVyLkJhdGNoZXIuY3JlYXRlKHtcbiAgICAgICAgICAgIC8vIEVuc3VyZSBvbi1kZW1hbmQgcmV2YWxpZGF0ZSBkb2Vzbid0IGJsb2NrIG5vcm1hbCByZXF1ZXN0cywgaXQgc2hvdWxkIGJlXG4gICAgICAgICAgICAvLyBzYWZlIHRvIHJ1biBhbiBvbi1kZW1hbmQgcmV2YWxpZGF0ZSBmb3IgdGhlIHNhbWUga2V5IGFzIGEgbm9ybWFsIHJlcXVlc3QuXG4gICAgICAgICAgICBjYWNoZUtleUZuOiAoeyBrZXksIGlzT25EZW1hbmRSZXZhbGlkYXRlIH0pPT5gJHtrZXl9LSR7aXNPbkRlbWFuZFJldmFsaWRhdGUgPyAnMScgOiAnMCd9YCxcbiAgICAgICAgICAgIC8vIFdlIHdhaXQgdG8gZG8gYW55IGFzeW5jIHdvcmsgdW50aWwgYWZ0ZXIgd2UndmUgYWRkZWQgb3VyIHByb21pc2UgdG9cbiAgICAgICAgICAgIC8vIGBwZW5kaW5nUmVzcG9uc2VzYCB0byBlbnN1cmUgdGhhdCBhbnkgYW55IG90aGVyIGNhbGxzIHdpbGwgcmV1c2UgdGhlXG4gICAgICAgICAgICAvLyBzYW1lIHByb21pc2UgdW50aWwgd2UndmUgZnVsbHkgZmluaXNoZWQgb3VyIHdvcmsuXG4gICAgICAgICAgICBzY2hlZHVsZXJGbjogX3NjaGVkdWxlci5zY2hlZHVsZU9uTmV4dFRpY2tcbiAgICAgICAgfSk7XG4gICAgICAgIHRoaXMubWluaW1hbF9tb2RlID0gbWluaW1hbF9tb2RlO1xuICAgIH1cbiAgICBhc3luYyBnZXQoa2V5LCByZXNwb25zZUdlbmVyYXRvciwgY29udGV4dCkge1xuICAgICAgICAvLyBJZiB0aGVyZSBpcyBubyBrZXkgZm9yIHRoZSBjYWNoZSwgd2UgY2FuJ3QgcG9zc2libHkgbG9vayB0aGlzIHVwIGluIHRoZVxuICAgICAgICAvLyBjYWNoZSBzbyBqdXN0IHJldHVybiB0aGUgcmVzdWx0IG9mIHRoZSByZXNwb25zZSBnZW5lcmF0b3IuXG4gICAgICAgIGlmICgha2V5KSB7XG4gICAgICAgICAgICByZXR1cm4gcmVzcG9uc2VHZW5lcmF0b3Ioe1xuICAgICAgICAgICAgICAgIGhhc1Jlc29sdmVkOiBmYWxzZSxcbiAgICAgICAgICAgICAgICBwcmV2aW91c0NhY2hlRW50cnk6IG51bGxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHsgaW5jcmVtZW50YWxDYWNoZSwgaXNPbkRlbWFuZFJldmFsaWRhdGUgPSBmYWxzZSwgaXNGYWxsYmFjayA9IGZhbHNlLCBpc1JvdXRlUFBSRW5hYmxlZCA9IGZhbHNlLCB3YWl0VW50aWwgfSA9IGNvbnRleHQ7XG4gICAgICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgdGhpcy5iYXRjaGVyLmJhdGNoKHtcbiAgICAgICAgICAgIGtleSxcbiAgICAgICAgICAgIGlzT25EZW1hbmRSZXZhbGlkYXRlXG4gICAgICAgIH0sIChjYWNoZUtleSwgcmVzb2x2ZSk9PntcbiAgICAgICAgICAgIGNvbnN0IHByb20gPSAoYXN5bmMgKCk9PntcbiAgICAgICAgICAgICAgICB2YXIgX3RoaXNfcHJldmlvdXNDYWNoZUl0ZW07XG4gICAgICAgICAgICAgICAgLy8gV2Uga2VlcCB0aGUgcHJldmlvdXMgY2FjaGUgZW50cnkgYXJvdW5kIHRvIGxldmVyYWdlIHdoZW4gdGhlXG4gICAgICAgICAgICAgICAgLy8gaW5jcmVtZW50YWwgY2FjaGUgaXMgZGlzYWJsZWQgaW4gbWluaW1hbCBtb2RlLlxuICAgICAgICAgICAgICAgIGlmICh0aGlzLm1pbmltYWxfbW9kZSAmJiAoKF90aGlzX3ByZXZpb3VzQ2FjaGVJdGVtID0gdGhpcy5wcmV2aW91c0NhY2hlSXRlbSkgPT0gbnVsbCA/IHZvaWQgMCA6IF90aGlzX3ByZXZpb3VzQ2FjaGVJdGVtLmtleSkgPT09IGNhY2hlS2V5ICYmIHRoaXMucHJldmlvdXNDYWNoZUl0ZW0uZXhwaXJlc0F0ID4gRGF0ZS5ub3coKSkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5wcmV2aW91c0NhY2hlSXRlbS5lbnRyeTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgLy8gQ29lcmNlIHRoZSBraW5kSGludCBpbnRvIGEgZ2l2ZW4ga2luZCBmb3IgdGhlIGluY3JlbWVudGFsIGNhY2hlLlxuICAgICAgICAgICAgICAgIGNvbnN0IGtpbmQgPSAoMCwgX3V0aWxzLnJvdXRlS2luZFRvSW5jcmVtZW50YWxDYWNoZUtpbmQpKGNvbnRleHQucm91dGVLaW5kKTtcbiAgICAgICAgICAgICAgICBsZXQgcmVzb2x2ZWQgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICBsZXQgY2FjaGVkUmVzcG9uc2UgPSBudWxsO1xuICAgICAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgICAgIGNhY2hlZFJlc3BvbnNlID0gIXRoaXMubWluaW1hbF9tb2RlID8gYXdhaXQgaW5jcmVtZW50YWxDYWNoZS5nZXQoa2V5LCB7XG4gICAgICAgICAgICAgICAgICAgICAgICBraW5kLFxuICAgICAgICAgICAgICAgICAgICAgICAgaXNSb3V0ZVBQUkVuYWJsZWQ6IGNvbnRleHQuaXNSb3V0ZVBQUkVuYWJsZWQsXG4gICAgICAgICAgICAgICAgICAgICAgICBpc0ZhbGxiYWNrXG4gICAgICAgICAgICAgICAgICAgIH0pIDogbnVsbDtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGNhY2hlZFJlc3BvbnNlICYmICFpc09uRGVtYW5kUmV2YWxpZGF0ZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmVzb2x2ZShjYWNoZWRSZXNwb25zZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXNvbHZlZCA9IHRydWU7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoIWNhY2hlZFJlc3BvbnNlLmlzU3RhbGUgfHwgY29udGV4dC5pc1ByZWZldGNoKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gVGhlIGNhY2hlZCB2YWx1ZSBpcyBzdGlsbCB2YWxpZCwgc28gd2UgZG9uJ3QgbmVlZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHRvIHVwZGF0ZSBpdCB5ZXQuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgY29uc3QgY2FjaGVFbnRyeSA9IGF3YWl0IHJlc3BvbnNlR2VuZXJhdG9yKHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGhhc1Jlc29sdmVkOiByZXNvbHZlZCxcbiAgICAgICAgICAgICAgICAgICAgICAgIHByZXZpb3VzQ2FjaGVFbnRyeTogY2FjaGVkUmVzcG9uc2UsXG4gICAgICAgICAgICAgICAgICAgICAgICBpc1JldmFsaWRhdGluZzogdHJ1ZVxuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgLy8gSWYgdGhlIGNhY2hlIGVudHJ5IGNvdWxkbid0IGJlIGdlbmVyYXRlZCwgd2UgZG9uJ3Qgd2FudCB0byBjYWNoZVxuICAgICAgICAgICAgICAgICAgICAvLyB0aGUgcmVzdWx0LlxuICAgICAgICAgICAgICAgICAgICBpZiAoIWNhY2hlRW50cnkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIFVuc2V0IHRoZSBwcmV2aW91cyBjYWNoZSBpdGVtIGlmIGl0IHdhcyBzZXQuXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5taW5pbWFsX21vZGUpIHRoaXMucHJldmlvdXNDYWNoZUl0ZW0gPSB1bmRlZmluZWQ7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBjb25zdCByZXNvbHZlVmFsdWUgPSBhd2FpdCAoMCwgX3V0aWxzLmZyb21SZXNwb25zZUNhY2hlRW50cnkpKHtcbiAgICAgICAgICAgICAgICAgICAgICAgIC4uLmNhY2hlRW50cnksXG4gICAgICAgICAgICAgICAgICAgICAgICBpc01pc3M6ICFjYWNoZWRSZXNwb25zZVxuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKCFyZXNvbHZlVmFsdWUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIFVuc2V0IHRoZSBwcmV2aW91cyBjYWNoZSBpdGVtIGlmIGl0IHdhcyBzZXQuXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5taW5pbWFsX21vZGUpIHRoaXMucHJldmlvdXNDYWNoZUl0ZW0gPSB1bmRlZmluZWQ7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAvLyBGb3Igb24tZGVtYW5kIHJldmFsaWRhdGUgd2FpdCB0byByZXNvbHZlIHVudGlsIGNhY2hlIGlzIHNldC5cbiAgICAgICAgICAgICAgICAgICAgLy8gT3RoZXJ3aXNlIHJlc29sdmUgbm93LlxuICAgICAgICAgICAgICAgICAgICBpZiAoIWlzT25EZW1hbmRSZXZhbGlkYXRlICYmICFyZXNvbHZlZCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmVzb2x2ZShyZXNvbHZlVmFsdWUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgcmVzb2x2ZWQgPSB0cnVlO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIC8vIFdlIHdhbnQgdG8gcGVyc2lzdCB0aGUgcmVzdWx0IG9ubHkgaWYgaXQgaGFzIGEgY2FjaGUgY29udHJvbCB2YWx1ZVxuICAgICAgICAgICAgICAgICAgICAvLyBkZWZpbmVkLlxuICAgICAgICAgICAgICAgICAgICBpZiAocmVzb2x2ZVZhbHVlLmNhY2hlQ29udHJvbCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMubWluaW1hbF9tb2RlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5wcmV2aW91c0NhY2hlSXRlbSA9IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAga2V5OiBjYWNoZUtleSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW50cnk6IHJlc29sdmVWYWx1ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXhwaXJlc0F0OiBEYXRlLm5vdygpICsgMTAwMFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF3YWl0IGluY3JlbWVudGFsQ2FjaGUuc2V0KGtleSwgcmVzb2x2ZVZhbHVlLnZhbHVlLCB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhY2hlQ29udHJvbDogcmVzb2x2ZVZhbHVlLmNhY2hlQ29udHJvbCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaXNSb3V0ZVBQUkVuYWJsZWQsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlzRmFsbGJhY2tcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gcmVzb2x2ZVZhbHVlO1xuICAgICAgICAgICAgICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgICAgICAgICAgICAgICAvLyBXaGVuIGEgcGF0aCBpcyBlcnJvcmluZyB3ZSBhdXRvbWF0aWNhbGx5IHJlLXNldCB0aGUgZXhpc3RpbmcgY2FjaGVcbiAgICAgICAgICAgICAgICAgICAgLy8gd2l0aCBuZXcgcmV2YWxpZGF0ZSBhbmQgZXhwaXJlIHRpbWVzIHRvIHByZXZlbnQgbm9uLXN0b3AgcmV0cnlpbmcuXG4gICAgICAgICAgICAgICAgICAgIGlmIChjYWNoZWRSZXNwb25zZSA9PSBudWxsID8gdm9pZCAwIDogY2FjaGVkUmVzcG9uc2UuY2FjaGVDb250cm9sKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBuZXdSZXZhbGlkYXRlID0gTWF0aC5taW4oTWF0aC5tYXgoY2FjaGVkUmVzcG9uc2UuY2FjaGVDb250cm9sLnJldmFsaWRhdGUgfHwgMywgMyksIDMwKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IG5ld0V4cGlyZSA9IGNhY2hlZFJlc3BvbnNlLmNhY2hlQ29udHJvbC5leHBpcmUgPT09IHVuZGVmaW5lZCA/IHVuZGVmaW5lZCA6IE1hdGgubWF4KG5ld1JldmFsaWRhdGUgKyAzLCBjYWNoZWRSZXNwb25zZS5jYWNoZUNvbnRyb2wuZXhwaXJlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGF3YWl0IGluY3JlbWVudGFsQ2FjaGUuc2V0KGtleSwgY2FjaGVkUmVzcG9uc2UudmFsdWUsIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYWNoZUNvbnRyb2w6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV2YWxpZGF0ZTogbmV3UmV2YWxpZGF0ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXhwaXJlOiBuZXdFeHBpcmVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlzUm91dGVQUFJFbmFibGVkLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlzRmFsbGJhY2tcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIC8vIFdoaWxlIHJldmFsaWRhdGluZyBpbiB0aGUgYmFja2dyb3VuZCB3ZSBjYW4ndCByZWplY3QgYXMgd2UgYWxyZWFkeVxuICAgICAgICAgICAgICAgICAgICAvLyByZXNvbHZlZCB0aGUgY2FjaGUgZW50cnkgc28gbG9nIHRoZSBlcnJvciBoZXJlLlxuICAgICAgICAgICAgICAgICAgICBpZiAocmVzb2x2ZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoZXJyKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIC8vIFdlIGhhdmVuJ3QgcmVzb2x2ZWQgeWV0LCBzbyBsZXQncyB0aHJvdyB0byBpbmRpY2F0ZSBhbiBlcnJvci5cbiAgICAgICAgICAgICAgICAgICAgdGhyb3cgZXJyO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pKCk7XG4gICAgICAgICAgICAvLyB3ZSBuZWVkIHRvIGVuc3VyZSBiYWNrZ3JvdW5kIHJldmFsaWRhdGVzIGFyZVxuICAgICAgICAgICAgLy8gcGFzc2VkIHRvIHdhaXRVbnRpbFxuICAgICAgICAgICAgaWYgKHdhaXRVbnRpbCkge1xuICAgICAgICAgICAgICAgIHdhaXRVbnRpbChwcm9tKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiBwcm9tO1xuICAgICAgICB9KTtcbiAgICAgICAgcmV0dXJuICgwLCBfdXRpbHMudG9SZXNwb25zZUNhY2hlRW50cnkpKHJlc3BvbnNlKTtcbiAgICB9XG59XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWluZGV4LmpzLm1hcCJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(pages-dir-node)/./node_modules/next/dist/server/response-cache/index.js\n"); - -/***/ }), - -/***/ "(pages-dir-node)/./node_modules/next/dist/server/response-cache/types.js": -/*!***************************************************************!*\ - !*** ./node_modules/next/dist/server/response-cache/types.js ***! - \***************************************************************/ -/***/ ((__unused_webpack_module, exports) => { - -"use strict"; -eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n CachedRouteKind: function() {\n return CachedRouteKind;\n },\n IncrementalCacheKind: function() {\n return IncrementalCacheKind;\n }\n});\nvar CachedRouteKind = /*#__PURE__*/ function(CachedRouteKind) {\n CachedRouteKind[\"APP_PAGE\"] = \"APP_PAGE\";\n CachedRouteKind[\"APP_ROUTE\"] = \"APP_ROUTE\";\n CachedRouteKind[\"PAGES\"] = \"PAGES\";\n CachedRouteKind[\"FETCH\"] = \"FETCH\";\n CachedRouteKind[\"REDIRECT\"] = \"REDIRECT\";\n CachedRouteKind[\"IMAGE\"] = \"IMAGE\";\n return CachedRouteKind;\n}({});\nvar IncrementalCacheKind = /*#__PURE__*/ function(IncrementalCacheKind) {\n IncrementalCacheKind[\"APP_PAGE\"] = \"APP_PAGE\";\n IncrementalCacheKind[\"APP_ROUTE\"] = \"APP_ROUTE\";\n IncrementalCacheKind[\"PAGES\"] = \"PAGES\";\n IncrementalCacheKind[\"FETCH\"] = \"FETCH\";\n IncrementalCacheKind[\"IMAGE\"] = \"IMAGE\";\n return IncrementalCacheKind;\n}({});\n\n//# sourceMappingURL=types.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1ub2RlKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3Qvc2VydmVyL3Jlc3BvbnNlLWNhY2hlL3R5cGVzLmpzIiwibWFwcGluZ3MiOiJBQUFhO0FBQ2IsOENBQTZDO0FBQzdDO0FBQ0EsQ0FBQyxFQUFDO0FBQ0YsTUFBTSxDQUdMO0FBQ0Q7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0EsQ0FBQztBQUNEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxDQUFDLEdBQUc7QUFDSjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLENBQUMsR0FBRzs7QUFFSiIsInNvdXJjZXMiOlsiRDpcXGRvbmd5dW4tcHJvamVjdHNcXHR3b1xcbm9kZV9tb2R1bGVzXFxuZXh0XFxkaXN0XFxzZXJ2ZXJcXHJlc3BvbnNlLWNhY2hlXFx0eXBlcy5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwge1xuICAgIHZhbHVlOiB0cnVlXG59KTtcbjAgJiYgKG1vZHVsZS5leHBvcnRzID0ge1xuICAgIENhY2hlZFJvdXRlS2luZDogbnVsbCxcbiAgICBJbmNyZW1lbnRhbENhY2hlS2luZDogbnVsbFxufSk7XG5mdW5jdGlvbiBfZXhwb3J0KHRhcmdldCwgYWxsKSB7XG4gICAgZm9yKHZhciBuYW1lIGluIGFsbClPYmplY3QuZGVmaW5lUHJvcGVydHkodGFyZ2V0LCBuYW1lLCB7XG4gICAgICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgICAgIGdldDogYWxsW25hbWVdXG4gICAgfSk7XG59XG5fZXhwb3J0KGV4cG9ydHMsIHtcbiAgICBDYWNoZWRSb3V0ZUtpbmQ6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gQ2FjaGVkUm91dGVLaW5kO1xuICAgIH0sXG4gICAgSW5jcmVtZW50YWxDYWNoZUtpbmQ6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gSW5jcmVtZW50YWxDYWNoZUtpbmQ7XG4gICAgfVxufSk7XG52YXIgQ2FjaGVkUm91dGVLaW5kID0gLyojX19QVVJFX18qLyBmdW5jdGlvbihDYWNoZWRSb3V0ZUtpbmQpIHtcbiAgICBDYWNoZWRSb3V0ZUtpbmRbXCJBUFBfUEFHRVwiXSA9IFwiQVBQX1BBR0VcIjtcbiAgICBDYWNoZWRSb3V0ZUtpbmRbXCJBUFBfUk9VVEVcIl0gPSBcIkFQUF9ST1VURVwiO1xuICAgIENhY2hlZFJvdXRlS2luZFtcIlBBR0VTXCJdID0gXCJQQUdFU1wiO1xuICAgIENhY2hlZFJvdXRlS2luZFtcIkZFVENIXCJdID0gXCJGRVRDSFwiO1xuICAgIENhY2hlZFJvdXRlS2luZFtcIlJFRElSRUNUXCJdID0gXCJSRURJUkVDVFwiO1xuICAgIENhY2hlZFJvdXRlS2luZFtcIklNQUdFXCJdID0gXCJJTUFHRVwiO1xuICAgIHJldHVybiBDYWNoZWRSb3V0ZUtpbmQ7XG59KHt9KTtcbnZhciBJbmNyZW1lbnRhbENhY2hlS2luZCA9IC8qI19fUFVSRV9fKi8gZnVuY3Rpb24oSW5jcmVtZW50YWxDYWNoZUtpbmQpIHtcbiAgICBJbmNyZW1lbnRhbENhY2hlS2luZFtcIkFQUF9QQUdFXCJdID0gXCJBUFBfUEFHRVwiO1xuICAgIEluY3JlbWVudGFsQ2FjaGVLaW5kW1wiQVBQX1JPVVRFXCJdID0gXCJBUFBfUk9VVEVcIjtcbiAgICBJbmNyZW1lbnRhbENhY2hlS2luZFtcIlBBR0VTXCJdID0gXCJQQUdFU1wiO1xuICAgIEluY3JlbWVudGFsQ2FjaGVLaW5kW1wiRkVUQ0hcIl0gPSBcIkZFVENIXCI7XG4gICAgSW5jcmVtZW50YWxDYWNoZUtpbmRbXCJJTUFHRVwiXSA9IFwiSU1BR0VcIjtcbiAgICByZXR1cm4gSW5jcmVtZW50YWxDYWNoZUtpbmQ7XG59KHt9KTtcblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9dHlwZXMuanMubWFwIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(pages-dir-node)/./node_modules/next/dist/server/response-cache/types.js\n"); - -/***/ }), - -/***/ "(pages-dir-node)/./node_modules/next/dist/server/response-cache/utils.js": -/*!***************************************************************!*\ - !*** ./node_modules/next/dist/server/response-cache/utils.js ***! - \***************************************************************/ -/***/ ((__unused_webpack_module, exports, __webpack_require__) => { - -"use strict"; -eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n fromResponseCacheEntry: function() {\n return fromResponseCacheEntry;\n },\n routeKindToIncrementalCacheKind: function() {\n return routeKindToIncrementalCacheKind;\n },\n toResponseCacheEntry: function() {\n return toResponseCacheEntry;\n }\n});\nconst _types = __webpack_require__(/*! ./types */ \"(pages-dir-node)/./node_modules/next/dist/server/response-cache/types.js\");\nconst _renderresult = /*#__PURE__*/ _interop_require_default(__webpack_require__(/*! ../render-result */ \"(pages-dir-node)/./node_modules/next/dist/server/render-result.js\"));\nconst _routekind = __webpack_require__(/*! ../route-kind */ \"(pages-dir-node)/./node_modules/next/dist/server/route-kind.js\");\nfunction _interop_require_default(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n}\nasync function fromResponseCacheEntry(cacheEntry) {\n var _cacheEntry_value, _cacheEntry_value1;\n return {\n ...cacheEntry,\n value: ((_cacheEntry_value = cacheEntry.value) == null ? void 0 : _cacheEntry_value.kind) === _types.CachedRouteKind.PAGES ? {\n kind: _types.CachedRouteKind.PAGES,\n html: await cacheEntry.value.html.toUnchunkedString(true),\n pageData: cacheEntry.value.pageData,\n headers: cacheEntry.value.headers,\n status: cacheEntry.value.status\n } : ((_cacheEntry_value1 = cacheEntry.value) == null ? void 0 : _cacheEntry_value1.kind) === _types.CachedRouteKind.APP_PAGE ? {\n kind: _types.CachedRouteKind.APP_PAGE,\n html: await cacheEntry.value.html.toUnchunkedString(true),\n postponed: cacheEntry.value.postponed,\n rscData: cacheEntry.value.rscData,\n headers: cacheEntry.value.headers,\n status: cacheEntry.value.status,\n segmentData: cacheEntry.value.segmentData\n } : cacheEntry.value\n };\n}\nasync function toResponseCacheEntry(response) {\n var _response_value, _response_value1;\n if (!response) return null;\n return {\n isMiss: response.isMiss,\n isStale: response.isStale,\n cacheControl: response.cacheControl,\n value: ((_response_value = response.value) == null ? void 0 : _response_value.kind) === _types.CachedRouteKind.PAGES ? {\n kind: _types.CachedRouteKind.PAGES,\n html: _renderresult.default.fromStatic(response.value.html),\n pageData: response.value.pageData,\n headers: response.value.headers,\n status: response.value.status\n } : ((_response_value1 = response.value) == null ? void 0 : _response_value1.kind) === _types.CachedRouteKind.APP_PAGE ? {\n kind: _types.CachedRouteKind.APP_PAGE,\n html: _renderresult.default.fromStatic(response.value.html),\n rscData: response.value.rscData,\n headers: response.value.headers,\n status: response.value.status,\n postponed: response.value.postponed,\n segmentData: response.value.segmentData\n } : response.value\n };\n}\nfunction routeKindToIncrementalCacheKind(routeKind) {\n switch(routeKind){\n case _routekind.RouteKind.PAGES:\n return _types.IncrementalCacheKind.PAGES;\n case _routekind.RouteKind.APP_PAGE:\n return _types.IncrementalCacheKind.APP_PAGE;\n case _routekind.RouteKind.IMAGE:\n return _types.IncrementalCacheKind.IMAGE;\n case _routekind.RouteKind.APP_ROUTE:\n return _types.IncrementalCacheKind.APP_ROUTE;\n default:\n throw Object.defineProperty(new Error(`Unexpected route kind ${routeKind}`), \"__NEXT_ERROR_CODE\", {\n value: \"E64\",\n enumerable: false,\n configurable: true\n });\n }\n}\n\n//# sourceMappingURL=utils.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1ub2RlKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3Qvc2VydmVyL3Jlc3BvbnNlLWNhY2hlL3V0aWxzLmpzIiwibWFwcGluZ3MiOiJBQUFhO0FBQ2IsOENBQTZDO0FBQzdDO0FBQ0EsQ0FBQyxFQUFDO0FBQ0YsTUFBTSxDQUlMO0FBQ0Q7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQSxDQUFDO0FBQ0QsZUFBZSxtQkFBTyxDQUFDLHlGQUFTO0FBQ2hDLDZEQUE2RCxtQkFBTyxDQUFDLDJGQUFrQjtBQUN2RixtQkFBbUIsbUJBQU8sQ0FBQyxxRkFBZTtBQUMxQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxVQUFVO0FBQ1Y7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxVQUFVO0FBQ1Y7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsVUFBVTtBQUNWO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsVUFBVTtBQUNWO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsMkVBQTJFLFVBQVU7QUFDckY7QUFDQTtBQUNBO0FBQ0EsYUFBYTtBQUNiO0FBQ0E7O0FBRUEiLCJzb3VyY2VzIjpbIkQ6XFxkb25neXVuLXByb2plY3RzXFx0d29cXG5vZGVfbW9kdWxlc1xcbmV4dFxcZGlzdFxcc2VydmVyXFxyZXNwb25zZS1jYWNoZVxcdXRpbHMuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHtcbiAgICB2YWx1ZTogdHJ1ZVxufSk7XG4wICYmIChtb2R1bGUuZXhwb3J0cyA9IHtcbiAgICBmcm9tUmVzcG9uc2VDYWNoZUVudHJ5OiBudWxsLFxuICAgIHJvdXRlS2luZFRvSW5jcmVtZW50YWxDYWNoZUtpbmQ6IG51bGwsXG4gICAgdG9SZXNwb25zZUNhY2hlRW50cnk6IG51bGxcbn0pO1xuZnVuY3Rpb24gX2V4cG9ydCh0YXJnZXQsIGFsbCkge1xuICAgIGZvcih2YXIgbmFtZSBpbiBhbGwpT2JqZWN0LmRlZmluZVByb3BlcnR5KHRhcmdldCwgbmFtZSwge1xuICAgICAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgICAgICBnZXQ6IGFsbFtuYW1lXVxuICAgIH0pO1xufVxuX2V4cG9ydChleHBvcnRzLCB7XG4gICAgZnJvbVJlc3BvbnNlQ2FjaGVFbnRyeTogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBmcm9tUmVzcG9uc2VDYWNoZUVudHJ5O1xuICAgIH0sXG4gICAgcm91dGVLaW5kVG9JbmNyZW1lbnRhbENhY2hlS2luZDogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiByb3V0ZUtpbmRUb0luY3JlbWVudGFsQ2FjaGVLaW5kO1xuICAgIH0sXG4gICAgdG9SZXNwb25zZUNhY2hlRW50cnk6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gdG9SZXNwb25zZUNhY2hlRW50cnk7XG4gICAgfVxufSk7XG5jb25zdCBfdHlwZXMgPSByZXF1aXJlKFwiLi90eXBlc1wiKTtcbmNvbnN0IF9yZW5kZXJyZXN1bHQgPSAvKiNfX1BVUkVfXyovIF9pbnRlcm9wX3JlcXVpcmVfZGVmYXVsdChyZXF1aXJlKFwiLi4vcmVuZGVyLXJlc3VsdFwiKSk7XG5jb25zdCBfcm91dGVraW5kID0gcmVxdWlyZShcIi4uL3JvdXRlLWtpbmRcIik7XG5mdW5jdGlvbiBfaW50ZXJvcF9yZXF1aXJlX2RlZmF1bHQob2JqKSB7XG4gICAgcmV0dXJuIG9iaiAmJiBvYmouX19lc01vZHVsZSA/IG9iaiA6IHtcbiAgICAgICAgZGVmYXVsdDogb2JqXG4gICAgfTtcbn1cbmFzeW5jIGZ1bmN0aW9uIGZyb21SZXNwb25zZUNhY2hlRW50cnkoY2FjaGVFbnRyeSkge1xuICAgIHZhciBfY2FjaGVFbnRyeV92YWx1ZSwgX2NhY2hlRW50cnlfdmFsdWUxO1xuICAgIHJldHVybiB7XG4gICAgICAgIC4uLmNhY2hlRW50cnksXG4gICAgICAgIHZhbHVlOiAoKF9jYWNoZUVudHJ5X3ZhbHVlID0gY2FjaGVFbnRyeS52YWx1ZSkgPT0gbnVsbCA/IHZvaWQgMCA6IF9jYWNoZUVudHJ5X3ZhbHVlLmtpbmQpID09PSBfdHlwZXMuQ2FjaGVkUm91dGVLaW5kLlBBR0VTID8ge1xuICAgICAgICAgICAga2luZDogX3R5cGVzLkNhY2hlZFJvdXRlS2luZC5QQUdFUyxcbiAgICAgICAgICAgIGh0bWw6IGF3YWl0IGNhY2hlRW50cnkudmFsdWUuaHRtbC50b1VuY2h1bmtlZFN0cmluZyh0cnVlKSxcbiAgICAgICAgICAgIHBhZ2VEYXRhOiBjYWNoZUVudHJ5LnZhbHVlLnBhZ2VEYXRhLFxuICAgICAgICAgICAgaGVhZGVyczogY2FjaGVFbnRyeS52YWx1ZS5oZWFkZXJzLFxuICAgICAgICAgICAgc3RhdHVzOiBjYWNoZUVudHJ5LnZhbHVlLnN0YXR1c1xuICAgICAgICB9IDogKChfY2FjaGVFbnRyeV92YWx1ZTEgPSBjYWNoZUVudHJ5LnZhbHVlKSA9PSBudWxsID8gdm9pZCAwIDogX2NhY2hlRW50cnlfdmFsdWUxLmtpbmQpID09PSBfdHlwZXMuQ2FjaGVkUm91dGVLaW5kLkFQUF9QQUdFID8ge1xuICAgICAgICAgICAga2luZDogX3R5cGVzLkNhY2hlZFJvdXRlS2luZC5BUFBfUEFHRSxcbiAgICAgICAgICAgIGh0bWw6IGF3YWl0IGNhY2hlRW50cnkudmFsdWUuaHRtbC50b1VuY2h1bmtlZFN0cmluZyh0cnVlKSxcbiAgICAgICAgICAgIHBvc3Rwb25lZDogY2FjaGVFbnRyeS52YWx1ZS5wb3N0cG9uZWQsXG4gICAgICAgICAgICByc2NEYXRhOiBjYWNoZUVudHJ5LnZhbHVlLnJzY0RhdGEsXG4gICAgICAgICAgICBoZWFkZXJzOiBjYWNoZUVudHJ5LnZhbHVlLmhlYWRlcnMsXG4gICAgICAgICAgICBzdGF0dXM6IGNhY2hlRW50cnkudmFsdWUuc3RhdHVzLFxuICAgICAgICAgICAgc2VnbWVudERhdGE6IGNhY2hlRW50cnkudmFsdWUuc2VnbWVudERhdGFcbiAgICAgICAgfSA6IGNhY2hlRW50cnkudmFsdWVcbiAgICB9O1xufVxuYXN5bmMgZnVuY3Rpb24gdG9SZXNwb25zZUNhY2hlRW50cnkocmVzcG9uc2UpIHtcbiAgICB2YXIgX3Jlc3BvbnNlX3ZhbHVlLCBfcmVzcG9uc2VfdmFsdWUxO1xuICAgIGlmICghcmVzcG9uc2UpIHJldHVybiBudWxsO1xuICAgIHJldHVybiB7XG4gICAgICAgIGlzTWlzczogcmVzcG9uc2UuaXNNaXNzLFxuICAgICAgICBpc1N0YWxlOiByZXNwb25zZS5pc1N0YWxlLFxuICAgICAgICBjYWNoZUNvbnRyb2w6IHJlc3BvbnNlLmNhY2hlQ29udHJvbCxcbiAgICAgICAgdmFsdWU6ICgoX3Jlc3BvbnNlX3ZhbHVlID0gcmVzcG9uc2UudmFsdWUpID09IG51bGwgPyB2b2lkIDAgOiBfcmVzcG9uc2VfdmFsdWUua2luZCkgPT09IF90eXBlcy5DYWNoZWRSb3V0ZUtpbmQuUEFHRVMgPyB7XG4gICAgICAgICAgICBraW5kOiBfdHlwZXMuQ2FjaGVkUm91dGVLaW5kLlBBR0VTLFxuICAgICAgICAgICAgaHRtbDogX3JlbmRlcnJlc3VsdC5kZWZhdWx0LmZyb21TdGF0aWMocmVzcG9uc2UudmFsdWUuaHRtbCksXG4gICAgICAgICAgICBwYWdlRGF0YTogcmVzcG9uc2UudmFsdWUucGFnZURhdGEsXG4gICAgICAgICAgICBoZWFkZXJzOiByZXNwb25zZS52YWx1ZS5oZWFkZXJzLFxuICAgICAgICAgICAgc3RhdHVzOiByZXNwb25zZS52YWx1ZS5zdGF0dXNcbiAgICAgICAgfSA6ICgoX3Jlc3BvbnNlX3ZhbHVlMSA9IHJlc3BvbnNlLnZhbHVlKSA9PSBudWxsID8gdm9pZCAwIDogX3Jlc3BvbnNlX3ZhbHVlMS5raW5kKSA9PT0gX3R5cGVzLkNhY2hlZFJvdXRlS2luZC5BUFBfUEFHRSA/IHtcbiAgICAgICAgICAgIGtpbmQ6IF90eXBlcy5DYWNoZWRSb3V0ZUtpbmQuQVBQX1BBR0UsXG4gICAgICAgICAgICBodG1sOiBfcmVuZGVycmVzdWx0LmRlZmF1bHQuZnJvbVN0YXRpYyhyZXNwb25zZS52YWx1ZS5odG1sKSxcbiAgICAgICAgICAgIHJzY0RhdGE6IHJlc3BvbnNlLnZhbHVlLnJzY0RhdGEsXG4gICAgICAgICAgICBoZWFkZXJzOiByZXNwb25zZS52YWx1ZS5oZWFkZXJzLFxuICAgICAgICAgICAgc3RhdHVzOiByZXNwb25zZS52YWx1ZS5zdGF0dXMsXG4gICAgICAgICAgICBwb3N0cG9uZWQ6IHJlc3BvbnNlLnZhbHVlLnBvc3Rwb25lZCxcbiAgICAgICAgICAgIHNlZ21lbnREYXRhOiByZXNwb25zZS52YWx1ZS5zZWdtZW50RGF0YVxuICAgICAgICB9IDogcmVzcG9uc2UudmFsdWVcbiAgICB9O1xufVxuZnVuY3Rpb24gcm91dGVLaW5kVG9JbmNyZW1lbnRhbENhY2hlS2luZChyb3V0ZUtpbmQpIHtcbiAgICBzd2l0Y2gocm91dGVLaW5kKXtcbiAgICAgICAgY2FzZSBfcm91dGVraW5kLlJvdXRlS2luZC5QQUdFUzpcbiAgICAgICAgICAgIHJldHVybiBfdHlwZXMuSW5jcmVtZW50YWxDYWNoZUtpbmQuUEFHRVM7XG4gICAgICAgIGNhc2UgX3JvdXRla2luZC5Sb3V0ZUtpbmQuQVBQX1BBR0U6XG4gICAgICAgICAgICByZXR1cm4gX3R5cGVzLkluY3JlbWVudGFsQ2FjaGVLaW5kLkFQUF9QQUdFO1xuICAgICAgICBjYXNlIF9yb3V0ZWtpbmQuUm91dGVLaW5kLklNQUdFOlxuICAgICAgICAgICAgcmV0dXJuIF90eXBlcy5JbmNyZW1lbnRhbENhY2hlS2luZC5JTUFHRTtcbiAgICAgICAgY2FzZSBfcm91dGVraW5kLlJvdXRlS2luZC5BUFBfUk9VVEU6XG4gICAgICAgICAgICByZXR1cm4gX3R5cGVzLkluY3JlbWVudGFsQ2FjaGVLaW5kLkFQUF9ST1VURTtcbiAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgIHRocm93IE9iamVjdC5kZWZpbmVQcm9wZXJ0eShuZXcgRXJyb3IoYFVuZXhwZWN0ZWQgcm91dGUga2luZCAke3JvdXRlS2luZH1gKSwgXCJfX05FWFRfRVJST1JfQ09ERVwiLCB7XG4gICAgICAgICAgICAgICAgdmFsdWU6IFwiRTY0XCIsXG4gICAgICAgICAgICAgICAgZW51bWVyYWJsZTogZmFsc2UsXG4gICAgICAgICAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlXG4gICAgICAgICAgICB9KTtcbiAgICB9XG59XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPXV0aWxzLmpzLm1hcCJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(pages-dir-node)/./node_modules/next/dist/server/response-cache/utils.js\n"); - -/***/ }), - -/***/ "(pages-dir-node)/./node_modules/next/dist/server/route-kind.js": -/*!*****************************************************!*\ - !*** ./node_modules/next/dist/server/route-kind.js ***! - \*****************************************************/ -/***/ ((__unused_webpack_module, exports) => { - -"use strict"; -eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"RouteKind\", ({\n enumerable: true,\n get: function() {\n return RouteKind;\n }\n}));\nvar RouteKind = /*#__PURE__*/ function(RouteKind) {\n /**\n * `PAGES` represents all the React pages that are under `pages/`.\n */ RouteKind[\"PAGES\"] = \"PAGES\";\n /**\n * `PAGES_API` represents all the API routes under `pages/api/`.\n */ RouteKind[\"PAGES_API\"] = \"PAGES_API\";\n /**\n * `APP_PAGE` represents all the React pages that are under `app/` with the\n * filename of `page.{j,t}s{,x}`.\n */ RouteKind[\"APP_PAGE\"] = \"APP_PAGE\";\n /**\n * `APP_ROUTE` represents all the API routes and metadata routes that are under `app/` with the\n * filename of `route.{j,t}s{,x}`.\n */ RouteKind[\"APP_ROUTE\"] = \"APP_ROUTE\";\n /**\n * `IMAGE` represents all the images that are generated by `next/image`.\n */ RouteKind[\"IMAGE\"] = \"IMAGE\";\n return RouteKind;\n}({});\n\n//# sourceMappingURL=route-kind.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1ub2RlKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3Qvc2VydmVyL3JvdXRlLWtpbmQuanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYiw4Q0FBNkM7QUFDN0M7QUFDQSxDQUFDLEVBQUM7QUFDRiw2Q0FBNEM7QUFDNUM7QUFDQTtBQUNBO0FBQ0E7QUFDQSxDQUFDLEVBQUM7QUFDRjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSx3QkFBd0IsSUFBSSxFQUFFLEdBQUc7QUFDakM7QUFDQTtBQUNBO0FBQ0EseUJBQXlCLElBQUksRUFBRSxHQUFHO0FBQ2xDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxDQUFDLEdBQUc7O0FBRUoiLCJzb3VyY2VzIjpbIkQ6XFxkb25neXVuLXByb2plY3RzXFx0d29cXG5vZGVfbW9kdWxlc1xcbmV4dFxcZGlzdFxcc2VydmVyXFxyb3V0ZS1raW5kLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7XG4gICAgdmFsdWU6IHRydWVcbn0pO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiUm91dGVLaW5kXCIsIHtcbiAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgIGdldDogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBSb3V0ZUtpbmQ7XG4gICAgfVxufSk7XG52YXIgUm91dGVLaW5kID0gLyojX19QVVJFX18qLyBmdW5jdGlvbihSb3V0ZUtpbmQpIHtcbiAgICAvKipcbiAgICogYFBBR0VTYCByZXByZXNlbnRzIGFsbCB0aGUgUmVhY3QgcGFnZXMgdGhhdCBhcmUgdW5kZXIgYHBhZ2VzL2AuXG4gICAqLyBSb3V0ZUtpbmRbXCJQQUdFU1wiXSA9IFwiUEFHRVNcIjtcbiAgICAvKipcbiAgICogYFBBR0VTX0FQSWAgcmVwcmVzZW50cyBhbGwgdGhlIEFQSSByb3V0ZXMgdW5kZXIgYHBhZ2VzL2FwaS9gLlxuICAgKi8gUm91dGVLaW5kW1wiUEFHRVNfQVBJXCJdID0gXCJQQUdFU19BUElcIjtcbiAgICAvKipcbiAgICogYEFQUF9QQUdFYCByZXByZXNlbnRzIGFsbCB0aGUgUmVhY3QgcGFnZXMgdGhhdCBhcmUgdW5kZXIgYGFwcC9gIHdpdGggdGhlXG4gICAqIGZpbGVuYW1lIG9mIGBwYWdlLntqLHR9c3sseH1gLlxuICAgKi8gUm91dGVLaW5kW1wiQVBQX1BBR0VcIl0gPSBcIkFQUF9QQUdFXCI7XG4gICAgLyoqXG4gICAqIGBBUFBfUk9VVEVgIHJlcHJlc2VudHMgYWxsIHRoZSBBUEkgcm91dGVzIGFuZCBtZXRhZGF0YSByb3V0ZXMgdGhhdCBhcmUgdW5kZXIgYGFwcC9gIHdpdGggdGhlXG4gICAqIGZpbGVuYW1lIG9mIGByb3V0ZS57aix0fXN7LHh9YC5cbiAgICovIFJvdXRlS2luZFtcIkFQUF9ST1VURVwiXSA9IFwiQVBQX1JPVVRFXCI7XG4gICAgLyoqXG4gICAqIGBJTUFHRWAgcmVwcmVzZW50cyBhbGwgdGhlIGltYWdlcyB0aGF0IGFyZSBnZW5lcmF0ZWQgYnkgYG5leHQvaW1hZ2VgLlxuICAgKi8gUm91dGVLaW5kW1wiSU1BR0VcIl0gPSBcIklNQUdFXCI7XG4gICAgcmV0dXJuIFJvdXRlS2luZDtcbn0oe30pO1xuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1yb3V0ZS1raW5kLmpzLm1hcCJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(pages-dir-node)/./node_modules/next/dist/server/route-kind.js\n"); - -/***/ }), - -/***/ "(pages-dir-node)/./node_modules/next/dist/server/route-modules/pages/module.compiled.js": -/*!******************************************************************************!*\ - !*** ./node_modules/next/dist/server/route-modules/pages/module.compiled.js ***! - \******************************************************************************/ -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { - -"use strict"; -eval("\nif (false) {} else {\n if (true) {\n if (false) {} else {\n module.exports = __webpack_require__(/*! next/dist/compiled/next-server/pages.runtime.dev.js */ \"next/dist/compiled/next-server/pages.runtime.dev.js\");\n }\n } else {}\n}\n\n//# sourceMappingURL=module.compiled.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1ub2RlKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3Qvc2VydmVyL3JvdXRlLW1vZHVsZXMvcGFnZXMvbW9kdWxlLmNvbXBpbGVkLmpzIiwibWFwcGluZ3MiOiJBQUFhO0FBQ2IsSUFBSSxLQUFtQyxFQUFFLEVBRXhDLENBQUM7QUFDRixRQUFRLElBQXNDO0FBQzlDLFlBQVksS0FBcUIsRUFBRSxFQUUxQixDQUFDO0FBQ1YsWUFBWSxzSkFBK0U7QUFDM0Y7QUFDQSxNQUFNLEtBQUssRUFNTjtBQUNMOztBQUVBIiwic291cmNlcyI6WyJEOlxcZG9uZ3l1bi1wcm9qZWN0c1xcdHdvXFxub2RlX21vZHVsZXNcXG5leHRcXGRpc3RcXHNlcnZlclxccm91dGUtbW9kdWxlc1xccGFnZXNcXG1vZHVsZS5jb21waWxlZC5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbmlmIChwcm9jZXNzLmVudi5ORVhUX1JVTlRJTUUgPT09ICdlZGdlJykge1xuICAgIG1vZHVsZS5leHBvcnRzID0gcmVxdWlyZSgnbmV4dC9kaXN0L3NlcnZlci9yb3V0ZS1tb2R1bGVzL3BhZ2VzL21vZHVsZS5qcycpO1xufSBlbHNlIHtcbiAgICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgPT09ICdkZXZlbG9wbWVudCcpIHtcbiAgICAgICAgaWYgKHByb2Nlc3MuZW52LlRVUkJPUEFDSykge1xuICAgICAgICAgICAgbW9kdWxlLmV4cG9ydHMgPSByZXF1aXJlKCduZXh0L2Rpc3QvY29tcGlsZWQvbmV4dC1zZXJ2ZXIvcGFnZXMtdHVyYm8ucnVudGltZS5kZXYuanMnKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIG1vZHVsZS5leHBvcnRzID0gcmVxdWlyZSgnbmV4dC9kaXN0L2NvbXBpbGVkL25leHQtc2VydmVyL3BhZ2VzLnJ1bnRpbWUuZGV2LmpzJyk7XG4gICAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgICBpZiAocHJvY2Vzcy5lbnYuVFVSQk9QQUNLKSB7XG4gICAgICAgICAgICBtb2R1bGUuZXhwb3J0cyA9IHJlcXVpcmUoJ25leHQvZGlzdC9jb21waWxlZC9uZXh0LXNlcnZlci9wYWdlcy10dXJiby5ydW50aW1lLnByb2QuanMnKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIG1vZHVsZS5leHBvcnRzID0gcmVxdWlyZSgnbmV4dC9kaXN0L2NvbXBpbGVkL25leHQtc2VydmVyL3BhZ2VzLnJ1bnRpbWUucHJvZC5qcycpO1xuICAgICAgICB9XG4gICAgfVxufVxuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1tb2R1bGUuY29tcGlsZWQuanMubWFwIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(pages-dir-node)/./node_modules/next/dist/server/route-modules/pages/module.compiled.js\n"); - -/***/ }), - -/***/ "(pages-dir-node)/./node_modules/next/dist/server/route-modules/pages/vendored/contexts/amp-context.js": -/*!********************************************************************************************!*\ - !*** ./node_modules/next/dist/server/route-modules/pages/vendored/contexts/amp-context.js ***! - \********************************************************************************************/ -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { - -"use strict"; -eval("\nmodule.exports = __webpack_require__(/*! ../../module.compiled */ \"(pages-dir-node)/./node_modules/next/dist/server/route-modules/pages/module.compiled.js\").vendored.contexts.AmpContext;\n\n//# sourceMappingURL=amp-context.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1ub2RlKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3Qvc2VydmVyL3JvdXRlLW1vZHVsZXMvcGFnZXMvdmVuZG9yZWQvY29udGV4dHMvYW1wLWNvbnRleHQuanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYix5TEFBaUY7O0FBRWpGIiwic291cmNlcyI6WyJEOlxcZG9uZ3l1bi1wcm9qZWN0c1xcdHdvXFxub2RlX21vZHVsZXNcXG5leHRcXGRpc3RcXHNlcnZlclxccm91dGUtbW9kdWxlc1xccGFnZXNcXHZlbmRvcmVkXFxjb250ZXh0c1xcYW1wLWNvbnRleHQuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5tb2R1bGUuZXhwb3J0cyA9IHJlcXVpcmUoJy4uLy4uL21vZHVsZS5jb21waWxlZCcpLnZlbmRvcmVkWydjb250ZXh0cyddLkFtcENvbnRleHQ7XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWFtcC1jb250ZXh0LmpzLm1hcCJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(pages-dir-node)/./node_modules/next/dist/server/route-modules/pages/vendored/contexts/amp-context.js\n"); - -/***/ }), - -/***/ "(pages-dir-node)/./node_modules/next/dist/server/route-modules/pages/vendored/contexts/head-manager-context.js": -/*!*****************************************************************************************************!*\ - !*** ./node_modules/next/dist/server/route-modules/pages/vendored/contexts/head-manager-context.js ***! - \*****************************************************************************************************/ -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { - -"use strict"; -eval("\nmodule.exports = __webpack_require__(/*! ../../module.compiled */ \"(pages-dir-node)/./node_modules/next/dist/server/route-modules/pages/module.compiled.js\").vendored.contexts.HeadManagerContext;\n\n//# sourceMappingURL=head-manager-context.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1ub2RlKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3Qvc2VydmVyL3JvdXRlLW1vZHVsZXMvcGFnZXMvdmVuZG9yZWQvY29udGV4dHMvaGVhZC1tYW5hZ2VyLWNvbnRleHQuanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYixpTUFBeUY7O0FBRXpGIiwic291cmNlcyI6WyJEOlxcZG9uZ3l1bi1wcm9qZWN0c1xcdHdvXFxub2RlX21vZHVsZXNcXG5leHRcXGRpc3RcXHNlcnZlclxccm91dGUtbW9kdWxlc1xccGFnZXNcXHZlbmRvcmVkXFxjb250ZXh0c1xcaGVhZC1tYW5hZ2VyLWNvbnRleHQuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5tb2R1bGUuZXhwb3J0cyA9IHJlcXVpcmUoJy4uLy4uL21vZHVsZS5jb21waWxlZCcpLnZlbmRvcmVkWydjb250ZXh0cyddLkhlYWRNYW5hZ2VyQ29udGV4dDtcblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9aGVhZC1tYW5hZ2VyLWNvbnRleHQuanMubWFwIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(pages-dir-node)/./node_modules/next/dist/server/route-modules/pages/vendored/contexts/head-manager-context.js\n"); - -/***/ }), - -/***/ "(pages-dir-node)/./node_modules/next/dist/server/route-modules/pages/vendored/contexts/html-context.js": -/*!*********************************************************************************************!*\ - !*** ./node_modules/next/dist/server/route-modules/pages/vendored/contexts/html-context.js ***! - \*********************************************************************************************/ -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { - -"use strict"; -eval("\nmodule.exports = __webpack_require__(/*! ../../module.compiled */ \"(pages-dir-node)/./node_modules/next/dist/server/route-modules/pages/module.compiled.js\").vendored.contexts.HtmlContext;\n\n//# sourceMappingURL=html-context.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1ub2RlKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3Qvc2VydmVyL3JvdXRlLW1vZHVsZXMvcGFnZXMvdmVuZG9yZWQvY29udGV4dHMvaHRtbC1jb250ZXh0LmpzIiwibWFwcGluZ3MiOiJBQUFhO0FBQ2IsMExBQWtGOztBQUVsRiIsInNvdXJjZXMiOlsiRDpcXGRvbmd5dW4tcHJvamVjdHNcXHR3b1xcbm9kZV9tb2R1bGVzXFxuZXh0XFxkaXN0XFxzZXJ2ZXJcXHJvdXRlLW1vZHVsZXNcXHBhZ2VzXFx2ZW5kb3JlZFxcY29udGV4dHNcXGh0bWwtY29udGV4dC5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbm1vZHVsZS5leHBvcnRzID0gcmVxdWlyZSgnLi4vLi4vbW9kdWxlLmNvbXBpbGVkJykudmVuZG9yZWRbJ2NvbnRleHRzJ10uSHRtbENvbnRleHQ7XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWh0bWwtY29udGV4dC5qcy5tYXAiXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(pages-dir-node)/./node_modules/next/dist/server/route-modules/pages/vendored/contexts/html-context.js\n"); - -/***/ }), - -/***/ "(pages-dir-node)/./node_modules/next/dist/server/route-modules/pages/vendored/contexts/router-context.js": -/*!***********************************************************************************************!*\ - !*** ./node_modules/next/dist/server/route-modules/pages/vendored/contexts/router-context.js ***! - \***********************************************************************************************/ -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { - -"use strict"; -eval("\nmodule.exports = __webpack_require__(/*! ../../module.compiled */ \"(pages-dir-node)/./node_modules/next/dist/server/route-modules/pages/module.compiled.js\").vendored.contexts.RouterContext;\n\n//# sourceMappingURL=router-context.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1ub2RlKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3Qvc2VydmVyL3JvdXRlLW1vZHVsZXMvcGFnZXMvdmVuZG9yZWQvY29udGV4dHMvcm91dGVyLWNvbnRleHQuanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYiw0TEFBb0Y7O0FBRXBGIiwic291cmNlcyI6WyJEOlxcZG9uZ3l1bi1wcm9qZWN0c1xcdHdvXFxub2RlX21vZHVsZXNcXG5leHRcXGRpc3RcXHNlcnZlclxccm91dGUtbW9kdWxlc1xccGFnZXNcXHZlbmRvcmVkXFxjb250ZXh0c1xccm91dGVyLWNvbnRleHQuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5tb2R1bGUuZXhwb3J0cyA9IHJlcXVpcmUoJy4uLy4uL21vZHVsZS5jb21waWxlZCcpLnZlbmRvcmVkWydjb250ZXh0cyddLlJvdXRlckNvbnRleHQ7XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPXJvdXRlci1jb250ZXh0LmpzLm1hcCJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(pages-dir-node)/./node_modules/next/dist/server/route-modules/pages/vendored/contexts/router-context.js\n"); - -/***/ }), - -/***/ "(pages-dir-node)/./node_modules/next/dist/server/send-payload.js": -/*!*******************************************************!*\ - !*** ./node_modules/next/dist/server/send-payload.js ***! - \*******************************************************/ -/***/ ((__unused_webpack_module, exports, __webpack_require__) => { - -"use strict"; -eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n sendEtagResponse: function() {\n return sendEtagResponse;\n },\n sendRenderResult: function() {\n return sendRenderResult;\n }\n});\nconst _utils = __webpack_require__(/*! ../shared/lib/utils */ \"(pages-dir-node)/./node_modules/next/dist/shared/lib/utils.js\");\nconst _etag = __webpack_require__(/*! ./lib/etag */ \"(pages-dir-node)/./node_modules/next/dist/server/lib/etag.js\");\nconst _fresh = /*#__PURE__*/ _interop_require_default(__webpack_require__(/*! next/dist/compiled/fresh */ \"(pages-dir-node)/./node_modules/next/dist/compiled/fresh/index.js\"));\nconst _cachecontrol = __webpack_require__(/*! ./lib/cache-control */ \"(pages-dir-node)/./node_modules/next/dist/server/lib/cache-control.js\");\nconst _approuterheaders = __webpack_require__(/*! ../client/components/app-router-headers */ \"(pages-dir-node)/./node_modules/next/dist/client/components/app-router-headers.js\");\nfunction _interop_require_default(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n}\nfunction sendEtagResponse(req, res, etag) {\n if (etag) {\n /**\n * The server generating a 304 response MUST generate any of the\n * following header fields that would have been sent in a 200 (OK)\n * response to the same request: Cache-Control, Content-Location, Date,\n * ETag, Expires, and Vary. https://tools.ietf.org/html/rfc7232#section-4.1\n */ res.setHeader('ETag', etag);\n }\n if ((0, _fresh.default)(req.headers, {\n etag\n })) {\n res.statusCode = 304;\n res.end();\n return true;\n }\n return false;\n}\nasync function sendRenderResult({ req, res, result, type, generateEtags, poweredByHeader, cacheControl }) {\n if ((0, _utils.isResSent)(res)) {\n return;\n }\n if (poweredByHeader && type === 'html') {\n res.setHeader('X-Powered-By', 'Next.js');\n }\n // If cache control is already set on the response we don't\n // override it to allow users to customize it via next.config\n if (cacheControl && !res.getHeader('Cache-Control')) {\n res.setHeader('Cache-Control', (0, _cachecontrol.getCacheControlHeader)(cacheControl));\n }\n const payload = result.isDynamic ? null : result.toUnchunkedString();\n if (generateEtags && payload !== null) {\n const etag = (0, _etag.generateETag)(payload);\n if (sendEtagResponse(req, res, etag)) {\n return;\n }\n }\n if (!res.getHeader('Content-Type')) {\n res.setHeader('Content-Type', result.contentType ? result.contentType : type === 'rsc' ? _approuterheaders.RSC_CONTENT_TYPE_HEADER : type === 'json' ? 'application/json' : 'text/html; charset=utf-8');\n }\n if (payload) {\n res.setHeader('Content-Length', Buffer.byteLength(payload));\n }\n if (req.method === 'HEAD') {\n res.end(null);\n return;\n }\n if (payload !== null) {\n res.end(payload);\n return;\n }\n // Pipe the render result to the response after we get a writer for it.\n await result.pipeToNodeResponse(res);\n}\n\n//# sourceMappingURL=send-payload.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1ub2RlKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3Qvc2VydmVyL3NlbmQtcGF5bG9hZC5qcyIsIm1hcHBpbmdzIjoiQUFBYTtBQUNiLDhDQUE2QztBQUM3QztBQUNBLENBQUMsRUFBQztBQUNGLE1BQU0sQ0FHTDtBQUNEO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBLENBQUM7QUFDRCxlQUFlLG1CQUFPLENBQUMsMEZBQXFCO0FBQzVDLGNBQWMsbUJBQU8sQ0FBQyxnRkFBWTtBQUNsQyxzREFBc0QsbUJBQU8sQ0FBQyxtR0FBMEI7QUFDeEYsc0JBQXNCLG1CQUFPLENBQUMsa0dBQXFCO0FBQ25ELDBCQUEwQixtQkFBTyxDQUFDLGtJQUF5QztBQUMzRTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxrQ0FBa0Msc0VBQXNFO0FBQ3hHO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsZ01BQWdNO0FBQ2hNO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQSIsInNvdXJjZXMiOlsiRDpcXGRvbmd5dW4tcHJvamVjdHNcXHR3b1xcbm9kZV9tb2R1bGVzXFxuZXh0XFxkaXN0XFxzZXJ2ZXJcXHNlbmQtcGF5bG9hZC5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwge1xuICAgIHZhbHVlOiB0cnVlXG59KTtcbjAgJiYgKG1vZHVsZS5leHBvcnRzID0ge1xuICAgIHNlbmRFdGFnUmVzcG9uc2U6IG51bGwsXG4gICAgc2VuZFJlbmRlclJlc3VsdDogbnVsbFxufSk7XG5mdW5jdGlvbiBfZXhwb3J0KHRhcmdldCwgYWxsKSB7XG4gICAgZm9yKHZhciBuYW1lIGluIGFsbClPYmplY3QuZGVmaW5lUHJvcGVydHkodGFyZ2V0LCBuYW1lLCB7XG4gICAgICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgICAgIGdldDogYWxsW25hbWVdXG4gICAgfSk7XG59XG5fZXhwb3J0KGV4cG9ydHMsIHtcbiAgICBzZW5kRXRhZ1Jlc3BvbnNlOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIHNlbmRFdGFnUmVzcG9uc2U7XG4gICAgfSxcbiAgICBzZW5kUmVuZGVyUmVzdWx0OiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIHNlbmRSZW5kZXJSZXN1bHQ7XG4gICAgfVxufSk7XG5jb25zdCBfdXRpbHMgPSByZXF1aXJlKFwiLi4vc2hhcmVkL2xpYi91dGlsc1wiKTtcbmNvbnN0IF9ldGFnID0gcmVxdWlyZShcIi4vbGliL2V0YWdcIik7XG5jb25zdCBfZnJlc2ggPSAvKiNfX1BVUkVfXyovIF9pbnRlcm9wX3JlcXVpcmVfZGVmYXVsdChyZXF1aXJlKFwibmV4dC9kaXN0L2NvbXBpbGVkL2ZyZXNoXCIpKTtcbmNvbnN0IF9jYWNoZWNvbnRyb2wgPSByZXF1aXJlKFwiLi9saWIvY2FjaGUtY29udHJvbFwiKTtcbmNvbnN0IF9hcHByb3V0ZXJoZWFkZXJzID0gcmVxdWlyZShcIi4uL2NsaWVudC9jb21wb25lbnRzL2FwcC1yb3V0ZXItaGVhZGVyc1wiKTtcbmZ1bmN0aW9uIF9pbnRlcm9wX3JlcXVpcmVfZGVmYXVsdChvYmopIHtcbiAgICByZXR1cm4gb2JqICYmIG9iai5fX2VzTW9kdWxlID8gb2JqIDoge1xuICAgICAgICBkZWZhdWx0OiBvYmpcbiAgICB9O1xufVxuZnVuY3Rpb24gc2VuZEV0YWdSZXNwb25zZShyZXEsIHJlcywgZXRhZykge1xuICAgIGlmIChldGFnKSB7XG4gICAgICAgIC8qKlxuICAgICAqIFRoZSBzZXJ2ZXIgZ2VuZXJhdGluZyBhIDMwNCByZXNwb25zZSBNVVNUIGdlbmVyYXRlIGFueSBvZiB0aGVcbiAgICAgKiBmb2xsb3dpbmcgaGVhZGVyIGZpZWxkcyB0aGF0IHdvdWxkIGhhdmUgYmVlbiBzZW50IGluIGEgMjAwIChPSylcbiAgICAgKiByZXNwb25zZSB0byB0aGUgc2FtZSByZXF1ZXN0OiBDYWNoZS1Db250cm9sLCBDb250ZW50LUxvY2F0aW9uLCBEYXRlLFxuICAgICAqIEVUYWcsIEV4cGlyZXMsIGFuZCBWYXJ5LiBodHRwczovL3Rvb2xzLmlldGYub3JnL2h0bWwvcmZjNzIzMiNzZWN0aW9uLTQuMVxuICAgICAqLyByZXMuc2V0SGVhZGVyKCdFVGFnJywgZXRhZyk7XG4gICAgfVxuICAgIGlmICgoMCwgX2ZyZXNoLmRlZmF1bHQpKHJlcS5oZWFkZXJzLCB7XG4gICAgICAgIGV0YWdcbiAgICB9KSkge1xuICAgICAgICByZXMuc3RhdHVzQ29kZSA9IDMwNDtcbiAgICAgICAgcmVzLmVuZCgpO1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gICAgcmV0dXJuIGZhbHNlO1xufVxuYXN5bmMgZnVuY3Rpb24gc2VuZFJlbmRlclJlc3VsdCh7IHJlcSwgcmVzLCByZXN1bHQsIHR5cGUsIGdlbmVyYXRlRXRhZ3MsIHBvd2VyZWRCeUhlYWRlciwgY2FjaGVDb250cm9sIH0pIHtcbiAgICBpZiAoKDAsIF91dGlscy5pc1Jlc1NlbnQpKHJlcykpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBpZiAocG93ZXJlZEJ5SGVhZGVyICYmIHR5cGUgPT09ICdodG1sJykge1xuICAgICAgICByZXMuc2V0SGVhZGVyKCdYLVBvd2VyZWQtQnknLCAnTmV4dC5qcycpO1xuICAgIH1cbiAgICAvLyBJZiBjYWNoZSBjb250cm9sIGlzIGFscmVhZHkgc2V0IG9uIHRoZSByZXNwb25zZSB3ZSBkb24ndFxuICAgIC8vIG92ZXJyaWRlIGl0IHRvIGFsbG93IHVzZXJzIHRvIGN1c3RvbWl6ZSBpdCB2aWEgbmV4dC5jb25maWdcbiAgICBpZiAoY2FjaGVDb250cm9sICYmICFyZXMuZ2V0SGVhZGVyKCdDYWNoZS1Db250cm9sJykpIHtcbiAgICAgICAgcmVzLnNldEhlYWRlcignQ2FjaGUtQ29udHJvbCcsICgwLCBfY2FjaGVjb250cm9sLmdldENhY2hlQ29udHJvbEhlYWRlcikoY2FjaGVDb250cm9sKSk7XG4gICAgfVxuICAgIGNvbnN0IHBheWxvYWQgPSByZXN1bHQuaXNEeW5hbWljID8gbnVsbCA6IHJlc3VsdC50b1VuY2h1bmtlZFN0cmluZygpO1xuICAgIGlmIChnZW5lcmF0ZUV0YWdzICYmIHBheWxvYWQgIT09IG51bGwpIHtcbiAgICAgICAgY29uc3QgZXRhZyA9ICgwLCBfZXRhZy5nZW5lcmF0ZUVUYWcpKHBheWxvYWQpO1xuICAgICAgICBpZiAoc2VuZEV0YWdSZXNwb25zZShyZXEsIHJlcywgZXRhZykpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgIH1cbiAgICBpZiAoIXJlcy5nZXRIZWFkZXIoJ0NvbnRlbnQtVHlwZScpKSB7XG4gICAgICAgIHJlcy5zZXRIZWFkZXIoJ0NvbnRlbnQtVHlwZScsIHJlc3VsdC5jb250ZW50VHlwZSA/IHJlc3VsdC5jb250ZW50VHlwZSA6IHR5cGUgPT09ICdyc2MnID8gX2FwcHJvdXRlcmhlYWRlcnMuUlNDX0NPTlRFTlRfVFlQRV9IRUFERVIgOiB0eXBlID09PSAnanNvbicgPyAnYXBwbGljYXRpb24vanNvbicgOiAndGV4dC9odG1sOyBjaGFyc2V0PXV0Zi04Jyk7XG4gICAgfVxuICAgIGlmIChwYXlsb2FkKSB7XG4gICAgICAgIHJlcy5zZXRIZWFkZXIoJ0NvbnRlbnQtTGVuZ3RoJywgQnVmZmVyLmJ5dGVMZW5ndGgocGF5bG9hZCkpO1xuICAgIH1cbiAgICBpZiAocmVxLm1ldGhvZCA9PT0gJ0hFQUQnKSB7XG4gICAgICAgIHJlcy5lbmQobnVsbCk7XG4gICAgICAgIHJldHVybjtcbiAgICB9XG4gICAgaWYgKHBheWxvYWQgIT09IG51bGwpIHtcbiAgICAgICAgcmVzLmVuZChwYXlsb2FkKTtcbiAgICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICAvLyBQaXBlIHRoZSByZW5kZXIgcmVzdWx0IHRvIHRoZSByZXNwb25zZSBhZnRlciB3ZSBnZXQgYSB3cml0ZXIgZm9yIGl0LlxuICAgIGF3YWl0IHJlc3VsdC5waXBlVG9Ob2RlUmVzcG9uc2UocmVzKTtcbn1cblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9c2VuZC1wYXlsb2FkLmpzLm1hcCJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(pages-dir-node)/./node_modules/next/dist/server/send-payload.js\n"); - -/***/ }), - -/***/ "(pages-dir-node)/./node_modules/next/dist/server/stream-utils/encoded-tags.js": -/*!********************************************************************!*\ - !*** ./node_modules/next/dist/server/stream-utils/encoded-tags.js ***! - \********************************************************************/ -/***/ ((__unused_webpack_module, exports) => { - -"use strict"; -eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"ENCODED_TAGS\", ({\n enumerable: true,\n get: function() {\n return ENCODED_TAGS;\n }\n}));\nconst ENCODED_TAGS = {\n // opening tags do not have the closing `>` since they can contain other attributes such as `<body className=''>`\n OPENING: {\n // <html\n HTML: new Uint8Array([\n 60,\n 104,\n 116,\n 109,\n 108\n ]),\n // <body\n BODY: new Uint8Array([\n 60,\n 98,\n 111,\n 100,\n 121\n ])\n },\n CLOSED: {\n // </head>\n HEAD: new Uint8Array([\n 60,\n 47,\n 104,\n 101,\n 97,\n 100,\n 62\n ]),\n // </body>\n BODY: new Uint8Array([\n 60,\n 47,\n 98,\n 111,\n 100,\n 121,\n 62\n ]),\n // </html>\n HTML: new Uint8Array([\n 60,\n 47,\n 104,\n 116,\n 109,\n 108,\n 62\n ]),\n // </body></html>\n BODY_AND_HTML: new Uint8Array([\n 60,\n 47,\n 98,\n 111,\n 100,\n 121,\n 62,\n 60,\n 47,\n 104,\n 116,\n 109,\n 108,\n 62\n ])\n },\n META: {\n // Only the match the prefix cause the suffix can be different wether it's xml compatible or not \">\" or \"/>\"\n // <meta name=\"«nxt-icon»\"\n // This is a special mark that will be replaced by the icon insertion script tag.\n ICON_MARK: new Uint8Array([\n 60,\n 109,\n 101,\n 116,\n 97,\n 32,\n 110,\n 97,\n 109,\n 101,\n 61,\n 34,\n 194,\n 171,\n 110,\n 120,\n 116,\n 45,\n 105,\n 99,\n 111,\n 110,\n 194,\n 187,\n 34\n ])\n }\n};\n\n//# sourceMappingURL=encoded-tags.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1ub2RlKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3Qvc2VydmVyL3N0cmVhbS11dGlscy9lbmNvZGVkLXRhZ3MuanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYiw4Q0FBNkM7QUFDN0M7QUFDQSxDQUFDLEVBQUM7QUFDRixnREFBK0M7QUFDL0M7QUFDQTtBQUNBO0FBQ0E7QUFDQSxDQUFDLEVBQUM7QUFDRjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBIiwic291cmNlcyI6WyJEOlxcZG9uZ3l1bi1wcm9qZWN0c1xcdHdvXFxub2RlX21vZHVsZXNcXG5leHRcXGRpc3RcXHNlcnZlclxcc3RyZWFtLXV0aWxzXFxlbmNvZGVkLXRhZ3MuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHtcbiAgICB2YWx1ZTogdHJ1ZVxufSk7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJFTkNPREVEX1RBR1NcIiwge1xuICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgZ2V0OiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIEVOQ09ERURfVEFHUztcbiAgICB9XG59KTtcbmNvbnN0IEVOQ09ERURfVEFHUyA9IHtcbiAgICAvLyBvcGVuaW5nIHRhZ3MgZG8gbm90IGhhdmUgdGhlIGNsb3NpbmcgYD5gIHNpbmNlIHRoZXkgY2FuIGNvbnRhaW4gb3RoZXIgYXR0cmlidXRlcyBzdWNoIGFzIGA8Ym9keSBjbGFzc05hbWU9Jyc+YFxuICAgIE9QRU5JTkc6IHtcbiAgICAgICAgLy8gPGh0bWxcbiAgICAgICAgSFRNTDogbmV3IFVpbnQ4QXJyYXkoW1xuICAgICAgICAgICAgNjAsXG4gICAgICAgICAgICAxMDQsXG4gICAgICAgICAgICAxMTYsXG4gICAgICAgICAgICAxMDksXG4gICAgICAgICAgICAxMDhcbiAgICAgICAgXSksXG4gICAgICAgIC8vIDxib2R5XG4gICAgICAgIEJPRFk6IG5ldyBVaW50OEFycmF5KFtcbiAgICAgICAgICAgIDYwLFxuICAgICAgICAgICAgOTgsXG4gICAgICAgICAgICAxMTEsXG4gICAgICAgICAgICAxMDAsXG4gICAgICAgICAgICAxMjFcbiAgICAgICAgXSlcbiAgICB9LFxuICAgIENMT1NFRDoge1xuICAgICAgICAvLyA8L2hlYWQ+XG4gICAgICAgIEhFQUQ6IG5ldyBVaW50OEFycmF5KFtcbiAgICAgICAgICAgIDYwLFxuICAgICAgICAgICAgNDcsXG4gICAgICAgICAgICAxMDQsXG4gICAgICAgICAgICAxMDEsXG4gICAgICAgICAgICA5NyxcbiAgICAgICAgICAgIDEwMCxcbiAgICAgICAgICAgIDYyXG4gICAgICAgIF0pLFxuICAgICAgICAvLyA8L2JvZHk+XG4gICAgICAgIEJPRFk6IG5ldyBVaW50OEFycmF5KFtcbiAgICAgICAgICAgIDYwLFxuICAgICAgICAgICAgNDcsXG4gICAgICAgICAgICA5OCxcbiAgICAgICAgICAgIDExMSxcbiAgICAgICAgICAgIDEwMCxcbiAgICAgICAgICAgIDEyMSxcbiAgICAgICAgICAgIDYyXG4gICAgICAgIF0pLFxuICAgICAgICAvLyA8L2h0bWw+XG4gICAgICAgIEhUTUw6IG5ldyBVaW50OEFycmF5KFtcbiAgICAgICAgICAgIDYwLFxuICAgICAgICAgICAgNDcsXG4gICAgICAgICAgICAxMDQsXG4gICAgICAgICAgICAxMTYsXG4gICAgICAgICAgICAxMDksXG4gICAgICAgICAgICAxMDgsXG4gICAgICAgICAgICA2MlxuICAgICAgICBdKSxcbiAgICAgICAgLy8gPC9ib2R5PjwvaHRtbD5cbiAgICAgICAgQk9EWV9BTkRfSFRNTDogbmV3IFVpbnQ4QXJyYXkoW1xuICAgICAgICAgICAgNjAsXG4gICAgICAgICAgICA0NyxcbiAgICAgICAgICAgIDk4LFxuICAgICAgICAgICAgMTExLFxuICAgICAgICAgICAgMTAwLFxuICAgICAgICAgICAgMTIxLFxuICAgICAgICAgICAgNjIsXG4gICAgICAgICAgICA2MCxcbiAgICAgICAgICAgIDQ3LFxuICAgICAgICAgICAgMTA0LFxuICAgICAgICAgICAgMTE2LFxuICAgICAgICAgICAgMTA5LFxuICAgICAgICAgICAgMTA4LFxuICAgICAgICAgICAgNjJcbiAgICAgICAgXSlcbiAgICB9LFxuICAgIE1FVEE6IHtcbiAgICAgICAgLy8gT25seSB0aGUgbWF0Y2ggdGhlIHByZWZpeCBjYXVzZSB0aGUgc3VmZml4IGNhbiBiZSBkaWZmZXJlbnQgd2V0aGVyIGl0J3MgeG1sIGNvbXBhdGlibGUgb3Igbm90IFwiPlwiIG9yIFwiLz5cIlxuICAgICAgICAvLyA8bWV0YSBuYW1lPVwiwqtueHQtaWNvbsK7XCJcbiAgICAgICAgLy8gVGhpcyBpcyBhIHNwZWNpYWwgbWFyayB0aGF0IHdpbGwgYmUgcmVwbGFjZWQgYnkgdGhlIGljb24gaW5zZXJ0aW9uIHNjcmlwdCB0YWcuXG4gICAgICAgIElDT05fTUFSSzogbmV3IFVpbnQ4QXJyYXkoW1xuICAgICAgICAgICAgNjAsXG4gICAgICAgICAgICAxMDksXG4gICAgICAgICAgICAxMDEsXG4gICAgICAgICAgICAxMTYsXG4gICAgICAgICAgICA5NyxcbiAgICAgICAgICAgIDMyLFxuICAgICAgICAgICAgMTEwLFxuICAgICAgICAgICAgOTcsXG4gICAgICAgICAgICAxMDksXG4gICAgICAgICAgICAxMDEsXG4gICAgICAgICAgICA2MSxcbiAgICAgICAgICAgIDM0LFxuICAgICAgICAgICAgMTk0LFxuICAgICAgICAgICAgMTcxLFxuICAgICAgICAgICAgMTEwLFxuICAgICAgICAgICAgMTIwLFxuICAgICAgICAgICAgMTE2LFxuICAgICAgICAgICAgNDUsXG4gICAgICAgICAgICAxMDUsXG4gICAgICAgICAgICA5OSxcbiAgICAgICAgICAgIDExMSxcbiAgICAgICAgICAgIDExMCxcbiAgICAgICAgICAgIDE5NCxcbiAgICAgICAgICAgIDE4NyxcbiAgICAgICAgICAgIDM0XG4gICAgICAgIF0pXG4gICAgfVxufTtcblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9ZW5jb2RlZC10YWdzLmpzLm1hcCJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(pages-dir-node)/./node_modules/next/dist/server/stream-utils/encoded-tags.js\n"); - -/***/ }), - -/***/ "(pages-dir-node)/./node_modules/next/dist/server/stream-utils/node-web-streams-helper.js": -/*!*******************************************************************************!*\ - !*** ./node_modules/next/dist/server/stream-utils/node-web-streams-helper.js ***! - \*******************************************************************************/ -/***/ ((__unused_webpack_module, exports, __webpack_require__) => { - -"use strict"; -eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n chainStreams: function() {\n return chainStreams;\n },\n continueDynamicHTMLResume: function() {\n return continueDynamicHTMLResume;\n },\n continueDynamicPrerender: function() {\n return continueDynamicPrerender;\n },\n continueFizzStream: function() {\n return continueFizzStream;\n },\n continueStaticPrerender: function() {\n return continueStaticPrerender;\n },\n createBufferedTransformStream: function() {\n return createBufferedTransformStream;\n },\n createDocumentClosingStream: function() {\n return createDocumentClosingStream;\n },\n createRootLayoutValidatorStream: function() {\n return createRootLayoutValidatorStream;\n },\n renderToInitialFizzStream: function() {\n return renderToInitialFizzStream;\n },\n streamFromBuffer: function() {\n return streamFromBuffer;\n },\n streamFromString: function() {\n return streamFromString;\n },\n streamToBuffer: function() {\n return streamToBuffer;\n },\n streamToString: function() {\n return streamToString;\n }\n});\nconst _tracer = __webpack_require__(/*! ../lib/trace/tracer */ \"(pages-dir-node)/./node_modules/next/dist/server/lib/trace/tracer.js\");\nconst _constants = __webpack_require__(/*! ../lib/trace/constants */ \"(pages-dir-node)/./node_modules/next/dist/server/lib/trace/constants.js\");\nconst _detachedpromise = __webpack_require__(/*! ../../lib/detached-promise */ \"(pages-dir-node)/./node_modules/next/dist/lib/detached-promise.js\");\nconst _scheduler = __webpack_require__(/*! ../../lib/scheduler */ \"(pages-dir-node)/./node_modules/next/dist/lib/scheduler.js\");\nconst _encodedtags = __webpack_require__(/*! ./encoded-tags */ \"(pages-dir-node)/./node_modules/next/dist/server/stream-utils/encoded-tags.js\");\nconst _uint8arrayhelpers = __webpack_require__(/*! ./uint8array-helpers */ \"(pages-dir-node)/./node_modules/next/dist/server/stream-utils/uint8array-helpers.js\");\nconst _constants1 = __webpack_require__(/*! ../../shared/lib/errors/constants */ \"(pages-dir-node)/./node_modules/next/dist/shared/lib/errors/constants.js\");\nconst _outputexportprefetchencoding = __webpack_require__(/*! ../../shared/lib/segment-cache/output-export-prefetch-encoding */ \"(pages-dir-node)/./node_modules/next/dist/shared/lib/segment-cache/output-export-prefetch-encoding.js\");\nfunction voidCatch() {\n// this catcher is designed to be used with pipeTo where we expect the underlying\n// pipe implementation to forward errors but we don't want the pipeTo promise to reject\n// and be unhandled\n}\n// We can share the same encoder instance everywhere\n// Notably we cannot do the same for TextDecoder because it is stateful\n// when handling streaming data\nconst encoder = new TextEncoder();\nfunction chainStreams(...streams) {\n // We could encode this invariant in the arguments but current uses of this function pass\n // use spread so it would be missed by\n if (streams.length === 0) {\n throw Object.defineProperty(new Error('Invariant: chainStreams requires at least one stream'), \"__NEXT_ERROR_CODE\", {\n value: \"E437\",\n enumerable: false,\n configurable: true\n });\n }\n // If we only have 1 stream we fast path it by returning just this stream\n if (streams.length === 1) {\n return streams[0];\n }\n const { readable, writable } = new TransformStream();\n // We always initiate pipeTo immediately. We know we have at least 2 streams\n // so we need to avoid closing the writable when this one finishes.\n let promise = streams[0].pipeTo(writable, {\n preventClose: true\n });\n let i = 1;\n for(; i < streams.length - 1; i++){\n const nextStream = streams[i];\n promise = promise.then(()=>nextStream.pipeTo(writable, {\n preventClose: true\n }));\n }\n // We can omit the length check because we halted before the last stream and there\n // is at least two streams so the lastStream here will always be defined\n const lastStream = streams[i];\n promise = promise.then(()=>lastStream.pipeTo(writable));\n // Catch any errors from the streams and ignore them, they will be handled\n // by whatever is consuming the readable stream.\n promise.catch(voidCatch);\n return readable;\n}\nfunction streamFromString(str) {\n return new ReadableStream({\n start (controller) {\n controller.enqueue(encoder.encode(str));\n controller.close();\n }\n });\n}\nfunction streamFromBuffer(chunk) {\n return new ReadableStream({\n start (controller) {\n controller.enqueue(chunk);\n controller.close();\n }\n });\n}\nasync function streamToBuffer(stream) {\n const reader = stream.getReader();\n const chunks = [];\n while(true){\n const { done, value } = await reader.read();\n if (done) {\n break;\n }\n chunks.push(value);\n }\n return Buffer.concat(chunks);\n}\nasync function streamToString(stream, signal) {\n const decoder = new TextDecoder('utf-8', {\n fatal: true\n });\n let string = '';\n for await (const chunk of stream){\n if (signal == null ? void 0 : signal.aborted) {\n return string;\n }\n string += decoder.decode(chunk, {\n stream: true\n });\n }\n string += decoder.decode();\n return string;\n}\nfunction createBufferedTransformStream() {\n let bufferedChunks = [];\n let bufferByteLength = 0;\n let pending;\n const flush = (controller)=>{\n // If we already have a pending flush, then return early.\n if (pending) return;\n const detached = new _detachedpromise.DetachedPromise();\n pending = detached;\n (0, _scheduler.scheduleImmediate)(()=>{\n try {\n const chunk = new Uint8Array(bufferByteLength);\n let copiedBytes = 0;\n for(let i = 0; i < bufferedChunks.length; i++){\n const bufferedChunk = bufferedChunks[i];\n chunk.set(bufferedChunk, copiedBytes);\n copiedBytes += bufferedChunk.byteLength;\n }\n // We just wrote all the buffered chunks so we need to reset the bufferedChunks array\n // and our bufferByteLength to prepare for the next round of buffered chunks\n bufferedChunks.length = 0;\n bufferByteLength = 0;\n controller.enqueue(chunk);\n } catch {\n // If an error occurs while enqueuing it can't be due to this\n // transformers fault. It's likely due to the controller being\n // errored due to the stream being cancelled.\n } finally{\n pending = undefined;\n detached.resolve();\n }\n });\n };\n return new TransformStream({\n transform (chunk, controller) {\n // Combine the previous buffer with the new chunk.\n bufferedChunks.push(chunk);\n bufferByteLength += chunk.byteLength;\n // Flush the buffer to the controller.\n flush(controller);\n },\n flush () {\n if (!pending) return;\n return pending.promise;\n }\n });\n}\nfunction createPrefetchCommentStream(isBuildTimePrerendering, buildId) {\n // Insert an extra comment at the beginning of the HTML document. This must\n // come after the DOCTYPE, which is inserted by React.\n //\n // The first chunk sent by React will contain the doctype. After that, we can\n // pass through the rest of the chunks as-is.\n let didTransformFirstChunk = false;\n return new TransformStream({\n transform (chunk, controller) {\n if (isBuildTimePrerendering && !didTransformFirstChunk) {\n didTransformFirstChunk = true;\n const decoder = new TextDecoder('utf-8', {\n fatal: true\n });\n const chunkStr = decoder.decode(chunk, {\n stream: true\n });\n const updatedChunkStr = (0, _outputexportprefetchencoding.insertBuildIdComment)(chunkStr, buildId);\n controller.enqueue(encoder.encode(updatedChunkStr));\n return;\n }\n controller.enqueue(chunk);\n }\n });\n}\nfunction renderToInitialFizzStream({ ReactDOMServer, element, streamOptions }) {\n return (0, _tracer.getTracer)().trace(_constants.AppRenderSpan.renderToReadableStream, async ()=>ReactDOMServer.renderToReadableStream(element, streamOptions));\n}\nfunction createMetadataTransformStream(insert) {\n let chunkIndex = -1;\n let isMarkRemoved = false;\n return new TransformStream({\n async transform (chunk, controller) {\n let iconMarkIndex = -1;\n let closedHeadIndex = -1;\n chunkIndex++;\n if (isMarkRemoved) {\n controller.enqueue(chunk);\n return;\n }\n let iconMarkLength = 0;\n // Only search for the closed head tag once\n if (iconMarkIndex === -1) {\n iconMarkIndex = (0, _uint8arrayhelpers.indexOfUint8Array)(chunk, _encodedtags.ENCODED_TAGS.META.ICON_MARK);\n if (iconMarkIndex === -1) {\n controller.enqueue(chunk);\n return;\n } else {\n // When we found the `<meta name=\"«nxt-icon»\"` tag prefix, we will remove it from the chunk.\n // Its close tag could either be `/>` or `>`, checking the next char to ensure we cover both cases.\n iconMarkLength = _encodedtags.ENCODED_TAGS.META.ICON_MARK.length;\n // Check if next char is /, this is for xml mode.\n if (chunk[iconMarkIndex + iconMarkLength] === 47) {\n iconMarkLength += 2;\n } else {\n // The last char is `>`\n iconMarkLength++;\n }\n }\n }\n // Check if icon mark is inside <head> tag in the first chunk.\n if (chunkIndex === 0) {\n closedHeadIndex = (0, _uint8arrayhelpers.indexOfUint8Array)(chunk, _encodedtags.ENCODED_TAGS.CLOSED.HEAD);\n // The mark icon is located in the 1st chunk before the head tag.\n // We do not need to insert the script tag in this case because it's in the head.\n // Just remove the icon mark from the chunk.\n if (iconMarkIndex < closedHeadIndex && iconMarkIndex !== -1) {\n const replaced = new Uint8Array(chunk.length - iconMarkLength);\n // Remove the icon mark from the chunk.\n replaced.set(chunk.subarray(0, iconMarkIndex));\n replaced.set(chunk.subarray(iconMarkIndex + iconMarkLength), iconMarkIndex);\n chunk = replaced;\n isMarkRemoved = true;\n }\n } else {\n // When it's appeared in the following chunks, we'll need to\n // remove the mark and then insert the script tag at that position.\n const insertion = await insert();\n const encodedInsertion = encoder.encode(insertion);\n const insertionLength = encodedInsertion.length;\n // Replace the icon mark with the hoist script or empty string.\n const replaced = new Uint8Array(chunk.length - iconMarkLength + insertionLength);\n // Set the first part of the chunk, before the icon mark.\n replaced.set(chunk.subarray(0, iconMarkIndex));\n // Set the insertion after the icon mark.\n replaced.set(encodedInsertion, iconMarkIndex);\n // Set the rest of the chunk after the icon mark.\n replaced.set(chunk.subarray(iconMarkIndex + iconMarkLength), iconMarkIndex + insertionLength);\n chunk = replaced;\n isMarkRemoved = true;\n }\n controller.enqueue(chunk);\n }\n });\n}\nfunction createHeadInsertionTransformStream(insert) {\n let inserted = false;\n // We need to track if this transform saw any bytes because if it didn't\n // we won't want to insert any server HTML at all\n let hasBytes = false;\n return new TransformStream({\n async transform (chunk, controller) {\n hasBytes = true;\n const insertion = await insert();\n if (inserted) {\n if (insertion) {\n const encodedInsertion = encoder.encode(insertion);\n controller.enqueue(encodedInsertion);\n }\n controller.enqueue(chunk);\n } else {\n // TODO (@Ethan-Arrowood): Replace the generic `indexOfUint8Array` method with something finely tuned for the subset of things actually being checked for.\n const index = (0, _uint8arrayhelpers.indexOfUint8Array)(chunk, _encodedtags.ENCODED_TAGS.CLOSED.HEAD);\n // In fully static rendering or non PPR rendering cases:\n // `/head>` will always be found in the chunk in first chunk rendering.\n if (index !== -1) {\n if (insertion) {\n const encodedInsertion = encoder.encode(insertion);\n // Get the total count of the bytes in the chunk and the insertion\n // e.g.\n // chunk = <head><meta charset=\"utf-8\"></head>\n // insertion = <script>...</script>\n // output = <head><meta charset=\"utf-8\"> [ <script>...</script> ] </head>\n const insertedHeadContent = new Uint8Array(chunk.length + encodedInsertion.length);\n // Append the first part of the chunk, before the head tag\n insertedHeadContent.set(chunk.slice(0, index));\n // Append the server inserted content\n insertedHeadContent.set(encodedInsertion, index);\n // Append the rest of the chunk\n insertedHeadContent.set(chunk.slice(index), index + encodedInsertion.length);\n controller.enqueue(insertedHeadContent);\n } else {\n controller.enqueue(chunk);\n }\n inserted = true;\n } else {\n // This will happens in PPR rendering during next start, when the page is partially rendered.\n // When the page resumes, the head tag will be found in the middle of the chunk.\n // Where we just need to append the insertion and chunk to the current stream.\n // e.g.\n // PPR-static: <head>...</head><body> [ resume content ] </body>\n // PPR-resume: [ insertion ] [ rest content ]\n if (insertion) {\n controller.enqueue(encoder.encode(insertion));\n }\n controller.enqueue(chunk);\n inserted = true;\n }\n }\n },\n async flush (controller) {\n // Check before closing if there's anything remaining to insert.\n if (hasBytes) {\n const insertion = await insert();\n if (insertion) {\n controller.enqueue(encoder.encode(insertion));\n }\n }\n }\n });\n}\n// Suffix after main body content - scripts before </body>,\n// but wait for the major chunks to be enqueued.\nfunction createDeferredSuffixStream(suffix) {\n let flushed = false;\n let pending;\n const flush = (controller)=>{\n const detached = new _detachedpromise.DetachedPromise();\n pending = detached;\n (0, _scheduler.scheduleImmediate)(()=>{\n try {\n controller.enqueue(encoder.encode(suffix));\n } catch {\n // If an error occurs while enqueuing it can't be due to this\n // transformers fault. It's likely due to the controller being\n // errored due to the stream being cancelled.\n } finally{\n pending = undefined;\n detached.resolve();\n }\n });\n };\n return new TransformStream({\n transform (chunk, controller) {\n controller.enqueue(chunk);\n // If we've already flushed, we're done.\n if (flushed) return;\n // Schedule the flush to happen.\n flushed = true;\n flush(controller);\n },\n flush (controller) {\n if (pending) return pending.promise;\n if (flushed) return;\n // Flush now.\n controller.enqueue(encoder.encode(suffix));\n }\n });\n}\n// Merge two streams into one. Ensure the final transform stream is closed\n// when both are finished.\nfunction createMergedTransformStream(stream) {\n let pull = null;\n let donePulling = false;\n async function startPulling(controller) {\n if (pull) {\n return;\n }\n const reader = stream.getReader();\n // NOTE: streaming flush\n // We are buffering here for the inlined data stream because the\n // \"shell\" stream might be chunkenized again by the underlying stream\n // implementation, e.g. with a specific high-water mark. To ensure it's\n // the safe timing to pipe the data stream, this extra tick is\n // necessary.\n // We don't start reading until we've left the current Task to ensure\n // that it's inserted after flushing the shell. Note that this implementation\n // might get stale if impl details of Fizz change in the future.\n await (0, _scheduler.atLeastOneTask)();\n try {\n while(true){\n const { done, value } = await reader.read();\n if (done) {\n donePulling = true;\n return;\n }\n controller.enqueue(value);\n }\n } catch (err) {\n controller.error(err);\n }\n }\n return new TransformStream({\n transform (chunk, controller) {\n controller.enqueue(chunk);\n // Start the streaming if it hasn't already been started yet.\n if (!pull) {\n pull = startPulling(controller);\n }\n },\n flush (controller) {\n if (donePulling) {\n return;\n }\n return pull || startPulling(controller);\n }\n });\n}\nconst CLOSE_TAG = '</body></html>';\n/**\n * This transform stream moves the suffix to the end of the stream, so results\n * like `</body></html><script>...</script>` will be transformed to\n * `<script>...</script></body></html>`.\n */ function createMoveSuffixStream() {\n let foundSuffix = false;\n return new TransformStream({\n transform (chunk, controller) {\n if (foundSuffix) {\n return controller.enqueue(chunk);\n }\n const index = (0, _uint8arrayhelpers.indexOfUint8Array)(chunk, _encodedtags.ENCODED_TAGS.CLOSED.BODY_AND_HTML);\n if (index > -1) {\n foundSuffix = true;\n // If the whole chunk is the suffix, then don't write anything, it will\n // be written in the flush.\n if (chunk.length === _encodedtags.ENCODED_TAGS.CLOSED.BODY_AND_HTML.length) {\n return;\n }\n // Write out the part before the suffix.\n const before = chunk.slice(0, index);\n controller.enqueue(before);\n // In the case where the suffix is in the middle of the chunk, we need\n // to split the chunk into two parts.\n if (chunk.length > _encodedtags.ENCODED_TAGS.CLOSED.BODY_AND_HTML.length + index) {\n // Write out the part after the suffix.\n const after = chunk.slice(index + _encodedtags.ENCODED_TAGS.CLOSED.BODY_AND_HTML.length);\n controller.enqueue(after);\n }\n } else {\n controller.enqueue(chunk);\n }\n },\n flush (controller) {\n // Even if we didn't find the suffix, the HTML is not valid if we don't\n // add it, so insert it at the end.\n controller.enqueue(_encodedtags.ENCODED_TAGS.CLOSED.BODY_AND_HTML);\n }\n });\n}\nfunction createStripDocumentClosingTagsTransform() {\n return new TransformStream({\n transform (chunk, controller) {\n // We rely on the assumption that chunks will never break across a code unit.\n // This is reasonable because we currently concat all of React's output from a single\n // flush into one chunk before streaming it forward which means the chunk will represent\n // a single coherent utf-8 string. This is not safe to use if we change our streaming to no\n // longer do this large buffered chunk\n if ((0, _uint8arrayhelpers.isEquivalentUint8Arrays)(chunk, _encodedtags.ENCODED_TAGS.CLOSED.BODY_AND_HTML) || (0, _uint8arrayhelpers.isEquivalentUint8Arrays)(chunk, _encodedtags.ENCODED_TAGS.CLOSED.BODY) || (0, _uint8arrayhelpers.isEquivalentUint8Arrays)(chunk, _encodedtags.ENCODED_TAGS.CLOSED.HTML)) {\n // the entire chunk is the closing tags; return without enqueueing anything.\n return;\n }\n // We assume these tags will go at together at the end of the document and that\n // they won't appear anywhere else in the document. This is not really a safe assumption\n // but until we revamp our streaming infra this is a performant way to string the tags\n chunk = (0, _uint8arrayhelpers.removeFromUint8Array)(chunk, _encodedtags.ENCODED_TAGS.CLOSED.BODY);\n chunk = (0, _uint8arrayhelpers.removeFromUint8Array)(chunk, _encodedtags.ENCODED_TAGS.CLOSED.HTML);\n controller.enqueue(chunk);\n }\n });\n}\nfunction createRootLayoutValidatorStream() {\n let foundHtml = false;\n let foundBody = false;\n return new TransformStream({\n async transform (chunk, controller) {\n // Peek into the streamed chunk to see if the tags are present.\n if (!foundHtml && (0, _uint8arrayhelpers.indexOfUint8Array)(chunk, _encodedtags.ENCODED_TAGS.OPENING.HTML) > -1) {\n foundHtml = true;\n }\n if (!foundBody && (0, _uint8arrayhelpers.indexOfUint8Array)(chunk, _encodedtags.ENCODED_TAGS.OPENING.BODY) > -1) {\n foundBody = true;\n }\n controller.enqueue(chunk);\n },\n flush (controller) {\n const missingTags = [];\n if (!foundHtml) missingTags.push('html');\n if (!foundBody) missingTags.push('body');\n if (!missingTags.length) return;\n controller.enqueue(encoder.encode(`<html id=\"__next_error__\">\n <template\n data-next-error-message=\"Missing ${missingTags.map((c)=>`<${c}>`).join(missingTags.length > 1 ? ' and ' : '')} tags in the root layout.\\nRead more at https://nextjs.org/docs/messages/missing-root-layout-tags\"\"\n data-next-error-digest=\"${_constants1.MISSING_ROOT_TAGS_ERROR}\"\n data-next-error-stack=\"\"\n ></template>\n `));\n }\n });\n}\nfunction chainTransformers(readable, transformers) {\n let stream = readable;\n for (const transformer of transformers){\n if (!transformer) continue;\n stream = stream.pipeThrough(transformer);\n }\n return stream;\n}\nasync function continueFizzStream(renderStream, { suffix, inlinedDataStream, isStaticGeneration, isBuildTimePrerendering, buildId, getServerInsertedHTML, getServerInsertedMetadata, validateRootLayout }) {\n // Suffix itself might contain close tags at the end, so we need to split it.\n const suffixUnclosed = suffix ? suffix.split(CLOSE_TAG, 1)[0] : null;\n // If we're generating static HTML and there's an `allReady` promise on the\n // stream, we need to wait for it to resolve before continuing.\n if (isStaticGeneration && 'allReady' in renderStream) {\n await renderStream.allReady;\n }\n return chainTransformers(renderStream, [\n // Buffer everything to avoid flushing too frequently\n createBufferedTransformStream(),\n // Add build id comment to start of the HTML document (in export mode)\n createPrefetchCommentStream(isBuildTimePrerendering, buildId),\n // Transform metadata\n createMetadataTransformStream(getServerInsertedMetadata),\n // Insert suffix content\n suffixUnclosed != null && suffixUnclosed.length > 0 ? createDeferredSuffixStream(suffixUnclosed) : null,\n // Insert the inlined data (Flight data, form state, etc.) stream into the HTML\n inlinedDataStream ? createMergedTransformStream(inlinedDataStream) : null,\n // Validate the root layout for missing html or body tags\n validateRootLayout ? createRootLayoutValidatorStream() : null,\n // Close tags should always be deferred to the end\n createMoveSuffixStream(),\n // Special head insertions\n // TODO-APP: Insert server side html to end of head in app layout rendering, to avoid\n // hydration errors. Remove this once it's ready to be handled by react itself.\n createHeadInsertionTransformStream(getServerInsertedHTML)\n ]);\n}\nasync function continueDynamicPrerender(prerenderStream, { getServerInsertedHTML, getServerInsertedMetadata }) {\n return prerenderStream// Buffer everything to avoid flushing too frequently\n .pipeThrough(createBufferedTransformStream()).pipeThrough(createStripDocumentClosingTagsTransform())// Insert generated tags to head\n .pipeThrough(createHeadInsertionTransformStream(getServerInsertedHTML))// Transform metadata\n .pipeThrough(createMetadataTransformStream(getServerInsertedMetadata));\n}\nasync function continueStaticPrerender(prerenderStream, { inlinedDataStream, getServerInsertedHTML, getServerInsertedMetadata, isBuildTimePrerendering, buildId }) {\n return prerenderStream// Buffer everything to avoid flushing too frequently\n .pipeThrough(createBufferedTransformStream())// Add build id comment to start of the HTML document (in export mode)\n .pipeThrough(createPrefetchCommentStream(isBuildTimePrerendering, buildId))// Insert generated tags to head\n .pipeThrough(createHeadInsertionTransformStream(getServerInsertedHTML))// Transform metadata\n .pipeThrough(createMetadataTransformStream(getServerInsertedMetadata))// Insert the inlined data (Flight data, form state, etc.) stream into the HTML\n .pipeThrough(createMergedTransformStream(inlinedDataStream))// Close tags should always be deferred to the end\n .pipeThrough(createMoveSuffixStream());\n}\nasync function continueDynamicHTMLResume(renderStream, { inlinedDataStream, getServerInsertedHTML, getServerInsertedMetadata }) {\n return renderStream// Buffer everything to avoid flushing too frequently\n .pipeThrough(createBufferedTransformStream())// Insert generated tags to head\n .pipeThrough(createHeadInsertionTransformStream(getServerInsertedHTML))// Transform metadata\n .pipeThrough(createMetadataTransformStream(getServerInsertedMetadata))// Insert the inlined data (Flight data, form state, etc.) stream into the HTML\n .pipeThrough(createMergedTransformStream(inlinedDataStream))// Close tags should always be deferred to the end\n .pipeThrough(createMoveSuffixStream());\n}\nfunction createDocumentClosingStream() {\n return streamFromString(CLOSE_TAG);\n}\n\n//# sourceMappingURL=node-web-streams-helper.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1ub2RlKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3Qvc2VydmVyL3N0cmVhbS11dGlscy9ub2RlLXdlYi1zdHJlYW1zLWhlbHBlci5qcyIsIm1hcHBpbmdzIjoiQUFBYTtBQUNiLDhDQUE2QztBQUM3QztBQUNBLENBQUMsRUFBQztBQUNGLE1BQU0sQ0FjTDtBQUNEO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQSxDQUFDO0FBQ0QsZ0JBQWdCLG1CQUFPLENBQUMsaUdBQXFCO0FBQzdDLG1CQUFtQixtQkFBTyxDQUFDLHVHQUF3QjtBQUNuRCx5QkFBeUIsbUJBQU8sQ0FBQyxxR0FBNEI7QUFDN0QsbUJBQW1CLG1CQUFPLENBQUMsdUZBQXFCO0FBQ2hELHFCQUFxQixtQkFBTyxDQUFDLHFHQUFnQjtBQUM3QywyQkFBMkIsbUJBQU8sQ0FBQyxpSEFBc0I7QUFDekQsb0JBQW9CLG1CQUFPLENBQUMsbUhBQW1DO0FBQy9ELHNDQUFzQyxtQkFBTyxDQUFDLDZLQUFnRTtBQUM5RztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxZQUFZLHFCQUFxQjtBQUNqQztBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBLFVBQVUsd0JBQXdCO0FBQ2xDO0FBQ0E7QUFDQTtBQUNBLGFBQWE7QUFDYjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsZ0JBQWdCLGNBQWM7QUFDOUI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLCtCQUErQiwyQkFBMkI7QUFDMUQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsY0FBYztBQUNkO0FBQ0E7QUFDQTtBQUNBLGNBQWM7QUFDZDtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsaUJBQWlCO0FBQ2pCO0FBQ0E7QUFDQSxpQkFBaUI7QUFDakI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0EscUNBQXFDLHdDQUF3QztBQUM3RTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxrQkFBa0I7QUFDbEI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esc0JBQXNCO0FBQ3RCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsY0FBYztBQUNkO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGNBQWM7QUFDZDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esc0JBQXNCO0FBQ3RCO0FBQ0E7QUFDQTtBQUNBLGtCQUFrQjtBQUNsQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsY0FBYztBQUNkO0FBQ0E7QUFDQTtBQUNBLGNBQWM7QUFDZDtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esd0JBQXdCLGNBQWM7QUFDdEM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsVUFBVTtBQUNWO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGNBQWM7QUFDZDtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSx5REFBeUQ7QUFDekQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxpREFBaUQseUJBQXlCLEVBQUUsaURBQWlEO0FBQzdILHdDQUF3QyxvQ0FBb0M7QUFDNUU7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esa0RBQWtELHVKQUF1SjtBQUN6TTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLDJEQUEyRCxrREFBa0Q7QUFDN0c7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLDBEQUEwRCx1R0FBdUc7QUFDaks7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHlEQUF5RCxxRUFBcUU7QUFDOUg7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUEiLCJzb3VyY2VzIjpbIkQ6XFxkb25neXVuLXByb2plY3RzXFx0d29cXG5vZGVfbW9kdWxlc1xcbmV4dFxcZGlzdFxcc2VydmVyXFxzdHJlYW0tdXRpbHNcXG5vZGUtd2ViLXN0cmVhbXMtaGVscGVyLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7XG4gICAgdmFsdWU6IHRydWVcbn0pO1xuMCAmJiAobW9kdWxlLmV4cG9ydHMgPSB7XG4gICAgY2hhaW5TdHJlYW1zOiBudWxsLFxuICAgIGNvbnRpbnVlRHluYW1pY0hUTUxSZXN1bWU6IG51bGwsXG4gICAgY29udGludWVEeW5hbWljUHJlcmVuZGVyOiBudWxsLFxuICAgIGNvbnRpbnVlRml6elN0cmVhbTogbnVsbCxcbiAgICBjb250aW51ZVN0YXRpY1ByZXJlbmRlcjogbnVsbCxcbiAgICBjcmVhdGVCdWZmZXJlZFRyYW5zZm9ybVN0cmVhbTogbnVsbCxcbiAgICBjcmVhdGVEb2N1bWVudENsb3NpbmdTdHJlYW06IG51bGwsXG4gICAgY3JlYXRlUm9vdExheW91dFZhbGlkYXRvclN0cmVhbTogbnVsbCxcbiAgICByZW5kZXJUb0luaXRpYWxGaXp6U3RyZWFtOiBudWxsLFxuICAgIHN0cmVhbUZyb21CdWZmZXI6IG51bGwsXG4gICAgc3RyZWFtRnJvbVN0cmluZzogbnVsbCxcbiAgICBzdHJlYW1Ub0J1ZmZlcjogbnVsbCxcbiAgICBzdHJlYW1Ub1N0cmluZzogbnVsbFxufSk7XG5mdW5jdGlvbiBfZXhwb3J0KHRhcmdldCwgYWxsKSB7XG4gICAgZm9yKHZhciBuYW1lIGluIGFsbClPYmplY3QuZGVmaW5lUHJvcGVydHkodGFyZ2V0LCBuYW1lLCB7XG4gICAgICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgICAgIGdldDogYWxsW25hbWVdXG4gICAgfSk7XG59XG5fZXhwb3J0KGV4cG9ydHMsIHtcbiAgICBjaGFpblN0cmVhbXM6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gY2hhaW5TdHJlYW1zO1xuICAgIH0sXG4gICAgY29udGludWVEeW5hbWljSFRNTFJlc3VtZTogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBjb250aW51ZUR5bmFtaWNIVE1MUmVzdW1lO1xuICAgIH0sXG4gICAgY29udGludWVEeW5hbWljUHJlcmVuZGVyOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIGNvbnRpbnVlRHluYW1pY1ByZXJlbmRlcjtcbiAgICB9LFxuICAgIGNvbnRpbnVlRml6elN0cmVhbTogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBjb250aW51ZUZpenpTdHJlYW07XG4gICAgfSxcbiAgICBjb250aW51ZVN0YXRpY1ByZXJlbmRlcjogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBjb250aW51ZVN0YXRpY1ByZXJlbmRlcjtcbiAgICB9LFxuICAgIGNyZWF0ZUJ1ZmZlcmVkVHJhbnNmb3JtU3RyZWFtOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIGNyZWF0ZUJ1ZmZlcmVkVHJhbnNmb3JtU3RyZWFtO1xuICAgIH0sXG4gICAgY3JlYXRlRG9jdW1lbnRDbG9zaW5nU3RyZWFtOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIGNyZWF0ZURvY3VtZW50Q2xvc2luZ1N0cmVhbTtcbiAgICB9LFxuICAgIGNyZWF0ZVJvb3RMYXlvdXRWYWxpZGF0b3JTdHJlYW06IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gY3JlYXRlUm9vdExheW91dFZhbGlkYXRvclN0cmVhbTtcbiAgICB9LFxuICAgIHJlbmRlclRvSW5pdGlhbEZpenpTdHJlYW06IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gcmVuZGVyVG9Jbml0aWFsRml6elN0cmVhbTtcbiAgICB9LFxuICAgIHN0cmVhbUZyb21CdWZmZXI6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gc3RyZWFtRnJvbUJ1ZmZlcjtcbiAgICB9LFxuICAgIHN0cmVhbUZyb21TdHJpbmc6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gc3RyZWFtRnJvbVN0cmluZztcbiAgICB9LFxuICAgIHN0cmVhbVRvQnVmZmVyOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIHN0cmVhbVRvQnVmZmVyO1xuICAgIH0sXG4gICAgc3RyZWFtVG9TdHJpbmc6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gc3RyZWFtVG9TdHJpbmc7XG4gICAgfVxufSk7XG5jb25zdCBfdHJhY2VyID0gcmVxdWlyZShcIi4uL2xpYi90cmFjZS90cmFjZXJcIik7XG5jb25zdCBfY29uc3RhbnRzID0gcmVxdWlyZShcIi4uL2xpYi90cmFjZS9jb25zdGFudHNcIik7XG5jb25zdCBfZGV0YWNoZWRwcm9taXNlID0gcmVxdWlyZShcIi4uLy4uL2xpYi9kZXRhY2hlZC1wcm9taXNlXCIpO1xuY29uc3QgX3NjaGVkdWxlciA9IHJlcXVpcmUoXCIuLi8uLi9saWIvc2NoZWR1bGVyXCIpO1xuY29uc3QgX2VuY29kZWR0YWdzID0gcmVxdWlyZShcIi4vZW5jb2RlZC10YWdzXCIpO1xuY29uc3QgX3VpbnQ4YXJyYXloZWxwZXJzID0gcmVxdWlyZShcIi4vdWludDhhcnJheS1oZWxwZXJzXCIpO1xuY29uc3QgX2NvbnN0YW50czEgPSByZXF1aXJlKFwiLi4vLi4vc2hhcmVkL2xpYi9lcnJvcnMvY29uc3RhbnRzXCIpO1xuY29uc3QgX291dHB1dGV4cG9ydHByZWZldGNoZW5jb2RpbmcgPSByZXF1aXJlKFwiLi4vLi4vc2hhcmVkL2xpYi9zZWdtZW50LWNhY2hlL291dHB1dC1leHBvcnQtcHJlZmV0Y2gtZW5jb2RpbmdcIik7XG5mdW5jdGlvbiB2b2lkQ2F0Y2goKSB7XG4vLyB0aGlzIGNhdGNoZXIgaXMgZGVzaWduZWQgdG8gYmUgdXNlZCB3aXRoIHBpcGVUbyB3aGVyZSB3ZSBleHBlY3QgdGhlIHVuZGVybHlpbmdcbi8vIHBpcGUgaW1wbGVtZW50YXRpb24gdG8gZm9yd2FyZCBlcnJvcnMgYnV0IHdlIGRvbid0IHdhbnQgdGhlIHBpcGVUbyBwcm9taXNlIHRvIHJlamVjdFxuLy8gYW5kIGJlIHVuaGFuZGxlZFxufVxuLy8gV2UgY2FuIHNoYXJlIHRoZSBzYW1lIGVuY29kZXIgaW5zdGFuY2UgZXZlcnl3aGVyZVxuLy8gTm90YWJseSB3ZSBjYW5ub3QgZG8gdGhlIHNhbWUgZm9yIFRleHREZWNvZGVyIGJlY2F1c2UgaXQgaXMgc3RhdGVmdWxcbi8vIHdoZW4gaGFuZGxpbmcgc3RyZWFtaW5nIGRhdGFcbmNvbnN0IGVuY29kZXIgPSBuZXcgVGV4dEVuY29kZXIoKTtcbmZ1bmN0aW9uIGNoYWluU3RyZWFtcyguLi5zdHJlYW1zKSB7XG4gICAgLy8gV2UgY291bGQgZW5jb2RlIHRoaXMgaW52YXJpYW50IGluIHRoZSBhcmd1bWVudHMgYnV0IGN1cnJlbnQgdXNlcyBvZiB0aGlzIGZ1bmN0aW9uIHBhc3NcbiAgICAvLyB1c2Ugc3ByZWFkIHNvIGl0IHdvdWxkIGJlIG1pc3NlZCBieVxuICAgIGlmIChzdHJlYW1zLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICB0aHJvdyBPYmplY3QuZGVmaW5lUHJvcGVydHkobmV3IEVycm9yKCdJbnZhcmlhbnQ6IGNoYWluU3RyZWFtcyByZXF1aXJlcyBhdCBsZWFzdCBvbmUgc3RyZWFtJyksIFwiX19ORVhUX0VSUk9SX0NPREVcIiwge1xuICAgICAgICAgICAgdmFsdWU6IFwiRTQzN1wiLFxuICAgICAgICAgICAgZW51bWVyYWJsZTogZmFsc2UsXG4gICAgICAgICAgICBjb25maWd1cmFibGU6IHRydWVcbiAgICAgICAgfSk7XG4gICAgfVxuICAgIC8vIElmIHdlIG9ubHkgaGF2ZSAxIHN0cmVhbSB3ZSBmYXN0IHBhdGggaXQgYnkgcmV0dXJuaW5nIGp1c3QgdGhpcyBzdHJlYW1cbiAgICBpZiAoc3RyZWFtcy5sZW5ndGggPT09IDEpIHtcbiAgICAgICAgcmV0dXJuIHN0cmVhbXNbMF07XG4gICAgfVxuICAgIGNvbnN0IHsgcmVhZGFibGUsIHdyaXRhYmxlIH0gPSBuZXcgVHJhbnNmb3JtU3RyZWFtKCk7XG4gICAgLy8gV2UgYWx3YXlzIGluaXRpYXRlIHBpcGVUbyBpbW1lZGlhdGVseS4gV2Uga25vdyB3ZSBoYXZlIGF0IGxlYXN0IDIgc3RyZWFtc1xuICAgIC8vIHNvIHdlIG5lZWQgdG8gYXZvaWQgY2xvc2luZyB0aGUgd3JpdGFibGUgd2hlbiB0aGlzIG9uZSBmaW5pc2hlcy5cbiAgICBsZXQgcHJvbWlzZSA9IHN0cmVhbXNbMF0ucGlwZVRvKHdyaXRhYmxlLCB7XG4gICAgICAgIHByZXZlbnRDbG9zZTogdHJ1ZVxuICAgIH0pO1xuICAgIGxldCBpID0gMTtcbiAgICBmb3IoOyBpIDwgc3RyZWFtcy5sZW5ndGggLSAxOyBpKyspe1xuICAgICAgICBjb25zdCBuZXh0U3RyZWFtID0gc3RyZWFtc1tpXTtcbiAgICAgICAgcHJvbWlzZSA9IHByb21pc2UudGhlbigoKT0+bmV4dFN0cmVhbS5waXBlVG8od3JpdGFibGUsIHtcbiAgICAgICAgICAgICAgICBwcmV2ZW50Q2xvc2U6IHRydWVcbiAgICAgICAgICAgIH0pKTtcbiAgICB9XG4gICAgLy8gV2UgY2FuIG9taXQgdGhlIGxlbmd0aCBjaGVjayBiZWNhdXNlIHdlIGhhbHRlZCBiZWZvcmUgdGhlIGxhc3Qgc3RyZWFtIGFuZCB0aGVyZVxuICAgIC8vIGlzIGF0IGxlYXN0IHR3byBzdHJlYW1zIHNvIHRoZSBsYXN0U3RyZWFtIGhlcmUgd2lsbCBhbHdheXMgYmUgZGVmaW5lZFxuICAgIGNvbnN0IGxhc3RTdHJlYW0gPSBzdHJlYW1zW2ldO1xuICAgIHByb21pc2UgPSBwcm9taXNlLnRoZW4oKCk9Pmxhc3RTdHJlYW0ucGlwZVRvKHdyaXRhYmxlKSk7XG4gICAgLy8gQ2F0Y2ggYW55IGVycm9ycyBmcm9tIHRoZSBzdHJlYW1zIGFuZCBpZ25vcmUgdGhlbSwgdGhleSB3aWxsIGJlIGhhbmRsZWRcbiAgICAvLyBieSB3aGF0ZXZlciBpcyBjb25zdW1pbmcgdGhlIHJlYWRhYmxlIHN0cmVhbS5cbiAgICBwcm9taXNlLmNhdGNoKHZvaWRDYXRjaCk7XG4gICAgcmV0dXJuIHJlYWRhYmxlO1xufVxuZnVuY3Rpb24gc3RyZWFtRnJvbVN0cmluZyhzdHIpIHtcbiAgICByZXR1cm4gbmV3IFJlYWRhYmxlU3RyZWFtKHtcbiAgICAgICAgc3RhcnQgKGNvbnRyb2xsZXIpIHtcbiAgICAgICAgICAgIGNvbnRyb2xsZXIuZW5xdWV1ZShlbmNvZGVyLmVuY29kZShzdHIpKTtcbiAgICAgICAgICAgIGNvbnRyb2xsZXIuY2xvc2UoKTtcbiAgICAgICAgfVxuICAgIH0pO1xufVxuZnVuY3Rpb24gc3RyZWFtRnJvbUJ1ZmZlcihjaHVuaykge1xuICAgIHJldHVybiBuZXcgUmVhZGFibGVTdHJlYW0oe1xuICAgICAgICBzdGFydCAoY29udHJvbGxlcikge1xuICAgICAgICAgICAgY29udHJvbGxlci5lbnF1ZXVlKGNodW5rKTtcbiAgICAgICAgICAgIGNvbnRyb2xsZXIuY2xvc2UoKTtcbiAgICAgICAgfVxuICAgIH0pO1xufVxuYXN5bmMgZnVuY3Rpb24gc3RyZWFtVG9CdWZmZXIoc3RyZWFtKSB7XG4gICAgY29uc3QgcmVhZGVyID0gc3RyZWFtLmdldFJlYWRlcigpO1xuICAgIGNvbnN0IGNodW5rcyA9IFtdO1xuICAgIHdoaWxlKHRydWUpe1xuICAgICAgICBjb25zdCB7IGRvbmUsIHZhbHVlIH0gPSBhd2FpdCByZWFkZXIucmVhZCgpO1xuICAgICAgICBpZiAoZG9uZSkge1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgY2h1bmtzLnB1c2godmFsdWUpO1xuICAgIH1cbiAgICByZXR1cm4gQnVmZmVyLmNvbmNhdChjaHVua3MpO1xufVxuYXN5bmMgZnVuY3Rpb24gc3RyZWFtVG9TdHJpbmcoc3RyZWFtLCBzaWduYWwpIHtcbiAgICBjb25zdCBkZWNvZGVyID0gbmV3IFRleHREZWNvZGVyKCd1dGYtOCcsIHtcbiAgICAgICAgZmF0YWw6IHRydWVcbiAgICB9KTtcbiAgICBsZXQgc3RyaW5nID0gJyc7XG4gICAgZm9yIGF3YWl0IChjb25zdCBjaHVuayBvZiBzdHJlYW0pe1xuICAgICAgICBpZiAoc2lnbmFsID09IG51bGwgPyB2b2lkIDAgOiBzaWduYWwuYWJvcnRlZCkge1xuICAgICAgICAgICAgcmV0dXJuIHN0cmluZztcbiAgICAgICAgfVxuICAgICAgICBzdHJpbmcgKz0gZGVjb2Rlci5kZWNvZGUoY2h1bmssIHtcbiAgICAgICAgICAgIHN0cmVhbTogdHJ1ZVxuICAgICAgICB9KTtcbiAgICB9XG4gICAgc3RyaW5nICs9IGRlY29kZXIuZGVjb2RlKCk7XG4gICAgcmV0dXJuIHN0cmluZztcbn1cbmZ1bmN0aW9uIGNyZWF0ZUJ1ZmZlcmVkVHJhbnNmb3JtU3RyZWFtKCkge1xuICAgIGxldCBidWZmZXJlZENodW5rcyA9IFtdO1xuICAgIGxldCBidWZmZXJCeXRlTGVuZ3RoID0gMDtcbiAgICBsZXQgcGVuZGluZztcbiAgICBjb25zdCBmbHVzaCA9IChjb250cm9sbGVyKT0+e1xuICAgICAgICAvLyBJZiB3ZSBhbHJlYWR5IGhhdmUgYSBwZW5kaW5nIGZsdXNoLCB0aGVuIHJldHVybiBlYXJseS5cbiAgICAgICAgaWYgKHBlbmRpbmcpIHJldHVybjtcbiAgICAgICAgY29uc3QgZGV0YWNoZWQgPSBuZXcgX2RldGFjaGVkcHJvbWlzZS5EZXRhY2hlZFByb21pc2UoKTtcbiAgICAgICAgcGVuZGluZyA9IGRldGFjaGVkO1xuICAgICAgICAoMCwgX3NjaGVkdWxlci5zY2hlZHVsZUltbWVkaWF0ZSkoKCk9PntcbiAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgY29uc3QgY2h1bmsgPSBuZXcgVWludDhBcnJheShidWZmZXJCeXRlTGVuZ3RoKTtcbiAgICAgICAgICAgICAgICBsZXQgY29waWVkQnl0ZXMgPSAwO1xuICAgICAgICAgICAgICAgIGZvcihsZXQgaSA9IDA7IGkgPCBidWZmZXJlZENodW5rcy5sZW5ndGg7IGkrKyl7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGJ1ZmZlcmVkQ2h1bmsgPSBidWZmZXJlZENodW5rc1tpXTtcbiAgICAgICAgICAgICAgICAgICAgY2h1bmsuc2V0KGJ1ZmZlcmVkQ2h1bmssIGNvcGllZEJ5dGVzKTtcbiAgICAgICAgICAgICAgICAgICAgY29waWVkQnl0ZXMgKz0gYnVmZmVyZWRDaHVuay5ieXRlTGVuZ3RoO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAvLyBXZSBqdXN0IHdyb3RlIGFsbCB0aGUgYnVmZmVyZWQgY2h1bmtzIHNvIHdlIG5lZWQgdG8gcmVzZXQgdGhlIGJ1ZmZlcmVkQ2h1bmtzIGFycmF5XG4gICAgICAgICAgICAgICAgLy8gYW5kIG91ciBidWZmZXJCeXRlTGVuZ3RoIHRvIHByZXBhcmUgZm9yIHRoZSBuZXh0IHJvdW5kIG9mIGJ1ZmZlcmVkIGNodW5rc1xuICAgICAgICAgICAgICAgIGJ1ZmZlcmVkQ2h1bmtzLmxlbmd0aCA9IDA7XG4gICAgICAgICAgICAgICAgYnVmZmVyQnl0ZUxlbmd0aCA9IDA7XG4gICAgICAgICAgICAgICAgY29udHJvbGxlci5lbnF1ZXVlKGNodW5rKTtcbiAgICAgICAgICAgIH0gY2F0Y2ggIHtcbiAgICAgICAgICAgIC8vIElmIGFuIGVycm9yIG9jY3VycyB3aGlsZSBlbnF1ZXVpbmcgaXQgY2FuJ3QgYmUgZHVlIHRvIHRoaXNcbiAgICAgICAgICAgIC8vIHRyYW5zZm9ybWVycyBmYXVsdC4gSXQncyBsaWtlbHkgZHVlIHRvIHRoZSBjb250cm9sbGVyIGJlaW5nXG4gICAgICAgICAgICAvLyBlcnJvcmVkIGR1ZSB0byB0aGUgc3RyZWFtIGJlaW5nIGNhbmNlbGxlZC5cbiAgICAgICAgICAgIH0gZmluYWxseXtcbiAgICAgICAgICAgICAgICBwZW5kaW5nID0gdW5kZWZpbmVkO1xuICAgICAgICAgICAgICAgIGRldGFjaGVkLnJlc29sdmUoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfTtcbiAgICByZXR1cm4gbmV3IFRyYW5zZm9ybVN0cmVhbSh7XG4gICAgICAgIHRyYW5zZm9ybSAoY2h1bmssIGNvbnRyb2xsZXIpIHtcbiAgICAgICAgICAgIC8vIENvbWJpbmUgdGhlIHByZXZpb3VzIGJ1ZmZlciB3aXRoIHRoZSBuZXcgY2h1bmsuXG4gICAgICAgICAgICBidWZmZXJlZENodW5rcy5wdXNoKGNodW5rKTtcbiAgICAgICAgICAgIGJ1ZmZlckJ5dGVMZW5ndGggKz0gY2h1bmsuYnl0ZUxlbmd0aDtcbiAgICAgICAgICAgIC8vIEZsdXNoIHRoZSBidWZmZXIgdG8gdGhlIGNvbnRyb2xsZXIuXG4gICAgICAgICAgICBmbHVzaChjb250cm9sbGVyKTtcbiAgICAgICAgfSxcbiAgICAgICAgZmx1c2ggKCkge1xuICAgICAgICAgICAgaWYgKCFwZW5kaW5nKSByZXR1cm47XG4gICAgICAgICAgICByZXR1cm4gcGVuZGluZy5wcm9taXNlO1xuICAgICAgICB9XG4gICAgfSk7XG59XG5mdW5jdGlvbiBjcmVhdGVQcmVmZXRjaENvbW1lbnRTdHJlYW0oaXNCdWlsZFRpbWVQcmVyZW5kZXJpbmcsIGJ1aWxkSWQpIHtcbiAgICAvLyBJbnNlcnQgYW4gZXh0cmEgY29tbWVudCBhdCB0aGUgYmVnaW5uaW5nIG9mIHRoZSBIVE1MIGRvY3VtZW50LiBUaGlzIG11c3RcbiAgICAvLyBjb21lIGFmdGVyIHRoZSBET0NUWVBFLCB3aGljaCBpcyBpbnNlcnRlZCBieSBSZWFjdC5cbiAgICAvL1xuICAgIC8vIFRoZSBmaXJzdCBjaHVuayBzZW50IGJ5IFJlYWN0IHdpbGwgY29udGFpbiB0aGUgZG9jdHlwZS4gQWZ0ZXIgdGhhdCwgd2UgY2FuXG4gICAgLy8gcGFzcyB0aHJvdWdoIHRoZSByZXN0IG9mIHRoZSBjaHVua3MgYXMtaXMuXG4gICAgbGV0IGRpZFRyYW5zZm9ybUZpcnN0Q2h1bmsgPSBmYWxzZTtcbiAgICByZXR1cm4gbmV3IFRyYW5zZm9ybVN0cmVhbSh7XG4gICAgICAgIHRyYW5zZm9ybSAoY2h1bmssIGNvbnRyb2xsZXIpIHtcbiAgICAgICAgICAgIGlmIChpc0J1aWxkVGltZVByZXJlbmRlcmluZyAmJiAhZGlkVHJhbnNmb3JtRmlyc3RDaHVuaykge1xuICAgICAgICAgICAgICAgIGRpZFRyYW5zZm9ybUZpcnN0Q2h1bmsgPSB0cnVlO1xuICAgICAgICAgICAgICAgIGNvbnN0IGRlY29kZXIgPSBuZXcgVGV4dERlY29kZXIoJ3V0Zi04Jywge1xuICAgICAgICAgICAgICAgICAgICBmYXRhbDogdHJ1ZVxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIGNvbnN0IGNodW5rU3RyID0gZGVjb2Rlci5kZWNvZGUoY2h1bmssIHtcbiAgICAgICAgICAgICAgICAgICAgc3RyZWFtOiB0cnVlXG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgY29uc3QgdXBkYXRlZENodW5rU3RyID0gKDAsIF9vdXRwdXRleHBvcnRwcmVmZXRjaGVuY29kaW5nLmluc2VydEJ1aWxkSWRDb21tZW50KShjaHVua1N0ciwgYnVpbGRJZCk7XG4gICAgICAgICAgICAgICAgY29udHJvbGxlci5lbnF1ZXVlKGVuY29kZXIuZW5jb2RlKHVwZGF0ZWRDaHVua1N0cikpO1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNvbnRyb2xsZXIuZW5xdWV1ZShjaHVuayk7XG4gICAgICAgIH1cbiAgICB9KTtcbn1cbmZ1bmN0aW9uIHJlbmRlclRvSW5pdGlhbEZpenpTdHJlYW0oeyBSZWFjdERPTVNlcnZlciwgZWxlbWVudCwgc3RyZWFtT3B0aW9ucyB9KSB7XG4gICAgcmV0dXJuICgwLCBfdHJhY2VyLmdldFRyYWNlcikoKS50cmFjZShfY29uc3RhbnRzLkFwcFJlbmRlclNwYW4ucmVuZGVyVG9SZWFkYWJsZVN0cmVhbSwgYXN5bmMgKCk9PlJlYWN0RE9NU2VydmVyLnJlbmRlclRvUmVhZGFibGVTdHJlYW0oZWxlbWVudCwgc3RyZWFtT3B0aW9ucykpO1xufVxuZnVuY3Rpb24gY3JlYXRlTWV0YWRhdGFUcmFuc2Zvcm1TdHJlYW0oaW5zZXJ0KSB7XG4gICAgbGV0IGNodW5rSW5kZXggPSAtMTtcbiAgICBsZXQgaXNNYXJrUmVtb3ZlZCA9IGZhbHNlO1xuICAgIHJldHVybiBuZXcgVHJhbnNmb3JtU3RyZWFtKHtcbiAgICAgICAgYXN5bmMgdHJhbnNmb3JtIChjaHVuaywgY29udHJvbGxlcikge1xuICAgICAgICAgICAgbGV0IGljb25NYXJrSW5kZXggPSAtMTtcbiAgICAgICAgICAgIGxldCBjbG9zZWRIZWFkSW5kZXggPSAtMTtcbiAgICAgICAgICAgIGNodW5rSW5kZXgrKztcbiAgICAgICAgICAgIGlmIChpc01hcmtSZW1vdmVkKSB7XG4gICAgICAgICAgICAgICAgY29udHJvbGxlci5lbnF1ZXVlKGNodW5rKTtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBsZXQgaWNvbk1hcmtMZW5ndGggPSAwO1xuICAgICAgICAgICAgLy8gT25seSBzZWFyY2ggZm9yIHRoZSBjbG9zZWQgaGVhZCB0YWcgb25jZVxuICAgICAgICAgICAgaWYgKGljb25NYXJrSW5kZXggPT09IC0xKSB7XG4gICAgICAgICAgICAgICAgaWNvbk1hcmtJbmRleCA9ICgwLCBfdWludDhhcnJheWhlbHBlcnMuaW5kZXhPZlVpbnQ4QXJyYXkpKGNodW5rLCBfZW5jb2RlZHRhZ3MuRU5DT0RFRF9UQUdTLk1FVEEuSUNPTl9NQVJLKTtcbiAgICAgICAgICAgICAgICBpZiAoaWNvbk1hcmtJbmRleCA9PT0gLTEpIHtcbiAgICAgICAgICAgICAgICAgICAgY29udHJvbGxlci5lbnF1ZXVlKGNodW5rKTtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIC8vIFdoZW4gd2UgZm91bmQgdGhlIGA8bWV0YSBuYW1lPVwiwqtueHQtaWNvbsK7XCJgIHRhZyBwcmVmaXgsIHdlIHdpbGwgcmVtb3ZlIGl0IGZyb20gdGhlIGNodW5rLlxuICAgICAgICAgICAgICAgICAgICAvLyBJdHMgY2xvc2UgdGFnIGNvdWxkIGVpdGhlciBiZSBgLz5gIG9yIGA+YCwgY2hlY2tpbmcgdGhlIG5leHQgY2hhciB0byBlbnN1cmUgd2UgY292ZXIgYm90aCBjYXNlcy5cbiAgICAgICAgICAgICAgICAgICAgaWNvbk1hcmtMZW5ndGggPSBfZW5jb2RlZHRhZ3MuRU5DT0RFRF9UQUdTLk1FVEEuSUNPTl9NQVJLLmxlbmd0aDtcbiAgICAgICAgICAgICAgICAgICAgLy8gQ2hlY2sgaWYgbmV4dCBjaGFyIGlzIC8sIHRoaXMgaXMgZm9yIHhtbCBtb2RlLlxuICAgICAgICAgICAgICAgICAgICBpZiAoY2h1bmtbaWNvbk1hcmtJbmRleCArIGljb25NYXJrTGVuZ3RoXSA9PT0gNDcpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGljb25NYXJrTGVuZ3RoICs9IDI7XG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBUaGUgbGFzdCBjaGFyIGlzIGA+YFxuICAgICAgICAgICAgICAgICAgICAgICAgaWNvbk1hcmtMZW5ndGgrKztcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC8vIENoZWNrIGlmIGljb24gbWFyayBpcyBpbnNpZGUgPGhlYWQ+IHRhZyBpbiB0aGUgZmlyc3QgY2h1bmsuXG4gICAgICAgICAgICBpZiAoY2h1bmtJbmRleCA9PT0gMCkge1xuICAgICAgICAgICAgICAgIGNsb3NlZEhlYWRJbmRleCA9ICgwLCBfdWludDhhcnJheWhlbHBlcnMuaW5kZXhPZlVpbnQ4QXJyYXkpKGNodW5rLCBfZW5jb2RlZHRhZ3MuRU5DT0RFRF9UQUdTLkNMT1NFRC5IRUFEKTtcbiAgICAgICAgICAgICAgICAvLyBUaGUgbWFyayBpY29uIGlzIGxvY2F0ZWQgaW4gdGhlIDFzdCBjaHVuayBiZWZvcmUgdGhlIGhlYWQgdGFnLlxuICAgICAgICAgICAgICAgIC8vIFdlIGRvIG5vdCBuZWVkIHRvIGluc2VydCB0aGUgc2NyaXB0IHRhZyBpbiB0aGlzIGNhc2UgYmVjYXVzZSBpdCdzIGluIHRoZSBoZWFkLlxuICAgICAgICAgICAgICAgIC8vIEp1c3QgcmVtb3ZlIHRoZSBpY29uIG1hcmsgZnJvbSB0aGUgY2h1bmsuXG4gICAgICAgICAgICAgICAgaWYgKGljb25NYXJrSW5kZXggPCBjbG9zZWRIZWFkSW5kZXggJiYgaWNvbk1hcmtJbmRleCAhPT0gLTEpIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgcmVwbGFjZWQgPSBuZXcgVWludDhBcnJheShjaHVuay5sZW5ndGggLSBpY29uTWFya0xlbmd0aCk7XG4gICAgICAgICAgICAgICAgICAgIC8vIFJlbW92ZSB0aGUgaWNvbiBtYXJrIGZyb20gdGhlIGNodW5rLlxuICAgICAgICAgICAgICAgICAgICByZXBsYWNlZC5zZXQoY2h1bmsuc3ViYXJyYXkoMCwgaWNvbk1hcmtJbmRleCkpO1xuICAgICAgICAgICAgICAgICAgICByZXBsYWNlZC5zZXQoY2h1bmsuc3ViYXJyYXkoaWNvbk1hcmtJbmRleCArIGljb25NYXJrTGVuZ3RoKSwgaWNvbk1hcmtJbmRleCk7XG4gICAgICAgICAgICAgICAgICAgIGNodW5rID0gcmVwbGFjZWQ7XG4gICAgICAgICAgICAgICAgICAgIGlzTWFya1JlbW92ZWQgPSB0cnVlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgLy8gV2hlbiBpdCdzIGFwcGVhcmVkIGluIHRoZSBmb2xsb3dpbmcgY2h1bmtzLCB3ZSdsbCBuZWVkIHRvXG4gICAgICAgICAgICAgICAgLy8gcmVtb3ZlIHRoZSBtYXJrIGFuZCB0aGVuIGluc2VydCB0aGUgc2NyaXB0IHRhZyBhdCB0aGF0IHBvc2l0aW9uLlxuICAgICAgICAgICAgICAgIGNvbnN0IGluc2VydGlvbiA9IGF3YWl0IGluc2VydCgpO1xuICAgICAgICAgICAgICAgIGNvbnN0IGVuY29kZWRJbnNlcnRpb24gPSBlbmNvZGVyLmVuY29kZShpbnNlcnRpb24pO1xuICAgICAgICAgICAgICAgIGNvbnN0IGluc2VydGlvbkxlbmd0aCA9IGVuY29kZWRJbnNlcnRpb24ubGVuZ3RoO1xuICAgICAgICAgICAgICAgIC8vIFJlcGxhY2UgdGhlIGljb24gbWFyayB3aXRoIHRoZSBob2lzdCBzY3JpcHQgb3IgZW1wdHkgc3RyaW5nLlxuICAgICAgICAgICAgICAgIGNvbnN0IHJlcGxhY2VkID0gbmV3IFVpbnQ4QXJyYXkoY2h1bmsubGVuZ3RoIC0gaWNvbk1hcmtMZW5ndGggKyBpbnNlcnRpb25MZW5ndGgpO1xuICAgICAgICAgICAgICAgIC8vIFNldCB0aGUgZmlyc3QgcGFydCBvZiB0aGUgY2h1bmssIGJlZm9yZSB0aGUgaWNvbiBtYXJrLlxuICAgICAgICAgICAgICAgIHJlcGxhY2VkLnNldChjaHVuay5zdWJhcnJheSgwLCBpY29uTWFya0luZGV4KSk7XG4gICAgICAgICAgICAgICAgLy8gU2V0IHRoZSBpbnNlcnRpb24gYWZ0ZXIgdGhlIGljb24gbWFyay5cbiAgICAgICAgICAgICAgICByZXBsYWNlZC5zZXQoZW5jb2RlZEluc2VydGlvbiwgaWNvbk1hcmtJbmRleCk7XG4gICAgICAgICAgICAgICAgLy8gU2V0IHRoZSByZXN0IG9mIHRoZSBjaHVuayBhZnRlciB0aGUgaWNvbiBtYXJrLlxuICAgICAgICAgICAgICAgIHJlcGxhY2VkLnNldChjaHVuay5zdWJhcnJheShpY29uTWFya0luZGV4ICsgaWNvbk1hcmtMZW5ndGgpLCBpY29uTWFya0luZGV4ICsgaW5zZXJ0aW9uTGVuZ3RoKTtcbiAgICAgICAgICAgICAgICBjaHVuayA9IHJlcGxhY2VkO1xuICAgICAgICAgICAgICAgIGlzTWFya1JlbW92ZWQgPSB0cnVlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY29udHJvbGxlci5lbnF1ZXVlKGNodW5rKTtcbiAgICAgICAgfVxuICAgIH0pO1xufVxuZnVuY3Rpb24gY3JlYXRlSGVhZEluc2VydGlvblRyYW5zZm9ybVN0cmVhbShpbnNlcnQpIHtcbiAgICBsZXQgaW5zZXJ0ZWQgPSBmYWxzZTtcbiAgICAvLyBXZSBuZWVkIHRvIHRyYWNrIGlmIHRoaXMgdHJhbnNmb3JtIHNhdyBhbnkgYnl0ZXMgYmVjYXVzZSBpZiBpdCBkaWRuJ3RcbiAgICAvLyB3ZSB3b24ndCB3YW50IHRvIGluc2VydCBhbnkgc2VydmVyIEhUTUwgYXQgYWxsXG4gICAgbGV0IGhhc0J5dGVzID0gZmFsc2U7XG4gICAgcmV0dXJuIG5ldyBUcmFuc2Zvcm1TdHJlYW0oe1xuICAgICAgICBhc3luYyB0cmFuc2Zvcm0gKGNodW5rLCBjb250cm9sbGVyKSB7XG4gICAgICAgICAgICBoYXNCeXRlcyA9IHRydWU7XG4gICAgICAgICAgICBjb25zdCBpbnNlcnRpb24gPSBhd2FpdCBpbnNlcnQoKTtcbiAgICAgICAgICAgIGlmIChpbnNlcnRlZCkge1xuICAgICAgICAgICAgICAgIGlmIChpbnNlcnRpb24pIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgZW5jb2RlZEluc2VydGlvbiA9IGVuY29kZXIuZW5jb2RlKGluc2VydGlvbik7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRyb2xsZXIuZW5xdWV1ZShlbmNvZGVkSW5zZXJ0aW9uKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgY29udHJvbGxlci5lbnF1ZXVlKGNodW5rKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgLy8gVE9ETyAoQEV0aGFuLUFycm93b29kKTogUmVwbGFjZSB0aGUgZ2VuZXJpYyBgaW5kZXhPZlVpbnQ4QXJyYXlgIG1ldGhvZCB3aXRoIHNvbWV0aGluZyBmaW5lbHkgdHVuZWQgZm9yIHRoZSBzdWJzZXQgb2YgdGhpbmdzIGFjdHVhbGx5IGJlaW5nIGNoZWNrZWQgZm9yLlxuICAgICAgICAgICAgICAgIGNvbnN0IGluZGV4ID0gKDAsIF91aW50OGFycmF5aGVscGVycy5pbmRleE9mVWludDhBcnJheSkoY2h1bmssIF9lbmNvZGVkdGFncy5FTkNPREVEX1RBR1MuQ0xPU0VELkhFQUQpO1xuICAgICAgICAgICAgICAgIC8vIEluIGZ1bGx5IHN0YXRpYyByZW5kZXJpbmcgb3Igbm9uIFBQUiByZW5kZXJpbmcgY2FzZXM6XG4gICAgICAgICAgICAgICAgLy8gYC9oZWFkPmAgd2lsbCBhbHdheXMgYmUgZm91bmQgaW4gdGhlIGNodW5rIGluIGZpcnN0IGNodW5rIHJlbmRlcmluZy5cbiAgICAgICAgICAgICAgICBpZiAoaW5kZXggIT09IC0xKSB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChpbnNlcnRpb24pIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGVuY29kZWRJbnNlcnRpb24gPSBlbmNvZGVyLmVuY29kZShpbnNlcnRpb24pO1xuICAgICAgICAgICAgICAgICAgICAgICAgLy8gR2V0IHRoZSB0b3RhbCBjb3VudCBvZiB0aGUgYnl0ZXMgaW4gdGhlIGNodW5rIGFuZCB0aGUgaW5zZXJ0aW9uXG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBlLmcuXG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBjaHVuayA9IDxoZWFkPjxtZXRhIGNoYXJzZXQ9XCJ1dGYtOFwiPjwvaGVhZD5cbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIGluc2VydGlvbiA9IDxzY3JpcHQ+Li4uPC9zY3JpcHQ+XG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBvdXRwdXQgPSA8aGVhZD48bWV0YSBjaGFyc2V0PVwidXRmLThcIj4gWyA8c2NyaXB0Pi4uLjwvc2NyaXB0PiBdIDwvaGVhZD5cbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGluc2VydGVkSGVhZENvbnRlbnQgPSBuZXcgVWludDhBcnJheShjaHVuay5sZW5ndGggKyBlbmNvZGVkSW5zZXJ0aW9uLmxlbmd0aCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBBcHBlbmQgdGhlIGZpcnN0IHBhcnQgb2YgdGhlIGNodW5rLCBiZWZvcmUgdGhlIGhlYWQgdGFnXG4gICAgICAgICAgICAgICAgICAgICAgICBpbnNlcnRlZEhlYWRDb250ZW50LnNldChjaHVuay5zbGljZSgwLCBpbmRleCkpO1xuICAgICAgICAgICAgICAgICAgICAgICAgLy8gQXBwZW5kIHRoZSBzZXJ2ZXIgaW5zZXJ0ZWQgY29udGVudFxuICAgICAgICAgICAgICAgICAgICAgICAgaW5zZXJ0ZWRIZWFkQ29udGVudC5zZXQoZW5jb2RlZEluc2VydGlvbiwgaW5kZXgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgLy8gQXBwZW5kIHRoZSByZXN0IG9mIHRoZSBjaHVua1xuICAgICAgICAgICAgICAgICAgICAgICAgaW5zZXJ0ZWRIZWFkQ29udGVudC5zZXQoY2h1bmsuc2xpY2UoaW5kZXgpLCBpbmRleCArIGVuY29kZWRJbnNlcnRpb24ubGVuZ3RoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRyb2xsZXIuZW5xdWV1ZShpbnNlcnRlZEhlYWRDb250ZW50KTtcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRyb2xsZXIuZW5xdWV1ZShjaHVuayk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgaW5zZXJ0ZWQgPSB0cnVlO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIC8vIFRoaXMgd2lsbCBoYXBwZW5zIGluIFBQUiByZW5kZXJpbmcgZHVyaW5nIG5leHQgc3RhcnQsIHdoZW4gdGhlIHBhZ2UgaXMgcGFydGlhbGx5IHJlbmRlcmVkLlxuICAgICAgICAgICAgICAgICAgICAvLyBXaGVuIHRoZSBwYWdlIHJlc3VtZXMsIHRoZSBoZWFkIHRhZyB3aWxsIGJlIGZvdW5kIGluIHRoZSBtaWRkbGUgb2YgdGhlIGNodW5rLlxuICAgICAgICAgICAgICAgICAgICAvLyBXaGVyZSB3ZSBqdXN0IG5lZWQgdG8gYXBwZW5kIHRoZSBpbnNlcnRpb24gYW5kIGNodW5rIHRvIHRoZSBjdXJyZW50IHN0cmVhbS5cbiAgICAgICAgICAgICAgICAgICAgLy8gZS5nLlxuICAgICAgICAgICAgICAgICAgICAvLyBQUFItc3RhdGljOiA8aGVhZD4uLi48L2hlYWQ+PGJvZHk+IFsgcmVzdW1lIGNvbnRlbnQgXSA8L2JvZHk+XG4gICAgICAgICAgICAgICAgICAgIC8vIFBQUi1yZXN1bWU6IFsgaW5zZXJ0aW9uIF0gWyByZXN0IGNvbnRlbnQgXVxuICAgICAgICAgICAgICAgICAgICBpZiAoaW5zZXJ0aW9uKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb250cm9sbGVyLmVucXVldWUoZW5jb2Rlci5lbmNvZGUoaW5zZXJ0aW9uKSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgY29udHJvbGxlci5lbnF1ZXVlKGNodW5rKTtcbiAgICAgICAgICAgICAgICAgICAgaW5zZXJ0ZWQgPSB0cnVlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgYXN5bmMgZmx1c2ggKGNvbnRyb2xsZXIpIHtcbiAgICAgICAgICAgIC8vIENoZWNrIGJlZm9yZSBjbG9zaW5nIGlmIHRoZXJlJ3MgYW55dGhpbmcgcmVtYWluaW5nIHRvIGluc2VydC5cbiAgICAgICAgICAgIGlmIChoYXNCeXRlcykge1xuICAgICAgICAgICAgICAgIGNvbnN0IGluc2VydGlvbiA9IGF3YWl0IGluc2VydCgpO1xuICAgICAgICAgICAgICAgIGlmIChpbnNlcnRpb24pIHtcbiAgICAgICAgICAgICAgICAgICAgY29udHJvbGxlci5lbnF1ZXVlKGVuY29kZXIuZW5jb2RlKGluc2VydGlvbikpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH0pO1xufVxuLy8gU3VmZml4IGFmdGVyIG1haW4gYm9keSBjb250ZW50IC0gc2NyaXB0cyBiZWZvcmUgPC9ib2R5Pixcbi8vIGJ1dCB3YWl0IGZvciB0aGUgbWFqb3IgY2h1bmtzIHRvIGJlIGVucXVldWVkLlxuZnVuY3Rpb24gY3JlYXRlRGVmZXJyZWRTdWZmaXhTdHJlYW0oc3VmZml4KSB7XG4gICAgbGV0IGZsdXNoZWQgPSBmYWxzZTtcbiAgICBsZXQgcGVuZGluZztcbiAgICBjb25zdCBmbHVzaCA9IChjb250cm9sbGVyKT0+e1xuICAgICAgICBjb25zdCBkZXRhY2hlZCA9IG5ldyBfZGV0YWNoZWRwcm9taXNlLkRldGFjaGVkUHJvbWlzZSgpO1xuICAgICAgICBwZW5kaW5nID0gZGV0YWNoZWQ7XG4gICAgICAgICgwLCBfc2NoZWR1bGVyLnNjaGVkdWxlSW1tZWRpYXRlKSgoKT0+e1xuICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICBjb250cm9sbGVyLmVucXVldWUoZW5jb2Rlci5lbmNvZGUoc3VmZml4KSk7XG4gICAgICAgICAgICB9IGNhdGNoICB7XG4gICAgICAgICAgICAvLyBJZiBhbiBlcnJvciBvY2N1cnMgd2hpbGUgZW5xdWV1aW5nIGl0IGNhbid0IGJlIGR1ZSB0byB0aGlzXG4gICAgICAgICAgICAvLyB0cmFuc2Zvcm1lcnMgZmF1bHQuIEl0J3MgbGlrZWx5IGR1ZSB0byB0aGUgY29udHJvbGxlciBiZWluZ1xuICAgICAgICAgICAgLy8gZXJyb3JlZCBkdWUgdG8gdGhlIHN0cmVhbSBiZWluZyBjYW5jZWxsZWQuXG4gICAgICAgICAgICB9IGZpbmFsbHl7XG4gICAgICAgICAgICAgICAgcGVuZGluZyA9IHVuZGVmaW5lZDtcbiAgICAgICAgICAgICAgICBkZXRhY2hlZC5yZXNvbHZlKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH07XG4gICAgcmV0dXJuIG5ldyBUcmFuc2Zvcm1TdHJlYW0oe1xuICAgICAgICB0cmFuc2Zvcm0gKGNodW5rLCBjb250cm9sbGVyKSB7XG4gICAgICAgICAgICBjb250cm9sbGVyLmVucXVldWUoY2h1bmspO1xuICAgICAgICAgICAgLy8gSWYgd2UndmUgYWxyZWFkeSBmbHVzaGVkLCB3ZSdyZSBkb25lLlxuICAgICAgICAgICAgaWYgKGZsdXNoZWQpIHJldHVybjtcbiAgICAgICAgICAgIC8vIFNjaGVkdWxlIHRoZSBmbHVzaCB0byBoYXBwZW4uXG4gICAgICAgICAgICBmbHVzaGVkID0gdHJ1ZTtcbiAgICAgICAgICAgIGZsdXNoKGNvbnRyb2xsZXIpO1xuICAgICAgICB9LFxuICAgICAgICBmbHVzaCAoY29udHJvbGxlcikge1xuICAgICAgICAgICAgaWYgKHBlbmRpbmcpIHJldHVybiBwZW5kaW5nLnByb21pc2U7XG4gICAgICAgICAgICBpZiAoZmx1c2hlZCkgcmV0dXJuO1xuICAgICAgICAgICAgLy8gRmx1c2ggbm93LlxuICAgICAgICAgICAgY29udHJvbGxlci5lbnF1ZXVlKGVuY29kZXIuZW5jb2RlKHN1ZmZpeCkpO1xuICAgICAgICB9XG4gICAgfSk7XG59XG4vLyBNZXJnZSB0d28gc3RyZWFtcyBpbnRvIG9uZS4gRW5zdXJlIHRoZSBmaW5hbCB0cmFuc2Zvcm0gc3RyZWFtIGlzIGNsb3NlZFxuLy8gd2hlbiBib3RoIGFyZSBmaW5pc2hlZC5cbmZ1bmN0aW9uIGNyZWF0ZU1lcmdlZFRyYW5zZm9ybVN0cmVhbShzdHJlYW0pIHtcbiAgICBsZXQgcHVsbCA9IG51bGw7XG4gICAgbGV0IGRvbmVQdWxsaW5nID0gZmFsc2U7XG4gICAgYXN5bmMgZnVuY3Rpb24gc3RhcnRQdWxsaW5nKGNvbnRyb2xsZXIpIHtcbiAgICAgICAgaWYgKHB1bGwpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCByZWFkZXIgPSBzdHJlYW0uZ2V0UmVhZGVyKCk7XG4gICAgICAgIC8vIE5PVEU6IHN0cmVhbWluZyBmbHVzaFxuICAgICAgICAvLyBXZSBhcmUgYnVmZmVyaW5nIGhlcmUgZm9yIHRoZSBpbmxpbmVkIGRhdGEgc3RyZWFtIGJlY2F1c2UgdGhlXG4gICAgICAgIC8vIFwic2hlbGxcIiBzdHJlYW0gbWlnaHQgYmUgY2h1bmtlbml6ZWQgYWdhaW4gYnkgdGhlIHVuZGVybHlpbmcgc3RyZWFtXG4gICAgICAgIC8vIGltcGxlbWVudGF0aW9uLCBlLmcuIHdpdGggYSBzcGVjaWZpYyBoaWdoLXdhdGVyIG1hcmsuIFRvIGVuc3VyZSBpdCdzXG4gICAgICAgIC8vIHRoZSBzYWZlIHRpbWluZyB0byBwaXBlIHRoZSBkYXRhIHN0cmVhbSwgdGhpcyBleHRyYSB0aWNrIGlzXG4gICAgICAgIC8vIG5lY2Vzc2FyeS5cbiAgICAgICAgLy8gV2UgZG9uJ3Qgc3RhcnQgcmVhZGluZyB1bnRpbCB3ZSd2ZSBsZWZ0IHRoZSBjdXJyZW50IFRhc2sgdG8gZW5zdXJlXG4gICAgICAgIC8vIHRoYXQgaXQncyBpbnNlcnRlZCBhZnRlciBmbHVzaGluZyB0aGUgc2hlbGwuIE5vdGUgdGhhdCB0aGlzIGltcGxlbWVudGF0aW9uXG4gICAgICAgIC8vIG1pZ2h0IGdldCBzdGFsZSBpZiBpbXBsIGRldGFpbHMgb2YgRml6eiBjaGFuZ2UgaW4gdGhlIGZ1dHVyZS5cbiAgICAgICAgYXdhaXQgKDAsIF9zY2hlZHVsZXIuYXRMZWFzdE9uZVRhc2spKCk7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICB3aGlsZSh0cnVlKXtcbiAgICAgICAgICAgICAgICBjb25zdCB7IGRvbmUsIHZhbHVlIH0gPSBhd2FpdCByZWFkZXIucmVhZCgpO1xuICAgICAgICAgICAgICAgIGlmIChkb25lKSB7XG4gICAgICAgICAgICAgICAgICAgIGRvbmVQdWxsaW5nID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBjb250cm9sbGVyLmVucXVldWUodmFsdWUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgICAgICAgIGNvbnRyb2xsZXIuZXJyb3IoZXJyKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gbmV3IFRyYW5zZm9ybVN0cmVhbSh7XG4gICAgICAgIHRyYW5zZm9ybSAoY2h1bmssIGNvbnRyb2xsZXIpIHtcbiAgICAgICAgICAgIGNvbnRyb2xsZXIuZW5xdWV1ZShjaHVuayk7XG4gICAgICAgICAgICAvLyBTdGFydCB0aGUgc3RyZWFtaW5nIGlmIGl0IGhhc24ndCBhbHJlYWR5IGJlZW4gc3RhcnRlZCB5ZXQuXG4gICAgICAgICAgICBpZiAoIXB1bGwpIHtcbiAgICAgICAgICAgICAgICBwdWxsID0gc3RhcnRQdWxsaW5nKGNvbnRyb2xsZXIpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBmbHVzaCAoY29udHJvbGxlcikge1xuICAgICAgICAgICAgaWYgKGRvbmVQdWxsaW5nKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIHB1bGwgfHwgc3RhcnRQdWxsaW5nKGNvbnRyb2xsZXIpO1xuICAgICAgICB9XG4gICAgfSk7XG59XG5jb25zdCBDTE9TRV9UQUcgPSAnPC9ib2R5PjwvaHRtbD4nO1xuLyoqXG4gKiBUaGlzIHRyYW5zZm9ybSBzdHJlYW0gbW92ZXMgdGhlIHN1ZmZpeCB0byB0aGUgZW5kIG9mIHRoZSBzdHJlYW0sIHNvIHJlc3VsdHNcbiAqIGxpa2UgYDwvYm9keT48L2h0bWw+PHNjcmlwdD4uLi48L3NjcmlwdD5gIHdpbGwgYmUgdHJhbnNmb3JtZWQgdG9cbiAqIGA8c2NyaXB0Pi4uLjwvc2NyaXB0PjwvYm9keT48L2h0bWw+YC5cbiAqLyBmdW5jdGlvbiBjcmVhdGVNb3ZlU3VmZml4U3RyZWFtKCkge1xuICAgIGxldCBmb3VuZFN1ZmZpeCA9IGZhbHNlO1xuICAgIHJldHVybiBuZXcgVHJhbnNmb3JtU3RyZWFtKHtcbiAgICAgICAgdHJhbnNmb3JtIChjaHVuaywgY29udHJvbGxlcikge1xuICAgICAgICAgICAgaWYgKGZvdW5kU3VmZml4KSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGNvbnRyb2xsZXIuZW5xdWV1ZShjaHVuayk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjb25zdCBpbmRleCA9ICgwLCBfdWludDhhcnJheWhlbHBlcnMuaW5kZXhPZlVpbnQ4QXJyYXkpKGNodW5rLCBfZW5jb2RlZHRhZ3MuRU5DT0RFRF9UQUdTLkNMT1NFRC5CT0RZX0FORF9IVE1MKTtcbiAgICAgICAgICAgIGlmIChpbmRleCA+IC0xKSB7XG4gICAgICAgICAgICAgICAgZm91bmRTdWZmaXggPSB0cnVlO1xuICAgICAgICAgICAgICAgIC8vIElmIHRoZSB3aG9sZSBjaHVuayBpcyB0aGUgc3VmZml4LCB0aGVuIGRvbid0IHdyaXRlIGFueXRoaW5nLCBpdCB3aWxsXG4gICAgICAgICAgICAgICAgLy8gYmUgd3JpdHRlbiBpbiB0aGUgZmx1c2guXG4gICAgICAgICAgICAgICAgaWYgKGNodW5rLmxlbmd0aCA9PT0gX2VuY29kZWR0YWdzLkVOQ09ERURfVEFHUy5DTE9TRUQuQk9EWV9BTkRfSFRNTC5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAvLyBXcml0ZSBvdXQgdGhlIHBhcnQgYmVmb3JlIHRoZSBzdWZmaXguXG4gICAgICAgICAgICAgICAgY29uc3QgYmVmb3JlID0gY2h1bmsuc2xpY2UoMCwgaW5kZXgpO1xuICAgICAgICAgICAgICAgIGNvbnRyb2xsZXIuZW5xdWV1ZShiZWZvcmUpO1xuICAgICAgICAgICAgICAgIC8vIEluIHRoZSBjYXNlIHdoZXJlIHRoZSBzdWZmaXggaXMgaW4gdGhlIG1pZGRsZSBvZiB0aGUgY2h1bmssIHdlIG5lZWRcbiAgICAgICAgICAgICAgICAvLyB0byBzcGxpdCB0aGUgY2h1bmsgaW50byB0d28gcGFydHMuXG4gICAgICAgICAgICAgICAgaWYgKGNodW5rLmxlbmd0aCA+IF9lbmNvZGVkdGFncy5FTkNPREVEX1RBR1MuQ0xPU0VELkJPRFlfQU5EX0hUTUwubGVuZ3RoICsgaW5kZXgpIHtcbiAgICAgICAgICAgICAgICAgICAgLy8gV3JpdGUgb3V0IHRoZSBwYXJ0IGFmdGVyIHRoZSBzdWZmaXguXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGFmdGVyID0gY2h1bmsuc2xpY2UoaW5kZXggKyBfZW5jb2RlZHRhZ3MuRU5DT0RFRF9UQUdTLkNMT1NFRC5CT0RZX0FORF9IVE1MLmxlbmd0aCk7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRyb2xsZXIuZW5xdWV1ZShhZnRlcik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBjb250cm9sbGVyLmVucXVldWUoY2h1bmspO1xuICAgICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBmbHVzaCAoY29udHJvbGxlcikge1xuICAgICAgICAgICAgLy8gRXZlbiBpZiB3ZSBkaWRuJ3QgZmluZCB0aGUgc3VmZml4LCB0aGUgSFRNTCBpcyBub3QgdmFsaWQgaWYgd2UgZG9uJ3RcbiAgICAgICAgICAgIC8vIGFkZCBpdCwgc28gaW5zZXJ0IGl0IGF0IHRoZSBlbmQuXG4gICAgICAgICAgICBjb250cm9sbGVyLmVucXVldWUoX2VuY29kZWR0YWdzLkVOQ09ERURfVEFHUy5DTE9TRUQuQk9EWV9BTkRfSFRNTCk7XG4gICAgICAgIH1cbiAgICB9KTtcbn1cbmZ1bmN0aW9uIGNyZWF0ZVN0cmlwRG9jdW1lbnRDbG9zaW5nVGFnc1RyYW5zZm9ybSgpIHtcbiAgICByZXR1cm4gbmV3IFRyYW5zZm9ybVN0cmVhbSh7XG4gICAgICAgIHRyYW5zZm9ybSAoY2h1bmssIGNvbnRyb2xsZXIpIHtcbiAgICAgICAgICAgIC8vIFdlIHJlbHkgb24gdGhlIGFzc3VtcHRpb24gdGhhdCBjaHVua3Mgd2lsbCBuZXZlciBicmVhayBhY3Jvc3MgYSBjb2RlIHVuaXQuXG4gICAgICAgICAgICAvLyBUaGlzIGlzIHJlYXNvbmFibGUgYmVjYXVzZSB3ZSBjdXJyZW50bHkgY29uY2F0IGFsbCBvZiBSZWFjdCdzIG91dHB1dCBmcm9tIGEgc2luZ2xlXG4gICAgICAgICAgICAvLyBmbHVzaCBpbnRvIG9uZSBjaHVuayBiZWZvcmUgc3RyZWFtaW5nIGl0IGZvcndhcmQgd2hpY2ggbWVhbnMgdGhlIGNodW5rIHdpbGwgcmVwcmVzZW50XG4gICAgICAgICAgICAvLyBhIHNpbmdsZSBjb2hlcmVudCB1dGYtOCBzdHJpbmcuIFRoaXMgaXMgbm90IHNhZmUgdG8gdXNlIGlmIHdlIGNoYW5nZSBvdXIgc3RyZWFtaW5nIHRvIG5vXG4gICAgICAgICAgICAvLyBsb25nZXIgZG8gdGhpcyBsYXJnZSBidWZmZXJlZCBjaHVua1xuICAgICAgICAgICAgaWYgKCgwLCBfdWludDhhcnJheWhlbHBlcnMuaXNFcXVpdmFsZW50VWludDhBcnJheXMpKGNodW5rLCBfZW5jb2RlZHRhZ3MuRU5DT0RFRF9UQUdTLkNMT1NFRC5CT0RZX0FORF9IVE1MKSB8fCAoMCwgX3VpbnQ4YXJyYXloZWxwZXJzLmlzRXF1aXZhbGVudFVpbnQ4QXJyYXlzKShjaHVuaywgX2VuY29kZWR0YWdzLkVOQ09ERURfVEFHUy5DTE9TRUQuQk9EWSkgfHwgKDAsIF91aW50OGFycmF5aGVscGVycy5pc0VxdWl2YWxlbnRVaW50OEFycmF5cykoY2h1bmssIF9lbmNvZGVkdGFncy5FTkNPREVEX1RBR1MuQ0xPU0VELkhUTUwpKSB7XG4gICAgICAgICAgICAgICAgLy8gdGhlIGVudGlyZSBjaHVuayBpcyB0aGUgY2xvc2luZyB0YWdzOyByZXR1cm4gd2l0aG91dCBlbnF1ZXVlaW5nIGFueXRoaW5nLlxuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC8vIFdlIGFzc3VtZSB0aGVzZSB0YWdzIHdpbGwgZ28gYXQgdG9nZXRoZXIgYXQgdGhlIGVuZCBvZiB0aGUgZG9jdW1lbnQgYW5kIHRoYXRcbiAgICAgICAgICAgIC8vIHRoZXkgd29uJ3QgYXBwZWFyIGFueXdoZXJlIGVsc2UgaW4gdGhlIGRvY3VtZW50LiBUaGlzIGlzIG5vdCByZWFsbHkgYSBzYWZlIGFzc3VtcHRpb25cbiAgICAgICAgICAgIC8vIGJ1dCB1bnRpbCB3ZSByZXZhbXAgb3VyIHN0cmVhbWluZyBpbmZyYSB0aGlzIGlzIGEgcGVyZm9ybWFudCB3YXkgdG8gc3RyaW5nIHRoZSB0YWdzXG4gICAgICAgICAgICBjaHVuayA9ICgwLCBfdWludDhhcnJheWhlbHBlcnMucmVtb3ZlRnJvbVVpbnQ4QXJyYXkpKGNodW5rLCBfZW5jb2RlZHRhZ3MuRU5DT0RFRF9UQUdTLkNMT1NFRC5CT0RZKTtcbiAgICAgICAgICAgIGNodW5rID0gKDAsIF91aW50OGFycmF5aGVscGVycy5yZW1vdmVGcm9tVWludDhBcnJheSkoY2h1bmssIF9lbmNvZGVkdGFncy5FTkNPREVEX1RBR1MuQ0xPU0VELkhUTUwpO1xuICAgICAgICAgICAgY29udHJvbGxlci5lbnF1ZXVlKGNodW5rKTtcbiAgICAgICAgfVxuICAgIH0pO1xufVxuZnVuY3Rpb24gY3JlYXRlUm9vdExheW91dFZhbGlkYXRvclN0cmVhbSgpIHtcbiAgICBsZXQgZm91bmRIdG1sID0gZmFsc2U7XG4gICAgbGV0IGZvdW5kQm9keSA9IGZhbHNlO1xuICAgIHJldHVybiBuZXcgVHJhbnNmb3JtU3RyZWFtKHtcbiAgICAgICAgYXN5bmMgdHJhbnNmb3JtIChjaHVuaywgY29udHJvbGxlcikge1xuICAgICAgICAgICAgLy8gUGVlayBpbnRvIHRoZSBzdHJlYW1lZCBjaHVuayB0byBzZWUgaWYgdGhlIHRhZ3MgYXJlIHByZXNlbnQuXG4gICAgICAgICAgICBpZiAoIWZvdW5kSHRtbCAmJiAoMCwgX3VpbnQ4YXJyYXloZWxwZXJzLmluZGV4T2ZVaW50OEFycmF5KShjaHVuaywgX2VuY29kZWR0YWdzLkVOQ09ERURfVEFHUy5PUEVOSU5HLkhUTUwpID4gLTEpIHtcbiAgICAgICAgICAgICAgICBmb3VuZEh0bWwgPSB0cnVlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKCFmb3VuZEJvZHkgJiYgKDAsIF91aW50OGFycmF5aGVscGVycy5pbmRleE9mVWludDhBcnJheSkoY2h1bmssIF9lbmNvZGVkdGFncy5FTkNPREVEX1RBR1MuT1BFTklORy5CT0RZKSA+IC0xKSB7XG4gICAgICAgICAgICAgICAgZm91bmRCb2R5ID0gdHJ1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNvbnRyb2xsZXIuZW5xdWV1ZShjaHVuayk7XG4gICAgICAgIH0sXG4gICAgICAgIGZsdXNoIChjb250cm9sbGVyKSB7XG4gICAgICAgICAgICBjb25zdCBtaXNzaW5nVGFncyA9IFtdO1xuICAgICAgICAgICAgaWYgKCFmb3VuZEh0bWwpIG1pc3NpbmdUYWdzLnB1c2goJ2h0bWwnKTtcbiAgICAgICAgICAgIGlmICghZm91bmRCb2R5KSBtaXNzaW5nVGFncy5wdXNoKCdib2R5Jyk7XG4gICAgICAgICAgICBpZiAoIW1pc3NpbmdUYWdzLmxlbmd0aCkgcmV0dXJuO1xuICAgICAgICAgICAgY29udHJvbGxlci5lbnF1ZXVlKGVuY29kZXIuZW5jb2RlKGA8aHRtbCBpZD1cIl9fbmV4dF9lcnJvcl9fXCI+XG4gICAgICAgICAgICA8dGVtcGxhdGVcbiAgICAgICAgICAgICAgZGF0YS1uZXh0LWVycm9yLW1lc3NhZ2U9XCJNaXNzaW5nICR7bWlzc2luZ1RhZ3MubWFwKChjKT0+YDwke2N9PmApLmpvaW4obWlzc2luZ1RhZ3MubGVuZ3RoID4gMSA/ICcgYW5kICcgOiAnJyl9IHRhZ3MgaW4gdGhlIHJvb3QgbGF5b3V0LlxcblJlYWQgbW9yZSBhdCBodHRwczovL25leHRqcy5vcmcvZG9jcy9tZXNzYWdlcy9taXNzaW5nLXJvb3QtbGF5b3V0LXRhZ3NcIlwiXG4gICAgICAgICAgICAgIGRhdGEtbmV4dC1lcnJvci1kaWdlc3Q9XCIke19jb25zdGFudHMxLk1JU1NJTkdfUk9PVF9UQUdTX0VSUk9SfVwiXG4gICAgICAgICAgICAgIGRhdGEtbmV4dC1lcnJvci1zdGFjaz1cIlwiXG4gICAgICAgICAgICA+PC90ZW1wbGF0ZT5cbiAgICAgICAgICBgKSk7XG4gICAgICAgIH1cbiAgICB9KTtcbn1cbmZ1bmN0aW9uIGNoYWluVHJhbnNmb3JtZXJzKHJlYWRhYmxlLCB0cmFuc2Zvcm1lcnMpIHtcbiAgICBsZXQgc3RyZWFtID0gcmVhZGFibGU7XG4gICAgZm9yIChjb25zdCB0cmFuc2Zvcm1lciBvZiB0cmFuc2Zvcm1lcnMpe1xuICAgICAgICBpZiAoIXRyYW5zZm9ybWVyKSBjb250aW51ZTtcbiAgICAgICAgc3RyZWFtID0gc3RyZWFtLnBpcGVUaHJvdWdoKHRyYW5zZm9ybWVyKTtcbiAgICB9XG4gICAgcmV0dXJuIHN0cmVhbTtcbn1cbmFzeW5jIGZ1bmN0aW9uIGNvbnRpbnVlRml6elN0cmVhbShyZW5kZXJTdHJlYW0sIHsgc3VmZml4LCBpbmxpbmVkRGF0YVN0cmVhbSwgaXNTdGF0aWNHZW5lcmF0aW9uLCBpc0J1aWxkVGltZVByZXJlbmRlcmluZywgYnVpbGRJZCwgZ2V0U2VydmVySW5zZXJ0ZWRIVE1MLCBnZXRTZXJ2ZXJJbnNlcnRlZE1ldGFkYXRhLCB2YWxpZGF0ZVJvb3RMYXlvdXQgfSkge1xuICAgIC8vIFN1ZmZpeCBpdHNlbGYgbWlnaHQgY29udGFpbiBjbG9zZSB0YWdzIGF0IHRoZSBlbmQsIHNvIHdlIG5lZWQgdG8gc3BsaXQgaXQuXG4gICAgY29uc3Qgc3VmZml4VW5jbG9zZWQgPSBzdWZmaXggPyBzdWZmaXguc3BsaXQoQ0xPU0VfVEFHLCAxKVswXSA6IG51bGw7XG4gICAgLy8gSWYgd2UncmUgZ2VuZXJhdGluZyBzdGF0aWMgSFRNTCBhbmQgdGhlcmUncyBhbiBgYWxsUmVhZHlgIHByb21pc2Ugb24gdGhlXG4gICAgLy8gc3RyZWFtLCB3ZSBuZWVkIHRvIHdhaXQgZm9yIGl0IHRvIHJlc29sdmUgYmVmb3JlIGNvbnRpbnVpbmcuXG4gICAgaWYgKGlzU3RhdGljR2VuZXJhdGlvbiAmJiAnYWxsUmVhZHknIGluIHJlbmRlclN0cmVhbSkge1xuICAgICAgICBhd2FpdCByZW5kZXJTdHJlYW0uYWxsUmVhZHk7XG4gICAgfVxuICAgIHJldHVybiBjaGFpblRyYW5zZm9ybWVycyhyZW5kZXJTdHJlYW0sIFtcbiAgICAgICAgLy8gQnVmZmVyIGV2ZXJ5dGhpbmcgdG8gYXZvaWQgZmx1c2hpbmcgdG9vIGZyZXF1ZW50bHlcbiAgICAgICAgY3JlYXRlQnVmZmVyZWRUcmFuc2Zvcm1TdHJlYW0oKSxcbiAgICAgICAgLy8gQWRkIGJ1aWxkIGlkIGNvbW1lbnQgdG8gc3RhcnQgb2YgdGhlIEhUTUwgZG9jdW1lbnQgKGluIGV4cG9ydCBtb2RlKVxuICAgICAgICBjcmVhdGVQcmVmZXRjaENvbW1lbnRTdHJlYW0oaXNCdWlsZFRpbWVQcmVyZW5kZXJpbmcsIGJ1aWxkSWQpLFxuICAgICAgICAvLyBUcmFuc2Zvcm0gbWV0YWRhdGFcbiAgICAgICAgY3JlYXRlTWV0YWRhdGFUcmFuc2Zvcm1TdHJlYW0oZ2V0U2VydmVySW5zZXJ0ZWRNZXRhZGF0YSksXG4gICAgICAgIC8vIEluc2VydCBzdWZmaXggY29udGVudFxuICAgICAgICBzdWZmaXhVbmNsb3NlZCAhPSBudWxsICYmIHN1ZmZpeFVuY2xvc2VkLmxlbmd0aCA+IDAgPyBjcmVhdGVEZWZlcnJlZFN1ZmZpeFN0cmVhbShzdWZmaXhVbmNsb3NlZCkgOiBudWxsLFxuICAgICAgICAvLyBJbnNlcnQgdGhlIGlubGluZWQgZGF0YSAoRmxpZ2h0IGRhdGEsIGZvcm0gc3RhdGUsIGV0Yy4pIHN0cmVhbSBpbnRvIHRoZSBIVE1MXG4gICAgICAgIGlubGluZWREYXRhU3RyZWFtID8gY3JlYXRlTWVyZ2VkVHJhbnNmb3JtU3RyZWFtKGlubGluZWREYXRhU3RyZWFtKSA6IG51bGwsXG4gICAgICAgIC8vIFZhbGlkYXRlIHRoZSByb290IGxheW91dCBmb3IgbWlzc2luZyBodG1sIG9yIGJvZHkgdGFnc1xuICAgICAgICB2YWxpZGF0ZVJvb3RMYXlvdXQgPyBjcmVhdGVSb290TGF5b3V0VmFsaWRhdG9yU3RyZWFtKCkgOiBudWxsLFxuICAgICAgICAvLyBDbG9zZSB0YWdzIHNob3VsZCBhbHdheXMgYmUgZGVmZXJyZWQgdG8gdGhlIGVuZFxuICAgICAgICBjcmVhdGVNb3ZlU3VmZml4U3RyZWFtKCksXG4gICAgICAgIC8vIFNwZWNpYWwgaGVhZCBpbnNlcnRpb25zXG4gICAgICAgIC8vIFRPRE8tQVBQOiBJbnNlcnQgc2VydmVyIHNpZGUgaHRtbCB0byBlbmQgb2YgaGVhZCBpbiBhcHAgbGF5b3V0IHJlbmRlcmluZywgdG8gYXZvaWRcbiAgICAgICAgLy8gaHlkcmF0aW9uIGVycm9ycy4gUmVtb3ZlIHRoaXMgb25jZSBpdCdzIHJlYWR5IHRvIGJlIGhhbmRsZWQgYnkgcmVhY3QgaXRzZWxmLlxuICAgICAgICBjcmVhdGVIZWFkSW5zZXJ0aW9uVHJhbnNmb3JtU3RyZWFtKGdldFNlcnZlckluc2VydGVkSFRNTClcbiAgICBdKTtcbn1cbmFzeW5jIGZ1bmN0aW9uIGNvbnRpbnVlRHluYW1pY1ByZXJlbmRlcihwcmVyZW5kZXJTdHJlYW0sIHsgZ2V0U2VydmVySW5zZXJ0ZWRIVE1MLCBnZXRTZXJ2ZXJJbnNlcnRlZE1ldGFkYXRhIH0pIHtcbiAgICByZXR1cm4gcHJlcmVuZGVyU3RyZWFtLy8gQnVmZmVyIGV2ZXJ5dGhpbmcgdG8gYXZvaWQgZmx1c2hpbmcgdG9vIGZyZXF1ZW50bHlcbiAgICAucGlwZVRocm91Z2goY3JlYXRlQnVmZmVyZWRUcmFuc2Zvcm1TdHJlYW0oKSkucGlwZVRocm91Z2goY3JlYXRlU3RyaXBEb2N1bWVudENsb3NpbmdUYWdzVHJhbnNmb3JtKCkpLy8gSW5zZXJ0IGdlbmVyYXRlZCB0YWdzIHRvIGhlYWRcbiAgICAucGlwZVRocm91Z2goY3JlYXRlSGVhZEluc2VydGlvblRyYW5zZm9ybVN0cmVhbShnZXRTZXJ2ZXJJbnNlcnRlZEhUTUwpKS8vIFRyYW5zZm9ybSBtZXRhZGF0YVxuICAgIC5waXBlVGhyb3VnaChjcmVhdGVNZXRhZGF0YVRyYW5zZm9ybVN0cmVhbShnZXRTZXJ2ZXJJbnNlcnRlZE1ldGFkYXRhKSk7XG59XG5hc3luYyBmdW5jdGlvbiBjb250aW51ZVN0YXRpY1ByZXJlbmRlcihwcmVyZW5kZXJTdHJlYW0sIHsgaW5saW5lZERhdGFTdHJlYW0sIGdldFNlcnZlckluc2VydGVkSFRNTCwgZ2V0U2VydmVySW5zZXJ0ZWRNZXRhZGF0YSwgaXNCdWlsZFRpbWVQcmVyZW5kZXJpbmcsIGJ1aWxkSWQgfSkge1xuICAgIHJldHVybiBwcmVyZW5kZXJTdHJlYW0vLyBCdWZmZXIgZXZlcnl0aGluZyB0byBhdm9pZCBmbHVzaGluZyB0b28gZnJlcXVlbnRseVxuICAgIC5waXBlVGhyb3VnaChjcmVhdGVCdWZmZXJlZFRyYW5zZm9ybVN0cmVhbSgpKS8vIEFkZCBidWlsZCBpZCBjb21tZW50IHRvIHN0YXJ0IG9mIHRoZSBIVE1MIGRvY3VtZW50IChpbiBleHBvcnQgbW9kZSlcbiAgICAucGlwZVRocm91Z2goY3JlYXRlUHJlZmV0Y2hDb21tZW50U3RyZWFtKGlzQnVpbGRUaW1lUHJlcmVuZGVyaW5nLCBidWlsZElkKSkvLyBJbnNlcnQgZ2VuZXJhdGVkIHRhZ3MgdG8gaGVhZFxuICAgIC5waXBlVGhyb3VnaChjcmVhdGVIZWFkSW5zZXJ0aW9uVHJhbnNmb3JtU3RyZWFtKGdldFNlcnZlckluc2VydGVkSFRNTCkpLy8gVHJhbnNmb3JtIG1ldGFkYXRhXG4gICAgLnBpcGVUaHJvdWdoKGNyZWF0ZU1ldGFkYXRhVHJhbnNmb3JtU3RyZWFtKGdldFNlcnZlckluc2VydGVkTWV0YWRhdGEpKS8vIEluc2VydCB0aGUgaW5saW5lZCBkYXRhIChGbGlnaHQgZGF0YSwgZm9ybSBzdGF0ZSwgZXRjLikgc3RyZWFtIGludG8gdGhlIEhUTUxcbiAgICAucGlwZVRocm91Z2goY3JlYXRlTWVyZ2VkVHJhbnNmb3JtU3RyZWFtKGlubGluZWREYXRhU3RyZWFtKSkvLyBDbG9zZSB0YWdzIHNob3VsZCBhbHdheXMgYmUgZGVmZXJyZWQgdG8gdGhlIGVuZFxuICAgIC5waXBlVGhyb3VnaChjcmVhdGVNb3ZlU3VmZml4U3RyZWFtKCkpO1xufVxuYXN5bmMgZnVuY3Rpb24gY29udGludWVEeW5hbWljSFRNTFJlc3VtZShyZW5kZXJTdHJlYW0sIHsgaW5saW5lZERhdGFTdHJlYW0sIGdldFNlcnZlckluc2VydGVkSFRNTCwgZ2V0U2VydmVySW5zZXJ0ZWRNZXRhZGF0YSB9KSB7XG4gICAgcmV0dXJuIHJlbmRlclN0cmVhbS8vIEJ1ZmZlciBldmVyeXRoaW5nIHRvIGF2b2lkIGZsdXNoaW5nIHRvbyBmcmVxdWVudGx5XG4gICAgLnBpcGVUaHJvdWdoKGNyZWF0ZUJ1ZmZlcmVkVHJhbnNmb3JtU3RyZWFtKCkpLy8gSW5zZXJ0IGdlbmVyYXRlZCB0YWdzIHRvIGhlYWRcbiAgICAucGlwZVRocm91Z2goY3JlYXRlSGVhZEluc2VydGlvblRyYW5zZm9ybVN0cmVhbShnZXRTZXJ2ZXJJbnNlcnRlZEhUTUwpKS8vIFRyYW5zZm9ybSBtZXRhZGF0YVxuICAgIC5waXBlVGhyb3VnaChjcmVhdGVNZXRhZGF0YVRyYW5zZm9ybVN0cmVhbShnZXRTZXJ2ZXJJbnNlcnRlZE1ldGFkYXRhKSkvLyBJbnNlcnQgdGhlIGlubGluZWQgZGF0YSAoRmxpZ2h0IGRhdGEsIGZvcm0gc3RhdGUsIGV0Yy4pIHN0cmVhbSBpbnRvIHRoZSBIVE1MXG4gICAgLnBpcGVUaHJvdWdoKGNyZWF0ZU1lcmdlZFRyYW5zZm9ybVN0cmVhbShpbmxpbmVkRGF0YVN0cmVhbSkpLy8gQ2xvc2UgdGFncyBzaG91bGQgYWx3YXlzIGJlIGRlZmVycmVkIHRvIHRoZSBlbmRcbiAgICAucGlwZVRocm91Z2goY3JlYXRlTW92ZVN1ZmZpeFN0cmVhbSgpKTtcbn1cbmZ1bmN0aW9uIGNyZWF0ZURvY3VtZW50Q2xvc2luZ1N0cmVhbSgpIHtcbiAgICByZXR1cm4gc3RyZWFtRnJvbVN0cmluZyhDTE9TRV9UQUcpO1xufVxuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1ub2RlLXdlYi1zdHJlYW1zLWhlbHBlci5qcy5tYXAiXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(pages-dir-node)/./node_modules/next/dist/server/stream-utils/node-web-streams-helper.js\n"); - -/***/ }), - -/***/ "(pages-dir-node)/./node_modules/next/dist/server/stream-utils/uint8array-helpers.js": -/*!**************************************************************************!*\ - !*** ./node_modules/next/dist/server/stream-utils/uint8array-helpers.js ***! - \**************************************************************************/ -/***/ ((__unused_webpack_module, exports) => { - -"use strict"; -eval("/**\n * Find the starting index of Uint8Array `b` within Uint8Array `a`.\n */ \nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n indexOfUint8Array: function() {\n return indexOfUint8Array;\n },\n isEquivalentUint8Arrays: function() {\n return isEquivalentUint8Arrays;\n },\n removeFromUint8Array: function() {\n return removeFromUint8Array;\n }\n});\nfunction indexOfUint8Array(a, b) {\n if (b.length === 0) return 0;\n if (a.length === 0 || b.length > a.length) return -1;\n // start iterating through `a`\n for(let i = 0; i <= a.length - b.length; i++){\n let completeMatch = true;\n // from index `i`, iterate through `b` and check for mismatch\n for(let j = 0; j < b.length; j++){\n // if the values do not match, then this isn't a complete match, exit `b` iteration early and iterate to next index of `a`.\n if (a[i + j] !== b[j]) {\n completeMatch = false;\n break;\n }\n }\n if (completeMatch) {\n return i;\n }\n }\n return -1;\n}\nfunction isEquivalentUint8Arrays(a, b) {\n if (a.length !== b.length) return false;\n for(let i = 0; i < a.length; i++){\n if (a[i] !== b[i]) return false;\n }\n return true;\n}\nfunction removeFromUint8Array(a, b) {\n const tagIndex = indexOfUint8Array(a, b);\n if (tagIndex === 0) return a.subarray(b.length);\n if (tagIndex > -1) {\n const removed = new Uint8Array(a.length - b.length);\n removed.set(a.slice(0, tagIndex));\n removed.set(a.slice(tagIndex + b.length), tagIndex);\n return removed;\n } else {\n return a;\n }\n}\n\n//# sourceMappingURL=uint8array-helpers.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1ub2RlKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3Qvc2VydmVyL3N0cmVhbS11dGlscy91aW50OGFycmF5LWhlbHBlcnMuanMiLCJtYXBwaW5ncyI6IkFBQUE7QUFDQTtBQUNBLElBQWlCO0FBQ2pCLDhDQUE2QztBQUM3QztBQUNBLENBQUMsRUFBQztBQUNGLE1BQU0sQ0FJTDtBQUNEO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0EsQ0FBQztBQUNEO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsbUJBQW1CLDBCQUEwQjtBQUM3QztBQUNBO0FBQ0EsdUJBQXVCLGNBQWM7QUFDckM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLG1CQUFtQixjQUFjO0FBQ2pDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE1BQU07QUFDTjtBQUNBO0FBQ0E7O0FBRUEiLCJzb3VyY2VzIjpbIkQ6XFxkb25neXVuLXByb2plY3RzXFx0d29cXG5vZGVfbW9kdWxlc1xcbmV4dFxcZGlzdFxcc2VydmVyXFxzdHJlYW0tdXRpbHNcXHVpbnQ4YXJyYXktaGVscGVycy5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEZpbmQgdGhlIHN0YXJ0aW5nIGluZGV4IG9mIFVpbnQ4QXJyYXkgYGJgIHdpdGhpbiBVaW50OEFycmF5IGBhYC5cbiAqLyBcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwge1xuICAgIHZhbHVlOiB0cnVlXG59KTtcbjAgJiYgKG1vZHVsZS5leHBvcnRzID0ge1xuICAgIGluZGV4T2ZVaW50OEFycmF5OiBudWxsLFxuICAgIGlzRXF1aXZhbGVudFVpbnQ4QXJyYXlzOiBudWxsLFxuICAgIHJlbW92ZUZyb21VaW50OEFycmF5OiBudWxsXG59KTtcbmZ1bmN0aW9uIF9leHBvcnQodGFyZ2V0LCBhbGwpIHtcbiAgICBmb3IodmFyIG5hbWUgaW4gYWxsKU9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0YXJnZXQsIG5hbWUsIHtcbiAgICAgICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICAgICAgZ2V0OiBhbGxbbmFtZV1cbiAgICB9KTtcbn1cbl9leHBvcnQoZXhwb3J0cywge1xuICAgIGluZGV4T2ZVaW50OEFycmF5OiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIGluZGV4T2ZVaW50OEFycmF5O1xuICAgIH0sXG4gICAgaXNFcXVpdmFsZW50VWludDhBcnJheXM6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gaXNFcXVpdmFsZW50VWludDhBcnJheXM7XG4gICAgfSxcbiAgICByZW1vdmVGcm9tVWludDhBcnJheTogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiByZW1vdmVGcm9tVWludDhBcnJheTtcbiAgICB9XG59KTtcbmZ1bmN0aW9uIGluZGV4T2ZVaW50OEFycmF5KGEsIGIpIHtcbiAgICBpZiAoYi5sZW5ndGggPT09IDApIHJldHVybiAwO1xuICAgIGlmIChhLmxlbmd0aCA9PT0gMCB8fCBiLmxlbmd0aCA+IGEubGVuZ3RoKSByZXR1cm4gLTE7XG4gICAgLy8gc3RhcnQgaXRlcmF0aW5nIHRocm91Z2ggYGFgXG4gICAgZm9yKGxldCBpID0gMDsgaSA8PSBhLmxlbmd0aCAtIGIubGVuZ3RoOyBpKyspe1xuICAgICAgICBsZXQgY29tcGxldGVNYXRjaCA9IHRydWU7XG4gICAgICAgIC8vIGZyb20gaW5kZXggYGlgLCBpdGVyYXRlIHRocm91Z2ggYGJgIGFuZCBjaGVjayBmb3IgbWlzbWF0Y2hcbiAgICAgICAgZm9yKGxldCBqID0gMDsgaiA8IGIubGVuZ3RoOyBqKyspe1xuICAgICAgICAgICAgLy8gaWYgdGhlIHZhbHVlcyBkbyBub3QgbWF0Y2gsIHRoZW4gdGhpcyBpc24ndCBhIGNvbXBsZXRlIG1hdGNoLCBleGl0IGBiYCBpdGVyYXRpb24gZWFybHkgYW5kIGl0ZXJhdGUgdG8gbmV4dCBpbmRleCBvZiBgYWAuXG4gICAgICAgICAgICBpZiAoYVtpICsgal0gIT09IGJbal0pIHtcbiAgICAgICAgICAgICAgICBjb21wbGV0ZU1hdGNoID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGNvbXBsZXRlTWF0Y2gpIHtcbiAgICAgICAgICAgIHJldHVybiBpO1xuICAgICAgICB9XG4gICAgfVxuICAgIHJldHVybiAtMTtcbn1cbmZ1bmN0aW9uIGlzRXF1aXZhbGVudFVpbnQ4QXJyYXlzKGEsIGIpIHtcbiAgICBpZiAoYS5sZW5ndGggIT09IGIubGVuZ3RoKSByZXR1cm4gZmFsc2U7XG4gICAgZm9yKGxldCBpID0gMDsgaSA8IGEubGVuZ3RoOyBpKyspe1xuICAgICAgICBpZiAoYVtpXSAhPT0gYltpXSkgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICByZXR1cm4gdHJ1ZTtcbn1cbmZ1bmN0aW9uIHJlbW92ZUZyb21VaW50OEFycmF5KGEsIGIpIHtcbiAgICBjb25zdCB0YWdJbmRleCA9IGluZGV4T2ZVaW50OEFycmF5KGEsIGIpO1xuICAgIGlmICh0YWdJbmRleCA9PT0gMCkgcmV0dXJuIGEuc3ViYXJyYXkoYi5sZW5ndGgpO1xuICAgIGlmICh0YWdJbmRleCA+IC0xKSB7XG4gICAgICAgIGNvbnN0IHJlbW92ZWQgPSBuZXcgVWludDhBcnJheShhLmxlbmd0aCAtIGIubGVuZ3RoKTtcbiAgICAgICAgcmVtb3ZlZC5zZXQoYS5zbGljZSgwLCB0YWdJbmRleCkpO1xuICAgICAgICByZW1vdmVkLnNldChhLnNsaWNlKHRhZ0luZGV4ICsgYi5sZW5ndGgpLCB0YWdJbmRleCk7XG4gICAgICAgIHJldHVybiByZW1vdmVkO1xuICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiBhO1xuICAgIH1cbn1cblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9dWludDhhcnJheS1oZWxwZXJzLmpzLm1hcCJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(pages-dir-node)/./node_modules/next/dist/server/stream-utils/uint8array-helpers.js\n"); - -/***/ }), - -/***/ "(pages-dir-node)/./node_modules/next/dist/server/utils.js": -/*!************************************************!*\ - !*** ./node_modules/next/dist/server/utils.js ***! - \************************************************/ -/***/ ((__unused_webpack_module, exports, __webpack_require__) => { - -"use strict"; -eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n cleanAmpPath: function() {\n return cleanAmpPath;\n },\n debounce: function() {\n return debounce;\n },\n isBlockedPage: function() {\n return isBlockedPage;\n }\n});\nconst _constants = __webpack_require__(/*! ../shared/lib/constants */ \"(pages-dir-node)/./node_modules/next/dist/shared/lib/constants.js\");\nfunction isBlockedPage(page) {\n return _constants.BLOCKED_PAGES.includes(page);\n}\nfunction cleanAmpPath(pathname) {\n if (pathname.match(/\\?amp=(y|yes|true|1)/)) {\n pathname = pathname.replace(/\\?amp=(y|yes|true|1)&?/, '?');\n }\n if (pathname.match(/&=(y|yes|true|1)/)) {\n pathname = pathname.replace(/&=(y|yes|true|1)/, '');\n }\n pathname = pathname.replace(/\\?$/, '');\n return pathname;\n}\nfunction debounce(fn, ms, maxWait = Infinity) {\n let timeoutId;\n // The time the debouncing function was first called during this debounce queue.\n let startTime = 0;\n // The time the debouncing function was last called.\n let lastCall = 0;\n // The arguments and this context of the last call to the debouncing function.\n let args, context;\n // A helper used to that either invokes the debounced function, or\n // reschedules the timer if a more recent call was made.\n function run() {\n const now = Date.now();\n const diff = lastCall + ms - now;\n // If the diff is non-positive, then we've waited at least `ms`\n // milliseconds since the last call. Or if we've waited for longer than the\n // max wait time, we must call the debounced function.\n if (diff <= 0 || startTime + maxWait >= now) {\n // It's important to clear the timeout id before invoking the debounced\n // function, in case the function calls the debouncing function again.\n timeoutId = undefined;\n fn.apply(context, args);\n } else {\n // Else, a new call was made after the original timer was scheduled. We\n // didn't clear the timeout (doing so is very slow), so now we need to\n // reschedule the timer for the time difference.\n timeoutId = setTimeout(run, diff);\n }\n }\n return function(...passedArgs) {\n // The arguments and this context of the most recent call are saved so the\n // debounced function can be invoked with them later.\n args = passedArgs;\n context = this;\n // Instead of constantly clearing and scheduling a timer, we record the\n // time of the last call. If a second call comes in before the timer fires,\n // then we'll reschedule in the run function. Doing this is considerably\n // faster.\n lastCall = Date.now();\n // Only schedule a new timer if we're not currently waiting.\n if (timeoutId === undefined) {\n startTime = lastCall;\n timeoutId = setTimeout(run, ms);\n }\n };\n}\n\n//# sourceMappingURL=utils.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1ub2RlKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3Qvc2VydmVyL3V0aWxzLmpzIiwibWFwcGluZ3MiOiJBQUFhO0FBQ2IsOENBQTZDO0FBQzdDO0FBQ0EsQ0FBQyxFQUFDO0FBQ0YsTUFBTSxDQUlMO0FBQ0Q7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQSxDQUFDO0FBQ0QsbUJBQW1CLG1CQUFPLENBQUMsa0dBQXlCO0FBQ3BEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsVUFBVTtBQUNWO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUEiLCJzb3VyY2VzIjpbIkQ6XFxkb25neXVuLXByb2plY3RzXFx0d29cXG5vZGVfbW9kdWxlc1xcbmV4dFxcZGlzdFxcc2VydmVyXFx1dGlscy5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwge1xuICAgIHZhbHVlOiB0cnVlXG59KTtcbjAgJiYgKG1vZHVsZS5leHBvcnRzID0ge1xuICAgIGNsZWFuQW1wUGF0aDogbnVsbCxcbiAgICBkZWJvdW5jZTogbnVsbCxcbiAgICBpc0Jsb2NrZWRQYWdlOiBudWxsXG59KTtcbmZ1bmN0aW9uIF9leHBvcnQodGFyZ2V0LCBhbGwpIHtcbiAgICBmb3IodmFyIG5hbWUgaW4gYWxsKU9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0YXJnZXQsIG5hbWUsIHtcbiAgICAgICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICAgICAgZ2V0OiBhbGxbbmFtZV1cbiAgICB9KTtcbn1cbl9leHBvcnQoZXhwb3J0cywge1xuICAgIGNsZWFuQW1wUGF0aDogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBjbGVhbkFtcFBhdGg7XG4gICAgfSxcbiAgICBkZWJvdW5jZTogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBkZWJvdW5jZTtcbiAgICB9LFxuICAgIGlzQmxvY2tlZFBhZ2U6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gaXNCbG9ja2VkUGFnZTtcbiAgICB9XG59KTtcbmNvbnN0IF9jb25zdGFudHMgPSByZXF1aXJlKFwiLi4vc2hhcmVkL2xpYi9jb25zdGFudHNcIik7XG5mdW5jdGlvbiBpc0Jsb2NrZWRQYWdlKHBhZ2UpIHtcbiAgICByZXR1cm4gX2NvbnN0YW50cy5CTE9DS0VEX1BBR0VTLmluY2x1ZGVzKHBhZ2UpO1xufVxuZnVuY3Rpb24gY2xlYW5BbXBQYXRoKHBhdGhuYW1lKSB7XG4gICAgaWYgKHBhdGhuYW1lLm1hdGNoKC9cXD9hbXA9KHl8eWVzfHRydWV8MSkvKSkge1xuICAgICAgICBwYXRobmFtZSA9IHBhdGhuYW1lLnJlcGxhY2UoL1xcP2FtcD0oeXx5ZXN8dHJ1ZXwxKSY/LywgJz8nKTtcbiAgICB9XG4gICAgaWYgKHBhdGhuYW1lLm1hdGNoKC8mYW1wPSh5fHllc3x0cnVlfDEpLykpIHtcbiAgICAgICAgcGF0aG5hbWUgPSBwYXRobmFtZS5yZXBsYWNlKC8mYW1wPSh5fHllc3x0cnVlfDEpLywgJycpO1xuICAgIH1cbiAgICBwYXRobmFtZSA9IHBhdGhuYW1lLnJlcGxhY2UoL1xcPyQvLCAnJyk7XG4gICAgcmV0dXJuIHBhdGhuYW1lO1xufVxuZnVuY3Rpb24gZGVib3VuY2UoZm4sIG1zLCBtYXhXYWl0ID0gSW5maW5pdHkpIHtcbiAgICBsZXQgdGltZW91dElkO1xuICAgIC8vIFRoZSB0aW1lIHRoZSBkZWJvdW5jaW5nIGZ1bmN0aW9uIHdhcyBmaXJzdCBjYWxsZWQgZHVyaW5nIHRoaXMgZGVib3VuY2UgcXVldWUuXG4gICAgbGV0IHN0YXJ0VGltZSA9IDA7XG4gICAgLy8gVGhlIHRpbWUgdGhlIGRlYm91bmNpbmcgZnVuY3Rpb24gd2FzIGxhc3QgY2FsbGVkLlxuICAgIGxldCBsYXN0Q2FsbCA9IDA7XG4gICAgLy8gVGhlIGFyZ3VtZW50cyBhbmQgdGhpcyBjb250ZXh0IG9mIHRoZSBsYXN0IGNhbGwgdG8gdGhlIGRlYm91bmNpbmcgZnVuY3Rpb24uXG4gICAgbGV0IGFyZ3MsIGNvbnRleHQ7XG4gICAgLy8gQSBoZWxwZXIgdXNlZCB0byB0aGF0IGVpdGhlciBpbnZva2VzIHRoZSBkZWJvdW5jZWQgZnVuY3Rpb24sIG9yXG4gICAgLy8gcmVzY2hlZHVsZXMgdGhlIHRpbWVyIGlmIGEgbW9yZSByZWNlbnQgY2FsbCB3YXMgbWFkZS5cbiAgICBmdW5jdGlvbiBydW4oKSB7XG4gICAgICAgIGNvbnN0IG5vdyA9IERhdGUubm93KCk7XG4gICAgICAgIGNvbnN0IGRpZmYgPSBsYXN0Q2FsbCArIG1zIC0gbm93O1xuICAgICAgICAvLyBJZiB0aGUgZGlmZiBpcyBub24tcG9zaXRpdmUsIHRoZW4gd2UndmUgd2FpdGVkIGF0IGxlYXN0IGBtc2BcbiAgICAgICAgLy8gbWlsbGlzZWNvbmRzIHNpbmNlIHRoZSBsYXN0IGNhbGwuIE9yIGlmIHdlJ3ZlIHdhaXRlZCBmb3IgbG9uZ2VyIHRoYW4gdGhlXG4gICAgICAgIC8vIG1heCB3YWl0IHRpbWUsIHdlIG11c3QgY2FsbCB0aGUgZGVib3VuY2VkIGZ1bmN0aW9uLlxuICAgICAgICBpZiAoZGlmZiA8PSAwIHx8IHN0YXJ0VGltZSArIG1heFdhaXQgPj0gbm93KSB7XG4gICAgICAgICAgICAvLyBJdCdzIGltcG9ydGFudCB0byBjbGVhciB0aGUgdGltZW91dCBpZCBiZWZvcmUgaW52b2tpbmcgdGhlIGRlYm91bmNlZFxuICAgICAgICAgICAgLy8gZnVuY3Rpb24sIGluIGNhc2UgdGhlIGZ1bmN0aW9uIGNhbGxzIHRoZSBkZWJvdW5jaW5nIGZ1bmN0aW9uIGFnYWluLlxuICAgICAgICAgICAgdGltZW91dElkID0gdW5kZWZpbmVkO1xuICAgICAgICAgICAgZm4uYXBwbHkoY29udGV4dCwgYXJncyk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAvLyBFbHNlLCBhIG5ldyBjYWxsIHdhcyBtYWRlIGFmdGVyIHRoZSBvcmlnaW5hbCB0aW1lciB3YXMgc2NoZWR1bGVkLiBXZVxuICAgICAgICAgICAgLy8gZGlkbid0IGNsZWFyIHRoZSB0aW1lb3V0IChkb2luZyBzbyBpcyB2ZXJ5IHNsb3cpLCBzbyBub3cgd2UgbmVlZCB0b1xuICAgICAgICAgICAgLy8gcmVzY2hlZHVsZSB0aGUgdGltZXIgZm9yIHRoZSB0aW1lIGRpZmZlcmVuY2UuXG4gICAgICAgICAgICB0aW1lb3V0SWQgPSBzZXRUaW1lb3V0KHJ1biwgZGlmZik7XG4gICAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIGZ1bmN0aW9uKC4uLnBhc3NlZEFyZ3MpIHtcbiAgICAgICAgLy8gVGhlIGFyZ3VtZW50cyBhbmQgdGhpcyBjb250ZXh0IG9mIHRoZSBtb3N0IHJlY2VudCBjYWxsIGFyZSBzYXZlZCBzbyB0aGVcbiAgICAgICAgLy8gZGVib3VuY2VkIGZ1bmN0aW9uIGNhbiBiZSBpbnZva2VkIHdpdGggdGhlbSBsYXRlci5cbiAgICAgICAgYXJncyA9IHBhc3NlZEFyZ3M7XG4gICAgICAgIGNvbnRleHQgPSB0aGlzO1xuICAgICAgICAvLyBJbnN0ZWFkIG9mIGNvbnN0YW50bHkgY2xlYXJpbmcgYW5kIHNjaGVkdWxpbmcgYSB0aW1lciwgd2UgcmVjb3JkIHRoZVxuICAgICAgICAvLyB0aW1lIG9mIHRoZSBsYXN0IGNhbGwuIElmIGEgc2Vjb25kIGNhbGwgY29tZXMgaW4gYmVmb3JlIHRoZSB0aW1lciBmaXJlcyxcbiAgICAgICAgLy8gdGhlbiB3ZSdsbCByZXNjaGVkdWxlIGluIHRoZSBydW4gZnVuY3Rpb24uIERvaW5nIHRoaXMgaXMgY29uc2lkZXJhYmx5XG4gICAgICAgIC8vIGZhc3Rlci5cbiAgICAgICAgbGFzdENhbGwgPSBEYXRlLm5vdygpO1xuICAgICAgICAvLyBPbmx5IHNjaGVkdWxlIGEgbmV3IHRpbWVyIGlmIHdlJ3JlIG5vdCBjdXJyZW50bHkgd2FpdGluZy5cbiAgICAgICAgaWYgKHRpbWVvdXRJZCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICBzdGFydFRpbWUgPSBsYXN0Q2FsbDtcbiAgICAgICAgICAgIHRpbWVvdXRJZCA9IHNldFRpbWVvdXQocnVuLCBtcyk7XG4gICAgICAgIH1cbiAgICB9O1xufVxuXG4vLyMgc291cmNlTWFwcGluZ1VSTD11dGlscy5qcy5tYXAiXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(pages-dir-node)/./node_modules/next/dist/server/utils.js\n"); - -/***/ }), - -/***/ "(pages-dir-node)/./node_modules/next/dist/server/web/error.js": -/*!****************************************************!*\ - !*** ./node_modules/next/dist/server/web/error.js ***! - \****************************************************/ -/***/ ((__unused_webpack_module, exports) => { - -"use strict"; -eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n PageSignatureError: function() {\n return PageSignatureError;\n },\n RemovedPageError: function() {\n return RemovedPageError;\n },\n RemovedUAError: function() {\n return RemovedUAError;\n }\n});\nclass PageSignatureError extends Error {\n constructor({ page }){\n super(`The middleware \"${page}\" accepts an async API directly with the form:\n \n export function middleware(request, event) {\n return NextResponse.redirect('/new-location')\n }\n \n Read more: https://nextjs.org/docs/messages/middleware-new-signature\n `);\n }\n}\nclass RemovedPageError extends Error {\n constructor(){\n super(`The request.page has been deprecated in favour of \\`URLPattern\\`.\n Read more: https://nextjs.org/docs/messages/middleware-request-page\n `);\n }\n}\nclass RemovedUAError extends Error {\n constructor(){\n super(`The request.ua has been removed in favour of \\`userAgent\\` function.\n Read more: https://nextjs.org/docs/messages/middleware-parse-user-agent\n `);\n }\n}\n\n//# sourceMappingURL=error.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1ub2RlKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3Qvc2VydmVyL3dlYi9lcnJvci5qcyIsIm1hcHBpbmdzIjoiQUFBYTtBQUNiLDhDQUE2QztBQUM3QztBQUNBLENBQUMsRUFBQztBQUNGLE1BQU0sQ0FJTDtBQUNEO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0EsQ0FBQztBQUNEO0FBQ0Esa0JBQWtCLE1BQU07QUFDeEIsaUNBQWlDLEtBQUs7QUFDdEM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQSIsInNvdXJjZXMiOlsiRDpcXGRvbmd5dW4tcHJvamVjdHNcXHR3b1xcbm9kZV9tb2R1bGVzXFxuZXh0XFxkaXN0XFxzZXJ2ZXJcXHdlYlxcZXJyb3IuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHtcbiAgICB2YWx1ZTogdHJ1ZVxufSk7XG4wICYmIChtb2R1bGUuZXhwb3J0cyA9IHtcbiAgICBQYWdlU2lnbmF0dXJlRXJyb3I6IG51bGwsXG4gICAgUmVtb3ZlZFBhZ2VFcnJvcjogbnVsbCxcbiAgICBSZW1vdmVkVUFFcnJvcjogbnVsbFxufSk7XG5mdW5jdGlvbiBfZXhwb3J0KHRhcmdldCwgYWxsKSB7XG4gICAgZm9yKHZhciBuYW1lIGluIGFsbClPYmplY3QuZGVmaW5lUHJvcGVydHkodGFyZ2V0LCBuYW1lLCB7XG4gICAgICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgICAgIGdldDogYWxsW25hbWVdXG4gICAgfSk7XG59XG5fZXhwb3J0KGV4cG9ydHMsIHtcbiAgICBQYWdlU2lnbmF0dXJlRXJyb3I6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gUGFnZVNpZ25hdHVyZUVycm9yO1xuICAgIH0sXG4gICAgUmVtb3ZlZFBhZ2VFcnJvcjogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBSZW1vdmVkUGFnZUVycm9yO1xuICAgIH0sXG4gICAgUmVtb3ZlZFVBRXJyb3I6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gUmVtb3ZlZFVBRXJyb3I7XG4gICAgfVxufSk7XG5jbGFzcyBQYWdlU2lnbmF0dXJlRXJyb3IgZXh0ZW5kcyBFcnJvciB7XG4gICAgY29uc3RydWN0b3IoeyBwYWdlIH0pe1xuICAgICAgICBzdXBlcihgVGhlIG1pZGRsZXdhcmUgXCIke3BhZ2V9XCIgYWNjZXB0cyBhbiBhc3luYyBBUEkgZGlyZWN0bHkgd2l0aCB0aGUgZm9ybTpcbiAgXG4gIGV4cG9ydCBmdW5jdGlvbiBtaWRkbGV3YXJlKHJlcXVlc3QsIGV2ZW50KSB7XG4gICAgcmV0dXJuIE5leHRSZXNwb25zZS5yZWRpcmVjdCgnL25ldy1sb2NhdGlvbicpXG4gIH1cbiAgXG4gIFJlYWQgbW9yZTogaHR0cHM6Ly9uZXh0anMub3JnL2RvY3MvbWVzc2FnZXMvbWlkZGxld2FyZS1uZXctc2lnbmF0dXJlXG4gIGApO1xuICAgIH1cbn1cbmNsYXNzIFJlbW92ZWRQYWdlRXJyb3IgZXh0ZW5kcyBFcnJvciB7XG4gICAgY29uc3RydWN0b3IoKXtcbiAgICAgICAgc3VwZXIoYFRoZSByZXF1ZXN0LnBhZ2UgaGFzIGJlZW4gZGVwcmVjYXRlZCBpbiBmYXZvdXIgb2YgXFxgVVJMUGF0dGVyblxcYC5cbiAgUmVhZCBtb3JlOiBodHRwczovL25leHRqcy5vcmcvZG9jcy9tZXNzYWdlcy9taWRkbGV3YXJlLXJlcXVlc3QtcGFnZVxuICBgKTtcbiAgICB9XG59XG5jbGFzcyBSZW1vdmVkVUFFcnJvciBleHRlbmRzIEVycm9yIHtcbiAgICBjb25zdHJ1Y3Rvcigpe1xuICAgICAgICBzdXBlcihgVGhlIHJlcXVlc3QudWEgaGFzIGJlZW4gcmVtb3ZlZCBpbiBmYXZvdXIgb2YgXFxgdXNlckFnZW50XFxgIGZ1bmN0aW9uLlxuICBSZWFkIG1vcmU6IGh0dHBzOi8vbmV4dGpzLm9yZy9kb2NzL21lc3NhZ2VzL21pZGRsZXdhcmUtcGFyc2UtdXNlci1hZ2VudFxuICBgKTtcbiAgICB9XG59XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWVycm9yLmpzLm1hcCJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(pages-dir-node)/./node_modules/next/dist/server/web/error.js\n"); - -/***/ }), - -/***/ "(pages-dir-node)/./node_modules/next/dist/server/web/next-url.js": -/*!*******************************************************!*\ - !*** ./node_modules/next/dist/server/web/next-url.js ***! - \*******************************************************/ -/***/ ((__unused_webpack_module, exports, __webpack_require__) => { - -"use strict"; -eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"NextURL\", ({\n enumerable: true,\n get: function() {\n return NextURL;\n }\n}));\nconst _detectdomainlocale = __webpack_require__(/*! ../../shared/lib/i18n/detect-domain-locale */ \"(pages-dir-node)/./node_modules/next/dist/shared/lib/i18n/detect-domain-locale.js\");\nconst _formatnextpathnameinfo = __webpack_require__(/*! ../../shared/lib/router/utils/format-next-pathname-info */ \"(pages-dir-node)/./node_modules/next/dist/shared/lib/router/utils/format-next-pathname-info.js\");\nconst _gethostname = __webpack_require__(/*! ../../shared/lib/get-hostname */ \"(pages-dir-node)/./node_modules/next/dist/shared/lib/get-hostname.js\");\nconst _getnextpathnameinfo = __webpack_require__(/*! ../../shared/lib/router/utils/get-next-pathname-info */ \"(pages-dir-node)/./node_modules/next/dist/shared/lib/router/utils/get-next-pathname-info.js\");\nconst REGEX_LOCALHOST_HOSTNAME = /(?!^https?:\\/\\/)(127(?:\\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}|\\[::1\\]|localhost)/;\nfunction parseURL(url, base) {\n return new URL(String(url).replace(REGEX_LOCALHOST_HOSTNAME, 'localhost'), base && String(base).replace(REGEX_LOCALHOST_HOSTNAME, 'localhost'));\n}\nconst Internal = Symbol('NextURLInternal');\nclass NextURL {\n constructor(input, baseOrOpts, opts){\n let base;\n let options;\n if (typeof baseOrOpts === 'object' && 'pathname' in baseOrOpts || typeof baseOrOpts === 'string') {\n base = baseOrOpts;\n options = opts || {};\n } else {\n options = opts || baseOrOpts || {};\n }\n this[Internal] = {\n url: parseURL(input, base ?? options.base),\n options: options,\n basePath: ''\n };\n this.analyze();\n }\n analyze() {\n var _this_Internal_options_nextConfig_i18n, _this_Internal_options_nextConfig, _this_Internal_domainLocale, _this_Internal_options_nextConfig_i18n1, _this_Internal_options_nextConfig1;\n const info = (0, _getnextpathnameinfo.getNextPathnameInfo)(this[Internal].url.pathname, {\n nextConfig: this[Internal].options.nextConfig,\n parseData: !undefined,\n i18nProvider: this[Internal].options.i18nProvider\n });\n const hostname = (0, _gethostname.getHostname)(this[Internal].url, this[Internal].options.headers);\n this[Internal].domainLocale = this[Internal].options.i18nProvider ? this[Internal].options.i18nProvider.detectDomainLocale(hostname) : (0, _detectdomainlocale.detectDomainLocale)((_this_Internal_options_nextConfig = this[Internal].options.nextConfig) == null ? void 0 : (_this_Internal_options_nextConfig_i18n = _this_Internal_options_nextConfig.i18n) == null ? void 0 : _this_Internal_options_nextConfig_i18n.domains, hostname);\n const defaultLocale = ((_this_Internal_domainLocale = this[Internal].domainLocale) == null ? void 0 : _this_Internal_domainLocale.defaultLocale) || ((_this_Internal_options_nextConfig1 = this[Internal].options.nextConfig) == null ? void 0 : (_this_Internal_options_nextConfig_i18n1 = _this_Internal_options_nextConfig1.i18n) == null ? void 0 : _this_Internal_options_nextConfig_i18n1.defaultLocale);\n this[Internal].url.pathname = info.pathname;\n this[Internal].defaultLocale = defaultLocale;\n this[Internal].basePath = info.basePath ?? '';\n this[Internal].buildId = info.buildId;\n this[Internal].locale = info.locale ?? defaultLocale;\n this[Internal].trailingSlash = info.trailingSlash;\n }\n formatPathname() {\n return (0, _formatnextpathnameinfo.formatNextPathnameInfo)({\n basePath: this[Internal].basePath,\n buildId: this[Internal].buildId,\n defaultLocale: !this[Internal].options.forceLocale ? this[Internal].defaultLocale : undefined,\n locale: this[Internal].locale,\n pathname: this[Internal].url.pathname,\n trailingSlash: this[Internal].trailingSlash\n });\n }\n formatSearch() {\n return this[Internal].url.search;\n }\n get buildId() {\n return this[Internal].buildId;\n }\n set buildId(buildId) {\n this[Internal].buildId = buildId;\n }\n get locale() {\n return this[Internal].locale ?? '';\n }\n set locale(locale) {\n var _this_Internal_options_nextConfig_i18n, _this_Internal_options_nextConfig;\n if (!this[Internal].locale || !((_this_Internal_options_nextConfig = this[Internal].options.nextConfig) == null ? void 0 : (_this_Internal_options_nextConfig_i18n = _this_Internal_options_nextConfig.i18n) == null ? void 0 : _this_Internal_options_nextConfig_i18n.locales.includes(locale))) {\n throw Object.defineProperty(new TypeError(`The NextURL configuration includes no locale \"${locale}\"`), \"__NEXT_ERROR_CODE\", {\n value: \"E597\",\n enumerable: false,\n configurable: true\n });\n }\n this[Internal].locale = locale;\n }\n get defaultLocale() {\n return this[Internal].defaultLocale;\n }\n get domainLocale() {\n return this[Internal].domainLocale;\n }\n get searchParams() {\n return this[Internal].url.searchParams;\n }\n get host() {\n return this[Internal].url.host;\n }\n set host(value) {\n this[Internal].url.host = value;\n }\n get hostname() {\n return this[Internal].url.hostname;\n }\n set hostname(value) {\n this[Internal].url.hostname = value;\n }\n get port() {\n return this[Internal].url.port;\n }\n set port(value) {\n this[Internal].url.port = value;\n }\n get protocol() {\n return this[Internal].url.protocol;\n }\n set protocol(value) {\n this[Internal].url.protocol = value;\n }\n get href() {\n const pathname = this.formatPathname();\n const search = this.formatSearch();\n return `${this.protocol}//${this.host}${pathname}${search}${this.hash}`;\n }\n set href(url) {\n this[Internal].url = parseURL(url);\n this.analyze();\n }\n get origin() {\n return this[Internal].url.origin;\n }\n get pathname() {\n return this[Internal].url.pathname;\n }\n set pathname(value) {\n this[Internal].url.pathname = value;\n }\n get hash() {\n return this[Internal].url.hash;\n }\n set hash(value) {\n this[Internal].url.hash = value;\n }\n get search() {\n return this[Internal].url.search;\n }\n set search(value) {\n this[Internal].url.search = value;\n }\n get password() {\n return this[Internal].url.password;\n }\n set password(value) {\n this[Internal].url.password = value;\n }\n get username() {\n return this[Internal].url.username;\n }\n set username(value) {\n this[Internal].url.username = value;\n }\n get basePath() {\n return this[Internal].basePath;\n }\n set basePath(value) {\n this[Internal].basePath = value.startsWith('/') ? value : `/${value}`;\n }\n toString() {\n return this.href;\n }\n toJSON() {\n return this.href;\n }\n [Symbol.for('edge-runtime.inspect.custom')]() {\n return {\n href: this.href,\n origin: this.origin,\n protocol: this.protocol,\n username: this.username,\n password: this.password,\n host: this.host,\n hostname: this.hostname,\n port: this.port,\n pathname: this.pathname,\n search: this.search,\n searchParams: this.searchParams,\n hash: this.hash\n };\n }\n clone() {\n return new NextURL(String(this), this[Internal].options);\n }\n}\n\n//# sourceMappingURL=next-url.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1ub2RlKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3Qvc2VydmVyL3dlYi9uZXh0LXVybC5qcyIsIm1hcHBpbmdzIjoiQUFBYTtBQUNiLDhDQUE2QztBQUM3QztBQUNBLENBQUMsRUFBQztBQUNGLDJDQUEwQztBQUMxQztBQUNBO0FBQ0E7QUFDQTtBQUNBLENBQUMsRUFBQztBQUNGLDRCQUE0QixtQkFBTyxDQUFDLHFJQUE0QztBQUNoRixnQ0FBZ0MsbUJBQU8sQ0FBQywrSkFBeUQ7QUFDakcscUJBQXFCLG1CQUFPLENBQUMsMkdBQStCO0FBQzVELDZCQUE2QixtQkFBTyxDQUFDLHlKQUFzRDtBQUMzRixxR0FBcUcsRUFBRTtBQUN2RztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsVUFBVTtBQUNWO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esd0JBQXdCLFNBQThDO0FBQ3RFO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHVHQUF1RyxPQUFPO0FBQzlHO0FBQ0E7QUFDQTtBQUNBLGFBQWE7QUFDYjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxrQkFBa0IsY0FBYyxJQUFJLFVBQVUsRUFBRSxTQUFTLEVBQUUsT0FBTyxFQUFFLFVBQVU7QUFDOUU7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esc0VBQXNFLE1BQU07QUFDNUU7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBIiwic291cmNlcyI6WyJEOlxcZG9uZ3l1bi1wcm9qZWN0c1xcdHdvXFxub2RlX21vZHVsZXNcXG5leHRcXGRpc3RcXHNlcnZlclxcd2ViXFxuZXh0LXVybC5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwge1xuICAgIHZhbHVlOiB0cnVlXG59KTtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIk5leHRVUkxcIiwge1xuICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgZ2V0OiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIE5leHRVUkw7XG4gICAgfVxufSk7XG5jb25zdCBfZGV0ZWN0ZG9tYWlubG9jYWxlID0gcmVxdWlyZShcIi4uLy4uL3NoYXJlZC9saWIvaTE4bi9kZXRlY3QtZG9tYWluLWxvY2FsZVwiKTtcbmNvbnN0IF9mb3JtYXRuZXh0cGF0aG5hbWVpbmZvID0gcmVxdWlyZShcIi4uLy4uL3NoYXJlZC9saWIvcm91dGVyL3V0aWxzL2Zvcm1hdC1uZXh0LXBhdGhuYW1lLWluZm9cIik7XG5jb25zdCBfZ2V0aG9zdG5hbWUgPSByZXF1aXJlKFwiLi4vLi4vc2hhcmVkL2xpYi9nZXQtaG9zdG5hbWVcIik7XG5jb25zdCBfZ2V0bmV4dHBhdGhuYW1laW5mbyA9IHJlcXVpcmUoXCIuLi8uLi9zaGFyZWQvbGliL3JvdXRlci91dGlscy9nZXQtbmV4dC1wYXRobmFtZS1pbmZvXCIpO1xuY29uc3QgUkVHRVhfTE9DQUxIT1NUX0hPU1ROQU1FID0gLyg/IV5odHRwcz86XFwvXFwvKSgxMjcoPzpcXC4oPzoyNVswLTVdfDJbMC00XVswLTldfFswMV0/WzAtOV1bMC05XT8pKXszfXxcXFs6OjFcXF18bG9jYWxob3N0KS87XG5mdW5jdGlvbiBwYXJzZVVSTCh1cmwsIGJhc2UpIHtcbiAgICByZXR1cm4gbmV3IFVSTChTdHJpbmcodXJsKS5yZXBsYWNlKFJFR0VYX0xPQ0FMSE9TVF9IT1NUTkFNRSwgJ2xvY2FsaG9zdCcpLCBiYXNlICYmIFN0cmluZyhiYXNlKS5yZXBsYWNlKFJFR0VYX0xPQ0FMSE9TVF9IT1NUTkFNRSwgJ2xvY2FsaG9zdCcpKTtcbn1cbmNvbnN0IEludGVybmFsID0gU3ltYm9sKCdOZXh0VVJMSW50ZXJuYWwnKTtcbmNsYXNzIE5leHRVUkwge1xuICAgIGNvbnN0cnVjdG9yKGlucHV0LCBiYXNlT3JPcHRzLCBvcHRzKXtcbiAgICAgICAgbGV0IGJhc2U7XG4gICAgICAgIGxldCBvcHRpb25zO1xuICAgICAgICBpZiAodHlwZW9mIGJhc2VPck9wdHMgPT09ICdvYmplY3QnICYmICdwYXRobmFtZScgaW4gYmFzZU9yT3B0cyB8fCB0eXBlb2YgYmFzZU9yT3B0cyA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgICAgIGJhc2UgPSBiYXNlT3JPcHRzO1xuICAgICAgICAgICAgb3B0aW9ucyA9IG9wdHMgfHwge307XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBvcHRpb25zID0gb3B0cyB8fCBiYXNlT3JPcHRzIHx8IHt9O1xuICAgICAgICB9XG4gICAgICAgIHRoaXNbSW50ZXJuYWxdID0ge1xuICAgICAgICAgICAgdXJsOiBwYXJzZVVSTChpbnB1dCwgYmFzZSA/PyBvcHRpb25zLmJhc2UpLFxuICAgICAgICAgICAgb3B0aW9uczogb3B0aW9ucyxcbiAgICAgICAgICAgIGJhc2VQYXRoOiAnJ1xuICAgICAgICB9O1xuICAgICAgICB0aGlzLmFuYWx5emUoKTtcbiAgICB9XG4gICAgYW5hbHl6ZSgpIHtcbiAgICAgICAgdmFyIF90aGlzX0ludGVybmFsX29wdGlvbnNfbmV4dENvbmZpZ19pMThuLCBfdGhpc19JbnRlcm5hbF9vcHRpb25zX25leHRDb25maWcsIF90aGlzX0ludGVybmFsX2RvbWFpbkxvY2FsZSwgX3RoaXNfSW50ZXJuYWxfb3B0aW9uc19uZXh0Q29uZmlnX2kxOG4xLCBfdGhpc19JbnRlcm5hbF9vcHRpb25zX25leHRDb25maWcxO1xuICAgICAgICBjb25zdCBpbmZvID0gKDAsIF9nZXRuZXh0cGF0aG5hbWVpbmZvLmdldE5leHRQYXRobmFtZUluZm8pKHRoaXNbSW50ZXJuYWxdLnVybC5wYXRobmFtZSwge1xuICAgICAgICAgICAgbmV4dENvbmZpZzogdGhpc1tJbnRlcm5hbF0ub3B0aW9ucy5uZXh0Q29uZmlnLFxuICAgICAgICAgICAgcGFyc2VEYXRhOiAhcHJvY2Vzcy5lbnYuX19ORVhUX05PX01JRERMRVdBUkVfVVJMX05PUk1BTElaRSxcbiAgICAgICAgICAgIGkxOG5Qcm92aWRlcjogdGhpc1tJbnRlcm5hbF0ub3B0aW9ucy5pMThuUHJvdmlkZXJcbiAgICAgICAgfSk7XG4gICAgICAgIGNvbnN0IGhvc3RuYW1lID0gKDAsIF9nZXRob3N0bmFtZS5nZXRIb3N0bmFtZSkodGhpc1tJbnRlcm5hbF0udXJsLCB0aGlzW0ludGVybmFsXS5vcHRpb25zLmhlYWRlcnMpO1xuICAgICAgICB0aGlzW0ludGVybmFsXS5kb21haW5Mb2NhbGUgPSB0aGlzW0ludGVybmFsXS5vcHRpb25zLmkxOG5Qcm92aWRlciA/IHRoaXNbSW50ZXJuYWxdLm9wdGlvbnMuaTE4blByb3ZpZGVyLmRldGVjdERvbWFpbkxvY2FsZShob3N0bmFtZSkgOiAoMCwgX2RldGVjdGRvbWFpbmxvY2FsZS5kZXRlY3REb21haW5Mb2NhbGUpKChfdGhpc19JbnRlcm5hbF9vcHRpb25zX25leHRDb25maWcgPSB0aGlzW0ludGVybmFsXS5vcHRpb25zLm5leHRDb25maWcpID09IG51bGwgPyB2b2lkIDAgOiAoX3RoaXNfSW50ZXJuYWxfb3B0aW9uc19uZXh0Q29uZmlnX2kxOG4gPSBfdGhpc19JbnRlcm5hbF9vcHRpb25zX25leHRDb25maWcuaTE4bikgPT0gbnVsbCA/IHZvaWQgMCA6IF90aGlzX0ludGVybmFsX29wdGlvbnNfbmV4dENvbmZpZ19pMThuLmRvbWFpbnMsIGhvc3RuYW1lKTtcbiAgICAgICAgY29uc3QgZGVmYXVsdExvY2FsZSA9ICgoX3RoaXNfSW50ZXJuYWxfZG9tYWluTG9jYWxlID0gdGhpc1tJbnRlcm5hbF0uZG9tYWluTG9jYWxlKSA9PSBudWxsID8gdm9pZCAwIDogX3RoaXNfSW50ZXJuYWxfZG9tYWluTG9jYWxlLmRlZmF1bHRMb2NhbGUpIHx8ICgoX3RoaXNfSW50ZXJuYWxfb3B0aW9uc19uZXh0Q29uZmlnMSA9IHRoaXNbSW50ZXJuYWxdLm9wdGlvbnMubmV4dENvbmZpZykgPT0gbnVsbCA/IHZvaWQgMCA6IChfdGhpc19JbnRlcm5hbF9vcHRpb25zX25leHRDb25maWdfaTE4bjEgPSBfdGhpc19JbnRlcm5hbF9vcHRpb25zX25leHRDb25maWcxLmkxOG4pID09IG51bGwgPyB2b2lkIDAgOiBfdGhpc19JbnRlcm5hbF9vcHRpb25zX25leHRDb25maWdfaTE4bjEuZGVmYXVsdExvY2FsZSk7XG4gICAgICAgIHRoaXNbSW50ZXJuYWxdLnVybC5wYXRobmFtZSA9IGluZm8ucGF0aG5hbWU7XG4gICAgICAgIHRoaXNbSW50ZXJuYWxdLmRlZmF1bHRMb2NhbGUgPSBkZWZhdWx0TG9jYWxlO1xuICAgICAgICB0aGlzW0ludGVybmFsXS5iYXNlUGF0aCA9IGluZm8uYmFzZVBhdGggPz8gJyc7XG4gICAgICAgIHRoaXNbSW50ZXJuYWxdLmJ1aWxkSWQgPSBpbmZvLmJ1aWxkSWQ7XG4gICAgICAgIHRoaXNbSW50ZXJuYWxdLmxvY2FsZSA9IGluZm8ubG9jYWxlID8/IGRlZmF1bHRMb2NhbGU7XG4gICAgICAgIHRoaXNbSW50ZXJuYWxdLnRyYWlsaW5nU2xhc2ggPSBpbmZvLnRyYWlsaW5nU2xhc2g7XG4gICAgfVxuICAgIGZvcm1hdFBhdGhuYW1lKCkge1xuICAgICAgICByZXR1cm4gKDAsIF9mb3JtYXRuZXh0cGF0aG5hbWVpbmZvLmZvcm1hdE5leHRQYXRobmFtZUluZm8pKHtcbiAgICAgICAgICAgIGJhc2VQYXRoOiB0aGlzW0ludGVybmFsXS5iYXNlUGF0aCxcbiAgICAgICAgICAgIGJ1aWxkSWQ6IHRoaXNbSW50ZXJuYWxdLmJ1aWxkSWQsXG4gICAgICAgICAgICBkZWZhdWx0TG9jYWxlOiAhdGhpc1tJbnRlcm5hbF0ub3B0aW9ucy5mb3JjZUxvY2FsZSA/IHRoaXNbSW50ZXJuYWxdLmRlZmF1bHRMb2NhbGUgOiB1bmRlZmluZWQsXG4gICAgICAgICAgICBsb2NhbGU6IHRoaXNbSW50ZXJuYWxdLmxvY2FsZSxcbiAgICAgICAgICAgIHBhdGhuYW1lOiB0aGlzW0ludGVybmFsXS51cmwucGF0aG5hbWUsXG4gICAgICAgICAgICB0cmFpbGluZ1NsYXNoOiB0aGlzW0ludGVybmFsXS50cmFpbGluZ1NsYXNoXG4gICAgICAgIH0pO1xuICAgIH1cbiAgICBmb3JtYXRTZWFyY2goKSB7XG4gICAgICAgIHJldHVybiB0aGlzW0ludGVybmFsXS51cmwuc2VhcmNoO1xuICAgIH1cbiAgICBnZXQgYnVpbGRJZCgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXNbSW50ZXJuYWxdLmJ1aWxkSWQ7XG4gICAgfVxuICAgIHNldCBidWlsZElkKGJ1aWxkSWQpIHtcbiAgICAgICAgdGhpc1tJbnRlcm5hbF0uYnVpbGRJZCA9IGJ1aWxkSWQ7XG4gICAgfVxuICAgIGdldCBsb2NhbGUoKSB7XG4gICAgICAgIHJldHVybiB0aGlzW0ludGVybmFsXS5sb2NhbGUgPz8gJyc7XG4gICAgfVxuICAgIHNldCBsb2NhbGUobG9jYWxlKSB7XG4gICAgICAgIHZhciBfdGhpc19JbnRlcm5hbF9vcHRpb25zX25leHRDb25maWdfaTE4biwgX3RoaXNfSW50ZXJuYWxfb3B0aW9uc19uZXh0Q29uZmlnO1xuICAgICAgICBpZiAoIXRoaXNbSW50ZXJuYWxdLmxvY2FsZSB8fCAhKChfdGhpc19JbnRlcm5hbF9vcHRpb25zX25leHRDb25maWcgPSB0aGlzW0ludGVybmFsXS5vcHRpb25zLm5leHRDb25maWcpID09IG51bGwgPyB2b2lkIDAgOiAoX3RoaXNfSW50ZXJuYWxfb3B0aW9uc19uZXh0Q29uZmlnX2kxOG4gPSBfdGhpc19JbnRlcm5hbF9vcHRpb25zX25leHRDb25maWcuaTE4bikgPT0gbnVsbCA/IHZvaWQgMCA6IF90aGlzX0ludGVybmFsX29wdGlvbnNfbmV4dENvbmZpZ19pMThuLmxvY2FsZXMuaW5jbHVkZXMobG9jYWxlKSkpIHtcbiAgICAgICAgICAgIHRocm93IE9iamVjdC5kZWZpbmVQcm9wZXJ0eShuZXcgVHlwZUVycm9yKGBUaGUgTmV4dFVSTCBjb25maWd1cmF0aW9uIGluY2x1ZGVzIG5vIGxvY2FsZSBcIiR7bG9jYWxlfVwiYCksIFwiX19ORVhUX0VSUk9SX0NPREVcIiwge1xuICAgICAgICAgICAgICAgIHZhbHVlOiBcIkU1OTdcIixcbiAgICAgICAgICAgICAgICBlbnVtZXJhYmxlOiBmYWxzZSxcbiAgICAgICAgICAgICAgICBjb25maWd1cmFibGU6IHRydWVcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICAgIHRoaXNbSW50ZXJuYWxdLmxvY2FsZSA9IGxvY2FsZTtcbiAgICB9XG4gICAgZ2V0IGRlZmF1bHRMb2NhbGUoKSB7XG4gICAgICAgIHJldHVybiB0aGlzW0ludGVybmFsXS5kZWZhdWx0TG9jYWxlO1xuICAgIH1cbiAgICBnZXQgZG9tYWluTG9jYWxlKCkge1xuICAgICAgICByZXR1cm4gdGhpc1tJbnRlcm5hbF0uZG9tYWluTG9jYWxlO1xuICAgIH1cbiAgICBnZXQgc2VhcmNoUGFyYW1zKCkge1xuICAgICAgICByZXR1cm4gdGhpc1tJbnRlcm5hbF0udXJsLnNlYXJjaFBhcmFtcztcbiAgICB9XG4gICAgZ2V0IGhvc3QoKSB7XG4gICAgICAgIHJldHVybiB0aGlzW0ludGVybmFsXS51cmwuaG9zdDtcbiAgICB9XG4gICAgc2V0IGhvc3QodmFsdWUpIHtcbiAgICAgICAgdGhpc1tJbnRlcm5hbF0udXJsLmhvc3QgPSB2YWx1ZTtcbiAgICB9XG4gICAgZ2V0IGhvc3RuYW1lKCkge1xuICAgICAgICByZXR1cm4gdGhpc1tJbnRlcm5hbF0udXJsLmhvc3RuYW1lO1xuICAgIH1cbiAgICBzZXQgaG9zdG5hbWUodmFsdWUpIHtcbiAgICAgICAgdGhpc1tJbnRlcm5hbF0udXJsLmhvc3RuYW1lID0gdmFsdWU7XG4gICAgfVxuICAgIGdldCBwb3J0KCkge1xuICAgICAgICByZXR1cm4gdGhpc1tJbnRlcm5hbF0udXJsLnBvcnQ7XG4gICAgfVxuICAgIHNldCBwb3J0KHZhbHVlKSB7XG4gICAgICAgIHRoaXNbSW50ZXJuYWxdLnVybC5wb3J0ID0gdmFsdWU7XG4gICAgfVxuICAgIGdldCBwcm90b2NvbCgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXNbSW50ZXJuYWxdLnVybC5wcm90b2NvbDtcbiAgICB9XG4gICAgc2V0IHByb3RvY29sKHZhbHVlKSB7XG4gICAgICAgIHRoaXNbSW50ZXJuYWxdLnVybC5wcm90b2NvbCA9IHZhbHVlO1xuICAgIH1cbiAgICBnZXQgaHJlZigpIHtcbiAgICAgICAgY29uc3QgcGF0aG5hbWUgPSB0aGlzLmZvcm1hdFBhdGhuYW1lKCk7XG4gICAgICAgIGNvbnN0IHNlYXJjaCA9IHRoaXMuZm9ybWF0U2VhcmNoKCk7XG4gICAgICAgIHJldHVybiBgJHt0aGlzLnByb3RvY29sfS8vJHt0aGlzLmhvc3R9JHtwYXRobmFtZX0ke3NlYXJjaH0ke3RoaXMuaGFzaH1gO1xuICAgIH1cbiAgICBzZXQgaHJlZih1cmwpIHtcbiAgICAgICAgdGhpc1tJbnRlcm5hbF0udXJsID0gcGFyc2VVUkwodXJsKTtcbiAgICAgICAgdGhpcy5hbmFseXplKCk7XG4gICAgfVxuICAgIGdldCBvcmlnaW4oKSB7XG4gICAgICAgIHJldHVybiB0aGlzW0ludGVybmFsXS51cmwub3JpZ2luO1xuICAgIH1cbiAgICBnZXQgcGF0aG5hbWUoKSB7XG4gICAgICAgIHJldHVybiB0aGlzW0ludGVybmFsXS51cmwucGF0aG5hbWU7XG4gICAgfVxuICAgIHNldCBwYXRobmFtZSh2YWx1ZSkge1xuICAgICAgICB0aGlzW0ludGVybmFsXS51cmwucGF0aG5hbWUgPSB2YWx1ZTtcbiAgICB9XG4gICAgZ2V0IGhhc2goKSB7XG4gICAgICAgIHJldHVybiB0aGlzW0ludGVybmFsXS51cmwuaGFzaDtcbiAgICB9XG4gICAgc2V0IGhhc2godmFsdWUpIHtcbiAgICAgICAgdGhpc1tJbnRlcm5hbF0udXJsLmhhc2ggPSB2YWx1ZTtcbiAgICB9XG4gICAgZ2V0IHNlYXJjaCgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXNbSW50ZXJuYWxdLnVybC5zZWFyY2g7XG4gICAgfVxuICAgIHNldCBzZWFyY2godmFsdWUpIHtcbiAgICAgICAgdGhpc1tJbnRlcm5hbF0udXJsLnNlYXJjaCA9IHZhbHVlO1xuICAgIH1cbiAgICBnZXQgcGFzc3dvcmQoKSB7XG4gICAgICAgIHJldHVybiB0aGlzW0ludGVybmFsXS51cmwucGFzc3dvcmQ7XG4gICAgfVxuICAgIHNldCBwYXNzd29yZCh2YWx1ZSkge1xuICAgICAgICB0aGlzW0ludGVybmFsXS51cmwucGFzc3dvcmQgPSB2YWx1ZTtcbiAgICB9XG4gICAgZ2V0IHVzZXJuYW1lKCkge1xuICAgICAgICByZXR1cm4gdGhpc1tJbnRlcm5hbF0udXJsLnVzZXJuYW1lO1xuICAgIH1cbiAgICBzZXQgdXNlcm5hbWUodmFsdWUpIHtcbiAgICAgICAgdGhpc1tJbnRlcm5hbF0udXJsLnVzZXJuYW1lID0gdmFsdWU7XG4gICAgfVxuICAgIGdldCBiYXNlUGF0aCgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXNbSW50ZXJuYWxdLmJhc2VQYXRoO1xuICAgIH1cbiAgICBzZXQgYmFzZVBhdGgodmFsdWUpIHtcbiAgICAgICAgdGhpc1tJbnRlcm5hbF0uYmFzZVBhdGggPSB2YWx1ZS5zdGFydHNXaXRoKCcvJykgPyB2YWx1ZSA6IGAvJHt2YWx1ZX1gO1xuICAgIH1cbiAgICB0b1N0cmluZygpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaHJlZjtcbiAgICB9XG4gICAgdG9KU09OKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5ocmVmO1xuICAgIH1cbiAgICBbU3ltYm9sLmZvcignZWRnZS1ydW50aW1lLmluc3BlY3QuY3VzdG9tJyldKCkge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgaHJlZjogdGhpcy5ocmVmLFxuICAgICAgICAgICAgb3JpZ2luOiB0aGlzLm9yaWdpbixcbiAgICAgICAgICAgIHByb3RvY29sOiB0aGlzLnByb3RvY29sLFxuICAgICAgICAgICAgdXNlcm5hbWU6IHRoaXMudXNlcm5hbWUsXG4gICAgICAgICAgICBwYXNzd29yZDogdGhpcy5wYXNzd29yZCxcbiAgICAgICAgICAgIGhvc3Q6IHRoaXMuaG9zdCxcbiAgICAgICAgICAgIGhvc3RuYW1lOiB0aGlzLmhvc3RuYW1lLFxuICAgICAgICAgICAgcG9ydDogdGhpcy5wb3J0LFxuICAgICAgICAgICAgcGF0aG5hbWU6IHRoaXMucGF0aG5hbWUsXG4gICAgICAgICAgICBzZWFyY2g6IHRoaXMuc2VhcmNoLFxuICAgICAgICAgICAgc2VhcmNoUGFyYW1zOiB0aGlzLnNlYXJjaFBhcmFtcyxcbiAgICAgICAgICAgIGhhc2g6IHRoaXMuaGFzaFxuICAgICAgICB9O1xuICAgIH1cbiAgICBjbG9uZSgpIHtcbiAgICAgICAgcmV0dXJuIG5ldyBOZXh0VVJMKFN0cmluZyh0aGlzKSwgdGhpc1tJbnRlcm5hbF0ub3B0aW9ucyk7XG4gICAgfVxufVxuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1uZXh0LXVybC5qcy5tYXAiXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(pages-dir-node)/./node_modules/next/dist/server/web/next-url.js\n"); - -/***/ }), - -/***/ "(pages-dir-node)/./node_modules/next/dist/server/web/spec-extension/adapters/next-request.js": -/*!***********************************************************************************!*\ - !*** ./node_modules/next/dist/server/web/spec-extension/adapters/next-request.js ***! - \***********************************************************************************/ -/***/ ((__unused_webpack_module, exports, __webpack_require__) => { - -"use strict"; -eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n NextRequestAdapter: function() {\n return NextRequestAdapter;\n },\n ResponseAborted: function() {\n return ResponseAborted;\n },\n ResponseAbortedName: function() {\n return ResponseAbortedName;\n },\n createAbortController: function() {\n return createAbortController;\n },\n signalFromNodeResponse: function() {\n return signalFromNodeResponse;\n }\n});\nconst _requestmeta = __webpack_require__(/*! ../../../request-meta */ \"(pages-dir-node)/./node_modules/next/dist/server/request-meta.js\");\nconst _utils = __webpack_require__(/*! ../../utils */ \"(pages-dir-node)/./node_modules/next/dist/server/web/utils.js\");\nconst _request = __webpack_require__(/*! ../request */ \"(pages-dir-node)/./node_modules/next/dist/server/web/spec-extension/request.js\");\nconst _helpers = __webpack_require__(/*! ../../../base-http/helpers */ \"(pages-dir-node)/./node_modules/next/dist/server/base-http/helpers.js\");\nconst ResponseAbortedName = 'ResponseAborted';\nclass ResponseAborted extends Error {\n constructor(...args){\n super(...args), this.name = ResponseAbortedName;\n }\n}\nfunction createAbortController(response) {\n const controller = new AbortController();\n // If `finish` fires first, then `res.end()` has been called and the close is\n // just us finishing the stream on our side. If `close` fires first, then we\n // know the client disconnected before we finished.\n response.once('close', ()=>{\n if (response.writableFinished) return;\n controller.abort(new ResponseAborted());\n });\n return controller;\n}\nfunction signalFromNodeResponse(response) {\n const { errored, destroyed } = response;\n if (errored || destroyed) {\n return AbortSignal.abort(errored ?? new ResponseAborted());\n }\n const { signal } = createAbortController(response);\n return signal;\n}\nclass NextRequestAdapter {\n static fromBaseNextRequest(request, signal) {\n if (// The type check here ensures that `req` is correctly typed, and the\n // environment variable check provides dead code elimination.\n false) {} else if (// The type check here ensures that `req` is correctly typed, and the\n // environment variable check provides dead code elimination.\n true && (0, _helpers.isNodeNextRequest)(request)) {\n return NextRequestAdapter.fromNodeNextRequest(request, signal);\n } else {\n throw Object.defineProperty(new Error('Invariant: Unsupported NextRequest type'), \"__NEXT_ERROR_CODE\", {\n value: \"E345\",\n enumerable: false,\n configurable: true\n });\n }\n }\n static fromNodeNextRequest(request, signal) {\n // HEAD and GET requests can not have a body.\n let body = null;\n if (request.method !== 'GET' && request.method !== 'HEAD' && request.body) {\n // @ts-expect-error - this is handled by undici, when streams/web land use it instead\n body = request.body;\n }\n let url;\n if (request.url.startsWith('http')) {\n url = new URL(request.url);\n } else {\n // Grab the full URL from the request metadata.\n const base = (0, _requestmeta.getRequestMeta)(request, 'initURL');\n if (!base || !base.startsWith('http')) {\n // Because the URL construction relies on the fact that the URL provided\n // is absolute, we need to provide a base URL. We can't use the request\n // URL because it's relative, so we use a dummy URL instead.\n url = new URL(request.url, 'http://n');\n } else {\n url = new URL(request.url, base);\n }\n }\n return new _request.NextRequest(url, {\n method: request.method,\n headers: (0, _utils.fromNodeOutgoingHttpHeaders)(request.headers),\n duplex: 'half',\n signal,\n // geo\n // ip\n // nextConfig\n // body can not be passed if request was aborted\n // or we get a Request body was disturbed error\n ...signal.aborted ? {} : {\n body\n }\n });\n }\n static fromWebNextRequest(request) {\n // HEAD and GET requests can not have a body.\n let body = null;\n if (request.method !== 'GET' && request.method !== 'HEAD') {\n body = request.body;\n }\n return new _request.NextRequest(request.url, {\n method: request.method,\n headers: (0, _utils.fromNodeOutgoingHttpHeaders)(request.headers),\n duplex: 'half',\n signal: request.request.signal,\n // geo\n // ip\n // nextConfig\n // body can not be passed if request was aborted\n // or we get a Request body was disturbed error\n ...request.request.signal.aborted ? {} : {\n body\n }\n });\n }\n}\n\n//# sourceMappingURL=next-request.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1ub2RlKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3Qvc2VydmVyL3dlYi9zcGVjLWV4dGVuc2lvbi9hZGFwdGVycy9uZXh0LXJlcXVlc3QuanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYiw4Q0FBNkM7QUFDN0M7QUFDQSxDQUFDLEVBQUM7QUFDRixNQUFNLENBTUw7QUFDRDtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQSxDQUFDO0FBQ0QscUJBQXFCLG1CQUFPLENBQUMsK0ZBQXVCO0FBQ3BELGVBQWUsbUJBQU8sQ0FBQyxrRkFBYTtBQUNwQyxpQkFBaUIsbUJBQU8sQ0FBQyxrR0FBWTtBQUNyQyxpQkFBaUIsbUJBQU8sQ0FBQyx5R0FBNEI7QUFDckQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQSxZQUFZLHFCQUFxQjtBQUNqQztBQUNBO0FBQ0E7QUFDQSxZQUFZLFNBQVM7QUFDckI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsUUFBUSxLQUE4RSxFQUFFLEVBRS9FLENBQUM7QUFDVjtBQUNBLFFBQVEsS0FBbUM7QUFDM0M7QUFDQSxVQUFVO0FBQ1Y7QUFDQTtBQUNBO0FBQ0E7QUFDQSxhQUFhO0FBQ2I7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsVUFBVTtBQUNWO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsY0FBYztBQUNkO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsbUNBQW1DO0FBQ25DO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLG1EQUFtRDtBQUNuRDtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7O0FBRUEiLCJzb3VyY2VzIjpbIkQ6XFxkb25neXVuLXByb2plY3RzXFx0d29cXG5vZGVfbW9kdWxlc1xcbmV4dFxcZGlzdFxcc2VydmVyXFx3ZWJcXHNwZWMtZXh0ZW5zaW9uXFxhZGFwdGVyc1xcbmV4dC1yZXF1ZXN0LmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7XG4gICAgdmFsdWU6IHRydWVcbn0pO1xuMCAmJiAobW9kdWxlLmV4cG9ydHMgPSB7XG4gICAgTmV4dFJlcXVlc3RBZGFwdGVyOiBudWxsLFxuICAgIFJlc3BvbnNlQWJvcnRlZDogbnVsbCxcbiAgICBSZXNwb25zZUFib3J0ZWROYW1lOiBudWxsLFxuICAgIGNyZWF0ZUFib3J0Q29udHJvbGxlcjogbnVsbCxcbiAgICBzaWduYWxGcm9tTm9kZVJlc3BvbnNlOiBudWxsXG59KTtcbmZ1bmN0aW9uIF9leHBvcnQodGFyZ2V0LCBhbGwpIHtcbiAgICBmb3IodmFyIG5hbWUgaW4gYWxsKU9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0YXJnZXQsIG5hbWUsIHtcbiAgICAgICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICAgICAgZ2V0OiBhbGxbbmFtZV1cbiAgICB9KTtcbn1cbl9leHBvcnQoZXhwb3J0cywge1xuICAgIE5leHRSZXF1ZXN0QWRhcHRlcjogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBOZXh0UmVxdWVzdEFkYXB0ZXI7XG4gICAgfSxcbiAgICBSZXNwb25zZUFib3J0ZWQ6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gUmVzcG9uc2VBYm9ydGVkO1xuICAgIH0sXG4gICAgUmVzcG9uc2VBYm9ydGVkTmFtZTogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBSZXNwb25zZUFib3J0ZWROYW1lO1xuICAgIH0sXG4gICAgY3JlYXRlQWJvcnRDb250cm9sbGVyOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIGNyZWF0ZUFib3J0Q29udHJvbGxlcjtcbiAgICB9LFxuICAgIHNpZ25hbEZyb21Ob2RlUmVzcG9uc2U6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gc2lnbmFsRnJvbU5vZGVSZXNwb25zZTtcbiAgICB9XG59KTtcbmNvbnN0IF9yZXF1ZXN0bWV0YSA9IHJlcXVpcmUoXCIuLi8uLi8uLi9yZXF1ZXN0LW1ldGFcIik7XG5jb25zdCBfdXRpbHMgPSByZXF1aXJlKFwiLi4vLi4vdXRpbHNcIik7XG5jb25zdCBfcmVxdWVzdCA9IHJlcXVpcmUoXCIuLi9yZXF1ZXN0XCIpO1xuY29uc3QgX2hlbHBlcnMgPSByZXF1aXJlKFwiLi4vLi4vLi4vYmFzZS1odHRwL2hlbHBlcnNcIik7XG5jb25zdCBSZXNwb25zZUFib3J0ZWROYW1lID0gJ1Jlc3BvbnNlQWJvcnRlZCc7XG5jbGFzcyBSZXNwb25zZUFib3J0ZWQgZXh0ZW5kcyBFcnJvciB7XG4gICAgY29uc3RydWN0b3IoLi4uYXJncyl7XG4gICAgICAgIHN1cGVyKC4uLmFyZ3MpLCB0aGlzLm5hbWUgPSBSZXNwb25zZUFib3J0ZWROYW1lO1xuICAgIH1cbn1cbmZ1bmN0aW9uIGNyZWF0ZUFib3J0Q29udHJvbGxlcihyZXNwb25zZSkge1xuICAgIGNvbnN0IGNvbnRyb2xsZXIgPSBuZXcgQWJvcnRDb250cm9sbGVyKCk7XG4gICAgLy8gSWYgYGZpbmlzaGAgZmlyZXMgZmlyc3QsIHRoZW4gYHJlcy5lbmQoKWAgaGFzIGJlZW4gY2FsbGVkIGFuZCB0aGUgY2xvc2UgaXNcbiAgICAvLyBqdXN0IHVzIGZpbmlzaGluZyB0aGUgc3RyZWFtIG9uIG91ciBzaWRlLiBJZiBgY2xvc2VgIGZpcmVzIGZpcnN0LCB0aGVuIHdlXG4gICAgLy8ga25vdyB0aGUgY2xpZW50IGRpc2Nvbm5lY3RlZCBiZWZvcmUgd2UgZmluaXNoZWQuXG4gICAgcmVzcG9uc2Uub25jZSgnY2xvc2UnLCAoKT0+e1xuICAgICAgICBpZiAocmVzcG9uc2Uud3JpdGFibGVGaW5pc2hlZCkgcmV0dXJuO1xuICAgICAgICBjb250cm9sbGVyLmFib3J0KG5ldyBSZXNwb25zZUFib3J0ZWQoKSk7XG4gICAgfSk7XG4gICAgcmV0dXJuIGNvbnRyb2xsZXI7XG59XG5mdW5jdGlvbiBzaWduYWxGcm9tTm9kZVJlc3BvbnNlKHJlc3BvbnNlKSB7XG4gICAgY29uc3QgeyBlcnJvcmVkLCBkZXN0cm95ZWQgfSA9IHJlc3BvbnNlO1xuICAgIGlmIChlcnJvcmVkIHx8IGRlc3Ryb3llZCkge1xuICAgICAgICByZXR1cm4gQWJvcnRTaWduYWwuYWJvcnQoZXJyb3JlZCA/PyBuZXcgUmVzcG9uc2VBYm9ydGVkKCkpO1xuICAgIH1cbiAgICBjb25zdCB7IHNpZ25hbCB9ID0gY3JlYXRlQWJvcnRDb250cm9sbGVyKHJlc3BvbnNlKTtcbiAgICByZXR1cm4gc2lnbmFsO1xufVxuY2xhc3MgTmV4dFJlcXVlc3RBZGFwdGVyIHtcbiAgICBzdGF0aWMgZnJvbUJhc2VOZXh0UmVxdWVzdChyZXF1ZXN0LCBzaWduYWwpIHtcbiAgICAgICAgaWYgKC8vIFRoZSB0eXBlIGNoZWNrIGhlcmUgZW5zdXJlcyB0aGF0IGByZXFgIGlzIGNvcnJlY3RseSB0eXBlZCwgYW5kIHRoZVxuICAgICAgICAvLyBlbnZpcm9ubWVudCB2YXJpYWJsZSBjaGVjayBwcm92aWRlcyBkZWFkIGNvZGUgZWxpbWluYXRpb24uXG4gICAgICAgIHByb2Nlc3MuZW52Lk5FWFRfUlVOVElNRSA9PT0gJ2VkZ2UnICYmICgwLCBfaGVscGVycy5pc1dlYk5leHRSZXF1ZXN0KShyZXF1ZXN0KSkge1xuICAgICAgICAgICAgcmV0dXJuIE5leHRSZXF1ZXN0QWRhcHRlci5mcm9tV2ViTmV4dFJlcXVlc3QocmVxdWVzdCk7XG4gICAgICAgIH0gZWxzZSBpZiAoLy8gVGhlIHR5cGUgY2hlY2sgaGVyZSBlbnN1cmVzIHRoYXQgYHJlcWAgaXMgY29ycmVjdGx5IHR5cGVkLCBhbmQgdGhlXG4gICAgICAgIC8vIGVudmlyb25tZW50IHZhcmlhYmxlIGNoZWNrIHByb3ZpZGVzIGRlYWQgY29kZSBlbGltaW5hdGlvbi5cbiAgICAgICAgcHJvY2Vzcy5lbnYuTkVYVF9SVU5USU1FICE9PSAnZWRnZScgJiYgKDAsIF9oZWxwZXJzLmlzTm9kZU5leHRSZXF1ZXN0KShyZXF1ZXN0KSkge1xuICAgICAgICAgICAgcmV0dXJuIE5leHRSZXF1ZXN0QWRhcHRlci5mcm9tTm9kZU5leHRSZXF1ZXN0KHJlcXVlc3QsIHNpZ25hbCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aHJvdyBPYmplY3QuZGVmaW5lUHJvcGVydHkobmV3IEVycm9yKCdJbnZhcmlhbnQ6IFVuc3VwcG9ydGVkIE5leHRSZXF1ZXN0IHR5cGUnKSwgXCJfX05FWFRfRVJST1JfQ09ERVwiLCB7XG4gICAgICAgICAgICAgICAgdmFsdWU6IFwiRTM0NVwiLFxuICAgICAgICAgICAgICAgIGVudW1lcmFibGU6IGZhbHNlLFxuICAgICAgICAgICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZVxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgc3RhdGljIGZyb21Ob2RlTmV4dFJlcXVlc3QocmVxdWVzdCwgc2lnbmFsKSB7XG4gICAgICAgIC8vIEhFQUQgYW5kIEdFVCByZXF1ZXN0cyBjYW4gbm90IGhhdmUgYSBib2R5LlxuICAgICAgICBsZXQgYm9keSA9IG51bGw7XG4gICAgICAgIGlmIChyZXF1ZXN0Lm1ldGhvZCAhPT0gJ0dFVCcgJiYgcmVxdWVzdC5tZXRob2QgIT09ICdIRUFEJyAmJiByZXF1ZXN0LmJvZHkpIHtcbiAgICAgICAgICAgIC8vIEB0cy1leHBlY3QtZXJyb3IgLSB0aGlzIGlzIGhhbmRsZWQgYnkgdW5kaWNpLCB3aGVuIHN0cmVhbXMvd2ViIGxhbmQgdXNlIGl0IGluc3RlYWRcbiAgICAgICAgICAgIGJvZHkgPSByZXF1ZXN0LmJvZHk7XG4gICAgICAgIH1cbiAgICAgICAgbGV0IHVybDtcbiAgICAgICAgaWYgKHJlcXVlc3QudXJsLnN0YXJ0c1dpdGgoJ2h0dHAnKSkge1xuICAgICAgICAgICAgdXJsID0gbmV3IFVSTChyZXF1ZXN0LnVybCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAvLyBHcmFiIHRoZSBmdWxsIFVSTCBmcm9tIHRoZSByZXF1ZXN0IG1ldGFkYXRhLlxuICAgICAgICAgICAgY29uc3QgYmFzZSA9ICgwLCBfcmVxdWVzdG1ldGEuZ2V0UmVxdWVzdE1ldGEpKHJlcXVlc3QsICdpbml0VVJMJyk7XG4gICAgICAgICAgICBpZiAoIWJhc2UgfHwgIWJhc2Uuc3RhcnRzV2l0aCgnaHR0cCcpKSB7XG4gICAgICAgICAgICAgICAgLy8gQmVjYXVzZSB0aGUgVVJMIGNvbnN0cnVjdGlvbiByZWxpZXMgb24gdGhlIGZhY3QgdGhhdCB0aGUgVVJMIHByb3ZpZGVkXG4gICAgICAgICAgICAgICAgLy8gaXMgYWJzb2x1dGUsIHdlIG5lZWQgdG8gcHJvdmlkZSBhIGJhc2UgVVJMLiBXZSBjYW4ndCB1c2UgdGhlIHJlcXVlc3RcbiAgICAgICAgICAgICAgICAvLyBVUkwgYmVjYXVzZSBpdCdzIHJlbGF0aXZlLCBzbyB3ZSB1c2UgYSBkdW1teSBVUkwgaW5zdGVhZC5cbiAgICAgICAgICAgICAgICB1cmwgPSBuZXcgVVJMKHJlcXVlc3QudXJsLCAnaHR0cDovL24nKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgdXJsID0gbmV3IFVSTChyZXF1ZXN0LnVybCwgYmFzZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG5ldyBfcmVxdWVzdC5OZXh0UmVxdWVzdCh1cmwsIHtcbiAgICAgICAgICAgIG1ldGhvZDogcmVxdWVzdC5tZXRob2QsXG4gICAgICAgICAgICBoZWFkZXJzOiAoMCwgX3V0aWxzLmZyb21Ob2RlT3V0Z29pbmdIdHRwSGVhZGVycykocmVxdWVzdC5oZWFkZXJzKSxcbiAgICAgICAgICAgIGR1cGxleDogJ2hhbGYnLFxuICAgICAgICAgICAgc2lnbmFsLFxuICAgICAgICAgICAgLy8gZ2VvXG4gICAgICAgICAgICAvLyBpcFxuICAgICAgICAgICAgLy8gbmV4dENvbmZpZ1xuICAgICAgICAgICAgLy8gYm9keSBjYW4gbm90IGJlIHBhc3NlZCBpZiByZXF1ZXN0IHdhcyBhYm9ydGVkXG4gICAgICAgICAgICAvLyBvciB3ZSBnZXQgYSBSZXF1ZXN0IGJvZHkgd2FzIGRpc3R1cmJlZCBlcnJvclxuICAgICAgICAgICAgLi4uc2lnbmFsLmFib3J0ZWQgPyB7fSA6IHtcbiAgICAgICAgICAgICAgICBib2R5XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cbiAgICBzdGF0aWMgZnJvbVdlYk5leHRSZXF1ZXN0KHJlcXVlc3QpIHtcbiAgICAgICAgLy8gSEVBRCBhbmQgR0VUIHJlcXVlc3RzIGNhbiBub3QgaGF2ZSBhIGJvZHkuXG4gICAgICAgIGxldCBib2R5ID0gbnVsbDtcbiAgICAgICAgaWYgKHJlcXVlc3QubWV0aG9kICE9PSAnR0VUJyAmJiByZXF1ZXN0Lm1ldGhvZCAhPT0gJ0hFQUQnKSB7XG4gICAgICAgICAgICBib2R5ID0gcmVxdWVzdC5ib2R5O1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBuZXcgX3JlcXVlc3QuTmV4dFJlcXVlc3QocmVxdWVzdC51cmwsIHtcbiAgICAgICAgICAgIG1ldGhvZDogcmVxdWVzdC5tZXRob2QsXG4gICAgICAgICAgICBoZWFkZXJzOiAoMCwgX3V0aWxzLmZyb21Ob2RlT3V0Z29pbmdIdHRwSGVhZGVycykocmVxdWVzdC5oZWFkZXJzKSxcbiAgICAgICAgICAgIGR1cGxleDogJ2hhbGYnLFxuICAgICAgICAgICAgc2lnbmFsOiByZXF1ZXN0LnJlcXVlc3Quc2lnbmFsLFxuICAgICAgICAgICAgLy8gZ2VvXG4gICAgICAgICAgICAvLyBpcFxuICAgICAgICAgICAgLy8gbmV4dENvbmZpZ1xuICAgICAgICAgICAgLy8gYm9keSBjYW4gbm90IGJlIHBhc3NlZCBpZiByZXF1ZXN0IHdhcyBhYm9ydGVkXG4gICAgICAgICAgICAvLyBvciB3ZSBnZXQgYSBSZXF1ZXN0IGJvZHkgd2FzIGRpc3R1cmJlZCBlcnJvclxuICAgICAgICAgICAgLi4ucmVxdWVzdC5yZXF1ZXN0LnNpZ25hbC5hYm9ydGVkID8ge30gOiB7XG4gICAgICAgICAgICAgICAgYm9keVxuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG59XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPW5leHQtcmVxdWVzdC5qcy5tYXAiXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(pages-dir-node)/./node_modules/next/dist/server/web/spec-extension/adapters/next-request.js\n"); - -/***/ }), - -/***/ "(pages-dir-node)/./node_modules/next/dist/server/web/spec-extension/cookies.js": -/*!*********************************************************************!*\ - !*** ./node_modules/next/dist/server/web/spec-extension/cookies.js ***! - \*********************************************************************/ -/***/ ((__unused_webpack_module, exports, __webpack_require__) => { - -"use strict"; -eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n RequestCookies: function() {\n return _cookies.RequestCookies;\n },\n ResponseCookies: function() {\n return _cookies.ResponseCookies;\n },\n stringifyCookie: function() {\n return _cookies.stringifyCookie;\n }\n});\nconst _cookies = __webpack_require__(/*! next/dist/compiled/@edge-runtime/cookies */ \"(pages-dir-node)/./node_modules/next/dist/compiled/@edge-runtime/cookies/index.js\");\n\n//# sourceMappingURL=cookies.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1ub2RlKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3Qvc2VydmVyL3dlYi9zcGVjLWV4dGVuc2lvbi9jb29raWVzLmpzIiwibWFwcGluZ3MiOiJBQUFhO0FBQ2IsOENBQTZDO0FBQzdDO0FBQ0EsQ0FBQyxFQUFDO0FBQ0YsTUFBTSxDQUlMO0FBQ0Q7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQSxDQUFDO0FBQ0QsaUJBQWlCLG1CQUFPLENBQUMsbUlBQTBDOztBQUVuRSIsInNvdXJjZXMiOlsiRDpcXGRvbmd5dW4tcHJvamVjdHNcXHR3b1xcbm9kZV9tb2R1bGVzXFxuZXh0XFxkaXN0XFxzZXJ2ZXJcXHdlYlxcc3BlYy1leHRlbnNpb25cXGNvb2tpZXMuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHtcbiAgICB2YWx1ZTogdHJ1ZVxufSk7XG4wICYmIChtb2R1bGUuZXhwb3J0cyA9IHtcbiAgICBSZXF1ZXN0Q29va2llczogbnVsbCxcbiAgICBSZXNwb25zZUNvb2tpZXM6IG51bGwsXG4gICAgc3RyaW5naWZ5Q29va2llOiBudWxsXG59KTtcbmZ1bmN0aW9uIF9leHBvcnQodGFyZ2V0LCBhbGwpIHtcbiAgICBmb3IodmFyIG5hbWUgaW4gYWxsKU9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0YXJnZXQsIG5hbWUsIHtcbiAgICAgICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICAgICAgZ2V0OiBhbGxbbmFtZV1cbiAgICB9KTtcbn1cbl9leHBvcnQoZXhwb3J0cywge1xuICAgIFJlcXVlc3RDb29raWVzOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIF9jb29raWVzLlJlcXVlc3RDb29raWVzO1xuICAgIH0sXG4gICAgUmVzcG9uc2VDb29raWVzOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIF9jb29raWVzLlJlc3BvbnNlQ29va2llcztcbiAgICB9LFxuICAgIHN0cmluZ2lmeUNvb2tpZTogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBfY29va2llcy5zdHJpbmdpZnlDb29raWU7XG4gICAgfVxufSk7XG5jb25zdCBfY29va2llcyA9IHJlcXVpcmUoXCJuZXh0L2Rpc3QvY29tcGlsZWQvQGVkZ2UtcnVudGltZS9jb29raWVzXCIpO1xuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1jb29raWVzLmpzLm1hcCJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(pages-dir-node)/./node_modules/next/dist/server/web/spec-extension/cookies.js\n"); - -/***/ }), - -/***/ "(pages-dir-node)/./node_modules/next/dist/server/web/spec-extension/request.js": -/*!*********************************************************************!*\ - !*** ./node_modules/next/dist/server/web/spec-extension/request.js ***! - \*********************************************************************/ -/***/ ((__unused_webpack_module, exports, __webpack_require__) => { - -"use strict"; -eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n INTERNALS: function() {\n return INTERNALS;\n },\n NextRequest: function() {\n return NextRequest;\n }\n});\nconst _nexturl = __webpack_require__(/*! ../next-url */ \"(pages-dir-node)/./node_modules/next/dist/server/web/next-url.js\");\nconst _utils = __webpack_require__(/*! ../utils */ \"(pages-dir-node)/./node_modules/next/dist/server/web/utils.js\");\nconst _error = __webpack_require__(/*! ../error */ \"(pages-dir-node)/./node_modules/next/dist/server/web/error.js\");\nconst _cookies = __webpack_require__(/*! ./cookies */ \"(pages-dir-node)/./node_modules/next/dist/server/web/spec-extension/cookies.js\");\nconst INTERNALS = Symbol('internal request');\nclass NextRequest extends Request {\n constructor(input, init = {}){\n const url = typeof input !== 'string' && 'url' in input ? input.url : String(input);\n (0, _utils.validateURL)(url);\n // node Request instance requires duplex option when a body\n // is present or it errors, we don't handle this for\n // Request being passed in since it would have already\n // errored if this wasn't configured\n if (true) {\n if (init.body && init.duplex !== 'half') {\n init.duplex = 'half';\n }\n }\n if (input instanceof Request) super(input, init);\n else super(url, init);\n const nextUrl = new _nexturl.NextURL(url, {\n headers: (0, _utils.toNodeOutgoingHttpHeaders)(this.headers),\n nextConfig: init.nextConfig\n });\n this[INTERNALS] = {\n cookies: new _cookies.RequestCookies(this.headers),\n nextUrl,\n url: false ? 0 : nextUrl.toString()\n };\n }\n [Symbol.for('edge-runtime.inspect.custom')]() {\n return {\n cookies: this.cookies,\n nextUrl: this.nextUrl,\n url: this.url,\n // rest of props come from Request\n bodyUsed: this.bodyUsed,\n cache: this.cache,\n credentials: this.credentials,\n destination: this.destination,\n headers: Object.fromEntries(this.headers),\n integrity: this.integrity,\n keepalive: this.keepalive,\n method: this.method,\n mode: this.mode,\n redirect: this.redirect,\n referrer: this.referrer,\n referrerPolicy: this.referrerPolicy,\n signal: this.signal\n };\n }\n get cookies() {\n return this[INTERNALS].cookies;\n }\n get nextUrl() {\n return this[INTERNALS].nextUrl;\n }\n /**\n * @deprecated\n * `page` has been deprecated in favour of `URLPattern`.\n * Read more: https://nextjs.org/docs/messages/middleware-request-page\n */ get page() {\n throw new _error.RemovedPageError();\n }\n /**\n * @deprecated\n * `ua` has been removed in favour of \\`userAgent\\` function.\n * Read more: https://nextjs.org/docs/messages/middleware-parse-user-agent\n */ get ua() {\n throw new _error.RemovedUAError();\n }\n get url() {\n return this[INTERNALS].url;\n }\n}\n\n//# sourceMappingURL=request.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1ub2RlKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3Qvc2VydmVyL3dlYi9zcGVjLWV4dGVuc2lvbi9yZXF1ZXN0LmpzIiwibWFwcGluZ3MiOiJBQUFhO0FBQ2IsOENBQTZDO0FBQzdDO0FBQ0EsQ0FBQyxFQUFDO0FBQ0YsTUFBTSxDQUdMO0FBQ0Q7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0EsQ0FBQztBQUNELGlCQUFpQixtQkFBTyxDQUFDLHFGQUFhO0FBQ3RDLGVBQWUsbUJBQU8sQ0FBQywrRUFBVTtBQUNqQyxlQUFlLG1CQUFPLENBQUMsK0VBQVU7QUFDakMsaUJBQWlCLG1CQUFPLENBQUMsaUdBQVc7QUFDcEM7QUFDQTtBQUNBLGdDQUFnQztBQUNoQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxZQUFZLElBQW1DO0FBQy9DO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQSxpQkFBaUIsTUFBOEMsR0FBRyxDQUFHO0FBQ3JFO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUEiLCJzb3VyY2VzIjpbIkQ6XFxkb25neXVuLXByb2plY3RzXFx0d29cXG5vZGVfbW9kdWxlc1xcbmV4dFxcZGlzdFxcc2VydmVyXFx3ZWJcXHNwZWMtZXh0ZW5zaW9uXFxyZXF1ZXN0LmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7XG4gICAgdmFsdWU6IHRydWVcbn0pO1xuMCAmJiAobW9kdWxlLmV4cG9ydHMgPSB7XG4gICAgSU5URVJOQUxTOiBudWxsLFxuICAgIE5leHRSZXF1ZXN0OiBudWxsXG59KTtcbmZ1bmN0aW9uIF9leHBvcnQodGFyZ2V0LCBhbGwpIHtcbiAgICBmb3IodmFyIG5hbWUgaW4gYWxsKU9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0YXJnZXQsIG5hbWUsIHtcbiAgICAgICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICAgICAgZ2V0OiBhbGxbbmFtZV1cbiAgICB9KTtcbn1cbl9leHBvcnQoZXhwb3J0cywge1xuICAgIElOVEVSTkFMUzogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBJTlRFUk5BTFM7XG4gICAgfSxcbiAgICBOZXh0UmVxdWVzdDogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBOZXh0UmVxdWVzdDtcbiAgICB9XG59KTtcbmNvbnN0IF9uZXh0dXJsID0gcmVxdWlyZShcIi4uL25leHQtdXJsXCIpO1xuY29uc3QgX3V0aWxzID0gcmVxdWlyZShcIi4uL3V0aWxzXCIpO1xuY29uc3QgX2Vycm9yID0gcmVxdWlyZShcIi4uL2Vycm9yXCIpO1xuY29uc3QgX2Nvb2tpZXMgPSByZXF1aXJlKFwiLi9jb29raWVzXCIpO1xuY29uc3QgSU5URVJOQUxTID0gU3ltYm9sKCdpbnRlcm5hbCByZXF1ZXN0Jyk7XG5jbGFzcyBOZXh0UmVxdWVzdCBleHRlbmRzIFJlcXVlc3Qge1xuICAgIGNvbnN0cnVjdG9yKGlucHV0LCBpbml0ID0ge30pe1xuICAgICAgICBjb25zdCB1cmwgPSB0eXBlb2YgaW5wdXQgIT09ICdzdHJpbmcnICYmICd1cmwnIGluIGlucHV0ID8gaW5wdXQudXJsIDogU3RyaW5nKGlucHV0KTtcbiAgICAgICAgKDAsIF91dGlscy52YWxpZGF0ZVVSTCkodXJsKTtcbiAgICAgICAgLy8gbm9kZSBSZXF1ZXN0IGluc3RhbmNlIHJlcXVpcmVzIGR1cGxleCBvcHRpb24gd2hlbiBhIGJvZHlcbiAgICAgICAgLy8gaXMgcHJlc2VudCBvciBpdCBlcnJvcnMsIHdlIGRvbid0IGhhbmRsZSB0aGlzIGZvclxuICAgICAgICAvLyBSZXF1ZXN0IGJlaW5nIHBhc3NlZCBpbiBzaW5jZSBpdCB3b3VsZCBoYXZlIGFscmVhZHlcbiAgICAgICAgLy8gZXJyb3JlZCBpZiB0aGlzIHdhc24ndCBjb25maWd1cmVkXG4gICAgICAgIGlmIChwcm9jZXNzLmVudi5ORVhUX1JVTlRJTUUgIT09ICdlZGdlJykge1xuICAgICAgICAgICAgaWYgKGluaXQuYm9keSAmJiBpbml0LmR1cGxleCAhPT0gJ2hhbGYnKSB7XG4gICAgICAgICAgICAgICAgaW5pdC5kdXBsZXggPSAnaGFsZic7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGlucHV0IGluc3RhbmNlb2YgUmVxdWVzdCkgc3VwZXIoaW5wdXQsIGluaXQpO1xuICAgICAgICBlbHNlIHN1cGVyKHVybCwgaW5pdCk7XG4gICAgICAgIGNvbnN0IG5leHRVcmwgPSBuZXcgX25leHR1cmwuTmV4dFVSTCh1cmwsIHtcbiAgICAgICAgICAgIGhlYWRlcnM6ICgwLCBfdXRpbHMudG9Ob2RlT3V0Z29pbmdIdHRwSGVhZGVycykodGhpcy5oZWFkZXJzKSxcbiAgICAgICAgICAgIG5leHRDb25maWc6IGluaXQubmV4dENvbmZpZ1xuICAgICAgICB9KTtcbiAgICAgICAgdGhpc1tJTlRFUk5BTFNdID0ge1xuICAgICAgICAgICAgY29va2llczogbmV3IF9jb29raWVzLlJlcXVlc3RDb29raWVzKHRoaXMuaGVhZGVycyksXG4gICAgICAgICAgICBuZXh0VXJsLFxuICAgICAgICAgICAgdXJsOiBwcm9jZXNzLmVudi5fX05FWFRfTk9fTUlERExFV0FSRV9VUkxfTk9STUFMSVpFID8gdXJsIDogbmV4dFVybC50b1N0cmluZygpXG4gICAgICAgIH07XG4gICAgfVxuICAgIFtTeW1ib2wuZm9yKCdlZGdlLXJ1bnRpbWUuaW5zcGVjdC5jdXN0b20nKV0oKSB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBjb29raWVzOiB0aGlzLmNvb2tpZXMsXG4gICAgICAgICAgICBuZXh0VXJsOiB0aGlzLm5leHRVcmwsXG4gICAgICAgICAgICB1cmw6IHRoaXMudXJsLFxuICAgICAgICAgICAgLy8gcmVzdCBvZiBwcm9wcyBjb21lIGZyb20gUmVxdWVzdFxuICAgICAgICAgICAgYm9keVVzZWQ6IHRoaXMuYm9keVVzZWQsXG4gICAgICAgICAgICBjYWNoZTogdGhpcy5jYWNoZSxcbiAgICAgICAgICAgIGNyZWRlbnRpYWxzOiB0aGlzLmNyZWRlbnRpYWxzLFxuICAgICAgICAgICAgZGVzdGluYXRpb246IHRoaXMuZGVzdGluYXRpb24sXG4gICAgICAgICAgICBoZWFkZXJzOiBPYmplY3QuZnJvbUVudHJpZXModGhpcy5oZWFkZXJzKSxcbiAgICAgICAgICAgIGludGVncml0eTogdGhpcy5pbnRlZ3JpdHksXG4gICAgICAgICAgICBrZWVwYWxpdmU6IHRoaXMua2VlcGFsaXZlLFxuICAgICAgICAgICAgbWV0aG9kOiB0aGlzLm1ldGhvZCxcbiAgICAgICAgICAgIG1vZGU6IHRoaXMubW9kZSxcbiAgICAgICAgICAgIHJlZGlyZWN0OiB0aGlzLnJlZGlyZWN0LFxuICAgICAgICAgICAgcmVmZXJyZXI6IHRoaXMucmVmZXJyZXIsXG4gICAgICAgICAgICByZWZlcnJlclBvbGljeTogdGhpcy5yZWZlcnJlclBvbGljeSxcbiAgICAgICAgICAgIHNpZ25hbDogdGhpcy5zaWduYWxcbiAgICAgICAgfTtcbiAgICB9XG4gICAgZ2V0IGNvb2tpZXMoKSB7XG4gICAgICAgIHJldHVybiB0aGlzW0lOVEVSTkFMU10uY29va2llcztcbiAgICB9XG4gICAgZ2V0IG5leHRVcmwoKSB7XG4gICAgICAgIHJldHVybiB0aGlzW0lOVEVSTkFMU10ubmV4dFVybDtcbiAgICB9XG4gICAgLyoqXG4gICAqIEBkZXByZWNhdGVkXG4gICAqIGBwYWdlYCBoYXMgYmVlbiBkZXByZWNhdGVkIGluIGZhdm91ciBvZiBgVVJMUGF0dGVybmAuXG4gICAqIFJlYWQgbW9yZTogaHR0cHM6Ly9uZXh0anMub3JnL2RvY3MvbWVzc2FnZXMvbWlkZGxld2FyZS1yZXF1ZXN0LXBhZ2VcbiAgICovIGdldCBwYWdlKCkge1xuICAgICAgICB0aHJvdyBuZXcgX2Vycm9yLlJlbW92ZWRQYWdlRXJyb3IoKTtcbiAgICB9XG4gICAgLyoqXG4gICAqIEBkZXByZWNhdGVkXG4gICAqIGB1YWAgaGFzIGJlZW4gcmVtb3ZlZCBpbiBmYXZvdXIgb2YgXFxgdXNlckFnZW50XFxgIGZ1bmN0aW9uLlxuICAgKiBSZWFkIG1vcmU6IGh0dHBzOi8vbmV4dGpzLm9yZy9kb2NzL21lc3NhZ2VzL21pZGRsZXdhcmUtcGFyc2UtdXNlci1hZ2VudFxuICAgKi8gZ2V0IHVhKCkge1xuICAgICAgICB0aHJvdyBuZXcgX2Vycm9yLlJlbW92ZWRVQUVycm9yKCk7XG4gICAgfVxuICAgIGdldCB1cmwoKSB7XG4gICAgICAgIHJldHVybiB0aGlzW0lOVEVSTkFMU10udXJsO1xuICAgIH1cbn1cblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9cmVxdWVzdC5qcy5tYXAiXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(pages-dir-node)/./node_modules/next/dist/server/web/spec-extension/request.js\n"); - -/***/ }), - -/***/ "(pages-dir-node)/./node_modules/next/dist/server/web/utils.js": -/*!****************************************************!*\ - !*** ./node_modules/next/dist/server/web/utils.js ***! - \****************************************************/ -/***/ ((__unused_webpack_module, exports, __webpack_require__) => { - -"use strict"; -eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n fromNodeOutgoingHttpHeaders: function() {\n return fromNodeOutgoingHttpHeaders;\n },\n normalizeNextQueryParam: function() {\n return normalizeNextQueryParam;\n },\n splitCookiesString: function() {\n return splitCookiesString;\n },\n toNodeOutgoingHttpHeaders: function() {\n return toNodeOutgoingHttpHeaders;\n },\n validateURL: function() {\n return validateURL;\n }\n});\nconst _constants = __webpack_require__(/*! ../../lib/constants */ \"(pages-dir-node)/./node_modules/next/dist/lib/constants.js\");\nfunction fromNodeOutgoingHttpHeaders(nodeHeaders) {\n const headers = new Headers();\n for (let [key, value] of Object.entries(nodeHeaders)){\n const values = Array.isArray(value) ? value : [\n value\n ];\n for (let v of values){\n if (typeof v === 'undefined') continue;\n if (typeof v === 'number') {\n v = v.toString();\n }\n headers.append(key, v);\n }\n }\n return headers;\n}\nfunction splitCookiesString(cookiesString) {\n var cookiesStrings = [];\n var pos = 0;\n var start;\n var ch;\n var lastComma;\n var nextStart;\n var cookiesSeparatorFound;\n function skipWhitespace() {\n while(pos < cookiesString.length && /\\s/.test(cookiesString.charAt(pos))){\n pos += 1;\n }\n return pos < cookiesString.length;\n }\n function notSpecialChar() {\n ch = cookiesString.charAt(pos);\n return ch !== '=' && ch !== ';' && ch !== ',';\n }\n while(pos < cookiesString.length){\n start = pos;\n cookiesSeparatorFound = false;\n while(skipWhitespace()){\n ch = cookiesString.charAt(pos);\n if (ch === ',') {\n // ',' is a cookie separator if we have later first '=', not ';' or ','\n lastComma = pos;\n pos += 1;\n skipWhitespace();\n nextStart = pos;\n while(pos < cookiesString.length && notSpecialChar()){\n pos += 1;\n }\n // currently special character\n if (pos < cookiesString.length && cookiesString.charAt(pos) === '=') {\n // we found cookies separator\n cookiesSeparatorFound = true;\n // pos is inside the next cookie, so back up and return it.\n pos = nextStart;\n cookiesStrings.push(cookiesString.substring(start, lastComma));\n start = pos;\n } else {\n // in param ',' or param separator ';',\n // we continue from that comma\n pos = lastComma + 1;\n }\n } else {\n pos += 1;\n }\n }\n if (!cookiesSeparatorFound || pos >= cookiesString.length) {\n cookiesStrings.push(cookiesString.substring(start, cookiesString.length));\n }\n }\n return cookiesStrings;\n}\nfunction toNodeOutgoingHttpHeaders(headers) {\n const nodeHeaders = {};\n const cookies = [];\n if (headers) {\n for (const [key, value] of headers.entries()){\n if (key.toLowerCase() === 'set-cookie') {\n // We may have gotten a comma joined string of cookies, or multiple\n // set-cookie headers. We need to merge them into one header array\n // to represent all the cookies.\n cookies.push(...splitCookiesString(value));\n nodeHeaders[key] = cookies.length === 1 ? cookies[0] : cookies;\n } else {\n nodeHeaders[key] = value;\n }\n }\n }\n return nodeHeaders;\n}\nfunction validateURL(url) {\n try {\n return String(new URL(String(url)));\n } catch (error) {\n throw Object.defineProperty(new Error(`URL is malformed \"${String(url)}\". Please use only absolute URLs - https://nextjs.org/docs/messages/middleware-relative-urls`, {\n cause: error\n }), \"__NEXT_ERROR_CODE\", {\n value: \"E61\",\n enumerable: false,\n configurable: true\n });\n }\n}\nfunction normalizeNextQueryParam(key) {\n const prefixes = [\n _constants.NEXT_QUERY_PARAM_PREFIX,\n _constants.NEXT_INTERCEPTION_MARKER_PREFIX\n ];\n for (const prefix of prefixes){\n if (key !== prefix && key.startsWith(prefix)) {\n return key.substring(prefix.length);\n }\n }\n return null;\n}\n\n//# sourceMappingURL=utils.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1ub2RlKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3Qvc2VydmVyL3dlYi91dGlscy5qcyIsIm1hcHBpbmdzIjoiQUFBYTtBQUNiLDhDQUE2QztBQUM3QztBQUNBLENBQUMsRUFBQztBQUNGLE1BQU0sQ0FNTDtBQUNEO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBLENBQUM7QUFDRCxtQkFBbUIsbUJBQU8sQ0FBQyx1RkFBcUI7QUFDaEQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHNDQUFzQztBQUN0QztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLCtFQUErRTtBQUMvRTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxrQkFBa0I7QUFDbEIseURBQXlEO0FBQ3pEO0FBQ0E7QUFDQTtBQUNBLGNBQWM7QUFDZDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsY0FBYztBQUNkO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE1BQU07QUFDTixtRUFBbUUsWUFBWTtBQUMvRTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQSIsInNvdXJjZXMiOlsiRDpcXGRvbmd5dW4tcHJvamVjdHNcXHR3b1xcbm9kZV9tb2R1bGVzXFxuZXh0XFxkaXN0XFxzZXJ2ZXJcXHdlYlxcdXRpbHMuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHtcbiAgICB2YWx1ZTogdHJ1ZVxufSk7XG4wICYmIChtb2R1bGUuZXhwb3J0cyA9IHtcbiAgICBmcm9tTm9kZU91dGdvaW5nSHR0cEhlYWRlcnM6IG51bGwsXG4gICAgbm9ybWFsaXplTmV4dFF1ZXJ5UGFyYW06IG51bGwsXG4gICAgc3BsaXRDb29raWVzU3RyaW5nOiBudWxsLFxuICAgIHRvTm9kZU91dGdvaW5nSHR0cEhlYWRlcnM6IG51bGwsXG4gICAgdmFsaWRhdGVVUkw6IG51bGxcbn0pO1xuZnVuY3Rpb24gX2V4cG9ydCh0YXJnZXQsIGFsbCkge1xuICAgIGZvcih2YXIgbmFtZSBpbiBhbGwpT2JqZWN0LmRlZmluZVByb3BlcnR5KHRhcmdldCwgbmFtZSwge1xuICAgICAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgICAgICBnZXQ6IGFsbFtuYW1lXVxuICAgIH0pO1xufVxuX2V4cG9ydChleHBvcnRzLCB7XG4gICAgZnJvbU5vZGVPdXRnb2luZ0h0dHBIZWFkZXJzOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIGZyb21Ob2RlT3V0Z29pbmdIdHRwSGVhZGVycztcbiAgICB9LFxuICAgIG5vcm1hbGl6ZU5leHRRdWVyeVBhcmFtOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIG5vcm1hbGl6ZU5leHRRdWVyeVBhcmFtO1xuICAgIH0sXG4gICAgc3BsaXRDb29raWVzU3RyaW5nOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIHNwbGl0Q29va2llc1N0cmluZztcbiAgICB9LFxuICAgIHRvTm9kZU91dGdvaW5nSHR0cEhlYWRlcnM6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gdG9Ob2RlT3V0Z29pbmdIdHRwSGVhZGVycztcbiAgICB9LFxuICAgIHZhbGlkYXRlVVJMOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIHZhbGlkYXRlVVJMO1xuICAgIH1cbn0pO1xuY29uc3QgX2NvbnN0YW50cyA9IHJlcXVpcmUoXCIuLi8uLi9saWIvY29uc3RhbnRzXCIpO1xuZnVuY3Rpb24gZnJvbU5vZGVPdXRnb2luZ0h0dHBIZWFkZXJzKG5vZGVIZWFkZXJzKSB7XG4gICAgY29uc3QgaGVhZGVycyA9IG5ldyBIZWFkZXJzKCk7XG4gICAgZm9yIChsZXQgW2tleSwgdmFsdWVdIG9mIE9iamVjdC5lbnRyaWVzKG5vZGVIZWFkZXJzKSl7XG4gICAgICAgIGNvbnN0IHZhbHVlcyA9IEFycmF5LmlzQXJyYXkodmFsdWUpID8gdmFsdWUgOiBbXG4gICAgICAgICAgICB2YWx1ZVxuICAgICAgICBdO1xuICAgICAgICBmb3IgKGxldCB2IG9mIHZhbHVlcyl7XG4gICAgICAgICAgICBpZiAodHlwZW9mIHYgPT09ICd1bmRlZmluZWQnKSBjb250aW51ZTtcbiAgICAgICAgICAgIGlmICh0eXBlb2YgdiA9PT0gJ251bWJlcicpIHtcbiAgICAgICAgICAgICAgICB2ID0gdi50b1N0cmluZygpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaGVhZGVycy5hcHBlbmQoa2V5LCB2KTtcbiAgICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gaGVhZGVycztcbn1cbmZ1bmN0aW9uIHNwbGl0Q29va2llc1N0cmluZyhjb29raWVzU3RyaW5nKSB7XG4gICAgdmFyIGNvb2tpZXNTdHJpbmdzID0gW107XG4gICAgdmFyIHBvcyA9IDA7XG4gICAgdmFyIHN0YXJ0O1xuICAgIHZhciBjaDtcbiAgICB2YXIgbGFzdENvbW1hO1xuICAgIHZhciBuZXh0U3RhcnQ7XG4gICAgdmFyIGNvb2tpZXNTZXBhcmF0b3JGb3VuZDtcbiAgICBmdW5jdGlvbiBza2lwV2hpdGVzcGFjZSgpIHtcbiAgICAgICAgd2hpbGUocG9zIDwgY29va2llc1N0cmluZy5sZW5ndGggJiYgL1xccy8udGVzdChjb29raWVzU3RyaW5nLmNoYXJBdChwb3MpKSl7XG4gICAgICAgICAgICBwb3MgKz0gMTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gcG9zIDwgY29va2llc1N0cmluZy5sZW5ndGg7XG4gICAgfVxuICAgIGZ1bmN0aW9uIG5vdFNwZWNpYWxDaGFyKCkge1xuICAgICAgICBjaCA9IGNvb2tpZXNTdHJpbmcuY2hhckF0KHBvcyk7XG4gICAgICAgIHJldHVybiBjaCAhPT0gJz0nICYmIGNoICE9PSAnOycgJiYgY2ggIT09ICcsJztcbiAgICB9XG4gICAgd2hpbGUocG9zIDwgY29va2llc1N0cmluZy5sZW5ndGgpe1xuICAgICAgICBzdGFydCA9IHBvcztcbiAgICAgICAgY29va2llc1NlcGFyYXRvckZvdW5kID0gZmFsc2U7XG4gICAgICAgIHdoaWxlKHNraXBXaGl0ZXNwYWNlKCkpe1xuICAgICAgICAgICAgY2ggPSBjb29raWVzU3RyaW5nLmNoYXJBdChwb3MpO1xuICAgICAgICAgICAgaWYgKGNoID09PSAnLCcpIHtcbiAgICAgICAgICAgICAgICAvLyAnLCcgaXMgYSBjb29raWUgc2VwYXJhdG9yIGlmIHdlIGhhdmUgbGF0ZXIgZmlyc3QgJz0nLCBub3QgJzsnIG9yICcsJ1xuICAgICAgICAgICAgICAgIGxhc3RDb21tYSA9IHBvcztcbiAgICAgICAgICAgICAgICBwb3MgKz0gMTtcbiAgICAgICAgICAgICAgICBza2lwV2hpdGVzcGFjZSgpO1xuICAgICAgICAgICAgICAgIG5leHRTdGFydCA9IHBvcztcbiAgICAgICAgICAgICAgICB3aGlsZShwb3MgPCBjb29raWVzU3RyaW5nLmxlbmd0aCAmJiBub3RTcGVjaWFsQ2hhcigpKXtcbiAgICAgICAgICAgICAgICAgICAgcG9zICs9IDE7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIC8vIGN1cnJlbnRseSBzcGVjaWFsIGNoYXJhY3RlclxuICAgICAgICAgICAgICAgIGlmIChwb3MgPCBjb29raWVzU3RyaW5nLmxlbmd0aCAmJiBjb29raWVzU3RyaW5nLmNoYXJBdChwb3MpID09PSAnPScpIHtcbiAgICAgICAgICAgICAgICAgICAgLy8gd2UgZm91bmQgY29va2llcyBzZXBhcmF0b3JcbiAgICAgICAgICAgICAgICAgICAgY29va2llc1NlcGFyYXRvckZvdW5kID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICAgICAgLy8gcG9zIGlzIGluc2lkZSB0aGUgbmV4dCBjb29raWUsIHNvIGJhY2sgdXAgYW5kIHJldHVybiBpdC5cbiAgICAgICAgICAgICAgICAgICAgcG9zID0gbmV4dFN0YXJ0O1xuICAgICAgICAgICAgICAgICAgICBjb29raWVzU3RyaW5ncy5wdXNoKGNvb2tpZXNTdHJpbmcuc3Vic3RyaW5nKHN0YXJ0LCBsYXN0Q29tbWEpKTtcbiAgICAgICAgICAgICAgICAgICAgc3RhcnQgPSBwb3M7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgLy8gaW4gcGFyYW0gJywnIG9yIHBhcmFtIHNlcGFyYXRvciAnOycsXG4gICAgICAgICAgICAgICAgICAgIC8vIHdlIGNvbnRpbnVlIGZyb20gdGhhdCBjb21tYVxuICAgICAgICAgICAgICAgICAgICBwb3MgPSBsYXN0Q29tbWEgKyAxO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgcG9zICs9IDE7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgaWYgKCFjb29raWVzU2VwYXJhdG9yRm91bmQgfHwgcG9zID49IGNvb2tpZXNTdHJpbmcubGVuZ3RoKSB7XG4gICAgICAgICAgICBjb29raWVzU3RyaW5ncy5wdXNoKGNvb2tpZXNTdHJpbmcuc3Vic3RyaW5nKHN0YXJ0LCBjb29raWVzU3RyaW5nLmxlbmd0aCkpO1xuICAgICAgICB9XG4gICAgfVxuICAgIHJldHVybiBjb29raWVzU3RyaW5ncztcbn1cbmZ1bmN0aW9uIHRvTm9kZU91dGdvaW5nSHR0cEhlYWRlcnMoaGVhZGVycykge1xuICAgIGNvbnN0IG5vZGVIZWFkZXJzID0ge307XG4gICAgY29uc3QgY29va2llcyA9IFtdO1xuICAgIGlmIChoZWFkZXJzKSB7XG4gICAgICAgIGZvciAoY29uc3QgW2tleSwgdmFsdWVdIG9mIGhlYWRlcnMuZW50cmllcygpKXtcbiAgICAgICAgICAgIGlmIChrZXkudG9Mb3dlckNhc2UoKSA9PT0gJ3NldC1jb29raWUnKSB7XG4gICAgICAgICAgICAgICAgLy8gV2UgbWF5IGhhdmUgZ290dGVuIGEgY29tbWEgam9pbmVkIHN0cmluZyBvZiBjb29raWVzLCBvciBtdWx0aXBsZVxuICAgICAgICAgICAgICAgIC8vIHNldC1jb29raWUgaGVhZGVycy4gV2UgbmVlZCB0byBtZXJnZSB0aGVtIGludG8gb25lIGhlYWRlciBhcnJheVxuICAgICAgICAgICAgICAgIC8vIHRvIHJlcHJlc2VudCBhbGwgdGhlIGNvb2tpZXMuXG4gICAgICAgICAgICAgICAgY29va2llcy5wdXNoKC4uLnNwbGl0Q29va2llc1N0cmluZyh2YWx1ZSkpO1xuICAgICAgICAgICAgICAgIG5vZGVIZWFkZXJzW2tleV0gPSBjb29raWVzLmxlbmd0aCA9PT0gMSA/IGNvb2tpZXNbMF0gOiBjb29raWVzO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBub2RlSGVhZGVyc1trZXldID0gdmFsdWU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIG5vZGVIZWFkZXJzO1xufVxuZnVuY3Rpb24gdmFsaWRhdGVVUkwodXJsKSB7XG4gICAgdHJ5IHtcbiAgICAgICAgcmV0dXJuIFN0cmluZyhuZXcgVVJMKFN0cmluZyh1cmwpKSk7XG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgdGhyb3cgT2JqZWN0LmRlZmluZVByb3BlcnR5KG5ldyBFcnJvcihgVVJMIGlzIG1hbGZvcm1lZCBcIiR7U3RyaW5nKHVybCl9XCIuIFBsZWFzZSB1c2Ugb25seSBhYnNvbHV0ZSBVUkxzIC0gaHR0cHM6Ly9uZXh0anMub3JnL2RvY3MvbWVzc2FnZXMvbWlkZGxld2FyZS1yZWxhdGl2ZS11cmxzYCwge1xuICAgICAgICAgICAgY2F1c2U6IGVycm9yXG4gICAgICAgIH0pLCBcIl9fTkVYVF9FUlJPUl9DT0RFXCIsIHtcbiAgICAgICAgICAgIHZhbHVlOiBcIkU2MVwiLFxuICAgICAgICAgICAgZW51bWVyYWJsZTogZmFsc2UsXG4gICAgICAgICAgICBjb25maWd1cmFibGU6IHRydWVcbiAgICAgICAgfSk7XG4gICAgfVxufVxuZnVuY3Rpb24gbm9ybWFsaXplTmV4dFF1ZXJ5UGFyYW0oa2V5KSB7XG4gICAgY29uc3QgcHJlZml4ZXMgPSBbXG4gICAgICAgIF9jb25zdGFudHMuTkVYVF9RVUVSWV9QQVJBTV9QUkVGSVgsXG4gICAgICAgIF9jb25zdGFudHMuTkVYVF9JTlRFUkNFUFRJT05fTUFSS0VSX1BSRUZJWFxuICAgIF07XG4gICAgZm9yIChjb25zdCBwcmVmaXggb2YgcHJlZml4ZXMpe1xuICAgICAgICBpZiAoa2V5ICE9PSBwcmVmaXggJiYga2V5LnN0YXJ0c1dpdGgocHJlZml4KSkge1xuICAgICAgICAgICAgcmV0dXJuIGtleS5zdWJzdHJpbmcocHJlZml4Lmxlbmd0aCk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIG51bGw7XG59XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPXV0aWxzLmpzLm1hcCJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(pages-dir-node)/./node_modules/next/dist/server/web/utils.js\n"); - -/***/ }), - -/***/ "(pages-dir-node)/./node_modules/next/dist/shared/lib/amp-mode.js": -/*!*******************************************************!*\ - !*** ./node_modules/next/dist/shared/lib/amp-mode.js ***! - \*******************************************************/ -/***/ ((__unused_webpack_module, exports) => { - -"use strict"; -eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"isInAmpMode\", ({\n enumerable: true,\n get: function() {\n return isInAmpMode;\n }\n}));\nfunction isInAmpMode(param) {\n let { ampFirst = false, hybrid = false, hasQuery = false } = param === void 0 ? {} : param;\n return ampFirst || hybrid && hasQuery;\n} //# sourceMappingURL=amp-mode.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1ub2RlKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3Qvc2hhcmVkL2xpYi9hbXAtbW9kZS5qcyIsIm1hcHBpbmdzIjoiOzs7OytDQUFnQkE7OztlQUFBQTs7O0FBQVQsU0FBU0EsWUFBWTtJQUFBLE1BQzFCQyxXQUFXLEtBQUssRUFDaEJDLFNBQVMsS0FBSyxFQUNkQyxXQUFXLEtBQUssRUFDakIsR0FKMkIsbUJBSXhCLENBQUMsSUFKdUI7SUFLMUIsT0FBT0YsWUFBYUMsVUFBVUM7QUFDaEMiLCJzb3VyY2VzIjpbIkQ6XFxzcmNcXHNoYXJlZFxcbGliXFxhbXAtbW9kZS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgZnVuY3Rpb24gaXNJbkFtcE1vZGUoe1xuICBhbXBGaXJzdCA9IGZhbHNlLFxuICBoeWJyaWQgPSBmYWxzZSxcbiAgaGFzUXVlcnkgPSBmYWxzZSxcbn0gPSB7fSk6IGJvb2xlYW4ge1xuICByZXR1cm4gYW1wRmlyc3QgfHwgKGh5YnJpZCAmJiBoYXNRdWVyeSlcbn1cbiJdLCJuYW1lcyI6WyJpc0luQW1wTW9kZSIsImFtcEZpcnN0IiwiaHlicmlkIiwiaGFzUXVlcnkiXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(pages-dir-node)/./node_modules/next/dist/shared/lib/amp-mode.js\n"); - -/***/ }), - -/***/ "(pages-dir-node)/./node_modules/next/dist/shared/lib/constants.js": -/*!********************************************************!*\ - !*** ./node_modules/next/dist/shared/lib/constants.js ***! - \********************************************************/ -/***/ ((module, exports, __webpack_require__) => { - -"use strict"; -eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n APP_BUILD_MANIFEST: function() {\n return APP_BUILD_MANIFEST;\n },\n APP_CLIENT_INTERNALS: function() {\n return APP_CLIENT_INTERNALS;\n },\n APP_PATHS_MANIFEST: function() {\n return APP_PATHS_MANIFEST;\n },\n APP_PATH_ROUTES_MANIFEST: function() {\n return APP_PATH_ROUTES_MANIFEST;\n },\n BARREL_OPTIMIZATION_PREFIX: function() {\n return BARREL_OPTIMIZATION_PREFIX;\n },\n BLOCKED_PAGES: function() {\n return BLOCKED_PAGES;\n },\n BUILD_ID_FILE: function() {\n return BUILD_ID_FILE;\n },\n BUILD_MANIFEST: function() {\n return BUILD_MANIFEST;\n },\n CLIENT_PUBLIC_FILES_PATH: function() {\n return CLIENT_PUBLIC_FILES_PATH;\n },\n CLIENT_REFERENCE_MANIFEST: function() {\n return CLIENT_REFERENCE_MANIFEST;\n },\n CLIENT_STATIC_FILES_PATH: function() {\n return CLIENT_STATIC_FILES_PATH;\n },\n CLIENT_STATIC_FILES_RUNTIME_AMP: function() {\n return CLIENT_STATIC_FILES_RUNTIME_AMP;\n },\n CLIENT_STATIC_FILES_RUNTIME_MAIN: function() {\n return CLIENT_STATIC_FILES_RUNTIME_MAIN;\n },\n CLIENT_STATIC_FILES_RUNTIME_MAIN_APP: function() {\n return CLIENT_STATIC_FILES_RUNTIME_MAIN_APP;\n },\n CLIENT_STATIC_FILES_RUNTIME_POLYFILLS: function() {\n return CLIENT_STATIC_FILES_RUNTIME_POLYFILLS;\n },\n CLIENT_STATIC_FILES_RUNTIME_POLYFILLS_SYMBOL: function() {\n return CLIENT_STATIC_FILES_RUNTIME_POLYFILLS_SYMBOL;\n },\n CLIENT_STATIC_FILES_RUNTIME_REACT_REFRESH: function() {\n return CLIENT_STATIC_FILES_RUNTIME_REACT_REFRESH;\n },\n CLIENT_STATIC_FILES_RUNTIME_WEBPACK: function() {\n return CLIENT_STATIC_FILES_RUNTIME_WEBPACK;\n },\n COMPILER_INDEXES: function() {\n return COMPILER_INDEXES;\n },\n COMPILER_NAMES: function() {\n return COMPILER_NAMES;\n },\n CONFIG_FILES: function() {\n return CONFIG_FILES;\n },\n DEFAULT_RUNTIME_WEBPACK: function() {\n return DEFAULT_RUNTIME_WEBPACK;\n },\n DEFAULT_SANS_SERIF_FONT: function() {\n return DEFAULT_SANS_SERIF_FONT;\n },\n DEFAULT_SERIF_FONT: function() {\n return DEFAULT_SERIF_FONT;\n },\n DEV_CLIENT_MIDDLEWARE_MANIFEST: function() {\n return DEV_CLIENT_MIDDLEWARE_MANIFEST;\n },\n DEV_CLIENT_PAGES_MANIFEST: function() {\n return DEV_CLIENT_PAGES_MANIFEST;\n },\n DYNAMIC_CSS_MANIFEST: function() {\n return DYNAMIC_CSS_MANIFEST;\n },\n EDGE_RUNTIME_WEBPACK: function() {\n return EDGE_RUNTIME_WEBPACK;\n },\n EDGE_UNSUPPORTED_NODE_APIS: function() {\n return EDGE_UNSUPPORTED_NODE_APIS;\n },\n EXPORT_DETAIL: function() {\n return EXPORT_DETAIL;\n },\n EXPORT_MARKER: function() {\n return EXPORT_MARKER;\n },\n FUNCTIONS_CONFIG_MANIFEST: function() {\n return FUNCTIONS_CONFIG_MANIFEST;\n },\n IMAGES_MANIFEST: function() {\n return IMAGES_MANIFEST;\n },\n INTERCEPTION_ROUTE_REWRITE_MANIFEST: function() {\n return INTERCEPTION_ROUTE_REWRITE_MANIFEST;\n },\n MIDDLEWARE_BUILD_MANIFEST: function() {\n return MIDDLEWARE_BUILD_MANIFEST;\n },\n MIDDLEWARE_MANIFEST: function() {\n return MIDDLEWARE_MANIFEST;\n },\n MIDDLEWARE_REACT_LOADABLE_MANIFEST: function() {\n return MIDDLEWARE_REACT_LOADABLE_MANIFEST;\n },\n MODERN_BROWSERSLIST_TARGET: function() {\n return _modernbrowserslisttarget.default;\n },\n NEXT_BUILTIN_DOCUMENT: function() {\n return NEXT_BUILTIN_DOCUMENT;\n },\n NEXT_FONT_MANIFEST: function() {\n return NEXT_FONT_MANIFEST;\n },\n PAGES_MANIFEST: function() {\n return PAGES_MANIFEST;\n },\n PHASE_DEVELOPMENT_SERVER: function() {\n return PHASE_DEVELOPMENT_SERVER;\n },\n PHASE_EXPORT: function() {\n return PHASE_EXPORT;\n },\n PHASE_INFO: function() {\n return PHASE_INFO;\n },\n PHASE_PRODUCTION_BUILD: function() {\n return PHASE_PRODUCTION_BUILD;\n },\n PHASE_PRODUCTION_SERVER: function() {\n return PHASE_PRODUCTION_SERVER;\n },\n PHASE_TEST: function() {\n return PHASE_TEST;\n },\n PRERENDER_MANIFEST: function() {\n return PRERENDER_MANIFEST;\n },\n REACT_LOADABLE_MANIFEST: function() {\n return REACT_LOADABLE_MANIFEST;\n },\n ROUTES_MANIFEST: function() {\n return ROUTES_MANIFEST;\n },\n RSC_MODULE_TYPES: function() {\n return RSC_MODULE_TYPES;\n },\n SERVER_DIRECTORY: function() {\n return SERVER_DIRECTORY;\n },\n SERVER_FILES_MANIFEST: function() {\n return SERVER_FILES_MANIFEST;\n },\n SERVER_PROPS_ID: function() {\n return SERVER_PROPS_ID;\n },\n SERVER_REFERENCE_MANIFEST: function() {\n return SERVER_REFERENCE_MANIFEST;\n },\n STATIC_PROPS_ID: function() {\n return STATIC_PROPS_ID;\n },\n STATIC_STATUS_PAGES: function() {\n return STATIC_STATUS_PAGES;\n },\n STRING_LITERAL_DROP_BUNDLE: function() {\n return STRING_LITERAL_DROP_BUNDLE;\n },\n SUBRESOURCE_INTEGRITY_MANIFEST: function() {\n return SUBRESOURCE_INTEGRITY_MANIFEST;\n },\n SYSTEM_ENTRYPOINTS: function() {\n return SYSTEM_ENTRYPOINTS;\n },\n TRACE_OUTPUT_VERSION: function() {\n return TRACE_OUTPUT_VERSION;\n },\n TURBOPACK_CLIENT_MIDDLEWARE_MANIFEST: function() {\n return TURBOPACK_CLIENT_MIDDLEWARE_MANIFEST;\n },\n TURBO_TRACE_DEFAULT_MEMORY_LIMIT: function() {\n return TURBO_TRACE_DEFAULT_MEMORY_LIMIT;\n },\n UNDERSCORE_NOT_FOUND_ROUTE: function() {\n return UNDERSCORE_NOT_FOUND_ROUTE;\n },\n UNDERSCORE_NOT_FOUND_ROUTE_ENTRY: function() {\n return UNDERSCORE_NOT_FOUND_ROUTE_ENTRY;\n },\n WEBPACK_STATS: function() {\n return WEBPACK_STATS;\n }\n});\nconst _interop_require_default = __webpack_require__(/*! @swc/helpers/_/_interop_require_default */ \"(pages-dir-node)/./node_modules/@swc/helpers/cjs/_interop_require_default.cjs\");\nconst _modernbrowserslisttarget = /*#__PURE__*/ _interop_require_default._(__webpack_require__(/*! ./modern-browserslist-target */ \"(pages-dir-node)/./node_modules/next/dist/shared/lib/modern-browserslist-target.js\"));\nconst COMPILER_NAMES = {\n client: 'client',\n server: 'server',\n edgeServer: 'edge-server'\n};\nconst COMPILER_INDEXES = {\n [COMPILER_NAMES.client]: 0,\n [COMPILER_NAMES.server]: 1,\n [COMPILER_NAMES.edgeServer]: 2\n};\nconst UNDERSCORE_NOT_FOUND_ROUTE = '/_not-found';\nconst UNDERSCORE_NOT_FOUND_ROUTE_ENTRY = \"\" + UNDERSCORE_NOT_FOUND_ROUTE + \"/page\";\nconst PHASE_EXPORT = 'phase-export';\nconst PHASE_PRODUCTION_BUILD = 'phase-production-build';\nconst PHASE_PRODUCTION_SERVER = 'phase-production-server';\nconst PHASE_DEVELOPMENT_SERVER = 'phase-development-server';\nconst PHASE_TEST = 'phase-test';\nconst PHASE_INFO = 'phase-info';\nconst PAGES_MANIFEST = 'pages-manifest.json';\nconst WEBPACK_STATS = 'webpack-stats.json';\nconst APP_PATHS_MANIFEST = 'app-paths-manifest.json';\nconst APP_PATH_ROUTES_MANIFEST = 'app-path-routes-manifest.json';\nconst BUILD_MANIFEST = 'build-manifest.json';\nconst APP_BUILD_MANIFEST = 'app-build-manifest.json';\nconst FUNCTIONS_CONFIG_MANIFEST = 'functions-config-manifest.json';\nconst SUBRESOURCE_INTEGRITY_MANIFEST = 'subresource-integrity-manifest';\nconst NEXT_FONT_MANIFEST = 'next-font-manifest';\nconst EXPORT_MARKER = 'export-marker.json';\nconst EXPORT_DETAIL = 'export-detail.json';\nconst PRERENDER_MANIFEST = 'prerender-manifest.json';\nconst ROUTES_MANIFEST = 'routes-manifest.json';\nconst IMAGES_MANIFEST = 'images-manifest.json';\nconst SERVER_FILES_MANIFEST = 'required-server-files.json';\nconst DEV_CLIENT_PAGES_MANIFEST = '_devPagesManifest.json';\nconst MIDDLEWARE_MANIFEST = 'middleware-manifest.json';\nconst TURBOPACK_CLIENT_MIDDLEWARE_MANIFEST = '_clientMiddlewareManifest.json';\nconst DEV_CLIENT_MIDDLEWARE_MANIFEST = '_devMiddlewareManifest.json';\nconst REACT_LOADABLE_MANIFEST = 'react-loadable-manifest.json';\nconst SERVER_DIRECTORY = 'server';\nconst CONFIG_FILES = [\n 'next.config.js',\n 'next.config.mjs',\n 'next.config.ts'\n];\nconst BUILD_ID_FILE = 'BUILD_ID';\nconst BLOCKED_PAGES = [\n '/_document',\n '/_app',\n '/_error'\n];\nconst CLIENT_PUBLIC_FILES_PATH = 'public';\nconst CLIENT_STATIC_FILES_PATH = 'static';\nconst STRING_LITERAL_DROP_BUNDLE = '__NEXT_DROP_CLIENT_FILE__';\nconst NEXT_BUILTIN_DOCUMENT = '__NEXT_BUILTIN_DOCUMENT__';\nconst BARREL_OPTIMIZATION_PREFIX = '__barrel_optimize__';\nconst CLIENT_REFERENCE_MANIFEST = 'client-reference-manifest';\nconst SERVER_REFERENCE_MANIFEST = 'server-reference-manifest';\nconst MIDDLEWARE_BUILD_MANIFEST = 'middleware-build-manifest';\nconst MIDDLEWARE_REACT_LOADABLE_MANIFEST = 'middleware-react-loadable-manifest';\nconst INTERCEPTION_ROUTE_REWRITE_MANIFEST = 'interception-route-rewrite-manifest';\nconst DYNAMIC_CSS_MANIFEST = 'dynamic-css-manifest';\nconst CLIENT_STATIC_FILES_RUNTIME_MAIN = \"main\";\nconst CLIENT_STATIC_FILES_RUNTIME_MAIN_APP = \"\" + CLIENT_STATIC_FILES_RUNTIME_MAIN + \"-app\";\nconst APP_CLIENT_INTERNALS = 'app-pages-internals';\nconst CLIENT_STATIC_FILES_RUNTIME_REACT_REFRESH = \"react-refresh\";\nconst CLIENT_STATIC_FILES_RUNTIME_AMP = \"amp\";\nconst CLIENT_STATIC_FILES_RUNTIME_WEBPACK = \"webpack\";\nconst CLIENT_STATIC_FILES_RUNTIME_POLYFILLS = 'polyfills';\nconst CLIENT_STATIC_FILES_RUNTIME_POLYFILLS_SYMBOL = Symbol(CLIENT_STATIC_FILES_RUNTIME_POLYFILLS);\nconst DEFAULT_RUNTIME_WEBPACK = 'webpack-runtime';\nconst EDGE_RUNTIME_WEBPACK = 'edge-runtime-webpack';\nconst STATIC_PROPS_ID = '__N_SSG';\nconst SERVER_PROPS_ID = '__N_SSP';\nconst DEFAULT_SERIF_FONT = {\n name: 'Times New Roman',\n xAvgCharWidth: 821,\n azAvgWidth: 854.3953488372093,\n unitsPerEm: 2048\n};\nconst DEFAULT_SANS_SERIF_FONT = {\n name: 'Arial',\n xAvgCharWidth: 904,\n azAvgWidth: 934.5116279069767,\n unitsPerEm: 2048\n};\nconst STATIC_STATUS_PAGES = [\n '/500'\n];\nconst TRACE_OUTPUT_VERSION = 1;\nconst TURBO_TRACE_DEFAULT_MEMORY_LIMIT = 6000;\nconst RSC_MODULE_TYPES = {\n client: 'client',\n server: 'server'\n};\nconst EDGE_UNSUPPORTED_NODE_APIS = [\n 'clearImmediate',\n 'setImmediate',\n 'BroadcastChannel',\n 'ByteLengthQueuingStrategy',\n 'CompressionStream',\n 'CountQueuingStrategy',\n 'DecompressionStream',\n 'DomException',\n 'MessageChannel',\n 'MessageEvent',\n 'MessagePort',\n 'ReadableByteStreamController',\n 'ReadableStreamBYOBRequest',\n 'ReadableStreamDefaultController',\n 'TransformStreamDefaultController',\n 'WritableStreamDefaultController'\n];\nconst SYSTEM_ENTRYPOINTS = new Set([\n CLIENT_STATIC_FILES_RUNTIME_MAIN,\n CLIENT_STATIC_FILES_RUNTIME_REACT_REFRESH,\n CLIENT_STATIC_FILES_RUNTIME_AMP,\n CLIENT_STATIC_FILES_RUNTIME_MAIN_APP\n]);\nif ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=constants.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1ub2RlKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3Qvc2hhcmVkL2xpYi9jb25zdGFudHMuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7O0lBbUNhQSxrQkFBa0I7ZUFBbEJBOztJQWlEQUMsb0JBQW9CO2VBQXBCQTs7SUFwREFDLGtCQUFrQjtlQUFsQkE7O0lBQ0FDLHdCQUF3QjtlQUF4QkE7O0lBOEJBQywwQkFBMEI7ZUFBMUJBOztJQUxBQyxhQUFhO2VBQWJBOztJQURBQyxhQUFhO2VBQWJBOztJQXZCQUMsY0FBYztlQUFkQTs7SUF5QkFDLHdCQUF3QjtlQUF4QkE7O0lBT0FDLHlCQUF5QjtlQUF6QkE7O0lBTkFDLHdCQUF3QjtlQUF4QkE7O0lBNEJBQywrQkFBK0I7ZUFBL0JBOztJQVBBQyxnQ0FBZ0M7ZUFBaENBOztJQUNBQyxvQ0FBb0M7ZUFBcENBOztJQVVBQyxxQ0FBcUM7ZUFBckNBOztJQUNBQyw0Q0FBNEM7ZUFBNUNBOztJQVBBQyx5Q0FBeUM7ZUFBekNBOztJQUlBQyxtQ0FBbUM7ZUFBbkNBOztJQTVFQUMsZ0JBQWdCO2VBQWhCQTs7SUFSQUMsY0FBYztlQUFkQTs7SUE4Q0FDLFlBQVk7ZUFBWkE7O0lBNENBQyx1QkFBdUI7ZUFBdkJBOztJQVVBQyx1QkFBdUI7ZUFBdkJBOztJQU5BQyxrQkFBa0I7ZUFBbEJBOztJQW5EQUMsOEJBQThCO2VBQTlCQTs7SUFKQUMseUJBQXlCO2VBQXpCQTs7SUFpQ0FDLG9CQUFvQjtlQUFwQkE7O0lBbUJBQyxvQkFBb0I7ZUFBcEJBOztJQTZCQUMsMEJBQTBCO2VBQTFCQTs7SUF0RkFDLGFBQWE7ZUFBYkE7O0lBREFDLGFBQWE7ZUFBYkE7O0lBSEFDLHlCQUF5QjtlQUF6QkE7O0lBT0FDLGVBQWU7ZUFBZkE7O0lBZ0NBQyxtQ0FBbUM7ZUFBbkNBOztJQUxBQyx5QkFBeUI7ZUFBekJBOztJQXhCQUMsbUJBQW1CO2VBQW5CQTs7SUEwQkFDLGtDQUFrQztlQUFsQ0E7O0lBdEVKQywwQkFBMEI7ZUFB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LE1BQU1ILHdDQUF3QztBQUM5QyxNQUFNQywrQ0FBK0NzRCxPQUMxRHZEO0FBRUssTUFBTU8sMEJBQTBCO0FBQ2hDLE1BQU1NLHVCQUF1QjtBQUM3QixNQUFNNEIsa0JBQWtCO0FBQ3hCLE1BQU1GLGtCQUFrQjtBQUN4QixNQUFNOUIscUJBQXFCO0lBQ2hDK0MsTUFBTTtJQUNOQyxlQUFlO0lBQ2ZDLFlBQVk7SUFDWkMsWUFBWTtBQUNkO0FBQ08sTUFBTW5ELDBCQUEwQjtJQUNyQ2dELE1BQU07SUFDTkMsZUFBZTtJQUNmQyxZQUFZO0lBQ1pDLFlBQVk7QUFDZDtBQUNPLE1BQU1qQixzQkFBc0I7SUFBQztDQUFPO0FBQ3BDLE1BQU1JLHVCQUF1QjtBQUU3QixNQUFNRSxtQ0FBbUM7QUFFekMsTUFBTVosbUJBQW1CO0lBQzlCZ0IsUUFBUTtJQUNSQyxRQUFRO0FBQ1Y7QUFNTyxNQUFNdkMsNkJBQTZCO0lBQ3hDO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0NBQ0Q7QUFFTSxNQUFNK0IscUJBQXFCLElBQUllLElBQVk7SUFDaEQ5RDtJQUNBSTtJQUNBTDtJQUNBRTtDQUNEIiwic291cmNlcyI6WyJEOlxcc3JjXFxzaGFyZWRcXGxpYlxcY29uc3RhbnRzLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBNT0RFUk5fQlJPV1NFUlNMSVNUX1RBUkdFVCBmcm9tICcuL21vZGVybi1icm93c2Vyc2xpc3QtdGFyZ2V0J1xuXG5leHBvcnQgeyBNT0RFUk5fQlJPV1NFUlNMSVNUX1RBUkdFVCB9XG5cbmV4cG9ydCB0eXBlIFZhbHVlT2Y8VD4gPSBSZXF1aXJlZDxUPltrZXlvZiBUXVxuXG5leHBvcnQgY29uc3QgQ09NUElMRVJfTkFNRVMgPSB7XG4gIGNsaWVudDogJ2NsaWVudCcsXG4gIHNlcnZlcjogJ3NlcnZlcicsXG4gIGVkZ2VTZXJ2ZXI6ICdlZGdlLXNlcnZlcicsXG59IGFzIGNvbnN0XG5cbmV4cG9ydCB0eXBlIENvbXBpbGVyTmFtZVZhbHVlcyA9IFZhbHVlT2Y8dHlwZW9mIENPTVBJTEVSX05BTUVTPlxuXG5leHBvcnQgY29uc3QgQ09NUElMRVJfSU5ERVhFUzoge1xuICBbY29tcGlsZXJLZXkgaW4gQ29tcGlsZXJOYW1lVmFsdWVzXTogbnVtYmVyXG59ID0ge1xuICBbQ09NUElMRVJfTkFNRVMuY2xpZW50XTogMCxcbiAgW0NPTVBJTEVSX05BTUVTLnNlcnZlcl06IDEsXG4gIFtDT01QSUxFUl9OQU1FUy5lZGdlU2VydmVyXTogMixcbn0gYXMgY29uc3RcblxuZXhwb3J0IGNvbnN0IFVOREVSU0NPUkVfTk9UX0ZPVU5EX1JPVVRFID0gJy9fbm90LWZvdW5kJ1xuZXhwb3J0IGNvbnN0IFVOREVSU0NPUkVfTk9UX0ZPVU5EX1JPVVRFX0VOVFJZID0gYCR7VU5ERVJTQ09SRV9OT1RfRk9VTkRfUk9VVEV9L3BhZ2VgXG5leHBvcnQgY29uc3QgUEhBU0VfRVhQT1JUID0gJ3BoYXNlLWV4cG9ydCdcbmV4cG9ydCBjb25zdCBQSEFTRV9QUk9EVUNUSU9OX0JVSUxEID0gJ3BoYXNlLXByb2R1Y3Rpb24tYnVpbGQnXG5leHBvcnQgY29uc3QgUEhBU0VfUFJPRFVDVElPTl9TRVJWRVIgPSAncGhhc2UtcHJvZHVjdGlvbi1zZXJ2ZXInXG5leHBvcnQgY29uc3QgUEhBU0VfREVWRUxPUE1FTlRfU0VSVkVSID0gJ3BoYXNlLWRldmVsb3BtZW50LXNlcnZlcidcbmV4cG9ydCBjb25zdCBQSEFTRV9URVNUID0gJ3BoYXNlLXRlc3QnXG5leHBvcnQgY29uc3QgUEhBU0VfSU5GTyA9ICdwaGFzZS1pbmZvJ1xuZXhwb3J0IGNvbnN0IFBBR0VTX01BTklGRVNUID0gJ3BhZ2VzLW1hbmlmZXN0Lmpzb24nXG5leHBvcnQgY29uc3QgV0VCUEFDS19TVEFUUyA9ICd3ZWJwYWNrLXN0YXRzLmpzb24nXG5leHBvcnQgY29uc3QgQVBQX1BBVEhTX01BTklGRVNUID0gJ2FwcC1wYXRocy1tYW5pZmVzdC5qc29uJ1xuZXhwb3J0IGNvbnN0IEFQUF9QQVRIX1JPVVRFU19NQU5JRkVTVCA9ICdhcHAtcGF0aC1yb3V0ZXMtbWFuaWZlc3QuanNvbidcbmV4cG9ydCBjb25zdCBCVUlMRF9NQU5JRkVTVCA9ICdidWlsZC1tYW5pZmVzdC5qc29uJ1xuZXhwb3J0IGNvbnN0IEFQUF9CVUlMRF9NQU5JRkVTVCA9ICdhcHAtYnVpbGQtbWFuaWZlc3QuanNvbidcbmV4cG9ydCBjb25zdCBGVU5DVElPTlNfQ09ORklHX01BTklGRVNUID0gJ2Z1bmN0aW9ucy1jb25maWctbWFuaWZlc3QuanNvbidcbmV4cG9ydCBjb25zdCBTVUJSRVNPVVJDRV9JTlRFR1JJVFlfTUFOSUZFU1QgPSAnc3VicmVzb3VyY2UtaW50ZWdyaXR5LW1hbmlmZXN0J1xuZXhwb3J0IGNvbnN0IE5FWFRfRk9OVF9NQU5JRkVTVCA9ICduZXh0LWZvbnQtbWFuaWZlc3QnXG5leHBvcnQgY29uc3QgRVhQT1JUX01BUktFUiA9ICdleHBvcnQtbWFya2VyLmpzb24nXG5leHBvcnQgY29uc3QgRVhQT1JUX0RFVEFJTCA9ICdleHBvcnQtZGV0YWlsLmpzb24nXG5leHBvcnQgY29uc3QgUFJFUkVOREVSX01BTklGRVNUID0gJ3ByZXJlbmRlci1tYW5pZmVzdC5qc29uJ1xuZXhwb3J0IGNvbnN0IFJPVVRFU19NQU5JRkVTVCA9ICdyb3V0ZXMtbWFuaWZlc3QuanNvbidcbmV4cG9ydCBjb25zdCBJTUFHRVNfTUFOSUZFU1QgPSAnaW1hZ2VzLW1hbmlmZXN0Lmpzb24nXG5leHBvcnQgY29uc3QgU0VSVkVSX0ZJTEVTX01BTklGRVNUID0gJ3JlcXVpcmVkLXNlcnZlci1maWxlcy5qc29uJ1xuZXhwb3J0IGNvbnN0IERFVl9DTElFTlRfUEFHRVNfTUFOSUZFU1QgPSAnX2RldlBhZ2VzTWFuaWZlc3QuanNvbidcbmV4cG9ydCBjb25zdCBNSURETEVXQVJFX01BTklGRVNUID0gJ21pZGRsZXdhcmUtbWFuaWZlc3QuanNvbidcbmV4cG9ydCBjb25zdCBUVVJCT1BBQ0tfQ0xJRU5UX01JRERMRVdBUkVfTUFOSUZFU1QgPVxuICAnX2NsaWVudE1pZGRsZXdhcmVNYW5pZmVzdC5qc29uJ1xuZXhwb3J0IGNvbnN0IERFVl9DTElFTlRfTUlERExFV0FSRV9NQU5JRkVTVCA9ICdfZGV2TWlkZGxld2FyZU1hbmlmZXN0Lmpzb24nXG5leHBvcnQgY29uc3QgUkVBQ1RfTE9BREFCTEVfTUFOSUZFU1QgPSAncmVhY3QtbG9hZGFibGUtbWFuaWZlc3QuanNvbidcbmV4cG9ydCBjb25zdCBTRVJWRVJfRElSRUNUT1JZID0gJ3NlcnZlcidcbmV4cG9ydCBjb25zdCBDT05GSUdfRklMRVMgPSBbXG4gICduZXh0LmNvbmZpZy5qcycsXG4gICduZXh0LmNvbmZpZy5tanMnLFxuICAnbmV4dC5jb25maWcudHMnLFxuXVxuZXhwb3J0IGNvbnN0IEJVSUxEX0lEX0ZJTEUgPSAnQlVJTERfSUQnXG5leHBvcnQgY29uc3QgQkxPQ0tFRF9QQUdFUyA9IFsnL19kb2N1bWVudCcsICcvX2FwcCcsICcvX2Vycm9yJ11cbmV4cG9ydCBjb25zdCBDTElFTlRfUFVCTElDX0ZJTEVTX1BBVEggPSAncHVibGljJ1xuZXhwb3J0IGNvbnN0IENMSUVOVF9TVEFUSUNfRklMRVNfUEFUSCA9ICdzdGF0aWMnXG5leHBvcnQgY29uc3QgU1RSSU5HX0xJVEVSQUxfRFJPUF9CVU5ETEUgPSAnX19ORVhUX0RST1BfQ0xJRU5UX0ZJTEVfXydcbmV4cG9ydCBjb25zdCBORVhUX0JVSUxUSU5fRE9DVU1FTlQgPSAnX19ORVhUX0JVSUxUSU5fRE9DVU1FTlRfXydcbmV4cG9ydCBjb25zdCBCQVJSRUxfT1BUSU1JWkFUSU9OX1BSRUZJWCA9ICdfX2JhcnJlbF9vcHRpbWl6ZV9fJ1xuXG4vLyBzZXJ2ZXIvW2VudHJ5XS9wYWdlX2NsaWVudC1yZWZlcmVuY2UtbWFuaWZlc3QuanNcbmV4cG9ydCBjb25zdCBDTElFTlRfUkVGRVJFTkNFX01BTklGRVNUID0gJ2NsaWVudC1yZWZlcmVuY2UtbWFuaWZlc3QnXG4vLyBzZXJ2ZXIvc2VydmVyLXJlZmVyZW5jZS1tYW5pZmVzdFxuZXhwb3J0IGNvbnN0IFNFUlZFUl9SRUZFUkVOQ0VfTUFOSUZFU1QgPSAnc2VydmVyLXJlZmVyZW5jZS1tYW5pZmVzdCdcbi8vIHNlcnZlci9taWRkbGV3YXJlLWJ1aWxkLW1hbmlmZXN0LmpzXG5leHBvcnQgY29uc3QgTUlERExFV0FSRV9CVUlMRF9NQU5JRkVTVCA9ICdtaWRkbGV3YXJlLWJ1aWxkLW1hbmlmZXN0J1xuLy8gc2VydmVyL21pZGRsZXdhcmUtcmVhY3QtbG9hZGFibGUtbWFuaWZlc3QuanNcbmV4cG9ydCBjb25zdCBNSURETEVXQVJFX1JFQUNUX0xPQURBQkxFX01BTklGRVNUID1cbiAgJ21pZGRsZXdhcmUtcmVhY3QtbG9hZGFibGUtbWFuaWZlc3QnXG4vLyBzZXJ2ZXIvaW50ZXJjZXB0aW9uLXJvdXRlLXJld3JpdGUtbWFuaWZlc3QuanNcbmV4cG9ydCBjb25zdCBJTlRFUkNFUFRJT05fUk9VVEVfUkVXUklURV9NQU5JRkVTVCA9XG4gICdpbnRlcmNlcHRpb24tcm91dGUtcmV3cml0ZS1tYW5pZmVzdCdcbi8vIHNlcnZlci9keW5hbWljLWNzcy1tYW5pZmVzdC5qc1xuZXhwb3J0IGNvbnN0IERZTkFNSUNfQ1NTX01BTklGRVNUID0gJ2R5bmFtaWMtY3NzLW1hbmlmZXN0J1xuXG4vLyBzdGF0aWMvcnVudGltZS9tYWluLmpzXG5leHBvcnQgY29uc3QgQ0xJRU5UX1NUQVRJQ19GSUxFU19SVU5USU1FX01BSU4gPSBgbWFpbmBcbmV4cG9ydCBjb25zdCBDTElFTlRfU1RBVElDX0ZJTEVTX1JVTlRJTUVfTUFJTl9BUFAgPSBgJHtDTElFTlRfU1RBVElDX0ZJTEVTX1JVTlRJTUVfTUFJTn0tYXBwYFxuLy8gbmV4dCBpbnRlcm5hbCBjbGllbnQgY29tcG9uZW50cyBjaHVuayBmb3IgbGF5b3V0c1xuZXhwb3J0IGNvbnN0IEFQUF9DTElFTlRfSU5URVJOQUxTID0gJ2FwcC1wYWdlcy1pbnRlcm5hbHMnXG4vLyBzdGF0aWMvcnVudGltZS9yZWFjdC1yZWZyZXNoLmpzXG5leHBvcnQgY29uc3QgQ0xJRU5UX1NUQVRJQ19GSUxFU19SVU5USU1FX1JFQUNUX1JFRlJFU0ggPSBgcmVhY3QtcmVmcmVzaGBcbi8vIHN0YXRpYy9ydW50aW1lL2FtcC5qc1xuZXhwb3J0IGNvbnN0IENMSUVOVF9TVEFUSUNfRklMRVNfUlVOVElNRV9BTVAgPSBgYW1wYFxuLy8gc3RhdGljL3J1bnRpbWUvd2VicGFjay5qc1xuZXhwb3J0IGNvbnN0IENMSUVOVF9TVEFUSUNfRklMRVNfUlVOVElNRV9XRUJQQUNLID0gYHdlYnBhY2tgXG4vLyBzdGF0aWMvcnVudGltZS9wb2x5ZmlsbHMuanNcbmV4cG9ydCBjb25zdCBDTElFTlRfU1RBVElDX0ZJTEVTX1JVTlRJTUVfUE9MWUZJTExTID0gJ3BvbHlmaWxscydcbmV4cG9ydCBjb25zdCBDTElFTlRfU1RBVElDX0ZJTEVTX1JVTlRJTUVfUE9MWUZJTExTX1NZTUJPTCA9IFN5bWJvbChcbiAgQ0xJRU5UX1NUQVRJQ19GSUxFU19SVU5USU1FX1BPTFlGSUxMU1xuKVxuZXhwb3J0IGNvbnN0IERFRkFVTFRfUlVOVElNRV9XRUJQQUNLID0gJ3dlYnBhY2stcnVudGltZSdcbmV4cG9ydCBjb25zdCBFREdFX1JVTlRJTUVfV0VCUEFDSyA9ICdlZGdlLXJ1bnRpbWUtd2VicGFjaydcbmV4cG9ydCBjb25zdCBTVEFUSUNfUFJPUFNfSUQgPSAnX19OX1NTRydcbmV4cG9ydCBjb25zdCBTRVJWRVJfUFJPUFNfSUQgPSAnX19OX1NTUCdcbmV4cG9ydCBjb25zdCBERUZBVUxUX1NFUklGX0ZPTlQgPSB7XG4gIG5hbWU6ICdUaW1lcyBOZXcgUm9tYW4nLFxuICB4QXZnQ2hhcldpZHRoOiA4MjEsXG4gIGF6QXZnV2lkdGg6IDg1NC4zOTUzNDg4MzcyMDkzLFxuICB1bml0c1BlckVtOiAyMDQ4LFxufVxuZXhwb3J0IGNvbnN0IERFRkFVTFRfU0FOU19TRVJJRl9GT05UID0ge1xuICBuYW1lOiAnQXJpYWwnLFxuICB4QXZnQ2hhcldpZHRoOiA5MDQsXG4gIGF6QXZnV2lkdGg6IDkzNC41MTE2Mjc5MDY5NzY3LFxuICB1bml0c1BlckVtOiAyMDQ4LFxufVxuZXhwb3J0IGNvbnN0IFNUQVRJQ19TVEFUVVNfUEFHRVMgPSBbJy81MDAnXVxuZXhwb3J0IGNvbnN0IFRSQUNFX09VVFBVVF9WRVJTSU9OID0gMVxuLy8gaW4gYE1CYFxuZXhwb3J0IGNvbnN0IFRVUkJPX1RSQUNFX0RFRkFVTFRfTUVNT1JZX0xJTUlUID0gNjAwMFxuXG5leHBvcnQgY29uc3QgUlNDX01PRFVMRV9UWVBFUyA9IHtcbiAgY2xpZW50OiAnY2xpZW50JyxcbiAgc2VydmVyOiAnc2VydmVyJyxcbn0gYXMgY29uc3RcblxuLy8gY29tcGFyaW5nXG4vLyBodHRwczovL25leHRqcy5vcmcvZG9jcy9hcGktcmVmZXJlbmNlL2VkZ2UtcnVudGltZVxuLy8gd2l0aFxuLy8gaHR0cHM6Ly9ub2RlanMub3JnL2RvY3MvbGF0ZXN0L2FwaS9nbG9iYWxzLmh0bWxcbmV4cG9ydCBjb25zdCBFREdFX1VOU1VQUE9SVEVEX05PREVfQVBJUyA9IFtcbiAgJ2NsZWFySW1tZWRpYXRlJyxcbiAgJ3NldEltbWVkaWF0ZScsXG4gICdCcm9hZGNhc3RDaGFubmVsJyxcbiAgJ0J5dGVMZW5ndGhRdWV1aW5nU3RyYXRlZ3knLFxuICAnQ29tcHJlc3Npb25TdHJlYW0nLFxuICAnQ291bnRRdWV1aW5nU3RyYXRlZ3knLFxuICAnRGVjb21wcmVzc2lvblN0cmVhbScsXG4gICdEb21FeGNlcHRpb24nLFxuICAnTWVzc2FnZUNoYW5uZWwnLFxuICAnTWVzc2FnZUV2ZW50JyxcbiAgJ01lc3NhZ2VQb3J0JyxcbiAgJ1JlYWRhYmxlQnl0ZVN0cmVhbUNvbnRyb2xsZXInLFxuICAnUmVhZGFibGVTdHJlYW1CWU9CUmVxdWVzdCcsXG4gICdSZWFkYWJsZVN0cmVhbURlZmF1bHRDb250cm9sbGVyJyxcbiAgJ1RyYW5zZm9ybVN0cmVhbURlZmF1bHRDb250cm9sbGVyJyxcbiAgJ1dyaXRhYmxlU3RyZWFtRGVmYXVsdENvbnRyb2xsZXInLFxuXVxuXG5leHBvcnQgY29uc3QgU1lTVEVNX0VOVFJZUE9JTlRTID0gbmV3IFNldDxzdHJpbmc+KFtcbiAgQ0xJRU5UX1NUQVRJQ19GSUxFU19SVU5USU1FX01BSU4sXG4gIENMSUVOVF9TVEFUSUNfRklMRVNfUlVOVElNRV9SRUFDVF9SRUZSRVNILFxuICBDTElFTlRfU1RBVElDX0ZJTEVTX1JVTlRJTUVfQU1QLFxuICBDTElFTlRfU1RBVElDX0ZJTEVTX1JVTlRJTUVfTUFJTl9BUFAsXG5dKVxuIl0sIm5hbWVzIjpbIkFQUF9CVUlMRF9NQU5JRkVTVCIsIkFQUF9DTElFTlRfSU5URVJOQUxTIiwiQVBQX1BBVEhTX01BTklGRVNUIiwiQVBQX1BBVEhfUk9VVEVTX01BTklGRVNUIiwiQkFSUkVMX09QVElNSVpBVElPTl9QUkVGSVgiLCJCTE9DS0VEX1BBR0VTIiwiQlVJTERfSURfRklMRSIsIkJVSUxEX01BTklGRVNUIiwiQ0xJRU5UX1BVQkxJQ19GSUxFU19QQVRIIiwiQ0xJRU5UX1JFRkVSRU5DRV9NQU5JRkVTVCIsIkNMSUVOVF9TVEFUSUNfRklMRVNfUEFUSCIsIkNMSUVOVF9TVEFUSUNfRklMRVNfUlVOVElNRV9BTVAiLCJDTElFTlRfU1RBVElDX0ZJTEVTX1JVTlRJTUVfTUFJTiIsIkNMSUVOVF9TVEFUSUNfRklMRVNfUlVOVElNRV9NQUlOX0FQUCIsIkNMSUVOVF9TVEFUSUNfRklMRVNfUlVOVElNRV9QT0xZRklMTFMiLCJDTElFTlRfU1RBVElDX0ZJTEVTX1JVTlRJTUVfUE9MWUZJTExTX1NZTUJPTCIsIkNMSUVOVF9TVEFUSUNfRklMRVNfUlVOVElNRV9SRUFDVF9SRUZSRVNIIiwiQ0xJRU5UX1NUQVRJQ19GSUxFU19SVU5USU1FX1dFQlBBQ0siLCJDT01QSUxFUl9JTkRFWEVTIiwiQ09NUElMRVJfTkFNRVMiLCJDT05GSUdfRklMRVMiLCJERUZBVUxUX1JVTlRJTUVfV0VCUEFDSyIsIkRFRkFVTFRfU0FOU19TRVJJRl9GT05UIiwiREVGQVVMVF9TRVJJRl9GT05UIiwiREVWX0NMSUVOVF9NSURETEVXQVJFX01BTklGRVNUIiwiREVWX0NMSUVOVF9QQUdFU19NQU5JRkVTVCIsIkRZTkFNSUNfQ1NTX01BTklGRVNUIiwiRURHRV9SVU5USU1FX1dFQlBBQ0siLCJFREdFX1VOU1VQUE9SVEVEX05PREVfQVBJUyIsIkVYUE9SVF9ERVRBSUwiLCJFWFBPUlRfTUFSS0VSIiwiRlVOQ1RJT05TX0NPTkZJR19NQU5JRkVTVCIsIklNQUdFU19NQU5JRkVTVCIsIklOVEVSQ0VQVElPTl9ST1VURV9SRVdSSVRFX01BTklGRVNUIiwiTUlERExFV0FSRV9CVUlMRF9NQU5JRkVTVCIsIk1JRERMRVdBUkVfTUFOSUZFU1QiLCJNSURETEVXQVJFX1JFQUNUX0xPQURBQkxFX01BTklGRVNUIiwiTU9ERVJOX0JST1dTRVJTTElTVF9UQVJHRVQiLCJORVhUX0JVSUxUSU5fRE9DVU1FTlQiLCJORVhUX0ZPTlRfTUFOSUZFU1QiLCJQQUdFU19NQU5JRkVTVCIsIlBIQVNFX0RFVkVMT1BNRU5UX1NFUlZFUiIsIlBIQVNFX0VYUE9SVCIsIlBIQVNFX0lORk8iLCJQSEFTRV9QUk9EVUNUSU9OX0JVSUxEIiwiUEhBU0VfUFJPRFVDVElPTl9TRVJWRVIiLCJQSEFTRV9URVNUIiwiUFJFUkVOREVSX01BTklGRVNUIiwiUkVBQ1RfTE9BREFCTEVfTUFOSUZFU1QiLCJST1VURVNfTUFOSUZFU1QiLCJSU0NfTU9EVUxFX1RZUEVTIiwiU0VSVkVSX0RJUkVDVE9SWSIsIlNFUlZFUl9GSUxFU19NQU5JRkVTVCIsIlNFUlZFUl9QUk9QU19JRCIsIlNFUlZFUl9SRUZFUkVOQ0VfTUFOSUZFU1QiLCJTVEFUSUNfUFJPUFNfSUQiLCJTVEFUSUNfU1RBVFVTX1BBR0VTIiwiU1RSSU5HX0xJVEVSQUxfRFJPUF9CVU5ETEUiLCJTVUJSRVNPVVJDRV9JTlRFR1JJVFlfTUFOSUZFU1QiLCJTWVNURU1fRU5UUllQT0lOVFMiLCJUUkFDRV9PVVRQVVRfVkVSU0lPTiIsIlRVUkJPUEFDS19DTElFTlRfTUlERExFV0FSRV9NQU5JRkVTVCIsIlRVUkJPX1RSQUNFX0RFRkFVTFRfTUVNT1JZX0xJTUlUIiwiVU5ERVJTQ09SRV9OT1RfRk9VTkRfUk9VVEUiLCJVTkRFUlNDT1JFX05PVF9GT1VORF9ST1VURV9FTlRSWSIsIldFQlBBQ0tfU1RBVFMiLCJjbGllbnQiLCJzZXJ2ZXIiLCJlZGdlU2VydmVyIiwiU3ltYm9sIiwibmFtZSIsInhBdmdDaGFyV2lkdGgiLCJhekF2Z1dpZHRoIiwidW5pdHNQZXJFbSIsIlNldCJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(pages-dir-node)/./node_modules/next/dist/shared/lib/constants.js\n"); - -/***/ }), - -/***/ "(pages-dir-node)/./node_modules/next/dist/shared/lib/encode-uri-path.js": -/*!**************************************************************!*\ - !*** ./node_modules/next/dist/shared/lib/encode-uri-path.js ***! - \**************************************************************/ -/***/ ((__unused_webpack_module, exports) => { - -"use strict"; -eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"encodeURIPath\", ({\n enumerable: true,\n get: function() {\n return encodeURIPath;\n }\n}));\nfunction encodeURIPath(file) {\n return file.split('/').map((p)=>encodeURIComponent(p)).join('/');\n} //# sourceMappingURL=encode-uri-path.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1ub2RlKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3Qvc2hhcmVkL2xpYi9lbmNvZGUtdXJpLXBhdGguanMiLCJtYXBwaW5ncyI6Ijs7OztpREFBZ0JBOzs7ZUFBQUE7OztBQUFULFNBQVNBLGNBQWNDLElBQVk7SUFDeEMsT0FBT0EsS0FDSkMsS0FBSyxDQUFDLEtBQ05DLEdBQUcsQ0FBQyxDQUFDQyxJQUFNQyxtQkFBbUJELElBQzlCRSxJQUFJLENBQUM7QUFDViIsInNvdXJjZXMiOlsiRDpcXHNyY1xcc2hhcmVkXFxsaWJcXGVuY29kZS11cmktcGF0aC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgZnVuY3Rpb24gZW5jb2RlVVJJUGF0aChmaWxlOiBzdHJpbmcpIHtcbiAgcmV0dXJuIGZpbGVcbiAgICAuc3BsaXQoJy8nKVxuICAgIC5tYXAoKHApID0+IGVuY29kZVVSSUNvbXBvbmVudChwKSlcbiAgICAuam9pbignLycpXG59XG4iXSwibmFtZXMiOlsiZW5jb2RlVVJJUGF0aCIsImZpbGUiLCJzcGxpdCIsIm1hcCIsInAiLCJlbmNvZGVVUklDb21wb25lbnQiLCJqb2luIl0sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(pages-dir-node)/./node_modules/next/dist/shared/lib/encode-uri-path.js\n"); - -/***/ }), - -/***/ "(pages-dir-node)/./node_modules/next/dist/shared/lib/errors/constants.js": -/*!***************************************************************!*\ - !*** ./node_modules/next/dist/shared/lib/errors/constants.js ***! - \***************************************************************/ -/***/ ((module, exports) => { - -"use strict"; -eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"MISSING_ROOT_TAGS_ERROR\", ({\n enumerable: true,\n get: function() {\n return MISSING_ROOT_TAGS_ERROR;\n }\n}));\nconst MISSING_ROOT_TAGS_ERROR = 'NEXT_MISSING_ROOT_TAGS';\nif ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=constants.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1ub2RlKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3Qvc2hhcmVkL2xpYi9lcnJvcnMvY29uc3RhbnRzLmpzIiwibWFwcGluZ3MiOiI7Ozs7MkRBQWFBOzs7ZUFBQUE7OztBQUFOLE1BQU1BLDBCQUEwQiIsInNvdXJjZXMiOlsiRDpcXHNyY1xcc2hhcmVkXFxsaWJcXGVycm9yc1xcY29uc3RhbnRzLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBjb25zdCBNSVNTSU5HX1JPT1RfVEFHU19FUlJPUiA9ICdORVhUX01JU1NJTkdfUk9PVF9UQUdTJ1xuIl0sIm5hbWVzIjpbIk1JU1NJTkdfUk9PVF9UQUdTX0VSUk9SIl0sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(pages-dir-node)/./node_modules/next/dist/shared/lib/errors/constants.js\n"); - -/***/ }), - -/***/ "(pages-dir-node)/./node_modules/next/dist/shared/lib/escape-regexp.js": -/*!************************************************************!*\ - !*** ./node_modules/next/dist/shared/lib/escape-regexp.js ***! - \************************************************************/ -/***/ ((__unused_webpack_module, exports) => { - -"use strict"; -eval("// regexp is based on https://github.com/sindresorhus/escape-string-regexp\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"escapeStringRegexp\", ({\n enumerable: true,\n get: function() {\n return escapeStringRegexp;\n }\n}));\nconst reHasRegExp = /[|\\\\{}()[\\]^$+*?.-]/;\nconst reReplaceRegExp = /[|\\\\{}()[\\]^$+*?.-]/g;\nfunction escapeStringRegexp(str) {\n // see also: https://github.com/lodash/lodash/blob/2da024c3b4f9947a48517639de7560457cd4ec6c/escapeRegExp.js#L23\n if (reHasRegExp.test(str)) {\n return str.replace(reReplaceRegExp, '\\\\$&');\n }\n return str;\n} //# sourceMappingURL=escape-regexp.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1ub2RlKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3Qvc2hhcmVkL2xpYi9lc2NhcGUtcmVnZXhwLmpzIiwibWFwcGluZ3MiOiJBQUFBLDBFQUEwRTs7Ozs7c0RBSTFEQTs7O2VBQUFBOzs7QUFIaEIsTUFBTUMsY0FBYztBQUNwQixNQUFNQyxrQkFBa0I7QUFFakIsU0FBU0YsbUJBQW1CRyxHQUFXO0lBQzVDLCtHQUErRztJQUMvRyxJQUFJRixZQUFZRyxJQUFJLENBQUNELE1BQU07UUFDekIsT0FBT0EsSUFBSUUsT0FBTyxDQUFDSCxpQkFBaUI7SUFDdEM7SUFDQSxPQUFPQztBQUNUIiwic291cmNlcyI6WyJEOlxcc3JjXFxzaGFyZWRcXGxpYlxcZXNjYXBlLXJlZ2V4cC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvLyByZWdleHAgaXMgYmFzZWQgb24gaHR0cHM6Ly9naXRodWIuY29tL3NpbmRyZXNvcmh1cy9lc2NhcGUtc3RyaW5nLXJlZ2V4cFxuY29uc3QgcmVIYXNSZWdFeHAgPSAvW3xcXFxce30oKVtcXF1eJCsqPy4tXS9cbmNvbnN0IHJlUmVwbGFjZVJlZ0V4cCA9IC9bfFxcXFx7fSgpW1xcXV4kKyo/Li1dL2dcblxuZXhwb3J0IGZ1bmN0aW9uIGVzY2FwZVN0cmluZ1JlZ2V4cChzdHI6IHN0cmluZykge1xuICAvLyBzZWUgYWxzbzogaHR0cHM6Ly9naXRodWIuY29tL2xvZGFzaC9sb2Rhc2gvYmxvYi8yZGEwMjRjM2I0Zjk5NDdhNDg1MTc2MzlkZTc1NjA0NTdjZDRlYzZjL2VzY2FwZVJlZ0V4cC5qcyNMMjNcbiAgaWYgKHJlSGFzUmVnRXhwLnRlc3Qoc3RyKSkge1xuICAgIHJldHVybiBzdHIucmVwbGFjZShyZVJlcGxhY2VSZWdFeHAsICdcXFxcJCYnKVxuICB9XG4gIHJldHVybiBzdHJcbn1cbiJdLCJuYW1lcyI6WyJlc2NhcGVTdHJpbmdSZWdleHAiLCJyZUhhc1JlZ0V4cCIsInJlUmVwbGFjZVJlZ0V4cCIsInN0ciIsInRlc3QiLCJyZXBsYWNlIl0sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(pages-dir-node)/./node_modules/next/dist/shared/lib/escape-regexp.js\n"); - -/***/ }), - -/***/ "(pages-dir-node)/./node_modules/next/dist/shared/lib/get-hostname.js": -/*!***********************************************************!*\ - !*** ./node_modules/next/dist/shared/lib/get-hostname.js ***! - \***********************************************************/ -/***/ ((__unused_webpack_module, exports) => { - -"use strict"; -eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"getHostname\", ({\n enumerable: true,\n get: function() {\n return getHostname;\n }\n}));\nfunction getHostname(parsed, headers) {\n // Get the hostname from the headers if it exists, otherwise use the parsed\n // hostname.\n let hostname;\n if ((headers == null ? void 0 : headers.host) && !Array.isArray(headers.host)) {\n hostname = headers.host.toString().split(':', 1)[0];\n } else if (parsed.hostname) {\n hostname = parsed.hostname;\n } else return;\n return hostname.toLowerCase();\n} //# sourceMappingURL=get-hostname.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1ub2RlKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3Qvc2hhcmVkL2xpYi9nZXQtaG9zdG5hbWUuanMiLCJtYXBwaW5ncyI6Ijs7OzsrQ0FRZ0JBOzs7ZUFBQUE7OztBQUFULFNBQVNBLFlBQ2RDLE1BQW9DLEVBQ3BDQyxPQUE2QjtJQUU3QiwyRUFBMkU7SUFDM0UsWUFBWTtJQUNaLElBQUlDO0lBQ0osSUFBSUQsQ0FBQUEsV0FBQUEsT0FBQUEsS0FBQUEsSUFBQUEsUUFBU0UsSUFBQUEsS0FBUSxDQUFDQyxNQUFNQyxPQUFPLENBQUNKLFFBQVFFLElBQUksR0FBRztRQUNqREQsV0FBV0QsUUFBUUUsSUFBSSxDQUFDRyxRQUFRLEdBQUdDLEtBQUssQ0FBQyxLQUFLLEVBQUUsQ0FBQyxFQUFFO0lBQ3JELE9BQU8sSUFBSVAsT0FBT0UsUUFBUSxFQUFFO1FBQzFCQSxXQUFXRixPQUFPRSxRQUFRO0lBQzVCLE9BQU87SUFFUCxPQUFPQSxTQUFTTSxXQUFXO0FBQzdCIiwic291cmNlcyI6WyJEOlxcc3JjXFxzaGFyZWRcXGxpYlxcZ2V0LWhvc3RuYW1lLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgT3V0Z29pbmdIdHRwSGVhZGVycyB9IGZyb20gJ2h0dHAnXG5cbi8qKlxuICogVGFrZXMgYW4gb2JqZWN0IHdpdGggYSBob3N0bmFtZSBwcm9wZXJ0eSAobGlrZSBhIHBhcnNlZCBVUkwpIGFuZCBzb21lXG4gKiBoZWFkZXJzIHRoYXQgbWF5IGNvbnRhaW4gSG9zdCBhbmQgcmV0dXJucyB0aGUgcHJlZmVycmVkIGhvc3RuYW1lLlxuICogQHBhcmFtIHBhcnNlZCBBbiBvYmplY3QgY29udGFpbmluZyBhIGhvc3RuYW1lIHByb3BlcnR5LlxuICogQHBhcmFtIGhlYWRlcnMgQSBkaWN0aW9uYXJ5IHdpdGggaGVhZGVycyBjb250YWluaW5nIGEgYGhvc3RgLlxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0SG9zdG5hbWUoXG4gIHBhcnNlZDogeyBob3N0bmFtZT86IHN0cmluZyB8IG51bGwgfSxcbiAgaGVhZGVycz86IE91dGdvaW5nSHR0cEhlYWRlcnNcbik6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG4gIC8vIEdldCB0aGUgaG9zdG5hbWUgZnJvbSB0aGUgaGVhZGVycyBpZiBpdCBleGlzdHMsIG90aGVyd2lzZSB1c2UgdGhlIHBhcnNlZFxuICAvLyBob3N0bmFtZS5cbiAgbGV0IGhvc3RuYW1lOiBzdHJpbmdcbiAgaWYgKGhlYWRlcnM/Lmhvc3QgJiYgIUFycmF5LmlzQXJyYXkoaGVhZGVycy5ob3N0KSkge1xuICAgIGhvc3RuYW1lID0gaGVhZGVycy5ob3N0LnRvU3RyaW5nKCkuc3BsaXQoJzonLCAxKVswXVxuICB9IGVsc2UgaWYgKHBhcnNlZC5ob3N0bmFtZSkge1xuICAgIGhvc3RuYW1lID0gcGFyc2VkLmhvc3RuYW1lXG4gIH0gZWxzZSByZXR1cm5cblxuICByZXR1cm4gaG9zdG5hbWUudG9Mb3dlckNhc2UoKVxufVxuIl0sIm5hbWVzIjpbImdldEhvc3RuYW1lIiwicGFyc2VkIiwiaGVhZGVycyIsImhvc3RuYW1lIiwiaG9zdCIsIkFycmF5IiwiaXNBcnJheSIsInRvU3RyaW5nIiwic3BsaXQiLCJ0b0xvd2VyQ2FzZSJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(pages-dir-node)/./node_modules/next/dist/shared/lib/get-hostname.js\n"); - -/***/ }), - -/***/ "(pages-dir-node)/./node_modules/next/dist/shared/lib/head.js": -/*!***************************************************!*\ - !*** ./node_modules/next/dist/shared/lib/head.js ***! - \***************************************************/ -/***/ ((module, exports, __webpack_require__) => { - -"use strict"; -eval("/* __next_internal_client_entry_do_not_use__ cjs */ \nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n default: function() {\n return _default;\n },\n defaultHead: function() {\n return defaultHead;\n }\n});\nconst _interop_require_default = __webpack_require__(/*! @swc/helpers/_/_interop_require_default */ \"(pages-dir-node)/./node_modules/@swc/helpers/cjs/_interop_require_default.cjs\");\nconst _interop_require_wildcard = __webpack_require__(/*! @swc/helpers/_/_interop_require_wildcard */ \"(pages-dir-node)/./node_modules/@swc/helpers/cjs/_interop_require_wildcard.cjs\");\nconst _jsxruntime = __webpack_require__(/*! react/jsx-runtime */ \"react/jsx-runtime\");\nconst _react = /*#__PURE__*/ _interop_require_wildcard._(__webpack_require__(/*! react */ \"react\"));\nconst _sideeffect = /*#__PURE__*/ _interop_require_default._(__webpack_require__(/*! ./side-effect */ \"(pages-dir-node)/./node_modules/next/dist/shared/lib/side-effect.js\"));\nconst _ampcontextsharedruntime = __webpack_require__(/*! ./amp-context.shared-runtime */ \"(pages-dir-node)/./node_modules/next/dist/server/route-modules/pages/vendored/contexts/amp-context.js\");\nconst _headmanagercontextsharedruntime = __webpack_require__(/*! ./head-manager-context.shared-runtime */ \"(pages-dir-node)/./node_modules/next/dist/server/route-modules/pages/vendored/contexts/head-manager-context.js\");\nconst _ampmode = __webpack_require__(/*! ./amp-mode */ \"(pages-dir-node)/./node_modules/next/dist/shared/lib/amp-mode.js\");\nconst _warnonce = __webpack_require__(/*! ./utils/warn-once */ \"(pages-dir-node)/./node_modules/next/dist/shared/lib/utils/warn-once.js\");\nfunction defaultHead(inAmpMode) {\n if (inAmpMode === void 0) inAmpMode = false;\n const head = [\n /*#__PURE__*/ (0, _jsxruntime.jsx)(\"meta\", {\n charSet: \"utf-8\"\n }, \"charset\")\n ];\n if (!inAmpMode) {\n head.push(/*#__PURE__*/ (0, _jsxruntime.jsx)(\"meta\", {\n name: \"viewport\",\n content: \"width=device-width\"\n }, \"viewport\"));\n }\n return head;\n}\nfunction onlyReactElement(list, child) {\n // React children can be \"string\" or \"number\" in this case we ignore them for backwards compat\n if (typeof child === 'string' || typeof child === 'number') {\n return list;\n }\n // Adds support for React.Fragment\n if (child.type === _react.default.Fragment) {\n return list.concat(_react.default.Children.toArray(child.props.children).reduce((fragmentList, fragmentChild)=>{\n if (typeof fragmentChild === 'string' || typeof fragmentChild === 'number') {\n return fragmentList;\n }\n return fragmentList.concat(fragmentChild);\n }, []));\n }\n return list.concat(child);\n}\nconst METATYPES = [\n 'name',\n 'httpEquiv',\n 'charSet',\n 'itemProp'\n];\n/*\n returns a function for filtering head child elements\n which shouldn't be duplicated, like <title/>\n Also adds support for deduplicated `key` properties\n*/ function unique() {\n const keys = new Set();\n const tags = new Set();\n const metaTypes = new Set();\n const metaCategories = {};\n return (h)=>{\n let isUnique = true;\n let hasKey = false;\n if (h.key && typeof h.key !== 'number' && h.key.indexOf('$') > 0) {\n hasKey = true;\n const key = h.key.slice(h.key.indexOf('$') + 1);\n if (keys.has(key)) {\n isUnique = false;\n } else {\n keys.add(key);\n }\n }\n // eslint-disable-next-line default-case\n switch(h.type){\n case 'title':\n case 'base':\n if (tags.has(h.type)) {\n isUnique = false;\n } else {\n tags.add(h.type);\n }\n break;\n case 'meta':\n for(let i = 0, len = METATYPES.length; i < len; i++){\n const metatype = METATYPES[i];\n if (!h.props.hasOwnProperty(metatype)) continue;\n if (metatype === 'charSet') {\n if (metaTypes.has(metatype)) {\n isUnique = false;\n } else {\n metaTypes.add(metatype);\n }\n } else {\n const category = h.props[metatype];\n const categories = metaCategories[metatype] || new Set();\n if ((metatype !== 'name' || !hasKey) && categories.has(category)) {\n isUnique = false;\n } else {\n categories.add(category);\n metaCategories[metatype] = categories;\n }\n }\n }\n break;\n }\n return isUnique;\n };\n}\n/**\n *\n * @param headChildrenElements List of children of <Head>\n */ function reduceComponents(headChildrenElements, props) {\n const { inAmpMode } = props;\n return headChildrenElements.reduce(onlyReactElement, []).reverse().concat(defaultHead(inAmpMode).reverse()).filter(unique()).reverse().map((c, i)=>{\n const key = c.key || i;\n if (true) {\n // omit JSON-LD structured data snippets from the warning\n if (c.type === 'script' && c.props['type'] !== 'application/ld+json') {\n const srcMessage = c.props['src'] ? '<script> tag with src=\"' + c.props['src'] + '\"' : \"inline <script>\";\n (0, _warnonce.warnOnce)(\"Do not add <script> tags using next/head (see \" + srcMessage + \"). Use next/script instead. \\nSee more info here: https://nextjs.org/docs/messages/no-script-tags-in-head-component\");\n } else if (c.type === 'link' && c.props['rel'] === 'stylesheet') {\n (0, _warnonce.warnOnce)('Do not add stylesheets using next/head (see <link rel=\"stylesheet\"> tag with href=\"' + c.props['href'] + '\"). Use Document instead. \\nSee more info here: https://nextjs.org/docs/messages/no-stylesheets-in-head-component');\n }\n }\n return /*#__PURE__*/ _react.default.cloneElement(c, {\n key\n });\n });\n}\n/**\n * This component injects elements to `<head>` of your page.\n * To avoid duplicated `tags` in `<head>` you can use the `key` property, which will make sure every tag is only rendered once.\n */ function Head(param) {\n let { children } = param;\n const ampState = (0, _react.useContext)(_ampcontextsharedruntime.AmpStateContext);\n const headManager = (0, _react.useContext)(_headmanagercontextsharedruntime.HeadManagerContext);\n return /*#__PURE__*/ (0, _jsxruntime.jsx)(_sideeffect.default, {\n reduceComponentsToState: reduceComponents,\n headManager: headManager,\n inAmpMode: (0, _ampmode.isInAmpMode)(ampState),\n children: children\n });\n}\nconst _default = Head;\nif ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=head.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1ub2RlKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3Qvc2hhcmVkL2xpYi9oZWFkLmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7OztJQWdMQSxPQUFtQjtlQUFuQjs7SUFuS2dCQSxXQUFXO2VBQVhBOzs7Ozs7NkVBWDRCO2lGQUN6QjtxREFDYTs2REFDRztxQ0FDUDtzQ0FDSDtBQU1sQixTQUFTQSxZQUFZQyxTQUFpQjtJQUFqQkEsSUFBQUEsY0FBQUEsS0FBQUEsR0FBQUEsWUFBWTtJQUN0QyxNQUFNQyxPQUFPO3NCQUFDLHFCQUFDQyxRQUFBQTtZQUFLQyxTQUFRO1dBQVk7S0FBYTtJQUNyRCxJQUFJLENBQUNILFdBQVc7UUFDZEMsS0FBS0csSUFBSSxlQUNQLHFCQUFDRixRQUFBQTtZQUFLRyxNQUFLO1lBQVdDLFNBQVE7V0FBeUI7SUFFM0Q7SUFDQSxPQUFPTDtBQUNUO0FBRUEsU0FBU00saUJBQ1BDLElBQW9DLEVBQ3BDQyxLQUEyQztJQUUzQyw4RkFBOEY7SUFDOUYsSUFBSSxPQUFPQSxVQUFVLFlBQVksT0FBT0EsVUFBVSxVQUFVO1FBQzFELE9BQU9EO0lBQ1Q7SUFDQSxrQ0FBa0M7SUFDbEMsSUFBSUMsTUFBTUMsSUFBSSxLQUFLQyxPQUFBQSxPQUFLLENBQUNDLFFBQVEsRUFBRTtRQUNqQyxPQUFPSixLQUFLSyxNQUFNLENBQ2hCLE9BQ0FGLE9BQUssQ0FBQ0csUUFBUSxDQUFDQyxPQUFPLENBQUNOLE1BQU1PLEtBQUssQ0FBQ0MsUUFBUSxFQUFFQyxNQUFNLENBQ2pELENBRUVDLGNBQ0FDO1lBRUEsSUFDRSxPQUFPQSxrQkFBa0IsWUFDekIsT0FBT0Esa0JBQWtCLFVBQ3pCO2dCQUNBLE9BQU9EO1lBQ1Q7WUFDQSxPQUFPQSxhQUFhTixNQUFNLENBQUNPO1FBQzdCLEdBQ0EsRUFBRTtJQUdSO0lBQ0EsT0FBT1osS0FBS0ssTUFBTSxDQUFDSjtBQUNyQjtBQUVBLE1BQU1ZLFlBQVk7SUFBQztJQUFRO0lBQWE7SUFBVztDQUFXO0FB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QUEsR0FBQUEsVUFBQUEsUUFBQUEsRUFDRyx3RkFBcUZMLEVBQUVoQyxLQUFLLENBQUMsT0FBTyxHQUFDO1lBRTFHO1FBQ0Y7UUFDQSxxQkFBT0wsT0FBQUEsT0FBSyxDQUFDMkMsWUFBWSxDQUFDTixHQUFHO1lBQUVqQjtRQUFJO0lBQ3JDO0FBQ0o7QUFFQTs7O0NBR0MsR0FDRCxTQUFTd0IsS0FBSyxLQUEyQztJQUEzQyxNQUFFdEMsUUFBUSxFQUFpQyxHQUEzQztJQUNaLE1BQU11QyxXQUFXQyxDQUFBQSxHQUFBQSxPQUFBQSxVQUFBQSxFQUFXQyx5QkFBQUEsZUFBZTtJQUMzQyxNQUFNQyxjQUFjRixDQUFBQSxHQUFBQSxPQUFBQSxVQUFBQSxFQUFXRyxpQ0FBQUEsa0JBQWtCO0lBQ2pELHFCQUNFLHFCQUFDQyxZQUFBQSxPQUFNO1FBQ0xDLHlCQUF5Qm5CO1FBQ3pCZ0IsYUFBYUE7UUFDYjNELFdBQVcrRCxDQUFBQSxHQUFBQSxTQUFBQSxXQUFBQSxFQUFZUDtrQkFFdEJ2Qzs7QUFHUDtNQUVBLFdBQWVzQyIsInNvdXJjZXMiOlsiRDpcXHNyY1xcc2hhcmVkXFxsaWJcXGhlYWQudHN4Il0sInNvdXJjZXNDb250ZW50IjpbIid1c2UgY2xpZW50J1xuXG5pbXBvcnQgUmVhY3QsIHsgdXNlQ29udGV4dCwgdHlwZSBKU1ggfSBmcm9tICdyZWFjdCdcbmltcG9ydCBFZmZlY3QgZnJvbSAnLi9zaWRlLWVmZmVjdCdcbmltcG9ydCB7IEFtcFN0YXRlQ29udGV4dCB9IGZyb20gJy4vYW1wLWNvbnRleHQuc2hhcmVkLXJ1bnRpbWUnXG5pbXBvcnQgeyBIZWFkTWFuYWdlckNvbnRleHQgfSBmcm9tICcuL2hlYWQtbWFuYWdlci1jb250ZXh0LnNoYXJlZC1ydW50aW1lJ1xuaW1wb3J0IHsgaXNJbkFtcE1vZGUgfSBmcm9tICcuL2FtcC1tb2RlJ1xuaW1wb3J0IHsgd2Fybk9uY2UgfSBmcm9tICcuL3V0aWxzL3dhcm4tb25jZSdcblxudHlwZSBXaXRoSW5BbXBNb2RlID0ge1xuICBpbkFtcE1vZGU/OiBib29sZWFuXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBkZWZhdWx0SGVhZChpbkFtcE1vZGUgPSBmYWxzZSk6IEpTWC5FbGVtZW50W10ge1xuICBjb25zdCBoZWFkID0gWzxtZXRhIGNoYXJTZXQ9XCJ1dGYtOFwiIGtleT1cImNoYXJzZXRcIiAvPl1cbiAgaWYgKCFpbkFtcE1vZGUpIHtcbiAgICBoZWFkLnB1c2goXG4gICAgICA8bWV0YSBuYW1lPVwidmlld3BvcnRcIiBjb250ZW50PVwid2lkdGg9ZGV2aWNlLXdpZHRoXCIga2V5PVwidmlld3BvcnRcIiAvPlxuICAgIClcbiAgfVxuICByZXR1cm4gaGVhZFxufVxuXG5mdW5jdGlvbiBvbmx5UmVhY3RFbGVtZW50KFxuICBsaXN0OiBBcnJheTxSZWFjdC5SZWFjdEVsZW1lbnQ8YW55Pj4sXG4gIGNoaWxkOiBSZWFjdC5SZWFjdEVsZW1lbnQgfCBudW1iZXIgfCBzdHJpbmdcbik6IEFycmF5PFJlYWN0LlJlYWN0RWxlbWVudDxhbnk+PiB7XG4gIC8vIFJlYWN0IGNoaWxkcmVuIGNhbiBiZSBcInN0cmluZ1wiIG9yIFwibnVtYmVyXCIgaW4gdGhpcyBjYXNlIHdlIGlnbm9yZSB0aGVtIGZvciBiYWNrd2FyZHMgY29tcGF0XG4gIGlmICh0eXBlb2YgY2hpbGQgPT09ICdzdHJpbmcnIHx8IHR5cGVvZiBjaGlsZCA9PT0gJ251bWJlcicpIHtcbiAgICByZXR1cm4gbGlzdFxuICB9XG4gIC8vIEFkZHMgc3VwcG9ydCBmb3IgUmVhY3QuRnJhZ21lbnRcbiAgaWYgKGNoaWxkLnR5cGUgPT09IFJlYWN0LkZyYWdtZW50KSB7XG4gICAgcmV0dXJuIGxpc3QuY29uY2F0KFxuICAgICAgLy8gQHRzLWV4cGVjdC1lcnJvciBAdHlwZXMvcmVhY3QgZG9lcyBub3QgcmVtb3ZlIGZyYWdtZW50cyBidXQgdGhpcyBjb3VsZCBhbHNvIHJldHVybiBSZWFjdFBvcnRhbFtdXG4gICAgICBSZWFjdC5DaGlsZHJlbi50b0FycmF5KGNoaWxkLnByb3BzLmNoaWxkcmVuKS5yZWR1Y2UoXG4gICAgICAgIC8vIEB0cy1leHBlY3QtZXJyb3IgQHR5cGVzL3JlYWN0IGRvZXMgbm90IHJlbW92ZSBmcmFnbWVudHMgYnV0IHRoaXMgY291bGQgYWxzbyByZXR1cm4gUmVhY3RQb3J0YWxbXVxuICAgICAgICAoXG4gICAgICAgICAgZnJhZ21lbnRMaXN0OiBBcnJheTxSZWFjdC5SZWFjdEVsZW1lbnQ8YW55Pj4sXG4gICAgICAgICAgZnJhZ21lbnRDaGlsZDogUmVhY3QuUmVhY3RFbGVtZW50IHwgbnVtYmVyIHwgc3RyaW5nXG4gICAgICAgICk6IEFycmF5PFJlYWN0LlJlYWN0RWxlbWVudDxhbnk+PiA9PiB7XG4gICAgICAgICAgaWYgKFxuICAgICAgICAgICAgdHlwZW9mIGZyYWdtZW50Q2hpbGQgPT09ICdzdHJpbmcnIHx8XG4gICAgICAgICAgICB0eXBlb2YgZnJhZ21lbnRDaGlsZCA9PT0gJ251bWJlcidcbiAgICAgICAgICApIHtcbiAgICAgICAgICAgIHJldHVybiBmcmFnbWVudExpc3RcbiAgICAgICAgICB9XG4gICAgICAgICAgcmV0dXJuIGZyYWdtZW50TGlzdC5jb25jYXQoZnJhZ21lbnRDaGlsZClcbiAgICAgICAgfSxcbiAgICAgICAgW11cbiAgICAgIClcbiAgICApXG4gIH1cbiAgcmV0dXJuIGxpc3QuY29uY2F0KGNoaWxkKVxufVxuXG5jb25zdCBNRVRBVFlQRVMgPSBbJ25hbWUnLCAnaHR0cEVxdWl2JywgJ2NoYXJTZXQnLCAnaXRlbVByb3AnXVxuXG4vKlxuIHJldHVybnMgYSBmdW5jdGlvbiBmb3IgZmlsdGVyaW5nIGhlYWQgY2hpbGQgZWxlbWVudHNcbiB3aGljaCBzaG91bGRuJ3QgYmUgZHVwbGljYXRlZCwgbGlrZSA8dGl0bGUvPlxuIEFsc28gYWRkcyBzdXBwb3J0IGZvciBkZWR1cGxpY2F0ZWQgYGtleWAgcHJvcGVydGllc1xuKi9cbmZ1bmN0aW9uIHVuaXF1ZSgpIHtcbiAgY29uc3Qga2V5cyA9IG5ldyBTZXQoKVxuICBjb25zdCB0YWdzID0gbmV3IFNldCgpXG4gIGNvbnN0IG1ldGFUeXBlcyA9IG5ldyBTZXQoKVxuICBjb25zdCBtZXRhQ2F0ZWdvcmllczogeyBbbWV0YXR5cGU6IHN0cmluZ106IFNldDxzdHJpbmc+IH0gPSB7fVxuXG4gIHJldHVybiAoaDogUmVhY3QuUmVhY3RFbGVtZW50PGFueT4pID0+IHtcbiAgICBsZXQgaXNVbmlxdWUgPSB0cnVlXG4gICAgbGV0IGhhc0tleSA9IGZhbHNlXG5cbiAgICBpZiAoaC5rZXkgJiYgdHlwZW9mIGgua2V5ICE9PSAnbnVtYmVyJyAmJiBoLmtleS5pbmRleE9mKCckJykgPiAwKSB7XG4gICAgICBoYXNLZXkgPSB0cnVlXG4gICAgICBjb25zdCBrZXkgPSBoLmtleS5zbGljZShoLmtleS5pbmRleE9mKCckJykgKyAxKVxuICAgICAgaWYgKGtleXMuaGFzKGtleSkpIHtcbiAgICAgICAgaXNVbmlxdWUgPSBmYWxzZVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAga2V5cy5hZGQoa2V5KVxuICAgICAgfVxuICAgIH1cblxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBkZWZhdWx0LWNhc2VcbiAgICBzd2l0Y2ggKGgudHlwZSkge1xuICAgICAgY2FzZSAndGl0bGUnOlxuICAgICAgY2FzZSAnYmFzZSc6XG4gICAgICAgIGlmICh0YWdzLmhhcyhoLnR5cGUpKSB7XG4gICAgICAgICAgaXNVbmlxdWUgPSBmYWxzZVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHRhZ3MuYWRkKGgudHlwZSlcbiAgICAgICAgfVxuICAgICAgICBicmVha1xuICAgICAgY2FzZSAnbWV0YSc6XG4gICAgICAgIGZvciAobGV0IGkgPSAwLCBsZW4gPSBNRVRBVFlQRVMubGVuZ3RoOyBpIDwgbGVuOyBpKyspIHtcbiAgICAgICAgICBjb25zdCBtZXRhdHlwZSA9IE1FVEFUWVBFU1tpXVxuICAgICAgICAgIGlmICghaC5wcm9wcy5oYXNPd25Qcm9wZXJ0eShtZXRhdHlwZSkpIGNvbnRpbnVlXG5cbiAgICAgICAgICBpZiAobWV0YXR5cGUgPT09ICdjaGFyU2V0Jykge1xuICAgICAgICAgICAgaWYgKG1ldGFUeXBlcy5oYXMobWV0YXR5cGUpKSB7XG4gICAgICAgICAgICAgIGlzVW5pcXVlID0gZmFsc2VcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgIG1ldGFUeXBlcy5hZGQobWV0YXR5cGUpXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGNvbnN0IGNhdGVnb3J5ID0gaC5wcm9wc1ttZXRhdHlwZV1cbiAgICAgICAgICAgIGNvbnN0IGNhdGVnb3JpZXMgPSBtZXRhQ2F0ZWdvcmllc1ttZXRhdHlwZV0gfHwgbmV3IFNldCgpXG4gICAgICAgICAgICBpZiAoKG1ldGF0eXBlICE9PSAnbmFtZScgfHwgIWhhc0tleSkgJiYgY2F0ZWdvcmllcy5oYXMoY2F0ZWdvcnkpKSB7XG4gICAgICAgICAgICAgIGlzVW5pcXVlID0gZmFsc2VcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgIGNhdGVnb3JpZXMuYWRkKGNhdGVnb3J5KVxuICAgICAgICAgICAgICBtZXRhQ2F0ZWdvcmllc1ttZXRhdHlwZV0gPSBjYXRlZ29yaWVzXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGJyZWFrXG4gICAgfVxuXG4gICAgcmV0dXJuIGlzVW5pcXVlXG4gIH1cbn1cblxuLyoqXG4gKlxuICogQHBhcmFtIGhlYWRDaGlsZHJlbkVsZW1lbnRzIExpc3Qgb2YgY2hpbGRyZW4gb2YgPEhlYWQ+XG4gKi9cbmZ1bmN0aW9uIHJlZHVjZUNvbXBvbmVudHM8VCBleHRlbmRzIHt9ICYgV2l0aEluQW1wTW9kZT4oXG4gIGhlYWRDaGlsZHJlbkVsZW1lbnRzOiBBcnJheTxSZWFjdC5SZWFjdEVsZW1lbnQ8YW55Pj4sXG4gIHByb3BzOiBUXG4pIHtcbiAgY29uc3QgeyBpbkFtcE1vZGUgfSA9IHByb3BzXG4gIHJldHVybiBoZWFkQ2hpbGRyZW5FbGVtZW50c1xuICAgIC5yZWR1Y2Uob25seVJlYWN0RWxlbWVudCwgW10pXG4gICAgLnJldmVyc2UoKVxuICAgIC5jb25jYXQoZGVmYXVsdEhlYWQoaW5BbXBNb2RlKS5yZXZlcnNlKCkpXG4gICAgLmZpbHRlcih1bmlxdWUoKSlcbiAgICAucmV2ZXJzZSgpXG4gICAgLm1hcCgoYzogUmVhY3QuUmVhY3RFbGVtZW50PGFueT4sIGk6IG51bWJlcikgPT4ge1xuICAgICAgY29uc3Qga2V5ID0gYy5rZXkgfHwgaVxuICAgICAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WID09PSAnZGV2ZWxvcG1lbnQnKSB7XG4gICAgICAgIC8vIG9taXQgSlNPTi1MRCBzdHJ1Y3R1cmVkIGRhdGEgc25pcHBldHMgZnJvbSB0aGUgd2FybmluZ1xuICAgICAgICBpZiAoYy50eXBlID09PSAnc2NyaXB0JyAmJiBjLnByb3BzWyd0eXBlJ10gIT09ICdhcHBsaWNhdGlvbi9sZCtqc29uJykge1xuICAgICAgICAgIGNvbnN0IHNyY01lc3NhZ2UgPSBjLnByb3BzWydzcmMnXVxuICAgICAgICAgICAgPyBgPHNjcmlwdD4gdGFnIHdpdGggc3JjPVwiJHtjLnByb3BzWydzcmMnXX1cImBcbiAgICAgICAgICAgIDogYGlubGluZSA8c2NyaXB0PmBcbiAgICAgICAgICB3YXJuT25jZShcbiAgICAgICAgICAgIGBEbyBub3QgYWRkIDxzY3JpcHQ+IHRhZ3MgdXNpbmcgbmV4dC9oZWFkIChzZWUgJHtzcmNNZXNzYWdlfSkuIFVzZSBuZXh0L3NjcmlwdCBpbnN0ZWFkLiBcXG5TZWUgbW9yZSBpbmZvIGhlcmU6IGh0dHBzOi8vbmV4dGpzLm9yZy9kb2NzL21lc3NhZ2VzL25vLXNjcmlwdC10YWdzLWluLWhlYWQtY29tcG9uZW50YFxuICAgICAgICAgIClcbiAgICAgICAgfSBlbHNlIGlmIChjLnR5cGUgPT09ICdsaW5rJyAmJiBjLnByb3BzWydyZWwnXSA9PT0gJ3N0eWxlc2hlZXQnKSB7XG4gICAgICAgICAgd2Fybk9uY2UoXG4gICAgICAgICAgICBgRG8gbm90IGFkZCBzdHlsZXNoZWV0cyB1c2luZyBuZXh0L2hlYWQgKHNlZSA8bGluayByZWw9XCJzdHlsZXNoZWV0XCI+IHRhZyB3aXRoIGhyZWY9XCIke2MucHJvcHNbJ2hyZWYnXX1cIikuIFVzZSBEb2N1bWVudCBpbnN0ZWFkLiBcXG5TZWUgbW9yZSBpbmZvIGhlcmU6IGh0dHBzOi8vbmV4dGpzLm9yZy9kb2NzL21lc3NhZ2VzL25vLXN0eWxlc2hlZXRzLWluLWhlYWQtY29tcG9uZW50YFxuICAgICAgICAgIClcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgcmV0dXJuIFJlYWN0LmNsb25lRWxlbWVudChjLCB7IGtleSB9KVxuICAgIH0pXG59XG5cbi8qKlxuICogVGhpcyBjb21wb25lbnQgaW5qZWN0cyBlbGVtZW50cyB0byBgPGhlYWQ+YCBvZiB5b3VyIHBhZ2UuXG4gKiBUbyBhdm9pZCBkdXBsaWNhdGVkIGB0YWdzYCBpbiBgPGhlYWQ+YCB5b3UgY2FuIHVzZSB0aGUgYGtleWAgcHJvcGVydHksIHdoaWNoIHdpbGwgbWFrZSBzdXJlIGV2ZXJ5IHRhZyBpcyBvbmx5IHJlbmRlcmVkIG9uY2UuXG4gKi9cbmZ1bmN0aW9uIEhlYWQoeyBjaGlsZHJlbiB9OiB7IGNoaWxkcmVuOiBSZWFjdC5SZWFjdE5vZGUgfSkge1xuICBjb25zdCBhbXBTdGF0ZSA9IHVzZUNvbnRleHQoQW1wU3RhdGVDb250ZXh0KVxuICBjb25zdCBoZWFkTWFuYWdlciA9IHVzZUNvbnRleHQoSGVhZE1hbmFnZXJDb250ZXh0KVxuICByZXR1cm4gKFxuICAgIDxFZmZlY3RcbiAgICAgIHJlZHVjZUNvbXBvbmVudHNUb1N0YXRlPXtyZWR1Y2VDb21wb25lbnRzfVxuICAgICAgaGVhZE1hbmFnZXI9e2hlYWRNYW5hZ2VyfVxuICAgICAgaW5BbXBNb2RlPXtpc0luQW1wTW9kZShhbXBTdGF0ZSl9XG4gICAgPlxuICAgICAge2NoaWxkcmVufVxuICAgIDwvRWZmZWN0PlxuICApXG59XG5cbmV4cG9ydCBkZWZhdWx0IEhlYWRcbiJdLCJuYW1lcyI6WyJkZWZhdWx0SGVhZCIsImluQW1wTW9kZSIsImhlYWQiLCJtZXRhIiwiY2hhclNldCIsInB1c2giLCJuYW1lIiwiY29udGVudCIsIm9ubHlSZWFjdEVsZW1lbnQiLCJsaXN0IiwiY2hpbGQiLCJ0eXBlIiwiUmVhY3QiLCJGcmFnbWVudCIsImNvbmNhdCIsIkNoaWxkcmVuIiwidG9BcnJheSIsInByb3BzIiwiY2hpbGRyZW4iLCJyZWR1Y2UiLCJmcmFnbWVudExpc3QiLCJmcmFnbWVudENoaWxkIiwiTUVUQVRZUEVTIiwidW5pcXVlIiwia2V5cyIsIlNldCIsInRhZ3MiLCJtZXRhVHlwZXMiLCJtZXRhQ2F0ZWdvcmllcyIsImgiLCJpc1VuaXF1ZSIsImhhc0tleSIsImtleSIsImluZGV4T2YiLCJzbGljZSIsImhhcyIsImFkZCIsImkiLCJsZW4iLCJsZW5ndGgiLCJtZXRhdHlwZSIsImhhc093blByb3BlcnR5IiwiY2F0ZWdvcnkiLCJjYXRlZ29yaWVzIiwicmVkdWNlQ29tcG9uZW50cyIsImhlYWRDaGlsZHJlbkVsZW1lbnRzIiwicmV2ZXJzZSIsImZpbHRlciIsIm1hcCIsImMiLCJwcm9jZXNzIiwiZW52IiwiTk9ERV9FTlYiLCJzcmNNZXNzYWdlIiwid2Fybk9uY2UiLCJjbG9uZUVsZW1lbnQiLCJIZWFkIiwiYW1wU3RhdGUiLCJ1c2VDb250ZXh0IiwiQW1wU3RhdGVDb250ZXh0IiwiaGVhZE1hbmFnZXIiLCJIZWFkTWFuYWdlckNvbnRleHQiLCJFZmZlY3QiLCJyZWR1Y2VDb21wb25lbnRzVG9TdGF0ZSIsImlzSW5BbXBNb2RlIl0sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(pages-dir-node)/./node_modules/next/dist/shared/lib/head.js\n"); - -/***/ }), - -/***/ "(pages-dir-node)/./node_modules/next/dist/shared/lib/i18n/detect-domain-locale.js": -/*!************************************************************************!*\ - !*** ./node_modules/next/dist/shared/lib/i18n/detect-domain-locale.js ***! - \************************************************************************/ -/***/ ((__unused_webpack_module, exports) => { - -"use strict"; -eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"detectDomainLocale\", ({\n enumerable: true,\n get: function() {\n return detectDomainLocale;\n }\n}));\nfunction detectDomainLocale(domainItems, hostname, detectedLocale) {\n if (!domainItems) return;\n if (detectedLocale) {\n detectedLocale = detectedLocale.toLowerCase();\n }\n for (const item of domainItems){\n var _item_domain, _item_locales;\n // remove port if present\n const domainHostname = (_item_domain = item.domain) == null ? void 0 : _item_domain.split(':', 1)[0].toLowerCase();\n if (hostname === domainHostname || detectedLocale === item.defaultLocale.toLowerCase() || ((_item_locales = item.locales) == null ? void 0 : _item_locales.some((locale)=>locale.toLowerCase() === detectedLocale))) {\n return item;\n }\n }\n} //# sourceMappingURL=detect-domain-locale.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1ub2RlKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3Qvc2hhcmVkL2xpYi9pMThuL2RldGVjdC1kb21haW4tbG9jYWxlLmpzIiwibWFwcGluZ3MiOiI7Ozs7c0RBRWdCQTs7O2VBQUFBOzs7QUFBVCxTQUFTQSxtQkFDZEMsV0FBcUMsRUFDckNDLFFBQWlCLEVBQ2pCQyxjQUF1QjtJQUV2QixJQUFJLENBQUNGLGFBQWE7SUFFbEIsSUFBSUUsZ0JBQWdCO1FBQ2xCQSxpQkFBaUJBLGVBQWVDLFdBQVc7SUFDN0M7SUFFQSxLQUFLLE1BQU1DLFFBQVFKLFlBQWE7WUFFUEksY0FJckJBO1FBTEYseUJBQXlCO1FBQ3pCLE1BQU1DLGlCQUFBQSxDQUFpQkQsZUFBQUEsS0FBS0UsTUFBQUEsS0FBTSxnQkFBWEYsYUFBYUcsS0FBSyxDQUFDLEtBQUssRUFBRSxDQUFDLEVBQUUsQ0FBQ0osV0FBVztRQUNoRSxJQUNFRixhQUFhSSxrQkFDYkgsbUJBQW1CRSxLQUFLSSxhQUFhLENBQUNMLFdBQVcsUUFDakRDLGdCQUFBQSxLQUFLSyxPQUFBQSxLQUFPLGdCQUFaTCxjQUFjTSxJQUFJLENBQUMsQ0FBQ0MsU0FBV0EsT0FBT1IsV0FBVyxPQUFPRCxlQUFBQSxHQUN4RDtZQUNBLE9BQU9FO1FBQ1Q7SUFDRjtBQUNGIiwic291cmNlcyI6WyJEOlxcc3JjXFxzaGFyZWRcXGxpYlxcaTE4blxcZGV0ZWN0LWRvbWFpbi1sb2NhbGUudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBEb21haW5Mb2NhbGUgfSBmcm9tICcuLi8uLi8uLi9zZXJ2ZXIvY29uZmlnLXNoYXJlZCdcblxuZXhwb3J0IGZ1bmN0aW9uIGRldGVjdERvbWFpbkxvY2FsZShcbiAgZG9tYWluSXRlbXM/OiByZWFkb25seSBEb21haW5Mb2NhbGVbXSxcbiAgaG9zdG5hbWU/OiBzdHJpbmcsXG4gIGRldGVjdGVkTG9jYWxlPzogc3RyaW5nXG4pIHtcbiAgaWYgKCFkb21haW5JdGVtcykgcmV0dXJuXG5cbiAgaWYgKGRldGVjdGVkTG9jYWxlKSB7XG4gICAgZGV0ZWN0ZWRMb2NhbGUgPSBkZXRlY3RlZExvY2FsZS50b0xvd2VyQ2FzZSgpXG4gIH1cblxuICBmb3IgKGNvbnN0IGl0ZW0gb2YgZG9tYWluSXRlbXMpIHtcbiAgICAvLyByZW1vdmUgcG9ydCBpZiBwcmVzZW50XG4gICAgY29uc3QgZG9tYWluSG9zdG5hbWUgPSBpdGVtLmRvbWFpbj8uc3BsaXQoJzonLCAxKVswXS50b0xvd2VyQ2FzZSgpXG4gICAgaWYgKFxuICAgICAgaG9zdG5hbWUgPT09IGRvbWFpbkhvc3RuYW1lIHx8XG4gICAgICBkZXRlY3RlZExvY2FsZSA9PT0gaXRlbS5kZWZhdWx0TG9jYWxlLnRvTG93ZXJDYXNlKCkgfHxcbiAgICAgIGl0ZW0ubG9jYWxlcz8uc29tZSgobG9jYWxlKSA9PiBsb2NhbGUudG9Mb3dlckNhc2UoKSA9PT0gZGV0ZWN0ZWRMb2NhbGUpXG4gICAgKSB7XG4gICAgICByZXR1cm4gaXRlbVxuICAgIH1cbiAgfVxufVxuIl0sIm5hbWVzIjpbImRldGVjdERvbWFpbkxvY2FsZSIsImRvbWFpbkl0ZW1zIiwiaG9zdG5hbWUiLCJkZXRlY3RlZExvY2FsZSIsInRvTG93ZXJDYXNlIiwiaXRlbSIsImRvbWFpbkhvc3RuYW1lIiwiZG9tYWluIiwic3BsaXQiLCJkZWZhdWx0TG9jYWxlIiwibG9jYWxlcyIsInNvbWUiLCJsb2NhbGUiXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(pages-dir-node)/./node_modules/next/dist/shared/lib/i18n/detect-domain-locale.js\n"); - -/***/ }), - -/***/ "(pages-dir-node)/./node_modules/next/dist/shared/lib/i18n/normalize-locale-path.js": -/*!*************************************************************************!*\ - !*** ./node_modules/next/dist/shared/lib/i18n/normalize-locale-path.js ***! - \*************************************************************************/ -/***/ ((__unused_webpack_module, exports) => { - -"use strict"; -eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"normalizeLocalePath\", ({\n enumerable: true,\n get: function() {\n return normalizeLocalePath;\n }\n}));\n/**\n * A cache of lowercased locales for each list of locales. This is stored as a\n * WeakMap so if the locales are garbage collected, the cache entry will be\n * removed as well.\n */ const cache = new WeakMap();\nfunction normalizeLocalePath(pathname, locales) {\n // If locales is undefined, return the pathname as is.\n if (!locales) return {\n pathname\n };\n // Get the cached lowercased locales or create a new cache entry.\n let lowercasedLocales = cache.get(locales);\n if (!lowercasedLocales) {\n lowercasedLocales = locales.map((locale)=>locale.toLowerCase());\n cache.set(locales, lowercasedLocales);\n }\n let detectedLocale;\n // The first segment will be empty, because it has a leading `/`. If\n // there is no further segment, there is no locale (or it's the default).\n const segments = pathname.split('/', 2);\n // If there's no second segment (ie, the pathname is just `/`), there's no\n // locale.\n if (!segments[1]) return {\n pathname\n };\n // The second segment will contain the locale part if any.\n const segment = segments[1].toLowerCase();\n // See if the segment matches one of the locales. If it doesn't, there is\n // no locale (or it's the default).\n const index = lowercasedLocales.indexOf(segment);\n if (index < 0) return {\n pathname\n };\n // Return the case-sensitive locale.\n detectedLocale = locales[index];\n // Remove the `/${locale}` part of the pathname.\n pathname = pathname.slice(detectedLocale.length + 1) || '/';\n return {\n pathname,\n detectedLocale\n };\n} //# sourceMappingURL=normalize-locale-path.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1ub2RlKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3Qvc2hhcmVkL2xpYi9pMThuL25vcm1hbGl6ZS1sb2NhbGUtcGF0aC5qcyIsIm1hcHBpbmdzIjoiOzs7O3VEQXFCZ0JBOzs7ZUFBQUE7OztBQWhCaEI7Ozs7Q0FJQyxHQUNELE1BQU1DLFFBQVEsSUFBSUM7QUFXWCxTQUFTRixvQkFDZEcsUUFBZ0IsRUFDaEJDLE9BQTJCO0lBRTNCLHNEQUFzRDtJQUN0RCxJQUFJLENBQUNBLFNBQVMsT0FBTztRQUFFRDtJQUFTO0lBRWhDLGlFQUFpRTtJQUNqRSxJQUFJRSxvQkFBb0JKLE1BQU1LLEdBQUcsQ0FBQ0Y7SUFDbEMsSUFBSSxDQUFDQyxtQkFBbUI7UUFDdEJBLG9CQUFvQkQsUUFBUUcsR0FBRyxDQUFDLENBQUNDLFNBQVdBLE9BQU9DLFdBQVc7UUFDOURSLE1BQU1TLEdBQUcsQ0FBQ04sU0FBU0M7SUFDckI7SUFFQSxJQUFJTTtJQUVKLG9FQUFvRTtJQUNwRSx5RUFBeUU7SUFDekUsTUFBTUMsV0FBV1QsU0FBU1UsS0FBSyxDQUFDLEtBQUs7SUFFckMsMEVBQTBFO0lBQzFFLFVBQVU7SUFDVixJQUFJLENBQUNELFFBQVEsQ0FBQyxFQUFFLEVBQUUsT0FBTztRQUFFVDtJQUFTO0lBRXBDLDBEQUEwRDtJQUMxRCxNQUFNVyxVQUFVRixRQUFRLENBQUMsRUFBRSxDQUFDSCxXQUFXO0lBRXZDLHlFQUF5RTtJQUN6RSxtQ0FBbUM7SUFDbkMsTUFBTU0sUUFBUVYsa0JBQWtCVyxPQUFPLENBQUNGO0lBQ3hDLElBQUlDLFFBQVEsR0FBRyxPQUFPO1FBQUVaO0lBQVM7SUFFakMsb0NBQW9DO0lBQ3BDUSxpQkFBaUJQLE9BQU8sQ0FBQ1csTUFBTTtJQUUvQixnREFBZ0Q7SUFDaERaLFdBQVdBLFNBQVNjLEtBQUssQ0FBQ04sZUFBZU8sTUFBTSxHQUFHLE1BQU07SUFFeEQsT0FBTztRQUFFZjtRQUFVUTtJQUFlO0FBQ3BDIiwic291cmNlcyI6WyJEOlxcc3JjXFxzaGFyZWRcXGxpYlxcaTE4blxcbm9ybWFsaXplLWxvY2FsZS1wYXRoLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBpbnRlcmZhY2UgUGF0aExvY2FsZSB7XG4gIGRldGVjdGVkTG9jYWxlPzogc3RyaW5nXG4gIHBhdGhuYW1lOiBzdHJpbmdcbn1cblxuLyoqXG4gKiBBIGNhY2hlIG9mIGxvd2VyY2FzZWQgbG9jYWxlcyBmb3IgZWFjaCBsaXN0IG9mIGxvY2FsZXMuIFRoaXMgaXMgc3RvcmVkIGFzIGFcbiAqIFdlYWtNYXAgc28gaWYgdGhlIGxvY2FsZXMgYXJlIGdhcmJhZ2UgY29sbGVjdGVkLCB0aGUgY2FjaGUgZW50cnkgd2lsbCBiZVxuICogcmVtb3ZlZCBhcyB3ZWxsLlxuICovXG5jb25zdCBjYWNoZSA9IG5ldyBXZWFrTWFwPHJlYWRvbmx5IHN0cmluZ1tdLCByZWFkb25seSBzdHJpbmdbXT4oKVxuXG4vKipcbiAqIEZvciBhIHBhdGhuYW1lIHRoYXQgbWF5IGluY2x1ZGUgYSBsb2NhbGUgZnJvbSBhIGxpc3Qgb2YgbG9jYWxlcywgaXRcbiAqIHJlbW92ZXMgdGhlIGxvY2FsZSBmcm9tIHRoZSBwYXRobmFtZSByZXR1cm5pbmcgaXQgYWxvbmdzaWRlIHdpdGggdGhlXG4gKiBkZXRlY3RlZCBsb2NhbGUuXG4gKlxuICogQHBhcmFtIHBhdGhuYW1lIEEgcGF0aG5hbWUgdGhhdCBtYXkgaW5jbHVkZSBhIGxvY2FsZS5cbiAqIEBwYXJhbSBsb2NhbGVzIEEgbGlzdCBvZiBsb2NhbGVzLlxuICogQHJldHVybnMgVGhlIGRldGVjdGVkIGxvY2FsZSBhbmQgcGF0aG5hbWUgd2l0aG91dCBsb2NhbGVcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIG5vcm1hbGl6ZUxvY2FsZVBhdGgoXG4gIHBhdGhuYW1lOiBzdHJpbmcsXG4gIGxvY2FsZXM/OiByZWFkb25seSBzdHJpbmdbXVxuKTogUGF0aExvY2FsZSB7XG4gIC8vIElmIGxvY2FsZXMgaXMgdW5kZWZpbmVkLCByZXR1cm4gdGhlIHBhdGhuYW1lIGFzIGlzLlxuICBpZiAoIWxvY2FsZXMpIHJldHVybiB7IHBhdGhuYW1lIH1cblxuICAvLyBHZXQgdGhlIGNhY2hlZCBsb3dlcmNhc2VkIGxvY2FsZXMgb3IgY3JlYXRlIGEgbmV3IGNhY2hlIGVudHJ5LlxuICBsZXQgbG93ZXJjYXNlZExvY2FsZXMgPSBjYWNoZS5nZXQobG9jYWxlcylcbiAgaWYgKCFsb3dlcmNhc2VkTG9jYWxlcykge1xuICAgIGxvd2VyY2FzZWRMb2NhbGVzID0gbG9jYWxlcy5tYXAoKGxvY2FsZSkgPT4gbG9jYWxlLnRvTG93ZXJDYXNlKCkpXG4gICAgY2FjaGUuc2V0KGxvY2FsZXMsIGxvd2VyY2FzZWRMb2NhbGVzKVxuICB9XG5cbiAgbGV0IGRldGVjdGVkTG9jYWxlOiBzdHJpbmcgfCB1bmRlZmluZWRcblxuICAvLyBUaGUgZmlyc3Qgc2VnbWVudCB3aWxsIGJlIGVtcHR5LCBiZWNhdXNlIGl0IGhhcyBhIGxlYWRpbmcgYC9gLiBJZlxuICAvLyB0aGVyZSBpcyBubyBmdXJ0aGVyIHNlZ21lbnQsIHRoZXJlIGlzIG5vIGxvY2FsZSAob3IgaXQncyB0aGUgZGVmYXVsdCkuXG4gIGNvbnN0IHNlZ21lbnRzID0gcGF0aG5hbWUuc3BsaXQoJy8nLCAyKVxuXG4gIC8vIElmIHRoZXJlJ3Mgbm8gc2Vjb25kIHNlZ21lbnQgKGllLCB0aGUgcGF0aG5hbWUgaXMganVzdCBgL2ApLCB0aGVyZSdzIG5vXG4gIC8vIGxvY2FsZS5cbiAgaWYgKCFzZWdtZW50c1sxXSkgcmV0dXJuIHsgcGF0aG5hbWUgfVxuXG4gIC8vIFRoZSBzZWNvbmQgc2VnbWVudCB3aWxsIGNvbnRhaW4gdGhlIGxvY2FsZSBwYXJ0IGlmIGFueS5cbiAgY29uc3Qgc2VnbWVudCA9IHNlZ21lbnRzWzFdLnRvTG93ZXJDYXNlKClcblxuICAvLyBTZWUgaWYgdGhlIHNlZ21lbnQgbWF0Y2hlcyBvbmUgb2YgdGhlIGxvY2FsZXMuIElmIGl0IGRvZXNuJ3QsIHRoZXJlIGlzXG4gIC8vIG5vIGxvY2FsZSAob3IgaXQncyB0aGUgZGVmYXVsdCkuXG4gIGNvbnN0IGluZGV4ID0gbG93ZXJjYXNlZExvY2FsZXMuaW5kZXhPZihzZWdtZW50KVxuICBpZiAoaW5kZXggPCAwKSByZXR1cm4geyBwYXRobmFtZSB9XG5cbiAgLy8gUmV0dXJuIHRoZSBjYXNlLXNlbnNpdGl2ZSBsb2NhbGUuXG4gIGRldGVjdGVkTG9jYWxlID0gbG9jYWxlc1tpbmRleF1cblxuICAvLyBSZW1vdmUgdGhlIGAvJHtsb2NhbGV9YCBwYXJ0IG9mIHRoZSBwYXRobmFtZS5cbiAgcGF0aG5hbWUgPSBwYXRobmFtZS5zbGljZShkZXRlY3RlZExvY2FsZS5sZW5ndGggKyAxKSB8fCAnLydcblxuICByZXR1cm4geyBwYXRobmFtZSwgZGV0ZWN0ZWRMb2NhbGUgfVxufVxuIl0sIm5hbWVzIjpbIm5vcm1hbGl6ZUxvY2FsZVBhdGgiLCJjYWNoZSIsIldlYWtNYXAiLCJwYXRobmFtZSIsImxvY2FsZXMiLCJsb3dlcmNhc2VkTG9jYWxlcyIsImdldCIsIm1hcCIsImxvY2FsZSIsInRvTG93ZXJDYXNlIiwic2V0IiwiZGV0ZWN0ZWRMb2NhbGUiLCJzZWdtZW50cyIsInNwbGl0Iiwic2VnbWVudCIsImluZGV4IiwiaW5kZXhPZiIsInNsaWNlIiwibGVuZ3RoIl0sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(pages-dir-node)/./node_modules/next/dist/shared/lib/i18n/normalize-locale-path.js\n"); - -/***/ }), - -/***/ "(pages-dir-node)/./node_modules/next/dist/shared/lib/is-plain-object.js": -/*!**************************************************************!*\ - !*** ./node_modules/next/dist/shared/lib/is-plain-object.js ***! - \**************************************************************/ -/***/ ((__unused_webpack_module, exports) => { - -"use strict"; -eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n getObjectClassLabel: function() {\n return getObjectClassLabel;\n },\n isPlainObject: function() {\n return isPlainObject;\n }\n});\nfunction getObjectClassLabel(value) {\n return Object.prototype.toString.call(value);\n}\nfunction isPlainObject(value) {\n if (getObjectClassLabel(value) !== '[object Object]') {\n return false;\n }\n const prototype = Object.getPrototypeOf(value);\n /**\n * this used to be previously:\n *\n * `return prototype === null || prototype === Object.prototype`\n *\n * but Edge Runtime expose Object from vm, being that kind of type-checking wrongly fail.\n *\n * It was changed to the current implementation since it's resilient to serialization.\n */ return prototype === null || prototype.hasOwnProperty('isPrototypeOf');\n} //# sourceMappingURL=is-plain-object.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1ub2RlKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3Qvc2hhcmVkL2xpYi9pcy1wbGFpbi1vYmplY3QuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7O0lBQWdCQSxtQkFBbUI7ZUFBbkJBOztJQUlBQyxhQUFhO2VBQWJBOzs7QUFKVCxTQUFTRCxvQkFBb0JFLEtBQVU7SUFDNUMsT0FBT0MsT0FBT0MsU0FBUyxDQUFDQyxRQUFRLENBQUNDLElBQUksQ0FBQ0o7QUFDeEM7QUFFTyxTQUFTRCxjQUFjQyxLQUFVO0lBQ3RDLElBQUlGLG9CQUFvQkUsV0FBVyxtQkFBbUI7UUFDcEQsT0FBTztJQUNUO0lBRUEsTUFBTUUsWUFBWUQsT0FBT0ksY0FBYyxDQUFDTDtJQUV4Qzs7Ozs7Ozs7R0FRQyxHQUNELE9BQU9FLGNBQWMsUUFBUUEsVUFBVUksY0FBYyxDQUFDO0FBQ3hEIiwic291cmNlcyI6WyJEOlxcc3JjXFxzaGFyZWRcXGxpYlxcaXMtcGxhaW4tb2JqZWN0LnRzIl0sInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBmdW5jdGlvbiBnZXRPYmplY3RDbGFzc0xhYmVsKHZhbHVlOiBhbnkpOiBzdHJpbmcge1xuICByZXR1cm4gT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKHZhbHVlKVxufVxuXG5leHBvcnQgZnVuY3Rpb24gaXNQbGFpbk9iamVjdCh2YWx1ZTogYW55KTogYm9vbGVhbiB7XG4gIGlmIChnZXRPYmplY3RDbGFzc0xhYmVsKHZhbHVlKSAhPT0gJ1tvYmplY3QgT2JqZWN0XScpIHtcbiAgICByZXR1cm4gZmFsc2VcbiAgfVxuXG4gIGNvbnN0IHByb3RvdHlwZSA9IE9iamVjdC5nZXRQcm90b3R5cGVPZih2YWx1ZSlcblxuICAvKipcbiAgICogdGhpcyB1c2VkIHRvIGJlIHByZXZpb3VzbHk6XG4gICAqXG4gICAqIGByZXR1cm4gcHJvdG90eXBlID09PSBudWxsIHx8IHByb3RvdHlwZSA9PT0gT2JqZWN0LnByb3RvdHlwZWBcbiAgICpcbiAgICogYnV0IEVkZ2UgUnVudGltZSBleHBvc2UgT2JqZWN0IGZyb20gdm0sIGJlaW5nIHRoYXQga2luZCBvZiB0eXBlLWNoZWNraW5nIHdyb25nbHkgZmFpbC5cbiAgICpcbiAgICogSXQgd2FzIGNoYW5nZWQgdG8gdGhlIGN1cnJlbnQgaW1wbGVtZW50YXRpb24gc2luY2UgaXQncyByZXNpbGllbnQgdG8gc2VyaWFsaXphdGlvbi5cbiAgICovXG4gIHJldHVybiBwcm90b3R5cGUgPT09IG51bGwgfHwgcHJvdG90eXBlLmhhc093blByb3BlcnR5KCdpc1Byb3RvdHlwZU9mJylcbn1cbiJdLCJuYW1lcyI6WyJnZXRPYmplY3RDbGFzc0xhYmVsIiwiaXNQbGFpbk9iamVjdCIsInZhbHVlIiwiT2JqZWN0IiwicHJvdG90eXBlIiwidG9TdHJpbmciLCJjYWxsIiwiZ2V0UHJvdG90eXBlT2YiLCJoYXNPd25Qcm9wZXJ0eSJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(pages-dir-node)/./node_modules/next/dist/shared/lib/is-plain-object.js\n"); - -/***/ }), - -/***/ "(pages-dir-node)/./node_modules/next/dist/shared/lib/is-thenable.js": -/*!**********************************************************!*\ - !*** ./node_modules/next/dist/shared/lib/is-thenable.js ***! - \**********************************************************/ -/***/ ((__unused_webpack_module, exports) => { - -"use strict"; -eval("/**\n * Check to see if a value is Thenable.\n *\n * @param promise the maybe-thenable value\n * @returns true if the value is thenable\n */ \nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"isThenable\", ({\n enumerable: true,\n get: function() {\n return isThenable;\n }\n}));\nfunction isThenable(promise) {\n return promise !== null && typeof promise === 'object' && 'then' in promise && typeof promise.then === 'function';\n} //# sourceMappingURL=is-thenable.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1ub2RlKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3Qvc2hhcmVkL2xpYi9pcy10aGVuYWJsZS5qcyIsIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Q0FLQzs7Ozs4Q0FDZUE7OztlQUFBQTs7O0FBQVQsU0FBU0EsV0FDZEMsT0FBdUI7SUFFdkIsT0FDRUEsWUFBWSxRQUNaLE9BQU9BLFlBQVksWUFDbkIsVUFBVUEsV0FDVixPQUFPQSxRQUFRQyxJQUFJLEtBQUs7QUFFNUIiLCJzb3VyY2VzIjpbIkQ6XFxzcmNcXHNoYXJlZFxcbGliXFxpcy10aGVuYWJsZS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIENoZWNrIHRvIHNlZSBpZiBhIHZhbHVlIGlzIFRoZW5hYmxlLlxuICpcbiAqIEBwYXJhbSBwcm9taXNlIHRoZSBtYXliZS10aGVuYWJsZSB2YWx1ZVxuICogQHJldHVybnMgdHJ1ZSBpZiB0aGUgdmFsdWUgaXMgdGhlbmFibGVcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzVGhlbmFibGU8VCA9IHVua25vd24+KFxuICBwcm9taXNlOiBQcm9taXNlPFQ+IHwgVFxuKTogcHJvbWlzZSBpcyBQcm9taXNlPFQ+IHtcbiAgcmV0dXJuIChcbiAgICBwcm9taXNlICE9PSBudWxsICYmXG4gICAgdHlwZW9mIHByb21pc2UgPT09ICdvYmplY3QnICYmXG4gICAgJ3RoZW4nIGluIHByb21pc2UgJiZcbiAgICB0eXBlb2YgcHJvbWlzZS50aGVuID09PSAnZnVuY3Rpb24nXG4gIClcbn1cbiJdLCJuYW1lcyI6WyJpc1RoZW5hYmxlIiwicHJvbWlzZSIsInRoZW4iXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(pages-dir-node)/./node_modules/next/dist/shared/lib/is-thenable.js\n"); - -/***/ }), - -/***/ "(pages-dir-node)/./node_modules/next/dist/shared/lib/modern-browserslist-target.js": -/*!*************************************************************************!*\ - !*** ./node_modules/next/dist/shared/lib/modern-browserslist-target.js ***! - \*************************************************************************/ -/***/ ((module) => { - -"use strict"; -eval("// Note: This file is JS because it's used by the taskfile-swc.js file, which is JS.\n// Keep file changes in sync with the corresponding `.d.ts` files.\n/**\n * These are the browser versions that support all of the following:\n * static import: https://caniuse.com/es6-module\n * dynamic import: https://caniuse.com/es6-module-dynamic-import\n * import.meta: https://caniuse.com/mdn-javascript_operators_import_meta\n */ \nconst MODERN_BROWSERSLIST_TARGET = [\n 'chrome 64',\n 'edge 79',\n 'firefox 67',\n 'opera 51',\n 'safari 12'\n];\nmodule.exports = MODERN_BROWSERSLIST_TARGET; //# sourceMappingURL=modern-browserslist-target.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1ub2RlKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3Qvc2hhcmVkL2xpYi9tb2Rlcm4tYnJvd3NlcnNsaXN0LXRhcmdldC5qcyIsIm1hcHBpbmdzIjoiQUFBQSxvRkFBb0Y7QUFDcEYsa0VBQWtFO0FBQ2xFOzs7OztDQUtDO0FBQ0QsTUFBTUEsNkJBQTZCO0lBQ2pDO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7Q0FDRDtBQUVEQyxPQUFPQyxPQUFPLEdBQUdGIiwic291cmNlcyI6WyJEOlxcc3JjXFxzaGFyZWRcXGxpYlxcbW9kZXJuLWJyb3dzZXJzbGlzdC10YXJnZXQuanMiXSwic291cmNlc0NvbnRlbnQiOlsiLy8gTm90ZTogVGhpcyBmaWxlIGlzIEpTIGJlY2F1c2UgaXQncyB1c2VkIGJ5IHRoZSB0YXNrZmlsZS1zd2MuanMgZmlsZSwgd2hpY2ggaXMgSlMuXG4vLyBLZWVwIGZpbGUgY2hhbmdlcyBpbiBzeW5jIHdpdGggdGhlIGNvcnJlc3BvbmRpbmcgYC5kLnRzYCBmaWxlcy5cbi8qKlxuICogVGhlc2UgYXJlIHRoZSBicm93c2VyIHZlcnNpb25zIHRoYXQgc3VwcG9ydCBhbGwgb2YgdGhlIGZvbGxvd2luZzpcbiAqIHN0YXRpYyBpbXBvcnQ6IGh0dHBzOi8vY2FuaXVzZS5jb20vZXM2LW1vZHVsZVxuICogZHluYW1pYyBpbXBvcnQ6IGh0dHBzOi8vY2FuaXVzZS5jb20vZXM2LW1vZHVsZS1keW5hbWljLWltcG9ydFxuICogaW1wb3J0Lm1ldGE6IGh0dHBzOi8vY2FuaXVzZS5jb20vbWRuLWphdmFzY3JpcHRfb3BlcmF0b3JzX2ltcG9ydF9tZXRhXG4gKi9cbmNvbnN0IE1PREVSTl9CUk9XU0VSU0xJU1RfVEFSR0VUID0gW1xuICAnY2hyb21lIDY0JyxcbiAgJ2VkZ2UgNzknLFxuICAnZmlyZWZveCA2NycsXG4gICdvcGVyYSA1MScsXG4gICdzYWZhcmkgMTInLFxuXVxuXG5tb2R1bGUuZXhwb3J0cyA9IE1PREVSTl9CUk9XU0VSU0xJU1RfVEFSR0VUXG4iXSwibmFtZXMiOlsiTU9ERVJOX0JST1dTRVJTTElTVF9UQVJHRVQiLCJtb2R1bGUiLCJleHBvcnRzIl0sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(pages-dir-node)/./node_modules/next/dist/shared/lib/modern-browserslist-target.js\n"); - -/***/ }), - -/***/ "(pages-dir-node)/./node_modules/next/dist/shared/lib/page-path/denormalize-page-path.js": -/*!******************************************************************************!*\ - !*** ./node_modules/next/dist/shared/lib/page-path/denormalize-page-path.js ***! - \******************************************************************************/ -/***/ ((__unused_webpack_module, exports, __webpack_require__) => { - -"use strict"; -eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"denormalizePagePath\", ({\n enumerable: true,\n get: function() {\n return denormalizePagePath;\n }\n}));\nconst _utils = __webpack_require__(/*! ../router/utils */ \"(pages-dir-node)/./node_modules/next/dist/shared/lib/router/utils/index.js\");\nconst _normalizepathsep = __webpack_require__(/*! ./normalize-path-sep */ \"(pages-dir-node)/./node_modules/next/dist/shared/lib/page-path/normalize-path-sep.js\");\nfunction denormalizePagePath(page) {\n let _page = (0, _normalizepathsep.normalizePathSep)(page);\n return _page.startsWith('/index/') && !(0, _utils.isDynamicRoute)(_page) ? _page.slice(6) : _page !== '/index' ? _page : '/';\n} //# sourceMappingURL=denormalize-page-path.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1ub2RlKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3Qvc2hhcmVkL2xpYi9wYWdlLXBhdGgvZGVub3JtYWxpemUtcGFnZS1wYXRoLmpzIiwibWFwcGluZ3MiOiI7Ozs7dURBV2dCQTs7O2VBQUFBOzs7bUNBWGU7OENBQ0U7QUFVMUIsU0FBU0Esb0JBQW9CQyxJQUFZO0lBQzlDLElBQUlDLFFBQVFDLENBQUFBLEdBQUFBLGtCQUFBQSxnQkFBQUEsRUFBaUJGO0lBQzdCLE9BQU9DLE1BQU1FLFVBQVUsQ0FBQyxjQUFjLENBQUNDLENBQUFBLEdBQUFBLE9BQUFBLGNBQUFBLEVBQWVILFNBQ2xEQSxNQUFNSSxLQUFLLENBQUMsS0FDWkosVUFBVSxXQUNSQSxRQUNBO0FBQ1IiLCJzb3VyY2VzIjpbIkQ6XFxzcmNcXHNoYXJlZFxcbGliXFxwYWdlLXBhdGhcXGRlbm9ybWFsaXplLXBhZ2UtcGF0aC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBpc0R5bmFtaWNSb3V0ZSB9IGZyb20gJy4uL3JvdXRlci91dGlscydcbmltcG9ydCB7IG5vcm1hbGl6ZVBhdGhTZXAgfSBmcm9tICcuL25vcm1hbGl6ZS1wYXRoLXNlcCdcblxuLyoqXG4gKiBQZXJmb3JtcyB0aGUgb3Bwb3NpdGUgdHJhbnNmb3JtYXRpb24gb2YgYG5vcm1hbGl6ZVBhZ2VQYXRoYC4gTm90ZSB0aGF0XG4gKiB0aGlzIGZ1bmN0aW9uIGlzIG5vdCBpZGVtcG90ZW50IGVpdGhlciBpbiBjYXNlcyB3aGVyZSB0aGVyZSBhcmUgbXVsdGlwbGVcbiAqIGxlYWRpbmcgYC9pbmRleGAgZm9yIHRoZSBwYWdlLiBFeGFtcGxlczpcbiAqICAtIGAvaW5kZXhgIC0+IGAvYFxuICogIC0gYC9pbmRleC9mb29gIC0+IGAvZm9vYFxuICogIC0gYC9pbmRleC9pbmRleGAgLT4gYC9pbmRleGBcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGRlbm9ybWFsaXplUGFnZVBhdGgocGFnZTogc3RyaW5nKSB7XG4gIGxldCBfcGFnZSA9IG5vcm1hbGl6ZVBhdGhTZXAocGFnZSlcbiAgcmV0dXJuIF9wYWdlLnN0YXJ0c1dpdGgoJy9pbmRleC8nKSAmJiAhaXNEeW5hbWljUm91dGUoX3BhZ2UpXG4gICAgPyBfcGFnZS5zbGljZSg2KVxuICAgIDogX3BhZ2UgIT09ICcvaW5kZXgnXG4gICAgICA/IF9wYWdlXG4gICAgICA6ICcvJ1xufVxuIl0sIm5hbWVzIjpbImRlbm9ybWFsaXplUGFnZVBhdGgiLCJwYWdlIiwiX3BhZ2UiLCJub3JtYWxpemVQYXRoU2VwIiwic3RhcnRzV2l0aCIsImlzRHluYW1pY1JvdXRlIiwic2xpY2UiXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(pages-dir-node)/./node_modules/next/dist/shared/lib/page-path/denormalize-page-path.js\n"); - -/***/ }), - -/***/ "(pages-dir-node)/./node_modules/next/dist/shared/lib/page-path/ensure-leading-slash.js": -/*!*****************************************************************************!*\ - !*** ./node_modules/next/dist/shared/lib/page-path/ensure-leading-slash.js ***! - \*****************************************************************************/ -/***/ ((__unused_webpack_module, exports) => { - -"use strict"; -eval("/**\n * For a given page path, this function ensures that there is a leading slash.\n * If there is not a leading slash, one is added, otherwise it is noop.\n */ \nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"ensureLeadingSlash\", ({\n enumerable: true,\n get: function() {\n return ensureLeadingSlash;\n }\n}));\nfunction ensureLeadingSlash(path) {\n return path.startsWith('/') ? path : \"/\" + path;\n} //# sourceMappingURL=ensure-leading-slash.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1ub2RlKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3Qvc2hhcmVkL2xpYi9wYWdlLXBhdGgvZW5zdXJlLWxlYWRpbmctc2xhc2guanMiLCJtYXBwaW5ncyI6IkFBQUE7OztDQUdDOzs7O3NEQUNlQTs7O2VBQUFBOzs7QUFBVCxTQUFTQSxtQkFBbUJDLElBQVk7SUFDN0MsT0FBT0EsS0FBS0MsVUFBVSxDQUFDLE9BQU9ELE9BQVEsTUFBR0E7QUFDM0MiLCJzb3VyY2VzIjpbIkQ6XFxzcmNcXHNoYXJlZFxcbGliXFxwYWdlLXBhdGhcXGVuc3VyZS1sZWFkaW5nLXNsYXNoLnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogRm9yIGEgZ2l2ZW4gcGFnZSBwYXRoLCB0aGlzIGZ1bmN0aW9uIGVuc3VyZXMgdGhhdCB0aGVyZSBpcyBhIGxlYWRpbmcgc2xhc2guXG4gKiBJZiB0aGVyZSBpcyBub3QgYSBsZWFkaW5nIHNsYXNoLCBvbmUgaXMgYWRkZWQsIG90aGVyd2lzZSBpdCBpcyBub29wLlxuICovXG5leHBvcnQgZnVuY3Rpb24gZW5zdXJlTGVhZGluZ1NsYXNoKHBhdGg6IHN0cmluZykge1xuICByZXR1cm4gcGF0aC5zdGFydHNXaXRoKCcvJykgPyBwYXRoIDogYC8ke3BhdGh9YFxufVxuIl0sIm5hbWVzIjpbImVuc3VyZUxlYWRpbmdTbGFzaCIsInBhdGgiLCJzdGFydHNXaXRoIl0sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(pages-dir-node)/./node_modules/next/dist/shared/lib/page-path/ensure-leading-slash.js\n"); - -/***/ }), - -/***/ "(pages-dir-node)/./node_modules/next/dist/shared/lib/page-path/normalize-page-path.js": -/*!****************************************************************************!*\ - !*** ./node_modules/next/dist/shared/lib/page-path/normalize-page-path.js ***! - \****************************************************************************/ -/***/ ((__unused_webpack_module, exports, __webpack_require__) => { - -"use strict"; -eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"normalizePagePath\", ({\n enumerable: true,\n get: function() {\n return normalizePagePath;\n }\n}));\nconst _ensureleadingslash = __webpack_require__(/*! ./ensure-leading-slash */ \"(pages-dir-node)/./node_modules/next/dist/shared/lib/page-path/ensure-leading-slash.js\");\nconst _utils = __webpack_require__(/*! ../router/utils */ \"(pages-dir-node)/./node_modules/next/dist/shared/lib/router/utils/index.js\");\nconst _utils1 = __webpack_require__(/*! ../utils */ \"(pages-dir-node)/./node_modules/next/dist/shared/lib/utils.js\");\nfunction normalizePagePath(page) {\n const normalized = /^\\/index(\\/|$)/.test(page) && !(0, _utils.isDynamicRoute)(page) ? \"/index\" + page : page === '/' ? '/index' : (0, _ensureleadingslash.ensureLeadingSlash)(page);\n if (true) {\n const { posix } = __webpack_require__(/*! path */ \"path\");\n const resolvedPage = posix.normalize(normalized);\n if (resolvedPage !== normalized) {\n throw new _utils1.NormalizeError(\"Requested and resolved page mismatch: \" + normalized + \" \" + resolvedPage);\n }\n }\n return normalized;\n} //# sourceMappingURL=normalize-page-path.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1ub2RlKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3Qvc2hhcmVkL2xpYi9wYWdlLXBhdGgvbm9ybWFsaXplLXBhZ2UtcGF0aC5qcyIsIm1hcHBpbmdzIjoiOzs7O3FEQWFnQkE7OztlQUFBQTs7O2dEQWJtQjttQ0FDSjtvQ0FDQTtBQVd4QixTQUFTQSxrQkFBa0JDLElBQVk7SUFDNUMsTUFBTUMsYUFDSixpQkFBaUJDLElBQUksQ0FBQ0YsU0FBUyxDQUFDRyxDQUFBQSxHQUFBQSxPQUFBQSxjQUFBQSxFQUFlSCxRQUMxQyxXQUFRQSxPQUNUQSxTQUFTLE1BQ1AsV0FDQUksQ0FBQUEsR0FBQUEsb0JBQUFBLGtCQUFBQSxFQUFtQko7SUFFM0IsSUFBSUssSUFBbUMsRUFBRTtRQUN2QyxNQUFNLEVBQUVHLEtBQUssRUFBRSxHQUFHQyxtQkFBT0EsQ0FBQyxrQkFBTTtRQUNoQyxNQUFNQyxlQUFlRixNQUFNRyxTQUFTLENBQUNWO1FBQ3JDLElBQUlTLGlCQUFpQlQsWUFBWTtZQUMvQixNQUFNLElBQUlXLFFBQUFBLGNBQWMsQ0FDckIsMkNBQXdDWCxhQUFXLE1BQUdTO1FBRTNEO0lBQ0Y7SUFFQSxPQUFPVDtBQUNUIiwic291cmNlcyI6WyJEOlxcc3JjXFxzaGFyZWRcXGxpYlxccGFnZS1wYXRoXFxub3JtYWxpemUtcGFnZS1wYXRoLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGVuc3VyZUxlYWRpbmdTbGFzaCB9IGZyb20gJy4vZW5zdXJlLWxlYWRpbmctc2xhc2gnXG5pbXBvcnQgeyBpc0R5bmFtaWNSb3V0ZSB9IGZyb20gJy4uL3JvdXRlci91dGlscydcbmltcG9ydCB7IE5vcm1hbGl6ZUVycm9yIH0gZnJvbSAnLi4vdXRpbHMnXG5cbi8qKlxuICogVGFrZXMgYSBwYWdlIGFuZCB0cmFuc2Zvcm1zIGl0IGludG8gaXRzIGZpbGUgY291bnRlcnBhcnQgZW5zdXJpbmcgdGhhdCB0aGVcbiAqIG91dHB1dCBpcyBub3JtYWxpemVkLiBOb3RlIHRoaXMgZnVuY3Rpb24gaXMgbm90IGlkZW1wb3RlbnQgYmVjYXVzZSBhIHBhZ2VcbiAqIGAvaW5kZXhgIGNhbiBiZSByZWZlcmVuY2luZyBgL2luZGV4L2luZGV4LmpzYCBhbmQgYC9pbmRleC9pbmRleGAgY291bGQgYmVcbiAqIHJlZmVyZW5jaW5nIGAvaW5kZXgvaW5kZXgvaW5kZXguanNgLiBFeGFtcGxlczpcbiAqICAtIGAvYCAtPiBgL2luZGV4YFxuICogIC0gYC9pbmRleC9mb29gIC0+IGAvaW5kZXgvaW5kZXgvZm9vYFxuICogIC0gYC9pbmRleGAgLT4gYC9pbmRleC9pbmRleGBcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIG5vcm1hbGl6ZVBhZ2VQYXRoKHBhZ2U6IHN0cmluZyk6IHN0cmluZyB7XG4gIGNvbnN0IG5vcm1hbGl6ZWQgPVxuICAgIC9eXFwvaW5kZXgoXFwvfCQpLy50ZXN0KHBhZ2UpICYmICFpc0R5bmFtaWNSb3V0ZShwYWdlKVxuICAgICAgPyBgL2luZGV4JHtwYWdlfWBcbiAgICAgIDogcGFnZSA9PT0gJy8nXG4gICAgICAgID8gJy9pbmRleCdcbiAgICAgICAgOiBlbnN1cmVMZWFkaW5nU2xhc2gocGFnZSlcblxuICBpZiAocHJvY2Vzcy5lbnYuTkVYVF9SVU5USU1FICE9PSAnZWRnZScpIHtcbiAgICBjb25zdCB7IHBvc2l4IH0gPSByZXF1aXJlKCdwYXRoJykgYXMgdHlwZW9mIGltcG9ydCgncGF0aCcpXG4gICAgY29uc3QgcmVzb2x2ZWRQYWdlID0gcG9zaXgubm9ybWFsaXplKG5vcm1hbGl6ZWQpXG4gICAgaWYgKHJlc29sdmVkUGFnZSAhPT0gbm9ybWFsaXplZCkge1xuICAgICAgdGhyb3cgbmV3IE5vcm1hbGl6ZUVycm9yKFxuICAgICAgICBgUmVxdWVzdGVkIGFuZCByZXNvbHZlZCBwYWdlIG1pc21hdGNoOiAke25vcm1hbGl6ZWR9ICR7cmVzb2x2ZWRQYWdlfWBcbiAgICAgIClcbiAgICB9XG4gIH1cblxuICByZXR1cm4gbm9ybWFsaXplZFxufVxuIl0sIm5hbWVzIjpbIm5vcm1hbGl6ZVBhZ2VQYXRoIiwicGFnZSIsIm5vcm1hbGl6ZWQiLCJ0ZXN0IiwiaXNEeW5hbWljUm91dGUiLCJlbnN1cmVMZWFkaW5nU2xhc2giLCJwcm9jZXNzIiwiZW52IiwiTkVYVF9SVU5USU1FIiwicG9zaXgiLCJyZXF1aXJlIiwicmVzb2x2ZWRQYWdlIiwibm9ybWFsaXplIiwiTm9ybWFsaXplRXJyb3IiXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(pages-dir-node)/./node_modules/next/dist/shared/lib/page-path/normalize-page-path.js\n"); - -/***/ }), - -/***/ "(pages-dir-node)/./node_modules/next/dist/shared/lib/page-path/normalize-path-sep.js": -/*!***************************************************************************!*\ - !*** ./node_modules/next/dist/shared/lib/page-path/normalize-path-sep.js ***! - \***************************************************************************/ -/***/ ((__unused_webpack_module, exports) => { - -"use strict"; -eval("/**\n * For a given page path, this function ensures that there is no backslash\n * escaping slashes in the path. Example:\n * - `foo\\/bar\\/baz` -> `foo/bar/baz`\n */ \nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"normalizePathSep\", ({\n enumerable: true,\n get: function() {\n return normalizePathSep;\n }\n}));\nfunction normalizePathSep(path) {\n return path.replace(/\\\\/g, '/');\n} //# sourceMappingURL=normalize-path-sep.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1ub2RlKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3Qvc2hhcmVkL2xpYi9wYWdlLXBhdGgvbm9ybWFsaXplLXBhdGgtc2VwLmpzIiwibWFwcGluZ3MiOiJBQUFBOzs7O0NBSUM7Ozs7b0RBQ2VBOzs7ZUFBQUE7OztBQUFULFNBQVNBLGlCQUFpQkMsSUFBWTtJQUMzQyxPQUFPQSxLQUFLQyxPQUFPLENBQUMsT0FBTztBQUM3QiIsInNvdXJjZXMiOlsiRDpcXHNyY1xcc2hhcmVkXFxsaWJcXHBhZ2UtcGF0aFxcbm9ybWFsaXplLXBhdGgtc2VwLnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogRm9yIGEgZ2l2ZW4gcGFnZSBwYXRoLCB0aGlzIGZ1bmN0aW9uIGVuc3VyZXMgdGhhdCB0aGVyZSBpcyBubyBiYWNrc2xhc2hcbiAqIGVzY2FwaW5nIHNsYXNoZXMgaW4gdGhlIHBhdGguIEV4YW1wbGU6XG4gKiAgLSBgZm9vXFwvYmFyXFwvYmF6YCAtPiBgZm9vL2Jhci9iYXpgXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBub3JtYWxpemVQYXRoU2VwKHBhdGg6IHN0cmluZyk6IHN0cmluZyB7XG4gIHJldHVybiBwYXRoLnJlcGxhY2UoL1xcXFwvZywgJy8nKVxufVxuIl0sIm5hbWVzIjpbIm5vcm1hbGl6ZVBhdGhTZXAiLCJwYXRoIiwicmVwbGFjZSJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(pages-dir-node)/./node_modules/next/dist/shared/lib/page-path/normalize-path-sep.js\n"); - -/***/ }), - -/***/ "(pages-dir-node)/./node_modules/next/dist/shared/lib/router/utils/add-locale.js": -/*!**********************************************************************!*\ - !*** ./node_modules/next/dist/shared/lib/router/utils/add-locale.js ***! - \**********************************************************************/ -/***/ ((__unused_webpack_module, exports, __webpack_require__) => { - -"use strict"; -eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"addLocale\", ({\n enumerable: true,\n get: function() {\n return addLocale;\n }\n}));\nconst _addpathprefix = __webpack_require__(/*! ./add-path-prefix */ \"(pages-dir-node)/./node_modules/next/dist/shared/lib/router/utils/add-path-prefix.js\");\nconst _pathhasprefix = __webpack_require__(/*! ./path-has-prefix */ \"(pages-dir-node)/./node_modules/next/dist/shared/lib/router/utils/path-has-prefix.js\");\nfunction addLocale(path, locale, defaultLocale, ignorePrefix) {\n // If no locale was given or the locale is the default locale, we don't need\n // to prefix the path.\n if (!locale || locale === defaultLocale) return path;\n const lower = path.toLowerCase();\n // If the path is an API path or the path already has the locale prefix, we\n // don't need to prefix the path.\n if (!ignorePrefix) {\n if ((0, _pathhasprefix.pathHasPrefix)(lower, '/api')) return path;\n if ((0, _pathhasprefix.pathHasPrefix)(lower, \"/\" + locale.toLowerCase())) return path;\n }\n // Add the locale prefix to the path.\n return (0, _addpathprefix.addPathPrefix)(path, \"/\" + locale);\n} //# sourceMappingURL=add-locale.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1ub2RlKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3Qvc2hhcmVkL2xpYi9yb3V0ZXIvdXRpbHMvYWRkLWxvY2FsZS5qcyIsIm1hcHBpbmdzIjoiOzs7OzZDQVFnQkE7OztlQUFBQTs7OzJDQVJjOzJDQUNBO0FBT3ZCLFNBQVNBLFVBQ2RDLElBQVksRUFDWkMsTUFBdUIsRUFDdkJDLGFBQXNCLEVBQ3RCQyxZQUFzQjtJQUV0Qiw0RUFBNEU7SUFDNUUsc0JBQXNCO0lBQ3RCLElBQUksQ0FBQ0YsVUFBVUEsV0FBV0MsZUFBZSxPQUFPRjtJQUVoRCxNQUFNSSxRQUFRSixLQUFLSyxXQUFXO0lBRTlCLDJFQUEyRTtJQUMzRSxpQ0FBaUM7SUFDakMsSUFBSSxDQUFDRixjQUFjO1FBQ2pCLElBQUlHLENBQUFBLEdBQUFBLGVBQUFBLGFBQWEsRUFBQ0YsT0FBTyxTQUFTLE9BQU9KO1FBQ3pDLElBQUlNLENBQUFBLEdBQUFBLGVBQUFBLGFBQUFBLEVBQWNGLE9BQVEsTUFBR0gsT0FBT0ksV0FBVyxLQUFPLE9BQU9MO0lBQy9EO0lBRUEscUNBQXFDO0lBQ3JDLE9BQU9PLENBQUFBLEdBQUFBLGVBQUFBLGFBQUFBLEVBQWNQLE1BQU8sTUFBR0M7QUFDakMiLCJzb3VyY2VzIjpbIkQ6XFxzcmNcXHNoYXJlZFxcbGliXFxyb3V0ZXJcXHV0aWxzXFxhZGQtbG9jYWxlLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGFkZFBhdGhQcmVmaXggfSBmcm9tICcuL2FkZC1wYXRoLXByZWZpeCdcbmltcG9ydCB7IHBhdGhIYXNQcmVmaXggfSBmcm9tICcuL3BhdGgtaGFzLXByZWZpeCdcblxuLyoqXG4gKiBGb3IgYSBnaXZlbiBwYXRoIGFuZCBhIGxvY2FsZSwgaWYgdGhlIGxvY2FsZSBpcyBnaXZlbiwgaXQgd2lsbCBwcmVmaXggdGhlXG4gKiBsb2NhbGUuIFRoZSBwYXRoIHNob3VsZG4ndCBiZSBhbiBBUEkgcGF0aC4gSWYgYSBkZWZhdWx0IGxvY2FsZSBpcyBnaXZlbiB0aGVcbiAqIHByZWZpeCB3aWxsIGJlIG9taXR0ZWQgaWYgdGhlIGxvY2FsZSBpcyBhbHJlYWR5IHRoZSBkZWZhdWx0IGxvY2FsZS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGFkZExvY2FsZShcbiAgcGF0aDogc3RyaW5nLFxuICBsb2NhbGU/OiBzdHJpbmcgfCBmYWxzZSxcbiAgZGVmYXVsdExvY2FsZT86IHN0cmluZyxcbiAgaWdub3JlUHJlZml4PzogYm9vbGVhblxuKSB7XG4gIC8vIElmIG5vIGxvY2FsZSB3YXMgZ2l2ZW4gb3IgdGhlIGxvY2FsZSBpcyB0aGUgZGVmYXVsdCBsb2NhbGUsIHdlIGRvbid0IG5lZWRcbiAgLy8gdG8gcHJlZml4IHRoZSBwYXRoLlxuICBpZiAoIWxvY2FsZSB8fCBsb2NhbGUgPT09IGRlZmF1bHRMb2NhbGUpIHJldHVybiBwYXRoXG5cbiAgY29uc3QgbG93ZXIgPSBwYXRoLnRvTG93ZXJDYXNlKClcblxuICAvLyBJZiB0aGUgcGF0aCBpcyBhbiBBUEkgcGF0aCBvciB0aGUgcGF0aCBhbHJlYWR5IGhhcyB0aGUgbG9jYWxlIHByZWZpeCwgd2VcbiAgLy8gZG9uJ3QgbmVlZCB0byBwcmVmaXggdGhlIHBhdGguXG4gIGlmICghaWdub3JlUHJlZml4KSB7XG4gICAgaWYgKHBhdGhIYXNQcmVmaXgobG93ZXIsICcvYXBpJykpIHJldHVybiBwYXRoXG4gICAgaWYgKHBhdGhIYXNQcmVmaXgobG93ZXIsIGAvJHtsb2NhbGUudG9Mb3dlckNhc2UoKX1gKSkgcmV0dXJuIHBhdGhcbiAgfVxuXG4gIC8vIEFkZCB0aGUgbG9jYWxlIHByZWZpeCB0byB0aGUgcGF0aC5cbiAgcmV0dXJuIGFkZFBhdGhQcmVmaXgocGF0aCwgYC8ke2xvY2FsZX1gKVxufVxuIl0sIm5hbWVzIjpbImFkZExvY2FsZSIsInBhdGgiLCJsb2NhbGUiLCJkZWZhdWx0TG9jYWxlIiwiaWdub3JlUHJlZml4IiwibG93ZXIiLCJ0b0xvd2VyQ2FzZSIsInBhdGhIYXNQcmVmaXgiLCJhZGRQYXRoUHJlZml4Il0sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(pages-dir-node)/./node_modules/next/dist/shared/lib/router/utils/add-locale.js\n"); - -/***/ }), - -/***/ "(pages-dir-node)/./node_modules/next/dist/shared/lib/router/utils/add-path-prefix.js": -/*!***************************************************************************!*\ - !*** ./node_modules/next/dist/shared/lib/router/utils/add-path-prefix.js ***! - \***************************************************************************/ -/***/ ((__unused_webpack_module, exports, __webpack_require__) => { - -"use strict"; -eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"addPathPrefix\", ({\n enumerable: true,\n get: function() {\n return addPathPrefix;\n }\n}));\nconst _parsepath = __webpack_require__(/*! ./parse-path */ \"(pages-dir-node)/./node_modules/next/dist/shared/lib/router/utils/parse-path.js\");\nfunction addPathPrefix(path, prefix) {\n if (!path.startsWith('/') || !prefix) {\n return path;\n }\n const { pathname, query, hash } = (0, _parsepath.parsePath)(path);\n return \"\" + prefix + pathname + query + hash;\n} //# sourceMappingURL=add-path-prefix.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1ub2RlKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3Qvc2hhcmVkL2xpYi9yb3V0ZXIvdXRpbHMvYWRkLXBhdGgtcHJlZml4LmpzIiwibWFwcGluZ3MiOiI7Ozs7aURBTWdCQTs7O2VBQUFBOzs7dUNBTlU7QUFNbkIsU0FBU0EsY0FBY0MsSUFBWSxFQUFFQyxNQUFlO0lBQ3pELElBQUksQ0FBQ0QsS0FBS0UsVUFBVSxDQUFDLFFBQVEsQ0FBQ0QsUUFBUTtRQUNwQyxPQUFPRDtJQUNUO0lBRUEsTUFBTSxFQUFFRyxRQUFRLEVBQUVDLEtBQUssRUFBRUMsSUFBSSxFQUFFLEdBQUdDLENBQUFBLEdBQUFBLFdBQUFBLFNBQUFBLEVBQVVOO0lBQzVDLE9BQVEsS0FBRUMsU0FBU0UsV0FBV0MsUUFBUUM7QUFDeEMiLCJzb3VyY2VzIjpbIkQ6XFxzcmNcXHNoYXJlZFxcbGliXFxyb3V0ZXJcXHV0aWxzXFxhZGQtcGF0aC1wcmVmaXgudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgcGFyc2VQYXRoIH0gZnJvbSAnLi9wYXJzZS1wYXRoJ1xuXG4vKipcbiAqIEFkZHMgdGhlIHByb3ZpZGVkIHByZWZpeCB0byB0aGUgZ2l2ZW4gcGF0aC4gSXQgZmlyc3QgZW5zdXJlcyB0aGF0IHRoZSBwYXRoXG4gKiBpcyBpbmRlZWQgc3RhcnRpbmcgd2l0aCBhIHNsYXNoLlxuICovXG5leHBvcnQgZnVuY3Rpb24gYWRkUGF0aFByZWZpeChwYXRoOiBzdHJpbmcsIHByZWZpeD86IHN0cmluZykge1xuICBpZiAoIXBhdGguc3RhcnRzV2l0aCgnLycpIHx8ICFwcmVmaXgpIHtcbiAgICByZXR1cm4gcGF0aFxuICB9XG5cbiAgY29uc3QgeyBwYXRobmFtZSwgcXVlcnksIGhhc2ggfSA9IHBhcnNlUGF0aChwYXRoKVxuICByZXR1cm4gYCR7cHJlZml4fSR7cGF0aG5hbWV9JHtxdWVyeX0ke2hhc2h9YFxufVxuIl0sIm5hbWVzIjpbImFkZFBhdGhQcmVmaXgiLCJwYXRoIiwicHJlZml4Iiwic3RhcnRzV2l0aCIsInBhdGhuYW1lIiwicXVlcnkiLCJoYXNoIiwicGFyc2VQYXRoIl0sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(pages-dir-node)/./node_modules/next/dist/shared/lib/router/utils/add-path-prefix.js\n"); - -/***/ }), - -/***/ "(pages-dir-node)/./node_modules/next/dist/shared/lib/router/utils/add-path-suffix.js": -/*!***************************************************************************!*\ - !*** ./node_modules/next/dist/shared/lib/router/utils/add-path-suffix.js ***! - \***************************************************************************/ -/***/ ((__unused_webpack_module, exports, __webpack_require__) => { - -"use strict"; -eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"addPathSuffix\", ({\n enumerable: true,\n get: function() {\n return addPathSuffix;\n }\n}));\nconst _parsepath = __webpack_require__(/*! ./parse-path */ \"(pages-dir-node)/./node_modules/next/dist/shared/lib/router/utils/parse-path.js\");\nfunction addPathSuffix(path, suffix) {\n if (!path.startsWith('/') || !suffix) {\n return path;\n }\n const { pathname, query, hash } = (0, _parsepath.parsePath)(path);\n return \"\" + pathname + suffix + query + hash;\n} //# sourceMappingURL=add-path-suffix.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1ub2RlKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3Qvc2hhcmVkL2xpYi9yb3V0ZXIvdXRpbHMvYWRkLXBhdGgtc3VmZml4LmpzIiwibWFwcGluZ3MiOiI7Ozs7aURBT2dCQTs7O2VBQUFBOzs7dUNBUFU7QUFPbkIsU0FBU0EsY0FBY0MsSUFBWSxFQUFFQyxNQUFlO0lBQ3pELElBQUksQ0FBQ0QsS0FBS0UsVUFBVSxDQUFDLFFBQVEsQ0FBQ0QsUUFBUTtRQUNwQyxPQUFPRDtJQUNUO0lBRUEsTUFBTSxFQUFFRyxRQUFRLEVBQUVDLEtBQUssRUFBRUMsSUFBSSxFQUFFLEdBQUdDLENBQUFBLEdBQUFBLFdBQUFBLFNBQUFBLEVBQVVOO0lBQzVDLE9BQVEsS0FBRUcsV0FBV0YsU0FBU0csUUFBUUM7QUFDeEMiLCJzb3VyY2VzIjpbIkQ6XFxzcmNcXHNoYXJlZFxcbGliXFxyb3V0ZXJcXHV0aWxzXFxhZGQtcGF0aC1zdWZmaXgudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgcGFyc2VQYXRoIH0gZnJvbSAnLi9wYXJzZS1wYXRoJ1xuXG4vKipcbiAqIFNpbWlsYXJseSB0byBgYWRkUGF0aFByZWZpeGAsIHRoaXMgZnVuY3Rpb24gYWRkcyBhIHN1ZmZpeCBhdCB0aGUgZW5kIG9uIHRoZVxuICogcHJvdmlkZWQgcGF0aC4gSXQgYWxzbyB3b3JrcyBvbmx5IGZvciBwYXRocyBlbnN1cmluZyB0aGUgYXJndW1lbnQgc3RhcnRzXG4gKiB3aXRoIGEgc2xhc2guXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBhZGRQYXRoU3VmZml4KHBhdGg6IHN0cmluZywgc3VmZml4Pzogc3RyaW5nKSB7XG4gIGlmICghcGF0aC5zdGFydHNXaXRoKCcvJykgfHwgIXN1ZmZpeCkge1xuICAgIHJldHVybiBwYXRoXG4gIH1cblxuICBjb25zdCB7IHBhdGhuYW1lLCBxdWVyeSwgaGFzaCB9ID0gcGFyc2VQYXRoKHBhdGgpXG4gIHJldHVybiBgJHtwYXRobmFtZX0ke3N1ZmZpeH0ke3F1ZXJ5fSR7aGFzaH1gXG59XG4iXSwibmFtZXMiOlsiYWRkUGF0aFN1ZmZpeCIsInBhdGgiLCJzdWZmaXgiLCJzdGFydHNXaXRoIiwicGF0aG5hbWUiLCJxdWVyeSIsImhhc2giLCJwYXJzZVBhdGgiXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(pages-dir-node)/./node_modules/next/dist/shared/lib/router/utils/add-path-suffix.js\n"); - -/***/ }), - -/***/ "(pages-dir-node)/./node_modules/next/dist/shared/lib/router/utils/app-paths.js": -/*!*********************************************************************!*\ - !*** ./node_modules/next/dist/shared/lib/router/utils/app-paths.js ***! - \*********************************************************************/ -/***/ ((__unused_webpack_module, exports, __webpack_require__) => { - -"use strict"; -eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n normalizeAppPath: function() {\n return normalizeAppPath;\n },\n normalizeRscURL: function() {\n return normalizeRscURL;\n }\n});\nconst _ensureleadingslash = __webpack_require__(/*! ../../page-path/ensure-leading-slash */ \"(pages-dir-node)/./node_modules/next/dist/shared/lib/page-path/ensure-leading-slash.js\");\nconst _segment = __webpack_require__(/*! ../../segment */ \"(pages-dir-node)/./node_modules/next/dist/shared/lib/segment.js\");\nfunction normalizeAppPath(route) {\n return (0, _ensureleadingslash.ensureLeadingSlash)(route.split('/').reduce((pathname, segment, index, segments)=>{\n // Empty segments are ignored.\n if (!segment) {\n return pathname;\n }\n // Groups are ignored.\n if ((0, _segment.isGroupSegment)(segment)) {\n return pathname;\n }\n // Parallel segments are ignored.\n if (segment[0] === '@') {\n return pathname;\n }\n // The last segment (if it's a leaf) should be ignored.\n if ((segment === 'page' || segment === 'route') && index === segments.length - 1) {\n return pathname;\n }\n return pathname + \"/\" + segment;\n }, ''));\n}\nfunction normalizeRscURL(url) {\n return url.replace(/\\.rsc($|\\?)/, '$1');\n} //# sourceMappingURL=app-paths.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1ub2RlKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3Qvc2hhcmVkL2xpYi9yb3V0ZXIvdXRpbHMvYXBwLXBhdGhzLmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7OztJQXNCZ0JBLGdCQUFnQjtlQUFoQkE7O0lBbUNBQyxlQUFlO2VBQWZBOzs7Z0RBekRtQjtxQ0FDSjtBQXFCeEIsU0FBU0QsaUJBQWlCRSxLQUFhO0lBQzVDLE9BQU9DLENBQUFBLEdBQUFBLG9CQUFBQSxrQkFBQUEsRUFDTEQsTUFBTUUsS0FBSyxDQUFDLEtBQUtDLE1BQU0sQ0FBQyxDQUFDQyxVQUFVQyxTQUFTQyxPQUFPQztRQUNqRCw4QkFBOEI7UUFDOUIsSUFBSSxDQUFDRixTQUFTO1lBQ1osT0FBT0Q7UUFDVDtRQUVBLHNCQUFzQjtRQUN0QixJQUFJSSxDQUFBQSxHQUFBQSxTQUFBQSxjQUFBQSxFQUFlSCxVQUFVO1lBQzNCLE9BQU9EO1FBQ1Q7UUFFQSxpQ0FBaUM7UUFDakMsSUFBSUMsT0FBTyxDQUFDLEVBQUUsS0FBSyxLQUFLO1lBQ3RCLE9BQU9EO1FBQ1Q7UUFFQSx1REFBdUQ7UUFDdkQsSUFDR0MsQ0FBQUEsWUFBWSxVQUFVQSxZQUFZLFFBQU0sSUFDekNDLFVBQVVDLFNBQVNFLE1BQU0sR0FBRyxHQUM1QjtZQUNBLE9BQU9MO1FBQ1Q7UUFFQSxPQUFVQSxXQUFTLE1BQUdDO0lBQ3hCLEdBQUc7QUFFUDtBQU1PLFNBQVNOLGdCQUFnQlcsR0FBVztJQUN6QyxPQUFPQSxJQUFJQyxPQUFPLENBQ2hCLGVBQ0E7QUFHSiIsInNvdXJjZXMiOlsiRDpcXHNyY1xcc2hhcmVkXFxsaWJcXHJvdXRlclxcdXRpbHNcXGFwcC1wYXRocy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBlbnN1cmVMZWFkaW5nU2xhc2ggfSBmcm9tICcuLi8uLi9wYWdlLXBhdGgvZW5zdXJlLWxlYWRpbmctc2xhc2gnXG5pbXBvcnQgeyBpc0dyb3VwU2VnbWVudCB9IGZyb20gJy4uLy4uL3NlZ21lbnQnXG5cbi8qKlxuICogTm9ybWFsaXplcyBhbiBhcHAgcm91dGUgc28gaXQgcmVwcmVzZW50cyB0aGUgYWN0dWFsIHJlcXVlc3QgcGF0aC4gRXNzZW50aWFsbHlcbiAqIHBlcmZvcm1pbmcgdGhlIGZvbGxvd2luZyB0cmFuc2Zvcm1hdGlvbnM6XG4gKlxuICogLSBgLyhkYXNoYm9hcmQpL3VzZXIvW2lkXS9wYWdlYCB0byBgL3VzZXIvW2lkXWBcbiAqIC0gYC8oZGFzaGJvYXJkKS9hY2NvdW50L3BhZ2VgIHRvIGAvYWNjb3VudGBcbiAqIC0gYC91c2VyL1tpZF0vcGFnZWAgdG8gYC91c2VyL1tpZF1gXG4gKiAtIGAvYWNjb3VudC9wYWdlYCB0byBgL2FjY291bnRgXG4gKiAtIGAvcGFnZWAgdG8gYC9gXG4gKiAtIGAvKGRhc2hib2FyZCkvdXNlci9baWRdL3JvdXRlYCB0byBgL3VzZXIvW2lkXWBcbiAqIC0gYC8oZGFzaGJvYXJkKS9hY2NvdW50L3JvdXRlYCB0byBgL2FjY291bnRgXG4gKiAtIGAvdXNlci9baWRdL3JvdXRlYCB0byBgL3VzZXIvW2lkXWBcbiAqIC0gYC9hY2NvdW50L3JvdXRlYCB0byBgL2FjY291bnRgXG4gKiAtIGAvcm91dGVgIHRvIGAvYFxuICogLSBgL2AgdG8gYC9gXG4gKlxuICogQHBhcmFtIHJvdXRlIHRoZSBhcHAgcm91dGUgdG8gbm9ybWFsaXplXG4gKiBAcmV0dXJucyB0aGUgbm9ybWFsaXplZCBwYXRobmFtZVxuICovXG5leHBvcnQgZnVuY3Rpb24gbm9ybWFsaXplQXBwUGF0aChyb3V0ZTogc3RyaW5nKSB7XG4gIHJldHVybiBlbnN1cmVMZWFkaW5nU2xhc2goXG4gICAgcm91dGUuc3BsaXQoJy8nKS5yZWR1Y2UoKHBhdGhuYW1lLCBzZWdtZW50LCBpbmRleCwgc2VnbWVudHMpID0+IHtcbiAgICAgIC8vIEVtcHR5IHNlZ21lbnRzIGFyZSBpZ25vcmVkLlxuICAgICAgaWYgKCFzZWdtZW50KSB7XG4gICAgICAgIHJldHVybiBwYXRobmFtZVxuICAgICAgfVxuXG4gICAgICAvLyBHcm91cHMgYXJlIGlnbm9yZWQuXG4gICAgICBpZiAoaXNHcm91cFNlZ21lbnQoc2VnbWVudCkpIHtcbiAgICAgICAgcmV0dXJuIHBhdGhuYW1lXG4gICAgICB9XG5cbiAgICAgIC8vIFBhcmFsbGVsIHNlZ21lbnRzIGFyZSBpZ25vcmVkLlxuICAgICAgaWYgKHNlZ21lbnRbMF0gPT09ICdAJykge1xuICAgICAgICByZXR1cm4gcGF0aG5hbWVcbiAgICAgIH1cblxuICAgICAgLy8gVGhlIGxhc3Qgc2VnbWVudCAoaWYgaXQncyBhIGxlYWYpIHNob3VsZCBiZSBpZ25vcmVkLlxuICAgICAgaWYgKFxuICAgICAgICAoc2VnbWVudCA9PT0gJ3BhZ2UnIHx8IHNlZ21lbnQgPT09ICdyb3V0ZScpICYmXG4gICAgICAgIGluZGV4ID09PSBzZWdtZW50cy5sZW5ndGggLSAxXG4gICAgICApIHtcbiAgICAgICAgcmV0dXJuIHBhdGhuYW1lXG4gICAgICB9XG5cbiAgICAgIHJldHVybiBgJHtwYXRobmFtZX0vJHtzZWdtZW50fWBcbiAgICB9LCAnJylcbiAgKVxufVxuXG4vKipcbiAqIFN0cmlwcyB0aGUgYC5yc2NgIGV4dGVuc2lvbiBpZiBpdCdzIGluIHRoZSBwYXRobmFtZS5cbiAqIFNpbmNlIHRoaXMgZnVuY3Rpb24gaXMgdXNlZCBvbiBmdWxsIHVybHMgaXQgY2hlY2tzIGA/YCBmb3Igc2VhcmNoUGFyYW1zIGhhbmRsaW5nLlxuICovXG5leHBvcnQgZnVuY3Rpb24gbm9ybWFsaXplUnNjVVJMKHVybDogc3RyaW5nKSB7XG4gIHJldHVybiB1cmwucmVwbGFjZShcbiAgICAvXFwucnNjKCR8XFw/KS8sXG4gICAgLy8gJDEgZW5zdXJlcyBgP2AgaXMgcHJlc2VydmVkXG4gICAgJyQxJ1xuICApXG59XG4iXSwibmFtZXMiOlsibm9ybWFsaXplQXBwUGF0aCIsIm5vcm1hbGl6ZVJzY1VSTCIsInJvdXRlIiwiZW5zdXJlTGVhZGluZ1NsYXNoIiwic3BsaXQiLCJyZWR1Y2UiLCJwYXRobmFtZSIsInNlZ21lbnQiLCJpbmRleCIsInNlZ21lbnRzIiwiaXNHcm91cFNlZ21lbnQiLCJsZW5ndGgiLCJ1cmwiLCJyZXBsYWNlIl0sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(pages-dir-node)/./node_modules/next/dist/shared/lib/router/utils/app-paths.js\n"); - -/***/ }), - -/***/ "(pages-dir-node)/./node_modules/next/dist/shared/lib/router/utils/format-next-pathname-info.js": -/*!*************************************************************************************!*\ - !*** ./node_modules/next/dist/shared/lib/router/utils/format-next-pathname-info.js ***! - \*************************************************************************************/ -/***/ ((__unused_webpack_module, exports, __webpack_require__) => { - -"use strict"; -eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"formatNextPathnameInfo\", ({\n enumerable: true,\n get: function() {\n return formatNextPathnameInfo;\n }\n}));\nconst _removetrailingslash = __webpack_require__(/*! ./remove-trailing-slash */ \"(pages-dir-node)/./node_modules/next/dist/shared/lib/router/utils/remove-trailing-slash.js\");\nconst _addpathprefix = __webpack_require__(/*! ./add-path-prefix */ \"(pages-dir-node)/./node_modules/next/dist/shared/lib/router/utils/add-path-prefix.js\");\nconst _addpathsuffix = __webpack_require__(/*! ./add-path-suffix */ \"(pages-dir-node)/./node_modules/next/dist/shared/lib/router/utils/add-path-suffix.js\");\nconst _addlocale = __webpack_require__(/*! ./add-locale */ \"(pages-dir-node)/./node_modules/next/dist/shared/lib/router/utils/add-locale.js\");\nfunction formatNextPathnameInfo(info) {\n let pathname = (0, _addlocale.addLocale)(info.pathname, info.locale, info.buildId ? undefined : info.defaultLocale, info.ignorePrefix);\n if (info.buildId || !info.trailingSlash) {\n pathname = (0, _removetrailingslash.removeTrailingSlash)(pathname);\n }\n if (info.buildId) {\n pathname = (0, _addpathsuffix.addPathSuffix)((0, _addpathprefix.addPathPrefix)(pathname, \"/_next/data/\" + info.buildId), info.pathname === '/' ? 'index.json' : '.json');\n }\n pathname = (0, _addpathprefix.addPathPrefix)(pathname, info.basePath);\n return !info.buildId && info.trailingSlash ? !pathname.endsWith('/') ? (0, _addpathsuffix.addPathSuffix)(pathname, '/') : pathname : (0, _removetrailingslash.removeTrailingSlash)(pathname);\n} //# sourceMappingURL=format-next-pathname-info.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1ub2RlKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3Qvc2hhcmVkL2xpYi9yb3V0ZXIvdXRpbHMvZm9ybWF0LW5leHQtcGF0aG5hbWUtaW5mby5qcyIsIm1hcHBpbmdzIjoiOzs7OzBEQVdnQkE7OztlQUFBQTs7O2lEQVZvQjsyQ0FDTjsyQ0FDQTt1Q0FDSjtBQU9uQixTQUFTQSx1QkFBdUJDLElBQWtCO0lBQ3ZELElBQUlDLFdBQVdDLENBQUFBLEdBQUFBLFdBQUFBLFNBQUFBLEVBQ2JGLEtBQUtDLFFBQVEsRUFDYkQsS0FBS0csTUFBTSxFQUNYSCxLQUFLSSxPQUFPLEdBQUdDLFlBQVlMLEtBQUtNLGFBQWEsRUFDN0NOLEtBQUtPLFlBQVk7SUFHbkIsSUFBSVAsS0FBS0ksT0FBTyxJQUFJLENBQUNKLEtBQUtRLGFBQWEsRUFBRTtRQUN2Q1AsV0FBV1EsQ0FBQUEsR0FBQUEscUJBQUFBLG1CQUFBQSxFQUFvQlI7SUFDakM7SUFFQSxJQUFJRCxLQUFLSSxPQUFPLEVBQUU7UUFDaEJILFdBQVdTLENBQUFBLEdBQUFBLGVBQUFBLGFBQUFBLEVBQ1RDLENBQUFBLEdBQUFBLGVBQUFBLGFBQUFBLEVBQWNWLFVBQVcsaUJBQWNELEtBQUtJLE9BQU8sR0FDbkRKLEtBQUtDLFFBQVEsS0FBSyxNQUFNLGVBQWU7SUFFM0M7SUFFQUEsV0FBV1UsQ0FBQUEsR0FBQUEsZUFBQUEsYUFBQUEsRUFBY1YsVUFBVUQsS0FBS1ksUUFBUTtJQUNoRCxPQUFPLENBQUNaLEtBQUtJLE9BQU8sSUFBSUosS0FBS1EsYUFBYSxHQUN0QyxDQUFDUCxTQUFTWSxRQUFRLENBQUMsT0FDakJILENBQUFBLEdBQUFBLGVBQUFBLGFBQUFBLEVBQWNULFVBQVUsT0FDeEJBLFdBQ0ZRLENBQUFBLEdBQUFBLHFCQUFBQSxtQkFBQUEsRUFBb0JSO0FBQzFCIiwic291cmNlcyI6WyJEOlxcc3JjXFxzaGFyZWRcXGxpYlxccm91dGVyXFx1dGlsc1xcZm9ybWF0LW5leHQtcGF0aG5hbWUtaW5mby50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IE5leHRQYXRobmFtZUluZm8gfSBmcm9tICcuL2dldC1uZXh0LXBhdGhuYW1lLWluZm8nXG5pbXBvcnQgeyByZW1vdmVUcmFpbGluZ1NsYXNoIH0gZnJvbSAnLi9yZW1vdmUtdHJhaWxpbmctc2xhc2gnXG5pbXBvcnQgeyBhZGRQYXRoUHJlZml4IH0gZnJvbSAnLi9hZGQtcGF0aC1wcmVmaXgnXG5pbXBvcnQgeyBhZGRQYXRoU3VmZml4IH0gZnJvbSAnLi9hZGQtcGF0aC1zdWZmaXgnXG5pbXBvcnQgeyBhZGRMb2NhbGUgfSBmcm9tICcuL2FkZC1sb2NhbGUnXG5cbmludGVyZmFjZSBFeHRlbmRlZEluZm8gZXh0ZW5kcyBOZXh0UGF0aG5hbWVJbmZvIHtcbiAgZGVmYXVsdExvY2FsZT86IHN0cmluZ1xuICBpZ25vcmVQcmVmaXg/OiBib29sZWFuXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBmb3JtYXROZXh0UGF0aG5hbWVJbmZvKGluZm86IEV4dGVuZGVkSW5mbykge1xuICBsZXQgcGF0aG5hbWUgPSBhZGRMb2NhbGUoXG4gICAgaW5mby5wYXRobmFtZSxcbiAgICBpbmZvLmxvY2FsZSxcbiAgICBpbmZvLmJ1aWxkSWQgPyB1bmRlZmluZWQgOiBpbmZvLmRlZmF1bHRMb2NhbGUsXG4gICAgaW5mby5pZ25vcmVQcmVmaXhcbiAgKVxuXG4gIGlmIChpbmZvLmJ1aWxkSWQgfHwgIWluZm8udHJhaWxpbmdTbGFzaCkge1xuICAgIHBhdGhuYW1lID0gcmVtb3ZlVHJhaWxpbmdTbGFzaChwYXRobmFtZSlcbiAgfVxuXG4gIGlmIChpbmZvLmJ1aWxkSWQpIHtcbiAgICBwYXRobmFtZSA9IGFkZFBhdGhTdWZmaXgoXG4gICAgICBhZGRQYXRoUHJlZml4KHBhdGhuYW1lLCBgL19uZXh0L2RhdGEvJHtpbmZvLmJ1aWxkSWR9YCksXG4gICAgICBpbmZvLnBhdGhuYW1lID09PSAnLycgPyAnaW5kZXguanNvbicgOiAnLmpzb24nXG4gICAgKVxuICB9XG5cbiAgcGF0aG5hbWUgPSBhZGRQYXRoUHJlZml4KHBhdGhuYW1lLCBpbmZvLmJhc2VQYXRoKVxuICByZXR1cm4gIWluZm8uYnVpbGRJZCAmJiBpbmZvLnRyYWlsaW5nU2xhc2hcbiAgICA/ICFwYXRobmFtZS5lbmRzV2l0aCgnLycpXG4gICAgICA/IGFkZFBhdGhTdWZmaXgocGF0aG5hbWUsICcvJylcbiAgICAgIDogcGF0aG5hbWVcbiAgICA6IHJlbW92ZVRyYWlsaW5nU2xhc2gocGF0aG5hbWUpXG59XG4iXSwibmFtZXMiOlsiZm9ybWF0TmV4dFBhdGhuYW1lSW5mbyIsImluZm8iLCJwYXRobmFtZSIsImFkZExvY2FsZSIsImxvY2FsZSIsImJ1aWxkSWQiLCJ1bmRlZmluZWQiLCJkZWZhdWx0TG9jYWxlIiwiaWdub3JlUHJlZml4IiwidHJhaWxpbmdTbGFzaCIsInJlbW92ZVRyYWlsaW5nU2xhc2giLCJhZGRQYXRoU3VmZml4IiwiYWRkUGF0aFByZWZpeCIsImJhc2VQYXRoIiwiZW5kc1dpdGgiXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(pages-dir-node)/./node_modules/next/dist/shared/lib/router/utils/format-next-pathname-info.js\n"); - -/***/ }), - -/***/ "(pages-dir-node)/./node_modules/next/dist/shared/lib/router/utils/format-url.js": -/*!**********************************************************************!*\ - !*** ./node_modules/next/dist/shared/lib/router/utils/format-url.js ***! - \**********************************************************************/ -/***/ ((__unused_webpack_module, exports, __webpack_require__) => { - -"use strict"; -eval("// Format function modified from nodejs\n// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n formatUrl: function() {\n return formatUrl;\n },\n formatWithValidation: function() {\n return formatWithValidation;\n },\n urlObjectKeys: function() {\n return urlObjectKeys;\n }\n});\nconst _interop_require_wildcard = __webpack_require__(/*! @swc/helpers/_/_interop_require_wildcard */ \"(pages-dir-node)/./node_modules/@swc/helpers/cjs/_interop_require_wildcard.cjs\");\nconst _querystring = /*#__PURE__*/ _interop_require_wildcard._(__webpack_require__(/*! ./querystring */ \"(pages-dir-node)/./node_modules/next/dist/shared/lib/router/utils/querystring.js\"));\nconst slashedProtocols = /https?|ftp|gopher|file/;\nfunction formatUrl(urlObj) {\n let { auth, hostname } = urlObj;\n let protocol = urlObj.protocol || '';\n let pathname = urlObj.pathname || '';\n let hash = urlObj.hash || '';\n let query = urlObj.query || '';\n let host = false;\n auth = auth ? encodeURIComponent(auth).replace(/%3A/i, ':') + '@' : '';\n if (urlObj.host) {\n host = auth + urlObj.host;\n } else if (hostname) {\n host = auth + (~hostname.indexOf(':') ? \"[\" + hostname + \"]\" : hostname);\n if (urlObj.port) {\n host += ':' + urlObj.port;\n }\n }\n if (query && typeof query === 'object') {\n query = String(_querystring.urlQueryToSearchParams(query));\n }\n let search = urlObj.search || query && \"?\" + query || '';\n if (protocol && !protocol.endsWith(':')) protocol += ':';\n if (urlObj.slashes || (!protocol || slashedProtocols.test(protocol)) && host !== false) {\n host = '//' + (host || '');\n if (pathname && pathname[0] !== '/') pathname = '/' + pathname;\n } else if (!host) {\n host = '';\n }\n if (hash && hash[0] !== '#') hash = '#' + hash;\n if (search && search[0] !== '?') search = '?' + search;\n pathname = pathname.replace(/[?#]/g, encodeURIComponent);\n search = search.replace('#', '%23');\n return \"\" + protocol + host + pathname + search + hash;\n}\nconst urlObjectKeys = [\n 'auth',\n 'hash',\n 'host',\n 'hostname',\n 'href',\n 'path',\n 'pathname',\n 'port',\n 'protocol',\n 'query',\n 'search',\n 'slashes'\n];\nfunction formatWithValidation(url) {\n if (true) {\n if (url !== null && typeof url === 'object') {\n Object.keys(url).forEach((key)=>{\n if (!urlObjectKeys.includes(key)) {\n console.warn(\"Unknown key passed via urlObject into url.format: \" + key);\n }\n });\n }\n }\n return formatUrl(url);\n} //# sourceMappingURL=format-url.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1ub2RlKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3Qvc2hhcmVkL2xpYi9yb3V0ZXIvdXRpbHMvZm9ybWF0LXVybC5qcyIsIm1hcHBpbmdzIjoiQUFBQSx1Q0FBdUM7QUFDdkMsc0RBQXNEO0FBQ3RELEVBQUU7QUFDRiwwRUFBMEU7QUFDMUUsZ0VBQWdFO0FBQ2hFLHNFQUFzRTtBQUN0RSxzRUFBc0U7QUFDdEUsNEVBQTRFO0FBQzVFLHFFQUFxRTtBQUNyRSx3QkFBd0I7QUFDeEIsRUFBRTtBQUNGLDBFQUEwRTtBQUMxRSx5REFBeUQ7QUFDekQsRUFBRTtBQUNGLDBFQUEwRTtBQUMxRSw2REFBNkQ7QUFDN0QsNEVBQTRFO0FBQzVFLDJFQUEyRTtBQUMzRSx3RUFBd0U7QUFDeEUsNEVBQTRFO0FBQzVFLHlDQUF5Qzs7Ozs7Ozs7Ozs7OztJQVF6QkEsU0FBUztlQUFUQTs7SUE2REFDLG9CQUFvQjtlQUFwQkE7O0lBZkhDLGFBQWE7ZUFBYkE7Ozs7bUZBbERnQjtBQUU3QixNQUFNQyxtQkFBbUI7QUFFbEIsU0FBU0gsVUFBVUksTUFBaUI7SUFDekMsSUFBSSxFQUFFQyxJQUFJLEVBQUVDLFFBQVEsRUFBRSxHQUFHRjtJQUN6QixJQUFJRyxXQUFXSCxPQUFPRyxRQUFRLElBQUk7SUFDbEMsSUFBSUMsV0FBV0osT0FBT0ksUUFBUSxJQUFJO0lBQ2xDLElBQUlDLE9BQU9MLE9BQU9LLElBQUksSUFBSTtJQUMxQixJQUFJQyxRQUFRTixPQUFPTSxLQUFLLElBQUk7SUFDNUIsSUFBSUMsT0FBdUI7SUFFM0JOLE9BQU9BLE9BQU9PLG1CQUFtQlAsTUFBTVEsT0FBTyxDQUFDLFFBQVEsT0FBTyxNQUFNO0lBRXBFLElBQUlULE9BQU9PLElBQUksRUFBRTtRQUNmQSxPQUFPTixPQUFPRCxPQUFPTyxJQUFJO0lBQzNCLE9BQU8sSUFBSUwsVUFBVTtRQUNuQkssT0FBT04sT0FBUSxFQUFDQyxTQUFTUSxPQUFPLENBQUMsT0FBUSxNQUFHUixXQUFTLE1BQUtBLFFBQUFBLENBQU87UUFDakUsSUFBSUYsT0FBT1csSUFBSSxFQUFFO1lBQ2ZKLFFBQVEsTUFBTVAsT0FBT1csSUFBSTtRQUMzQjtJQUNGO0lBRUEsSUFBSUwsU0FBUyxPQUFPQSxVQUFVLFVBQVU7UUFDdENBLFFBQVFNLE9BQU9DLGFBQVlDLHNCQUFzQixDQUFDUjtJQUNwRDtJQUVBLElBQUlTLFNBQVNmLE9BQU9lLE1BQU0sSUFBS1QsU0FBVSxNQUFHQSxTQUFZO0lBRXhELElBQUlILFlBQVksQ0FBQ0EsU0FBU2EsUUFBUSxDQUFDLE1BQU1iLFlBQVk7SUFFckQsSUFDRUgsT0FBT2lCLE9BQU8sSUFDWixFQUFDZCxZQUFZSixpQkFBaUJtQixJQUFJLENBQUNmLFNBQUFBLENBQVEsSUFBTUksU0FBUyxPQUM1RDtRQUNBQSxPQUFPLE9BQVFBLENBQUFBLFFBQVEsR0FBQztRQUN4QixJQUFJSCxZQUFZQSxRQUFRLENBQUMsRUFBRSxLQUFLLEtBQUtBLFdBQVcsTUFBTUE7SUFDeEQsT0FBTyxJQUFJLENBQUNHLE1BQU07UUFDaEJBLE9BQU87SUFDVDtJQUVBLElBQUlGLFFBQVFBLElBQUksQ0FBQyxFQUFFLEtBQUssS0FBS0EsT0FBTyxNQUFNQTtJQUMxQyxJQUFJVSxVQUFVQSxNQUFNLENBQUMsRUFBRSxLQUFLLEtBQUtBLFNBQVMsTUFBTUE7SUFFaERYLFdBQVdBLFNBQVNLLE9BQU8sQ0FBQyxTQUFTRDtJQUNyQ08sU0FBU0EsT0FBT04sT0FBTyxDQUFDLEtBQUs7SUFFN0IsT0FBUSxLQUFFTixXQUFXSSxPQUFPSCxXQUFXVyxTQUFTVjtBQUNsRDtBQUVPLE1BQU1QLGdCQUFnQjtJQUMzQjtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7Q0FDRDtBQUVNLFNBQVNELHFCQUFxQnNCLEdBQWM7SUFDakQsSUFBSUMsSUFBb0IsRUFBb0I7UUFDMUMsSUFBSUQsUUFBUSxRQUFRLE9BQU9BLFFBQVEsVUFBVTtZQUMzQ0ksT0FBT0MsSUFBSSxDQUFDTCxLQUFLTSxPQUFPLENBQUMsQ0FBQ0M7Z0JBQ3hCLElBQUksQ0FBQzVCLGNBQWM2QixRQUFRLENBQUNELE1BQU07b0JBQ2hDRSxRQUFRQyxJQUFJLENBQ1QsdURBQW9ESDtnQkFFekQ7WUFDRjtRQUNGO0lBQ0Y7SUFFQSxPQUFPOUIsVUFBVXVCO0FBQ25CIiwic291cmNlcyI6WyJEOlxcc3JjXFxzaGFyZWRcXGxpYlxccm91dGVyXFx1dGlsc1xcZm9ybWF0LXVybC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvLyBGb3JtYXQgZnVuY3Rpb24gbW9kaWZpZWQgZnJvbSBub2RlanNcbi8vIENvcHlyaWdodCBKb3llbnQsIEluYy4gYW5kIG90aGVyIE5vZGUgY29udHJpYnV0b3JzLlxuLy9cbi8vIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhXG4vLyBjb3B5IG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlXG4vLyBcIlNvZnR3YXJlXCIpLCB0byBkZWFsIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmdcbi8vIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCxcbi8vIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXRcbi8vIHBlcnNvbnMgdG8gd2hvbSB0aGUgU29mdHdhcmUgaXMgZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZVxuLy8gZm9sbG93aW5nIGNvbmRpdGlvbnM6XG4vL1xuLy8gVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWRcbi8vIGluIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLlxuLy9cbi8vIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCBcIkFTIElTXCIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1Ncbi8vIE9SIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0Zcbi8vIE1FUkNIQU5UQUJJTElUWSwgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gSU5cbi8vIE5PIEVWRU5UIFNIQUxMIFRIRSBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLFxuLy8gREFNQUdFUyBPUiBPVEhFUiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SXG4vLyBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSwgT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFXG4vLyBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU4gVEhFIFNPRlRXQVJFLlxuXG5pbXBvcnQgdHlwZSB7IFVybE9iamVjdCB9IGZyb20gJ3VybCdcbmltcG9ydCB0eXBlIHsgUGFyc2VkVXJsUXVlcnkgfSBmcm9tICdxdWVyeXN0cmluZydcbmltcG9ydCAqIGFzIHF1ZXJ5c3RyaW5nIGZyb20gJy4vcXVlcnlzdHJpbmcnXG5cbmNvbnN0IHNsYXNoZWRQcm90b2NvbHMgPSAvaHR0cHM/fGZ0cHxnb3BoZXJ8ZmlsZS9cblxuZXhwb3J0IGZ1bmN0aW9uIGZvcm1hdFVybCh1cmxPYmo6IFVybE9iamVjdCkge1xuICBsZXQgeyBhdXRoLCBob3N0bmFtZSB9ID0gdXJsT2JqXG4gIGxldCBwcm90b2NvbCA9IHVybE9iai5wcm90b2NvbCB8fCAnJ1xuICBsZXQgcGF0aG5hbWUgPSB1cmxPYmoucGF0aG5hbWUgfHwgJydcbiAgbGV0IGhhc2ggPSB1cmxPYmouaGFzaCB8fCAnJ1xuICBsZXQgcXVlcnkgPSB1cmxPYmoucXVlcnkgfHwgJydcbiAgbGV0IGhvc3Q6IHN0cmluZyB8IGZhbHNlID0gZmFsc2VcblxuICBhdXRoID0gYXV0aCA/IGVuY29kZVVSSUNvbXBvbmVudChhdXRoKS5yZXBsYWNlKC8lM0EvaSwgJzonKSArICdAJyA6ICcnXG5cbiAgaWYgKHVybE9iai5ob3N0KSB7XG4gICAgaG9zdCA9IGF1dGggKyB1cmxPYmouaG9zdFxuICB9IGVsc2UgaWYgKGhvc3RuYW1lKSB7XG4gICAgaG9zdCA9IGF1dGggKyAofmhvc3RuYW1lLmluZGV4T2YoJzonKSA/IGBbJHtob3N0bmFtZX1dYCA6IGhvc3RuYW1lKVxuICAgIGlmICh1cmxPYmoucG9ydCkge1xuICAgICAgaG9zdCArPSAnOicgKyB1cmxPYmoucG9ydFxuICAgIH1cbiAgfVxuXG4gIGlmIChxdWVyeSAmJiB0eXBlb2YgcXVlcnkgPT09ICdvYmplY3QnKSB7XG4gICAgcXVlcnkgPSBTdHJpbmcocXVlcnlzdHJpbmcudXJsUXVlcnlUb1NlYXJjaFBhcmFtcyhxdWVyeSBhcyBQYXJzZWRVcmxRdWVyeSkpXG4gIH1cblxuICBsZXQgc2VhcmNoID0gdXJsT2JqLnNlYXJjaCB8fCAocXVlcnkgJiYgYD8ke3F1ZXJ5fWApIHx8ICcnXG5cbiAgaWYgKHByb3RvY29sICYmICFwcm90b2NvbC5lbmRzV2l0aCgnOicpKSBwcm90b2NvbCArPSAnOidcblxuICBpZiAoXG4gICAgdXJsT2JqLnNsYXNoZXMgfHxcbiAgICAoKCFwcm90b2NvbCB8fCBzbGFzaGVkUHJvdG9jb2xzLnRlc3QocHJvdG9jb2wpKSAmJiBob3N0ICE9PSBmYWxzZSlcbiAgKSB7XG4gICAgaG9zdCA9ICcvLycgKyAoaG9zdCB8fCAnJylcbiAgICBpZiAocGF0aG5hbWUgJiYgcGF0aG5hbWVbMF0gIT09ICcvJykgcGF0aG5hbWUgPSAnLycgKyBwYXRobmFtZVxuICB9IGVsc2UgaWYgKCFob3N0KSB7XG4gICAgaG9zdCA9ICcnXG4gIH1cblxuICBpZiAoaGFzaCAmJiBoYXNoWzBdICE9PSAnIycpIGhhc2ggPSAnIycgKyBoYXNoXG4gIGlmIChzZWFyY2ggJiYgc2VhcmNoWzBdICE9PSAnPycpIHNlYXJjaCA9ICc/JyArIHNlYXJjaFxuXG4gIHBhdGhuYW1lID0gcGF0aG5hbWUucmVwbGFjZSgvWz8jXS9nLCBlbmNvZGVVUklDb21wb25lbnQpXG4gIHNlYXJjaCA9IHNlYXJjaC5yZXBsYWNlKCcjJywgJyUyMycpXG5cbiAgcmV0dXJuIGAke3Byb3RvY29sfSR7aG9zdH0ke3BhdGhuYW1lfSR7c2VhcmNofSR7aGFzaH1gXG59XG5cbmV4cG9ydCBjb25zdCB1cmxPYmplY3RLZXlzID0gW1xuICAnYXV0aCcsXG4gICdoYXNoJyxcbiAgJ2hvc3QnLFxuICAnaG9zdG5hbWUnLFxuICAnaHJlZicsXG4gICdwYXRoJyxcbiAgJ3BhdGhuYW1lJyxcbiAgJ3BvcnQnLFxuICAncHJvdG9jb2wnLFxuICAncXVlcnknLFxuICAnc2VhcmNoJyxcbiAgJ3NsYXNoZXMnLFxuXVxuXG5leHBvcnQgZnVuY3Rpb24gZm9ybWF0V2l0aFZhbGlkYXRpb24odXJsOiBVcmxPYmplY3QpOiBzdHJpbmcge1xuICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgPT09ICdkZXZlbG9wbWVudCcpIHtcbiAgICBpZiAodXJsICE9PSBudWxsICYmIHR5cGVvZiB1cmwgPT09ICdvYmplY3QnKSB7XG4gICAgICBPYmplY3Qua2V5cyh1cmwpLmZvckVhY2goKGtleSkgPT4ge1xuICAgICAgICBpZiAoIXVybE9iamVjdEtleXMuaW5jbHVkZXMoa2V5KSkge1xuICAgICAgICAgIGNvbnNvbGUud2FybihcbiAgICAgICAgICAgIGBVbmtub3duIGtleSBwYXNzZWQgdmlhIHVybE9iamVjdCBpbnRvIHVybC5mb3JtYXQ6ICR7a2V5fWBcbiAgICAgICAgICApXG4gICAgICAgIH1cbiAgICAgIH0pXG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIGZvcm1hdFVybCh1cmwpXG59XG4iXSwibmFtZXMiOlsiZm9ybWF0VXJsIiwiZm9ybWF0V2l0aFZhbGlkYXRpb24iLCJ1cmxPYmplY3RLZXlzIiwic2xhc2hlZFByb3RvY29scyIsInVybE9iaiIsImF1dGgiLCJob3N0bmFtZSIsInByb3RvY29sIiwicGF0aG5hbWUiLCJoYXNoIiwicXVlcnkiLCJob3N0IiwiZW5jb2RlVVJJQ29tcG9uZW50IiwicmVwbGFjZSIsImluZGV4T2YiLCJwb3J0IiwiU3RyaW5nIiwicXVlcnlzdHJpbmciLCJ1cmxRdWVyeVRvU2VhcmNoUGFyYW1zIiwic2VhcmNoIiwiZW5kc1dpdGgiLCJzbGFzaGVzIiwidGVzdCIsInVybCIsInByb2Nlc3MiLCJlbnYiLCJOT0RFX0VOViIsIk9iamVjdCIsImtleXMiLCJmb3JFYWNoIiwia2V5IiwiaW5jbHVkZXMiLCJjb25zb2xlIiwid2FybiJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(pages-dir-node)/./node_modules/next/dist/shared/lib/router/utils/format-url.js\n"); - -/***/ }), - -/***/ "(pages-dir-node)/./node_modules/next/dist/shared/lib/router/utils/get-next-pathname-info.js": -/*!**********************************************************************************!*\ - !*** ./node_modules/next/dist/shared/lib/router/utils/get-next-pathname-info.js ***! - \**********************************************************************************/ -/***/ ((__unused_webpack_module, exports, __webpack_require__) => { - -"use strict"; -eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"getNextPathnameInfo\", ({\n enumerable: true,\n get: function() {\n return getNextPathnameInfo;\n }\n}));\nconst _normalizelocalepath = __webpack_require__(/*! ../../i18n/normalize-locale-path */ \"(pages-dir-node)/./node_modules/next/dist/shared/lib/i18n/normalize-locale-path.js\");\nconst _removepathprefix = __webpack_require__(/*! ./remove-path-prefix */ \"(pages-dir-node)/./node_modules/next/dist/shared/lib/router/utils/remove-path-prefix.js\");\nconst _pathhasprefix = __webpack_require__(/*! ./path-has-prefix */ \"(pages-dir-node)/./node_modules/next/dist/shared/lib/router/utils/path-has-prefix.js\");\nfunction getNextPathnameInfo(pathname, options) {\n var _options_nextConfig;\n const { basePath, i18n, trailingSlash } = (_options_nextConfig = options.nextConfig) != null ? _options_nextConfig : {};\n const info = {\n pathname,\n trailingSlash: pathname !== '/' ? pathname.endsWith('/') : trailingSlash\n };\n if (basePath && (0, _pathhasprefix.pathHasPrefix)(info.pathname, basePath)) {\n info.pathname = (0, _removepathprefix.removePathPrefix)(info.pathname, basePath);\n info.basePath = basePath;\n }\n let pathnameNoDataPrefix = info.pathname;\n if (info.pathname.startsWith('/_next/data/') && info.pathname.endsWith('.json')) {\n const paths = info.pathname.replace(/^\\/_next\\/data\\//, '').replace(/\\.json$/, '').split('/');\n const buildId = paths[0];\n info.buildId = buildId;\n pathnameNoDataPrefix = paths[1] !== 'index' ? \"/\" + paths.slice(1).join('/') : '/';\n // update pathname with normalized if enabled although\n // we use normalized to populate locale info still\n if (options.parseData === true) {\n info.pathname = pathnameNoDataPrefix;\n }\n }\n // If provided, use the locale route normalizer to detect the locale instead\n // of the function below.\n if (i18n) {\n let result = options.i18nProvider ? options.i18nProvider.analyze(info.pathname) : (0, _normalizelocalepath.normalizeLocalePath)(info.pathname, i18n.locales);\n info.locale = result.detectedLocale;\n var _result_pathname;\n info.pathname = (_result_pathname = result.pathname) != null ? _result_pathname : info.pathname;\n if (!result.detectedLocale && info.buildId) {\n result = options.i18nProvider ? options.i18nProvider.analyze(pathnameNoDataPrefix) : (0, _normalizelocalepath.normalizeLocalePath)(pathnameNoDataPrefix, i18n.locales);\n if (result.detectedLocale) {\n info.locale = result.detectedLocale;\n }\n }\n }\n return info;\n} //# sourceMappingURL=get-next-pathname-info.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1ub2RlKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3Qvc2hhcmVkL2xpYi9yb3V0ZXIvdXRpbHMvZ2V0LW5leHQtcGF0aG5hbWUtaW5mby5qcyIsIm1hcHBpbmdzIjoiOzs7O3VEQW9EZ0JBOzs7ZUFBQUE7OztpREFwRG9COzhDQUNIOzJDQUNIO0FBa0R2QixTQUFTQSxvQkFDZEMsUUFBZ0IsRUFDaEJDLE9BQWdCO1FBRTBCQTtJQUExQyxNQUFNLEVBQUVDLFFBQVEsRUFBRUMsSUFBSSxFQUFFQyxhQUFhLEVBQUUsR0FBR0gsQ0FBQUEsc0JBQUFBLFFBQVFJLFVBQUFBLEtBQVUsT0FBbEJKLHNCQUFzQixDQUFDO0lBQ2pFLE1BQU1LLE9BQXlCO1FBQzdCTjtRQUNBSSxlQUFlSixhQUFhLE1BQU1BLFNBQVNPLFFBQVEsQ0FBQyxPQUFPSDtJQUM3RDtJQUVBLElBQUlGLFlBQVlNLENBQUFBLEdBQUFBLGVBQUFBLGFBQUFBLEVBQWNGLEtBQUtOLFFBQVEsRUFBRUUsV0FBVztRQUN0REksS0FBS04sUUFBUSxHQUFHUyxDQUFBQSxHQUFBQSxrQkFBQUEsZ0JBQUFBLEVBQWlCSCxLQUFLTixRQUFRLEVBQUVFO1FBQ2hESSxLQUFLSixRQUFRLEdBQUdBO0lBQ2xCO0lBQ0EsSUFBSVEsdUJBQXVCSixLQUFLTixRQUFRO0lBRXhDLElBQ0VNLEtBQUtOLFFBQVEsQ0FBQ1csVUFBVSxDQUFDLG1CQUN6QkwsS0FBS04sUUFBUSxDQUFDTyxRQUFRLENBQUMsVUFDdkI7UUFDQSxNQUFNSyxRQUFRTixLQUFLTixRQUFRLENBQ3hCYSxPQUFPLENBQUMsb0JBQW9CLElBQzVCQSxPQUFPLENBQUMsV0FBVyxJQUNuQkMsS0FBSyxDQUFDO1FBRVQsTUFBTUMsVUFBVUgsS0FBSyxDQUFDLEVBQUU7UUFDeEJOLEtBQUtTLE9BQU8sR0FBR0E7UUFDZkwsdUJBQ0VFLEtBQUssQ0FBQyxFQUFFLEtBQUssVUFBVyxNQUFHQSxNQUFNSSxLQUFLLENBQUMsR0FBR0MsSUFBSSxDQUFDLE9BQVM7UUFFMUQsc0RBQXNEO1FBQ3RELGtEQUFrRDtRQUNsRCxJQUFJaEIsUUFBUWlCLFNBQVMsS0FBSyxNQUFNO1lBQzlCWixLQUFLTixRQUFRLEdBQUdVO1FBQ2xCO0lBQ0Y7SUFFQSw0RUFBNEU7SUFDNUUseUJBQXlCO0lBQ3pCLElBQUlQLE1BQU07UUFDUixJQUFJZ0IsU0FBU2xCLFFBQVFtQixZQUFZLEdBQzdCbkIsUUFBUW1CLFlBQVksQ0FBQ0MsT0FBTyxDQUFDZixLQUFLTixRQUFRLElBQzFDc0IsQ0FBQUEsR0FBQUEscUJBQUFBLG1CQUFBQSxFQUFvQmhCLEtBQUtOLFFBQVEsRUFBRUcsS0FBS29CLE9BQU87UUFFbkRqQixLQUFLa0IsTUFBTSxHQUFHTCxPQUFPTSxjQUFjO1lBQ25CTjtRQUFoQmIsS0FBS04sUUFBUSxHQUFHbUIsQ0FBQUEsbUJBQUFBLE9BQU9uQixRQUFBQSxLQUFRLE9BQWZtQixtQkFBbUJiLEtBQUtOLFFBQVE7UUFFaEQsSUFBSSxDQUFDbUIsT0FBT00sY0FBYyxJQUFJbkIsS0FBS1MsT0FBTyxFQUFFO1lBQzFDSSxTQUFTbEIsUUFBUW1CLFlBQVksR0FDekJuQixRQUFRbUIsWUFBWSxDQUFDQyxPQUFPLENBQUNYLHdCQUM3QlksQ0FBQUEsR0FBQUEscUJBQUFBLG1CQUFBQSxFQUFvQlosc0JBQXNCUCxLQUFLb0IsT0FBTztZQUUxRCxJQUFJSixPQUFPTSxjQUFjLEVBQUU7Z0JBQ3pCbkIsS0FBS2tCLE1BQU0sR0FBR0wsT0FBT00sY0FBYztZQUNyQztRQUNGO0lBQ0Y7SUFDQSxPQUFPbkI7QUFDVCIsInNvdXJjZXMiOlsiRDpcXHNyY1xcc2hhcmVkXFxsaWJcXHJvdXRlclxcdXRpbHNcXGdldC1uZXh0LXBhdGhuYW1lLWluZm8udHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgbm9ybWFsaXplTG9jYWxlUGF0aCB9IGZyb20gJy4uLy4uL2kxOG4vbm9ybWFsaXplLWxvY2FsZS1wYXRoJ1xuaW1wb3J0IHsgcmVtb3ZlUGF0aFByZWZpeCB9IGZyb20gJy4vcmVtb3ZlLXBhdGgtcHJlZml4J1xuaW1wb3J0IHsgcGF0aEhhc1ByZWZpeCB9IGZyb20gJy4vcGF0aC1oYXMtcHJlZml4J1xuaW1wb3J0IHR5cGUgeyBJMThOUHJvdmlkZXIgfSBmcm9tICcuLi8uLi8uLi8uLi9zZXJ2ZXIvbGliL2kxOG4tcHJvdmlkZXInXG5cbmV4cG9ydCBpbnRlcmZhY2UgTmV4dFBhdGhuYW1lSW5mbyB7XG4gIC8qKlxuICAgKiBUaGUgYmFzZSBwYXRoIGluIGNhc2UgdGhlIHBhdGhuYW1lIGluY2x1ZGVkIGl0LlxuICAgKi9cbiAgYmFzZVBhdGg/OiBzdHJpbmdcbiAgLyoqXG4gICAqIFRoZSBidWlsZElkIGZvciB3aGVuIHRoZSBwYXJzZWQgVVJMIGlzIGEgZGF0YSBVUkwuIFBhcnNpbmcgaXQgY2FuIGJlXG4gICAqIGRpc2FibGVkIHdpdGggdGhlIGBwYXJzZURhdGFgIG9wdGlvbi5cbiAgICovXG4gIGJ1aWxkSWQ/OiBzdHJpbmdcbiAgLyoqXG4gICAqIElmIHRoZXJlIHdhcyBhIGxvY2FsZSBpbiB0aGUgcGF0aG5hbWUsIHRoaXMgd2lsbCBob2xkIGl0cyB2YWx1ZS5cbiAgICovXG4gIGxvY2FsZT86IHN0cmluZ1xuICAvKipcbiAgICogVGhlIHByb2Nlc3NlZCBwYXRobmFtZSB3aXRob3V0IGEgYmFzZSBwYXRoLCBsb2NhbGUsIG9yIGRhdGEgVVJMIGVsZW1lbnRzXG4gICAqIHdoZW4gcGFyc2luZyBpdCBpcyBlbmFibGVkLlxuICAgKi9cbiAgcGF0aG5hbWU6IHN0cmluZ1xuICAvKipcbiAgICogQSBib29sZWFuIHRlbGxpbmcgaWYgdGhlIHBhdGhuYW1lIGhhZCBhIHRyYWlsaW5nU2xhc2guIFRoaXMgY2FuIGJlIG9ubHlcbiAgICogdHJ1ZSBpZiB0cmFpbGluZ1NsYXNoIGlzIGVuYWJsZWQuXG4gICAqL1xuICB0cmFpbGluZ1NsYXNoPzogYm9vbGVhblxufVxuXG5pbnRlcmZhY2UgT3B0aW9ucyB7XG4gIC8qKlxuICAgKiBXaGVuIHBhc3NlZCB0byB0cnVlLCB0aGlzIGZ1bmN0aW9uIHdpbGwgYWxzbyBwYXJzZSBOZXh0anMgZGF0YSBVUkxzLlxuICAgKi9cbiAgcGFyc2VEYXRhPzogYm9vbGVhblxuICAvKipcbiAgICogQSBwYXJ0aWFsIG9mIHRoZSBOZXh0LmpzIGNvbmZpZ3VyYXRpb24gdG8gcGFyc2UgdGhlIFVSTC5cbiAgICovXG4gIG5leHRDb25maWc/OiB7XG4gICAgYmFzZVBhdGg/OiBzdHJpbmdcbiAgICBpMThuPzogeyBsb2NhbGVzPzogcmVhZG9ubHkgc3RyaW5nW10gfSB8IG51bGxcbiAgICB0cmFpbGluZ1NsYXNoPzogYm9vbGVhblxuICB9XG5cbiAgLyoqXG4gICAqIElmIHByb3ZpZGVkLCB0aGlzIG5vcm1hbGl6ZXIgd2lsbCBiZSB1c2VkIHRvIGRldGVjdCB0aGUgbG9jYWxlIGluc3RlYWQgb2ZcbiAgICogdGhlIGRlZmF1bHQgbG9jYWxlIGRldGVjdGlvbi5cbiAgICovXG4gIGkxOG5Qcm92aWRlcj86IEkxOE5Qcm92aWRlclxufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0TmV4dFBhdGhuYW1lSW5mbyhcbiAgcGF0aG5hbWU6IHN0cmluZyxcbiAgb3B0aW9uczogT3B0aW9uc1xuKTogTmV4dFBhdGhuYW1lSW5mbyB7XG4gIGNvbnN0IHsgYmFzZVBhdGgsIGkxOG4sIHRyYWlsaW5nU2xhc2ggfSA9IG9wdGlvbnMubmV4dENvbmZpZyA/PyB7fVxuICBjb25zdCBpbmZvOiBOZXh0UGF0aG5hbWVJbmZvID0ge1xuICAgIHBhdGhuYW1lLFxuICAgIHRyYWlsaW5nU2xhc2g6IHBhdGhuYW1lICE9PSAnLycgPyBwYXRobmFtZS5lbmRzV2l0aCgnLycpIDogdHJhaWxpbmdTbGFzaCxcbiAgfVxuXG4gIGlmIChiYXNlUGF0aCAmJiBwYXRoSGFzUHJlZml4KGluZm8ucGF0aG5hbWUsIGJhc2VQYXRoKSkge1xuICAgIGluZm8ucGF0aG5hbWUgPSByZW1vdmVQYXRoUHJlZml4KGluZm8ucGF0aG5hbWUsIGJhc2VQYXRoKVxuICAgIGluZm8uYmFzZVBhdGggPSBiYXNlUGF0aFxuICB9XG4gIGxldCBwYXRobmFtZU5vRGF0YVByZWZpeCA9IGluZm8ucGF0aG5hbWVcblxuICBpZiAoXG4gICAgaW5mby5wYXRobmFtZS5zdGFydHNXaXRoKCcvX25leHQvZGF0YS8nKSAmJlxuICAgIGluZm8ucGF0aG5hbWUuZW5kc1dpdGgoJy5qc29uJylcbiAgKSB7XG4gICAgY29uc3QgcGF0aHMgPSBpbmZvLnBhdGhuYW1lXG4gICAgICAucmVwbGFjZSgvXlxcL19uZXh0XFwvZGF0YVxcLy8sICcnKVxuICAgICAgLnJlcGxhY2UoL1xcLmpzb24kLywgJycpXG4gICAgICAuc3BsaXQoJy8nKVxuXG4gICAgY29uc3QgYnVpbGRJZCA9IHBhdGhzWzBdXG4gICAgaW5mby5idWlsZElkID0gYnVpbGRJZFxuICAgIHBhdGhuYW1lTm9EYXRhUHJlZml4ID1cbiAgICAgIHBhdGhzWzFdICE9PSAnaW5kZXgnID8gYC8ke3BhdGhzLnNsaWNlKDEpLmpvaW4oJy8nKX1gIDogJy8nXG5cbiAgICAvLyB1cGRhdGUgcGF0aG5hbWUgd2l0aCBub3JtYWxpemVkIGlmIGVuYWJsZWQgYWx0aG91Z2hcbiAgICAvLyB3ZSB1c2Ugbm9ybWFsaXplZCB0byBwb3B1bGF0ZSBsb2NhbGUgaW5mbyBzdGlsbFxuICAgIGlmIChvcHRpb25zLnBhcnNlRGF0YSA9PT0gdHJ1ZSkge1xuICAgICAgaW5mby5wYXRobmFtZSA9IHBhdGhuYW1lTm9EYXRhUHJlZml4XG4gICAgfVxuICB9XG5cbiAgLy8gSWYgcHJvdmlkZWQsIHVzZSB0aGUgbG9jYWxlIHJvdXRlIG5vcm1hbGl6ZXIgdG8gZGV0ZWN0IHRoZSBsb2NhbGUgaW5zdGVhZFxuICAvLyBvZiB0aGUgZnVuY3Rpb24gYmVsb3cuXG4gIGlmIChpMThuKSB7XG4gICAgbGV0IHJlc3VsdCA9IG9wdGlvbnMuaTE4blByb3ZpZGVyXG4gICAgICA/IG9wdGlvbnMuaTE4blByb3ZpZGVyLmFuYWx5emUoaW5mby5wYXRobmFtZSlcbiAgICAgIDogbm9ybWFsaXplTG9jYWxlUGF0aChpbmZvLnBhdGhuYW1lLCBpMThuLmxvY2FsZXMpXG5cbiAgICBpbmZvLmxvY2FsZSA9IHJlc3VsdC5kZXRlY3RlZExvY2FsZVxuICAgIGluZm8ucGF0aG5hbWUgPSByZXN1bHQucGF0aG5hbWUgPz8gaW5mby5wYXRobmFtZVxuXG4gICAgaWYgKCFyZXN1bHQuZGV0ZWN0ZWRMb2NhbGUgJiYgaW5mby5idWlsZElkKSB7XG4gICAgICByZXN1bHQgPSBvcHRpb25zLmkxOG5Qcm92aWRlclxuICAgICAgICA/IG9wdGlvbnMuaTE4blByb3ZpZGVyLmFuYWx5emUocGF0aG5hbWVOb0RhdGFQcmVmaXgpXG4gICAgICAgIDogbm9ybWFsaXplTG9jYWxlUGF0aChwYXRobmFtZU5vRGF0YVByZWZpeCwgaTE4bi5sb2NhbGVzKVxuXG4gICAgICBpZiAocmVzdWx0LmRldGVjdGVkTG9jYWxlKSB7XG4gICAgICAgIGluZm8ubG9jYWxlID0gcmVzdWx0LmRldGVjdGVkTG9jYWxlXG4gICAgICB9XG4gICAgfVxuICB9XG4gIHJldHVybiBpbmZvXG59XG4iXSwibmFtZXMiOlsiZ2V0TmV4dFBhdGhuYW1lSW5mbyIsInBhdGhuYW1lIiwib3B0aW9ucyIsImJhc2VQYXRoIiwiaTE4biIsInRyYWlsaW5nU2xhc2giLCJuZXh0Q29uZmlnIiwiaW5mbyIsImVuZHNXaXRoIiwicGF0aEhhc1ByZWZpeCIsInJlbW92ZVBhdGhQcmVmaXgiLCJwYXRobmFtZU5vRGF0YVByZWZpeCIsInN0YXJ0c1dpdGgiLCJwYXRocyIsInJlcGxhY2UiLCJzcGxpdCIsImJ1aWxkSWQiLCJzbGljZSIsImpvaW4iLCJwYXJzZURhdGEiLCJyZXN1bHQiLCJpMThuUHJvdmlkZXIiLCJhbmFseXplIiwibm9ybWFsaXplTG9jYWxlUGF0aCIsImxvY2FsZXMiLCJsb2NhbGUiLCJkZXRlY3RlZExvY2FsZSJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(pages-dir-node)/./node_modules/next/dist/shared/lib/router/utils/get-next-pathname-info.js\n"); - -/***/ }), - -/***/ "(pages-dir-node)/./node_modules/next/dist/shared/lib/router/utils/index.js": -/*!*****************************************************************!*\ - !*** ./node_modules/next/dist/shared/lib/router/utils/index.js ***! - \*****************************************************************/ -/***/ ((__unused_webpack_module, exports, __webpack_require__) => { - -"use strict"; -eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n getSortedRouteObjects: function() {\n return _sortedroutes.getSortedRouteObjects;\n },\n getSortedRoutes: function() {\n return _sortedroutes.getSortedRoutes;\n },\n isDynamicRoute: function() {\n return _isdynamic.isDynamicRoute;\n }\n});\nconst _sortedroutes = __webpack_require__(/*! ./sorted-routes */ \"(pages-dir-node)/./node_modules/next/dist/shared/lib/router/utils/sorted-routes.js\");\nconst _isdynamic = __webpack_require__(/*! ./is-dynamic */ \"(pages-dir-node)/./node_modules/next/dist/shared/lib/router/utils/is-dynamic.js\"); //# sourceMappingURL=index.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1ub2RlKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3Qvc2hhcmVkL2xpYi9yb3V0ZXIvdXRpbHMvaW5kZXguanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7O0lBQTBCQSxxQkFBcUI7ZUFBckJBLGNBQUFBLHFCQUFxQjs7SUFBdENDLGVBQWU7ZUFBZkEsY0FBQUEsZUFBZTs7SUFDZkMsY0FBYztlQUFkQSxXQUFBQSxjQUFjOzs7MENBRGdDO3VDQUN4QiIsInNvdXJjZXMiOlsiRDpcXHNyY1xcc2hhcmVkXFxsaWJcXHJvdXRlclxcdXRpbHNcXGluZGV4LnRzIl0sInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCB7IGdldFNvcnRlZFJvdXRlcywgZ2V0U29ydGVkUm91dGVPYmplY3RzIH0gZnJvbSAnLi9zb3J0ZWQtcm91dGVzJ1xuZXhwb3J0IHsgaXNEeW5hbWljUm91dGUgfSBmcm9tICcuL2lzLWR5bmFtaWMnXG4iXSwibmFtZXMiOlsiZ2V0U29ydGVkUm91dGVPYmplY3RzIiwiZ2V0U29ydGVkUm91dGVzIiwiaXNEeW5hbWljUm91dGUiXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(pages-dir-node)/./node_modules/next/dist/shared/lib/router/utils/index.js\n"); - -/***/ }), - -/***/ "(pages-dir-node)/./node_modules/next/dist/shared/lib/router/utils/interception-routes.js": -/*!*******************************************************************************!*\ - !*** ./node_modules/next/dist/shared/lib/router/utils/interception-routes.js ***! - \*******************************************************************************/ -/***/ ((__unused_webpack_module, exports, __webpack_require__) => { - -"use strict"; -eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n INTERCEPTION_ROUTE_MARKERS: function() {\n return INTERCEPTION_ROUTE_MARKERS;\n },\n extractInterceptionRouteInformation: function() {\n return extractInterceptionRouteInformation;\n },\n isInterceptionRouteAppPath: function() {\n return isInterceptionRouteAppPath;\n }\n});\nconst _apppaths = __webpack_require__(/*! ./app-paths */ \"(pages-dir-node)/./node_modules/next/dist/shared/lib/router/utils/app-paths.js\");\nconst INTERCEPTION_ROUTE_MARKERS = [\n '(..)(..)',\n '(.)',\n '(..)',\n '(...)'\n];\nfunction isInterceptionRouteAppPath(path) {\n // TODO-APP: add more serious validation\n return path.split('/').find((segment)=>INTERCEPTION_ROUTE_MARKERS.find((m)=>segment.startsWith(m))) !== undefined;\n}\nfunction extractInterceptionRouteInformation(path) {\n let interceptingRoute, marker, interceptedRoute;\n for (const segment of path.split('/')){\n marker = INTERCEPTION_ROUTE_MARKERS.find((m)=>segment.startsWith(m));\n if (marker) {\n ;\n [interceptingRoute, interceptedRoute] = path.split(marker, 2);\n break;\n }\n }\n if (!interceptingRoute || !marker || !interceptedRoute) {\n throw Object.defineProperty(new Error(\"Invalid interception route: \" + path + \". Must be in the format /<intercepting route>/(..|...|..)(..)/<intercepted route>\"), \"__NEXT_ERROR_CODE\", {\n value: \"E269\",\n enumerable: false,\n configurable: true\n });\n }\n interceptingRoute = (0, _apppaths.normalizeAppPath)(interceptingRoute) // normalize the path, e.g. /(blog)/feed -> /feed\n ;\n switch(marker){\n case '(.)':\n // (.) indicates that we should match with sibling routes, so we just need to append the intercepted route to the intercepting route\n if (interceptingRoute === '/') {\n interceptedRoute = \"/\" + interceptedRoute;\n } else {\n interceptedRoute = interceptingRoute + '/' + interceptedRoute;\n }\n break;\n case '(..)':\n // (..) indicates that we should match at one level up, so we need to remove the last segment of the intercepting route\n if (interceptingRoute === '/') {\n throw Object.defineProperty(new Error(\"Invalid interception route: \" + path + \". Cannot use (..) marker at the root level, use (.) instead.\"), \"__NEXT_ERROR_CODE\", {\n value: \"E207\",\n enumerable: false,\n configurable: true\n });\n }\n interceptedRoute = interceptingRoute.split('/').slice(0, -1).concat(interceptedRoute).join('/');\n break;\n case '(...)':\n // (...) will match the route segment in the root directory, so we need to use the root directory to prepend the intercepted route\n interceptedRoute = '/' + interceptedRoute;\n break;\n case '(..)(..)':\n // (..)(..) indicates that we should match at two levels up, so we need to remove the last two segments of the intercepting route\n const splitInterceptingRoute = interceptingRoute.split('/');\n if (splitInterceptingRoute.length <= 2) {\n throw Object.defineProperty(new Error(\"Invalid interception route: \" + path + \". Cannot use (..)(..) marker at the root level or one level up.\"), \"__NEXT_ERROR_CODE\", {\n value: \"E486\",\n enumerable: false,\n configurable: true\n });\n }\n interceptedRoute = splitInterceptingRoute.slice(0, -2).concat(interceptedRoute).join('/');\n break;\n default:\n throw Object.defineProperty(new Error('Invariant: unexpected marker'), \"__NEXT_ERROR_CODE\", {\n value: \"E112\",\n enumerable: false,\n configurable: true\n });\n }\n return {\n interceptingRoute,\n interceptedRoute\n };\n} //# sourceMappingURL=interception-routes.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1ub2RlKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3Qvc2hhcmVkL2xpYi9yb3V0ZXIvdXRpbHMvaW50ZXJjZXB0aW9uLXJvdXRlcy5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7SUFHYUEsMEJBQTBCO2VBQTFCQTs7SUFrQkdDLG1DQUFtQztlQUFuQ0E7O0lBWEFDLDBCQUEwQjtlQUExQkE7OztzQ0FWaUI7QUFHMUIsTUFBTUYsNkJBQTZCO0lBQ3hDO0lBQ0E7SUFDQTtJQUNBO0NBQ0Q7QUFFTSxTQUFTRSwyQkFBMkJDLElBQVk7SUFDckQsd0NBQXdDO0lBQ3hDLE9BQ0VBLEtBQ0dDLEtBQUssQ0FBQyxLQUNOQyxJQUFJLENBQUMsQ0FBQ0MsVUFDTE4sMkJBQTJCSyxJQUFJLENBQUMsQ0FBQ0UsSUFBTUQsUUFBUUUsVUFBVSxDQUFDRCxTQUN0REU7QUFFWjtBQUVPLFNBQVNSLG9DQUFvQ0UsSUFBWTtJQUM5RCxJQUFJTyxtQkFDRkMsUUFDQUM7SUFFRixLQUFLLE1BQU1OLFdBQVdILEtBQUtDLEtBQUssQ0FBQyxLQUFNO1FBQ3JDTyxTQUFTWCwyQkFBMkJLLElBQUksQ0FBQyxDQUFDRSxJQUFNRCxRQUFRRSxVQUFVLENBQUNEO1FBQ25FLElBQUlJLFFBQVE7O1lBQ1QsQ0FBQ0QsbUJBQW1CRSxpQkFBaUIsR0FBR1QsS0FBS0MsS0FBSyxDQUFDTyxRQUFRO1lBQzVEO1FBQ0Y7SUFDRjtJQUVBLElBQUksQ0FBQ0QscUJBQXFCLENBQUNDLFVBQVUsQ0FBQ0Msa0JBQWtCO1FBQ3RELE1BQU0scUJBRUwsQ0FGSyxJQUFJQyxNQUNQLGlDQUE4QlYsT0FBSyxzRkFEaEM7bUJBQUE7d0JBQUE7MEJBQUE7UUFFTjtJQUNGO0lBRUFPLG9CQUFvQkksQ0FBQUEsR0FBQUEsVUFBQUEsZ0JBQUFBLEVBQWlCSixtQkFBbUIsaURBQWlEOztJQUV6RyxPQUFRQztRQUNOLEtBQUs7WUFDSCxvSUFBb0k7WUFDcEksSUFBSUQsc0JBQXNCLEtBQUs7Z0JBQzdCRSxtQkFBb0IsTUFBR0E7WUFDekIsT0FBTztnQkFDTEEsbUJBQW1CRixvQkFBb0IsTUFBTUU7WUFDL0M7WUFDQTtRQUNGLEtBQUs7WUFDSCx1SEFBdUg7WUFDdkgsSUFBSUYsc0JBQXNCLEtBQUs7Z0JBQzdCLE1BQU0scUJBRUwsQ0FGSyxJQUFJRyxNQUNQLGlDQUE4QlYsT0FBSyxpRUFEaEM7MkJBQUE7Z0NBQUE7a0NBQUE7Z0JBRU47WUFDRjtZQUNBUyxtQkFBbUJGLGtCQUNoQk4sS0FBSyxDQUFDLEtBQ05XLEtBQUssQ0FBQyxHQUFHLENBQUMsR0FDVkMsTUFBTSxDQUFDSixrQkFDUEssSUFBSSxDQUFDO1lBQ1I7UUFDRixLQUFLO1lBQ0gsa0lBQWtJO1lBQ2xJTCxtQkFBbUIsTUFBTUE7WUFDekI7UUFDRixLQUFLO1lBQ0gsaUlBQWlJO1lBRWpJLE1BQU1NLHlCQUF5QlIsa0JBQWtCTixLQUFLLENBQUM7WUFDdkQsSUFBSWMsdUJBQXVCQyxNQUFNLElBQUksR0FBRztnQkFDdEMsTUFBTSxxQkFFTCxDQUZLLElBQUlOLE1BQ1AsaUNBQThCVixPQUFLLG9FQURoQzsyQkFBQTtnQ0FBQTtrQ0FBQTtnQkFFTjtZQUNGO1lBRUFTLG1CQUFtQk0sdUJBQ2hCSCxLQUFLLENBQUMsR0FBRyxDQUFDLEdBQ1ZDLE1BQU0sQ0FBQ0osa0JBQ1BLLElBQUksQ0FBQztZQUNSO1FBQ0Y7WUFDRSxNQUFNLHFCQUF5QyxDQUF6QyxJQUFJSixNQUFNLGlDQUFWO3VCQUFBOzRCQUFBOzhCQUFBO1lBQXdDO0lBQ2xEO0lBRUEsT0FBTztRQUFFSDtRQUFtQkU7SUFBaUI7QUFDL0MiLCJzb3VyY2VzIjpbIkQ6XFxzcmNcXHNoYXJlZFxcbGliXFxyb3V0ZXJcXHV0aWxzXFxpbnRlcmNlcHRpb24tcm91dGVzLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IG5vcm1hbGl6ZUFwcFBhdGggfSBmcm9tICcuL2FwcC1wYXRocydcblxuLy8gb3JkZXIgbWF0dGVycyBoZXJlLCB0aGUgZmlyc3QgbWF0Y2ggd2lsbCBiZSB1c2VkXG5leHBvcnQgY29uc3QgSU5URVJDRVBUSU9OX1JPVVRFX01BUktFUlMgPSBbXG4gICcoLi4pKC4uKScsXG4gICcoLiknLFxuICAnKC4uKScsXG4gICcoLi4uKScsXG5dIGFzIGNvbnN0XG5cbmV4cG9ydCBmdW5jdGlvbiBpc0ludGVyY2VwdGlvblJvdXRlQXBwUGF0aChwYXRoOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgLy8gVE9ETy1BUFA6IGFkZCBtb3JlIHNlcmlvdXMgdmFsaWRhdGlvblxuICByZXR1cm4gKFxuICAgIHBhdGhcbiAgICAgIC5zcGxpdCgnLycpXG4gICAgICAuZmluZCgoc2VnbWVudCkgPT5cbiAgICAgICAgSU5URVJDRVBUSU9OX1JPVVRFX01BUktFUlMuZmluZCgobSkgPT4gc2VnbWVudC5zdGFydHNXaXRoKG0pKVxuICAgICAgKSAhPT0gdW5kZWZpbmVkXG4gIClcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGV4dHJhY3RJbnRlcmNlcHRpb25Sb3V0ZUluZm9ybWF0aW9uKHBhdGg6IHN0cmluZykge1xuICBsZXQgaW50ZXJjZXB0aW5nUm91dGU6IHN0cmluZyB8IHVuZGVmaW5lZCxcbiAgICBtYXJrZXI6ICh0eXBlb2YgSU5URVJDRVBUSU9OX1JPVVRFX01BUktFUlMpW251bWJlcl0gfCB1bmRlZmluZWQsXG4gICAgaW50ZXJjZXB0ZWRSb3V0ZTogc3RyaW5nIHwgdW5kZWZpbmVkXG5cbiAgZm9yIChjb25zdCBzZWdtZW50IG9mIHBhdGguc3BsaXQoJy8nKSkge1xuICAgIG1hcmtlciA9IElOVEVSQ0VQVElPTl9ST1VURV9NQVJLRVJTLmZpbmQoKG0pID0+IHNlZ21lbnQuc3RhcnRzV2l0aChtKSlcbiAgICBpZiAobWFya2VyKSB7XG4gICAgICA7W2ludGVyY2VwdGluZ1JvdXRlLCBpbnRlcmNlcHRlZFJvdXRlXSA9IHBhdGguc3BsaXQobWFya2VyLCAyKVxuICAgICAgYnJlYWtcbiAgICB9XG4gIH1cblxuICBpZiAoIWludGVyY2VwdGluZ1JvdXRlIHx8ICFtYXJrZXIgfHwgIWludGVyY2VwdGVkUm91dGUpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICBgSW52YWxpZCBpbnRlcmNlcHRpb24gcm91dGU6ICR7cGF0aH0uIE11c3QgYmUgaW4gdGhlIGZvcm1hdCAvPGludGVyY2VwdGluZyByb3V0ZT4vKC4ufC4uLnwuLikoLi4pLzxpbnRlcmNlcHRlZCByb3V0ZT5gXG4gICAgKVxuICB9XG5cbiAgaW50ZXJjZXB0aW5nUm91dGUgPSBub3JtYWxpemVBcHBQYXRoKGludGVyY2VwdGluZ1JvdXRlKSAvLyBub3JtYWxpemUgdGhlIHBhdGgsIGUuZy4gLyhibG9nKS9mZWVkIC0+IC9mZWVkXG5cbiAgc3dpdGNoIChtYXJrZXIpIHtcbiAgICBjYXNlICcoLiknOlxuICAgICAgLy8gKC4pIGluZGljYXRlcyB0aGF0IHdlIHNob3VsZCBtYXRjaCB3aXRoIHNpYmxpbmcgcm91dGVzLCBzbyB3ZSBqdXN0IG5lZWQgdG8gYXBwZW5kIHRoZSBpbnRlcmNlcHRlZCByb3V0ZSB0byB0aGUgaW50ZXJjZXB0aW5nIHJvdXRlXG4gICAgICBpZiAoaW50ZXJjZXB0aW5nUm91dGUgPT09ICcvJykge1xuICAgICAgICBpbnRlcmNlcHRlZFJvdXRlID0gYC8ke2ludGVyY2VwdGVkUm91dGV9YFxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgaW50ZXJjZXB0ZWRSb3V0ZSA9IGludGVyY2VwdGluZ1JvdXRlICsgJy8nICsgaW50ZXJjZXB0ZWRSb3V0ZVxuICAgICAgfVxuICAgICAgYnJlYWtcbiAgICBjYXNlICcoLi4pJzpcbiAgICAgIC8vICguLikgaW5kaWNhdGVzIHRoYXQgd2Ugc2hvdWxkIG1hdGNoIGF0IG9uZSBsZXZlbCB1cCwgc28gd2UgbmVlZCB0byByZW1vdmUgdGhlIGxhc3Qgc2VnbWVudCBvZiB0aGUgaW50ZXJjZXB0aW5nIHJvdXRlXG4gICAgICBpZiAoaW50ZXJjZXB0aW5nUm91dGUgPT09ICcvJykge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgICAgYEludmFsaWQgaW50ZXJjZXB0aW9uIHJvdXRlOiAke3BhdGh9LiBDYW5ub3QgdXNlICguLikgbWFya2VyIGF0IHRoZSByb290IGxldmVsLCB1c2UgKC4pIGluc3RlYWQuYFxuICAgICAgICApXG4gICAgICB9XG4gICAgICBpbnRlcmNlcHRlZFJvdXRlID0gaW50ZXJjZXB0aW5nUm91dGVcbiAgICAgICAgLnNwbGl0KCcvJylcbiAgICAgICAgLnNsaWNlKDAsIC0xKVxuICAgICAgICAuY29uY2F0KGludGVyY2VwdGVkUm91dGUpXG4gICAgICAgIC5qb2luKCcvJylcbiAgICAgIGJyZWFrXG4gICAgY2FzZSAnKC4uLiknOlxuICAgICAgLy8gKC4uLikgd2lsbCBtYXRjaCB0aGUgcm91dGUgc2VnbWVudCBpbiB0aGUgcm9vdCBkaXJlY3RvcnksIHNvIHdlIG5lZWQgdG8gdXNlIHRoZSByb290IGRpcmVjdG9yeSB0byBwcmVwZW5kIHRoZSBpbnRlcmNlcHRlZCByb3V0ZVxuICAgICAgaW50ZXJjZXB0ZWRSb3V0ZSA9ICcvJyArIGludGVyY2VwdGVkUm91dGVcbiAgICAgIGJyZWFrXG4gICAgY2FzZSAnKC4uKSguLiknOlxuICAgICAgLy8gKC4uKSguLikgaW5kaWNhdGVzIHRoYXQgd2Ugc2hvdWxkIG1hdGNoIGF0IHR3byBsZXZlbHMgdXAsIHNvIHdlIG5lZWQgdG8gcmVtb3ZlIHRoZSBsYXN0IHR3byBzZWdtZW50cyBvZiB0aGUgaW50ZXJjZXB0aW5nIHJvdXRlXG5cbiAgICAgIGNvbnN0IHNwbGl0SW50ZXJjZXB0aW5nUm91dGUgPSBpbnRlcmNlcHRpbmdSb3V0ZS5zcGxpdCgnLycpXG4gICAgICBpZiAoc3BsaXRJbnRlcmNlcHRpbmdSb3V0ZS5sZW5ndGggPD0gMikge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgICAgYEludmFsaWQgaW50ZXJjZXB0aW9uIHJvdXRlOiAke3BhdGh9LiBDYW5ub3QgdXNlICguLikoLi4pIG1hcmtlciBhdCB0aGUgcm9vdCBsZXZlbCBvciBvbmUgbGV2ZWwgdXAuYFxuICAgICAgICApXG4gICAgICB9XG5cbiAgICAgIGludGVyY2VwdGVkUm91dGUgPSBzcGxpdEludGVyY2VwdGluZ1JvdXRlXG4gICAgICAgIC5zbGljZSgwLCAtMilcbiAgICAgICAgLmNvbmNhdChpbnRlcmNlcHRlZFJvdXRlKVxuICAgICAgICAuam9pbignLycpXG4gICAgICBicmVha1xuICAgIGRlZmF1bHQ6XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ0ludmFyaWFudDogdW5leHBlY3RlZCBtYXJrZXInKVxuICB9XG5cbiAgcmV0dXJuIHsgaW50ZXJjZXB0aW5nUm91dGUsIGludGVyY2VwdGVkUm91dGUgfVxufVxuIl0sIm5hbWVzIjpbIklOVEVSQ0VQVElPTl9ST1VURV9NQVJLRVJTIiwiZXh0cmFjdEludGVyY2VwdGlvblJvdXRlSW5mb3JtYXRpb24iLCJpc0ludGVyY2VwdGlvblJvdXRlQXBwUGF0aCIsInBhdGgiLCJzcGxpdCIsImZpbmQiLCJzZWdtZW50IiwibSIsInN0YXJ0c1dpdGgiLCJ1bmRlZmluZWQiLCJpbnRlcmNlcHRpbmdSb3V0ZSIsIm1hcmtlciIsImludGVyY2VwdGVkUm91dGUiLCJFcnJvciIsIm5vcm1hbGl6ZUFwcFBhdGgiLCJzbGljZSIsImNvbmNhdCIsImpvaW4iLCJzcGxpdEludGVyY2VwdGluZ1JvdXRlIiwibGVuZ3RoIl0sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(pages-dir-node)/./node_modules/next/dist/shared/lib/router/utils/interception-routes.js\n"); - -/***/ }), - -/***/ "(pages-dir-node)/./node_modules/next/dist/shared/lib/router/utils/interpolate-as.js": -/*!**************************************************************************!*\ - !*** ./node_modules/next/dist/shared/lib/router/utils/interpolate-as.js ***! - \**************************************************************************/ -/***/ ((__unused_webpack_module, exports, __webpack_require__) => { - -"use strict"; -eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"interpolateAs\", ({\n enumerable: true,\n get: function() {\n return interpolateAs;\n }\n}));\nconst _routematcher = __webpack_require__(/*! ./route-matcher */ \"(pages-dir-node)/./node_modules/next/dist/shared/lib/router/utils/route-matcher.js\");\nconst _routeregex = __webpack_require__(/*! ./route-regex */ \"(pages-dir-node)/./node_modules/next/dist/shared/lib/router/utils/route-regex.js\");\nfunction interpolateAs(route, asPathname, query) {\n let interpolatedRoute = '';\n const dynamicRegex = (0, _routeregex.getRouteRegex)(route);\n const dynamicGroups = dynamicRegex.groups;\n const dynamicMatches = (asPathname !== route ? (0, _routematcher.getRouteMatcher)(dynamicRegex)(asPathname) : '') || // Fall back to reading the values from the href\n // TODO: should this take priority; also need to change in the router.\n query;\n interpolatedRoute = route;\n const params = Object.keys(dynamicGroups);\n if (!params.every((param)=>{\n let value = dynamicMatches[param] || '';\n const { repeat, optional } = dynamicGroups[param];\n // support single-level catch-all\n // TODO: more robust handling for user-error (passing `/`)\n let replaced = \"[\" + (repeat ? '...' : '') + param + \"]\";\n if (optional) {\n replaced = (!value ? '/' : '') + \"[\" + replaced + \"]\";\n }\n if (repeat && !Array.isArray(value)) value = [\n value\n ];\n return (optional || param in dynamicMatches) && // Interpolate group into data URL if present\n (interpolatedRoute = interpolatedRoute.replace(replaced, repeat ? value.map(// path delimiter escaped since they are being inserted\n // into the URL and we expect URL encoded segments\n // when parsing dynamic route params\n (segment)=>encodeURIComponent(segment)).join('/') : encodeURIComponent(value)) || '/');\n })) {\n interpolatedRoute = '' // did not satisfy all requirements\n ;\n // n.b. We ignore this error because we handle warning for this case in\n // development in the `<Link>` component directly.\n }\n return {\n params,\n result: interpolatedRoute\n };\n} //# sourceMappingURL=interpolate-as.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1ub2RlKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3Qvc2hhcmVkL2xpYi9yb3V0ZXIvdXRpbHMvaW50ZXJwb2xhdGUtYXMuanMiLCJtYXBwaW5ncyI6Ijs7OztpREFLZ0JBOzs7ZUFBQUE7OzswQ0FIZ0I7d0NBQ0Y7QUFFdkIsU0FBU0EsY0FDZEMsS0FBYSxFQUNiQyxVQUFrQixFQUNsQkMsS0FBcUI7SUFFckIsSUFBSUMsb0JBQW9CO0lBRXhCLE1BQU1DLGVBQWVDLENBQUFBLEdBQUFBLFlBQUFBLGFBQUFBLEVBQWNMO0lBQ25DLE1BQU1NLGdCQUFnQkYsYUFBYUcsTUFBTTtJQUN6QyxNQUFNQyxpQkFFSixDQUFDUCxlQUFlRCxRQUFRUyxDQUFBQSxHQUFBQSxjQUFBQSxVQUQ0QixLQUM1QkEsRUFBZ0JMLGNBQWNILGNBQWMsR0FBQyxJQUNyRSxnREFBZ0Q7SUFDaEQsc0VBQXNFO0lBQ3RFQztJQUVGQyxvQkFBb0JIO0lBQ3BCLE1BQU1VLFNBQVNDLE9BQU9DLElBQUksQ0FBQ047SUFFM0IsSUFDRSxDQUFDSSxPQUFPRyxLQUFLLENBQUMsQ0FBQ0M7UUFDYixJQUFJQyxRQUFRUCxjQUFjLENBQUNNLE1BQU0sSUFBSTtRQUNyQyxNQUFNLEVBQUVFLE1BQU0sRUFBRUMsUUFBUSxFQUFFLEdBQUdYLGFBQWEsQ0FBQ1EsTUFBTTtRQUVqRCxpQ0FBaUM7UUFDakMsMERBQTBEO1FBQzFELElBQUlJLFdBQVksTUFBR0YsQ0FBQUEsU0FBUyxRQUFRLEdBQUMsR0FBSUYsUUFBTTtRQUMvQyxJQUFJRyxVQUFVO1lBQ1pDLFdBQWMsRUFBQ0gsUUFBUSxNQUFNLEdBQUMsR0FBRSxNQUFHRyxXQUFTO1FBQzlDO1FBQ0EsSUFBSUYsVUFBVSxDQUFDRyxNQUFNQyxPQUFPLENBQUNMLFFBQVFBLFFBQVE7WUFBQ0E7U0FBTTtRQUVwRCxPQUNHRSxDQUFBQSxZQUFZSCxTQUFTTixjQUFBQSxDQUFhLElBQ25DLDZDQUE2QztTQUM1Q0wsb0JBQ0NBLGtCQUFtQmtCLE9BQU8sQ0FDeEJILFVBQ0FGLFNBQ0tELE1BQ0VPLEdBQUcsQ0FDRix1REFBdUQ7UUFFdkQsa0RBQWtEO1FBQ2xELG9DQUFvQztRQUNwQyxDQUFDQyxVQUFZQyxtQkFBbUJELFVBRWpDRSxJQUFJLENBQUMsT0FDUkQsbUJBQW1CVCxXQUNwQixJQUFFO0lBRWIsSUFDQTtRQUNBWixvQkFBb0IsR0FBRyxtQ0FBbUM7O0lBRTFELHVFQUF1RTtJQUN2RSxrREFBa0Q7SUFDcEQ7SUFDQSxPQUFPO1FBQ0xPO1FBQ0FnQixRQUFRdkI7SUFDVjtBQUNGIiwic291cmNlcyI6WyJEOlxcc3JjXFxzaGFyZWRcXGxpYlxccm91dGVyXFx1dGlsc1xcaW50ZXJwb2xhdGUtYXMudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBQYXJzZWRVcmxRdWVyeSB9IGZyb20gJ3F1ZXJ5c3RyaW5nJ1xuXG5pbXBvcnQgeyBnZXRSb3V0ZU1hdGNoZXIgfSBmcm9tICcuL3JvdXRlLW1hdGNoZXInXG5pbXBvcnQgeyBnZXRSb3V0ZVJlZ2V4IH0gZnJvbSAnLi9yb3V0ZS1yZWdleCdcblxuZXhwb3J0IGZ1bmN0aW9uIGludGVycG9sYXRlQXMoXG4gIHJvdXRlOiBzdHJpbmcsXG4gIGFzUGF0aG5hbWU6IHN0cmluZyxcbiAgcXVlcnk6IFBhcnNlZFVybFF1ZXJ5XG4pIHtcbiAgbGV0IGludGVycG9sYXRlZFJvdXRlID0gJydcblxuICBjb25zdCBkeW5hbWljUmVnZXggPSBnZXRSb3V0ZVJlZ2V4KHJvdXRlKVxuICBjb25zdCBkeW5hbWljR3JvdXBzID0gZHluYW1pY1JlZ2V4Lmdyb3Vwc1xuICBjb25zdCBkeW5hbWljTWF0Y2hlcyA9XG4gICAgLy8gVHJ5IHRvIG1hdGNoIHRoZSBkeW5hbWljIHJvdXRlIGFnYWluc3QgdGhlIGFzUGF0aFxuICAgIChhc1BhdGhuYW1lICE9PSByb3V0ZSA/IGdldFJvdXRlTWF0Y2hlcihkeW5hbWljUmVnZXgpKGFzUGF0aG5hbWUpIDogJycpIHx8XG4gICAgLy8gRmFsbCBiYWNrIHRvIHJlYWRpbmcgdGhlIHZhbHVlcyBmcm9tIHRoZSBocmVmXG4gICAgLy8gVE9ETzogc2hvdWxkIHRoaXMgdGFrZSBwcmlvcml0eTsgYWxzbyBuZWVkIHRvIGNoYW5nZSBpbiB0aGUgcm91dGVyLlxuICAgIHF1ZXJ5XG5cbiAgaW50ZXJwb2xhdGVkUm91dGUgPSByb3V0ZVxuICBjb25zdCBwYXJhbXMgPSBPYmplY3Qua2V5cyhkeW5hbWljR3JvdXBzKVxuXG4gIGlmIChcbiAgICAhcGFyYW1zLmV2ZXJ5KChwYXJhbSkgPT4ge1xuICAgICAgbGV0IHZhbHVlID0gZHluYW1pY01hdGNoZXNbcGFyYW1dIHx8ICcnXG4gICAgICBjb25zdCB7IHJlcGVhdCwgb3B0aW9uYWwgfSA9IGR5bmFtaWNHcm91cHNbcGFyYW1dXG5cbiAgICAgIC8vIHN1cHBvcnQgc2luZ2xlLWxldmVsIGNhdGNoLWFsbFxuICAgICAgLy8gVE9ETzogbW9yZSByb2J1c3QgaGFuZGxpbmcgZm9yIHVzZXItZXJyb3IgKHBhc3NpbmcgYC9gKVxuICAgICAgbGV0IHJlcGxhY2VkID0gYFske3JlcGVhdCA/ICcuLi4nIDogJyd9JHtwYXJhbX1dYFxuICAgICAgaWYgKG9wdGlvbmFsKSB7XG4gICAgICAgIHJlcGxhY2VkID0gYCR7IXZhbHVlID8gJy8nIDogJyd9WyR7cmVwbGFjZWR9XWBcbiAgICAgIH1cbiAgICAgIGlmIChyZXBlYXQgJiYgIUFycmF5LmlzQXJyYXkodmFsdWUpKSB2YWx1ZSA9IFt2YWx1ZV1cblxuICAgICAgcmV0dXJuIChcbiAgICAgICAgKG9wdGlvbmFsIHx8IHBhcmFtIGluIGR5bmFtaWNNYXRjaGVzKSAmJlxuICAgICAgICAvLyBJbnRlcnBvbGF0ZSBncm91cCBpbnRvIGRhdGEgVVJMIGlmIHByZXNlbnRcbiAgICAgICAgKGludGVycG9sYXRlZFJvdXRlID1cbiAgICAgICAgICBpbnRlcnBvbGF0ZWRSb3V0ZSEucmVwbGFjZShcbiAgICAgICAgICAgIHJlcGxhY2VkLFxuICAgICAgICAgICAgcmVwZWF0XG4gICAgICAgICAgICAgID8gKHZhbHVlIGFzIHN0cmluZ1tdKVxuICAgICAgICAgICAgICAgICAgLm1hcChcbiAgICAgICAgICAgICAgICAgICAgLy8gdGhlc2UgdmFsdWVzIHNob3VsZCBiZSBmdWxseSBlbmNvZGVkIGluc3RlYWQgb2YganVzdFxuICAgICAgICAgICAgICAgICAgICAvLyBwYXRoIGRlbGltaXRlciBlc2NhcGVkIHNpbmNlIHRoZXkgYXJlIGJlaW5nIGluc2VydGVkXG4gICAgICAgICAgICAgICAgICAgIC8vIGludG8gdGhlIFVSTCBhbmQgd2UgZXhwZWN0IFVSTCBlbmNvZGVkIHNlZ21lbnRzXG4gICAgICAgICAgICAgICAgICAgIC8vIHdoZW4gcGFyc2luZyBkeW5hbWljIHJvdXRlIHBhcmFtc1xuICAgICAgICAgICAgICAgICAgICAoc2VnbWVudCkgPT4gZW5jb2RlVVJJQ29tcG9uZW50KHNlZ21lbnQpXG4gICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgICAuam9pbignLycpXG4gICAgICAgICAgICAgIDogZW5jb2RlVVJJQ29tcG9uZW50KHZhbHVlIGFzIHN0cmluZylcbiAgICAgICAgICApIHx8ICcvJylcbiAgICAgIClcbiAgICB9KVxuICApIHtcbiAgICBpbnRlcnBvbGF0ZWRSb3V0ZSA9ICcnIC8vIGRpZCBub3Qgc2F0aXNmeSBhbGwgcmVxdWlyZW1lbnRzXG5cbiAgICAvLyBuLmIuIFdlIGlnbm9yZSB0aGlzIGVycm9yIGJlY2F1c2Ugd2UgaGFuZGxlIHdhcm5pbmcgZm9yIHRoaXMgY2FzZSBpblxuICAgIC8vIGRldmVsb3BtZW50IGluIHRoZSBgPExpbms+YCBjb21wb25lbnQgZGlyZWN0bHkuXG4gIH1cbiAgcmV0dXJuIHtcbiAgICBwYXJhbXMsXG4gICAgcmVzdWx0OiBpbnRlcnBvbGF0ZWRSb3V0ZSxcbiAgfVxufVxuIl0sIm5hbWVzIjpbImludGVycG9sYXRlQXMiLCJyb3V0ZSIsImFzUGF0aG5hbWUiLCJxdWVyeSIsImludGVycG9sYXRlZFJvdXRlIiwiZHluYW1pY1JlZ2V4IiwiZ2V0Um91dGVSZWdleCIsImR5bmFtaWNHcm91cHMiLCJncm91cHMiLCJkeW5hbWljTWF0Y2hlcyIsImdldFJvdXRlTWF0Y2hlciIsInBhcmFtcyIsIk9iamVjdCIsImtleXMiLCJldmVyeSIsInBhcmFtIiwidmFsdWUiLCJyZXBlYXQiLCJvcHRpb25hbCIsInJlcGxhY2VkIiwiQXJyYXkiLCJpc0FycmF5IiwicmVwbGFjZSIsIm1hcCIsInNlZ21lbnQiLCJlbmNvZGVVUklDb21wb25lbnQiLCJqb2luIiwicmVzdWx0Il0sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(pages-dir-node)/./node_modules/next/dist/shared/lib/router/utils/interpolate-as.js\n"); - -/***/ }), - -/***/ "(pages-dir-node)/./node_modules/next/dist/shared/lib/router/utils/is-dynamic.js": -/*!**********************************************************************!*\ - !*** ./node_modules/next/dist/shared/lib/router/utils/is-dynamic.js ***! - \**********************************************************************/ -/***/ ((__unused_webpack_module, exports, __webpack_require__) => { - -"use strict"; -eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"isDynamicRoute\", ({\n enumerable: true,\n get: function() {\n return isDynamicRoute;\n }\n}));\nconst _interceptionroutes = __webpack_require__(/*! ./interception-routes */ \"(pages-dir-node)/./node_modules/next/dist/shared/lib/router/utils/interception-routes.js\");\n// Identify /.*[param].*/ in route string\nconst TEST_ROUTE = /\\/[^/]*\\[[^/]+\\][^/]*(?=\\/|$)/;\n// Identify /[param]/ in route string\nconst TEST_STRICT_ROUTE = /\\/\\[[^/]+\\](?=\\/|$)/;\nfunction isDynamicRoute(route, strict) {\n if (strict === void 0) strict = true;\n if ((0, _interceptionroutes.isInterceptionRouteAppPath)(route)) {\n route = (0, _interceptionroutes.extractInterceptionRouteInformation)(route).interceptedRoute;\n }\n if (strict) {\n return TEST_STRICT_ROUTE.test(route);\n }\n return TEST_ROUTE.test(route);\n} //# sourceMappingURL=is-dynamic.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1ub2RlKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3Qvc2hhcmVkL2xpYi9yb3V0ZXIvdXRpbHMvaXMtZHluYW1pYy5qcyIsIm1hcHBpbmdzIjoiOzs7O2tEQWtCZ0JBOzs7ZUFBQUE7OztnREFmVDtBQUVQLHlDQUF5QztBQUN6QyxNQUFNQyxhQUFhO0FBRW5CLHFDQUFxQztBQUNyQyxNQUFNQyxvQkFBb0I7QUFTbkIsU0FBU0YsZUFBZUcsS0FBYSxFQUFFQyxNQUFzQjtJQUF0QkEsSUFBQUEsV0FBQUEsS0FBQUEsR0FBQUEsU0FBa0I7SUFDOUQsSUFBSUMsQ0FBQUEsR0FBQUEsb0JBQUFBLDBCQUFBQSxFQUEyQkYsUUFBUTtRQUNyQ0EsUUFBUUcsQ0FBQUEsR0FBQUEsb0JBQUFBLG1DQUFBQSxFQUFvQ0gsT0FBT0ksZ0JBQWdCO0lBQ3JFO0lBRUEsSUFBSUgsUUFBUTtRQUNWLE9BQU9GLGtCQUFrQk0sSUFBSSxDQUFDTDtJQUNoQztJQUVBLE9BQU9GLFdBQVdPLElBQUksQ0FBQ0w7QUFDekIiLCJzb3VyY2VzIjpbIkQ6XFxzcmNcXHNoYXJlZFxcbGliXFxyb3V0ZXJcXHV0aWxzXFxpcy1keW5hbWljLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIGV4dHJhY3RJbnRlcmNlcHRpb25Sb3V0ZUluZm9ybWF0aW9uLFxuICBpc0ludGVyY2VwdGlvblJvdXRlQXBwUGF0aCxcbn0gZnJvbSAnLi9pbnRlcmNlcHRpb24tcm91dGVzJ1xuXG4vLyBJZGVudGlmeSAvLipbcGFyYW1dLiovIGluIHJvdXRlIHN0cmluZ1xuY29uc3QgVEVTVF9ST1VURSA9IC9cXC9bXi9dKlxcW1teL10rXFxdW14vXSooPz1cXC98JCkvXG5cbi8vIElkZW50aWZ5IC9bcGFyYW1dLyBpbiByb3V0ZSBzdHJpbmdcbmNvbnN0IFRFU1RfU1RSSUNUX1JPVVRFID0gL1xcL1xcW1teL10rXFxdKD89XFwvfCQpL1xuXG4vKipcbiAqIENoZWNrIGlmIGEgcm91dGUgaXMgZHluYW1pYy5cbiAqXG4gKiBAcGFyYW0gcm91dGUgLSBUaGUgcm91dGUgdG8gY2hlY2suXG4gKiBAcGFyYW0gc3RyaWN0IC0gV2hldGhlciB0byB1c2Ugc3RyaWN0IG1vZGUgd2hpY2ggcHJvaGliaXRzIHNlZ21lbnRzIHdpdGggcHJlZml4ZXMvc3VmZml4ZXMgKGRlZmF1bHQ6IHRydWUpLlxuICogQHJldHVybnMgV2hldGhlciB0aGUgcm91dGUgaXMgZHluYW1pYy5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzRHluYW1pY1JvdXRlKHJvdXRlOiBzdHJpbmcsIHN0cmljdDogYm9vbGVhbiA9IHRydWUpOiBib29sZWFuIHtcbiAgaWYgKGlzSW50ZXJjZXB0aW9uUm91dGVBcHBQYXRoKHJvdXRlKSkge1xuICAgIHJvdXRlID0gZXh0cmFjdEludGVyY2VwdGlvblJvdXRlSW5mb3JtYXRpb24ocm91dGUpLmludGVyY2VwdGVkUm91dGVcbiAgfVxuXG4gIGlmIChzdHJpY3QpIHtcbiAgICByZXR1cm4gVEVTVF9TVFJJQ1RfUk9VVEUudGVzdChyb3V0ZSlcbiAgfVxuXG4gIHJldHVybiBURVNUX1JPVVRFLnRlc3Qocm91dGUpXG59XG4iXSwibmFtZXMiOlsiaXNEeW5hbWljUm91dGUiLCJURVNUX1JPVVRFIiwiVEVTVF9TVFJJQ1RfUk9VVEUiLCJyb3V0ZSIsInN0cmljdCIsImlzSW50ZXJjZXB0aW9uUm91dGVBcHBQYXRoIiwiZXh0cmFjdEludGVyY2VwdGlvblJvdXRlSW5mb3JtYXRpb24iLCJpbnRlcmNlcHRlZFJvdXRlIiwidGVzdCJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(pages-dir-node)/./node_modules/next/dist/shared/lib/router/utils/is-dynamic.js\n"); - -/***/ }), - -/***/ "(pages-dir-node)/./node_modules/next/dist/shared/lib/router/utils/is-local-url.js": -/*!************************************************************************!*\ - !*** ./node_modules/next/dist/shared/lib/router/utils/is-local-url.js ***! - \************************************************************************/ -/***/ ((__unused_webpack_module, exports, __webpack_require__) => { - -"use strict"; -eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"isLocalURL\", ({\n enumerable: true,\n get: function() {\n return isLocalURL;\n }\n}));\nconst _utils = __webpack_require__(/*! ../../utils */ \"(pages-dir-node)/./node_modules/next/dist/shared/lib/utils.js\");\nconst _hasbasepath = __webpack_require__(/*! ../../../../client/has-base-path */ \"(pages-dir-node)/./node_modules/next/dist/client/has-base-path.js\");\nfunction isLocalURL(url) {\n // prevent a hydration mismatch on href for url with anchor refs\n if (!(0, _utils.isAbsoluteUrl)(url)) return true;\n try {\n // absolute urls can be local if they are on the same origin\n const locationOrigin = (0, _utils.getLocationOrigin)();\n const resolved = new URL(url, locationOrigin);\n return resolved.origin === locationOrigin && (0, _hasbasepath.hasBasePath)(resolved.pathname);\n } catch (_) {\n return false;\n }\n} //# sourceMappingURL=is-local-url.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1ub2RlKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3Qvc2hhcmVkL2xpYi9yb3V0ZXIvdXRpbHMvaXMtbG9jYWwtdXJsLmpzIiwibWFwcGluZ3MiOiI7Ozs7OENBTWdCQTs7O2VBQUFBOzs7bUNBTmlDO3lDQUNyQjtBQUtyQixTQUFTQSxXQUFXQyxHQUFXO0lBQ3BDLGdFQUFnRTtJQUNoRSxJQUFJLENBQUNDLENBQUFBLEdBQUFBLE9BQUFBLGFBQUFBLEVBQWNELE1BQU0sT0FBTztJQUNoQyxJQUFJO1FBQ0YsNERBQTREO1FBQzVELE1BQU1FLGlCQUFpQkMsQ0FBQUEsR0FBQUEsT0FBQUEsaUJBQUFBO1FBQ3ZCLE1BQU1DLFdBQVcsSUFBSUMsSUFBSUwsS0FBS0U7UUFDOUIsT0FBT0UsU0FBU0UsTUFBTSxLQUFLSixrQkFBa0JLLENBQUFBLEdBQUFBLGFBQUFBLFdBQUFBLEVBQVlILFNBQVNJLFFBQVE7SUFDNUUsRUFBRSxPQUFPQyxHQUFHO1FBQ1YsT0FBTztJQUNUO0FBQ0YiLCJzb3VyY2VzIjpbIkQ6XFxzcmNcXHNoYXJlZFxcbGliXFxyb3V0ZXJcXHV0aWxzXFxpcy1sb2NhbC11cmwudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgaXNBYnNvbHV0ZVVybCwgZ2V0TG9jYXRpb25PcmlnaW4gfSBmcm9tICcuLi8uLi91dGlscydcbmltcG9ydCB7IGhhc0Jhc2VQYXRoIH0gZnJvbSAnLi4vLi4vLi4vLi4vY2xpZW50L2hhcy1iYXNlLXBhdGgnXG5cbi8qKlxuICogRGV0ZWN0cyB3aGV0aGVyIGEgZ2l2ZW4gdXJsIGlzIHJvdXRhYmxlIGJ5IHRoZSBOZXh0LmpzIHJvdXRlciAoYnJvd3NlciBvbmx5KS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzTG9jYWxVUkwodXJsOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgLy8gcHJldmVudCBhIGh5ZHJhdGlvbiBtaXNtYXRjaCBvbiBocmVmIGZvciB1cmwgd2l0aCBhbmNob3IgcmVmc1xuICBpZiAoIWlzQWJzb2x1dGVVcmwodXJsKSkgcmV0dXJuIHRydWVcbiAgdHJ5IHtcbiAgICAvLyBhYnNvbHV0ZSB1cmxzIGNhbiBiZSBsb2NhbCBpZiB0aGV5IGFyZSBvbiB0aGUgc2FtZSBvcmlnaW5cbiAgICBjb25zdCBsb2NhdGlvbk9yaWdpbiA9IGdldExvY2F0aW9uT3JpZ2luKClcbiAgICBjb25zdCByZXNvbHZlZCA9IG5ldyBVUkwodXJsLCBsb2NhdGlvbk9yaWdpbilcbiAgICByZXR1cm4gcmVzb2x2ZWQub3JpZ2luID09PSBsb2NhdGlvbk9yaWdpbiAmJiBoYXNCYXNlUGF0aChyZXNvbHZlZC5wYXRobmFtZSlcbiAgfSBjYXRjaCAoXykge1xuICAgIHJldHVybiBmYWxzZVxuICB9XG59XG4iXSwibmFtZXMiOlsiaXNMb2NhbFVSTCIsInVybCIsImlzQWJzb2x1dGVVcmwiLCJsb2NhdGlvbk9yaWdpbiIsImdldExvY2F0aW9uT3JpZ2luIiwicmVzb2x2ZWQiLCJVUkwiLCJvcmlnaW4iLCJoYXNCYXNlUGF0aCIsInBhdGhuYW1lIiwiXyJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(pages-dir-node)/./node_modules/next/dist/shared/lib/router/utils/is-local-url.js\n"); - -/***/ }), - -/***/ "(pages-dir-node)/./node_modules/next/dist/shared/lib/router/utils/omit.js": -/*!****************************************************************!*\ - !*** ./node_modules/next/dist/shared/lib/router/utils/omit.js ***! - \****************************************************************/ -/***/ ((__unused_webpack_module, exports) => { - -"use strict"; -eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"omit\", ({\n enumerable: true,\n get: function() {\n return omit;\n }\n}));\nfunction omit(object, keys) {\n const omitted = {};\n Object.keys(object).forEach((key)=>{\n if (!keys.includes(key)) {\n omitted[key] = object[key];\n }\n });\n return omitted;\n} //# sourceMappingURL=omit.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1ub2RlKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3Qvc2hhcmVkL2xpYi9yb3V0ZXIvdXRpbHMvb21pdC5qcyIsIm1hcHBpbmdzIjoiOzs7O3dDQUFnQkE7OztlQUFBQTs7O0FBQVQsU0FBU0EsS0FDZEMsTUFBUyxFQUNUQyxJQUFTO0lBRVQsTUFBTUMsVUFBc0MsQ0FBQztJQUM3Q0MsT0FBT0YsSUFBSSxDQUFDRCxRQUFRSSxPQUFPLENBQUMsQ0FBQ0M7UUFDM0IsSUFBSSxDQUFDSixLQUFLSyxRQUFRLENBQUNELE1BQVc7WUFDNUJILE9BQU8sQ0FBQ0csSUFBSSxHQUFHTCxNQUFNLENBQUNLLElBQUk7UUFDNUI7SUFDRjtJQUNBLE9BQU9IO0FBQ1QiLCJzb3VyY2VzIjpbIkQ6XFxzcmNcXHNoYXJlZFxcbGliXFxyb3V0ZXJcXHV0aWxzXFxvbWl0LnRzIl0sInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBmdW5jdGlvbiBvbWl0PFQgZXh0ZW5kcyB7IFtrZXk6IHN0cmluZ106IHVua25vd24gfSwgSyBleHRlbmRzIGtleW9mIFQ+KFxuICBvYmplY3Q6IFQsXG4gIGtleXM6IEtbXVxuKTogT21pdDxULCBLPiB7XG4gIGNvbnN0IG9taXR0ZWQ6IHsgW2tleTogc3RyaW5nXTogdW5rbm93biB9ID0ge31cbiAgT2JqZWN0LmtleXMob2JqZWN0KS5mb3JFYWNoKChrZXkpID0+IHtcbiAgICBpZiAoIWtleXMuaW5jbHVkZXMoa2V5IGFzIEspKSB7XG4gICAgICBvbWl0dGVkW2tleV0gPSBvYmplY3Rba2V5XVxuICAgIH1cbiAgfSlcbiAgcmV0dXJuIG9taXR0ZWQgYXMgT21pdDxULCBLPlxufVxuIl0sIm5hbWVzIjpbIm9taXQiLCJvYmplY3QiLCJrZXlzIiwib21pdHRlZCIsIk9iamVjdCIsImZvckVhY2giLCJrZXkiLCJpbmNsdWRlcyJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(pages-dir-node)/./node_modules/next/dist/shared/lib/router/utils/omit.js\n"); - -/***/ }), - -/***/ "(pages-dir-node)/./node_modules/next/dist/shared/lib/router/utils/parse-path.js": -/*!**********************************************************************!*\ - !*** ./node_modules/next/dist/shared/lib/router/utils/parse-path.js ***! - \**********************************************************************/ -/***/ ((__unused_webpack_module, exports) => { - -"use strict"; -eval("/**\n * Given a path this function will find the pathname, query and hash and return\n * them. This is useful to parse full paths on the client side.\n * @param path A path to parse e.g. /foo/bar?id=1#hash\n */ \nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"parsePath\", ({\n enumerable: true,\n get: function() {\n return parsePath;\n }\n}));\nfunction parsePath(path) {\n const hashIndex = path.indexOf('#');\n const queryIndex = path.indexOf('?');\n const hasQuery = queryIndex > -1 && (hashIndex < 0 || queryIndex < hashIndex);\n if (hasQuery || hashIndex > -1) {\n return {\n pathname: path.substring(0, hasQuery ? queryIndex : hashIndex),\n query: hasQuery ? path.substring(queryIndex, hashIndex > -1 ? hashIndex : undefined) : '',\n hash: hashIndex > -1 ? path.slice(hashIndex) : ''\n };\n }\n return {\n pathname: path,\n query: '',\n hash: ''\n };\n} //# sourceMappingURL=parse-path.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1ub2RlKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3Qvc2hhcmVkL2xpYi9yb3V0ZXIvdXRpbHMvcGFyc2UtcGF0aC5qcyIsIm1hcHBpbmdzIjoiQUFBQTs7OztDQUlDOzs7OzZDQUNlQTs7O2VBQUFBOzs7QUFBVCxTQUFTQSxVQUFVQyxJQUFZO0lBQ3BDLE1BQU1DLFlBQVlELEtBQUtFLE9BQU8sQ0FBQztJQUMvQixNQUFNQyxhQUFhSCxLQUFLRSxPQUFPLENBQUM7SUFDaEMsTUFBTUUsV0FBV0QsYUFBYSxDQUFDLEtBQU1GLENBQUFBLFlBQVksS0FBS0UsYUFBYUYsU0FBQUEsQ0FBUTtJQUUzRSxJQUFJRyxZQUFZSCxZQUFZLENBQUMsR0FBRztRQUM5QixPQUFPO1lBQ0xJLFVBQVVMLEtBQUtNLFNBQVMsQ0FBQyxHQUFHRixXQUFXRCxhQUFhRjtZQUNwRE0sT0FBT0gsV0FDSEosS0FBS00sU0FBUyxDQUFDSCxZQUFZRixZQUFZLENBQUMsSUFBSUEsWUFBWU8sYUFDeEQ7WUFDSkMsTUFBTVIsWUFBWSxDQUFDLElBQUlELEtBQUtVLEtBQUssQ0FBQ1QsYUFBYTtRQUNqRDtJQUNGO0lBRUEsT0FBTztRQUFFSSxVQUFVTDtRQUFNTyxPQUFPO1FBQUlFLE1BQU07SUFBRztBQUMvQyIsInNvdXJjZXMiOlsiRDpcXHNyY1xcc2hhcmVkXFxsaWJcXHJvdXRlclxcdXRpbHNcXHBhcnNlLXBhdGgudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHaXZlbiBhIHBhdGggdGhpcyBmdW5jdGlvbiB3aWxsIGZpbmQgdGhlIHBhdGhuYW1lLCBxdWVyeSBhbmQgaGFzaCBhbmQgcmV0dXJuXG4gKiB0aGVtLiBUaGlzIGlzIHVzZWZ1bCB0byBwYXJzZSBmdWxsIHBhdGhzIG9uIHRoZSBjbGllbnQgc2lkZS5cbiAqIEBwYXJhbSBwYXRoIEEgcGF0aCB0byBwYXJzZSBlLmcuIC9mb28vYmFyP2lkPTEjaGFzaFxuICovXG5leHBvcnQgZnVuY3Rpb24gcGFyc2VQYXRoKHBhdGg6IHN0cmluZykge1xuICBjb25zdCBoYXNoSW5kZXggPSBwYXRoLmluZGV4T2YoJyMnKVxuICBjb25zdCBxdWVyeUluZGV4ID0gcGF0aC5pbmRleE9mKCc/JylcbiAgY29uc3QgaGFzUXVlcnkgPSBxdWVyeUluZGV4ID4gLTEgJiYgKGhhc2hJbmRleCA8IDAgfHwgcXVlcnlJbmRleCA8IGhhc2hJbmRleClcblxuICBpZiAoaGFzUXVlcnkgfHwgaGFzaEluZGV4ID4gLTEpIHtcbiAgICByZXR1cm4ge1xuICAgICAgcGF0aG5hbWU6IHBhdGguc3Vic3RyaW5nKDAsIGhhc1F1ZXJ5ID8gcXVlcnlJbmRleCA6IGhhc2hJbmRleCksXG4gICAgICBxdWVyeTogaGFzUXVlcnlcbiAgICAgICAgPyBwYXRoLnN1YnN0cmluZyhxdWVyeUluZGV4LCBoYXNoSW5kZXggPiAtMSA/IGhhc2hJbmRleCA6IHVuZGVmaW5lZClcbiAgICAgICAgOiAnJyxcbiAgICAgIGhhc2g6IGhhc2hJbmRleCA+IC0xID8gcGF0aC5zbGljZShoYXNoSW5kZXgpIDogJycsXG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHsgcGF0aG5hbWU6IHBhdGgsIHF1ZXJ5OiAnJywgaGFzaDogJycgfVxufVxuIl0sIm5hbWVzIjpbInBhcnNlUGF0aCIsInBhdGgiLCJoYXNoSW5kZXgiLCJpbmRleE9mIiwicXVlcnlJbmRleCIsImhhc1F1ZXJ5IiwicGF0aG5hbWUiLCJzdWJzdHJpbmciLCJxdWVyeSIsInVuZGVmaW5lZCIsImhhc2giLCJzbGljZSJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(pages-dir-node)/./node_modules/next/dist/shared/lib/router/utils/parse-path.js\n"); - -/***/ }), - -/***/ "(pages-dir-node)/./node_modules/next/dist/shared/lib/router/utils/path-has-prefix.js": -/*!***************************************************************************!*\ - !*** ./node_modules/next/dist/shared/lib/router/utils/path-has-prefix.js ***! - \***************************************************************************/ -/***/ ((__unused_webpack_module, exports, __webpack_require__) => { - -"use strict"; -eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"pathHasPrefix\", ({\n enumerable: true,\n get: function() {\n return pathHasPrefix;\n }\n}));\nconst _parsepath = __webpack_require__(/*! ./parse-path */ \"(pages-dir-node)/./node_modules/next/dist/shared/lib/router/utils/parse-path.js\");\nfunction pathHasPrefix(path, prefix) {\n if (typeof path !== 'string') {\n return false;\n }\n const { pathname } = (0, _parsepath.parsePath)(path);\n return pathname === prefix || pathname.startsWith(prefix + '/');\n} //# sourceMappingURL=path-has-prefix.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1ub2RlKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3Qvc2hhcmVkL2xpYi9yb3V0ZXIvdXRpbHMvcGF0aC1oYXMtcHJlZml4LmpzIiwibWFwcGluZ3MiOiI7Ozs7aURBU2dCQTs7O2VBQUFBOzs7dUNBVFU7QUFTbkIsU0FBU0EsY0FBY0MsSUFBWSxFQUFFQyxNQUFjO0lBQ3hELElBQUksT0FBT0QsU0FBUyxVQUFVO1FBQzVCLE9BQU87SUFDVDtJQUVBLE1BQU0sRUFBRUUsUUFBUSxFQUFFLEdBQUdDLENBQUFBLEdBQUFBLFdBQUFBLFNBQUFBLEVBQVVIO0lBQy9CLE9BQU9FLGFBQWFELFVBQVVDLFNBQVNFLFVBQVUsQ0FBQ0gsU0FBUztBQUM3RCIsInNvdXJjZXMiOlsiRDpcXHNyY1xcc2hhcmVkXFxsaWJcXHJvdXRlclxcdXRpbHNcXHBhdGgtaGFzLXByZWZpeC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBwYXJzZVBhdGggfSBmcm9tICcuL3BhcnNlLXBhdGgnXG5cbi8qKlxuICogQ2hlY2tzIGlmIGEgZ2l2ZW4gcGF0aCBzdGFydHMgd2l0aCBhIGdpdmVuIHByZWZpeC4gSXQgZW5zdXJlcyBpdCBtYXRjaGVzXG4gKiBleGFjdGx5IHdpdGhvdXQgY29udGFpbmluZyBleHRyYSBjaGFycy4gZS5nLiBwcmVmaXggL2RvY3Mgc2hvdWxkIHJlcGxhY2VcbiAqIGZvciAvZG9jcywgL2RvY3MvLCAvZG9jcy9hIGJ1dCBub3QgL2RvY3Nzc1xuICogQHBhcmFtIHBhdGggVGhlIHBhdGggdG8gY2hlY2suXG4gKiBAcGFyYW0gcHJlZml4IFRoZSBwcmVmaXggdG8gY2hlY2sgYWdhaW5zdC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHBhdGhIYXNQcmVmaXgocGF0aDogc3RyaW5nLCBwcmVmaXg6IHN0cmluZykge1xuICBpZiAodHlwZW9mIHBhdGggIT09ICdzdHJpbmcnKSB7XG4gICAgcmV0dXJuIGZhbHNlXG4gIH1cblxuICBjb25zdCB7IHBhdGhuYW1lIH0gPSBwYXJzZVBhdGgocGF0aClcbiAgcmV0dXJuIHBhdGhuYW1lID09PSBwcmVmaXggfHwgcGF0aG5hbWUuc3RhcnRzV2l0aChwcmVmaXggKyAnLycpXG59XG4iXSwibmFtZXMiOlsicGF0aEhhc1ByZWZpeCIsInBhdGgiLCJwcmVmaXgiLCJwYXRobmFtZSIsInBhcnNlUGF0aCIsInN0YXJ0c1dpdGgiXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(pages-dir-node)/./node_modules/next/dist/shared/lib/router/utils/path-has-prefix.js\n"); - -/***/ }), - -/***/ "(pages-dir-node)/./node_modules/next/dist/shared/lib/router/utils/querystring.js": -/*!***********************************************************************!*\ - !*** ./node_modules/next/dist/shared/lib/router/utils/querystring.js ***! - \***********************************************************************/ -/***/ ((__unused_webpack_module, exports) => { - -"use strict"; -eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n assign: function() {\n return assign;\n },\n searchParamsToUrlQuery: function() {\n return searchParamsToUrlQuery;\n },\n urlQueryToSearchParams: function() {\n return urlQueryToSearchParams;\n }\n});\nfunction searchParamsToUrlQuery(searchParams) {\n const query = {};\n for (const [key, value] of searchParams.entries()){\n const existing = query[key];\n if (typeof existing === 'undefined') {\n query[key] = value;\n } else if (Array.isArray(existing)) {\n existing.push(value);\n } else {\n query[key] = [\n existing,\n value\n ];\n }\n }\n return query;\n}\nfunction stringifyUrlQueryParam(param) {\n if (typeof param === 'string') {\n return param;\n }\n if (typeof param === 'number' && !isNaN(param) || typeof param === 'boolean') {\n return String(param);\n } else {\n return '';\n }\n}\nfunction urlQueryToSearchParams(query) {\n const searchParams = new URLSearchParams();\n for (const [key, value] of Object.entries(query)){\n if (Array.isArray(value)) {\n for (const item of value){\n searchParams.append(key, stringifyUrlQueryParam(item));\n }\n } else {\n searchParams.set(key, stringifyUrlQueryParam(value));\n }\n }\n return searchParams;\n}\nfunction assign(target) {\n for(var _len = arguments.length, searchParamsList = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++){\n searchParamsList[_key - 1] = arguments[_key];\n }\n for (const searchParams of searchParamsList){\n for (const key of searchParams.keys()){\n target.delete(key);\n }\n for (const [key, value] of searchParams.entries()){\n target.append(key, value);\n }\n }\n return target;\n} //# sourceMappingURL=querystring.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1ub2RlKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3Qvc2hhcmVkL2xpYi9yb3V0ZXIvdXRpbHMvcXVlcnlzdHJpbmcuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7O0lBZ0RnQkEsTUFBTTtlQUFOQTs7SUE5Q0FDLHNCQUFzQjtlQUF0QkE7O0lBZ0NBQyxzQkFBc0I7ZUFBdEJBOzs7QUFoQ1QsU0FBU0QsdUJBQ2RFLFlBQTZCO0lBRTdCLE1BQU1DLFFBQXdCLENBQUM7SUFDL0IsS0FBSyxNQUFNLENBQUNDLEtBQUtDLE1BQU0sSUFBSUgsYUFBYUksT0FBTyxHQUFJO1FBQ2pELE1BQU1DLFdBQVdKLEtBQUssQ0FBQ0MsSUFBSTtRQUMzQixJQUFJLE9BQU9HLGFBQWEsYUFBYTtZQUNuQ0osS0FBSyxDQUFDQyxJQUFJLEdBQUdDO1FBQ2YsT0FBTyxJQUFJRyxNQUFNQyxPQUFPLENBQUNGLFdBQVc7WUFDbENBLFNBQVNHLElBQUksQ0FBQ0w7UUFDaEIsT0FBTztZQUNMRixLQUFLLENBQUNDLElBQUksR0FBRztnQkFBQ0c7Z0JBQVVGO2FBQU07UUFDaEM7SUFDRjtJQUNBLE9BQU9GO0FBQ1Q7QUFFQSxTQUFTUSx1QkFBdUJDLEtBQWM7SUFDNUMsSUFBSSxPQUFPQSxVQUFVLFVBQVU7UUFDN0IsT0FBT0E7SUFDVDtJQUVBLElBQ0csT0FBT0EsVUFBVSxZQUFZLENBQUNDLE1BQU1ELFVBQ3JDLE9BQU9BLFVBQVUsV0FDakI7UUFDQSxPQUFPRSxPQUFPRjtJQUNoQixPQUFPO1FBQ0wsT0FBTztJQUNUO0FBQ0Y7QUFFTyxTQUFTWCx1QkFBdUJFLEtBQXFCO0lBQzFELE1BQU1ELGVBQWUsSUFBSWE7SUFDekIsS0FBSyxNQUFNLENBQUNYLEtBQUtDLE1BQU0sSUFBSVcsT0FBT1YsT0FBTyxDQUFDSCxPQUFRO1FBQ2hELElBQUlLLE1BQU1DLE9BQU8sQ0FBQ0osUUFBUTtZQUN4QixLQUFLLE1BQU1ZLFFBQVFaLE1BQU87Z0JBQ3hCSCxhQUFhZ0IsTUFBTSxDQUFDZCxLQUFLTyx1QkFBdUJNO1lBQ2xEO1FBQ0YsT0FBTztZQUNMZixhQUFhaUIsR0FBRyxDQUFDZixLQUFLTyx1QkFBdUJOO1FBQy9DO0lBQ0Y7SUFDQSxPQUFPSDtBQUNUO0FBRU8sU0FBU0gsT0FDZHFCLE1BQXVCO0lBQ3ZCLGlDQUFHQyxtQkFBSDtRQUFHQSxnQkFBQUEsQ0FBSCwyQkFBc0M7O0lBRXRDLEtBQUssTUFBTW5CLGdCQUFnQm1CLGlCQUFrQjtRQUMzQyxLQUFLLE1BQU1qQixPQUFPRixhQUFhb0IsSUFBSSxHQUFJO1lBQ3JDRixPQUFPRyxNQUFNLENBQUNuQjtRQUNoQjtRQUVBLEtBQUssTUFBTSxDQUFDQSxLQUFLQyxNQUFNLElBQUlILGFBQWFJLE9BQU8sR0FBSTtZQUNqRGMsT0FBT0YsTUFBTSxDQUFDZCxLQUFLQztRQUNyQjtJQUNGO0lBRUEsT0FBT2U7QUFDVCIsInNvdXJjZXMiOlsiRDpcXHNyY1xcc2hhcmVkXFxsaWJcXHJvdXRlclxcdXRpbHNcXHF1ZXJ5c3RyaW5nLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgUGFyc2VkVXJsUXVlcnkgfSBmcm9tICdxdWVyeXN0cmluZydcblxuZXhwb3J0IGZ1bmN0aW9uIHNlYXJjaFBhcmFtc1RvVXJsUXVlcnkoXG4gIHNlYXJjaFBhcmFtczogVVJMU2VhcmNoUGFyYW1zXG4pOiBQYXJzZWRVcmxRdWVyeSB7XG4gIGNvbnN0IHF1ZXJ5OiBQYXJzZWRVcmxRdWVyeSA9IHt9XG4gIGZvciAoY29uc3QgW2tleSwgdmFsdWVdIG9mIHNlYXJjaFBhcmFtcy5lbnRyaWVzKCkpIHtcbiAgICBjb25zdCBleGlzdGluZyA9IHF1ZXJ5W2tleV1cbiAgICBpZiAodHlwZW9mIGV4aXN0aW5nID09PSAndW5kZWZpbmVkJykge1xuICAgICAgcXVlcnlba2V5XSA9IHZhbHVlXG4gICAgfSBlbHNlIGlmIChBcnJheS5pc0FycmF5KGV4aXN0aW5nKSkge1xuICAgICAgZXhpc3RpbmcucHVzaCh2YWx1ZSlcbiAgICB9IGVsc2Uge1xuICAgICAgcXVlcnlba2V5XSA9IFtleGlzdGluZywgdmFsdWVdXG4gICAgfVxuICB9XG4gIHJldHVybiBxdWVyeVxufVxuXG5mdW5jdGlvbiBzdHJpbmdpZnlVcmxRdWVyeVBhcmFtKHBhcmFtOiB1bmtub3duKTogc3RyaW5nIHtcbiAgaWYgKHR5cGVvZiBwYXJhbSA9PT0gJ3N0cmluZycpIHtcbiAgICByZXR1cm4gcGFyYW1cbiAgfVxuXG4gIGlmIChcbiAgICAodHlwZW9mIHBhcmFtID09PSAnbnVtYmVyJyAmJiAhaXNOYU4ocGFyYW0pKSB8fFxuICAgIHR5cGVvZiBwYXJhbSA9PT0gJ2Jvb2xlYW4nXG4gICkge1xuICAgIHJldHVybiBTdHJpbmcocGFyYW0pXG4gIH0gZWxzZSB7XG4gICAgcmV0dXJuICcnXG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHVybFF1ZXJ5VG9TZWFyY2hQYXJhbXMocXVlcnk6IFBhcnNlZFVybFF1ZXJ5KTogVVJMU2VhcmNoUGFyYW1zIHtcbiAgY29uc3Qgc2VhcmNoUGFyYW1zID0gbmV3IFVSTFNlYXJjaFBhcmFtcygpXG4gIGZvciAoY29uc3QgW2tleSwgdmFsdWVdIG9mIE9iamVjdC5lbnRyaWVzKHF1ZXJ5KSkge1xuICAgIGlmIChBcnJheS5pc0FycmF5KHZhbHVlKSkge1xuICAgICAgZm9yIChjb25zdCBpdGVtIG9mIHZhbHVlKSB7XG4gICAgICAgIHNlYXJjaFBhcmFtcy5hcHBlbmQoa2V5LCBzdHJpbmdpZnlVcmxRdWVyeVBhcmFtKGl0ZW0pKVxuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICBzZWFyY2hQYXJhbXMuc2V0KGtleSwgc3RyaW5naWZ5VXJsUXVlcnlQYXJhbSh2YWx1ZSkpXG4gICAgfVxuICB9XG4gIHJldHVybiBzZWFyY2hQYXJhbXNcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGFzc2lnbihcbiAgdGFyZ2V0OiBVUkxTZWFyY2hQYXJhbXMsXG4gIC4uLnNlYXJjaFBhcmFtc0xpc3Q6IFVSTFNlYXJjaFBhcmFtc1tdXG4pOiBVUkxTZWFyY2hQYXJhbXMge1xuICBmb3IgKGNvbnN0IHNlYXJjaFBhcmFtcyBvZiBzZWFyY2hQYXJhbXNMaXN0KSB7XG4gICAgZm9yIChjb25zdCBrZXkgb2Ygc2VhcmNoUGFyYW1zLmtleXMoKSkge1xuICAgICAgdGFyZ2V0LmRlbGV0ZShrZXkpXG4gICAgfVxuXG4gICAgZm9yIChjb25zdCBba2V5LCB2YWx1ZV0gb2Ygc2VhcmNoUGFyYW1zLmVudHJpZXMoKSkge1xuICAgICAgdGFyZ2V0LmFwcGVuZChrZXksIHZhbHVlKVxuICAgIH1cbiAgfVxuXG4gIHJldHVybiB0YXJnZXRcbn1cbiJdLCJuYW1lcyI6WyJhc3NpZ24iLCJzZWFyY2hQYXJhbXNUb1VybFF1ZXJ5IiwidXJsUXVlcnlUb1NlYXJjaFBhcmFtcyIsInNlYXJjaFBhcmFtcyIsInF1ZXJ5Iiwia2V5IiwidmFsdWUiLCJlbnRyaWVzIiwiZXhpc3RpbmciLCJBcnJheSIsImlzQXJyYXkiLCJwdXNoIiwic3RyaW5naWZ5VXJsUXVlcnlQYXJhbSIsInBhcmFtIiwiaXNOYU4iLCJTdHJpbmciLCJVUkxTZWFyY2hQYXJhbXMiLCJPYmplY3QiLCJpdGVtIiwiYXBwZW5kIiwic2V0IiwidGFyZ2V0Iiwic2VhcmNoUGFyYW1zTGlzdCIsImtleXMiLCJkZWxldGUiXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(pages-dir-node)/./node_modules/next/dist/shared/lib/router/utils/querystring.js\n"); - -/***/ }), - -/***/ "(pages-dir-node)/./node_modules/next/dist/shared/lib/router/utils/remove-path-prefix.js": -/*!******************************************************************************!*\ - !*** ./node_modules/next/dist/shared/lib/router/utils/remove-path-prefix.js ***! - \******************************************************************************/ -/***/ ((__unused_webpack_module, exports, __webpack_require__) => { - -"use strict"; -eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"removePathPrefix\", ({\n enumerable: true,\n get: function() {\n return removePathPrefix;\n }\n}));\nconst _pathhasprefix = __webpack_require__(/*! ./path-has-prefix */ \"(pages-dir-node)/./node_modules/next/dist/shared/lib/router/utils/path-has-prefix.js\");\nfunction removePathPrefix(path, prefix) {\n // If the path doesn't start with the prefix we can return it as is. This\n // protects us from situations where the prefix is a substring of the path\n // prefix such as:\n //\n // For prefix: /blog\n //\n // /blog -> true\n // /blog/ -> true\n // /blog/1 -> true\n // /blogging -> false\n // /blogging/ -> false\n // /blogging/1 -> false\n if (!(0, _pathhasprefix.pathHasPrefix)(path, prefix)) {\n return path;\n }\n // Remove the prefix from the path via slicing.\n const withoutPrefix = path.slice(prefix.length);\n // If the path without the prefix starts with a `/` we can return it as is.\n if (withoutPrefix.startsWith('/')) {\n return withoutPrefix;\n }\n // If the path without the prefix doesn't start with a `/` we need to add it\n // back to the path to make sure it's a valid path.\n return \"/\" + withoutPrefix;\n} //# sourceMappingURL=remove-path-prefix.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1ub2RlKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3Qvc2hhcmVkL2xpYi9yb3V0ZXIvdXRpbHMvcmVtb3ZlLXBhdGgtcHJlZml4LmpzIiwibWFwcGluZ3MiOiI7Ozs7b0RBVWdCQTs7O2VBQUFBOzs7MkNBVmM7QUFVdkIsU0FBU0EsaUJBQWlCQyxJQUFZLEVBQUVDLE1BQWM7SUFDM0QseUVBQXlFO0lBQ3pFLDBFQUEwRTtJQUMxRSxrQkFBa0I7SUFDbEIsRUFBRTtJQUNGLG9CQUFvQjtJQUNwQixFQUFFO0lBQ0Ysa0JBQWtCO0lBQ2xCLG1CQUFtQjtJQUNuQixvQkFBb0I7SUFDcEIsdUJBQXVCO0lBQ3ZCLHdCQUF3QjtJQUN4Qix5QkFBeUI7SUFDekIsSUFBSSxDQUFDQyxDQUFBQSxHQUFBQSxlQUFBQSxhQUFBQSxFQUFjRixNQUFNQyxTQUFTO1FBQ2hDLE9BQU9EO0lBQ1Q7SUFFQSwrQ0FBK0M7SUFDL0MsTUFBTUcsZ0JBQWdCSCxLQUFLSSxLQUFLLENBQUNILE9BQU9JLE1BQU07SUFFOUMsMkVBQTJFO0lBQzNFLElBQUlGLGNBQWNHLFVBQVUsQ0FBQyxNQUFNO1FBQ2pDLE9BQU9IO0lBQ1Q7SUFFQSw0RUFBNEU7SUFDNUUsbURBQW1EO0lBQ25ELE9BQVEsTUFBR0E7QUFDYiIsInNvdXJjZXMiOlsiRDpcXHNyY1xcc2hhcmVkXFxsaWJcXHJvdXRlclxcdXRpbHNcXHJlbW92ZS1wYXRoLXByZWZpeC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBwYXRoSGFzUHJlZml4IH0gZnJvbSAnLi9wYXRoLWhhcy1wcmVmaXgnXG5cbi8qKlxuICogR2l2ZW4gYSBwYXRoIGFuZCBhIHByZWZpeCBpdCB3aWxsIHJlbW92ZSB0aGUgcHJlZml4IHdoZW4gaXQgZXhpc3RzIGluIHRoZVxuICogZ2l2ZW4gcGF0aC4gSXQgZW5zdXJlcyBpdCBtYXRjaGVzIGV4YWN0bHkgd2l0aG91dCBjb250YWluaW5nIGV4dHJhIGNoYXJzXG4gKiBhbmQgaWYgdGhlIHByZWZpeCBpcyBub3QgdGhlcmUgaXQgd2lsbCBiZSBub29wLlxuICpcbiAqIEBwYXJhbSBwYXRoIFRoZSBwYXRoIHRvIHJlbW92ZSB0aGUgcHJlZml4IGZyb20uXG4gKiBAcGFyYW0gcHJlZml4IFRoZSBwcmVmaXggdG8gYmUgcmVtb3ZlZC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHJlbW92ZVBhdGhQcmVmaXgocGF0aDogc3RyaW5nLCBwcmVmaXg6IHN0cmluZyk6IHN0cmluZyB7XG4gIC8vIElmIHRoZSBwYXRoIGRvZXNuJ3Qgc3RhcnQgd2l0aCB0aGUgcHJlZml4IHdlIGNhbiByZXR1cm4gaXQgYXMgaXMuIFRoaXNcbiAgLy8gcHJvdGVjdHMgdXMgZnJvbSBzaXR1YXRpb25zIHdoZXJlIHRoZSBwcmVmaXggaXMgYSBzdWJzdHJpbmcgb2YgdGhlIHBhdGhcbiAgLy8gcHJlZml4IHN1Y2ggYXM6XG4gIC8vXG4gIC8vIEZvciBwcmVmaXg6IC9ibG9nXG4gIC8vXG4gIC8vICAgL2Jsb2cgLT4gdHJ1ZVxuICAvLyAgIC9ibG9nLyAtPiB0cnVlXG4gIC8vICAgL2Jsb2cvMSAtPiB0cnVlXG4gIC8vICAgL2Jsb2dnaW5nIC0+IGZhbHNlXG4gIC8vICAgL2Jsb2dnaW5nLyAtPiBmYWxzZVxuICAvLyAgIC9ibG9nZ2luZy8xIC0+IGZhbHNlXG4gIGlmICghcGF0aEhhc1ByZWZpeChwYXRoLCBwcmVmaXgpKSB7XG4gICAgcmV0dXJuIHBhdGhcbiAgfVxuXG4gIC8vIFJlbW92ZSB0aGUgcHJlZml4IGZyb20gdGhlIHBhdGggdmlhIHNsaWNpbmcuXG4gIGNvbnN0IHdpdGhvdXRQcmVmaXggPSBwYXRoLnNsaWNlKHByZWZpeC5sZW5ndGgpXG5cbiAgLy8gSWYgdGhlIHBhdGggd2l0aG91dCB0aGUgcHJlZml4IHN0YXJ0cyB3aXRoIGEgYC9gIHdlIGNhbiByZXR1cm4gaXQgYXMgaXMuXG4gIGlmICh3aXRob3V0UHJlZml4LnN0YXJ0c1dpdGgoJy8nKSkge1xuICAgIHJldHVybiB3aXRob3V0UHJlZml4XG4gIH1cblxuICAvLyBJZiB0aGUgcGF0aCB3aXRob3V0IHRoZSBwcmVmaXggZG9lc24ndCBzdGFydCB3aXRoIGEgYC9gIHdlIG5lZWQgdG8gYWRkIGl0XG4gIC8vIGJhY2sgdG8gdGhlIHBhdGggdG8gbWFrZSBzdXJlIGl0J3MgYSB2YWxpZCBwYXRoLlxuICByZXR1cm4gYC8ke3dpdGhvdXRQcmVmaXh9YFxufVxuIl0sIm5hbWVzIjpbInJlbW92ZVBhdGhQcmVmaXgiLCJwYXRoIiwicHJlZml4IiwicGF0aEhhc1ByZWZpeCIsIndpdGhvdXRQcmVmaXgiLCJzbGljZSIsImxlbmd0aCIsInN0YXJ0c1dpdGgiXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(pages-dir-node)/./node_modules/next/dist/shared/lib/router/utils/remove-path-prefix.js\n"); - -/***/ }), - -/***/ "(pages-dir-node)/./node_modules/next/dist/shared/lib/router/utils/remove-trailing-slash.js": -/*!*********************************************************************************!*\ - !*** ./node_modules/next/dist/shared/lib/router/utils/remove-trailing-slash.js ***! - \*********************************************************************************/ -/***/ ((__unused_webpack_module, exports) => { - -"use strict"; -eval("/**\n * Removes the trailing slash for a given route or page path. Preserves the\n * root page. Examples:\n * - `/foo/bar/` -> `/foo/bar`\n * - `/foo/bar` -> `/foo/bar`\n * - `/` -> `/`\n */ \nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"removeTrailingSlash\", ({\n enumerable: true,\n get: function() {\n return removeTrailingSlash;\n }\n}));\nfunction removeTrailingSlash(route) {\n return route.replace(/\\/$/, '') || '/';\n} //# sourceMappingURL=remove-trailing-slash.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1ub2RlKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3Qvc2hhcmVkL2xpYi9yb3V0ZXIvdXRpbHMvcmVtb3ZlLXRyYWlsaW5nLXNsYXNoLmpzIiwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Q0FNQzs7Ozt1REFDZUE7OztlQUFBQTs7O0FBQVQsU0FBU0Esb0JBQW9CQyxLQUFhO0lBQy9DLE9BQU9BLE1BQU1DLE9BQU8sQ0FBQyxPQUFPLE9BQU87QUFDckMiLCJzb3VyY2VzIjpbIkQ6XFxzcmNcXHNoYXJlZFxcbGliXFxyb3V0ZXJcXHV0aWxzXFxyZW1vdmUtdHJhaWxpbmctc2xhc2gudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBSZW1vdmVzIHRoZSB0cmFpbGluZyBzbGFzaCBmb3IgYSBnaXZlbiByb3V0ZSBvciBwYWdlIHBhdGguIFByZXNlcnZlcyB0aGVcbiAqIHJvb3QgcGFnZS4gRXhhbXBsZXM6XG4gKiAgIC0gYC9mb28vYmFyL2AgLT4gYC9mb28vYmFyYFxuICogICAtIGAvZm9vL2JhcmAgLT4gYC9mb28vYmFyYFxuICogICAtIGAvYCAtPiBgL2BcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHJlbW92ZVRyYWlsaW5nU2xhc2gocm91dGU6IHN0cmluZykge1xuICByZXR1cm4gcm91dGUucmVwbGFjZSgvXFwvJC8sICcnKSB8fCAnLydcbn1cbiJdLCJuYW1lcyI6WyJyZW1vdmVUcmFpbGluZ1NsYXNoIiwicm91dGUiLCJyZXBsYWNlIl0sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(pages-dir-node)/./node_modules/next/dist/shared/lib/router/utils/remove-trailing-slash.js\n"); - -/***/ }), - -/***/ "(pages-dir-node)/./node_modules/next/dist/shared/lib/router/utils/route-matcher.js": -/*!*************************************************************************!*\ - !*** ./node_modules/next/dist/shared/lib/router/utils/route-matcher.js ***! - \*************************************************************************/ -/***/ ((__unused_webpack_module, exports, __webpack_require__) => { - -"use strict"; -eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"getRouteMatcher\", ({\n enumerable: true,\n get: function() {\n return getRouteMatcher;\n }\n}));\nconst _utils = __webpack_require__(/*! ../../utils */ \"(pages-dir-node)/./node_modules/next/dist/shared/lib/utils.js\");\nfunction getRouteMatcher(param) {\n let { re, groups } = param;\n return (pathname)=>{\n const routeMatch = re.exec(pathname);\n if (!routeMatch) return false;\n const decode = (param)=>{\n try {\n return decodeURIComponent(param);\n } catch (e) {\n throw Object.defineProperty(new _utils.DecodeError('failed to decode param'), \"__NEXT_ERROR_CODE\", {\n value: \"E528\",\n enumerable: false,\n configurable: true\n });\n }\n };\n const params = {};\n for (const [key, group] of Object.entries(groups)){\n const match = routeMatch[group.pos];\n if (match !== undefined) {\n if (group.repeat) {\n params[key] = match.split('/').map((entry)=>decode(entry));\n } else {\n params[key] = decode(match);\n }\n }\n }\n return params;\n };\n} //# sourceMappingURL=route-matcher.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1ub2RlKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3Qvc2hhcmVkL2xpYi9yb3V0ZXIvdXRpbHMvcm91dGUtbWF0Y2hlci5qcyIsIm1hcHBpbmdzIjoiOzs7O21EQWVnQkE7OztlQUFBQTs7O21DQWRZO0FBY3JCLFNBQVNBLGdCQUFnQixLQUdWO0lBSFUsTUFDOUJDLEVBQUUsRUFDRkMsTUFBTSxFQUNjLEdBSFU7SUFJOUIsT0FBTyxDQUFDQztRQUNOLE1BQU1DLGFBQWFILEdBQUdJLElBQUksQ0FBQ0Y7UUFDM0IsSUFBSSxDQUFDQyxZQUFZLE9BQU87UUFFeEIsTUFBTUUsU0FBUyxDQUFDQztZQUNkLElBQUk7Z0JBQ0YsT0FBT0MsbUJBQW1CRDtZQUM1QixFQUFFLFVBQU07Z0JBQ04sTUFBTSxxQkFBeUMsQ0FBekMsSUFBSUUsT0FBQUEsV0FBVyxDQUFDLDJCQUFoQjsyQkFBQTtnQ0FBQTtrQ0FBQTtnQkFBd0M7WUFDaEQ7UUFDRjtRQUVBLE1BQU1DLFNBQWlCLENBQUM7UUFDeEIsS0FBSyxNQUFNLENBQUNDLEtBQUtDLE1BQU0sSUFBSUMsT0FBT0MsT0FBTyxDQUFDWixRQUFTO1lBQ2pELE1BQU1hLFFBQVFYLFVBQVUsQ0FBQ1EsTUFBTUksR0FBRyxDQUFDO1lBQ25DLElBQUlELFVBQVVFLFdBQVc7Z0JBQ3ZCLElBQUlMLE1BQU1NLE1BQU0sRUFBRTtvQkFDaEJSLE1BQU0sQ0FBQ0MsSUFBSSxHQUFHSSxNQUFNSSxLQUFLLENBQUMsS0FBS0MsR0FBRyxDQUFDLENBQUNDLFFBQVVmLE9BQU9lO2dCQUN2RCxPQUFPO29CQUNMWCxNQUFNLENBQUNDLElBQUksR0FBR0wsT0FBT1M7Z0JBQ3ZCO1lBQ0Y7UUFDRjtRQUVBLE9BQU9MO0lBQ1Q7QUFDRiIsInNvdXJjZXMiOlsiRDpcXHNyY1xcc2hhcmVkXFxsaWJcXHJvdXRlclxcdXRpbHNcXHJvdXRlLW1hdGNoZXIudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBHcm91cCB9IGZyb20gJy4vcm91dGUtcmVnZXgnXG5pbXBvcnQgeyBEZWNvZGVFcnJvciB9IGZyb20gJy4uLy4uL3V0aWxzJ1xuaW1wb3J0IHR5cGUgeyBQYXJhbXMgfSBmcm9tICcuLi8uLi8uLi8uLi9zZXJ2ZXIvcmVxdWVzdC9wYXJhbXMnXG5cbmV4cG9ydCBpbnRlcmZhY2UgUm91dGVNYXRjaEZuIHtcbiAgKHBhdGhuYW1lOiBzdHJpbmcpOiBmYWxzZSB8IFBhcmFtc1xufVxuXG50eXBlIFJvdXRlTWF0Y2hlck9wdGlvbnMgPSB7XG4gIC8vIFdlIG9ubHkgdXNlIHRoZSBleGVjIG1ldGhvZCBvZiB0aGUgUmVnRXhwIG9iamVjdC4gVGhpcyBoZWxwcyB1cyBhdm9pZCB1c2luZ1xuICAvLyB0eXBlIGFzc2VydGlvbnMgdGhhdCB0aGUgcGFzc2VkIGluIHByb3BlcnRpZXMgYXJlIG9mIHRoZSBjb3JyZWN0IHR5cGUuXG4gIHJlOiBQaWNrPFJlZ0V4cCwgJ2V4ZWMnPlxuICBncm91cHM6IFJlY29yZDxzdHJpbmcsIEdyb3VwPlxufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0Um91dGVNYXRjaGVyKHtcbiAgcmUsXG4gIGdyb3Vwcyxcbn06IFJvdXRlTWF0Y2hlck9wdGlvbnMpOiBSb3V0ZU1hdGNoRm4ge1xuICByZXR1cm4gKHBhdGhuYW1lOiBzdHJpbmcpID0+IHtcbiAgICBjb25zdCByb3V0ZU1hdGNoID0gcmUuZXhlYyhwYXRobmFtZSlcbiAgICBpZiAoIXJvdXRlTWF0Y2gpIHJldHVybiBmYWxzZVxuXG4gICAgY29uc3QgZGVjb2RlID0gKHBhcmFtOiBzdHJpbmcpID0+IHtcbiAgICAgIHRyeSB7XG4gICAgICAgIHJldHVybiBkZWNvZGVVUklDb21wb25lbnQocGFyYW0pXG4gICAgICB9IGNhdGNoIHtcbiAgICAgICAgdGhyb3cgbmV3IERlY29kZUVycm9yKCdmYWlsZWQgdG8gZGVjb2RlIHBhcmFtJylcbiAgICAgIH1cbiAgICB9XG5cbiAgICBjb25zdCBwYXJhbXM6IFBhcmFtcyA9IHt9XG4gICAgZm9yIChjb25zdCBba2V5LCBncm91cF0gb2YgT2JqZWN0LmVudHJpZXMoZ3JvdXBzKSkge1xuICAgICAgY29uc3QgbWF0Y2ggPSByb3V0ZU1hdGNoW2dyb3VwLnBvc11cbiAgICAgIGlmIChtYXRjaCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIGlmIChncm91cC5yZXBlYXQpIHtcbiAgICAgICAgICBwYXJhbXNba2V5XSA9IG1hdGNoLnNwbGl0KCcvJykubWFwKChlbnRyeSkgPT4gZGVjb2RlKGVudHJ5KSlcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBwYXJhbXNba2V5XSA9IGRlY29kZShtYXRjaClcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBwYXJhbXNcbiAgfVxufVxuIl0sIm5hbWVzIjpbImdldFJvdXRlTWF0Y2hlciIsInJlIiwiZ3JvdXBzIiwicGF0aG5hbWUiLCJyb3V0ZU1hdGNoIiwiZXhlYyIsImRlY29kZSIsInBhcmFtIiwiZGVjb2RlVVJJQ29tcG9uZW50IiwiRGVjb2RlRXJyb3IiLCJwYXJhbXMiLCJrZXkiLCJncm91cCIsIk9iamVjdCIsImVudHJpZXMiLCJtYXRjaCIsInBvcyIsInVuZGVmaW5lZCIsInJlcGVhdCIsInNwbGl0IiwibWFwIiwiZW50cnkiXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(pages-dir-node)/./node_modules/next/dist/shared/lib/router/utils/route-matcher.js\n"); - -/***/ }), - -/***/ "(pages-dir-node)/./node_modules/next/dist/shared/lib/router/utils/route-regex.js": -/*!***********************************************************************!*\ - !*** ./node_modules/next/dist/shared/lib/router/utils/route-regex.js ***! - \***********************************************************************/ -/***/ ((__unused_webpack_module, exports, __webpack_require__) => { - -"use strict"; -eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n getNamedMiddlewareRegex: function() {\n return getNamedMiddlewareRegex;\n },\n getNamedRouteRegex: function() {\n return getNamedRouteRegex;\n },\n getRouteRegex: function() {\n return getRouteRegex;\n },\n parseParameter: function() {\n return parseParameter;\n }\n});\nconst _constants = __webpack_require__(/*! ../../../../lib/constants */ \"(pages-dir-node)/./node_modules/next/dist/lib/constants.js\");\nconst _interceptionroutes = __webpack_require__(/*! ./interception-routes */ \"(pages-dir-node)/./node_modules/next/dist/shared/lib/router/utils/interception-routes.js\");\nconst _escaperegexp = __webpack_require__(/*! ../../escape-regexp */ \"(pages-dir-node)/./node_modules/next/dist/shared/lib/escape-regexp.js\");\nconst _removetrailingslash = __webpack_require__(/*! ./remove-trailing-slash */ \"(pages-dir-node)/./node_modules/next/dist/shared/lib/router/utils/remove-trailing-slash.js\");\n/**\n * Regular expression pattern used to match route parameters.\n * Matches both single parameters and parameter groups.\n * Examples:\n * - `[[...slug]]` matches parameter group with key 'slug', repeat: true, optional: true\n * - `[...slug]` matches parameter group with key 'slug', repeat: true, optional: false\n * - `[[foo]]` matches parameter with key 'foo', repeat: false, optional: true\n * - `[bar]` matches parameter with key 'bar', repeat: false, optional: false\n */ const PARAMETER_PATTERN = /^([^[]*)\\[((?:\\[[^\\]]*\\])|[^\\]]+)\\](.*)$/;\nfunction parseParameter(param) {\n const match = param.match(PARAMETER_PATTERN);\n if (!match) {\n return parseMatchedParameter(param);\n }\n return parseMatchedParameter(match[2]);\n}\n/**\n * Parses a matched parameter from the PARAMETER_PATTERN regex to a data structure that can be used\n * to generate the parametrized route.\n * Examples:\n * - `[...slug]` -> `{ key: 'slug', repeat: true, optional: true }`\n * - `...slug` -> `{ key: 'slug', repeat: true, optional: false }`\n * - `[foo]` -> `{ key: 'foo', repeat: false, optional: true }`\n * - `bar` -> `{ key: 'bar', repeat: false, optional: false }`\n * @param param - The matched parameter to parse.\n * @returns The parsed parameter as a data structure.\n */ function parseMatchedParameter(param) {\n const optional = param.startsWith('[') && param.endsWith(']');\n if (optional) {\n param = param.slice(1, -1);\n }\n const repeat = param.startsWith('...');\n if (repeat) {\n param = param.slice(3);\n }\n return {\n key: param,\n repeat,\n optional\n };\n}\nfunction getParametrizedRoute(route, includeSuffix, includePrefix) {\n const groups = {};\n let groupIndex = 1;\n const segments = [];\n for (const segment of (0, _removetrailingslash.removeTrailingSlash)(route).slice(1).split('/')){\n const markerMatch = _interceptionroutes.INTERCEPTION_ROUTE_MARKERS.find((m)=>segment.startsWith(m));\n const paramMatches = segment.match(PARAMETER_PATTERN) // Check for parameters\n ;\n if (markerMatch && paramMatches && paramMatches[2]) {\n const { key, optional, repeat } = parseMatchedParameter(paramMatches[2]);\n groups[key] = {\n pos: groupIndex++,\n repeat,\n optional\n };\n segments.push(\"/\" + (0, _escaperegexp.escapeStringRegexp)(markerMatch) + \"([^/]+?)\");\n } else if (paramMatches && paramMatches[2]) {\n const { key, repeat, optional } = parseMatchedParameter(paramMatches[2]);\n groups[key] = {\n pos: groupIndex++,\n repeat,\n optional\n };\n if (includePrefix && paramMatches[1]) {\n segments.push(\"/\" + (0, _escaperegexp.escapeStringRegexp)(paramMatches[1]));\n }\n let s = repeat ? optional ? '(?:/(.+?))?' : '/(.+?)' : '/([^/]+?)';\n // Remove the leading slash if includePrefix already added it.\n if (includePrefix && paramMatches[1]) {\n s = s.substring(1);\n }\n segments.push(s);\n } else {\n segments.push(\"/\" + (0, _escaperegexp.escapeStringRegexp)(segment));\n }\n // If there's a suffix, add it to the segments if it's enabled.\n if (includeSuffix && paramMatches && paramMatches[3]) {\n segments.push((0, _escaperegexp.escapeStringRegexp)(paramMatches[3]));\n }\n }\n return {\n parameterizedRoute: segments.join(''),\n groups\n };\n}\nfunction getRouteRegex(normalizedRoute, param) {\n let { includeSuffix = false, includePrefix = false, excludeOptionalTrailingSlash = false } = param === void 0 ? {} : param;\n const { parameterizedRoute, groups } = getParametrizedRoute(normalizedRoute, includeSuffix, includePrefix);\n let re = parameterizedRoute;\n if (!excludeOptionalTrailingSlash) {\n re += '(?:/)?';\n }\n return {\n re: new RegExp(\"^\" + re + \"$\"),\n groups: groups\n };\n}\n/**\n * Builds a function to generate a minimal routeKey using only a-z and minimal\n * number of characters.\n */ function buildGetSafeRouteKey() {\n let i = 0;\n return ()=>{\n let routeKey = '';\n let j = ++i;\n while(j > 0){\n routeKey += String.fromCharCode(97 + (j - 1) % 26);\n j = Math.floor((j - 1) / 26);\n }\n return routeKey;\n };\n}\nfunction getSafeKeyFromSegment(param) {\n let { interceptionMarker, getSafeRouteKey, segment, routeKeys, keyPrefix, backreferenceDuplicateKeys } = param;\n const { key, optional, repeat } = parseMatchedParameter(segment);\n // replace any non-word characters since they can break\n // the named regex\n let cleanedKey = key.replace(/\\W/g, '');\n if (keyPrefix) {\n cleanedKey = \"\" + keyPrefix + cleanedKey;\n }\n let invalidKey = false;\n // check if the key is still invalid and fallback to using a known\n // safe key\n if (cleanedKey.length === 0 || cleanedKey.length > 30) {\n invalidKey = true;\n }\n if (!isNaN(parseInt(cleanedKey.slice(0, 1)))) {\n invalidKey = true;\n }\n if (invalidKey) {\n cleanedKey = getSafeRouteKey();\n }\n const duplicateKey = cleanedKey in routeKeys;\n if (keyPrefix) {\n routeKeys[cleanedKey] = \"\" + keyPrefix + key;\n } else {\n routeKeys[cleanedKey] = key;\n }\n // if the segment has an interception marker, make sure that's part of the regex pattern\n // this is to ensure that the route with the interception marker doesn't incorrectly match\n // the non-intercepted route (ie /app/(.)[username] should not match /app/[username])\n const interceptionPrefix = interceptionMarker ? (0, _escaperegexp.escapeStringRegexp)(interceptionMarker) : '';\n let pattern;\n if (duplicateKey && backreferenceDuplicateKeys) {\n // Use a backreference to the key to ensure that the key is the same value\n // in each of the placeholders.\n pattern = \"\\\\k<\" + cleanedKey + \">\";\n } else if (repeat) {\n pattern = \"(?<\" + cleanedKey + \">.+?)\";\n } else {\n pattern = \"(?<\" + cleanedKey + \">[^/]+?)\";\n }\n return optional ? \"(?:/\" + interceptionPrefix + pattern + \")?\" : \"/\" + interceptionPrefix + pattern;\n}\nfunction getNamedParametrizedRoute(route, prefixRouteKeys, includeSuffix, includePrefix, backreferenceDuplicateKeys) {\n const getSafeRouteKey = buildGetSafeRouteKey();\n const routeKeys = {};\n const segments = [];\n for (const segment of (0, _removetrailingslash.removeTrailingSlash)(route).slice(1).split('/')){\n const hasInterceptionMarker = _interceptionroutes.INTERCEPTION_ROUTE_MARKERS.some((m)=>segment.startsWith(m));\n const paramMatches = segment.match(PARAMETER_PATTERN) // Check for parameters\n ;\n if (hasInterceptionMarker && paramMatches && paramMatches[2]) {\n // If there's an interception marker, add it to the segments.\n segments.push(getSafeKeyFromSegment({\n getSafeRouteKey,\n interceptionMarker: paramMatches[1],\n segment: paramMatches[2],\n routeKeys,\n keyPrefix: prefixRouteKeys ? _constants.NEXT_INTERCEPTION_MARKER_PREFIX : undefined,\n backreferenceDuplicateKeys\n }));\n } else if (paramMatches && paramMatches[2]) {\n // If there's a prefix, add it to the segments if it's enabled.\n if (includePrefix && paramMatches[1]) {\n segments.push(\"/\" + (0, _escaperegexp.escapeStringRegexp)(paramMatches[1]));\n }\n let s = getSafeKeyFromSegment({\n getSafeRouteKey,\n segment: paramMatches[2],\n routeKeys,\n keyPrefix: prefixRouteKeys ? _constants.NEXT_QUERY_PARAM_PREFIX : undefined,\n backreferenceDuplicateKeys\n });\n // Remove the leading slash if includePrefix already added it.\n if (includePrefix && paramMatches[1]) {\n s = s.substring(1);\n }\n segments.push(s);\n } else {\n segments.push(\"/\" + (0, _escaperegexp.escapeStringRegexp)(segment));\n }\n // If there's a suffix, add it to the segments if it's enabled.\n if (includeSuffix && paramMatches && paramMatches[3]) {\n segments.push((0, _escaperegexp.escapeStringRegexp)(paramMatches[3]));\n }\n }\n return {\n namedParameterizedRoute: segments.join(''),\n routeKeys\n };\n}\nfunction getNamedRouteRegex(normalizedRoute, options) {\n var _options_includeSuffix, _options_includePrefix, _options_backreferenceDuplicateKeys;\n const result = getNamedParametrizedRoute(normalizedRoute, options.prefixRouteKeys, (_options_includeSuffix = options.includeSuffix) != null ? _options_includeSuffix : false, (_options_includePrefix = options.includePrefix) != null ? _options_includePrefix : false, (_options_backreferenceDuplicateKeys = options.backreferenceDuplicateKeys) != null ? _options_backreferenceDuplicateKeys : false);\n let namedRegex = result.namedParameterizedRoute;\n if (!options.excludeOptionalTrailingSlash) {\n namedRegex += '(?:/)?';\n }\n return {\n ...getRouteRegex(normalizedRoute, options),\n namedRegex: \"^\" + namedRegex + \"$\",\n routeKeys: result.routeKeys\n };\n}\nfunction getNamedMiddlewareRegex(normalizedRoute, options) {\n const { parameterizedRoute } = getParametrizedRoute(normalizedRoute, false, false);\n const { catchAll = true } = options;\n if (parameterizedRoute === '/') {\n let catchAllRegex = catchAll ? '.*' : '';\n return {\n namedRegex: \"^/\" + catchAllRegex + \"$\"\n };\n }\n const { namedParameterizedRoute } = getNamedParametrizedRoute(normalizedRoute, false, false, false, false);\n let catchAllGroupedRegex = catchAll ? '(?:(/.*)?)' : '';\n return {\n namedRegex: \"^\" + namedParameterizedRoute + catchAllGroupedRegex + \"$\"\n };\n} //# sourceMappingURL=route-regex.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1ub2RlKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3Qvc2hhcmVkL2xpYi9yb3V0ZXIvdXRpbHMvcm91dGUtcmVnZXguanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7O0lBd1pnQkEsdUJBQXVCO2VBQXZCQTs7SUE1QkFDLGtCQUFrQjtlQUFsQkE7O0lBN0xBQyxhQUFhO2VBQWJBOztJQXpGQUMsY0FBYztlQUFkQTs7O3VDQW5HVDtnREFDb0M7MENBQ1I7aURBQ0M7QUF5RXBDOzs7Ozs7OztDQVFDLEdBQ0QsTUFBTUMsb0JBQW9CO0FBY25CLFNBQVNELGVBQWVFLEtBQWE7SUFDMUMsTUFBTUMsUUFBUUQsTUFBTUMsS0FBSyxDQUFDRjtJQUUxQixJQUFJLENBQUNFLE9BQU87UUFDVixPQUFPQyxzQkFBc0JGO0lBQy9CO0lBRUEsT0FBT0Usc0JBQXNCRCxLQUFLLENBQUMsRUFBRTtBQUN2QztBQUVBOzs7Ozs7Ozs7O0NBVUMsR0FDRCxTQUFTQyxzQkFBc0JGLEtBQWE7SUFDMUMsTUFBTUcsV0FBV0gsTUFBTUksVUFBVSxDQUFDLFFBQVFKLE1BQU1LLFFBQVEsQ0FBQztJQUN6RCxJQUFJRixVQUFVO1FBQ1pILFFBQVFBLE1BQU1NLEtBQUssQ0FBQyxHQUFHLENBQUM7SUFDMUI7SUFDQSxNQUFNQyxTQUFTUCxNQUFNSSxVQUFVLENBQUM7SUFDaEMsSUFBSUcsUUFBUTtRQUNWUCxRQUFRQSxNQUFNTSxLQUFLLENBQUM7SUFDdEI7SUFDQSxPQUFPO1FBQUVFLEtBQUtSO1FBQU9PO1FBQVFKO0lBQVM7QUFDeEM7QUFFQSxTQUFTTSxxQkFDUEMsS0FBYSxFQUNiQyxhQUFzQixFQUN0QkMsYUFBc0I7SUFFdEIsTUFBTUMsU0FBeUMsQ0FBQztJQUNoRCxJQUFJQyxhQUFhO0lBRWpCLE1BQU1DLFdBQXFCLEVBQUU7SUFDN0IsS0FBSyxNQUFNQyxXQUFXQyxDQUFBQSxHQUFBQSxxQkFBQUEsbUJBQUFBLEVBQW9CUCxPQUFPSixLQUFLLENBQUMsR0FBR1ksS0FB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QU0sRUFBRXNDLFdBQVcsSUFBSSxFQUFFLEdBQUdIO0lBQzVCLElBQUlyQyx1QkFBdUIsS0FBSztRQUM5QixJQUFJeUMsZ0JBQWdCRCxXQUFXLE9BQU87UUFDdEMsT0FBTztZQUNMRCxZQUFhLE9BQUlFLGdCQUFjO1FBQ2pDO0lBQ0Y7SUFFQSxNQUFNLEVBQUVMLHVCQUF1QixFQUFFLEdBQUdQLDBCQUNsQzNCLGlCQUNBLE9BQ0EsT0FDQSxPQUNBO0lBRUYsSUFBSXdDLHVCQUF1QkYsV0FBVyxlQUFlO0lBQ3JELE9BQU87UUFDTEQsWUFBYSxNQUFHSCwwQkFBMEJNLHVCQUFxQjtJQUNqRTtBQUNGIiwic291cmNlcyI6WyJEOlxcc3JjXFxzaGFyZWRcXGxpYlxccm91dGVyXFx1dGlsc1xccm91dGUtcmVnZXgudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgTkVYVF9JTlRFUkNFUFRJT05fTUFSS0VSX1BSRUZJWCxcbiAgTkVYVF9RVUVSWV9QQVJBTV9QUkVGSVgsXG59IGZyb20gJy4uLy4uLy4uLy4uL2xpYi9jb25zdGFudHMnXG5pbXBvcnQgeyBJTlRFUkNFUFRJT05fUk9VVEVfTUFSS0VSUyB9IGZyb20gJy4vaW50ZXJjZXB0aW9uLXJvdXRlcydcbmltcG9ydCB7IGVzY2FwZVN0cmluZ1JlZ2V4cCB9IGZyb20gJy4uLy4uL2VzY2FwZS1yZWdleHAnXG5pbXBvcnQgeyByZW1vdmVUcmFpbGluZ1NsYXNoIH0gZnJvbSAnLi9yZW1vdmUtdHJhaWxpbmctc2xhc2gnXG5cbmV4cG9ydCBpbnRlcmZhY2UgR3JvdXAge1xuICBwb3M6IG51bWJlclxuICByZXBlYXQ6IGJvb2xlYW5cbiAgb3B0aW9uYWw6IGJvb2xlYW5cbn1cblxuZXhwb3J0IGludGVyZmFjZSBSb3V0ZVJlZ2V4IHtcbiAgZ3JvdXBzOiB7IFtncm91cE5hbWU6IHN0cmluZ106IEdyb3VwIH1cbiAgcmU6IFJlZ0V4cFxufVxuXG50eXBlIEdldE5hbWVkUm91dGVSZWdleE9wdGlvbnMgPSB7XG4gIC8qKlxuICAgKiBXaGV0aGVyIHRvIHByZWZpeCB0aGUgcm91dGUga2V5cyB3aXRoIHRoZSBORVhUX0lOVEVSQ0VQVElPTl9NQVJLRVJfUFJFRklYXG4gICAqIG9yIE5FWFRfUVVFUllfUEFSQU1fUFJFRklYLiBUaGlzIGlzIG9ubHkgcmVsZXZhbnQgd2hlbiBjcmVhdGluZyB0aGVcbiAgICogcm91dGVzLW1hbmlmZXN0IGR1cmluZyB0aGUgYnVpbGQuXG4gICAqL1xuICBwcmVmaXhSb3V0ZUtleXM6IGJvb2xlYW5cblxuICAvKipcbiAgICogV2hldGhlciB0byBpbmNsdWRlIHRoZSBzdWZmaXggaW4gdGhlIHJvdXRlIHJlZ2V4LiBUaGlzIG1lYW5zIHRoYXQgd2hlbiB5b3VcbiAgICogaGF2ZSBzb21ldGhpbmcgbGlrZSBgL1suLi5zbHVnXS5qc29uYCB0aGUgYC5qc29uYCBwYXJ0IHdpbGwgYmUgaW5jbHVkZWRcbiAgICogaW4gdGhlIHJlZ2V4LCB5aWVsZGluZyBgLyguKikuanNvbmAgYXMgdGhlIHJlZ2V4LlxuICAgKi9cbiAgaW5jbHVkZVN1ZmZpeD86IGJvb2xlYW5cblxuICAvKipcbiAgICogV2hldGhlciB0byBpbmNsdWRlIHRoZSBwcmVmaXggaW4gdGhlIHJvdXRlIHJlZ2V4LiBUaGlzIG1lYW5zIHRoYXQgd2hlbiB5b3VcbiAgICogaGF2ZSBzb21ldGhpbmcgbGlrZSBgL1suLi5zbHVnXS5qc29uYCB0aGUgYC9gIHBhcnQgd2lsbCBiZSBpbmNsdWRlZFxuICAgKiBpbiB0aGUgcmVnZXgsIHlpZWxkaW5nIGBeLyguKikuanNvbiRgIGFzIHRoZSByZWdleC5cbiAgICpcbiAgICogTm90ZSB0aGF0IGludGVyY2VwdGlvbiBtYXJrZXJzIHdpbGwgYWxyZWFkeSBiZSBpbmNsdWRlZCB3aXRob3V0IHRoZSBuZWVkXG4gICAqL1xuICBpbmNsdWRlUHJlZml4PzogYm9vbGVhblxuXG4gIC8qKlxuICAgKiBXaGV0aGVyIHRvIGV4Y2x1ZGUgdGhlIG9wdGlvbmFsIHRyYWlsaW5nIHNsYXNoIGZyb20gdGhlIHJvdXRlIHJlZ2V4LlxuICAgKi9cbiAgZXhjbHVkZU9wdGlvbmFsVHJhaWxpbmdTbGFzaD86IGJvb2xlYW5cblxuICAvKipcbiAgICogV2hldGhlciB0byBiYWNrdHJhY2sgZHVwbGljYXRlIGtleXMuIFRoaXMgaXMgb25seSByZWxldmFudCB3aGVuIGNyZWF0aW5nXG4gICAqIHRoZSByb3V0ZXMtbWFuaWZlc3QgZHVyaW5nIHRoZSBidWlsZC5cbiAgICovXG4gIGJhY2tyZWZlcmVuY2VEdXBsaWNhdGVLZXlzPzogYm9vbGVhblxufVxuXG50eXBlIEdldFJvdXRlUmVnZXhPcHRpb25zID0ge1xuICAvKipcbiAgICogV2hldGhlciB0byBpbmNsdWRlIGV4dHJhIHBhcnRzIGluIHRoZSByb3V0ZSByZWdleC4gVGhpcyBtZWFucyB0aGF0IHdoZW4geW91XG4gICAqIGhhdmUgc29tZXRoaW5nIGxpa2UgYC9bLi4uc2x1Z10uanNvbmAgdGhlIGAuanNvbmAgcGFydCB3aWxsIGJlIGluY2x1ZGVkXG4gICAqIGluIHRoZSByZWdleCwgeWllbGRpbmcgYC8oLiopLmpzb25gIGFzIHRoZSByZWdleC5cbiAgICovXG4gIGluY2x1ZGVTdWZmaXg/OiBib29sZWFuXG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgdG8gaW5jbHVkZSB0aGUgcHJlZml4IGluIHRoZSByb3V0ZSByZWdleC4gVGhpcyBtZWFucyB0aGF0IHdoZW4geW91XG4gICAqIGhhdmUgc29tZXRoaW5nIGxpa2UgYC9bLi4uc2x1Z10uanNvbmAgdGhlIGAvYCBwYXJ0IHdpbGwgYmUgaW5jbHVkZWRcbiAgICogaW4gdGhlIHJlZ2V4LCB5aWVsZGluZyBgXi8oLiopLmpzb24kYCBhcyB0aGUgcmVnZXguXG4gICAqXG4gICAqIE5vdGUgdGhhdCBpbnRlcmNlcHRpb24gbWFya2VycyB3aWxsIGFscmVhZHkgYmUgaW5jbHVkZWQgd2l0aG91dCB0aGUgbmVlZFxuICAgKiBvZiBhZGRpbmcgdGhpcyBvcHRpb24uXG4gICAqL1xuICBpbmNsdWRlUHJlZml4PzogYm9vbGVhblxuXG4gIC8qKlxuICAgKiBXaGV0aGVyIHRvIGV4Y2x1ZGUgdGhlIG9wdGlvbmFsIHRyYWlsaW5nIHNsYXNoIGZyb20gdGhlIHJvdXRlIHJlZ2V4LlxuICAgKi9cbiAgZXhjbHVkZU9wdGlvbmFsVHJhaWxpbmdTbGFzaD86IGJvb2xlYW5cbn1cblxuLyoqXG4gKiBSZWd1bGFyIGV4cHJlc3Npb24gcGF0dGVybiB1c2VkIHRvIG1hdGNoIHJvdXRlIHBhcmFtZXRlcnMuXG4gKiBNYXRjaGVzIGJvdGggc2luZ2xlIHBhcmFtZXRlcnMgYW5kIHBhcmFtZXRlciBncm91cHMuXG4gKiBFeGFtcGxlczpcbiAqICAgLSBgW1suLi5zbHVnXV1gIG1hdGNoZXMgcGFyYW1ldGVyIGdyb3VwIHdpdGgga2V5ICdzbHVnJywgcmVwZWF0OiB0cnVlLCBvcHRpb25hbDogdHJ1ZVxuICogICAtIGBbLi4uc2x1Z11gIG1hdGNoZXMgcGFyYW1ldGVyIGdyb3VwIHdpdGgga2V5ICdzbHVnJywgcmVwZWF0OiB0cnVlLCBvcHRpb25hbDogZmFsc2VcbiAqICAgLSBgW1tmb29dXWAgbWF0Y2hlcyBwYXJhbWV0ZXIgd2l0aCBrZXkgJ2ZvbycsIHJlcGVhdDogZmFsc2UsIG9wdGlvbmFsOiB0cnVlXG4gKiAgIC0gYFtiYXJdYCBtYXRjaGVzIHBhcmFtZXRlciB3aXRoIGtleSAnYmFyJywgcmVwZWF0OiBmYWxzZSwgb3B0aW9uYWw6IGZhbHNlXG4gKi9cbmNvbnN0IFBBUkFNRVRFUl9QQVRURVJOID0gL14oW15bXSopXFxbKCg/OlxcW1teXFxdXSpcXF0pfFteXFxdXSspXFxdKC4qKSQvXG5cbi8qKlxuICogUGFyc2VzIGEgZ2l2ZW4gcGFyYW1ldGVyIGZyb20gYSByb3V0ZSB0byBhIGRhdGEgc3RydWN0dXJlIHRoYXQgY2FuIGJlIHVzZWRcbiAqIHRvIGdlbmVyYXRlIHRoZSBwYXJhbWV0cml6ZWQgcm91dGUuXG4gKiBFeGFtcGxlczpcbiAqICAgLSBgW1suLi5zbHVnXV1gIC0+IGB7IGtleTogJ3NsdWcnLCByZXBlYXQ6IHRydWUsIG9wdGlvbmFsOiB0cnVlIH1gXG4gKiAgIC0gYFsuLi5zbHVnXWAgLT4gYHsga2V5OiAnc2x1ZycsIHJlcGVhdDogdHJ1ZSwgb3B0aW9uYWw6IGZhbHNlIH1gXG4gKiAgIC0gYFtbZm9vXV1gIC0+IGB7IGtleTogJ2ZvbycsIHJlcGVhdDogZmFsc2UsIG9wdGlvbmFsOiB0cnVlIH1gXG4gKiAgIC0gYFtiYXJdYCAtPiBgeyBrZXk6ICdiYXInLCByZXBlYXQ6IGZhbHNlLCBvcHRpb25hbDogZmFsc2UgfWBcbiAqICAgLSBgZml6emAgLT4gYHsga2V5OiAnZml6eicsIHJlcGVhdDogZmFsc2UsIG9wdGlvbmFsOiBmYWxzZSB9YFxuICogQHBhcmFtIHBhcmFtIC0gVGhlIHBhcmFtZXRlciB0byBwYXJzZS5cbiAqIEByZXR1cm5zIFRoZSBwYXJzZWQgcGFyYW1ldGVyIGFzIGEgZGF0YSBzdHJ1Y3R1cmUuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBwYXJzZVBhcmFtZXRlcihwYXJhbTogc3RyaW5nKSB7XG4gIGNvbnN0IG1hdGNoID0gcGFyYW0ubWF0Y2goUEFSQU1FVEVSX1BBVFRFUk4pXG5cbiAgaWYgKCFtYXRjaCkge1xuICAgIHJldHVybiBwYXJzZU1hdGNoZWRQYXJhbWV0ZXIocGFyYW0pXG4gIH1cblxuICByZXR1cm4gcGFyc2VNYXRjaGVkUGFyYW1ldGVyKG1hdGNoWzJdKVxufVxuXG4vKipcbiAqIFBhcnNlcyBhIG1hdGNoZWQgcGFyYW1ldGVyIGZyb20gdGhlIFBBUkFNRVRFUl9QQVRURVJOIHJlZ2V4IHRvIGEgZGF0YSBzdHJ1Y3R1cmUgdGhhdCBjYW4gYmUgdXNlZFxuICogdG8gZ2VuZXJhdGUgdGhlIHBhcmFtZXRyaXplZCByb3V0ZS5cbiAqIEV4YW1wbGVzOlxuICogICAtIGBbLi4uc2x1Z11gIC0+IGB7IGtleTogJ3NsdWcnLCByZXBlYXQ6IHRydWUsIG9wdGlvbmFsOiB0cnVlIH1gXG4gKiAgIC0gYC4uLnNsdWdgIC0+IGB7IGtleTogJ3NsdWcnLCByZXBlYXQ6IHRydWUsIG9wdGlvbmFsOiBmYWxzZSB9YFxuICogICAtIGBbZm9vXWAgLT4gYHsga2V5OiAnZm9vJywgcmVwZWF0OiBmYWxzZSwgb3B0aW9uYWw6IHRydWUgfWBcbiAqICAgLSBgYmFyYCAtPiBgeyBrZXk6ICdiYXInLCByZXBlYXQ6IGZhbHNlLCBvcHRpb25hbDogZmFsc2UgfWBcbiAqIEBwYXJhbSBwYXJhbSAtIFRoZSBtYXRjaGVkIHBhcmFtZXRlciB0byBwYXJzZS5cbiAqIEByZXR1cm5zIFRoZSBwYXJzZWQgcGFyYW1ldGVyIGFzIGEgZGF0YSBzdHJ1Y3R1cmUuXG4gKi9cbmZ1bmN0aW9uIHBhcnNlTWF0Y2hlZFBhcmFtZXRlcihwYXJhbTogc3RyaW5nKSB7XG4gIGNvbnN0IG9wdGlvbmFsID0gcGFyYW0uc3RhcnRzV2l0aCgnWycpICYmIHBhcmFtLmVuZHNXaXRoKCddJylcbiAgaWYgKG9wdGlvbmFsKSB7XG4gICAgcGFyYW0gPSBwYXJhbS5zbGljZSgxLCAtMSlcbiAgfVxuICBjb25zdCByZXBlYXQgPSBwYXJhbS5zdGFydHNXaXRoKCcuLi4nKVxuICBpZiAocmVwZWF0KSB7XG4gICAgcGFyYW0gPSBwYXJhbS5zbGljZSgzKVxuICB9XG4gIHJldHVybiB7IGtleTogcGFyYW0sIHJlcGVhdCwgb3B0aW9uYWwgfVxufVxuXG5mdW5jdGlvbiBnZXRQYXJhbWV0cml6ZWRSb3V0ZShcbiAgcm91dGU6IHN0cmluZyxcbiAgaW5jbHVkZVN1ZmZpeDogYm9vbGVhbixcbiAgaW5jbHVkZVByZWZpeDogYm9vbGVhblxuKSB7XG4gIGNvbnN0IGdyb3VwczogeyBbZ3JvdXBOYW1lOiBzdHJpbmddOiBHcm91cCB9ID0ge31cbiAgbGV0IGdyb3VwSW5kZXggPSAxXG5cbiAgY29uc3Qgc2VnbWVudHM6IHN0cmluZ1tdID0gW11cbiAgZm9yIChjb25zdCBzZWdtZW50IG9mIHJlbW92ZVRyYWlsaW5nU2xhc2gocm91dGUpLnNsaWNlKDEpLnNwbGl0KCcvJykpIHtcbiAgICBjb25zdCBtYXJrZXJNYXRjaCA9IElOVEVSQ0VQVElPTl9ST1VURV9NQVJLRVJTLmZpbmQoKG0pID0+XG4gICAgICBzZWdtZW50LnN0YXJ0c1dpdGgobSlcbiAgICApXG4gICAgY29uc3QgcGFyYW1NYXRjaGVzID0gc2VnbWVudC5tYXRjaChQQVJBTUVURVJfUEFUVEVSTikgLy8gQ2hlY2sgZm9yIHBhcmFtZXRlcnNcblxuICAgIGlmIChtYXJrZXJNYXRjaCAmJiBwYXJhbU1hdGNoZXMgJiYgcGFyYW1NYXRjaGVzWzJdKSB7XG4gICAgICBjb25zdCB7IGtleSwgb3B0aW9uYWwsIHJlcGVhdCB9ID0gcGFyc2VNYXRjaGVkUGFyYW1ldGVyKHBhcmFtTWF0Y2hlc1syXSlcbiAgICAgIGdyb3Vwc1trZXldID0geyBwb3M6IGdyb3VwSW5kZXgrKywgcmVwZWF0LCBvcHRpb25hbCB9XG4gICAgICBzZWdtZW50cy5wdXNoKGAvJHtlc2NhcGVTdHJpbmdSZWdleHAobWFya2VyTWF0Y2gpfShbXi9dKz8pYClcbiAgICB9IGVsc2UgaWYgKHBhcmFtTWF0Y2hlcyAmJiBwYXJhbU1hdGNoZXNbMl0pIHtcbiAgICAgIGNvbnN0IHsga2V5LCByZXBlYXQsIG9wdGlvbmFsIH0gPSBwYXJzZU1hdGNoZWRQYXJhbWV0ZXIocGFyYW1NYXRjaGVzWzJdKVxuICAgICAgZ3JvdXBzW2tleV0gPSB7IHBvczogZ3JvdXBJbmRleCsrLCByZXBlYXQsIG9wdGlvbmFsIH1cblxuICAgICAgaWYgKGluY2x1ZGVQcmVmaXggJiYgcGFyYW1NYXRjaGVzWzFdKSB7XG4gICAgICAgIHNlZ21lbnRzLnB1c2goYC8ke2VzY2FwZVN0cmluZ1JlZ2V4cChwYXJhbU1hdGNoZXNbMV0pfWApXG4gICAgICB9XG5cbiAgICAgIGxldCBzID0gcmVwZWF0ID8gKG9wdGlvbmFsID8gJyg/Oi8oLis/KSk/JyA6ICcvKC4rPyknKSA6ICcvKFteL10rPyknXG5cbiAgICAgIC8vIFJlbW92ZSB0aGUgbGVhZGluZyBzbGFzaCBpZiBpbmNsdWRlUHJlZml4IGFscmVhZHkgYWRkZWQgaXQuXG4gICAgICBpZiAoaW5jbHVkZVByZWZpeCAmJiBwYXJhbU1hdGNoZXNbMV0pIHtcbiAgICAgICAgcyA9IHMuc3Vic3RyaW5nKDEpXG4gICAgICB9XG5cbiAgICAgIHNlZ21lbnRzLnB1c2gocylcbiAgICB9IGVsc2Uge1xuICAgICAgc2VnbWVudHMucHVzaChgLyR7ZXNjYXBlU3RyaW5nUmVnZXhwKHNlZ21lbnQpfWApXG4gICAgfVxuXG4gICAgLy8gSWYgdGhlcmUncyBhIHN1ZmZpeCwgYWRkIGl0IHRvIHRoZSBzZWdtZW50cyBpZiBpdCdzIGVuYWJsZWQuXG4gICAgaWYgKGluY2x1ZGVTdWZmaXggJiYgcGFyYW1NYXRjaGVzICYmIHBhcmFtTWF0Y2hlc1szXSkge1xuICAgICAgc2VnbWVudHMucHVzaChlc2NhcGVTdHJpbmdSZWdleHAocGFyYW1NYXRjaGVzWzNdKSlcbiAgICB9XG4gIH1cblxuICByZXR1cm4ge1xuICAgIHBhcmFtZXRlcml6ZWRSb3V0ZTogc2VnbWVudHMuam9pbignJyksXG4gICAgZ3JvdXBzLFxuICB9XG59XG5cbi8qKlxuICogRnJvbSBhIG5vcm1hbGl6ZWQgcm91dGUgdGhpcyBmdW5jdGlvbiBnZW5lcmF0ZXMgYSByZWd1bGFyIGV4cHJlc3Npb24gYW5kXG4gKiBhIGNvcnJlc3BvbmRpbmcgZ3JvdXBzIG9iamVjdCBpbnRlbmRlZCB0byBiZSB1c2VkIHRvIHN0b3JlIG1hdGNoaW5nIGdyb3Vwc1xuICogZnJvbSB0aGUgcmVndWxhciBleHByZXNzaW9uLlxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0Um91dGVSZWdleChcbiAgbm9ybWFsaXplZFJvdXRlOiBzdHJpbmcsXG4gIHtcbiAgICBpbmNsdWRlU3VmZml4ID0gZmFsc2UsXG4gICAgaW5jbHVkZVByZWZpeCA9IGZhbHNlLFxuICAgIGV4Y2x1ZGVPcHRpb25hbFRyYWlsaW5nU2xhc2ggPSBmYWxzZSxcbiAgfTogR2V0Um91dGVSZWdleE9wdGlvbnMgPSB7fVxuKTogUm91dGVSZWdleCB7XG4gIGNvbnN0IHsgcGFyYW1ldGVyaXplZFJvdXRlLCBncm91cHMgfSA9IGdldFBhcmFtZXRyaXplZFJvdXRlKFxuICAgIG5vcm1hbGl6ZWRSb3V0ZSxcbiAgICBpbmNsdWRlU3VmZml4LFxuICAgIGluY2x1ZGVQcmVmaXhcbiAgKVxuXG4gIGxldCByZSA9IHBhcmFtZXRlcml6ZWRSb3V0ZVxuICBpZiAoIWV4Y2x1ZGVPcHRpb25hbFRyYWlsaW5nU2xhc2gpIHtcbiAgICByZSArPSAnKD86Lyk/J1xuICB9XG5cbiAgcmV0dXJuIHtcbiAgICByZTogbmV3IFJlZ0V4cChgXiR7cmV9JGApLFxuICAgIGdyb3VwczogZ3JvdXBzLFxuICB9XG59XG5cbi8qKlxuICogQnVpbGRzIGEgZnVuY3Rpb24gdG8gZ2VuZXJhdGUgYSBtaW5pbWFsIHJvdXRlS2V5IHVzaW5nIG9ubHkgYS16IGFuZCBtaW5pbWFsXG4gKiBudW1iZXIgb2YgY2hhcmFjdGVycy5cbiAqL1xuZnVuY3Rpb24gYnVpbGRHZXRTYWZlUm91dGVLZXkoKSB7XG4gIGxldCBpID0gMFxuXG4gIHJldHVybiAoKSA9PiB7XG4gICAgbGV0IHJvdXRlS2V5ID0gJydcbiAgICBsZXQgaiA9ICsraVxuICAgIHdoaWxlIChqID4gMCkge1xuICAgICAgcm91dGVLZXkgKz0gU3RyaW5nLmZyb21DaGFyQ29kZSg5NyArICgoaiAtIDEpICUgMjYpKVxuICAgICAgaiA9IE1hdGguZmxvb3IoKGogLSAxKSAvIDI2KVxuICAgIH1cbiAgICByZXR1cm4gcm91dGVLZXlcbiAgfVxufVxuXG5mdW5jdGlvbiBnZXRTYWZlS2V5RnJvbVNlZ21lbnQoe1xuICBpbnRlcmNlcHRpb25NYXJrZXIsXG4gIGdldFNhZmVSb3V0ZUtleSxcbiAgc2VnbWVudCxcbiAgcm91dGVLZXlzLFxuICBrZXlQcmVmaXgsXG4gIGJhY2tyZWZlcmVuY2VEdXBsaWNhdGVLZXlzLFxufToge1xuICBpbnRlcmNlcHRpb25NYXJrZXI/OiBzdHJpbmdcbiAgZ2V0U2FmZVJvdXRlS2V5OiAoKSA9PiBzdHJpbmdcbiAgc2VnbWVudDogc3RyaW5nXG4gIHJvdXRlS2V5czogUmVjb3JkPHN0cmluZywgc3RyaW5nPlxuICBrZXlQcmVmaXg/OiBzdHJpbmdcbiAgYmFja3JlZmVyZW5jZUR1cGxpY2F0ZUtleXM6IGJvb2xlYW5cbn0pIHtcbiAgY29uc3QgeyBrZXksIG9wdGlvbmFsLCByZXBlYXQgfSA9IHBhcnNlTWF0Y2hlZFBhcmFtZXRlcihzZWdtZW50KVxuXG4gIC8vIHJlcGxhY2UgYW55IG5vbi13b3JkIGNoYXJhY3RlcnMgc2luY2UgdGhleSBjYW4gYnJlYWtcbiAgLy8gdGhlIG5hbWVkIHJlZ2V4XG4gIGxldCBjbGVhbmVkS2V5ID0ga2V5LnJlcGxhY2UoL1xcVy9nLCAnJylcblxuICBpZiAoa2V5UHJlZml4KSB7XG4gICAgY2xlYW5lZEtleSA9IGAke2tleVByZWZpeH0ke2NsZWFuZWRLZXl9YFxuICB9XG4gIGxldCBpbnZhbGlkS2V5ID0gZmFsc2VcblxuICAvLyBjaGVjayBpZiB0aGUga2V5IGlzIHN0aWxsIGludmFsaWQgYW5kIGZhbGxiYWNrIHRvIHVzaW5nIGEga25vd25cbiAgLy8gc2FmZSBrZXlcbiAgaWYgKGNsZWFuZWRLZXkubGVuZ3RoID09PSAwIHx8IGNsZWFuZWRLZXkubGVuZ3RoID4gMzApIHtcbiAgICBpbnZhbGlkS2V5ID0gdHJ1ZVxuICB9XG4gIGlmICghaXNOYU4ocGFyc2VJbnQoY2xlYW5lZEtleS5zbGljZSgwLCAxKSkpKSB7XG4gICAgaW52YWxpZEtleSA9IHRydWVcbiAgfVxuXG4gIGlmIChpbnZhbGlkS2V5KSB7XG4gICAgY2xlYW5lZEtleSA9IGdldFNhZmVSb3V0ZUtleSgpXG4gIH1cblxuICBjb25zdCBkdXBsaWNhdGVLZXkgPSBjbGVhbmVkS2V5IGluIHJvdXRlS2V5c1xuXG4gIGlmIChrZXlQcmVmaXgpIHtcbiAgICByb3V0ZUtleXNbY2xlYW5lZEtleV0gPSBgJHtrZXlQcmVmaXh9JHtrZXl9YFxuICB9IGVsc2Uge1xuICAgIHJvdXRlS2V5c1tjbGVhbmVkS2V5XSA9IGtleVxuICB9XG5cbiAgLy8gaWYgdGhlIHNlZ21lbnQgaGFzIGFuIGludGVyY2VwdGlvbiBtYXJrZXIsIG1ha2Ugc3VyZSB0aGF0J3MgcGFydCBvZiB0aGUgcmVnZXggcGF0dGVyblxuICAvLyB0aGlzIGlzIHRvIGVuc3VyZSB0aGF0IHRoZSByb3V0ZSB3aXRoIHRoZSBpbnRlcmNlcHRpb24gbWFya2VyIGRvZXNuJ3QgaW5jb3JyZWN0bHkgbWF0Y2hcbiAgLy8gdGhlIG5vbi1pbnRlcmNlcHRlZCByb3V0ZSAoaWUgL2FwcC8oLilbdXNlcm5hbWVdIHNob3VsZCBub3QgbWF0Y2ggL2FwcC9bdXNlcm5hbWVdKVxuICBjb25zdCBpbnRlcmNlcHRpb25QcmVmaXggPSBpbnRlcmNlcHRpb25NYXJrZXJcbiAgICA/IGVzY2FwZVN0cmluZ1JlZ2V4cChpbnRlcmNlcHRpb25NYXJrZXIpXG4gICAgOiAnJ1xuXG4gIGxldCBwYXR0ZXJuOiBzdHJpbmdcbiAgaWYgKGR1cGxpY2F0ZUtleSAmJiBiYWNrcmVmZXJlbmNlRHVwbGljYXRlS2V5cykge1xuICAgIC8vIFVzZSBhIGJhY2tyZWZlcmVuY2UgdG8gdGhlIGtleSB0byBlbnN1cmUgdGhhdCB0aGUga2V5IGlzIHRoZSBzYW1lIHZhbHVlXG4gICAgLy8gaW4gZWFjaCBvZiB0aGUgcGxhY2Vob2xkZXJzLlxuICAgIHBhdHRlcm4gPSBgXFxcXGs8JHtjbGVhbmVkS2V5fT5gXG4gIH0gZWxzZSBpZiAocmVwZWF0KSB7XG4gICAgcGF0dGVybiA9IGAoPzwke2NsZWFuZWRLZXl9Pi4rPylgXG4gIH0gZWxzZSB7XG4gICAgcGF0dGVybiA9IGAoPzwke2NsZWFuZWRLZXl9PlteL10rPylgXG4gIH1cblxuICByZXR1cm4gb3B0aW9uYWxcbiAgICA/IGAoPzovJHtpbnRlcmNlcHRpb25QcmVmaXh9JHtwYXR0ZXJufSk/YFxuICAgIDogYC8ke2ludGVyY2VwdGlvblByZWZpeH0ke3BhdHRlcm59YFxufVxuXG5mdW5jdGlvbiBnZXROYW1lZFBhcmFtZXRyaXplZFJvdXRlKFxuICByb3V0ZTogc3RyaW5nLFxuICBwcmVmaXhSb3V0ZUtleXM6IGJvb2xlYW4sXG4gIGluY2x1ZGVTdWZmaXg6IGJvb2xlYW4sXG4gIGluY2x1ZGVQcmVmaXg6IGJvb2xlYW4sXG4gIGJhY2tyZWZlcmVuY2VEdXBsaWNhdGVLZXlzOiBib29sZWFuXG4pIHtcbiAgY29uc3QgZ2V0U2FmZVJvdXRlS2V5ID0gYnVpbGRHZXRTYWZlUm91dGVLZXkoKVxuICBjb25zdCByb3V0ZUtleXM6IHsgW25hbWVkOiBzdHJpbmddOiBzdHJpbmcgfSA9IHt9XG5cbiAgY29uc3Qgc2VnbWVudHM6IHN0cmluZ1tdID0gW11cbiAgZm9yIChjb25zdCBzZWdtZW50IG9mIHJlbW92ZVRyYWlsaW5nU2xhc2gocm91dGUpLnNsaWNlKDEpLnNwbGl0KCcvJykpIHtcbiAgICBjb25zdCBoYXNJbnRlcmNlcHRpb25NYXJrZXIgPSBJTlRFUkNFUFRJT05fUk9VVEVfTUFSS0VSUy5zb21lKChtKSA9PlxuICAgICAgc2VnbWVudC5zdGFydHNXaXRoKG0pXG4gICAgKVxuXG4gICAgY29uc3QgcGFyYW1NYXRjaGVzID0gc2VnbWVudC5tYXRjaChQQVJBTUVURVJfUEFUVEVSTikgLy8gQ2hlY2sgZm9yIHBhcmFtZXRlcnNcblxuICAgIGlmIChoYXNJbnRlcmNlcHRpb25NYXJrZXIgJiYgcGFyYW1NYXRjaGVzICYmIHBhcmFtTWF0Y2hlc1syXSkge1xuICAgICAgLy8gSWYgdGhlcmUncyBhbiBpbnRlcmNlcHRpb24gbWFya2VyLCBhZGQgaXQgdG8gdGhlIHNlZ21lbnRzLlxuICAgICAgc2VnbWVudHMucHVzaChcbiAgICAgICAgZ2V0U2FmZUtleUZyb21TZWdtZW50KHtcbiAgICAgICAgICBnZXRTYWZlUm91dGVLZXksXG4gICAgICAgICAgaW50ZXJjZXB0aW9uTWFya2VyOiBwYXJhbU1hdGNoZXNbMV0sXG4gICAgICAgICAgc2VnbWVudDogcGFyYW1NYXRjaGVzWzJdLFxuICAgICAgICAgIHJvdXRlS2V5cyxcbiAgICAgICAgICBrZXlQcmVmaXg6IHByZWZpeFJvdXRlS2V5c1xuICAgICAgICAgICAgPyBORVhUX0lOVEVSQ0VQVElPTl9NQVJLRVJfUFJFRklYXG4gICAgICAgICAgICA6IHVuZGVmaW5lZCxcbiAgICAgICAgICBiYWNrcmVmZXJlbmNlRHVwbGljYXRlS2V5cyxcbiAgICAgICAgfSlcbiAgICAgIClcbiAgICB9IGVsc2UgaWYgKHBhcmFtTWF0Y2hlcyAmJiBwYXJhbU1hdGNoZXNbMl0pIHtcbiAgICAgIC8vIElmIHRoZXJlJ3MgYSBwcmVmaXgsIGFkZCBpdCB0byB0aGUgc2VnbWVudHMgaWYgaXQncyBlbmFibGVkLlxuICAgICAgaWYgKGluY2x1ZGVQcmVmaXggJiYgcGFyYW1NYXRjaGVzWzFdKSB7XG4gICAgICAgIHNlZ21lbnRzLnB1c2goYC8ke2VzY2FwZVN0cmluZ1JlZ2V4cChwYXJhbU1hdGNoZXNbMV0pfWApXG4gICAgICB9XG5cbiAgICAgIGxldCBzID0gZ2V0U2FmZUtleUZyb21TZWdtZW50KHtcbiAgICAgICAgZ2V0U2FmZVJvdXRlS2V5LFxuICAgICAgICBzZWdtZW50OiBwYXJhbU1hdGNoZXNbMl0sXG4gICAgICAgIHJvdXRlS2V5cyxcbiAgICAgICAga2V5UHJlZml4OiBwcmVmaXhSb3V0ZUtleXMgPyBORVhUX1FVRVJZX1BBUkFNX1BSRUZJWCA6IHVuZGVmaW5lZCxcbiAgICAgICAgYmFja3JlZmVyZW5jZUR1cGxpY2F0ZUtleXMsXG4gICAgICB9KVxuXG4gICAgICAvLyBSZW1vdmUgdGhlIGxlYWRpbmcgc2xhc2ggaWYgaW5jbHVkZVByZWZpeCBhbHJlYWR5IGFkZGVkIGl0LlxuICAgICAgaWYgKGluY2x1ZGVQcmVmaXggJiYgcGFyYW1NYXRjaGVzWzFdKSB7XG4gICAgICAgIHMgPSBzLnN1YnN0cmluZygxKVxuICAgICAgfVxuXG4gICAgICBzZWdtZW50cy5wdXNoKHMpXG4gICAgfSBlbHNlIHtcbiAgICAgIHNlZ21lbnRzLnB1c2goYC8ke2VzY2FwZVN0cmluZ1JlZ2V4cChzZWdtZW50KX1gKVxuICAgIH1cblxuICAgIC8vIElmIHRoZXJlJ3MgYSBzdWZmaXgsIGFkZCBpdCB0byB0aGUgc2VnbWVudHMgaWYgaXQncyBlbmFibGVkLlxuICAgIGlmIChpbmNsdWRlU3VmZml4ICYmIHBhcmFtTWF0Y2hlcyAmJiBwYXJhbU1hdGNoZXNbM10pIHtcbiAgICAgIHNlZ21lbnRzLnB1c2goZXNjYXBlU3RyaW5nUmVnZXhwKHBhcmFtTWF0Y2hlc1szXSkpXG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHtcbiAgICBuYW1lZFBhcmFtZXRlcml6ZWRSb3V0ZTogc2VnbWVudHMuam9pbignJyksXG4gICAgcm91dGVLZXlzLFxuICB9XG59XG5cbi8qKlxuICogVGhpcyBmdW5jdGlvbiBleHRlbmRzIGBnZXRSb3V0ZVJlZ2V4YCBnZW5lcmF0aW5nIGFsc28gYSBuYW1lZCByZWdleHAgd2hlcmVcbiAqIGVhY2ggZ3JvdXAgaXMgbmFtZWQgYWxvbmcgd2l0aCBhIHJvdXRlS2V5cyBvYmplY3QgdGhhdCBpbmRleGVzIHRoZSBhc3NpZ25lZFxuICogbmFtZWQgZ3JvdXAgd2l0aCBpdHMgY29ycmVzcG9uZGluZyBrZXkuIFdoZW4gdGhlIHJvdXRlS2V5cyBuZWVkIHRvIGJlXG4gKiBwcmVmaXhlZCB0byB1bmlxdWVseSBpZGVudGlmeSBpbnRlcm5hbGx5IHRoZSBcInByZWZpeFJvdXRlS2V5XCIgYXJnIHNob3VsZFxuICogYmUgXCJ0cnVlXCIgY3VycmVudGx5IHRoaXMgaXMgb25seSB0aGUgY2FzZSB3aGVuIGNyZWF0aW5nIHRoZSByb3V0ZXMtbWFuaWZlc3RcbiAqIGR1cmluZyB0aGUgYnVpbGRcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldE5hbWVkUm91dGVSZWdleChcbiAgbm9ybWFsaXplZFJvdXRlOiBzdHJpbmcsXG4gIG9wdGlvbnM6IEdldE5hbWVkUm91dGVSZWdleE9wdGlvbnNcbikge1xuICBjb25zdCByZXN1bHQgPSBnZXROYW1lZFBhcmFtZXRyaXplZFJvdXRlKFxuICAgIG5vcm1hbGl6ZWRSb3V0ZSxcbiAgICBvcHRpb25zLnByZWZpeFJvdXRlS2V5cyxcbiAgICBvcHRpb25zLmluY2x1ZGVTdWZmaXggPz8gZmFsc2UsXG4gICAgb3B0aW9ucy5pbmNsdWRlUHJlZml4ID8/IGZhbHNlLFxuICAgIG9wdGlvbnMuYmFja3JlZmVyZW5jZUR1cGxpY2F0ZUtleXMgPz8gZmFsc2VcbiAgKVxuXG4gIGxldCBuYW1lZFJlZ2V4ID0gcmVzdWx0Lm5hbWVkUGFyYW1ldGVyaXplZFJvdXRlXG4gIGlmICghb3B0aW9ucy5leGNsdWRlT3B0aW9uYWxUcmFpbGluZ1NsYXNoKSB7XG4gICAgbmFtZWRSZWdleCArPSAnKD86Lyk/J1xuICB9XG5cbiAgcmV0dXJuIHtcbiAgICAuLi5nZXRSb3V0ZVJlZ2V4KG5vcm1hbGl6ZWRSb3V0ZSwgb3B0aW9ucyksXG4gICAgbmFtZWRSZWdleDogYF4ke25hbWVkUmVnZXh9JGAsXG4gICAgcm91dGVLZXlzOiByZXN1bHQucm91dGVLZXlzLFxuICB9XG59XG5cbi8qKlxuICogR2VuZXJhdGVzIGEgbmFtZWQgcmVnZXhwLlxuICogVGhpcyBpcyBpbnRlbmRlZCB0byBiZSB1c2luZyBmb3IgYnVpbGQgdGltZSBvbmx5LlxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0TmFtZWRNaWRkbGV3YXJlUmVnZXgoXG4gIG5vcm1hbGl6ZWRSb3V0ZTogc3RyaW5nLFxuICBvcHRpb25zOiB7XG4gICAgY2F0Y2hBbGw/OiBib29sZWFuXG4gIH1cbikge1xuICBjb25zdCB7IHBhcmFtZXRlcml6ZWRSb3V0ZSB9ID0gZ2V0UGFyYW1ldHJpemVkUm91dGUoXG4gICAgbm9ybWFsaXplZFJvdXRlLFxuICAgIGZhbHNlLFxuICAgIGZhbHNlXG4gIClcbiAgY29uc3QgeyBjYXRjaEFsbCA9IHRydWUgfSA9IG9wdGlvbnNcbiAgaWYgKHBhcmFtZXRlcml6ZWRSb3V0ZSA9PT0gJy8nKSB7XG4gICAgbGV0IGNhdGNoQWxsUmVnZXggPSBjYXRjaEFsbCA/ICcuKicgOiAnJ1xuICAgIHJldHVybiB7XG4gICAgICBuYW1lZFJlZ2V4OiBgXi8ke2NhdGNoQWxsUmVnZXh9JGAsXG4gICAgfVxuICB9XG5cbiAgY29uc3QgeyBuYW1lZFBhcmFtZXRlcml6ZWRSb3V0ZSB9ID0gZ2V0TmFtZWRQYXJhbWV0cml6ZWRSb3V0ZShcbiAgICBub3JtYWxpemVkUm91dGUsXG4gICAgZmFsc2UsXG4gICAgZmFsc2UsXG4gICAgZmFsc2UsXG4gICAgZmFsc2VcbiAgKVxuICBsZXQgY2F0Y2hBbGxHcm91cGVkUmVnZXggPSBjYXRjaEFsbCA/ICcoPzooLy4qKT8pJyA6ICcnXG4gIHJldHVybiB7XG4gICAgbmFtZWRSZWdleDogYF4ke25hbWVkUGFyYW1ldGVyaXplZFJvdXRlfSR7Y2F0Y2hBbGxHcm91cGVkUmVnZXh9JGAsXG4gIH1cbn1cbiJdLCJuYW1lcyI6WyJnZXROYW1lZE1pZGRsZXdhcmVSZWdleCIsImdldE5hbWVkUm91dGVSZWdleCIsImdldFJvdXRlUmVnZXgiLCJwYXJzZVBhcmFtZXRlciIsIlBBUkFNRVRFUl9QQVRURVJOIiwicGFyYW0iLCJtYXRjaCIsInBhcnNlTWF0Y2hlZFBhcmFtZXRlciIsIm9wdGlvbmFsIiwic3RhcnRzV2l0aCIsImVuZHNXaXRoIiwic2xpY2UiLCJyZXBlYXQiLCJrZXkiLCJnZXRQYXJhbWV0cml6ZWRSb3V0ZSIsInJvdXRlIiwiaW5jbHVkZVN1ZmZpeCIsImluY2x1ZGVQcmVmaXgiLCJncm91cHMiLCJncm91cEluZGV4Iiwic2VnbWVudHMiLCJzZWdtZW50IiwicmVtb3ZlVHJhaWxpbmdTbGFzaCIsInNwbGl0IiwibWFya2VyTWF0Y2giLCJJTlRFUkNFUFRJT05fUk9VVEVfTUFSS0VSUyIsImZpbmQiLCJtIiwicGFyYW1NYXRjaGVzIiwicG9zIiwicHVzaCIsImVzY2FwZVN0cmluZ1JlZ2V4cCIsInMiLCJzdWJzdHJpbmciLCJwYXJhbWV0ZXJpemVkUm91dGUiLCJqb2luIiwibm9ybWFsaXplZFJvdXRlIiwiZXhjbHVkZU9wdGlvbmFsVHJhaWxpbmdTbGFzaCIsInJlIiwiUmVnRXhwIiwiYnVpbGRHZXRTYWZlUm91dGVLZXkiLCJpIiwicm91dGVLZXkiLCJqIiwiU3RyaW5nIiwiZnJvbUNoYXJDb2RlIiwiTWF0aCIsImZsb29yIiwiZ2V0U2FmZUtleUZyb21TZWdtZW50IiwiaW50ZXJjZXB0aW9uTWFya2VyIiwiZ2V0U2FmZVJvdXRlS2V5Iiwicm91dGVLZXlzIiwia2V5UHJlZml4IiwiYmFja3JlZmVyZW5jZUR1cGxpY2F0ZUtleXMiLCJjbGVhbmVkS2V5IiwicmVwbGFjZSIsImludmFsaWRLZXkiLCJsZW5ndGgiLCJpc05hTiIsInBhcnNlSW50IiwiZHVwbGljYXRlS2V5IiwiaW50ZXJjZXB0aW9uUHJlZml4IiwicGF0dGVybiIsImdldE5hbWVkUGFyYW1ldHJpemVkUm91dGUiLCJwcmVmaXhSb3V0ZUtleXMiLCJoYXNJbnRlcmNlcHRpb25NYXJrZXIiLCJzb21lIiwiTkVYVF9JTlRFUkNFUFRJT05fTUFSS0VSX1BSRUZJWCIsInVuZGVmaW5lZCIsIk5FWFRfUVVFUllfUEFSQU1fUFJFRklYIiwibmFtZWRQYXJhbWV0ZXJpemVkUm91dGUiLCJvcHRpb25zIiwicmVzdWx0IiwibmFtZWRSZWdleCIsImNhdGNoQWxsIiwiY2F0Y2hBbGxSZWdleCIsImNhdGNoQWxsR3JvdXBlZFJlZ2V4Il0sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(pages-dir-node)/./node_modules/next/dist/shared/lib/router/utils/route-regex.js\n"); - -/***/ }), - -/***/ "(pages-dir-node)/./node_modules/next/dist/shared/lib/router/utils/sorted-routes.js": -/*!*************************************************************************!*\ - !*** ./node_modules/next/dist/shared/lib/router/utils/sorted-routes.js ***! - \*************************************************************************/ -/***/ ((__unused_webpack_module, exports) => { - -"use strict"; -eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n getSortedRouteObjects: function() {\n return getSortedRouteObjects;\n },\n getSortedRoutes: function() {\n return getSortedRoutes;\n }\n});\nclass UrlNode {\n insert(urlPath) {\n this._insert(urlPath.split('/').filter(Boolean), [], false);\n }\n smoosh() {\n return this._smoosh();\n }\n _smoosh(prefix) {\n if (prefix === void 0) prefix = '/';\n const childrenPaths = [\n ...this.children.keys()\n ].sort();\n if (this.slugName !== null) {\n childrenPaths.splice(childrenPaths.indexOf('[]'), 1);\n }\n if (this.restSlugName !== null) {\n childrenPaths.splice(childrenPaths.indexOf('[...]'), 1);\n }\n if (this.optionalRestSlugName !== null) {\n childrenPaths.splice(childrenPaths.indexOf('[[...]]'), 1);\n }\n const routes = childrenPaths.map((c)=>this.children.get(c)._smoosh(\"\" + prefix + c + \"/\")).reduce((prev, curr)=>[\n ...prev,\n ...curr\n ], []);\n if (this.slugName !== null) {\n routes.push(...this.children.get('[]')._smoosh(prefix + \"[\" + this.slugName + \"]/\"));\n }\n if (!this.placeholder) {\n const r = prefix === '/' ? '/' : prefix.slice(0, -1);\n if (this.optionalRestSlugName != null) {\n throw Object.defineProperty(new Error('You cannot define a route with the same specificity as a optional catch-all route (\"' + r + '\" and \"' + r + \"[[...\" + this.optionalRestSlugName + ']]\").'), \"__NEXT_ERROR_CODE\", {\n value: \"E458\",\n enumerable: false,\n configurable: true\n });\n }\n routes.unshift(r);\n }\n if (this.restSlugName !== null) {\n routes.push(...this.children.get('[...]')._smoosh(prefix + \"[...\" + this.restSlugName + \"]/\"));\n }\n if (this.optionalRestSlugName !== null) {\n routes.push(...this.children.get('[[...]]')._smoosh(prefix + \"[[...\" + this.optionalRestSlugName + \"]]/\"));\n }\n return routes;\n }\n _insert(urlPaths, slugNames, isCatchAll) {\n if (urlPaths.length === 0) {\n this.placeholder = false;\n return;\n }\n if (isCatchAll) {\n throw Object.defineProperty(new Error(\"Catch-all must be the last part of the URL.\"), \"__NEXT_ERROR_CODE\", {\n value: \"E392\",\n enumerable: false,\n configurable: true\n });\n }\n // The next segment in the urlPaths list\n let nextSegment = urlPaths[0];\n // Check if the segment matches `[something]`\n if (nextSegment.startsWith('[') && nextSegment.endsWith(']')) {\n // Strip `[` and `]`, leaving only `something`\n let segmentName = nextSegment.slice(1, -1);\n let isOptional = false;\n if (segmentName.startsWith('[') && segmentName.endsWith(']')) {\n // Strip optional `[` and `]`, leaving only `something`\n segmentName = segmentName.slice(1, -1);\n isOptional = true;\n }\n if (segmentName.startsWith('…')) {\n throw Object.defineProperty(new Error(\"Detected a three-dot character ('…') at ('\" + segmentName + \"'). Did you mean ('...')?\"), \"__NEXT_ERROR_CODE\", {\n value: \"E147\",\n enumerable: false,\n configurable: true\n });\n }\n if (segmentName.startsWith('...')) {\n // Strip `...`, leaving only `something`\n segmentName = segmentName.substring(3);\n isCatchAll = true;\n }\n if (segmentName.startsWith('[') || segmentName.endsWith(']')) {\n throw Object.defineProperty(new Error(\"Segment names may not start or end with extra brackets ('\" + segmentName + \"').\"), \"__NEXT_ERROR_CODE\", {\n value: \"E421\",\n enumerable: false,\n configurable: true\n });\n }\n if (segmentName.startsWith('.')) {\n throw Object.defineProperty(new Error(\"Segment names may not start with erroneous periods ('\" + segmentName + \"').\"), \"__NEXT_ERROR_CODE\", {\n value: \"E288\",\n enumerable: false,\n configurable: true\n });\n }\n function handleSlug(previousSlug, nextSlug) {\n if (previousSlug !== null) {\n // If the specific segment already has a slug but the slug is not `something`\n // This prevents collisions like:\n // pages/[post]/index.js\n // pages/[id]/index.js\n // Because currently multiple dynamic params on the same segment level are not supported\n if (previousSlug !== nextSlug) {\n // TODO: This error seems to be confusing for users, needs an error link, the description can be based on above comment.\n throw Object.defineProperty(new Error(\"You cannot use different slug names for the same dynamic path ('\" + previousSlug + \"' !== '\" + nextSlug + \"').\"), \"__NEXT_ERROR_CODE\", {\n value: \"E337\",\n enumerable: false,\n configurable: true\n });\n }\n }\n slugNames.forEach((slug)=>{\n if (slug === nextSlug) {\n throw Object.defineProperty(new Error('You cannot have the same slug name \"' + nextSlug + '\" repeat within a single dynamic path'), \"__NEXT_ERROR_CODE\", {\n value: \"E247\",\n enumerable: false,\n configurable: true\n });\n }\n if (slug.replace(/\\W/g, '') === nextSegment.replace(/\\W/g, '')) {\n throw Object.defineProperty(new Error('You cannot have the slug names \"' + slug + '\" and \"' + nextSlug + '\" differ only by non-word symbols within a single dynamic path'), \"__NEXT_ERROR_CODE\", {\n value: \"E499\",\n enumerable: false,\n configurable: true\n });\n }\n });\n slugNames.push(nextSlug);\n }\n if (isCatchAll) {\n if (isOptional) {\n if (this.restSlugName != null) {\n throw Object.defineProperty(new Error('You cannot use both an required and optional catch-all route at the same level (\"[...' + this.restSlugName + ']\" and \"' + urlPaths[0] + '\" ).'), \"__NEXT_ERROR_CODE\", {\n value: \"E299\",\n enumerable: false,\n configurable: true\n });\n }\n handleSlug(this.optionalRestSlugName, segmentName);\n // slugName is kept as it can only be one particular slugName\n this.optionalRestSlugName = segmentName;\n // nextSegment is overwritten to [[...]] so that it can later be sorted specifically\n nextSegment = '[[...]]';\n } else {\n if (this.optionalRestSlugName != null) {\n throw Object.defineProperty(new Error('You cannot use both an optional and required catch-all route at the same level (\"[[...' + this.optionalRestSlugName + ']]\" and \"' + urlPaths[0] + '\").'), \"__NEXT_ERROR_CODE\", {\n value: \"E300\",\n enumerable: false,\n configurable: true\n });\n }\n handleSlug(this.restSlugName, segmentName);\n // slugName is kept as it can only be one particular slugName\n this.restSlugName = segmentName;\n // nextSegment is overwritten to [...] so that it can later be sorted specifically\n nextSegment = '[...]';\n }\n } else {\n if (isOptional) {\n throw Object.defineProperty(new Error('Optional route parameters are not yet supported (\"' + urlPaths[0] + '\").'), \"__NEXT_ERROR_CODE\", {\n value: \"E435\",\n enumerable: false,\n configurable: true\n });\n }\n handleSlug(this.slugName, segmentName);\n // slugName is kept as it can only be one particular slugName\n this.slugName = segmentName;\n // nextSegment is overwritten to [] so that it can later be sorted specifically\n nextSegment = '[]';\n }\n }\n // If this UrlNode doesn't have the nextSegment yet we create a new child UrlNode\n if (!this.children.has(nextSegment)) {\n this.children.set(nextSegment, new UrlNode());\n }\n this.children.get(nextSegment)._insert(urlPaths.slice(1), slugNames, isCatchAll);\n }\n constructor(){\n this.placeholder = true;\n this.children = new Map();\n this.slugName = null;\n this.restSlugName = null;\n this.optionalRestSlugName = null;\n }\n}\nfunction getSortedRoutes(normalizedPages) {\n // First the UrlNode is created, and every UrlNode can have only 1 dynamic segment\n // Eg you can't have pages/[post]/abc.js and pages/[hello]/something-else.js\n // Only 1 dynamic segment per nesting level\n // So in the case that is test/integration/dynamic-routing it'll be this:\n // pages/[post]/comments.js\n // pages/blog/[post]/comment/[id].js\n // Both are fine because `pages/[post]` and `pages/blog` are on the same level\n // So in this case `UrlNode` created here has `this.slugName === 'post'`\n // And since your PR passed through `slugName` as an array basically it'd including it in too many possibilities\n // Instead what has to be passed through is the upwards path's dynamic names\n const root = new UrlNode();\n // Here the `root` gets injected multiple paths, and insert will break them up into sublevels\n normalizedPages.forEach((pagePath)=>root.insert(pagePath));\n // Smoosh will then sort those sublevels up to the point where you get the correct route definition priority\n return root.smoosh();\n}\nfunction getSortedRouteObjects(objects, getter) {\n // We're assuming here that all the pathnames are unique, that way we can\n // sort the list and use the index as the key.\n const indexes = {};\n const pathnames = [];\n for(let i = 0; i < objects.length; i++){\n const pathname = getter(objects[i]);\n indexes[pathname] = i;\n pathnames[i] = pathname;\n }\n // Sort the pathnames.\n const sorted = getSortedRoutes(pathnames);\n // Map the sorted pathnames back to the original objects using the new sorted\n // index.\n return sorted.map((pathname)=>objects[indexes[pathname]]);\n} //# sourceMappingURL=sorted-routes.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1ub2RlKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3Qvc2hhcmVkL2xpYi9yb3V0ZXIvdXRpbHMvc29ydGVkLXJvdXRlcy5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7SUFpT2dCQSxxQkFBcUI7ZUFBckJBOztJQXRCQUMsZUFBZTtlQUFmQTs7O0FBM01oQixNQUFNQztJQU9KQyxPQUFPQyxPQUFlLEVBQVE7UUFDNUIsSUFBSSxDQUFDQyxPQUFPLENBQUNELFFBQVFFLEtBQUssQ0FBQyxLQUFLQyxNQUFNLENBQUNDLFVBQVUsRUFBRSxFQUFFO0lBQ3ZEO0lBRUFDLFNBQW1CO1FBQ2pCLE9BQU8sSUFBSSxDQUFDQyxPQUFPO0lBQ3JCO0lBRVFBLFFBQVFDLE1BQW9CLEVBQVk7UUFBaENBLElBQUFBLFdBQUFBLEtBQUFBLEdBQUFBLFNBQWlCO1FBQy9CLE1BQU1DLGdCQUFnQjtlQUFJLElBQUksQ0FBQ0MsUUFBUSxDQUFDQyxJQUFJO1NBQUcsQ0FBQ0MsSUFBSTtRQUNwRCxJQUFJLElBQUksQ0FBQ0MsUUFBUSxLQUFLLE1BQU07WUFDMUJKLGNBQWNLLE1BQU0sQ0FBQ0wsY0FBY00sT0FBTyxDQUFDLE9BQU87UUFDcEQ7UUFDQSxJQUFJLElBQUksQ0FBQ0MsWUFBWSxLQUFLLE1BQU07WUFDOUJQLGNBQWNLLE1BQU0sQ0FBQ0wsY0FBY00sT0FBTyxDQUFDLFVBQVU7UUFDdkQ7UUFDQSxJQUFJLElBQUksQ0FBQ0Usb0JBQW9CLEtBQUssTUFBTTtZQUN0Q1IsY0FBY0ssTUFBTSxDQUFDTCxjQUFjTSxPQUFPLENBQUMsWUFBWTtRQUN6RDtRQUVBLE1BQU1HLFNBQVNULGNBQ1pVLEdBQUcsQ0FBQyxDQUFDQyxJQUFNLElBQUksQ0FBQ1YsUUFBUSxDQUFDVyxHQUFHLENBQUNELEdBQUliLE9BQU8sQ0FBRSxLQUFFQyxTQUFTWSxJQUFFLE1BQ3ZERSxNQUFNLENBQUMsQ0FBQ0MsTUFBTUMsT0FBUzttQkFBSUQ7bUJBQVNDO2FBQUssRUFBRSxFQUFFO1FB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Q0FBb0M7SUFDcEMsOEVBQThFO0lBQzlFLHdFQUF3RTtJQUN4RSxnSEFBZ0g7SUFDaEgsNEVBQTRFO0lBQzVFLE1BQU1DLE9BQU8sSUFBSXBEO0lBRWpCLDZGQUE2RjtJQUM3Rm1ELGdCQUFnQk4sT0FBTyxDQUFDLENBQUNRLFdBQWFELEtBQUtuRCxNQUFNLENBQUNvRDtJQUNsRCw0R0FBNEc7SUFDNUcsT0FBT0QsS0FBSzdDLE1BQU07QUFDcEI7QUFFTyxTQUFTVCxzQkFDZHdELE9BQVksRUFDWkMsTUFBMEI7SUFFMUIseUVBQXlFO0lBQ3pFLDhDQUE4QztJQUM5QyxNQUFNQyxVQUFrQyxDQUFDO0lBQ3pDLE1BQU1DLFlBQXNCLEVBQUU7SUFDOUIsSUFBSyxJQUFJQyxJQUFJLEdBQUdBLElBQUlKLFFBQVFuQixNQUFNLEVBQUV1QixJQUFLO1FBQ3ZDLE1BQU1DLFdBQVdKLE9BQU9ELE9BQU8sQ0FBQ0ksRUFBRTtRQUNsQ0YsT0FBTyxDQUFDRyxTQUFTLEdBQUdEO1FBQ3BCRCxTQUFTLENBQUNDLEVBQUUsR0FBR0M7SUFDakI7SUFFQSxzQkFBc0I7SUFDdEIsTUFBTUMsU0FBUzdELGdCQUFnQjBEO0lBRS9CLDZFQUE2RTtJQUM3RSxTQUFTO0lBQ1QsT0FBT0csT0FBT3hDLEdBQUcsQ0FBQyxDQUFDdUMsV0FBYUwsT0FBTyxDQUFDRSxPQUFPLENBQUNHLFNBQVMsQ0FBQztBQUM1RCIsInNvdXJjZXMiOlsiRDpcXHNyY1xcc2hhcmVkXFxsaWJcXHJvdXRlclxcdXRpbHNcXHNvcnRlZC1yb3V0ZXMudHMiXSwic291cmNlc0NvbnRlbnQiOlsiY2xhc3MgVXJsTm9kZSB7XG4gIHBsYWNlaG9sZGVyOiBib29sZWFuID0gdHJ1ZVxuICBjaGlsZHJlbjogTWFwPHN0cmluZywgVXJsTm9kZT4gPSBuZXcgTWFwKClcbiAgc2x1Z05hbWU6IHN0cmluZyB8IG51bGwgPSBudWxsXG4gIHJlc3RTbHVnTmFtZTogc3RyaW5nIHwgbnVsbCA9IG51bGxcbiAgb3B0aW9uYWxSZXN0U2x1Z05hbWU6IHN0cmluZyB8IG51bGwgPSBudWxsXG5cbiAgaW5zZXJ0KHVybFBhdGg6IHN0cmluZyk6IHZvaWQge1xuICAgIHRoaXMuX2luc2VydCh1cmxQYXRoLnNwbGl0KCcvJykuZmlsdGVyKEJvb2xlYW4pLCBbXSwgZmFsc2UpXG4gIH1cblxuICBzbW9vc2goKTogc3RyaW5nW10ge1xuICAgIHJldHVybiB0aGlzLl9zbW9vc2goKVxuICB9XG5cbiAgcHJpdmF0ZSBfc21vb3NoKHByZWZpeDogc3RyaW5nID0gJy8nKTogc3RyaW5nW10ge1xuICAgIGNvbnN0IGNoaWxkcmVuUGF0aHMgPSBbLi4udGhpcy5jaGlsZHJlbi5rZXlzKCldLnNvcnQoKVxuICAgIGlmICh0aGlzLnNsdWdOYW1lICE9PSBudWxsKSB7XG4gICAgICBjaGlsZHJlblBhdGhzLnNwbGljZShjaGlsZHJlblBhdGhzLmluZGV4T2YoJ1tdJyksIDEpXG4gICAgfVxuICAgIGlmICh0aGlzLnJlc3RTbHVnTmFtZSAhPT0gbnVsbCkge1xuICAgICAgY2hpbGRyZW5QYXRocy5zcGxpY2UoY2hpbGRyZW5QYXRocy5pbmRleE9mKCdbLi4uXScpLCAxKVxuICAgIH1cbiAgICBpZiAodGhpcy5vcHRpb25hbFJlc3RTbHVnTmFtZSAhPT0gbnVsbCkge1xuICAgICAgY2hpbGRyZW5QYXRocy5zcGxpY2UoY2hpbGRyZW5QYXRocy5pbmRleE9mKCdbWy4uLl1dJyksIDEpXG4gICAgfVxuXG4gICAgY29uc3Qgcm91dGVzID0gY2hpbGRyZW5QYXRoc1xuICAgICAgLm1hcCgoYykgPT4gdGhpcy5jaGlsZHJlbi5nZXQoYykhLl9zbW9vc2goYCR7cHJlZml4fSR7Y30vYCkpXG4gICAgICAucmVkdWNlKChwcmV2LCBjdXJyKSA9PiBbLi4ucHJldiwgLi4uY3Vycl0sIFtdKVxuXG4gICAgaWYgKHRoaXMuc2x1Z05hbWUgIT09IG51bGwpIHtcbiAgICAgIHJvdXRlcy5wdXNoKFxuICAgICAgICAuLi50aGlzLmNoaWxkcmVuLmdldCgnW10nKSEuX3Ntb29zaChgJHtwcmVmaXh9WyR7dGhpcy5zbHVnTmFtZX1dL2ApXG4gICAgICApXG4gICAgfVxuXG4gICAgaWYgKCF0aGlzLnBsYWNlaG9sZGVyKSB7XG4gICAgICBjb25zdCByID0gcHJlZml4ID09PSAnLycgPyAnLycgOiBwcmVmaXguc2xpY2UoMCwgLTEpXG4gICAgICBpZiAodGhpcy5vcHRpb25hbFJlc3RTbHVnTmFtZSAhPSBudWxsKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgICBgWW91IGNhbm5vdCBkZWZpbmUgYSByb3V0ZSB3aXRoIHRoZSBzYW1lIHNwZWNpZmljaXR5IGFzIGEgb3B0aW9uYWwgY2F0Y2gtYWxsIHJvdXRlIChcIiR7cn1cIiBhbmQgXCIke3J9W1suLi4ke3RoaXMub3B0aW9uYWxSZXN0U2x1Z05hbWV9XV1cIikuYFxuICAgICAgICApXG4gICAgICB9XG5cbiAgICAgIHJvdXRlcy51bnNoaWZ0KHIpXG4gICAgfVxuXG4gICAgaWYgKHRoaXMucmVzdFNsdWdOYW1lICE9PSBudWxsKSB7XG4gICAgICByb3V0ZXMucHVzaChcbiAgICAgICAgLi4udGhpcy5jaGlsZHJlblxuICAgICAgICAgIC5nZXQoJ1suLi5dJykhXG4gICAgICAgICAgLl9zbW9vc2goYCR7cHJlZml4fVsuLi4ke3RoaXMucmVzdFNsdWdOYW1lfV0vYClcbiAgICAgIClcbiAgICB9XG5cbiAgICBpZiAodGhpcy5vcHRpb25hbFJlc3RTbHVnTmFtZSAhPT0gbnVsbCkge1xuICAgICAgcm91dGVzLnB1c2goXG4gICAgICAgIC4uLnRoaXMuY2hpbGRyZW5cbiAgICAgICAgICAuZ2V0KCdbWy4uLl1dJykhXG4gICAgICAgICAgLl9zbW9vc2goYCR7cHJlZml4fVtbLi4uJHt0aGlzLm9wdGlvbmFsUmVzdFNsdWdOYW1lfV1dL2ApXG4gICAgICApXG4gICAgfVxuXG4gICAgcmV0dXJuIHJvdXRlc1xuICB9XG5cbiAgcHJpdmF0ZSBfaW5zZXJ0KFxuICAgIHVybFBhdGhzOiBzdHJpbmdbXSxcbiAgICBzbHVnTmFtZXM6IHN0cmluZ1tdLFxuICAgIGlzQ2F0Y2hBbGw6IGJvb2xlYW5cbiAgKTogdm9pZCB7XG4gICAgaWYgKHVybFBhdGhzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgdGhpcy5wbGFjZWhvbGRlciA9IGZhbHNlXG4gICAgICByZXR1cm5cbiAgICB9XG5cbiAgICBpZiAoaXNDYXRjaEFsbCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBDYXRjaC1hbGwgbXVzdCBiZSB0aGUgbGFzdCBwYXJ0IG9mIHRoZSBVUkwuYClcbiAgICB9XG5cbiAgICAvLyBUaGUgbmV4dCBzZWdtZW50IGluIHRoZSB1cmxQYXRocyBsaXN0XG4gICAgbGV0IG5leHRTZWdtZW50ID0gdXJsUGF0aHNbMF1cblxuICAgIC8vIENoZWNrIGlmIHRoZSBzZWdtZW50IG1hdGNoZXMgYFtzb21ldGhpbmddYFxuICAgIGlmIChuZXh0U2VnbWVudC5zdGFydHNXaXRoKCdbJykgJiYgbmV4dFNlZ21lbnQuZW5kc1dpdGgoJ10nKSkge1xuICAgICAgLy8gU3RyaXAgYFtgIGFuZCBgXWAsIGxlYXZpbmcgb25seSBgc29tZXRoaW5nYFxuICAgICAgbGV0IHNlZ21lbnROYW1lID0gbmV4dFNlZ21lbnQuc2xpY2UoMSwgLTEpXG5cbiAgICAgIGxldCBpc09wdGlvbmFsID0gZmFsc2VcbiAgICAgIGlmIChzZWdtZW50TmFtZS5zdGFydHNXaXRoKCdbJykgJiYgc2VnbWVudE5hbWUuZW5kc1dpdGgoJ10nKSkge1xuICAgICAgICAvLyBTdHJpcCBvcHRpb25hbCBgW2AgYW5kIGBdYCwgbGVhdmluZyBvbmx5IGBzb21ldGhpbmdgXG4gICAgICAgIHNlZ21lbnROYW1lID0gc2VnbWVudE5hbWUuc2xpY2UoMSwgLTEpXG4gICAgICAgIGlzT3B0aW9uYWwgPSB0cnVlXG4gICAgICB9XG5cbiAgICAgIGlmIChzZWdtZW50TmFtZS5zdGFydHNXaXRoKCfigKYnKSkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgICAgYERldGVjdGVkIGEgdGhyZWUtZG90IGNoYXJhY3RlciAoJ+KApicpIGF0ICgnJHtzZWdtZW50TmFtZX0nKS4gRGlkIHlvdSBtZWFuICgnLi4uJyk/YFxuICAgICAgICApXG4gICAgICB9XG5cbiAgICAgIGlmIChzZWdtZW50TmFtZS5zdGFydHNXaXRoKCcuLi4nKSkge1xuICAgICAgICAvLyBTdHJpcCBgLi4uYCwgbGVhdmluZyBvbmx5IGBzb21ldGhpbmdgXG4gICAgICAgIHNlZ21lbnROYW1lID0gc2VnbWVudE5hbWUuc3Vic3RyaW5nKDMpXG4gICAgICAgIGlzQ2F0Y2hBbGwgPSB0cnVlXG4gICAgICB9XG5cbiAgICAgIGlmIChzZWdtZW50TmFtZS5zdGFydHNXaXRoKCdbJykgfHwgc2VnbWVudE5hbWUuZW5kc1dpdGgoJ10nKSkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgICAgYFNlZ21lbnQgbmFtZXMgbWF5IG5vdCBzdGFydCBvciBlbmQgd2l0aCBleHRyYSBicmFja2V0cyAoJyR7c2VnbWVudE5hbWV9JykuYFxuICAgICAgICApXG4gICAgICB9XG5cbiAgICAgIGlmIChzZWdtZW50TmFtZS5zdGFydHNXaXRoKCcuJykpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICAgIGBTZWdtZW50IG5hbWVzIG1heSBub3Qgc3RhcnQgd2l0aCBlcnJvbmVvdXMgcGVyaW9kcyAoJyR7c2VnbWVudE5hbWV9JykuYFxuICAgICAgICApXG4gICAgICB9XG5cbiAgICAgIGZ1bmN0aW9uIGhhbmRsZVNsdWcocHJldmlvdXNTbHVnOiBzdHJpbmcgfCBudWxsLCBuZXh0U2x1Zzogc3RyaW5nKSB7XG4gICAgICAgIGlmIChwcmV2aW91c1NsdWcgIT09IG51bGwpIHtcbiAgICAgICAgICAvLyBJZiB0aGUgc3BlY2lmaWMgc2VnbWVudCBhbHJlYWR5IGhhcyBhIHNsdWcgYnV0IHRoZSBzbHVnIGlzIG5vdCBgc29tZXRoaW5nYFxuICAgICAgICAgIC8vIFRoaXMgcHJldmVudHMgY29sbGlzaW9ucyBsaWtlOlxuICAgICAgICAgIC8vIHBhZ2VzL1twb3N0XS9pbmRleC5qc1xuICAgICAgICAgIC8vIHBhZ2VzL1tpZF0vaW5kZXguanNcbiAgICAgICAgICAvLyBCZWNhdXNlIGN1cnJlbnRseSBtdWx0aXBsZSBkeW5hbWljIHBhcmFtcyBvbiB0aGUgc2FtZSBzZWdtZW50IGxldmVsIGFyZSBub3Qgc3VwcG9ydGVkXG4gICAgICAgICAgaWYgKHByZXZpb3VzU2x1ZyAhPT0gbmV4dFNsdWcpIHtcbiAgICAgICAgICAgIC8vIFRPRE86IFRoaXMgZXJyb3Igc2VlbXMgdG8gYmUgY29uZnVzaW5nIGZvciB1c2VycywgbmVlZHMgYW4gZXJyb3IgbGluaywgdGhlIGRlc2NyaXB0aW9uIGNhbiBiZSBiYXNlZCBvbiBhYm92ZSBjb21tZW50LlxuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICAgICAgICBgWW91IGNhbm5vdCB1c2UgZGlmZmVyZW50IHNsdWcgbmFtZXMgZm9yIHRoZSBzYW1lIGR5bmFtaWMgcGF0aCAoJyR7cHJldmlvdXNTbHVnfScgIT09ICcke25leHRTbHVnfScpLmBcbiAgICAgICAgICAgIClcbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBzbHVnTmFtZXMuZm9yRWFjaCgoc2x1ZykgPT4ge1xuICAgICAgICAgIGlmIChzbHVnID09PSBuZXh0U2x1Zykge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICAgICAgICBgWW91IGNhbm5vdCBoYXZlIHRoZSBzYW1lIHNsdWcgbmFtZSBcIiR7bmV4dFNsdWd9XCIgcmVwZWF0IHdpdGhpbiBhIHNpbmdsZSBkeW5hbWljIHBhdGhgXG4gICAgICAgICAgICApXG4gICAgICAgICAgfVxuXG4gICAgICAgICAgaWYgKHNsdWcucmVwbGFjZSgvXFxXL2csICcnKSA9PT0gbmV4dFNlZ21lbnQucmVwbGFjZSgvXFxXL2csICcnKSkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICAgICAgICBgWW91IGNhbm5vdCBoYXZlIHRoZSBzbHVnIG5hbWVzIFwiJHtzbHVnfVwiIGFuZCBcIiR7bmV4dFNsdWd9XCIgZGlmZmVyIG9ubHkgYnkgbm9uLXdvcmQgc3ltYm9scyB3aXRoaW4gYSBzaW5nbGUgZHluYW1pYyBwYXRoYFxuICAgICAgICAgICAgKVxuICAgICAgICAgIH1cbiAgICAgICAgfSlcblxuICAgICAgICBzbHVnTmFtZXMucHVzaChuZXh0U2x1ZylcbiAgICAgIH1cblxuICAgICAgaWYgKGlzQ2F0Y2hBbGwpIHtcbiAgICAgICAgaWYgKGlzT3B0aW9uYWwpIHtcbiAgICAgICAgICBpZiAodGhpcy5yZXN0U2x1Z05hbWUgIT0gbnVsbCkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICAgICAgICBgWW91IGNhbm5vdCB1c2UgYm90aCBhbiByZXF1aXJlZCBhbmQgb3B0aW9uYWwgY2F0Y2gtYWxsIHJvdXRlIGF0IHRoZSBzYW1lIGxldmVsIChcIlsuLi4ke3RoaXMucmVzdFNsdWdOYW1lfV1cIiBhbmQgXCIke3VybFBhdGhzWzBdfVwiICkuYFxuICAgICAgICAgICAgKVxuICAgICAgICAgIH1cblxuICAgICAgICAgIGhhbmRsZVNsdWcodGhpcy5vcHRpb25hbFJlc3RTbHVnTmFtZSwgc2VnbWVudE5hbWUpXG4gICAgICAgICAgLy8gc2x1Z05hbWUgaXMga2VwdCBhcyBpdCBjYW4gb25seSBiZSBvbmUgcGFydGljdWxhciBzbHVnTmFtZVxuICAgICAgICAgIHRoaXMub3B0aW9uYWxSZXN0U2x1Z05hbWUgPSBzZWdtZW50TmFtZVxuICAgICAgICAgIC8vIG5leHRTZWdtZW50IGlzIG92ZXJ3cml0dGVuIHRvIFtbLi4uXV0gc28gdGhhdCBpdCBjYW4gbGF0ZXIgYmUgc29ydGVkIHNwZWNpZmljYWxseVxuICAgICAgICAgIG5leHRTZWdtZW50ID0gJ1tbLi4uXV0nXG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgaWYgKHRoaXMub3B0aW9uYWxSZXN0U2x1Z05hbWUgIT0gbnVsbCkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICAgICAgICBgWW91IGNhbm5vdCB1c2UgYm90aCBhbiBvcHRpb25hbCBhbmQgcmVxdWlyZWQgY2F0Y2gtYWxsIHJvdXRlIGF0IHRoZSBzYW1lIGxldmVsIChcIltbLi4uJHt0aGlzLm9wdGlvbmFsUmVzdFNsdWdOYW1lfV1dXCIgYW5kIFwiJHt1cmxQYXRoc1swXX1cIikuYFxuICAgICAgICAgICAgKVxuICAgICAgICAgIH1cblxuICAgICAgICAgIGhhbmRsZVNsdWcodGhpcy5yZXN0U2x1Z05hbWUsIHNlZ21lbnROYW1lKVxuICAgICAgICAgIC8vIHNsdWdOYW1lIGlzIGtlcHQgYXMgaXQgY2FuIG9ubHkgYmUgb25lIHBhcnRpY3VsYXIgc2x1Z05hbWVcbiAgICAgICAgICB0aGlzLnJlc3RTbHVnTmFtZSA9IHNlZ21lbnROYW1lXG4gICAgICAgICAgLy8gbmV4dFNlZ21lbnQgaXMgb3ZlcndyaXR0ZW4gdG8gWy4uLl0gc28gdGhhdCBpdCBjYW4gbGF0ZXIgYmUgc29ydGVkIHNwZWNpZmljYWxseVxuICAgICAgICAgIG5leHRTZWdtZW50ID0gJ1suLi5dJ1xuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBpZiAoaXNPcHRpb25hbCkge1xuICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgICAgIGBPcHRpb25hbCByb3V0ZSBwYXJhbWV0ZXJzIGFyZSBub3QgeWV0IHN1cHBvcnRlZCAoXCIke3VybFBhdGhzWzBdfVwiKS5gXG4gICAgICAgICAgKVxuICAgICAgICB9XG4gICAgICAgIGhhbmRsZVNsdWcodGhpcy5zbHVnTmFtZSwgc2VnbWVudE5hbWUpXG4gICAgICAgIC8vIHNsdWdOYW1lIGlzIGtlcHQgYXMgaXQgY2FuIG9ubHkgYmUgb25lIHBhcnRpY3VsYXIgc2x1Z05hbWVcbiAgICAgICAgdGhpcy5zbHVnTmFtZSA9IHNlZ21lbnROYW1lXG4gICAgICAgIC8vIG5leHRTZWdtZW50IGlzIG92ZXJ3cml0dGVuIHRvIFtdIHNvIHRoYXQgaXQgY2FuIGxhdGVyIGJlIHNvcnRlZCBzcGVjaWZpY2FsbHlcbiAgICAgICAgbmV4dFNlZ21lbnQgPSAnW10nXG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gSWYgdGhpcyBVcmxOb2RlIGRvZXNuJ3QgaGF2ZSB0aGUgbmV4dFNlZ21lbnQgeWV0IHdlIGNyZWF0ZSBhIG5ldyBjaGlsZCBVcmxOb2RlXG4gICAgaWYgKCF0aGlzLmNoaWxkcmVuLmhhcyhuZXh0U2VnbWVudCkpIHtcbiAgICAgIHRoaXMuY2hpbGRyZW4uc2V0KG5leHRTZWdtZW50LCBuZXcgVXJsTm9kZSgpKVxuICAgIH1cblxuICAgIHRoaXMuY2hpbGRyZW5cbiAgICAgIC5nZXQobmV4dFNlZ21lbnQpIVxuICAgICAgLl9pbnNlcnQodXJsUGF0aHMuc2xpY2UoMSksIHNsdWdOYW1lcywgaXNDYXRjaEFsbClcbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0U29ydGVkUm91dGVzKFxuICBub3JtYWxpemVkUGFnZXM6IFJlYWRvbmx5QXJyYXk8c3RyaW5nPlxuKTogc3RyaW5nW10ge1xuICAvLyBGaXJzdCB0aGUgVXJsTm9kZSBpcyBjcmVhdGVkLCBhbmQgZXZlcnkgVXJsTm9kZSBjYW4gaGF2ZSBvbmx5IDEgZHluYW1pYyBzZWdtZW50XG4gIC8vIEVnIHlvdSBjYW4ndCBoYXZlIHBhZ2VzL1twb3N0XS9hYmMuanMgYW5kIHBhZ2VzL1toZWxsb10vc29tZXRoaW5nLWVsc2UuanNcbiAgLy8gT25seSAxIGR5bmFtaWMgc2VnbWVudCBwZXIgbmVzdGluZyBsZXZlbFxuXG4gIC8vIFNvIGluIHRoZSBjYXNlIHRoYXQgaXMgdGVzdC9pbnRlZ3JhdGlvbi9keW5hbWljLXJvdXRpbmcgaXQnbGwgYmUgdGhpczpcbiAgLy8gcGFnZXMvW3Bvc3RdL2NvbW1lbnRzLmpzXG4gIC8vIHBhZ2VzL2Jsb2cvW3Bvc3RdL2NvbW1lbnQvW2lkXS5qc1xuICAvLyBCb3RoIGFyZSBmaW5lIGJlY2F1c2UgYHBhZ2VzL1twb3N0XWAgYW5kIGBwYWdlcy9ibG9nYCBhcmUgb24gdGhlIHNhbWUgbGV2ZWxcbiAgLy8gU28gaW4gdGhpcyBjYXNlIGBVcmxOb2RlYCBjcmVhdGVkIGhlcmUgaGFzIGB0aGlzLnNsdWdOYW1lID09PSAncG9zdCdgXG4gIC8vIEFuZCBzaW5jZSB5b3VyIFBSIHBhc3NlZCB0aHJvdWdoIGBzbHVnTmFtZWAgYXMgYW4gYXJyYXkgYmFzaWNhbGx5IGl0J2QgaW5jbHVkaW5nIGl0IGluIHRvbyBtYW55IHBvc3NpYmlsaXRpZXNcbiAgLy8gSW5zdGVhZCB3aGF0IGhhcyB0byBiZSBwYXNzZWQgdGhyb3VnaCBpcyB0aGUgdXB3YXJkcyBwYXRoJ3MgZHluYW1pYyBuYW1lc1xuICBjb25zdCByb290ID0gbmV3IFVybE5vZGUoKVxuXG4gIC8vIEhlcmUgdGhlIGByb290YCBnZXRzIGluamVjdGVkIG11bHRpcGxlIHBhdGhzLCBhbmQgaW5zZXJ0IHdpbGwgYnJlYWsgdGhlbSB1cCBpbnRvIHN1YmxldmVsc1xuICBub3JtYWxpemVkUGFnZXMuZm9yRWFjaCgocGFnZVBhdGgpID0+IHJvb3QuaW5zZXJ0KHBhZ2VQYXRoKSlcbiAgLy8gU21vb3NoIHdpbGwgdGhlbiBzb3J0IHRob3NlIHN1YmxldmVscyB1cCB0byB0aGUgcG9pbnQgd2hlcmUgeW91IGdldCB0aGUgY29ycmVjdCByb3V0ZSBkZWZpbml0aW9uIHByaW9yaXR5XG4gIHJldHVybiByb290LnNtb29zaCgpXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRTb3J0ZWRSb3V0ZU9iamVjdHM8VD4oXG4gIG9iamVjdHM6IFRbXSxcbiAgZ2V0dGVyOiAob2JqOiBUKSA9PiBzdHJpbmdcbik6IFRbXSB7XG4gIC8vIFdlJ3JlIGFzc3VtaW5nIGhlcmUgdGhhdCBhbGwgdGhlIHBhdGhuYW1lcyBhcmUgdW5pcXVlLCB0aGF0IHdheSB3ZSBjYW5cbiAgLy8gc29ydCB0aGUgbGlzdCBhbmQgdXNlIHRoZSBpbmRleCBhcyB0aGUga2V5LlxuICBjb25zdCBpbmRleGVzOiBSZWNvcmQ8c3RyaW5nLCBudW1iZXI+ID0ge31cbiAgY29uc3QgcGF0aG5hbWVzOiBzdHJpbmdbXSA9IFtdXG4gIGZvciAobGV0IGkgPSAwOyBpIDwgb2JqZWN0cy5sZW5ndGg7IGkrKykge1xuICAgIGNvbnN0IHBhdGhuYW1lID0gZ2V0dGVyKG9iamVjdHNbaV0pXG4gICAgaW5kZXhlc1twYXRobmFtZV0gPSBpXG4gICAgcGF0aG5hbWVzW2ldID0gcGF0aG5hbWVcbiAgfVxuXG4gIC8vIFNvcnQgdGhlIHBhdGhuYW1lcy5cbiAgY29uc3Qgc29ydGVkID0gZ2V0U29ydGVkUm91dGVzKHBhdGhuYW1lcylcblxuICAvLyBNYXAgdGhlIHNvcnRlZCBwYXRobmFtZXMgYmFjayB0byB0aGUgb3JpZ2luYWwgb2JqZWN0cyB1c2luZyB0aGUgbmV3IHNvcnRlZFxuICAvLyBpbmRleC5cbiAgcmV0dXJuIHNvcnRlZC5tYXAoKHBhdGhuYW1lKSA9PiBvYmplY3RzW2luZGV4ZXNbcGF0aG5hbWVdXSlcbn1cbiJdLCJuYW1lcyI6WyJnZXRTb3J0ZWRSb3V0ZU9iamVjdHMiLCJnZXRTb3J0ZWRSb3V0ZXMiLCJVcmxOb2RlIiwiaW5zZXJ0IiwidXJsUGF0aCIsIl9pbnNlcnQiLCJzcGxpdCIsImZpbHRlciIsIkJvb2xlYW4iLCJzbW9vc2giLCJfc21vb3NoIiwicHJlZml4IiwiY2hpbGRyZW5QYXRocyIsImNoaWxkcmVuIiwia2V5cyIsInNvcnQiLCJzbHVnTmFtZSIsInNwbGljZSIsImluZGV4T2YiLCJyZXN0U2x1Z05hbWUiLCJvcHRpb25hbFJlc3RTbHVnTmFtZSIsInJvdXRlcyIsIm1hcCIsImMiLCJnZXQiLCJyZWR1Y2UiLCJwcmV2IiwiY3VyciIsInB1c2giLCJwbGFjZWhvbGRlciIsInIiLCJzbGljZSIsIkVycm9yIiwidW5zaGlmdCIsInVybFBhdGhzIiwic2x1Z05hbWVzIiwiaXNDYXRjaEFsbCIsImxlbmd0aCIsIm5leHRTZWdtZW50Iiwic3RhcnRzV2l0aCIsImVuZHNXaXRoIiwic2VnbWVudE5hbWUiLCJpc09wdGlvbmFsIiwic3Vic3RyaW5nIiwiaGFuZGxlU2x1ZyIsInByZXZpb3VzU2x1ZyIsIm5leHRTbHVnIiwiZm9yRWFjaCIsInNsdWciLCJyZXBsYWNlIiwiaGFzIiwic2V0IiwiTWFwIiwibm9ybWFsaXplZFBhZ2VzIiwicm9vdCIsInBhZ2VQYXRoIiwib2JqZWN0cyIsImdldHRlciIsImluZGV4ZXMiLCJwYXRobmFtZXMiLCJpIiwicGF0aG5hbWUiLCJzb3J0ZWQiXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(pages-dir-node)/./node_modules/next/dist/shared/lib/router/utils/sorted-routes.js\n"); - -/***/ }), - -/***/ "(pages-dir-node)/./node_modules/next/dist/shared/lib/segment-cache/output-export-prefetch-encoding.js": -/*!********************************************************************************************!*\ - !*** ./node_modules/next/dist/shared/lib/segment-cache/output-export-prefetch-encoding.js ***! - \********************************************************************************************/ -/***/ ((__unused_webpack_module, exports) => { - -"use strict"; -eval("// In output: export mode, the build id is added to the start of the HTML\n// document, directly after the doctype declaration. During a prefetch, the\n// client performs a range request to get the build id, so it can check whether\n// the target page belongs to the same build.\n//\n// The first 64 bytes of the document are requested. The exact number isn't\n// too important; it must be larger than the build id + doctype + closing and\n// ending comment markers, but it doesn't need to match the end of the\n// comment exactly.\n//\n// Build ids are 21 bytes long in the default implementation, though this\n// can be overridden in the Next.js config. For the purposes of this check,\n// it's OK to only match the start of the id, so we'll truncate it if exceeds\n// a certain length.\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n DOC_PREFETCH_RANGE_HEADER_VALUE: function() {\n return DOC_PREFETCH_RANGE_HEADER_VALUE;\n },\n doesExportedHtmlMatchBuildId: function() {\n return doesExportedHtmlMatchBuildId;\n },\n insertBuildIdComment: function() {\n return insertBuildIdComment;\n }\n});\nconst DOCTYPE_PREFIX = '<!DOCTYPE html>' // 15 bytes\n;\nconst MAX_BUILD_ID_LENGTH = 24;\nconst DOC_PREFETCH_RANGE_HEADER_VALUE = 'bytes=0-63';\nfunction escapeBuildId(buildId) {\n // If the build id is longer than the given limit, it's OK for our purposes\n // to only match the beginning.\n const truncated = buildId.slice(0, MAX_BUILD_ID_LENGTH);\n // Replace hyphens with underscores so it doesn't break the HTML comment.\n // (Unlikely, but if this did happen it would break the whole document.)\n return truncated.replace(/-/g, '_');\n}\nfunction insertBuildIdComment(originalHtml, buildId) {\n if (buildId.includes('-->') || // React always inserts a doctype at the start of the document. Skip if it\n // isn't present. Shouldn't happen; suggests an issue elsewhere.\n !originalHtml.startsWith(DOCTYPE_PREFIX)) {\n // Return the original HTML unchanged. This means the document will not\n // be prefetched.\n // TODO: The build id comment is currently only used during prefetches, but\n // if we eventually use this mechanism for regular navigations, we may need\n // to error during build if we fail to insert it for some reason.\n return originalHtml;\n }\n // The comment must be inserted after the doctype.\n return originalHtml.replace(DOCTYPE_PREFIX, DOCTYPE_PREFIX + '<!--' + escapeBuildId(buildId) + '-->');\n}\nfunction doesExportedHtmlMatchBuildId(partialHtmlDocument, buildId) {\n // Check whether the document starts with the expected buildId.\n return partialHtmlDocument.startsWith(DOCTYPE_PREFIX + '<!--' + escapeBuildId(buildId) + '-->');\n} //# sourceMappingURL=output-export-prefetch-encoding.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1ub2RlKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3Qvc2hhcmVkL2xpYi9zZWdtZW50LWNhY2hlL291dHB1dC1leHBvcnQtcHJlZmV0Y2gtZW5jb2RpbmcuanMiLCJtYXBwaW5ncyI6IkFBQUEseUVBQXlFO0FBQ3pFLDJFQUEyRTtBQUMzRSwrRUFBK0U7QUFDL0UsNkNBQTZDO0FBQzdDLEVBQUU7QUFDRiwyRUFBMkU7QUFDM0UsNkVBQTZFO0FBQzdFLHNFQUFzRTtBQUN0RSxtQkFBbUI7QUFDbkIsRUFBRTtBQUNGLHlFQUF5RTtBQUN6RSwyRUFBMkU7QUFDM0UsNkVBQTZFO0FBQzdFLG9CQUFvQjs7Ozs7Ozs7Ozs7OztJQU1QQSwrQkFBK0I7ZUFBL0JBOztJQWlDR0MsNEJBQTRCO2VBQTVCQTs7SUF0QkFDLG9CQUFvQjtlQUFwQkE7OztBQWZoQixNQUFNQyxpQkFBaUIsa0JBQWtCLFdBQVc7O0FBQ3BELE1BQU1DLHNCQUFzQjtBQUdyQixNQUFNSixrQ0FBa0M7QUFFL0MsU0FBU0ssY0FBY0MsT0FBZTtJQUNwQywyRUFBMkU7SUFDM0UsK0JBQStCO0lBQy9CLE1BQU1DLFlBQVlELFFBQVFFLEtBQUssQ0FBQyxHQUFHSjtJQUNuQyx5RUFBeUU7SUFDekUsd0VBQXdFO0lBQ3hFLE9BQU9HLFVBQVVFLE9BQU8sQ0FBQyxNQUFNO0FBQ2pDO0FBRU8sU0FBU1AscUJBQXFCUSxZQUFvQixFQUFFSixPQUFlO0lBQ3hFLElBQ0UsUUFDUUssUUFBUSxDQUFDLFVBQ2pCLCtCQUYwRCwyQ0FFZ0I7SUFDMUUsZ0VBQWdFO0lBQ2hFLENBQUNELGFBQWFFLFVBQVUsQ0FBQ1QsaUJBQ3pCO1FBQ0EsdUVBQXVFO1FBQ3ZFLGlCQUFpQjtRQUNqQiwyRUFBMkU7UUFDM0UsMkVBQTJFO1FBQzNFLGlFQUFpRTtRQUNqRSxPQUFPTztJQUNUO0lBQ0Esa0RBQWtEO0lBQ2xELE9BQU9BLGFBQWFELE9BQU8sQ0FDekJOLGdCQUNBQSxpQkFBaUIsU0FBU0UsY0FBY0MsV0FBVztBQUV2RDtBQUVPLFNBQVNMLDZCQUNkWSxtQkFBMkIsRUFDM0JQLE9BQWU7SUFFZiwrREFBK0Q7SUFDL0QsT0FBT08sb0JBQW9CRCxVQUFVLENBQ25DVCxpQkFBaUIsU0FBU0UsY0FBY0MsV0FBVztBQUV2RCIsInNvdXJjZXMiOlsiRDpcXHNyY1xcc2hhcmVkXFxsaWJcXHNlZ21lbnQtY2FjaGVcXG91dHB1dC1leHBvcnQtcHJlZmV0Y2gtZW5jb2RpbmcudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLy8gSW4gb3V0cHV0OiBleHBvcnQgbW9kZSwgdGhlIGJ1aWxkIGlkIGlzIGFkZGVkIHRvIHRoZSBzdGFydCBvZiB0aGUgSFRNTFxuLy8gZG9jdW1lbnQsIGRpcmVjdGx5IGFmdGVyIHRoZSBkb2N0eXBlIGRlY2xhcmF0aW9uLiBEdXJpbmcgYSBwcmVmZXRjaCwgdGhlXG4vLyBjbGllbnQgcGVyZm9ybXMgYSByYW5nZSByZXF1ZXN0IHRvIGdldCB0aGUgYnVpbGQgaWQsIHNvIGl0IGNhbiBjaGVjayB3aGV0aGVyXG4vLyB0aGUgdGFyZ2V0IHBhZ2UgYmVsb25ncyB0byB0aGUgc2FtZSBidWlsZC5cbi8vXG4vLyBUaGUgZmlyc3QgNjQgYnl0ZXMgb2YgdGhlIGRvY3VtZW50IGFyZSByZXF1ZXN0ZWQuIFRoZSBleGFjdCBudW1iZXIgaXNuJ3Rcbi8vIHRvbyBpbXBvcnRhbnQ7IGl0IG11c3QgYmUgbGFyZ2VyIHRoYW4gdGhlIGJ1aWxkIGlkICsgZG9jdHlwZSArIGNsb3NpbmcgYW5kXG4vLyBlbmRpbmcgY29tbWVudCBtYXJrZXJzLCBidXQgaXQgZG9lc24ndCBuZWVkIHRvIG1hdGNoIHRoZSBlbmQgb2YgdGhlXG4vLyBjb21tZW50IGV4YWN0bHkuXG4vL1xuLy8gQnVpbGQgaWRzIGFyZSAyMSBieXRlcyBsb25nIGluIHRoZSBkZWZhdWx0IGltcGxlbWVudGF0aW9uLCB0aG91Z2ggdGhpc1xuLy8gY2FuIGJlIG92ZXJyaWRkZW4gaW4gdGhlIE5leHQuanMgY29uZmlnLiBGb3IgdGhlIHB1cnBvc2VzIG9mIHRoaXMgY2hlY2ssXG4vLyBpdCdzIE9LIHRvIG9ubHkgbWF0Y2ggdGhlIHN0YXJ0IG9mIHRoZSBpZCwgc28gd2UnbGwgdHJ1bmNhdGUgaXQgaWYgZXhjZWVkc1xuLy8gYSBjZXJ0YWluIGxlbmd0aC5cblxuY29uc3QgRE9DVFlQRV9QUkVGSVggPSAnPCFET0NUWVBFIGh0bWw+JyAvLyAxNSBieXRlc1xuY29uc3QgTUFYX0JVSUxEX0lEX0xFTkdUSCA9IDI0XG5cbi8vIFJlcXVlc3QgdGhlIGZpcnN0IDY0IGJ5dGVzLiBUaGUgUmFuZ2UgaGVhZGVyIGlzIGluY2x1c2l2ZSBvZiB0aGUgZW5kIHZhbHVlLlxuZXhwb3J0IGNvbnN0IERPQ19QUkVGRVRDSF9SQU5HRV9IRUFERVJfVkFMVUUgPSAnYnl0ZXM9MC02MydcblxuZnVuY3Rpb24gZXNjYXBlQnVpbGRJZChidWlsZElkOiBzdHJpbmcpIHtcbiAgLy8gSWYgdGhlIGJ1aWxkIGlkIGlzIGxvbmdlciB0aGFuIHRoZSBnaXZlbiBsaW1pdCwgaXQncyBPSyBmb3Igb3VyIHB1cnBvc2VzXG4gIC8vIHRvIG9ubHkgbWF0Y2ggdGhlIGJlZ2lubmluZy5cbiAgY29uc3QgdHJ1bmNhdGVkID0gYnVpbGRJZC5zbGljZSgwLCBNQVhfQlVJTERfSURfTEVOR1RIKVxuICAvLyBSZXBsYWNlIGh5cGhlbnMgd2l0aCB1bmRlcnNjb3JlcyBzbyBpdCBkb2Vzbid0IGJyZWFrIHRoZSBIVE1MIGNvbW1lbnQuXG4gIC8vIChVbmxpa2VseSwgYnV0IGlmIHRoaXMgZGlkIGhhcHBlbiBpdCB3b3VsZCBicmVhayB0aGUgd2hvbGUgZG9jdW1lbnQuKVxuICByZXR1cm4gdHJ1bmNhdGVkLnJlcGxhY2UoLy0vZywgJ18nKVxufVxuXG5leHBvcnQgZnVuY3Rpb24gaW5zZXJ0QnVpbGRJZENvbW1lbnQob3JpZ2luYWxIdG1sOiBzdHJpbmcsIGJ1aWxkSWQ6IHN0cmluZykge1xuICBpZiAoXG4gICAgLy8gU2tpcCBpZiB0aGUgYnVpbGQgaWQgY29udGFpbnMgYSBjbG9zaW5nIGNvbW1lbnQgbWFya2VyLlxuICAgIGJ1aWxkSWQuaW5jbHVkZXMoJy0tPicpIHx8XG4gICAgLy8gUmVhY3QgYWx3YXlzIGluc2VydHMgYSBkb2N0eXBlIGF0IHRoZSBzdGFydCBvZiB0aGUgZG9jdW1lbnQuIFNraXAgaWYgaXRcbiAgICAvLyBpc24ndCBwcmVzZW50LiBTaG91bGRuJ3QgaGFwcGVuOyBzdWdnZXN0cyBhbiBpc3N1ZSBlbHNld2hlcmUuXG4gICAgIW9yaWdpbmFsSHRtbC5zdGFydHNXaXRoKERPQ1RZUEVfUFJFRklYKVxuICApIHtcbiAgICAvLyBSZXR1cm4gdGhlIG9yaWdpbmFsIEhUTUwgdW5jaGFuZ2VkLiBUaGlzIG1lYW5zIHRoZSBkb2N1bWVudCB3aWxsIG5vdFxuICAgIC8vIGJlIHByZWZldGNoZWQuXG4gICAgLy8gVE9ETzogVGhlIGJ1aWxkIGlkIGNvbW1lbnQgaXMgY3VycmVudGx5IG9ubHkgdXNlZCBkdXJpbmcgcHJlZmV0Y2hlcywgYnV0XG4gICAgLy8gaWYgd2UgZXZlbnR1YWxseSB1c2UgdGhpcyBtZWNoYW5pc20gZm9yIHJlZ3VsYXIgbmF2aWdhdGlvbnMsIHdlIG1heSBuZWVkXG4gICAgLy8gdG8gZXJyb3IgZHVyaW5nIGJ1aWxkIGlmIHdlIGZhaWwgdG8gaW5zZXJ0IGl0IGZvciBzb21lIHJlYXNvbi5cbiAgICByZXR1cm4gb3JpZ2luYWxIdG1sXG4gIH1cbiAgLy8gVGhlIGNvbW1lbnQgbXVzdCBiZSBpbnNlcnRlZCBhZnRlciB0aGUgZG9jdHlwZS5cbiAgcmV0dXJuIG9yaWdpbmFsSHRtbC5yZXBsYWNlKFxuICAgIERPQ1RZUEVfUFJFRklYLFxuICAgIERPQ1RZUEVfUFJFRklYICsgJzwhLS0nICsgZXNjYXBlQnVpbGRJZChidWlsZElkKSArICctLT4nXG4gIClcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGRvZXNFeHBvcnRlZEh0bWxNYXRjaEJ1aWxkSWQoXG4gIHBhcnRpYWxIdG1sRG9jdW1lbnQ6IHN0cmluZyxcbiAgYnVpbGRJZDogc3RyaW5nXG4pIHtcbiAgLy8gQ2hlY2sgd2hldGhlciB0aGUgZG9jdW1lbnQgc3RhcnRzIHdpdGggdGhlIGV4cGVjdGVkIGJ1aWxkSWQuXG4gIHJldHVybiBwYXJ0aWFsSHRtbERvY3VtZW50LnN0YXJ0c1dpdGgoXG4gICAgRE9DVFlQRV9QUkVGSVggKyAnPCEtLScgKyBlc2NhcGVCdWlsZElkKGJ1aWxkSWQpICsgJy0tPidcbiAgKVxufVxuIl0sIm5hbWVzIjpbIkRPQ19QUkVGRVRDSF9SQU5HRV9IRUFERVJfVkFMVUUiLCJkb2VzRXhwb3J0ZWRIdG1sTWF0Y2hCdWlsZElkIiwiaW5zZXJ0QnVpbGRJZENvbW1lbnQiLCJET0NUWVBFX1BSRUZJWCIsIk1BWF9CVUlMRF9JRF9MRU5HVEgiLCJlc2NhcGVCdWlsZElkIiwiYnVpbGRJZCIsInRydW5jYXRlZCIsInNsaWNlIiwicmVwbGFjZSIsIm9yaWdpbmFsSHRtbCIsImluY2x1ZGVzIiwic3RhcnRzV2l0aCIsInBhcnRpYWxIdG1sRG9jdW1lbnQiXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(pages-dir-node)/./node_modules/next/dist/shared/lib/segment-cache/output-export-prefetch-encoding.js\n"); - -/***/ }), - -/***/ "(pages-dir-node)/./node_modules/next/dist/shared/lib/segment.js": -/*!******************************************************!*\ - !*** ./node_modules/next/dist/shared/lib/segment.js ***! - \******************************************************/ -/***/ ((__unused_webpack_module, exports) => { - -"use strict"; -eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n DEFAULT_SEGMENT_KEY: function() {\n return DEFAULT_SEGMENT_KEY;\n },\n PAGE_SEGMENT_KEY: function() {\n return PAGE_SEGMENT_KEY;\n },\n addSearchParamsIfPageSegment: function() {\n return addSearchParamsIfPageSegment;\n },\n isGroupSegment: function() {\n return isGroupSegment;\n },\n isParallelRouteSegment: function() {\n return isParallelRouteSegment;\n }\n});\nfunction isGroupSegment(segment) {\n // Use array[0] for performant purpose\n return segment[0] === '(' && segment.endsWith(')');\n}\nfunction isParallelRouteSegment(segment) {\n return segment.startsWith('@') && segment !== '@children';\n}\nfunction addSearchParamsIfPageSegment(segment, searchParams) {\n const isPageSegment = segment.includes(PAGE_SEGMENT_KEY);\n if (isPageSegment) {\n const stringifiedQuery = JSON.stringify(searchParams);\n return stringifiedQuery !== '{}' ? PAGE_SEGMENT_KEY + '?' + stringifiedQuery : PAGE_SEGMENT_KEY;\n }\n return segment;\n}\nconst PAGE_SEGMENT_KEY = '__PAGE__';\nconst DEFAULT_SEGMENT_KEY = '__DEFAULT__'; //# sourceMappingURL=segment.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1ub2RlKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3Qvc2hhcmVkL2xpYi9zZWdtZW50LmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7OztJQTRCYUEsbUJBQW1CO2VBQW5CQTs7SUFEQUMsZ0JBQWdCO2VBQWhCQTs7SUFoQkdDLDRCQUE0QjtlQUE1QkE7O0lBVEFDLGNBQWM7ZUFBZEE7O0lBS0FDLHNCQUFzQjtlQUF0QkE7OztBQUxULFNBQVNELGVBQWVFLE9BQWU7SUFDNUMsc0NBQXNDO0lBQ3RDLE9BQU9BLE9BQU8sQ0FBQyxFQUFFLEtBQUssT0FBT0EsUUFBUUMsUUFBUSxDQUFDO0FBQ2hEO0FBRU8sU0FBU0YsdUJBQXVCQyxPQUFlO0lBQ3BELE9BQU9BLFFBQVFFLFVBQVUsQ0FBQyxRQUFRRixZQUFZO0FBQ2hEO0FBRU8sU0FBU0gsNkJBQ2RHLE9BQWdCLEVBQ2hCRyxZQUEyRDtJQUUzRCxNQUFNQyxnQkFBZ0JKLFFBQVFLLFFBQVEsQ0FBQ1Q7SUFFdkMsSUFBSVEsZUFBZTtRQUNqQixNQUFNRSxtQkFBbUJDLEtBQUtDLFNBQVMsQ0FBQ0w7UUFDeEMsT0FBT0cscUJBQXFCLE9BQ3hCVixtQkFBbUIsTUFBTVUsbUJBQ3pCVjtJQUNOO0lBRUEsT0FBT0k7QUFDVDtBQUVPLE1BQU1KLG1CQUFtQjtBQUN6QixNQUFNRCxzQkFBc0IiLCJzb3VyY2VzIjpbIkQ6XFxzcmNcXHNoYXJlZFxcbGliXFxzZWdtZW50LnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgU2VnbWVudCB9IGZyb20gJy4uLy4uL3NlcnZlci9hcHAtcmVuZGVyL3R5cGVzJ1xuXG5leHBvcnQgZnVuY3Rpb24gaXNHcm91cFNlZ21lbnQoc2VnbWVudDogc3RyaW5nKSB7XG4gIC8vIFVzZSBhcnJheVswXSBmb3IgcGVyZm9ybWFudCBwdXJwb3NlXG4gIHJldHVybiBzZWdtZW50WzBdID09PSAnKCcgJiYgc2VnbWVudC5lbmRzV2l0aCgnKScpXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpc1BhcmFsbGVsUm91dGVTZWdtZW50KHNlZ21lbnQ6IHN0cmluZykge1xuICByZXR1cm4gc2VnbWVudC5zdGFydHNXaXRoKCdAJykgJiYgc2VnbWVudCAhPT0gJ0BjaGlsZHJlbidcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGFkZFNlYXJjaFBhcmFtc0lmUGFnZVNlZ21lbnQoXG4gIHNlZ21lbnQ6IFNlZ21lbnQsXG4gIHNlYXJjaFBhcmFtczogUmVjb3JkPHN0cmluZywgc3RyaW5nIHwgc3RyaW5nW10gfCB1bmRlZmluZWQ+XG4pIHtcbiAgY29uc3QgaXNQYWdlU2VnbWVudCA9IHNlZ21lbnQuaW5jbHVkZXMoUEFHRV9TRUdNRU5UX0tFWSlcblxuICBpZiAoaXNQYWdlU2VnbWVudCkge1xuICAgIGNvbnN0IHN0cmluZ2lmaWVkUXVlcnkgPSBKU09OLnN0cmluZ2lmeShzZWFyY2hQYXJhbXMpXG4gICAgcmV0dXJuIHN0cmluZ2lmaWVkUXVlcnkgIT09ICd7fSdcbiAgICAgID8gUEFHRV9TRUdNRU5UX0tFWSArICc/JyArIHN0cmluZ2lmaWVkUXVlcnlcbiAgICAgIDogUEFHRV9TRUdNRU5UX0tFWVxuICB9XG5cbiAgcmV0dXJuIHNlZ21lbnRcbn1cblxuZXhwb3J0IGNvbnN0IFBBR0VfU0VHTUVOVF9LRVkgPSAnX19QQUdFX18nXG5leHBvcnQgY29uc3QgREVGQVVMVF9TRUdNRU5UX0tFWSA9ICdfX0RFRkFVTFRfXydcbiJdLCJuYW1lcyI6WyJERUZBVUxUX1NFR01FTlRfS0VZIiwiUEFHRV9TRUdNRU5UX0tFWSIsImFkZFNlYXJjaFBhcmFtc0lmUGFnZVNlZ21lbnQiLCJpc0dyb3VwU2VnbWVudCIsImlzUGFyYWxsZWxSb3V0ZVNlZ21lbnQiLCJzZWdtZW50IiwiZW5kc1dpdGgiLCJzdGFydHNXaXRoIiwic2VhcmNoUGFyYW1zIiwiaXNQYWdlU2VnbWVudCIsImluY2x1ZGVzIiwic3RyaW5naWZpZWRRdWVyeSIsIkpTT04iLCJzdHJpbmdpZnkiXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(pages-dir-node)/./node_modules/next/dist/shared/lib/segment.js\n"); - -/***/ }), - -/***/ "(pages-dir-node)/./node_modules/next/dist/shared/lib/side-effect.js": -/*!**********************************************************!*\ - !*** ./node_modules/next/dist/shared/lib/side-effect.js ***! - \**********************************************************/ -/***/ ((__unused_webpack_module, exports, __webpack_require__) => { - -"use strict"; -eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"default\", ({\n enumerable: true,\n get: function() {\n return SideEffect;\n }\n}));\nconst _react = __webpack_require__(/*! react */ \"react\");\nconst isServer = \"undefined\" === 'undefined';\nconst useClientOnlyLayoutEffect = isServer ? ()=>{} : _react.useLayoutEffect;\nconst useClientOnlyEffect = isServer ? ()=>{} : _react.useEffect;\nfunction SideEffect(props) {\n const { headManager, reduceComponentsToState } = props;\n function emitChange() {\n if (headManager && headManager.mountedInstances) {\n const headElements = _react.Children.toArray(Array.from(headManager.mountedInstances).filter(Boolean));\n headManager.updateHead(reduceComponentsToState(headElements, props));\n }\n }\n if (isServer) {\n var _headManager_mountedInstances;\n headManager == null ? void 0 : (_headManager_mountedInstances = headManager.mountedInstances) == null ? void 0 : _headManager_mountedInstances.add(props.children);\n emitChange();\n }\n useClientOnlyLayoutEffect({\n \"SideEffect.useClientOnlyLayoutEffect\": ()=>{\n var _headManager_mountedInstances;\n headManager == null ? void 0 : (_headManager_mountedInstances = headManager.mountedInstances) == null ? void 0 : _headManager_mountedInstances.add(props.children);\n return ({\n \"SideEffect.useClientOnlyLayoutEffect\": ()=>{\n var _headManager_mountedInstances;\n headManager == null ? void 0 : (_headManager_mountedInstances = headManager.mountedInstances) == null ? void 0 : _headManager_mountedInstances.delete(props.children);\n }\n })[\"SideEffect.useClientOnlyLayoutEffect\"];\n }\n }[\"SideEffect.useClientOnlyLayoutEffect\"]);\n // We need to call `updateHead` method whenever the `SideEffect` is trigger in all\n // life-cycles: mount, update, unmount. However, if there are multiple `SideEffect`s\n // being rendered, we only trigger the method from the last one.\n // This is ensured by keeping the last unflushed `updateHead` in the `_pendingUpdate`\n // singleton in the layout effect pass, and actually trigger it in the effect pass.\n useClientOnlyLayoutEffect({\n \"SideEffect.useClientOnlyLayoutEffect\": ()=>{\n if (headManager) {\n headManager._pendingUpdate = emitChange;\n }\n return ({\n \"SideEffect.useClientOnlyLayoutEffect\": ()=>{\n if (headManager) {\n headManager._pendingUpdate = emitChange;\n }\n }\n })[\"SideEffect.useClientOnlyLayoutEffect\"];\n }\n }[\"SideEffect.useClientOnlyLayoutEffect\"]);\n useClientOnlyEffect({\n \"SideEffect.useClientOnlyEffect\": ()=>{\n if (headManager && headManager._pendingUpdate) {\n headManager._pendingUpdate();\n headManager._pendingUpdate = null;\n }\n return ({\n \"SideEffect.useClientOnlyEffect\": ()=>{\n if (headManager && headManager._pendingUpdate) {\n headManager._pendingUpdate();\n headManager._pendingUpdate = null;\n }\n }\n })[\"SideEffect.useClientOnlyEffect\"];\n }\n }[\"SideEffect.useClientOnlyEffect\"]);\n return null;\n} //# sourceMappingURL=side-effect.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1ub2RlKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3Qvc2hhcmVkL2xpYi9zaWRlLWVmZmVjdC5qcyIsIm1hcHBpbmdzIjoiOzs7OzJDQW9CQTs7O2VBQXdCQTs7O21DQW5CdUM7QUFlL0QsTUFBTUMsV0FBVyxPQUFPQyxTQUFXO0FBQ25DLE1BQU1DLDRCQUE0QkYsV0FBVyxLQUFPLElBQUlHLE9BQUFBLGVBQWU7QUFDdkUsTUFBTUMsc0JBQXNCSixXQUFXLEtBQU8sSUFBSUssT0FBQUEsU0FBUztBQUU1QyxTQUFTTixXQUFXTyxLQUFzQjtJQUN2RCxNQUFNLEVBQUVDLFdBQVcsRUFBRUMsdUJBQXVCLEVBQUUsR0FBR0Y7SUFFakQsU0FBU0c7UUFDUCxJQUFJRixlQUFlQSxZQUFZRyxnQkFBZ0IsRUFBRTtZQUMvQyxNQUFNQyxlQUFlQyxPQUFBQSxRQUFRLENBQUNDLE9BQU8sQ0FDbkNDLE1BQU1DLElBQUksQ0FBQ1IsWUFBWUcsZ0JBQWdCLEVBQTBCTSxNQUFNLENBQ3JFQztZQUdKVixZQUFZVyxVQUFVLENBQUNWLHdCQUF3QkcsY0FBY0w7UUFDL0Q7SUFDRjtJQUVBLElBQUlOLFVBQVU7WUFDWk87UUFBQUEsZUFBQUEsT0FBQUEsS0FBQUEsSUFBQUEsaUNBQUFBLFlBQWFHLGdCQUFBQSxLQUFnQixnQkFBN0JILDhCQUErQlksR0FBRyxDQUFDYixNQUFNYyxRQUFRO1FBQ2pEWDtJQUNGO0lBRUFQO2dEQUEwQjtnQkFDeEJLO1lBQUFBLGVBQUFBLE9BQUFBLEtBQUFBLElBQUFBLENBQUFBLGdDQUFBQSxZQUFhRyxnQkFBQUEsS0FBZ0IsZ0JBQTdCSCw4QkFBK0JZLEdBQUcsQ0FBQ2IsTUFBTWMsUUFBUTtZQUNqRDt3REFBTzt3QkFDTGI7b0JBQUFBLGVBQUFBLE9BQUFBLEtBQUFBLElBQUFBLENBQUFBLGdDQUFBQSxZQUFhRyxnQkFBQUEsS0FBZ0IsZ0JBQTdCSCw4QkFBK0JjLE1BQU0sQ0FBQ2YsTUFBTWMsUUFBUTtnQkFDdEQ7O1FBQ0Y7O0lBRUEsa0ZBQWtGO0lBQ2xGLG9GQUFvRjtJQUNwRixnRUFBZ0U7SUFDaEUscUZBQXFGO0lBQ3JGLG1GQUFtRjtJQUNuRmxCO2dEQUEwQjtZQUN4QixJQUFJSyxhQUFhO2dCQUNmQSxZQUFZZSxjQUFjLEdBQUdiO1lBQy9CO1lBQ0E7d0RBQU87b0JBQ0wsSUFBSUYsYUFBYTt3QkFDZkEsWUFBWWUsY0FBYyxHQUFHYjtvQkFDL0I7Z0JBQ0Y7O1FBQ0Y7O0lBRUFMOzBDQUFvQjtZQUNsQixJQUFJRyxlQUFlQSxZQUFZZSxjQUFjLEVBQUU7Z0JBQzdDZixZQUFZZSxjQUFjO2dCQUMxQmYsWUFBWWUsY0FBYyxHQUFHO1lBQy9CO1lBQ0E7a0RBQU87b0JBQ0wsSUFBSWYsZUFBZUEsWUFBWWUsY0FBYyxFQUFFO3dCQUM3Q2YsWUFBWWUsY0FBYzt3QkFDMUJmLFlBQVllLGNBQWMsR0FBRztvQkFDL0I7Z0JBQ0Y7O1FBQ0Y7O0lBRUEsT0FBTztBQUNUIiwic291cmNlcyI6WyJEOlxcc3JjXFxzaGFyZWRcXGxpYlxcc2lkZS1lZmZlY3QudHN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIFJlYWN0IGZyb20gJ3JlYWN0J1xuaW1wb3J0IHsgQ2hpbGRyZW4sIHVzZUVmZmVjdCwgdXNlTGF5b3V0RWZmZWN0LCB0eXBlIEpTWCB9IGZyb20gJ3JlYWN0J1xuXG50eXBlIFN0YXRlID0gSlNYLkVsZW1lbnRbXSB8IHVuZGVmaW5lZFxuXG5leHBvcnQgdHlwZSBTaWRlRWZmZWN0UHJvcHMgPSB7XG4gIHJlZHVjZUNvbXBvbmVudHNUb1N0YXRlOiA8VCBleHRlbmRzIHt9PihcbiAgICBjb21wb25lbnRzOiBBcnJheTxSZWFjdC5SZWFjdEVsZW1lbnQ8YW55Pj4sXG4gICAgcHJvcHM6IFRcbiAgKSA9PiBTdGF0ZVxuICBoYW5kbGVTdGF0ZUNoYW5nZT86IChzdGF0ZTogU3RhdGUpID0+IHZvaWRcbiAgaGVhZE1hbmFnZXI6IGFueVxuICBpbkFtcE1vZGU/OiBib29sZWFuXG4gIGNoaWxkcmVuOiBSZWFjdC5SZWFjdE5vZGVcbn1cblxuY29uc3QgaXNTZXJ2ZXIgPSB0eXBlb2Ygd2luZG93ID09PSAndW5kZWZpbmVkJ1xuY29uc3QgdXNlQ2xpZW50T25seUxheW91dEVmZmVjdCA9IGlzU2VydmVyID8gKCkgPT4ge30gOiB1c2VMYXlvdXRFZmZlY3RcbmNvbnN0IHVzZUNsaWVudE9ubHlFZmZlY3QgPSBpc1NlcnZlciA/ICgpID0+IHt9IDogdXNlRWZmZWN0XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIFNpZGVFZmZlY3QocHJvcHM6IFNpZGVFZmZlY3RQcm9wcykge1xuICBjb25zdCB7IGhlYWRNYW5hZ2VyLCByZWR1Y2VDb21wb25lbnRzVG9TdGF0ZSB9ID0gcHJvcHNcblxuICBmdW5jdGlvbiBlbWl0Q2hhbmdlKCkge1xuICAgIGlmIChoZWFkTWFuYWdlciAmJiBoZWFkTWFuYWdlci5tb3VudGVkSW5zdGFuY2VzKSB7XG4gICAgICBjb25zdCBoZWFkRWxlbWVudHMgPSBDaGlsZHJlbi50b0FycmF5KFxuICAgICAgICBBcnJheS5mcm9tKGhlYWRNYW5hZ2VyLm1vdW50ZWRJbnN0YW5jZXMgYXMgU2V0PFJlYWN0LlJlYWN0Tm9kZT4pLmZpbHRlcihcbiAgICAgICAgICBCb29sZWFuXG4gICAgICAgIClcbiAgICAgICkgYXMgUmVhY3QuUmVhY3RFbGVtZW50W11cbiAgICAgIGhlYWRNYW5hZ2VyLnVwZGF0ZUhlYWQocmVkdWNlQ29tcG9uZW50c1RvU3RhdGUoaGVhZEVsZW1lbnRzLCBwcm9wcykpXG4gICAgfVxuICB9XG5cbiAgaWYgKGlzU2VydmVyKSB7XG4gICAgaGVhZE1hbmFnZXI/Lm1vdW50ZWRJbnN0YW5jZXM/LmFkZChwcm9wcy5jaGlsZHJlbilcbiAgICBlbWl0Q2hhbmdlKClcbiAgfVxuXG4gIHVzZUNsaWVudE9ubHlMYXlvdXRFZmZlY3QoKCkgPT4ge1xuICAgIGhlYWRNYW5hZ2VyPy5tb3VudGVkSW5zdGFuY2VzPy5hZGQocHJvcHMuY2hpbGRyZW4pXG4gICAgcmV0dXJuICgpID0+IHtcbiAgICAgIGhlYWRNYW5hZ2VyPy5tb3VudGVkSW5zdGFuY2VzPy5kZWxldGUocHJvcHMuY2hpbGRyZW4pXG4gICAgfVxuICB9KVxuXG4gIC8vIFdlIG5lZWQgdG8gY2FsbCBgdXBkYXRlSGVhZGAgbWV0aG9kIHdoZW5ldmVyIHRoZSBgU2lkZUVmZmVjdGAgaXMgdHJpZ2dlciBpbiBhbGxcbiAgLy8gbGlmZS1jeWNsZXM6IG1vdW50LCB1cGRhdGUsIHVubW91bnQuIEhvd2V2ZXIsIGlmIHRoZXJlIGFyZSBtdWx0aXBsZSBgU2lkZUVmZmVjdGBzXG4gIC8vIGJlaW5nIHJlbmRlcmVkLCB3ZSBvbmx5IHRyaWdnZXIgdGhlIG1ldGhvZCBmcm9tIHRoZSBsYXN0IG9uZS5cbiAgLy8gVGhpcyBpcyBlbnN1cmVkIGJ5IGtlZXBpbmcgdGhlIGxhc3QgdW5mbHVzaGVkIGB1cGRhdGVIZWFkYCBpbiB0aGUgYF9wZW5kaW5nVXBkYXRlYFxuICAvLyBzaW5nbGV0b24gaW4gdGhlIGxheW91dCBlZmZlY3QgcGFzcywgYW5kIGFjdHVhbGx5IHRyaWdnZXIgaXQgaW4gdGhlIGVmZmVjdCBwYXNzLlxuICB1c2VDbGllbnRPbmx5TGF5b3V0RWZmZWN0KCgpID0+IHtcbiAgICBpZiAoaGVhZE1hbmFnZXIpIHtcbiAgICAgIGhlYWRNYW5hZ2VyLl9wZW5kaW5nVXBkYXRlID0gZW1pdENoYW5nZVxuICAgIH1cbiAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgaWYgKGhlYWRNYW5hZ2VyKSB7XG4gICAgICAgIGhlYWRNYW5hZ2VyLl9wZW5kaW5nVXBkYXRlID0gZW1pdENoYW5nZVxuICAgICAgfVxuICAgIH1cbiAgfSlcblxuICB1c2VDbGllbnRPbmx5RWZmZWN0KCgpID0+IHtcbiAgICBpZiAoaGVhZE1hbmFnZXIgJiYgaGVhZE1hbmFnZXIuX3BlbmRpbmdVcGRhdGUpIHtcbiAgICAgIGhlYWRNYW5hZ2VyLl9wZW5kaW5nVXBkYXRlKClcbiAgICAgIGhlYWRNYW5hZ2VyLl9wZW5kaW5nVXBkYXRlID0gbnVsbFxuICAgIH1cbiAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgaWYgKGhlYWRNYW5hZ2VyICYmIGhlYWRNYW5hZ2VyLl9wZW5kaW5nVXBkYXRlKSB7XG4gICAgICAgIGhlYWRNYW5hZ2VyLl9wZW5kaW5nVXBkYXRlKClcbiAgICAgICAgaGVhZE1hbmFnZXIuX3BlbmRpbmdVcGRhdGUgPSBudWxsXG4gICAgICB9XG4gICAgfVxuICB9KVxuXG4gIHJldHVybiBudWxsXG59XG4iXSwibmFtZXMiOlsiU2lkZUVmZmVjdCIsImlzU2VydmVyIiwid2luZG93IiwidXNlQ2xpZW50T25seUxheW91dEVmZmVjdCIsInVzZUxheW91dEVmZmVjdCIsInVzZUNsaWVudE9ubHlFZmZlY3QiLCJ1c2VFZmZlY3QiLCJwcm9wcyIsImhlYWRNYW5hZ2VyIiwicmVkdWNlQ29tcG9uZW50c1RvU3RhdGUiLCJlbWl0Q2hhbmdlIiwibW91bnRlZEluc3RhbmNlcyIsImhlYWRFbGVtZW50cyIsIkNoaWxkcmVuIiwidG9BcnJheSIsIkFycmF5IiwiZnJvbSIsImZpbHRlciIsIkJvb2xlYW4iLCJ1cGRhdGVIZWFkIiwiYWRkIiwiY2hpbGRyZW4iLCJkZWxldGUiLCJfcGVuZGluZ1VwZGF0ZSJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(pages-dir-node)/./node_modules/next/dist/shared/lib/side-effect.js\n"); - -/***/ }), - -/***/ "(pages-dir-node)/./node_modules/next/dist/shared/lib/utils.js": -/*!****************************************************!*\ - !*** ./node_modules/next/dist/shared/lib/utils.js ***! - \****************************************************/ -/***/ ((__unused_webpack_module, exports) => { - -"use strict"; -eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n DecodeError: function() {\n return DecodeError;\n },\n MiddlewareNotFoundError: function() {\n return MiddlewareNotFoundError;\n },\n MissingStaticPage: function() {\n return MissingStaticPage;\n },\n NormalizeError: function() {\n return NormalizeError;\n },\n PageNotFoundError: function() {\n return PageNotFoundError;\n },\n SP: function() {\n return SP;\n },\n ST: function() {\n return ST;\n },\n WEB_VITALS: function() {\n return WEB_VITALS;\n },\n execOnce: function() {\n return execOnce;\n },\n getDisplayName: function() {\n return getDisplayName;\n },\n getLocationOrigin: function() {\n return getLocationOrigin;\n },\n getURL: function() {\n return getURL;\n },\n isAbsoluteUrl: function() {\n return isAbsoluteUrl;\n },\n isResSent: function() {\n return isResSent;\n },\n loadGetInitialProps: function() {\n return loadGetInitialProps;\n },\n normalizeRepeatedSlashes: function() {\n return normalizeRepeatedSlashes;\n },\n stringifyError: function() {\n return stringifyError;\n }\n});\nconst WEB_VITALS = [\n 'CLS',\n 'FCP',\n 'FID',\n 'INP',\n 'LCP',\n 'TTFB'\n];\nfunction execOnce(fn) {\n let used = false;\n let result;\n return function() {\n for(var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++){\n args[_key] = arguments[_key];\n }\n if (!used) {\n used = true;\n result = fn(...args);\n }\n return result;\n };\n}\n// Scheme: https://tools.ietf.org/html/rfc3986#section-3.1\n// Absolute URL: https://tools.ietf.org/html/rfc3986#section-4.3\nconst ABSOLUTE_URL_REGEX = /^[a-zA-Z][a-zA-Z\\d+\\-.]*?:/;\nconst isAbsoluteUrl = (url)=>ABSOLUTE_URL_REGEX.test(url);\nfunction getLocationOrigin() {\n const { protocol, hostname, port } = window.location;\n return protocol + \"//\" + hostname + (port ? ':' + port : '');\n}\nfunction getURL() {\n const { href } = window.location;\n const origin = getLocationOrigin();\n return href.substring(origin.length);\n}\nfunction getDisplayName(Component) {\n return typeof Component === 'string' ? Component : Component.displayName || Component.name || 'Unknown';\n}\nfunction isResSent(res) {\n return res.finished || res.headersSent;\n}\nfunction normalizeRepeatedSlashes(url) {\n const urlParts = url.split('?');\n const urlNoQuery = urlParts[0];\n return urlNoQuery // first we replace any non-encoded backslashes with forward\n // then normalize repeated forward slashes\n .replace(/\\\\/g, '/').replace(/\\/\\/+/g, '/') + (urlParts[1] ? \"?\" + urlParts.slice(1).join('?') : '');\n}\nasync function loadGetInitialProps(App, ctx) {\n if (true) {\n var _App_prototype;\n if ((_App_prototype = App.prototype) == null ? void 0 : _App_prototype.getInitialProps) {\n const message = '\"' + getDisplayName(App) + '.getInitialProps()\" is defined as an instance method - visit https://nextjs.org/docs/messages/get-initial-props-as-an-instance-method for more information.';\n throw Object.defineProperty(new Error(message), \"__NEXT_ERROR_CODE\", {\n value: \"E394\",\n enumerable: false,\n configurable: true\n });\n }\n }\n // when called from _app `ctx` is nested in `ctx`\n const res = ctx.res || ctx.ctx && ctx.ctx.res;\n if (!App.getInitialProps) {\n if (ctx.ctx && ctx.Component) {\n // @ts-ignore pageProps default\n return {\n pageProps: await loadGetInitialProps(ctx.Component, ctx.ctx)\n };\n }\n return {};\n }\n const props = await App.getInitialProps(ctx);\n if (res && isResSent(res)) {\n return props;\n }\n if (!props) {\n const message = '\"' + getDisplayName(App) + '.getInitialProps()\" should resolve to an object. But found \"' + props + '\" instead.';\n throw Object.defineProperty(new Error(message), \"__NEXT_ERROR_CODE\", {\n value: \"E394\",\n enumerable: false,\n configurable: true\n });\n }\n if (true) {\n if (Object.keys(props).length === 0 && !ctx.ctx) {\n console.warn(\"\" + getDisplayName(App) + \" returned an empty object from `getInitialProps`. This de-optimizes and prevents automatic static optimization. https://nextjs.org/docs/messages/empty-object-getInitialProps\");\n }\n }\n return props;\n}\nconst SP = typeof performance !== 'undefined';\nconst ST = SP && [\n 'mark',\n 'measure',\n 'getEntriesByName'\n].every((method)=>typeof performance[method] === 'function');\nclass DecodeError extends Error {\n}\nclass NormalizeError extends Error {\n}\nclass PageNotFoundError extends Error {\n constructor(page){\n super();\n this.code = 'ENOENT';\n this.name = 'PageNotFoundError';\n this.message = \"Cannot find module for page: \" + page;\n }\n}\nclass MissingStaticPage extends Error {\n constructor(page, message){\n super();\n this.message = \"Failed to load static file for page: \" + page + \" \" + message;\n }\n}\nclass MiddlewareNotFoundError extends Error {\n constructor(){\n super();\n this.code = 'ENOENT';\n this.message = \"Cannot find the middleware module\";\n }\n}\nfunction stringifyError(error) {\n return JSON.stringify({\n message: error.message,\n stack: error.stack\n });\n} //# sourceMappingURL=utils.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1ub2RlKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3Qvc2hhcmVkL2xpYi91dGlscy5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7SUFvYWFBLFdBQVc7ZUFBWEE7O0lBb0JBQyx1QkFBdUI7ZUFBdkJBOztJQVBBQyxpQkFBaUI7ZUFBakJBOztJQVpBQyxjQUFjO2VBQWRBOztJQUNBQyxpQkFBaUI7ZUFBakJBOztJQVRBQyxFQUFFO2VBQUZBOztJQUNBQyxFQUFFO2VBQUZBOztJQWxYQUMsVUFBVTtlQUFWQTs7SUFzUUdDLFFBQVE7ZUFBUkE7O0lBK0JBQyxjQUFjO2VBQWRBOztJQVhBQyxpQkFBaUI7ZUFBakJBOztJQUtBQyxNQUFNO2VBQU5BOztJQVBIQyxhQUFhO2VBQWJBOztJQW1CR0MsU0FBUztlQUFUQTs7SUFrQk1DLG1CQUFtQjtlQUFuQkE7O0lBZE5DLHdCQUF3QjtlQUF4QkE7O0lBK0dBQyxjQUFjO2VBQWRBOzs7QUE5WlQsTUFBTVQsYUFBYTtJQUFDO0lBQU87SUFBTztJQUFPO0lBQU87SUFBTztDQUFPO0FBc1E5RCxTQUFTQyxTQUNkUyxFQUFLO0lBRUwsSUFBSUMsT0FBTztJQUNYLElBQUlDO0lBRUosT0FBUTt5Q0FBSUMsT0FBQUEsSUFBQUEsTUFBQUEsT0FBQUEsT0FBQUEsR0FBQUEsT0FBQUEsTUFBQUEsT0FBQUE7WUFBQUEsSUFBQUEsQ0FBQUEsS0FBQUEsR0FBQUEsU0FBQUEsQ0FBQUEsS0FBQUE7O1FBQ1YsSUFBSSxDQUFDRixNQUFNO1lBQ1RBLE9BQU87WUFDUEMsU0FBU0YsTUFBTUc7UUFDakI7UUFDQSxPQUFPRDtJQUNUO0FBQ0Y7QUFFQSwwREFBMEQ7QUFDMUQsZ0VBQWdFO0FBQ2hFLE1BQU1FLHFCQUFxQjtBQUNwQixNQUFNVCxnQkFBZ0IsQ0FBQ1UsTUFBZ0JELG1CQUFtQkUsSUFBSSxDQUFDRDtBQUUvRCxTQUFTWjtJQUNkLE1BQU0sRUFBRWMsUUFBUSxFQUFFQyxRQUFRLEVBQUVDLElBQUksRUFBRSxHQUFH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QUNaLElBQUksQ0FBQzlCLElBQUksR0FBRztRQUNaLElBQUksQ0FBQ2lCLE9BQU8sR0FBSSxrQ0FBK0JZO0lBQ2pEO0FBQ0Y7QUFFTyxNQUFNOUQsMEJBQTBCbUQ7SUFDckNVLFlBQVlDLElBQVksRUFBRVosT0FBZSxDQUFFO1FBQ3pDLEtBQUs7UUFDTCxJQUFJLENBQUNBLE9BQU8sR0FBSSwwQ0FBdUNZLE9BQUssTUFBR1o7SUFDakU7QUFDRjtBQUVPLE1BQU1uRCxnQ0FBZ0NvRDtJQUUzQ1UsYUFBYztRQUNaLEtBQUs7UUFDTCxJQUFJLENBQUNFLElBQUksR0FBRztRQUNaLElBQUksQ0FBQ2IsT0FBTyxHQUFJO0lBQ2xCO0FBQ0Y7QUFXTyxTQUFTcEMsZUFBZWtELEtBQVk7SUFDekMsT0FBT0MsS0FBS0MsU0FBUyxDQUFDO1FBQUVoQixTQUFTYyxNQUFNZCxPQUFPO1FBQUVpQixPQUFPSCxNQUFNRyxLQUFLO0lBQUM7QUFDckUiLCJzb3VyY2VzIjpbIkQ6XFxzcmNcXHNoYXJlZFxcbGliXFx1dGlscy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IEh0bWxQcm9wcyB9IGZyb20gJy4vaHRtbC1jb250ZXh0LnNoYXJlZC1ydW50aW1lJ1xuaW1wb3J0IHR5cGUgeyBDb21wb25lbnRUeXBlLCBKU1ggfSBmcm9tICdyZWFjdCdcbmltcG9ydCB0eXBlIHsgRG9tYWluTG9jYWxlIH0gZnJvbSAnLi4vLi4vc2VydmVyL2NvbmZpZydcbmltcG9ydCB0eXBlIHsgRW52IH0gZnJvbSAnQG5leHQvZW52J1xuaW1wb3J0IHR5cGUgeyBJbmNvbWluZ01lc3NhZ2UsIFNlcnZlclJlc3BvbnNlIH0gZnJvbSAnaHR0cCdcbmltcG9ydCB0eXBlIHsgTmV4dFJvdXRlciB9IGZyb20gJy4vcm91dGVyL3JvdXRlcidcbmltcG9ydCB0eXBlIHsgUGFyc2VkVXJsUXVlcnkgfSBmcm9tICdxdWVyeXN0cmluZydcbmltcG9ydCB0eXBlIHsgUHJldmlld0RhdGEgfSBmcm9tICcuLi8uLi90eXBlcydcbmltcG9ydCB0eXBlIHsgQ09NUElMRVJfTkFNRVMgfSBmcm9tICcuL2NvbnN0YW50cydcbmltcG9ydCB0eXBlIGZzIGZyb20gJ2ZzJ1xuXG5leHBvcnQgdHlwZSBOZXh0Q29tcG9uZW50VHlwZTxcbiAgQ29udGV4dCBleHRlbmRzIEJhc2VDb250ZXh0ID0gTmV4dFBhZ2VDb250ZXh0LFxuICBJbml0aWFsUHJvcHMgPSB7fSxcbiAgUHJvcHMgPSB7fSxcbj4gPSBDb21wb25lbnRUeXBlPFByb3BzPiAmIHtcbiAgLyoqXG4gICAqIFVzZWQgZm9yIGluaXRpYWwgcGFnZSBsb2FkIGRhdGEgcG9wdWxhdGlvbi4gRGF0YSByZXR1cm5lZCBmcm9tIGBnZXRJbml0aWFsUHJvcHNgIGlzIHNlcmlhbGl6ZWQgd2hlbiBzZXJ2ZXIgcmVuZGVyZWQuXG4gICAqIE1ha2Ugc3VyZSB0byByZXR1cm4gcGxhaW4gYE9iamVjdGAgd2l0aG91dCB1c2luZyBgRGF0ZWAsIGBNYXBgLCBgU2V0YC5cbiAgICogQHBhcmFtIGNvbnRleHQgQ29udGV4dCBvZiBgcGFnZWBcbiAgICovXG4gIGdldEluaXRpYWxQcm9wcz8oY29udGV4dDogQ29udGV4dCk6IEluaXRpYWxQcm9wcyB8IFByb21pc2U8SW5pdGlhbFByb3BzPlxufVxuXG5leHBvcnQgdHlwZSBEb2N1bWVudFR5cGUgPSBOZXh0Q29tcG9uZW50VHlwZTxcbiAgRG9jdW1lbnRDb250ZXh0LFxuICBEb2N1bWVudEluaXRpYWxQcm9wcyxcbiAgRG9jdW1lbnRQcm9wc1xuPlxuXG5leHBvcnQgdHlwZSBBcHBUeXBlPFAgPSB7fT4gPSBOZXh0Q29tcG9uZW50VHlwZTxcbiAgQXBwQ29udGV4dFR5cGUsXG4gIFAsXG4gIEFwcFByb3BzVHlwZTxhbnksIFA+XG4+XG5cbmV4cG9ydCB0eXBlIEFwcFRyZWVUeXBlID0gQ29tcG9uZW50VHlwZTxcbiAgQXBwSW5pdGlhbFByb3BzICYgeyBbbmFtZTogc3RyaW5nXTogYW55IH1cbj5cblxuLyoqXG4gKiBXZWIgdml0YWxzIHByb3ZpZGVkIHRvIF9hcHAucmVwb3J0V2ViVml0YWxzIGJ5IENvcmUgV2ViIFZpdGFscyBwbHVnaW4gZGV2ZWxvcGVkIGJ5IEdvb2dsZSBDaHJvbWUgdGVhbS5cbiAqIGh0dHBzOi8vbmV4dGpzLm9yZy9ibG9nL25leHQtOS00I2ludGVncmF0ZWQtd2ViLXZpdGFscy1yZXBvcnRpbmdcbiAqL1xuZXhwb3J0IGNvbnN0IFdFQl9WSVRBTFMgPSBbJ0NMUycsICdGQ1AnLCAnRklEJywgJ0lOUCcsICdMQ1AnLCAnVFRGQiddIGFzIGNvbnN0XG5leHBvcnQgdHlwZSBOZXh0V2ViVml0YWxzTWV0cmljID0ge1xuICBpZDogc3RyaW5nXG4gIHN0YXJ0VGltZTogbnVtYmVyXG4gIHZhbHVlOiBudW1iZXJcbiAgYXR0cmlidXRpb24/OiB7IFtrZXk6IHN0cmluZ106IHVua25vd24gfVxufSAmIChcbiAgfCB7XG4gICAgICBsYWJlbDogJ3dlYi12aXRhbCdcbiAgICAgIG5hbWU6ICh0eXBlb2YgV0VCX1ZJVEFMUylbbnVtYmVyXVxuICAgIH1cbiAgfCB7XG4gICAgICBsYWJlbDogJ2N1c3RvbSdcbiAgICAgIG5hbWU6XG4gICAgICAgIHwgJ05leHQuanMtaHlkcmF0aW9uJ1xuICAgICAgICB8ICdOZXh0LmpzLXJvdXRlLWNoYW5nZS10by1yZW5kZXInXG4gICAgICAgIHwgJ05leHQuanMtcmVuZGVyJ1xuICAgIH1cbilcblxuZXhwb3J0IHR5cGUgRW5oYW5jZXI8Qz4gPSAoQ29tcG9uZW50OiBDKSA9PiBDXG5cbmV4cG9ydCB0eXBlIENvbXBvbmVudHNFbmhhbmNlciA9XG4gIHwge1xuICAgICAgZW5oYW5jZUFwcD86IEVuaGFuY2VyPEFwcFR5cGU+XG4gICAgICBlbmhhbmNlQ29tcG9uZW50PzogRW5oYW5jZXI8TmV4dENvbXBvbmVudFR5cGU+XG4gICAgfVxuICB8IEVuaGFuY2VyPE5leHRDb21wb25lbnRUeXBlPlxuXG5leHBvcnQgdHlwZSBSZW5kZXJQYWdlUmVzdWx0ID0ge1xuICBodG1sOiBzdHJpbmdcbiAgaGVhZD86IEFycmF5PEpTWC5FbGVtZW50IHwgbnVsbD5cbn1cblxuZXhwb3J0IHR5cGUgUmVuZGVyUGFnZSA9IChcbiAgb3B0aW9ucz86IENvbXBvbmVudHNFbmhhbmNlclxuKSA9PiBEb2N1bWVudEluaXRpYWxQcm9wcyB8IFByb21pc2U8RG9jdW1lbnRJbml0aWFsUHJvcHM+XG5cbmV4cG9ydCB0eXBlIEJhc2VDb250ZXh0ID0ge1xuICByZXM/OiBTZXJ2ZXJSZXNwb25zZVxuICBbazogc3RyaW5nXTogYW55XG59XG5cbmV4cG9ydCB0eXBlIE5FWFRfREFUQSA9IHtcbiAgcHJvcHM6IFJlY29yZDxzdHJpbmcsIGFueT5cbiAgcGFnZTogc3RyaW5nXG4gIHF1ZXJ5OiBQYXJzZWRVcmxRdWVyeVxuICBidWlsZElkOiBzdHJpbmdcbiAgYXNzZXRQcmVmaXg/OiBzdHJpbmdcbiAgcnVudGltZUNvbmZpZz86IHsgW2tleTogc3RyaW5nXTogYW55IH1cbiAgbmV4dEV4cG9ydD86IGJvb2xlYW5cbiAgYXV0b0V4cG9ydD86IGJvb2xlYW5cbiAgaXNGYWxsYmFjaz86IGJvb2xlYW5cbiAgaXNFeHBlcmltZW50YWxDb21waWxlPzogYm9vbGVhblxuICBkeW5hbWljSWRzPzogKHN0cmluZyB8IG51bWJlcilbXVxuICBlcnI/OiBFcnJvciAmIHtcbiAgICBzdGF0dXNDb2RlPzogbnVtYmVyXG4gICAgc291cmNlPzogdHlwZW9mIENPTVBJTEVSX05BTUVTLnNlcnZlciB8IHR5cGVvZiBDT01QSUxFUl9OQU1FUy5lZGdlU2VydmVyXG4gIH1cbiAgZ3NwPzogYm9vbGVhblxuICBnc3NwPzogYm9vbGVhblxuICBjdXN0b21TZXJ2ZXI/OiBib29sZWFuXG4gIGdpcD86IGJvb2xlYW5cbiAgYXBwR2lwPzogYm9vbGVhblxuICBsb2NhbGU/OiBzdHJpbmdcbiAgbG9jYWxlcz86IHJlYWRvbmx5IHN0cmluZ1tdXG4gIGRlZmF1bHRMb2NhbGU/OiBzdHJpbmdcbiAgZG9tYWluTG9jYWxlcz86IHJlYWRvbmx5IERvbWFpbkxvY2FsZVtdXG4gIHNjcmlwdExvYWRlcj86IGFueVtdXG4gIGlzUHJldmlldz86IGJvb2xlYW5cbiAgbm90Rm91bmRTcmNQYWdlPzogc3RyaW5nXG59XG5cbi8qKlxuICogYE5leHRgIGNvbnRleHRcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBOZXh0UGFnZUNvbnRleHQge1xuICAvKipcbiAgICogRXJyb3Igb2JqZWN0IGlmIGVuY291bnRlcmVkIGR1cmluZyByZW5kZXJpbmdcbiAgICovXG4gIGVycj86IChFcnJvciAmIHsgc3RhdHVzQ29kZT86IG51bWJlciB9KSB8IG51bGxcbiAgLyoqXG4gICAqIGBIVFRQYCByZXF1ZXN0IG9iamVjdC5cbiAgICovXG4gIHJlcT86IEluY29taW5nTWVzc2FnZVxuICAvKipcbiAgICogYEhUVFBgIHJlc3BvbnNlIG9iamVjdC5cbiAgICovXG4gIHJlcz86IFNlcnZlclJlc3BvbnNlXG4gIC8qKlxuICAgKiBQYXRoIHNlY3Rpb24gb2YgYFVSTGAuXG4gICAqL1xuICBwYXRobmFtZTogc3RyaW5nXG4gIC8qKlxuICAgKiBRdWVyeSBzdHJpbmcgc2VjdGlvbiBvZiBgVVJMYCBwYXJzZWQgYXMgYW4gb2JqZWN0LlxuICAgKi9cbiAgcXVlcnk6IFBhcnNlZFVybFF1ZXJ5XG4gIC8qKlxuICAgKiBgU3RyaW5nYCBvZiB0aGUgYWN0dWFsIHBhdGggaW5jbHVkaW5nIHF1ZXJ5LlxuICAgKi9cbiAgYXNQYXRoPzogc3RyaW5nXG4gIC8qKlxuICAgKiBUaGUgY3VycmVudGx5IGFjdGl2ZSBsb2NhbGVcbiAgICovXG4gIGxvY2FsZT86IHN0cmluZ1xuICAvKipcbiAgICogQWxsIGNvbmZpZ3VyZWQgbG9jYWxlc1xuICAgKi9cbiAgbG9jYWxlcz86IHJlYWRvbmx5IHN0cmluZ1tdXG4gIC8qKlxuICAgKiBUaGUgY29uZmlndXJlZCBkZWZhdWx0IGxvY2FsZVxuICAgKi9cbiAgZGVmYXVsdExvY2FsZT86IHN0cmluZ1xuICAvKipcbiAgICogYENvbXBvbmVudGAgdGhlIHRyZWUgb2YgdGhlIEFwcCB0byB1c2UgaWYgbmVlZGluZyB0byByZW5kZXIgc2VwYXJhdGVseVxuICAgKi9cbiAgQXBwVHJlZTogQXBwVHJlZVR5cGVcbn1cblxuZXhwb3J0IHR5cGUgQXBwQ29udGV4dFR5cGU8Um91dGVyIGV4dGVuZHMgTmV4dFJvdXRlciA9IE5leHRSb3V0ZXI+ID0ge1xuICBDb21wb25lbnQ6IE5leHRDb21wb25lbnRUeXBlPE5leHRQYWdlQ29udGV4dD5cbiAgQXBwVHJlZTogQXBwVHJlZVR5cGVcbiAgY3R4OiBOZXh0UGFnZUNvbnRleHRcbiAgcm91dGVyOiBSb3V0ZXJcbn1cblxuZXhwb3J0IHR5cGUgQXBwSW5pdGlhbFByb3BzPFBhZ2VQcm9wcyA9IGFueT4gPSB7XG4gIHBhZ2VQcm9wczogUGFnZVByb3BzXG59XG5cbmV4cG9ydCB0eXBlIEFwcFByb3BzVHlwZTxcbiAgUm91dGVyIGV4dGVuZHMgTmV4dFJvdXRlciA9IE5leHRSb3V0ZXIsXG4gIFBhZ2VQcm9wcyA9IHt9LFxuPiA9IEFwcEluaXRpYWxQcm9wczxQYWdlUHJvcHM+ICYge1xuICBDb21wb25lbnQ6IE5leHRDb21wb25lbnRUeXBlPE5leHRQYWdlQ29udGV4dCwgYW55LCBhbnk+XG4gIHJvdXRlcjogUm91dGVyXG4gIF9fTl9TU0c/OiBib29sZWFuXG4gIF9fTl9TU1A/OiBib29sZWFuXG59XG5cbmV4cG9ydCB0eXBlIERvY3VtZW50Q29udGV4dCA9IE5leHRQYWdlQ29udGV4dCAmIHtcbiAgcmVuZGVyUGFnZTogUmVuZGVyUGFnZVxuICBkZWZhdWx0R2V0SW5pdGlhbFByb3BzKFxuICAgIGN0eDogRG9jdW1lbnRDb250ZXh0LFxuICAgIG9wdGlvbnM/OiB7IG5vbmNlPzogc3RyaW5nIH1cbiAgKTogUHJvbWlzZTxEb2N1bWVudEluaXRpYWxQcm9wcz5cbn1cblxuZXhwb3J0IHR5cGUgRG9jdW1lbnRJbml0aWFsUHJvcHMgPSBSZW5kZXJQYWdlUmVzdWx0ICYge1xuICBzdHlsZXM/OiBSZWFjdC5SZWFjdEVsZW1lbnRbXSB8IEl0ZXJhYmxlPFJlYWN0LlJlYWN0Tm9kZT4gfCBKU1guRWxlbWVudFxufVxuXG5leHBvcnQgdHlwZSBEb2N1bWVudFByb3BzID0gRG9jdW1lbnRJbml0aWFsUHJvcHMgJiBIdG1sUHJvcHNcblxuLyoqXG4gKiBOZXh0IGBBUElgIHJvdXRlIHJlcXVlc3RcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBOZXh0QXBpUmVxdWVzdCBleHRlbmRzIEluY29taW5nTWVzc2FnZSB7XG4gIC8qKlxuICAgKiBPYmplY3Qgb2YgYHF1ZXJ5YCB2YWx1ZXMgZnJvbSB1cmxcbiAgICovXG4gIHF1ZXJ5OiBQYXJ0aWFsPHtcbiAgICBba2V5OiBzdHJpbmddOiBzdHJpbmcgfCBzdHJpbmdbXVxuICB9PlxuICAvKipcbiAgICogT2JqZWN0IG9mIGBjb29raWVzYCBmcm9tIGhlYWRlclxuICAgKi9cbiAgY29va2llczogUGFydGlhbDx7XG4gICAgW2tleTogc3RyaW5nXTogc3RyaW5nXG4gIH0+XG5cbiAgYm9keTogYW55XG5cbiAgZW52OiBFbnZcblxuICBkcmFmdE1vZGU/OiBib29sZWFuXG5cbiAgcHJldmlldz86IGJvb2xlYW5cbiAgLyoqXG4gICAqIFByZXZpZXcgZGF0YSBzZXQgb24gdGhlIHJlcXVlc3QsIGlmIGFueVxuICAgKiAqL1xuICBwcmV2aWV3RGF0YT86IFByZXZpZXdEYXRhXG59XG5cbi8qKlxuICogU2VuZCBib2R5IG9mIHJlc3BvbnNlXG4gKi9cbnR5cGUgU2VuZDxUPiA9IChib2R5OiBUKSA9PiB2b2lkXG5cbi8qKlxuICogTmV4dCBgQVBJYCByb3V0ZSByZXNwb25zZVxuICovXG5leHBvcnQgdHlwZSBOZXh0QXBpUmVzcG9uc2U8RGF0YSA9IGFueT4gPSBTZXJ2ZXJSZXNwb25zZSAmIHtcbiAgLyoqXG4gICAqIFNlbmQgZGF0YSBgYW55YCBkYXRhIGluIHJlc3BvbnNlXG4gICAqL1xuICBzZW5kOiBTZW5kPERhdGE+XG4gIC8qKlxuICAgKiBTZW5kIGRhdGEgYGpzb25gIGRhdGEgaW4gcmVzcG9uc2VcbiAgICovXG4gIGpzb246IFNlbmQ8RGF0YT5cbiAgc3RhdHVzOiAoc3RhdHVzQ29kZTogbnVtYmVyKSA9PiBOZXh0QXBpUmVzcG9uc2U8RGF0YT5cbiAgcmVkaXJlY3QodXJsOiBzdHJpbmcpOiBOZXh0QXBpUmVzcG9uc2U8RGF0YT5cbiAgcmVkaXJlY3Qoc3RhdHVzOiBudW1iZXIsIHVybDogc3RyaW5nKTogTmV4dEFwaVJlc3BvbnNlPERhdGE+XG5cbiAgLyoqXG4gICAqIFNldCBkcmFmdCBtb2RlXG4gICAqL1xuICBzZXREcmFmdE1vZGU6IChvcHRpb25zOiB7IGVuYWJsZTogYm9vbGVhbiB9KSA9PiBOZXh0QXBpUmVzcG9uc2U8RGF0YT5cblxuICAvKipcbiAgICogU2V0IHByZXZpZXcgZGF0YSBmb3IgTmV4dC5qcycgcHJlcmVuZGVyIG1vZGVcbiAgICovXG4gIHNldFByZXZpZXdEYXRhOiAoXG4gICAgZGF0YTogb2JqZWN0IHwgc3RyaW5nLFxuICAgIG9wdGlvbnM/OiB7XG4gICAgICAvKipcbiAgICAgICAqIFNwZWNpZmllcyB0aGUgbnVtYmVyIChpbiBzZWNvbmRzKSBmb3IgdGhlIHByZXZpZXcgc2Vzc2lvbiB0byBsYXN0IGZvci5cbiAgICAgICAqIFRoZSBnaXZlbiBudW1iZXIgd2lsbCBiZSBjb252ZXJ0ZWQgdG8gYW4gaW50ZWdlciBieSByb3VuZGluZyBkb3duLlxuICAgICAgICogQnkgZGVmYXVsdCwgbm8gbWF4aW11bSBhZ2UgaXMgc2V0IGFuZCB0aGUgcHJldmlldyBzZXNzaW9uIGZpbmlzaGVzXG4gICAgICAgKiB3aGVuIHRoZSBjbGllbnQgc2h1dHMgZG93biAoYnJvd3NlciBpcyBjbG9zZWQpLlxuICAgICAgICovXG4gICAgICBtYXhBZ2U/OiBudW1iZXJcbiAgICAgIC8qKlxuICAgICAgICogU3BlY2lmaWVzIHRoZSBwYXRoIGZvciB0aGUgcHJldmlldyBzZXNzaW9uIHRvIHdvcmsgdW5kZXIuIEJ5IGRlZmF1bHQsXG4gICAgICAgKiB0aGUgcGF0aCBpcyBjb25zaWRlcmVkIHRoZSBcImRlZmF1bHQgcGF0aFwiLCBpLmUuLCBhbnkgcGFnZXMgdW5kZXIgXCIvXCIuXG4gICAgICAgKi9cbiAgICAgIHBhdGg/OiBzdHJpbmdcbiAgICB9XG4gICkgPT4gTmV4dEFwaVJlc3BvbnNlPERhdGE+XG5cbiAgLyoqXG4gICAqIENsZWFyIHByZXZpZXcgZGF0YSBmb3IgTmV4dC5qcycgcHJlcmVuZGVyIG1vZGVcbiAgICovXG4gIGNsZWFyUHJldmlld0RhdGE6IChvcHRpb25zPzogeyBwYXRoPzogc3RyaW5nIH0pID0+IE5leHRBcGlSZXNwb25zZTxEYXRhPlxuXG4gIC8qKlxuICAgKiBSZXZhbGlkYXRlIGEgc3BlY2lmaWMgcGFnZSBhbmQgcmVnZW5lcmF0ZSBpdCB1c2luZyBPbi1EZW1hbmQgSW5jcmVtZW50YWxcbiAgICogU3RhdGljIFJlZ2VuZXJhdGlvbi5cbiAgICogVGhlIHBhdGggc2hvdWxkIGJlIGFuIGFjdHVhbCBwYXRoLCBub3QgYSByZXdyaXR0ZW4gcGF0aC4gRS5nLiBmb3JcbiAgICogXCIvYmxvZy9bc2x1Z11cIiB0aGlzIHNob3VsZCBiZSBcIi9ibG9nL3Bvc3QtMVwiLlxuICAgKiBAbGluayBodHRwczovL25leHRqcy5vcmcvZG9jcy9hcHAvYnVpbGRpbmcteW91ci1hcHBsaWNhdGlvbi9kYXRhLWZldGNoaW5nL2luY3JlbWVudGFsLXN0YXRpYy1yZWdlbmVyYXRpb24jb24tZGVtYW5kLXJldmFsaWRhdGlvbi13aXRoLXJldmFsaWRhdGVwYXRoXG4gICAqL1xuICByZXZhbGlkYXRlOiAoXG4gICAgdXJsUGF0aDogc3RyaW5nLFxuICAgIG9wdHM/OiB7XG4gICAgICB1bnN0YWJsZV9vbmx5R2VuZXJhdGVkPzogYm9vbGVhblxuICAgIH1cbiAgKSA9PiBQcm9taXNlPHZvaWQ+XG59XG5cbi8qKlxuICogTmV4dCBgQVBJYCByb3V0ZSBoYW5kbGVyXG4gKi9cbmV4cG9ydCB0eXBlIE5leHRBcGlIYW5kbGVyPFQgPSBhbnk+ID0gKFxuICByZXE6IE5leHRBcGlSZXF1ZXN0LFxuICByZXM6IE5leHRBcGlSZXNwb25zZTxUPlxuKSA9PiB1bmtub3duIHwgUHJvbWlzZTx1bmtub3duPlxuXG4vKipcbiAqIFV0aWxzXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBleGVjT25jZTxUIGV4dGVuZHMgKC4uLmFyZ3M6IGFueVtdKSA9PiBSZXR1cm5UeXBlPFQ+PihcbiAgZm46IFRcbik6IFQge1xuICBsZXQgdXNlZCA9IGZhbHNlXG4gIGxldCByZXN1bHQ6IFJldHVyblR5cGU8VD5cblxuICByZXR1cm4gKCguLi5hcmdzOiBhbnlbXSkgPT4ge1xuICAgIGlmICghdXNlZCkge1xuICAgICAgdXNlZCA9IHRydWVcbiAgICAgIHJlc3VsdCA9IGZuKC4uLmFyZ3MpXG4gICAgfVxuICAgIHJldHVybiByZXN1bHRcbiAgfSkgYXMgVFxufVxuXG4vLyBTY2hlbWU6IGh0dHBzOi8vdG9vbHMuaWV0Zi5vcmcvaHRtbC9yZmMzOTg2I3NlY3Rpb24tMy4xXG4vLyBBYnNvbHV0ZSBVUkw6IGh0dHBzOi8vdG9vbHMuaWV0Zi5vcmcvaHRtbC9yZmMzOTg2I3NlY3Rpb24tNC4zXG5jb25zdCBBQlNPTFVURV9VUkxfUkVHRVggPSAvXlthLXpBLVpdW2EtekEtWlxcZCtcXC0uXSo/Oi9cbmV4cG9ydCBjb25zdCBpc0Fic29sdXRlVXJsID0gKHVybDogc3RyaW5nKSA9PiBBQlNPTFVURV9VUkxfUkVHRVgudGVzdCh1cmwpXG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRMb2NhdGlvbk9yaWdpbigpIHtcbiAgY29uc3QgeyBwcm90b2NvbCwgaG9zdG5hbWUsIHBvcnQgfSA9IHdpbmRvdy5sb2NhdGlvblxuICByZXR1cm4gYCR7cHJvdG9jb2x9Ly8ke2hvc3RuYW1lfSR7cG9ydCA/ICc6JyArIHBvcnQgOiAnJ31gXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRVUkwoKSB7XG4gIGNvbnN0IHsgaHJlZiB9ID0gd2luZG93LmxvY2F0aW9uXG4gIGNvbnN0IG9yaWdpbiA9IGdldExvY2F0aW9uT3JpZ2luKClcbiAgcmV0dXJuIGhyZWYuc3Vic3RyaW5nKG9yaWdpbi5sZW5ndGgpXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXREaXNwbGF5TmFtZTxQPihDb21wb25lbnQ6IENvbXBvbmVudFR5cGU8UD4pIHtcbiAgcmV0dXJuIHR5cGVvZiBDb21wb25lbnQgPT09ICdzdHJpbmcnXG4gICAgPyBDb21wb25lbnRcbiAgICA6IENvbXBvbmVudC5kaXNwbGF5TmFtZSB8fCBDb21wb25lbnQubmFtZSB8fCAnVW5rbm93bidcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGlzUmVzU2VudChyZXM6IFNlcnZlclJlc3BvbnNlKSB7XG4gIHJldHVybiByZXMuZmluaXNoZWQgfHwgcmVzLmhlYWRlcnNTZW50XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBub3JtYWxpemVSZXBlYXRlZFNsYXNoZXModXJsOiBzdHJpbmcpIHtcbiAgY29uc3QgdXJsUGFydHMgPSB1cmwuc3BsaXQoJz8nKVxuICBjb25zdCB1cmxOb1F1ZXJ5ID0gdXJsUGFydHNbMF1cblxuICByZXR1cm4gKFxuICAgIHVybE5vUXVlcnlcbiAgICAgIC8vIGZpcnN0IHdlIHJlcGxhY2UgYW55IG5vbi1lbmNvZGVkIGJhY2tzbGFzaGVzIHdpdGggZm9yd2FyZFxuICAgICAgLy8gdGhlbiBub3JtYWxpemUgcmVwZWF0ZWQgZm9yd2FyZCBzbGFzaGVzXG4gICAgICAucmVwbGFjZSgvXFxcXC9nLCAnLycpXG4gICAgICAucmVwbGFjZSgvXFwvXFwvKy9nLCAnLycpICtcbiAgICAodXJsUGFydHNbMV0gPyBgPyR7dXJsUGFydHMuc2xpY2UoMSkuam9pbignPycpfWAgOiAnJylcbiAgKVxufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gbG9hZEdldEluaXRpYWxQcm9wczxcbiAgQyBleHRlbmRzIEJhc2VDb250ZXh0LFxuICBJUCA9IHt9LFxuICBQID0ge30sXG4+KEFwcDogTmV4dENvbXBvbmVudFR5cGU8QywgSVAsIFA+LCBjdHg6IEMpOiBQcm9taXNlPElQPiB7XG4gIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSB7XG4gICAgaWYgKEFwcC5wcm90b3R5cGU/LmdldEluaXRpYWxQcm9wcykge1xuICAgICAgY29uc3QgbWVzc2FnZSA9IGBcIiR7Z2V0RGlzcGxheU5hbWUoXG4gICAgICAgIEFwcFxuICAgICAgKX0uZ2V0SW5pdGlhbFByb3BzKClcIiBpcyBkZWZpbmVkIGFzIGFuIGluc3RhbmNlIG1ldGhvZCAtIHZpc2l0IGh0dHBzOi8vbmV4dGpzLm9yZy9kb2NzL21lc3NhZ2VzL2dldC1pbml0aWFsLXByb3BzLWFzLWFuLWluc3RhbmNlLW1ldGhvZCBmb3IgbW9yZSBpbmZvcm1hdGlvbi5gXG4gICAgICB0aHJvdyBuZXcgRXJyb3IobWVzc2FnZSlcbiAgICB9XG4gIH1cbiAgLy8gd2hlbiBjYWxsZWQgZnJvbSBfYXBwIGBjdHhgIGlzIG5lc3RlZCBpbiBgY3R4YFxuICBjb25zdCByZXMgPSBjdHgucmVzIHx8IChjdHguY3R4ICYmIGN0eC5jdHgucmVzKVxuXG4gIGlmICghQXBwLmdldEluaXRpYWxQcm9wcykge1xuICAgIGlmIChjdHguY3R4ICYmIGN0eC5Db21wb25lbnQpIHtcbiAgICAgIC8vIEB0cy1pZ25vcmUgcGFnZVByb3BzIGRlZmF1bHRcbiAgICAgIHJldHVybiB7XG4gICAgICAgIHBhZ2VQcm9wczogYXdhaXQgbG9hZEdldEluaXRpYWxQcm9wcyhjdHguQ29tcG9uZW50LCBjdHguY3R4KSxcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHt9IGFzIElQXG4gIH1cblxuICBjb25zdCBwcm9wcyA9IGF3YWl0IEFwcC5nZXRJbml0aWFsUHJvcHMoY3R4KVxuXG4gIGlmIChyZXMgJiYgaXNSZXNTZW50KHJlcykpIHtcbiAgICByZXR1cm4gcHJvcHNcbiAgfVxuXG4gIGlmICghcHJvcHMpIHtcbiAgICBjb25zdCBtZXNzYWdlID0gYFwiJHtnZXREaXNwbGF5TmFtZShcbiAgICAgIEFwcFxuICAgICl9LmdldEluaXRpYWxQcm9wcygpXCIgc2hvdWxkIHJlc29sdmUgdG8gYW4gb2JqZWN0LiBCdXQgZm91bmQgXCIke3Byb3BzfVwiIGluc3RlYWQuYFxuICAgIHRocm93IG5ldyBFcnJvcihtZXNzYWdlKVxuICB9XG5cbiAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpIHtcbiAgICBpZiAoT2JqZWN0LmtleXMocHJvcHMpLmxlbmd0aCA9PT0gMCAmJiAhY3R4LmN0eCkge1xuICAgICAgY29uc29sZS53YXJuKFxuICAgICAgICBgJHtnZXREaXNwbGF5TmFtZShcbiAgICAgICAgICBBcHBcbiAgICAgICAgKX0gcmV0dXJuZWQgYW4gZW1wdHkgb2JqZWN0IGZyb20gXFxgZ2V0SW5pdGlhbFByb3BzXFxgLiBUaGlzIGRlLW9wdGltaXplcyBhbmQgcHJldmVudHMgYXV0b21hdGljIHN0YXRpYyBvcHRpbWl6YXRpb24uIGh0dHBzOi8vbmV4dGpzLm9yZy9kb2NzL21lc3NhZ2VzL2VtcHR5LW9iamVjdC1nZXRJbml0aWFsUHJvcHNgXG4gICAgICApXG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHByb3BzXG59XG5cbmV4cG9ydCBjb25zdCBTUCA9IHR5cGVvZiBwZXJmb3JtYW5jZSAhPT0gJ3VuZGVmaW5lZCdcbmV4cG9ydCBjb25zdCBTVCA9XG4gIFNQICYmXG4gIChbJ21hcmsnLCAnbWVhc3VyZScsICdnZXRFbnRyaWVzQnlOYW1lJ10gYXMgY29uc3QpLmV2ZXJ5KFxuICAgIChtZXRob2QpID0+IHR5cGVvZiBwZXJmb3JtYW5jZVttZXRob2RdID09PSAnZnVuY3Rpb24nXG4gIClcblxuZXhwb3J0IGNsYXNzIERlY29kZUVycm9yIGV4dGVuZHMgRXJyb3Ige31cbmV4cG9ydCBjbGFzcyBOb3JtYWxpemVFcnJvciBleHRlbmRzIEVycm9yIHt9XG5leHBvcnQgY2xhc3MgUGFnZU5vdEZvdW5kRXJyb3IgZXh0ZW5kcyBFcnJvciB7XG4gIGNvZGU6IHN0cmluZ1xuXG4gIGNvbnN0cnVjdG9yKHBhZ2U6IHN0cmluZykge1xuICAgIHN1cGVyKClcbiAgICB0aGlzLmNvZGUgPSAnRU5PRU5UJ1xuICAgIHRoaXMubmFtZSA9ICdQYWdlTm90Rm91bmRFcnJvcidcbiAgICB0aGlzLm1lc3NhZ2UgPSBgQ2Fubm90IGZpbmQgbW9kdWxlIGZvciBwYWdlOiAke3BhZ2V9YFxuICB9XG59XG5cbmV4cG9ydCBjbGFzcyBNaXNzaW5nU3RhdGljUGFnZSBleHRlbmRzIEVycm9yIHtcbiAgY29uc3RydWN0b3IocGFnZTogc3RyaW5nLCBtZXNzYWdlOiBzdHJpbmcpIHtcbiAgICBzdXBlcigpXG4gICAgdGhpcy5tZXNzYWdlID0gYEZhaWxlZCB0byBsb2FkIHN0YXRpYyBmaWxlIGZvciBwYWdlOiAke3BhZ2V9ICR7bWVzc2FnZX1gXG4gIH1cbn1cblxuZXhwb3J0IGNsYXNzIE1pZGRsZXdhcmVOb3RGb3VuZEVycm9yIGV4dGVuZHMgRXJyb3Ige1xuICBjb2RlOiBzdHJpbmdcbiAgY29uc3RydWN0b3IoKSB7XG4gICAgc3VwZXIoKVxuICAgIHRoaXMuY29kZSA9ICdFTk9FTlQnXG4gICAgdGhpcy5tZXNzYWdlID0gYENhbm5vdCBmaW5kIHRoZSBtaWRkbGV3YXJlIG1vZHVsZWBcbiAgfVxufVxuXG5leHBvcnQgaW50ZXJmYWNlIENhY2hlRnMge1xuICBleGlzdHNTeW5jOiB0eXBlb2YgZnMuZXhpc3RzU3luY1xuICByZWFkRmlsZTogdHlwZW9mIGZzLnByb21pc2VzLnJlYWRGaWxlXG4gIHJlYWRGaWxlU3luYzogdHlwZW9mIGZzLnJlYWRGaWxlU3luY1xuICB3cml0ZUZpbGUoZjogc3RyaW5nLCBkOiBhbnkpOiBQcm9taXNlPHZvaWQ+XG4gIG1rZGlyKGRpcjogc3RyaW5nKTogUHJvbWlzZTx2b2lkIHwgc3RyaW5nPlxuICBzdGF0KGY6IHN0cmluZyk6IFByb21pc2U8eyBtdGltZTogRGF0ZSB9PlxufVxuXG5leHBvcnQgZnVuY3Rpb24gc3RyaW5naWZ5RXJyb3IoZXJyb3I6IEVycm9yKSB7XG4gIHJldHVybiBKU09OLnN0cmluZ2lmeSh7IG1lc3NhZ2U6IGVycm9yLm1lc3NhZ2UsIHN0YWNrOiBlcnJvci5zdGFjayB9KVxufVxuIl0sIm5hbWVzIjpbIkRlY29kZUVycm9yIiwiTWlkZGxld2FyZU5vdEZvdW5kRXJyb3IiLCJNaXNzaW5nU3RhdGljUGFnZSIsIk5vcm1hbGl6ZUVycm9yIiwiUGFnZU5vdEZvdW5kRXJyb3IiLCJTUCIsIlNUIiwiV0VCX1ZJVEFMUyIsImV4ZWNPbmNlIiwiZ2V0RGlzcGxheU5hbWUiLCJnZXRMb2NhdGlvbk9yaWdpbiIsImdldFVSTCIsImlzQWJzb2x1dGVVcmwiLCJpc1Jlc1NlbnQiLCJsb2FkR2V0SW5pdGlhbFByb3BzIiwibm9ybWFsaXplUmVwZWF0ZWRTbGFzaGVzIiwic3RyaW5naWZ5RXJyb3IiLCJmbiIsInVzZWQiLCJyZXN1bHQiLCJhcmdzIiwiQUJTT0xVVEVfVVJMX1JFR0VYIiwidXJsIiwidGVzdCIsInByb3RvY29sIiwiaG9zdG5hbWUiLCJwb3J0Iiwid2luZG93IiwibG9jYXRpb24iLCJocmVmIiwib3JpZ2luIiwic3Vic3RyaW5nIiwibGVuZ3RoIiwiQ29tcG9uZW50IiwiZGlzcGxheU5hbWUiLCJuYW1lIiwicmVzIiwiZmluaXNoZWQiLCJoZWFkZXJzU2VudCIsInVybFBhcnRzIiwic3BsaXQiLCJ1cmxOb1F1ZXJ5IiwicmVwbGFjZSIsInNsaWNlIiwiam9pbiIsIkFwcCIsImN0eCIsInByb2Nlc3MiLCJlbnYiLCJOT0RFX0VOViIsInByb3RvdHlwZSIsImdldEluaXRpYWxQcm9wcyIsIm1lc3NhZ2UiLCJFcnJvciIsInBhZ2VQcm9wcyIsInByb3BzIiwiT2JqZWN0Iiwia2V5cyIsImNvbnNvbGUiLCJ3YXJuIiwicGVyZm9ybWFuY2UiLCJldmVyeSIsIm1ldGhvZCIsImNvbnN0cnVjdG9yIiwicGFnZSIsImNvZGUiLCJlcnJvciIsIkpTT04iLCJzdHJpbmdpZnkiLCJzdGFjayJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(pages-dir-node)/./node_modules/next/dist/shared/lib/utils.js\n"); - -/***/ }), - -/***/ "(pages-dir-node)/./node_modules/next/dist/shared/lib/utils/error-once.js": -/*!***************************************************************!*\ - !*** ./node_modules/next/dist/shared/lib/utils/error-once.js ***! - \***************************************************************/ -/***/ ((__unused_webpack_module, exports) => { - -"use strict"; -eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"errorOnce\", ({\n enumerable: true,\n get: function() {\n return errorOnce;\n }\n}));\nlet errorOnce = (_)=>{};\nif (true) {\n const errors = new Set();\n errorOnce = (msg)=>{\n if (!errors.has(msg)) {\n console.error(msg);\n }\n errors.add(msg);\n };\n} //# sourceMappingURL=error-once.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1ub2RlKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3Qvc2hhcmVkL2xpYi91dGlscy9lcnJvci1vbmNlLmpzIiwibWFwcGluZ3MiOiI7Ozs7NkNBV1NBOzs7ZUFBQUE7OztBQVhULElBQUlBLFlBQVksQ0FBQ0MsS0FBZTtBQUNoQyxJQUFJQyxJQUFvQixFQUFtQjtJQUN6QyxNQUFNRyxTQUFTLElBQUlDO0lBQ25CTixZQUFZLENBQUNPO1FBQ1gsSUFBSSxDQUFDRixPQUFPRyxHQUFHLENBQUNELE1BQU07WUFDcEJFLFFBQVFDLEtBQUssQ0FBQ0g7UUFDaEI7UUFDQUYsT0FBT00sR0FBRyxDQUFDSjtJQUNiO0FBQ0YiLCJzb3VyY2VzIjpbIkQ6XFxzcmNcXHNoYXJlZFxcbGliXFx1dGlsc1xcZXJyb3Itb25jZS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJsZXQgZXJyb3JPbmNlID0gKF86IHN0cmluZykgPT4ge31cbmlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSB7XG4gIGNvbnN0IGVycm9ycyA9IG5ldyBTZXQ8c3RyaW5nPigpXG4gIGVycm9yT25jZSA9IChtc2c6IHN0cmluZykgPT4ge1xuICAgIGlmICghZXJyb3JzLmhhcyhtc2cpKSB7XG4gICAgICBjb25zb2xlLmVycm9yKG1zZylcbiAgICB9XG4gICAgZXJyb3JzLmFkZChtc2cpXG4gIH1cbn1cblxuZXhwb3J0IHsgZXJyb3JPbmNlIH1cbiJdLCJuYW1lcyI6WyJlcnJvck9uY2UiLCJfIiwicHJvY2VzcyIsImVudiIsIk5PREVfRU5WIiwiZXJyb3JzIiwiU2V0IiwibXNnIiwiaGFzIiwiY29uc29sZSIsImVycm9yIiwiYWRkIl0sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(pages-dir-node)/./node_modules/next/dist/shared/lib/utils/error-once.js\n"); - -/***/ }), - -/***/ "(pages-dir-node)/./node_modules/next/dist/shared/lib/utils/warn-once.js": -/*!**************************************************************!*\ - !*** ./node_modules/next/dist/shared/lib/utils/warn-once.js ***! - \**************************************************************/ -/***/ ((__unused_webpack_module, exports) => { - -"use strict"; -eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"warnOnce\", ({\n enumerable: true,\n get: function() {\n return warnOnce;\n }\n}));\nlet warnOnce = (_)=>{};\nif (true) {\n const warnings = new Set();\n warnOnce = (msg)=>{\n if (!warnings.has(msg)) {\n console.warn(msg);\n }\n warnings.add(msg);\n };\n} //# sourceMappingURL=warn-once.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1ub2RlKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3Qvc2hhcmVkL2xpYi91dGlscy93YXJuLW9uY2UuanMiLCJtYXBwaW5ncyI6Ijs7Ozs0Q0FXU0E7OztlQUFBQTs7O0FBWFQsSUFBSUEsV0FBVyxDQUFDQyxLQUFlO0FBQy9CLElBQUlDLElBQW9CLEVBQW1CO0lBQ3pDLE1BQU1HLFdBQVcsSUFBSUM7SUFDckJOLFdBQVcsQ0FBQ087UUFDVixJQUFJLENBQUNGLFNBQVNHLEdBQUcsQ0FBQ0QsTUFBTTtZQUN0QkUsUUFBUUMsSUFBSSxDQUFDSDtRQUNmO1FBQ0FGLFNBQVNNLEdBQUcsQ0FBQ0o7SUFDZjtBQUNGIiwic291cmNlcyI6WyJEOlxcc3JjXFxzaGFyZWRcXGxpYlxcdXRpbHNcXHdhcm4tb25jZS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJsZXQgd2Fybk9uY2UgPSAoXzogc3RyaW5nKSA9PiB7fVxuaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpIHtcbiAgY29uc3Qgd2FybmluZ3MgPSBuZXcgU2V0PHN0cmluZz4oKVxuICB3YXJuT25jZSA9IChtc2c6IHN0cmluZykgPT4ge1xuICAgIGlmICghd2FybmluZ3MuaGFzKG1zZykpIHtcbiAgICAgIGNvbnNvbGUud2Fybihtc2cpXG4gICAgfVxuICAgIHdhcm5pbmdzLmFkZChtc2cpXG4gIH1cbn1cblxuZXhwb3J0IHsgd2Fybk9uY2UgfVxuIl0sIm5hbWVzIjpbIndhcm5PbmNlIiwiXyIsInByb2Nlc3MiLCJlbnYiLCJOT0RFX0VOViIsIndhcm5pbmdzIiwiU2V0IiwibXNnIiwiaGFzIiwiY29uc29sZSIsIndhcm4iLCJhZGQiXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(pages-dir-node)/./node_modules/next/dist/shared/lib/utils/warn-once.js\n"); - -/***/ }), - -/***/ "(pages-dir-node)/./node_modules/next/link.js": -/*!***********************************!*\ - !*** ./node_modules/next/link.js ***! - \***********************************/ -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { - -eval("module.exports = __webpack_require__(/*! ./dist/client/link */ \"(pages-dir-node)/./node_modules/next/dist/client/link.js\")\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1ub2RlKS8uL25vZGVfbW9kdWxlcy9uZXh0L2xpbmsuanMiLCJtYXBwaW5ncyI6IkFBQUEsMEhBQThDIiwic291cmNlcyI6WyJEOlxcZG9uZ3l1bi1wcm9qZWN0c1xcdHdvXFxub2RlX21vZHVsZXNcXG5leHRcXGxpbmsuanMiXSwic291cmNlc0NvbnRlbnQiOlsibW9kdWxlLmV4cG9ydHMgPSByZXF1aXJlKCcuL2Rpc3QvY2xpZW50L2xpbmsnKVxuIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(pages-dir-node)/./node_modules/next/link.js\n"); - -/***/ }) - -}; -; \ No newline at end of file diff --git a/build/server/webpack-runtime.js b/build/server/webpack-runtime.js deleted file mode 100644 index 965887f..0000000 --- a/build/server/webpack-runtime.js +++ /dev/null @@ -1,162 +0,0 @@ -/******/ (() => { // webpackBootstrap -/******/ "use strict"; -/******/ var __webpack_modules__ = ({}); -/************************************************************************/ -/******/ // The module cache -/******/ var __webpack_module_cache__ = {}; -/******/ -/******/ // The require function -/******/ function __webpack_require__(moduleId) { -/******/ // Check if module is in cache -/******/ var cachedModule = __webpack_module_cache__[moduleId]; -/******/ if (cachedModule !== undefined) { -/******/ return cachedModule.exports; -/******/ } -/******/ // Create a new module (and put it into the cache) -/******/ var module = __webpack_module_cache__[moduleId] = { -/******/ // no module.id needed -/******/ // no module.loaded needed -/******/ exports: {} -/******/ }; -/******/ -/******/ // Execute the module function -/******/ var threw = true; -/******/ try { -/******/ __webpack_modules__[moduleId](module, module.exports, __webpack_require__); -/******/ threw = false; -/******/ } finally { -/******/ if(threw) delete __webpack_module_cache__[moduleId]; -/******/ } -/******/ -/******/ // Return the exports of the module -/******/ return module.exports; -/******/ } -/******/ -/******/ // expose the modules object (__webpack_modules__) -/******/ __webpack_require__.m = __webpack_modules__; -/******/ -/************************************************************************/ -/******/ /* webpack/runtime/compat get default export */ -/******/ (() => { -/******/ // getDefaultExport function for compatibility with non-harmony modules -/******/ __webpack_require__.n = (module) => { -/******/ var getter = module && module.__esModule ? -/******/ () => (module['default']) : -/******/ () => (module); -/******/ __webpack_require__.d(getter, { a: getter }); -/******/ return getter; -/******/ }; -/******/ })(); -/******/ -/******/ /* webpack/runtime/define property getters */ -/******/ (() => { -/******/ // define getter functions for harmony exports -/******/ __webpack_require__.d = (exports, definition) => { -/******/ for(var key in definition) { -/******/ if(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) { -/******/ Object.defineProperty(exports, key, { enumerable: true, get: definition[key] }); -/******/ } -/******/ } -/******/ }; -/******/ })(); -/******/ -/******/ /* webpack/runtime/ensure chunk */ -/******/ (() => { -/******/ __webpack_require__.f = {}; -/******/ // This file contains only the entry chunk. -/******/ // The chunk loading function for additional chunks -/******/ __webpack_require__.e = (chunkId) => { -/******/ return Promise.all(Object.keys(__webpack_require__.f).reduce((promises, key) => { -/******/ __webpack_require__.f[key](chunkId, promises); -/******/ return promises; -/******/ }, [])); -/******/ }; -/******/ })(); -/******/ -/******/ /* webpack/runtime/get javascript chunk filename */ -/******/ (() => { -/******/ // This function allow to reference async chunks and sibling chunks for the entrypoint -/******/ __webpack_require__.u = (chunkId) => { -/******/ // return url for filenames based on template -/******/ return "" + chunkId + ".js"; -/******/ }; -/******/ })(); -/******/ -/******/ /* webpack/runtime/hasOwnProperty shorthand */ -/******/ (() => { -/******/ __webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop)) -/******/ })(); -/******/ -/******/ /* webpack/runtime/make namespace object */ -/******/ (() => { -/******/ // define __esModule on exports -/******/ __webpack_require__.r = (exports) => { -/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { -/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); -/******/ } -/******/ Object.defineProperty(exports, '__esModule', { value: true }); -/******/ }; -/******/ })(); -/******/ -/******/ /* webpack/runtime/startup entrypoint */ -/******/ (() => { -/******/ __webpack_require__.X = (result, chunkIds, fn) => { -/******/ // arguments: chunkIds, moduleId are deprecated -/******/ var moduleId = chunkIds; -/******/ if(!fn) chunkIds = result, fn = () => (__webpack_require__(__webpack_require__.s = moduleId)); -/******/ chunkIds.map(__webpack_require__.e, __webpack_require__) -/******/ var r = fn(); -/******/ return r === undefined ? result : r; -/******/ } -/******/ })(); -/******/ -/******/ /* webpack/runtime/require chunk loading */ -/******/ (() => { -/******/ // no baseURI -/******/ -/******/ // object to store loaded chunks -/******/ // "1" means "loaded", otherwise not loaded yet -/******/ var installedChunks = { -/******/ "webpack-runtime": 1 -/******/ }; -/******/ -/******/ // no on chunks loaded -/******/ -/******/ var installChunk = (chunk) => { -/******/ var moreModules = chunk.modules, chunkIds = chunk.ids, runtime = chunk.runtime; -/******/ for(var moduleId in moreModules) { -/******/ if(__webpack_require__.o(moreModules, moduleId)) { -/******/ __webpack_require__.m[moduleId] = moreModules[moduleId]; -/******/ } -/******/ } -/******/ if(runtime) runtime(__webpack_require__); -/******/ for(var i = 0; i < chunkIds.length; i++) -/******/ installedChunks[chunkIds[i]] = 1; -/******/ -/******/ }; -/******/ -/******/ // require() chunk loading for javascript -/******/ __webpack_require__.f.require = (chunkId, promises) => { -/******/ // "1" is the signal for "already loaded" -/******/ if(!installedChunks[chunkId]) { -/******/ if("webpack-runtime" != chunkId) { -/******/ installChunk(require("./" + __webpack_require__.u(chunkId))); -/******/ } else installedChunks[chunkId] = 1; -/******/ } -/******/ }; -/******/ -/******/ module.exports = __webpack_require__; -/******/ __webpack_require__.C = installChunk; -/******/ -/******/ // no HMR -/******/ -/******/ // no HMR manifest -/******/ })(); -/******/ -/************************************************************************/ -/******/ -/******/ -/******/ })() - -//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJpZ25vcmVMaXN0IjpbMF0sIm1hcHBpbmdzIjoiQUFBQSIsInNvdXJjZXMiOlsid2VicGFjay1pbnRlcm5hbDovL25leHRqcy93ZWJwYWNrLXJ1bnRpbWUuanMiXSwic291cmNlc0NvbnRlbnQiOlsiLy8gVGhpcyBzb3VyY2Ugd2FzIGdlbmVyYXRlZCBieSBOZXh0LmpzIGJhc2VkIG9mZiBvZiB0aGUgZ2VuZXJhdGVkIFdlYnBhY2sgcnVudGltZS5cbi8vIFRoZSBtYXBwaW5ncyBhcmUgaW5jb3JyZWN0LlxuLy8gVG8gZ2V0IHRoZSBjb3JyZWN0IGxpbmUvY29sdW1uIG1hcHBpbmdzLCB0dXJuIG9mZiBzb3VyY2VtYXBzIGluIHlvdXIgZGVidWdnZXIuXG5cbi8qKioqKiovICgoKSA9PiB7IC8vIHdlYnBhY2tCb290c3RyYXBcbi8qKioqKiovIFx0XCJ1c2Ugc3RyaWN0XCI7XG4vKioqKioqLyBcdHZhciBfX3dlYnBhY2tfbW9kdWxlc19fID0gKHt9KTtcbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKioqKioqLyBcdC8vIFRoZSBtb2R1bGUgY2FjaGVcbi8qKioqKiovIFx0dmFyIF9fd2VicGFja19tb2R1bGVfY2FjaGVfXyA9IHt9O1xuLyoqKioqKi8gXHRcbi8qKioqKiovIFx0Ly8gVGhlIHJlcXVpcmUgZnVuY3Rpb25cbi8qKioqKiovIFx0ZnVuY3Rpb24gX193ZWJwYWNrX3JlcXVpcmVfXyhtb2R1bGVJZCkge1xuLyoqKioqKi8gXHRcdC8vIENoZWNrIGlmIG1vZHVsZSBpcyBpbiBjYWNoZVxuLyoqKioqKi8gXHRcdHZhciBjYWNoZWRNb2R1bGUgPSBfX3dlYnBhY2tfbW9kdWxlX2NhY2hlX19bbW9kdWxlSWRdO1xuLyoqKioqKi8gXHRcdGlmIChjYWNoZWRNb2R1bGUgIT09IHVuZGVmaW5lZCkge1xuLyoqKioqKi8gXHRcdFx0cmV0dXJuIGNhY2hlZE1vZHVsZS5leHBvcnRzO1xuLyoqKioqKi8gXHRcdH1cbi8qKioqKiovIFx0XHQvLyBDcmVhdGUgYSBuZXcgbW9kdWxlIChhbmQgcHV0IGl0IGludG8gdGhlIGNhY2hlKVxuLyoqKioqKi8gXHRcdHZhciBtb2R1bGUgPSBfX3dlYnBhY2tfbW9kdWxlX2NhY2hlX19bbW9kdWxlSWRdID0ge1xuLyoqKioqKi8gXHRcdFx0Ly8gbm8gbW9kdWxlLmlkIG5lZWRlZFxuLyoqKioqKi8gXHRcdFx0Ly8gbm8gbW9kdWxlLmxvYWRlZCBuZWVkZWRcbi8qKioqKiovIFx0XHRcdGV4cG9ydHM6IHt9XG4vKioqKioqLyBcdFx0fTtcbi8qKioqKiovIFx0XG4vKioqKioqLyBcdFx0Ly8gRXhlY3V0ZSB0aGUgbW9kdWxlIGZ1bmN0aW9uXG4vKioqKioqLyBcdFx0dmFyIHRocmV3ID0gdHJ1ZTtcbi8qKioqKiovIFx0XHR0cnkge1xuLyoqKioqKi8gXHRcdFx0X193ZWJwYWNrX21vZHVsZXNfX1ttb2R1bGVJZF0obW9kdWxlLCBtb2R1bGUuZXhwb3J0cywgX193ZWJwYWNrX3JlcXVpcmVfXyk7XG4vKioqKioqLyBcdFx0XHR0aHJldyA9IGZhbHNlO1xuLyoqKioqKi8gXHRcdH0gZmluYWxseSB7XG4vKioqKioqLyBcdFx0XHRpZih0aHJldykgZGVsZXRlIF9fd2VicGFja19tb2R1bGVfY2FjaGVfX1ttb2R1bGVJZF07XG4vKioqKioqLyBcdFx0fVxuLyoqKioqKi8gXHRcbi8qKioqKiovIFx0XHQvLyBSZXR1cm4gdGhlIGV4cG9ydHMgb2YgdGhlIG1vZHVsZVxuLyoqKioqKi8gXHRcdHJldHVybiBtb2R1bGUuZXhwb3J0cztcbi8qKioqKiovIFx0fVxuLyoqKioqKi8gXHRcbi8qKioqKiovIFx0Ly8gZXhwb3NlIHRoZSBtb2R1bGVzIG9iamVjdCAoX193ZWJwYWNrX21vZHVsZXNfXylcbi8qKioqKiovIFx0X193ZWJwYWNrX3JlcXVpcmVfXy5tID0gX193ZWJwYWNrX21vZHVsZXNfXztcbi8qKioqKiovIFx0XG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyoqKioqKi8gXHQvKiB3ZWJwYWNrL3J1bnRpbWUvY29tcGF0IGdldCBkZWZhdWx0IGV4cG9ydCAqL1xuLyoqKioqKi8gXHQoKCkgPT4ge1xuLyoqKioqKi8gXHRcdC8vIGdldERlZmF1bHRFeHBvcnQgZnVuY3Rpb24gZm9yIGNvbXBhdGliaWxpdHkgd2l0aCBub24taGFybW9ueSBtb2R1bGVzXG4vKioqKioqLyBcdFx0X193ZWJwYWNrX3JlcXVpcmVfXy5uID0gKG1vZHVsZSkgPT4ge1xuLyoqKioqKi8gXHRcdFx0dmFyIGdldHRlciA9IG1vZHVsZSAmJiBtb2R1bGUuX19lc01vZHVsZSA/XG4vKioqKioqLyBcdFx0XHRcdCgpID0+IChtb2R1bGVbJ2RlZmF1bHQnXSkgOlxuLyoqKioqKi8gXHRcdFx0XHQoKSA9PiAobW9kdWxlKTtcbi8qKioqKiovIFx0XHRcdF9fd2VicGFja19yZXF1aXJlX18uZChnZXR0ZXIsIHsgYTogZ2V0dGVyIH0pO1xuLyoqKioqKi8gXHRcdFx0cmV0dXJuIGdldHRlcjtcbi8qKioqKiovIFx0XHR9O1xuLyoqKioqKi8gXHR9KSgpO1xuLyoqKioqKi8gXHRcbi8qKioqKiovIFx0Lyogd2VicGFjay9ydW50aW1lL2RlZmluZSBwcm9wZXJ0eSBnZXR0ZXJzICovXG4vKioqKioqLyBcdCgoKSA9PiB7XG4vKioqKioqLyBcdFx0Ly8gZGVmaW5lIGdldHRlciBmdW5jdGlvbnMgZm9yIGhhcm1vbnkgZXhwb3J0c1xuLyoqKioqKi8gXHRcdF9fd2VicGFja19yZXF1aXJlX18uZCA9IChleHBvcnRzLCBkZWZpbml0aW9uKSA9PiB7XG4vKioqKioqLyBcdFx0XHRmb3IodmFyIGtleSBpbiBkZWZpbml0aW9uKSB7XG4vKioqKioqLyBcdFx0XHRcdGlmKF9fd2VicGFja19yZXF1aXJlX18ubyhkZWZpbml0aW9uLCBrZXkpICYmICFfX3dlYnBhY2tfcmVxdWlyZV9fLm8oZXhwb3J0cywga2V5KSkge1xuLyoqKioqKi8gXHRcdFx0XHRcdE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBrZXksIHsgZW51bWVyYWJsZTogdHJ1ZSwgZ2V0OiBkZWZpbml0aW9uW2tleV0gfSk7XG4vKioqKioqLyBcdFx0XHRcdH1cbi8qKioqKiovIFx0XHRcdH1cbi8qKioqKiovIFx0XHR9O1xuLyoqKioqKi8gXHR9KSgpO1xuLyoqKioqKi8gXHRcbi8qKioqKiovIFx0Lyogd2VicGFjay9ydW50aW1lL2Vuc3VyZSBjaHVuayAqL1xuLyoqKioqKi8gXHQoKCkgPT4ge1xuLyoqKioqKi8gXHRcdF9fd2VicGFja19yZXF1aXJlX18uZiA9IHt9O1xuLyoqKioqKi8gXHRcdC8vIFRoaXMgZmlsZSBjb250YWlucyBvbmx5IHRoZSBlbnRyeSBjaHVuay5cbi8qKioqKiovIFx0XHQvLyBUaGUgY2h1bmsgbG9hZGluZyBmdW5jdGlvbiBmb3IgYWRkaXRpb25hbCBjaHVua3Ncbi8qKioqKiovIFx0XHRfX3dlYnBhY2tfcmVxdWlyZV9fLmUgPSAoY2h1bmtJZCkgPT4ge1xuLyoqKioqKi8gXHRcdFx0cmV0dXJuIFByb21pc2UuYWxsKE9iamVjdC5rZXlzKF9fd2VicGFja19yZXF1aXJlX18uZikucmVkdWNlKChwcm9taXNlcywga2V5KSA9PiB7XG4vKioqKioqLyBcdFx0XHRcdF9fd2VicGFja19yZXF1aXJlX18uZltrZXldKGNodW5rSWQsIHByb21pc2VzKTtcbi8qKioqKiovIFx0XHRcdFx0cmV0dXJuIHByb21pc2VzO1xuLyoqKioqKi8gXHRcdFx0fSwgW10pKTtcbi8qKioqKiovIFx0XHR9O1xuLyoqKioqKi8gXHR9KSgpO1xuLyoqKioqKi8gXHRcbi8qKioqKiovIFx0Lyogd2VicGFjay9ydW50aW1lL2dldCBqYXZhc2NyaXB0IGNodW5rIGZpbGVuYW1lICovXG4vKioqKioqLyBcdCgoKSA9PiB7XG4vKioqKioqLyBcdFx0Ly8gVGhpcyBmdW5jdGlvbiBhbGxvdyB0byByZWZlcmVuY2UgYXN5bmMgY2h1bmtzIGFuZCBzaWJsaW5nIGNodW5rcyBmb3IgdGhlIGVudHJ5cG9pbnRcbi8qKioqKiovIFx0XHRfX3dlYnBhY2tfcmVxdWlyZV9fLnUgPSAoY2h1bmtJZCkgPT4ge1xuLyoqKioqKi8gXHRcdFx0Ly8gcmV0dXJuIHVybCBmb3IgZmlsZW5hbWVzIGJhc2VkIG9uIHRlbXBsYXRlXG4vKioqKioqLyBcdFx0XHRyZXR1cm4gXCJcIiArIGNodW5rSWQgKyBcIi5qc1wiO1xuLyoqKioqKi8gXHRcdH07XG4vKioqKioqLyBcdH0pKCk7XG4vKioqKioqLyBcdFxuLyoqKioqKi8gXHQvKiB3ZWJwYWNrL3J1bnRpbWUvaGFzT3duUHJvcGVydHkgc2hvcnRoYW5kICovXG4vKioqKioqLyBcdCgoKSA9PiB7XG4vKioqKioqLyBcdFx0X193ZWJwYWNrX3JlcXVpcmVfXy5vID0gKG9iaiwgcHJvcCkgPT4gKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChvYmosIHByb3ApKVxuLyoqKioqKi8gXHR9KSgpO1xuLyoqKioqKi8gXHRcbi8qKioqKiovIFx0Lyogd2VicGFjay9ydW50aW1lL21ha2UgbmFtZXNwYWNlIG9iamVjdCAqL1xuLyoqKioqKi8gXHQoKCkgPT4ge1xuLyoqKioqKi8gXHRcdC8vIGRlZmluZSBfX2VzTW9kdWxlIG9uIGV4cG9ydHNcbi8qKioqKiovIFx0XHRfX3dlYnBhY2tfcmVxdWlyZV9fLnIgPSAoZXhwb3J0cykgPT4ge1xuLyoqKioqKi8gXHRcdFx0aWYodHlwZW9mIFN5bWJvbCAhPT0gJ3VuZGVmaW5lZCcgJiYgU3ltYm9sLnRvU3RyaW5nVGFnKSB7XG4vKioqKioqLyBcdFx0XHRcdE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBTeW1ib2wudG9TdHJpbmdUYWcsIHsgdmFsdWU6ICdNb2R1bGUnIH0pO1xuLyoqKioqKi8gXHRcdFx0fVxuLyoqKioqKi8gXHRcdFx0T2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsICdfX2VzTW9kdWxlJywgeyB2YWx1ZTogdHJ1ZSB9KTtcbi8qKioqKiovIFx0XHR9O1xuLyoqKioqKi8gXHR9KSgpO1xuLyoqKioqKi8gXHRcbi8qKioqKiovIFx0Lyogd2VicGFjay9ydW50aW1lL3N0YXJ0dXAgZW50cnlwb2ludCAqL1xuLyoqKioqKi8gXHQoKCkgPT4ge1xuLyoqKioqKi8gXHRcdF9fd2VicGFja19yZXF1aXJlX18uWCA9IChyZXN1bHQsIGNodW5rSWRzLCBmbikgPT4ge1xuLyoqKioqKi8gXHRcdFx0Ly8gYXJndW1lbnRzOiBjaHVua0lkcywgbW9kdWxlSWQgYXJlIGRlcHJlY2F0ZWRcbi8qKioqKiovIFx0XHRcdHZhciBtb2R1bGVJZCA9IGNodW5rSWRzO1xuLyoqKioqKi8gXHRcdFx0aWYoIWZuKSBjaHVua0lkcyA9IHJlc3VsdCwgZm4gPSAoKSA9PiAoX193ZWJwYWNrX3JlcXVpcmVfXyhfX3dlYnBhY2tfcmVxdWlyZV9fLnMgPSBtb2R1bGVJZCkpO1xuLyoqKioqKi8gXHRcdFx0Y2h1bmtJZHMubWFwKF9fd2VicGFja19yZXF1aXJlX18uZSwgX193ZWJwYWNrX3JlcXVpcmVfXylcbi8qKioqKiovIFx0XHRcdHZhciByID0gZm4oKTtcbi8qKioqKiovIFx0XHRcdHJldHVybiByID09PSB1bmRlZmluZWQgPyByZXN1bHQgOiByO1xuLyoqKioqKi8gXHRcdH1cbi8qKioqKiovIFx0fSkoKTtcbi8qKioqKiovIFx0XG4vKioqKioqLyBcdC8qIHdlYnBhY2svcnVudGltZS9yZXF1aXJlIGNodW5rIGxvYWRpbmcgKi9cbi8qKioqKiovIFx0KCgpID0+IHtcbi8qKioqKiovIFx0XHQvLyBubyBiYXNlVVJJXG4vKioqKioqLyBcdFx0XG4vKioqKioqLyBcdFx0Ly8gb2JqZWN0IHRvIHN0b3JlIGxvYWRlZCBjaHVua3Ncbi8qKioqKiovIFx0XHQvLyBcIjFcIiBtZWFucyBcImxvYWRlZFwiLCBvdGhlcndpc2Ugbm90IGxvYWRlZCB5ZXRcbi8qKioqKiovIFx0XHR2YXIgaW5zdGFsbGVkQ2h1bmtzID0ge1xuLyoqKioqKi8gXHRcdFx0XCJ3ZWJwYWNrLXJ1bnRpbWVcIjogMVxuLyoqKioqKi8gXHRcdH07XG4vKioqKioqLyBcdFx0XG4vKioqKioqLyBcdFx0Ly8gbm8gb24gY2h1bmtzIGxvYWRlZFxuLyoqKioqKi8gXHRcdFxuLyoqKioqKi8gXHRcdHZhciBpbnN0YWxsQ2h1bmsgPSAoY2h1bmspID0+IHtcbi8qKioqKiovIFx0XHRcdHZhciBtb3JlTW9kdWxlcyA9IGNodW5rLm1vZHVsZXMsIGNodW5rSWRzID0gY2h1bmsuaWRzLCBydW50aW1lID0gY2h1bmsucnVudGltZTtcbi8qKioqKiovIFx0XHRcdGZvcih2YXIgbW9kdWxlSWQgaW4gbW9yZU1vZHVsZXMpIHtcbi8qKioqKiovIFx0XHRcdFx0aWYoX193ZWJwYWNrX3JlcXVpcmVfXy5vKG1vcmVNb2R1bGVzLCBtb2R1bGVJZCkpIHtcbi8qKioqKiovIFx0XHRcdFx0XHRfX3dlYnBhY2tfcmVxdWlyZV9fLm1bbW9kdWxlSWRdID0gbW9yZU1vZHVsZXNbbW9kdWxlSWRdO1xuLyoqKioqKi8gXHRcdFx0XHR9XG4vKioqKioqLyBcdFx0XHR9XG4vKioqKioqLyBcdFx0XHRpZihydW50aW1lKSBydW50aW1lKF9fd2VicGFja19yZXF1aXJlX18pO1xuLyoqKioqKi8gXHRcdFx0Zm9yKHZhciBpID0gMDsgaSA8IGNodW5rSWRzLmxlbmd0aDsgaSsrKVxuLyoqKioqKi8gXHRcdFx0XHRpbnN0YWxsZWRDaHVua3NbY2h1bmtJZHNbaV1dID0gMTtcbi8qKioqKiovIFx0XHRcbi8qKioqKiovIFx0XHR9O1xuLyoqKioqKi8gXHRcdFxuLyoqKioqKi8gXHRcdC8vIHJlcXVpcmUoKSBjaHVuayBsb2FkaW5nIGZvciBqYXZhc2NyaXB0XG4vKioqKioqLyBcdFx0X193ZWJwYWNrX3JlcXVpcmVfXy5mLnJlcXVpcmUgPSAoY2h1bmtJZCwgcHJvbWlzZXMpID0+IHtcbi8qKioqKiovIFx0XHRcdC8vIFwiMVwiIGlzIHRoZSBzaWduYWwgZm9yIFwiYWxyZWFkeSBsb2FkZWRcIlxuLyoqKioqKi8gXHRcdFx0aWYoIWluc3RhbGxlZENodW5rc1tjaHVua0lkXSkge1xuLyoqKioqKi8gXHRcdFx0XHRpZihcIndlYnBhY2stcnVudGltZVwiICE9IGNodW5rSWQpIHtcbi8qKioqKiovIFx0XHRcdFx0XHRpbnN0YWxsQ2h1bmsocmVxdWlyZShcIi4vXCIgKyBfX3dlYnBhY2tfcmVxdWlyZV9fLnUoY2h1bmtJZCkpKTtcbi8qKioqKiovIFx0XHRcdFx0fSBlbHNlIGluc3RhbGxlZENodW5rc1tjaHVua0lkXSA9IDE7XG4vKioqKioqLyBcdFx0XHR9XG4vKioqKioqLyBcdFx0fTtcbi8qKioqKiovIFx0XHRcbi8qKioqKiovIFx0XHRtb2R1bGUuZXhwb3J0cyA9IF9fd2VicGFja19yZXF1aXJlX187XG4vKioqKioqLyBcdFx0X193ZWJwYWNrX3JlcXVpcmVfXy5DID0gaW5zdGFsbENodW5rO1xuLyoqKioqKi8gXHRcdFxuLyoqKioqKi8gXHRcdC8vIG5vIEhNUlxuLyoqKioqKi8gXHRcdFxuLyoqKioqKi8gXHRcdC8vIG5vIEhNUiBtYW5pZmVzdFxuLyoqKioqKi8gXHR9KSgpO1xuLyoqKioqKi8gXHRcbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKioqKioqLyBcdFxuLyoqKioqKi8gXHRcbi8qKioqKiovIH0pKClcbiJdfQ== -; \ No newline at end of file diff --git a/build/static/chunks/_pages-dir-browser_node_modules_next_dist_pages__app_js.js b/build/static/chunks/_pages-dir-browser_node_modules_next_dist_pages__app_js.js deleted file mode 100644 index 953eb15..0000000 --- a/build/static/chunks/_pages-dir-browser_node_modules_next_dist_pages__app_js.js +++ /dev/null @@ -1,22 +0,0 @@ -"use strict"; -/* - * ATTENTION: An "eval-source-map" devtool has been used. - * This devtool is neither made for production nor for readable output files. - * It uses "eval()" calls to create a separate source file with attached SourceMaps in the browser devtools. - * If you are trying to read the output file, select a different devtool (https://webpack.js.org/configuration/devtool/) - * or disable the default devtool with "devtool: false". - * If you are looking for production-ready output files, see mode: "production" (https://webpack.js.org/configuration/mode/). - */ -(self["webpackChunk_N_E"] = self["webpackChunk_N_E"] || []).push([["_pages-dir-browser_node_modules_next_dist_pages__app_js"],{ - -/***/ "(pages-dir-browser)/./node_modules/next/dist/pages/_app.js": -/*!**********************************************!*\ - !*** ./node_modules/next/dist/pages/_app.js ***! - \**********************************************/ -/***/ ((module, exports, __webpack_require__) => { - -eval(__webpack_require__.ts("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"default\", ({\n enumerable: true,\n get: function() {\n return App;\n }\n}));\nconst _interop_require_default = __webpack_require__(/*! @swc/helpers/_/_interop_require_default */ \"(pages-dir-browser)/./node_modules/@swc/helpers/esm/_interop_require_default.js\");\nconst _jsxruntime = __webpack_require__(/*! react/jsx-runtime */ \"(pages-dir-browser)/./node_modules/react/jsx-runtime.js\");\nconst _react = /*#__PURE__*/ _interop_require_default._(__webpack_require__(/*! react */ \"(pages-dir-browser)/./node_modules/react/index.js\"));\nconst _utils = __webpack_require__(/*! ../shared/lib/utils */ \"(pages-dir-browser)/./node_modules/next/dist/shared/lib/utils.js\");\n/**\n * `App` component is used for initialize of pages. It allows for overwriting and full control of the `page` initialization.\n * This allows for keeping state between navigation, custom error handling, injecting additional data.\n */ async function appGetInitialProps(param) {\n let { Component, ctx } = param;\n const pageProps = await (0, _utils.loadGetInitialProps)(Component, ctx);\n return {\n pageProps\n };\n}\nclass App extends _react.default.Component {\n render() {\n const { Component, pageProps } = this.props;\n return /*#__PURE__*/ (0, _jsxruntime.jsx)(Component, {\n ...pageProps\n });\n }\n}\nApp.origGetInitialProps = appGetInitialProps;\nApp.getInitialProps = appGetInitialProps;\nif ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=_app.js.map\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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvcGFnZXMvX2FwcC5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7O2VBaUNxQkE7Ozs7OzRFQWpDSDttQ0FXa0I7QUFVcEM7OztDQUdDLEdBQ0QsZUFBZUMsbUJBQW1CLEtBR3JCO0lBSHFCLE1BQ2hDQyxTQUFTLEVBQ1RDLEdBQUcsRUFDUSxHQUhxQjtJQUloQyxNQUFNQyxZQUFZLE1BQU1DLENBQUFBLEdBQUFBLE9BQUFBLG1CQUFBQSxFQUFvQkgsV0FBV0M7SUFDdkQsT0FBTztRQUFFQztJQUFVO0FBQ3JCO0FBRWUsTUFBTUosWUFBc0NNLE9BQUFBLE9BQUssQ0FBQ0osU0FBUztJQU94RUssU0FBUztRQUNQLE1BQU0sRUFBRUwsU0FBUyxFQUFFRSxTQUFTLEVBQUUsR0FBRyxJQUFJLENBQUNJLEtBQUs7UUFFM0MsT0FBTyxXQUFQLEdBQU8scUJBQUNOLFdBQUFBO1lBQVcsR0FBR0UsU0FBUzs7SUFDakM7QUFDRjtBQVpxQkosSUFJWlMsbUJBQUFBLEdBQXNCUjtBQUpWRCxJQUtaVSxlQUFBQSxHQUFrQlQiLCJzb3VyY2VzIjpbIkQ6XFxzcmNcXHBhZ2VzXFxfYXBwLnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnXG5cbmltcG9ydCB0eXBlIHtcbiAgQXBwQ29udGV4dFR5cGUsXG4gIEFwcEluaXRpYWxQcm9wcyxcbiAgQXBwUHJvcHNUeXBlLFxuICBOZXh0V2ViVml0YWxzTWV0cmljLFxuICBBcHBUeXBlLFxufSBmcm9tICcuLi9zaGFyZWQvbGliL3V0aWxzJ1xuaW1wb3J0IHR5cGUgeyBSb3V0ZXIgfSBmcm9tICcuLi9jbGllbnQvcm91dGVyJ1xuXG5pbXBvcnQgeyBsb2FkR2V0SW5pdGlhbFByb3BzIH0gZnJvbSAnLi4vc2hhcmVkL2xpYi91dGlscydcblxuZXhwb3J0IHR5cGUgeyBBcHBJbml0aWFsUHJvcHMsIEFwcFR5cGUgfVxuXG5leHBvcnQgdHlwZSB7IE5leHRXZWJWaXRhbHNNZXRyaWMgfVxuXG5leHBvcnQgdHlwZSBBcHBDb250ZXh0ID0gQXBwQ29udGV4dFR5cGU8Um91dGVyPlxuXG5leHBvcnQgdHlwZSBBcHBQcm9wczxQID0gYW55PiA9IEFwcFByb3BzVHlwZTxSb3V0ZXIsIFA+XG5cbi8qKlxuICogYEFwcGAgY29tcG9uZW50IGlzIHVzZWQgZm9yIGluaXRpYWxpemUgb2YgcGFnZXMuIEl0IGFsbG93cyBmb3Igb3ZlcndyaXRpbmcgYW5kIGZ1bGwgY29udHJvbCBvZiB0aGUgYHBhZ2VgIGluaXRpYWxpemF0aW9uLlxuICogVGhpcyBhbGxvd3MgZm9yIGtlZXBpbmcgc3RhdGUgYmV0d2VlbiBuYXZpZ2F0aW9uLCBjdXN0b20gZXJyb3IgaGFuZGxpbmcsIGluamVjdGluZyBhZGRpdGlvbmFsIGRhdGEuXG4gKi9cbmFzeW5jIGZ1bmN0aW9uIGFwcEdldEluaXRpYWxQcm9wcyh7XG4gIENvbXBvbmVudCxcbiAgY3R4LFxufTogQXBwQ29udGV4dCk6IFByb21pc2U8QXBwSW5pdGlhbFByb3BzPiB7XG4gIGNvbnN0IHBhZ2VQcm9wcyA9IGF3YWl0IGxvYWRHZXRJbml0aWFsUHJvcHMoQ29tcG9uZW50LCBjdHgpXG4gIHJldHVybiB7IHBhZ2VQcm9wcyB9XG59XG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIEFwcDxQID0gYW55LCBDUCA9IHt9LCBTID0ge30+IGV4dGVuZHMgUmVhY3QuQ29tcG9uZW50PFxuICBQICYgQXBwUHJvcHM8Q1A+LFxuICBTXG4+IHtcbiAgc3RhdGljIG9yaWdHZXRJbml0aWFsUHJvcHMgPSBhcHBHZXRJbml0aWFsUHJvcHNcbiAgc3RhdGljIGdldEluaXRpYWxQcm9wcyA9IGFwcEdldEluaXRpYWxQcm9wc1xuXG4gIHJlbmRlcigpIHtcbiAgICBjb25zdCB7IENvbXBvbmVudCwgcGFnZVByb3BzIH0gPSB0aGlzLnByb3BzIGFzIEFwcFByb3BzPENQPlxuXG4gICAgcmV0dXJuIDxDb21wb25lbnQgey4uLnBhZ2VQcm9wc30gLz5cbiAgfVxufVxuIl0sIm5hbWVzIjpbIkFwcCIsImFwcEdldEluaXRpYWxQcm9wcyIsIkNvbXBvbmVudCIsImN0eCIsInBhZ2VQcm9wcyIsImxvYWRHZXRJbml0aWFsUHJvcHMiLCJSZWFjdCIsInJlbmRlciIsInByb3BzIiwib3JpZ0dldEluaXRpYWxQcm9wcyIsImdldEluaXRpYWxQcm9wcyJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(pages-dir-browser)/./node_modules/next/dist/pages/_app.js\n")); - -/***/ }) - -}]); \ No newline at end of file diff --git a/build/static/chunks/_pages-dir-browser_node_modules_next_dist_pages__error_js.js b/build/static/chunks/_pages-dir-browser_node_modules_next_dist_pages__error_js.js deleted file mode 100644 index f30f9af..0000000 --- a/build/static/chunks/_pages-dir-browser_node_modules_next_dist_pages__error_js.js +++ /dev/null @@ -1,62 +0,0 @@ -"use strict"; -/* - * ATTENTION: An "eval-source-map" devtool has been used. - * This devtool is neither made for production nor for readable output files. - * It uses "eval()" calls to create a separate source file with attached SourceMaps in the browser devtools. - * If you are trying to read the output file, select a different devtool (https://webpack.js.org/configuration/devtool/) - * or disable the default devtool with "devtool: false". - * If you are looking for production-ready output files, see mode: "production" (https://webpack.js.org/configuration/mode/). - */ -(self["webpackChunk_N_E"] = self["webpackChunk_N_E"] || []).push([["_pages-dir-browser_node_modules_next_dist_pages__error_js"],{ - -/***/ "(pages-dir-browser)/./node_modules/next/dist/pages/_error.js": -/*!************************************************!*\ - !*** ./node_modules/next/dist/pages/_error.js ***! - \************************************************/ -/***/ ((module, exports, __webpack_require__) => { - -eval(__webpack_require__.ts("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"default\", ({\n enumerable: true,\n get: function() {\n return Error;\n }\n}));\nconst _interop_require_default = __webpack_require__(/*! @swc/helpers/_/_interop_require_default */ \"(pages-dir-browser)/./node_modules/@swc/helpers/esm/_interop_require_default.js\");\nconst _jsxruntime = __webpack_require__(/*! react/jsx-runtime */ \"(pages-dir-browser)/./node_modules/react/jsx-runtime.js\");\nconst _react = /*#__PURE__*/ _interop_require_default._(__webpack_require__(/*! react */ \"(pages-dir-browser)/./node_modules/react/index.js\"));\nconst _head = /*#__PURE__*/ _interop_require_default._(__webpack_require__(/*! ../shared/lib/head */ \"(pages-dir-browser)/./node_modules/next/dist/shared/lib/head.js\"));\nconst statusCodes = {\n 400: 'Bad Request',\n 404: 'This page could not be found',\n 405: 'Method Not Allowed',\n 500: 'Internal Server Error'\n};\nfunction _getInitialProps(param) {\n let { req, res, err } = param;\n const statusCode = res && res.statusCode ? res.statusCode : err ? err.statusCode : 404;\n let hostname;\n if (true) {\n hostname = window.location.hostname;\n } else {}\n return {\n statusCode,\n hostname\n };\n}\nconst styles = {\n error: {\n // https://github.com/sindresorhus/modern-normalize/blob/main/modern-normalize.css#L38-L52\n fontFamily: 'system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"',\n height: '100vh',\n textAlign: 'center',\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'center',\n justifyContent: 'center'\n },\n desc: {\n lineHeight: '48px'\n },\n h1: {\n display: 'inline-block',\n margin: '0 20px 0 0',\n paddingRight: 23,\n fontSize: 24,\n fontWeight: 500,\n verticalAlign: 'top'\n },\n h2: {\n fontSize: 14,\n fontWeight: 400,\n lineHeight: '28px'\n },\n wrap: {\n display: 'inline-block'\n }\n};\nclass Error extends _react.default.Component {\n render() {\n const { statusCode, withDarkMode = true } = this.props;\n const title = this.props.title || statusCodes[statusCode] || 'An unexpected error has occurred';\n return /*#__PURE__*/ (0, _jsxruntime.jsxs)(\"div\", {\n style: styles.error,\n children: [\n /*#__PURE__*/ (0, _jsxruntime.jsx)(_head.default, {\n children: /*#__PURE__*/ (0, _jsxruntime.jsx)(\"title\", {\n children: statusCode ? statusCode + \": \" + title : 'Application error: a client-side exception has occurred'\n })\n }),\n /*#__PURE__*/ (0, _jsxruntime.jsxs)(\"div\", {\n style: styles.desc,\n children: [\n /*#__PURE__*/ (0, _jsxruntime.jsx)(\"style\", {\n dangerouslySetInnerHTML: {\n /* CSS minified from\n body { margin: 0; color: #000; background: #fff; }\n .next-error-h1 {\n border-right: 1px solid rgba(0, 0, 0, .3);\n }\n\n ${\n withDarkMode\n ? `@media (prefers-color-scheme: dark) {\n body { color: #fff; background: #000; }\n .next-error-h1 {\n border-right: 1px solid rgba(255, 255, 255, .3);\n }\n }`\n : ''\n }\n */ __html: \"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}\" + (withDarkMode ? '@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}' : '')\n }\n }),\n statusCode ? /*#__PURE__*/ (0, _jsxruntime.jsx)(\"h1\", {\n className: \"next-error-h1\",\n style: styles.h1,\n children: statusCode\n }) : null,\n /*#__PURE__*/ (0, _jsxruntime.jsx)(\"div\", {\n style: styles.wrap,\n children: /*#__PURE__*/ (0, _jsxruntime.jsxs)(\"h2\", {\n style: styles.h2,\n children: [\n this.props.title || statusCode ? title : /*#__PURE__*/ (0, _jsxruntime.jsxs)(_jsxruntime.Fragment, {\n children: [\n \"Application error: a client-side exception has occurred\",\n ' ',\n Boolean(this.props.hostname) && /*#__PURE__*/ (0, _jsxruntime.jsxs)(_jsxruntime.Fragment, {\n children: [\n \"while loading \",\n this.props.hostname\n ]\n }),\n ' ',\n \"(see the browser console for more information)\"\n ]\n }),\n \".\"\n ]\n })\n })\n ]\n })\n ]\n });\n }\n}\nError.displayName = 'ErrorPage';\nError.getInitialProps = _getInitialProps;\nError.origGetInitialProps = _getInitialProps;\nif ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=_error.js.map\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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvcGFnZXMvX2Vycm9yLmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7ZUFnRnFCQTs7Ozs7NEVBaEZIOzJFQUNEO0FBR2pCLE1BQU1DLGNBQTBDO0lBQzlDLEtBQUs7SUFDTCxLQUFLO0lBQ0wsS0FBSztJQUNMLEtBQUs7QUFDUDtBQVNBLFNBQVNDLGlCQUFpQixLQUlSO0lBSlEsTUFDeEJDLEdBQUcsRUFDSEMsR0FBRyxFQUNIQyxHQUFHLEVBQ2EsR0FKUTtJQUt4QixNQUFNQyxhQUNKRixPQUFPQSxJQUFJRSxVQUFVLEdBQUdGLElBQUlFLFVBQVUsR0FBR0QsTUFBTUEsSUFBSUMsVUFBVSxHQUFJO0lBRW5FLElBQUlDO0lBRUosSUFBSSxJQUE2QixFQUFFO1FBQ2pDQSxXQUFXQyxPQUFPQyxRQUFRLENBQUNGLFFBQVE7SUFDckMsT0FBTyxFQVNOO0lBRUQsT0FBTztRQUFFRDtRQUFZQztJQUFTO0FBQ2hDO0FBRUEsTUFBTVEsU0FBOEM7SUFDbERDLE9BQU87UUFDTCwwRkFBMEY7UUFDMUZDLFlBQ0U7UUFDRkMsUUFBUTtRQUNSQyxXQUFXO1FBQ1hDLFNBQVM7UUFDVEMsZUFBZTtRQUNmQyxZQUFZO1FBQ1pDLGdCQUFnQjtJQUNsQjtJQUNBQyxNQUFNO1FBQ0pDLFlBQVk7SUFDZDtJQUNBQyxJQUFJO1FBQ0ZOLFNBQVM7UUFDVE8sUUFBUTtRQUNSQyxjQUFjO1FBQ2RDLFVBQVU7UUFDVkMsWUFBWTtRQUNaQyxlQUFlO0lBQ2pCO0lBQ0FDLElBQUk7UUFDRkgsVUFBVTtRQUNWQyxZQUFZO1FBQ1pMLFlBQVk7SUFDZDtJQUNBUSxNQUFNO1FBQ0piLFNBQVM7SUFDWDtBQUNGO0FBS2UsTUFBTXBCLGNBQXNCa0MsT0FBQUEsT0FBSyxDQUFDQyxTQUFTO0lBTXhEQyxTQUFTO1FBQ1AsTUFBTSxFQUFFOUIsVUFBVSxFQUFFK0IsZUFBZSxJQUFJLEVBQUUsR0FBRyxJQUFJLENBQUNDLEtBQUs7UUFDdEQsTUFBTUMsUUFDSixJQUFJLENBQUNELEtBQUssQ0FBQ0MsS0FBSyxJQUNoQnRDLFdBQVcsQ0FBQ0ssV0FBVyxJQUN2QjtRQUVGLHFCQUNFLHNCQUFDa0MsT0FBQUE7WUFBSUMsT0FBTzFCLE9BQU9DLEtBQUs7OzhCQUN0QixxQkFBQzBCLE1BQUFBLE9BQUk7OEJBQ0gsbUNBQUNILFNBQUFBO2tDQUNFakMsYUFDTUEsYUFBVyxPQUFJaUMsUUFDbEI7Ozs4QkFHUixzQkFBQ0MsT0FBQUE7b0JBQUlDLE9BQU8xQixPQUFPUyxJQUFJOztzQ0FDckIscUJBQUNpQixTQUFBQTs0QkFDQ0UseUJBQXlCO2dDQUN2Qjs7Ozs7Ozs7Ozs7Ozs7OztlQWdCQyxHQUNEQyxRQUFTLG1HQUNQUCxDQUFBQSxlQUNJLG9JQUNBLEdBQUM7NEJBRVQ7O3dCQUdEL0IsYUFBQUEsV0FBQUEsR0FDQyxxQkFBQ29CLE1BQUFBOzRCQUFHbUIsV0FBVTs0QkFBZ0JKLE9BQU8xQixPQUFPVyxFQUFFO3NDQUMzQ3BCOzZCQUVEO3NDQUNKLHFCQUFDa0MsT0FBQUE7NEJBQUlDLE9BQU8xQixPQUFPa0IsSUFBSTtzQ0FDckIsb0NBQUNELE1BQUFBO2dDQUFHUyxPQUFPMUIsT0FBT2lCLEVBQUU7O29DQUNqQixJQUFJLENBQUNNLEtBQUssQ0FBQ0MsS0FBSyxJQUFJakMsYUFDbkJpQyxRQUVBLFdBRkFBLEdBRUE7OzRDQUFFOzRDQUN3RDs0Q0FDdkRPLFFBQVEsSUFBSSxDQUFDUixLQUFLLENBQUMvQixRQUFRLEtBQzFCLFdBRDBCLEdBQzFCOztvREFBRTtvREFBZSxJQUFJLENBQUMrQixLQUFLLENBQUMvQixRQUFROzs7NENBQ25DOzRDQUFJOzs7b0NBR1Q7Ozs7Ozs7O0lBT2Q7QUFDRjtBQTNFcUJQLE1BQ1orQyxXQUFBQSxHQUFjO0FBREYvQyxNQUdaZ0QsZUFBQUEsR0FBa0I5QztBQUhORixNQUlaaUQsbUJBQUFBLEdBQXNCL0MiLCJzb3VyY2VzIjpbIkQ6XFxzcmNcXHBhZ2VzXFxfZXJyb3IudHN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCdcbmltcG9ydCBIZWFkIGZyb20gJy4uL3NoYXJlZC9saWIvaGVhZCdcbmltcG9ydCB0eXBlIHsgTmV4dFBhZ2VDb250ZXh0IH0gZnJvbSAnLi4vc2hhcmVkL2xpYi91dGlscydcblxuY29uc3Qgc3RhdHVzQ29kZXM6IHsgW2NvZGU6IG51bWJlcl06IHN0cmluZyB9ID0ge1xuICA0MDA6ICdCYWQgUmVxdWVzdCcsXG4gIDQwNDogJ1RoaXMgcGFnZSBjb3VsZCBub3QgYmUgZm91bmQnLFxuICA0MDU6ICdNZXRob2QgTm90IEFsbG93ZWQnLFxuICA1MDA6ICdJbnRlcm5hbCBTZXJ2ZXIgRXJyb3InLFxufVxuXG5leHBvcnQgdHlwZSBFcnJvclByb3BzID0ge1xuICBzdGF0dXNDb2RlOiBudW1iZXJcbiAgaG9zdG5hbWU/OiBzdHJpbmdcbiAgdGl0bGU/OiBzdHJpbmdcbiAgd2l0aERhcmtNb2RlPzogYm9vbGVhblxufVxuXG5mdW5jdGlvbiBfZ2V0SW5pdGlhbFByb3BzKHtcbiAgcmVxLFxuICByZXMsXG4gIGVycixcbn06IE5leHRQYWdlQ29udGV4dCk6IFByb21pc2U8RXJyb3JQcm9wcz4gfCBFcnJvclByb3BzIHtcbiAgY29uc3Qgc3RhdHVzQ29kZSA9XG4gICAgcmVzICYmIHJlcy5zdGF0dXNDb2RlID8gcmVzLnN0YXR1c0NvZGUgOiBlcnIgPyBlcnIuc3RhdHVzQ29kZSEgOiA0MDRcblxuICBsZXQgaG9zdG5hbWVcblxuICBpZiAodHlwZW9mIHdpbmRvdyAhPT0gJ3VuZGVmaW5lZCcpIHtcbiAgICBob3N0bmFtZSA9IHdpbmRvdy5sb2NhdGlvbi5ob3N0bmFtZVxuICB9IGVsc2UgaWYgKHJlcSkge1xuICAgIGNvbnN0IHsgZ2V0UmVxdWVzdE1ldGEgfSA9XG4gICAgICByZXF1aXJlKCcuLi9zZXJ2ZXIvcmVxdWVzdC1tZXRhJykgYXMgdHlwZW9mIGltcG9ydCgnLi4vc2VydmVyL3JlcXVlc3QtbWV0YScpXG5cbiAgICBjb25zdCBpbml0VXJsID0gZ2V0UmVxdWVzdE1ldGEocmVxLCAnaW5pdFVSTCcpXG4gICAgaWYgKGluaXRVcmwpIHtcbiAgICAgIGNvbnN0IHVybCA9IG5ldyBVUkwoaW5pdFVybClcbiAgICAgIGhvc3RuYW1lID0gdXJsLmhvc3RuYW1lXG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHsgc3RhdHVzQ29kZSwgaG9zdG5hbWUgfVxufVxuXG5jb25zdCBzdHlsZXM6IFJlY29yZDxzdHJpbmcsIFJlYWN0LkNTU1Byb3BlcnRpZXM+ID0ge1xuICBlcnJvcjoge1xuICAgIC8vIGh0dHBzOi8vZ2l0aHViLmNvbS9zaW5kcmVzb3JodXMvbW9kZXJuLW5vcm1hbGl6ZS9ibG9iL21haW4vbW9kZXJuLW5vcm1hbGl6ZS5jc3MjTDM4LUw1MlxuICAgIGZvbnRGYW1pbHk6XG4gICAgICAnc3lzdGVtLXVpLFwiU2Vnb2UgVUlcIixSb2JvdG8sSGVsdmV0aWNhLEFyaWFsLHNhbnMtc2VyaWYsXCJBcHBsZSBDb2xvciBFbW9qaVwiLFwiU2Vnb2UgVUkgRW1vamlcIicsXG4gICAgaGVpZ2h0OiAnMTAwdmgnLFxuICAgIHRleHRBbGlnbjogJ2NlbnRlcicsXG4gICAgZGlzcGxheTogJ2ZsZXgnLFxuICAgIGZsZXhEaXJlY3Rpb246ICdjb2x1bW4nLFxuICAgIGFsaWduSXRlbXM6ICdjZW50ZXInLFxuICAgIGp1c3RpZnlDb250ZW50OiAnY2VudGVyJyxcbiAgfSxcbiAgZGVzYzoge1xuICAgIGxpbmVIZWlnaHQ6ICc0OHB4JyxcbiAgfSxcbiAgaDE6IHtcbiAgICBkaXNwbGF5OiAnaW5saW5lLWJsb2NrJyxcbiAgICBtYXJnaW46ICcwIDIwcHggMCAwJyxcbiAgICBwYWRkaW5nUmlnaHQ6IDIzLFxuICAgIGZvbnRTaXplOiAyNCxcbiAgICBmb250V2VpZ2h0OiA1MDAsXG4gICAgdmVydGljYWxBbGlnbjogJ3RvcCcsXG4gIH0sXG4gIGgyOiB7XG4gICAgZm9udFNpemU6IDE0LFxuICAgIGZvbnRXZWlnaHQ6IDQwMCxcbiAgICBsaW5lSGVpZ2h0OiAnMjhweCcsXG4gIH0sXG4gIHdyYXA6IHtcbiAgICBkaXNwbGF5OiAnaW5saW5lLWJsb2NrJyxcbiAgfSxcbn1cblxuLyoqXG4gKiBgRXJyb3JgIGNvbXBvbmVudCB1c2VkIGZvciBoYW5kbGluZyBlcnJvcnMuXG4gKi9cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIEVycm9yPFAgPSB7fT4gZXh0ZW5kcyBSZWFjdC5Db21wb25lbnQ8UCAmIEVycm9yUHJvcHM+IHtcbiAgc3RhdGljIGRpc3BsYXlOYW1lID0gJ0Vycm9yUGFnZSdcblxuICBzdGF0aWMgZ2V0SW5pdGlhbFByb3BzID0gX2dldEluaXRpYWxQcm9wc1xuICBzdGF0aWMgb3JpZ0dldEluaXRpYWxQcm9wcyA9IF9nZXRJbml0aWFsUHJvcHNcblxuICByZW5kZXIoKSB7XG4gICAgY29uc3QgeyBzdGF0dXNDb2RlLCB3aXRoRGFya01vZGUgPSB0cnVlIH0gPSB0aGlzLnByb3BzXG4gICAgY29uc3QgdGl0bGUgPVxuICAgICAgdGhpcy5wcm9wcy50aXRsZSB8fFxuICAgICAgc3RhdHVzQ29kZXNbc3RhdHVzQ29kZV0gfHxcbiAgICAgICdBbiB1bmV4cGVjdGVkIGVycm9yIGhhcyBvY2N1cnJlZCdcblxuICAgIHJldHVybiAoXG4gICAgICA8ZGl2IHN0eWxlPXtzdHlsZXMuZXJyb3J9PlxuICAgICAgICA8SGVhZD5cbiAgICAgICAgICA8dGl0bGU+XG4gICAgICAgICAgICB7c3RhdHVzQ29kZVxuICAgICAgICAgICAgICA/IGAke3N0YXR1c0NvZGV9OiAke3RpdGxlfWBcbiAgICAgICAgICAgICAgOiAnQXBwbGljYXRpb24gZXJyb3I6IGEgY2xpZW50LXNpZGUgZXhjZXB0aW9uIGhhcyBvY2N1cnJlZCd9XG4gICAgICAgICAgPC90aXRsZT5cbiAgICAgICAgPC9IZWFkPlxuICAgICAgICA8ZGl2IHN0eWxlPXtzdHlsZXMuZGVzY30+XG4gICAgICAgICAgPHN0eWxlXG4gICAgICAgICAgICBkYW5nZXJvdXNseVNldElubmVySFRNTD17e1xuICAgICAgICAgICAgICAvKiBDU1MgbWluaWZpZWQgZnJvbVxuICAgICAgICAgICAgICAgIGJvZHkgeyBtYXJnaW46IDA7IGNvbG9yOiAjMDAwOyBiYWNrZ3JvdW5kOiAjZmZmOyB9XG4gICAgICAgICAgICAgICAgLm5leHQtZXJyb3ItaDEge1xuICAgICAgICAgICAgICAgICAgYm9yZGVyLXJpZ2h0OiAxcHggc29saWQgcmdiYSgwLCAwLCAwLCAuMyk7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJHtcbiAgICAgICAgICAgICAgICAgIHdpdGhEYXJrTW9kZVxuICAgICAgICAgICAgICAgICAgICA/IGBAbWVkaWEgKHByZWZlcnMtY29sb3Itc2NoZW1lOiBkYXJrKSB7XG4gICAgICAgICAgICAgICAgICBib2R5IHsgY29sb3I6ICNmZmY7IGJhY2tncm91bmQ6ICMwMDA7IH1cbiAgICAgICAgICAgICAgICAgIC5uZXh0LWVycm9yLWgxIHtcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyLXJpZ2h0OiAxcHggc29saWQgcmdiYSgyNTUsIDI1NSwgMjU1LCAuMyk7XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfWBcbiAgICAgICAgICAgICAgICAgICAgOiAnJ1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICovXG4gICAgICAgICAgICAgIF9faHRtbDogYGJvZHl7Y29sb3I6IzAwMDtiYWNrZ3JvdW5kOiNmZmY7bWFyZ2luOjB9Lm5leHQtZXJyb3ItaDF7Ym9yZGVyLXJpZ2h0OjFweCBzb2xpZCByZ2JhKDAsMCwwLC4zKX0ke1xuICAgICAgICAgICAgICAgIHdpdGhEYXJrTW9kZVxuICAgICAgICAgICAgICAgICAgPyAnQG1lZGlhIChwcmVmZXJzLWNvbG9yLXNjaGVtZTpkYXJrKXtib2R5e2NvbG9yOiNmZmY7YmFja2dyb3VuZDojMDAwfS5uZXh0LWVycm9yLWgxe2JvcmRlci1yaWdodDoxcHggc29saWQgcmdiYSgyNTUsMjU1LDI1NSwuMyl9fSdcbiAgICAgICAgICAgICAgICAgIDogJydcbiAgICAgICAgICAgICAgfWAsXG4gICAgICAgICAgICB9fVxuICAgICAgICAgIC8+XG5cbiAgICAgICAgICB7c3RhdHVzQ29kZSA/IChcbiAgICAgICAgICAgIDxoMSBjbGFzc05hbWU9XCJuZXh0LWVycm9yLWgxXCIgc3R5bGU9e3N0eWxlcy5oMX0+XG4gICAgICAgICAgICAgIHtzdGF0dXNDb2RlfVxuICAgICAgICAgICAgPC9oMT5cbiAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICA8ZGl2IHN0eWxlPXtzdHlsZXMud3JhcH0+XG4gICAgICAgICAgICA8aDIgc3R5bGU9e3N0eWxlcy5oMn0+XG4gICAgICAgICAgICAgIHt0aGlzLnByb3BzLnRpdGxlIHx8IHN0YXR1c0NvZGUgPyAoXG4gICAgICAgICAgICAgICAgdGl0bGVcbiAgICAgICAgICAgICAgKSA6IChcbiAgICAgICAgICAgICAgICA8PlxuICAgICAgICAgICAgICAgICAgQXBwbGljYXRpb24gZXJyb3I6IGEgY2xpZW50LXNpZGUgZXhjZXB0aW9uIGhhcyBvY2N1cnJlZHsnICd9XG4gICAgICAgICAgICAgICAgICB7Qm9vbGVhbih0aGlzLnByb3BzLmhvc3RuYW1lKSAmJiAoXG4gICAgICAgICAgICAgICAgICAgIDw+d2hpbGUgbG9hZGluZyB7dGhpcy5wcm9wcy5ob3N0bmFtZX08Lz5cbiAgICAgICAgICAgICAgICAgICl9eycgJ31cbiAgICAgICAgICAgICAgICAgIChzZWUgdGhlIGJyb3dzZXIgY29uc29sZSBmb3IgbW9yZSBpbmZvcm1hdGlvbilcbiAgICAgICAgICAgICAgICA8Lz5cbiAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgICAgLlxuICAgICAgICAgICAgPC9oMj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICApXG4gIH1cbn1cbiJdLCJuYW1lcyI6WyJFcnJvciIsInN0YXR1c0NvZGVzIiwiX2dldEluaXRpYWxQcm9wcyIsInJlcSIsInJlcyIsImVyciIsInN0YXR1c0NvZGUiLCJob3N0bmFtZSIsIndpbmRvdyIsImxvY2F0aW9uIiwiZ2V0UmVxdWVzdE1ldGEiLCJyZXF1aXJlIiwiaW5pdFVybCIsInVybCIsIlVSTCIsInN0eWxlcyIsImVycm9yIiwiZm9udEZhbWlseSIsImhlaWdodCIsInRleHRBbGlnbiIsImRpc3BsYXkiLCJmbGV4RGlyZWN0aW9uIiwiYWxpZ25JdGVtcyIsImp1c3RpZnlDb250ZW50IiwiZGVzYyIsImxpbmVIZWlnaHQiLCJoMSIsIm1hcmdpbiIsInBhZGRpbmdSaWdodCIsImZvbnRTaXplIiwiZm9udFdlaWdodCIsInZlcnRpY2FsQWxpZ24iLCJoMiIsIndyYXAiLCJSZWFjdCIsIkNvbXBvbmVudCIsInJlbmRlciIsIndpdGhEYXJrTW9kZSIsInByb3BzIiwidGl0bGUiLCJkaXYiLCJzdHlsZSIsIkhlYWQiLCJkYW5nZXJvdXNseVNldElubmVySFRNTCIsIl9faHRtbCIsImNsYXNzTmFtZSIsIkJvb2xlYW4iLCJkaXNwbGF5TmFtZSIsImdldEluaXRpYWxQcm9wcyIsIm9yaWdHZXRJbml0aWFsUHJvcHMiXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(pages-dir-browser)/./node_modules/next/dist/pages/_error.js\n")); - -/***/ }), - -/***/ "(pages-dir-browser)/./node_modules/next/dist/shared/lib/amp-context.shared-runtime.js": -/*!*************************************************************************!*\ - !*** ./node_modules/next/dist/shared/lib/amp-context.shared-runtime.js ***! - \*************************************************************************/ -/***/ ((module, exports, __webpack_require__) => { - -eval(__webpack_require__.ts("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"AmpStateContext\", ({\n enumerable: true,\n get: function() {\n return AmpStateContext;\n }\n}));\nconst _interop_require_default = __webpack_require__(/*! @swc/helpers/_/_interop_require_default */ \"(pages-dir-browser)/./node_modules/@swc/helpers/esm/_interop_require_default.js\");\nconst _react = /*#__PURE__*/ _interop_require_default._(__webpack_require__(/*! react */ \"(pages-dir-browser)/./node_modules/react/index.js\"));\nconst AmpStateContext = _react.default.createContext({});\nif (true) {\n AmpStateContext.displayName = 'AmpStateContext';\n} //# sourceMappingURL=amp-context.shared-runtime.js.map\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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3Qvc2hhcmVkL2xpYi9hbXAtY29udGV4dC5zaGFyZWQtcnVudGltZS5qcyIsIm1hcHBpbmdzIjoiOzs7O21EQUVhQTs7O2VBQUFBOzs7OzRFQUZLO0FBRVgsTUFBTUEsa0JBQXNDQyxPQUFBQSxPQUFLLENBQUNDLGFBQWEsQ0FBQyxDQUFDO0FBRXhFLElBQUlDLElBQW9CLEVBQW1CO0lBQ3pDSCxnQkFBZ0JNLFdBQVcsR0FBRztBQUNoQyIsInNvdXJjZXMiOlsiRDpcXHNyY1xcc2hhcmVkXFxsaWJcXGFtcC1jb250ZXh0LnNoYXJlZC1ydW50aW1lLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCdcblxuZXhwb3J0IGNvbnN0IEFtcFN0YXRlQ29udGV4dDogUmVhY3QuQ29udGV4dDxhbnk+ID0gUmVhY3QuY3JlYXRlQ29udGV4dCh7fSlcblxuaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpIHtcbiAgQW1wU3RhdGVDb250ZXh0LmRpc3BsYXlOYW1lID0gJ0FtcFN0YXRlQ29udGV4dCdcbn1cbiJdLCJuYW1lcyI6WyJBbXBTdGF0ZUNvbnRleHQiLCJSZWFjdCIsImNyZWF0ZUNvbnRleHQiLCJwcm9jZXNzIiwiZW52IiwiTk9ERV9FTlYiLCJkaXNwbGF5TmFtZSJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(pages-dir-browser)/./node_modules/next/dist/shared/lib/amp-context.shared-runtime.js\n")); - -/***/ }), - -/***/ "(pages-dir-browser)/./node_modules/next/dist/shared/lib/amp-mode.js": -/*!*******************************************************!*\ - !*** ./node_modules/next/dist/shared/lib/amp-mode.js ***! - \*******************************************************/ -/***/ ((module, exports, __webpack_require__) => { - -eval(__webpack_require__.ts("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"isInAmpMode\", ({\n enumerable: true,\n get: function() {\n return isInAmpMode;\n }\n}));\nfunction isInAmpMode(param) {\n let { ampFirst = false, hybrid = false, hasQuery = false } = param === void 0 ? {} : param;\n return ampFirst || hybrid && hasQuery;\n} //# sourceMappingURL=amp-mode.js.map\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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3Qvc2hhcmVkL2xpYi9hbXAtbW9kZS5qcyIsIm1hcHBpbmdzIjoiOzs7OytDQUFnQkE7OztlQUFBQTs7O0FBQVQsU0FBU0EsWUFBWTtJQUFBLE1BQzFCQyxXQUFXLEtBQUssRUFDaEJDLFNBQVMsS0FBSyxFQUNkQyxXQUFXLEtBQUssRUFDakIsR0FKMkIsbUJBSXhCLENBQUMsSUFKdUI7SUFLMUIsT0FBT0YsWUFBYUMsVUFBVUM7QUFDaEMiLCJzb3VyY2VzIjpbIkQ6XFxzcmNcXHNoYXJlZFxcbGliXFxhbXAtbW9kZS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgZnVuY3Rpb24gaXNJbkFtcE1vZGUoe1xuICBhbXBGaXJzdCA9IGZhbHNlLFxuICBoeWJyaWQgPSBmYWxzZSxcbiAgaGFzUXVlcnkgPSBmYWxzZSxcbn0gPSB7fSk6IGJvb2xlYW4ge1xuICByZXR1cm4gYW1wRmlyc3QgfHwgKGh5YnJpZCAmJiBoYXNRdWVyeSlcbn1cbiJdLCJuYW1lcyI6WyJpc0luQW1wTW9kZSIsImFtcEZpcnN0IiwiaHlicmlkIiwiaGFzUXVlcnkiXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(pages-dir-browser)/./node_modules/next/dist/shared/lib/amp-mode.js\n")); - -/***/ }), - -/***/ "(pages-dir-browser)/./node_modules/next/dist/shared/lib/head.js": -/*!***************************************************!*\ - !*** ./node_modules/next/dist/shared/lib/head.js ***! - \***************************************************/ -/***/ ((module, exports, __webpack_require__) => { - -eval(__webpack_require__.ts("/* __next_internal_client_entry_do_not_use__ cjs */ \nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n default: function() {\n return _default;\n },\n defaultHead: function() {\n return defaultHead;\n }\n});\nconst _interop_require_default = __webpack_require__(/*! @swc/helpers/_/_interop_require_default */ \"(pages-dir-browser)/./node_modules/@swc/helpers/esm/_interop_require_default.js\");\nconst _interop_require_wildcard = __webpack_require__(/*! @swc/helpers/_/_interop_require_wildcard */ \"(pages-dir-browser)/./node_modules/@swc/helpers/esm/_interop_require_wildcard.js\");\nconst _jsxruntime = __webpack_require__(/*! react/jsx-runtime */ \"(pages-dir-browser)/./node_modules/react/jsx-runtime.js\");\nconst _react = /*#__PURE__*/ _interop_require_wildcard._(__webpack_require__(/*! react */ \"(pages-dir-browser)/./node_modules/react/index.js\"));\nconst _sideeffect = /*#__PURE__*/ _interop_require_default._(__webpack_require__(/*! ./side-effect */ \"(pages-dir-browser)/./node_modules/next/dist/shared/lib/side-effect.js\"));\nconst _ampcontextsharedruntime = __webpack_require__(/*! ./amp-context.shared-runtime */ \"(pages-dir-browser)/./node_modules/next/dist/shared/lib/amp-context.shared-runtime.js\");\nconst _headmanagercontextsharedruntime = __webpack_require__(/*! ./head-manager-context.shared-runtime */ \"(pages-dir-browser)/./node_modules/next/dist/shared/lib/head-manager-context.shared-runtime.js\");\nconst _ampmode = __webpack_require__(/*! ./amp-mode */ \"(pages-dir-browser)/./node_modules/next/dist/shared/lib/amp-mode.js\");\nconst _warnonce = __webpack_require__(/*! ./utils/warn-once */ \"(pages-dir-browser)/./node_modules/next/dist/shared/lib/utils/warn-once.js\");\nfunction defaultHead(inAmpMode) {\n if (inAmpMode === void 0) inAmpMode = false;\n const head = [\n /*#__PURE__*/ (0, _jsxruntime.jsx)(\"meta\", {\n charSet: \"utf-8\"\n }, \"charset\")\n ];\n if (!inAmpMode) {\n head.push(/*#__PURE__*/ (0, _jsxruntime.jsx)(\"meta\", {\n name: \"viewport\",\n content: \"width=device-width\"\n }, \"viewport\"));\n }\n return head;\n}\nfunction onlyReactElement(list, child) {\n // React children can be \"string\" or \"number\" in this case we ignore them for backwards compat\n if (typeof child === 'string' || typeof child === 'number') {\n return list;\n }\n // Adds support for React.Fragment\n if (child.type === _react.default.Fragment) {\n return list.concat(_react.default.Children.toArray(child.props.children).reduce((fragmentList, fragmentChild)=>{\n if (typeof fragmentChild === 'string' || typeof fragmentChild === 'number') {\n return fragmentList;\n }\n return fragmentList.concat(fragmentChild);\n }, []));\n }\n return list.concat(child);\n}\nconst METATYPES = [\n 'name',\n 'httpEquiv',\n 'charSet',\n 'itemProp'\n];\n/*\n returns a function for filtering head child elements\n which shouldn't be duplicated, like <title/>\n Also adds support for deduplicated `key` properties\n*/ function unique() {\n const keys = new Set();\n const tags = new Set();\n const metaTypes = new Set();\n const metaCategories = {};\n return (h)=>{\n let isUnique = true;\n let hasKey = false;\n if (h.key && typeof h.key !== 'number' && h.key.indexOf('$') > 0) {\n hasKey = true;\n const key = h.key.slice(h.key.indexOf('$') + 1);\n if (keys.has(key)) {\n isUnique = false;\n } else {\n keys.add(key);\n }\n }\n // eslint-disable-next-line default-case\n switch(h.type){\n case 'title':\n case 'base':\n if (tags.has(h.type)) {\n isUnique = false;\n } else {\n tags.add(h.type);\n }\n break;\n case 'meta':\n for(let i = 0, len = METATYPES.length; i < len; i++){\n const metatype = METATYPES[i];\n if (!h.props.hasOwnProperty(metatype)) continue;\n if (metatype === 'charSet') {\n if (metaTypes.has(metatype)) {\n isUnique = false;\n } else {\n metaTypes.add(metatype);\n }\n } else {\n const category = h.props[metatype];\n const categories = metaCategories[metatype] || new Set();\n if ((metatype !== 'name' || !hasKey) && categories.has(category)) {\n isUnique = false;\n } else {\n categories.add(category);\n metaCategories[metatype] = categories;\n }\n }\n }\n break;\n }\n return isUnique;\n };\n}\n/**\n *\n * @param headChildrenElements List of children of <Head>\n */ function reduceComponents(headChildrenElements, props) {\n const { inAmpMode } = props;\n return headChildrenElements.reduce(onlyReactElement, []).reverse().concat(defaultHead(inAmpMode).reverse()).filter(unique()).reverse().map((c, i)=>{\n const key = c.key || i;\n if (true) {\n // omit JSON-LD structured data snippets from the warning\n if (c.type === 'script' && c.props['type'] !== 'application/ld+json') {\n const srcMessage = c.props['src'] ? '<script> tag with src=\"' + c.props['src'] + '\"' : \"inline <script>\";\n (0, _warnonce.warnOnce)(\"Do not add <script> tags using next/head (see \" + srcMessage + \"). Use next/script instead. \\nSee more info here: https://nextjs.org/docs/messages/no-script-tags-in-head-component\");\n } else if (c.type === 'link' && c.props['rel'] === 'stylesheet') {\n (0, _warnonce.warnOnce)('Do not add stylesheets using next/head (see <link rel=\"stylesheet\"> tag with href=\"' + c.props['href'] + '\"). Use Document instead. \\nSee more info here: https://nextjs.org/docs/messages/no-stylesheets-in-head-component');\n }\n }\n return /*#__PURE__*/ _react.default.cloneElement(c, {\n key\n });\n });\n}\n/**\n * This component injects elements to `<head>` of your page.\n * To avoid duplicated `tags` in `<head>` you can use the `key` property, which will make sure every tag is only rendered once.\n */ function Head(param) {\n let { children } = param;\n const ampState = (0, _react.useContext)(_ampcontextsharedruntime.AmpStateContext);\n const headManager = (0, _react.useContext)(_headmanagercontextsharedruntime.HeadManagerContext);\n return /*#__PURE__*/ (0, _jsxruntime.jsx)(_sideeffect.default, {\n reduceComponentsToState: reduceComponents,\n headManager: headManager,\n inAmpMode: (0, _ampmode.isInAmpMode)(ampState),\n children: children\n });\n}\n_c = Head;\nconst _default = Head;\nif ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=head.js.map\nvar _c;\n$RefreshReg$(_c, \"Head\");\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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3Qvc2hhcmVkL2xpYi9oZWFkLmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7OztJQWdMQSxPQUFtQjtlQUFuQjs7SUFuS2dCQSxXQUFXO2VBQVhBOzs7Ozs7NkVBWDRCO2lGQUN6QjtxREFDYTs2REFDRztxQ0FDUDtzQ0FDSDtBQU1sQixTQUFTQSxZQUFZQyxTQUFpQjtJQUFqQkEsSUFBQUEsY0FBQUEsS0FBQUEsR0FBQUEsWUFBWTtJQUN0QyxNQUFNQyxPQUFPO3NCQUFDLHFCQUFDQyxRQUFBQTtZQUFLQyxTQUFRO1dBQVk7S0FBYTtJQUNyRCxJQUFJLENBQUNILFdBQVc7UUFDZEMsS0FBS0csSUFBSSxlQUNQLHFCQUFDRixRQUFBQTtZQUFLRyxNQUFLO1lBQVdDLFNBQVE7V0FBeUI7SUFFM0Q7SUFDQSxPQUFPTDtBQUNUO0FBRUEsU0FBU00saUJBQ1BDLElBQW9DLEVBQ3BDQyxLQUEyQztJQUUzQyw4RkFBOEY7SUFDOUYsSUFBSSxPQUFPQSxVQUFVLFlBQVksT0FBT0EsVUFBVSxVQUFVO1FBQzFELE9BQU9EO0lBQ1Q7SUFDQSxrQ0FBa0M7SUFDbEMsSUFBSUMsTUFBTUMsSUFBSSxLQUFLQyxPQUFBQSxPQUFLLENBQUNDLFFBQVEsRUFBRTtRQUNqQyxPQUFPSixLQUFLSyxNQUFNLENBQ2hCLE9BQ0FGLE9BQUssQ0FBQ0csUUFBUSxDQUFDQyxPQUFPLENBQUNOLE1BQU1PLEtBQUssQ0FBQ0MsUUFBUSxFQUFFQyxNQUFNLENBQ2pELENBRUVDLGNBQ0FDO1lBRUEsSUFDRSxPQUFPQSxrQkFBa0IsWUFDekIsT0FBT0Esa0JBQWtCLFVBQ3pCO2dCQUNBLE9BQU9EO1lBQ1Q7WUFDQSxPQUFPQSxhQUFhTixNQUFNLENBQUNPO1FBQzdCLEdBQ0EsRUFBRTtJQUdSO0lBQ0EsT0FBT1osS0FBS0ssTUFBTSxDQUFDSjtBQUNyQjtBQUVBLE1BQU1ZLFlBQVk7SUFBQztJQUFRO0lBQWE7SUFBVztDQUFX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Q0FBQUEsR0FBQUEsVUFBQUEsUUFBQUEsRUFDRyx3RkFBcUZMLEVBQUVoQyxLQUFLLENBQUMsT0FBTyxHQUFDO1lBRTFHO1FBQ0Y7UUFDQSxxQkFBT0wsT0FBQUEsT0FBSyxDQUFDMkMsWUFBWSxDQUFDTixHQUFHO1lBQUVqQjtRQUFJO0lBQ3JDO0FBQ0o7QUFFQTs7O0NBR0MsR0FDRCxjQUFjLEtBQTJDO0lBQTNDLE1BQUVkLFFBQVEsRUFBaUMsR0FBM0M7SUFDWixNQUFNdUMsV0FBV0MsQ0FBQUEsR0FBQUEsT0FBQUEsVUFBQUEsRUFBV0MseUJBQUFBLGVBQWU7SUFDM0MsTUFBTUMsY0FBY0YsQ0FBQUEsR0FBQUEsT0FBQUEsVUFBQUEsRUFBV0csaUNBQUFBLGtCQUFrQjtJQUNqRCxxQkFDRSxxQkFBQ0MsWUFBQUEsT0FBTTtRQUNMQyx5QkFBeUJuQjtRQUN6QmdCLGFBQWFBO1FBQ2IzRCxXQUFXK0QsQ0FBQUEsR0FBQUEsU0FBQUEsV0FBQUEsRUFBWVA7a0JBRXRCdkM7O0FBR1A7S0FaU3NDO01BY1QsV0FBZUEiLCJzb3VyY2VzIjpbIkQ6XFxzcmNcXHNoYXJlZFxcbGliXFxoZWFkLnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyIndXNlIGNsaWVudCdcblxuaW1wb3J0IFJlYWN0LCB7IHVzZUNvbnRleHQsIHR5cGUgSlNYIH0gZnJvbSAncmVhY3QnXG5pbXBvcnQgRWZmZWN0IGZyb20gJy4vc2lkZS1lZmZlY3QnXG5pbXBvcnQgeyBBbXBTdGF0ZUNvbnRleHQgfSBmcm9tICcuL2FtcC1jb250ZXh0LnNoYXJlZC1ydW50aW1lJ1xuaW1wb3J0IHsgSGVhZE1hbmFnZXJDb250ZXh0IH0gZnJvbSAnLi9oZWFkLW1hbmFnZXItY29udGV4dC5zaGFyZWQtcnVudGltZSdcbmltcG9ydCB7IGlzSW5BbXBNb2RlIH0gZnJvbSAnLi9hbXAtbW9kZSdcbmltcG9ydCB7IHdhcm5PbmNlIH0gZnJvbSAnLi91dGlscy93YXJuLW9uY2UnXG5cbnR5cGUgV2l0aEluQW1wTW9kZSA9IHtcbiAgaW5BbXBNb2RlPzogYm9vbGVhblxufVxuXG5leHBvcnQgZnVuY3Rpb24gZGVmYXVsdEhlYWQoaW5BbXBNb2RlID0gZmFsc2UpOiBKU1guRWxlbWVudFtdIHtcbiAgY29uc3QgaGVhZCA9IFs8bWV0YSBjaGFyU2V0PVwidXRmLThcIiBrZXk9XCJjaGFyc2V0XCIgLz5dXG4gIGlmICghaW5BbXBNb2RlKSB7XG4gICAgaGVhZC5wdXNoKFxuICAgICAgPG1ldGEgbmFtZT1cInZpZXdwb3J0XCIgY29udGVudD1cIndpZHRoPWRldmljZS13aWR0aFwiIGtleT1cInZpZXdwb3J0XCIgLz5cbiAgICApXG4gIH1cbiAgcmV0dXJuIGhlYWRcbn1cblxuZnVuY3Rpb24gb25seVJlYWN0RWxlbWVudChcbiAgbGlzdDogQXJyYXk8UmVhY3QuUmVhY3RFbGVtZW50PGFueT4+LFxuICBjaGlsZDogUmVhY3QuUmVhY3RFbGVtZW50IHwgbnVtYmVyIHwgc3RyaW5nXG4pOiBBcnJheTxSZWFjdC5SZWFjdEVsZW1lbnQ8YW55Pj4ge1xuICAvLyBSZWFjdCBjaGlsZHJlbiBjYW4gYmUgXCJzdHJpbmdcIiBvciBcIm51bWJlclwiIGluIHRoaXMgY2FzZSB3ZSBpZ25vcmUgdGhlbSBmb3IgYmFja3dhcmRzIGNvbXBhdFxuICBpZiAodHlwZW9mIGNoaWxkID09PSAnc3RyaW5nJyB8fCB0eXBlb2YgY2hpbGQgPT09ICdudW1iZXInKSB7XG4gICAgcmV0dXJuIGxpc3RcbiAgfVxuICAvLyBBZGRzIHN1cHBvcnQgZm9yIFJlYWN0LkZyYWdtZW50XG4gIGlmIChjaGlsZC50eXBlID09PSBSZWFjdC5GcmFnbWVudCkge1xuICAgIHJldHVybiBsaXN0LmNvbmNhdChcbiAgICAgIC8vIEB0cy1leHBlY3QtZXJyb3IgQHR5cGVzL3JlYWN0IGRvZXMgbm90IHJlbW92ZSBmcmFnbWVudHMgYnV0IHRoaXMgY291bGQgYWxzbyByZXR1cm4gUmVhY3RQb3J0YWxbXVxuICAgICAgUmVhY3QuQ2hpbGRyZW4udG9BcnJheShjaGlsZC5wcm9wcy5jaGlsZHJlbikucmVkdWNlKFxuICAgICAgICAvLyBAdHMtZXhwZWN0LWVycm9yIEB0eXBlcy9yZWFjdCBkb2VzIG5vdCByZW1vdmUgZnJhZ21lbnRzIGJ1dCB0aGlzIGNvdWxkIGFsc28gcmV0dXJuIFJlYWN0UG9ydGFsW11cbiAgICAgICAgKFxuICAgICAgICAgIGZyYWdtZW50TGlzdDogQXJyYXk8UmVhY3QuUmVhY3RFbGVtZW50PGFueT4+LFxuICAgICAgICAgIGZyYWdtZW50Q2hpbGQ6IFJlYWN0LlJlYWN0RWxlbWVudCB8IG51bWJlciB8IHN0cmluZ1xuICAgICAgICApOiBBcnJheTxSZWFjdC5SZWFjdEVsZW1lbnQ8YW55Pj4gPT4ge1xuICAgICAgICAgIGlmIChcbiAgICAgICAgICAgIHR5cGVvZiBmcmFnbWVudENoaWxkID09PSAnc3RyaW5nJyB8fFxuICAgICAgICAgICAgdHlwZW9mIGZyYWdtZW50Q2hpbGQgPT09ICdudW1iZXInXG4gICAgICAgICAgKSB7XG4gICAgICAgICAgICByZXR1cm4gZnJhZ21lbnRMaXN0XG4gICAgICAgICAgfVxuICAgICAgICAgIHJldHVybiBmcmFnbWVudExpc3QuY29uY2F0KGZyYWdtZW50Q2hpbGQpXG4gICAgICAgIH0sXG4gICAgICAgIFtdXG4gICAgICApXG4gICAgKVxuICB9XG4gIHJldHVybiBsaXN0LmNvbmNhdChjaGlsZClcbn1cblxuY29uc3QgTUVUQVRZUEVTID0gWyduYW1lJywgJ2h0dHBFcXVpdicsICdjaGFyU2V0JywgJ2l0ZW1Qcm9wJ11cblxuLypcbiByZXR1cm5zIGEgZnVuY3Rpb24gZm9yIGZpbHRlcmluZyBoZWFkIGNoaWxkIGVsZW1lbnRzXG4gd2hpY2ggc2hvdWxkbid0IGJlIGR1cGxpY2F0ZWQsIGxpa2UgPHRpdGxlLz5cbiBBbHNvIGFkZHMgc3VwcG9ydCBmb3IgZGVkdXBsaWNhdGVkIGBrZXlgIHByb3BlcnRpZXNcbiovXG5mdW5jdGlvbiB1bmlxdWUoKSB7XG4gIGNvbnN0IGtleXMgPSBuZXcgU2V0KClcbiAgY29uc3QgdGFncyA9IG5ldyBTZXQoKVxuICBjb25zdCBtZXRhVHlwZXMgPSBuZXcgU2V0KClcbiAgY29uc3QgbWV0YUNhdGVnb3JpZXM6IHsgW21ldGF0eXBlOiBzdHJpbmddOiBTZXQ8c3RyaW5nPiB9ID0ge31cblxuICByZXR1cm4gKGg6IFJlYWN0LlJlYWN0RWxlbWVudDxhbnk+KSA9PiB7XG4gICAgbGV0IGlzVW5pcXVlID0gdHJ1ZVxuICAgIGxldCBoYXNLZXkgPSBmYWxzZVxuXG4gICAgaWYgKGgua2V5ICYmIHR5cGVvZiBoLmtleSAhPT0gJ251bWJlcicgJiYgaC5rZXkuaW5kZXhPZignJCcpID4gMCkge1xuICAgICAgaGFzS2V5ID0gdHJ1ZVxuICAgICAgY29uc3Qga2V5ID0gaC5rZXkuc2xpY2UoaC5rZXkuaW5kZXhPZignJCcpICsgMSlcbiAgICAgIGlmIChrZXlzLmhhcyhrZXkpKSB7XG4gICAgICAgIGlzVW5pcXVlID0gZmFsc2VcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGtleXMuYWRkKGtleSlcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgZGVmYXVsdC1jYXNlXG4gICAgc3dpdGNoIChoLnR5cGUpIHtcbiAgICAgIGNhc2UgJ3RpdGxlJzpcbiAgICAgIGNhc2UgJ2Jhc2UnOlxuICAgICAgICBpZiAodGFncy5oYXMoaC50eXBlKSkge1xuICAgICAgICAgIGlzVW5pcXVlID0gZmFsc2VcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICB0YWdzLmFkZChoLnR5cGUpXG4gICAgICAgIH1cbiAgICAgICAgYnJlYWtcbiAgICAgIGNhc2UgJ21ldGEnOlxuICAgICAgICBmb3IgKGxldCBpID0gMCwgbGVuID0gTUVUQVRZUEVTLmxlbmd0aDsgaSA8IGxlbjsgaSsrKSB7XG4gICAgICAgICAgY29uc3QgbWV0YXR5cGUgPSBNRVRBVFlQRVNbaV1cbiAgICAgICAgICBpZiAoIWgucHJvcHMuaGFzT3duUHJvcGVydHkobWV0YXR5cGUpKSBjb250aW51ZVxuXG4gICAgICAgICAgaWYgKG1ldGF0eXBlID09PSAnY2hhclNldCcpIHtcbiAgICAgICAgICAgIGlmIChtZXRhVHlwZXMuaGFzKG1ldGF0eXBlKSkge1xuICAgICAgICAgICAgICBpc1VuaXF1ZSA9IGZhbHNlXG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICBtZXRhVHlwZXMuYWRkKG1ldGF0eXBlKVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBjb25zdCBjYXRlZ29yeSA9IGgucHJvcHNbbWV0YXR5cGVdXG4gICAgICAgICAgICBjb25zdCBjYXRlZ29yaWVzID0gbWV0YUNhdGVnb3JpZXNbbWV0YXR5cGVdIHx8IG5ldyBTZXQoKVxuICAgICAgICAgICAgaWYgKChtZXRhdHlwZSAhPT0gJ25hbWUnIHx8ICFoYXNLZXkpICYmIGNhdGVnb3JpZXMuaGFzKGNhdGVnb3J5KSkge1xuICAgICAgICAgICAgICBpc1VuaXF1ZSA9IGZhbHNlXG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICBjYXRlZ29yaWVzLmFkZChjYXRlZ29yeSlcbiAgICAgICAgICAgICAgbWV0YUNhdGVnb3JpZXNbbWV0YXR5cGVdID0gY2F0ZWdvcmllc1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBicmVha1xuICAgIH1cblxuICAgIHJldHVybiBpc1VuaXF1ZVxuICB9XG59XG5cbi8qKlxuICpcbiAqIEBwYXJhbSBoZWFkQ2hpbGRyZW5FbGVtZW50cyBMaXN0IG9mIGNoaWxkcmVuIG9mIDxIZWFkPlxuICovXG5mdW5jdGlvbiByZWR1Y2VDb21wb25lbnRzPFQgZXh0ZW5kcyB7fSAmIFdpdGhJbkFtcE1vZGU+KFxuICBoZWFkQ2hpbGRyZW5FbGVtZW50czogQXJyYXk8UmVhY3QuUmVhY3RFbGVtZW50PGFueT4+LFxuICBwcm9wczogVFxuKSB7XG4gIGNvbnN0IHsgaW5BbXBNb2RlIH0gPSBwcm9wc1xuICByZXR1cm4gaGVhZENoaWxkcmVuRWxlbWVudHNcbiAgICAucmVkdWNlKG9ubHlSZWFjdEVsZW1lbnQsIFtdKVxuICAgIC5yZXZlcnNlKClcbiAgICAuY29uY2F0KGRlZmF1bHRIZWFkKGluQW1wTW9kZSkucmV2ZXJzZSgpKVxuICAgIC5maWx0ZXIodW5pcXVlKCkpXG4gICAgLnJldmVyc2UoKVxuICAgIC5tYXAoKGM6IFJlYWN0LlJlYWN0RWxlbWVudDxhbnk+LCBpOiBudW1iZXIpID0+IHtcbiAgICAgIGNvbnN0IGtleSA9IGMua2V5IHx8IGlcbiAgICAgIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViA9PT0gJ2RldmVsb3BtZW50Jykge1xuICAgICAgICAvLyBvbWl0IEpTT04tTEQgc3RydWN0dXJlZCBkYXRhIHNuaXBwZXRzIGZyb20gdGhlIHdhcm5pbmdcbiAgICAgICAgaWYgKGMudHlwZSA9PT0gJ3NjcmlwdCcgJiYgYy5wcm9wc1sndHlwZSddICE9PSAnYXBwbGljYXRpb24vbGQranNvbicpIHtcbiAgICAgICAgICBjb25zdCBzcmNNZXNzYWdlID0gYy5wcm9wc1snc3JjJ11cbiAgICAgICAgICAgID8gYDxzY3JpcHQ+IHRhZyB3aXRoIHNyYz1cIiR7Yy5wcm9wc1snc3JjJ119XCJgXG4gICAgICAgICAgICA6IGBpbmxpbmUgPHNjcmlwdD5gXG4gICAgICAgICAgd2Fybk9uY2UoXG4gICAgICAgICAgICBgRG8gbm90IGFkZCA8c2NyaXB0PiB0YWdzIHVzaW5nIG5leHQvaGVhZCAoc2VlICR7c3JjTWVzc2FnZX0pLiBVc2UgbmV4dC9zY3JpcHQgaW5zdGVhZC4gXFxuU2VlIG1vcmUgaW5mbyBoZXJlOiBodHRwczovL25leHRqcy5vcmcvZG9jcy9tZXNzYWdlcy9uby1zY3JpcHQtdGFncy1pbi1oZWFkLWNvbXBvbmVudGBcbiAgICAgICAgICApXG4gICAgICAgIH0gZWxzZSBpZiAoYy50eXBlID09PSAnbGluaycgJiYgYy5wcm9wc1sncmVsJ10gPT09ICdzdHlsZXNoZWV0Jykge1xuICAgICAgICAgIHdhcm5PbmNlKFxuICAgICAgICAgICAgYERvIG5vdCBhZGQgc3R5bGVzaGVldHMgdXNpbmcgbmV4dC9oZWFkIChzZWUgPGxpbmsgcmVsPVwic3R5bGVzaGVldFwiPiB0YWcgd2l0aCBocmVmPVwiJHtjLnByb3BzWydocmVmJ119XCIpLiBVc2UgRG9jdW1lbnQgaW5zdGVhZC4gXFxuU2VlIG1vcmUgaW5mbyBoZXJlOiBodHRwczovL25leHRqcy5vcmcvZG9jcy9tZXNzYWdlcy9uby1zdHlsZXNoZWV0cy1pbi1oZWFkLWNvbXBvbmVudGBcbiAgICAgICAgICApXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIHJldHVybiBSZWFjdC5jbG9uZUVsZW1lbnQoYywgeyBrZXkgfSlcbiAgICB9KVxufVxuXG4vKipcbiAqIFRoaXMgY29tcG9uZW50IGluamVjdHMgZWxlbWVudHMgdG8gYDxoZWFkPmAgb2YgeW91ciBwYWdlLlxuICogVG8gYXZvaWQgZHVwbGljYXRlZCBgdGFnc2AgaW4gYDxoZWFkPmAgeW91IGNhbiB1c2UgdGhlIGBrZXlgIHByb3BlcnR5LCB3aGljaCB3aWxsIG1ha2Ugc3VyZSBldmVyeSB0YWcgaXMgb25seSByZW5kZXJlZCBvbmNlLlxuICovXG5mdW5jdGlvbiBIZWFkKHsgY2hpbGRyZW4gfTogeyBjaGlsZHJlbjogUmVhY3QuUmVhY3ROb2RlIH0pIHtcbiAgY29uc3QgYW1wU3RhdGUgPSB1c2VDb250ZXh0KEFtcFN0YXRlQ29udGV4dClcbiAgY29uc3QgaGVhZE1hbmFnZXIgPSB1c2VDb250ZXh0KEhlYWRNYW5hZ2VyQ29udGV4dClcbiAgcmV0dXJuIChcbiAgICA8RWZmZWN0XG4gICAgICByZWR1Y2VDb21wb25lbnRzVG9TdGF0ZT17cmVkdWNlQ29tcG9uZW50c31cbiAgICAgIGhlYWRNYW5hZ2VyPXtoZWFkTWFuYWdlcn1cbiAgICAgIGluQW1wTW9kZT17aXNJbkFtcE1vZGUoYW1wU3RhdGUpfVxuICAgID5cbiAgICAgIHtjaGlsZHJlbn1cbiAgICA8L0VmZmVjdD5cbiAgKVxufVxuXG5leHBvcnQgZGVmYXVsdCBIZWFkXG4iXSwibmFtZXMiOlsiZGVmYXVsdEhlYWQiLCJpbkFtcE1vZGUiLCJoZWFkIiwibWV0YSIsImNoYXJTZXQiLCJwdXNoIiwibmFtZSIsImNvbnRlbnQiLCJvbmx5UmVhY3RFbGVtZW50IiwibGlzdCIsImNoaWxkIiwidHlwZSIsIlJlYWN0IiwiRnJhZ21lbnQiLCJjb25jYXQiLCJDaGlsZHJlbiIsInRvQXJyYXkiLCJwcm9wcyIsImNoaWxkcmVuIiwicmVkdWNlIiwiZnJhZ21lbnRMaXN0IiwiZnJhZ21lbnRDaGlsZCIsIk1FVEFUWVBFUyIsInVuaXF1ZSIsImtleXMiLCJTZXQiLCJ0YWdzIiwibWV0YVR5cGVzIiwibWV0YUNhdGVnb3JpZXMiLCJoIiwiaXNVbmlxdWUiLCJoYXNLZXkiLCJrZXkiLCJpbmRleE9mIiwic2xpY2UiLCJoYXMiLCJhZGQiLCJpIiwibGVuIiwibGVuZ3RoIiwibWV0YXR5cGUiLCJoYXNPd25Qcm9wZXJ0eSIsImNhdGVnb3J5IiwiY2F0ZWdvcmllcyIsInJlZHVjZUNvbXBvbmVudHMiLCJoZWFkQ2hpbGRyZW5FbGVtZW50cyIsInJldmVyc2UiLCJmaWx0ZXIiLCJtYXAiLCJjIiwicHJvY2VzcyIsImVudiIsIk5PREVfRU5WIiwic3JjTWVzc2FnZSIsIndhcm5PbmNlIiwiY2xvbmVFbGVtZW50IiwiSGVhZCIsImFtcFN0YXRlIiwidXNlQ29udGV4dCIsIkFtcFN0YXRlQ29udGV4dCIsImhlYWRNYW5hZ2VyIiwiSGVhZE1hbmFnZXJDb250ZXh0IiwiRWZmZWN0IiwicmVkdWNlQ29tcG9uZW50c1RvU3RhdGUiLCJpc0luQW1wTW9kZSJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(pages-dir-browser)/./node_modules/next/dist/shared/lib/head.js\n")); - -/***/ }), - -/***/ "(pages-dir-browser)/./node_modules/next/dist/shared/lib/side-effect.js": -/*!**********************************************************!*\ - !*** ./node_modules/next/dist/shared/lib/side-effect.js ***! - \**********************************************************/ -/***/ ((module, exports, __webpack_require__) => { - -eval(__webpack_require__.ts("\nvar _s = $RefreshSig$();\n\"use strict\";\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"default\", ({\n enumerable: true,\n get: function() {\n return SideEffect;\n }\n}));\nconst _react = __webpack_require__(/*! react */ \"(pages-dir-browser)/./node_modules/react/index.js\");\nconst isServer = \"object\" === 'undefined';\nconst useClientOnlyLayoutEffect = isServer ? ()=>{} : _react.useLayoutEffect;\nconst useClientOnlyEffect = isServer ? ()=>{} : _react.useEffect;\nfunction SideEffect(props) {\n _s();\n const { headManager, reduceComponentsToState } = props;\n function emitChange() {\n if (headManager && headManager.mountedInstances) {\n const headElements = _react.Children.toArray(Array.from(headManager.mountedInstances).filter(Boolean));\n headManager.updateHead(reduceComponentsToState(headElements, props));\n }\n }\n if (isServer) {\n var _headManager_mountedInstances;\n headManager == null ? void 0 : (_headManager_mountedInstances = headManager.mountedInstances) == null ? void 0 : _headManager_mountedInstances.add(props.children);\n emitChange();\n }\n useClientOnlyLayoutEffect({\n \"SideEffect.useClientOnlyLayoutEffect\": ()=>{\n var _headManager_mountedInstances;\n headManager == null ? void 0 : (_headManager_mountedInstances = headManager.mountedInstances) == null ? void 0 : _headManager_mountedInstances.add(props.children);\n return ({\n \"SideEffect.useClientOnlyLayoutEffect\": ()=>{\n var _headManager_mountedInstances;\n headManager == null ? void 0 : (_headManager_mountedInstances = headManager.mountedInstances) == null ? void 0 : _headManager_mountedInstances.delete(props.children);\n }\n })[\"SideEffect.useClientOnlyLayoutEffect\"];\n }\n }[\"SideEffect.useClientOnlyLayoutEffect\"]);\n // We need to call `updateHead` method whenever the `SideEffect` is trigger in all\n // life-cycles: mount, update, unmount. However, if there are multiple `SideEffect`s\n // being rendered, we only trigger the method from the last one.\n // This is ensured by keeping the last unflushed `updateHead` in the `_pendingUpdate`\n // singleton in the layout effect pass, and actually trigger it in the effect pass.\n useClientOnlyLayoutEffect({\n \"SideEffect.useClientOnlyLayoutEffect\": ()=>{\n if (headManager) {\n headManager._pendingUpdate = emitChange;\n }\n return ({\n \"SideEffect.useClientOnlyLayoutEffect\": ()=>{\n if (headManager) {\n headManager._pendingUpdate = emitChange;\n }\n }\n })[\"SideEffect.useClientOnlyLayoutEffect\"];\n }\n }[\"SideEffect.useClientOnlyLayoutEffect\"]);\n useClientOnlyEffect({\n \"SideEffect.useClientOnlyEffect\": ()=>{\n if (headManager && headManager._pendingUpdate) {\n headManager._pendingUpdate();\n headManager._pendingUpdate = null;\n }\n return ({\n \"SideEffect.useClientOnlyEffect\": ()=>{\n if (headManager && headManager._pendingUpdate) {\n headManager._pendingUpdate();\n headManager._pendingUpdate = null;\n }\n }\n })[\"SideEffect.useClientOnlyEffect\"];\n }\n }[\"SideEffect.useClientOnlyEffect\"]);\n return null;\n} //# sourceMappingURL=side-effect.js.map\n_s(SideEffect, \"gHVkikNHNxjVdD11eJBzaqkCiPY=\", false, function() {\n return [\n useClientOnlyLayoutEffect,\n useClientOnlyLayoutEffect,\n useClientOnlyEffect\n ];\n});\n_c = SideEffect;\nvar _c;\n$RefreshReg$(_c, \"SideEffect\");\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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3Qvc2hhcmVkL2xpYi9zaWRlLWVmZmVjdC5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7MkNBb0JBOzs7ZUFBd0JBOzs7bUNBbkJ1QztBQWUvRCxNQUFNQyxXQUFXLE9BQU9DLE1BQVc7QUFDbkMsTUFBTUMsNEJBQTRCRixXQUFXLEtBQU8sSUFBSUcsT0FBQUEsZUFBZTtBQUN2RSxNQUFNQyxzQkFBc0JKLFdBQVcsS0FBTyxJQUFJSyxPQUFBQSxTQUFTO0FBRTVDLG9CQUFvQkMsS0FBc0I7O0lBQ3ZELE1BQU0sRUFBRUMsV0FBVyxFQUFFQyx1QkFBdUIsRUFBRSxHQUFHRjtJQUVqRCxTQUFTRztRQUNQLElBQUlGLGVBQWVBLFlBQVlHLGdCQUFnQixFQUFFO1lBQy9DLE1BQU1DLGVBQWVDLE9BQUFBLFFBQVEsQ0FBQ0MsT0FBTyxDQUNuQ0MsTUFBTUMsSUFBSSxDQUFDUixZQUFZRyxnQkFBZ0IsRUFBMEJNLE1BQU0sQ0FDckVDO1lBR0pWLFlBQVlXLFVBQVUsQ0FBQ1Ysd0JBQXdCRyxjQUFjTDtRQUMvRDtJQUNGO0lBRUEsSUFBSU4sVUFBVTtZQUNaTztRQUFBQSxlQUFBQSxPQUFBQSxLQUFBQSxJQUFBQSxDQUFBQSxnQ0FBQUEsWUFBYUcsZ0JBQUFBLEtBQWdCLGdCQUE3QkgsOEJBQStCWSxHQUFHLENBQUNiLE1BQU1jLFFBQVE7UUFDakRYO0lBQ0Y7O2dEQUUwQjtnQkFDeEJGO1lBQUFBLGVBQUFBLE9BQUFBLEtBQUFBLElBQUFBLENBQUFBLGdDQUFBQSxZQUFhRyxnQkFBQUEsS0FBZ0IsZ0JBQTdCSCw4QkFBK0JZLEdBQUcsQ0FBQ2IsTUFBTWMsUUFBUTtZQUNqRDt3REFBTzt3QkFDTGI7b0JBQUFBLGVBQUFBLE9BQUFBLEtBQUFBLElBQUFBLENBQUFBLGdDQUFBQSxZQUFhRyxnQkFBQUEsS0FBZ0IsZ0JBQTdCSCw4QkFBK0JjLE1BQU0sQ0FBQ2YsTUFBTWMsUUFBUTtnQkFDdEQ7O1FBQ0Y7O0lBRUEsa0ZBQWtGO0lBQ2xGLG9GQUFvRjtJQUNwRixnRUFBZ0U7SUFDaEUscUZBQXFGO0lBQ3JGLG1GQUFtRjs7Z0RBQ3pEO1lBQ3hCLElBQUliLGFBQWE7Z0JBQ2ZBLFlBQVllLGNBQWMsR0FBR2I7WUFDL0I7WUFDQTt3REFBTztvQkFDTCxJQUFJRixhQUFhO3dCQUNmQSxZQUFZZSxjQUFjLEdBQUdiO29CQUMvQjtnQkFDRjs7UUFDRjs7OzBDQUVvQjtZQUNsQixJQUFJRixlQUFlQSxZQUFZZSxjQUFjLEVBQUU7Z0JBQzdDZixZQUFZZSxjQUFjO2dCQUMxQmYsWUFBWWUsY0FBYyxHQUFHO1lBQy9CO1lBQ0E7a0RBQU87b0JBQ0wsSUFBSWYsZUFBZUEsWUFBWWUsY0FBYyxFQUFFO3dCQUM3Q2YsWUFBWWUsY0FBYzt3QkFDMUJmLFlBQVllLGNBQWMsR0FBRztvQkFDL0I7Z0JBQ0Y7O1FBQ0Y7O0lBRUEsT0FBTztBQUNUOzs7UUFyQ0VwQjtRQVlBQTtRQVdBRTs7O0tBMUNzQkwiLCJzb3VyY2VzIjpbIkQ6XFxzcmNcXHNoYXJlZFxcbGliXFxzaWRlLWVmZmVjdC50c3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgUmVhY3QgZnJvbSAncmVhY3QnXG5pbXBvcnQgeyBDaGlsZHJlbiwgdXNlRWZmZWN0LCB1c2VMYXlvdXRFZmZlY3QsIHR5cGUgSlNYIH0gZnJvbSAncmVhY3QnXG5cbnR5cGUgU3RhdGUgPSBKU1guRWxlbWVudFtdIHwgdW5kZWZpbmVkXG5cbmV4cG9ydCB0eXBlIFNpZGVFZmZlY3RQcm9wcyA9IHtcbiAgcmVkdWNlQ29tcG9uZW50c1RvU3RhdGU6IDxUIGV4dGVuZHMge30+KFxuICAgIGNvbXBvbmVudHM6IEFycmF5PFJlYWN0LlJlYWN0RWxlbWVudDxhbnk+PixcbiAgICBwcm9wczogVFxuICApID0+IFN0YXRlXG4gIGhhbmRsZVN0YXRlQ2hhbmdlPzogKHN0YXRlOiBTdGF0ZSkgPT4gdm9pZFxuICBoZWFkTWFuYWdlcjogYW55XG4gIGluQW1wTW9kZT86IGJvb2xlYW5cbiAgY2hpbGRyZW46IFJlYWN0LlJlYWN0Tm9kZVxufVxuXG5jb25zdCBpc1NlcnZlciA9IHR5cGVvZiB3aW5kb3cgPT09ICd1bmRlZmluZWQnXG5jb25zdCB1c2VDbGllbnRPbmx5TGF5b3V0RWZmZWN0ID0gaXNTZXJ2ZXIgPyAoKSA9PiB7fSA6IHVzZUxheW91dEVmZmVjdFxuY29uc3QgdXNlQ2xpZW50T25seUVmZmVjdCA9IGlzU2VydmVyID8gKCkgPT4ge30gOiB1c2VFZmZlY3RcblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gU2lkZUVmZmVjdChwcm9wczogU2lkZUVmZmVjdFByb3BzKSB7XG4gIGNvbnN0IHsgaGVhZE1hbmFnZXIsIHJlZHVjZUNvbXBvbmVudHNUb1N0YXRlIH0gPSBwcm9wc1xuXG4gIGZ1bmN0aW9uIGVtaXRDaGFuZ2UoKSB7XG4gICAgaWYgKGhlYWRNYW5hZ2VyICYmIGhlYWRNYW5hZ2VyLm1vdW50ZWRJbnN0YW5jZXMpIHtcbiAgICAgIGNvbnN0IGhlYWRFbGVtZW50cyA9IENoaWxkcmVuLnRvQXJyYXkoXG4gICAgICAgIEFycmF5LmZyb20oaGVhZE1hbmFnZXIubW91bnRlZEluc3RhbmNlcyBhcyBTZXQ8UmVhY3QuUmVhY3ROb2RlPikuZmlsdGVyKFxuICAgICAgICAgIEJvb2xlYW5cbiAgICAgICAgKVxuICAgICAgKSBhcyBSZWFjdC5SZWFjdEVsZW1lbnRbXVxuICAgICAgaGVhZE1hbmFnZXIudXBkYXRlSGVhZChyZWR1Y2VDb21wb25lbnRzVG9TdGF0ZShoZWFkRWxlbWVudHMsIHByb3BzKSlcbiAgICB9XG4gIH1cblxuICBpZiAoaXNTZXJ2ZXIpIHtcbiAgICBoZWFkTWFuYWdlcj8ubW91bnRlZEluc3RhbmNlcz8uYWRkKHByb3BzLmNoaWxkcmVuKVxuICAgIGVtaXRDaGFuZ2UoKVxuICB9XG5cbiAgdXNlQ2xpZW50T25seUxheW91dEVmZmVjdCgoKSA9PiB7XG4gICAgaGVhZE1hbmFnZXI/Lm1vdW50ZWRJbnN0YW5jZXM/LmFkZChwcm9wcy5jaGlsZHJlbilcbiAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgaGVhZE1hbmFnZXI/Lm1vdW50ZWRJbnN0YW5jZXM/LmRlbGV0ZShwcm9wcy5jaGlsZHJlbilcbiAgICB9XG4gIH0pXG5cbiAgLy8gV2UgbmVlZCB0byBjYWxsIGB1cGRhdGVIZWFkYCBtZXRob2Qgd2hlbmV2ZXIgdGhlIGBTaWRlRWZmZWN0YCBpcyB0cmlnZ2VyIGluIGFsbFxuICAvLyBsaWZlLWN5Y2xlczogbW91bnQsIHVwZGF0ZSwgdW5tb3VudC4gSG93ZXZlciwgaWYgdGhlcmUgYXJlIG11bHRpcGxlIGBTaWRlRWZmZWN0YHNcbiAgLy8gYmVpbmcgcmVuZGVyZWQsIHdlIG9ubHkgdHJpZ2dlciB0aGUgbWV0aG9kIGZyb20gdGhlIGxhc3Qgb25lLlxuICAvLyBUaGlzIGlzIGVuc3VyZWQgYnkga2VlcGluZyB0aGUgbGFzdCB1bmZsdXNoZWQgYHVwZGF0ZUhlYWRgIGluIHRoZSBgX3BlbmRpbmdVcGRhdGVgXG4gIC8vIHNpbmdsZXRvbiBpbiB0aGUgbGF5b3V0IGVmZmVjdCBwYXNzLCBhbmQgYWN0dWFsbHkgdHJpZ2dlciBpdCBpbiB0aGUgZWZmZWN0IHBhc3MuXG4gIHVzZUNsaWVudE9ubHlMYXlvdXRFZmZlY3QoKCkgPT4ge1xuICAgIGlmIChoZWFkTWFuYWdlcikge1xuICAgICAgaGVhZE1hbmFnZXIuX3BlbmRpbmdVcGRhdGUgPSBlbWl0Q2hhbmdlXG4gICAgfVxuICAgIHJldHVybiAoKSA9PiB7XG4gICAgICBpZiAoaGVhZE1hbmFnZXIpIHtcbiAgICAgICAgaGVhZE1hbmFnZXIuX3BlbmRpbmdVcGRhdGUgPSBlbWl0Q2hhbmdlXG4gICAgICB9XG4gICAgfVxuICB9KVxuXG4gIHVzZUNsaWVudE9ubHlFZmZlY3QoKCkgPT4ge1xuICAgIGlmIChoZWFkTWFuYWdlciAmJiBoZWFkTWFuYWdlci5fcGVuZGluZ1VwZGF0ZSkge1xuICAgICAgaGVhZE1hbmFnZXIuX3BlbmRpbmdVcGRhdGUoKVxuICAgICAgaGVhZE1hbmFnZXIuX3BlbmRpbmdVcGRhdGUgPSBudWxsXG4gICAgfVxuICAgIHJldHVybiAoKSA9PiB7XG4gICAgICBpZiAoaGVhZE1hbmFnZXIgJiYgaGVhZE1hbmFnZXIuX3BlbmRpbmdVcGRhdGUpIHtcbiAgICAgICAgaGVhZE1hbmFnZXIuX3BlbmRpbmdVcGRhdGUoKVxuICAgICAgICBoZWFkTWFuYWdlci5fcGVuZGluZ1VwZGF0ZSA9IG51bGxcbiAgICAgIH1cbiAgICB9XG4gIH0pXG5cbiAgcmV0dXJuIG51bGxcbn1cbiJdLCJuYW1lcyI6WyJTaWRlRWZmZWN0IiwiaXNTZXJ2ZXIiLCJ3aW5kb3ciLCJ1c2VDbGllbnRPbmx5TGF5b3V0RWZmZWN0IiwidXNlTGF5b3V0RWZmZWN0IiwidXNlQ2xpZW50T25seUVmZmVjdCIsInVzZUVmZmVjdCIsInByb3BzIiwiaGVhZE1hbmFnZXIiLCJyZWR1Y2VDb21wb25lbnRzVG9TdGF0ZSIsImVtaXRDaGFuZ2UiLCJtb3VudGVkSW5zdGFuY2VzIiwiaGVhZEVsZW1lbnRzIiwiQ2hpbGRyZW4iLCJ0b0FycmF5IiwiQXJyYXkiLCJmcm9tIiwiZmlsdGVyIiwiQm9vbGVhbiIsInVwZGF0ZUhlYWQiLCJhZGQiLCJjaGlsZHJlbiIsImRlbGV0ZSIsIl9wZW5kaW5nVXBkYXRlIl0sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(pages-dir-browser)/./node_modules/next/dist/shared/lib/side-effect.js\n")); - -/***/ }) - -}]); \ No newline at end of file diff --git a/build/static/chunks/main.js b/build/static/chunks/main.js deleted file mode 100644 index c7960d7..0000000 --- a/build/static/chunks/main.js +++ /dev/null @@ -1,1496 +0,0 @@ -/* - * ATTENTION: An "eval-source-map" devtool has been used. - * This devtool is neither made for production nor for readable output files. - * It uses "eval()" calls to create a separate source file with attached SourceMaps in the browser devtools. - * If you are trying to read the output file, select a different devtool (https://webpack.js.org/configuration/devtool/) - * or disable the default devtool with "devtool: false". - * If you are looking for production-ready output files, see mode: "production" (https://webpack.js.org/configuration/mode/). - */ -(self["webpackChunk_N_E"] = self["webpackChunk_N_E"] || []).push([["main"],{ - -/***/ "(pages-dir-browser)/./node_modules/@swc/helpers/esm/_class_private_field_loose_base.js": -/*!**************************************************************************!*\ - !*** ./node_modules/@swc/helpers/esm/_class_private_field_loose_base.js ***! - \**************************************************************************/ -/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { - -"use strict"; -eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ _: () => (/* binding */ _class_private_field_loose_base)\n/* harmony export */ });\nfunction _class_private_field_loose_base(receiver, privateKey) {\n if (!Object.prototype.hasOwnProperty.call(receiver, privateKey)) {\n throw new TypeError(\"attempted to use private field on non-instance\");\n }\n\n return receiver;\n}\n\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9Ac3djL2hlbHBlcnMvZXNtL19jbGFzc19wcml2YXRlX2ZpZWxkX2xvb3NlX2Jhc2UuanMiLCJtYXBwaW5ncyI6Ijs7OztBQUFBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDZ0QiLCJzb3VyY2VzIjpbIkQ6XFxkb25neXVuLXByb2plY3RzXFx0d29cXG5vZGVfbW9kdWxlc1xcQHN3Y1xcaGVscGVyc1xcZXNtXFxfY2xhc3NfcHJpdmF0ZV9maWVsZF9sb29zZV9iYXNlLmpzIl0sInNvdXJjZXNDb250ZW50IjpbImZ1bmN0aW9uIF9jbGFzc19wcml2YXRlX2ZpZWxkX2xvb3NlX2Jhc2UocmVjZWl2ZXIsIHByaXZhdGVLZXkpIHtcbiAgICBpZiAoIU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChyZWNlaXZlciwgcHJpdmF0ZUtleSkpIHtcbiAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcihcImF0dGVtcHRlZCB0byB1c2UgcHJpdmF0ZSBmaWVsZCBvbiBub24taW5zdGFuY2VcIik7XG4gICAgfVxuXG4gICAgcmV0dXJuIHJlY2VpdmVyO1xufVxuZXhwb3J0IHsgX2NsYXNzX3ByaXZhdGVfZmllbGRfbG9vc2VfYmFzZSBhcyBfIH07XG4iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(pages-dir-browser)/./node_modules/@swc/helpers/esm/_class_private_field_loose_base.js\n")); - -/***/ }), - -/***/ "(pages-dir-browser)/./node_modules/@swc/helpers/esm/_class_private_field_loose_key.js": -/*!*************************************************************************!*\ - !*** ./node_modules/@swc/helpers/esm/_class_private_field_loose_key.js ***! - \*************************************************************************/ -/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { - -"use strict"; -eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ _: () => (/* binding */ _class_private_field_loose_key)\n/* harmony export */ });\nvar id = 0;\n\nfunction _class_private_field_loose_key(name) {\n return \"__private_\" + id++ + \"_\" + name;\n}\n\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9Ac3djL2hlbHBlcnMvZXNtL19jbGFzc19wcml2YXRlX2ZpZWxkX2xvb3NlX2tleS5qcyIsIm1hcHBpbmdzIjoiOzs7O0FBQUE7O0FBRUE7QUFDQTtBQUNBO0FBQytDIiwic291cmNlcyI6WyJEOlxcZG9uZ3l1bi1wcm9qZWN0c1xcdHdvXFxub2RlX21vZHVsZXNcXEBzd2NcXGhlbHBlcnNcXGVzbVxcX2NsYXNzX3ByaXZhdGVfZmllbGRfbG9vc2Vfa2V5LmpzIl0sInNvdXJjZXNDb250ZW50IjpbInZhciBpZCA9IDA7XG5cbmZ1bmN0aW9uIF9jbGFzc19wcml2YXRlX2ZpZWxkX2xvb3NlX2tleShuYW1lKSB7XG4gICAgcmV0dXJuIFwiX19wcml2YXRlX1wiICsgaWQrKyArIFwiX1wiICsgbmFtZTtcbn1cbmV4cG9ydCB7IF9jbGFzc19wcml2YXRlX2ZpZWxkX2xvb3NlX2tleSBhcyBfIH07XG4iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(pages-dir-browser)/./node_modules/@swc/helpers/esm/_class_private_field_loose_key.js\n")); - -/***/ }), - -/***/ "(pages-dir-browser)/./node_modules/@swc/helpers/esm/_interop_require_default.js": -/*!*******************************************************************!*\ - !*** ./node_modules/@swc/helpers/esm/_interop_require_default.js ***! - \*******************************************************************/ -/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { - -"use strict"; -eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ _: () => (/* binding */ _interop_require_default)\n/* harmony export */ });\nfunction _interop_require_default(obj) {\n return obj && obj.__esModule ? obj : { default: obj };\n}\n\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9Ac3djL2hlbHBlcnMvZXNtL19pbnRlcm9wX3JlcXVpcmVfZGVmYXVsdC5qcyIsIm1hcHBpbmdzIjoiOzs7O0FBQUE7QUFDQSwyQ0FBMkM7QUFDM0M7QUFDeUMiLCJzb3VyY2VzIjpbIkQ6XFxkb25neXVuLXByb2plY3RzXFx0d29cXG5vZGVfbW9kdWxlc1xcQHN3Y1xcaGVscGVyc1xcZXNtXFxfaW50ZXJvcF9yZXF1aXJlX2RlZmF1bHQuanMiXSwic291cmNlc0NvbnRlbnQiOlsiZnVuY3Rpb24gX2ludGVyb3BfcmVxdWlyZV9kZWZhdWx0KG9iaikge1xuICAgIHJldHVybiBvYmogJiYgb2JqLl9fZXNNb2R1bGUgPyBvYmogOiB7IGRlZmF1bHQ6IG9iaiB9O1xufVxuZXhwb3J0IHsgX2ludGVyb3BfcmVxdWlyZV9kZWZhdWx0IGFzIF8gfTtcbiJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(pages-dir-browser)/./node_modules/@swc/helpers/esm/_interop_require_default.js\n")); - -/***/ }), - -/***/ "(pages-dir-browser)/./node_modules/@swc/helpers/esm/_interop_require_wildcard.js": -/*!********************************************************************!*\ - !*** ./node_modules/@swc/helpers/esm/_interop_require_wildcard.js ***! - \********************************************************************/ -/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { - -"use strict"; -eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ _: () => (/* binding */ _interop_require_wildcard)\n/* harmony export */ });\nfunction _getRequireWildcardCache(nodeInterop) {\n if (typeof WeakMap !== \"function\") return null;\n\n var cacheBabelInterop = new WeakMap();\n var cacheNodeInterop = new WeakMap();\n\n return (_getRequireWildcardCache = function(nodeInterop) {\n return nodeInterop ? cacheNodeInterop : cacheBabelInterop;\n })(nodeInterop);\n}\nfunction _interop_require_wildcard(obj, nodeInterop) {\n if (!nodeInterop && obj && obj.__esModule) return obj;\n if (obj === null || typeof obj !== \"object\" && typeof obj !== \"function\") return { default: obj };\n\n var cache = _getRequireWildcardCache(nodeInterop);\n\n if (cache && cache.has(obj)) return cache.get(obj);\n\n var newObj = { __proto__: null };\n var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;\n\n for (var key in obj) {\n if (key !== \"default\" && Object.prototype.hasOwnProperty.call(obj, key)) {\n var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;\n if (desc && (desc.get || desc.set)) Object.defineProperty(newObj, key, desc);\n else newObj[key] = obj[key];\n }\n }\n\n newObj.default = obj;\n\n if (cache) cache.set(obj, newObj);\n\n return newObj;\n}\n\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9Ac3djL2hlbHBlcnMvZXNtL19pbnRlcm9wX3JlcXVpcmVfd2lsZGNhcmQuanMiLCJtYXBwaW5ncyI6Ijs7OztBQUFBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBLHVGQUF1Rjs7QUFFdkY7O0FBRUE7O0FBRUEsbUJBQW1CO0FBQ25COztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBOztBQUVBOztBQUVBO0FBQ0E7QUFDMEMiLCJzb3VyY2VzIjpbIkQ6XFxkb25neXVuLXByb2plY3RzXFx0d29cXG5vZGVfbW9kdWxlc1xcQHN3Y1xcaGVscGVyc1xcZXNtXFxfaW50ZXJvcF9yZXF1aXJlX3dpbGRjYXJkLmpzIl0sInNvdXJjZXNDb250ZW50IjpbImZ1bmN0aW9uIF9nZXRSZXF1aXJlV2lsZGNhcmRDYWNoZShub2RlSW50ZXJvcCkge1xuICAgIGlmICh0eXBlb2YgV2Vha01hcCAhPT0gXCJmdW5jdGlvblwiKSByZXR1cm4gbnVsbDtcblxuICAgIHZhciBjYWNoZUJhYmVsSW50ZXJvcCA9IG5ldyBXZWFrTWFwKCk7XG4gICAgdmFyIGNhY2hlTm9kZUludGVyb3AgPSBuZXcgV2Vha01hcCgpO1xuXG4gICAgcmV0dXJuIChfZ2V0UmVxdWlyZVdpbGRjYXJkQ2FjaGUgPSBmdW5jdGlvbihub2RlSW50ZXJvcCkge1xuICAgICAgICByZXR1cm4gbm9kZUludGVyb3AgPyBjYWNoZU5vZGVJbnRlcm9wIDogY2FjaGVCYWJlbEludGVyb3A7XG4gICAgfSkobm9kZUludGVyb3ApO1xufVxuZnVuY3Rpb24gX2ludGVyb3BfcmVxdWlyZV93aWxkY2FyZChvYmosIG5vZGVJbnRlcm9wKSB7XG4gICAgaWYgKCFub2RlSW50ZXJvcCAmJiBvYmogJiYgb2JqLl9fZXNNb2R1bGUpIHJldHVybiBvYmo7XG4gICAgaWYgKG9iaiA9PT0gbnVsbCB8fCB0eXBlb2Ygb2JqICE9PSBcIm9iamVjdFwiICYmIHR5cGVvZiBvYmogIT09IFwiZnVuY3Rpb25cIikgcmV0dXJuIHsgZGVmYXVsdDogb2JqIH07XG5cbiAgICB2YXIgY2FjaGUgPSBfZ2V0UmVxdWlyZVdpbGRjYXJkQ2FjaGUobm9kZUludGVyb3ApO1xuXG4gICAgaWYgKGNhY2hlICYmIGNhY2hlLmhhcyhvYmopKSByZXR1cm4gY2FjaGUuZ2V0KG9iaik7XG5cbiAgICB2YXIgbmV3T2JqID0geyBfX3Byb3RvX186IG51bGwgfTtcbiAgICB2YXIgaGFzUHJvcGVydHlEZXNjcmlwdG9yID0gT2JqZWN0LmRlZmluZVByb3BlcnR5ICYmIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3I7XG5cbiAgICBmb3IgKHZhciBrZXkgaW4gb2JqKSB7XG4gICAgICAgIGlmIChrZXkgIT09IFwiZGVmYXVsdFwiICYmIE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChvYmosIGtleSkpIHtcbiAgICAgICAgICAgIHZhciBkZXNjID0gaGFzUHJvcGVydHlEZXNjcmlwdG9yID8gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihvYmosIGtleSkgOiBudWxsO1xuICAgICAgICAgICAgaWYgKGRlc2MgJiYgKGRlc2MuZ2V0IHx8IGRlc2Muc2V0KSkgT2JqZWN0LmRlZmluZVByb3BlcnR5KG5ld09iaiwga2V5LCBkZXNjKTtcbiAgICAgICAgICAgIGVsc2UgbmV3T2JqW2tleV0gPSBvYmpba2V5XTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG5ld09iai5kZWZhdWx0ID0gb2JqO1xuXG4gICAgaWYgKGNhY2hlKSBjYWNoZS5zZXQob2JqLCBuZXdPYmopO1xuXG4gICAgcmV0dXJuIG5ld09iajtcbn1cbmV4cG9ydCB7IF9pbnRlcm9wX3JlcXVpcmVfd2lsZGNhcmQgYXMgXyB9O1xuIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(pages-dir-browser)/./node_modules/@swc/helpers/esm/_interop_require_wildcard.js\n")); - -/***/ }), - -/***/ "(pages-dir-browser)/./node_modules/next/dist/build/deployment-id.js": -/*!*******************************************************!*\ - !*** ./node_modules/next/dist/build/deployment-id.js ***! - \*******************************************************/ -/***/ ((__unused_webpack_module, exports, __webpack_require__) => { - -"use strict"; -eval(__webpack_require__.ts("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"getDeploymentIdQueryOrEmptyString\", ({\n enumerable: true,\n get: function() {\n return getDeploymentIdQueryOrEmptyString;\n }\n}));\nfunction getDeploymentIdQueryOrEmptyString() {\n if (false) {}\n return '';\n}\n\n//# sourceMappingURL=deployment-id.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvYnVpbGQvZGVwbG95bWVudC1pZC5qcyIsIm1hcHBpbmdzIjoiQUFBYTtBQUNiLDhDQUE2QztBQUM3QztBQUNBLENBQUMsRUFBQztBQUNGLHFFQUFvRTtBQUNwRTtBQUNBO0FBQ0E7QUFDQTtBQUNBLENBQUMsRUFBQztBQUNGO0FBQ0EsUUFBUSxLQUE4QixFQUFFLEVBRW5DO0FBQ0w7QUFDQTs7QUFFQSIsInNvdXJjZXMiOlsiRDpcXGRvbmd5dW4tcHJvamVjdHNcXHR3b1xcbm9kZV9tb2R1bGVzXFxuZXh0XFxkaXN0XFxidWlsZFxcZGVwbG95bWVudC1pZC5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwge1xuICAgIHZhbHVlOiB0cnVlXG59KTtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcImdldERlcGxveW1lbnRJZFF1ZXJ5T3JFbXB0eVN0cmluZ1wiLCB7XG4gICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICBnZXQ6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gZ2V0RGVwbG95bWVudElkUXVlcnlPckVtcHR5U3RyaW5nO1xuICAgIH1cbn0pO1xuZnVuY3Rpb24gZ2V0RGVwbG95bWVudElkUXVlcnlPckVtcHR5U3RyaW5nKCkge1xuICAgIGlmIChwcm9jZXNzLmVudi5ORVhUX0RFUExPWU1FTlRfSUQpIHtcbiAgICAgICAgcmV0dXJuIGA/ZHBsPSR7cHJvY2Vzcy5lbnYuTkVYVF9ERVBMT1lNRU5UX0lEfWA7XG4gICAgfVxuICAgIHJldHVybiAnJztcbn1cblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9ZGVwbG95bWVudC1pZC5qcy5tYXAiXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(pages-dir-browser)/./node_modules/next/dist/build/deployment-id.js\n")); - -/***/ }), - -/***/ "(pages-dir-browser)/./node_modules/next/dist/build/polyfills/polyfill-module.js": -/*!*******************************************************************!*\ - !*** ./node_modules/next/dist/build/polyfills/polyfill-module.js ***! - \*******************************************************************/ -/***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => { - -eval(__webpack_require__.ts("\"trimStart\"in String.prototype||(String.prototype.trimStart=String.prototype.trimLeft),\"trimEnd\"in String.prototype||(String.prototype.trimEnd=String.prototype.trimRight),\"description\"in Symbol.prototype||Object.defineProperty(Symbol.prototype,\"description\",{configurable:!0,get:function(){var t=/\\((.*)\\)/.exec(this.toString());return t?t[1]:void 0}}),Array.prototype.flat||(Array.prototype.flat=function(t,r){return r=this.concat.apply([],this),t>1&&r.some(Array.isArray)?r.flat(t-1):r},Array.prototype.flatMap=function(t,r){return this.map(t,r).flat()}),Promise.prototype.finally||(Promise.prototype.finally=function(t){if(\"function\"!=typeof t)return this.then(t,t);var r=this.constructor||Promise;return this.then(function(n){return r.resolve(t()).then(function(){return n})},function(n){return r.resolve(t()).then(function(){throw n})})}),Object.fromEntries||(Object.fromEntries=function(t){return Array.from(t).reduce(function(t,r){return t[r[0]]=r[1],t},{})}),Array.prototype.at||(Array.prototype.at=function(t){var r=Math.trunc(t)||0;if(r<0&&(r+=this.length),!(r<0||r>=this.length))return this[r]}),Object.hasOwn||(Object.hasOwn=function(t,r){if(null==t)throw new TypeError(\"Cannot convert undefined or null to object\");return Object.prototype.hasOwnProperty.call(Object(t),r)}),\"canParse\"in URL||(URL.canParse=function(t,r){try{return!!new URL(t,r)}catch(t){return!1}});\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvYnVpbGQvcG9seWZpbGxzL3BvbHlmaWxsLW1vZHVsZS5qcyIsIm1hcHBpbmdzIjoiQUFBQSxtUUFBbVEsK0JBQStCLHVDQUF1QyxzQkFBc0IsNERBQTRELDZFQUE2RSx1Q0FBdUMsNEJBQTRCLG9FQUFvRSw4Q0FBOEMsZ0NBQWdDLDZCQUE2QixzQ0FBc0MsU0FBUyxFQUFFLGFBQWEsc0NBQXNDLFFBQVEsRUFBRSxFQUFFLHNEQUFzRCwwQ0FBMEMsc0JBQXNCLEdBQUcsRUFBRSxzREFBc0QsdUJBQXVCLCtEQUErRCw4Q0FBOEMsNkVBQTZFLHlEQUF5RCxnREFBZ0QsSUFBSSxxQkFBcUIsU0FBUyxVQUFVIiwic291cmNlcyI6WyJEOlxcZG9uZ3l1bi1wcm9qZWN0c1xcdHdvXFxub2RlX21vZHVsZXNcXG5leHRcXGRpc3RcXGJ1aWxkXFxwb2x5ZmlsbHNcXHBvbHlmaWxsLW1vZHVsZS5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInRyaW1TdGFydFwiaW4gU3RyaW5nLnByb3RvdHlwZXx8KFN0cmluZy5wcm90b3R5cGUudHJpbVN0YXJ0PVN0cmluZy5wcm90b3R5cGUudHJpbUxlZnQpLFwidHJpbUVuZFwiaW4gU3RyaW5nLnByb3RvdHlwZXx8KFN0cmluZy5wcm90b3R5cGUudHJpbUVuZD1TdHJpbmcucHJvdG90eXBlLnRyaW1SaWdodCksXCJkZXNjcmlwdGlvblwiaW4gU3ltYm9sLnByb3RvdHlwZXx8T2JqZWN0LmRlZmluZVByb3BlcnR5KFN5bWJvbC5wcm90b3R5cGUsXCJkZXNjcmlwdGlvblwiLHtjb25maWd1cmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7dmFyIHQ9L1xcKCguKilcXCkvLmV4ZWModGhpcy50b1N0cmluZygpKTtyZXR1cm4gdD90WzFdOnZvaWQgMH19KSxBcnJheS5wcm90b3R5cGUuZmxhdHx8KEFycmF5LnByb3RvdHlwZS5mbGF0PWZ1bmN0aW9uKHQscil7cmV0dXJuIHI9dGhpcy5jb25jYXQuYXBwbHkoW10sdGhpcyksdD4xJiZyLnNvbWUoQXJyYXkuaXNBcnJheSk/ci5mbGF0KHQtMSk6cn0sQXJyYXkucHJvdG90eXBlLmZsYXRNYXA9ZnVuY3Rpb24odCxyKXtyZXR1cm4gdGhpcy5tYXAodCxyKS5mbGF0KCl9KSxQcm9taXNlLnByb3RvdHlwZS5maW5hbGx5fHwoUHJvbWlzZS5wcm90b3R5cGUuZmluYWxseT1mdW5jdGlvbih0KXtpZihcImZ1bmN0aW9uXCIhPXR5cGVvZiB0KXJldHVybiB0aGlzLnRoZW4odCx0KTt2YXIgcj10aGlzLmNvbnN0cnVjdG9yfHxQcm9taXNlO3JldHVybiB0aGlzLnRoZW4oZnVuY3Rpb24obil7cmV0dXJuIHIucmVzb2x2ZSh0KCkpLnRoZW4oZnVuY3Rpb24oKXtyZXR1cm4gbn0pfSxmdW5jdGlvbihuKXtyZXR1cm4gci5yZXNvbHZlKHQoKSkudGhlbihmdW5jdGlvbigpe3Rocm93IG59KX0pfSksT2JqZWN0LmZyb21FbnRyaWVzfHwoT2JqZWN0LmZyb21FbnRyaWVzPWZ1bmN0aW9uKHQpe3JldHVybiBBcnJheS5mcm9tKHQpLnJlZHVjZShmdW5jdGlvbih0LHIpe3JldHVybiB0W3JbMF1dPXJbMV0sdH0se30pfSksQXJyYXkucHJvdG90eXBlLmF0fHwoQXJyYXkucHJvdG90eXBlLmF0PWZ1bmN0aW9uKHQpe3ZhciByPU1hdGgudHJ1bmModCl8fDA7aWYocjwwJiYocis9dGhpcy5sZW5ndGgpLCEocjwwfHxyPj10aGlzLmxlbmd0aCkpcmV0dXJuIHRoaXNbcl19KSxPYmplY3QuaGFzT3dufHwoT2JqZWN0Lmhhc093bj1mdW5jdGlvbih0LHIpe2lmKG51bGw9PXQpdGhyb3cgbmV3IFR5cGVFcnJvcihcIkNhbm5vdCBjb252ZXJ0IHVuZGVmaW5lZCBvciBudWxsIHRvIG9iamVjdFwiKTtyZXR1cm4gT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKE9iamVjdCh0KSxyKX0pLFwiY2FuUGFyc2VcImluIFVSTHx8KFVSTC5jYW5QYXJzZT1mdW5jdGlvbih0LHIpe3RyeXtyZXR1cm4hIW5ldyBVUkwodCxyKX1jYXRjaCh0KXtyZXR1cm4hMX19KTtcbiJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(pages-dir-browser)/./node_modules/next/dist/build/polyfills/polyfill-module.js\n")); - -/***/ }), - -/***/ "(pages-dir-browser)/./node_modules/next/dist/client/add-base-path.js": -/*!********************************************************!*\ - !*** ./node_modules/next/dist/client/add-base-path.js ***! - \********************************************************/ -/***/ ((module, exports, __webpack_require__) => { - -"use strict"; -eval(__webpack_require__.ts("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"addBasePath\", ({\n enumerable: true,\n get: function() {\n return addBasePath;\n }\n}));\nconst _addpathprefix = __webpack_require__(/*! ../shared/lib/router/utils/add-path-prefix */ \"(pages-dir-browser)/./node_modules/next/dist/shared/lib/router/utils/add-path-prefix.js\");\nconst _normalizetrailingslash = __webpack_require__(/*! ./normalize-trailing-slash */ \"(pages-dir-browser)/./node_modules/next/dist/client/normalize-trailing-slash.js\");\nconst basePath = false || '';\nfunction addBasePath(path, required) {\n return (0, _normalizetrailingslash.normalizePathTrailingSlash)( false ? 0 : (0, _addpathprefix.addPathPrefix)(path, basePath));\n}\nif ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=add-base-path.js.map\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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvY2xpZW50L2FkZC1iYXNlLXBhdGguanMiLCJtYXBwaW5ncyI6Ijs7OzsrQ0FLZ0JBOzs7ZUFBQUE7OzsyQ0FMYztvREFDYTtBQUUzQyxNQUFNQyxXQUFZQyxNQUFrQyxJQUFlO0FBRTVELFNBQVNGLFlBQVlLLElBQVksRUFBRUMsUUFBa0I7SUFDMUQsT0FBT0MsQ0FBQUEsR0FBQUEsd0JBQUFBLDBCQUFBQSxFQUNMTCxNQUF1REksR0FDbkRELENBQUlBLEdBQ0pJLENBQUFBLEdBQUFBLGVBQUFBLGFBQUFBLEVBQWNKLE1BQU1KO0FBRTVCIiwic291cmNlcyI6WyJEOlxcc3JjXFxjbGllbnRcXGFkZC1iYXNlLXBhdGgudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgYWRkUGF0aFByZWZpeCB9IGZyb20gJy4uL3NoYXJlZC9saWIvcm91dGVyL3V0aWxzL2FkZC1wYXRoLXByZWZpeCdcbmltcG9ydCB7IG5vcm1hbGl6ZVBhdGhUcmFpbGluZ1NsYXNoIH0gZnJvbSAnLi9ub3JtYWxpemUtdHJhaWxpbmctc2xhc2gnXG5cbmNvbnN0IGJhc2VQYXRoID0gKHByb2Nlc3MuZW52Ll9fTkVYVF9ST1VURVJfQkFTRVBBVEggYXMgc3RyaW5nKSB8fCAnJ1xuXG5leHBvcnQgZnVuY3Rpb24gYWRkQmFzZVBhdGgocGF0aDogc3RyaW5nLCByZXF1aXJlZD86IGJvb2xlYW4pOiBzdHJpbmcge1xuICByZXR1cm4gbm9ybWFsaXplUGF0aFRyYWlsaW5nU2xhc2goXG4gICAgcHJvY2Vzcy5lbnYuX19ORVhUX01BTlVBTF9DTElFTlRfQkFTRV9QQVRIICYmICFyZXF1aXJlZFxuICAgICAgPyBwYXRoXG4gICAgICA6IGFkZFBhdGhQcmVmaXgocGF0aCwgYmFzZVBhdGgpXG4gIClcbn1cbiJdLCJuYW1lcyI6WyJhZGRCYXNlUGF0aCIsImJhc2VQYXRoIiwicHJvY2VzcyIsImVudiIsIl9fTkVYVF9ST1VURVJfQkFTRVBBVEgiLCJwYXRoIiwicmVxdWlyZWQiLCJub3JtYWxpemVQYXRoVHJhaWxpbmdTbGFzaCIsIl9fTkVYVF9NQU5VQUxfQ0xJRU5UX0JBU0VfUEFUSCIsImFkZFBhdGhQcmVmaXgiXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(pages-dir-browser)/./node_modules/next/dist/client/add-base-path.js\n")); - -/***/ }), - -/***/ "(pages-dir-browser)/./node_modules/next/dist/client/add-locale.js": -/*!*****************************************************!*\ - !*** ./node_modules/next/dist/client/add-locale.js ***! - \*****************************************************/ -/***/ ((module, exports, __webpack_require__) => { - -"use strict"; -eval(__webpack_require__.ts("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"addLocale\", ({\n enumerable: true,\n get: function() {\n return addLocale;\n }\n}));\nconst _normalizetrailingslash = __webpack_require__(/*! ./normalize-trailing-slash */ \"(pages-dir-browser)/./node_modules/next/dist/client/normalize-trailing-slash.js\");\nconst addLocale = function(path) {\n for(var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++){\n args[_key - 1] = arguments[_key];\n }\n if (false) {}\n return path;\n};\nif ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=add-locale.js.map\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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvY2xpZW50L2FkZC1sb2NhbGUuanMiLCJtYXBwaW5ncyI6Ijs7Ozs2Q0FHYUE7OztlQUFBQTs7O29EQUY4QjtBQUVwQyxNQUFNQSxZQUF1QixTQUFDQyxJQUFBQTtxQ0FBU0MsT0FBQUEsSUFBQUEsTUFBQUEsT0FBQUEsSUFBQUEsT0FBQUEsSUFBQUEsSUFBQUEsT0FBQUEsR0FBQUEsT0FBQUEsTUFBQUEsT0FBQUE7UUFBQUEsSUFBQUEsQ0FBQUEsT0FBQUEsRUFBQUEsR0FBQUEsU0FBQUEsQ0FBQUEsS0FBQUE7O0lBQzVDLElBQUlDLEtBQStCLEVBQUUsRUFNcEM7SUFDRCxPQUFPRjtBQUNUIiwic291cmNlcyI6WyJEOlxcc3JjXFxjbGllbnRcXGFkZC1sb2NhbGUudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBhZGRMb2NhbGUgYXMgRm4gfSBmcm9tICcuLi9zaGFyZWQvbGliL3JvdXRlci91dGlscy9hZGQtbG9jYWxlJ1xuaW1wb3J0IHsgbm9ybWFsaXplUGF0aFRyYWlsaW5nU2xhc2ggfSBmcm9tICcuL25vcm1hbGl6ZS10cmFpbGluZy1zbGFzaCdcblxuZXhwb3J0IGNvbnN0IGFkZExvY2FsZTogdHlwZW9mIEZuID0gKHBhdGgsIC4uLmFyZ3MpID0+IHtcbiAgaWYgKHByb2Nlc3MuZW52Ll9fTkVYVF9JMThOX1NVUFBPUlQpIHtcbiAgICByZXR1cm4gbm9ybWFsaXplUGF0aFRyYWlsaW5nU2xhc2goXG4gICAgICAoXG4gICAgICAgIHJlcXVpcmUoJy4uL3NoYXJlZC9saWIvcm91dGVyL3V0aWxzL2FkZC1sb2NhbGUnKSBhcyB0eXBlb2YgaW1wb3J0KCcuLi9zaGFyZWQvbGliL3JvdXRlci91dGlscy9hZGQtbG9jYWxlJylcbiAgICAgICkuYWRkTG9jYWxlKHBhdGgsIC4uLmFyZ3MpXG4gICAgKVxuICB9XG4gIHJldHVybiBwYXRoXG59XG4iXSwibmFtZXMiOlsiYWRkTG9jYWxlIiwicGF0aCIsImFyZ3MiLCJwcm9jZXNzIiwiZW52IiwiX19ORVhUX0kxOE5fU1VQUE9SVCIsIm5vcm1hbGl6ZVBhdGhUcmFpbGluZ1NsYXNoIiwicmVxdWlyZSJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(pages-dir-browser)/./node_modules/next/dist/client/add-locale.js\n")); - -/***/ }), - -/***/ "(pages-dir-browser)/./node_modules/next/dist/client/components/http-access-fallback/http-access-fallback.js": -/*!***********************************************************************************************!*\ - !*** ./node_modules/next/dist/client/components/http-access-fallback/http-access-fallback.js ***! - \***********************************************************************************************/ -/***/ ((module, exports, __webpack_require__) => { - -"use strict"; -eval(__webpack_require__.ts("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n HTTPAccessErrorStatus: function() {\n return HTTPAccessErrorStatus;\n },\n HTTP_ERROR_FALLBACK_ERROR_CODE: function() {\n return HTTP_ERROR_FALLBACK_ERROR_CODE;\n },\n getAccessFallbackErrorTypeByStatus: function() {\n return getAccessFallbackErrorTypeByStatus;\n },\n getAccessFallbackHTTPStatus: function() {\n return getAccessFallbackHTTPStatus;\n },\n isHTTPAccessFallbackError: function() {\n return isHTTPAccessFallbackError;\n }\n});\nconst HTTPAccessErrorStatus = {\n NOT_FOUND: 404,\n FORBIDDEN: 403,\n UNAUTHORIZED: 401\n};\nconst ALLOWED_CODES = new Set(Object.values(HTTPAccessErrorStatus));\nconst HTTP_ERROR_FALLBACK_ERROR_CODE = 'NEXT_HTTP_ERROR_FALLBACK';\nfunction isHTTPAccessFallbackError(error) {\n if (typeof error !== 'object' || error === null || !('digest' in error) || typeof error.digest !== 'string') {\n return false;\n }\n const [prefix, httpStatus] = error.digest.split(';');\n return prefix === HTTP_ERROR_FALLBACK_ERROR_CODE && ALLOWED_CODES.has(Number(httpStatus));\n}\nfunction getAccessFallbackHTTPStatus(error) {\n const httpStatus = error.digest.split(';')[1];\n return Number(httpStatus);\n}\nfunction getAccessFallbackErrorTypeByStatus(status) {\n switch(status){\n case 401:\n return 'unauthorized';\n case 403:\n return 'forbidden';\n case 404:\n return 'not-found';\n default:\n return;\n }\n}\nif ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=http-access-fallback.js.map\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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvY2xpZW50L2NvbXBvbmVudHMvaHR0cC1hY2Nlc3MtZmFsbGJhY2svaHR0cC1hY2Nlc3MtZmFsbGJhY2suanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7O0lBQWFBLHFCQUFxQjtlQUFyQkE7O0lBUUFDLDhCQUE4QjtlQUE5QkE7O0lBdUNHQyxrQ0FBa0M7ZUFBbENBOztJQVBBQywyQkFBMkI7ZUFBM0JBOztJQW5CQUMseUJBQXlCO2VBQXpCQTs7O0FBckJULE1BQU1KLHdCQUF3QjtJQUNuQ0ssV0FBVztJQUNYQyxXQUFXO0lBQ1hDLGNBQWM7QUFDaEI7QUFFQSxNQUFNQyxnQkFBZ0IsSUFBSUMsSUFBSUMsT0FBT0MsTUFBTSxDQUFDWDtBQUVyQyxNQUFNQyxpQ0FBaUM7QUFhdkMsU0FBU0csMEJBQ2RRLEtBQWM7SUFFZCxJQUNFLE9BQU9BLFVBQVUsWUFDakJBLFVBQVUsUUFDVixDQUFFLGFBQVlBLEtBQUFBLENBQUksSUFDbEIsT0FBT0EsTUFBTUMsTUFBTSxLQUFLLFVBQ3hCO1FBQ0EsT0FBTztJQUNUO0lBQ0EsTUFBTSxDQUFDQyxRQUFRQyxXQUFXLEdBQUdILE1BQU1DLE1BQU0sQ0FBQ0csS0FBSyxDQUFDO0lBRWhELE9BQ0VGLFdBQVdiLGtDQUNYTyxjQUFjUyxHQUFHLENBQUNDLE9BQU9IO0FBRTdCO0FBRU8sU0FBU1osNEJBQ2RTLEtBQThCO0lBRTlCLE1BQU1HLGFBQWFILE1BQU1DLE1BQU0sQ0FBQ0csS0FBSyxDQUFDLElBQUksQ0FBQyxFQUFFO0lBQzdDLE9BQU9FLE9BQU9IO0FBQ2hCO0FBRU8sU0FBU2IsbUNBQ2RpQixNQUFjO0lBRWQsT0FBUUE7UUFDTixLQUFLO1lBQ0gsT0FBTztRQUNULEtBQUs7WUFDSCxPQUFPO1FBQ1QsS0FBSztZQUNILE9BQU87UUFDVDtZQUNFO0lBQ0o7QUFDRiIsInNvdXJjZXMiOlsiRDpcXHNyY1xcY2xpZW50XFxjb21wb25lbnRzXFxodHRwLWFjY2Vzcy1mYWxsYmFja1xcaHR0cC1hY2Nlc3MtZmFsbGJhY2sudHMiXSwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNvbnN0IEhUVFBBY2Nlc3NFcnJvclN0YXR1cyA9IHtcbiAgTk9UX0ZPVU5EOiA0MDQsXG4gIEZPUkJJRERFTjogNDAzLFxuICBVTkFVVEhPUklaRUQ6IDQwMSxcbn1cblxuY29uc3QgQUxMT1dFRF9DT0RFUyA9IG5ldyBTZXQoT2JqZWN0LnZhbHVlcyhIVFRQQWNjZXNzRXJyb3JTdGF0dXMpKVxuXG5leHBvcnQgY29uc3QgSFRUUF9FUlJPUl9GQUxMQkFDS19FUlJPUl9DT0RFID0gJ05FWFRfSFRUUF9FUlJPUl9GQUxMQkFDSydcblxuZXhwb3J0IHR5cGUgSFRUUEFjY2Vzc0ZhbGxiYWNrRXJyb3IgPSBFcnJvciAmIHtcbiAgZGlnZXN0OiBgJHt0eXBlb2YgSFRUUF9FUlJPUl9GQUxMQkFDS19FUlJPUl9DT0RFfTske3N0cmluZ31gXG59XG5cbi8qKlxuICogQ2hlY2tzIGFuIGVycm9yIHRvIGRldGVybWluZSBpZiBpdCdzIGFuIGVycm9yIGdlbmVyYXRlZCBieVxuICogdGhlIEhUVFAgbmF2aWdhdGlvbiBBUElzIGBub3RGb3VuZCgpYCwgYGZvcmJpZGRlbigpYCBvciBgdW5hdXRob3JpemVkKClgLlxuICpcbiAqIEBwYXJhbSBlcnJvciB0aGUgZXJyb3IgdGhhdCBtYXkgcmVmZXJlbmNlIGEgSFRUUCBhY2Nlc3MgZXJyb3JcbiAqIEByZXR1cm5zIHRydWUgaWYgdGhlIGVycm9yIGlzIGEgSFRUUCBhY2Nlc3MgZXJyb3JcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzSFRUUEFjY2Vzc0ZhbGxiYWNrRXJyb3IoXG4gIGVycm9yOiB1bmtub3duXG4pOiBlcnJvciBpcyBIVFRQQWNjZXNzRmFsbGJhY2tFcnJvciB7XG4gIGlmIChcbiAgICB0eXBlb2YgZXJyb3IgIT09ICdvYmplY3QnIHx8XG4gICAgZXJyb3IgPT09IG51bGwgfHxcbiAgICAhKCdkaWdlc3QnIGluIGVycm9yKSB8fFxuICAgIHR5cGVvZiBlcnJvci5kaWdlc3QgIT09ICdzdHJpbmcnXG4gICkge1xuICAgIHJldHVybiBmYWxzZVxuICB9XG4gIGNvbnN0IFtwcmVmaXgsIGh0dHBTdGF0dXNdID0gZXJyb3IuZGlnZXN0LnNwbGl0KCc7JylcblxuICByZXR1cm4gKFxuICAgIHByZWZpeCA9PT0gSFRUUF9FUlJPUl9GQUxMQkFDS19FUlJPUl9DT0RFICYmXG4gICAgQUxMT1dFRF9DT0RFUy5oYXMoTnVtYmVyKGh0dHBTdGF0dXMpKVxuICApXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRBY2Nlc3NGYWxsYmFja0hUVFBTdGF0dXMoXG4gIGVycm9yOiBIVFRQQWNjZXNzRmFsbGJhY2tFcnJvclxuKTogbnVtYmVyIHtcbiAgY29uc3QgaHR0cFN0YXR1cyA9IGVycm9yLmRpZ2VzdC5zcGxpdCgnOycpWzFdXG4gIHJldHVybiBOdW1iZXIoaHR0cFN0YXR1cylcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldEFjY2Vzc0ZhbGxiYWNrRXJyb3JUeXBlQnlTdGF0dXMoXG4gIHN0YXR1czogbnVtYmVyXG4pOiAnbm90LWZvdW5kJyB8ICdmb3JiaWRkZW4nIHwgJ3VuYXV0aG9yaXplZCcgfCB1bmRlZmluZWQge1xuICBzd2l0Y2ggKHN0YXR1cykge1xuICAgIGNhc2UgNDAxOlxuICAgICAgcmV0dXJuICd1bmF1dGhvcml6ZWQnXG4gICAgY2FzZSA0MDM6XG4gICAgICByZXR1cm4gJ2ZvcmJpZGRlbidcbiAgICBjYXNlIDQwNDpcbiAgICAgIHJldHVybiAnbm90LWZvdW5kJ1xuICAgIGRlZmF1bHQ6XG4gICAgICByZXR1cm5cbiAgfVxufVxuIl0sIm5hbWVzIjpbIkhUVFBBY2Nlc3NFcnJvclN0YXR1cyIsIkhUVFBfRVJST1JfRkFMTEJBQ0tfRVJST1JfQ09ERSIsImdldEFjY2Vzc0ZhbGxiYWNrRXJyb3JUeXBlQnlTdGF0dXMiLCJnZXRBY2Nlc3NGYWxsYmFja0hUVFBTdGF0dXMiLCJpc0hUVFBBY2Nlc3NGYWxsYmFja0Vycm9yIiwiTk9UX0ZPVU5EIiwiRk9SQklEREVOIiwiVU5BVVRIT1JJWkVEIiwiQUxMT1dFRF9DT0RFUyIsIlNldCIsIk9iamVjdCIsInZhbHVlcyIsImVycm9yIiwiZGlnZXN0IiwicHJlZml4IiwiaHR0cFN0YXR1cyIsInNwbGl0IiwiaGFzIiwiTnVtYmVyIiwic3RhdHVzIl0sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(pages-dir-browser)/./node_modules/next/dist/client/components/http-access-fallback/http-access-fallback.js\n")); - -/***/ }), - -/***/ "(pages-dir-browser)/./node_modules/next/dist/client/components/is-next-router-error.js": -/*!**************************************************************************!*\ - !*** ./node_modules/next/dist/client/components/is-next-router-error.js ***! - \**************************************************************************/ -/***/ ((module, exports, __webpack_require__) => { - -"use strict"; -eval(__webpack_require__.ts("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"isNextRouterError\", ({\n enumerable: true,\n get: function() {\n return isNextRouterError;\n }\n}));\nconst _httpaccessfallback = __webpack_require__(/*! ./http-access-fallback/http-access-fallback */ \"(pages-dir-browser)/./node_modules/next/dist/client/components/http-access-fallback/http-access-fallback.js\");\nconst _redirecterror = __webpack_require__(/*! ./redirect-error */ \"(pages-dir-browser)/./node_modules/next/dist/client/components/redirect-error.js\");\nfunction isNextRouterError(error) {\n return (0, _redirecterror.isRedirectError)(error) || (0, _httpaccessfallback.isHTTPAccessFallbackError)(error);\n}\nif ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=is-next-router-error.js.map\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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvY2xpZW50L2NvbXBvbmVudHMvaXMtbmV4dC1yb3V0ZXItZXJyb3IuanMiLCJtYXBwaW5ncyI6Ijs7OztxREFXZ0JBOzs7ZUFBQUE7OztnREFSVDsyQ0FDNkM7QUFPN0MsU0FBU0Esa0JBQ2RDLEtBQWM7SUFFZCxPQUFPQyxDQUFBQSxHQUFBQSxlQUFBQSxlQUFBQSxFQUFnQkQsVUFBVUUsQ0FBQUEsR0FBQUEsb0JBQUFBLHlCQUFBQSxFQUEwQkY7QUFDN0QiLCJzb3VyY2VzIjpbIkQ6XFxzcmNcXGNsaWVudFxcY29tcG9uZW50c1xcaXMtbmV4dC1yb3V0ZXItZXJyb3IudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgaXNIVFRQQWNjZXNzRmFsbGJhY2tFcnJvcixcbiAgdHlwZSBIVFRQQWNjZXNzRmFsbGJhY2tFcnJvcixcbn0gZnJvbSAnLi9odHRwLWFjY2Vzcy1mYWxsYmFjay9odHRwLWFjY2Vzcy1mYWxsYmFjaydcbmltcG9ydCB7IGlzUmVkaXJlY3RFcnJvciwgdHlwZSBSZWRpcmVjdEVycm9yIH0gZnJvbSAnLi9yZWRpcmVjdC1lcnJvcidcblxuLyoqXG4gKiBSZXR1cm5zIHRydWUgaWYgdGhlIGVycm9yIGlzIGEgbmF2aWdhdGlvbiBzaWduYWwgZXJyb3IuIFRoZXNlIGVycm9ycyBhcmVcbiAqIHRocm93biBieSB1c2VyIGNvZGUgdG8gcGVyZm9ybSBuYXZpZ2F0aW9uIG9wZXJhdGlvbnMgYW5kIGludGVycnVwdCB0aGUgUmVhY3RcbiAqIHJlbmRlci5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzTmV4dFJvdXRlckVycm9yKFxuICBlcnJvcjogdW5rbm93blxuKTogZXJyb3IgaXMgUmVkaXJlY3RFcnJvciB8IEhUVFBBY2Nlc3NGYWxsYmFja0Vycm9yIHtcbiAgcmV0dXJuIGlzUmVkaXJlY3RFcnJvcihlcnJvcikgfHwgaXNIVFRQQWNjZXNzRmFsbGJhY2tFcnJvcihlcnJvcilcbn1cbiJdLCJuYW1lcyI6WyJpc05leHRSb3V0ZXJFcnJvciIsImVycm9yIiwiaXNSZWRpcmVjdEVycm9yIiwiaXNIVFRQQWNjZXNzRmFsbGJhY2tFcnJvciJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(pages-dir-browser)/./node_modules/next/dist/client/components/is-next-router-error.js\n")); - -/***/ }), - -/***/ "(pages-dir-browser)/./node_modules/next/dist/client/components/redirect-error.js": -/*!********************************************************************!*\ - !*** ./node_modules/next/dist/client/components/redirect-error.js ***! - \********************************************************************/ -/***/ ((module, exports, __webpack_require__) => { - -"use strict"; -eval(__webpack_require__.ts("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n REDIRECT_ERROR_CODE: function() {\n return REDIRECT_ERROR_CODE;\n },\n RedirectType: function() {\n return RedirectType;\n },\n isRedirectError: function() {\n return isRedirectError;\n }\n});\nconst _redirectstatuscode = __webpack_require__(/*! ./redirect-status-code */ \"(pages-dir-browser)/./node_modules/next/dist/client/components/redirect-status-code.js\");\nconst REDIRECT_ERROR_CODE = 'NEXT_REDIRECT';\nvar RedirectType = /*#__PURE__*/ function(RedirectType) {\n RedirectType[\"push\"] = \"push\";\n RedirectType[\"replace\"] = \"replace\";\n return RedirectType;\n}({});\nfunction isRedirectError(error) {\n if (typeof error !== 'object' || error === null || !('digest' in error) || typeof error.digest !== 'string') {\n return false;\n }\n const digest = error.digest.split(';');\n const [errorCode, type] = digest;\n const destination = digest.slice(2, -2).join(';');\n const status = digest.at(-2);\n const statusCode = Number(status);\n return errorCode === REDIRECT_ERROR_CODE && (type === 'replace' || type === 'push') && typeof destination === 'string' && !isNaN(statusCode) && statusCode in _redirectstatuscode.RedirectStatusCode;\n}\nif ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=redirect-error.js.map\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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvY2xpZW50L2NvbXBvbmVudHMvcmVkaXJlY3QtZXJyb3IuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7O0lBRWFBLG1CQUFtQjtlQUFuQkE7O0lBRURDLFlBQVk7ZUFBWkE7O0lBZ0JJQyxlQUFlO2VBQWZBOzs7Z0RBcEJtQjtBQUU1QixNQUFNRixzQkFBc0I7QUFFNUIsSUFBS0MsZUFBQUEsV0FBQUEsR0FBQUEsU0FBQUEsWUFBQUE7OztXQUFBQTs7QUFnQkwsU0FBU0MsZ0JBQWdCQyxLQUFjO0lBQzVDLElBQ0UsT0FBT0EsVUFBVSxZQUNqQkEsVUFBVSxRQUNWLENBQUUsYUFBWUEsS0FBQUEsQ0FBSSxJQUNsQixPQUFPQSxNQUFNQyxNQUFNLEtBQUssVUFDeEI7UUFDQSxPQUFPO0lBQ1Q7SUFFQSxNQUFNQSxTQUFTRCxNQUFNQyxNQUFNLENBQUNDLEtBQUssQ0FBQztJQUNsQyxNQUFNLENBQUNDLFdBQVdDLEtBQUssR0FBR0g7SUFDMUIsTUFBTUksY0FBY0osT0FBT0ssS0FBSyxDQUFDLEdBQUcsQ0FBQyxHQUFHQyxJQUFJLENBQUM7SUFDN0MsTUFBTUMsU0FBU1AsT0FBT1EsRUFBRSxDQUFDLENBQUM7SUFFMUIsTUFBTUMsYUFBYUMsT0FBT0g7SUFFMUIsT0FDRUwsY0FBY04sdUJBQ2JPLENBQUFBLFNBQVMsYUFBYUEsU0FBUyxPQUFLLElBQ3JDLE9BQU9DLGdCQUFnQixZQUN2QixDQUFDTyxNQUFNRixlQUNQQSxjQUFjRyxvQkFBQUEsa0JBQWtCO0FBRXBDIiwic291cmNlcyI6WyJEOlxcc3JjXFxjbGllbnRcXGNvbXBvbmVudHNcXHJlZGlyZWN0LWVycm9yLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFJlZGlyZWN0U3RhdHVzQ29kZSB9IGZyb20gJy4vcmVkaXJlY3Qtc3RhdHVzLWNvZGUnXG5cbmV4cG9ydCBjb25zdCBSRURJUkVDVF9FUlJPUl9DT0RFID0gJ05FWFRfUkVESVJFQ1QnXG5cbmV4cG9ydCBlbnVtIFJlZGlyZWN0VHlwZSB7XG4gIHB1c2ggPSAncHVzaCcsXG4gIHJlcGxhY2UgPSAncmVwbGFjZScsXG59XG5cbmV4cG9ydCB0eXBlIFJlZGlyZWN0RXJyb3IgPSBFcnJvciAmIHtcbiAgZGlnZXN0OiBgJHt0eXBlb2YgUkVESVJFQ1RfRVJST1JfQ09ERX07JHtSZWRpcmVjdFR5cGV9OyR7c3RyaW5nfTske1JlZGlyZWN0U3RhdHVzQ29kZX07YFxufVxuXG4vKipcbiAqIENoZWNrcyBhbiBlcnJvciB0byBkZXRlcm1pbmUgaWYgaXQncyBhbiBlcnJvciBnZW5lcmF0ZWQgYnkgdGhlXG4gKiBgcmVkaXJlY3QodXJsKWAgaGVscGVyLlxuICpcbiAqIEBwYXJhbSBlcnJvciB0aGUgZXJyb3IgdGhhdCBtYXkgcmVmZXJlbmNlIGEgcmVkaXJlY3QgZXJyb3JcbiAqIEByZXR1cm5zIHRydWUgaWYgdGhlIGVycm9yIGlzIGEgcmVkaXJlY3QgZXJyb3JcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzUmVkaXJlY3RFcnJvcihlcnJvcjogdW5rbm93bik6IGVycm9yIGlzIFJlZGlyZWN0RXJyb3Ige1xuICBpZiAoXG4gICAgdHlwZW9mIGVycm9yICE9PSAnb2JqZWN0JyB8fFxuICAgIGVycm9yID09PSBudWxsIHx8XG4gICAgISgnZGlnZXN0JyBpbiBlcnJvcikgfHxcbiAgICB0eXBlb2YgZXJyb3IuZGlnZXN0ICE9PSAnc3RyaW5nJ1xuICApIHtcbiAgICByZXR1cm4gZmFsc2VcbiAgfVxuXG4gIGNvbnN0IGRpZ2VzdCA9IGVycm9yLmRpZ2VzdC5zcGxpdCgnOycpXG4gIGNvbnN0IFtlcnJvckNvZGUsIHR5cGVdID0gZGlnZXN0XG4gIGNvbnN0IGRlc3RpbmF0aW9uID0gZGlnZXN0LnNsaWNlKDIsIC0yKS5qb2luKCc7JylcbiAgY29uc3Qgc3RhdHVzID0gZGlnZXN0LmF0KC0yKVxuXG4gIGNvbnN0IHN0YXR1c0NvZGUgPSBOdW1iZXIoc3RhdHVzKVxuXG4gIHJldHVybiAoXG4gICAgZXJyb3JDb2RlID09PSBSRURJUkVDVF9FUlJPUl9DT0RFICYmXG4gICAgKHR5cGUgPT09ICdyZXBsYWNlJyB8fCB0eXBlID09PSAncHVzaCcpICYmXG4gICAgdHlwZW9mIGRlc3RpbmF0aW9uID09PSAnc3RyaW5nJyAmJlxuICAgICFpc05hTihzdGF0dXNDb2RlKSAmJlxuICAgIHN0YXR1c0NvZGUgaW4gUmVkaXJlY3RTdGF0dXNDb2RlXG4gIClcbn1cbiJdLCJuYW1lcyI6WyJSRURJUkVDVF9FUlJPUl9DT0RFIiwiUmVkaXJlY3RUeXBlIiwiaXNSZWRpcmVjdEVycm9yIiwiZXJyb3IiLCJkaWdlc3QiLCJzcGxpdCIsImVycm9yQ29kZSIsInR5cGUiLCJkZXN0aW5hdGlvbiIsInNsaWNlIiwiam9pbiIsInN0YXR1cyIsImF0Iiwic3RhdHVzQ29kZSIsIk51bWJlciIsImlzTmFOIiwiUmVkaXJlY3RTdGF0dXNDb2RlIl0sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(pages-dir-browser)/./node_modules/next/dist/client/components/redirect-error.js\n")); - -/***/ }), - -/***/ "(pages-dir-browser)/./node_modules/next/dist/client/components/redirect-status-code.js": -/*!**************************************************************************!*\ - !*** ./node_modules/next/dist/client/components/redirect-status-code.js ***! - \**************************************************************************/ -/***/ ((module, exports, __webpack_require__) => { - -"use strict"; -eval(__webpack_require__.ts("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"RedirectStatusCode\", ({\n enumerable: true,\n get: function() {\n return RedirectStatusCode;\n }\n}));\nvar RedirectStatusCode = /*#__PURE__*/ function(RedirectStatusCode) {\n RedirectStatusCode[RedirectStatusCode[\"SeeOther\"] = 303] = \"SeeOther\";\n RedirectStatusCode[RedirectStatusCode[\"TemporaryRedirect\"] = 307] = \"TemporaryRedirect\";\n RedirectStatusCode[RedirectStatusCode[\"PermanentRedirect\"] = 308] = \"PermanentRedirect\";\n return RedirectStatusCode;\n}({});\nif ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=redirect-status-code.js.map\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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvY2xpZW50L2NvbXBvbmVudHMvcmVkaXJlY3Qtc3RhdHVzLWNvZGUuanMiLCJtYXBwaW5ncyI6Ijs7OztzREFBWUE7OztlQUFBQTs7O0FBQUwsSUFBS0EscUJBQUFBLFdBQUFBLEdBQUFBLFNBQUFBLGtCQUFBQTs7OztXQUFBQSIsInNvdXJjZXMiOlsiRDpcXHNyY1xcY2xpZW50XFxjb21wb25lbnRzXFxyZWRpcmVjdC1zdGF0dXMtY29kZS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgZW51bSBSZWRpcmVjdFN0YXR1c0NvZGUge1xuICBTZWVPdGhlciA9IDMwMyxcbiAgVGVtcG9yYXJ5UmVkaXJlY3QgPSAzMDcsXG4gIFBlcm1hbmVudFJlZGlyZWN0ID0gMzA4LFxufVxuIl0sIm5hbWVzIjpbIlJlZGlyZWN0U3RhdHVzQ29kZSJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(pages-dir-browser)/./node_modules/next/dist/client/components/redirect-status-code.js\n")); - -/***/ }), - -/***/ "(pages-dir-browser)/./node_modules/next/dist/client/detect-domain-locale.js": -/*!***************************************************************!*\ - !*** ./node_modules/next/dist/client/detect-domain-locale.js ***! - \***************************************************************/ -/***/ ((module, exports, __webpack_require__) => { - -"use strict"; -eval(__webpack_require__.ts("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"detectDomainLocale\", ({\n enumerable: true,\n get: function() {\n return detectDomainLocale;\n }\n}));\nconst detectDomainLocale = function() {\n for(var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++){\n args[_key] = arguments[_key];\n }\n if (false) {}\n};\nif ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=detect-domain-locale.js.map\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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvY2xpZW50L2RldGVjdC1kb21haW4tbG9jYWxlLmpzIiwibWFwcGluZ3MiOiI7Ozs7c0RBRWFBOzs7ZUFBQUE7OztBQUFOLE1BQU1BLHFCQUFnQztxQ0FBSUMsT0FBQUEsSUFBQUEsTUFBQUEsT0FBQUEsT0FBQUEsR0FBQUEsT0FBQUEsTUFBQUEsT0FBQUE7UUFBQUEsSUFBQUEsQ0FBQUEsS0FBQUEsR0FBQUEsU0FBQUEsQ0FBQUEsS0FBQUE7O0lBQy9DLElBQUlDLEtBQStCLEVBQUUsRUFJcEM7QUFDSCIsInNvdXJjZXMiOlsiRDpcXHNyY1xcY2xpZW50XFxkZXRlY3QtZG9tYWluLWxvY2FsZS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IGRldGVjdERvbWFpbkxvY2FsZSBhcyBGbiB9IGZyb20gJy4uL3NoYXJlZC9saWIvaTE4bi9kZXRlY3QtZG9tYWluLWxvY2FsZSdcblxuZXhwb3J0IGNvbnN0IGRldGVjdERvbWFpbkxvY2FsZTogdHlwZW9mIEZuID0gKC4uLmFyZ3MpID0+IHtcbiAgaWYgKHByb2Nlc3MuZW52Ll9fTkVYVF9JMThOX1NVUFBPUlQpIHtcbiAgICByZXR1cm4gKFxuICAgICAgcmVxdWlyZSgnLi4vc2hhcmVkL2xpYi9pMThuL2RldGVjdC1kb21haW4tbG9jYWxlJykgYXMgdHlwZW9mIGltcG9ydCgnLi4vc2hhcmVkL2xpYi9pMThuL2RldGVjdC1kb21haW4tbG9jYWxlJylcbiAgICApLmRldGVjdERvbWFpbkxvY2FsZSguLi5hcmdzKVxuICB9XG59XG4iXSwibmFtZXMiOlsiZGV0ZWN0RG9tYWluTG9jYWxlIiwiYXJncyIsInByb2Nlc3MiLCJlbnYiLCJfX05FWFRfSTE4Tl9TVVBQT1JUIiwicmVxdWlyZSJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(pages-dir-browser)/./node_modules/next/dist/client/detect-domain-locale.js\n")); - -/***/ }), - -/***/ "(pages-dir-browser)/./node_modules/next/dist/client/dev/fouc.js": -/*!***************************************************!*\ - !*** ./node_modules/next/dist/client/dev/fouc.js ***! - \***************************************************/ -/***/ ((module, exports, __webpack_require__) => { - -"use strict"; -eval(__webpack_require__.ts("// This wrapper function is used to safely select the best available function\n// to schedule removal of the no-FOUC styles workaround. requestAnimationFrame\n// is the ideal choice, but when used in iframes, there are no guarantees that\n// the callback will actually be called, which could stall the promise returned\n// from displayContent.\n//\n// See: https://www.vector-logic.com/blog/posts/on-request-animation-frame-and-embedded-iframes\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"displayContent\", ({\n enumerable: true,\n get: function() {\n return displayContent;\n }\n}));\nconst safeCallbackQueue = (callback)=>{\n if (window.requestAnimationFrame && window.self === window.top) {\n window.requestAnimationFrame(callback);\n } else {\n window.setTimeout(callback);\n }\n};\nfunction displayContent() {\n return new Promise((resolve)=>{\n safeCallbackQueue(function() {\n for(var x = document.querySelectorAll('[data-next-hide-fouc]'), i = x.length; i--;){\n x[i].parentNode.removeChild(x[i]);\n }\n resolve();\n });\n });\n}\nif ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=fouc.js.map\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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvY2xpZW50L2Rldi9mb3VjLmpzIiwibWFwcGluZ3MiOiJBQUFBLDZFQUE2RTtBQUM3RSw4RUFBOEU7QUFDOUUsOEVBQThFO0FBQzlFLCtFQUErRTtBQUMvRSx1QkFBdUI7QUFDdkIsRUFBRTtBQUNGLCtGQUErRjs7Ozs7a0RBWS9FQTs7O2VBQUFBOzs7QUFYaEIsTUFBTUMsb0JBQW9CLENBQUNDO0lBQ3pCLElBQUlDLE9BQU9DLHFCQUFxQixJQUFJRCxPQUFPRSxJQUFJLEtBQUtGLE9BQU9HLEdBQUcsRUFBRTtRQUM5REgsT0FBT0MscUJBQXFCLENBQUNGO0lBQy9CLE9BQU87UUFDTEMsT0FBT0ksVUFBVSxDQUFDTDtJQUNwQjtBQUNGO0FBS08sU0FBU0Y7SUFDZCxPQUFPLElBQUlRLFFBQVEsQ0FBQ0M7UUFDbEJSLGtCQUFrQjtZQUNoQixJQUNFLElBQUlTLElBQUlDLFNBQVNDLGdCQUFnQixDQUFDLDBCQUNoQ0MsSUFBSUgsRUFBRUksTUFBTSxFQUNkRCxLQUVBO2dCQUNBSCxDQUFDLENBQUNHLEVBQUUsQ0FBQ0UsVUFBVSxDQUFFQyxXQUFXLENBQUNOLENBQUMsQ0FBQ0csRUFBRTtZQUNuQztZQUNBSjtRQUNGO0lBQ0Y7QUFDRiIsInNvdXJjZXMiOlsiRDpcXHNyY1xcY2xpZW50XFxkZXZcXGZvdWMudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLy8gVGhpcyB3cmFwcGVyIGZ1bmN0aW9uIGlzIHVzZWQgdG8gc2FmZWx5IHNlbGVjdCB0aGUgYmVzdCBhdmFpbGFibGUgZnVuY3Rpb25cbi8vIHRvIHNjaGVkdWxlIHJlbW92YWwgb2YgdGhlIG5vLUZPVUMgc3R5bGVzIHdvcmthcm91bmQuIHJlcXVlc3RBbmltYXRpb25GcmFtZVxuLy8gaXMgdGhlIGlkZWFsIGNob2ljZSwgYnV0IHdoZW4gdXNlZCBpbiBpZnJhbWVzLCB0aGVyZSBhcmUgbm8gZ3VhcmFudGVlcyB0aGF0XG4vLyB0aGUgY2FsbGJhY2sgd2lsbCBhY3R1YWxseSBiZSBjYWxsZWQsIHdoaWNoIGNvdWxkIHN0YWxsIHRoZSBwcm9taXNlIHJldHVybmVkXG4vLyBmcm9tIGRpc3BsYXlDb250ZW50LlxuLy9cbi8vIFNlZTogaHR0cHM6Ly93d3cudmVjdG9yLWxvZ2ljLmNvbS9ibG9nL3Bvc3RzL29uLXJlcXVlc3QtYW5pbWF0aW9uLWZyYW1lLWFuZC1lbWJlZGRlZC1pZnJhbWVzXG5jb25zdCBzYWZlQ2FsbGJhY2tRdWV1ZSA9IChjYWxsYmFjazogKCkgPT4gdm9pZCkgPT4ge1xuICBpZiAod2luZG93LnJlcXVlc3RBbmltYXRpb25GcmFtZSAmJiB3aW5kb3cuc2VsZiA9PT0gd2luZG93LnRvcCkge1xuICAgIHdpbmRvdy5yZXF1ZXN0QW5pbWF0aW9uRnJhbWUoY2FsbGJhY2spXG4gIH0gZWxzZSB7XG4gICAgd2luZG93LnNldFRpbWVvdXQoY2FsbGJhY2spXG4gIH1cbn1cblxuLy8gVGhpcyBmdW5jdGlvbiBpcyB1c2VkIHRvIHJlbW92ZSBOZXh0LmpzJyBuby1GT1VDIHN0eWxlcyB3b3JrYXJvdW5kIGZvciB1c2luZ1xuLy8gYHN0eWxlLWxvYWRlcmAgaW4gZGV2ZWxvcG1lbnQuIEl0IG11c3QgYmUgY2FsbGVkIGJlZm9yZSBoeWRyYXRpb24sIG9yIGVsc2Vcbi8vIHJlbmRlcmluZyB3b24ndCBoYXZlIHRoZSBjb3JyZWN0IGNvbXB1dGVkIHZhbHVlcyBpbiBlZmZlY3RzLlxuZXhwb3J0IGZ1bmN0aW9uIGRpc3BsYXlDb250ZW50KCk6IFByb21pc2U8dm9pZD4ge1xuICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUpID0+IHtcbiAgICBzYWZlQ2FsbGJhY2tRdWV1ZShmdW5jdGlvbiAoKSB7XG4gICAgICBmb3IgKFxuICAgICAgICB2YXIgeCA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJ1tkYXRhLW5leHQtaGlkZS1mb3VjXScpLFxuICAgICAgICAgIGkgPSB4Lmxlbmd0aDtcbiAgICAgICAgaS0tO1xuXG4gICAgICApIHtcbiAgICAgICAgeFtpXS5wYXJlbnROb2RlIS5yZW1vdmVDaGlsZCh4W2ldKVxuICAgICAgfVxuICAgICAgcmVzb2x2ZSgpXG4gICAgfSlcbiAgfSlcbn1cbiJdLCJuYW1lcyI6WyJkaXNwbGF5Q29udGVudCIsInNhZmVDYWxsYmFja1F1ZXVlIiwiY2FsbGJhY2siLCJ3aW5kb3ciLCJyZXF1ZXN0QW5pbWF0aW9uRnJhbWUiLCJzZWxmIiwidG9wIiwic2V0VGltZW91dCIsIlByb21pc2UiLCJyZXNvbHZlIiwieCIsImRvY3VtZW50IiwicXVlcnlTZWxlY3RvckFsbCIsImkiLCJsZW5ndGgiLCJwYXJlbnROb2RlIiwicmVtb3ZlQ2hpbGQiXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(pages-dir-browser)/./node_modules/next/dist/client/dev/fouc.js\n")); - -/***/ }), - -/***/ "(pages-dir-browser)/./node_modules/next/dist/client/dev/hot-middleware-client.js": -/*!********************************************************************!*\ - !*** ./node_modules/next/dist/client/dev/hot-middleware-client.js ***! - \********************************************************************/ -/***/ ((module, exports, __webpack_require__) => { - -"use strict"; -eval(__webpack_require__.ts("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"default\", ({\n enumerable: true,\n get: function() {\n return _default;\n }\n}));\nconst _interop_require_default = __webpack_require__(/*! @swc/helpers/_/_interop_require_default */ \"(pages-dir-browser)/./node_modules/@swc/helpers/esm/_interop_require_default.js\");\nconst _hotreloaderpages = /*#__PURE__*/ _interop_require_default._(__webpack_require__(/*! ./hot-reloader/pages/hot-reloader-pages */ \"(pages-dir-browser)/./node_modules/next/dist/client/dev/hot-reloader/pages/hot-reloader-pages.js\"));\nconst _websocket = __webpack_require__(/*! ./hot-reloader/pages/websocket */ \"(pages-dir-browser)/./node_modules/next/dist/client/dev/hot-reloader/pages/websocket.js\");\nlet reloading = false;\nconst _default = ()=>{\n const devClient = (0, _hotreloaderpages.default)();\n devClient.subscribeToHmrEvent((obj)=>{\n var _window_next;\n if (reloading) return;\n // Retrieve the router if it's available\n const router = (_window_next = window.next) == null ? void 0 : _window_next.router;\n // Determine if we're on an error page or the router is not initialized\n const isOnErrorPage = !router || router.pathname === '/404' || router.pathname === '/_error';\n switch(obj.action){\n case 'reloadPage':\n {\n (0, _websocket.sendMessage)(JSON.stringify({\n event: 'client-reload-page',\n clientId: window.__nextDevClientId\n }));\n reloading = true;\n return window.location.reload();\n }\n case 'removedPage':\n {\n const [page] = obj.data;\n // Check if the removed page is the current page\n const isCurrentPage = page === (router == null ? void 0 : router.pathname);\n // We enter here if the removed page is currently being viewed\n // or if we happen to be on an error page.\n if (isCurrentPage || isOnErrorPage) {\n (0, _websocket.sendMessage)(JSON.stringify({\n event: 'client-removed-page',\n clientId: window.__nextDevClientId,\n page\n }));\n return window.location.reload();\n }\n return;\n }\n case 'addedPage':\n {\n var _router_components;\n const [page] = obj.data;\n // Check if the added page is the current page\n const isCurrentPage = page === (router == null ? void 0 : router.pathname);\n // Check if the page component is not yet loaded\n const isPageNotLoaded = typeof (router == null ? void 0 : (_router_components = router.components) == null ? void 0 : _router_components[page]) === 'undefined';\n // We enter this block if the newly added page is the one currently being viewed\n // but hasn't been loaded yet, or if we're on an error page.\n if (isCurrentPage && isPageNotLoaded || isOnErrorPage) {\n (0, _websocket.sendMessage)(JSON.stringify({\n event: 'client-added-page',\n clientId: window.__nextDevClientId,\n page\n }));\n return window.location.reload();\n }\n return;\n }\n case 'serverError':\n case 'devPagesManifestUpdate':\n case 'isrManifest':\n case 'building':\n case 'finishBuilding':\n {\n return;\n }\n default:\n {\n throw Object.defineProperty(new Error('Unexpected action ' + obj.action), \"__NEXT_ERROR_CODE\", {\n value: \"E59\",\n enumerable: false,\n configurable: true\n });\n }\n }\n });\n return devClient;\n};\nif ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=hot-middleware-client.js.map\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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvY2xpZW50L2Rldi9ob3QtbWlkZGxld2FyZS1jbGllbnQuanMiLCJtYXBwaW5ncyI6Ijs7OzsyQ0FzQkE7OztlQUFBOzs7O3VGQWxCb0I7dUNBQ1E7QUFlNUIsSUFBSUEsWUFBWTtNQUVoQixXQUFlO0lBQ2IsTUFBTUMsWUFBWUMsQ0FBQUEsR0FBQUEsa0JBQUFBLE9BQUFBO0lBRWxCRCxVQUFVRSxtQkFBbUIsQ0FBQyxDQUFDQztZQUlkQztRQUhmLElBQUlMLFdBQVc7UUFFZix3Q0FBd0M7UUFDeEMsTUFBTU0sU0FBQUEsQ0FBU0QsZUFBQUEsT0FBT0UsSUFBQUEsS0FBSSxnQkFBWEYsYUFBYUMsTUFBTTtRQUVsQyx1RUFBdUU7UUFDdkUsTUFBTUUsZ0JBQ0osQ0FBQ0YsVUFBVUEsT0FBT0csUUFBUSxLQUFLLFVBQVVILE9BQU9HLFFBQVEsS0FBSztRQUUvRCxPQUFRTCxJQUFJTSxNQUFNO1lBQ2hCLEtBQUs7Z0JBQWM7b0JBQ2pCQyxDQUFBQSxHQUFBQSxXQUFBQSxXQUFBQSxFQUNFQyxLQUFLQyxTQUFTLENBQUM7d0JBQ2JDLE9BQU87d0JBQ1BDLFVBQVVWLE9BQU9XLGlCQUFpQjtvQkFDcEM7b0JBRUZoQixZQUFZO29CQUNaLE9BQU9LLE9BQU9ZLFFBQVEsQ0FBQ0MsTUFBTTtnQkFDL0I7WUFDQSxLQUFLO2dCQUFlO29CQUNsQixNQUFNLENBQUNDLEtBQUssR0FBR2YsSUFBSWdCLElBQUk7b0JBRXZCLGdEQUFnRDtvQkFDaEQsTUFBTUMsZ0JBQWdCRixVQUFTYixVQUFBQSxPQUFBQSxLQUFBQSxJQUFBQSxPQUFRRyxRQUFBQTtvQkFFdkMsOERBQThEO29CQUM5RCwwQ0FBMEM7b0JBQzFDLElBQUlZLGlCQUFpQmIsZUFBZTt3QkFDbENHLENBQUFBLEdBQUFBLFdBQUFBLFdBQUFBLEVBQ0VDLEtBQUtDLFNBQVMsQ0FBQzs0QkFDYkMsT0FBTzs0QkFDUEMsVUFBVVYsT0FBT1csaUJBQWlCOzRCQUNsQ0c7d0JBQ0Y7d0JBRUYsT0FBT2QsT0FBT1ksUUFBUSxDQUFDQyxNQUFNO29CQUMvQjtvQkFDQTtnQkFDRjtZQUNBLEtBQUs7Z0JBQWE7d0JBUVBaO29CQVBULE1BQU0sQ0FBQ2EsS0FBSyxHQUFHZixJQUFJZ0IsSUFBSTtvQkFFdkIsOENBQThDO29CQUM5QyxNQUFNQyxnQkFBZ0JGLFNBQVNiLFdBQUFBLE9BQUFBLEtBQUFBLElBQUFBLE9BQVFHLFFBQUFBO29CQUV2QyxnREFBZ0Q7b0JBQ2hELE1BQU1hLGtCQUNKLFFBQU9oQixVQUFBQSxPQUFBQSxLQUFBQSxJQUFBQSxDQUFBQSxxQkFBQUEsT0FBUWlCLFVBQUFBLEtBQVUsZ0JBQWxCakIsa0JBQW9CLENBQUNhLEtBQUFBLE1BQVU7b0JBRXhDLGdGQUFnRjtvQkFDaEYsNERBQTREO29CQUM1RCxJQUFLRSxpQkFBaUJDLG1CQUFvQmQsZUFBZTt3QkFDdkRHLENBQUFBLEdBQUFBLFdBQUFBLFdBQUFBLEVBQ0VDLEtBQUtDLFNBQVMsQ0FBQzs0QkFDYkMsT0FBTzs0QkFDUEMsVUFBVVYsT0FBT1csaUJBQWlCOzRCQUNsQ0c7d0JBQ0Y7d0JBRUYsT0FBT2QsT0FBT1ksUUFBUSxDQUFDQyxNQUFNO29CQUMvQjtvQkFDQTtnQkFDRjtZQUNBLEtBQUs7WUFDTCxLQUFLO1lBQ0wsS0FBSztZQUNMLEtBQUs7WUFDTCxLQUFLO2dCQUFrQjtvQkFDckI7Z0JBQ0Y7WUFDQTtnQkFBUztvQkFDUCxNQUFNLHFCQUE0QyxDQUE1QyxJQUFJTSxNQUFNLHVCQUF1QnBCLElBQUlNLE1BQU0sR0FBM0M7K0JBQUE7b0NBQUE7c0NBQUE7b0JBQTJDO2dCQUNuRDtRQUNGO0lBQ0Y7SUFFQSxPQUFPVDtBQUNUIiwic291cmNlcyI6WyJEOlxcc3JjXFxjbGllbnRcXGRldlxcaG90LW1pZGRsZXdhcmUtY2xpZW50LnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHtcbiAgTmV4dFJvdXRlcixcbiAgUHJpdmF0ZVJvdXRlSW5mbyxcbn0gZnJvbSAnLi4vLi4vc2hhcmVkL2xpYi9yb3V0ZXIvcm91dGVyJ1xuaW1wb3J0IGNvbm5lY3QgZnJvbSAnLi9ob3QtcmVsb2FkZXIvcGFnZXMvaG90LXJlbG9hZGVyLXBhZ2VzJ1xuaW1wb3J0IHsgc2VuZE1lc3NhZ2UgfSBmcm9tICcuL2hvdC1yZWxvYWRlci9wYWdlcy93ZWJzb2NrZXQnXG5cbi8vIERlZmluZSBhIGxvY2FsIHR5cGUgZm9yIHRoZSB3aW5kb3cubmV4dCBvYmplY3RcbmludGVyZmFjZSBOZXh0V2luZG93IHtcbiAgbmV4dD86IHtcbiAgICByb3V0ZXI/OiBOZXh0Um91dGVyICYge1xuICAgICAgY29tcG9uZW50czogeyBbcGF0aG5hbWU6IHN0cmluZ106IFByaXZhdGVSb3V0ZUluZm8gfVxuICAgIH1cbiAgfVxuICBfX25leHREZXZDbGllbnRJZD86IHN0cmluZ1xuICBsb2NhdGlvbjogTG9jYXRpb25cbn1cblxuZGVjbGFyZSBjb25zdCB3aW5kb3c6IE5leHRXaW5kb3dcblxubGV0IHJlbG9hZGluZyA9IGZhbHNlXG5cbmV4cG9ydCBkZWZhdWx0ICgpID0+IHtcbiAgY29uc3QgZGV2Q2xpZW50ID0gY29ubmVjdCgpXG5cbiAgZGV2Q2xpZW50LnN1YnNjcmliZVRvSG1yRXZlbnQoKG9iajogYW55KSA9PiB7XG4gICAgaWYgKHJlbG9hZGluZykgcmV0dXJuXG5cbiAgICAvLyBSZXRyaWV2ZSB0aGUgcm91dGVyIGlmIGl0J3MgYXZhaWxhYmxlXG4gICAgY29uc3Qgcm91dGVyID0gd2luZG93Lm5leHQ/LnJvdXRlclxuXG4gICAgLy8gRGV0ZXJtaW5lIGlmIHdlJ3JlIG9uIGFuIGVycm9yIHBhZ2Ugb3IgdGhlIHJvdXRlciBpcyBub3QgaW5pdGlhbGl6ZWRcbiAgICBjb25zdCBpc09uRXJyb3JQYWdlID1cbiAgICAgICFyb3V0ZXIgfHwgcm91dGVyLnBhdGhuYW1lID09PSAnLzQwNCcgfHwgcm91dGVyLnBhdGhuYW1lID09PSAnL19lcnJvcidcblxuICAgIHN3aXRjaCAob2JqLmFjdGlvbikge1xuICAgICAgY2FzZSAncmVsb2FkUGFnZSc6IHtcbiAgICAgICAgc2VuZE1lc3NhZ2UoXG4gICAgICAgICAgSlNPTi5zdHJpbmdpZnkoe1xuICAgICAgICAgICAgZXZlbnQ6ICdjbGllbnQtcmVsb2FkLXBhZ2UnLFxuICAgICAgICAgICAgY2xpZW50SWQ6IHdpbmRvdy5fX25leHREZXZDbGllbnRJZCxcbiAgICAgICAgICB9KVxuICAgICAgICApXG4gICAgICAgIHJlbG9hZGluZyA9IHRydWVcbiAgICAgICAgcmV0dXJuIHdpbmRvdy5sb2NhdGlvbi5yZWxvYWQoKVxuICAgICAgfVxuICAgICAgY2FzZSAncmVtb3ZlZFBhZ2UnOiB7XG4gICAgICAgIGNvbnN0IFtwYWdlXSA9IG9iai5kYXRhXG5cbiAgICAgICAgLy8gQ2hlY2sgaWYgdGhlIHJlbW92ZWQgcGFnZSBpcyB0aGUgY3VycmVudCBwYWdlXG4gICAgICAgIGNvbnN0IGlzQ3VycmVudFBhZ2UgPSBwYWdlID09PSByb3V0ZXI/LnBhdGhuYW1lXG5cbiAgICAgICAgLy8gV2UgZW50ZXIgaGVyZSBpZiB0aGUgcmVtb3ZlZCBwYWdlIGlzIGN1cnJlbnRseSBiZWluZyB2aWV3ZWRcbiAgICAgICAgLy8gb3IgaWYgd2UgaGFwcGVuIHRvIGJlIG9uIGFuIGVycm9yIHBhZ2UuXG4gICAgICAgIGlmIChpc0N1cnJlbnRQYWdlIHx8IGlzT25FcnJvclBhZ2UpIHtcbiAgICAgICAgICBzZW5kTWVzc2FnZShcbiAgICAgICAgICAgIEpTT04uc3RyaW5naWZ5KHtcbiAgICAgICAgICAgICAgZXZlbnQ6ICdjbGllbnQtcmVtb3ZlZC1wYWdlJyxcbiAgICAgICAgICAgICAgY2xpZW50SWQ6IHdpbmRvdy5fX25leHREZXZDbGllbnRJZCxcbiAgICAgICAgICAgICAgcGFnZSxcbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgKVxuICAgICAgICAgIHJldHVybiB3aW5kb3cubG9jYXRpb24ucmVsb2FkKClcbiAgICAgICAgfVxuICAgICAgICByZXR1cm5cbiAgICAgIH1cbiAgICAgIGNhc2UgJ2FkZGVkUGFnZSc6IHtcbiAgICAgICAgY29uc3QgW3BhZ2VdID0gb2JqLmRhdGFcblxuICAgICAgICAvLyBDaGVjayBpZiB0aGUgYWRkZWQgcGFnZSBpcyB0aGUgY3VycmVudCBwYWdlXG4gICAgICAgIGNvbnN0IGlzQ3VycmVudFBhZ2UgPSBwYWdlID09PSByb3V0ZXI/LnBhdGhuYW1lXG5cbiAgICAgICAgLy8gQ2hlY2sgaWYgdGhlIHBhZ2UgY29tcG9uZW50IGlzIG5vdCB5ZXQgbG9hZGVkXG4gICAgICAgIGNvbnN0IGlzUGFnZU5vdExvYWRlZCA9XG4gICAgICAgICAgdHlwZW9mIHJvdXRlcj8uY29tcG9uZW50cz8uW3BhZ2VdID09PSAndW5kZWZpbmVkJ1xuXG4gICAgICAgIC8vIFdlIGVudGVyIHRoaXMgYmxvY2sgaWYgdGhlIG5ld2x5IGFkZGVkIHBhZ2UgaXMgdGhlIG9uZSBjdXJyZW50bHkgYmVpbmcgdmlld2VkXG4gICAgICAgIC8vIGJ1dCBoYXNuJ3QgYmVlbiBsb2FkZWQgeWV0LCBvciBpZiB3ZSdyZSBvbiBhbiBlcnJvciBwYWdlLlxuICAgICAgICBpZiAoKGlzQ3VycmVudFBhZ2UgJiYgaXNQYWdlTm90TG9hZGVkKSB8fCBpc09uRXJyb3JQYWdlKSB7XG4gICAgICAgICAgc2VuZE1lc3NhZ2UoXG4gICAgICAgICAgICBKU09OLnN0cmluZ2lmeSh7XG4gICAgICAgICAgICAgIGV2ZW50OiAnY2xpZW50LWFkZGVkLXBhZ2UnLFxuICAgICAgICAgICAgICBjbGllbnRJZDogd2luZG93Ll9fbmV4dERldkNsaWVudElkLFxuICAgICAgICAgICAgICBwYWdlLFxuICAgICAgICAgICAgfSlcbiAgICAgICAgICApXG4gICAgICAgICAgcmV0dXJuIHdpbmRvdy5sb2NhdGlvbi5yZWxvYWQoKVxuICAgICAgICB9XG4gICAgICAgIHJldHVyblxuICAgICAgfVxuICAgICAgY2FzZSAnc2VydmVyRXJyb3InOlxuICAgICAgY2FzZSAnZGV2UGFnZXNNYW5pZmVzdFVwZGF0ZSc6XG4gICAgICBjYXNlICdpc3JNYW5pZmVzdCc6XG4gICAgICBjYXNlICdidWlsZGluZyc6XG4gICAgICBjYXNlICdmaW5pc2hCdWlsZGluZyc6IHtcbiAgICAgICAgcmV0dXJuXG4gICAgICB9XG4gICAgICBkZWZhdWx0OiB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcignVW5leHBlY3RlZCBhY3Rpb24gJyArIG9iai5hY3Rpb24pXG4gICAgICB9XG4gICAgfVxuICB9KVxuXG4gIHJldHVybiBkZXZDbGllbnRcbn1cbiJdLCJuYW1lcyI6WyJyZWxvYWRpbmciLCJkZXZDbGllbnQiLCJjb25uZWN0Iiwic3Vic2NyaWJlVG9IbXJFdmVudCIsIm9iaiIsIndpbmRvdyIsInJvdXRlciIsIm5leHQiLCJpc09uRXJyb3JQYWdlIiwicGF0aG5hbWUiLCJhY3Rpb24iLCJzZW5kTWVzc2FnZSIsIkpTT04iLCJzdHJpbmdpZnkiLCJldmVudCIsImNsaWVudElkIiwiX19uZXh0RGV2Q2xpZW50SWQiLCJsb2NhdGlvbiIsInJlbG9hZCIsInBhZ2UiLCJkYXRhIiwiaXNDdXJyZW50UGFnZSIsImlzUGFnZU5vdExvYWRlZCIsImNvbXBvbmVudHMiLCJFcnJvciJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(pages-dir-browser)/./node_modules/next/dist/client/dev/hot-middleware-client.js\n")); - -/***/ }), - -/***/ "(pages-dir-browser)/./node_modules/next/dist/client/dev/hot-reloader/get-socket-url.js": -/*!**************************************************************************!*\ - !*** ./node_modules/next/dist/client/dev/hot-reloader/get-socket-url.js ***! - \**************************************************************************/ -/***/ ((module, exports, __webpack_require__) => { - -"use strict"; -eval(__webpack_require__.ts("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"getSocketUrl\", ({\n enumerable: true,\n get: function() {\n return getSocketUrl;\n }\n}));\nconst _normalizedassetprefix = __webpack_require__(/*! ../../../shared/lib/normalized-asset-prefix */ \"(pages-dir-browser)/./node_modules/next/dist/shared/lib/normalized-asset-prefix.js\");\nfunction getSocketProtocol(assetPrefix) {\n let protocol = window.location.protocol;\n try {\n // assetPrefix is a url\n protocol = new URL(assetPrefix).protocol;\n } catch (e) {}\n return protocol === 'http:' ? 'ws:' : 'wss:';\n}\nfunction getSocketUrl(assetPrefix) {\n const prefix = (0, _normalizedassetprefix.normalizedAssetPrefix)(assetPrefix);\n const protocol = getSocketProtocol(assetPrefix || '');\n if (URL.canParse(prefix)) {\n // since normalized asset prefix is ensured to be a URL format,\n // we can safely replace the protocol\n return prefix.replace(/^http/, 'ws');\n }\n const { hostname, port } = window.location;\n return protocol + \"//\" + hostname + (port ? \":\" + port : '') + prefix;\n}\nif ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=get-socket-url.js.map\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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvY2xpZW50L2Rldi9ob3QtcmVsb2FkZXIvZ2V0LXNvY2tldC11cmwuanMiLCJtYXBwaW5ncyI6Ijs7OztnREFhZ0JBOzs7ZUFBQUE7OzttREFic0I7QUFFdEMsU0FBU0Msa0JBQWtCQyxXQUFtQjtJQUM1QyxJQUFJQyxXQUFXQyxPQUFPQyxRQUFRLENBQUNGLFFBQVE7SUFFdkMsSUFBSTtRQUNGLHVCQUF1QjtRQUN2QkEsV0FBVyxJQUFJRyxJQUFJSixhQUFhQyxRQUFRO0lBQzFDLEVBQUUsVUFBTSxDQUFDO0lBRVQsT0FBT0EsYUFBYSxVQUFVLFFBQVE7QUFDeEM7QUFFTyxTQUFTSCxhQUFhRSxXQUErQjtJQUMxRCxNQUFNSyxTQUFTQyxDQUFBQSxHQUFBQSx1QkFBQUEscUJBQUFBLEVBQXNCTjtJQUNyQyxNQUFNQyxXQUFXRixrQkFBa0JDLGVBQWU7SUFFbEQsSUFBSUksSUFBSUcsUUFBUSxDQUFDRixTQUFTO1FBQ3hCLCtEQUErRDtRQUMvRCxxQ0FBcUM7UUFDckMsT0FBT0EsT0FBT0csT0FBTyxDQUFDLFNBQVM7SUFDakM7SUFFQSxNQUFNLEVBQUVDLFFBQVEsRUFBRUMsSUFBSSxFQUFFLEdBQUdSLE9BQU9DLFFBQVE7SUFDMUMsT0FBVUYsV0FBUyxPQUFJUSxXQUFXQyxDQUFBQSxPQUFRLE1BQUdBLE9BQVMsR0FBQyxHQUFJTDtBQUM3RCIsInNvdXJjZXMiOlsiRDpcXHNyY1xcY2xpZW50XFxkZXZcXGhvdC1yZWxvYWRlclxcZ2V0LXNvY2tldC11cmwudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgbm9ybWFsaXplZEFzc2V0UHJlZml4IH0gZnJvbSAnLi4vLi4vLi4vc2hhcmVkL2xpYi9ub3JtYWxpemVkLWFzc2V0LXByZWZpeCdcblxuZnVuY3Rpb24gZ2V0U29ja2V0UHJvdG9jb2woYXNzZXRQcmVmaXg6IHN0cmluZyk6IHN0cmluZyB7XG4gIGxldCBwcm90b2NvbCA9IHdpbmRvdy5sb2NhdGlvbi5wcm90b2NvbFxuXG4gIHRyeSB7XG4gICAgLy8gYXNzZXRQcmVmaXggaXMgYSB1cmxcbiAgICBwcm90b2NvbCA9IG5ldyBVUkwoYXNzZXRQcmVmaXgpLnByb3RvY29sXG4gIH0gY2F0Y2gge31cblxuICByZXR1cm4gcHJvdG9jb2wgPT09ICdodHRwOicgPyAnd3M6JyA6ICd3c3M6J1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0U29ja2V0VXJsKGFzc2V0UHJlZml4OiBzdHJpbmcgfCB1bmRlZmluZWQpOiBzdHJpbmcge1xuICBjb25zdCBwcmVmaXggPSBub3JtYWxpemVkQXNzZXRQcmVmaXgoYXNzZXRQcmVmaXgpXG4gIGNvbnN0IHByb3RvY29sID0gZ2V0U29ja2V0UHJvdG9jb2woYXNzZXRQcmVmaXggfHwgJycpXG5cbiAgaWYgKFVSTC5jYW5QYXJzZShwcmVmaXgpKSB7XG4gICAgLy8gc2luY2Ugbm9ybWFsaXplZCBhc3NldCBwcmVmaXggaXMgZW5zdXJlZCB0byBiZSBhIFVSTCBmb3JtYXQsXG4gICAgLy8gd2UgY2FuIHNhZmVseSByZXBsYWNlIHRoZSBwcm90b2NvbFxuICAgIHJldHVybiBwcmVmaXgucmVwbGFjZSgvXmh0dHAvLCAnd3MnKVxuICB9XG5cbiAgY29uc3QgeyBob3N0bmFtZSwgcG9ydCB9ID0gd2luZG93LmxvY2F0aW9uXG4gIHJldHVybiBgJHtwcm90b2NvbH0vLyR7aG9zdG5hbWV9JHtwb3J0ID8gYDoke3BvcnR9YCA6ICcnfSR7cHJlZml4fWBcbn1cbiJdLCJuYW1lcyI6WyJnZXRTb2NrZXRVcmwiLCJnZXRTb2NrZXRQcm90b2NvbCIsImFzc2V0UHJlZml4IiwicHJvdG9jb2wiLCJ3aW5kb3ciLCJsb2NhdGlvbiIsIlVSTCIsInByZWZpeCIsIm5vcm1hbGl6ZWRBc3NldFByZWZpeCIsImNhblBhcnNlIiwicmVwbGFjZSIsImhvc3RuYW1lIiwicG9ydCJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(pages-dir-browser)/./node_modules/next/dist/client/dev/hot-reloader/get-socket-url.js\n")); - -/***/ }), - -/***/ "(pages-dir-browser)/./node_modules/next/dist/client/dev/hot-reloader/pages/hot-reloader-pages.js": -/*!************************************************************************************!*\ - !*** ./node_modules/next/dist/client/dev/hot-reloader/pages/hot-reloader-pages.js ***! - \************************************************************************************/ -/***/ ((module, exports, __webpack_require__) => { - -"use strict"; -eval(__webpack_require__.ts("// TODO: Remove use of `any` type. Fix no-use-before-define violations.\n/* eslint-disable @typescript-eslint/no-use-before-define */ /**\n * MIT License\n *\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in all\n * copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n * SOFTWARE.\n */ /// <reference types=\"webpack/module.d.ts\" />\n// This file is a modified version of the Create React App HMR dev client that\n// can be found here:\n// https://github.com/facebook/create-react-app/blob/v3.4.1/packages/react-dev-utils/webpackHotDevClient.js\n/// <reference types=\"webpack/module.d.ts\" />\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n default: function() {\n return connect;\n },\n handleStaticIndicator: function() {\n return handleStaticIndicator;\n },\n performFullReload: function() {\n return performFullReload;\n }\n});\nconst _interop_require_default = __webpack_require__(/*! @swc/helpers/_/_interop_require_default */ \"(pages-dir-browser)/./node_modules/@swc/helpers/esm/_interop_require_default.js\");\nconst _nextdevtools = __webpack_require__(/*! next/dist/compiled/next-devtools */ \"(pages-dir-browser)/./node_modules/next/dist/compiled/next-devtools/index.js\");\nconst _pagesdevoverlaysetup = __webpack_require__(/*! ../../../../next-devtools/userspace/pages/pages-dev-overlay-setup */ \"(pages-dir-browser)/./node_modules/next/dist/next-devtools/userspace/pages/pages-dev-overlay-setup.js\");\nconst _stripansi = /*#__PURE__*/ _interop_require_default._(__webpack_require__(/*! next/dist/compiled/strip-ansi */ \"(pages-dir-browser)/./node_modules/next/dist/compiled/strip-ansi/index.js\"));\nconst _websocket = __webpack_require__(/*! ./websocket */ \"(pages-dir-browser)/./node_modules/next/dist/client/dev/hot-reloader/pages/websocket.js\");\nconst _formatwebpackmessages = /*#__PURE__*/ _interop_require_default._(__webpack_require__(/*! ../../../../shared/lib/format-webpack-messages */ \"(pages-dir-browser)/./node_modules/next/dist/shared/lib/format-webpack-messages.js\"));\nconst _hotreloadertypes = __webpack_require__(/*! ../../../../server/dev/hot-reloader-types */ \"(pages-dir-browser)/./node_modules/next/dist/server/dev/hot-reloader-types.js\");\nconst _shared = __webpack_require__(/*! ../shared */ \"(pages-dir-browser)/./node_modules/next/dist/client/dev/hot-reloader/shared.js\");\nconst _runtimeerrorhandler = __webpack_require__(/*! ../../runtime-error-handler */ \"(pages-dir-browser)/./node_modules/next/dist/client/dev/runtime-error-handler.js\");\nconst _reporthmrlatency = /*#__PURE__*/ _interop_require_default._(__webpack_require__(/*! ../../report-hmr-latency */ \"(pages-dir-browser)/./node_modules/next/dist/client/dev/report-hmr-latency.js\"));\nconst _turbopackhotreloadercommon = __webpack_require__(/*! ../turbopack-hot-reloader-common */ \"(pages-dir-browser)/./node_modules/next/dist/client/dev/hot-reloader/turbopack-hot-reloader-common.js\");\nwindow.__nextDevClientId = Math.round(Math.random() * 100 + Date.now());\nlet customHmrEventHandler;\nlet turbopackMessageListeners = [];\nfunction connect() {\n (0, _pagesdevoverlaysetup.register)();\n (0, _websocket.addMessageListener)((payload)=>{\n if (!('action' in payload)) {\n return;\n }\n try {\n processMessage(payload);\n } catch (err) {\n (0, _shared.reportInvalidHmrMessage)(payload, err);\n }\n });\n return {\n subscribeToHmrEvent (handler) {\n customHmrEventHandler = handler;\n },\n onUnrecoverableError () {\n _runtimeerrorhandler.RuntimeErrorHandler.hadRuntimeError = true;\n },\n addTurbopackMessageListener (cb) {\n turbopackMessageListeners.push(cb);\n },\n sendTurbopackMessage (msg) {\n (0, _websocket.sendMessage)(msg);\n },\n handleUpdateError (err) {\n performFullReload(err);\n }\n };\n}\n// Remember some state related to hot module replacement.\nvar isFirstCompilation = true;\nvar mostRecentCompilationHash = null;\nvar hasCompileErrors = false;\nfunction clearOutdatedErrors() {\n // Clean up outdated compile errors, if any.\n if (typeof console !== 'undefined' && typeof console.clear === 'function') {\n if (hasCompileErrors) {\n console.clear();\n }\n }\n}\n// Successful compilation.\nfunction handleSuccess() {\n clearOutdatedErrors();\n hasCompileErrors = false;\n if (false) {} else {\n const isHotUpdate = !isFirstCompilation || window.__NEXT_DATA__.page !== '/_error' && isUpdateAvailable();\n // Attempt to apply hot updates or reload.\n if (isHotUpdate) {\n tryApplyUpdatesWebpack();\n }\n }\n isFirstCompilation = false;\n}\n// Compilation with warnings (e.g. ESLint).\nfunction handleWarnings(warnings) {\n clearOutdatedErrors();\n const isHotUpdate = !isFirstCompilation;\n isFirstCompilation = false;\n hasCompileErrors = false;\n function printWarnings() {\n // Print warnings to the console.\n const formatted = (0, _formatwebpackmessages.default)({\n warnings: warnings,\n errors: []\n });\n if (typeof console !== 'undefined' && typeof console.warn === 'function') {\n var _formatted_warnings;\n for(let i = 0; i < ((_formatted_warnings = formatted.warnings) == null ? void 0 : _formatted_warnings.length); i++){\n if (i === 5) {\n console.warn('There were more warnings in other files.\\n' + 'You can find a complete log in the terminal.');\n break;\n }\n console.warn((0, _stripansi.default)(formatted.warnings[i]));\n }\n }\n }\n printWarnings();\n // Attempt to apply hot updates or reload.\n if (isHotUpdate) {\n tryApplyUpdatesWebpack();\n }\n}\n// Compilation with errors (e.g. syntax error or missing modules).\nfunction handleErrors(errors) {\n clearOutdatedErrors();\n isFirstCompilation = false;\n hasCompileErrors = true;\n // \"Massage\" webpack messages.\n var formatted = (0, _formatwebpackmessages.default)({\n errors: errors,\n warnings: []\n });\n // Only show the first error.\n _nextdevtools.dispatcher.onBuildError(formatted.errors[0]);\n // Also log them to the console.\n if (typeof console !== 'undefined' && typeof console.error === 'function') {\n for(var i = 0; i < formatted.errors.length; i++){\n console.error((0, _stripansi.default)(formatted.errors[i]));\n }\n }\n // Do not attempt to reload now.\n // We will reload on next success instead.\n if (false) {}\n}\nlet webpackStartMsSinceEpoch = null;\nconst turbopackHmr = false ? 0 : null;\nlet isrManifest = {};\n// There is a newer version of the code available.\nfunction handleAvailableHash(hash) {\n // Update last known compilation hash.\n mostRecentCompilationHash = hash;\n}\nfunction handleStaticIndicator() {\n if (true) {\n var _window_next_router_components__app;\n const routeInfo = window.next.router.components[window.next.router.pathname];\n const pageComponent = routeInfo == null ? void 0 : routeInfo.Component;\n const appComponent = (_window_next_router_components__app = window.next.router.components['/_app']) == null ? void 0 : _window_next_router_components__app.Component;\n const isDynamicPage = Boolean(pageComponent == null ? void 0 : pageComponent.getInitialProps) || Boolean(routeInfo == null ? void 0 : routeInfo.__N_SSP);\n const hasAppGetInitialProps = Boolean(appComponent == null ? void 0 : appComponent.getInitialProps) && (appComponent == null ? void 0 : appComponent.getInitialProps) !== (appComponent == null ? void 0 : appComponent.origGetInitialProps);\n const isPageStatic = window.location.pathname in isrManifest || !isDynamicPage && !hasAppGetInitialProps;\n _nextdevtools.dispatcher.onStaticIndicator(isPageStatic);\n }\n}\n/** Handles messages from the server for the Pages Router. */ function processMessage(obj) {\n if (!('action' in obj)) {\n return;\n }\n switch(obj.action){\n case _hotreloadertypes.HMR_ACTIONS_SENT_TO_BROWSER.ISR_MANIFEST:\n {\n isrManifest = obj.data;\n handleStaticIndicator();\n break;\n }\n case _hotreloadertypes.HMR_ACTIONS_SENT_TO_BROWSER.BUILDING:\n {\n _nextdevtools.dispatcher.buildingIndicatorShow();\n if (false) {} else {\n webpackStartMsSinceEpoch = Date.now();\n console.log('[Fast Refresh] rebuilding');\n }\n break;\n }\n case _hotreloadertypes.HMR_ACTIONS_SENT_TO_BROWSER.BUILT:\n case _hotreloadertypes.HMR_ACTIONS_SENT_TO_BROWSER.SYNC:\n {\n _nextdevtools.dispatcher.buildingIndicatorHide();\n if (obj.hash) handleAvailableHash(obj.hash);\n const { errors, warnings } = obj;\n // Is undefined when it's a 'built' event\n if ('versionInfo' in obj) _nextdevtools.dispatcher.onVersionInfo(obj.versionInfo);\n if ('devIndicator' in obj) _nextdevtools.dispatcher.onDevIndicator(obj.devIndicator);\n const hasErrors = Boolean(errors && errors.length);\n if (hasErrors) {\n (0, _websocket.sendMessage)(JSON.stringify({\n event: 'client-error',\n errorCount: errors.length,\n clientId: window.__nextDevClientId\n }));\n return handleErrors(errors);\n }\n // NOTE: Turbopack does not currently send warnings\n const hasWarnings = Boolean(warnings && warnings.length);\n if (hasWarnings) {\n (0, _websocket.sendMessage)(JSON.stringify({\n event: 'client-warning',\n warningCount: warnings.length,\n clientId: window.__nextDevClientId\n }));\n return handleWarnings(warnings);\n }\n (0, _websocket.sendMessage)(JSON.stringify({\n event: 'client-success',\n clientId: window.__nextDevClientId\n }));\n return handleSuccess();\n }\n case _hotreloadertypes.HMR_ACTIONS_SENT_TO_BROWSER.SERVER_COMPONENT_CHANGES:\n {\n turbopackHmr == null ? void 0 : turbopackHmr.onServerComponentChanges();\n if (hasCompileErrors || _runtimeerrorhandler.RuntimeErrorHandler.hadRuntimeError) {\n window.location.reload();\n }\n return;\n }\n case _hotreloadertypes.HMR_ACTIONS_SENT_TO_BROWSER.SERVER_ERROR:\n {\n const { errorJSON } = obj;\n if (errorJSON) {\n const { message, stack } = JSON.parse(errorJSON);\n const error = Object.defineProperty(new Error(message), \"__NEXT_ERROR_CODE\", {\n value: \"E394\",\n enumerable: false,\n configurable: true\n });\n error.stack = stack;\n handleErrors([\n error\n ]);\n }\n return;\n }\n case _hotreloadertypes.HMR_ACTIONS_SENT_TO_BROWSER.TURBOPACK_CONNECTED:\n {\n for (const listener of turbopackMessageListeners){\n listener({\n type: _hotreloadertypes.HMR_ACTIONS_SENT_TO_BROWSER.TURBOPACK_CONNECTED,\n data: obj.data\n });\n }\n break;\n }\n case _hotreloadertypes.HMR_ACTIONS_SENT_TO_BROWSER.TURBOPACK_MESSAGE:\n {\n turbopackHmr.onTurbopackMessage(obj);\n _nextdevtools.dispatcher.onBeforeRefresh();\n for (const listener of turbopackMessageListeners){\n listener({\n type: _hotreloadertypes.HMR_ACTIONS_SENT_TO_BROWSER.TURBOPACK_MESSAGE,\n data: obj.data\n });\n }\n if (_runtimeerrorhandler.RuntimeErrorHandler.hadRuntimeError) {\n console.warn(_shared.REACT_REFRESH_FULL_RELOAD_FROM_ERROR);\n performFullReload(null);\n }\n _nextdevtools.dispatcher.onRefresh();\n break;\n }\n default:\n {\n if (customHmrEventHandler) {\n customHmrEventHandler(obj);\n break;\n }\n break;\n }\n }\n}\n// Is there a newer version of this code available?\nfunction isUpdateAvailable() {\n /* globals __webpack_hash__ */ // __webpack_hash__ is the hash of the current compilation.\n // It's a global variable injected by Webpack.\n return mostRecentCompilationHash !== __webpack_require__.h();\n}\n// Webpack disallows updates in other states.\nfunction canApplyUpdates() {\n return module.hot.status() === 'idle';\n}\nfunction afterApplyUpdates(fn) {\n if (canApplyUpdates()) {\n fn();\n } else {\n function handler(status) {\n if (status === 'idle') {\n module.hot.removeStatusHandler(handler);\n fn();\n }\n }\n module.hot.addStatusHandler(handler);\n }\n}\n// Attempt to update code on the fly, fall back to a hard reload.\nfunction tryApplyUpdatesWebpack() {\n if (false) {}\n if (!isUpdateAvailable() || !canApplyUpdates()) {\n _nextdevtools.dispatcher.onBuildOk();\n return;\n }\n function handleApplyUpdates(err, updatedModules) {\n if (err || _runtimeerrorhandler.RuntimeErrorHandler.hadRuntimeError || updatedModules == null) {\n if (err) {\n console.warn(_shared.REACT_REFRESH_FULL_RELOAD);\n } else if (_runtimeerrorhandler.RuntimeErrorHandler.hadRuntimeError) {\n console.warn(_shared.REACT_REFRESH_FULL_RELOAD_FROM_ERROR);\n }\n performFullReload(err);\n return;\n }\n _nextdevtools.dispatcher.onBuildOk();\n if (isUpdateAvailable()) {\n // While we were updating, there was a new update! Do it again.\n tryApplyUpdatesWebpack();\n return;\n }\n _nextdevtools.dispatcher.onRefresh();\n (0, _reporthmrlatency.default)(_websocket.sendMessage, updatedModules, webpackStartMsSinceEpoch, Date.now());\n if (false) {}\n }\n // https://webpack.js.org/api/hot-module-replacement/#check\n module.hot.check(/* autoApply */ false).then((updatedModules)=>{\n if (updatedModules == null) {\n return null;\n }\n // We should always handle an update, even if updatedModules is empty (but\n // non-null) for any reason. That's what webpack would normally do:\n // https://github.com/webpack/webpack/blob/3aa6b6bc3a64/lib/hmr/HotModuleReplacement.runtime.js#L296-L298\n _nextdevtools.dispatcher.onBeforeRefresh();\n // https://webpack.js.org/api/hot-module-replacement/#apply\n return module.hot.apply();\n }).then((updatedModules)=>{\n handleApplyUpdates(null, updatedModules);\n }, (err)=>{\n handleApplyUpdates(err, null);\n });\n}\nfunction performFullReload(err) {\n const stackTrace = err && (err.stack && err.stack.split('\\n').slice(0, 5).join('\\n') || err.message || err + '');\n (0, _websocket.sendMessage)(JSON.stringify({\n event: 'client-full-reload',\n stackTrace,\n hadRuntimeError: !!_runtimeerrorhandler.RuntimeErrorHandler.hadRuntimeError,\n dependencyChain: err ? err.dependencyChain : undefined\n }));\n window.location.reload();\n}\nif ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=hot-reloader-pages.js.map\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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvY2xpZW50L2Rldi9ob3QtcmVsb2FkZXIvcGFnZXMvaG90LXJlbG9hZGVyLXBhZ2VzLmpzIiwibWFwcGluZ3MiOiJBQUFBLHVFQUF1RTtBQUN2RSwwREFBMEQsR0FDMUQ7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Q0FzQkMsR0FFRCw2Q0FBNkM7QUFFN0MsOEVBQThFO0FBQzlFLHFCQUFxQjtBQUNyQiwyR0FBMkc7QUFFM0csNkNBQTZDOzs7Ozs7Ozs7Ozs7O0lBd0M3QyxPQWdDQztlQWhDdUJBOztJQWtLUkMscUJBQXFCO2VBQXJCQTs7SUFvUEFDLGlCQUFpQjtlQUFqQkE7Ozs7MENBNWJXO2tEQUNGO2dGQUNIO3VDQUMwQjs0RkFDZDs4Q0FDVTtvQ0FTckM7aURBQzZCO3VGQUNQO3dEQUNBO0FBaUI3QkMsT0FBT0MsaUJBQWlCLEdBQUdDLEtBQUtDLEtBQUssQ0FBQ0QsS0FBS0UsTUFBTSxLQUFLLE1BQU1DLEtBQUtDLEdBQUc7QUFFcEUsSUFBSUM7QUFDSixJQUFJQyw0QkFBc0UsRUFBRTtBQUM3RCxTQUFTWDtJQUN0QlksQ0FBQUEsR0FBQUEsc0JBQUFBLFFBQUFBO0lBRUFDLENBQUFBLEdBQUFBLFdBQUFBLGtCQUFBQSxFQUFtQixDQUFDQztRQUNsQixJQUFJLENBQUUsYUFBWUEsT0FBQUEsQ0FBTSxFQUFJO1lBQzFCO1FBQ0Y7UUFFQSxJQUFJO1lBQ0ZDLGVBQWVEO1FBQ2pCLEVBQUUsT0FBT0UsS0FBYztZQUNyQkMsQ0FBQUEsR0FBQUEsUUFBQUEsdUJBQUFBLEVBQXdCSCxTQUFTRTtRQUNuQztJQUNGO0lBRUEsT0FBTztRQUNMRSxxQkFBb0JDLE9BQVk7WUFDOUJULHdCQUF3QlM7UUFDMUI7UUFDQUM7WUFDRUMscUJBQUFBLG1CQUFtQixDQUFDQyxlQUFlLEdBQUc7UUFDeEM7UUFDQUMsNkJBQTRCQyxFQUF3QztZQUNsRWIsMEJBQTBCYyxJQUFJLENBQUNEO1FBQ2pDO1FBQ0FF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STRHLEtBQUssQ0FBQzBCLEtBQUssQ0FBQyxNQUFNQyxLQUFLLENBQUMsR0FBRyxHQUFHQyxJQUFJLENBQUMsU0FDcER4SSxJQUFJMkcsT0FBTyxJQUNYM0csTUFBTSxHQUFDO0lBRVhZLENBQUFBLEdBQUFBLFdBQUFBLFdBQUFBLEVBQ0VtRixLQUFLQyxTQUFTLENBQUM7UUFDYkMsT0FBTztRQUNQb0M7UUFDQS9ILGlCQUFpQixDQUFDLENBQUNELHFCQUFBQSxtQkFBbUIsQ0FBQ0MsZUFBZTtRQUN0RG1JLGlCQUFpQnpJLE1BQU1BLElBQUl5SSxlQUFlLEdBQUdDO0lBQy9DO0lBR0Z2SixPQUFPeUYsUUFBUSxDQUFDNEIsTUFBTTtBQUN4QiIsInNvdXJjZXMiOlsiRDpcXHNyY1xcY2xpZW50XFxkZXZcXGhvdC1yZWxvYWRlclxccGFnZXNcXGhvdC1yZWxvYWRlci1wYWdlcy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvLyBUT0RPOiBSZW1vdmUgdXNlIG9mIGBhbnlgIHR5cGUuIEZpeCBuby11c2UtYmVmb3JlLWRlZmluZSB2aW9sYXRpb25zLlxuLyogZXNsaW50LWRpc2FibGUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXVzZS1iZWZvcmUtZGVmaW5lICovXG4vKipcbiAqIE1JVCBMaWNlbnNlXG4gKlxuICogQ29weXJpZ2h0IChjKSAyMDEzLXByZXNlbnQsIEZhY2Vib29rLCBJbmMuXG4gKlxuICogUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEgY29weVxuICogb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgXCJTb2Z0d2FyZVwiKSwgdG8gZGVhbFxuICogaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0c1xuICogdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Igc2VsbFxuICogY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIFNvZnR3YXJlIGlzXG4gKiBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOlxuICpcbiAqIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkIGluIGFsbFxuICogY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS5cbiAqXG4gKiBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgXCJBUyBJU1wiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SXG4gKiBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSxcbiAqIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRVxuICogQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUlxuICogTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSxcbiAqIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU4gVEhFXG4gKiBTT0ZUV0FSRS5cbiAqL1xuXG4vLy8gPHJlZmVyZW5jZSB0eXBlcz1cIndlYnBhY2svbW9kdWxlLmQudHNcIiAvPlxuXG4vLyBUaGlzIGZpbGUgaXMgYSBtb2RpZmllZCB2ZXJzaW9uIG9mIHRoZSBDcmVhdGUgUmVhY3QgQXBwIEhNUiBkZXYgY2xpZW50IHRoYXRcbi8vIGNhbiBiZSBmb3VuZCBoZXJlOlxuLy8gaHR0cHM6Ly9naXRodWIuY29tL2ZhY2Vib29rL2NyZWF0ZS1yZWFjdC1hcHAvYmxvYi92My40LjEvcGFja2FnZXMvcmVhY3QtZGV2LXV0aWxzL3dlYnBhY2tIb3REZXZDbGllbnQuanNcblxuLy8vIDxyZWZlcmVuY2UgdHlwZXM9XCJ3ZWJwYWNrL21vZHVsZS5kLnRzXCIgLz5cblxuaW1wb3J0IHsgZGlzcGF0Y2hlciB9IGZyb20gJ25leHQvZGlzdC9jb21waWxlZC9uZXh0LWRldnRvb2xzJ1xuaW1wb3J0IHsgcmVnaXN0ZXIgfSBmcm9tICcuLi8uLi8uLi8uLi9uZXh0LWRldnRvb2xzL3VzZXJzcGFjZS9wYWdlcy9wYWdlcy1kZXYtb3ZlcmxheS1zZXR1cCdcbmltcG9ydCBzdHJpcEFuc2kgZnJvbSAnbmV4dC9kaXN0L2NvbXBpbGVkL3N0cmlwLWFuc2knXG5pbXBvcnQgeyBhZGRNZXNzYWdlTGlzdGVuZXIsIHNlbmRNZXNzYWdlIH0gZnJvbSAnLi93ZWJzb2NrZXQnXG5pbXBvcnQgZm9ybWF0V2VicGFja01lc3NhZ2VzIGZyb20gJy4uLy4uLy4uLy4uL3NoYXJlZC9saWIvZm9ybWF0LXdlYnBhY2stbWVzc2FnZXMnXG5pbXBvcnQgeyBITVJfQUNUSU9OU19TRU5UX1RPX0JST1dTRVIgfSBmcm9tICcuLi8uLi8uLi8uLi9zZXJ2ZXIvZGV2L2hvdC1yZWxvYWRlci10eXBlcydcbmltcG9ydCB0eXBlIHtcbiAgSE1SX0FDVElPTl9UWVBFUyxcbiAgVHVyYm9wYWNrTXNnVG9Ccm93c2VyLFxufSBmcm9tICcuLi8uLi8uLi8uLi9zZXJ2ZXIvZGV2L2hvdC1yZWxvYWRlci10eXBlcydcbmltcG9ydCB7XG4gIFJFQUNUX1JFRlJFU0hfRlVMTF9SRUxPQUQsXG4gIFJFQUNUX1JFRlJFU0hfRlVMTF9SRUxPQURfRlJPTV9FUlJPUixcbiAgcmVwb3J0SW52YWxpZEhtck1lc3NhZ2UsXG59IGZyb20gJy4uL3NoYXJlZCdcbmltcG9ydCB7IFJ1bnRpbWVFcnJvckhhbmRsZXIgfSBmcm9tICcuLi8uLi9ydW50aW1lLWVycm9yLWhhbmRsZXInXG5pbXBvcnQgcmVwb3J0SG1yTGF0ZW5jeSBmcm9tICcuLi8uLi9yZXBvcnQtaG1yLWxhdGVuY3knXG5pbXBvcnQgeyBUdXJib3BhY2tIbXIgfSBmcm9tICcuLi90dXJib3BhY2staG90LXJlbG9hZGVyLWNvbW1vbidcblxuLy8gVGhpcyBhbHRlcm5hdGl2ZSBXZWJwYWNrRGV2U2VydmVyIGNvbWJpbmVzIHRoZSBmdW5jdGlvbmFsaXR5IG9mOlxuLy8gaHR0cHM6Ly9naXRodWIuY29tL3dlYnBhY2svd2VicGFjay1kZXYtc2VydmVyL2Jsb2Ivd2VicGFjay0xL2NsaWVudC9pbmRleC5qc1xuLy8gaHR0cHM6Ly9naXRodWIuY29tL3dlYnBhY2svd2VicGFjay9ibG9iL3dlYnBhY2stMS9ob3QvZGV2LXNlcnZlci5qc1xuXG4vLyBJdCBvbmx5IHN1cHBvcnRzIHRoZWlyIHNpbXBsZXN0IGNvbmZpZ3VyYXRpb24gKGhvdCB1cGRhdGVzIG9uIHNhbWUgc2VydmVyKS5cbi8vIEl0IG1ha2VzIHNvbWUgb3BpbmlvbmF0ZWQgY2hvaWNlcyBvbiB0b3AsIGxpa2UgYWRkaW5nIGEgc3ludGF4IGVycm9yIG92ZXJsYXlcbi8vIHRoYXQgbG9va3Mgc2ltaWxhciB0byBvdXIgY29uc29sZSBvdXRwdXQuIFRoZSBlcnJvciBvdmVybGF5IGlzIGluc3BpcmVkIGJ5OlxuLy8gaHR0cHM6Ly9naXRodWIuY29tL2dsZW5qYW1pbi93ZWJwYWNrLWhvdC1taWRkbGV3YXJlXG5cbmRlY2xhcmUgZ2xvYmFsIHtcbiAgaW50ZXJmYWNlIFdpbmRvdyB7XG4gICAgX19uZXh0RGV2Q2xpZW50SWQ6IG51bWJlclxuICB9XG59XG5cbndpbmRvdy5fX25leHREZXZDbGllbnRJZCA9IE1hdGgucm91bmQoTWF0aC5yYW5kb20oKSAqIDEwMCArIERhdGUubm93KCkpXG5cbmxldCBjdXN0b21IbXJFdmVudEhhbmRsZXI6IGFueVxubGV0IHR1cmJvcGFja01lc3NhZ2VMaXN0ZW5lcnM6ICgobXNnOiBUdXJib3BhY2tNc2dUb0Jyb3dzZXIpID0+IHZvaWQpW10gPSBbXVxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gY29ubmVjdCgpIHtcbiAgcmVnaXN0ZXIoKVxuXG4gIGFkZE1lc3NhZ2VMaXN0ZW5lcigocGF5bG9hZCkgPT4ge1xuICAgIGlmICghKCdhY3Rpb24nIGluIHBheWxvYWQpKSB7XG4gICAgICByZXR1cm5cbiAgICB9XG5cbiAgICB0cnkge1xuICAgICAgcHJvY2Vzc01lc3NhZ2UocGF5bG9hZClcbiAgICB9IGNhdGNoIChlcnI6IHVua25vd24pIHtcbiAgICAgIHJlcG9ydEludmFsaWRIbXJNZXNzYWdlKHBheWxvYWQsIGVycilcbiAgICB9XG4gIH0pXG5cbiAgcmV0dXJuIHtcbiAgICBzdWJzY3JpYmVUb0htckV2ZW50KGhhbmRsZXI6IGFueSkge1xuICAgICAgY3VzdG9tSG1yRXZlbnRIYW5kbGVyID0gaGFuZGxlclxuICAgIH0sXG4gICAgb25VbnJlY292ZXJhYmxlRXJyb3IoKSB7XG4gICAgICBSdW50aW1lRXJyb3JIYW5kbGVyLmhhZFJ1bnRpbWVFcnJvciA9IHRydWVcbiAgICB9LFxuICAgIGFkZFR1cmJvcGFja01lc3NhZ2VMaXN0ZW5lcihjYjogKG1zZzogVHVyYm9wYWNrTXNnVG9Ccm93c2VyKSA9PiB2b2lkKSB7XG4gICAgICB0dXJib3BhY2tNZXNzYWdlTGlzdGVuZXJzLnB1c2goY2IpXG4gICAgfSxcbiAgICBzZW5kVHVyYm9wYWNrTWVzc2FnZShtc2c6IHN0cmluZykge1xuICAgICAgc2VuZE1lc3NhZ2UobXNnKVxuICAgIH0sXG4gICAgaGFuZGxlVXBkYXRlRXJyb3IoZXJyOiB1bmtub3duKSB7XG4gICAgICBwZXJmb3JtRnVsbFJlbG9hZChlcnIpXG4gICAgfSxcbiAgfVxufVxuXG4vLyBSZW1lbWJlciBzb21lIHN0YXRlIHJlbGF0ZWQgdG8gaG90IG1vZHVsZSByZXBsYWNlbWVudC5cbnZhciBpc0ZpcnN0Q29tcGlsYXRpb24gPSB0cnVlXG52YXIgbW9zdFJlY2VudENvbXBpbGF0aW9uSGFzaDogc3RyaW5nIHwgbnVsbCA9IG51bGxcbnZhciBoYXNDb21waWxlRXJyb3JzID0gZmFsc2VcblxuZnVuY3Rpb24gY2xlYXJPdXRkYXRlZEVycm9ycygpIHtcbiAgLy8gQ2xlYW4gdXAgb3V0ZGF0ZWQgY29tcGlsZSBlcnJvcnMsIGlmIGFueS5cbiAgaWYgKHR5cGVvZiBjb25zb2xlICE9PSAndW5kZWZpbmVkJyAmJiB0eXBlb2YgY29uc29sZS5jbGVhciA9PT0gJ2Z1bmN0aW9uJykge1xuICAgIGlmIChoYXNDb21waWxlRXJyb3JzKSB7XG4gICAgICBjb25zb2xlLmNsZWFyKClcbiAgICB9XG4gIH1cbn1cblxuLy8gU3VjY2Vzc2Z1bCBjb21waWxhdGlvbi5cbmZ1bmN0aW9uIGhhbmRsZVN1Y2Nlc3MoKSB7XG4gIGNsZWFyT3V0ZGF0ZWRFcnJvcnMoKVxuICBoYXNDb21waWxlRXJyb3JzID0gZmFsc2VcblxuICBpZiAocHJvY2Vzcy5lbnYuVFVSQk9QQUNLKSB7XG4gICAgY29uc3QgaG1yVXBkYXRlID0gdHVyYm9wYWNrSG1yIS5vbkJ1aWx0KClcbiAgICBpZiAoaG1yVXBkYXRlICE9IG51bGwpIHtcbiAgICAgIHJlcG9ydEhtckxhdGVuY3koXG4gICAgICAgIHNlbmRNZXNzYWdlLFxuICAgICAgICBbLi4uaG1yVXBkYXRlLnVwZGF0ZWRNb2R1bGVzXSxcbiAgICAgICAgaG1yVXBkYXRlLnN0YXJ0TXNTaW5jZUVwb2NoLFxuICAgICAgICBobXJVcGRhdGUuZW5kTXNTaW5jZUVwb2NoLFxuICAgICAgICBobXJVcGRhdGUuaGFzVXBkYXRlc1xuICAgICAgKVxuICAgIH1cbiAgICBkaXNwYXRjaGVyLm9uQnVpbGRPaygpXG4gIH0gZWxzZSB7XG4gICAgY29uc3QgaXNIb3RVcGRhdGUgPVxuICAgICAgIWlzRmlyc3RDb21waWxhdGlvbiB8fFxuICAgICAgKHdpbmRvdy5fX05FWFRfREFUQV9fLnBhZ2UgIT09ICcvX2Vycm9yJyAmJiBpc1VwZGF0ZUF2YWlsYWJsZSgpKVxuXG4gICAgLy8gQXR0ZW1wdCB0byBhcHBseSBob3QgdXBkYXRlcyBvciByZWxvYWQuXG4gICAgaWYgKGlzSG90VXBkYXRlKSB7XG4gICAgICB0cnlBcHBseVVwZGF0ZXNXZWJwYWNrKClcbiAgICB9XG4gIH1cblxuICBpc0ZpcnN0Q29tcGlsYXRpb24gPSBmYWxzZVxufVxuXG4vLyBDb21waWxhdGlvbiB3aXRoIHdhcm5pbmdzIChlLmcuIEVTTGludCkuXG5mdW5jdGlvbiBoYW5kbGVXYXJuaW5ncyh3YXJuaW5nczogYW55KSB7XG4gIGNsZWFyT3V0ZGF0ZWRFcnJvcnMoKVxuXG4gIGNvbnN0IGlzSG90VXBkYXRlID0gIWlzRmlyc3RDb21waWxhdGlvblxuICBpc0ZpcnN0Q29tcGlsYXRpb24gPSBmYWxzZVxuICBoYXNDb21waWxlRXJyb3JzID0gZmFsc2VcblxuICBmdW5jdGlvbiBwcmludFdhcm5pbmdzKCkge1xuICAgIC8vIFByaW50IHdhcm5pbmdzIHRvIHRoZSBjb25zb2xlLlxuICAgIGNvbnN0IGZvcm1hdHRlZCA9IGZvcm1hdFdlYnBhY2tNZXNzYWdlcyh7XG4gICAgICB3YXJuaW5nczogd2FybmluZ3MsXG4gICAgICBlcnJvcnM6IFtdLFxuICAgIH0pXG5cbiAgICBpZiAodHlwZW9mIGNvbnNvbGUgIT09ICd1bmRlZmluZWQnICYmIHR5cGVvZiBjb25zb2xlLndhcm4gPT09ICdmdW5jdGlvbicpIHtcbiAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgZm9ybWF0dGVkLndhcm5pbmdzPy5sZW5ndGg7IGkrKykge1xuICAgICAgICBpZiAoaSA9PT0gNSkge1xuICAgICAgICAgIGNvbnNvbGUud2FybihcbiAgICAgICAgICAgICdUaGVyZSB3ZXJlIG1vcmUgd2FybmluZ3MgaW4gb3RoZXIgZmlsZXMuXFxuJyArXG4gICAgICAgICAgICAgICdZb3UgY2FuIGZpbmQgYSBjb21wbGV0ZSBsb2cgaW4gdGhlIHRlcm1pbmFsLidcbiAgICAgICAgICApXG4gICAgICAgICAgYnJlYWtcbiAgICAgICAgfVxuICAgICAgICBjb25zb2xlLndhcm4oc3RyaXBBbnNpKGZvcm1hdHRlZC53YXJuaW5nc1tpXSkpXG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcHJpbnRXYXJuaW5ncygpXG5cbiAgLy8gQXR0ZW1wdCB0byBhcHBseSBob3QgdXBkYXRlcyBvciByZWxvYWQuXG4gIGlmIChpc0hvdFVwZGF0ZSkge1xuICAgIHRyeUFwcGx5VXBkYXRlc1dlYnBhY2soKVxuICB9XG59XG5cbi8vIENvbXBpbGF0aW9uIHdpdGggZXJyb3JzIChlLmcuIHN5bnRheCBlcnJvciBvciBtaXNzaW5nIG1vZHVsZXMpLlxuZnVuY3Rpb24gaGFuZGxlRXJyb3JzKGVycm9yczogYW55KSB7XG4gIGNsZWFyT3V0ZGF0ZWRFcnJvcnMoKVxuXG4gIGlzRmlyc3RDb21waWxhdGlvbiA9IGZhbHNlXG4gIGhhc0NvbXBpbGVFcnJvcnMgPSB0cnVlXG5cbiAgLy8gXCJNYXNzYWdlXCIgd2VicGFjayBtZXNzYWdlcy5cbiAgdmFyIGZvcm1hdHRlZCA9IGZvcm1hdFdlYnBhY2tNZXNzYWdlcyh7XG4gICAgZXJyb3JzOiBlcnJvcnMsXG4gICAgd2FybmluZ3M6IFtdLFxuICB9KVxuXG4gIC8vIE9ubHkgc2hvdyB0aGUgZmlyc3QgZXJyb3IuXG5cbiAgZGlzcGF0Y2hlci5vbkJ1aWxkRXJyb3IoZm9ybWF0dGVkLmVycm9yc1swXSlcblxuICAvLyBBbHNvIGxvZyB0aGVtIHRvIHRoZSBjb25zb2xlLlxuICBpZiAodHlwZW9mIGNvbnNvbGUgIT09ICd1bmRlZmluZWQnICYmIHR5cGVvZiBjb25zb2xlLmVycm9yID09PSAnZnVuY3Rpb24nKSB7XG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCBmb3JtYXR0ZWQuZXJyb3JzLmxlbmd0aDsgaSsrKSB7XG4gICAgICBjb25zb2xlLmVycm9yKHN0cmlwQW5zaShmb3JtYXR0ZWQuZXJyb3JzW2ldKSlcbiAgICB9XG4gIH1cblxuICAvLyBEbyBub3QgYXR0ZW1wdCB0byByZWxvYWQgbm93LlxuICAvLyBXZSB3aWxsIHJlbG9hZCBvbiBuZXh0IHN1Y2Nlc3MgaW5zdGVhZC5cbiAgaWYgKHByb2Nlc3MuZW52Ll9fTkVYVF9URVNUX01PREUpIHtcbiAgICBpZiAoc2VsZi5fX05FWFRfSE1SX0NCKSB7XG4gICAgICBzZWxmLl9fTkVYVF9ITVJfQ0IoZm9ybWF0dGVkLmVycm9yc1swXSlcbiAgICAgIHNlbGYuX19ORVhUX0hNUl9DQiA9IG51bGxcbiAgICB9XG4gIH1cbn1cblxubGV0IHdlYnBhY2tTdGFydE1zU2luY2VFcG9jaDogbnVtYmVyIHwgbnVsbCA9IG51bGxcbmNvbnN0IHR1cmJvcGFja0htcjogVHVyYm9wYWNrSG1yIHwgbnVsbCA9IHByb2Nlc3MuZW52LlRVUkJPUEFDS1xuICA/IG5ldyBUdXJib3BhY2tIbXIoKVxuICA6IG51bGxcbmxldCBpc3JNYW5pZmVzdDogUmVjb3JkPHN0cmluZywgYm9vbGVhbj4gPSB7fVxuXG4vLyBUaGVyZSBpcyBhIG5ld2VyIHZlcnNpb24gb2YgdGhlIGNvZGUgYXZhaWxhYmxlLlxuZnVuY3Rpb24gaGFuZGxlQXZhaWxhYmxlSGFzaChoYXNoOiBzdHJpbmcpIHtcbiAgLy8gVXBkYXRlIGxhc3Qga25vd24gY29tcGlsYXRpb24gaGFzaC5cbiAgbW9zdFJlY2VudENvbXBpbGF0aW9uSGFzaCA9IGhhc2hcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGhhbmRsZVN0YXRpY0luZGljYXRvcigpIHtcbiAgaWYgKHByb2Nlc3MuZW52Ll9fTkVYVF9ERVZfSU5ESUNBVE9SKSB7XG4gICAgY29uc3Qgcm91dGVJbmZvID0gd2luZG93Lm5leHQucm91dGVyLmNvbXBvbmVudHNbd2luZG93Lm5leHQucm91dGVyLnBhdGhuYW1lXVxuICAgIGNvbnN0IHBhZ2VDb21wb25lbnQgPSByb3V0ZUluZm8/LkNvbXBvbmVudFxuICAgIGNvbnN0IGFwcENvbXBvbmVudCA9IHdpbmRvdy5uZXh0LnJvdXRlci5jb21wb25lbnRzWycvX2FwcCddPy5Db21wb25lbnRcbiAgICBjb25zdCBpc0R5bmFtaWNQYWdlID1cbiAgICAgIEJvb2xlYW4ocGFnZUNvbXBvbmVudD8uZ2V0SW5pdGlhbFByb3BzKSB8fCBCb29sZWFuKHJvdXRlSW5mbz8uX19OX1NTUClcbiAgICBjb25zdCBoYXNBcHBHZXRJbml0aWFsUHJvcHMgPVxuICAgICAgQm9vbGVhbihhcHBDb21wb25lbnQ/LmdldEluaXRpYWxQcm9wcykgJiZcbiAgICAgIGFwcENvbXBvbmVudD8uZ2V0SW5pdGlhbFByb3BzICE9PSBhcHBDb21wb25lbnQ/Lm9yaWdHZXRJbml0aWFsUHJvcHNcblxuICAgIGNvbnN0IGlzUGFnZVN0YXRpYyA9XG4gICAgICB3aW5kb3cubG9jYXRpb24ucGF0aG5hbWUgaW4gaXNyTWFuaWZlc3QgfHxcbiAgICAgICghaXNEeW5hbWljUGFnZSAmJiAhaGFzQXBwR2V0SW5pdGlhbFByb3BzKVxuXG4gICAgZGlzcGF0Y2hlci5vblN0YXRpY0luZGljYXRvcihpc1BhZ2VTdGF0aWMpXG4gIH1cbn1cblxuLyoqIEhhbmRsZXMgbWVzc2FnZXMgZnJvbSB0aGUgc2VydmVyIGZvciB0aGUgUGFnZXMgUm91dGVyLiAqL1xuZnVuY3Rpb24gcHJvY2Vzc01lc3NhZ2Uob2JqOiBITVJfQUNUSU9OX1RZUEVTKSB7XG4gIGlmICghKCdhY3Rpb24nIGluIG9iaikpIHtcbiAgICByZXR1cm5cbiAgfVxuXG4gIHN3aXRjaCAob2JqLmFjdGlvbikge1xuICAgIGNhc2UgSE1SX0FDVElPTlNfU0VOVF9UT19CUk9XU0VSLklTUl9NQU5JRkVTVDoge1xuICAgICAgaXNyTWFuaWZlc3QgPSBvYmouZGF0YVxuICAgICAgaGFuZGxlU3RhdGljSW5kaWNhdG9yKClcbiAgICAgIGJyZWFrXG4gICAgfVxuICAgIGNhc2UgSE1SX0FDVElPTlNfU0VOVF9UT19CUk9XU0VSLkJVSUxESU5HOiB7XG4gICAgICBkaXNwYXRjaGVyLmJ1aWxkaW5nSW5kaWNhdG9yU2hvdygpXG5cbiAgICAgIGlmIChwcm9jZXNzLmVudi5UVVJCT1BBQ0spIHtcbiAgICAgICAgdHVyYm9wYWNrSG1yIS5vbkJ1aWxkaW5nKClcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHdlYnBhY2tTdGFydE1zU2luY2VFcG9jaCA9IERhdGUubm93KClcbiAgICAgICAgY29uc29sZS5sb2coJ1tGYXN0IFJlZnJlc2hdIHJlYnVpbGRpbmcnKVxuICAgICAgfVxuICAgICAgYnJlYWtcbiAgICB9XG4gICAgY2FzZSBITVJfQUNUSU9OU19TRU5UX1RPX0JST1dTRVIuQlVJTFQ6XG4gICAgY2FzZSBITVJfQUNUSU9OU19TRU5UX1RPX0JST1dTRVIuU1lOQzoge1xuICAgICAgZGlzcGF0Y2hlci5idWlsZGluZ0luZGljYXRvckhpZGUoKVxuXG4gICAgICBpZiAob2JqLmhhc2gpIGhhbmRsZUF2YWlsYWJsZUhhc2gob2JqLmhhc2gpXG5cbiAgICAgIGNvbnN0IHsgZXJyb3JzLCB3YXJuaW5ncyB9ID0gb2JqXG5cbiAgICAgIC8vIElzIHVuZGVmaW5lZCB3aGVuIGl0J3MgYSAnYnVpbHQnIGV2ZW50XG4gICAgICBpZiAoJ3ZlcnNpb25JbmZvJyBpbiBvYmopIGRpc3BhdGNoZXIub25WZXJzaW9uSW5mbyhvYmoudmVyc2lvbkluZm8pXG4gICAgICBpZiAoJ2RldkluZGljYXRvcicgaW4gb2JqKSBkaXNwYXRjaGVyLm9uRGV2SW5kaWNhdG9yKG9iai5kZXZJbmRpY2F0b3IpXG5cbiAgICAgIGNvbnN0IGhhc0Vycm9ycyA9IEJvb2xlYW4oZXJyb3JzICYmIGVycm9ycy5sZW5ndGgpXG4gICAgICBpZiAoaGFzRXJyb3JzKSB7XG4gICAgICAgIHNlbmRNZXNzYWdlKFxuICAgICAgICAgIEpTT04uc3RyaW5naWZ5KHtcbiAgICAgICAgICAgIGV2ZW50OiAnY2xpZW50LWVycm9yJyxcbiAgICAgICAgICAgIGVycm9yQ291bnQ6IGVycm9ycy5sZW5ndGgsXG4gICAgICAgICAgICBjbGllbnRJZDogd2luZG93Ll9fbmV4dERldkNsaWVudElkLFxuICAgICAgICAgIH0pXG4gICAgICAgIClcbiAgICAgICAgcmV0dXJuIGhhbmRsZUVycm9ycyhlcnJvcnMpXG4gICAgICB9XG5cbiAgICAgIC8vIE5PVEU6IFR1cmJvcGFjayBkb2VzIG5vdCBjdXJyZW50bHkgc2VuZCB3YXJuaW5nc1xuICAgICAgY29uc3QgaGFzV2FybmluZ3MgPSBCb29sZWFuKHdhcm5pbmdzICYmIHdhcm5pbmdzLmxlbmd0aClcbiAgICAgIGlmIChoYXNXYXJuaW5ncykge1xuICAgICAgICBzZW5kTWVzc2FnZShcbiAgICAgICAgICBKU09OLnN0cmluZ2lmeSh7XG4gICAgICAgICAgICBldmVudDogJ2NsaWVudC13YXJuaW5nJyxcbiAgICAgICAgICAgIHdhcm5pbmdDb3VudDogd2FybmluZ3MubGVuZ3RoLFxuICAgICAgICAgICAgY2xpZW50SWQ6IHdpbmRvdy5fX25leHREZXZDbGllbnRJZCxcbiAgICAgICAgICB9KVxuICAgICAgICApXG4gICAgICAgIHJldHVybiBoYW5kbGVXYXJuaW5ncyh3YXJuaW5ncylcbiAgICAgIH1cblxuICAgICAgc2VuZE1lc3NhZ2UoXG4gICAgICAgIEpTT04uc3RyaW5naWZ5KHtcbiAgICAgICAgICBldmVudDogJ2NsaWVudC1zdWNjZXNzJyxcbiAgICAgICAgICBjbGllbnRJZDogd2luZG93Ll9fbmV4dERldkNsaWVudElkLFxuICAgICAgICB9KVxuICAgICAgKVxuICAgICAgcmV0dXJuIGhhbmRsZVN1Y2Nlc3MoKVxuICAgIH1cbiAgICBjYXNlIEhNUl9BQ1RJT05TX1NFTlRfVE9fQlJPV1NFUi5TRVJWRVJfQ09NUE9ORU5UX0NIQU5HRVM6IHtcbiAgICAgIHR1cmJvcGFja0htcj8ub25TZXJ2ZXJDb21wb25lbnRDaGFuZ2VzKClcbiAgICAgIGlmIChoYXNDb21waWxlRXJyb3JzIHx8IFJ1bnRpbWVFcnJvckhhbmRsZXIuaGFkUnVudGltZUVycm9yKSB7XG4gICAgICAgIHdpbmRvdy5sb2NhdGlvbi5yZWxvYWQoKVxuICAgICAgfVxuICAgICAgcmV0dXJuXG4gICAgfVxuICAgIGNhc2UgSE1SX0FDVElPTlNfU0VOVF9UT19CUk9XU0VSLlNFUlZFUl9FUlJPUjoge1xuICAgICAgY29uc3QgeyBlcnJvckpTT04gfSA9IG9ialxuICAgICAgaWYgKGVycm9ySlNPTikge1xuICAgICAgICBjb25zdCB7IG1lc3NhZ2UsIHN0YWNrIH0gPSBKU09OLnBhcnNlKGVycm9ySlNPTilcbiAgICAgICAgY29uc3QgZXJyb3IgPSBuZXcgRXJyb3IobWVzc2FnZSlcbiAgICAgICAgZXJyb3Iuc3RhY2sgPSBzdGFja1xuICAgICAgICBoYW5kbGVFcnJvcnMoW2Vycm9yXSlcbiAgICAgIH1cbiAgICAgIHJldHVyblxuICAgIH1cbiAgICBjYXNlIEhNUl9BQ1RJT05TX1NFTlRfVE9fQlJPV1NFUi5UVVJCT1BBQ0tfQ09OTkVDVEVEOiB7XG4gICAgICBmb3IgKGNvbnN0IGxpc3RlbmVyIG9mIHR1cmJvcGFja01lc3NhZ2VMaXN0ZW5lcnMpIHtcbiAgICAgICAgbGlzdGVuZXIoe1xuICAgICAgICAgIHR5cGU6IEhNUl9BQ1RJT05TX1NFTlRfVE9fQlJPV1NFUi5UVVJCT1BBQ0tfQ09OTkVDVEVELFxuICAgICAgICAgIGRhdGE6IG9iai5kYXRhLFxuICAgICAgICB9KVxuICAgICAgfVxuICAgICAgYnJlYWtcbiAgICB9XG4gICAgY2FzZSBITVJfQUNUSU9OU19TRU5UX1RPX0JST1dTRVIuVFVSQk9QQUNLX01FU1NBR0U6IHtcbiAgICAgIHR1cmJvcGFja0htciEub25UdXJib3BhY2tNZXNzYWdlKG9iailcbiAgICAgIGRpc3BhdGNoZXIub25CZWZvcmVSZWZyZXNoKClcbiAgICAgIGZvciAoY29uc3QgbGlzdGVuZXIgb2YgdHVyYm9wYWNrTWVzc2FnZUxpc3RlbmVycykge1xuICAgICAgICBsaXN0ZW5lcih7XG4gICAgICAgICAgdHlwZTogSE1SX0FDVElPTlNfU0VOVF9UT19CUk9XU0VSLlRVUkJPUEFDS19NRVNTQUdFLFxuICAgICAgICAgIGRhdGE6IG9iai5kYXRhLFxuICAgICAgICB9KVxuICAgICAgfVxuICAgICAgaWYgKFJ1bnRpbWVFcnJvckhhbmRsZXIuaGFkUnVudGltZUVycm9yKSB7XG4gICAgICAgIGNvbnNvbGUud2FybihSRUFDVF9SRUZSRVNIX0ZVTExfUkVMT0FEX0ZST01fRVJST1IpXG4gICAgICAgIHBlcmZvcm1GdWxsUmVsb2FkKG51bGwpXG4gICAgICB9XG4gICAgICBkaXNwYXRjaGVyLm9uUmVmcmVzaCgpXG4gICAgICBicmVha1xuICAgIH1cbiAgICBkZWZhdWx0OiB7XG4gICAgICBpZiAoY3VzdG9tSG1yRXZlbnRIYW5kbGVyKSB7XG4gICAgICAgIGN1c3RvbUhtckV2ZW50SGFuZGxlcihvYmopXG4gICAgICAgIGJyZWFrXG4gICAgICB9XG4gICAgICBicmVha1xuICAgIH1cbiAgfVxufVxuXG4vLyBJcyB0aGVyZSBhIG5ld2VyIHZlcnNpb24gb2YgdGhpcyBjb2RlIGF2YWlsYWJsZT9cbmZ1bmN0aW9uIGlzVXBkYXRlQXZhaWxhYmxlKCkge1xuICAvKiBnbG9iYWxzIF9fd2VicGFja19oYXNoX18gKi9cbiAgLy8gX193ZWJwYWNrX2hhc2hfXyBpcyB0aGUgaGFzaCBvZiB0aGUgY3VycmVudCBjb21waWxhdGlvbi5cbiAgLy8gSXQncyBhIGdsb2JhbCB2YXJpYWJsZSBpbmplY3RlZCBieSBXZWJwYWNrLlxuICByZXR1cm4gbW9zdFJlY2VudENvbXBpbGF0aW9uSGFzaCAhPT0gX193ZWJwYWNrX2hhc2hfX1xufVxuXG4vLyBXZWJwYWNrIGRpc2FsbG93cyB1cGRhdGVzIGluIG90aGVyIHN0YXRlcy5cbmZ1bmN0aW9uIGNhbkFwcGx5VXBkYXRlcygpIHtcbiAgcmV0dXJuIG1vZHVsZS5ob3Quc3RhdHVzKCkgPT09ICdpZGxlJ1xufVxuZnVuY3Rpb24gYWZ0ZXJBcHBseVVwZGF0ZXMoZm46ICgpID0+IHZvaWQpIHtcbiAgaWYgKGNhbkFwcGx5VXBkYXRlcygpKSB7XG4gICAgZm4oKVxuICB9IGVsc2Uge1xuICAgIGZ1bmN0aW9uIGhhbmRsZXIoc3RhdHVzOiBzdHJpbmcpIHtcbiAgICAgIGlmIChzdGF0dXMgPT09ICdpZGxlJykge1xuICAgICAgICBtb2R1bGUuaG90LnJlbW92ZVN0YXR1c0hhbmRsZXIoaGFuZGxlcilcbiAgICAgICAgZm4oKVxuICAgICAgfVxuICAgIH1cbiAgICBtb2R1bGUuaG90LmFkZFN0YXR1c0hhbmRsZXIoaGFuZGxlcilcbiAgfVxufVxuXG4vLyBBdHRlbXB0IHRvIHVwZGF0ZSBjb2RlIG9uIHRoZSBmbHksIGZhbGwgYmFjayB0byBhIGhhcmQgcmVsb2FkLlxuZnVuY3Rpb24gdHJ5QXBwbHlVcGRhdGVzV2VicGFjaygpIHtcbiAgaWYgKCFtb2R1bGUuaG90KSB7XG4gICAgLy8gSG90TW9kdWxlUmVwbGFjZW1lbnRQbHVnaW4gaXMgbm90IGluIFdlYnBhY2sgY29uZmlndXJhdGlvbi5cbiAgICBjb25zb2xlLmVycm9yKCdIb3RNb2R1bGVSZXBsYWNlbWVudFBsdWdpbiBpcyBub3QgaW4gV2VicGFjayBjb25maWd1cmF0aW9uLicpXG4gICAgLy8gd2luZG93LmxvY2F0aW9uLnJlbG9hZCgpO1xuICAgIHJldHVyblxuICB9XG5cbiAgaWYgKCFpc1VwZGF0ZUF2YWlsYWJsZSgpIHx8ICFjYW5BcHBseVVwZGF0ZXMoKSkge1xuICAgIGRpc3BhdGNoZXIub25CdWlsZE9rKClcbiAgICByZXR1cm5cbiAgfVxuXG4gIGZ1bmN0aW9uIGhhbmRsZUFwcGx5VXBkYXRlcyhcbiAgICBlcnI6IGFueSxcbiAgICB1cGRhdGVkTW9kdWxlczogKHN0cmluZyB8IG51bWJlcilbXSB8IG51bGxcbiAgKSB7XG4gICAgaWYgKGVyciB8fCBSdW50aW1lRXJyb3JIYW5kbGVyLmhhZFJ1bnRpbWVFcnJvciB8fCB1cGRhdGVkTW9kdWxlcyA9PSBudWxsKSB7XG4gICAgICBpZiAoZXJyKSB7XG4gICAgICAgIGNvbnNvbGUud2FybihSRUFDVF9SRUZSRVNIX0ZVTExfUkVMT0FEKVxuICAgICAgfSBlbHNlIGlmIChSdW50aW1lRXJyb3JIYW5kbGVyLmhhZFJ1bnRpbWVFcnJvcikge1xuICAgICAgICBjb25zb2xlLndhcm4oUkVBQ1RfUkVGUkVTSF9GVUxMX1JFTE9BRF9GUk9NX0VSUk9SKVxuICAgICAgfVxuICAgICAgcGVyZm9ybUZ1bGxSZWxvYWQoZXJyKVxuICAgICAgcmV0dXJuXG4gICAgfVxuXG4gICAgZGlzcGF0Y2hlci5vbkJ1aWxkT2soKVxuXG4gICAgaWYgKGlzVXBkYXRlQXZhaWxhYmxlKCkpIHtcbiAgICAgIC8vIFdoaWxlIHdlIHdlcmUgdXBkYXRpbmcsIHRoZXJlIHdhcyBhIG5ldyB1cGRhdGUhIERvIGl0IGFnYWluLlxuICAgICAgdHJ5QXBwbHlVcGRhdGVzV2VicGFjaygpXG4gICAgICByZXR1cm5cbiAgICB9XG5cbiAgICBkaXNwYXRjaGVyLm9uUmVmcmVzaCgpXG4gICAgcmVwb3J0SG1yTGF0ZW5jeShcbiAgICAgIHNlbmRNZXNzYWdlLFxuICAgICAgdXBkYXRlZE1vZHVsZXMsXG4gICAgICB3ZWJwYWNrU3RhcnRNc1NpbmNlRXBvY2ghLFxuICAgICAgRGF0ZS5ub3coKVxuICAgIClcblxuICAgIGlmIChwcm9jZXNzLmVudi5fX05FWFRfVEVTVF9NT0RFKSB7XG4gICAgICBhZnRlckFwcGx5VXBkYXRlcygoKSA9PiB7XG4gICAgICAgIGlmIChzZWxmLl9fTkVYVF9ITVJfQ0IpIHtcbiAgICAgICAgICBzZWxmLl9fTkVYVF9ITVJfQ0IoKVxuICAgICAgICAgIHNlbGYuX19ORVhUX0hNUl9DQiA9IG51bGxcbiAgICAgICAgfVxuICAgICAgfSlcbiAgICB9XG4gIH1cblxuICAvLyBodHRwczovL3dlYnBhY2suanMub3JnL2FwaS9ob3QtbW9kdWxlLXJlcGxhY2VtZW50LyNjaGVja1xuICBtb2R1bGUuaG90XG4gICAgLmNoZWNrKC8qIGF1dG9BcHBseSAqLyBmYWxzZSlcbiAgICAudGhlbigodXBkYXRlZE1vZHVsZXM6IChzdHJpbmcgfCBudW1iZXIpW10gfCBudWxsKSA9PiB7XG4gICAgICBpZiAodXBkYXRlZE1vZHVsZXMgPT0gbnVsbCkge1xuICAgICAgICByZXR1cm4gbnVsbFxuICAgICAgfVxuXG4gICAgICAvLyBXZSBzaG91bGQgYWx3YXlzIGhhbmRsZSBhbiB1cGRhdGUsIGV2ZW4gaWYgdXBkYXRlZE1vZHVsZXMgaXMgZW1wdHkgKGJ1dFxuICAgICAgLy8gbm9uLW51bGwpIGZvciBhbnkgcmVhc29uLiBUaGF0J3Mgd2hhdCB3ZWJwYWNrIHdvdWxkIG5vcm1hbGx5IGRvOlxuICAgICAgLy8gaHR0cHM6Ly9naXRodWIuY29tL3dlYnBhY2svd2VicGFjay9ibG9iLzNhYTZiNmJjM2E2NC9saWIvaG1yL0hvdE1vZHVsZVJlcGxhY2VtZW50LnJ1bnRpbWUuanMjTDI5Ni1MMjk4XG4gICAgICBkaXNwYXRjaGVyLm9uQmVmb3JlUmVmcmVzaCgpXG4gICAgICAvLyBodHRwczovL3dlYnBhY2suanMub3JnL2FwaS9ob3QtbW9kdWxlLXJlcGxhY2VtZW50LyNhcHBseVxuICAgICAgcmV0dXJuIG1vZHVsZS5ob3QuYXBwbHkoKVxuICAgIH0pXG4gICAgLnRoZW4oXG4gICAgICAodXBkYXRlZE1vZHVsZXM6IChzdHJpbmcgfCBudW1iZXIpW10gfCBudWxsKSA9PiB7XG4gICAgICAgIGhhbmRsZUFwcGx5VXBkYXRlcyhudWxsLCB1cGRhdGVkTW9kdWxlcylcbiAgICAgIH0sXG4gICAgICAoZXJyOiBhbnkpID0+IHtcbiAgICAgICAgaGFuZGxlQXBwbHlVcGRhdGVzKGVyciwgbnVsbClcbiAgICAgIH1cbiAgICApXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBwZXJmb3JtRnVsbFJlbG9hZChlcnI6IGFueSkge1xuICBjb25zdCBzdGFja1RyYWNlID1cbiAgICBlcnIgJiZcbiAgICAoKGVyci5zdGFjayAmJiBlcnIuc3RhY2suc3BsaXQoJ1xcbicpLnNsaWNlKDAsIDUpLmpvaW4oJ1xcbicpKSB8fFxuICAgICAgZXJyLm1lc3NhZ2UgfHxcbiAgICAgIGVyciArICcnKVxuXG4gIHNlbmRNZXNzYWdlKFxuICAgIEpTT04uc3RyaW5naWZ5KHtcbiAgICAgIGV2ZW50OiAnY2xpZW50LWZ1bGwtcmVsb2FkJyxcbiAgICAgIHN0YWNrVHJhY2UsXG4gICAgICBoYWRSdW50aW1lRXJyb3I6ICEhUnVudGltZUVycm9ySGFuZGxlci5oYWRSdW50aW1lRXJyb3IsXG4gICAgICBkZXBlbmRlbmN5Q2hhaW46IGVyciA/IGVyci5kZXBlbmRlbmN5Q2hhaW4gOiB1bmRlZmluZWQsXG4gICAgfSlcbiAgKVxuXG4gIHdpbmRvdy5sb2NhdGlvbi5yZWxvYWQoKVxufVxuIl0sIm5hbWVzIjpbImNvbm5lY3QiLCJoYW5kbGVTdGF0aWNJbmRpY2F0b3IiLCJwZXJmb3JtRnVsbFJlbG9hZCIsIndpbmRvdyIsIl9fbmV4dERldkNsaWVudElkIiwiTWF0aCIsInJvdW5kIiwicmFuZG9tIiwiRGF0ZSIsIm5vdyIsImN1c3RvbUhtckV2ZW50SGFuZGxlciIsInR1cmJvcGFja01lc3NhZ2VMaXN0ZW5lcnMiLCJyZWdpc3RlciIsImFkZE1lc3NhZ2VMaXN0ZW5lciIsInBheWxvYWQiLCJwcm9jZXNzTWVzc2FnZSIsImVyciIsInJlcG9ydEludmFsaWRIbXJNZXNzYWdlIiwic3Vic2NyaWJlVG9IbXJFdmVudCIsImhhbmRsZXIiLCJvblVucmVjb3ZlcmFibGVFcnJvciIsIlJ1bnRpbWVFcnJvckhhbmRsZXIiLCJoYWRSdW50aW1lRXJyb3IiLCJhZGRUdXJib3BhY2tNZXNzYWdlTGlzdGVuZXIiLCJjYiIsInB1c2giLCJzZW5kVHVyYm9wYWNrTWVzc2FnZSIsIm1zZyIsInNlbmRNZXNzYWdlIiwiaGFuZGxlVXBkYXRlRXJyb3IiLCJpc0ZpcnN0Q29tcGlsYXRpb24iLCJtb3N0UmVjZW50Q29tcGlsYXRpb25IYXNoIiwiaGFzQ29tcGlsZUVycm9ycyIsImNsZWFyT3V0ZGF0ZWRFcnJvcnMiLCJjb25zb2xlIiwiY2xlYXIiLCJoYW5kbGVTdWNjZXNzIiwicHJvY2VzcyIsImVudiIsIlRVUkJPUEFDSyIsImhtclVwZGF0ZSIsInR1cmJvcGFja0htciIsIm9uQnVpbHQiLCJyZXBvcnRIbXJMYXRlbmN5IiwidXBkYXRlZE1vZHVsZXMiLCJzdGFydE1zU2luY2VFcG9jaCIsImVuZE1zU2luY2VFcG9jaCIsImhhc1VwZGF0ZXMiLCJkaXNwYXRjaGVyIiwib25CdWlsZE9rIiwiaXNIb3RVcGRhdGUiLCJfX05FWFRfREFUQV9fIiwicGFnZSIsImlzVXBkYXRlQXZhaWxhYmxlIiwidHJ5QXBwbHlVcGRhdGVzV2VicGFjayIsImhhbmRsZVdhcm5pbmdzIiwid2FybmluZ3MiLCJwcmludFdhcm5pbmdzIiwiZm9ybWF0dGVkIiwiZm9ybWF0V2VicGFja01lc3NhZ2VzIiwiZXJyb3JzIiwid2FybiIsImkiLCJsZW5ndGgiLCJzdHJpcEFuc2kiLCJoYW5kbGVFcnJvcnMiLCJvbkJ1aWxkRXJyb3IiLCJlcnJvciIsIl9fTkVYVF9URVNUX01PREUiLCJzZWxmIiwiX19ORVhUX0hNUl9DQiIsIndlYnBhY2tTdGFydE1zU2luY2VFcG9jaCIsIlR1cmJvcGFja0htciIsImlzck1hbmlmZXN0IiwiaGFuZGxlQXZhaWxhYmxlSGFzaCIsImhhc2giLCJfX05FWFRfREVWX0lORElDQVRPUiIsInJvdXRlSW5mbyIsIm5leHQiLCJyb3V0ZXIiLCJjb21wb25lbnRzIiwicGF0aG5hbWUiLCJwYWdlQ29tcG9uZW50IiwiQ29tcG9uZW50IiwiYXBwQ29tcG9uZW50IiwiaXNEeW5hbWljUGFnZSIsIkJvb2xlYW4iLCJnZXRJbml0aWFsUHJvcHMiLCJfX05fU1NQIiwiaGFzQXBwR2V0SW5pdGlhbFByb3BzIiwib3JpZ0dldEluaXRpYWxQcm9wcyIsImlzUGFnZVN0YXRpYyIsImxvY2F0aW9uIiwib25TdGF0aWNJbmRpY2F0b3IiLCJvYmoiLCJhY3Rpb24iLCJITVJfQUNUSU9OU19TRU5UX1RPX0JST1dTRVIiLCJJU1JfTUFOSUZFU1QiLCJkYXRhIiwiQlVJTERJTkciLCJidWlsZGluZ0luZGljYXRvclNob3ciLCJvbkJ1aWxkaW5nIiwibG9nIiwiQlVJTFQiLCJTWU5DIiwiYnVpbGRpbmdJbmRpY2F0b3JIaWRlIiwib25WZXJzaW9uSW5mbyIsInZlcnNpb25JbmZvIiwib25EZXZJbmRpY2F0b3IiLCJkZXZJbmRpY2F0b3IiLCJoYXNFcnJvcnMiLCJKU09OIiwic3RyaW5naWZ5IiwiZXZlbnQiLCJlcnJvckNvdW50IiwiY2xpZW50SWQiLCJoYXNXYXJuaW5ncyIsIndhcm5pbmdDb3VudCIsIlNFUlZFUl9DT01QT05FTlRfQ0hBTkdFUyIsIm9uU2VydmVyQ29tcG9uZW50Q2hhbmdlcyIsInJlbG9hZCIsIlNFUlZFUl9FUlJPUiIsImVycm9ySlNPTiIsIm1lc3NhZ2UiLCJzdGFjayIsInBhcnNlIiwiRXJyb3IiLCJUVVJCT1BBQ0tfQ09OTkVDVEVEIiwibGlzdGVuZXIiLCJ0eXBlIiwiVFVSQk9QQUNLX01FU1NBR0UiLCJvblR1cmJvcGFja01lc3NhZ2UiLCJvbkJlZm9yZVJlZnJlc2giLCJSRUFDVF9SRUZSRVNIX0ZVTExfUkVMT0FEX0ZST01fRVJST1IiLCJvblJlZnJlc2giLCJfX3dlYnBhY2tfaGFzaF9fIiwiY2FuQXBwbHlVcGRhdGVzIiwibW9kdWxlIiwiaG90Iiwic3RhdHVzIiwiYWZ0ZXJBcHBseVVwZGF0ZXMiLCJmbiIsInJlbW92ZVN0YXR1c0hhbmRsZXIiLCJhZGRTdGF0dXNIYW5kbGVyIiwiaGFuZGxlQXBwbHlVcGRhdGVzIiwiUkVBQ1RfUkVGUkVTSF9GVUxMX1JFTE9BRCIsImNoZWNrIiwidGhlbiIsImFwcGx5Iiwic3RhY2tUcmFjZSIsInNwbGl0Iiwic2xpY2UiLCJqb2luIiwiZGVwZW5kZW5jeUNoYWluIiwidW5kZWZpbmVkIl0sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(pages-dir-browser)/./node_modules/next/dist/client/dev/hot-reloader/pages/hot-reloader-pages.js\n")); - -/***/ }), - -/***/ "(pages-dir-browser)/./node_modules/next/dist/client/dev/hot-reloader/pages/websocket.js": -/*!***************************************************************************!*\ - !*** ./node_modules/next/dist/client/dev/hot-reloader/pages/websocket.js ***! - \***************************************************************************/ -/***/ ((module, exports, __webpack_require__) => { - -"use strict"; -eval(__webpack_require__.ts("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n addMessageListener: function() {\n return addMessageListener;\n },\n connectHMR: function() {\n return connectHMR;\n },\n sendMessage: function() {\n return sendMessage;\n }\n});\nconst _forwardlogs = __webpack_require__(/*! ../../../../next-devtools/userspace/app/forward-logs */ \"(pages-dir-browser)/./node_modules/next/dist/next-devtools/userspace/app/forward-logs.js\");\nconst _hotreloadertypes = __webpack_require__(/*! ../../../../server/dev/hot-reloader-types */ \"(pages-dir-browser)/./node_modules/next/dist/server/dev/hot-reloader-types.js\");\nconst _getsocketurl = __webpack_require__(/*! ../get-socket-url */ \"(pages-dir-browser)/./node_modules/next/dist/client/dev/hot-reloader/get-socket-url.js\");\nlet source;\nconst eventCallbacks = [];\nfunction addMessageListener(callback) {\n eventCallbacks.push(callback);\n}\nfunction sendMessage(data) {\n if (!source || source.readyState !== source.OPEN) return;\n return source.send(data);\n}\nlet reconnections = 0;\nlet reloading = false;\nlet serverSessionId = null;\nfunction connectHMR(options) {\n function init() {\n if (source) source.close();\n function handleOnline() {\n if (_forwardlogs.isTerminalLoggingEnabled) {\n _forwardlogs.logQueue.onSocketReady(source);\n }\n reconnections = 0;\n window.console.log('[HMR] connected');\n }\n function handleMessage(event) {\n // While the page is reloading, don't respond to any more messages.\n // On reconnect, the server may send an empty list of changes if it was restarted.\n if (reloading) {\n return;\n }\n // Coerce into HMR_ACTION_TYPES as that is the format.\n const msg = JSON.parse(event.data);\n if ('action' in msg && msg.action === _hotreloadertypes.HMR_ACTIONS_SENT_TO_BROWSER.TURBOPACK_CONNECTED) {\n if (serverSessionId !== null && serverSessionId !== msg.data.sessionId) {\n // Either the server's session id has changed and it's a new server, or\n // it's been too long since we disconnected and we should reload the page.\n // There could be 1) unhandled server errors and/or 2) stale content.\n // Perform a hard reload of the page.\n window.location.reload();\n reloading = true;\n return;\n }\n serverSessionId = msg.data.sessionId;\n }\n for (const eventCallback of eventCallbacks){\n eventCallback(msg);\n }\n }\n let timer;\n function handleDisconnect() {\n source.onerror = null;\n source.onclose = null;\n source.close();\n reconnections++;\n // After 25 reconnects we'll want to reload the page as it indicates the dev server is no longer running.\n if (reconnections > 25) {\n reloading = true;\n window.location.reload();\n return;\n }\n clearTimeout(timer);\n // Try again after 5 seconds\n timer = setTimeout(init, reconnections > 5 ? 5000 : 1000);\n }\n const url = (0, _getsocketurl.getSocketUrl)(options.assetPrefix);\n source = new window.WebSocket(\"\" + url + options.path);\n source.onopen = handleOnline;\n source.onerror = handleDisconnect;\n source.onclose = handleDisconnect;\n source.onmessage = handleMessage;\n }\n init();\n}\nif ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=websocket.js.map\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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvY2xpZW50L2Rldi9ob3QtcmVsb2FkZXIvcGFnZXMvd2Vic29ja2V0LmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7OztJQWdCZ0JBLGtCQUFrQjtlQUFsQkE7O0lBYUFDLFVBQVU7ZUFBVkE7O0lBVEFDLFdBQVc7ZUFBWEE7Ozt5Q0FqQlQ7OENBSUE7MENBQ3NCO0FBRTdCLElBQUlDO0FBSUosTUFBTUMsaUJBQXdDLEVBQUU7QUFFekMsU0FBU0osbUJBQW1CSyxRQUF3QjtJQUN6REQsZUFBZUUsSUFBSSxDQUFDRDtBQUN0QjtBQUVPLFNBQVNILFlBQVlLLElBQVk7SUFDdEMsSUFBSSxDQUFDSixVQUFVQSxPQUFPSyxVQUFVLEtBQUtMLE9BQU9NLElBQUksRUFBRTtJQUNsRCxPQUFPTixPQUFPTyxJQUFJLENBQUNIO0FBQ3JCO0FBRUEsSUFBSUksZ0JBQWdCO0FBQ3BCLElBQUlDLFlBQVk7QUFDaEIsSUFBSUMsa0JBQWlDO0FBRTlCLFNBQVNaLFdBQVdhLE9BQThDO0lBQ3ZFLFNBQVNDO1FBQ1AsSUFBSVosUUFBUUEsT0FBT2EsS0FBSztRQUV4QixTQUFTQztZQUNQLElBQUlDLGFBQUFBLHdCQUF3QixFQUFFO2dCQUM1QkMsYUFBQUEsUUFBUSxDQUFDQyxhQUFhLENBQUNqQjtZQUN6QjtZQUNBUSxnQkFBZ0I7WUFDaEJVLE9BQU9DLE9BQU8sQ0FBQ0MsR0FBRyxDQUFDO1FBQ3JCO1FBRUEsU0FBU0MsY0FBY0MsS0FBMkI7WUFDaEQsbUVBQW1FO1lBQ25FLGtGQUFrRjtZQUNsRixJQUFJYixXQUFXO2dCQUNiO1lBQ0Y7WUFFQSxzREFBc0Q7WUFDdEQsTUFBTWMsTUFBd0JDLEtBQUtDLEtBQUssQ0FBQ0gsTUFBTWxCLElBQUk7WUFFbkQsSUFDRSxZQUFZbUIsT0FDWkEsSUFBSUcsTUFBTSxLQUFLQyxrQkFBQUEsMkJBQTJCLENBQUNDLG1CQUFtQixFQUM5RDtnQkFDQSxJQUNFbEIsb0JBQW9CLFFBQ3BCQSxvQkFBb0JhLElBQUluQixJQUFJLENBQUN5QixTQUFTLEVBQ3RDO29CQUNBLHVFQUF1RTtvQkFDdkUsMEVBQTBFO29CQUMxRSxxRUFBcUU7b0JBQ3JFLHFDQUFxQztvQkFDckNYLE9BQU9ZLFFBQVEsQ0FBQ0MsTUFBTTtvQkFFdEJ0QixZQUFZO29CQUNaO2dCQUNGO2dCQUVBQyxrQkFBa0JhLElBQUluQixJQUFJLENBQUN5QixTQUFTO1lBQ3RDO1lBRUEsS0FBSyxNQUFNRyxpQkFBaUIvQixlQUFnQjtnQkFDMUMrQixjQUFjVDtZQUNoQjtRQUNGO1FBRUEsSUFBSVU7UUFDSixTQUFTQztZQUNQbEMsT0FBT21DLE9BQU8sR0FBRztZQUNqQm5DLE9BQU9vQyxPQUFPLEdBQUc7WUFDakJwQyxPQUFPYSxLQUFLO1lBQ1pMO1lBQ0EseUdBQXlHO1lBQ3pHLElBQUlBLGdCQUFnQixJQUFJO2dCQUN0QkMsWUFBWTtnQkFDWlMsT0FBT1ksUUFBUSxDQUFDQyxNQUFNO2dCQUN0QjtZQUNGO1lBRUFNLGFBQWFKO1lBQ2IsNEJBQTRCO1lBQzVCQSxRQUFRSyxXQUFXMUIsTUFBTUosZ0JBQWdCLElBQUksT0FBTztRQUN0RDtRQUVBLE1BQU0rQixNQUFNQyxDQUFBQSxHQUFBQSxjQUFBQSxZQUFBQSxFQUFhN0IsUUFBUThCLFdBQVc7UUFFNUN6QyxTQUFTLElBQUlrQixPQUFPd0IsU0FBUyxDQUFFLEtBQUVILE1BQU01QixRQUFRZ0MsSUFBSTtRQUNuRDNDLE9BQU80QyxNQUFNLEdBQUc5QjtRQUNoQmQsT0FBT21DLE9BQU8sR0FBR0Q7UUFDakJsQyxPQUFPb0MsT0FBTyxHQUFHRjtRQUNqQmxDLE9BQU82QyxTQUFTLEdBQUd4QjtJQUNyQjtJQUVBVDtBQUNGIiwic291cmNlcyI6WyJEOlxcc3JjXFxjbGllbnRcXGRldlxcaG90LXJlbG9hZGVyXFxwYWdlc1xcd2Vic29ja2V0LnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIGlzVGVybWluYWxMb2dnaW5nRW5hYmxlZCxcbiAgbG9nUXVldWUsXG59IGZyb20gJy4uLy4uLy4uLy4uL25leHQtZGV2dG9vbHMvdXNlcnNwYWNlL2FwcC9mb3J3YXJkLWxvZ3MnXG5pbXBvcnQge1xuICBITVJfQUNUSU9OU19TRU5UX1RPX0JST1dTRVIsXG4gIHR5cGUgSE1SX0FDVElPTl9UWVBFUyxcbn0gZnJvbSAnLi4vLi4vLi4vLi4vc2VydmVyL2Rldi9ob3QtcmVsb2FkZXItdHlwZXMnXG5pbXBvcnQgeyBnZXRTb2NrZXRVcmwgfSBmcm9tICcuLi9nZXQtc29ja2V0LXVybCdcblxubGV0IHNvdXJjZTogV2ViU29ja2V0XG5cbnR5cGUgQWN0aW9uQ2FsbGJhY2sgPSAoYWN0aW9uOiBITVJfQUNUSU9OX1RZUEVTKSA9PiB2b2lkXG5cbmNvbnN0IGV2ZW50Q2FsbGJhY2tzOiBBcnJheTxBY3Rpb25DYWxsYmFjaz4gPSBbXVxuXG5leHBvcnQgZnVuY3Rpb24gYWRkTWVzc2FnZUxpc3RlbmVyKGNhbGxiYWNrOiBBY3Rpb25DYWxsYmFjaykge1xuICBldmVudENhbGxiYWNrcy5wdXNoKGNhbGxiYWNrKVxufVxuXG5leHBvcnQgZnVuY3Rpb24gc2VuZE1lc3NhZ2UoZGF0YTogc3RyaW5nKSB7XG4gIGlmICghc291cmNlIHx8IHNvdXJjZS5yZWFkeVN0YXRlICE9PSBzb3VyY2UuT1BFTikgcmV0dXJuXG4gIHJldHVybiBzb3VyY2Uuc2VuZChkYXRhKVxufVxuXG5sZXQgcmVjb25uZWN0aW9ucyA9IDBcbmxldCByZWxvYWRpbmcgPSBmYWxzZVxubGV0IHNlcnZlclNlc3Npb25JZDogbnVtYmVyIHwgbnVsbCA9IG51bGxcblxuZXhwb3J0IGZ1bmN0aW9uIGNvbm5lY3RITVIob3B0aW9uczogeyBwYXRoOiBzdHJpbmc7IGFzc2V0UHJlZml4OiBzdHJpbmcgfSkge1xuICBmdW5jdGlvbiBpbml0KCkge1xuICAgIGlmIChzb3VyY2UpIHNvdXJjZS5jbG9zZSgpXG5cbiAgICBmdW5jdGlvbiBoYW5kbGVPbmxpbmUoKSB7XG4gICAgICBpZiAoaXNUZXJtaW5hbExvZ2dpbmdFbmFibGVkKSB7XG4gICAgICAgIGxvZ1F1ZXVlLm9uU29ja2V0UmVhZHkoc291cmNlKVxuICAgICAgfVxuICAgICAgcmVjb25uZWN0aW9ucyA9IDBcbiAgICAgIHdpbmRvdy5jb25zb2xlLmxvZygnW0hNUl0gY29ubmVjdGVkJylcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBoYW5kbGVNZXNzYWdlKGV2ZW50OiBNZXNzYWdlRXZlbnQ8c3RyaW5nPikge1xuICAgICAgLy8gV2hpbGUgdGhlIHBhZ2UgaXMgcmVsb2FkaW5nLCBkb24ndCByZXNwb25kIHRvIGFueSBtb3JlIG1lc3NhZ2VzLlxuICAgICAgLy8gT24gcmVjb25uZWN0LCB0aGUgc2VydmVyIG1heSBzZW5kIGFuIGVtcHR5IGxpc3Qgb2YgY2hhbmdlcyBpZiBpdCB3YXMgcmVzdGFydGVkLlxuICAgICAgaWYgKHJlbG9hZGluZykge1xuICAgICAgICByZXR1cm5cbiAgICAgIH1cblxuICAgICAgLy8gQ29lcmNlIGludG8gSE1SX0FDVElPTl9UWVBFUyBhcyB0aGF0IGlzIHRoZSBmb3JtYXQuXG4gICAgICBjb25zdCBtc2c6IEhNUl9BQ1RJT05fVFlQRVMgPSBKU09OLnBhcnNlKGV2ZW50LmRhdGEpXG5cbiAgICAgIGlmIChcbiAgICAgICAgJ2FjdGlvbicgaW4gbXNnICYmXG4gICAgICAgIG1zZy5hY3Rpb24gPT09IEhNUl9BQ1RJT05TX1NFTlRfVE9fQlJPV1NFUi5UVVJCT1BBQ0tfQ09OTkVDVEVEXG4gICAgICApIHtcbiAgICAgICAgaWYgKFxuICAgICAgICAgIHNlcnZlclNlc3Npb25JZCAhPT0gbnVsbCAmJlxuICAgICAgICAgIHNlcnZlclNlc3Npb25JZCAhPT0gbXNnLmRhdGEuc2Vzc2lvbklkXG4gICAgICAgICkge1xuICAgICAgICAgIC8vIEVpdGhlciB0aGUgc2VydmVyJ3Mgc2Vzc2lvbiBpZCBoYXMgY2hhbmdlZCBhbmQgaXQncyBhIG5ldyBzZXJ2ZXIsIG9yXG4gICAgICAgICAgLy8gaXQncyBiZWVuIHRvbyBsb25nIHNpbmNlIHdlIGRpc2Nvbm5lY3RlZCBhbmQgd2Ugc2hvdWxkIHJlbG9hZCB0aGUgcGFnZS5cbiAgICAgICAgICAvLyBUaGVyZSBjb3VsZCBiZSAxKSB1bmhhbmRsZWQgc2VydmVyIGVycm9ycyBhbmQvb3IgMikgc3RhbGUgY29udGVudC5cbiAgICAgICAgICAvLyBQZXJmb3JtIGEgaGFyZCByZWxvYWQgb2YgdGhlIHBhZ2UuXG4gICAgICAgICAgd2luZG93LmxvY2F0aW9uLnJlbG9hZCgpXG5cbiAgICAgICAgICByZWxvYWRpbmcgPSB0cnVlXG4gICAgICAgICAgcmV0dXJuXG4gICAgICAgIH1cblxuICAgICAgICBzZXJ2ZXJTZXNzaW9uSWQgPSBtc2cuZGF0YS5zZXNzaW9uSWRcbiAgICAgIH1cblxuICAgICAgZm9yIChjb25zdCBldmVudENhbGxiYWNrIG9mIGV2ZW50Q2FsbGJhY2tzKSB7XG4gICAgICAgIGV2ZW50Q2FsbGJhY2sobXNnKVxuICAgICAgfVxuICAgIH1cblxuICAgIGxldCB0aW1lcjogUmV0dXJuVHlwZTx0eXBlb2Ygc2V0VGltZW91dD5cbiAgICBmdW5jdGlvbiBoYW5kbGVEaXNjb25uZWN0KCkge1xuICAgICAgc291cmNlLm9uZXJyb3IgPSBudWxsXG4gICAgICBzb3VyY2Uub25jbG9zZSA9IG51bGxcbiAgICAgIHNvdXJjZS5jbG9zZSgpXG4gICAgICByZWNvbm5lY3Rpb25zKytcbiAgICAgIC8vIEFmdGVyIDI1IHJlY29ubmVjdHMgd2UnbGwgd2FudCB0byByZWxvYWQgdGhlIHBhZ2UgYXMgaXQgaW5kaWNhdGVzIHRoZSBkZXYgc2VydmVyIGlzIG5vIGxvbmdlciBydW5uaW5nLlxuICAgICAgaWYgKHJlY29ubmVjdGlvbnMgPiAyNSkge1xuICAgICAgICByZWxvYWRpbmcgPSB0cnVlXG4gICAgICAgIHdpbmRvdy5sb2NhdGlvbi5yZWxvYWQoKVxuICAgICAgICByZXR1cm5cbiAgICAgIH1cblxuICAgICAgY2xlYXJUaW1lb3V0KHRpbWVyKVxuICAgICAgLy8gVHJ5IGFnYWluIGFmdGVyIDUgc2Vjb25kc1xuICAgICAgdGltZXIgPSBzZXRUaW1lb3V0KGluaXQsIHJlY29ubmVjdGlvbnMgPiA1ID8gNTAwMCA6IDEwMDApXG4gICAgfVxuXG4gICAgY29uc3QgdXJsID0gZ2V0U29ja2V0VXJsKG9wdGlvbnMuYXNzZXRQcmVmaXgpXG5cbiAgICBzb3VyY2UgPSBuZXcgd2luZG93LldlYlNvY2tldChgJHt1cmx9JHtvcHRpb25zLnBhdGh9YClcbiAgICBzb3VyY2Uub25vcGVuID0gaGFuZGxlT25saW5lXG4gICAgc291cmNlLm9uZXJyb3IgPSBoYW5kbGVEaXNjb25uZWN0XG4gICAgc291cmNlLm9uY2xvc2UgPSBoYW5kbGVEaXNjb25uZWN0XG4gICAgc291cmNlLm9ubWVzc2FnZSA9IGhhbmRsZU1lc3NhZ2VcbiAgfVxuXG4gIGluaXQoKVxufVxuIl0sIm5hbWVzIjpbImFkZE1lc3NhZ2VMaXN0ZW5lciIsImNvbm5lY3RITVIiLCJzZW5kTWVzc2FnZSIsInNvdXJjZSIsImV2ZW50Q2FsbGJhY2tzIiwiY2FsbGJhY2siLCJwdXNoIiwiZGF0YSIsInJlYWR5U3RhdGUiLCJPUEVOIiwic2VuZCIsInJlY29ubmVjdGlvbnMiLCJyZWxvYWRpbmciLCJzZXJ2ZXJTZXNzaW9uSWQiLCJvcHRpb25zIiwiaW5pdCIsImNsb3NlIiwiaGFuZGxlT25saW5lIiwiaXNUZXJtaW5hbExvZ2dpbmdFbmFibGVkIiwibG9nUXVldWUiLCJvblNvY2tldFJlYWR5Iiwid2luZG93IiwiY29uc29sZSIsImxvZyIsImhhbmRsZU1lc3NhZ2UiLCJldmVudCIsIm1zZyIsIkpTT04iLCJwYXJzZSIsImFjdGlvbiIsIkhNUl9BQ1RJT05TX1NFTlRfVE9fQlJPV1NFUiIsIlRVUkJPUEFDS19DT05ORUNURUQiLCJzZXNzaW9uSWQiLCJsb2NhdGlvbiIsInJlbG9hZCIsImV2ZW50Q2FsbGJhY2siLCJ0aW1lciIsImhhbmRsZURpc2Nvbm5lY3QiLCJvbmVycm9yIiwib25jbG9zZSIsImNsZWFyVGltZW91dCIsInNldFRpbWVvdXQiLCJ1cmwiLCJnZXRTb2NrZXRVcmwiLCJhc3NldFByZWZpeCIsIldlYlNvY2tldCIsInBhdGgiLCJvbm9wZW4iLCJvbm1lc3NhZ2UiXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(pages-dir-browser)/./node_modules/next/dist/client/dev/hot-reloader/pages/websocket.js\n")); - -/***/ }), - -/***/ "(pages-dir-browser)/./node_modules/next/dist/client/dev/hot-reloader/shared.js": -/*!******************************************************************!*\ - !*** ./node_modules/next/dist/client/dev/hot-reloader/shared.js ***! - \******************************************************************/ -/***/ ((module, exports, __webpack_require__) => { - -"use strict"; -eval(__webpack_require__.ts("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n REACT_REFRESH_FULL_RELOAD: function() {\n return REACT_REFRESH_FULL_RELOAD;\n },\n REACT_REFRESH_FULL_RELOAD_FROM_ERROR: function() {\n return REACT_REFRESH_FULL_RELOAD_FROM_ERROR;\n },\n reportInvalidHmrMessage: function() {\n return reportInvalidHmrMessage;\n }\n});\nconst REACT_REFRESH_FULL_RELOAD = '[Fast Refresh] performing full reload\\n\\n' + \"Fast Refresh will perform a full reload when you edit a file that's imported by modules outside of the React rendering tree.\\n\" + 'You might have a file which exports a React component but also exports a value that is imported by a non-React component file.\\n' + 'Consider migrating the non-React component export to a separate file and importing it into both files.\\n\\n' + 'It is also possible the parent component of the component you edited is a class component, which disables Fast Refresh.\\n' + 'Fast Refresh requires at least one parent function component in your React tree.';\nconst REACT_REFRESH_FULL_RELOAD_FROM_ERROR = '[Fast Refresh] performing full reload because your application had an unrecoverable error';\nfunction reportInvalidHmrMessage(message, err) {\n console.warn('[HMR] Invalid message: ' + JSON.stringify(message) + '\\n' + (err instanceof Error && (err == null ? void 0 : err.stack) || ''));\n}\nif ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=shared.js.map\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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvY2xpZW50L2Rldi9ob3QtcmVsb2FkZXIvc2hhcmVkLmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7OztJQUVhQSx5QkFBeUI7ZUFBekJBOztJQVFBQyxvQ0FBb0M7ZUFBcENBOztJQUdHQyx1QkFBdUI7ZUFBdkJBOzs7QUFYVCxNQUFNRiw0QkFDWCw4Q0FDQSxtSUFDQSxxSUFDQSwrR0FDQSw4SEFDQTtBQUVLLE1BQU1DLHVDQUNYO0FBRUssU0FBU0Msd0JBQ2RDLE9BQWlELEVBQ2pEQyxHQUFZO0lBRVpDLFFBQVFDLElBQUksQ0FDViw0QkFDRUMsS0FBS0MsU0FBUyxDQUFDTCxXQUNmLE9BQ0MsQ0FBQ0MsZUFBZUssVUFBU0wsT0FBQUEsT0FBQUEsS0FBQUEsSUFBQUEsSUFBS00sS0FBQUEsS0FBVSxHQUFDO0FBRWhEIiwic291cmNlcyI6WyJEOlxcc3JjXFxjbGllbnRcXGRldlxcaG90LXJlbG9hZGVyXFxzaGFyZWQudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBITVJfQUNUSU9OX1RZUEVTIH0gZnJvbSAnLi4vLi4vLi4vc2VydmVyL2Rldi9ob3QtcmVsb2FkZXItdHlwZXMnXG5cbmV4cG9ydCBjb25zdCBSRUFDVF9SRUZSRVNIX0ZVTExfUkVMT0FEID1cbiAgJ1tGYXN0IFJlZnJlc2hdIHBlcmZvcm1pbmcgZnVsbCByZWxvYWRcXG5cXG4nICtcbiAgXCJGYXN0IFJlZnJlc2ggd2lsbCBwZXJmb3JtIGEgZnVsbCByZWxvYWQgd2hlbiB5b3UgZWRpdCBhIGZpbGUgdGhhdCdzIGltcG9ydGVkIGJ5IG1vZHVsZXMgb3V0c2lkZSBvZiB0aGUgUmVhY3QgcmVuZGVyaW5nIHRyZWUuXFxuXCIgK1xuICAnWW91IG1pZ2h0IGhhdmUgYSBmaWxlIHdoaWNoIGV4cG9ydHMgYSBSZWFjdCBjb21wb25lbnQgYnV0IGFsc28gZXhwb3J0cyBhIHZhbHVlIHRoYXQgaXMgaW1wb3J0ZWQgYnkgYSBub24tUmVhY3QgY29tcG9uZW50IGZpbGUuXFxuJyArXG4gICdDb25zaWRlciBtaWdyYXRpbmcgdGhlIG5vbi1SZWFjdCBjb21wb25lbnQgZXhwb3J0IHRvIGEgc2VwYXJhdGUgZmlsZSBhbmQgaW1wb3J0aW5nIGl0IGludG8gYm90aCBmaWxlcy5cXG5cXG4nICtcbiAgJ0l0IGlzIGFsc28gcG9zc2libGUgdGhlIHBhcmVudCBjb21wb25lbnQgb2YgdGhlIGNvbXBvbmVudCB5b3UgZWRpdGVkIGlzIGEgY2xhc3MgY29tcG9uZW50LCB3aGljaCBkaXNhYmxlcyBGYXN0IFJlZnJlc2guXFxuJyArXG4gICdGYXN0IFJlZnJlc2ggcmVxdWlyZXMgYXQgbGVhc3Qgb25lIHBhcmVudCBmdW5jdGlvbiBjb21wb25lbnQgaW4geW91ciBSZWFjdCB0cmVlLidcblxuZXhwb3J0IGNvbnN0IFJFQUNUX1JFRlJFU0hfRlVMTF9SRUxPQURfRlJPTV9FUlJPUiA9XG4gICdbRmFzdCBSZWZyZXNoXSBwZXJmb3JtaW5nIGZ1bGwgcmVsb2FkIGJlY2F1c2UgeW91ciBhcHBsaWNhdGlvbiBoYWQgYW4gdW5yZWNvdmVyYWJsZSBlcnJvcidcblxuZXhwb3J0IGZ1bmN0aW9uIHJlcG9ydEludmFsaWRIbXJNZXNzYWdlKFxuICBtZXNzYWdlOiBITVJfQUNUSU9OX1RZUEVTIHwgTWVzc2FnZUV2ZW50PHVua25vd24+LFxuICBlcnI6IHVua25vd25cbikge1xuICBjb25zb2xlLndhcm4oXG4gICAgJ1tITVJdIEludmFsaWQgbWVzc2FnZTogJyArXG4gICAgICBKU09OLnN0cmluZ2lmeShtZXNzYWdlKSArXG4gICAgICAnXFxuJyArXG4gICAgICAoKGVyciBpbnN0YW5jZW9mIEVycm9yICYmIGVycj8uc3RhY2spIHx8ICcnKVxuICApXG59XG4iXSwibmFtZXMiOlsiUkVBQ1RfUkVGUkVTSF9GVUxMX1JFTE9BRCIsIlJFQUNUX1JFRlJFU0hfRlVMTF9SRUxPQURfRlJPTV9FUlJPUiIsInJlcG9ydEludmFsaWRIbXJNZXNzYWdlIiwibWVzc2FnZSIsImVyciIsImNvbnNvbGUiLCJ3YXJuIiwiSlNPTiIsInN0cmluZ2lmeSIsIkVycm9yIiwic3RhY2siXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(pages-dir-browser)/./node_modules/next/dist/client/dev/hot-reloader/shared.js\n")); - -/***/ }), - -/***/ "(pages-dir-browser)/./node_modules/next/dist/client/dev/hot-reloader/turbopack-hot-reloader-common.js": -/*!*****************************************************************************************!*\ - !*** ./node_modules/next/dist/client/dev/hot-reloader/turbopack-hot-reloader-common.js ***! - \*****************************************************************************************/ -/***/ ((module, exports, __webpack_require__) => { - -"use strict"; -eval(__webpack_require__.ts("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"TurbopackHmr\", ({\n enumerable: true,\n get: function() {\n return TurbopackHmr;\n }\n}));\nconst _class_private_field_loose_base = __webpack_require__(/*! @swc/helpers/_/_class_private_field_loose_base */ \"(pages-dir-browser)/./node_modules/@swc/helpers/esm/_class_private_field_loose_base.js\");\nconst _class_private_field_loose_key = __webpack_require__(/*! @swc/helpers/_/_class_private_field_loose_key */ \"(pages-dir-browser)/./node_modules/@swc/helpers/esm/_class_private_field_loose_key.js\");\n// How long to wait before reporting the HMR start, used to suppress irrelevant\n// `BUILDING` events. Does not impact reported latency.\nconst TURBOPACK_HMR_START_DELAY_MS = 100;\nvar _updatedModules = /*#__PURE__*/ _class_private_field_loose_key._(\"_updatedModules\"), _startMsSinceEpoch = /*#__PURE__*/ _class_private_field_loose_key._(\"_startMsSinceEpoch\"), _lastUpdateMsSinceEpoch = /*#__PURE__*/ _class_private_field_loose_key._(\"_lastUpdateMsSinceEpoch\"), _deferredReportHmrStartId = /*#__PURE__*/ _class_private_field_loose_key._(\"_deferredReportHmrStartId\"), // as it reports *any* compilation, including fully no-op/cached compilations\n// and those unrelated to HMR. Fixing this would require significant\n// architectural changes.\n//\n// Work around this by deferring any \"rebuilding\" message by 100ms. If we get\n// a BUILT event within that threshold and nothing has changed, just suppress\n// the message entirely.\n_runDeferredReportHmrStart = /*#__PURE__*/ _class_private_field_loose_key._(\"_runDeferredReportHmrStart\"), _cancelDeferredReportHmrStart = /*#__PURE__*/ _class_private_field_loose_key._(\"_cancelDeferredReportHmrStart\"), /** Helper for other `onEvent` methods. */ _onUpdate = /*#__PURE__*/ _class_private_field_loose_key._(\"_onUpdate\");\nclass TurbopackHmr {\n onBuilding() {\n _class_private_field_loose_base._(this, _lastUpdateMsSinceEpoch)[_lastUpdateMsSinceEpoch] = undefined;\n _class_private_field_loose_base._(this, _cancelDeferredReportHmrStart)[_cancelDeferredReportHmrStart]();\n _class_private_field_loose_base._(this, _startMsSinceEpoch)[_startMsSinceEpoch] = Date.now();\n // report the HMR start after a short delay\n _class_private_field_loose_base._(this, _deferredReportHmrStartId)[_deferredReportHmrStartId] = setTimeout(()=>_class_private_field_loose_base._(this, _runDeferredReportHmrStart)[_runDeferredReportHmrStart](), self.__NEXT_HMR_TURBOPACK_REPORT_NOISY_NOOP_EVENTS ? 0 : TURBOPACK_HMR_START_DELAY_MS);\n }\n onTurbopackMessage(msg) {\n _class_private_field_loose_base._(this, _onUpdate)[_onUpdate]();\n const updatedModules = extractModulesFromTurbopackMessage(msg.data);\n for (const module1 of updatedModules){\n _class_private_field_loose_base._(this, _updatedModules)[_updatedModules].add(module1);\n }\n }\n onServerComponentChanges() {\n _class_private_field_loose_base._(this, _onUpdate)[_onUpdate]();\n }\n onReloadPage() {\n _class_private_field_loose_base._(this, _onUpdate)[_onUpdate]();\n }\n onPageAddRemove() {\n _class_private_field_loose_base._(this, _onUpdate)[_onUpdate]();\n }\n /**\n * @returns `null` if the caller should ignore the update entirely. Returns an\n * object with `hasUpdates: false` if the caller should report the end of\n * the HMR in the browser console, but the HMR was a no-op.\n */ onBuilt() {\n // Check that we got *any* `TurbopackMessageAction`, even if\n // `updatedModules` is empty (not everything gets recorded there).\n //\n // There's also a case where `onBuilt` gets called before `onBuilding`,\n // which can happen during initial page load. Ignore that too!\n const hasUpdates = _class_private_field_loose_base._(this, _lastUpdateMsSinceEpoch)[_lastUpdateMsSinceEpoch] != null && _class_private_field_loose_base._(this, _startMsSinceEpoch)[_startMsSinceEpoch] != null;\n if (!hasUpdates && _class_private_field_loose_base._(this, _deferredReportHmrStartId)[_deferredReportHmrStartId] != null) {\n // suppress the update entirely\n _class_private_field_loose_base._(this, _cancelDeferredReportHmrStart)[_cancelDeferredReportHmrStart]();\n return null;\n }\n _class_private_field_loose_base._(this, _runDeferredReportHmrStart)[_runDeferredReportHmrStart]();\n var _class_private_field_loose_base__lastUpdateMsSinceEpoch;\n const result = {\n hasUpdates,\n updatedModules: _class_private_field_loose_base._(this, _updatedModules)[_updatedModules],\n startMsSinceEpoch: _class_private_field_loose_base._(this, _startMsSinceEpoch)[_startMsSinceEpoch],\n endMsSinceEpoch: (_class_private_field_loose_base__lastUpdateMsSinceEpoch = _class_private_field_loose_base._(this, _lastUpdateMsSinceEpoch)[_lastUpdateMsSinceEpoch]) != null ? _class_private_field_loose_base__lastUpdateMsSinceEpoch : Date.now()\n };\n _class_private_field_loose_base._(this, _updatedModules)[_updatedModules] = new Set();\n return result;\n }\n constructor(){\n Object.defineProperty(this, _runDeferredReportHmrStart, {\n value: runDeferredReportHmrStart\n });\n Object.defineProperty(this, _cancelDeferredReportHmrStart, {\n value: cancelDeferredReportHmrStart\n });\n Object.defineProperty(this, _onUpdate, {\n value: onUpdate\n });\n Object.defineProperty(this, _updatedModules, {\n writable: true,\n value: void 0\n });\n Object.defineProperty(this, _startMsSinceEpoch, {\n writable: true,\n value: void 0\n });\n Object.defineProperty(this, _lastUpdateMsSinceEpoch, {\n writable: true,\n value: void 0\n });\n Object.defineProperty(this, _deferredReportHmrStartId, {\n writable: true,\n value: void 0\n });\n _class_private_field_loose_base._(this, _updatedModules)[_updatedModules] = new Set();\n }\n}\nfunction runDeferredReportHmrStart() {\n if (_class_private_field_loose_base._(this, _deferredReportHmrStartId)[_deferredReportHmrStartId] != null) {\n console.log('[Fast Refresh] rebuilding');\n _class_private_field_loose_base._(this, _cancelDeferredReportHmrStart)[_cancelDeferredReportHmrStart]();\n }\n}\nfunction cancelDeferredReportHmrStart() {\n clearTimeout(_class_private_field_loose_base._(this, _deferredReportHmrStartId)[_deferredReportHmrStartId]);\n _class_private_field_loose_base._(this, _deferredReportHmrStartId)[_deferredReportHmrStartId] = undefined;\n}\nfunction onUpdate() {\n _class_private_field_loose_base._(this, _runDeferredReportHmrStart)[_runDeferredReportHmrStart]();\n _class_private_field_loose_base._(this, _lastUpdateMsSinceEpoch)[_lastUpdateMsSinceEpoch] = Date.now();\n}\nfunction extractModulesFromTurbopackMessage(data) {\n const updatedModules = new Set();\n const updates = Array.isArray(data) ? data : [\n data\n ];\n for (const update of updates){\n // TODO this won't capture changes to CSS since they don't result in a \"merged\" update\n if (update.type !== 'partial' || update.instruction.type !== 'ChunkListUpdate' || update.instruction.merged === undefined) {\n continue;\n }\n for (const mergedUpdate of update.instruction.merged){\n for (const name of Object.keys(mergedUpdate.entries)){\n const res = /(.*)\\s+\\[.*/.exec(name);\n if (res === null) {\n console.error('[Turbopack HMR] Expected module to match pattern: ' + name);\n continue;\n }\n updatedModules.add(res[1]);\n }\n }\n }\n return updatedModules;\n}\nif ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=turbopack-hot-reloader-common.js.map\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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvY2xpZW50L2Rldi9ob3QtcmVsb2FkZXIvdHVyYm9wYWNrLWhvdC1yZWxvYWRlci1jb21tb24uanMiLCJtYXBwaW5ncyI6Ijs7OztnREFvQmFBOzs7ZUFBQUE7Ozs7O0FBWGIsK0VBQStFO0FBQy9FLHVEQUF1RDtBQUN2RCxNQUFNQywrQkFBK0I7SUFVbkMscUZBQ0EsMkZBQ0EscUdBQ0EseUdBTUEsNEVBQTRFLENBQ0M7QUFDN0Usb0VBQW9FO0FBQ3BFLHlCQUF5QjtBQUN6QixFQUFFO0FBQ0YsNkVBQTZFO0FBQzdFLDZFQUE2RTtBQUM3RSx3QkFBd0I7QUFDeEIsMkdBT0EsaUhBb0JBLHdDQUF3QyxHQUN4QztBQTlDSyxNQUFNRDtJQThCWEUsYUFBYTtRQUNYLHNDQUFJLEVBQUMsb0RBQTBCQztRQUMvQixzQ0FBSSxFQUFDO1FBQ0wsc0NBQUksRUFBQywwQ0FBcUJDLEtBQUtDLEdBQUc7UUFFbEMsMkNBQTJDO1FBQzNDLHNDQUFJLEVBQUMsd0RBQTRCQyxXQUMvQixJQUFNLHNDQUFJLEVBQUMsMkRBQ1gsS0FDS0UsNkNBQTZDLEdBQzlDLElBQ0FQLGlCQUhzRTtJQUs5RTtJQVFBUSxtQkFBbUJDLEdBQTJCLEVBQUU7UUFDOUMsc0NBQUksRUFBQztRQUNMLE1BQU1DLGlCQUFpQkMsbUNBQW1DRixJQUFJRyxJQUFJO1FBQ2xFLEtBQUssTUFBTUMsV0FBVUgsZUFBZ0I7WUFDbkMsc0NBQUksRUFBQyxrQ0FBZ0JJLEdBQUcsQ0FBQ0Q7UUFDM0I7SUFDRjtJQUVBRSwyQkFBMkI7UUFDekIsc0NBQUksRUFBQztJQUNQO0lBRUFDLGVBQWU7UUFDYixzQ0FBSSxFQUFDO0lBQ1A7SUFFQUMsa0JBQWtCO1FBQ2hCLHNDQUFJLEVBQUM7SUFDUDtJQUVBOzs7O0dBSUMsR0FDREMsVUFBNEI7UUFDMUIsNERBQTREO1FBQzVELGtFQUFrRTtRQUNsRSxFQUFFO1FBQ0YsdUVBQXVFO1FBQ3ZFLDhEQUE4RDtRQUM5RCxNQUFNQyxhQUNKLHNDQUFJLEVBQUMscURBQTJCLFFBQVEsc0NBQUksRUFBQywyQ0FBc0I7UUFDckUsSUFBSSxDQUFDQSxjQUFjLHNDQUFJLEVBQUMseURBQTZCLE1BQU07WUFDekQsK0JBQStCO1lBQy9CLHNDQUFJLEVBQUM7WUFDTCxPQUFPO1FBQ1Q7UUFDQSxzQ0FBSSxFQUFDOztRQUVMLE1BQU1DLFNBQVM7WUFDYkQ7WUFDQVQsY0FBYyxFQUFFLHNDQUFJLEVBQUM7WUFDckJXLGlCQUFpQixFQUFFLHNDQUFJLEVBQUM7WUFDeEJDLGlCQUFpQixpR0FBSSxFQUFDLHVIQUEyQm5CLEtBQUtDLEdBQUc7UUFDM0Q7UUFDQSxzQ0FBSSxFQUFDLG9DQUFrQixJQUFJbUI7UUFDM0IsT0FBT0g7SUFDVDtJQTdGQUksYUFBYztRQVlkO21CQUFBOztRQU9BO21CQUFBOztRQXFCQTttQkFBQTs7UUE3Q0E7O21CQUFBOztRQUNBOzttQkFBQTs7UUFDQTs7bUJBQUE7O1FBQ0E7O21CQUFBOztRQUdFLHNDQUFJLEVBQUMsb0NBQWtCLElBQUlEO0lBQzdCO0FBNEZGO0FBbEZFO0lBQ0UsSUFBSSxzQ0FBSSxFQUFDLHlEQUE2QixNQUFNO1FBQzFDRSxRQUFRQyxHQUFHLENBQUM7UUFDWixzQ0FBSSxFQUFDO0lBQ1A7QUFDRjtBQUVBO0lBQ0VDLGFBQWEsc0NBQUksRUFBQztJQUNsQixzQ0FBSSxFQUFDLHdEQUE0QnpCO0FBQ25DO0FBa0JBO0lBQ0Usc0NBQUksRUFBQztJQUNMLHNDQUFJLEVBQUMsb0RBQTBCQyxLQUFLQyxHQUFHO0FBQ3pDO0FBcURGLFNBQVNPLG1DQUNQQyxJQUF5QztJQUV6QyxNQUFNRixpQkFBOEIsSUFBSWE7SUFFeEMsTUFBTUssVUFBVUMsTUFBTUMsT0FBTyxDQUFDbEIsUUFBUUEsT0FBTztRQUFDQTtLQUFLO0lBQ25ELEtBQUssTUFBTW1CLFVBQVVILFFBQVM7UUFDNUIsc0ZBQXNGO1FBQ3RGLElBQ0VHLE9BQU9DLElBQUksS0FBSyxhQUNoQkQsT0FBT0UsV0FBVyxDQUFDRCxJQUFJLEtBQUsscUJBQzVCRCxPQUFPRSxXQUFXLENBQUNDLE1BQU0sS0FBS2hDLFdBQzlCO1lBQ0E7UUFDRjtRQUVBLEtBQUssTUFBTWlDLGdCQUFnQkosT0FBT0UsV0FBVyxDQUFDQyxNQUFNLENBQUU7WUFDcEQsS0FBSyxNQUFNRSxRQUFRQyxPQUFPQyxJQUFJLENBQUNILGFBQWFJLE9BQU8sRUFBRztnQkFDcEQsTUFBTUMsTUFBTSxjQUFjQyxJQUFJLENBQUNMO2dCQUMvQixJQUFJSSxRQUFRLE1BQU07b0JBQ2hCZixRQUFRaUIsS0FBSyxDQUNYLHVEQUF1RE47b0JBRXpEO2dCQUNGO2dCQUVBMUIsZUFBZUksR0FBRyxDQUFDMEIsR0FBRyxDQUFDLEVBQUU7WUFDM0I7UUFDRjtJQUNGO0lBRUEsT0FBTzlCO0FBQ1QiLCJzb3VyY2VzIjpbIkQ6XFxzcmNcXGNsaWVudFxcZGV2XFxob3QtcmVsb2FkZXJcXHR1cmJvcGFjay1ob3QtcmVsb2FkZXItY29tbW9uLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgVHVyYm9wYWNrTWVzc2FnZUFjdGlvbiB9IGZyb20gJy4uLy4uLy4uL3NlcnZlci9kZXYvaG90LXJlbG9hZGVyLXR5cGVzJ1xuaW1wb3J0IHR5cGUgeyBVcGRhdGUgYXMgVHVyYm9wYWNrVXBkYXRlIH0gZnJvbSAnLi4vLi4vLi4vYnVpbGQvc3djL3R5cGVzJ1xuXG5kZWNsYXJlIGdsb2JhbCB7XG4gIGludGVyZmFjZSBXaW5kb3cge1xuICAgIF9fTkVYVF9ITVJfVFVSQk9QQUNLX1JFUE9SVF9OT0lTWV9OT09QX0VWRU5UUzogYm9vbGVhbiB8IHVuZGVmaW5lZFxuICB9XG59XG5cbi8vIEhvdyBsb25nIHRvIHdhaXQgYmVmb3JlIHJlcG9ydGluZyB0aGUgSE1SIHN0YXJ0LCB1c2VkIHRvIHN1cHByZXNzIGlycmVsZXZhbnRcbi8vIGBCVUlMRElOR2AgZXZlbnRzLiBEb2VzIG5vdCBpbXBhY3QgcmVwb3J0ZWQgbGF0ZW5jeS5cbmNvbnN0IFRVUkJPUEFDS19ITVJfU1RBUlRfREVMQVlfTVMgPSAxMDBcblxuaW50ZXJmYWNlIEhtclVwZGF0ZSB7XG4gIGhhc1VwZGF0ZXM6IGJvb2xlYW5cbiAgdXBkYXRlZE1vZHVsZXM6IFNldDxzdHJpbmc+XG4gIHN0YXJ0TXNTaW5jZUVwb2NoOiBudW1iZXJcbiAgZW5kTXNTaW5jZUVwb2NoOiBudW1iZXJcbn1cblxuZXhwb3J0IGNsYXNzIFR1cmJvcGFja0htciB7XG4gICN1cGRhdGVkTW9kdWxlczogU2V0PHN0cmluZz5cbiAgI3N0YXJ0TXNTaW5jZUVwb2NoOiBudW1iZXIgfCB1bmRlZmluZWRcbiAgI2xhc3RVcGRhdGVNc1NpbmNlRXBvY2g6IG51bWJlciB8IHVuZGVmaW5lZFxuICAjZGVmZXJyZWRSZXBvcnRIbXJTdGFydElkOiBSZXR1cm5UeXBlPHR5cGVvZiBzZXRUaW1lb3V0PiB8IHVuZGVmaW5lZFxuXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIHRoaXMuI3VwZGF0ZWRNb2R1bGVzID0gbmV3IFNldCgpXG4gIH1cblxuICAvLyBIQUNLOiBUdXJib3BhY2sgdGVuZHMgdG8gZ2VuZXJhdGUgYSBsb3Qgb2YgaXJyZWxldmFudCBcIkJVSUxESU5HXCIgYWN0aW9ucyxcbiAgLy8gYXMgaXQgcmVwb3J0cyAqYW55KiBjb21waWxhdGlvbiwgaW5jbHVkaW5nIGZ1bGx5IG5vLW9wL2NhY2hlZCBjb21waWxhdGlvbnNcbiAgLy8gYW5kIHRob3NlIHVucmVsYXRlZCB0byBITVIuIEZpeGluZyB0aGlzIHdvdWxkIHJlcXVpcmUgc2lnbmlmaWNhbnRcbiAgLy8gYXJjaGl0ZWN0dXJhbCBjaGFuZ2VzLlxuICAvL1xuICAvLyBXb3JrIGFyb3VuZCB0aGlzIGJ5IGRlZmVycmluZyBhbnkgXCJyZWJ1aWxkaW5nXCIgbWVzc2FnZSBieSAxMDBtcy4gSWYgd2UgZ2V0XG4gIC8vIGEgQlVJTFQgZXZlbnQgd2l0aGluIHRoYXQgdGhyZXNob2xkIGFuZCBub3RoaW5nIGhhcyBjaGFuZ2VkLCBqdXN0IHN1cHByZXNzXG4gIC8vIHRoZSBtZXNzYWdlIGVudGlyZWx5LlxuICAjcnVuRGVmZXJyZWRSZXBvcnRIbXJTdGFydCgpIHtcbiAgICBpZiAodGhpcy4jZGVmZXJyZWRSZXBvcnRIbXJTdGFydElkICE9IG51bGwpIHtcbiAgICAgIGNvbnNvbGUubG9nKCdbRmFzdCBSZWZyZXNoXSByZWJ1aWxkaW5nJylcbiAgICAgIHRoaXMuI2NhbmNlbERlZmVycmVkUmVwb3J0SG1yU3RhcnQoKVxuICAgIH1cbiAgfVxuXG4gICNjYW5jZWxEZWZlcnJlZFJlcG9ydEhtclN0YXJ0KCkge1xuICAgIGNsZWFyVGltZW91dCh0aGlzLiNkZWZlcnJlZFJlcG9ydEhtclN0YXJ0SWQpXG4gICAgdGhpcy4jZGVmZXJyZWRSZXBvcnRIbXJTdGFydElkID0gdW5kZWZpbmVkXG4gIH1cblxuICBvbkJ1aWxkaW5nKCkge1xuICAgIHRoaXMuI2xhc3RVcGRhdGVNc1NpbmNlRXBvY2ggPSB1bmRlZmluZWRcbiAgICB0aGlzLiNjYW5jZWxEZWZlcnJlZFJlcG9ydEhtclN0YXJ0KClcbiAgICB0aGlzLiNzdGFydE1zU2luY2VFcG9jaCA9IERhdGUubm93KClcblxuICAgIC8vIHJlcG9ydCB0aGUgSE1SIHN0YXJ0IGFmdGVyIGEgc2hvcnQgZGVsYXlcbiAgICB0aGlzLiNkZWZlcnJlZFJlcG9ydEhtclN0YXJ0SWQgPSBzZXRUaW1lb3V0KFxuICAgICAgKCkgPT4gdGhpcy4jcnVuRGVmZXJyZWRSZXBvcnRIbXJTdGFydCgpLFxuICAgICAgLy8gZGVidWdnaW5nIGZlYXR1cmU6IGRvbid0IGRlZmVyL3N1cHByZXNzIG5vaXN5IG5vLW9wIEhNUiB1cGRhdGUgbWVzc2FnZXNcbiAgICAgIHNlbGYuX19ORVhUX0hNUl9UVVJCT1BBQ0tfUkVQT1JUX05PSVNZX05PT1BfRVZFTlRTXG4gICAgICAgID8gMFxuICAgICAgICA6IFRVUkJPUEFDS19ITVJfU1RBUlRfREVMQVlfTVNcbiAgICApXG4gIH1cblxuICAvKiogSGVscGVyIGZvciBvdGhlciBgb25FdmVudGAgbWV0aG9kcy4gKi9cbiAgI29uVXBkYXRlKCkge1xuICAgIHRoaXMuI3J1bkRlZmVycmVkUmVwb3J0SG1yU3RhcnQoKVxuICAgIHRoaXMuI2xhc3RVcGRhdGVNc1NpbmNlRXBvY2ggPSBEYXRlLm5vdygpXG4gIH1cblxuICBvblR1cmJvcGFja01lc3NhZ2UobXNnOiBUdXJib3BhY2tNZXNzYWdlQWN0aW9uKSB7XG4gICAgdGhpcy4jb25VcGRhdGUoKVxuICAgIGNvbnN0IHVwZGF0ZWRNb2R1bGVzID0gZXh0cmFjdE1vZHVsZXNGcm9tVHVyYm9wYWNrTWVzc2FnZShtc2cuZGF0YSlcbiAgICBmb3IgKGNvbnN0IG1vZHVsZSBvZiB1cGRhdGVkTW9kdWxlcykge1xuICAgICAgdGhpcy4jdXBkYXRlZE1vZHVsZXMuYWRkKG1vZHVsZSlcbiAgICB9XG4gIH1cblxuICBvblNlcnZlckNvbXBvbmVudENoYW5nZXMoKSB7XG4gICAgdGhpcy4jb25VcGRhdGUoKVxuICB9XG5cbiAgb25SZWxvYWRQYWdlKCkge1xuICAgIHRoaXMuI29uVXBkYXRlKClcbiAgfVxuXG4gIG9uUGFnZUFkZFJlbW92ZSgpIHtcbiAgICB0aGlzLiNvblVwZGF0ZSgpXG4gIH1cblxuICAvKipcbiAgICogQHJldHVybnMgYG51bGxgIGlmIHRoZSBjYWxsZXIgc2hvdWxkIGlnbm9yZSB0aGUgdXBkYXRlIGVudGlyZWx5LiBSZXR1cm5zIGFuXG4gICAqICAgb2JqZWN0IHdpdGggYGhhc1VwZGF0ZXM6IGZhbHNlYCBpZiB0aGUgY2FsbGVyIHNob3VsZCByZXBvcnQgdGhlIGVuZCBvZlxuICAgKiAgIHRoZSBITVIgaW4gdGhlIGJyb3dzZXIgY29uc29sZSwgYnV0IHRoZSBITVIgd2FzIGEgbm8tb3AuXG4gICAqL1xuICBvbkJ1aWx0KCk6IEhtclVwZGF0ZSB8IG51bGwge1xuICAgIC8vIENoZWNrIHRoYXQgd2UgZ290ICphbnkqIGBUdXJib3BhY2tNZXNzYWdlQWN0aW9uYCwgZXZlbiBpZlxuICAgIC8vIGB1cGRhdGVkTW9kdWxlc2AgaXMgZW1wdHkgKG5vdCBldmVyeXRoaW5nIGdldHMgcmVjb3JkZWQgdGhlcmUpLlxuICAgIC8vXG4gICAgLy8gVGhlcmUncyBhbHNvIGEgY2FzZSB3aGVyZSBgb25CdWlsdGAgZ2V0cyBjYWxsZWQgYmVmb3JlIGBvbkJ1aWxkaW5nYCxcbiAgICAvLyB3aGljaCBjYW4gaGFwcGVuIGR1cmluZyBpbml0aWFsIHBhZ2UgbG9hZC4gSWdub3JlIHRoYXQgdG9vIVxuICAgIGNvbnN0IGhhc1VwZGF0ZXMgPVxuICAgICAgdGhpcy4jbGFzdFVwZGF0ZU1zU2luY2VFcG9jaCAhPSBudWxsICYmIHRoaXMuI3N0YXJ0TXNTaW5jZUVwb2NoICE9IG51bGxcbiAgICBpZiAoIWhhc1VwZGF0ZXMgJiYgdGhpcy4jZGVmZXJyZWRSZXBvcnRIbXJTdGFydElkICE9IG51bGwpIHtcbiAgICAgIC8vIHN1cHByZXNzIHRoZSB1cGRhdGUgZW50aXJlbHlcbiAgICAgIHRoaXMuI2NhbmNlbERlZmVycmVkUmVwb3J0SG1yU3RhcnQoKVxuICAgICAgcmV0dXJuIG51bGxcbiAgICB9XG4gICAgdGhpcy4jcnVuRGVmZXJyZWRSZXBvcnRIbXJTdGFydCgpXG5cbiAgICBjb25zdCByZXN1bHQgPSB7XG4gICAgICBoYXNVcGRhdGVzLFxuICAgICAgdXBkYXRlZE1vZHVsZXM6IHRoaXMuI3VwZGF0ZWRNb2R1bGVzLFxuICAgICAgc3RhcnRNc1NpbmNlRXBvY2g6IHRoaXMuI3N0YXJ0TXNTaW5jZUVwb2NoISxcbiAgICAgIGVuZE1zU2luY2VFcG9jaDogdGhpcy4jbGFzdFVwZGF0ZU1zU2luY2VFcG9jaCA/PyBEYXRlLm5vdygpLFxuICAgIH1cbiAgICB0aGlzLiN1cGRhdGVkTW9kdWxlcyA9IG5ldyBTZXQoKVxuICAgIHJldHVybiByZXN1bHRcbiAgfVxufVxuXG5mdW5jdGlvbiBleHRyYWN0TW9kdWxlc0Zyb21UdXJib3BhY2tNZXNzYWdlKFxuICBkYXRhOiBUdXJib3BhY2tVcGRhdGUgfCBUdXJib3BhY2tVcGRhdGVbXVxuKTogU2V0PHN0cmluZz4ge1xuICBjb25zdCB1cGRhdGVkTW9kdWxlczogU2V0PHN0cmluZz4gPSBuZXcgU2V0KClcblxuICBjb25zdCB1cGRhdGVzID0gQXJyYXkuaXNBcnJheShkYXRhKSA/IGRhdGEgOiBbZGF0YV1cbiAgZm9yIChjb25zdCB1cGRhdGUgb2YgdXBkYXRlcykge1xuICAgIC8vIFRPRE8gdGhpcyB3b24ndCBjYXB0dXJlIGNoYW5nZXMgdG8gQ1NTIHNpbmNlIHRoZXkgZG9uJ3QgcmVzdWx0IGluIGEgXCJtZXJnZWRcIiB1cGRhdGVcbiAgICBpZiAoXG4gICAgICB1cGRhdGUudHlwZSAhPT0gJ3BhcnRpYWwnIHx8XG4gICAgICB1cGRhdGUuaW5zdHJ1Y3Rpb24udHlwZSAhPT0gJ0NodW5rTGlzdFVwZGF0ZScgfHxcbiAgICAgIHVwZGF0ZS5pbnN0cnVjdGlvbi5tZXJnZWQgPT09IHVuZGVmaW5lZFxuICAgICkge1xuICAgICAgY29udGludWVcbiAgICB9XG5cbiAgICBmb3IgKGNvbnN0IG1lcmdlZFVwZGF0ZSBvZiB1cGRhdGUuaW5zdHJ1Y3Rpb24ubWVyZ2VkKSB7XG4gICAgICBmb3IgKGNvbnN0IG5hbWUgb2YgT2JqZWN0LmtleXMobWVyZ2VkVXBkYXRlLmVudHJpZXMpKSB7XG4gICAgICAgIGNvbnN0IHJlcyA9IC8oLiopXFxzK1xcWy4qLy5leGVjKG5hbWUpXG4gICAgICAgIGlmIChyZXMgPT09IG51bGwpIHtcbiAgICAgICAgICBjb25zb2xlLmVycm9yKFxuICAgICAgICAgICAgJ1tUdXJib3BhY2sgSE1SXSBFeHBlY3RlZCBtb2R1bGUgdG8gbWF0Y2ggcGF0dGVybjogJyArIG5hbWVcbiAgICAgICAgICApXG4gICAgICAgICAgY29udGludWVcbiAgICAgICAgfVxuXG4gICAgICAgIHVwZGF0ZWRNb2R1bGVzLmFkZChyZXNbMV0pXG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHVwZGF0ZWRNb2R1bGVzXG59XG4iXSwibmFtZXMiOlsiVHVyYm9wYWNrSG1yIiwiVFVSQk9QQUNLX0hNUl9TVEFSVF9ERUxBWV9NUyIsIm9uQnVpbGRpbmciLCJ1bmRlZmluZWQiLCJEYXRlIiwibm93Iiwic2V0VGltZW91dCIsInNlbGYiLCJfX05FWFRfSE1SX1RVUkJPUEFDS19SRVBPUlRfTk9JU1lfTk9PUF9FVkVOVFMiLCJvblR1cmJvcGFja01lc3NhZ2UiLCJtc2ciLCJ1cGRhdGVkTW9kdWxlcyIsImV4dHJhY3RNb2R1bGVzRnJvbVR1cmJvcGFja01lc3NhZ2UiLCJkYXRhIiwibW9kdWxlIiwiYWRkIiwib25TZXJ2ZXJDb21wb25lbnRDaGFuZ2VzIiwib25SZWxvYWRQYWdlIiwib25QYWdlQWRkUmVtb3ZlIiwib25CdWlsdCIsImhhc1VwZGF0ZXMiLCJyZXN1bHQiLCJzdGFydE1zU2luY2VFcG9jaCIsImVuZE1zU2luY2VFcG9jaCIsIlNldCIsImNvbnN0cnVjdG9yIiwiY29uc29sZSIsImxvZyIsImNsZWFyVGltZW91dCIsInVwZGF0ZXMiLCJBcnJheSIsImlzQXJyYXkiLCJ1cGRhdGUiLCJ0eXBlIiwiaW5zdHJ1Y3Rpb24iLCJtZXJnZWQiLCJtZXJnZWRVcGRhdGUiLCJuYW1lIiwiT2JqZWN0Iiwia2V5cyIsImVudHJpZXMiLCJyZXMiLCJleGVjIiwiZXJyb3IiXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(pages-dir-browser)/./node_modules/next/dist/client/dev/hot-reloader/turbopack-hot-reloader-common.js\n")); - -/***/ }), - -/***/ "(pages-dir-browser)/./node_modules/next/dist/client/dev/on-demand-entries-client.js": -/*!***********************************************************************!*\ - !*** ./node_modules/next/dist/client/dev/on-demand-entries-client.js ***! - \***********************************************************************/ -/***/ ((module, exports, __webpack_require__) => { - -"use strict"; -eval(__webpack_require__.ts("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"default\", ({\n enumerable: true,\n get: function() {\n return _default;\n }\n}));\nconst _interop_require_default = __webpack_require__(/*! @swc/helpers/_/_interop_require_default */ \"(pages-dir-browser)/./node_modules/@swc/helpers/esm/_interop_require_default.js\");\nconst _router = /*#__PURE__*/ _interop_require_default._(__webpack_require__(/*! ../router */ \"(pages-dir-browser)/./node_modules/next/dist/client/router.js\"));\nconst _websocket = __webpack_require__(/*! ./hot-reloader/pages/websocket */ \"(pages-dir-browser)/./node_modules/next/dist/client/dev/hot-reloader/pages/websocket.js\");\nconst _default = async (page)=>{\n // Never send pings when using Turbopack as it's not used.\n // Pings were originally used to keep track of active routes in on-demand-entries with webpack.\n if (false) {}\n if (page) {\n // in AMP the router isn't initialized on the client and\n // client-transitions don't occur so ping initial page\n setInterval(()=>{\n (0, _websocket.sendMessage)(JSON.stringify({\n event: 'ping',\n page\n }));\n }, 2500);\n } else {\n _router.default.ready(()=>{\n setInterval(()=>{\n // when notFound: true is returned we should use the notFoundPage\n // as the Router.pathname will point to the 404 page but we want\n // to ping the source page that returned notFound: true instead\n const notFoundSrcPage = self.__NEXT_DATA__.notFoundSrcPage;\n const pathname = (_router.default.pathname === '/404' || _router.default.pathname === '/_error') && notFoundSrcPage ? notFoundSrcPage : _router.default.pathname;\n (0, _websocket.sendMessage)(JSON.stringify({\n event: 'ping',\n page: pathname\n }));\n }, 2500);\n });\n }\n};\nif ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=on-demand-entries-client.js.map\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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvY2xpZW50L2Rldi9vbi1kZW1hbmQtZW50cmllcy1jbGllbnQuanMiLCJtYXBwaW5ncyI6Ijs7OzsyQ0FHQTs7O2VBQUE7Ozs7NkVBSG1CO3VDQUNTO01BRTVCLFdBQWUsT0FBT0E7SUFDcEIsMERBQTBEO0lBQzFELCtGQUErRjtJQUMvRixJQUFJQyxLQUFxQixFQUFFLEVBRTFCO0lBQ0QsSUFBSUQsTUFBTTtRQUNSLHdEQUF3RDtRQUN4RCxzREFBc0Q7UUFDdERJLFlBQVk7WUFDVkMsQ0FBQUEsR0FBQUEsV0FBQUEsV0FBQUEsRUFBWUMsS0FBS0MsU0FBUyxDQUFDO2dCQUFFQyxPQUFPO2dCQUFRUjtZQUFLO1FBQ25ELEdBQUc7SUFDTCxPQUFPO1FBQ0xTLFFBQUFBLE9BQU0sQ0FBQ0MsS0FBSyxDQUFDO1lBQ1hOLFlBQVk7Z0JBQ1YsaUVBQWlFO2dCQUNqRSxnRUFBZ0U7Z0JBQ2hFLCtEQUErRDtnQkFDL0QsTUFBTU8sa0JBQWtCQyxLQUFLQyxhQUFhLENBQUNGLGVBQWU7Z0JBQzFELE1BQU1HLFdBQ0hMLENBQUFBLFFBQUFBLE9BQU0sQ0FBQ0ssUUFBUSxLQUFLLFVBQVVMLFFBQUFBLE9BQU0sQ0FBQ0ssUUFBUSxLQUFLLFVBQVEsSUFDM0RILGtCQUNJQSxrQkFDQUYsUUFBQUEsT0FBTSxDQUFDSyxRQUFRO2dCQUVyQlQsQ0FBQUEsR0FBQUEsV0FBQUEsV0FBQUEsRUFBWUMsS0FBS0MsU0FBUyxDQUFDO29CQUFFQyxPQUFPO29CQUFRUixNQUFNYztnQkFBUztZQUM3RCxHQUFHO1FBQ0w7SUFDRjtBQUNGIiwic291cmNlcyI6WyJEOlxcc3JjXFxjbGllbnRcXGRldlxcb24tZGVtYW5kLWVudHJpZXMtY2xpZW50LnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSb3V0ZXIgZnJvbSAnLi4vcm91dGVyJ1xuaW1wb3J0IHsgc2VuZE1lc3NhZ2UgfSBmcm9tICcuL2hvdC1yZWxvYWRlci9wYWdlcy93ZWJzb2NrZXQnXG5cbmV4cG9ydCBkZWZhdWx0IGFzeW5jIChwYWdlPzogc3RyaW5nKSA9PiB7XG4gIC8vIE5ldmVyIHNlbmQgcGluZ3Mgd2hlbiB1c2luZyBUdXJib3BhY2sgYXMgaXQncyBub3QgdXNlZC5cbiAgLy8gUGluZ3Mgd2VyZSBvcmlnaW5hbGx5IHVzZWQgdG8ga2VlcCB0cmFjayBvZiBhY3RpdmUgcm91dGVzIGluIG9uLWRlbWFuZC1lbnRyaWVzIHdpdGggd2VicGFjay5cbiAgaWYgKHByb2Nlc3MuZW52LlRVUkJPUEFDSykge1xuICAgIHJldHVyblxuICB9XG4gIGlmIChwYWdlKSB7XG4gICAgLy8gaW4gQU1QIHRoZSByb3V0ZXIgaXNuJ3QgaW5pdGlhbGl6ZWQgb24gdGhlIGNsaWVudCBhbmRcbiAgICAvLyBjbGllbnQtdHJhbnNpdGlvbnMgZG9uJ3Qgb2NjdXIgc28gcGluZyBpbml0aWFsIHBhZ2VcbiAgICBzZXRJbnRlcnZhbCgoKSA9PiB7XG4gICAgICBzZW5kTWVzc2FnZShKU09OLnN0cmluZ2lmeSh7IGV2ZW50OiAncGluZycsIHBhZ2UgfSkpXG4gICAgfSwgMjUwMClcbiAgfSBlbHNlIHtcbiAgICBSb3V0ZXIucmVhZHkoKCkgPT4ge1xuICAgICAgc2V0SW50ZXJ2YWwoKCkgPT4ge1xuICAgICAgICAvLyB3aGVuIG5vdEZvdW5kOiB0cnVlIGlzIHJldHVybmVkIHdlIHNob3VsZCB1c2UgdGhlIG5vdEZvdW5kUGFnZVxuICAgICAgICAvLyBhcyB0aGUgUm91dGVyLnBhdGhuYW1lIHdpbGwgcG9pbnQgdG8gdGhlIDQwNCBwYWdlIGJ1dCB3ZSB3YW50XG4gICAgICAgIC8vIHRvIHBpbmcgdGhlIHNvdXJjZSBwYWdlIHRoYXQgcmV0dXJuZWQgbm90Rm91bmQ6IHRydWUgaW5zdGVhZFxuICAgICAgICBjb25zdCBub3RGb3VuZFNyY1BhZ2UgPSBzZWxmLl9fTkVYVF9EQVRBX18ubm90Rm91bmRTcmNQYWdlXG4gICAgICAgIGNvbnN0IHBhdGhuYW1lID1cbiAgICAgICAgICAoUm91dGVyLnBhdGhuYW1lID09PSAnLzQwNCcgfHwgUm91dGVyLnBhdGhuYW1lID09PSAnL19lcnJvcicpICYmXG4gICAgICAgICAgbm90Rm91bmRTcmNQYWdlXG4gICAgICAgICAgICA/IG5vdEZvdW5kU3JjUGFnZVxuICAgICAgICAgICAgOiBSb3V0ZXIucGF0aG5hbWVcblxuICAgICAgICBzZW5kTWVzc2FnZShKU09OLnN0cmluZ2lmeSh7IGV2ZW50OiAncGluZycsIHBhZ2U6IHBhdGhuYW1lIH0pKVxuICAgICAgfSwgMjUwMClcbiAgICB9KVxuICB9XG59XG4iXSwibmFtZXMiOlsicGFnZSIsInByb2Nlc3MiLCJlbnYiLCJUVVJCT1BBQ0siLCJzZXRJbnRlcnZhbCIsInNlbmRNZXNzYWdlIiwiSlNPTiIsInN0cmluZ2lmeSIsImV2ZW50IiwiUm91dGVyIiwicmVhZHkiLCJub3RGb3VuZFNyY1BhZ2UiLCJzZWxmIiwiX19ORVhUX0RBVEFfXyIsInBhdGhuYW1lIl0sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(pages-dir-browser)/./node_modules/next/dist/client/dev/on-demand-entries-client.js\n")); - -/***/ }), - -/***/ "(pages-dir-browser)/./node_modules/next/dist/client/dev/report-hmr-latency.js": -/*!*****************************************************************!*\ - !*** ./node_modules/next/dist/client/dev/report-hmr-latency.js ***! - \*****************************************************************/ -/***/ ((module, exports, __webpack_require__) => { - -"use strict"; -eval(__webpack_require__.ts("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"default\", ({\n enumerable: true,\n get: function() {\n return reportHmrLatency;\n }\n}));\nfunction reportHmrLatency(sendMessage, updatedModules, startMsSinceEpoch, endMsSinceEpoch, hasUpdate) {\n if (hasUpdate === void 0) hasUpdate = true;\n const latencyMs = endMsSinceEpoch - startMsSinceEpoch;\n console.log(\"[Fast Refresh] done in \" + latencyMs + \"ms\");\n if (!hasUpdate) {\n return;\n }\n sendMessage(JSON.stringify({\n event: 'client-hmr-latency',\n id: window.__nextDevClientId,\n startTime: startMsSinceEpoch,\n endTime: endMsSinceEpoch,\n page: window.location.pathname,\n updatedModules,\n // Whether the page (tab) was hidden at the time the event occurred.\n // This can impact the accuracy of the event's timing.\n isPageHidden: document.visibilityState === 'hidden'\n }));\n if (self.__NEXT_HMR_LATENCY_CB) {\n self.__NEXT_HMR_LATENCY_CB(latencyMs);\n }\n}\nif ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=report-hmr-latency.js.map\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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvY2xpZW50L2Rldi9yZXBvcnQtaG1yLWxhdGVuY3kuanMiLCJtYXBwaW5ncyI6Ijs7OzsyQ0FpQkE7OztlQUF3QkE7OztBQUFULFNBQVNBLGlCQUN0QkMsV0FBc0MsRUFDdENDLGNBQThDLEVBQzlDQyxpQkFBeUIsRUFDekJDLGVBQXVCLEVBQ3ZCQyxTQUF5QjtJQUF6QkEsSUFBQUEsY0FBQUEsS0FBQUEsR0FBQUEsWUFBcUI7SUFFckIsTUFBTUMsWUFBWUYsa0JBQWtCRDtJQUNwQ0ksUUFBUUMsR0FBRyxDQUFFLDRCQUF5QkYsWUFBVTtJQUNoRCxJQUFJLENBQUNELFdBQVc7UUFDZDtJQUNGO0lBQ0FKLFlBQ0VRLEtBQUtDLFNBQVMsQ0FBQztRQUNiQyxPQUFPO1FBQ1BDLElBQUlDLE9BQU9DLGlCQUFpQjtRQUM1QkMsV0FBV1o7UUFDWGEsU0FBU1o7UUFDVGEsTUFBTUosT0FBT0ssUUFBUSxDQUFDQyxRQUFRO1FBQzlCakI7UUFDQSxvRUFBb0U7UUFDcEUsc0RBQXNEO1FBQ3REa0IsY0FBY0MsU0FBU0MsZUFBZSxLQUFLO0lBQzdDO0lBRUYsSUFBSUMsS0FBS0MscUJBQXFCLEVBQUU7UUFDOUJELEtBQUtDLHFCQUFxQixDQUFDbEI7SUFDN0I7QUFDRiIsInNvdXJjZXMiOlsiRDpcXHNyY1xcY2xpZW50XFxkZXZcXHJlcG9ydC1obXItbGF0ZW5jeS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJkZWNsYXJlIGdsb2JhbCB7XG4gIGludGVyZmFjZSBXaW5kb3cge1xuICAgIF9fTkVYVF9ITVJfTEFURU5DWV9DQjogKChsYXRlbmN5TXM6IG51bWJlcikgPT4gdm9pZCkgfCB1bmRlZmluZWRcbiAgfVxufVxuXG4vKipcbiAqIExvZ3MgaW5mb3JtYXRpb24gYWJvdXQgYSBjb21wbGV0ZWQgSE1SIHRvIHRoZSBjb25zb2xlLCB0aGUgc2VydmVyICh2aWEgYVxuICogYGNsaWVudC1obXItbGF0ZW5jeWAgZXZlbnQpLCBhbmQgdG8gYHNlbGYuX19ORVhUX0hNUl9MQVRFTkNZX0NCYCAoYSBkZWJ1Z2dpbmdcbiAqIGhvb2spLlxuICpcbiAqIEBwYXJhbSBoYXNVcGRhdGUgU2V0IHRoaXMgdG8gYGZhbHNlYCB0byBhdm9pZCByZXBvcnRpbmcgdGhlIEhNUiBldmVudCB2aWEgYVxuICogICBgY2xpZW50LWhtci1sYXRlbmN5YCBldmVudCBvciB0byBgc2VsZi5fX05FWFRfSE1SX0xBVEVOQ1lfQ0JgLiBVc2VkIGJ5XG4gKiAgIHR1cmJvcGFjayB3aGVuIHdlIG11c3QgcmVwb3J0IGEgbWVzc2FnZSB0byB0aGUgYnJvd3NlciBjb25zb2xlIChiZWNhdXNlIHdlXG4gKiAgIGFscmVhZHkgbG9nZ2VkIGEgXCJyZWJ1aWxkaW5nXCIgbWVzc2FnZSksIGJ1dCBpdCdzIG5vdCBhIHJlYWwgSE1SLCBzbyB3ZVxuICogICBkb24ndCB3YW50IHRvIGltcGFjdCBvdXIgdGVsZW1ldHJ5LlxuICovXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiByZXBvcnRIbXJMYXRlbmN5KFxuICBzZW5kTWVzc2FnZTogKG1lc3NhZ2U6IHN0cmluZykgPT4gdm9pZCxcbiAgdXBkYXRlZE1vZHVsZXM6IFJlYWRvbmx5QXJyYXk8c3RyaW5nIHwgbnVtYmVyPixcbiAgc3RhcnRNc1NpbmNlRXBvY2g6IG51bWJlcixcbiAgZW5kTXNTaW5jZUVwb2NoOiBudW1iZXIsXG4gIGhhc1VwZGF0ZTogYm9vbGVhbiA9IHRydWVcbikge1xuICBjb25zdCBsYXRlbmN5TXMgPSBlbmRNc1NpbmNlRXBvY2ggLSBzdGFydE1zU2luY2VFcG9jaFxuICBjb25zb2xlLmxvZyhgW0Zhc3QgUmVmcmVzaF0gZG9uZSBpbiAke2xhdGVuY3lNc31tc2ApXG4gIGlmICghaGFzVXBkYXRlKSB7XG4gICAgcmV0dXJuXG4gIH1cbiAgc2VuZE1lc3NhZ2UoXG4gICAgSlNPTi5zdHJpbmdpZnkoe1xuICAgICAgZXZlbnQ6ICdjbGllbnQtaG1yLWxhdGVuY3knLFxuICAgICAgaWQ6IHdpbmRvdy5fX25leHREZXZDbGllbnRJZCxcbiAgICAgIHN0YXJ0VGltZTogc3RhcnRNc1NpbmNlRXBvY2gsXG4gICAgICBlbmRUaW1lOiBlbmRNc1NpbmNlRXBvY2gsXG4gICAgICBwYWdlOiB3aW5kb3cubG9jYXRpb24ucGF0aG5hbWUsXG4gICAgICB1cGRhdGVkTW9kdWxlcyxcbiAgICAgIC8vIFdoZXRoZXIgdGhlIHBhZ2UgKHRhYikgd2FzIGhpZGRlbiBhdCB0aGUgdGltZSB0aGUgZXZlbnQgb2NjdXJyZWQuXG4gICAgICAvLyBUaGlzIGNhbiBpbXBhY3QgdGhlIGFjY3VyYWN5IG9mIHRoZSBldmVudCdzIHRpbWluZy5cbiAgICAgIGlzUGFnZUhpZGRlbjogZG9jdW1lbnQudmlzaWJpbGl0eVN0YXRlID09PSAnaGlkZGVuJyxcbiAgICB9KVxuICApXG4gIGlmIChzZWxmLl9fTkVYVF9ITVJfTEFURU5DWV9DQikge1xuICAgIHNlbGYuX19ORVhUX0hNUl9MQVRFTkNZX0NCKGxhdGVuY3lNcylcbiAgfVxufVxuIl0sIm5hbWVzIjpbInJlcG9ydEhtckxhdGVuY3kiLCJzZW5kTWVzc2FnZSIsInVwZGF0ZWRNb2R1bGVzIiwic3RhcnRNc1NpbmNlRXBvY2giLCJlbmRNc1NpbmNlRXBvY2giLCJoYXNVcGRhdGUiLCJsYXRlbmN5TXMiLCJjb25zb2xlIiwibG9nIiwiSlNPTiIsInN0cmluZ2lmeSIsImV2ZW50IiwiaWQiLCJ3aW5kb3ciLCJfX25leHREZXZDbGllbnRJZCIsInN0YXJ0VGltZSIsImVuZFRpbWUiLCJwYWdlIiwibG9jYXRpb24iLCJwYXRobmFtZSIsImlzUGFnZUhpZGRlbiIsImRvY3VtZW50IiwidmlzaWJpbGl0eVN0YXRlIiwic2VsZiIsIl9fTkVYVF9ITVJfTEFURU5DWV9DQiJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(pages-dir-browser)/./node_modules/next/dist/client/dev/report-hmr-latency.js\n")); - -/***/ }), - -/***/ "(pages-dir-browser)/./node_modules/next/dist/client/dev/runtime-error-handler.js": -/*!********************************************************************!*\ - !*** ./node_modules/next/dist/client/dev/runtime-error-handler.js ***! - \********************************************************************/ -/***/ ((module, exports, __webpack_require__) => { - -"use strict"; -eval(__webpack_require__.ts("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"RuntimeErrorHandler\", ({\n enumerable: true,\n get: function() {\n return RuntimeErrorHandler;\n }\n}));\nconst RuntimeErrorHandler = {\n hadRuntimeError: false\n};\nif ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=runtime-error-handler.js.map\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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvY2xpZW50L2Rldi9ydW50aW1lLWVycm9yLWhhbmRsZXIuanMiLCJtYXBwaW5ncyI6Ijs7Ozt1REFBYUE7OztlQUFBQTs7O0FBQU4sTUFBTUEsc0JBQXNCO0lBQ2pDQyxpQkFBaUI7QUFDbkIiLCJzb3VyY2VzIjpbIkQ6XFxzcmNcXGNsaWVudFxcZGV2XFxydW50aW1lLWVycm9yLWhhbmRsZXIudHMiXSwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNvbnN0IFJ1bnRpbWVFcnJvckhhbmRsZXIgPSB7XG4gIGhhZFJ1bnRpbWVFcnJvcjogZmFsc2UsXG59XG4iXSwibmFtZXMiOlsiUnVudGltZUVycm9ySGFuZGxlciIsImhhZFJ1bnRpbWVFcnJvciJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(pages-dir-browser)/./node_modules/next/dist/client/dev/runtime-error-handler.js\n")); - -/***/ }), - -/***/ "(pages-dir-browser)/./node_modules/next/dist/client/has-base-path.js": -/*!********************************************************!*\ - !*** ./node_modules/next/dist/client/has-base-path.js ***! - \********************************************************/ -/***/ ((module, exports, __webpack_require__) => { - -"use strict"; -eval(__webpack_require__.ts("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"hasBasePath\", ({\n enumerable: true,\n get: function() {\n return hasBasePath;\n }\n}));\nconst _pathhasprefix = __webpack_require__(/*! ../shared/lib/router/utils/path-has-prefix */ \"(pages-dir-browser)/./node_modules/next/dist/shared/lib/router/utils/path-has-prefix.js\");\nconst basePath = false || '';\nfunction hasBasePath(path) {\n return (0, _pathhasprefix.pathHasPrefix)(path, basePath);\n}\nif ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=has-base-path.js.map\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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvY2xpZW50L2hhcy1iYXNlLXBhdGguanMiLCJtYXBwaW5ncyI6Ijs7OzsrQ0FJZ0JBOzs7ZUFBQUE7OzsyQ0FKYztBQUU5QixNQUFNQyxXQUFZQyxNQUFrQyxJQUFlO0FBRTVELFNBQVNGLFlBQVlLLElBQVk7SUFDdEMsT0FBT0MsQ0FBQUEsR0FBQUEsZUFBQUEsYUFBQUEsRUFBY0QsTUFBTUo7QUFDN0IiLCJzb3VyY2VzIjpbIkQ6XFxzcmNcXGNsaWVudFxcaGFzLWJhc2UtcGF0aC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBwYXRoSGFzUHJlZml4IH0gZnJvbSAnLi4vc2hhcmVkL2xpYi9yb3V0ZXIvdXRpbHMvcGF0aC1oYXMtcHJlZml4J1xuXG5jb25zdCBiYXNlUGF0aCA9IChwcm9jZXNzLmVudi5fX05FWFRfUk9VVEVSX0JBU0VQQVRIIGFzIHN0cmluZykgfHwgJydcblxuZXhwb3J0IGZ1bmN0aW9uIGhhc0Jhc2VQYXRoKHBhdGg6IHN0cmluZyk6IGJvb2xlYW4ge1xuICByZXR1cm4gcGF0aEhhc1ByZWZpeChwYXRoLCBiYXNlUGF0aClcbn1cbiJdLCJuYW1lcyI6WyJoYXNCYXNlUGF0aCIsImJhc2VQYXRoIiwicHJvY2VzcyIsImVudiIsIl9fTkVYVF9ST1VURVJfQkFTRVBBVEgiLCJwYXRoIiwicGF0aEhhc1ByZWZpeCJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(pages-dir-browser)/./node_modules/next/dist/client/has-base-path.js\n")); - -/***/ }), - -/***/ "(pages-dir-browser)/./node_modules/next/dist/client/head-manager.js": -/*!*******************************************************!*\ - !*** ./node_modules/next/dist/client/head-manager.js ***! - \*******************************************************/ -/***/ ((module, exports, __webpack_require__) => { - -"use strict"; -eval(__webpack_require__.ts("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n default: function() {\n return initHeadManager;\n },\n isEqualNode: function() {\n return isEqualNode;\n }\n});\nconst _setattributesfromprops = __webpack_require__(/*! ./set-attributes-from-props */ \"(pages-dir-browser)/./node_modules/next/dist/client/set-attributes-from-props.js\");\nfunction reactElementToDOM(param) {\n let { type, props } = param;\n const el = document.createElement(type);\n (0, _setattributesfromprops.setAttributesFromProps)(el, props);\n const { children, dangerouslySetInnerHTML } = props;\n if (dangerouslySetInnerHTML) {\n el.innerHTML = dangerouslySetInnerHTML.__html || '';\n } else if (children) {\n el.textContent = typeof children === 'string' ? children : Array.isArray(children) ? children.join('') : '';\n }\n return el;\n}\nfunction isEqualNode(oldTag, newTag) {\n if (oldTag instanceof HTMLElement && newTag instanceof HTMLElement) {\n const nonce = newTag.getAttribute('nonce');\n // Only strip the nonce if `oldTag` has had it stripped. An element's nonce attribute will not\n // be stripped if there is no content security policy response header that includes a nonce.\n if (nonce && !oldTag.getAttribute('nonce')) {\n const cloneTag = newTag.cloneNode(true);\n cloneTag.setAttribute('nonce', '');\n cloneTag.nonce = nonce;\n return nonce === oldTag.nonce && oldTag.isEqualNode(cloneTag);\n }\n }\n return oldTag.isEqualNode(newTag);\n}\nlet updateElements;\nif (true) {\n updateElements = (type, components)=>{\n const headEl = document.querySelector('head');\n if (!headEl) return;\n const oldTags = new Set(headEl.querySelectorAll(\"\" + type + \"[data-next-head]\"));\n if (type === 'meta') {\n const metaCharset = headEl.querySelector('meta[charset]');\n if (metaCharset !== null) {\n oldTags.add(metaCharset);\n }\n }\n const newTags = [];\n for(let i = 0; i < components.length; i++){\n const component = components[i];\n const newTag = reactElementToDOM(component);\n newTag.setAttribute('data-next-head', '');\n let isNew = true;\n for (const oldTag of oldTags){\n if (isEqualNode(oldTag, newTag)) {\n oldTags.delete(oldTag);\n isNew = false;\n break;\n }\n }\n if (isNew) {\n newTags.push(newTag);\n }\n }\n for (const oldTag of oldTags){\n var _oldTag_parentNode;\n (_oldTag_parentNode = oldTag.parentNode) == null ? void 0 : _oldTag_parentNode.removeChild(oldTag);\n }\n for (const newTag of newTags){\n // meta[charset] must be first element so special case\n if (newTag.tagName.toLowerCase() === 'meta' && newTag.getAttribute('charset') !== null) {\n headEl.prepend(newTag);\n }\n headEl.appendChild(newTag);\n }\n };\n} else {}\nfunction initHeadManager() {\n return {\n mountedInstances: new Set(),\n updateHead: (head)=>{\n const tags = {};\n head.forEach((h)=>{\n if (// it won't be inlined. In this case revert to the original behavior\n h.type === 'link' && h.props['data-optimized-fonts']) {\n if (document.querySelector('style[data-href=\"' + h.props['data-href'] + '\"]')) {\n return;\n } else {\n h.props.href = h.props['data-href'];\n h.props['data-href'] = undefined;\n }\n }\n const components = tags[h.type] || [];\n components.push(h);\n tags[h.type] = components;\n });\n const titleComponent = tags.title ? tags.title[0] : null;\n let title = '';\n if (titleComponent) {\n const { children } = titleComponent.props;\n title = typeof children === 'string' ? children : Array.isArray(children) ? children.join('') : '';\n }\n if (title !== document.title) document.title = title;\n [\n 'meta',\n 'base',\n 'link',\n 'style',\n 'script'\n ].forEach((type)=>{\n updateElements(type, tags[type] || []);\n });\n }\n };\n}\nif ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=head-manager.js.map\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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvY2xpZW50L2hlYWQtbWFuYWdlci5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7SUF5SkEsT0FnREM7ZUFoRHVCQTs7SUFySFJDLFdBQVc7ZUFBWEE7OztvREFwQ3VCO0FBSXZDLFNBQVNDLGtCQUFrQixLQUE0QjtJQUE1QixNQUFFQyxJQUFJLEVBQUVDLEtBQUssRUFBZSxHQUE1QjtJQUN6QixNQUFNQyxLQUFrQkMsU0FBU0MsYUFBYSxDQUFDSjtJQUMvQ0ssQ0FBQUEsR0FBQUEsd0JBQUFBLHNCQUFzQixFQUFDSCxJQUFJRDtJQUUzQixNQUFNLEVBQUVLLFFBQVEsRUFBRUMsdUJBQXVCLEVBQUUsR0FBR047SUFDOUMsSUFBSU0seUJBQXlCO1FBQzNCTCxHQUFHTSxTQUFTLEdBQUdELHdCQUF3QkUsTUFBTSxJQUFJO0lBQ25ELE9BQU8sSUFBSUgsVUFBVTtRQUNuQkosR0FBR1EsV0FBVyxHQUNaLE9BQU9KLGFBQWEsV0FDaEJBLFdBQ0FLLE1BQU1DLE9BQU8sQ0FBQ04sWUFDWkEsU0FBU08sSUFBSSxDQUFDLE1BQ2Q7SUFDVjtJQUNBLE9BQU9YO0FBQ1Q7QUFnQk8sU0FBU0osWUFBWWdCLE1BQWUsRUFBRUMsTUFBZTtJQUMxRCxJQUFJRCxrQkFBa0JFLGVBQWVELGtCQUFrQkMsYUFBYTtRQUNsRSxNQUFNQyxRQUFRRixPQUFPRyxZQUFZLENBQUM7UUFDbEMsOEZBQThGO1FBQzlGLDRGQUE0RjtRQUM1RixJQUFJRCxTQUFTLENBQUNILE9BQU9JLFlBQVksQ0FBQyxVQUFVO1lBQzFDLE1BQU1DLFdBQVdKLE9BQU9LLFNBQVMsQ0FBQztZQUNsQ0QsU0FBU0UsWUFBWSxDQUFDLFNBQVM7WUFDL0JGLFNBQVNGLEtBQUssR0FBR0E7WUFDakIsT0FBT0EsVUFBVUgsT0FBT0csS0FBSyxJQUFJSCxPQUFPaEIsV0FBVyxDQUFDcUI7UUFDdEQ7SUFDRjtJQUVBLE9BQU9MLE9BQU9oQixXQUFX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O2dCQUFRO2dCQUFRO2dCQUFRO2dCQUFTO2FBQVMsQ0FBQ1osT0FBTyxDQUFDLENBQUM5RDtnQkFDcERzQixlQUFldEIsTUFBTXFFLElBQUksQ0FBQ3JFLEtBQUssSUFBSSxFQUFFO1lBQ3ZDO1FBQ0Y7SUFDRjtBQUNGIiwic291cmNlcyI6WyJEOlxcc3JjXFxjbGllbnRcXGhlYWQtbWFuYWdlci50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBzZXRBdHRyaWJ1dGVzRnJvbVByb3BzIH0gZnJvbSAnLi9zZXQtYXR0cmlidXRlcy1mcm9tLXByb3BzJ1xuXG5pbXBvcnQgdHlwZSB7IEpTWCB9IGZyb20gJ3JlYWN0J1xuXG5mdW5jdGlvbiByZWFjdEVsZW1lbnRUb0RPTSh7IHR5cGUsIHByb3BzIH06IEpTWC5FbGVtZW50KTogSFRNTEVsZW1lbnQge1xuICBjb25zdCBlbDogSFRNTEVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KHR5cGUpXG4gIHNldEF0dHJpYnV0ZXNGcm9tUHJvcHMoZWwsIHByb3BzKVxuXG4gIGNvbnN0IHsgY2hpbGRyZW4sIGRhbmdlcm91c2x5U2V0SW5uZXJIVE1MIH0gPSBwcm9wc1xuICBpZiAoZGFuZ2Vyb3VzbHlTZXRJbm5lckhUTUwpIHtcbiAgICBlbC5pbm5lckhUTUwgPSBkYW5nZXJvdXNseVNldElubmVySFRNTC5fX2h0bWwgfHwgJydcbiAgfSBlbHNlIGlmIChjaGlsZHJlbikge1xuICAgIGVsLnRleHRDb250ZW50ID1cbiAgICAgIHR5cGVvZiBjaGlsZHJlbiA9PT0gJ3N0cmluZydcbiAgICAgICAgPyBjaGlsZHJlblxuICAgICAgICA6IEFycmF5LmlzQXJyYXkoY2hpbGRyZW4pXG4gICAgICAgICAgPyBjaGlsZHJlbi5qb2luKCcnKVxuICAgICAgICAgIDogJydcbiAgfVxuICByZXR1cm4gZWxcbn1cblxuLyoqXG4gKiBXaGVuIGEgYG5vbmNlYCBpcyBwcmVzZW50IG9uIGFuIGVsZW1lbnQsIGJyb3dzZXJzIHN1Y2ggYXMgQ2hyb21lIGFuZCBGaXJlZm94IHN0cmlwIGl0IG91dCBvZiB0aGVcbiAqIGFjdHVhbCBIVE1MIGF0dHJpYnV0ZXMgZm9yIHNlY3VyaXR5IHJlYXNvbnMgKndoZW4gdGhlIGVsZW1lbnQgaXMgYWRkZWQgdG8gdGhlIGRvY3VtZW50Ki4gVGh1cyxcbiAqIGdpdmVuIHR3byBlcXVpdmFsZW50IGVsZW1lbnRzIHRoYXQgaGF2ZSBub25jZXMsIGBFbGVtZW50LGlzRXF1YWxOb2RlKClgIHdpbGwgcmV0dXJuIGZhbHNlIGlmIG9uZVxuICogb2YgdGhvc2UgZWxlbWVudHMgZ2V0cyBhZGRlZCB0byB0aGUgZG9jdW1lbnQuIEFsdGhvdWdoIHRoZSBgZWxlbWVudC5ub25jZWAgcHJvcGVydHkgd2lsbCBiZSB0aGVcbiAqIHNhbWUgZm9yIGJvdGggZWxlbWVudHMsIHRoZSBvbmUgdGhhdCB3YXMgYWRkZWQgdG8gdGhlIGRvY3VtZW50IHdpbGwgcmV0dXJuIGFuIGVtcHR5IHN0cmluZyBmb3JcbiAqIGl0cyBub25jZSBIVE1MIGF0dHJpYnV0ZSB2YWx1ZS5cbiAqXG4gKiBUaGlzIGN1c3RvbSBgaXNFcXVhbE5vZGUoKWAgZnVuY3Rpb24gdGhlcmVmb3JlIHJlbW92ZXMgdGhlIG5vbmNlIHZhbHVlIGZyb20gdGhlIGBuZXdUYWdgIGJlZm9yZVxuICogY29tcGFyaW5nIGl0IHRvIGBvbGRUYWdgLCByZXN0b3JpbmcgaXQgYWZ0ZXJ3YXJkcy5cbiAqXG4gKiBGb3IgbW9yZSBpbmZvcm1hdGlvbiwgc2VlOlxuICogaHR0cHM6Ly9idWdzLmNocm9taXVtLm9yZy9wL2Nocm9taXVtL2lzc3Vlcy9kZXRhaWw/aWQ9MTIxMTQ3MSNjMTJcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzRXF1YWxOb2RlKG9sZFRhZzogRWxlbWVudCwgbmV3VGFnOiBFbGVtZW50KSB7XG4gIGlmIChvbGRUYWcgaW5zdGFuY2VvZiBIVE1MRWxlbWVudCAmJiBuZXdUYWcgaW5zdGFuY2VvZiBIVE1MRWxlbWVudCkge1xuICAgIGNvbnN0IG5vbmNlID0gbmV3VGFnLmdldEF0dHJpYnV0ZSgnbm9uY2UnKVxuICAgIC8vIE9ubHkgc3RyaXAgdGhlIG5vbmNlIGlmIGBvbGRUYWdgIGhhcyBoYWQgaXQgc3RyaXBwZWQuIEFuIGVsZW1lbnQncyBub25jZSBhdHRyaWJ1dGUgd2lsbCBub3RcbiAgICAvLyBiZSBzdHJpcHBlZCBpZiB0aGVyZSBpcyBubyBjb250ZW50IHNlY3VyaXR5IHBvbGljeSByZXNwb25zZSBoZWFkZXIgdGhhdCBpbmNsdWRlcyBhIG5vbmNlLlxuICAgIGlmIChub25jZSAmJiAhb2xkVGFnLmdldEF0dHJpYnV0ZSgnbm9uY2UnKSkge1xuICAgICAgY29uc3QgY2xvbmVUYWcgPSBuZXdUYWcuY2xvbmVOb2RlKHRydWUpIGFzIHR5cGVvZiBuZXdUYWdcbiAgICAgIGNsb25lVGFnLnNldEF0dHJpYnV0ZSgnbm9uY2UnLCAnJylcbiAgICAgIGNsb25lVGFnLm5vbmNlID0gbm9uY2VcbiAgICAgIHJldHVybiBub25jZSA9PT0gb2xkVGFnLm5vbmNlICYmIG9sZFRhZy5pc0VxdWFsTm9kZShjbG9uZVRhZylcbiAgICB9XG4gIH1cblxuICByZXR1cm4gb2xkVGFnLmlzRXF1YWxOb2RlKG5ld1RhZylcbn1cblxubGV0IHVwZGF0ZUVsZW1lbnRzOiAodHlwZTogc3RyaW5nLCBjb21wb25lbnRzOiBKU1guRWxlbWVudFtdKSA9PiB2b2lkXG5cbmlmIChwcm9jZXNzLmVudi5fX05FWFRfU1RSSUNUX05FWFRfSEVBRCkge1xuICB1cGRhdGVFbGVtZW50cyA9ICh0eXBlLCBjb21wb25lbnRzKSA9PiB7XG4gICAgY29uc3QgaGVhZEVsID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcignaGVhZCcpXG4gICAgaWYgKCFoZWFkRWwpIHJldHVyblxuXG4gICAgY29uc3Qgb2xkVGFncyA9IG5ldyBTZXQoaGVhZEVsLnF1ZXJ5U2VsZWN0b3JBbGwoYCR7dHlwZX1bZGF0YS1uZXh0LWhlYWRdYCkpXG5cbiAgICBpZiAodHlwZSA9PT0gJ21ldGEnKSB7XG4gICAgICBjb25zdCBtZXRhQ2hhcnNldCA9IGhlYWRFbC5xdWVyeVNlbGVjdG9yKCdtZXRhW2NoYXJzZXRdJylcbiAgICAgIGlmIChtZXRhQ2hhcnNldCAhPT0gbnVsbCkge1xuICAgICAgICBvbGRUYWdzLmFkZChtZXRhQ2hhcnNldClcbiAgICAgIH1cbiAgICB9XG5cbiAgICBjb25zdCBuZXdUYWdzOiBFbGVtZW50W10gPSBbXVxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgY29tcG9uZW50cy5sZW5ndGg7IGkrKykge1xuICAgICAgY29uc3QgY29tcG9uZW50ID0gY29tcG9uZW50c1tpXVxuICAgICAgY29uc3QgbmV3VGFnID0gcmVhY3RFbGVtZW50VG9ET00oY29tcG9uZW50KVxuICAgICAgbmV3VGFnLnNldEF0dHJpYnV0ZSgnZGF0YS1uZXh0LWhlYWQnLCAnJylcblxuICAgICAgbGV0IGlzTmV3ID0gdHJ1ZVxuICAgICAgZm9yIChjb25zdCBvbGRUYWcgb2Ygb2xkVGFncykge1xuICAgICAgICBpZiAoaXNFcXVhbE5vZGUob2xkVGFnLCBuZXdUYWcpKSB7XG4gICAgICAgICAgb2xkVGFncy5kZWxldGUob2xkVGFnKVxuICAgICAgICAgIGlzTmV3ID0gZmFsc2VcbiAgICAgICAgICBicmVha1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIGlmIChpc05ldykge1xuICAgICAgICBuZXdUYWdzLnB1c2gobmV3VGFnKVxuICAgICAgfVxuICAgIH1cblxuICAgIGZvciAoY29uc3Qgb2xkVGFnIG9mIG9sZFRhZ3MpIHtcbiAgICAgIG9sZFRhZy5wYXJlbnROb2RlPy5yZW1vdmVDaGlsZChvbGRUYWcpXG4gICAgfVxuXG4gICAgZm9yIChjb25zdCBuZXdUYWcgb2YgbmV3VGFncykge1xuICAgICAgLy8gbWV0YVtjaGFyc2V0XSBtdXN0IGJlIGZpcnN0IGVsZW1lbnQgc28gc3BlY2lhbCBjYXNlXG4gICAgICBpZiAoXG4gICAgICAgIG5ld1RhZy50YWdOYW1lLnRvTG93ZXJDYXNlKCkgPT09ICdtZXRhJyAmJlxuICAgICAgICBuZXdUYWcuZ2V0QXR0cmlidXRlKCdjaGFyc2V0JykgIT09IG51bGxcbiAgICAgICkge1xuICAgICAgICBoZWFkRWwucHJlcGVuZChuZXdUYWcpXG4gICAgICB9XG4gICAgICBoZWFkRWwuYXBwZW5kQ2hpbGQobmV3VGFnKVxuICAgIH1cbiAgfVxufSBlbHNlIHtcbiAgdXBkYXRlRWxlbWVudHMgPSAodHlwZSwgY29tcG9uZW50cykgPT4ge1xuICAgIGNvbnN0IGhlYWRFbCA9IGRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCdoZWFkJylbMF1cbiAgICBjb25zdCBoZWFkQ291bnRFbDogSFRNTE1ldGFFbGVtZW50ID0gaGVhZEVsLnF1ZXJ5U2VsZWN0b3IoXG4gICAgICAnbWV0YVtuYW1lPW5leHQtaGVhZC1jb3VudF0nXG4gICAgKSBhcyBIVE1MTWV0YUVsZW1lbnRcbiAgICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJykge1xuICAgICAgaWYgKCFoZWFkQ291bnRFbCkge1xuICAgICAgICBjb25zb2xlLmVycm9yKFxuICAgICAgICAgICdXYXJuaW5nOiBuZXh0LWhlYWQtY291bnQgaXMgbWlzc2luZy4gaHR0cHM6Ly9uZXh0anMub3JnL2RvY3MvbWVzc2FnZXMvbmV4dC1oZWFkLWNvdW50LW1pc3NpbmcnXG4gICAgICAgIClcbiAgICAgICAgcmV0dXJuXG4gICAgICB9XG4gICAgfVxuXG4gICAgY29uc3QgaGVhZENvdW50ID0gTnVtYmVyKGhlYWRDb3VudEVsLmNvbnRlbnQpXG4gICAgY29uc3Qgb2xkVGFnczogRWxlbWVudFtdID0gW11cblxuICAgIGZvciAoXG4gICAgICBsZXQgaSA9IDAsIGogPSBoZWFkQ291bnRFbC5wcmV2aW91c0VsZW1lbnRTaWJsaW5nO1xuICAgICAgaSA8IGhlYWRDb3VudDtcbiAgICAgIGkrKywgaiA9IGo/LnByZXZpb3VzRWxlbWVudFNpYmxpbmcgfHwgbnVsbFxuICAgICkge1xuICAgICAgaWYgKGo/LnRhZ05hbWU/LnRvTG93ZXJDYXNlKCkgPT09IHR5cGUpIHtcbiAgICAgICAgb2xkVGFncy5wdXNoKGopXG4gICAgICB9XG4gICAgfVxuICAgIGNvbnN0IG5ld1RhZ3MgPSAoY29tcG9uZW50cy5tYXAocmVhY3RFbGVtZW50VG9ET00pIGFzIEhUTUxFbGVtZW50W10pLmZpbHRlcihcbiAgICAgIChuZXdUYWcpID0+IHtcbiAgICAgICAgZm9yIChsZXQgayA9IDAsIGxlbiA9IG9sZFRhZ3MubGVuZ3RoOyBrIDwgbGVuOyBrKyspIHtcbiAgICAgICAgICBjb25zdCBvbGRUYWcgPSBvbGRUYWdzW2tdXG4gICAgICAgICAgaWYgKGlzRXF1YWxOb2RlKG9sZFRhZywgbmV3VGFnKSkge1xuICAgICAgICAgICAgb2xkVGFncy5zcGxpY2UoaywgMSlcbiAgICAgICAgICAgIHJldHVybiBmYWxzZVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdHJ1ZVxuICAgICAgfVxuICAgIClcblxuICAgIG9sZFRhZ3MuZm9yRWFjaCgodCkgPT4gdC5wYXJlbnROb2RlPy5yZW1vdmVDaGlsZCh0KSlcbiAgICBuZXdUYWdzLmZvckVhY2goKHQpID0+IGhlYWRFbC5pbnNlcnRCZWZvcmUodCwgaGVhZENvdW50RWwpKVxuICAgIGhlYWRDb3VudEVsLmNvbnRlbnQgPSAoXG4gICAgICBoZWFkQ291bnQgLVxuICAgICAgb2xkVGFncy5sZW5ndGggK1xuICAgICAgbmV3VGFncy5sZW5ndGhcbiAgICApLnRvU3RyaW5nKClcbiAgfVxufVxuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBpbml0SGVhZE1hbmFnZXIoKToge1xuICBtb3VudGVkSW5zdGFuY2VzOiBTZXQ8dW5rbm93bj5cbiAgdXBkYXRlSGVhZDogKGhlYWQ6IEpTWC5FbGVtZW50W10pID0+IHZvaWRcbn0ge1xuICByZXR1cm4ge1xuICAgIG1vdW50ZWRJbnN0YW5jZXM6IG5ldyBTZXQoKSxcbiAgICB1cGRhdGVIZWFkOiAoaGVhZDogSlNYLkVsZW1lbnRbXSkgPT4ge1xuICAgICAgY29uc3QgdGFnczogUmVjb3JkPHN0cmluZywgSlNYLkVsZW1lbnRbXT4gPSB7fVxuXG4gICAgICBoZWFkLmZvckVhY2goKGgpID0+IHtcbiAgICAgICAgaWYgKFxuICAgICAgICAgIC8vIElmIHRoZSBmb250IHRhZyBpcyBsb2FkZWQgb25seSBvbiBjbGllbnQgbmF2aWdhdGlvblxuICAgICAgICAgIC8vIGl0IHdvbid0IGJlIGlubGluZWQuIEluIHRoaXMgY2FzZSByZXZlcnQgdG8gdGhlIG9yaWdpbmFsIGJlaGF2aW9yXG4gICAgICAgICAgaC50eXBlID09PSAnbGluaycgJiZcbiAgICAgICAgICBoLnByb3BzWydkYXRhLW9wdGltaXplZC1mb250cyddXG4gICAgICAgICkge1xuICAgICAgICAgIGlmIChcbiAgICAgICAgICAgIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoYHN0eWxlW2RhdGEtaHJlZj1cIiR7aC5wcm9wc1snZGF0YS1ocmVmJ119XCJdYClcbiAgICAgICAgICApIHtcbiAgICAgICAgICAgIHJldHVyblxuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBoLnByb3BzLmhyZWYgPSBoLnByb3BzWydkYXRhLWhyZWYnXVxuICAgICAgICAgICAgaC5wcm9wc1snZGF0YS1ocmVmJ10gPSB1bmRlZmluZWRcbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBjb21wb25lbnRzID0gdGFnc1toLnR5cGVdIHx8IFtdXG4gICAgICAgIGNvbXBvbmVudHMucHVzaChoKVxuICAgICAgICB0YWdzW2gudHlwZV0gPSBjb21wb25lbnRzXG4gICAgICB9KVxuXG4gICAgICBjb25zdCB0aXRsZUNvbXBvbmVudCA9IHRhZ3MudGl0bGUgPyB0YWdzLnRpdGxlWzBdIDogbnVsbFxuICAgICAgbGV0IHRpdGxlID0gJydcbiAgICAgIGlmICh0aXRsZUNvbXBvbmVudCkge1xuICAgICAgICBjb25zdCB7IGNoaWxkcmVuIH0gPSB0aXRsZUNvbXBvbmVudC5wcm9wc1xuICAgICAgICB0aXRsZSA9XG4gICAgICAgICAgdHlwZW9mIGNoaWxkcmVuID09PSAnc3RyaW5nJ1xuICAgICAgICAgICAgPyBjaGlsZHJlblxuICAgICAgICAgICAgOiBBcnJheS5pc0FycmF5KGNoaWxkcmVuKVxuICAgICAgICAgICAgICA/IGNoaWxkcmVuLmpvaW4oJycpXG4gICAgICAgICAgICAgIDogJydcbiAgICAgIH1cbiAgICAgIGlmICh0aXRsZSAhPT0gZG9jdW1lbnQudGl0bGUpIGRvY3VtZW50LnRpdGxlID0gdGl0bGVcbiAgICAgIDtbJ21ldGEnLCAnYmFzZScsICdsaW5rJywgJ3N0eWxlJywgJ3NjcmlwdCddLmZvckVhY2goKHR5cGUpID0+IHtcbiAgICAgICAgdXBkYXRlRWxlbWVudHModHlwZSwgdGFnc1t0eXBlXSB8fCBbXSlcbiAgICAgIH0pXG4gICAgfSxcbiAgfVxufVxuIl0sIm5hbWVzIjpbImluaXRIZWFkTWFuYWdlciIsImlzRXF1YWxOb2RlIiwicmVhY3RFbGVtZW50VG9ET00iLCJ0eXBlIiwicHJvcHMiLCJlbCIsImRvY3VtZW50IiwiY3JlYXRlRWxlbWVudCIsInNldEF0dHJpYnV0ZXNGcm9tUHJvcHMiLCJjaGlsZHJlbiIsImRhbmdlcm91c2x5U2V0SW5uZXJIVE1MIiwiaW5uZXJIVE1MIiwiX19odG1sIiwidGV4dENvbnRlbnQiLCJBcnJheSIsImlzQXJyYXkiLCJqb2luIiwib2xkVGFnIiwibmV3VGFnIiwiSFRNTEVsZW1lbnQiLCJub25jZSIsImdldEF0dHJpYnV0ZSIsImNsb25lVGFnIiwiY2xvbmVOb2RlIiwic2V0QXR0cmlidXRlIiwidXBkYXRlRWxlbWVudHMiLCJwcm9jZXNzIiwiZW52IiwiX19ORVhUX1NUUklDVF9ORVhUX0hFQUQiLCJjb21wb25lbnRzIiwiaGVhZEVsIiwicXVlcnlTZWxlY3RvciIsIm9sZFRhZ3MiLCJTZXQiLCJxdWVyeVNlbGVjdG9yQWxsIiwibWV0YUNoYXJzZXQiLCJhZGQiLCJuZXdUYWdzIiwiaSIsImxlbmd0aCIsImNvbXBvbmVudCIsImlzTmV3IiwiZGVsZXRlIiwicHVzaCIsInBhcmVudE5vZGUiLCJyZW1vdmVDaGlsZCIsInRhZ05hbWUiLCJ0b0xvd2VyQ2FzZSIsInByZXBlbmQiLCJhcHBlbmRDaGlsZCIsImdldEVsZW1lbnRzQnlUYWdOYW1lIiwiaGVhZENvdW50RWwiLCJOT0RFX0VOViIsImNvbnNvbGUiLCJlcnJvciIsImhlYWRDb3VudCIsIk51bWJlciIsImNvbnRlbnQiLCJqIiwicHJldmlvdXNFbGVtZW50U2libGluZyIsIm1hcCIsImZpbHRlciIsImsiLCJsZW4iLCJzcGxpY2UiLCJmb3JFYWNoIiwidCIsImluc2VydEJlZm9yZSIsInRvU3RyaW5nIiwibW91bnRlZEluc3RhbmNlcyIsInVwZGF0ZUhlYWQiLCJoZWFkIiwidGFncyIsImgiLCJocmVmIiwidW5kZWZpbmVkIiwidGl0bGVDb21wb25lbnQiLCJ0aXRsZSJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(pages-dir-browser)/./node_modules/next/dist/client/head-manager.js\n")); - -/***/ }), - -/***/ "(pages-dir-browser)/./node_modules/next/dist/client/index.js": -/*!************************************************!*\ - !*** ./node_modules/next/dist/client/index.js ***! - \************************************************/ -/***/ ((module, exports, __webpack_require__) => { - -"use strict"; -eval(__webpack_require__.ts("/* global location */ // imports polyfill from `@next/polyfill-module` after build.\n\nvar _s = $RefreshSig$(), _s1 = $RefreshSig$(), _s2 = $RefreshSig$();\n\"use strict\";\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n emitter: function() {\n return emitter;\n },\n hydrate: function() {\n return hydrate;\n },\n initialize: function() {\n return initialize;\n },\n router: function() {\n return router;\n },\n version: function() {\n return version;\n }\n});\nconst _interop_require_default = __webpack_require__(/*! @swc/helpers/_/_interop_require_default */ \"(pages-dir-browser)/./node_modules/@swc/helpers/esm/_interop_require_default.js\");\nconst _jsxruntime = __webpack_require__(/*! react/jsx-runtime */ \"(pages-dir-browser)/./node_modules/react/jsx-runtime.js\");\n__webpack_require__(/*! ../build/polyfills/polyfill-module */ \"(pages-dir-browser)/./node_modules/next/dist/build/polyfills/polyfill-module.js\");\nconst _react = /*#__PURE__*/ _interop_require_default._(__webpack_require__(/*! react */ \"(pages-dir-browser)/./node_modules/react/index.js\"));\nconst _client = /*#__PURE__*/ _interop_require_default._(__webpack_require__(/*! react-dom/client */ \"(pages-dir-browser)/./node_modules/react-dom/client.js\"));\nconst _headmanagercontextsharedruntime = __webpack_require__(/*! ../shared/lib/head-manager-context.shared-runtime */ \"(pages-dir-browser)/./node_modules/next/dist/shared/lib/head-manager-context.shared-runtime.js\");\nconst _mitt = /*#__PURE__*/ _interop_require_default._(__webpack_require__(/*! ../shared/lib/mitt */ \"(pages-dir-browser)/./node_modules/next/dist/shared/lib/mitt.js\"));\nconst _routercontextsharedruntime = __webpack_require__(/*! ../shared/lib/router-context.shared-runtime */ \"(pages-dir-browser)/./node_modules/next/dist/shared/lib/router-context.shared-runtime.js\");\nconst _disablesmoothscroll = __webpack_require__(/*! ../shared/lib/router/utils/disable-smooth-scroll */ \"(pages-dir-browser)/./node_modules/next/dist/shared/lib/router/utils/disable-smooth-scroll.js\");\nconst _isdynamic = __webpack_require__(/*! ../shared/lib/router/utils/is-dynamic */ \"(pages-dir-browser)/./node_modules/next/dist/shared/lib/router/utils/is-dynamic.js\");\nconst _querystring = __webpack_require__(/*! ../shared/lib/router/utils/querystring */ \"(pages-dir-browser)/./node_modules/next/dist/shared/lib/router/utils/querystring.js\");\nconst _runtimeconfigexternal = __webpack_require__(/*! ../shared/lib/runtime-config.external */ \"(pages-dir-browser)/./node_modules/next/dist/shared/lib/runtime-config.external.js\");\nconst _utils = __webpack_require__(/*! ../shared/lib/utils */ \"(pages-dir-browser)/./node_modules/next/dist/shared/lib/utils.js\");\nconst _portal = __webpack_require__(/*! ./portal */ \"(pages-dir-browser)/./node_modules/next/dist/client/portal/index.js\");\nconst _headmanager = /*#__PURE__*/ _interop_require_default._(__webpack_require__(/*! ./head-manager */ \"(pages-dir-browser)/./node_modules/next/dist/client/head-manager.js\"));\nconst _pageloader = /*#__PURE__*/ _interop_require_default._(__webpack_require__(/*! ./page-loader */ \"(pages-dir-browser)/./node_modules/next/dist/client/page-loader.js\"));\nconst _routeannouncer = __webpack_require__(/*! ./route-announcer */ \"(pages-dir-browser)/./node_modules/next/dist/client/route-announcer.js\");\nconst _router = __webpack_require__(/*! ./router */ \"(pages-dir-browser)/./node_modules/next/dist/client/router.js\");\nconst _iserror = __webpack_require__(/*! ../lib/is-error */ \"(pages-dir-browser)/./node_modules/next/dist/lib/is-error.js\");\nconst _imageconfigcontextsharedruntime = __webpack_require__(/*! ../shared/lib/image-config-context.shared-runtime */ \"(pages-dir-browser)/./node_modules/next/dist/shared/lib/image-config-context.shared-runtime.js\");\nconst _removebasepath = __webpack_require__(/*! ./remove-base-path */ \"(pages-dir-browser)/./node_modules/next/dist/client/remove-base-path.js\");\nconst _hasbasepath = __webpack_require__(/*! ./has-base-path */ \"(pages-dir-browser)/./node_modules/next/dist/client/has-base-path.js\");\nconst _approutercontextsharedruntime = __webpack_require__(/*! ../shared/lib/app-router-context.shared-runtime */ \"(pages-dir-browser)/./node_modules/next/dist/shared/lib/app-router-context.shared-runtime.js\");\nconst _adapters = __webpack_require__(/*! ../shared/lib/router/adapters */ \"(pages-dir-browser)/./node_modules/next/dist/shared/lib/router/adapters.js\");\nconst _hooksclientcontextsharedruntime = __webpack_require__(/*! ../shared/lib/hooks-client-context.shared-runtime */ \"(pages-dir-browser)/./node_modules/next/dist/shared/lib/hooks-client-context.shared-runtime.js\");\nconst _onrecoverableerror = __webpack_require__(/*! ./react-client-callbacks/on-recoverable-error */ \"(pages-dir-browser)/./node_modules/next/dist/client/react-client-callbacks/on-recoverable-error.js\");\nconst _tracer = /*#__PURE__*/ _interop_require_default._(__webpack_require__(/*! ./tracing/tracer */ \"(pages-dir-browser)/./node_modules/next/dist/client/tracing/tracer.js\"));\nconst _isnextroutererror = __webpack_require__(/*! ./components/is-next-router-error */ \"(pages-dir-browser)/./node_modules/next/dist/client/components/is-next-router-error.js\");\nconst version = \"15.4.1\";\nlet router;\nconst emitter = (0, _mitt.default)();\nconst looseToArray = (input)=>[].slice.call(input);\nlet initialData;\nlet defaultLocale = undefined;\nlet asPath;\nlet pageLoader;\nlet appElement;\nlet headManager;\nlet initialMatchesMiddleware = false;\nlet lastAppProps;\nlet lastRenderReject;\nlet devClient;\nlet CachedApp, onPerfEntry;\nlet CachedComponent;\nclass Container extends _react.default.Component {\n componentDidCatch(componentErr, info) {\n this.props.fn(componentErr, info);\n }\n componentDidMount() {\n this.scrollToHash();\n // We need to replace the router state if:\n // - the page was (auto) exported and has a query string or search (hash)\n // - it was auto exported and is a dynamic route (to provide params)\n // - if it is a client-side skeleton (fallback render)\n // - if middleware matches the current page (may have rewrite params)\n // - if rewrites in next.config.js match (may have rewrite params)\n if (router.isSsr && (initialData.isFallback || initialData.nextExport && ((0, _isdynamic.isDynamicRoute)(router.pathname) || location.search || false || initialMatchesMiddleware) || initialData.props && initialData.props.__N_SSG && (location.search || false || initialMatchesMiddleware))) {\n // update query on mount for exported pages\n router.replace(router.pathname + '?' + String((0, _querystring.assign)((0, _querystring.urlQueryToSearchParams)(router.query), new URLSearchParams(location.search))), asPath, {\n // @ts-ignore\n // WARNING: `_h` is an internal option for handing Next.js\n // client-side hydration. Your app should _never_ use this property.\n // It may change at any time without notice.\n _h: 1,\n // Fallback pages must trigger the data fetch, so the transition is\n // not shallow.\n // Other pages (strictly updating query) happens shallowly, as data\n // requirements would already be present.\n shallow: !initialData.isFallback && !initialMatchesMiddleware\n }).catch((err)=>{\n if (!err.cancelled) throw err;\n });\n }\n }\n componentDidUpdate() {\n this.scrollToHash();\n }\n scrollToHash() {\n let { hash } = location;\n hash = hash && hash.substring(1);\n if (!hash) return;\n const el = document.getElementById(hash);\n if (!el) return;\n // If we call scrollIntoView() in here without a setTimeout\n // it won't scroll properly.\n setTimeout(()=>el.scrollIntoView(), 0);\n }\n render() {\n if (false) {} else {\n const { PagesDevOverlayBridge } = __webpack_require__(/*! ../next-devtools/userspace/pages/pages-dev-overlay-setup */ \"(pages-dir-browser)/./node_modules/next/dist/next-devtools/userspace/pages/pages-dev-overlay-setup.js\");\n return /*#__PURE__*/ (0, _jsxruntime.jsx)(PagesDevOverlayBridge, {\n children: this.props.children\n });\n }\n }\n}\nasync function initialize(opts) {\n if (opts === void 0) opts = {};\n // This makes sure this specific lines are removed in production\n if (true) {\n _tracer.default.onSpanEnd((__webpack_require__(/*! ./tracing/report-to-socket */ \"(pages-dir-browser)/./node_modules/next/dist/client/tracing/report-to-socket.js\")[\"default\"]));\n devClient = opts.devClient;\n }\n initialData = JSON.parse(document.getElementById('__NEXT_DATA__').textContent);\n window.__NEXT_DATA__ = initialData;\n defaultLocale = initialData.defaultLocale;\n const prefix = initialData.assetPrefix || '';\n self.__next_set_public_path__(\"\" + prefix + \"/_next/\") //eslint-disable-line\n ;\n // Initialize next/config with the environment configuration\n (0, _runtimeconfigexternal.setConfig)({\n serverRuntimeConfig: {},\n publicRuntimeConfig: initialData.runtimeConfig || {}\n });\n asPath = (0, _utils.getURL)();\n // make sure not to attempt stripping basePath for 404s\n if ((0, _hasbasepath.hasBasePath)(asPath)) {\n asPath = (0, _removebasepath.removeBasePath)(asPath);\n }\n if (false) {}\n if (initialData.scriptLoader) {\n const { initScriptLoader } = __webpack_require__(/*! ./script */ \"(pages-dir-browser)/./node_modules/next/dist/client/script.js\");\n initScriptLoader(initialData.scriptLoader);\n }\n pageLoader = new _pageloader.default(initialData.buildId, prefix);\n const register = (param)=>{\n let [r, f] = param;\n return pageLoader.routeLoader.onEntrypoint(r, f);\n };\n if (window.__NEXT_P) {\n // Defer page registration for another tick. This will increase the overall\n // latency in hydrating the page, but reduce the total blocking time.\n window.__NEXT_P.map((p)=>setTimeout(()=>register(p), 0));\n }\n window.__NEXT_P = [];\n window.__NEXT_P.push = register;\n headManager = (0, _headmanager.default)();\n headManager.getIsSsr = ()=>{\n return router.isSsr;\n };\n appElement = document.getElementById('__next');\n return {\n assetPrefix: prefix\n };\n}\nfunction renderApp(App, appProps) {\n return /*#__PURE__*/ (0, _jsxruntime.jsx)(App, {\n ...appProps\n });\n}\nfunction AppContainer(param) {\n _s();\n let { children } = param;\n // Create a memoized value for next/navigation router context.\n const adaptedForAppRouter = _react.default.useMemo({\n \"AppContainer.useMemo[adaptedForAppRouter]\": ()=>{\n return (0, _adapters.adaptForAppRouterInstance)(router);\n }\n }[\"AppContainer.useMemo[adaptedForAppRouter]\"], []);\n var _self___NEXT_DATA___autoExport;\n return /*#__PURE__*/ (0, _jsxruntime.jsx)(Container, {\n fn: (error)=>// eslint-disable-next-line @typescript-eslint/no-use-before-define\n renderError({\n App: CachedApp,\n err: error\n }).catch((err)=>console.error('Error rendering page: ', err)),\n children: /*#__PURE__*/ (0, _jsxruntime.jsx)(_approutercontextsharedruntime.AppRouterContext.Provider, {\n value: adaptedForAppRouter,\n children: /*#__PURE__*/ (0, _jsxruntime.jsx)(_hooksclientcontextsharedruntime.SearchParamsContext.Provider, {\n value: (0, _adapters.adaptForSearchParams)(router),\n children: /*#__PURE__*/ (0, _jsxruntime.jsx)(_adapters.PathnameContextProviderAdapter, {\n router: router,\n isAutoExport: (_self___NEXT_DATA___autoExport = self.__NEXT_DATA__.autoExport) != null ? _self___NEXT_DATA___autoExport : false,\n children: /*#__PURE__*/ (0, _jsxruntime.jsx)(_hooksclientcontextsharedruntime.PathParamsContext.Provider, {\n value: (0, _adapters.adaptForPathParams)(router),\n children: /*#__PURE__*/ (0, _jsxruntime.jsx)(_routercontextsharedruntime.RouterContext.Provider, {\n value: (0, _router.makePublicRouterInstance)(router),\n children: /*#__PURE__*/ (0, _jsxruntime.jsx)(_headmanagercontextsharedruntime.HeadManagerContext.Provider, {\n value: headManager,\n children: /*#__PURE__*/ (0, _jsxruntime.jsx)(_imageconfigcontextsharedruntime.ImageConfigContext.Provider, {\n value: {\"deviceSizes\":[640,750,828,1080,1200,1920,2048,3840],\"imageSizes\":[16,32,48,64,96,128,256,384],\"path\":\"/_next/image\",\"loader\":\"default\",\"dangerouslyAllowSVG\":false,\"unoptimized\":false,\"domains\":[],\"remotePatterns\":[]},\n children: children\n })\n })\n })\n })\n })\n })\n })\n });\n}\n_s(AppContainer, \"F6BSfrFQNeqenuPnUMVY/6gI8uE=\");\n_c = AppContainer;\nconst wrapApp = (App)=>(wrappedAppProps)=>{\n const appProps = {\n ...wrappedAppProps,\n Component: CachedComponent,\n err: initialData.err,\n router\n };\n return /*#__PURE__*/ (0, _jsxruntime.jsx)(AppContainer, {\n children: renderApp(App, appProps)\n });\n };\n// This method handles all runtime and debug errors.\n// 404 and 500 errors are special kind of errors\n// and they are still handle via the main render method.\nfunction renderError(renderErrorProps) {\n let { App, err } = renderErrorProps;\n // In development runtime errors are caught by our overlay\n // In production we catch runtime errors using componentDidCatch which will trigger renderError\n if (true) {\n // A Next.js rendering runtime error is always unrecoverable\n // FIXME: let's make this recoverable (error in GIP client-transition)\n devClient.onUnrecoverableError();\n // We need to render an empty <App> so that the `<ReactDevOverlay>` can\n // render itself.\n // TODO: Fix disabled eslint rule\n // eslint-disable-next-line @typescript-eslint/no-use-before-define\n return doRender({\n App: ()=>null,\n props: {},\n Component: ()=>null,\n styleSheets: []\n });\n }\n // Make sure we log the error to the console, otherwise users can't track down issues.\n console.error(err);\n console.error(\"A client-side exception has occurred, see here for more info: https://nextjs.org/docs/messages/client-side-exception-occurred\");\n return pageLoader.loadPage('/_error').then((param)=>{\n let { page: ErrorComponent, styleSheets } = param;\n return (lastAppProps == null ? void 0 : lastAppProps.Component) === ErrorComponent ? __webpack_require__.e(/*! import() */ \"_pages-dir-browser_node_modules_next_dist_pages__error_js\").then(__webpack_require__.t.bind(__webpack_require__, /*! ../pages/_error */ \"(pages-dir-browser)/./node_modules/next/dist/pages/_error.js\", 23)).then((errorModule)=>{\n return __webpack_require__.e(/*! import() */ \"_pages-dir-browser_node_modules_next_dist_pages__app_js\").then(__webpack_require__.t.bind(__webpack_require__, /*! ../pages/_app */ \"(pages-dir-browser)/./node_modules/next/dist/pages/_app.js\", 23)).then((appModule)=>{\n App = appModule.default;\n renderErrorProps.App = App;\n return errorModule;\n });\n }).then((m)=>({\n ErrorComponent: m.default,\n styleSheets: []\n })) : {\n ErrorComponent,\n styleSheets\n };\n }).then((param)=>{\n let { ErrorComponent, styleSheets } = param;\n var _renderErrorProps_props;\n // In production we do a normal render with the `ErrorComponent` as component.\n // If we've gotten here upon initial render, we can use the props from the server.\n // Otherwise, we need to call `getInitialProps` on `App` before mounting.\n const AppTree = wrapApp(App);\n const appCtx = {\n Component: ErrorComponent,\n AppTree,\n router,\n ctx: {\n err,\n pathname: initialData.page,\n query: initialData.query,\n asPath,\n AppTree\n }\n };\n return Promise.resolve(((_renderErrorProps_props = renderErrorProps.props) == null ? void 0 : _renderErrorProps_props.err) ? renderErrorProps.props : (0, _utils.loadGetInitialProps)(App, appCtx)).then((initProps)=>// eslint-disable-next-line @typescript-eslint/no-use-before-define\n doRender({\n ...renderErrorProps,\n err,\n Component: ErrorComponent,\n styleSheets,\n props: initProps\n }));\n });\n}\n// Dummy component that we render as a child of Root so that we can\n// toggle the correct styles before the page is rendered.\nfunction Head(param) {\n _s1();\n let { callback } = param;\n // We use `useLayoutEffect` to guarantee the callback is executed\n // as soon as React flushes the update.\n _react.default.useLayoutEffect({\n \"Head.useLayoutEffect\": ()=>callback()\n }[\"Head.useLayoutEffect\"], [\n callback\n ]);\n return null;\n}\n_s1(Head, \"n7/vCynhJvM+pLkyL2DMQUF0odM=\");\n_c1 = Head;\nconst performanceMarks = {\n navigationStart: 'navigationStart',\n beforeRender: 'beforeRender',\n afterRender: 'afterRender',\n afterHydrate: 'afterHydrate',\n routeChange: 'routeChange'\n};\nconst performanceMeasures = {\n hydration: 'Next.js-hydration',\n beforeHydration: 'Next.js-before-hydration',\n routeChangeToRender: 'Next.js-route-change-to-render',\n render: 'Next.js-render'\n};\nlet reactRoot = null;\n// On initial render a hydrate should always happen\nlet shouldHydrate = true;\nfunction clearMarks() {\n ;\n [\n performanceMarks.beforeRender,\n performanceMarks.afterHydrate,\n performanceMarks.afterRender,\n performanceMarks.routeChange\n ].forEach((mark)=>performance.clearMarks(mark));\n}\nfunction markHydrateComplete() {\n if (!_utils.ST) return;\n performance.mark(performanceMarks.afterHydrate) // mark end of hydration\n ;\n const hasBeforeRenderMark = performance.getEntriesByName(performanceMarks.beforeRender, 'mark').length;\n if (hasBeforeRenderMark) {\n const beforeHydrationMeasure = performance.measure(performanceMeasures.beforeHydration, performanceMarks.navigationStart, performanceMarks.beforeRender);\n const hydrationMeasure = performance.measure(performanceMeasures.hydration, performanceMarks.beforeRender, performanceMarks.afterHydrate);\n if ( true && // Old versions of Safari don't return `PerformanceMeasure`s from `performance.measure()`\n beforeHydrationMeasure && hydrationMeasure) {\n _tracer.default.startSpan('navigation-to-hydration', {\n startTime: performance.timeOrigin + beforeHydrationMeasure.startTime,\n attributes: {\n pathname: location.pathname,\n query: location.search\n }\n }).end(performance.timeOrigin + hydrationMeasure.startTime + hydrationMeasure.duration);\n }\n }\n if (onPerfEntry) {\n performance.getEntriesByName(performanceMeasures.hydration).forEach(onPerfEntry);\n }\n clearMarks();\n}\nfunction markRenderComplete() {\n if (!_utils.ST) return;\n performance.mark(performanceMarks.afterRender) // mark end of render\n ;\n const navStartEntries = performance.getEntriesByName(performanceMarks.routeChange, 'mark');\n if (!navStartEntries.length) return;\n const hasBeforeRenderMark = performance.getEntriesByName(performanceMarks.beforeRender, 'mark').length;\n if (hasBeforeRenderMark) {\n performance.measure(performanceMeasures.routeChangeToRender, navStartEntries[0].name, performanceMarks.beforeRender);\n performance.measure(performanceMeasures.render, performanceMarks.beforeRender, performanceMarks.afterRender);\n if (onPerfEntry) {\n performance.getEntriesByName(performanceMeasures.render).forEach(onPerfEntry);\n performance.getEntriesByName(performanceMeasures.routeChangeToRender).forEach(onPerfEntry);\n }\n }\n clearMarks();\n [\n performanceMeasures.routeChangeToRender,\n performanceMeasures.render\n ].forEach((measure)=>performance.clearMeasures(measure));\n}\nfunction renderReactElement(domEl, fn) {\n // mark start of hydrate/render\n if (_utils.ST) {\n performance.mark(performanceMarks.beforeRender);\n }\n const reactEl = fn(shouldHydrate ? markHydrateComplete : markRenderComplete);\n if (!reactRoot) {\n // Unlike with createRoot, you don't need a separate root.render() call here\n reactRoot = _client.default.hydrateRoot(domEl, reactEl, {\n onRecoverableError: _onrecoverableerror.onRecoverableError\n });\n // TODO: Remove shouldHydrate variable when React 18 is stable as it can depend on `reactRoot` existing\n shouldHydrate = false;\n } else {\n const startTransition = _react.default.startTransition;\n startTransition(()=>{\n reactRoot.render(reactEl);\n });\n }\n}\nfunction Root(param) {\n _s2();\n let { callbacks, children } = param;\n // We use `useLayoutEffect` to guarantee the callbacks are executed\n // as soon as React flushes the update\n _react.default.useLayoutEffect({\n \"Root.useLayoutEffect\": ()=>callbacks.forEach({\n \"Root.useLayoutEffect\": (callback)=>callback()\n }[\"Root.useLayoutEffect\"])\n }[\"Root.useLayoutEffect\"], [\n callbacks\n ]);\n if (false) {}\n return children;\n}\n_s2(Root, \"n7/vCynhJvM+pLkyL2DMQUF0odM=\");\n_c2 = Root;\nfunction doRender(input) {\n let { App, Component, props, err } = input;\n let styleSheets = 'initial' in input ? undefined : input.styleSheets;\n Component = Component || lastAppProps.Component;\n props = props || lastAppProps.props;\n const appProps = {\n ...props,\n Component,\n err,\n router\n };\n // lastAppProps has to be set before ReactDom.render to account for ReactDom throwing an error.\n lastAppProps = appProps;\n let canceled = false;\n let resolvePromise;\n const renderPromise = new Promise((resolve, reject)=>{\n if (lastRenderReject) {\n lastRenderReject();\n }\n resolvePromise = ()=>{\n lastRenderReject = null;\n resolve();\n };\n lastRenderReject = ()=>{\n canceled = true;\n lastRenderReject = null;\n const error = Object.defineProperty(new Error('Cancel rendering route'), \"__NEXT_ERROR_CODE\", {\n value: \"E503\",\n enumerable: false,\n configurable: true\n });\n error.cancelled = true;\n reject(error);\n };\n });\n // This function has a return type to ensure it doesn't start returning a\n // Promise. It should remain synchronous.\n function onStart() {\n if (!styleSheets || // We use `style-loader` in development, so we don't need to do anything\n // unless we're in production:\n \"development\" !== 'production') {\n return false;\n }\n const currentStyleTags = looseToArray(document.querySelectorAll('style[data-n-href]'));\n const currentHrefs = new Set(currentStyleTags.map((tag)=>tag.getAttribute('data-n-href')));\n const noscript = document.querySelector('noscript[data-n-css]');\n const nonce = noscript == null ? void 0 : noscript.getAttribute('data-n-css');\n styleSheets.forEach((param)=>{\n let { href, text } = param;\n if (!currentHrefs.has(href)) {\n const styleTag = document.createElement('style');\n styleTag.setAttribute('data-n-href', href);\n styleTag.setAttribute('media', 'x');\n if (nonce) {\n styleTag.setAttribute('nonce', nonce);\n }\n document.head.appendChild(styleTag);\n styleTag.appendChild(document.createTextNode(text));\n }\n });\n return true;\n }\n function onHeadCommit() {\n if (false) {}\n if (input.scroll) {\n const { x, y } = input.scroll;\n (0, _disablesmoothscroll.disableSmoothScrollDuringRouteTransition)(()=>{\n window.scrollTo(x, y);\n });\n }\n }\n function onRootCommit() {\n resolvePromise();\n }\n onStart();\n const elem = /*#__PURE__*/ (0, _jsxruntime.jsxs)(_jsxruntime.Fragment, {\n children: [\n /*#__PURE__*/ (0, _jsxruntime.jsx)(Head, {\n callback: onHeadCommit\n }),\n /*#__PURE__*/ (0, _jsxruntime.jsxs)(AppContainer, {\n children: [\n renderApp(App, appProps),\n /*#__PURE__*/ (0, _jsxruntime.jsx)(_portal.Portal, {\n type: \"next-route-announcer\",\n children: /*#__PURE__*/ (0, _jsxruntime.jsx)(_routeannouncer.RouteAnnouncer, {})\n })\n ]\n })\n ]\n });\n // We catch runtime errors using componentDidCatch which will trigger renderError\n renderReactElement(appElement, (callback)=>/*#__PURE__*/ (0, _jsxruntime.jsx)(Root, {\n callbacks: [\n callback,\n onRootCommit\n ],\n children: true ? /*#__PURE__*/ (0, _jsxruntime.jsx)(_react.default.StrictMode, {\n children: elem\n }) : 0\n }));\n return renderPromise;\n}\nasync function render(renderingProps) {\n // if an error occurs in a server-side page (e.g. in getInitialProps),\n // skip re-rendering the error page client-side as data-fetching operations\n // will already have been done on the server and NEXT_DATA contains the correct\n // data for straight-forward hydration of the error page\n if (renderingProps.err && // renderingProps.Component might be undefined if there is a top/module-level error\n (typeof renderingProps.Component === 'undefined' || !renderingProps.isHydratePass)) {\n await renderError(renderingProps);\n return;\n }\n try {\n await doRender(renderingProps);\n } catch (err) {\n const renderErr = (0, _iserror.getProperError)(err);\n // bubble up cancelation errors\n if (renderErr.cancelled) {\n throw renderErr;\n }\n if (true) {\n // Ensure this error is displayed in the overlay in development\n setTimeout(()=>{\n throw renderErr;\n });\n }\n await renderError({\n ...renderingProps,\n err: renderErr\n });\n }\n}\nasync function hydrate(opts) {\n let initialErr = initialData.err;\n try {\n const appEntrypoint = await pageLoader.routeLoader.whenEntrypoint('/_app');\n if ('error' in appEntrypoint) {\n throw appEntrypoint.error;\n }\n const { component: app, exports: mod } = appEntrypoint;\n CachedApp = app;\n if (mod && mod.reportWebVitals) {\n onPerfEntry = (param)=>{\n let { id, name, startTime, value, duration, entryType, entries, attribution } = param;\n // Combines timestamp with random number for unique ID\n const uniqueID = Date.now() + \"-\" + (Math.floor(Math.random() * (9e12 - 1)) + 1e12);\n let perfStartEntry;\n if (entries && entries.length) {\n perfStartEntry = entries[0].startTime;\n }\n const webVitals = {\n id: id || uniqueID,\n name,\n startTime: startTime || perfStartEntry,\n value: value == null ? duration : value,\n label: entryType === 'mark' || entryType === 'measure' ? 'custom' : 'web-vital'\n };\n if (attribution) {\n webVitals.attribution = attribution;\n }\n mod.reportWebVitals(webVitals);\n };\n }\n const pageEntrypoint = // error, so we need to skip waiting for the entrypoint.\n true && initialData.err ? {\n error: initialData.err\n } : await pageLoader.routeLoader.whenEntrypoint(initialData.page);\n if ('error' in pageEntrypoint) {\n throw pageEntrypoint.error;\n }\n CachedComponent = pageEntrypoint.component;\n if (true) {\n const { isValidElementType } = __webpack_require__(/*! next/dist/compiled/react-is */ \"(pages-dir-browser)/./node_modules/next/dist/compiled/react-is/index.js\");\n if (!isValidElementType(CachedComponent)) {\n throw Object.defineProperty(new Error('The default export is not a React Component in page: \"' + initialData.page + '\"'), \"__NEXT_ERROR_CODE\", {\n value: \"E286\",\n enumerable: false,\n configurable: true\n });\n }\n }\n } catch (error) {\n // This catches errors like throwing in the top level of a module\n initialErr = (0, _iserror.getProperError)(error);\n }\n if (true) {\n const getServerError = (__webpack_require__(/*! ../server/dev/node-stack-frames */ \"(pages-dir-browser)/./node_modules/next/dist/server/dev/node-stack-frames.js\").getServerError);\n // Server-side runtime errors need to be re-thrown on the client-side so\n // that the overlay is rendered.\n if (initialErr) {\n if (initialErr === initialData.err) {\n setTimeout(()=>{\n let error;\n try {\n // Generate a new error object. We `throw` it because some browsers\n // will set the `stack` when thrown, and we want to ensure ours is\n // not overridden when we re-throw it below.\n throw Object.defineProperty(new Error(initialErr.message), \"__NEXT_ERROR_CODE\", {\n value: \"E394\",\n enumerable: false,\n configurable: true\n });\n } catch (e) {\n error = e;\n }\n error.name = initialErr.name;\n error.stack = initialErr.stack;\n const errSource = initialErr.source;\n // In development, error the navigation API usage in runtime,\n // since it's not allowed to be used in pages router as it doesn't contain error boundary like app router.\n if ((0, _isnextroutererror.isNextRouterError)(initialErr)) {\n error.message = 'Next.js navigation API is not allowed to be used in Pages Router.';\n }\n throw getServerError(error, errSource);\n });\n } else {\n setTimeout(()=>{\n throw initialErr;\n });\n }\n }\n }\n if (window.__NEXT_PRELOADREADY) {\n await window.__NEXT_PRELOADREADY(initialData.dynamicIds);\n }\n router = (0, _router.createRouter)(initialData.page, initialData.query, asPath, {\n initialProps: initialData.props,\n pageLoader,\n App: CachedApp,\n Component: CachedComponent,\n wrapApp,\n err: initialErr,\n isFallback: Boolean(initialData.isFallback),\n subscription: (info, App, scroll)=>render(Object.assign({}, info, {\n App,\n scroll\n })),\n locale: initialData.locale,\n locales: initialData.locales,\n defaultLocale,\n domainLocales: initialData.domainLocales,\n isPreview: initialData.isPreview\n });\n initialMatchesMiddleware = await router._initialMatchesMiddlewarePromise;\n const renderCtx = {\n App: CachedApp,\n initial: true,\n Component: CachedComponent,\n props: initialData.props,\n err: initialErr,\n isHydratePass: true\n };\n if (opts == null ? void 0 : opts.beforeRender) {\n await opts.beforeRender();\n }\n render(renderCtx);\n}\nif ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=index.js.map\nvar _c, _c1, _c2;\n$RefreshReg$(_c, \"AppContainer\");\n$RefreshReg$(_c1, \"Head\");\n$RefreshReg$(_c2, \"Root\");\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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvY2xpZW50L2luZGV4LmpzIiwibWFwcGluZ3MiOiJBQUFBLG1CQUFtQixHQUNuQiw2REFBNkQ7Ozs7Ozs7Ozs7Ozs7OztJQTBFaERBLE9BQU87ZUFBUEE7O0lBaXdCU0MsT0FBTztlQUFQQTs7SUE5b0JBQyxVQUFVO2VBQVZBOztJQXBIWEMsTUFBTTtlQUFOQTs7SUFERUMsT0FBTztlQUFQQTs7Ozs7b0JBdkVOOzRFQVF5Qjs2RUFDWDs2REFDYzsyRUFDbEI7d0RBRWE7aURBQzJCO3VDQUMxQjt5Q0FJeEI7bURBQ21CO21DQUNzQjtvQ0FFekI7a0ZBQ0s7aUZBQ0w7NENBRVE7b0NBQ3dCO3FDQUN4Qjs2REFDSTs0Q0FFSjt5Q0FDSDsyREFDSztzQ0FNMUI7NkRBSUE7Z0RBQzRCOzZFQUNoQjsrQ0FDZTtBQXdCM0IsTUFBTUEsVUFBVUMsUUFBUUM7QUFDeEIsSUFBSUg7QUFDSixNQUFNSCxVQUErQlEsQ0FBQUEsR0FBQUEsTUFBQUEsT0FBQUE7QUFFNUMsTUFBTUMsZUFBZSxDQUFlQyxRQUFvQixFQUFFLENBQUNDLEtBQUssQ0FBQ0MsSUFBSSxDQUFDRjtBQUV0RSxJQUFJRztBQUNKLElBQUlDLGdCQUFvQ0M7QUFDeEMsSUFBSUM7QUFDSixJQUFJQztBQUNKLElBQUlDO0FBQ0osSUFBSUM7QUFLSixJQUFJQywyQkFBMkI7QUFDL0IsSUFBSUM7QUFFSixJQUFJQztBQUNKLElBQUlDO0FBRUosSUFBSUMsV0FBeUJDO0FBQzdCLElBQUlDO0FBRUosTUFBTUMsa0JBQWtCQyxPQUFBQSxPQUFLLENBQUNDLFNBQVM7SUFJckNDLGtCQUFrQkMsWUFBbUIsRUFBRUMsSUFBUyxFQUFFO1FBQ2hELElBQUksQ0FBQ0MsS0FBSyxDQUFDQyxFQUFFLENBQUNILGNBQWNDO0lBQzlCO0lBRUFHLG9CQUFvQjtRQUNsQixJQUFJLENBQUNDLFlBQVk7UUFFakIsMENBQTBDO1FBQzFDLHlFQUF5RTtRQUN6RSxv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MUJKLFNBQVNsRixZQUFZa0YsT0FBTztRQUM1QmpGO1FBQ0FpUyxlQUFlbFMsWUFBWWtTLGFBQWE7UUFDeENDLFdBQVduUyxZQUFZbVMsU0FBUztJQUNsQztJQUVBNVIsMkJBQTJCLE1BQU1qQixPQUFPOFMsZ0NBQWdDO0lBRXhFLE1BQU1DLFlBQTZCO1FBQ2pDM0wsS0FBSy9GO1FBQ0wyUixTQUFTO1FBQ1R0UixXQUFXSDtRQUNYTyxPQUFPcEIsWUFBWW9CLEtBQUs7UUFDeEJzQixLQUFLb047UUFDTEgsZUFBZTtJQUNqQjtJQUVBLElBQUlsTSxRQUFBQSxPQUFBQSxLQUFBQSxJQUFBQSxLQUFNa0csWUFBWSxFQUFFO1FBQ3RCLE1BQU1sRyxLQUFLa0csWUFBWTtJQUN6QjtJQUVBdkcsT0FBT2lQO0FBQ1QiLCJzb3VyY2VzIjpbIkQ6XFxzcmNcXGNsaWVudFxcaW5kZXgudHN4Il0sInNvdXJjZXNDb250ZW50IjpbIi8qIGdsb2JhbCBsb2NhdGlvbiAqL1xuLy8gaW1wb3J0cyBwb2x5ZmlsbCBmcm9tIGBAbmV4dC9wb2x5ZmlsbC1tb2R1bGVgIGFmdGVyIGJ1aWxkLlxuaW1wb3J0ICcuLi9idWlsZC9wb2x5ZmlsbHMvcG9seWZpbGwtbW9kdWxlJ1xuaW1wb3J0IHR5cGUgUm91dGVyIGZyb20gJy4uL3NoYXJlZC9saWIvcm91dGVyL3JvdXRlcidcbmltcG9ydCB0eXBlIHtcbiAgQXBwQ29tcG9uZW50LFxuICBBcHBQcm9wcyxcbiAgUHJpdmF0ZVJvdXRlSW5mbyxcbn0gZnJvbSAnLi4vc2hhcmVkL2xpYi9yb3V0ZXIvcm91dGVyJ1xuXG5pbXBvcnQgUmVhY3QsIHsgdHlwZSBKU1ggfSBmcm9tICdyZWFjdCdcbmltcG9ydCBSZWFjdERPTSBmcm9tICdyZWFjdC1kb20vY2xpZW50J1xuaW1wb3J0IHsgSGVhZE1hbmFnZXJDb250ZXh0IH0gZnJvbSAnLi4vc2hhcmVkL2xpYi9oZWFkLW1hbmFnZXItY29udGV4dC5zaGFyZWQtcnVudGltZSdcbmltcG9ydCBtaXR0IGZyb20gJy4uL3NoYXJlZC9saWIvbWl0dCdcbmltcG9ydCB0eXBlIHsgTWl0dEVtaXR0ZXIgfSBmcm9tICcuLi9zaGFyZWQvbGliL21pdHQnXG5pbXBvcnQgeyBSb3V0ZXJDb250ZXh0IH0gZnJvbSAnLi4vc2hhcmVkL2xpYi9yb3V0ZXItY29udGV4dC5zaGFyZWQtcnVudGltZSdcbmltcG9ydCB7IGRpc2FibGVTbW9vdGhTY3JvbGxEdXJpbmdSb3V0ZVRyYW5zaXRpb24gfSBmcm9tICcuLi9zaGFyZWQvbGliL3JvdXRlci91dGlscy9kaXNhYmxlLXNtb290aC1zY3JvbGwnXG5pbXBvcnQgeyBpc0R5bmFtaWNSb3V0ZSB9IGZyb20gJy4uL3NoYXJlZC9saWIvcm91dGVyL3V0aWxzL2lzLWR5bmFtaWMnXG5pbXBvcnQge1xuICB1cmxRdWVyeVRvU2VhcmNoUGFyYW1zLFxuICBhc3NpZ24sXG59IGZyb20gJy4uL3NoYXJlZC9saWIvcm91dGVyL3V0aWxzL3F1ZXJ5c3RyaW5nJ1xuaW1wb3J0IHsgc2V0Q29uZmlnIH0gZnJvbSAnLi4vc2hhcmVkL2xpYi9ydW50aW1lLWNvbmZpZy5leHRlcm5hbCdcbmltcG9ydCB7IGdldFVSTCwgbG9hZEdldEluaXRpYWxQcm9wcywgU1QgfSBmcm9tICcuLi9zaGFyZWQvbGliL3V0aWxzJ1xuaW1wb3J0IHR5cGUgeyBOZXh0V2ViVml0YWxzTWV0cmljLCBORVhUX0RBVEEgfSBmcm9tICcuLi9zaGFyZWQvbGliL3V0aWxzJ1xuaW1wb3J0IHsgUG9ydGFsIH0gZnJvbSAnLi9wb3J0YWwnXG5pbXBvcnQgaW5pdEhlYWRNYW5hZ2VyIGZyb20gJy4vaGVhZC1tYW5hZ2VyJ1xuaW1wb3J0IFBhZ2VMb2FkZXIgZnJvbSAnLi9wYWdlLWxvYWRlcidcbmltcG9ydCB0eXBlIHsgU3R5bGVTaGVldFR1cGxlIH0gZnJvbSAnLi9wYWdlLWxvYWRlcidcbmltcG9ydCB7IFJvdXRlQW5ub3VuY2VyIH0gZnJvbSAnLi9yb3V0ZS1hbm5vdW5jZXInXG5pbXBvcnQgeyBjcmVhdGVSb3V0ZXIsIG1ha2VQdWJsaWNSb3V0ZXJJbnN0YW5jZSB9IGZyb20gJy4vcm91dGVyJ1xuaW1wb3J0IHsgZ2V0UHJvcGVyRXJyb3IgfSBmcm9tICcuLi9saWIvaXMtZXJyb3InXG5pbXBvcnQgeyBJbWFnZUNvbmZpZ0NvbnRleHQgfSBmcm9tICcuLi9zaGFyZWQvbGliL2ltYWdlLWNvbmZpZy1jb250ZXh0LnNoYXJlZC1ydW50aW1lJ1xuaW1wb3J0IHR5cGUgeyBJbWFnZUNvbmZpZ0NvbXBsZXRlIH0gZnJvbSAnLi4vc2hhcmVkL2xpYi9pbWFnZS1jb25maWcnXG5pbXBvcnQgeyByZW1vdmVCYXNlUGF0aCB9IGZyb20gJy4vcmVtb3ZlLWJhc2UtcGF0aCdcbmltcG9ydCB7IGhhc0Jhc2VQYXRoIH0gZnJvbSAnLi9oYXMtYmFzZS1wYXRoJ1xuaW1wb3J0IHsgQXBwUm91dGVyQ29udGV4dCB9IGZyb20gJy4uL3NoYXJlZC9saWIvYXBwLXJvdXRlci1jb250ZXh0LnNoYXJlZC1ydW50aW1lJ1xuaW1wb3J0IHtcbiAgYWRhcHRGb3JBcHBSb3V0ZXJJbnN0YW5jZSxcbiAgYWRhcHRGb3JQYXRoUGFyYW1zLFxuICBhZGFwdEZvclNlYXJjaFBhcmFtcyxcbiAgUGF0aG5hbWVDb250ZXh0UHJvdmlkZXJBZGFwdGVyLFxufSBmcm9tICcuLi9zaGFyZWQvbGliL3JvdXRlci9hZGFwdGVycydcbmltcG9ydCB7XG4gIFNlYXJjaFBhcmFtc0NvbnRleHQsXG4gIFBhdGhQYXJhbXNDb250ZXh0LFxufSBmcm9tICcuLi9zaGFyZWQvbGliL2hvb2tzLWNsaWVudC1jb250ZXh0LnNoYXJlZC1ydW50aW1lJ1xuaW1wb3J0IHsgb25SZWNvdmVyYWJsZUVycm9yIH0gZnJvbSAnLi9yZWFjdC1jbGllbnQtY2FsbGJhY2tzL29uLXJlY292ZXJhYmxlLWVycm9yJ1xuaW1wb3J0IHRyYWNlciBmcm9tICcuL3RyYWNpbmcvdHJhY2VyJ1xuaW1wb3J0IHsgaXNOZXh0Um91dGVyRXJyb3IgfSBmcm9tICcuL2NvbXBvbmVudHMvaXMtbmV4dC1yb3V0ZXItZXJyb3InXG5cbi8vLyA8cmVmZXJlbmNlIHR5cGVzPVwicmVhY3QtZG9tL2V4cGVyaW1lbnRhbFwiIC8+XG5cbmRlY2xhcmUgZ2xvYmFsIHtcbiAgaW50ZXJmYWNlIFdpbmRvdyB7XG4gICAgLyogdGVzdCBmbnMgKi9cbiAgICBfX05FWFRfSFlEUkFURUQ/OiBib29sZWFuXG4gICAgX19ORVhUX0hZRFJBVEVEX0FUPzogbnVtYmVyXG4gICAgX19ORVhUX0hZRFJBVEVEX0NCPzogKCkgPT4gdm9pZFxuXG4gICAgLyogcHJvZCAqL1xuICAgIF9fTkVYVF9EQVRBX186IE5FWFRfREFUQVxuICAgIF9fTkVYVF9QOiBhbnlbXVxuICB9XG59XG50eXBlIFJlbmRlclJvdXRlSW5mbyA9IFByaXZhdGVSb3V0ZUluZm8gJiB7XG4gIEFwcDogQXBwQ29tcG9uZW50XG4gIHNjcm9sbD86IHsgeDogbnVtYmVyOyB5OiBudW1iZXIgfSB8IG51bGxcbiAgaXNIeWRyYXRlUGFzcz86IGJvb2xlYW5cbn1cbnR5cGUgUmVuZGVyRXJyb3JQcm9wcyA9IE9taXQ8UmVuZGVyUm91dGVJbmZvLCAnQ29tcG9uZW50JyB8ICdzdHlsZVNoZWV0cyc+XG50eXBlIFJlZ2lzdGVyRm4gPSAoaW5wdXQ6IFtzdHJpbmcsICgpID0+IHZvaWRdKSA9PiB2b2lkXG5cbmV4cG9ydCBjb25zdCB2ZXJzaW9uID0gcHJvY2Vzcy5lbnYuX19ORVhUX1ZFUlNJT05cbmV4cG9ydCBsZXQgcm91dGVyOiBSb3V0ZXJcbmV4cG9ydCBjb25zdCBlbWl0dGVyOiBNaXR0RW1pdHRlcjxzdHJpbmc+ID0gbWl0dCgpXG5cbmNvbnN0IGxvb3NlVG9BcnJheSA9IDxUIGV4dGVuZHMge30+KGlucHV0OiBhbnkpOiBUW10gPT4gW10uc2xpY2UuY2FsbChpbnB1dClcblxubGV0IGluaXRpYWxEYXRhOiBORVhUX0RBVEFcbmxldCBkZWZhdWx0TG9jYWxlOiBzdHJpbmcgfCB1bmRlZmluZWQgPSB1bmRlZmluZWRcbmxldCBhc1BhdGg6IHN0cmluZ1xubGV0IHBhZ2VMb2FkZXI6IFBhZ2VMb2FkZXJcbmxldCBhcHBFbGVtZW50OiBIVE1MRWxlbWVudCB8IG51bGxcbmxldCBoZWFkTWFuYWdlcjoge1xuICBtb3VudGVkSW5zdGFuY2VzOiBTZXQ8dW5rbm93bj5cbiAgdXBkYXRlSGVhZDogKGhlYWQ6IEpTWC5FbGVtZW50W10pID0+IHZvaWRcbiAgZ2V0SXNTc3I/OiAoKSA9PiBib29sZWFuXG59XG5sZXQgaW5pdGlhbE1hdGNoZXNNaWRkbGV3YXJlID0gZmFsc2VcbmxldCBsYXN0QXBwUHJvcHM6IEFwcFByb3BzXG5cbmxldCBsYXN0UmVuZGVyUmVqZWN0OiAoKCkgPT4gdm9pZCkgfCBudWxsXG5sZXQgZGV2Q2xpZW50OiBhbnlcblxubGV0IENhY2hlZEFwcDogQXBwQ29tcG9uZW50LCBvblBlcmZFbnRyeTogKG1ldHJpYzogYW55KSA9PiB2b2lkXG5sZXQgQ2FjaGVkQ29tcG9uZW50OiBSZWFjdC5Db21wb25lbnRUeXBlXG5cbmNsYXNzIENvbnRhaW5lciBleHRlbmRzIFJlYWN0LkNvbXBvbmVudDx7XG4gIGNoaWxkcmVuPzogUmVhY3QuUmVhY3ROb2RlXG4gIGZuOiAoZXJyOiBFcnJvciwgaW5mbz86IGFueSkgPT4gdm9pZFxufT4ge1xuICBjb21wb25lbnREaWRDYXRjaChjb21wb25lbnRFcnI6IEVycm9yLCBpbmZvOiBhbnkpIHtcbiAgICB0aGlzLnByb3BzLmZuKGNvbXBvbmVudEVyciwgaW5mbylcbiAgfVxuXG4gIGNvbXBvbmVudERpZE1vdW50KCkge1xuICAgIHRoaXMuc2Nyb2xsVG9IYXNoKClcblxuICAgIC8vIFdlIG5lZWQgdG8gcmVwbGFjZSB0aGUgcm91dGVyIHN0YXRlIGlmOlxuICAgIC8vIC0gdGhlIHBhZ2Ugd2FzIChhdXRvKSBleHBvcnRlZCBhbmQgaGFzIGEgcXVlcnkgc3RyaW5nIG9yIHNlYXJjaCAoaGFzaClcbiAgICAvLyAtIGl0IHdhcyBhdXRvIGV4cG9ydGVkIGFuZCBpcyBhIGR5bmFtaWMgcm91dGUgKHRvIHByb3ZpZGUgcGFyYW1zKVxuICAgIC8vIC0gaWYgaXQgaXMgYSBjbGllbnQtc2lkZSBza2VsZXRvbiAoZmFsbGJhY2sgcmVuZGVyKVxuICAgIC8vIC0gaWYgbWlkZGxld2FyZSBtYXRjaGVzIHRoZSBjdXJyZW50IHBhZ2UgKG1heSBoYXZlIHJld3JpdGUgcGFyYW1zKVxuICAgIC8vIC0gaWYgcmV3cml0ZXMgaW4gbmV4dC5jb25maWcuanMgbWF0Y2ggKG1heSBoYXZlIHJld3JpdGUgcGFyYW1zKVxuICAgIGlmIChcbiAgICAgIHJvdXRlci5pc1NzciAmJlxuICAgICAgKGluaXRpYWxEYXRhLmlzRmFsbGJhY2sgfHxcbiAgICAgICAgKGluaXRpYWxEYXRhLm5leHRFeHBvcnQgJiZcbiAgICAgICAgICAoaXNEeW5hbWljUm91dGUocm91dGVyLnBhdGhuYW1lKSB8fFxuICAgICAgICAgICAgbG9jYXRpb24uc2VhcmNoIHx8XG4gICAgICAgICAgICBwcm9jZXNzLmVudi5fX05FWFRfSEFTX1JFV1JJVEVTIHx8XG4gICAgICAgICAgICBpbml0aWFsTWF0Y2hlc01pZGRsZXdhcmUpKSB8fFxuICAgICAgICAoaW5pdGlhbERhdGEucHJvcHMgJiZcbiAgICAgICAgICBpbml0aWFsRGF0YS5wcm9wcy5fX05fU1NHICYmXG4gICAgICAgICAgKGxvY2F0aW9uLnNlYXJjaCB8fFxuICAgICAgICAgICAgcHJvY2Vzcy5lbnYuX19ORVhUX0hBU19SRVdSSVRFUyB8fFxuICAgICAgICAgICAgaW5pdGlhbE1hdGNoZXNNaWRkbGV3YXJlKSkpXG4gICAgKSB7XG4gICAgICAvLyB1cGRhdGUgcXVlcnkgb24gbW91bnQgZm9yIGV4cG9ydGVkIHBhZ2VzXG4gICAgICByb3V0ZXJcbiAgICAgICAgLnJlcGxhY2UoXG4gICAgICAgICAgcm91dGVyLnBhdGhuYW1lICtcbiAgICAgICAgICAgICc/JyArXG4gICAgICAgICAgICBTdHJpbmcoXG4gICAgICAgICAgICAgIGFzc2lnbihcbiAgICAgICAgICAgICAgICB1cmxRdWVyeVRvU2VhcmNoUGFyYW1zKHJvdXRlci5xdWVyeSksXG4gICAgICAgICAgICAgICAgbmV3IFVSTFNlYXJjaFBhcmFtcyhsb2NhdGlvbi5zZWFyY2gpXG4gICAgICAgICAgICAgIClcbiAgICAgICAgICAgICksXG4gICAgICAgICAgYXNQYXRoLFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIC8vIEB0cy1pZ25vcmVcbiAgICAgICAgICAgIC8vIFdBUk5JTkc6IGBfaGAgaXMgYW4gaW50ZXJuYWwgb3B0aW9uIGZvciBoYW5kaW5nIE5leHQuanNcbiAgICAgICAgICAgIC8vIGNsaWVudC1zaWRlIGh5ZHJhdGlvbi4gWW91ciBhcHAgc2hvdWxkIF9uZXZlcl8gdXNlIHRoaXMgcHJvcGVydHkuXG4gICAgICAgICAgICAvLyBJdCBtYXkgY2hhbmdlIGF0IGFueSB0aW1lIHdpdGhvdXQgbm90aWNlLlxuICAgICAgICAgICAgX2g6IDEsXG4gICAgICAgICAgICAvLyBGYWxsYmFjayBwYWdlcyBtdXN0IHRyaWdnZXIgdGhlIGRhdGEgZmV0Y2gsIHNvIHRoZSB0cmFuc2l0aW9uIGlzXG4gICAgICAgICAgICAvLyBub3Qgc2hhbGxvdy5cbiAgICAgICAgICAgIC8vIE90aGVyIHBhZ2VzIChzdHJpY3RseSB1cGRhdGluZyBxdWVyeSkgaGFwcGVucyBzaGFsbG93bHksIGFzIGRhdGFcbiAgICAgICAgICAgIC8vIHJlcXVpcmVtZW50cyB3b3VsZCBhbHJlYWR5IGJlIHByZXNlbnQuXG4gICAgICAgICAgICBzaGFsbG93OiAhaW5pdGlhbERhdGEuaXNGYWxsYmFjayAmJiAhaW5pdGlhbE1hdGNoZXNNaWRkbGV3YXJlLFxuICAgICAgICAgIH1cbiAgICAgICAgKVxuICAgICAgICAuY2F0Y2goKGVycikgPT4ge1xuICAgICAgICAgIGlmICghZXJyLmNhbmNlbGxlZCkgdGhyb3cgZXJyXG4gICAgICAgIH0pXG4gICAgfVxuICB9XG5cbiAgY29tcG9uZW50RGlkVXBkYXRlKCkge1xuICAgIHRoaXMuc2Nyb2xsVG9IYXNoKClcbiAgfVxuXG4gIHNjcm9sbFRvSGFzaCgpIHtcbiAgICBsZXQgeyBoYXNoIH0gPSBsb2NhdGlvblxuICAgIGhhc2ggPSBoYXNoICYmIGhhc2guc3Vic3RyaW5nKDEpXG4gICAgaWYgKCFoYXNoKSByZXR1cm5cblxuICAgIGNvbnN0IGVsOiBIVE1MRWxlbWVudCB8IG51bGwgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChoYXNoKVxuICAgIGlmICghZWwpIHJldHVyblxuXG4gICAgLy8gSWYgd2UgY2FsbCBzY3JvbGxJbnRvVmlldygpIGluIGhlcmUgd2l0aG91dCBhIHNldFRpbWVvdXRcbiAgICAvLyBpdCB3b24ndCBzY3JvbGwgcHJvcGVybHkuXG4gICAgc2V0VGltZW91dCgoKSA9PiBlbC5zY3JvbGxJbnRvVmlldygpLCAwKVxuICB9XG5cbiAgcmVuZGVyKCkge1xuICAgIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViA9PT0gJ3Byb2R1Y3Rpb24nKSB7XG4gICAgICByZXR1cm4gdGhpcy5wcm9wcy5jaGlsZHJlblxuICAgIH0gZWxzZSB7XG4gICAgICBjb25zdCB7IFBhZ2VzRGV2T3ZlcmxheUJyaWRnZSB9ID1cbiAgICAgICAgcmVxdWlyZSgnLi4vbmV4dC1kZXZ0b29scy91c2Vyc3BhY2UvcGFnZXMvcGFnZXMtZGV2LW92ZXJsYXktc2V0dXAnKSBhcyB0eXBlb2YgaW1wb3J0KCcuLi9uZXh0LWRldnRvb2xzL3VzZXJzcGFjZS9wYWdlcy9wYWdlcy1kZXYtb3ZlcmxheS1zZXR1cCcpXG4gICAgICByZXR1cm4gKFxuICAgICAgICA8UGFnZXNEZXZPdmVybGF5QnJpZGdlPnt0aGlzLnByb3BzLmNoaWxkcmVufTwvUGFnZXNEZXZPdmVybGF5QnJpZGdlPlxuICAgICAgKVxuICAgIH1cbiAgfVxufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gaW5pdGlhbGl6ZShvcHRzOiB7IGRldkNsaWVudD86IGFueSB9ID0ge30pOiBQcm9taXNlPHtcbiAgYXNzZXRQcmVmaXg6IHN0cmluZ1xufT4ge1xuICAvLyBUaGlzIG1ha2VzIHN1cmUgdGhpcyBzcGVjaWZpYyBsaW5lcyBhcmUgcmVtb3ZlZCBpbiBwcm9kdWN0aW9uXG4gIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViA9PT0gJ2RldmVsb3BtZW50Jykge1xuICAgIHRyYWNlci5vblNwYW5FbmQoXG4gICAgICAoXG4gICAgICAgIHJlcXVpcmUoJy4vdHJhY2luZy9yZXBvcnQtdG8tc29ja2V0JykgYXMgdHlwZW9mIGltcG9ydCgnLi90cmFjaW5nL3JlcG9ydC10by1zb2NrZXQnKVxuICAgICAgKS5kZWZhdWx0XG4gICAgKVxuICAgIGRldkNsaWVudCA9IG9wdHMuZGV2Q2xpZW50XG4gIH1cblxuICBpbml0aWFsRGF0YSA9IEpTT04ucGFyc2UoXG4gICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ19fTkVYVF9EQVRBX18nKSEudGV4dENvbnRlbnQhXG4gIClcbiAgd2luZG93Ll9fTkVYVF9EQVRBX18gPSBpbml0aWFsRGF0YVxuXG4gIGRlZmF1bHRMb2NhbGUgPSBpbml0aWFsRGF0YS5kZWZhdWx0TG9jYWxlXG4gIGNvbnN0IHByZWZpeDogc3RyaW5nID0gaW5pdGlhbERhdGEuYXNzZXRQcmVmaXggfHwgJydcbiAgLy8gV2l0aCBkeW5hbWljIGFzc2V0UHJlZml4IGl0J3Mgbm8gbG9uZ2VyIHBvc3NpYmxlIHRvIHNldCBhc3NldFByZWZpeCBhdCB0aGUgYnVpbGQgdGltZVxuICAvLyBTbywgdGhpcyBpcyBob3cgd2UgZG8gaXQgaW4gdGhlIGNsaWVudCBzaWRlIGF0IHJ1bnRpbWVcbiAgOyhzZWxmIGFzIGFueSkuX19uZXh0X3NldF9wdWJsaWNfcGF0aF9fKGAke3ByZWZpeH0vX25leHQvYCkgLy9lc2xpbnQtZGlzYWJsZS1saW5lXG5cbiAgLy8gSW5pdGlhbGl6ZSBuZXh0L2NvbmZpZyB3aXRoIHRoZSBlbnZpcm9ubWVudCBjb25maWd1cmF0aW9uXG4gIHNldENvbmZpZyh7XG4gICAgc2VydmVyUnVudGltZUNvbmZpZzoge30sXG4gICAgcHVibGljUnVudGltZUNvbmZpZzogaW5pdGlhbERhdGEucnVudGltZUNvbmZpZyB8fCB7fSxcbiAgfSlcblxuICBhc1BhdGggPSBnZXRVUkwoKVxuXG4gIC8vIG1ha2Ugc3VyZSBub3QgdG8gYXR0ZW1wdCBzdHJpcHBpbmcgYmFzZVBhdGggZm9yIDQwNHNcbiAgaWYgKGhhc0Jhc2VQYXRoKGFzUGF0aCkpIHtcbiAgICBhc1BhdGggPSByZW1vdmVCYXNlUGF0aChhc1BhdGgpXG4gIH1cblxuICBpZiAocHJvY2Vzcy5lbnYuX19ORVhUX0kxOE5fU1VQUE9SVCkge1xuICAgIGNvbnN0IHsgbm9ybWFsaXplTG9jYWxlUGF0aCB9ID1cbiAgICAgIHJlcXVpcmUoJy4uL3NoYXJlZC9saWIvaTE4bi9ub3JtYWxpemUtbG9jYWxlLXBhdGgnKSBhcyB0eXBlb2YgaW1wb3J0KCcuLi9zaGFyZWQvbGliL2kxOG4vbm9ybWFsaXplLWxvY2FsZS1wYXRoJylcblxuICAgIGNvbnN0IHsgZGV0ZWN0RG9tYWluTG9jYWxlIH0gPVxuICAgICAgcmVxdWlyZSgnLi4vc2hhcmVkL2xpYi9pMThuL2RldGVjdC1kb21haW4tbG9jYWxlJykgYXMgdHlwZW9mIGltcG9ydCgnLi4vc2hhcmVkL2xpYi9pMThuL2RldGVjdC1kb21haW4tbG9jYWxlJylcblxuICAgIGNvbnN0IHsgcGFyc2VSZWxhdGl2ZVVybCB9ID1cbiAgICAgIHJlcXVpcmUoJy4uL3NoYXJlZC9saWIvcm91dGVyL3V0aWxzL3BhcnNlLXJlbGF0aXZlLXVybCcpIGFzIHR5cGVvZiBpbXBvcnQoJy4uL3NoYXJlZC9saWIvcm91dGVyL3V0aWxzL3BhcnNlLXJlbGF0aXZlLXVybCcpXG5cbiAgICBjb25zdCB7IGZvcm1hdFVybCB9ID1cbiAgICAgIHJlcXVpcmUoJy4uL3NoYXJlZC9saWIvcm91dGVyL3V0aWxzL2Zvcm1hdC11cmwnKSBhcyB0eXBlb2YgaW1wb3J0KCcuLi9zaGFyZWQvbGliL3JvdXRlci91dGlscy9mb3JtYXQtdXJsJylcblxuICAgIGlmIChpbml0aWFsRGF0YS5sb2NhbGVzKSB7XG4gICAgICBjb25zdCBwYXJzZWRBcyA9IHBhcnNlUmVsYXRpdmVVcmwoYXNQYXRoKVxuICAgICAgY29uc3QgbG9jYWxlUGF0aFJlc3VsdCA9IG5vcm1hbGl6ZUxvY2FsZVBhdGgoXG4gICAgICAgIHBhcnNlZEFzLnBhdGhuYW1lLFxuICAgICAgICBpbml0aWFsRGF0YS5sb2NhbGVzXG4gICAgICApXG5cbiAgICAgIGlmIChsb2NhbGVQYXRoUmVzdWx0LmRldGVjdGVkTG9jYWxlKSB7XG4gICAgICAgIHBhcnNlZEFzLnBhdGhuYW1lID0gbG9jYWxlUGF0aFJlc3VsdC5wYXRobmFtZVxuICAgICAgICBhc1BhdGggPSBmb3JtYXRVcmwocGFyc2VkQXMpXG4gICAgICB9IGVsc2Uge1xuICAgICAgICAvLyBkZXJpdmUgdGhlIGRlZmF1bHQgbG9jYWxlIGlmIGl0IHdhc24ndCBkZXRlY3RlZCBpbiB0aGUgYXNQYXRoXG4gICAgICAgIC8vIHNpbmNlIHdlIGRvbid0IHByZXJlbmRlciBzdGF0aWMgcGFnZXMgd2l0aCBhbGwgcG9zc2libGUgZGVmYXVsdFxuICAgICAgICAvLyBsb2NhbGVzXG4gICAgICAgIGRlZmF1bHRMb2NhbGUgPSBpbml0aWFsRGF0YS5sb2NhbGVcbiAgICAgIH1cblxuICAgICAgLy8gYXR0ZW1wdCBkZXRlY3RpbmcgZGVmYXVsdCBsb2NhbGUgYmFzZWQgb24gaG9zdG5hbWVcbiAgICAgIGNvbnN0IGRldGVjdGVkRG9tYWluID0gZGV0ZWN0RG9tYWluTG9jYWxlKFxuICAgICAgICBwcm9jZXNzLmVudi5fX05FWFRfSTE4Tl9ET01BSU5TIGFzIGFueSxcbiAgICAgICAgd2luZG93LmxvY2F0aW9uLmhvc3RuYW1lXG4gICAgICApXG5cbiAgICAgIC8vIFRPRE86IGludmVzdGlnYXRlIGlmIGRlZmF1bHRMb2NhbGUgbmVlZHMgdG8gYmUgcG9wdWxhdGVkIGFmdGVyXG4gICAgICAvLyBoeWRyYXRpb24gdG8gcHJldmVudCBtaXNtYXRjaGVkIHJlbmRlcnNcbiAgICAgIGlmIChkZXRlY3RlZERvbWFpbikge1xuICAgICAgICBkZWZhdWx0TG9jYWxlID0gZGV0ZWN0ZWREb21haW4uZGVmYXVsdExvY2FsZVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIGlmIChpbml0aWFsRGF0YS5zY3JpcHRMb2FkZXIpIHtcbiAgICBjb25zdCB7IGluaXRTY3JpcHRMb2FkZXIgfSA9XG4gICAgICByZXF1aXJlKCcuL3NjcmlwdCcpIGFzIHR5cGVvZiBpbXBvcnQoJy4vc2NyaXB0JylcbiAgICBpbml0U2NyaXB0TG9hZGVyKGluaXRpYWxEYXRhLnNjcmlwdExvYWRlcilcbiAgfVxuXG4gIHBhZ2VMb2FkZXIgPSBuZXcgUGFnZUxvYWRlcihpbml0aWFsRGF0YS5idWlsZElkLCBwcmVmaXgpXG5cbiAgY29uc3QgcmVnaXN0ZXI6IFJlZ2lzdGVyRm4gPSAoW3IsIGZdKSA9PlxuICAgIHBhZ2VMb2FkZXIucm91dGVMb2FkZXIub25FbnRyeXBvaW50KHIsIGYpXG4gIGlmICh3aW5kb3cuX19ORVhUX1ApIHtcbiAgICAvLyBEZWZlciBwYWdlIHJlZ2lzdHJhdGlvbiBmb3IgYW5vdGhlciB0aWNrLiBUaGlzIHdpbGwgaW5jcmVhc2UgdGhlIG92ZXJhbGxcbiAgICAvLyBsYXRlbmN5IGluIGh5ZHJhdGluZyB0aGUgcGFnZSwgYnV0IHJlZHVjZSB0aGUgdG90YWwgYmxvY2tpbmcgdGltZS5cbiAgICB3aW5kb3cuX19ORVhUX1AubWFwKChwKSA9PiBzZXRUaW1lb3V0KCgpID0+IHJlZ2lzdGVyKHApLCAwKSlcbiAgfVxuICB3aW5kb3cuX19ORVhUX1AgPSBbXVxuICA7KHdpbmRvdy5fX05FWFRfUCBhcyBhbnkpLnB1c2ggPSByZWdpc3RlclxuXG4gIGhlYWRNYW5hZ2VyID0gaW5pdEhlYWRNYW5hZ2VyKClcbiAgaGVhZE1hbmFnZXIuZ2V0SXNTc3IgPSAoKSA9PiB7XG4gICAgcmV0dXJuIHJvdXRlci5pc1NzclxuICB9XG5cbiAgYXBwRWxlbWVudCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdfX25leHQnKVxuICByZXR1cm4geyBhc3NldFByZWZpeDogcHJlZml4IH1cbn1cblxuZnVuY3Rpb24gcmVuZGVyQXBwKEFwcDogQXBwQ29tcG9uZW50LCBhcHBQcm9wczogQXBwUHJvcHMpIHtcbiAgcmV0dXJuIDxBcHAgey4uLmFwcFByb3BzfSAvPlxufVxuXG5mdW5jdGlvbiBBcHBDb250YWluZXIoe1xuICBjaGlsZHJlbixcbn06IFJlYWN0LlByb3BzV2l0aENoaWxkcmVuPHt9Pik6IFJlYWN0LlJlYWN0RWxlbWVudCB7XG4gIC8vIENyZWF0ZSBhIG1lbW9pemVkIHZhbHVlIGZvciBuZXh0L25hdmlnYXRpb24gcm91dGVyIGNvbnRleHQuXG4gIGNvbnN0IGFkYXB0ZWRGb3JBcHBSb3V0ZXIgPSBSZWFjdC51c2VNZW1vKCgpID0+IHtcbiAgICByZXR1cm4gYWRhcHRGb3JBcHBSb3V0ZXJJbnN0YW5jZShyb3V0ZXIpXG4gIH0sIFtdKVxuICByZXR1cm4gKFxuICAgIDxDb250YWluZXJcbiAgICAgIGZuPXsoZXJyb3IpID0+XG4gICAgICAgIC8vIFRPRE86IEZpeCBkaXNhYmxlZCBlc2xpbnQgcnVsZVxuICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXVzZS1iZWZvcmUtZGVmaW5lXG4gICAgICAgIHJlbmRlckVycm9yKHsgQXBwOiBDYWNoZWRBcHAsIGVycjogZXJyb3IgfSkuY2F0Y2goKGVycikgPT5cbiAgICAgICAgICBjb25zb2xlLmVycm9yKCdFcnJvciByZW5kZXJpbmcgcGFnZTogJywgZXJyKVxuICAgICAgICApXG4gICAgICB9XG4gICAgPlxuICAgICAgPEFwcFJvdXRlckNvbnRleHQuUHJvdmlkZXIgdmFsdWU9e2FkYXB0ZWRGb3JBcHBSb3V0ZXJ9PlxuICAgICAgICA8U2VhcmNoUGFyYW1zQ29udGV4dC5Qcm92aWRlciB2YWx1ZT17YWRhcHRGb3JTZWFyY2hQYXJhbXMocm91dGVyKX0+XG4gICAgICAgICAgPFBhdGhuYW1lQ29udGV4dFByb3ZpZGVyQWRhcHRlclxuICAgICAgICAgICAgcm91dGVyPXtyb3V0ZXJ9XG4gICAgICAgICAgICBpc0F1dG9FeHBvcnQ9e3NlbGYuX19ORVhUX0RBVEFfXy5hdXRvRXhwb3J0ID8/IGZhbHNlfVxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxQYXRoUGFyYW1zQ29udGV4dC5Qcm92aWRlciB2YWx1ZT17YWRhcHRGb3JQYXRoUGFyYW1zKHJvdXRlcil9PlxuICAgICAgICAgICAgICA8Um91dGVyQ29udGV4dC5Qcm92aWRlciB2YWx1ZT17bWFrZVB1YmxpY1JvdXRlckluc3RhbmNlKHJvdXRlcil9PlxuICAgICAgICAgICAgICAgIDxIZWFkTWFuYWdlckNvbnRleHQuUHJvdmlkZXIgdmFsdWU9e2hlYWRNYW5hZ2VyfT5cbiAgICAgICAgICAgICAgICAgIDxJbWFnZUNvbmZpZ0NvbnRleHQuUHJvdmlkZXJcbiAgICAgICAgICAgICAgICAgICAgdmFsdWU9e1xuICAgICAgICAgICAgICAgICAgICAgIHByb2Nlc3MuZW52XG4gICAgICAgICAgICAgICAgICAgICAgICAuX19ORVhUX0lNQUdFX09QVFMgYXMgYW55IGFzIEltYWdlQ29uZmlnQ29tcGxldGVcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICB7Y2hpbGRyZW59XG4gICAgICAgICAgICAgICAgICA8L0ltYWdlQ29uZmlnQ29udGV4dC5Qcm92aWRlcj5cbiAgICAgICAgICAgICAgICA8L0hlYWRNYW5hZ2VyQ29udGV4dC5Qcm92aWRlcj5cbiAgICAgICAgICAgICAgPC9Sb3V0ZXJDb250ZXh0LlByb3ZpZGVyPlxuICAgICAgICAgICAgPC9QYXRoUGFyYW1zQ29udGV4dC5Qcm92aWRlcj5cbiAgICAgICAgICA8L1BhdGhuYW1lQ29udGV4dFByb3ZpZGVyQWRhcHRlcj5cbiAgICAgICAgPC9TZWFyY2hQYXJhbXNDb250ZXh0LlByb3ZpZGVyPlxuICAgICAgPC9BcHBSb3V0ZXJDb250ZXh0LlByb3ZpZGVyPlxuICAgIDwvQ29udGFpbmVyPlxuICApXG59XG5cbmNvbnN0IHdyYXBBcHAgPVxuICAoQXBwOiBBcHBDb21wb25lbnQpID0+XG4gICh3cmFwcGVkQXBwUHJvcHM6IFJlY29yZDxzdHJpbmcsIGFueT4pOiBKU1guRWxlbWVudCA9PiB7XG4gICAgY29uc3QgYXBwUHJvcHM6IEFwcFByb3BzID0ge1xuICAgICAgLi4ud3JhcHBlZEFwcFByb3BzLFxuICAgICAgQ29tcG9uZW50OiBDYWNoZWRDb21wb25lbnQsXG4gICAgICBlcnI6IGluaXRpYWxEYXRhLmVycixcbiAgICAgIHJvdXRlcixcbiAgICB9XG4gICAgcmV0dXJuIDxBcHBDb250YWluZXI+e3JlbmRlckFwcChBcHAsIGFwcFByb3BzKX08L0FwcENvbnRhaW5lcj5cbiAgfVxuXG4vLyBUaGlzIG1ldGhvZCBoYW5kbGVzIGFsbCBydW50aW1lIGFuZCBkZWJ1ZyBlcnJvcnMuXG4vLyA0MDQgYW5kIDUwMCBlcnJvcnMgYXJlIHNwZWNpYWwga2luZCBvZiBlcnJvcnNcbi8vIGFuZCB0aGV5IGFyZSBzdGlsbCBoYW5kbGUgdmlhIHRoZSBtYWluIHJlbmRlciBtZXRob2QuXG5mdW5jdGlvbiByZW5kZXJFcnJvcihyZW5kZXJFcnJvclByb3BzOiBSZW5kZXJFcnJvclByb3BzKTogUHJvbWlzZTxhbnk+IHtcbiAgbGV0IHsgQXBwLCBlcnIgfSA9IHJlbmRlckVycm9yUHJvcHNcblxuICAvLyBJbiBkZXZlbG9wbWVudCBydW50aW1lIGVycm9ycyBhcmUgY2F1Z2h0IGJ5IG91ciBvdmVybGF5XG4gIC8vIEluIHByb2R1Y3Rpb24gd2UgY2F0Y2ggcnVudGltZSBlcnJvcnMgdXNpbmcgY29tcG9uZW50RGlkQ2F0Y2ggd2hpY2ggd2lsbCB0cmlnZ2VyIHJlbmRlckVycm9yXG4gIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSB7XG4gICAgLy8gQSBOZXh0LmpzIHJlbmRlcmluZyBydW50aW1lIGVycm9yIGlzIGFsd2F5cyB1bnJlY292ZXJhYmxlXG4gICAgLy8gRklYTUU6IGxldCdzIG1ha2UgdGhpcyByZWNvdmVyYWJsZSAoZXJyb3IgaW4gR0lQIGNsaWVudC10cmFuc2l0aW9uKVxuICAgIGRldkNsaWVudC5vblVucmVjb3ZlcmFibGVFcnJvcigpXG5cbiAgICAvLyBXZSBuZWVkIHRvIHJlbmRlciBhbiBlbXB0eSA8QXBwPiBzbyB0aGF0IHRoZSBgPFJlYWN0RGV2T3ZlcmxheT5gIGNhblxuICAgIC8vIHJlbmRlciBpdHNlbGYuXG4gICAgLy8gVE9ETzogRml4IGRpc2FibGVkIGVzbGludCBydWxlXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby11c2UtYmVmb3JlLWRlZmluZVxuICAgIHJldHVybiBkb1JlbmRlcih7XG4gICAgICBBcHA6ICgpID0+IG51bGwsXG4gICAgICBwcm9wczoge30sXG4gICAgICBDb21wb25lbnQ6ICgpID0+IG51bGwsXG4gICAgICBzdHlsZVNoZWV0czogW10sXG4gICAgfSlcbiAgfVxuXG4gIC8vIE1ha2Ugc3VyZSB3ZSBsb2cgdGhlIGVycm9yIHRvIHRoZSBjb25zb2xlLCBvdGhlcndpc2UgdXNlcnMgY2FuJ3QgdHJhY2sgZG93biBpc3N1ZXMuXG4gIGNvbnNvbGUuZXJyb3IoZXJyKVxuICBjb25zb2xlLmVycm9yKFxuICAgIGBBIGNsaWVudC1zaWRlIGV4Y2VwdGlvbiBoYXMgb2NjdXJyZWQsIHNlZSBoZXJlIGZvciBtb3JlIGluZm86IGh0dHBzOi8vbmV4dGpzLm9yZy9kb2NzL21lc3NhZ2VzL2NsaWVudC1zaWRlLWV4Y2VwdGlvbi1vY2N1cnJlZGBcbiAgKVxuXG4gIHJldHVybiBwYWdlTG9hZGVyXG4gICAgLmxvYWRQYWdlKCcvX2Vycm9yJylcbiAgICAudGhlbigoeyBwYWdlOiBFcnJvckNvbXBvbmVudCwgc3R5bGVTaGVldHMgfSkgPT4ge1xuICAgICAgcmV0dXJuIGxhc3RBcHBQcm9wcz8uQ29tcG9uZW50ID09PSBFcnJvckNvbXBvbmVudFxuICAgICAgICA/IGltcG9ydCgnLi4vcGFnZXMvX2Vycm9yJylcbiAgICAgICAgICAgIC50aGVuKChlcnJvck1vZHVsZSkgPT4ge1xuICAgICAgICAgICAgICByZXR1cm4gaW1wb3J0KCcuLi9wYWdlcy9fYXBwJykudGhlbigoYXBwTW9kdWxlKSA9PiB7XG4gICAgICAgICAgICAgICAgQXBwID0gYXBwTW9kdWxlLmRlZmF1bHQgYXMgYW55IGFzIEFwcENvbXBvbmVudFxuICAgICAgICAgICAgICAgIHJlbmRlckVycm9yUHJvcHMuQXBwID0gQXBwXG4gICAgICAgICAgICAgICAgcmV0dXJuIGVycm9yTW9kdWxlXG4gICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICB9KVxuICAgICAgICAgICAgLnRoZW4oKG0pID0+ICh7XG4gICAgICAgICAgICAgIEVycm9yQ29tcG9uZW50OiBtLmRlZmF1bHQgYXMgUmVhY3QuQ29tcG9uZW50VHlwZTx7fT4sXG4gICAgICAgICAgICAgIHN0eWxlU2hlZXRzOiBbXSxcbiAgICAgICAgICAgIH0pKVxuICAgICAgICA6IHsgRXJyb3JDb21wb25lbnQsIHN0eWxlU2hlZXRzIH1cbiAgICB9KVxuICAgIC50aGVuKCh7IEVycm9yQ29tcG9uZW50LCBzdHlsZVNoZWV0cyB9KSA9PiB7XG4gICAgICAvLyBJbiBwcm9kdWN0aW9uIHdlIGRvIGEgbm9ybWFsIHJlbmRlciB3aXRoIHRoZSBgRXJyb3JDb21wb25lbnRgIGFzIGNvbXBvbmVudC5cbiAgICAgIC8vIElmIHdlJ3ZlIGdvdHRlbiBoZXJlIHVwb24gaW5pdGlhbCByZW5kZXIsIHdlIGNhbiB1c2UgdGhlIHByb3BzIGZyb20gdGhlIHNlcnZlci5cbiAgICAgIC8vIE90aGVyd2lzZSwgd2UgbmVlZCB0byBjYWxsIGBnZXRJbml0aWFsUHJvcHNgIG9uIGBBcHBgIGJlZm9yZSBtb3VudGluZy5cbiAgICAgIGNvbnN0IEFwcFRyZWUgPSB3cmFwQXBwKEFwcClcbiAgICAgIGNvbnN0IGFwcEN0eCA9IHtcbiAgICAgICAgQ29tcG9uZW50OiBFcnJvckNvbXBvbmVudCxcbiAgICAgICAgQXBwVHJlZSxcbiAgICAgICAgcm91dGVyLFxuICAgICAgICBjdHg6IHtcbiAgICAgICAgICBlcnIsXG4gICAgICAgICAgcGF0aG5hbWU6IGluaXRpYWxEYXRhLnBhZ2UsXG4gICAgICAgICAgcXVlcnk6IGluaXRpYWxEYXRhLnF1ZXJ5LFxuICAgICAgICAgIGFzUGF0aCxcbiAgICAgICAgICBBcHBUcmVlLFxuICAgICAgICB9LFxuICAgICAgfVxuICAgICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZShcbiAgICAgICAgcmVuZGVyRXJyb3JQcm9wcy5wcm9wcz8uZXJyXG4gICAgICAgICAgPyByZW5kZXJFcnJvclByb3BzLnByb3BzXG4gICAgICAgICAgOiBsb2FkR2V0SW5pdGlhbFByb3BzKEFwcCwgYXBwQ3R4KVxuICAgICAgKS50aGVuKChpbml0UHJvcHMpID0+XG4gICAgICAgIC8vIFRPRE86IEZpeCBkaXNhYmxlZCBlc2xpbnQgcnVsZVxuICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXVzZS1iZWZvcmUtZGVmaW5lXG4gICAgICAgIGRvUmVuZGVyKHtcbiAgICAgICAgICAuLi5yZW5kZXJFcnJvclByb3BzLFxuICAgICAgICAgIGVycixcbiAgICAgICAgICBDb21wb25lbnQ6IEVycm9yQ29tcG9uZW50LFxuICAgICAgICAgIHN0eWxlU2hlZXRzLFxuICAgICAgICAgIHByb3BzOiBpbml0UHJvcHMsXG4gICAgICAgIH0pXG4gICAgICApXG4gICAgfSlcbn1cblxuLy8gRHVtbXkgY29tcG9uZW50IHRoYXQgd2UgcmVuZGVyIGFzIGEgY2hpbGQgb2YgUm9vdCBzbyB0aGF0IHdlIGNhblxuLy8gdG9nZ2xlIHRoZSBjb3JyZWN0IHN0eWxlcyBiZWZvcmUgdGhlIHBhZ2UgaXMgcmVuZGVyZWQuXG5mdW5jdGlvbiBIZWFkKHsgY2FsbGJhY2sgfTogeyBjYWxsYmFjazogKCkgPT4gdm9pZCB9KTogbnVsbCB7XG4gIC8vIFdlIHVzZSBgdXNlTGF5b3V0RWZmZWN0YCB0byBndWFyYW50ZWUgdGhlIGNhbGxiYWNrIGlzIGV4ZWN1dGVkXG4gIC8vIGFzIHNvb24gYXMgUmVhY3QgZmx1c2hlcyB0aGUgdXBkYXRlLlxuICBSZWFjdC51c2VMYXlvdXRFZmZlY3QoKCkgPT4gY2FsbGJhY2soKSwgW2NhbGxiYWNrXSlcbiAgcmV0dXJuIG51bGxcbn1cblxuY29uc3QgcGVyZm9ybWFuY2VNYXJrcyA9IHtcbiAgbmF2aWdhdGlvblN0YXJ0OiAnbmF2aWdhdGlvblN0YXJ0JyxcbiAgYmVmb3JlUmVuZGVyOiAnYmVmb3JlUmVuZGVyJyxcbiAgYWZ0ZXJSZW5kZXI6ICdhZnRlclJlbmRlcicsXG4gIGFmdGVySHlkcmF0ZTogJ2FmdGVySHlkcmF0ZScsXG4gIHJvdXRlQ2hhbmdlOiAncm91dGVDaGFuZ2UnLFxufSBhcyBjb25zdFxuXG5jb25zdCBwZXJmb3JtYW5jZU1lYXN1cmVzID0ge1xuICBoeWRyYXRpb246ICdOZXh0LmpzLWh5ZHJhdGlvbicsXG4gIGJlZm9yZUh5ZHJhdGlvbjogJ05leHQuanMtYmVmb3JlLWh5ZHJhdGlvbicsXG4gIHJvdXRlQ2hhbmdlVG9SZW5kZXI6ICdOZXh0LmpzLXJvdXRlLWNoYW5nZS10by1yZW5kZXInLFxuICByZW5kZXI6ICdOZXh0LmpzLXJlbmRlcicsXG59IGFzIGNvbnN0XG5cbmxldCByZWFjdFJvb3Q6IGFueSA9IG51bGxcbi8vIE9uIGluaXRpYWwgcmVuZGVyIGEgaHlkcmF0ZSBzaG91bGQgYWx3YXlzIGhhcHBlblxubGV0IHNob3VsZEh5ZHJhdGU6IGJvb2xlYW4gPSB0cnVlXG5cbmZ1bmN0aW9uIGNsZWFyTWFya3MoKTogdm9pZCB7XG4gIDtbXG4gICAgcGVyZm9ybWFuY2VNYXJrcy5iZWZvcmVSZW5kZXIsXG4gICAgcGVyZm9ybWFuY2VNYXJrcy5hZnRlckh5ZHJhdGUsXG4gICAgcGVyZm9ybWFuY2VNYXJrcy5hZnRlclJlbmRlcixcbiAgICBwZXJmb3JtYW5jZU1hcmtzLnJvdXRlQ2hhbmdlLFxuICBdLmZvckVhY2goKG1hcmspID0+IHBlcmZvcm1hbmNlLmNsZWFyTWFya3MobWFyaykpXG59XG5cbmZ1bmN0aW9uIG1hcmtIeWRyYXRlQ29tcGxldGUoKTogdm9pZCB7XG4gIGlmICghU1QpIHJldHVyblxuXG4gIHBlcmZvcm1hbmNlLm1hcmsocGVyZm9ybWFuY2VNYXJrcy5hZnRlckh5ZHJhdGUpIC8vIG1hcmsgZW5kIG9mIGh5ZHJhdGlvblxuXG4gIGNvbnN0IGhhc0JlZm9yZVJlbmRlck1hcmsgPSBwZXJmb3JtYW5jZS5nZXRFbnRyaWVzQnlOYW1lKFxuICAgIHBlcmZvcm1hbmNlTWFya3MuYmVmb3JlUmVuZGVyLFxuICAgICdtYXJrJ1xuICApLmxlbmd0aFxuICBpZiAoaGFzQmVmb3JlUmVuZGVyTWFyaykge1xuICAgIGNvbnN0IGJlZm9yZUh5ZHJhdGlvbk1lYXN1cmUgPSBwZXJmb3JtYW5jZS5tZWFzdXJlKFxuICAgICAgcGVyZm9ybWFuY2VNZWFzdXJlcy5iZWZvcmVIeWRyYXRpb24sXG4gICAgICBwZXJmb3JtYW5jZU1hcmtzLm5hdmlnYXRpb25TdGFydCxcbiAgICAgIHBlcmZvcm1hbmNlTWFya3MuYmVmb3JlUmVuZGVyXG4gICAgKVxuXG4gICAgY29uc3QgaHlkcmF0aW9uTWVhc3VyZSA9IHBlcmZvcm1hbmNlLm1lYXN1cmUoXG4gICAgICBwZXJmb3JtYW5jZU1lYXN1cmVzLmh5ZHJhdGlvbixcbiAgICAgIHBlcmZvcm1hbmNlTWFya3MuYmVmb3JlUmVuZGVyLFxuICAgICAgcGVyZm9ybWFuY2VNYXJrcy5hZnRlckh5ZHJhdGVcbiAgICApXG5cbiAgICBpZiAoXG4gICAgICBwcm9jZXNzLmVudi5OT0RFX0VOViA9PT0gJ2RldmVsb3BtZW50JyAmJlxuICAgICAgLy8gT2xkIHZlcnNpb25zIG9mIFNhZmFyaSBkb24ndCByZXR1cm4gYFBlcmZvcm1hbmNlTWVhc3VyZWBzIGZyb20gYHBlcmZvcm1hbmNlLm1lYXN1cmUoKWBcbiAgICAgIGJlZm9yZUh5ZHJhdGlvbk1lYXN1cmUgJiZcbiAgICAgIGh5ZHJhdGlvbk1lYXN1cmVcbiAgICApIHtcbiAgICAgIHRyYWNlclxuICAgICAgICAuc3RhcnRTcGFuKCduYXZpZ2F0aW9uLXRvLWh5ZHJhdGlvbicsIHtcbiAgICAgICAgICBzdGFydFRpbWU6IHBlcmZvcm1hbmNlLnRpbWVPcmlnaW4gKyBiZWZvcmVIeWRyYXRpb25NZWFzdXJlLnN0YXJ0VGltZSxcbiAgICAgICAgICBhdHRyaWJ1dGVzOiB7XG4gICAgICAgICAgICBwYXRobmFtZTogbG9jYXRpb24ucGF0aG5hbWUsXG4gICAgICAgICAgICBxdWVyeTogbG9jYXRpb24uc2VhcmNoLFxuICAgICAgICAgIH0sXG4gICAgICAgIH0pXG4gICAgICAgIC5lbmQoXG4gICAgICAgICAgcGVyZm9ybWFuY2UudGltZU9yaWdpbiArXG4gICAgICAgICAgICBoeWRyYXRpb25NZWFzdXJlLnN0YXJ0VGltZSArXG4gICAgICAgICAgICBoeWRyYXRpb25NZWFzdXJlLmR1cmF0aW9uXG4gICAgICAgIClcbiAgICB9XG4gIH1cblxuICBpZiAob25QZXJmRW50cnkpIHtcbiAgICBwZXJmb3JtYW5jZVxuICAgICAgLmdldEVudHJpZXNCeU5hbWUocGVyZm9ybWFuY2VNZWFzdXJlcy5oeWRyYXRpb24pXG4gICAgICAuZm9yRWFjaChvblBlcmZFbnRyeSlcbiAgfVxuICBjbGVhck1hcmtzKClcbn1cblxuZnVuY3Rpb24gbWFya1JlbmRlckNvbXBsZXRlKCk6IHZvaWQge1xuICBpZiAoIVNUKSByZXR1cm5cblxuICBwZXJmb3JtYW5jZS5tYXJrKHBlcmZvcm1hbmNlTWFya3MuYWZ0ZXJSZW5kZXIpIC8vIG1hcmsgZW5kIG9mIHJlbmRlclxuICBjb25zdCBuYXZTdGFydEVudHJpZXM6IFBlcmZvcm1hbmNlRW50cnlMaXN0ID0gcGVyZm9ybWFuY2UuZ2V0RW50cmllc0J5TmFtZShcbiAgICBwZXJmb3JtYW5jZU1hcmtzLnJvdXRlQ2hhbmdlLFxuICAgICdtYXJrJ1xuICApXG5cbiAgaWYgKCFuYXZTdGFydEVudHJpZXMubGVuZ3RoKSByZXR1cm5cblxuICBjb25zdCBoYXNCZWZvcmVSZW5kZXJNYXJrID0gcGVyZm9ybWFuY2UuZ2V0RW50cmllc0J5TmFtZShcbiAgICBwZXJmb3JtYW5jZU1hcmtzLmJlZm9yZVJlbmRlcixcbiAgICAnbWFyaydcbiAgKS5sZW5ndGhcblxuICBpZiAoaGFzQmVmb3JlUmVuZGVyTWFyaykge1xuICAgIHBlcmZvcm1hbmNlLm1lYXN1cmUoXG4gICAgICBwZXJmb3JtYW5jZU1lYXN1cmVzLnJvdXRlQ2hhbmdlVG9SZW5kZXIsXG4gICAgICBuYXZTdGFydEVudHJpZXNbMF0ubmFtZSxcbiAgICAgIHBlcmZvcm1hbmNlTWFya3MuYmVmb3JlUmVuZGVyXG4gICAgKVxuICAgIHBlcmZvcm1hbmNlLm1lYXN1cmUoXG4gICAgICBwZXJmb3JtYW5jZU1lYXN1cmVzLnJlbmRlcixcbiAgICAgIHBlcmZvcm1hbmNlTWFya3MuYmVmb3JlUmVuZGVyLFxuICAgICAgcGVyZm9ybWFuY2VNYXJrcy5hZnRlclJlbmRlclxuICAgIClcbiAgICBpZiAob25QZXJmRW50cnkpIHtcbiAgICAgIHBlcmZvcm1hbmNlXG4gICAgICAgIC5nZXRFbnRyaWVzQnlOYW1lKHBlcmZvcm1hbmNlTWVhc3VyZXMucmVuZGVyKVxuICAgICAgICAuZm9yRWFjaChvblBlcmZFbnRyeSlcbiAgICAgIHBlcmZvcm1hbmNlXG4gICAgICAgIC5nZXRFbnRyaWVzQnlOYW1lKHBlcmZvcm1hbmNlTWVhc3VyZXMucm91dGVDaGFuZ2VUb1JlbmRlcilcbiAgICAgICAgLmZvckVhY2gob25QZXJmRW50cnkpXG4gICAgfVxuICB9XG5cbiAgY2xlYXJNYXJrcygpXG4gIDtbXG4gICAgcGVyZm9ybWFuY2VNZWFzdXJlcy5yb3V0ZUNoYW5nZVRvUmVuZGVyLFxuICAgIHBlcmZvcm1hbmNlTWVhc3VyZXMucmVuZGVyLFxuICBdLmZvckVhY2goKG1lYXN1cmUpID0+IHBlcmZvcm1hbmNlLmNsZWFyTWVhc3VyZXMobWVhc3VyZSkpXG59XG5cbmZ1bmN0aW9uIHJlbmRlclJlYWN0RWxlbWVudChcbiAgZG9tRWw6IEhUTUxFbGVtZW50LFxuICBmbjogKGNiOiAoKSA9PiB2b2lkKSA9PiBKU1guRWxlbWVudFxuKTogdm9pZCB7XG4gIC8vIG1hcmsgc3RhcnQgb2YgaHlkcmF0ZS9yZW5kZXJcbiAgaWYgKFNUKSB7XG4gICAgcGVyZm9ybWFuY2UubWFyayhwZXJmb3JtYW5jZU1hcmtzLmJlZm9yZVJlbmRlcilcbiAgfVxuXG4gIGNvbnN0IHJlYWN0RWwgPSBmbihzaG91bGRIeWRyYXRlID8gbWFya0h5ZHJhdGVDb21wbGV0ZSA6IG1hcmtSZW5kZXJDb21wbGV0ZSlcbiAgaWYgKCFyZWFjdFJvb3QpIHtcbiAgICAvLyBVbmxpa2Ugd2l0aCBjcmVhdGVSb290LCB5b3UgZG9uJ3QgbmVlZCBhIHNlcGFyYXRlIHJvb3QucmVuZGVyKCkgY2FsbCBoZXJlXG4gICAgcmVhY3RSb290ID0gUmVhY3RET00uaHlkcmF0ZVJvb3QoZG9tRWwsIHJlYWN0RWwsIHtcbiAgICAgIG9uUmVjb3ZlcmFibGVFcnJvcixcbiAgICB9KVxuICAgIC8vIFRPRE86IFJlbW92ZSBzaG91bGRIeWRyYXRlIHZhcmlhYmxlIHdoZW4gUmVhY3QgMTggaXMgc3RhYmxlIGFzIGl0IGNhbiBkZXBlbmQgb24gYHJlYWN0Um9vdGAgZXhpc3RpbmdcbiAgICBzaG91bGRIeWRyYXRlID0gZmFsc2VcbiAgfSBlbHNlIHtcbiAgICBjb25zdCBzdGFydFRyYW5zaXRpb24gPSAoUmVhY3QgYXMgYW55KS5zdGFydFRyYW5zaXRpb25cbiAgICBzdGFydFRyYW5zaXRpb24oKCkgPT4ge1xuICAgICAgcmVhY3RSb290LnJlbmRlcihyZWFjdEVsKVxuICAgIH0pXG4gIH1cbn1cblxuZnVuY3Rpb24gUm9vdCh7XG4gIGNhbGxiYWNrcyxcbiAgY2hpbGRyZW4sXG59OiBSZWFjdC5Qcm9wc1dpdGhDaGlsZHJlbjx7XG4gIGNhbGxiYWNrczogQXJyYXk8KCkgPT4gdm9pZD5cbn0+KTogUmVhY3QuUmVhY3RFbGVtZW50IHtcbiAgLy8gV2UgdXNlIGB1c2VMYXlvdXRFZmZlY3RgIHRvIGd1YXJhbnRlZSB0aGUgY2FsbGJhY2tzIGFyZSBleGVjdXRlZFxuICAvLyBhcyBzb29uIGFzIFJlYWN0IGZsdXNoZXMgdGhlIHVwZGF0ZVxuICBSZWFjdC51c2VMYXlvdXRFZmZlY3QoXG4gICAgKCkgPT4gY2FsbGJhY2tzLmZvckVhY2goKGNhbGxiYWNrKSA9PiBjYWxsYmFjaygpKSxcbiAgICBbY2FsbGJhY2tzXVxuICApXG5cbiAgaWYgKHByb2Nlc3MuZW52Ll9fTkVYVF9URVNUX01PREUpIHtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgcmVhY3QtaG9va3MvcnVsZXMtb2YtaG9va3NcbiAgICBSZWFjdC51c2VFZmZlY3QoKCkgPT4ge1xuICAgICAgd2luZG93Ll9fTkVYVF9IWURSQVRFRCA9IHRydWVcbiAgICAgIHdpbmRvdy5fX05FWFRfSFlEUkFURURfQVQgPSBwZXJmb3JtYW5jZS5ub3coKVxuXG4gICAgICBpZiAod2luZG93Ll9fTkVYVF9IWURSQVRFRF9DQikge1xuICAgICAgICB3aW5kb3cuX19ORVhUX0hZRFJBVEVEX0NCKClcbiAgICAgIH1cbiAgICB9LCBbXSlcbiAgfVxuXG4gIHJldHVybiBjaGlsZHJlbiBhcyBSZWFjdC5SZWFjdEVsZW1lbnRcbn1cblxuZnVuY3Rpb24gZG9SZW5kZXIoaW5wdXQ6IFJlbmRlclJvdXRlSW5mbyk6IFByb21pc2U8YW55PiB7XG4gIGxldCB7IEFwcCwgQ29tcG9uZW50LCBwcm9wcywgZXJyIH06IFJlbmRlclJvdXRlSW5mbyA9IGlucHV0XG4gIGxldCBzdHlsZVNoZWV0czogU3R5bGVTaGVldFR1cGxlW10gfCB1bmRlZmluZWQgPVxuICAgICdpbml0aWFsJyBpbiBpbnB1dCA/IHVuZGVmaW5lZCA6IGlucHV0LnN0eWxlU2hlZXRzXG4gIENvbXBvbmVudCA9IENvbXBvbmVudCB8fCBsYXN0QXBwUHJvcHMuQ29tcG9uZW50XG4gIHByb3BzID0gcHJvcHMgfHwgbGFzdEFwcFByb3BzLnByb3BzXG5cbiAgY29uc3QgYXBwUHJvcHM6IEFwcFByb3BzID0ge1xuICAgIC4uLnByb3BzLFxuICAgIENvbXBvbmVudCxcbiAgICBlcnIsXG4gICAgcm91dGVyLFxuICB9XG4gIC8vIGxhc3RBcHBQcm9wcyBoYXMgdG8gYmUgc2V0IGJlZm9yZSBSZWFjdERvbS5yZW5kZXIgdG8gYWNjb3VudCBmb3IgUmVhY3REb20gdGhyb3dpbmcgYW4gZXJyb3IuXG4gIGxhc3RBcHBQcm9wcyA9IGFwcFByb3BzXG5cbiAgbGV0IGNhbmNlbGVkOiBib29sZWFuID0gZmFsc2VcbiAgbGV0IHJlc29sdmVQcm9taXNlOiAoKSA9PiB2b2lkXG4gIGNvbnN0IHJlbmRlclByb21pc2UgPSBuZXcgUHJvbWlzZTx2b2lkPigocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgaWYgKGxhc3RSZW5kZXJSZWplY3QpIHtcbiAgICAgIGxhc3RSZW5kZXJSZWplY3QoKVxuICAgIH1cbiAgICByZXNvbHZlUHJvbWlzZSA9ICgpID0+IHtcbiAgICAgIGxhc3RSZW5kZXJSZWplY3QgPSBudWxsXG4gICAgICByZXNvbHZlKClcbiAgICB9XG4gICAgbGFzdFJlbmRlclJlamVjdCA9ICgpID0+IHtcbiAgICAgIGNhbmNlbGVkID0gdHJ1ZVxuICAgICAgbGFzdFJlbmRlclJlamVjdCA9IG51bGxcblxuICAgICAgY29uc3QgZXJyb3I6IGFueSA9IG5ldyBFcnJvcignQ2FuY2VsIHJlbmRlcmluZyByb3V0ZScpXG4gICAgICBlcnJvci5jYW5jZWxsZWQgPSB0cnVlXG4gICAgICByZWplY3QoZXJyb3IpXG4gICAgfVxuICB9KVxuXG4gIC8vIFRoaXMgZnVuY3Rpb24gaGFzIGEgcmV0dXJuIHR5cGUgdG8gZW5zdXJlIGl0IGRvZXNuJ3Qgc3RhcnQgcmV0dXJuaW5nIGFcbiAgLy8gUHJvbWlzZS4gSXQgc2hvdWxkIHJlbWFpbiBzeW5jaHJvbm91cy5cbiAgZnVuY3Rpb24gb25TdGFydCgpOiBib29sZWFuIHtcbiAgICBpZiAoXG4gICAgICAhc3R5bGVTaGVldHMgfHxcbiAgICAgIC8vIFdlIHVzZSBgc3R5bGUtbG9hZGVyYCBpbiBkZXZlbG9wbWVudCwgc28gd2UgZG9uJ3QgbmVlZCB0byBkbyBhbnl0aGluZ1xuICAgICAgLy8gdW5sZXNzIHdlJ3JlIGluIHByb2R1Y3Rpb246XG4gICAgICBwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nXG4gICAgKSB7XG4gICAgICByZXR1cm4gZmFsc2VcbiAgICB9XG5cbiAgICBjb25zdCBjdXJyZW50U3R5bGVUYWdzOiBIVE1MU3R5bGVFbGVtZW50W10gPSBsb29zZVRvQXJyYXk8SFRNTFN0eWxlRWxlbWVudD4oXG4gICAgICBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCdzdHlsZVtkYXRhLW4taHJlZl0nKVxuICAgIClcbiAgICBjb25zdCBjdXJyZW50SHJlZnM6IFNldDxzdHJpbmcgfCBudWxsPiA9IG5ldyBTZXQoXG4gICAgICBjdXJyZW50U3R5bGVUYWdzLm1hcCgodGFnKSA9PiB0YWcuZ2V0QXR0cmlidXRlKCdkYXRhLW4taHJlZicpKVxuICAgIClcblxuICAgIGNvbnN0IG5vc2NyaXB0OiBFbGVtZW50IHwgbnVsbCA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoXG4gICAgICAnbm9zY3JpcHRbZGF0YS1uLWNzc10nXG4gICAgKVxuICAgIGNvbnN0IG5vbmNlOiBzdHJpbmcgfCBudWxsIHwgdW5kZWZpbmVkID1cbiAgICAgIG5vc2NyaXB0Py5nZXRBdHRyaWJ1dGUoJ2RhdGEtbi1jc3MnKVxuXG4gICAgc3R5bGVTaGVldHMuZm9yRWFjaCgoeyBocmVmLCB0ZXh0IH06IHsgaHJlZjogc3RyaW5nOyB0ZXh0OiBhbnkgfSkgPT4ge1xuICAgICAgaWYgKCFjdXJyZW50SHJlZnMuaGFzKGhyZWYpKSB7XG4gICAgICAgIGNvbnN0IHN0eWxlVGFnID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc3R5bGUnKVxuICAgICAgICBzdHlsZVRhZy5zZXRBdHRyaWJ1dGUoJ2RhdGEtbi1ocmVmJywgaHJlZilcbiAgICAgICAgc3R5bGVUYWcuc2V0QXR0cmlidXRlKCdtZWRpYScsICd4JylcblxuICAgICAgICBpZiAobm9uY2UpIHtcbiAgICAgICAgICBzdHlsZVRhZy5zZXRBdHRyaWJ1dGUoJ25vbmNlJywgbm9uY2UpXG4gICAgICAgIH1cblxuICAgICAgICBkb2N1bWVudC5oZWFkLmFwcGVuZENoaWxkKHN0eWxlVGFnKVxuICAgICAgICBzdHlsZVRhZy5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZSh0ZXh0KSlcbiAgICAgIH1cbiAgICB9KVxuICAgIHJldHVybiB0cnVlXG4gIH1cblxuICBmdW5jdGlvbiBvbkhlYWRDb21taXQoKTogdm9pZCB7XG4gICAgaWYgKFxuICAgICAgLy8gVHVyYm9wYWNrIGhhcyBpdCdzIG93biBjc3MgaW5qZWN0aW9uIGhhbmRsaW5nLCB0aGlzIGNvZGUgZW5kcyB1cCByZW1vdmluZyB0aGUgQ1NTLlxuICAgICAgIXByb2Nlc3MuZW52LlRVUkJPUEFDSyAmJlxuICAgICAgLy8gV2UgdXNlIGBzdHlsZS1sb2FkZXJgIGluIGRldmVsb3BtZW50LCBzbyB3ZSBkb24ndCBuZWVkIHRvIGRvIGFueXRoaW5nXG4gICAgICAvLyB1bmxlc3Mgd2UncmUgaW4gcHJvZHVjdGlvbjpcbiAgICAgIHByb2Nlc3MuZW52Lk5PREVfRU5WID09PSAncHJvZHVjdGlvbicgJiZcbiAgICAgIC8vIFdlIGNhbiBza2lwIHRoaXMgZHVyaW5nIGh5ZHJhdGlvbi4gUnVubmluZyBpdCB3b250IGNhdXNlIGFueSBoYXJtLCBidXRcbiAgICAgIC8vIHdlIG1heSBhcyB3ZWxsIHNhdmUgdGhlIENQVSBjeWNsZXM6XG4gICAgICBzdHlsZVNoZWV0cyAmJlxuICAgICAgLy8gRW5zdXJlIHRoaXMgcmVuZGVyIHdhcyBub3QgY2FuY2VsZWRcbiAgICAgICFjYW5jZWxlZFxuICAgICkge1xuICAgICAgY29uc3QgZGVzaXJlZEhyZWZzOiBTZXQ8c3RyaW5nPiA9IG5ldyBTZXQoc3R5bGVTaGVldHMubWFwKChzKSA9PiBzLmhyZWYpKVxuICAgICAgY29uc3QgY3VycmVudFN0eWxlVGFnczogSFRNTFN0eWxlRWxlbWVudFtdID1cbiAgICAgICAgbG9vc2VUb0FycmF5PEhUTUxTdHlsZUVsZW1lbnQ+KFxuICAgICAgICAgIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJ3N0eWxlW2RhdGEtbi1ocmVmXScpXG4gICAgICAgIClcbiAgICAgIGNvbnN0IGN1cnJlbnRIcmVmczogc3RyaW5nW10gPSBjdXJyZW50U3R5bGVUYWdzLm1hcChcbiAgICAgICAgKHRhZykgPT4gdGFnLmdldEF0dHJpYnV0ZSgnZGF0YS1uLWhyZWYnKSFcbiAgICAgIClcblxuICAgICAgLy8gVG9nZ2xlIGA8c3R5bGU+YCB0YWdzIG9uIG9yIG9mZiBkZXBlbmRpbmcgb24gaWYgdGhleSdyZSBuZWVkZWQ6XG4gICAgICBmb3IgKGxldCBpZHggPSAwOyBpZHggPCBjdXJyZW50SHJlZnMubGVuZ3RoOyArK2lkeCkge1xuICAgICAgICBpZiAoZGVzaXJlZEhyZWZzLmhhcyhjdXJyZW50SHJlZnNbaWR4XSkpIHtcbiAgICAgICAgICBjdXJyZW50U3R5bGVUYWdzW2lkeF0ucmVtb3ZlQXR0cmlidXRlKCdtZWRpYScpXG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgY3VycmVudFN0eWxlVGFnc1tpZHhdLnNldEF0dHJpYnV0ZSgnbWVkaWEnLCAneCcpXG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgLy8gUmVvcmRlciBzdHlsZXMgaW50byBpbnRlbmRlZCBvcmRlcjpcbiAgICAgIGxldCByZWZlcmVuY2VOb2RlOiBFbGVtZW50IHwgbnVsbCA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoXG4gICAgICAgICdub3NjcmlwdFtkYXRhLW4tY3NzXSdcbiAgICAgIClcbiAgICAgIGlmIChcbiAgICAgICAgLy8gVGhpcyBzaG91bGQgYmUgYW4gaW52YXJpYW50OlxuICAgICAgICByZWZlcmVuY2VOb2RlXG4gICAgICApIHtcbiAgICAgICAgc3R5bGVTaGVldHMuZm9yRWFjaCgoeyBocmVmIH06IHsgaHJlZjogc3RyaW5nIH0pID0+IHtcbiAgICAgICAgICBjb25zdCB0YXJnZXRUYWc6IEVsZW1lbnQgfCBudWxsID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcihcbiAgICAgICAgICAgIGBzdHlsZVtkYXRhLW4taHJlZj1cIiR7aHJlZn1cIl1gXG4gICAgICAgICAgKVxuICAgICAgICAgIGlmIChcbiAgICAgICAgICAgIC8vIFRoaXMgc2hvdWxkIGJlIGFuIGludmFyaWFudDpcbiAgICAgICAgICAgIHRhcmdldFRhZ1xuICAgICAgICAgICkge1xuICAgICAgICAgICAgcmVmZXJlbmNlTm9kZSEucGFyZW50Tm9kZSEuaW5zZXJ0QmVmb3JlKFxuICAgICAgICAgICAgICB0YXJnZXRUYWcsXG4gICAgICAgICAgICAgIHJlZmVyZW5jZU5vZGUhLm5leHRTaWJsaW5nXG4gICAgICAgICAgICApXG4gICAgICAgICAgICByZWZlcmVuY2VOb2RlID0gdGFyZ2V0VGFnXG4gICAgICAgICAgfVxuICAgICAgICB9KVxuICAgICAgfVxuXG4gICAgICAvLyBGaW5hbGx5LCBjbGVhbiB1cCBzZXJ2ZXIgcmVuZGVyZWQgc3R5bGVzaGVldHM6XG4gICAgICBsb29zZVRvQXJyYXk8SFRNTExpbmtFbGVtZW50PihcbiAgICAgICAgZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnbGlua1tkYXRhLW4tcF0nKVxuICAgICAgKS5mb3JFYWNoKChlbCkgPT4ge1xuICAgICAgICBlbC5wYXJlbnROb2RlIS5yZW1vdmVDaGlsZChlbClcbiAgICAgIH0pXG4gICAgfVxuXG4gICAgaWYgKGlucHV0LnNjcm9sbCkge1xuICAgICAgY29uc3QgeyB4LCB5IH0gPSBpbnB1dC5zY3JvbGxcbiAgICAgIGRpc2FibGVTbW9vdGhTY3JvbGxEdXJpbmdSb3V0ZVRyYW5zaXRpb24oKCkgPT4ge1xuICAgICAgICB3aW5kb3cuc2Nyb2xsVG8oeCwgeSlcbiAgICAgIH0pXG4gICAgfVxuICB9XG5cbiAgZnVuY3Rpb24gb25Sb290Q29tbWl0KCk6IHZvaWQge1xuICAgIHJlc29sdmVQcm9taXNlKClcbiAgfVxuXG4gIG9uU3RhcnQoKVxuXG4gIGNvbnN0IGVsZW06IEpTWC5FbGVtZW50ID0gKFxuICAgIDw+XG4gICAgICA8SGVhZCBjYWxsYmFjaz17b25IZWFkQ29tbWl0fSAvPlxuICAgICAgPEFwcENvbnRhaW5lcj5cbiAgICAgICAge3JlbmRlckFwcChBcHAsIGFwcFByb3BzKX1cbiAgICAgICAgPFBvcnRhbCB0eXBlPVwibmV4dC1yb3V0ZS1hbm5vdW5jZXJcIj5cbiAgICAgICAgICA8Um91dGVBbm5vdW5jZXIgLz5cbiAgICAgICAgPC9Qb3J0YWw+XG4gICAgICA8L0FwcENvbnRhaW5lcj5cbiAgICA8Lz5cbiAgKVxuXG4gIC8vIFdlIGNhdGNoIHJ1bnRpbWUgZXJyb3JzIHVzaW5nIGNvbXBvbmVudERpZENhdGNoIHdoaWNoIHdpbGwgdHJpZ2dlciByZW5kZXJFcnJvclxuICByZW5kZXJSZWFjdEVsZW1lbnQoYXBwRWxlbWVudCEsIChjYWxsYmFjaykgPT4gKFxuICAgIDxSb290IGNhbGxiYWNrcz17W2NhbGxiYWNrLCBvblJvb3RDb21taXRdfT5cbiAgICAgIHtwcm9jZXNzLmVudi5fX05FWFRfU1RSSUNUX01PREUgPyAoXG4gICAgICAgIDxSZWFjdC5TdHJpY3RNb2RlPntlbGVtfTwvUmVhY3QuU3RyaWN0TW9kZT5cbiAgICAgICkgOiAoXG4gICAgICAgIGVsZW1cbiAgICAgICl9XG4gICAgPC9Sb290PlxuICApKVxuXG4gIHJldHVybiByZW5kZXJQcm9taXNlXG59XG5cbmFzeW5jIGZ1bmN0aW9uIHJlbmRlcihyZW5kZXJpbmdQcm9wczogUmVuZGVyUm91dGVJbmZvKTogUHJvbWlzZTx2b2lkPiB7XG4gIC8vIGlmIGFuIGVycm9yIG9jY3VycyBpbiBhIHNlcnZlci1zaWRlIHBhZ2UgKGUuZy4gaW4gZ2V0SW5pdGlhbFByb3BzKSxcbiAgLy8gc2tpcCByZS1yZW5kZXJpbmcgdGhlIGVycm9yIHBhZ2UgY2xpZW50LXNpZGUgYXMgZGF0YS1mZXRjaGluZyBvcGVyYXRpb25zXG4gIC8vIHdpbGwgYWxyZWFkeSBoYXZlIGJlZW4gZG9uZSBvbiB0aGUgc2VydmVyIGFuZCBORVhUX0RBVEEgY29udGFpbnMgdGhlIGNvcnJlY3RcbiAgLy8gZGF0YSBmb3Igc3RyYWlnaHQtZm9yd2FyZCBoeWRyYXRpb24gb2YgdGhlIGVycm9yIHBhZ2VcbiAgaWYgKFxuICAgIHJlbmRlcmluZ1Byb3BzLmVyciAmJlxuICAgIC8vIHJlbmRlcmluZ1Byb3BzLkNvbXBvbmVudCBtaWdodCBiZSB1bmRlZmluZWQgaWYgdGhlcmUgaXMgYSB0b3AvbW9kdWxlLWxldmVsIGVycm9yXG4gICAgKHR5cGVvZiByZW5kZXJpbmdQcm9wcy5Db21wb25lbnQgPT09ICd1bmRlZmluZWQnIHx8XG4gICAgICAhcmVuZGVyaW5nUHJvcHMuaXNIeWRyYXRlUGFzcylcbiAgKSB7XG4gICAgYXdhaXQgcmVuZGVyRXJyb3IocmVuZGVyaW5nUHJvcHMpXG4gICAgcmV0dXJuXG4gIH1cblxuICB0cnkge1xuICAgIGF3YWl0IGRvUmVuZGVyKHJlbmRlcmluZ1Byb3BzKVxuICB9IGNhdGNoIChlcnIpIHtcbiAgICBjb25zdCByZW5kZXJFcnIgPSBnZXRQcm9wZXJFcnJvcihlcnIpXG4gICAgLy8gYnViYmxlIHVwIGNhbmNlbGF0aW9uIGVycm9yc1xuICAgIGlmICgocmVuZGVyRXJyIGFzIEVycm9yICYgeyBjYW5jZWxsZWQ/OiBib29sZWFuIH0pLmNhbmNlbGxlZCkge1xuICAgICAgdGhyb3cgcmVuZGVyRXJyXG4gICAgfVxuXG4gICAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WID09PSAnZGV2ZWxvcG1lbnQnKSB7XG4gICAgICAvLyBFbnN1cmUgdGhpcyBlcnJvciBpcyBkaXNwbGF5ZWQgaW4gdGhlIG92ZXJsYXkgaW4gZGV2ZWxvcG1lbnRcbiAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICB0aHJvdyByZW5kZXJFcnJcbiAgICAgIH0pXG4gICAgfVxuICAgIGF3YWl0IHJlbmRlckVycm9yKHsgLi4ucmVuZGVyaW5nUHJvcHMsIGVycjogcmVuZGVyRXJyIH0pXG4gIH1cbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGh5ZHJhdGUob3B0cz86IHsgYmVmb3JlUmVuZGVyPzogKCkgPT4gUHJvbWlzZTx2b2lkPiB9KSB7XG4gIGxldCBpbml0aWFsRXJyID0gaW5pdGlhbERhdGEuZXJyXG5cbiAgdHJ5IHtcbiAgICBjb25zdCBhcHBFbnRyeXBvaW50ID0gYXdhaXQgcGFnZUxvYWRlci5yb3V0ZUxvYWRlci53aGVuRW50cnlwb2ludCgnL19hcHAnKVxuICAgIGlmICgnZXJyb3InIGluIGFwcEVudHJ5cG9pbnQpIHtcbiAgICAgIHRocm93IGFwcEVudHJ5cG9pbnQuZXJyb3JcbiAgICB9XG5cbiAgICBjb25zdCB7IGNvbXBvbmVudDogYXBwLCBleHBvcnRzOiBtb2QgfSA9IGFwcEVudHJ5cG9pbnRcbiAgICBDYWNoZWRBcHAgPSBhcHAgYXMgQXBwQ29tcG9uZW50XG4gICAgaWYgKG1vZCAmJiBtb2QucmVwb3J0V2ViVml0YWxzKSB7XG4gICAgICBvblBlcmZFbnRyeSA9ICh7XG4gICAgICAgIGlkLFxuICAgICAgICBuYW1lLFxuICAgICAgICBzdGFydFRpbWUsXG4gICAgICAgIHZhbHVlLFxuICAgICAgICBkdXJhdGlvbixcbiAgICAgICAgZW50cnlUeXBlLFxuICAgICAgICBlbnRyaWVzLFxuICAgICAgICBhdHRyaWJ1dGlvbixcbiAgICAgIH06IGFueSk6IHZvaWQgPT4ge1xuICAgICAgICAvLyBDb21iaW5lcyB0aW1lc3RhbXAgd2l0aCByYW5kb20gbnVtYmVyIGZvciB1bmlxdWUgSURcbiAgICAgICAgY29uc3QgdW5pcXVlSUQ6IHN0cmluZyA9IGAke0RhdGUubm93KCl9LSR7XG4gICAgICAgICAgTWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpICogKDllMTIgLSAxKSkgKyAxZTEyXG4gICAgICAgIH1gXG4gICAgICAgIGxldCBwZXJmU3RhcnRFbnRyeTogc3RyaW5nIHwgdW5kZWZpbmVkXG5cbiAgICAgICAgaWYgKGVudHJpZXMgJiYgZW50cmllcy5sZW5ndGgpIHtcbiAgICAgICAgICBwZXJmU3RhcnRFbnRyeSA9IGVudHJpZXNbMF0uc3RhcnRUaW1lXG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCB3ZWJWaXRhbHM6IE5leHRXZWJWaXRhbHNNZXRyaWMgPSB7XG4gICAgICAgICAgaWQ6IGlkIHx8IHVuaXF1ZUlELFxuICAgICAgICAgIG5hbWUsXG4gICAgICAgICAgc3RhcnRUaW1lOiBzdGFydFRpbWUgfHwgcGVyZlN0YXJ0RW50cnksXG4gICAgICAgICAgdmFsdWU6IHZhbHVlID09IG51bGwgPyBkdXJhdGlvbiA6IHZhbHVlLFxuICAgICAgICAgIGxhYmVsOlxuICAgICAgICAgICAgZW50cnlUeXBlID09PSAnbWFyaycgfHwgZW50cnlUeXBlID09PSAnbWVhc3VyZSdcbiAgICAgICAgICAgICAgPyAnY3VzdG9tJ1xuICAgICAgICAgICAgICA6ICd3ZWItdml0YWwnLFxuICAgICAgICB9XG4gICAgICAgIGlmIChhdHRyaWJ1dGlvbikge1xuICAgICAgICAgIHdlYlZpdGFscy5hdHRyaWJ1dGlvbiA9IGF0dHJpYnV0aW9uXG4gICAgICAgIH1cbiAgICAgICAgbW9kLnJlcG9ydFdlYlZpdGFscyh3ZWJWaXRhbHMpXG4gICAgICB9XG4gICAgfVxuXG4gICAgY29uc3QgcGFnZUVudHJ5cG9pbnQgPVxuICAgICAgLy8gVGhlIGRldiBzZXJ2ZXIgZmFpbHMgdG8gc2VydmUgc2NyaXB0IGFzc2V0cyB3aGVuIHRoZXJlJ3MgYSBoeWRyYXRpb25cbiAgICAgIC8vIGVycm9yLCBzbyB3ZSBuZWVkIHRvIHNraXAgd2FpdGluZyBmb3IgdGhlIGVudHJ5cG9pbnQuXG4gICAgICBwcm9jZXNzLmVudi5OT0RFX0VOViA9PT0gJ2RldmVsb3BtZW50JyAmJiBpbml0aWFsRGF0YS5lcnJcbiAgICAgICAgPyB7IGVycm9yOiBpbml0aWFsRGF0YS5lcnIgfVxuICAgICAgICA6IGF3YWl0IHBhZ2VMb2FkZXIucm91dGVMb2FkZXIud2hlbkVudHJ5cG9pbnQoaW5pdGlhbERhdGEucGFnZSlcbiAgICBpZiAoJ2Vycm9yJyBpbiBwYWdlRW50cnlwb2ludCkge1xuICAgICAgdGhyb3cgcGFnZUVudHJ5cG9pbnQuZXJyb3JcbiAgICB9XG4gICAgQ2FjaGVkQ29tcG9uZW50ID0gcGFnZUVudHJ5cG9pbnQuY29tcG9uZW50XG5cbiAgICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJykge1xuICAgICAgY29uc3QgeyBpc1ZhbGlkRWxlbWVudFR5cGUgfSA9XG4gICAgICAgIHJlcXVpcmUoJ25leHQvZGlzdC9jb21waWxlZC9yZWFjdC1pcycpIGFzIHR5cGVvZiBpbXBvcnQoJ25leHQvZGlzdC9jb21waWxlZC9yZWFjdC1pcycpXG4gICAgICBpZiAoIWlzVmFsaWRFbGVtZW50VHlwZShDYWNoZWRDb21wb25lbnQpKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgICBgVGhlIGRlZmF1bHQgZXhwb3J0IGlzIG5vdCBhIFJlYWN0IENvbXBvbmVudCBpbiBwYWdlOiBcIiR7aW5pdGlhbERhdGEucGFnZX1cImBcbiAgICAgICAgKVxuICAgICAgfVxuICAgIH1cbiAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAvLyBUaGlzIGNhdGNoZXMgZXJyb3JzIGxpa2UgdGhyb3dpbmcgaW4gdGhlIHRvcCBsZXZlbCBvZiBhIG1vZHVsZVxuICAgIGluaXRpYWxFcnIgPSBnZXRQcm9wZXJFcnJvcihlcnJvcilcbiAgfVxuXG4gIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViA9PT0gJ2RldmVsb3BtZW50Jykge1xuICAgIGNvbnN0IGdldFNlcnZlckVycm9yID0gKFxuICAgICAgcmVxdWlyZSgnLi4vc2VydmVyL2Rldi9ub2RlLXN0YWNrLWZyYW1lcycpIGFzIHR5cGVvZiBpbXBvcnQoJy4uL3NlcnZlci9kZXYvbm9kZS1zdGFjay1mcmFtZXMnKVxuICAgICkuZ2V0U2VydmVyRXJyb3JcbiAgICAvLyBTZXJ2ZXItc2lkZSBydW50aW1lIGVycm9ycyBuZWVkIHRvIGJlIHJlLXRocm93biBvbiB0aGUgY2xpZW50LXNpZGUgc29cbiAgICAvLyB0aGF0IHRoZSBvdmVybGF5IGlzIHJlbmRlcmVkLlxuICAgIGlmIChpbml0aWFsRXJyKSB7XG4gICAgICBpZiAoaW5pdGlhbEVyciA9PT0gaW5pdGlhbERhdGEuZXJyKSB7XG4gICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgIGxldCBlcnJvclxuICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAvLyBHZW5lcmF0ZSBhIG5ldyBlcnJvciBvYmplY3QuIFdlIGB0aHJvd2AgaXQgYmVjYXVzZSBzb21lIGJyb3dzZXJzXG4gICAgICAgICAgICAvLyB3aWxsIHNldCB0aGUgYHN0YWNrYCB3aGVuIHRocm93biwgYW5kIHdlIHdhbnQgdG8gZW5zdXJlIG91cnMgaXNcbiAgICAgICAgICAgIC8vIG5vdCBvdmVycmlkZGVuIHdoZW4gd2UgcmUtdGhyb3cgaXQgYmVsb3cuXG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoaW5pdGlhbEVyciEubWVzc2FnZSlcbiAgICAgICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgICAgICBlcnJvciA9IGUgYXMgRXJyb3JcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBlcnJvci5uYW1lID0gaW5pdGlhbEVyciEubmFtZVxuICAgICAgICAgIGVycm9yLnN0YWNrID0gaW5pdGlhbEVyciEuc3RhY2tcbiAgICAgICAgICBjb25zdCBlcnJTb3VyY2UgPSBpbml0aWFsRXJyLnNvdXJjZSFcblxuICAgICAgICAgIC8vIEluIGRldmVsb3BtZW50LCBlcnJvciB0aGUgbmF2aWdhdGlvbiBBUEkgdXNhZ2UgaW4gcnVudGltZSxcbiAgICAgICAgICAvLyBzaW5jZSBpdCdzIG5vdCBhbGxvd2VkIHRvIGJlIHVzZWQgaW4gcGFnZXMgcm91dGVyIGFzIGl0IGRvZXNuJ3QgY29udGFpbiBlcnJvciBib3VuZGFyeSBsaWtlIGFwcCByb3V0ZXIuXG4gICAgICAgICAgaWYgKGlzTmV4dFJvdXRlckVycm9yKGluaXRpYWxFcnIpKSB7XG4gICAgICAgICAgICBlcnJvci5tZXNzYWdlID1cbiAgICAgICAgICAgICAgJ05leHQuanMgbmF2aWdhdGlvbiBBUEkgaXMgbm90IGFsbG93ZWQgdG8gYmUgdXNlZCBpbiBQYWdlcyBSb3V0ZXIuJ1xuICAgICAgICAgIH1cblxuICAgICAgICAgIHRocm93IGdldFNlcnZlckVycm9yKGVycm9yLCBlcnJTb3VyY2UpXG4gICAgICAgIH0pXG4gICAgICB9XG4gICAgICAvLyBXZSByZXBsYWNlZCB0aGUgc2VydmVyLXNpZGUgZXJyb3Igd2l0aCBhIGNsaWVudC1zaWRlIGVycm9yLCBhbmQgc2hvdWxkXG4gICAgICAvLyBubyBsb25nZXIgcmV3cml0ZSB0aGUgc3RhY2sgdHJhY2UgdG8gYSBOb2RlIGVycm9yLlxuICAgICAgZWxzZSB7XG4gICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgIHRocm93IGluaXRpYWxFcnJcbiAgICAgICAgfSlcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBpZiAod2luZG93Ll9fTkVYVF9QUkVMT0FEUkVBRFkpIHtcbiAgICBhd2FpdCB3aW5kb3cuX19ORVhUX1BSRUxPQURSRUFEWShpbml0aWFsRGF0YS5keW5hbWljSWRzKVxuICB9XG5cbiAgcm91dGVyID0gY3JlYXRlUm91dGVyKGluaXRpYWxEYXRhLnBhZ2UsIGluaXRpYWxEYXRhLnF1ZXJ5LCBhc1BhdGgsIHtcbiAgICBpbml0aWFsUHJvcHM6IGluaXRpYWxEYXRhLnByb3BzLFxuICAgIHBhZ2VMb2FkZXIsXG4gICAgQXBwOiBDYWNoZWRBcHAsXG4gICAgQ29tcG9uZW50OiBDYWNoZWRDb21wb25lbnQsXG4gICAgd3JhcEFwcCxcbiAgICBlcnI6IGluaXRpYWxFcnIsXG4gICAgaXNGYWxsYmFjazogQm9vbGVhbihpbml0aWFsRGF0YS5pc0ZhbGxiYWNrKSxcbiAgICBzdWJzY3JpcHRpb246IChpbmZvLCBBcHAsIHNjcm9sbCkgPT5cbiAgICAgIHJlbmRlcihcbiAgICAgICAgT2JqZWN0LmFzc2lnbjxcbiAgICAgICAgICB7fSxcbiAgICAgICAgICBPbWl0PFJlbmRlclJvdXRlSW5mbywgJ0FwcCcgfCAnc2Nyb2xsJz4sXG4gICAgICAgICAgUGljazxSZW5kZXJSb3V0ZUluZm8sICdBcHAnIHwgJ3Njcm9sbCc+XG4gICAgICAgID4oe30sIGluZm8sIHtcbiAgICAgICAgICBBcHAsXG4gICAgICAgICAgc2Nyb2xsLFxuICAgICAgICB9KSBhcyBSZW5kZXJSb3V0ZUluZm9cbiAgICAgICksXG4gICAgbG9jYWxlOiBpbml0aWFsRGF0YS5sb2NhbGUsXG4gICAgbG9jYWxlczogaW5pdGlhbERhdGEubG9jYWxlcyxcbiAgICBkZWZhdWx0TG9jYWxlLFxuICAgIGRvbWFpbkxvY2FsZXM6IGluaXRpYWxEYXRhLmRvbWFpbkxvY2FsZXMsXG4gICAgaXNQcmV2aWV3OiBpbml0aWFsRGF0YS5pc1ByZXZpZXcsXG4gIH0pXG5cbiAgaW5pdGlhbE1hdGNoZXNNaWRkbGV3YXJlID0gYXdhaXQgcm91dGVyLl9pbml0aWFsTWF0Y2hlc01pZGRsZXdhcmVQcm9taXNlXG5cbiAgY29uc3QgcmVuZGVyQ3R4OiBSZW5kZXJSb3V0ZUluZm8gPSB7XG4gICAgQXBwOiBDYWNoZWRBcHAsXG4gICAgaW5pdGlhbDogdHJ1ZSxcbiAgICBDb21wb25lbnQ6IENhY2hlZENvbXBvbmVudCxcbiAgICBwcm9wczogaW5pdGlhbERhdGEucHJvcHMsXG4gICAgZXJyOiBpbml0aWFsRXJyLFxuICAgIGlzSHlkcmF0ZVBhc3M6IHRydWUsXG4gIH1cblxuICBpZiAob3B0cz8uYmVmb3JlUmVuZGVyKSB7XG4gICAgYXdhaXQgb3B0cy5iZWZvcmVSZW5kZXIoKVxuICB9XG5cbiAgcmVuZGVyKHJlbmRlckN0eClcbn1cbiJdLCJuYW1lcyI6WyJlbWl0dGVyIiwiaHlkcmF0ZSIsImluaXRpYWxpemUiLCJyb3V0ZXIiLCJ2ZXJzaW9uIiwicHJvY2VzcyIsImVudiIsIl9fTkVYVF9WRVJTSU9OIiwibWl0dCIsImxvb3NlVG9BcnJheSIsImlucHV0Iiwic2xpY2UiLCJjYWxsIiwiaW5pdGlhbERhdGEiLCJkZWZhdWx0TG9jYWxlIiwidW5kZWZpbmVkIiwiYXNQYXRoIiwicGFnZUxvYWRlciIsImFwcEVsZW1lbnQiLCJoZWFkTWFuYWdlciIsImluaXRpYWxNYXRjaGVzTWlkZGxld2FyZSIsImxhc3RBcHBQcm9wcyIsImxhc3RSZW5kZXJSZWplY3QiLCJkZXZDbGllbnQiLCJDYWNoZWRBcHAiLCJvblBlcmZFbnRyeSIsIkNhY2hlZENvbXBvbmVudCIsIkNvbnRhaW5lciIsIlJlYWN0IiwiQ29tcG9uZW50IiwiY29tcG9uZW50RGlkQ2F0Y2giLCJjb21wb25lbnRFcnIiLCJpbmZvIiwicHJvcHMiLCJmbiIsImNvbXBvbmVudERpZE1vdW50Iiwic2Nyb2xsVG9IYXNoIiwiaXNTc3IiLCJpc0ZhbGxiYWNrIiwibmV4dEV4cG9ydCIsImlzRHluYW1pY1JvdXRlIiwicGF0aG5hbWUiLCJsb2NhdGlvbiIsInNlYXJjaCIsIl9fTkVYVF9IQVNfUkVXUklURVMiLCJfX05fU1NHIiwicmVwbGFjZSIsIlN0cmluZyIsImFzc2lnbiIsInVybFF1ZXJ5VG9TZWFyY2hQYXJhbXMiLCJxdWVyeSIsIlVSTFNlYXJjaFBhcmFtcyIsIl9oIiwic2hhbGxvdyIsImNhdGNoIiwiZXJyIiwiY2FuY2VsbGVkIiwiY29tcG9uZW50RGlkVXBkYXRlIiwiaGFzaCIsInN1YnN0cmluZyIsImVsIiwiZG9jdW1lbnQiLCJnZXRFbGVtZW50QnlJZCIsInNldFRpbWVvdXQiLCJzY3JvbGxJbnRvVmlldyIsInJlbmRlciIsIk5PREVfRU5WIiwiY2hpbGRyZW4iLCJQYWdlc0Rldk92ZXJsYXlCcmlkZ2UiLCJyZXF1aXJlIiwib3B0cyIsInRyYWNlciIsIm9uU3BhbkVuZCIsImRlZmF1bHQiLCJKU09OIiwicGFyc2UiLCJ0ZXh0Q29udGVudCIsIndpbmRvdyIsIl9fTkVYVF9EQVRBX18iLCJwcmVmaXgiLCJhc3NldFByZWZpeCIsInNlbGYiLCJfX25leHRfc2V0X3B1YmxpY19wYXRoX18iLCJzZXRDb25maWciLCJzZXJ2ZXJSdW50aW1lQ29uZmlnIiwicHVibGljUnVudGltZUNvbmZpZyIsInJ1bnRpbWVDb25maWciLCJnZXRVUkwiLCJoYXNCYXNlUGF0aCIsInJlbW92ZUJhc2VQYXRoIiwiX19ORVhUX0kxOE5fU1VQUE9SVCIsIm5vcm1hbGl6ZUxvY2FsZVBhdGgiLCJkZXRlY3REb21haW5Mb2NhbGUiLCJwYXJzZVJlbGF0aXZlVXJsIiwiZm9ybWF0VXJsIiwibG9jYWxlcyIsInBhcnNlZEFzIiwibG9jYWxlUGF0aFJlc3VsdCIsImRldGVjdGVkTG9jYWxlIiwibG9jYWxlIiwiZGV0ZWN0ZWREb21haW4iLCJfX05FWFRfSTE4Tl9ET01BSU5TIiwiaG9zdG5hbWUiLCJzY3JpcHRMb2FkZXIiLCJpbml0U2NyaXB0TG9hZGVyIiwiUGFnZUxvYWRlciIsImJ1aWxkSWQiLCJyZWdpc3RlciIsInIiLCJmIiwicm91dGVMb2FkZXIiLCJvbkVudHJ5cG9pbnQiLCJfX05FWFRfUCIsIm1hcCIsInAiLCJwdXNoIiwiaW5pdEhlYWRNYW5hZ2VyIiwiZ2V0SXNTc3IiLCJyZW5kZXJBcHAiLCJBcHAiLCJhcHBQcm9wcyIsIkFwcENvbnRhaW5lciIsImFkYXB0ZWRGb3JBcHBSb3V0ZXIiLCJ1c2VNZW1vIiwiYWRhcHRGb3JBcHBSb3V0ZXJJbnN0YW5jZSIsImVycm9yIiwicmVuZGVyRXJyb3IiLCJjb25zb2xlIiwiQXBwUm91dGVyQ29udGV4dCIsIlByb3ZpZGVyIiwidmFsdWUiLCJTZWFyY2hQYXJhbXNDb250ZXh0IiwiYWRhcHRGb3JTZWFyY2hQYXJhbXMiLCJQYXRobmFtZUNvbnRleHRQcm92aWRlckFkYXB0ZXIiLCJpc0F1dG9FeHBvcnQiLCJhdXRvRXhwb3J0IiwiUGF0aFBhcmFtc0NvbnRleHQiLCJhZGFwdEZvclBhdGhQYXJhbXMiLCJSb3V0ZXJDb250ZXh0IiwibWFrZVB1YmxpY1JvdXRlckluc3RhbmNlIiwiSGVhZE1hbmFnZXJDb250ZXh0IiwiSW1hZ2VDb25maWdDb250ZXh0IiwiX19ORVhUX0lNQUdFX09QVFMiLCJ3cmFwQXBwIiwid3JhcHBlZEFwcFByb3BzIiwicmVuZGVyRXJyb3JQcm9wcyIsIm9uVW5yZWNvdmVyYWJsZUVycm9yIiwiZG9SZW5kZXIiLCJzdHlsZVNoZWV0cyIsImxvYWRQYWdlIiwidGhlbiIsInBhZ2UiLCJFcnJvckNvbXBvbmVudCIsImVycm9yTW9kdWxlIiwiYXBwTW9kdWxlIiwibSIsIkFwcFRyZWUiLCJhcHBDdHgiLCJjdHgiLCJQcm9taXNlIiwicmVzb2x2ZSIsImxvYWRHZXRJbml0aWFsUHJvcHMiLCJpbml0UHJvcHMiLCJIZWFkIiwiY2FsbGJhY2siLCJ1c2VMYXlvdXRFZmZlY3QiLCJwZXJmb3JtYW5jZU1hcmtzIiwibmF2aWdhdGlvblN0YXJ0IiwiYmVmb3JlUmVuZGVyIiwiYWZ0ZXJSZW5kZXIiLCJhZnRlckh5ZHJhdGUiLCJyb3V0ZUNoYW5nZSIsInBlcmZvcm1hbmNlTWVhc3VyZXMiLCJoeWRyYXRpb24iLCJiZWZvcmVIeWRyYXRpb24iLCJyb3V0ZUNoYW5nZVRvUmVuZGVyIiwicmVhY3RSb290Iiwic2hvdWxkSHlkcmF0ZSIsImNsZWFyTWFya3MiLCJmb3JFYWNoIiwibWFyayIsInBlcmZvcm1hbmNlIiwibWFya0h5ZHJhdGVDb21wbGV0ZSIsIlNUIiwiaGFzQmVmb3JlUmVuZGVyTWFyayIsImdldEVudHJpZXNCeU5hbWUiLCJsZW5ndGgiLCJiZWZvcmVIeWRyYXRpb25NZWFzdXJlIiwibWVhc3VyZSIsImh5ZHJhdGlvbk1lYXN1cmUiLCJzdGFydFNwYW4iLCJzdGFydFRpbWUiLCJ0aW1lT3JpZ2luIiwiYXR0cmlidXRlcyIsImVuZCIsImR1cmF0aW9uIiwibWFya1JlbmRlckNvbXBsZXRlIiwibmF2U3RhcnRFbnRyaWVzIiwibmFtZSIsImNsZWFyTWVhc3VyZXMiLCJyZW5kZXJSZWFjdEVsZW1lbnQiLCJkb21FbCIsInJlYWN0RWwiLCJSZWFjdERPTSIsImh5ZHJhdGVSb290Iiwib25SZWNvdmVyYWJsZUVycm9yIiwic3RhcnRUcmFuc2l0aW9uIiwiUm9vdCIsImNhbGxiYWNrcyIsIl9fTkVYVF9URVNUX01PREUiLCJ1c2VFZmZlY3QiLCJfX05FWFRfSFlEUkFURUQiLCJfX05FWFRfSFlEUkFURURfQVQiLCJub3ciLCJfX05FWFRfSFlEUkFURURfQ0IiLCJjYW5jZWxlZCIsInJlc29sdmVQcm9taXNlIiwicmVuZGVyUHJvbWlzZSIsInJlamVjdCIsIkVycm9yIiwib25TdGFydCIsImN1cnJlbnRTdHlsZVRhZ3MiLCJxdWVyeVNlbGVjdG9yQWxsIiwiY3VycmVudEhyZWZzIiwiU2V0IiwidGFnIiwiZ2V0QXR0cmlidXRlIiwibm9zY3JpcHQiLCJxdWVyeVNlbGVjdG9yIiwibm9uY2UiLCJocmVmIiwidGV4dCIsImhhcyIsInN0eWxlVGFnIiwiY3JlYXRlRWxlbWVudCIsInNldEF0dHJpYnV0ZSIsImhlYWQiLCJhcHBlbmRDaGlsZCIsImNyZWF0ZVRleHROb2RlIiwib25IZWFkQ29tbWl0IiwiVFVSQk9QQUNLIiwiZGVzaXJlZEhyZWZzIiwicyIsImlkeCIsInJlbW92ZUF0dHJpYnV0ZSIsInJlZmVyZW5jZU5vZGUiLCJ0YXJnZXRUYWciLCJwYXJlbnROb2RlIiwiaW5zZXJ0QmVmb3JlIiwibmV4dFNpYmxpbmciLCJyZW1vdmVDaGlsZCIsInNjcm9sbCIsIngiLCJ5IiwiZGlzYWJsZVNtb290aFNjcm9sbER1cmluZ1JvdXRlVHJhbnNpdGlvbiIsInNjcm9sbFRvIiwib25Sb290Q29tbWl0IiwiZWxlbSIsIlBvcnRhbCIsInR5cGUiLCJSb3V0ZUFubm91bmNlciIsIl9fTkVYVF9TVFJJQ1RfTU9ERSIsIlN0cmljdE1vZGUiLCJyZW5kZXJpbmdQcm9wcyIsImlzSHlkcmF0ZVBhc3MiLCJyZW5kZXJFcnIiLCJnZXRQcm9wZXJFcnJvciIsImluaXRpYWxFcnIiLCJhcHBFbnRyeXBvaW50Iiwid2hlbkVudHJ5cG9pbnQiLCJjb21wb25lbnQiLCJhcHAiLCJleHBvcnRzIiwibW9kIiwicmVwb3J0V2ViVml0YWxzIiwiaWQiLCJlbnRyeVR5cGUiLCJlbnRyaWVzIiwiYXR0cmlidXRpb24iLCJ1bmlxdWVJRCIsIkRhdGUiLCJNYXRoIiwiZmxvb3IiLCJyYW5kb20iLCJwZXJmU3RhcnRFbnRyeSIsIndlYlZpdGFscyIsImxhYmVsIiwicGFnZUVudHJ5cG9pbnQiLCJpc1ZhbGlkRWxlbWVudFR5cGUiLCJnZXRTZXJ2ZXJFcnJvciIsIm1lc3NhZ2UiLCJlIiwic3RhY2siLCJlcnJTb3VyY2UiLCJzb3VyY2UiLCJpc05leHRSb3V0ZXJFcnJvciIsIl9fTkVYVF9QUkVMT0FEUkVBRFkiLCJkeW5hbWljSWRzIiwiY3JlYXRlUm91dGVyIiwiaW5pdGlhbFByb3BzIiwiQm9vbGVhbiIsInN1YnNjcmlwdGlvbiIsIk9iamVjdCIsImRvbWFpbkxvY2FsZXMiLCJpc1ByZXZpZXciLCJfaW5pdGlhbE1hdGNoZXNNaWRkbGV3YXJlUHJvbWlzZSIsInJlbmRlckN0eCIsImluaXRpYWwiXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(pages-dir-browser)/./node_modules/next/dist/client/index.js\n")); - -/***/ }), - -/***/ "(pages-dir-browser)/./node_modules/next/dist/client/next-dev.js": -/*!***************************************************!*\ - !*** ./node_modules/next/dist/client/next-dev.js ***! - \***************************************************/ -/***/ ((module, exports, __webpack_require__) => { - -"use strict"; -eval(__webpack_require__.ts("// TODO: Remove use of `any` type.\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nconst _interop_require_default = __webpack_require__(/*! @swc/helpers/_/_interop_require_default */ \"(pages-dir-browser)/./node_modules/@swc/helpers/esm/_interop_require_default.js\");\n__webpack_require__(/*! ./webpack */ \"(pages-dir-browser)/./node_modules/next/dist/client/webpack.js\");\nconst _ = __webpack_require__(/*! ./ */ \"(pages-dir-browser)/./node_modules/next/dist/client/index.js\");\nconst _hotmiddlewareclient = /*#__PURE__*/ _interop_require_default._(__webpack_require__(/*! ./dev/hot-middleware-client */ \"(pages-dir-browser)/./node_modules/next/dist/client/dev/hot-middleware-client.js\"));\nconst _pagebootstrap = __webpack_require__(/*! ./page-bootstrap */ \"(pages-dir-browser)/./node_modules/next/dist/client/page-bootstrap.js\");\nwindow.next = {\n version: _.version,\n // router is initialized later so it has to be live-binded\n get router () {\n return _.router;\n },\n emitter: _.emitter\n};\nconst devClient = (0, _hotmiddlewareclient.default)();\n(0, _.initialize)({\n devClient\n}).then((param)=>{\n let { assetPrefix } = param;\n return (0, _pagebootstrap.pageBootstrap)(assetPrefix);\n}).catch((err)=>{\n console.error('Error was not caught', err);\n});\nif ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=next-dev.js.map\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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvY2xpZW50L25leHQtZGV2LmpzIiwibWFwcGluZ3MiOiJBQUFBLGtDQUFrQzs7Ozs7O29CQUMzQjs4QkFDOEM7MEZBQ2pDOzJDQUNVO0FBRTlCQSxPQUFPQyxJQUFJLEdBQUc7SUFDWkMsU0FBQUEsRUFBQUEsT0FBTztJQUNQLDBEQUEwRDtJQUMxRCxJQUFJQyxVQUFTO1FBQ1gsT0FBT0EsRUFBQUEsTUFBTTtJQUNmO0lBQ0FDLFNBQUFBLEVBQUFBLE9BQU87QUFDVDtBQUVBLE1BQU1DLFlBQVlDLENBQUFBLEdBQUFBLHFCQUFBQSxPQUFBQTtBQUNsQkMsQ0FBQUEsR0FBQUEsRUFBQUEsVUFBQUEsRUFBVztJQUFFRjtBQUFVLEdBQ3BCRyxJQUFJLENBQUM7UUFBQyxFQUFFQyxXQUFXLEVBQUU7SUFDcEIsT0FBT0MsQ0FBQUEsR0FBQUEsZUFBQUEsYUFBQUEsRUFBY0Q7QUFDdkIsR0FDQ0UsS0FBSyxDQUFDLENBQUNDO0lBQ05DLFFBQVFDLEtBQUssQ0FBQyx3QkFBd0JGO0FBQ3hDIiwic291cmNlcyI6WyJEOlxcc3JjXFxjbGllbnRcXG5leHQtZGV2LnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8vIFRPRE86IFJlbW92ZSB1c2Ugb2YgYGFueWAgdHlwZS5cbmltcG9ydCAnLi93ZWJwYWNrJ1xuaW1wb3J0IHsgaW5pdGlhbGl6ZSwgdmVyc2lvbiwgcm91dGVyLCBlbWl0dGVyIH0gZnJvbSAnLi8nXG5pbXBvcnQgaW5pdEhNUiBmcm9tICcuL2Rldi9ob3QtbWlkZGxld2FyZS1jbGllbnQnXG5pbXBvcnQgeyBwYWdlQm9vdHN0cmFwIH0gZnJvbSAnLi9wYWdlLWJvb3RzdHJhcCdcblxud2luZG93Lm5leHQgPSB7XG4gIHZlcnNpb24sXG4gIC8vIHJvdXRlciBpcyBpbml0aWFsaXplZCBsYXRlciBzbyBpdCBoYXMgdG8gYmUgbGl2ZS1iaW5kZWRcbiAgZ2V0IHJvdXRlcigpIHtcbiAgICByZXR1cm4gcm91dGVyXG4gIH0sXG4gIGVtaXR0ZXIsXG59XG5cbmNvbnN0IGRldkNsaWVudCA9IGluaXRITVIoKVxuaW5pdGlhbGl6ZSh7IGRldkNsaWVudCB9KVxuICAudGhlbigoeyBhc3NldFByZWZpeCB9KSA9PiB7XG4gICAgcmV0dXJuIHBhZ2VCb290c3RyYXAoYXNzZXRQcmVmaXgpXG4gIH0pXG4gIC5jYXRjaCgoZXJyKSA9PiB7XG4gICAgY29uc29sZS5lcnJvcignRXJyb3Igd2FzIG5vdCBjYXVnaHQnLCBlcnIpXG4gIH0pXG4iXSwibmFtZXMiOlsid2luZG93IiwibmV4dCIsInZlcnNpb24iLCJyb3V0ZXIiLCJlbWl0dGVyIiwiZGV2Q2xpZW50IiwiaW5pdEhNUiIsImluaXRpYWxpemUiLCJ0aGVuIiwiYXNzZXRQcmVmaXgiLCJwYWdlQm9vdHN0cmFwIiwiY2F0Y2giLCJlcnIiLCJjb25zb2xlIiwiZXJyb3IiXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(pages-dir-browser)/./node_modules/next/dist/client/next-dev.js\n")); - -/***/ }), - -/***/ "(pages-dir-browser)/./node_modules/next/dist/client/normalize-trailing-slash.js": -/*!*******************************************************************!*\ - !*** ./node_modules/next/dist/client/normalize-trailing-slash.js ***! - \*******************************************************************/ -/***/ ((module, exports, __webpack_require__) => { - -"use strict"; -eval(__webpack_require__.ts("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"normalizePathTrailingSlash\", ({\n enumerable: true,\n get: function() {\n return normalizePathTrailingSlash;\n }\n}));\nconst _removetrailingslash = __webpack_require__(/*! ../shared/lib/router/utils/remove-trailing-slash */ \"(pages-dir-browser)/./node_modules/next/dist/shared/lib/router/utils/remove-trailing-slash.js\");\nconst _parsepath = __webpack_require__(/*! ../shared/lib/router/utils/parse-path */ \"(pages-dir-browser)/./node_modules/next/dist/shared/lib/router/utils/parse-path.js\");\nconst normalizePathTrailingSlash = (path)=>{\n if (!path.startsWith('/') || undefined) {\n return path;\n }\n const { pathname, query, hash } = (0, _parsepath.parsePath)(path);\n if (false) {}\n return \"\" + (0, _removetrailingslash.removeTrailingSlash)(pathname) + query + hash;\n};\nif ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=normalize-trailing-slash.js.map\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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvY2xpZW50L25vcm1hbGl6ZS10cmFpbGluZy1zbGFzaC5qcyIsIm1hcHBpbmdzIjoiOzs7OzhEQU9hQTs7O2VBQUFBOzs7aURBUHVCO3VDQUNWO0FBTW5CLE1BQU1BLDZCQUE2QixDQUFDQztJQUN6QyxJQUFJLENBQUNBLEtBQUtDLFVBQVUsQ0FBQyxRQUFRQyxTQUF3QyxFQUFFO1FBQ3JFLE9BQU9GO0lBQ1Q7SUFFQSxNQUFNLEVBQUVLLFFBQVEsRUFBRUMsS0FBSyxFQUFFQyxJQUFJLEVBQUUsR0FBR0MsQ0FBQUEsR0FBQUEsV0FBQUEsU0FBQUEsRUFBVVI7SUFDNUMsSUFBSUUsS0FBaUMsRUFBRSxFQVF0QztJQUVELE9BQVEsS0FBRVMsQ0FBQUEsR0FBQUEscUJBQUFBLG1CQUFBQSxFQUFvQk4sWUFBWUMsUUFBUUM7QUFDcEQiLCJzb3VyY2VzIjpbIkQ6XFxzcmNcXGNsaWVudFxcbm9ybWFsaXplLXRyYWlsaW5nLXNsYXNoLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHJlbW92ZVRyYWlsaW5nU2xhc2ggfSBmcm9tICcuLi9zaGFyZWQvbGliL3JvdXRlci91dGlscy9yZW1vdmUtdHJhaWxpbmctc2xhc2gnXG5pbXBvcnQgeyBwYXJzZVBhdGggfSBmcm9tICcuLi9zaGFyZWQvbGliL3JvdXRlci91dGlscy9wYXJzZS1wYXRoJ1xuXG4vKipcbiAqIE5vcm1hbGl6ZXMgdGhlIHRyYWlsaW5nIHNsYXNoIG9mIGEgcGF0aCBhY2NvcmRpbmcgdG8gdGhlIGB0cmFpbGluZ1NsYXNoYCBvcHRpb25cbiAqIGluIGBuZXh0LmNvbmZpZy5qc2AuXG4gKi9cbmV4cG9ydCBjb25zdCBub3JtYWxpemVQYXRoVHJhaWxpbmdTbGFzaCA9IChwYXRoOiBzdHJpbmcpID0+IHtcbiAgaWYgKCFwYXRoLnN0YXJ0c1dpdGgoJy8nKSB8fCBwcm9jZXNzLmVudi5fX05FWFRfTUFOVUFMX1RSQUlMSU5HX1NMQVNIKSB7XG4gICAgcmV0dXJuIHBhdGhcbiAgfVxuXG4gIGNvbnN0IHsgcGF0aG5hbWUsIHF1ZXJ5LCBoYXNoIH0gPSBwYXJzZVBhdGgocGF0aClcbiAgaWYgKHByb2Nlc3MuZW52Ll9fTkVYVF9UUkFJTElOR19TTEFTSCkge1xuICAgIGlmICgvXFwuW14vXStcXC8/JC8udGVzdChwYXRobmFtZSkpIHtcbiAgICAgIHJldHVybiBgJHtyZW1vdmVUcmFpbGluZ1NsYXNoKHBhdGhuYW1lKX0ke3F1ZXJ5fSR7aGFzaH1gXG4gICAgfSBlbHNlIGlmIChwYXRobmFtZS5lbmRzV2l0aCgnLycpKSB7XG4gICAgICByZXR1cm4gYCR7cGF0aG5hbWV9JHtxdWVyeX0ke2hhc2h9YFxuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gYCR7cGF0aG5hbWV9LyR7cXVlcnl9JHtoYXNofWBcbiAgICB9XG4gIH1cblxuICByZXR1cm4gYCR7cmVtb3ZlVHJhaWxpbmdTbGFzaChwYXRobmFtZSl9JHtxdWVyeX0ke2hhc2h9YFxufVxuIl0sIm5hbWVzIjpbIm5vcm1hbGl6ZVBhdGhUcmFpbGluZ1NsYXNoIiwicGF0aCIsInN0YXJ0c1dpdGgiLCJwcm9jZXNzIiwiZW52IiwiX19ORVhUX01BTlVBTF9UUkFJTElOR19TTEFTSCIsInBhdGhuYW1lIiwicXVlcnkiLCJoYXNoIiwicGFyc2VQYXRoIiwiX19ORVhUX1RSQUlMSU5HX1NMQVNIIiwidGVzdCIsInJlbW92ZVRyYWlsaW5nU2xhc2giLCJlbmRzV2l0aCJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(pages-dir-browser)/./node_modules/next/dist/client/normalize-trailing-slash.js\n")); - -/***/ }), - -/***/ "(pages-dir-browser)/./node_modules/next/dist/client/page-bootstrap.js": -/*!*********************************************************!*\ - !*** ./node_modules/next/dist/client/page-bootstrap.js ***! - \*********************************************************/ -/***/ ((module, exports, __webpack_require__) => { - -"use strict"; -eval(__webpack_require__.ts("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"pageBootstrap\", ({\n enumerable: true,\n get: function() {\n return pageBootstrap;\n }\n}));\nconst _interop_require_default = __webpack_require__(/*! @swc/helpers/_/_interop_require_default */ \"(pages-dir-browser)/./node_modules/@swc/helpers/esm/_interop_require_default.js\");\n__webpack_require__(/*! ../lib/require-instrumentation-client */ \"(pages-dir-browser)/./node_modules/next/dist/lib/require-instrumentation-client.js\");\nconst _ = __webpack_require__(/*! ./ */ \"(pages-dir-browser)/./node_modules/next/dist/client/index.js\");\nconst _ondemandentriesclient = /*#__PURE__*/ _interop_require_default._(__webpack_require__(/*! ./dev/on-demand-entries-client */ \"(pages-dir-browser)/./node_modules/next/dist/client/dev/on-demand-entries-client.js\"));\nconst _fouc = __webpack_require__(/*! ./dev/fouc */ \"(pages-dir-browser)/./node_modules/next/dist/client/dev/fouc.js\");\nconst _websocket = __webpack_require__(/*! ./dev/hot-reloader/pages/websocket */ \"(pages-dir-browser)/./node_modules/next/dist/client/dev/hot-reloader/pages/websocket.js\");\nconst _querystring = __webpack_require__(/*! ../shared/lib/router/utils/querystring */ \"(pages-dir-browser)/./node_modules/next/dist/shared/lib/router/utils/querystring.js\");\nconst _hotreloadertypes = __webpack_require__(/*! ../server/dev/hot-reloader-types */ \"(pages-dir-browser)/./node_modules/next/dist/server/dev/hot-reloader-types.js\");\nconst _runtimeerrorhandler = __webpack_require__(/*! ./dev/runtime-error-handler */ \"(pages-dir-browser)/./node_modules/next/dist/client/dev/runtime-error-handler.js\");\nconst _shared = __webpack_require__(/*! ./dev/hot-reloader/shared */ \"(pages-dir-browser)/./node_modules/next/dist/client/dev/hot-reloader/shared.js\");\nconst _hotreloaderpages = __webpack_require__(/*! ./dev/hot-reloader/pages/hot-reloader-pages */ \"(pages-dir-browser)/./node_modules/next/dist/client/dev/hot-reloader/pages/hot-reloader-pages.js\");\nconst _nextdevtools = __webpack_require__(/*! next/dist/compiled/next-devtools */ \"(pages-dir-browser)/./node_modules/next/dist/compiled/next-devtools/index.js\");\nfunction pageBootstrap(assetPrefix) {\n (0, _websocket.connectHMR)({\n assetPrefix,\n path: '/_next/webpack-hmr'\n });\n return (0, _.hydrate)({\n beforeRender: _fouc.displayContent\n }).then(()=>{\n (0, _ondemandentriesclient.default)();\n let reloading = false;\n (0, _websocket.addMessageListener)((payload)=>{\n if (reloading) return;\n if ('action' in payload) {\n switch(payload.action){\n case _hotreloadertypes.HMR_ACTIONS_SENT_TO_BROWSER.SERVER_ERROR:\n {\n const { stack, message } = JSON.parse(payload.errorJSON);\n const error = Object.defineProperty(new Error(message), \"__NEXT_ERROR_CODE\", {\n value: \"E394\",\n enumerable: false,\n configurable: true\n });\n error.stack = stack;\n throw error;\n }\n case _hotreloadertypes.HMR_ACTIONS_SENT_TO_BROWSER.RELOAD_PAGE:\n {\n reloading = true;\n window.location.reload();\n break;\n }\n case _hotreloadertypes.HMR_ACTIONS_SENT_TO_BROWSER.DEV_PAGES_MANIFEST_UPDATE:\n {\n fetch(\"\" + assetPrefix + \"/_next/static/development/_devPagesManifest.json\").then((res)=>res.json()).then((manifest)=>{\n window.__DEV_PAGES_MANIFEST = manifest;\n }).catch((err)=>{\n console.log(\"Failed to fetch devPagesManifest\", err);\n });\n break;\n }\n default:\n break;\n }\n } else if ('event' in payload) {\n switch(payload.event){\n case _hotreloadertypes.HMR_ACTIONS_SENT_TO_BROWSER.MIDDLEWARE_CHANGES:\n {\n return window.location.reload();\n }\n case _hotreloadertypes.HMR_ACTIONS_SENT_TO_BROWSER.CLIENT_CHANGES:\n {\n // This is used in `../server/dev/turbopack-utils.ts`.\n const isOnErrorPage = window.next.router.pathname === '/_error';\n // On the error page we want to reload the page when a page was changed\n if (isOnErrorPage) {\n if (_runtimeerrorhandler.RuntimeErrorHandler.hadRuntimeError) {\n console.warn(_shared.REACT_REFRESH_FULL_RELOAD_FROM_ERROR);\n }\n reloading = true;\n (0, _hotreloaderpages.performFullReload)(null);\n }\n break;\n }\n case _hotreloadertypes.HMR_ACTIONS_SENT_TO_BROWSER.SERVER_ONLY_CHANGES:\n {\n if (_runtimeerrorhandler.RuntimeErrorHandler.hadRuntimeError) {\n console.warn(_shared.REACT_REFRESH_FULL_RELOAD_FROM_ERROR);\n (0, _hotreloaderpages.performFullReload)(null);\n }\n const { pages } = payload;\n // Make sure to reload when the dev-overlay is showing for an\n // API route\n // TODO: Fix `__NEXT_PAGE` type\n if (pages.includes(_.router.query.__NEXT_PAGE)) {\n return window.location.reload();\n }\n if (!_.router.clc && pages.includes(_.router.pathname)) {\n console.log('Refreshing page data due to server-side change');\n _nextdevtools.dispatcher.buildingIndicatorShow();\n const clearIndicator = _nextdevtools.dispatcher.buildingIndicatorHide;\n _.router.replace(_.router.pathname + '?' + String((0, _querystring.assign)((0, _querystring.urlQueryToSearchParams)(_.router.query), new URLSearchParams(location.search))), _.router.asPath, {\n scroll: false\n }).catch(()=>{\n // trigger hard reload when failing to refresh data\n // to show error overlay properly\n location.reload();\n }).finally(clearIndicator);\n }\n break;\n }\n default:\n break;\n }\n }\n });\n });\n}\nif ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=page-bootstrap.js.map\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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvY2xpZW50L3BhZ2UtYm9vdHN0cmFwLmpzIiwibWFwcGluZ3MiOiI7Ozs7aURBa0JnQkE7OztlQUFBQTs7OztvQkFsQlQ7OEJBQ3lCOzRGQUNBO2tDQUNEO3VDQUl4Qjt5Q0FJQTs4Q0FDcUM7aURBQ1I7b0NBQ2lCOzhDQUNuQjswQ0FDUDtBQUVwQixTQUFTQSxjQUFjQyxXQUFtQjtJQUMvQ0MsQ0FBQUEsR0FBQUEsV0FBQUEsVUFBQUEsRUFBVztRQUFFRDtRQUFhRSxNQUFNO0lBQXFCO0lBRXJELE9BQU9DLENBQUFBLEdBQUFBLEVBQUFBLE9BQUFBLEVBQVE7UUFBRUMsY0FBY0MsTUFBQUEsY0FBYztJQUFDLEdBQUdDLElBQUksQ0FBQztRQUNwREMsQ0FBQUEsR0FBQUEsdUJBQUFBLE9BQUFBO1FBRUEsSUFBSUMsWUFBWTtRQUVoQkMsQ0FBQUEsR0FBQUEsV0FBQUEsa0JBQUFBLEVBQW1CLENBQUNDO1lBQ2xCLElBQUlGLFdBQVc7WUFDZixJQUFJLFlBQVlFLFNBQVM7Z0JBQ3ZCLE9BQVFBLFFBQVFDLE1BQU07b0JBQ3BCLEtBQUtDLGtCQUFBQSwyQkFBMkIsQ0FBQ0MsWUFBWTt3QkFBRTs0QkFDN0MsTUFBTSxFQUFFQyxLQUFLLEVBQUVDLE9BQU8sRUFBRSxHQUFHQyxLQUFLQyxLQUFLLENBQUNQLFFBQVFRLFNBQVM7NEJBQ3ZELE1BQU1DLFFBQVEscUJBQWtCLENBQWxCLElBQUlDLE1BQU1MLFVBQVY7dUNBQUE7NENBQUE7OENBQUE7NEJBQWlCOzRCQUMvQkksTUFBTUwsS0FBSyxHQUFHQTs0QkFDZCxNQUFNSzt3QkFDUjtvQkFDQSxLQUFLUCxrQkFBQUEsMkJBQTJCLENBQUNTLFdBQVc7d0JBQUU7NEJBQzVDYixZQUFZOzRCQUNaYyxPQUFPQyxRQUFRLENBQUNDLE1BQU07NEJBQ3RCO3dCQUNGO29CQUNBLEtBQUtaLGtCQUFBQSwyQkFBMkIsQ0FBQ2EseUJBQXlCO3dCQUFFOzRCQUMxREMsTUFDRyxLQUFFMUIsY0FBWSxvREFFZE0sSUFBSSxDQUFDLENBQUNxQixNQUFRQSxJQUFJQyxJQUFJLElBQ3RCdEIsSUFBSSxDQUFDLENBQUN1QjtnQ0FDTFAsT0FBT1Esb0JBQW9CLEdBQUdEOzRCQUNoQyxHQUNDRSxLQUFLLENBQUMsQ0FBQ0M7Z0NBQ05DLFFBQVFDLEdBQUcsQ0FBRSxvQ0FBbUNGOzRCQUNsRDs0QkFDRjt3QkFDRjtvQkFDQTt3QkFDRTtnQkFDSjtZQUNGLE9BQU8sSUFBSSxXQUFXdEIsU0FBUztnQkFDN0IsT0FBUUEsUUFBUXlCLEtBQUs7b0JBQ25CLEtBQUt2QixrQkFBQUEsMkJBQTJCLENBQUN3QixrQkFBa0I7d0JBQUU7NEJBQ25ELE9BQU9kLE9BQU9DLFFBQVEsQ0FBQ0MsTUFBTTt3QkFDL0I7b0JBQ0EsS0FBS1osa0JBQUFBLDJCQUEyQixDQUFDeUIsY0FBYzt3QkFBRTs0QkFDL0Msc0RBQXNEOzRCQUN0RCxNQUFNQyxnQkFBZ0JoQixPQUFPaUIsSUFBSSxDQUFDQyxNQUFNLENBQUNDLFFBQVEsS0FBSzs0QkFDdEQsdUVBQXVFOzRCQUN2RSxJQUFJSCxlQUFlO2dDQUNqQixJQUFJSSxxQkFBQUEsbUJBQW1CLENBQUNDLGVBQWUsRUFBRTtvQ0FDdkNWLFFBQVFXLElBQUksQ0FBQ0MsUUFBQUEsb0NBQW9DO2dDQUNuRDtnQ0FDQXJDLFlBQVk7Z0NBQ1pzQyxDQUFBQSxHQUFBQSxrQkFBQUEsaUJBQUFBLEVBQWtCOzRCQUNwQjs0QkFDQTt3QkFDRjtvQkFDQSxLQUFLbEMsa0JBQUFBLDJCQUEyQixDQUFDbUMsbUJBQW1CO3dCQUFFOzRCQUNwRCxJQUFJTCxxQkFBQUEsbUJBQW1CLENBQUNDLGVBQWUsRUFBRTtnQ0FDdkNWLFFBQVFXLElBQUksQ0FBQ0MsUUFBQUEsb0NBQW9DO2dDQUNqREMsQ0FBQUEsR0FBQUEsa0JBQUFBLGlCQUFBQSxFQUFrQjs0QkFDcEI7NEJBRUEsTUFBTSxFQUFFRSxLQUFLLEVBQUUsR0FBR3RDOzRCQUVsQiw2REFBNkQ7NEJBQzdELFlBQVk7NEJBQ1osK0JBQStCOzRCQUMvQixJQUFJc0MsTUFBTUMsUUFBUSxDQUFDVCxFQUFBQSxNQUFNLENBQUNVLEtBQUssQ0FBQ0MsV0FBVyxHQUFhO2dDQUN0RCxPQUFPN0IsT0FBT0MsUUFBUSxDQUFDQyxNQUFNOzRCQUMvQjs0QkFFQSxJQUFJLENBQUNnQixFQUFBQSxNQUFNLENBQUNZLEdBQUcsSUFBSUosTUFBTUMsUUFBUSxDQUFDVCxFQUFBQSxNQUFNLENBQUNDLFFBQVEsR0FBRztnQ0FDbERSLFFBQVFDLEdBQUcsQ0FBQztnQ0FDWm1CLGNBQUFBLFVBQVUsQ0FBQ0MscUJBQXFCO2dDQUNoQyxNQUFNQyxpQkFBaUJGLGNBQUFBLFVBQVUsQ0FBQ0cscUJBQXFCO2dDQUV2RGhCLEVBQUFBLE1BQU0sQ0FDSGlCLE9BQU8sQ0FDTmpCLEVBQUFBLE1BQU0sQ0FBQ0MsUUFBUSxHQUNiLE1BQ0FpQixPQUNFQyxDQUFBQSxHQUFBQSxhQUFBQSxNQUFBQSxFQUNFQyxDQUFBQSxHQUFBQSxhQUFBQSxzQkFBQUEsRUFBdUJwQixFQUFBQSxNQUFNLENBQUNVLEtBQUssR0FDbkMsSUFBSVcsZ0JBQWdCdEMsU0FBU3VDLE1BQU0sS0FHekN0QixFQUFBQSxNQUFNLENBQUN1QixNQUFNLEVBQ2I7b0NBQUVDLFFBQVE7Z0NBQU0sR0FFakJqQyxLQUFLLENBQUM7b0NBQ0wsbURBQW1EO29DQUNuRCxpQ0FBaUM7b0NBQ2pDUixTQUFTQyxNQUFNO2dDQUNqQixHQUNDeUMsT0FBTyxDQUFDVjs0QkFDYjs0QkFDQTt3QkFDRjtvQkFDQTt3QkFDRTtnQkFDSjtZQUNGO1FBQ0Y7SUFDRjtBQUNGIiwic291cmNlcyI6WyJEOlxcc3JjXFxjbGllbnRcXHBhZ2UtYm9vdHN0cmFwLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAnLi4vbGliL3JlcXVpcmUtaW5zdHJ1bWVudGF0aW9uLWNsaWVudCdcbmltcG9ydCB7IGh5ZHJhdGUsIHJvdXRlciB9IGZyb20gJy4vJ1xuaW1wb3J0IGluaXRPbkRlbWFuZEVudHJpZXMgZnJvbSAnLi9kZXYvb24tZGVtYW5kLWVudHJpZXMtY2xpZW50J1xuaW1wb3J0IHsgZGlzcGxheUNvbnRlbnQgfSBmcm9tICcuL2Rldi9mb3VjJ1xuaW1wb3J0IHtcbiAgY29ubmVjdEhNUixcbiAgYWRkTWVzc2FnZUxpc3RlbmVyLFxufSBmcm9tICcuL2Rldi9ob3QtcmVsb2FkZXIvcGFnZXMvd2Vic29ja2V0J1xuaW1wb3J0IHtcbiAgYXNzaWduLFxuICB1cmxRdWVyeVRvU2VhcmNoUGFyYW1zLFxufSBmcm9tICcuLi9zaGFyZWQvbGliL3JvdXRlci91dGlscy9xdWVyeXN0cmluZydcbmltcG9ydCB7IEhNUl9BQ1RJT05TX1NFTlRfVE9fQlJPV1NFUiB9IGZyb20gJy4uL3NlcnZlci9kZXYvaG90LXJlbG9hZGVyLXR5cGVzJ1xuaW1wb3J0IHsgUnVudGltZUVycm9ySGFuZGxlciB9IGZyb20gJy4vZGV2L3J1bnRpbWUtZXJyb3ItaGFuZGxlcidcbmltcG9ydCB7IFJFQUNUX1JFRlJFU0hfRlVMTF9SRUxPQURfRlJPTV9FUlJPUiB9IGZyb20gJy4vZGV2L2hvdC1yZWxvYWRlci9zaGFyZWQnXG5pbXBvcnQgeyBwZXJmb3JtRnVsbFJlbG9hZCB9IGZyb20gJy4vZGV2L2hvdC1yZWxvYWRlci9wYWdlcy9ob3QtcmVsb2FkZXItcGFnZXMnXG5pbXBvcnQgeyBkaXNwYXRjaGVyIH0gZnJvbSAnbmV4dC9kaXN0L2NvbXBpbGVkL25leHQtZGV2dG9vbHMnXG5cbmV4cG9ydCBmdW5jdGlvbiBwYWdlQm9vdHN0cmFwKGFzc2V0UHJlZml4OiBzdHJpbmcpIHtcbiAgY29ubmVjdEhNUih7IGFzc2V0UHJlZml4LCBwYXRoOiAnL19uZXh0L3dlYnBhY2staG1yJyB9KVxuXG4gIHJldHVybiBoeWRyYXRlKHsgYmVmb3JlUmVuZGVyOiBkaXNwbGF5Q29udGVudCB9KS50aGVuKCgpID0+IHtcbiAgICBpbml0T25EZW1hbmRFbnRyaWVzKClcblxuICAgIGxldCByZWxvYWRpbmcgPSBmYWxzZVxuXG4gICAgYWRkTWVzc2FnZUxpc3RlbmVyKChwYXlsb2FkKSA9PiB7XG4gICAgICBpZiAocmVsb2FkaW5nKSByZXR1cm5cbiAgICAgIGlmICgnYWN0aW9uJyBpbiBwYXlsb2FkKSB7XG4gICAgICAgIHN3aXRjaCAocGF5bG9hZC5hY3Rpb24pIHtcbiAgICAgICAgICBjYXNlIEhNUl9BQ1RJT05TX1NFTlRfVE9fQlJPV1NFUi5TRVJWRVJfRVJST1I6IHtcbiAgICAgICAgICAgIGNvbnN0IHsgc3RhY2ssIG1lc3NhZ2UgfSA9IEpTT04ucGFyc2UocGF5bG9hZC5lcnJvckpTT04pXG4gICAgICAgICAgICBjb25zdCBlcnJvciA9IG5ldyBFcnJvcihtZXNzYWdlKVxuICAgICAgICAgICAgZXJyb3Iuc3RhY2sgPSBzdGFja1xuICAgICAgICAgICAgdGhyb3cgZXJyb3JcbiAgICAgICAgICB9XG4gICAgICAgICAgY2FzZSBITVJfQUNUSU9OU19TRU5UX1RPX0JST1dTRVIuUkVMT0FEX1BBR0U6IHtcbiAgICAgICAgICAgIHJlbG9hZGluZyA9IHRydWVcbiAgICAgICAgICAgIHdpbmRvdy5sb2NhdGlvbi5yZWxvYWQoKVxuICAgICAgICAgICAgYnJlYWtcbiAgICAgICAgICB9XG4gICAgICAgICAgY2FzZSBITVJfQUNUSU9OU19TRU5UX1RPX0JST1dTRVIuREVWX1BBR0VTX01BTklGRVNUX1VQREFURToge1xuICAgICAgICAgICAgZmV0Y2goXG4gICAgICAgICAgICAgIGAke2Fzc2V0UHJlZml4fS9fbmV4dC9zdGF0aWMvZGV2ZWxvcG1lbnQvX2RldlBhZ2VzTWFuaWZlc3QuanNvbmBcbiAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgLnRoZW4oKHJlcykgPT4gcmVzLmpzb24oKSlcbiAgICAgICAgICAgICAgLnRoZW4oKG1hbmlmZXN0KSA9PiB7XG4gICAgICAgICAgICAgICAgd2luZG93Ll9fREVWX1BBR0VTX01BTklGRVNUID0gbWFuaWZlc3RcbiAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgLmNhdGNoKChlcnIpID0+IHtcbiAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhgRmFpbGVkIHRvIGZldGNoIGRldlBhZ2VzTWFuaWZlc3RgLCBlcnIpXG4gICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICBicmVha1xuICAgICAgICAgIH1cbiAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgYnJlYWtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIGlmICgnZXZlbnQnIGluIHBheWxvYWQpIHtcbiAgICAgICAgc3dpdGNoIChwYXlsb2FkLmV2ZW50KSB7XG4gICAgICAgICAgY2FzZSBITVJfQUNUSU9OU19TRU5UX1RPX0JST1dTRVIuTUlERExFV0FSRV9DSEFOR0VTOiB7XG4gICAgICAgICAgICByZXR1cm4gd2luZG93LmxvY2F0aW9uLnJlbG9hZCgpXG4gICAgICAgICAgfVxuICAgICAgICAgIGNhc2UgSE1SX0FDVElPTlNfU0VOVF9UT19CUk9XU0VSLkNMSUVOVF9DSEFOR0VTOiB7XG4gICAgICAgICAgICAvLyBUaGlzIGlzIHVzZWQgaW4gYC4uL3NlcnZlci9kZXYvdHVyYm9wYWNrLXV0aWxzLnRzYC5cbiAgICAgICAgICAgIGNvbnN0IGlzT25FcnJvclBhZ2UgPSB3aW5kb3cubmV4dC5yb3V0ZXIucGF0aG5hbWUgPT09ICcvX2Vycm9yJ1xuICAgICAgICAgICAgLy8gT24gdGhlIGVycm9yIHBhZ2Ugd2Ugd2FudCB0byByZWxvYWQgdGhlIHBhZ2Ugd2hlbiBhIHBhZ2Ugd2FzIGNoYW5nZWRcbiAgICAgICAgICAgIGlmIChpc09uRXJyb3JQYWdlKSB7XG4gICAgICAgICAgICAgIGlmIChSdW50aW1lRXJyb3JIYW5kbGVyLmhhZFJ1bnRpbWVFcnJvcikge1xuICAgICAgICAgICAgICAgIGNvbnNvbGUud2FybihSRUFDVF9SRUZSRVNIX0ZVTExfUkVMT0FEX0ZST01fRVJST1IpXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgcmVsb2FkaW5nID0gdHJ1ZVxuICAgICAgICAgICAgICBwZXJmb3JtRnVsbFJlbG9hZChudWxsKVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgYnJlYWtcbiAgICAgICAgICB9XG4gICAgICAgICAgY2FzZSBITVJfQUNUSU9OU19TRU5UX1RPX0JST1dTRVIuU0VSVkVSX09OTFlfQ0hBTkdFUzoge1xuICAgICAgICAgICAgaWYgKFJ1bnRpbWVFcnJvckhhbmRsZXIuaGFkUnVudGltZUVycm9yKSB7XG4gICAgICAgICAgICAgIGNvbnNvbGUud2FybihSRUFDVF9SRUZSRVNIX0ZVTExfUkVMT0FEX0ZST01fRVJST1IpXG4gICAgICAgICAgICAgIHBlcmZvcm1GdWxsUmVsb2FkKG51bGwpXG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGNvbnN0IHsgcGFnZXMgfSA9IHBheWxvYWRcblxuICAgICAgICAgICAgLy8gTWFrZSBzdXJlIHRvIHJlbG9hZCB3aGVuIHRoZSBkZXYtb3ZlcmxheSBpcyBzaG93aW5nIGZvciBhblxuICAgICAgICAgICAgLy8gQVBJIHJvdXRlXG4gICAgICAgICAgICAvLyBUT0RPOiBGaXggYF9fTkVYVF9QQUdFYCB0eXBlXG4gICAgICAgICAgICBpZiAocGFnZXMuaW5jbHVkZXMocm91dGVyLnF1ZXJ5Ll9fTkVYVF9QQUdFIGFzIHN0cmluZykpIHtcbiAgICAgICAgICAgICAgcmV0dXJuIHdpbmRvdy5sb2NhdGlvbi5yZWxvYWQoKVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpZiAoIXJvdXRlci5jbGMgJiYgcGFnZXMuaW5jbHVkZXMocm91dGVyLnBhdGhuYW1lKSkge1xuICAgICAgICAgICAgICBjb25zb2xlLmxvZygnUmVmcmVzaGluZyBwYWdlIGRhdGEgZHVlIHRvIHNlcnZlci1zaWRlIGNoYW5nZScpXG4gICAgICAgICAgICAgIGRpc3BhdGNoZXIuYnVpbGRpbmdJbmRpY2F0b3JTaG93KClcbiAgICAgICAgICAgICAgY29uc3QgY2xlYXJJbmRpY2F0b3IgPSBkaXNwYXRjaGVyLmJ1aWxkaW5nSW5kaWNhdG9ySGlkZVxuXG4gICAgICAgICAgICAgIHJvdXRlclxuICAgICAgICAgICAgICAgIC5yZXBsYWNlKFxuICAgICAgICAgICAgICAgICAgcm91dGVyLnBhdGhuYW1lICtcbiAgICAgICAgICAgICAgICAgICAgJz8nICtcbiAgICAgICAgICAgICAgICAgICAgU3RyaW5nKFxuICAgICAgICAgICAgICAgICAgICAgIGFzc2lnbihcbiAgICAgICAgICAgICAgICAgICAgICAgIHVybFF1ZXJ5VG9TZWFyY2hQYXJhbXMocm91dGVyLnF1ZXJ5KSxcbiAgICAgICAgICAgICAgICAgICAgICAgIG5ldyBVUkxTZWFyY2hQYXJhbXMobG9jYXRpb24uc2VhcmNoKVxuICAgICAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICAgICAgKSxcbiAgICAgICAgICAgICAgICAgIHJvdXRlci5hc1BhdGgsXG4gICAgICAgICAgICAgICAgICB7IHNjcm9sbDogZmFsc2UgfVxuICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICAuY2F0Y2goKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgLy8gdHJpZ2dlciBoYXJkIHJlbG9hZCB3aGVuIGZhaWxpbmcgdG8gcmVmcmVzaCBkYXRhXG4gICAgICAgICAgICAgICAgICAvLyB0byBzaG93IGVycm9yIG92ZXJsYXkgcHJvcGVybHlcbiAgICAgICAgICAgICAgICAgIGxvY2F0aW9uLnJlbG9hZCgpXG4gICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAuZmluYWxseShjbGVhckluZGljYXRvcilcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGJyZWFrXG4gICAgICAgICAgfVxuICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICBicmVha1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSlcbiAgfSlcbn1cbiJdLCJuYW1lcyI6WyJwYWdlQm9vdHN0cmFwIiwiYXNzZXRQcmVmaXgiLCJjb25uZWN0SE1SIiwicGF0aCIsImh5ZHJhdGUiLCJiZWZvcmVSZW5kZXIiLCJkaXNwbGF5Q29udGVudCIsInRoZW4iLCJpbml0T25EZW1hbmRFbnRyaWVzIiwicmVsb2FkaW5nIiwiYWRkTWVzc2FnZUxpc3RlbmVyIiwicGF5bG9hZCIsImFjdGlvbiIsIkhNUl9BQ1RJT05TX1NFTlRfVE9fQlJPV1NFUiIsIlNFUlZFUl9FUlJPUiIsInN0YWNrIiwibWVzc2FnZSIsIkpTT04iLCJwYXJzZSIsImVycm9ySlNPTiIsImVycm9yIiwiRXJyb3IiLCJSRUxPQURfUEFHRSIsIndpbmRvdyIsImxvY2F0aW9uIiwicmVsb2FkIiwiREVWX1BBR0VTX01BTklGRVNUX1VQREFURSIsImZldGNoIiwicmVzIiwianNvbiIsIm1hbmlmZXN0IiwiX19ERVZfUEFHRVNfTUFOSUZFU1QiLCJjYXRjaCIsImVyciIsImNvbnNvbGUiLCJsb2ciLCJldmVudCIsIk1JRERMRVdBUkVfQ0hBTkdFUyIsIkNMSUVOVF9DSEFOR0VTIiwiaXNPbkVycm9yUGFnZSIsIm5leHQiLCJyb3V0ZXIiLCJwYXRobmFtZSIsIlJ1bnRpbWVFcnJvckhhbmRsZXIiLCJoYWRSdW50aW1lRXJyb3IiLCJ3YXJuIiwiUkVBQ1RfUkVGUkVTSF9GVUxMX1JFTE9BRF9GUk9NX0VSUk9SIiwicGVyZm9ybUZ1bGxSZWxvYWQiLCJTRVJWRVJfT05MWV9DSEFOR0VTIiwicGFnZXMiLCJpbmNsdWRlcyIsInF1ZXJ5IiwiX19ORVhUX1BBR0UiLCJjbGMiLCJkaXNwYXRjaGVyIiwiYnVpbGRpbmdJbmRpY2F0b3JTaG93IiwiY2xlYXJJbmRpY2F0b3IiLCJidWlsZGluZ0luZGljYXRvckhpZGUiLCJyZXBsYWNlIiwiU3RyaW5nIiwiYXNzaWduIiwidXJsUXVlcnlUb1NlYXJjaFBhcmFtcyIsIlVSTFNlYXJjaFBhcmFtcyIsInNlYXJjaCIsImFzUGF0aCIsInNjcm9sbCIsImZpbmFsbHkiXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(pages-dir-browser)/./node_modules/next/dist/client/page-bootstrap.js\n")); - -/***/ }), - -/***/ "(pages-dir-browser)/./node_modules/next/dist/client/page-loader.js": -/*!******************************************************!*\ - !*** ./node_modules/next/dist/client/page-loader.js ***! - \******************************************************/ -/***/ ((module, exports, __webpack_require__) => { - -"use strict"; -eval(__webpack_require__.ts("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"default\", ({\n enumerable: true,\n get: function() {\n return PageLoader;\n }\n}));\nconst _interop_require_default = __webpack_require__(/*! @swc/helpers/_/_interop_require_default */ \"(pages-dir-browser)/./node_modules/@swc/helpers/esm/_interop_require_default.js\");\nconst _addbasepath = __webpack_require__(/*! ./add-base-path */ \"(pages-dir-browser)/./node_modules/next/dist/client/add-base-path.js\");\nconst _interpolateas = __webpack_require__(/*! ../shared/lib/router/utils/interpolate-as */ \"(pages-dir-browser)/./node_modules/next/dist/shared/lib/router/utils/interpolate-as.js\");\nconst _getassetpathfromroute = /*#__PURE__*/ _interop_require_default._(__webpack_require__(/*! ../shared/lib/router/utils/get-asset-path-from-route */ \"(pages-dir-browser)/./node_modules/next/dist/shared/lib/router/utils/get-asset-path-from-route.js\"));\nconst _addlocale = __webpack_require__(/*! ./add-locale */ \"(pages-dir-browser)/./node_modules/next/dist/client/add-locale.js\");\nconst _isdynamic = __webpack_require__(/*! ../shared/lib/router/utils/is-dynamic */ \"(pages-dir-browser)/./node_modules/next/dist/shared/lib/router/utils/is-dynamic.js\");\nconst _parserelativeurl = __webpack_require__(/*! ../shared/lib/router/utils/parse-relative-url */ \"(pages-dir-browser)/./node_modules/next/dist/shared/lib/router/utils/parse-relative-url.js\");\nconst _removetrailingslash = __webpack_require__(/*! ../shared/lib/router/utils/remove-trailing-slash */ \"(pages-dir-browser)/./node_modules/next/dist/shared/lib/router/utils/remove-trailing-slash.js\");\nconst _routeloader = __webpack_require__(/*! ./route-loader */ \"(pages-dir-browser)/./node_modules/next/dist/client/route-loader.js\");\nconst _constants = __webpack_require__(/*! ../shared/lib/constants */ \"(pages-dir-browser)/./node_modules/next/dist/shared/lib/constants.js\");\nclass PageLoader {\n getPageList() {\n if (false) {} else {\n if (window.__DEV_PAGES_MANIFEST) {\n return window.__DEV_PAGES_MANIFEST.pages;\n } else {\n this.promisedDevPagesManifest || (this.promisedDevPagesManifest = fetch(this.assetPrefix + \"/_next/static/development/\" + _constants.DEV_CLIENT_PAGES_MANIFEST, {\n credentials: 'same-origin'\n }).then((res)=>res.json()).then((manifest)=>{\n window.__DEV_PAGES_MANIFEST = manifest;\n return manifest.pages;\n }).catch((err)=>{\n console.log(\"Failed to fetch devPagesManifest:\", err);\n throw Object.defineProperty(new Error(\"Failed to fetch _devPagesManifest.json. Is something blocking that network request?\\n\" + 'Read more: https://nextjs.org/docs/messages/failed-to-fetch-devpagesmanifest'), \"__NEXT_ERROR_CODE\", {\n value: \"E423\",\n enumerable: false,\n configurable: true\n });\n }));\n return this.promisedDevPagesManifest;\n }\n }\n }\n getMiddleware() {\n // Webpack production\n if (false) {} else if (false) {} else {\n if (window.__DEV_MIDDLEWARE_MATCHERS) {\n return window.__DEV_MIDDLEWARE_MATCHERS;\n } else {\n if (!this.promisedMiddlewareMatchers) {\n // TODO: Decide what should happen when fetching fails instead of asserting\n // @ts-ignore\n this.promisedMiddlewareMatchers = fetch(this.assetPrefix + \"/_next/static/\" + this.buildId + \"/\" + _constants.DEV_CLIENT_MIDDLEWARE_MANIFEST, {\n credentials: 'same-origin'\n }).then((res)=>res.json()).then((matchers)=>{\n window.__DEV_MIDDLEWARE_MATCHERS = matchers;\n return matchers;\n }).catch((err)=>{\n console.log(\"Failed to fetch _devMiddlewareManifest\", err);\n });\n }\n // TODO Remove this assertion as this could be undefined\n return this.promisedMiddlewareMatchers;\n }\n }\n }\n getDataHref(params) {\n const { asPath, href, locale } = params;\n const { pathname: hrefPathname, query, search } = (0, _parserelativeurl.parseRelativeUrl)(href);\n const { pathname: asPathname } = (0, _parserelativeurl.parseRelativeUrl)(asPath);\n const route = (0, _removetrailingslash.removeTrailingSlash)(hrefPathname);\n if (route[0] !== '/') {\n throw Object.defineProperty(new Error('Route name should start with a \"/\", got \"' + route + '\"'), \"__NEXT_ERROR_CODE\", {\n value: \"E303\",\n enumerable: false,\n configurable: true\n });\n }\n const getHrefForSlug = (path)=>{\n const dataRoute = (0, _getassetpathfromroute.default)((0, _removetrailingslash.removeTrailingSlash)((0, _addlocale.addLocale)(path, locale)), '.json');\n return (0, _addbasepath.addBasePath)(\"/_next/data/\" + this.buildId + dataRoute + search, true);\n };\n return getHrefForSlug(params.skipInterpolation ? asPathname : (0, _isdynamic.isDynamicRoute)(route) ? (0, _interpolateas.interpolateAs)(hrefPathname, asPathname, query).result : route);\n }\n _isSsg(/** the route (file-system path) */ route) {\n return this.promisedSsgManifest.then((manifest)=>manifest.has(route));\n }\n loadPage(route) {\n return this.routeLoader.loadRoute(route).then((res)=>{\n if ('component' in res) {\n return {\n page: res.component,\n mod: res.exports,\n styleSheets: res.styles.map((o)=>({\n href: o.href,\n text: o.content\n }))\n };\n }\n throw res.error;\n });\n }\n prefetch(route) {\n return this.routeLoader.prefetch(route);\n }\n constructor(buildId, assetPrefix){\n this.routeLoader = (0, _routeloader.createRouteLoader)(assetPrefix);\n this.buildId = buildId;\n this.assetPrefix = assetPrefix;\n this.promisedSsgManifest = new Promise((resolve)=>{\n if (window.__SSG_MANIFEST) {\n resolve(window.__SSG_MANIFEST);\n } else {\n window.__SSG_MANIFEST_CB = ()=>{\n resolve(window.__SSG_MANIFEST);\n };\n }\n });\n }\n}\nif ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=page-loader.js.map\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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvY2xpZW50L3BhZ2UtbG9hZGVyLmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7ZUFpQ3FCQTs7Ozt5Q0E5Qk87MkNBQ0U7NEZBQ0k7dUNBQ1I7dUNBQ0s7OENBQ0U7aURBQ0c7eUNBQ3NCO3VDQUtuRDtBQWtCUSxNQUFNQTtJQTBCbkJDLGNBQWM7UUFDWixJQUFJQyxLQUFvQixFQUFtQixFQUUxQyxNQUFNO1lBQ0wsSUFBSU8sT0FBT0Msb0JBQW9CLEVBQUU7Z0JBQy9CLE9BQU9ELE9BQU9DLG9CQUFvQixDQUFDQyxLQUFLO1lBQzFDLE9BQU87Z0JBQ0wsSUFBSSxDQUFDQyx3QkFBQUEsS0FBTCxJQUFJLENBQUNBLHdCQUFBQSxHQUE2QkMsTUFDN0IsSUFBSSxDQUFDQyxXQUFXLEdBQUMsK0JBQTRCQyxXQUFBQSx5QkFBeUIsRUFDekU7b0JBQUVDLGFBQWE7Z0JBQWMsR0FFNUJWLElBQUksQ0FBQyxDQUFDVyxNQUFRQSxJQUFJQyxJQUFJLElBQ3RCWixJQUFJLENBQUMsQ0FBQ0M7b0JBQ0xFLE9BQU9DLG9CQUFvQixHQUFHSDtvQkFDOUIsT0FBT0EsU0FBU0ksS0FBSztnQkFDdkIsR0FDQ1EsS0FBSyxDQUFDLENBQUNDO29CQUNOQyxRQUFRQyxHQUFHLENBQUUscUNBQW9DRjtvQkFDakQsTUFBTSxxQkFHTCxDQUhLLElBQUlHLE1BQ1AsMEZBQ0MsaUZBRkU7K0JBQUE7b0NBQUE7c0NBQUE7b0JBR047Z0JBQ0Y7Z0JBQ0YsT0FBTyxJQUFJLENBQUNYLHdCQUF3QjtZQUN0QztRQUNGO0lBQ0Y7SUFFQVksZ0JBQWdCO1FBQ2QscUJBQXFCO1FBQ3JCLElBQ0V0QixLQUNzQyxFQUN0QyxFQU9ELE1BQU0sSUFBSUEsS0FBb0IsRUFBbUIsRUF3QmpELE1BQU07WUFDTCxJQUFJTyxPQUFPd0IseUJBQXlCLEVBQUU7Z0JBQ3BDLE9BQU94QixPQUFPd0IseUJBQXlCO1lBQ3pDLE9BQU87Z0JBQ0wsSUFB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Q2dELFdBQVcsR0FBR2UsQ0FBQUEsR0FBQUEsYUFBQUEsaUJBQUFBLEVBQWtCL0Q7UUFFckMsSUFBSSxDQUFDZ0IsT0FBTyxHQUFHQTtRQUNmLElBQUksQ0FBQ2hCLFdBQVcsR0FBR0E7UUFFbkIsSUFBSSxDQUFDNkMsbUJBQW1CLEdBQUcsSUFBSW1CLFFBQVEsQ0FBQ0M7WUFDdEMsSUFBSXRFLE9BQU91RSxjQUFjLEVBQUU7Z0JBQ3pCRCxRQUFRdEUsT0FBT3VFLGNBQWM7WUFDL0IsT0FBTztnQkFDTHZFLE9BQU93RSxpQkFBaUIsR0FBRztvQkFDekJGLFFBQVF0RSxPQUFPdUUsY0FBYztnQkFDL0I7WUFDRjtRQUNGO0lBQ0Y7QUF3SkYiLCJzb3VyY2VzIjpbIkQ6XFxzcmNcXGNsaWVudFxccGFnZS1sb2FkZXIudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBDb21wb25lbnRUeXBlIH0gZnJvbSAncmVhY3QnXG5pbXBvcnQgdHlwZSB7IFJvdXRlTG9hZGVyIH0gZnJvbSAnLi9yb3V0ZS1sb2FkZXInXG5pbXBvcnQgdHlwZSB7IE1pZGRsZXdhcmVNYXRjaGVyIH0gZnJvbSAnLi4vYnVpbGQvYW5hbHlzaXMvZ2V0LXBhZ2Utc3RhdGljLWluZm8nXG5pbXBvcnQgeyBhZGRCYXNlUGF0aCB9IGZyb20gJy4vYWRkLWJhc2UtcGF0aCdcbmltcG9ydCB7IGludGVycG9sYXRlQXMgfSBmcm9tICcuLi9zaGFyZWQvbGliL3JvdXRlci91dGlscy9pbnRlcnBvbGF0ZS1hcydcbmltcG9ydCBnZXRBc3NldFBhdGhGcm9tUm91dGUgZnJvbSAnLi4vc2hhcmVkL2xpYi9yb3V0ZXIvdXRpbHMvZ2V0LWFzc2V0LXBhdGgtZnJvbS1yb3V0ZSdcbmltcG9ydCB7IGFkZExvY2FsZSB9IGZyb20gJy4vYWRkLWxvY2FsZSdcbmltcG9ydCB7IGlzRHluYW1pY1JvdXRlIH0gZnJvbSAnLi4vc2hhcmVkL2xpYi9yb3V0ZXIvdXRpbHMvaXMtZHluYW1pYydcbmltcG9ydCB7IHBhcnNlUmVsYXRpdmVVcmwgfSBmcm9tICcuLi9zaGFyZWQvbGliL3JvdXRlci91dGlscy9wYXJzZS1yZWxhdGl2ZS11cmwnXG5pbXBvcnQgeyByZW1vdmVUcmFpbGluZ1NsYXNoIH0gZnJvbSAnLi4vc2hhcmVkL2xpYi9yb3V0ZXIvdXRpbHMvcmVtb3ZlLXRyYWlsaW5nLXNsYXNoJ1xuaW1wb3J0IHsgY3JlYXRlUm91dGVMb2FkZXIsIGdldENsaWVudEJ1aWxkTWFuaWZlc3QgfSBmcm9tICcuL3JvdXRlLWxvYWRlcidcbmltcG9ydCB7XG4gIERFVl9DTElFTlRfUEFHRVNfTUFOSUZFU1QsXG4gIERFVl9DTElFTlRfTUlERExFV0FSRV9NQU5JRkVTVCxcbiAgVFVSQk9QQUNLX0NMSUVOVF9NSURETEVXQVJFX01BTklGRVNULFxufSBmcm9tICcuLi9zaGFyZWQvbGliL2NvbnN0YW50cydcblxuZGVjbGFyZSBnbG9iYWwge1xuICBpbnRlcmZhY2UgV2luZG93IHtcbiAgICBfX0RFVl9NSURETEVXQVJFX01BVENIRVJTPzogTWlkZGxld2FyZU1hdGNoZXJbXVxuICAgIF9fREVWX1BBR0VTX01BTklGRVNUPzogeyBwYWdlczogc3RyaW5nW10gfVxuICAgIF9fU1NHX01BTklGRVNUX0NCPzogKCkgPT4gdm9pZFxuICAgIF9fU1NHX01BTklGRVNUPzogU2V0PHN0cmluZz5cbiAgfVxufVxuXG5leHBvcnQgdHlwZSBTdHlsZVNoZWV0VHVwbGUgPSB7IGhyZWY6IHN0cmluZzsgdGV4dDogc3RyaW5nIH1cbmV4cG9ydCB0eXBlIEdvb2RQYWdlQ2FjaGUgPSB7XG4gIHBhZ2U6IENvbXBvbmVudFR5cGVcbiAgbW9kOiBhbnlcbiAgc3R5bGVTaGVldHM6IFN0eWxlU2hlZXRUdXBsZVtdXG59XG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIFBhZ2VMb2FkZXIge1xuICBwcml2YXRlIGJ1aWxkSWQ6IHN0cmluZ1xuICBwcml2YXRlIGFzc2V0UHJlZml4OiBzdHJpbmdcbiAgcHJpdmF0ZSBwcm9taXNlZFNzZ01hbmlmZXN0OiBQcm9taXNlPFNldDxzdHJpbmc+PlxuICBwcml2YXRlIHByb21pc2VkRGV2UGFnZXNNYW5pZmVzdD86IFByb21pc2U8c3RyaW5nW10+XG4gIHByaXZhdGUgcHJvbWlzZWRNaWRkbGV3YXJlTWF0Y2hlcnM/OiBQcm9taXNlPE1pZGRsZXdhcmVNYXRjaGVyW10+XG5cbiAgcHVibGljIHJvdXRlTG9hZGVyOiBSb3V0ZUxvYWRlclxuXG4gIGNvbnN0cnVjdG9yKGJ1aWxkSWQ6IHN0cmluZywgYXNzZXRQcmVmaXg6IHN0cmluZykge1xuICAgIHRoaXMucm91dGVMb2FkZXIgPSBjcmVhdGVSb3V0ZUxvYWRlcihhc3NldFByZWZpeClcblxuICAgIHRoaXMuYnVpbGRJZCA9IGJ1aWxkSWRcbiAgICB0aGlzLmFzc2V0UHJlZml4ID0gYXNzZXRQcmVmaXhcblxuICAgIHRoaXMucHJvbWlzZWRTc2dNYW5pZmVzdCA9IG5ldyBQcm9taXNlKChyZXNvbHZlKSA9PiB7XG4gICAgICBpZiAod2luZG93Ll9fU1NHX01BTklGRVNUKSB7XG4gICAgICAgIHJlc29sdmUod2luZG93Ll9fU1NHX01BTklGRVNUKVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgd2luZG93Ll9fU1NHX01BTklGRVNUX0NCID0gKCkgPT4ge1xuICAgICAgICAgIHJlc29sdmUod2luZG93Ll9fU1NHX01BTklGRVNUISlcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0pXG4gIH1cblxuICBnZXRQYWdlTGlzdCgpIHtcbiAgICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgPT09ICdwcm9kdWN0aW9uJykge1xuICAgICAgcmV0dXJuIGdldENsaWVudEJ1aWxkTWFuaWZlc3QoKS50aGVuKChtYW5pZmVzdCkgPT4gbWFuaWZlc3Quc29ydGVkUGFnZXMpXG4gICAgfSBlbHNlIHtcbiAgICAgIGlmICh3aW5kb3cuX19ERVZfUEFHRVNfTUFOSUZFU1QpIHtcbiAgICAgICAgcmV0dXJuIHdpbmRvdy5fX0RFVl9QQUdFU19NQU5JRkVTVC5wYWdlc1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5wcm9taXNlZERldlBhZ2VzTWFuaWZlc3QgfHw9IGZldGNoKFxuICAgICAgICAgIGAke3RoaXMuYXNzZXRQcmVmaXh9L19uZXh0L3N0YXRpYy9kZXZlbG9wbWVudC8ke0RFVl9DTElFTlRfUEFHRVNfTUFOSUZFU1R9YCxcbiAgICAgICAgICB7IGNyZWRlbnRpYWxzOiAnc2FtZS1vcmlnaW4nIH1cbiAgICAgICAgKVxuICAgICAgICAgIC50aGVuKChyZXMpID0+IHJlcy5qc29uKCkpXG4gICAgICAgICAgLnRoZW4oKG1hbmlmZXN0OiB7IHBhZ2VzOiBzdHJpbmdbXSB9KSA9PiB7XG4gICAgICAgICAgICB3aW5kb3cuX19ERVZfUEFHRVNfTUFOSUZFU1QgPSBtYW5pZmVzdFxuICAgICAgICAgICAgcmV0dXJuIG1hbmlmZXN0LnBhZ2VzXG4gICAgICAgICAgfSlcbiAgICAgICAgICAuY2F0Y2goKGVycikgPT4ge1xuICAgICAgICAgICAgY29uc29sZS5sb2coYEZhaWxlZCB0byBmZXRjaCBkZXZQYWdlc01hbmlmZXN0OmAsIGVycilcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgICAgICAgYEZhaWxlZCB0byBmZXRjaCBfZGV2UGFnZXNNYW5pZmVzdC5qc29uLiBJcyBzb21ldGhpbmcgYmxvY2tpbmcgdGhhdCBuZXR3b3JrIHJlcXVlc3Q/XFxuYCArXG4gICAgICAgICAgICAgICAgJ1JlYWQgbW9yZTogaHR0cHM6Ly9uZXh0anMub3JnL2RvY3MvbWVzc2FnZXMvZmFpbGVkLXRvLWZldGNoLWRldnBhZ2VzbWFuaWZlc3QnXG4gICAgICAgICAgICApXG4gICAgICAgICAgfSlcbiAgICAgICAgcmV0dXJuIHRoaXMucHJvbWlzZWREZXZQYWdlc01hbmlmZXN0XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgZ2V0TWlkZGxld2FyZSgpIHtcbiAgICAvLyBXZWJwYWNrIHByb2R1Y3Rpb25cbiAgICBpZiAoXG4gICAgICBwcm9jZXNzLmVudi5OT0RFX0VOViA9PT0gJ3Byb2R1Y3Rpb24nICYmXG4gICAgICBwcm9jZXNzLmVudi5fX05FWFRfTUlERExFV0FSRV9NQVRDSEVSU1xuICAgICkge1xuICAgICAgY29uc3QgbWlkZGxld2FyZU1hdGNoZXJzID0gcHJvY2Vzcy5lbnYuX19ORVhUX01JRERMRVdBUkVfTUFUQ0hFUlNcbiAgICAgIHdpbmRvdy5fX01JRERMRVdBUkVfTUFUQ0hFUlMgPSBtaWRkbGV3YXJlTWF0Y2hlcnNcbiAgICAgICAgPyAobWlkZGxld2FyZU1hdGNoZXJzIGFzIGFueSBhcyBNaWRkbGV3YXJlTWF0Y2hlcltdKVxuICAgICAgICA6IHVuZGVmaW5lZFxuICAgICAgcmV0dXJuIHdpbmRvdy5fX01JRERMRVdBUkVfTUFUQ0hFUlNcbiAgICAgIC8vIFR1cmJvcGFjayBwcm9kdWN0aW9uXG4gICAgfSBlbHNlIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViA9PT0gJ3Byb2R1Y3Rpb24nKSB7XG4gICAgICBpZiAod2luZG93Ll9fTUlERExFV0FSRV9NQVRDSEVSUykge1xuICAgICAgICByZXR1cm4gd2luZG93Ll9fTUlERExFV0FSRV9NQVRDSEVSU1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgaWYgKCF0aGlzLnByb21pc2VkTWlkZGxld2FyZU1hdGNoZXJzKSB7XG4gICAgICAgICAgLy8gVE9ETzogRGVjaWRlIHdoYXQgc2hvdWxkIGhhcHBlbiB3aGVuIGZldGNoaW5nIGZhaWxzIGluc3RlYWQgb2YgYXNzZXJ0aW5nXG4gICAgICAgICAgLy8gQHRzLWlnbm9yZVxuICAgICAgICAgIHRoaXMucHJvbWlzZWRNaWRkbGV3YXJlTWF0Y2hlcnMgPSBmZXRjaChcbiAgICAgICAgICAgIGAke3RoaXMuYXNzZXRQcmVmaXh9L19uZXh0L3N0YXRpYy8ke3RoaXMuYnVpbGRJZH0vJHtUVVJCT1BBQ0tfQ0xJRU5UX01JRERMRVdBUkVfTUFOSUZFU1R9YCxcbiAgICAgICAgICAgIHsgY3JlZGVudGlhbHM6ICdzYW1lLW9yaWdpbicgfVxuICAgICAgICAgIClcbiAgICAgICAgICAgIC50aGVuKChyZXMpID0+IHJlcy5qc29uKCkpXG4gICAgICAgICAgICAudGhlbigobWF0Y2hlcnM6IE1pZGRsZXdhcmVNYXRjaGVyW10pID0+IHtcbiAgICAgICAgICAgICAgd2luZG93Ll9fTUlERExFV0FSRV9NQVRDSEVSUyA9IG1hdGNoZXJzXG4gICAgICAgICAgICAgIHJldHVybiBtYXRjaGVyc1xuICAgICAgICAgICAgfSlcbiAgICAgICAgICAgIC5jYXRjaCgoZXJyKSA9PiB7XG4gICAgICAgICAgICAgIGNvbnNvbGUubG9nKGBGYWlsZWQgdG8gZmV0Y2ggX2Rldk1pZGRsZXdhcmVNYW5pZmVzdGAsIGVycilcbiAgICAgICAgICAgIH0pXG4gICAgICAgIH1cbiAgICAgICAgLy8gVE9ETyBSZW1vdmUgdGhpcyBhc3NlcnRpb24gYXMgdGhpcyBjb3VsZCBiZSB1bmRlZmluZWRcbiAgICAgICAgcmV0dXJuIHRoaXMucHJvbWlzZWRNaWRkbGV3YXJlTWF0Y2hlcnMhXG4gICAgICB9XG4gICAgICAvLyBEZXZlbG9wbWVudCBib3RoIFR1cmJvcGFjayBhbmQgV2VicGFja1xuICAgIH0gZWxzZSB7XG4gICAgICBpZiAod2luZG93Ll9fREVWX01JRERMRVdBUkVfTUFUQ0hFUlMpIHtcbiAgICAgICAgcmV0dXJuIHdpbmRvdy5fX0RFVl9NSURETEVXQVJFX01BVENIRVJTXG4gICAgICB9IGVsc2Uge1xuICAgICAgICBpZiAoIXRoaXMucHJvbWlzZWRNaWRkbGV3YXJlTWF0Y2hlcnMpIHtcbiAgICAgICAgICAvLyBUT0RPOiBEZWNpZGUgd2hhdCBzaG91bGQgaGFwcGVuIHdoZW4gZmV0Y2hpbmcgZmFpbHMgaW5zdGVhZCBvZiBhc3NlcnRpbmdcbiAgICAgICAgICAvLyBAdHMtaWdub3JlXG4gICAgICAgICAgdGhpcy5wcm9taXNlZE1pZGRsZXdhcmVNYXRjaGVycyA9IGZldGNoKFxuICAgICAgICAgICAgYCR7dGhpcy5hc3NldFByZWZpeH0vX25leHQvc3RhdGljLyR7dGhpcy5idWlsZElkfS8ke0RFVl9DTElFTlRfTUlERExFV0FSRV9NQU5JRkVTVH1gLFxuICAgICAgICAgICAgeyBjcmVkZW50aWFsczogJ3NhbWUtb3JpZ2luJyB9XG4gICAgICAgICAgKVxuICAgICAgICAgICAgLnRoZW4oKHJlcykgPT4gcmVzLmpzb24oKSlcbiAgICAgICAgICAgIC50aGVuKChtYXRjaGVyczogTWlkZGxld2FyZU1hdGNoZXJbXSkgPT4ge1xuICAgICAgICAgICAgICB3aW5kb3cuX19ERVZfTUlERExFV0FSRV9NQVRDSEVSUyA9IG1hdGNoZXJzXG4gICAgICAgICAgICAgIHJldHVybiBtYXRjaGVyc1xuICAgICAgICAgICAgfSlcbiAgICAgICAgICAgIC5jYXRjaCgoZXJyKSA9PiB7XG4gICAgICAgICAgICAgIGNvbnNvbGUubG9nKGBGYWlsZWQgdG8gZmV0Y2ggX2Rldk1pZGRsZXdhcmVNYW5pZmVzdGAsIGVycilcbiAgICAgICAgICAgIH0pXG4gICAgICAgIH1cbiAgICAgICAgLy8gVE9ETyBSZW1vdmUgdGhpcyBhc3NlcnRpb24gYXMgdGhpcyBjb3VsZCBiZSB1bmRlZmluZWRcbiAgICAgICAgcmV0dXJuIHRoaXMucHJvbWlzZWRNaWRkbGV3YXJlTWF0Y2hlcnMhXG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgZ2V0RGF0YUhyZWYocGFyYW1zOiB7XG4gICAgYXNQYXRoOiBzdHJpbmdcbiAgICBocmVmOiBzdHJpbmdcbiAgICBsb2NhbGU/OiBzdHJpbmcgfCBmYWxzZVxuICAgIHNraXBJbnRlcnBvbGF0aW9uPzogYm9vbGVhblxuICB9KTogc3RyaW5nIHtcbiAgICBjb25zdCB7IGFzUGF0aCwgaHJlZiwgbG9jYWxlIH0gPSBwYXJhbXNcbiAgICBjb25zdCB7IHBhdGhuYW1lOiBocmVmUGF0aG5hbWUsIHF1ZXJ5LCBzZWFyY2ggfSA9IHBhcnNlUmVsYXRpdmVVcmwoaHJlZilcbiAgICBjb25zdCB7IHBhdGhuYW1lOiBhc1BhdGhuYW1lIH0gPSBwYXJzZVJlbGF0aXZlVXJsKGFzUGF0aClcbiAgICBjb25zdCByb3V0ZSA9IHJlbW92ZVRyYWlsaW5nU2xhc2goaHJlZlBhdGhuYW1lKVxuICAgIGlmIChyb3V0ZVswXSAhPT0gJy8nKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYFJvdXRlIG5hbWUgc2hvdWxkIHN0YXJ0IHdpdGggYSBcIi9cIiwgZ290IFwiJHtyb3V0ZX1cImApXG4gICAgfVxuXG4gICAgY29uc3QgZ2V0SHJlZkZvclNsdWcgPSAocGF0aDogc3RyaW5nKSA9PiB7XG4gICAgICBjb25zdCBkYXRhUm91dGUgPSBnZXRBc3NldFBhdGhGcm9tUm91dGUoXG4gICAgICAgIHJlbW92ZVRyYWlsaW5nU2xhc2goYWRkTG9jYWxlKHBhdGgsIGxvY2FsZSkpLFxuICAgICAgICAnLmpzb24nXG4gICAgICApXG4gICAgICByZXR1cm4gYWRkQmFzZVBhdGgoXG4gICAgICAgIGAvX25leHQvZGF0YS8ke3RoaXMuYnVpbGRJZH0ke2RhdGFSb3V0ZX0ke3NlYXJjaH1gLFxuICAgICAgICB0cnVlXG4gICAgICApXG4gICAgfVxuXG4gICAgcmV0dXJuIGdldEhyZWZGb3JTbHVnKFxuICAgICAgcGFyYW1zLnNraXBJbnRlcnBvbGF0aW9uXG4gICAgICAgID8gYXNQYXRobmFtZVxuICAgICAgICA6IGlzRHluYW1pY1JvdXRlKHJvdXRlKVxuICAgICAgICAgID8gaW50ZXJwb2xhdGVBcyhocmVmUGF0aG5hbWUsIGFzUGF0aG5hbWUsIHF1ZXJ5KS5yZXN1bHRcbiAgICAgICAgICA6IHJvdXRlXG4gICAgKVxuICB9XG5cbiAgX2lzU3NnKFxuICAgIC8qKiB0aGUgcm91dGUgKGZpbGUtc3lzdGVtIHBhdGgpICovXG4gICAgcm91dGU6IHN0cmluZ1xuICApOiBQcm9taXNlPGJvb2xlYW4+IHtcbiAgICByZXR1cm4gdGhpcy5wcm9taXNlZFNzZ01hbmlmZXN0LnRoZW4oKG1hbmlmZXN0KSA9PiBtYW5pZmVzdC5oYXMocm91dGUpKVxuICB9XG5cbiAgbG9hZFBhZ2Uocm91dGU6IHN0cmluZyk6IFByb21pc2U8R29vZFBhZ2VDYWNoZT4ge1xuICAgIHJldHVybiB0aGlzLnJvdXRlTG9hZGVyLmxvYWRSb3V0ZShyb3V0ZSkudGhlbigocmVzKSA9PiB7XG4gICAgICBpZiAoJ2NvbXBvbmVudCcgaW4gcmVzKSB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgcGFnZTogcmVzLmNvbXBvbmVudCxcbiAgICAgICAgICBtb2Q6IHJlcy5leHBvcnRzLFxuICAgICAgICAgIHN0eWxlU2hlZXRzOiByZXMuc3R5bGVzLm1hcCgobykgPT4gKHtcbiAgICAgICAgICAgIGhyZWY6IG8uaHJlZixcbiAgICAgICAgICAgIHRleHQ6IG8uY29udGVudCxcbiAgICAgICAgICB9KSksXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIHRocm93IHJlcy5lcnJvclxuICAgIH0pXG4gIH1cblxuICBwcmVmZXRjaChyb3V0ZTogc3RyaW5nKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgcmV0dXJuIHRoaXMucm91dGVMb2FkZXIucHJlZmV0Y2gocm91dGUpXG4gIH1cbn1cbiJdLCJuYW1lcyI6WyJQYWdlTG9hZGVyIiwiZ2V0UGFnZUxpc3QiLCJwcm9jZXNzIiwiZW52IiwiTk9ERV9FTlYiLCJnZXRDbGllbnRCdWlsZE1hbmlmZXN0IiwidGhlbiIsIm1hbmlmZXN0Iiwic29ydGVkUGFnZXMiLCJ3aW5kb3ciLCJfX0RFVl9QQUdFU19NQU5JRkVTVCIsInBhZ2VzIiwicHJvbWlzZWREZXZQYWdlc01hbmlmZXN0IiwiZmV0Y2giLCJhc3NldFByZWZpeCIsIkRFVl9DTElFTlRfUEFHRVNfTUFOSUZFU1QiLCJjcmVkZW50aWFscyIsInJlcyIsImpzb24iLCJjYXRjaCIsImVyciIsImNvbnNvbGUiLCJsb2ciLCJFcnJvciIsImdldE1pZGRsZXdhcmUiLCJfX05FWFRfTUlERExFV0FSRV9NQVRDSEVSUyIsIm1pZGRsZXdhcmVNYXRjaGVycyIsIl9fTUlERExFV0FSRV9NQVRDSEVSUyIsInVuZGVmaW5lZCIsInByb21pc2VkTWlkZGxld2FyZU1hdGNoZXJzIiwiYnVpbGRJZCIsIlRVUkJPUEFDS19DTElFTlRfTUlERExFV0FSRV9NQU5JRkVTVCIsIm1hdGNoZXJzIiwiX19ERVZfTUlERExFV0FSRV9NQVRDSEVSUyIsIkRFVl9DTElFTlRfTUlERExFV0FSRV9NQU5JRkVTVCIsImdldERhdGFIcmVmIiwicGFyYW1zIiwiYXNQYXRoIiwiaHJlZiIsImxvY2FsZSIsInBhdGhuYW1lIiwiaHJlZlBhdGhuYW1lIiwicXVlcnkiLCJzZWFyY2giLCJwYXJzZVJlbGF0aXZlVXJsIiwiYXNQYXRobmFtZSIsInJvdXRlIiwicmVtb3ZlVHJhaWxpbmdTbGFzaCIsImdldEhyZWZGb3JTbHVnIiwicGF0aCIsImRhdGFSb3V0ZSIsImdldEFzc2V0UGF0aEZyb21Sb3V0ZSIsImFkZExvY2FsZSIsImFkZEJhc2VQYXRoIiwic2tpcEludGVycG9sYXRpb24iLCJpc0R5bmFtaWNSb3V0ZSIsImludGVycG9sYXRlQXMiLCJyZXN1bHQiLCJfaXNTc2ciLCJwcm9taXNlZFNzZ01hbmlmZXN0IiwiaGFzIiwibG9hZFBhZ2UiLCJyb3V0ZUxvYWRlciIsImxvYWRSb3V0ZSIsInBhZ2UiLCJjb21wb25lbnQiLCJtb2QiLCJleHBvcnRzIiwic3R5bGVTaGVldHMiLCJzdHlsZXMiLCJtYXAiLCJvIiwidGV4dCIsImNvbnRlbnQiLCJlcnJvciIsInByZWZldGNoIiwiY29uc3RydWN0b3IiLCJjcmVhdGVSb3V0ZUxvYWRlciIsIlByb21pc2UiLCJyZXNvbHZlIiwiX19TU0dfTUFOSUZFU1QiLCJfX1NTR19NQU5JRkVTVF9DQiJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(pages-dir-browser)/./node_modules/next/dist/client/page-loader.js\n")); - -/***/ }), - -/***/ "(pages-dir-browser)/./node_modules/next/dist/client/portal/index.js": -/*!*******************************************************!*\ - !*** ./node_modules/next/dist/client/portal/index.js ***! - \*******************************************************/ -/***/ ((module, exports, __webpack_require__) => { - -"use strict"; -eval(__webpack_require__.ts("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"Portal\", ({\n enumerable: true,\n get: function() {\n return Portal;\n }\n}));\nconst _react = __webpack_require__(/*! react */ \"(pages-dir-browser)/./node_modules/react/index.js\");\nconst _reactdom = __webpack_require__(/*! react-dom */ \"(pages-dir-browser)/./node_modules/react-dom/index.js\");\nconst Portal = (param)=>{\n let { children, type } = param;\n const [portalNode, setPortalNode] = (0, _react.useState)(null);\n (0, _react.useEffect)(()=>{\n const element = document.createElement(type);\n document.body.appendChild(element);\n setPortalNode(element);\n return ()=>{\n document.body.removeChild(element);\n };\n }, [\n type\n ]);\n return portalNode ? /*#__PURE__*/ (0, _reactdom.createPortal)(children, portalNode) : null;\n};\n_c = Portal;\nif ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=index.js.map\nvar _c;\n$RefreshReg$(_c, \"Portal\");\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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvY2xpZW50L3BvcnRhbC9pbmRleC5qcyIsIm1hcHBpbmdzIjoiOzs7OzBDQVFhQTs7O2VBQUFBOzs7bUNBUnVCO3NDQUNQO0FBT3RCLGVBQWU7UUFBQyxFQUFFQyxRQUFRLEVBQUVDLElBQUksRUFBZTtJQUNwRCxNQUFNLENBQUNDLFlBQVlDLGNBQWMsR0FBR0MsQ0FBQUEsR0FBQUEsT0FBQUEsUUFBQUEsRUFBNkI7SUFFakVDLENBQUFBLEdBQUFBLE9BQUFBLFNBQUFBLEVBQVU7UUFDUixNQUFNQyxVQUFVQyxTQUFTQyxhQUFhLENBQUNQO1FBQ3ZDTSxTQUFTRSxJQUFJLENBQUNDLFdBQVcsQ0FBQ0o7UUFDMUJILGNBQWNHO1FBQ2QsT0FBTztZQUNMQyxTQUFTRSxJQUFJLENBQUNFLFdBQVcsQ0FBQ0w7UUFDNUI7SUFDRixHQUFHO1FBQUNMO0tBQUs7SUFFVCxPQUFPQyxhQUFBQSxXQUFBQSxHQUFhVSxDQUFBQSxHQUFBQSxVQUFBQSxZQUFBQSxFQUFhWixVQUFVRSxjQUFjO0FBQzNEO0tBYmFIIiwic291cmNlcyI6WyJEOlxcc3JjXFxjbGllbnRcXHBvcnRhbFxcaW5kZXgudHN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHVzZUVmZmVjdCwgdXNlU3RhdGUgfSBmcm9tICdyZWFjdCdcbmltcG9ydCB7IGNyZWF0ZVBvcnRhbCB9IGZyb20gJ3JlYWN0LWRvbSdcblxudHlwZSBQb3J0YWxQcm9wcyA9IHtcbiAgY2hpbGRyZW46IFJlYWN0LlJlYWN0Tm9kZVxuICB0eXBlOiBzdHJpbmdcbn1cblxuZXhwb3J0IGNvbnN0IFBvcnRhbCA9ICh7IGNoaWxkcmVuLCB0eXBlIH06IFBvcnRhbFByb3BzKSA9PiB7XG4gIGNvbnN0IFtwb3J0YWxOb2RlLCBzZXRQb3J0YWxOb2RlXSA9IHVzZVN0YXRlPEhUTUxFbGVtZW50IHwgbnVsbD4obnVsbClcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGNvbnN0IGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KHR5cGUpXG4gICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChlbGVtZW50KVxuICAgIHNldFBvcnRhbE5vZGUoZWxlbWVudClcbiAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgZG9jdW1lbnQuYm9keS5yZW1vdmVDaGlsZChlbGVtZW50KVxuICAgIH1cbiAgfSwgW3R5cGVdKVxuXG4gIHJldHVybiBwb3J0YWxOb2RlID8gY3JlYXRlUG9ydGFsKGNoaWxkcmVuLCBwb3J0YWxOb2RlKSA6IG51bGxcbn1cbiJdLCJuYW1lcyI6WyJQb3J0YWwiLCJjaGlsZHJlbiIsInR5cGUiLCJwb3J0YWxOb2RlIiwic2V0UG9ydGFsTm9kZSIsInVzZVN0YXRlIiwidXNlRWZmZWN0IiwiZWxlbWVudCIsImRvY3VtZW50IiwiY3JlYXRlRWxlbWVudCIsImJvZHkiLCJhcHBlbmRDaGlsZCIsInJlbW92ZUNoaWxkIiwiY3JlYXRlUG9ydGFsIl0sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(pages-dir-browser)/./node_modules/next/dist/client/portal/index.js\n")); - -/***/ }), - -/***/ "(pages-dir-browser)/./node_modules/next/dist/client/react-client-callbacks/on-recoverable-error.js": -/*!**************************************************************************************!*\ - !*** ./node_modules/next/dist/client/react-client-callbacks/on-recoverable-error.js ***! - \**************************************************************************************/ -/***/ ((module, exports, __webpack_require__) => { - -"use strict"; -eval(__webpack_require__.ts("// This module can be shared between both pages router and app router\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n isRecoverableError: function() {\n return isRecoverableError;\n },\n onRecoverableError: function() {\n return onRecoverableError;\n }\n});\nconst _interop_require_default = __webpack_require__(/*! @swc/helpers/_/_interop_require_default */ \"(pages-dir-browser)/./node_modules/@swc/helpers/esm/_interop_require_default.js\");\nconst _bailouttocsr = __webpack_require__(/*! ../../shared/lib/lazy-dynamic/bailout-to-csr */ \"(pages-dir-browser)/./node_modules/next/dist/shared/lib/lazy-dynamic/bailout-to-csr.js\");\nconst _iserror = /*#__PURE__*/ _interop_require_default._(__webpack_require__(/*! ../../lib/is-error */ \"(pages-dir-browser)/./node_modules/next/dist/lib/is-error.js\"));\nconst _reportglobalerror = __webpack_require__(/*! ./report-global-error */ \"(pages-dir-browser)/./node_modules/next/dist/client/react-client-callbacks/report-global-error.js\");\nconst recoverableErrors = new WeakSet();\nfunction isRecoverableError(error) {\n return recoverableErrors.has(error);\n}\nconst onRecoverableError = (error, errorInfo)=>{\n // x-ref: https://github.com/facebook/react/pull/28736\n let cause = (0, _iserror.default)(error) && 'cause' in error ? error.cause : error;\n // Skip certain custom errors which are not expected to be reported on client\n if ((0, _bailouttocsr.isBailoutToCSRError)(cause)) return;\n if (true) {\n const { decorateDevError } = __webpack_require__(/*! ../../next-devtools/userspace/app/errors/stitched-error */ \"(pages-dir-browser)/./node_modules/next/dist/next-devtools/userspace/app/errors/stitched-error.js\");\n const causeError = decorateDevError(cause, errorInfo);\n recoverableErrors.add(causeError);\n cause = causeError;\n }\n (0, _reportglobalerror.reportGlobalError)(cause);\n};\nif ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=on-recoverable-error.js.map\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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvY2xpZW50L3JlYWN0LWNsaWVudC1jYWxsYmFja3Mvb24tcmVjb3ZlcmFibGUtZXJyb3IuanMiLCJtYXBwaW5ncyI6IkFBQUEscUVBQXFFOzs7Ozs7Ozs7Ozs7O0lBU3JEQSxrQkFBa0I7ZUFBbEJBOztJQUlIQyxrQkFBa0I7ZUFBbEJBOzs7OzBDQVZ1Qjs4RUFDaEI7K0NBQ2M7QUFFbEMsTUFBTUMsb0JBQW9CLElBQUlDO0FBRXZCLFNBQVNILG1CQUFtQkksS0FBWTtJQUM3QyxPQUFPRixrQkFBa0JHLEdBQUcsQ0FBQ0Q7QUFDL0I7QUFFTyxNQUFNSCxxQkFBNkQsQ0FDeEVHLE9BQ0FFO0lBRUEsc0RBQXNEO0lBQ3RELElBQUlDLFFBQVFDLENBQUFBLEdBQUFBLFNBQUFBLE9BQUFBLEVBQVFKLFVBQVUsV0FBV0EsUUFBUUEsTUFBTUcsS0FBSyxHQUFHSDtJQUMvRCw2RUFBNkU7SUFDN0UsSUFBSUssQ0FBQUEsR0FBQUEsY0FBQUEsbUJBQUFBLEVBQW9CRixRQUFRO0lBRWhDLElBQUlHLElBQW9CLEVBQW1CO1FBQ3pDLE1BQU0sRUFBRUcsZ0JBQWdCLEVBQUUsR0FDeEJDLG1CQUFPQSxDQUFDLGtLQUF5RDtRQUNuRSxNQUFNQyxhQUFhRixpQkFBaUJOLE9BQU9EO1FBQzNDSixrQkFBa0JjLEdBQUcsQ0FBQ0Q7UUFDdEJSLFFBQVFRO0lBQ1Y7SUFFQUUsQ0FBQUEsR0FBQUEsbUJBQUFBLGlCQUFBQSxFQUFrQlY7QUFDcEIiLCJzb3VyY2VzIjpbIkQ6XFxzcmNcXGNsaWVudFxccmVhY3QtY2xpZW50LWNhbGxiYWNrc1xcb24tcmVjb3ZlcmFibGUtZXJyb3IudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLy8gVGhpcyBtb2R1bGUgY2FuIGJlIHNoYXJlZCBiZXR3ZWVuIGJvdGggcGFnZXMgcm91dGVyIGFuZCBhcHAgcm91dGVyXG5cbmltcG9ydCB0eXBlIHsgSHlkcmF0aW9uT3B0aW9ucyB9IGZyb20gJ3JlYWN0LWRvbS9jbGllbnQnXG5pbXBvcnQgeyBpc0JhaWxvdXRUb0NTUkVycm9yIH0gZnJvbSAnLi4vLi4vc2hhcmVkL2xpYi9sYXp5LWR5bmFtaWMvYmFpbG91dC10by1jc3InXG5pbXBvcnQgaXNFcnJvciBmcm9tICcuLi8uLi9saWIvaXMtZXJyb3InXG5pbXBvcnQgeyByZXBvcnRHbG9iYWxFcnJvciB9IGZyb20gJy4vcmVwb3J0LWdsb2JhbC1lcnJvcidcblxuY29uc3QgcmVjb3ZlcmFibGVFcnJvcnMgPSBuZXcgV2Vha1NldDxFcnJvcj4oKVxuXG5leHBvcnQgZnVuY3Rpb24gaXNSZWNvdmVyYWJsZUVycm9yKGVycm9yOiBFcnJvcik6IGJvb2xlYW4ge1xuICByZXR1cm4gcmVjb3ZlcmFibGVFcnJvcnMuaGFzKGVycm9yKVxufVxuXG5leHBvcnQgY29uc3Qgb25SZWNvdmVyYWJsZUVycm9yOiBIeWRyYXRpb25PcHRpb25zWydvblJlY292ZXJhYmxlRXJyb3InXSA9IChcbiAgZXJyb3IsXG4gIGVycm9ySW5mb1xuKSA9PiB7XG4gIC8vIHgtcmVmOiBodHRwczovL2dpdGh1Yi5jb20vZmFjZWJvb2svcmVhY3QvcHVsbC8yODczNlxuICBsZXQgY2F1c2UgPSBpc0Vycm9yKGVycm9yKSAmJiAnY2F1c2UnIGluIGVycm9yID8gZXJyb3IuY2F1c2UgOiBlcnJvclxuICAvLyBTa2lwIGNlcnRhaW4gY3VzdG9tIGVycm9ycyB3aGljaCBhcmUgbm90IGV4cGVjdGVkIHRvIGJlIHJlcG9ydGVkIG9uIGNsaWVudFxuICBpZiAoaXNCYWlsb3V0VG9DU1JFcnJvcihjYXVzZSkpIHJldHVyblxuXG4gIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSB7XG4gICAgY29uc3QgeyBkZWNvcmF0ZURldkVycm9yIH0gPVxuICAgICAgcmVxdWlyZSgnLi4vLi4vbmV4dC1kZXZ0b29scy91c2Vyc3BhY2UvYXBwL2Vycm9ycy9zdGl0Y2hlZC1lcnJvcicpIGFzIHR5cGVvZiBpbXBvcnQoJy4uLy4uL25leHQtZGV2dG9vbHMvdXNlcnNwYWNlL2FwcC9lcnJvcnMvc3RpdGNoZWQtZXJyb3InKVxuICAgIGNvbnN0IGNhdXNlRXJyb3IgPSBkZWNvcmF0ZURldkVycm9yKGNhdXNlLCBlcnJvckluZm8pXG4gICAgcmVjb3ZlcmFibGVFcnJvcnMuYWRkKGNhdXNlRXJyb3IpXG4gICAgY2F1c2UgPSBjYXVzZUVycm9yXG4gIH1cblxuICByZXBvcnRHbG9iYWxFcnJvcihjYXVzZSlcbn1cbiJdLCJuYW1lcyI6WyJpc1JlY292ZXJhYmxlRXJyb3IiLCJvblJlY292ZXJhYmxlRXJyb3IiLCJyZWNvdmVyYWJsZUVycm9ycyIsIldlYWtTZXQiLCJlcnJvciIsImhhcyIsImVycm9ySW5mbyIsImNhdXNlIiwiaXNFcnJvciIsImlzQmFpbG91dFRvQ1NSRXJyb3IiLCJwcm9jZXNzIiwiZW52IiwiTk9ERV9FTlYiLCJkZWNvcmF0ZURldkVycm9yIiwicmVxdWlyZSIsImNhdXNlRXJyb3IiLCJhZGQiLCJyZXBvcnRHbG9iYWxFcnJvciJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(pages-dir-browser)/./node_modules/next/dist/client/react-client-callbacks/on-recoverable-error.js\n")); - -/***/ }), - -/***/ "(pages-dir-browser)/./node_modules/next/dist/client/react-client-callbacks/report-global-error.js": -/*!*************************************************************************************!*\ - !*** ./node_modules/next/dist/client/react-client-callbacks/report-global-error.js ***! - \*************************************************************************************/ -/***/ ((module, exports, __webpack_require__) => { - -"use strict"; -eval(__webpack_require__.ts("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"reportGlobalError\", ({\n enumerable: true,\n get: function() {\n return reportGlobalError;\n }\n}));\nconst reportGlobalError = typeof reportError === 'function' ? reportError : (error)=>{\n // TODO: Dispatch error event\n globalThis.console.error(error);\n};\nif ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=report-global-error.js.map\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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvY2xpZW50L3JlYWN0LWNsaWVudC1jYWxsYmFja3MvcmVwb3J0LWdsb2JhbC1lcnJvci5qcyIsIm1hcHBpbmdzIjoiOzs7O3FEQUFhQTs7O2VBQUFBOzs7QUFBTixNQUFNQSxvQkFDWCxPQUFPQyxnQkFBZ0IsYUFFbkIsY0FFQSxDQUFDQztJQUNDLDZCQUE2QjtJQUM3QkMsV0FBV0MsT0FBTyxDQUFDRixLQUFLLENBQUNBO0FBQzNCIiwic291cmNlcyI6WyJEOlxcc3JjXFxjbGllbnRcXHJlYWN0LWNsaWVudC1jYWxsYmFja3NcXHJlcG9ydC1nbG9iYWwtZXJyb3IudHMiXSwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNvbnN0IHJlcG9ydEdsb2JhbEVycm9yID1cbiAgdHlwZW9mIHJlcG9ydEVycm9yID09PSAnZnVuY3Rpb24nXG4gICAgPyAvLyBJbiBtb2Rlcm4gYnJvd3NlcnMsIHJlcG9ydEVycm9yIHdpbGwgZGlzcGF0Y2ggYW4gZXJyb3IgZXZlbnQsXG4gICAgICAvLyBlbXVsYXRpbmcgYW4gdW5jYXVnaHQgSmF2YVNjcmlwdCBlcnJvci5cbiAgICAgIHJlcG9ydEVycm9yXG4gICAgOiAoZXJyb3I6IHVua25vd24pID0+IHtcbiAgICAgICAgLy8gVE9ETzogRGlzcGF0Y2ggZXJyb3IgZXZlbnRcbiAgICAgICAgZ2xvYmFsVGhpcy5jb25zb2xlLmVycm9yKGVycm9yKVxuICAgICAgfVxuIl0sIm5hbWVzIjpbInJlcG9ydEdsb2JhbEVycm9yIiwicmVwb3J0RXJyb3IiLCJlcnJvciIsImdsb2JhbFRoaXMiLCJjb25zb2xlIl0sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(pages-dir-browser)/./node_modules/next/dist/client/react-client-callbacks/report-global-error.js\n")); - -/***/ }), - -/***/ "(pages-dir-browser)/./node_modules/next/dist/client/remove-base-path.js": -/*!***********************************************************!*\ - !*** ./node_modules/next/dist/client/remove-base-path.js ***! - \***********************************************************/ -/***/ ((module, exports, __webpack_require__) => { - -"use strict"; -eval(__webpack_require__.ts("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"removeBasePath\", ({\n enumerable: true,\n get: function() {\n return removeBasePath;\n }\n}));\nconst _hasbasepath = __webpack_require__(/*! ./has-base-path */ \"(pages-dir-browser)/./node_modules/next/dist/client/has-base-path.js\");\nconst basePath = false || '';\nfunction removeBasePath(path) {\n if (false) {}\n // Can't trim the basePath if it has zero length!\n if (basePath.length === 0) return path;\n path = path.slice(basePath.length);\n if (!path.startsWith('/')) path = \"/\" + path;\n return path;\n}\nif ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=remove-base-path.js.map\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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvY2xpZW50L3JlbW92ZS1iYXNlLXBhdGguanMiLCJtYXBwaW5ncyI6Ijs7OztrREFJZ0JBOzs7ZUFBQUE7Ozt5Q0FKWTtBQUU1QixNQUFNQyxXQUFZQyxNQUFrQyxJQUFlO0FBRTVELFNBQVNGLGVBQWVLLElBQVk7SUFDekMsSUFBSUgsS0FBMEMsRUFBRSxFQUkvQztJQUVELGlEQUFpRDtJQUNqRCxJQUFJRCxTQUFTTyxNQUFNLEtBQUssR0FBRyxPQUFPSDtJQUVsQ0EsT0FBT0EsS0FBS0ksS0FBSyxDQUFDUixTQUFTTyxNQUFNO0lBQ2pDLElBQUksQ0FBQ0gsS0FBS0ssVUFBVSxDQUFDLE1BQU1MLE9BQVEsTUFBR0E7SUFDdEMsT0FBT0E7QUFDVCIsInNvdXJjZXMiOlsiRDpcXHNyY1xcY2xpZW50XFxyZW1vdmUtYmFzZS1wYXRoLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGhhc0Jhc2VQYXRoIH0gZnJvbSAnLi9oYXMtYmFzZS1wYXRoJ1xuXG5jb25zdCBiYXNlUGF0aCA9IChwcm9jZXNzLmVudi5fX05FWFRfUk9VVEVSX0JBU0VQQVRIIGFzIHN0cmluZykgfHwgJydcblxuZXhwb3J0IGZ1bmN0aW9uIHJlbW92ZUJhc2VQYXRoKHBhdGg6IHN0cmluZyk6IHN0cmluZyB7XG4gIGlmIChwcm9jZXNzLmVudi5fX05FWFRfTUFOVUFMX0NMSUVOVF9CQVNFX1BBVEgpIHtcbiAgICBpZiAoIWhhc0Jhc2VQYXRoKHBhdGgpKSB7XG4gICAgICByZXR1cm4gcGF0aFxuICAgIH1cbiAgfVxuXG4gIC8vIENhbid0IHRyaW0gdGhlIGJhc2VQYXRoIGlmIGl0IGhhcyB6ZXJvIGxlbmd0aCFcbiAgaWYgKGJhc2VQYXRoLmxlbmd0aCA9PT0gMCkgcmV0dXJuIHBhdGhcblxuICBwYXRoID0gcGF0aC5zbGljZShiYXNlUGF0aC5sZW5ndGgpXG4gIGlmICghcGF0aC5zdGFydHNXaXRoKCcvJykpIHBhdGggPSBgLyR7cGF0aH1gXG4gIHJldHVybiBwYXRoXG59XG4iXSwibmFtZXMiOlsicmVtb3ZlQmFzZVBhdGgiLCJiYXNlUGF0aCIsInByb2Nlc3MiLCJlbnYiLCJfX05FWFRfUk9VVEVSX0JBU0VQQVRIIiwicGF0aCIsIl9fTkVYVF9NQU5VQUxfQ0xJRU5UX0JBU0VfUEFUSCIsImhhc0Jhc2VQYXRoIiwibGVuZ3RoIiwic2xpY2UiLCJzdGFydHNXaXRoIl0sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(pages-dir-browser)/./node_modules/next/dist/client/remove-base-path.js\n")); - -/***/ }), - -/***/ "(pages-dir-browser)/./node_modules/next/dist/client/remove-locale.js": -/*!********************************************************!*\ - !*** ./node_modules/next/dist/client/remove-locale.js ***! - \********************************************************/ -/***/ ((module, exports, __webpack_require__) => { - -"use strict"; -eval(__webpack_require__.ts("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"removeLocale\", ({\n enumerable: true,\n get: function() {\n return removeLocale;\n }\n}));\nconst _parsepath = __webpack_require__(/*! ../shared/lib/router/utils/parse-path */ \"(pages-dir-browser)/./node_modules/next/dist/shared/lib/router/utils/parse-path.js\");\nfunction removeLocale(path, locale) {\n if (false) {}\n return path;\n}\nif ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=remove-locale.js.map\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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvY2xpZW50L3JlbW92ZS1sb2NhbGUuanMiLCJtYXBwaW5ncyI6Ijs7OztnREFFZ0JBOzs7ZUFBQUE7Ozt1Q0FGVTtBQUVuQixTQUFTQSxhQUFhQyxJQUFZLEVBQUVDLE1BQWU7SUFDeEQsSUFBSUMsS0FBK0IsRUFBRSxFQVlwQztJQUNELE9BQU9GO0FBQ1QiLCJzb3VyY2VzIjpbIkQ6XFxzcmNcXGNsaWVudFxccmVtb3ZlLWxvY2FsZS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBwYXJzZVBhdGggfSBmcm9tICcuLi9zaGFyZWQvbGliL3JvdXRlci91dGlscy9wYXJzZS1wYXRoJ1xuXG5leHBvcnQgZnVuY3Rpb24gcmVtb3ZlTG9jYWxlKHBhdGg6IHN0cmluZywgbG9jYWxlPzogc3RyaW5nKSB7XG4gIGlmIChwcm9jZXNzLmVudi5fX05FWFRfSTE4Tl9TVVBQT1JUKSB7XG4gICAgY29uc3QgeyBwYXRobmFtZSB9ID0gcGFyc2VQYXRoKHBhdGgpXG4gICAgY29uc3QgcGF0aExvd2VyID0gcGF0aG5hbWUudG9Mb3dlckNhc2UoKVxuICAgIGNvbnN0IGxvY2FsZUxvd2VyID0gbG9jYWxlPy50b0xvd2VyQ2FzZSgpXG5cbiAgICByZXR1cm4gbG9jYWxlICYmXG4gICAgICAocGF0aExvd2VyLnN0YXJ0c1dpdGgoYC8ke2xvY2FsZUxvd2VyfS9gKSB8fFxuICAgICAgICBwYXRoTG93ZXIgPT09IGAvJHtsb2NhbGVMb3dlcn1gKVxuICAgICAgPyBgJHtwYXRobmFtZS5sZW5ndGggPT09IGxvY2FsZS5sZW5ndGggKyAxID8gYC9gIDogYGB9JHtwYXRoLnNsaWNlKFxuICAgICAgICAgIGxvY2FsZS5sZW5ndGggKyAxXG4gICAgICAgICl9YFxuICAgICAgOiBwYXRoXG4gIH1cbiAgcmV0dXJuIHBhdGhcbn1cbiJdLCJuYW1lcyI6WyJyZW1vdmVMb2NhbGUiLCJwYXRoIiwibG9jYWxlIiwicHJvY2VzcyIsImVudiIsIl9fTkVYVF9JMThOX1NVUFBPUlQiLCJwYXRobmFtZSIsInBhcnNlUGF0aCIsInBhdGhMb3dlciIsInRvTG93ZXJDYXNlIiwibG9jYWxlTG93ZXIiLCJzdGFydHNXaXRoIiwibGVuZ3RoIiwic2xpY2UiXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(pages-dir-browser)/./node_modules/next/dist/client/remove-locale.js\n")); - -/***/ }), - -/***/ "(pages-dir-browser)/./node_modules/next/dist/client/request-idle-callback.js": -/*!****************************************************************!*\ - !*** ./node_modules/next/dist/client/request-idle-callback.js ***! - \****************************************************************/ -/***/ ((module, exports, __webpack_require__) => { - -"use strict"; -eval(__webpack_require__.ts("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n cancelIdleCallback: function() {\n return cancelIdleCallback;\n },\n requestIdleCallback: function() {\n return requestIdleCallback;\n }\n});\nconst requestIdleCallback = typeof self !== 'undefined' && self.requestIdleCallback && self.requestIdleCallback.bind(window) || function(cb) {\n let start = Date.now();\n return self.setTimeout(function() {\n cb({\n didTimeout: false,\n timeRemaining: function() {\n return Math.max(0, 50 - (Date.now() - start));\n }\n });\n }, 1);\n};\nconst cancelIdleCallback = typeof self !== 'undefined' && self.cancelIdleCallback && self.cancelIdleCallback.bind(window) || function(id) {\n return clearTimeout(id);\n};\nif ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=request-idle-callback.js.map\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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvY2xpZW50L3JlcXVlc3QtaWRsZS1jYWxsYmFjay5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7SUFnQmFBLGtCQUFrQjtlQUFsQkE7O0lBaEJBQyxtQkFBbUI7ZUFBbkJBOzs7QUFBTixNQUFNQSxzQkFDVixPQUFPQyxTQUFTLGVBQ2ZBLEtBQUtELG1CQUFtQixJQUN4QkMsS0FBS0QsbUJBQW1CLENBQUNFLElBQUksQ0FBQ0MsV0FDaEMsU0FBVUMsRUFBdUI7SUFDL0IsSUFBSUMsUUFBUUMsS0FBS0MsR0FBRztJQUNwQixPQUFPTixLQUFLTyxVQUFVLENBQUM7UUFDckJKLEdBQUc7WUFDREssWUFBWTtZQUNaQyxlQUFlO2dCQUNiLE9BQU9DLEtBQUtDLEdBQUcsQ0FBQyxHQUFHLEtBQU1OLENBQUFBLEtBQUtDLEdBQUcsS0FBS0YsS0FBQUEsQ0FBSTtZQUM1QztRQUNGO0lBQ0YsR0FBRztBQUNMO0FBRUssTUFBTU4scUJBQ1YsT0FBT0UsU0FBUyxlQUNmQSxLQUFLRixrQkFBa0IsSUFDdkJFLEtBQUtGLGtCQUFrQixDQUFDRyxJQUFJLENBQUNDLFdBQy9CLFNBQVVVLEVBQVU7SUFDbEIsT0FBT0MsYUFBYUQ7QUFDdEIiLCJzb3VyY2VzIjpbIkQ6XFxzcmNcXGNsaWVudFxccmVxdWVzdC1pZGxlLWNhbGxiYWNrLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBjb25zdCByZXF1ZXN0SWRsZUNhbGxiYWNrID1cbiAgKHR5cGVvZiBzZWxmICE9PSAndW5kZWZpbmVkJyAmJlxuICAgIHNlbGYucmVxdWVzdElkbGVDYWxsYmFjayAmJlxuICAgIHNlbGYucmVxdWVzdElkbGVDYWxsYmFjay5iaW5kKHdpbmRvdykpIHx8XG4gIGZ1bmN0aW9uIChjYjogSWRsZVJlcXVlc3RDYWxsYmFjayk6IG51bWJlciB7XG4gICAgbGV0IHN0YXJ0ID0gRGF0ZS5ub3coKVxuICAgIHJldHVybiBzZWxmLnNldFRpbWVvdXQoZnVuY3Rpb24gKCkge1xuICAgICAgY2Ioe1xuICAgICAgICBkaWRUaW1lb3V0OiBmYWxzZSxcbiAgICAgICAgdGltZVJlbWFpbmluZzogZnVuY3Rpb24gKCkge1xuICAgICAgICAgIHJldHVybiBNYXRoLm1heCgwLCA1MCAtIChEYXRlLm5vdygpIC0gc3RhcnQpKVxuICAgICAgICB9LFxuICAgICAgfSlcbiAgICB9LCAxKVxuICB9XG5cbmV4cG9ydCBjb25zdCBjYW5jZWxJZGxlQ2FsbGJhY2sgPVxuICAodHlwZW9mIHNlbGYgIT09ICd1bmRlZmluZWQnICYmXG4gICAgc2VsZi5jYW5jZWxJZGxlQ2FsbGJhY2sgJiZcbiAgICBzZWxmLmNhbmNlbElkbGVDYWxsYmFjay5iaW5kKHdpbmRvdykpIHx8XG4gIGZ1bmN0aW9uIChpZDogbnVtYmVyKSB7XG4gICAgcmV0dXJuIGNsZWFyVGltZW91dChpZClcbiAgfVxuIl0sIm5hbWVzIjpbImNhbmNlbElkbGVDYWxsYmFjayIsInJlcXVlc3RJZGxlQ2FsbGJhY2siLCJzZWxmIiwiYmluZCIsIndpbmRvdyIsImNiIiwic3RhcnQiLCJEYXRlIiwibm93Iiwic2V0VGltZW91dCIsImRpZFRpbWVvdXQiLCJ0aW1lUmVtYWluaW5nIiwiTWF0aCIsIm1heCIsImlkIiwiY2xlYXJUaW1lb3V0Il0sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(pages-dir-browser)/./node_modules/next/dist/client/request-idle-callback.js\n")); - -/***/ }), - -/***/ "(pages-dir-browser)/./node_modules/next/dist/client/resolve-href.js": -/*!*******************************************************!*\ - !*** ./node_modules/next/dist/client/resolve-href.js ***! - \*******************************************************/ -/***/ ((module, exports, __webpack_require__) => { - -"use strict"; -eval(__webpack_require__.ts("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"resolveHref\", ({\n enumerable: true,\n get: function() {\n return resolveHref;\n }\n}));\nconst _querystring = __webpack_require__(/*! ../shared/lib/router/utils/querystring */ \"(pages-dir-browser)/./node_modules/next/dist/shared/lib/router/utils/querystring.js\");\nconst _formaturl = __webpack_require__(/*! ../shared/lib/router/utils/format-url */ \"(pages-dir-browser)/./node_modules/next/dist/shared/lib/router/utils/format-url.js\");\nconst _omit = __webpack_require__(/*! ../shared/lib/router/utils/omit */ \"(pages-dir-browser)/./node_modules/next/dist/shared/lib/router/utils/omit.js\");\nconst _utils = __webpack_require__(/*! ../shared/lib/utils */ \"(pages-dir-browser)/./node_modules/next/dist/shared/lib/utils.js\");\nconst _normalizetrailingslash = __webpack_require__(/*! ./normalize-trailing-slash */ \"(pages-dir-browser)/./node_modules/next/dist/client/normalize-trailing-slash.js\");\nconst _islocalurl = __webpack_require__(/*! ../shared/lib/router/utils/is-local-url */ \"(pages-dir-browser)/./node_modules/next/dist/shared/lib/router/utils/is-local-url.js\");\nconst _utils1 = __webpack_require__(/*! ../shared/lib/router/utils */ \"(pages-dir-browser)/./node_modules/next/dist/shared/lib/router/utils/index.js\");\nconst _interpolateas = __webpack_require__(/*! ../shared/lib/router/utils/interpolate-as */ \"(pages-dir-browser)/./node_modules/next/dist/shared/lib/router/utils/interpolate-as.js\");\nfunction resolveHref(router, href, resolveAs) {\n // we use a dummy base url for relative urls\n let base;\n let urlAsString = typeof href === 'string' ? href : (0, _formaturl.formatWithValidation)(href);\n // repeated slashes and backslashes in the URL are considered\n // invalid and will never match a Next.js page/file\n // https://www.rfc-editor.org/rfc/rfc3986.html#section-3.1\n const urlProtoMatch = urlAsString.match(/^[a-z][a-z0-9+.-]*:\\/\\//i);\n const urlAsStringNoProto = urlProtoMatch ? urlAsString.slice(urlProtoMatch[0].length) : urlAsString;\n const urlParts = urlAsStringNoProto.split('?', 1);\n if ((urlParts[0] || '').match(/(\\/\\/|\\\\)/)) {\n console.error(\"Invalid href '\" + urlAsString + \"' passed to next/router in page: '\" + router.pathname + \"'. Repeated forward-slashes (//) or backslashes \\\\ are not valid in the href.\");\n const normalizedUrl = (0, _utils.normalizeRepeatedSlashes)(urlAsStringNoProto);\n urlAsString = (urlProtoMatch ? urlProtoMatch[0] : '') + normalizedUrl;\n }\n // Return because it cannot be routed by the Next.js router\n if (!(0, _islocalurl.isLocalURL)(urlAsString)) {\n return resolveAs ? [\n urlAsString\n ] : urlAsString;\n }\n try {\n base = new URL(urlAsString.startsWith('#') ? router.asPath : router.pathname, 'http://n');\n } catch (_) {\n // fallback to / for invalid asPath values e.g. //\n base = new URL('/', 'http://n');\n }\n try {\n const finalUrl = new URL(urlAsString, base);\n finalUrl.pathname = (0, _normalizetrailingslash.normalizePathTrailingSlash)(finalUrl.pathname);\n let interpolatedAs = '';\n if ((0, _utils1.isDynamicRoute)(finalUrl.pathname) && finalUrl.searchParams && resolveAs) {\n const query = (0, _querystring.searchParamsToUrlQuery)(finalUrl.searchParams);\n const { result, params } = (0, _interpolateas.interpolateAs)(finalUrl.pathname, finalUrl.pathname, query);\n if (result) {\n interpolatedAs = (0, _formaturl.formatWithValidation)({\n pathname: result,\n hash: finalUrl.hash,\n query: (0, _omit.omit)(query, params)\n });\n }\n }\n // if the origin didn't change, it means we received a relative href\n const resolvedHref = finalUrl.origin === base.origin ? finalUrl.href.slice(finalUrl.origin.length) : finalUrl.href;\n return resolveAs ? [\n resolvedHref,\n interpolatedAs || resolvedHref\n ] : resolvedHref;\n } catch (_) {\n return resolveAs ? [\n urlAsString\n ] : urlAsString;\n }\n}\nif ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=resolve-href.js.map\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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvY2xpZW50L3Jlc29sdmUtaHJlZi5qcyIsIm1hcHBpbmdzIjoiOzs7OytDQXlCZ0JBOzs7ZUFBQUE7Ozt5Q0F2QnVCO3VDQUNGO2tDQUNoQjttQ0FDb0I7b0RBQ0U7d0NBQ2hCO29DQUNJOzJDQUNEO0FBZ0J2QixTQUFTQSxZQUNkQyxNQUFrQixFQUNsQkMsSUFBUyxFQUNUQyxTQUFtQjtJQUVuQiw0Q0FBNEM7SUFDNUMsSUFBSUM7SUFDSixJQUFJQyxjQUFjLE9BQU9ILFNBQVMsV0FBV0EsT0FBT0ksQ0FBQUEsR0FBQUEsV0FBQUEsb0JBQUFBLEVBQXFCSjtJQUV6RSw2REFBNkQ7SUFDN0QsbURBQW1EO0lBQ25ELDBEQUEwRDtJQUMxRCxNQUFNSyxnQkFBZ0JGLFlBQVlHLEtBQUssQ0FBQztJQUN4QyxNQUFNQyxxQkFBcUJGLGdCQUN2QkYsWUFBWUssS0FBSyxDQUFDSCxhQUFhLENBQUMsRUFBRSxDQUFDSSxNQUFNLElBQ3pDTjtJQUVKLE1BQU1PLFdBQVdILG1CQUFtQkksS0FBSyxDQUFDLEtBQUs7SUFFL0MsSUFBS0QsQ0FBQUEsUUFBUSxDQUFDLEVBQUUsSUFBSSxHQUFDLENBQUdKLEtBQUssQ0FBQyxjQUFjO1FBQzFDTSxRQUFRQyxLQUFLLENBQ1YsbUJBQWdCVixjQUFZLHVDQUFvQ0osT0FBT2UsUUFBUSxHQUFDO1FBRW5GLE1BQU1DLGdCQUFnQkMsQ0FBQUEsR0FBQUEsT0FBQUEsd0JBQUFBLEVBQXlCVDtRQUMvQ0osY0FBZUUsQ0FBQUEsZ0JBQWdCQSxhQUFhLENBQUMsRUFBRSxHQUFHLEdBQUMsR0FBS1U7SUFDMUQ7SUFFQSwyREFBMkQ7SUFDM0QsSUFBSSxDQUFDRSxDQUFBQSxHQUFBQSxZQUFBQSxVQUFBQSxFQUFXZCxjQUFjO1FBQzVCLE9BQVFGLFlBQVk7WUFBQ0U7U0FBWSxHQUFHQTtJQUN0QztJQUVBLElBQUk7UUFDRkQsT0FBTyxJQUFJZ0IsSUFDVGYsWUFBWWdCLFVBQVUsQ0FBQyxPQUFPcEIsT0FBT3FCLE1BQU0sR0FBR3JCLE9BQU9lLFFBQVEsRUFDN0Q7SUFFSixFQUFFLE9BQU9PLEdBQUc7UUFDVixrREFBa0Q7UUFDbERuQixPQUFPLElBQUlnQixJQUFJLEtBQUs7SUFDdEI7SUFFQSxJQUFJO1FBQ0YsTUFBTUksV0FBVyxJQUFJSixJQUFJZixhQUFhRDtRQUN0Q29CLFNBQVNSLFFBQVEsR0FBR1MsQ0FBQUEsR0FBQUEsd0JBQUFBLDBCQUFBQSxFQUEyQkQsU0FBU1IsUUFBUTtRQUNoRSxJQUFJVSxpQkFBaUI7UUFFckIsSUFDRUMsQ0FBQUEsR0FBQUEsUUFBQUEsY0FBQUEsRUFBZUgsU0FBU1IsUUFBUSxLQUNoQ1EsU0FBU0ksWUFBWSxJQUNyQnpCLFdBQ0E7WUFDQSxNQUFNMEIsUUFBUUMsQ0FBQUEsR0FBQUEsYUFBQUEsc0JBQXNCLEVBQUNOLFNBQVNJLFlBQVk7WUFFMUQsTUFBTSxFQUFFRyxNQUFNLEVBQUVDLE1BQU0sRUFBRSxHQUFHQyxDQUFBQSxHQUFBQSxlQUFBQSxhQUFhLEVBQ3RDVCxTQUFTUixRQUFRLEVBQ2pCUSxTQUFTUixRQUFRLEVBQ2pCYTtZQUdGLElBQUlFLFFBQVE7Z0JBQ1ZMLGlCQUFpQnBCLENBQUFBLEdBQUFBLFdBQUFBLG9CQUFvQixFQUFDO29CQUNwQ1UsVUFBVWU7b0JBQ1ZHLE1BQU1WLFNBQVNVLElBQUk7b0JBQ25CTCxPQUFPTSxDQUFBQSxHQUFBQSxNQUFBQSxJQUFBQSxFQUFLTixPQUFPRztnQkFDckI7WUFDRjtRQUNGO1FBRUEsb0VBQW9FO1FBQ3BFLE1BQU1JLGVBQ0paLFNBQVNhLE1BQU0sS0FBS2pDLEtBQUtpQyxNQUFNLEdBQzNCYixTQUFTdEIsSUFBSSxDQUFDUSxLQUFLLENBQUNjLFNBQVNhLE1BQU0sQ0FBQzFCLE1BQU0sSUFDMUNhLFNBQVN0QixJQUFJO1FBRW5CLE9BQU9DLFlBQ0g7WUFBQ2lDO1lBQWNWLGtCQUFrQlU7U0FBYSxHQUM5Q0E7SUFDTixFQUFFLE9BQU9iLEdBQUc7UUFDVixPQUFPcEIsWUFBWTtZQUFDRTtTQUFZLEdBQUdBO0lBQ3JDO0FBQ0YiLCJzb3VyY2VzIjpbIkQ6XFxzcmNcXGNsaWVudFxccmVzb2x2ZS1ocmVmLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgTmV4dFJvdXRlciwgVXJsIH0gZnJvbSAnLi4vc2hhcmVkL2xpYi9yb3V0ZXIvcm91dGVyJ1xuXG5pbXBvcnQgeyBzZWFyY2hQYXJhbXNUb1VybFF1ZXJ5IH0gZnJvbSAnLi4vc2hhcmVkL2xpYi9yb3V0ZXIvdXRpbHMvcXVlcnlzdHJpbmcnXG5pbXBvcnQgeyBmb3JtYXRXaXRoVmFsaWRhdGlvbiB9IGZyb20gJy4uL3NoYXJlZC9saWIvcm91dGVyL3V0aWxzL2Zvcm1hdC11cmwnXG5pbXBvcnQgeyBvbWl0IH0gZnJvbSAnLi4vc2hhcmVkL2xpYi9yb3V0ZXIvdXRpbHMvb21pdCdcbmltcG9ydCB7IG5vcm1hbGl6ZVJlcGVhdGVkU2xhc2hlcyB9IGZyb20gJy4uL3NoYXJlZC9saWIvdXRpbHMnXG5pbXBvcnQgeyBub3JtYWxpemVQYXRoVHJhaWxpbmdTbGFzaCB9IGZyb20gJy4vbm9ybWFsaXplLXRyYWlsaW5nLXNsYXNoJ1xuaW1wb3J0IHsgaXNMb2NhbFVSTCB9IGZyb20gJy4uL3NoYXJlZC9saWIvcm91dGVyL3V0aWxzL2lzLWxvY2FsLXVybCdcbmltcG9ydCB7IGlzRHluYW1pY1JvdXRlIH0gZnJvbSAnLi4vc2hhcmVkL2xpYi9yb3V0ZXIvdXRpbHMnXG5pbXBvcnQgeyBpbnRlcnBvbGF0ZUFzIH0gZnJvbSAnLi4vc2hhcmVkL2xpYi9yb3V0ZXIvdXRpbHMvaW50ZXJwb2xhdGUtYXMnXG5cbi8qKlxuICogUmVzb2x2ZXMgYSBnaXZlbiBoeXBlcmxpbmsgd2l0aCBhIGNlcnRhaW4gcm91dGVyIHN0YXRlIChiYXNlUGF0aCBub3QgaW5jbHVkZWQpLlxuICogUHJlc2VydmVzIGFic29sdXRlIHVybHMuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiByZXNvbHZlSHJlZihcbiAgcm91dGVyOiBOZXh0Um91dGVyLFxuICBocmVmOiBVcmwsXG4gIHJlc29sdmVBczogdHJ1ZVxuKTogW3N0cmluZywgc3RyaW5nXSB8IFtzdHJpbmddXG5leHBvcnQgZnVuY3Rpb24gcmVzb2x2ZUhyZWYoXG4gIHJvdXRlcjogTmV4dFJvdXRlcixcbiAgaHJlZjogVXJsLFxuICByZXNvbHZlQXM/OiBmYWxzZVxuKTogc3RyaW5nXG5leHBvcnQgZnVuY3Rpb24gcmVzb2x2ZUhyZWYoXG4gIHJvdXRlcjogTmV4dFJvdXRlcixcbiAgaHJlZjogVXJsLFxuICByZXNvbHZlQXM/OiBib29sZWFuXG4pOiBbc3RyaW5nLCBzdHJpbmddIHwgW3N0cmluZ10gfCBzdHJpbmcge1xuICAvLyB3ZSB1c2UgYSBkdW1teSBiYXNlIHVybCBmb3IgcmVsYXRpdmUgdXJsc1xuICBsZXQgYmFzZTogVVJMXG4gIGxldCB1cmxBc1N0cmluZyA9IHR5cGVvZiBocmVmID09PSAnc3RyaW5nJyA/IGhyZWYgOiBmb3JtYXRXaXRoVmFsaWRhdGlvbihocmVmKVxuXG4gIC8vIHJlcGVhdGVkIHNsYXNoZXMgYW5kIGJhY2tzbGFzaGVzIGluIHRoZSBVUkwgYXJlIGNvbnNpZGVyZWRcbiAgLy8gaW52YWxpZCBhbmQgd2lsbCBuZXZlciBtYXRjaCBhIE5leHQuanMgcGFnZS9maWxlXG4gIC8vIGh0dHBzOi8vd3d3LnJmYy1lZGl0b3Iub3JnL3JmYy9yZmMzOTg2Lmh0bWwjc2VjdGlvbi0zLjFcbiAgY29uc3QgdXJsUHJvdG9NYXRjaCA9IHVybEFzU3RyaW5nLm1hdGNoKC9eW2Etel1bYS16MC05Ky4tXSo6XFwvXFwvL2kpXG4gIGNvbnN0IHVybEFzU3RyaW5nTm9Qcm90byA9IHVybFByb3RvTWF0Y2hcbiAgICA/IHVybEFzU3RyaW5nLnNsaWNlKHVybFByb3RvTWF0Y2hbMF0ubGVuZ3RoKVxuICAgIDogdXJsQXNTdHJpbmdcblxuICBjb25zdCB1cmxQYXJ0cyA9IHVybEFzU3RyaW5nTm9Qcm90by5zcGxpdCgnPycsIDEpXG5cbiAgaWYgKCh1cmxQYXJ0c1swXSB8fCAnJykubWF0Y2goLyhcXC9cXC98XFxcXCkvKSkge1xuICAgIGNvbnNvbGUuZXJyb3IoXG4gICAgICBgSW52YWxpZCBocmVmICcke3VybEFzU3RyaW5nfScgcGFzc2VkIHRvIG5leHQvcm91dGVyIGluIHBhZ2U6ICcke3JvdXRlci5wYXRobmFtZX0nLiBSZXBlYXRlZCBmb3J3YXJkLXNsYXNoZXMgKC8vKSBvciBiYWNrc2xhc2hlcyBcXFxcIGFyZSBub3QgdmFsaWQgaW4gdGhlIGhyZWYuYFxuICAgIClcbiAgICBjb25zdCBub3JtYWxpemVkVXJsID0gbm9ybWFsaXplUmVwZWF0ZWRTbGFzaGVzKHVybEFzU3RyaW5nTm9Qcm90bylcbiAgICB1cmxBc1N0cmluZyA9ICh1cmxQcm90b01hdGNoID8gdXJsUHJvdG9NYXRjaFswXSA6ICcnKSArIG5vcm1hbGl6ZWRVcmxcbiAgfVxuXG4gIC8vIFJldHVybiBiZWNhdXNlIGl0IGNhbm5vdCBiZSByb3V0ZWQgYnkgdGhlIE5leHQuanMgcm91dGVyXG4gIGlmICghaXNMb2NhbFVSTCh1cmxBc1N0cmluZykpIHtcbiAgICByZXR1cm4gKHJlc29sdmVBcyA/IFt1cmxBc1N0cmluZ10gOiB1cmxBc1N0cmluZykgYXMgc3RyaW5nXG4gIH1cblxuICB0cnkge1xuICAgIGJhc2UgPSBuZXcgVVJMKFxuICAgICAgdXJsQXNTdHJpbmcuc3RhcnRzV2l0aCgnIycpID8gcm91dGVyLmFzUGF0aCA6IHJvdXRlci5wYXRobmFtZSxcbiAgICAgICdodHRwOi8vbidcbiAgICApXG4gIH0gY2F0Y2ggKF8pIHtcbiAgICAvLyBmYWxsYmFjayB0byAvIGZvciBpbnZhbGlkIGFzUGF0aCB2YWx1ZXMgZS5nLiAvL1xuICAgIGJhc2UgPSBuZXcgVVJMKCcvJywgJ2h0dHA6Ly9uJylcbiAgfVxuXG4gIHRyeSB7XG4gICAgY29uc3QgZmluYWxVcmwgPSBuZXcgVVJMKHVybEFzU3RyaW5nLCBiYXNlKVxuICAgIGZpbmFsVXJsLnBhdGhuYW1lID0gbm9ybWFsaXplUGF0aFRyYWlsaW5nU2xhc2goZmluYWxVcmwucGF0aG5hbWUpXG4gICAgbGV0IGludGVycG9sYXRlZEFzID0gJydcblxuICAgIGlmIChcbiAgICAgIGlzRHluYW1pY1JvdXRlKGZpbmFsVXJsLnBhdGhuYW1lKSAmJlxuICAgICAgZmluYWxVcmwuc2VhcmNoUGFyYW1zICYmXG4gICAgICByZXNvbHZlQXNcbiAgICApIHtcbiAgICAgIGNvbnN0IHF1ZXJ5ID0gc2VhcmNoUGFyYW1zVG9VcmxRdWVyeShmaW5hbFVybC5zZWFyY2hQYXJhbXMpXG5cbiAgICAgIGNvbnN0IHsgcmVzdWx0LCBwYXJhbXMgfSA9IGludGVycG9sYXRlQXMoXG4gICAgICAgIGZpbmFsVXJsLnBhdGhuYW1lLFxuICAgICAgICBmaW5hbFVybC5wYXRobmFtZSxcbiAgICAgICAgcXVlcnlcbiAgICAgIClcblxuICAgICAgaWYgKHJlc3VsdCkge1xuICAgICAgICBpbnRlcnBvbGF0ZWRBcyA9IGZvcm1hdFdpdGhWYWxpZGF0aW9uKHtcbiAgICAgICAgICBwYXRobmFtZTogcmVzdWx0LFxuICAgICAgICAgIGhhc2g6IGZpbmFsVXJsLmhhc2gsXG4gICAgICAgICAgcXVlcnk6IG9taXQocXVlcnksIHBhcmFtcyksXG4gICAgICAgIH0pXG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gaWYgdGhlIG9yaWdpbiBkaWRuJ3QgY2hhbmdlLCBpdCBtZWFucyB3ZSByZWNlaXZlZCBhIHJlbGF0aXZlIGhyZWZcbiAgICBjb25zdCByZXNvbHZlZEhyZWYgPVxuICAgICAgZmluYWxVcmwub3JpZ2luID09PSBiYXNlLm9yaWdpblxuICAgICAgICA/IGZpbmFsVXJsLmhyZWYuc2xpY2UoZmluYWxVcmwub3JpZ2luLmxlbmd0aClcbiAgICAgICAgOiBmaW5hbFVybC5ocmVmXG5cbiAgICByZXR1cm4gcmVzb2x2ZUFzXG4gICAgICA/IFtyZXNvbHZlZEhyZWYsIGludGVycG9sYXRlZEFzIHx8IHJlc29sdmVkSHJlZl1cbiAgICAgIDogcmVzb2x2ZWRIcmVmXG4gIH0gY2F0Y2ggKF8pIHtcbiAgICByZXR1cm4gcmVzb2x2ZUFzID8gW3VybEFzU3RyaW5nXSA6IHVybEFzU3RyaW5nXG4gIH1cbn1cbiJdLCJuYW1lcyI6WyJyZXNvbHZlSHJlZiIsInJvdXRlciIsImhyZWYiLCJyZXNvbHZlQXMiLCJiYXNlIiwidXJsQXNTdHJpbmciLCJmb3JtYXRXaXRoVmFsaWRhdGlvbiIsInVybFByb3RvTWF0Y2giLCJtYXRjaCIsInVybEFzU3RyaW5nTm9Qcm90byIsInNsaWNlIiwibGVuZ3RoIiwidXJsUGFydHMiLCJzcGxpdCIsImNvbnNvbGUiLCJlcnJvciIsInBhdGhuYW1lIiwibm9ybWFsaXplZFVybCIsIm5vcm1hbGl6ZVJlcGVhdGVkU2xhc2hlcyIsImlzTG9jYWxVUkwiLCJVUkwiLCJzdGFydHNXaXRoIiwiYXNQYXRoIiwiXyIsImZpbmFsVXJsIiwibm9ybWFsaXplUGF0aFRyYWlsaW5nU2xhc2giLCJpbnRlcnBvbGF0ZWRBcyIsImlzRHluYW1pY1JvdXRlIiwic2VhcmNoUGFyYW1zIiwicXVlcnkiLCJzZWFyY2hQYXJhbXNUb1VybFF1ZXJ5IiwicmVzdWx0IiwicGFyYW1zIiwiaW50ZXJwb2xhdGVBcyIsImhhc2giLCJvbWl0IiwicmVzb2x2ZWRIcmVmIiwib3JpZ2luIl0sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(pages-dir-browser)/./node_modules/next/dist/client/resolve-href.js\n")); - -/***/ }), - -/***/ "(pages-dir-browser)/./node_modules/next/dist/client/route-announcer.js": -/*!**********************************************************!*\ - !*** ./node_modules/next/dist/client/route-announcer.js ***! - \**********************************************************/ -/***/ ((module, exports, __webpack_require__) => { - -"use strict"; -eval(__webpack_require__.ts("\nvar _s = $RefreshSig$();\n\"use strict\";\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n RouteAnnouncer: function() {\n return RouteAnnouncer;\n },\n default: function() {\n return _default;\n }\n});\nconst _interop_require_default = __webpack_require__(/*! @swc/helpers/_/_interop_require_default */ \"(pages-dir-browser)/./node_modules/@swc/helpers/esm/_interop_require_default.js\");\nconst _jsxruntime = __webpack_require__(/*! react/jsx-runtime */ \"(pages-dir-browser)/./node_modules/react/jsx-runtime.js\");\nconst _react = /*#__PURE__*/ _interop_require_default._(__webpack_require__(/*! react */ \"(pages-dir-browser)/./node_modules/react/index.js\"));\nconst _router = __webpack_require__(/*! ./router */ \"(pages-dir-browser)/./node_modules/next/dist/client/router.js\");\nconst nextjsRouteAnnouncerStyles = {\n border: 0,\n clip: 'rect(0 0 0 0)',\n height: '1px',\n margin: '-1px',\n overflow: 'hidden',\n padding: 0,\n position: 'absolute',\n top: 0,\n width: '1px',\n // https://medium.com/@jessebeach/beware-smushed-off-screen-accessible-text-5952a4c2cbfe\n whiteSpace: 'nowrap',\n wordWrap: 'normal'\n};\nconst RouteAnnouncer = ()=>{\n _s();\n const { asPath } = (0, _router.useRouter)();\n const [routeAnnouncement, setRouteAnnouncement] = _react.default.useState('');\n // Only announce the path change, but not for the first load because screen\n // reader will do that automatically.\n const previouslyLoadedPath = _react.default.useRef(asPath);\n // Every time the path changes, announce the new page’s title following this\n // priority: first the document title (from head), otherwise the first h1, or\n // if none of these exist, then the pathname from the URL. This methodology is\n // inspired by Marcy Sutton’s accessible client routing user testing. More\n // information can be found here:\n // https://www.gatsbyjs.com/blog/2019-07-11-user-testing-accessible-client-routing/\n _react.default.useEffect({\n \"RouteAnnouncer.useEffect\": ()=>{\n // If the path hasn't change, we do nothing.\n if (previouslyLoadedPath.current === asPath) return;\n previouslyLoadedPath.current = asPath;\n if (document.title) {\n setRouteAnnouncement(document.title);\n } else {\n const pageHeader = document.querySelector('h1');\n var _pageHeader_innerText;\n const content = (_pageHeader_innerText = pageHeader == null ? void 0 : pageHeader.innerText) != null ? _pageHeader_innerText : pageHeader == null ? void 0 : pageHeader.textContent;\n setRouteAnnouncement(content || asPath);\n }\n }\n }[\"RouteAnnouncer.useEffect\"], [\n asPath\n ]);\n return /*#__PURE__*/ (0, _jsxruntime.jsx)(\"p\", {\n \"aria-live\": \"assertive\" // Make the announcement immediately.\n ,\n id: \"__next-route-announcer__\",\n role: \"alert\",\n style: nextjsRouteAnnouncerStyles,\n children: routeAnnouncement\n });\n};\n_s(RouteAnnouncer, \"/W0p/lKvDcDf5qahTtmgH0KR5eY=\");\n_c = RouteAnnouncer;\nconst _default = RouteAnnouncer;\nif ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=route-announcer.js.map\nvar _c;\n$RefreshReg$(_c, \"RouteAnnouncer\");\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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvY2xpZW50L3JvdXRlLWFubm91bmNlci5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7OztJQW1CYUEsY0FBYztlQUFkQTs7SUE2Q2IsT0FBNkI7ZUFBN0I7Ozs7OzRFQWhFa0I7b0NBQ1E7QUFFMUIsTUFBTUMsNkJBQWtEO0lBQ3REQyxRQUFRO0lBQ1JDLE1BQU07SUFDTkMsUUFBUTtJQUNSQyxRQUFRO0lBQ1JDLFVBQVU7SUFDVkMsU0FBUztJQUNUQyxVQUFVO0lBQ1ZDLEtBQUs7SUFDTEMsT0FBTztJQUVQLHdGQUF3RjtJQUN4RkMsWUFBWTtJQUNaQyxVQUFVO0FBQ1o7QUFFTyx1QkFBdUI7O0lBQzVCLE1BQU0sRUFBRUMsTUFBTSxFQUFFLEdBQUdDLENBQUFBLEdBQUFBLFFBQUFBLFNBQVM7SUFDNUIsTUFBTSxDQUFDQyxtQkFBbUJDLHFCQUFxQixHQUFHQyxPQUFBQSxPQUFLLENBQUNDLFFBQVEsQ0FBQztJQUVqRSwyRUFBMkU7SUFDM0UscUNBQXFDO0lBQ3JDLE1BQU1DLHVCQUF1QkYsT0FBQUEsT0FBSyxDQUFDRyxNQUFNLENBQUNQO0lBRTFDLDRFQUE0RTtJQUM1RSw2RUFBNkU7SUFDN0UsOEVBQThFO0lBQzlFLDBFQUEwRTtJQUMxRSxpQ0FBaUM7SUFDakMsbUZBQW1GO0lBQ25GSSxPQUFBQSxPQUFLLENBQUNJLFNBQVM7b0NBQ2I7WUFDRSw0Q0FBNEM7WUFDNUMsSUFBSUYscUJBQXFCRyxPQUFPLEtBQUtULFFBQVE7WUFDN0NNLHFCQUFxQkcsT0FBTyxHQUFHVDtZQUUvQixJQUFJVSxTQUFTQyxLQUFLLEVBQUU7Z0JBQ2xCUixxQkFBcUJPLFNBQVNDLEtBQUs7WUFDckMsT0FBTztnQkFDTCxNQUFNQyxhQUFhRixTQUFTRyxhQUFhLENBQUM7b0JBQzFCRDtnQkFBaEIsTUFBTUUsVUFBVUYsQ0FBQUEsd0JBQUFBLGNBQUFBLE9BQUFBLEtBQUFBLElBQUFBLFdBQVlHLFNBQUFBLEtBQVMsT0FBckJILHdCQUF5QkEsY0FBQUEsT0FBQUEsS0FBQUEsSUFBQUEsV0FBWUksV0FBVztnQkFFaEViLHFCQUFxQlcsV0FBV2Q7WUFDbEM7UUFDRjttQ0FFQTtRQUFDQTtLQUFPO0lBR1YscUJBQ0UscUJBQUNpQixLQUFBQTtRQUNDQyxhQUFVLFlBQVkscUNBQXFDOztRQUMzREMsSUFBRztRQUNIQyxNQUFLO1FBQ0xDLE9BQU9qQztrQkFFTmM7O0FBR1A7O0tBM0NhZjtNQTZDYixXQUFlQSIsInNvdXJjZXMiOlsiRDpcXHNyY1xcY2xpZW50XFxyb3V0ZS1hbm5vdW5jZXIudHN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCdcbmltcG9ydCB7IHVzZVJvdXRlciB9IGZyb20gJy4vcm91dGVyJ1xuXG5jb25zdCBuZXh0anNSb3V0ZUFubm91bmNlclN0eWxlczogUmVhY3QuQ1NTUHJvcGVydGllcyA9IHtcbiAgYm9yZGVyOiAwLFxuICBjbGlwOiAncmVjdCgwIDAgMCAwKScsXG4gIGhlaWdodDogJzFweCcsXG4gIG1hcmdpbjogJy0xcHgnLFxuICBvdmVyZmxvdzogJ2hpZGRlbicsXG4gIHBhZGRpbmc6IDAsXG4gIHBvc2l0aW9uOiAnYWJzb2x1dGUnLFxuICB0b3A6IDAsXG4gIHdpZHRoOiAnMXB4JyxcblxuICAvLyBodHRwczovL21lZGl1bS5jb20vQGplc3NlYmVhY2gvYmV3YXJlLXNtdXNoZWQtb2ZmLXNjcmVlbi1hY2Nlc3NpYmxlLXRleHQtNTk1MmE0YzJjYmZlXG4gIHdoaXRlU3BhY2U6ICdub3dyYXAnLFxuICB3b3JkV3JhcDogJ25vcm1hbCcsXG59XG5cbmV4cG9ydCBjb25zdCBSb3V0ZUFubm91bmNlciA9ICgpID0+IHtcbiAgY29uc3QgeyBhc1BhdGggfSA9IHVzZVJvdXRlcigpXG4gIGNvbnN0IFtyb3V0ZUFubm91bmNlbWVudCwgc2V0Um91dGVBbm5vdW5jZW1lbnRdID0gUmVhY3QudXNlU3RhdGUoJycpXG5cbiAgLy8gT25seSBhbm5vdW5jZSB0aGUgcGF0aCBjaGFuZ2UsIGJ1dCBub3QgZm9yIHRoZSBmaXJzdCBsb2FkIGJlY2F1c2Ugc2NyZWVuXG4gIC8vIHJlYWRlciB3aWxsIGRvIHRoYXQgYXV0b21hdGljYWxseS5cbiAgY29uc3QgcHJldmlvdXNseUxvYWRlZFBhdGggPSBSZWFjdC51c2VSZWYoYXNQYXRoKVxuXG4gIC8vIEV2ZXJ5IHRpbWUgdGhlIHBhdGggY2hhbmdlcywgYW5ub3VuY2UgdGhlIG5ldyBwYWdl4oCZcyB0aXRsZSBmb2xsb3dpbmcgdGhpc1xuICAvLyBwcmlvcml0eTogZmlyc3QgdGhlIGRvY3VtZW50IHRpdGxlIChmcm9tIGhlYWQpLCBvdGhlcndpc2UgdGhlIGZpcnN0IGgxLCBvclxuICAvLyBpZiBub25lIG9mIHRoZXNlIGV4aXN0LCB0aGVuIHRoZSBwYXRobmFtZSBmcm9tIHRoZSBVUkwuIFRoaXMgbWV0aG9kb2xvZ3kgaXNcbiAgLy8gaW5zcGlyZWQgYnkgTWFyY3kgU3V0dG9u4oCZcyBhY2Nlc3NpYmxlIGNsaWVudCByb3V0aW5nIHVzZXIgdGVzdGluZy4gTW9yZVxuICAvLyBpbmZvcm1hdGlvbiBjYW4gYmUgZm91bmQgaGVyZTpcbiAgLy8gaHR0cHM6Ly93d3cuZ2F0c2J5anMuY29tL2Jsb2cvMjAxOS0wNy0xMS11c2VyLXRlc3RpbmctYWNjZXNzaWJsZS1jbGllbnQtcm91dGluZy9cbiAgUmVhY3QudXNlRWZmZWN0KFxuICAgICgpID0+IHtcbiAgICAgIC8vIElmIHRoZSBwYXRoIGhhc24ndCBjaGFuZ2UsIHdlIGRvIG5vdGhpbmcuXG4gICAgICBpZiAocHJldmlvdXNseUxvYWRlZFBhdGguY3VycmVudCA9PT0gYXNQYXRoKSByZXR1cm5cbiAgICAgIHByZXZpb3VzbHlMb2FkZWRQYXRoLmN1cnJlbnQgPSBhc1BhdGhcblxuICAgICAgaWYgKGRvY3VtZW50LnRpdGxlKSB7XG4gICAgICAgIHNldFJvdXRlQW5ub3VuY2VtZW50KGRvY3VtZW50LnRpdGxlKVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgY29uc3QgcGFnZUhlYWRlciA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJ2gxJylcbiAgICAgICAgY29uc3QgY29udGVudCA9IHBhZ2VIZWFkZXI/LmlubmVyVGV4dCA/PyBwYWdlSGVhZGVyPy50ZXh0Q29udGVudFxuXG4gICAgICAgIHNldFJvdXRlQW5ub3VuY2VtZW50KGNvbnRlbnQgfHwgYXNQYXRoKVxuICAgICAgfVxuICAgIH0sXG4gICAgLy8gVE9ETzogc3dpdGNoIHRvIHBhdGhuYW1lICsgcXVlcnkgb2JqZWN0IG9mIGR5bmFtaWMgcm91dGUgcmVxdWlyZW1lbnRzXG4gICAgW2FzUGF0aF1cbiAgKVxuXG4gIHJldHVybiAoXG4gICAgPHBcbiAgICAgIGFyaWEtbGl2ZT1cImFzc2VydGl2ZVwiIC8vIE1ha2UgdGhlIGFubm91bmNlbWVudCBpbW1lZGlhdGVseS5cbiAgICAgIGlkPVwiX19uZXh0LXJvdXRlLWFubm91bmNlcl9fXCJcbiAgICAgIHJvbGU9XCJhbGVydFwiXG4gICAgICBzdHlsZT17bmV4dGpzUm91dGVBbm5vdW5jZXJTdHlsZXN9XG4gICAgPlxuICAgICAge3JvdXRlQW5ub3VuY2VtZW50fVxuICAgIDwvcD5cbiAgKVxufVxuXG5leHBvcnQgZGVmYXVsdCBSb3V0ZUFubm91bmNlclxuIl0sIm5hbWVzIjpbIlJvdXRlQW5ub3VuY2VyIiwibmV4dGpzUm91dGVBbm5vdW5jZXJTdHlsZXMiLCJib3JkZXIiLCJjbGlwIiwiaGVpZ2h0IiwibWFyZ2luIiwib3ZlcmZsb3ciLCJwYWRkaW5nIiwicG9zaXRpb24iLCJ0b3AiLCJ3aWR0aCIsIndoaXRlU3BhY2UiLCJ3b3JkV3JhcCIsImFzUGF0aCIsInVzZVJvdXRlciIsInJvdXRlQW5ub3VuY2VtZW50Iiwic2V0Um91dGVBbm5vdW5jZW1lbnQiLCJSZWFjdCIsInVzZVN0YXRlIiwicHJldmlvdXNseUxvYWRlZFBhdGgiLCJ1c2VSZWYiLCJ1c2VFZmZlY3QiLCJjdXJyZW50IiwiZG9jdW1lbnQiLCJ0aXRsZSIsInBhZ2VIZWFkZXIiLCJxdWVyeVNlbGVjdG9yIiwiY29udGVudCIsImlubmVyVGV4dCIsInRleHRDb250ZW50IiwicCIsImFyaWEtbGl2ZSIsImlkIiwicm9sZSIsInN0eWxlIl0sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(pages-dir-browser)/./node_modules/next/dist/client/route-announcer.js\n")); - -/***/ }), - -/***/ "(pages-dir-browser)/./node_modules/next/dist/client/route-loader.js": -/*!*******************************************************!*\ - !*** ./node_modules/next/dist/client/route-loader.js ***! - \*******************************************************/ -/***/ ((module, exports, __webpack_require__) => { - -"use strict"; -eval(__webpack_require__.ts("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n createRouteLoader: function() {\n return createRouteLoader;\n },\n getClientBuildManifest: function() {\n return getClientBuildManifest;\n },\n isAssetError: function() {\n return isAssetError;\n },\n markAssetError: function() {\n return markAssetError;\n }\n});\nconst _interop_require_default = __webpack_require__(/*! @swc/helpers/_/_interop_require_default */ \"(pages-dir-browser)/./node_modules/@swc/helpers/esm/_interop_require_default.js\");\nconst _getassetpathfromroute = /*#__PURE__*/ _interop_require_default._(__webpack_require__(/*! ../shared/lib/router/utils/get-asset-path-from-route */ \"(pages-dir-browser)/./node_modules/next/dist/shared/lib/router/utils/get-asset-path-from-route.js\"));\nconst _trustedtypes = __webpack_require__(/*! ./trusted-types */ \"(pages-dir-browser)/./node_modules/next/dist/client/trusted-types.js\");\nconst _requestidlecallback = __webpack_require__(/*! ./request-idle-callback */ \"(pages-dir-browser)/./node_modules/next/dist/client/request-idle-callback.js\");\nconst _deploymentid = __webpack_require__(/*! ../build/deployment-id */ \"(pages-dir-browser)/./node_modules/next/dist/build/deployment-id.js\");\nconst _encodeuripath = __webpack_require__(/*! ../shared/lib/encode-uri-path */ \"(pages-dir-browser)/./node_modules/next/dist/shared/lib/encode-uri-path.js\");\n// 3.8s was arbitrarily chosen as it's what https://web.dev/interactive\n// considers as \"Good\" time-to-interactive. We must assume something went\n// wrong beyond this point, and then fall-back to a full page transition to\n// show the user something of value.\nconst MS_MAX_IDLE_DELAY = 3800;\nfunction withFuture(key, map, generator) {\n let entry = map.get(key);\n if (entry) {\n if ('future' in entry) {\n return entry.future;\n }\n return Promise.resolve(entry);\n }\n let resolver;\n const prom = new Promise((resolve)=>{\n resolver = resolve;\n });\n map.set(key, {\n resolve: resolver,\n future: prom\n });\n return generator ? generator().then((value)=>{\n resolver(value);\n return value;\n }).catch((err)=>{\n map.delete(key);\n throw err;\n }) : prom;\n}\nconst ASSET_LOAD_ERROR = Symbol('ASSET_LOAD_ERROR');\nfunction markAssetError(err) {\n return Object.defineProperty(err, ASSET_LOAD_ERROR, {});\n}\nfunction isAssetError(err) {\n return err && ASSET_LOAD_ERROR in err;\n}\nfunction hasPrefetch(link) {\n try {\n link = document.createElement('link');\n return(// with relList.support\n !!window.MSInputMethodContext && !!document.documentMode || link.relList.supports('prefetch'));\n } catch (e) {\n return false;\n }\n}\nconst canPrefetch = hasPrefetch();\nconst getAssetQueryString = ()=>{\n return (0, _deploymentid.getDeploymentIdQueryOrEmptyString)();\n};\nfunction prefetchViaDom(href, as, link) {\n return new Promise((resolve, reject)=>{\n const selector = '\\n link[rel=\"prefetch\"][href^=\"' + href + '\"],\\n link[rel=\"preload\"][href^=\"' + href + '\"],\\n script[src^=\"' + href + '\"]';\n if (document.querySelector(selector)) {\n return resolve();\n }\n link = document.createElement('link');\n // The order of property assignment here is intentional:\n if (as) link.as = as;\n link.rel = \"prefetch\";\n link.crossOrigin = undefined;\n link.onload = resolve;\n link.onerror = ()=>reject(markAssetError(Object.defineProperty(new Error(\"Failed to prefetch: \" + href), \"__NEXT_ERROR_CODE\", {\n value: \"E268\",\n enumerable: false,\n configurable: true\n })));\n // `href` should always be last:\n link.href = href;\n document.head.appendChild(link);\n });\n}\nfunction appendScript(src, script) {\n return new Promise((resolve, reject)=>{\n script = document.createElement('script');\n // The order of property assignment here is intentional.\n // 1. Setup success/failure hooks in case the browser synchronously\n // executes when `src` is set.\n script.onload = resolve;\n script.onerror = ()=>reject(markAssetError(Object.defineProperty(new Error(\"Failed to load script: \" + src), \"__NEXT_ERROR_CODE\", {\n value: \"E74\",\n enumerable: false,\n configurable: true\n })));\n // 2. Configure the cross-origin attribute before setting `src` in case the\n // browser begins to fetch.\n script.crossOrigin = undefined;\n // 3. Finally, set the source and inject into the DOM in case the child\n // must be appended for fetching to start.\n script.src = src;\n document.body.appendChild(script);\n });\n}\n// We wait for pages to be built in dev before we start the route transition\n// timeout to prevent an un-necessary hard navigation in development.\nlet devBuildPromise;\n// Resolve a promise that times out after given amount of milliseconds.\nfunction resolvePromiseWithTimeout(p, ms, err) {\n return new Promise((resolve, reject)=>{\n let cancelled = false;\n p.then((r)=>{\n // Resolved, cancel the timeout\n cancelled = true;\n resolve(r);\n }).catch(reject);\n // We wrap these checks separately for better dead-code elimination in\n // production bundles.\n if (true) {\n ;\n (devBuildPromise || Promise.resolve()).then(()=>{\n (0, _requestidlecallback.requestIdleCallback)(()=>setTimeout(()=>{\n if (!cancelled) {\n reject(err);\n }\n }, ms));\n });\n }\n if (false) {}\n });\n}\nfunction getClientBuildManifest() {\n if (self.__BUILD_MANIFEST) {\n return Promise.resolve(self.__BUILD_MANIFEST);\n }\n const onBuildManifest = new Promise((resolve)=>{\n // Mandatory because this is not concurrent safe:\n const cb = self.__BUILD_MANIFEST_CB;\n self.__BUILD_MANIFEST_CB = ()=>{\n resolve(self.__BUILD_MANIFEST);\n cb && cb();\n };\n });\n return resolvePromiseWithTimeout(onBuildManifest, MS_MAX_IDLE_DELAY, markAssetError(Object.defineProperty(new Error('Failed to load client build manifest'), \"__NEXT_ERROR_CODE\", {\n value: \"E273\",\n enumerable: false,\n configurable: true\n })));\n}\nfunction getFilesForRoute(assetPrefix, route) {\n if (true) {\n const scriptUrl = assetPrefix + '/_next/static/chunks/pages' + (0, _encodeuripath.encodeURIPath)((0, _getassetpathfromroute.default)(route, '.js')) + getAssetQueryString();\n return Promise.resolve({\n scripts: [\n (0, _trustedtypes.__unsafeCreateTrustedScriptURL)(scriptUrl)\n ],\n // Styles are handled by `style-loader` in development:\n css: []\n });\n }\n return getClientBuildManifest().then((manifest)=>{\n if (!(route in manifest)) {\n throw markAssetError(Object.defineProperty(new Error(\"Failed to lookup route: \" + route), \"__NEXT_ERROR_CODE\", {\n value: \"E446\",\n enumerable: false,\n configurable: true\n }));\n }\n const allFiles = manifest[route].map((entry)=>assetPrefix + '/_next/' + (0, _encodeuripath.encodeURIPath)(entry));\n return {\n scripts: allFiles.filter((v)=>v.endsWith('.js')).map((v)=>(0, _trustedtypes.__unsafeCreateTrustedScriptURL)(v) + getAssetQueryString()),\n css: allFiles.filter((v)=>v.endsWith('.css')).map((v)=>v + getAssetQueryString())\n };\n });\n}\nfunction createRouteLoader(assetPrefix) {\n const entrypoints = new Map();\n const loadedScripts = new Map();\n const styleSheets = new Map();\n const routes = new Map();\n function maybeExecuteScript(src) {\n // With HMR we might need to \"reload\" scripts when they are\n // disposed and readded. Executing scripts twice has no functional\n // differences\n if (false) {} else {\n return appendScript(src);\n }\n }\n function fetchStyleSheet(href) {\n let prom = styleSheets.get(href);\n if (prom) {\n return prom;\n }\n styleSheets.set(href, prom = fetch(href, {\n credentials: 'same-origin'\n }).then((res)=>{\n if (!res.ok) {\n throw Object.defineProperty(new Error(\"Failed to load stylesheet: \" + href), \"__NEXT_ERROR_CODE\", {\n value: \"E189\",\n enumerable: false,\n configurable: true\n });\n }\n return res.text().then((text)=>({\n href: href,\n content: text\n }));\n }).catch((err)=>{\n throw markAssetError(err);\n }));\n return prom;\n }\n return {\n whenEntrypoint (route) {\n return withFuture(route, entrypoints);\n },\n onEntrypoint (route, execute) {\n ;\n (execute ? Promise.resolve().then(()=>execute()).then((exports1)=>({\n component: exports1 && exports1.default || exports1,\n exports: exports1\n }), (err)=>({\n error: err\n })) : Promise.resolve(undefined)).then((input)=>{\n const old = entrypoints.get(route);\n if (old && 'resolve' in old) {\n if (input) {\n entrypoints.set(route, input);\n old.resolve(input);\n }\n } else {\n if (input) {\n entrypoints.set(route, input);\n } else {\n entrypoints.delete(route);\n }\n // when this entrypoint has been resolved before\n // the route is outdated and we want to invalidate\n // this cache entry\n routes.delete(route);\n }\n });\n },\n loadRoute (route, prefetch) {\n return withFuture(route, routes, ()=>{\n let devBuildPromiseResolve;\n if (true) {\n devBuildPromise = new Promise((resolve)=>{\n devBuildPromiseResolve = resolve;\n });\n }\n return resolvePromiseWithTimeout(getFilesForRoute(assetPrefix, route).then((param)=>{\n let { scripts, css } = param;\n return Promise.all([\n entrypoints.has(route) ? [] : Promise.all(scripts.map(maybeExecuteScript)),\n Promise.all(css.map(fetchStyleSheet))\n ]);\n }).then((res)=>{\n return this.whenEntrypoint(route).then((entrypoint)=>({\n entrypoint,\n styles: res[1]\n }));\n }), MS_MAX_IDLE_DELAY, markAssetError(Object.defineProperty(new Error(\"Route did not complete loading: \" + route), \"__NEXT_ERROR_CODE\", {\n value: \"E12\",\n enumerable: false,\n configurable: true\n }))).then((param)=>{\n let { entrypoint, styles } = param;\n const res = Object.assign({\n styles: styles\n }, entrypoint);\n return 'error' in entrypoint ? entrypoint : res;\n }).catch((err)=>{\n if (prefetch) {\n // we don't want to cache errors during prefetch\n throw err;\n }\n return {\n error: err\n };\n }).finally(()=>devBuildPromiseResolve == null ? void 0 : devBuildPromiseResolve());\n });\n },\n prefetch (route) {\n // https://github.com/GoogleChromeLabs/quicklink/blob/453a661fa1fa940e2d2e044452398e38c67a98fb/src/index.mjs#L115-L118\n // License: Apache 2.0\n let cn;\n if (cn = navigator.connection) {\n // Don't prefetch if using 2G or if Save-Data is enabled.\n if (cn.saveData || /2g/.test(cn.effectiveType)) return Promise.resolve();\n }\n return getFilesForRoute(assetPrefix, route).then((output)=>Promise.all(canPrefetch ? output.scripts.map((script)=>prefetchViaDom(script.toString(), 'script')) : [])).then(()=>{\n (0, _requestidlecallback.requestIdleCallback)(()=>this.loadRoute(route, true).catch(()=>{}));\n }).catch(()=>{});\n }\n };\n}\nif ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=route-loader.js.map\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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvY2xpZW50L3JvdXRlLWxvYWRlci5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7SUFpU2dCQSxpQkFBaUI7ZUFBakJBOztJQTNEQUMsc0JBQXNCO2VBQXRCQTs7SUFuSUFDLFlBQVk7ZUFBWkE7O0lBSkFDLGNBQWM7ZUFBZEE7Ozs7NEZBN0ZrQjswQ0FDYTtpREFDWDswQ0FDYzsyQ0FDcEI7QUFFOUIsdUVBQXVFO0FBQ3ZFLHlFQUF5RTtBQUN6RSwyRUFBMkU7QUFDM0Usb0NBQW9DO0FBQ3BDLE1BQU1DLG9CQUFvQjtBQTRDMUIsU0FBU0MsV0FDUEMsR0FBVyxFQUNYQyxHQUErQixFQUMvQkMsU0FBNEI7SUFFNUIsSUFBSUMsUUFBUUYsSUFBSUcsR0FBRyxDQUFDSjtJQUNwQixJQUFJRyxPQUFPO1FBQ1QsSUFBSSxZQUFZQSxPQUFPO1lBQ3JCLE9BQU9BLE1BQU1FLE1BQU07UUFDckI7UUFDQSxPQUFPQyxRQUFRQyxPQUFPLENBQUNKO0lBQ3pCO0lBQ0EsSUFBSUs7SUFDSixNQUFNQyxPQUFtQixJQUFJSCxRQUFXLENBQUNDO1FBQ3ZDQyxXQUFXRDtJQUNiO0lBQ0FOLElBQUlTLEdBQUcsQ0FBQ1YsS0FBSztRQUFFTyxTQUFTQztRQUFXSCxRQUFRSTtJQUFLO0lBQ2hELE9BQU9QLFlBQ0hBLFlBQ0dTLElBQUksQ0FBQyxDQUFDQztRQUNMSixTQUFTSTtRQUNULE9BQU9BO0lBQ1QsR0FDQ0MsS0FBSyxDQUFDLENBQUNDO1FBQ05iLElBQUljLE1BQU0sQ0FBQ2Y7UUFDWCxNQUFNYztJQUNSLEtBQ0ZMO0FBQ047QUFTQSxNQUFNTyxtQkFBbUJDLE9BQU87QUFFekIsU0FBU3BCLGVBQWVpQixHQUFVO0lBQ3ZDLE9BQU9JLE9BQU9DLGNBQWMsQ0FBQ0wsS0FBS0Usa0JBQWtCLENBQUM7QUFDdkQ7QUFFTyxTQUFTcEIsYUFBYWtCLEdBQVc7SUFDdEMsT0FBT0EsT0FBT0Usb0JBQW9CRjtB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QVEsSUFBSSxLQUFLQyxJQUFJLENBQUNKLEdBQUdLLGFBQWEsR0FBRyxPQUFPaEgsUUFBUUMsT0FBTztZQUN4RTtZQUNBLE9BQU8yRCxpQkFBaUJDLGFBQWFDLE9BQ2xDekQsSUFBSSxDQUFDLENBQUM0RyxTQUNMakgsUUFBUXFHLEdBQUcsQ0FDVDlFLGNBQ0kwRixPQUFPL0MsT0FBTyxDQUFDdkUsR0FBRyxDQUFDLENBQUNpRCxTQUNsQmxCLGVBQWVrQixPQUFPb0MsUUFBUSxJQUFJLGFBRXBDLEVBQUUsR0FHVDNFLElBQUksQ0FBQztnQkFDSmdELENBQUFBLEdBQUFBLHFCQUFBQSxtQkFBQUEsRUFBb0IsSUFBTSxJQUFJLENBQUM2QyxTQUFTLENBQUNwQyxPQUFPLE1BQU12RCxLQUFLLENBQUMsS0FBTztZQUNyRSxHQUNDQSxLQUFLLENBQ0osS0FDTztRQUViO0lBQ0Y7QUFDRiIsInNvdXJjZXMiOlsiRDpcXHNyY1xcY2xpZW50XFxyb3V0ZS1sb2FkZXIudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBDb21wb25lbnRUeXBlIH0gZnJvbSAncmVhY3QnXG5pbXBvcnQgdHlwZSB7IE1pZGRsZXdhcmVNYXRjaGVyIH0gZnJvbSAnLi4vYnVpbGQvYW5hbHlzaXMvZ2V0LXBhZ2Utc3RhdGljLWluZm8nXG5pbXBvcnQgZ2V0QXNzZXRQYXRoRnJvbVJvdXRlIGZyb20gJy4uL3NoYXJlZC9saWIvcm91dGVyL3V0aWxzL2dldC1hc3NldC1wYXRoLWZyb20tcm91dGUnXG5pbXBvcnQgeyBfX3Vuc2FmZUNyZWF0ZVRydXN0ZWRTY3JpcHRVUkwgfSBmcm9tICcuL3RydXN0ZWQtdHlwZXMnXG5pbXBvcnQgeyByZXF1ZXN0SWRsZUNhbGxiYWNrIH0gZnJvbSAnLi9yZXF1ZXN0LWlkbGUtY2FsbGJhY2snXG5pbXBvcnQgeyBnZXREZXBsb3ltZW50SWRRdWVyeU9yRW1wdHlTdHJpbmcgfSBmcm9tICcuLi9idWlsZC9kZXBsb3ltZW50LWlkJ1xuaW1wb3J0IHsgZW5jb2RlVVJJUGF0aCB9IGZyb20gJy4uL3NoYXJlZC9saWIvZW5jb2RlLXVyaS1wYXRoJ1xuXG4vLyAzLjhzIHdhcyBhcmJpdHJhcmlseSBjaG9zZW4gYXMgaXQncyB3aGF0IGh0dHBzOi8vd2ViLmRldi9pbnRlcmFjdGl2ZVxuLy8gY29uc2lkZXJzIGFzIFwiR29vZFwiIHRpbWUtdG8taW50ZXJhY3RpdmUuIFdlIG11c3QgYXNzdW1lIHNvbWV0aGluZyB3ZW50XG4vLyB3cm9uZyBiZXlvbmQgdGhpcyBwb2ludCwgYW5kIHRoZW4gZmFsbC1iYWNrIHRvIGEgZnVsbCBwYWdlIHRyYW5zaXRpb24gdG9cbi8vIHNob3cgdGhlIHVzZXIgc29tZXRoaW5nIG9mIHZhbHVlLlxuY29uc3QgTVNfTUFYX0lETEVfREVMQVkgPSAzODAwXG5cbmRlY2xhcmUgZ2xvYmFsIHtcbiAgaW50ZXJmYWNlIFdpbmRvdyB7XG4gICAgX19CVUlMRF9NQU5JRkVTVD86IFJlY29yZDxzdHJpbmcsIHN0cmluZ1tdPlxuICAgIF9fQlVJTERfTUFOSUZFU1RfQ0I/OiBGdW5jdGlvblxuICAgIF9fTUlERExFV0FSRV9NQVRDSEVSUz86IE1pZGRsZXdhcmVNYXRjaGVyW11cbiAgICBfX01JRERMRVdBUkVfTUFOSUZFU1RfQ0I/OiBGdW5jdGlvblxuICAgIF9fUkVBQ1RfTE9BREFCTEVfTUFOSUZFU1Q/OiBhbnlcbiAgICBfX0RZTkFNSUNfQ1NTX01BTklGRVNUPzogYW55XG4gICAgX19SU0NfTUFOSUZFU1Q/OiBhbnlcbiAgICBfX1JTQ19TRVJWRVJfTUFOSUZFU1Q/OiBhbnlcbiAgICBfX05FWFRfRk9OVF9NQU5JRkVTVD86IGFueVxuICAgIF9fU1VCUkVTT1VSQ0VfSU5URUdSSVRZX01BTklGRVNUPzogc3RyaW5nXG4gICAgX19JTlRFUkNFUFRJT05fUk9VVEVfUkVXUklURV9NQU5JRkVTVD86IHN0cmluZ1xuICB9XG59XG5cbmludGVyZmFjZSBMb2FkZWRFbnRyeXBvaW50U3VjY2VzcyB7XG4gIGNvbXBvbmVudDogQ29tcG9uZW50VHlwZVxuICBleHBvcnRzOiBhbnlcbn1cbmludGVyZmFjZSBMb2FkZWRFbnRyeXBvaW50RmFpbHVyZSB7XG4gIGVycm9yOiB1bmtub3duXG59XG50eXBlIFJvdXRlRW50cnlwb2ludCA9IExvYWRlZEVudHJ5cG9pbnRTdWNjZXNzIHwgTG9hZGVkRW50cnlwb2ludEZhaWx1cmVcblxuaW50ZXJmYWNlIFJvdXRlU3R5bGVTaGVldCB7XG4gIGhyZWY6IHN0cmluZ1xuICBjb250ZW50OiBzdHJpbmdcbn1cblxuaW50ZXJmYWNlIExvYWRlZFJvdXRlU3VjY2VzcyBleHRlbmRzIExvYWRlZEVudHJ5cG9pbnRTdWNjZXNzIHtcbiAgc3R5bGVzOiBSb3V0ZVN0eWxlU2hlZXRbXVxufVxuaW50ZXJmYWNlIExvYWRlZFJvdXRlRmFpbHVyZSB7XG4gIGVycm9yOiB1bmtub3duXG59XG50eXBlIFJvdXRlTG9hZGVyRW50cnkgPSBMb2FkZWRSb3V0ZVN1Y2Nlc3MgfCBMb2FkZWRSb3V0ZUZhaWx1cmVcblxuaW50ZXJmYWNlIEZ1dHVyZTxWPiB7XG4gIHJlc29sdmU6IChlbnRyeXBvaW50OiBWKSA9PiB2b2lkXG4gIGZ1dHVyZTogUHJvbWlzZTxWPlxufVxuZnVuY3Rpb24gd2l0aEZ1dHVyZTxUIGV4dGVuZHMgb2JqZWN0PihcbiAga2V5OiBzdHJpbmcsXG4gIG1hcDogTWFwPHN0cmluZywgRnV0dXJlPFQ+IHwgVD4sXG4gIGdlbmVyYXRvcj86ICgpID0+IFByb21pc2U8VD5cbik6IFByb21pc2U8VD4ge1xuICBsZXQgZW50cnkgPSBtYXAuZ2V0KGtleSlcbiAgaWYgKGVudHJ5KSB7XG4gICAgaWYgKCdmdXR1cmUnIGluIGVudHJ5KSB7XG4gICAgICByZXR1cm4gZW50cnkuZnV0dXJlXG4gICAgfVxuICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUoZW50cnkpXG4gIH1cbiAgbGV0IHJlc29sdmVyOiAoZW50cnlwb2ludDogVCkgPT4gdm9pZFxuICBjb25zdCBwcm9tOiBQcm9taXNlPFQ+ID0gbmV3IFByb21pc2U8VD4oKHJlc29sdmUpID0+IHtcbiAgICByZXNvbHZlciA9IHJlc29sdmVcbiAgfSlcbiAgbWFwLnNldChrZXksIHsgcmVzb2x2ZTogcmVzb2x2ZXIhLCBmdXR1cmU6IHByb20gfSlcbiAgcmV0dXJuIGdlbmVyYXRvclxuICAgID8gZ2VuZXJhdG9yKClcbiAgICAgICAgLnRoZW4oKHZhbHVlKSA9PiB7XG4gICAgICAgICAgcmVzb2x2ZXIodmFsdWUpXG4gICAgICAgICAgcmV0dXJuIHZhbHVlXG4gICAgICAgIH0pXG4gICAgICAgIC5jYXRjaCgoZXJyKSA9PiB7XG4gICAgICAgICAgbWFwLmRlbGV0ZShrZXkpXG4gICAgICAgICAgdGhyb3cgZXJyXG4gICAgICAgIH0pXG4gICAgOiBwcm9tXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUm91dGVMb2FkZXIge1xuICB3aGVuRW50cnlwb2ludChyb3V0ZTogc3RyaW5nKTogUHJvbWlzZTxSb3V0ZUVudHJ5cG9pbnQ+XG4gIG9uRW50cnlwb2ludChyb3V0ZTogc3RyaW5nLCBleGVjdXRlOiAoKSA9PiB1bmtub3duKTogdm9pZFxuICBsb2FkUm91dGUocm91dGU6IHN0cmluZywgcHJlZmV0Y2g/OiBib29sZWFuKTogUHJvbWlzZTxSb3V0ZUxvYWRlckVudHJ5PlxuICBwcmVmZXRjaChyb3V0ZTogc3RyaW5nKTogUHJvbWlzZTx2b2lkPlxufVxuXG5jb25zdCBBU1NFVF9MT0FEX0VSUk9SID0gU3ltYm9sKCdBU1NFVF9MT0FEX0VSUk9SJylcbi8vIFRPRE86IHVuZXhwb3J0XG5leHBvcnQgZnVuY3Rpb24gbWFya0Fzc2V0RXJyb3IoZXJyOiBFcnJvcik6IEVycm9yIHtcbiAgcmV0dXJuIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlcnIsIEFTU0VUX0xPQURfRVJST1IsIHt9KVxufVxuXG5leHBvcnQgZnVuY3Rpb24gaXNBc3NldEVycm9yKGVycj86IEVycm9yKTogYm9vbGVhbiB8IHVuZGVmaW5lZCB7XG4gIHJldHVybiBlcnIgJiYgQVNTRVRfTE9BRF9FUlJPUiBpbiBlcnJcbn1cblxuZnVuY3Rpb24gaGFzUHJlZmV0Y2gobGluaz86IEhUTUxMaW5rRWxlbWVudCk6IGJvb2xlYW4ge1xuICB0cnkge1xuICAgIGxpbmsgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdsaW5rJylcbiAgICByZXR1cm4gKFxuICAgICAgLy8gZGV0ZWN0IElFMTEgc2luY2UgaXQgc3VwcG9ydHMgcHJlZmV0Y2ggYnV0IGlzbid0IGRldGVjdGVkXG4gICAgICAvLyB3aXRoIHJlbExpc3Quc3VwcG9ydFxuICAgICAgKCEhd2luZG93Lk1TSW5wdXRNZXRob2RDb250ZXh0ICYmICEhKGRvY3VtZW50IGFzIGFueSkuZG9jdW1lbnRNb2RlKSB8fFxuICAgICAgbGluay5yZWxMaXN0LnN1cHBvcnRzKCdwcmVmZXRjaCcpXG4gICAgKVxuICB9IGNhdGNoIHtcbiAgICByZXR1cm4gZmFsc2VcbiAgfVxufVxuXG5jb25zdCBjYW5QcmVmZXRjaDogYm9vbGVhbiA9IGhhc1ByZWZldGNoKClcblxuY29uc3QgZ2V0QXNzZXRRdWVyeVN0cmluZyA9ICgpID0+IHtcbiAgcmV0dXJuIGdldERlcGxveW1lbnRJZFF1ZXJ5T3JFbXB0eVN0cmluZygpXG59XG5cbmZ1bmN0aW9uIHByZWZldGNoVmlhRG9tKFxuICBocmVmOiBzdHJpbmcsXG4gIGFzOiBzdHJpbmcsXG4gIGxpbms/OiBIVE1MTGlua0VsZW1lbnRcbik6IFByb21pc2U8YW55PiB7XG4gIHJldHVybiBuZXcgUHJvbWlzZTx2b2lkPigocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgY29uc3Qgc2VsZWN0b3IgPSBgXG4gICAgICBsaW5rW3JlbD1cInByZWZldGNoXCJdW2hyZWZePVwiJHtocmVmfVwiXSxcbiAgICAgIGxpbmtbcmVsPVwicHJlbG9hZFwiXVtocmVmXj1cIiR7aHJlZn1cIl0sXG4gICAgICBzY3JpcHRbc3JjXj1cIiR7aHJlZn1cIl1gXG4gICAgaWYgKGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3Ioc2VsZWN0b3IpKSB7XG4gICAgICByZXR1cm4gcmVzb2x2ZSgpXG4gICAgfVxuXG4gICAgbGluayA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2xpbmsnKVxuXG4gICAgLy8gVGhlIG9yZGVyIG9mIHByb3BlcnR5IGFzc2lnbm1lbnQgaGVyZSBpcyBpbnRlbnRpb25hbDpcbiAgICBpZiAoYXMpIGxpbmshLmFzID0gYXNcbiAgICBsaW5rIS5yZWwgPSBgcHJlZmV0Y2hgXG4gICAgbGluayEuY3Jvc3NPcmlnaW4gPSBwcm9jZXNzLmVudi5fX05FWFRfQ1JPU1NfT1JJR0lOIVxuICAgIGxpbmshLm9ubG9hZCA9IHJlc29sdmUgYXMgYW55XG4gICAgbGluayEub25lcnJvciA9ICgpID0+XG4gICAgICByZWplY3QobWFya0Fzc2V0RXJyb3IobmV3IEVycm9yKGBGYWlsZWQgdG8gcHJlZmV0Y2g6ICR7aHJlZn1gKSkpXG5cbiAgICAvLyBgaHJlZmAgc2hvdWxkIGFsd2F5cyBiZSBsYXN0OlxuICAgIGxpbmshLmhyZWYgPSBocmVmXG5cbiAgICBkb2N1bWVudC5oZWFkLmFwcGVuZENoaWxkKGxpbmspXG4gIH0pXG59XG5cbmZ1bmN0aW9uIGFwcGVuZFNjcmlwdChcbiAgc3JjOiBUcnVzdGVkU2NyaXB0VVJMIHwgc3RyaW5nLFxuICBzY3JpcHQ/OiBIVE1MU2NyaXB0RWxlbWVudFxuKTogUHJvbWlzZTx1bmtub3duPiB7XG4gIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgc2NyaXB0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc2NyaXB0JylcblxuICAgIC8vIFRoZSBvcmRlciBvZiBwcm9wZXJ0eSBhc3NpZ25tZW50IGhlcmUgaXMgaW50ZW50aW9uYWwuXG4gICAgLy8gMS4gU2V0dXAgc3VjY2Vzcy9mYWlsdXJlIGhvb2tzIGluIGNhc2UgdGhlIGJyb3dzZXIgc3luY2hyb25vdXNseVxuICAgIC8vICAgIGV4ZWN1dGVzIHdoZW4gYHNyY2AgaXMgc2V0LlxuICAgIHNjcmlwdC5vbmxvYWQgPSByZXNvbHZlXG4gICAgc2NyaXB0Lm9uZXJyb3IgPSAoKSA9PlxuICAgICAgcmVqZWN0KG1hcmtBc3NldEVycm9yKG5ldyBFcnJvcihgRmFpbGVkIHRvIGxvYWQgc2NyaXB0OiAke3NyY31gKSkpXG5cbiAgICAvLyAyLiBDb25maWd1cmUgdGhlIGNyb3NzLW9yaWdpbiBhdHRyaWJ1dGUgYmVmb3JlIHNldHRpbmcgYHNyY2AgaW4gY2FzZSB0aGVcbiAgICAvLyAgICBicm93c2VyIGJlZ2lucyB0byBmZXRjaC5cbiAgICBzY3JpcHQuY3Jvc3NPcmlnaW4gPSBwcm9jZXNzLmVudi5fX05FWFRfQ1JPU1NfT1JJR0lOIVxuXG4gICAgLy8gMy4gRmluYWxseSwgc2V0IHRoZSBzb3VyY2UgYW5kIGluamVjdCBpbnRvIHRoZSBET00gaW4gY2FzZSB0aGUgY2hpbGRcbiAgICAvLyAgICBtdXN0IGJlIGFwcGVuZGVkIGZvciBmZXRjaGluZyB0byBzdGFydC5cbiAgICBzY3JpcHQuc3JjID0gc3JjIGFzIHN0cmluZ1xuICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoc2NyaXB0KVxuICB9KVxufVxuXG4vLyBXZSB3YWl0IGZvciBwYWdlcyB0byBiZSBidWlsdCBpbiBkZXYgYmVmb3JlIHdlIHN0YXJ0IHRoZSByb3V0ZSB0cmFuc2l0aW9uXG4vLyB0aW1lb3V0IHRvIHByZXZlbnQgYW4gdW4tbmVjZXNzYXJ5IGhhcmQgbmF2aWdhdGlvbiBpbiBkZXZlbG9wbWVudC5cbmxldCBkZXZCdWlsZFByb21pc2U6IFByb21pc2U8dm9pZD4gfCB1bmRlZmluZWRcblxuLy8gUmVzb2x2ZSBhIHByb21pc2UgdGhhdCB0aW1lcyBvdXQgYWZ0ZXIgZ2l2ZW4gYW1vdW50IG9mIG1pbGxpc2Vjb25kcy5cbmZ1bmN0aW9uIHJlc29sdmVQcm9taXNlV2l0aFRpbWVvdXQ8VD4oXG4gIHA6IFByb21pc2U8VD4sXG4gIG1zOiBudW1iZXIsXG4gIGVycjogRXJyb3Jcbik6IFByb21pc2U8VD4ge1xuICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgIGxldCBjYW5jZWxsZWQgPSBmYWxzZVxuXG4gICAgcC50aGVuKChyKSA9PiB7XG4gICAgICAvLyBSZXNvbHZlZCwgY2FuY2VsIHRoZSB0aW1lb3V0XG4gICAgICBjYW5jZWxsZWQgPSB0cnVlXG4gICAgICByZXNvbHZlKHIpXG4gICAgfSkuY2F0Y2gocmVqZWN0KVxuXG4gICAgLy8gV2Ugd3JhcCB0aGVzZSBjaGVja3Mgc2VwYXJhdGVseSBmb3IgYmV0dGVyIGRlYWQtY29kZSBlbGltaW5hdGlvbiBpblxuICAgIC8vIHByb2R1Y3Rpb24gYnVuZGxlcy5cbiAgICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgPT09ICdkZXZlbG9wbWVudCcpIHtcbiAgICAgIDsoZGV2QnVpbGRQcm9taXNlIHx8IFByb21pc2UucmVzb2x2ZSgpKS50aGVuKCgpID0+IHtcbiAgICAgICAgcmVxdWVzdElkbGVDYWxsYmFjaygoKSA9PlxuICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgaWYgKCFjYW5jZWxsZWQpIHtcbiAgICAgICAgICAgICAgcmVqZWN0KGVycilcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LCBtcylcbiAgICAgICAgKVxuICAgICAgfSlcbiAgICB9XG5cbiAgICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdkZXZlbG9wbWVudCcpIHtcbiAgICAgIHJlcXVlc3RJZGxlQ2FsbGJhY2soKCkgPT5cbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgaWYgKCFjYW5jZWxsZWQpIHtcbiAgICAgICAgICAgIHJlamVjdChlcnIpXG4gICAgICAgICAgfVxuICAgICAgICB9LCBtcylcbiAgICAgIClcbiAgICB9XG4gIH0pXG59XG5cbi8vIFRPRE86IHN0b3AgZXhwb3J0aW5nIG9yIGNhY2hlIHRoZSBmYWlsdXJlXG4vLyBJdCdkIGJlIGJlc3QgdG8gc3RvcCBleHBvcnRpbmcgdGhpcy4gSXQncyBhbiBpbXBsZW1lbnRhdGlvbiBkZXRhaWwuIFdlJ3JlXG4vLyBvbmx5IGV4cG9ydGluZyBpdCBmb3IgYmFja3dhcmRzIGNvbXBhdGliaWxpdHkgd2l0aCB0aGUgYHBhZ2UtbG9hZGVyYC5cbi8vIE9ubHkgY2FjaGUgdGhpcyByZXNwb25zZSBhcyBhIGxhc3QgcmVzb3J0IGlmIHdlIGNhbm5vdCBlbGltaW5hdGUgYWxsIG90aGVyXG4vLyBjb2RlIGJyYW5jaGVzIHRoYXQgdXNlIHRoZSBCdWlsZCBNYW5pZmVzdCBDYWxsYmFjayBhbmQgcHVzaCB0aGVtIHRocm91Z2hcbi8vIHRoZSBSb3V0ZSBMb2FkZXIgaW50ZXJmYWNlLlxuZXhwb3J0IGZ1bmN0aW9uIGdldENsaWVudEJ1aWxkTWFuaWZlc3QoKSB7XG4gIGlmIChzZWxmLl9fQlVJTERfTUFOSUZFU1QpIHtcbiAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKHNlbGYuX19CVUlMRF9NQU5JRkVTVClcbiAgfVxuXG4gIGNvbnN0IG9uQnVpbGRNYW5pZmVzdCA9IG5ldyBQcm9taXNlPFJlY29yZDxzdHJpbmcsIHN0cmluZ1tdPj4oKHJlc29sdmUpID0+IHtcbiAgICAvLyBNYW5kYXRvcnkgYmVjYXVzZSB0aGlzIGlzIG5vdCBjb25jdXJyZW50IHNhZmU6XG4gICAgY29uc3QgY2IgPSBzZWxmLl9fQlVJTERfTUFOSUZFU1RfQ0JcbiAgICBzZWxmLl9fQlVJTERfTUFOSUZFU1RfQ0IgPSAoKSA9PiB7XG4gICAgICByZXNvbHZlKHNlbGYuX19CVUlMRF9NQU5JRkVTVCEpXG4gICAgICBjYiAmJiBjYigpXG4gICAgfVxuICB9KVxuXG4gIHJldHVybiByZXNvbHZlUHJvbWlzZVdpdGhUaW1lb3V0KFxuICAgIG9uQnVpbGRNYW5pZmVzdCxcbiAgICBNU19NQVhfSURMRV9ERUxBWSxcbiAgICBtYXJrQXNzZXRFcnJvcihuZXcgRXJyb3IoJ0ZhaWxlZCB0byBsb2FkIGNsaWVudCBidWlsZCBtYW5pZmVzdCcpKVxuICApXG59XG5cbmludGVyZmFjZSBSb3V0ZUZpbGVzIHtcbiAgc2NyaXB0czogKFRydXN0ZWRTY3JpcHRVUkwgfCBzdHJpbmcpW11cbiAgY3NzOiBzdHJpbmdbXVxufVxuZnVuY3Rpb24gZ2V0RmlsZXNGb3JSb3V0ZShcbiAgYXNzZXRQcmVmaXg6IHN0cmluZyxcbiAgcm91dGU6IHN0cmluZ1xuKTogUHJvbWlzZTxSb3V0ZUZpbGVzPiB7XG4gIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViA9PT0gJ2RldmVsb3BtZW50Jykge1xuICAgIGNvbnN0IHNjcmlwdFVybCA9XG4gICAgICBhc3NldFByZWZpeCArXG4gICAgICAnL19uZXh0L3N0YXRpYy9jaHVua3MvcGFnZXMnICtcbiAgICAgIGVuY29kZVVSSVBhdGgoZ2V0QXNzZXRQYXRoRnJvbVJvdXRlKHJvdXRlLCAnLmpzJykpICtcbiAgICAgIGdldEFzc2V0UXVlcnlTdHJpbmcoKVxuICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUoe1xuICAgICAgc2NyaXB0czogW19fdW5zYWZlQ3JlYXRlVHJ1c3RlZFNjcmlwdFVSTChzY3JpcHRVcmwpXSxcbiAgICAgIC8vIFN0eWxlcyBhcmUgaGFuZGxlZCBieSBgc3R5bGUtbG9hZGVyYCBpbiBkZXZlbG9wbWVudDpcbiAgICAgIGNzczogW10sXG4gICAgfSlcbiAgfVxuICByZXR1cm4gZ2V0Q2xpZW50QnVpbGRNYW5pZmVzdCgpLnRoZW4oKG1hbmlmZXN0KSA9PiB7XG4gICAgaWYgKCEocm91dGUgaW4gbWFuaWZlc3QpKSB7XG4gICAgICB0aHJvdyBtYXJrQXNzZXRFcnJvcihuZXcgRXJyb3IoYEZhaWxlZCB0byBsb29rdXAgcm91dGU6ICR7cm91dGV9YCkpXG4gICAgfVxuICAgIGNvbnN0IGFsbEZpbGVzID0gbWFuaWZlc3Rbcm91dGVdLm1hcChcbiAgICAgIChlbnRyeSkgPT4gYXNzZXRQcmVmaXggKyAnL19uZXh0LycgKyBlbmNvZGVVUklQYXRoKGVudHJ5KVxuICAgIClcbiAgICByZXR1cm4ge1xuICAgICAgc2NyaXB0czogYWxsRmlsZXNcbiAgICAgICAgLmZpbHRlcigodikgPT4gdi5lbmRzV2l0aCgnLmpzJykpXG4gICAgICAgIC5tYXAoKHYpID0+IF9fdW5zYWZlQ3JlYXRlVHJ1c3RlZFNjcmlwdFVSTCh2KSArIGdldEFzc2V0UXVlcnlTdHJpbmcoKSksXG4gICAgICBjc3M6IGFsbEZpbGVzXG4gICAgICAgIC5maWx0ZXIoKHYpID0+IHYuZW5kc1dpdGgoJy5jc3MnKSlcbiAgICAgICAgLm1hcCgodikgPT4gdiArIGdldEFzc2V0UXVlcnlTdHJpbmcoKSksXG4gICAgfVxuICB9KVxufVxuXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlUm91dGVMb2FkZXIoYXNzZXRQcmVmaXg6IHN0cmluZyk6IFJvdXRlTG9hZGVyIHtcbiAgY29uc3QgZW50cnlwb2ludHM6IE1hcDxzdHJpbmcsIEZ1dHVyZTxSb3V0ZUVudHJ5cG9pbnQ+IHwgUm91dGVFbnRyeXBvaW50PiA9XG4gICAgbmV3IE1hcCgpXG4gIGNvbnN0IGxvYWRlZFNjcmlwdHM6IE1hcDxzdHJpbmcsIFByb21pc2U8dW5rbm93bj4+ID0gbmV3IE1hcCgpXG4gIGNvbnN0IHN0eWxlU2hlZXRzOiBNYXA8c3RyaW5nLCBQcm9taXNlPFJvdXRlU3R5bGVTaGVldD4+ID0gbmV3IE1hcCgpXG4gIGNvbnN0IHJvdXRlczogTWFwPHN0cmluZywgRnV0dXJlPFJvdXRlTG9hZGVyRW50cnk+IHwgUm91dGVMb2FkZXJFbnRyeT4gPVxuICAgIG5ldyBNYXAoKVxuXG4gIGZ1bmN0aW9uIG1heWJlRXhlY3V0ZVNjcmlwdChcbiAgICBzcmM6IFRydXN0ZWRTY3JpcHRVUkwgfCBzdHJpbmdcbiAgKTogUHJvbWlzZTx1bmtub3duPiB7XG4gICAgLy8gV2l0aCBITVIgd2UgbWlnaHQgbmVlZCB0byBcInJlbG9hZFwiIHNjcmlwdHMgd2hlbiB0aGV5IGFyZVxuICAgIC8vIGRpc3Bvc2VkIGFuZCByZWFkZGVkLiBFeGVjdXRpbmcgc2NyaXB0cyB0d2ljZSBoYXMgbm8gZnVuY3Rpb25hbFxuICAgIC8vIGRpZmZlcmVuY2VzXG4gICAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAnZGV2ZWxvcG1lbnQnKSB7XG4gICAgICBsZXQgcHJvbTogUHJvbWlzZTx1bmtub3duPiB8IHVuZGVmaW5lZCA9IGxvYWRlZFNjcmlwdHMuZ2V0KHNyYy50b1N0cmluZygpKVxuICAgICAgaWYgKHByb20pIHtcbiAgICAgICAgcmV0dXJuIHByb21cbiAgICAgIH1cblxuICAgICAgLy8gU2tpcCBleGVjdXRpbmcgc2NyaXB0IGlmIGl0J3MgYWxyZWFkeSBpbiB0aGUgRE9NOlxuICAgICAgaWYgKGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoYHNjcmlwdFtzcmNePVwiJHtzcmN9XCJdYCkpIHtcbiAgICAgICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZSgpXG4gICAgICB9XG5cbiAgICAgIGxvYWRlZFNjcmlwdHMuc2V0KHNyYy50b1N0cmluZygpLCAocHJvbSA9IGFwcGVuZFNjcmlwdChzcmMpKSlcbiAgICAgIHJldHVybiBwcm9tXG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBhcHBlbmRTY3JpcHQoc3JjKVxuICAgIH1cbiAgfVxuXG4gIGZ1bmN0aW9uIGZldGNoU3R5bGVTaGVldChocmVmOiBzdHJpbmcpOiBQcm9taXNlPFJvdXRlU3R5bGVTaGVldD4ge1xuICAgIGxldCBwcm9tOiBQcm9taXNlPFJvdXRlU3R5bGVTaGVldD4gfCB1bmRlZmluZWQgPSBzdHlsZVNoZWV0cy5nZXQoaHJlZilcbiAgICBpZiAocHJvbSkge1xuICAgICAgcmV0dXJuIHByb21cbiAgICB9XG5cbiAgICBzdHlsZVNoZWV0cy5zZXQoXG4gICAgICBocmVmLFxuICAgICAgKHByb20gPSBmZXRjaChocmVmLCB7IGNyZWRlbnRpYWxzOiAnc2FtZS1vcmlnaW4nIH0pXG4gICAgICAgIC50aGVuKChyZXMpID0+IHtcbiAgICAgICAgICBpZiAoIXJlcy5vaykge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBGYWlsZWQgdG8gbG9hZCBzdHlsZXNoZWV0OiAke2hyZWZ9YClcbiAgICAgICAgICB9XG4gICAgICAgICAgcmV0dXJuIHJlcy50ZXh0KCkudGhlbigodGV4dCkgPT4gKHsgaHJlZjogaHJlZiwgY29udGVudDogdGV4dCB9KSlcbiAgICAgICAgfSlcbiAgICAgICAgLmNhdGNoKChlcnIpID0+IHtcbiAgICAgICAgICB0aHJvdyBtYXJrQXNzZXRFcnJvcihlcnIpXG4gICAgICAgIH0pKVxuICAgIClcbiAgICByZXR1cm4gcHJvbVxuICB9XG5cbiAgcmV0dXJuIHtcbiAgICB3aGVuRW50cnlwb2ludChyb3V0ZTogc3RyaW5nKSB7XG4gICAgICByZXR1cm4gd2l0aEZ1dHVyZShyb3V0ZSwgZW50cnlwb2ludHMpXG4gICAgfSxcbiAgICBvbkVudHJ5cG9pbnQocm91dGU6IHN0cmluZywgZXhlY3V0ZTogdW5kZWZpbmVkIHwgKCgpID0+IHVua25vd24pKSB7XG4gICAgICA7KGV4ZWN1dGVcbiAgICAgICAgPyBQcm9taXNlLnJlc29sdmUoKVxuICAgICAgICAgICAgLnRoZW4oKCkgPT4gZXhlY3V0ZSgpKVxuICAgICAgICAgICAgLnRoZW4oXG4gICAgICAgICAgICAgIChleHBvcnRzOiBhbnkpID0+ICh7XG4gICAgICAgICAgICAgICAgY29tcG9uZW50OiAoZXhwb3J0cyAmJiBleHBvcnRzLmRlZmF1bHQpIHx8IGV4cG9ydHMsXG4gICAgICAgICAgICAgICAgZXhwb3J0czogZXhwb3J0cyxcbiAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgIChlcnIpID0+ICh7IGVycm9yOiBlcnIgfSlcbiAgICAgICAgICAgIClcbiAgICAgICAgOiBQcm9taXNlLnJlc29sdmUodW5kZWZpbmVkKVxuICAgICAgKS50aGVuKChpbnB1dDogUm91dGVFbnRyeXBvaW50IHwgdW5kZWZpbmVkKSA9PiB7XG4gICAgICAgIGNvbnN0IG9sZCA9IGVudHJ5cG9pbnRzLmdldChyb3V0ZSlcbiAgICAgICAgaWYgKG9sZCAmJiAncmVzb2x2ZScgaW4gb2xkKSB7XG4gICAgICAgICAgaWYgKGlucHV0KSB7XG4gICAgICAgICAgICBlbnRyeXBvaW50cy5zZXQocm91dGUsIGlucHV0KVxuICAgICAgICAgICAgb2xkLnJlc29sdmUoaW5wdXQpXG4gICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGlmIChpbnB1dCkge1xuICAgICAgICAgICAgZW50cnlwb2ludHMuc2V0KHJvdXRlLCBpbnB1dClcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgZW50cnlwb2ludHMuZGVsZXRlKHJvdXRlKVxuICAgICAgICAgIH1cbiAgICAgICAgICAvLyB3aGVuIHRoaXMgZW50cnlwb2ludCBoYXMgYmVlbiByZXNvbHZlZCBiZWZvcmVcbiAgICAgICAgICAvLyB0aGUgcm91dGUgaXMgb3V0ZGF0ZWQgYW5kIHdlIHdhbnQgdG8gaW52YWxpZGF0ZVxuICAgICAgICAgIC8vIHRoaXMgY2FjaGUgZW50cnlcbiAgICAgICAgICByb3V0ZXMuZGVsZXRlKHJvdXRlKVxuICAgICAgICB9XG4gICAgICB9KVxuICAgIH0sXG4gICAgbG9hZFJvdXRlKHJvdXRlOiBzdHJpbmcsIHByZWZldGNoPzogYm9vbGVhbikge1xuICAgICAgcmV0dXJuIHdpdGhGdXR1cmU8Um91dGVMb2FkZXJFbnRyeT4ocm91dGUsIHJvdXRlcywgKCkgPT4ge1xuICAgICAgICBsZXQgZGV2QnVpbGRQcm9taXNlUmVzb2x2ZTogKCkgPT4gdm9pZFxuXG4gICAgICAgIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViA9PT0gJ2RldmVsb3BtZW50Jykge1xuICAgICAgICAgIGRldkJ1aWxkUHJvbWlzZSA9IG5ldyBQcm9taXNlPHZvaWQ+KChyZXNvbHZlKSA9PiB7XG4gICAgICAgICAgICBkZXZCdWlsZFByb21pc2VSZXNvbHZlID0gcmVzb2x2ZVxuICAgICAgICAgIH0pXG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gcmVzb2x2ZVByb21pc2VXaXRoVGltZW91dChcbiAgICAgICAgICBnZXRGaWxlc0ZvclJvdXRlKGFzc2V0UHJlZml4LCByb3V0ZSlcbiAgICAgICAgICAgIC50aGVuKCh7IHNjcmlwdHMsIGNzcyB9KSA9PiB7XG4gICAgICAgICAgICAgIHJldHVybiBQcm9taXNlLmFsbChbXG4gICAgICAgICAgICAgICAgZW50cnlwb2ludHMuaGFzKHJvdXRlKVxuICAgICAgICAgICAgICAgICAgPyBbXVxuICAgICAgICAgICAgICAgICAgOiBQcm9taXNlLmFsbChzY3JpcHRzLm1hcChtYXliZUV4ZWN1dGVTY3JpcHQpKSxcbiAgICAgICAgICAgICAgICBQcm9taXNlLmFsbChjc3MubWFwKGZldGNoU3R5bGVTaGVldCkpLFxuICAgICAgICAgICAgICBdIGFzIGNvbnN0KVxuICAgICAgICAgICAgfSlcbiAgICAgICAgICAgIC50aGVuKChyZXMpID0+IHtcbiAgICAgICAgICAgICAgcmV0dXJuIHRoaXMud2hlbkVudHJ5cG9pbnQocm91dGUpLnRoZW4oKGVudHJ5cG9pbnQpID0+ICh7XG4gICAgICAgICAgICAgICAgZW50cnlwb2ludCxcbiAgICAgICAgICAgICAgICBzdHlsZXM6IHJlc1sxXSxcbiAgICAgICAgICAgICAgfSkpXG4gICAgICAgICAgICB9KSxcbiAgICAgICAgICBNU19NQVhfSURMRV9ERUxBWSxcbiAgICAgICAgICBtYXJrQXNzZXRFcnJvcihuZXcgRXJyb3IoYFJvdXRlIGRpZCBub3QgY29tcGxldGUgbG9hZGluZzogJHtyb3V0ZX1gKSlcbiAgICAgICAgKVxuICAgICAgICAgIC50aGVuKCh7IGVudHJ5cG9pbnQsIHN0eWxlcyB9KSA9PiB7XG4gICAgICAgICAgICBjb25zdCByZXM6IFJvdXRlTG9hZGVyRW50cnkgPSBPYmplY3QuYXNzaWduPFxuICAgICAgICAgICAgICB7IHN0eWxlczogUm91dGVTdHlsZVNoZWV0W10gfSxcbiAgICAgICAgICAgICAgUm91dGVFbnRyeXBvaW50XG4gICAgICAgICAgICA+KHsgc3R5bGVzOiBzdHlsZXMhIH0sIGVudHJ5cG9pbnQpXG4gICAgICAgICAgICByZXR1cm4gJ2Vycm9yJyBpbiBlbnRyeXBvaW50ID8gZW50cnlwb2ludCA6IHJlc1xuICAgICAgICAgIH0pXG4gICAgICAgICAgLmNhdGNoKChlcnIpID0+IHtcbiAgICAgICAgICAgIGlmIChwcmVmZXRjaCkge1xuICAgICAgICAgICAgICAvLyB3ZSBkb24ndCB3YW50IHRvIGNhY2hlIGVycm9ycyBkdXJpbmcgcHJlZmV0Y2hcbiAgICAgICAgICAgICAgdGhyb3cgZXJyXG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4geyBlcnJvcjogZXJyIH1cbiAgICAgICAgICB9KVxuICAgICAgICAgIC5maW5hbGx5KCgpID0+IGRldkJ1aWxkUHJvbWlzZVJlc29sdmU/LigpKVxuICAgICAgfSlcbiAgICB9LFxuICAgIHByZWZldGNoKHJvdXRlOiBzdHJpbmcpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICAgIC8vIGh0dHBzOi8vZ2l0aHViLmNvbS9Hb29nbGVDaHJvbWVMYWJzL3F1aWNrbGluay9ibG9iLzQ1M2E2NjFmYTFmYTk0MGUyZDJlMDQ0NDUyMzk4ZTM4YzY3YTk4ZmIvc3JjL2luZGV4Lm1qcyNMMTE1LUwxMThcbiAgICAgIC8vIExpY2Vuc2U6IEFwYWNoZSAyLjBcbiAgICAgIGxldCBjblxuICAgICAgaWYgKChjbiA9IChuYXZpZ2F0b3IgYXMgYW55KS5jb25uZWN0aW9uKSkge1xuICAgICAgICAvLyBEb24ndCBwcmVmZXRjaCBpZiB1c2luZyAyRyBvciBpZiBTYXZlLURhdGEgaXMgZW5hYmxlZC5cbiAgICAgICAgaWYgKGNuLnNhdmVEYXRhIHx8IC8yZy8udGVzdChjbi5lZmZlY3RpdmVUeXBlKSkgcmV0dXJuIFByb21pc2UucmVzb2x2ZSgpXG4gICAgICB9XG4gICAgICByZXR1cm4gZ2V0RmlsZXNGb3JSb3V0ZShhc3NldFByZWZpeCwgcm91dGUpXG4gICAgICAgIC50aGVuKChvdXRwdXQpID0+XG4gICAgICAgICAgUHJvbWlzZS5hbGwoXG4gICAgICAgICAgICBjYW5QcmVmZXRjaFxuICAgICAgICAgICAgICA/IG91dHB1dC5zY3JpcHRzLm1hcCgoc2NyaXB0KSA9PlxuICAgICAgICAgICAgICAgICAgcHJlZmV0Y2hWaWFEb20oc2NyaXB0LnRvU3RyaW5nKCksICdzY3JpcHQnKVxuICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgOiBbXVxuICAgICAgICAgIClcbiAgICAgICAgKVxuICAgICAgICAudGhlbigoKSA9PiB7XG4gICAgICAgICAgcmVxdWVzdElkbGVDYWxsYmFjaygoKSA9PiB0aGlzLmxvYWRSb3V0ZShyb3V0ZSwgdHJ1ZSkuY2F0Y2goKCkgPT4ge30pKVxuICAgICAgICB9KVxuICAgICAgICAuY2F0Y2goXG4gICAgICAgICAgLy8gc3dhbGxvdyBwcmVmZXRjaCBlcnJvcnNcbiAgICAgICAgICAoKSA9PiB7fVxuICAgICAgICApXG4gICAgfSxcbiAgfVxufVxuIl0sIm5hbWVzIjpbImNyZWF0ZVJvdXRlTG9hZGVyIiwiZ2V0Q2xpZW50QnVpbGRNYW5pZmVzdCIsImlzQXNzZXRFcnJvciIsIm1hcmtBc3NldEVycm9yIiwiTVNfTUFYX0lETEVfREVMQVkiLCJ3aXRoRnV0dXJlIiwia2V5IiwibWFwIiwiZ2VuZXJhdG9yIiwiZW50cnkiLCJnZXQiLCJmdXR1cmUiLCJQcm9taXNlIiwicmVzb2x2ZSIsInJlc29sdmVyIiwicHJvbSIsInNldCIsInRoZW4iLCJ2YWx1ZSIsImNhdGNoIiwiZXJyIiwiZGVsZXRlIiwiQVNTRVRfTE9BRF9FUlJPUiIsIlN5bWJvbCIsIk9iamVjdCIsImRlZmluZVByb3BlcnR5IiwiaGFzUHJlZmV0Y2giLCJsaW5rIiwiZG9jdW1lbnQiLCJjcmVhdGVFbGVtZW50Iiwid2luZG93IiwiTVNJbnB1dE1ldGhvZENvbnRleHQiLCJkb2N1bWVudE1vZGUiLCJyZWxMaXN0Iiwic3VwcG9ydHMiLCJjYW5QcmVmZXRjaCIsImdldEFzc2V0UXVlcnlTdHJpbmciLCJnZXREZXBsb3ltZW50SWRRdWVyeU9yRW1wdHlTdHJpbmciLCJwcmVmZXRjaFZpYURvbSIsImhyZWYiLCJhcyIsInJlamVjdCIsInNlbGVjdG9yIiwicXVlcnlTZWxlY3RvciIsInJlbCIsImNyb3NzT3JpZ2luIiwicHJvY2VzcyIsImVudiIsIl9fTkVYVF9DUk9TU19PUklHSU4iLCJvbmxvYWQiLCJvbmVycm9yIiwiRXJyb3IiLCJoZWFkIiwiYXBwZW5kQ2hpbGQiLCJhcHBlbmRTY3JpcHQiLCJzcmMiLCJzY3JpcHQiLCJib2R5IiwiZGV2QnVpbGRQcm9taXNlIiwicmVzb2x2ZVByb21pc2VXaXRoVGltZW91dCIsInAiLCJtcyIsImNhbmNlbGxlZCIsInIiLCJOT0RFX0VOViIsInJlcXVlc3RJZGxlQ2FsbGJhY2siLCJzZXRUaW1lb3V0Iiwic2VsZiIsIl9fQlVJTERfTUFOSUZFU1QiLCJvbkJ1aWxkTWFuaWZlc3QiLCJjYiIsIl9fQlVJTERfTUFOSUZFU1RfQ0IiLCJnZXRGaWxlc0ZvclJvdXRlIiwiYXNzZXRQcmVmaXgiLCJyb3V0ZSIsInNjcmlwdFVybCIsImVuY29kZVVSSVBhdGgiLCJnZXRBc3NldFBhdGhGcm9tUm91dGUiLCJzY3JpcHRzIiwiX191bnNhZmVDcmVhdGVUcnVzdGVkU2NyaXB0VVJMIiwiY3NzIiwibWFuaWZlc3QiLCJhbGxGaWxlcyIsImZpbHRlciIsInYiLCJlbmRzV2l0aCIsImVudHJ5cG9pbnRzIiwiTWFwIiwibG9hZGVkU2NyaXB0cyIsInN0eWxlU2hlZXRzIiwicm91dGVzIiwibWF5YmVFeGVjdXRlU2NyaXB0IiwidG9TdHJpbmciLCJmZXRjaFN0eWxlU2hlZXQiLCJmZXRjaCIsImNyZWRlbnRpYWxzIiwicmVzIiwib2siLCJ0ZXh0IiwiY29udGVudCIsIndoZW5FbnRyeXBvaW50Iiwib25FbnRyeXBvaW50IiwiZXhlY3V0ZSIsImV4cG9ydHMiLCJjb21wb25lbnQiLCJkZWZhdWx0IiwiZXJyb3IiLCJ1bmRlZmluZWQiLCJpbnB1dCIsIm9sZCIsImxvYWRSb3V0ZSIsInByZWZldGNoIiwiZGV2QnVpbGRQcm9taXNlUmVzb2x2ZSIsImFsbCIsImhhcyIsImVudHJ5cG9pbnQiLCJzdHlsZXMiLCJhc3NpZ24iLCJmaW5hbGx5IiwiY24iLCJuYXZpZ2F0b3IiLCJjb25uZWN0aW9uIiwic2F2ZURhdGEiLCJ0ZXN0IiwiZWZmZWN0aXZlVHlwZSIsIm91dHB1dCJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(pages-dir-browser)/./node_modules/next/dist/client/route-loader.js\n")); - -/***/ }), - -/***/ "(pages-dir-browser)/./node_modules/next/dist/client/router.js": -/*!*************************************************!*\ - !*** ./node_modules/next/dist/client/router.js ***! - \*************************************************/ -/***/ ((module, exports, __webpack_require__) => { - -"use strict"; -eval(__webpack_require__.ts("/* global window */ \nvar _s = $RefreshSig$();\n\"use strict\";\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n Router: function() {\n return _router.default;\n },\n createRouter: function() {\n return createRouter;\n },\n // Export the singletonRouter and this is the public API.\n default: function() {\n return _default;\n },\n makePublicRouterInstance: function() {\n return makePublicRouterInstance;\n },\n useRouter: function() {\n return useRouter;\n },\n withRouter: function() {\n return _withrouter.default;\n }\n});\nconst _interop_require_default = __webpack_require__(/*! @swc/helpers/_/_interop_require_default */ \"(pages-dir-browser)/./node_modules/@swc/helpers/esm/_interop_require_default.js\");\nconst _react = /*#__PURE__*/ _interop_require_default._(__webpack_require__(/*! react */ \"(pages-dir-browser)/./node_modules/react/index.js\"));\nconst _router = /*#__PURE__*/ _interop_require_default._(__webpack_require__(/*! ../shared/lib/router/router */ \"(pages-dir-browser)/./node_modules/next/dist/shared/lib/router/router.js\"));\nconst _routercontextsharedruntime = __webpack_require__(/*! ../shared/lib/router-context.shared-runtime */ \"(pages-dir-browser)/./node_modules/next/dist/shared/lib/router-context.shared-runtime.js\");\nconst _iserror = /*#__PURE__*/ _interop_require_default._(__webpack_require__(/*! ../lib/is-error */ \"(pages-dir-browser)/./node_modules/next/dist/lib/is-error.js\"));\nconst _withrouter = /*#__PURE__*/ _interop_require_default._(__webpack_require__(/*! ./with-router */ \"(pages-dir-browser)/./node_modules/next/dist/client/with-router.js\"));\nconst singletonRouter = {\n router: null,\n readyCallbacks: [],\n ready (callback) {\n if (this.router) return callback();\n if (true) {\n this.readyCallbacks.push(callback);\n }\n }\n};\n// Create public properties and methods of the router in the singletonRouter\nconst urlPropertyFields = [\n 'pathname',\n 'route',\n 'query',\n 'asPath',\n 'components',\n 'isFallback',\n 'basePath',\n 'locale',\n 'locales',\n 'defaultLocale',\n 'isReady',\n 'isPreview',\n 'isLocaleDomain',\n 'domainLocales'\n];\nconst routerEvents = [\n 'routeChangeStart',\n 'beforeHistoryChange',\n 'routeChangeComplete',\n 'routeChangeError',\n 'hashChangeStart',\n 'hashChangeComplete'\n];\nconst coreMethodFields = [\n 'push',\n 'replace',\n 'reload',\n 'back',\n 'prefetch',\n 'beforePopState'\n];\n// Events is a static property on the router, the router doesn't have to be initialized to use it\nObject.defineProperty(singletonRouter, 'events', {\n get () {\n return _router.default.events;\n }\n});\nfunction getRouter() {\n if (!singletonRouter.router) {\n const message = 'No router instance found.\\n' + 'You should only use \"next/router\" on the client side of your app.\\n';\n throw Object.defineProperty(new Error(message), \"__NEXT_ERROR_CODE\", {\n value: \"E394\",\n enumerable: false,\n configurable: true\n });\n }\n return singletonRouter.router;\n}\nurlPropertyFields.forEach((field)=>{\n // Here we need to use Object.defineProperty because we need to return\n // the property assigned to the actual router\n // The value might get changed as we change routes and this is the\n // proper way to access it\n Object.defineProperty(singletonRouter, field, {\n get () {\n const router = getRouter();\n return router[field];\n }\n });\n});\ncoreMethodFields.forEach((field)=>{\n // We don't really know the types here, so we add them later instead\n ;\n singletonRouter[field] = function() {\n for(var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++){\n args[_key] = arguments[_key];\n }\n const router = getRouter();\n return router[field](...args);\n };\n});\nrouterEvents.forEach((event)=>{\n singletonRouter.ready(()=>{\n _router.default.events.on(event, function() {\n for(var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++){\n args[_key] = arguments[_key];\n }\n const eventField = \"on\" + event.charAt(0).toUpperCase() + event.substring(1);\n const _singletonRouter = singletonRouter;\n if (_singletonRouter[eventField]) {\n try {\n _singletonRouter[eventField](...args);\n } catch (err) {\n console.error(\"Error when running the Router event: \" + eventField);\n console.error((0, _iserror.default)(err) ? err.message + \"\\n\" + err.stack : err + '');\n }\n }\n });\n });\n});\nconst _default = singletonRouter;\nfunction useRouter() {\n _s();\n const router = _react.default.useContext(_routercontextsharedruntime.RouterContext);\n if (!router) {\n throw Object.defineProperty(new Error('NextRouter was not mounted. https://nextjs.org/docs/messages/next-router-not-mounted'), \"__NEXT_ERROR_CODE\", {\n value: \"E509\",\n enumerable: false,\n configurable: true\n });\n }\n return router;\n}\n_s(useRouter, \"rbAhEc3dLGnVlsHWaSDsgP4MZS0=\");\nfunction createRouter() {\n for(var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++){\n args[_key] = arguments[_key];\n }\n singletonRouter.router = new _router.default(...args);\n singletonRouter.readyCallbacks.forEach((cb)=>cb());\n singletonRouter.readyCallbacks = [];\n return singletonRouter.router;\n}\nfunction makePublicRouterInstance(router) {\n const scopedRouter = router;\n const instance = {};\n for (const property of urlPropertyFields){\n if (typeof scopedRouter[property] === 'object') {\n instance[property] = Object.assign(Array.isArray(scopedRouter[property]) ? [] : {}, scopedRouter[property]) // makes sure query is not stateful\n ;\n continue;\n }\n instance[property] = scopedRouter[property];\n }\n // Events is a static property on the router, the router doesn't have to be initialized to use it\n instance.events = _router.default.events;\n coreMethodFields.forEach((field)=>{\n instance[field] = function() {\n for(var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++){\n args[_key] = arguments[_key];\n }\n return scopedRouter[field](...args);\n };\n });\n return instance;\n}\nif ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=router.js.map\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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvY2xpZW50L3JvdXRlci5qcyIsIm1hcHBpbmdzIjoiQUFBQSxpQkFBaUI7O0FBQUE7Ozs7Ozs7Ozs7OztJQWFSQSxNQUFNO2VBQU5BLFFBQUFBLE9BQU07O0lBNklDQyxZQUFZO2VBQVpBOztJQTdCaEIseURBQXlEO0lBQ3pELE9BQWlEO2VBQWpEOztJQTBDZ0JDLHdCQUF3QjtlQUF4QkE7O0lBL0JBQyxTQUFTO2VBQVRBOztJQVJJQyxVQUFVO2VBQVZBLFlBQUFBLE9BQVU7Ozs7NEVBaElaOzZFQUNDO3dEQUVXOzhFQUNWO2lGQTRIa0I7QUE5R3RDLE1BQU1DLGtCQUF1QztJQUMzQ0MsUUFBUTtJQUNSQyxnQkFBZ0IsRUFBRTtJQUNsQkMsT0FBTUMsUUFBb0I7UUFDeEIsSUFBSSxJQUFJLENBQUNILE1BQU0sRUFBRSxPQUFPRztRQUN4QixJQUFJLElBQTZCLEVBQUU7WUFDakMsSUFBSSxDQUFDRixjQUFjLENBQUNJLElBQUksQ0FBQ0Y7UUFDM0I7SUFDRjtBQUNGO0FBRUEsNEVBQTRFO0FBQzVFLE1BQU1HLG9CQUFvQjtJQUN4QjtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0NBQ0Q7QUFDRCxNQUFNQyxlQUFlO0lBQ25CO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtDQUNEO0FBR0QsTUFBTUMsbUJBQW1CO0lBQ3ZCO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtDQUNEO0FBRUQsaUdBQWlHO0FBQ2pHQyxPQUFPQyxjQUFjLENBQUNYLGlCQUFpQixVQUFVO0lBQy9DWTtRQUNFLE9BQU9qQixRQUFBQSxPQUFNLENBQUNrQixNQUFNO0lBQ3RCO0FBQ0Y7QUFFQSxTQUFTQztJQUNQLElBQUksQ0FBQ2QsZ0JBQWdCQyxNQUFNLEVBQUU7UUFDM0IsTUFBTWMsVUFDSixnQ0FDQTtRQUNGLE1BQU0scUJBQWtCLENBQWxC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Q0MsU0FBUyxHQUFHRixZQUFZLENBQUNFLFNBQVM7SUFDN0M7SUFFQSxpR0FBaUc7SUFDakdELFNBQVN4QixNQUFNLEdBQUdsQixRQUFBQSxPQUFNLENBQUNrQixNQUFNO0lBRS9CSixpQkFBaUJRLE9BQU8sQ0FBQyxDQUFDQztRQUN4Qm1CLFFBQVEsQ0FBQ25CLE1BQU0sR0FBRzs2Q0FBSUMsT0FBQUEsSUFBQUEsTUFBQUEsT0FBQUEsT0FBQUEsR0FBQUEsT0FBQUEsTUFBQUEsT0FBQUE7Z0JBQUFBLElBQUFBLENBQUFBLEtBQUFBLEdBQUFBLFNBQUFBLENBQUFBLEtBQUFBOztZQUNwQixPQUFPaUIsWUFBWSxDQUFDbEIsTUFBTSxJQUFJQztRQUNoQztJQUNGO0lBRUEsT0FBT2tCO0FBQ1QiLCJzb3VyY2VzIjpbIkQ6XFxzcmNcXGNsaWVudFxccm91dGVyLnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qIGdsb2JhbCB3aW5kb3cgKi9cbmltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCdcbmltcG9ydCBSb3V0ZXIgZnJvbSAnLi4vc2hhcmVkL2xpYi9yb3V0ZXIvcm91dGVyJ1xuaW1wb3J0IHR5cGUgeyBOZXh0Um91dGVyIH0gZnJvbSAnLi4vc2hhcmVkL2xpYi9yb3V0ZXIvcm91dGVyJ1xuaW1wb3J0IHsgUm91dGVyQ29udGV4dCB9IGZyb20gJy4uL3NoYXJlZC9saWIvcm91dGVyLWNvbnRleHQuc2hhcmVkLXJ1bnRpbWUnXG5pbXBvcnQgaXNFcnJvciBmcm9tICcuLi9saWIvaXMtZXJyb3InXG5cbnR5cGUgU2luZ2xldG9uUm91dGVyQmFzZSA9IHtcbiAgcm91dGVyOiBSb3V0ZXIgfCBudWxsXG4gIHJlYWR5Q2FsbGJhY2tzOiBBcnJheTwoKSA9PiBhbnk+XG4gIHJlYWR5KGNiOiAoKSA9PiBhbnkpOiB2b2lkXG59XG5cbmV4cG9ydCB7IFJvdXRlciB9XG5cbmV4cG9ydCB0eXBlIHsgTmV4dFJvdXRlciB9XG5cbmV4cG9ydCB0eXBlIFNpbmdsZXRvblJvdXRlciA9IFNpbmdsZXRvblJvdXRlckJhc2UgJiBOZXh0Um91dGVyXG5cbmNvbnN0IHNpbmdsZXRvblJvdXRlcjogU2luZ2xldG9uUm91dGVyQmFzZSA9IHtcbiAgcm91dGVyOiBudWxsLCAvLyBob2xkcyB0aGUgYWN0dWFsIHJvdXRlciBpbnN0YW5jZVxuICByZWFkeUNhbGxiYWNrczogW10sXG4gIHJlYWR5KGNhbGxiYWNrOiAoKSA9PiB2b2lkKSB7XG4gICAgaWYgKHRoaXMucm91dGVyKSByZXR1cm4gY2FsbGJhY2soKVxuICAgIGlmICh0eXBlb2Ygd2luZG93ICE9PSAndW5kZWZpbmVkJykge1xuICAgICAgdGhpcy5yZWFkeUNhbGxiYWNrcy5wdXNoKGNhbGxiYWNrKVxuICAgIH1cbiAgfSxcbn1cblxuLy8gQ3JlYXRlIHB1YmxpYyBwcm9wZXJ0aWVzIGFuZCBtZXRob2RzIG9mIHRoZSByb3V0ZXIgaW4gdGhlIHNpbmdsZXRvblJvdXRlclxuY29uc3QgdXJsUHJvcGVydHlGaWVsZHMgPSBbXG4gICdwYXRobmFtZScsXG4gICdyb3V0ZScsXG4gICdxdWVyeScsXG4gICdhc1BhdGgnLFxuICAnY29tcG9uZW50cycsXG4gICdpc0ZhbGxiYWNrJyxcbiAgJ2Jhc2VQYXRoJyxcbiAgJ2xvY2FsZScsXG4gICdsb2NhbGVzJyxcbiAgJ2RlZmF1bHRMb2NhbGUnLFxuICAnaXNSZWFkeScsXG4gICdpc1ByZXZpZXcnLFxuICAnaXNMb2NhbGVEb21haW4nLFxuICAnZG9tYWluTG9jYWxlcycsXG5dIGFzIGNvbnN0XG5jb25zdCByb3V0ZXJFdmVudHMgPSBbXG4gICdyb3V0ZUNoYW5nZVN0YXJ0JyxcbiAgJ2JlZm9yZUhpc3RvcnlDaGFuZ2UnLFxuICAncm91dGVDaGFuZ2VDb21wbGV0ZScsXG4gICdyb3V0ZUNoYW5nZUVycm9yJyxcbiAgJ2hhc2hDaGFuZ2VTdGFydCcsXG4gICdoYXNoQ2hhbmdlQ29tcGxldGUnLFxuXSBhcyBjb25zdFxuZXhwb3J0IHR5cGUgUm91dGVyRXZlbnQgPSAodHlwZW9mIHJvdXRlckV2ZW50cylbbnVtYmVyXVxuXG5jb25zdCBjb3JlTWV0aG9kRmllbGRzID0gW1xuICAncHVzaCcsXG4gICdyZXBsYWNlJyxcbiAgJ3JlbG9hZCcsXG4gICdiYWNrJyxcbiAgJ3ByZWZldGNoJyxcbiAgJ2JlZm9yZVBvcFN0YXRlJyxcbl0gYXMgY29uc3RcblxuLy8gRXZlbnRzIGlzIGEgc3RhdGljIHByb3BlcnR5IG9uIHRoZSByb3V0ZXIsIHRoZSByb3V0ZXIgZG9lc24ndCBoYXZlIHRvIGJlIGluaXRpYWxpemVkIHRvIHVzZSBpdFxuT2JqZWN0LmRlZmluZVByb3BlcnR5KHNpbmdsZXRvblJvdXRlciwgJ2V2ZW50cycsIHtcbiAgZ2V0KCkge1xuICAgIHJldHVybiBSb3V0ZXIuZXZlbnRzXG4gIH0sXG59KVxuXG5mdW5jdGlvbiBnZXRSb3V0ZXIoKTogUm91dGVyIHtcbiAgaWYgKCFzaW5nbGV0b25Sb3V0ZXIucm91dGVyKSB7XG4gICAgY29uc3QgbWVzc2FnZSA9XG4gICAgICAnTm8gcm91dGVyIGluc3RhbmNlIGZvdW5kLlxcbicgK1xuICAgICAgJ1lvdSBzaG91bGQgb25seSB1c2UgXCJuZXh0L3JvdXRlclwiIG9uIHRoZSBjbGllbnQgc2lkZSBvZiB5b3VyIGFwcC5cXG4nXG4gICAgdGhyb3cgbmV3IEVycm9yKG1lc3NhZ2UpXG4gIH1cbiAgcmV0dXJuIHNpbmdsZXRvblJvdXRlci5yb3V0ZXJcbn1cblxudXJsUHJvcGVydHlGaWVsZHMuZm9yRWFjaCgoZmllbGQpID0+IHtcbiAgLy8gSGVyZSB3ZSBuZWVkIHRvIHVzZSBPYmplY3QuZGVmaW5lUHJvcGVydHkgYmVjYXVzZSB3ZSBuZWVkIHRvIHJldHVyblxuICAvLyB0aGUgcHJvcGVydHkgYXNzaWduZWQgdG8gdGhlIGFjdHVhbCByb3V0ZXJcbiAgLy8gVGhlIHZhbHVlIG1pZ2h0IGdldCBjaGFuZ2VkIGFzIHdlIGNoYW5nZSByb3V0ZXMgYW5kIHRoaXMgaXMgdGhlXG4gIC8vIHByb3BlciB3YXkgdG8gYWNjZXNzIGl0XG4gIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShzaW5nbGV0b25Sb3V0ZXIsIGZpZWxkLCB7XG4gICAgZ2V0KCkge1xuICAgICAgY29uc3Qgcm91dGVyID0gZ2V0Um91dGVyKClcbiAgICAgIHJldHVybiByb3V0ZXJbZmllbGRdIGFzIHN0cmluZ1xuICAgIH0sXG4gIH0pXG59KVxuXG5jb3JlTWV0aG9kRmllbGRzLmZvckVhY2goKGZpZWxkKSA9PiB7XG4gIC8vIFdlIGRvbid0IHJlYWxseSBrbm93IHRoZSB0eXBlcyBoZXJlLCBzbyB3ZSBhZGQgdGhlbSBsYXRlciBpbnN0ZWFkXG4gIDsoc2luZ2xldG9uUm91dGVyIGFzIGFueSlbZmllbGRdID0gKC4uLmFyZ3M6IGFueVtdKSA9PiB7XG4gICAgY29uc3Qgcm91dGVyID0gZ2V0Um91dGVyKCkgYXMgYW55XG4gICAgcmV0dXJuIHJvdXRlcltmaWVsZF0oLi4uYXJncylcbiAgfVxufSlcblxucm91dGVyRXZlbnRzLmZvckVhY2goKGV2ZW50KSA9PiB7XG4gIHNpbmdsZXRvblJvdXRlci5yZWFkeSgoKSA9PiB7XG4gICAgUm91dGVyLmV2ZW50cy5vbihldmVudCwgKC4uLmFyZ3MpID0+IHtcbiAgICAgIGNvbnN0IGV2ZW50RmllbGQgPSBgb24ke2V2ZW50LmNoYXJBdCgwKS50b1VwcGVyQ2FzZSgpfSR7ZXZlbnQuc3Vic3RyaW5nKFxuICAgICAgICAxXG4gICAgICApfWBcbiAgICAgIGNvbnN0IF9zaW5nbGV0b25Sb3V0ZXIgPSBzaW5nbGV0b25Sb3V0ZXIgYXMgYW55XG4gICAgICBpZiAoX3NpbmdsZXRvblJvdXRlcltldmVudEZpZWxkXSkge1xuICAgICAgICB0cnkge1xuICAgICAgICAgIF9zaW5nbGV0b25Sb3V0ZXJbZXZlbnRGaWVsZF0oLi4uYXJncylcbiAgICAgICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICAgICAgY29uc29sZS5lcnJvcihgRXJyb3Igd2hlbiBydW5uaW5nIHRoZSBSb3V0ZXIgZXZlbnQ6ICR7ZXZlbnRGaWVsZH1gKVxuICAgICAgICAgIGNvbnNvbGUuZXJyb3IoXG4gICAgICAgICAgICBpc0Vycm9yKGVycikgPyBgJHtlcnIubWVzc2FnZX1cXG4ke2Vyci5zdGFja31gIDogZXJyICsgJydcbiAgICAgICAgICApXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9KVxuICB9KVxufSlcblxuLy8gRXhwb3J0IHRoZSBzaW5nbGV0b25Sb3V0ZXIgYW5kIHRoaXMgaXMgdGhlIHB1YmxpYyBBUEkuXG5leHBvcnQgZGVmYXVsdCBzaW5nbGV0b25Sb3V0ZXIgYXMgU2luZ2xldG9uUm91dGVyXG5cbi8vIFJlZXhwb3J0IHRoZSB3aXRoUm91dGVyIEhPQ1xuZXhwb3J0IHsgZGVmYXVsdCBhcyB3aXRoUm91dGVyIH0gZnJvbSAnLi93aXRoLXJvdXRlcidcblxuLyoqXG4gKiBUaGlzIGhvb2sgZ2l2ZXMgYWNjZXNzIHRoZSBbcm91dGVyIG9iamVjdF0oaHR0cHM6Ly9uZXh0anMub3JnL2RvY3MvcGFnZXMvYXBpLXJlZmVyZW5jZS9mdW5jdGlvbnMvdXNlLXJvdXRlciNyb3V0ZXItb2JqZWN0KVxuICogaW5zaWRlIHRoZSBbUGFnZXMgUm91dGVyXShodHRwczovL25leHRqcy5vcmcvZG9jcy9wYWdlcy9idWlsZGluZy15b3VyLWFwcGxpY2F0aW9uKS5cbiAqXG4gKiBSZWFkIG1vcmU6IFtOZXh0LmpzIERvY3M6IGB1c2VSb3V0ZXJgXShodHRwczovL25leHRqcy5vcmcvZG9jcy9wYWdlcy9hcGktcmVmZXJlbmNlL2Z1bmN0aW9ucy91c2Utcm91dGVyKVxuICovXG5leHBvcnQgZnVuY3Rpb24gdXNlUm91dGVyKCk6IE5leHRSb3V0ZXIge1xuICBjb25zdCByb3V0ZXIgPSBSZWFjdC51c2VDb250ZXh0KFJvdXRlckNvbnRleHQpXG4gIGlmICghcm91dGVyKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgJ05leHRSb3V0ZXIgd2FzIG5vdCBtb3VudGVkLiBodHRwczovL25leHRqcy5vcmcvZG9jcy9tZXNzYWdlcy9uZXh0LXJvdXRlci1ub3QtbW91bnRlZCdcbiAgICApXG4gIH1cblxuICByZXR1cm4gcm91dGVyXG59XG5cbi8qKlxuICogQ3JlYXRlIGEgcm91dGVyIGFuZCBhc3NpZ24gaXQgYXMgdGhlIHNpbmdsZXRvbiBpbnN0YW5jZS5cbiAqIFRoaXMgaXMgdXNlZCBpbiBjbGllbnQgc2lkZSB3aGVuIHdlIGFyZSBpbml0aWFsaXppbmcgdGhlIGFwcC5cbiAqIFRoaXMgc2hvdWxkICoqbm90KiogYmUgdXNlZCBpbnNpZGUgdGhlIHNlcnZlci5cbiAqIEBpbnRlcm5hbFxuICovXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlUm91dGVyKFxuICAuLi5hcmdzOiBDb25zdHJ1Y3RvclBhcmFtZXRlcnM8dHlwZW9mIFJvdXRlcj5cbik6IFJvdXRlciB7XG4gIHNpbmdsZXRvblJvdXRlci5yb3V0ZXIgPSBuZXcgUm91dGVyKC4uLmFyZ3MpXG4gIHNpbmdsZXRvblJvdXRlci5yZWFkeUNhbGxiYWNrcy5mb3JFYWNoKChjYikgPT4gY2IoKSlcbiAgc2luZ2xldG9uUm91dGVyLnJlYWR5Q2FsbGJhY2tzID0gW11cblxuICByZXR1cm4gc2luZ2xldG9uUm91dGVyLnJvdXRlclxufVxuXG4vKipcbiAqIFRoaXMgZnVuY3Rpb24gaXMgdXNlZCB0byBjcmVhdGUgdGhlIGB3aXRoUm91dGVyYCByb3V0ZXIgaW5zdGFuY2VcbiAqIEBpbnRlcm5hbFxuICovXG5leHBvcnQgZnVuY3Rpb24gbWFrZVB1YmxpY1JvdXRlckluc3RhbmNlKHJvdXRlcjogUm91dGVyKTogTmV4dFJvdXRlciB7XG4gIGNvbnN0IHNjb3BlZFJvdXRlciA9IHJvdXRlciBhcyBhbnlcbiAgY29uc3QgaW5zdGFuY2UgPSB7fSBhcyBhbnlcblxuICBmb3IgKGNvbnN0IHByb3BlcnR5IG9mIHVybFByb3BlcnR5RmllbGRzKSB7XG4gICAgaWYgKHR5cGVvZiBzY29wZWRSb3V0ZXJbcHJvcGVydHldID09PSAnb2JqZWN0Jykge1xuICAgICAgaW5zdGFuY2VbcHJvcGVydHldID0gT2JqZWN0LmFzc2lnbihcbiAgICAgICAgQXJyYXkuaXNBcnJheShzY29wZWRSb3V0ZXJbcHJvcGVydHldKSA/IFtdIDoge30sXG4gICAgICAgIHNjb3BlZFJvdXRlcltwcm9wZXJ0eV1cbiAgICAgICkgLy8gbWFrZXMgc3VyZSBxdWVyeSBpcyBub3Qgc3RhdGVmdWxcbiAgICAgIGNvbnRpbnVlXG4gICAgfVxuXG4gICAgaW5zdGFuY2VbcHJvcGVydHldID0gc2NvcGVkUm91dGVyW3Byb3BlcnR5XVxuICB9XG5cbiAgLy8gRXZlbnRzIGlzIGEgc3RhdGljIHByb3BlcnR5IG9uIHRoZSByb3V0ZXIsIHRoZSByb3V0ZXIgZG9lc24ndCBoYXZlIHRvIGJlIGluaXRpYWxpemVkIHRvIHVzZSBpdFxuICBpbnN0YW5jZS5ldmVudHMgPSBSb3V0ZXIuZXZlbnRzXG5cbiAgY29yZU1ldGhvZEZpZWxkcy5mb3JFYWNoKChmaWVsZCkgPT4ge1xuICAgIGluc3RhbmNlW2ZpZWxkXSA9ICguLi5hcmdzOiBhbnlbXSkgPT4ge1xuICAgICAgcmV0dXJuIHNjb3BlZFJvdXRlcltmaWVsZF0oLi4uYXJncylcbiAgICB9XG4gIH0pXG5cbiAgcmV0dXJuIGluc3RhbmNlXG59XG4iXSwibmFtZXMiOlsiUm91dGVyIiwiY3JlYXRlUm91dGVyIiwibWFrZVB1YmxpY1JvdXRlckluc3RhbmNlIiwidXNlUm91dGVyIiwid2l0aFJvdXRlciIsInNpbmdsZXRvblJvdXRlciIsInJvdXRlciIsInJlYWR5Q2FsbGJhY2tzIiwicmVhZHkiLCJjYWxsYmFjayIsIndpbmRvdyIsInB1c2giLCJ1cmxQcm9wZXJ0eUZpZWxkcyIsInJvdXRlckV2ZW50cyIsImNvcmVNZXRob2RGaWVsZHMiLCJPYmplY3QiLCJkZWZpbmVQcm9wZXJ0eSIsImdldCIsImV2ZW50cyIsImdldFJvdXRlciIsIm1lc3NhZ2UiLCJFcnJvciIsImZvckVhY2giLCJmaWVsZCIsImFyZ3MiLCJldmVudCIsIm9uIiwiZXZlbnRGaWVsZCIsImNoYXJBdCIsInRvVXBwZXJDYXNlIiwic3Vic3RyaW5nIiwiX3NpbmdsZXRvblJvdXRlciIsImVyciIsImNvbnNvbGUiLCJlcnJvciIsImlzRXJyb3IiLCJzdGFjayIsIlJlYWN0IiwidXNlQ29udGV4dCIsIlJvdXRlckNvbnRleHQiLCJjYiIsInNjb3BlZFJvdXRlciIsImluc3RhbmNlIiwicHJvcGVydHkiLCJhc3NpZ24iLCJBcnJheSIsImlzQXJyYXkiXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(pages-dir-browser)/./node_modules/next/dist/client/router.js\n")); - -/***/ }), - -/***/ "(pages-dir-browser)/./node_modules/next/dist/client/script.js": -/*!*************************************************!*\ - !*** ./node_modules/next/dist/client/script.js ***! - \*************************************************/ -/***/ ((module, exports, __webpack_require__) => { - -"use strict"; -eval(__webpack_require__.ts("/* __next_internal_client_entry_do_not_use__ cjs */ \nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n default: function() {\n return _default;\n },\n handleClientScriptLoad: function() {\n return handleClientScriptLoad;\n },\n initScriptLoader: function() {\n return initScriptLoader;\n }\n});\nconst _interop_require_default = __webpack_require__(/*! @swc/helpers/_/_interop_require_default */ \"(pages-dir-browser)/./node_modules/@swc/helpers/esm/_interop_require_default.js\");\nconst _interop_require_wildcard = __webpack_require__(/*! @swc/helpers/_/_interop_require_wildcard */ \"(pages-dir-browser)/./node_modules/@swc/helpers/esm/_interop_require_wildcard.js\");\nconst _jsxruntime = __webpack_require__(/*! react/jsx-runtime */ \"(pages-dir-browser)/./node_modules/react/jsx-runtime.js\");\nconst _reactdom = /*#__PURE__*/ _interop_require_default._(__webpack_require__(/*! react-dom */ \"(pages-dir-browser)/./node_modules/react-dom/index.js\"));\nconst _react = /*#__PURE__*/ _interop_require_wildcard._(__webpack_require__(/*! react */ \"(pages-dir-browser)/./node_modules/react/index.js\"));\nconst _headmanagercontextsharedruntime = __webpack_require__(/*! ../shared/lib/head-manager-context.shared-runtime */ \"(pages-dir-browser)/./node_modules/next/dist/shared/lib/head-manager-context.shared-runtime.js\");\nconst _setattributesfromprops = __webpack_require__(/*! ./set-attributes-from-props */ \"(pages-dir-browser)/./node_modules/next/dist/client/set-attributes-from-props.js\");\nconst _requestidlecallback = __webpack_require__(/*! ./request-idle-callback */ \"(pages-dir-browser)/./node_modules/next/dist/client/request-idle-callback.js\");\nconst ScriptCache = new Map();\nconst LoadCache = new Set();\nconst insertStylesheets = (stylesheets)=>{\n // Case 1: Styles for afterInteractive/lazyOnload with appDir injected via handleClientScriptLoad\n //\n // Using ReactDOM.preinit to feature detect appDir and inject styles\n // Stylesheets might have already been loaded if initialized with Script component\n // Re-inject styles here to handle scripts loaded via handleClientScriptLoad\n // ReactDOM.preinit handles dedup and ensures the styles are loaded only once\n if (_reactdom.default.preinit) {\n stylesheets.forEach((stylesheet)=>{\n _reactdom.default.preinit(stylesheet, {\n as: 'style'\n });\n });\n return;\n }\n // Case 2: Styles for afterInteractive/lazyOnload with pages injected via handleClientScriptLoad\n //\n // We use this function to load styles when appdir is not detected\n // TODO: Use React float APIs to load styles once available for pages dir\n if (true) {\n let head = document.head;\n stylesheets.forEach((stylesheet)=>{\n let link = document.createElement('link');\n link.type = 'text/css';\n link.rel = 'stylesheet';\n link.href = stylesheet;\n head.appendChild(link);\n });\n }\n};\nconst loadScript = (props)=>{\n const { src, id, onLoad = ()=>{}, onReady = null, dangerouslySetInnerHTML, children = '', strategy = 'afterInteractive', onError, stylesheets } = props;\n const cacheKey = id || src;\n // Script has already loaded\n if (cacheKey && LoadCache.has(cacheKey)) {\n return;\n }\n // Contents of this script are already loading/loaded\n if (ScriptCache.has(src)) {\n LoadCache.add(cacheKey);\n // It is possible that multiple `next/script` components all have same \"src\", but has different \"onLoad\"\n // This is to make sure the same remote script will only load once, but \"onLoad\" are executed in order\n ScriptCache.get(src).then(onLoad, onError);\n return;\n }\n /** Execute after the script first loaded */ const afterLoad = ()=>{\n // Run onReady for the first time after load event\n if (onReady) {\n onReady();\n }\n // add cacheKey to LoadCache when load successfully\n LoadCache.add(cacheKey);\n };\n const el = document.createElement('script');\n const loadPromise = new Promise((resolve, reject)=>{\n el.addEventListener('load', function(e) {\n resolve();\n if (onLoad) {\n onLoad.call(this, e);\n }\n afterLoad();\n });\n el.addEventListener('error', function(e) {\n reject(e);\n });\n }).catch(function(e) {\n if (onError) {\n onError(e);\n }\n });\n if (dangerouslySetInnerHTML) {\n // Casting since lib.dom.d.ts doesn't have TrustedHTML yet.\n el.innerHTML = dangerouslySetInnerHTML.__html || '';\n afterLoad();\n } else if (children) {\n el.textContent = typeof children === 'string' ? children : Array.isArray(children) ? children.join('') : '';\n afterLoad();\n } else if (src) {\n el.src = src;\n // do not add cacheKey into LoadCache for remote script here\n // cacheKey will be added to LoadCache when it is actually loaded (see loadPromise above)\n ScriptCache.set(src, loadPromise);\n }\n (0, _setattributesfromprops.setAttributesFromProps)(el, props);\n if (strategy === 'worker') {\n el.setAttribute('type', 'text/partytown');\n }\n el.setAttribute('data-nscript', strategy);\n // Load styles associated with this script\n if (stylesheets) {\n insertStylesheets(stylesheets);\n }\n document.body.appendChild(el);\n};\nfunction handleClientScriptLoad(props) {\n const { strategy = 'afterInteractive' } = props;\n if (strategy === 'lazyOnload') {\n window.addEventListener('load', ()=>{\n (0, _requestidlecallback.requestIdleCallback)(()=>loadScript(props));\n });\n } else {\n loadScript(props);\n }\n}\nfunction loadLazyScript(props) {\n if (document.readyState === 'complete') {\n (0, _requestidlecallback.requestIdleCallback)(()=>loadScript(props));\n } else {\n window.addEventListener('load', ()=>{\n (0, _requestidlecallback.requestIdleCallback)(()=>loadScript(props));\n });\n }\n}\nfunction addBeforeInteractiveToCache() {\n const scripts = [\n ...document.querySelectorAll('[data-nscript=\"beforeInteractive\"]'),\n ...document.querySelectorAll('[data-nscript=\"beforePageRender\"]')\n ];\n scripts.forEach((script)=>{\n const cacheKey = script.id || script.getAttribute('src');\n LoadCache.add(cacheKey);\n });\n}\nfunction initScriptLoader(scriptLoaderItems) {\n scriptLoaderItems.forEach(handleClientScriptLoad);\n addBeforeInteractiveToCache();\n}\n/**\n * Load a third-party scripts in an optimized way.\n *\n * Read more: [Next.js Docs: `next/script`](https://nextjs.org/docs/app/api-reference/components/script)\n */ function Script(props) {\n const { id, src = '', onLoad = ()=>{}, onReady = null, strategy = 'afterInteractive', onError, stylesheets, ...restProps } = props;\n // Context is available only during SSR\n let { updateScripts, scripts, getIsSsr, appDir, nonce } = (0, _react.useContext)(_headmanagercontextsharedruntime.HeadManagerContext);\n // if a nonce is explicitly passed to the script tag, favor that over the automatic handling\n nonce = restProps.nonce || nonce;\n /**\n * - First mount:\n * 1. The useEffect for onReady executes\n * 2. hasOnReadyEffectCalled.current is false, but the script hasn't loaded yet (not in LoadCache)\n * onReady is skipped, set hasOnReadyEffectCalled.current to true\n * 3. The useEffect for loadScript executes\n * 4. hasLoadScriptEffectCalled.current is false, loadScript executes\n * Once the script is loaded, the onLoad and onReady will be called by then\n * [If strict mode is enabled / is wrapped in <OffScreen /> component]\n * 5. The useEffect for onReady executes again\n * 6. hasOnReadyEffectCalled.current is true, so entire effect is skipped\n * 7. The useEffect for loadScript executes again\n * 8. hasLoadScriptEffectCalled.current is true, so entire effect is skipped\n *\n * - Second mount:\n * 1. The useEffect for onReady executes\n * 2. hasOnReadyEffectCalled.current is false, but the script has already loaded (found in LoadCache)\n * onReady is called, set hasOnReadyEffectCalled.current to true\n * 3. The useEffect for loadScript executes\n * 4. The script is already loaded, loadScript bails out\n * [If strict mode is enabled / is wrapped in <OffScreen /> component]\n * 5. The useEffect for onReady executes again\n * 6. hasOnReadyEffectCalled.current is true, so entire effect is skipped\n * 7. The useEffect for loadScript executes again\n * 8. hasLoadScriptEffectCalled.current is true, so entire effect is skipped\n */ const hasOnReadyEffectCalled = (0, _react.useRef)(false);\n (0, _react.useEffect)(()=>{\n const cacheKey = id || src;\n if (!hasOnReadyEffectCalled.current) {\n // Run onReady if script has loaded before but component is re-mounted\n if (onReady && cacheKey && LoadCache.has(cacheKey)) {\n onReady();\n }\n hasOnReadyEffectCalled.current = true;\n }\n }, [\n onReady,\n id,\n src\n ]);\n const hasLoadScriptEffectCalled = (0, _react.useRef)(false);\n (0, _react.useEffect)(()=>{\n if (!hasLoadScriptEffectCalled.current) {\n if (strategy === 'afterInteractive') {\n loadScript(props);\n } else if (strategy === 'lazyOnload') {\n loadLazyScript(props);\n }\n hasLoadScriptEffectCalled.current = true;\n }\n }, [\n props,\n strategy\n ]);\n if (strategy === 'beforeInteractive' || strategy === 'worker') {\n if (updateScripts) {\n scripts[strategy] = (scripts[strategy] || []).concat([\n {\n id,\n src,\n onLoad,\n onReady,\n onError,\n ...restProps,\n nonce\n }\n ]);\n updateScripts(scripts);\n } else if (getIsSsr && getIsSsr()) {\n // Script has already loaded during SSR\n LoadCache.add(id || src);\n } else if (getIsSsr && !getIsSsr()) {\n loadScript({\n ...props,\n nonce\n });\n }\n }\n // For the app directory, we need React Float to preload these scripts.\n if (appDir) {\n // Injecting stylesheets here handles beforeInteractive and worker scripts correctly\n // For other strategies injecting here ensures correct stylesheet order\n // ReactDOM.preinit handles loading the styles in the correct order,\n // also ensures the stylesheet is loaded only once and in a consistent manner\n //\n // Case 1: Styles for beforeInteractive/worker with appDir - handled here\n // Case 2: Styles for beforeInteractive/worker with pages dir - Not handled yet\n // Case 3: Styles for afterInteractive/lazyOnload with appDir - handled here\n // Case 4: Styles for afterInteractive/lazyOnload with pages dir - handled in insertStylesheets function\n if (stylesheets) {\n stylesheets.forEach((styleSrc)=>{\n _reactdom.default.preinit(styleSrc, {\n as: 'style'\n });\n });\n }\n // Before interactive scripts need to be loaded by Next.js' runtime instead\n // of native <script> tags, because they no longer have `defer`.\n if (strategy === 'beforeInteractive') {\n if (!src) {\n // For inlined scripts, we put the content in `children`.\n if (restProps.dangerouslySetInnerHTML) {\n // Casting since lib.dom.d.ts doesn't have TrustedHTML yet.\n restProps.children = restProps.dangerouslySetInnerHTML.__html;\n delete restProps.dangerouslySetInnerHTML;\n }\n return /*#__PURE__*/ (0, _jsxruntime.jsx)(\"script\", {\n nonce: nonce,\n dangerouslySetInnerHTML: {\n __html: \"(self.__next_s=self.__next_s||[]).push(\" + JSON.stringify([\n 0,\n {\n ...restProps,\n id\n }\n ]) + \")\"\n }\n });\n } else {\n // @ts-ignore\n _reactdom.default.preload(src, restProps.integrity ? {\n as: 'script',\n integrity: restProps.integrity,\n nonce,\n crossOrigin: restProps.crossOrigin\n } : {\n as: 'script',\n nonce,\n crossOrigin: restProps.crossOrigin\n });\n return /*#__PURE__*/ (0, _jsxruntime.jsx)(\"script\", {\n nonce: nonce,\n dangerouslySetInnerHTML: {\n __html: \"(self.__next_s=self.__next_s||[]).push(\" + JSON.stringify([\n src,\n {\n ...restProps,\n id\n }\n ]) + \")\"\n }\n });\n }\n } else if (strategy === 'afterInteractive') {\n if (src) {\n // @ts-ignore\n _reactdom.default.preload(src, restProps.integrity ? {\n as: 'script',\n integrity: restProps.integrity,\n nonce,\n crossOrigin: restProps.crossOrigin\n } : {\n as: 'script',\n nonce,\n crossOrigin: restProps.crossOrigin\n });\n }\n }\n }\n return null;\n}\n_c = Script;\nObject.defineProperty(Script, '__nextScript', {\n value: true\n});\nconst _default = Script;\nif ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=script.js.map\nvar _c;\n$RefreshReg$(_c, \"Script\");\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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvY2xpZW50L3NjcmlwdC5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7SUFnWUEsT0FBcUI7ZUFBckI7O0lBcE9nQkEsc0JBQXNCO2VBQXRCQTs7SUFnQ0FDLGdCQUFnQjtlQUFoQkE7Ozs7OzsrRUExTEs7NkVBQzBDOzZEQUU1QjtvREFDSTtpREFDSDtBQUVwQyxNQUFNQyxjQUFjLElBQUlDO0FBQ3hCLE1BQU1DLFlBQVksSUFBSUM7QUFpQnRCLE1BQU1DLG9CQUFvQixDQUFDQztJQUN6QixpR0FBaUc7SUFDakcsRUFBRTtJQUNGLG9FQUFvRTtJQUNwRSxrRkFBa0Y7SUFDbEYsNEVBQTRFO0lBQzVFLDZFQUE2RTtJQUM3RSxJQUFJQyxVQUFBQSxPQUFRLENBQUNDLE9BQU8sRUFBRTtRQUNwQkYsWUFBWUcsT0FBTyxDQUFDLENBQUNDO1lBQ25CSCxVQUFBQSxPQUFRLENBQUNDLE9BQU8sQ0FBQ0UsWUFBWTtnQkFBRUMsSUFBSTtZQUFRO1FBQzdDO1FBRUE7SUFDRjtJQUVBLGdHQUFnRztJQUNoRyxFQUFFO0lBQ0Ysa0VBQWtFO0lBQ2xFLHlFQUF5RTtJQUN6RSxJQUFJLElBQTZCLEVBQUU7UUFDakMsSUFBSUUsT0FBT0MsU0FBU0QsSUFBSTtRQUN4QlAsWUFBWUcsT0FBTyxDQUFDLENBQUNDO1lBQ25CLElBQUlLLE9BQU9ELFNBQVNFLGFBQWEsQ0FBQztZQUVsQ0QsS0FBS0UsSUFBSSxHQUFHO1lBQ1pGLEtBQUtHLEdBQUcsR0FBRztZQUNYSCxLQUFLSSxJQUFJLEdBQUdUO1lBRVpHLEtBQUtPLFdBQVcsQ0FBQ0w7UUFDbkI7SUFDRjtBQUNGO0FBRUEsTUFBTU0sYUFBYSxDQUFDQztJQUNsQixNQUFNLEVBQ0pDLEdBQUcsRUFDSEMsRUFBRSxFQUNGQyxTQUFTLEtBQU8sQ0FBQyxFQUNqQkMsVUFBVSxJQUFJLEVBQ2RDLHVCQUF1QixFQUN2QkMsV0FBVyxFQUFFLEVBQ2JDLFdBQVcs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QVVrQixXQUFXO2dCQUNwQyxJQUNBO29CQUFFekUsSUFBSTtvQkFBVTJEO29CQUFPYyxhQUFhbEIsVUFBVWtCLFdBQVc7Z0JBQUM7WUFFbEU7UUFDRjtJQUNGO0lBRUEsT0FBTztBQUNUO0tBdExTbkI7QUF3TFRvQixPQUFPQyxjQUFjLENBQUNyQixRQUFRLGdCQUFnQjtJQUFFc0IsT0FBTztBQUFLO01BRTVELFdBQWV0QiIsInNvdXJjZXMiOlsiRDpcXHNyY1xcY2xpZW50XFxzY3JpcHQudHN4Il0sInNvdXJjZXNDb250ZW50IjpbIid1c2UgY2xpZW50J1xuXG5pbXBvcnQgUmVhY3RET00gZnJvbSAncmVhY3QtZG9tJ1xuaW1wb3J0IFJlYWN0LCB7IHVzZUVmZmVjdCwgdXNlQ29udGV4dCwgdXNlUmVmLCB0eXBlIEpTWCB9IGZyb20gJ3JlYWN0J1xuaW1wb3J0IHR5cGUgeyBTY3JpcHRIVE1MQXR0cmlidXRlcyB9IGZyb20gJ3JlYWN0J1xuaW1wb3J0IHsgSGVhZE1hbmFnZXJDb250ZXh0IH0gZnJvbSAnLi4vc2hhcmVkL2xpYi9oZWFkLW1hbmFnZXItY29udGV4dC5zaGFyZWQtcnVudGltZSdcbmltcG9ydCB7IHNldEF0dHJpYnV0ZXNGcm9tUHJvcHMgfSBmcm9tICcuL3NldC1hdHRyaWJ1dGVzLWZyb20tcHJvcHMnXG5pbXBvcnQgeyByZXF1ZXN0SWRsZUNhbGxiYWNrIH0gZnJvbSAnLi9yZXF1ZXN0LWlkbGUtY2FsbGJhY2snXG5cbmNvbnN0IFNjcmlwdENhY2hlID0gbmV3IE1hcCgpXG5jb25zdCBMb2FkQ2FjaGUgPSBuZXcgU2V0KClcblxuZXhwb3J0IGludGVyZmFjZSBTY3JpcHRQcm9wcyBleHRlbmRzIFNjcmlwdEhUTUxBdHRyaWJ1dGVzPEhUTUxTY3JpcHRFbGVtZW50PiB7XG4gIHN0cmF0ZWd5PzogJ2FmdGVySW50ZXJhY3RpdmUnIHwgJ2xhenlPbmxvYWQnIHwgJ2JlZm9yZUludGVyYWN0aXZlJyB8ICd3b3JrZXInXG4gIGlkPzogc3RyaW5nXG4gIG9uTG9hZD86IChlOiBhbnkpID0+IHZvaWRcbiAgb25SZWFkeT86ICgpID0+IHZvaWQgfCBudWxsXG4gIG9uRXJyb3I/OiAoZTogYW55KSA9PiB2b2lkXG4gIGNoaWxkcmVuPzogUmVhY3QuUmVhY3ROb2RlXG4gIHN0eWxlc2hlZXRzPzogc3RyaW5nW11cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgYFNjcmlwdFByb3BzYCBpbnN0ZWFkLlxuICovXG5leHBvcnQgdHlwZSBQcm9wcyA9IFNjcmlwdFByb3BzXG5cbmNvbnN0IGluc2VydFN0eWxlc2hlZXRzID0gKHN0eWxlc2hlZXRzOiBzdHJpbmdbXSkgPT4ge1xuICAvLyBDYXNlIDE6IFN0eWxlcyBmb3IgYWZ0ZXJJbnRlcmFjdGl2ZS9sYXp5T25sb2FkIHdpdGggYXBwRGlyIGluamVjdGVkIHZpYSBoYW5kbGVDbGllbnRTY3JpcHRMb2FkXG4gIC8vXG4gIC8vIFVzaW5nIFJlYWN0RE9NLnByZWluaXQgdG8gZmVhdHVyZSBkZXRlY3QgYXBwRGlyIGFuZCBpbmplY3Qgc3R5bGVzXG4gIC8vIFN0eWxlc2hlZXRzIG1pZ2h0IGhhdmUgYWxyZWFkeSBiZWVuIGxvYWRlZCBpZiBpbml0aWFsaXplZCB3aXRoIFNjcmlwdCBjb21wb25lbnRcbiAgLy8gUmUtaW5qZWN0IHN0eWxlcyBoZXJlIHRvIGhhbmRsZSBzY3JpcHRzIGxvYWRlZCB2aWEgaGFuZGxlQ2xpZW50U2NyaXB0TG9hZFxuICAvLyBSZWFjdERPTS5wcmVpbml0IGhhbmRsZXMgZGVkdXAgYW5kIGVuc3VyZXMgdGhlIHN0eWxlcyBhcmUgbG9hZGVkIG9ubHkgb25jZVxuICBpZiAoUmVhY3RET00ucHJlaW5pdCkge1xuICAgIHN0eWxlc2hlZXRzLmZvckVhY2goKHN0eWxlc2hlZXQ6IHN0cmluZykgPT4ge1xuICAgICAgUmVhY3RET00ucHJlaW5pdChzdHlsZXNoZWV0LCB7IGFzOiAnc3R5bGUnIH0pXG4gICAgfSlcblxuICAgIHJldHVyblxuICB9XG5cbiAgLy8gQ2FzZSAyOiBTdHlsZXMgZm9yIGFmdGVySW50ZXJhY3RpdmUvbGF6eU9ubG9hZCB3aXRoIHBhZ2VzIGluamVjdGVkIHZpYSBoYW5kbGVDbGllbnRTY3JpcHRMb2FkXG4gIC8vXG4gIC8vIFdlIHVzZSB0aGlzIGZ1bmN0aW9uIHRvIGxvYWQgc3R5bGVzIHdoZW4gYXBwZGlyIGlzIG5vdCBkZXRlY3RlZFxuICAvLyBUT0RPOiBVc2UgUmVhY3QgZmxvYXQgQVBJcyB0byBsb2FkIHN0eWxlcyBvbmNlIGF2YWlsYWJsZSBmb3IgcGFnZXMgZGlyXG4gIGlmICh0eXBlb2Ygd2luZG93ICE9PSAndW5kZWZpbmVkJykge1xuICAgIGxldCBoZWFkID0gZG9jdW1lbnQuaGVhZFxuICAgIHN0eWxlc2hlZXRzLmZvckVhY2goKHN0eWxlc2hlZXQ6IHN0cmluZykgPT4ge1xuICAgICAgbGV0IGxpbmsgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdsaW5rJylcblxuICAgICAgbGluay50eXBlID0gJ3RleHQvY3NzJ1xuICAgICAgbGluay5yZWwgPSAnc3R5bGVzaGVldCdcbiAgICAgIGxpbmsuaHJlZiA9IHN0eWxlc2hlZXRcblxuICAgICAgaGVhZC5hcHBlbmRDaGlsZChsaW5rKVxuICAgIH0pXG4gIH1cbn1cblxuY29uc3QgbG9hZFNjcmlwdCA9IChwcm9wczogU2NyaXB0UHJvcHMpOiB2b2lkID0+IHtcbiAgY29uc3Qge1xuICAgIHNyYyxcbiAgICBpZCxcbiAgICBvbkxvYWQgPSAoKSA9PiB7fSxcbiAgICBvblJlYWR5ID0gbnVsbCxcbiAgICBkYW5nZXJvdXNseVNldElubmVySFRNTCxcbiAgICBjaGlsZHJlbiA9ICcnLFxuICAgIHN0cmF0ZWd5ID0gJ2FmdGVySW50ZXJhY3RpdmUnLFxuICAgIG9uRXJyb3IsXG4gICAgc3R5bGVzaGVldHMsXG4gIH0gPSBwcm9wc1xuXG4gIGNvbnN0IGNhY2hlS2V5ID0gaWQgfHwgc3JjXG5cbiAgLy8gU2NyaXB0IGhhcyBhbHJlYWR5IGxvYWRlZFxuICBpZiAoY2FjaGVLZXkgJiYgTG9hZENhY2hlLmhhcyhjYWNoZUtleSkpIHtcbiAgICByZXR1cm5cbiAgfVxuXG4gIC8vIENvbnRlbnRzIG9mIHRoaXMgc2NyaXB0IGFyZSBhbHJlYWR5IGxvYWRpbmcvbG9hZGVkXG4gIGlmIChTY3JpcHRDYWNoZS5oYXMoc3JjKSkge1xuICAgIExvYWRDYWNoZS5hZGQoY2FjaGVLZXkpXG4gICAgLy8gSXQgaXMgcG9zc2libGUgdGhhdCBtdWx0aXBsZSBgbmV4dC9zY3JpcHRgIGNvbXBvbmVudHMgYWxsIGhhdmUgc2FtZSBcInNyY1wiLCBidXQgaGFzIGRpZmZlcmVudCBcIm9uTG9hZFwiXG4gICAgLy8gVGhpcyBpcyB0byBtYWtlIHN1cmUgdGhlIHNhbWUgcmVtb3RlIHNjcmlwdCB3aWxsIG9ubHkgbG9hZCBvbmNlLCBidXQgXCJvbkxvYWRcIiBhcmUgZXhlY3V0ZWQgaW4gb3JkZXJcbiAgICBTY3JpcHRDYWNoZS5nZXQoc3JjKS50aGVuKG9uTG9hZCwgb25FcnJvcilcbiAgICByZXR1cm5cbiAgfVxuXG4gIC8qKiBFeGVjdXRlIGFmdGVyIHRoZSBzY3JpcHQgZmlyc3QgbG9hZGVkICovXG4gIGNvbnN0IGFmdGVyTG9hZCA9ICgpID0+IHtcbiAgICAvLyBSdW4gb25SZWFkeSBmb3IgdGhlIGZpcnN0IHRpbWUgYWZ0ZXIgbG9hZCBldmVudFxuICAgIGlmIChvblJlYWR5KSB7XG4gICAgICBvblJlYWR5KClcbiAgICB9XG4gICAgLy8gYWRkIGNhY2hlS2V5IHRvIExvYWRDYWNoZSB3aGVuIGxvYWQgc3VjY2Vzc2Z1bGx5XG4gICAgTG9hZENhY2hlLmFkZChjYWNoZUtleSlcbiAgfVxuXG4gIGNvbnN0IGVsID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc2NyaXB0JylcblxuICBjb25zdCBsb2FkUHJvbWlzZSA9IG5ldyBQcm9taXNlPHZvaWQ+KChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICBlbC5hZGRFdmVudExpc3RlbmVyKCdsb2FkJywgZnVuY3Rpb24gKGUpIHtcbiAgICAgIHJlc29sdmUoKVxuICAgICAgaWYgKG9uTG9hZCkge1xuICAgICAgICBvbkxvYWQuY2FsbCh0aGlzLCBlKVxuICAgICAgfVxuICAgICAgYWZ0ZXJMb2FkKClcbiAgICB9KVxuICAgIGVsLmFkZEV2ZW50TGlzdGVuZXIoJ2Vycm9yJywgZnVuY3Rpb24gKGUpIHtcbiAgICAgIHJlamVjdChlKVxuICAgIH0pXG4gIH0pLmNhdGNoKGZ1bmN0aW9uIChlKSB7XG4gICAgaWYgKG9uRXJyb3IpIHtcbiAgICAgIG9uRXJyb3IoZSlcbiAgICB9XG4gIH0pXG5cbiAgaWYgKGRhbmdlcm91c2x5U2V0SW5uZXJIVE1MKSB7XG4gICAgLy8gQ2FzdGluZyBzaW5jZSBsaWIuZG9tLmQudHMgZG9lc24ndCBoYXZlIFRydXN0ZWRIVE1MIHlldC5cbiAgICBlbC5pbm5lckhUTUwgPSAoZGFuZ2Vyb3VzbHlTZXRJbm5lckhUTUwuX19odG1sIGFzIHN0cmluZykgfHwgJydcblxuICAgIGFmdGVyTG9hZCgpXG4gIH0gZWxzZSBpZiAoY2hpbGRyZW4pIHtcbiAgICBlbC50ZXh0Q29udGVudCA9XG4gICAgICB0eXBlb2YgY2hpbGRyZW4gPT09ICdzdHJpbmcnXG4gICAgICAgID8gY2hpbGRyZW5cbiAgICAgICAgOiBBcnJheS5pc0FycmF5KGNoaWxkcmVuKVxuICAgICAgICAgID8gY2hpbGRyZW4uam9pbignJylcbiAgICAgICAgICA6ICcnXG5cbiAgICBhZnRlckxvYWQoKVxuICB9IGVsc2UgaWYgKHNyYykge1xuICAgIGVsLnNyYyA9IHNyY1xuICAgIC8vIGRvIG5vdCBhZGQgY2FjaGVLZXkgaW50byBMb2FkQ2FjaGUgZm9yIHJlbW90ZSBzY3JpcHQgaGVyZVxuICAgIC8vIGNhY2hlS2V5IHdpbGwgYmUgYWRkZWQgdG8gTG9hZENhY2hlIHdoZW4gaXQgaXMgYWN0dWFsbHkgbG9hZGVkIChzZWUgbG9hZFByb21pc2UgYWJvdmUpXG5cbiAgICBTY3JpcHRDYWNoZS5zZXQoc3JjLCBsb2FkUHJvbWlzZSlcbiAgfVxuXG4gIHNldEF0dHJpYnV0ZXNGcm9tUHJvcHMoZWwsIHByb3BzKVxuXG4gIGlmIChzdHJhdGVneSA9PT0gJ3dvcmtlcicpIHtcbiAgICBlbC5zZXRBdHRyaWJ1dGUoJ3R5cGUnLCAndGV4dC9wYXJ0eXRvd24nKVxuICB9XG5cbiAgZWwuc2V0QXR0cmlidXRlKCdkYXRhLW5zY3JpcHQnLCBzdHJhdGVneSlcblxuICAvLyBMb2FkIHN0eWxlcyBhc3NvY2lhdGVkIHdpdGggdGhpcyBzY3JpcHRcbiAgaWYgKHN0eWxlc2hlZXRzKSB7XG4gICAgaW5zZXJ0U3R5bGVzaGVldHMoc3R5bGVzaGVldHMpXG4gIH1cblxuICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGVsKVxufVxuXG5leHBvcnQgZnVuY3Rpb24gaGFuZGxlQ2xpZW50U2NyaXB0TG9hZChwcm9wczogU2NyaXB0UHJvcHMpIHtcbiAgY29uc3QgeyBzdHJhdGVneSA9ICdhZnRlckludGVyYWN0aXZlJyB9ID0gcHJvcHNcbiAgaWYgKHN0cmF0ZWd5ID09PSAnbGF6eU9ubG9hZCcpIHtcbiAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcignbG9hZCcsICgpID0+IHtcbiAgICAgIHJlcXVlc3RJZGxlQ2FsbGJhY2soKCkgPT4gbG9hZFNjcmlwdChwcm9wcykpXG4gICAgfSlcbiAgfSBlbHNlIHtcbiAgICBsb2FkU2NyaXB0KHByb3BzKVxuICB9XG59XG5cbmZ1bmN0aW9uIGxvYWRMYXp5U2NyaXB0KHByb3BzOiBTY3JpcHRQcm9wcykge1xuICBpZiAoZG9jdW1lbnQucmVhZHlTdGF0ZSA9PT0gJ2NvbXBsZXRlJykge1xuICAgIHJlcXVlc3RJZGxlQ2FsbGJhY2soKCkgPT4gbG9hZFNjcmlwdChwcm9wcykpXG4gIH0gZWxzZSB7XG4gICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ2xvYWQnLCAoKSA9PiB7XG4gICAgICByZXF1ZXN0SWRsZUNhbGxiYWNrKCgpID0+IGxvYWRTY3JpcHQocHJvcHMpKVxuICAgIH0pXG4gIH1cbn1cblxuZnVuY3Rpb24gYWRkQmVmb3JlSW50ZXJhY3RpdmVUb0NhY2hlKCkge1xuICBjb25zdCBzY3JpcHRzID0gW1xuICAgIC4uLmRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJ1tkYXRhLW5zY3JpcHQ9XCJiZWZvcmVJbnRlcmFjdGl2ZVwiXScpLFxuICAgIC4uLmRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJ1tkYXRhLW5zY3JpcHQ9XCJiZWZvcmVQYWdlUmVuZGVyXCJdJyksXG4gIF1cbiAgc2NyaXB0cy5mb3JFYWNoKChzY3JpcHQpID0+IHtcbiAgICBjb25zdCBjYWNoZUtleSA9IHNjcmlwdC5pZCB8fCBzY3JpcHQuZ2V0QXR0cmlidXRlKCdzcmMnKVxuICAgIExvYWRDYWNoZS5hZGQoY2FjaGVLZXkpXG4gIH0pXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpbml0U2NyaXB0TG9hZGVyKHNjcmlwdExvYWRlckl0ZW1zOiBTY3JpcHRQcm9wc1tdKSB7XG4gIHNjcmlwdExvYWRlckl0ZW1zLmZvckVhY2goaGFuZGxlQ2xpZW50U2NyaXB0TG9hZClcbiAgYWRkQmVmb3JlSW50ZXJhY3RpdmVUb0NhY2hlKClcbn1cblxuLyoqXG4gKiBMb2FkIGEgdGhpcmQtcGFydHkgc2NyaXB0cyBpbiBhbiBvcHRpbWl6ZWQgd2F5LlxuICpcbiAqIFJlYWQgbW9yZTogW05leHQuanMgRG9jczogYG5leHQvc2NyaXB0YF0oaHR0cHM6Ly9uZXh0anMub3JnL2RvY3MvYXBwL2FwaS1yZWZlcmVuY2UvY29tcG9uZW50cy9zY3JpcHQpXG4gKi9cbmZ1bmN0aW9uIFNjcmlwdChwcm9wczogU2NyaXB0UHJvcHMpOiBKU1guRWxlbWVudCB8IG51bGwge1xuICBjb25zdCB7XG4gICAgaWQsXG4gICAgc3JjID0gJycsXG4gICAgb25Mb2FkID0gKCkgPT4ge30sXG4gICAgb25SZWFkeSA9IG51bGwsXG4gICAgc3RyYXRlZ3kgPSAnYWZ0ZXJJbnRlcmFjdGl2ZScsXG4gICAgb25FcnJvcixcbiAgICBzdHlsZXNoZWV0cyxcbiAgICAuLi5yZXN0UHJvcHNcbiAgfSA9IHByb3BzXG5cbiAgLy8gQ29udGV4dCBpcyBhdmFpbGFibGUgb25seSBkdXJpbmcgU1NSXG4gIGxldCB7IHVwZGF0ZVNjcmlwdHMsIHNjcmlwdHMsIGdldElzU3NyLCBhcHBEaXIsIG5vbmNlIH0gPVxuICAgIHVzZUNvbnRleHQoSGVhZE1hbmFnZXJDb250ZXh0KVxuXG4gIC8vIGlmIGEgbm9uY2UgaXMgZXhwbGljaXRseSBwYXNzZWQgdG8gdGhlIHNjcmlwdCB0YWcsIGZhdm9yIHRoYXQgb3ZlciB0aGUgYXV0b21hdGljIGhhbmRsaW5nXG4gIG5vbmNlID0gcmVzdFByb3BzLm5vbmNlIHx8IG5vbmNlXG5cbiAgLyoqXG4gICAqIC0gRmlyc3QgbW91bnQ6XG4gICAqICAgMS4gVGhlIHVzZUVmZmVjdCBmb3Igb25SZWFkeSBleGVjdXRlc1xuICAgKiAgIDIuIGhhc09uUmVhZHlFZmZlY3RDYWxsZWQuY3VycmVudCBpcyBmYWxzZSwgYnV0IHRoZSBzY3JpcHQgaGFzbid0IGxvYWRlZCB5ZXQgKG5vdCBpbiBMb2FkQ2FjaGUpXG4gICAqICAgICAgb25SZWFkeSBpcyBza2lwcGVkLCBzZXQgaGFzT25SZWFkeUVmZmVjdENhbGxlZC5jdXJyZW50IHRvIHRydWVcbiAgICogICAzLiBUaGUgdXNlRWZmZWN0IGZvciBsb2FkU2NyaXB0IGV4ZWN1dGVzXG4gICAqICAgNC4gaGFzTG9hZFNjcmlwdEVmZmVjdENhbGxlZC5jdXJyZW50IGlzIGZhbHNlLCBsb2FkU2NyaXB0IGV4ZWN1dGVzXG4gICAqICAgICAgT25jZSB0aGUgc2NyaXB0IGlzIGxvYWRlZCwgdGhlIG9uTG9hZCBhbmQgb25SZWFkeSB3aWxsIGJlIGNhbGxlZCBieSB0aGVuXG4gICAqICAgW0lmIHN0cmljdCBtb2RlIGlzIGVuYWJsZWQgLyBpcyB3cmFwcGVkIGluIDxPZmZTY3JlZW4gLz4gY29tcG9uZW50XVxuICAgKiAgIDUuIFRoZSB1c2VFZmZlY3QgZm9yIG9uUmVhZHkgZXhlY3V0ZXMgYWdhaW5cbiAgICogICA2LiBoYXNPblJlYWR5RWZmZWN0Q2FsbGVkLmN1cnJlbnQgaXMgdHJ1ZSwgc28gZW50aXJlIGVmZmVjdCBpcyBza2lwcGVkXG4gICAqICAgNy4gVGhlIHVzZUVmZmVjdCBmb3IgbG9hZFNjcmlwdCBleGVjdXRlcyBhZ2FpblxuICAgKiAgIDguIGhhc0xvYWRTY3JpcHRFZmZlY3RDYWxsZWQuY3VycmVudCBpcyB0cnVlLCBzbyBlbnRpcmUgZWZmZWN0IGlzIHNraXBwZWRcbiAgICpcbiAgICogLSBTZWNvbmQgbW91bnQ6XG4gICAqICAgMS4gVGhlIHVzZUVmZmVjdCBmb3Igb25SZWFkeSBleGVjdXRlc1xuICAgKiAgIDIuIGhhc09uUmVhZHlFZmZlY3RDYWxsZWQuY3VycmVudCBpcyBmYWxzZSwgYnV0IHRoZSBzY3JpcHQgaGFzIGFscmVhZHkgbG9hZGVkIChmb3VuZCBpbiBMb2FkQ2FjaGUpXG4gICAqICAgICAgb25SZWFkeSBpcyBjYWxsZWQsIHNldCBoYXNPblJlYWR5RWZmZWN0Q2FsbGVkLmN1cnJlbnQgdG8gdHJ1ZVxuICAgKiAgIDMuIFRoZSB1c2VFZmZlY3QgZm9yIGxvYWRTY3JpcHQgZXhlY3V0ZXNcbiAgICogICA0LiBUaGUgc2NyaXB0IGlzIGFscmVhZHkgbG9hZGVkLCBsb2FkU2NyaXB0IGJhaWxzIG91dFxuICAgKiAgIFtJZiBzdHJpY3QgbW9kZSBpcyBlbmFibGVkIC8gaXMgd3JhcHBlZCBpbiA8T2ZmU2NyZWVuIC8+IGNvbXBvbmVudF1cbiAgICogICA1LiBUaGUgdXNlRWZmZWN0IGZvciBvblJlYWR5IGV4ZWN1dGVzIGFnYWluXG4gICAqICAgNi4gaGFzT25SZWFkeUVmZmVjdENhbGxlZC5jdXJyZW50IGlzIHRydWUsIHNvIGVudGlyZSBlZmZlY3QgaXMgc2tpcHBlZFxuICAgKiAgIDcuIFRoZSB1c2VFZmZlY3QgZm9yIGxvYWRTY3JpcHQgZXhlY3V0ZXMgYWdhaW5cbiAgICogICA4LiBoYXNMb2FkU2NyaXB0RWZmZWN0Q2FsbGVkLmN1cnJlbnQgaXMgdHJ1ZSwgc28gZW50aXJlIGVmZmVjdCBpcyBza2lwcGVkXG4gICAqL1xuICBjb25zdCBoYXNPblJlYWR5RWZmZWN0Q2FsbGVkID0gdXNlUmVmKGZhbHNlKVxuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgY29uc3QgY2FjaGVLZXkgPSBpZCB8fCBzcmNcbiAgICBpZiAoIWhhc09uUmVhZHlFZmZlY3RDYWxsZWQuY3VycmVudCkge1xuICAgICAgLy8gUnVuIG9uUmVhZHkgaWYgc2NyaXB0IGhhcyBsb2FkZWQgYmVmb3JlIGJ1dCBjb21wb25lbnQgaXMgcmUtbW91bnRlZFxuICAgICAgaWYgKG9uUmVhZHkgJiYgY2FjaGVLZXkgJiYgTG9hZENhY2hlLmhhcyhjYWNoZUtleSkpIHtcbiAgICAgICAgb25SZWFkeSgpXG4gICAgICB9XG5cbiAgICAgIGhhc09uUmVhZHlFZmZlY3RDYWxsZWQuY3VycmVudCA9IHRydWVcbiAgICB9XG4gIH0sIFtvblJlYWR5LCBpZCwgc3JjXSlcblxuICBjb25zdCBoYXNMb2FkU2NyaXB0RWZmZWN0Q2FsbGVkID0gdXNlUmVmKGZhbHNlKVxuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKCFoYXNMb2FkU2NyaXB0RWZmZWN0Q2FsbGVkLmN1cnJlbnQpIHtcbiAgICAgIGlmIChzdHJhdGVneSA9PT0gJ2FmdGVySW50ZXJhY3RpdmUnKSB7XG4gICAgICAgIGxvYWRTY3JpcHQocHJvcHMpXG4gICAgICB9IGVsc2UgaWYgKHN0cmF0ZWd5ID09PSAnbGF6eU9ubG9hZCcpIHtcbiAgICAgICAgbG9hZExhenlTY3JpcHQocHJvcHMpXG4gICAgICB9XG5cbiAgICAgIGhhc0xvYWRTY3JpcHRFZmZlY3RDYWxsZWQuY3VycmVudCA9IHRydWVcbiAgICB9XG4gIH0sIFtwcm9wcywgc3RyYXRlZ3ldKVxuXG4gIGlmIChzdHJhdGVneSA9PT0gJ2JlZm9yZUludGVyYWN0aXZlJyB8fCBzdHJhdGVneSA9PT0gJ3dvcmtlcicpIHtcbiAgICBpZiAodXBkYXRlU2NyaXB0cykge1xuICAgICAgc2NyaXB0c1tzdHJhdGVneV0gPSAoc2NyaXB0c1tzdHJhdGVneV0gfHwgW10pLmNvbmNhdChbXG4gICAgICAgIHtcbiAgICAgICAgICBpZCxcbiAgICAgICAgICBzcmMsXG4gICAgICAgICAgb25Mb2FkLFxuICAgICAgICAgIG9uUmVhZHksXG4gICAgICAgICAgb25FcnJvcixcbiAgICAgICAgICAuLi5yZXN0UHJvcHMsXG4gICAgICAgICAgbm9uY2UsXG4gICAgICAgIH0sXG4gICAgICBdKVxuICAgICAgdXBkYXRlU2NyaXB0cyhzY3JpcHRzKVxuICAgIH0gZWxzZSBpZiAoZ2V0SXNTc3IgJiYgZ2V0SXNTc3IoKSkge1xuICAgICAgLy8gU2NyaXB0IGhhcyBhbHJlYWR5IGxvYWRlZCBkdXJpbmcgU1NSXG4gICAgICBMb2FkQ2FjaGUuYWRkKGlkIHx8IHNyYylcbiAgICB9IGVsc2UgaWYgKGdldElzU3NyICYmICFnZXRJc1NzcigpKSB7XG4gICAgICBsb2FkU2NyaXB0KHtcbiAgICAgICAgLi4ucHJvcHMsXG4gICAgICAgIG5vbmNlLFxuICAgICAgfSlcbiAgICB9XG4gIH1cblxuICAvLyBGb3IgdGhlIGFwcCBkaXJlY3RvcnksIHdlIG5lZWQgUmVhY3QgRmxvYXQgdG8gcHJlbG9hZCB0aGVzZSBzY3JpcHRzLlxuICBpZiAoYXBwRGlyKSB7XG4gICAgLy8gSW5qZWN0aW5nIHN0eWxlc2hlZXRzIGhlcmUgaGFuZGxlcyBiZWZvcmVJbnRlcmFjdGl2ZSBhbmQgd29ya2VyIHNjcmlwdHMgY29ycmVjdGx5XG4gICAgLy8gRm9yIG90aGVyIHN0cmF0ZWdpZXMgaW5qZWN0aW5nIGhlcmUgZW5zdXJlcyBjb3JyZWN0IHN0eWxlc2hlZXQgb3JkZXJcbiAgICAvLyBSZWFjdERPTS5wcmVpbml0IGhhbmRsZXMgbG9hZGluZyB0aGUgc3R5bGVzIGluIHRoZSBjb3JyZWN0IG9yZGVyLFxuICAgIC8vIGFsc28gZW5zdXJlcyB0aGUgc3R5bGVzaGVldCBpcyBsb2FkZWQgb25seSBvbmNlIGFuZCBpbiBhIGNvbnNpc3RlbnQgbWFubmVyXG4gICAgLy9cbiAgICAvLyBDYXNlIDE6IFN0eWxlcyBmb3IgYmVmb3JlSW50ZXJhY3RpdmUvd29ya2VyIHdpdGggYXBwRGlyIC0gaGFuZGxlZCBoZXJlXG4gICAgLy8gQ2FzZSAyOiBTdHlsZXMgZm9yIGJlZm9yZUludGVyYWN0aXZlL3dvcmtlciB3aXRoIHBhZ2VzIGRpciAtIE5vdCBoYW5kbGVkIHlldFxuICAgIC8vIENhc2UgMzogU3R5bGVzIGZvciBhZnRlckludGVyYWN0aXZlL2xhenlPbmxvYWQgd2l0aCBhcHBEaXIgLSBoYW5kbGVkIGhlcmVcbiAgICAvLyBDYXNlIDQ6IFN0eWxlcyBmb3IgYWZ0ZXJJbnRlcmFjdGl2ZS9sYXp5T25sb2FkIHdpdGggcGFnZXMgZGlyIC0gaGFuZGxlZCBpbiBpbnNlcnRTdHlsZXNoZWV0cyBmdW5jdGlvblxuICAgIGlmIChzdHlsZXNoZWV0cykge1xuICAgICAgc3R5bGVzaGVldHMuZm9yRWFjaCgoc3R5bGVTcmMpID0+IHtcbiAgICAgICAgUmVhY3RET00ucHJlaW5pdChzdHlsZVNyYywgeyBhczogJ3N0eWxlJyB9KVxuICAgICAgfSlcbiAgICB9XG5cbiAgICAvLyBCZWZvcmUgaW50ZXJhY3RpdmUgc2NyaXB0cyBuZWVkIHRvIGJlIGxvYWRlZCBieSBOZXh0LmpzJyBydW50aW1lIGluc3RlYWRcbiAgICAvLyBvZiBuYXRpdmUgPHNjcmlwdD4gdGFncywgYmVjYXVzZSB0aGV5IG5vIGxvbmdlciBoYXZlIGBkZWZlcmAuXG4gICAgaWYgKHN0cmF0ZWd5ID09PSAnYmVmb3JlSW50ZXJhY3RpdmUnKSB7XG4gICAgICBpZiAoIXNyYykge1xuICAgICAgICAvLyBGb3IgaW5saW5lZCBzY3JpcHRzLCB3ZSBwdXQgdGhlIGNvbnRlbnQgaW4gYGNoaWxkcmVuYC5cbiAgICAgICAgaWYgKHJlc3RQcm9wcy5kYW5nZXJvdXNseVNldElubmVySFRNTCkge1xuICAgICAgICAgIC8vIENhc3Rpbmcgc2luY2UgbGliLmRvbS5kLnRzIGRvZXNuJ3QgaGF2ZSBUcnVzdGVkSFRNTCB5ZXQuXG4gICAgICAgICAgcmVzdFByb3BzLmNoaWxkcmVuID0gcmVzdFByb3BzLmRhbmdlcm91c2x5U2V0SW5uZXJIVE1MXG4gICAgICAgICAgICAuX19odG1sIGFzIHN0cmluZ1xuICAgICAgICAgIGRlbGV0ZSByZXN0UHJvcHMuZGFuZ2Vyb3VzbHlTZXRJbm5lckhUTUxcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiAoXG4gICAgICAgICAgPHNjcmlwdFxuICAgICAgICAgICAgbm9uY2U9e25vbmNlfVxuICAgICAgICAgICAgZGFuZ2Vyb3VzbHlTZXRJbm5lckhUTUw9e3tcbiAgICAgICAgICAgICAgX19odG1sOiBgKHNlbGYuX19uZXh0X3M9c2VsZi5fX25leHRfc3x8W10pLnB1c2goJHtKU09OLnN0cmluZ2lmeShbXG4gICAgICAgICAgICAgICAgMCxcbiAgICAgICAgICAgICAgICB7IC4uLnJlc3RQcm9wcywgaWQgfSxcbiAgICAgICAgICAgICAgXSl9KWAsXG4gICAgICAgICAgICB9fVxuICAgICAgICAgIC8+XG4gICAgICAgIClcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIC8vIEB0cy1pZ25vcmVcbiAgICAgICAgUmVhY3RET00ucHJlbG9hZChcbiAgICAgICAgICBzcmMsXG4gICAgICAgICAgcmVzdFByb3BzLmludGVncml0eVxuICAgICAgICAgICAgPyB7XG4gICAgICAgICAgICAgICAgYXM6ICdzY3JpcHQnLFxuICAgICAgICAgICAgICAgIGludGVncml0eTogcmVzdFByb3BzLmludGVncml0eSxcbiAgICAgICAgICAgICAgICBub25jZSxcbiAgICAgICAgICAgICAgICBjcm9zc09yaWdpbjogcmVzdFByb3BzLmNyb3NzT3JpZ2luLFxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICA6IHsgYXM6ICdzY3JpcHQnLCBub25jZSwgY3Jvc3NPcmlnaW46IHJlc3RQcm9wcy5jcm9zc09yaWdpbiB9XG4gICAgICAgIClcbiAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICA8c2NyaXB0XG4gICAgICAgICAgICBub25jZT17bm9uY2V9XG4gICAgICAgICAgICBkYW5nZXJvdXNseVNldElubmVySFRNTD17e1xuICAgICAgICAgICAgICBfX2h0bWw6IGAoc2VsZi5fX25leHRfcz1zZWxmLl9fbmV4dF9zfHxbXSkucHVzaCgke0pTT04uc3RyaW5naWZ5KFtcbiAgICAgICAgICAgICAgICBzcmMsXG4gICAgICAgICAgICAgICAgeyAuLi5yZXN0UHJvcHMsIGlkIH0sXG4gICAgICAgICAgICAgIF0pfSlgLFxuICAgICAgICAgICAgfX1cbiAgICAgICAgICAvPlxuICAgICAgICApXG4gICAgICB9XG4gICAgfSBlbHNlIGlmIChzdHJhdGVneSA9PT0gJ2FmdGVySW50ZXJhY3RpdmUnKSB7XG4gICAgICBpZiAoc3JjKSB7XG4gICAgICAgIC8vIEB0cy1pZ25vcmVcbiAgICAgICAgUmVhY3RET00ucHJlbG9hZChcbiAgICAgICAgICBzcmMsXG4gICAgICAgICAgcmVzdFByb3BzLmludGVncml0eVxuICAgICAgICAgICAgPyB7XG4gICAgICAgICAgICAgICAgYXM6ICdzY3JpcHQnLFxuICAgICAgICAgICAgICAgIGludGVncml0eTogcmVzdFByb3BzLmludGVncml0eSxcbiAgICAgICAgICAgICAgICBub25jZSxcbiAgICAgICAgICAgICAgICBjcm9zc09yaWdpbjogcmVzdFByb3BzLmNyb3NzT3JpZ2luLFxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICA6IHsgYXM6ICdzY3JpcHQnLCBub25jZSwgY3Jvc3NPcmlnaW46IHJlc3RQcm9wcy5jcm9zc09yaWdpbiB9XG4gICAgICAgIClcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICByZXR1cm4gbnVsbFxufVxuXG5PYmplY3QuZGVmaW5lUHJvcGVydHkoU2NyaXB0LCAnX19uZXh0U2NyaXB0JywgeyB2YWx1ZTogdHJ1ZSB9KVxuXG5leHBvcnQgZGVmYXVsdCBTY3JpcHRcbiJdLCJuYW1lcyI6WyJoYW5kbGVDbGllbnRTY3JpcHRMb2FkIiwiaW5pdFNjcmlwdExvYWRlciIsIlNjcmlwdENhY2hlIiwiTWFwIiwiTG9hZENhY2hlIiwiU2V0IiwiaW5zZXJ0U3R5bGVzaGVldHMiLCJzdHlsZXNoZWV0cyIsIlJlYWN0RE9NIiwicHJlaW5pdCIsImZvckVhY2giLCJzdHlsZXNoZWV0IiwiYXMiLCJ3aW5kb3ciLCJoZWFkIiwiZG9jdW1lbnQiLCJsaW5rIiwiY3JlYXRlRWxlbWVudCIsInR5cGUiLCJyZWwiLCJocmVmIiwiYXBwZW5kQ2hpbGQiLCJsb2FkU2NyaXB0IiwicHJvcHMiLCJzcmMiLCJpZCIsIm9uTG9hZCIsIm9uUmVhZHkiLCJkYW5nZXJvdXNseVNldElubmVySFRNTCIsImNoaWxkcmVuIiwic3RyYXRlZ3kiLCJvbkVycm9yIiwiY2FjaGVLZXkiLCJoYXMiLCJhZGQiLCJnZXQiLCJ0aGVuIiwiYWZ0ZXJMb2FkIiwiZWwiLCJsb2FkUHJvbWlzZSIsIlByb21pc2UiLCJyZXNvbHZlIiwicmVqZWN0IiwiYWRkRXZlbnRMaXN0ZW5lciIsImUiLCJjYWxsIiwiY2F0Y2giLCJpbm5lckhUTUwiLCJfX2h0bWwiLCJ0ZXh0Q29udGVudCIsIkFycmF5IiwiaXNBcnJheSIsImpvaW4iLCJzZXQiLCJzZXRBdHRyaWJ1dGVzRnJvbVByb3BzIiwic2V0QXR0cmlidXRlIiwiYm9keSIsInJlcXVlc3RJZGxlQ2FsbGJhY2siLCJsb2FkTGF6eVNjcmlwdCIsInJlYWR5U3RhdGUiLCJhZGRCZWZvcmVJbnRlcmFjdGl2ZVRvQ2FjaGUiLCJzY3JpcHRzIiwicXVlcnlTZWxlY3RvckFsbCIsInNjcmlwdCIsImdldEF0dHJpYnV0ZSIsInNjcmlwdExvYWRlckl0ZW1zIiwiU2NyaXB0IiwicmVzdFByb3BzIiwidXBkYXRlU2NyaXB0cyIsImdldElzU3NyIiwiYXBwRGlyIiwibm9uY2UiLCJ1c2VDb250ZXh0IiwiSGVhZE1hbmFnZXJDb250ZXh0IiwiaGFzT25SZWFkeUVmZmVjdENhbGxlZCIsInVzZVJlZiIsInVzZUVmZmVjdCIsImN1cnJlbnQiLCJoYXNMb2FkU2NyaXB0RWZmZWN0Q2FsbGVkIiwiY29uY2F0Iiwic3R5bGVTcmMiLCJKU09OIiwic3RyaW5naWZ5IiwicHJlbG9hZCIsImludGVncml0eSIsImNyb3NzT3JpZ2luIiwiT2JqZWN0IiwiZGVmaW5lUHJvcGVydHkiLCJ2YWx1ZSJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(pages-dir-browser)/./node_modules/next/dist/client/script.js\n")); - -/***/ }), - -/***/ "(pages-dir-browser)/./node_modules/next/dist/client/set-attributes-from-props.js": -/*!********************************************************************!*\ - !*** ./node_modules/next/dist/client/set-attributes-from-props.js ***! - \********************************************************************/ -/***/ ((module, exports, __webpack_require__) => { - -"use strict"; -eval(__webpack_require__.ts("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"setAttributesFromProps\", ({\n enumerable: true,\n get: function() {\n return setAttributesFromProps;\n }\n}));\nconst DOMAttributeNames = {\n acceptCharset: 'accept-charset',\n className: 'class',\n htmlFor: 'for',\n httpEquiv: 'http-equiv',\n noModule: 'noModule'\n};\nconst ignoreProps = [\n 'onLoad',\n 'onReady',\n 'dangerouslySetInnerHTML',\n 'children',\n 'onError',\n 'strategy',\n 'stylesheets'\n];\nfunction isBooleanScriptAttribute(attr) {\n return [\n 'async',\n 'defer',\n 'noModule'\n ].includes(attr);\n}\nfunction setAttributesFromProps(el, props) {\n for (const [p, value] of Object.entries(props)){\n if (!props.hasOwnProperty(p)) continue;\n if (ignoreProps.includes(p)) continue;\n // we don't render undefined props to the DOM\n if (value === undefined) {\n continue;\n }\n const attr = DOMAttributeNames[p] || p.toLowerCase();\n if (el.tagName === 'SCRIPT' && isBooleanScriptAttribute(attr)) {\n // Correctly assign boolean script attributes\n // https://github.com/vercel/next.js/pull/20748\n ;\n el[attr] = !!value;\n } else {\n el.setAttribute(attr, String(value));\n }\n // Remove falsy non-zero boolean attributes so they are correctly interpreted\n // (e.g. if we set them to false, this coerces to the string \"false\", which the browser interprets as true)\n if (value === false || el.tagName === 'SCRIPT' && isBooleanScriptAttribute(attr) && (!value || value === 'false')) {\n // Call setAttribute before, as we need to set and unset the attribute to override force async:\n // https://html.spec.whatwg.org/multipage/scripting.html#script-force-async\n el.setAttribute(attr, '');\n el.removeAttribute(attr);\n }\n }\n}\nif ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=set-attributes-from-props.js.map\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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvY2xpZW50L3NldC1hdHRyaWJ1dGVzLWZyb20tcHJvcHMuanMiLCJtYXBwaW5ncyI6Ijs7OzswREF3QmdCQTs7O2VBQUFBOzs7QUF4QmhCLE1BQU1DLG9CQUE0QztJQUNoREMsZUFBZTtJQUNmQyxXQUFXO0lBQ1hDLFNBQVM7SUFDVEMsV0FBVztJQUNYQyxVQUFVO0FBQ1o7QUFFQSxNQUFNQyxjQUFjO0lBQ2xCO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0NBQ0Q7QUFFRCxTQUFTQyx5QkFDUEMsSUFBWTtJQUVaLE9BQU87UUFBQztRQUFTO1FBQVM7S0FBVyxDQUFDQyxRQUFRLENBQUNEO0FBQ2pEO0FBRU8sU0FBU1QsdUJBQXVCVyxFQUFlLEVBQUVDLEtBQWE7SUFDbkUsS0FBSyxNQUFNLENBQUNDLEdBQUdDLE1BQU0sSUFBSUMsT0FBT0MsT0FBTyxDQUFDSixPQUFRO1FBQzlDLElBQUksQ0FBQ0EsTUFBTUssY0FBYyxDQUFDSixJQUFJO1FBQzlCLElBQUlOLFlBQVlHLFFBQVEsQ0FBQ0csSUFBSTtRQUU3Qiw2Q0FBNkM7UUFDN0MsSUFBSUMsVUFBVUksV0FBVztZQUN2QjtRQUNGO1FBRUEsTUFBTVQsT0FBT1IsaUJBQWlCLENBQUNZLEVBQUUsSUFBSUEsRUFBRU0sV0FBVztRQUVsRCxJQUFJUixHQUFHUyxPQUFPLEtBQUssWUFBWVoseUJBQXlCQyxPQUFPO1lBQzdELDZDQUE2QztZQUM3QywrQ0FBK0M7O1lBQzdDRSxFQUF3QixDQUFDRixLQUFLLEdBQUcsQ0FBQyxDQUFDSztRQUN2QyxPQUFPO1lBQ0xILEdBQUdVLFlBQVksQ0FBQ1osTUFBTWEsT0FBT1I7UUFDL0I7UUFFQSw2RUFBNkU7UUFDN0UsMkdBQTJHO1FBQzNHLElBQ0VBLFVBQVUsU0FDVEgsR0FBR1MsT0FBTyxLQUFLLFlBQ2RaLHlCQUF5QkMsU0FDeEIsRUFBQ0ssU0FBU0EsVUFBVSxRQUFNLEVBQzdCO1lBQ0EsK0ZBQStGO1lBQy9GLDJFQUEyRTtZQUMzRUgsR0FBR1UsWUFBWSxDQUFDWixNQUFNO1lBQ3RCRSxHQUFHWSxlQUFlLENBQUNkO1FBQ3JCO0lBQ0Y7QUFDRiIsInNvdXJjZXMiOlsiRDpcXHNyY1xcY2xpZW50XFxzZXQtYXR0cmlidXRlcy1mcm9tLXByb3BzLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImNvbnN0IERPTUF0dHJpYnV0ZU5hbWVzOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+ID0ge1xuICBhY2NlcHRDaGFyc2V0OiAnYWNjZXB0LWNoYXJzZXQnLFxuICBjbGFzc05hbWU6ICdjbGFzcycsXG4gIGh0bWxGb3I6ICdmb3InLFxuICBodHRwRXF1aXY6ICdodHRwLWVxdWl2JyxcbiAgbm9Nb2R1bGU6ICdub01vZHVsZScsXG59XG5cbmNvbnN0IGlnbm9yZVByb3BzID0gW1xuICAnb25Mb2FkJyxcbiAgJ29uUmVhZHknLFxuICAnZGFuZ2Vyb3VzbHlTZXRJbm5lckhUTUwnLFxuICAnY2hpbGRyZW4nLFxuICAnb25FcnJvcicsXG4gICdzdHJhdGVneScsXG4gICdzdHlsZXNoZWV0cycsXG5dXG5cbmZ1bmN0aW9uIGlzQm9vbGVhblNjcmlwdEF0dHJpYnV0ZShcbiAgYXR0cjogc3RyaW5nXG4pOiBhdHRyIGlzICdhc3luYycgfCAnZGVmZXInIHwgJ25vTW9kdWxlJyB7XG4gIHJldHVybiBbJ2FzeW5jJywgJ2RlZmVyJywgJ25vTW9kdWxlJ10uaW5jbHVkZXMoYXR0cilcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHNldEF0dHJpYnV0ZXNGcm9tUHJvcHMoZWw6IEhUTUxFbGVtZW50LCBwcm9wczogb2JqZWN0KSB7XG4gIGZvciAoY29uc3QgW3AsIHZhbHVlXSBvZiBPYmplY3QuZW50cmllcyhwcm9wcykpIHtcbiAgICBpZiAoIXByb3BzLmhhc093blByb3BlcnR5KHApKSBjb250aW51ZVxuICAgIGlmIChpZ25vcmVQcm9wcy5pbmNsdWRlcyhwKSkgY29udGludWVcblxuICAgIC8vIHdlIGRvbid0IHJlbmRlciB1bmRlZmluZWQgcHJvcHMgdG8gdGhlIERPTVxuICAgIGlmICh2YWx1ZSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICBjb250aW51ZVxuICAgIH1cblxuICAgIGNvbnN0IGF0dHIgPSBET01BdHRyaWJ1dGVOYW1lc1twXSB8fCBwLnRvTG93ZXJDYXNlKClcblxuICAgIGlmIChlbC50YWdOYW1lID09PSAnU0NSSVBUJyAmJiBpc0Jvb2xlYW5TY3JpcHRBdHRyaWJ1dGUoYXR0cikpIHtcbiAgICAgIC8vIENvcnJlY3RseSBhc3NpZ24gYm9vbGVhbiBzY3JpcHQgYXR0cmlidXRlc1xuICAgICAgLy8gaHR0cHM6Ly9naXRodWIuY29tL3ZlcmNlbC9uZXh0LmpzL3B1bGwvMjA3NDhcbiAgICAgIDsoZWwgYXMgSFRNTFNjcmlwdEVsZW1lbnQpW2F0dHJdID0gISF2YWx1ZVxuICAgIH0gZWxzZSB7XG4gICAgICBlbC5zZXRBdHRyaWJ1dGUoYXR0ciwgU3RyaW5nKHZhbHVlKSlcbiAgICB9XG5cbiAgICAvLyBSZW1vdmUgZmFsc3kgbm9uLXplcm8gYm9vbGVhbiBhdHRyaWJ1dGVzIHNvIHRoZXkgYXJlIGNvcnJlY3RseSBpbnRlcnByZXRlZFxuICAgIC8vIChlLmcuIGlmIHdlIHNldCB0aGVtIHRvIGZhbHNlLCB0aGlzIGNvZXJjZXMgdG8gdGhlIHN0cmluZyBcImZhbHNlXCIsIHdoaWNoIHRoZSBicm93c2VyIGludGVycHJldHMgYXMgdHJ1ZSlcbiAgICBpZiAoXG4gICAgICB2YWx1ZSA9PT0gZmFsc2UgfHxcbiAgICAgIChlbC50YWdOYW1lID09PSAnU0NSSVBUJyAmJlxuICAgICAgICBpc0Jvb2xlYW5TY3JpcHRBdHRyaWJ1dGUoYXR0cikgJiZcbiAgICAgICAgKCF2YWx1ZSB8fCB2YWx1ZSA9PT0gJ2ZhbHNlJykpXG4gICAgKSB7XG4gICAgICAvLyBDYWxsIHNldEF0dHJpYnV0ZSBiZWZvcmUsIGFzIHdlIG5lZWQgdG8gc2V0IGFuZCB1bnNldCB0aGUgYXR0cmlidXRlIHRvIG92ZXJyaWRlIGZvcmNlIGFzeW5jOlxuICAgICAgLy8gaHR0cHM6Ly9odG1sLnNwZWMud2hhdHdnLm9yZy9tdWx0aXBhZ2Uvc2NyaXB0aW5nLmh0bWwjc2NyaXB0LWZvcmNlLWFzeW5jXG4gICAgICBlbC5zZXRBdHRyaWJ1dGUoYXR0ciwgJycpXG4gICAgICBlbC5yZW1vdmVBdHRyaWJ1dGUoYXR0cilcbiAgICB9XG4gIH1cbn1cbiJdLCJuYW1lcyI6WyJzZXRBdHRyaWJ1dGVzRnJvbVByb3BzIiwiRE9NQXR0cmlidXRlTmFtZXMiLCJhY2NlcHRDaGFyc2V0IiwiY2xhc3NOYW1lIiwiaHRtbEZvciIsImh0dHBFcXVpdiIsIm5vTW9kdWxlIiwiaWdub3JlUHJvcHMiLCJpc0Jvb2xlYW5TY3JpcHRBdHRyaWJ1dGUiLCJhdHRyIiwiaW5jbHVkZXMiLCJlbCIsInByb3BzIiwicCIsInZhbHVlIiwiT2JqZWN0IiwiZW50cmllcyIsImhhc093blByb3BlcnR5IiwidW5kZWZpbmVkIiwidG9Mb3dlckNhc2UiLCJ0YWdOYW1lIiwic2V0QXR0cmlidXRlIiwiU3RyaW5nIiwicmVtb3ZlQXR0cmlidXRlIl0sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(pages-dir-browser)/./node_modules/next/dist/client/set-attributes-from-props.js\n")); - -/***/ }), - -/***/ "(pages-dir-browser)/./node_modules/next/dist/client/tracing/report-to-socket.js": -/*!*******************************************************************!*\ - !*** ./node_modules/next/dist/client/tracing/report-to-socket.js ***! - \*******************************************************************/ -/***/ ((module, exports, __webpack_require__) => { - -"use strict"; -eval(__webpack_require__.ts("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"default\", ({\n enumerable: true,\n get: function() {\n return reportToSocket;\n }\n}));\nconst _websocket = __webpack_require__(/*! ../dev/hot-reloader/pages/websocket */ \"(pages-dir-browser)/./node_modules/next/dist/client/dev/hot-reloader/pages/websocket.js\");\nfunction reportToSocket(span) {\n if (span.state.state !== 'ended') {\n throw Object.defineProperty(new Error('Expected span to be ended'), \"__NEXT_ERROR_CODE\", {\n value: \"E302\",\n enumerable: false,\n configurable: true\n });\n }\n (0, _websocket.sendMessage)(JSON.stringify({\n event: 'span-end',\n startTime: span.startTime,\n endTime: span.state.endTime,\n spanName: span.name,\n attributes: span.attributes\n }));\n}\nif ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=report-to-socket.js.map\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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvY2xpZW50L3RyYWNpbmcvcmVwb3J0LXRvLXNvY2tldC5qcyIsIm1hcHBpbmdzIjoiOzs7OzJDQUdBOzs7ZUFBd0JBOzs7dUNBSEk7QUFHYixTQUFTQSxlQUFlQyxJQUFVO0lBQy9DLElBQUlBLEtBQUtDLEtBQUssQ0FBQ0EsS0FBSyxLQUFLLFNBQVM7UUFDaEMsTUFBTSxxQkFBc0MsQ0FBdEMsSUFBSUMsTUFBTSw4QkFBVjttQkFBQTt3QkFBQTswQkFBQTtRQUFxQztJQUM3QztJQUVBQyxDQUFBQSxHQUFBQSxXQUFBQSxXQUFBQSxFQUNFQyxLQUFLQyxTQUFTLENBQUM7UUFDYkMsT0FBTztRQUNQQyxXQUFXUCxLQUFLTyxTQUFTO1FBQ3pCQyxTQUFTUixLQUFLQyxLQUFLLENBQUNPLE9BQU87UUFDM0JDLFVBQVVULEtBQUtVLElBQUk7UUFDbkJDLFlBQVlYLEtBQUtXLFVBQVU7SUFDN0I7QUFFSiIsInNvdXJjZXMiOlsiRDpcXHNyY1xcY2xpZW50XFx0cmFjaW5nXFxyZXBvcnQtdG8tc29ja2V0LnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHNlbmRNZXNzYWdlIH0gZnJvbSAnLi4vZGV2L2hvdC1yZWxvYWRlci9wYWdlcy93ZWJzb2NrZXQnXG5pbXBvcnQgdHlwZSB7IFNwYW4gfSBmcm9tICcuL3RyYWNlcidcblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gcmVwb3J0VG9Tb2NrZXQoc3BhbjogU3Bhbikge1xuICBpZiAoc3Bhbi5zdGF0ZS5zdGF0ZSAhPT0gJ2VuZGVkJykge1xuICAgIHRocm93IG5ldyBFcnJvcignRXhwZWN0ZWQgc3BhbiB0byBiZSBlbmRlZCcpXG4gIH1cblxuICBzZW5kTWVzc2FnZShcbiAgICBKU09OLnN0cmluZ2lmeSh7XG4gICAgICBldmVudDogJ3NwYW4tZW5kJyxcbiAgICAgIHN0YXJ0VGltZTogc3Bhbi5zdGFydFRpbWUsXG4gICAgICBlbmRUaW1lOiBzcGFuLnN0YXRlLmVuZFRpbWUsXG4gICAgICBzcGFuTmFtZTogc3Bhbi5uYW1lLFxuICAgICAgYXR0cmlidXRlczogc3Bhbi5hdHRyaWJ1dGVzLFxuICAgIH0pXG4gIClcbn1cbiJdLCJuYW1lcyI6WyJyZXBvcnRUb1NvY2tldCIsInNwYW4iLCJzdGF0ZSIsIkVycm9yIiwic2VuZE1lc3NhZ2UiLCJKU09OIiwic3RyaW5naWZ5IiwiZXZlbnQiLCJzdGFydFRpbWUiLCJlbmRUaW1lIiwic3Bhbk5hbWUiLCJuYW1lIiwiYXR0cmlidXRlcyJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(pages-dir-browser)/./node_modules/next/dist/client/tracing/report-to-socket.js\n")); - -/***/ }), - -/***/ "(pages-dir-browser)/./node_modules/next/dist/client/tracing/tracer.js": -/*!*********************************************************!*\ - !*** ./node_modules/next/dist/client/tracing/tracer.js ***! - \*********************************************************/ -/***/ ((module, exports, __webpack_require__) => { - -"use strict"; -eval(__webpack_require__.ts("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"default\", ({\n enumerable: true,\n get: function() {\n return _default;\n }\n}));\nconst _interop_require_default = __webpack_require__(/*! @swc/helpers/_/_interop_require_default */ \"(pages-dir-browser)/./node_modules/@swc/helpers/esm/_interop_require_default.js\");\nconst _mitt = /*#__PURE__*/ _interop_require_default._(__webpack_require__(/*! ../../shared/lib/mitt */ \"(pages-dir-browser)/./node_modules/next/dist/shared/lib/mitt.js\"));\nclass Span {\n end(endTime) {\n if (this.state.state === 'ended') {\n throw Object.defineProperty(new Error('Span has already ended'), \"__NEXT_ERROR_CODE\", {\n value: \"E17\",\n enumerable: false,\n configurable: true\n });\n }\n this.state = {\n state: 'ended',\n endTime: endTime != null ? endTime : Date.now()\n };\n this.onSpanEnd(this);\n }\n constructor(name, options, onSpanEnd){\n this.name = name;\n var _options_attributes;\n this.attributes = (_options_attributes = options.attributes) != null ? _options_attributes : {};\n var _options_startTime;\n this.startTime = (_options_startTime = options.startTime) != null ? _options_startTime : Date.now();\n this.onSpanEnd = onSpanEnd;\n this.state = {\n state: 'inprogress'\n };\n }\n}\nclass Tracer {\n startSpan(name, options) {\n return new Span(name, options, this.handleSpanEnd);\n }\n onSpanEnd(cb) {\n this._emitter.on('spanend', cb);\n return ()=>{\n this._emitter.off('spanend', cb);\n };\n }\n constructor(){\n this._emitter = (0, _mitt.default)();\n this.handleSpanEnd = (span)=>{\n this._emitter.emit('spanend', span);\n };\n }\n}\nconst _default = new Tracer();\nif ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=tracer.js.map\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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvY2xpZW50L3RyYWNpbmcvdHJhY2VyLmpzIiwibWFwcGluZ3MiOiI7Ozs7MkNBOEVBOzs7ZUFBQTs7OzsyRUE5RWlCO0FBeUJqQixNQUFNQTtJQW1CSkMsSUFBSUMsT0FBZ0IsRUFBRTtRQUNwQixJQUFJLElBQUksQ0FBQ0MsS0FBSyxDQUFDQSxLQUFLLEtBQUssU0FBUztZQUNoQyxNQUFNLHFCQUFtQyxDQUFuQyxJQUFJQyxNQUFNLDJCQUFWO3VCQUFBOzRCQUFBOzhCQUFBO1lBQWtDO1FBQzFDO1FBRUEsSUFBSSxDQUFDRCxLQUFLLEdBQUc7WUFDWEEsT0FBTztZQUNQRCxTQUFTQSxXQUFBQSxPQUFBQSxVQUFXRyxLQUFLQyxHQUFHO1FBQzlCO1FBRUEsSUFBSSxDQUFDQyxTQUFTLENBQUMsSUFBSTtJQUNyQjtJQXZCQUMsWUFDRUMsSUFBWSxFQUNaQyxPQUFvQixFQUNwQkgsU0FBK0IsQ0FDL0I7UUFDQSxJQUFJLENBQUNFLElBQUksR0FBR0E7WUFDTUM7UUFBbEIsSUFBSSxDQUFDQyxVQUFVLEdBQUdELENBQUFBLHNCQUFBQSxRQUFRQyxVQUFBQSxLQUFVLE9BQWxCRCxzQkFBc0IsQ0FBQztZQUN4QkE7UUFBakIsSUFBSSxDQUFDRSxTQUFTLEdBQUdGLENBQUFBLHFCQUFBQSxRQUFRRSxTQUFBQSxLQUFTLE9BQWpCRixxQkFBcUJMLEtBQUtDLEdBQUc7UUFDOUMsSUFBSSxDQUFDQyxTQUFTLEdBQUdBO1FBQ2pCLElBQUksQ0FBQ0osS0FBSyxHQUFHO1lBQUVBLE9BQU87UUFBYTtJQUNyQztBQWNGO0FBRUEsTUFBTVU7SUFPSkMsVUFBVUwsSUFBWSxFQUFFQyxPQUFvQixFQUFFO1FBQzVDLE9BQU8sSUFBSVYsS0FBS1MsTUFBTUMsU0FBUyxJQUFJLENBQUNLLGFBQWE7SUFDbkQ7SUFFQVIsVUFBVVMsRUFBeUIsRUFBYztRQUMvQyxJQUFJLENBQUNDLFFBQVEsQ0FBQ0MsRUFBRSxDQUFDLFdBQVdGO1FBQzVCLE9BQU87WUFDTCxJQUFJLENBQUNDLFFBQVEsQ0FBQ0UsR0FBRyxDQUFDLFdBQVdIO1FBQy9CO0lBQ0Y7O2FBZkFDLFFBQUFBLEdBQWdDRyxDQUFBQSxHQUFBQSxNQUFBQSxPQUFBQTthQUV4QkwsYUFBQUEsR0FBZ0IsQ0FBQ007WUFDdkIsSUFBSSxDQUFDSixRQUFRLENBQUNLLElBQUksQ0FBQyxXQUFXRDtRQUNoQzs7QUFZRjtNQUdBLFdBQWUsSUFBSVIiLCJzb3VyY2VzIjpbIkQ6XFxzcmNcXGNsaWVudFxcdHJhY2luZ1xcdHJhY2VyLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBtaXR0IGZyb20gJy4uLy4uL3NoYXJlZC9saWIvbWl0dCdcbmltcG9ydCB0eXBlIHsgTWl0dEVtaXR0ZXIgfSBmcm9tICcuLi8uLi9zaGFyZWQvbGliL21pdHQnXG5cbmV4cG9ydCB0eXBlIFNwYW5PcHRpb25zID0ge1xuICBzdGFydFRpbWU/OiBudW1iZXJcbiAgYXR0cmlidXRlcz86IFJlY29yZDxzdHJpbmcsIHVua25vd24+XG59XG5cbmV4cG9ydCB0eXBlIFNwYW5TdGF0ZSA9XG4gIHwge1xuICAgICAgc3RhdGU6ICdpbnByb2dyZXNzJ1xuICAgIH1cbiAgfCB7XG4gICAgICBzdGF0ZTogJ2VuZGVkJ1xuICAgICAgZW5kVGltZTogbnVtYmVyXG4gICAgfVxuXG5pbnRlcmZhY2UgSVNwYW4ge1xuICBuYW1lOiBzdHJpbmdcbiAgc3RhcnRUaW1lOiBudW1iZXJcbiAgYXR0cmlidXRlczogUmVjb3JkPHN0cmluZywgdW5rbm93bj5cbiAgc3RhdGU6IFNwYW5TdGF0ZVxuICBlbmQoZW5kVGltZT86IG51bWJlcik6IHZvaWRcbn1cblxuY2xhc3MgU3BhbiBpbXBsZW1lbnRzIElTcGFuIHtcbiAgbmFtZTogc3RyaW5nXG4gIHN0YXJ0VGltZTogbnVtYmVyXG4gIG9uU3BhbkVuZDogKHNwYW46IFNwYW4pID0+IHZvaWRcbiAgc3RhdGU6IFNwYW5TdGF0ZVxuICBhdHRyaWJ1dGVzOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPlxuXG4gIGNvbnN0cnVjdG9yKFxuICAgIG5hbWU6IHN0cmluZyxcbiAgICBvcHRpb25zOiBTcGFuT3B0aW9ucyxcbiAgICBvblNwYW5FbmQ6IChzcGFuOiBTcGFuKSA9PiB2b2lkXG4gICkge1xuICAgIHRoaXMubmFtZSA9IG5hbWVcbiAgICB0aGlzLmF0dHJpYnV0ZXMgPSBvcHRpb25zLmF0dHJpYnV0ZXMgPz8ge31cbiAgICB0aGlzLnN0YXJ0VGltZSA9IG9wdGlvbnMuc3RhcnRUaW1lID8/IERhdGUubm93KClcbiAgICB0aGlzLm9uU3BhbkVuZCA9IG9uU3BhbkVuZFxuICAgIHRoaXMuc3RhdGUgPSB7IHN0YXRlOiAnaW5wcm9ncmVzcycgfVxuICB9XG5cbiAgZW5kKGVuZFRpbWU/OiBudW1iZXIpIHtcbiAgICBpZiAodGhpcy5zdGF0ZS5zdGF0ZSA9PT0gJ2VuZGVkJykge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdTcGFuIGhhcyBhbHJlYWR5IGVuZGVkJylcbiAgICB9XG5cbiAgICB0aGlzLnN0YXRlID0ge1xuICAgICAgc3RhdGU6ICdlbmRlZCcsXG4gICAgICBlbmRUaW1lOiBlbmRUaW1lID8/IERhdGUubm93KCksXG4gICAgfVxuXG4gICAgdGhpcy5vblNwYW5FbmQodGhpcylcbiAgfVxufVxuXG5jbGFzcyBUcmFjZXIge1xuICBfZW1pdHRlcjogTWl0dEVtaXR0ZXI8c3RyaW5nPiA9IG1pdHQoKVxuXG4gIHByaXZhdGUgaGFuZGxlU3BhbkVuZCA9IChzcGFuOiBTcGFuKSA9PiB7XG4gICAgdGhpcy5fZW1pdHRlci5lbWl0KCdzcGFuZW5kJywgc3BhbilcbiAgfVxuXG4gIHN0YXJ0U3BhbihuYW1lOiBzdHJpbmcsIG9wdGlvbnM6IFNwYW5PcHRpb25zKSB7XG4gICAgcmV0dXJuIG5ldyBTcGFuKG5hbWUsIG9wdGlvbnMsIHRoaXMuaGFuZGxlU3BhbkVuZClcbiAgfVxuXG4gIG9uU3BhbkVuZChjYjogKHNwYW46IElTcGFuKSA9PiB2b2lkKTogKCkgPT4gdm9pZCB7XG4gICAgdGhpcy5fZW1pdHRlci5vbignc3BhbmVuZCcsIGNiKVxuICAgIHJldHVybiAoKSA9PiB7XG4gICAgICB0aGlzLl9lbWl0dGVyLm9mZignc3BhbmVuZCcsIGNiKVxuICAgIH1cbiAgfVxufVxuXG5leHBvcnQgdHlwZSB7IElTcGFuIGFzIFNwYW4gfVxuZXhwb3J0IGRlZmF1bHQgbmV3IFRyYWNlcigpXG4iXSwibmFtZXMiOlsiU3BhbiIsImVuZCIsImVuZFRpbWUiLCJzdGF0ZSIsIkVycm9yIiwiRGF0ZSIsIm5vdyIsIm9uU3BhbkVuZCIsImNvbnN0cnVjdG9yIiwibmFtZSIsIm9wdGlvbnMiLCJhdHRyaWJ1dGVzIiwic3RhcnRUaW1lIiwiVHJhY2VyIiwic3RhcnRTcGFuIiwiaGFuZGxlU3BhbkVuZCIsImNiIiwiX2VtaXR0ZXIiLCJvbiIsIm9mZiIsIm1pdHQiLCJzcGFuIiwiZW1pdCJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(pages-dir-browser)/./node_modules/next/dist/client/tracing/tracer.js\n")); - -/***/ }), - -/***/ "(pages-dir-browser)/./node_modules/next/dist/client/trusted-types.js": -/*!********************************************************!*\ - !*** ./node_modules/next/dist/client/trusted-types.js ***! - \********************************************************/ -/***/ ((module, exports, __webpack_require__) => { - -"use strict"; -eval(__webpack_require__.ts("/**\n * Stores the Trusted Types Policy. Starts as undefined and can be set to null\n * if Trusted Types is not supported in the browser.\n */ \nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"__unsafeCreateTrustedScriptURL\", ({\n enumerable: true,\n get: function() {\n return __unsafeCreateTrustedScriptURL;\n }\n}));\nlet policy;\n/**\n * Getter for the Trusted Types Policy. If it is undefined, it is instantiated\n * here or set to null if Trusted Types is not supported in the browser.\n */ function getPolicy() {\n if (typeof policy === 'undefined' && \"object\" !== 'undefined') {\n var _window_trustedTypes;\n policy = ((_window_trustedTypes = window.trustedTypes) == null ? void 0 : _window_trustedTypes.createPolicy('nextjs', {\n createHTML: (input)=>input,\n createScript: (input)=>input,\n createScriptURL: (input)=>input\n })) || null;\n }\n return policy;\n}\nfunction __unsafeCreateTrustedScriptURL(url) {\n var _getPolicy;\n return ((_getPolicy = getPolicy()) == null ? void 0 : _getPolicy.createScriptURL(url)) || url;\n}\nif ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=trusted-types.js.map\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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvY2xpZW50L3RydXN0ZWQtdHlwZXMuanMiLCJtYXBwaW5ncyI6IkFBQUE7OztDQUdDOzs7O2tFQTZCZUE7OztlQUFBQTs7O0FBNUJoQixJQUFJQztBQUVKOzs7Q0FHQyxHQUNELFNBQVNDO0lBQ1AsSUFBSSxPQUFPRCxXQUFXLGVBQWUsT0FBT0UsTUFBVyxhQUFhO1lBRWhFQTtRQURGRixTQUNFRSxDQUFBQSxDQUFBQSx1QkFBQUEsT0FBT0MsWUFBQUEsS0FBWSxnQkFBbkJELHFCQUFxQkUsWUFBWSxDQUFDLFVBQVU7WUFDMUNDLFlBQVksQ0FBQ0MsUUFBVUE7WUFDdkJDLGNBQWMsQ0FBQ0QsUUFBVUE7WUFDekJFLGlCQUFpQixDQUFDRixRQUFVQTtRQUM5QixPQUFNO0lBQ1Y7SUFFQSxPQUFPTjtBQUNUO0FBV08sU0FBU0QsK0JBQ2RVLEdBQVc7UUFFSlI7SUFBUCxPQUFPQSxDQUFBQSxDQUFBQSxhQUFBQSxXQUFBQSxLQUFBQSxPQUFBQSxLQUFBQSxJQUFBQSxXQUFhTyxlQUFlLENBQUNDLElBQUFBLEtBQVFBO0FBQzlDIiwic291cmNlcyI6WyJEOlxcc3JjXFxjbGllbnRcXHRydXN0ZWQtdHlwZXMudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBTdG9yZXMgdGhlIFRydXN0ZWQgVHlwZXMgUG9saWN5LiBTdGFydHMgYXMgdW5kZWZpbmVkIGFuZCBjYW4gYmUgc2V0IHRvIG51bGxcbiAqIGlmIFRydXN0ZWQgVHlwZXMgaXMgbm90IHN1cHBvcnRlZCBpbiB0aGUgYnJvd3Nlci5cbiAqL1xubGV0IHBvbGljeTogVHJ1c3RlZFR5cGVQb2xpY3kgfCBudWxsIHwgdW5kZWZpbmVkXG5cbi8qKlxuICogR2V0dGVyIGZvciB0aGUgVHJ1c3RlZCBUeXBlcyBQb2xpY3kuIElmIGl0IGlzIHVuZGVmaW5lZCwgaXQgaXMgaW5zdGFudGlhdGVkXG4gKiBoZXJlIG9yIHNldCB0byBudWxsIGlmIFRydXN0ZWQgVHlwZXMgaXMgbm90IHN1cHBvcnRlZCBpbiB0aGUgYnJvd3Nlci5cbiAqL1xuZnVuY3Rpb24gZ2V0UG9saWN5KCkge1xuICBpZiAodHlwZW9mIHBvbGljeSA9PT0gJ3VuZGVmaW5lZCcgJiYgdHlwZW9mIHdpbmRvdyAhPT0gJ3VuZGVmaW5lZCcpIHtcbiAgICBwb2xpY3kgPVxuICAgICAgd2luZG93LnRydXN0ZWRUeXBlcz8uY3JlYXRlUG9saWN5KCduZXh0anMnLCB7XG4gICAgICAgIGNyZWF0ZUhUTUw6IChpbnB1dCkgPT4gaW5wdXQsXG4gICAgICAgIGNyZWF0ZVNjcmlwdDogKGlucHV0KSA9PiBpbnB1dCxcbiAgICAgICAgY3JlYXRlU2NyaXB0VVJMOiAoaW5wdXQpID0+IGlucHV0LFxuICAgICAgfSkgfHwgbnVsbFxuICB9XG5cbiAgcmV0dXJuIHBvbGljeVxufVxuXG4vKipcbiAqIFVuc2FmZWx5IHByb21vdGUgYSBzdHJpbmcgdG8gYSBUcnVzdGVkU2NyaXB0VVJMLCBmYWxsaW5nIGJhY2sgdG8gc3RyaW5nc1xuICogd2hlbiBUcnVzdGVkIFR5cGVzIGFyZSBub3QgYXZhaWxhYmxlLlxuICogVGhpcyBpcyBhIHNlY3VyaXR5LXNlbnNpdGl2ZSBmdW5jdGlvbjsgYW55IHVzZSBvZiB0aGlzIGZ1bmN0aW9uXG4gKiBtdXN0IGdvIHRocm91Z2ggc2VjdXJpdHkgcmV2aWV3LiBJbiBwYXJ0aWN1bGFyLCBpdCBtdXN0IGJlIGFzc3VyZWQgdGhhdCB0aGVcbiAqIHByb3ZpZGVkIHN0cmluZyB3aWxsIG5ldmVyIGNhdXNlIGFuIFhTUyB2dWxuZXJhYmlsaXR5IGlmIHVzZWQgaW4gYSBjb250ZXh0XG4gKiB0aGF0IHdpbGwgY2F1c2UgYSBicm93c2VyIHRvIGxvYWQgYW5kIGV4ZWN1dGUgYSByZXNvdXJjZSwgZS5nLiB3aGVuXG4gKiBhc3NpZ25pbmcgdG8gc2NyaXB0LnNyYy5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIF9fdW5zYWZlQ3JlYXRlVHJ1c3RlZFNjcmlwdFVSTChcbiAgdXJsOiBzdHJpbmdcbik6IFRydXN0ZWRTY3JpcHRVUkwgfCBzdHJpbmcge1xuICByZXR1cm4gZ2V0UG9saWN5KCk/LmNyZWF0ZVNjcmlwdFVSTCh1cmwpIHx8IHVybFxufVxuIl0sIm5hbWVzIjpbIl9fdW5zYWZlQ3JlYXRlVHJ1c3RlZFNjcmlwdFVSTCIsInBvbGljeSIsImdldFBvbGljeSIsIndpbmRvdyIsInRydXN0ZWRUeXBlcyIsImNyZWF0ZVBvbGljeSIsImNyZWF0ZUhUTUwiLCJpbnB1dCIsImNyZWF0ZVNjcmlwdCIsImNyZWF0ZVNjcmlwdFVSTCIsInVybCJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(pages-dir-browser)/./node_modules/next/dist/client/trusted-types.js\n")); - -/***/ }), - -/***/ "(pages-dir-browser)/./node_modules/next/dist/client/webpack.js": -/*!**************************************************!*\ - !*** ./node_modules/next/dist/client/webpack.js ***! - \**************************************************/ -/***/ ((module, exports, __webpack_require__) => { - -"use strict"; -eval(__webpack_require__.ts("// eslint-disable-next-line @typescript-eslint/no-unused-vars\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nconst _deploymentid = __webpack_require__(/*! ../build/deployment-id */ \"(pages-dir-browser)/./node_modules/next/dist/build/deployment-id.js\");\n// If we have a deployment ID, we need to append it to the webpack chunk names\n// I am keeping the process check explicit so this can be statically optimized\nif (false) {}\nself.__next_set_public_path__ = (path)=>{\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n __webpack_require__.p = path;\n};\nif ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=webpack.js.map\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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvY2xpZW50L3dlYnBhY2suanMiLCJtYXBwaW5ncyI6IkFBQUEsNkRBQTZEOzs7OzswQ0FLWDtBQUVsRCw4RUFBOEU7QUFDOUUsOEVBQThFO0FBQzlFLElBQUlBLEtBQThCLEVBQUUsRUFxQm5DO0FBR0NhLEtBQWFDLHdCQUF3QixHQUFHLENBQUNDO0lBQ3pDLDZEQUE2RDtJQUM3REMscUJBQXVCQSxHQUFHRDtBQUM1QiIsInNvdXJjZXMiOlsiRDpcXHNyY1xcY2xpZW50XFx3ZWJwYWNrLnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW51c2VkLXZhcnNcbmRlY2xhcmUgY29uc3QgX193ZWJwYWNrX3JlcXVpcmVfXzogYW55XG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXVudXNlZC12YXJzXG5kZWNsYXJlIGxldCBfX3dlYnBhY2tfcHVibGljX3BhdGhfXzogc3RyaW5nXG5cbmltcG9ydCB7IGdldERlcGxveW1lbnRJZFF1ZXJ5T3JFbXB0eVN0cmluZyB9IGZyb20gJy4uL2J1aWxkL2RlcGxveW1lbnQtaWQnXG5cbi8vIElmIHdlIGhhdmUgYSBkZXBsb3ltZW50IElELCB3ZSBuZWVkIHRvIGFwcGVuZCBpdCB0byB0aGUgd2VicGFjayBjaHVuayBuYW1lc1xuLy8gSSBhbSBrZWVwaW5nIHRoZSBwcm9jZXNzIGNoZWNrIGV4cGxpY2l0IHNvIHRoaXMgY2FuIGJlIHN0YXRpY2FsbHkgb3B0aW1pemVkXG5pZiAocHJvY2Vzcy5lbnYuTkVYVF9ERVBMT1lNRU5UX0lEKSB7XG4gIGNvbnN0IHN1ZmZpeCA9IGdldERlcGxveW1lbnRJZFF1ZXJ5T3JFbXB0eVN0cmluZygpXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby11bmRlZlxuICBjb25zdCBnZXRDaHVua1NjcmlwdEZpbGVuYW1lID0gX193ZWJwYWNrX3JlcXVpcmVfXy51XG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby11bmRlZlxuICBfX3dlYnBhY2tfcmVxdWlyZV9fLnUgPSAoLi4uYXJnczogYW55W10pID0+XG4gICAgLy8gV2UgZW5vZGUgdGhlIGNodW5rIGZpbGVuYW1lIGJlY2F1c2Ugb3VyIHN0YXRpYyBzZXJ2ZXIgbWF0Y2hlcyBhZ2FpbnN0IGFuZCBlbmNvZGVkXG4gICAgLy8gZmlsZW5hbWUgcGF0aC5cbiAgICBnZXRDaHVua1NjcmlwdEZpbGVuYW1lKC4uLmFyZ3MpICsgc3VmZml4XG5cbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXVuZGVmXG4gIGNvbnN0IGdldENodW5rQ3NzRmlsZW5hbWUgPSBfX3dlYnBhY2tfcmVxdWlyZV9fLmtcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXVuZGVmXG4gIF9fd2VicGFja19yZXF1aXJlX18uayA9ICguLi5hcmdzOiBhbnlbXSkgPT5cbiAgICBnZXRDaHVua0Nzc0ZpbGVuYW1lKC4uLmFyZ3MpICsgc3VmZml4XG5cbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXVuZGVmXG4gIGNvbnN0IGdldE1pbmlDc3NGaWxlbmFtZSA9IF9fd2VicGFja19yZXF1aXJlX18ubWluaUNzc0ZcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXVuZGVmXG4gIF9fd2VicGFja19yZXF1aXJlX18ubWluaUNzc0YgPSAoLi4uYXJnczogYW55W10pID0+XG4gICAgZ2V0TWluaUNzc0ZpbGVuYW1lKC4uLmFyZ3MpICsgc3VmZml4XG59XG5cbi8vIElnbm9yZSB0aGUgbW9kdWxlIElEIHRyYW5zZm9ybSBpbiBjbGllbnQuXG47KHNlbGYgYXMgYW55KS5fX25leHRfc2V0X3B1YmxpY19wYXRoX18gPSAocGF0aDogc3RyaW5nKSA9PiB7XG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW51c2VkLXZhcnNcbiAgX193ZWJwYWNrX3B1YmxpY19wYXRoX18gPSBwYXRoXG59XG5cbmV4cG9ydCB7fVxuIl0sIm5hbWVzIjpbInByb2Nlc3MiLCJlbnYiLCJORVhUX0RFUExPWU1FTlRfSUQiLCJzdWZmaXgiLCJnZXREZXBsb3ltZW50SWRRdWVyeU9yRW1wdHlTdHJpbmciLCJnZXRDaHVua1NjcmlwdEZpbGVuYW1lIiwiX193ZWJwYWNrX3JlcXVpcmVfXyIsInUiLCJhcmdzIiwiZ2V0Q2h1bmtDc3NGaWxlbmFtZSIsImsiLCJnZXRNaW5pQ3NzRmlsZW5hbWUiLCJtaW5pQ3NzRiIsInNlbGYiLCJfX25leHRfc2V0X3B1YmxpY19wYXRoX18iLCJwYXRoIiwiX193ZWJwYWNrX3B1YmxpY19wYXRoX18iXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(pages-dir-browser)/./node_modules/next/dist/client/webpack.js\n")); - -/***/ }), - -/***/ "(pages-dir-browser)/./node_modules/next/dist/client/with-router.js": -/*!******************************************************!*\ - !*** ./node_modules/next/dist/client/with-router.js ***! - \******************************************************/ -/***/ ((module, exports, __webpack_require__) => { - -"use strict"; -eval(__webpack_require__.ts("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"default\", ({\n enumerable: true,\n get: function() {\n return withRouter;\n }\n}));\nconst _interop_require_default = __webpack_require__(/*! @swc/helpers/_/_interop_require_default */ \"(pages-dir-browser)/./node_modules/@swc/helpers/esm/_interop_require_default.js\");\nconst _jsxruntime = __webpack_require__(/*! react/jsx-runtime */ \"(pages-dir-browser)/./node_modules/react/jsx-runtime.js\");\nconst _react = /*#__PURE__*/ _interop_require_default._(__webpack_require__(/*! react */ \"(pages-dir-browser)/./node_modules/react/index.js\"));\nconst _router = __webpack_require__(/*! ./router */ \"(pages-dir-browser)/./node_modules/next/dist/client/router.js\");\nfunction withRouter(ComposedComponent) {\n function WithRouterWrapper(props) {\n return /*#__PURE__*/ (0, _jsxruntime.jsx)(ComposedComponent, {\n router: (0, _router.useRouter)(),\n ...props\n });\n }\n WithRouterWrapper.getInitialProps = ComposedComponent.getInitialProps;\n WithRouterWrapper.origGetInitialProps = ComposedComponent.origGetInitialProps;\n if (true) {\n const name = ComposedComponent.displayName || ComposedComponent.name || 'Unknown';\n WithRouterWrapper.displayName = \"withRouter(\" + name + \")\";\n }\n return WithRouterWrapper;\n}\nif ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=with-router.js.map\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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvY2xpZW50L3dpdGgtcm91dGVyLmpzIiwibWFwcGluZ3MiOiI7Ozs7MkNBa0JBOzs7ZUFBd0JBOzs7Ozs0RUFsQlE7b0NBT047QUFXWCxTQUFTQSxXQUl0QkMsaUJBQStDO0lBRS9DLFNBQVNDLGtCQUFrQkMsS0FBVTtRQUNuQyxxQkFBTyxxQkFBQ0YsbUJBQUFBO1lBQWtCRyxRQUFRQyxDQUFBQSxHQUFBQSxRQUFBQSxTQUFBQTtZQUFjLEdBQUdGLEtBQUs7O0lBQzFEO0lBRUFELGtCQUFrQkksZUFBZSxHQUFHTCxrQkFBa0JLLGVBQWU7SUFFbkVKLGtCQUEwQkssbUJBQW1CLEdBQzdDTixrQkFDQU0sbUJBQW1CO0lBQ3JCLElBQUlDLElBQW9CLEVBQW1CO1FBQ3pDLE1BQU1HLE9BQ0pWLGtCQUFrQlcsV0FBVyxJQUFJWCxrQkFBa0JVLElBQUksSUFBSTtRQUM3RFQsa0JBQWtCVSxXQUFXLEdBQUksZ0JBQWFELE9BQUs7SUFDckQ7SUFFQSxPQUFPVDtBQUNUIiwic291cmNlcyI6WyJEOlxcc3JjXFxjbGllbnRcXHdpdGgtcm91dGVyLnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QsIHsgdHlwZSBKU1ggfSBmcm9tICdyZWFjdCdcbmltcG9ydCB0eXBlIHtcbiAgQmFzZUNvbnRleHQsXG4gIE5leHRDb21wb25lbnRUeXBlLFxuICBOZXh0UGFnZUNvbnRleHQsXG59IGZyb20gJy4uL3NoYXJlZC9saWIvdXRpbHMnXG5pbXBvcnQgdHlwZSB7IE5leHRSb3V0ZXIgfSBmcm9tICcuL3JvdXRlcidcbmltcG9ydCB7IHVzZVJvdXRlciB9IGZyb20gJy4vcm91dGVyJ1xuXG5leHBvcnQgdHlwZSBXaXRoUm91dGVyUHJvcHMgPSB7XG4gIHJvdXRlcjogTmV4dFJvdXRlclxufVxuXG5leHBvcnQgdHlwZSBFeGNsdWRlUm91dGVyUHJvcHM8UD4gPSBQaWNrPFxuICBQLFxuICBFeGNsdWRlPGtleW9mIFAsIGtleW9mIFdpdGhSb3V0ZXJQcm9wcz5cbj5cblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gd2l0aFJvdXRlcjxcbiAgUCBleHRlbmRzIFdpdGhSb3V0ZXJQcm9wcyxcbiAgQyBleHRlbmRzIEJhc2VDb250ZXh0ID0gTmV4dFBhZ2VDb250ZXh0LFxuPihcbiAgQ29tcG9zZWRDb21wb25lbnQ6IE5leHRDb21wb25lbnRUeXBlPEMsIGFueSwgUD5cbik6IFJlYWN0LkNvbXBvbmVudFR5cGU8RXhjbHVkZVJvdXRlclByb3BzPFA+PiB7XG4gIGZ1bmN0aW9uIFdpdGhSb3V0ZXJXcmFwcGVyKHByb3BzOiBhbnkpOiBKU1guRWxlbWVudCB7XG4gICAgcmV0dXJuIDxDb21wb3NlZENvbXBvbmVudCByb3V0ZXI9e3VzZVJvdXRlcigpfSB7Li4ucHJvcHN9IC8+XG4gIH1cblxuICBXaXRoUm91dGVyV3JhcHBlci5nZXRJbml0aWFsUHJvcHMgPSBDb21wb3NlZENvbXBvbmVudC5nZXRJbml0aWFsUHJvcHNcbiAgLy8gVGhpcyBpcyBuZWVkZWQgdG8gYWxsb3cgY2hlY2tpbmcgZm9yIGN1c3RvbSBnZXRJbml0aWFsUHJvcHMgaW4gX2FwcFxuICA7KFdpdGhSb3V0ZXJXcmFwcGVyIGFzIGFueSkub3JpZ0dldEluaXRpYWxQcm9wcyA9IChcbiAgICBDb21wb3NlZENvbXBvbmVudCBhcyBhbnlcbiAgKS5vcmlnR2V0SW5pdGlhbFByb3BzXG4gIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSB7XG4gICAgY29uc3QgbmFtZSA9XG4gICAgICBDb21wb3NlZENvbXBvbmVudC5kaXNwbGF5TmFtZSB8fCBDb21wb3NlZENvbXBvbmVudC5uYW1lIHx8ICdVbmtub3duJ1xuICAgIFdpdGhSb3V0ZXJXcmFwcGVyLmRpc3BsYXlOYW1lID0gYHdpdGhSb3V0ZXIoJHtuYW1lfSlgXG4gIH1cblxuICByZXR1cm4gV2l0aFJvdXRlcldyYXBwZXJcbn1cbiJdLCJuYW1lcyI6WyJ3aXRoUm91dGVyIiwiQ29tcG9zZWRDb21wb25lbnQiLCJXaXRoUm91dGVyV3JhcHBlciIsInByb3BzIiwicm91dGVyIiwidXNlUm91dGVyIiwiZ2V0SW5pdGlhbFByb3BzIiwib3JpZ0dldEluaXRpYWxQcm9wcyIsInByb2Nlc3MiLCJlbnYiLCJOT0RFX0VOViIsIm5hbWUiLCJkaXNwbGF5TmFtZSJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(pages-dir-browser)/./node_modules/next/dist/client/with-router.js\n")); - -/***/ }), - -/***/ "(pages-dir-browser)/./node_modules/next/dist/compiled/next-devtools/index.js": -/*!****************************************************************!*\ - !*** ./node_modules/next/dist/compiled/next-devtools/index.js ***! - \****************************************************************/ -/***/ ((__unused_webpack_module, exports, __webpack_require__) => { - -eval(__webpack_require__.ts("/* provided dependency */ var process = __webpack_require__(/*! process */ \"(pages-dir-browser)/./node_modules/process/browser.js\");\nvar __webpack_modules__={\"../../node_modules/.pnpm/css-loader@7.1.2_@rspack+core@1.4.5_@swc+helpers@0.5.15__webpack@5.98.0_@swc+core@1.11.24_@sw_wm7ee5ic4mofrhisudwon4qpq4/node_modules/css-loader/dist/cjs.js!./src/next-devtools/components/tooltip.css\":function(e,n,t){\"use strict\";t.d(n,{Z:()=>l});var r=t(\"../../node_modules/.pnpm/css-loader@7.1.2_@rspack+core@1.4.5_@swc+helpers@0.5.15__webpack@5.98.0_@swc+core@1.11.24_@sw_wm7ee5ic4mofrhisudwon4qpq4/node_modules/css-loader/dist/runtime/sourceMaps.js\"),o=t.n(r),a=t(\"../../node_modules/.pnpm/css-loader@7.1.2_@rspack+core@1.4.5_@swc+helpers@0.5.15__webpack@5.98.0_@swc+core@1.11.24_@sw_wm7ee5ic4mofrhisudwon4qpq4/node_modules/css-loader/dist/runtime/api.js\"),i=t.n(a)()(o());i.push([e.id,`.tooltip-wrapper {\n position: relative;\n display: inline-block;\n line-height: 1;\n}\n\n.tooltip {\n position: relative;\n padding: 6px 12px;\n border-radius: 8px;\n font-size: 14px;\n line-height: 1.4;\n pointer-events: none;\n}\n\n.tooltip-arrow {\n position: absolute;\n width: 0;\n height: 0;\n border-style: solid;\n border-width: var(--arrow-size, 6px);\n border-color: transparent;\n}\n\n.tooltip-arrow--top {\n border-width: var(--arrow-size, 6px) var(--arrow-size, 6px) 0\n var(--arrow-size, 6px);\n border-top-color: var(--tooltip-bg-color);\n bottom: 0;\n transform: translateY(100%);\n}\n\n.tooltip-arrow--bottom {\n border-width: 0 var(--arrow-size, 6px) var(--arrow-size, 6px)\n var(--arrow-size, 6px);\n border-bottom-color: var(--tooltip-bg-color);\n top: 0;\n transform: translateY(-100%);\n}\n\n.tooltip-arrow--left {\n border-width: var(--arrow-size, 6px) 0 var(--arrow-size, 6px)\n var(--arrow-size, 6px);\n border-left-color: var(--tooltip-bg-color);\n right: 0;\n transform: translateX(100%);\n}\n\n.tooltip-arrow--right {\n border-width: var(--arrow-size, 6px) var(--arrow-size, 6px)\n var(--arrow-size, 6px) 0;\n border-right-color: var(--tooltip-bg-color);\n left: 0;\n transform: translateX(-100%);\n}\n\n.tooltip-positioner {\n z-index: var(--top-z-index);\n}\n`,\"\",{version:3,sources:[\"webpack://./src/next-devtools/components/tooltip.css\"],names:[],mappings:\"AAAA;EACE,kBAAkB;EAClB,qBAAqB;EACrB,cAAc;AAChB;;AAEA;EACE,kBAAkB;EAClB,iBAAiB;EACjB,kBAAkB;EAClB,eAAe;EACf,gBAAgB;EAChB,oBAAoB;AACtB;;AAEA;EACE,kBAAkB;EAClB,QAAQ;EACR,SAAS;EACT,mBAAmB;EACnB,oCAAoC;EACpC,yBAAyB;AAC3B;;AAEA;EACE;0BACwB;EACxB,yCAAyC;EACzC,SAAS;EACT,2BAA2B;AAC7B;;AAEA;EACE;0BACwB;EACxB,4CAA4C;EAC5C,MAAM;EACN,4BAA4B;AAC9B;;AAEA;EACE;0BACwB;EACxB,0CAA0C;EAC1C,QAAQ;EACR,2BAA2B;AAC7B;;AAEA;EACE;4BAC0B;EAC1B,2CAA2C;EAC3C,OAAO;EACP,4BAA4B;AAC9B;;AAEA;EACE,2BAA2B;AAC7B\",sourcesContent:[\".tooltip-wrapper {\\n position: relative;\\n display: inline-block;\\n line-height: 1;\\n}\\n\\n.tooltip {\\n position: relative;\\n padding: 6px 12px;\\n border-radius: 8px;\\n font-size: 14px;\\n line-height: 1.4;\\n pointer-events: none;\\n}\\n\\n.tooltip-arrow {\\n position: absolute;\\n width: 0;\\n height: 0;\\n border-style: solid;\\n border-width: var(--arrow-size, 6px);\\n border-color: transparent;\\n}\\n\\n.tooltip-arrow--top {\\n border-width: var(--arrow-size, 6px) var(--arrow-size, 6px) 0\\n var(--arrow-size, 6px);\\n border-top-color: var(--tooltip-bg-color);\\n bottom: 0;\\n transform: translateY(100%);\\n}\\n\\n.tooltip-arrow--bottom {\\n border-width: 0 var(--arrow-size, 6px) var(--arrow-size, 6px)\\n var(--arrow-size, 6px);\\n border-bottom-color: var(--tooltip-bg-color);\\n top: 0;\\n transform: translateY(-100%);\\n}\\n\\n.tooltip-arrow--left {\\n border-width: var(--arrow-size, 6px) 0 var(--arrow-size, 6px)\\n var(--arrow-size, 6px);\\n border-left-color: var(--tooltip-bg-color);\\n right: 0;\\n transform: translateX(100%);\\n}\\n\\n.tooltip-arrow--right {\\n border-width: var(--arrow-size, 6px) var(--arrow-size, 6px)\\n var(--arrow-size, 6px) 0;\\n border-right-color: var(--tooltip-bg-color);\\n left: 0;\\n transform: translateX(-100%);\\n}\\n\\n.tooltip-positioner {\\n z-index: var(--top-z-index);\\n}\\n\"],sourceRoot:\"\"}]);let l=i},\"../../node_modules/.pnpm/css-loader@7.1.2_@rspack+core@1.4.5_@swc+helpers@0.5.15__webpack@5.98.0_@swc+core@1.11.24_@sw_wm7ee5ic4mofrhisudwon4qpq4/node_modules/css-loader/dist/cjs.js!./src/next-devtools/dev-overlay/components/devtools-panel/resize/resize-handle.css\":function(e,n,t){\"use strict\";t.d(n,{Z:()=>l});var r=t(\"../../node_modules/.pnpm/css-loader@7.1.2_@rspack+core@1.4.5_@swc+helpers@0.5.15__webpack@5.98.0_@swc+core@1.11.24_@sw_wm7ee5ic4mofrhisudwon4qpq4/node_modules/css-loader/dist/runtime/sourceMaps.js\"),o=t.n(r),a=t(\"../../node_modules/.pnpm/css-loader@7.1.2_@rspack+core@1.4.5_@swc+helpers@0.5.15__webpack@5.98.0_@swc+core@1.11.24_@sw_wm7ee5ic4mofrhisudwon4qpq4/node_modules/css-loader/dist/runtime/api.js\"),i=t.n(a)()(o());i.push([e.id,`.resize-container {\n position: absolute;\n /* todo: better z index */\n z-index: 10;\n /* todo: is this needed */\n background: transparent;\n}\n\n.resize-line {\n position: absolute;\n /* todo smarter z index */\n z-index: -1;\n pointer-events: none;\n /* a normal exit animation curve- at this point the exit animation is */\n /* immediately responsive so we don't need a bespoke curve */\n transition: transform 0.4s cubic-bezier(0.4, 0, 0.2, 1);\n /* todo: better var? */\n border: 1px solid var(--color-gray-100);\n}\n\n/* start really fast because we start super hidden initially behind the panel, otherwise feels like an unintended animation delay */\n.resize-container:hover ~ .resize-line {\n transition: transform 0.2s cubic-bezier(0.05, 0.9, 0.2, 1); /* Fast start for animate in */\n}\n\n.resize-container.right,\n.resize-container.left {\n top: 0;\n height: 100%;\n width: 25px;\n cursor: ew-resize;\n}\n\n/* todo: don't hard code all these values/use vars */\n\n.resize-container.bottom,\n.resize-container.top {\n left: 0;\n width: 100%;\n height: 25px;\n cursor: ns-resize;\n}\n\n.resize-container.top {\n top: -12px;\n}\n.resize-container.bottom {\n bottom: -12px;\n}\n.resize-container.left {\n left: -12px;\n}\n.resize-container.right {\n right: -12px;\n}\n\n.resize-container.top-left,\n.resize-container.top-right,\n.resize-container.bottom-left,\n.resize-container.bottom-right {\n width: 32px;\n height: 32px;\n z-index: 15;\n}\n\n.resize-container.top-left {\n top: -16px;\n left: -16px;\n cursor: nwse-resize;\n}\n.resize-container.top-right {\n top: -16px;\n right: -16px;\n cursor: nesw-resize;\n}\n.resize-container.bottom-left {\n bottom: -16px;\n left: -16px;\n cursor: nesw-resize;\n}\n.resize-container.bottom-right {\n bottom: -16px;\n right: -16px;\n cursor: nwse-resize;\n}\n\n.resize-line.top,\n.resize-line.bottom {\n height: 28px;\n width: 100%;\n background-color: var(--color-background-100);\n}\n\n.resize-line.left,\n.resize-line.right {\n width: 28px;\n height: 100%;\n background-color: var(--color-background-100);\n}\n\n.resize-line.top {\n top: -12px;\n left: calc(-1 * var(--border-left, 2px));\n width: calc(100% + var(--border-horizontal, 4px));\n border-radius: var(--rounded-md) var(--rounded-md) 0 0;\n transform: translateY(28px);\n}\n\n.resize-line.bottom {\n bottom: -12px;\n left: calc(-1 * var(--border-left, 2px));\n width: calc(100% + var(--border-horizontal, 4px));\n border-radius: 0 0 var(--rounded-md) var(--rounded-md);\n transform: translateY(-28px);\n}\n\n.resize-line.left {\n top: calc(-1 * var(--border-top, 2px));\n left: -12px;\n height: calc(100% + var(--border-vertical, 4px));\n border-radius: var(--rounded-md) 0 0 var(--rounded-md);\n transform: translateX(28px);\n}\n\n.resize-line.right {\n top: calc(-1 * var(--border-top, 2px));\n right: -12px;\n height: calc(100% + var(--border-vertical, 4px));\n border-radius: 0 var(--rounded-md) var(--rounded-md) 0;\n transform: translateX(-28px);\n}\n\n.resize-container.right:hover ~ .resize-line.right,\n.resize-container.left:hover ~ .resize-line.left,\n.resize-line.right.dragging,\n.resize-line.left.dragging {\n transform: translateX(0);\n}\n\n.resize-container.bottom:hover ~ .resize-line.bottom,\n.resize-container.top:hover ~ .resize-line.top,\n.resize-line.bottom.dragging,\n.resize-line.top.dragging {\n transform: translateY(0);\n}\n\n/* make sure that we don't show multiple handles at once\n * we should only ever show the currently resizing handle\n * regardless of hover state \n */\n.resize-container.no-hover.right:hover ~ .resize-line.right {\n transform: translateX(-28px);\n}\n.resize-container.no-hover.left:hover ~ .resize-line.left {\n transform: translateX(28px);\n}\n.resize-container.no-hover.bottom:hover ~ .resize-line.bottom {\n transform: translateY(-28px);\n}\n.resize-container.no-hover.top:hover ~ .resize-line.top {\n transform: translateY(28px);\n}\n`,\"\",{version:3,sources:[\"webpack://./src/next-devtools/dev-overlay/components/devtools-panel/resize/resize-handle.css\"],names:[],mappings:\"AAAA;EACE,kBAAkB;EAClB,yBAAyB;EACzB,WAAW;EACX,yBAAyB;EACzB,uBAAuB;AACzB;;AAEA;EACE,kBAAkB;EAClB,yBAAyB;EACzB,WAAW;EACX,oBAAoB;EACpB,uEAAuE;EACvE,4DAA4D;EAC5D,uDAAuD;EACvD,sBAAsB;EACtB,uCAAuC;AACzC;;AAEA,mIAAmI;AACnI;EACE,0DAA0D,EAAE,8BAA8B;AAC5F;;AAEA;;EAEE,MAAM;EACN,YAAY;EACZ,WAAW;EACX,iBAAiB;AACnB;;AAEA,oDAAoD;;AAEpD;;EAEE,OAAO;EACP,WAAW;EACX,YAAY;EACZ,iBAAiB;AACnB;;AAEA;EACE,UAAU;AACZ;AACA;EACE,aAAa;AACf;AACA;EACE,WAAW;AACb;AACA;EACE,YAAY;AACd;;AAEA;;;;EAIE,WAAW;EACX,YAAY;EACZ,WAAW;AACb;;AAEA;EACE,UAAU;EACV,WAAW;EACX,mBAAmB;AACrB;AACA;EACE,UAAU;EACV,YAAY;EACZ,mBAAmB;AACrB;AACA;EACE,aAAa;EACb,WAAW;EACX,mBAAmB;AACrB;AACA;EACE,aAAa;EACb,YAAY;EACZ,mBAAmB;AACrB;;AAEA;;EAEE,YAAY;EACZ,WAAW;EACX,6CAA6C;AAC/C;;AAEA;;EAEE,WAAW;EACX,YAAY;EACZ,6CAA6C;AAC/C;;AAEA;EACE,UAAU;EACV,wCAAwC;EACxC,iDAAiD;EACjD,sDAAsD;EACtD,2BAA2B;AAC7B;;AAEA;EACE,aAAa;EACb,wCAAwC;EACxC,iDAAiD;EACjD,sDAAsD;EACtD,4BAA4B;AAC9B;;AAEA;EACE,sCAAsC;EACtC,WAAW;EACX,gDAAgD;EAChD,sDAAsD;EACtD,2BAA2B;AAC7B;;AAEA;EACE,sCAAsC;EACtC,YAAY;EACZ,gDAAgD;EAChD,sDAAsD;EACtD,4BAA4B;AAC9B;;AAEA;;;;EAIE,wBAAwB;AAC1B;;AAEA;;;;EAIE,wBAAwB;AAC1B;;AAEA;;;EAGE;AACF;EACE,4BAA4B;AAC9B;AACA;EACE,2BAA2B;AAC7B;AACA;EACE,4BAA4B;AAC9B;AACA;EACE,2BAA2B;AAC7B\",sourcesContent:[\".resize-container {\\n position: absolute;\\n /* todo: better z index */\\n z-index: 10;\\n /* todo: is this needed */\\n background: transparent;\\n}\\n\\n.resize-line {\\n position: absolute;\\n /* todo smarter z index */\\n z-index: -1;\\n pointer-events: none;\\n /* a normal exit animation curve- at this point the exit animation is */\\n /* immediately responsive so we don't need a bespoke curve */\\n transition: transform 0.4s cubic-bezier(0.4, 0, 0.2, 1);\\n /* todo: better var? */\\n border: 1px solid var(--color-gray-100);\\n}\\n\\n/* start really fast because we start super hidden initially behind the panel, otherwise feels like an unintended animation delay */\\n.resize-container:hover ~ .resize-line {\\n transition: transform 0.2s cubic-bezier(0.05, 0.9, 0.2, 1); /* Fast start for animate in */\\n}\\n\\n.resize-container.right,\\n.resize-container.left {\\n top: 0;\\n height: 100%;\\n width: 25px;\\n cursor: ew-resize;\\n}\\n\\n/* todo: don't hard code all these values/use vars */\\n\\n.resize-container.bottom,\\n.resize-container.top {\\n left: 0;\\n width: 100%;\\n height: 25px;\\n cursor: ns-resize;\\n}\\n\\n.resize-container.top {\\n top: -12px;\\n}\\n.resize-container.bottom {\\n bottom: -12px;\\n}\\n.resize-container.left {\\n left: -12px;\\n}\\n.resize-container.right {\\n right: -12px;\\n}\\n\\n.resize-container.top-left,\\n.resize-container.top-right,\\n.resize-container.bottom-left,\\n.resize-container.bottom-right {\\n width: 32px;\\n height: 32px;\\n z-index: 15;\\n}\\n\\n.resize-container.top-left {\\n top: -16px;\\n left: -16px;\\n cursor: nwse-resize;\\n}\\n.resize-container.top-right {\\n top: -16px;\\n right: -16px;\\n cursor: nesw-resize;\\n}\\n.resize-container.bottom-left {\\n bottom: -16px;\\n left: -16px;\\n cursor: nesw-resize;\\n}\\n.resize-container.bottom-right {\\n bottom: -16px;\\n right: -16px;\\n cursor: nwse-resize;\\n}\\n\\n.resize-line.top,\\n.resize-line.bottom {\\n height: 28px;\\n width: 100%;\\n background-color: var(--color-background-100);\\n}\\n\\n.resize-line.left,\\n.resize-line.right {\\n width: 28px;\\n height: 100%;\\n background-color: var(--color-background-100);\\n}\\n\\n.resize-line.top {\\n top: -12px;\\n left: calc(-1 * var(--border-left, 2px));\\n width: calc(100% + var(--border-horizontal, 4px));\\n border-radius: var(--rounded-md) var(--rounded-md) 0 0;\\n transform: translateY(28px);\\n}\\n\\n.resize-line.bottom {\\n bottom: -12px;\\n left: calc(-1 * var(--border-left, 2px));\\n width: calc(100% + var(--border-horizontal, 4px));\\n border-radius: 0 0 var(--rounded-md) var(--rounded-md);\\n transform: translateY(-28px);\\n}\\n\\n.resize-line.left {\\n top: calc(-1 * var(--border-top, 2px));\\n left: -12px;\\n height: calc(100% + var(--border-vertical, 4px));\\n border-radius: var(--rounded-md) 0 0 var(--rounded-md);\\n transform: translateX(28px);\\n}\\n\\n.resize-line.right {\\n top: calc(-1 * var(--border-top, 2px));\\n right: -12px;\\n height: calc(100% + var(--border-vertical, 4px));\\n border-radius: 0 var(--rounded-md) var(--rounded-md) 0;\\n transform: translateX(-28px);\\n}\\n\\n.resize-container.right:hover ~ .resize-line.right,\\n.resize-container.left:hover ~ .resize-line.left,\\n.resize-line.right.dragging,\\n.resize-line.left.dragging {\\n transform: translateX(0);\\n}\\n\\n.resize-container.bottom:hover ~ .resize-line.bottom,\\n.resize-container.top:hover ~ .resize-line.top,\\n.resize-line.bottom.dragging,\\n.resize-line.top.dragging {\\n transform: translateY(0);\\n}\\n\\n/* make sure that we don't show multiple handles at once\\n * we should only ever show the currently resizing handle\\n * regardless of hover state \\n */\\n.resize-container.no-hover.right:hover ~ .resize-line.right {\\n transform: translateX(-28px);\\n}\\n.resize-container.no-hover.left:hover ~ .resize-line.left {\\n transform: translateX(28px);\\n}\\n.resize-container.no-hover.bottom:hover ~ .resize-line.bottom {\\n transform: translateY(-28px);\\n}\\n.resize-container.no-hover.top:hover ~ .resize-line.top {\\n transform: translateY(28px);\\n}\\n\"],sourceRoot:\"\"}]);let l=i},\"../../node_modules/.pnpm/css-loader@7.1.2_@rspack+core@1.4.5_@swc+helpers@0.5.15__webpack@5.98.0_@swc+core@1.11.24_@sw_wm7ee5ic4mofrhisudwon4qpq4/node_modules/css-loader/dist/cjs.js!./src/next-devtools/dev-overlay/components/overview/segment-boundary-trigger.css\":function(e,n,t){\"use strict\";t.d(n,{Z:()=>l});var r=t(\"../../node_modules/.pnpm/css-loader@7.1.2_@rspack+core@1.4.5_@swc+helpers@0.5.15__webpack@5.98.0_@swc+core@1.11.24_@sw_wm7ee5ic4mofrhisudwon4qpq4/node_modules/css-loader/dist/runtime/sourceMaps.js\"),o=t.n(r),a=t(\"../../node_modules/.pnpm/css-loader@7.1.2_@rspack+core@1.4.5_@swc+helpers@0.5.15__webpack@5.98.0_@swc+core@1.11.24_@sw_wm7ee5ic4mofrhisudwon4qpq4/node_modules/css-loader/dist/runtime/api.js\"),i=t.n(a)()(o());i.push([e.id,`.segment-boundary-trigger {\n display: flex;\n align-items: center;\n gap: 4px;\n padding: 4px 6px;\n line-height: 16px;\n font-weight: 500;\n color: var(--color-gray-1000);\n border-radius: 999px;\n border: none;\n font-size: var(--size-12);\n cursor: pointer;\n transition: background-color 0.15s ease;\n}\n\n.segment-boundary-trigger-text {\n font-size: var(--size-12);\n font-weight: 500;\n user-select: none;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n}\n\n.segment-boundary-trigger-text .plus-icon {\n transition: transform 0.25s ease;\n}\n\n.segment-boundary-trigger-text:hover .plus-icon {\n color: var(--color-gray-800);\n}\n\n.segment-boundary-trigger svg {\n width: 14px;\n height: 14px;\n flex-shrink: 0;\n vertical-align: middle;\n}\n\n.segment-boundary-trigger:hover svg {\n color: var(--color-gray-700);\n}\n\n.segment-boundary-trigger[disabled] svg,\n.segment-boundary-trigger[disabled]:hover svg {\n color: var(--color-gray-400);\n cursor: not-allowed;\n}\n\n.segment-boundary-dropdown {\n padding: 8px;\n background: var(--color-background-100);\n border: 1px solid var(--color-gray-400);\n border-radius: 16px;\n min-width: 120px;\n user-select: none;\n cursor: default;\n box-shadow: 0px 4px 8px -4px color-mix(in srgb, var(--color-gray-900) 4%, transparent);\n}\n\n.segment-boundary-dropdown-positioner {\n z-index: var(--top-z-index);\n}\n\n.segment-boundary-dropdown-item {\n display: flex;\n align-items: center;\n padding: 8px;\n line-height: 20px;\n font-size: 14px;\n border-radius: 6px;\n color: var(--color-gray-1000);\n cursor: pointer;\n min-width: 220px;\n border: none;\n background: none;\n width: 100%;\n}\n\n.segment-boundary-dropdown-item[data-disabled] {\n color: var(--color-gray-400);\n cursor: not-allowed;\n}\n\n.segment-boundary-dropdown-item svg {\n margin-right: 12px;\n color: currentColor;\n}\n\n.segment-boundary-dropdown-item:hover {\n background: var(--color-gray-200);\n}\n\n.segment-boundary-dropdown-item:first-child {\n border-top-left-radius: 4px;\n border-top-right-radius: 4px;\n}\n\n.segment-boundary-dropdown-item:last-child {\n border-bottom-left-radius: 4px;\n border-bottom-right-radius: 4px;\n}\n\n.segment-boundary-group-label {\n padding: 8px;\n font-size: 13px;\n line-height: 16px;\n font-weight: 400;\n color: var(--color-gray-900);\n}\n`,\"\",{version:3,sources:[\"webpack://./src/next-devtools/dev-overlay/components/overview/segment-boundary-trigger.css\"],names:[],mappings:\"AAAA;EACE,aAAa;EACb,mBAAmB;EACnB,QAAQ;EACR,gBAAgB;EAChB,iBAAiB;EACjB,gBAAgB;EAChB,6BAA6B;EAC7B,oBAAoB;EACpB,YAAY;EACZ,yBAAyB;EACzB,eAAe;EACf,uCAAuC;AACzC;;AAEA;EACE,yBAAyB;EACzB,gBAAgB;EAChB,iBAAiB;EACjB,oBAAoB;EACpB,mBAAmB;EACnB,uBAAuB;AACzB;;AAEA;EACE,gCAAgC;AAClC;;AAEA;EACE,4BAA4B;AAC9B;;AAEA;EACE,WAAW;EACX,YAAY;EACZ,cAAc;EACd,sBAAsB;AACxB;;AAEA;EACE,4BAA4B;AAC9B;;AAEA;;EAEE,4BAA4B;EAC5B,mBAAmB;AACrB;;AAEA;EACE,YAAY;EACZ,uCAAuC;EACvC,uCAAuC;EACvC,mBAAmB;EACnB,gBAAgB;EAChB,iBAAiB;EACjB,eAAe;EACf,sFAAsF;AACxF;;AAEA;EACE,2BAA2B;AAC7B;;AAEA;EACE,aAAa;EACb,mBAAmB;EACnB,YAAY;EACZ,iBAAiB;EACjB,eAAe;EACf,kBAAkB;EAClB,6BAA6B;EAC7B,eAAe;EACf,gBAAgB;EAChB,YAAY;EACZ,gBAAgB;EAChB,WAAW;AACb;;AAEA;EACE,4BAA4B;EAC5B,mBAAmB;AACrB;;AAEA;EACE,kBAAkB;EAClB,mBAAmB;AACrB;;AAEA;EACE,iCAAiC;AACnC;;AAEA;EACE,2BAA2B;EAC3B,4BAA4B;AAC9B;;AAEA;EACE,8BAA8B;EAC9B,+BAA+B;AACjC;;AAEA;EACE,YAAY;EACZ,eAAe;EACf,iBAAiB;EACjB,gBAAgB;EAChB,4BAA4B;AAC9B\",sourcesContent:[\".segment-boundary-trigger {\\n display: flex;\\n align-items: center;\\n gap: 4px;\\n padding: 4px 6px;\\n line-height: 16px;\\n font-weight: 500;\\n color: var(--color-gray-1000);\\n border-radius: 999px;\\n border: none;\\n font-size: var(--size-12);\\n cursor: pointer;\\n transition: background-color 0.15s ease;\\n}\\n\\n.segment-boundary-trigger-text {\\n font-size: var(--size-12);\\n font-weight: 500;\\n user-select: none;\\n display: inline-flex;\\n align-items: center;\\n justify-content: center;\\n}\\n\\n.segment-boundary-trigger-text .plus-icon {\\n transition: transform 0.25s ease;\\n}\\n\\n.segment-boundary-trigger-text:hover .plus-icon {\\n color: var(--color-gray-800);\\n}\\n\\n.segment-boundary-trigger svg {\\n width: 14px;\\n height: 14px;\\n flex-shrink: 0;\\n vertical-align: middle;\\n}\\n\\n.segment-boundary-trigger:hover svg {\\n color: var(--color-gray-700);\\n}\\n\\n.segment-boundary-trigger[disabled] svg,\\n.segment-boundary-trigger[disabled]:hover svg {\\n color: var(--color-gray-400);\\n cursor: not-allowed;\\n}\\n\\n.segment-boundary-dropdown {\\n padding: 8px;\\n background: var(--color-background-100);\\n border: 1px solid var(--color-gray-400);\\n border-radius: 16px;\\n min-width: 120px;\\n user-select: none;\\n cursor: default;\\n box-shadow: 0px 4px 8px -4px color-mix(in srgb, var(--color-gray-900) 4%, transparent);\\n}\\n\\n.segment-boundary-dropdown-positioner {\\n z-index: var(--top-z-index);\\n}\\n\\n.segment-boundary-dropdown-item {\\n display: flex;\\n align-items: center;\\n padding: 8px;\\n line-height: 20px;\\n font-size: 14px;\\n border-radius: 6px;\\n color: var(--color-gray-1000);\\n cursor: pointer;\\n min-width: 220px;\\n border: none;\\n background: none;\\n width: 100%;\\n}\\n\\n.segment-boundary-dropdown-item[data-disabled] {\\n color: var(--color-gray-400);\\n cursor: not-allowed;\\n}\\n\\n.segment-boundary-dropdown-item svg {\\n margin-right: 12px;\\n color: currentColor;\\n}\\n\\n.segment-boundary-dropdown-item:hover {\\n background: var(--color-gray-200);\\n}\\n\\n.segment-boundary-dropdown-item:first-child {\\n border-top-left-radius: 4px;\\n border-top-right-radius: 4px;\\n}\\n\\n.segment-boundary-dropdown-item:last-child {\\n border-bottom-left-radius: 4px;\\n border-bottom-right-radius: 4px;\\n}\\n\\n.segment-boundary-group-label {\\n padding: 8px;\\n font-size: 13px;\\n line-height: 16px;\\n font-weight: 400;\\n color: var(--color-gray-900);\\n}\\n\"],sourceRoot:\"\"}]);let l=i},\"../../node_modules/.pnpm/css-loader@7.1.2_@rspack+core@1.4.5_@swc+helpers@0.5.15__webpack@5.98.0_@swc+core@1.11.24_@sw_wm7ee5ic4mofrhisudwon4qpq4/node_modules/css-loader/dist/cjs.js!./src/next-devtools/dev-overlay/components/overview/segment-explorer.css\":function(e,n,t){\"use strict\";t.d(n,{Z:()=>l});var r=t(\"../../node_modules/.pnpm/css-loader@7.1.2_@rspack+core@1.4.5_@swc+helpers@0.5.15__webpack@5.98.0_@swc+core@1.11.24_@sw_wm7ee5ic4mofrhisudwon4qpq4/node_modules/css-loader/dist/runtime/sourceMaps.js\"),o=t.n(r),a=t(\"../../node_modules/.pnpm/css-loader@7.1.2_@rspack+core@1.4.5_@swc+helpers@0.5.15__webpack@5.98.0_@swc+core@1.11.24_@sw_wm7ee5ic4mofrhisudwon4qpq4/node_modules/css-loader/dist/runtime/api.js\"),i=t.n(a)()(o());i.push([e.id,`.segment-explorer-content {\n font-size: var(--size-14);\n padding: 0 8px;\n width: 700px;\n height: 400px;\n max-width: calc(100vw - 40px);\n max-height: calc(100vh - 240px);\n}\n\n.segment-explorer-page-route-bar {\n display: flex;\n align-items: center;\n padding: 14px 16px;\n background-color: var(--color-background-200);\n gap: 12px;\n}\n\n.segment-explorer-page-route-bar-path {\n font-size: var(--size-14);\n font-weight: 500;\n color: var(--color-gray-1000);\n font-family: var(--font-mono);\n white-space: nowrap;\n line-height: 20px;\n}\n\n.segment-explorer-item {\n margin: 4px 0;\n border-radius: 6px;\n}\n\n.segment-explorer-item:nth-child(even) {\n background-color: var(--color-background-200);\n}\n\n.segment-explorer-item-row {\n display: flex;\n align-items: center;\n padding-top: 10px;\n padding-bottom: 10px;\n padding-right: 4px;\n white-space: pre;\n cursor: default;\n color: var(--color-gray-1000);\n}\n\n.segment-explorer-children--intended {\n padding-left: 16px;\n}\n\n.segment-explorer-filename {\n display: inline-flex;\n width: 100%;\n align-items: center;\n}\n\n.segment-explorer-filename select {\n margin-left: auto;\n}\n\n.segment-explorer-filename--path {\n margin-right: auto;\n}\n.segment-explorer-filename--path small {\n display: inline-block;\n width: 0;\n opacity: 0;\n}\n.segment-explorer-filename--name {\n color: var(--color-gray-800);\n}\n\n.segment-explorer-files {\n display: inline-flex;\n gap: 8px;\n margin-left: auto;\n}\n\n.segment-explorer-files + .segment-boundary-trigger {\n margin-left: 8px;\n}\n\n.segment-explorer-file-label {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n padding: 4px 6px;\n border-radius: 16px;\n line-height: 16px;\n font-size: var(--size-12);\n font-weight: 500;\n user-select: none;\n cursor: pointer;\n background-color: var(--color-gray-300);\n color: var(--color-gray-1000);\n}\n\n.segment-explorer-file-label--overridden {\n background-color: var(--color-amber-300);\n color: var(--color-amber-900);\n}\n\n.segment-explorer-file-label .code-icon {\n opacity: 0;\n margin-left: 0;\n width: 0;\n transition: all 0.15s ease-in-out;\n}\n.segment-explorer-file-label:hover .code-icon {\n opacity: 1;\n width: 12px;\n margin-left: 4px;\n}\n\n.segment-explorer-file-label:hover {\n filter: brightness(0.95);\n}\n\n.segment-explorer-file-label--builtin {\n background-color: transparent;\n color: var(--color-gray-900);\n border: 1px dashed var(--color-gray-500);\n height: 24px;\n cursor: default;\n}\n.segment-explorer-file-label--builtin svg {\n margin-left: 4px;\n margin-right: -4px;\n}\n\n/* Footer styles */\n.segment-explorer-footer {\n padding: 8px;\n border-top: 1px solid var(--color-gray-400);\n background-color: var(--color-background-100);\n user-select: none;\n}\n\n.segment-explorer-footer-button {\n display: flex;\n align-items: center;\n justify-content: center;\n gap: 8px;\n width: 100%;\n padding: 6px;\n background: var(--color-background-100);\n border: 1px solid var(--color-gray-400);\n border-radius: 6px;\n color: var(--color-gray-1000);\n font-size: var(--size-14);\n font-weight: 500;\n cursor: pointer;\n transition: background-color 0.15s ease;\n}\n\n.segment-explorer-footer-button:hover:not(:disabled) {\n background: var(--color-gray-200);\n}\n\n.segment-explorer-footer-button--disabled {\n opacity: 0.5;\n cursor: not-allowed;\n}\n\n.segment-explorer-footer-text {\n text-align: center;\n}\n\n.segment-explorer-footer-badge {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n min-width: 20px;\n height: 20px;\n padding: 0 6px;\n background: var(--color-amber-300);\n color: var(--color-amber-900);\n border-radius: 10px;\n font-size: var(--size-12);\n font-weight: 600;\n line-height: 1;\n}\n\n.segment-explorer-file-label-tooltip--sm {\n white-space: nowrap;\n}\n\n.segment-explorer-file-label-tooltip--lg {\n min-width: 200px;\n}\n`,\"\",{version:3,sources:[\"webpack://./src/next-devtools/dev-overlay/components/overview/segment-explorer.css\"],names:[],mappings:\"AAAA;EACE,yBAAyB;EACzB,cAAc;EACd,YAAY;EACZ,aAAa;EACb,6BAA6B;EAC7B,+BAA+B;AACjC;;AAEA;EACE,aAAa;EACb,mBAAmB;EACnB,kBAAkB;EAClB,6CAA6C;EAC7C,SAAS;AACX;;AAEA;EACE,yBAAyB;EACzB,gBAAgB;EAChB,6BAA6B;EAC7B,6BAA6B;EAC7B,mBAAmB;EACnB,iBAAiB;AACnB;;AAEA;EACE,aAAa;EACb,kBAAkB;AACpB;;AAEA;EACE,6CAA6C;AAC/C;;AAEA;EACE,aAAa;EACb,mBAAmB;EACnB,iBAAiB;EACjB,oBAAoB;EACpB,kBAAkB;EAClB,gBAAgB;EAChB,eAAe;EACf,6BAA6B;AAC/B;;AAEA;EACE,kBAAkB;AACpB;;AAEA;EACE,oBAAoB;EACpB,WAAW;EACX,mBAAmB;AACrB;;AAEA;EACE,iBAAiB;AACnB;;AAEA;EACE,kBAAkB;AACpB;AACA;EACE,qBAAqB;EACrB,QAAQ;EACR,UAAU;AACZ;AACA;EACE,4BAA4B;AAC9B;;AAEA;EACE,oBAAoB;EACpB,QAAQ;EACR,iBAAiB;AACnB;;AAEA;EACE,gBAAgB;AAClB;;AAEA;EACE,oBAAoB;EACpB,mBAAmB;EACnB,uBAAuB;EACvB,gBAAgB;EAChB,mBAAmB;EACnB,iBAAiB;EACjB,yBAAyB;EACzB,gBAAgB;EAChB,iBAAiB;EACjB,eAAe;EACf,uCAAuC;EACvC,6BAA6B;AAC/B;;AAEA;EACE,wCAAwC;EACxC,6BAA6B;AAC/B;;AAEA;EACE,UAAU;EACV,cAAc;EACd,QAAQ;EACR,iCAAiC;AACnC;AACA;EACE,UAAU;EACV,WAAW;EACX,gBAAgB;AAClB;;AAEA;EACE,wBAAwB;AAC1B;;AAEA;EACE,6BAA6B;EAC7B,4BAA4B;EAC5B,wCAAwC;EACxC,YAAY;EACZ,eAAe;AACjB;AACA;EACE,gBAAgB;EAChB,kBAAkB;AACpB;;AAEA,kBAAkB;AAClB;EACE,YAAY;EACZ,2CAA2C;EAC3C,6CAA6C;EAC7C,iBAAiB;AACnB;;AAEA;EACE,aAAa;EACb,mBAAmB;EACnB,uBAAuB;EACvB,QAAQ;EACR,WAAW;EACX,YAAY;EACZ,uCAAuC;EACvC,uCAAuC;EACvC,kBAAkB;EAClB,6BAA6B;EAC7B,yBAAyB;EACzB,gBAAgB;EAChB,eAAe;EACf,uCAAuC;AACzC;;AAEA;EACE,iCAAiC;AACnC;;AAEA;EACE,YAAY;EACZ,mBAAmB;AACrB;;AAEA;EACE,kBAAkB;AACpB;;AAEA;EACE,oBAAoB;EACpB,mBAAmB;EACnB,uBAAuB;EACvB,eAAe;EACf,YAAY;EACZ,cAAc;EACd,kCAAkC;EAClC,6BAA6B;EAC7B,mBAAmB;EACnB,yBAAyB;EACzB,gBAAgB;EAChB,cAAc;AAChB;;AAEA;EACE,mBAAmB;AACrB;;AAEA;EACE,gBAAgB;AAClB\",sourcesContent:[\".segment-explorer-content {\\n font-size: var(--size-14);\\n padding: 0 8px;\\n width: 700px;\\n height: 400px;\\n max-width: calc(100vw - 40px);\\n max-height: calc(100vh - 240px);\\n}\\n\\n.segment-explorer-page-route-bar {\\n display: flex;\\n align-items: center;\\n padding: 14px 16px;\\n background-color: var(--color-background-200);\\n gap: 12px;\\n}\\n\\n.segment-explorer-page-route-bar-path {\\n font-size: var(--size-14);\\n font-weight: 500;\\n color: var(--color-gray-1000);\\n font-family: var(--font-mono);\\n white-space: nowrap;\\n line-height: 20px;\\n}\\n\\n.segment-explorer-item {\\n margin: 4px 0;\\n border-radius: 6px;\\n}\\n\\n.segment-explorer-item:nth-child(even) {\\n background-color: var(--color-background-200);\\n}\\n\\n.segment-explorer-item-row {\\n display: flex;\\n align-items: center;\\n padding-top: 10px;\\n padding-bottom: 10px;\\n padding-right: 4px;\\n white-space: pre;\\n cursor: default;\\n color: var(--color-gray-1000);\\n}\\n\\n.segment-explorer-children--intended {\\n padding-left: 16px;\\n}\\n\\n.segment-explorer-filename {\\n display: inline-flex;\\n width: 100%;\\n align-items: center;\\n}\\n\\n.segment-explorer-filename select {\\n margin-left: auto;\\n}\\n\\n.segment-explorer-filename--path {\\n margin-right: auto;\\n}\\n.segment-explorer-filename--path small {\\n display: inline-block;\\n width: 0;\\n opacity: 0;\\n}\\n.segment-explorer-filename--name {\\n color: var(--color-gray-800);\\n}\\n\\n.segment-explorer-files {\\n display: inline-flex;\\n gap: 8px;\\n margin-left: auto;\\n}\\n\\n.segment-explorer-files + .segment-boundary-trigger {\\n margin-left: 8px;\\n}\\n\\n.segment-explorer-file-label {\\n display: inline-flex;\\n align-items: center;\\n justify-content: center;\\n padding: 4px 6px;\\n border-radius: 16px;\\n line-height: 16px;\\n font-size: var(--size-12);\\n font-weight: 500;\\n user-select: none;\\n cursor: pointer;\\n background-color: var(--color-gray-300);\\n color: var(--color-gray-1000);\\n}\\n\\n.segment-explorer-file-label--overridden {\\n background-color: var(--color-amber-300);\\n color: var(--color-amber-900);\\n}\\n\\n.segment-explorer-file-label .code-icon {\\n opacity: 0;\\n margin-left: 0;\\n width: 0;\\n transition: all 0.15s ease-in-out;\\n}\\n.segment-explorer-file-label:hover .code-icon {\\n opacity: 1;\\n width: 12px;\\n margin-left: 4px;\\n}\\n\\n.segment-explorer-file-label:hover {\\n filter: brightness(0.95);\\n}\\n\\n.segment-explorer-file-label--builtin {\\n background-color: transparent;\\n color: var(--color-gray-900);\\n border: 1px dashed var(--color-gray-500);\\n height: 24px;\\n cursor: default;\\n}\\n.segment-explorer-file-label--builtin svg {\\n margin-left: 4px;\\n margin-right: -4px;\\n}\\n\\n/* Footer styles */\\n.segment-explorer-footer {\\n padding: 8px;\\n border-top: 1px solid var(--color-gray-400);\\n background-color: var(--color-background-100);\\n user-select: none;\\n}\\n\\n.segment-explorer-footer-button {\\n display: flex;\\n align-items: center;\\n justify-content: center;\\n gap: 8px;\\n width: 100%;\\n padding: 6px;\\n background: var(--color-background-100);\\n border: 1px solid var(--color-gray-400);\\n border-radius: 6px;\\n color: var(--color-gray-1000);\\n font-size: var(--size-14);\\n font-weight: 500;\\n cursor: pointer;\\n transition: background-color 0.15s ease;\\n}\\n\\n.segment-explorer-footer-button:hover:not(:disabled) {\\n background: var(--color-gray-200);\\n}\\n\\n.segment-explorer-footer-button--disabled {\\n opacity: 0.5;\\n cursor: not-allowed;\\n}\\n\\n.segment-explorer-footer-text {\\n text-align: center;\\n}\\n\\n.segment-explorer-footer-badge {\\n display: inline-flex;\\n align-items: center;\\n justify-content: center;\\n min-width: 20px;\\n height: 20px;\\n padding: 0 6px;\\n background: var(--color-amber-300);\\n color: var(--color-amber-900);\\n border-radius: 10px;\\n font-size: var(--size-12);\\n font-weight: 600;\\n line-height: 1;\\n}\\n\\n.segment-explorer-file-label-tooltip--sm {\\n white-space: nowrap;\\n}\\n\\n.segment-explorer-file-label-tooltip--lg {\\n min-width: 200px;\\n}\\n\"],sourceRoot:\"\"}]);let l=i},\"../../node_modules/.pnpm/css-loader@7.1.2_@rspack+core@1.4.5_@swc+helpers@0.5.15__webpack@5.98.0_@swc+core@1.11.24_@sw_wm7ee5ic4mofrhisudwon4qpq4/node_modules/css-loader/dist/cjs.js!./src/next-devtools/dev-overlay/components/toast/style.css\":function(e,n,t){\"use strict\";t.d(n,{Z:()=>l});var r=t(\"../../node_modules/.pnpm/css-loader@7.1.2_@rspack+core@1.4.5_@swc+helpers@0.5.15__webpack@5.98.0_@swc+core@1.11.24_@sw_wm7ee5ic4mofrhisudwon4qpq4/node_modules/css-loader/dist/runtime/sourceMaps.js\"),o=t.n(r),a=t(\"../../node_modules/.pnpm/css-loader@7.1.2_@rspack+core@1.4.5_@swc+helpers@0.5.15__webpack@5.98.0_@swc+core@1.11.24_@sw_wm7ee5ic4mofrhisudwon4qpq4/node_modules/css-loader/dist/runtime/api.js\"),i=t.n(a)()(o());i.push([e.id,`.nextjs-toast {\n position: fixed;\n z-index: var(--top-z-index);\n max-width: 420px;\n box-shadow: 0px 16px 32px rgba(0, 0, 0, 0.25);\n}\n\n.nextjs-toast-errors-parent {\n padding: 16px;\n border-radius: var(--rounded-4xl);\n font-weight: 500;\n color: var(--color-ansi-bright-white);\n background-color: var(--color-ansi-red);\n}\n`,\"\",{version:3,sources:[\"webpack://./src/next-devtools/dev-overlay/components/toast/style.css\"],names:[],mappings:\"AAAA;EACE,eAAe;EACf,2BAA2B;EAC3B,gBAAgB;EAChB,6CAA6C;AAC/C;;AAEA;EACE,aAAa;EACb,iCAAiC;EACjC,gBAAgB;EAChB,qCAAqC;EACrC,uCAAuC;AACzC\",sourcesContent:[\".nextjs-toast {\\n position: fixed;\\n z-index: var(--top-z-index);\\n max-width: 420px;\\n box-shadow: 0px 16px 32px rgba(0, 0, 0, 0.25);\\n}\\n\\n.nextjs-toast-errors-parent {\\n padding: 16px;\\n border-radius: var(--rounded-4xl);\\n font-weight: 500;\\n color: var(--color-ansi-bright-white);\\n background-color: var(--color-ansi-red);\\n}\\n\"],sourceRoot:\"\"}]);let l=i},\"../../node_modules/.pnpm/css-loader@7.1.2_@rspack+core@1.4.5_@swc+helpers@0.5.15__webpack@5.98.0_@swc+core@1.11.24_@sw_wm7ee5ic4mofrhisudwon4qpq4/node_modules/css-loader/dist/cjs.js!./src/next-devtools/global.css\":function(e,n,t){\"use strict\";t.d(n,{Z:()=>l});var r=t(\"../../node_modules/.pnpm/css-loader@7.1.2_@rspack+core@1.4.5_@swc+helpers@0.5.15__webpack@5.98.0_@swc+core@1.11.24_@sw_wm7ee5ic4mofrhisudwon4qpq4/node_modules/css-loader/dist/runtime/sourceMaps.js\"),o=t.n(r),a=t(\"../../node_modules/.pnpm/css-loader@7.1.2_@rspack+core@1.4.5_@swc+helpers@0.5.15__webpack@5.98.0_@swc+core@1.11.24_@sw_wm7ee5ic4mofrhisudwon4qpq4/node_modules/css-loader/dist/runtime/api.js\"),i=t.n(a)()(o());i.push([e.id,`/* devtool global css variables */\n:host {\n --top-z-index: 2147483647;\n}\n`,\"\",{version:3,sources:[\"webpack://./src/next-devtools/global.css\"],names:[],mappings:\"AAAA,iCAAiC;AACjC;EACE,yBAAyB;AAC3B\",sourcesContent:[\"/* devtool global css variables */\\n:host {\\n --top-z-index: 2147483647;\\n}\\n\"],sourceRoot:\"\"}]);let l=i},\"../../node_modules/.pnpm/css-loader@7.1.2_@rspack+core@1.4.5_@swc+helpers@0.5.15__webpack@5.98.0_@swc+core@1.11.24_@sw_wm7ee5ic4mofrhisudwon4qpq4/node_modules/css-loader/dist/runtime/api.js\":function(e){\"use strict\";e.exports=function(e){var n=[];return n.toString=function(){return this.map(function(n){var t=\"\",r=void 0!==n[5];return n[4]&&(t+=\"@supports (\".concat(n[4],\") {\")),n[2]&&(t+=\"@media \".concat(n[2],\" {\")),r&&(t+=\"@layer\".concat(n[5].length>0?\" \".concat(n[5]):\"\",\" {\")),t+=e(n),r&&(t+=\"}\"),n[2]&&(t+=\"}\"),n[4]&&(t+=\"}\"),t}).join(\"\")},n.i=function(e,t,r,o,a){\"string\"==typeof e&&(e=[[null,e,void 0]]);var i={};if(r)for(var l=0;l<this.length;l++){var s=this[l][0];null!=s&&(i[s]=!0)}for(var c=0;c<e.length;c++){var u=[].concat(e[c]);r&&i[u[0]]||(void 0!==a&&(void 0===u[5]||(u[1]=\"@layer\".concat(u[5].length>0?\" \".concat(u[5]):\"\",\" {\").concat(u[1],\"}\")),u[5]=a),t&&(u[2]&&(u[1]=\"@media \".concat(u[2],\" {\").concat(u[1],\"}\")),u[2]=t),o&&(u[4]?(u[1]=\"@supports (\".concat(u[4],\") {\").concat(u[1],\"}\"),u[4]=o):u[4]=\"\".concat(o)),n.push(u))}},n}},\"../../node_modules/.pnpm/css-loader@7.1.2_@rspack+core@1.4.5_@swc+helpers@0.5.15__webpack@5.98.0_@swc+core@1.11.24_@sw_wm7ee5ic4mofrhisudwon4qpq4/node_modules/css-loader/dist/runtime/sourceMaps.js\":function(e){\"use strict\";e.exports=function(e){var n=e[1],t=e[3];if(!t)return n;if(\"function\"==typeof btoa){var r=btoa(unescape(encodeURIComponent(JSON.stringify(t))));return[n].concat([\"/*# \".concat(\"sourceMappingURL=data:application/json;charset=utf-8;base64,\".concat(r),\" */\")]).join(\"\\n\")}return[n].join(\"\\n\")}},\"../../node_modules/.pnpm/style-loader@4.0.0_webpack@5.98.0_@swc+core@1.11.24_@swc+helpers@0.5.15__esbuild@0.24.2_/node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\":function(e){\"use strict\";var n=[];function t(e){for(var t=-1,r=0;r<n.length;r++)if(n[r].identifier===e){t=r;break}return t}function r(e,r){for(var o={},a=[],i=0;i<e.length;i++){var l=e[i],s=r.base?l[0]+r.base:l[0],c=o[s]||0,u=\"\".concat(s,\" \").concat(c);o[s]=c+1;var d=t(u),f={css:l[1],media:l[2],sourceMap:l[3],supports:l[4],layer:l[5]};if(-1!==d)n[d].references++,n[d].updater(f);else{var p=function(e,n){var t=n.domAPI(n);return t.update(e),function(n){n?(n.css!==e.css||n.media!==e.media||n.sourceMap!==e.sourceMap||n.supports!==e.supports||n.layer!==e.layer)&&t.update(e=n):t.remove()}}(f,r);r.byIndex=i,n.splice(i,0,{identifier:u,updater:p,references:1})}a.push(u)}return a}e.exports=function(e,o){var a=r(e=e||[],o=o||{});return function(e){e=e||[];for(var i=0;i<a.length;i++){var l=t(a[i]);n[l].references--}for(var s=r(e,o),c=0;c<a.length;c++){var u=t(a[c]);0===n[u].references&&(n[u].updater(),n.splice(u,1))}a=s}}},\"../../node_modules/.pnpm/style-loader@4.0.0_webpack@5.98.0_@swc+core@1.11.24_@swc+helpers@0.5.15__esbuild@0.24.2_/node_modules/style-loader/dist/runtime/insertStyleElement.js\":function(e){\"use strict\";e.exports=function(e){var n=document.createElement(\"style\");return e.setAttributes(n,e.attributes),e.insert(n,e.options),n}},\"../../node_modules/.pnpm/style-loader@4.0.0_webpack@5.98.0_@swc+core@1.11.24_@swc+helpers@0.5.15__esbuild@0.24.2_/node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\":function(e,n,t){\"use strict\";e.exports=function(e){var n=t.nc;n&&e.setAttribute(\"nonce\",n)}},\"../../node_modules/.pnpm/style-loader@4.0.0_webpack@5.98.0_@swc+core@1.11.24_@swc+helpers@0.5.15__esbuild@0.24.2_/node_modules/style-loader/dist/runtime/styleDomAPI.js\":function(e){\"use strict\";e.exports=function(e){if(\"undefined\"==typeof document)return{update:function(){},remove:function(){}};var n=e.insertStyleElement(e);return{update:function(t){var r,o,a;r=\"\",t.supports&&(r+=\"@supports (\".concat(t.supports,\") {\")),t.media&&(r+=\"@media \".concat(t.media,\" {\")),(o=void 0!==t.layer)&&(r+=\"@layer\".concat(t.layer.length>0?\" \".concat(t.layer):\"\",\" {\")),r+=t.css,o&&(r+=\"}\"),t.media&&(r+=\"}\"),t.supports&&(r+=\"}\"),(a=t.sourceMap)&&\"undefined\"!=typeof btoa&&(r+=\"\\n/*# sourceMappingURL=data:application/json;base64,\".concat(btoa(unescape(encodeURIComponent(JSON.stringify(a)))),\" */\")),e.styleTagTransform(r,n,e.options)},remove:function(){!function(e){if(null!==e.parentNode)e.parentNode.removeChild(e)}(n)}}}},\"../../node_modules/.pnpm/style-loader@4.0.0_webpack@5.98.0_@swc+core@1.11.24_@swc+helpers@0.5.15__esbuild@0.24.2_/node_modules/style-loader/dist/runtime/styleTagTransform.js\":function(e){\"use strict\";e.exports=function(e,n){if(n.styleSheet)n.styleSheet.cssText=e;else{for(;n.firstChild;)n.removeChild(n.firstChild);n.appendChild(document.createTextNode(e))}}},\"./dist/compiled/anser/index.js\":function(e){(()=>{\"use strict\";var n={211:e=>{var n=function(){function e(e,n){for(var t=0;t<n.length;t++){var r=n[t];r.enumerable=r.enumerable||!1,r.configurable=!0,\"value\"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}return function(n,t,r){return t&&e(n.prototype,t),r&&e(n,r),n}}(),t=[[{color:\"0, 0, 0\",class:\"ansi-black\"},{color:\"187, 0, 0\",class:\"ansi-red\"},{color:\"0, 187, 0\",class:\"ansi-green\"},{color:\"187, 187, 0\",class:\"ansi-yellow\"},{color:\"0, 0, 187\",class:\"ansi-blue\"},{color:\"187, 0, 187\",class:\"ansi-magenta\"},{color:\"0, 187, 187\",class:\"ansi-cyan\"},{color:\"255,255,255\",class:\"ansi-white\"}],[{color:\"85, 85, 85\",class:\"ansi-bright-black\"},{color:\"255, 85, 85\",class:\"ansi-bright-red\"},{color:\"0, 255, 0\",class:\"ansi-bright-green\"},{color:\"255, 255, 85\",class:\"ansi-bright-yellow\"},{color:\"85, 85, 255\",class:\"ansi-bright-blue\"},{color:\"255, 85, 255\",class:\"ansi-bright-magenta\"},{color:\"85, 255, 255\",class:\"ansi-bright-cyan\"},{color:\"255, 255, 255\",class:\"ansi-bright-white\"}]];e.exports=function(){function e(){if(!(this instanceof e))throw TypeError(\"Cannot call a class as a function\");this.fg=this.bg=this.fg_truecolor=this.bg_truecolor=null,this.bright=0}return n(e,null,[{key:\"escapeForHtml\",value:function(n){return(new e).escapeForHtml(n)}},{key:\"linkify\",value:function(n){return(new e).linkify(n)}},{key:\"ansiToHtml\",value:function(n,t){return(new e).ansiToHtml(n,t)}},{key:\"ansiToJson\",value:function(n,t){return(new e).ansiToJson(n,t)}},{key:\"ansiToText\",value:function(n){return(new e).ansiToText(n)}}]),n(e,[{key:\"setupPalette\",value:function(){this.PALETTE_COLORS=[];for(var e=0;e<2;++e)for(var n=0;n<8;++n)this.PALETTE_COLORS.push(t[e][n].color);for(var r=[0,95,135,175,215,255],o=function(e,n,t){return r[e]+\", \"+r[n]+\", \"+r[t]},a=0;a<6;++a)for(var i=0;i<6;++i)for(var l=0;l<6;++l)this.PALETTE_COLORS.push(o(a,i,l));for(var s=8,c=0;c<24;++c,s+=10)this.PALETTE_COLORS.push(o(s,s,s))}},{key:\"escapeForHtml\",value:function(e){return e.replace(/[&<>]/gm,function(e){return\"&\"==e?\"&\":\"<\"==e?\"<\":\">\"==e?\">\":\"\"})}},{key:\"linkify\",value:function(e){return e.replace(/(https?:\\/\\/[^\\s]+)/gm,function(e){return'<a href=\"'+e+'\">'+e+\"</a>\"})}},{key:\"ansiToHtml\",value:function(e,n){return this.process(e,n,!0)}},{key:\"ansiToJson\",value:function(e,n){return(n=n||{}).json=!0,n.clearLine=!1,this.process(e,n,!0)}},{key:\"ansiToText\",value:function(e){return this.process(e,{},!1)}},{key:\"process\",value:function(e,n,t){var r=this,o=e.split(/\\033\\[/),a=o.shift();null==n&&(n={}),n.clearLine=/\\r/.test(e);var i=o.map(function(e){return r.processChunk(e,n,t)});if(n&&n.json){var l=this.processChunkJson(\"\");return l.content=a,l.clearLine=n.clearLine,i.unshift(l),n.remove_empty&&(i=i.filter(function(e){return!e.isEmpty()})),i}return i.unshift(a),i.join(\"\")}},{key:\"processChunkJson\",value:function(e,n,r){var o=(n=void 0===n?{}:n).use_classes=void 0!==n.use_classes&&n.use_classes,a=n.key=o?\"class\":\"color\",i={content:e,fg:null,bg:null,fg_truecolor:null,bg_truecolor:null,clearLine:n.clearLine,decoration:null,was_processed:!1,isEmpty:function(){return!i.content}},l=e.match(/^([!\\x3c-\\x3f]*)([\\d;]*)([\\x20-\\x2c]*[\\x40-\\x7e])([\\s\\S]*)/m);if(!l)return i;i.content=l[4];var s=l[2].split(\";\");if(\"\"!==l[1]||\"m\"!==l[3]||!r)return i;for(this.decoration=null;s.length>0;){var c=parseInt(s.shift());if(isNaN(c)||0===c)this.fg=this.bg=this.decoration=null;else if(1===c)this.decoration=\"bold\";else if(2===c)this.decoration=\"dim\";else if(3==c)this.decoration=\"italic\";else if(4==c)this.decoration=\"underline\";else if(5==c)this.decoration=\"blink\";else if(7===c)this.decoration=\"reverse\";else if(8===c)this.decoration=\"hidden\";else if(9===c)this.decoration=\"strikethrough\";else if(39==c)this.fg=null;else if(49==c)this.bg=null;else if(c>=30&&c<38)this.fg=t[0][c%10][a];else if(c>=90&&c<98)this.fg=t[1][c%10][a];else if(c>=40&&c<48)this.bg=t[0][c%10][a];else if(c>=100&&c<108)this.bg=t[1][c%10][a];else if(38===c||48===c){var u=38===c;if(s.length>=1){var d=s.shift();if(\"5\"===d&&s.length>=1){var f=parseInt(s.shift());if(f>=0&&f<=255)if(o){var p=f>=16?\"ansi-palette-\"+f:t[+(f>7)][f%8].class;u?this.fg=p:this.bg=p}else this.PALETTE_COLORS||this.setupPalette(),u?this.fg=this.PALETTE_COLORS[f]:this.bg=this.PALETTE_COLORS[f]}else if(\"2\"===d&&s.length>=3){var h=parseInt(s.shift()),g=parseInt(s.shift()),m=parseInt(s.shift());if(h>=0&&h<=255&&g>=0&&g<=255&&m>=0&&m<=255){var v=h+\", \"+g+\", \"+m;o?u?(this.fg=\"ansi-truecolor\",this.fg_truecolor=v):(this.bg=\"ansi-truecolor\",this.bg_truecolor=v):u?this.fg=v:this.bg=v}}}}}return null===this.fg&&null===this.bg&&null===this.decoration||(i.fg=this.fg,i.bg=this.bg,i.fg_truecolor=this.fg_truecolor,i.bg_truecolor=this.bg_truecolor,i.decoration=this.decoration,i.was_processed=!0),i}},{key:\"processChunk\",value:function(e,n,t){var r=this;n=n||{};var o=this.processChunkJson(e,n,t);if(n.json)return o;if(o.isEmpty())return\"\";if(!o.was_processed)return o.content;var a=n.use_classes,i=[],l=[],s={},c=function(e){var n=[],t=void 0;for(t in e)e.hasOwnProperty(t)&&n.push(\"data-\"+t+'=\"'+r.escapeForHtml(e[t])+'\"');return n.length>0?\" \"+n.join(\" \"):\"\"};return(o.fg&&(a?(l.push(o.fg+\"-fg\"),null!==o.fg_truecolor&&(s[\"ansi-truecolor-fg\"]=o.fg_truecolor,o.fg_truecolor=null)):i.push(\"color:rgb(\"+o.fg+\")\")),o.bg&&(a?(l.push(o.bg+\"-bg\"),null!==o.bg_truecolor&&(s[\"ansi-truecolor-bg\"]=o.bg_truecolor,o.bg_truecolor=null)):i.push(\"background-color:rgb(\"+o.bg+\")\")),o.decoration&&(a?l.push(\"ansi-\"+o.decoration):\"bold\"===o.decoration?i.push(\"font-weight:bold\"):\"dim\"===o.decoration?i.push(\"opacity:0.5\"):\"italic\"===o.decoration?i.push(\"font-style:italic\"):\"reverse\"===o.decoration?i.push(\"filter:invert(100%)\"):\"hidden\"===o.decoration?i.push(\"visibility:hidden\"):\"strikethrough\"===o.decoration?i.push(\"text-decoration:line-through\"):i.push(\"text-decoration:\"+o.decoration)),a)?'<span class=\"'+l.join(\" \")+'\"'+c(s)+\">\"+o.content+\"</span>\":'<span style=\"'+i.join(\";\")+'\"'+c(s)+\">\"+o.content+\"</span>\"}}]),e}()}},t={};function r(e){var o=t[e];if(void 0!==o)return o.exports;var a=t[e]={exports:{}},i=!0;try{n[e](a,a.exports,r),i=!1}finally{i&&delete t[e]}return a.exports}r.ab=\"//\",e.exports=r(211)})()},\"./dist/compiled/react-dom/cjs/react-dom-client.production.js\":function(e,n,t){\"use strict\";var r,o=t(\"./dist/compiled/scheduler/index.js\"),a=t(\"./dist/compiled/react/index.js\"),i=t(\"./dist/compiled/react-dom/index.js\");function l(e){var n=\"https://react.dev/errors/\"+e;if(1<arguments.length){n+=\"?args[]=\"+encodeURIComponent(arguments[1]);for(var t=2;t<arguments.length;t++)n+=\"&args[]=\"+encodeURIComponent(arguments[t])}return\"Minified React error #\"+e+\"; visit \"+n+\" for the full message or use the non-minified dev environment for full errors and additional helpful warnings.\"}function s(e){var n=e,t=e;if(e.alternate)for(;n.return;)n=n.return;else{e=n;do 0!=(4098&(n=e).flags)&&(t=n.return),e=n.return;while(e)}return 3===n.tag?t:null}function c(e){if(13===e.tag){var n=e.memoizedState;if(null===n&&null!==(e=e.alternate)&&(n=e.memoizedState),null!==n)return n.dehydrated}return null}function u(e){if(31===e.tag){var n=e.memoizedState;if(null===n&&null!==(e=e.alternate)&&(n=e.memoizedState),null!==n)return n.dehydrated}return null}function d(e){if(s(e)!==e)throw Error(l(188))}var f=Object.assign,p=Symbol.for(\"react.element\"),h=Symbol.for(\"react.transitional.element\"),g=Symbol.for(\"react.portal\"),m=Symbol.for(\"react.fragment\"),v=Symbol.for(\"react.strict_mode\"),b=Symbol.for(\"react.profiler\"),y=Symbol.for(\"react.consumer\"),x=Symbol.for(\"react.context\"),w=Symbol.for(\"react.forward_ref\"),j=Symbol.for(\"react.suspense\"),k=Symbol.for(\"react.suspense_list\"),A=Symbol.for(\"react.memo\"),O=Symbol.for(\"react.lazy\");Symbol.for(\"react.scope\");var C=Symbol.for(\"react.activity\");Symbol.for(\"react.legacy_hidden\"),Symbol.for(\"react.tracing_marker\");var S=Symbol.for(\"react.memo_cache_sentinel\");Symbol.for(\"react.view_transition\");var E=Symbol.iterator;function _(e){return null===e||\"object\"!=typeof e?null:\"function\"==typeof(e=E&&e[E]||e[\"@@iterator\"])?e:null}var P=Symbol.for(\"react.client.reference\"),z=Array.isArray,L=a.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,T=i.__DOM_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,R={pending:!1,data:null,method:null,action:null},N=[],D=-1;function B(e){return{current:e}}function M(e){0>D||(e.current=N[D],N[D]=null,D--)}function I(e,n){N[++D]=e.current,e.current=n}var H=B(null),F=B(null),U=B(null),V=B(null);function q(e,n){switch(I(U,n),I(F,e),I(H,null),n.nodeType){case 9:case 11:e=(e=n.documentElement)&&(e=e.namespaceURI)?cp(e):0;break;default:if(e=n.tagName,n=n.namespaceURI)e=ch(n=cp(n),e);else switch(e){case\"svg\":e=1;break;case\"math\":e=2;break;default:e=0}}M(H),I(H,e)}function W(){M(H),M(F),M(U)}function $(e){null!==e.memoizedState&&I(V,e);var n=H.current,t=ch(n,e.type);n!==t&&(I(F,e),I(H,t))}function Z(e){F.current===e&&(M(H),M(F)),V.current===e&&(M(V),c6._currentValue=R)}function Y(e){if(void 0===nD)try{throw Error()}catch(e){var n=e.stack.trim().match(/\\n( *(at )?)/);nD=n&&n[1]||\"\",nB=-1<e.stack.indexOf(\"\\n at\")?\" (<anonymous>)\":-1<e.stack.indexOf(\"@\")?\"@unknown:0:0\":\"\"}return\"\\n\"+nD+e+nB}var X=!1;function K(e,n){if(!e||X)return\"\";X=!0;var t=Error.prepareStackTrace;Error.prepareStackTrace=void 0;try{var r={DetermineComponentFrameRoot:function(){try{if(n){var t=function(){throw Error()};if(Object.defineProperty(t.prototype,\"props\",{set:function(){throw Error()}}),\"object\"==typeof Reflect&&Reflect.construct){try{Reflect.construct(t,[])}catch(e){var r=e}Reflect.construct(e,[],t)}else{try{t.call()}catch(e){r=e}e.call(t.prototype)}}else{try{throw Error()}catch(e){r=e}(t=e())&&\"function\"==typeof t.catch&&t.catch(function(){})}}catch(e){if(e&&r&&\"string\"==typeof e.stack)return[e.stack,r.stack]}return[null,null]}};r.DetermineComponentFrameRoot.displayName=\"DetermineComponentFrameRoot\";var o=Object.getOwnPropertyDescriptor(r.DetermineComponentFrameRoot,\"name\");o&&o.configurable&&Object.defineProperty(r.DetermineComponentFrameRoot,\"name\",{value:\"DetermineComponentFrameRoot\"});var a=r.DetermineComponentFrameRoot(),i=a[0],l=a[1];if(i&&l){var s=i.split(\"\\n\"),c=l.split(\"\\n\");for(o=r=0;r<s.length&&!s[r].includes(\"DetermineComponentFrameRoot\");)r++;for(;o<c.length&&!c[o].includes(\"DetermineComponentFrameRoot\");)o++;if(r===s.length||o===c.length)for(r=s.length-1,o=c.length-1;1<=r&&0<=o&&s[r]!==c[o];)o--;for(;1<=r&&0<=o;r--,o--)if(s[r]!==c[o]){if(1!==r||1!==o)do if(r--,o--,0>o||s[r]!==c[o]){var u=\"\\n\"+s[r].replace(\" at new \",\" at \");return e.displayName&&u.includes(\"<anonymous>\")&&(u=u.replace(\"<anonymous>\",e.displayName)),u}while(1<=r&&0<=o);break}}}finally{X=!1,Error.prepareStackTrace=t}return(t=e?e.displayName||e.name:\"\")?Y(t):\"\"}function Q(e){try{var n=\"\",t=null;do n+=function(e,n){switch(e.tag){case 26:case 27:case 5:return Y(e.type);case 16:return Y(\"Lazy\");case 13:return e.child!==n&&null!==n?Y(\"Suspense Fallback\"):Y(\"Suspense\");case 19:return Y(\"SuspenseList\");case 0:case 15:return K(e.type,!1);case 11:return K(e.type.render,!1);case 1:return K(e.type,!0);case 31:return Y(\"Activity\");default:return\"\"}}(e,t),t=e,e=e.return;while(e);return n}catch(e){return\"\\nError generating stack: \"+e.message+\"\\n\"+e.stack}}var G=Object.prototype.hasOwnProperty,J=o.unstable_scheduleCallback,ee=o.unstable_cancelCallback,en=o.unstable_shouldYield,et=o.unstable_requestPaint,er=o.unstable_now,eo=o.unstable_getCurrentPriorityLevel,ea=o.unstable_ImmediatePriority,ei=o.unstable_UserBlockingPriority,el=o.unstable_NormalPriority,es=o.unstable_LowPriority,ec=o.unstable_IdlePriority,eu=o.log,ed=o.unstable_setDisableYieldValue,ef=null,ep=null;function eh(e){if(\"function\"==typeof eu&&ed(e),ep&&\"function\"==typeof ep.setStrictMode)try{ep.setStrictMode(ef,e)}catch(e){}}var eg=Math.clz32?Math.clz32:function(e){return 0==(e>>>=0)?32:31-(em(e)/ev|0)|0},em=Math.log,ev=Math.LN2,eb=256,ey=4194304;function ex(e){var n=42&e;if(0!==n)return n;switch(e&-e){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:return 64;case 128:return 128;case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return 4194048&e;case 4194304:case 8388608:case 0x1000000:case 0x2000000:return 0x3c00000&e;case 0x4000000:return 0x4000000;case 0x8000000:return 0x8000000;case 0x10000000:return 0x10000000;case 0x20000000:return 0x20000000;case 0x40000000:return 0;default:return e}}function ew(e,n,t){var r=e.pendingLanes;if(0===r)return 0;var o=0,a=e.suspendedLanes,i=e.pingedLanes;e=e.warmLanes;var l=0x7ffffff&r;return 0!==l?0!=(r=l&~a)?o=ex(r):0!=(i&=l)?o=ex(i):t||0!=(t=l&~e)&&(o=ex(t)):0!=(l=r&~a)?o=ex(l):0!==i?o=ex(i):t||0!=(t=r&~e)&&(o=ex(t)),0===o?0:0!==n&&n!==o&&0==(n&a)&&((a=o&-o)>=(t=n&-n)||32===a&&0!=(4194048&t))?n:o}function ej(e,n){return 0==(e.pendingLanes&~(e.suspendedLanes&~e.pingedLanes)&n)}function ek(){var e=eb;return 0==(4194048&(eb<<=1))&&(eb=256),e}function eA(){var e=ey;return 0==(0x3c00000&(ey<<=1))&&(ey=4194304),e}function eO(e){for(var n=[],t=0;31>t;t++)n.push(e);return n}function eC(e,n){e.pendingLanes|=n,0x10000000!==n&&(e.suspendedLanes=0,e.pingedLanes=0,e.warmLanes=0)}function eS(e,n,t){e.pendingLanes|=n,e.suspendedLanes&=~n;var r=31-eg(n);e.entangledLanes|=n,e.entanglements[r]=0x40000000|e.entanglements[r]|4194090&t}function eE(e,n){var t=e.entangledLanes|=n;for(e=e.entanglements;t;){var r=31-eg(t),o=1<<r;o&n|e[r]&n&&(e[r]|=n),t&=~o}}function e_(e,n){var t=n&-n;return 0!=((t=0!=(42&t)?1:eP(t))&(e.suspendedLanes|n))?0:t}function eP(e){switch(e){case 2:e=1;break;case 8:e=4;break;case 32:e=16;break;case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:case 4194304:case 8388608:case 0x1000000:case 0x2000000:e=128;break;case 0x10000000:e=0x8000000;break;default:e=0}return e}function ez(e){return 2<(e&=-e)?8<e?0!=(0x7ffffff&e)?32:0x10000000:8:2}function eL(){var e=T.p;return 0!==e?e:void 0===(e=window.event)?32:uu(e.type)}function eT(e,n){var t=T.p;try{return T.p=e,n()}finally{T.p=t}}var eR=Math.random().toString(36).slice(2),eN=\"__reactFiber$\"+eR,eD=\"__reactProps$\"+eR,eB=\"__reactContainer$\"+eR,eM=\"__reactEvents$\"+eR,eI=\"__reactListeners$\"+eR,eH=\"__reactHandles$\"+eR,eF=\"__reactResources$\"+eR,eU=\"__reactMarker$\"+eR;function eV(e){delete e[eN],delete e[eD],delete e[eM],delete e[eI],delete e[eH]}function eq(e){var n=e[eN];if(n)return n;for(var t=e.parentNode;t;){if(n=t[eB]||t[eN]){if(t=n.alternate,null!==n.child||null!==t&&null!==t.child)for(e=cL(e);null!==e;){if(t=e[eN])return t;e=cL(e)}return n}t=(e=t).parentNode}return null}function eW(e){if(e=e[eN]||e[eB]){var n=e.tag;if(5===n||6===n||13===n||31===n||26===n||27===n||3===n)return e}return null}function e$(e){var n=e.tag;if(5===n||26===n||27===n||6===n)return e.stateNode;throw Error(l(33))}function eZ(e){var n=e[eF];return n||(n=e[eF]={hoistableStyles:new Map,hoistableScripts:new Map}),n}function eY(e){e[eU]=!0}var eX=new Set,eK={};function eQ(e,n){eG(e,n),eG(e+\"Capture\",n)}function eG(e,n){for(eK[e]=n,e=0;e<n.length;e++)eX.add(n[e])}var eJ=RegExp(\"^[:A-Z_a-z\\\\u00C0-\\\\u00D6\\\\u00D8-\\\\u00F6\\\\u00F8-\\\\u02FF\\\\u0370-\\\\u037D\\\\u037F-\\\\u1FFF\\\\u200C-\\\\u200D\\\\u2070-\\\\u218F\\\\u2C00-\\\\u2FEF\\\\u3001-\\\\uD7FF\\\\uF900-\\\\uFDCF\\\\uFDF0-\\\\uFFFD][:A-Z_a-z\\\\u00C0-\\\\u00D6\\\\u00D8-\\\\u00F6\\\\u00F8-\\\\u02FF\\\\u0370-\\\\u037D\\\\u037F-\\\\u1FFF\\\\u200C-\\\\u200D\\\\u2070-\\\\u218F\\\\u2C00-\\\\u2FEF\\\\u3001-\\\\uD7FF\\\\uF900-\\\\uFDCF\\\\uFDF0-\\\\uFFFD\\\\-.0-9\\\\u00B7\\\\u0300-\\\\u036F\\\\u203F-\\\\u2040]*$\"),e0={},e1={};function e2(e,n,t){if(G.call(e1,n)||!G.call(e0,n)&&(eJ.test(n)?e1[n]=!0:(e0[n]=!0,!1)))if(null===t)e.removeAttribute(n);else{switch(typeof t){case\"undefined\":case\"function\":case\"symbol\":e.removeAttribute(n);return;case\"boolean\":var r=n.toLowerCase().slice(0,5);if(\"data-\"!==r&&\"aria-\"!==r)return void e.removeAttribute(n)}e.setAttribute(n,\"\"+t)}}function e4(e,n,t){if(null===t)e.removeAttribute(n);else{switch(typeof t){case\"undefined\":case\"function\":case\"symbol\":case\"boolean\":e.removeAttribute(n);return}e.setAttribute(n,\"\"+t)}}function e5(e,n,t,r){if(null===r)e.removeAttribute(t);else{switch(typeof r){case\"undefined\":case\"function\":case\"symbol\":case\"boolean\":e.removeAttribute(t);return}e.setAttributeNS(n,t,\"\"+r)}}function e3(e){switch(typeof e){case\"bigint\":case\"boolean\":case\"number\":case\"string\":case\"undefined\":case\"object\":return e;default:return\"\"}}function e6(e){var n=e.type;return(e=e.nodeName)&&\"input\"===e.toLowerCase()&&(\"checkbox\"===n||\"radio\"===n)}function e9(e){if(!e._valueTracker){var n=e6(e)?\"checked\":\"value\";e._valueTracker=function(e,n,t){var r=Object.getOwnPropertyDescriptor(e.constructor.prototype,n);if(!e.hasOwnProperty(n)&&void 0!==r&&\"function\"==typeof r.get&&\"function\"==typeof r.set){var o=r.get,a=r.set;return Object.defineProperty(e,n,{configurable:!0,get:function(){return o.call(this)},set:function(e){t=\"\"+e,a.call(this,e)}}),Object.defineProperty(e,n,{enumerable:r.enumerable}),{getValue:function(){return t},setValue:function(e){t=\"\"+e},stopTracking:function(){e._valueTracker=null,delete e[n]}}}}(e,n,\"\"+e[n])}}function e8(e){if(!e)return!1;var n=e._valueTracker;if(!n)return!0;var t=n.getValue(),r=\"\";return e&&(r=e6(e)?e.checked?\"true\":\"false\":e.value),(e=r)!==t&&(n.setValue(e),!0)}function e7(e){if(void 0===(e=e||(\"undefined\"!=typeof document?document:void 0)))return null;try{return e.activeElement||e.body}catch(n){return e.body}}var ne=/[\\n\"\\\\]/g;function nn(e){return e.replace(ne,function(e){return\"\\\\\"+e.charCodeAt(0).toString(16)+\" \"})}function nt(e,n,t,r,o,a,i,l){e.name=\"\",null!=i&&\"function\"!=typeof i&&\"symbol\"!=typeof i&&\"boolean\"!=typeof i?e.type=i:e.removeAttribute(\"type\"),null!=n?\"number\"===i?(0===n&&\"\"===e.value||e.value!=n)&&(e.value=\"\"+e3(n)):e.value!==\"\"+e3(n)&&(e.value=\"\"+e3(n)):\"submit\"!==i&&\"reset\"!==i||e.removeAttribute(\"value\"),null!=n?no(e,i,e3(n)):null!=t?no(e,i,e3(t)):null!=r&&e.removeAttribute(\"value\"),null==o&&null!=a&&(e.defaultChecked=!!a),null!=o&&(e.checked=o&&\"function\"!=typeof o&&\"symbol\"!=typeof o),null!=l&&\"function\"!=typeof l&&\"symbol\"!=typeof l&&\"boolean\"!=typeof l?e.name=\"\"+e3(l):e.removeAttribute(\"name\")}function nr(e,n,t,r,o,a,i,l){if(null!=a&&\"function\"!=typeof a&&\"symbol\"!=typeof a&&\"boolean\"!=typeof a&&(e.type=a),null!=n||null!=t){if((\"submit\"===a||\"reset\"===a)&&null==n)return void e9(e);t=null!=t?\"\"+e3(t):\"\",n=null!=n?\"\"+e3(n):t,l||n===e.value||(e.value=n),e.defaultValue=n}r=\"function\"!=typeof(r=null!=r?r:o)&&\"symbol\"!=typeof r&&!!r,e.checked=l?e.checked:!!r,e.defaultChecked=!!r,null!=i&&\"function\"!=typeof i&&\"symbol\"!=typeof i&&\"boolean\"!=typeof i&&(e.name=i),e9(e)}function no(e,n,t){\"number\"===n&&e7(e.ownerDocument)===e||e.defaultValue===\"\"+t||(e.defaultValue=\"\"+t)}function na(e,n,t,r){if(e=e.options,n){n={};for(var o=0;o<t.length;o++)n[\"$\"+t[o]]=!0;for(t=0;t<e.length;t++)o=n.hasOwnProperty(\"$\"+e[t].value),e[t].selected!==o&&(e[t].selected=o),o&&r&&(e[t].defaultSelected=!0)}else{for(o=0,t=\"\"+e3(t),n=null;o<e.length;o++){if(e[o].value===t){e[o].selected=!0,r&&(e[o].defaultSelected=!0);return}null!==n||e[o].disabled||(n=e[o])}null!==n&&(n.selected=!0)}}function ni(e,n,t){if(null!=n&&((n=\"\"+e3(n))!==e.value&&(e.value=n),null==t)){e.defaultValue!==n&&(e.defaultValue=n);return}e.defaultValue=null!=t?\"\"+e3(t):\"\"}function nl(e,n,t,r){if(null==n){if(null!=r){if(null!=t)throw Error(l(92));if(z(r)){if(1<r.length)throw Error(l(93));r=r[0]}t=r}null==t&&(t=\"\"),n=t}e.defaultValue=t=e3(n),(r=e.textContent)===t&&\"\"!==r&&null!==r&&(e.value=r),e9(e)}function ns(e,n){if(n){var t=e.firstChild;if(t&&t===e.lastChild&&3===t.nodeType){t.nodeValue=n;return}}e.textContent=n}var nc=new Set(\"animationIterationCount aspectRatio borderImageOutset borderImageSlice borderImageWidth boxFlex boxFlexGroup boxOrdinalGroup columnCount columns flex flexGrow flexPositive flexShrink flexNegative flexOrder gridArea gridRow gridRowEnd gridRowSpan gridRowStart gridColumn gridColumnEnd gridColumnSpan gridColumnStart fontWeight lineClamp lineHeight opacity order orphans scale tabSize widows zIndex zoom fillOpacity floodOpacity stopOpacity strokeDasharray strokeDashoffset strokeMiterlimit strokeOpacity strokeWidth MozAnimationIterationCount MozBoxFlex MozBoxFlexGroup MozLineClamp msAnimationIterationCount msFlex msZoom msFlexGrow msFlexNegative msFlexOrder msFlexPositive msFlexShrink msGridColumn msGridColumnSpan msGridRow msGridRowSpan WebkitAnimationIterationCount WebkitBoxFlex WebKitBoxFlexGroup WebkitBoxOrdinalGroup WebkitColumnCount WebkitColumns WebkitFlex WebkitFlexGrow WebkitFlexPositive WebkitFlexShrink WebkitLineClamp\".split(\" \"));function nu(e,n,t){var r=0===n.indexOf(\"--\");null==t||\"boolean\"==typeof t||\"\"===t?r?e.setProperty(n,\"\"):\"float\"===n?e.cssFloat=\"\":e[n]=\"\":r?e.setProperty(n,t):\"number\"!=typeof t||0===t||nc.has(n)?\"float\"===n?e.cssFloat=t:e[n]=(\"\"+t).trim():e[n]=t+\"px\"}function nd(e,n,t){if(null!=n&&\"object\"!=typeof n)throw Error(l(62));if(e=e.style,null!=t){for(var r in t)!t.hasOwnProperty(r)||null!=n&&n.hasOwnProperty(r)||(0===r.indexOf(\"--\")?e.setProperty(r,\"\"):\"float\"===r?e.cssFloat=\"\":e[r]=\"\");for(var o in n)r=n[o],n.hasOwnProperty(o)&&t[o]!==r&&nu(e,o,r)}else for(var a in n)n.hasOwnProperty(a)&&nu(e,a,n[a])}function nf(e){if(-1===e.indexOf(\"-\"))return!1;switch(e){case\"annotation-xml\":case\"color-profile\":case\"font-face\":case\"font-face-src\":case\"font-face-uri\":case\"font-face-format\":case\"font-face-name\":case\"missing-glyph\":return!1;default:return!0}}var np=new Map([[\"acceptCharset\",\"accept-charset\"],[\"htmlFor\",\"for\"],[\"httpEquiv\",\"http-equiv\"],[\"crossOrigin\",\"crossorigin\"],[\"accentHeight\",\"accent-height\"],[\"alignmentBaseline\",\"alignment-baseline\"],[\"arabicForm\",\"arabic-form\"],[\"baselineShift\",\"baseline-shift\"],[\"capHeight\",\"cap-height\"],[\"clipPath\",\"clip-path\"],[\"clipRule\",\"clip-rule\"],[\"colorInterpolation\",\"color-interpolation\"],[\"colorInterpolationFilters\",\"color-interpolation-filters\"],[\"colorProfile\",\"color-profile\"],[\"colorRendering\",\"color-rendering\"],[\"dominantBaseline\",\"dominant-baseline\"],[\"enableBackground\",\"enable-background\"],[\"fillOpacity\",\"fill-opacity\"],[\"fillRule\",\"fill-rule\"],[\"floodColor\",\"flood-color\"],[\"floodOpacity\",\"flood-opacity\"],[\"fontFamily\",\"font-family\"],[\"fontSize\",\"font-size\"],[\"fontSizeAdjust\",\"font-size-adjust\"],[\"fontStretch\",\"font-stretch\"],[\"fontStyle\",\"font-style\"],[\"fontVariant\",\"font-variant\"],[\"fontWeight\",\"font-weight\"],[\"glyphName\",\"glyph-name\"],[\"glyphOrientationHorizontal\",\"glyph-orientation-horizontal\"],[\"glyphOrientationVertical\",\"glyph-orientation-vertical\"],[\"horizAdvX\",\"horiz-adv-x\"],[\"horizOriginX\",\"horiz-origin-x\"],[\"imageRendering\",\"image-rendering\"],[\"letterSpacing\",\"letter-spacing\"],[\"lightingColor\",\"lighting-color\"],[\"markerEnd\",\"marker-end\"],[\"markerMid\",\"marker-mid\"],[\"markerStart\",\"marker-start\"],[\"overlinePosition\",\"overline-position\"],[\"overlineThickness\",\"overline-thickness\"],[\"paintOrder\",\"paint-order\"],[\"panose-1\",\"panose-1\"],[\"pointerEvents\",\"pointer-events\"],[\"renderingIntent\",\"rendering-intent\"],[\"shapeRendering\",\"shape-rendering\"],[\"stopColor\",\"stop-color\"],[\"stopOpacity\",\"stop-opacity\"],[\"strikethroughPosition\",\"strikethrough-position\"],[\"strikethroughThickness\",\"strikethrough-thickness\"],[\"strokeDasharray\",\"stroke-dasharray\"],[\"strokeDashoffset\",\"stroke-dashoffset\"],[\"strokeLinecap\",\"stroke-linecap\"],[\"strokeLinejoin\",\"stroke-linejoin\"],[\"strokeMiterlimit\",\"stroke-miterlimit\"],[\"strokeOpacity\",\"stroke-opacity\"],[\"strokeWidth\",\"stroke-width\"],[\"textAnchor\",\"text-anchor\"],[\"textDecoration\",\"text-decoration\"],[\"textRendering\",\"text-rendering\"],[\"transformOrigin\",\"transform-origin\"],[\"underlinePosition\",\"underline-position\"],[\"underlineThickness\",\"underline-thickness\"],[\"unicodeBidi\",\"unicode-bidi\"],[\"unicodeRange\",\"unicode-range\"],[\"unitsPerEm\",\"units-per-em\"],[\"vAlphabetic\",\"v-alphabetic\"],[\"vHanging\",\"v-hanging\"],[\"vIdeographic\",\"v-ideographic\"],[\"vMathematical\",\"v-mathematical\"],[\"vectorEffect\",\"vector-effect\"],[\"vertAdvY\",\"vert-adv-y\"],[\"vertOriginX\",\"vert-origin-x\"],[\"vertOriginY\",\"vert-origin-y\"],[\"wordSpacing\",\"word-spacing\"],[\"writingMode\",\"writing-mode\"],[\"xmlnsXlink\",\"xmlns:xlink\"],[\"xHeight\",\"x-height\"]]),nh=/^[\\u0000-\\u001F ]*j[\\r\\n\\t]*a[\\r\\n\\t]*v[\\r\\n\\t]*a[\\r\\n\\t]*s[\\r\\n\\t]*c[\\r\\n\\t]*r[\\r\\n\\t]*i[\\r\\n\\t]*p[\\r\\n\\t]*t[\\r\\n\\t]*:/i;function ng(e){return nh.test(\"\"+e)?\"javascript:throw new Error('React has blocked a javascript: URL as a security precaution.')\":e}function nm(){}var nv=null;function nb(e){return(e=e.target||e.srcElement||window).correspondingUseElement&&(e=e.correspondingUseElement),3===e.nodeType?e.parentNode:e}var ny=null,nx=null;function nw(e){var n=eW(e);if(n&&(e=n.stateNode)){var t=e[eD]||null;switch(e=n.stateNode,n.type){case\"input\":if(nt(e,t.value,t.defaultValue,t.defaultValue,t.checked,t.defaultChecked,t.type,t.name),n=t.name,\"radio\"===t.type&&null!=n){for(t=e;t.parentNode;)t=t.parentNode;for(t=t.querySelectorAll('input[name=\"'+nn(\"\"+n)+'\"][type=\"radio\"]'),n=0;n<t.length;n++){var r=t[n];if(r!==e&&r.form===e.form){var o=r[eD]||null;if(!o)throw Error(l(90));nt(r,o.value,o.defaultValue,o.defaultValue,o.checked,o.defaultChecked,o.type,o.name)}}for(n=0;n<t.length;n++)(r=t[n]).form===e.form&&e8(r)}break;case\"textarea\":ni(e,t.value,t.defaultValue);break;case\"select\":null!=(n=t.value)&&na(e,!!t.multiple,n,!1)}}}var nj=!1;function nk(e,n,t){if(nj)return e(n,t);nj=!0;try{return e(n)}finally{if(nj=!1,(null!==ny||null!==nx)&&(ss(),ny&&(n=ny,e=nx,nx=ny=null,nw(n),e)))for(n=0;n<e.length;n++)nw(e[n])}}function nA(e,n){var t=e.stateNode;if(null===t)return null;var r=t[eD]||null;if(null===r)return null;switch(t=r[n],n){case\"onClick\":case\"onClickCapture\":case\"onDoubleClick\":case\"onDoubleClickCapture\":case\"onMouseDown\":case\"onMouseDownCapture\":case\"onMouseMove\":case\"onMouseMoveCapture\":case\"onMouseUp\":case\"onMouseUpCapture\":case\"onMouseEnter\":(r=!r.disabled)||(r=\"button\"!==(e=e.type)&&\"input\"!==e&&\"select\"!==e&&\"textarea\"!==e),e=!r;break;default:e=!1}if(e)return null;if(t&&\"function\"!=typeof t)throw Error(l(231,n,typeof t));return t}var nO=\"undefined\"!=typeof window&&void 0!==window.document&&void 0!==window.document.createElement,nC=!1;if(nO)try{var nS={};Object.defineProperty(nS,\"passive\",{get:function(){nC=!0}}),window.addEventListener(\"test\",nS,nS),window.removeEventListener(\"test\",nS,nS)}catch(e){nC=!1}var nE=null,n_=null,nP=null;function nz(){if(nP)return nP;var e,n,t=n_,r=t.length,o=\"value\"in nE?nE.value:nE.textContent,a=o.length;for(e=0;e<r&&t[e]===o[e];e++);var i=r-e;for(n=1;n<=i&&t[r-n]===o[a-n];n++);return nP=o.slice(e,1<n?1-n:void 0)}function nL(e){var n=e.keyCode;return\"charCode\"in e?0===(e=e.charCode)&&13===n&&(e=13):e=n,10===e&&(e=13),32<=e||13===e?e:0}function nT(){return!0}function nR(){return!1}function nN(e){function n(n,t,r,o,a){for(var i in this._reactName=n,this._targetInst=r,this.type=t,this.nativeEvent=o,this.target=a,this.currentTarget=null,e)e.hasOwnProperty(i)&&(n=e[i],this[i]=n?n(o):o[i]);return this.isDefaultPrevented=(null!=o.defaultPrevented?o.defaultPrevented:!1===o.returnValue)?nT:nR,this.isPropagationStopped=nR,this}return f(n.prototype,{preventDefault:function(){this.defaultPrevented=!0;var e=this.nativeEvent;e&&(e.preventDefault?e.preventDefault():\"unknown\"!=typeof e.returnValue&&(e.returnValue=!1),this.isDefaultPrevented=nT)},stopPropagation:function(){var e=this.nativeEvent;e&&(e.stopPropagation?e.stopPropagation():\"unknown\"!=typeof e.cancelBubble&&(e.cancelBubble=!0),this.isPropagationStopped=nT)},persist:function(){},isPersistent:nT}),n}var nD,nB,nM,nI,nH,nF={eventPhase:0,bubbles:0,cancelable:0,timeStamp:function(e){return e.timeStamp||Date.now()},defaultPrevented:0,isTrusted:0},nU=nN(nF),nV=f({},nF,{view:0,detail:0}),nq=nN(nV),nW=f({},nV,{screenX:0,screenY:0,clientX:0,clientY:0,pageX:0,pageY:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,getModifierState:n2,button:0,buttons:0,relatedTarget:function(e){return void 0===e.relatedTarget?e.fromElement===e.srcElement?e.toElement:e.fromElement:e.relatedTarget},movementX:function(e){return\"movementX\"in e?e.movementX:(e!==nH&&(nH&&\"mousemove\"===e.type?(nM=e.screenX-nH.screenX,nI=e.screenY-nH.screenY):nI=nM=0,nH=e),nM)},movementY:function(e){return\"movementY\"in e?e.movementY:nI}}),n$=nN(nW),nZ=nN(f({},nW,{dataTransfer:0})),nY=nN(f({},nV,{relatedTarget:0})),nX=nN(f({},nF,{animationName:0,elapsedTime:0,pseudoElement:0})),nK=nN(f({},nF,{clipboardData:function(e){return\"clipboardData\"in e?e.clipboardData:window.clipboardData}})),nQ=nN(f({},nF,{data:0})),nG={Esc:\"Escape\",Spacebar:\" \",Left:\"ArrowLeft\",Up:\"ArrowUp\",Right:\"ArrowRight\",Down:\"ArrowDown\",Del:\"Delete\",Win:\"OS\",Menu:\"ContextMenu\",Apps:\"ContextMenu\",Scroll:\"ScrollLock\",MozPrintableKey:\"Unidentified\"},nJ={8:\"Backspace\",9:\"Tab\",12:\"Clear\",13:\"Enter\",16:\"Shift\",17:\"Control\",18:\"Alt\",19:\"Pause\",20:\"CapsLock\",27:\"Escape\",32:\" \",33:\"PageUp\",34:\"PageDown\",35:\"End\",36:\"Home\",37:\"ArrowLeft\",38:\"ArrowUp\",39:\"ArrowRight\",40:\"ArrowDown\",45:\"Insert\",46:\"Delete\",112:\"F1\",113:\"F2\",114:\"F3\",115:\"F4\",116:\"F5\",117:\"F6\",118:\"F7\",119:\"F8\",120:\"F9\",121:\"F10\",122:\"F11\",123:\"F12\",144:\"NumLock\",145:\"ScrollLock\",224:\"Meta\"},n0={Alt:\"altKey\",Control:\"ctrlKey\",Meta:\"metaKey\",Shift:\"shiftKey\"};function n1(e){var n=this.nativeEvent;return n.getModifierState?n.getModifierState(e):!!(e=n0[e])&&!!n[e]}function n2(){return n1}var n4=nN(f({},nV,{key:function(e){if(e.key){var n=nG[e.key]||e.key;if(\"Unidentified\"!==n)return n}return\"keypress\"===e.type?13===(e=nL(e))?\"Enter\":String.fromCharCode(e):\"keydown\"===e.type||\"keyup\"===e.type?nJ[e.keyCode]||\"Unidentified\":\"\"},code:0,location:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,repeat:0,locale:0,getModifierState:n2,charCode:function(e){return\"keypress\"===e.type?nL(e):0},keyCode:function(e){return\"keydown\"===e.type||\"keyup\"===e.type?e.keyCode:0},which:function(e){return\"keypress\"===e.type?nL(e):\"keydown\"===e.type||\"keyup\"===e.type?e.keyCode:0}})),n5=nN(f({},nW,{pointerId:0,width:0,height:0,pressure:0,tangentialPressure:0,tiltX:0,tiltY:0,twist:0,pointerType:0,isPrimary:0})),n3=nN(f({},nV,{touches:0,targetTouches:0,changedTouches:0,altKey:0,metaKey:0,ctrlKey:0,shiftKey:0,getModifierState:n2})),n6=nN(f({},nF,{propertyName:0,elapsedTime:0,pseudoElement:0})),n9=nN(f({},nW,{deltaX:function(e){return\"deltaX\"in e?e.deltaX:\"wheelDeltaX\"in e?-e.wheelDeltaX:0},deltaY:function(e){return\"deltaY\"in e?e.deltaY:\"wheelDeltaY\"in e?-e.wheelDeltaY:\"wheelDelta\"in e?-e.wheelDelta:0},deltaZ:0,deltaMode:0})),n8=nN(f({},nF,{newState:0,oldState:0})),n7=[9,13,27,32],te=nO&&\"CompositionEvent\"in window,tn=null;nO&&\"documentMode\"in document&&(tn=document.documentMode);var tt=nO&&\"TextEvent\"in window&&!tn,tr=nO&&(!te||tn&&8<tn&&11>=tn),to=!1;function ta(e,n){switch(e){case\"keyup\":return -1!==n7.indexOf(n.keyCode);case\"keydown\":return 229!==n.keyCode;case\"keypress\":case\"mousedown\":case\"focusout\":return!0;default:return!1}}function ti(e){return\"object\"==typeof(e=e.detail)&&\"data\"in e?e.data:null}var tl=!1,ts={color:!0,date:!0,datetime:!0,\"datetime-local\":!0,email:!0,month:!0,number:!0,password:!0,range:!0,search:!0,tel:!0,text:!0,time:!0,url:!0,week:!0};function tc(e){var n=e&&e.nodeName&&e.nodeName.toLowerCase();return\"input\"===n?!!ts[e.type]:\"textarea\"===n}function tu(e,n,t,r){ny?nx?nx.push(r):nx=[r]:ny=r,0<(n=ce(n,\"onChange\")).length&&(t=new nU(\"onChange\",\"change\",null,t,r),e.push({event:t,listeners:n}))}var td=null,tf=null;function tp(e){s2(e,0)}function th(e){if(e8(e$(e)))return e}function tg(e,n){if(\"change\"===e)return n}var tm=!1;if(nO){if(nO){var tv=\"oninput\"in document;if(!tv){var tb=document.createElement(\"div\");tb.setAttribute(\"oninput\",\"return;\"),tv=\"function\"==typeof tb.oninput}r=tv}else r=!1;tm=r&&(!document.documentMode||9<document.documentMode)}function ty(){td&&(td.detachEvent(\"onpropertychange\",tx),tf=td=null)}function tx(e){if(\"value\"===e.propertyName&&th(tf)){var n=[];tu(n,tf,e,nb(e)),nk(tp,n)}}function tw(e,n,t){\"focusin\"===e?(ty(),td=n,tf=t,td.attachEvent(\"onpropertychange\",tx)):\"focusout\"===e&&ty()}function tj(e){if(\"selectionchange\"===e||\"keyup\"===e||\"keydown\"===e)return th(tf)}function tk(e,n){if(\"click\"===e)return th(n)}function tA(e,n){if(\"input\"===e||\"change\"===e)return th(n)}var tO=\"function\"==typeof Object.is?Object.is:function(e,n){return e===n&&(0!==e||1/e==1/n)||e!=e&&n!=n};function tC(e,n){if(tO(e,n))return!0;if(\"object\"!=typeof e||null===e||\"object\"!=typeof n||null===n)return!1;var t=Object.keys(e),r=Object.keys(n);if(t.length!==r.length)return!1;for(r=0;r<t.length;r++){var o=t[r];if(!G.call(n,o)||!tO(e[o],n[o]))return!1}return!0}function tS(e){for(;e&&e.firstChild;)e=e.firstChild;return e}function tE(e,n){var t,r=tS(e);for(e=0;r;){if(3===r.nodeType){if(t=e+r.textContent.length,e<=n&&t>=n)return{node:r,offset:n-e};e=t}e:{for(;r;){if(r.nextSibling){r=r.nextSibling;break e}r=r.parentNode}r=void 0}r=tS(r)}}function t_(e){e=null!=e&&null!=e.ownerDocument&&null!=e.ownerDocument.defaultView?e.ownerDocument.defaultView:window;for(var n=e7(e.document);n instanceof e.HTMLIFrameElement;){try{var t=\"string\"==typeof n.contentWindow.location.href}catch(e){t=!1}if(t)e=n.contentWindow;else break;n=e7(e.document)}return n}function tP(e){var n=e&&e.nodeName&&e.nodeName.toLowerCase();return n&&(\"input\"===n&&(\"text\"===e.type||\"search\"===e.type||\"tel\"===e.type||\"url\"===e.type||\"password\"===e.type)||\"textarea\"===n||\"true\"===e.contentEditable)}var tz=nO&&\"documentMode\"in document&&11>=document.documentMode,tL=null,tT=null,tR=null,tN=!1;function tD(e,n,t){var r=t.window===t?t.document:9===t.nodeType?t:t.ownerDocument;tN||null==tL||tL!==e7(r)||(r=\"selectionStart\"in(r=tL)&&tP(r)?{start:r.selectionStart,end:r.selectionEnd}:{anchorNode:(r=(r.ownerDocument&&r.ownerDocument.defaultView||window).getSelection()).anchorNode,anchorOffset:r.anchorOffset,focusNode:r.focusNode,focusOffset:r.focusOffset},tR&&tC(tR,r)||(tR=r,0<(r=ce(tT,\"onSelect\")).length&&(n=new nU(\"onSelect\",\"select\",null,n,t),e.push({event:n,listeners:r}),n.target=tL)))}function tB(e,n){var t={};return t[e.toLowerCase()]=n.toLowerCase(),t[\"Webkit\"+e]=\"webkit\"+n,t[\"Moz\"+e]=\"moz\"+n,t}var tM={animationend:tB(\"Animation\",\"AnimationEnd\"),animationiteration:tB(\"Animation\",\"AnimationIteration\"),animationstart:tB(\"Animation\",\"AnimationStart\"),transitionrun:tB(\"Transition\",\"TransitionRun\"),transitionstart:tB(\"Transition\",\"TransitionStart\"),transitioncancel:tB(\"Transition\",\"TransitionCancel\"),transitionend:tB(\"Transition\",\"TransitionEnd\")},tI={},tH={};function tF(e){if(tI[e])return tI[e];if(!tM[e])return e;var n,t=tM[e];for(n in t)if(t.hasOwnProperty(n)&&n in tH)return tI[e]=t[n];return e}nO&&(tH=document.createElement(\"div\").style,\"AnimationEvent\"in window||(delete tM.animationend.animation,delete tM.animationiteration.animation,delete tM.animationstart.animation),\"TransitionEvent\"in window||delete tM.transitionend.transition);var tU=tF(\"animationend\"),tV=tF(\"animationiteration\"),tq=tF(\"animationstart\"),tW=tF(\"transitionrun\"),t$=tF(\"transitionstart\"),tZ=tF(\"transitioncancel\"),tY=tF(\"transitionend\"),tX=new Map,tK=\"abort auxClick beforeToggle cancel canPlay canPlayThrough click close contextMenu copy cut drag dragEnd dragEnter dragExit dragLeave dragOver dragStart drop durationChange emptied encrypted ended error gotPointerCapture input invalid keyDown keyPress keyUp load loadedData loadedMetadata loadStart lostPointerCapture mouseDown mouseMove mouseOut mouseOver mouseUp paste pause play playing pointerCancel pointerDown pointerMove pointerOut pointerOver pointerUp progress rateChange reset resize seeked seeking stalled submit suspend timeUpdate touchCancel touchEnd touchStart volumeChange scroll toggle touchMove waiting wheel\".split(\" \");function tQ(e,n){tX.set(e,n),eQ(n,[e])}tK.push(\"scrollEnd\");var tG=\"function\"==typeof reportError?reportError:function(e){if(\"object\"==typeof window&&\"function\"==typeof window.ErrorEvent){var n=new window.ErrorEvent(\"error\",{bubbles:!0,cancelable:!0,message:\"object\"==typeof e&&null!==e&&\"string\"==typeof e.message?String(e.message):String(e),error:e});if(!window.dispatchEvent(n))return}else if(\"object\"==typeof process&&\"function\"==typeof process.emit)return void process.emit(\"uncaughtException\",e);console.error(e)},tJ=[],t0=0,t1=0;function t2(){for(var e=t0,n=t1=t0=0;n<e;){var t=tJ[n];tJ[n++]=null;var r=tJ[n];tJ[n++]=null;var o=tJ[n];tJ[n++]=null;var a=tJ[n];if(tJ[n++]=null,null!==r&&null!==o){var i=r.pending;null===i?o.next=o:(o.next=i.next,i.next=o),r.pending=o}0!==a&&t6(t,o,a)}}function t4(e,n,t,r){tJ[t0++]=e,tJ[t0++]=n,tJ[t0++]=t,tJ[t0++]=r,t1|=r,e.lanes|=r,null!==(e=e.alternate)&&(e.lanes|=r)}function t5(e,n,t,r){return t4(e,n,t,r),t9(e)}function t3(e,n){return t4(e,null,null,n),t9(e)}function t6(e,n,t){e.lanes|=t;var r=e.alternate;null!==r&&(r.lanes|=t);for(var o=!1,a=e.return;null!==a;)a.childLanes|=t,null!==(r=a.alternate)&&(r.childLanes|=t),22===a.tag&&(null===(e=a.stateNode)||1&e._visibility||(o=!0)),e=a,a=a.return;return 3===e.tag?(a=e.stateNode,o&&null!==n&&(o=31-eg(t),null===(r=(e=a.hiddenUpdates)[o])?e[o]=[n]:r.push(n),n.lane=0x20000000|t),a):null}function t9(e){if(50<se)throw se=0,sn=null,Error(l(185));for(var n=e.return;null!==n;)n=(e=n).return;return 3===e.tag?e.stateNode:null}var t8={};function t7(e,n,t,r){this.tag=e,this.key=t,this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null,this.index=0,this.refCleanup=this.ref=null,this.pendingProps=n,this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null,this.mode=r,this.subtreeFlags=this.flags=0,this.deletions=null,this.childLanes=this.lanes=0,this.alternate=null}function re(e,n,t,r){return new t7(e,n,t,r)}function rn(e){return!(!(e=e.prototype)||!e.isReactComponent)}function rt(e,n){var t=e.alternate;return null===t?((t=re(e.tag,n,e.key,e.mode)).elementType=e.elementType,t.type=e.type,t.stateNode=e.stateNode,t.alternate=e,e.alternate=t):(t.pendingProps=n,t.type=e.type,t.flags=0,t.subtreeFlags=0,t.deletions=null),t.flags=0x3e00000&e.flags,t.childLanes=e.childLanes,t.lanes=e.lanes,t.child=e.child,t.memoizedProps=e.memoizedProps,t.memoizedState=e.memoizedState,t.updateQueue=e.updateQueue,n=e.dependencies,t.dependencies=null===n?null:{lanes:n.lanes,firstContext:n.firstContext},t.sibling=e.sibling,t.index=e.index,t.ref=e.ref,t.refCleanup=e.refCleanup,t}function rr(e,n){e.flags&=0x3e00002;var t=e.alternate;return null===t?(e.childLanes=0,e.lanes=n,e.child=null,e.subtreeFlags=0,e.memoizedProps=null,e.memoizedState=null,e.updateQueue=null,e.dependencies=null,e.stateNode=null):(e.childLanes=t.childLanes,e.lanes=t.lanes,e.child=t.child,e.subtreeFlags=0,e.deletions=null,e.memoizedProps=t.memoizedProps,e.memoizedState=t.memoizedState,e.updateQueue=t.updateQueue,e.type=t.type,e.dependencies=null===(n=t.dependencies)?null:{lanes:n.lanes,firstContext:n.firstContext}),e}function ro(e,n,t,r,o,a){var i=0;if(r=e,\"function\"==typeof e)rn(e)&&(i=1);else if(\"string\"==typeof e)i=!function(e,n,t){if(1===t||null!=n.itemProp)return!1;switch(e){case\"meta\":case\"title\":return!0;case\"style\":if(\"string\"!=typeof n.precedence||\"string\"!=typeof n.href||\"\"===n.href)break;return!0;case\"link\":if(\"string\"!=typeof n.rel||\"string\"!=typeof n.href||\"\"===n.href||n.onLoad||n.onError)break;if(\"stylesheet\"===n.rel)return e=n.disabled,\"string\"==typeof n.precedence&&null==e;return!0;case\"script\":if(n.async&&\"function\"!=typeof n.async&&\"symbol\"!=typeof n.async&&!n.onLoad&&!n.onError&&n.src&&\"string\"==typeof n.src)return!0}return!1}(e,t,H.current)?\"html\"===e||\"head\"===e||\"body\"===e?27:5:26;else e:switch(e){case C:return(e=re(31,t,n,o)).elementType=C,e.lanes=a,e;case m:return ra(t.children,o,a,n);case v:i=8,o|=24;break;case b:return(e=re(12,t,n,2|o)).elementType=b,e.lanes=a,e;case j:return(e=re(13,t,n,o)).elementType=j,e.lanes=a,e;case k:return(e=re(19,t,n,o)).elementType=k,e.lanes=a,e;default:if(\"object\"==typeof e&&null!==e)switch(e.$$typeof){case x:i=10;break e;case y:i=9;break e;case w:i=11;break e;case A:i=14;break e;case O:i=16,r=null;break e}i=29,t=Error(l(130,null===e?\"null\":typeof e,\"\")),r=null}return(n=re(i,t,n,o)).elementType=e,n.type=r,n.lanes=a,n}function ra(e,n,t,r){return(e=re(7,e,r,n)).lanes=t,e}function ri(e,n,t){return(e=re(6,e,null,n)).lanes=t,e}function rl(e){var n=re(18,null,null,0);return n.stateNode=e,n}function rs(e,n,t){return(n=re(4,null!==e.children?e.children:[],e.key,n)).lanes=t,n.stateNode={containerInfo:e.containerInfo,pendingChildren:null,implementation:e.implementation},n}var rc=new WeakMap;function ru(e,n){if(\"object\"==typeof e&&null!==e){var t=rc.get(e);return void 0!==t?t:(n={value:e,source:n,stack:Q(n)},rc.set(e,n),n)}return{value:e,source:n,stack:Q(n)}}var rd=[],rf=0,rp=null,rh=0,rg=[],rm=0,rv=null,rb=1,ry=\"\";function rx(e,n){rd[rf++]=rh,rd[rf++]=rp,rp=e,rh=n}function rw(e,n,t){rg[rm++]=rb,rg[rm++]=ry,rg[rm++]=rv,rv=e;var r=rb;e=ry;var o=32-eg(r)-1;r&=~(1<<o),t+=1;var a=32-eg(n)+o;if(30<a){var i=o-o%5;a=(r&(1<<i)-1).toString(32),r>>=i,o-=i,rb=1<<32-eg(n)+o|t<<o|r,ry=a+e}else rb=1<<a|t<<o|r,ry=e}function rj(e){null!==e.return&&(rx(e,1),rw(e,1,0))}function rk(e){for(;e===rp;)rp=rd[--rf],rd[rf]=null,rh=rd[--rf],rd[rf]=null;for(;e===rv;)rv=rg[--rm],rg[rm]=null,ry=rg[--rm],rg[rm]=null,rb=rg[--rm],rg[rm]=null}function rA(e,n){rg[rm++]=rb,rg[rm++]=ry,rg[rm++]=rv,rb=n.id,ry=n.overflow,rv=e}var rO=null,rC=null,rS=!1,rE=null,r_=!1,rP=Error(l(519));function rz(e){var n=Error(l(418,1<arguments.length&&void 0!==arguments[1]&&arguments[1]?\"text\":\"HTML\",\"\"));throw rB(ru(n,e)),rP}function rL(e){var n=e.stateNode,t=e.type,r=e.memoizedProps;switch(n[eN]=e,n[eD]=r,t){case\"dialog\":s4(\"cancel\",n),s4(\"close\",n);break;case\"iframe\":case\"object\":case\"embed\":s4(\"load\",n);break;case\"video\":case\"audio\":for(t=0;t<s0.length;t++)s4(s0[t],n);break;case\"source\":s4(\"error\",n);break;case\"img\":case\"image\":case\"link\":s4(\"error\",n),s4(\"load\",n);break;case\"details\":s4(\"toggle\",n);break;case\"input\":s4(\"invalid\",n),nr(n,r.value,r.defaultValue,r.checked,r.defaultChecked,r.type,r.name,!0);break;case\"select\":s4(\"invalid\",n);break;case\"textarea\":s4(\"invalid\",n),nl(n,r.value,r.defaultValue,r.children)}\"string\"!=typeof(t=r.children)&&\"number\"!=typeof t&&\"bigint\"!=typeof t||n.textContent===\"\"+t||!0===r.suppressHydrationWarning||ci(n.textContent,t)?(null!=r.popover&&(s4(\"beforetoggle\",n),s4(\"toggle\",n)),null!=r.onScroll&&s4(\"scroll\",n),null!=r.onScrollEnd&&s4(\"scrollend\",n),null!=r.onClick&&(n.onclick=nm),n=!0):n=!1,n||rz(e,!0)}function rT(e){for(rO=e.return;rO;)switch(rO.tag){case 5:case 31:case 13:r_=!1;return;case 27:case 3:r_=!0;return;default:rO=rO.return}}function rR(e){if(e!==rO)return!1;if(!rS)return rT(e),rS=!0,!1;var n,t=e.tag;if((n=3!==t&&27!==t)&&((n=5===t)&&(n=\"form\"===(n=e.type)||\"button\"===n||cg(e.type,e.memoizedProps)),n=!n),n&&rC&&rz(e),rT(e),13===t){if(!(e=null!==(e=e.memoizedState)?e.dehydrated:null))throw Error(l(317));rC=cz(e)}else if(31===t){if(!(e=null!==(e=e.memoizedState)?e.dehydrated:null))throw Error(l(317));rC=cz(e)}else 27===t?(t=rC,cj(e.type)?(e=cP,cP=null,rC=e):rC=t):rC=rO?c_(e.stateNode.nextSibling):null;return!0}function rN(){rC=rO=null,rS=!1}function rD(){var e=rE;return null!==e&&(null===lQ?lQ=e:lQ.push.apply(lQ,e),rE=null),e}function rB(e){null===rE?rE=[e]:rE.push(e)}var rM=B(null),rI=null,rH=null;function rF(e,n,t){I(rM,n._currentValue),n._currentValue=t}function rU(e){e._currentValue=rM.current,M(rM)}function rV(e,n,t){for(;null!==e;){var r=e.alternate;if((e.childLanes&n)!==n?(e.childLanes|=n,null!==r&&(r.childLanes|=n)):null!==r&&(r.childLanes&n)!==n&&(r.childLanes|=n),e===t)break;e=e.return}}function rq(e,n,t,r){var o=e.child;for(null!==o&&(o.return=e);null!==o;){var a=o.dependencies;if(null!==a){var i=o.child;a=a.firstContext;e:for(;null!==a;){var s=a;a=o;for(var c=0;c<n.length;c++)if(s.context===n[c]){a.lanes|=t,null!==(s=a.alternate)&&(s.lanes|=t),rV(a.return,t,e),r||(i=null);break e}a=s.next}}else if(18===o.tag){if(null===(i=o.return))throw Error(l(341));i.lanes|=t,null!==(a=i.alternate)&&(a.lanes|=t),rV(i,t,e),i=null}else i=o.child;if(null!==i)i.return=o;else for(i=o;null!==i;){if(i===e){i=null;break}if(null!==(o=i.sibling)){o.return=i.return,i=o;break}i=i.return}o=i}}function rW(e,n,t,r){e=null;for(var o=n,a=!1;null!==o;){if(!a){if(0!=(524288&o.flags))a=!0;else if(0!=(262144&o.flags))break}if(10===o.tag){var i=o.alternate;if(null===i)throw Error(l(387));if(null!==(i=i.memoizedProps)){var s=o.type;tO(o.pendingProps.value,i.value)||(null!==e?e.push(s):e=[s])}}else if(o===V.current){if(null===(i=o.alternate))throw Error(l(387));i.memoizedState.memoizedState!==o.memoizedState.memoizedState&&(null!==e?e.push(c6):e=[c6])}o=o.return}null!==e&&rq(n,e,t,r),n.flags|=262144}function r$(e){for(e=e.firstContext;null!==e;){if(!tO(e.context._currentValue,e.memoizedValue))return!0;e=e.next}return!1}function rZ(e){rI=e,rH=null,null!==(e=e.dependencies)&&(e.firstContext=null)}function rY(e){return rK(rI,e)}function rX(e,n){return null===rI&&rZ(e),rK(e,n)}function rK(e,n){var t=n._currentValue;if(n={context:n,memoizedValue:t,next:null},null===rH){if(null===e)throw Error(l(308));rH=n,e.dependencies={lanes:0,firstContext:n},e.flags|=524288}else rH=rH.next=n;return t}var rQ=\"undefined\"!=typeof AbortController?AbortController:function(){var e=[],n=this.signal={aborted:!1,addEventListener:function(n,t){e.push(t)}};this.abort=function(){n.aborted=!0,e.forEach(function(e){return e()})}},rG=o.unstable_scheduleCallback,rJ=o.unstable_NormalPriority,r0={$$typeof:x,Consumer:null,Provider:null,_currentValue:null,_currentValue2:null,_threadCount:0};function r1(){return{controller:new rQ,data:new Map,refCount:0}}function r2(e){e.refCount--,0===e.refCount&&rG(rJ,function(){e.controller.abort()})}var r4=null,r5=0,r3=0,r6=null;function r9(){if(0==--r5&&null!==r4){null!==r6&&(r6.status=\"fulfilled\");var e=r4;r4=null,r3=0,r6=null;for(var n=0;n<e.length;n++)(0,e[n])()}}var r8=L.S;L.S=function(e,n){\"object\"==typeof n&&null!==n&&\"function\"==typeof n.then&&function(e,n){if(null===r4){var t=r4=[];r5=0,r3=sX(),r6={status:\"pending\",value:void 0,then:function(e){t.push(e)}}}r5++,n.then(r9,r9)}(0,n),null!==r8&&r8(e,n)};var r7=B(null);function oe(){var e=r7.current;return null!==e?e:lN.pooledCache}function on(e,n){null===n?I(r7,r7.current):I(r7,n.pool)}function ot(){var e=oe();return null===e?null:{parent:r0._currentValue,pool:e}}var or=Error(l(460)),oo=Error(l(474)),oa=Error(l(542)),oi={then:function(){}};function ol(e){return\"fulfilled\"===(e=e.status)||\"rejected\"===e}function os(e,n,t){switch(void 0===(t=e[t])?e.push(n):t!==n&&(n.then(nm,nm),n=t),n.status){case\"fulfilled\":return n.value;case\"rejected\":throw od(e=n.reason),e;default:if(\"string\"==typeof n.status)n.then(nm,nm);else{if(null!==(e=lN)&&100<e.shellSuspendCounter)throw Error(l(482));(e=n).status=\"pending\",e.then(function(e){if(\"pending\"===n.status){var t=n;t.status=\"fulfilled\",t.value=e}},function(e){if(\"pending\"===n.status){var t=n;t.status=\"rejected\",t.reason=e}})}switch(n.status){case\"fulfilled\":return n.value;case\"rejected\":throw od(e=n.reason),e}throw oc=n,or}}var oc=null;function ou(){if(null===oc)throw Error(l(459));var e=oc;return oc=null,e}function od(e){if(e===or||e===oa)throw Error(l(483))}var of=null,op=0;function oh(e){var n=op;return op+=1,null===of&&(of=[]),os(of,e,n)}function og(e,n){e.ref=void 0!==(n=n.props.ref)?n:null}function om(e,n){if(n.$$typeof===p)throw Error(l(525));throw Error(l(31,\"[object Object]\"===(e=Object.prototype.toString.call(n))?\"object with keys {\"+Object.keys(n).join(\", \")+\"}\":e))}function ov(e){return(0,e._init)(e._payload)}function ob(e){function n(n,t){if(e){var r=n.deletions;null===r?(n.deletions=[t],n.flags|=16):r.push(t)}}function t(t,r){if(!e)return null;for(;null!==r;)n(t,r),r=r.sibling;return null}function r(e){for(var n=new Map;null!==e;)null!==e.key?n.set(e.key,e):n.set(e.index,e),e=e.sibling;return n}function o(e,n){return(e=rt(e,n)).index=0,e.sibling=null,e}function a(n,t,r){return(n.index=r,e)?null!==(r=n.alternate)?(r=r.index)<t?(n.flags|=0x4000002,t):r:(n.flags|=0x4000002,t):(n.flags|=1048576,t)}function i(n){return e&&null===n.alternate&&(n.flags|=0x4000002),n}function s(e,n,t,r){return null===n||6!==n.tag?(n=ri(t,e.mode,r)).return=e:(n=o(n,t)).return=e,n}function c(e,n,t,r){var a=t.type;return a===m?d(e,n,t.props.children,r,t.key):(null!==n&&(n.elementType===a||\"object\"==typeof a&&null!==a&&a.$$typeof===O&&ov(a)===n.type)?og(n=o(n,t.props),t):og(n=ro(t.type,t.key,t.props,null,e.mode,r),t),n.return=e,n)}function u(e,n,t,r){return null===n||4!==n.tag||n.stateNode.containerInfo!==t.containerInfo||n.stateNode.implementation!==t.implementation?(n=rs(t,e.mode,r)).return=e:(n=o(n,t.children||[])).return=e,n}function d(e,n,t,r,a){return null===n||7!==n.tag?(n=ra(t,e.mode,r,a)).return=e:(n=o(n,t)).return=e,n}function f(e,n,t){if(\"string\"==typeof n&&\"\"!==n||\"number\"==typeof n||\"bigint\"==typeof n)return(n=ri(\"\"+n,e.mode,t)).return=e,n;if(\"object\"==typeof n&&null!==n){switch(n.$$typeof){case h:return og(t=ro(n.type,n.key,n.props,null,e.mode,t),n),t.return=e,t;case g:return(n=rs(n,e.mode,t)).return=e,n;case O:return f(e,n=(0,n._init)(n._payload),t)}if(z(n)||_(n))return(n=ra(n,e.mode,t,null)).return=e,n;if(\"function\"==typeof n.then)return f(e,oh(n),t);if(n.$$typeof===x)return f(e,rX(e,n),t);om(e,n)}return null}function p(e,n,t,r){var o=null!==n?n.key:null;if(\"string\"==typeof t&&\"\"!==t||\"number\"==typeof t||\"bigint\"==typeof t)return null!==o?null:s(e,n,\"\"+t,r);if(\"object\"==typeof t&&null!==t){switch(t.$$typeof){case h:return t.key===o?c(e,n,t,r):null;case g:return t.key===o?u(e,n,t,r):null;case O:return p(e,n,t=(o=t._init)(t._payload),r)}if(z(t)||_(t))return null!==o?null:d(e,n,t,r,null);if(\"function\"==typeof t.then)return p(e,n,oh(t),r);if(t.$$typeof===x)return p(e,n,rX(e,t),r);om(e,t)}return null}function v(e,n,t,r,o){if(\"string\"==typeof r&&\"\"!==r||\"number\"==typeof r||\"bigint\"==typeof r)return s(n,e=e.get(t)||null,\"\"+r,o);if(\"object\"==typeof r&&null!==r){switch(r.$$typeof){case h:return c(n,e=e.get(null===r.key?t:r.key)||null,r,o);case g:return u(n,e=e.get(null===r.key?t:r.key)||null,r,o);case O:return v(e,n,t,r=(0,r._init)(r._payload),o)}if(z(r)||_(r))return d(n,e=e.get(t)||null,r,o,null);if(\"function\"==typeof r.then)return v(e,n,t,oh(r),o);if(r.$$typeof===x)return v(e,n,t,rX(n,r),o);om(n,r)}return null}return function(s,c,u,d){try{op=0;var b=function s(c,u,d,b){if(\"object\"==typeof d&&null!==d&&d.type===m&&null===d.key&&(d=d.props.children),\"object\"==typeof d&&null!==d){switch(d.$$typeof){case h:e:{for(var y=d.key;null!==u;){if(u.key===y){if((y=d.type)===m){if(7===u.tag){t(c,u.sibling),(b=o(u,d.props.children)).return=c,c=b;break e}}else if(u.elementType===y||\"object\"==typeof y&&null!==y&&y.$$typeof===O&&ov(y)===u.type){t(c,u.sibling),og(b=o(u,d.props),d),b.return=c,c=b;break e}t(c,u);break}n(c,u),u=u.sibling}d.type===m?(b=ra(d.props.children,c.mode,b,d.key)).return=c:(og(b=ro(d.type,d.key,d.props,null,c.mode,b),d),b.return=c),c=b}return i(c);case g:e:{for(y=d.key;null!==u;){if(u.key===y)if(4===u.tag&&u.stateNode.containerInfo===d.containerInfo&&u.stateNode.implementation===d.implementation){t(c,u.sibling),(b=o(u,d.children||[])).return=c,c=b;break e}else{t(c,u);break}n(c,u),u=u.sibling}(b=rs(d,c.mode,b)).return=c,c=b}return i(c);case O:return s(c,u,d=(y=d._init)(d._payload),b)}if(z(d))return function(o,i,l,s){for(var c=null,u=null,d=i,h=i=0,g=null;null!==d&&h<l.length;h++){d.index>h?(g=d,d=null):g=d.sibling;var m=p(o,d,l[h],s);if(null===m){null===d&&(d=g);break}e&&d&&null===m.alternate&&n(o,d),i=a(m,i,h),null===u?c=m:u.sibling=m,u=m,d=g}if(h===l.length)return t(o,d),rS&&rx(o,h),c;if(null===d){for(;h<l.length;h++)null!==(d=f(o,l[h],s))&&(i=a(d,i,h),null===u?c=d:u.sibling=d,u=d);return rS&&rx(o,h),c}for(d=r(d);h<l.length;h++)null!==(g=v(d,o,h,l[h],s))&&(e&&null!==g.alternate&&d.delete(null===g.key?h:g.key),i=a(g,i,h),null===u?c=g:u.sibling=g,u=g);return e&&d.forEach(function(e){return n(o,e)}),rS&&rx(o,h),c}(c,u,d,b);if(_(d)){if(\"function\"!=typeof(y=_(d)))throw Error(l(150));return function(o,i,s,c){if(null==s)throw Error(l(151));for(var u=null,d=null,h=i,g=i=0,m=null,b=s.next();null!==h&&!b.done;g++,b=s.next()){h.index>g?(m=h,h=null):m=h.sibling;var y=p(o,h,b.value,c);if(null===y){null===h&&(h=m);break}e&&h&&null===y.alternate&&n(o,h),i=a(y,i,g),null===d?u=y:d.sibling=y,d=y,h=m}if(b.done)return t(o,h),rS&&rx(o,g),u;if(null===h){for(;!b.done;g++,b=s.next())null!==(b=f(o,b.value,c))&&(i=a(b,i,g),null===d?u=b:d.sibling=b,d=b);return rS&&rx(o,g),u}for(h=r(h);!b.done;g++,b=s.next())null!==(b=v(h,o,g,b.value,c))&&(e&&null!==b.alternate&&h.delete(null===b.key?g:b.key),i=a(b,i,g),null===d?u=b:d.sibling=b,d=b);return e&&h.forEach(function(e){return n(o,e)}),rS&&rx(o,g),u}(c,u,d=y.call(d),b)}if(\"function\"==typeof d.then)return s(c,u,oh(d),b);if(d.$$typeof===x)return s(c,u,rX(c,d),b);om(c,d)}return\"string\"==typeof d&&\"\"!==d||\"number\"==typeof d||\"bigint\"==typeof d?(d=\"\"+d,null!==u&&6===u.tag?(t(c,u.sibling),(b=o(u,d)).return=c):(t(c,u),(b=ri(d,c.mode,b)).return=c),i(c=b)):t(c,u)}(s,c,u,d);return of=null,b}catch(e){if(e===or||e===oa)throw e;var y=re(29,e,null,s.mode);return y.lanes=d,y.return=s,y}finally{}}}var oy=ob(!0),ox=ob(!1),ow=!1;function oj(e){e.updateQueue={baseState:e.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,lanes:0,hiddenCallbacks:null},callbacks:null}}function ok(e,n){e=e.updateQueue,n.updateQueue===e&&(n.updateQueue={baseState:e.baseState,firstBaseUpdate:e.firstBaseUpdate,lastBaseUpdate:e.lastBaseUpdate,shared:e.shared,callbacks:null})}function oA(e){return{lane:e,tag:0,payload:null,callback:null,next:null}}function oO(e,n,t){var r=e.updateQueue;if(null===r)return null;if(r=r.shared,0!=(2&lR)){var o=r.pending;return null===o?n.next=n:(n.next=o.next,o.next=n),r.pending=n,n=t9(e),t6(e,null,t),n}return t4(e,r,n,t),t9(e)}function oC(e,n,t){if(null!==(n=n.updateQueue)&&(n=n.shared,0!=(4194048&t))){var r=n.lanes;r&=e.pendingLanes,t|=r,n.lanes=t,eE(e,t)}}function oS(e,n){var t=e.updateQueue,r=e.alternate;if(null!==r&&t===(r=r.updateQueue)){var o=null,a=null;if(null!==(t=t.firstBaseUpdate)){do{var i={lane:t.lane,tag:t.tag,payload:t.payload,callback:null,next:null};null===a?o=a=i:a=a.next=i,t=t.next}while(null!==t);null===a?o=a=n:a=a.next=n}else o=a=n;t={baseState:r.baseState,firstBaseUpdate:o,lastBaseUpdate:a,shared:r.shared,callbacks:r.callbacks},e.updateQueue=t;return}null===(e=t.lastBaseUpdate)?t.firstBaseUpdate=n:e.next=n,t.lastBaseUpdate=n}var oE=!1;function o_(){if(oE){var e=r6;if(null!==e)throw e}}function oP(e,n,t,r){oE=!1;var o=e.updateQueue;ow=!1;var a=o.firstBaseUpdate,i=o.lastBaseUpdate,l=o.shared.pending;if(null!==l){o.shared.pending=null;var s=l,c=s.next;s.next=null,null===i?a=c:i.next=c,i=s;var u=e.alternate;null!==u&&(l=(u=u.updateQueue).lastBaseUpdate)!==i&&(null===l?u.firstBaseUpdate=c:l.next=c,u.lastBaseUpdate=s)}if(null!==a){var d=o.baseState;for(i=0,u=c=s=null,l=a;;){var p=-0x20000001&l.lane,h=p!==l.lane;if(h?(lB&p)===p:(r&p)===p){0!==p&&p===r3&&(oE=!0),null!==u&&(u=u.next={lane:0,tag:l.tag,payload:l.payload,callback:null,next:null});e:{var g=e,m=l;switch(p=n,m.tag){case 1:if(\"function\"==typeof(g=m.payload)){d=g.call(t,d,p);break e}d=g;break e;case 3:g.flags=-65537&g.flags|128;case 0:if(null==(p=\"function\"==typeof(g=m.payload)?g.call(t,d,p):g))break e;d=f({},d,p);break e;case 2:ow=!0}}null!==(p=l.callback)&&(e.flags|=64,h&&(e.flags|=8192),null===(h=o.callbacks)?o.callbacks=[p]:h.push(p))}else h={lane:p,tag:l.tag,payload:l.payload,callback:l.callback,next:null},null===u?(c=u=h,s=d):u=u.next=h,i|=p;if(null===(l=l.next))if(null===(l=o.shared.pending))break;else l=(h=l).next,h.next=null,o.lastBaseUpdate=h,o.shared.pending=null}null===u&&(s=d),o.baseState=s,o.firstBaseUpdate=c,o.lastBaseUpdate=u,null===a&&(o.shared.lanes=0),lW|=i,e.lanes=i,e.memoizedState=d}}function oz(e,n){if(\"function\"!=typeof e)throw Error(l(191,e));e.call(n)}function oL(e,n){var t=e.callbacks;if(null!==t)for(e.callbacks=null,e=0;e<t.length;e++)oz(t[e],n)}var oT=B(null),oR=B(0);function oN(e,n){I(oR,e=lV),I(oT,n),lV=e|n.baseLanes}function oD(){I(oR,lV),I(oT,oT.current)}function oB(){lV=oR.current,M(oT),M(oR)}var oM=B(null),oI=null;function oH(e){var n=e.alternate;I(oW,1&oW.current),I(oM,e),null===oI&&(null===n||null!==oT.current?oI=e:null!==n.memoizedState&&(oI=e))}function oF(e){I(oW,oW.current),I(oM,e),null===oI&&(oI=e)}function oU(e){22===e.tag?(I(oW,oW.current),I(oM,e),null===oI&&(oI=e)):oV(e)}function oV(){I(oW,oW.current),I(oM,oM.current)}function oq(e){M(oM),oI===e&&(oI=null),M(oW)}var oW=B(0);function o$(e){for(var n=e;null!==n;){if(13===n.tag){var t=n.memoizedState;if(null!==t&&(null===(t=t.dehydrated)||cS(t)||cE(t)))return n}else if(19===n.tag&&(\"forwards\"===n.memoizedProps.revealOrder||\"backwards\"===n.memoizedProps.revealOrder||\"unstable_legacy-backwards\"===n.memoizedProps.revealOrder||\"together\"===n.memoizedProps.revealOrder)){if(0!=(128&n.flags))return n}else if(null!==n.child){n.child.return=n,n=n.child;continue}if(n===e)break;for(;null===n.sibling;){if(null===n.return||n.return===e)return null;n=n.return}n.sibling.return=n.return,n=n.sibling}return null}var oZ=0,oY=null,oX=null,oK=null,oQ=!1,oG=!1,oJ=!1,o0=0,o1=0,o2=null,o4=0;function o5(){throw Error(l(321))}function o3(e,n){if(null===n)return!1;for(var t=0;t<n.length&&t<e.length;t++)if(!tO(e[t],n[t]))return!1;return!0}function o6(e,n,t,r,o,a){return oZ=a,oY=n,n.memoizedState=null,n.updateQueue=null,n.lanes=0,L.H=null===e||null===e.memoizedState?it:ir,oJ=!1,a=t(r,o),oJ=!1,oG&&(a=o8(n,t,r,o)),o9(e),a}function o9(e){L.H=ie;var n=null!==oX&&null!==oX.next;if(oZ=0,oK=oX=oY=null,oQ=!1,o1=0,o2=null,n)throw Error(l(300));null===e||ix||null!==(e=e.dependencies)&&r$(e)&&(ix=!0)}function o8(e,n,t,r){oY=e;var o=0;do{if(oG&&(o2=null),o1=0,oG=!1,25<=o)throw Error(l(301));if(o+=1,oK=oX=null,null!=e.updateQueue){var a=e.updateQueue;a.lastEffect=null,a.events=null,a.stores=null,null!=a.memoCache&&(a.memoCache.index=0)}L.H=io,a=n(t,r)}while(oG);return a}function o7(){var e=L.H,n=e.useState()[0];return n=\"function\"==typeof n.then?ai(n):n,e=e.useState()[0],(null!==oX?oX.memoizedState:null)!==e&&(oY.flags|=1024),n}function ae(){var e=0!==o0;return o0=0,e}function an(e,n,t){n.updateQueue=e.updateQueue,n.flags&=-2053,e.lanes&=~t}function at(e){if(oQ){for(e=e.memoizedState;null!==e;){var n=e.queue;null!==n&&(n.pending=null),e=e.next}oQ=!1}oZ=0,oK=oX=oY=null,oG=!1,o1=o0=0,o2=null}function ar(){var e={memoizedState:null,baseState:null,baseQueue:null,queue:null,next:null};return null===oK?oY.memoizedState=oK=e:oK=oK.next=e,oK}function ao(){if(null===oX){var e=oY.alternate;e=null!==e?e.memoizedState:null}else e=oX.next;var n=null===oK?oY.memoizedState:oK.next;if(null!==n)oK=n,oX=e;else{if(null===e){if(null===oY.alternate)throw Error(l(467));throw Error(l(310))}e={memoizedState:(oX=e).memoizedState,baseState:oX.baseState,baseQueue:oX.baseQueue,queue:oX.queue,next:null},null===oK?oY.memoizedState=oK=e:oK=oK.next=e}return oK}function aa(){return{lastEffect:null,events:null,stores:null,memoCache:null}}function ai(e){var n=o1;return o1+=1,null===o2&&(o2=[]),e=os(o2,e,n),n=oY,null===(null===oK?n.memoizedState:oK.next)&&(L.H=null===(n=n.alternate)||null===n.memoizedState?it:ir),e}function al(e){if(null!==e&&\"object\"==typeof e){if(\"function\"==typeof e.then)return ai(e);if(e.$$typeof===x)return rY(e)}throw Error(l(438,String(e)))}function as(e){var n=null,t=oY.updateQueue;if(null!==t&&(n=t.memoCache),null==n){var r=oY.alternate;null!==r&&null!==(r=r.updateQueue)&&null!=(r=r.memoCache)&&(n={data:r.data.map(function(e){return e.slice()}),index:0})}if(null==n&&(n={data:[],index:0}),null===t&&(t=aa(),oY.updateQueue=t),t.memoCache=n,void 0===(t=n.data[n.index]))for(t=n.data[n.index]=Array(e),r=0;r<e;r++)t[r]=S;return n.index++,t}function ac(e,n){return\"function\"==typeof n?n(e):n}function au(e){return ad(ao(),oX,e)}function ad(e,n,t){var r=e.queue;if(null===r)throw Error(l(311));r.lastRenderedReducer=t;var o=e.baseQueue,a=r.pending;if(null!==a){if(null!==o){var i=o.next;o.next=a.next,a.next=i}n.baseQueue=o=a,r.pending=null}if(a=e.baseState,null===o)e.memoizedState=a;else{n=o.next;var s=i=null,c=null,u=n,d=!1;do{var f=-0x20000001&u.lane;if(f!==u.lane?(lB&f)===f:(oZ&f)===f){var p=u.revertLane;if(0===p)null!==c&&(c=c.next={lane:0,revertLane:0,gesture:null,action:u.action,hasEagerState:u.hasEagerState,eagerState:u.eagerState,next:null}),f===r3&&(d=!0);else if((oZ&p)===p){u=u.next,p===r3&&(d=!0);continue}else f={lane:0,revertLane:u.revertLane,gesture:null,action:u.action,hasEagerState:u.hasEagerState,eagerState:u.eagerState,next:null},null===c?(s=c=f,i=a):c=c.next=f,oY.lanes|=p,lW|=p;f=u.action,oJ&&t(a,f),a=u.hasEagerState?u.eagerState:t(a,f)}else p={lane:f,revertLane:u.revertLane,gesture:u.gesture,action:u.action,hasEagerState:u.hasEagerState,eagerState:u.eagerState,next:null},null===c?(s=c=p,i=a):c=c.next=p,oY.lanes|=f,lW|=f;u=u.next}while(null!==u&&u!==n);if(null===c?i=a:c.next=s,!tO(a,e.memoizedState)&&(ix=!0,d&&null!==(t=r6)))throw t;e.memoizedState=a,e.baseState=i,e.baseQueue=c,r.lastRenderedState=a}return null===o&&(r.lanes=0),[e.memoizedState,r.dispatch]}function af(e){var n=ao(),t=n.queue;if(null===t)throw Error(l(311));t.lastRenderedReducer=e;var r=t.dispatch,o=t.pending,a=n.memoizedState;if(null!==o){t.pending=null;var i=o=o.next;do a=e(a,i.action),i=i.next;while(i!==o);tO(a,n.memoizedState)||(ix=!0),n.memoizedState=a,null===n.baseQueue&&(n.baseState=a),t.lastRenderedState=a}return[a,r]}function ap(e,n,t){var r=oY,o=ao(),a=rS;if(a){if(void 0===t)throw Error(l(407));t=t()}else t=n();var i=!tO((oX||o).memoizedState,t);if(i&&(o.memoizedState=t,ix=!0),o=o.queue,aM(am.bind(null,r,o,e),[e]),o.getSnapshot!==n||i||null!==oK&&1&oK.memoizedState.tag){if(r.flags|=2048,aT(9,{destroy:void 0},ag.bind(null,r,o,t,n),null),null===lN)throw Error(l(349));a||0!=(124&oZ)||ah(r,n,t)}return t}function ah(e,n,t){e.flags|=16384,e={getSnapshot:n,value:t},null===(n=oY.updateQueue)?(n=aa(),oY.updateQueue=n,n.stores=[e]):null===(t=n.stores)?n.stores=[e]:t.push(e)}function ag(e,n,t,r){n.value=t,n.getSnapshot=r,av(n)&&ab(e)}function am(e,n,t){return t(function(){av(n)&&ab(e)})}function av(e){var n=e.getSnapshot;e=e.value;try{var t=n();return!tO(e,t)}catch(e){return!0}}function ab(e){var n=t3(e,2);null!==n&&so(n,e,2)}function ay(e){var n=ar();if(\"function\"==typeof e){var t=e;if(e=t(),oJ){eh(!0);try{t()}finally{eh(!1)}}}return n.memoizedState=n.baseState=e,n.queue={pending:null,lanes:0,dispatch:null,lastRenderedReducer:ac,lastRenderedState:e},n}function ax(e,n,t,r){return e.baseState=t,ad(e,oX,\"function\"==typeof r?r:ac)}function aw(e,n,t,r,o){if(a9(e))throw Error(l(485));if(null!==(e=n.action)){var a={payload:o,action:e,next:null,isTransition:!0,status:\"pending\",value:null,reason:null,listeners:[],then:function(e){a.listeners.push(e)}};null!==L.T?t(!0):a.isTransition=!1,r(a),null===(t=n.pending)?(a.next=n.pending=a,aj(n,a)):(a.next=t.next,n.pending=t.next=a)}}function aj(e,n){var t=n.action,r=n.payload,o=e.state;if(n.isTransition){var a=L.T,i={};L.T=i;try{var l=t(o,r),s=L.S;null!==s&&s(i,l),ak(e,n,l)}catch(t){aO(e,n,t)}finally{null!==a&&null!==i.types&&(a.types=i.types),L.T=a}}else try{a=t(o,r),ak(e,n,a)}catch(t){aO(e,n,t)}}function ak(e,n,t){null!==t&&\"object\"==typeof t&&\"function\"==typeof t.then?t.then(function(t){aA(e,n,t)},function(t){return aO(e,n,t)}):aA(e,n,t)}function aA(e,n,t){n.status=\"fulfilled\",n.value=t,aC(n),e.state=t,null!==(n=e.pending)&&((t=n.next)===n?e.pending=null:(t=t.next,n.next=t,aj(e,t)))}function aO(e,n,t){var r=e.pending;if(e.pending=null,null!==r){r=r.next;do n.status=\"rejected\",n.reason=t,aC(n),n=n.next;while(n!==r)}e.action=null}function aC(e){e=e.listeners;for(var n=0;n<e.length;n++)(0,e[n])()}function aS(e,n){return n}function aE(e,n){if(rS){var t=lN.formState;if(null!==t){e:{var r=oY;if(rS){if(rC){n:{for(var o=rC,a=r_;8!==o.nodeType;)if(!a||null===(o=c_(o.nextSibling))){o=null;break n}o=\"F!\"===(a=o.data)||\"F\"===a?o:null}if(o){rC=c_(o.nextSibling),r=\"F!\"===o.data;break e}}rz(r)}r=!1}r&&(n=t[0])}}return(t=ar()).memoizedState=t.baseState=n,r={pending:null,lanes:0,dispatch:null,lastRenderedReducer:aS,lastRenderedState:n},t.queue=r,t=a5.bind(null,oY,r),r.dispatch=t,r=ay(!1),a=a6.bind(null,oY,!1,r.queue),r=ar(),o={state:n,dispatch:null,action:e,pending:null},r.queue=o,t=aw.bind(null,oY,o,a,t),o.dispatch=t,r.memoizedState=e,[n,t,!1]}function a_(e){return aP(ao(),oX,e)}function aP(e,n,t){if(n=ad(e,n,aS)[0],e=au(ac)[0],\"object\"==typeof n&&null!==n&&\"function\"==typeof n.then)try{var r=ai(n)}catch(e){if(e===or)throw oa;throw e}else r=n;var o=(n=ao()).queue,a=o.dispatch;return t!==n.memoizedState&&(oY.flags|=2048,aT(9,{destroy:void 0},az.bind(null,o,t),null)),[r,a,e]}function az(e,n){e.action=n}function aL(e){var n=ao(),t=oX;if(null!==t)return aP(n,t,e);ao(),n=n.memoizedState;var r=(t=ao()).queue.dispatch;return t.memoizedState=e,[n,r,!1]}function aT(e,n,t,r){return e={tag:e,create:t,deps:r,inst:n,next:null},null===(n=oY.updateQueue)&&(n=aa(),oY.updateQueue=n),null===(t=n.lastEffect)?n.lastEffect=e.next=e:(r=t.next,t.next=e,e.next=r,n.lastEffect=e),e}function aR(){return ao().memoizedState}function aN(e,n,t,r){var o=ar();oY.flags|=e,o.memoizedState=aT(1|n,{destroy:void 0},t,void 0===r?null:r)}function aD(e,n,t,r){var o=ao();r=void 0===r?null:r;var a=o.memoizedState.inst;null!==oX&&null!==r&&o3(r,oX.memoizedState.deps)?o.memoizedState=aT(n,a,t,r):(oY.flags|=e,o.memoizedState=aT(1|n,a,t,r))}function aB(e,n){aN(8390656,8,e,n)}function aM(e,n){aD(2048,8,e,n)}function aI(e,n){return aD(4,2,e,n)}function aH(e,n){return aD(4,4,e,n)}function aF(e,n){if(\"function\"==typeof n){var t=n(e=e());return function(){\"function\"==typeof t?t():n(null)}}if(null!=n)return n.current=e=e(),function(){n.current=null}}function aU(e,n,t){t=null!=t?t.concat([e]):null,aD(4,4,aF.bind(null,n,e),t)}function aV(){}function aq(e,n){var t=ao();n=void 0===n?null:n;var r=t.memoizedState;return null!==n&&o3(n,r[1])?r[0]:(t.memoizedState=[e,n],e)}function aW(e,n){var t=ao();n=void 0===n?null:n;var r=t.memoizedState;if(null!==n&&o3(n,r[1]))return r[0];if(r=e(),oJ){eh(!0);try{e()}finally{eh(!1)}}return t.memoizedState=[r,n],r}function a$(e,n,t){return void 0===t||0!=(0x40000000&oZ)?e.memoizedState=n:(e.memoizedState=t,e=sr(),oY.lanes|=e,lW|=e,t)}function aZ(e,n,t,r){return tO(t,n)?t:null!==oT.current?(tO(e=a$(e,t,r),n)||(ix=!0),e):0==(42&oZ)||0!=(0x40000000&oZ)?(ix=!0,e.memoizedState=t):(e=sr(),oY.lanes|=e,lW|=e,n)}function aY(e,n,t,r,o){var a=T.p;T.p=0!==a&&8>a?a:8;var i=L.T,l={};L.T=l,a6(e,!1,n,t);try{var s=o(),c=L.S;if(null!==c&&c(l,s),null!==s&&\"object\"==typeof s&&\"function\"==typeof s.then){var u,d,f=(u=[],d={status:\"pending\",value:null,reason:null,then:function(e){u.push(e)}},s.then(function(){d.status=\"fulfilled\",d.value=r;for(var e=0;e<u.length;e++)(0,u[e])(r)},function(e){for(d.status=\"rejected\",d.reason=e,e=0;e<u.length;e++)(0,u[e])(void 0)}),d);a3(e,n,f,st(e))}else a3(e,n,r,st(e))}catch(t){a3(e,n,{then:function(){},status:\"rejected\",reason:t},st())}finally{T.p=a,null!==i&&null!==l.types&&(i.types=l.types),L.T=i}}function aX(){}function aK(e,n,t,r){if(5!==e.tag)throw Error(l(476));var o=aQ(e).queue;aY(e,o,n,R,null===t?aX:function(){return aG(e),t(r)})}function aQ(e){var n=e.memoizedState;if(null!==n)return n;var t={};return(n={memoizedState:R,baseState:R,baseQueue:null,queue:{pending:null,lanes:0,dispatch:null,lastRenderedReducer:ac,lastRenderedState:R},next:null}).next={memoizedState:t,baseState:t,baseQueue:null,queue:{pending:null,lanes:0,dispatch:null,lastRenderedReducer:ac,lastRenderedState:t},next:null},e.memoizedState=n,null!==(e=e.alternate)&&(e.memoizedState=n),n}function aG(e){var n=aQ(e);null===n.next&&(n=e.alternate.memoizedState),a3(e,n.next.queue,{},st())}function aJ(){return rY(c6)}function a0(){return ao().memoizedState}function a1(){return ao().memoizedState}function a2(e){for(var n=e.return;null!==n;){switch(n.tag){case 24:case 3:var t=st(),r=oO(n,e=oA(t),t);null!==r&&(so(r,n,t),oC(r,n,t)),n={cache:r1()},e.payload=n;return}n=n.return}}function a4(e,n,t){var r=st();t={lane:r,revertLane:0,gesture:null,action:t,hasEagerState:!1,eagerState:null,next:null},a9(e)?a8(n,t):null!==(t=t5(e,n,t,r))&&(so(t,e,r),a7(t,n,r))}function a5(e,n,t){a3(e,n,t,st())}function a3(e,n,t,r){var o={lane:r,revertLane:0,gesture:null,action:t,hasEagerState:!1,eagerState:null,next:null};if(a9(e))a8(n,o);else{var a=e.alternate;if(0===e.lanes&&(null===a||0===a.lanes)&&null!==(a=n.lastRenderedReducer))try{var i=n.lastRenderedState,l=a(i,t);if(o.hasEagerState=!0,o.eagerState=l,tO(l,i))return t4(e,n,o,0),null===lN&&t2(),!1}catch(e){}finally{}if(null!==(t=t5(e,n,o,r)))return so(t,e,r),a7(t,n,r),!0}return!1}function a6(e,n,t,r){if(r={lane:2,revertLane:sX(),gesture:null,action:r,hasEagerState:!1,eagerState:null,next:null},a9(e)){if(n)throw Error(l(479))}else null!==(n=t5(e,t,r,2))&&so(n,e,2)}function a9(e){var n=e.alternate;return e===oY||null!==n&&n===oY}function a8(e,n){oG=oQ=!0;var t=e.pending;null===t?n.next=n:(n.next=t.next,t.next=n),e.pending=n}function a7(e,n,t){if(0!=(4194048&t)){var r=n.lanes;r&=e.pendingLanes,n.lanes=t|=r,eE(e,t)}}var ie={readContext:rY,use:al,useCallback:o5,useContext:o5,useEffect:o5,useImperativeHandle:o5,useLayoutEffect:o5,useInsertionEffect:o5,useMemo:o5,useReducer:o5,useRef:o5,useState:o5,useDebugValue:o5,useDeferredValue:o5,useTransition:o5,useSyncExternalStore:o5,useId:o5,useHostTransitionStatus:o5,useFormState:o5,useActionState:o5,useOptimistic:o5,useMemoCache:o5,useCacheRefresh:o5},it={readContext:rY,use:al,useCallback:function(e,n){return ar().memoizedState=[e,void 0===n?null:n],e},useContext:rY,useEffect:aB,useImperativeHandle:function(e,n,t){t=null!=t?t.concat([e]):null,aN(4194308,4,aF.bind(null,n,e),t)},useLayoutEffect:function(e,n){return aN(4194308,4,e,n)},useInsertionEffect:function(e,n){aN(4,2,e,n)},useMemo:function(e,n){var t=ar();n=void 0===n?null:n;var r=e();if(oJ){eh(!0);try{e()}finally{eh(!1)}}return t.memoizedState=[r,n],r},useReducer:function(e,n,t){var r=ar();if(void 0!==t){var o=t(n);if(oJ){eh(!0);try{t(n)}finally{eh(!1)}}}else o=n;return r.memoizedState=r.baseState=o,r.queue=e={pending:null,lanes:0,dispatch:null,lastRenderedReducer:e,lastRenderedState:o},e=e.dispatch=a4.bind(null,oY,e),[r.memoizedState,e]},useRef:function(e){return ar().memoizedState=e={current:e}},useState:function(e){var n=(e=ay(e)).queue,t=a5.bind(null,oY,n);return n.dispatch=t,[e.memoizedState,t]},useDebugValue:aV,useDeferredValue:function(e,n){return a$(ar(),e,n)},useTransition:function(){var e=ay(!1);return e=aY.bind(null,oY,e.queue,!0,!1),ar().memoizedState=e,[!1,e]},useSyncExternalStore:function(e,n,t){var r=oY,o=ar();if(rS){if(void 0===t)throw Error(l(407));t=t()}else{if(t=n(),null===lN)throw Error(l(349));0!=(124&lB)||ah(r,n,t)}o.memoizedState=t;var a={value:t,getSnapshot:n};return o.queue=a,aB(am.bind(null,r,a,e),[e]),r.flags|=2048,aT(9,{destroy:void 0},ag.bind(null,r,a,t,n),null),t},useId:function(){var e=ar(),n=lN.identifierPrefix;if(rS){var t=ry,r=rb;n=\"_\"+n+\"R_\"+(t=(r&~(1<<32-eg(r)-1)).toString(32)+t),0<(t=o0++)&&(n+=\"H\"+t.toString(32)),n+=\"_\"}else n=\"_\"+n+\"r_\"+(t=o4++).toString(32)+\"_\";return e.memoizedState=n},useHostTransitionStatus:aJ,useFormState:aE,useActionState:aE,useOptimistic:function(e){var n=ar();n.memoizedState=n.baseState=e;var t={pending:null,lanes:0,dispatch:null,lastRenderedReducer:null,lastRenderedState:null};return n.queue=t,n=a6.bind(null,oY,!0,t),t.dispatch=n,[e,n]},useMemoCache:as,useCacheRefresh:function(){return ar().memoizedState=a2.bind(null,oY)}},ir={readContext:rY,use:al,useCallback:aq,useContext:rY,useEffect:aM,useImperativeHandle:aU,useInsertionEffect:aI,useLayoutEffect:aH,useMemo:aW,useReducer:au,useRef:aR,useState:function(){return au(ac)},useDebugValue:aV,useDeferredValue:function(e,n){return aZ(ao(),oX.memoizedState,e,n)},useTransition:function(){var e=au(ac)[0],n=ao().memoizedState;return[\"boolean\"==typeof e?e:ai(e),n]},useSyncExternalStore:ap,useId:a0,useHostTransitionStatus:aJ,useFormState:a_,useActionState:a_,useOptimistic:function(e,n){return ax(ao(),oX,e,n)},useMemoCache:as,useCacheRefresh:a1},io={readContext:rY,use:al,useCallback:aq,useContext:rY,useEffect:aM,useImperativeHandle:aU,useInsertionEffect:aI,useLayoutEffect:aH,useMemo:aW,useReducer:af,useRef:aR,useState:function(){return af(ac)},useDebugValue:aV,useDeferredValue:function(e,n){var t=ao();return null===oX?a$(t,e,n):aZ(t,oX.memoizedState,e,n)},useTransition:function(){var e=af(ac)[0],n=ao().memoizedState;return[\"boolean\"==typeof e?e:ai(e),n]},useSyncExternalStore:ap,useId:a0,useHostTransitionStatus:aJ,useFormState:aL,useActionState:aL,useOptimistic:function(e,n){var t=ao();return null!==oX?ax(t,oX,e,n):(t.baseState=e,[e,t.queue.dispatch])},useMemoCache:as,useCacheRefresh:a1};function ia(e,n,t,r){t=null==(t=t(r,n=e.memoizedState))?n:f({},n,t),e.memoizedState=t,0===e.lanes&&(e.updateQueue.baseState=t)}var ii={enqueueSetState:function(e,n,t){e=e._reactInternals;var r=st(),o=oA(r);o.payload=n,null!=t&&(o.callback=t),null!==(n=oO(e,o,r))&&(so(n,e,r),oC(n,e,r))},enqueueReplaceState:function(e,n,t){e=e._reactInternals;var r=st(),o=oA(r);o.tag=1,o.payload=n,null!=t&&(o.callback=t),null!==(n=oO(e,o,r))&&(so(n,e,r),oC(n,e,r))},enqueueForceUpdate:function(e,n){e=e._reactInternals;var t=st(),r=oA(t);r.tag=2,null!=n&&(r.callback=n),null!==(n=oO(e,r,t))&&(so(n,e,t),oC(n,e,t))}};function il(e,n,t,r,o,a,i){return\"function\"==typeof(e=e.stateNode).shouldComponentUpdate?e.shouldComponentUpdate(r,a,i):!n.prototype||!n.prototype.isPureReactComponent||!tC(t,r)||!tC(o,a)}function is(e,n,t,r){e=n.state,\"function\"==typeof n.componentWillReceiveProps&&n.componentWillReceiveProps(t,r),\"function\"==typeof n.UNSAFE_componentWillReceiveProps&&n.UNSAFE_componentWillReceiveProps(t,r),n.state!==e&&ii.enqueueReplaceState(n,n.state,null)}function ic(e,n){var t=n;if(\"ref\"in n)for(var r in t={},n)\"ref\"!==r&&(t[r]=n[r]);if(e=e.defaultProps)for(var o in t===n&&(t=f({},t)),e)void 0===t[o]&&(t[o]=e[o]);return t}function iu(e){tG(e)}function id(e){console.error(e)}function ip(e){tG(e)}function ih(e,n){try{(0,e.onUncaughtError)(n.value,{componentStack:n.stack})}catch(e){setTimeout(function(){throw e})}}function ig(e,n,t){try{(0,e.onCaughtError)(t.value,{componentStack:t.stack,errorBoundary:1===n.tag?n.stateNode:null})}catch(e){setTimeout(function(){throw e})}}function im(e,n,t){return(t=oA(t)).tag=3,t.payload={element:null},t.callback=function(){ih(e,n)},t}function iv(e){return(e=oA(e)).tag=3,e}function ib(e,n,t,r){var o=t.type.getDerivedStateFromError;if(\"function\"==typeof o){var a=r.value;e.payload=function(){return o(a)},e.callback=function(){ig(n,t,r)}}var i=t.stateNode;null!==i&&\"function\"==typeof i.componentDidCatch&&(e.callback=function(){ig(n,t,r),\"function\"!=typeof o&&(null===l2?l2=new Set([this]):l2.add(this));var e=r.stack;this.componentDidCatch(r.value,{componentStack:null!==e?e:\"\"})})}var iy=Error(l(461)),ix=!1;function iw(e,n,t,r){n.child=null===e?ox(n,null,t,r):oy(n,e.child,t,r)}function ij(e,n,t,r,o){t=t.render;var a=n.ref;if(\"ref\"in r){var i={};for(var l in r)\"ref\"!==l&&(i[l]=r[l])}else i=r;return(rZ(n),r=o6(e,n,t,i,a,o),l=ae(),null===e||ix)?(rS&&l&&rj(n),n.flags|=1,iw(e,n,r,o),n.child):(an(e,n,o),iq(e,n,o))}function ik(e,n,t,r,o){if(null===e){var a=t.type;return\"function\"!=typeof a||rn(a)||void 0!==a.defaultProps||null!==t.compare?((e=ro(t.type,null,r,n,n.mode,o)).ref=n.ref,e.return=n,n.child=e):(n.tag=15,n.type=a,iA(e,n,a,r,o))}if(a=e.child,!iW(e,o)){var i=a.memoizedProps;if((t=null!==(t=t.compare)?t:tC)(i,r)&&e.ref===n.ref)return iq(e,n,o)}return n.flags|=1,(e=rt(a,r)).ref=n.ref,e.return=n,n.child=e}function iA(e,n,t,r,o){if(null!==e){var a=e.memoizedProps;if(tC(a,r)&&e.ref===n.ref)if(ix=!1,n.pendingProps=r=a,!iW(e,o))return n.lanes=e.lanes,iq(e,n,o);else 0!=(131072&e.flags)&&(ix=!0)}return iP(e,n,t,r,o)}function iO(e,n,t,r){var o=r.children,a=null!==e?e.memoizedState:null;if(\"hidden\"===r.mode){if(0!=(128&n.flags)){if(r=null!==a?a.baseLanes|t:t,null!==e){for(a=0,o=n.child=e.child;null!==o;)a=a|o.lanes|o.childLanes,o=o.sibling;n.childLanes=a&~r}else n.childLanes=0,n.child=null;return iC(e,n,r,t)}if(0==(0x20000000&t))return n.lanes=n.childLanes=0x20000000,iC(e,n,null!==a?a.baseLanes|t:t,t);n.memoizedState={baseLanes:0,cachePool:null},null!==e&&on(n,null!==a?a.cachePool:null),null!==a?oN(n,a):oD(),oU(n)}else null!==a?(on(n,a.cachePool),oN(n,a),oV(n),n.memoizedState=null):(null!==e&&on(n,null),oD(),oV(n));return iw(e,n,o,t),n.child}function iC(e,n,t,r){var o=oe();return n.memoizedState={baseLanes:t,cachePool:o=null===o?null:{parent:r0._currentValue,pool:o}},null!==e&&on(n,null),oD(),oU(n),null!==e&&rW(e,n,r,!0),null}function iS(e,n){return(n=iI({mode:n.mode,children:n.children},e.mode)).ref=e.ref,e.child=n,n.return=e,n}function iE(e,n,t){return oy(n,e.child,null,t),e=iS(n,n.pendingProps),e.flags|=2,oq(n),n.memoizedState=null,e}function i_(e,n){var t=n.ref;if(null===t)null!==e&&null!==e.ref&&(n.flags|=4194816);else{if(\"function\"!=typeof t&&\"object\"!=typeof t)throw Error(l(284));(null===e||e.ref!==t)&&(n.flags|=4194816)}}function iP(e,n,t,r,o){return(rZ(n),t=o6(e,n,t,r,void 0,o),r=ae(),null===e||ix)?(rS&&r&&rj(n),n.flags|=1,iw(e,n,t,o),n.child):(an(e,n,o),iq(e,n,o))}function iz(e,n,t,r,o,a){return(rZ(n),n.updateQueue=null,t=o8(n,r,t,o),o9(e),r=ae(),null===e||ix)?(rS&&r&&rj(n),n.flags|=1,iw(e,n,t,a),n.child):(an(e,n,a),iq(e,n,a))}function iL(e,n,t,r,o){if(rZ(n),null===n.stateNode){var a=t8,i=t.contextType;\"object\"==typeof i&&null!==i&&(a=rY(i)),n.memoizedState=null!==(a=new t(r,a)).state&&void 0!==a.state?a.state:null,a.updater=ii,n.stateNode=a,a._reactInternals=n,(a=n.stateNode).props=r,a.state=n.memoizedState,a.refs={},oj(n),i=t.contextType,a.context=\"object\"==typeof i&&null!==i?rY(i):t8,a.state=n.memoizedState,\"function\"==typeof(i=t.getDerivedStateFromProps)&&(ia(n,t,i,r),a.state=n.memoizedState),\"function\"==typeof t.getDerivedStateFromProps||\"function\"==typeof a.getSnapshotBeforeUpdate||\"function\"!=typeof a.UNSAFE_componentWillMount&&\"function\"!=typeof a.componentWillMount||(i=a.state,\"function\"==typeof a.componentWillMount&&a.componentWillMount(),\"function\"==typeof a.UNSAFE_componentWillMount&&a.UNSAFE_componentWillMount(),i!==a.state&&ii.enqueueReplaceState(a,a.state,null),oP(n,r,a,o),o_(),a.state=n.memoizedState),\"function\"==typeof a.componentDidMount&&(n.flags|=4194308),r=!0}else if(null===e){a=n.stateNode;var l=n.memoizedProps,s=ic(t,l);a.props=s;var c=a.context,u=t.contextType;i=t8,\"object\"==typeof u&&null!==u&&(i=rY(u));var d=t.getDerivedStateFromProps;u=\"function\"==typeof d||\"function\"==typeof a.getSnapshotBeforeUpdate,l=n.pendingProps!==l,u||\"function\"!=typeof a.UNSAFE_componentWillReceiveProps&&\"function\"!=typeof a.componentWillReceiveProps||(l||c!==i)&&is(n,a,r,i),ow=!1;var f=n.memoizedState;a.state=f,oP(n,r,a,o),o_(),c=n.memoizedState,l||f!==c||ow?(\"function\"==typeof d&&(ia(n,t,d,r),c=n.memoizedState),(s=ow||il(n,t,s,r,f,c,i))?(u||\"function\"!=typeof a.UNSAFE_componentWillMount&&\"function\"!=typeof a.componentWillMount||(\"function\"==typeof a.componentWillMount&&a.componentWillMount(),\"function\"==typeof a.UNSAFE_componentWillMount&&a.UNSAFE_componentWillMount()),\"function\"==typeof a.componentDidMount&&(n.flags|=4194308)):(\"function\"==typeof a.componentDidMount&&(n.flags|=4194308),n.memoizedProps=r,n.memoizedState=c),a.props=r,a.state=c,a.context=i,r=s):(\"function\"==typeof a.componentDidMount&&(n.flags|=4194308),r=!1)}else{a=n.stateNode,ok(e,n),u=ic(t,i=n.memoizedProps),a.props=u,d=n.pendingProps,f=a.context,c=t.contextType,s=t8,\"object\"==typeof c&&null!==c&&(s=rY(c)),(c=\"function\"==typeof(l=t.getDerivedStateFromProps)||\"function\"==typeof a.getSnapshotBeforeUpdate)||\"function\"!=typeof a.UNSAFE_componentWillReceiveProps&&\"function\"!=typeof a.componentWillReceiveProps||(i!==d||f!==s)&&is(n,a,r,s),ow=!1,f=n.memoizedState,a.state=f,oP(n,r,a,o),o_();var p=n.memoizedState;i!==d||f!==p||ow||null!==e&&null!==e.dependencies&&r$(e.dependencies)?(\"function\"==typeof l&&(ia(n,t,l,r),p=n.memoizedState),(u=ow||il(n,t,u,r,f,p,s)||null!==e&&null!==e.dependencies&&r$(e.dependencies))?(c||\"function\"!=typeof a.UNSAFE_componentWillUpdate&&\"function\"!=typeof a.componentWillUpdate||(\"function\"==typeof a.componentWillUpdate&&a.componentWillUpdate(r,p,s),\"function\"==typeof a.UNSAFE_componentWillUpdate&&a.UNSAFE_componentWillUpdate(r,p,s)),\"function\"==typeof a.componentDidUpdate&&(n.flags|=4),\"function\"==typeof a.getSnapshotBeforeUpdate&&(n.flags|=1024)):(\"function\"!=typeof a.componentDidUpdate||i===e.memoizedProps&&f===e.memoizedState||(n.flags|=4),\"function\"!=typeof a.getSnapshotBeforeUpdate||i===e.memoizedProps&&f===e.memoizedState||(n.flags|=1024),n.memoizedProps=r,n.memoizedState=p),a.props=r,a.state=p,a.context=s,r=u):(\"function\"!=typeof a.componentDidUpdate||i===e.memoizedProps&&f===e.memoizedState||(n.flags|=4),\"function\"!=typeof a.getSnapshotBeforeUpdate||i===e.memoizedProps&&f===e.memoizedState||(n.flags|=1024),r=!1)}return a=r,i_(e,n),r=0!=(128&n.flags),a||r?(a=n.stateNode,t=r&&\"function\"!=typeof t.getDerivedStateFromError?null:a.render(),n.flags|=1,null!==e&&r?(n.child=oy(n,e.child,null,o),n.child=oy(n,null,t,o)):iw(e,n,t,o),n.memoizedState=a.state,e=n.child):e=iq(e,n,o),e}function iT(e,n,t,r){return rN(),n.flags|=256,iw(e,n,t,r),n.child}var iR={dehydrated:null,treeContext:null,retryLane:0,hydrationErrors:null};function iN(e){return{baseLanes:e,cachePool:ot()}}function iD(e,n,t){return e=null!==e?e.childLanes&~t:0,n&&(e|=lY),e}function iB(e,n,t){var r,o=n.pendingProps,a=!1,i=0!=(128&n.flags);if((r=i)||(r=(null===e||null!==e.memoizedState)&&0!=(2&oW.current)),r&&(a=!0,n.flags&=-129),r=0!=(32&n.flags),n.flags&=-33,null===e){if(rS){if(a?oH(n):oV(n),(e=rC)?null!==(e=null!==(e=cC(e,r_))&&\"&\"!==e.data?e:null)&&(n.memoizedState={dehydrated:e,treeContext:null!==rv?{id:rb,overflow:ry}:null,retryLane:0x20000000,hydrationErrors:null},(t=rl(e)).return=n,n.child=t,rO=n,rC=null):e=null,null===e)throw rz(n);return cE(e)?n.lanes=32:n.lanes=0x20000000,null}var s=o.children;return(o=o.fallback,a)?(oV(n),s=iI({mode:\"hidden\",children:s},a=n.mode),o=ra(o,a,t,null),s.return=n,o.return=n,s.sibling=o,n.child=s,(s=n.child).memoizedState=iN(t),s.childLanes=iD(e,r,t),n.memoizedState=iR,o):(oH(n),iM(n,s))}var c=e.memoizedState;if(null!==c&&null!==(s=c.dehydrated)){if(i)256&n.flags?(oH(n),n.flags&=-257,n=iH(e,n,t)):null!==n.memoizedState?(oV(n),n.child=e.child,n.flags|=128,n=null):(oV(n),s=o.fallback,a=n.mode,o=iI({mode:\"visible\",children:o.children},a),s=ra(s,a,t,null),s.flags|=2,o.return=n,s.return=n,o.sibling=s,n.child=o,oy(n,e.child,null,t),(o=n.child).memoizedState=iN(t),o.childLanes=iD(e,r,t),n.memoizedState=iR,n=s);else if(oH(n),cE(s)){if(r=s.nextSibling&&s.nextSibling.dataset)var u=r.dgst;r=u,(o=Error(l(419))).stack=\"\",o.digest=r,rB({value:o,source:null,stack:null}),n=iH(e,n,t)}else if(ix||rW(e,n,t,!1),r=0!=(t&e.childLanes),ix||r){if(null!==(r=lN)&&0!==(o=e_(r,t))&&o!==c.retryLane)throw c.retryLane=o,t3(e,o),so(r,e,o),iy;cS(s)||sg(),n=iH(e,n,t)}else cS(s)?(n.flags|=192,n.child=e.child,n=null):(e=c.treeContext,rC=c_(s.nextSibling),rO=n,rS=!0,rE=null,r_=!1,null!==e&&rA(n,e),n=iM(n,o.children),n.flags|=4096);return n}return a?(oV(n),s=o.fallback,a=n.mode,u=(c=e.child).sibling,(o=rt(c,{mode:\"hidden\",children:o.children})).subtreeFlags=0x3e00000&c.subtreeFlags,null!==u?s=rt(u,s):(s=ra(s,a,t,null),s.flags|=2),s.return=n,o.return=n,o.sibling=s,n.child=o,o=s,s=n.child,null===(a=e.child.memoizedState)?a=iN(t):(null!==(c=a.cachePool)?(u=r0._currentValue,c=c.parent!==u?{parent:u,pool:u}:c):c=ot(),a={baseLanes:a.baseLanes|t,cachePool:c}),s.memoizedState=a,s.childLanes=iD(e,r,t),n.memoizedState=iR,o):(oH(n),e=(t=e.child).sibling,(t=rt(t,{mode:\"visible\",children:o.children})).return=n,t.sibling=null,null!==e&&(null===(r=n.deletions)?(n.deletions=[e],n.flags|=16):r.push(e)),n.child=t,n.memoizedState=null,t)}function iM(e,n){return(n=iI({mode:\"visible\",children:n},e.mode)).return=e,e.child=n}function iI(e,n){return(e=re(22,e,null,n)).lanes=0,e.stateNode={_visibility:1,_pendingMarkers:null,_retryCache:null,_transitions:null},e}function iH(e,n,t){return oy(n,e.child,null,t),e=iM(n,n.pendingProps.children),e.flags|=2,n.memoizedState=null,e}function iF(e,n,t){e.lanes|=n;var r=e.alternate;null!==r&&(r.lanes|=n),rV(e.return,n,t)}function iU(e,n,t,r,o,a){var i=e.memoizedState;null===i?e.memoizedState={isBackwards:n,rendering:null,renderingStartTime:0,last:r,tail:t,tailMode:o,treeForkCount:a}:(i.isBackwards=n,i.rendering=null,i.renderingStartTime=0,i.last=r,i.tail=t,i.tailMode=o,i.treeForkCount=a)}function iV(e,n,t){var r=n.pendingProps,o=r.revealOrder,a=r.tail;r=r.children;var i=oW.current,l=0!=(2&i);if(l?(i=1&i|2,n.flags|=128):i&=1,I(oW,i),iw(e,n,r,t),r=rS?rh:0,!l&&null!==e&&0!=(128&e.flags))e:for(e=n.child;null!==e;){if(13===e.tag)null!==e.memoizedState&&iF(e,t,n);else if(19===e.tag)iF(e,t,n);else if(null!==e.child){e.child.return=e,e=e.child;continue}if(e===n)break;for(;null===e.sibling;){if(null===e.return||e.return===n)break e;e=e.return}e.sibling.return=e.return,e=e.sibling}switch(o){case\"forwards\":for(o=null,t=n.child;null!==t;)null!==(e=t.alternate)&&null===o$(e)&&(o=t),t=t.sibling;null===(t=o)?(o=n.child,n.child=null):(o=t.sibling,t.sibling=null),iU(n,!1,o,t,a,r);break;case\"backwards\":case\"unstable_legacy-backwards\":for(t=null,o=n.child,n.child=null;null!==o;){if(null!==(e=o.alternate)&&null===o$(e)){n.child=o;break}e=o.sibling,o.sibling=t,t=o,o=e}iU(n,!0,t,null,a,r);break;case\"together\":iU(n,!1,null,null,void 0,r);break;default:n.memoizedState=null}return n.child}function iq(e,n,t){if(null!==e&&(n.dependencies=e.dependencies),lW|=n.lanes,0==(t&n.childLanes)){if(null===e)return null;else if(rW(e,n,t,!1),0==(t&n.childLanes))return null}if(null!==e&&n.child!==e.child)throw Error(l(153));if(null!==n.child){for(t=rt(e=n.child,e.pendingProps),n.child=t,t.return=n;null!==e.sibling;)e=e.sibling,(t=t.sibling=rt(e,e.pendingProps)).return=n;t.sibling=null}return n.child}function iW(e,n){return 0!=(e.lanes&n)||!!(null!==(e=e.dependencies)&&r$(e))}function i$(e,n,t){if(null!==e)if(e.memoizedProps!==n.pendingProps)ix=!0;else{if(!iW(e,t)&&0==(128&n.flags))return ix=!1,function(e,n,t){switch(n.tag){case 3:q(n,n.stateNode.containerInfo),rF(n,r0,e.memoizedState.cache),rN();break;case 27:case 5:$(n);break;case 4:q(n,n.stateNode.containerInfo);break;case 10:rF(n,n.type,n.memoizedProps.value);break;case 31:if(null!==n.memoizedState)return n.flags|=128,oF(n),null;break;case 13:var r=n.memoizedState;if(null!==r){if(null!==r.dehydrated)return oH(n),n.flags|=128,null;if(0!=(t&n.child.childLanes))return iB(e,n,t);return oH(n),null!==(e=iq(e,n,t))?e.sibling:null}oH(n);break;case 19:var o=0!=(128&e.flags);if((r=0!=(t&n.childLanes))||(rW(e,n,t,!1),r=0!=(t&n.childLanes)),o){if(r)return iV(e,n,t);n.flags|=128}if(null!==(o=n.memoizedState)&&(o.rendering=null,o.tail=null,o.lastEffect=null),I(oW,oW.current),!r)return null;break;case 22:return n.lanes=0,iO(e,n,t,n.pendingProps);case 24:rF(n,r0,e.memoizedState.cache)}return iq(e,n,t)}(e,n,t);ix=0!=(131072&e.flags)}else ix=!1,rS&&0!=(1048576&n.flags)&&rw(n,rh,n.index);switch(n.lanes=0,n.tag){case 16:e:{e=n.pendingProps;var r=n.elementType,o=r._init;if(r=o(r._payload),n.type=r,\"function\"==typeof r)rn(r)?(e=ic(r,e),n.tag=1,n=iL(null,n,r,e,t)):(n.tag=0,n=iP(null,n,r,e,t));else{if(null!=r){if((o=r.$$typeof)===w){n.tag=11,n=ij(null,n,r,e,t);break e}else if(o===A){n.tag=14,n=ik(null,n,r,e,t);break e}}throw Error(l(306,n=function e(n){if(null==n)return null;if(\"function\"==typeof n)return n.$$typeof===P?null:n.displayName||n.name||null;if(\"string\"==typeof n)return n;switch(n){case m:return\"Fragment\";case b:return\"Profiler\";case v:return\"StrictMode\";case j:return\"Suspense\";case k:return\"SuspenseList\";case C:return\"Activity\"}if(\"object\"==typeof n)switch(n.$$typeof){case g:return\"Portal\";case x:return n.displayName||\"Context\";case y:return(n._context.displayName||\"Context\")+\".Consumer\";case w:var t=n.render;return(n=n.displayName)||(n=\"\"!==(n=t.displayName||t.name||\"\")?\"ForwardRef(\"+n+\")\":\"ForwardRef\"),n;case A:return null!==(t=n.displayName||null)?t:e(n.type)||\"Memo\";case O:t=n._payload,n=n._init;try{return e(n(t))}catch(e){}}return null}(r)||r,\"\"))}}return n;case 0:return iP(e,n,n.type,n.pendingProps,t);case 1:return o=ic(r=n.type,n.pendingProps),iL(e,n,r,o,t);case 3:e:{if(q(n,n.stateNode.containerInfo),null===e)throw Error(l(387));r=n.pendingProps;var a=n.memoizedState;o=a.element,ok(e,n),oP(n,r,null,t);var i=n.memoizedState;if(rF(n,r0,r=i.cache),r!==a.cache&&rq(n,[r0],t,!0),o_(),r=i.element,a.isDehydrated)if(a={element:r,isDehydrated:!1,cache:i.cache},n.updateQueue.baseState=a,n.memoizedState=a,256&n.flags){n=iT(e,n,r,t);break e}else if(r!==o){rB(o=ru(Error(l(424)),n)),n=iT(e,n,r,t);break e}else for(rC=c_((e=9===(e=n.stateNode.containerInfo).nodeType?e.body:\"HTML\"===e.nodeName?e.ownerDocument.body:e).firstChild),rO=n,rS=!0,rE=null,r_=!0,t=ox(n,null,r,t),n.child=t;t;)t.flags=-3&t.flags|4096,t=t.sibling;else{if(rN(),r===o){n=iq(e,n,t);break e}iw(e,n,r,t)}n=n.child}return n;case 26:return i_(e,n),null===e?(t=cF(n.type,null,n.pendingProps,null))?n.memoizedState=t:rS||(t=n.type,e=n.pendingProps,(r=cf(U.current).createElement(t))[eN]=n,r[eD]=e,cc(r,t,e),eY(r),n.stateNode=r):n.memoizedState=cF(n.type,e.memoizedProps,n.pendingProps,e.memoizedState),null;case 27:return $(n),null===e&&rS&&(r=n.stateNode=cT(n.type,n.pendingProps,U.current),rO=n,r_=!0,o=rC,cj(n.type)?(cP=o,rC=c_(r.firstChild)):rC=o),iw(e,n,n.pendingProps.children,t),i_(e,n),null===e&&(n.flags|=4194304),n.child;case 5:return null===e&&rS&&((o=r=rC)&&(null!==(r=function(e,n,t,r){for(;1===e.nodeType;){if(e.nodeName.toLowerCase()!==n.toLowerCase()){if(!r&&(\"INPUT\"!==e.nodeName||\"hidden\"!==e.type))break}else if(r){if(!e[eU])switch(n){case\"meta\":if(!e.hasAttribute(\"itemprop\"))break;return e;case\"link\":if(\"stylesheet\"===(o=e.getAttribute(\"rel\"))&&e.hasAttribute(\"data-precedence\")||o!==t.rel||e.getAttribute(\"href\")!==(null==t.href||\"\"===t.href?null:t.href)||e.getAttribute(\"crossorigin\")!==(null==t.crossOrigin?null:t.crossOrigin)||e.getAttribute(\"title\")!==(null==t.title?null:t.title))break;return e;case\"style\":if(e.hasAttribute(\"data-precedence\"))break;return e;case\"script\":if(((o=e.getAttribute(\"src\"))!==(null==t.src?null:t.src)||e.getAttribute(\"type\")!==(null==t.type?null:t.type)||e.getAttribute(\"crossorigin\")!==(null==t.crossOrigin?null:t.crossOrigin))&&o&&e.hasAttribute(\"async\")&&!e.hasAttribute(\"itemprop\"))break;return e;default:return e}}else{if(\"input\"!==n||\"hidden\"!==e.type)return e;var o=null==t.name?null:\"\"+t.name;if(\"hidden\"===t.type&&e.getAttribute(\"name\")===o)return e}if(null===(e=c_(e.nextSibling)))break}return null}(r,n.type,n.pendingProps,r_))?(n.stateNode=r,rO=n,rC=c_(r.firstChild),r_=!1,o=!0):o=!1),o||rz(n)),$(n),o=n.type,a=n.pendingProps,i=null!==e?e.memoizedProps:null,r=a.children,cg(o,a)?r=null:null!==i&&cg(o,i)&&(n.flags|=32),null!==n.memoizedState&&(c6._currentValue=o=o6(e,n,o7,null,null,t)),i_(e,n),iw(e,n,r,t),n.child;case 6:return null===e&&rS&&((e=t=rC)&&(null!==(t=function(e,n,t){if(\"\"===n)return null;for(;3!==e.nodeType;)if((1!==e.nodeType||\"INPUT\"!==e.nodeName||\"hidden\"!==e.type)&&!t||null===(e=c_(e.nextSibling)))return null;return e}(t,n.pendingProps,r_))?(n.stateNode=t,rO=n,rC=null,e=!0):e=!1),e||rz(n)),null;case 13:return iB(e,n,t);case 4:return q(n,n.stateNode.containerInfo),r=n.pendingProps,null===e?n.child=oy(n,null,r,t):iw(e,n,r,t),n.child;case 11:return ij(e,n,n.type,n.pendingProps,t);case 7:return iw(e,n,n.pendingProps,t),n.child;case 8:case 12:return iw(e,n,n.pendingProps.children,t),n.child;case 10:return r=n.pendingProps,rF(n,n.type,r.value),iw(e,n,r.children,t),n.child;case 9:return o=n.type._context,r=n.pendingProps.children,rZ(n),r=r(o=rY(o)),n.flags|=1,iw(e,n,r,t),n.child;case 14:return ik(e,n,n.type,n.pendingProps,t);case 15:return iA(e,n,n.type,n.pendingProps,t);case 19:return iV(e,n,t);case 31:if(o=n.pendingProps,i=0!=(128&n.flags),n.flags&=-129,null===e)if(rS){if(\"hidden\"===o.mode)iS(n,o);else if(oF(n),(t=rC)?null!==(t=null!==(t=cC(t,r_))&&\"&\"===t.data?t:null)&&(n.memoizedState={dehydrated:t,treeContext:null!==rv?{id:rb,overflow:ry}:null,retryLane:0x20000000,hydrationErrors:null},(e=rl(t)).return=n,n.child=e,rO=n,rC=null):t=null,null===t)throw rz(n);n.lanes=0x20000000,n=null}else n=iS(n,o);else if(null!==(r=e.memoizedState))if(a=r.dehydrated,oF(n),i)if(256&n.flags)n.flags&=-257,n=iE(e,n,t);else if(null!==n.memoizedState)n.child=e.child,n.flags|=128,n=null;else throw Error(l(558));else if(ix||rW(e,n,t,!1),i=0!=(t&e.childLanes),ix||i){if(null!==(o=lN)&&0!==(a=e_(o,t))&&a!==r.retryLane)throw r.retryLane=a,t3(e,a),so(o,e,a),iy;sg(),n=iE(e,n,t)}else t=r.treeContext,rC=c_(a.nextSibling),rO=n,rS=!0,rE=null,r_=!1,null!==t&&rA(n,t),n=iS(n,o),n.flags|=4096;else(t=rt(e.child,{mode:o.mode,children:o.children})).ref=n.ref,n.child=t,t.return=n,n=t;return n;case 22:return iO(e,n,t,n.pendingProps);case 24:return rZ(n),r=rY(r0),null===e?(null===(o=oe())&&(o=lN,a=r1(),o.pooledCache=a,a.refCount++,null!==a&&(o.pooledCacheLanes|=t),o=a),n.memoizedState={parent:r,cache:o},oj(n),rF(n,r0,o)):(0!=(e.lanes&t)&&(ok(e,n),oP(n,null,null,t),o_()),o=e.memoizedState,a=n.memoizedState,o.parent!==r?(o={parent:r,cache:r},n.memoizedState=o,0===n.lanes&&(n.memoizedState=n.updateQueue.baseState=o),rF(n,r0,r)):(rF(n,r0,r=a.cache),r!==o.cache&&rq(n,[r0],t,!0))),iw(e,n,n.pendingProps.children,t),n.child;case 29:throw n.pendingProps}throw Error(l(156,n.tag))}function iZ(e){e.flags|=4}function iY(e,n,t,r,o){if((n=0!=(32&e.mode))&&(n=!1),n){if(e.flags|=0x1000000,(0x13ffff40&o)===o)if(e.stateNode.complete)e.flags|=8192;else if(sf())e.flags|=8192;else throw oc=oi,oo}else e.flags&=-0x1000001}function iX(e,n){if(\"stylesheet\"!==n.type||0!=(4&n.state.loading))e.flags&=-0x1000001;else if(e.flags|=0x1000000,!c0(n))if(sf())e.flags|=8192;else throw oc=oi,oo}function iK(e,n){null!==n&&(e.flags|=4),16384&e.flags&&(n=22!==e.tag?eA():0x20000000,e.lanes|=n,lX|=n)}function iQ(e,n){if(!rS)switch(e.tailMode){case\"hidden\":n=e.tail;for(var t=null;null!==n;)null!==n.alternate&&(t=n),n=n.sibling;null===t?e.tail=null:t.sibling=null;break;case\"collapsed\":t=e.tail;for(var r=null;null!==t;)null!==t.alternate&&(r=t),t=t.sibling;null===r?n||null===e.tail?e.tail=null:e.tail.sibling=null:r.sibling=null}}function iG(e){var n=null!==e.alternate&&e.alternate.child===e.child,t=0,r=0;if(n)for(var o=e.child;null!==o;)t|=o.lanes|o.childLanes,r|=0x3e00000&o.subtreeFlags,r|=0x3e00000&o.flags,o.return=e,o=o.sibling;else for(o=e.child;null!==o;)t|=o.lanes|o.childLanes,r|=o.subtreeFlags,r|=o.flags,o.return=e,o=o.sibling;return e.subtreeFlags|=r,e.childLanes=t,n}function iJ(e,n){switch(rk(n),n.tag){case 3:rU(r0),W();break;case 26:case 27:case 5:Z(n);break;case 4:W();break;case 31:null!==n.memoizedState&&oq(n);break;case 13:oq(n);break;case 19:M(oW);break;case 10:rU(n.type);break;case 22:case 23:oq(n),oB(),null!==e&&M(r7);break;case 24:rU(r0)}}function i0(e,n){try{var t=n.updateQueue,r=null!==t?t.lastEffect:null;if(null!==r){var o=r.next;t=o;do{if((t.tag&e)===e){r=void 0;var a=t.create;t.inst.destroy=r=a()}t=t.next}while(t!==o)}}catch(e){sP(n,n.return,e)}}function i1(e,n,t){try{var r=n.updateQueue,o=null!==r?r.lastEffect:null;if(null!==o){var a=o.next;r=a;do{if((r.tag&e)===e){var i=r.inst,l=i.destroy;if(void 0!==l){i.destroy=void 0,o=n;try{l()}catch(e){sP(o,t,e)}}}r=r.next}while(r!==a)}}catch(e){sP(n,n.return,e)}}function i2(e){var n=e.updateQueue;if(null!==n){var t=e.stateNode;try{oL(n,t)}catch(n){sP(e,e.return,n)}}}function i4(e,n,t){t.props=ic(e.type,e.memoizedProps),t.state=e.memoizedState;try{t.componentWillUnmount()}catch(t){sP(e,n,t)}}function i5(e,n){try{var t=e.ref;if(null!==t){switch(e.tag){case 26:case 27:case 5:var r=e.stateNode;break;default:r=e.stateNode}\"function\"==typeof t?e.refCleanup=t(r):t.current=r}}catch(t){sP(e,n,t)}}function i3(e,n){var t=e.ref,r=e.refCleanup;if(null!==t)if(\"function\"==typeof r)try{r()}catch(t){sP(e,n,t)}finally{e.refCleanup=null,null!=(e=e.alternate)&&(e.refCleanup=null)}else if(\"function\"==typeof t)try{t(null)}catch(t){sP(e,n,t)}else t.current=null}function i6(e){var n=e.type,t=e.memoizedProps,r=e.stateNode;try{switch(n){case\"button\":case\"input\":case\"select\":case\"textarea\":t.autoFocus&&r.focus();break;case\"img\":t.src?r.src=t.src:t.srcSet&&(r.srcset=t.srcSet)}}catch(n){sP(e,e.return,n)}}function i9(e,n,t){try{var r=e.stateNode;(function(e,n,t,r){switch(n){case\"div\":case\"span\":case\"svg\":case\"path\":case\"a\":case\"g\":case\"p\":case\"li\":break;case\"input\":var o=null,a=null,i=null,s=null,c=null,u=null,d=null;for(h in t){var f=t[h];if(t.hasOwnProperty(h)&&null!=f)switch(h){case\"checked\":case\"value\":break;case\"defaultValue\":c=f;default:r.hasOwnProperty(h)||cl(e,n,h,null,r,f)}}for(var p in r){var h=r[p];if(f=t[p],r.hasOwnProperty(p)&&(null!=h||null!=f))switch(p){case\"type\":a=h;break;case\"name\":o=h;break;case\"checked\":u=h;break;case\"defaultChecked\":d=h;break;case\"value\":i=h;break;case\"defaultValue\":s=h;break;case\"children\":case\"dangerouslySetInnerHTML\":if(null!=h)throw Error(l(137,n));break;default:h!==f&&cl(e,n,p,h,r,f)}}nt(e,i,s,c,u,d,a,o);return;case\"select\":for(a in h=i=s=p=null,t)if(c=t[a],t.hasOwnProperty(a)&&null!=c)switch(a){case\"value\":break;case\"multiple\":h=c;default:r.hasOwnProperty(a)||cl(e,n,a,null,r,c)}for(o in r)if(a=r[o],c=t[o],r.hasOwnProperty(o)&&(null!=a||null!=c))switch(o){case\"value\":p=a;break;case\"defaultValue\":s=a;break;case\"multiple\":i=a;default:a!==c&&cl(e,n,o,a,r,c)}n=s,t=i,r=h,null!=p?na(e,!!t,p,!1):!!r!=!!t&&(null!=n?na(e,!!t,n,!0):na(e,!!t,t?[]:\"\",!1));return;case\"textarea\":for(s in h=p=null,t)if(o=t[s],t.hasOwnProperty(s)&&null!=o&&!r.hasOwnProperty(s))switch(s){case\"value\":case\"children\":break;default:cl(e,n,s,null,r,o)}for(i in r)if(o=r[i],a=t[i],r.hasOwnProperty(i)&&(null!=o||null!=a))switch(i){case\"value\":p=o;break;case\"defaultValue\":h=o;break;case\"children\":break;case\"dangerouslySetInnerHTML\":if(null!=o)throw Error(l(91));break;default:o!==a&&cl(e,n,i,o,r,a)}ni(e,p,h);return;case\"option\":for(var g in t)p=t[g],t.hasOwnProperty(g)&&null!=p&&!r.hasOwnProperty(g)&&(\"selected\"===g?e.selected=!1:cl(e,n,g,null,r,p));for(c in r)p=r[c],h=t[c],r.hasOwnProperty(c)&&p!==h&&(null!=p||null!=h)&&(\"selected\"===c?e.selected=p&&\"function\"!=typeof p&&\"symbol\"!=typeof p:cl(e,n,c,p,r,h));return;case\"img\":case\"link\":case\"area\":case\"base\":case\"br\":case\"col\":case\"embed\":case\"hr\":case\"keygen\":case\"meta\":case\"param\":case\"source\":case\"track\":case\"wbr\":case\"menuitem\":for(var m in t)p=t[m],t.hasOwnProperty(m)&&null!=p&&!r.hasOwnProperty(m)&&cl(e,n,m,null,r,p);for(u in r)if(p=r[u],h=t[u],r.hasOwnProperty(u)&&p!==h&&(null!=p||null!=h))switch(u){case\"children\":case\"dangerouslySetInnerHTML\":if(null!=p)throw Error(l(137,n));break;default:cl(e,n,u,p,r,h)}return;default:if(nf(n)){for(var v in t)p=t[v],t.hasOwnProperty(v)&&void 0!==p&&!r.hasOwnProperty(v)&&cs(e,n,v,void 0,r,p);for(d in r)p=r[d],h=t[d],r.hasOwnProperty(d)&&p!==h&&(void 0!==p||void 0!==h)&&cs(e,n,d,p,r,h);return}}for(var b in t)p=t[b],t.hasOwnProperty(b)&&null!=p&&!r.hasOwnProperty(b)&&cl(e,n,b,null,r,p);for(f in r)p=r[f],h=t[f],r.hasOwnProperty(f)&&p!==h&&(null!=p||null!=h)&&cl(e,n,f,p,r,h)})(r,e.type,t,n),r[eD]=n}catch(n){sP(e,e.return,n)}}function i8(e){return 5===e.tag||3===e.tag||26===e.tag||27===e.tag&&cj(e.type)||4===e.tag}function i7(e){e:for(;;){for(;null===e.sibling;){if(null===e.return||i8(e.return))return null;e=e.return}for(e.sibling.return=e.return,e=e.sibling;5!==e.tag&&6!==e.tag&&18!==e.tag;){if(27===e.tag&&cj(e.type)||2&e.flags||null===e.child||4===e.tag)continue e;e.child.return=e,e=e.child}if(!(2&e.flags))return e.stateNode}}function le(e,n,t){var r=e.tag;if(5===r||6===r)e=e.stateNode,n?t.insertBefore(e,n):t.appendChild(e);else if(4!==r&&(27===r&&cj(e.type)&&(t=e.stateNode),null!==(e=e.child)))for(le(e,n,t),e=e.sibling;null!==e;)le(e,n,t),e=e.sibling}function ln(e){var n=e.stateNode,t=e.memoizedProps;try{for(var r=e.type,o=n.attributes;o.length;)n.removeAttributeNode(o[0]);cc(n,r,t),n[eN]=e,n[eD]=t}catch(n){sP(e,e.return,n)}}var lt=!1,lr=!1,lo=!1,la=\"function\"==typeof WeakSet?WeakSet:Set,li=null;function ll(e,n,t){var r=t.flags;switch(t.tag){case 0:case 11:case 15:ly(e,t),4&r&&i0(5,t);break;case 1:if(ly(e,t),4&r)if(e=t.stateNode,null===n)try{e.componentDidMount()}catch(e){sP(t,t.return,e)}else{var o=ic(t.type,n.memoizedProps);n=n.memoizedState;try{e.componentDidUpdate(o,n,e.__reactInternalSnapshotBeforeUpdate)}catch(e){sP(t,t.return,e)}}64&r&&i2(t),512&r&&i5(t,t.return);break;case 3:if(ly(e,t),64&r&&null!==(e=t.updateQueue)){if(n=null,null!==t.child)switch(t.child.tag){case 27:case 5:case 1:n=t.child.stateNode}try{oL(e,n)}catch(e){sP(t,t.return,e)}}break;case 27:null===n&&4&r&&ln(t);case 26:case 5:ly(e,t),null===n&&4&r&&i6(t),512&r&&i5(t,t.return);break;case 12:default:ly(e,t);break;case 31:ly(e,t),4&r&&lf(e,t);break;case 13:ly(e,t),4&r&&lp(e,t),64&r&&null!==(e=t.memoizedState)&&null!==(e=e.dehydrated)&&function(e,n){var t=e.ownerDocument;if(\"$~\"===e.data)e._reactRetry=n;else if(\"$?\"!==e.data||\"loading\"!==t.readyState)n();else{var r=function(){n(),t.removeEventListener(\"DOMContentLoaded\",r)};t.addEventListener(\"DOMContentLoaded\",r),e._reactRetry=r}}(e,t=sR.bind(null,t));break;case 22:if(!(r=null!==t.memoizedState||lt)){n=null!==n&&null!==n.memoizedState||lr,o=lt;var a=lr;lt=r,(lr=n)&&!a?function e(n,t,r){for(r=r&&0!=(8772&t.subtreeFlags),t=t.child;null!==t;){var o=t.alternate,a=n,i=t,l=i.flags;switch(i.tag){case 0:case 11:case 15:e(a,i,r),i0(4,i);break;case 1:if(e(a,i,r),\"function\"==typeof(a=(o=i).stateNode).componentDidMount)try{a.componentDidMount()}catch(e){sP(o,o.return,e)}if(null!==(a=(o=i).updateQueue)){var s=o.stateNode;try{var c=a.shared.hiddenCallbacks;if(null!==c)for(a.shared.hiddenCallbacks=null,a=0;a<c.length;a++)oz(c[a],s)}catch(e){sP(o,o.return,e)}}r&&64&l&&i2(i),i5(i,i.return);break;case 27:ln(i);case 26:case 5:e(a,i,r),r&&null===o&&4&l&&i6(i),i5(i,i.return);break;case 12:default:e(a,i,r);break;case 31:e(a,i,r),r&&4&l&&lf(a,i);break;case 13:e(a,i,r),r&&4&l&&lp(a,i);break;case 22:null===i.memoizedState&&e(a,i,r),i5(i,i.return);case 30:}t=t.sibling}}(e,t,0!=(8772&t.subtreeFlags)):ly(e,t),lt=o,lr=a}case 30:}}var ls=null,lc=!1;function lu(e,n,t){for(t=t.child;null!==t;)ld(e,n,t),t=t.sibling}function ld(e,n,t){if(ep&&\"function\"==typeof ep.onCommitFiberUnmount)try{ep.onCommitFiberUnmount(ef,t)}catch(e){}switch(t.tag){case 26:lr||i3(t,n),lu(e,n,t),t.memoizedState?t.memoizedState.count--:t.stateNode&&(t=t.stateNode).parentNode.removeChild(t);break;case 27:lr||i3(t,n);var r=ls,o=lc;cj(t.type)&&(ls=t.stateNode,lc=!1),lu(e,n,t),cR(t.stateNode),ls=r,lc=o;break;case 5:lr||i3(t,n);case 6:if(r=ls,o=lc,ls=null,lu(e,n,t),ls=r,lc=o,null!==ls)if(lc)try{(9===ls.nodeType?ls.body:\"HTML\"===ls.nodeName?ls.ownerDocument.body:ls).removeChild(t.stateNode)}catch(e){sP(t,n,e)}else try{ls.removeChild(t.stateNode)}catch(e){sP(t,n,e)}break;case 18:null!==ls&&(lc?(ck(9===(e=ls).nodeType?e.body:\"HTML\"===e.nodeName?e.ownerDocument.body:e,t.stateNode),uE(e)):ck(ls,t.stateNode));break;case 4:r=ls,o=lc,ls=t.stateNode.containerInfo,lc=!0,lu(e,n,t),ls=r,lc=o;break;case 0:case 11:case 14:case 15:lr||i1(2,t,n),lr||i1(4,t,n),lu(e,n,t);break;case 1:lr||(i3(t,n),\"function\"==typeof(r=t.stateNode).componentWillUnmount&&i4(t,n,r)),lu(e,n,t);break;case 21:default:lu(e,n,t);break;case 22:lr=(r=lr)||null!==t.memoizedState,lu(e,n,t),lr=r}}function lf(e,n){if(null===n.memoizedState&&null!==(e=n.alternate)&&null!==(e=e.memoizedState)){e=e.dehydrated;try{uE(e)}catch(e){sP(n,n.return,e)}}}function lp(e,n){if(null===n.memoizedState&&null!==(e=n.alternate)&&null!==(e=e.memoizedState)&&null!==(e=e.dehydrated))try{uE(e)}catch(e){sP(n,n.return,e)}}function lh(e,n){var t=function(e){switch(e.tag){case 31:case 13:case 19:var n=e.stateNode;return null===n&&(n=e.stateNode=new la),n;case 22:return null===(n=(e=e.stateNode)._retryCache)&&(n=e._retryCache=new la),n;default:throw Error(l(435,e.tag))}}(e);n.forEach(function(n){var r=sN.bind(null,e,n);t.has(n)||(t.add(n),n.then(r,r))})}function lg(e,n){var t=n.deletions;if(null!==t)for(var r=0;r<t.length;r++){var o=t[r],a=e,i=n,s=i;e:for(;null!==s;){switch(s.tag){case 27:if(cj(s.type)){ls=s.stateNode,lc=!1;break e}break;case 5:ls=s.stateNode,lc=!1;break e;case 3:case 4:ls=s.stateNode.containerInfo,lc=!0;break e}s=s.return}if(null===ls)throw Error(l(160));ld(a,i,o),ls=null,lc=!1,null!==(a=o.alternate)&&(a.return=null),o.return=null}if(13878&n.subtreeFlags)for(n=n.child;null!==n;)lv(n,e),n=n.sibling}var lm=null;function lv(e,n){var t=e.alternate,r=e.flags;switch(e.tag){case 0:case 11:case 14:case 15:lg(n,e),lb(e),4&r&&(i1(3,e,e.return),i0(3,e),i1(5,e,e.return));break;case 1:lg(n,e),lb(e),512&r&&(lr||null===t||i3(t,t.return)),64&r&<&&null!==(e=e.updateQueue)&&null!==(r=e.callbacks)&&(t=e.shared.hiddenCallbacks,e.shared.hiddenCallbacks=null===t?r:t.concat(r));break;case 26:var o=lm;if(lg(n,e),lb(e),512&r&&(lr||null===t||i3(t,t.return)),4&r){var a=null!==t?t.memoizedState:null;if(r=e.memoizedState,null===t)if(null===r)if(null===e.stateNode){e:{r=e.type,t=e.memoizedProps,o=o.ownerDocument||o;n:switch(r){case\"title\":(!(a=o.getElementsByTagName(\"title\")[0])||a[eU]||a[eN]||\"http://www.w3.org/2000/svg\"===a.namespaceURI||a.hasAttribute(\"itemprop\"))&&(a=o.createElement(r),o.head.insertBefore(a,o.querySelector(\"head > title\"))),cc(a,r,t),a[eN]=e,eY(a),r=a;break e;case\"link\":var i=cG(\"link\",\"href\",o).get(r+(t.href||\"\"));if(i){for(var s=0;s<i.length;s++)if((a=i[s]).getAttribute(\"href\")===(null==t.href||\"\"===t.href?null:t.href)&&a.getAttribute(\"rel\")===(null==t.rel?null:t.rel)&&a.getAttribute(\"title\")===(null==t.title?null:t.title)&&a.getAttribute(\"crossorigin\")===(null==t.crossOrigin?null:t.crossOrigin)){i.splice(s,1);break n}}cc(a=o.createElement(r),r,t),o.head.appendChild(a);break;case\"meta\":if(i=cG(\"meta\",\"content\",o).get(r+(t.content||\"\"))){for(s=0;s<i.length;s++)if((a=i[s]).getAttribute(\"content\")===(null==t.content?null:\"\"+t.content)&&a.getAttribute(\"name\")===(null==t.name?null:t.name)&&a.getAttribute(\"property\")===(null==t.property?null:t.property)&&a.getAttribute(\"http-equiv\")===(null==t.httpEquiv?null:t.httpEquiv)&&a.getAttribute(\"charset\")===(null==t.charSet?null:t.charSet)){i.splice(s,1);break n}}cc(a=o.createElement(r),r,t),o.head.appendChild(a);break;default:throw Error(l(468,r))}a[eN]=e,eY(a),r=a}e.stateNode=r}else cJ(o,e.type,e.stateNode);else e.stateNode=cZ(o,r,e.memoizedProps);else a!==r?(null===a?null!==t.stateNode&&(t=t.stateNode).parentNode.removeChild(t):a.count--,null===r?cJ(o,e.type,e.stateNode):cZ(o,r,e.memoizedProps)):null===r&&null!==e.stateNode&&i9(e,e.memoizedProps,t.memoizedProps)}break;case 27:lg(n,e),lb(e),512&r&&(lr||null===t||i3(t,t.return)),null!==t&&4&r&&i9(e,e.memoizedProps,t.memoizedProps);break;case 5:if(lg(n,e),lb(e),512&r&&(lr||null===t||i3(t,t.return)),32&e.flags){o=e.stateNode;try{ns(o,\"\")}catch(n){sP(e,e.return,n)}}4&r&&null!=e.stateNode&&(o=e.memoizedProps,i9(e,o,null!==t?t.memoizedProps:o)),1024&r&&(lo=!0);break;case 6:if(lg(n,e),lb(e),4&r){if(null===e.stateNode)throw Error(l(162));r=e.memoizedProps,t=e.stateNode;try{t.nodeValue=r}catch(n){sP(e,e.return,n)}}break;case 3:if(cQ=null,o=lm,lm=cB(n.containerInfo),lg(n,e),lm=o,lb(e),4&r&&null!==t&&t.memoizedState.isDehydrated)try{uE(n.containerInfo)}catch(n){sP(e,e.return,n)}lo&&(lo=!1,function e(n){if(1024&n.subtreeFlags)for(n=n.child;null!==n;){var t=n;e(t),5===t.tag&&1024&t.flags&&t.stateNode.reset(),n=n.sibling}}(e));break;case 4:r=lm,lm=cB(e.stateNode.containerInfo),lg(n,e),lb(e),lm=r;break;case 12:default:lg(n,e),lb(e);break;case 31:case 19:lg(n,e),lb(e),4&r&&null!==(r=e.updateQueue)&&(e.updateQueue=null,lh(e,r));break;case 13:lg(n,e),lb(e),8192&e.child.flags&&null!==e.memoizedState!=(null!==t&&null!==t.memoizedState)&&(lJ=er()),4&r&&null!==(r=e.updateQueue)&&(e.updateQueue=null,lh(e,r));break;case 22:o=null!==e.memoizedState;var c=null!==t&&null!==t.memoizedState,u=lt,d=lr;if(lt=u||o,lr=d||c,lg(n,e),lr=d,lt=u,lb(e),8192&r)e:for((n=e.stateNode)._visibility=o?-2&n._visibility:1|n._visibility,o&&(null===t||c||lt||lr||function e(n){for(n=n.child;null!==n;){var t=n;switch(t.tag){case 0:case 11:case 14:case 15:i1(4,t,t.return),e(t);break;case 1:i3(t,t.return);var r=t.stateNode;\"function\"==typeof r.componentWillUnmount&&i4(t,t.return,r),e(t);break;case 27:cR(t.stateNode);case 26:case 5:i3(t,t.return),e(t);break;case 22:null===t.memoizedState&&e(t);break;default:e(t)}n=n.sibling}}(e)),t=null,n=e;;){if(5===n.tag||26===n.tag){if(null===t){c=t=n;try{if(a=c.stateNode,o)i=a.style,\"function\"==typeof i.setProperty?i.setProperty(\"display\",\"none\",\"important\"):i.display=\"none\";else{s=c.stateNode;var f=c.memoizedProps.style,p=null!=f&&f.hasOwnProperty(\"display\")?f.display:null;s.style.display=null==p||\"boolean\"==typeof p?\"\":(\"\"+p).trim()}}catch(e){sP(c,c.return,e)}}}else if(6===n.tag){if(null===t){c=n;try{c.stateNode.nodeValue=o?\"\":c.memoizedProps}catch(e){sP(c,c.return,e)}}}else if(18===n.tag){if(null===t){c=n;try{var h=c.stateNode;o?cA(h,!0):cA(c.stateNode,!1)}catch(e){sP(c,c.return,e)}}}else if((22!==n.tag&&23!==n.tag||null===n.memoizedState||n===e)&&null!==n.child){n.child.return=n,n=n.child;continue}if(n===e)break;for(;null===n.sibling;){if(null===n.return||n.return===e)break e;t===n&&(t=null),n=n.return}t===n&&(t=null),n.sibling.return=n.return,n=n.sibling}4&r&&null!==(r=e.updateQueue)&&null!==(t=r.retryQueue)&&(r.retryQueue=null,lh(e,t));case 30:case 21:}}function lb(e){var n=e.flags;if(2&n){try{for(var t,r=e.return;null!==r;){if(i8(r)){t=r;break}r=r.return}if(null==t)throw Error(l(160));switch(t.tag){case 27:var o=t.stateNode,a=i7(e);le(e,a,o);break;case 5:var i=t.stateNode;32&t.flags&&(ns(i,\"\"),t.flags&=-33);var s=i7(e);le(e,s,i);break;case 3:case 4:var c=t.stateNode.containerInfo,u=i7(e);!function e(n,t,r){var o=n.tag;if(5===o||6===o)n=n.stateNode,t?(9===r.nodeType?r.body:\"HTML\"===r.nodeName?r.ownerDocument.body:r).insertBefore(n,t):((t=9===r.nodeType?r.body:\"HTML\"===r.nodeName?r.ownerDocument.body:r).appendChild(n),null!=(r=r._reactRootContainer)||null!==t.onclick||(t.onclick=nm));else if(4!==o&&(27===o&&cj(n.type)&&(r=n.stateNode,t=null),null!==(n=n.child)))for(e(n,t,r),n=n.sibling;null!==n;)e(n,t,r),n=n.sibling}(e,u,c);break;default:throw Error(l(161))}}catch(n){sP(e,e.return,n)}e.flags&=-3}4096&n&&(e.flags&=-4097)}function ly(e,n){if(8772&n.subtreeFlags)for(n=n.child;null!==n;)ll(e,n.alternate,n),n=n.sibling}function lx(e,n){var t=null;null!==e&&null!==e.memoizedState&&null!==e.memoizedState.cachePool&&(t=e.memoizedState.cachePool.pool),e=null,null!==n.memoizedState&&null!==n.memoizedState.cachePool&&(e=n.memoizedState.cachePool.pool),e!==t&&(null!=e&&e.refCount++,null!=t&&r2(t))}function lw(e,n){e=null,null!==n.alternate&&(e=n.alternate.memoizedState.cache),(n=n.memoizedState.cache)!==e&&(n.refCount++,null!=e&&r2(e))}function lj(e,n,t,r){if(10256&n.subtreeFlags)for(n=n.child;null!==n;)lk(e,n,t,r),n=n.sibling}function lk(e,n,t,r){var o=n.flags;switch(n.tag){case 0:case 11:case 15:lj(e,n,t,r),2048&o&&i0(9,n);break;case 1:case 31:case 13:default:lj(e,n,t,r);break;case 3:lj(e,n,t,r),2048&o&&(e=null,null!==n.alternate&&(e=n.alternate.memoizedState.cache),(n=n.memoizedState.cache)!==e&&(n.refCount++,null!=e&&r2(e)));break;case 12:if(2048&o){lj(e,n,t,r),e=n.stateNode;try{var a=n.memoizedProps,i=a.id,l=a.onPostCommit;\"function\"==typeof l&&l(i,null===n.alternate?\"mount\":\"update\",e.passiveEffectDuration,-0)}catch(e){sP(n,n.return,e)}}else lj(e,n,t,r);break;case 23:break;case 22:a=n.stateNode,i=n.alternate,null!==n.memoizedState?2&a._visibility?lj(e,n,t,r):lA(e,n):2&a._visibility?lj(e,n,t,r):(a._visibility|=2,function e(n,t,r,o,a){for(a=a&&0!=(10256&t.subtreeFlags),t=t.child;null!==t;){var i=t,l=i.flags;switch(i.tag){case 0:case 11:case 15:e(n,i,r,o,a),i0(8,i);break;case 23:break;case 22:var s=i.stateNode;null!==i.memoizedState?2&s._visibility?e(n,i,r,o,a):lA(n,i):(s._visibility|=2,e(n,i,r,o,a)),a&&2048&l&&lx(i.alternate,i);break;case 24:e(n,i,r,o,a),a&&2048&l&&lw(i.alternate,i);break;default:e(n,i,r,o,a)}t=t.sibling}}(e,n,t,r,0!=(10256&n.subtreeFlags))),2048&o&&lx(i,n);break;case 24:lj(e,n,t,r),2048&o&&lw(n.alternate,n)}}function lA(e,n){if(10256&n.subtreeFlags)for(n=n.child;null!==n;){var t=n,r=t.flags;switch(t.tag){case 22:lA(e,t),2048&r&&lx(t.alternate,t);break;case 24:lA(e,t),2048&r&&lw(t.alternate,t);break;default:lA(e,t)}n=n.sibling}}var lO=8192;function lC(e){if(e.subtreeFlags&lO)for(e=e.child;null!==e;)lS(e),e=e.sibling}function lS(e){switch(e.tag){case 26:lC(e),e.flags&lO&&null!==e.memoizedState&&function(e,n,t){if(null===c1)throw Error(l(475));var r=c1;if(\"stylesheet\"===n.type&&(\"string\"!=typeof t.media||!1!==matchMedia(t.media).matches)&&0==(4&n.state.loading)){if(null===n.instance){var o=cU(t.href),a=e.querySelector(cV(o));if(a){null!==(e=a._p)&&\"object\"==typeof e&&\"function\"==typeof e.then&&(r.count++,r=c2.bind(r),e.then(r,r)),n.state.loading|=4,n.instance=a,eY(a);return}a=e.ownerDocument||e,t=cq(t),(o=cN.get(o))&&cX(t,o),eY(a=a.createElement(\"link\"));var i=a;i._p=new Promise(function(e,n){i.onload=e,i.onerror=n}),cc(a,\"link\",t),n.instance=a}null===r.stylesheets&&(r.stylesheets=new Map),r.stylesheets.set(n,e),(e=n.state.preload)&&0==(3&n.state.loading)&&(r.count++,n=c2.bind(r),e.addEventListener(\"load\",n),e.addEventListener(\"error\",n))}}(lm,e.memoizedState,e.memoizedProps);break;case 5:default:lC(e);break;case 3:case 4:var n=lm;lm=cB(e.stateNode.containerInfo),lC(e),lm=n;break;case 22:null===e.memoizedState&&(null!==(n=e.alternate)&&null!==n.memoizedState?(n=lO,lO=0x1000000,lC(e),lO=n):lC(e))}}function lE(e){var n=e.alternate;if(null!==n&&null!==(e=n.child)){n.child=null;do n=e.sibling,e.sibling=null,e=n;while(null!==e)}}function l_(e){var n=e.deletions;if(0!=(16&e.flags)){if(null!==n)for(var t=0;t<n.length;t++){var r=n[t];li=r,lz(r,e)}lE(e)}if(10256&e.subtreeFlags)for(e=e.child;null!==e;)lP(e),e=e.sibling}function lP(e){switch(e.tag){case 0:case 11:case 15:l_(e),2048&e.flags&&i1(9,e,e.return);break;case 3:case 12:default:l_(e);break;case 22:var n=e.stateNode;null!==e.memoizedState&&2&n._visibility&&(null===e.return||13!==e.return.tag)?(n._visibility&=-3,function e(n){var t=n.deletions;if(0!=(16&n.flags)){if(null!==t)for(var r=0;r<t.length;r++){var o=t[r];li=o,lz(o,n)}lE(n)}for(n=n.child;null!==n;){switch((t=n).tag){case 0:case 11:case 15:i1(8,t,t.return),e(t);break;case 22:2&(r=t.stateNode)._visibility&&(r._visibility&=-3,e(t));break;default:e(t)}n=n.sibling}}(e)):l_(e)}}function lz(e,n){for(;null!==li;){var t=li;switch(t.tag){case 0:case 11:case 15:i1(8,t,n);break;case 23:case 22:if(null!==t.memoizedState&&null!==t.memoizedState.cachePool){var r=t.memoizedState.cachePool.pool;null!=r&&r.refCount++}break;case 24:r2(t.memoizedState.cache)}if(null!==(r=t.child))r.return=t,li=r;else for(t=e;null!==li;){var o=(r=li).sibling,a=r.return;if(!function e(n){var t=n.alternate;null!==t&&(n.alternate=null,e(t)),n.child=null,n.deletions=null,n.sibling=null,5===n.tag&&null!==(t=n.stateNode)&&eV(t),n.stateNode=null,n.return=null,n.dependencies=null,n.memoizedProps=null,n.memoizedState=null,n.pendingProps=null,n.stateNode=null,n.updateQueue=null}(r),r===t){li=null;break}if(null!==o){o.return=a,li=o;break}li=a}}}var lL={getCacheForType:function(e){var n=rY(r0),t=n.data.get(e);return void 0===t&&(t=e(),n.data.set(e,t)),t},cacheSignal:function(){return rY(r0).controller.signal}},lT=\"function\"==typeof WeakMap?WeakMap:Map,lR=0,lN=null,lD=null,lB=0,lM=0,lI=null,lH=!1,lF=!1,lU=!1,lV=0,lq=0,lW=0,l$=0,lZ=0,lY=0,lX=0,lK=null,lQ=null,lG=!1,lJ=0,l0=1/0,l1=null,l2=null,l4=0,l5=null,l3=null,l6=0,l9=0,l8=null,l7=null,se=0,sn=null;function st(){return 0!=(2&lR)&&0!==lB?lB&-lB:null!==L.T?sX():eL()}function sr(){0===lY&&(lY=0==(0x20000000&lB)||rS?ek():0x20000000);var e=oM.current;return null!==e&&(e.flags|=32),lY}function so(e,n,t){(e===lN&&(2===lM||9===lM)||null!==e.cancelPendingCommit)&&(su(e,0),sl(e,lB,lY,!1)),eC(e,t),(0==(2&lR)||e!==lN)&&(e===lN&&(0==(2&lR)&&(l$|=t),4===lq&&sl(e,lB,lY,!1)),sU(e))}function sa(e,n,t){if(0!=(6&lR))throw Error(l(327));for(var r=!t&&0==(124&n)&&0==(n&e.expiredLanes)||ej(e,n),o=r?function(e,n){var t=lR;lR|=2;var r=sp(),o=sh();lN!==e||lB!==n?(l1=null,l0=er()+500,su(e,n)):lF=ej(e,n);e:for(;;)try{if(0!==lM&&null!==lD){n=lD;var a=lI;n:switch(lM){case 1:lM=0,lI=null,sy(e,n,a,1);break;case 2:case 9:if(ol(a)){lM=0,lI=null,sb(n);break}n=function(){2!==lM&&9!==lM||lN!==e||(lM=7),sU(e)},a.then(n,n);break e;case 3:lM=7;break e;case 4:lM=5;break e;case 7:ol(a)?(lM=0,lI=null,sb(n)):(lM=0,lI=null,sy(e,n,a,7));break;case 5:var i=null;switch(lD.tag){case 26:i=lD.memoizedState;case 5:case 27:var s=lD;if(i?c0(i):s.stateNode.complete){lM=0,lI=null;var c=s.sibling;if(null!==c)lD=c;else{var u=s.return;null!==u?(lD=u,sx(u)):lD=null}break n}}lM=0,lI=null,sy(e,n,a,5);break;case 6:lM=0,lI=null,sy(e,n,a,6);break;case 8:sc(),lq=6;break e;default:throw Error(l(462))}}for(;null!==lD&&!en();)sv(lD);break}catch(n){sd(e,n)}return(rH=rI=null,L.H=r,L.A=o,lR=t,null!==lD)?0:(lN=null,lB=0,t2(),lq)}(e,n):sm(e,n,!0),a=r;;){if(0===o)lF&&!r&&sl(e,n,0,!1);else{if(t=e.current.alternate,a&&!function(e){for(var n=e;;){var t=n.tag;if((0===t||11===t||15===t)&&16384&n.flags&&null!==(t=n.updateQueue)&&null!==(t=t.stores))for(var r=0;r<t.length;r++){var o=t[r],a=o.getSnapshot;o=o.value;try{if(!tO(a(),o))return!1}catch(e){return!1}}if(t=n.child,16384&n.subtreeFlags&&null!==t)t.return=n,n=t;else{if(n===e)break;for(;null===n.sibling;){if(null===n.return||n.return===e)return!0;n=n.return}n.sibling.return=n.return,n=n.sibling}}return!0}(t)){o=sm(e,n,!1),a=!1;continue}if(2===o){if(a=n,e.errorRecoveryDisabledLanes&a)var i=0;else i=0!=(i=-0x20000001&e.pendingLanes)?i:0x20000000&i?0x20000000:0;if(0!==i){n=i;e:{o=lK;var s=e.current.memoizedState.isDehydrated;if(s&&(su(e,i).flags|=256),2!==(i=sm(e,i,!1))){if(lU&&!s){e.errorRecoveryDisabledLanes|=a,l$|=a,o=4;break e}a=lQ,lQ=o,null!==a&&(null===lQ?lQ=a:lQ.push.apply(lQ,a))}o=i}if(a=!1,2!==o)continue}}if(1===o){su(e,0),sl(e,n,0,!0);break}e:{switch(r=e,a=o){case 0:case 1:throw Error(l(345));case 4:if((4194048&n)!==n)break;case 6:sl(r,n,lY,!lH);break e;case 2:lQ=null;break;case 3:case 5:break;default:throw Error(l(329))}if((0x3c00000&n)===n&&10<(o=lJ+300-er())){if(sl(r,n,lY,!lH),0!==ew(r,0,!0))break e;r.timeoutHandle=cv(si.bind(null,r,t,lQ,l1,lG,n,lY,l$,lX,lH,a,2,-0,0),o);break e}si(r,t,lQ,l1,lG,n,lY,l$,lX,lH,a,0,-0,0)}}break}sU(e)}function si(e,n,t,r,o,a,i,s,c,u,d,f,p,h){if(e.timeoutHandle=-1,(8192&(f=n.subtreeFlags)||0x1002000==(0x1002000&f))&&(c1={stylesheets:null,count:0,unsuspend:nm},lS(n),null!==(f=function(){if(null===c1)throw Error(l(475));var e=c1;return e.stylesheets&&0===e.count&&c5(e,e.stylesheets),0<e.count?function(n){var t=setTimeout(function(){if(e.stylesheets&&c5(e,e.stylesheets),e.unsuspend){var n=e.unsuspend;e.unsuspend=null,n()}},6e4);return e.unsuspend=n,function(){e.unsuspend=null,clearTimeout(t)}}:null}()))){e.cancelPendingCommit=f(sj.bind(null,e,n,a,t,r,o,i,s,c,d,1,p,h)),sl(e,a,i,!u);return}sj(e,n,a,t,r,o,i,s,c)}function sl(e,n,t,r){n&=~lZ,n&=~l$,e.suspendedLanes|=n,e.pingedLanes&=~n,r&&(e.warmLanes|=n),r=e.expirationTimes;for(var o=n;0<o;){var a=31-eg(o),i=1<<a;r[a]=-1,o&=~i}0!==t&&eS(e,t,n)}function ss(){return 0!=(6&lR)||(sV(0,!1),!1)}function sc(){if(null!==lD){if(0===lM)var e=lD.return;else e=lD,rH=rI=null,at(e),of=null,op=0,e=lD;for(;null!==e;)iJ(e.alternate,e),e=e.return;lD=null}}function su(e,n){var t=e.timeoutHandle;-1!==t&&(e.timeoutHandle=-1,cb(t)),null!==(t=e.cancelPendingCommit)&&(e.cancelPendingCommit=null,t()),sc(),lN=e,lD=t=rt(e.current,null),lB=n,lM=0,lI=null,lH=!1,lF=ej(e,n),lU=!1,lX=lY=lZ=l$=lW=lq=0,lQ=lK=null,lG=!1,0!=(8&n)&&(n|=32&n);var r=e.entangledLanes;if(0!==r)for(e=e.entanglements,r&=n;0<r;){var o=31-eg(r),a=1<<o;n|=e[o],r&=~a}return lV=n,t2(),t}function sd(e,n){oY=null,L.H=ie,n===or||n===oa?(n=ou(),lM=3):n===oo?(n=ou(),lM=4):lM=n===iy?8:null!==n&&\"object\"==typeof n&&\"function\"==typeof n.then?6:1,lI=n,null===lD&&(lq=1,ih(e,ru(n,e.current)))}function sf(){var e=oM.current;return null===e||((4194048&lB)===lB?null===oI:((0x3c00000&lB)===lB||0!=(0x20000000&lB))&&e===oI)}function sp(){var e=L.H;return L.H=ie,null===e?ie:e}function sh(){var e=L.A;return L.A=lL,e}function sg(){lq=4,lH||(4194048&lB)!==lB&&null!==oM.current||(lF=!0),0==(0x7ffffff&lW)&&0==(0x7ffffff&l$)||null===lN||sl(lN,lB,lY,!1)}function sm(e,n,t){var r=lR;lR|=2;var o=sp(),a=sh();(lN!==e||lB!==n)&&(l1=null,su(e,n)),n=!1;var i=lq;e:for(;;)try{if(0!==lM&&null!==lD){var l=lD,s=lI;switch(lM){case 8:sc(),i=6;break e;case 3:case 2:case 9:case 6:null===oM.current&&(n=!0);var c=lM;if(lM=0,lI=null,sy(e,l,s,c),t&&lF){i=0;break e}break;default:c=lM,lM=0,lI=null,sy(e,l,s,c)}}(function(){for(;null!==lD;)sv(lD)})(),i=lq;break}catch(n){sd(e,n)}return n&&e.shellSuspendCounter++,rH=rI=null,lR=r,L.H=o,L.A=a,null===lD&&(lN=null,lB=0,t2()),i}function sv(e){var n=i$(e.alternate,e,lV);e.memoizedProps=e.pendingProps,null===n?sx(e):lD=n}function sb(e){var n=e,t=n.alternate;switch(n.tag){case 15:case 0:n=iz(t,n,n.pendingProps,n.type,void 0,lB);break;case 11:n=iz(t,n,n.pendingProps,n.type.render,n.ref,lB);break;case 5:at(n);default:iJ(t,n),n=i$(t,n=lD=rr(n,lV),lV)}e.memoizedProps=e.pendingProps,null===n?sx(e):lD=n}function sy(e,n,t,r){rH=rI=null,at(n),of=null,op=0;var o=n.return;try{if(function(e,n,t,r,o){if(t.flags|=32768,null!==r&&\"object\"==typeof r&&\"function\"==typeof r.then){if(null!==(n=t.alternate)&&rW(n,t,o,!0),null!==(t=oM.current)){switch(t.tag){case 31:case 13:return null===oI?sg():null===t.alternate&&0===lq&&(lq=3),t.flags&=-257,t.flags|=65536,t.lanes=o,r===oi?t.flags|=16384:(null===(n=t.updateQueue)?t.updateQueue=new Set([r]):n.add(r),sz(e,r,o)),!1;case 22:return t.flags|=65536,r===oi?t.flags|=16384:(null===(n=t.updateQueue)?(n={transitions:null,markerInstances:null,retryQueue:new Set([r])},t.updateQueue=n):null===(t=n.retryQueue)?n.retryQueue=new Set([r]):t.add(r),sz(e,r,o)),!1}throw Error(l(435,t.tag))}return sz(e,r,o),sg(),!1}if(rS)return null!==(n=oM.current)?(0==(65536&n.flags)&&(n.flags|=256),n.flags|=65536,n.lanes=o,r!==rP&&rB(ru(e=Error(l(422),{cause:r}),t))):(r!==rP&&rB(ru(n=Error(l(423),{cause:r}),t)),e=e.current.alternate,e.flags|=65536,o&=-o,e.lanes|=o,r=ru(r,t),o=im(e.stateNode,r,o),oS(e,o),4!==lq&&(lq=2)),!1;var a=Error(l(520),{cause:r});if(a=ru(a,t),null===lK?lK=[a]:lK.push(a),4!==lq&&(lq=2),null===n)return!0;r=ru(r,t),t=n;do{switch(t.tag){case 3:return t.flags|=65536,e=o&-o,t.lanes|=e,e=im(t.stateNode,r,e),oS(t,e),!1;case 1:if(n=t.type,a=t.stateNode,0==(128&t.flags)&&(\"function\"==typeof n.getDerivedStateFromError||null!==a&&\"function\"==typeof a.componentDidCatch&&(null===l2||!l2.has(a))))return t.flags|=65536,o&=-o,t.lanes|=o,ib(o=iv(o),e,t,r),oS(t,o),!1}t=t.return}while(null!==t);return!1}(e,o,n,t,lB)){lq=1,ih(e,ru(t,e.current)),lD=null;return}}catch(n){if(null!==o)throw lD=o,n;lq=1,ih(e,ru(t,e.current)),lD=null;return}32768&n.flags?(rS||1===r?e=!0:lF||0!=(0x20000000&lB)?e=!1:(lH=e=!0,(2===r||9===r||3===r||6===r)&&null!==(r=oM.current)&&13===r.tag&&(r.flags|=16384)),sw(n,e)):sx(n)}function sx(e){var n=e;do{if(0!=(32768&n.flags))return void sw(n,lH);e=n.return;var t=function(e,n,t){var r=n.pendingProps;switch(rk(n),n.tag){case 16:case 15:case 0:case 11:case 7:case 8:case 12:case 9:case 14:case 1:return iG(n),null;case 3:return t=n.stateNode,r=null,null!==e&&(r=e.memoizedState.cache),n.memoizedState.cache!==r&&(n.flags|=2048),rU(r0),W(),t.pendingContext&&(t.context=t.pendingContext,t.pendingContext=null),(null===e||null===e.child)&&(rR(n)?iZ(n):null===e||e.memoizedState.isDehydrated&&0==(256&n.flags)||(n.flags|=1024,rD())),iG(n),null;case 26:var o=n.type,a=n.memoizedState;return null===e?(iZ(n),null!==a?(iG(n),iX(n,a)):(iG(n),iY(n,o,null,r,t))):a?a!==e.memoizedState?(iZ(n),iG(n),iX(n,a)):(iG(n),n.flags&=-0x1000001):((e=e.memoizedProps)!==r&&iZ(n),iG(n),iY(n,o,e,r,t)),null;case 27:if(Z(n),t=U.current,o=n.type,null!==e&&null!=n.stateNode)e.memoizedProps!==r&&iZ(n);else{if(!r){if(null===n.stateNode)throw Error(l(166));return iG(n),null}e=H.current,rR(n)?rL(n,e):(n.stateNode=e=cT(o,r,t),iZ(n))}return iG(n),null;case 5:if(Z(n),o=n.type,null!==e&&null!=n.stateNode)e.memoizedProps!==r&&iZ(n);else{if(!r){if(null===n.stateNode)throw Error(l(166));return iG(n),null}if(a=H.current,rR(n))rL(n,a);else{var i=cf(U.current);switch(a){case 1:a=i.createElementNS(\"http://www.w3.org/2000/svg\",o);break;case 2:a=i.createElementNS(\"http://www.w3.org/1998/Math/MathML\",o);break;default:switch(o){case\"svg\":a=i.createElementNS(\"http://www.w3.org/2000/svg\",o);break;case\"math\":a=i.createElementNS(\"http://www.w3.org/1998/Math/MathML\",o);break;case\"script\":(a=i.createElement(\"div\")).innerHTML=\"<script><\\/script>\",a=a.removeChild(a.firstChild);break;case\"select\":a=\"string\"==typeof r.is?i.createElement(\"select\",{is:r.is}):i.createElement(\"select\"),r.multiple?a.multiple=!0:r.size&&(a.size=r.size);break;default:a=\"string\"==typeof r.is?i.createElement(o,{is:r.is}):i.createElement(o)}}a[eN]=n,a[eD]=r;e:for(i=n.child;null!==i;){if(5===i.tag||6===i.tag)a.appendChild(i.stateNode);else if(4!==i.tag&&27!==i.tag&&null!==i.child){i.child.return=i,i=i.child;continue}if(i===n)break;for(;null===i.sibling;){if(null===i.return||i.return===n)break e;i=i.return}i.sibling.return=i.return,i=i.sibling}switch(n.stateNode=a,cc(a,o,r),o){case\"button\":case\"input\":case\"select\":case\"textarea\":r=!!r.autoFocus;break;case\"img\":r=!0;break;default:r=!1}r&&iZ(n)}}return iG(n),iY(n,n.type,null===e?null:e.memoizedProps,n.pendingProps,t),null;case 6:if(e&&null!=n.stateNode)e.memoizedProps!==r&&iZ(n);else{if(\"string\"!=typeof r&&null===n.stateNode)throw Error(l(166));if(e=U.current,rR(n)){if(e=n.stateNode,t=n.memoizedProps,r=null,null!==(o=rO))switch(o.tag){case 27:case 5:r=o.memoizedProps}e[eN]=n,(e=!!(e.nodeValue===t||null!==r&&!0===r.suppressHydrationWarning||ci(e.nodeValue,t)))||rz(n,!0)}else(e=cf(e).createTextNode(r))[eN]=n,n.stateNode=e}return iG(n),null;case 31:if(t=n.memoizedState,null===e||null!==e.memoizedState){if(r=rR(n),null!==t){if(null===e){if(!r)throw Error(l(318));if(!(e=null!==(e=n.memoizedState)?e.dehydrated:null))throw Error(l(557));e[eN]=n}else rN(),0==(128&n.flags)&&(n.memoizedState=null),n.flags|=4;iG(n),e=!1}else t=rD(),null!==e&&null!==e.memoizedState&&(e.memoizedState.hydrationErrors=t),e=!0;if(!e){if(256&n.flags)return oq(n),n;return oq(n),null}if(0!=(128&n.flags))throw Error(l(558))}return iG(n),null;case 13:if(r=n.memoizedState,null===e||null!==e.memoizedState&&null!==e.memoizedState.dehydrated){if(o=rR(n),null!==r&&null!==r.dehydrated){if(null===e){if(!o)throw Error(l(318));if(!(o=null!==(o=n.memoizedState)?o.dehydrated:null))throw Error(l(317));o[eN]=n}else rN(),0==(128&n.flags)&&(n.memoizedState=null),n.flags|=4;iG(n),o=!1}else o=rD(),null!==e&&null!==e.memoizedState&&(e.memoizedState.hydrationErrors=o),o=!0;if(!o){if(256&n.flags)return oq(n),n;return oq(n),null}}if(oq(n),0!=(128&n.flags))return n.lanes=t,n;return t=null!==r,e=null!==e&&null!==e.memoizedState,t&&(r=n.child,o=null,null!==r.alternate&&null!==r.alternate.memoizedState&&null!==r.alternate.memoizedState.cachePool&&(o=r.alternate.memoizedState.cachePool.pool),a=null,null!==r.memoizedState&&null!==r.memoizedState.cachePool&&(a=r.memoizedState.cachePool.pool),a!==o&&(r.flags|=2048)),t!==e&&t&&(n.child.flags|=8192),iK(n,n.updateQueue),iG(n),null;case 4:return W(),null===e&&s6(n.stateNode.containerInfo),iG(n),null;case 10:return rU(n.type),iG(n),null;case 19:if(M(oW),null===(r=n.memoizedState))return iG(n),null;if(o=0!=(128&n.flags),null===(a=r.rendering))if(o)iQ(r,!1);else{if(0!==lq||null!==e&&0!=(128&e.flags))for(e=n.child;null!==e;){if(null!==(a=o$(e))){for(n.flags|=128,iQ(r,!1),n.updateQueue=e=a.updateQueue,iK(n,e),n.subtreeFlags=0,e=t,t=n.child;null!==t;)rr(t,e),t=t.sibling;return I(oW,1&oW.current|2),rS&&rx(n,r.treeForkCount),n.child}e=e.sibling}null!==r.tail&&er()>l0&&(n.flags|=128,o=!0,iQ(r,!1),n.lanes=4194304)}else{if(!o)if(null!==(e=o$(a))){if(n.flags|=128,o=!0,n.updateQueue=e=e.updateQueue,iK(n,e),iQ(r,!0),null===r.tail&&\"hidden\"===r.tailMode&&!a.alternate&&!rS)return iG(n),null}else 2*er()-r.renderingStartTime>l0&&0x20000000!==t&&(n.flags|=128,o=!0,iQ(r,!1),n.lanes=4194304);r.isBackwards?(a.sibling=n.child,n.child=a):(null!==(e=r.last)?e.sibling=a:n.child=a,r.last=a)}if(null!==r.tail)return e=r.tail,r.rendering=e,r.tail=e.sibling,r.renderingStartTime=er(),e.sibling=null,t=oW.current,I(oW,o?1&t|2:1&t),rS&&rx(n,r.treeForkCount),e;return iG(n),null;case 22:case 23:return oq(n),oB(),r=null!==n.memoizedState,null!==e?null!==e.memoizedState!==r&&(n.flags|=8192):r&&(n.flags|=8192),r?0!=(0x20000000&t)&&0==(128&n.flags)&&(iG(n),6&n.subtreeFlags&&(n.flags|=8192)):iG(n),null!==(t=n.updateQueue)&&iK(n,t.retryQueue),t=null,null!==e&&null!==e.memoizedState&&null!==e.memoizedState.cachePool&&(t=e.memoizedState.cachePool.pool),r=null,null!==n.memoizedState&&null!==n.memoizedState.cachePool&&(r=n.memoizedState.cachePool.pool),r!==t&&(n.flags|=2048),null!==e&&M(r7),null;case 24:return t=null,null!==e&&(t=e.memoizedState.cache),n.memoizedState.cache!==t&&(n.flags|=2048),rU(r0),iG(n),null;case 25:case 30:return null}throw Error(l(156,n.tag))}(n.alternate,n,lV);if(null!==t){lD=t;return}if(null!==(n=n.sibling)){lD=n;return}lD=n=e}while(null!==n);0===lq&&(lq=5)}function sw(e,n){do{var t=function(e,n){switch(rk(n),n.tag){case 1:return 65536&(e=n.flags)?(n.flags=-65537&e|128,n):null;case 3:return rU(r0),W(),0!=(65536&(e=n.flags))&&0==(128&e)?(n.flags=-65537&e|128,n):null;case 26:case 27:case 5:return Z(n),null;case 31:if(null!==n.memoizedState){if(oq(n),null===n.alternate)throw Error(l(340));rN()}return 65536&(e=n.flags)?(n.flags=-65537&e|128,n):null;case 13:if(oq(n),null!==(e=n.memoizedState)&&null!==e.dehydrated){if(null===n.alternate)throw Error(l(340));rN()}return 65536&(e=n.flags)?(n.flags=-65537&e|128,n):null;case 19:return M(oW),null;case 4:return W(),null;case 10:return rU(n.type),null;case 22:case 23:return oq(n),oB(),null!==e&&M(r7),65536&(e=n.flags)?(n.flags=-65537&e|128,n):null;case 24:return rU(r0),null;default:return null}}(e.alternate,e);if(null!==t){t.flags&=32767,lD=t;return}if(null!==(t=e.return)&&(t.flags|=32768,t.subtreeFlags=0,t.deletions=null),!n&&null!==(e=e.sibling)){lD=e;return}lD=e=t}while(null!==e);lq=6,lD=null}function sj(e,n,t,r,o,a,i,s,c){e.cancelPendingCommit=null;do sS();while(0!==l4);if(0!=(6&lR))throw Error(l(327));if(null!==n){if(n===e.current)throw Error(l(177));if(!function(e,n,t,r,o,a){var i=e.pendingLanes;e.pendingLanes=t,e.suspendedLanes=0,e.pingedLanes=0,e.warmLanes=0,e.expiredLanes&=t,e.entangledLanes&=t,e.errorRecoveryDisabledLanes&=t,e.shellSuspendCounter=0;var l=e.entanglements,s=e.expirationTimes,c=e.hiddenUpdates;for(t=i&~t;0<t;){var u=31-eg(t),d=1<<u;l[u]=0,s[u]=-1;var f=c[u];if(null!==f)for(c[u]=null,u=0;u<f.length;u++){var p=f[u];null!==p&&(p.lane&=-0x20000001)}t&=~d}0!==r&&eS(e,r,0),0!==a&&0===o&&0!==e.tag&&(e.suspendedLanes|=a&~(i&~n))}(e,t,a=n.lanes|n.childLanes|t1,i,s,c),e===lN&&(lD=lN=null,lB=0),l3=n,l5=e,l6=t,l9=a,l8=o,l7=r,0!=(10256&n.subtreeFlags)||0!=(10256&n.flags)?(e.callbackNode=null,e.callbackPriority=0,J(el,function(){return sE(!0),null})):(e.callbackNode=null,e.callbackPriority=0),r=0!=(13878&n.flags),0!=(13878&n.subtreeFlags)||r){r=L.T,L.T=null,o=T.p,T.p=2,i=lR,lR|=4;try{!function(e,n){if(e=e.containerInfo,cu=ur,tP(e=t_(e))){if(\"selectionStart\"in e)var t={start:e.selectionStart,end:e.selectionEnd};else e:{var r=(t=(t=e.ownerDocument)&&t.defaultView||window).getSelection&&t.getSelection();if(r&&0!==r.rangeCount){t=r.anchorNode;var o,a=r.anchorOffset,i=r.focusNode;r=r.focusOffset;try{t.nodeType,i.nodeType}catch(e){t=null;break e}var s=0,c=-1,u=-1,d=0,f=0,p=e,h=null;n:for(;;){for(;p!==t||0!==a&&3!==p.nodeType||(c=s+a),p!==i||0!==r&&3!==p.nodeType||(u=s+r),3===p.nodeType&&(s+=p.nodeValue.length),null!==(o=p.firstChild);)h=p,p=o;for(;;){if(p===e)break n;if(h===t&&++d===a&&(c=s),h===i&&++f===r&&(u=s),null!==(o=p.nextSibling))break;h=(p=h).parentNode}p=o}t=-1===c||-1===u?null:{start:c,end:u}}else t=null}t=t||{start:0,end:0}}else t=null;for(cd={focusedElem:e,selectionRange:t},ur=!1,li=n;null!==li;)if(e=(n=li).child,0!=(1024&n.subtreeFlags)&&null!==e)e.return=n,li=e;else for(;null!==li;){switch(i=(n=li).alternate,e=n.flags,n.tag){case 0:case 11:case 15:case 5:case 26:case 27:case 6:case 4:case 17:break;case 1:if(0!=(1024&e)&&null!==i){e=void 0,t=n,a=i.memoizedProps,i=i.memoizedState,r=t.stateNode;try{var g=ic(t.type,a);e=r.getSnapshotBeforeUpdate(g,i),r.__reactInternalSnapshotBeforeUpdate=e}catch(e){sP(t,t.return,e)}}break;case 3:if(0!=(1024&e)){if(9===(t=(e=n.stateNode.containerInfo).nodeType))cO(e);else if(1===t)switch(e.nodeName){case\"HEAD\":case\"HTML\":case\"BODY\":cO(e);break;default:e.textContent=\"\"}}break;default:if(0!=(1024&e))throw Error(l(163))}if(null!==(e=n.sibling)){e.return=n.return,li=e;break}li=n.return}}(e,n,t)}finally{lR=i,T.p=o,L.T=r}}l4=1,sk(),sA(),sO()}}function sk(){if(1===l4){l4=0;var e=l5,n=l3,t=0!=(13878&n.flags);if(0!=(13878&n.subtreeFlags)||t){t=L.T,L.T=null;var r=T.p;T.p=2;var o=lR;lR|=4;try{lv(n,e);var a=cd,i=t_(e.containerInfo),l=a.focusedElem,s=a.selectionRange;if(i!==l&&l&&l.ownerDocument&&function e(n,t){return!!n&&!!t&&(n===t||(!n||3!==n.nodeType)&&(t&&3===t.nodeType?e(n,t.parentNode):\"contains\"in n?n.contains(t):!!n.compareDocumentPosition&&!!(16&n.compareDocumentPosition(t))))}(l.ownerDocument.documentElement,l)){if(null!==s&&tP(l)){var c=s.start,u=s.end;if(void 0===u&&(u=c),\"selectionStart\"in l)l.selectionStart=c,l.selectionEnd=Math.min(u,l.value.length);else{var d=l.ownerDocument||document,f=d&&d.defaultView||window;if(f.getSelection){var p=f.getSelection(),h=l.textContent.length,g=Math.min(s.start,h),m=void 0===s.end?g:Math.min(s.end,h);!p.extend&&g>m&&(i=m,m=g,g=i);var v=tE(l,g),b=tE(l,m);if(v&&b&&(1!==p.rangeCount||p.anchorNode!==v.node||p.anchorOffset!==v.offset||p.focusNode!==b.node||p.focusOffset!==b.offset)){var y=d.createRange();y.setStart(v.node,v.offset),p.removeAllRanges(),g>m?(p.addRange(y),p.extend(b.node,b.offset)):(y.setEnd(b.node,b.offset),p.addRange(y))}}}}for(d=[],p=l;p=p.parentNode;)1===p.nodeType&&d.push({element:p,left:p.scrollLeft,top:p.scrollTop});for(\"function\"==typeof l.focus&&l.focus(),l=0;l<d.length;l++){var x=d[l];x.element.scrollLeft=x.left,x.element.scrollTop=x.top}}ur=!!cu,cd=cu=null}finally{lR=o,T.p=r,L.T=t}}e.current=n,l4=2}}function sA(){if(2===l4){l4=0;var e=l5,n=l3,t=0!=(8772&n.flags);if(0!=(8772&n.subtreeFlags)||t){t=L.T,L.T=null;var r=T.p;T.p=2;var o=lR;lR|=4;try{ll(e,n.alternate,n)}finally{lR=o,T.p=r,L.T=t}}l4=3}}function sO(){if(4===l4||3===l4){l4=0,et();var e=l5,n=l3,t=l6,r=l7;0!=(10256&n.subtreeFlags)||0!=(10256&n.flags)?l4=5:(l4=0,l3=l5=null,sC(e,e.pendingLanes));var o=e.pendingLanes;if(0===o&&(l2=null),ez(t),n=n.stateNode,ep&&\"function\"==typeof ep.onCommitFiberRoot)try{ep.onCommitFiberRoot(ef,n,void 0,128==(128&n.current.flags))}catch(e){}if(null!==r){n=L.T,o=T.p,T.p=2,L.T=null;try{for(var a=e.onRecoverableError,i=0;i<r.length;i++){var l=r[i];a(l.value,{componentStack:l.stack})}}finally{L.T=n,T.p=o}}0!=(3&l6)&&sS(),sU(e),o=e.pendingLanes,0!=(4194090&t)&&0!=(42&o)?e===sn?se++:(se=0,sn=e):se=0,sV(0,!1)}}function sC(e,n){0==(e.pooledCacheLanes&=n)&&null!=(n=e.pooledCache)&&(e.pooledCache=null,r2(n))}function sS(e){return sk(),sA(),sO(),sE(e)}function sE(){if(5!==l4)return!1;var e=l5,n=l9;l9=0;var t=ez(l6),r=L.T,o=T.p;try{T.p=32>t?32:t,L.T=null,t=l8,l8=null;var a=l5,i=l6;if(l4=0,l3=l5=null,l6=0,0!=(6&lR))throw Error(l(331));var s=lR;if(lR|=4,lP(a.current),lk(a,a.current,i,t),lR=s,sV(0,!1),ep&&\"function\"==typeof ep.onPostCommitFiberRoot)try{ep.onPostCommitFiberRoot(ef,a)}catch(e){}return!0}finally{T.p=o,L.T=r,sC(e,n)}}function s_(e,n,t){n=ru(t,n),n=im(e.stateNode,n,2),null!==(e=oO(e,n,2))&&(eC(e,2),sU(e))}function sP(e,n,t){if(3===e.tag)s_(e,e,t);else for(;null!==n;){if(3===n.tag){s_(n,e,t);break}if(1===n.tag){var r=n.stateNode;if(\"function\"==typeof n.type.getDerivedStateFromError||\"function\"==typeof r.componentDidCatch&&(null===l2||!l2.has(r))){e=ru(t,e),null!==(r=oO(n,t=iv(2),2))&&(ib(t,r,n,e),eC(r,2),sU(r));break}}n=n.return}}function sz(e,n,t){var r=e.pingCache;if(null===r){r=e.pingCache=new lT;var o=new Set;r.set(n,o)}else void 0===(o=r.get(n))&&(o=new Set,r.set(n,o));o.has(t)||(lU=!0,o.add(t),e=sL.bind(null,e,n,t),n.then(e,e))}function sL(e,n,t){var r=e.pingCache;null!==r&&r.delete(n),e.pingedLanes|=e.suspendedLanes&t,e.warmLanes&=~t,lN===e&&(lB&t)===t&&(4===lq||3===lq&&(0x3c00000&lB)===lB&&300>er()-lJ?0==(2&lR)&&su(e,0):lZ|=t,lX===lB&&(lX=0)),sU(e)}function sT(e,n){0===n&&(n=eA()),null!==(e=t3(e,n))&&(eC(e,n),sU(e))}function sR(e){var n=e.memoizedState,t=0;null!==n&&(t=n.retryLane),sT(e,t)}function sN(e,n){var t=0;switch(e.tag){case 31:case 13:var r=e.stateNode,o=e.memoizedState;null!==o&&(t=o.retryLane);break;case 19:r=e.stateNode;break;case 22:r=e.stateNode._retryCache;break;default:throw Error(l(314))}null!==r&&r.delete(n),sT(e,t)}var sD=null,sB=null,sM=!1,sI=!1,sH=!1,sF=0;function sU(e){e!==sB&&null===e.next&&(null===sB?sD=sB=e:sB=sB.next=e),sI=!0,sM||(sM=!0,cx(function(){0!=(6&lR)?J(ea,sq):sW()}))}function sV(e,n){if(!sH&&sI){sH=!0;do for(var t=!1,r=sD;null!==r;){if(!n)if(0!==e){var o=r.pendingLanes;if(0===o)var a=0;else{var i=r.suspendedLanes,l=r.pingedLanes;a=0xc000095&(a=(1<<31-eg(42|e)+1)-1&(o&~(i&~l)))?0xc000095&a|1:a?2|a:0}0!==a&&(t=!0,sY(r,a))}else a=lB,0==(3&(a=ew(r,r===lN?a:0,null!==r.cancelPendingCommit||-1!==r.timeoutHandle)))||ej(r,a)||(t=!0,sY(r,a));r=r.next}while(t);sH=!1}}function sq(){sW()}function sW(){sI=sM=!1;var e,n=0;0===sF||((e=window.event)&&\"popstate\"===e.type?e===cm||(cm=e,0):(cm=null,1))||(n=sF);for(var t=er(),r=null,o=sD;null!==o;){var a=o.next,i=s$(o,t);0===i?(o.next=null,null===r?sD=a:r.next=a,null===a&&(sB=r)):(r=o,(0!==n||0!=(3&i))&&(sI=!0)),o=a}0!==l4&&5!==l4||sV(n,!1),0!==sF&&(sF=0)}function s$(e,n){for(var t=e.suspendedLanes,r=e.pingedLanes,o=e.expirationTimes,a=-0x3c00001&e.pendingLanes;0<a;){var i=31-eg(a),l=1<<i,s=o[i];-1===s?(0==(l&t)||0!=(l&r))&&(o[i]=function(e,n){switch(e){case 1:case 2:case 4:case 8:case 64:return n+250;case 16:case 32:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return n+5e3;default:return -1}}(l,n)):s<=n&&(e.expiredLanes|=l),a&=~l}if(n=lN,t=lB,t=ew(e,e===n?t:0,null!==e.cancelPendingCommit||-1!==e.timeoutHandle),r=e.callbackNode,0===t||e===n&&(2===lM||9===lM)||null!==e.cancelPendingCommit)return null!==r&&null!==r&&ee(r),e.callbackNode=null,e.callbackPriority=0;if(0==(3&t)||ej(e,t)){if((n=t&-t)===e.callbackPriority)return n;switch(null!==r&&ee(r),ez(t)){case 2:case 8:t=ei;break;case 32:default:t=el;break;case 0x10000000:t=ec}return t=J(t,r=sZ.bind(null,e)),e.callbackPriority=n,e.callbackNode=t,n}return null!==r&&null!==r&&ee(r),e.callbackPriority=2,e.callbackNode=null,2}function sZ(e,n){if(0!==l4&&5!==l4)return e.callbackNode=null,e.callbackPriority=0,null;var t=e.callbackNode;if(sS(!0)&&e.callbackNode!==t)return null;var r=lB;return 0===(r=ew(e,e===lN?r:0,null!==e.cancelPendingCommit||-1!==e.timeoutHandle))?null:(sa(e,r,n),s$(e,er()),null!=e.callbackNode&&e.callbackNode===t?sZ.bind(null,e):null)}function sY(e,n){if(sS())return null;sa(e,n,!0)}function sX(){if(0===sF){var e=r3;sF=0!==e?e:ek()}return sF}function sK(e){return null==e||\"symbol\"==typeof e||\"boolean\"==typeof e?null:\"function\"==typeof e?e:ng(\"\"+e)}function sQ(e,n){var t=n.ownerDocument.createElement(\"input\");return t.name=n.name,t.value=n.value,e.id&&t.setAttribute(\"form\",e.id),n.parentNode.insertBefore(t,n),e=new FormData(e),t.parentNode.removeChild(t),e}for(var sG=0;sG<tK.length;sG++){var sJ=tK[sG];tQ(sJ.toLowerCase(),\"on\"+(sJ[0].toUpperCase()+sJ.slice(1)))}tQ(tU,\"onAnimationEnd\"),tQ(tV,\"onAnimationIteration\"),tQ(tq,\"onAnimationStart\"),tQ(\"dblclick\",\"onDoubleClick\"),tQ(\"focusin\",\"onFocus\"),tQ(\"focusout\",\"onBlur\"),tQ(tW,\"onTransitionRun\"),tQ(t$,\"onTransitionStart\"),tQ(tZ,\"onTransitionCancel\"),tQ(tY,\"onTransitionEnd\"),eG(\"onMouseEnter\",[\"mouseout\",\"mouseover\"]),eG(\"onMouseLeave\",[\"mouseout\",\"mouseover\"]),eG(\"onPointerEnter\",[\"pointerout\",\"pointerover\"]),eG(\"onPointerLeave\",[\"pointerout\",\"pointerover\"]),eQ(\"onChange\",\"change click focusin focusout input keydown keyup selectionchange\".split(\" \")),eQ(\"onSelect\",\"focusout contextmenu dragend focusin keydown keyup mousedown mouseup selectionchange\".split(\" \")),eQ(\"onBeforeInput\",[\"compositionend\",\"keypress\",\"textInput\",\"paste\"]),eQ(\"onCompositionEnd\",\"compositionend focusout keydown keypress keyup mousedown\".split(\" \")),eQ(\"onCompositionStart\",\"compositionstart focusout keydown keypress keyup mousedown\".split(\" \")),eQ(\"onCompositionUpdate\",\"compositionupdate focusout keydown keypress keyup mousedown\".split(\" \"));var s0=\"abort canplay canplaythrough durationchange emptied encrypted ended error loadeddata loadedmetadata loadstart pause play playing progress ratechange resize seeked seeking stalled suspend timeupdate volumechange waiting\".split(\" \"),s1=new Set(\"beforetoggle cancel close invalid load scroll scrollend toggle\".split(\" \").concat(s0));function s2(e,n){n=0!=(4&n);for(var t=0;t<e.length;t++){var r=e[t],o=r.event;r=r.listeners;e:{var a=void 0;if(n)for(var i=r.length-1;0<=i;i--){var l=r[i],s=l.instance,c=l.currentTarget;if(l=l.listener,s!==a&&o.isPropagationStopped())break e;a=l,o.currentTarget=c;try{a(o)}catch(e){tG(e)}o.currentTarget=null,a=s}else for(i=0;i<r.length;i++){if(s=(l=r[i]).instance,c=l.currentTarget,l=l.listener,s!==a&&o.isPropagationStopped())break e;a=l,o.currentTarget=c;try{a(o)}catch(e){tG(e)}o.currentTarget=null,a=s}}}}function s4(e,n){var t=n[eM];void 0===t&&(t=n[eM]=new Set);var r=e+\"__bubble\";t.has(r)||(s9(n,e,2,!1),t.add(r))}function s5(e,n,t){var r=0;n&&(r|=4),s9(t,e,r,n)}var s3=\"_reactListening\"+Math.random().toString(36).slice(2);function s6(e){if(!e[s3]){e[s3]=!0,eX.forEach(function(n){\"selectionchange\"!==n&&(s1.has(n)||s5(n,!1,e),s5(n,!0,e))});var n=9===e.nodeType?e:e.ownerDocument;null===n||n[s3]||(n[s3]=!0,s5(\"selectionchange\",!1,n))}}function s9(e,n,t,r){switch(uu(n)){case 2:var o=uo;break;case 8:o=ua;break;default:o=ui}t=o.bind(null,n,t,e),o=void 0,nC&&(\"touchstart\"===n||\"touchmove\"===n||\"wheel\"===n)&&(o=!0),r?void 0!==o?e.addEventListener(n,t,{capture:!0,passive:o}):e.addEventListener(n,t,!0):void 0!==o?e.addEventListener(n,t,{passive:o}):e.addEventListener(n,t,!1)}function s8(e,n,t,r,o){var a=r;if(0==(1&n)&&0==(2&n)&&null!==r)e:for(;;){if(null===r)return;var i=r.tag;if(3===i||4===i){var l=r.stateNode.containerInfo;if(l===o)break;if(4===i)for(i=r.return;null!==i;){var c=i.tag;if((3===c||4===c)&&i.stateNode.containerInfo===o)return;i=i.return}for(;null!==l;){if(null===(i=eq(l)))return;if(5===(c=i.tag)||6===c||26===c||27===c){r=a=i;continue e}l=l.parentNode}}r=r.return}nk(function(){var r=a,o=nb(t),i=[];e:{var l=tX.get(e);if(void 0!==l){var c=nU,u=e;switch(e){case\"keypress\":if(0===nL(t))break e;case\"keydown\":case\"keyup\":c=n4;break;case\"focusin\":u=\"focus\",c=nY;break;case\"focusout\":u=\"blur\",c=nY;break;case\"beforeblur\":case\"afterblur\":c=nY;break;case\"click\":if(2===t.button)break e;case\"auxclick\":case\"dblclick\":case\"mousedown\":case\"mousemove\":case\"mouseup\":case\"mouseout\":case\"mouseover\":case\"contextmenu\":c=n$;break;case\"drag\":case\"dragend\":case\"dragenter\":case\"dragexit\":case\"dragleave\":case\"dragover\":case\"dragstart\":case\"drop\":c=nZ;break;case\"touchcancel\":case\"touchend\":case\"touchmove\":case\"touchstart\":c=n3;break;case tU:case tV:case tq:c=nX;break;case tY:c=n6;break;case\"scroll\":case\"scrollend\":c=nq;break;case\"wheel\":c=n9;break;case\"copy\":case\"cut\":case\"paste\":c=nK;break;case\"gotpointercapture\":case\"lostpointercapture\":case\"pointercancel\":case\"pointerdown\":case\"pointermove\":case\"pointerout\":case\"pointerover\":case\"pointerup\":c=n5;break;case\"toggle\":case\"beforetoggle\":c=n8}var d=0!=(4&n),f=!d&&(\"scroll\"===e||\"scrollend\"===e),p=d?null!==l?l+\"Capture\":null:l;d=[];for(var h,g=r;null!==g;){var m=g;if(h=m.stateNode,5!==(m=m.tag)&&26!==m&&27!==m||null===h||null===p||null!=(m=nA(g,p))&&d.push(s7(g,m,h)),f)break;g=g.return}0<d.length&&(l=new c(l,u,null,t,o),i.push({event:l,listeners:d}))}}if(0==(7&n)){if((l=\"mouseover\"===e||\"pointerover\"===e,c=\"mouseout\"===e||\"pointerout\"===e,!(l&&t!==nv&&(u=t.relatedTarget||t.fromElement)&&(eq(u)||u[eB])))&&(c||l)&&(l=o.window===o?o:(l=o.ownerDocument)?l.defaultView||l.parentWindow:window,c?(u=t.relatedTarget||t.toElement,c=r,null!==(u=u?eq(u):null)&&(f=s(u),d=u.tag,u!==f||5!==d&&27!==d&&6!==d)&&(u=null)):(c=null,u=r),c!==u)){if(d=n$,m=\"onMouseLeave\",p=\"onMouseEnter\",g=\"mouse\",(\"pointerout\"===e||\"pointerover\"===e)&&(d=n5,m=\"onPointerLeave\",p=\"onPointerEnter\",g=\"pointer\"),f=null==c?l:e$(c),h=null==u?l:e$(u),(l=new d(m,g+\"leave\",c,t,o)).target=f,l.relatedTarget=h,m=null,eq(o)===r&&((d=new d(p,g+\"enter\",u,t,o)).target=h,d.relatedTarget=f,m=d),f=m,c&&u)n:{for(d=cn,p=c,g=u,h=0,m=p;m;m=d(m))h++;m=0;for(var v,b=g;b;b=d(b))m++;for(;0<h-m;)p=d(p),h--;for(;0<m-h;)g=d(g),m--;for(;h--;){if(p===g||null!==g&&p===g.alternate){d=p;break n}p=d(p),g=d(g)}d=null}else d=null;null!==c&&ct(i,l,c,d,!1),null!==u&&null!==f&&ct(i,f,u,d,!0)}e:{if(\"select\"===(c=(l=r?e$(r):window).nodeName&&l.nodeName.toLowerCase())||\"input\"===c&&\"file\"===l.type)var y=tg;else if(tc(l))if(tm)y=tA;else{y=tj;var x=tw}else(c=l.nodeName)&&\"input\"===c.toLowerCase()&&(\"checkbox\"===l.type||\"radio\"===l.type)?y=tk:r&&nf(r.elementType)&&(y=tg);if(y&&(y=y(e,r))){tu(i,y,t,o);break e}x&&x(e,l,r),\"focusout\"===e&&r&&\"number\"===l.type&&null!=r.memoizedProps.value&&no(l,\"number\",l.value)}switch(x=r?e$(r):window,e){case\"focusin\":(tc(x)||\"true\"===x.contentEditable)&&(tL=x,tT=r,tR=null);break;case\"focusout\":tR=tT=tL=null;break;case\"mousedown\":tN=!0;break;case\"contextmenu\":case\"mouseup\":case\"dragend\":tN=!1,tD(i,t,o);break;case\"selectionchange\":if(tz)break;case\"keydown\":case\"keyup\":tD(i,t,o)}if(te)n:{switch(e){case\"compositionstart\":var w=\"onCompositionStart\";break n;case\"compositionend\":w=\"onCompositionEnd\";break n;case\"compositionupdate\":w=\"onCompositionUpdate\";break n}w=void 0}else tl?ta(e,t)&&(w=\"onCompositionEnd\"):\"keydown\"===e&&229===t.keyCode&&(w=\"onCompositionStart\");w&&(tr&&\"ko\"!==t.locale&&(tl||\"onCompositionStart\"!==w?\"onCompositionEnd\"===w&&tl&&(v=nz()):(n_=\"value\"in(nE=o)?nE.value:nE.textContent,tl=!0)),0<(x=ce(r,w)).length&&(w=new nQ(w,e,null,t,o),i.push({event:w,listeners:x}),v?w.data=v:null!==(v=ti(t))&&(w.data=v))),(v=tt?function(e,n){switch(e){case\"compositionend\":return ti(n);case\"keypress\":if(32!==n.which)return null;return to=!0,\" \";case\"textInput\":return\" \"===(e=n.data)&&to?null:e;default:return null}}(e,t):function(e,n){if(tl)return\"compositionend\"===e||!te&&ta(e,n)?(e=nz(),nP=n_=nE=null,tl=!1,e):null;switch(e){case\"paste\":default:return null;case\"keypress\":if(!(n.ctrlKey||n.altKey||n.metaKey)||n.ctrlKey&&n.altKey){if(n.char&&1<n.char.length)return n.char;if(n.which)return String.fromCharCode(n.which)}return null;case\"compositionend\":return tr&&\"ko\"!==n.locale?null:n.data}}(e,t))&&0<(w=ce(r,\"onBeforeInput\")).length&&(x=new nQ(\"onBeforeInput\",\"beforeinput\",null,t,o),i.push({event:x,listeners:w}),x.data=v);var j=e;if(\"submit\"===j&&r&&r.stateNode===o){var k=sK((o[eD]||null).action),A=t.submitter;A&&null!==(j=(j=A[eD]||null)?sK(j.formAction):A.getAttribute(\"formAction\"))&&(k=j,A=null);var O=new nU(\"action\",\"action\",null,t,o);i.push({event:O,listeners:[{instance:null,listener:function(){if(t.defaultPrevented){if(0!==sF){var e=A?sQ(o,A):new FormData(o);aK(r,{pending:!0,data:e,method:o.method,action:k},null,e)}}else\"function\"==typeof k&&(O.preventDefault(),aK(r,{pending:!0,data:e=A?sQ(o,A):new FormData(o),method:o.method,action:k},k,e))},currentTarget:o}]})}}s2(i,n)})}function s7(e,n,t){return{instance:e,listener:n,currentTarget:t}}function ce(e,n){for(var t=n+\"Capture\",r=[];null!==e;){var o=e,a=o.stateNode;if(5!==(o=o.tag)&&26!==o&&27!==o||null===a||(null!=(o=nA(e,t))&&r.unshift(s7(e,o,a)),null!=(o=nA(e,n))&&r.push(s7(e,o,a))),3===e.tag)return r;e=e.return}return[]}function cn(e){if(null===e)return null;do e=e.return;while(e&&5!==e.tag&&27!==e.tag);return e||null}function ct(e,n,t,r,o){for(var a=n._reactName,i=[];null!==t&&t!==r;){var l=t,s=l.alternate,c=l.stateNode;if(l=l.tag,null!==s&&s===r)break;5!==l&&26!==l&&27!==l||null===c||(s=c,o?null!=(c=nA(t,a))&&i.unshift(s7(t,c,s)):o||null!=(c=nA(t,a))&&i.push(s7(t,c,s))),t=t.return}0!==i.length&&e.push({event:n,listeners:i})}var cr=/\\r\\n?/g,co=/\\u0000|\\uFFFD/g;function ca(e){return(\"string\"==typeof e?e:\"\"+e).replace(cr,\"\\n\").replace(co,\"\")}function ci(e,n){return n=ca(n),ca(e)===n}function cl(e,n,t,r,o,a){switch(t){case\"children\":\"string\"==typeof r?\"body\"===n||\"textarea\"===n&&\"\"===r||ns(e,r):(\"number\"==typeof r||\"bigint\"==typeof r)&&\"body\"!==n&&ns(e,\"\"+r);break;case\"className\":e4(e,\"class\",r);break;case\"tabIndex\":e4(e,\"tabindex\",r);break;case\"dir\":case\"role\":case\"viewBox\":case\"width\":case\"height\":e4(e,t,r);break;case\"style\":nd(e,r,a);break;case\"data\":if(\"object\"!==n){e4(e,\"data\",r);break}case\"src\":case\"href\":if(\"\"===r&&(\"a\"!==n||\"href\"!==t)||null==r||\"function\"==typeof r||\"symbol\"==typeof r||\"boolean\"==typeof r){e.removeAttribute(t);break}r=ng(\"\"+r),e.setAttribute(t,r);break;case\"action\":case\"formAction\":if(\"function\"==typeof r){e.setAttribute(t,\"javascript:throw new Error('A React form was unexpectedly submitted. If you called form.submit() manually, consider using form.requestSubmit() instead. If you\\\\'re trying to use event.stopPropagation() in a submit event handler, consider also calling event.preventDefault().')\");break}if(\"function\"==typeof a&&(\"formAction\"===t?(\"input\"!==n&&cl(e,n,\"name\",o.name,o,null),cl(e,n,\"formEncType\",o.formEncType,o,null),cl(e,n,\"formMethod\",o.formMethod,o,null),cl(e,n,\"formTarget\",o.formTarget,o,null)):(cl(e,n,\"encType\",o.encType,o,null),cl(e,n,\"method\",o.method,o,null),cl(e,n,\"target\",o.target,o,null))),null==r||\"symbol\"==typeof r||\"boolean\"==typeof r){e.removeAttribute(t);break}r=ng(\"\"+r),e.setAttribute(t,r);break;case\"onClick\":null!=r&&(e.onclick=nm);break;case\"onScroll\":null!=r&&s4(\"scroll\",e);break;case\"onScrollEnd\":null!=r&&s4(\"scrollend\",e);break;case\"dangerouslySetInnerHTML\":if(null!=r){if(\"object\"!=typeof r||!(\"__html\"in r))throw Error(l(61));if(null!=(t=r.__html)){if(null!=o.children)throw Error(l(60));e.innerHTML=t}}break;case\"multiple\":e.multiple=r&&\"function\"!=typeof r&&\"symbol\"!=typeof r;break;case\"muted\":e.muted=r&&\"function\"!=typeof r&&\"symbol\"!=typeof r;break;case\"suppressContentEditableWarning\":case\"suppressHydrationWarning\":case\"defaultValue\":case\"defaultChecked\":case\"innerHTML\":case\"ref\":case\"autoFocus\":case\"innerText\":case\"textContent\":break;case\"xlinkHref\":if(null==r||\"function\"==typeof r||\"boolean\"==typeof r||\"symbol\"==typeof r){e.removeAttribute(\"xlink:href\");break}t=ng(\"\"+r),e.setAttributeNS(\"http://www.w3.org/1999/xlink\",\"xlink:href\",t);break;case\"contentEditable\":case\"spellCheck\":case\"draggable\":case\"value\":case\"autoReverse\":case\"externalResourcesRequired\":case\"focusable\":case\"preserveAlpha\":null!=r&&\"function\"!=typeof r&&\"symbol\"!=typeof r?e.setAttribute(t,\"\"+r):e.removeAttribute(t);break;case\"inert\":case\"allowFullScreen\":case\"async\":case\"autoPlay\":case\"controls\":case\"default\":case\"defer\":case\"disabled\":case\"disablePictureInPicture\":case\"disableRemotePlayback\":case\"formNoValidate\":case\"hidden\":case\"loop\":case\"noModule\":case\"noValidate\":case\"open\":case\"playsInline\":case\"readOnly\":case\"required\":case\"reversed\":case\"scoped\":case\"seamless\":case\"itemScope\":r&&\"function\"!=typeof r&&\"symbol\"!=typeof r?e.setAttribute(t,\"\"):e.removeAttribute(t);break;case\"capture\":case\"download\":!0===r?e.setAttribute(t,\"\"):!1!==r&&null!=r&&\"function\"!=typeof r&&\"symbol\"!=typeof r?e.setAttribute(t,r):e.removeAttribute(t);break;case\"cols\":case\"rows\":case\"size\":case\"span\":null!=r&&\"function\"!=typeof r&&\"symbol\"!=typeof r&&!isNaN(r)&&1<=r?e.setAttribute(t,r):e.removeAttribute(t);break;case\"rowSpan\":case\"start\":null==r||\"function\"==typeof r||\"symbol\"==typeof r||isNaN(r)?e.removeAttribute(t):e.setAttribute(t,r);break;case\"popover\":s4(\"beforetoggle\",e),s4(\"toggle\",e),e2(e,\"popover\",r);break;case\"xlinkActuate\":e5(e,\"http://www.w3.org/1999/xlink\",\"xlink:actuate\",r);break;case\"xlinkArcrole\":e5(e,\"http://www.w3.org/1999/xlink\",\"xlink:arcrole\",r);break;case\"xlinkRole\":e5(e,\"http://www.w3.org/1999/xlink\",\"xlink:role\",r);break;case\"xlinkShow\":e5(e,\"http://www.w3.org/1999/xlink\",\"xlink:show\",r);break;case\"xlinkTitle\":e5(e,\"http://www.w3.org/1999/xlink\",\"xlink:title\",r);break;case\"xlinkType\":e5(e,\"http://www.w3.org/1999/xlink\",\"xlink:type\",r);break;case\"xmlBase\":e5(e,\"http://www.w3.org/XML/1998/namespace\",\"xml:base\",r);break;case\"xmlLang\":e5(e,\"http://www.w3.org/XML/1998/namespace\",\"xml:lang\",r);break;case\"xmlSpace\":e5(e,\"http://www.w3.org/XML/1998/namespace\",\"xml:space\",r);break;case\"is\":e2(e,\"is\",r);break;default:2<t.length&&(\"o\"===t[0]||\"O\"===t[0])&&(\"n\"===t[1]||\"N\"===t[1])||e2(e,t=np.get(t)||t,r)}}function cs(e,n,t,r,o,a){switch(t){case\"style\":nd(e,r,a);break;case\"dangerouslySetInnerHTML\":if(null!=r){if(\"object\"!=typeof r||!(\"__html\"in r))throw Error(l(61));if(null!=(t=r.__html)){if(null!=o.children)throw Error(l(60));e.innerHTML=t}}break;case\"children\":\"string\"==typeof r?ns(e,r):(\"number\"==typeof r||\"bigint\"==typeof r)&&ns(e,\"\"+r);break;case\"onScroll\":null!=r&&s4(\"scroll\",e);break;case\"onScrollEnd\":null!=r&&s4(\"scrollend\",e);break;case\"onClick\":null!=r&&(e.onclick=nm);break;case\"suppressContentEditableWarning\":case\"suppressHydrationWarning\":case\"innerHTML\":case\"ref\":case\"innerText\":case\"textContent\":break;default:if(!eK.hasOwnProperty(t))e:{if(\"o\"===t[0]&&\"n\"===t[1]&&(o=t.endsWith(\"Capture\"),n=t.slice(2,o?t.length-7:void 0),\"function\"==typeof(a=null!=(a=e[eD]||null)?a[t]:null)&&e.removeEventListener(n,a,o),\"function\"==typeof r)){\"function\"!=typeof a&&null!==a&&(t in e?e[t]=null:e.hasAttribute(t)&&e.removeAttribute(t)),e.addEventListener(n,r,o);break e}t in e?e[t]=r:!0===r?e.setAttribute(t,\"\"):e2(e,t,r)}}}function cc(e,n,t){switch(n){case\"div\":case\"span\":case\"svg\":case\"path\":case\"a\":case\"g\":case\"p\":case\"li\":break;case\"img\":s4(\"error\",e),s4(\"load\",e);var r,o=!1,a=!1;for(r in t)if(t.hasOwnProperty(r)){var i=t[r];if(null!=i)switch(r){case\"src\":o=!0;break;case\"srcSet\":a=!0;break;case\"children\":case\"dangerouslySetInnerHTML\":throw Error(l(137,n));default:cl(e,n,r,i,t,null)}}a&&cl(e,n,\"srcSet\",t.srcSet,t,null),o&&cl(e,n,\"src\",t.src,t,null);return;case\"input\":s4(\"invalid\",e);var s=r=i=a=null,c=null,u=null;for(o in t)if(t.hasOwnProperty(o)){var d=t[o];if(null!=d)switch(o){case\"name\":a=d;break;case\"type\":i=d;break;case\"checked\":c=d;break;case\"defaultChecked\":u=d;break;case\"value\":r=d;break;case\"defaultValue\":s=d;break;case\"children\":case\"dangerouslySetInnerHTML\":if(null!=d)throw Error(l(137,n));break;default:cl(e,n,o,d,t,null)}}nr(e,r,s,c,u,i,a,!1);return;case\"select\":for(a in s4(\"invalid\",e),o=i=r=null,t)if(t.hasOwnProperty(a)&&null!=(s=t[a]))switch(a){case\"value\":r=s;break;case\"defaultValue\":i=s;break;case\"multiple\":o=s;default:cl(e,n,a,s,t,null)}n=r,t=i,e.multiple=!!o,null!=n?na(e,!!o,n,!1):null!=t&&na(e,!!o,t,!0);return;case\"textarea\":for(i in s4(\"invalid\",e),r=a=o=null,t)if(t.hasOwnProperty(i)&&null!=(s=t[i]))switch(i){case\"value\":o=s;break;case\"defaultValue\":a=s;break;case\"children\":r=s;break;case\"dangerouslySetInnerHTML\":if(null!=s)throw Error(l(91));break;default:cl(e,n,i,s,t,null)}nl(e,o,a,r);return;case\"option\":for(c in t)t.hasOwnProperty(c)&&null!=(o=t[c])&&(\"selected\"===c?e.selected=o&&\"function\"!=typeof o&&\"symbol\"!=typeof o:cl(e,n,c,o,t,null));return;case\"dialog\":s4(\"beforetoggle\",e),s4(\"toggle\",e),s4(\"cancel\",e),s4(\"close\",e);break;case\"iframe\":case\"object\":s4(\"load\",e);break;case\"video\":case\"audio\":for(o=0;o<s0.length;o++)s4(s0[o],e);break;case\"image\":s4(\"error\",e),s4(\"load\",e);break;case\"details\":s4(\"toggle\",e);break;case\"embed\":case\"source\":case\"link\":s4(\"error\",e),s4(\"load\",e);case\"area\":case\"base\":case\"br\":case\"col\":case\"hr\":case\"keygen\":case\"meta\":case\"param\":case\"track\":case\"wbr\":case\"menuitem\":for(u in t)if(t.hasOwnProperty(u)&&null!=(o=t[u]))switch(u){case\"children\":case\"dangerouslySetInnerHTML\":throw Error(l(137,n));default:cl(e,n,u,o,t,null)}return;default:if(nf(n)){for(d in t)t.hasOwnProperty(d)&&void 0!==(o=t[d])&&cs(e,n,d,o,t,void 0);return}}for(s in t)t.hasOwnProperty(s)&&null!=(o=t[s])&&cl(e,n,s,o,t,null)}var cu=null,cd=null;function cf(e){return 9===e.nodeType?e:e.ownerDocument}function cp(e){switch(e){case\"http://www.w3.org/2000/svg\":return 1;case\"http://www.w3.org/1998/Math/MathML\":return 2;default:return 0}}function ch(e,n){if(0===e)switch(n){case\"svg\":return 1;case\"math\":return 2;default:return 0}return 1===e&&\"foreignObject\"===n?0:e}function cg(e,n){return\"textarea\"===e||\"noscript\"===e||\"string\"==typeof n.children||\"number\"==typeof n.children||\"bigint\"==typeof n.children||\"object\"==typeof n.dangerouslySetInnerHTML&&null!==n.dangerouslySetInnerHTML&&null!=n.dangerouslySetInnerHTML.__html}var cm=null,cv=\"function\"==typeof setTimeout?setTimeout:void 0,cb=\"function\"==typeof clearTimeout?clearTimeout:void 0,cy=\"function\"==typeof Promise?Promise:void 0,cx=\"function\"==typeof queueMicrotask?queueMicrotask:void 0!==cy?function(e){return cy.resolve(null).then(e).catch(cw)}:cv;function cw(e){setTimeout(function(){throw e})}function cj(e){return\"head\"===e}function ck(e,n){var t=n,r=0;do{var o=t.nextSibling;if(e.removeChild(t),o&&8===o.nodeType)if(\"/$\"===(t=o.data)||\"/&\"===t){if(0===r){e.removeChild(o),uE(n);return}r--}else if(\"$\"===t||\"$?\"===t||\"$~\"===t||\"$!\"===t||\"&\"===t)r++;else if(\"html\"===t)cR(e.ownerDocument.documentElement);else if(\"head\"===t){cR(t=e.ownerDocument.head);for(var a=t.firstChild;a;){var i=a.nextSibling,l=a.nodeName;a[eU]||\"SCRIPT\"===l||\"STYLE\"===l||\"LINK\"===l&&\"stylesheet\"===a.rel.toLowerCase()||t.removeChild(a),a=i}}else\"body\"===t&&cR(e.ownerDocument.body);t=o}while(t);uE(n)}function cA(e,n){var t=e;e=0;do{var r=t.nextSibling;if(1===t.nodeType?n?(t._stashedDisplay=t.style.display,t.style.display=\"none\"):(t.style.display=t._stashedDisplay||\"\",\"\"===t.getAttribute(\"style\")&&t.removeAttribute(\"style\")):3===t.nodeType&&(n?(t._stashedText=t.nodeValue,t.nodeValue=\"\"):t.nodeValue=t._stashedText||\"\"),r&&8===r.nodeType)if(\"/$\"===(t=r.data))if(0===e)break;else e--;else\"$\"!==t&&\"$?\"!==t&&\"$~\"!==t&&\"$!\"!==t||e++;t=r}while(t)}function cO(e){var n=e.firstChild;for(n&&10===n.nodeType&&(n=n.nextSibling);n;){var t=n;switch(n=n.nextSibling,t.nodeName){case\"HTML\":case\"HEAD\":case\"BODY\":cO(t),eV(t);continue;case\"SCRIPT\":case\"STYLE\":continue;case\"LINK\":if(\"stylesheet\"===t.rel.toLowerCase())continue}e.removeChild(t)}}function cC(e,n){for(;8!==e.nodeType;)if(!n||null===(e=c_(e.nextSibling)))return null;return e}function cS(e){return\"$?\"===e.data||\"$~\"===e.data}function cE(e){return\"$!\"===e.data||\"$?\"===e.data&&\"loading\"!==e.ownerDocument.readyState}function c_(e){for(;null!=e;e=e.nextSibling){var n=e.nodeType;if(1===n||3===n)break;if(8===n){if(\"$\"===(n=e.data)||\"$!\"===n||\"$?\"===n||\"$~\"===n||\"&\"===n||\"F!\"===n||\"F\"===n)break;if(\"/$\"===n||\"/&\"===n)return null}}return e}var cP=null;function cz(e){e=e.nextSibling;for(var n=0;e;){if(8===e.nodeType){var t=e.data;if(\"/$\"===t||\"/&\"===t){if(0===n)return c_(e.nextSibling);n--}else\"$\"!==t&&\"$!\"!==t&&\"$?\"!==t&&\"$~\"!==t&&\"&\"!==t||n++}e=e.nextSibling}return null}function cL(e){e=e.previousSibling;for(var n=0;e;){if(8===e.nodeType){var t=e.data;if(\"$\"===t||\"$!\"===t||\"$?\"===t||\"$~\"===t||\"&\"===t){if(0===n)return e;n--}else\"/$\"!==t&&\"/&\"!==t||n++}e=e.previousSibling}return null}function cT(e,n,t){switch(n=cf(t),e){case\"html\":if(!(e=n.documentElement))throw Error(l(452));return e;case\"head\":if(!(e=n.head))throw Error(l(453));return e;case\"body\":if(!(e=n.body))throw Error(l(454));return e;default:throw Error(l(451))}}function cR(e){for(var n=e.attributes;n.length;)e.removeAttributeNode(n[0]);eV(e)}var cN=new Map,cD=new Set;function cB(e){return\"function\"==typeof e.getRootNode?e.getRootNode():9===e.nodeType?e:e.ownerDocument}var cM=T.d;T.d={f:function(){var e=cM.f(),n=ss();return e||n},r:function(e){var n=eW(e);null!==n&&5===n.tag&&\"form\"===n.type?aG(n):cM.r(e)},D:function(e){cM.D(e),cH(\"dns-prefetch\",e,null)},C:function(e,n){cM.C(e,n),cH(\"preconnect\",e,n)},L:function(e,n,t){if(cM.L(e,n,t),cI&&e&&n){var r='link[rel=\"preload\"][as=\"'+nn(n)+'\"]';\"image\"===n&&t&&t.imageSrcSet?(r+='[imagesrcset=\"'+nn(t.imageSrcSet)+'\"]',\"string\"==typeof t.imageSizes&&(r+='[imagesizes=\"'+nn(t.imageSizes)+'\"]')):r+='[href=\"'+nn(e)+'\"]';var o=r;switch(n){case\"style\":o=cU(e);break;case\"script\":o=cW(e)}cN.has(o)||(e=f({rel:\"preload\",href:\"image\"===n&&t&&t.imageSrcSet?void 0:e,as:n},t),cN.set(o,e),null!==cI.querySelector(r)||\"style\"===n&&cI.querySelector(cV(o))||\"script\"===n&&cI.querySelector(c$(o))||(cc(n=cI.createElement(\"link\"),\"link\",e),eY(n),cI.head.appendChild(n)))}},m:function(e,n){if(cM.m(e,n),cI&&e){var t=n&&\"string\"==typeof n.as?n.as:\"script\",r='link[rel=\"modulepreload\"][as=\"'+nn(t)+'\"][href=\"'+nn(e)+'\"]',o=r;switch(t){case\"audioworklet\":case\"paintworklet\":case\"serviceworker\":case\"sharedworker\":case\"worker\":case\"script\":o=cW(e)}if(!cN.has(o)&&(e=f({rel:\"modulepreload\",href:e},n),cN.set(o,e),null===cI.querySelector(r))){switch(t){case\"audioworklet\":case\"paintworklet\":case\"serviceworker\":case\"sharedworker\":case\"worker\":case\"script\":if(cI.querySelector(c$(o)))return}cc(t=cI.createElement(\"link\"),\"link\",e),eY(t),cI.head.appendChild(t)}}},X:function(e,n){if(cM.X(e,n),cI&&e){var t=eZ(cI).hoistableScripts,r=cW(e),o=t.get(r);o||((o=cI.querySelector(c$(r)))||(e=f({src:e,async:!0},n),(n=cN.get(r))&&cK(e,n),eY(o=cI.createElement(\"script\")),cc(o,\"link\",e),cI.head.appendChild(o)),o={type:\"script\",instance:o,count:1,state:null},t.set(r,o))}},S:function(e,n,t){if(cM.S(e,n,t),cI&&e){var r=eZ(cI).hoistableStyles,o=cU(e);n=n||\"default\";var a=r.get(o);if(!a){var i={loading:0,preload:null};if(a=cI.querySelector(cV(o)))i.loading=5;else{e=f({rel:\"stylesheet\",href:e,\"data-precedence\":n},t),(t=cN.get(o))&&cX(e,t);var l=a=cI.createElement(\"link\");eY(l),cc(l,\"link\",e),l._p=new Promise(function(e,n){l.onload=e,l.onerror=n}),l.addEventListener(\"load\",function(){i.loading|=1}),l.addEventListener(\"error\",function(){i.loading|=2}),i.loading|=4,cY(a,n,cI)}a={type:\"stylesheet\",instance:a,count:1,state:i},r.set(o,a)}}},M:function(e,n){if(cM.M(e,n),cI&&e){var t=eZ(cI).hoistableScripts,r=cW(e),o=t.get(r);o||((o=cI.querySelector(c$(r)))||(e=f({src:e,async:!0,type:\"module\"},n),(n=cN.get(r))&&cK(e,n),eY(o=cI.createElement(\"script\")),cc(o,\"link\",e),cI.head.appendChild(o)),o={type:\"script\",instance:o,count:1,state:null},t.set(r,o))}}};var cI=\"undefined\"==typeof document?null:document;function cH(e,n,t){if(cI&&\"string\"==typeof n&&n){var r=nn(n);r='link[rel=\"'+e+'\"][href=\"'+r+'\"]',\"string\"==typeof t&&(r+='[crossorigin=\"'+t+'\"]'),cD.has(r)||(cD.add(r),e={rel:e,crossOrigin:t,href:n},null===cI.querySelector(r)&&(cc(n=cI.createElement(\"link\"),\"link\",e),eY(n),cI.head.appendChild(n)))}}function cF(e,n,t,r){var o=(o=U.current)?cB(o):null;if(!o)throw Error(l(446));switch(e){case\"meta\":case\"title\":return null;case\"style\":return\"string\"==typeof t.precedence&&\"string\"==typeof t.href?(n=cU(t.href),(r=(t=eZ(o).hoistableStyles).get(n))||(r={type:\"style\",instance:null,count:0,state:null},t.set(n,r)),r):{type:\"void\",instance:null,count:0,state:null};case\"link\":if(\"stylesheet\"===t.rel&&\"string\"==typeof t.href&&\"string\"==typeof t.precedence){e=cU(t.href);var a,i,s,c,u=eZ(o).hoistableStyles,d=u.get(e);if(d||(o=o.ownerDocument||o,d={type:\"stylesheet\",instance:null,count:0,state:{loading:0,preload:null}},u.set(e,d),(u=o.querySelector(cV(e)))&&!u._p&&(d.instance=u,d.state.loading=5),cN.has(e)||(t={rel:\"preload\",as:\"style\",href:t.href,crossOrigin:t.crossOrigin,integrity:t.integrity,media:t.media,hrefLang:t.hrefLang,referrerPolicy:t.referrerPolicy},cN.set(e,t),u||(a=o,i=e,s=t,c=d.state,a.querySelector('link[rel=\"preload\"][as=\"style\"]['+i+\"]\")?c.loading=1:(c.preload=i=a.createElement(\"link\"),i.addEventListener(\"load\",function(){return c.loading|=1}),i.addEventListener(\"error\",function(){return c.loading|=2}),cc(i,\"link\",s),eY(i),a.head.appendChild(i))))),n&&null===r)throw Error(l(528,\"\"));return d}if(n&&null!==r)throw Error(l(529,\"\"));return null;case\"script\":return n=t.async,\"string\"==typeof(t=t.src)&&n&&\"function\"!=typeof n&&\"symbol\"!=typeof n?(n=cW(t),(r=(t=eZ(o).hoistableScripts).get(n))||(r={type:\"script\",instance:null,count:0,state:null},t.set(n,r)),r):{type:\"void\",instance:null,count:0,state:null};default:throw Error(l(444,e))}}function cU(e){return'href=\"'+nn(e)+'\"'}function cV(e){return'link[rel=\"stylesheet\"]['+e+\"]\"}function cq(e){return f({},e,{\"data-precedence\":e.precedence,precedence:null})}function cW(e){return'[src=\"'+nn(e)+'\"]'}function c$(e){return\"script[async]\"+e}function cZ(e,n,t){if(n.count++,null===n.instance)switch(n.type){case\"style\":var r=e.querySelector('style[data-href~=\"'+nn(t.href)+'\"]');if(r)return n.instance=r,eY(r),r;var o=f({},t,{\"data-href\":t.href,\"data-precedence\":t.precedence,href:null,precedence:null});return eY(r=(e.ownerDocument||e).createElement(\"style\")),cc(r,\"style\",o),cY(r,t.precedence,e),n.instance=r;case\"stylesheet\":o=cU(t.href);var a=e.querySelector(cV(o));if(a)return n.state.loading|=4,n.instance=a,eY(a),a;r=cq(t),(o=cN.get(o))&&cX(r,o),eY(a=(e.ownerDocument||e).createElement(\"link\"));var i=a;return i._p=new Promise(function(e,n){i.onload=e,i.onerror=n}),cc(a,\"link\",r),n.state.loading|=4,cY(a,t.precedence,e),n.instance=a;case\"script\":if(a=cW(t.src),o=e.querySelector(c$(a)))return n.instance=o,eY(o),o;return r=t,(o=cN.get(a))&&cK(r=f({},t),o),eY(o=(e=e.ownerDocument||e).createElement(\"script\")),cc(o,\"link\",r),e.head.appendChild(o),n.instance=o;case\"void\":return null;default:throw Error(l(443,n.type))}return\"stylesheet\"===n.type&&0==(4&n.state.loading)&&(r=n.instance,n.state.loading|=4,cY(r,t.precedence,e)),n.instance}function cY(e,n,t){for(var r=t.querySelectorAll('link[rel=\"stylesheet\"][data-precedence],style[data-precedence]'),o=r.length?r[r.length-1]:null,a=o,i=0;i<r.length;i++){var l=r[i];if(l.dataset.precedence===n)a=l;else if(a!==o)break}a?a.parentNode.insertBefore(e,a.nextSibling):(n=9===t.nodeType?t.head:t).insertBefore(e,n.firstChild)}function cX(e,n){null==e.crossOrigin&&(e.crossOrigin=n.crossOrigin),null==e.referrerPolicy&&(e.referrerPolicy=n.referrerPolicy),null==e.title&&(e.title=n.title)}function cK(e,n){null==e.crossOrigin&&(e.crossOrigin=n.crossOrigin),null==e.referrerPolicy&&(e.referrerPolicy=n.referrerPolicy),null==e.integrity&&(e.integrity=n.integrity)}var cQ=null;function cG(e,n,t){if(null===cQ){var r=new Map,o=cQ=new Map;o.set(t,r)}else(r=(o=cQ).get(t))||(r=new Map,o.set(t,r));if(r.has(e))return r;for(r.set(e,null),t=t.getElementsByTagName(e),o=0;o<t.length;o++){var a=t[o];if(!(a[eU]||a[eN]||\"link\"===e&&\"stylesheet\"===a.getAttribute(\"rel\"))&&\"http://www.w3.org/2000/svg\"!==a.namespaceURI){var i=a.getAttribute(n)||\"\";i=e+i;var l=r.get(i);l?l.push(a):r.set(i,[a])}}return r}function cJ(e,n,t){(e=e.ownerDocument||e).head.insertBefore(t,\"title\"===n?e.querySelector(\"head > title\"):null)}function c0(e){return\"stylesheet\"!==e.type||0!=(3&e.state.loading)}var c1=null;function c2(){if(this.count--,0===this.count){if(this.stylesheets)c5(this,this.stylesheets);else if(this.unsuspend){var e=this.unsuspend;this.unsuspend=null,e()}}}var c4=null;function c5(e,n){e.stylesheets=null,null!==e.unsuspend&&(e.count++,c4=new Map,n.forEach(c3,e),c4=null,c2.call(e))}function c3(e,n){if(!(4&n.state.loading)){var t=c4.get(e);if(t)var r=t.get(null);else{t=new Map,c4.set(e,t);for(var o=e.querySelectorAll(\"link[data-precedence],style[data-precedence]\"),a=0;a<o.length;a++){var i=o[a];(\"LINK\"===i.nodeName||\"not all\"!==i.getAttribute(\"media\"))&&(t.set(i.dataset.precedence,i),r=i)}r&&t.set(null,r)}i=(o=n.instance).getAttribute(\"data-precedence\"),(a=t.get(i)||r)===r&&t.set(null,o),t.set(i,o),this.count++,r=c2.bind(this),o.addEventListener(\"load\",r),o.addEventListener(\"error\",r),a?a.parentNode.insertBefore(o,a.nextSibling):(e=9===e.nodeType?e.head:e).insertBefore(o,e.firstChild),n.state.loading|=4}}var c6={$$typeof:x,Provider:null,Consumer:null,_currentValue:R,_currentValue2:R,_threadCount:0};function c9(e,n,t,r,o,a,i,l,s){this.tag=1,this.containerInfo=e,this.pingCache=this.current=this.pendingChildren=null,this.timeoutHandle=-1,this.callbackNode=this.next=this.pendingContext=this.context=this.cancelPendingCommit=null,this.callbackPriority=0,this.expirationTimes=eO(-1),this.entangledLanes=this.shellSuspendCounter=this.errorRecoveryDisabledLanes=this.expiredLanes=this.warmLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0,this.entanglements=eO(0),this.hiddenUpdates=eO(null),this.identifierPrefix=r,this.onUncaughtError=o,this.onCaughtError=a,this.onRecoverableError=i,this.pooledCache=null,this.pooledCacheLanes=0,this.formState=s,this.incompleteTransitions=new Map}function c8(e,n,t,r,o,a){o=o?t8:t8,null===r.context?r.context=o:r.pendingContext=o,(r=oA(n)).payload={element:t},null!==(a=void 0===a?null:a)&&(r.callback=a),null!==(t=oO(e,r,n))&&(so(t,e,n),oC(t,e,n))}function c7(e,n){if(null!==(e=e.memoizedState)&&null!==e.dehydrated){var t=e.retryLane;e.retryLane=0!==t&&t<n?t:n}}function ue(e,n){c7(e,n),(e=e.alternate)&&c7(e,n)}function un(e){if(13===e.tag||31===e.tag){var n=t3(e,0x4000000);null!==n&&so(n,e,0x4000000),ue(e,0x4000000)}}function ut(e){if(13===e.tag||31===e.tag){var n=st(),t=t3(e,n=eP(n));null!==t&&so(t,e,n),ue(e,n)}}var ur=!0;function uo(e,n,t,r){var o=L.T;L.T=null;var a=T.p;try{T.p=2,ui(e,n,t,r)}finally{T.p=a,L.T=o}}function ua(e,n,t,r){var o=L.T;L.T=null;var a=T.p;try{T.p=8,ui(e,n,t,r)}finally{T.p=a,L.T=o}}function ui(e,n,t,r){if(ur){var o=ul(r);if(null===o)s8(e,n,r,us,t),uy(e,r);else if(function(e,n,t,r,o){switch(n){case\"focusin\":return uf=ux(uf,e,n,t,r,o),!0;case\"dragenter\":return up=ux(up,e,n,t,r,o),!0;case\"mouseover\":return uh=ux(uh,e,n,t,r,o),!0;case\"pointerover\":var a=o.pointerId;return ug.set(a,ux(ug.get(a)||null,e,n,t,r,o)),!0;case\"gotpointercapture\":return a=o.pointerId,um.set(a,ux(um.get(a)||null,e,n,t,r,o)),!0}return!1}(o,e,n,t,r))r.stopPropagation();else if(uy(e,r),4&n&&-1<ub.indexOf(e)){for(;null!==o;){var a=eW(o);if(null!==a)switch(a.tag){case 3:if((a=a.stateNode).current.memoizedState.isDehydrated){var i=ex(a.pendingLanes);if(0!==i){var l=a;for(l.pendingLanes|=2,l.entangledLanes|=2;i;){var s=1<<31-eg(i);l.entanglements[1]|=s,i&=~s}sU(a),0==(6&lR)&&(l0=er()+500,sV(0,!1))}}break;case 31:case 13:null!==(l=t3(a,2))&&so(l,a,2),ss(),ue(a,2)}if(null===(a=ul(r))&&s8(e,n,r,us,t),a===o)break;o=a}null!==o&&r.stopPropagation()}else s8(e,n,r,null,t)}}function ul(e){return uc(e=nb(e))}var us=null;function uc(e){if(us=null,null!==(e=eq(e))){var n=s(e);if(null===n)e=null;else{var t=n.tag;if(13===t){if(null!==(e=c(n)))return e;e=null}else if(31===t){if(null!==(e=u(n)))return e;e=null}else if(3===t){if(n.stateNode.current.memoizedState.isDehydrated)return 3===n.tag?n.stateNode.containerInfo:null;e=null}else n!==e&&(e=null)}}return us=e,null}function uu(e){switch(e){case\"beforetoggle\":case\"cancel\":case\"click\":case\"close\":case\"contextmenu\":case\"copy\":case\"cut\":case\"auxclick\":case\"dblclick\":case\"dragend\":case\"dragstart\":case\"drop\":case\"focusin\":case\"focusout\":case\"input\":case\"invalid\":case\"keydown\":case\"keypress\":case\"keyup\":case\"mousedown\":case\"mouseup\":case\"paste\":case\"pause\":case\"play\":case\"pointercancel\":case\"pointerdown\":case\"pointerup\":case\"ratechange\":case\"reset\":case\"resize\":case\"seeked\":case\"submit\":case\"toggle\":case\"touchcancel\":case\"touchend\":case\"touchstart\":case\"volumechange\":case\"change\":case\"selectionchange\":case\"textInput\":case\"compositionstart\":case\"compositionend\":case\"compositionupdate\":case\"beforeblur\":case\"afterblur\":case\"beforeinput\":case\"blur\":case\"fullscreenchange\":case\"focus\":case\"hashchange\":case\"popstate\":case\"select\":case\"selectstart\":return 2;case\"drag\":case\"dragenter\":case\"dragexit\":case\"dragleave\":case\"dragover\":case\"mousemove\":case\"mouseout\":case\"mouseover\":case\"pointermove\":case\"pointerout\":case\"pointerover\":case\"scroll\":case\"touchmove\":case\"wheel\":case\"mouseenter\":case\"mouseleave\":case\"pointerenter\":case\"pointerleave\":return 8;case\"message\":switch(eo()){case ea:return 2;case ei:return 8;case el:case es:return 32;case ec:return 0x10000000;default:return 32}default:return 32}}var ud=!1,uf=null,up=null,uh=null,ug=new Map,um=new Map,uv=[],ub=\"mousedown mouseup touchcancel touchend touchstart auxclick dblclick pointercancel pointerdown pointerup dragend dragstart drop compositionend compositionstart keydown keypress keyup input textInput copy cut paste click change contextmenu reset\".split(\" \");function uy(e,n){switch(e){case\"focusin\":case\"focusout\":uf=null;break;case\"dragenter\":case\"dragleave\":up=null;break;case\"mouseover\":case\"mouseout\":uh=null;break;case\"pointerover\":case\"pointerout\":ug.delete(n.pointerId);break;case\"gotpointercapture\":case\"lostpointercapture\":um.delete(n.pointerId)}}function ux(e,n,t,r,o,a){return null===e||e.nativeEvent!==a?(e={blockedOn:n,domEventName:t,eventSystemFlags:r,nativeEvent:a,targetContainers:[o]},null!==n&&null!==(n=eW(n))&&un(n)):(e.eventSystemFlags|=r,n=e.targetContainers,null!==o&&-1===n.indexOf(o)&&n.push(o)),e}function uw(e){var n=eq(e.target);if(null!==n){var t=s(n);if(null!==t){if(13===(n=t.tag)){if(null!==(n=c(t))){e.blockedOn=n,eT(e.priority,function(){ut(t)});return}}else if(31===n){if(null!==(n=u(t))){e.blockedOn=n,eT(e.priority,function(){ut(t)});return}}else if(3===n&&t.stateNode.current.memoizedState.isDehydrated){e.blockedOn=3===t.tag?t.stateNode.containerInfo:null;return}}}e.blockedOn=null}function uj(e){if(null!==e.blockedOn)return!1;for(var n=e.targetContainers;0<n.length;){var t=ul(e.nativeEvent);if(null!==t)return null!==(n=eW(t))&&un(n),e.blockedOn=t,!1;var r=new(t=e.nativeEvent).constructor(t.type,t);nv=r,t.target.dispatchEvent(r),nv=null,n.shift()}return!0}function uk(e,n,t){uj(e)&&t.delete(n)}function uA(){ud=!1,null!==uf&&uj(uf)&&(uf=null),null!==up&&uj(up)&&(up=null),null!==uh&&uj(uh)&&(uh=null),ug.forEach(uk),um.forEach(uk)}function uO(e,n){e.blockedOn===n&&(e.blockedOn=null,ud||(ud=!0,o.unstable_scheduleCallback(o.unstable_NormalPriority,uA)))}var uC=null;function uS(e){uC!==e&&(uC=e,o.unstable_scheduleCallback(o.unstable_NormalPriority,function(){uC===e&&(uC=null);for(var n=0;n<e.length;n+=3){var t=e[n],r=e[n+1],o=e[n+2];if(\"function\"!=typeof r)if(null===uc(r||t))continue;else break;var a=eW(t);null!==a&&(e.splice(n,3),n-=3,aK(a,{pending:!0,data:o,method:t.method,action:r},r,o))}}))}function uE(e){function n(n){return uO(n,e)}null!==uf&&uO(uf,e),null!==up&&uO(up,e),null!==uh&&uO(uh,e),ug.forEach(n),um.forEach(n);for(var t=0;t<uv.length;t++){var r=uv[t];r.blockedOn===e&&(r.blockedOn=null)}for(;0<uv.length&&null===(t=uv[0]).blockedOn;)uw(t),null===t.blockedOn&&uv.shift();if(null!=(t=(e.ownerDocument||e).$$reactFormReplay))for(r=0;r<t.length;r+=3){var o=t[r],a=t[r+1],i=o[eD]||null;if(\"function\"==typeof a)i||uS(t);else if(i){var l=null;if(a&&a.hasAttribute(\"formAction\")){if(o=a,i=a[eD]||null)l=i.formAction;else if(null!==uc(o))continue}else l=i.action;\"function\"==typeof l?t[r+1]=l:(t.splice(r,3),r-=3),uS(t)}}}function u_(){function e(e){e.canIntercept&&\"react-transition\"===e.info&&e.intercept({handler:function(){return new Promise(function(e){return o=e})},focusReset:\"manual\",scroll:\"manual\"})}function n(){null!==o&&(o(),o=null),r||setTimeout(t,20)}function t(){if(!r&&!navigation.transition){var e=navigation.currentEntry;e&&null!=e.url&&navigation.navigate(e.url,{state:e.getState(),info:\"react-transition\",history:\"replace\"})}}if(\"object\"==typeof navigation){var r=!1,o=null;return navigation.addEventListener(\"navigate\",e),navigation.addEventListener(\"navigatesuccess\",n),navigation.addEventListener(\"navigateerror\",n),setTimeout(t,100),function(){r=!0,navigation.removeEventListener(\"navigate\",e),navigation.removeEventListener(\"navigatesuccess\",n),navigation.removeEventListener(\"navigateerror\",n),null!==o&&(o(),o=null)}}}function uP(e){this._internalRoot=e}function uz(e){this._internalRoot=e}uz.prototype.render=uP.prototype.render=function(e){var n=this._internalRoot;if(null===n)throw Error(l(409));c8(n.current,st(),e,n,null,null)},uz.prototype.unmount=uP.prototype.unmount=function(){var e=this._internalRoot;if(null!==e){this._internalRoot=null;var n=e.containerInfo;c8(e.current,2,null,e,null,null),ss(),n[eB]=null}},uz.prototype.unstable_scheduleHydration=function(e){if(e){var n=eL();e={blockedOn:null,target:e,priority:n};for(var t=0;t<uv.length&&0!==n&&n<uv[t].priority;t++);uv.splice(t,0,e),0===t&&uw(e)}};var uL=a.version;if(\"19.2.0-canary-97cdd5d3-20250710\"!==uL)throw Error(l(527,uL,\"19.2.0-canary-97cdd5d3-20250710\"));if(T.findDOMNode=function(e){var n=e._reactInternals;if(void 0===n){if(\"function\"==typeof e.render)throw Error(l(188));throw Error(l(268,e=Object.keys(e).join(\",\")))}return e=null===(e=null!==(e=function(e){var n=e.alternate;if(!n){if(null===(n=s(e)))throw Error(l(188));return n!==e?null:e}for(var t=e,r=n;;){var o=t.return;if(null===o)break;var a=o.alternate;if(null===a){if(null!==(r=o.return)){t=r;continue}break}if(o.child===a.child){for(a=o.child;a;){if(a===t)return d(o),e;if(a===r)return d(o),n;a=a.sibling}throw Error(l(188))}if(t.return!==r.return)t=o,r=a;else{for(var i=!1,c=o.child;c;){if(c===t){i=!0,t=o,r=a;break}if(c===r){i=!0,r=o,t=a;break}c=c.sibling}if(!i){for(c=a.child;c;){if(c===t){i=!0,t=a,r=o;break}if(c===r){i=!0,r=a,t=o;break}c=c.sibling}if(!i)throw Error(l(189))}}if(t.alternate!==r)throw Error(l(190))}if(3!==t.tag)throw Error(l(188));return t.stateNode.current===t?e:n}(n))?function e(n){var t=n.tag;if(5===t||26===t||27===t||6===t)return n;for(n=n.child;null!==n;){if(null!==(t=e(n)))return t;n=n.sibling}return null}(e):null)?null:e.stateNode},\"undefined\"!=typeof __REACT_DEVTOOLS_GLOBAL_HOOK__){var uT=__REACT_DEVTOOLS_GLOBAL_HOOK__;if(!uT.isDisabled&&uT.supportsFiber)try{ef=uT.inject({bundleType:0,version:\"19.2.0-canary-97cdd5d3-20250710\",rendererPackageName:\"react-dom\",currentDispatcherRef:L,reconcilerVersion:\"19.2.0-canary-97cdd5d3-20250710\"}),ep=uT}catch(e){}}n.createRoot=function(e,n){if(!(t=e)||1!==t.nodeType&&9!==t.nodeType&&11!==t.nodeType)throw Error(l(299));var t,r,o,a,i,s,c,u,d=!1,f=\"\",p=iu,h=id,g=ip;return null!=n&&(!0===n.unstable_strictMode&&(d=!0),void 0!==n.identifierPrefix&&(f=n.identifierPrefix),void 0!==n.onUncaughtError&&(p=n.onUncaughtError),void 0!==n.onCaughtError&&(h=n.onCaughtError),void 0!==n.onRecoverableError&&(g=n.onRecoverableError)),r=e,o=1,a=!1,i=null,s=0,c=d,u=null,r=new c9(r,o,a,f,p,h,g,u_,null),o=1,!0===c&&(o|=24),c=re(3,null,null,o),r.current=c,c.stateNode=r,o=r1(),o.refCount++,r.pooledCache=o,o.refCount++,c.memoizedState={element:null,isDehydrated:a,cache:o},oj(c),n=r,e[eB]=n.current,s6(e),new uP(n)}},\"./dist/compiled/react-dom/cjs/react-dom.production.js\":function(e,n,t){\"use strict\";var r=t(\"./dist/compiled/react/index.js\");function o(e){var n=\"https://react.dev/errors/\"+e;if(1<arguments.length){n+=\"?args[]=\"+encodeURIComponent(arguments[1]);for(var t=2;t<arguments.length;t++)n+=\"&args[]=\"+encodeURIComponent(arguments[t])}return\"Minified React error #\"+e+\"; visit \"+n+\" for the full message or use the non-minified dev environment for full errors and additional helpful warnings.\"}function a(){}var i={d:{f:a,r:function(){throw Error(o(522))},D:a,C:a,L:a,m:a,X:a,S:a,M:a},p:0,findDOMNode:null},l=Symbol.for(\"react.portal\"),s=r.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE;function c(e,n){return\"font\"===e?\"\":\"string\"==typeof n?\"use-credentials\"===n?n:\"\":void 0}n.__DOM_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE=i,n.createPortal=function(e,n){var t=2<arguments.length&&void 0!==arguments[2]?arguments[2]:null;if(!n||1!==n.nodeType&&9!==n.nodeType&&11!==n.nodeType)throw Error(o(299));return function(e,n,t){var r=3<arguments.length&&void 0!==arguments[3]?arguments[3]:null;return{$$typeof:l,key:null==r?null:\"\"+r,children:e,containerInfo:n,implementation:t}}(e,n,null,t)},n.flushSync=function(e){var n=s.T,t=i.p;try{if(s.T=null,i.p=2,e)return e()}finally{s.T=n,i.p=t,i.d.f()}},n.preconnect=function(e,n){\"string\"==typeof e&&(n=n?\"string\"==typeof(n=n.crossOrigin)?\"use-credentials\"===n?n:\"\":void 0:null,i.d.C(e,n))},n.prefetchDNS=function(e){\"string\"==typeof e&&i.d.D(e)},n.preinit=function(e,n){if(\"string\"==typeof e&&n&&\"string\"==typeof n.as){var t=n.as,r=c(t,n.crossOrigin),o=\"string\"==typeof n.integrity?n.integrity:void 0,a=\"string\"==typeof n.fetchPriority?n.fetchPriority:void 0;\"style\"===t?i.d.S(e,\"string\"==typeof n.precedence?n.precedence:void 0,{crossOrigin:r,integrity:o,fetchPriority:a}):\"script\"===t&&i.d.X(e,{crossOrigin:r,integrity:o,fetchPriority:a,nonce:\"string\"==typeof n.nonce?n.nonce:void 0})}},n.preinitModule=function(e,n){if(\"string\"==typeof e)if(\"object\"==typeof n&&null!==n){if(null==n.as||\"script\"===n.as){var t=c(n.as,n.crossOrigin);i.d.M(e,{crossOrigin:t,integrity:\"string\"==typeof n.integrity?n.integrity:void 0,nonce:\"string\"==typeof n.nonce?n.nonce:void 0})}}else null==n&&i.d.M(e)},n.preload=function(e,n){if(\"string\"==typeof e&&\"object\"==typeof n&&null!==n&&\"string\"==typeof n.as){var t=n.as,r=c(t,n.crossOrigin);i.d.L(e,t,{crossOrigin:r,integrity:\"string\"==typeof n.integrity?n.integrity:void 0,nonce:\"string\"==typeof n.nonce?n.nonce:void 0,type:\"string\"==typeof n.type?n.type:void 0,fetchPriority:\"string\"==typeof n.fetchPriority?n.fetchPriority:void 0,referrerPolicy:\"string\"==typeof n.referrerPolicy?n.referrerPolicy:void 0,imageSrcSet:\"string\"==typeof n.imageSrcSet?n.imageSrcSet:void 0,imageSizes:\"string\"==typeof n.imageSizes?n.imageSizes:void 0,media:\"string\"==typeof n.media?n.media:void 0})}},n.preloadModule=function(e,n){if(\"string\"==typeof e)if(n){var t=c(n.as,n.crossOrigin);i.d.m(e,{as:\"string\"==typeof n.as&&\"script\"!==n.as?n.as:void 0,crossOrigin:t,integrity:\"string\"==typeof n.integrity?n.integrity:void 0})}else i.d.m(e)},n.requestFormReset=function(e){i.d.r(e)},n.unstable_batchedUpdates=function(e,n){return e(n)},n.useFormState=function(e,n,t){return s.H.useFormState(e,n,t)},n.useFormStatus=function(){return s.H.useHostTransitionStatus()},n.version=\"19.2.0-canary-97cdd5d3-20250710\"},\"./dist/compiled/react-dom/client.js\":function(e,n,t){\"use strict\";!function e(){if(\"undefined\"!=typeof __REACT_DEVTOOLS_GLOBAL_HOOK__&&\"function\"==typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE)try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(e)}catch(e){console.error(e)}}(),e.exports=t(\"./dist/compiled/react-dom/cjs/react-dom-client.production.js\")},\"./dist/compiled/react-dom/index.js\":function(e,n,t){\"use strict\";!function e(){if(\"undefined\"!=typeof __REACT_DEVTOOLS_GLOBAL_HOOK__&&\"function\"==typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE)try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(e)}catch(e){console.error(e)}}(),e.exports=t(\"./dist/compiled/react-dom/cjs/react-dom.production.js\")},\"./dist/compiled/react/cjs/react-jsx-runtime.production.js\":function(e,n){\"use strict\";var t=Symbol.for(\"react.transitional.element\");function r(e,n,r){var o=null;if(void 0!==r&&(o=\"\"+r),void 0!==n.key&&(o=\"\"+n.key),\"key\"in n)for(var a in r={},n)\"key\"!==a&&(r[a]=n[a]);else r=n;return{$$typeof:t,type:e,key:o,ref:void 0!==(n=r.ref)?n:null,props:r}}n.Fragment=Symbol.for(\"react.fragment\"),n.jsx=r,n.jsxs=r},\"./dist/compiled/react/cjs/react.production.js\":function(e,n){\"use strict\";var t=Symbol.for(\"react.transitional.element\"),r=Symbol.for(\"react.portal\"),o=Symbol.for(\"react.fragment\"),a=Symbol.for(\"react.strict_mode\"),i=Symbol.for(\"react.profiler\"),l=Symbol.for(\"react.consumer\"),s=Symbol.for(\"react.context\"),c=Symbol.for(\"react.forward_ref\"),u=Symbol.for(\"react.suspense\"),d=Symbol.for(\"react.memo\"),f=Symbol.for(\"react.lazy\"),p=Symbol.iterator,h={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},g=Object.assign,m={};function v(e,n,t){this.props=e,this.context=n,this.refs=m,this.updater=t||h}function b(){}function y(e,n,t){this.props=e,this.context=n,this.refs=m,this.updater=t||h}v.prototype.isReactComponent={},v.prototype.setState=function(e,n){if(\"object\"!=typeof e&&\"function\"!=typeof e&&null!=e)throw Error(\"takes an object of state variables to update or a function which returns an object of state variables.\");this.updater.enqueueSetState(this,e,n,\"setState\")},v.prototype.forceUpdate=function(e){this.updater.enqueueForceUpdate(this,e,\"forceUpdate\")},b.prototype=v.prototype;var x=y.prototype=new b;x.constructor=y,g(x,v.prototype),x.isPureReactComponent=!0;var w=Array.isArray;function j(){}var k={H:null,A:null,T:null,S:null},A=Object.prototype.hasOwnProperty;function O(e,n,r,o,a,i){return{$$typeof:t,type:e,key:n,ref:void 0!==(r=i.ref)?r:null,props:i}}function C(e){return\"object\"==typeof e&&null!==e&&e.$$typeof===t}var S=/\\/+/g;function E(e,n){var t,r;return\"object\"==typeof e&&null!==e&&null!=e.key?(t=\"\"+e.key,r={\"=\":\"=0\",\":\":\"=2\"},\"$\"+t.replace(/[=:]/g,function(e){return r[e]})):n.toString(36)}function _(e,n,o){if(null==e)return e;var a=[],i=0;return!function e(n,o,a,i,l){var s,c,u,d=typeof n;(\"undefined\"===d||\"boolean\"===d)&&(n=null);var h=!1;if(null===n)h=!0;else switch(d){case\"bigint\":case\"string\":case\"number\":h=!0;break;case\"object\":switch(n.$$typeof){case t:case r:h=!0;break;case f:return e((h=n._init)(n._payload),o,a,i,l)}}if(h)return l=l(n),h=\"\"===i?\".\"+E(n,0):i,w(l)?(a=\"\",null!=h&&(a=h.replace(S,\"$&/\")+\"/\"),e(l,o,a,\"\",function(e){return e})):null!=l&&(C(l)&&(s=l,c=a+(null==l.key||n&&n.key===l.key?\"\":(\"\"+l.key).replace(S,\"$&/\")+\"/\")+h,l=O(s.type,c,void 0,void 0,void 0,s.props)),o.push(l)),1;h=0;var g=\"\"===i?\".\":i+\":\";if(w(n))for(var m=0;m<n.length;m++)d=g+E(i=n[m],m),h+=e(i,o,a,d,l);else if(\"function\"==typeof(m=null===(u=n)||\"object\"!=typeof u?null:\"function\"==typeof(u=p&&u[p]||u[\"@@iterator\"])?u:null))for(n=m.call(n),m=0;!(i=n.next()).done;)d=g+E(i=i.value,m++),h+=e(i,o,a,d,l);else if(\"object\"===d){if(\"function\"==typeof n.then)return e(function(e){switch(e.status){case\"fulfilled\":return e.value;case\"rejected\":throw e.reason;default:switch(\"string\"==typeof e.status?e.then(j,j):(e.status=\"pending\",e.then(function(n){\"pending\"===e.status&&(e.status=\"fulfilled\",e.value=n)},function(n){\"pending\"===e.status&&(e.status=\"rejected\",e.reason=n)})),e.status){case\"fulfilled\":return e.value;case\"rejected\":throw e.reason}}throw e}(n),o,a,i,l);throw Error(\"Objects are not valid as a React child (found: \"+(\"[object Object]\"===(o=String(n))?\"object with keys {\"+Object.keys(n).join(\", \")+\"}\":o)+\"). If you meant to render a collection of children, use an array instead.\")}return h}(e,a,\"\",\"\",function(e){return n.call(o,e,i++)}),a}function P(e){if(-1===e._status){var n=e._result;(n=n()).then(function(n){(0===e._status||-1===e._status)&&(e._status=1,e._result=n)},function(n){(0===e._status||-1===e._status)&&(e._status=2,e._result=n)}),-1===e._status&&(e._status=0,e._result=n)}if(1===e._status)return e._result.default;throw e._result}var z=\"function\"==typeof reportError?reportError:function(e){if(\"object\"==typeof window&&\"function\"==typeof window.ErrorEvent){var n=new window.ErrorEvent(\"error\",{bubbles:!0,cancelable:!0,message:\"object\"==typeof e&&null!==e&&\"string\"==typeof e.message?String(e.message):String(e),error:e});if(!window.dispatchEvent(n))return}else if(\"object\"==typeof process&&\"function\"==typeof process.emit)return void process.emit(\"uncaughtException\",e);console.error(e)};n.Children={map:_,forEach:function(e,n,t){_(e,function(){n.apply(this,arguments)},t)},count:function(e){var n=0;return _(e,function(){n++}),n},toArray:function(e){return _(e,function(e){return e})||[]},only:function(e){if(!C(e))throw Error(\"React.Children.only expected to receive a single React element child.\");return e}},n.Component=v,n.Fragment=o,n.Profiler=i,n.PureComponent=y,n.StrictMode=a,n.Suspense=u,n.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE=k,n.__COMPILER_RUNTIME={__proto__:null,c:function(e){return k.H.useMemoCache(e)}},n.cache=function(e){return function(){return e.apply(null,arguments)}},n.cacheSignal=function(){return null},n.cloneElement=function(e,n,t){if(null==e)throw Error(\"The argument must be a React element, but you passed \"+e+\".\");var r=g({},e.props),o=e.key,a=void 0;if(null!=n)for(i in void 0!==n.ref&&(a=void 0),void 0!==n.key&&(o=\"\"+n.key),n)A.call(n,i)&&\"key\"!==i&&\"__self\"!==i&&\"__source\"!==i&&(\"ref\"!==i||void 0!==n.ref)&&(r[i]=n[i]);var i=arguments.length-2;if(1===i)r.children=t;else if(1<i){for(var l=Array(i),s=0;s<i;s++)l[s]=arguments[s+2];r.children=l}return O(e.type,o,void 0,void 0,a,r)},n.createContext=function(e){return(e={$$typeof:s,_currentValue:e,_currentValue2:e,_threadCount:0,Provider:null,Consumer:null}).Provider=e,e.Consumer={$$typeof:l,_context:e},e},n.createElement=function(e,n,t){var r,o={},a=null;if(null!=n)for(r in void 0!==n.key&&(a=\"\"+n.key),n)A.call(n,r)&&\"key\"!==r&&\"__self\"!==r&&\"__source\"!==r&&(o[r]=n[r]);var i=arguments.length-2;if(1===i)o.children=t;else if(1<i){for(var l=Array(i),s=0;s<i;s++)l[s]=arguments[s+2];o.children=l}if(e&&e.defaultProps)for(r in i=e.defaultProps)void 0===o[r]&&(o[r]=i[r]);return O(e,a,void 0,void 0,null,o)},n.createRef=function(){return{current:null}},n.forwardRef=function(e){return{$$typeof:c,render:e}},n.isValidElement=C,n.lazy=function(e){return{$$typeof:f,_payload:{_status:-1,_result:e},_init:P}},n.memo=function(e,n){return{$$typeof:d,type:e,compare:void 0===n?null:n}},n.startTransition=function(e){var n=k.T,t={};k.T=t;try{var r=e(),o=k.S;null!==o&&o(t,r),\"object\"==typeof r&&null!==r&&\"function\"==typeof r.then&&r.then(j,z)}catch(e){z(e)}finally{null!==n&&null!==t.types&&(n.types=t.types),k.T=n}},n.unstable_useCacheRefresh=function(){return k.H.useCacheRefresh()},n.use=function(e){return k.H.use(e)},n.useActionState=function(e,n,t){return k.H.useActionState(e,n,t)},n.useCallback=function(e,n){return k.H.useCallback(e,n)},n.useContext=function(e){return k.H.useContext(e)},n.useDebugValue=function(){},n.useDeferredValue=function(e,n){return k.H.useDeferredValue(e,n)},n.useEffect=function(e,n){return k.H.useEffect(e,n)},n.useId=function(){return k.H.useId()},n.useImperativeHandle=function(e,n,t){return k.H.useImperativeHandle(e,n,t)},n.useInsertionEffect=function(e,n){return k.H.useInsertionEffect(e,n)},n.useLayoutEffect=function(e,n){return k.H.useLayoutEffect(e,n)},n.useMemo=function(e,n){return k.H.useMemo(e,n)},n.useOptimistic=function(e,n){return k.H.useOptimistic(e,n)},n.useReducer=function(e,n,t){return k.H.useReducer(e,n,t)},n.useRef=function(e){return k.H.useRef(e)},n.useState=function(e){return k.H.useState(e)},n.useSyncExternalStore=function(e,n,t){return k.H.useSyncExternalStore(e,n,t)},n.useTransition=function(){return k.H.useTransition()},n.version=\"19.2.0-canary-97cdd5d3-20250710\"},\"./dist/compiled/react/index.js\":function(e,n,t){\"use strict\";e.exports=t(\"./dist/compiled/react/cjs/react.production.js\")},\"./dist/compiled/react/jsx-runtime.js\":function(e,n,t){\"use strict\";e.exports=t(\"./dist/compiled/react/cjs/react-jsx-runtime.production.js\")},\"./dist/compiled/scheduler/cjs/scheduler.production.js\":function(e,n){\"use strict\";function t(e,n){var t=e.length;for(e.push(n);0<t;){var r=t-1>>>1,o=e[r];if(0<a(o,n))e[r]=n,e[t]=o,t=r;else break}}function r(e){return 0===e.length?null:e[0]}function o(e){if(0===e.length)return null;var n=e[0],t=e.pop();if(t!==n){e[0]=t;for(var r=0,o=e.length,i=o>>>1;r<i;){var l=2*(r+1)-1,s=e[l],c=l+1,u=e[c];if(0>a(s,t))c<o&&0>a(u,s)?(e[r]=u,e[c]=t,r=c):(e[r]=s,e[l]=t,r=l);else if(c<o&&0>a(u,t))e[r]=u,e[c]=t,r=c;else break}}return n}function a(e,n){var t=e.sortIndex-n.sortIndex;return 0!==t?t:e.id-n.id}if(n.unstable_now=void 0,\"object\"==typeof performance&&\"function\"==typeof performance.now){var i,l=performance;n.unstable_now=function(){return l.now()}}else{var s=Date,c=s.now();n.unstable_now=function(){return s.now()-c}}var u=[],d=[],f=1,p=null,h=3,g=!1,m=!1,v=!1,b=!1,y=\"function\"==typeof setTimeout?setTimeout:null,x=\"function\"==typeof clearTimeout?clearTimeout:null,w=\"undefined\"!=typeof setImmediate?setImmediate:null;function j(e){for(var n=r(d);null!==n;){if(null===n.callback)o(d);else if(n.startTime<=e)o(d),n.sortIndex=n.expirationTime,t(u,n);else break;n=r(d)}}function k(e){if(v=!1,j(e),!m)if(null!==r(u))m=!0,A||(A=!0,i());else{var n=r(d);null!==n&&L(k,n.startTime-e)}}var A=!1,O=-1,C=5,S=-1;function E(){return!!b||!(n.unstable_now()-S<C)}function _(){if(b=!1,A){var e=n.unstable_now();S=e;var t=!0;try{e:{m=!1,v&&(v=!1,x(O),O=-1),g=!0;var a=h;try{n:{for(j(e),p=r(u);null!==p&&!(p.expirationTime>e&&E());){var l=p.callback;if(\"function\"==typeof l){p.callback=null,h=p.priorityLevel;var s=l(p.expirationTime<=e);if(e=n.unstable_now(),\"function\"==typeof s){p.callback=s,j(e),t=!0;break n}p===r(u)&&o(u),j(e)}else o(u);p=r(u)}if(null!==p)t=!0;else{var c=r(d);null!==c&&L(k,c.startTime-e),t=!1}}break e}finally{p=null,h=a,g=!1}}}finally{t?i():A=!1}}}if(\"function\"==typeof w)i=function(){w(_)};else if(\"undefined\"!=typeof MessageChannel){var P=new MessageChannel,z=P.port2;P.port1.onmessage=_,i=function(){z.postMessage(null)}}else i=function(){y(_,0)};function L(e,t){O=y(function(){e(n.unstable_now())},t)}n.unstable_IdlePriority=5,n.unstable_ImmediatePriority=1,n.unstable_LowPriority=4,n.unstable_NormalPriority=3,n.unstable_Profiling=null,n.unstable_UserBlockingPriority=2,n.unstable_cancelCallback=function(e){e.callback=null},n.unstable_forceFrameRate=function(e){0>e||125<e?console.error(\"forceFrameRate takes a positive int between 0 and 125, forcing frame rates higher than 125 fps is not supported\"):C=0<e?Math.floor(1e3/e):5},n.unstable_getCurrentPriorityLevel=function(){return h},n.unstable_next=function(e){switch(h){case 1:case 2:case 3:var n=3;break;default:n=h}var t=h;h=n;try{return e()}finally{h=t}},n.unstable_requestPaint=function(){b=!0},n.unstable_runWithPriority=function(e,n){switch(e){case 1:case 2:case 3:case 4:case 5:break;default:e=3}var t=h;h=e;try{return n()}finally{h=t}},n.unstable_scheduleCallback=function(e,o,a){var l=n.unstable_now();switch(a=\"object\"==typeof a&&null!==a&&\"number\"==typeof(a=a.delay)&&0<a?l+a:l,e){case 1:var s=-1;break;case 2:s=250;break;case 5:s=0x3fffffff;break;case 4:s=1e4;break;default:s=5e3}return s=a+s,e={id:f++,callback:o,priorityLevel:e,startTime:a,expirationTime:s,sortIndex:-1},a>l?(e.sortIndex=a,t(d,e),null===r(u)&&e===r(d)&&(v?(x(O),O=-1):v=!0,L(k,a-l))):(e.sortIndex=s,t(u,e),m||g||(m=!0,A||(A=!0,i()))),e},n.unstable_shouldYield=E,n.unstable_wrapCallback=function(e){var n=h;return function(){var t=h;h=n;try{return e.apply(this,arguments)}finally{h=t}}}},\"./dist/compiled/scheduler/index.js\":function(e,n,t){\"use strict\";e.exports=t(\"./dist/compiled/scheduler/cjs/scheduler.production.js\")},\"./dist/compiled/stacktrace-parser/stack-trace-parser.cjs.js\":function(e){(()=>{\"use strict\";\"undefined\"!=typeof __nccwpck_require__&&(__nccwpck_require__.ab=\"//\");var n,t,r,o,a,i,l,s,c={};Object.defineProperty(c,\"__esModule\",{value:!0}),n=\"<unknown>\",t=/^\\s*at (.*?) ?\\(((?:file|https?|blob|chrome-extension|native|eval|webpack|webpack-internal|rsc|turbopack|<anonymous>|\\/|[a-z]:\\\\|\\\\\\\\).*?)(?::(\\d+))?(?::(\\d+))?\\)?\\s*$/i,r=/\\((\\S*)(?::(\\d+))(?::(\\d+))\\)/,o=/^\\s*at (?:((?:\\[object object\\])?.+) )?\\(?((?:file|ms-appx|https?|webpack|webpack-internal|rsc|turbopack|blob):.*?):(\\d+)(?::(\\d+))?\\)?\\s*$/i,a=/^\\s*(.*?)(?:\\((.*?)\\))?(?:^|@)((?:file|https?|blob|chrome|webpack|webpack-internal|rsc|turbopack|resource|\\[native).*?|[^@]*bundle)(?::(\\d+))?(?::(\\d+))?\\s*$/i,i=/(\\S+) line (\\d+)(?: > eval line \\d+)* > eval/i,l=/^\\s*(?:([^@]*)(?:\\((.*?)\\))?@)?(\\S.*?):(\\d+)(?::(\\d+))?\\s*$/i,s=/^\\s*at (?:((?:\\[object object\\])?[^\\\\/]+(?: \\[as \\S+\\])?) )?\\(?(.*?):(\\d+)(?::(\\d+))?\\)?\\s*$/i,c.parse=function(e){return e.split(\"\\n\").reduce(function(e,c){var u,d,f,p,h,g,m=function(e){var o=t.exec(e);if(!o)return null;var a=o[2]&&0===o[2].indexOf(\"native\"),i=o[2]&&0===o[2].indexOf(\"eval\"),l=r.exec(o[2]);return i&&null!=l&&(o[2]=l[1],o[3]=l[2],o[4]=l[3]),{file:a?null:o[2],methodName:o[1]||n,arguments:a?[o[2]]:[],lineNumber:o[3]?+o[3]:null,column:o[4]?+o[4]:null}}(c)||(u=c,(d=o.exec(u))?{file:d[2],methodName:d[1]||n,arguments:[],lineNumber:+d[3],column:d[4]?+d[4]:null}:null)||function(e){var t=a.exec(e);if(!t)return null;var r=t[3]&&t[3].indexOf(\" > eval\")>-1,o=i.exec(t[3]);return r&&null!=o&&(t[3]=o[1],t[4]=o[2],t[5]=null),{file:t[3],methodName:t[1]||n,arguments:t[2]?t[2].split(\",\"):[],lineNumber:t[4]?+t[4]:null,column:t[5]?+t[5]:null}}(c)||(f=c,(p=s.exec(f))?{file:p[2],methodName:p[1]||n,arguments:[],lineNumber:+p[3],column:p[4]?+p[4]:null}:null)||(h=c,(g=l.exec(h))?{file:g[3],methodName:g[1]||n,arguments:[],lineNumber:+g[4],column:g[5]?+g[5]:null}:null);return m&&e.push(m),e},[])},e.exports=c})()},\"./dist/compiled/strip-ansi/index.js\":function(e){(()=>{\"use strict\";var n={511:e=>{e.exports=({onlyFirst:e=!1}={})=>RegExp(\"[\\\\u001B\\\\u009B][[\\\\]()#;?]*(?:(?:(?:(?:;[-a-zA-Z\\\\d\\\\/#&.:=?%@~_]+)*|[a-zA-Z\\\\d]+(?:;[-a-zA-Z\\\\d\\\\/#&.:=?%@~_]*)*)?\\\\u0007)|(?:(?:\\\\d{1,4}(?:;\\\\d{0,4})*)?[\\\\dA-PR-TZcf-ntqry=><~]))\",e?void 0:\"g\")},532:(e,n,t)=>{let r=t(511);e.exports=e=>\"string\"==typeof e?e.replace(r(),\"\"):e}},t={};function r(e){var o=t[e];if(void 0!==o)return o.exports;var a=t[e]={exports:{}},i=!0;try{n[e](a,a.exports,r),i=!1}finally{i&&delete t[e]}return a.exports}r.ab=\"//\",e.exports=r(532)})()},\"./src/build/webpack/loaders/devtool/devtool-style-inject.js\":function(e){function n(){let e=window._nextjsDevtoolsStyleCache;if(e.cachedShadowRoot)return e.cachedShadowRoot;let n=document.querySelector(\"nextjs-portal\"),t=n?.shadowRoot||null;return t&&(e.cachedShadowRoot=t),t}function t(e,n){let t=window._nextjsDevtoolsStyleCache;t.lastInsertedElement?t.lastInsertedElement.nextSibling?n.insertBefore(e,t.lastInsertedElement.nextSibling):n.appendChild(e):n.insertBefore(e,n.firstChild),t.lastInsertedElement=e}function r(){let e=window._nextjsDevtoolsStyleCache,r=n();r&&(e.pendingElements.forEach(e=>{t(e,r)}),e.pendingElements=[])}\"undefined\"!=typeof window&&(window._nextjsDevtoolsStyleCache=window._nextjsDevtoolsStyleCache||{pendingElements:[],isObserving:!1,lastInsertedElement:null,cachedShadowRoot:null}),e.exports=function(e){e.setAttribute(\"data-nextjs-dev-tool-style\",\"true\");let o=n();o?t(e,o):(window._nextjsDevtoolsStyleCache.pendingElements.push(e),function(){let e=window._nextjsDevtoolsStyleCache;if(e.isObserving)return;if(e.isObserving=!0,n())return r();let t=new MutationObserver(o=>{if(0===o.length||0===o[0].addedNodes.length)return;let a=o[0].addedNodes[0],i=null;if(\"SCRIPT\"===a.tagName&&a.getAttribute(\"data-nextjs-dev-overlay\")?i=a.firstChild:\"NEXTJS-PORTAL\"===a.tagName&&(i=a),!i)return;let l=()=>{n()?(r(),t.disconnect(),e.isObserving=!1):setTimeout(l,20)};l()});t.observe(document.body,{childList:!0,subtree:!0})}())}},\"./src/next-devtools/dev-overlay/components/errors/dev-tools-indicator/dev-tools-info/dev-tools-info.tsx\":function(e,n,t){\"use strict\";t.d(n,{g:()=>s,x:()=>l});var r=t(\"./dist/compiled/react/jsx-runtime.js\"),o=t(\"./dist/compiled/react/index.js\"),a=t(\"./src/next-devtools/dev-overlay/components/errors/dev-tools-indicator/utils.ts\"),i=t(\"./src/next-devtools/dev-overlay/hooks/use-delayed-render.ts\");function l(e){var n,t,l=e.title,s=e.children,u=e.learnMoreLink,d=e.isOpen,f=e.triggerRef,p=e.close,h=function(e,n){if(null==e)return{};var t,r,o=function(e,n){if(null==e)return{};var t,r,o={},a=Object.keys(e);for(r=0;r<a.length;r++)t=a[r],n.indexOf(t)>=0||(o[t]=e[t]);return o}(e,n);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r<a.length;r++)t=a[r],!(n.indexOf(t)>=0)&&Object.prototype.propertyIsEnumerable.call(e,t)&&(o[t]=e[t])}return o}(e,[\"title\",\"children\",\"learnMoreLink\",\"isOpen\",\"triggerRef\",\"close\"]),g=(0,o.useRef)(null),m=(0,o.useRef)(null),v=(0,i.N)(d,{enterDelay:0,exitDelay:a.K7}),b=v.mounted,y=v.rendered;return((0,a.P5)(g,f,d,function(){var e;null==(e=m.current)||e.focus()}),(0,a.O8)(g,f,b,p),b)?(0,r.jsx)(\"div\",(n=function(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{},r=Object.keys(t);\"function\"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(t).filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.forEach(function(n){var r;r=t[n],n in e?Object.defineProperty(e,n,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[n]=r})}return e}({tabIndex:-1,role:\"dialog\",ref:g,\"data-info-popover\":!0},h),t=t={\"data-rendered\":y,children:(0,r.jsxs)(\"div\",{className:\"dev-tools-info-container\",children:[(0,r.jsxs)(\"div\",{className:\"dev-tools-info-header\",children:[(0,r.jsx)(\"button\",{ref:m,className:\"dev-tools-info-close-button\",onClick:p,\"aria-label\":\"Close dialog\",children:(0,r.jsx)(c,{})}),(0,r.jsx)(\"h3\",{className:\"dev-tools-info-title\",children:l})]}),(0,r.jsxs)(\"div\",{className:\"dev-tools-info-body\",children:[s,u&&(0,r.jsx)(\"div\",{className:\"dev-tools-info-button-container\",children:(0,r.jsx)(\"a\",{className:\"dev-tools-info-learn-more-button\",href:u,target:\"_blank\",rel:\"noreferrer noopener\",children:\"Learn More\"})})]})]})},Object.getOwnPropertyDescriptors?Object.defineProperties(n,Object.getOwnPropertyDescriptors(t)):(function(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t.push.apply(t,r)}return t})(Object(t)).forEach(function(e){Object.defineProperty(n,e,Object.getOwnPropertyDescriptor(t,e))}),n)):null}var s=\"\\n [data-info-popover] {\\n -webkit-font-smoothing: antialiased;\\n display: flex;\\n flex-direction: column;\\n align-items: flex-start;\\n background: var(--color-background-100);\\n border: 1px solid var(--color-gray-alpha-400);\\n background-clip: padding-box;\\n box-shadow: var(--shadow-menu);\\n border-radius: var(--rounded-xl);\\n position: absolute;\\n font-family: var(--font-stack-sans);\\n z-index: 3;\\n overflow: hidden;\\n opacity: 0;\\n outline: 0;\\n min-width: 350px;\\n transition: opacity var(--animate-out-duration-ms)\\n var(--animate-out-timing-function);\\n\\n &[data-rendered='true'] {\\n opacity: 1;\\n scale: 1;\\n }\\n\\n button:focus-visible {\\n outline: var(--focus-ring);\\n }\\n }\\n\\n .dev-tools-info-container {\\n width: 100%;\\n }\\n\\n .dev-tools-info-body {\\n padding: 16px;\\n }\\n\\n .dev-tools-info-header {\\n height: 48px;\\n display: flex;\\n align-items: center;\\n gap: 6px;\\n padding: 6px 8px;\\n border-bottom: 1px solid var(--color-gray-alpha-400);\\n }\\n\\n .dev-tools-info-close-button {\\n all: unset;\\n width: 20px;\\n height: 20px; \\n display: flex;\\n align-items: center;\\n justify-content: center;\\n color: var(--color-gray-900);\\n transition: color 150ms ease;\\n translate: 0 1px;\\n border-radius: 3px;\\n\\n &:hover {\\n color: var(--color-gray-1000);\\n }\\n }\\n\\n .dev-tools-info-title {\\n color: var(--color-gray-1000);\\n font-size: var(--size-14);\\n font-weight: 500;\\n line-height: var(--size-20);\\n margin: 0;\\n }\\n\\n .dev-tools-info-section-title {\\n padding: 8px 0px;\\n color: var(--color-gray-1000);\\n font-size: var(--size-16);\\n font-weight: 600;\\n line-height: var(--size-20);\\n margin: 0;\\n }\\n\\n .dev-tools-info-article {\\n padding: 8px 6px;\\n color: var(--color-gray-1000);\\n font-size: var(--size-14);\\n line-height: var(--size-20);\\n margin: 0;\\n }\\n .dev-tools-info-paragraph {\\n &:last-child {\\n margin-bottom: 0;\\n }\\n }\\n\\n .dev-tools-info-button-container {\\n display: flex;\\n justify-content: space-between;\\n align-items: center;\\n }\\n\\n .dev-tools-info-learn-more-button {\\n align-content: center;\\n padding: 0 8px;\\n height: var(--size-28);\\n font-size: var(--size-14);\\n font-weight: 500;\\n line-height: var(--size-20);\\n transition: background var(--duration-short) ease;\\n color: var(--color-background-100);\\n border-radius: var(--rounded-md-2);\\n background: var(--color-gray-1000);\\n margin-left: auto;\\n }\\n\\n .dev-tools-info-learn-more-button:hover {\\n text-decoration: none;\\n color: var(--color-background-100);\\n opacity: 0.9;\\n }\\n\";function c(){return(0,r.jsx)(\"svg\",{width:\"16\",height:\"16\",viewBox:\"0 0 16 16\",fill:\"none\",xmlns:\"http://www.w3.org/2000/svg\",children:(0,r.jsx)(\"path\",{d:\"M5.14645 8.70703C4.75595 8.31651 4.75595 7.68349 5.14645 7.29297L10.5 1.93945L11.5605 3L6.56051 8L11.5605 13L10.5 14.0605L5.14645 8.70703Z\",fill:\"currentColor\"})})}},\"./src/next-devtools/dev-overlay/components/errors/dev-tools-indicator/dev-tools-info/segments-explorer.tsx\":function(e,n,t){\"use strict\";t.d(n,{W:()=>i});var r=t(\"./dist/compiled/react/jsx-runtime.js\"),o=t(\"./src/next-devtools/dev-overlay/components/overview/segment-explorer.tsx\"),a=t(\"./src/next-devtools/dev-overlay/components/errors/dev-tools-indicator/dev-tools-info/dev-tools-info.tsx\");function i(e){var n,t,i=e.routerType,l=e.page,s=function(e,n){if(null==e)return{};var t,r,o=function(e,n){if(null==e)return{};var t,r,o={},a=Object.keys(e);for(r=0;r<a.length;r++)t=a[r],n.indexOf(t)>=0||(o[t]=e[t]);return o}(e,n);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r<a.length;r++)t=a[r],!(n.indexOf(t)>=0)&&Object.prototype.propertyIsEnumerable.call(e,t)&&(o[t]=e[t])}return o}(e,[\"routerType\",\"page\"]);return(0,r.jsx)(a.x,(n=function(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{},r=Object.keys(t);\"function\"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(t).filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.forEach(function(n){var r;r=t[n],n in e?Object.defineProperty(e,n,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[n]=r})}return e}({title:\"Route Info\"},s),t=t={children:(0,r.jsx)(\"div\",{\"data-nextjs-segments-explorer\":!0,style:{margin:\"-16px\"},children:(0,r.jsx)(o.u,{isAppRouter:\"app\"===i,page:l})})},Object.getOwnPropertyDescriptors?Object.defineProperties(n,Object.getOwnPropertyDescriptors(t)):(function(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t.push.apply(t,r)}return t})(Object(t)).forEach(function(e){Object.defineProperty(n,e,Object.getOwnPropertyDescriptor(t,e))}),n))}},\"./src/next-devtools/dev-overlay/components/errors/dev-tools-indicator/utils.ts\":function(e,n,t){\"use strict\";t.d(n,{K7:()=>s,O8:()=>l,P5:()=>a,uD:()=>c,vY:()=>i});var r=t(\"./dist/compiled/react/index.js\");function o(e,n){(null==n||n>e.length)&&(n=e.length);for(var t=0,r=Array(n);t<n;t++)r[t]=e[t];return r}function a(e,n,t,a){(0,r.useEffect)(function(){var r=function(e){if(\"Tab\"===e.key&&null!==l){var n,t,r=(t=(n=l.querySelectorAll('button, [href], input, select, textarea, [tabindex]:not([tabindex=\"-1\"])'))?[n[0],n[n.length-1]]:[],function(e){if(Array.isArray(e))return e}(t)||function(e,n){var t,r,o=null==e?null:\"undefined\"!=typeof Symbol&&e[Symbol.iterator]||e[\"@@iterator\"];if(null!=o){var a=[],i=!0,l=!1;try{for(o=o.call(e);!(i=(t=o.next()).done)&&(a.push(t.value),a.length!==n);i=!0);}catch(e){l=!0,r=e}finally{try{i||null==o.return||o.return()}finally{if(l)throw r}}return a}}(t,2)||function(e,n){if(e){if(\"string\"==typeof e)return o(e,2);var t=Object.prototype.toString.call(e).slice(8,-1);if(\"Object\"===t&&e.constructor&&(t=e.constructor.name),\"Map\"===t||\"Set\"===t)return Array.from(t);if(\"Arguments\"===t||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t))return o(e,n)}}(t,2)||function(){throw TypeError(\"Invalid attempt to destructure non-iterable instance.\\\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\")}()),a=r[0],s=r[1],c=i(l);e.shiftKey?c===a&&(null==s||s.focus(),e.preventDefault()):c===s&&(null==a||a.focus(),e.preventDefault())}},l=null,s=setTimeout(function(){if(l=e.current,t)a?a():null==l||l.focus(),null==l||l.addEventListener(\"keydown\",r);else{var o,s=i(l);n&&(null==l?void 0:l.contains(s))&&(null==(o=n.current)||o.focus())}});return function(){clearTimeout(s),null==l||l.removeEventListener(\"keydown\",r)}},[t])}function i(e){var n,t=null==e?void 0:e.getRootNode();return(null!=(n=ShadowRoot)&&\"undefined\"!=typeof Symbol&&n[Symbol.hasInstance]?!!n[Symbol.hasInstance](t):t instanceof n)?null==t?void 0:t.activeElement:null}function l(e,n,t,o,a){(0,r.useEffect)(function(){var r,i=function(t){var r,a,i=t.target;!(e.current&&e.current.contains(i))&&(null!=(r=e.current)&&r.getBoundingClientRect()&&t.clientX>=e.current.getBoundingClientRect().left&&t.clientX<=e.current.getBoundingClientRect().right&&t.clientY>=e.current.getBoundingClientRect().top&&t.clientY<=e.current.getBoundingClientRect().bottom||null!=(a=n.current)&&a.getBoundingClientRect()&&t.clientX>=n.current.getBoundingClientRect().left&&t.clientX<=n.current.getBoundingClientRect().right&&t.clientY>=n.current.getBoundingClientRect().top&&t.clientY<=n.current.getBoundingClientRect().bottom||o())},l=function(e){\"Escape\"===e.key&&o()};if(t){var s=a||(null==(r=e.current)?void 0:r.ownerDocument);return null==s||s.addEventListener(\"mousedown\",i),null==s||s.addEventListener(\"keydown\",l),function(){null==s||s.removeEventListener(\"mousedown\",i),null==s||s.removeEventListener(\"keydown\",l)}}},[t,e,n])}var s=200,c=\"cubic-bezier(0.175, 0.885, 0.32, 1.1)\"},\"./src/next-devtools/dev-overlay/components/overview/segment-explorer.tsx\":function(e,n,t){\"use strict\";t.d(n,{u:()=>at});var r,o,a,i,l=t(\"./dist/compiled/react/jsx-runtime.js\"),s=t(\"../../node_modules/.pnpm/style-loader@4.0.0_webpack@5.98.0_@swc+core@1.11.24_@swc+helpers@0.5.15__esbuild@0.24.2_/node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\"),c=t.n(s),u=t(\"../../node_modules/.pnpm/style-loader@4.0.0_webpack@5.98.0_@swc+core@1.11.24_@swc+helpers@0.5.15__esbuild@0.24.2_/node_modules/style-loader/dist/runtime/styleDomAPI.js\"),d=t.n(u),f=t(\"./src/build/webpack/loaders/devtool/devtool-style-inject.js\"),p=t.n(f),h=t(\"../../node_modules/.pnpm/style-loader@4.0.0_webpack@5.98.0_@swc+core@1.11.24_@swc+helpers@0.5.15__esbuild@0.24.2_/node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\"),g=t.n(h),m=t(\"../../node_modules/.pnpm/style-loader@4.0.0_webpack@5.98.0_@swc+core@1.11.24_@swc+helpers@0.5.15__esbuild@0.24.2_/node_modules/style-loader/dist/runtime/insertStyleElement.js\"),v=t.n(m),b=t(\"../../node_modules/.pnpm/style-loader@4.0.0_webpack@5.98.0_@swc+core@1.11.24_@swc+helpers@0.5.15__esbuild@0.24.2_/node_modules/style-loader/dist/runtime/styleTagTransform.js\"),y=t.n(b),x=t(\"../../node_modules/.pnpm/css-loader@7.1.2_@rspack+core@1.4.5_@swc+helpers@0.5.15__webpack@5.98.0_@swc+core@1.11.24_@sw_wm7ee5ic4mofrhisudwon4qpq4/node_modules/css-loader/dist/cjs.js!./src/next-devtools/dev-overlay/components/overview/segment-explorer.css\"),w={};w.styleTagTransform=y(),w.setAttributes=g(),w.insert=p(),w.domAPI=d(),w.insertStyleElement=v(),c()(x.Z,w),x.Z&&x.Z.locals&&x.Z.locals;var j=t(\"./src/next-devtools/dev-overlay/segment-explorer-trie.ts\"),k=t(\"./src/next-devtools/dev-overlay/utils/cx.ts\"),A=t(\"../../node_modules/.pnpm/css-loader@7.1.2_@rspack+core@1.4.5_@swc+helpers@0.5.15__webpack@5.98.0_@swc+core@1.11.24_@sw_wm7ee5ic4mofrhisudwon4qpq4/node_modules/css-loader/dist/cjs.js!./src/next-devtools/dev-overlay/components/overview/segment-boundary-trigger.css\"),O={};O.styleTagTransform=y(),O.setAttributes=g(),O.insert=p(),O.domAPI=d(),O.insertStyleElement=v(),c()(A.Z,O),A.Z&&A.Z.locals&&A.Z.locals;var C=t(\"./dist/compiled/react/index.js\"),S=t.t(C,2),E=t(\"./dist/compiled/react-dom/index.js\");let _={};function P(e,n){let t=C.useRef(_);return t.current===_&&(t.current=e(n)),t}let z=S[`useInsertionEffect${Math.random().toFixed(1)}`.slice(0,-3)],L=z&&z!==C.useLayoutEffect?z:e=>e();function T(e){let n=P(R).current;return n.next=e,L(n.effect),n.trampoline}function R(){let e={next:void 0,callback:N,trampoline:(...n)=>e.callback?.(...n),effect:()=>{e.callback=e.next}};return e}function N(){}function D(){let e=new Map;return{emit(n,t){e.get(n)?.forEach(e=>e(t))},on(n,t){e.has(n)||e.set(n,new Set),e.get(n).add(t)},off(n,t){e.get(n)?.delete(t)}}}let B={...S},M=0,I=B.useId;function H(e,n){if(void 0!==I){let t=I();return e??(n?`${n}-${t}`:t)}return function(e,n=\"mui\"){let[t,r]=C.useState(e),o=e||t;return C.useEffect(()=>{null==t&&(M+=1,r(`${n}-${M}`))},[t,n]),o}(e,n)}let F=\"undefined\"!=typeof document?C.useLayoutEffect:()=>{},U=C.createContext(null),V=C.createContext(null),q=()=>C.useContext(U)?.id||null,W=()=>C.useContext(V);function $(e){let{children:n,id:t}=e,r=q();return(0,l.jsx)(U.Provider,{value:C.useMemo(()=>({id:t,parentId:r}),[t,r]),children:n})}function Z(e){let{children:n}=e,t=C.useRef([]),r=C.useCallback(e=>{t.current=[...t.current,e]},[]),o=C.useCallback(e=>{t.current=t.current.filter(n=>n!==e)},[]),[a]=C.useState(()=>D());return(0,l.jsx)(V.Provider,{value:C.useMemo(()=>({nodesRef:t,addNode:r,removeNode:o,events:a}),[r,o,a]),children:n})}function Y(e){let{open:n=!1,onOpenChange:t,elements:r}=e,o=H(),a=C.useRef({}),[i]=C.useState(()=>D()),l=null!=q(),[s,c]=C.useState(r.reference),u=T((e,n,r)=>{a.current.openEvent=e?n:void 0,i.emit(\"openchange\",{open:e,event:n,reason:r,nested:l}),t?.(e,n,r)}),d=C.useMemo(()=>({setPositionReference:c}),[]),f=C.useMemo(()=>({reference:s||r.reference||null,floating:r.floating||null,domReference:r.reference}),[s,r.reference,r.floating]);return C.useMemo(()=>({dataRef:a,open:n,onOpenChange:u,elements:f,events:i,floatingId:o,refs:d}),[n,u,f,i,o,d])}function X(){return\"undefined\"!=typeof window}function K(e){return J(e)?(e.nodeName||\"\").toLowerCase():\"#document\"}function Q(e){var n;return(null==e||null==(n=e.ownerDocument)?void 0:n.defaultView)||window}function G(e){var n;return null==(n=(J(e)?e.ownerDocument:e.document)||window.document)?void 0:n.documentElement}function J(e){return!!X()&&(e instanceof Node||e instanceof Q(e).Node)}function ee(e){return!!X()&&(e instanceof Element||e instanceof Q(e).Element)}function en(e){return!!X()&&(e instanceof HTMLElement||e instanceof Q(e).HTMLElement)}function et(e){return!!X()&&\"undefined\"!=typeof ShadowRoot&&(e instanceof ShadowRoot||e instanceof Q(e).ShadowRoot)}let er=new Set([\"inline\",\"contents\"]);function eo(e){let{overflow:n,overflowX:t,overflowY:r,display:o}=eg(e);return/auto|scroll|overlay|hidden|clip/.test(n+r+t)&&!er.has(o)}let ea=new Set([\"table\",\"td\",\"th\"]),ei=[\":popover-open\",\":modal\"];function el(e){return ei.some(n=>{try{return e.matches(n)}catch(e){return!1}})}let es=[\"transform\",\"translate\",\"scale\",\"rotate\",\"perspective\"],ec=[\"transform\",\"translate\",\"scale\",\"rotate\",\"perspective\",\"filter\"],eu=[\"paint\",\"layout\",\"strict\",\"content\"];function ed(e){let n=ef(),t=ee(e)?eg(e):e;return es.some(e=>!!t[e]&&\"none\"!==t[e])||!!t.containerType&&\"normal\"!==t.containerType||!n&&!!t.backdropFilter&&\"none\"!==t.backdropFilter||!n&&!!t.filter&&\"none\"!==t.filter||ec.some(e=>(t.willChange||\"\").includes(e))||eu.some(e=>(t.contain||\"\").includes(e))}function ef(){return\"undefined\"!=typeof CSS&&!!CSS.supports&&CSS.supports(\"-webkit-backdrop-filter\",\"none\")}let ep=new Set([\"html\",\"body\",\"#document\"]);function eh(e){return ep.has(K(e))}function eg(e){return Q(e).getComputedStyle(e)}function em(e){return ee(e)?{scrollLeft:e.scrollLeft,scrollTop:e.scrollTop}:{scrollLeft:e.scrollX,scrollTop:e.scrollY}}function ev(e){if(\"html\"===K(e))return e;let n=e.assignedSlot||e.parentNode||et(e)&&e.host||G(e);return et(n)?n.host:n}function eb(e,n,t){var r;void 0===n&&(n=[]),void 0===t&&(t=!0);let o=function e(n){let t=ev(n);return eh(t)?n.ownerDocument?n.ownerDocument.body:n.body:en(t)&&eo(t)?t:e(t)}(e),a=o===(null==(r=e.ownerDocument)?void 0:r.body),i=Q(o);if(a){let e=ey(i);return n.concat(i,i.visualViewport||[],eo(o)?o:[],e&&t?eb(e):[])}return n.concat(o,eb(o,[],t))}function ey(e){return e.parent&&Object.getPrototypeOf(e.parent)?e.frameElement:null}let ex=[];function ew(e){C.useEffect(e,ex)}class ej{static create(){return new ej}currentId=0;start(e,n){this.clear(),this.currentId=setTimeout(()=>{this.currentId=0,n()},e)}isStarted(){return 0!==this.currentId}clear=()=>{0!==this.currentId&&(clearTimeout(this.currentId),this.currentId=0)};disposeEffect=()=>this.clear}function ek(){let e=P(ej.create).current;return ew(e.disposeEffect),e}function eA(e){let n=P(eO,e).current;return n.next=e,F(n.effect),n}function eO(e){let n={current:e,next:e,effect:()=>{n.current=n.next}};return n}let eC=\"undefined\"!=typeof navigator,eS=function(){if(\"undefined\"==typeof navigator)return{platform:\"\",maxTouchPoints:-1};let e=navigator.userAgentData;return e?.platform?{platform:e.platform,maxTouchPoints:navigator.maxTouchPoints}:{platform:navigator.platform??\"\",maxTouchPoints:navigator.maxTouchPoints??-1}}(),eE=function(){if(!eC)return\"\";let e=navigator.userAgentData;return e?.platform?e.platform:navigator.platform??\"\"}(),e_=function(){if(!eC)return\"\";let e=navigator.userAgentData;return e&&Array.isArray(e.brands)?e.brands.map(({brand:e,version:n})=>`${e}/${n}`).join(\" \"):navigator.userAgent}(),eP=\"undefined\"!=typeof CSS&&!!CSS.supports&&CSS.supports(\"-webkit-backdrop-filter:none\"),ez=\"MacIntel\"===eS.platform&&eS.maxTouchPoints>1||/iP(hone|ad|od)|iOS/.test(eS.platform);eC&&/firefox/i.test(e_);let eL=eC&&/apple/i.test(navigator.vendor),eT=eC&&/android/i.test(eE)||/android/i.test(e_),eR=eC&&eE.toLowerCase().startsWith(\"mac\")&&!navigator.maxTouchPoints,eN=e_.includes(\"jsdom/\");function eD(e){e.preventDefault(),e.stopPropagation()}function eB(e){return 0===e.mozInputSource&&!!e.isTrusted||(eT&&e.pointerType?\"click\"===e.type&&1===e.buttons:0===e.detail&&!e.pointerType)}function eM(e){return!eN&&(!eT&&0===e.width&&0===e.height||eT&&1===e.width&&1===e.height&&0===e.pressure&&0===e.detail&&\"mouse\"===e.pointerType||e.width<1&&e.height<1&&0===e.pressure&&0===e.detail&&\"touch\"===e.pointerType)}function eI(e,n){let t=[\"mouse\",\"pen\"];return n||t.push(\"\",void 0),t.includes(e)}let eH=\"data-base-ui-focusable\",eF=\"active\",eU=\"selected\",eV=\"ArrowLeft\",eq=\"ArrowRight\",eW=\"ArrowUp\",e$=\"ArrowDown\";function eZ(e){let n=e.activeElement;for(;n?.shadowRoot?.activeElement!=null;)n=n.shadowRoot.activeElement;return n}function eY(e,n){if(!e||!n)return!1;let t=n.getRootNode?.();if(e.contains(n))return!0;if(t&&et(t)){let t=n;for(;t;){if(e===t)return!0;t=t.parentNode||t.host}}return!1}function eX(e){return\"composedPath\"in e?e.composedPath()[0]:e.target}function eK(e,n){return null!=n&&(\"composedPath\"in e?e.composedPath().includes(n):null!=e.target&&n.contains(e.target))}function eQ(e){return e?.ownerDocument||document}function eG(e){return en(e)&&e.matches(\"input:not([type='hidden']):not([disabled]),[contenteditable]:not([contenteditable='false']),textarea:not([disabled])\")}function eJ(e){return!!e&&\"combobox\"===e.getAttribute(\"role\")&&eG(e)}function e0(e){return e?e.hasAttribute(eH)?e:e.querySelector(`[${eH}]`)||e:null}function e1(e){return`data-base-ui-${e}`}let e2=e1(\"safe-polygon\");function e4(e,n,t){if(t&&!eI(t))return 0;if(\"number\"==typeof e)return e;if(\"function\"==typeof e){let t=e();return\"number\"==typeof t?t:t?.[n]}return e?.[n]}function e5(e){return\"function\"==typeof e?e():e}function e3(e,n={}){let{open:t,onOpenChange:r,dataRef:o,events:a,elements:i}=e,{enabled:l=!0,delay:s=0,handleClose:c=null,mouseOnly:u=!1,restMs:d=0,move:f=!0}=n,p=W(),h=q(),g=eA(c),m=eA(s),v=eA(t),b=eA(d),y=C.useRef(void 0),x=ek(),w=C.useRef(void 0),j=ek(),k=C.useRef(!0),A=C.useRef(!1),O=C.useRef(()=>{}),S=C.useRef(!1),E=T(()=>{let e=o.current.openEvent?.type;return e?.includes(\"mouse\")&&\"mousedown\"!==e});C.useEffect(()=>{if(l)return a.on(\"openchange\",e),()=>{a.off(\"openchange\",e)};function e({open:e}){e||(x.clear(),j.clear(),k.current=!0,S.current=!1)}},[l,a,x,j]),C.useEffect(()=>{if(!l||!g.current||!t)return;function e(e){E()&&r(!1,e,\"hover\")}let n=eQ(i.floating).documentElement;return n.addEventListener(\"mouseleave\",e),()=>{n.removeEventListener(\"mouseleave\",e)}},[i.floating,t,r,l,g,E]);let _=C.useCallback((e,n=!0,t=\"hover\")=>{let o=e4(m.current,\"close\",y.current);o&&!w.current?x.start(o,()=>r(!1,e,t)):n&&(x.clear(),r(!1,e,t))},[m,r,x]),P=T(()=>{O.current(),w.current=void 0}),z=T(()=>{if(A.current){let e=eQ(i.floating).body;e.style.pointerEvents=\"\",e.removeAttribute(e2),A.current=!1}}),L=T(()=>!!o.current.openEvent&&[\"click\",\"mousedown\"].includes(o.current.openEvent.type));C.useEffect(()=>{if(l&&ee(i.domReference)){let r=i.domReference,o=i.floating;return t&&r.addEventListener(\"mouseleave\",a),f&&r.addEventListener(\"mousemove\",e,{once:!0}),r.addEventListener(\"mouseenter\",e),r.addEventListener(\"mouseleave\",n),o&&(o.addEventListener(\"mouseleave\",a),o.addEventListener(\"mouseenter\",s),o.addEventListener(\"mouseleave\",c)),()=>{t&&r.removeEventListener(\"mouseleave\",a),f&&r.removeEventListener(\"mousemove\",e),r.removeEventListener(\"mouseenter\",e),r.removeEventListener(\"mouseleave\",n),o&&(o.removeEventListener(\"mouseleave\",a),o.removeEventListener(\"mouseenter\",s),o.removeEventListener(\"mouseleave\",c))}}function e(e){if(x.clear(),k.current=!1,u&&!eI(y.current)||e5(b.current)>0&&!e4(m.current,\"open\"))return;let n=e4(m.current,\"open\",y.current);n?x.start(n,()=>{v.current||r(!0,e,\"hover\")}):t||r(!0,e,\"hover\")}function n(e){if(L())return void z();O.current();let n=eQ(i.floating);if(j.clear(),S.current=!1,g.current&&o.current.floatingContext){t||x.clear(),w.current=g.current({...o.current.floatingContext,tree:p,x:e.clientX,y:e.clientY,onClose(){z(),P(),L()||_(e,!0,\"safe-polygon\")}});let r=w.current;n.addEventListener(\"mousemove\",r),O.current=()=>{n.removeEventListener(\"mousemove\",r)};return}\"touch\"===y.current&&eY(i.floating,e.relatedTarget)||_(e)}function a(e){!L()&&o.current.floatingContext&&g.current?.({...o.current.floatingContext,tree:p,x:e.clientX,y:e.clientY,onClose(){z(),P(),L()||_(e)}})(e)}function s(){x.clear()}function c(e){L()||_(e,!1)}},[i,l,e,u,f,_,P,z,r,t,v,p,m,g,o,L,b,x,j]),F(()=>{if(l&&t&&g.current?.__options?.blockPointerEvents&&E()){A.current=!0;let e=i.floating;if(ee(i.domReference)&&e){let n=eQ(i.floating).body;n.setAttribute(e2,\"\");let t=i.domReference,r=p?.nodesRef.current.find(e=>e.id===h)?.context?.elements.floating;return r&&(r.style.pointerEvents=\"\"),n.style.pointerEvents=\"none\",t.style.pointerEvents=\"auto\",e.style.pointerEvents=\"auto\",()=>{n.style.pointerEvents=\"\",t.style.pointerEvents=\"\",e.style.pointerEvents=\"\"}}}},[l,t,h,i,p,g,E]),F(()=>{t||(y.current=void 0,S.current=!1,P(),z())},[t,P,z]),C.useEffect(()=>()=>{P(),x.clear(),j.clear(),z()},[l,i.domReference,P,z,x,j]);let R=C.useMemo(()=>{function e(e){y.current=e.pointerType}return{onPointerDown:e,onPointerEnter:e,onMouseMove(e){let{nativeEvent:n}=e;function o(){k.current||v.current||r(!0,n,\"hover\")}(!u||eI(y.current))&&!t&&0!==e5(b.current)&&(S.current&&e.movementX**2+e.movementY**2<2||(j.clear(),\"touch\"===y.current?o():(S.current=!0,j.start(e5(b.current),o))))}}},[u,r,t,v,b,j]);return C.useMemo(()=>l?{reference:R}:{},[l,R])}function e6(e,n,t=!0){return e.filter(e=>e.parentId===n&&(!t||e.context?.open)).flatMap(n=>[n,...e6(e,n.id,t)])}function e9(e,n){let t=[],r=e.find(e=>e.id===n)?.parentId;for(;r;){let n=e.find(e=>e.id===r);r=n?.parentId,n&&(t=t.concat(n))}return t}function e8(e,n){let[t,r]=e,o=!1,a=n.length;for(let e=0,i=a-1;e<a;i=e++){let[a,l]=n[e]||[0,0],[s,c]=n[i]||[0,0];l>=r!=c>=r&&t<=(s-a)*(r-l)/(c-l)+a&&(o=!o)}return o}function e7(e={}){let{buffer:n=.5,blockPointerEvents:t=!1,requireIntent:r=!0}=e,o=new ej,a=!1,i=null,l=null,s=performance.now(),c=({x:e,y:t,placement:c,elements:u,onClose:d,nodeId:f,tree:p})=>function(h){function g(){o.clear(),d()}if(o.clear(),!u.domReference||!u.floating||null==c||null==e||null==t)return;let{clientX:m,clientY:v}=h,b=[m,v],y=eX(h),x=\"mouseleave\"===h.type,w=eY(u.floating,y),j=eY(u.domReference,y),k=u.domReference.getBoundingClientRect(),A=u.floating.getBoundingClientRect(),O=c.split(\"-\")[0],C=e>A.right-A.width/2,S=t>A.bottom-A.height/2,E=b[0]>=k.x&&b[0]<=k.x+k.width&&b[1]>=k.y&&b[1]<=k.y+k.height,_=A.width>k.width,P=A.height>k.height,z=(_?k:A).left,L=(_?k:A).right,T=(P?k:A).top,R=(P?k:A).bottom;if(w&&(a=!0,!x))return;if(j&&(a=!1),j&&!x){a=!0;return}if(x&&ee(h.relatedTarget)&&eY(u.floating,h.relatedTarget)||p&&e6(p.nodesRef.current,f).some(({context:e})=>e?.open))return;if(\"top\"===O&&t>=k.bottom-1||\"bottom\"===O&&t<=k.top+1||\"left\"===O&&e>=k.right-1||\"right\"===O&&e<=k.left+1)return g();let N=[];switch(O){case\"top\":N=[[z,k.top+1],[z,A.bottom-1],[L,A.bottom-1],[L,k.top+1]];break;case\"bottom\":N=[[z,A.top+1],[z,k.bottom-1],[L,k.bottom-1],[L,A.top+1]];break;case\"left\":N=[[A.right-1,R],[A.right-1,T],[k.left+1,T],[k.left+1,R]];break;case\"right\":N=[[k.right-1,R],[k.right-1,T],[A.left+1,T],[A.left+1,R]]}if(!e8([m,v],N)){if(a&&!E)return g();if(!x&&r){let e=function(e,n){let t=performance.now(),r=t-s;if(null===i||null===l||0===r)return i=e,l=n,s=t,null;let o=e-i,a=n-l,c=Math.sqrt(o*o+a*a);return i=e,l=n,s=t,c/r}(h.clientX,h.clientY);if(null!==e&&e<.1)return g()}e8([m,v],function([e,t]){switch(O){case\"top\":{let r=[[A.left,C||_?A.bottom-n:A.top],[A.right,C?_?A.bottom-n:A.top:A.bottom-n]];return[[_?e+n/2:C?e+4*n:e-4*n,t+n+1],[_?e-n/2:C?e+4*n:e-4*n,t+n+1],...r]}case\"bottom\":{let r=[[A.left,C||_?A.top+n:A.bottom],[A.right,C?_?A.top+n:A.bottom:A.top+n]];return[[_?e+n/2:C?e+4*n:e-4*n,t-n],[_?e-n/2:C?e+4*n:e-4*n,t-n],...r]}case\"left\":return[[S||P?A.right-n:A.left,A.top],[S?P?A.right-n:A.left:A.right-n,A.bottom],[e+n+1,P?t+n/2:S?t+4*n:t-4*n],[e+n+1,P?t-n/2:S?t+4*n:t-4*n]];case\"right\":{let r=[[S||P?A.left+n:A.right,A.top],[S?P?A.left+n:A.right:A.left+n,A.bottom]];return[[e-n,P?t+n/2:S?t+4*n:t-4*n],[e-n,P?t-n/2:S?t+4*n:t-4*n],...r]}default:return[]}}([e,t]))?!a&&r&&o.start(40,g):g()}};return c.__options={blockPointerEvents:t},c}let ne=eR&&eL;function nn(e,n={}){let{open:t,onOpenChange:r,events:o,dataRef:a,elements:i}=e,{enabled:l=!0,visibleOnly:s=!0}=n,c=C.useRef(!1),u=ek(),d=C.useRef(!0);C.useEffect(()=>{if(!l)return;let e=Q(i.domReference);function n(){!t&&en(i.domReference)&&i.domReference===eZ(eQ(i.domReference))&&(c.current=!0)}function r(){d.current=!0}function o(){d.current=!1}return e.addEventListener(\"blur\",n),ne&&(e.addEventListener(\"keydown\",r,!0),e.addEventListener(\"pointerdown\",o,!0)),()=>{e.removeEventListener(\"blur\",n),ne&&(e.removeEventListener(\"keydown\",r,!0),e.removeEventListener(\"pointerdown\",o,!0))}},[i.domReference,t,l]),C.useEffect(()=>{if(l)return o.on(\"openchange\",e),()=>{o.off(\"openchange\",e)};function e({reason:e}){(\"reference-press\"===e||\"escape-key\"===e)&&(c.current=!0)}},[o,l]);let f=C.useMemo(()=>({onMouseLeave(){c.current=!1},onFocus(e){if(c.current)return;let n=eX(e.nativeEvent);if(s&&ee(n)){if(ne&&!e.relatedTarget){if(!d.current&&!eG(n))return}else if(!function(e){if(!e||eN)return!0;try{return e.matches(\":focus-visible\")}catch(e){return!0}}(n))return}r(!0,e.nativeEvent,\"focus\")},onBlur(e){c.current=!1;let n=e.relatedTarget,t=e.nativeEvent,o=ee(n)&&n.hasAttribute(e1(\"focus-guard\"))&&\"outside\"===n.getAttribute(\"data-type\");u.start(0,()=>{let e=eZ(i.domReference?i.domReference.ownerDocument:document);(n||e!==i.domReference)&&(eY(a.current.floatingContext?.refs.floating.current,e)||eY(i.domReference,e)||o||r(!1,t,\"focus\"))})}}),[a,i.domReference,r,s,u]);return C.useMemo(()=>l?{reference:f}:{},[l,f])}let nt={style:{transition:\"none\"}},nr={},no={fallbackAxisSide:\"none\"},na={fallbackAxisSide:\"end\"},ni=new class{callbacks=[];callbacksCount=0;nextId=1;startId=1;isScheduled=!1;tick=e=>{this.isScheduled=!1;let n=this.callbacks,t=this.callbacksCount;if(this.callbacks=[],this.callbacksCount=0,this.startId=this.nextId,t>0)for(let t=0;t<n.length;t+=1)n[t]?.(e)};request(e){let n=this.nextId;return this.nextId+=1,this.callbacks.push(e),this.callbacksCount+=1,this.isScheduled||(requestAnimationFrame(this.tick),this.isScheduled=!0),n}cancel(e){let n=e-this.startId;n<0||n>=this.callbacks.length||(this.callbacks[n]=null,this.callbacksCount-=1)}};class nl{static create(){return new nl}static request(e){return ni.request(e)}static cancel(e){return ni.cancel(e)}currentId=null;request(e){this.cancel(),this.currentId=ni.request(()=>{this.currentId=null,e()})}cancel=()=>{null!==this.currentId&&(ni.cancel(this.currentId),this.currentId=null)};disposeEffect=()=>this.cancel}function ns(){let e=P(nl.create).current;return ew(e.disposeEffect),e}let nc={pointerdown:\"onPointerDown\",mousedown:\"onMouseDown\",click:\"onClick\"},nu={pointerdown:\"onPointerDownCapture\",mousedown:\"onMouseDownCapture\",click:\"onClickCapture\"},nd=e=>({escapeKey:\"boolean\"==typeof e?e:e?.escapeKey??!1,outsidePress:\"boolean\"==typeof e?e:e?.outsidePress??!0});function nf(e,n={}){let{open:t,onOpenChange:r,elements:o,dataRef:a}=e,{enabled:i=!0,escapeKey:l=!0,outsidePress:s=!0,outsidePressEvent:c=\"pointerdown\",referencePress:u=!1,referencePressEvent:d=\"pointerdown\",ancestorScroll:f=!1,bubbles:p,capture:h}=n,g=W(),m=T(\"function\"==typeof s?s:()=>!1),v=\"function\"==typeof s?m:s,b=C.useRef(!1),{escapeKey:y,outsidePress:x}=nd(p),{escapeKey:w,outsidePress:j}=nd(h),k=C.useRef(!1),A=ek(),O=T(e=>{if(!t||!i||!l||\"Escape\"!==e.key||k.current)return;let n=a.current.floatingContext?.nodeId,o=g?e6(g.nodesRef.current,n):[];if(!y&&(e.stopPropagation(),o.length>0)){let e=!0;if(o.forEach(n=>{n.context?.open&&!n.context.dataRef.current.__escapeKeyBubbles&&(e=!1)}),!e)return}r(!1,\"nativeEvent\"in e?e.nativeEvent:e,\"escape-key\")}),S=T(e=>{let n=()=>{O(e),eX(e)?.removeEventListener(\"keydown\",n)};eX(e)?.addEventListener(\"keydown\",n)}),E=T(e=>{let n=a.current.insideReactTree;a.current.insideReactTree=!1;let t=b.current;if(b.current=!1,\"click\"===c&&t||n||\"function\"==typeof v&&!v(e))return;let i=eX(e),l=`[${e1(\"inert\")}]`,s=eQ(o.floating).querySelectorAll(l),u=ee(i)?i:null;for(;u&&!eh(u);){let e=ev(u);if(eh(e)||!ee(e))break;u=e}if(s.length&&ee(i)&&!i.matches(\"html,body\")&&!eY(i,o.floating)&&Array.from(s).every(e=>!eY(u,e)))return;if(en(i)){let n=eh(i),t=eg(i),r=/auto|scroll/,o=n||r.test(t.overflowX),a=n||r.test(t.overflowY),l=o&&i.clientWidth>0&&i.scrollWidth>i.clientWidth,s=a&&i.clientHeight>0&&i.scrollHeight>i.clientHeight,c=\"rtl\"===t.direction,u=s&&(c?e.offsetX<=i.offsetWidth-i.clientWidth:e.offsetX>i.clientWidth),d=l&&e.offsetY>i.clientHeight;if(u||d)return}let d=a.current.floatingContext?.nodeId,f=g&&e6(g.nodesRef.current,d).some(n=>eK(e,n.context?.elements.floating));if(eK(e,o.floating)||eK(e,o.domReference)||f)return;let p=g?e6(g.nodesRef.current,d):[];if(p.length>0){let e=!0;if(p.forEach(n=>{n.context?.open&&!n.context.dataRef.current.__outsidePressBubbles&&(e=!1)}),!e)return}r(!1,e,\"outside-press\")}),_=T(e=>{let n=()=>{E(e),eX(e)?.removeEventListener(c,n)};eX(e)?.addEventListener(c,n)});C.useEffect(()=>{if(!t||!i)return;a.current.__escapeKeyBubbles=y,a.current.__outsidePressBubbles=x;let e=new ej;function n(e){r(!1,e,\"ancestor-scroll\")}function s(){e.clear(),k.current=!0}function u(){e.start(5*!!ef(),()=>{k.current=!1})}let d=eQ(o.floating);l&&(d.addEventListener(\"keydown\",w?S:O,w),d.addEventListener(\"compositionstart\",s),d.addEventListener(\"compositionend\",u)),v&&d.addEventListener(c,j?_:E,j);let p=[];return f&&(ee(o.domReference)&&(p=eb(o.domReference)),ee(o.floating)&&(p=p.concat(eb(o.floating))),!ee(o.reference)&&o.reference&&o.reference.contextElement&&(p=p.concat(eb(o.reference.contextElement)))),(p=p.filter(e=>e!==d.defaultView?.visualViewport)).forEach(e=>{e.addEventListener(\"scroll\",n,{passive:!0})}),()=>{l&&(d.removeEventListener(\"keydown\",w?S:O,w),d.removeEventListener(\"compositionstart\",s),d.removeEventListener(\"compositionend\",u)),v&&d.removeEventListener(c,j?_:E,j),p.forEach(e=>{e.removeEventListener(\"scroll\",n)}),e.clear()}},[a,o,l,v,c,t,r,f,i,y,x,O,w,S,E,j,_]),C.useEffect(()=>{a.current.insideReactTree=!1},[a,v,c]);let P=C.useMemo(()=>({onKeyDown:O,...u&&{[nc[d]]:e=>{r(!1,e.nativeEvent,\"reference-press\")},...\"click\"!==d&&{onClick(e){r(!1,e.nativeEvent,\"reference-press\")}}}}),[O,r,u,d]),z=C.useMemo(()=>({onKeyDown:O,onMouseDown(){b.current=!0},onMouseUp(){b.current=!0},[nu[c]]:()=>{a.current.insideReactTree=!0},onBlurCapture(){g||(a.current.insideReactTree=!0,A.start(0,()=>{a.current.insideReactTree=!1}))}}),[O,c,a,g,A]);return C.useMemo(()=>i?{reference:P,floating:z}:{},[i,P,z])}let np=new Map([[\"select\",\"listbox\"],[\"combobox\",\"listbox\"],[\"label\",!1]]),nh=[\"top\",\"right\",\"bottom\",\"left\"],ng=Math.min,nm=Math.max,nv=Math.round,nb=Math.floor,ny=e=>({x:e,y:e}),nx={left:\"right\",right:\"left\",bottom:\"top\",top:\"bottom\"},nw={start:\"end\",end:\"start\"};function nj(e,n){return\"function\"==typeof e?e(n):e}function nk(e){return e.split(\"-\")[0]}function nA(e){return e.split(\"-\")[1]}function nO(e){return\"x\"===e?\"y\":\"x\"}function nC(e){return\"y\"===e?\"height\":\"width\"}let nS=new Set([\"top\",\"bottom\"]);function nE(e){return nS.has(nk(e))?\"y\":\"x\"}function n_(e){return e.replace(/start|end/g,e=>nw[e])}let nP=[\"left\",\"right\"],nz=[\"right\",\"left\"],nL=[\"top\",\"bottom\"],nT=[\"bottom\",\"top\"];function nR(e){return e.replace(/left|right|bottom|top/g,e=>nx[e])}function nN(e){return\"number\"!=typeof e?{top:0,right:0,bottom:0,left:0,...e}:{top:e,right:e,bottom:e,left:e}}function nD(e){let{x:n,y:t,width:r,height:o}=e;return{width:r,height:o,top:t,left:n,right:n+r,bottom:t+o,x:n,y:t}}function nB(e,n,t){return Math.floor(e/n)!==t}function nM(e,n){return n<0||n>=e.current.length}function nI(e,n){return nF(e,{disabledIndices:n})}function nH(e,n){return nF(e,{decrement:!0,startingIndex:e.current.length,disabledIndices:n})}function nF(e,{startingIndex:n=-1,decrement:t=!1,disabledIndices:r,amount:o=1}={}){let a=n;do a+=t?-o:o;while(a>=0&&a<=e.current.length-1&&nU(e,a,r));return a}function nU(e,n,t){if(\"function\"==typeof t)return t(n);if(t)return t.includes(n);let r=e.current[n];return null==r||r.hasAttribute(\"disabled\")||\"true\"===r.getAttribute(\"aria-disabled\")}let nV=0;function nq(e,n={}){let{preventScroll:t=!1,cancelPrevious:r=!0,sync:o=!1}=n;r&&cancelAnimationFrame(nV);let a=()=>e?.focus({preventScroll:t});o?a():nV=requestAnimationFrame(a)}function nW(e,n,t){switch(e){case\"vertical\":return n;case\"horizontal\":return t;default:return n||t}}function n$(e,n){return nW(n,e===eW||e===e$,e===eV||e===eq)}function nZ(e,n,t){return nW(n,e===e$,t?e===eV:e===eq)||\"Enter\"===e||\" \"===e||\"\"===e}function nY(e,n,t){return nW(n,t?e===eV:e===eq,e===e$)}function nX(e,n,t,r){return\"both\"===n||\"horizontal\"===n&&r&&r>1?\"Escape\"===e:nW(n,t?e===eq:e===eV,e===eW)}function nK(e=[]){let n=e.map(e=>e?.reference),t=e.map(e=>e?.floating),r=e.map(e=>e?.item),o=C.useCallback(n=>nQ(n,e,\"reference\"),n),a=C.useCallback(n=>nQ(n,e,\"floating\"),t),i=C.useCallback(n=>nQ(n,e,\"item\"),r);return C.useMemo(()=>({getReferenceProps:o,getFloatingProps:a,getItemProps:i}),[o,a,i])}function nQ(e,n,t){let r=new Map,o=\"item\"===t,a={};for(let n in\"floating\"===t&&(a.tabIndex=-1,a[eH]=\"\"),e)o&&e&&(n===eF||n===eU)||(a[n]=e[n]);for(let i=0;i<n.length;i+=1){let l,s=n[i]?.[t];(l=\"function\"==typeof s?e?s(e):null:s)&&nG(a,l,o,r)}return nG(a,e,o,r),a}function nG(e,n,t,r){for(let o in n){let a=n[o];t&&(o===eF||o===eU)||(o.startsWith(\"on\")?(r.has(o)||r.set(o,[]),\"function\"==typeof a&&(r.get(o)?.push(a),e[o]=(...e)=>r.get(o)?.map(n=>n(...e)).find(e=>void 0!==e))):e[o]=a)}}let nJ=C.createContext(void 0);function n0(e){let n=C.useContext(nJ);if(void 0===n&&!e)throw Error(\"Base UI: MenuRootContext is missing. Menu parts must be placed within <Menu.Root>.\");return n}let n1=C.createContext(null);function n2(e,n=!1,t=!1){let[r,o]=C.useState(e&&n?\"idle\":void 0),[a,i]=C.useState(e);return e&&!a&&(i(!0),o(\"starting\")),e||!a||\"ending\"===r||t||o(\"ending\"),e||a||\"ending\"!==r||o(void 0),F(()=>{if(!e&&a&&\"ending\"!==r&&t){let e=nl.request(()=>{o(\"ending\")});return()=>{nl.cancel(e)}}},[e,a,r,t]),F(()=>{if(!e||n)return;let t=nl.request(()=>{E.flushSync(()=>{o(void 0)})});return()=>{nl.cancel(t)}},[n,e]),F(()=>{if(!e||!n)return;e&&a&&\"idle\"!==r&&o(\"starting\");let t=nl.request(()=>{o(\"idle\")});return()=>{nl.cancel(t)}},[n,e,a,o,r]),C.useMemo(()=>({mounted:a,setMounted:i,transitionStatus:r}),[a,r])}function n4({controlled:e,default:n,name:t,state:r=\"value\"}){let{current:o}=C.useRef(void 0!==e),[a,i]=C.useState(n),l=C.useCallback(e=>{o||i(e)},[]);return[o?e:a,l]}function n5(e){let{enabled:n=!0,open:t,ref:r,onComplete:o}=e,a=eA(t),i=T(o),l=function(e,n=!1){let t=ns(),r=ek();return T((o,a=null)=>{t.cancel(),r.clear();let i=e.current;i&&(\"function\"!=typeof i.getAnimations||globalThis.BASE_UI_ANIMATIONS_DISABLED?o():t.request(()=>{function e(){i&&Promise.allSettled(i.getAnimations().map(e=>e.finished)).then(()=>{null!=a&&a.aborted||E.flushSync(o)})}n?r.start(0,e):e()}))})}(r,t);C.useEffect(()=>{n&&l(()=>{t===a.current&&i()})},[n,t,i,l,a])}let n3=C.createContext(void 0);function n6(e=!0){let n=C.useContext(n3);if(void 0===n&&!e)throw Error(\"Base UI: DirectionContext is missing.\");return n?.direction??\"ltr\"}let n9=()=>{},n8={},n7={},te=\"\";class tn{lockCount=0;restore=null;timeoutLock=ej.create();timeoutUnlock=ej.create();acquire(e){return this.lockCount+=1,1===this.lockCount&&null===this.restore&&this.timeoutLock.start(0,()=>this.lock(e)),this.release}release=()=>{this.lockCount-=1,0===this.lockCount&&this.restore&&this.timeoutUnlock.start(0,this.unlock)};unlock=()=>{0===this.lockCount&&this.restore&&(this.restore?.(),this.restore=null)};lock(e){if(0===this.lockCount||null!==this.restore)return;let n=eQ(e).documentElement,t=Q(n).getComputedStyle(n).overflowY;if(\"hidden\"===t||\"clip\"===t){this.restore=n9;return}let r=ez||!function(e){if(\"undefined\"==typeof document)return!1;let n=eQ(e);return Q(n).innerWidth-n.documentElement.clientWidth>0}(e);this.restore=r?function(e){let n=eQ(e).documentElement,t=n.style.overflow;return n.style.overflow=\"hidden\",()=>{n.style.overflow=t}}(e):function(e){let n=eQ(e),t=n.documentElement,r=n.body,o=Q(t),a=0,i=0,l=nl.create();if(eP&&(o.visualViewport?.scale??1)!==1)return()=>{};function s(){let e=o.getComputedStyle(t),n=o.getComputedStyle(r);a=t.scrollTop,i=t.scrollLeft,n8={scrollbarGutter:t.style.scrollbarGutter,overflowY:t.style.overflowY,overflowX:t.style.overflowX},te=t.style.scrollBehavior,n7={position:r.style.position,height:r.style.height,width:r.style.width,boxSizing:r.style.boxSizing,overflowY:r.style.overflowY,overflowX:r.style.overflowX,scrollBehavior:r.style.scrollBehavior};let l=\"undefined\"!=typeof CSS&&CSS.supports?.(\"scrollbar-gutter\",\"stable\"),s=t.scrollHeight>t.clientHeight,c=t.scrollWidth>t.clientWidth,u=\"scroll\"===e.overflowY||\"scroll\"===n.overflowY,d=\"scroll\"===e.overflowX||\"scroll\"===n.overflowX,f=Math.max(0,o.innerWidth-t.clientWidth),p=Math.max(0,o.innerHeight-t.clientHeight),h=parseFloat(n.marginTop)+parseFloat(n.marginBottom),g=parseFloat(n.marginLeft)+parseFloat(n.marginRight);Object.assign(t.style,{scrollbarGutter:\"stable\",overflowY:!l&&(s||u)?\"scroll\":\"hidden\",overflowX:!l&&(c||d)?\"scroll\":\"hidden\"}),Object.assign(r.style,{position:\"relative\",height:h||p?`calc(100dvh - ${h+p}px)`:\"100dvh\",width:g||f?`calc(100vw - ${g+f}px)`:\"100vw\",boxSizing:\"border-box\",overflow:\"hidden\",scrollBehavior:\"unset\"}),r.scrollTop=a,r.scrollLeft=i,t.setAttribute(\"data-base-ui-scroll-locked\",\"\"),t.style.scrollBehavior=\"unset\"}function c(){Object.assign(t.style,n8),Object.assign(r.style,n7),t.scrollTop=a,t.scrollLeft=i,t.removeAttribute(\"data-base-ui-scroll-locked\"),t.style.scrollBehavior=te}function u(){c(),l.request(s)}return s(),o.addEventListener(\"resize\",u),()=>{l.cancel(),c(),o.removeEventListener(\"resize\",u)}}(e)}}let tt=new tn;function tr(e){if(e)return({\"focus-out\":\"focus-out\",\"escape-key\":\"escape-key\",\"outside-press\":\"outside-press\",\"list-navigation\":\"list-navigation\",click:\"trigger-press\",hover:\"trigger-hover\",focus:\"trigger-focus\",\"reference-press\":\"trigger-press\",\"safe-polygon\":\"trigger-hover\",\"ancestor-scroll\":void 0})[e]}let to=C.createContext(void 0);function ta(e=!0){let n=C.useContext(to);if(void 0===n&&!e)throw Error(\"Base UI: ContextMenuRootContext is missing. ContextMenu parts must be placed within <ContextMenu.Root>.\");return n}let ti=C.createContext(!1);function tl(e,n){return e&&!n?e:!e&&n?n:e||n?{...e,...n}:void 0}let ts={};function tc(e,n,t,r,o){let a={...tf(e,ts)};return n&&(a=tu(a,n)),t&&(a=tu(a,t)),r&&(a=tu(a,r)),o&&(a=tu(a,o)),a}function tu(e,n){return td(n)?n(e):function(e,n){if(!n)return e;for(let t in n){let r=n[t];switch(t){case\"style\":e[t]=tl(e.style,r);break;case\"className\":e[t]=th(e.className,r);break;default:!function(e,n){let t=e.charCodeAt(0),r=e.charCodeAt(1),o=e.charCodeAt(2);return 111===t&&110===r&&o>=65&&o<=90&&(\"function\"==typeof n||void 0===n)}(t,r)?e[t]=r:e[t]=function(e,n){return n?e?t=>{var r;if(null!=(r=t)&&\"object\"==typeof r&&\"nativeEvent\"in r){tp(t);let r=n(t);return t.baseUIHandlerPrevented||e?.(t),r}let o=n(t);return e?.(t),o}:n:e}(e[t],r)}}return e}(e,n)}function td(e){return\"function\"==typeof e}function tf(e,n){return td(e)?e(n):e??ts}function tp(e){return e.preventBaseUIHandler=()=>{e.baseUIHandlerPrevented=!0},e}function th(e,n){return n?e?n+\" \"+e:n:e}let tg=[],tm={current:!1},tv=function(e){let n,t,{children:r,open:o,onOpenChange:a,onOpenChangeComplete:i,defaultOpen:s=!1,disabled:c=!1,modal:u,loop:d=!0,orientation:f=\"vertical\",actionsRef:p,openOnHover:h,delay:g=100,closeDelay:m=0,closeParentOnEsc:v=!0}=e,[b,y]=C.useState(null),[x,w]=C.useState(null),[j,k]=C.useState(),[A,O]=C.useState(!0),[S,_]=C.useState(null),[P,z]=C.useState(null),[L,R]=C.useState(!0),[N,D]=C.useState(!1),B=C.useRef(null),M=C.useRef(null),I=C.useRef(null),U=ek(),V=ta(!0),$=C.useContext(ti);{let e=n0(!0),t=function(e){let n=C.useContext(n1);if(null===n&&!e)throw Error(\"Base UI: MenubarContext is missing. Menubar parts must be placed within <Menubar>.\");return n}(!0);n=$&&e?{type:\"menu\",context:e}:t?{type:\"menubar\",context:t}:V?{type:\"context-menu\",context:V}:{type:void 0}}let X=H();void 0!==n.type&&(X=n.context.rootId);let K=(void 0===n.type||\"context-menu\"===n.type)&&(u??!0),Q=\"menu\"===n.type?n.context.allowMouseEnter:N,G=\"menu\"===n.type?n.context.setAllowMouseEnter:D,J=h??(\"menu\"===n.type||\"menubar\"===n.type&&n.context.hasSubmenuOpen),[ee,et]=n4({controlled:o,default:s,name:\"MenuRoot\",state:\"open\"}),er=C.useRef(\"context-menu\"!==n.type),eo=ek();C.useEffect(()=>{if(ee||(B.current=null),\"context-menu\"===n.type){if(!ee){eo.clear(),er.current=!1;return}eo.start(500,()=>{er.current=!0})}},[eo,ee,n.type]);let ea=C.useCallback(e=>{I.current=e,w(e)},[]),{mounted:ei,setMounted:el,transitionStatus:es}=n2(ee),{enabled:ec=!0,mounted:eu,open:ed,referenceElement:ef=null}={enabled:ee&&K&&\"trigger-hover\"!==P,mounted:ei,open:ee,referenceElement:x};F(()=>{if(eP&&eu&&!ed){let e=eQ(ef),n=e.body.style.userSelect,t=e.body.style.webkitUserSelect;return e.body.style.userSelect=\"none\",e.body.style.webkitUserSelect=\"none\",()=>{e.body.style.userSelect=n,e.body.style.webkitUserSelect=t}}},[eu,ed,ef]),F(()=>{if(ec)return tt.acquire(ef)},[ec,ef]),ee||A||O(!0);let ep=T(()=>{el(!1),R(!0),G(!1),i?.(!1)});n5({enabled:!p,open:ee,ref:M,onComplete(){ee||ep()}});let eh=C.useRef(!0),eg=ek(),em=T((e,t,r)=>{if(ee===e||!1===e&&t?.type===\"click\"&&\"touch\"===t.pointerType&&!eh.current)return;e&&\"trigger-focus\"===r?(eh.current=!1,eg.start(300,()=>{eh.current=!0})):(eh.current=!0,eg.clear());let o=(\"trigger-press\"===r||\"item-press\"===r)&&0===t.detail&&t?.isTrusted,i=!e&&(\"escape-key\"===r||null==r);function l(){a?.(e,t,r),et(e),z(r??null),B.current=t??null}\"trigger-hover\"===r?(R(!0),U.start(500,()=>{R(!1)}),E.flushSync(l)):l(),\"menubar\"===n.type&&(\"trigger-focus\"===r||\"focus-out\"===r||\"trigger-hover\"===r||\"list-navigation\"===r||\"sibling-open\"===r)?k(\"group\"):o||i?k(o?\"click\":\"dismiss\"):k(void 0)});C.useImperativeHandle(p,()=>({unmount:ep}),[ep]),\"context-menu\"===n.type&&(t=n.context),C.useImperativeHandle(t?.positionerRef,()=>x,[x]),C.useImperativeHandle(t?.actionsRef,()=>({setOpen:em}),[em]),C.useEffect(()=>{ee||U.clear()},[U,ee]);let ev=Y({elements:{reference:b,floating:x},open:ee,onOpenChange(e,n,t){em(e,n,tr(t))}}),eb=e3(ev,{enabled:A&&J&&!c&&\"context-menu\"!==n.type&&(\"menubar\"!==n.type||n.context.hasSubmenuOpen&&!ee),handleClose:e7({blockPointerEvents:!0}),mouseOnly:!0,move:\"menu\"===n.type,restMs:void 0===n.type||\"menu\"===n.type&&Q?g:void 0,delay:\"menu\"===n.type?{open:Q?g:1e10,close:m}:{close:m}}),ey=nn(ev,{enabled:!c&&!ee&&\"menubar\"===n.type&&n.context.hasSubmenuOpen&&!V}),ex=function(e,n={}){let{open:t,onOpenChange:r,dataRef:o}=e,{enabled:a=!0,event:i=\"click\",toggle:l=!0,ignoreMouse:s=!1,stickIfOpen:c=!0}=n,u=C.useRef(void 0),d=ns(),f=C.useMemo(()=>({onPointerDown(e){u.current=e.pointerType},onMouseDown(e){let n=u.current,a=e.nativeEvent;if(0!==e.button||\"click\"===i||eI(n,!0)&&s)return;let f=o.current.openEvent,p=f?.type,h=!(t&&l&&(!f||!c||\"click\"===p||\"mousedown\"===p));d.request(()=>{r(h,a,\"click\")})},onClick(e){let n=u.current;if(\"mousedown\"===i&&n){u.current=void 0;return}if(eI(n,!0)&&s)return;let a=o.current.openEvent,d=a?.type;r(!(t&&l&&(!a||!c||\"click\"===d||\"mousedown\"===d||\"keydown\"===d||\"keyup\"===d)),e.nativeEvent,\"click\")},onKeyDown(){u.current=void 0}}),[o,i,s,r,t,c,l,d]);return C.useMemo(()=>a?{reference:f}:nr,[a,f])}(ev,{enabled:!c&&\"context-menu\"!==n.type,event:ee&&\"menubar\"===n.type?\"click\":\"mousedown\",toggle:!J||\"menu\"!==n.type,ignoreMouse:J&&\"menu\"===n.type,stickIfOpen:void 0===n.type&&L}),ew=nf(ev,{enabled:!c,bubbles:v&&\"menu\"===n.type,outsidePressEvent:\"mousedown\",outsidePress:()=>\"context-menu\"!==n.type||B.current?.type===\"contextmenu\"||er.current}),ej=function(e,n={}){let{open:t,elements:r,floatingId:o}=e,{enabled:a=!0,role:i=\"dialog\"}=n,l=H(),s=r.domReference?.id||l,c=C.useMemo(()=>e0(r.floating)?.id||o,[r.floating,o]),u=np.get(i)??i,d=null!=q(),f=C.useMemo(()=>\"tooltip\"===u||\"label\"===i?{[`aria-${\"label\"===i?\"labelledby\":\"describedby\"}`]:t?c:void 0}:{\"aria-expanded\":t?\"true\":\"false\",\"aria-haspopup\":\"alertdialog\"===u?\"dialog\":u,\"aria-controls\":t?c:void 0,...\"listbox\"===u&&{role:\"combobox\"},...\"menu\"===u&&{id:s},...\"menu\"===u&&d&&{role:\"menuitem\"},...\"select\"===i&&{\"aria-autocomplete\":\"none\"},...\"combobox\"===i&&{\"aria-autocomplete\":\"list\"}},[u,c,d,t,s,i]),p=C.useMemo(()=>{let e={id:c,...u&&{role:u}};return\"tooltip\"===u||\"label\"===i?e:{...e,...\"menu\"===u&&{\"aria-labelledby\":s}}},[u,c,s,i]),h=C.useCallback(({active:e,selected:n})=>{let t={role:\"option\",...e&&{id:`${c}-fui-option`}};switch(i){case\"select\":return{...t,\"aria-selected\":e&&n};case\"combobox\":return{...t,\"aria-selected\":n}}return{}},[c,i]);return C.useMemo(()=>a?{reference:f,floating:p,item:h}:{},[a,f,p,h])}(ev,{role:\"menu\"}),eO=C.useRef([]),eC=C.useRef([]),eS=n6(),eE=function(e,n){let{open:t,onOpenChange:r,elements:o,floatingId:a}=e,{listRef:i,activeIndex:l,onNavigate:s=()=>{},enabled:c=!0,selectedIndex:u=null,allowEscape:d=!1,loop:f=!1,nested:p=!1,rtl:h=!1,virtual:g=!1,focusItemOnOpen:m=\"auto\",focusItemOnHover:v=!0,openOnArrowKeyDown:b=!0,disabledIndices:y,orientation:x=\"vertical\",parentOrientation:w,cols:j=1,scrollItemIntoView:k=!0,virtualItemRef:A,itemSizes:O,dense:S=!1}=n,E=eA(e0(o.floating)),_=q(),P=W();F(()=>{e.dataRef.current.orientation=x},[e,x]);let z=eJ(o.domReference),L=C.useRef(m),R=C.useRef(u??-1),N=C.useRef(null),D=C.useRef(!0),B=T(()=>{s(-1===R.current?null:R.current)}),M=C.useRef(B),I=C.useRef(!!o.floating),H=C.useRef(t),U=C.useRef(!1),V=C.useRef(!1),$=eA(y),Z=eA(t),Y=eA(k),X=eA(u),[K,Q]=C.useState(),[G,J]=C.useState(),ee=T(()=>{function e(e){g?(e.id?.endsWith(\"-fui-option\")&&(e.id=`${a}-${Math.random().toString(16).slice(2,10)}`),Q(e.id),P?.events.emit(\"virtualfocus\",e),A&&(A.current=e)):nq(e,{sync:U.current,preventScroll:!0})}let n=i.current[R.current],t=V.current;n&&e(n),(U.current?e=>e():requestAnimationFrame)(()=>{let r=i.current[R.current]||n;if(!r)return;n||e(r);let o=Y.current;o&&er&&(t||!D.current)&&r.scrollIntoView?.(\"boolean\"==typeof o?{block:\"nearest\",inline:\"nearest\"}:o)})});F(()=>{c&&(t&&o.floating?L.current&&null!=u&&(V.current=!0,R.current=u,B()):I.current&&(R.current=-1,M.current()))},[c,t,o.floating,u,B]),F(()=>{if(c&&t&&o.floating)if(null==l){if(U.current=!1,null!=X.current)return;if(I.current&&(R.current=-1,ee()),(!H.current||!I.current)&&L.current&&(null!=N.current||!0===L.current&&null==N.current)){let e=0,n=()=>{null==i.current[0]?(e<2&&(e?requestAnimationFrame:queueMicrotask)(n),e+=1):(R.current=null==N.current||nZ(N.current,x,h)||p?nI(i,$.current):nH(i,$.current),N.current=null,B())};n()}}else nM(i,l)||(R.current=l,ee(),V.current=!1)},[c,t,o.floating,l,X,p,i,x,h,B,ee,$]),F(()=>{if(!c||o.floating||!P||g||!I.current)return;let e=P.nodesRef.current,n=e.find(e=>e.id===_)?.context?.elements.floating,t=eZ(eQ(o.floating)),r=e.some(e=>e.context&&eY(e.context.elements.floating,t));n&&!r&&D.current&&n.focus({preventScroll:!0})},[c,o.floating,P,_,g]),F(()=>{if(c&&P&&g&&!_)return P.events.on(\"virtualfocus\",e),()=>{P.events.off(\"virtualfocus\",e)};function e(e){J(e.id),A&&(A.current=e)}},[c,P,g,_,A]),F(()=>{M.current=B,H.current=t,I.current=!!o.floating}),F(()=>{t||(N.current=null,L.current=m)},[t,m]);let et=null!=l,er=C.useMemo(()=>{function e(e){if(!Z.current)return;let n=i.current.indexOf(e);-1!==n&&R.current!==n&&(R.current=n,B())}return{onFocus({currentTarget:n}){U.current=!0,e(n)},onClick:({currentTarget:e})=>e.focus({preventScroll:!0}),onMouseMove({currentTarget:n}){U.current=!0,V.current=!1,v&&e(n)},onPointerLeave({pointerType:e}){D.current&&\"touch\"!==e&&(U.current=!0,v&&(R.current=-1,B(),g||E.current?.focus({preventScroll:!0})))}}},[Z,E,v,i,B,g]),eo=C.useCallback(()=>w??P?.nodesRef.current.find(e=>e.id===_)?.context?.dataRef?.current.orientation,[_,P,w]),ea=T(e=>{if(D.current=!1,U.current=!0,229===e.which||!Z.current&&e.currentTarget===E.current)return;if(p&&nX(e.key,x,h,j)){n$(e.key,eo())||eD(e),r(!1,e.nativeEvent,\"list-navigation\"),en(o.domReference)&&(g?P?.events.emit(\"virtualfocus\",o.domReference):o.domReference.focus());return}let n=R.current,a=nI(i,y),l=nH(i,y);if(z||(\"Home\"===e.key&&(eD(e),R.current=a,B()),\"End\"===e.key&&(eD(e),R.current=l,B())),j>1){var s;let n=O||Array.from({length:i.current.length},()=>({width:1,height:1})),t=function(e,n,t){let r=[],o=0;return e.forEach(({width:e,height:a},i)=>{let l=!1;for(t&&(o=0);!l;){let t=[];for(let r=0;r<e;r+=1)for(let e=0;e<a;e+=1)t.push(o+r+e*n);o%n+e<=n&&t.every(e=>null==r[e])?(t.forEach(e=>{r[e]=i}),l=!0):o+=1}}),[...r]}(n,j,S),r=t.findIndex(e=>null!=e&&!nU(i,e,y)),o=t.reduce((e,n,t)=>null==n||nU(i,n,y)?e:t,-1),c=t[function(e,{event:n,orientation:t,loop:r,rtl:o,cols:a,disabledIndices:i,minIndex:l,maxIndex:s,prevIndex:c,stopEvent:u=!1}){let d=c;if(n.key===eW){if(u&&eD(n),-1===c)d=s;else if(d=nF(e,{startingIndex:d,amount:a,decrement:!0,disabledIndices:i}),r&&(c-a<l||d<0)){let e=c%a,n=s%a,t=s-(n-e);d=n===e?s:n>e?t:t-a}nM(e,d)&&(d=c)}if(n.key===e$&&(u&&eD(n),-1===c?d=l:(d=nF(e,{startingIndex:c,amount:a,disabledIndices:i}),r&&c+a>s&&(d=nF(e,{startingIndex:c%a-a,amount:a,disabledIndices:i}))),nM(e,d)&&(d=c)),\"both\"===t){let t=nb(c/a);n.key===(o?eV:eq)&&(u&&eD(n),c%a!=a-1?(d=nF(e,{startingIndex:c,disabledIndices:i}),r&&nB(d,a,t)&&(d=nF(e,{startingIndex:c-c%a-1,disabledIndices:i}))):r&&(d=nF(e,{startingIndex:c-c%a-1,disabledIndices:i})),nB(d,a,t)&&(d=c)),n.key===(o?eq:eV)&&(u&&eD(n),c%a!=0?(d=nF(e,{startingIndex:c,decrement:!0,disabledIndices:i}),r&&nB(d,a,t)&&(d=nF(e,{startingIndex:c+(a-c%a),decrement:!0,disabledIndices:i}))):r&&(d=nF(e,{startingIndex:c+(a-c%a),decrement:!0,disabledIndices:i})),nB(d,a,t)&&(d=c));let l=nb(s/a)===t;nM(e,d)&&(d=r&&l?n.key===(o?eq:eV)?s:nF(e,{startingIndex:c-c%a-1,disabledIndices:i}):c)}return d}({current:t.map(e=>null!=e?i.current[e]:null)},{event:e,orientation:x,loop:f,rtl:h,cols:j,disabledIndices:(s=[...(\"function\"!=typeof y?y:null)||i.current.map((e,n)=>nU(i,n,y)?n:void 0),void 0],t.flatMap((e,n)=>s.includes(e)?[n]:[])),minIndex:r,maxIndex:o,prevIndex:function(e,n,t,r,o){if(-1===e)return -1;let a=t.indexOf(e),i=n[e];switch(o){case\"tl\":return a;case\"tr\":if(!i)return a;return a+i.width-1;case\"bl\":if(!i)return a;return a+(i.height-1)*r;case\"br\":return t.lastIndexOf(e);default:return -1}}(R.current>l?a:R.current,n,t,j,e.key===e$?\"bl\":e.key===(h?eV:eq)?\"tr\":\"tl\"),stopEvent:!0})];if(null!=c&&(R.current=c,B()),\"both\"===x)return}if(n$(e.key,x)){if(eD(e),t&&!g&&eZ(e.currentTarget.ownerDocument)===e.currentTarget){R.current=nZ(e.key,x,h)?a:l,B();return}nZ(e.key,x,h)?f?R.current=n>=l?d&&n!==i.current.length?-1:a:nF(i,{startingIndex:n,disabledIndices:y}):R.current=Math.min(l,nF(i,{startingIndex:n,disabledIndices:y})):f?R.current=n<=a?d&&-1!==n?i.current.length:l:nF(i,{startingIndex:n,decrement:!0,disabledIndices:y}):R.current=Math.max(a,nF(i,{startingIndex:n,decrement:!0,disabledIndices:y})),nM(i,R.current)&&(R.current=-1),B()}}),ei=C.useMemo(()=>g&&t&&et&&{\"aria-activedescendant\":G||K},[g,t,et,G,K]),el=C.useMemo(()=>({\"aria-orientation\":\"both\"===x?void 0:x,...!z?ei:{},onKeyDown:ea,onPointerMove(){D.current=!0}}),[ei,ea,x,z]),es=C.useMemo(()=>{function e(e){\"auto\"===m&&eB(e.nativeEvent)&&(L.current=!0)}function n(e){L.current=m,\"auto\"===m&&eM(e.nativeEvent)&&(L.current=!0)}return{...ei,onKeyDown(e){D.current=!1;let n=e.key.startsWith(\"Arrow\"),o=[\"Home\",\"End\"].includes(e.key),a=nY(e.key,x,h),l=nX(e.key,x,h,j),s=nY(e.key,eo(),h),c=n$(e.key,x),d=(p?s:c)||\"Enter\"===e.key||\"\"===e.key.trim();if(g&&t){var f,m;let t,r,s=P?.nodesRef.current.find(e=>null==e.parentId),u=P&&s?(f=P.nodesRef.current,m=s.id,r=-1,!function e(n,o){o>r&&(t=n,r=o),e6(f,n).forEach(n=>{e(n.id,o+1)})}(m,0),f.find(e=>e.id===t)):null;if((n||o)&&u&&A){let n=new KeyboardEvent(\"keydown\",{key:e.key,bubbles:!0});if(a||l){let t=u.context?.elements.domReference===e.currentTarget,r=l&&!t?u.context?.elements.domReference:a?i.current.find(e=>e?.id===K):null;r&&(eD(e),r.dispatchEvent(n),J(void 0))}if((c||o)&&u.context&&u.context.open&&u.parentId&&e.currentTarget!==u.context.elements.domReference){eD(e),u.context.elements.domReference?.dispatchEvent(n);return}}return ea(e)}if(t||b||!n){if(d){let n=n$(e.key,eo());N.current=p&&n?null:e.key}if(p){s&&(eD(e),t?(R.current=nI(i,$.current),B()):r(!0,e.nativeEvent,\"list-navigation\"));return}c&&(null!=u&&(R.current=u),eD(e),!t&&b?r(!0,e.nativeEvent,\"list-navigation\"):ea(e),t&&B())}},onFocus(){t&&!g&&(R.current=-1,B())},onPointerDown:n,onPointerEnter:n,onMouseDown:e,onClick:e}},[K,ei,j,ea,$,m,i,p,B,r,t,b,x,eo,h,u,P,g,A]);return C.useMemo(()=>c?{reference:es,floating:el,item:er}:{},[c,es,el,er])}(ev,{enabled:!c,listRef:eO,activeIndex:S,nested:void 0!==n.type,loop:d,orientation:f,parentOrientation:\"menubar\"===n.type?n.context.orientation:void 0,rtl:\"rtl\"===eS,disabledIndices:tg,onNavigate:_,openOnArrowKeyDown:\"context-menu\"!==n.type}),e_=C.useRef(!1),ez=function(e,n){let{open:t,dataRef:r}=e,{listRef:o,activeIndex:a,onMatch:i,onTypingChange:l,enabled:s=!0,findMatch:c=null,resetMs:u=750,ignoreKeys:d=[],selectedIndex:f=null}=n,p=ek(),h=C.useRef(\"\"),g=C.useRef(f??a??-1),m=C.useRef(null),v=T(i),b=T(l),y=eA(c),x=eA(d);F(()=>{t&&(p.clear(),m.current=null,h.current=\"\")},[t,p]),F(()=>{t&&\"\"===h.current&&(g.current=f??a??-1)},[t,f,a]);let w=T(e=>{e?r.current.typing||(r.current.typing=e,b(e)):r.current.typing&&(r.current.typing=e,b(e))}),j=T(e=>{function n(e,n,t){let r=y.current?y.current(n,t):n.find(e=>e?.toLocaleLowerCase().indexOf(t.toLocaleLowerCase())===0);return r?e.indexOf(r):-1}let r=o.current;if(h.current.length>0&&\" \"!==h.current[0]&&(-1===n(r,r,h.current)?w(!1):\" \"===e.key&&eD(e)),null==r||x.current.includes(e.key)||1!==e.key.length||e.ctrlKey||e.metaKey||e.altKey)return;t&&\" \"!==e.key&&(eD(e),w(!0)),r.every(e=>!e||e[0]?.toLocaleLowerCase()!==e[1]?.toLocaleLowerCase())&&h.current===e.key&&(h.current=\"\",g.current=m.current),h.current+=e.key,p.start(u,()=>{h.current=\"\",g.current=m.current,w(!1)});let a=g.current,i=n(r,[...r.slice((a||0)+1),...r.slice(0,(a||0)+1)],h.current);-1!==i?(v(i),m.current=i):\" \"!==e.key&&(h.current=\"\",w(!1))}),k=C.useMemo(()=>({onKeyDown:j}),[j]),A=C.useMemo(()=>({onKeyDown:j,onKeyUp(e){\" \"===e.key&&w(!1)}}),[j,w]);return C.useMemo(()=>s?{reference:k,floating:A}:{},[s,k,A])}(ev,{listRef:eC,activeIndex:S,resetMs:500,onMatch:e=>{ee&&e!==S&&_(e)},onTypingChange:C.useCallback(e=>{e_.current=e},[])}),{getReferenceProps:eL,getFloatingProps:eT,getItemProps:eR}=nK([eb,ex,ew,ey,ej,eE,ez]),eN=function(e){let{enabled:n=!0,mouseDownAction:t,open:r}=e,o=C.useRef(!1);return C.useMemo(()=>n?{onMouseDown:e=>{(\"open\"===t&&!r||\"close\"===t&&r)&&(o.current=!0,eQ(e.currentTarget).addEventListener(\"click\",()=>{o.current=!1},{once:!0}))},onClick:e=>{o.current&&(o.current=!1,e.preventBaseUIHandler())}}:nr,[n,t,r])}({open:ee,enabled:\"menubar\"===n.type,mouseDownAction:\"open\"}),eH=C.useMemo(()=>{let e=tc(eL(),{onMouseEnter(){O(!0)},onMouseMove(){G(!0)}},eN);return delete e.role,e},[eL,eN,G]),eF=C.useMemo(()=>eT({onMouseEnter(){J&&\"menu\"!==n.type||O(!1)},onMouseMove(){G(!0)},onClick(){J&&O(!1)}}),[eT,J,n.type,G]),eU=C.useMemo(()=>eR(),[eR]),eX=C.useMemo(()=>({activeIndex:S,setActiveIndex:_,allowMouseUpTriggerRef:n.type?n.context.allowMouseUpTriggerRef:tm,floatingRootContext:ev,itemProps:eU,popupProps:eF,triggerProps:eH,itemDomElements:eO,itemLabels:eC,mounted:ei,open:ee,popupRef:M,positionerRef:I,setOpen:em,setPositionerElement:ea,triggerElement:b,setTriggerElement:y,transitionStatus:es,lastOpenChangeReason:P,instantType:j,onOpenChangeComplete:i,setHoverEnabled:O,typingRef:e_,modal:K,disabled:c,parent:n,rootId:X,allowMouseEnter:Q,setAllowMouseEnter:G}),[S,ev,eU,eF,eH,eO,eC,ei,ee,I,em,es,b,ea,P,j,i,K,c,n,X,Q,G]),eK=(0,l.jsx)(nJ.Provider,{value:eX,children:r});return void 0===n.type||\"context-menu\"===n.type?(0,l.jsx)(Z,{children:eK}):eK};function tb(e,n,t,r){var o,a,i,l,s;let c=P(ty).current;return o=c,a=e,i=n,l=t,s=r,(o.refs[0]!==a||o.refs[1]!==i||o.refs[2]!==l||o.refs[3]!==s)&&tx(c,[e,n,t,r]),c.callback}function ty(){return{callback:null,cleanup:null,refs:[]}}function tx(e,n){if(e.refs=n,n.every(e=>null==e)){e.callback=null;return}e.callback=t=>{if(e.cleanup&&(e.cleanup(),e.cleanup=null),null!=t){let r=Array(n.length).fill(null);for(let e=0;e<n.length;e+=1){let o=n[e];if(null!=o)switch(typeof o){case\"function\":{let n=o(t);\"function\"==typeof n&&(r[e]=n);break}case\"object\":o.current=t}}e.cleanup=()=>{for(let e=0;e<n.length;e+=1){let t=n[e];if(null!=t)switch(typeof t){case\"function\":{let n=r[e];\"function\"==typeof n?n():t(null);break}case\"object\":t.current=null}}}}}}let tw=parseInt(C.version,10);function tj(e,n,t={}){let r=n.render,o=function(e,n={}){let t,{className:r,render:o}=e,{state:a=nr,ref:i,props:l,disableStyleHooks:s,customStyleHookMapping:c,enabled:u=!0}=n,d=u?\"function\"==typeof r?r(a):r:void 0;!0!==s&&(t=C.useMemo(()=>u?function(e,n){let t={};for(let r in e){let o=e[r];if(n?.hasOwnProperty(r)){let e=n[r](o);null!=e&&Object.assign(t,e);continue}!0===o?t[`data-${r.toLowerCase()}`]=\"\":o&&(t[`data-${r.toLowerCase()}`]=o.toString())}return t}(a,c):nr,[a,c,u]));let f=u?tl(t,Array.isArray(l)?function(e){if(0===e.length)return ts;if(1===e.length)return tf(e[0],ts);let n={...tf(e[0],ts)};for(let t=1;t<e.length;t+=1)n=tu(n,e[t]);return n}(l):l)??nr:nr;return(\"undefined\"!=typeof document&&(u?Array.isArray(i)?f.ref=function(e){var n,t;let r=P(ty).current;return n=r,t=e,(n.refs.length!==t.length||n.refs.some((e,n)=>e!==t[n]))&&tx(r,e),r.callback}([f.ref,tk(o),...i]):f.ref=tb(f.ref,tk(o),i):tb(null,null)),u)?(void 0!==d&&(f.className=th(f.className,d)),f):nr}(n,t);return!1===t.enabled?null:function(e,n,t,r){if(n){if(\"function\"==typeof n)return n(t,r);let e=tc(t,n.props);return e.ref=t.ref,C.cloneElement(n,e)}if(e&&\"string\"==typeof e){var o,a;return o=e,a=t,\"button\"===o?(0,l.jsx)(\"button\",{type:\"button\",...a}):\"img\"===o?(0,l.jsx)(\"img\",{alt:\"\",...a}):C.createElement(o,a)}throw Error(\"Base UI: Render element or function are not defined.\")}(e,r,o,t.state??nr)}function tk(e){return e&&\"function\"!=typeof e?tw>=19?e.props.ref:e.ref:null}let tA=C.createContext(void 0);function tO(e=!1){let n=C.useContext(tA);if(void 0===n&&!e)throw Error(\"Base UI: CompositeRootContext is missing. Composite parts must be placed within <Composite.Root>.\");return n}let tC=C.createContext({register:()=>{},unregister:()=>{},subscribeMapChange:()=>()=>{},elementsRef:{current:[]},nextIndexRef:{current:0}}),tS=((r={})[r.None=0]=\"None\",r[r.GuessFromOrder=1]=\"GuessFromOrder\",r);function tE(e={}){let{label:n,metadata:t,textRef:r,indexGuessBehavior:o}=e,{register:a,unregister:i,subscribeMapChange:l,elementsRef:s,labelsRef:c,nextIndexRef:u}=C.useContext(tC),d=C.useRef(-1),[f,p]=C.useState(o===tS.GuessFromOrder?()=>{if(-1===d.current){let e=u.current;u.current+=1,d.current=e}return d.current}:-1),h=C.useRef(null),g=C.useCallback(e=>{if(h.current=e,-1!==f&&null!==e&&(s.current[f]=e,c)){let t=void 0!==n;c.current[f]=t?n:r?.current?.textContent??e.textContent}},[f,s,c,n,r]);return F(()=>{let e=h.current;if(e)return a(e,t),()=>{i(e)}},[a,i,t]),F(()=>l(e=>{let n=h.current?e.get(h.current)?.index:null;null!=n&&p(n)}),[l,p]),C.useMemo(()=>({ref:g,index:f}),[f,g])}function t_(e){let{render:n,className:t,itemRef:r=null,metadata:o,...a}=e,{props:i,ref:l}=function(e={}){let{highlightedIndex:n,onHighlightedIndexChange:t,highlightItemOnHover:r}=tO(),{ref:o,index:a}=tE(e),i=n===a,l=C.useRef(null),s=tb(o,l),c=C.useMemo(()=>({tabIndex:i?0:-1,onFocus(){t(a)},onMouseMove(){let e=l.current;if(!r||!e)return;let n=e.hasAttribute(\"disabled\")||\"true\"===e.ariaDisabled;i||n||e.focus()}}),[a,i,t,r]);return C.useMemo(()=>({props:c,ref:s,index:a}),[c,a,s])}({metadata:o});return tj(\"div\",e,{ref:[r,l],props:[i,a]})}let tP=((o={}).startingStyle=\"data-starting-style\",o.endingStyle=\"data-ending-style\",o),tz={[tP.startingStyle]:\"\"},tL={[tP.endingStyle]:\"\"},tT={transitionStatus:e=>\"starting\"===e?tz:\"ending\"===e?tL:null},tR=((a={}).open=\"data-open\",a.closed=\"data-closed\",a[a.startingStyle=tP.startingStyle]=\"startingStyle\",a[a.endingStyle=tP.endingStyle]=\"endingStyle\",a.anchorHidden=\"data-anchor-hidden\",a),tN=((i={}).popupOpen=\"data-popup-open\",i.pressed=\"data-pressed\",i),tD={[tN.popupOpen]:\"\"},tB={[tN.popupOpen]:\"\",[tN.pressed]:\"\"},tM={[tR.open]:\"\"},tI={[tR.closed]:\"\"},tH={[tR.anchorHidden]:\"\"},tF={open:e=>e?tD:null},tU={open:e=>e?tB:null},tV={open:e=>e?tM:tI,anchorHidden:e=>e?tH:null};function tq(e={}){let{disabled:n=!1,focusableWhenDisabled:t,tabIndex:r=0,native:o=!0}=e,a=C.useRef(null),i=void 0!==tO(!0),l=T(()=>{let e=a.current;return!!(e?.tagName===\"A\"&&e?.href)}),{props:s}=function(e){let{focusableWhenDisabled:n,disabled:t,composite:r=!1,tabIndex:o=0,isNativeButton:a}=e,i=r&&!1!==n,l=r&&!1===n;return{props:C.useMemo(()=>{let e={onKeyDown(e){t&&n&&\"Tab\"!==e.key&&e.preventDefault()}};return r||(e.tabIndex=o,!a&&t&&(e.tabIndex=n?o:-1)),(a&&(n||i)||!a&&t)&&(e[\"aria-disabled\"]=t),a&&(!n||l)&&(e.disabled=t),e},[r,t,n,i,l,a,o])}}({focusableWhenDisabled:t,disabled:n,composite:i,tabIndex:r,isNativeButton:o});return F(()=>{let e=a.current;e instanceof HTMLButtonElement&&i&&n&&void 0===s.disabled&&e.disabled&&(e.disabled=!1)},[n,s.disabled,i]),{getButtonProps:C.useCallback((e={})=>{let{onClick:t,onMouseDown:r,onKeyUp:a,onKeyDown:i,onPointerDown:c,...u}=e;return tc({type:o?\"button\":void 0,onClick(e){if(n)return void e.preventDefault();t?.(e)},onMouseDown(e){n||r?.(e)},onKeyDown(e){n||(tp(e),i?.(e)),!e.baseUIHandlerPrevented&&(e.target!==e.currentTarget||o||l()||\"Enter\"!==e.key||n||(t?.(e),e.preventDefault()))},onKeyUp(e){n||(tp(e),a?.(e)),!e.baseUIHandlerPrevented&&(e.target!==e.currentTarget||o||n||\" \"!==e.key||t?.(e))},onPointerDown(e){if(n)return void e.preventDefault();c?.(e)}},o?void 0:{role:\"button\"},s,u)},[n,s,o,l]),buttonRef:a}}let tW=C.forwardRef(function(e,n){let{render:t,className:r,disabled:o=!1,nativeButton:a=!0,...i}=e,{triggerProps:s,disabled:c,setTriggerElement:u,open:d,allowMouseUpTriggerRef:f,positionerRef:p,parent:h,lastOpenChangeReason:g,rootId:m}=n0(),v=o||c,b=C.useRef(null),y=ek(),{getButtonProps:x,buttonRef:w}=tq({disabled:v,native:a}),j=tb(w,u),{events:k}=W();C.useEffect(()=>{d||void 0!==h.type||(f.current=!1)},[f,d,h.type]);let A=T(e=>{if(!b.current)return;y.clear(),f.current=!1;let n=e.target;if(eY(b.current,n)||eY(p.current,n)||n===b.current||null!=n&&function e(n){return en(n)&&n.hasAttribute(\"data-rootownerid\")?n.getAttribute(\"data-rootownerid\")??void 0:eh(n)?void 0:e(ev(n))}(n)===m)return;let t=function(e){let n=e.getBoundingClientRect(),t=window.getComputedStyle(e,\"::before\"),r=window.getComputedStyle(e,\"::after\");if(\"none\"===t.content&&\"none\"===r.content)return n;let o=parseFloat(t.width)||0,a=parseFloat(t.height)||0,i=parseFloat(r.width)||0,l=parseFloat(r.height)||0,s=Math.max(n.width,o,i),c=Math.max(n.height,a,l),u=s-n.width,d=c-n.height;return{left:n.left-u/2,right:n.right+u/2,top:n.top-d/2,bottom:n.bottom+d/2}}(b.current);e.clientX>=t.left-2&&e.clientX<=t.right+2&&e.clientY>=t.top-2&&e.clientY<=t.bottom+2||k.emit(\"close\",{domEvent:e,reason:\"cancel-open\"})});C.useEffect(()=>{d&&\"trigger-hover\"===g&&eQ(b.current).addEventListener(\"mouseup\",A,{once:!0})},[d,A,g]);let O=C.useCallback(e=>tc({\"aria-haspopup\":\"menu\",ref:j,onMouseDown:e=>{d||(y.start(200,()=>{f.current=!0}),eQ(e.currentTarget).addEventListener(\"mouseup\",A,{once:!0}))}},e,x),[x,j,d,f,y,A]),S=tj(\"button\",e,{state:C.useMemo(()=>({disabled:v,open:d}),[v,d]),customStyleHookMapping:tU,ref:[b,n,w],props:[s,i,O]});return\"menubar\"===h.type?(0,l.jsx)(t_,{render:S}):S}),t$={clip:\"rect(0 0 0 0)\",overflow:\"hidden\",whiteSpace:\"nowrap\",position:\"fixed\",top:0,left:0,border:0,padding:0,width:1,height:1,margin:-1},tZ=C.forwardRef(function(e,n){let[t,r]=C.useState();return F(()=>{eL&&r(\"button\")},[]),(0,l.jsx)(\"span\",{...e,ref:n,tabIndex:0,role:t,\"aria-hidden\":!t||void 0,style:t$,\"data-base-ui-focus-guard\":\"\"})});var tY='input:not([inert]),select:not([inert]),textarea:not([inert]),a[href]:not([inert]),button:not([inert]),[tabindex]:not(slot):not([inert]),audio[controls]:not([inert]),video[controls]:not([inert]),[contenteditable]:not([contenteditable=\"false\"]):not([inert]),details>summary:first-of-type:not([inert]),details:not([inert])',tX=\"undefined\"==typeof Element,tK=tX?function(){}:Element.prototype.matches||Element.prototype.msMatchesSelector||Element.prototype.webkitMatchesSelector,tQ=!tX&&Element.prototype.getRootNode?function(e){var n;return null==e||null==(n=e.getRootNode)?void 0:n.call(e)}:function(e){return null==e?void 0:e.ownerDocument},tG=function e(n,t){void 0===t&&(t=!0);var r,o=null==n||null==(r=n.getAttribute)?void 0:r.call(n,\"inert\");return\"\"===o||\"true\"===o||t&&n&&e(n.parentNode)},tJ=function(e){var n,t=null==e||null==(n=e.getAttribute)?void 0:n.call(e,\"contenteditable\");return\"\"===t||\"true\"===t},t0=function(e,n,t){if(tG(e))return[];var r=Array.prototype.slice.apply(e.querySelectorAll(tY));return n&&tK.call(e,tY)&&r.unshift(e),r=r.filter(t)},t1=function e(n,t,r){for(var o=[],a=Array.from(n);a.length;){var i=a.shift();if(!tG(i,!1))if(\"SLOT\"===i.tagName){var l=i.assignedElements(),s=e(l.length?l:i.children,!0,r);r.flatten?o.push.apply(o,s):o.push({scopeParent:i,candidates:s})}else{tK.call(i,tY)&&r.filter(i)&&(t||!n.includes(i))&&o.push(i);var c=i.shadowRoot||\"function\"==typeof r.getShadowRoot&&r.getShadowRoot(i),u=!tG(c,!1)&&(!r.shadowRootFilter||r.shadowRootFilter(i));if(c&&u){var d=e(!0===c?i.children:c.children,!0,r);r.flatten?o.push.apply(o,d):o.push({scopeParent:i,candidates:d})}else a.unshift.apply(a,i.children)}}return o},t2=function(e){return!isNaN(parseInt(e.getAttribute(\"tabindex\"),10))},t4=function(e){if(!e)throw Error(\"No node provided\");return e.tabIndex<0&&(/^(AUDIO|VIDEO|DETAILS)$/.test(e.tagName)||tJ(e))&&!t2(e)?0:e.tabIndex},t5=function(e,n){var t=t4(e);return t<0&&n&&!t2(e)?0:t},t3=function(e,n){return e.tabIndex===n.tabIndex?e.documentOrder-n.documentOrder:e.tabIndex-n.tabIndex},t6=function(e){return\"INPUT\"===e.tagName},t9=function(e,n){for(var t=0;t<e.length;t++)if(e[t].checked&&e[t].form===n)return e[t]},t8=function(e){if(!e.name)return!0;var n,t=e.form||tQ(e),r=function(e){return t.querySelectorAll('input[type=\"radio\"][name=\"'+e+'\"]')};if(\"undefined\"!=typeof window&&void 0!==window.CSS&&\"function\"==typeof window.CSS.escape)n=r(window.CSS.escape(e.name));else try{n=r(e.name)}catch(e){return console.error(\"Looks like you have a radio button with a name attribute containing invalid CSS selector characters and need the CSS.escape polyfill: %s\",e.message),!1}var o=t9(n,e.form);return!o||o===e},t7=function(e){return t6(e)&&\"radio\"===e.type&&!t8(e)},re=function(e){var n,t,r,o,a,i,l,s=e&&tQ(e),c=null==(n=s)?void 0:n.host,u=!1;if(s&&s!==e)for(u=!!(null!=(t=c)&&null!=(r=t.ownerDocument)&&r.contains(c)||null!=e&&null!=(o=e.ownerDocument)&&o.contains(e));!u&&c;)u=!!(null!=(i=c=null==(a=s=tQ(c))?void 0:a.host)&&null!=(l=i.ownerDocument)&&l.contains(c));return u},rn=function(e){var n=e.getBoundingClientRect(),t=n.width,r=n.height;return 0===t&&0===r},rt=function(e,n){var t=n.displayCheck,r=n.getShadowRoot;if(\"hidden\"===getComputedStyle(e).visibility)return!0;var o=tK.call(e,\"details>summary:first-of-type\")?e.parentElement:e;if(tK.call(o,\"details:not([open]) *\"))return!0;if(t&&\"full\"!==t&&\"legacy-full\"!==t){if(\"non-zero-area\"===t)return rn(e)}else{if(\"function\"==typeof r){for(var a=e;e;){var i=e.parentElement,l=tQ(e);if(i&&!i.shadowRoot&&!0===r(i))return rn(e);e=e.assignedSlot?e.assignedSlot:i||l===e.ownerDocument?i:l.host}e=a}if(re(e))return!e.getClientRects().length;if(\"legacy-full\"!==t)return!0}return!1},rr=function(e){if(/^(INPUT|BUTTON|SELECT|TEXTAREA)$/.test(e.tagName))for(var n=e.parentElement;n;){if(\"FIELDSET\"===n.tagName&&n.disabled){for(var t=0;t<n.children.length;t++){var r=n.children.item(t);if(\"LEGEND\"===r.tagName)return!!tK.call(n,\"fieldset[disabled] *\")||!r.contains(e)}return!0}n=n.parentElement}return!1},ro=function(e,n){return!(n.disabled||tG(n)||t6(n)&&\"hidden\"===n.type||rt(n,e)||\"DETAILS\"===n.tagName&&Array.prototype.slice.apply(n.children).some(function(e){return\"SUMMARY\"===e.tagName})||rr(n))},ra=function(e,n){return!(t7(n)||0>t4(n))&&!!ro(e,n)},ri=function(e){var n=parseInt(e.getAttribute(\"tabindex\"),10);return!!isNaN(n)||!!(n>=0)},rl=function e(n){var t=[],r=[];return n.forEach(function(n,o){var a=!!n.scopeParent,i=a?n.scopeParent:n,l=t5(i,a),s=a?e(n.candidates):i;0===l?a?t.push.apply(t,s):t.push(i):r.push({documentOrder:o,tabIndex:l,item:n,isScope:a,content:s})}),r.sort(t3).reduce(function(e,n){return n.isScope?e.push.apply(e,n.content):e.push(n.content),e},[]).concat(t)},rs=function(e,n){return rl((n=n||{}).getShadowRoot?t1([e],n.includeContainer,{filter:ra.bind(null,n),flatten:!1,getShadowRoot:n.getShadowRoot,shadowRootFilter:ri}):t0(e,n.includeContainer,ra.bind(null,n)))},rc=function(e,n){return(n=n||{}).getShadowRoot?t1([e],n.includeContainer,{filter:ro.bind(null,n),flatten:!0,getShadowRoot:n.getShadowRoot}):t0(e,n.includeContainer,ro.bind(null,n))},ru=function(e,n){if(n=n||{},!e)throw Error(\"No node provided\");return!1!==tK.call(e,tY)&&ra(n,e)};let rd=()=>({getShadowRoot:!0,displayCheck:\"function\"==typeof ResizeObserver&&ResizeObserver.toString().includes(\"[native code]\")?\"full\":\"none\"});function rf(e,n){let t=rs(e,rd()),r=t.length;if(0===r)return;let o=eZ(eQ(e)),a=t.indexOf(o);return t[-1===a?1===n?0:r-1:a+n]}function rp(e){return rf(eQ(e).body,1)||e}function rh(e){return rf(eQ(e).body,-1)||e}function rg(e,n){let t=n||e.currentTarget,r=e.relatedTarget;return!r||!eY(t,r)}function rm(e){e.querySelectorAll(\"[data-tabindex]\").forEach(e=>{let n=e.dataset.tabindex;delete e.dataset.tabindex,n?e.setAttribute(\"tabindex\",n):e.removeAttribute(\"tabindex\")})}let rv=C.createContext(null),rb=()=>C.useContext(rv),ry=e1(\"portal\");function rx(e={}){let{id:n,root:t}=e,r=H(),o=rb(),[a,i]=C.useState(null),l=C.useRef(null);return F(()=>()=>{a?.remove(),queueMicrotask(()=>{l.current=null})},[a]),F(()=>{if(!r||l.current)return;let e=n?document.getElementById(n):null;if(!e)return;let t=document.createElement(\"div\");t.id=r,t.setAttribute(ry,\"\"),e.appendChild(t),l.current=t,i(t)},[n,r]),F(()=>{if(null===t||!r||l.current)return;let e=t||o?.portalNode;e&&!ee(e)&&(e=e.current),e=e||document.body;let a=null;n&&((a=document.createElement(\"div\")).id=n,e.appendChild(a));let s=document.createElement(\"div\");s.id=r,s.setAttribute(ry,\"\"),(e=a||e).appendChild(s),l.current=s,i(s)},[n,t,r,o]),a}function rw(e){let{children:n,id:t,root:r,preserveTabOrder:o=!0}=e,a=rx({id:t,root:r}),[i,s]=C.useState(null),c=C.useRef(null),u=C.useRef(null),d=C.useRef(null),f=C.useRef(null),p=i?.modal,h=i?.open,g=!!i&&!i.modal&&i.open&&o&&!!(r||a);return C.useEffect(()=>{if(a&&o&&!p)return a.addEventListener(\"focusin\",e,!0),a.addEventListener(\"focusout\",e,!0),()=>{a.removeEventListener(\"focusin\",e,!0),a.removeEventListener(\"focusout\",e,!0)};function e(e){a&&rg(e)&&(\"focusin\"===e.type?rm:function(e){rs(e,rd()).forEach(e=>{e.dataset.tabindex=e.getAttribute(\"tabindex\")||\"\",e.setAttribute(\"tabindex\",\"-1\")})})(a)}},[a,o,p]),C.useEffect(()=>{a&&(h||rm(a))},[h,a]),(0,l.jsxs)(rv.Provider,{value:C.useMemo(()=>({preserveTabOrder:o,beforeOutsideRef:c,afterOutsideRef:u,beforeInsideRef:d,afterInsideRef:f,portalNode:a,setFocusManagerState:s}),[o,a]),children:[g&&a&&(0,l.jsx)(tZ,{\"data-type\":\"outside\",ref:c,onFocus:e=>{if(rg(e,a))d.current?.focus();else{let e=rh(i?i.domReference:null);e?.focus()}}}),g&&a&&(0,l.jsx)(\"span\",{\"aria-owns\":a.id,style:t$}),a&&E.createPortal(n,a),g&&a&&(0,l.jsx)(tZ,{\"data-type\":\"outside\",ref:u,onFocus:e=>{if(rg(e,a))f.current?.focus();else{let n=rp(i?i.domReference:null);n?.focus(),i?.closeOnFocusOut&&i?.onOpenChange(!1,e.nativeEvent,\"focus-out\")}}})]})}let rj=C.createContext(void 0);function rk(e){let{children:n,keepMounted:t=!1,container:r}=e,{mounted:o}=n0();return o||t?(0,l.jsx)(rj.Provider,{value:t,children:(0,l.jsx)(rw,{root:r,children:n})}):null}let rA=C.createContext(void 0);function rO(e,n,t){let r,{reference:o,floating:a}=e,i=nE(n),l=nO(nE(n)),s=nC(l),c=nk(n),u=\"y\"===i,d=o.x+o.width/2-a.width/2,f=o.y+o.height/2-a.height/2,p=o[s]/2-a[s]/2;switch(c){case\"top\":r={x:d,y:o.y-a.height};break;case\"bottom\":r={x:d,y:o.y+o.height};break;case\"right\":r={x:o.x+o.width,y:f};break;case\"left\":r={x:o.x-a.width,y:f};break;default:r={x:o.x,y:o.y}}switch(nA(n)){case\"start\":r[l]-=p*(t&&u?-1:1);break;case\"end\":r[l]+=p*(t&&u?-1:1)}return r}let rC=async(e,n,t)=>{let{placement:r=\"bottom\",strategy:o=\"absolute\",middleware:a=[],platform:i}=t,l=a.filter(Boolean),s=await (null==i.isRTL?void 0:i.isRTL(n)),c=await i.getElementRects({reference:e,floating:n,strategy:o}),{x:u,y:d}=rO(c,r,s),f=r,p={},h=0;for(let t=0;t<l.length;t++){let{name:a,fn:g}=l[t],{x:m,y:v,data:b,reset:y}=await g({x:u,y:d,initialPlacement:r,placement:f,strategy:o,middlewareData:p,rects:c,platform:i,elements:{reference:e,floating:n}});u=null!=m?m:u,d=null!=v?v:d,p={...p,[a]:{...p[a],...b}},y&&h<=50&&(h++,\"object\"==typeof y&&(y.placement&&(f=y.placement),y.rects&&(c=!0===y.rects?await i.getElementRects({reference:e,floating:n,strategy:o}):y.rects),{x:u,y:d}=rO(c,f,s)),t=-1)}return{x:u,y:d,placement:f,strategy:o,middlewareData:p}};async function rS(e,n){var t;void 0===n&&(n={});let{x:r,y:o,platform:a,rects:i,elements:l,strategy:s}=e,{boundary:c=\"clippingAncestors\",rootBoundary:u=\"viewport\",elementContext:d=\"floating\",altBoundary:f=!1,padding:p=0}=nj(n,e),h=nN(p),g=l[f?\"floating\"===d?\"reference\":\"floating\":d],m=nD(await a.getClippingRect({element:null==(t=await (null==a.isElement?void 0:a.isElement(g)))||t?g:g.contextElement||await (null==a.getDocumentElement?void 0:a.getDocumentElement(l.floating)),boundary:c,rootBoundary:u,strategy:s})),v=\"floating\"===d?{x:r,y:o,width:i.floating.width,height:i.floating.height}:i.reference,b=await (null==a.getOffsetParent?void 0:a.getOffsetParent(l.floating)),y=await (null==a.isElement?void 0:a.isElement(b))&&await (null==a.getScale?void 0:a.getScale(b))||{x:1,y:1},x=nD(a.convertOffsetParentRelativeRectToViewportRelativeRect?await a.convertOffsetParentRelativeRectToViewportRelativeRect({elements:l,rect:v,offsetParent:b,strategy:s}):v);return{top:(m.top-x.top+h.top)/y.y,bottom:(x.bottom-m.bottom+h.bottom)/y.y,left:(m.left-x.left+h.left)/y.x,right:(x.right-m.right+h.right)/y.x}}function rE(e,n){return{top:e.top-n.height,right:e.right-n.width,bottom:e.bottom-n.height,left:e.left-n.width}}function r_(e){return nh.some(n=>e[n]>=0)}let rP=new Set([\"left\",\"top\"]);async function rz(e,n){let{placement:t,platform:r,elements:o}=e,a=await (null==r.isRTL?void 0:r.isRTL(o.floating)),i=nk(t),l=nA(t),s=\"y\"===nE(t),c=rP.has(i)?-1:1,u=a&&s?-1:1,d=nj(n,e),{mainAxis:f,crossAxis:p,alignmentAxis:h}=\"number\"==typeof d?{mainAxis:d,crossAxis:0,alignmentAxis:null}:{mainAxis:d.mainAxis||0,crossAxis:d.crossAxis||0,alignmentAxis:d.alignmentAxis};return l&&\"number\"==typeof h&&(p=\"end\"===l?-1*h:h),s?{x:p*u,y:f*c}:{x:f*c,y:p*u}}function rL(e){let n=eg(e),t=parseFloat(n.width)||0,r=parseFloat(n.height)||0,o=en(e),a=o?e.offsetWidth:t,i=o?e.offsetHeight:r,l=nv(t)!==a||nv(r)!==i;return l&&(t=a,r=i),{width:t,height:r,$:l}}function rT(e){return ee(e)?e:e.contextElement}function rR(e){let n=rT(e);if(!en(n))return ny(1);let t=n.getBoundingClientRect(),{width:r,height:o,$:a}=rL(n),i=(a?nv(t.width):t.width)/r,l=(a?nv(t.height):t.height)/o;return i&&Number.isFinite(i)||(i=1),l&&Number.isFinite(l)||(l=1),{x:i,y:l}}let rN=ny(0);function rD(e){let n=Q(e);return ef()&&n.visualViewport?{x:n.visualViewport.offsetLeft,y:n.visualViewport.offsetTop}:rN}function rB(e,n,t,r){var o;void 0===n&&(n=!1),void 0===t&&(t=!1);let a=e.getBoundingClientRect(),i=rT(e),l=ny(1);n&&(r?ee(r)&&(l=rR(r)):l=rR(e));let s=(void 0===(o=t)&&(o=!1),r&&(!o||r===Q(i))&&o)?rD(i):ny(0),c=(a.left+s.x)/l.x,u=(a.top+s.y)/l.y,d=a.width/l.x,f=a.height/l.y;if(i){let e=Q(i),n=r&&ee(r)?Q(r):r,t=e,o=ey(t);for(;o&&r&&n!==t;){let e=rR(o),n=o.getBoundingClientRect(),r=eg(o),a=n.left+(o.clientLeft+parseFloat(r.paddingLeft))*e.x,i=n.top+(o.clientTop+parseFloat(r.paddingTop))*e.y;c*=e.x,u*=e.y,d*=e.x,f*=e.y,c+=a,u+=i,o=ey(t=Q(o))}}return nD({width:d,height:f,x:c,y:u})}function rM(e,n){let t=em(e).scrollLeft;return n?n.left+t:rB(G(e)).left+t}function rI(e,n,t){void 0===t&&(t=!1);let r=e.getBoundingClientRect();return{x:r.left+n.scrollLeft-(t?0:rM(e,r)),y:r.top+n.scrollTop}}let rH=new Set([\"absolute\",\"fixed\"]);function rF(e,n,t){let r;if(\"viewport\"===n)r=function(e,n){let t=Q(e),r=G(e),o=t.visualViewport,a=r.clientWidth,i=r.clientHeight,l=0,s=0;if(o){a=o.width,i=o.height;let e=ef();(!e||e&&\"fixed\"===n)&&(l=o.offsetLeft,s=o.offsetTop)}return{width:a,height:i,x:l,y:s}}(e,t);else if(\"document\"===n)r=function(e){let n=G(e),t=em(e),r=e.ownerDocument.body,o=nm(n.scrollWidth,n.clientWidth,r.scrollWidth,r.clientWidth),a=nm(n.scrollHeight,n.clientHeight,r.scrollHeight,r.clientHeight),i=-t.scrollLeft+rM(e),l=-t.scrollTop;return\"rtl\"===eg(r).direction&&(i+=nm(n.clientWidth,r.clientWidth)-o),{width:o,height:a,x:i,y:l}}(G(e));else if(ee(n))r=function(e,n){let t=rB(e,!0,\"fixed\"===n),r=t.top+e.clientTop,o=t.left+e.clientLeft,a=en(e)?rR(e):ny(1),i=e.clientWidth*a.x,l=e.clientHeight*a.y;return{width:i,height:l,x:o*a.x,y:r*a.y}}(n,t);else{let t=rD(e);r={x:n.x-t.x,y:n.y-t.y,width:n.width,height:n.height}}return nD(r)}function rU(e){return\"static\"===eg(e).position}function rV(e,n){if(!en(e)||\"fixed\"===eg(e).position)return null;if(n)return n(e);let t=e.offsetParent;return G(e)===t&&(t=t.ownerDocument.body),t}function rq(e,n){var t;let r=Q(e);if(el(e))return r;if(!en(e)){let n=ev(e);for(;n&&!eh(n);){if(ee(n)&&!rU(n))return n;n=ev(n)}return r}let o=rV(e,n);for(;o&&(t=o,ea.has(K(t)))&&rU(o);)o=rV(o,n);return o&&eh(o)&&rU(o)&&!ed(o)?r:o||function(e){let n=ev(e);for(;en(n)&&!eh(n);){if(ed(n))return n;if(el(n))break;n=ev(n)}return null}(e)||r}let rW=async function(e){let n=this.getOffsetParent||rq,t=this.getDimensions,r=await t(e.floating);return{reference:function(e,n,t){let r=en(n),o=G(n),a=\"fixed\"===t,i=rB(e,!0,a,n),l={scrollLeft:0,scrollTop:0},s=ny(0);if(r||!r&&!a)if((\"body\"!==K(n)||eo(o))&&(l=em(n)),r){let e=rB(n,!0,a,n);s.x=e.x+n.clientLeft,s.y=e.y+n.clientTop}else o&&(s.x=rM(o));a&&!r&&o&&(s.x=rM(o));let c=!o||r||a?ny(0):rI(o,l);return{x:i.left+l.scrollLeft-s.x-c.x,y:i.top+l.scrollTop-s.y-c.y,width:i.width,height:i.height}}(e.reference,await n(e.floating),e.strategy),floating:{x:0,y:0,width:r.width,height:r.height}}},r$={convertOffsetParentRelativeRectToViewportRelativeRect:function(e){let{elements:n,rect:t,offsetParent:r,strategy:o}=e,a=\"fixed\"===o,i=G(r),l=!!n&&el(n.floating);if(r===i||l&&a)return t;let s={scrollLeft:0,scrollTop:0},c=ny(1),u=ny(0),d=en(r);if((d||!d&&!a)&&((\"body\"!==K(r)||eo(i))&&(s=em(r)),en(r))){let e=rB(r);c=rR(r),u.x=e.x+r.clientLeft,u.y=e.y+r.clientTop}let f=!i||d||a?ny(0):rI(i,s,!0);return{width:t.width*c.x,height:t.height*c.y,x:t.x*c.x-s.scrollLeft*c.x+u.x+f.x,y:t.y*c.y-s.scrollTop*c.y+u.y+f.y}},getDocumentElement:G,getClippingRect:function(e){let{element:n,boundary:t,rootBoundary:r,strategy:o}=e,a=[...\"clippingAncestors\"===t?el(n)?[]:function(e,n){let t=n.get(e);if(t)return t;let r=eb(e,[],!1).filter(e=>ee(e)&&\"body\"!==K(e)),o=null,a=\"fixed\"===eg(e).position,i=a?ev(e):e;for(;ee(i)&&!eh(i);){let n=eg(i),t=ed(i);t||\"fixed\"!==n.position||(o=null),(a?!t&&!o:!t&&\"static\"===n.position&&!!o&&rH.has(o.position)||eo(i)&&!t&&function e(n,t){let r=ev(n);return!(r===t||!ee(r)||eh(r))&&(\"fixed\"===eg(r).position||e(r,t))}(e,i))?r=r.filter(e=>e!==i):o=n,i=ev(i)}return n.set(e,r),r}(n,this._c):[].concat(t),r],i=a[0],l=a.reduce((e,t)=>{let r=rF(n,t,o);return e.top=nm(r.top,e.top),e.right=ng(r.right,e.right),e.bottom=ng(r.bottom,e.bottom),e.left=nm(r.left,e.left),e},rF(n,i,o));return{width:l.right-l.left,height:l.bottom-l.top,x:l.left,y:l.top}},getOffsetParent:rq,getElementRects:rW,getClientRects:function(e){return Array.from(e.getClientRects())},getDimensions:function(e){let{width:n,height:t}=rL(e);return{width:n,height:t}},getScale:rR,isElement:ee,isRTL:function(e){return\"rtl\"===eg(e).direction}};function rZ(e,n){return e.x===n.x&&e.y===n.y&&e.width===n.width&&e.height===n.height}function rY(e,n,t,r){let o;void 0===r&&(r={});let{ancestorScroll:a=!0,ancestorResize:i=!0,elementResize:l=\"function\"==typeof ResizeObserver,layoutShift:s=\"function\"==typeof IntersectionObserver,animationFrame:c=!1}=r,u=rT(e),d=a||i?[...u?eb(u):[],...eb(n)]:[];d.forEach(e=>{a&&e.addEventListener(\"scroll\",t,{passive:!0}),i&&e.addEventListener(\"resize\",t)});let f=u&&s?function(e,n){let t,r=null,o=G(e);function a(){var e;clearTimeout(t),null==(e=r)||e.disconnect(),r=null}return!function i(l,s){void 0===l&&(l=!1),void 0===s&&(s=1),a();let c=e.getBoundingClientRect(),{left:u,top:d,width:f,height:p}=c;if(l||n(),!f||!p)return;let h=nb(d),g=nb(o.clientWidth-(u+f)),m={rootMargin:-h+\"px \"+-g+\"px \"+-nb(o.clientHeight-(d+p))+\"px \"+-nb(u)+\"px\",threshold:nm(0,ng(1,s))||1},v=!0;function b(n){let r=n[0].intersectionRatio;if(r!==s){if(!v)return i();r?i(!1,r):t=setTimeout(()=>{i(!1,1e-7)},1e3)}1!==r||rZ(c,e.getBoundingClientRect())||i(),v=!1}try{r=new IntersectionObserver(b,{...m,root:o.ownerDocument})}catch(e){r=new IntersectionObserver(b,m)}r.observe(e)}(!0),a}(u,t):null,p=-1,h=null;l&&(h=new ResizeObserver(e=>{let[r]=e;r&&r.target===u&&h&&(h.unobserve(n),cancelAnimationFrame(p),p=requestAnimationFrame(()=>{var e;null==(e=h)||e.observe(n)})),t()}),u&&!c&&h.observe(u),h.observe(n));let g=c?rB(e):null;return c&&function n(){let r=rB(e);g&&!rZ(g,r)&&t(),g=r,o=requestAnimationFrame(n)}(),t(),()=>{var e;d.forEach(e=>{a&&e.removeEventListener(\"scroll\",t),i&&e.removeEventListener(\"resize\",t)}),null==f||f(),null==(e=h)||e.disconnect(),h=null,c&&cancelAnimationFrame(o)}}let rX=e=>({name:\"arrow\",options:e,async fn(n){let{x:t,y:r,placement:o,rects:a,platform:i,elements:l,middlewareData:s}=n,{element:c,padding:u=0}=nj(e,n)||{};if(null==c)return{};let d=nN(u),f={x:t,y:r},p=nO(nE(o)),h=nC(p),g=await i.getDimensions(c),m=\"y\"===p,v=m?\"clientHeight\":\"clientWidth\",b=a.reference[h]+a.reference[p]-f[p]-a.floating[h],y=f[p]-a.reference[p],x=await (null==i.getOffsetParent?void 0:i.getOffsetParent(c)),w=x?x[v]:0;w&&await (null==i.isElement?void 0:i.isElement(x))||(w=l.floating[v]||a.floating[h]);let j=w/2-g[h]/2-1,k=ng(d[m?\"top\":\"left\"],j),A=ng(d[m?\"bottom\":\"right\"],j),O=w-g[h]-A,C=w/2-g[h]/2+(b/2-y/2),S=nm(k,ng(C,O)),E=!s.arrow&&null!=nA(o)&&C!==S&&a.reference[h]/2-(C<k?k:A)-g[h]/2<0,_=E?C<k?C-k:C-O:0;return{[p]:f[p]+_,data:{[p]:S,centerOffset:C-S-_,...E&&{alignmentOffset:_}},reset:E}}});var rK=\"undefined\"!=typeof document?C.useLayoutEffect:function(){};function rQ(e,n){let t,r,o;if(e===n)return!0;if(typeof e!=typeof n)return!1;if(\"function\"==typeof e&&e.toString()===n.toString())return!0;if(e&&n&&\"object\"==typeof e){if(Array.isArray(e)){if((t=e.length)!==n.length)return!1;for(r=t;0!=r--;)if(!rQ(e[r],n[r]))return!1;return!0}if((t=(o=Object.keys(e)).length)!==Object.keys(n).length)return!1;for(r=t;0!=r--;)if(!({}).hasOwnProperty.call(n,o[r]))return!1;for(r=t;0!=r--;){let t=o[r];if((\"_owner\"!==t||!e.$$typeof)&&!rQ(e[t],n[t]))return!1}return!0}return e!=e&&n!=n}function rG(e){return\"undefined\"==typeof window?1:(e.ownerDocument.defaultView||window).devicePixelRatio||1}function rJ(e,n){let t=rG(e);return Math.round(n*t)/t}function r0(e){let n=C.useRef(e);return rK(()=>{n.current=e}),n}function r1(e,n,t){let r=\"inline-start\"===e||\"inline-end\"===e;return({top:\"top\",right:r?t?\"inline-start\":\"inline-end\":\"right\",bottom:\"bottom\",left:r?t?\"inline-end\":\"inline-start\":\"left\"})[n]}function r2(e,n,t){let{rects:r,placement:o}=e;return{side:r1(n,nk(o),t),align:nA(o)||\"center\",anchor:{width:r.reference.width,height:r.reference.height},positioner:{width:r.floating.width,height:r.floating.height}}}function r4(e){var n,t,r,o,a,i,l,s,c,u,d,f,p,h,g,m,v;let{anchor:b,positionMethod:y=\"absolute\",side:x=\"bottom\",sideOffset:w=0,align:j=\"center\",alignOffset:k=0,collisionBoundary:A,collisionPadding:O=5,sticky:S=!1,arrowPadding:_=5,trackAnchor:P=!0,keepMounted:z=!1,floatingRootContext:L,mounted:R,collisionAvoidance:N,shiftCrossAxis:D=!1,nodeId:B,adaptiveOrigin:M}=e,I=N.side||\"flip\",H=N.align||\"flip\",U=N.fallbackAxisSide||\"end\",V=\"function\"==typeof b?b:void 0,q=T(V),$=V?q:b,Z=eA(b),X=\"rtl\"===n6(),K={top:\"top\",right:\"right\",bottom:\"bottom\",left:\"left\",\"inline-end\":X?\"left\":\"right\",\"inline-start\":X?\"right\":\"left\"}[x],Q=\"center\"===j?K:`${K}-${j}`,G={boundary:\"clipping-ancestors\"===A?\"clippingAncestors\":A,padding:O},J=C.useRef(null),en=eA(w),et=eA(k),er=\"function\"!=typeof w?w:0,eo=[(n=e=>{let n=r2(e,x,X),t=\"function\"==typeof en.current?en.current(n):en.current,r=\"function\"==typeof et.current?et.current(n):et.current;return{mainAxis:t,crossAxis:r,alignmentAxis:r}},t=[er,\"function\"!=typeof k?k:0,X,x],{...(void 0===(r=n)&&(r=0),{name:\"offset\",options:r,async fn(e){var n,t;let{x:o,y:a,placement:i,middlewareData:l}=e,s=await rz(e,r);return i===(null==(n=l.offset)?void 0:n.placement)&&null!=(t=l.arrow)&&t.alignmentOffset?{}:{x:o+s.x,y:a+s.y,data:{...s,placement:i}}}}),options:[n,t]})],ea=\"none\"===H&&\"shift\"!==I,ei=!ea&&(S||D||\"shift\"===I),el=\"none\"===I?null:{...{name:\"flip\",options:i=o={...G,mainAxis:!D&&\"flip\"===I,crossAxis:\"flip\"===H&&\"alignment\",fallbackAxisSideDirection:U},async fn(e){var n,t,r,o,a;let{placement:l,middlewareData:s,rects:c,initialPlacement:u,platform:d,elements:f}=e,{mainAxis:p=!0,crossAxis:h=!0,fallbackPlacements:g,fallbackStrategy:m=\"bestFit\",fallbackAxisSideDirection:v=\"none\",flipAlignment:b=!0,...y}=nj(i,e);if(null!=(n=s.arrow)&&n.alignmentOffset)return{};let x=nk(l),w=nE(u),j=nk(u)===u,k=await (null==d.isRTL?void 0:d.isRTL(f.floating)),A=g||(j||!b?[nR(u)]:function(e){let n=nR(e);return[n_(e),n,n_(n)]}(u)),O=\"none\"!==v;!g&&O&&A.push(...function(e,n,t,r){let o=nA(e),a=function(e,n,t){switch(e){case\"top\":case\"bottom\":if(t)return n?nz:nP;return n?nP:nz;case\"left\":case\"right\":return n?nL:nT;default:return[]}}(nk(e),\"start\"===t,r);return o&&(a=a.map(e=>e+\"-\"+o),n&&(a=a.concat(a.map(n_)))),a}(u,b,v,k));let C=[u,...A],S=await rS(e,y),E=[],_=(null==(t=s.flip)?void 0:t.overflows)||[];if(p&&E.push(S[x]),h){let e=function(e,n,t){void 0===t&&(t=!1);let r=nA(e),o=nO(nE(e)),a=nC(o),i=\"x\"===o?r===(t?\"end\":\"start\")?\"right\":\"left\":\"start\"===r?\"bottom\":\"top\";return n.reference[a]>n.floating[a]&&(i=nR(i)),[i,nR(i)]}(l,c,k);E.push(S[e[0]],S[e[1]])}if(_=[..._,{placement:l,overflows:E}],!E.every(e=>e<=0)){let e=((null==(r=s.flip)?void 0:r.index)||0)+1,n=C[e];if(n&&(\"alignment\"!==h||w===nE(n)||_.every(e=>e.overflows[0]>0&&nE(e.placement)===w)))return{data:{index:e,overflows:_},reset:{placement:n}};let t=null==(o=_.filter(e=>e.overflows[0]<=0).sort((e,n)=>e.overflows[1]-n.overflows[1])[0])?void 0:o.placement;if(!t)switch(m){case\"bestFit\":{let e=null==(a=_.filter(e=>{if(O){let n=nE(e.placement);return n===w||\"y\"===n}return!0}).map(e=>[e.placement,e.overflows.filter(e=>e>0).reduce((e,n)=>e+n,0)]).sort((e,n)=>e[1]-n[1])[0])?void 0:a[0];e&&(t=e);break}case\"initialPlacement\":t=u}if(l!==t)return{reset:{placement:t}}}return{}}},options:[o,a]},es=ea?null:(l=e=>{var n,t,r;let o=eQ(e.elements.floating).documentElement;return{...G,rootBoundary:D?{x:0,y:0,width:o.clientWidth,height:o.clientHeight}:void 0,mainAxis:\"none\"!==H,crossAxis:ei,limiter:S||D?void 0:{...(void 0===(r=n=()=>{if(!J.current)return{};let{height:e}=J.current.getBoundingClientRect();return{offset:e/2+(\"number\"==typeof O?O:0)}})&&(r={}),{options:r,fn(e){let{x:n,y:t,placement:o,rects:a,middlewareData:i}=e,{offset:l=0,mainAxis:s=!0,crossAxis:c=!0}=nj(r,e),u={x:n,y:t},d=nE(o),f=nO(d),p=u[f],h=u[d],g=nj(l,e),m=\"number\"==typeof g?{mainAxis:g,crossAxis:0}:{mainAxis:0,crossAxis:0,...g};if(s){let e=\"y\"===f?\"height\":\"width\",n=a.reference[f]-a.floating[e]+m.mainAxis,t=a.reference[f]+a.reference[e]-m.mainAxis;p<n?p=n:p>t&&(p=t)}if(c){var v,b;let e=\"y\"===f?\"width\":\"height\",n=rP.has(nk(o)),t=a.reference[d]-a.floating[e]+(n&&(null==(v=i.offset)?void 0:v[d])||0)+(n?0:m.crossAxis),r=a.reference[d]+a.reference[e]+(n?0:(null==(b=i.offset)?void 0:b[d])||0)-(n?m.crossAxis:0);h<t?h=t:h>r&&(h=r)}return{[f]:p,[d]:h}}}),options:[n,t]}}},s=[G,S,D,O,H],{...(void 0===(c=l)&&(c={}),{name:\"shift\",options:c,async fn(e){let{x:n,y:t,placement:r}=e,{mainAxis:o=!0,crossAxis:a=!1,limiter:i={fn:e=>{let{x:n,y:t}=e;return{x:n,y:t}}},...l}=nj(c,e),s={x:n,y:t},u=await rS(e,l),d=nE(nk(r)),f=nO(d),p=s[f],h=s[d];if(o){let e=\"y\"===f?\"top\":\"left\",n=\"y\"===f?\"bottom\":\"right\",t=p+u[e],r=p-u[n];p=nm(t,ng(p,r))}if(a){let e=\"y\"===d?\"top\":\"left\",n=\"y\"===d?\"bottom\":\"right\",t=h+u[e],r=h-u[n];h=nm(t,ng(h,r))}let g=i.fn({...e,[f]:p,[d]:h});return{...g,data:{x:g.x-n,y:g.y-t,enabled:{[f]:o,[d]:a}}}}}),options:[l,s]});\"shift\"===I||\"shift\"===H||\"center\"===j?eo.push(es,el):eo.push(el,es),eo.push({...{name:\"size\",options:f=u={...G,apply({elements:{floating:e},rects:{reference:n},availableWidth:t,availableHeight:r}){Object.entries({\"--available-width\":`${t}px`,\"--available-height\":`${r}px`,\"--anchor-width\":`${n.width}px`,\"--anchor-height\":`${n.height}px`}).forEach(([n,t])=>{e.style.setProperty(n,t)})}},async fn(e){var n,t;let r,o,{placement:a,rects:i,platform:l,elements:s}=e,{apply:c=()=>{},...u}=nj(f,e),d=await rS(e,u),p=nk(a),h=nA(a),g=\"y\"===nE(a),{width:m,height:v}=i.floating;\"top\"===p||\"bottom\"===p?(r=p,o=h===(await (null==l.isRTL?void 0:l.isRTL(s.floating))?\"start\":\"end\")?\"left\":\"right\"):(o=p,r=\"end\"===h?\"top\":\"bottom\");let b=v-d.top-d.bottom,y=m-d.left-d.right,x=ng(v-d[r],b),w=ng(m-d[o],y),j=!e.middlewareData.shift,k=x,A=w;if(null!=(n=e.middlewareData.shift)&&n.enabled.x&&(A=y),null!=(t=e.middlewareData.shift)&&t.enabled.y&&(k=b),j&&!h){let e=nm(d.left,0),n=nm(d.right,0),t=nm(d.top,0),r=nm(d.bottom,0);g?A=m-2*(0!==e||0!==n?e+n:nm(d.left,d.right)):k=v-2*(0!==t||0!==r?t+r:nm(d.top,d.bottom))}await c({...e,availableWidth:A,availableHeight:k});let O=await l.getDimensions(s.floating);return m!==O.width||v!==O.height?{reset:{rects:!0}}:{}}},options:[u,d]},(p=()=>({element:J.current||document.createElement(\"div\"),padding:_}),h=[_],{name:\"arrow\",options:p,fn(e){let{element:n,padding:t}=p(e);return n&&({}).hasOwnProperty.call(n,\"current\")?null!=n.current?rX({element:n.current,padding:t}).fn(e):{}:n?rX({element:n,padding:t}).fn(e):{}},options:[p,h]}),{...(void 0===(v=g)&&(v={}),{name:\"hide\",options:v,async fn(e){let{rects:n}=e,{strategy:t=\"referenceHidden\",...r}=nj(v,e);switch(t){case\"referenceHidden\":{let t=rE(await rS(e,{...r,elementContext:\"reference\"}),n.reference);return{data:{referenceHiddenOffsets:t,referenceHidden:r_(t)}}}case\"escaped\":{let t=rE(await rS(e,{...r,altBoundary:!0}),n.floating);return{data:{escapedOffsets:t,escaped:r_(t)}}}default:return{}}}}),options:[g,m]},{name:\"transformOrigin\",fn(e){let{elements:n,middlewareData:t,placement:r,rects:o,y:a}=e,i=nk(r),l=nE(i),s=J.current,c=t.arrow?.x||0,u=t.arrow?.y||0,d=s?.clientWidth||0,f=s?.clientHeight||0,p=c+d/2,h=u+f/2,g=Math.abs(t.shift?.y||0),m=o.reference.height/2,v=g>(\"function\"==typeof w?w(r2(e,x,X)):w),b={top:`${p}px calc(100% + ${w}px)`,bottom:`${p}px ${-w}px`,left:`calc(100% + ${w}px) ${h}px`,right:`${-w}px ${h}px`}[i],y=`${p}px ${o.reference.y+m-a}px`;return n.floating.style.setProperty(\"--transform-origin\",ei&&\"y\"===l&&v?y:b),{}}},M);let ec=L;!R&&L&&(ec={...L,elements:{reference:null,floating:null,domReference:null}});let eu=C.useMemo(()=>({elementResize:P&&\"undefined\"!=typeof ResizeObserver,layoutShift:P&&\"undefined\"!=typeof IntersectionObserver}),[P]),{refs:ed,elements:ef,x:ep,y:eh,middlewareData:eg,update:em,placement:ev,context:eb,isPositioned:ey,floatingStyles:ex}=function(e={}){let{nodeId:n}=e,t=Y({...e,elements:{reference:null,floating:null,...e.elements}}),r=e.rootContext||t,o=r.elements,[a,i]=C.useState(null),[l,s]=C.useState(null),c=o?.domReference||a,u=C.useRef(null),d=W();F(()=>{c&&(u.current=c)},[c]);let f=function(e){void 0===e&&(e={});let{placement:n=\"bottom\",strategy:t=\"absolute\",middleware:r=[],platform:o,elements:{reference:a,floating:i}={},transform:l=!0,whileElementsMounted:s,open:c}=e,[u,d]=C.useState({x:0,y:0,strategy:t,placement:n,middlewareData:{},isPositioned:!1}),[f,p]=C.useState(r);rQ(f,r)||p(r);let[h,g]=C.useState(null),[m,v]=C.useState(null),b=C.useCallback(e=>{e!==j.current&&(j.current=e,g(e))},[]),y=C.useCallback(e=>{e!==k.current&&(k.current=e,v(e))},[]),x=a||h,w=i||m,j=C.useRef(null),k=C.useRef(null),A=C.useRef(u),O=null!=s,S=r0(s),_=r0(o),P=r0(c),z=C.useCallback(()=>{if(!j.current||!k.current)return;let e={placement:n,strategy:t,middleware:f};_.current&&(e.platform=_.current),((e,n,t)=>{let r=new Map,o={platform:r$,...t},a={...o.platform,_c:r};return rC(e,n,{...o,platform:a})})(j.current,k.current,e).then(e=>{let n={...e,isPositioned:!1!==P.current};L.current&&!rQ(A.current,n)&&(A.current=n,E.flushSync(()=>{d(n)}))})},[f,n,t,_,P]);rK(()=>{!1===c&&A.current.isPositioned&&(A.current.isPositioned=!1,d(e=>({...e,isPositioned:!1})))},[c]);let L=C.useRef(!1);rK(()=>(L.current=!0,()=>{L.current=!1}),[]),rK(()=>{if(x&&(j.current=x),w&&(k.current=w),x&&w){if(S.current)return S.current(x,w,z);z()}},[x,w,z,S,O]);let T=C.useMemo(()=>({reference:j,floating:k,setReference:b,setFloating:y}),[b,y]),R=C.useMemo(()=>({reference:x,floating:w}),[x,w]),N=C.useMemo(()=>{let e={position:t,left:0,top:0};if(!R.floating)return e;let n=rJ(R.floating,u.x),r=rJ(R.floating,u.y);return l?{...e,transform:\"translate(\"+n+\"px, \"+r+\"px)\",...rG(R.floating)>=1.5&&{willChange:\"transform\"}}:{position:t,left:n,top:r}},[t,l,R.floating,u.x,u.y]);return C.useMemo(()=>({...u,update:z,refs:T,elements:R,floatingStyles:N}),[u,z,T,R,N])}({...e,elements:{...o,...l&&{reference:l}}}),p=C.useCallback(e=>{let n=ee(e)?{getBoundingClientRect:()=>e.getBoundingClientRect(),getClientRects:()=>e.getClientRects(),contextElement:e}:e;s(n),f.refs.setReference(n)},[f.refs]),h=C.useCallback(e=>{(ee(e)||null===e)&&(u.current=e,i(e)),(ee(f.refs.reference.current)||null===f.refs.reference.current||null!==e&&!ee(e))&&f.refs.setReference(e)},[f.refs]),g=C.useMemo(()=>({...f.refs,setReference:h,setPositionReference:p,domReference:u}),[f.refs,h,p]),m=C.useMemo(()=>({...f.elements,domReference:c}),[f.elements,c]),v=C.useMemo(()=>({...f,...r,refs:g,elements:m,nodeId:n}),[f,g,m,n,r]);return F(()=>{r.dataRef.current.floatingContext=v;let e=d?.nodesRef.current.find(e=>e.id===n);e&&(e.context=v)}),C.useMemo(()=>({...f,context:v,refs:g,elements:m}),[f,g,m,v])}({rootContext:ec,placement:Q,middleware:eo,strategy:y,whileElementsMounted:z?void 0:(...e)=>rY(...e,eu),nodeId:B}),{sideX:ew,sideY:ej}=eg.adaptiveOrigin||{},ek=C.useMemo(()=>M?{position:y,[ew]:`${ep}px`,[ej]:`${eh}px`}:ex,[M,ew,ej,y,ep,eh,ex]),eO=C.useRef(null);F(()=>{if(!R)return;let e=Z.current,n=\"function\"==typeof e?e():e,t=(r5(n)?n.current:n)||null;t!==eO.current&&(ed.setPositionReference(t),eO.current=t)},[R,ed,$,Z]),C.useEffect(()=>{if(!R)return;let e=Z.current;\"function\"!=typeof e&&r5(e)&&e.current!==eO.current&&(ed.setPositionReference(e.current),eO.current=e.current)},[R,ed,$,Z]),C.useEffect(()=>{if(z&&R&&ef.domReference&&ef.floating)return rY(ef.domReference,ef.floating,em,eu)},[z,R,ef,em,eu]);let eC=r1(x,nk(ev),X),eS=nA(ev)||\"center\",eE=!!eg.hide?.referenceHidden,e_=C.useMemo(()=>({position:\"absolute\",top:eg.arrow?.y,left:eg.arrow?.x}),[eg.arrow]),eP=eg.arrow?.centerOffset!==0;return C.useMemo(()=>({positionerStyles:ek,arrowStyles:e_,arrowRef:J,arrowUncentered:eP,side:eC,align:eS,anchorHidden:eE,refs:ed,context:eb,isPositioned:ey,update:em}),[ek,e_,J,eP,eC,eS,eE,ed,eb,ey,em])}function r5(e){return null!=e&&\"current\"in e}function r3(e){let{children:n,elementsRef:t,labelsRef:r,onMapChange:o}=e,a=C.useRef(0),i=P(r9).current,s=P(r6).current,[c,u]=C.useState(0),d=C.useRef(c),f=T((e,n)=>{s.set(e,n??null),d.current+=1,u(d.current)}),p=T(e=>{s.delete(e),d.current+=1,u(d.current)}),h=C.useMemo(()=>{let e=new Map;return Array.from(s.keys()).sort(r8).forEach((n,t)=>{let r=s.get(n)??{};e.set(n,{...r,index:t})}),e},[s,c]);F(()=>{d.current===c&&(t.current.length!==h.size&&(t.current.length=h.size),r&&r.current.length!==h.size&&(r.current.length=h.size)),o?.(h)},[o,h,t,r,c,d]);let g=T(e=>(i.add(e),()=>{i.delete(e)}));F(()=>{i.forEach(e=>e(h))},[i,h]);let m=C.useMemo(()=>({register:f,unregister:p,subscribeMapChange:g,elementsRef:t,labelsRef:r,nextIndexRef:a}),[f,p,g,t,r,a]);return(0,l.jsx)(tC.Provider,{value:m,children:n})}function r6(){return new Map}function r9(){return new Set}function r8(e,n){let t=e.compareDocumentPosition(n);return t&Node.DOCUMENT_POSITION_FOLLOWING||t&Node.DOCUMENT_POSITION_CONTAINED_BY?-1:t&Node.DOCUMENT_POSITION_PRECEDING||t&Node.DOCUMENT_POSITION_CONTAINS?1:0}let r7=C.forwardRef(function(e,n){let t,{cutout:r,...o}=e;if(r){let e=r?.getBoundingClientRect();t=`polygon(\n 0% 0%,\n 100% 0%,\n 100% 100%,\n 0% 100%,\n 0% 0%,\n ${e.left}px ${e.top}px,\n ${e.left}px ${e.bottom}px,\n ${e.right}px ${e.bottom}px,\n ${e.right}px ${e.top}px,\n ${e.left}px ${e.top}px\n )`}return(0,l.jsx)(\"div\",{ref:n,role:\"presentation\",\"data-base-ui-inert\":\"\",...o,style:{position:\"fixed\",inset:0,userSelect:\"none\",WebkitUserSelect:\"none\",clipPath:t}})}),oe=C.forwardRef(function(e,n){var t;let{anchor:r,positionMethod:o=\"absolute\",className:a,render:i,side:s,align:c,sideOffset:u=0,alignOffset:d=0,collisionBoundary:f=\"clipping-ancestors\",collisionPadding:p=5,arrowPadding:h=5,sticky:g=!1,trackAnchor:m=!0,collisionAvoidance:v=no,...b}=e,{open:y,setOpen:x,floatingRootContext:w,setPositionerElement:j,itemDomElements:k,itemLabels:A,mounted:O,modal:S,lastOpenChangeReason:E,parent:_,setHoverEnabled:P,triggerElement:z}=n0(),L=function(){let e=C.useContext(rj);if(void 0===e)throw Error(\"Base UI: <Menu.Portal> is missing.\");return e}(),T=function(e){let n=H(),t=W(),r=q();return F(()=>{if(!n)return;let e={id:n,parentId:r};return t?.addNode(e),()=>{t?.removeNode(e)}},[t,n,r]),n}(),R=q(),N=ta(!0),D=r,B=u,M=d,I=c;\"context-menu\"===_.type&&(D=_.context?.anchor??r,I=e.align??\"start\",M=e.alignOffset??2,B=e.sideOffset??-5);let U=s,V=I;\"menu\"===_.type?(U=U??\"inline-end\",V=V??\"start\"):\"menubar\"===_.type&&(U=U??\"bottom\",V=V??\"start\");let Z=\"context-menu\"===_.type,Y=r4({anchor:D,floatingRootContext:w,positionMethod:N?\"fixed\":o,mounted:O,side:U,sideOffset:B,align:V,alignOffset:M,arrowPadding:Z?0:h,collisionBoundary:f,collisionPadding:p,sticky:g,nodeId:T,keepMounted:L,trackAnchor:m,collisionAvoidance:v,shiftCrossAxis:Z}),{events:X}=W(),K=C.useMemo(()=>{let e={};return y||(e.pointerEvents=\"none\"),{role:\"presentation\",hidden:!O,style:{...Y.positionerStyles,...e}}},[y,O,Y.positionerStyles]);C.useEffect(()=>{function e(e){e.open?(e.parentNodeId===T&&P(!1),e.nodeId!==T&&e.parentNodeId===R&&x(!1,void 0,\"sibling-open\")):e.parentNodeId===T&&P(!0)}return X.on(\"openchange\",e),()=>{X.off(\"openchange\",e)}},[X,T,R,x,P]),C.useEffect(()=>{X.emit(\"openchange\",{open:y,nodeId:T,parentNodeId:R})},[X,y,T,R]);let Q=C.useMemo(()=>({open:y,side:Y.side,align:Y.align,anchorHidden:Y.anchorHidden,nested:\"menu\"===_.type}),[y,Y.side,Y.align,Y.anchorHidden,_.type]),G=C.useMemo(()=>({side:Y.side,align:Y.align,arrowRef:Y.arrowRef,arrowUncentered:Y.arrowUncentered,arrowStyles:Y.arrowStyles,floatingContext:Y.context}),[Y.side,Y.align,Y.arrowRef,Y.arrowUncentered,Y.arrowStyles,Y.context]),J=tj(\"div\",e,{state:Q,customStyleHookMapping:tV,ref:[n,j],props:{...K,...b}}),ee=O&&\"menu\"!==_.type&&(\"menubar\"!==_.type&&S&&\"trigger-hover\"!==E||\"menubar\"===_.type&&_.context.modal),en=null;return\"menubar\"===_.type?en=_.context.contentElement:void 0===_.type&&(en=z),(0,l.jsxs)(rA.Provider,{value:G,children:[ee&&(0,l.jsx)(r7,{ref:\"context-menu\"===_.type||\"nested-context-menu\"===_.type?_.context.internalBackdropRef:null,inert:(t=!y,tw>=19?t:t?\"true\":void 0),cutout:en}),(0,l.jsx)($,{id:T,children:(0,l.jsx)(r3,{elementsRef:k,labelsRef:A,children:J})})]})}),on={inert:new WeakMap,\"aria-hidden\":new WeakMap,none:new WeakMap};function ot(e){return\"inert\"===e?on.inert:\"aria-hidden\"===e?on[\"aria-hidden\"]:on.none}let or=new WeakSet,oo={},oa=0,oi=e=>e&&(e.host||oi(e.parentNode));function ol(e,n=!1,t=!1){let r=eQ(e[0]).body;return function(e,n,t,r){let o=\"data-base-ui-inert\",a=r?\"inert\":t?\"aria-hidden\":null,i=e.map(e=>{if(n.contains(e))return e;let t=oi(e);return n.contains(t)?t:null}).filter(e=>null!=e),l=new Set,s=new Set(i),c=[];oo[o]||(oo[o]=new WeakMap);let u=oo[o];return i.forEach(function e(n){!(!n||l.has(n))&&(l.add(n),n.parentNode&&e(n.parentNode))}),function e(n){!n||s.has(n)||[].forEach.call(n.children,n=>{if(\"script\"!==K(n))if(l.has(n))e(n);else{let e=a?n.getAttribute(a):null,t=null!==e&&\"false\"!==e,r=ot(a),i=(r.get(n)||0)+1,l=(u.get(n)||0)+1;r.set(n,i),u.set(n,l),c.push(n),1===i&&t&&or.add(n),1===l&&n.setAttribute(o,\"\"),!t&&a&&n.setAttribute(a,\"inert\"===a?\"\":\"true\")}})}(n),l.clear(),oa+=1,()=>{c.forEach(e=>{let n=ot(a),t=(n.get(e)||0)-1,r=(u.get(e)||0)-1;n.set(e,t),u.set(e,r),t||(!or.has(e)&&a&&e.removeAttribute(a),or.delete(e)),r||e.removeAttribute(o)}),(oa-=1)||(on.inert=new WeakMap,on[\"aria-hidden\"]=new WeakMap,on.none=new WeakMap,or=new WeakSet,oo={})}}(e.concat(Array.from(r.querySelectorAll(\"[aria-live]\"))),r,n,t)}let os=[];function oc(){return os.slice().reverse().find(e=>e.isConnected)}function ou(e,n){if(!n.current.includes(\"floating\")&&!e.getAttribute(\"role\")?.includes(\"dialog\"))return;let t=rd(),r=rc(e,t).filter(e=>{let n=e.getAttribute(\"data-tabindex\")||\"\";return ru(e,t)||e.hasAttribute(\"data-tabindex\")&&!n.startsWith(\"-\")}),o=e.getAttribute(\"tabindex\");n.current.includes(\"floating\")||0===r.length?\"0\"!==o&&e.setAttribute(\"tabindex\",\"0\"):(\"-1\"!==o||e.hasAttribute(\"data-tabindex\")&&\"-1\"!==e.getAttribute(\"data-tabindex\"))&&(e.setAttribute(\"tabindex\",\"-1\"),e.setAttribute(\"data-tabindex\",\"-1\"))}let od=C.forwardRef(function(e,n){return(0,l.jsx)(\"button\",{...e,type:\"button\",ref:n,tabIndex:-1,style:t$})});function of(e){let{context:n,children:t,disabled:r=!1,order:o=[\"content\"],guards:a=!0,initialFocus:i=0,returnFocus:s=!0,restoreFocus:c=!1,modal:u=!0,visuallyHiddenDismiss:d=!1,closeOnFocusOut:f=!0,outsideElementsInert:p=!1,getInsideElements:h=()=>[]}=e,{open:g,onOpenChange:m,events:v,dataRef:b,elements:{domReference:y,floating:x}}=n,w=T(()=>b.current.floatingContext?.nodeId),j=T(h),k=\"number\"==typeof i&&i<0,A=eJ(y)&&k,O=\"undefined\"!=typeof HTMLElement&&\"inert\"in HTMLElement.prototype,S=!O||a,E=!S||O&&p,_=eA(o),P=eA(i),z=eA(s),L=W(),R=rb(),N=C.useRef(null),D=C.useRef(null),B=C.useRef(!1),M=C.useRef(!1),I=C.useRef(-1),H=null!=R,U=e0(x),V=T((e=U)=>e?rs(e,rd()):[]),q=T(e=>{let n=V(e);return _.current.map(e=>y&&\"reference\"===e?y:U&&\"floating\"===e?U:n).filter(Boolean).flat()});C.useEffect(()=>{if(r||!u)return;function e(e){if(\"Tab\"===e.key){eY(U,eZ(eQ(U)))&&0===V().length&&!A&&eD(e);let n=q(),t=eX(e);\"reference\"===_.current[0]&&t===y&&(eD(e),e.shiftKey?nq(n[n.length-1]):nq(n[1])),\"floating\"===_.current[1]&&t===U&&e.shiftKey&&(eD(e),nq(n[0]))}}let n=eQ(U);return n.addEventListener(\"keydown\",e),()=>{n.removeEventListener(\"keydown\",e)}},[r,y,U,u,_,A,V,q]),C.useEffect(()=>{if(!r&&x)return x.addEventListener(\"focusin\",e),()=>{x.removeEventListener(\"focusin\",e)};function e(e){let n=eX(e),t=V().indexOf(n);-1!==t&&(I.current=t)}},[r,x,V]),C.useEffect(()=>{if(!r&&f&&x&&en(y))return y.addEventListener(\"focusout\",n),y.addEventListener(\"pointerdown\",e),x.addEventListener(\"focusout\",n),()=>{y.removeEventListener(\"focusout\",n),y.removeEventListener(\"pointerdown\",e),x.removeEventListener(\"focusout\",n)};function e(){M.current=!0,setTimeout(()=>{M.current=!1})}function n(e){let n=e.relatedTarget,t=e.currentTarget,r=eX(e);queueMicrotask(()=>{let o=w(),a=!(eY(y,n)||eY(x,n)||eY(n,x)||eY(R?.portalNode,n)||n?.hasAttribute(e1(\"focus-guard\"))||L&&(e6(L.nodesRef.current,o).find(e=>eY(e.context?.elements.floating,n)||eY(e.context?.elements.domReference,n))||e9(L.nodesRef.current,o).find(e=>[e.context?.elements.floating,e0(e.context?.elements.floating)].includes(n)||e.context?.elements.domReference===n)));if(t===y&&U&&ou(U,_),c&&t!==y&&!r?.isConnected&&eZ(eQ(U))===eQ(U).body){en(U)&&U.focus();let e=I.current,n=V(),t=n[e]||n[n.length-1]||U;en(t)&&t.focus()}if(b.current.insideReactTree){b.current.insideReactTree=!1;return}(A||!u)&&n&&a&&!M.current&&n!==oc()&&(B.current=!0,m(!1,e,\"focus-out\"))})}},[r,y,x,U,u,L,R,m,f,c,V,A,w,_,b]);let $=C.useRef(null),Z=C.useRef(null),Y=tb($,R?.beforeInsideRef),X=tb(Z,R?.afterInsideRef);function Q(e){return!r&&d&&u?(0,l.jsx)(od,{ref:\"start\"===e?N:D,onClick:e=>m(!1,e.nativeEvent),children:\"string\"==typeof d?d:\"Dismiss\"}):null}C.useEffect(()=>{if(r||!x)return;let e=Array.from(R?.portalNode?.querySelectorAll(`[${e1(\"portal\")}]`)||[]),n=L?e9(L.nodesRef.current,w()):[],t=L&&!u?n.map(e=>e.context?.elements.floating):[],o=[x,n.find(e=>eJ(e.context?.elements.domReference||null))?.context?.elements.domReference,...e,...t,...j(),N.current,D.current,$.current,Z.current,R?.beforeOutsideRef.current,R?.afterOutsideRef.current,_.current.includes(\"reference\")||A?y:null].filter(e=>null!=e),a=u||A?ol(o,!E,E):ol(o);return()=>{a()}},[r,y,x,u,_,R,A,S,E,L,w,j]),F(()=>{if(r||!en(U))return;let e=eZ(eQ(U));queueMicrotask(()=>{let n=q(U),t=P.current,r=(\"number\"==typeof t?n[t]:t.current)||U,o=eY(U,e);k||o||!g||nq(r,{preventScroll:r===U})})},[r,g,U,k,q,P]),F(()=>{var e;if(r||!U)return;let n=eQ(U);function t({reason:e,event:n,nested:t}){if([\"hover\",\"safe-polygon\"].includes(e)&&\"mouseleave\"===n.type&&(B.current=!0),\"outside-press\"===e)if(t)B.current=!1;else if(eB(n)||eM(n))B.current=!1;else{let e=!1;document.createElement(\"div\").focus({get preventScroll(){return e=!0,!1}}),e?B.current=!1:B.current=!0}}e=eZ(n),os=os.filter(e=>e.isConnected),e&&\"body\"!==K(e)&&(os.push(e),os.length>20&&(os=os.slice(-20))),v.on(\"openchange\",t);let o=n.createElement(\"span\");return o.setAttribute(\"tabindex\",\"-1\"),o.setAttribute(\"aria-hidden\",\"true\"),Object.assign(o.style,t$),H&&y&&y.insertAdjacentElement(\"afterend\",o),()=>{v.off(\"openchange\",t);let e=eZ(n),r=eY(x,e)||L&&e6(L.nodesRef.current,w(),!1).some(n=>eY(n.context?.elements.floating,e)),a=function(){if(\"boolean\"==typeof z.current){let e=y||oc();return e&&e.isConnected?e:o}return z.current.current||o}();queueMicrotask(()=>{let t=function(e){let n=rd();return ru(e,n)?e:rs(e,n)[0]||e}(a);z.current&&!B.current&&en(t)&&(t===e||e===n.body||r)&&t.focus({preventScroll:!0}),o.remove()})}},[r,x,U,z,b,v,L,H,y,w]),C.useEffect(()=>{queueMicrotask(()=>{B.current=!1})},[r]),F(()=>{if(!r&&R)return R.setFocusManagerState({modal:u,closeOnFocusOut:f,open:g,onOpenChange:m,domReference:y}),()=>{R.setFocusManagerState(null)}},[r,R,u,g,m,f,y]),F(()=>{!r&&U&&ou(U,_)},[r,U,_]);let G=!r&&S&&(!u||!A)&&(H||u);return(0,l.jsxs)(C.Fragment,{children:[G&&(0,l.jsx)(tZ,{\"data-type\":\"inside\",ref:Y,onFocus:e=>{if(u){let e=q();nq(\"reference\"===o[0]?e[0]:e[e.length-1])}else if(R?.preserveTabOrder&&R.portalNode)if(B.current=!1,rg(e,R.portalNode)){let e=rp(y);e?.focus()}else R.beforeOutsideRef.current?.focus()}}),!A&&Q(\"start\"),t,Q(\"end\"),G&&(0,l.jsx)(tZ,{\"data-type\":\"inside\",ref:X,onFocus:e=>{if(u)nq(q()[0]);else if(R?.preserveTabOrder&&R.portalNode)if(f&&(B.current=!0),rg(e,R.portalNode)){let e=rh(y);e?.focus()}else R.afterOutsideRef.current?.focus()}})]})}let op={...tV,...tT},oh=C.forwardRef(function(e,n){let{render:t,className:r,finalFocus:o,...a}=e,{open:i,setOpen:s,popupRef:c,transitionStatus:u,popupProps:d,mounted:f,instantType:p,onOpenChangeComplete:h,parent:g,lastOpenChangeReason:m,rootId:v}=n0(),{side:b,align:y,floatingContext:x}=function(){let e=C.useContext(rA);if(void 0===e)throw Error(\"Base UI: MenuPositionerContext is missing. MenuPositioner parts must be placed within <Menu.Positioner>.\");return e}();n5({open:i,ref:c,onComplete(){i&&h?.(!0)}});let{events:w}=W();C.useEffect(()=>{function e(e){s(!1,e.domEvent,e.reason)}return w.on(\"close\",e),()=>{w.off(\"close\",e)}},[w,s]);let j=tj(\"div\",e,{state:C.useMemo(()=>({transitionStatus:u,side:b,align:y,open:i,nested:\"menu\"===g.type,instant:p}),[u,b,y,i,g.type,p]),ref:[n,c],customStyleHookMapping:op,props:[d,\"starting\"===u?nt:nr,a,{\"data-rootownerid\":v}]}),k=void 0===g.type||\"context-menu\"===g.type;return\"menubar\"===g.type&&\"outside-press\"!==m&&(k=!0),(0,l.jsx)(of,{context:x,modal:!1,disabled:!f,returnFocus:o||k,initialFocus:\"menu\"===g.type?-1:0,restoreFocus:!0,children:j})}),og=C.createContext(void 0),om=C.forwardRef(function(e,n){let{render:t,className:r,...o}=e,[a,i]=C.useState(void 0),s=C.useMemo(()=>({setLabelId:i}),[i]),c=tj(\"div\",e,{ref:n,props:{role:\"group\",\"aria-labelledby\":a,...o}});return(0,l.jsx)(og.Provider,{value:s,children:c})});function ov(e){return H(e,\"base-ui\")}let ob=C.forwardRef(function(e,n){let{className:t,render:r,id:o,...a}=e,i=ov(o),{setLabelId:l}=function(){let e=C.useContext(og);if(void 0===e)throw Error(\"Base UI: MenuGroupRootContext is missing. Menu group parts must be used within <Menu.Group>.\");return e}();return F(()=>(l(i),()=>{l(void 0)}),[l,i]),tj(\"div\",e,{ref:n,props:{id:i,role:\"presentation\",...a}})}),oy={type:\"regular-item\"},ox=C.memo(C.forwardRef(function(e,n){let{className:t,closeOnClick:r=!0,disabled:o=!1,highlighted:a,id:i,menuEvents:l,itemProps:s,render:c,allowMouseUpTriggerRef:u,typingRef:d,nativeButton:f,...p}=e,{getItemProps:h,itemRef:g}=function(e){let{closeOnClick:n,disabled:t=!1,highlighted:r,id:o,menuEvents:a,allowMouseUpTriggerRef:i,typingRef:l,nativeButton:s,itemMetadata:c}=e,u=C.useRef(null),{getButtonProps:d,buttonRef:f}=tq({disabled:t,focusableWhenDisabled:!0,native:s}),p=C.useCallback(e=>tc({id:o,role:\"menuitem\",tabIndex:r?0:-1,onMouseEnter(){\"submenu-trigger\"===c.type&&c.setActive()},onKeyUp:e=>{\" \"===e.key&&l.current&&e.preventBaseUIHandler()},onClick:e=>{n&&a.emit(\"close\",{domEvent:e,reason:\"item-press\"})},onMouseUp:()=>{u.current&&i.current&&\"regular-item\"===c.type&&u.current.click()}},e,d),[o,r,d,l,n,a,i,c]),h=tb(u,f);return C.useMemo(()=>({getItemProps:p,itemRef:h}),[p,h])}({closeOnClick:r,disabled:o,highlighted:a,id:i,menuEvents:l,allowMouseUpTriggerRef:u,typingRef:d,nativeButton:f,itemMetadata:oy});return tj(\"div\",e,{state:C.useMemo(()=>({disabled:o,highlighted:a}),[o,a]),ref:[g,n],props:[s,p,h]})})),ow=C.forwardRef(function(e,n){let{id:t,label:r,nativeButton:o=!1,...a}=e,i=C.useRef(null),s=tE({label:r}),c=tb(n,s.ref,i),{itemProps:u,activeIndex:d,allowMouseUpTriggerRef:f,typingRef:p}=n0(),h=ov(t),g=s.index===d,{events:m}=W();return(0,l.jsx)(ox,{...a,id:h,ref:c,highlighted:g,menuEvents:m,itemProps:u,allowMouseUpTriggerRef:f,typingRef:p,nativeButton:o})});var oj=\"__next_builtin__\";function ok(e){return e.replace(new RegExp(\"^\".concat(oj)),\"\").replace(new RegExp(\"\".concat(\"@boundary\",\"$\")),\"\")}var oA=\"boundary:\";function oO(e){return e.startsWith(oA)}var oC=t(\"./src/next-devtools/dev-overlay/components/errors/dev-tools-indicator/utils.ts\");function oS(e,n){(null==n||n>e.length)&&(n=e.length);for(var t=0,r=Array(n);t<n;t++)r[t]=e[t];return r}function oE(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{},r=Object.keys(t);\"function\"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(t).filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.forEach(function(n){var r;r=t[n],n in e?Object.defineProperty(e,n,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[n]=r})}return e}function o_(e,n){return n=null!=n?n:{},Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):(function(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t.push.apply(t,r)}return t})(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}),e}function oP(e,n){return function(e){if(Array.isArray(e))return e}(e)||function(e,n){var t,r,o=null==e?null:\"undefined\"!=typeof Symbol&&e[Symbol.iterator]||e[\"@@iterator\"];if(null!=o){var a=[],i=!0,l=!1;try{for(o=o.call(e);!(i=(t=o.next()).done)&&(a.push(t.value),!n||a.length!==n);i=!0);}catch(e){l=!0,r=e}finally{try{i||null==o.return||o.return()}finally{if(l)throw r}}return a}}(e,n)||function(e,n){if(e){if(\"string\"==typeof e)return oS(e,n);var t=Object.prototype.toString.call(e).slice(8,-1);if(\"Object\"===t&&e.constructor&&(t=e.constructor.name),\"Map\"===t||\"Set\"===t)return Array.from(t);if(\"Arguments\"===t||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t))return oS(e,n)}}(e,n)||function(){throw TypeError(\"Invalid attempt to destructure non-iterable instance.\\\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\")}()}var oz=function(){for(var e=arguments.length,n=Array(e),t=0;t<e;t++)n[t]=arguments[t];return function(e){n.forEach(function(n){\"function\"==typeof n?n(e):n&&(n.current=e)})}};function oL(e){var n,t,r=e.nodeState,o=e.boundaries,a=r.pagePath,i=r.boundaryType,s=r.setBoundaryType,c=oP((0,C.useState)(!1),2),u=c[0],d=c[1],f=oP((0,C.useState)(function(){return document.querySelector(\"nextjs-portal\").shadowRoot}),1)[0],p=(0,C.useRef)(f),h=(0,C.useRef)(null),g=(0,C.useRef)(null);(0,oC.O8)(g,h,u,function(){d(!1)},null==(n=h.current)?void 0:n.ownerDocument);var m=Object.values(o).find(function(e){return null!==e}),v=m?null==(t=m.split(\".\"))?void 0:t.pop():\"js\",b=(0,C.useMemo)(function(){return Object.fromEntries(Object.entries(o).map(function(e){var n=oP(e,2),t=n[0],r=ok((n[1]||\"\").split(\"/\").pop()||\"\".concat(t,\".\").concat(v));return[t,r]}))},[o,v]),y=(a||\"\").split(\"/\").pop()||\"\",x=ok(i?\"page.\".concat(v):y||\"page.\".concat(v)),w=[{label:b.loading,value:\"loading\",icon:(0,l.jsx)(oT,{}),disabled:!o.loading},{label:b.error,value:\"error\",icon:(0,l.jsx)(oR,{}),disabled:!o.error},{label:b[\"not-found\"],value:\"not-found\",icon:(0,l.jsx)(oN,{}),disabled:!o[\"not-found\"]}],j={label:i?\"Reset\":x,value:\"reset\",icon:(0,l.jsx)(oD,{}),disabled:null===i},k=(0,C.useCallback)(function(e){var n=new URLSearchParams({file:e.filePath,isAppRelativePath:\"1\"});fetch(\"\".concat( false||\"\",\"/__nextjs_launch-editor?\").concat(n.toString())).catch(console.warn)},[]),A=(0,C.useCallback)(function(e){switch(e){case\"not-found\":case\"loading\":case\"error\":s(e);break;case\"reset\":s(null);break;case\"open-editor\":a&&k({filePath:a})}},[s,a,k]),O=(0,C.useMemo)(function(){return\"layout\"!==r.type&&\"template\"!==r.type&&Object.values(o).some(function(e){return null!==e})},[r.type,o]);return(0,l.jsxs)(tv,{delay:0,modal:!1,open:u,onOpenChange:d,children:[(0,l.jsx)(tW,{className:\"segment-boundary-trigger\",\"data-nextjs-dev-overlay-segment-boundary-trigger-button\":!0,render:function(e){var n=oz(e.ref,h);return(0,l.jsx)(oM,o_(oE({},e),{ref:n}))},disabled:!O}),(0,l.jsx)(rk,{container:p,children:(0,l.jsx)(oe,{className:\"segment-boundary-dropdown-positioner\",side:\"bottom\",align:\"center\",sideOffset:6,arrowPadding:8,ref:g,children:(0,l.jsxs)(oh,{className:\"segment-boundary-dropdown\",children:[(0,l.jsxs)(om,{children:[(0,l.jsx)(ob,{className:\"segment-boundary-group-label\",children:\"Toggle Overrides\"}),w.map(function(e){return(0,l.jsxs)(ow,{className:\"segment-boundary-dropdown-item\",onClick:function(){return A(e.value)},disabled:e.disabled,children:[e.icon,e.label]},e.value)})]}),(0,l.jsx)(om,{children:(0,l.jsxs)(ow,{className:\"segment-boundary-dropdown-item\",onClick:function(){return A(j.value)},disabled:j.disabled,children:[j.icon,j.label]},j.value)})]})})})]})}function oT(){return(0,l.jsxs)(\"svg\",{width:\"20px\",height:\"20px\",viewBox:\"0 0 20 20\",fill:\"none\",xmlns:\"http://www.w3.org/2000/svg\",children:[(0,l.jsx)(\"g\",{clipPath:\"url(#clip0_2759_1866)\",children:(0,l.jsx)(\"path\",{fillRule:\"evenodd\",clipRule:\"evenodd\",d:\"M10 3.5C13.5899 3.5 16.5 6.41015 16.5 10C16.5 13.5899 13.5899 16.5 10 16.5C6.41015 16.5 3.5 13.5899 3.5 10C3.5 6.41015 6.41015 3.5 10 3.5ZM2 10C2 14.4183 5.58172 18 10 18C14.4183 18 18 14.4183 18 10C18 5.58172 14.4183 2 10 2C5.58172 2 2 5.58172 2 10ZM10.75 9.62402V6H9.25V9.875C9.25 10.1898 9.39858 10.486 9.65039 10.6748L11.5498 12.0996L12.1504 12.5498L13.0498 11.3496L12.4502 10.9004L10.75 9.62402Z\",fill:\"currentColor\"})}),(0,l.jsx)(\"defs\",{children:(0,l.jsx)(\"clipPath\",{id:\"clip0_2759_1866\",children:(0,l.jsx)(\"rect\",{width:\"16\",height:\"16\",fill:\"white\",transform:\"translate(2 2)\"})})})]})}function oR(){return(0,l.jsxs)(\"svg\",{width:\"20\",height:\"20\",viewBox:\"0 0 20 20\",fill:\"none\",xmlns:\"http://www.w3.org/2000/svg\",children:[(0,l.jsx)(\"g\",{clipPath:\"url(#clip0_2759_1881)\",children:(0,l.jsx)(\"path\",{fillRule:\"evenodd\",clipRule:\"evenodd\",d:\"M3.5 7.30762V12.6924L7.30762 16.5H12.6924L16.5 12.6924V7.30762L12.6924 3.5H7.30762L3.5 7.30762ZM18 12.8994L17.9951 12.998C17.9724 13.2271 17.8712 13.4423 17.707 13.6064L13.6064 17.707L13.5332 17.7734C13.3806 17.8985 13.1944 17.9757 12.998 17.9951L12.8994 18H7.10059L7.00195 17.9951C6.80562 17.9757 6.6194 17.8985 6.4668 17.7734L6.39355 17.707L2.29297 13.6064C2.12883 13.4423 2.02756 13.2271 2.00488 12.998L2 12.8994V7.10059C2 6.83539 2.10546 6.58109 2.29297 6.39355L6.39355 2.29297C6.55771 2.12883 6.77294 2.02756 7.00195 2.00488L7.10059 2H12.8994L12.998 2.00488C13.2271 2.02756 13.4423 2.12883 13.6064 2.29297L17.707 6.39355C17.8945 6.58109 18 6.83539 18 7.10059V12.8994ZM9.25 5.75H10.75L10.75 10.75H9.25L9.25 5.75ZM10 14C10.5523 14 11 13.5523 11 13C11 12.4477 10.5523 12 10 12C9.44772 12 9 12.4477 9 13C9 13.5523 9.44772 14 10 14Z\",fill:\"currentColor\"})}),(0,l.jsx)(\"defs\",{children:(0,l.jsx)(\"clipPath\",{id:\"clip0_2759_1881\",children:(0,l.jsx)(\"rect\",{width:\"16\",height:\"16\",fill:\"white\",transform:\"translate(2 2)\"})})})]})}function oN(){return(0,l.jsx)(\"svg\",{width:\"20px\",height:\"20px\",viewBox:\"0 0 20 20\",fill:\"none\",xmlns:\"http://www.w3.org/2000/svg\",children:(0,l.jsx)(\"path\",{fillRule:\"evenodd\",clipRule:\"evenodd\",d:\"M10.5586 2.5C11.1341 2.50004 11.6588 2.8294 11.9091 3.34766L17.8076 15.5654C18.1278 16.2292 17.6442 16.9997 16.9072 17H3.09274C2.35574 16.9997 1.8721 16.2292 2.19235 15.5654L8.09079 3.34766C8.34109 2.8294 8.86583 2.50004 9.44137 2.5H10.5586ZM3.89059 15.5H16.1093L10.5586 4H9.44137L3.89059 15.5ZM9.24997 6.75H10.75L10.75 10.75H9.24997L9.24997 6.75ZM9.99997 14C10.5523 14 11 13.5523 11 13C11 12.4477 10.5523 12 9.99997 12C9.44768 12 8.99997 12.4477 8.99997 13C8.99997 13.5523 9.44768 14 9.99997 14Z\",fill:\"currentColor\"})})}function oD(){return(0,l.jsx)(\"svg\",{width:\"20\",height:\"20\",viewBox:\"0 0 20 20\",fill:\"none\",xmlns:\"http://www.w3.org/2000/svg\",children:(0,l.jsx)(\"path\",{d:\"M9.96484 3C13.8463 3.00018 17 6.13012 17 10C17 13.8699 13.8463 16.9998 9.96484 17C7.62404 17 5.54877 15.8617 4.27051 14.1123L3.82812 13.5068L5.03906 12.6221L5.48145 13.2275C6.48815 14.6053 8.12092 15.5 9.96484 15.5C13.0259 15.4998 15.5 13.0335 15.5 10C15.5 6.96654 13.0259 4.50018 9.96484 4.5C7.42905 4.5 5.29544 6.19429 4.63867 8.5H8V10H2.75C2.33579 10 2 9.66421 2 9.25V4H3.5V7.2373C4.57781 4.74376 7.06749 3 9.96484 3Z\",fill:\"currentColor\"})})}function oB(e){return(0,l.jsx)(\"svg\",o_(oE({strokeLinejoin:\"round\",viewBox:\"0 0 16 16\"},e),{children:(0,l.jsx)(\"path\",{fillRule:\"evenodd\",clipRule:\"evenodd\",d:\"M8.7071 2.39644C8.31658 2.00592 7.68341 2.00592 7.29289 2.39644L4.46966 5.21966L3.93933 5.74999L4.99999 6.81065L5.53032 6.28032L7.99999 3.81065L10.4697 6.28032L11 6.81065L12.0607 5.74999L11.5303 5.21966L8.7071 2.39644ZM5.53032 9.71966L4.99999 9.18933L3.93933 10.25L4.46966 10.7803L7.29289 13.6035C7.68341 13.9941 8.31658 13.9941 8.7071 13.6035L11.5303 10.7803L12.0607 10.25L11 9.18933L10.4697 9.71966L7.99999 12.1893L5.53032 9.71966Z\",fill:\"currentColor\"})}))}function oM(e){return(0,l.jsx)(\"button\",o_(oE({},e),{children:(0,l.jsx)(\"span\",{className:\"segment-boundary-trigger-text\",children:(0,l.jsx)(oB,{className:\"plus-icon\"})})}))}let oI=C.createContext({hasProvider:!1,timeoutMs:0,delayRef:{current:0},initialDelayRef:{current:0},timeout:new ej,currentIdRef:{current:null},currentContextRef:{current:null}});function oH(e){let{children:n,delay:t,timeoutMs:r=0}=e,o=C.useRef(t),a=C.useRef(t),i=C.useRef(null),s=C.useRef(null),c=ek();return(0,l.jsx)(oI.Provider,{value:C.useMemo(()=>({hasProvider:!0,delayRef:o,initialDelayRef:a,currentIdRef:i,timeoutMs:r,currentContextRef:s,timeout:c}),[r,c]),children:n})}let oF=C.createContext(void 0),oU=function(e){let{delay:n,closeDelay:t,timeout:r=400}=e,o=C.useMemo(()=>({delay:n,closeDelay:t}),[n,t]);return(0,l.jsx)(oF.Provider,{value:o,children:(0,l.jsx)(oH,{delay:{open:n,close:t},timeoutMs:r,children:e.children})})},oV=C.createContext(void 0);function oq(){let e=C.useContext(oV);if(void 0===e)throw Error(\"Base UI: TooltipRootContext is missing. Tooltip parts must be placed within <Tooltip.Root>.\");return e}function oW(e){return null!=e&&null!=e.clientX}function o$(e){let{disabled:n=!1,defaultOpen:t=!1,onOpenChange:r,open:o,delay:a,closeDelay:i,hoverable:s=!0,trackCursorAxis:c=\"none\",actionsRef:u,onOpenChangeComplete:d}=e,f=a??600,p=i??0,[h,g]=C.useState(null),[m,v]=C.useState(null),[b,y]=C.useState(),x=C.useRef(null),[w,j]=n4({controlled:o,default:t,name:\"Tooltip\",state:\"open\"}),k=T(r),A=T((e,n,t)=>{let r=\"trigger-hover\"===t,o=e&&\"trigger-focus\"===t,a=!e&&(\"trigger-press\"===t||\"escape-key\"===t);function i(){k(e,n,t),j(e)}r?E.flushSync(i):i(),o||a?y(o?\"focus\":\"dismiss\"):\"trigger-hover\"===t&&y(void 0)});w&&n&&A(!1,void 0,\"disabled\");let{mounted:O,setMounted:S,transitionStatus:_}=n2(w),P=T(()=>{S(!1),d?.(!1)});n5({enabled:!u,open:w,ref:x,onComplete(){w||P()}}),C.useImperativeHandle(u,()=>({unmount:P}),[P]);let z=Y({elements:{reference:h,floating:m},open:w,onOpenChange(e,n,t){A(e,n,tr(t))}}),L=C.useContext(oF),{delayRef:R,isInstantPhase:N,hasProvider:D}=function(e,n={}){let{open:t,onOpenChange:r,floatingId:o}=e,{enabled:a=!0}=n,{currentIdRef:i,delayRef:l,timeoutMs:s,initialDelayRef:c,currentContextRef:u,hasProvider:d,timeout:f}=C.useContext(oI),[p,h]=C.useState(!1);return F(()=>{function e(){h(!1),u.current?.setIsInstantPhase(!1),i.current=null,u.current=null,l.current=c.current}if(a&&i.current&&!t&&i.current===o){if(h(!1),s)return f.start(s,e),()=>{f.clear()};e()}},[a,t,o,i,l,s,c,u,f]),F(()=>{if(!a||!t)return;let e=u.current,n=i.current;u.current={onOpenChange:r,setIsInstantPhase:h},i.current=o,l.current={open:0,close:e4(c.current,\"close\")},null!==n&&n!==o?(f.clear(),h(!0),e?.setIsInstantPhase(!0),e?.onOpenChange(!1)):(h(!1),e?.setIsInstantPhase(!1))},[a,t,o,r,i,l,s,c,u,f]),F(()=>()=>{u.current=null},[u]),C.useMemo(()=>({hasProvider:d,delayRef:l,isInstantPhase:p}),[d,l,p])}(z),B=N?\"delay\":b,M=e3(z,{enabled:!n,mouseOnly:!0,move:!1,handleClose:s&&\"both\"!==c?e7():null,restMs(){let e=L?.delay,n=\"object\"==typeof R.current?R.current.open:void 0,t=f;return D&&(t=0!==n?a??e??f:0),t},delay(){let e=\"object\"==typeof R.current?R.current.close:void 0,n=p;return null==i&&D&&(n=e),{close:n}}}),I=nn(z,{enabled:!n}),{getReferenceProps:H,getFloatingProps:U}=nK([M,I,nf(z,{enabled:!n,referencePress:!0}),function(e,n={}){let{open:t,dataRef:r,elements:{floating:o,domReference:a},refs:i}=e,{enabled:l=!0,axis:s=\"both\",x:c=null,y:u=null}=n,d=C.useRef(!1),f=C.useRef(null),[p,h]=C.useState(),[g,m]=C.useState([]),v=T((e,n)=>{if(!d.current&&(!r.current.openEvent||oW(r.current.openEvent))){var t;let o,l,c;i.setPositionReference((t={x:e,y:n,axis:s,dataRef:r,pointerType:p},o=null,l=null,c=!1,{contextElement:a||void 0,getBoundingClientRect(){let e=a?.getBoundingClientRect()||{width:0,height:0,x:0,y:0},n=\"x\"===t.axis||\"both\"===t.axis,r=\"y\"===t.axis||\"both\"===t.axis,i=[\"mouseenter\",\"mousemove\"].includes(t.dataRef.current.openEvent?.type||\"\")&&\"touch\"!==t.pointerType,s=e.width,u=e.height,d=e.x,f=e.y;return null==o&&t.x&&n&&(o=e.x-t.x),null==l&&t.y&&r&&(l=e.y-t.y),d-=o||0,f-=l||0,s=0,u=0,!c||i?(s=\"y\"===t.axis?e.width:0,u=\"x\"===t.axis?e.height:0,d=n&&null!=t.x?t.x:d,f=r&&null!=t.y?t.y:f):c&&!i&&(u=\"x\"===t.axis?e.height:u,s=\"y\"===t.axis?e.width:s),c=!0,{width:s,height:u,x:d,y:f,top:f,right:d+s,bottom:f+u,left:d}}}))}}),b=T(e=>{null==c&&null==u&&(t?f.current||m([]):v(e.clientX,e.clientY))}),y=eI(p)?o:t,x=C.useCallback(()=>{if(!y||!l||null!=c||null!=u)return;let e=Q(o);function n(t){eY(o,eX(t))?(e.removeEventListener(\"mousemove\",n),f.current=null):v(t.clientX,t.clientY)}if(!r.current.openEvent||oW(r.current.openEvent)){e.addEventListener(\"mousemove\",n);let t=()=>{e.removeEventListener(\"mousemove\",n),f.current=null};return f.current=t,t}i.setPositionReference(a)},[y,l,c,u,o,r,i,a,v]);C.useEffect(()=>x(),[x,g]),C.useEffect(()=>{l&&!o&&(d.current=!1)},[l,o]),C.useEffect(()=>{!l&&t&&(d.current=!0)},[l,t]),F(()=>{l&&(null!=c||null!=u)&&(d.current=!1,v(c,u))},[l,c,u,v]);let w=C.useMemo(()=>{function e(e){h(e.pointerType)}return{onPointerDown:e,onPointerEnter:e,onMouseMove:b,onMouseEnter:b}},[b]);return C.useMemo(()=>l?{reference:w}:{},[l,w])}(z,{enabled:!n&&\"none\"!==c,axis:\"none\"===c?void 0:c})]),V=C.useMemo(()=>({open:w,setOpen:A,mounted:O,setMounted:S,setTriggerElement:g,positionerElement:m,setPositionerElement:v,popupRef:x,triggerProps:H(),popupProps:U(),floatingRootContext:z,instantType:B,transitionStatus:_,onOpenChangeComplete:d}),[w,A,O,S,g,m,v,x,H,U,z,B,_,d]),q=C.useMemo(()=>({...V,delay:f,closeDelay:p,trackCursorAxis:c,hoverable:s}),[V,f,p,c,s]);return(0,l.jsx)(oV.Provider,{value:q,children:e.children})}let oZ=C.forwardRef(function(e,n){let{className:t,render:r,...o}=e,{open:a,setTriggerElement:i,triggerProps:l}=oq();return tj(\"button\",e,{state:C.useMemo(()=>({open:a}),[a]),ref:[n,i],props:[l,o],customStyleHookMapping:tF})}),oY=C.createContext(void 0);function oX(e){let n=rx({root:e.root});return n&&E.createPortal(e.children,n)}function oK(e){let{children:n,keepMounted:t=!1,container:r}=e,{mounted:o}=oq();return o||t?(0,l.jsx)(oY.Provider,{value:t,children:(0,l.jsx)(oX,{root:r,children:n})}):null}let oQ=C.createContext(void 0);function oG(){let e=C.useContext(oQ);if(void 0===e)throw Error(\"Base UI: TooltipPositionerContext is missing. TooltipPositioner parts must be placed within <Tooltip.Positioner>.\");return e}let oJ=C.forwardRef(function(e,n){let{render:t,className:r,anchor:o,positionMethod:a=\"absolute\",side:i=\"top\",align:s=\"center\",sideOffset:c=0,alignOffset:u=0,collisionBoundary:d=\"clipping-ancestors\",collisionPadding:f=5,arrowPadding:p=5,sticky:h=!1,trackAnchor:g=!0,collisionAvoidance:m=na,...v}=e,{open:b,setPositionerElement:y,mounted:x,floatingRootContext:w,trackCursorAxis:j,hoverable:k}=oq(),A=r4({anchor:o,positionMethod:a,floatingRootContext:w,mounted:x,side:i,sideOffset:c,align:s,alignOffset:u,collisionBoundary:d,collisionPadding:f,sticky:h,arrowPadding:p,trackAnchor:g,keepMounted:function(){let e=C.useContext(oY);if(void 0===e)throw Error(\"Base UI: <Tooltip.Portal> is missing.\");return e}(),collisionAvoidance:m}),O=C.useMemo(()=>{let e={};return b&&\"both\"!==j&&k||(e.pointerEvents=\"none\"),{role:\"presentation\",hidden:!x,style:{...A.positionerStyles,...e}}},[b,j,k,x,A.positionerStyles]),S=C.useMemo(()=>({props:O,...A}),[O,A]),E=C.useMemo(()=>({open:b,side:S.side,align:S.align,anchorHidden:S.anchorHidden}),[b,S.side,S.align,S.anchorHidden]),_=C.useMemo(()=>({...E,arrowRef:S.arrowRef,arrowStyles:S.arrowStyles,arrowUncentered:S.arrowUncentered}),[E,S.arrowRef,S.arrowStyles,S.arrowUncentered]),P=tj(\"div\",e,{state:E,props:[S.props,v],ref:[n,y],customStyleHookMapping:tV});return(0,l.jsx)(oQ.Provider,{value:_,children:P})}),o0={...tV,...tT},o1=C.forwardRef(function(e,n){let{className:t,render:r,...o}=e,{open:a,instantType:i,transitionStatus:l,popupProps:s,popupRef:c,onOpenChangeComplete:u}=oq(),{side:d,align:f}=oG();return n5({open:a,ref:c,onComplete(){a&&u?.(!0)}}),tj(\"div\",e,{state:C.useMemo(()=>({open:a,side:d,align:f,instant:i,transitionStatus:l}),[a,d,f,i,l]),ref:[n,c],props:[s,\"starting\"===l?nt:nr,o],customStyleHookMapping:o0})}),o2=C.forwardRef(function(e,n){let{className:t,render:r,...o}=e,{open:a,arrowRef:i,side:l,align:s,arrowUncentered:c,arrowStyles:u}=oG();return tj(\"div\",e,{state:C.useMemo(()=>({open:a,side:l,align:s,uncentered:c}),[a,l,s,c]),ref:[n,i],props:[{style:u,\"aria-hidden\":!0},o],customStyleHookMapping:tV})});var o4=t(\"../../node_modules/.pnpm/css-loader@7.1.2_@rspack+core@1.4.5_@swc+helpers@0.5.15__webpack@5.98.0_@swc+core@1.11.24_@sw_wm7ee5ic4mofrhisudwon4qpq4/node_modules/css-loader/dist/cjs.js!./src/next-devtools/components/tooltip.css\"),o5={};function o3(e,n){(null==n||n>e.length)&&(n=e.length);for(var t=0,r=Array(n);t<n;t++)r[t]=e[t];return r}o5.styleTagTransform=y(),o5.setAttributes=g(),o5.insert=p(),o5.domAPI=d(),o5.insertStyleElement=v(),c()(o4.Z,o5),o4.Z&&o4.Z.locals&&o4.Z.locals;var o6=(0,C.forwardRef)(function(e,n){var t,r=e.className,o=e.children,a=e.title,i=e.direction,s=void 0===i?\"top\":i,c=e.arrowSize,u=void 0===c?6:c,d=e.offset,f=e.bgcolor,p=void 0===f?\"#000\":f,h=e.color,g=(t=(0,C.useState)(function(){return document.querySelector(\"nextjs-portal\").shadowRoot}),function(e){if(Array.isArray(e))return e}(t)||function(e,n){var t,r,o=null==e?null:\"undefined\"!=typeof Symbol&&e[Symbol.iterator]||e[\"@@iterator\"];if(null!=o){var a=[],i=!0,l=!1;try{for(o=o.call(e);!(i=(t=o.next()).done)&&(a.push(t.value),a.length!==n);i=!0);}catch(e){l=!0,r=e}finally{try{i||null==o.return||o.return()}finally{if(l)throw r}}return a}}(t,1)||function(e,n){if(e){if(\"string\"==typeof e)return o3(e,1);var t=Object.prototype.toString.call(e).slice(8,-1);if(\"Object\"===t&&e.constructor&&(t=e.constructor.name),\"Map\"===t||\"Set\"===t)return Array.from(t);if(\"Arguments\"===t||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t))return o3(e,n)}}(t,1)||function(){throw TypeError(\"Invalid attempt to destructure non-iterable instance.\\\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\")}())[0],m=(0,C.useRef)(g);return a?(0,l.jsx)(oU,{children:(0,l.jsxs)(o$,{delay:400,children:[(0,l.jsx)(oZ,{ref:n,render:function(e){var n,t;return(0,l.jsx)(\"span\",(n=function(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{},r=Object.keys(t);\"function\"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(t).filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.forEach(function(n){var r;r=t[n],n in e?Object.defineProperty(e,n,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[n]=r})}return e}({},e),t=t={children:o},Object.getOwnPropertyDescriptors?Object.defineProperties(n,Object.getOwnPropertyDescriptors(t)):(function(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t.push.apply(t,r)}return t})(Object(t)).forEach(function(e){Object.defineProperty(n,e,Object.getOwnPropertyDescriptor(t,e))}),n))}}),(0,l.jsx)(oK,{container:m,children:(0,l.jsx)(oJ,{side:s,sideOffset:(void 0===d?8:d)+u,className:\"tooltip-positioner\",style:{\"--anchor-width\":\"\".concat(u,\"px\"),\"--anchor-height\":\"\".concat(u,\"px\")},children:(0,l.jsxs)(o1,{className:(0,k.cx)(\"tooltip\",r),style:{backgroundColor:p,color:void 0===h?\"#fff\":h,\"--tooltip-bg-color\":p,\"--arrow-size\":\"\".concat(u,\"px\")},children:[a,(0,l.jsx)(o2,{className:(0,k.cx)(\"tooltip-arrow\",\"tooltip-arrow--\".concat(s)),style:{\"--arrow-size\":\"\".concat(u,\"px\"),\"--tooltip-bg-color\":p}})]})})})]})}):o});function o9(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{},r=Object.keys(t);\"function\"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(t).filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.forEach(function(n){var r;r=t[n],n in e?Object.defineProperty(e,n,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[n]=r})}return e}function o8(e,n){return n=null!=n?n:{},Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):(function(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t.push.apply(t,r)}return t})(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}),e}var o7=function(e){var n,t;return!!(null==(n=e.value)?void 0:n.type)&&!!(null==(t=e.value)?void 0:t.pagePath)};function ae(e){var n=e.page;return(0,l.jsxs)(\"div\",{className:\"segment-explorer-page-route-bar\",children:[(0,l.jsx)(aa,{}),(0,l.jsx)(\"span\",{className:\"segment-explorer-page-route-bar-path\",children:n})]})}function an(e){var n=e.activeBoundariesCount,t=e.onGlobalReset,r=n>0;return(0,l.jsx)(\"div\",{className:\"segment-explorer-footer\",children:(0,l.jsxs)(\"button\",{className:\"segment-explorer-footer-button \".concat(r?\"\":\"segment-explorer-footer-button--disabled\"),onClick:r?t:void 0,disabled:!r,type:\"button\",children:[(0,l.jsx)(\"span\",{className:\"segment-explorer-footer-text\",children:\"Clear Segment Overrides\"}),r&&(0,l.jsx)(\"span\",{className:\"segment-explorer-footer-badge\",children:n})]})})}function at(e){var n=e.isAppRouter,t=e.page,r=(0,j.i8)(),o=(0,C.useMemo)(function(){return n?function e(n){var t,r=0;return(null==(t=n.value)?void 0:t.setBoundaryType)&&null!==n.value.boundaryType&&!oO(n.value.type)&&r++,Object.values(n.children).forEach(function(n){n&&(r+=e(n))}),r}(r):0},[r,n]),a=(0,C.useCallback)(function(){n&&function e(n){var t;(null==(t=n.value)?void 0:t.setBoundaryType)&&n.value.setBoundaryType(null),Object.values(n.children).forEach(function(n){n&&e(n)})}(r)},[r,n]);return(0,l.jsxs)(\"div\",{\"data-nextjs-devtools-panel-segments-explorer\":!0,children:[n&&(0,l.jsx)(ae,{page:t}),(0,l.jsx)(\"div\",{className:\"segment-explorer-content\",\"data-nextjs-devtool-segment-explorer\":!0,children:n?(0,l.jsx)(ar,{node:r,level:0,segment:\"\"}):(0,l.jsx)(\"p\",{children:\"Route Info currently is only available for the App Router.\"})}),n&&(0,l.jsx)(an,{activeBoundariesCount:o,onGlobalReset:a})]})}function ar(e){var n=e.segment,t=e.node,r=e.level,o=Object.keys(t.children).sort(function(e,n){var r=e.includes(\".\"),o=n.includes(\".\");if(r&&!o)return -1;if(!r&&o)return 1;if(r&&o){var a,i,l,s,c,u,d,f,p=null==(i=t.children[e])||null==(a=i.value)?void 0:a.type,h=null==(s=t.children[n])||null==(l=s.value)?void 0:l.type,g=function(e){return e?\"layout\"===e?1:\"template\"===e?2:\"page\"===e?3:oO(e)?4:5:5},m=g(p),v=g(h);if(m!==v)return m-v;var b=(null==(u=t.children[e])||null==(c=u.value)?void 0:c.pagePath)||\"\",y=(null==(f=t.children[n])||null==(d=f.value)?void 0:d.pagePath)||\"\";return b.localeCompare(y)}return e.localeCompare(n)}),a=0!==r||n?n:\"app\",i=[],s=[],c=!0,u=!1,d=void 0;try{for(var f,p=o[Symbol.iterator]();!(c=(f=p.next()).done);c=!0){var h=f.value,g=t.children[h];if(g){if(o7(g)){s.push(h);continue}i.push(h)}}}catch(e){u=!0,d=e}finally{try{c||null==p.return||p.return()}finally{if(u)throw d}}for(var m=null,v=o.length-1;v>=0;v--){var b=t.children[o[v]];if(b&&b.value){var y=oO(b.value.type);if(!m&&!y){m=b;break}}}var x=null,w=!0,j=!1,A=void 0;try{for(var O,C=o[Symbol.iterator]();!(w=(O=C.next()).done);w=!0){var S=O.value,E=t.children[S];if(E&&E.value&&oO(E.value.type)){x=E;break}}}catch(e){j=!0,A=e}finally{try{w||null==C.return||C.return()}finally{if(j)throw A}}m=m||x;var _=s.length>0,P={\"not-found\":null,loading:null,error:null};return s.forEach(function(e){var n=t.children[e];if(n&&n.value&&oO(n.value.type)){var r=n.value.type.replace(oA,\"\");r in P&&(P[r]=n.value.pagePath||null)}}),(0,l.jsxs)(l.Fragment,{children:[_&&(0,l.jsx)(\"div\",{className:\"segment-explorer-item\",\"data-nextjs-devtool-segment-explorer-segment\":n+\"-\"+r,children:(0,l.jsx)(\"div\",{className:\"segment-explorer-item-row\",style:o9({},{paddingLeft:\"\".concat((r+1)*8,\"px\")}),children:(0,l.jsxs)(\"div\",{className:\"segment-explorer-filename\",children:[a&&(0,l.jsxs)(\"span\",{className:\"segment-explorer-filename--path\",children:[a,(0,l.jsx)(\"small\",{children:\"/\"})]}),s.length>0&&(0,l.jsx)(\"span\",{className:\"segment-explorer-files\",children:s.map(function(e){var n=t.children[e];if(!n||!n.value||oO(n.value.type))return null;var r=n.value.pagePath,o=r.split(\"/\").pop()||\"\",a=r.startsWith(oj),i=ok(o),s=a?\"The default Next.js \".concat(n.value.type,\" is being shown. You can customize this page by adding your own \").concat(i,\" file to the app/ directory.\"):null,c=null!==n.value.boundaryType;return(0,l.jsx)(o6,{className:\"segment-explorer-file-label-tooltip--\"+(a?\"lg\":\"sm\"),direction:a?\"right\":\"top\",title:s,offset:12,bgcolor:\"var(--color-gray-1000)\",color:\"var(--color-gray-100)\",children:(0,l.jsxs)(\"span\",{className:(0,k.cx)(\"segment-explorer-file-label\",\"segment-explorer-file-label--\".concat(n.value.type),a&&\"segment-explorer-file-label--builtin\",c&&\"segment-explorer-file-label--overridden\"),onClick:function(){var e;e=new URLSearchParams({file:{filePath:r}.filePath,isAppRelativePath:\"1\"}),fetch(\"\".concat( false||\"\",\"/__nextjs_launch-editor?\").concat(e.toString()))},children:[(0,l.jsx)(\"span\",{className:\"segment-explorer-file-label-text\",children:i}),a?(0,l.jsx)(ao,{}):(0,l.jsx)(ai,{className:\"code-icon\"})]})},e)})}),m&&m.value&&(0,l.jsx)(oL,{nodeState:m.value,boundaries:P})]})})}),i.map(function(e){var o=t.children[e];if(!o)return null;var a=_?e:n+\" / \"+e;return(0,l.jsx)(ar,{segment:a,node:o,level:_?r+1:r},e)})]})}function ao(e){return(0,l.jsxs)(\"svg\",o8(o9({width:\"16\",height:\"16\",viewBox:\"0 0 16 16\",fill:\"none\",xmlns:\"http://www.w3.org/2000/svg\"},e),{children:[(0,l.jsx)(\"path\",{d:\"M14 8C14 11.3137 11.3137 14 8 14C4.68629 14 2 11.3137 2 8C2 4.68629 4.68629 2 8 2C11.3137 2 14 4.68629 14 8Z\",fill:\"var(--color-gray-400)\"}),(0,l.jsx)(\"path\",{d:\"M7.75 7C8.30228 7.00001 8.75 7.44772 8.75 8V11.25H7.25V8.5H6.25V7H7.75ZM8 4C8.55228 4 9 4.44772 9 5C9 5.55228 8.55228 6 8 6C7.44772 6 7 5.55228 7 5C7 4.44772 7.44772 4 8 4Z\",fill:\"var(--color-gray-900)\"})]}))}function aa(){return(0,l.jsx)(\"svg\",{width:\"20\",height:\"20\",viewBox:\"0 0 20 20\",fill:\"var(--color-gray-600)\",xmlns:\"http://www.w3.org/2000/svg\",children:(0,l.jsx)(\"path\",{d:\"M4.5 11.25C4.5 11.3881 4.61193 11.5 4.75 11.5H14.4395L11.9395 9L13 7.93945L16.7803 11.7197L16.832 11.7764C17.0723 12.0709 17.0549 12.5057 16.7803 12.7803L13 16.5605L11.9395 15.5L14.4395 13H4.75C3.7835 13 3 12.2165 3 11.25V4.25H4.5V11.25Z\"})})}function ai(e){return(0,l.jsx)(\"svg\",o8(o9({width:\"12\",height:\"12\",strokeLinejoin:\"round\",viewBox:\"0 0 16 16\",fill:\"currentColor\"},e),{children:(0,l.jsx)(\"path\",{fillRule:\"evenodd\",clipRule:\"evenodd\",d:\"M7.22763 14.1819L10.2276 2.18193L10.4095 1.45432L8.95432 1.09052L8.77242 1.81812L5.77242 13.8181L5.59051 14.5457L7.04573 14.9095L7.22763 14.1819ZM3.75002 12.0607L3.21969 11.5304L0.39647 8.70713C0.00594559 8.31661 0.00594559 7.68344 0.39647 7.29292L3.21969 4.46969L3.75002 3.93936L4.81068 5.00002L4.28035 5.53035L1.81068 8.00003L4.28035 10.4697L4.81068 11L3.75002 12.0607ZM12.25 12.0607L12.7804 11.5304L15.6036 8.70713C15.9941 8.31661 15.9941 7.68344 15.6036 7.29292L12.7804 4.46969L12.25 3.93936L11.1894 5.00002L11.7197 5.53035L14.1894 8.00003L11.7197 10.4697L11.1894 11L12.25 12.0607Z\",fill:\"currentColor\"})}))}},\"./src/next-devtools/dev-overlay/hooks/use-delayed-render.ts\":function(e,n,t){\"use strict\";t.d(n,{N:()=>i});var r=t(\"./dist/compiled/react/index.js\");function o(e,n){(null==n||n>e.length)&&(n=e.length);for(var t=0,r=Array(n);t<n;t++)r[t]=e[t];return r}function a(e,n){return function(e){if(Array.isArray(e))return e}(e)||function(e,n){var t,r,o=null==e?null:\"undefined\"!=typeof Symbol&&e[Symbol.iterator]||e[\"@@iterator\"];if(null!=o){var a=[],i=!0,l=!1;try{for(o=o.call(e);!(i=(t=o.next()).done)&&(a.push(t.value),!n||a.length!==n);i=!0);}catch(e){l=!0,r=e}finally{try{i||null==o.return||o.return()}finally{if(l)throw r}}return a}}(e,n)||function(e,n){if(e){if(\"string\"==typeof e)return o(e,n);var t=Object.prototype.toString.call(e).slice(8,-1);if(\"Object\"===t&&e.constructor&&(t=e.constructor.name),\"Map\"===t||\"Set\"===t)return Array.from(t);if(\"Arguments\"===t||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t))return o(e,n)}}(e,n)||function(){throw TypeError(\"Invalid attempt to destructure non-iterable instance.\\\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\")}()}function i(){var e=arguments.length>0&&void 0!==arguments[0]&&arguments[0],n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},t=a((0,r.useState)(e),2),o=t[0],i=t[1],l=a((0,r.useState)(!1),2),s=l[0],c=l[1],u=n.enterDelay,d=void 0===u?1:u,f=n.exitDelay,p=void 0===f?0:f;return(0,r.useEffect)(function(){var n,t;return e?(i(!0),d<=0?c(!0):n=setTimeout(function(){c(!0)},d)):(c(!1),p<=0?i(!1):t=setTimeout(function(){i(!1)},p)),function(){clearTimeout(n),clearTimeout(t)}},[e,d,p]),{mounted:o,rendered:s}}},\"./src/next-devtools/dev-overlay/segment-explorer-trie.ts\":function(e,n,t){\"use strict\";t.d(n,{_c:()=>d,i8:()=>f,th:()=>u});var r=t(\"./dist/compiled/react/index.js\");function o(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{},r=Object.keys(t);\"function\"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(t).filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.forEach(function(n){var r;r=t[n],n in e?Object.defineProperty(e,n,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[n]=r})}return e}var a=new Set,i=function(e){return a.add(e),function(){return a.delete(e)}},l=function(){return c.getRoot()},s=function(){return c.getRoot()},c=function(e){var n=e.getCharacters,t=void 0===n?function(e){return[e]}:n,r=e.compare,i=void 0===r?function(e,n){return e===n}:r,l={value:void 0,children:{}};function s(){var e=!0,n=!1,t=void 0;try{for(var r,o=a[Symbol.iterator]();!(e=(r=o.next()).done);e=!0)(0,r.value)()}catch(e){n=!0,t=e}finally{try{e||null==o.return||o.return()}finally{if(n)throw t}}}return{insert:function(e){var n=l,r=t(e),a=!0,i=!1,c=void 0;try{for(var u,d=r[Symbol.iterator]();!(a=(u=d.next()).done);a=!0){var f=u.value;n.children[f]||(n.children[f]={value:void 0,children:{}}),n=n.children[f]}}catch(e){i=!0,c=e}finally{try{a||null==d.return||d.return()}finally{if(i)throw c}}n.value=e,l=o({},l),s()},remove:function(e){var n=l,r=t(e),a=[],c=!0,u=!0,d=!1,f=void 0;try{for(var p,h=r[Symbol.iterator]();!(u=(p=h.next()).done);u=!0){var g=p.value;if(!n.children[g]){c=!1;break}a.push(n),n=n.children[g]}}catch(e){d=!0,f=e}finally{try{u||null==h.return||h.return()}finally{if(d)throw f}}if(c&&i(n.value,e)){n.value=void 0;for(var m=a.length-1;m>=0;m--){var v=a[m],b=r[m];0===Object.keys(v.children[b].children).length&&delete v.children[b]}l=o({},l),s()}},getRoot:function(){return l}}}({compare:function(e,n){return!!e&&!!n&&e.pagePath===n.pagePath&&e.type===n.type&&e.boundaryType===n.boundaryType},getCharacters:function(e){return e.pagePath.split(\"/\")}}),u=c.insert,d=c.remove;function f(){return(0,r.useSyncExternalStore)(i,l,s)}},\"./src/next-devtools/dev-overlay/utils/cx.ts\":function(e,n,t){\"use strict\";function r(){for(var e=arguments.length,n=Array(e),t=0;t<e;t++)n[t]=arguments[t];return n.filter(Boolean).join(\" \")}t.d(n,{cx:()=>r})}},__webpack_module_cache__={};function __nested_webpack_require_381207__(e){var n=__webpack_module_cache__[e];if(void 0!==n)return n.exports;var t=__webpack_module_cache__[e]={id:e,exports:{}};return __webpack_modules__[e](t,t.exports,__nested_webpack_require_381207__),t.exports}__nested_webpack_require_381207__.n=e=>{var n=e&&e.__esModule?()=>e.default:()=>e;return __nested_webpack_require_381207__.d(n,{a:n}),n},(()=>{var e,n=Object.getPrototypeOf?e=>Object.getPrototypeOf(e):e=>e.__proto__;__nested_webpack_require_381207__.t=function(t,r){if(1&r&&(t=this(t)),8&r||\"object\"==typeof t&&t&&(4&r&&t.__esModule||16&r&&\"function\"==typeof t.then))return t;var o=Object.create(null);__nested_webpack_require_381207__.r(o);var a={};e=e||[null,n({}),n([]),n(n)];for(var i=2&r&&t;\"object\"==typeof i&&!~e.indexOf(i);i=n(i))Object.getOwnPropertyNames(i).forEach(e=>{a[e]=()=>t[e]});return a.default=()=>t,__nested_webpack_require_381207__.d(o,a),o}})(),__nested_webpack_require_381207__.d=(e,n)=>{for(var t in n)__nested_webpack_require_381207__.o(n,t)&&!__nested_webpack_require_381207__.o(e,t)&&Object.defineProperty(e,t,{enumerable:!0,get:n[t]})},__nested_webpack_require_381207__.o=(e,n)=>Object.prototype.hasOwnProperty.call(e,n),__nested_webpack_require_381207__.r=e=>{\"undefined\"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:\"Module\"}),Object.defineProperty(e,\"__esModule\",{value:!0})},__nested_webpack_require_381207__.nc=void 0;var __nested_webpack_exports__={};for(var __webpack_i__ in(()=>{\"use strict\";__nested_webpack_require_381207__.r(__nested_webpack_exports__),__nested_webpack_require_381207__.d(__nested_webpack_exports__,{dispatcher:()=>aH,renderAppDevOverlay:()=>aW,renderPagesDevOverlay:()=>a$});var e,n,t,r=__nested_webpack_require_381207__(\"../../node_modules/.pnpm/style-loader@4.0.0_webpack@5.98.0_@swc+core@1.11.24_@swc+helpers@0.5.15__esbuild@0.24.2_/node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\"),o=__nested_webpack_require_381207__.n(r),a=__nested_webpack_require_381207__(\"../../node_modules/.pnpm/style-loader@4.0.0_webpack@5.98.0_@swc+core@1.11.24_@swc+helpers@0.5.15__esbuild@0.24.2_/node_modules/style-loader/dist/runtime/styleDomAPI.js\"),i=__nested_webpack_require_381207__.n(a),l=__nested_webpack_require_381207__(\"./src/build/webpack/loaders/devtool/devtool-style-inject.js\"),s=__nested_webpack_require_381207__.n(l),c=__nested_webpack_require_381207__(\"../../node_modules/.pnpm/style-loader@4.0.0_webpack@5.98.0_@swc+core@1.11.24_@swc+helpers@0.5.15__esbuild@0.24.2_/node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\"),u=__nested_webpack_require_381207__.n(c),d=__nested_webpack_require_381207__(\"../../node_modules/.pnpm/style-loader@4.0.0_webpack@5.98.0_@swc+core@1.11.24_@swc+helpers@0.5.15__esbuild@0.24.2_/node_modules/style-loader/dist/runtime/insertStyleElement.js\"),f=__nested_webpack_require_381207__.n(d),p=__nested_webpack_require_381207__(\"../../node_modules/.pnpm/style-loader@4.0.0_webpack@5.98.0_@swc+core@1.11.24_@swc+helpers@0.5.15__esbuild@0.24.2_/node_modules/style-loader/dist/runtime/styleTagTransform.js\"),h=__nested_webpack_require_381207__.n(p),g=__nested_webpack_require_381207__(\"../../node_modules/.pnpm/css-loader@7.1.2_@rspack+core@1.4.5_@swc+helpers@0.5.15__webpack@5.98.0_@swc+core@1.11.24_@sw_wm7ee5ic4mofrhisudwon4qpq4/node_modules/css-loader/dist/cjs.js!./src/next-devtools/global.css\"),m={};m.styleTagTransform=h(),m.setAttributes=u(),m.insert=s(),m.domAPI=i(),m.insertStyleElement=f(),o()(g.Z,m),g.Z&&g.Z.locals&&g.Z.locals;var v=__nested_webpack_require_381207__(\"../../node_modules/.pnpm/css-loader@7.1.2_@rspack+core@1.4.5_@swc+helpers@0.5.15__webpack@5.98.0_@swc+core@1.11.24_@sw_wm7ee5ic4mofrhisudwon4qpq4/node_modules/css-loader/dist/cjs.js!./src/next-devtools/dev-overlay/components/toast/style.css\"),b={};b.styleTagTransform=h(),b.setAttributes=u(),b.insert=s(),b.domAPI=i(),b.insertStyleElement=f(),o()(v.Z,b),v.Z&&v.Z.locals&&v.Z.locals;var y=__nested_webpack_require_381207__(\"./dist/compiled/react/jsx-runtime.js\"),x=__nested_webpack_require_381207__(\"./dist/compiled/react/index.js\");function w(e,n){(null==n||n>e.length)&&(n=e.length);for(var t=0,r=Array(n);t<n;t++)r[t]=e[t];return r}var j=__nested_webpack_require_381207__(\"./dist/compiled/stacktrace-parser/stack-trace-parser.cjs.js\"),k=/\\/_next(\\/static\\/.+)/,A=Symbol.for(\"next.console.error.digest\");function O(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{},r=Object.keys(t);\"function\"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(t).filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.forEach(function(n){var r,o,a;r=e,o=n,a=t[n],o in r?Object.defineProperty(r,o,{value:a,enumerable:!0,configurable:!0,writable:!0}):r[o]=a})}return e}function C(e,n){return n=null!=n?n:{},Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):(function(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t.push.apply(t,r)}return t})(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}),e}var S={Small:16/14,Medium:1,Large:16/18},E=\"static-indicator\",_=\"build-ok\",P=\"build-error\",z=\"before-fast-refresh\",L=\"fast-refresh\",T=\"version-info\",R=\"unhandled-error\",N=\"unhandled-rejection\",D=\"debug-info\",B=\"dev-indicator\",M=\"error-overlay-open\",I=\"error-overlay-close\",H=\"error-overlay-toggle\",F=\"building-indicator-show\",U=\"building-indicator-hide\",V=\"rendering-indicator-show\",q=\"rendering-indicator-hide\",W=\"devtools-panel-open\",$=\"devtools-panel-close\",Z=\"devtools-panel-toggle\",Y=\"devtools-position\",X=\"devtools-scale\",K=\"restart-server-button\",Q=\"__nextjs-dev-tools-theme\",G=\"__nextjs-dev-tools-position\",J=\"__nextjs-dev-tools-scale\",ee=\"segment-explorer-update-route-state\",en=/\\s+(at Object\\.react_stack_bottom_frame.*)|(react_stack_bottom_frame@.*)|(at react-stack-bottom-frame.*)|(react-stack-bottom-frame@.*)/;function et(e){return null==e?void 0:e.split(en)[0]}var er=(null==(e=true)?void 0:e.toString())===\"false\",eo={nextId:1,buildError:null,errors:[],notFound:!1,renderingIndicator:!1,staticIndicator:!1,showIndicator:!1,disableDevIndicator:!1,buildingIndicator:!1,refreshState:{type:\"idle\"},versionInfo:{installed:\"0.0.0\",staleness:\"unknown\"},debugInfo:{devtoolsFrontendUrl:void 0},isDevToolsPanelOpen:!1,showRestartServerButton:!1,devToolsPosition:\"bottom-left\",scale:S.Medium,page:\"\"},ea=__nested_webpack_require_381207__(\"./dist/compiled/react-dom/client.js\");function ei(e){for(var n=arguments.length,t=Array(n>1?n-1:0),r=1;r<n;r++)t[r-1]=arguments[r];var o=e.length-1;return(e.slice(0,o).reduce(function(e,n,r){return e+n+t[r]},\"\")+e[o]).replace(/\\/\\*[\\s\\S]*?\\*\\//g,\"\").replace(/\\s+/g,\" \").replace(/\\s*([:;,{}])\\s*/g,\"$1\").replace(/;+}/g,\"}\").trim()}function el(){var e,n,t=(e=[\"\\n /* latin-ext */\\n @font-face {\\n font-family: '__nextjs-Geist';\\n font-style: normal;\\n font-weight: 400 600;\\n font-display: swap;\\n src: url(/__nextjs_font/geist-latin-ext.woff2) format('woff2');\\n unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7,\\n U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F,\\n U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F,\\n U+A720-A7FF;\\n }\\n /* latin-ext */\\n @font-face {\\n font-family: '__nextjs-Geist Mono';\\n font-style: normal;\\n font-weight: 400 600;\\n font-display: swap;\\n src: url(/__nextjs_font/geist-mono-latin-ext.woff2) format('woff2');\\n unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7,\\n U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F,\\n U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F,\\n U+A720-A7FF;\\n }\\n /* latin */\\n @font-face {\\n font-family: '__nextjs-Geist';\\n font-style: normal;\\n font-weight: 400 600;\\n font-display: swap;\\n src: url(/__nextjs_font/geist-latin.woff2) format('woff2');\\n unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6,\\n U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122,\\n U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;\\n }\\n /* latin */\\n @font-face {\\n font-family: '__nextjs-Geist Mono';\\n font-style: normal;\\n font-weight: 400 600;\\n font-display: swap;\\n src: url(/__nextjs_font/geist-mono-latin.woff2) format('woff2');\\n unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6,\\n U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122,\\n U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;\\n }\\n \"],n||(n=e.slice(0)),Object.freeze(Object.defineProperties(e,{raw:{value:Object.freeze(n)}})));return el=function(){return t},t}var es=function(){return(0,x.useInsertionEffect)(function(){var e=document.createElement(\"style\");return e.textContent=ei(el()),document.head.appendChild(e),function(){document.head.removeChild(e)}},[]),null},ec=__nested_webpack_require_381207__(\"./dist/compiled/react-dom/index.js\");function eu(e,n){(null==n||n>e.length)&&(n=e.length);for(var t=0,r=Array(n);t<n;t++)r[t]=e[t];return r}function ed(e){var n,t,r=e.children,o=x.useRef(null),a=x.useRef(null),i=(n=x.useState(),t=2,function(e){if(Array.isArray(e))return e}(n)||function(e,n){var t,r,o=null==e?null:\"undefined\"!=typeof Symbol&&e[Symbol.iterator]||e[\"@@iterator\"];if(null!=o){var a=[],i=!0,l=!1;try{for(o=o.call(e);!(i=(t=o.next()).done)&&(a.push(t.value),a.length!==n);i=!0);}catch(e){l=!0,r=e}finally{try{i||null==o.return||o.return()}finally{if(l)throw r}}return a}}(n,2)||function(e,n){if(e){if(\"string\"==typeof e)return eu(e,n);var t=Object.prototype.toString.call(e).slice(8,-1);if(\"Object\"===t&&e.constructor&&(t=e.constructor.name),\"Map\"===t||\"Set\"===t)return Array.from(t);if(\"Arguments\"===t||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t))return eu(e,n)}}(n,t)||function(){throw TypeError(\"Invalid attempt to destructure non-iterable instance.\\\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\")}())[1];return x.useEffect(function(){if(o.current=document.querySelector(\"nextjs-portal\"),\"undefined\"!=typeof localStorage){var e=localStorage.getItem(Q);\"dark\"===e?(o.current.classList.add(\"dark\"),o.current.classList.remove(\"light\")):\"light\"===e&&(o.current.classList.remove(\"dark\"),o.current.classList.add(\"light\"))}null===o.current.shadowRoot&&(a.current=o.current.attachShadow({mode:\"open\"})),i({})},[]),a.current?(0,ec.createPortal)(r,a.current):null}function ef(){var e,n,t=(e=[\"\\n :host {\\n /* \\n * Although the style applied to the shadow host is isolated,\\n * the element that attached the shadow host (i.e. \\\"nextjs-portal\\\")\\n * is still affected by the parent's style (e.g. \\\"body\\\"). This may\\n * occur style conflicts like \\\"display: flex\\\", with other children\\n * elements therefore give the shadow host an absolute position.\\n */\\n position: absolute;\\n\\n --color-font: #757575;\\n --color-backdrop: rgba(250, 250, 250, 0.8);\\n --color-border-shadow: rgba(0, 0, 0, 0.145);\\n\\n --color-title-color: #1f1f1f;\\n --color-stack-notes: #777;\\n\\n --color-accents-1: #808080;\\n --color-accents-2: #222222;\\n --color-accents-3: #404040;\\n\\n --font-stack-monospace: '__nextjs-Geist Mono', 'Geist Mono',\\n 'SFMono-Regular', Consolas, 'Liberation Mono', Menlo, Courier,\\n monospace;\\n --font-stack-sans: '__nextjs-Geist', 'Geist', -apple-system,\\n 'Source Sans Pro', sans-serif;\\n\\n font-family: var(--font-stack-sans);\\n font-variant-ligatures: none;\\n\\n /* TODO: Remove replaced ones. */\\n --shadow-sm: 0 1px 2px 0 rgb(0 0 0 / 0.05);\\n --shadow: 0 1px 3px 0 rgb(0 0 0 / 0.1),\\n 0 1px 2px -1px rgb(0 0 0 / 0.1);\\n --shadow-md: 0 4px 6px -1px rgb(0 0 0 / 0.1),\\n 0 2px 4px -2px rgb(0 0 0 / 0.1);\\n --shadow-lg: 0 10px 15px -3px rgb(0 0 0 / 0.1),\\n 0 4px 6px -4px rgb(0 0 0 / 0.1);\\n --shadow-xl: 0 20px 25px -5px rgb(0 0 0 / 0.1),\\n 0 8px 10px -6px rgb(0 0 0 / 0.1);\\n --shadow-2xl: 0 25px 50px -12px rgb(0 0 0 / 0.25);\\n --shadow-inner: inset 0 2px 4px 0 rgb(0 0 0 / 0.05);\\n --shadow-none: 0 0 #0000;\\n\\n --shadow-small: 0px 2px 2px rgba(0, 0, 0, 0.04);\\n --shadow-menu: 0px 1px 1px rgba(0, 0, 0, 0.02),\\n 0px 4px 8px -4px rgba(0, 0, 0, 0.04),\\n 0px 16px 24px -8px rgba(0, 0, 0, 0.06);\\n\\n --focus-color: var(--color-blue-800);\\n --focus-ring: 2px solid var(--focus-color);\\n\\n --timing-swift: cubic-bezier(0.23, 0.88, 0.26, 0.92);\\n --timing-overlay: cubic-bezier(0.175, 0.885, 0.32, 1.1);\\n /* prettier-ignore */\\n --timing-bounce: linear(0 0%, 0.005871 1%, 0.022058 2%, 0.046612 3%, 0.077823 4%, 0.114199 5%, 0.154441 6%, 0.197431 7.000000000000001%, 0.242208 8%, 0.287959 9%, 0.333995 10%, 0.379743 11%, 0.424732 12%, 0.46858 13%, 0.510982 14.000000000000002%, 0.551702 15%, 0.590564 16%, 0.627445 17%, 0.662261 18%, 0.694971 19%, 0.725561 20%, 0.754047 21%, 0.780462 22%, 0.804861 23%, 0.82731 24%, 0.847888 25%, 0.866679 26%, 0.883775 27%, 0.899272 28.000000000000004%, 0.913267 28.999999999999996%, 0.925856 30%, 0.937137 31%, 0.947205 32%, 0.956153 33%, 0.96407 34%, 0.971043 35%, 0.977153 36%, 0.982479 37%, 0.987094 38%, 0.991066 39%, 0.994462 40%, 0.997339 41%, 0.999755 42%, 1.001761 43%, 1.003404 44%, 1.004727 45%, 1.00577 46%, 1.006569 47%, 1.007157 48%, 1.007563 49%, 1.007813 50%, 1.007931 51%, 1.007939 52%, 1.007855 53%, 1.007697 54%, 1.007477 55.00000000000001%, 1.00721 56.00000000000001%, 1.006907 56.99999999999999%, 1.006576 57.99999999999999%, 1.006228 59%, 1.005868 60%, 1.005503 61%, 1.005137 62%, 1.004776 63%, 1.004422 64%, 1.004078 65%, 1.003746 66%, 1.003429 67%, 1.003127 68%, 1.00284 69%, 1.002571 70%, 1.002318 71%, 1.002082 72%, 1.001863 73%, 1.00166 74%, 1.001473 75%, 1.001301 76%, 1.001143 77%, 1.001 78%, 1.000869 79%, 1.000752 80%, 1.000645 81%, 1.00055 82%, 1.000464 83%, 1.000388 84%, 1.000321 85%, 1.000261 86%, 1.000209 87%, 1.000163 88%, 1.000123 89%, 1.000088 90%);\\n\\n --rounded-none: 0px;\\n --rounded-sm: 2px;\\n --rounded-md: 4px;\\n --rounded-md-2: 6px;\\n --rounded-lg: 8px;\\n --rounded-xl: 12px;\\n --rounded-2xl: 16px;\\n --rounded-3xl: 24px;\\n --rounded-4xl: 32px;\\n --rounded-full: 9999px;\\n\\n /* \\n This value gets set from the Dev Tools preferences,\\n and we use the following --size-* variables to \\n scale the relevant elements.\\n\\n The reason why we don't rely on rem values is because\\n if an app sets their root font size to something tiny, \\n it feels unexpected to have the app root size leak \\n into a Next.js surface.\\n\\n https://github.com/vercel/next.js/discussions/76812\\n */\\n --nextjs-dev-tools-scale: \",\";\\n --size-1: calc(1px / var(--nextjs-dev-tools-scale));\\n --size-2: calc(2px / var(--nextjs-dev-tools-scale));\\n --size-3: calc(3px / var(--nextjs-dev-tools-scale));\\n --size-4: calc(4px / var(--nextjs-dev-tools-scale));\\n --size-5: calc(5px / var(--nextjs-dev-tools-scale));\\n --size-6: calc(6px / var(--nextjs-dev-tools-scale));\\n --size-7: calc(7px / var(--nextjs-dev-tools-scale));\\n --size-8: calc(8px / var(--nextjs-dev-tools-scale));\\n --size-9: calc(9px / var(--nextjs-dev-tools-scale));\\n --size-10: calc(10px / var(--nextjs-dev-tools-scale));\\n --size-11: calc(11px / var(--nextjs-dev-tools-scale));\\n --size-12: calc(12px / var(--nextjs-dev-tools-scale));\\n --size-13: calc(13px / var(--nextjs-dev-tools-scale));\\n --size-14: calc(14px / var(--nextjs-dev-tools-scale));\\n --size-15: calc(15px / var(--nextjs-dev-tools-scale));\\n --size-16: calc(16px / var(--nextjs-dev-tools-scale));\\n --size-17: calc(17px / var(--nextjs-dev-tools-scale));\\n --size-18: calc(18px / var(--nextjs-dev-tools-scale));\\n --size-20: calc(20px / var(--nextjs-dev-tools-scale));\\n --size-22: calc(22px / var(--nextjs-dev-tools-scale));\\n --size-24: calc(24px / var(--nextjs-dev-tools-scale));\\n --size-26: calc(26px / var(--nextjs-dev-tools-scale));\\n --size-28: calc(28px / var(--nextjs-dev-tools-scale));\\n --size-30: calc(30px / var(--nextjs-dev-tools-scale));\\n --size-32: calc(32px / var(--nextjs-dev-tools-scale));\\n --size-34: calc(34px / var(--nextjs-dev-tools-scale));\\n --size-36: calc(36px / var(--nextjs-dev-tools-scale));\\n --size-38: calc(38px / var(--nextjs-dev-tools-scale));\\n --size-40: calc(40px / var(--nextjs-dev-tools-scale));\\n --size-42: calc(42px / var(--nextjs-dev-tools-scale));\\n --size-44: calc(44px / var(--nextjs-dev-tools-scale));\\n --size-46: calc(46px / var(--nextjs-dev-tools-scale));\\n --size-48: calc(48px / var(--nextjs-dev-tools-scale));\\n\\n @media print {\\n display: none;\\n }\\n }\\n\\n h1,\\n h2,\\n h3,\\n h4,\\n h5,\\n h6 {\\n margin-bottom: 8px;\\n font-weight: 500;\\n line-height: 1.5;\\n }\\n\\n a {\\n color: var(--color-blue-900);\\n &:hover {\\n color: var(--color-blue-900);\\n }\\n &:focus-visible {\\n outline: var(--focus-ring);\\n }\\n }\\n \"],n||(n=e.slice(0)),Object.freeze(Object.defineProperties(e,{raw:{value:Object.freeze(n)}})));return ef=function(){return t},t}function ep(e){var n=e.scale;return(0,y.jsx)(\"style\",{children:ei(ef(),String(void 0===n?1:n))})}function eh(e){if(\"\"===e.trim())throw Error(\"can't decode empty hex\");var n=parseInt(e,16);if(isNaN(n))throw Error(\"invalid hex: `\".concat(e,\"`\"));return String.fromCodePoint(n)}var eg=/^__TURBOPACK__([a-zA-Z0-9_$]+)__$/,em=/https?:\\/\\/[^\\s/$.?#].[^\\s)'\"]*/i,ev=new RegExp(\"(\".concat(/__TURBOPACK__[a-zA-Z0-9_$]+__/g.source,\"|\\\\s+)\")),eb=function(e){var n=e.text,t=e.matcher,r=n.split(ev);return(0,y.jsx)(y.Fragment,{children:r.map(function(e,n){if(em.test(e)){var r=em.exec(e)[0];return\"function\"!=typeof t||t(r)?(0,y.jsx)(x.Fragment,{children:(0,y.jsx)(\"a\",{href:r,target:\"_blank\",rel:\"noreferrer noopener\",children:e})},\"link-\".concat(n)):e}try{var o=function(e){var n=e.match(eg);if(!n)return e;for(var t=n[1],r=\"\",o=0,a=\"\",i=0;i<t.length;i++){var l=t[i];if(0===o)\"_\"===l?o=1:\"$\"===l?o=2:r+=l;else if(1===o)\"_\"===l?(r+=\" \",o=0):\"$\"===l?(r+=\"_\",o=2):(r+=l,o=0);else if(2===o)if(2===a.length&&(r+=eh(a),a=\"\"),\"_\"===l){if(\"\"!==a)throw Error(\"invalid hex: `\".concat(a,\"`\"));o=3}else if(\"$\"===l){if(\"\"!==a)throw Error(\"invalid hex: `\".concat(a,\"`\"));o=0}else a+=l;else if(3===o)if(\"_\"===l)throw Error(\"invalid hex: `\".concat(a+l,\"`\"));else\"$\"===l?(r+=eh(a),a=\"\",o=0):a+=l}return r}(e);if(o!==e)return(0,y.jsxs)(\"i\",{children:[\"{\",o,\"}\"]},\"ident-\".concat(n))}catch(t){return(0,y.jsxs)(\"i\",{children:[\"{\",e,\" (decoding failed: \",\"\"+t,\")\",\"}\"]},\"ident-\".concat(n))}return(0,y.jsx)(x.Fragment,{children:e},\"text-\".concat(n))})})},ey=[/^webpack-internal:\\/\\/\\/(\\([\\w-]+\\)\\/)?/,/^(webpack:\\/\\/\\/|webpack:\\/\\/(_N_E\\/)?)(\\([\\w-]+\\)\\/)?/];function ex(e){var n=!0,t=!1,r=void 0;try{for(var o,a=ey[Symbol.iterator]();!(n=(o=a.next()).done);n=!0){var i=o.value;if(i.test(e))return!0;e=e.replace(i,\"\")}}catch(e){t=!0,r=e}finally{try{n||null==a.return||a.return()}finally{if(t)throw r}}return!1}function ew(e){var n=!0,t=!1,r=void 0;try{for(var o,a=ey[Symbol.iterator]();!(n=(o=a.next()).done);n=!0){var i=o.value;e=e.replace(i,\"\")}}catch(e){t=!0,r=e}finally{try{n||null==a.return||a.return()}finally{if(t)throw r}}return e}function ej(e,n,t,r,o,a,i){try{var l=e[a](i),s=l.value}catch(e){t(e);return}l.done?n(s):Promise.resolve(s).then(r,o)}function ek(e){return function(){var n=this,t=arguments;return new Promise(function(r,o){var a=e.apply(n,t);function i(e){ej(a,r,o,i,l,\"next\",e)}function l(e){ej(a,r,o,i,l,\"throw\",e)}i(void 0)})}}function eA(e,n){var t,r,o,a={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]},i=Object.create((\"function\"==typeof Iterator?Iterator:Object).prototype);return i.next=l(0),i.throw=l(1),i.return=l(2),\"function\"==typeof Symbol&&(i[Symbol.iterator]=function(){return this}),i;function l(l){return function(s){var c=[l,s];if(t)throw TypeError(\"Generator is already executing.\");for(;i&&(i=0,c[0]&&(a=0)),a;)try{if(t=1,r&&(o=2&c[0]?r.return:c[0]?r.throw||((o=r.return)&&o.call(r),0):r.next)&&!(o=o.call(r,c[1])).done)return o;switch(r=0,o&&(c=[2&c[0],o.value]),c[0]){case 0:case 1:o=c;break;case 4:return a.label++,{value:c[1],done:!1};case 5:a.label++,r=c[1],c=[0];continue;case 7:c=a.ops.pop(),a.trys.pop();continue;default:if(!(o=(o=a.trys).length>0&&o[o.length-1])&&(6===c[0]||2===c[0])){a=0;continue}if(3===c[0]&&(!o||c[1]>o[0]&&c[1]<o[3])){a.label=c[1];break}if(6===c[0]&&a.label<o[1]){a.label=o[1],o=c;break}if(o&&a.label<o[2]){a.label=o[2],a.ops.push(c);break}o[2]&&a.ops.pop(),a.trys.pop();continue}c=n.call(e,a)}catch(e){c=[6,e],r=0}finally{t=o=0}if(5&c[0])throw c[1];return{value:c[0]?c[1]:void 0,done:!0}}}}function eO(e,n){var t;return\"file://\"===e.file||(null==(t=e.file)?void 0:t.match(/https?:\\/\\//))?Promise.resolve({error:!1,reason:null,external:!0,sourceStackFrame:e,originalStackFrame:null,originalCodeFrame:null,ignored:!0}):ek(function(){var t,r;return eA(this,function(o){if(\"rejected\"===n.status)throw Error(n.reason);return[2,{error:!1,reason:null,external:!1,sourceStackFrame:e,originalStackFrame:(r=n.value).originalStackFrame,originalCodeFrame:r.originalCodeFrame||null,ignored:(null==(t=r.originalStackFrame)?void 0:t.ignored)||!1}]})})().catch(function(n){var t,r;return{error:!0,reason:null!=(r=null!=(t=null==n?void 0:n.message)?t:null==n?void 0:n.toString())?r:\"Unknown Error\",external:!1,sourceStackFrame:e,originalStackFrame:null,originalCodeFrame:null,ignored:!1}})}function eC(e,n,t){return ek(function(){var r,o,a,i;return eA(this,function(l){switch(l.label){case 0:r={frames:e,isServer:\"server\"===n,isEdgeServer:\"edge-server\"===n,isAppDirectory:t},o=void 0,a=void 0,l.label=1;case 1:return l.trys.push([1,3,,4]),[4,fetch(\"/__nextjs_original-stack-frames\",{method:\"POST\",body:JSON.stringify(r)})];case 2:return o=l.sent(),[3,4];case 3:return a=l.sent()+\"\",[3,4];case 4:if(!(o&&o.ok&&204!==o.status))return[3,6];return[4,o.json()];case 5:return i=l.sent(),[2,Promise.all(e.map(function(e,n){return eO(e,i[n])}))];case 6:if(!o)return[3,8];return[4,o.text()];case 7:a=l.sent(),l.label=8;case 8:return[2,Promise.all(e.map(function(e){return eO(e,{status:\"rejected\",reason:\"Failed to fetch the original stack frames \".concat(a?\": \".concat(a):\"\")})}))]}})})()}function eS(e){if(!e.file)return\"\";var n=ex(e.file),t=\"\";if(n)t=ew(e.file);else try{var r,o=new URL(e.file),a=\"\";(null==(r=globalThis.location)?void 0:r.origin)!==o.origin&&(\"null\"===o.origin?a+=o.protocol:a+=o.origin),a+=o.pathname,t=ew(a)}catch(n){t=ew(e.file)}return!ex(e.file)&&null!=e.lineNumber&&t&&\"<anonymous>\"!==e.file&&(null!=e.column?t+=\" (\".concat(e.lineNumber,\":\").concat(e.column,\")\"):t+=\" (\".concat(e.lineNumber,\")\")),t}function eE(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=e.file,t=e.lineNumber,r=e.column;return(0,x.useCallback)(function(){if(null!=n&&null!=t&&null!=r){var e=new URLSearchParams;e.append(\"file\",n),e.append(\"lineNumber\",String(t)),e.append(\"column\",String(r)),self.fetch(\"\".concat( false||\"\",\"/__nextjs_launch-editor?\").concat(e.toString())).then(function(){},function(e){console.error('Failed to open file \"'.concat(n,\" (\").concat(t,\":\").concat(r,')\" in your editor. Cause:'),e)})}},[n,t,r])}function e_(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{},r=Object.keys(t);\"function\"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(t).filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.forEach(function(n){var r,o,a;r=e,o=n,a=t[n],o in r?Object.defineProperty(r,o,{value:a,enumerable:!0,configurable:!0,writable:!0}):r[o]=a})}return e}function eP(e,n){return n=null!=n?n:{},Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):(function(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t.push.apply(t,r)}return t})(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}),e}function ez(e){return(0,y.jsx)(\"svg\",eP(e_({xmlns:\"http://www.w3.org/2000/svg\",width:\"16\",height:\"16\",viewBox:\"0 0 16 16\",fill:\"none\"},e),{children:(0,y.jsx)(\"path\",{fillRule:\"evenodd\",clipRule:\"evenodd\",fill:\"currentColor\",d:\"M11.5 9.75V11.25C11.5 11.3881 11.3881 11.5 11.25 11.5H4.75C4.61193 11.5 4.5 11.3881 4.5 11.25L4.5 4.75C4.5 4.61193 4.61193 4.5 4.75 4.5H6.25H7V3H6.25H4.75C3.7835 3 3 3.7835 3 4.75V11.25C3 12.2165 3.7835 13 4.75 13H11.25C12.2165 13 13 12.2165 13 11.25V9.75V9H11.5V9.75ZM8.5 3H9.25H12.2495C12.6637 3 12.9995 3.33579 12.9995 3.75V6.75V7.5H11.4995V6.75V5.56066L8.53033 8.52978L8 9.06011L6.93934 7.99945L7.46967 7.46912L10.4388 4.5H9.25H8.5V3Z\"})}))}function eL(e){return(0,y.jsx)(\"svg\",eP(e_({xmlns:\"http://www.w3.org/2000/svg\",height:\"16\",strokeLinejoin:\"round\",viewBox:\"-4 -4 24 24\",width:\"16\"},e),{children:(0,y.jsx)(\"path\",{fillRule:\"evenodd\",clipRule:\"evenodd\",d:\"M8.55846 2H7.44148L1.88975 13.5H14.1102L8.55846 2ZM9.90929 1.34788C9.65902 0.829456 9.13413 0.5 8.55846 0.5H7.44148C6.86581 0.5 6.34092 0.829454 6.09065 1.34787L0.192608 13.5653C-0.127943 14.2293 0.355835 15 1.09316 15H14.9068C15.6441 15 16.1279 14.2293 15.8073 13.5653L9.90929 1.34788ZM8.74997 4.75V5.5V8V8.75H7.24997V8V5.5V4.75H8.74997ZM7.99997 12C8.55226 12 8.99997 11.5523 8.99997 11C8.99997 10.4477 8.55226 10 7.99997 10C7.44769 10 6.99997 10.4477 6.99997 11C6.99997 11.5523 7.44769 12 7.99997 12Z\",fill:\"currentColor\"})}))}function eT(e){var n=e.lang;if(!n)return(0,y.jsx)(eB,{});switch(n.toLowerCase()){case\"jsx\":case\"tsx\":return(0,y.jsx)(eM,{});case\"ts\":case\"typescript\":return(0,y.jsx)(eD,{});case\"javascript\":case\"js\":case\"mjs\":return(0,y.jsx)(eN,{});case\"json\":return(0,y.jsx)(eR,{});default:return(0,y.jsx)(eB,{})}}function eR(){return(0,y.jsx)(\"svg\",{clipRule:\"evenodd\",fillRule:\"evenodd\",height:\"16\",viewBox:\"0 0 1321.45 1333.33\",width:\"16\",children:(0,y.jsx)(\"path\",{d:\"M221.37 618.44h757.94V405.15H755.14c-23.5 0-56.32-12.74-71.82-28.24-15.5-15.5-25-43.47-25-66.97V82.89H88.39c-1.99 0-3.49 1-4.49 2-1.5 1-2 2.5-2 4.5v1155.04c0 1.5 1 3.5 2 4.5 1 1.49 3 1.99 4.49 1.99H972.8c2 0 1.89-.99 2.89-1.99 1.5-1 3.61-3 3.61-4.5v-121.09H221.36c-44.96 0-82-36.9-82-81.99V700.44c0-45.1 36.9-82 82-82zm126.51 117.47h75.24v146.61c0 30.79-2.44 54.23-7.33 70.31-4.92 16.03-14.8 29.67-29.65 40.85-14.86 11.12-33.91 16.72-57.05 16.72-24.53 0-43.51-3.71-56.94-11.06-13.5-7.36-23.89-18.1-31.23-32.3-7.35-14.14-11.69-31.67-12.99-52.53l71.5-10.81c.11 11.81 1.07 20.61 2.81 26.33 1.76 5.78 4.75 10.37 9 13.95 2.87 2.33 6.94 3.46 12.25 3.46 8.4 0 14.58-3.46 18.53-10.37 3.9-6.92 5.87-18.6 5.87-35V735.92zm112.77 180.67l71.17-4.97c1.54 12.81 4.69 22.62 9.44 29.28 7.74 10.88 18.74 16.34 33.09 16.34 10.68 0 18.93-2.76 24.68-8.36 5.81-5.58 8.7-12.07 8.7-19.41 0-6.97-2.71-13.26-8.2-18.79-5.47-5.53-18.23-10.68-38.28-15.65-32.89-8.17-56.27-19.1-70.26-32.74-14.12-13.57-21.18-30.92-21.18-52.03 0-13.83 3.61-26.89 10.85-39.21 7.22-12.38 18.07-22.06 32.59-29.09 14.52-7.04 34.4-10.56 59.65-10.56 31 0 54.62 6.41 70.88 19.29 16.28 12.81 25.92 33.24 29.04 61.27l-70.5 4.65c-1.87-12.25-5.81-21.17-11.81-26.7-6.05-5.6-14.35-8.36-24.9-8.36-8.71 0-15.31 2.07-19.73 6.16-4.4 4.09-6.59 9.12-6.59 15.02 0 4.27 1.81 8.11 5.37 11.57 3.45 3.59 11.8 6.85 25.02 9.93 32.75 7.86 56.2 15.84 70.31 23.87 14.18 8.05 24.52 17.98 30.96 29.92 6.44 11.88 9.66 25.2 9.66 39.96 0 17.29-4.3 33.24-12.88 47.89-8.63 14.58-20.61 25.7-36.08 33.24-15.41 7.54-34.85 11.31-58.33 11.31-41.24 0-69.81-8.86-85.68-26.52-15.88-17.65-24.85-40.09-26.96-67.3zm248.74-45.5c0-44.05 11.02-78.36 33.09-102.87 22.09-24.57 52.82-36.82 92.24-36.82 40.38 0 71.5 12.07 93.34 36.13 21.86 24.13 32.77 57.94 32.77 101.37 0 31.54-4.75 57.36-14.3 77.54-9.54 20.18-23.37 35.89-41.4 47.13-18.07 11.24-40.55 16.84-67.48 16.84-27.33 0-49.99-4.83-67.94-14.52-17.92-9.74-32.49-25.07-43.62-46.06-11.13-20.92-16.72-47.19-16.72-78.74zm74.89.19c0 27.21 4.57 46.81 13.68 58.68 9.13 11.88 21.57 17.85 37.26 17.85 16.1 0 28.65-5.84 37.45-17.47 8.87-11.68 13.28-32.54 13.28-62.77 0-25.39-4.63-43.92-13.84-55.61-9.26-11.76-21.75-17.6-37.56-17.6-15.13 0-27.34 5.97-36.49 17.85-9.21 11.88-13.78 31.61-13.78 59.07zm209.08-135.36h69.99l90.98 149.05V735.91h70.83v269.96h-70.83l-90.48-148.24v148.24h-70.49V735.91zm67.71-117.47h178.37c45.1 0 82 37.04 82 82v340.91c0 44.96-37.03 81.99-82 81.99h-178.37v147c0 17.5-6.99 32.99-18.5 44.5-11.5 11.49-27 18.5-44.5 18.5H62.97c-17.5 0-32.99-7-44.5-18.5-11.49-11.5-18.5-27-18.5-44.5V63.49c0-17.5 7-33 18.5-44.5S45.97.49 62.97.49H700.1c1.5-.5 3-.5 4.5-.5 7 0 14 3 19 7.49h1c1 .5 1.5 1 2.5 2l325.46 329.47c5.5 5.5 9.5 13 9.5 21.5 0 2.5-.5 4.5-1 7v250.98zM732.61 303.47V96.99l232.48 235.47H761.6c-7.99 0-14.99-3.5-20.5-8.49-4.99-5-8.49-12.5-8.49-20.5z\",fill:\"currentColor\"})})}function eN(){return(0,y.jsx)(\"svg\",{height:\"16\",viewBox:\"0 0 50 50\",width:\"16\",xmlns:\"http://www.w3.org/2000/svg\",children:(0,y.jsx)(\"path\",{d:\"M 43.335938 4 L 6.667969 4 C 5.195313 4 4 5.195313 4 6.667969 L 4 43.332031 C 4 44.804688 5.195313 46 6.667969 46 L 43.332031 46 C 44.804688 46 46 44.804688 46 43.335938 L 46 6.667969 C 46 5.195313 44.804688 4 43.335938 4 Z M 27 36.183594 C 27 40.179688 24.65625 42 21.234375 42 C 18.140625 42 15.910156 39.925781 15 38 L 18.144531 36.097656 C 18.75 37.171875 19.671875 38 21 38 C 22.269531 38 23 37.503906 23 35.574219 L 23 23 L 27 23 Z M 35.675781 42 C 32.132813 42 30.121094 40.214844 29 38 L 32 36 C 32.816406 37.335938 33.707031 38.613281 35.589844 38.613281 C 37.171875 38.613281 38 37.824219 38 36.730469 C 38 35.425781 37.140625 34.960938 35.402344 34.199219 L 34.449219 33.789063 C 31.695313 32.617188 29.863281 31.148438 29.863281 28.039063 C 29.863281 25.179688 32.046875 23 35.453125 23 C 37.878906 23 39.621094 23.84375 40.878906 26.054688 L 37.910156 27.964844 C 37.253906 26.789063 36.550781 26.328125 35.453125 26.328125 C 34.335938 26.328125 33.628906 27.039063 33.628906 27.964844 C 33.628906 29.109375 34.335938 29.570313 35.972656 30.28125 L 36.925781 30.691406 C 40.171875 32.078125 42 33.496094 42 36.683594 C 42 40.117188 39.300781 42 35.675781 42 Z\",fill:\"currentColor\"})})}function eD(){return(0,y.jsxs)(\"svg\",{fill:\"none\",height:\"14\",viewBox:\"0 0 512 512\",width:\"14\",xmlns:\"http://www.w3.org/2000/svg\",children:[(0,y.jsx)(\"rect\",{fill:\"currentColor\",height:\"512\",rx:\"50\",width:\"512\"}),(0,y.jsx)(\"rect\",{fill:\"currentColor\",height:\"512\",rx:\"50\",width:\"512\"}),(0,y.jsx)(\"path\",{clipRule:\"evenodd\",d:\"m316.939 407.424v50.061c8.138 4.172 17.763 7.3 28.875 9.386s22.823 3.129 35.135 3.129c11.999 0 23.397-1.147 34.196-3.442 10.799-2.294 20.268-6.075 28.406-11.342 8.138-5.266 14.581-12.15 19.328-20.65s7.121-19.007 7.121-31.522c0-9.074-1.356-17.026-4.069-23.857s-6.625-12.906-11.738-18.225c-5.112-5.319-11.242-10.091-18.389-14.315s-15.207-8.213-24.18-11.967c-6.573-2.712-12.468-5.345-17.685-7.9-5.217-2.556-9.651-5.163-13.303-7.822-3.652-2.66-6.469-5.476-8.451-8.448-1.982-2.973-2.974-6.336-2.974-10.091 0-3.441.887-6.544 2.661-9.308s4.278-5.136 7.512-7.118c3.235-1.981 7.199-3.52 11.894-4.615 4.696-1.095 9.912-1.642 15.651-1.642 4.173 0 8.581.313 13.224.938 4.643.626 9.312 1.591 14.008 2.894 4.695 1.304 9.259 2.947 13.694 4.928 4.434 1.982 8.529 4.276 12.285 6.884v-46.776c-7.616-2.92-15.937-5.084-24.962-6.492s-19.381-2.112-31.066-2.112c-11.895 0-23.163 1.278-33.805 3.833s-20.006 6.544-28.093 11.967c-8.086 5.424-14.476 12.333-19.171 20.729-4.695 8.395-7.043 18.433-7.043 30.114 0 14.914 4.304 27.638 12.912 38.172 8.607 10.533 21.675 19.45 39.204 26.751 6.886 2.816 13.303 5.579 19.25 8.291s11.086 5.528 15.415 8.448c4.33 2.92 7.747 6.101 10.252 9.543 2.504 3.441 3.756 7.352 3.756 11.733 0 3.233-.783 6.231-2.348 8.995s-3.939 5.162-7.121 7.196-7.147 3.624-11.894 4.771c-4.748 1.148-10.303 1.721-16.668 1.721-10.851 0-21.597-1.903-32.24-5.71-10.642-3.806-20.502-9.516-29.579-17.13zm-84.159-123.342h64.22v-41.082h-179v41.082h63.906v182.918h50.874z\",fill:\"var(--color-background-100)\",fillRule:\"evenodd\"})]})}function eB(){return(0,y.jsx)(\"svg\",{width:\"16\",height:\"17\",fill:\"none\",xmlns:\"http://www.w3.org/2000/svg\",children:(0,y.jsx)(\"path\",{fillRule:\"evenodd\",clipRule:\"evenodd\",d:\"M14.5 7v7a2.5 2.5 0 0 1-2.5 2.5H4A2.5 2.5 0 0 1 1.5 14V.5h7.586a1 1 0 0 1 .707.293l4.414 4.414a1 1 0 0 1 .293.707V7zM13 7v7a1 1 0 0 1-1 1H4a1 1 0 0 1-1-1V2h5v5h5zM9.5 2.621V5.5h2.879L9.5 2.621z\",fill:\"currentColor\"})})}function eM(){return(0,y.jsxs)(\"svg\",{height:\"16\",strokeLinejoin:\"round\",viewBox:\"0 0 16 16\",width:\"16\",children:[(0,y.jsx)(\"g\",{clipPath:\"url(#file_react_clip0_872_3183)\",children:(0,y.jsx)(\"path\",{fillRule:\"evenodd\",clipRule:\"evenodd\",d:\"M4.5 1.93782C4.70129 1.82161 4.99472 1.7858 5.41315 1.91053C5.83298 2.03567 6.33139 2.31073 6.87627 2.73948C7.01136 2.84578 7.14803 2.96052 7.28573 3.08331C6.86217 3.53446 6.44239 4.04358 6.03752 4.60092C5.35243 4.67288 4.70164 4.78186 4.09916 4.92309C4.06167 4.74244 4.03064 4.56671 4.00612 4.39656C3.90725 3.71031 3.91825 3.14114 4.01979 2.71499C4.12099 2.29025 4.29871 2.05404 4.5 1.93782ZM7.49466 1.95361C7.66225 2.08548 7.83092 2.22804 7.99999 2.38067C8.16906 2.22804 8.33773 2.08548 8.50532 1.95361C9.10921 1.47842 9.71982 1.12549 10.3012 0.952202C10.8839 0.778496 11.4838 0.7738 12 1.0718C12.5161 1.3698 12.812 1.89169 12.953 2.48322C13.0936 3.07333 13.0932 3.77858 12.9836 4.53917C12.9532 4.75024 12.9141 4.9676 12.8665 5.19034C13.0832 5.26044 13.291 5.33524 13.489 5.41444C14.2025 5.69983 14.8134 6.05217 15.2542 6.46899C15.696 6.8868 16 7.404 16 8C16 8.596 15.696 9.11319 15.2542 9.53101C14.8134 9.94783 14.2025 10.3002 13.489 10.5856C13.291 10.6648 13.0832 10.7396 12.8665 10.8097C12.9141 11.0324 12.9532 11.2498 12.9837 11.4608C13.0932 12.2214 13.0936 12.9267 12.953 13.5168C12.812 14.1083 12.5161 14.6302 12 14.9282C11.4839 15.2262 10.8839 15.2215 10.3012 15.0478C9.71984 14.8745 9.10923 14.5216 8.50534 14.0464C8.33775 13.9145 8.16906 13.7719 7.99999 13.6193C7.83091 13.7719 7.66223 13.9145 7.49464 14.0464C6.89075 14.5216 6.28014 14.8745 5.69879 15.0478C5.11605 15.2215 4.51613 15.2262 3.99998 14.9282C3.48383 14.6302 3.18794 14.1083 3.047 13.5168C2.9064 12.9267 2.90674 12.2214 3.01632 11.4608C3.04673 11.2498 3.08586 11.0324 3.13351 10.8097C2.91679 10.7395 2.709 10.6648 2.511 10.5856C1.79752 10.3002 1.18658 9.94783 0.745833 9.53101C0.304028 9.11319 0 8.596 0 8C0 7.404 0.304028 6.8868 0.745833 6.46899C1.18658 6.05217 1.79752 5.69983 2.511 5.41444C2.709 5.33524 2.9168 5.26044 3.13352 5.19034C3.08587 4.9676 3.04675 4.75024 3.01634 4.53917C2.90676 3.77858 2.90642 3.07332 3.04702 2.48321C3.18796 1.89169 3.48385 1.3698 4 1.0718C4.51615 0.773798 5.11607 0.778495 5.69881 0.952201C6.28016 1.12549 6.89077 1.47841 7.49466 1.95361ZM7.36747 4.51025C7.57735 4.25194 7.78881 4.00927 7.99999 3.78356C8.21117 4.00927 8.42263 4.25194 8.63251 4.51025C8.42369 4.50346 8.21274 4.5 8 4.5C7.78725 4.5 7.5763 4.50345 7.36747 4.51025ZM8.71425 3.08331C9.13781 3.53447 9.55759 4.04358 9.96246 4.60092C10.6475 4.67288 11.2983 4.78186 11.9008 4.92309C11.9383 4.74244 11.9693 4.56671 11.9939 4.39657C12.0927 3.71031 12.0817 3.14114 11.9802 2.71499C11.879 2.29025 11.7013 2.05404 11.5 1.93782C11.2987 1.82161 11.0053 1.7858 10.5868 1.91053C10.167 2.03568 9.66859 2.31073 9.12371 2.73948C8.98862 2.84578 8.85196 2.96052 8.71425 3.08331ZM8 5.5C8.48433 5.5 8.95638 5.51885 9.41188 5.55456C9.67056 5.93118 9.9229 6.33056 10.1651 6.75C10.4072 7.16944 10.6269 7.58766 10.8237 7.99998C10.6269 8.41232 10.4072 8.83055 10.165 9.25C9.92288 9.66944 9.67053 10.0688 9.41185 10.4454C8.95636 10.4812 8.48432 10.5 8 10.5C7.51567 10.5 7.04363 10.4812 6.58813 10.4454C6.32945 10.0688 6.0771 9.66944 5.83494 9.25C5.59277 8.83055 5.37306 8.41232 5.17624 7.99998C5.37306 7.58765 5.59275 7.16944 5.83492 6.75C6.07708 6.33056 6.32942 5.93118 6.5881 5.55456C7.04361 5.51884 7.51566 5.5 8 5.5ZM11.0311 6.25C11.1375 6.43423 11.2399 6.61864 11.3385 6.80287C11.4572 6.49197 11.5616 6.18752 11.6515 5.89178C11.3505 5.82175 11.0346 5.75996 10.706 5.70736C10.8163 5.8848 10.9247 6.06576 11.0311 6.25ZM11.0311 9.75C11.1374 9.56576 11.2399 9.38133 11.3385 9.19709C11.4572 9.50801 11.5617 9.81246 11.6515 10.1082C11.3505 10.1782 11.0346 10.24 10.7059 10.2926C10.8162 10.1152 10.9247 9.93424 11.0311 9.75ZM11.9249 7.99998C12.2051 8.62927 12.4362 9.24738 12.6151 9.83977C12.7903 9.78191 12.958 9.72092 13.1176 9.65708C13.7614 9.39958 14.2488 9.10547 14.5671 8.80446C14.8843 8.50445 15 8.23243 15 8C15 7.76757 14.8843 7.49555 14.5671 7.19554C14.2488 6.89453 13.7614 6.60042 13.1176 6.34292C12.958 6.27907 12.7903 6.21808 12.6151 6.16022C12.4362 6.7526 12.2051 7.37069 11.9249 7.99998ZM9.96244 11.3991C10.6475 11.3271 11.2983 11.2181 11.9008 11.0769C11.9383 11.2576 11.9694 11.4333 11.9939 11.6034C12.0928 12.2897 12.0817 12.8589 11.9802 13.285C11.879 13.7098 11.7013 13.946 11.5 14.0622C11.2987 14.1784 11.0053 14.2142 10.5868 14.0895C10.167 13.9643 9.66861 13.6893 9.12373 13.2605C8.98863 13.1542 8.85196 13.0395 8.71424 12.9167C9.1378 12.4655 9.55758 11.9564 9.96244 11.3991ZM8.63249 11.4898C8.42262 11.7481 8.21116 11.9907 7.99999 12.2164C7.78881 11.9907 7.57737 11.7481 7.36749 11.4897C7.57631 11.4965 7.78726 11.5 8 11.5C8.21273 11.5 8.42367 11.4965 8.63249 11.4898ZM4.96891 9.75C5.07528 9.93424 5.18375 10.1152 5.29404 10.2926C4.9654 10.24 4.64951 10.1782 4.34844 10.1082C4.43833 9.81246 4.54276 9.508 4.66152 9.19708C4.76005 9.38133 4.86254 9.56575 4.96891 9.75ZM6.03754 11.3991C5.35244 11.3271 4.70163 11.2181 4.09914 11.0769C4.06165 11.2576 4.03062 11.4333 4.0061 11.6034C3.90723 12.2897 3.91823 12.8589 4.01977 13.285C4.12097 13.7098 4.29869 13.946 4.49998 14.0622C4.70127 14.1784 4.9947 14.2142 5.41313 14.0895C5.83296 13.9643 6.33137 13.6893 6.87625 13.2605C7.01135 13.1542 7.14802 13.0395 7.28573 12.9167C6.86217 12.4655 6.4424 11.9564 6.03754 11.3991ZM4.07507 7.99998C3.79484 8.62927 3.56381 9.24737 3.38489 9.83977C3.20969 9.78191 3.042 9.72092 2.88239 9.65708C2.23864 9.39958 1.75123 9.10547 1.43294 8.80446C1.11571 8.50445 1 8.23243 1 8C1 7.76757 1.11571 7.49555 1.43294 7.19554C1.75123 6.89453 2.23864 6.60042 2.88239 6.34292C3.042 6.27907 3.2097 6.21808 3.3849 6.16022C3.56383 6.75261 3.79484 7.37069 4.07507 7.99998ZM4.66152 6.80287C4.54277 6.49197 4.43835 6.18752 4.34846 5.89178C4.64952 5.82175 4.96539 5.75996 5.29402 5.70736C5.18373 5.8848 5.07526 6.06576 4.96889 6.25C4.86253 6.43423 4.76005 6.61864 4.66152 6.80287ZM9.25 8C9.25 8.69036 8.69036 9.25 8 9.25C7.30964 9.25 6.75 8.69036 6.75 8C6.75 7.30965 7.30964 6.75 8 6.75C8.69036 6.75 9.25 7.30965 9.25 8Z\",fill:\"currentColor\"})}),(0,y.jsx)(\"defs\",{children:(0,y.jsx)(\"clipPath\",{id:\"file_react_clip0_872_3183\",children:(0,y.jsx)(\"rect\",{width:\"16\",height:\"16\",fill:\"white\"})})})]})}var eI=__nested_webpack_require_381207__(\"./dist/compiled/anser/index.js\"),eH=__nested_webpack_require_381207__.n(eI),eF=__nested_webpack_require_381207__(\"./dist/compiled/strip-ansi/index.js\"),eU=__nested_webpack_require_381207__.n(eF);function eV(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{},r=Object.keys(t);\"function\"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(t).filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.forEach(function(n){var r,o,a;r=e,o=n,a=t[n],o in r?Object.defineProperty(r,o,{value:a,enumerable:!0,configurable:!0,writable:!0}):r[o]=a})}return e}function eq(e){var n,t=e.stackFrame,r=e.codeFrame,o=(0,x.useMemo)(function(){var e,n;return(function(e){var n=eH().ansiToJson(e,{json:!0,use_classes:!0,remove_empty:!0}),t=[],r=[],o=!0,a=!1,i=void 0;try{for(var l,s=n[Symbol.iterator]();!(o=(l=s.next()).done);o=!0){var c=l.value;if(\"string\"==typeof c.content&&c.content.includes(\"\\n\"))for(var u=c.content.split(\"\\n\"),d=0;d<u.length;d++){var f=u[d];f&&r.push(function(e,n){return n=null!=n?n:{},Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):(function(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t.push.apply(t,r)}return t})(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}),e}(function(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{},r=Object.keys(t);\"function\"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(t).filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.forEach(function(n){var r,o,a;r=e,o=n,a=t[n],o in r?Object.defineProperty(r,o,{value:a,enumerable:!0,configurable:!0,writable:!0}):r[o]=a})}return e}({},c),{content:f})),d<u.length-1&&(t.push(r),r=[])}else r.push(c)}}catch(e){a=!0,i=e}finally{try{o||null==s.return||s.return()}finally{if(a)throw i}}return r.length>0&&t.push(r),t})((n=(e=r.split(/\\r?\\n/g)).map(function(e){return null===/^>? +\\d+ +\\| [ ]+/.exec(eU()(e))?null:/^>? +\\d+ +\\| ( *)/.exec(eU()(e))}).filter(Boolean).map(function(e){return e.pop()}).reduce(function(e,n){return isNaN(e)?n.length:Math.min(e,n.length)},NaN))>1?e.map(function(e,t){return~(t=e.indexOf(\"|\"))?e.substring(0,t)+e.substring(t).replace(\"^\\\\ {\".concat(n,\"}\"),\"\"):e}).join(\"\\n\"):e.join(\"\\n\")).map(function(e){var n,r,o,a,i,l,s,c,u;return{line:e,parsedLine:(n=e,r=t,((null==(o=n[0])?void 0:o.content)===\">\"||(null==(a=n[0])?void 0:a.content)===\" \")&&(s=null==(l=n[1])||null==(u=l.content)||null==(c=u.replace(\"|\",\"\"))?void 0:c.trim()),{lineNumber:s,isErroredLine:s===(null==(i=r.lineNumber)?void 0:i.toString())})}})},[r,t]),a=eE({file:t.file,lineNumber:t.lineNumber,column:t.column}),i=null==t||null==(n=t.file)?void 0:n.split(\".\").pop();return(0,y.jsxs)(\"div\",{\"data-nextjs-codeframe\":!0,children:[(0,y.jsx)(\"div\",{className:\"code-frame-header\",children:(0,y.jsxs)(\"p\",{className:\"code-frame-link\",children:[(0,y.jsx)(\"span\",{className:\"code-frame-icon\",children:(0,y.jsx)(eT,{lang:i})}),(0,y.jsxs)(\"span\",{\"data-text\":!0,children:[eS(t),\" @\",\" \",(0,y.jsx)(eb,{text:t.methodName})]}),(0,y.jsx)(\"button\",{\"aria-label\":\"Open in editor\",\"data-with-open-in-editor-link-source-file\":!0,onClick:a,children:(0,y.jsx)(\"span\",{className:\"code-frame-icon\",\"data-icon\":\"right\",children:(0,y.jsx)(ez,{width:16,height:16})})})]})}),(0,y.jsx)(\"pre\",{className:\"code-frame-pre\",children:(0,y.jsx)(\"div\",{className:\"code-frame-lines\",children:o.map(function(e,n){var t,r,o=e.line,a=e.parsedLine,i=a.lineNumber,l=a.isErroredLine,s={};return i&&(s[\"data-nextjs-codeframe-line\"]=i),l&&(s[\"data-nextjs-codeframe-line--errored\"]=!0),(0,y.jsx)(\"div\",(t=eV({},s),r=r={children:o.map(function(e,n){return(0,y.jsx)(\"span\",{style:eV({color:e.fg?\"var(--color-\".concat(e.fg,\")\"):void 0},\"bold\"===e.decoration?{fontWeight:500}:\"italic\"===e.decoration?{fontStyle:\"italic\"}:void 0),children:e.content},\"frame-\".concat(n))})},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):(function(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t.push.apply(t,r)}return t})(Object(r)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))}),t),\"line-\".concat(n))})})})]})}function eW(e,n){(null==n||n>e.length)&&(n=e.length);for(var t=0,r=Array(n);t<n;t++)r[t]=e[t];return r}var e$=[\"[data-next-mark]\",\"[data-issues-open]\",\"#nextjs-dev-tools-menu\",\"[data-nextjs-error-overlay-nav]\",\"[data-info-popover]\",\"[data-nextjs-devtools-panel-overlay]\",\"[data-nextjs-devtools-panel-footer]\",\"[data-nextjs-error-overlay-footer]\"],eZ=function(e){var n,t,r,o,a,i,l,s=e.children,c=e.className,u=e.onClose,d=e[\"aria-labelledby\"],f=e[\"aria-describedby\"],p=(e.dialogResizerRef,function(e,n){if(null==e)return{};var t,r,o=function(e,n){if(null==e)return{};var t,r,o={},a=Object.keys(e);for(r=0;r<a.length;r++)t=a[r],n.indexOf(t)>=0||(o[t]=e[t]);return o}(e,n);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r<a.length;r++)t=a[r],!(n.indexOf(t)>=0)&&Object.prototype.propertyIsEnumerable.call(e,t)&&(o[t]=e[t])}return o}(e,[\"children\",\"className\",\"onClose\",\"aria-labelledby\",\"aria-describedby\",\"dialogResizerRef\"])),h=x.useRef(null),g=(n=x.useState(\"undefined\"!=typeof document&&document.hasFocus()?\"dialog\":void 0),t=2,function(e){if(Array.isArray(e))return e}(n)||function(e,n){var t,r,o=null==e?null:\"undefined\"!=typeof Symbol&&e[Symbol.iterator]||e[\"@@iterator\"];if(null!=o){var a=[],i=!0,l=!1;try{for(o=o.call(e);!(i=(t=o.next()).done)&&(a.push(t.value),a.length!==n);i=!0);}catch(e){l=!0,r=e}finally{try{i||null==o.return||o.return()}finally{if(l)throw r}}return a}}(n,2)||function(e,n){if(e){if(\"string\"==typeof e)return eW(e,n);var t=Object.prototype.toString.call(e).slice(8,-1);if(\"Object\"===t&&e.constructor&&(t=e.constructor.name),\"Map\"===t||\"Set\"===t)return Array.from(t);if(\"Arguments\"===t||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t))return eW(e,n)}}(n,t)||function(){throw TypeError(\"Invalid attempt to destructure non-iterable instance.\\\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\")}()),m=g[0],v=g[1];return r=h.current,o=e$,a=function(e){return e.preventDefault(),null==u?void 0:u()},x.useEffect(function(){if(null!=r&&null!=a){var e=function(e){!(!r||r.contains(e.target))&&(o.some(function(n){return e.target.closest(n)})||a(e))},n=r.getRootNode();return n.addEventListener(\"mouseup\",e),n.addEventListener(\"touchend\",e,{passive:!1}),function(){n.removeEventListener(\"mouseup\",e),n.removeEventListener(\"touchend\",e)}}},[a,r,o]),x.useEffect(function(){var e=function(){v(document.hasFocus()?\"dialog\":void 0)};if(null!=h.current)return window.addEventListener(\"focus\",e),window.addEventListener(\"blur\",e),function(){window.removeEventListener(\"focus\",e),window.removeEventListener(\"blur\",e)}},[]),x.useEffect(function(){var e,n,t=h.current,r=null==t?void 0:t.getRootNode(),o=(e=r,null!=(n=ShadowRoot)&&\"undefined\"!=typeof Symbol&&n[Symbol.hasInstance]?!!n[Symbol.hasInstance](e):e instanceof n)?null==r?void 0:r.activeElement:null;return null==t||t.focus(),function(){null==t||t.blur(),null==o||o.focus()}},[]),(0,y.jsx)(\"div\",(i=function(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{},r=Object.keys(t);\"function\"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(t).filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.forEach(function(n){var r,o,a;r=e,o=n,a=t[n],o in r?Object.defineProperty(r,o,{value:a,enumerable:!0,configurable:!0,writable:!0}):r[o]=a})}return e}({ref:h,tabIndex:-1,\"data-nextjs-dialog\":!0,role:m,\"aria-labelledby\":d,\"aria-describedby\":f,\"aria-modal\":\"true\",className:c,onKeyDown:function(e){\"Escape\"===e.key&&(null==u||u())}},p),l=l={children:s},Object.getOwnPropertyDescriptors?Object.defineProperties(i,Object.getOwnPropertyDescriptors(l)):(function(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t.push.apply(t,r)}return t})(Object(l)).forEach(function(e){Object.defineProperty(i,e,Object.getOwnPropertyDescriptor(l,e))}),i))},eY=function(e){var n,t,r=e.children,o=e.className,a=function(e,n){if(null==e)return{};var t,r,o=function(e,n){if(null==e)return{};var t,r,o={},a=Object.keys(e);for(r=0;r<a.length;r++)t=a[r],n.indexOf(t)>=0||(o[t]=e[t]);return o}(e,n);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r<a.length;r++)t=a[r],!(n.indexOf(t)>=0)&&Object.prototype.propertyIsEnumerable.call(e,t)&&(o[t]=e[t])}return o}(e,[\"children\",\"className\"]);return(0,y.jsx)(\"div\",(n=function(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{},r=Object.keys(t);\"function\"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(t).filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.forEach(function(n){var r,o,a;r=e,o=n,a=t[n],o in r?Object.defineProperty(r,o,{value:a,enumerable:!0,configurable:!0,writable:!0}):r[o]=a})}return e}({\"data-nextjs-dialog-body\":!0,className:o},a),t=t={children:r},Object.getOwnPropertyDescriptors?Object.defineProperties(n,Object.getOwnPropertyDescriptors(t)):(function(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t.push.apply(t,r)}return t})(Object(t)).forEach(function(e){Object.defineProperty(n,e,Object.getOwnPropertyDescriptor(t,e))}),n))},eX=function(e){var n,t,r=e.children,o=e.className,a=function(e,n){if(null==e)return{};var t,r,o=function(e,n){if(null==e)return{};var t,r,o={},a=Object.keys(e);for(r=0;r<a.length;r++)t=a[r],n.indexOf(t)>=0||(o[t]=e[t]);return o}(e,n);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r<a.length;r++)t=a[r],!(n.indexOf(t)>=0)&&Object.prototype.propertyIsEnumerable.call(e,t)&&(o[t]=e[t])}return o}(e,[\"children\",\"className\"]);return(0,y.jsx)(\"div\",(n=function(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{},r=Object.keys(t);\"function\"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(t).filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.forEach(function(n){var r,o,a;r=e,o=n,a=t[n],o in r?Object.defineProperty(r,o,{value:a,enumerable:!0,configurable:!0,writable:!0}):r[o]=a})}return e}({\"data-nextjs-dialog-content\":!0,className:o},a),t=t={children:r},Object.getOwnPropertyDescriptors?Object.defineProperties(n,Object.getOwnPropertyDescriptors(t)):(function(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t.push.apply(t,r)}return t})(Object(t)).forEach(function(e){Object.defineProperty(n,e,Object.getOwnPropertyDescriptor(t,e))}),n))};function eK(e){var n,t;return(0,y.jsx)(\"div\",(n=function(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{},r=Object.keys(t);\"function\"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(t).filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.forEach(function(n){var r,o,a;r=e,o=n,a=t[n],o in r?Object.defineProperty(r,o,{value:a,enumerable:!0,configurable:!0,writable:!0}):r[o]=a})}return e}({\"data-nextjs-dialog-header\":!0},e),t=t={children:e.children},Object.getOwnPropertyDescriptors?Object.defineProperties(n,Object.getOwnPropertyDescriptors(t)):(function(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t.push.apply(t,r)}return t})(Object(t)).forEach(function(e){Object.defineProperty(n,e,Object.getOwnPropertyDescriptor(t,e))}),n))}function eQ(){var e,n,t=(e=[\"\\n [data-nextjs-dialog-root] {\\n --next-dialog-radius: var(--rounded-xl);\\n --next-dialog-max-width: 960px;\\n --next-dialog-row-padding: 16px;\\n --next-dialog-padding: 12px;\\n --next-dialog-notch-height: 42px;\\n --next-dialog-border-width: 1px;\\n\\n display: flex;\\n flex-direction: column;\\n width: 100%;\\n max-height: calc(100% - 56px);\\n max-width: var(--next-dialog-max-width);\\n margin-right: auto;\\n margin-left: auto;\\n scale: 0.97;\\n opacity: 0;\\n transition-property: scale, opacity;\\n transition-duration: var(--transition-duration);\\n transition-timing-function: var(--timing-overlay);\\n\\n &[data-rendered='true'] {\\n opacity: 1;\\n scale: 1;\\n }\\n\\n [data-nextjs-scroll-fader][data-side='top'] {\\n left: 1px;\\n top: calc(\\n var(--next-dialog-notch-height) + var(--next-dialog-border-width)\\n );\\n width: calc(100% - var(--next-dialog-padding));\\n opacity: 0;\\n }\\n }\\n\\n [data-nextjs-dialog] {\\n outline: 0;\\n }\\n\\n [data-nextjs-dialog],\\n [data-nextjs-dialog] * {\\n &::-webkit-scrollbar {\\n width: 6px;\\n height: 6px;\\n border-radius: 0 0 1rem 1rem;\\n margin-bottom: 1rem;\\n }\\n\\n &::-webkit-scrollbar-button {\\n display: none;\\n }\\n\\n &::-webkit-scrollbar-track {\\n border-radius: 0 0 1rem 1rem;\\n background-color: var(--color-background-100);\\n }\\n\\n &::-webkit-scrollbar-thumb {\\n border-radius: 1rem;\\n background-color: var(--color-gray-500);\\n }\\n }\\n\\n /* Place overflow: hidden on this so we can break out from [data-nextjs-dialog] */\\n [data-nextjs-dialog-sizer] {\\n overflow: hidden;\\n border-radius: inherit;\\n }\\n\\n [data-nextjs-dialog-backdrop] {\\n opacity: 0;\\n transition: opacity var(--transition-duration) var(--timing-overlay);\\n }\\n\\n [data-nextjs-dialog-overlay] {\\n margin: 8px;\\n }\\n\\n [data-nextjs-dialog-overlay][data-rendered='true']\\n [data-nextjs-dialog-backdrop] {\\n opacity: 1;\\n }\\n\\n [data-nextjs-dialog-content] {\\n border: none;\\n margin: 0;\\n display: flex;\\n flex-direction: column;\\n position: relative;\\n padding: var(--next-dialog-padding);\\n }\\n\\n [data-nextjs-dialog-content] > [data-nextjs-dialog-header] {\\n flex-shrink: 0;\\n margin-bottom: 8px;\\n }\\n\\n [data-nextjs-dialog-content] > [data-nextjs-dialog-body] {\\n position: relative;\\n flex: 1 1 auto;\\n }\\n\\n @media (max-height: 812px) {\\n [data-nextjs-dialog-overlay] {\\n max-height: calc(100% - 15px);\\n }\\n }\\n\\n @media (min-width: 576px) {\\n [data-nextjs-dialog-root] {\\n --next-dialog-max-width: 540px;\\n }\\n }\\n\\n @media (min-width: 768px) {\\n [data-nextjs-dialog-root] {\\n --next-dialog-max-width: 720px;\\n }\\n }\\n\\n @media (min-width: 992px) {\\n [data-nextjs-dialog-root] {\\n --next-dialog-max-width: 960px;\\n }\\n }\\n\"],n||(n=e.slice(0)),Object.freeze(Object.defineProperties(e,{raw:{value:Object.freeze(n)}})));return eQ=function(){return t},t}var eG=ei(eQ()),eJ=__nested_webpack_require_381207__(\"./src/next-devtools/dev-overlay/utils/cx.ts\");function e0(e,n){(null==n||n>e.length)&&(n=e.length);for(var t=0,r=Array(n);t<n;t++)r[t]=e[t];return r}function e1(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{},r=Object.keys(t);\"function\"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(t).filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.forEach(function(n){var r,o,a;r=e,o=n,a=t[n],o in r?Object.defineProperty(r,o,{value:a,enumerable:!0,configurable:!0,writable:!0}):r[o]=a})}return e}function e2(e,n){return n=null!=n?n:{},Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):(function(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t.push.apply(t,r)}return t})(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}),e}function e4(e,n){return function(e){if(Array.isArray(e))return e}(e)||function(e,n){var t,r,o=null==e?null:\"undefined\"!=typeof Symbol&&e[Symbol.iterator]||e[\"@@iterator\"];if(null!=o){var a=[],i=!0,l=!1;try{for(o=o.call(e);!(i=(t=o.next()).done)&&(a.push(t.value),!n||a.length!==n);i=!0);}catch(e){l=!0,r=e}finally{try{i||null==o.return||o.return()}finally{if(l)throw r}}return a}}(e,n)||function(e,n){if(e){if(\"string\"==typeof e)return e0(e,n);var t=Object.prototype.toString.call(e).slice(8,-1);if(\"Object\"===t&&e.constructor&&(t=e.constructor.name),\"Map\"===t||\"Set\"===t)return Array.from(t);if(\"Arguments\"===t||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t))return e0(e,n)}}(e,n)||function(){throw TypeError(\"Invalid attempt to destructure non-iterable instance.\\\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\")}()}var e5=\"function\"==typeof x.useActionState?function(e){var n=e4(x.useActionState(function(n,t){return\"reset\"===t?{state:\"initial\"}:\"copy\"===t?navigator.clipboard?navigator.clipboard.writeText(e).then(function(){return{state:\"success\"}},function(e){return{state:\"error\",error:e}}):{state:\"error\",error:\"Copy to clipboard is not supported in this browser\"}:n},{state:\"initial\"}),3),t=n[0],r=n[1],o=n[2];return[t,function(){x.startTransition(function(){r(\"copy\")})},x.useCallback(function(){r(\"reset\")},[r]),o]}:function(e){var n=e4(x.useReducer(function(e,n){return\"reset\"===n.type?{state:\"initial\"}:\"copied\"===n.type?{state:\"success\"}:\"copying\"===n.type?{state:\"pending\"}:\"error\"===n.type?{state:\"error\",error:n.error}:e},{state:\"initial\"}),2),t=n[0],r=n[1],o=x.useCallback(function(){r({type:\"reset\"})},[]),a=\"pending\"===t.state;return[t,function(){a||(navigator.clipboard?(r({type:\"copying\"}),navigator.clipboard.writeText(e).then(function(){r({type:\"copied\"})},function(e){r({type:\"error\",error:e})})):r({type:\"error\",error:\"Copy to clipboard is not supported in this browser\"}))},o,a]};function e3(e){var n=e.actionLabel,t=e.successLabel,r=e.content,o=e.icon,a=e.disabled,i=function(e,n){if(null==e)return{};var t,r,o=function(e,n){if(null==e)return{};var t,r,o={},a=Object.keys(e);for(r=0;r<a.length;r++)t=a[r],n.indexOf(t)>=0||(o[t]=e[t]);return o}(e,n);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r<a.length;r++)t=a[r],!(n.indexOf(t)>=0)&&Object.prototype.propertyIsEnumerable.call(e,t)&&(o[t]=e[t])}return o}(e,[\"actionLabel\",\"successLabel\",\"content\",\"icon\",\"disabled\"]),l=e4(e5(r),4),s=l[0],c=l[1],u=l[2],d=l[3],f=\"error\"===s.state?s.error:null;x.useEffect(function(){null!==f&&console.warn(f)},[f]),x.useEffect(function(){if(\"success\"===s.state){var e=setTimeout(function(){u()},2e3);return function(){clearTimeout(e)}}},[d,s.state,u]);var p=!navigator.clipboard||d||a||!!f,h=\"success\"===s.state?t:n,g=\"success\"===s.state?(0,y.jsx)(e9,{}):o||(0,y.jsx)(e6,{width:14,height:14,className:\"error-overlay-toolbar-button-icon\"});return(0,y.jsxs)(\"button\",e2(e1({},i),{type:\"button\",title:h,\"aria-label\":h,\"aria-disabled\":p,disabled:p,\"data-nextjs-copy-button\":!0,className:(0,eJ.cx)(i.className,\"nextjs-data-copy-button\",\"nextjs-data-copy-button--\".concat(s.state)),onClick:function(){p||c()},children:[g,\"error\"===s.state?\" \".concat(s.error):null]}))}function e6(e){return(0,y.jsx)(\"svg\",e2(e1({width:\"14\",height:\"14\",viewBox:\"0 0 14 14\",fill:\"none\",xmlns:\"http://www.w3.org/2000/svg\"},e),{children:(0,y.jsx)(\"path\",{fillRule:\"evenodd\",clipRule:\"evenodd\",d:\"M2.406.438c-.845 0-1.531.685-1.531 1.53v6.563c0 .846.686 1.531 1.531 1.531H3.937V8.75H2.406a.219.219 0 0 1-.219-.219V1.97c0-.121.098-.219.22-.219h4.812c.12 0 .218.098.218.219v.656H8.75v-.656c0-.846-.686-1.532-1.531-1.532H2.406zm4.375 3.5c-.845 0-1.531.685-1.531 1.53v6.563c0 .846.686 1.531 1.531 1.531h4.813c.845 0 1.531-.685 1.531-1.53V5.468c0-.846-.686-1.532-1.531-1.532H6.78zm-.218 1.53c0-.12.097-.218.218-.218h4.813c.12 0 .219.098.219.219v6.562c0 .121-.098.219-.22.219H6.782a.219.219 0 0 1-.218-.219V5.47z\",fill:\"currentColor\"})}))}function e9(){return(0,y.jsx)(\"svg\",{height:\"16\",xlinkTitle:\"copied\",viewBox:\"0 0 16 16\",width:\"16\",stroke:\"currentColor\",fill:\"currentColor\",children:(0,y.jsx)(\"path\",{d:\"M13.78 4.22a.75.75 0 0 1 0 1.06l-7.25 7.25a.75.75 0 0 1-1.06 0L2.22 9.28a.751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018L6 10.94l6.72-6.72a.75.75 0 0 1 1.06 0Z\"})})}function e8(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{},r=Object.keys(t);\"function\"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(t).filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.forEach(function(n){var r,o,a;r=e,o=n,a=t[n],o in r?Object.defineProperty(r,o,{value:a,enumerable:!0,configurable:!0,writable:!0}):r[o]=a})}return e}function e7(e,n){return n=null!=n?n:{},Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):(function(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t.push.apply(t,r)}return t})(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}),e}var ne=function(){if(\"undefined\"==typeof window)return!1;var e=\"chrome\"in window&&window.chrome,n=window.navigator.vendor;return null!=e&&\"Google Inc.\"===n}();function nn(e){return(0,y.jsxs)(\"svg\",e7(e8({width:\"14\",height:\"14\",viewBox:\"0 0 14 14\",fill:\"none\",xmlns:\"http://www.w3.org/2000/svg\"},e),{children:[(0,y.jsx)(\"mask\",{id:\"nodejs_icon_mask_a\",style:{maskType:\"luminance\"},maskUnits:\"userSpaceOnUse\",x:\"0\",y:\"0\",width:\"14\",height:\"14\",children:(0,y.jsx)(\"path\",{d:\"M6.67.089 1.205 3.256a.663.663 0 0 0-.33.573v6.339c0 .237.126.455.33.574l5.466 3.17a.66.66 0 0 0 .66 0l5.465-3.17a.664.664 0 0 0 .329-.574V3.829a.663.663 0 0 0-.33-.573L7.33.089a.663.663 0 0 0-.661 0\",fill:\"#fff\"})}),(0,y.jsx)(\"g\",{mask:\"url(#nodejs_icon_mask_a)\",children:(0,y.jsx)(\"path\",{d:\"M18.648 2.717 3.248-4.86-4.648 11.31l15.4 7.58 7.896-16.174z\",fill:\"url(#nodejs_icon_linear_gradient_b)\"})}),(0,y.jsx)(\"mask\",{id:\"nodejs_icon_mask_c\",style:{maskType:\"luminance\"},maskUnits:\"userSpaceOnUse\",x:\"1\",y:\"0\",width:\"12\",height:\"14\",children:(0,y.jsx)(\"path\",{d:\"M1.01 10.57a.663.663 0 0 0 .195.17l4.688 2.72.781.45a.66.66 0 0 0 .51.063l5.764-10.597a.653.653 0 0 0-.153-.122L9.216 1.18 7.325.087a.688.688 0 0 0-.171-.07L1.01 10.57z\",fill:\"#fff\"})}),(0,y.jsx)(\"g\",{mask:\"url(#nodejs_icon_mask_c)\",children:(0,y.jsx)(\"path\",{d:\"M-5.647 4.958 5.226 19.734l14.38-10.667L8.734-5.71-5.647 4.958z\",fill:\"url(#nodejs_icon_linear_gradient_d)\"})}),(0,y.jsxs)(\"g\",{children:[(0,y.jsx)(\"mask\",{id:\"nodejs_icon_mask_e\",style:{maskType:\"luminance\"},maskUnits:\"userSpaceOnUse\",x:\"1\",y:\"0\",width:\"13\",height:\"14\",children:(0,y.jsx)(\"path\",{d:\"M6.934.004A.665.665 0 0 0 6.67.09L1.22 3.247l5.877 10.746a.655.655 0 0 0 .235-.08l5.465-3.17a.665.665 0 0 0 .319-.453L7.126.015a.684.684 0 0 0-.189-.01\",fill:\"#fff\"})}),(0,y.jsx)(\"g\",{mask:\"url(#nodejs_icon_mask_e)\",children:(0,y.jsx)(\"path\",{d:\"M1.22.002v13.992h11.894V.002H1.22z\",fill:\"url(#nodejs_icon_linear_gradient_f)\"})})]}),(0,y.jsxs)(\"defs\",{children:[(0,y.jsxs)(\"linearGradient\",{id:\"nodejs_icon_linear_gradient_b\",x1:\"10.943\",y1:\"-1.084\",x2:\"2.997\",y2:\"15.062\",gradientUnits:\"userSpaceOnUse\",children:[(0,y.jsx)(\"stop\",{offset:\".3\",stopColor:\"#3E863D\"}),(0,y.jsx)(\"stop\",{offset:\".5\",stopColor:\"#55934F\"}),(0,y.jsx)(\"stop\",{offset:\".8\",stopColor:\"#5AAD45\"})]}),(0,y.jsxs)(\"linearGradient\",{id:\"nodejs_icon_linear_gradient_d\",x1:\"-.145\",y1:\"12.431\",x2:\"14.277\",y2:\"1.818\",gradientUnits:\"userSpaceOnUse\",children:[(0,y.jsx)(\"stop\",{offset:\".57\",stopColor:\"#3E863D\"}),(0,y.jsx)(\"stop\",{offset:\".72\",stopColor:\"#619857\"}),(0,y.jsx)(\"stop\",{offset:\"1\",stopColor:\"#76AC64\"})]}),(0,y.jsxs)(\"linearGradient\",{id:\"nodejs_icon_linear_gradient_f\",x1:\"1.225\",y1:\"6.998\",x2:\"13.116\",y2:\"6.998\",gradientUnits:\"userSpaceOnUse\",children:[(0,y.jsx)(\"stop\",{offset:\".16\",stopColor:\"#6BBF47\"}),(0,y.jsx)(\"stop\",{offset:\".38\",stopColor:\"#79B461\"}),(0,y.jsx)(\"stop\",{offset:\".47\",stopColor:\"#75AC64\"}),(0,y.jsx)(\"stop\",{offset:\".7\",stopColor:\"#659E5A\"}),(0,y.jsx)(\"stop\",{offset:\".9\",stopColor:\"#3E863D\"})]})]})]}))}function nt(e){return(0,y.jsxs)(\"svg\",e7(e8({width:\"14\",height:\"14\",viewBox:\"0 0 14 14\",fill:\"none\",xmlns:\"http://www.w3.org/2000/svg\"},e),{children:[(0,y.jsx)(\"mask\",{id:\"nodejs_icon_mask_a\",style:{maskType:\"luminance\"},maskUnits:\"userSpaceOnUse\",x:\"0\",y:\"0\",width:\"14\",height:\"14\",children:(0,y.jsx)(\"path\",{d:\"M6.67.089 1.205 3.256a.663.663 0 0 0-.33.573v6.339c0 .237.126.455.33.574l5.466 3.17a.66.66 0 0 0 .66 0l5.465-3.17a.664.664 0 0 0 .329-.574V3.829a.663.663 0 0 0-.33-.573L7.33.089a.663.663 0 0 0-.661 0\",fill:\"#fff\"})}),(0,y.jsx)(\"g\",{mask:\"url(#nodejs_icon_mask_a)\",children:(0,y.jsx)(\"path\",{d:\"M18.648 2.717 3.248-4.86-4.646 11.31l15.399 7.58 7.896-16.174z\",fill:\"url(#nodejs_icon_linear_gradient_b)\"})}),(0,y.jsx)(\"mask\",{id:\"nodejs_icon_mask_c\",style:{maskType:\"luminance\"},maskUnits:\"userSpaceOnUse\",x:\"1\",y:\"0\",width:\"12\",height:\"15\",children:(0,y.jsx)(\"path\",{d:\"M1.01 10.571a.66.66 0 0 0 .195.172l4.688 2.718.781.451a.66.66 0 0 0 .51.063l5.764-10.597a.653.653 0 0 0-.153-.122L9.216 1.181 7.325.09a.688.688 0 0 0-.171-.07L1.01 10.572z\",fill:\"#fff\"})}),(0,y.jsx)(\"g\",{mask:\"url(#nodejs_icon_mask_c)\",children:(0,y.jsx)(\"path\",{d:\"M-5.647 4.96 5.226 19.736 19.606 9.07 8.734-5.707-5.647 4.96z\",fill:\"url(#nodejs_icon_linear_gradient_d)\"})}),(0,y.jsxs)(\"g\",{children:[(0,y.jsx)(\"mask\",{id:\"nodejs_icon_mask_e\",style:{maskType:\"luminance\"},maskUnits:\"userSpaceOnUse\",x:\"1\",y:\"0\",width:\"13\",height:\"14\",children:(0,y.jsx)(\"path\",{d:\"M6.935.003a.665.665 0 0 0-.264.085l-5.45 3.158 5.877 10.747a.653.653 0 0 0 .235-.082l5.465-3.17a.665.665 0 0 0 .319-.452L7.127.014a.684.684 0 0 0-.189-.01\",fill:\"#fff\"})}),(0,y.jsx)(\"g\",{mask:\"url(#nodejs_icon_mask_e)\",children:(0,y.jsx)(\"path\",{d:\"M1.222.001v13.992h11.893V0H1.222z\",fill:\"url(#nodejs_icon_linear_gradient_f)\"})})]}),(0,y.jsxs)(\"defs\",{children:[(0,y.jsxs)(\"linearGradient\",{id:\"nodejs_icon_linear_gradient_b\",x1:\"10.944\",y1:\"-1.084\",x2:\"2.997\",y2:\"15.062\",gradientUnits:\"userSpaceOnUse\",children:[(0,y.jsx)(\"stop\",{offset:\".3\",stopColor:\"#676767\"}),(0,y.jsx)(\"stop\",{offset:\".5\",stopColor:\"#858585\"}),(0,y.jsx)(\"stop\",{offset:\".8\",stopColor:\"#989A98\"})]}),(0,y.jsxs)(\"linearGradient\",{id:\"nodejs_icon_linear_gradient_d\",x1:\"-.145\",y1:\"12.433\",x2:\"14.277\",y2:\"1.819\",gradientUnits:\"userSpaceOnUse\",children:[(0,y.jsx)(\"stop\",{offset:\".57\",stopColor:\"#747474\"}),(0,y.jsx)(\"stop\",{offset:\".72\",stopColor:\"#707070\"}),(0,y.jsx)(\"stop\",{offset:\"1\",stopColor:\"#929292\"})]}),(0,y.jsxs)(\"linearGradient\",{id:\"nodejs_icon_linear_gradient_f\",x1:\"1.226\",y1:\"6.997\",x2:\"13.117\",y2:\"6.997\",gradientUnits:\"userSpaceOnUse\",children:[(0,y.jsx)(\"stop\",{offset:\".16\",stopColor:\"#878787\"}),(0,y.jsx)(\"stop\",{offset:\".38\",stopColor:\"#A9A9A9\"}),(0,y.jsx)(\"stop\",{offset:\".47\",stopColor:\"#A5A5A5\"}),(0,y.jsx)(\"stop\",{offset:\".7\",stopColor:\"#8F8F8F\"}),(0,y.jsx)(\"stop\",{offset:\".9\",stopColor:\"#626262\"})]})]})]}))}var nr=\"Learn more about enabling Node.js inspector for server code with Chrome DevTools\";function no(e){var n=e.devtoolsFrontendUrl||\"\";return n&&ne?(0,y.jsx)(e3,{\"data-nextjs-data-runtime-error-copy-devtools-url\":!0,className:\"nodejs-inspector-button\",actionLabel:\"Copy Chrome DevTools URL\",successLabel:\"Copied\",content:n,icon:(0,y.jsx)(nn,{className:\"error-overlay-toolbar-button-icon\",width:14,height:14})}):(0,y.jsx)(\"a\",{title:nr,\"aria-label\":nr,className:\"nodejs-inspector-button\",href:\"https://nextjs.org/docs/app/building-your-application/configuring/debugging#server-side-code\",target:\"_blank\",rel:\"noopener noreferrer\",children:(0,y.jsx)(nt,{className:\"error-overlay-toolbar-button-icon\",width:14,height:14})})}function na(e){var n=e.error;return(0,y.jsx)(e3,{\"data-nextjs-data-runtime-error-copy-stack\":!0,className:\"copy-stack-trace-button\",actionLabel:\"Copy Stack Trace\",successLabel:\"Stack Trace Copied\",content:n.stack||\"\",disabled:!n.stack})}function ni(e,n){(null==n||n>e.length)&&(n=e.length);for(var t=0,r=Array(n);t<n;t++)r[t]=e[t];return r}function nl(e){if(Array.isArray(e))return e}function ns(){throw TypeError(\"Invalid attempt to destructure non-iterable instance.\\\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\")}function nc(e,n){return nl(e)||function(e,n){var t,r,o=null==e?null:\"undefined\"!=typeof Symbol&&e[Symbol.iterator]||e[\"@@iterator\"];if(null!=o){var a=[],i=!0,l=!1;try{for(o=o.call(e);!(i=(t=o.next()).done)&&(a.push(t.value),!n||a.length!==n);i=!0);}catch(e){l=!0,r=e}finally{try{i||null==o.return||o.return()}finally{if(l)throw r}}return a}}(e,n)||nd(e,n)||ns()}function nu(e){return nl(e)||function(e){if(\"undefined\"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e[\"@@iterator\"])return Array.from(e)}(e)||nd(e)||ns()}function nd(e,n){if(e){if(\"string\"==typeof e)return ni(e,n);var t=Object.prototype.toString.call(e).slice(8,-1);if(\"Object\"===t&&e.constructor&&(t=e.constructor.name),\"Map\"===t||\"Set\"===t)return Array.from(t);if(\"Arguments\"===t||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t))return ni(e,n)}}var nf=\"https://react.dev/link/hydration-mismatch\",np=\"https://nextjs.org/docs/messages/react-hydration-error\",nh=[/^In HTML, (.+?) cannot be a child of <(.+?)>\\.(.*)\\nThis will cause a hydration error\\.(.*)/,/^In HTML, (.+?) cannot be a descendant of <(.+?)>\\.\\nThis will cause a hydration error\\.(.*)/,/^In HTML, text nodes cannot be a child of <(.+?)>\\.\\nThis will cause a hydration error\\./,/^In HTML, whitespace text nodes cannot be a child of <(.+?)>\\. Make sure you don't have any extra whitespace between tags on each line of your source code\\.\\nThis will cause a hydration error\\./];function ng(e){return nh.some(function(n){return n.test(e)})}var nm=[\"https://nextjs.org\",\"https://react.dev\"];function nv(e){return nm.some(function(n){return e.startsWith(n)})}function nb(e){var n=function(e){var n,t,r,o=(n=e,t=nv,r=Array.from(n.matchAll(/https?:\\/\\/[^\\s/$.?#].[^\\s)'\"]*/gi),function(e){return e[0]}),t?r.filter(function(e){return t(e)}):r);if(0===o.length)return null;var a=o[0];return a===nf?np:a}(e.errorMessage);return n?(0,y.jsx)(\"a\",{title:\"Go to related documentation\",\"aria-label\":\"Go to related documentation\",className:\"docs-link-button\",href:n,target:\"_blank\",rel:\"noopener noreferrer\",children:(0,y.jsx)(ny,{className:\"error-overlay-toolbar-button-icon\",width:14,height:14})}):(0,y.jsx)(\"button\",{title:\"No related documentation found\",\"aria-label\":\"No related documentation found\",className:\"docs-link-button\",disabled:!0,children:(0,y.jsx)(ny,{className:\"error-overlay-toolbar-button-icon\",width:14,height:14})})}function ny(e){var n,t;return(0,y.jsx)(\"svg\",(n=function(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{},r=Object.keys(t);\"function\"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(t).filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.forEach(function(n){var r,o,a;r=e,o=n,a=t[n],o in r?Object.defineProperty(r,o,{value:a,enumerable:!0,configurable:!0,writable:!0}):r[o]=a})}return e}({width:\"14\",height:\"14\",viewBox:\"0 0 14 14\",fill:\"none\",xmlns:\"http://www.w3.org/2000/svg\"},e),t=t={children:(0,y.jsx)(\"path\",{fillRule:\"evenodd\",clipRule:\"evenodd\",d:\"M0 .875h4.375C5.448.875 6.401 1.39 7 2.187A3.276 3.276 0 0 1 9.625.875H14v11.156H9.4c-.522 0-1.023.208-1.392.577l-.544.543h-.928l-.544-.543c-.369-.37-.87-.577-1.392-.577H0V.875zm6.344 3.281a1.969 1.969 0 0 0-1.969-1.968H1.312v8.53H4.6c.622 0 1.225.177 1.744.502V4.156zm1.312 7.064V4.156c0-1.087.882-1.968 1.969-1.968h3.063v8.53H9.4c-.622 0-1.225.177-1.744.502z\",fill:\"currentColor\"})},Object.getOwnPropertyDescriptors?Object.defineProperties(n,Object.getOwnPropertyDescriptors(t)):(function(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t.push.apply(t,r)}return t})(Object(t)).forEach(function(e){Object.defineProperty(n,e,Object.getOwnPropertyDescriptor(t,e))}),n))}function nx(e){var n=e.error,t=e.debugInfo,r=e.feedbackButton;return(0,y.jsxs)(\"span\",{className:\"error-overlay-toolbar\",children:[r,(0,y.jsx)(na,{error:n}),(0,y.jsx)(nb,{errorMessage:n.message}),(0,y.jsx)(no,{devtoolsFrontendUrl:null==t?void 0:t.devtoolsFrontendUrl})]})}function nw(e){var n,t;return(0,y.jsx)(\"svg\",(n=function(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{},r=Object.keys(t);\"function\"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(t).filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.forEach(function(n){var r,o,a;r=e,o=n,a=t[n],o in r?Object.defineProperty(r,o,{value:a,enumerable:!0,configurable:!0,writable:!0}):r[o]=a})}return e}({width:\"16\",height:\"16\",viewBox:\"0 0 16 16\",fill:\"none\",xmlns:\"http://www.w3.org/2000/svg\",className:\"thumbs-up-icon\"},e),t=t={children:(0,y.jsx)(\"g\",{id:\"thumb-up-16\",children:(0,y.jsx)(\"path\",{id:\"Union\",fillRule:\"evenodd\",clipRule:\"evenodd\",d:\"M6.89531 2.23959C6.72984 2.1214 6.5 2.23968 6.5 2.44303V5.24989C6.5 6.21639 5.7165 6.99989 4.75 6.99989H2.5V13.4999H12.1884C12.762 13.4999 13.262 13.1095 13.4011 12.5531L14.4011 8.55306C14.5984 7.76412 14.0017 6.99989 13.1884 6.99989H9.25H8.5V6.24989V3.51446C8.5 3.43372 8.46101 3.35795 8.39531 3.31102L6.89531 2.23959ZM5 2.44303C5 1.01963 6.6089 0.191656 7.76717 1.01899L9.26717 2.09042C9.72706 2.41892 10 2.94929 10 3.51446V5.49989H13.1884C14.9775 5.49989 16.2903 7.18121 15.8563 8.91686L14.8563 12.9169C14.5503 14.1411 13.4503 14.9999 12.1884 14.9999H1.75H1V14.2499V6.24989V5.49989H1.75H4.75C4.88807 5.49989 5 5.38796 5 5.24989V2.44303Z\",fill:\"currentColor\"})})},Object.getOwnPropertyDescriptors?Object.defineProperties(n,Object.getOwnPropertyDescriptors(t)):(function(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t.push.apply(t,r)}return t})(Object(t)).forEach(function(e){Object.defineProperty(n,e,Object.getOwnPropertyDescriptor(t,e))}),n))}function nj(e){var n,t;return(0,y.jsx)(\"svg\",(n=function(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{},r=Object.keys(t);\"function\"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(t).filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.forEach(function(n){var r,o,a;r=e,o=n,a=t[n],o in r?Object.defineProperty(r,o,{value:a,enumerable:!0,configurable:!0,writable:!0}):r[o]=a})}return e}({width:\"16\",height:\"16\",viewBox:\"0 0 16 16\",fill:\"none\",xmlns:\"http://www.w3.org/2000/svg\",className:\"thumbs-down-icon\"},e),t=t={children:(0,y.jsx)(\"path\",{fillRule:\"evenodd\",clipRule:\"evenodd\",d:\"M5.89531 12.7603C5.72984 12.8785 5.5 12.7602 5.5 12.5569V9.75C5.5 8.7835 4.7165 8 3.75 8H1.5V1.5H11.1884C11.762 1.5 12.262 1.89037 12.4011 2.44683L13.4011 6.44683C13.5984 7.23576 13.0017 8 12.1884 8H8.25H7.5V8.75V11.4854C7.5 11.5662 7.46101 11.6419 7.39531 11.6889L5.89531 12.7603ZM4 12.5569C4 13.9803 5.6089 14.8082 6.76717 13.9809L8.26717 12.9095C8.72706 12.581 9 12.0506 9 11.4854V9.5H12.1884C13.9775 9.5 15.2903 7.81868 14.8563 6.08303L13.8563 2.08303C13.5503 0.858816 12.4503 0 11.1884 0H0.75H0V0.75V8.75V9.5H0.75H3.75C3.88807 9.5 4 9.61193 4 9.75V12.5569Z\",fill:\"currentColor\"})},Object.getOwnPropertyDescriptors?Object.defineProperties(n,Object.getOwnPropertyDescriptors(t)):(function(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t.push.apply(t,r)}return t})(Object(t)).forEach(function(e){Object.defineProperty(n,e,Object.getOwnPropertyDescriptor(t,e))}),n))}function nk(e,n){(null==n||n>e.length)&&(n=e.length);for(var t=0,r=Array(n);t<n;t++)r[t]=e[t];return r}function nA(e,n,t,r,o,a,i){try{var l=e[a](i),s=l.value}catch(e){t(e);return}l.done?n(s):Promise.resolve(s).then(r,o)}function nO(e,n,t){return n in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t,e}function nC(e){var n,t,r=e.errorCode,o=e.className,a=(n=(0,x.useState)({}),t=2,function(e){if(Array.isArray(e))return e}(n)||function(e,n){var t,r,o=null==e?null:\"undefined\"!=typeof Symbol&&e[Symbol.iterator]||e[\"@@iterator\"];if(null!=o){var a=[],i=!0,l=!1;try{for(o=o.call(e);!(i=(t=o.next()).done)&&(a.push(t.value),a.length!==n);i=!0);}catch(e){l=!0,r=e}finally{try{i||null==o.return||o.return()}finally{if(l)throw r}}return a}}(n,2)||function(e,n){if(e){if(\"string\"==typeof e)return nk(e,n);var t=Object.prototype.toString.call(e).slice(8,-1);if(\"Object\"===t&&e.constructor&&(t=e.constructor.name),\"Map\"===t||\"Set\"===t)return Array.from(t);if(\"Arguments\"===t||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t))return nk(e,n)}}(n,t)||function(){throw TypeError(\"Invalid attempt to destructure non-iterable instance.\\\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\")}()),i=a[0],l=a[1],s=i[r],c=false,u=(0,x.useCallback)(function(e){var n;return(n=function(){return function(e,n){var t,r,o,a={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]},i=Object.create((\"function\"==typeof Iterator?Iterator:Object).prototype);return i.next=l(0),i.throw=l(1),i.return=l(2),\"function\"==typeof Symbol&&(i[Symbol.iterator]=function(){return this}),i;function l(l){return function(s){var c=[l,s];if(t)throw TypeError(\"Generator is already executing.\");for(;i&&(i=0,c[0]&&(a=0)),a;)try{if(t=1,r&&(o=2&c[0]?r.return:c[0]?r.throw||((o=r.return)&&o.call(r),0):r.next)&&!(o=o.call(r,c[1])).done)return o;switch(r=0,o&&(c=[2&c[0],o.value]),c[0]){case 0:case 1:o=c;break;case 4:return a.label++,{value:c[1],done:!1};case 5:a.label++,r=c[1],c=[0];continue;case 7:c=a.ops.pop(),a.trys.pop();continue;default:if(!(o=(o=a.trys).length>0&&o[o.length-1])&&(6===c[0]||2===c[0])){a=0;continue}if(3===c[0]&&(!o||c[1]>o[0]&&c[1]<o[3])){a.label=c[1];break}if(6===c[0]&&a.label<o[1]){a.label=o[1],o=c;break}if(o&&a.label<o[2]){a.label=o[2],a.ops.push(c);break}o[2]&&a.ops.pop(),a.trys.pop();continue}c=n.call(e,a)}catch(e){c=[6,e],r=0}finally{t=o=0}if(5&c[0])throw c[1];return{value:c[0]?c[1]:void 0,done:!0}}}}(this,function(n){switch(n.label){case 0:l(function(n){var t,o;return t=function(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{},r=Object.keys(t);\"function\"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(t).filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.forEach(function(n){nO(e,n,t[n])})}return e}({},n),o=null!=(o=nO({},r,e))?o:{},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(o)):(function(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t.push.apply(t,r)}return t})(Object(o)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(o,e))}),t}),n.label=1;case 1:return n.trys.push([1,3,,4]),[4,fetch(\"\".concat( false||\"\",\"/__nextjs_error_feedback?\").concat(new URLSearchParams({errorCode:r,wasHelpful:e.toString()})))];case 2:return n.sent().ok||console.error(\"Failed to record feedback on the server.\"),[3,4];case 3:return console.error(\"Failed to record feedback:\",n.sent()),[3,4];case 4:return[2]}})},function(){var e=this,t=arguments;return new Promise(function(r,o){var a=n.apply(e,t);function i(e){nA(a,r,o,i,l,\"next\",e)}function l(e){nA(a,r,o,i,l,\"throw\",e)}i(void 0)})})()},[r]);return(0,y.jsx)(\"div\",{className:(0,eJ.cx)(\"error-feedback\",o),role:\"region\",\"aria-label\":\"Error feedback\",children:void 0!==s?(0,y.jsx)(\"p\",{className:\"error-feedback-thanks\",role:\"status\",\"aria-live\":\"polite\",children:\"Thanks for your feedback!\"}):(0,y.jsxs)(y.Fragment,{children:[(0,y.jsx)(\"p\",{children:(0,y.jsx)(\"a\",{href:\"https://nextjs.org/telemetry#error-feedback\",rel:\"noopener noreferrer\",target:\"_blank\",children:\"Was this helpful?\"})}),(0,y.jsx)(\"button\",{\"aria-disabled\":c?\"true\":void 0,\"aria-label\":\"Mark as helpful\",onClick:c?void 0:function(){return u(!0)},className:(0,eJ.cx)(\"feedback-button\",!0===s&&\"voted\"),title:c?\"Feedback disabled due to setting NEXT_TELEMETRY_DISABLED\":void 0,type:\"button\",children:(0,y.jsx)(nw,{\"aria-hidden\":\"true\"})}),(0,y.jsx)(\"button\",{\"aria-disabled\":c?\"true\":void 0,\"aria-label\":\"Mark as not helpful\",onClick:c?void 0:function(){return u(!1)},className:(0,eJ.cx)(\"feedback-button\",!1===s&&\"voted\"),title:c?\"Feedback disabled due to setting NEXT_TELEMETRY_DISABLED\":void 0,type:\"button\",children:(0,y.jsx)(nj,{\"aria-hidden\":\"true\",style:{translate:\"1px 1px\"}})})]})})}function nS(e){var n=e.errorCode;return(0,y.jsx)(\"footer\",{\"data-nextjs-error-overlay-footer\":!0,className:\"error-overlay-footer\",children:n?(0,y.jsx)(nC,{className:\"error-feedback\",errorCode:n}):null})}var nE=\"\\n .error-overlay-footer {\\n display: flex;\\n flex-direction: row;\\n justify-content: space-between;\\n\\n gap: 8px;\\n padding: 12px;\\n background: var(--color-background-200);\\n border-top: 1px solid var(--color-gray-400);\\n }\\n\\n .error-feedback {\\n margin-left: auto;\\n\\n p {\\n font-size: var(--size-14);\\n font-weight: 500;\\n margin: 0;\\n }\\n }\\n\\n \".concat(\"\\n .error-feedback {\\n display: flex;\\n align-items: center;\\n gap: 8px;\\n white-space: nowrap;\\n color: var(--color-gray-900);\\n }\\n\\n .error-feedback-thanks {\\n height: var(--size-24);\\n display: flex;\\n align-items: center;\\n padding-right: 4px; /* To match the 4px inner padding of the thumbs up and down icons */\\n }\\n\\n .feedback-button {\\n background: none;\\n border: none;\\n border-radius: var(--rounded-md);\\n width: var(--size-24);\\n height: var(--size-24);\\n display: flex;\\n align-items: center;\\n justify-content: center;\\n cursor: pointer;\\n\\n &:focus {\\n outline: var(--focus-ring);\\n }\\n\\n &:hover {\\n background: var(--color-gray-alpha-100);\\n }\\n\\n &:active {\\n background: var(--color-gray-alpha-200);\\n }\\n }\\n\\n .feedback-button[aria-disabled='true'] {\\n opacity: 0.7;\\n cursor: not-allowed;\\n }\\n\\n .feedback-button.voted {\\n background: var(--color-gray-alpha-200);\\n }\\n\\n .thumbs-up-icon,\\n .thumbs-down-icon {\\n color: var(--color-gray-900);\\n width: var(--size-16);\\n height: var(--size-16);\\n }\\n\",\"\\n\");function n_(e,n){(null==n||n>e.length)&&(n=e.length);for(var t=0,r=Array(n);t<n;t++)r[t]=e[t];return r}function nP(e,n){return function(e){if(Array.isArray(e))return e}(e)||function(e,n){var t,r,o=null==e?null:\"undefined\"!=typeof Symbol&&e[Symbol.iterator]||e[\"@@iterator\"];if(null!=o){var a=[],i=!0,l=!1;try{for(o=o.call(e);!(i=(t=o.next()).done)&&(a.push(t.value),!n||a.length!==n);i=!0);}catch(e){l=!0,r=e}finally{try{i||null==o.return||o.return()}finally{if(l)throw r}}return a}}(e,n)||function(e,n){if(e){if(\"string\"==typeof e)return n_(e,n);var t=Object.prototype.toString.call(e).slice(8,-1);if(\"Object\"===t&&e.constructor&&(t=e.constructor.name),\"Map\"===t||\"Set\"===t)return Array.from(t);if(\"Arguments\"===t||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t))return n_(e,n)}}(e,n)||function(){throw TypeError(\"Invalid attempt to destructure non-iterable instance.\\\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\")}()}function nz(e){var n=e.errorMessage,t=nP((0,x.useState)(!1),2),r=t[0],o=t[1],a=nP((0,x.useState)(!1),2),i=a[0],l=a[1],s=(0,x.useRef)(null);return(0,x.useLayoutEffect)(function(){s.current&&l(s.current.scrollHeight>200)},[n]),(0,y.jsxs)(\"div\",{className:\"nextjs__container_errors_wrapper\",children:[(0,y.jsx)(\"p\",{ref:s,id:\"nextjs__container_errors_desc\",className:\"nextjs__container_errors_desc \".concat(i&&!r?\"truncated\":\"\"),children:n}),i&&!r&&(0,y.jsxs)(y.Fragment,{children:[(0,y.jsx)(\"div\",{className:\"nextjs__container_errors_gradient_overlay\"}),(0,y.jsx)(\"button\",{onClick:function(){return o(!0)},className:\"nextjs__container_errors_expand_button\",\"aria-expanded\":r,\"aria-controls\":\"nextjs__container_errors_desc\",children:\"Show More\"})]})]})}function nL(e){var n=e.errorType;return(0,y.jsx)(\"span\",{id:\"nextjs__container_errors_label\",className:\"nextjs__container_errors_label\",children:n})}function nT(e){var n=e.title,t=e.className;return(0,y.jsx)(\"svg\",{width:\"16\",height:\"16\",viewBox:\"0 0 16 16\",fill:\"none\",xmlns:\"http://www.w3.org/2000/svg\",\"aria-label\":n,className:t,children:(0,y.jsx)(\"path\",{fillRule:\"evenodd\",clipRule:\"evenodd\",d:\"M9.24996 12.0608L8.71963 11.5304L5.89641 8.70722C5.50588 8.3167 5.50588 7.68353 5.89641 7.29301L8.71963 4.46978L9.24996 3.93945L10.3106 5.00011L9.78029 5.53044L7.31062 8.00011L9.78029 10.4698L10.3106 11.0001L9.24996 12.0608Z\",fill:\"currentColor\"})})}function nR(e){var n=e.title,t=e.className;return(0,y.jsx)(\"svg\",{width:\"16\",height:\"16\",viewBox:\"0 0 16 16\",fill:\"none\",xmlns:\"http://www.w3.org/2000/svg\",className:t,\"aria-label\":n,children:(0,y.jsx)(\"path\",{fillRule:\"evenodd\",clipRule:\"evenodd\",d:\"M6.75011 3.93945L7.28044 4.46978L10.1037 7.29301C10.4942 7.68353 10.4942 8.3167 10.1037 8.70722L7.28044 11.5304L6.75011 12.0608L5.68945 11.0001L6.21978 10.4698L8.68945 8.00011L6.21978 5.53044L5.68945 5.00011L6.75011 3.93945Z\",fill:\"currentColor\"})})}function nN(e,n){(null==n||n>e.length)&&(n=e.length);for(var t=0,r=Array(n);t<n;t++)r[t]=e[t];return r}function nD(e){var n,t,r=e.runtimeErrors,o=e.activeIdx,a=e.onActiveIndexChange,i=(0,x.useCallback)(function(){return(0,x.startTransition)(function(){o>0&&a(Math.max(0,o-1))})},[o,a]),l=(0,x.useCallback)(function(){return(0,x.startTransition)(function(){o<r.length-1&&a(Math.max(0,Math.min(r.length-1,o+1)))})},[o,r.length,a]),s=(0,x.useRef)(null),c=(0,x.useRef)(null),u=(n=(0,x.useState)(null),t=2,function(e){if(Array.isArray(e))return e}(n)||function(e,n){var t,r,o=null==e?null:\"undefined\"!=typeof Symbol&&e[Symbol.iterator]||e[\"@@iterator\"];if(null!=o){var a=[],i=!0,l=!1;try{for(o=o.call(e);!(i=(t=o.next()).done)&&(a.push(t.value),a.length!==n);i=!0);}catch(e){l=!0,r=e}finally{try{i||null==o.return||o.return()}finally{if(l)throw r}}return a}}(n,2)||function(e,n){if(e){if(\"string\"==typeof e)return nN(e,n);var t=Object.prototype.toString.call(e).slice(8,-1);if(\"Object\"===t&&e.constructor&&(t=e.constructor.name),\"Map\"===t||\"Set\"===t)return Array.from(t);if(\"Arguments\"===t||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t))return nN(e,n)}}(n,t)||function(){throw TypeError(\"Invalid attempt to destructure non-iterable instance.\\\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\")}()),d=u[0],f=u[1],p=(0,x.useCallback)(function(e){f(e)},[]);return(0,x.useEffect)(function(){var e=function(e){\"ArrowLeft\"===e.key?(e.preventDefault(),e.stopPropagation(),i&&i()):\"ArrowRight\"===e.key&&(e.preventDefault(),e.stopPropagation(),l&&l())};if(null!=d){var n=d.getRootNode(),t=self.document;return n.addEventListener(\"keydown\",e),n!==t&&t.addEventListener(\"keydown\",e),function(){n.removeEventListener(\"keydown\",e),n!==t&&t.removeEventListener(\"keydown\",e)}}},[d,l,i]),(0,x.useEffect)(function(){if(null!=d){var e,n,t=d.getRootNode();if(e=t,null!=(n=ShadowRoot)&&\"undefined\"!=typeof Symbol&&n[Symbol.hasInstance]?!!n[Symbol.hasInstance](e):e instanceof n){var a=t.activeElement;0===o?s.current&&a===s.current&&s.current.blur():o===r.length-1&&c.current&&a===c.current&&c.current.blur()}}},[d,o,r.length]),(0,y.jsxs)(\"nav\",{className:\"error-overlay-pagination dialog-exclude-closing-from-outside-click\",ref:p,children:[(0,y.jsx)(\"button\",{ref:s,type:\"button\",disabled:0===o,\"aria-disabled\":0===o,onClick:i,\"data-nextjs-dialog-error-previous\":!0,className:\"error-overlay-pagination-button\",children:(0,y.jsx)(nT,{title:\"previous\",className:\"error-overlay-pagination-button-icon\"})}),(0,y.jsxs)(\"div\",{className:\"error-overlay-pagination-count\",children:[(0,y.jsxs)(\"span\",{\"data-nextjs-dialog-error-index\":o,children:[o+1,\"/\"]}),(0,y.jsx)(\"span\",{\"data-nextjs-dialog-header-total-count\":!0,children:r.length||1})]}),(0,y.jsx)(\"button\",{ref:c,type:\"button\",disabled:o>=r.length-1,\"aria-disabled\":o>=r.length-1,onClick:l,\"data-nextjs-dialog-error-next\":!0,className:\"error-overlay-pagination-button\",children:(0,y.jsx)(nR,{title:\"next\",className:\"error-overlay-pagination-button-icon\"})})]})}function nB(e){var n=e.installed,t=e.staleness,r=e.expected,o=\"\",a=\"\",i=\"\",l=\"Next.js \".concat(n);switch(t){case\"newer-than-npm\":case\"fresh\":o=l,a=\"Latest available version is detected (\".concat(n,\").\"),i=\"fresh\";break;case\"stale-patch\":case\"stale-minor\":o=\"\".concat(l,\" (stale)\"),a=\"There is a newer version (\".concat(r,\") available, upgrade recommended! \"),i=\"stale\";break;case\"stale-major\":o=\"\".concat(l,\" (outdated)\"),a=\"An outdated version detected (latest is \".concat(r,\"), upgrade is highly recommended!\"),i=\"outdated\";break;case\"stale-prerelease\":o=\"\".concat(l,\" (stale)\"),a=\"There is a newer canary version (\".concat(r,\") available, please upgrade! \"),i=\"stale\";break;case\"unknown\":o=\"\".concat(l,\" (unknown)\"),a=\"No Next.js version data was found.\",i=\"unknown\"}return{text:o,indicatorClass:i,title:a}}function nM(e){var n,t;return(0,y.jsx)(\"svg\",(n=function(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{},r=Object.keys(t);\"function\"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(t).filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.forEach(function(n){var r,o,a;r=e,o=n,a=t[n],o in r?Object.defineProperty(r,o,{value:a,enumerable:!0,configurable:!0,writable:!0}):r[o]=a})}return e}({width:\"14\",height:\"14\",viewBox:\"0 0 14 14\",fill:\"none\",xmlns:\"http://www.w3.org/2000/svg\"},e),t=t={children:(0,y.jsx)(\"circle\",{cx:\"7\",cy:\"7\",r:\"5.5\",strokeWidth:\"3\"})},Object.getOwnPropertyDescriptors?Object.defineProperties(n,Object.getOwnPropertyDescriptors(t)):(function(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t.push.apply(t,r)}return t})(Object(t)).forEach(function(e){Object.defineProperty(n,e,Object.getOwnPropertyDescriptor(t,e))}),n))}function nI(e){var n=e.versionInfo,t=e.bundlerName,r=n.staleness,o=nB(n),a=o.text,i=o.indicatorClass,l=o.title,s=\"Turbopack\"===t;return r.startsWith(\"stale\")?(0,y.jsxs)(\"a\",{className:\"nextjs-container-build-error-version-status dialog-exclude-closing-from-outside-click\",target:\"_blank\",rel:\"noopener noreferrer\",href:\"https://nextjs.org/docs/messages/version-staleness\",children:[(0,y.jsx)(nM,{className:(0,eJ.cx)(\"version-staleness-indicator\",i)}),(0,y.jsx)(\"span\",{\"data-nextjs-version-checker\":!0,title:l,children:a}),(0,y.jsx)(\"span\",{className:(0,eJ.cx)(s&&\"turbopack-text\"),children:t})]}):(0,y.jsxs)(\"span\",{className:\"nextjs-container-build-error-version-status dialog-exclude-closing-from-outside-click\",children:[(0,y.jsx)(nM,{className:(0,eJ.cx)(\"version-staleness-indicator\",i)}),(0,y.jsx)(\"span\",{\"data-nextjs-version-checker\":!0,title:l,children:a}),(0,y.jsx)(\"span\",{className:(0,eJ.cx)(s&&\"turbopack-text\"),children:t})]})}function nH(e){var n=e.runtimeErrors,t=e.activeIdx,r=e.setActiveIndex,o=e.versionInfo,a=\"Webpack\"||0;return(0,y.jsxs)(\"div\",{\"data-nextjs-error-overlay-nav\":!0,children:[(0,y.jsx)(nF,{side:\"left\",children:(0,y.jsx)(nD,{runtimeErrors:null!=n?n:[],activeIdx:null!=t?t:0,onActiveIndexChange:null!=r?r:function(){}})}),o&&(0,y.jsx)(nF,{side:\"right\",children:(0,y.jsx)(nI,{versionInfo:o,bundlerName:a})})]})}function nF(e){var n=e.children,t=e.side;return(0,y.jsxs)(\"div\",{className:\"error-overlay-notch\",\"data-side\":void 0===t?\"left\":t,children:[n,(0,y.jsx)(nU,{})]})}function nU(){return(0,y.jsxs)(\"svg\",{width:\"60\",height:\"42\",viewBox:\"0 0 60 42\",fill:\"none\",xmlns:\"http://www.w3.org/2000/svg\",className:\"error-overlay-notch-tail\",preserveAspectRatio:\"none\",children:[(0,y.jsxs)(\"mask\",{id:\"error_overlay_nav_mask0_2667_14687\",style:{maskType:\"alpha\"},maskUnits:\"userSpaceOnUse\",x:\"0\",y:\"-1\",width:\"60\",height:\"43\",children:[(0,y.jsxs)(\"mask\",{id:\"error_overlay_nav_path_1_outside_1_2667_14687\",maskUnits:\"userSpaceOnUse\",x:\"0\",y:\"-1\",width:\"60\",height:\"43\",fill:\"black\",children:[(0,y.jsx)(\"rect\",{fill:\"white\",y:\"-1\",width:\"60\",height:\"43\"}),(0,y.jsx)(\"path\",{d:\"M1 0L8.0783 0C15.772 0 22.7836 4.41324 26.111 11.3501L34.8889 29.6498C38.2164 36.5868 45.228 41 52.9217 41H60H1L1 0Z\"})]}),(0,y.jsx)(\"path\",{d:\"M1 0L8.0783 0C15.772 0 22.7836 4.41324 26.111 11.3501L34.8889 29.6498C38.2164 36.5868 45.228 41 52.9217 41H60H1L1 0Z\",fill:\"white\"}),(0,y.jsx)(\"path\",{d:\"M1 0V-1H0V0L1 0ZM1 41H0V42H1V41ZM34.8889 29.6498L33.9873 30.0823L34.8889 29.6498ZM26.111 11.3501L27.0127 10.9177L26.111 11.3501ZM1 1H8.0783V-1H1V1ZM60 40H1V42H60V40ZM2 41V0L0 0L0 41H2ZM25.2094 11.7826L33.9873 30.0823L35.7906 29.2174L27.0127 10.9177L25.2094 11.7826ZM52.9217 42H60V40H52.9217V42ZM33.9873 30.0823C37.4811 37.3661 44.8433 42 52.9217 42V40C45.6127 40 38.9517 35.8074 35.7906 29.2174L33.9873 30.0823ZM8.0783 1C15.3873 1 22.0483 5.19257 25.2094 11.7826L27.0127 10.9177C23.5188 3.6339 16.1567 -1 8.0783 -1V1Z\",fill:\"black\",mask:\"url(#error_overlay_nav_path_1_outside_1_2667_14687)\"})]}),(0,y.jsxs)(\"g\",{mask:\"url(#error_overlay_nav_mask0_2667_14687)\",children:[(0,y.jsxs)(\"mask\",{id:\"error_overlay_nav_path_3_outside_2_2667_14687\",maskUnits:\"userSpaceOnUse\",x:\"-1\",y:\"0.0244141\",width:\"60\",height:\"43\",fill:\"black\",children:[(0,y.jsx)(\"rect\",{fill:\"white\",x:\"-1\",y:\"0.0244141\",width:\"60\",height:\"43\"}),(0,y.jsx)(\"path\",{d:\"M0 1.02441H7.0783C14.772 1.02441 21.7836 5.43765 25.111 12.3746L33.8889 30.6743C37.2164 37.6112 44.228 42.0244 51.9217 42.0244H59H0L0 1.02441Z\"})]}),(0,y.jsx)(\"path\",{d:\"M0 1.02441H7.0783C14.772 1.02441 21.7836 5.43765 25.111 12.3746L33.8889 30.6743C37.2164 37.6112 44.228 42.0244 51.9217 42.0244H59H0L0 1.02441Z\",fill:\"var(--background-color)\"}),(0,y.jsx)(\"path\",{d:\"M0 1.02441L0 0.0244141H-1V1.02441H0ZM0 42.0244H-1V43.0244H0L0 42.0244ZM33.8889 30.6743L32.9873 31.1068L33.8889 30.6743ZM25.111 12.3746L26.0127 11.9421L25.111 12.3746ZM0 2.02441H7.0783V0.0244141H0L0 2.02441ZM59 41.0244H0L0 43.0244H59V41.0244ZM1 42.0244L1 1.02441H-1L-1 42.0244H1ZM24.2094 12.8071L32.9873 31.1068L34.7906 30.2418L26.0127 11.9421L24.2094 12.8071ZM51.9217 43.0244H59V41.0244H51.9217V43.0244ZM32.9873 31.1068C36.4811 38.3905 43.8433 43.0244 51.9217 43.0244V41.0244C44.6127 41.0244 37.9517 36.8318 34.7906 30.2418L32.9873 31.1068ZM7.0783 2.02441C14.3873 2.02441 21.0483 6.21699 24.2094 12.8071L26.0127 11.9421C22.5188 4.65831 15.1567 0.0244141 7.0783 0.0244141V2.02441Z\",fill:\"var(--stroke-color)\",mask:\"url(#error_overlay_nav_path_3_outside_2_2667_14687)\"})]})]})}function nV(e){var n,t,r=e.children,o=e.onClose,a=e.footer,i=function(e,n){if(null==e)return{};var t,r,o=function(e,n){if(null==e)return{};var t,r,o={},a=Object.keys(e);for(r=0;r<a.length;r++)t=a[r],n.indexOf(t)>=0||(o[t]=e[t]);return o}(e,n);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r<a.length;r++)t=a[r],!(n.indexOf(t)>=0)&&Object.prototype.propertyIsEnumerable.call(e,t)&&(o[t]=e[t])}return o}(e,[\"children\",\"onClose\",\"footer\"]);return(0,y.jsxs)(\"div\",{className:\"error-overlay-dialog-container\",children:[(0,y.jsx)(eZ,(n=function(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{},r=Object.keys(t);\"function\"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(t).filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.forEach(function(n){var r,o,a;r=e,o=n,a=t[n],o in r?Object.defineProperty(r,o,{value:a,enumerable:!0,configurable:!0,writable:!0}):r[o]=a})}return e}({\"aria-labelledby\":\"nextjs__container_errors_label\",\"aria-describedby\":\"nextjs__container_errors_desc\",className:\"error-overlay-dialog-scroll\",onClose:o},i),t=t={children:r},Object.getOwnPropertyDescriptors?Object.defineProperties(n,Object.getOwnPropertyDescriptors(t)):(function(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t.push.apply(t,r)}return t})(Object(t)).forEach(function(e){Object.defineProperty(n,e,Object.getOwnPropertyDescriptor(t,e))}),n)),a]})}function nq(e){var n=e.children;return(0,y.jsx)(eK,{className:\"nextjs-container-errors-header\",children:n})}function nW(e){var n=e.children;return(0,y.jsx)(eY,{className:\"nextjs-container-errors-body\",children:n})}var n$=0,nZ=function(e){var r,o,a=e.className,i=e.children,l=function(e,n){if(null==e)return{};var t,r,o=function(e,n){if(null==e)return{};var t,r,o={},a=Object.keys(e);for(r=0;r<a.length;r++)t=a[r],n.indexOf(t)>=0||(o[t]=e[t]);return o}(e,n);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r<a.length;r++)t=a[r],!(n.indexOf(t)>=0)&&Object.prototype.propertyIsEnumerable.call(e,t)&&(o[t]=e[t])}return o}(e,[\"className\",\"children\"]);return x.useEffect(function(){return setTimeout(function(){if(!(n$++>0)){var e=window.innerWidth-document.documentElement.clientWidth;e>0&&(n=document.body.style.paddingRight,document.body.style.paddingRight=\"\".concat(e,\"px\")),t=document.body.style.overflow,document.body.style.overflow=\"hidden\"}}),function(){setTimeout(function(){0!==n$&&0==--n$&&(void 0!==n&&(document.body.style.paddingRight=n,n=void 0),void 0!==t&&(document.body.style.overflow=t,t=void 0))})}},[]),(0,y.jsx)(\"div\",(r=function(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{},r=Object.keys(t);\"function\"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(t).filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.forEach(function(n){var r,o,a;r=e,o=n,a=t[n],o in r?Object.defineProperty(r,o,{value:a,enumerable:!0,configurable:!0,writable:!0}):r[o]=a})}return e}({\"data-nextjs-dialog-overlay\":!0,className:a},l),o=o={children:i},Object.getOwnPropertyDescriptors?Object.defineProperties(r,Object.getOwnPropertyDescriptors(o)):(function(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t.push.apply(t,r)}return t})(Object(o)).forEach(function(e){Object.defineProperty(r,e,Object.getOwnPropertyDescriptor(o,e))}),r))};function nY(e){var n,t,r=e.children,o=function(e,n){if(null==e)return{};var t,r,o=function(e,n){if(null==e)return{};var t,r,o={},a=Object.keys(e);for(r=0;r<a.length;r++)t=a[r],n.indexOf(t)>=0||(o[t]=e[t]);return o}(e,n);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r<a.length;r++)t=a[r],!(n.indexOf(t)>=0)&&Object.prototype.propertyIsEnumerable.call(e,t)&&(o[t]=e[t])}return o}(e,[\"children\"]);return(0,y.jsx)(nZ,(n=function(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{},r=Object.keys(t);\"function\"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(t).filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.forEach(function(n){var r,o,a;r=e,o=n,a=t[n],o in r?Object.defineProperty(r,o,{value:a,enumerable:!0,configurable:!0,writable:!0}):r[o]=a})}return e}({},o),t=t={children:r},Object.getOwnPropertyDescriptors?Object.defineProperties(n,Object.getOwnPropertyDescriptors(t)):(function(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t.push.apply(t,r)}return t})(Object(t)).forEach(function(e){Object.defineProperty(n,e,Object.getOwnPropertyDescriptor(t,e))}),n))}function nX(e){var n=Math.min(e.errorCount-e.activeIdx-1,2);return(0,y.jsx)(\"div\",{\"aria-hidden\":!0,className:\"error-overlay-bottom-stack\",children:(0,y.jsxs)(\"div\",{className:\"error-overlay-bottom-stack-stack\",\"data-stack-count\":n,children:[(0,y.jsx)(\"div\",{className:\"error-overlay-bottom-stack-layer error-overlay-bottom-stack-layer-1\",children:\"1\"}),(0,y.jsx)(\"div\",{className:\"error-overlay-bottom-stack-layer error-overlay-bottom-stack-layer-2\",children:\"2\"})]})})}function nK(e){var n=e.environmentName;return(0,y.jsx)(\"span\",{\"data-nextjs-environment-name-label\":!0,children:n})}var nQ=__nested_webpack_require_381207__(\"./src/next-devtools/dev-overlay/components/errors/dev-tools-indicator/utils.ts\"),nG=(0,x.forwardRef)(function(e,n){var t=e.stop,r=e.blur,o=e.side,a=e.style,i=e.height;return(0,y.jsx)(\"div\",{ref:n,\"aria-hidden\":!0,\"data-nextjs-scroll-fader\":!0,className:\"nextjs-scroll-fader\",\"data-side\":o,style:function(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{},r=Object.keys(t);\"function\"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(t).filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.forEach(function(n){var r,o,a;r=e,o=n,a=t[n],o in r?Object.defineProperty(r,o,{value:a,enumerable:!0,configurable:!0,writable:!0}):r[o]=a})}return e}({\"--stop\":t,\"--blur\":r,\"--height\":\"\".concat(i,\"px\")},a)})});function nJ(e,n){(null==n||n>e.length)&&(n=e.length);for(var t=0,r=Array(n);t<n;t++)r[t]=e[t];return r}function n0(e,n){return function(e){if(Array.isArray(e))return e}(e)||function(e,n){var t,r,o=null==e?null:\"undefined\"!=typeof Symbol&&e[Symbol.iterator]||e[\"@@iterator\"];if(null!=o){var a=[],i=!0,l=!1;try{for(o=o.call(e);!(i=(t=o.next()).done)&&(a.push(t.value),!n||a.length!==n);i=!0);}catch(e){l=!0,r=e}finally{try{i||null==o.return||o.return()}finally{if(l)throw r}}return a}}(e,n)||function(e,n){if(e){if(\"string\"==typeof e)return nJ(e,n);var t=Object.prototype.toString.call(e).slice(8,-1);if(\"Object\"===t&&e.constructor&&(t=e.constructor.name),\"Map\"===t||\"Set\"===t)return Array.from(t);if(\"Arguments\"===t||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t))return nJ(e,n)}}(e,n)||function(){throw TypeError(\"Invalid attempt to destructure non-iterable instance.\\\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\")}()}var n1=(0,x.forwardRef)(function(e,n){var t,r,o,a,i,l,s,c,u,d,f=e.children,p=e.measure,h=function(e,n){if(null==e)return{};var t,r,o=function(e,n){if(null==e)return{};var t,r,o={},a=Object.keys(e);for(r=0;r<a.length;r++)t=a[r],n.indexOf(t)>=0||(o[t]=e[t]);return o}(e,n);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r<a.length;r++)t=a[r],!(n.indexOf(t)>=0)&&Object.prototype.propertyIsEnumerable.call(e,t)&&(o[t]=e[t])}return o}(e,[\"children\",\"measure\"]),g=(0,x.useRef)(null),m=n0((t=g,r=p,a=(o=n0((0,x.useState)(0),2))[0],i=o[1],s=(l=n0((0,x.useState)(!0),2))[0],c=l[1],(0,x.useEffect)(function(){if(r){var e,n=t.current;if(n){var o=new ResizeObserver(function(n){var t=n0(n,1)[0].contentRect;clearTimeout(e),e=window.setTimeout(function(){c(!1)},100),i(t.height)});return o.observe(n),function(){return o.disconnect()}}}},[r]),[a,s]),2),v=m[0],b=m[1];return(0,y.jsx)(\"div\",(u=function(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{},r=Object.keys(t);\"function\"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(t).filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.forEach(function(n){var r,o,a;r=e,o=n,a=t[n],o in r?Object.defineProperty(r,o,{value:a,enumerable:!0,configurable:!0,writable:!0}):r[o]=a})}return e}({},h),d=d={ref:n,style:{height:b?\"auto\":v,transition:\"height 250ms var(--timing-swift)\"},children:(0,y.jsx)(\"div\",{ref:g,children:f})},Object.getOwnPropertyDescriptors?Object.defineProperties(u,Object.getOwnPropertyDescriptors(d)):(function(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t.push.apply(t,r)}return t})(Object(d)).forEach(function(e){Object.defineProperty(u,e,Object.getOwnPropertyDescriptor(d,e))}),u))});function n2(e){var n=e.fixed,t=function(e,n){if(null==e)return{};var t,r,o=function(e,n){if(null==e)return{};var t,r,o={},a=Object.keys(e);for(r=0;r<a.length;r++)t=a[r],n.indexOf(t)>=0||(o[t]=e[t]);return o}(e,n);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r<a.length;r++)t=a[r],!(n.indexOf(t)>=0)&&Object.prototype.propertyIsEnumerable.call(e,t)&&(o[t]=e[t])}return o}(e,[\"fixed\"]);return(0,y.jsx)(\"div\",function(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{},r=Object.keys(t);\"function\"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(t).filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.forEach(function(n){var r,o,a;r=e,o=n,a=t[n],o in r?Object.defineProperty(r,o,{value:a,enumerable:!0,configurable:!0,writable:!0}):r[o]=a})}return e}({\"data-nextjs-dialog-backdrop\":!0,\"data-nextjs-dialog-backdrop-fixed\":!!n||void 0},t))}function n4(e,n){(null==n||n>e.length)&&(n=e.length);for(var t=0,r=Array(n);t<n;t++)r[t]=e[t];return r}function n5(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{},r=Object.keys(t);\"function\"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(t).filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.forEach(function(n){var r,o,a;r=e,o=n,a=t[n],o in r?Object.defineProperty(r,o,{value:a,enumerable:!0,configurable:!0,writable:!0}):r[o]=a})}return e}function n3(e,n){return n=null!=n?n:{},Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):(function(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t.push.apply(t,r)}return t})(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}),e}function n6(e,n){return function(e){if(Array.isArray(e))return e}(e)||function(e,n){var t,r,o=null==e?null:\"undefined\"!=typeof Symbol&&e[Symbol.iterator]||e[\"@@iterator\"];if(null!=o){var a=[],i=!0,l=!1;try{for(o=o.call(e);!(i=(t=o.next()).done)&&(a.push(t.value),!n||a.length!==n);i=!0);}catch(e){l=!0,r=e}finally{try{i||null==o.return||o.return()}finally{if(l)throw r}}return a}}(e,n)||function(e,n){if(e){if(\"string\"==typeof e)return n4(e,n);var t=Object.prototype.toString.call(e).slice(8,-1);if(\"Object\"===t&&e.constructor&&(t=e.constructor.name),\"Map\"===t||\"Set\"===t)return Array.from(t);if(\"Arguments\"===t||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t))return n4(e,n)}}(e,n)||function(){throw TypeError(\"Invalid attempt to destructure non-iterable instance.\\\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\")}()}function n9(e){var n=e.errorMessage,t=e.errorType,r=e.children,o=e.errorCode,a=e.errorCount,i=e.error,l=e.debugInfo,s=e.isBuildError,c=e.onClose,u=e.versionInfo,d=e.runtimeErrors,f=e.activeIdx,p=e.setActiveIndex,h=e.isTurbopack,g=e.dialogResizerRef,m=e.rendered,v=void 0===m||m,b=e.transitionDurationMs,w={\"data-rendered\":v,style:{\"--transition-duration\":\"\".concat(b,\"ms\")}},j=n6(x.useState(!!b),2),k=j[0],A=j[1],O=x.useRef(null),C=!!o,S=x.useRef(null);return(0,nQ.P5)(S,null,v),(0,y.jsxs)(nY,n3(n5({},w),{children:[(0,y.jsx)(n2,{fixed:s}),(0,y.jsxs)(\"div\",n3(n5({\"data-nextjs-dialog-root\":!0,onTransitionEnd:function(e){var n=e.propertyName,t=e.target;\"scale\"===n&&t===S.current&&A(!1)},ref:S},w),{children:[(0,y.jsx)(nH,{runtimeErrors:d,activeIdx:f,setActiveIndex:p,versionInfo:u,isTurbopack:h}),(0,y.jsxs)(nV,{onClose:c,dialogResizerRef:g,\"data-has-footer\":C,onScroll:function(e){if(O.current){var n,t,r=(n=e.currentTarget.scrollTop/17,Math.min(Math.max(n,(t=n6([0,1],2))[0]),t[1]));O.current.style.opacity=String(r)}},footer:C&&(0,y.jsx)(nS,{errorCode:o}),children:[(0,y.jsx)(n1,{ref:g,measure:!k,\"data-nextjs-dialog-sizer\":!0,children:(0,y.jsxs)(eX,{children:[(0,y.jsxs)(nq,{children:[(0,y.jsxs)(\"div\",{className:\"nextjs__container_errors__error_title\",\"data-nextjs-error-code\":o,children:[(0,y.jsxs)(\"span\",{\"data-nextjs-error-label-group\":!0,children:[(0,y.jsx)(nL,{errorType:t}),i.environmentName&&(0,y.jsx)(nK,{environmentName:i.environmentName})]}),(0,y.jsx)(nx,{error:i,debugInfo:l})]}),(0,y.jsx)(nz,{errorMessage:n})]}),(0,y.jsx)(nW,{children:r})]})}),(0,y.jsx)(nX,{errorCount:a,activeIdx:null!=f?f:0})]}),(0,y.jsx)(nG,{ref:O,side:\"top\",stop:\"50%\",blur:\"4px\",height:48})]}))]}))}var n8=\"\\n \".concat(\"\\n [data-nextjs-dialog-overlay] {\\n padding: initial;\\n top: 10vh;\\n }\\n\",\"\\n \").concat(\"\\n .error-overlay-dialog-container {\\n -webkit-font-smoothing: antialiased;\\n display: flex;\\n flex-direction: column;\\n background: var(--color-background-100);\\n background-clip: padding-box;\\n border: var(--next-dialog-border-width) solid var(--color-gray-400);\\n border-radius: 0 0 var(--next-dialog-radius) var(--next-dialog-radius);\\n box-shadow: var(--shadow-menu);\\n position: relative;\\n overflow: hidden;\\n }\\n\\n .error-overlay-dialog-scroll {\\n overflow-y: auto;\\n height: 100%;\\n }\\n\",\"\\n \").concat(\"\\n .nextjs-container-errors-header {\\n position: relative;\\n }\\n .nextjs-container-errors-header > h1 {\\n font-size: var(--size-20);\\n line-height: var(--size-24);\\n font-weight: bold;\\n margin: calc(16px * 1.5) 0;\\n color: var(--color-title-h1);\\n }\\n .nextjs-container-errors-header small {\\n font-size: var(--size-14);\\n color: var(--color-accents-1);\\n margin-left: 16px;\\n }\\n .nextjs-container-errors-header small > span {\\n font-family: var(--font-stack-monospace);\\n }\\n .nextjs-container-errors-header > div > small {\\n margin: 0;\\n margin-top: 4px;\\n }\\n .nextjs-container-errors-header > p > a {\\n color: inherit;\\n font-weight: bold;\\n }\\n .nextjs-container-errors-header\\n > .nextjs-container-build-error-version-status {\\n position: absolute;\\n top: 16px;\\n right: 16px;\\n }\\n\",\"\\n \").concat(\"\",\"\\n\\n \").concat(\"\\n [data-nextjs-error-overlay-nav] {\\n --stroke-color: var(--color-gray-400);\\n --background-color: var(--color-background-100);\\n display: flex;\\n justify-content: space-between;\\n align-items: center;\\n\\n width: 100%;\\n\\n position: relative;\\n z-index: 2;\\n outline: none;\\n translate: var(--next-dialog-border-width) var(--next-dialog-border-width);\\n max-width: var(--next-dialog-max-width);\\n\\n .error-overlay-notch {\\n translate: calc(var(--next-dialog-border-width) * -1);\\n width: auto;\\n height: var(--next-dialog-notch-height);\\n padding: 12px;\\n background: var(--background-color);\\n border: var(--next-dialog-border-width) solid var(--stroke-color);\\n border-bottom: none;\\n position: relative;\\n\\n &[data-side='left'] {\\n padding-right: 0;\\n border-radius: var(--next-dialog-radius) 0 0 0;\\n\\n .error-overlay-notch-tail {\\n right: -54px;\\n }\\n\\n > *:not(.error-overlay-notch-tail) {\\n margin-right: -10px;\\n }\\n }\\n\\n &[data-side='right'] {\\n padding-left: 0;\\n border-radius: 0 var(--next-dialog-radius) 0 0;\\n\\n .error-overlay-notch-tail {\\n left: -54px;\\n transform: rotateY(180deg);\\n }\\n\\n > *:not(.error-overlay-notch-tail) {\\n margin-left: -12px;\\n }\\n }\\n\\n .error-overlay-notch-tail {\\n position: absolute;\\n top: calc(var(--next-dialog-border-width) * -1);\\n pointer-events: none;\\n z-index: -1;\\n height: calc(100% + var(--next-dialog-border-width));\\n }\\n }\\n }\\n\\n @media (max-width: 600px) {\\n [data-nextjs-error-overlay-nav] {\\n background: var(--background-color);\\n border-radius: var(--next-dialog-radius) var(--next-dialog-radius) 0 0;\\n border: var(--next-dialog-border-width) solid var(--stroke-color);\\n border-bottom: none;\\n overflow: hidden;\\n translate: 0 var(--next-dialog-border-width);\\n \\n .error-overlay-notch {\\n border-radius: 0;\\n border: 0;\\n\\n &[data-side=\\\"left\\\"], &[data-side=\\\"right\\\"] {\\n border-radius: 0;\\n }\\n\\n .error-overlay-notch-tail {\\n display: none;\\n }\\n }\\n }\\n }\\n\",\"\\n \").concat(\"\\n .nextjs__container_errors_label {\\n padding: 2px 6px;\\n margin: 0;\\n border-radius: var(--rounded-md-2);\\n background: var(--color-red-100);\\n font-weight: 600;\\n font-size: var(--size-12);\\n color: var(--color-red-900);\\n font-family: var(--font-stack-monospace);\\n line-height: var(--size-20);\\n }\\n\",\"\\n \").concat(\"\\n .nextjs__container_errors_wrapper {\\n position: relative;\\n }\\n\\n .nextjs__container_errors_desc {\\n margin: 0;\\n margin-left: 4px;\\n color: var(--color-red-900);\\n font-weight: 500;\\n font-size: var(--size-16);\\n letter-spacing: -0.32px;\\n line-height: var(--size-24);\\n overflow-wrap: break-word;\\n white-space: pre-wrap;\\n }\\n\\n .nextjs__container_errors_desc.truncated {\\n max-height: 200px;\\n overflow: hidden;\\n }\\n\\n .nextjs__container_errors_gradient_overlay {\\n position: absolute;\\n bottom: 0;\\n left: 0;\\n right: 0;\\n height: 85px;\\n background: linear-gradient(\\n 180deg,\\n rgba(250, 250, 250, 0) 0%,\\n var(--color-background-100) 100%\\n );\\n }\\n\\n .nextjs__container_errors_expand_button {\\n position: absolute;\\n bottom: 10px;\\n left: 50%;\\n transform: translateX(-50%);\\n display: flex;\\n align-items: center;\\n padding: 6px 8px;\\n background: var(--color-background-100);\\n border: 1px solid var(--color-gray-alpha-400);\\n border-radius: 999px;\\n box-shadow:\\n 0px 2px 2px var(--color-gray-alpha-100),\\n 0px 8px 8px -8px var(--color-gray-alpha-100);\\n font-size: var(--size-13);\\n cursor: pointer;\\n color: var(--color-gray-900);\\n font-weight: 500;\\n transition: background-color 0.2s ease;\\n }\\n\\n .nextjs__container_errors_expand_button:hover {\\n background: var(--color-gray-100);\\n }\\n\",\"\\n \").concat(\"\\n .error-overlay-toolbar {\\n display: flex;\\n gap: 6px;\\n }\\n\\n .nodejs-inspector-button,\\n .copy-stack-trace-button,\\n .docs-link-button {\\n display: flex;\\n justify-content: center;\\n align-items: center;\\n\\n width: var(--size-28);\\n height: var(--size-28);\\n background: var(--color-background-100);\\n background-clip: padding-box;\\n border: 1px solid var(--color-gray-alpha-400);\\n box-shadow: var(--shadow-small);\\n border-radius: var(--rounded-full);\\n\\n svg {\\n width: var(--size-14);\\n height: var(--size-14);\\n }\\n\\n &:focus {\\n outline: var(--focus-ring);\\n }\\n\\n &:not(:disabled):hover {\\n background: var(--color-gray-alpha-100);\\n }\\n\\n &:not(:disabled):active {\\n background: var(--color-gray-alpha-200);\\n }\\n\\n &:disabled {\\n background-color: var(--color-gray-100);\\n cursor: not-allowed;\\n }\\n }\\n\\n .error-overlay-toolbar-button-icon {\\n color: var(--color-gray-900);\\n }\\n\",\"\\n\\n [data-nextjs-error-label-group] {\\n display: flex;\\n align-items: center;\\n gap: 8px;\\n }\\n\");function n7(e){var n,t,r=e.file,o=e.location,a=eE({file:r,lineNumber:null!=(n=null==o?void 0:o.line)?n:1,column:null!=(t=null==o?void 0:o.column)?t:0});return(0,y.jsxs)(\"div\",{\"data-with-open-in-editor-link\":!0,\"data-with-open-in-editor-link-import-trace\":!0,role:\"link\",onClick:a,title:\"Click to open in your editor\",children:[r,o?\":\".concat(o.line,\":\").concat(o.column):null,(0,y.jsxs)(\"svg\",{xmlns:\"http://www.w3.org/2000/svg\",viewBox:\"0 0 24 24\",fill:\"none\",stroke:\"currentColor\",strokeWidth:\"2\",strokeLinecap:\"round\",strokeLinejoin:\"round\",children:[(0,y.jsx)(\"path\",{d:\"M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6\"}),(0,y.jsx)(\"polyline\",{points:\"15 3 21 3 21 9\"}),(0,y.jsx)(\"line\",{x1:\"10\",y1:\"14\",x2:\"21\",y2:\"3\"})]})]})}function te(e,n){(null==n||n>e.length)&&(n=e.length);for(var t=0,r=Array(n);t<n;t++)r[t]=e[t];return r}var tn=function(e){var n,t,r,o,a,i,l,s,c,u,d=e.content,f=x.useMemo(function(){var e,n,t;return n=function(e){var n,t,r=e.shift();if(!r)return null;var o=(n=r.split(\":\",3),t=3,function(e){if(Array.isArray(e))return e}(n)||function(e,n){var t,r,o=null==e?null:\"undefined\"!=typeof Symbol&&e[Symbol.iterator]||e[\"@@iterator\"];if(null!=o){var a=[],i=!0,l=!1;try{for(o=o.call(e);!(i=(t=o.next()).done)&&(a.push(t.value),a.length!==n);i=!0);}catch(e){l=!0,r=e}finally{try{i||null==o.return||o.return()}finally{if(l)throw r}}return a}}(n,3)||function(e,n){if(e){if(\"string\"==typeof e)return te(e,n);var t=Object.prototype.toString.call(e).slice(8,-1);if(\"Object\"===t&&e.constructor&&(t=e.constructor.name),\"Map\"===t||\"Set\"===t)return Array.from(t);if(\"Arguments\"===t||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t))return te(e,n)}}(n,t)||function(){throw TypeError(\"Invalid attempt to destructure non-iterable instance.\\\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\")}()),a=o[0],i=o[1],l=o[2],s=Number(i),c=Number(l),u=!Number.isNaN(s)&&!Number.isNaN(c);return{fileName:u?a:r,location:u?{line:s,column:c}:void 0}}(e=d.split(\"\\n\")),t=function(e){if(e.some(function(e){return/ReactServerComponentsError:/.test(e)})||e.some(function(e){return/Import trace for requested module:/.test(e)})){for(var n=[];/.+\\..+/.test(e[e.length-1])&&!e[e.length-1].includes(\":\");){var t=e.pop().trim();n.unshift(t)}return n}return[]}(e),{file:n,source:e.join(\"\\n\"),importTraceFiles:t}},[d]),p=f.file,h=f.source,g=f.importTraceFiles,m=x.useMemo(function(){return eH().ansiToJson(h,{json:!0,use_classes:!0,remove_empty:!0})},[h]),v=eE({file:null==p?void 0:p.fileName,lineNumber:null!=(i=null==p||null==(n=p.location)?void 0:n.line)?i:1,column:null!=(l=null==p||null==(t=p.location)?void 0:t.column)?l:0}),b={file:null!=(s=null==p?void 0:p.fileName)?s:null,methodName:\"\",arguments:[],lineNumber:null!=(c=null==p||null==(r=p.location)?void 0:r.line)?c:null,column:null!=(u=null==p||null==(o=p.location)?void 0:o.column)?u:null},w=null==b||null==(a=b.file)?void 0:a.split(\".\").pop();return(0,y.jsxs)(\"div\",{\"data-nextjs-codeframe\":!0,children:[(0,y.jsx)(\"div\",{className:\"code-frame-header\",children:(0,y.jsxs)(\"div\",{className:\"code-frame-link\",children:[(0,y.jsx)(\"span\",{className:\"code-frame-icon\",children:(0,y.jsx)(eT,{lang:w})}),(0,y.jsx)(\"span\",{\"data-text\":!0,children:eS(b)}),(0,y.jsx)(\"button\",{\"aria-label\":\"Open in editor\",\"data-with-open-in-editor-link-source-file\":!0,onClick:v,children:(0,y.jsx)(\"span\",{className:\"code-frame-icon\",\"data-icon\":\"right\",children:(0,y.jsx)(ez,{width:16,height:16})})})]})}),(0,y.jsx)(\"pre\",{className:\"code-frame-pre\",children:(0,y.jsxs)(\"div\",{className:\"code-frame-lines\",children:[m.map(function(e,n){return(0,y.jsx)(\"span\",{style:function(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{},r=Object.keys(t);\"function\"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(t).filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.forEach(function(n){var r,o,a;r=e,o=n,a=t[n],o in r?Object.defineProperty(r,o,{value:a,enumerable:!0,configurable:!0,writable:!0}):r[o]=a})}return e}({color:e.fg?\"var(--color-\".concat(e.fg,\")\"):void 0},\"bold\"===e.decoration?{fontWeight:500}:\"italic\"===e.decoration?{fontStyle:\"italic\"}:void 0),children:(0,y.jsx)(eb,{text:e.content})},\"terminal-entry-\".concat(n))}),g.map(function(e){return(0,y.jsx)(n7,{isSourceFile:!1,file:e},e)})]})})]})},tt=function(e){var n=e.split(\"\\n\");return eU()(n[1]||\"\").replace(/^Error: /,\"\")},tr=function(e){var n,t,r=e.message,o=function(e,n){if(null==e)return{};var t,r,o=function(e,n){if(null==e)return{};var t,r,o={},a=Object.keys(e);for(r=0;r<a.length;r++)t=a[r],n.indexOf(t)>=0||(o[t]=e[t]);return o}(e,n);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r<a.length;r++)t=a[r],!(n.indexOf(t)>=0)&&Object.prototype.propertyIsEnumerable.call(e,t)&&(o[t]=e[t])}return o}(e,[\"message\"]),a=(0,x.useCallback)(function(){},[]),i=Error(r),l=(0,x.useMemo)(function(){return tt(r)||\"Failed to compile\"},[r]);return(0,y.jsx)(n9,(n=function(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{},r=Object.keys(t);\"function\"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(t).filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.forEach(function(n){var r,o,a;r=e,o=n,a=t[n],o in r?Object.defineProperty(r,o,{value:a,enumerable:!0,configurable:!0,writable:!0}):r[o]=a})}return e}({errorType:\"Build Error\",errorMessage:l,onClose:a,error:i},o),t=t={children:(0,y.jsx)(tn,{content:r})},Object.getOwnPropertyDescriptors?Object.defineProperties(n,Object.getOwnPropertyDescriptors(t)):(function(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t.push.apply(t,r)}return t})(Object(t)).forEach(function(e){Object.defineProperty(n,e,Object.getOwnPropertyDescriptor(t,e))}),n))},to=function(e){var n,t=e.frame,r=null!=(n=t.originalStackFrame)?n:t.sourceStackFrame,o=!!t.originalCodeFrame,a=eE(o?{file:r.file,lineNumber:r.lineNumber,column:r.column}:void 0),i=eS(r);return i?(0,y.jsxs)(\"div\",{\"data-nextjs-call-stack-frame\":!0,\"data-nextjs-call-stack-frame-no-source\":!o,\"data-nextjs-call-stack-frame-ignored\":t.ignored,children:[(0,y.jsxs)(\"div\",{className:\"call-stack-frame-method-name\",children:[(0,y.jsx)(eb,{text:r.methodName}),o&&(0,y.jsx)(\"button\",{onClick:a,className:\"open-in-editor-button\",\"aria-label\":\"Open \".concat(r.methodName,\" in editor\"),children:(0,y.jsx)(ez,{width:16,height:16})}),t.error?(0,y.jsx)(\"button\",{className:\"source-mapping-error-button\",onClick:function(){return console.error(t.reason)},title:\"Sourcemapping failed. Click to log cause of error.\",children:(0,y.jsx)(eL,{width:16,height:16})}):null]}),(0,y.jsx)(\"span\",{className:\"call-stack-frame-file-source\",\"data-has-source\":o,children:i})]}):null};function ta(){return(0,y.jsx)(\"svg\",{width:\"16\",height:\"16\",viewBox:\"0 0 16 16\",fill:\"none\",xmlns:\"http://www.w3.org/2000/svg\",children:(0,y.jsx)(\"path\",{fillRule:\"evenodd\",clipRule:\"evenodd\",d:\"M8.70722 2.39641C8.3167 2.00588 7.68353 2.00588 7.29301 2.39641L4.46978 5.21963L3.93945 5.74996L5.00011 6.81062L5.53044 6.28029L8.00011 3.81062L10.4698 6.28029L11.0001 6.81062L12.0608 5.74996L11.5304 5.21963L8.70722 2.39641ZM5.53044 9.71963L5.00011 9.1893L3.93945 10.25L4.46978 10.7803L7.29301 13.6035C7.68353 13.994 8.3167 13.994 8.70722 13.6035L11.5304 10.7803L12.0608 10.25L11.0001 9.1893L10.4698 9.71963L8.00011 12.1893L5.53044 9.71963Z\",fill:\"currentColor\"})})}function ti(){var e,n,t=(e=[\"\\n [data-nextjs-call-stack-container] {\\n position: relative;\\n margin-top: 8px;\\n }\\n\\n [data-nextjs-call-stack-header] {\\n display: flex;\\n justify-content: space-between;\\n align-items: center;\\n min-height: var(--size-28);\\n padding: 8px 8px 12px 4px;\\n width: 100%;\\n }\\n\\n [data-nextjs-call-stack-title] {\\n display: flex;\\n justify-content: space-between;\\n align-items: center;\\n gap: 8px;\\n\\n margin: 0;\\n\\n color: var(--color-gray-1000);\\n font-size: var(--size-16);\\n font-weight: 500;\\n }\\n\\n [data-nextjs-call-stack-count] {\\n display: flex;\\n justify-content: center;\\n align-items: center;\\n\\n width: var(--size-20);\\n height: var(--size-20);\\n gap: 4px;\\n\\n color: var(--color-gray-1000);\\n text-align: center;\\n font-size: var(--size-11);\\n font-weight: 500;\\n line-height: var(--size-16);\\n\\n border-radius: var(--rounded-full);\\n background: var(--color-gray-300);\\n }\\n\\n [data-nextjs-call-stack-ignored-list-toggle-button] {\\n all: unset;\\n display: flex;\\n align-items: center;\\n gap: 6px;\\n color: var(--color-gray-900);\\n font-size: var(--size-14);\\n line-height: var(--size-20);\\n border-radius: 6px;\\n padding: 4px 6px;\\n margin-right: -6px;\\n transition: background 150ms ease;\\n\\n &:hover {\\n background: var(--color-gray-100);\\n }\\n\\n &:focus {\\n outline: var(--focus-ring);\\n }\\n\\n svg {\\n width: var(--size-16);\\n height: var(--size-16);\\n }\\n }\\n\"],n||(n=e.slice(0)),Object.freeze(Object.defineProperties(e,{raw:{value:Object.freeze(n)}})));return ti=function(){return t},t}function tl(e){var n=e.frames,t=e.isIgnoreListOpen,r=e.ignoredFramesTally,o=e.onToggleIgnoreList;return(0,y.jsxs)(\"div\",{\"data-nextjs-call-stack-container\":!0,children:[(0,y.jsxs)(\"div\",{\"data-nextjs-call-stack-header\":!0,children:[(0,y.jsxs)(\"p\",{\"data-nextjs-call-stack-title\":!0,children:[\"Call Stack \",(0,y.jsx)(\"span\",{\"data-nextjs-call-stack-count\":!0,children:n.length})]}),r>0&&(0,y.jsxs)(\"button\",{\"data-nextjs-call-stack-ignored-list-toggle-button\":t,onClick:o,children:[\"\".concat(t?\"Hide\":\"Show\",\" \").concat(r,\" ignore-listed frame(s)\"),(0,y.jsx)(ta,{})]})]}),n.map(function(e,n){return!e.ignored||t?(0,y.jsx)(to,{frame:e},n):null})]})}var ts=ei(ti());function tc(e,n){(null==n||n>e.length)&&(n=e.length);for(var t=0,r=Array(n);t<n;t++)r[t]=e[t];return r}function tu(e){var n,t,r=e.frames,o=e.dialogResizerRef,a=(0,x.useRef)(NaN),i=(n=(0,x.useState)(!1),t=2,function(e){if(Array.isArray(e))return e}(n)||function(e,n){var t,r,o=null==e?null:\"undefined\"!=typeof Symbol&&e[Symbol.iterator]||e[\"@@iterator\"];if(null!=o){var a=[],i=!0,l=!1;try{for(o=o.call(e);!(i=(t=o.next()).done)&&(a.push(t.value),a.length!==n);i=!0);}catch(e){l=!0,r=e}finally{try{i||null==o.return||o.return()}finally{if(l)throw r}}return a}}(n,2)||function(e,n){if(e){if(\"string\"==typeof e)return tc(e,n);var t=Object.prototype.toString.call(e).slice(8,-1);if(\"Object\"===t&&e.constructor&&(t=e.constructor.name),\"Map\"===t||\"Set\"===t)return Array.from(t);if(\"Arguments\"===t||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t))return tc(e,n)}}(n,t)||function(){throw TypeError(\"Invalid attempt to destructure non-iterable instance.\\\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\")}()),l=i[0],s=i[1],c=(0,x.useMemo)(function(){return r.reduce(function(e,n){return e+ +!!n.ignored},0)},[r]);return(0,y.jsx)(tl,{frames:r,isIgnoreListOpen:l,onToggleIgnoreList:function(){var e=null==o?void 0:o.current;if(e){var n=(null==e?void 0:e.getBoundingClientRect()).height;a.current||(a.current=n),l?(e.style.height=\"\".concat(a.current,\"px\"),e.addEventListener(\"transitionend\",function n(){e.removeEventListener(\"transitionend\",n),s(!1)})):s(!0)}},ignoredFramesTally:c})}function td(){var e,n,t=(arguments.length>0&&void 0!==arguments[0]?arguments[0]:{}).collapsed;return(0,y.jsx)(\"svg\",(e=function(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{},r=Object.keys(t);\"function\"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(t).filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.forEach(function(n){var r,o,a;r=e,o=n,a=t[n],o in r?Object.defineProperty(r,o,{value:a,enumerable:!0,configurable:!0,writable:!0}):r[o]=a})}return e}({\"data-nextjs-call-stack-chevron-icon\":!0,\"data-collapsed\":t,width:\"16\",height:\"16\",fill:\"none\"},\"boolean\"==typeof t?{style:{transform:t?void 0:\"rotate(90deg)\"}}:{}),n=n={children:(0,y.jsx)(\"path\",{style:{fill:\"var(--color-font)\"},fillRule:\"evenodd\",d:\"m6.75 3.94.53.53 2.824 2.823a1 1 0 0 1 0 1.414L7.28 11.53l-.53.53L5.69 11l.53-.53L8.69 8 6.22 5.53 5.69 5l1.06-1.06Z\",clipRule:\"evenodd\"})},Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):(function(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t.push.apply(t,r)}return t})(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}),e))}function tf(e,n){(null==n||n>e.length)&&(n=e.length);for(var t=0,r=Array(n);t<n;t++)r[t]=e[t];return r}function tp(e,n){return function(e){if(Array.isArray(e))return e}(e)||function(e,n){var t,r,o=null==e?null:\"undefined\"!=typeof Symbol&&e[Symbol.iterator]||e[\"@@iterator\"];if(null!=o){var a=[],i=!0,l=!1;try{for(o=o.call(e);!(i=(t=o.next()).done)&&(a.push(t.value),!n||a.length!==n);i=!0);}catch(e){l=!0,r=e}finally{try{i||null==o.return||o.return()}finally{if(l)throw r}}return a}}(e,n)||function(e,n){if(e){if(\"string\"==typeof e)return tf(e,n);var t=Object.prototype.toString.call(e).slice(8,-1);if(\"Object\"===t&&e.constructor&&(t=e.constructor.name),\"Map\"===t||\"Set\"===t)return Array.from(t);if(\"Arguments\"===t||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t))return tf(e,n)}}(e,n)||function(){throw TypeError(\"Invalid attempt to destructure non-iterable instance.\\\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\")}()}function th(e){var n=e.reactOutputComponentDiff,t=tp((0,x.useState)(!0),2),r=t[0],o=t[1],a=(0,x.useMemo)(function(){var e=[];return n.split(\"\\n\").forEach(function(n,t){var r,o,a=\"+\"===n[0]||\"-\"===n[0],i=\">\"===n[0],l=a||i,s=l?n[0]:\"\",c=l?n.indexOf(s):-1,u=tp(l?[n.slice(0,c),n.slice(c+1)]:[n,\"\"],2),d=u[0],f=u[1];a?e.push((0,y.jsx)(\"span\",{\"data-nextjs-container-errors-pseudo-html-line\":!0,\"data-nextjs-container-errors-pseudo-html--diff\":\"+\"===s?\"add\":\"remove\",children:(0,y.jsxs)(\"span\",{children:[d,(0,y.jsx)(\"span\",{\"data-nextjs-container-errors-pseudo-html-line-sign\":!0,children:s}),f,\"\\n\"]})},\"comp-diff\"+t)):e.push((0,y.jsxs)(\"span\",(r=function(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{},r=Object.keys(t);\"function\"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(t).filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.forEach(function(n){var r,o,a;r=e,o=n,a=t[n],o in r?Object.defineProperty(r,o,{value:a,enumerable:!0,configurable:!0,writable:!0}):r[o]=a})}return e}({\"data-nextjs-container-errors-pseudo-html-line\":!0},i?{\"data-nextjs-container-errors-pseudo-html--diff\":\"error\"}:void 0),o=o={children:[d,(0,y.jsx)(\"span\",{\"data-nextjs-container-errors-pseudo-html-line-sign\":!0,children:s}),f,\"\\n\"]},Object.getOwnPropertyDescriptors?Object.defineProperties(r,Object.getOwnPropertyDescriptors(o)):(function(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t.push.apply(t,r)}return t})(Object(o)).forEach(function(e){Object.defineProperty(r,e,Object.getOwnPropertyDescriptor(o,e))}),r),\"comp-diff\"+t))}),e},[n]);return(0,y.jsxs)(\"div\",{\"data-nextjs-container-errors-pseudo-html\":!0,\"data-nextjs-container-errors-pseudo-html-collapse\":r,children:[(0,y.jsx)(\"button\",{\"aria-expanded\":!r,\"aria-label\":\"complete Component Stack\",\"data-nextjs-container-errors-pseudo-html-collapse-button\":!0,onClick:function(){return o(!r)},children:(0,y.jsx)(td,{collapsed:r})}),(0,y.jsx)(\"pre\",{className:\"nextjs__container_errors__component-stack\",children:(0,y.jsx)(\"code\",{children:a})})]})}var tg=Symbol.for(\"NextjsError\");function tm(e){return e[tg]||null}function tv(e,n,t,r,o,a,i){try{var l=e[a](i),s=l.value}catch(e){t(e);return}l.done?n(s):Promise.resolve(s).then(r,o)}function tb(e){return function(){var n=this,t=arguments;return new Promise(function(r,o){var a=e.apply(n,t);function i(e){tv(a,r,o,i,l,\"next\",e)}function l(e){tv(a,r,o,i,l,\"throw\",e)}i(void 0)})}}function ty(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{},r=Object.keys(t);\"function\"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(t).filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.forEach(function(n){var r,o,a;r=e,o=n,a=t[n],o in r?Object.defineProperty(r,o,{value:a,enumerable:!0,configurable:!0,writable:!0}):r[o]=a})}return e}function tx(e,n){return n=null!=n?n:{},Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):(function(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t.push.apply(t,r)}return t})(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}),e}function tw(e,n){var t,r,o,a={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]},i=Object.create((\"function\"==typeof Iterator?Iterator:Object).prototype);return i.next=l(0),i.throw=l(1),i.return=l(2),\"function\"==typeof Symbol&&(i[Symbol.iterator]=function(){return this}),i;function l(l){return function(s){var c=[l,s];if(t)throw TypeError(\"Generator is already executing.\");for(;i&&(i=0,c[0]&&(a=0)),a;)try{if(t=1,r&&(o=2&c[0]?r.return:c[0]?r.throw||((o=r.return)&&o.call(r),0):r.next)&&!(o=o.call(r,c[1])).done)return o;switch(r=0,o&&(c=[2&c[0],o.value]),c[0]){case 0:case 1:o=c;break;case 4:return a.label++,{value:c[1],done:!1};case 5:a.label++,r=c[1],c=[0];continue;case 7:c=a.ops.pop(),a.trys.pop();continue;default:if(!(o=(o=a.trys).length>0&&o[o.length-1])&&(6===c[0]||2===c[0])){a=0;continue}if(3===c[0]&&(!o||c[1]>o[0]&&c[1]<o[3])){a.label=c[1];break}if(6===c[0]&&a.label<o[1]){a.label=o[1],o=c;break}if(o&&a.label<o[2]){a.label=o[2],a.ops.push(c);break}o[2]&&a.ops.pop(),a.trys.pop();continue}c=n.call(e,a)}catch(e){c=[6,e],r=0}finally{t=o=0}if(5&c[0])throw c[1];return{value:c[0]?c[1]:void 0,done:!0}}}}var tj=function(e){if(\"use\"in x){var n=e.frames;if(\"function\"!=typeof n)throw Error(\"Invariant: frames must be a function when the React version has React.use. This is a bug in Next.js.\");return x.use(n())}if(!Array.isArray(e.frames))throw Error(\"Invariant: frames must be an array when the React version does not have React.use. This is a bug in Next.js.\");return e.frames};function tk(e){var n=e.error,t=e.dialogResizerRef,r=tj(n),o=(0,x.useMemo)(function(){var e,n=r.findIndex(function(e){return!e.ignored&&!!e.originalCodeFrame&&!!e.originalStackFrame});return null!=(e=r[n])?e:null},[r]);return(0,y.jsxs)(y.Fragment,{children:[o&&(0,y.jsx)(eq,{stackFrame:o.originalStackFrame,codeFrame:o.originalCodeFrame}),r.length>0&&(0,y.jsx)(tu,{dialogResizerRef:t,frames:r})]})}var tA=\"\\n \".concat(\"\\n [data-nextjs-container-errors-pseudo-html] {\\n padding: 8px 0;\\n margin: 8px 0;\\n border: 1px solid var(--color-gray-400);\\n background: var(--color-background-200);\\n color: var(--color-syntax-constant);\\n font-family: var(--font-stack-monospace);\\n font-size: var(--size-12);\\n line-height: 1.33em; /* 16px in 12px font size */\\n border-radius: var(--rounded-md-2);\\n }\\n [data-nextjs-container-errors-pseudo-html-line] {\\n display: inline-block;\\n width: 100%;\\n padding-left: 40px;\\n line-height: calc(5 / 3);\\n }\\n [data-nextjs-container-errors-pseudo-html--diff='error'] {\\n background: var(--color-amber-100);\\n box-shadow: 2px 0 0 0 var(--color-amber-900) inset;\\n font-weight: bold;\\n }\\n [data-nextjs-container-errors-pseudo-html-collapse-button] {\\n all: unset;\\n margin-left: 12px;\\n &:focus {\\n outline: none;\\n }\\n }\\n [data-nextjs-container-errors-pseudo-html--diff='add'] {\\n background: var(--color-green-300);\\n }\\n [data-nextjs-container-errors-pseudo-html-line-sign] {\\n margin-left: calc(24px * -1);\\n margin-right: 24px;\\n }\\n [data-nextjs-container-errors-pseudo-html--diff='add']\\n [data-nextjs-container-errors-pseudo-html-line-sign] {\\n color: var(--color-green-900);\\n }\\n [data-nextjs-container-errors-pseudo-html--diff='remove'] {\\n background: var(--color-red-300);\\n }\\n [data-nextjs-container-errors-pseudo-html--diff='remove']\\n [data-nextjs-container-errors-pseudo-html-line-sign] {\\n color: var(--color-red-900);\\n margin-left: calc(24px * -1);\\n margin-right: 24px;\\n }\\n [data-nextjs-container-errors-pseudo-html--diff='error']\\n [data-nextjs-container-errors-pseudo-html-line-sign] {\\n color: var(--color-amber-900);\\n }\\n \\n [data-nextjs-container-errors-pseudo-html--hint] {\\n display: inline-block;\\n font-size: 0;\\n height: 0;\\n }\\n [data-nextjs-container-errors-pseudo-html--tag-adjacent='false'] {\\n color: var(--color-accents-1);\\n }\\n .nextjs__container_errors__component-stack {\\n margin: 0;\\n }\\n [data-nextjs-container-errors-pseudo-html-collapse='true']\\n .nextjs__container_errors__component-stack\\n code {\\n max-height: 120px;\\n mask-image: linear-gradient(to bottom,rgba(0,0,0,0) 0%,black 10%);\\n padding-bottom: 40px;\\n }\\n .nextjs__container_errors__component-stack code {\\n display: block;\\n width: 100%;\\n white-space: pre-wrap;\\n scroll-snap-type: y mandatory;\\n overflow-y: hidden;\\n }\\n [data-nextjs-container-errors-pseudo-html--diff] {\\n scroll-snap-align: center;\\n }\\n .error-overlay-hydration-error-diff-plus-icon {\\n color: var(--color-green-900);\\n }\\n .error-overlay-hydration-error-diff-minus-icon {\\n color: var(--color-red-900);\\n }\\n\",\"\\n\");function tO(e){return e&&\"undefined\"!=typeof Symbol&&e.constructor===Symbol?\"symbol\":typeof e}function tC(e,n){(null==n||n>e.length)&&(n=e.length);for(var t=0,r=Array(n);t<n;t++)r[t]=e[t];return r}function tS(e){var n,t,r,o,a,i=e.runtimeErrors,l=e.getSquashedHydrationErrorDetails,s=(r=(0,x.useState)(0),o=2,function(e){if(Array.isArray(e))return e}(r)||function(e,n){var t,r,o=null==e?null:\"undefined\"!=typeof Symbol&&e[Symbol.iterator]||e[\"@@iterator\"];if(null!=o){var a=[],i=!0,l=!1;try{for(o=o.call(e);!(i=(t=o.next()).done)&&(a.push(t.value),a.length!==n);i=!0);}catch(e){l=!0,r=e}finally{try{i||null==o.return||o.return()}finally{if(l)throw r}}return a}}(r,2)||function(e,n){if(e){if(\"string\"==typeof e)return tC(e,n);var t=Object.prototype.toString.call(e).slice(8,-1);if(\"Object\"===t&&e.constructor&&(t=e.constructor.name),\"Map\"===t||\"Set\"===t)return Array.from(t);if(\"Arguments\"===t||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t))return tC(e,n)}}(r,o)||function(){throw TypeError(\"Invalid attempt to destructure non-iterable instance.\\\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\")}()),c=s[0],u=s[1],d=(0,x.useMemo)(function(){return 0===i.length},[i.length]),f=(0,x.useMemo)(function(){var e;return null!=(e=i[c])?e:null},[c,i]),p=(n=null==f?void 0:f.error,t=l,(0,x.useMemo)(function(){if(void 0===n)return tL;var e,r,o,a=t(n);if(null!==a)return{hydrationWarning:null!=(r=a.warning)?r:null,notes:null,reactOutputComponentDiff:null!=(o=a.reactOutputComponentDiff)?o:null};if(!(ng((e=n).message)||/Hydration failed because the server rendered (text|HTML) didn't match the client\\./.test(e.message)||/A tree hydrated but some attributes of the server rendered HTML didn't match the client properties./.test(e.message)))return tL;var i=function(e){var n=e.message;if(ng(n)){var t=nc(n.split(\"\\n\\n\"),2),r=t[0],o=t[1],a=(void 0===o?\"\":o).trim();return{message:\"\"===a?n.trim():r.trim(),diff:a,notes:null}}var i=nc(n.split(\"\".concat(nf)),2),l=i[0],s=i[1],c=l.trim();if(void 0!==s&&s.length>1){var u=[];s.split(\"\\n\").forEach(function(e){\"\"!==e.trim()&&(e.trim().startsWith(\"at \")||u.push(e))});var d=nu(c.split(\"\\n\\n\")),f=d[0],p=d.slice(1);return{message:f,diff:u.join(\"\\n\"),notes:p.join(\"\\n\\n\")||null}}var h=nu(c.split(\"\\n\\n\"));return{message:h[0],diff:null,notes:h.slice(1).join(\"\\n\\n\")}}(n),l=i.message,s=i.notes,c=i.diff;return null===l?tL:{hydrationWarning:l,notes:s,reactOutputComponentDiff:c}},[n,t]));if(d||!f)return{isLoading:d,activeIdx:c,setActiveIndex:u,activeError:null,errorDetails:null,errorCode:null,errorType:null,notes:null,hydrationWarning:null};var h=f.error,g=(void 0===(a=h)?\"undefined\":tO(a))===\"object\"&&null!==a&&\"__NEXT_ERROR_CODE\"in a&&\"string\"==typeof a.__NEXT_ERROR_CODE?a.__NEXT_ERROR_CODE:(void 0===a?\"undefined\":tO(a))===\"object\"&&null!==a&&\"digest\"in a&&\"string\"==typeof a.digest?a.digest.split(\"@\").find(function(e){return e.startsWith(\"E\")}):void 0,m=tz(h,f.type),v=p.notes,b=p.hydrationWarning;return{isLoading:d,activeIdx:c,setActiveIndex:u,activeError:f,errorDetails:p,errorCode:g,errorType:m,notes:v,hydrationWarning:b}}function tE(e){return e.startsWith(\"https://nextjs.org\")}function t_(e){var n=e.message;return(0,y.jsx)(eb,{text:n,matcher:tE})}function tP(e){var n=e.error,t=\"environmentName\"in n?n.environmentName:\"\",r=t?\"[ \".concat(t,\" ] \"):\"\",o=n.message;return o.startsWith(r)&&(o=o.slice(r.length)),(0,y.jsx)(y.Fragment,{children:(0,y.jsx)(eb,{text:o,matcher:tE})})}function tz(e,n){return\"recoverable\"===n?\"Recoverable \".concat(e.name):\"console\"===n?\"Console \".concat(e.name):\"Runtime \".concat(e.name)}var tL={hydrationWarning:null,notes:null,reactOutputComponentDiff:null};function tT(e){var n,t,r=e.getSquashedHydrationErrorDetails,o=e.runtimeErrors,a=e.debugInfo,i=e.onClose,l=function(e,n){if(null==e)return{};var t,r,o=function(e,n){if(null==e)return{};var t,r,o={},a=Object.keys(e);for(r=0;r<a.length;r++)t=a[r],n.indexOf(t)>=0||(o[t]=e[t]);return o}(e,n);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r<a.length;r++)t=a[r],!(n.indexOf(t)>=0)&&Object.prototype.propertyIsEnumerable.call(e,t)&&(o[t]=e[t])}return o}(e,[\"getSquashedHydrationErrorDetails\",\"runtimeErrors\",\"debugInfo\",\"onClose\"]),s=(0,x.useRef)(null),c=tS({runtimeErrors:o,getSquashedHydrationErrorDetails:r}),u=c.isLoading,d=c.errorCode,f=c.errorType,p=c.notes,h=c.hydrationWarning,g=c.activeIdx,m=c.errorDetails,v=c.activeError,b=c.setActiveIndex;if(u)return(0,y.jsx)(nZ,{children:(0,y.jsx)(n2,{})});if(!v)return null;var w=v.error,j=[\"server\",\"edge-server\"].includes(tm(w)||\"\");return(0,y.jsxs)(n9,(n=function(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{},r=Object.keys(t);\"function\"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(t).filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.forEach(function(n){var r,o,a;r=e,o=n,a=t[n],o in r?Object.defineProperty(r,o,{value:a,enumerable:!0,configurable:!0,writable:!0}):r[o]=a})}return e}({errorCode:d,errorType:f,errorMessage:h?(0,y.jsx)(t_,{message:h}):(0,y.jsx)(tP,{error:w}),onClose:j?void 0:i,debugInfo:a,error:w,runtimeErrors:o,activeIdx:g,setActiveIndex:b,dialogResizerRef:s},l),t=t={children:[(0,y.jsxs)(\"div\",{className:\"error-overlay-notes-container\",children:[p?(0,y.jsx)(y.Fragment,{children:(0,y.jsx)(\"p\",{id:\"nextjs__container_errors__notes\",className:\"nextjs__container_errors__notes\",children:p})}):null,h?(0,y.jsx)(\"p\",{id:\"nextjs__container_errors__link\",className:\"nextjs__container_errors__link\",children:(0,y.jsx)(eb,{text:\"See more info here: \".concat(np)})}):null]}),m.reactOutputComponentDiff?(0,y.jsx)(th,{reactOutputComponentDiff:m.reactOutputComponentDiff||\"\"}):null,(0,y.jsx)(x.Suspense,{fallback:(0,y.jsx)(\"div\",{\"data-nextjs-error-suspended\":!0}),children:(0,y.jsx)(tk,{error:v,dialogResizerRef:s},v.id.toString())})]},Object.getOwnPropertyDescriptors?Object.defineProperties(n,Object.getOwnPropertyDescriptors(t)):(function(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t.push.apply(t,r)}return t})(Object(t)).forEach(function(e){Object.defineProperty(n,e,Object.getOwnPropertyDescriptor(t,e))}),n))}var tR=x.forwardRef(function(e,n){var t,r,o=e.onClick,a=e.children,i=e.className,l=function(e,n){if(null==e)return{};var t,r,o=function(e,n){if(null==e)return{};var t,r,o={},a=Object.keys(e);for(r=0;r<a.length;r++)t=a[r],n.indexOf(t)>=0||(o[t]=e[t]);return o}(e,n);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r<a.length;r++)t=a[r],!(n.indexOf(t)>=0)&&Object.prototype.propertyIsEnumerable.call(e,t)&&(o[t]=e[t])}return o}(e,[\"onClick\",\"children\",\"className\"]);return(0,y.jsx)(\"div\",(t=function(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{},r=Object.keys(t);\"function\"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(t).filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.forEach(function(n){var r,o,a;r=e,o=n,a=t[n],o in r?Object.defineProperty(r,o,{value:a,enumerable:!0,configurable:!0,writable:!0}):r[o]=a})}return e}({},l),r=r={ref:n,onClick:function(e){return e.target.closest(\"a\")||e.preventDefault(),null==o?void 0:o()},className:(0,eJ.cx)(\"nextjs-toast\",i),children:a},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):(function(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t.push.apply(t,r)}return t})(Object(r)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))}),t))});function tN(e,n){(null==n||n>e.length)&&(n=e.length);for(var t=0,r=Array(n);t<n;t++)r[t]=e[t];return r}function tD(e){var n,t,r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:750,o=(n=(0,x.useState)(!1),t=2,function(e){if(Array.isArray(e))return e}(n)||function(e,n){var t,r,o=null==e?null:\"undefined\"!=typeof Symbol&&e[Symbol.iterator]||e[\"@@iterator\"];if(null!=o){var a=[],i=!0,l=!1;try{for(o=o.call(e);!(i=(t=o.next()).done)&&(a.push(t.value),a.length!==n);i=!0);}catch(e){l=!0,r=e}finally{try{i||null==o.return||o.return()}finally{if(l)throw r}}return a}}(n,2)||function(e,n){if(e){if(\"string\"==typeof e)return tN(e,n);var t=Object.prototype.toString.call(e).slice(8,-1);if(\"Object\"===t&&e.constructor&&(t=e.constructor.name),\"Map\"===t||\"Set\"===t)return Array.from(t);if(\"Arguments\"===t||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t))return tN(e,n)}}(n,t)||function(){throw TypeError(\"Invalid attempt to destructure non-iterable instance.\\\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\")}()),a=o[0],i=o[1],l=(0,x.useRef)(null),s=(0,x.useRef)(null);return(0,x.useEffect)(function(){if(s.current&&(clearTimeout(s.current),s.current=null),e)null===l.current&&(l.current=Date.now()),i(!0);else if(null===l.current)i(!1);else{var n=Date.now()-l.current,t=r*Math.ceil(n/r)-n;t>0?s.current=setTimeout(function(){i(!1),l.current=null},t):(i(!1),l.current=null)}return function(){s.current&&clearTimeout(s.current)}},[e,r]),a}function tB(e,n){(null==n||n>e.length)&&(n=e.length);for(var t=0,r=Array(n);t<n;t++)r[t]=e[t];return r}function tM(e){var n,t,r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,o=(0,x.useRef)(null),a=(n=(0,x.useState)(!1),t=2,function(e){if(Array.isArray(e))return e}(n)||function(e,n){var t,r,o=null==e?null:\"undefined\"!=typeof Symbol&&e[Symbol.iterator]||e[\"@@iterator\"];if(null!=o){var a=[],i=!0,l=!1;try{for(o=o.call(e);!(i=(t=o.next()).done)&&(a.push(t.value),a.length!==n);i=!0);}catch(e){l=!0,r=e}finally{try{i||null==o.return||o.return()}finally{if(l)throw r}}return a}}(n,2)||function(e,n){if(e){if(\"string\"==typeof e)return tB(e,n);var t=Object.prototype.toString.call(e).slice(8,-1);if(\"Object\"===t&&e.constructor&&(t=e.constructor.name),\"Map\"===t||\"Set\"===t)return Array.from(t);if(\"Arguments\"===t||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t))return tB(e,n)}}(n,t)||function(){throw TypeError(\"Invalid attempt to destructure non-iterable instance.\\\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\")}()),i=a[0],l=a[1];return(0,x.useEffect)(function(){if(e>0){var n=o.current?Date.now()-o.current:-1;if(o.current=Date.now(),!(n<=r)){l(!0);var t=window.setTimeout(function(){l(!1)},r);return function(){clearTimeout(t)}}}},[e,r]),i}function tI(e,n){(null==n||n>e.length)&&(n=e.length);for(var t=0,r=Array(n);t<n;t++)r[t]=e[t];return r}function tH(e,n){return function(e){if(Array.isArray(e))return e}(e)||function(e,n){var t,r,o=null==e?null:\"undefined\"!=typeof Symbol&&e[Symbol.iterator]||e[\"@@iterator\"];if(null!=o){var a=[],i=!0,l=!1;try{for(o=o.call(e);!(i=(t=o.next()).done)&&(a.push(t.value),!n||a.length!==n);i=!0);}catch(e){l=!0,r=e}finally{try{i||null==o.return||o.return()}finally{if(l)throw r}}return a}}(e,n)||function(e,n){if(e){if(\"string\"==typeof e)return tI(e,n);var t=Object.prototype.toString.call(e).slice(8,-1);if(\"Object\"===t&&e.constructor&&(t=e.constructor.name),\"Map\"===t||\"Set\"===t)return Array.from(t);if(\"Arguments\"===t||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t))return tI(e,n)}}(e,n)||function(){throw TypeError(\"Invalid attempt to destructure non-iterable instance.\\\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\")}()}function tF(e){var n=tH((0,x.useState)(0),2),t=n[0],r=n[1];return(0,x.useEffect)(function(){var n=e.current;if(n){var t=new ResizeObserver(function(e){r(tH(e,1)[0].contentRect.width)});return t.observe(n),function(){return t.disconnect()}}},[e]),t}function tU(e,n){(null==n||n>e.length)&&(n=e.length);for(var t=0,r=Array(n);t<n;t++)r[t]=e[t];return r}function tV(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{},r=Object.keys(t);\"function\"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(t).filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.forEach(function(n){var r,o,a;r=e,o=n,a=t[n],o in r?Object.defineProperty(r,o,{value:a,enumerable:!0,configurable:!0,writable:!0}):r[o]=a})}return e}function tq(e,n){return n=null!=n?n:{},Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):(function(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t.push.apply(t,r)}return t})(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}),e}function tW(e,n){if(null==e)return{};var t,r,o=function(e,n){if(null==e)return{};var t,r,o={},a=Object.keys(e);for(r=0;r<a.length;r++)t=a[r],n.indexOf(t)>=0||(o[t]=e[t]);return o}(e,n);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r<a.length;r++)t=a[r],!(n.indexOf(t)>=0)&&Object.prototype.propertyIsEnumerable.call(e,t)&&(o[t]=e[t])}return o}function t$(e,n){return function(e){if(Array.isArray(e))return e}(e)||function(e,n){var t,r,o=null==e?null:\"undefined\"!=typeof Symbol&&e[Symbol.iterator]||e[\"@@iterator\"];if(null!=o){var a=[],i=!0,l=!1;try{for(o=o.call(e);!(i=(t=o.next()).done)&&(a.push(t.value),!n||a.length!==n);i=!0);}catch(e){l=!0,r=e}finally{try{i||null==o.return||o.return()}finally{if(l)throw r}}return a}}(e,n)||function(e,n){if(e){if(\"string\"==typeof e)return tU(e,n);var t=Object.prototype.toString.call(e).slice(8,-1);if(\"Object\"===t&&e.constructor&&(t=e.constructor.name),\"Map\"===t||\"Set\"===t)return Array.from(t);if(\"Arguments\"===t||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t))return tU(e,n)}}(e,n)||function(){throw TypeError(\"Invalid attempt to destructure non-iterable instance.\\\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\")}()}function tZ(){var e,n,t=(e=[\"\\n [data-next-badge-root] {\\n --timing: cubic-bezier(0.23, 0.88, 0.26, 0.92);\\n --duration-long: 250ms;\\n --color-outer-border: #171717;\\n --color-inner-border: hsla(0, 0%, 100%, 0.14);\\n --color-hover-alpha-subtle: hsla(0, 0%, 100%, 0.13);\\n --color-hover-alpha-error: hsla(0, 0%, 100%, 0.2);\\n --color-hover-alpha-error-2: hsla(0, 0%, 100%, 0.25);\\n --mark-size: calc(var(--size) - var(--size-2) * 2);\\n\\n --focus-color: var(--color-blue-800);\\n --focus-ring: 2px solid var(--focus-color);\\n\\n &:has([data-next-badge][data-error='true']) {\\n --focus-color: #fff;\\n }\\n }\\n\\n [data-disabled-icon] {\\n display: flex;\\n align-items: center;\\n justify-content: center;\\n padding-right: 4px;\\n }\\n\\n [data-next-badge] {\\n -webkit-font-smoothing: antialiased;\\n width: var(--size);\\n height: var(--size);\\n display: flex;\\n align-items: center;\\n position: relative;\\n background: rgba(0, 0, 0, 0.8);\\n box-shadow:\\n 0 0 0 1px var(--color-outer-border),\\n inset 0 0 0 1px var(--color-inner-border),\\n 0px 16px 32px -8px rgba(0, 0, 0, 0.24);\\n backdrop-filter: blur(48px);\\n border-radius: var(--rounded-full);\\n user-select: none;\\n cursor: pointer;\\n scale: 1;\\n overflow: hidden;\\n will-change: scale, box-shadow, width, background;\\n transition:\\n scale var(--duration-short) var(--timing),\\n width var(--duration-long) var(--timing),\\n box-shadow var(--duration-long) var(--timing),\\n background var(--duration-short) ease;\\n\\n &:active[data-error='false'] {\\n scale: 0.95;\\n }\\n\\n &[data-animate='true']:not(:hover) {\\n scale: 1.02;\\n }\\n\\n &[data-error='false']:has([data-next-mark]:focus-visible) {\\n outline: var(--focus-ring);\\n outline-offset: 3px;\\n }\\n\\n &[data-error='true'] {\\n background: #ca2a30;\\n --color-inner-border: #e5484d;\\n\\n [data-next-mark] {\\n background: var(--color-hover-alpha-error);\\n outline-offset: 0px;\\n\\n &:focus-visible {\\n outline: var(--focus-ring);\\n outline-offset: -1px;\\n }\\n\\n &:hover {\\n background: var(--color-hover-alpha-error-2);\\n }\\n }\\n }\\n\\n &[data-error-expanded='false'][data-error='true'] ~ [data-dot] {\\n scale: 1;\\n }\\n\\n > div {\\n display: flex;\\n }\\n }\\n\\n [data-issues-collapse]:focus-visible {\\n outline: var(--focus-ring);\\n }\\n\\n [data-issues]:has([data-issues-open]:focus-visible) {\\n outline: var(--focus-ring);\\n outline-offset: -1px;\\n }\\n\\n [data-dot] {\\n content: '';\\n width: var(--size-8);\\n height: var(--size-8);\\n background: #fff;\\n box-shadow: 0 0 0 1px var(--color-outer-border);\\n border-radius: 50%;\\n position: absolute;\\n top: 2px;\\n right: 0px;\\n scale: 0;\\n pointer-events: none;\\n transition: scale 200ms var(--timing);\\n transition-delay: var(--duration-short);\\n }\\n\\n [data-issues] {\\n --padding-left: 8px;\\n display: flex;\\n gap: 2px;\\n align-items: center;\\n padding-left: 8px;\\n padding-right: 8px;\\n height: var(--size-32);\\n margin-right: 2px;\\n border-radius: var(--rounded-full);\\n transition: background var(--duration-short) ease;\\n\\n &:has([data-issues-open]:hover) {\\n background: var(--color-hover-alpha-error);\\n }\\n\\n &:has([data-issues-collapse]) {\\n padding-right: calc(var(--padding-left) / 2);\\n }\\n\\n [data-cross] {\\n translate: 0px -1px;\\n }\\n }\\n\\n [data-issues-open] {\\n font-size: var(--size-13);\\n color: white;\\n width: fit-content;\\n height: 100%;\\n display: flex;\\n gap: 2px;\\n align-items: center;\\n margin: 0;\\n line-height: var(--size-36);\\n font-weight: 500;\\n z-index: 2;\\n white-space: nowrap;\\n\\n &:focus-visible {\\n outline: 0;\\n }\\n }\\n\\n [data-issues-collapse] {\\n width: var(--size-24);\\n height: var(--size-24);\\n border-radius: var(--rounded-full);\\n transition: background var(--duration-short) ease;\\n\\n &:hover {\\n background: var(--color-hover-alpha-error);\\n }\\n }\\n\\n [data-cross] {\\n color: #fff;\\n width: var(--size-12);\\n height: var(--size-12);\\n }\\n\\n [data-next-mark] {\\n width: var(--mark-size);\\n height: var(--mark-size);\\n margin: 0 2px;\\n display: flex;\\n align-items: center;\\n border-radius: var(--rounded-full);\\n transition: background var(--duration-long) var(--timing);\\n\\n &:focus-visible {\\n outline: 0;\\n }\\n\\n &:hover {\\n background: var(--color-hover-alpha-subtle);\\n }\\n\\n svg {\\n flex-shrink: 0;\\n width: var(--size-40);\\n height: var(--size-40);\\n }\\n }\\n\\n [data-issues-count-animation] {\\n display: grid;\\n place-items: center center;\\n font-variant-numeric: tabular-nums;\\n\\n &[data-animate='false'] {\\n [data-issues-count-exit],\\n [data-issues-count-enter] {\\n animation-duration: 0ms;\\n }\\n }\\n\\n > * {\\n grid-area: 1 / 1;\\n }\\n\\n [data-issues-count-exit] {\\n animation: fadeOut 300ms var(--timing) forwards;\\n }\\n\\n [data-issues-count-enter] {\\n animation: fadeIn 300ms var(--timing) forwards;\\n }\\n }\\n\\n [data-issues-count-plural] {\\n display: inline-block;\\n &[data-animate='true'] {\\n animation: fadeIn 300ms var(--timing) forwards;\\n }\\n }\\n\\n .path0 {\\n animation: draw0 1.5s ease-in-out infinite;\\n }\\n\\n .path1 {\\n animation: draw1 1.5s ease-out infinite;\\n animation-delay: 0.3s;\\n }\\n\\n .paused {\\n stroke-dashoffset: 0;\\n }\\n\\n @keyframes fadeIn {\\n 0% {\\n opacity: 0;\\n filter: blur(2px);\\n transform: translateY(8px);\\n }\\n 100% {\\n opacity: 1;\\n filter: blur(0px);\\n transform: translateY(0);\\n }\\n }\\n\\n @keyframes fadeOut {\\n 0% {\\n opacity: 1;\\n filter: blur(0px);\\n transform: translateY(0);\\n }\\n 100% {\\n opacity: 0;\\n transform: translateY(-12px);\\n filter: blur(2px);\\n }\\n }\\n\\n @keyframes draw0 {\\n 0%,\\n 25% {\\n stroke-dashoffset: -29.6;\\n }\\n 25%,\\n 50% {\\n stroke-dashoffset: 0;\\n }\\n 50%,\\n 75% {\\n stroke-dashoffset: 0;\\n }\\n 75%,\\n 100% {\\n stroke-dashoffset: 29.6;\\n }\\n }\\n\\n @keyframes draw1 {\\n 0%,\\n 20% {\\n stroke-dashoffset: -11.6;\\n }\\n 20%,\\n 50% {\\n stroke-dashoffset: 0;\\n }\\n 50%,\\n 75% {\\n stroke-dashoffset: 0;\\n }\\n 75%,\\n 100% {\\n stroke-dashoffset: 11.6;\\n }\\n }\\n\\n @media (prefers-reduced-motion) {\\n [data-issues-count-exit],\\n [data-issues-count-enter],\\n [data-issues-count-plural] {\\n animation-duration: 0ms !important;\\n }\\n }\\n \"],n||(n=e.slice(0)),Object.freeze(Object.defineProperties(e,{raw:{value:Object.freeze(n)}})));return tZ=function(){return t},t}var tY=(0,x.forwardRef)(function(e,n){var t=e.disabled,r=e.issueCount,o=e.isDevBuilding,a=e.isDevRendering,i=e.isBuildError,l=e.onTriggerClick,s=e.toggleErrorOverlay,c=e.scale,u=tW(e,[\"disabled\",\"issueCount\",\"isDevBuilding\",\"isDevRendering\",\"isBuildError\",\"onTriggerClick\",\"toggleErrorOverlay\",\"scale\"]),d=r>0,f=t$((0,x.useState)(d),2),p=f[0],h=f[1],g=t$((0,x.useState)(!1),2),m=g[0],v=g[1],b=tM(r,150),w=(0,x.useRef)(null),j=(0,x.useRef)(null),k=tF(j),A=tD(o||a),O=p||t;return(0,x.useEffect)(function(){h(d)},[d]),(0,y.jsxs)(\"div\",{\"data-next-badge-root\":!0,style:{\"--size\":\"\".concat(36/(void 0===c?1:c),\"px\"),\"--duration-short\":\"\".concat(150,\"ms\"),display:t&&(!d||m)?\"none\":\"block\"},children:[(0,y.jsx)(\"style\",{children:ei(tZ())}),(0,y.jsx)(\"div\",{\"data-next-badge\":!0,\"data-error\":d,\"data-error-expanded\":O,\"data-animate\":b,style:{width:0===k?\"auto\":k},children:(0,y.jsxs)(\"div\",{ref:j,children:[!t&&(0,y.jsx)(\"button\",tq(tV({ref:function(){for(var e=arguments.length,n=Array(e),t=0;t<e;t++)n[t]=arguments[t];var r=n.filter(Boolean);return r.length<=1?r[0]||null:function(e){var n=!0,t=!1,o=void 0;try{for(var a,i=r[Symbol.iterator]();!(n=(a=i.next()).done);n=!0){var l=a.value;\"function\"==typeof l?l(e):l&&(l.current=e)}}catch(e){t=!0,o=e}finally{try{n||null==i.return||i.return()}finally{if(t)throw o}}}}(w,n),\"data-next-mark\":!0,\"data-next-mark-loading\":A,onClick:l},u),{children:(0,y.jsx)(tK,{isLoading:A,isDevBuilding:o})})),O&&(0,y.jsxs)(\"div\",{\"data-issues\":!0,children:[(0,y.jsxs)(\"button\",{\"data-issues-open\":!0,\"aria-label\":\"Open issues overlay\",onClick:s,children:[t&&(0,y.jsx)(\"div\",{\"data-disabled-icon\":!0,children:(0,y.jsx)(tQ,{})}),(0,y.jsx)(tX,{animate:b,\"data-issues-count-animation\":!0,children:r},r),\" \",(0,y.jsxs)(\"div\",{children:[\"Issue\",r>1&&(0,y.jsx)(\"span\",{\"aria-hidden\":!0,\"data-issues-count-plural\":!0,\"data-animate\":b&&2===r,children:\"s\"})]})]}),!i&&(0,y.jsx)(\"button\",{\"data-issues-collapse\":!0,\"aria-label\":\"Collapse issues badge\",onClick:function(){var e;t?v(!0):h(!1),null==(e=w.current)||e.focus()},children:(0,y.jsx)(tG,{\"data-cross\":!0})})]})]})}),(0,y.jsx)(\"div\",{\"aria-hidden\":!0,\"data-dot\":!0})]})});function tX(e){var n=e.children,t=e.animate,r=tW(e,[\"children\",\"animate\"]);return(0,y.jsxs)(\"div\",tq(tV({},r),{\"data-animate\":void 0===t||t,children:[(0,y.jsx)(\"div\",{\"aria-hidden\":!0,\"data-issues-count-exit\":!0,children:n-1}),(0,y.jsx)(\"div\",{\"data-issues-count\":!0,\"data-issues-count-enter\":!0,children:n})]}))}function tK(e){var n=e.isLoading,t=e.isDevBuilding?\"rgba(255,255,255,0.7)\":\"white\";return(0,y.jsxs)(\"svg\",{width:\"40\",height:\"40\",viewBox:\"0 0 40 40\",fill:\"none\",\"data-next-mark-loading\":n,children:[(0,y.jsxs)(\"g\",{transform:\"translate(8.5, 13)\",children:[(0,y.jsx)(\"path\",{className:n?\"path0\":\"paused\",d:\"M13.3 15.2 L2.34 1 V12.6\",fill:\"none\",stroke:\"url(#next_logo_paint0_linear_1357_10853)\",strokeWidth:\"1.86\",mask:\"url(#next_logo_mask0)\",strokeDasharray:\"29.6\",strokeDashoffset:\"29.6\"}),(0,y.jsx)(\"path\",{className:n?\"path1\":\"paused\",d:\"M11.825 1.5 V13.1\",strokeWidth:\"1.86\",stroke:\"url(#next_logo_paint1_linear_1357_10853)\",strokeDasharray:\"11.6\",strokeDashoffset:\"11.6\"})]}),(0,y.jsxs)(\"defs\",{children:[(0,y.jsxs)(\"linearGradient\",{id:\"next_logo_paint0_linear_1357_10853\",x1:\"9.95555\",y1:\"11.1226\",x2:\"15.4778\",y2:\"17.9671\",gradientUnits:\"userSpaceOnUse\",children:[(0,y.jsx)(\"stop\",{stopColor:t}),(0,y.jsx)(\"stop\",{offset:\"0.604072\",stopColor:t,stopOpacity:\"0\"}),(0,y.jsx)(\"stop\",{offset:\"1\",stopColor:t,stopOpacity:\"0\"})]}),(0,y.jsxs)(\"linearGradient\",{id:\"next_logo_paint1_linear_1357_10853\",x1:\"11.8222\",y1:\"1.40039\",x2:\"11.791\",y2:\"9.62542\",gradientUnits:\"userSpaceOnUse\",children:[(0,y.jsx)(\"stop\",{stopColor:t}),(0,y.jsx)(\"stop\",{offset:\"1\",stopColor:t,stopOpacity:\"0\"})]}),(0,y.jsxs)(\"mask\",{id:\"next_logo_mask0\",children:[(0,y.jsx)(\"rect\",{width:\"100%\",height:\"100%\",fill:\"white\"}),(0,y.jsx)(\"rect\",{width:\"5\",height:\"1.5\",fill:\"black\"})]})]})]})}function tQ(){return(0,y.jsx)(\"svg\",{width:\"12\",height:\"12\",viewBox:\"0 0 12 12\",fill:\"none\",xmlns:\"http://www.w3.org/2000/svg\",children:(0,y.jsx)(\"path\",{fillRule:\"evenodd\",clipRule:\"evenodd\",d:\"M3.98071 1.125L1.125 3.98071L1.125 8.01929L3.98071 10.875H8.01929L10.875 8.01929V3.98071L8.01929 1.125H3.98071ZM3.82538 0C3.62647 0 3.4357 0.0790176 3.29505 0.21967L0.21967 3.29505C0.0790176 3.4357 0 3.62647 0 3.82538V8.17462C0 8.37353 0.0790178 8.5643 0.21967 8.70495L3.29505 11.7803C3.4357 11.921 3.62647 12 3.82538 12H8.17462C8.37353 12 8.5643 11.921 8.70495 11.7803L11.7803 8.70495C11.921 8.5643 12 8.37353 12 8.17462V3.82538C12 3.62647 11.921 3.4357 11.7803 3.29505L8.70495 0.21967C8.5643 0.0790177 8.37353 0 8.17462 0H3.82538ZM6.5625 2.8125V3.375V6V6.5625H5.4375V6V3.375V2.8125H6.5625ZM6 9C6.41421 9 6.75 8.66421 6.75 8.25C6.75 7.83579 6.41421 7.5 6 7.5C5.58579 7.5 5.25 7.83579 5.25 8.25C5.25 8.66421 5.58579 9 6 9Z\",fill:\"#EAEAEA\"})})}function tG(e){return(0,y.jsx)(\"svg\",tq(tV({width:\"12\",height:\"12\",viewBox:\"0 0 14 14\",fill:\"none\",xmlns:\"http://www.w3.org/2000/svg\"},e),{children:(0,y.jsx)(\"path\",{fillRule:\"evenodd\",clipRule:\"evenodd\",d:\"M3.08889 11.8384L2.62486 12.3024L1.69678 11.3744L2.16082 10.9103L6.07178 6.99937L2.16082 3.08841L1.69678 2.62437L2.62486 1.69629L3.08889 2.16033L6.99986 6.07129L10.9108 2.16033L11.3749 1.69629L12.3029 2.62437L11.8389 3.08841L7.92793 6.99937L11.8389 10.9103L12.3029 11.3744L11.3749 12.3024L10.9108 11.8384L6.99986 7.92744L3.08889 11.8384Z\",fill:\"currentColor\"})}))}var tJ=__nested_webpack_require_381207__(\"./src/next-devtools/dev-overlay/hooks/use-delayed-render.ts\"),t0=__nested_webpack_require_381207__(\"./src/next-devtools/dev-overlay/components/errors/dev-tools-indicator/dev-tools-info/dev-tools-info.tsx\");function t1(e){var n,t;return(0,y.jsxs)(t0.x,(n=function(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{},r=Object.keys(t);\"function\"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(t).filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.forEach(function(n){var r,o,a;r=e,o=n,a=t[n],o in r?Object.defineProperty(r,o,{value:a,enumerable:!0,configurable:!0,writable:!0}):r[o]=a})}return e}({title:\"Turbopack\",learnMoreLink:\"https://nextjs.org/docs/app/api-reference/turbopack\"},e),t=t={children:[(0,y.jsxs)(\"article\",{className:\"dev-tools-info-article\",children:[(0,y.jsxs)(\"p\",{className:\"dev-tools-info-paragraph\",children:[\"Turbopack is an incremental bundler optimized for JavaScript and TypeScript, written in Rust, and built into Next.js. Turbopack can be used in Next.js in both the\",\" \",(0,y.jsx)(\"code\",{className:\"dev-tools-info-code\",children:\"pages\"}),\" and\",\" \",(0,y.jsx)(\"code\",{className:\"dev-tools-info-code\",children:\"app\"}),\" directories for faster local development.\"]}),(0,y.jsxs)(\"p\",{className:\"dev-tools-info-paragraph\",children:[\"To enable Turbopack, use the\",\" \",(0,y.jsx)(\"code\",{className:\"dev-tools-info-code\",children:\"--turbopack\"}),\" flag when running the Next.js development server.\"]})]}),(0,y.jsx)(\"div\",{className:\"dev-tools-info-code-block-container\",children:(0,y.jsxs)(\"div\",{className:\"dev-tools-info-code-block\",children:[(0,y.jsx)(e3,{actionLabel:\"Copy Next.js Turbopack Command\",successLabel:\"Next.js Turbopack Command Copied\",content:\"--turbopack\",className:\"dev-tools-info-copy-button\"}),(0,y.jsx)(\"pre\",{className:\"dev-tools-info-code-block-pre\",children:(0,y.jsxs)(\"code\",{children:[(0,y.jsx)(\"div\",{className:\"dev-tools-info-code-block-line\",children:\" \"}),(0,y.jsx)(\"div\",{className:\"dev-tools-info-code-block-line\",children:\"{\"}),(0,y.jsxs)(\"div\",{className:\"dev-tools-info-code-block-line\",children:[\" \",(0,y.jsx)(\"span\",{className:\"dev-tools-info-code-block-json-key\",children:'\"scripts\"'}),\": \",\"{\"]}),(0,y.jsxs)(\"div\",{className:\"dev-tools-info-code-block-line dev-tools-info-highlight\",children:[\" \",(0,y.jsx)(\"span\",{className:\"dev-tools-info-code-block-json-key\",children:'\"dev\"'}),\":\",\" \",(0,y.jsx)(\"span\",{className:\"dev-tools-info-code-block-json-value\",children:'\"next dev --turbopack\"'}),\",\"]}),(0,y.jsxs)(\"div\",{className:\"dev-tools-info-code-block-line\",children:[\" \",(0,y.jsx)(\"span\",{className:\"dev-tools-info-code-block-json-key\",children:'\"build\"'}),\":\",\" \",(0,y.jsx)(\"span\",{className:\"dev-tools-info-code-block-json-value\",children:'\"next build\"'}),\",\"]}),(0,y.jsxs)(\"div\",{className:\"dev-tools-info-code-block-line\",children:[\" \",(0,y.jsx)(\"span\",{className:\"dev-tools-info-code-block-json-key\",children:'\"start\"'}),\":\",\" \",(0,y.jsx)(\"span\",{className:\"dev-tools-info-code-block-json-value\",children:'\"next start\"'}),\",\"]}),(0,y.jsxs)(\"div\",{className:\"dev-tools-info-code-block-line\",children:[\" \",(0,y.jsx)(\"span\",{className:\"dev-tools-info-code-block-json-key\",children:'\"lint\"'}),\":\",\" \",(0,y.jsx)(\"span\",{className:\"dev-tools-info-code-block-json-value\",children:'\"next lint\"'})]}),(0,y.jsx)(\"div\",{className:\"dev-tools-info-code-block-line\",children:\" }\"}),(0,y.jsx)(\"div\",{className:\"dev-tools-info-code-block-line\",children:\"}\"}),(0,y.jsx)(\"div\",{className:\"dev-tools-info-code-block-line\",children:\" \"})]})})]})})]},Object.getOwnPropertyDescriptors?Object.defineProperties(n,Object.getOwnPropertyDescriptors(t)):(function(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t.push.apply(t,r)}return t})(Object(t)).forEach(function(e){Object.defineProperty(n,e,Object.getOwnPropertyDescriptor(t,e))}),n))}function t2(e){var n=e.routerType;return(0,y.jsxs)(\"article\",{className:\"dev-tools-info-article\",children:[(0,y.jsxs)(\"p\",{className:\"dev-tools-info-paragraph\",children:[\"The path\",\" \",(0,y.jsx)(\"code\",{className:\"dev-tools-info-code\",children:window.location.pathname}),\" \",'is marked as \"static\" since it will be prerendered during the build time.']}),(0,y.jsxs)(\"p\",{className:\"dev-tools-info-paragraph\",children:[\"With Static Rendering, routes are rendered at build time, or in the background after\",\" \",(0,y.jsx)(\"a\",{className:\"dev-tools-info-link\",href:\"pages\"===n?\"https://nextjs.org/docs/pages/building-your-application/data-fetching/incremental-static-regeneration\":\"https://nextjs.org/docs/app/building-your-application/data-fetching/incremental-static-regeneration\",target:\"_blank\",rel:\"noopener noreferrer\",children:\"data revalidation\"}),\".\"]}),(0,y.jsx)(\"p\",{className:\"dev-tools-info-paragraph\",children:\"Static rendering is useful when a route has data that is not personalized to the user and can be known at build time, such as a static blog post or a product page.\"})]})}function t4(e){var n=e.routerType;return(0,y.jsxs)(\"article\",{className:\"dev-tools-info-article\",children:[(0,y.jsxs)(\"p\",{className:\"dev-tools-info-paragraph\",children:[\"The path\",\" \",(0,y.jsx)(\"code\",{className:\"dev-tools-info-code\",children:window.location.pathname}),\" \",'is marked as \"dynamic\" since it will be rendered for each user at',\" \",(0,y.jsx)(\"strong\",{children:\"request time\"}),\".\"]}),(0,y.jsx)(\"p\",{className:\"dev-tools-info-paragraph\",children:\"Dynamic rendering is useful when a route has data that is personalized to the user or has information that can only be known at request time, such as cookies or the URL's search params.\"}),\"pages\"===n?(0,y.jsxs)(\"p\",{className:\"dev-tools-info-pagraph\",children:[\"Exporting the\",\" \",(0,y.jsx)(\"a\",{className:\"dev-tools-info-link\",href:\"https://nextjs.org/docs/pages/building-your-application/data-fetching/get-server-side-props\",target:\"_blank\",rel:\"noopener noreferrer\",children:\"getServerSideProps\"}),\" \",\"function will opt the route into dynamic rendering. This function will be called by the server on every request.\"]}):(0,y.jsxs)(\"p\",{className:\"dev-tools-info-paragraph\",children:[\"During rendering, if a\",\" \",(0,y.jsx)(\"a\",{className:\"dev-tools-info-link\",href:\"https://nextjs.org/docs/app/building-your-application/rendering/server-components#dynamic-apis\",target:\"_blank\",rel:\"noopener noreferrer\",children:\"Dynamic API\"}),\" \",\"or a\",\" \",(0,y.jsx)(\"a\",{className:\"dev-tools-info-link\",href:\"https://nextjs.org/docs/app/api-reference/functions/fetch\",target:\"_blank\",rel:\"noopener noreferrer\",children:\"fetch\"}),\" \",\"option of\",\" \",(0,y.jsx)(\"code\",{className:\"dev-tools-info-code\",children:\"{ cache: 'no-store' }\"}),\" \",\"is discovered, Next.js will switch to dynamically rendering the whole route.\"]})]})}var t5={pages:{static:\"https://nextjs.org/docs/pages/building-your-application/rendering/static-site-generation\",dynamic:\"https://nextjs.org/docs/pages/building-your-application/rendering/server-side-rendering\"},app:{static:\"https://nextjs.org/docs/app/building-your-application/rendering/server-components#static-rendering-default\",dynamic:\"https://nextjs.org/docs/app/building-your-application/rendering/server-components#dynamic-rendering\"}};function t3(e){var n,t,r=e.routeType,o=e.routerType,a=function(e,n){if(null==e)return{};var t,r,o=function(e,n){if(null==e)return{};var t,r,o={},a=Object.keys(e);for(r=0;r<a.length;r++)t=a[r],n.indexOf(t)>=0||(o[t]=e[t]);return o}(e,n);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r<a.length;r++)t=a[r],!(n.indexOf(t)>=0)&&Object.prototype.propertyIsEnumerable.call(e,t)&&(o[t]=e[t])}return o}(e,[\"routeType\",\"routerType\"]),i=\"Static\"===r,l=i?t5[o].static:t5[o].dynamic;return(0,y.jsx)(t0.x,(n=function(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{},r=Object.keys(t);\"function\"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(t).filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.forEach(function(n){var r,o,a;r=e,o=n,a=t[n],o in r?Object.defineProperty(r,o,{value:a,enumerable:!0,configurable:!0,writable:!0}):r[o]=a})}return e}({title:\"\".concat(r,\" Route\"),learnMoreLink:l},a),t=t={children:i?(0,y.jsx)(t2,{routerType:o}):(0,y.jsx)(t4,{routerType:o})},Object.getOwnPropertyDescriptors?Object.defineProperties(n,Object.getOwnPropertyDescriptors(t)):(function(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t.push.apply(t,r)}return t})(Object(t)).forEach(function(e){Object.defineProperty(n,e,Object.getOwnPropertyDescriptor(t,e))}),n))}function t6(){return(0,y.jsx)(\"svg\",{xmlns:\"http://www.w3.org/2000/svg\",width:\"16\",height:\"16\",viewBox:\"0 0 20 20\",fill:\"none\",children:(0,y.jsx)(\"path\",{fill:\"currentColor\",fillRule:\"evenodd\",d:\"m9.7 3.736.045-.236h.51l.044.236a2.024 2.024 0 0 0 1.334 1.536c.19.066.375.143.554.23.618.301 1.398.29 2.03-.143l.199-.136.36.361-.135.199a2.024 2.024 0 0 0-.143 2.03c.087.179.164.364.23.554.224.65.783 1.192 1.536 1.334l.236.044v.51l-.236.044a2.024 2.024 0 0 0-1.536 1.334 4.95 4.95 0 0 1-.23.554 2.024 2.024 0 0 0 .143 2.03l.136.199-.361.36-.199-.135a2.024 2.024 0 0 0-2.03-.143c-.179.087-.364.164-.554.23a2.024 2.024 0 0 0-1.334 1.536l-.044.236h-.51l-.044-.236a2.024 2.024 0 0 0-1.334-1.536 4.952 4.952 0 0 1-.554-.23 2.024 2.024 0 0 0-2.03.143l-.199.136-.36-.361.135-.199a2.024 2.024 0 0 0 .143-2.03 4.958 4.958 0 0 1-.23-.554 2.024 2.024 0 0 0-1.536-1.334l-.236-.044v-.51l.236-.044a2.024 2.024 0 0 0 1.536-1.334 4.96 4.96 0 0 1 .23-.554 2.024 2.024 0 0 0-.143-2.03l-.136-.199.361-.36.199.135a2.024 2.024 0 0 0 2.03.143c.179-.087.364-.164.554-.23a2.024 2.024 0 0 0 1.334-1.536ZM8.5 2h3l.274 1.46c.034.185.17.333.348.394.248.086.49.186.722.3.17.082.37.074.526-.033l1.226-.839 2.122 2.122-.84 1.226a.524.524 0 0 0-.032.526c.114.233.214.474.3.722.061.177.21.314.394.348L18 8.5v3l-1.46.274a.524.524 0 0 0-.394.348 6.47 6.47 0 0 1-.3.722.524.524 0 0 0 .033.526l.839 1.226-2.122 2.122-1.226-.84a.524.524 0 0 0-.526-.032 6.477 6.477 0 0 1-.722.3.524.524 0 0 0-.348.394L11.5 18h-3l-.274-1.46a.524.524 0 0 0-.348-.394 6.477 6.477 0 0 1-.722-.3.524.524 0 0 0-.526.033l-1.226.839-2.122-2.122.84-1.226a.524.524 0 0 0 .032-.526 6.453 6.453 0 0 1-.3-.722.524.524 0 0 0-.394-.348L2 11.5v-3l1.46-.274a.524.524 0 0 0 .394-.348c.086-.248.186-.49.3-.722a.524.524 0 0 0-.033-.526l-.839-1.226 2.122-2.122 1.226.84a.524.524 0 0 0 .526.032 6.46 6.46 0 0 1 .722-.3.524.524 0 0 0 .348-.394L8.5 2Zm3 8a1.5 1.5 0 1 1-3 0 1.5 1.5 0 0 1 3 0Zm1.5 0a3 3 0 1 1-6 0 3 3 0 0 1 6 0Z\",clipRule:\"evenodd\"})})}function t9(){return(0,y.jsx)(\"svg\",{xmlns:\"http://www.w3.org/2000/svg\",width:\"16\",height:\"16\",fill:\"none\",children:(0,y.jsx)(\"path\",{fill:\"currentColor\",fillRule:\"evenodd\",d:\"m.191 2.063.56.498 13.5 12 .561.498.997-1.121-.56-.498-1.81-1.608 2.88-3.342v-.98l-3.204-3.72C10.645.923 6.365.686 3.594 3.08L1.748 1.44 1.188.94.19 2.063ZM14.761 8l-2.442 2.836-1.65-1.466a3.001 3.001 0 0 0-4.342-3.86l-1.6-1.422a5.253 5.253 0 0 1 7.251.682L14.76 8ZM7.526 6.576l1.942 1.727a1.499 1.499 0 0 0-1.942-1.727Zm-7.845.935 1.722-2 1.137.979L1.24 8l2.782 3.23A5.25 5.25 0 0 0 9.9 12.703l.54 1.4a6.751 6.751 0 0 1-7.555-1.892L-.318 8.49v-.98Z\",clipRule:\"evenodd\"})})}function t8(){return(0,y.jsxs)(\"svg\",{xmlns:\"http://www.w3.org/2000/svg\",width:\"20\",height:\"16\",viewBox:\"0 0 16 16\",fill:\"none\",children:[(0,y.jsx)(\"g\",{clipPath:\"url(#light_icon_clip_path)\",children:(0,y.jsx)(\"path\",{fill:\"currentColor\",fillRule:\"evenodd\",d:\"M8.75.75V0h-1.5v2h1.5V.75ZM3.26 4.32l-.53-.53-.354-.353-.53-.53 1.06-1.061.53.53.354.354.53.53-1.06 1.06Zm8.42-1.06.53-.53.353-.354.53-.53 1.061 1.06-.53.53-.354.354-.53.53-1.06-1.06ZM8 11.25a3.25 3.25 0 1 0 0-6.5 3.25 3.25 0 0 0 0 6.5Zm0 1.5a4.75 4.75 0 1 0 0-9.5 4.75 4.75 0 0 0 0 9.5Zm6-5.5h2v1.5h-2v-1.5Zm-13.25 0H0v1.5h2v-1.5H.75Zm1.62 5.32-.53.53 1.06 1.06.53-.53.354-.353.53-.53-1.06-1.061-.53.53-.354.354Zm10.2 1.06.53.53 1.06-1.06-.53-.53-.354-.354-.53-.53-1.06 1.06.53.53.353.354ZM8.75 14v2h-1.5v-2h1.5Z\",clipRule:\"evenodd\"})}),(0,y.jsx)(\"defs\",{children:(0,y.jsx)(\"clipPath\",{id:\"light_icon_clip_path\",children:(0,y.jsx)(\"path\",{fill:\"currentColor\",d:\"M0 0h16v16H0z\"})})})]})}function t7(){return(0,y.jsx)(\"svg\",{\"data-testid\":\"geist-icon\",height:\"16\",strokeLinejoin:\"round\",viewBox:\"0 0 16 16\",width:\"16\",children:(0,y.jsx)(\"path\",{fillRule:\"evenodd\",clipRule:\"evenodd\",d:\"M1.5 8.00005C1.5 5.53089 2.99198 3.40932 5.12349 2.48889C4.88136 3.19858 4.75 3.95936 4.75 4.7501C4.75 8.61609 7.88401 11.7501 11.75 11.7501C11.8995 11.7501 12.048 11.7454 12.1953 11.7361C11.0955 13.1164 9.40047 14.0001 7.5 14.0001C4.18629 14.0001 1.5 11.3138 1.5 8.00005ZM6.41706 0.577759C2.78784 1.1031 0 4.22536 0 8.00005C0 12.1422 3.35786 15.5001 7.5 15.5001C10.5798 15.5001 13.2244 13.6438 14.3792 10.9921L13.4588 9.9797C12.9218 10.155 12.3478 10.2501 11.75 10.2501C8.71243 10.2501 6.25 7.78767 6.25 4.7501C6.25 3.63431 6.58146 2.59823 7.15111 1.73217L6.41706 0.577759ZM13.25 1V1.75V2.75L14.25 2.75H15V4.25H14.25H13.25V5.25V6H11.75V5.25V4.25H10.75L10 4.25V2.75H10.75L11.75 2.75V1.75V1H13.25Z\",fill:\"currentColor\"})})}function re(){return(0,y.jsx)(\"svg\",{width:\"16\",height:\"16\",strokeLinejoin:\"round\",children:(0,y.jsx)(\"path\",{fill:\"currentColor\",fillRule:\"evenodd\",d:\"M0 2a1 1 0 0 1 1-1h14a1 1 0 0 1 1 1v8.5a1 1 0 0 1-1 1H8.75v3h1.75V16h-5v-1.5h1.75v-3H1a1 1 0 0 1-1-1V2Zm1.5.5V10h13V2.5h-13Z\",clipRule:\"evenodd\"})})}function rn(e,n){(null==n||n>e.length)&&(n=e.length);for(var t=0,r=Array(n);t<n;t++)r[t]=e[t];return r}function rt(e,n){return function(e){if(Array.isArray(e))return e}(e)||function(e,n){var t,r,o=null==e?null:\"undefined\"!=typeof Symbol&&e[Symbol.iterator]||e[\"@@iterator\"];if(null!=o){var a=[],i=!0,l=!1;try{for(o=o.call(e);!(i=(t=o.next()).done)&&(a.push(t.value),!n||a.length!==n);i=!0);}catch(e){l=!0,r=e}finally{try{i||null==o.return||o.return()}finally{if(l)throw r}}return a}}(e,n)||function(e,n){if(e){if(\"string\"==typeof e)return rn(e,n);var t=Object.prototype.toString.call(e).slice(8,-1);if(\"Object\"===t&&e.constructor&&(t=e.constructor.name),\"Map\"===t||\"Set\"===t)return Array.from(t);if(\"Arguments\"===t||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t))return rn(e,n)}}(e,n)||function(){throw TypeError(\"Invalid attempt to destructure non-iterable instance.\\\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\")}()}var rr=\"bottom-left\"||0,ro=\"__nextjs_hide_shortcut\";function ra(e,n){(null==n||n>e.length)&&(n=e.length);for(var t=0,r=Array(n);t<n;t++)r[t]=e[t];return r}function ri(e,n){return function(e){if(Array.isArray(e))return e}(e)||function(e,n){var t,r,o=null==e?null:\"undefined\"!=typeof Symbol&&e[Symbol.iterator]||e[\"@@iterator\"];if(null!=o){var a=[],i=!0,l=!1;try{for(o=o.call(e);!(i=(t=o.next()).done)&&(a.push(t.value),!n||a.length!==n);i=!0);}catch(e){l=!0,r=e}finally{try{i||null==o.return||o.return()}finally{if(l)throw r}}return a}}(e,n)||rs(e,n)||function(){throw TypeError(\"Invalid attempt to destructure non-iterable instance.\\\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\")}()}function rl(e){return function(e){if(Array.isArray(e))return ra(e)}(e)||function(e){if(\"undefined\"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e[\"@@iterator\"])return Array.from(e)}(e)||rs(e)||function(){throw TypeError(\"Invalid attempt to spread non-iterable instance.\\\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\")}()}function rs(e,n){if(e){if(\"string\"==typeof e)return ra(e,n);var t=Object.prototype.toString.call(e).slice(8,-1);if(\"Object\"===t&&e.constructor&&(t=e.constructor.name),\"Map\"===t||\"Set\"===t)return Array.from(t);if(\"Arguments\"===t||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t))return ra(e,n)}}function rc(){var e,n,t=(e=[\"\\n .shortcut-recorder {\\n display: flex;\\n align-items: center;\\n justify-content: center;\\n gap: 8px;\\n position: relative;\\n font-family: var(--font-stack-sans);\\n\\n .shortcut-recorder-button {\\n display: flex;\\n align-items: center;\\n gap: 4px;\\n background: transparent;\\n border: 1px dashed var(--color-gray-500);\\n border-radius: var(--rounded-lg);\\n padding: 6px 8px;\\n font-weight: 400;\\n font-size: var(--size-14);\\n color: var(--color-gray-1000);\\n transition: border-color 150ms var(--timing-swift);\\n\\n &[data-has-shortcut='true'] {\\n border: 1px solid var(--color-gray-alpha-400);\\n\\n &:hover {\\n border-color: var(--color-gray-500);\\n }\\n }\\n\\n &:hover {\\n border-color: var(--color-gray-600);\\n }\\n\\n &::placeholder {\\n color: var(--color-gray-900);\\n }\\n\\n &[data-pristine='false']::placeholder {\\n color: transparent;\\n }\\n\\n &:focus-visible {\\n outline: var(--focus-ring);\\n outline-offset: -1px;\\n }\\n }\\n\\n kbd {\\n display: inline-flex;\\n align-items: center;\\n justify-content: center;\\n font-family: var(--font-stack-sans);\\n background: var(--color-gray-200);\\n min-width: 20px;\\n height: 20px;\\n font-size: 14px;\\n border-radius: 4px;\\n color: var(--color-gray-1000);\\n\\n &[data-symbol='false'] {\\n padding: 0 4px;\\n }\\n }\\n\\n .shortcut-recorder-clear-button {\\n cursor: pointer;\\n color: var(--color-gray-1000);\\n width: 20px;\\n height: 20px;\\n display: flex;\\n align-items: center;\\n justify-content: center;\\n border-radius: 4px;\\n transition: background 150ms var(--timing-swift);\\n\\n &:hover {\\n background: var(--color-gray-300);\\n }\\n\\n &:focus-visible {\\n outline: var(--focus-ring);\\n }\\n\\n svg {\\n width: 14px;\\n height: 14px;\\n }\\n }\\n }\\n\\n .shortcut-recorder-keys {\\n pointer-events: none;\\n user-select: none;\\n display: flex;\\n align-items: center;\\n gap: 2px;\\n }\\n\\n .shortcut-recorder-tooltip {\\n --gap: 8px;\\n --background: var(--color-gray-1000);\\n background: var(--background);\\n color: var(--color-background-100);\\n font-size: var(--size-14);\\n padding: 4px 8px;\\n border-radius: 8px;\\n position: absolute;\\n bottom: calc(100% + var(--gap));\\n text-align: center;\\n opacity: 0;\\n scale: 0.96;\\n white-space: nowrap;\\n user-select: none;\\n transition:\\n opacity 150ms var(--timing-swift),\\n scale 150ms var(--timing-swift);\\n\\n &[data-show='true'] {\\n opacity: 1;\\n scale: 1;\\n }\\n\\n svg {\\n position: absolute;\\n transform: translateX(-50%);\\n bottom: -6px;\\n left: 50%;\\n }\\n\\n .shortcut-recorder-status {\\n display: flex;\\n align-items: center;\\n gap: 6px;\\n }\\n\\n .shortcut-recorder-status-icon {\\n width: 7px;\\n height: 7px;\\n border-radius: 50%;\\n flex-shrink: 0;\\n background: var(--color-red-700);\\n\\n &[data-success='true'] {\\n background: var(--color-green-700);\\n }\\n }\\n }\\n\"],n||(n=e.slice(0)),Object.freeze(Object.defineProperties(e,{raw:{value:Object.freeze(n)}})));return rc=function(){return t},t}var ru=[\"Meta\",\"Control\",\"Ctrl\",\"Alt\",\"Option\",\"Shift\"];function rd(e){var n=e.value,t=e.onChange,r=ri((0,x.useState)(!1),2),o=r[0],a=r[1],i=ri((0,x.useState)(null!=n?n:[]),2),l=i[0],s=i[1],c=ri((0,x.useState)(!1),2),u=c[0],d=c[1],f=(0,x.useRef)(null),p=(0,x.useRef)(null),h=!!n||l.length>0;function g(){var e;null==(e=p.current)||e.focus(),s([]),d(!1),setTimeout(function(){a(!0)}),t(null)}function m(){var e;f.current&&clearTimeout(f.current),a(!0),null==(e=p.current)||e.focus()}return(0,y.jsxs)(\"div\",{className:\"shortcut-recorder\",children:[(0,y.jsxs)(\"button\",{className:\"shortcut-recorder-button\",ref:p,onClick:m,onFocus:m,onBlur:function(){d(!1),a(!1)},onKeyDown:function(e){e.target===p.current&&\"Tab\"!==e.key&&(f.current&&clearTimeout(f.current),o||a(!0),3!==l.length&&(e.preventDefault(),e.stopPropagation(),s(function(t){if(t.includes(e.key))return t;if(!ru.includes(e.key)){var r=t.findIndex(function(e){return!ru.includes(e)});if(-1!==r){var o=rl(t);return o[r]=e.key,n(o),o}var a=rl(t).concat([e.key]);return n(a),a}for(var i=rl(t),l=ru.indexOf(e.key),s=0,c=0;c<i.length;c++)if(ru.includes(i[c])){if(l<ru.indexOf(i[c])){s=c;break}s=c+1}else break;return i.splice(s,0,e.key),n(i),i})));function n(e){f.current=window.setTimeout(function(){d(!0),t(e.join(\"+\")),f.current=window.setTimeout(function(){a(!1)},1e3)},180)}},\"data-has-shortcut\":h,\"data-shortcut-recorder\":\"true\",children:[h?(0,y.jsx)(\"div\",{className:\"shortcut-recorder-keys\",children:l.map(function(e){return(0,y.jsx)(rp,{children:e},e)})}):\"Record Shortcut\",h&&(0,y.jsx)(\"div\",{className:\"shortcut-recorder-clear-button\",role:\"button\",onClick:g,onFocus:function(e){return e.stopPropagation()},onKeyDown:function(e){(\"Enter\"===e.key||\" \"===e.key)&&(g(),e.stopPropagation())},\"aria-label\":\"Clear shortcut\",tabIndex:0,children:(0,y.jsx)(rg,{})})]}),(0,y.jsxs)(\"div\",{className:\"shortcut-recorder-tooltip\",\"data-show\":o,children:[(0,y.jsxs)(\"div\",{className:\"shortcut-recorder-status\",children:[(0,y.jsx)(\"div\",{className:\"shortcut-recorder-status-icon\",\"data-success\":u}),u?\"Shortcut set\":\"Recording\"]}),(0,y.jsx)(rf,{})]})]})}function rf(){return(0,y.jsx)(\"svg\",{fill:\"none\",height:\"6\",viewBox:\"0 0 14 6\",width:\"14\",xmlns:\"http://www.w3.org/2000/svg\",children:(0,y.jsx)(\"path\",{d:\"M13.8284 0H0.17157C0.702003 0 1.21071 0.210714 1.58578 0.585787L5.58578 4.58579C6.36683 5.36684 7.63316 5.36683 8.41421 4.58579L12.4142 0.585786C12.7893 0.210714 13.298 0 13.8284 0Z\",fill:\"var(--background)\"})})}function rp(e){var n=e.children,t=function(e){switch(e){case\"Meta\":return(0,y.jsx)(rh,{});case\"Alt\":case\"Option\":return\"⌥\";case\"Control\":case\"Ctrl\":return\"Ctrl\";case\"Shift\":return\"⇧\";case\"Enter\":return\"⏎\";case\"Escape\":case\"Esc\":return\"Esc\";case\" \":case\"Space\":case\"Spacebar\":return\"Space\";case\"ArrowUp\":return\"↑\";case\"ArrowDown\":return\"↓\";case\"ArrowLeft\":return\"←\";case\"ArrowRight\":return\"→\";case\"Tab\":return\"Tab\";case\"Backspace\":return\"⌫\";case\"Delete\":return\"⌦\";default:if(1===n.length)return n.toUpperCase();return n}}(n),r=\"string\"==typeof t&&1===t.length;return(0,y.jsx)(\"kbd\",{\"data-symbol\":r,children:t})}function rh(){var e=ri((0,x.useState)(\"\\xa0\"),2),n=e[0],t=e[1],r=rv(/^Mac/)||rv(/^iPhone/)||rv(/^iPad/)||rv(/^Mac/)&&navigator.maxTouchPoints>1;return(0,x.useEffect)(function(){!0===r&&t(\"⌘\"),!1===r&&t(\"Ctrl\")},[r]),(0,y.jsx)(\"span\",{style:{minWidth:\"1em\",display:\"inline-block\"},children:n})}function rg(){return(0,y.jsx)(\"svg\",{height:\"16\",strokeLinejoin:\"round\",viewBox:\"0 0 16 16\",width:\"16\",children:(0,y.jsx)(\"path\",{fillRule:\"evenodd\",clipRule:\"evenodd\",d:\"M12.4697 13.5303L13 14.0607L14.0607 13L13.5303 12.4697L9.06065 7.99999L13.5303 3.53032L14.0607 2.99999L13 1.93933L12.4697 2.46966L7.99999 6.93933L3.53032 2.46966L2.99999 1.93933L1.93933 2.99999L2.46966 3.53032L6.93933 7.99999L2.46966 12.4697L1.93933 13L2.99999 14.0607L3.53032 13.5303L7.99999 9.06065L12.4697 13.5303Z\",fill:\"currentColor\"})})}var rm=ei(rc());function rv(e){return\"undefined\"!=typeof window&&null!=window.navigator?e.test(window.navigator.platform):void 0}function rb(e,n){(null==n||n>e.length)&&(n=e.length);for(var t=0,r=Array(n);t<n;t++)r[t]=e[t];return r}function ry(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{},r=Object.keys(t);\"function\"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(t).filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.forEach(function(n){var r,o,a;r=e,o=n,a=t[n],o in r?Object.defineProperty(r,o,{value:a,enumerable:!0,configurable:!0,writable:!0}):r[o]=a})}return e}function rx(e,n){return n=null!=n?n:{},Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):(function(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t.push.apply(t,r)}return t})(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}),e}function rw(e,n){if(null==e)return{};var t,r,o=function(e,n){if(null==e)return{};var t,r,o={},a=Object.keys(e);for(r=0;r<a.length;r++)t=a[r],n.indexOf(t)>=0||(o[t]=e[t]);return o}(e,n);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r<a.length;r++)t=a[r],!(n.indexOf(t)>=0)&&Object.prototype.propertyIsEnumerable.call(e,t)&&(o[t]=e[t])}return o}function rj(e,n){return function(e){if(Array.isArray(e))return e}(e)||function(e,n){var t,r,o=null==e?null:\"undefined\"!=typeof Symbol&&e[Symbol.iterator]||e[\"@@iterator\"];if(null!=o){var a=[],i=!0,l=!1;try{for(o=o.call(e);!(i=(t=o.next()).done)&&(a.push(t.value),!n||a.length!==n);i=!0);}catch(e){l=!0,r=e}finally{try{i||null==o.return||o.return()}finally{if(l)throw r}}return a}}(e,n)||function(e,n){if(e){if(\"string\"==typeof e)return rb(e,n);var t=Object.prototype.toString.call(e).slice(8,-1);if(\"Object\"===t&&e.constructor&&(t=e.constructor.name),\"Map\"===t||\"Set\"===t)return Array.from(t);if(\"Arguments\"===t||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t))return rb(e,n)}}(e,n)||function(){throw TypeError(\"Invalid attempt to destructure non-iterable instance.\\\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\")}()}function rk(){var e,n,t=(e=[\"\\n .preferences-container {\\n width: 100%;\\n }\\n\\n @media (min-width: 576px) {\\n .preferences-container {\\n width: 480px;\\n }\\n }\\n\\n .preference-section:first-child {\\n padding-top: 0;\\n }\\n\\n .preference-section {\\n padding: 12px 0;\\n border-bottom: 1px solid var(--color-gray-400);\\n display: flex;\\n justify-content: space-between;\\n align-items: center;\\n gap: 24px;\\n }\\n\\n .preference-section:last-child {\\n border-bottom: none;\\n }\\n\\n .preference-header {\\n margin-bottom: 0;\\n flex: 1;\\n }\\n\\n .preference-header label {\\n font-size: var(--size-14);\\n font-weight: 500;\\n color: var(--color-gray-1000);\\n margin: 0;\\n }\\n\\n .preference-description {\\n color: var(--color-gray-900);\\n font-size: var(--size-14);\\n margin: 0;\\n }\\n\\n .select-button,\\n .action-button {\\n display: flex;\\n align-items: center;\\n gap: 8px;\\n background: var(--color-background-100);\\n border: 1px solid var(--color-gray-400);\\n border-radius: var(--rounded-lg);\\n font-weight: 400;\\n font-size: var(--size-14);\\n color: var(--color-gray-1000);\\n padding: 6px 8px;\\n transition: border-color 150ms var(--timing-swift);\\n\\n &:hover {\\n border-color: var(--color-gray-500);\\n }\\n\\n svg {\\n width: 14px;\\n height: 14px;\\n overflow: visible;\\n }\\n }\\n\\n .select-button {\\n &:focus-within {\\n outline: var(--focus-ring);\\n outline-offset: -1px;\\n }\\n\\n select {\\n all: unset;\\n }\\n\\n option {\\n color: var(--color-gray-1000);\\n background: var(--color-background-100);\\n }\\n }\\n\\n :global(.icon) {\\n width: 18px;\\n height: 18px;\\n color: #666;\\n }\\n\"],n||(n=e.slice(0)),Object.freeze(Object.defineProperties(e,{raw:{value:Object.freeze(n)}})));return rk=function(){return t},t}function rA(e){var n,t=e.setPosition,r=e.position,o=e.hide,a=e.scale,i=e.setScale,l=e.hideShortcut,s=e.setHideShortcut,c=rw(e,[\"setPosition\",\"position\",\"hide\",\"scale\",\"setScale\",\"hideShortcut\",\"setHideShortcut\"]),u=rj((0,x.useState)(function(){if(\"undefined\"==typeof localStorage)return\"system\";var e=localStorage.getItem(Q);return\"dark\"===e||\"light\"===e?e:\"system\"}()),2),d=u[0],f=u[1];function p(e){var n=\"/__nextjs_restart_dev\";e&&(n=\"/__nextjs_restart_dev?invalidatePersistentCache\"),fetch(n,{method:\"POST\"}).then(function(){})}return(0,y.jsxs)(t0.x,rx(ry({title:\"Preferences\"},c),{children:[(0,y.jsx)(\"h2\",{className:\"dev-tools-info-section-title\",children:\"General\"}),(0,y.jsxs)(\"div\",{className:\"preferences-container\",children:[(0,y.jsxs)(\"div\",{className:\"preference-section\",children:[(0,y.jsxs)(\"div\",{className:\"preference-header\",children:[(0,y.jsx)(\"label\",{htmlFor:\"theme\",children:\"Theme\"}),(0,y.jsx)(\"p\",{className:\"preference-description\",children:\"Select your theme preference.\"})]}),(0,y.jsxs)(rO,{id:\"theme\",name:\"theme\",prefix:(0,y.jsx)(rC,{theme:d}),value:d,onChange:function(e){var n=document.querySelector(\"nextjs-portal\");if(n){if(f(e.target.value),\"system\"===e.target.value){n.classList.remove(\"dark\"),n.classList.remove(\"light\"),localStorage.removeItem(Q);return}\"dark\"===e.target.value?(n.classList.add(\"dark\"),n.classList.remove(\"light\"),localStorage.setItem(Q,\"dark\")):(n.classList.remove(\"dark\"),n.classList.add(\"light\"),localStorage.setItem(Q,\"light\"))}},children:[(0,y.jsx)(\"option\",{value:\"system\",children:\"System\"}),(0,y.jsx)(\"option\",{value:\"light\",children:\"Light\"}),(0,y.jsx)(\"option\",{value:\"dark\",children:\"Dark\"})]})]}),(0,y.jsxs)(\"div\",{className:\"preference-section\",children:[(0,y.jsxs)(\"div\",{className:\"preference-header\",children:[(0,y.jsx)(\"label\",{htmlFor:\"position\",children:\"Position\"}),(0,y.jsx)(\"p\",{className:\"preference-description\",children:\"Adjust the placement of your dev tools.\"})]}),(0,y.jsxs)(rO,{id:\"position\",name:\"position\",value:r,onChange:function(e){t(e.target.value),localStorage.setItem(G,e.target.value)},children:[(0,y.jsx)(\"option\",{value:\"bottom-left\",children:\"Bottom Left\"}),(0,y.jsx)(\"option\",{value:\"bottom-right\",children:\"Bottom Right\"}),(0,y.jsx)(\"option\",{value:\"top-left\",children:\"Top Left\"}),(0,y.jsx)(\"option\",{value:\"top-right\",children:\"Top Right\"})]})]}),(0,y.jsxs)(\"div\",{className:\"preference-section\",children:[(0,y.jsxs)(\"div\",{className:\"preference-header\",children:[(0,y.jsx)(\"label\",{htmlFor:\"size\",children:\"Size\"}),(0,y.jsx)(\"p\",{className:\"preference-description\",children:\"Adjust the size of your dev tools.\"})]}),(0,y.jsx)(rO,{id:\"size\",name:\"size\",value:a,onChange:function(e){i(Number(e.target.value))},children:Object.entries(S).map(function(e){var n=rj(e,2),t=n[0],r=n[1];return(0,y.jsx)(\"option\",{value:r,children:t},t)})})]}),(0,y.jsxs)(\"div\",{className:\"preference-section\",children:[(0,y.jsxs)(\"div\",{className:\"preference-header\",children:[(0,y.jsx)(\"label\",{id:\"hide-dev-tools\",children:\"Hide Dev Tools for this session\"}),(0,y.jsx)(\"p\",{className:\"preference-description\",children:\"Hide Dev Tools until you restart your dev server, or 1 day.\"})]}),(0,y.jsx)(\"div\",{className:\"preference-control\",children:(0,y.jsxs)(\"button\",{\"aria-describedby\":\"hide-dev-tools\",name:\"hide-dev-tools\",\"data-hide-dev-tools\":!0,className:\"action-button\",onClick:o,children:[(0,y.jsx)(t9,{}),(0,y.jsx)(\"span\",{children:\"Hide\"})]})})]}),(0,y.jsxs)(\"div\",{className:\"preference-section\",children:[(0,y.jsxs)(\"div\",{className:\"preference-header\",children:[(0,y.jsx)(\"label\",{id:\"hide-dev-tools\",children:\"Hide Dev Tools shortcut\"}),(0,y.jsx)(\"p\",{className:\"preference-description\",children:\"Set a custom keyboard shortcut to toggle visibility.\"})]}),(0,y.jsx)(\"div\",{className:\"preference-control\",children:(0,y.jsx)(rd,{value:null!=(n=null==l?void 0:l.split(\"+\"))?n:null,onChange:s})})]}),(0,y.jsx)(\"div\",{className:\"preference-section\",children:(0,y.jsxs)(\"div\",{className:\"preference-header\",children:[(0,y.jsx)(\"label\",{children:\"Disable Dev Tools for this project\"}),(0,y.jsxs)(\"p\",{className:\"preference-description\",children:[\"To disable this UI completely, set\",\" \",(0,y.jsx)(\"code\",{className:\"dev-tools-info-code\",children:\"devIndicators: false\"}),\" \",\"in your \",(0,y.jsx)(\"code\",{className:\"dev-tools-info-code\",children:\"next.config\"}),\" \",\"file.\"]})]})})]}),(0,y.jsx)(\"h2\",{className:\"dev-tools-info-section-title\",children:\"Development Server\"}),(0,y.jsx)(\"div\",{className:\"preferences-container\",children:(0,y.jsxs)(\"div\",{className:\"preference-section\",children:[(0,y.jsxs)(\"div\",{className:\"preference-header\",children:[(0,y.jsx)(\"label\",{id:\"restart-dev-server\",children:\"Restart Dev Server\"}),(0,y.jsx)(\"p\",{className:\"preference-description\",children:\"Restarts the development server without needing to leave the browser.\"})]}),(0,y.jsx)(\"div\",{className:\"preference-control\",children:(0,y.jsx)(\"button\",{\"aria-describedby\":\"restart-dev-server\",title:\"Restarts the development server without needing to leave the browser.\",name:\"restart-dev-server\",\"data-restart-dev-server\":!0,className:\"action-button\",onClick:function(){return p(!1)},children:(0,y.jsx)(\"span\",{children:\"Restart\"})})})]})}), true?(0,y.jsx)(\"div\",{className:\"preferences-container\",children:(0,y.jsxs)(\"div\",{className:\"preference-section\",children:[(0,y.jsxs)(\"div\",{className:\"preference-header\",children:[(0,y.jsx)(\"label\",{id:\"reset-bundler-cache\",children:\"Reset Bundler Cache\"}),(0,y.jsx)(\"p\",{className:\"preference-description\",children:\"Clears the bundler cache and restarts the dev server. Helpful if you are seeing stale errors or changes are not appearing.\"})]}),(0,y.jsx)(\"div\",{className:\"preference-control\",children:(0,y.jsx)(\"button\",{\"aria-describedby\":\"reset-bundler-cache\",title:\"Clears the bundler cache and restarts the dev server. Helpful if you are seeing stale errors or changes are not appearing.\",name:\"reset-bundler-cache\",\"data-reset-bundler-cache\":!0,className:\"action-button\",onClick:function(){return p(!0)},children:(0,y.jsx)(\"span\",{children:\"Reset Cache\"})})})]})}):0]}))}function rO(e){var n=e.children,t=e.prefix,r=rw(e,[\"children\",\"prefix\"]);return(0,y.jsxs)(\"div\",{className:\"select-button\",children:[t,(0,y.jsx)(\"select\",rx(ry({},r),{children:n})),(0,y.jsx)(rE,{})]})}function rC(e){switch(e.theme){case\"system\":return(0,y.jsx)(re,{});case\"dark\":return(0,y.jsx)(t7,{});case\"light\":return(0,y.jsx)(t8,{});default:return null}}var rS=ei(rk());function rE(){return(0,y.jsx)(\"svg\",{width:\"16\",height:\"16\",viewBox:\"0 0 16 16\",\"aria-hidden\":!0,children:(0,y.jsx)(\"path\",{fillRule:\"evenodd\",clipRule:\"evenodd\",d:\"M14.0607 5.49999L13.5303 6.03032L8.7071 10.8535C8.31658 11.2441 7.68341 11.2441 7.29289 10.8535L2.46966 6.03032L1.93933 5.49999L2.99999 4.43933L3.53032 4.96966L7.99999 9.43933L12.4697 4.96966L13 4.43933L14.0607 5.49999Z\",fill:\"currentColor\"})})}function r_(e,n){(null==n||n>e.length)&&(n=e.length);for(var t=0,r=Array(n);t<n;t++)r[t]=e[t];return r}function rP(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{},r=Object.keys(t);\"function\"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(t).filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.forEach(function(n){var r,o,a;r=e,o=n,a=t[n],o in r?Object.defineProperty(r,o,{value:a,enumerable:!0,configurable:!0,writable:!0}):r[o]=a})}return e}function rz(e,n){return n=null!=n?n:{},Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):(function(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t.push.apply(t,r)}return t})(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}),e}function rL(e,n){if(null==e)return{};var t,r,o=function(e,n){if(null==e)return{};var t,r,o={},a=Object.keys(e);for(r=0;r<a.length;r++)t=a[r],n.indexOf(t)>=0||(o[t]=e[t]);return o}(e,n);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r<a.length;r++)t=a[r],!(n.indexOf(t)>=0)&&Object.prototype.propertyIsEnumerable.call(e,t)&&(o[t]=e[t])}return o}function rT(e){return function(e){if(Array.isArray(e))return r_(e)}(e)||function(e){if(\"undefined\"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e[\"@@iterator\"])return Array.from(e)}(e)||rR(e)||function(){throw TypeError(\"Invalid attempt to spread non-iterable instance.\\\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\")}()}function rR(e,n){if(e){if(\"string\"==typeof e)return r_(e,n);var t=Object.prototype.toString.call(e).slice(8,-1);if(\"Object\"===t&&e.constructor&&(t=e.constructor.name),\"Map\"===t||\"Set\"===t)return Array.from(t);if(\"Arguments\"===t||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t))return r_(e,n)}}function rN(e){var n=e.children,t=e.padding,r=e.position,o=e.setPosition,a=e.onDragStart,i=e.dragHandleSelector,l=e.disableDrag,s=rL(e,[\"children\",\"padding\",\"position\",\"setPosition\",\"onDragStart\",\"dragHandleSelector\",\"disableDrag\"]),c=function(e){var n=(0,x.useRef)(null),t=(0,x.useRef)({state:\"idle\"}),r=(0,x.useRef)(null),o=(0,x.useRef)({x:0,y:0}),a=(0,x.useRef)({x:0,y:0}),i=(0,x.useRef)(0),l=(0,x.useRef)([]),s=(0,x.useCallback)(function(){var e,o;\"drag\"===t.current.state&&(null==(o=n.current)||o.releasePointerCapture(t.current.pointerId)),t.current=\"drag\"===t.current.state?{state:\"drag-end\"}:{state:\"idle\"},null!==r.current&&(r.current(),r.current=null),l.current=[],null==(e=n.current)||e.classList.remove(\"dev-tools-grabbing\")},[]);function c(e){n.current&&(a.current=e,n.current.style.translate=\"\".concat(e.x,\"px \").concat(e.y,\"px\"))}function u(e){if(\"drag-end\"===t.current.state){var r;e.preventDefault(),e.stopPropagation(),t.current={state:\"idle\"},null==(r=n.current)||r.removeEventListener(\"click\",u)}}function d(r){if(\"press\"===t.current.state){var s,u,d,f,p=r.clientX-o.current.x,h=r.clientY-o.current.y;Math.sqrt(p*p+h*h)>=e.threshold&&(t.current={state:\"drag\",pointerId:r.pointerId},null==(u=n.current)||u.setPointerCapture(r.pointerId),null==(d=n.current)||d.classList.add(\"dev-tools-grabbing\"),null==(f=e.onDragStart)||f.call(e))}if(\"drag\"===t.current.state){var g={x:r.clientX,y:r.clientY},m=g.x-o.current.x,v=g.y-o.current.y;o.current=g,c({x:a.current.x+m,y:a.current.y+v});var b=Date.now();b-i.current>=10&&(l.current=rT(l.current.slice(-5)).concat([{position:g,timestamp:b}])),i.current=b,null==(s=e.onDrag)||s.call(e,a.current)}}function f(){var n,t=function(e){if(e.length<2)return{x:0,y:0};var n=e[0],t=e[e.length-1],r=t.timestamp-n.timestamp;return 0===r?{x:0,y:0}:{x:1e3*((t.position.x-n.position.x)/r),y:1e3*((t.position.y-n.position.y)/r)}}(l.current);s(),null==(n=e.onDragEnd)||n.call(e,a.current,t)}return(0,x.useLayoutEffect)(function(){e.disabled&&s()},[s,e.disabled]),{ref:n,onPointerDown:function(a){var i,l;0===a.button&&(l=a.target,(!e.dragHandleSelector||!n.current||!l||l.matches&&l.matches(e.dragHandleSelector))&&(o.current={x:a.clientX,y:a.clientY},t.current={state:\"press\"},window.addEventListener(\"pointermove\",d),window.addEventListener(\"pointerup\",f),null!==r.current&&(r.current(),r.current=null),r.current=function(){window.removeEventListener(\"pointermove\",d),window.removeEventListener(\"pointerup\",f)},null==(i=n.current)||i.addEventListener(\"click\",u)))},animate:function(t){var r=n.current;null!==r&&(r.style.transition=\"translate 491.22ms var(--timing-bounce)\",r.addEventListener(\"transitionend\",function n(o){if(\"translate\"===o.propertyName){var i;null==(i=e.onAnimationEnd)||i.call(e,t),a.current={x:0,y:0},r.style.transition=\"\",r.removeEventListener(\"transitionend\",n)}}),c(t.translation))}}}({disabled:void 0!==l&&l,threshold:5,onDragStart:a,onDragEnd:function(e,n){var o,a,i,l,s,c,f,p,h,g,m,v,b,y,x,w,j,k,A;if(0===Math.sqrt(e.x*e.x+e.y*e.y)){null==(o=u.current)||o.style.removeProperty(\"translate\");return}d((y=(a={x:e.x+rD(n.x),y:e.y+rD(n.y)}).x,x=a.y,j=Object.entries(w=(p=2*t,h=(null==(c=u.current)?void 0:c.offsetWidth)||0,g=(null==(f=u.current)?void 0:f.offsetHeight)||0,m=window.innerWidth-document.documentElement.clientWidth,{\"top-left\":{x:0-(v=(l=(i=r).includes(\"right\"),s=i.includes(\"bottom\"),{x:l?window.innerWidth-m-p-h:0,y:s?window.innerHeight-p-g:0})).x,y:0-v.y},\"top-right\":{x:window.innerWidth-m-p-h-v.x,y:0-v.y},\"bottom-left\":{x:0-v.x,y:window.innerHeight-p-g-v.y},\"bottom-right\":{x:window.innerWidth-m-p-h-v.x,y:window.innerHeight-p-g-v.y}})).map(function(e){var n,t,r=(t=2,function(e){if(Array.isArray(e))return e}(n=e)||function(e,n){var t,r,o=null==e?null:\"undefined\"!=typeof Symbol&&e[Symbol.iterator]||e[\"@@iterator\"];if(null!=o){var a=[],i=!0,l=!1;try{for(o=o.call(e);!(i=(t=o.next()).done)&&(a.push(t.value),a.length!==n);i=!0);}catch(e){l=!0,r=e}finally{try{i||null==o.return||o.return()}finally{if(l)throw r}}return a}}(n,2)||rR(n,t)||function(){throw TypeError(\"Invalid attempt to destructure non-iterable instance.\\\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\")}()),o=r[0],a=r[1];return{key:o,distance:Math.sqrt(Math.pow(y-a.x,2)+Math.pow(x-a.y,2))}}),k=(b=Math).min.apply(b,rT(j.map(function(e){return e.distance}))),(A=j.find(function(e){return e.distance===k}))?{translation:w[A.key],corner:A.key}:{corner:r,translation:w[r]}))},onAnimationEnd:function(e){var n=e.corner;setTimeout(function(){var e;null==(e=u.current)||e.style.removeProperty(\"translate\"),o(n)})},dragHandleSelector:i}),u=c.ref,d=c.animate,f=rL(c,[\"ref\",\"animate\"]);return(0,y.jsx)(\"div\",rz(rP(rz(rP({},s),{ref:u}),f),{style:{touchAction:\"none\"},children:n}))}function rD(e){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:.999;return e/1e3*n/(1-n)}function rB(e,n){(null==n||n>e.length)&&(n=e.length);for(var t=0,r=Array(n);t<n;t++)r[t]=e[t];return r}function rM(e,n,t){return n in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t,e}function rI(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{},r=Object.keys(t);\"function\"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(t).filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.forEach(function(n){rM(e,n,t[n])})}return e}function rH(e,n){if(null==e)return{};var t,r,o=function(e,n){if(null==e)return{};var t,r,o={},a=Object.keys(e);for(r=0;r<a.length;r++)t=a[r],n.indexOf(t)>=0||(o[t]=e[t]);return o}(e,n);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r<a.length;r++)t=a[r],!(n.indexOf(t)>=0)&&Object.prototype.propertyIsEnumerable.call(e,t)&&(o[t]=e[t])}return o}function rF(e,n){return function(e){if(Array.isArray(e))return e}(e)||function(e,n){var t,r,o=null==e?null:\"undefined\"!=typeof Symbol&&e[Symbol.iterator]||e[\"@@iterator\"];if(null!=o){var a=[],i=!0,l=!1;try{for(o=o.call(e);!(i=(t=o.next()).done)&&(a.push(t.value),!n||a.length!==n);i=!0);}catch(e){l=!0,r=e}finally{try{i||null==o.return||o.return()}finally{if(l)throw r}}return a}}(e,n)||function(e,n){if(e){if(\"string\"==typeof e)return rB(e,n);var t=Object.prototype.toString.call(e).slice(8,-1);if(\"Object\"===t&&e.constructor&&(t=e.constructor.name),\"Map\"===t||\"Set\"===t)return Array.from(t);if(\"Arguments\"===t||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t))return rB(e,n)}}(e,n)||function(){throw TypeError(\"Invalid attempt to destructure non-iterable instance.\\\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\")}()}function rU(e){var n=e.state,t=e.errorCount,r=e.isBuildError,o=rH(e,[\"state\",\"errorCount\",\"isBuildError\"]),a=rF((0,x.useState)(!0),2),i=a[0],l=a[1];return(0,y.jsx)(r$,rI({routerType:n.routerType,semver:n.versionInfo.installed,issueCount:t,isDevBuilding:n.buildingIndicator,isDevRendering:n.renderingIndicator,isStaticRoute:n.staticIndicator,hide:function(){l(!1),fetch(\"/__nextjs_disable_dev_indicator\",{method:\"POST\"})},toggleVisibility:function(){l(!i)},isTurbopack:!!false,disabled:n.disableDevIndicator||!i,isBuildError:r,page:n.page},o))}var rV=(0,x.createContext)({}),rq={Root:\"root\",Turbo:\"turbo\",Route:\"route\",Preferences:\"preferences\",SegmentExplorer:\"segment-explorer\"},rW= false?0:function(){return null};function r$(e){var n,t,r,o,a,i,l,s=e.routerType,c=e.disabled,u=e.issueCount,d=e.isDevBuilding,f=e.isDevRendering,p=e.isStaticRoute,h=e.isTurbopack,g=e.isBuildError,m=e.hide,v=e.toggleVisibility,b=e.dispatch,w=e.scale,j=e.setScale,k=e.page,A=(0,x.useRef)(null),O=(0,x.useRef)(null),C=(0,x.useRef)(null),S=rF((0,x.useState)(null),2),E=S[0],_=S[1],P=rF((0,x.useState)(\"undefined\"!=typeof localStorage&&localStorage.getItem(G)?localStorage.getItem(G):rr),2),z=P[0],L=P[1],T=rF((0,x.useState)(-1),2),R=T[0],N=T[1],D=rF((t=(n=rt((0,x.useState)(function(){if(\"undefined\"==typeof localStorage)return null;var e=localStorage.getItem(ro);return e||null}()),2))[0],r=n[1],[t,function(e){r(e),null===e?localStorage.removeItem(ro):localStorage.setItem(ro,e)}]),2),B=D[0],I=D[1],F=E===rq.Root,U=E===rq.Turbo,V=E===rq.Route,q=E===rq.Preferences,W=E===rq.SegmentExplorer,$=(0,tJ.N)(F,{enterDelay:0,exitDelay:nQ.K7}),Z=$.mounted,Y=$.rendered;function X(e){if(\"first\"===e)return void setTimeout(function(){var e,n=null==(e=O.current)?void 0:e.querySelectorAll('[role=\"menuitem\"]');n&&X(Number(n[0].getAttribute(\"data-index\")))});if(\"last\"===e)return void setTimeout(function(){var e,n=null==(e=O.current)?void 0:e.querySelectorAll('[role=\"menuitem\"]');n&&X(n.length-1)});var n,t=null==(n=O.current)?void 0:n.querySelector('[data-index=\"'.concat(e,'\"]'));t&&(N(e),null==t||t.focus())}function K(){_(rq.Root),setTimeout(function(){X(R)},nQ.K7)}function Q(){_(function(e){return e===rq.Root?null:e})}(0,nQ.P5)(O,C,F),(0,nQ.O8)(O,C,Z,Q),o=B?rM({},B,function(){v();var e=A.current;e&&(e.dataset.hidden=\"true\"===e.dataset.hidden?\"false\":\"true\")}):{},a=C,(0,x.useEffect)(function(){var e=function(e){if(n=a,!(t=(0,nQ.vY)(n.current))||\"true\"!==t.contentEditable&&\"INPUT\"!==t.tagName&&\"TEXTAREA\"!==t.tagName&&\"SELECT\"!==t.tagName&&\"true\"!==t.dataset[\"shortcut-recorder\"]||t.hasAttribute(\"readonly\")){var n,t,r=[];e.metaKey&&r.push(\"Meta\"),e.ctrlKey&&r.push(\"Control\"),e.altKey&&r.push(\"Alt\"),e.shiftKey&&r.push(\"Shift\"),\"Meta\"!==e.key&&\"Control\"!==e.key&&\"Alt\"!==e.key&&\"Shift\"!==e.key&&r.push(e.key);var i=r.join(\"+\");o[i]&&(e.preventDefault(),o[i]())}};return window.addEventListener(\"keydown\",e),function(){return window.removeEventListener(\"keydown\",e)}},[o]),(0,x.useEffect)(function(){if(null===E){var e=setTimeout(function(){N(-1)},nQ.K7);return function(){return clearTimeout(e)}}},[E]);var J=rF(z.split(\"-\",2),2),ee=J[0],en=J[1],et=(rM(i={},ee,\"calc(100% + 8px)\"),rM(i,en,0),i);return(0,y.jsxs)(tR,{ref:A,\"data-nextjs-toast\":!0,style:(rM(l={\"--animate-out-duration-ms\":\"\".concat(nQ.K7,\"ms\"),\"--animate-out-timing-function\":nQ.uD,boxShadow:\"none\"},ee,\"\".concat(20,\"px\")),rM(l,en,\"\".concat(20,\"px\")),l),children:[(0,y.jsx)(rN,{padding:20,onDragStart:function(){return _(null)},position:z,setPosition:function(e){localStorage.setItem(G,e),L(e)},children:(0,y.jsx)(tY,{ref:C,\"aria-haspopup\":\"menu\",\"aria-expanded\":F,\"aria-controls\":\"nextjs-dev-tools-menu\",\"aria-label\":\"\".concat(F?\"Close\":\"Open\",\" Next.js Dev Tools\"),\"data-nextjs-dev-tools-button\":!0,disabled:c,issueCount:u,onTriggerClick:function(){E===rq.Root?_(null):(_(rq.Root),setTimeout(function(){X(\"first\")}))},toggleErrorOverlay:function(){b({type:H})},isDevBuilding:d,isDevRendering:f,isBuildError:g,scale:w})}),(0,y.jsx)(t3,{isOpen:V,close:K,triggerRef:C,style:et,routerType:s,routeType:p?\"Static\":\"Dynamic\"}),(0,y.jsx)(t1,{isOpen:U,close:K,triggerRef:C,style:et}),(0,y.jsx)(rA,{isOpen:q,close:K,triggerRef:C,style:et,hide:function(){_(null),m()},setPosition:L,position:z,scale:w,setScale:j,hideShortcut:B,setHideShortcut:I}), false?0:null,Z&&(0,y.jsx)(\"div\",{ref:O,id:\"nextjs-dev-tools-menu\",role:\"menu\",dir:\"ltr\",\"aria-orientation\":\"vertical\",\"aria-label\":\"Next.js Dev Tools Items\",tabIndex:-1,className:\"dev-tools-indicator-menu\",onKeyDown:function(e){switch(e.preventDefault(),e.key){case\"ArrowDown\":X(R+1);break;case\"ArrowUp\":X(R-1);break;case\"Home\":X(\"first\");break;case\"End\":X(\"last\")}},\"data-rendered\":Y,style:et,children:(0,y.jsxs)(rV.Provider,{value:{closeMenu:Q,selectedIndex:R,setSelectedIndex:N},children:[(0,y.jsxs)(\"div\",{className:\"dev-tools-indicator-inner\",children:[u>0&&(0,y.jsx)(rY,{title:\"\".concat(u,\" \").concat(1===u?\"issue\":\"issues\",\" found. Click to view details in the dev overlay.\"),index:0,label:\"Issues\",value:(0,y.jsx)(rX,{children:u}),onClick:function(){_(null),u>0&&b({type:M})}}),(0,y.jsx)(rY,{title:\"Current route is \".concat(p?\"static\":\"dynamic\",\".\"),label:\"Route\",index:1,value:p?\"Static\":\"Dynamic\",onClick:function(){return _(rq.Route)},\"data-nextjs-route-type\":p?\"static\":\"dynamic\"}),h?(0,y.jsx)(rY,{title:\"Turbopack is enabled.\",label:\"Turbopack\",value:\"Enabled\"}):(0,y.jsx)(rY,{index:2,title:\"Learn about Turbopack and how to enable it in your application.\",label:\"Try Turbopack\",value:(0,y.jsx)(rZ,{}),onClick:function(){return _(rq.Turbo)}})]}),(0,y.jsxs)(\"div\",{className:\"dev-tools-indicator-footer\",children:[(0,y.jsx)(rY,{\"data-preferences\":!0,label:\"Preferences\",value:(0,y.jsx)(t6,{}),onClick:function(){return _(rq.Preferences)},index:h?2:3}), false?0:null]})]})})]})}function rZ(){return(0,y.jsx)(\"svg\",{xmlns:\"http://www.w3.org/2000/svg\",width:\"16\",height:\"16\",viewBox:\"0 0 16 16\",fill:\"none\",children:(0,y.jsx)(\"path\",{fill:\"#666\",fillRule:\"evenodd\",clipRule:\"evenodd\",d:\"M5.50011 1.93945L6.03044 2.46978L10.8537 7.293C11.2442 7.68353 11.2442 8.31669 10.8537 8.70722L6.03044 13.5304L5.50011 14.0608L4.43945 13.0001L4.96978 12.4698L9.43945 8.00011L4.96978 3.53044L4.43945 3.00011L5.50011 1.93945Z\"})})}function rY(e){var n,t,r=e.index,o=e.label,a=e.value,i=e.onClick,l=e.href,s=rH(e,[\"index\",\"label\",\"value\",\"onClick\",\"href\"]),c=\"function\"==typeof i||\"string\"==typeof l,u=(0,x.useContext)(rV),d=u.closeMenu,f=u.selectedIndex,p=u.setSelectedIndex,h=f===r;function g(){c&&(null==i||i(),d(),l&&window.open(l,\"_blank\",\"noopener, noreferrer\"))}return(0,y.jsxs)(\"div\",(n=rI({className:\"dev-tools-indicator-item\",\"data-index\":r,\"data-selected\":h,onClick:g,onMouseMove:function(){c&&void 0!==r&&f!==r&&p(r)},onMouseLeave:function(){return p(-1)},onKeyDown:function(e){(\"Enter\"===e.key||\" \"===e.key)&&g()},role:c?\"menuitem\":void 0,tabIndex:h?0:-1},s),t=t={children:[(0,y.jsx)(\"span\",{className:\"dev-tools-indicator-label\",children:o}),(0,y.jsx)(\"span\",{className:\"dev-tools-indicator-value\",children:a})]},Object.getOwnPropertyDescriptors?Object.defineProperties(n,Object.getOwnPropertyDescriptors(t)):(function(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t.push.apply(t,r)}return t})(Object(t)).forEach(function(e){Object.defineProperty(n,e,Object.getOwnPropertyDescriptor(t,e))}),n))}function rX(e){var n=e.children;return(0,y.jsxs)(\"span\",{className:\"dev-tools-indicator-issue-count\",\"data-has-issues\":n>0,children:[(0,y.jsx)(\"span\",{className:\"dev-tools-indicator-issue-count-indicator\"}),n]})}function rK(e){var n,t;return(0,y.jsx)(\"svg\",(n=function(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{},r=Object.keys(t);\"function\"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(t).filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.forEach(function(n){var r,o,a;r=e,o=n,a=t[n],o in r?Object.defineProperty(r,o,{value:a,enumerable:!0,configurable:!0,writable:!0}):r[o]=a})}return e}({xmlns:\"http://www.w3.org/2000/svg\",fill:\"currentColor\"},e),t=t={children:(0,y.jsx)(\"path\",{d:\"M4.30969 8.37891H2.38782C2.9805 10.3647 4.82188 11.8124 7.00012 11.8125C8.81977 11.8124 10.4043 10.8024 11.2228 9.30957L11.5382 8.73438L12.6896 9.36523L12.3741 9.94043L12.1681 10.2891C11.0815 11.993 9.17324 13.1249 7.00012 13.125C4.42207 13.1249 2.21747 11.5322 1.3136 9.27734V11.375H0.00109863V7.72266L0.0147705 7.58984C0.0760304 7.29089 0.340278 7.06641 0.657349 7.06641H4.30969V8.37891ZM7.00012 0.875C9.57685 0.875118 11.7819 2.46569 12.6866 4.71875V2.625H13.9991V6.27734C13.9991 6.63974 13.7053 6.93354 13.3429 6.93359H9.68958V5.62109H11.6115C11.0186 3.6356 9.17813 2.18763 7.00012 2.1875C5.17131 2.18757 3.57959 3.20771 2.76477 4.71289L2.45227 5.29004L1.29797 4.66504L1.61047 4.08789C2.64547 2.17605 4.67052 0.875068 7.00012 0.875Z\",fill:\"#A35200\"})},Object.getOwnPropertyDescriptors?Object.defineProperties(n,Object.getOwnPropertyDescriptors(t)):(function(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t.push.apply(t,r)}return t})(Object(t)).forEach(function(e){Object.defineProperty(n,e,Object.getOwnPropertyDescriptor(t,e))}),n))}function rQ(e){return e.showButton?(0,y.jsxs)(\"button\",{className:\"restart-dev-server-button\",onClick:function(){fetch(\"/__nextjs_restart_dev?invalidatePersistentCache\",{method:\"POST\"}).then(function(){})},title:\"Clears the bundler cache and restarts the dev server. Helpful if you are seeing stale errors or changes are not appearing.\",children:[(0,y.jsx)(rK,{width:14,height:14}),\"Clear Bundler Cache & Restart\"]}):null}function rG(){var e,n,t=(e=[\"\\n [data-nextjs-version-staleness-indicator='fresh'] {\\n fill: var(--color-green-800);\\n stroke: var(--color-green-300);\\n }\\n [data-nextjs-version-staleness-indicator='stale'] {\\n fill: var(--color-amber-800);\\n stroke: var(--color-amber-300);\\n }\\n [data-nextjs-version-staleness-indicator='outdated'] {\\n fill: var(--color-red-800);\\n stroke: var(--color-red-300);\\n }\\n [data-nextjs-version-staleness-indicator='unknown'] {\\n fill: var(--color-gray-800);\\n stroke: var(--color-gray-300);\\n }\\n\"],n||(n=e.slice(0)),Object.freeze(Object.defineProperties(e,{raw:{value:Object.freeze(n)}})));return rG=function(){return t},t}function rJ(e){var n=e.versionInfo,t=n.staleness,r=nB(n),o=r.text,a=r.indicatorClass,i=r.title;return t.startsWith(\"stale\")?(0,y.jsxs)(\"a\",{\"data-nextjs-devtools-panel-footer-tab\":!0,target:\"_blank\",rel:\"noopener noreferrer\",href:\"https://nextjs.org/docs/messages/version-staleness\",title:i,children:[(0,y.jsx)(nM,{\"data-nextjs-version-staleness-indicator\":a}),(0,y.jsx)(\"span\",{children:o})]}):(0,y.jsxs)(\"div\",{\"data-nextjs-devtools-panel-footer-tab\":!0,title:i,children:[(0,y.jsx)(nM,{\"data-nextjs-version-staleness-indicator\":a}),(0,y.jsx)(\"span\",{children:o})]})}var r0=ei(rG());function r1(){var e,n,t=(e=[\"\\n [data-nextjs-devtools-panel-footer] {\\n background-color: var(--color-background-200);\\n display: flex;\\n justify-content: space-between;\\n align-items: center;\\n border-top: 1px solid var(--color-gray-400);\\n border-radius: 0 0 var(--rounded-xl) var(--rounded-xl);\\n height: auto;\\n }\\n\\n [data-nextjs-devtools-panel-footer-tab-group] {\\n display: flex;\\n align-items: center;\\n }\\n\\n [data-nextjs-devtools-panel-footer-tab] {\\n display: flex;\\n align-items: center;\\n padding: 12px;\\n gap: 8px;\\n align-self: stretch;\\n border-right: 1px solid var(--color-gray-400);\\n\\n color: var(--color-gray-900);\\n font-size: 12px;\\n font-family: var(--font-stack-monospace);\\n }\\n\\n [data-nextjs-devtools-panel-footer-tab-bundler-name='TURBOPACK'] {\\n background: linear-gradient(\\n to right,\\n var(--color-turbopack-text-red) 0%,\\n var(--color-turbopack-text-blue) 100%\\n );\\n background-clip: text;\\n -webkit-background-clip: text;\\n -webkit-text-fill-color: transparent;\\n }\\n\"],n||(n=e.slice(0)),Object.freeze(Object.defineProperties(e,{raw:{value:Object.freeze(n)}})));return r1=function(){return t},t}function r2(e){var n=e.versionInfo,t=e.isDraggable,r=e.showRestartServerButton,o=(\"Webpack\"||0).toUpperCase();return(0,y.jsxs)(\"div\",{\"data-nextjs-devtools-panel-footer\":!0,\"data-nextjs-devtools-panel-draggable\":t,children:[(0,y.jsxs)(\"div\",{\"data-nextjs-devtools-panel-footer-tab-group\":!0,children:[(0,y.jsx)(rJ,{versionInfo:n}),(0,y.jsxs)(\"div\",{\"data-nextjs-devtools-panel-footer-tab\":!0,children:[(0,y.jsx)(\"span\",{\"data-nextjs-devtools-panel-footer-tab-bundler-name\":o,children:o}),(0,y.jsx)(\"span\",{\"data-nextjs-devtools-panel-footer-tab-bundler-status\":!0,children:\"enabled\"})]})]}),r&&(0,y.jsx)(\"div\",{\"data-nextjs-devtools-panel-footer-tab-group\":!0,children:(0,y.jsx)(rQ,{showButton:!0})})]})}var r4=ei(r1());function r5(e){var n,t;return(0,y.jsx)(\"svg\",(n=function(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{},r=Object.keys(t);\"function\"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(t).filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.forEach(function(n){var r,o,a;r=e,o=n,a=t[n],o in r?Object.defineProperty(r,o,{value:a,enumerable:!0,configurable:!0,writable:!0}):r[o]=a})}return e}({width:\"16\",height:\"16\",viewBox:\"0 0 16 16\",\"aria-hidden\":!0},e),t=t={children:(0,y.jsx)(\"path\",{fillRule:\"evenodd\",clipRule:\"evenodd\",d:\"M14.0607 5.49999L13.5303 6.03032L8.7071 10.8535C8.31658 11.2441 7.68341 11.2441 7.29289 10.8535L2.46966 6.03032L1.93933 5.49999L2.99999 4.43933L3.53032 4.96966L7.99999 9.43933L12.4697 4.96966L13 4.43933L14.0607 5.49999Z\",fill:\"currentColor\"})},Object.getOwnPropertyDescriptors?Object.defineProperties(n,Object.getOwnPropertyDescriptors(t)):(function(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t.push.apply(t,r)}return t})(Object(t)).forEach(function(e){Object.defineProperty(n,e,Object.getOwnPropertyDescriptor(t,e))}),n))}function r3(e){var n,t,r=e.children,o=e.prefix,a=function(e,n){if(null==e)return{};var t,r,o=function(e,n){if(null==e)return{};var t,r,o={},a=Object.keys(e);for(r=0;r<a.length;r++)t=a[r],n.indexOf(t)>=0||(o[t]=e[t]);return o}(e,n);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r<a.length;r++)t=a[r],!(n.indexOf(t)>=0)&&Object.prototype.propertyIsEnumerable.call(e,t)&&(o[t]=e[t])}return o}(e,[\"children\",\"prefix\"]);return(0,y.jsxs)(\"div\",{\"data-nextjs-select\":!0,children:[o,(0,y.jsx)(\"select\",(n=function(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{},r=Object.keys(t);\"function\"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(t).filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.forEach(function(n){var r,o,a;r=e,o=n,a=t[n],o in r?Object.defineProperty(r,o,{value:a,enumerable:!0,configurable:!0,writable:!0}):r[o]=a})}return e}({},a),t=t={children:r},Object.getOwnPropertyDescriptors?Object.defineProperties(n,Object.getOwnPropertyDescriptors(t)):(function(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t.push.apply(t,r)}return t})(Object(t)).forEach(function(e){Object.defineProperty(n,e,Object.getOwnPropertyDescriptor(t,e))}),n)),(0,y.jsx)(r5,{width:16,height:16})]})}function r6(e,n){(null==n||n>e.length)&&(n=e.length);for(var t=0,r=Array(n);t<n;t++)r[t]=e[t];return r}function r9(e,n){return function(e){if(Array.isArray(e))return e}(e)||function(e,n){var t,r,o=null==e?null:\"undefined\"!=typeof Symbol&&e[Symbol.iterator]||e[\"@@iterator\"];if(null!=o){var a=[],i=!0,l=!1;try{for(o=o.call(e);!(i=(t=o.next()).done)&&(a.push(t.value),!n||a.length!==n);i=!0);}catch(e){l=!0,r=e}finally{try{i||null==o.return||o.return()}finally{if(l)throw r}}return a}}(e,n)||function(e,n){if(e){if(\"string\"==typeof e)return r6(e,n);var t=Object.prototype.toString.call(e).slice(8,-1);if(\"Object\"===t&&e.constructor&&(t=e.constructor.name),\"Map\"===t||\"Set\"===t)return Array.from(t);if(\"Arguments\"===t||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t))return r6(e,n)}}(e,n)||function(){throw TypeError(\"Invalid attempt to destructure non-iterable instance.\\\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\")}()}function r8(){var e,n,t=(e=[\"\\n [data-nextjs-devtools-panel-settings] {\\n padding: 16px;\\n }\\n\\n [data-nextjs-devtools-panel-settings-section]:first-child {\\n padding-top: 0;\\n }\\n\\n [data-nextjs-devtools-panel-settings-section] {\\n padding: 12px 0;\\n border-bottom: 1px solid var(--color-gray-400);\\n display: flex;\\n justify-content: space-between;\\n align-items: center;\\n gap: 24px;\\n }\\n\\n [data-nextjs-devtools-panel-settings-section]:last-child {\\n padding-bottom: 0;\\n border-bottom: none;\\n }\\n\\n [data-nextjs-devtools-panel-settings-section-header] {\\n margin-bottom: 0;\\n flex: 1;\\n }\\n\\n [data-nextjs-devtools-panel-settings-section-header] label {\\n font-size: var(--size-14);\\n font-weight: 500;\\n color: var(--color-gray-1000);\\n margin: 0;\\n }\\n\\n [data-nextjs-devtools-panel-settings-section-description] {\\n color: var(--color-gray-900);\\n font-size: var(--size-14);\\n margin: 0;\\n }\\n\\n [data-nextjs-select],\\n [data-nextjs-devtools-panel-settings-section-action-button] {\\n display: flex;\\n align-items: center;\\n gap: 8px;\\n background: var(--color-background-100);\\n border: 1px solid var(--color-gray-400);\\n border-radius: var(--rounded-lg);\\n font-weight: 400;\\n font-size: var(--size-14);\\n color: var(--color-gray-1000);\\n padding: 6px 8px;\\n\\n &:hover {\\n background: var(--color-gray-100);\\n }\\n }\\n\\n [data-nextjs-select] {\\n &:focus-within {\\n outline: var(--focus-ring);\\n }\\n\\n select {\\n all: unset;\\n }\\n\\n option {\\n color: var(--color-gray-1000);\\n background: var(--color-background-100);\\n }\\n }\\n\\n :global(.icon) {\\n width: 18px;\\n height: 18px;\\n color: #666;\\n }\\n\"],n||(n=e.slice(0)),Object.freeze(Object.defineProperties(e,{raw:{value:Object.freeze(n)}})));return r8=function(){return t},t}function r7(e){switch(e.theme){case\"system\":return(0,y.jsx)(re,{});case\"dark\":return(0,y.jsx)(t7,{});case\"light\":return(0,y.jsx)(t8,{});default:return null}}function oe(e){var n=e.devToolsPosition,t=e.scale,r=e.handlePositionChange,o=e.handleScaleChange,a=r9((0,x.useState)(function(){if(\"undefined\"==typeof localStorage)return\"system\";var e=localStorage.getItem(Q);return\"dark\"===e||\"light\"===e?e:\"system\"}()),2),i=a[0],l=a[1];function s(e){var n=\"/__nextjs_restart_dev\";e&&(n=\"/__nextjs_restart_dev?invalidatePersistentCache\"),fetch(n,{method:\"POST\"}).then(function(){})}return(0,y.jsxs)(\"div\",{\"data-nextjs-devtools-panel-settings\":!0,children:[(0,y.jsxs)(\"div\",{\"data-nextjs-devtools-panel-settings-section\":!0,children:[(0,y.jsxs)(\"div\",{\"data-nextjs-devtools-panel-settings-section-header\":!0,children:[(0,y.jsx)(\"label\",{htmlFor:\"theme\",children:\"Theme\"}),(0,y.jsx)(\"p\",{\"data-nextjs-devtools-panel-settings-section-description\":!0,children:\"Select your theme preference.\"})]}),(0,y.jsxs)(r3,{id:\"theme\",name:\"theme\",prefix:(0,y.jsx)(r7,{theme:i}),value:i,onChange:function(e){var n=document.querySelector(\"nextjs-portal\");if(n){if(l(e.target.value),\"system\"===e.target.value){n.classList.remove(\"dark\"),n.classList.remove(\"light\"),localStorage.removeItem(Q);return}\"dark\"===e.target.value?(n.classList.add(\"dark\"),n.classList.remove(\"light\"),localStorage.setItem(Q,\"dark\")):(n.classList.remove(\"dark\"),n.classList.add(\"light\"),localStorage.setItem(Q,\"light\"))}},children:[(0,y.jsx)(\"option\",{value:\"system\",children:\"System\"}),(0,y.jsx)(\"option\",{value:\"light\",children:\"Light\"}),(0,y.jsx)(\"option\",{value:\"dark\",children:\"Dark\"})]})]}),(0,y.jsxs)(\"div\",{\"data-nextjs-devtools-panel-settings-section\":!0,children:[(0,y.jsxs)(\"div\",{\"data-nextjs-devtools-panel-settings-section-header\":!0,children:[(0,y.jsx)(\"label\",{htmlFor:\"position\",children:\"Position\"}),(0,y.jsx)(\"p\",{\"data-nextjs-devtools-panel-settings-section-description\":!0,children:\"Adjust the placement of your dev tools.\"})]}),(0,y.jsxs)(r3,{id:\"position\",name:\"position\",value:n,onChange:r,children:[(0,y.jsx)(\"option\",{value:\"bottom-left\",children:\"Bottom Left\"}),(0,y.jsx)(\"option\",{value:\"bottom-right\",children:\"Bottom Right\"}),(0,y.jsx)(\"option\",{value:\"top-left\",children:\"Top Left\"}),(0,y.jsx)(\"option\",{value:\"top-right\",children:\"Top Right\"})]})]}),(0,y.jsxs)(\"div\",{\"data-nextjs-devtools-panel-settings-section\":!0,children:[(0,y.jsxs)(\"div\",{\"data-nextjs-devtools-panel-settings-section-header\":!0,children:[(0,y.jsx)(\"label\",{htmlFor:\"size\",children:\"Size\"}),(0,y.jsx)(\"p\",{\"data-nextjs-devtools-panel-settings-section-description\":!0,children:\"Adjust the size of your dev tools.\"})]}),(0,y.jsx)(r3,{id:\"size\",name:\"size\",value:t,onChange:o,children:Object.entries(S).map(function(e){var n=r9(e,2),t=n[0],r=n[1];return(0,y.jsx)(\"option\",{value:r,children:t},t)})})]}),(0,y.jsxs)(\"div\",{\"data-nextjs-devtools-panel-settings-section\":!0,children:[(0,y.jsxs)(\"div\",{\"data-nextjs-devtools-panel-settings-section-header\":!0,children:[(0,y.jsx)(\"label\",{id:\"hide-dev-tools\",children:\"Hide Dev Tools for this session\"}),(0,y.jsx)(\"p\",{\"data-nextjs-devtools-panel-settings-section-description\":!0,children:\"Hide Dev Tools until you restart your dev server, or 1 day.\"})]}),(0,y.jsx)(\"div\",{children:(0,y.jsxs)(\"button\",{\"aria-describedby\":\"hide-dev-tools\",name:\"hide-dev-tools\",\"data-hide-dev-tools\":!0,\"data-nextjs-devtools-panel-settings-section-action-button\":!0,onClick:function(){fetch(\"/__nextjs_disable_dev_indicator\",{method:\"POST\"})},children:[(0,y.jsx)(t9,{}),(0,y.jsx)(\"span\",{children:\"Hide\"})]})})]}),(0,y.jsx)(\"div\",{\"data-nextjs-devtools-panel-settings-section\":!0,children:(0,y.jsxs)(\"div\",{\"data-nextjs-devtools-panel-settings-section-header\":!0,children:[(0,y.jsx)(\"label\",{children:\"Disable Dev Tools for this project\"}),(0,y.jsxs)(\"p\",{\"data-nextjs-devtools-panel-settings-section-description\":!0,children:[\"To disable this UI completely, set\",\" \",(0,y.jsx)(\"code\",{className:\"dev-tools-info-code\",children:\"devIndicators: false\"}),\" in your \",(0,y.jsx)(\"code\",{className:\"dev-tools-info-code\",children:\"next.config\"}),\" file.\"]})]})}),(0,y.jsxs)(\"div\",{\"data-nextjs-devtools-panel-settings-section\":!0,children:[(0,y.jsxs)(\"div\",{\"data-nextjs-devtools-panel-settings-section-header\":!0,children:[(0,y.jsx)(\"label\",{id:\"restart-dev-server\",children:\"Restart Dev Server\"}),(0,y.jsx)(\"p\",{\"data-nextjs-devtools-panel-settings-section-description\":!0,children:\"Restarts the development server without needing to leave the browser.\"})]}),(0,y.jsx)(\"div\",{children:(0,y.jsx)(\"button\",{\"aria-describedby\":\"restart-dev-server\",title:\"Restarts the development server without needing to leave the browser.\",name:\"restart-dev-server\",\"data-restart-dev-server\":!0,\"data-nextjs-devtools-panel-settings-section-action-button\":!0,onClick:function(){return s(!1)},children:(0,y.jsx)(\"span\",{children:\"Restart\"})})})]}),process.env.__NEXT_TURBOPACK_PERSISTENT_CACHE?(0,y.jsxs)(\"div\",{\"data-nextjs-devtools-panel-settings-section\":!0,children:[(0,y.jsxs)(\"div\",{\"data-nextjs-devtools-panel-settings-section-header\":!0,children:[(0,y.jsx)(\"label\",{id:\"reset-bundler-cache\",children:\"Reset Bundler Cache\"}),(0,y.jsx)(\"p\",{\"data-nextjs-devtools-panel-settings-section-description\":!0,children:\"Clears the bundler cache and restarts the dev server. Helpful if you are seeing stale errors or changes are not appearing.\"})]}),(0,y.jsx)(\"div\",{children:(0,y.jsx)(\"button\",{\"aria-describedby\":\"reset-bundler-cache\",title:\"Clears the bundler cache and restarts the dev server. Helpful if you are seeing stale errors or changes are not appearing.\",name:\"reset-bundler-cache\",\"data-reset-bundler-cache\":!0,\"data-nextjs-devtools-panel-settings-section-action-button\":!0,onClick:function(){return s(!0)},children:(0,y.jsx)(\"span\",{children:\"Reset Cache\"})})})]}):null]})}var on=ei(r8());function ot(){var e,n,t=(e=[\"\\n [data-nextjs-devtools-panel-tab-issues-sidebar-frame-skeleton-bar] {\\n height: var(--size-12);\\n border-radius: 100px;\\n background: linear-gradient(\\n 90deg,\\n var(--color-gray-200) 25%,\\n var(--color-gray-100) 50%,\\n var(--color-gray-200) 75%\\n );\\n background-size: 200% 100%;\\n animation: skeleton-shimmer 1.5s ease-in-out infinite;\\n }\\n\\n [data-nextjs-devtools-panel-tab-issues-sidebar-frame-skeleton-bar='1'] {\\n width: 75%;\\n margin-bottom: 8px;\\n }\\n\\n [data-nextjs-devtools-panel-tab-issues-sidebar-frame-skeleton-bar='2'] {\\n width: 36.5%;\\n }\\n\\n @keyframes skeleton-shimmer {\\n 0% {\\n background-position: -200% 0;\\n }\\n 100% {\\n background-position: 200% 0;\\n }\\n }\\n\\n /* Respect user's motion preferences */\\n @media (prefers-reduced-motion: reduce) {\\n [data-nextjs-devtools-panel-tab-issues-sidebar-frame-skeleton-bar='1'],\\n [data-nextjs-devtools-panel-tab-issues-sidebar-frame-skeleton-bar='2'] {\\n animation: none;\\n background: var(--color-gray-200);\\n }\\n }\\n\"],n||(n=e.slice(0)),Object.freeze(Object.defineProperties(e,{raw:{value:Object.freeze(n)}})));return ot=function(){return t},t}function or(){return(0,y.jsxs)(y.Fragment,{children:[(0,y.jsx)(\"div\",{\"data-nextjs-devtools-panel-tab-issues-sidebar-frame-skeleton-bar\":\"1\"}),(0,y.jsx)(\"div\",{\"data-nextjs-devtools-panel-tab-issues-sidebar-frame-skeleton-bar\":\"2\"})]})}var oo=ei(ot());function oa(){var e,n,t=(e=[\"\\n [data-nextjs-devtools-panel-tab-issues-sidebar] {\\n display: flex;\\n flex-direction: column;\\n gap: 4px;\\n padding: 8px;\\n border-right: 1px solid var(--color-gray-400);\\n overflow-y: auto;\\n min-height: 0;\\n\\n @media (max-width: 575px) {\\n max-width: 112px;\\n }\\n\\n @media (min-width: 576px) {\\n max-width: 138px;\\n width: 100%;\\n }\\n\\n @media (min-width: 768px) {\\n max-width: 172.5px;\\n width: 100%;\\n }\\n\\n @media (min-width: 992px) {\\n max-width: 230px;\\n width: 100%;\\n }\\n }\\n\\n [data-nextjs-devtools-panel-tab-issues-sidebar-frame] {\\n display: flex;\\n flex-direction: column;\\n padding: 10px 8px;\\n border-radius: var(--rounded-lg);\\n transition: background-color 0.2s ease-in-out;\\n\\n &:hover {\\n background-color: var(--color-gray-200);\\n }\\n\\n &:active {\\n background-color: var(--color-gray-300);\\n }\\n }\\n\\n [data-nextjs-devtools-panel-tab-issues-sidebar-frame-active='true'] {\\n background-color: var(--color-gray-100);\\n }\\n\\n [data-nextjs-devtools-panel-tab-issues-sidebar-frame-error-type] {\\n display: inline-block;\\n align-self: flex-start;\\n color: var(--color-gray-1000);\\n font-size: var(--size-14);\\n font-weight: 500;\\n line-height: var(--size-20);\\n }\\n\\n [data-nextjs-devtools-panel-tab-issues-sidebar-frame-source] {\\n display: inline-block;\\n align-self: flex-start;\\n color: var(--color-gray-900);\\n font-size: var(--size-13);\\n line-height: var(--size-18);\\n }\\n\\n /* Ellipsis for long stack frame source or small devices. */\\n [data-nextjs-devtools-panel-tab-issues-sidebar-frame-error-type],\\n [data-nextjs-devtools-panel-tab-issues-sidebar-frame-source] {\\n overflow: hidden;\\n text-overflow: ellipsis;\\n white-space: nowrap;\\n max-width: 100%;\\n }\\n\"],n||(n=e.slice(0)),Object.freeze(Object.defineProperties(e,{raw:{value:Object.freeze(n)}})));return oa=function(){return t},t}function oi(e){var n=e.runtimeErrors,t=e.activeIdx,r=e.setActiveIndex;return 0===n.length?null:(0,y.jsx)(\"aside\",{\"data-nextjs-devtools-panel-tab-issues-sidebar\":!0,children:n.map(function(e,n){var o=n===t;return(0,y.jsx)(os,{runtimeError:e,idx:n,isActive:o,setActiveIndex:r},n)})})}var ol=(0,x.memo)(function(e){var n=e.runtimeError,t=tj(n),r=(0,x.useMemo)(function(){var e,n=t.findIndex(function(e){return!e.ignored&&!!e.originalCodeFrame&&!!e.originalStackFrame});return null!=(e=t[n])?e:null},[t]);if(!(null==r?void 0:r.originalStackFrame))return null;var o=tz(n.error,n.type),a=eS(r.originalStackFrame);return(0,y.jsxs)(y.Fragment,{children:[(0,y.jsx)(\"span\",{\"data-nextjs-devtools-panel-tab-issues-sidebar-frame-error-type\":!0,children:o}),(0,y.jsx)(\"span\",{\"data-nextjs-devtools-panel-tab-issues-sidebar-frame-source\":!0,children:a})]})}),os=(0,x.memo)(function(e){var n=e.runtimeError,t=e.idx,r=e.isActive,o=e.setActiveIndex;return(0,y.jsx)(\"button\",{\"data-nextjs-devtools-panel-tab-issues-sidebar-frame\":!0,\"data-nextjs-devtools-panel-tab-issues-sidebar-frame-active\":r,onClick:function(){return o(t)},children:(0,y.jsx)(x.Suspense,{fallback:(0,y.jsx)(or,{}),children:(0,y.jsx)(ol,{runtimeError:n})})})}),oc=ei(oa());function ou(){var e,n,t=(e=[\"\\n [data-nextjs-codeframe-skeleton] {\\n margin: 8px 0;\\n border-radius: 8px;\\n background-color: var(--color-background-200);\\n border: 1px solid var(--color-gray-400);\\n overflow: hidden;\\n }\\n\\n [data-nextjs-codeframe-skeleton-header] {\\n display: flex;\\n align-items: center;\\n padding: 12px;\\n border-bottom: 1px solid var(--color-gray-400);\\n border-radius: 8px 8px 0 0;\\n gap: 6px;\\n }\\n\\n [data-nextjs-codeframe-skeleton-icon] {\\n width: var(--size-16);\\n height: var(--size-16);\\n border-radius: 4px;\\n background: linear-gradient(\\n 90deg,\\n var(--color-gray-200) 25%,\\n var(--color-gray-100) 50%,\\n var(--color-gray-200) 75%\\n );\\n background-size: 200% 100%;\\n animation: skeleton-shimmer 1.5s ease-in-out infinite;\\n flex-shrink: 0;\\n }\\n\\n [data-nextjs-codeframe-skeleton-header-bar] {\\n width: 42.9%;\\n }\\n\\n [data-nextjs-codeframe-skeleton-button] {\\n width: var(--size-16);\\n height: var(--size-16);\\n border-radius: var(--rounded-full);\\n background: linear-gradient(\\n 90deg,\\n var(--color-gray-200) 25%,\\n var(--color-gray-100) 50%,\\n var(--color-gray-200) 75%\\n );\\n background-size: 200% 100%;\\n animation: skeleton-shimmer 1.5s ease-in-out infinite;\\n flex-shrink: 0;\\n }\\n\\n [data-nextjs-codeframe-skeleton-content] {\\n padding: 12px;\\n }\\n\\n [data-nextjs-codeframe-skeleton-line] {\\n height: var(--size-16);\\n border-radius: 100px;\\n background: linear-gradient(\\n 90deg,\\n var(--color-gray-200) 25%,\\n var(--color-gray-100) 50%,\\n var(--color-gray-200) 75%\\n );\\n background-size: 200% 100%;\\n animation: skeleton-shimmer 1.5s ease-in-out infinite;\\n margin-bottom: 8px;\\n }\\n\\n [data-nextjs-codeframe-skeleton-line]:last-child {\\n margin-bottom: 0;\\n }\\n\\n [data-nextjs-codeframe-skeleton-line-1] {\\n width: 32.5%;\\n }\\n\\n [data-nextjs-codeframe-skeleton-line-2] {\\n width: 56.8%;\\n }\\n\\n [data-nextjs-codeframe-skeleton-line-3] {\\n width: 29.6%;\\n }\\n\\n [data-nextjs-call-stack-container] {\\n position: relative;\\n margin-top: 8px;\\n }\\n\\n [data-nextjs-call-stack-count-skeleton] {\\n display: flex;\\n justify-content: center;\\n align-items: center;\\n width: var(--size-20);\\n height: var(--size-20);\\n border-radius: var(--rounded-full);\\n background: linear-gradient(\\n 90deg,\\n var(--color-gray-200) 25%,\\n var(--color-gray-100) 50%,\\n var(--color-gray-200) 75%\\n );\\n background-size: 200% 100%;\\n animation: skeleton-shimmer 1.5s ease-in-out infinite;\\n }\\n\\n [data-nextjs-call-stack-ignored-list-toggle-button-skeleton] {\\n all: unset;\\n display: flex;\\n align-items: center;\\n border-radius: 6px;\\n padding: 4px 6px;\\n margin-right: -6px;\\n }\\n\\n [data-nextjs-call-stack-skeleton-bar] {\\n height: var(--size-12);\\n width: 148px;\\n border-radius: 100px;\\n background: linear-gradient(\\n 90deg,\\n var(--color-gray-200) 25%,\\n var(--color-gray-100) 50%,\\n var(--color-gray-200) 75%\\n );\\n background-size: 200% 100%;\\n animation: skeleton-shimmer 1.5s ease-in-out infinite;\\n }\\n\\n @keyframes skeleton-shimmer {\\n 0% {\\n background-position: -200% 0;\\n }\\n 100% {\\n background-position: 200% 0;\\n }\\n }\\n\\n /* Respect user's motion preferences */\\n @media (prefers-reduced-motion: reduce) {\\n [data-nextjs-codeframe-skeleton-icon],\\n [data-nextjs-codeframe-skeleton-header-bar],\\n [data-nextjs-codeframe-skeleton-button],\\n [data-nextjs-codeframe-skeleton-line],\\n [data-nextjs-call-stack-count-skeleton],\\n [data-nextjs-call-stack-skeleton-bar] {\\n animation: none;\\n background: var(--color-gray-200);\\n }\\n }\\n\"],n||(n=e.slice(0)),Object.freeze(Object.defineProperties(e,{raw:{value:Object.freeze(n)}})));return ou=function(){return t},t}function od(){return(0,y.jsxs)(y.Fragment,{children:[(0,y.jsxs)(\"div\",{\"data-nextjs-codeframe-skeleton\":!0,children:[(0,y.jsxs)(\"div\",{\"data-nextjs-codeframe-skeleton-header\":!0,children:[(0,y.jsx)(\"div\",{\"data-nextjs-codeframe-skeleton-icon\":!0}),(0,y.jsx)(\"div\",{\"data-nextjs-codeframe-skeleton-line\":!0,\"data-nextjs-codeframe-skeleton-header-bar\":!0})]}),(0,y.jsxs)(\"div\",{\"data-nextjs-codeframe-skeleton-content\":!0,children:[(0,y.jsx)(\"div\",{\"data-nextjs-codeframe-skeleton-line\":!0,\"data-nextjs-codeframe-skeleton-line-1\":!0}),(0,y.jsx)(\"div\",{\"data-nextjs-codeframe-skeleton-line\":!0,\"data-nextjs-codeframe-skeleton-line-2\":!0}),(0,y.jsx)(\"div\",{\"data-nextjs-codeframe-skeleton-line\":!0,\"data-nextjs-codeframe-skeleton-line-3\":!0})]})]}),(0,y.jsx)(\"div\",{\"data-nextjs-call-stack-container\":!0,children:(0,y.jsxs)(\"div\",{\"data-nextjs-call-stack-header\":!0,children:[(0,y.jsxs)(\"p\",{\"data-nextjs-call-stack-title\":!0,children:[\"Call Stack\",\" \",(0,y.jsx)(\"span\",{\"data-nextjs-call-stack-count\":!0,\"data-nextjs-call-stack-count-skeleton\":!0})]}),(0,y.jsx)(\"button\",{\"data-nextjs-call-stack-ignored-list-toggle-button\":!0,\"data-nextjs-call-stack-ignored-list-toggle-button-skeleton\":!0,\"aria-hidden\":\"true\",children:(0,y.jsx)(\"div\",{\"data-nextjs-call-stack-skeleton-bar\":!0})})]})})]})}var of=ei(ou());function op(e,n){(null==n||n>e.length)&&(n=e.length);for(var t=0,r=Array(n);t<n;t++)r[t]=e[t];return r}function oh(e,n,t,r,o,a,i){try{var l=e[a](i),s=l.value}catch(e){t(e);return}l.done?n(s):Promise.resolve(s).then(r,o)}function og(e,n,t){return n in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t,e}function om(){var e,n,t=(e=[\"\\n [data-nextjs-issue-feedback-button-group] {\\n display: flex;\\n align-items: center;\\n border: 1px solid var(--color-gray-400);\\n border-radius: var(--rounded-full);\\n background: var(--color-background-100);\\n box-shadow: var(--shadow-small);\\n }\\n\\n [data-nextjs-issue-feedback-button-group] button {\\n height: 100%;\\n display: flex;\\n align-items: center;\\n justify-content: center;\\n }\\n\\n [data-nextjs-issue-feedback-button-group] button:first-child {\\n padding: 4px 3px 4px 5px;\\n border-radius: var(--rounded-full) 0 0 var(--rounded-full);\\n }\\n\\n [data-nextjs-issue-feedback-button-group] button:last-child {\\n padding: 4px 5px 4px 3px;\\n border-radius: 0 var(--rounded-full) var(--rounded-full) 0;\\n }\\n\\n [data-nextjs-issue-feedback-separator] {\\n width: 1px;\\n height: 100%;\\n background: var(--color-gray-400);\\n }\\n\"],n||(n=e.slice(0)),Object.freeze(Object.defineProperties(e,{raw:{value:Object.freeze(n)}})));return om=function(){return t},t}function ov(e){var n,t,r=e.errorCode,o=(n=(0,x.useState)({}),t=2,function(e){if(Array.isArray(e))return e}(n)||function(e,n){var t,r,o=null==e?null:\"undefined\"!=typeof Symbol&&e[Symbol.iterator]||e[\"@@iterator\"];if(null!=o){var a=[],i=!0,l=!1;try{for(o=o.call(e);!(i=(t=o.next()).done)&&(a.push(t.value),a.length!==n);i=!0);}catch(e){l=!0,r=e}finally{try{i||null==o.return||o.return()}finally{if(l)throw r}}return a}}(n,2)||function(e,n){if(e){if(\"string\"==typeof e)return op(e,n);var t=Object.prototype.toString.call(e).slice(8,-1);if(\"Object\"===t&&e.constructor&&(t=e.constructor.name),\"Map\"===t||\"Set\"===t)return Array.from(t);if(\"Arguments\"===t||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t))return op(e,n)}}(n,t)||function(){throw TypeError(\"Invalid attempt to destructure non-iterable instance.\\\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\")}()),a=o[0],i=o[1],l=a[r],s=false,c=(0,x.useCallback)(function(e){var n;return(n=function(){return function(e,n){var t,r,o,a={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]},i=Object.create((\"function\"==typeof Iterator?Iterator:Object).prototype);return i.next=l(0),i.throw=l(1),i.return=l(2),\"function\"==typeof Symbol&&(i[Symbol.iterator]=function(){return this}),i;function l(l){return function(s){var c=[l,s];if(t)throw TypeError(\"Generator is already executing.\");for(;i&&(i=0,c[0]&&(a=0)),a;)try{if(t=1,r&&(o=2&c[0]?r.return:c[0]?r.throw||((o=r.return)&&o.call(r),0):r.next)&&!(o=o.call(r,c[1])).done)return o;switch(r=0,o&&(c=[2&c[0],o.value]),c[0]){case 0:case 1:o=c;break;case 4:return a.label++,{value:c[1],done:!1};case 5:a.label++,r=c[1],c=[0];continue;case 7:c=a.ops.pop(),a.trys.pop();continue;default:if(!(o=(o=a.trys).length>0&&o[o.length-1])&&(6===c[0]||2===c[0])){a=0;continue}if(3===c[0]&&(!o||c[1]>o[0]&&c[1]<o[3])){a.label=c[1];break}if(6===c[0]&&a.label<o[1]){a.label=o[1],o=c;break}if(o&&a.label<o[2]){a.label=o[2],a.ops.push(c);break}o[2]&&a.ops.pop(),a.trys.pop();continue}c=n.call(e,a)}catch(e){c=[6,e],r=0}finally{t=o=0}if(5&c[0])throw c[1];return{value:c[0]?c[1]:void 0,done:!0}}}}(this,function(n){switch(n.label){case 0:i(function(n){var t,o;return t=function(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{},r=Object.keys(t);\"function\"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(t).filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.forEach(function(n){og(e,n,t[n])})}return e}({},n),o=null!=(o=og({},r,e))?o:{},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(o)):(function(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t.push.apply(t,r)}return t})(Object(o)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(o,e))}),t}),n.label=1;case 1:return n.trys.push([1,3,,4]),[4,fetch(\"\".concat( false||\"\",\"/__nextjs_error_feedback?\").concat(new URLSearchParams({errorCode:r,wasHelpful:e.toString()})))];case 2:return n.sent().ok||console.error(\"Failed to record feedback on the server.\"),[3,4];case 3:return console.error(\"Failed to record feedback:\",n.sent()),[3,4];case 4:return[2]}})},function(){var e=this,t=arguments;return new Promise(function(r,o){var a=n.apply(e,t);function i(e){oh(a,r,o,i,l,\"next\",e)}function l(e){oh(a,r,o,i,l,\"throw\",e)}i(void 0)})})()},[r]);return(0,y.jsxs)(\"div\",{\"data-nextjs-issue-feedback-button-group\":!0,children:[(0,y.jsx)(\"button\",{\"aria-disabled\":s?\"true\":void 0,\"aria-label\":\"Mark as helpful\",onClick:s?void 0:function(){return c(!0)},className:(0,eJ.cx)(\"feedback-button\",!0===l&&\"voted\"),title:s?\"Feedback disabled due to setting NEXT_TELEMETRY_DISABLED\":void 0,type:\"button\",children:(0,y.jsx)(nw,{\"aria-hidden\":\"true\"})}),(0,y.jsx)(\"div\",{\"data-nextjs-issue-feedback-separator\":!0}),(0,y.jsx)(\"button\",{\"aria-disabled\":s?\"true\":void 0,\"aria-label\":\"Mark as not helpful\",onClick:s?void 0:function(){return c(!1)},className:(0,eJ.cx)(\"feedback-button\",!1===l&&\"voted\"),title:s?\"Feedback disabled due to setting NEXT_TELEMETRY_DISABLED\":void 0,type:\"button\",children:(0,y.jsx)(nj,{\"aria-hidden\":\"true\",style:{translate:\"1px 1px\"}})})]})}var ob=ei(om());function oy(){var e,n,t=(e=[\"\\n [data-nextjs-devtools-panel-tab-issues-content-layout] {\\n flex: 1;\\n display: flex;\\n flex-direction: column;\\n overflow-y: auto;\\n min-height: 0;\\n padding: 14px;\\n }\\n\"],n||(n=e.slice(0)),Object.freeze(Object.defineProperties(e,{raw:{value:Object.freeze(n)}})));return oy=function(){return t},t}function ox(e){var n=e.error,t=e.errorType,r=e.message,o=e.debugInfo,a=e.children,i=e.errorCode,l=e.environmentName;return(0,y.jsxs)(\"div\",{\"data-nextjs-devtools-panel-tab-issues-content-layout\":!0,children:[(0,y.jsxs)(\"div\",{className:\"nextjs-container-errors-header\",children:[(0,y.jsxs)(\"div\",{className:\"nextjs__container_errors__error_title\",\"data-nextjs-error-code\":i,children:[(0,y.jsxs)(\"span\",{\"data-nextjs-error-label-group\":!0,children:[(0,y.jsx)(nL,{errorType:t}),l&&(0,y.jsx)(nK,{environmentName:l})]}),(0,y.jsx)(nx,{error:n,debugInfo:o,feedbackButton:i&&(0,y.jsx)(ov,{errorCode:i})})]}),(0,y.jsx)(nz,{errorMessage:r})]}),a]})}var ow=ei(oy());function oj(e){var n,t;return(0,y.jsx)(\"svg\",(n=function(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{},r=Object.keys(t);\"function\"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(t).filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.forEach(function(n){var r,o,a;r=e,o=n,a=t[n],o in r?Object.defineProperty(r,o,{value:a,enumerable:!0,configurable:!0,writable:!0}):r[o]=a})}return e}({width:\"12\",height:\"12\",viewBox:\"0 0 12 12\",fill:\"none\",xmlns:\"http://www.w3.org/2000/svg\"},e),t=t={children:(0,y.jsx)(\"path\",{fillRule:\"evenodd\",clipRule:\"evenodd\",d:\"M3.98071 1.125L1.125 3.98071L1.125 8.01929L3.98071 10.875H8.01929L10.875 8.01929V3.98071L8.01929 1.125H3.98071ZM3.82538 0C3.62647 0 3.4357 0.0790176 3.29505 0.21967L0.21967 3.29505C0.0790176 3.4357 0 3.62647 0 3.82538V8.17462C0 8.37353 0.0790178 8.5643 0.21967 8.70495L3.29505 11.7803C3.4357 11.921 3.62647 12 3.82538 12H8.17462C8.37353 12 8.5643 11.921 8.70495 11.7803L11.7803 8.70495C11.921 8.5643 12 8.37353 12 8.17462V3.82538C12 3.62647 11.921 3.4357 11.7803 3.29505L8.70495 0.21967C8.5643 0.0790177 8.37353 0 8.17462 0H3.82538ZM6.5625 2.8125V3.375V6V6.5625H5.4375V6V3.375V2.8125H6.5625ZM6 9C6.41421 9 6.75 8.66421 6.75 8.25C6.75 7.83579 6.41421 7.5 6 7.5C5.58579 7.5 5.25 7.83579 5.25 8.25C5.25 8.66421 5.58579 9 6 9Z\",fill:\"currentColor\"})},Object.getOwnPropertyDescriptors?Object.defineProperties(n,Object.getOwnPropertyDescriptors(t)):(function(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t.push.apply(t,r)}return t})(Object(t)).forEach(function(e){Object.defineProperty(n,e,Object.getOwnPropertyDescriptor(t,e))}),n))}function ok(){var e,n,t=(e=[\"\\n [data-nextjs-devtools-panel-tab-issues-empty] {\\n display: flex;\\n flex: 1;\\n padding: 12px;\\n min-height: 0;\\n }\\n\\n [data-nextjs-devtools-panel-tab-issues-empty-content] {\\n display: flex;\\n flex-direction: column;\\n align-items: center;\\n justify-content: center;\\n flex: 1;\\n border: 1px dashed var(--color-gray-alpha-500);\\n border-radius: 4px;\\n }\\n\\n [data-nextjs-devtools-panel-tab-issues-empty-icon] {\\n margin-bottom: 16px;\\n padding: 8px;\\n border: 1px solid var(--color-gray-alpha-400);\\n border-radius: 6px;\\n\\n background-color: var(--color-background-100);\\n display: flex;\\n align-items: center;\\n justify-content: center;\\n }\\n\\n [data-nextjs-devtools-panel-tab-issues-empty-title] {\\n color: var(--color-gray-1000);\\n font-size: 16px;\\n font-weight: 500;\\n line-height: var(--line-height-20);\\n }\\n\\n [data-nextjs-devtools-panel-tab-issues-empty-subtitle] {\\n color: var(--color-gray-900);\\n font-size: 14px;\\n line-height: var(--line-height-21);\\n }\\n\"],n||(n=e.slice(0)),Object.freeze(Object.defineProperties(e,{raw:{value:Object.freeze(n)}})));return ok=function(){return t},t}function oA(){return(0,y.jsx)(\"div\",{\"data-nextjs-devtools-panel-tab-issues-empty\":!0,children:(0,y.jsxs)(\"div\",{\"data-nextjs-devtools-panel-tab-issues-empty-content\":!0,children:[(0,y.jsx)(\"div\",{\"data-nextjs-devtools-panel-tab-issues-empty-icon\":!0,children:(0,y.jsx)(oj,{width:16,height:16})}),(0,y.jsx)(\"h3\",{\"data-nextjs-devtools-panel-tab-issues-empty-title\":!0,children:\"No Issues Found\"}),(0,y.jsx)(\"p\",{\"data-nextjs-devtools-panel-tab-issues-empty-subtitle\":!0,children:\"Issues will appear here when they occur.\"})]})})}var oO=ei(ok());function oC(e,n){(null==n||n>e.length)&&(n=e.length);for(var t=0,r=Array(n);t<n;t++)r[t]=e[t];return r}function oS(){var e,n,t=(e=[\"\"],n||(n=e.slice(0)),Object.freeze(Object.defineProperties(e,{raw:{value:Object.freeze(n)}})));return oS=function(){return t},t}function oE(e){var n=e.notes,t=e.buildError,r=e.hydrationWarning,o=e.errorDetails,a=e.activeError,i=e.errorType,l=e.debugInfo,s=e.errorCode;return t?(0,y.jsx)(oz,{message:t,debugInfo:l}):(0,y.jsx)(o_,{notes:n,hydrationWarning:r,errorDetails:o,activeError:a,errorType:i,debugInfo:l,errorCode:s})}function o_(e){var n=e.notes,t=e.hydrationWarning,r=e.errorDetails,o=e.activeError,a=e.errorType,i=e.debugInfo,l=e.errorCode;return o&&a?(0,y.jsxs)(ox,{error:o.error,errorType:a,message:o.error.message,debugInfo:i,errorCode:l,environmentName:o.error.environmentName,children:[(0,y.jsxs)(\"div\",{className:\"error-overlay-notes-container\",children:[n?(0,y.jsx)(y.Fragment,{children:(0,y.jsx)(\"p\",{id:\"nextjs__container_errors__notes\",className:\"nextjs__container_errors__notes\",children:n})}):null,t?(0,y.jsx)(\"p\",{id:\"nextjs__container_errors__link\",className:\"nextjs__container_errors__link\",children:(0,y.jsx)(eb,{text:\"See more info here: \".concat(np)})}):null]}),(null==r?void 0:r.reactOutputComponentDiff)?(0,y.jsx)(th,{reactOutputComponentDiff:r.reactOutputComponentDiff||\"\"}):null,(0,y.jsx)(x.Suspense,{fallback:(0,y.jsx)(od,{}),children:(0,y.jsx)(oP,{error:o},o.id.toString())})]}):(0,y.jsx)(oA,{})}function oP(e){var n,t,r=e.error,o=(n=(0,x.useState)(!1),t=2,function(e){if(Array.isArray(e))return e}(n)||function(e,n){var t,r,o=null==e?null:\"undefined\"!=typeof Symbol&&e[Symbol.iterator]||e[\"@@iterator\"];if(null!=o){var a=[],i=!0,l=!1;try{for(o=o.call(e);!(i=(t=o.next()).done)&&(a.push(t.value),a.length!==n);i=!0);}catch(e){l=!0,r=e}finally{try{i||null==o.return||o.return()}finally{if(l)throw r}}return a}}(n,2)||function(e,n){if(e){if(\"string\"==typeof e)return oC(e,n);var t=Object.prototype.toString.call(e).slice(8,-1);if(\"Object\"===t&&e.constructor&&(t=e.constructor.name),\"Map\"===t||\"Set\"===t)return Array.from(t);if(\"Arguments\"===t||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t))return oC(e,n)}}(n,t)||function(){throw TypeError(\"Invalid attempt to destructure non-iterable instance.\\\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\")}()),a=o[0],i=o[1],l=tj(r),s=(0,x.useMemo)(function(){return l.reduce(function(e,n){return e+ +!!n.ignored},0)},[l]),c=(0,x.useMemo)(function(){var e,n=l.findIndex(function(e){return!e.ignored&&!!e.originalCodeFrame&&!!e.originalStackFrame});return null!=(e=l[n])?e:null},[l]);return(0,y.jsxs)(y.Fragment,{children:[c&&c.originalStackFrame&&c.originalCodeFrame&&(0,y.jsx)(eq,{stackFrame:c.originalStackFrame,codeFrame:c.originalCodeFrame}),l.length>0&&(0,y.jsx)(tl,{frames:l,isIgnoreListOpen:a,onToggleIgnoreList:function(){return i(!a)},ignoredFramesTally:s})]})}function oz(e){var n=e.message,t=e.debugInfo,r=Error(n),o=(0,x.useMemo)(function(){return tt(n)||\"Failed to compile\"},[n]);return(0,y.jsx)(ox,{errorType:\"Build Error\",error:r,message:o,debugInfo:t,children:(0,y.jsx)(tn,{content:n})})}var oL=ei(oS());function oT(){var e,n,t=(e=[\"\\n [data-nextjs-devtools-panel-tab-issues] {\\n display: flex;\\n flex: 1;\\n min-height: 0;\\n }\\n\"],n||(n=e.slice(0)),Object.freeze(Object.defineProperties(e,{raw:{value:Object.freeze(n)}})));return oT=function(){return t},t}function oR(e){var n=e.debugInfo,t=e.runtimeErrors,r=e.getSquashedHydrationErrorDetails,o=e.buildError,a=tS({runtimeErrors:t,getSquashedHydrationErrorDetails:r}),i=a.errorCode,l=a.errorType,s=a.hydrationWarning,c=a.activeError,u=a.activeIdx,d=a.setActiveIndex,f=a.notes,p=a.errorDetails;return(0,y.jsxs)(\"div\",{\"data-nextjs-devtools-panel-tab-issues\":!0,children:[o?null:(0,y.jsx)(oi,{runtimeErrors:t,errorType:l,activeIdx:u,setActiveIndex:d}),(0,y.jsx)(oE,{buildError:o,notes:f,hydrationWarning:s,errorDetails:p,activeError:c,errorType:l,debugInfo:n,errorCode:i})]})}var oN=ei(oT()),oD= false?0:function(){return null};function oB(e){var n=e.routerType,t=e.page;return(0,y.jsx)(oD,{isAppRouter:\"app\"===n,page:t})}function oM(e){var n=e.routerType,t=e.page;return(0,y.jsx)(oB,{routerType:n,page:t})}function oI(e){var n=e.activeTab,t=e.devToolsPosition,r=e.scale,o=e.routerType,a=e.handlePositionChange,i=e.handleScaleChange,l=e.debugInfo,s=e.runtimeErrors,c=e.getSquashedHydrationErrorDetails,u=e.buildError,d=e.page;switch(n){case\"settings\":return(0,y.jsx)(oe,{devToolsPosition:t,scale:r,handlePositionChange:a,handleScaleChange:i});case\"route\":return(0,y.jsx)(oM,{routerType:o,page:d});case\"issues\":return(0,y.jsx)(oR,{debugInfo:l,runtimeErrors:s,getSquashedHydrationErrorDetails:c,buildError:u});default:return null}}function oH(e){var n,t;return(0,y.jsx)(\"svg\",(n=function(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{},r=Object.keys(t);\"function\"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(t).filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.forEach(function(n){var r,o,a;r=e,o=n,a=t[n],o in r?Object.defineProperty(r,o,{value:a,enumerable:!0,configurable:!0,writable:!0}):r[o]=a})}return e}({width:\"12\",height:\"12\",viewBox:\"0 0 14 14\",fill:\"none\",xmlns:\"http://www.w3.org/2000/svg\"},e),t=t={children:(0,y.jsx)(\"path\",{fillRule:\"evenodd\",clipRule:\"evenodd\",d:\"M3.08889 11.8384L2.62486 12.3024L1.69678 11.3744L2.16082 10.9103L6.07178 6.99937L2.16082 3.08841L1.69678 2.62437L2.62486 1.69629L3.08889 2.16033L6.99986 6.07129L10.9108 2.16033L11.3749 1.69629L12.3029 2.62437L11.8389 3.08841L7.92793 6.99937L11.8389 10.9103L12.3029 11.3744L11.3749 12.3024L10.9108 11.8384L6.99986 7.92744L3.08889 11.8384Z\",fill:\"currentColor\"})},Object.getOwnPropertyDescriptors?Object.defineProperties(n,Object.getOwnPropertyDescriptors(t)):(function(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t.push.apply(t,r)}return t})(Object(t)).forEach(function(e){Object.defineProperty(n,e,Object.getOwnPropertyDescriptor(t,e))}),n))}function oF(e,n){(null==n||n>e.length)&&(n=e.length);for(var t=0,r=Array(n);t<n;t++)r[t]=e[t];return r}function oU(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{},r=Object.keys(t);\"function\"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(t).filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.forEach(function(n){var r,o,a;r=e,o=n,a=t[n],o in r?Object.defineProperty(r,o,{value:a,enumerable:!0,configurable:!0,writable:!0}):r[o]=a})}return e}function oV(e,n){return n=null!=n?n:{},Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):(function(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t.push.apply(t,r)}return t})(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}),e}function oq(e,n){if(null==e)return{};var t,r,o=function(e,n){if(null==e)return{};var t,r,o={},a=Object.keys(e);for(r=0;r<a.length;r++)t=a[r],n.indexOf(t)>=0||(o[t]=e[t]);return o}(e,n);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r<a.length;r++)t=a[r],!(n.indexOf(t)>=0)&&Object.prototype.propertyIsEnumerable.call(e,t)&&(o[t]=e[t])}return o}function oW(e,n){return function(e){if(Array.isArray(e))return e}(e)||function(e,n){var t,r,o=null==e?null:\"undefined\"!=typeof Symbol&&e[Symbol.iterator]||e[\"@@iterator\"];if(null!=o){var a=[],i=!0,l=!1;try{for(o=o.call(e);!(i=(t=o.next()).done)&&(a.push(t.value),!n||a.length!==n);i=!0);}catch(e){l=!0,r=e}finally{try{i||null==o.return||o.return()}finally{if(l)throw r}}return a}}(e,n)||function(e,n){if(e){if(\"string\"==typeof e)return oF(e,n);var t=Object.prototype.toString.call(e).slice(8,-1);if(\"Object\"===t&&e.constructor&&(t=e.constructor.name),\"Map\"===t||\"Set\"===t)return Array.from(t);if(\"Arguments\"===t||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t))return oF(e,n)}}(e,n)||function(){throw TypeError(\"Invalid attempt to destructure non-iterable instance.\\\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\")}()}function o$(){var e,n,t=(e=[\"\\n [data-next-badge-root] {\\n --timing: cubic-bezier(0.23, 0.88, 0.26, 0.92);\\n --duration-long: 250ms;\\n --color-outer-border: #171717;\\n --color-inner-border: hsla(0, 0%, 100%, 0.14);\\n --color-hover-alpha-subtle: hsla(0, 0%, 100%, 0.13);\\n --color-hover-alpha-error: hsla(0, 0%, 100%, 0.2);\\n --color-hover-alpha-error-2: hsla(0, 0%, 100%, 0.25);\\n --mark-size: calc(var(--size) - var(--size-2) * 2);\\n\\n --focus-color: var(--color-blue-800);\\n --focus-ring: 2px solid var(--focus-color);\\n\\n &:has([data-next-badge][data-error='true']) {\\n --focus-color: #fff;\\n }\\n }\\n\\n [data-disabled-icon] {\\n display: flex;\\n align-items: center;\\n justify-content: center;\\n padding-right: 4px;\\n }\\n\\n [data-next-badge] {\\n -webkit-font-smoothing: antialiased;\\n width: var(--size);\\n height: var(--size);\\n display: flex;\\n align-items: center;\\n position: relative;\\n background: rgba(0, 0, 0, 0.8);\\n box-shadow:\\n 0 0 0 1px var(--color-outer-border),\\n inset 0 0 0 1px var(--color-inner-border),\\n 0px 16px 32px -8px rgba(0, 0, 0, 0.24);\\n backdrop-filter: blur(48px);\\n border-radius: var(--rounded-full);\\n user-select: none;\\n cursor: pointer;\\n scale: 1;\\n overflow: hidden;\\n will-change: scale, box-shadow, width, background;\\n transition:\\n scale var(--duration-short) var(--timing),\\n width var(--duration-long) var(--timing),\\n box-shadow var(--duration-long) var(--timing),\\n background var(--duration-short) ease;\\n\\n &:active[data-error='false'] {\\n scale: 0.95;\\n }\\n\\n &[data-animate='true']:not(:hover) {\\n scale: 1.02;\\n }\\n\\n &[data-error='false']:has([data-next-mark]:focus-visible) {\\n outline: var(--focus-ring);\\n outline-offset: 3px;\\n }\\n\\n &[data-error='true'] {\\n background: #ca2a30;\\n --color-inner-border: #e5484d;\\n\\n [data-next-mark] {\\n background: var(--color-hover-alpha-error);\\n outline-offset: 0px;\\n\\n &:focus-visible {\\n outline: var(--focus-ring);\\n outline-offset: -1px;\\n }\\n\\n &:hover {\\n background: var(--color-hover-alpha-error-2);\\n }\\n }\\n }\\n\\n &[data-error-expanded='false'][data-error='true'] ~ [data-dot] {\\n scale: 1;\\n }\\n\\n > div {\\n display: flex;\\n }\\n }\\n\\n [data-issues-collapse]:focus-visible {\\n outline: var(--focus-ring);\\n }\\n\\n [data-issues]:has([data-issues-open]:focus-visible) {\\n outline: var(--focus-ring);\\n outline-offset: -1px;\\n }\\n\\n [data-dot] {\\n content: '';\\n width: var(--size-8);\\n height: var(--size-8);\\n background: #fff;\\n box-shadow: 0 0 0 1px var(--color-outer-border);\\n border-radius: 50%;\\n position: absolute;\\n top: 2px;\\n right: 0px;\\n scale: 0;\\n pointer-events: none;\\n transition: scale 200ms var(--timing);\\n transition-delay: var(--duration-short);\\n }\\n\\n [data-issues] {\\n --padding-left: 8px;\\n display: flex;\\n gap: 2px;\\n align-items: center;\\n padding-left: 8px;\\n padding-right: 8px;\\n height: var(--size-32);\\n margin-right: 2px;\\n border-radius: var(--rounded-full);\\n transition: background var(--duration-short) ease;\\n\\n &:has([data-issues-open]:hover) {\\n background: var(--color-hover-alpha-error);\\n }\\n\\n &:has([data-issues-collapse]) {\\n padding-right: calc(var(--padding-left) / 2);\\n }\\n\\n [data-cross] {\\n translate: 0px -1px;\\n }\\n }\\n\\n [data-issues-open] {\\n font-size: var(--size-13);\\n color: white;\\n width: fit-content;\\n height: 100%;\\n display: flex;\\n gap: 2px;\\n align-items: center;\\n margin: 0;\\n line-height: var(--size-36);\\n font-weight: 500;\\n z-index: 2;\\n white-space: nowrap;\\n\\n &:focus-visible {\\n outline: 0;\\n }\\n }\\n\\n [data-issues-collapse] {\\n width: var(--size-24);\\n height: var(--size-24);\\n border-radius: var(--rounded-full);\\n transition: background var(--duration-short) ease;\\n\\n &:hover {\\n background: var(--color-hover-alpha-error);\\n }\\n }\\n\\n [data-cross] {\\n color: #fff;\\n width: var(--size-12);\\n height: var(--size-12);\\n }\\n\\n [data-next-mark] {\\n width: var(--mark-size);\\n height: var(--mark-size);\\n margin: 0 2px;\\n display: flex;\\n align-items: center;\\n border-radius: var(--rounded-full);\\n transition: background var(--duration-long) var(--timing);\\n\\n &:focus-visible {\\n outline: 0;\\n }\\n\\n &:hover {\\n background: var(--color-hover-alpha-subtle);\\n }\\n\\n svg {\\n flex-shrink: 0;\\n width: var(--size-40);\\n height: var(--size-40);\\n }\\n }\\n\\n [data-issues-count-animation] {\\n display: grid;\\n place-items: center center;\\n font-variant-numeric: tabular-nums;\\n\\n &[data-animate='false'] {\\n [data-issues-count-exit],\\n [data-issues-count-enter] {\\n animation-duration: 0ms;\\n }\\n }\\n\\n > * {\\n grid-area: 1 / 1;\\n }\\n\\n [data-issues-count-exit] {\\n animation: fadeOut 300ms var(--timing) forwards;\\n }\\n\\n [data-issues-count-enter] {\\n animation: fadeIn 300ms var(--timing) forwards;\\n }\\n }\\n\\n [data-issues-count-plural] {\\n display: inline-block;\\n &[data-animate='true'] {\\n animation: fadeIn 300ms var(--timing) forwards;\\n }\\n }\\n\\n .path0 {\\n animation: draw0 1.5s ease-in-out infinite;\\n }\\n\\n .path1 {\\n animation: draw1 1.5s ease-out infinite;\\n animation-delay: 0.3s;\\n }\\n\\n .paused {\\n stroke-dashoffset: 0;\\n }\\n\\n @keyframes fadeIn {\\n 0% {\\n opacity: 0;\\n filter: blur(2px);\\n transform: translateY(8px);\\n }\\n 100% {\\n opacity: 1;\\n filter: blur(0px);\\n transform: translateY(0);\\n }\\n }\\n\\n @keyframes fadeOut {\\n 0% {\\n opacity: 1;\\n filter: blur(0px);\\n transform: translateY(0);\\n }\\n 100% {\\n opacity: 0;\\n transform: translateY(-12px);\\n filter: blur(2px);\\n }\\n }\\n\\n @keyframes draw0 {\\n 0%,\\n 25% {\\n stroke-dashoffset: -29.6;\\n }\\n 25%,\\n 50% {\\n stroke-dashoffset: 0;\\n }\\n 50%,\\n 75% {\\n stroke-dashoffset: 0;\\n }\\n 75%,\\n 100% {\\n stroke-dashoffset: 29.6;\\n }\\n }\\n\\n @keyframes draw1 {\\n 0%,\\n 20% {\\n stroke-dashoffset: -11.6;\\n }\\n 20%,\\n 50% {\\n stroke-dashoffset: 0;\\n }\\n 50%,\\n 75% {\\n stroke-dashoffset: 0;\\n }\\n 75%,\\n 100% {\\n stroke-dashoffset: 11.6;\\n }\\n }\\n\\n @media (prefers-reduced-motion) {\\n [data-issues-count-exit],\\n [data-issues-count-enter],\\n [data-issues-count-plural] {\\n animation-duration: 0ms !important;\\n }\\n }\\n \"],n||(n=e.slice(0)),Object.freeze(Object.defineProperties(e,{raw:{value:Object.freeze(n)}})));return o$=function(){return t},t}function oZ(e){var n=e.disabled,t=e.issueCount,r=e.isDevBuilding,o=e.isDevRendering,a=e.isBuildError,i=e.onTriggerClick,l=e.toggleErrorOverlay,s=e.scale,c=oq(e,[\"disabled\",\"issueCount\",\"isDevBuilding\",\"isDevRendering\",\"isBuildError\",\"onTriggerClick\",\"toggleErrorOverlay\",\"scale\"]),u=t>0,d=oW((0,x.useState)(u),2),f=d[0],p=d[1],h=oW((0,x.useState)(!1),2),g=h[0],m=h[1],v=tM(t,150),b=(0,x.useRef)(null),w=(0,x.useRef)(null),j=tF(w),k=tD(r||o),A=f||n;return(0,x.useEffect)(function(){p(u)},[u]),(0,y.jsxs)(\"div\",{\"data-next-badge-root\":!0,style:{\"--size\":\"\".concat(36/(void 0===s?1:s),\"px\"),\"--duration-short\":\"\".concat(150,\"ms\"),display:n&&(!u||g)?\"none\":\"block\"},children:[(0,y.jsx)(\"style\",{children:ei(o$())}),(0,y.jsx)(\"div\",{\"data-next-badge\":!0,\"data-error\":u,\"data-error-expanded\":A,\"data-animate\":v,style:{width:0===j?\"auto\":j},children:(0,y.jsxs)(\"div\",{ref:w,children:[!n&&(0,y.jsx)(\"button\",oV(oU({ref:b,\"data-next-mark\":!0,\"data-next-mark-loading\":k,onClick:i},c),{children:(0,y.jsx)(oX,{isLoading:k,isDevBuilding:r})})),A&&(0,y.jsxs)(\"div\",{\"data-issues\":!0,children:[(0,y.jsxs)(\"button\",{\"data-issues-open\":!0,\"aria-label\":\"Open issues overlay\",onClick:l,children:[n&&(0,y.jsx)(\"div\",{\"data-disabled-icon\":!0,children:(0,y.jsx)(oj,{})}),(0,y.jsx)(oY,{animate:v,\"data-issues-count-animation\":!0,children:t},t),\" \",(0,y.jsxs)(\"div\",{children:[\"Issue\",t>1&&(0,y.jsx)(\"span\",{\"aria-hidden\":!0,\"data-issues-count-plural\":!0,\"data-animate\":v&&2===t,children:\"s\"})]})]}),!a&&(0,y.jsx)(\"button\",{\"data-issues-collapse\":!0,\"aria-label\":\"Collapse issues badge\",onClick:function(){var e;n?m(!0):p(!1),null==(e=b.current)||e.focus()},children:(0,y.jsx)(oH,{\"data-cross\":!0})})]})]})}),(0,y.jsx)(\"div\",{\"aria-hidden\":!0,\"data-dot\":!0})]})}function oY(e){var n=e.children,t=e.animate,r=oq(e,[\"children\",\"animate\"]);return(0,y.jsxs)(\"div\",oV(oU({},r),{\"data-animate\":void 0===t||t,children:[(0,y.jsx)(\"div\",{\"aria-hidden\":!0,\"data-issues-count-exit\":!0,children:n-1}),(0,y.jsx)(\"div\",{\"data-issues-count\":!0,\"data-issues-count-enter\":!0,children:n})]}))}function oX(e){var n=e.isLoading,t=e.isDevBuilding?\"rgba(255,255,255,0.7)\":\"white\";return(0,y.jsxs)(\"svg\",{width:\"40\",height:\"40\",viewBox:\"0 0 40 40\",fill:\"none\",\"data-next-mark-loading\":n,children:[(0,y.jsxs)(\"g\",{transform:\"translate(8.5, 13)\",children:[(0,y.jsx)(\"path\",{className:n?\"path0\":\"paused\",d:\"M13.3 15.2 L2.34 1 V12.6\",fill:\"none\",stroke:\"url(#next_logo_paint0_linear_1357_10853)\",strokeWidth:\"1.86\",mask:\"url(#next_logo_mask0)\",strokeDasharray:\"29.6\",strokeDashoffset:\"29.6\"}),(0,y.jsx)(\"path\",{className:n?\"path1\":\"paused\",d:\"M11.825 1.5 V13.1\",strokeWidth:\"1.86\",stroke:\"url(#next_logo_paint1_linear_1357_10853)\",strokeDasharray:\"11.6\",strokeDashoffset:\"11.6\"})]}),(0,y.jsxs)(\"defs\",{children:[(0,y.jsxs)(\"linearGradient\",{id:\"next_logo_paint0_linear_1357_10853\",x1:\"9.95555\",y1:\"11.1226\",x2:\"15.4778\",y2:\"17.9671\",gradientUnits:\"userSpaceOnUse\",children:[(0,y.jsx)(\"stop\",{stopColor:t}),(0,y.jsx)(\"stop\",{offset:\"0.604072\",stopColor:t,stopOpacity:\"0\"}),(0,y.jsx)(\"stop\",{offset:\"1\",stopColor:t,stopOpacity:\"0\"})]}),(0,y.jsxs)(\"linearGradient\",{id:\"next_logo_paint1_linear_1357_10853\",x1:\"11.8222\",y1:\"1.40039\",x2:\"11.791\",y2:\"9.62542\",gradientUnits:\"userSpaceOnUse\",children:[(0,y.jsx)(\"stop\",{stopColor:t}),(0,y.jsx)(\"stop\",{offset:\"1\",stopColor:t,stopOpacity:\"0\"})]}),(0,y.jsxs)(\"mask\",{id:\"next_logo_mask0\",children:[(0,y.jsx)(\"rect\",{width:\"100%\",height:\"100%\",fill:\"white\"}),(0,y.jsx)(\"rect\",{width:\"5\",height:\"1.5\",fill:\"black\"})]})]})]})}function oK(e,n){(null==n||n>e.length)&&(n=e.length);for(var t=0,r=Array(n);t<n;t++)r[t]=e[t];return r}function oQ(e,n,t){return n in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t,e}function oG(e,n){return function(e){if(Array.isArray(e))return e}(e)||function(e,n){var t,r,o=null==e?null:\"undefined\"!=typeof Symbol&&e[Symbol.iterator]||e[\"@@iterator\"];if(null!=o){var a=[],i=!0,l=!1;try{for(o=o.call(e);!(i=(t=o.next()).done)&&(a.push(t.value),!n||a.length!==n);i=!0);}catch(e){l=!0,r=e}finally{try{i||null==o.return||o.return()}finally{if(l)throw r}}return a}}(e,n)||function(e,n){if(e){if(\"string\"==typeof e)return oK(e,n);var t=Object.prototype.toString.call(e).slice(8,-1);if(\"Object\"===t&&e.constructor&&(t=e.constructor.name),\"Map\"===t||\"Set\"===t)return Array.from(t);if(\"Arguments\"===t||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t))return oK(e,n)}}(e,n)||function(){throw TypeError(\"Invalid attempt to destructure non-iterable instance.\\\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\")}()}function oJ(e){var n,t=e.state,r=e.dispatch,o=e.errorCount,a=e.isBuildError,i=oG((0,x.useState)(!1),2),l=i[0],s=i[1],c=oG(t.devToolsPosition.split(\"-\",2),2),u=c[0],d=c[1];return(0,y.jsx)(tR,{\"data-nextjs-toast\":!0,style:(oQ(n={\"--animate-out-duration-ms\":\"\".concat(nQ.K7,\"ms\"),\"--animate-out-timing-function\":nQ.uD,boxShadow:\"none\"},u,\"\".concat(20,\"px\")),oQ(n,d,\"\".concat(20,\"px\")),oQ(n,\"visibility\",t.isDevToolsPanelOpen||t.isErrorOverlayOpen?\"hidden\":\"visible\"),n),children:(0,y.jsx)(rN,{padding:20,onDragStart:function(){return s(!1)},position:t.devToolsPosition,setPosition:function(e){r({type:Y,devToolsPosition:e}),localStorage.setItem(G,e)},children:(0,y.jsx)(oZ,{\"aria-haspopup\":\"menu\",\"aria-expanded\":l,\"aria-controls\":\"nextjs-dev-tools-menu\",\"aria-label\":\"\".concat(l?\"Close\":\"Open\",\" Next.js Dev Tools\"),\"data-nextjs-dev-tools-button\":!0,disabled:t.disableDevIndicator,issueCount:o,onTriggerClick:function(){r({type:Z})},toggleErrorOverlay:function(){r({type:M}),r({type:W})},isDevBuilding:t.buildingIndicator,isDevRendering:t.renderingIndicator,isBuildError:a,scale:t.scale})})})}function o0(e){var n,t;return(0,y.jsx)(\"svg\",(n=function(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{},r=Object.keys(t);\"function\"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(t).filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.forEach(function(n){var r,o,a;r=e,o=n,a=t[n],o in r?Object.defineProperty(r,o,{value:a,enumerable:!0,configurable:!0,writable:!0}):r[o]=a})}return e}({xmlns:\"http://www.w3.org/2000/svg\",width:\"16\",height:\"16\",viewBox:\"0 0 16 16\",fill:\"none\"},e),t=t={children:(0,y.jsx)(\"path\",{d:\"M15 14C15 14.5523 14.5523 15 14 15H10V13.5H13.5V10H15V14ZM2.5 13.499H6V14.999H2C1.44772 14.999 1 14.5513 1 13.999V9.99902H2.5V13.499ZM6 2.5H2.5V6H1V2C1 1.44772 1.44772 1 2 1H6V2.5ZM14 1C14.5523 1 15 1.44772 15 2V6H13.5V2.5H10V1H14Z\",fill:\"currentColor\"})},Object.getOwnPropertyDescriptors?Object.defineProperties(n,Object.getOwnPropertyDescriptors(t)):(function(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t.push.apply(t,r)}return t})(Object(t)).forEach(function(e){Object.defineProperty(n,e,Object.getOwnPropertyDescriptor(t,e))}),n))}function o1(e){var n,t;return(0,y.jsx)(\"svg\",(n=function(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{},r=Object.keys(t);\"function\"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(t).filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.forEach(function(n){var r,o,a;r=e,o=n,a=t[n],o in r?Object.defineProperty(r,o,{value:a,enumerable:!0,configurable:!0,writable:!0}):r[o]=a})}return e}({xmlns:\"http://www.w3.org/2000/svg\",width:\"16\",height:\"16\",viewBox:\"0 0 16 16\",fill:\"none\"},e),t=t={children:(0,y.jsx)(\"path\",{fillRule:\"evenodd\",clipRule:\"evenodd\",d:\"M1 6V4.5H4.5V1H6V5C6 5.55228 5.55228 6 5 6H1ZM11.5 1H10V5C10 5.55228 10.4477 6 11 6H15V4.5H11.5V1ZM15.04 11.5V10H11C10.4477 10 10 10.4477 10 11V15H11.5V11.5H15.04ZM4.5 15H6V11C6 10.4477 5.55228 10 5 10H1V11.5H4.5V15Z\",fill:\"currentColor\"})},Object.getOwnPropertyDescriptors?Object.defineProperties(n,Object.getOwnPropertyDescriptors(t)):(function(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t.push.apply(t,r)}return t})(Object(t)).forEach(function(e){Object.defineProperty(n,e,Object.getOwnPropertyDescriptor(t,e))}),n))}function o2(e,n){(null==n||n>e.length)&&(n=e.length);for(var t=0,r=Array(n);t<n;t++)r[t]=e[t];return r}var o4=\"nextjs-devtools-dimensions\",o5=(0,x.createContext)(null),o3=function(e){var n=.95*window.innerWidth,t=.95*window.innerHeight;return{width:Math.min(n,Math.max(e.minWidth,e.width)),height:Math.min(t,Math.max(e.minHeight,e.height))}},o6=function(){var e=localStorage.getItem(o4);if(!e)return null;try{var n,t=JSON.parse(e);if((void 0===t?\"undefined\":(n=t)&&\"undefined\"!=typeof Symbol&&n.constructor===Symbol?\"symbol\":typeof n)==\"object\"&&null!==t&&\"number\"==typeof t.width&&\"number\"==typeof t.height)return{width:t.width,height:t.height};return null}catch(e){return localStorage.removeItem(o4),null}},o9=function(e){var n,t,r,o,a=e.value,i=e.children,l=null!=(r=a.minWidth)?r:100,s=null!=(o=a.minHeight)?o:80,c=(n=(0,x.useState)(null),t=2,function(e){if(Array.isArray(e))return e}(n)||function(e,n){var t,r,o=null==e?null:\"undefined\"!=typeof Symbol&&e[Symbol.iterator]||e[\"@@iterator\"];if(null!=o){var a=[],i=!0,l=!1;try{for(o=o.call(e);!(i=(t=o.next()).done)&&(a.push(t.value),a.length!==n);i=!0);}catch(e){l=!0,r=e}finally{try{i||null==o.return||o.return()}finally{if(l)throw r}}return a}}(n,2)||function(e,n){if(e){if(\"string\"==typeof e)return o2(e,n);var t=Object.prototype.toString.call(e).slice(8,-1);if(\"Object\"===t&&e.constructor&&(t=e.constructor.name),\"Map\"===t||\"Set\"===t)return Array.from(t);if(\"Arguments\"===t||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t))return o2(e,n)}}(n,t)||function(){throw TypeError(\"Invalid attempt to destructure non-iterable instance.\\\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\")}()),u=c[0],d=c[1];return(0,x.useLayoutEffect)(function(){var e=function(){if(a.resizeRef.current){var e=o6();if(e){var n,t,r=o3((n=function(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{},r=Object.keys(t);\"function\"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(t).filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.forEach(function(n){var r,o,a;r=e,o=n,a=t[n],o in r?Object.defineProperty(r,o,{value:a,enumerable:!0,configurable:!0,writable:!0}):r[o]=a})}return e}({},e),t=t={minWidth:null!=l?l:100,minHeight:null!=s?s:80},Object.getOwnPropertyDescriptors?Object.defineProperties(n,Object.getOwnPropertyDescriptors(t)):(function(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t.push.apply(t,r)}return t})(Object(t)).forEach(function(e){Object.defineProperty(n,e,Object.getOwnPropertyDescriptor(t,e))}),n)),o=r.height,i=r.width;a.resizeRef.current.style.width=\"\".concat(i,\"px\"),a.resizeRef.current.style.height=\"\".concat(o,\"px\")}}};return e(),window.addEventListener(\"resize\",e),function(){return window.removeEventListener(\"resize\",e)}},[a.resizeRef,l,s]),(0,y.jsx)(o5.Provider,{value:{resizeRef:a.resizeRef,minWidth:l,minHeight:s,devToolsPosition:a.devToolsPosition,draggingDirection:u,setDraggingDirection:d},children:i})},o8=function(){var e=(0,x.useContext)(o5);if(!e)throw Error(\"useResize must be used within a Resize provider\");return e},o7=__nested_webpack_require_381207__(\"../../node_modules/.pnpm/css-loader@7.1.2_@rspack+core@1.4.5_@swc+helpers@0.5.15__webpack@5.98.0_@swc+core@1.11.24_@sw_wm7ee5ic4mofrhisudwon4qpq4/node_modules/css-loader/dist/cjs.js!./src/next-devtools/dev-overlay/components/devtools-panel/resize/resize-handle.css\"),ae={};function an(e,n){(null==n||n>e.length)&&(n=e.length);for(var t=0,r=Array(n);t<n;t++)r[t]=e[t];return r}ae.styleTagTransform=h(),ae.setAttributes=u(),ae.insert=s(),ae.domAPI=i(),ae.insertStyleElement=f(),o()(o7.Z,ae),o7.Z&&o7.Z.locals&&o7.Z.locals;var at=function(e){var n,t,r=e.direction,o=o8(),a=o.resizeRef,i=o.minWidth,l=o.minHeight,s=o.devToolsPosition,c=o.draggingDirection,u=o.setDraggingDirection,d=(n=(0,x.useState)({top:0,right:0,bottom:0,left:0}),t=2,function(e){if(Array.isArray(e))return e}(n)||function(e,n){var t,r,o=null==e?null:\"undefined\"!=typeof Symbol&&e[Symbol.iterator]||e[\"@@iterator\"];if(null!=o){var a=[],i=!0,l=!1;try{for(o=o.call(e);!(i=(t=o.next()).done)&&(a.push(t.value),a.length!==n);i=!0);}catch(e){l=!0,r=e}finally{try{i||null==o.return||o.return()}finally{if(l)throw r}}return a}}(n,2)||function(e,n){if(e){if(\"string\"==typeof e)return an(e,n);var t=Object.prototype.toString.call(e).slice(8,-1);if(\"Object\"===t&&e.constructor&&(t=e.constructor.name),\"Map\"===t||\"Set\"===t)return Array.from(t);if(\"Arguments\"===t||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t))return an(e,n)}}(n,t)||function(){throw TypeError(\"Invalid attempt to destructure non-iterable instance.\\\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\")}()),f=d[0],p=d[1];if((0,x.useLayoutEffect)(function(){if(a.current){var e=a.current,n=window.getComputedStyle(e);p({top:parseFloat(n.borderTopWidth)||0,right:parseFloat(n.borderRightWidth)||0,bottom:parseFloat(n.borderBottomWidth)||0,left:parseFloat(n.borderLeftWidth)||0})}},[a]),!(!s.split(\"-\").includes(r)&&(!r.includes(\"-\")||r===function(e){switch(e){case\"top-left\":return\"bottom-right\";case\"top-right\":return\"bottom-left\";case\"bottom-left\":return\"top-right\";case\"bottom-right\":return\"top-left\";default:return null}}(s))))return null;var h=f.left+f.right,g=f.top+f.bottom,m=r.includes(\"-\");return(0,y.jsxs)(y.Fragment,{children:[(0,y.jsx)(\"div\",{className:\"resize-container \".concat(r,\" \").concat(c&&c!==r?\"no-hover\":\"\"),onMouseDown:function(e){if(e.preventDefault(),a.current){u(r);var n=a.current,t=n.getBoundingClientRect(),o=n.offsetLeft,s=n.offsetTop,c=e.clientX,d=e.clientY,f=function(e){var a=ar(r,e.clientX-c,e.clientY-d,t,o,s,i,l),u=a.newWidth,f=a.newHeight,p=a.newLeft,h=a.newTop;n.style.width=\"\".concat(u,\"px\"),n.style.height=\"\".concat(f,\"px\"),(r.includes(\"left\")||\"left\"===r)&&(n.style.left=\"\".concat(p,\"px\")),(r.includes(\"top\")||\"top\"===r)&&(n.style.top=\"\".concat(h,\"px\"))},p=function(){u(null),document.removeEventListener(\"mousemove\",f),document.removeEventListener(\"mouseup\",p);var e=a.current.getBoundingClientRect(),n=e.width,t=e.height;localStorage.setItem(\"nextjs-devtools-dimensions\",JSON.stringify({width:n,height:t}))};document.addEventListener(\"mousemove\",f),document.addEventListener(\"mouseup\",p)}}}),!m&&(0,y.jsx)(\"div\",{className:\"resize-line \".concat(r,\" \").concat(c===r?\"dragging\":\"\"),style:{\"--border-horizontal\":\"\".concat(h,\"px\"),\"--border-vertical\":\"\".concat(g,\"px\"),\"--border-top\":\"\".concat(f.top,\"px\"),\"--border-right\":\"\".concat(f.right,\"px\"),\"--border-bottom\":\"\".concat(f.bottom,\"px\"),\"--border-left\":\"\".concat(f.left,\"px\")}})]})},ar=function(e,n,t,r,o,a,i,l){var s=.95*window.innerWidth,c=.95*window.innerHeight;switch(e){case\"right\":return{newWidth:Math.min(s,Math.max(i,r.width+n)),newHeight:r.height,newLeft:o,newTop:a};case\"left\":var u=Math.min(s,Math.max(i,r.width-n)),d=u-r.width;return{newWidth:u,newHeight:r.height,newLeft:o-d,newTop:a};case\"bottom\":return{newWidth:r.width,newHeight:Math.min(c,Math.max(l,r.height+t)),newLeft:o,newTop:a};case\"top\":var f=Math.min(c,Math.max(l,r.height-t)),p=f-r.height;return{newWidth:r.width,newHeight:f,newLeft:o,newTop:a-p};case\"top-left\":var h=Math.min(s,Math.max(i,r.width-n)),g=Math.min(c,Math.max(l,r.height-t)),m=h-r.width,v=g-r.height;return{newWidth:h,newHeight:g,newLeft:o-m,newTop:a-v};case\"top-right\":var b=Math.min(c,Math.max(l,r.height-t)),y=b-r.height;return{newWidth:Math.min(s,Math.max(i,r.width+n)),newHeight:b,newLeft:o,newTop:a-y};case\"bottom-left\":var x=Math.min(s,Math.max(i,r.width-n)),w=x-r.width;return{newWidth:x,newHeight:Math.min(c,Math.max(l,r.height+t)),newLeft:o-w,newTop:a};case\"bottom-right\":return{newWidth:Math.min(s,Math.max(i,r.width+n)),newHeight:Math.min(c,Math.max(l,r.height+t)),newLeft:o,newTop:a};default:return null}};function ao(e,n){(null==n||n>e.length)&&(n=e.length);for(var t=0,r=Array(n);t<n;t++)r[t]=e[t];return r}function aa(e,n,t){return n in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t,e}function ai(e,n){return function(e){if(Array.isArray(e))return e}(e)||function(e,n){var t,r,o=null==e?null:\"undefined\"!=typeof Symbol&&e[Symbol.iterator]||e[\"@@iterator\"];if(null!=o){var a=[],i=!0,l=!1;try{for(o=o.call(e);!(i=(t=o.next()).done)&&(a.push(t.value),!n||a.length!==n);i=!0);}catch(e){l=!0,r=e}finally{try{i||null==o.return||o.return()}finally{if(l)throw r}}return a}}(e,n)||function(e,n){if(e){if(\"string\"==typeof e)return ao(e,n);var t=Object.prototype.toString.call(e).slice(8,-1);if(\"Object\"===t&&e.constructor&&(t=e.constructor.name),\"Map\"===t||\"Set\"===t)return Array.from(t);if(\"Arguments\"===t||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t))return ao(e,n)}}(e,n)||function(){throw TypeError(\"Invalid attempt to destructure non-iterable instance.\\\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\")}()}function al(){var e,n,t=(e=[\"\\n /* TODO: Better override dialog header style. This conflicts with issues tab content. */\\n [data-nextjs-devtools-panel-dialog-header] {\\n flex-shrink: 0;\\n margin-bottom: 0 !important;\\n }\\n\\n [data-nextjs-devtools-panel-dialog-content] {\\n flex: 1;\\n display: flex;\\n flex-direction: column;\\n min-height: 0; // what allows content to overflow\\n }\\n\\n [data-nextjs-devtools-panel-dialog-body] {\\n flex: 1;\\n overflow: auto;\\n }\\n\\n [data-nextjs-devtools-panel-overlay] {\\n margin: auto;\\n width: 525px;\\n height: 375px;\\n }\\n\\n [data-nextjs-devtools-panel-overlay-backdrop] {\\n opacity: 0;\\n visibility: hidden;\\n }\\n\\n [data-nextjs-devtools-panel-overlay-backdrop='true'] {\\n opacity: 1;\\n visibility: visible;\\n }\\n\\n [data-nextjs-devtools-panel-draggable] {\\n /* For responsiveness */\\n width: 100%;\\n height: 100%;\\n }\\n\\n [data-nextjs-devtools-panel-dialog] {\\n -webkit-font-smoothing: antialiased;\\n display: flex;\\n flex-direction: column;\\n background: var(--color-background-100);\\n background-clip: padding-box;\\n border: 1px solid var(--color-gray-400);\\n border-radius: var(--rounded-xl);\\n box-shadow: var(--shadow-lg);\\n position: relative;\\n width: 100%;\\n height: 100%;\\n min-width: 400px;\\n min-height: 350px;\\n }\\n\\n [data-nextjs-devtools-panel-header] {\\n display: flex;\\n justify-content: space-between;\\n align-items: center;\\n border-bottom: 1px solid var(--color-gray-400);\\n }\\n\\n [data-nextjs-devtools-panel-header-tab-group] {\\n display: flex;\\n align-items: center;\\n padding: 8px;\\n gap: 6px;\\n }\\n\\n [data-nextjs-devtools-panel-header-tab] {\\n display: flex;\\n align-items: center;\\n color: var(--color-gray-900);\\n border-radius: var(--rounded-md-2);\\n padding: 4px 12px;\\n font-size: 14px;\\n font-weight: 500;\\n transition: background-color 200ms ease;\\n\\n &:hover {\\n background-color: var(--color-gray-200);\\n }\\n\\n &:active {\\n background-color: var(--color-gray-300);\\n }\\n }\\n\\n [data-nextjs-devtools-panel-header-tab='true'] {\\n color: var(--color-gray-1000);\\n background-color: var(--color-gray-100);\\n }\\n\\n [data-nextjs-devtools-panel-header-tab-issues-badge] {\\n display: flex;\\n align-items: center;\\n justify-content: center;\\n margin-left: 8px;\\n background-color: var(--color-red-400);\\n color: var(--color-red-900);\\n font-size: 11px;\\n border-radius: var(--rounded-full);\\n padding: 2px 6px;\\n width: 20px;\\n height: 20px;\\n font-weight: 500;\\n }\\n\\n [data-nextjs-devtools-panel-header-action-button-group] {\\n display: flex;\\n align-items: center;\\n gap: 4px;\\n padding-right: 8px;\\n }\\n\\n [data-nextjs-devtools-panel-header-action-button] {\\n background: transparent;\\n border: none;\\n cursor: pointer;\\n display: flex;\\n align-items: center;\\n justify-content: center;\\n padding: 6px;\\n color: var(--color-gray-1000);\\n border-radius: 4px;\\n transition-property: background-color, color;\\n transition-duration: 200ms;\\n transition-timing-function: ease;\\n\\n &:hover {\\n background-color: var(--color-gray-200);\\n color: var(--color-gray-900);\\n }\\n\\n &:active {\\n background-color: var(--color-gray-300);\\n }\\n }\\n\\n [data-nextjs-devtools-panel-draggable='true'] {\\n cursor: move;\\n user-select: none;\\n & > * {\\n cursor: auto;\\n /* user-select: auto; follows the parent (parent none -> child none), so reset the direct child to text */\\n user-select: text;\\n }\\n }\\n\"],n||(n=e.slice(0)),Object.freeze(Object.defineProperties(e,{raw:{value:Object.freeze(n)}})));return al=function(){return t},t}function as(e){var n,t,r,o,a,i,l=e.state,s=e.dispatch,c=e.issueCount,u=e.runtimeErrors,d=e.getSquashedHydrationErrorDetails,f=ai((n=\"__nextjs-devtools-active-tab\",t=\"issues\",o=(r=ai((0,x.useState)(function(){if(\"undefined\"!=typeof window&&\"undefined\"!=typeof sessionStorage){var e=sessionStorage.getItem(n);return null!=e?e:t}return t}),2))[0],a=r[1],(0,x.useEffect)(function(){\"undefined\"!=typeof window&&\"undefined\"!=typeof sessionStorage&&sessionStorage.setItem(n,o)},[n,o]),[o,a]),2),p=f[0],h=f[1],g=ai((0,x.useState)(!1),2),m=g[0],v=g[1],b=ai((0,x.useState)(!1),2),w=b[0],j=b[1],k=(0,x.useRef)(null);l.isErrorOverlayOpen!==w&&(l.isErrorOverlayOpen&&(v(!0),h(\"issues\")),j(l.isErrorOverlayOpen));var A=ai(l.devToolsPosition.split(\"-\",2),2),O=A[0],C=A[1],S=function(){s({type:$}),s({type:I})};return(0,y.jsx)(o9,{value:{resizeRef:k,minWidth:400,minHeight:350,devToolsPosition:l.devToolsPosition},children:(0,y.jsxs)(nZ,{ref:k,\"data-nextjs-devtools-panel-overlay\":!0,style:m?{}:(aa(i={},O,\"\".concat(20,\"px\")),aa(i,C,\"\".concat(20,\"px\")),aa(i,\"top\"===O?\"bottom\":\"top\",\"auto\"),aa(i,\"left\"===C?\"right\":\"left\",\"auto\"),i),children:[(0,y.jsx)(n2,{\"data-nextjs-devtools-panel-overlay-backdrop\":m,onClick:S}),(0,y.jsx)(rN,{\"data-nextjs-devtools-panel-draggable\":!0,padding:20,onDragStart:function(){},position:l.devToolsPosition,setPosition:function(e){localStorage.setItem(G,e),s({type:Y,devToolsPosition:e})},dragHandleSelector:\"[data-nextjs-devtools-panel-header], [data-nextjs-devtools-panel-footer]\",disableDrag:m,children:(0,y.jsxs)(y.Fragment,{children:[(0,y.jsxs)(eZ,{\"data-nextjs-devtools-panel-dialog\":!0,\"aria-labelledby\":\"nextjs__container_dev_tools_panel_label\",\"aria-describedby\":\"nextjs__container_dev_tools_panel_desc\",onClose:S,children:[(0,y.jsxs)(eX,{\"data-nextjs-devtools-panel-dialog-content\":!0,children:[(0,y.jsx)(eK,{\"data-nextjs-devtools-panel-dialog-header\":!0,children:(0,y.jsxs)(\"div\",{\"data-nextjs-devtools-panel-header\":!0,\"data-nextjs-devtools-panel-draggable\":!m,children:[(0,y.jsxs)(\"div\",{\"data-nextjs-devtools-panel-header-tab-group\":!0,children:[(0,y.jsxs)(\"button\",{\"data-nextjs-devtools-panel-header-tab\":\"issues\"===p,onClick:function(){return h(\"issues\")},children:[\"Issues\",c>0?(0,y.jsx)(\"span\",{\"data-nextjs-devtools-panel-header-tab-issues-badge\":!0,children:c}):null]}),(0,y.jsx)(\"button\",{\"data-nextjs-devtools-panel-header-tab\":\"route\"===p,onClick:function(){return h(\"route\")},children:\"Route Info\"}),(0,y.jsx)(\"button\",{\"data-nextjs-devtools-panel-header-tab\":\"settings\"===p,onClick:function(){return h(\"settings\")},children:\"Settings\"})]}),(0,y.jsxs)(\"div\",{\"data-nextjs-devtools-panel-header-action-button-group\":!0,children:[(0,y.jsx)(\"button\",{\"data-nextjs-devtools-panel-header-action-button\":!0,onClick:function(){v(function(e){return!e}),s({type:I})},children:m?(0,y.jsx)(o1,{width:16,height:16}):(0,y.jsx)(o0,{width:16,height:16})}),(0,y.jsx)(\"button\",{\"data-nextjs-devtools-panel-header-action-button\":!0,onClick:S,children:(0,y.jsx)(oH,{width:16,height:16})})]})]})}),(0,y.jsx)(eY,{\"data-nextjs-devtools-panel-dialog-body\":!0,children:(0,y.jsx)(oI,{page:l.page,activeTab:p,devToolsPosition:l.devToolsPosition,scale:l.scale,routerType:l.routerType,handlePositionChange:function(e){s({type:Y,devToolsPosition:e.target.value}),localStorage.setItem(G,e.target.value)},handleScaleChange:function(e){s({type:X,scale:Number(e.target.value)}),localStorage.setItem(J,e.target.value)},debugInfo:l.debugInfo,runtimeErrors:u,getSquashedHydrationErrorDetails:d,buildError:l.buildError})})]}),(0,y.jsx)(r2,{versionInfo:l.versionInfo,isDraggable:!m,showRestartServerButton:l.showRestartServerButton})]}),!m&&(0,y.jsxs)(y.Fragment,{children:[(0,y.jsx)(at,{direction:\"top\"}),(0,y.jsx)(at,{direction:\"right\"}),(0,y.jsx)(at,{direction:\"bottom\"}),(0,y.jsx)(at,{direction:\"left\"}),(0,y.jsx)(at,{direction:\"top-left\"}),(0,y.jsx)(at,{direction:\"top-right\"}),(0,y.jsx)(at,{direction:\"bottom-left\"}),(0,y.jsx)(at,{direction:\"bottom-right\"})]})]})})]})})}var ac=ei(al());function au(){var e,n,t=(e=[\"\\n \",\"\\n \",\"\\n \",\"\\n \",\"\\n \",\"\\n \",\"\\n \",\"\\n \",\"\\n \",\"\\n \",\"\\n \",\"\\n \",\"\\n \",\"\\n \",\"\\n \",\"\\n \",\"\\n \",\"\\n \",\"\\n \",\"\\n \",\"\\n \",\"\\n \",\"\\n \",\"\\n \",\"\\n \",\"\\n \",\"\\n \",\"\\n \",\"\\n \",\"\\n \",\"\\n \",\"\\n \",\"\\n \",\"\\n \",\"\\n \",\"\\n \",\"\\n \",\"\\n \"],n||(n=e.slice(0)),Object.freeze(Object.defineProperties(e,{raw:{value:Object.freeze(n)}})));return au=function(){return t},t}function ad(){return(0,y.jsx)(\"style\",{children:ei(au(),\"\\n .nextjs-data-copy-button {\\n color: inherit;\\n\\n svg {\\n width: var(--size-16);\\n height: var(--size-16);\\n }\\n }\\n .nextjs-data-copy-button:disabled {\\n background-color: var(--color-gray-100);\\n cursor: not-allowed;\\n }\\n .nextjs-data-copy-button--initial:hover:not(:disabled) {\\n cursor: pointer;\\n }\\n .nextjs-data-copy-button--error:not(:disabled),\\n .nextjs-data-copy-button--error:hover:not(:disabled) {\\n color: var(--color-ansi-red);\\n }\\n .nextjs-data-copy-button--success:not(:disabled) {\\n color: var(--color-ansi-green);\\n }\\n\",'\\n [data-nextjs-call-stack-frame-no-source] {\\n padding: 6px 8px;\\n margin-bottom: 4px;\\n\\n border-radius: var(--rounded-lg);\\n }\\n\\n [data-nextjs-call-stack-frame-no-source]:last-child {\\n margin-bottom: 0;\\n }\\n\\n [data-nextjs-call-stack-frame-ignored=\"true\"] {\\n opacity: 0.6;\\n }\\n\\n [data-nextjs-call-stack-frame] {\\n user-select: text;\\n display: block;\\n box-sizing: border-box;\\n\\n user-select: text;\\n -webkit-user-select: text;\\n -moz-user-select: text;\\n -ms-user-select: text;\\n\\n padding: 6px 8px;\\n\\n border-radius: var(--rounded-lg);\\n }\\n\\n .call-stack-frame-method-name {\\n display: flex;\\n align-items: center;\\n gap: 4px;\\n\\n margin-bottom: 4px;\\n font-family: var(--font-stack-monospace);\\n\\n color: var(--color-gray-1000);\\n font-size: var(--size-14);\\n font-weight: 500;\\n line-height: var(--size-20);\\n\\n svg {\\n width: var(--size-16px);\\n height: var(--size-16px);\\n }\\n }\\n\\n .open-in-editor-button, .source-mapping-error-button {\\n display: flex;\\n align-items: center;\\n justify-content: center;\\n border-radius: var(--rounded-full);\\n padding: 4px;\\n color: var(--color-font);\\n\\n svg {\\n width: var(--size-16);\\n height: var(--size-16);\\n }\\n\\n &:focus-visible {\\n outline: var(--focus-ring);\\n outline-offset: -2px;\\n }\\n\\n &:hover {\\n background: var(--color-gray-100);\\n }\\n }\\n\\n .call-stack-frame-file-source {\\n color: var(--color-gray-900);\\n font-size: var(--size-14);\\n line-height: var(--size-20);\\n }\\n',ts,\"\\n [data-nextjs-environment-name-label] {\\n padding: 2px 6px;\\n margin: 0;\\n border-radius: var(--rounded-md-2);\\n background: var(--color-gray-100);\\n font-weight: 600;\\n font-size: var(--size-12);\\n color: var(--color-gray-900);\\n font-family: var(--font-stack-monospace);\\n line-height: var(--size-20);\\n }\\n\",\"\\n [data-nextjs-dialog-overlay] {\\n position: fixed;\\n top: 0;\\n right: 0;\\n bottom: 0;\\n left: 0;\\n /* secondary z-index, -1 than toast z-index */\\n z-index: 2147483646;\\n\\n display: flex;\\n align-content: center;\\n align-items: center;\\n flex-direction: column;\\n padding: 10vh 15px 0;\\n }\\n\\n @media (max-height: 812px) {\\n [data-nextjs-dialog-overlay] {\\n padding: 15px 15px 0;\\n }\\n }\\n\\n [data-nextjs-dialog-backdrop] {\\n position: fixed;\\n top: 0;\\n right: 0;\\n bottom: 0;\\n left: 0;\\n background-color: var(--color-backdrop);\\n backdrop-filter: blur(10px);\\n pointer-events: all;\\n z-index: -1;\\n }\\n\\n [data-nextjs-dialog-backdrop-fixed] {\\n cursor: not-allowed;\\n -webkit-backdrop-filter: blur(8px);\\n backdrop-filter: blur(8px);\\n }\\n\",eG,n8,nE,\"\\n .error-overlay-bottom-stack-layer {\\n width: 100%;\\n height: var(--stack-layer-height);\\n position: relative;\\n border: 1px solid var(--color-gray-400);\\n border-radius: var(--rounded-xl);\\n background: var(--color-background-200);\\n transition:\\n translate 350ms var(--timing-swift),\\n box-shadow 350ms var(--timing-swift);\\n }\\n\\n .error-overlay-bottom-stack-layer-1 {\\n width: calc(100% - var(--size-24));\\n }\\n\\n .error-overlay-bottom-stack-layer-2 {\\n width: calc(100% - var(--size-48));\\n z-index: -1;\\n }\\n\\n .error-overlay-bottom-stack {\\n width: 100%;\\n position: absolute;\\n bottom: -1px;\\n height: 0;\\n overflow: visible;\\n }\\n\\n .error-overlay-bottom-stack-stack {\\n --stack-layer-height: 44px;\\n --stack-layer-height-half: calc(var(--stack-layer-height) / 2);\\n --stack-layer-trim: 13px;\\n --shadow: 0px 0.925px 0.925px 0px rgba(0, 0, 0, 0.02),\\n 0px 3.7px 7.4px -3.7px rgba(0, 0, 0, 0.04),\\n 0px 14.8px 22.2px -7.4px rgba(0, 0, 0, 0.06);\\n\\n display: grid;\\n place-items: center center;\\n width: 100%;\\n position: fixed;\\n overflow: hidden;\\n z-index: -1;\\n max-width: var(--next-dialog-max-width);\\n\\n .error-overlay-bottom-stack-layer {\\n grid-area: 1 / 1;\\n /* Hide */\\n translate: 0 calc(var(--stack-layer-height) * -1);\\n }\\n\\n &[data-stack-count='1'],\\n &[data-stack-count='2'] {\\n .error-overlay-bottom-stack-layer-1 {\\n translate: 0\\n calc(var(--stack-layer-height-half) * -1 - var(--stack-layer-trim));\\n }\\n }\\n\\n &[data-stack-count='2'] {\\n .error-overlay-bottom-stack-layer-2 {\\n translate: 0 calc(var(--stack-layer-trim) * -1 * 2);\\n }\\n }\\n\\n /* Only the bottom stack should have the shadow */\\n &[data-stack-count='1'] .error-overlay-bottom-stack-layer-1 {\\n box-shadow: var(--shadow);\\n }\\n\\n &[data-stack-count='2'] {\\n .error-overlay-bottom-stack-layer-2 {\\n box-shadow: var(--shadow);\\n }\\n }\\n }\\n\",\"\\n .error-overlay-pagination {\\n -webkit-font-smoothing: antialiased;\\n display: flex;\\n justify-content: center;\\n align-items: center;\\n gap: 8px;\\n width: fit-content;\\n }\\n\\n .error-overlay-pagination-count {\\n color: var(--color-gray-900);\\n text-align: center;\\n font-size: var(--size-14);\\n font-weight: 500;\\n line-height: var(--size-16);\\n font-variant-numeric: tabular-nums;\\n }\\n\\n .error-overlay-pagination-button {\\n display: flex;\\n justify-content: center;\\n align-items: center;\\n\\n width: var(--size-24);\\n height: var(--size-24);\\n background: var(--color-gray-300);\\n flex-shrink: 0;\\n\\n border: none;\\n border-radius: var(--rounded-full);\\n\\n svg {\\n width: var(--size-16);\\n height: var(--size-16);\\n }\\n\\n &:focus-visible {\\n outline: var(--focus-ring);\\n }\\n\\n &:not(:disabled):active {\\n background: var(--color-gray-500);\\n }\\n\\n &:disabled {\\n opacity: 0.5;\\n cursor: not-allowed;\\n }\\n }\\n\\n .error-overlay-pagination-button-icon {\\n color: var(--color-gray-1000);\\n }\\n\",'\\n [data-nextjs-codeframe] {\\n --code-frame-padding: 12px;\\n --code-frame-line-height: var(--size-16);\\n background-color: var(--color-background-200);\\n color: var(--color-gray-1000);\\n text-overflow: ellipsis;\\n border: 1px solid var(--color-gray-400);\\n border-radius: 8px;\\n font-family: var(--font-stack-monospace);\\n font-size: var(--size-12);\\n line-height: var(--code-frame-line-height);\\n margin: 8px 0;\\n\\n svg {\\n width: var(--size-16);\\n height: var(--size-16);\\n }\\n }\\n\\n .code-frame-link,\\n .code-frame-pre {\\n padding: var(--code-frame-padding);\\n }\\n\\n .code-frame-link svg {\\n flex-shrink: 0;\\n }\\n\\n .code-frame-lines {\\n min-width: max-content;\\n }\\n\\n .code-frame-link [data-text] {\\n display: inline-flex;\\n text-align: left;\\n margin: auto 6px;\\n }\\n\\n .code-frame-header {\\n width: 100%;\\n transition: background 100ms ease-out;\\n border-radius: 8px 8px 0 0;\\n border-bottom: 1px solid var(--color-gray-400);\\n }\\n\\n [data-with-open-in-editor-link-source-file] {\\n padding: 4px;\\n margin: -4px 0 -4px auto;\\n border-radius: var(--rounded-full);\\n margin-left: auto;\\n\\n &:focus-visible {\\n outline: var(--focus-ring);\\n outline-offset: -2px;\\n }\\n\\n &:hover {\\n background: var(--color-gray-100);\\n }\\n }\\n\\n [data-nextjs-codeframe]::selection,\\n [data-nextjs-codeframe] *::selection {\\n background-color: var(--color-ansi-selection);\\n }\\n\\n [data-nextjs-codeframe] *:not(a) {\\n color: inherit;\\n background-color: transparent;\\n font-family: var(--font-stack-monospace);\\n }\\n\\n [data-nextjs-codeframe-line][data-nextjs-codeframe-line--errored=\"true\"] {\\n position: relative;\\n isolation: isolate;\\n\\n > span { \\n position: relative;\\n z-index: 1;\\n }\\n\\n &::after {\\n content: \"\";\\n width: calc(100% + var(--code-frame-padding) * 2);\\n height: var(--code-frame-line-height);\\n left: calc(-1 * var(--code-frame-padding));\\n background: var(--color-red-200);\\n box-shadow: 2px 0 0 0 var(--color-red-900) inset;\\n position: absolute;\\n }\\n }\\n\\n\\n [data-nextjs-codeframe] > * {\\n margin: 0;\\n }\\n\\n .code-frame-link {\\n display: flex;\\n margin: 0;\\n outline: 0;\\n }\\n .code-frame-link [data-icon=\\'right\\'] {\\n margin-left: auto;\\n }\\n\\n [data-nextjs-codeframe] div > pre {\\n overflow: hidden;\\n display: inline-block;\\n }\\n\\n [data-nextjs-codeframe] svg {\\n color: var(--color-gray-900);\\n }\\n',\"\\n [data-nextjs-terminal]::selection,\\n [data-nextjs-terminal] *::selection {\\n background-color: var(--color-ansi-selection);\\n }\\n\\n [data-nextjs-terminal] * {\\n color: inherit;\\n background-color: transparent;\\n font-family: var(--font-stack-monospace);\\n }\\n\\n [data-nextjs-terminal] > div > p {\\n display: flex;\\n align-items: center;\\n justify-content: space-between;\\n cursor: pointer;\\n margin: 0;\\n }\\n [data-nextjs-terminal] > div > p:hover {\\n text-decoration: underline dotted;\\n }\\n [data-nextjs-terminal] div > pre {\\n overflow: hidden;\\n display: inline-block;\\n }\\n\",\"\\n [data-with-open-in-editor-link] svg {\\n width: auto;\\n height: var(--size-14);\\n margin-left: 8px;\\n }\\n [data-with-open-in-editor-link] {\\n cursor: pointer;\\n }\\n [data-with-open-in-editor-link]:hover {\\n text-decoration: underline dotted;\\n }\\n [data-with-open-in-editor-link-import-trace] {\\n margin-left: 16px;\\n }\\n\",\"\",\"\\n .nextjs-error-with-static {\\n bottom: calc(16px * 4.5);\\n }\\n p.nextjs__container_errors__link {\\n font-size: var(--size-14);\\n }\\n p.nextjs__container_errors__notes {\\n color: var(--color-stack-notes);\\n font-size: var(--size-14);\\n line-height: 1.5;\\n }\\n .nextjs-container-errors-body > h2:not(:first-child) {\\n margin-top: calc(16px + 8px);\\n }\\n .nextjs-container-errors-body > h2 {\\n color: var(--color-title-color);\\n margin-bottom: 8px;\\n font-size: var(--size-20);\\n }\\n .nextjs-toast-errors-parent {\\n cursor: pointer;\\n transition: transform 0.2s ease;\\n }\\n .nextjs-toast-errors-parent:hover {\\n transform: scale(1.1);\\n }\\n .nextjs-toast-errors {\\n display: flex;\\n align-items: center;\\n justify-content: flex-start;\\n }\\n .nextjs-toast-errors > svg {\\n margin-right: 8px;\\n }\\n .nextjs-toast-hide-button {\\n margin-left: 24px;\\n border: none;\\n background: none;\\n color: var(--color-ansi-bright-white);\\n padding: 0;\\n transition: opacity 0.25s ease;\\n opacity: 0.7;\\n }\\n .nextjs-toast-hide-button:hover {\\n opacity: 1;\\n }\\n .nextjs__container_errors__error_title {\\n display: flex;\\n align-items: center;\\n justify-content: space-between;\\n margin-bottom: 14px;\\n }\\n .error-overlay-notes-container {\\n margin: 8px 2px;\\n }\\n .error-overlay-notes-container p {\\n white-space: pre-wrap;\\n }\\n\",tA,\"\\n .nextjs-container-build-error-version-status {\\n -webkit-font-smoothing: antialiased;\\n display: flex;\\n justify-content: center;\\n align-items: center;\\n gap: 4px;\\n\\n height: var(--size-26);\\n padding: 6px 8px 6px 6px;\\n background: var(--color-background-100);\\n background-clip: padding-box;\\n border: 1px solid var(--color-gray-alpha-400);\\n box-shadow: var(--shadow-small);\\n border-radius: var(--rounded-full);\\n\\n color: var(--color-gray-900);\\n font-size: var(--size-12);\\n font-weight: 500;\\n line-height: var(--size-16);\\n }\\n\\n a.nextjs-container-build-error-version-status {\\n text-decoration: none;\\n color: var(--color-gray-900);\\n\\n &:hover {\\n background: var(--color-gray-100);\\n }\\n\\n &:focus {\\n outline: var(--focus-ring);\\n }\\n }\\n\\n .version-staleness-indicator.fresh {\\n fill: var(--color-green-800);\\n stroke: var(--color-green-300);\\n }\\n .version-staleness-indicator.stale {\\n fill: var(--color-amber-800);\\n stroke: var(--color-amber-300);\\n }\\n .version-staleness-indicator.outdated {\\n fill: var(--color-red-800);\\n stroke: var(--color-red-300);\\n }\\n .version-staleness-indicator.unknown {\\n fill: var(--color-gray-800);\\n stroke: var(--color-gray-300);\\n }\\n\\n .nextjs-container-build-error-version-status > .turbopack-text {\\n background: linear-gradient(\\n to right,\\n var(--color-turbopack-text-red) 0%,\\n var(--color-turbopack-text-blue) 100%\\n );\\n background-clip: text;\\n -webkit-background-clip: text;\\n -webkit-text-fill-color: transparent;\\n }\\n\",\"\\n .restart-dev-server-button {\\n -webkit-font-smoothing: antialiased;\\n display: flex;\\n justify-content: center;\\n align-items: center;\\n gap: 4px;\\n margin: 0 12px;\\n\\n height: var(--size-26);\\n padding: 6px 8px 6px 6px;\\n background: var(--color-amber-100);\\n background-clip: padding-box;\\n border: 1px solid var(--color-gray-alpha-400);\\n box-shadow: var(--shadow-small);\\n border-radius: var(--rounded-full);\\n\\n color: var(--color-amber-900);\\n font-size: var(--size-12);\\n font-weight: 500;\\n line-height: var(--size-16);\\n }\\n\",\"\\n [data-nextjs-toast] {\\n &[data-hidden='true'] {\\n display: none;\\n }\\n }\\n\\n .dev-tools-indicator-menu {\\n -webkit-font-smoothing: antialiased;\\n display: flex;\\n flex-direction: column;\\n align-items: flex-start;\\n background: var(--color-background-100);\\n border: 1px solid var(--color-gray-alpha-400);\\n background-clip: padding-box;\\n box-shadow: var(--shadow-menu);\\n border-radius: var(--rounded-xl);\\n position: absolute;\\n font-family: var(--font-stack-sans);\\n z-index: 3;\\n overflow: hidden;\\n opacity: 0;\\n outline: 0;\\n min-width: 248px;\\n transition: opacity var(--animate-out-duration-ms)\\n var(--animate-out-timing-function);\\n\\n &[data-rendered='true'] {\\n opacity: 1;\\n scale: 1;\\n }\\n }\\n\\n .dev-tools-indicator-inner {\\n padding: 6px;\\n width: 100%;\\n }\\n\\n .dev-tools-indicator-item {\\n display: flex;\\n align-items: center;\\n padding: 8px 6px;\\n height: var(--size-36);\\n border-radius: 6px;\\n text-decoration: none !important;\\n user-select: none;\\n white-space: nowrap;\\n\\n svg {\\n width: var(--size-16);\\n height: var(--size-16);\\n }\\n\\n &:focus-visible {\\n outline: 0;\\n }\\n }\\n\\n .dev-tools-indicator-footer {\\n background: var(--color-background-200);\\n padding: 6px;\\n border-top: 1px solid var(--color-gray-400);\\n width: 100%;\\n }\\n\\n .dev-tools-indicator-item[data-selected='true'] {\\n cursor: pointer;\\n background-color: var(--color-gray-200);\\n }\\n\\n .dev-tools-indicator-label {\\n font-size: var(--size-14);\\n line-height: var(--size-20);\\n color: var(--color-gray-1000);\\n }\\n\\n .dev-tools-indicator-value {\\n font-size: var(--size-14);\\n line-height: var(--size-20);\\n color: var(--color-gray-900);\\n margin-left: auto;\\n }\\n\\n .dev-tools-indicator-issue-count {\\n --color-primary: var(--color-gray-800);\\n --color-secondary: var(--color-gray-100);\\n display: flex;\\n flex-direction: row;\\n align-items: center;\\n justify-content: center;\\n gap: 8px;\\n min-width: var(--size-40);\\n height: var(--size-24);\\n background: var(--color-background-100);\\n border: 1px solid var(--color-gray-alpha-400);\\n background-clip: padding-box;\\n box-shadow: var(--shadow-small);\\n padding: 2px;\\n color: var(--color-gray-1000);\\n border-radius: 128px;\\n font-weight: 500;\\n font-size: var(--size-13);\\n font-variant-numeric: tabular-nums;\\n\\n &[data-has-issues='true'] {\\n --color-primary: var(--color-red-800);\\n --color-secondary: var(--color-red-100);\\n }\\n\\n .dev-tools-indicator-issue-count-indicator {\\n width: var(--size-8);\\n height: var(--size-8);\\n background: var(--color-primary);\\n box-shadow: 0 0 0 2px var(--color-secondary);\\n border-radius: 50%;\\n }\\n }\\n\\n .dev-tools-indicator-shortcut {\\n display: flex;\\n gap: 4px;\\n\\n kbd {\\n width: var(--size-20);\\n height: var(--size-20);\\n display: flex;\\n justify-content: center;\\n align-items: center;\\n border-radius: var(--rounded-md);\\n border: 1px solid var(--color-gray-400);\\n font-family: var(--font-stack-sans);\\n background: var(--color-background-100);\\n color: var(--color-gray-1000);\\n text-align: center;\\n font-size: var(--size-12);\\n line-height: var(--size-16);\\n }\\n }\\n\\n .dev-tools-grabbing {\\n cursor: grabbing;\\n\\n > * {\\n pointer-events: none;\\n }\\n }\\n\",t0.g,\"\\n .dev-tools-info-code {\\n background: var(--color-gray-400);\\n color: var(--color-gray-1000);\\n font-family: var(--font-stack-monospace);\\n padding: 2px 4px;\\n margin: 0;\\n font-size: var(--size-13);\\n white-space: break-spaces;\\n border-radius: var(--rounded-md-2);\\n }\\n\\n .dev-tools-info-code-block-container {\\n padding: 6px;\\n }\\n\\n .dev-tools-info-code-block {\\n position: relative;\\n background: var(--color-background-200);\\n border: 1px solid var(--color-gray-alpha-400);\\n border-radius: var(--rounded-md-2);\\n min-width: 326px;\\n }\\n\\n .dev-tools-info-code-block-pre {\\n margin: 0;\\n font-family: var(--font-stack-monospace);\\n font-size: var(--size-12);\\n }\\n\\n .dev-tools-info-copy-button {\\n position: absolute;\\n\\n display: flex;\\n justify-content: center;\\n align-items: center;\\n right: 8px;\\n top: 8px;\\n padding: 4px;\\n height: var(--size-24);\\n width: var(--size-24);\\n border-radius: var(--rounded-md-2);\\n border: 1px solid var(--color-gray-alpha-400);\\n background: var(--color-background-100);\\n }\\n\\n .dev-tools-info-code-block-line {\\n display: block;\\n line-height: 1.5;\\n padding: 0 16px;\\n }\\n\\n .dev-tools-info-code-block-line.dev-tools-info-highlight {\\n border-left: 2px solid var(--color-blue-900);\\n background: var(--color-blue-400);\\n }\\n\\n .dev-tools-info-code-block-json-key {\\n color: var(--color-syntax-keyword);\\n }\\n\\n .dev-tools-info-code-block-json-value {\\n color: var(--color-syntax-link);\\n }\\n\",\"\",rS,'\\n .nextjs-scroll-fader {\\n --blur: 1px;\\n --stop: 25%;\\n --height: 150px;\\n --color-bg: var(--color-background-100);\\n position: absolute;\\n pointer-events: none;\\n user-select: none;\\n width: 100%;\\n height: var(--height);\\n left: 0;\\n backdrop-filter: blur(var(--blur));\\n\\n &[data-side=\"top\"] {\\n top: 0;\\n background: linear-gradient(to top, transparent, var(--color-bg));\\n mask-image: linear-gradient(to bottom, var(--color-bg) var(--stop), transparent);\\n }\\n }\\n',ac,r4,r0,on,oN,oO,oc,oo,oL,ow,ob,of,rm)})}function af(){var e,n,t=(e=[\"\\n :host {\\n all: initial;\\n\\n /* the direction property is not reset by 'all' */\\n direction: ltr;\\n }\\n\\n /*!\\n * Bootstrap Reboot v4.4.1 (https://getbootstrap.com/)\\n * Copyright 2011-2019 The Bootstrap Authors\\n * Copyright 2011-2019 Twitter, Inc.\\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\\n * Forked from Normalize.css, licensed MIT (https://github.com/necolas/normalize.css/blob/master/LICENSE.md)\\n */\\n *,\\n *::before,\\n *::after {\\n box-sizing: border-box;\\n }\\n\\n :host {\\n font-family: sans-serif;\\n line-height: 1.15;\\n -webkit-text-size-adjust: 100%;\\n -webkit-tap-highlight-color: rgba(0, 0, 0, 0);\\n }\\n\\n article,\\n aside,\\n figcaption,\\n figure,\\n footer,\\n header,\\n hgroup,\\n main,\\n nav,\\n section {\\n display: block;\\n }\\n\\n :host {\\n margin: 0;\\n font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto,\\n 'Helvetica Neue', Arial, 'Noto Sans', sans-serif,\\n 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol',\\n 'Noto Color Emoji';\\n font-size: 16px;\\n font-weight: 400;\\n line-height: 1.5;\\n color: var(--color-font);\\n text-align: left;\\n }\\n\\n :host:not(button) {\\n background-color: #fff;\\n }\\n\\n [tabindex='-1']:focus:not(:focus-visible) {\\n outline: 0 !important;\\n }\\n\\n hr {\\n box-sizing: content-box;\\n height: 0;\\n overflow: visible;\\n }\\n\\n h1,\\n h2,\\n h3,\\n h4,\\n h5,\\n h6 {\\n margin-top: 0;\\n margin-bottom: 8px;\\n }\\n\\n p {\\n margin-top: 0;\\n margin-bottom: 16px;\\n }\\n\\n abbr[title],\\n abbr[data-original-title] {\\n text-decoration: underline;\\n -webkit-text-decoration: underline dotted;\\n text-decoration: underline dotted;\\n cursor: help;\\n border-bottom: 0;\\n -webkit-text-decoration-skip-ink: none;\\n text-decoration-skip-ink: none;\\n }\\n\\n address {\\n margin-bottom: 16px;\\n font-style: normal;\\n line-height: inherit;\\n }\\n\\n ol,\\n ul,\\n dl {\\n margin-top: 0;\\n margin-bottom: 16px;\\n }\\n\\n ol ol,\\n ul ul,\\n ol ul,\\n ul ol {\\n margin-bottom: 0;\\n }\\n\\n dt {\\n font-weight: 700;\\n }\\n\\n dd {\\n margin-bottom: 8px;\\n margin-left: 0;\\n }\\n\\n blockquote {\\n margin: 0 0 16px;\\n }\\n\\n b,\\n strong {\\n font-weight: bolder;\\n }\\n\\n small {\\n font-size: 80%;\\n }\\n\\n sub,\\n sup {\\n position: relative;\\n font-size: 75%;\\n line-height: 0;\\n vertical-align: baseline;\\n }\\n\\n sub {\\n bottom: -0.25em;\\n }\\n\\n sup {\\n top: -0.5em;\\n }\\n\\n a {\\n color: #007bff;\\n text-decoration: none;\\n background-color: transparent;\\n }\\n\\n a:hover {\\n color: #0056b3;\\n text-decoration: underline;\\n }\\n\\n a:not([href]) {\\n color: inherit;\\n text-decoration: none;\\n }\\n\\n a:not([href]):hover {\\n color: inherit;\\n text-decoration: none;\\n }\\n\\n pre,\\n code,\\n kbd,\\n samp {\\n font-family: SFMono-Regular, Menlo, Monaco, Consolas,\\n 'Liberation Mono', 'Courier New', monospace;\\n font-size: 1em;\\n }\\n\\n pre {\\n margin-top: 0;\\n margin-bottom: 16px;\\n overflow: auto;\\n }\\n\\n figure {\\n margin: 0 0 16px;\\n }\\n\\n img {\\n vertical-align: middle;\\n border-style: none;\\n }\\n\\n svg {\\n overflow: hidden;\\n vertical-align: middle;\\n }\\n\\n table {\\n border-collapse: collapse;\\n }\\n\\n caption {\\n padding-top: 12px;\\n padding-bottom: 12px;\\n color: #6c757d;\\n text-align: left;\\n caption-side: bottom;\\n }\\n\\n th {\\n text-align: inherit;\\n }\\n\\n label {\\n display: inline-block;\\n margin-bottom: 8px;\\n }\\n\\n button {\\n border-radius: 0;\\n border: 0;\\n padding: 0;\\n margin: 0;\\n background: none;\\n appearance: none;\\n -webkit-appearance: none;\\n }\\n\\n button:focus {\\n outline: 1px dotted;\\n outline: 5px auto -webkit-focus-ring-color;\\n }\\n\\n button:focus:not(:focus-visible) {\\n outline: none;\\n }\\n\\n input,\\n button,\\n select,\\n optgroup,\\n textarea {\\n margin: 0;\\n font-family: inherit;\\n font-size: inherit;\\n line-height: inherit;\\n }\\n\\n button,\\n input {\\n overflow: visible;\\n }\\n\\n button,\\n select {\\n text-transform: none;\\n }\\n\\n select {\\n word-wrap: normal;\\n }\\n\\n button,\\n [type='button'],\\n [type='reset'],\\n [type='submit'] {\\n -webkit-appearance: button;\\n }\\n\\n button:not(:disabled),\\n [type='button']:not(:disabled),\\n [type='reset']:not(:disabled),\\n [type='submit']:not(:disabled) {\\n cursor: pointer;\\n }\\n\\n button::-moz-focus-inner,\\n [type='button']::-moz-focus-inner,\\n [type='reset']::-moz-focus-inner,\\n [type='submit']::-moz-focus-inner {\\n padding: 0;\\n border-style: none;\\n }\\n\\n input[type='radio'],\\n input[type='checkbox'] {\\n box-sizing: border-box;\\n padding: 0;\\n }\\n\\n input[type='date'],\\n input[type='time'],\\n input[type='datetime-local'],\\n input[type='month'] {\\n -webkit-appearance: listbox;\\n }\\n\\n textarea {\\n overflow: auto;\\n resize: vertical;\\n }\\n\\n fieldset {\\n min-width: 0;\\n padding: 0;\\n margin: 0;\\n border: 0;\\n }\\n\\n legend {\\n display: block;\\n width: 100%;\\n max-width: 100%;\\n padding: 0;\\n margin-bottom: 8px;\\n font-size: 24px;\\n line-height: inherit;\\n color: inherit;\\n white-space: normal;\\n }\\n\\n progress {\\n vertical-align: baseline;\\n }\\n\\n [type='number']::-webkit-inner-spin-button,\\n [type='number']::-webkit-outer-spin-button {\\n height: auto;\\n }\\n\\n [type='search'] {\\n outline-offset: -2px;\\n -webkit-appearance: none;\\n }\\n\\n [type='search']::-webkit-search-decoration {\\n -webkit-appearance: none;\\n }\\n\\n ::-webkit-file-upload-button {\\n font: inherit;\\n -webkit-appearance: button;\\n }\\n\\n output {\\n display: inline-block;\\n }\\n\\n summary {\\n display: list-item;\\n cursor: pointer;\\n }\\n\\n template {\\n display: none;\\n }\\n\\n [hidden] {\\n display: none !important;\\n }\\n \"],n||(n=e.slice(0)),Object.freeze(Object.defineProperties(e,{raw:{value:Object.freeze(n)}})));return af=function(){return t},t}function ap(){return(0,y.jsx)(\"style\",{children:ei(af())})}function ah(){var e,n,t=(e=['\\n :host {\\n /* \\n * CAUTION: THIS IS A WORKAROUND!\\n * For now, we use @babel/code-frame to parse the code frame which does not support option to change the color.\\n * x-ref: https://github.com/babel/babel/blob/efa52324ff835b794c48080f14877b6caf32cd15/packages/babel-code-frame/src/defs.ts#L40-L54\\n * So, we do a workaround mapping to change the color matching the theme.\\n *\\n * For example, in @babel/code-frame, the \"keyword\" is mapped to ANSI \"cyan\".\\n * We want the \"keyword\" to use the \"syntax-keyword\" color in the theme.\\n * So, we map the \"cyan\" to the \"syntax-keyword\" in the theme.\\n */\\n /* cyan: keyword */\\n --color-ansi-cyan: var(--color-syntax-keyword);\\n /* yellow: capitalized, jsxIdentifier, punctuation */\\n --color-ansi-yellow: var(--color-syntax-function);\\n /* magenta: number, regex */\\n --color-ansi-magenta: var(--color-syntax-keyword);\\n /* green: string */\\n --color-ansi-green: var(--color-syntax-string);\\n /* gray (bright black): comment, gutter */\\n --color-ansi-bright-black: var(--color-syntax-comment);\\n\\n /* Ansi - Temporary */\\n --color-ansi-selection: var(--color-gray-alpha-300);\\n --color-ansi-bg: var(--color-background-200);\\n --color-ansi-fg: var(--color-gray-1000);\\n\\n --color-ansi-white: var(--color-gray-700);\\n --color-ansi-black: var(--color-gray-200);\\n --color-ansi-blue: var(--color-blue-700);\\n --color-ansi-red: var(--color-red-700);\\n --color-ansi-bright-white: var(--color-gray-1000);\\n --color-ansi-bright-blue: var(--color-blue-800);\\n --color-ansi-bright-cyan: var(--color-blue-800);\\n --color-ansi-bright-green: var(--color-green-800);\\n --color-ansi-bright-magenta: var(--color-blue-800);\\n --color-ansi-bright-red: var(--color-red-800);\\n --color-ansi-bright-yellow: var(--color-amber-900);\\n\\n /* Background Light */\\n --color-background-100: #ffffff;\\n --color-background-200: #fafafa;\\n\\n /* Syntax Light */\\n --color-syntax-comment: #545454;\\n --color-syntax-constant: #171717;\\n --color-syntax-function: #0054ad;\\n --color-syntax-keyword: #a51850;\\n --color-syntax-link: #066056;\\n --color-syntax-parameter: #8f3e00;\\n --color-syntax-punctuation: #171717;\\n --color-syntax-string: #036157;\\n --color-syntax-string-expression: #066056;\\n\\n /* Gray Scale Light */\\n --color-gray-100: #f2f2f2;\\n --color-gray-200: #ebebeb;\\n --color-gray-300: #e6e6e6;\\n --color-gray-400: #eaeaea;\\n --color-gray-500: #c9c9c9;\\n --color-gray-600: #a8a8a8;\\n --color-gray-700: #8f8f8f;\\n --color-gray-800: #7d7d7d;\\n --color-gray-900: #666666;\\n --color-gray-1000: #171717;\\n\\n /* Gray Alpha Scale Light */\\n --color-gray-alpha-100: rgba(0, 0, 0, 0.05);\\n --color-gray-alpha-200: rgba(0, 0, 0, 0.081);\\n --color-gray-alpha-300: rgba(0, 0, 0, 0.1);\\n --color-gray-alpha-400: rgba(0, 0, 0, 0.08);\\n --color-gray-alpha-500: rgba(0, 0, 0, 0.21);\\n --color-gray-alpha-600: rgba(0, 0, 0, 0.34);\\n --color-gray-alpha-700: rgba(0, 0, 0, 0.44);\\n --color-gray-alpha-800: rgba(0, 0, 0, 0.51);\\n --color-gray-alpha-900: rgba(0, 0, 0, 0.605);\\n --color-gray-alpha-1000: rgba(0, 0, 0, 0.91);\\n\\n /* Blue Scale Light */\\n --color-blue-100: #f0f7ff;\\n --color-blue-200: #edf6ff;\\n --color-blue-300: #e1f0ff;\\n --color-blue-400: #cde7ff;\\n --color-blue-500: #99ceff;\\n --color-blue-600: #52aeff;\\n --color-blue-700: #0070f3;\\n --color-blue-800: #0060d1;\\n --color-blue-900: #0067d6;\\n --color-blue-1000: #0025ad;\\n\\n /* Red Scale Light */\\n --color-red-100: #fff0f0;\\n --color-red-200: #ffebeb;\\n --color-red-300: #ffe5e5;\\n --color-red-400: #fdd8d8;\\n --color-red-500: #f8baba;\\n --color-red-600: #f87274;\\n --color-red-700: #e5484d;\\n --color-red-800: #da3036;\\n --color-red-900: #ca2a30;\\n --color-red-1000: #381316;\\n\\n /* Amber Scale Light */\\n --color-amber-100: #fff6e5;\\n --color-amber-200: #fff4d5;\\n --color-amber-300: #fef0cd;\\n --color-amber-400: #ffddbf;\\n --color-amber-500: #ffc96b;\\n --color-amber-600: #f5b047;\\n --color-amber-700: #ffb224;\\n --color-amber-800: #ff990a;\\n --color-amber-900: #a35200;\\n --color-amber-1000: #4e2009;\\n\\n /* Green Scale Light */\\n --color-green-100: #effbef;\\n --color-green-200: #eafaea;\\n --color-green-300: #dcf6dc;\\n --color-green-400: #c8f1c9;\\n --color-green-500: #99e59f;\\n --color-green-600: #6cda76;\\n --color-green-700: #46a758;\\n --color-green-800: #388e4a;\\n --color-green-900: #297c3b;\\n --color-green-1000: #18311e;\\n\\n /* Turbopack Light - Temporary */\\n --color-turbopack-text-red: #ff1e56;\\n --color-turbopack-text-blue: #0096ff;\\n --color-turbopack-border-red: #f0adbe;\\n --color-turbopack-border-blue: #adccea;\\n --color-turbopack-background-red: #fff7f9;\\n --color-turbopack-background-blue: #f6fbff;\\n }\\n '],n||(n=e.slice(0)),Object.freeze(Object.defineProperties(e,{raw:{value:Object.freeze(n)}})));return ah=function(){return t},t}function ag(){return(0,y.jsx)(\"style\",{children:ei(ah())})}function am(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{},r=Object.keys(t);\"function\"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(t).filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.forEach(function(n){var r,o,a;r=e,o=n,a=t[n],o in r?Object.defineProperty(r,o,{value:a,enumerable:!0,configurable:!0,writable:!0}):r[o]=a})}return e}function av(e,n){return n=null!=n?n:{},Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):(function(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t.push.apply(t,r)}return t})(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}),e}function ab(e){var n=e.state,t=e.dispatch,r=e.getSquashedHydrationErrorDetails,o=e.runtimeErrors,a=e.errorCount,i=!!false,l=(0,tJ.N)(n.isErrorOverlayOpen,{exitDelay:200}),s=l.mounted,c={rendered:l.rendered,transitionDurationMs:200,isTurbopack:i,versionInfo:n.versionInfo,errorCount:a};return null!==n.buildError?(0,y.jsx)(tr,av(am({},c),{message:n.buildError,rendered:!0})):o.length&&s?(0,y.jsx)(tT,av(am({},c),{debugInfo:n.debugInfo,getSquashedHydrationErrorDetails:r,runtimeErrors:o,onClose:function(){t({type:I})}})):(0,y.jsx)(x.Suspense,{})}function ay(e,n){(null==n||n>e.length)&&(n=e.length);for(var t=0,r=Array(n);t<n;t++)r[t]=e[t];return r}function ax(e,n,t){return n in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t,e}function aw(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{},r=Object.keys(t);\"function\"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(t).filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.forEach(function(n){ax(e,n,t[n])})}return e}function aj(e,n){return function(e){if(Array.isArray(e))return e}(e)||function(e,n){var t,r,o=null==e?null:\"undefined\"!=typeof Symbol&&e[Symbol.iterator]||e[\"@@iterator\"];if(null!=o){var a=[],i=!0,l=!1;try{for(o=o.call(e);!(i=(t=o.next()).done)&&(a.push(t.value),!n||a.length!==n);i=!0);}catch(e){l=!0,r=e}finally{try{i||null==o.return||o.return()}finally{if(l)throw r}}return a}}(e,n)||function(e,n){if(e){if(\"string\"==typeof e)return ay(e,n);var t=Object.prototype.toString.call(e).slice(8,-1);if(\"Object\"===t&&e.constructor&&(t=e.constructor.name),\"Map\"===t||\"Set\"===t)return Array.from(t);if(\"Arguments\"===t||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t))return ay(e,n)}}(e,n)||function(){throw TypeError(\"Invalid attempt to destructure non-iterable instance.\\\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\")}()}var ak=function(e){return e.state.buildError?(0,y.jsx)(aO,aw({},e)):(0,y.jsx)(aA,aw({},e))},aA=function(e){var n,t,r,o=e.children,a=e.state,i=e.isAppDir,l=e.dispatch,s=a.errors,c=aj((0,x.useState)({}),2),u=c[0],d=c[1],f=aj((0,x.useMemo)(function(){for(var e=[],n=null,t=0;t<s.length;++t){var r=s[t],o=r.id;if(o in u){e.push(u[o]);continue}n=r;break}return[e,n]},[s,u]),2),p=f[0],h=f[1];return t=(n={errors:s,dispatch:l}).errors,r=n.dispatch,(0,x.useEffect)(function(){var e,n,o=(null==(e=\"Webpack\")?void 0:e.toUpperCase())===\"TURBOPACK\"&&true,a=null==(n=t[0])?void 0:n.error;if(o&&a){var i=\"__next_error_overlay:\".concat(window.location.pathname,\":\").concat(a.message);r({type:K,showRestartServerButton:\"1\"===sessionStorage.getItem(i)});var l=function(){sessionStorage.setItem(i,\"1\")};return window.addEventListener(\"beforeunload\",l),function(){window.removeEventListener(\"beforeunload\",l)}}r({type:K,showRestartServerButton:!1})},[t,r]),(0,x.useEffect)(function(){if(null!=h){var e,n,t=!0;return(e=h,n=i,tb(function(){var t,r,o,a,i;return tw(this,function(l){switch(l.label){case 0:var s,c;if(t={id:e.id,runtime:!0,error:e.error,type:e.type},!(\"use\"in x))return[3,1];return r=tx(ty({},t),{frames:(c=(s=function(){return tb(function(){return tw(this,function(t){switch(t.label){case 0:return[4,eC(e.frames,tm(e.error),n)];case 1:return[2,t.sent()]}})})()})(),function(){return c})}),void 0!==e.componentStackFrames&&(r.componentStackFrames=e.componentStackFrames),[2,r];case 1:return a=[ty({},t)],i={},[4,eC(e.frames,tm(e.error),n)];case 2:return o=tx.apply(void 0,a.concat([(i.frames=l.sent(),i)])),void 0!==e.componentStackFrames&&(o.componentStackFrames=e.componentStackFrames),[2,o];case 3:return[2]}})})()).then(function(e){t&&d(function(n){var t,r;return t=aw({},n),r=null!=(r=ax({},e.id,e))?r:{},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):(function(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t.push.apply(t,r)}return t})(Object(r)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))}),t})}),function(){t=!1}}},[h,i]),o({runtimeErrors:p,totalErrorCount:s.length})},aO=function(e){return(0,e.children)({runtimeErrors:[],totalErrorCount:1})};function aC(){var e,n,t=(e=[\"\\n :host(.dark) {\\n \",\"\\n \",\"\\n }\\n\\n @media (prefers-color-scheme: dark) {\\n :host(:not(.light)) {\\n \",\"\\n \",\"\\n }\\n }\\n \"],n||(n=e.slice(0)),Object.freeze(Object.defineProperties(e,{raw:{value:Object.freeze(n)}})));return aC=function(){return t},t}var aS=\"\\n /* Background Dark */\\n --color-background-100: #0a0a0a;\\n --color-background-200: #000000;\\n\\n /* Syntax Dark */\\n --color-syntax-comment: #a0a0a0;\\n --color-syntax-constant: #ededed;\\n --color-syntax-function: #52a9ff;\\n --color-syntax-keyword: #f76e99;\\n --color-syntax-link: #0ac5b2;\\n --color-syntax-parameter: #f1a10d;\\n --color-syntax-punctuation: #ededed;\\n --color-syntax-string: #0ac5b2;\\n --color-syntax-string-expression: #0ac5b2;\\n\\n /* Gray Scale Dark */\\n --color-gray-100: #1a1a1a;\\n --color-gray-200: #1f1f1f;\\n --color-gray-300: #292929;\\n --color-gray-400: #2e2e2e;\\n --color-gray-500: #454545;\\n --color-gray-600: #878787;\\n --color-gray-700: #8f8f8f;\\n --color-gray-800: #7d7d7d;\\n --color-gray-900: #a0a0a0;\\n --color-gray-1000: #ededed;\\n\\n /* Gray Alpha Scale Dark */\\n --color-gray-alpha-100: rgba(255, 255, 255, 0.066);\\n --color-gray-alpha-200: rgba(255, 255, 255, 0.087);\\n --color-gray-alpha-300: rgba(255, 255, 255, 0.125);\\n --color-gray-alpha-400: rgba(255, 255, 255, 0.145);\\n --color-gray-alpha-500: rgba(255, 255, 255, 0.239);\\n --color-gray-alpha-600: rgba(255, 255, 255, 0.506);\\n --color-gray-alpha-700: rgba(255, 255, 255, 0.54);\\n --color-gray-alpha-800: rgba(255, 255, 255, 0.47);\\n --color-gray-alpha-900: rgba(255, 255, 255, 0.61);\\n --color-gray-alpha-1000: rgba(255, 255, 255, 0.923);\\n\\n /* Blue Scale Dark */\\n --color-blue-100: #0f1b2d;\\n --color-blue-200: #10243e;\\n --color-blue-300: #0f3058;\\n --color-blue-400: #0d3868;\\n --color-blue-500: #0a4481;\\n --color-blue-600: #0091ff;\\n --color-blue-700: #0070f3;\\n --color-blue-800: #0060d1;\\n --color-blue-900: #52a9ff;\\n --color-blue-1000: #eaf6ff;\\n\\n /* Red Scale Dark */\\n --color-red-100: #2a1314;\\n --color-red-200: #3d1719;\\n --color-red-300: #551a1e;\\n --color-red-400: #671e22;\\n --color-red-500: #822025;\\n --color-red-600: #e5484d;\\n --color-red-700: #e5484d;\\n --color-red-800: #da3036;\\n --color-red-900: #ff6369;\\n --color-red-1000: #ffecee;\\n\\n /* Amber Scale Dark */\\n --color-amber-100: #271700;\\n --color-amber-200: #341c00;\\n --color-amber-300: #4a2900;\\n --color-amber-400: #573300;\\n --color-amber-500: #693f05;\\n --color-amber-600: #e79c13;\\n --color-amber-700: #ffb224;\\n --color-amber-800: #ff990a;\\n --color-amber-900: #f1a10d;\\n --color-amber-1000: #fef3dd;\\n\\n /* Green Scale Dark */\\n --color-green-100: #0b2211;\\n --color-green-200: #0f2c17;\\n --color-green-300: #11351b;\\n --color-green-400: #0c461b;\\n --color-green-500: #126427;\\n --color-green-600: #1a9338;\\n --color-green-700: #46a758;\\n --color-green-800: #388e4a;\\n --color-green-900: #63c174;\\n --color-green-1000: #e5fbeb;\\n\\n /* Turbopack Dark - Temporary */\\n --color-turbopack-text-red: #ff6d92;\\n --color-turbopack-text-blue: #45b2ff;\\n --color-turbopack-border-red: #6e293b;\\n --color-turbopack-border-blue: #284f80;\\n --color-turbopack-background-red: #250d12;\\n --color-turbopack-background-blue: #0a1723;\\n\",aE=\"\\n --color-font: white;\\n --color-backdrop: rgba(0, 0, 0, 0.8);\\n --color-border-shadow: rgba(255, 255, 255, 0.145);\\n\\n --color-title-color: #fafafa;\\n --color-stack-notes: #a9a9a9;\\n\";function a_(){return(0,y.jsx)(\"style\",{children:ei(aC(),aE,aS,aE,aS)})}function aP(e,n){(null==n||n>e.length)&&(n=e.length);for(var t=0,r=Array(n);t<n;t++)r[t]=e[t];return r}function az(e,n){return function(e){if(Array.isArray(e))return e}(e)||function(e,n){var t,r,o=null==e?null:\"undefined\"!=typeof Symbol&&e[Symbol.iterator]||e[\"@@iterator\"];if(null!=o){var a=[],i=!0,l=!1;try{for(o=o.call(e);!(i=(t=o.next()).done)&&(a.push(t.value),!n||a.length!==n);i=!0);}catch(e){l=!0,r=e}finally{try{i||null==o.return||o.return()}finally{if(l)throw r}}return a}}(e,n)||function(e,n){if(e){if(\"string\"==typeof e)return aP(e,n);var t=Object.prototype.toString.call(e).slice(8,-1);if(\"Object\"===t&&e.constructor&&(t=e.constructor.name),\"Map\"===t||\"Set\"===t)return Array.from(t);if(\"Arguments\"===t||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t))return aP(e,n)}}(e,n)||function(){throw TypeError(\"Invalid attempt to destructure non-iterable instance.\\\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\")}()}function aL(e){var n,t,r,o=e.state,a=e.dispatch,i=e.getSquashedHydrationErrorDetails,l=az((t=(n=rt((0,x.useState)(\"undefined\"!=typeof localStorage&&localStorage.getItem(J)?Number(localStorage.getItem(J)):S.Medium),2))[0],r=n[1],[t,function(e){r(e),localStorage.setItem(J,String(e))}]),2),s=l[0],c=l[1],u=az((0,x.useState)(!1),2),d=u[0],f=u[1],p=null!==o.buildError;return false&&(0),(0,y.jsxs)(ed,{children:[(0,y.jsx)(ap,{}),(0,y.jsx)(ep,{scale: false?0:s}),(0,y.jsx)(ag,{}),(0,y.jsx)(ad,{}),(0,y.jsx)(a_,{}),(0,y.jsx)(ak,{state:o,dispatch:a,isAppDir:!0,children:function(e){var n=e.runtimeErrors,t=e.totalErrorCount;return(0,y.jsx)(y.Fragment,{children:o.showIndicator&&( false?0:(0,y.jsxs)(y.Fragment,{children:[(0,y.jsx)(rU,{scale:s,setScale:c,state:o,dispatch:a,errorCount:t,isBuildError:p}),(0,y.jsx)(ab,{state:o,dispatch:a,getSquashedHydrationErrorDetails:i,runtimeErrors:n,errorCount:t})]}))})}})]})}var aT=__nested_webpack_require_381207__(\"./src/next-devtools/dev-overlay/segment-explorer-trie.ts\");function aR(e,n){(null==n||n>e.length)&&(n=e.length);for(var t=0,r=Array(n);t<n;t++)r[t]=e[t];return r}function aN(e){return function(e){if(Array.isArray(e))return aR(e)}(e)||function(e){if(\"undefined\"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e[\"@@iterator\"])return Array.from(e)}(e)||aD(e)||function(){throw TypeError(\"Invalid attempt to spread non-iterable instance.\\\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\")}()}function aD(e,n){if(e){if(\"string\"==typeof e)return aR(e,n);var t=Object.prototype.toString.call(e).slice(8,-1);if(\"Object\"===t&&e.constructor&&(t=e.constructor.name),\"Map\"===t||\"Set\"===t)return Array.from(t);if(\"Arguments\"===t||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t))return aR(e,n)}}var aB=null,aM=[];function aI(e){return function(){for(var n=arguments.length,t=Array(n),r=0;r<n;r++)t[r]=arguments[r];aB?e.apply(void 0,[aB].concat(aN(t))):aM.push(function(n){e.apply(void 0,[n].concat(aN(t)))})}}var aH={onBuildOk:aI(function(e){e({type:_})}),onBuildError:aI(function(e,n){e({type:P,message:n})}),onBeforeRefresh:aI(function(e){e({type:z})}),onRefresh:aI(function(e){e({type:L})}),onVersionInfo:aI(function(e,n){e({type:T,versionInfo:n})}),onStaticIndicator:aI(function(e,n){e({type:E,staticIndicator:n})}),onDebugInfo:aI(function(e,n){e({type:D,debugInfo:n})}),onDevIndicator:aI(function(e,n){e({type:B,devIndicator:n})}),onUnhandledError:aI(function(e,n){e({type:R,reason:n})}),onUnhandledRejection:aI(function(e,n){e({type:N,reason:n})}),openErrorOverlay:aI(function(e){e({type:M})}),closeErrorOverlay:aI(function(e){e({type:I})}),toggleErrorOverlay:aI(function(e){e({type:H})}),buildingIndicatorHide:aI(function(e){e({type:U})}),buildingIndicatorShow:aI(function(e){e({type:F})}),renderingIndicatorHide:aI(function(e){e({type:q})}),renderingIndicatorShow:aI(function(e){e({type:V})}),segmentExplorerNodeAdd:aI(function(e,n){(0,aT.th)(n)}),segmentExplorerNodeRemove:aI(function(e,n){(0,aT._c)(n)}),segmentExplorerUpdateRouteState:aI(function(e,n){e({type:ee,page:n})})};function aF(e){var n,t,r=e.getComponentStack,o=e.getOwnerStack,a=e.getSquashedHydrationErrorDetails,i=e.isRecoverableError,l=(n=function(e,n,t,r){var o;function a(e,o,a){var i,l=n(a),s=void 0===l?void 0:function(e){var n=[],t=!0,r=!1,o=void 0;try{for(var a,i=e.trim().split(\"\\n\")[Symbol.iterator]();!(t=(a=i.next()).done);t=!0){var l=a.value,s=/at ([^ ]+)( \\((.*)\\))?/.exec(l);if(null==s?void 0:s[1]){var c=s[1],u=s[3];if(!u){n.push({canOpenInEditor:!1,component:c});continue}if(null==u?void 0:u.includes(\"next/dist\"))break;var d=function(e){var n,t,r,o,a=(r=e).startsWith(\"file://\")?\"file\":r.includes(\"webpack-internal://\")?\"webpack-internal\":r.startsWith(\"http://\")||r.startsWith(\"https://\")?\"http\":r.startsWith(\"//\")?\"protocol-relative\":\"unknown\",i=null==e?void 0:e.replace(/^(webpack-internal:\\/\\/\\/|file:\\/\\/)(\\(.*\\)\\/)?/,\"\"),l=(n=null!=(o=null==i?void 0:i.match(/^(.+):(\\d+):(\\d+)/))?o:[],t=4,function(e){if(Array.isArray(e))return e}(n)||function(e,n){var t,r,o=null==e?null:\"undefined\"!=typeof Symbol&&e[Symbol.iterator]||e[\"@@iterator\"];if(null!=o){var a=[],i=!0,l=!1;try{for(o=o.call(e);!(i=(t=o.next()).done)&&(a.push(t.value),a.length!==n);i=!0);}catch(e){l=!0,r=e}finally{try{i||null==o.return||o.return()}finally{if(l)throw r}}return a}}(n,4)||function(e,n){if(e){if(\"string\"==typeof e)return w(e,n);var t=Object.prototype.toString.call(e).slice(8,-1);if(\"Object\"===t&&e.constructor&&(t=e.constructor.name),\"Map\"===t||\"Set\"===t)return Array.from(t);if(\"Arguments\"===t||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t))return w(e,n)}}(n,t)||function(){throw TypeError(\"Invalid attempt to destructure non-iterable instance.\\\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\")}()),s=l[1],c=l[2],u=l[3];switch(a){case\"file\":case\"webpack-internal\":return{canOpenInEditor:!0,file:s,lineNumber:c?Number(c):void 0,column:u?Number(u):void 0};default:return{canOpenInEditor:!1}}}(u);n.push(function(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{},r=Object.keys(t);\"function\"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(t).filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.forEach(function(n){var r,o,a;r=e,o=n,a=t[n],o in r?Object.defineProperty(r,o,{value:a,enumerable:!0,configurable:!0,writable:!0}):r[o]=a})}return e}({component:c},d))}}}catch(e){r=!0,o=e}finally{try{t||null==i.return||i.return()}finally{if(r)throw o}}return n}(l),c=t(a),u=function(e){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:\"D:\\\\dongyun-projects\\\\two\\\\build\";return e?(e=e.split(\"\\n\").map(function(e){return e.includes(\"(eval \")&&(e=e.replace(/eval code/g,\"eval\").replace(/\\(eval at [^()]* \\(/,\"(file://\").replace(/\\),.*$/g,\")\")),e}).join(\"\\n\"),(0,j.parse)(e).map(function(e){try{var t=new URL(e.file),r=k.exec(t.pathname);if(r){var o,a=null==n||null==(o=n.replace(/\\\\/g,\"/\"))?void 0:o.replace(/\\/$/,\"\");a&&(e.file=\"file://\"+a.concat(r.pop())+t.search)}}catch(e){}return e})):[]}((a.stack||\"\")+(c||\"\")),d={id:o,error:a,frames:u,componentStackFrames:s,type:r(a)?\"recoverable\":(i=a)&&\"NEXT_CONSOLE_ERROR\"===i[A]?\"console\":\"runtime\"},f=e.filter(function(e){return e.error.stack!==d.error.stack&&et(e.error.stack)!==et(d.error.stack)||t(e.error)!==t(d.error)});return f.length===e.length?(f.push(d),f):e}return(0,x.useReducer)(function(e,n){switch(n.type){case D:return C(O({},e),{debugInfo:n.debugInfo});case E:return C(O({},e),{staticIndicator:n.staticIndicator});case _:return C(O({},e),{buildError:null});case P:return C(O({},e),{buildError:n.message});case z:return C(O({},e),{refreshState:{type:\"pending\",errors:[]}});case L:return C(O({},e),{buildError:null,errors:\"pending\"===e.refreshState.type?e.refreshState.errors:[],refreshState:{type:\"idle\"}});case R:case N:switch(e.refreshState.type){case\"idle\":return C(O({},e),{nextId:e.nextId+1,errors:a(e.errors,e.nextId,n.reason)});case\"pending\":return C(O({},e),{nextId:e.nextId+1,refreshState:C(O({},e.refreshState),{errors:a(e.errors,e.nextId,n.reason)})});default:return e}case T:return C(O({},e),{versionInfo:n.versionInfo});case B:return C(O({},e),{showIndicator:!0,disableDevIndicator:er||!!n.devIndicator.disabledUntil});case M:return C(O({},e),{isErrorOverlayOpen:!0});case I:return C(O({},e),{isErrorOverlayOpen:!1});case H:return C(O({},e),{isErrorOverlayOpen:!e.isErrorOverlayOpen});case F:return C(O({},e),{buildingIndicator:!0});case U:return C(O({},e),{buildingIndicator:!1});case V:return C(O({},e),{renderingIndicator:!0});case q:return C(O({},e),{renderingIndicator:!1});case W:return C(O({},e),{isDevToolsPanelOpen:!0});case $:return C(O({},e),{isDevToolsPanelOpen:!1});case Z:return C(O({},e),{isDevToolsPanelOpen:!e.isDevToolsPanelOpen});case Y:return C(O({},e),{devToolsPosition:n.devToolsPosition});case X:return C(O({},e),{scale:n.scale});case ee:return C(O({},e),{page:n.page});case K:return C(O({},e),{showRestartServerButton:n.showRestartServerButton});default:return e}},(o=e,C(O({},eo),{isErrorOverlayOpen:\"pages\"===o,routerType:o})))}(e.routerType,r,o,i),t=2,function(e){if(Array.isArray(e))return e}(n)||function(e,n){var t,r,o=null==e?null:\"undefined\"!=typeof Symbol&&e[Symbol.iterator]||e[\"@@iterator\"];if(null!=o){var a=[],i=!0,l=!1;try{for(o=o.call(e);!(i=(t=o.next()).done)&&(a.push(t.value),a.length!==n);i=!0);}catch(e){l=!0,r=e}finally{try{i||null==o.return||o.return()}finally{if(l)throw r}}return a}}(n,2)||aD(n,t)||function(){throw TypeError(\"Invalid attempt to destructure non-iterable instance.\\\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\")}()),s=l[0],c=l[1];return(0,x.useInsertionEffect)(function(){aB=c;var e=setTimeout(function(){!function(e){try{var n=!0,t=!1,r=void 0;try{for(var o,a=aM[Symbol.iterator]();!(n=(o=a.next()).done);n=!0)(0,o.value)(e)}catch(e){t=!0,r=e}finally{try{n||null==a.return||a.return()}finally{if(t)throw r}}}finally{aM.length=0}}(c)});return function(){aB=null,clearTimeout(e)}},[]),(0,y.jsxs)(y.Fragment,{children:[(0,y.jsx)(es,{}),(0,y.jsx)(aL,{state:s,dispatch:c,getSquashedHydrationErrorDetails:a})]})}var aU=!1,aV=!1;function aq(){return null}function aW(e,n,t){if(aU)throw Error(\"Next DevTools: Pages Dev Overlay is already mounted. This is a bug in Next.js\");if(!aV){var r=document.createElement(\"script\");r.style.display=\"block\",r.style.position=\"absolute\",r.setAttribute(\"data-nextjs-dev-overlay\",\"true\");var o=document.createElement(\"nextjs-portal\");r.appendChild(o),document.body.appendChild(r);var a=(0,ea.createRoot)(o,{identifierPrefix:\"ndt-\"});(0,x.startTransition)(function(){a.render((0,y.jsx)(aF,{getComponentStack:e,getOwnerStack:n,getSquashedHydrationErrorDetails:aq,isRecoverableError:t,routerType:\"app\"}))}),aV=!0}}function a$(e,n,t,r){if(aV)throw Error(\"Next DevTools: App Dev Overlay is already mounted. This is a bug in Next.js\");if(!aU){var o=document.createElement(\"nextjs-portal\");o.style.position=\"absolute\",new MutationObserver(function(e){var n=!0,t=!1,r=void 0;try{for(var a,i=e[Symbol.iterator]();!(n=(a=i.next()).done);n=!0){var l=a.value;if(\"childList\"===l.type){var s=!0,c=!1,u=void 0;try{for(var d,f=l.removedNodes[Symbol.iterator]();!(s=(d=f.next()).done);s=!0)d.value===o&&document.body.appendChild(o)}catch(e){c=!0,u=e}finally{try{s||null==f.return||f.return()}finally{if(c)throw u}}}}}catch(e){t=!0,r=e}finally{try{n||null==i.return||i.return()}finally{if(t)throw r}}}).observe(document.body,{childList:!0}),document.body.appendChild(o);var a=(0,ea.createRoot)(o);(0,x.startTransition)(function(){a.render((0,y.jsx)(aF,{getComponentStack:e,getOwnerStack:n,getSquashedHydrationErrorDetails:t,isRecoverableError:r,routerType:\"pages\"}))}),aU=!0}}})(),exports.dispatcher=__nested_webpack_exports__.dispatcher,exports.renderAppDevOverlay=__nested_webpack_exports__.renderAppDevOverlay,exports.renderPagesDevOverlay=__nested_webpack_exports__.renderPagesDevOverlay,__nested_webpack_exports__)-1===[\"dispatcher\",\"renderAppDevOverlay\",\"renderPagesDevOverlay\"].indexOf(__webpack_i__)&&(exports[__webpack_i__]=__nested_webpack_exports__[__webpack_i__]);Object.defineProperty(exports, \"__esModule\", ({value:!0}));\n//# sourceMappingURL=index.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvY29tcGlsZWQvbmV4dC1kZXZ0b29scy9pbmRleC5qcyIsIm1hcHBpbmdzIjoiO0FBQUEseUJBQXlCLG1QQUFtUCxhQUFhLE9BQU8sUUFBUSxFQUFFLDhhQUE4YTtBQUN4dEI7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLE1BQU0sbUdBQW1HLFlBQVksYUFBYSxXQUFXLE9BQU8sS0FBSyxZQUFZLGFBQWEsYUFBYSxXQUFXLFlBQVksYUFBYSxPQUFPLEtBQUssWUFBWSxXQUFXLFVBQVUsWUFBWSxhQUFhLGFBQWEsT0FBTyxLQUFLLEtBQUssT0FBTyxhQUFhLFdBQVcsWUFBWSxPQUFPLEtBQUssS0FBSyxPQUFPLGFBQWEsV0FBVyxZQUFZLE9BQU8sS0FBSyxLQUFLLE9BQU8sYUFBYSxXQUFXLFlBQVksT0FBTyxLQUFLLEtBQUssT0FBTyxhQUFhLFdBQVcsWUFBWSxPQUFPLEtBQUssWUFBWSwwQ0FBMEMsdUJBQXVCLDBCQUEwQixtQkFBbUIsR0FBRyxjQUFjLHVCQUF1QixzQkFBc0IsdUJBQXVCLG9CQUFvQixxQkFBcUIseUJBQXlCLEdBQUcsb0JBQW9CLHVCQUF1QixhQUFhLGNBQWMsd0JBQXdCLHlDQUF5Qyw4QkFBOEIsR0FBRyx5QkFBeUIsOEZBQThGLDhDQUE4QyxjQUFjLGdDQUFnQyxHQUFHLDRCQUE0Qiw4RkFBOEYsaURBQWlELFdBQVcsaUNBQWlDLEdBQUcsMEJBQTBCLDhGQUE4RiwrQ0FBK0MsYUFBYSxnQ0FBZ0MsR0FBRywyQkFBMkIsOEZBQThGLGdEQUFnRCxZQUFZLGlDQUFpQyxHQUFHLHlCQUF5QixnQ0FBZ0MsR0FBRyxtQkFBbUIsR0FBRyxRQUFRLDRSQUE0UixhQUFhLE9BQU8sUUFBUSxFQUFFLDhhQUE4YTtBQUNocEY7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLDhEQUE4RDtBQUM5RDs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE1BQU0sMklBQTJJLFlBQVksYUFBYSxXQUFXLFlBQVksYUFBYSxPQUFPLEtBQUssWUFBWSxhQUFhLFdBQVcsWUFBWSxhQUFhLGFBQWEsYUFBYSxhQUFhLGFBQWEsT0FBTyxZQUFZLE1BQU0sd0JBQXdCLE9BQU8sTUFBTSxVQUFVLFVBQVUsVUFBVSxZQUFZLE9BQU8sYUFBYSxPQUFPLFVBQVUsVUFBVSxVQUFVLFlBQVksT0FBTyxLQUFLLFVBQVUsS0FBSyxLQUFLLFVBQVUsS0FBSyxLQUFLLFVBQVUsS0FBSyxLQUFLLFVBQVUsTUFBTSxRQUFRLFVBQVUsVUFBVSxVQUFVLE1BQU0sS0FBSyxVQUFVLFVBQVUsWUFBWSxNQUFNLEtBQUssVUFBVSxVQUFVLFlBQVksTUFBTSxLQUFLLFVBQVUsVUFBVSxZQUFZLE1BQU0sS0FBSyxVQUFVLFVBQVUsWUFBWSxPQUFPLE1BQU0sVUFBVSxVQUFVLFlBQVksT0FBTyxNQUFNLFVBQVUsVUFBVSxZQUFZLE9BQU8sS0FBSyxVQUFVLFlBQVksYUFBYSxhQUFhLGFBQWEsT0FBTyxLQUFLLFVBQVUsWUFBWSxhQUFhLGFBQWEsYUFBYSxPQUFPLEtBQUssWUFBWSxXQUFXLFlBQVksYUFBYSxhQUFhLE9BQU8sS0FBSyxZQUFZLFdBQVcsWUFBWSxhQUFhLGFBQWEsT0FBTyxRQUFRLFlBQVksT0FBTyxRQUFRLFlBQVksT0FBTyxPQUFPLEtBQUssS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLDJDQUEyQyx1QkFBdUIsOENBQThDLDBEQUEwRCxHQUFHLGtCQUFrQix1QkFBdUIsOENBQThDLHlCQUF5Qix5TUFBeU0sdUVBQXVFLEdBQUcsa0xBQWtMLGdFQUFnRSxrQ0FBa0Msc0RBQXNELFdBQVcsaUJBQWlCLGdCQUFnQixzQkFBc0IsR0FBRywrR0FBK0csWUFBWSxnQkFBZ0IsaUJBQWlCLHNCQUFzQixHQUFHLDJCQUEyQixlQUFlLEdBQUcsNEJBQTRCLGtCQUFrQixHQUFHLDBCQUEwQixnQkFBZ0IsR0FBRywyQkFBMkIsaUJBQWlCLEdBQUcsK0hBQStILGdCQUFnQixpQkFBaUIsZ0JBQWdCLEdBQUcsZ0NBQWdDLGVBQWUsZ0JBQWdCLHdCQUF3QixHQUFHLCtCQUErQixlQUFlLGlCQUFpQix3QkFBd0IsR0FBRyxpQ0FBaUMsa0JBQWtCLGdCQUFnQix3QkFBd0IsR0FBRyxrQ0FBa0Msa0JBQWtCLGlCQUFpQix3QkFBd0IsR0FBRyw0Q0FBNEMsaUJBQWlCLGdCQUFnQixrREFBa0QsR0FBRyw0Q0FBNEMsZ0JBQWdCLGlCQUFpQixrREFBa0QsR0FBRyxzQkFBc0IsZUFBZSw2Q0FBNkMsc0RBQXNELDJEQUEyRCxnQ0FBZ0MsR0FBRyx5QkFBeUIsa0JBQWtCLDZDQUE2QyxzREFBc0QsMkRBQTJELGlDQUFpQyxHQUFHLHVCQUF1QiwyQ0FBMkMsZ0JBQWdCLHFEQUFxRCwyREFBMkQsZ0NBQWdDLEdBQUcsd0JBQXdCLDJDQUEyQyxpQkFBaUIscURBQXFELDJEQUEyRCxpQ0FBaUMsR0FBRyxzS0FBc0ssNkJBQTZCLEdBQUcsc0tBQXNLLDZCQUE2QixHQUFHLDBOQUEwTixpQ0FBaUMsR0FBRyw2REFBNkQsZ0NBQWdDLEdBQUcsaUVBQWlFLGlDQUFpQyxHQUFHLDJEQUEyRCxnQ0FBZ0MsR0FBRyxtQkFBbUIsR0FBRyxRQUFRLDBSQUEwUixhQUFhLE9BQU8sUUFBUSxFQUFFLDhhQUE4YTtBQUN2K0w7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxNQUFNLHlJQUF5SSxVQUFVLFlBQVksV0FBVyxZQUFZLGFBQWEsYUFBYSxhQUFhLGFBQWEsV0FBVyxZQUFZLFdBQVcsWUFBWSxPQUFPLEtBQUssWUFBWSxhQUFhLGFBQWEsYUFBYSxhQUFhLGFBQWEsT0FBTyxLQUFLLFlBQVksT0FBTyxLQUFLLFlBQVksT0FBTyxLQUFLLFVBQVUsVUFBVSxVQUFVLFlBQVksT0FBTyxLQUFLLFlBQVksT0FBTyxNQUFNLFlBQVksYUFBYSxPQUFPLEtBQUssVUFBVSxZQUFZLGFBQWEsYUFBYSxhQUFhLGFBQWEsV0FBVyxZQUFZLE9BQU8sS0FBSyxZQUFZLE9BQU8sS0FBSyxVQUFVLFlBQVksV0FBVyxZQUFZLFdBQVcsWUFBWSxhQUFhLFdBQVcsWUFBWSxXQUFXLFlBQVksV0FBVyxNQUFNLEtBQUssWUFBWSxhQUFhLE9BQU8sS0FBSyxZQUFZLGFBQWEsT0FBTyxLQUFLLFlBQVksT0FBTyxLQUFLLFlBQVksYUFBYSxPQUFPLEtBQUssWUFBWSxhQUFhLE9BQU8sS0FBSyxVQUFVLFVBQVUsWUFBWSxhQUFhLGFBQWEsbURBQW1ELGtCQUFrQix3QkFBd0IsYUFBYSxxQkFBcUIsc0JBQXNCLHFCQUFxQixrQ0FBa0MseUJBQXlCLGlCQUFpQiw4QkFBOEIsb0JBQW9CLDRDQUE0QyxHQUFHLG9DQUFvQyw4QkFBOEIscUJBQXFCLHNCQUFzQix5QkFBeUIsd0JBQXdCLDRCQUE0QixHQUFHLCtDQUErQyxxQ0FBcUMsR0FBRyxxREFBcUQsaUNBQWlDLEdBQUcsbUNBQW1DLGdCQUFnQixpQkFBaUIsbUJBQW1CLDJCQUEyQixHQUFHLHlDQUF5QyxpQ0FBaUMsR0FBRyw2RkFBNkYsaUNBQWlDLHdCQUF3QixHQUFHLGdDQUFnQyxpQkFBaUIsNENBQTRDLDRDQUE0Qyx3QkFBd0IscUJBQXFCLHNCQUFzQixvQkFBb0IsMkZBQTJGLEdBQUcsMkNBQTJDLGdDQUFnQyxHQUFHLHFDQUFxQyxrQkFBa0Isd0JBQXdCLGlCQUFpQixzQkFBc0Isb0JBQW9CLHVCQUF1QixrQ0FBa0Msb0JBQW9CLHFCQUFxQixpQkFBaUIscUJBQXFCLGdCQUFnQixHQUFHLG9EQUFvRCxpQ0FBaUMsd0JBQXdCLEdBQUcseUNBQXlDLHVCQUF1Qix3QkFBd0IsR0FBRywyQ0FBMkMsc0NBQXNDLEdBQUcsaURBQWlELGdDQUFnQyxpQ0FBaUMsR0FBRyxnREFBZ0QsbUNBQW1DLG9DQUFvQyxHQUFHLG1DQUFtQyxpQkFBaUIsb0JBQW9CLHNCQUFzQixxQkFBcUIsaUNBQWlDLEdBQUcsbUJBQW1CLEdBQUcsUUFBUSxrUkFBa1IsYUFBYSxPQUFPLFFBQVEsRUFBRSw4YUFBOGE7QUFDeHBJO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLE1BQU0saUlBQWlJLFlBQVksV0FBVyxVQUFVLFVBQVUsWUFBWSxhQUFhLE9BQU8sS0FBSyxVQUFVLFlBQVksYUFBYSxhQUFhLFdBQVcsTUFBTSxLQUFLLFlBQVksYUFBYSxhQUFhLGFBQWEsYUFBYSxhQUFhLE9BQU8sS0FBSyxVQUFVLFlBQVksT0FBTyxLQUFLLFlBQVksT0FBTyxLQUFLLFVBQVUsWUFBWSxhQUFhLGFBQWEsYUFBYSxhQUFhLFdBQVcsWUFBWSxPQUFPLEtBQUssWUFBWSxPQUFPLEtBQUssWUFBWSxXQUFXLFlBQVksT0FBTyxLQUFLLFlBQVksT0FBTyxLQUFLLFlBQVksTUFBTSxLQUFLLFlBQVksV0FBVyxVQUFVLEtBQUssS0FBSyxZQUFZLE9BQU8sS0FBSyxZQUFZLFdBQVcsWUFBWSxPQUFPLEtBQUssWUFBWSxPQUFPLEtBQUssWUFBWSxhQUFhLGFBQWEsYUFBYSxhQUFhLGFBQWEsYUFBYSxhQUFhLGFBQWEsV0FBVyxZQUFZLGFBQWEsT0FBTyxLQUFLLFlBQVksYUFBYSxPQUFPLEtBQUssVUFBVSxVQUFVLFVBQVUsWUFBWSxNQUFNLEtBQUssVUFBVSxVQUFVLFlBQVksT0FBTyxLQUFLLFlBQVksT0FBTyxLQUFLLFlB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Q0FBMEMsS0FBSyw0QkFBNEIsYUFBYSxJQUFJLHVCQUF1QixJQUFJLGtDQUFrQyx1QkFBdUIsb0JBQW9CLFNBQVMsU0FBUyxRQUFRLElBQUksOEJBQThCLFFBQVEsZUFBZSxRQUFRLGFBQWEsSUFBSSxFQUFFLGtCQUFrQix5QkFBeUIsNEJBQTRCLHlCQUF5QixnQkFBZ0Isc0RBQXNELEdBQUcsRUFBRSxnQkFBZ0IsY0FBYyxZQUFZLG1CQUFtQixtR0FBbUcsUUFBUSx1Q0FBdUMscUdBQXFHLDhDQUE4Qyw4Q0FBOEMsMkJBQTJCLHdCQUF3QixFQUFFLGlDQUFpQyx1QkFBdUIsOEdBQThHLEdBQUcsU0FBUyxxQkFBcUIsaUdBQWlHLFFBQVEsOENBQThDLDZEQUE2RCx1QkFBdUIsSUFBSSxpQ0FBaUMsdUJBQXVCLE1BQU0sY0FBYyx5QkFBeUIsdUJBQXVCLElBQUksOENBQThDLHVCQUF1QiwrQ0FBK0MsU0FBUyxTQUFTLFFBQVEsSUFBSSw4QkFBOEIsUUFBUSxpQkFBaUIsU0FBUyxTQUFTLFFBQVEsSUFBSSw4QkFBOEIsUUFBUSxlQUFlLHlCQUF5QixhQUFhLCtCQUErQiwyQkFBMkIsaUNBQWlDLHVCQUF1QiwrR0FBK0csR0FBRyxVQUFVLElBQUksa0JBQWtCLENBQUMsMEJBQW1CLFlBQVksMkJBQTJCLENBQUMsMEJBQW1CLHFCQUFxQiw2QkFBNkIsQ0FBQywwQkFBbUIsdUJBQXVCLDBCQUFtQixtSEFBbUgsMEJBQW1CLGlCQUFpQiw4Q0FBMkMsQ0FBQyxTQUFTLEVBQUM7QUFDMTdpWSIsInNvdXJjZXMiOlsiRDpcXGRvbmd5dW4tcHJvamVjdHNcXHR3b1xcbm9kZV9tb2R1bGVzXFxuZXh0XFxkaXN0XFxjb21waWxlZFxcbmV4dC1kZXZ0b29sc1xcaW5kZXguanMiXSwic291cmNlc0NvbnRlbnQiOlsidmFyIF9fd2VicGFja19tb2R1bGVzX189e1wiLi4vLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2Nzcy1sb2FkZXJANy4xLjJfQHJzcGFjaytjb3JlQDEuNC41X0Bzd2MraGVscGVyc0AwLjUuMTVfX3dlYnBhY2tANS45OC4wX0Bzd2MrY29yZUAxLjExLjI0X0Bzd193bTdlZTVpYzRtb2ZyaGlzdWR3b240cXBxNC9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9kaXN0L2Nqcy5qcyEuL3NyYy9uZXh0LWRldnRvb2xzL2NvbXBvbmVudHMvdG9vbHRpcC5jc3NcIjpmdW5jdGlvbihlLG4sdCl7XCJ1c2Ugc3RyaWN0XCI7dC5kKG4se1o6KCk9Pmx9KTt2YXIgcj10KFwiLi4vLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2Nzcy1sb2FkZXJANy4xLjJfQHJzcGFjaytjb3JlQDEuNC41X0Bzd2MraGVscGVyc0AwLjUuMTVfX3dlYnBhY2tANS45OC4wX0Bzd2MrY29yZUAxLjExLjI0X0Bzd193bTdlZTVpYzRtb2ZyaGlzdWR3b240cXBxNC9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9kaXN0L3J1bnRpbWUvc291cmNlTWFwcy5qc1wiKSxvPXQubihyKSxhPXQoXCIuLi8uLi9ub2RlX21vZHVsZXMvLnBucG0vY3NzLWxvYWRlckA3LjEuMl9AcnNwYWNrK2NvcmVAMS40LjVfQHN3YytoZWxwZXJzQDAuNS4xNV9fd2VicGFja0A1Ljk4LjBfQHN3Yytjb3JlQDEuMTEuMjRfQHN3X3dtN2VlNWljNG1vZnJoaXN1ZHdvbjRxcHE0L25vZGVfbW9kdWxlcy9jc3MtbG9hZGVyL2Rpc3QvcnVudGltZS9hcGkuanNcIiksaT10Lm4oYSkoKShvKCkpO2kucHVzaChbZS5pZCxgLnRvb2x0aXAtd3JhcHBlciB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBsaW5lLWhlaWdodDogMTtcbn1cblxuLnRvb2x0aXAge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHBhZGRpbmc6IDZweCAxMnB4O1xuICBib3JkZXItcmFkaXVzOiA4cHg7XG4gIGZvbnQtc2l6ZTogMTRweDtcbiAgbGluZS1oZWlnaHQ6IDEuNDtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG59XG5cbi50b29sdGlwLWFycm93IHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB3aWR0aDogMDtcbiAgaGVpZ2h0OiAwO1xuICBib3JkZXItc3R5bGU6IHNvbGlkO1xuICBib3JkZXItd2lkdGg6IHZhcigtLWFycm93LXNpemUsIDZweCk7XG4gIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQ7XG59XG5cbi50b29sdGlwLWFycm93LS10b3Age1xuICBib3JkZXItd2lkdGg6IHZhcigtLWFycm93LXNpemUsIDZweCkgdmFyKC0tYXJyb3ctc2l6ZSwgNnB4KSAwXG4gICAgdmFyKC0tYXJyb3ctc2l6ZSwgNnB4KTtcbiAgYm9yZGVyLXRvcC1jb2xvcjogdmFyKC0tdG9vbHRpcC1iZy1jb2xvcik7XG4gIGJvdHRvbTogMDtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDEwMCUpO1xufVxuXG4udG9vbHRpcC1hcnJvdy0tYm90dG9tIHtcbiAgYm9yZGVyLXdpZHRoOiAwIHZhcigtLWFycm93LXNpemUsIDZweCkgdmFyKC0tYXJyb3ctc2l6ZSwgNnB4KVxuICAgIHZhcigtLWFycm93LXNpemUsIDZweCk7XG4gIGJvcmRlci1ib3R0b20tY29sb3I6IHZhcigtLXRvb2x0aXAtYmctY29sb3IpO1xuICB0b3A6IDA7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMTAwJSk7XG59XG5cbi50b29sdGlwLWFycm93LS1sZWZ0IHtcbiAgYm9yZGVyLXdpZHRoOiB2YXIoLS1hcnJvdy1zaXplLCA2cHgpIDAgdmFyKC0tYXJyb3ctc2l6ZSwgNnB4KVxuICAgIHZhcigtLWFycm93LXNpemUsIDZweCk7XG4gIGJvcmRlci1sZWZ0LWNvbG9yOiB2YXIoLS10b29sdGlwLWJnLWNvbG9yKTtcbiAgcmlnaHQ6IDA7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgxMDAlKTtcbn1cblxuLnRvb2x0aXAtYXJyb3ctLXJpZ2h0IHtcbiAgYm9yZGVyLXdpZHRoOiB2YXIoLS1hcnJvdy1zaXplLCA2cHgpIHZhcigtLWFycm93LXNpemUsIDZweClcbiAgICB2YXIoLS1hcnJvdy1zaXplLCA2cHgpIDA7XG4gIGJvcmRlci1yaWdodC1jb2xvcjogdmFyKC0tdG9vbHRpcC1iZy1jb2xvcik7XG4gIGxlZnQ6IDA7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtMTAwJSk7XG59XG5cbi50b29sdGlwLXBvc2l0aW9uZXIge1xuICB6LWluZGV4OiB2YXIoLS10b3Atei1pbmRleCk7XG59XG5gLFwiXCIse3ZlcnNpb246Myxzb3VyY2VzOltcIndlYnBhY2s6Ly8uL3NyYy9uZXh0LWRldnRvb2xzL2NvbXBvbmVudHMvdG9vbHRpcC5jc3NcIl0sbmFtZXM6W10sbWFwcGluZ3M6XCJBQUFBO0VBQ0Usa0JBQWtCO0VBQ2xCLHFCQUFxQjtFQUNyQixjQUFjO0FBQ2hCOztBQUVBO0VBQ0Usa0JBQWtCO0VBQ2xCLGlCQUFpQjtFQUNqQixrQkFBa0I7RUFDbEIsZUFBZTtFQUNmLGdCQUFnQjtFQUNoQixvQkFBb0I7QUFDdEI7O0FBRUE7RUFDRSxrQkFBa0I7RUFDbEIsUUFBUTtFQUNSLFNBQVM7RUFDVCxtQkFBbUI7RUFDbkIsb0NBQW9DO0VBQ3BDLHlCQUF5QjtBQUMzQjs7QUFFQTtFQUNFOzBCQUN3QjtFQUN4Qix5Q0FBeUM7RUFDekMsU0FBUztFQUNULDJCQUEyQjtBQUM3Qjs7QUFFQTtFQUNFOzBCQUN3QjtFQUN4Qiw0Q0FBNEM7RUFDNUMsTUFBTTtFQUNOLDRCQUE0QjtBQUM5Qjs7QUFFQTtFQUNFOzBCQUN3QjtFQUN4QiwwQ0FBMEM7RUFDMUMsUUFBUTtFQUNSLDJCQUEyQjtBQUM3Qjs7QUFFQTtFQUNFOzRCQUMwQjtFQUMxQiwyQ0FBMkM7RUFDM0MsT0FBTztFQUNQLDRCQUE0QjtBQUM5Qjs7QUFFQTtFQUNFLDJCQUEyQjtBQUM3QlwiLHNvdXJjZXNDb250ZW50OltcIi50b29sdGlwLXdyYXBwZXIge1xcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xcbiAgbGluZS1oZWlnaHQ6IDE7XFxufVxcblxcbi50b29sdGlwIHtcXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcXG4gIHBhZGRpbmc6IDZweCAxMnB4O1xcbiAgYm9yZGVyLXJhZGl1czogOHB4O1xcbiAgZm9udC1zaXplOiAxNHB4O1xcbiAgbGluZS1oZWlnaHQ6IDEuNDtcXG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xcbn1cXG5cXG4udG9vbHRpcC1hcnJvdyB7XFxuICBwb3NpdGlvbjogYWJzb2x1dGU7XFxuICB3aWR0aDogMDtcXG4gIGhlaWdodDogMDtcXG4gIGJvcmRlci1zdHlsZTogc29saWQ7XFxuICBib3JkZXItd2lkdGg6IHZhcigtLWFycm93LXNpemUsIDZweCk7XFxuICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50O1xcbn1cXG5cXG4udG9vbHRpcC1hcnJvdy0tdG9wIHtcXG4gIGJvcmRlci13aWR0aDogdmFyKC0tYXJyb3ctc2l6ZSwgNnB4KSB2YXIoLS1hcnJvdy1zaXplLCA2cHgpIDBcXG4gICAgdmFyKC0tYXJyb3ctc2l6ZSwgNnB4KTtcXG4gIGJvcmRlci10b3AtY29sb3I6IHZhcigtLXRvb2x0aXAtYmctY29sb3IpO1xcbiAgYm90dG9tOiAwO1xcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDEwMCUpO1xcbn1cXG5cXG4udG9vbHRpcC1hcnJvdy0tYm90dG9tIHtcXG4gIGJvcmRlci13aWR0aDogMCB2YXIoLS1hcnJvdy1zaXplLCA2cHgpIHZhcigtLWFycm93LXNpemUsIDZweClcXG4gICAgdmFyKC0tYXJyb3ctc2l6ZSwgNnB4KTtcXG4gIGJvcmRlci1ib3R0b20tY29sb3I6IHZhcigtLXRvb2x0aXAtYmctY29sb3IpO1xcbiAgdG9wOiAwO1xcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0xMDAlKTtcXG59XFxuXFxuLnRvb2x0aXAtYXJyb3ctLWxlZnQge1xcbiAgYm9yZGVyLXdpZHRoOiB2YXIoLS1hcnJvdy1zaXplLCA2cHgpIDAgdmFyKC0tYXJyb3ctc2l6ZSwgNnB4KVxcbiAgICB2YXIoLS1hcnJvdy1zaXplLCA2cHgpO1xcbiAgYm9yZGVyLWxlZnQtY29sb3I6IHZhcigtLXRvb2x0aXAtYmctY29sb3IpO1xcbiAgcmlnaHQ6IDA7XFxuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMTAwJSk7XFxufVxcblxcbi50b29sdGlwLWFycm93LS1yaWdodCB7XFxuICBib3JkZXItd2lkdGg6IHZhcigtLWFycm93LXNpemUsIDZweCkgdmFyKC0tYXJyb3ctc2l6ZSwgNnB4KVxcbiAgICB2YXIoLS1hcnJvdy1zaXplLCA2cHgpIDA7XFxuICBib3JkZXItcmlnaHQtY29sb3I6IHZhcigtLXRvb2x0aXAtYmctY29sb3IpO1xcbiAgbGVmdDogMDtcXG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtMTAwJSk7XFxufVxcblxcbi50b29sdGlwLXBvc2l0aW9uZXIge1xcbiAgei1pbmRleDogdmFyKC0tdG9wLXotaW5kZXgpO1xcbn1cXG5cIl0sc291cmNlUm9vdDpcIlwifV0pO2xldCBsPWl9LFwiLi4vLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2Nzcy1sb2FkZXJANy4xLjJfQHJzcGFjaytjb3JlQDEuNC41X0Bzd2MraGVscGVyc0AwLjUuMTVfX3dlYnBhY2tANS45OC4wX0Bzd2MrY29yZUAxLjExLjI0X0Bzd193bTdlZTVpYzRtb2ZyaGlzdWR3b240cXBxNC9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9kaXN0L2Nqcy5qcyEuL3NyYy9uZXh0LWRldnRvb2xzL2Rldi1vdmVybGF5L2NvbXBvbmVudHMvZGV2dG9vbHMtcGFuZWwvcmVzaXplL3Jlc2l6ZS1oYW5kbGUuY3NzXCI6ZnVuY3Rpb24oZSxuLHQpe1widXNlIHN0cmljdFwiO3QuZChuLHtaOigpPT5sfSk7dmFyIHI9dChcIi4uLy4uL25vZGVfbW9kdWxlcy8ucG5wbS9jc3MtbG9hZGVyQDcuMS4yX0Byc3BhY2srY29yZUAxLjQuNV9Ac3djK2hlbHBlcnNAMC41LjE1X193ZWJwYWNrQDUuOTguMF9Ac3djK2NvcmVAMS4xMS4yNF9Ac3dfd203ZWU1aWM0bW9mcmhpc3Vkd29uNHFwcTQvbm9kZV9tb2R1bGVzL2Nzcy1sb2FkZXIvZGlzdC9ydW50aW1lL3NvdXJjZU1hcHMuanNcIiksbz10Lm4ociksYT10KFwiLi4vLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2Nzcy1sb2FkZXJANy4xLjJfQHJzcGFjaytjb3JlQDEuNC41X0Bzd2MraGVscGVyc0AwLjUuMTVfX3dlYnBhY2tANS45OC4wX0Bzd2MrY29yZUAxLjExLjI0X0Bzd193bTdlZTVpYzRtb2ZyaGlzdWR3b240cXBxNC9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9kaXN0L3J1bnRpbWUvYXBpLmpzXCIpLGk9dC5uKGEpKCkobygpKTtpLnB1c2goW2UuaWQsYC5yZXNpemUtY29udGFpbmVyIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICAvKiB0b2RvOiBiZXR0ZXIgeiBpbmRleCAqL1xuICB6LWluZGV4OiAxMDtcbiAgLyogdG9kbzogaXMgdGhpcyBuZWVkZWQgKi9cbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG59XG5cbi5yZXNpemUtbGluZSB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgLyogdG9kbyBzbWFydGVyIHogaW5kZXggKi9cbiAgei1pbmRleDogLTE7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAvKiBhIG5vcm1hbCBleGl0IGFuaW1hdGlvbiBjdXJ2ZS0gYXQgdGhpcyBwb2ludCB0aGUgZXhpdCBhbmltYXRpb24gaXMgKi9cbiAgLyogaW1tZWRpYXRlbHkgcmVzcG9uc2l2ZSBzbyB3ZSBkb24ndCBuZWVkIGEgYmVzcG9rZSBjdXJ2ZSAqL1xuICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC40cyBjdWJpYy1iZXppZXIoMC40LCAwLCAwLjIsIDEpO1xuICAvKiB0b2RvOiBiZXR0ZXIgdmFyPyAqL1xuICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1jb2xvci1ncmF5LTEwMCk7XG59XG5cbi8qIHN0YXJ0IHJlYWxseSBmYXN0IGJlY2F1c2Ugd2Ugc3RhcnQgc3VwZXIgaGlkZGVuIGluaXRpYWxseSBiZWhpbmQgdGhlIHBhbmVsLCBvdGhlcndpc2UgZmVlbHMgbGlrZSBhbiB1bmludGVuZGVkIGFuaW1hdGlvbiBkZWxheSAqL1xuLnJlc2l6ZS1jb250YWluZXI6aG92ZXIgfiAucmVzaXplLWxpbmUge1xuICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC4ycyBjdWJpYy1iZXppZXIoMC4wNSwgMC45LCAwLjIsIDEpOyAvKiBGYXN0IHN0YXJ0IGZvciBhbmltYXRlIGluICovXG59XG5cbi5yZXNpemUtY29udGFpbmVyLnJpZ2h0LFxuLnJlc2l6ZS1jb250YWluZXIubGVmdCB7XG4gIHRvcDogMDtcbiAgaGVpZ2h0OiAxMDAlO1xuICB3aWR0aDogMjVweDtcbiAgY3Vyc29yOiBldy1yZXNpemU7XG59XG5cbi8qIHRvZG86IGRvbid0IGhhcmQgY29kZSBhbGwgdGhlc2UgdmFsdWVzL3VzZSB2YXJzICovXG5cbi5yZXNpemUtY29udGFpbmVyLmJvdHRvbSxcbi5yZXNpemUtY29udGFpbmVyLnRvcCB7XG4gIGxlZnQ6IDA7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDI1cHg7XG4gIGN1cnNvcjogbnMtcmVzaXplO1xufVxuXG4ucmVzaXplLWNvbnRhaW5lci50b3Age1xuICB0b3A6IC0xMnB4O1xufVxuLnJlc2l6ZS1jb250YWluZXIuYm90dG9tIHtcbiAgYm90dG9tOiAtMTJweDtcbn1cbi5yZXNpemUtY29udGFpbmVyLmxlZnQge1xuICBsZWZ0OiAtMTJweDtcbn1cbi5yZXNpemUtY29udGFpbmVyLnJpZ2h0IHtcbiAgcmlnaHQ6IC0xMnB4O1xufVxuXG4ucmVzaXplLWNvbnRhaW5lci50b3AtbGVmdCxcbi5yZXNpemUtY29udGFpbmVyLnRvcC1yaWdodCxcbi5yZXNpemUtY29udGFpbmVyLmJvdHRvbS1sZWZ0LFxuLnJlc2l6ZS1jb250YWluZXIuYm90dG9tLXJpZ2h0IHtcbiAgd2lkdGg6IDMycHg7XG4gIGhlaWdodDogMzJweDtcbiAgei1pbmRleDogMTU7XG59XG5cbi5yZXNpemUtY29udGFpbmVyLnRvcC1sZWZ0IHtcbiAgdG9wOiAtMTZweDtcbiAgbGVmdDogLTE2cHg7XG4gIGN1cnNvcjogbndzZS1yZXNpemU7XG59XG4ucmVzaXplLWNvbnRhaW5lci50b3AtcmlnaHQge1xuICB0b3A6IC0xNnB4O1xuICByaWdodDogLTE2cHg7XG4gIGN1cnNvcjogbmVzdy1yZXNpemU7XG59XG4ucmVzaXplLWNvbnRhaW5lci5ib3R0b20tbGVmdCB7XG4gIGJvdHRvbTogLTE2cHg7XG4gIGxlZnQ6IC0xNnB4O1xuICBjdXJzb3I6IG5lc3ctcmVzaXplO1xufVxuLnJlc2l6ZS1jb250YWluZXIuYm90dG9tLXJpZ2h0IHtcbiAgYm90dG9tOiAtMTZweDtcbiAgcmlnaHQ6IC0xNnB4O1xuICBjdXJzb3I6IG53c2UtcmVzaXplO1xufVxuXG4ucmVzaXplLWxpbmUudG9wLFxuLnJlc2l6ZS1saW5lLmJvdHRvbSB7XG4gIGhlaWdodDogMjhweDtcbiAgd2lkdGg6IDEwMCU7XG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNvbG9yLWJhY2tncm91bmQtMTAwKTtcbn1cblxuLnJlc2l6ZS1saW5lLmxlZnQsXG4ucmVzaXplLWxpbmUucmlnaHQge1xuICB3aWR0aDogMjhweDtcbiAgaGVpZ2h0OiAxMDAlO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jb2xvci1iYWNrZ3JvdW5kLTEwMCk7XG59XG5cbi5yZXNpemUtbGluZS50b3Age1xuICB0b3A6IC0xMnB4O1xuICBsZWZ0OiBjYWxjKC0xICogdmFyKC0tYm9yZGVyLWxlZnQsIDJweCkpO1xuICB3aWR0aDogY2FsYygxMDAlICsgdmFyKC0tYm9yZGVyLWhvcml6b250YWwsIDRweCkpO1xuICBib3JkZXItcmFkaXVzOiB2YXIoLS1yb3VuZGVkLW1kKSB2YXIoLS1yb3VuZGVkLW1kKSAwIDA7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgyOHB4KTtcbn1cblxuLnJlc2l6ZS1saW5lLmJvdHRvbSB7XG4gIGJvdHRvbTogLTEycHg7XG4gIGxlZnQ6IGNhbGMoLTEgKiB2YXIoLS1ib3JkZXItbGVmdCwgMnB4KSk7XG4gIHdpZHRoOiBjYWxjKDEwMCUgKyB2YXIoLS1ib3JkZXItaG9yaXpvbnRhbCwgNHB4KSk7XG4gIGJvcmRlci1yYWRpdXM6IDAgMCB2YXIoLS1yb3VuZGVkLW1kKSB2YXIoLS1yb3VuZGVkLW1kKTtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0yOHB4KTtcbn1cblxuLnJlc2l6ZS1saW5lLmxlZnQge1xuICB0b3A6IGNhbGMoLTEgKiB2YXIoLS1ib3JkZXItdG9wLCAycHgpKTtcbiAgbGVmdDogLTEycHg7XG4gIGhlaWdodDogY2FsYygxMDAlICsgdmFyKC0tYm9yZGVyLXZlcnRpY2FsLCA0cHgpKTtcbiAgYm9yZGVyLXJhZGl1czogdmFyKC0tcm91bmRlZC1tZCkgMCAwIHZhcigtLXJvdW5kZWQtbWQpO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMjhweCk7XG59XG5cbi5yZXNpemUtbGluZS5yaWdodCB7XG4gIHRvcDogY2FsYygtMSAqIHZhcigtLWJvcmRlci10b3AsIDJweCkpO1xuICByaWdodDogLTEycHg7XG4gIGhlaWdodDogY2FsYygxMDAlICsgdmFyKC0tYm9yZGVyLXZlcnRpY2FsLCA0cHgpKTtcbiAgYm9yZGVyLXJhZGl1czogMCB2YXIoLS1yb3VuZGVkLW1kKSB2YXIoLS1yb3VuZGVkLW1kKSAwO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTI4cHgpO1xufVxuXG4ucmVzaXplLWNvbnRhaW5lci5yaWdodDpob3ZlciB+IC5yZXNpemUtbGluZS5yaWdodCxcbi5yZXNpemUtY29udGFpbmVyLmxlZnQ6aG92ZXIgfiAucmVzaXplLWxpbmUubGVmdCxcbi5yZXNpemUtbGluZS5yaWdodC5kcmFnZ2luZyxcbi5yZXNpemUtbGluZS5sZWZ0LmRyYWdnaW5nIHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDApO1xufVxuXG4ucmVzaXplLWNvbnRhaW5lci5ib3R0b206aG92ZXIgfiAucmVzaXplLWxpbmUuYm90dG9tLFxuLnJlc2l6ZS1jb250YWluZXIudG9wOmhvdmVyIH4gLnJlc2l6ZS1saW5lLnRvcCxcbi5yZXNpemUtbGluZS5ib3R0b20uZHJhZ2dpbmcsXG4ucmVzaXplLWxpbmUudG9wLmRyYWdnaW5nIHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApO1xufVxuXG4vKiBtYWtlIHN1cmUgdGhhdCB3ZSBkb24ndCBzaG93IG11bHRpcGxlIGhhbmRsZXMgYXQgb25jZVxuICogd2Ugc2hvdWxkIG9ubHkgZXZlciBzaG93IHRoZSBjdXJyZW50bHkgcmVzaXppbmcgaGFuZGxlXG4gKiByZWdhcmRsZXNzIG9mIGhvdmVyIHN0YXRlIFxuICovXG4ucmVzaXplLWNvbnRhaW5lci5uby1ob3Zlci5yaWdodDpob3ZlciB+IC5yZXNpemUtbGluZS5yaWdodCB7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtMjhweCk7XG59XG4ucmVzaXplLWNvbnRhaW5lci5uby1ob3Zlci5sZWZ0OmhvdmVyIH4gLnJlc2l6ZS1saW5lLmxlZnQge1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMjhweCk7XG59XG4ucmVzaXplLWNvbnRhaW5lci5uby1ob3Zlci5ib3R0b206aG92ZXIgfiAucmVzaXplLWxpbmUuYm90dG9tIHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0yOHB4KTtcbn1cbi5yZXNpemUtY29udGFpbmVyLm5vLWhvdmVyLnRvcDpob3ZlciB+IC5yZXNpemUtbGluZS50b3Age1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMjhweCk7XG59XG5gLFwiXCIse3ZlcnNpb246Myxzb3VyY2VzOltcIndlYnBhY2s6Ly8uL3NyYy9uZXh0LWRldnRvb2xzL2Rldi1vdmVybGF5L2NvbXBvbmVudHMvZGV2dG9vbHMtcGFuZWwvcmVzaXplL3Jlc2l6ZS1oYW5kbGUuY3NzXCJdLG5hbWVzOltdLG1hcHBpbmdzOlwiQUFBQTtFQUNFLGtCQUFrQjtFQUNsQix5QkFBeUI7RUFDekIsV0FBVztFQUNYLHlCQUF5QjtFQUN6Qix1QkFBdUI7QUFDekI7O0FBRUE7RUFDRSxrQkFBa0I7RUFDbEIseUJBQXlCO0VBQ3pCLFdBQVc7RUFDWCxvQkFBb0I7RUFDcEIsdUVBQXVFO0VBQ3ZFLDREQUE0RDtFQUM1RCx1REFBdUQ7RUFDdkQsc0JBQXNCO0VBQ3RCLHVDQUF1QztBQUN6Qzs7QUFFQSxtSUFBbUk7QUFDbkk7RUFDRSwwREFBMEQsRUFBRSw4QkFBOEI7QUFDNUY7O0FBRUE7O0VBRUUsTUFBTTtFQUNOLFlBQVk7RUFDWixXQUFXO0VBQ1gsaUJBQWlCO0FBQ25COztBQUVBLG9EQUFvRDs7QUFFcEQ7O0VBRUUsT0FBTztFQUNQLFdBQVc7RUFDWCxZQUFZO0VBQ1osaUJBQWlCO0FBQ25COztBQUVBO0VBQ0UsVUFBVTtBQUNaO0FBQ0E7RUFDRSxhQUFhO0FBQ2Y7QUFDQTtFQUNFLFdBQVc7QUFDYjtBQUNBO0VBQ0UsWUFBWTtBQUNkOztBQUVBOzs7O0VBSUUsV0FBVztFQUNYLFlBQVk7RUFDWixXQUFXO0FBQ2I7O0FBRUE7RUFDRSxVQUFVO0VBQ1YsV0FBVztFQUNYLG1CQUFtQjtBQUNyQjtBQUNBO0VBQ0UsVUFBVTtFQUNWLFlBQVk7RUFDWixtQkFBbUI7QUFDckI7QUFDQTtFQUNFLGFBQWE7RUFDYixXQUFXO0VBQ1gsbUJBQW1CO0FBQ3JCO0FBQ0E7RUFDRSxhQUFhO0VBQ2IsWUFBWTtFQUNaLG1CQUFtQjtBQUNyQjs7QUFFQTs7RUFFRSxZQUFZO0VBQ1osV0FBVztFQUNYLDZDQUE2QztBQUMvQzs7QUFFQTs7RUFFRSxXQUFXO0VBQ1gsWUFBWTtFQUNaLDZDQUE2QztBQUMvQzs7QUFFQTtFQUNFLFVBQVU7RUFDVix3Q0FBd0M7RUFDeEMsaURBQWlEO0VBQ2pELHNEQUFzRDtFQUN0RCwyQkFBMkI7QUFDN0I7O0FBRUE7RUFDRSxhQUFhO0VBQ2Isd0NBQXdDO0VBQ3hDLGlEQUFpRDtFQUNqRCxzREFBc0Q7RUFDdEQsNEJBQTRCO0FBQzlCOztBQUVBO0VBQ0Usc0NBQXNDO0VBQ3RDLFdBQVc7RUFDWCxnREFBZ0Q7RUFDaEQsc0RBQXNEO0VBQ3RELDJCQUEyQjtBQUM3Qjs7QUFFQTtFQUNFLHNDQUFzQztFQUN0QyxZQUFZO0VBQ1osZ0RBQWdEO0VBQ2hELHNEQUFzRDtFQUN0RCw0QkFBNEI7QUFDOUI7O0FBRUE7Ozs7RUFJRSx3QkFBd0I7QUFDMUI7O0FBRUE7Ozs7RUFJRSx3QkFBd0I7QUFDMUI7O0FBRUE7OztFQUdFO0FBQ0Y7RUFDRSw0QkFBNEI7QUFDOUI7QUFDQTtFQUNFLDJCQUEyQjtBQUM3QjtBQUNBO0VBQ0UsNEJBQTRCO0FBQzlCO0FBQ0E7RUFDRSwyQkFBMkI7QUFDN0JcIixzb3VyY2VzQ29udGVudDpbXCIucmVzaXplLWNvbnRhaW5lciB7XFxuICBwb3NpdGlvbjogYWJzb2x1dGU7XFxuICAvKiB0b2RvOiBiZXR0ZXIgeiBpbmRleCAqL1xcbiAgei1pbmRleDogMTA7XFxuICAvKiB0b2RvOiBpcyB0aGlzIG5lZWRlZCAqL1xcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XFxufVxcblxcbi5yZXNpemUtbGluZSB7XFxuICBwb3NpdGlvbjogYWJzb2x1dGU7XFxuICAvKiB0b2RvIHNtYXJ0ZXIgeiBpbmRleCAqL1xcbiAgei1pbmRleDogLTE7XFxuICBwb2ludGVyLWV2ZW50czogbm9uZTtcXG4gIC8qIGEgbm9ybWFsIGV4aXQgYW5pbWF0aW9uIGN1cnZlLSBhdCB0aGlzIHBvaW50IHRoZSBleGl0IGFuaW1hdGlvbiBpcyAqL1xcbiAgLyogaW1tZWRpYXRlbHkgcmVzcG9uc2l2ZSBzbyB3ZSBkb24ndCBuZWVkIGEgYmVzcG9rZSBjdXJ2ZSAqL1xcbiAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuNHMgY3ViaWMtYmV6aWVyKDAuNCwgMCwgMC4yLCAxKTtcXG4gIC8qIHRvZG86IGJldHRlciB2YXI/ICovXFxuICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1jb2xvci1ncmF5LTEwMCk7XFxufVxcblxcbi8qIHN0YXJ0IHJlYWxseSBmYXN0IGJlY2F1c2Ugd2Ugc3RhcnQgc3VwZXIgaGlkZGVuIGluaXRpYWxseSBiZWhpbmQgdGhlIHBhbmVsLCBvdGhlcndpc2UgZmVlbHMgbGlrZSBhbiB1bmludGVuZGVkIGFuaW1hdGlvbiBkZWxheSAqL1xcbi5yZXNpemUtY29udGFpbmVyOmhvdmVyIH4gLnJlc2l6ZS1saW5lIHtcXG4gIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjJzIGN1YmljLWJlemllcigwLjA1LCAwLjksIDAuMiwgMSk7IC8qIEZhc3Qgc3RhcnQgZm9yIGFuaW1hdGUgaW4gKi9cXG59XFxuXFxuLnJlc2l6ZS1jb250YWluZXIucmlnaHQsXFxuLnJlc2l6ZS1jb250YWluZXIubGVmdCB7XFxuICB0b3A6IDA7XFxuICBoZWlnaHQ6IDEwMCU7XFxuICB3aWR0aDogMjVweDtcXG4gIGN1cnNvcjogZXctcmVzaXplO1xcbn1cXG5cXG4vKiB0b2RvOiBkb24ndCBoYXJkIGNvZGUgYWxsIHRoZXNlIHZhbHVlcy91c2UgdmFycyAqL1xcblxcbi5yZXNpemUtY29udGFpbmVyLmJvdHRvbSxcXG4ucmVzaXplLWNvbnRhaW5lci50b3Age1xcbiAgbGVmdDogMDtcXG4gIHdpZHRoOiAxMDAlO1xcbiAgaGVpZ2h0OiAyNXB4O1xcbiAgY3Vyc29yOiBucy1yZXNpemU7XFxufVxcblxcbi5yZXNpemUtY29udGFpbmVyLnRvcCB7XFxuICB0b3A6IC0xMnB4O1xcbn1cXG4ucmVzaXplLWNvbnRhaW5lci5ib3R0b20ge1xcbiAgYm90dG9tOiAtMTJweDtcXG59XFxuLnJlc2l6ZS1jb250YWluZXIubGVmdCB7XFxuICBsZWZ0OiAtMTJweDtcXG59XFxuLnJlc2l6ZS1jb250YWluZXIucmlnaHQge1xcbiAgcmlnaHQ6IC0xMnB4O1xcbn1cXG5cXG4ucmVzaXplLWNvbnRhaW5lci50b3AtbGVmdCxcXG4ucmVzaXplLWNvbnRhaW5lci50b3AtcmlnaHQsXFxuLnJlc2l6ZS1jb250YWluZXIuYm90dG9tLWxlZnQsXFxuLnJlc2l6ZS1jb250YWluZXIuYm90dG9tLXJpZ2h0IHtcXG4gIHdpZHRoOiAzMnB4O1xcbiAgaGVpZ2h0OiAzMnB4O1xcbiAgei1pbmRleDogMTU7XFxufVxcblxcbi5yZXNpemUtY29udGFpbmVyLnRvcC1sZWZ0IHtcXG4gIHRvcDogLTE2cHg7XFxuICBsZWZ0OiAtMTZweDtcXG4gIGN1cnNvcjogbndzZS1yZXNpemU7XFxufVxcbi5yZXNpemUtY29udGFpbmVyLnRvcC1yaWdodCB7XFxuICB0b3A6IC0xNnB4O1xcbiAgcmlnaHQ6IC0xNnB4O1xcbiAgY3Vyc29yOiBuZXN3LXJlc2l6ZTtcXG59XFxuLnJlc2l6ZS1jb250YWluZXIuYm90dG9tLWxlZnQge1xcbiAgYm90dG9tOiAtMTZweDtcXG4gIGxlZnQ6IC0xNnB4O1xcbiAgY3Vyc29yOiBuZXN3LXJlc2l6ZTtcXG59XFxuLnJlc2l6ZS1jb250YWluZXIuYm90dG9tLXJpZ2h0IHtcXG4gIGJvdHRvbTogLTE2cHg7XFxuICByaWdodDogLTE2cHg7XFxuICBjdXJzb3I6IG53c2UtcmVzaXplO1xcbn1cXG5cXG4ucmVzaXplLWxpbmUudG9wLFxcbi5yZXNpemUtbGluZS5ib3R0b20ge1xcbiAgaGVpZ2h0OiAyOHB4O1xcbiAgd2lkdGg6IDEwMCU7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jb2xvci1iYWNrZ3JvdW5kLTEwMCk7XFxufVxcblxcbi5yZXNpemUtbGluZS5sZWZ0LFxcbi5yZXNpemUtbGluZS5yaWdodCB7XFxuICB3aWR0aDogMjhweDtcXG4gIGhlaWdodDogMTAwJTtcXG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNvbG9yLWJhY2tncm91bmQtMTAwKTtcXG59XFxuXFxuLnJlc2l6ZS1saW5lLnRvcCB7XFxuICB0b3A6IC0xMnB4O1xcbiAgbGVmdDogY2FsYygtMSAqIHZhcigtLWJvcmRlci1sZWZ0LCAycHgpKTtcXG4gIHdpZHRoOiBjYWxjKDEwMCUgKyB2YXIoLS1ib3JkZXItaG9yaXpvbnRhbCwgNHB4KSk7XFxuICBib3JkZXItcmFkaXVzOiB2YXIoLS1yb3VuZGVkLW1kKSB2YXIoLS1yb3VuZGVkLW1kKSAwIDA7XFxuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMjhweCk7XFxufVxcblxcbi5yZXNpemUtbGluZS5ib3R0b20ge1xcbiAgYm90dG9tOiAtMTJweDtcXG4gIGxlZnQ6IGNhbGMoLTEgKiB2YXIoLS1ib3JkZXItbGVmdCwgMnB4KSk7XFxuICB3aWR0aDogY2FsYygxMDAlICsgdmFyKC0tYm9yZGVyLWhvcml6b250YWwsIDRweCkpO1xcbiAgYm9yZGVyLXJhZGl1czogMCAwIHZhcigtLXJvdW5kZWQtbWQpIHZhcigtLXJvdW5kZWQtbWQpO1xcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0yOHB4KTtcXG59XFxuXFxuLnJlc2l6ZS1saW5lLmxlZnQge1xcbiAgdG9wOiBjYWxjKC0xICogdmFyKC0tYm9yZGVyLXRvcCwgMnB4KSk7XFxuICBsZWZ0OiAtMTJweDtcXG4gIGhlaWdodDogY2FsYygxMDAlICsgdmFyKC0tYm9yZGVyLXZlcnRpY2FsLCA0cHgpKTtcXG4gIGJvcmRlci1yYWRpdXM6IHZhcigtLXJvdW5kZWQtbWQpIDAgMCB2YXIoLS1yb3VuZGVkLW1kKTtcXG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgyOHB4KTtcXG59XFxuXFxuLnJlc2l6ZS1saW5lLnJpZ2h0IHtcXG4gIHRvcDogY2FsYygtMSAqIHZhcigtLWJvcmRlci10b3AsIDJweCkpO1xcbiAgcmlnaHQ6IC0xMnB4O1xcbiAgaGVpZ2h0OiBjYWxjKDEwMCUgKyB2YXIoLS1ib3JkZXItdmVydGljYWwsIDRweCkpO1xcbiAgYm9yZGVyLXJhZGl1czogMCB2YXIoLS1yb3VuZGVkLW1kKSB2YXIoLS1yb3VuZGVkLW1kKSAwO1xcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC0yOHB4KTtcXG59XFxuXFxuLnJlc2l6ZS1jb250YWluZXIucmlnaHQ6aG92ZXIgfiAucmVzaXplLWxpbmUucmlnaHQsXFxuLnJlc2l6ZS1jb250YWluZXIubGVmdDpob3ZlciB+IC5yZXNpemUtbGluZS5sZWZ0LFxcbi5yZXNpemUtbGluZS5yaWdodC5kcmFnZ2luZyxcXG4ucmVzaXplLWxpbmUubGVmdC5kcmFnZ2luZyB7XFxuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMCk7XFxufVxcblxcbi5yZXNpemUtY29udGFpbmVyLmJvdHRvbTpob3ZlciB+IC5yZXNpemUtbGluZS5ib3R0b20sXFxuLnJlc2l6ZS1jb250YWluZXIudG9wOmhvdmVyIH4gLnJlc2l6ZS1saW5lLnRvcCxcXG4ucmVzaXplLWxpbmUuYm90dG9tLmRyYWdnaW5nLFxcbi5yZXNpemUtbGluZS50b3AuZHJhZ2dpbmcge1xcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApO1xcbn1cXG5cXG4vKiBtYWtlIHN1cmUgdGhhdCB3ZSBkb24ndCBzaG93IG11bHRpcGxlIGhhbmRsZXMgYXQgb25jZVxcbiAqIHdlIHNob3VsZCBvbmx5IGV2ZXIgc2hvdyB0aGUgY3VycmVudGx5IHJlc2l6aW5nIGhhbmRsZVxcbiAqIHJlZ2FyZGxlc3Mgb2YgaG92ZXIgc3RhdGUgXFxuICovXFxuLnJlc2l6ZS1jb250YWluZXIubm8taG92ZXIucmlnaHQ6aG92ZXIgfiAucmVzaXplLWxpbmUucmlnaHQge1xcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC0yOHB4KTtcXG59XFxuLnJlc2l6ZS1jb250YWluZXIubm8taG92ZXIubGVmdDpob3ZlciB+IC5yZXNpemUtbGluZS5sZWZ0IHtcXG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgyOHB4KTtcXG59XFxuLnJlc2l6ZS1jb250YWluZXIubm8taG92ZXIuYm90dG9tOmhvdmVyIH4gLnJlc2l6ZS1saW5lLmJvdHRvbSB7XFxuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTI4cHgpO1xcbn1cXG4ucmVzaXplLWNvbnRhaW5lci5uby1ob3Zlci50b3A6aG92ZXIgfiAucmVzaXplLWxpbmUudG9wIHtcXG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgyOHB4KTtcXG59XFxuXCJdLHNvdXJjZVJvb3Q6XCJcIn1dKTtsZXQgbD1pfSxcIi4uLy4uL25vZGVfbW9kdWxlcy8ucG5wbS9jc3MtbG9hZGVyQDcuMS4yX0Byc3BhY2srY29yZUAxLjQuNV9Ac3djK2hlbHBlcnNAMC41LjE1X193ZWJwYWNrQDUuOTguMF9Ac3djK2NvcmVAMS4xMS4yNF9Ac3dfd203ZWU1aWM0bW9mcmhpc3Vkd29uNHFwcTQvbm9kZV9tb2R1bGVzL2Nzcy1sb2FkZXIvZGlzdC9janMuanMhLi9zcmMvbmV4dC1kZXZ0b29scy9kZXYtb3ZlcmxheS9jb21wb25lbnRzL292ZXJ2aWV3L3NlZ21lbnQtYm91bmRhcnktdHJpZ2dlci5jc3NcIjpmdW5jdGlvbihlLG4sdCl7XCJ1c2Ugc3RyaWN0XCI7dC5kKG4se1o6KCk9Pmx9KTt2YXIgcj10KFwiLi4vLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2Nzcy1sb2FkZXJANy4xLjJfQHJzcGFjaytjb3JlQDEuNC41X0Bzd2MraGVscGVyc0AwLjUuMTVfX3dlYnBhY2tANS45OC4wX0Bzd2MrY29yZUAxLjExLjI0X0Bzd193bTdlZTVpYzRtb2ZyaGlzdWR3b240cXBxNC9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9kaXN0L3J1bnRpbWUvc291cmNlTWFwcy5qc1wiKSxvPXQubihyKSxhPXQoXCIuLi8uLi9ub2RlX21vZHVsZXMvLnBucG0vY3NzLWxvYWRlckA3LjEuMl9AcnNwYWNrK2NvcmVAMS40LjVfQHN3YytoZWxwZXJzQDAuNS4xNV9fd2VicGFja0A1Ljk4LjBfQHN3Yytjb3JlQDEuMTEuMjRfQHN3X3dtN2VlNWljNG1vZnJoaXN1ZHdvbjRxcHE0L25vZGVfbW9kdWxlcy9jc3MtbG9hZGVyL2Rpc3QvcnVudGltZS9hcGkuanNcIiksaT10Lm4oYSkoKShvKCkpO2kucHVzaChbZS5pZCxgLnNlZ21lbnQtYm91bmRhcnktdHJpZ2dlciB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGdhcDogNHB4O1xuICBwYWRkaW5nOiA0cHggNnB4O1xuICBsaW5lLWhlaWdodDogMTZweDtcbiAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgY29sb3I6IHZhcigtLWNvbG9yLWdyYXktMTAwMCk7XG4gIGJvcmRlci1yYWRpdXM6IDk5OXB4O1xuICBib3JkZXI6IG5vbmU7XG4gIGZvbnQtc2l6ZTogdmFyKC0tc2l6ZS0xMik7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciAwLjE1cyBlYXNlO1xufVxuXG4uc2VnbWVudC1ib3VuZGFyeS10cmlnZ2VyLXRleHQge1xuICBmb250LXNpemU6IHZhcigtLXNpemUtMTIpO1xuICBmb250LXdlaWdodDogNTAwO1xuICB1c2VyLXNlbGVjdDogbm9uZTtcbiAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xufVxuXG4uc2VnbWVudC1ib3VuZGFyeS10cmlnZ2VyLXRleHQgLnBsdXMtaWNvbiB7XG4gIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjI1cyBlYXNlO1xufVxuXG4uc2VnbWVudC1ib3VuZGFyeS10cmlnZ2VyLXRleHQ6aG92ZXIgLnBsdXMtaWNvbiB7XG4gIGNvbG9yOiB2YXIoLS1jb2xvci1ncmF5LTgwMCk7XG59XG5cbi5zZWdtZW50LWJvdW5kYXJ5LXRyaWdnZXIgc3ZnIHtcbiAgd2lkdGg6IDE0cHg7XG4gIGhlaWdodDogMTRweDtcbiAgZmxleC1zaHJpbms6IDA7XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG59XG5cbi5zZWdtZW50LWJvdW5kYXJ5LXRyaWdnZXI6aG92ZXIgc3ZnIHtcbiAgY29sb3I6IHZhcigtLWNvbG9yLWdyYXktNzAwKTtcbn1cblxuLnNlZ21lbnQtYm91bmRhcnktdHJpZ2dlcltkaXNhYmxlZF0gc3ZnLFxuLnNlZ21lbnQtYm91bmRhcnktdHJpZ2dlcltkaXNhYmxlZF06aG92ZXIgc3ZnIHtcbiAgY29sb3I6IHZhcigtLWNvbG9yLWdyYXktNDAwKTtcbiAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbn1cblxuLnNlZ21lbnQtYm91bmRhcnktZHJvcGRvd24ge1xuICBwYWRkaW5nOiA4cHg7XG4gIGJhY2tncm91bmQ6IHZhcigtLWNvbG9yLWJhY2tncm91bmQtMTAwKTtcbiAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tY29sb3ItZ3JheS00MDApO1xuICBib3JkZXItcmFkaXVzOiAxNnB4O1xuICBtaW4td2lkdGg6IDEyMHB4O1xuICB1c2VyLXNlbGVjdDogbm9uZTtcbiAgY3Vyc29yOiBkZWZhdWx0O1xuICBib3gtc2hhZG93OiAwcHggNHB4IDhweCAtNHB4IGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS1jb2xvci1ncmF5LTkwMCkgNCUsIHRyYW5zcGFyZW50KTtcbn1cblxuLnNlZ21lbnQtYm91bmRhcnktZHJvcGRvd24tcG9zaXRpb25lciB7XG4gIHotaW5kZXg6IHZhcigtLXRvcC16LWluZGV4KTtcbn1cblxuLnNlZ21lbnQtYm91bmRhcnktZHJvcGRvd24taXRlbSB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIHBhZGRpbmc6IDhweDtcbiAgbGluZS1oZWlnaHQ6IDIwcHg7XG4gIGZvbnQtc2l6ZTogMTRweDtcbiAgYm9yZGVyLXJhZGl1czogNnB4O1xuICBjb2xvcjogdmFyKC0tY29sb3ItZ3JheS0xMDAwKTtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBtaW4td2lkdGg6IDIyMHB4O1xuICBib3JkZXI6IG5vbmU7XG4gIGJhY2tncm91bmQ6IG5vbmU7XG4gIHdpZHRoOiAxMDAlO1xufVxuXG4uc2VnbWVudC1ib3VuZGFyeS1kcm9wZG93bi1pdGVtW2RhdGEtZGlzYWJsZWRdIHtcbiAgY29sb3I6IHZhcigtLWNvbG9yLWdyYXktNDAwKTtcbiAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbn1cblxuLnNlZ21lbnQtYm91bmRhcnktZHJvcGRvd24taXRlbSBzdmcge1xuICBtYXJnaW4tcmlnaHQ6IDEycHg7XG4gIGNvbG9yOiBjdXJyZW50Q29sb3I7XG59XG5cbi5zZWdtZW50LWJvdW5kYXJ5LWRyb3Bkb3duLWl0ZW06aG92ZXIge1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jb2xvci1ncmF5LTIwMCk7XG59XG5cbi5zZWdtZW50LWJvdW5kYXJ5LWRyb3Bkb3duLWl0ZW06Zmlyc3QtY2hpbGQge1xuICBib3JkZXItdG9wLWxlZnQtcmFkaXVzOiA0cHg7XG4gIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiA0cHg7XG59XG5cbi5zZWdtZW50LWJvdW5kYXJ5LWRyb3Bkb3duLWl0ZW06bGFzdC1jaGlsZCB7XG4gIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IDRweDtcbiAgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6IDRweDtcbn1cblxuLnNlZ21lbnQtYm91bmRhcnktZ3JvdXAtbGFiZWwge1xuICBwYWRkaW5nOiA4cHg7XG4gIGZvbnQtc2l6ZTogMTNweDtcbiAgbGluZS1oZWlnaHQ6IDE2cHg7XG4gIGZvbnQtd2VpZ2h0OiA0MDA7XG4gIGNvbG9yOiB2YXIoLS1jb2xvci1ncmF5LTkwMCk7XG59XG5gLFwiXCIse3ZlcnNpb246Myxzb3VyY2VzOltcIndlYnBhY2s6Ly8uL3NyYy9uZXh0LWRldnRvb2xzL2Rldi1vdmVybGF5L2NvbXBvbmVudHMvb3ZlcnZpZXcvc2VnbWVudC1ib3VuZGFyeS10cmlnZ2VyLmNzc1wiXSxuYW1lczpbXSxtYXBwaW5nczpcIkFBQUE7RUFDRSxhQUFhO0VBQ2IsbUJBQW1CO0VBQ25CLFFBQVE7RUFDUixnQkFBZ0I7RUFDaEIsaUJBQWlCO0VBQ2pCLGdCQUFnQjtFQUNoQiw2QkFBNkI7RUFDN0Isb0JBQW9CO0VBQ3BCLFlBQVk7RUFDWix5QkFBeUI7RUFDekIsZUFBZTtFQUNmLHVDQUF1QztBQUN6Qzs7QUFFQTtFQUNFLHlCQUF5QjtFQUN6QixnQkFBZ0I7RUFDaEIsaUJBQWlCO0VBQ2pCLG9CQUFvQjtFQUNwQixtQkFBbUI7RUFDbkIsdUJBQXVCO0FBQ3pCOztBQUVBO0VBQ0UsZ0NBQWdDO0FBQ2xDOztBQUVBO0VBQ0UsNEJBQTRCO0FBQzlCOztBQUVBO0VBQ0UsV0FBVztFQUNYLFlBQVk7RUFDWixjQUFjO0VBQ2Qsc0JBQXNCO0FBQ3hCOztBQUVBO0VBQ0UsNEJBQTRCO0FBQzlCOztBQUVBOztFQUVFLDRCQUE0QjtFQUM1QixtQkFBbUI7QUFDckI7O0FBRUE7RUFDRSxZQUFZO0VBQ1osdUNBQXVDO0VBQ3ZDLHVDQUF1QztFQUN2QyxtQkFBbUI7RUFDbkIsZ0JBQWdCO0VBQ2hCLGlCQUFpQjtFQUNqQixlQUFlO0VBQ2Ysc0ZBQXNGO0FBQ3hGOztBQUVBO0VBQ0UsMkJBQTJCO0FBQzdCOztBQUVBO0VBQ0UsYUFBYTtFQUNiLG1CQUFtQjtFQUNuQixZQUFZO0VBQ1osaUJBQWlCO0VBQ2pCLGVBQWU7RUFDZixrQkFBa0I7RUFDbEIsNkJBQTZCO0VBQzdCLGVBQWU7RUFDZixnQkFBZ0I7RUFDaEIsWUFBWTtFQUNaLGdCQUFnQjtFQUNoQixXQUFXO0FBQ2I7O0FBRUE7RUFDRSw0QkFBNEI7RUFDNUIsbUJBQW1CO0FBQ3JCOztBQUVBO0VBQ0Usa0JBQWtCO0VBQ2xCLG1CQUFtQjtBQUNyQjs7QUFFQTtFQUNFLGlDQUFpQztBQUNuQzs7QUFFQTtFQUNFLDJCQUEyQjtFQUMzQiw0QkFBNEI7QUFDOUI7O0FBRUE7RUFDRSw4QkFBOEI7RUFDOUIsK0JBQStCO0FBQ2pDOztBQUVBO0VBQ0UsWUFBWTtFQUNaLGVBQWU7RUFDZixpQkFBaUI7RUFDakIsZ0JBQWdCO0VBQ2hCLDRCQUE0QjtBQUM5QlwiLHNvdXJjZXNDb250ZW50OltcIi5zZWdtZW50LWJvdW5kYXJ5LXRyaWdnZXIge1xcbiAgZGlzcGxheTogZmxleDtcXG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XFxuICBnYXA6IDRweDtcXG4gIHBhZGRpbmc6IDRweCA2cHg7XFxuICBsaW5lLWhlaWdodDogMTZweDtcXG4gIGZvbnQtd2VpZ2h0OiA1MDA7XFxuICBjb2xvcjogdmFyKC0tY29sb3ItZ3JheS0xMDAwKTtcXG4gIGJvcmRlci1yYWRpdXM6IDk5OXB4O1xcbiAgYm9yZGVyOiBub25lO1xcbiAgZm9udC1zaXplOiB2YXIoLS1zaXplLTEyKTtcXG4gIGN1cnNvcjogcG9pbnRlcjtcXG4gIHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgMC4xNXMgZWFzZTtcXG59XFxuXFxuLnNlZ21lbnQtYm91bmRhcnktdHJpZ2dlci10ZXh0IHtcXG4gIGZvbnQtc2l6ZTogdmFyKC0tc2l6ZS0xMik7XFxuICBmb250LXdlaWdodDogNTAwO1xcbiAgdXNlci1zZWxlY3Q6IG5vbmU7XFxuICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcXG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XFxuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcXG59XFxuXFxuLnNlZ21lbnQtYm91bmRhcnktdHJpZ2dlci10ZXh0IC5wbHVzLWljb24ge1xcbiAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuMjVzIGVhc2U7XFxufVxcblxcbi5zZWdtZW50LWJvdW5kYXJ5LXRyaWdnZXItdGV4dDpob3ZlciAucGx1cy1pY29uIHtcXG4gIGNvbG9yOiB2YXIoLS1jb2xvci1ncmF5LTgwMCk7XFxufVxcblxcbi5zZWdtZW50LWJvdW5kYXJ5LXRyaWdnZXIgc3ZnIHtcXG4gIHdpZHRoOiAxNHB4O1xcbiAgaGVpZ2h0OiAxNHB4O1xcbiAgZmxleC1zaHJpbms6IDA7XFxuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xcbn1cXG5cXG4uc2VnbWVudC1ib3VuZGFyeS10cmlnZ2VyOmhvdmVyIHN2ZyB7XFxuICBjb2xvcjogdmFyKC0tY29sb3ItZ3JheS03MDApO1xcbn1cXG5cXG4uc2VnbWVudC1ib3VuZGFyeS10cmlnZ2VyW2Rpc2FibGVkXSBzdmcsXFxuLnNlZ21lbnQtYm91bmRhcnktdHJpZ2dlcltkaXNhYmxlZF06aG92ZXIgc3ZnIHtcXG4gIGNvbG9yOiB2YXIoLS1jb2xvci1ncmF5LTQwMCk7XFxuICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xcbn1cXG5cXG4uc2VnbWVudC1ib3VuZGFyeS1kcm9wZG93biB7XFxuICBwYWRkaW5nOiA4cHg7XFxuICBiYWNrZ3JvdW5kOiB2YXIoLS1jb2xvci1iYWNrZ3JvdW5kLTEwMCk7XFxuICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1jb2xvci1ncmF5LTQwMCk7XFxuICBib3JkZXItcmFkaXVzOiAxNnB4O1xcbiAgbWluLXdpZHRoOiAxMjBweDtcXG4gIHVzZXItc2VsZWN0OiBub25lO1xcbiAgY3Vyc29yOiBkZWZhdWx0O1xcbiAgYm94LXNoYWRvdzogMHB4IDRweCA4cHggLTRweCBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0tY29sb3ItZ3JheS05MDApIDQlLCB0cmFuc3BhcmVudCk7XFxufVxcblxcbi5zZWdtZW50LWJvdW5kYXJ5LWRyb3Bkb3duLXBvc2l0aW9uZXIge1xcbiAgei1pbmRleDogdmFyKC0tdG9wLXotaW5kZXgpO1xcbn1cXG5cXG4uc2VnbWVudC1ib3VuZGFyeS1kcm9wZG93bi1pdGVtIHtcXG4gIGRpc3BsYXk6IGZsZXg7XFxuICBhbGlnbi1pdGVtczogY2VudGVyO1xcbiAgcGFkZGluZzogOHB4O1xcbiAgbGluZS1oZWlnaHQ6IDIwcHg7XFxuICBmb250LXNpemU6IDE0cHg7XFxuICBib3JkZXItcmFkaXVzOiA2cHg7XFxuICBjb2xvcjogdmFyKC0tY29sb3ItZ3JheS0xMDAwKTtcXG4gIGN1cnNvcjogcG9pbnRlcjtcXG4gIG1pbi13aWR0aDogMjIwcHg7XFxuICBib3JkZXI6IG5vbmU7XFxuICBiYWNrZ3JvdW5kOiBub25lO1xcbiAgd2lkdGg6IDEwMCU7XFxufVxcblxcbi5zZWdtZW50LWJvdW5kYXJ5LWRyb3Bkb3duLWl0ZW1bZGF0YS1kaXNhYmxlZF0ge1xcbiAgY29sb3I6IHZhcigtLWNvbG9yLWdyYXktNDAwKTtcXG4gIGN1cnNvcjogbm90LWFsbG93ZWQ7XFxufVxcblxcbi5zZWdtZW50LWJvdW5kYXJ5LWRyb3Bkb3duLWl0ZW0gc3ZnIHtcXG4gIG1hcmdpbi1yaWdodDogMTJweDtcXG4gIGNvbG9yOiBjdXJyZW50Q29sb3I7XFxufVxcblxcbi5zZWdtZW50LWJvdW5kYXJ5LWRyb3Bkb3duLWl0ZW06aG92ZXIge1xcbiAgYmFja2dyb3VuZDogdmFyKC0tY29sb3ItZ3JheS0yMDApO1xcbn1cXG5cXG4uc2VnbWVudC1ib3VuZGFyeS1kcm9wZG93bi1pdGVtOmZpcnN0LWNoaWxkIHtcXG4gIGJvcmRlci10b3AtbGVmdC1yYWRpdXM6IDRweDtcXG4gIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiA0cHg7XFxufVxcblxcbi5zZWdtZW50LWJvdW5kYXJ5LWRyb3Bkb3duLWl0ZW06bGFzdC1jaGlsZCB7XFxuICBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiA0cHg7XFxuICBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogNHB4O1xcbn1cXG5cXG4uc2VnbWVudC1ib3VuZGFyeS1ncm91cC1sYWJlbCB7XFxuICBwYWRkaW5nOiA4cHg7XFxuICBmb250LXNpemU6IDEzcHg7XFxuICBsaW5lLWhlaWdodDogMTZweDtcXG4gIGZvbnQtd2VpZ2h0OiA0MDA7XFxuICBjb2xvcjogdmFyKC0tY29sb3ItZ3JheS05MDApO1xcbn1cXG5cIl0sc291cmNlUm9vdDpcIlwifV0pO2xldCBsPWl9LFwiLi4vLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2Nzcy1sb2FkZXJANy4xLjJfQHJzcGFjaytjb3JlQDEuNC41X0Bzd2MraGVscGVyc0AwLjUuMTVfX3dlYnBhY2tANS45OC4wX0Bzd2MrY29yZUAxLjExLjI0X0Bzd193bTdlZTVpYzRtb2ZyaGlzdWR3b240cXBxNC9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9kaXN0L2Nqcy5qcyEuL3NyYy9uZXh0LWRldnRvb2xzL2Rldi1vdmVybGF5L2NvbXBvbmVudHMvb3ZlcnZpZXcvc2VnbWVudC1leHBsb3Jlci5jc3NcIjpmdW5jdGlvbihlLG4sdCl7XCJ1c2Ugc3RyaWN0XCI7dC5kKG4se1o6KCk9Pmx9KTt2YXIgcj10KFwiLi4vLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2Nzcy1sb2FkZXJANy4xLjJfQHJzcGFjaytjb3JlQDEuNC41X0Bzd2MraGVscGVyc0AwLjUuMTVfX3dlYnBhY2tANS45OC4wX0Bzd2MrY29yZUAxLjExLjI0X0Bzd193bTdlZTVpYzRtb2ZyaGlzdWR3b240cXBxNC9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9kaXN0L3J1bnRpbWUvc291cmNlTWFwcy5qc1wiKSxvPXQubihyKSxhPXQoXCIuLi8uLi9ub2RlX21vZHVsZXMvLnBucG0vY3NzLWxvYWRlckA3LjEuMl9AcnNwYWNrK2NvcmVAMS40LjVfQHN3YytoZWxwZXJzQDAuNS4xNV9fd2VicGFja0A1Ljk4LjBfQHN3Yytjb3JlQDEuMTEuMjRfQHN3X3dtN2VlNWljNG1vZnJoaXN1ZHdvbjRxcHE0L25vZGVfbW9kdWxlcy9jc3MtbG9hZGVyL2Rpc3QvcnVudGltZS9hcGkuanNcIiksaT10Lm4oYSkoKShvKCkpO2kucHVzaChbZS5pZCxgLnNlZ21lbnQtZXhwbG9yZXItY29udGVudCB7XG4gIGZvbnQtc2l6ZTogdmFyKC0tc2l6ZS0xNCk7XG4gIHBhZGRpbmc6IDAgOHB4O1xuICB3aWR0aDogNzAwcHg7XG4gIGhlaWdodDogNDAwcHg7XG4gIG1heC13aWR0aDogY2FsYygxMDB2dyAtIDQwcHgpO1xuICBtYXgtaGVpZ2h0OiBjYWxjKDEwMHZoIC0gMjQwcHgpO1xufVxuXG4uc2VnbWVudC1leHBsb3Jlci1wYWdlLXJvdXRlLWJhciB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIHBhZGRpbmc6IDE0cHggMTZweDtcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY29sb3ItYmFja2dyb3VuZC0yMDApO1xuICBnYXA6IDEycHg7XG59XG5cbi5zZWdtZW50LWV4cGxvcmVyLXBhZ2Utcm91dGUtYmFyLXBhdGgge1xuICBmb250LXNpemU6IHZhcigtLXNpemUtMTQpO1xuICBmb250LXdlaWdodDogNTAwO1xuICBjb2xvcjogdmFyKC0tY29sb3ItZ3JheS0xMDAwKTtcbiAgZm9udC1mYW1pbHk6IHZhcigtLWZvbnQtbW9ubyk7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIGxpbmUtaGVpZ2h0OiAyMHB4O1xufVxuXG4uc2VnbWVudC1leHBsb3Jlci1pdGVtIHtcbiAgbWFyZ2luOiA0cHggMDtcbiAgYm9yZGVyLXJhZGl1czogNnB4O1xufVxuXG4uc2VnbWVudC1leHBsb3Jlci1pdGVtOm50aC1jaGlsZChldmVuKSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNvbG9yLWJhY2tncm91bmQtMjAwKTtcbn1cblxuLnNlZ21lbnQtZXhwbG9yZXItaXRlbS1yb3cge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBwYWRkaW5nLXRvcDogMTBweDtcbiAgcGFkZGluZy1ib3R0b206IDEwcHg7XG4gIHBhZGRpbmctcmlnaHQ6IDRweDtcbiAgd2hpdGUtc3BhY2U6IHByZTtcbiAgY3Vyc29yOiBkZWZhdWx0O1xuICBjb2xvcjogdmFyKC0tY29sb3ItZ3JheS0xMDAwKTtcbn1cblxuLnNlZ21lbnQtZXhwbG9yZXItY2hpbGRyZW4tLWludGVuZGVkIHtcbiAgcGFkZGluZy1sZWZ0OiAxNnB4O1xufVxuXG4uc2VnbWVudC1leHBsb3Jlci1maWxlbmFtZSB7XG4gIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICB3aWR0aDogMTAwJTtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbn1cblxuLnNlZ21lbnQtZXhwbG9yZXItZmlsZW5hbWUgc2VsZWN0IHtcbiAgbWFyZ2luLWxlZnQ6IGF1dG87XG59XG5cbi5zZWdtZW50LWV4cGxvcmVyLWZpbGVuYW1lLS1wYXRoIHtcbiAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xufVxuLnNlZ21lbnQtZXhwbG9yZXItZmlsZW5hbWUtLXBhdGggc21hbGwge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHdpZHRoOiAwO1xuICBvcGFjaXR5OiAwO1xufVxuLnNlZ21lbnQtZXhwbG9yZXItZmlsZW5hbWUtLW5hbWUge1xuICBjb2xvcjogdmFyKC0tY29sb3ItZ3JheS04MDApO1xufVxuXG4uc2VnbWVudC1leHBsb3Jlci1maWxlcyB7XG4gIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICBnYXA6IDhweDtcbiAgbWFyZ2luLWxlZnQ6IGF1dG87XG59XG5cbi5zZWdtZW50LWV4cGxvcmVyLWZpbGVzICsgLnNlZ21lbnQtYm91bmRhcnktdHJpZ2dlciB7XG4gIG1hcmdpbi1sZWZ0OiA4cHg7XG59XG5cbi5zZWdtZW50LWV4cGxvcmVyLWZpbGUtbGFiZWwge1xuICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIHBhZGRpbmc6IDRweCA2cHg7XG4gIGJvcmRlci1yYWRpdXM6IDE2cHg7XG4gIGxpbmUtaGVpZ2h0OiAxNnB4O1xuICBmb250LXNpemU6IHZhcigtLXNpemUtMTIpO1xuICBmb250LXdlaWdodDogNTAwO1xuICB1c2VyLXNlbGVjdDogbm9uZTtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jb2xvci1ncmF5LTMwMCk7XG4gIGNvbG9yOiB2YXIoLS1jb2xvci1ncmF5LTEwMDApO1xufVxuXG4uc2VnbWVudC1leHBsb3Jlci1maWxlLWxhYmVsLS1vdmVycmlkZGVuIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY29sb3ItYW1iZXItMzAwKTtcbiAgY29sb3I6IHZhcigtLWNvbG9yLWFtYmVyLTkwMCk7XG59XG5cbi5zZWdtZW50LWV4cGxvcmVyLWZpbGUtbGFiZWwgLmNvZGUtaWNvbiB7XG4gIG9wYWNpdHk6IDA7XG4gIG1hcmdpbi1sZWZ0OiAwO1xuICB3aWR0aDogMDtcbiAgdHJhbnNpdGlvbjogYWxsIDAuMTVzIGVhc2UtaW4tb3V0O1xufVxuLnNlZ21lbnQtZXhwbG9yZXItZmlsZS1sYWJlbDpob3ZlciAuY29kZS1pY29uIHtcbiAgb3BhY2l0eTogMTtcbiAgd2lkdGg6IDEycHg7XG4gIG1hcmdpbi1sZWZ0OiA0cHg7XG59XG5cbi5zZWdtZW50LWV4cGxvcmVyLWZpbGUtbGFiZWw6aG92ZXIge1xuICBmaWx0ZXI6IGJyaWdodG5lc3MoMC45NSk7XG59XG5cbi5zZWdtZW50LWV4cGxvcmVyLWZpbGUtbGFiZWwtLWJ1aWx0aW4ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgY29sb3I6IHZhcigtLWNvbG9yLWdyYXktOTAwKTtcbiAgYm9yZGVyOiAxcHggZGFzaGVkIHZhcigtLWNvbG9yLWdyYXktNTAwKTtcbiAgaGVpZ2h0OiAyNHB4O1xuICBjdXJzb3I6IGRlZmF1bHQ7XG59XG4uc2VnbWVudC1leHBsb3Jlci1maWxlLWxhYmVsLS1idWlsdGluIHN2ZyB7XG4gIG1hcmdpbi1sZWZ0OiA0cHg7XG4gIG1hcmdpbi1yaWdodDogLTRweDtcbn1cblxuLyogRm9vdGVyIHN0eWxlcyAqL1xuLnNlZ21lbnQtZXhwbG9yZXItZm9vdGVyIHtcbiAgcGFkZGluZzogOHB4O1xuICBib3JkZXItdG9wOiAxcHggc29saWQgdmFyKC0tY29sb3ItZ3JheS00MDApO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jb2xvci1iYWNrZ3JvdW5kLTEwMCk7XG4gIHVzZXItc2VsZWN0OiBub25lO1xufVxuXG4uc2VnbWVudC1leHBsb3Jlci1mb290ZXItYnV0dG9uIHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIGdhcDogOHB4O1xuICB3aWR0aDogMTAwJTtcbiAgcGFkZGluZzogNnB4O1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jb2xvci1iYWNrZ3JvdW5kLTEwMCk7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWNvbG9yLWdyYXktNDAwKTtcbiAgYm9yZGVyLXJhZGl1czogNnB4O1xuICBjb2xvcjogdmFyKC0tY29sb3ItZ3JheS0xMDAwKTtcbiAgZm9udC1zaXplOiB2YXIoLS1zaXplLTE0KTtcbiAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIDAuMTVzIGVhc2U7XG59XG5cbi5zZWdtZW50LWV4cGxvcmVyLWZvb3Rlci1idXR0b246aG92ZXI6bm90KDpkaXNhYmxlZCkge1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jb2xvci1ncmF5LTIwMCk7XG59XG5cbi5zZWdtZW50LWV4cGxvcmVyLWZvb3Rlci1idXR0b24tLWRpc2FibGVkIHtcbiAgb3BhY2l0eTogMC41O1xuICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xufVxuXG4uc2VnbWVudC1leHBsb3Jlci1mb290ZXItdGV4dCB7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbn1cblxuLnNlZ21lbnQtZXhwbG9yZXItZm9vdGVyLWJhZGdlIHtcbiAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBtaW4td2lkdGg6IDIwcHg7XG4gIGhlaWdodDogMjBweDtcbiAgcGFkZGluZzogMCA2cHg7XG4gIGJhY2tncm91bmQ6IHZhcigtLWNvbG9yLWFtYmVyLTMwMCk7XG4gIGNvbG9yOiB2YXIoLS1jb2xvci1hbWJlci05MDApO1xuICBib3JkZXItcmFkaXVzOiAxMHB4O1xuICBmb250LXNpemU6IHZhcigtLXNpemUtMTIpO1xuICBmb250LXdlaWdodDogNjAwO1xuICBsaW5lLWhlaWdodDogMTtcbn1cblxuLnNlZ21lbnQtZXhwbG9yZXItZmlsZS1sYWJlbC10b29sdGlwLS1zbSB7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG59XG5cbi5zZWdtZW50LWV4cGxvcmVyLWZpbGUtbGFiZWwtdG9vbHRpcC0tbGcge1xuICBtaW4td2lkdGg6IDIwMHB4O1xufVxuYCxcIlwiLHt2ZXJzaW9uOjMsc291cmNlczpbXCJ3ZWJwYWNrOi8vLi9zcmMvbmV4dC1kZXZ0b29scy9kZXYtb3ZlcmxheS9jb21wb25lbnRzL292ZXJ2aWV3L3NlZ21lbnQtZXhwbG9yZXIuY3NzXCJdLG5hbWVzOltdLG1hcHBpbmdzOlwiQUFBQTtFQUNFLHlCQUF5QjtFQUN6QixjQUFjO0VBQ2QsWUFBWTtFQUNaLGFBQWE7RUFDYiw2QkFBNkI7RUFDN0IsK0JBQStCO0FBQ2pDOztBQUVBO0VBQ0UsYUFBYTtFQUNiLG1CQUFtQjtFQUNuQixrQkFBa0I7RUFDbEIsNkNBQTZDO0VBQzdDLFNBQVM7QUFDWDs7QUFFQTtFQUNFLHlCQUF5QjtFQUN6QixnQkFBZ0I7RUFDaEIsNkJBQTZCO0VBQzdCLDZCQUE2QjtFQUM3QixtQkFBbUI7RUFDbkIsaUJBQWlCO0FBQ25COztBQUVBO0VBQ0UsYUFBYTtFQUNiLGtCQUFrQjtBQUNwQjs7QUFFQTtFQUNFLDZDQUE2QztBQUMvQzs7QUFFQTtFQUNFLGFBQWE7RUFDYixtQkFBbUI7RUFDbkIsaUJBQWlCO0VBQ2pCLG9CQUFvQjtFQUNwQixrQkFBa0I7RUFDbEIsZ0JBQWdCO0VBQ2hCLGVBQWU7RUFDZiw2QkFBNkI7QUFDL0I7O0FBRUE7RUFDRSxrQkFBa0I7QUFDcEI7O0FBRUE7RUFDRSxvQkFBb0I7RUFDcEIsV0FBVztFQUNYLG1CQUFtQjtBQUNyQjs7QUFFQTtFQUNFLGlCQUFpQjtBQUNuQjs7QUFFQTtFQUNFLGtCQUFrQjtBQUNwQjtBQUNBO0VBQ0UscUJBQXFCO0VBQ3JCLFFBQVE7RUFDUixVQUFVO0FBQ1o7QUFDQTtFQUNFLDRCQUE0QjtBQUM5Qjs7QUFFQTtFQUNFLG9CQUFvQjtFQUNwQixRQUFRO0VBQ1IsaUJBQWlCO0FBQ25COztBQUVBO0VBQ0UsZ0JBQWdCO0FBQ2xCOztBQUVBO0VBQ0Usb0JBQW9CO0VBQ3BCLG1CQUFtQjtFQUNuQix1QkFBdUI7RUFDdkIsZ0JBQWdCO0VBQ2hCLG1CQUFtQjtFQUNuQixpQkFBaUI7RUFDakIseUJBQXlCO0VBQ3pCLGdCQUFnQjtFQUNoQixpQkFBaUI7RUFDakIsZUFBZTtFQUNmLHVDQUF1QztFQUN2Qyw2QkFBNkI7QUFDL0I7O0FBRUE7RUFDRSx3Q0FBd0M7RUFDeEMsNkJBQTZCO0FBQy9COztBQUVBO0VBQ0UsVUFBVTtFQUNWLGNBQWM7RUFDZCxRQUFRO0VBQ1IsaUNBQWlDO0FBQ25DO0FBQ0E7RUFDRSxVQUFVO0VBQ1YsV0FBVztFQUNYLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLHdCQUF3QjtBQUMxQjs7QUFFQTtFQUNFLDZCQUE2QjtFQUM3Qiw0QkFBNEI7RUFDNUIsd0NBQXdDO0VBQ3hDLFlBQVk7RUFDWixlQUFlO0FBQ2pCO0FBQ0E7RUFDRSxnQkFBZ0I7RUFDaEIsa0JBQWtCO0FBQ3BCOztBQUVBLGtCQUFrQjtBQUNsQjtFQUNFLFlBQVk7RUFDWiwyQ0FBMkM7RUFDM0MsNkNBQTZDO0VBQzdDLGlCQUFpQjtBQUNuQjs7QUFFQTtFQUNFLGFBQWE7RUFDYixtQkFBbUI7RUFDbkIsdUJBQXVCO0VBQ3ZCLFFBQVE7RUFDUixXQUFXO0VBQ1gsWUFBWTtFQUNaLHVDQUF1QztFQUN2Qyx1Q0FBdUM7RUFDdkMsa0JBQWtCO0VBQ2xCLDZCQUE2QjtFQUM3Qix5QkFBeUI7RUFDekIsZ0JBQWdCO0VBQ2hCLGVBQWU7RUFDZix1Q0FBdUM7QUFDekM7O0FBRUE7RUFDRSxpQ0FBaUM7QUFDbkM7O0FBRUE7RUFDRSxZQUFZO0VBQ1osbUJBQW1CO0FBQ3JCOztBQUVBO0VBQ0Usa0JBQWtCO0FBQ3BCOztBQUVBO0VBQ0Usb0JBQW9CO0VBQ3BCLG1CQUFtQjtFQUNuQix1QkFBdUI7RUFDdkIsZUFBZTtFQUNmLFlBQVk7RUFDWixjQUFjO0VBQ2Qsa0NBQWtDO0VBQ2xDLDZCQUE2QjtFQUM3QixtQkFBbUI7RUFDbkIseUJBQXlCO0VBQ3pCLGdCQUFnQjtFQUNoQixjQUFjO0FBQ2hCOztBQUVBO0VBQ0UsbUJBQW1CO0FBQ3JCOztBQUVBO0VBQ0UsZ0JBQWdCO0FBQ2xCXCIsc291cmNlc0NvbnRlbnQ6W1wiLnNlZ21lbnQtZXhwbG9yZXItY29udGVudCB7XFxuICBmb250LXNpemU6IHZhcigtLXNpemUtMTQpO1xcbiAgcGFkZGluZzogMCA4cHg7XFxuICB3aWR0aDogNzAwcHg7XFxuICBoZWlnaHQ6IDQwMHB4O1xcbiAgbWF4LXdpZHRoOiBjYWxjKDEwMHZ3IC0gNDBweCk7XFxuICBtYXgtaGVpZ2h0OiBjYWxjKDEwMHZoIC0gMjQwcHgpO1xcbn1cXG5cXG4uc2VnbWVudC1leHBsb3Jlci1wYWdlLXJvdXRlLWJhciB7XFxuICBkaXNwbGF5OiBmbGV4O1xcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcXG4gIHBhZGRpbmc6IDE0cHggMTZweDtcXG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNvbG9yLWJhY2tncm91bmQtMjAwKTtcXG4gIGdhcDogMTJweDtcXG59XFxuXFxuLnNlZ21lbnQtZXhwbG9yZXItcGFnZS1yb3V0ZS1iYXItcGF0aCB7XFxuICBmb250LXNpemU6IHZhcigtLXNpemUtMTQpO1xcbiAgZm9udC13ZWlnaHQ6IDUwMDtcXG4gIGNvbG9yOiB2YXIoLS1jb2xvci1ncmF5LTEwMDApO1xcbiAgZm9udC1mYW1pbHk6IHZhcigtLWZvbnQtbW9ubyk7XFxuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xcbiAgbGluZS1oZWlnaHQ6IDIwcHg7XFxufVxcblxcbi5zZWdtZW50LWV4cGxvcmVyLWl0ZW0ge1xcbiAgbWFyZ2luOiA0cHggMDtcXG4gIGJvcmRlci1yYWRpdXM6IDZweDtcXG59XFxuXFxuLnNlZ21lbnQtZXhwbG9yZXItaXRlbTpudGgtY2hpbGQoZXZlbikge1xcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY29sb3ItYmFja2dyb3VuZC0yMDApO1xcbn1cXG5cXG4uc2VnbWVudC1leHBsb3Jlci1pdGVtLXJvdyB7XFxuICBkaXNwbGF5OiBmbGV4O1xcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcXG4gIHBhZGRpbmctdG9wOiAxMHB4O1xcbiAgcGFkZGluZy1ib3R0b206IDEwcHg7XFxuICBwYWRkaW5nLXJpZ2h0OiA0cHg7XFxuICB3aGl0ZS1zcGFjZTogcHJlO1xcbiAgY3Vyc29yOiBkZWZhdWx0O1xcbiAgY29sb3I6IHZhcigtLWNvbG9yLWdyYXktMTAwMCk7XFxufVxcblxcbi5zZWdtZW50LWV4cGxvcmVyLWNoaWxkcmVuLS1pbnRlbmRlZCB7XFxuICBwYWRkaW5nLWxlZnQ6IDE2cHg7XFxufVxcblxcbi5zZWdtZW50LWV4cGxvcmVyLWZpbGVuYW1lIHtcXG4gIGRpc3BsYXk6IGlubGluZS1mbGV4O1xcbiAgd2lkdGg6IDEwMCU7XFxuICBhbGlnbi1pdGVtczogY2VudGVyO1xcbn1cXG5cXG4uc2VnbWVudC1leHBsb3Jlci1maWxlbmFtZSBzZWxlY3Qge1xcbiAgbWFyZ2luLWxlZnQ6IGF1dG87XFxufVxcblxcbi5zZWdtZW50LWV4cGxvcmVyLWZpbGVuYW1lLS1wYXRoIHtcXG4gIG1hcmdpbi1yaWdodDogYXV0bztcXG59XFxuLnNlZ21lbnQtZXhwbG9yZXItZmlsZW5hbWUtLXBhdGggc21hbGwge1xcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xcbiAgd2lkdGg6IDA7XFxuICBvcGFjaXR5OiAwO1xcbn1cXG4uc2VnbWVudC1leHBsb3Jlci1maWxlbmFtZS0tbmFtZSB7XFxuICBjb2xvcjogdmFyKC0tY29sb3ItZ3JheS04MDApO1xcbn1cXG5cXG4uc2VnbWVudC1leHBsb3Jlci1maWxlcyB7XFxuICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcXG4gIGdhcDogOHB4O1xcbiAgbWFyZ2luLWxlZnQ6IGF1dG87XFxufVxcblxcbi5zZWdtZW50LWV4cGxvcmVyLWZpbGVzICsgLnNlZ21lbnQtYm91bmRhcnktdHJpZ2dlciB7XFxuICBtYXJnaW4tbGVmdDogOHB4O1xcbn1cXG5cXG4uc2VnbWVudC1leHBsb3Jlci1maWxlLWxhYmVsIHtcXG4gIGRpc3BsYXk6IGlubGluZS1mbGV4O1xcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcXG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xcbiAgcGFkZGluZzogNHB4IDZweDtcXG4gIGJvcmRlci1yYWRpdXM6IDE2cHg7XFxuICBsaW5lLWhlaWdodDogMTZweDtcXG4gIGZvbnQtc2l6ZTogdmFyKC0tc2l6ZS0xMik7XFxuICBmb250LXdlaWdodDogNTAwO1xcbiAgdXNlci1zZWxlY3Q6IG5vbmU7XFxuICBjdXJzb3I6IHBvaW50ZXI7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jb2xvci1ncmF5LTMwMCk7XFxuICBjb2xvcjogdmFyKC0tY29sb3ItZ3JheS0xMDAwKTtcXG59XFxuXFxuLnNlZ21lbnQtZXhwbG9yZXItZmlsZS1sYWJlbC0tb3ZlcnJpZGRlbiB7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jb2xvci1hbWJlci0zMDApO1xcbiAgY29sb3I6IHZhcigtLWNvbG9yLWFtYmVyLTkwMCk7XFxufVxcblxcbi5zZWdtZW50LWV4cGxvcmVyLWZpbGUtbGFiZWwgLmNvZGUtaWNvbiB7XFxuICBvcGFjaXR5OiAwO1xcbiAgbWFyZ2luLWxlZnQ6IDA7XFxuICB3aWR0aDogMDtcXG4gIHRyYW5zaXRpb246IGFsbCAwLjE1cyBlYXNlLWluLW91dDtcXG59XFxuLnNlZ21lbnQtZXhwbG9yZXItZmlsZS1sYWJlbDpob3ZlciAuY29kZS1pY29uIHtcXG4gIG9wYWNpdHk6IDE7XFxuICB3aWR0aDogMTJweDtcXG4gIG1hcmdpbi1sZWZ0OiA0cHg7XFxufVxcblxcbi5zZWdtZW50LWV4cGxvcmVyLWZpbGUtbGFiZWw6aG92ZXIge1xcbiAgZmlsdGVyOiBicmlnaHRuZXNzKDAuOTUpO1xcbn1cXG5cXG4uc2VnbWVudC1leHBsb3Jlci1maWxlLWxhYmVsLS1idWlsdGluIHtcXG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xcbiAgY29sb3I6IHZhcigtLWNvbG9yLWdyYXktOTAwKTtcXG4gIGJvcmRlcjogMXB4IGRhc2hlZCB2YXIoLS1jb2xvci1ncmF5LTUwMCk7XFxuICBoZWlnaHQ6IDI0cHg7XFxuICBjdXJzb3I6IGRlZmF1bHQ7XFxufVxcbi5zZWdtZW50LWV4cGxvcmVyLWZpbGUtbGFiZWwtLWJ1aWx0aW4gc3ZnIHtcXG4gIG1hcmdpbi1sZWZ0OiA0cHg7XFxuICBtYXJnaW4tcmlnaHQ6IC00cHg7XFxufVxcblxcbi8qIEZvb3RlciBzdHlsZXMgKi9cXG4uc2VnbWVudC1leHBsb3Jlci1mb290ZXIge1xcbiAgcGFkZGluZzogOHB4O1xcbiAgYm9yZGVyLXRvcDogMXB4IHNvbGlkIHZhcigtLWNvbG9yLWdyYXktNDAwKTtcXG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNvbG9yLWJhY2tncm91bmQtMTAwKTtcXG4gIHVzZXItc2VsZWN0OiBub25lO1xcbn1cXG5cXG4uc2VnbWVudC1leHBsb3Jlci1mb290ZXItYnV0dG9uIHtcXG4gIGRpc3BsYXk6IGZsZXg7XFxuICBhbGlnbi1pdGVtczogY2VudGVyO1xcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XFxuICBnYXA6IDhweDtcXG4gIHdpZHRoOiAxMDAlO1xcbiAgcGFkZGluZzogNnB4O1xcbiAgYmFja2dyb3VuZDogdmFyKC0tY29sb3ItYmFja2dyb3VuZC0xMDApO1xcbiAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tY29sb3ItZ3JheS00MDApO1xcbiAgYm9yZGVyLXJhZGl1czogNnB4O1xcbiAgY29sb3I6IHZhcigtLWNvbG9yLWdyYXktMTAwMCk7XFxuICBmb250LXNpemU6IHZhcigtLXNpemUtMTQpO1xcbiAgZm9udC13ZWlnaHQ6IDUwMDtcXG4gIGN1cnNvcjogcG9pbnRlcjtcXG4gIHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgMC4xNXMgZWFzZTtcXG59XFxuXFxuLnNlZ21lbnQtZXhwbG9yZXItZm9vdGVyLWJ1dHRvbjpob3Zlcjpub3QoOmRpc2FibGVkKSB7XFxuICBiYWNrZ3JvdW5kOiB2YXIoLS1jb2xvci1ncmF5LTIwMCk7XFxufVxcblxcbi5zZWdtZW50LWV4cGxvcmVyLWZvb3Rlci1idXR0b24tLWRpc2FibGVkIHtcXG4gIG9wYWNpdHk6IDAuNTtcXG4gIGN1cnNvcjogbm90LWFsbG93ZWQ7XFxufVxcblxcbi5zZWdtZW50LWV4cGxvcmVyLWZvb3Rlci10ZXh0IHtcXG4gIHRleHQtYWxpZ246IGNlbnRlcjtcXG59XFxuXFxuLnNlZ21lbnQtZXhwbG9yZXItZm9vdGVyLWJhZGdlIHtcXG4gIGRpc3BsYXk6IGlubGluZS1mbGV4O1xcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcXG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xcbiAgbWluLXdpZHRoOiAyMHB4O1xcbiAgaGVpZ2h0OiAyMHB4O1xcbiAgcGFkZGluZzogMCA2cHg7XFxuICBiYWNrZ3JvdW5kOiB2YXIoLS1jb2xvci1hbWJlci0zMDApO1xcbiAgY29sb3I6IHZhcigtLWNvbG9yLWFtYmVyLTkwMCk7XFxuICBib3JkZXItcmFkaXVzOiAxMHB4O1xcbiAgZm9udC1zaXplOiB2YXIoLS1zaXplLTEyKTtcXG4gIGZvbnQtd2VpZ2h0OiA2MDA7XFxuICBsaW5lLWhlaWdodDogMTtcXG59XFxuXFxuLnNlZ21lbnQtZXhwbG9yZXItZmlsZS1sYWJlbC10b29sdGlwLS1zbSB7XFxuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xcbn1cXG5cXG4uc2VnbWVudC1leHBsb3Jlci1maWxlLWxhYmVsLXRvb2x0aXAtLWxnIHtcXG4gIG1pbi13aWR0aDogMjAwcHg7XFxufVxcblwiXSxzb3VyY2VSb290OlwiXCJ9XSk7bGV0IGw9aX0sXCIuLi8uLi9ub2RlX21vZHVsZXMvLnBucG0vY3NzLWxvYWRlckA3LjEuMl9AcnNwYWNrK2NvcmVAMS40LjVfQHN3YytoZWxwZXJzQDAuNS4xNV9fd2VicGFja0A1Ljk4LjBfQHN3Yytjb3JlQDEuMTEuMjRfQHN3X3dtN2VlNWljNG1vZnJoaXN1ZHdvbjRxcHE0L25vZGVfbW9kdWxlcy9jc3MtbG9hZGVyL2Rpc3QvY2pzLmpzIS4vc3JjL25leHQtZGV2dG9vbHMvZGV2LW92ZXJsYXkvY29tcG9uZW50cy90b2FzdC9zdHlsZS5jc3NcIjpmdW5jdGlvbihlLG4sdCl7XCJ1c2Ugc3RyaWN0XCI7dC5kKG4se1o6KCk9Pmx9KTt2YXIgcj10KFwiLi4vLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2Nzcy1sb2FkZXJANy4xLjJfQHJzcGFjaytjb3JlQDEuNC41X0Bzd2MraGVscGVyc0AwLjUuMTVfX3dlYnBhY2tANS45OC4wX0Bzd2MrY29yZUAxLjExLjI0X0Bzd193bTdlZTVpYzRtb2ZyaGlzdWR3b240cXBxNC9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9kaXN0L3J1bnRpbWUvc291cmNlTWFwcy5qc1wiKSxvPXQubihyKSxhPXQoXCIuLi8uLi9ub2RlX21vZHVsZXMvLnBucG0vY3NzLWxvYWRlckA3LjEuMl9AcnNwYWNrK2NvcmVAMS40LjVfQHN3YytoZWxwZXJzQDAuNS4xNV9fd2VicGFja0A1Ljk4LjBfQHN3Yytjb3JlQDEuMTEuMjRfQHN3X3dtN2VlNWljNG1vZnJoaXN1ZHdvbjRxcHE0L25vZGVfbW9kdWxlcy9jc3MtbG9hZGVyL2Rpc3QvcnVudGltZS9hcGkuanNcIiksaT10Lm4oYSkoKShvKCkpO2kucHVzaChbZS5pZCxgLm5leHRqcy10b2FzdCB7XG4gIHBvc2l0aW9uOiBmaXhlZDtcbiAgei1pbmRleDogdmFyKC0tdG9wLXotaW5kZXgpO1xuICBtYXgtd2lkdGg6IDQyMHB4O1xuICBib3gtc2hhZG93OiAwcHggMTZweCAzMnB4IHJnYmEoMCwgMCwgMCwgMC4yNSk7XG59XG5cbi5uZXh0anMtdG9hc3QtZXJyb3JzLXBhcmVudCB7XG4gIHBhZGRpbmc6IDE2cHg7XG4gIGJvcmRlci1yYWRpdXM6IHZhcigtLXJvdW5kZWQtNHhsKTtcbiAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgY29sb3I6IHZhcigtLWNvbG9yLWFuc2ktYnJpZ2h0LXdoaXRlKTtcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY29sb3ItYW5zaS1yZWQpO1xufVxuYCxcIlwiLHt2ZXJzaW9uOjMsc291cmNlczpbXCJ3ZWJwYWNrOi8vLi9zcmMvbmV4dC1kZXZ0b29scy9kZXYtb3ZlcmxheS9jb21wb25lbnRzL3RvYXN0L3N0eWxlLmNzc1wiXSxuYW1lczpbXSxtYXBwaW5nczpcIkFBQUE7RUFDRSxlQUFlO0VBQ2YsMkJBQTJCO0VBQzNCLGdCQUFnQjtFQUNoQiw2Q0FBNkM7QUFDL0M7O0FBRUE7RUFDRSxhQUFhO0VBQ2IsaUNBQWlDO0VBQ2pDLGdCQUFnQjtFQUNoQixxQ0FBcUM7RUFDckMsdUNBQXVDO0FBQ3pDXCIsc291cmNlc0NvbnRlbnQ6W1wiLm5leHRqcy10b2FzdCB7XFxuICBwb3NpdGlvbjogZml4ZWQ7XFxuICB6LWluZGV4OiB2YXIoLS10b3Atei1pbmRleCk7XFxuICBtYXgtd2lkdGg6IDQyMHB4O1xcbiAgYm94LXNoYWRvdzogMHB4IDE2cHggMzJweCByZ2JhKDAsIDAsIDAsIDAuMjUpO1xcbn1cXG5cXG4ubmV4dGpzLXRvYXN0LWVycm9ycy1wYXJlbnQge1xcbiAgcGFkZGluZzogMTZweDtcXG4gIGJvcmRlci1yYWRpdXM6IHZhcigtLXJvdW5kZWQtNHhsKTtcXG4gIGZvbnQtd2VpZ2h0OiA1MDA7XFxuICBjb2xvcjogdmFyKC0tY29sb3ItYW5zaS1icmlnaHQtd2hpdGUpO1xcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY29sb3ItYW5zaS1yZWQpO1xcbn1cXG5cIl0sc291cmNlUm9vdDpcIlwifV0pO2xldCBsPWl9LFwiLi4vLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2Nzcy1sb2FkZXJANy4xLjJfQHJzcGFjaytjb3JlQDEuNC41X0Bzd2MraGVscGVyc0AwLjUuMTVfX3dlYnBhY2tANS45OC4wX0Bzd2MrY29yZUAxLjExLjI0X0Bzd193bTdlZTVpYzRtb2ZyaGlzdWR3b240cXBxNC9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9kaXN0L2Nqcy5qcyEuL3NyYy9uZXh0LWRldnRvb2xzL2dsb2JhbC5jc3NcIjpmdW5jdGlvbihlLG4sdCl7XCJ1c2Ugc3RyaWN0XCI7dC5kKG4se1o6KCk9Pmx9KTt2YXIgcj10KFwiLi4vLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2Nzcy1sb2FkZXJANy4xLjJfQHJzcGFjaytjb3JlQDEuNC41X0Bzd2MraGVscGVyc0AwLjUuMTVfX3dlYnBhY2tANS45OC4wX0Bzd2MrY29yZUAxLjExLjI0X0Bzd193bTdlZTVpYzRtb2ZyaGlzdWR3b240cXBxNC9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9kaXN0L3J1bnRpbWUvc291cmNlTWFwcy5qc1wiKSxvPXQubihyKSxhPXQoXCIuLi8uLi9ub2RlX21vZHVsZXMvLnBucG0vY3NzLWxvYWRlckA3LjEuMl9AcnNwYWNrK2NvcmVAMS40LjVfQHN3YytoZWxwZXJzQDAuNS4xNV9fd2VicGFja0A1Ljk4LjBfQHN3Yytjb3JlQDEuMTEuMjRfQHN3X3dtN2VlNWljNG1vZnJoaXN1ZHdvbjRxcHE0L25vZGVfbW9kdWxlcy9jc3MtbG9hZGVyL2Rpc3QvcnVudGltZS9hcGkuanNcIiksaT10Lm4oYSkoKShvKCkpO2kucHVzaChbZS5pZCxgLyogZGV2dG9vbCBnbG9iYWwgY3NzIHZhcmlhYmxlcyAqL1xuOmhvc3Qge1xuICAtLXRvcC16LWluZGV4OiAyMTQ3NDgzNjQ3O1xufVxuYCxcIlwiLHt2ZXJzaW9uOjMsc291cmNlczpbXCJ3ZWJwYWNrOi8vLi9zcmMvbmV4dC1kZXZ0b29scy9nbG9iYWwuY3NzXCJdLG5hbWVzOltdLG1hcHBpbmdzOlwiQUFBQSxpQ0FBaUM7QUFDakM7RUFDRSx5QkFBeUI7QUFDM0JcIixzb3VyY2VzQ29udGVudDpbXCIvKiBkZXZ0b29sIGdsb2JhbCBjc3MgdmFyaWFibGVzICovXFxuOmhvc3Qge1xcbiAgLS10b3Atei1pbmRleDogMjE0NzQ4MzY0NztcXG59XFxuXCJdLHNvdXJjZVJvb3Q6XCJcIn1dKTtsZXQgbD1pfSxcIi4uLy4uL25vZGVfbW9kdWxlcy8ucG5wbS9jc3MtbG9hZGVyQDcuMS4yX0Byc3BhY2srY29yZUAxLjQuNV9Ac3djK2hlbHBlcnNAMC41LjE1X193ZWJwYWNrQDUuOTguMF9Ac3djK2NvcmVAMS4xMS4yNF9Ac3dfd203ZWU1aWM0bW9mcmhpc3Vkd29uNHFwcTQvbm9kZV9tb2R1bGVzL2Nzcy1sb2FkZXIvZGlzdC9ydW50aW1lL2FwaS5qc1wiOmZ1bmN0aW9uKGUpe1widXNlIHN0cmljdFwiO2UuZXhwb3J0cz1mdW5jdGlvbihlKXt2YXIgbj1bXTtyZXR1cm4gbi50b1N0cmluZz1mdW5jdGlvbigpe3JldHVybiB0aGlzLm1hcChmdW5jdGlvbihuKXt2YXIgdD1cIlwiLHI9dm9pZCAwIT09bls1XTtyZXR1cm4gbls0XSYmKHQrPVwiQHN1cHBvcnRzIChcIi5jb25jYXQobls0XSxcIikge1wiKSksblsyXSYmKHQrPVwiQG1lZGlhIFwiLmNvbmNhdChuWzJdLFwiIHtcIikpLHImJih0Kz1cIkBsYXllclwiLmNvbmNhdChuWzVdLmxlbmd0aD4wP1wiIFwiLmNvbmNhdChuWzVdKTpcIlwiLFwiIHtcIikpLHQrPWUobiksciYmKHQrPVwifVwiKSxuWzJdJiYodCs9XCJ9XCIpLG5bNF0mJih0Kz1cIn1cIiksdH0pLmpvaW4oXCJcIil9LG4uaT1mdW5jdGlvbihlLHQscixvLGEpe1wic3RyaW5nXCI9PXR5cGVvZiBlJiYoZT1bW251bGwsZSx2b2lkIDBdXSk7dmFyIGk9e307aWYocilmb3IodmFyIGw9MDtsPHRoaXMubGVuZ3RoO2wrKyl7dmFyIHM9dGhpc1tsXVswXTtudWxsIT1zJiYoaVtzXT0hMCl9Zm9yKHZhciBjPTA7YzxlLmxlbmd0aDtjKyspe3ZhciB1PVtdLmNvbmNhdChlW2NdKTtyJiZpW3VbMF1dfHwodm9pZCAwIT09YSYmKHZvaWQgMD09PXVbNV18fCh1WzFdPVwiQGxheWVyXCIuY29uY2F0KHVbNV0ubGVuZ3RoPjA/XCIgXCIuY29uY2F0KHVbNV0pOlwiXCIsXCIge1wiKS5jb25jYXQodVsxXSxcIn1cIikpLHVbNV09YSksdCYmKHVbMl0mJih1WzFdPVwiQG1lZGlhIFwiLmNvbmNhdCh1WzJdLFwiIHtcIikuY29uY2F0KHVbMV0sXCJ9XCIpKSx1WzJdPXQpLG8mJih1WzRdPyh1WzFdPVwiQHN1cHBvcnRzIChcIi5jb25jYXQodVs0XSxcIikge1wiKS5jb25jYXQodVsxXSxcIn1cIiksdVs0XT1vKTp1WzRdPVwiXCIuY29uY2F0KG8pKSxuLnB1c2godSkpfX0sbn19LFwiLi4vLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2Nzcy1sb2FkZXJANy4xLjJfQHJzcGFjaytjb3JlQDEuNC41X0Bzd2MraGVscGVyc0AwLjUuMTVfX3dlYnBhY2tANS45OC4wX0Bzd2MrY29yZUAxLjExLjI0X0Bzd193bTdlZTVpYzRtb2ZyaGlzdWR3b240cXBxNC9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9kaXN0L3J1bnRpbWUvc291cmNlTWFwcy5qc1wiOmZ1bmN0aW9uKGUpe1widXNlIHN0cmljdFwiO2UuZXhwb3J0cz1mdW5jdGlvbihlKXt2YXIgbj1lWzFdLHQ9ZVszXTtpZighdClyZXR1cm4gbjtpZihcImZ1bmN0aW9uXCI9PXR5cGVvZiBidG9hKXt2YXIgcj1idG9hKHVuZXNjYXBlKGVuY29kZVVSSUNvbXBvbmVudChKU09OLnN0cmluZ2lmeSh0KSkpKTtyZXR1cm5bbl0uY29uY2F0KFtcIi8qIyBcIi5jb25jYXQoXCJzb3VyY2VNYXBwaW5nVVJMPWRhdGE6YXBwbGljYXRpb24vanNvbjtjaGFyc2V0PXV0Zi04O2Jhc2U2NCxcIi5jb25jYXQociksXCIgKi9cIildKS5qb2luKFwiXFxuXCIpfXJldHVybltuXS5qb2luKFwiXFxuXCIpfX0sXCIuLi8uLi9ub2RlX21vZHVsZXMvLnBucG0vc3R5bGUtbG9hZGVyQDQuMC4wX3dlYnBhY2tANS45OC4wX0Bzd2MrY29yZUAxLjExLjI0X0Bzd2MraGVscGVyc0AwLjUuMTVfX2VzYnVpbGRAMC4yNC4yXy9ub2RlX21vZHVsZXMvc3R5bGUtbG9hZGVyL2Rpc3QvcnVudGltZS9pbmplY3RTdHlsZXNJbnRvU3R5bGVUYWcuanNcIjpmdW5jdGlvbihlKXtcInVzZSBzdHJpY3RcIjt2YXIgbj1bXTtmdW5jdGlvbiB0KGUpe2Zvcih2YXIgdD0tMSxyPTA7cjxuLmxlbmd0aDtyKyspaWYobltyXS5pZGVudGlmaWVyPT09ZSl7dD1yO2JyZWFrfXJldHVybiB0fWZ1bmN0aW9uIHIoZSxyKXtmb3IodmFyIG89e30sYT1bXSxpPTA7aTxlLmxlbmd0aDtpKyspe3ZhciBsPWVbaV0scz1yLmJhc2U/bFswXStyLmJhc2U6bFswXSxjPW9bc118fDAsdT1cIlwiLmNvbmNhdChzLFwiIFwiKS5jb25jYXQoYyk7b1tzXT1jKzE7dmFyIGQ9dCh1KSxmPXtjc3M6bFsxXSxtZWRpYTpsWzJdLHNvdXJjZU1hcDpsWzNdLHN1cHBvcnRzOmxbNF0sbGF5ZXI6bFs1XX07aWYoLTEhPT1kKW5bZF0ucmVmZXJlbmNlcysrLG5bZF0udXBkYXRlcihmKTtlbHNle3ZhciBwPWZ1bmN0aW9uKGUsbil7dmFyIHQ9bi5kb21BUEkobik7cmV0dXJuIHQudXBkYXRlKGUpLGZ1bmN0aW9uKG4pe24/KG4uY3NzIT09ZS5jc3N8fG4ubWVkaWEhPT1lLm1lZGlhfHxuLnNvdXJjZU1hcCE9PWUuc291cmNlTWFwfHxuLnN1cHBvcnRzIT09ZS5zdXBwb3J0c3x8bi5sYXllciE9PWUubGF5ZXIpJiZ0LnVwZGF0ZShlPW4pOnQucmVtb3ZlKCl9fShmLHIpO3IuYnlJbmRleD1pLG4uc3BsaWNlKGksMCx7aWRlbnRpZmllcjp1LHVwZGF0ZXI6cCxyZWZlcmVuY2VzOjF9KX1hLnB1c2godSl9cmV0dXJuIGF9ZS5leHBvcnRzPWZ1bmN0aW9uKGUsbyl7dmFyIGE9cihlPWV8fFtdLG89b3x8e30pO3JldHVybiBmdW5jdGlvbihlKXtlPWV8fFtdO2Zvcih2YXIgaT0wO2k8YS5sZW5ndGg7aSsrKXt2YXIgbD10KGFbaV0pO25bbF0ucmVmZXJlbmNlcy0tfWZvcih2YXIgcz1yKGUsbyksYz0wO2M8YS5sZW5ndGg7YysrKXt2YXIgdT10KGFbY10pOzA9PT1uW3VdLnJlZmVyZW5jZXMmJihuW3VdLnVwZGF0ZXIoKSxuLnNwbGljZSh1LDEpKX1hPXN9fX0sXCIuLi8uLi9ub2RlX21vZHVsZXMvLnBucG0vc3R5bGUtbG9hZGVyQDQuMC4wX3dlYnBhY2tANS45OC4wX0Bzd2MrY29yZUAxLjExLjI0X0Bzd2MraGVscGVyc0AwLjUuMTVfX2VzYnVpbGRAMC4yNC4yXy9ub2RlX21vZHVsZXMvc3R5bGUtbG9hZGVyL2Rpc3QvcnVudGltZS9pbnNlcnRTdHlsZUVsZW1lbnQuanNcIjpmdW5jdGlvbihlKXtcInVzZSBzdHJpY3RcIjtlLmV4cG9ydHM9ZnVuY3Rpb24oZSl7dmFyIG49ZG9jdW1lbnQuY3JlYXRlRWxlbWVudChcInN0eWxlXCIpO3JldHVybiBlLnNldEF0dHJpYnV0ZXMobixlLmF0dHJpYnV0ZXMpLGUuaW5zZXJ0KG4sZS5vcHRpb25zKSxufX0sXCIuLi8uLi9ub2RlX21vZHVsZXMvLnBucG0vc3R5bGUtbG9hZGVyQDQuMC4wX3dlYnBhY2tANS45OC4wX0Bzd2MrY29yZUAxLjExLjI0X0Bzd2MraGVscGVyc0AwLjUuMTVfX2VzYnVpbGRAMC4yNC4yXy9ub2RlX21vZHVsZXMvc3R5bGUtbG9hZGVyL2Rpc3QvcnVudGltZS9zZXRBdHRyaWJ1dGVzV2l0aG91dEF0dHJpYnV0ZXMuanNcIjpmdW5jdGlvbihlLG4sdCl7XCJ1c2Ugc3RyaWN0XCI7ZS5leHBvcnRzPWZ1bmN0aW9uKGUpe3ZhciBuPXQubmM7biYmZS5zZXRBdHRyaWJ1dGUoXCJub25jZVwiLG4pfX0sXCIuLi8uLi9ub2RlX21vZHVsZXMvLnBucG0vc3R5bGUtbG9hZGVyQDQuMC4wX3dlYnBhY2tANS45OC4wX0Bzd2MrY29yZUAxLjExLjI0X0Bzd2MraGVscGVyc0AwLjUuMTVfX2VzYnVpbGRAMC4yNC4yXy9ub2RlX21vZHVsZXMvc3R5bGUtbG9hZGVyL2Rpc3QvcnVudGltZS9zdHlsZURvbUFQSS5qc1wiOmZ1bmN0aW9uKGUpe1widXNlIHN0cmljdFwiO2UuZXhwb3J0cz1mdW5jdGlvbihlKXtpZihcInVuZGVmaW5lZFwiPT10eXBlb2YgZG9jdW1lbnQpcmV0dXJue3VwZGF0ZTpmdW5jdGlvbigpe30scmVtb3ZlOmZ1bmN0aW9uKCl7fX07dmFyIG49ZS5pbnNlcnRTdHlsZUVsZW1lbnQoZSk7cmV0dXJue3VwZGF0ZTpmdW5jdGlvbih0KXt2YXIgcixvLGE7cj1cIlwiLHQuc3VwcG9ydHMmJihyKz1cIkBzdXBwb3J0cyAoXCIuY29uY2F0KHQuc3VwcG9ydHMsXCIpIHtcIikpLHQubWVkaWEmJihyKz1cIkBtZWRpYSBcIi5jb25jYXQodC5tZWRpYSxcIiB7XCIpKSwobz12b2lkIDAhPT10LmxheWVyKSYmKHIrPVwiQGxheWVyXCIuY29uY2F0KHQubGF5ZXIubGVuZ3RoPjA/XCIgXCIuY29uY2F0KHQubGF5ZXIpOlwiXCIsXCIge1wiKSkscis9dC5jc3MsbyYmKHIrPVwifVwiKSx0Lm1lZGlhJiYocis9XCJ9XCIpLHQuc3VwcG9ydHMmJihyKz1cIn1cIiksKGE9dC5zb3VyY2VNYXApJiZcInVuZGVmaW5lZFwiIT10eXBlb2YgYnRvYSYmKHIrPVwiXFxuLyojIHNvdXJjZU1hcHBpbmdVUkw9ZGF0YTphcHBsaWNhdGlvbi9qc29uO2Jhc2U2NCxcIi5jb25jYXQoYnRvYSh1bmVzY2FwZShlbmNvZGVVUklDb21wb25lbnQoSlNPTi5zdHJpbmdpZnkoYSkpKSksXCIgKi9cIikpLGUuc3R5bGVUYWdUcmFuc2Zvcm0ocixuLGUub3B0aW9ucyl9LHJlbW92ZTpmdW5jdGlvbigpeyFmdW5jdGlvbihlKXtpZihudWxsIT09ZS5wYXJlbnROb2RlKWUucGFyZW50Tm9kZS5yZW1vdmVDaGlsZChlKX0obil9fX19LFwiLi4vLi4vbm9kZV9tb2R1bGVzLy5wbnBtL3N0eWxlLWxvYWRlckA0LjAuMF93ZWJwYWNrQDUuOTguMF9Ac3djK2NvcmVAMS4xMS4yNF9Ac3djK2hlbHBlcnNAMC41LjE1X19lc2J1aWxkQDAuMjQuMl8vbm9kZV9tb2R1bGVzL3N0eWxlLWxvYWRlci9kaXN0L3J1bnRpbWUvc3R5bGVUYWdUcmFuc2Zvcm0uanNcIjpmdW5jdGlvbihlKXtcInVzZSBzdHJpY3RcIjtlLmV4cG9ydHM9ZnVuY3Rpb24oZSxuKXtpZihuLnN0eWxlU2hlZXQpbi5zdHlsZVNoZWV0LmNzc1RleHQ9ZTtlbHNle2Zvcig7bi5maXJzdENoaWxkOyluLnJlbW92ZUNoaWxkKG4uZmlyc3RDaGlsZCk7bi5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZShlKSl9fX0sXCIuL2Rpc3QvY29tcGlsZWQvYW5zZXIvaW5kZXguanNcIjpmdW5jdGlvbihlKXsoKCk9PntcInVzZSBzdHJpY3RcIjt2YXIgbj17MjExOmU9Pnt2YXIgbj1mdW5jdGlvbigpe2Z1bmN0aW9uIGUoZSxuKXtmb3IodmFyIHQ9MDt0PG4ubGVuZ3RoO3QrKyl7dmFyIHI9blt0XTtyLmVudW1lcmFibGU9ci5lbnVtZXJhYmxlfHwhMSxyLmNvbmZpZ3VyYWJsZT0hMCxcInZhbHVlXCJpbiByJiYoci53cml0YWJsZT0hMCksT2JqZWN0LmRlZmluZVByb3BlcnR5KGUsci5rZXkscil9fXJldHVybiBmdW5jdGlvbihuLHQscil7cmV0dXJuIHQmJmUobi5wcm90b3R5cGUsdCksciYmZShuLHIpLG59fSgpLHQ9W1t7Y29sb3I6XCIwLCAwLCAwXCIsY2xhc3M6XCJhbnNpLWJsYWNrXCJ9LHtjb2xvcjpcIjE4NywgMCwgMFwiLGNsYXNzOlwiYW5zaS1yZWRcIn0se2NvbG9yOlwiMCwgMTg3LCAwXCIsY2xhc3M6XCJhbnNpLWdyZWVuXCJ9LHtjb2xvcjpcIjE4NywgMTg3LCAwXCIsY2xhc3M6XCJhbnNpLXllbGxvd1wifSx7Y29sb3I6XCIwLCAwLCAxODdcIixjbGFzczpcImFuc2ktYmx1ZVwifSx7Y29sb3I6XCIxODcsIDAsIDE4N1wiLGNsYXNzOlwiYW5zaS1tYWdlbnRhXCJ9LHtjb2xvcjpcIjAsIDE4NywgMTg3XCIsY2xhc3M6XCJhbnNpLWN5YW5cIn0se2NvbG9yOlwiMjU1LDI1NSwyNTVcIixjbGFzczpcImFuc2ktd2hpdGVcIn1dLFt7Y29sb3I6XCI4NSwgODUsIDg1XCIsY2xhc3M6XCJhbnNpLWJyaWdodC1ibGFja1wifSx7Y29sb3I6XCIyNTUsIDg1LCA4NVwiLGNsYXNzOlwiYW5zaS1icmlnaHQtcmVkXCJ9LHtjb2xvcjpcIjAsIDI1NSwgMFwiLGNsYXNzOlwiYW5zaS1icmlnaHQtZ3JlZW5cIn0se2NvbG9yOlwiMjU1LCAyNTUsIDg1XCIsY2xhc3M6XCJhbnNpLWJyaWdodC15ZWxsb3dcIn0se2NvbG9yOlwiODUsIDg1LCAyNTVcIixjbGFzczpcImFuc2ktYnJpZ2h0LWJsdWVcIn0se2NvbG9yOlwiMjU1LCA4NSwgMjU1XCIsY2xhc3M6XCJhbnNpLWJyaWdodC1tYWdlbnRhXCJ9LHtjb2xvcjpcIjg1LCAyNTUsIDI1NVwiLGNsYXNzOlwiYW5zaS1icmlnaHQtY3lhblwifSx7Y29sb3I6XCIyNTUsIDI1NSwgMjU1XCIsY2xhc3M6XCJhbnNpLWJyaWdodC13aGl0ZVwifV1dO2UuZXhwb3J0cz1mdW5jdGlvbigpe2Z1bmN0aW9uIGUoKXtpZighKHRoaXMgaW5zdGFuY2VvZiBlKSl0aHJvdyBUeXBlRXJyb3IoXCJDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb25cIik7dGhpcy5mZz10aGlzLmJnPXRoaXMuZmdfdHJ1ZWNvbG9yPXRoaXMuYmdfdHJ1ZWNvbG9yPW51bGwsdGhpcy5icmlnaHQ9MH1yZXR1cm4gbihlLG51bGwsW3trZXk6XCJlc2NhcGVGb3JIdG1sXCIsdmFsdWU6ZnVuY3Rpb24obil7cmV0dXJuKG5ldyBlKS5lc2NhcGVGb3JIdG1sKG4pfX0se2tleTpcImxpbmtpZnlcIix2YWx1ZTpmdW5jdGlvbihuKXtyZXR1cm4obmV3IGUpLmxpbmtpZnkobil9fSx7a2V5OlwiYW5zaVRvSHRtbFwiLHZhbHVlOmZ1bmN0aW9uKG4sdCl7cmV0dXJuKG5ldyBlKS5hbnNpVG9IdG1sKG4sdCl9fSx7a2V5OlwiYW5zaVRvSnNvblwiLHZhbHVlOmZ1bmN0aW9uKG4sdCl7cmV0dXJuKG5ldyBlKS5hbnNpVG9Kc29uKG4sdCl9fSx7a2V5OlwiYW5zaVRvVGV4dFwiLHZhbHVlOmZ1bmN0aW9uKG4pe3JldHVybihuZXcgZSkuYW5zaVRvVGV4dChuKX19XSksbihlLFt7a2V5Olwic2V0dXBQYWxldHRlXCIsdmFsdWU6ZnVuY3Rpb24oKXt0aGlzLlBBTEVUVEVfQ09MT1JTPVtdO2Zvcih2YXIgZT0wO2U8MjsrK2UpZm9yKHZhciBuPTA7bjw4Oysrbil0aGlzLlBBTEVUVEVfQ09MT1JTLnB1c2godFtlXVtuXS5jb2xvcik7Zm9yKHZhciByPVswLDk1LDEzNSwxNzUsMjE1LDI1NV0sbz1mdW5jdGlvbihlLG4sdCl7cmV0dXJuIHJbZV0rXCIsIFwiK3Jbbl0rXCIsIFwiK3JbdF19LGE9MDthPDY7KythKWZvcih2YXIgaT0wO2k8NjsrK2kpZm9yKHZhciBsPTA7bDw2OysrbCl0aGlzLlBBTEVUVEVfQ09MT1JTLnB1c2gobyhhLGksbCkpO2Zvcih2YXIgcz04LGM9MDtjPDI0OysrYyxzKz0xMCl0aGlzLlBBTEVUVEVfQ09MT1JTLnB1c2gobyhzLHMscykpfX0se2tleTpcImVzY2FwZUZvckh0bWxcIix2YWx1ZTpmdW5jdGlvbihlKXtyZXR1cm4gZS5yZXBsYWNlKC9bJjw+XS9nbSxmdW5jdGlvbihlKXtyZXR1cm5cIiZcIj09ZT9cIiZhbXA7XCI6XCI8XCI9PWU/XCImbHQ7XCI6XCI+XCI9PWU/XCImZ3Q7XCI6XCJcIn0pfX0se2tleTpcImxpbmtpZnlcIix2YWx1ZTpmdW5jdGlvbihlKXtyZXR1cm4gZS5yZXBsYWNlKC8oaHR0cHM/OlxcL1xcL1teXFxzXSspL2dtLGZ1bmN0aW9uKGUpe3JldHVybic8YSBocmVmPVwiJytlKydcIj4nK2UrXCI8L2E+XCJ9KX19LHtrZXk6XCJhbnNpVG9IdG1sXCIsdmFsdWU6ZnVuY3Rpb24oZSxuKXtyZXR1cm4gdGhpcy5wcm9jZXNzKGUsbiwhMCl9fSx7a2V5OlwiYW5zaVRvSnNvblwiLHZhbHVlOmZ1bmN0aW9uKGUsbil7cmV0dXJuKG49bnx8e30pLmpzb249ITAsbi5jbGVhckxpbmU9ITEsdGhpcy5wcm9jZXNzKGUsbiwhMCl9fSx7a2V5OlwiYW5zaVRvVGV4dFwiLHZhbHVlOmZ1bmN0aW9uKGUpe3JldHVybiB0aGlzLnByb2Nlc3MoZSx7fSwhMSl9fSx7a2V5OlwicHJvY2Vzc1wiLHZhbHVlOmZ1bmN0aW9uKGUsbix0KXt2YXIgcj10aGlzLG89ZS5zcGxpdCgvXFwwMzNcXFsvKSxhPW8uc2hpZnQoKTtudWxsPT1uJiYobj17fSksbi5jbGVhckxpbmU9L1xcci8udGVzdChlKTt2YXIgaT1vLm1hcChmdW5jdGlvbihlKXtyZXR1cm4gci5wcm9jZXNzQ2h1bmsoZSxuLHQpfSk7aWYobiYmbi5qc29uKXt2YXIgbD10aGlzLnByb2Nlc3NDaHVua0pzb24oXCJcIik7cmV0dXJuIGwuY29udGVudD1hLGwuY2xlYXJMaW5lPW4uY2xlYXJMaW5lLGkudW5zaGlmdChsKSxuLnJlbW92ZV9lbXB0eSYmKGk9aS5maWx0ZXIoZnVuY3Rpb24oZSl7cmV0dXJuIWUuaXNFbXB0eSgpfSkpLGl9cmV0dXJuIGkudW5zaGlmdChhKSxpLmpvaW4oXCJcIil9fSx7a2V5OlwicHJvY2Vzc0NodW5rSnNvblwiLHZhbHVlOmZ1bmN0aW9uKGUsbixyKXt2YXIgbz0obj12b2lkIDA9PT1uP3t9Om4pLnVzZV9jbGFzc2VzPXZvaWQgMCE9PW4udXNlX2NsYXNzZXMmJm4udXNlX2NsYXNzZXMsYT1uLmtleT1vP1wiY2xhc3NcIjpcImNvbG9yXCIsaT17Y29udGVudDplLGZnOm51bGwsYmc6bnVsbCxmZ190cnVlY29sb3I6bnVsbCxiZ190cnVlY29sb3I6bnVsbCxjbGVhckxpbmU6bi5jbGVhckxpbmUsZGVjb3JhdGlvbjpudWxsLHdhc19wcm9jZXNzZWQ6ITEsaXNFbXB0eTpmdW5jdGlvbigpe3JldHVybiFpLmNvbnRlbnR9fSxsPWUubWF0Y2goL14oWyFcXHgzYy1cXHgzZl0qKShbXFxkO10qKShbXFx4MjAtXFx4MmNdKltcXHg0MC1cXHg3ZV0pKFtcXHNcXFNdKikvbSk7aWYoIWwpcmV0dXJuIGk7aS5jb250ZW50PWxbNF07dmFyIHM9bFsyXS5zcGxpdChcIjtcIik7aWYoXCJcIiE9PWxbMV18fFwibVwiIT09bFszXXx8IXIpcmV0dXJuIGk7Zm9yKHRoaXMuZGVjb3JhdGlvbj1udWxsO3MubGVuZ3RoPjA7KXt2YXIgYz1wYXJzZUludChzLnNoaWZ0KCkpO2lmKGlzTmFOKGMpfHwwPT09Yyl0aGlzLmZnPXRoaXMuYmc9dGhpcy5kZWNvcmF0aW9uPW51bGw7ZWxzZSBpZigxPT09Yyl0aGlzLmRlY29yYXRpb249XCJib2xkXCI7ZWxzZSBpZigyPT09Yyl0aGlzLmRlY29yYXRpb249XCJkaW1cIjtlbHNlIGlmKDM9PWMpdGhpcy5kZWNvcmF0aW9uPVwiaXRhbGljXCI7ZWxzZSBpZig0PT1jKXRoaXMuZGVjb3JhdGlvbj1cInVuZGVybGluZVwiO2Vsc2UgaWYoNT09Yyl0aGlzLmRlY29yYXRpb249XCJibGlua1wiO2Vsc2UgaWYoNz09PWMpdGhpcy5kZWNvcmF0aW9uPVwicmV2ZXJzZVwiO2Vsc2UgaWYoOD09PWMpdGhpcy5kZWNvcmF0aW9uPVwiaGlkZGVuXCI7ZWxzZSBpZig5PT09Yyl0aGlzLmRlY29yYXRpb249XCJzdHJpa2V0aHJvdWdoXCI7ZWxzZSBpZigzOT09Yyl0aGlzLmZnPW51bGw7ZWxzZSBpZig0OT09Yyl0aGlzLmJnPW51bGw7ZWxzZSBpZihjPj0zMCYmYzwzOCl0aGlzLmZnPXRbMF1bYyUxMF1bYV07ZWxzZSBpZihjPj05MCYmYzw5OCl0aGlzLmZnPXRbMV1bYyUxMF1bYV07ZWxzZSBpZihjPj00MCYmYzw0OCl0aGlzLmJnPXRbMF1bYyUxMF1bYV07ZWxzZSBpZihjPj0xMDAmJmM8MTA4KXRoaXMuYmc9dFsxXVtjJTEwXVthXTtlbHNlIGlmKDM4PT09Y3x8NDg9PT1jKXt2YXIgdT0zOD09PWM7aWYocy5sZW5ndGg+PTEpe3ZhciBkPXMuc2hpZnQoKTtpZihcIjVcIj09PWQmJnMubGVuZ3RoPj0xKXt2YXIgZj1wYXJzZUludChzLnNoaWZ0KCkpO2lmKGY+PTAmJmY8PTI1NSlpZihvKXt2YXIgcD1mPj0xNj9cImFuc2ktcGFsZXR0ZS1cIitmOnRbKyhmPjcpXVtmJThdLmNsYXNzO3U/dGhpcy5mZz1wOnRoaXMuYmc9cH1lbHNlIHRoaXMuUEFMRVRURV9DT0xPUlN8fHRoaXMuc2V0dXBQYWxldHRlKCksdT90aGlzLmZnPXRoaXMuUEFMRVRURV9DT0xPUlNbZl06dGhpcy5iZz10aGlzLlBBTEVUVEVfQ09MT1JTW2ZdfWVsc2UgaWYoXCIyXCI9PT1kJiZzLmxlbmd0aD49Myl7dmFyIGg9cGFyc2VJbnQocy5zaGlmdCgpKSxnPXBhcnNlSW50KHMuc2hpZnQoKSksbT1wYXJzZUludChzLnNoaWZ0KCkpO2lmKGg+PTAmJmg8PTI1NSYmZz49MCYmZzw9MjU1JiZtPj0wJiZtPD0yNTUpe3ZhciB2PWgrXCIsIFwiK2crXCIsIFwiK207bz91Pyh0aGlzLmZnPVwiYW5zaS10cnVlY29sb3JcIix0aGlzLmZnX3RydWVjb2xvcj12KToodGhpcy5iZz1cImFuc2ktdHJ1ZWNvbG9yXCIsdGhpcy5iZ190cnVlY29sb3I9dik6dT90aGlzLmZnPXY6dGhpcy5iZz12fX19fX1yZXR1cm4gbnVsbD09PXRoaXMuZmcmJm51bGw9PT10aGlzLmJnJiZudWxsPT09dGhpcy5kZWNvcmF0aW9ufHwoaS5mZz10aGlzLmZnLGkuYmc9dGhpcy5iZyxpLmZnX3RydWVjb2xvcj10aGlzLmZnX3RydWVjb2xvcixpLmJnX3RydWVjb2xvcj10aGlzLmJnX3RydWVjb2xvcixpLmRlY29yYXRpb249dGhpcy5kZWNvcmF0aW9uLGkud2FzX3Byb2Nlc3NlZD0hMCksaX19LHtrZXk6XCJwcm9jZXNzQ2h1bmtcIix2YWx1ZTpmdW5jdGlvbihlLG4sdCl7dmFyIHI9dGhpcztuPW58fHt9O3ZhciBvPXRoaXMucHJvY2Vzc0NodW5rSnNvbihlLG4sdCk7aWYobi5qc29uKXJldHVybiBvO2lmKG8uaXNFbXB0eSgpKXJldHVyblwiXCI7aWYoIW8ud2FzX3Byb2Nlc3NlZClyZXR1cm4gby5jb250ZW50O3ZhciBhPW4udXNlX2NsYXNzZXMsaT1bXSxsPVtdLHM9e30sYz1mdW5jdGlvbihlKXt2YXIgbj1bXSx0PXZvaWQgMDtmb3IodCBpbiBlKWUuaGFzT3duUHJvcGVydHkodCkmJm4ucHVzaChcImRhdGEtXCIrdCsnPVwiJytyLmVzY2FwZUZvckh0bWwoZVt0XSkrJ1wiJyk7cmV0dXJuIG4ubGVuZ3RoPjA/XCIgXCIrbi5qb2luKFwiIFwiKTpcIlwifTtyZXR1cm4oby5mZyYmKGE/KGwucHVzaChvLmZnK1wiLWZnXCIpLG51bGwhPT1vLmZnX3RydWVjb2xvciYmKHNbXCJhbnNpLXRydWVjb2xvci1mZ1wiXT1vLmZnX3RydWVjb2xvcixvLmZnX3RydWVjb2xvcj1udWxsKSk6aS5wdXNoKFwiY29sb3I6cmdiKFwiK28uZmcrXCIpXCIpKSxvLmJnJiYoYT8obC5wdXNoKG8uYmcrXCItYmdcIiksbnVsbCE9PW8uYmdfdHJ1ZWNvbG9yJiYoc1tcImFuc2ktdHJ1ZWNvbG9yLWJnXCJdPW8uYmdfdHJ1ZWNvbG9yLG8uYmdfdHJ1ZWNvbG9yPW51bGwpKTppLnB1c2goXCJiYWNrZ3JvdW5kLWNvbG9yOnJnYihcIitvLmJnK1wiKVwiKSksby5kZWNvcmF0aW9uJiYoYT9sLnB1c2goXCJhbnNpLVwiK28uZGVjb3JhdGlvbik6XCJib2xkXCI9PT1vLmRlY29yYXRpb24/aS5wdXNoKFwiZm9udC13ZWlnaHQ6Ym9sZFwiKTpcImRpbVwiPT09by5kZWNvcmF0aW9uP2kucHVzaChcIm9wYWNpdHk6MC41XCIpOlwiaXRhbGljXCI9PT1vLmRlY29yYXRpb24/aS5wdXNoKFwiZm9udC1zdHlsZTppdGFsaWNcIik6XCJyZXZlcnNlXCI9PT1vLmRlY29yYXRpb24/aS5wdXNoKFwiZmlsdGVyOmludmVydCgxMDAlKVwiKTpcImhpZGRlblwiPT09by5kZWNvcmF0aW9uP2kucHVzaChcInZpc2liaWxpdHk6aGlkZGVuXCIpOlwic3RyaWtldGhyb3VnaFwiPT09by5kZWNvcmF0aW9uP2kucHVzaChcInRleHQtZGVjb3JhdGlvbjpsaW5lLXRocm91Z2hcIik6aS5wdXNoKFwidGV4dC1kZWNvcmF0aW9uOlwiK28uZGVjb3JhdGlvbikpLGEpPyc8c3BhbiBjbGFzcz1cIicrbC5qb2luKFwiIFwiKSsnXCInK2MocykrXCI+XCIrby5jb250ZW50K1wiPC9zcGFuPlwiOic8c3BhbiBzdHlsZT1cIicraS5qb2luKFwiO1wiKSsnXCInK2MocykrXCI+XCIrby5jb250ZW50K1wiPC9zcGFuPlwifX1dKSxlfSgpfX0sdD17fTtmdW5jdGlvbiByKGUpe3ZhciBvPXRbZV07aWYodm9pZCAwIT09bylyZXR1cm4gby5leHBvcnRzO3ZhciBhPXRbZV09e2V4cG9ydHM6e319LGk9ITA7dHJ5e25bZV0oYSxhLmV4cG9ydHMsciksaT0hMX1maW5hbGx5e2kmJmRlbGV0ZSB0W2VdfXJldHVybiBhLmV4cG9ydHN9ci5hYj1cIi8vXCIsZS5leHBvcnRzPXIoMjExKX0pKCl9LFwiLi9kaXN0L2NvbXBpbGVkL3JlYWN0LWRvbS9janMvcmVhY3QtZG9tLWNsaWVudC5wcm9kdWN0aW9uLmpzXCI6ZnVuY3Rpb24oZSxuLHQpe1widXNlIHN0cmljdFwiO3ZhciByLG89dChcIi4vZGlzdC9jb21waWxlZC9zY2hlZHVsZXIvaW5kZXguanNcIiksYT10KFwiLi9kaXN0L2NvbXBpbGVkL3JlYWN0L2luZGV4LmpzXCIpLGk9dChcIi4vZGlzdC9jb21waWxlZC9yZWFjdC1kb20vaW5kZXguanNcIik7ZnVuY3Rpb24gbChlKXt2YXIgbj1cImh0dHBzOi8vcmVhY3QuZGV2L2Vycm9ycy9cIitlO2lmKDE8YXJndW1lbnRzLmxlbmd0aCl7bis9XCI/YXJnc1tdPVwiK2VuY29kZVVSSUNvbXBvbmVudChhcmd1bWVudHNbMV0pO2Zvcih2YXIgdD0yO3Q8YXJndW1lbnRzLmxlbmd0aDt0Kyspbis9XCImYXJnc1tdPVwiK2VuY29kZVVSSUNvbXBvbmVudChhcmd1bWVudHNbdF0pfXJldHVyblwiTWluaWZpZWQgUmVhY3QgZXJyb3IgI1wiK2UrXCI7IHZpc2l0IFwiK24rXCIgZm9yIHRoZSBmdWxsIG1lc3NhZ2Ugb3IgdXNlIHRoZSBub24tbWluaWZpZWQgZGV2IGVudmlyb25tZW50IGZvciBmdWxsIGVycm9ycyBhbmQgYWRkaXRpb25hbCBoZWxwZnVsIHdhcm5pbmdzLlwifWZ1bmN0aW9uIHMoZSl7dmFyIG49ZSx0PWU7aWYoZS5hbHRlcm5hdGUpZm9yKDtuLnJldHVybjspbj1uLnJldHVybjtlbHNle2U9bjtkbyAwIT0oNDA5OCYobj1lKS5mbGFncykmJih0PW4ucmV0dXJuKSxlPW4ucmV0dXJuO3doaWxlKGUpfXJldHVybiAzPT09bi50YWc/dDpudWxsfWZ1bmN0aW9uIGMoZSl7aWYoMTM9PT1lLnRhZyl7dmFyIG49ZS5tZW1vaXplZFN0YXRlO2lmKG51bGw9PT1uJiZudWxsIT09KGU9ZS5hbHRlcm5hdGUpJiYobj1lLm1lbW9pemVkU3RhdGUpLG51bGwhPT1uKXJldHVybiBuLmRlaHlkcmF0ZWR9cmV0dXJuIG51bGx9ZnVuY3Rpb24gdShlKXtpZigzMT09PWUudGFnKXt2YXIgbj1lLm1lbW9pemVkU3RhdGU7aWYobnVsbD09PW4mJm51bGwhPT0oZT1lLmFsdGVybmF0ZSkmJihuPWUubWVtb2l6ZWRTdGF0ZSksbnVsbCE9PW4pcmV0dXJuIG4uZGVoeWRyYXRlZH1yZXR1cm4gbnVsbH1mdW5jdGlvbiBkKGUpe2lmKHMoZSkhPT1lKXRocm93IEVycm9yKGwoMTg4KSl9dmFyIGY9T2JqZWN0LmFzc2lnbixwPVN5bWJvbC5mb3IoXCJyZWFjdC5lbGVtZW50XCIpLGg9U3ltYm9sLmZvcihcInJlYWN0LnRyYW5zaXRpb25hbC5lbGVtZW50XCIpLGc9U3ltYm9sLmZvcihcInJlYWN0LnBvcnRhbFwiKSxtPVN5bWJvbC5mb3IoXCJyZWFjdC5mcmFnbWVudFwiKSx2PVN5bWJvbC5mb3IoXCJyZWFjdC5zdHJpY3RfbW9kZVwiKSxiPVN5bWJvbC5mb3IoXCJyZWFjdC5wcm9maWxlclwiKSx5PVN5bWJvbC5mb3IoXCJyZWFjdC5jb25zdW1lclwiKSx4PVN5bWJvbC5mb3IoXCJyZWFjdC5jb250ZXh0XCIpLHc9U3ltYm9sLmZvcihcInJlYWN0LmZvcndhcmRfcmVmXCIpLGo9U3ltYm9sLmZvcihcInJlYWN0LnN1c3BlbnNlXCIpLGs9U3ltYm9sLmZvcihcInJlYWN0LnN1c3BlbnNlX2xpc3RcIiksQT1TeW1ib2wuZm9yKFwicmVhY3QubWVtb1wiKSxPPVN5bWJvbC5mb3IoXCJyZWFjdC5sYXp5XCIpO1N5bWJvbC5mb3IoXCJyZWFjdC5zY29wZVwiKTt2YXIgQz1TeW1ib2wuZm9yKFwicmVhY3QuYWN0aXZpdHlcIik7U3ltYm9sLmZvcihcInJlYWN0LmxlZ2FjeV9oaWRkZW5cIiksU3ltYm9sLmZvcihcInJlYWN0LnRyYWNpbmdfbWFya2VyXCIpO3ZhciBTPVN5bWJvbC5mb3IoXCJyZWFjdC5tZW1vX2NhY2hlX3NlbnRpbmVsXCIpO1N5bWJvbC5mb3IoXCJyZWFjdC52aWV3X3RyYW5zaXRpb25cIik7dmFyIEU9U3ltYm9sLml0ZXJhdG9yO2Z1bmN0aW9uIF8oZSl7cmV0dXJuIG51bGw9PT1lfHxcIm9iamVjdFwiIT10eXBlb2YgZT9udWxsOlwiZnVuY3Rpb25cIj09dHlwZW9mKGU9RSYmZVtFXXx8ZVtcIkBAaXRlcmF0b3JcIl0pP2U6bnVsbH12YXIgUD1TeW1ib2wuZm9yKFwicmVhY3QuY2xpZW50LnJlZmVyZW5jZVwiKSx6PUFycmF5LmlzQXJyYXksTD1hLl9fQ0xJRU5UX0lOVEVSTkFMU19ET19OT1RfVVNFX09SX1dBUk5fVVNFUlNfVEhFWV9DQU5OT1RfVVBHUkFERSxUPWkuX19ET01fSU5URVJOQUxTX0RPX05PVF9VU0VfT1JfV0FSTl9VU0VSU19USEVZX0NBTk5PVF9VUEdSQURFLFI9e3BlbmRpbmc6ITEsZGF0YTpudWxsLG1ldGhvZDpudWxsLGFjdGlvbjpudWxsfSxOPVtdLEQ9LTE7ZnVuY3Rpb24gQihlKXtyZXR1cm57Y3VycmVudDplfX1mdW5jdGlvbiBNKGUpezA+RHx8KGUuY3VycmVudD1OW0RdLE5bRF09bnVsbCxELS0pfWZ1bmN0aW9uIEkoZSxuKXtOWysrRF09ZS5jdXJyZW50LGUuY3VycmVudD1ufXZhciBIPUIobnVsbCksRj1CKG51bGwpLFU9QihudWxsKSxWPUIobnVsbCk7ZnVuY3Rpb24gcShlLG4pe3N3aXRjaChJKFUsbiksSShGLGUpLEkoSCxudWxsKSxuLm5vZGVUeXBlKXtjYXNlIDk6Y2FzZSAxMTplPShlPW4uZG9jdW1lbnRFbGVtZW50KSYmKGU9ZS5uYW1lc3BhY2VVUkkpP2NwKGUpOjA7YnJlYWs7ZGVmYXVsdDppZihlPW4udGFnTmFtZSxuPW4ubmFtZXNwYWNlVVJJKWU9Y2gobj1jcChuKSxlKTtlbHNlIHN3aXRjaChlKXtjYXNlXCJzdmdcIjplPTE7YnJlYWs7Y2FzZVwibWF0aFwiOmU9MjticmVhaztkZWZhdWx0OmU9MH19TShIKSxJKEgsZSl9ZnVuY3Rpb24gVygpe00oSCksTShGKSxNKFUpfWZ1bmN0aW9uICQoZSl7bnVsbCE9PWUubWVtb2l6ZWRTdGF0ZSYmSShWLGUpO3ZhciBuPUguY3VycmVudCx0PWNoKG4sZS50eXBlKTtuIT09dCYmKEkoRixlKSxJKEgsdCkpfWZ1bmN0aW9uIFooZSl7Ri5jdXJyZW50PT09ZSYmKE0oSCksTShGKSksVi5jdXJyZW50PT09ZSYmKE0oViksYzYuX2N1cnJlbnRWYWx1ZT1SKX1mdW5jdGlvbiBZKGUpe2lmKHZvaWQgMD09PW5EKXRyeXt0aHJvdyBFcnJvcigpfWNhdGNoKGUpe3ZhciBuPWUuc3RhY2sudHJpbSgpLm1hdGNoKC9cXG4oICooYXQgKT8pLyk7bkQ9biYmblsxXXx8XCJcIixuQj0tMTxlLnN0YWNrLmluZGV4T2YoXCJcXG4gICAgYXRcIik/XCIgKDxhbm9ueW1vdXM+KVwiOi0xPGUuc3RhY2suaW5kZXhPZihcIkBcIik/XCJAdW5rbm93bjowOjBcIjpcIlwifXJldHVyblwiXFxuXCIrbkQrZStuQn12YXIgWD0hMTtmdW5jdGlvbiBLKGUsbil7aWYoIWV8fFgpcmV0dXJuXCJcIjtYPSEwO3ZhciB0PUVycm9yLnByZXBhcmVTdGFja1RyYWNlO0Vycm9yLnByZXBhcmVTdGFja1RyYWNlPXZvaWQgMDt0cnl7dmFyIHI9e0RldGVybWluZUNvbXBvbmVudEZyYW1lUm9vdDpmdW5jdGlvbigpe3RyeXtpZihuKXt2YXIgdD1mdW5jdGlvbigpe3Rocm93IEVycm9yKCl9O2lmKE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LnByb3RvdHlwZSxcInByb3BzXCIse3NldDpmdW5jdGlvbigpe3Rocm93IEVycm9yKCl9fSksXCJvYmplY3RcIj09dHlwZW9mIFJlZmxlY3QmJlJlZmxlY3QuY29uc3RydWN0KXt0cnl7UmVmbGVjdC5jb25zdHJ1Y3QodCxbXSl9Y2F0Y2goZSl7dmFyIHI9ZX1SZWZsZWN0LmNvbnN0cnVjdChlLFtdLHQpfWVsc2V7dHJ5e3QuY2FsbCgpfWNhdGNoKGUpe3I9ZX1lLmNhbGwodC5wcm90b3R5cGUpfX1lbHNle3RyeXt0aHJvdyBFcnJvcigpfWNhdGNoKGUpe3I9ZX0odD1lKCkpJiZcImZ1bmN0aW9uXCI9PXR5cGVvZiB0LmNhdGNoJiZ0LmNhdGNoKGZ1bmN0aW9uKCl7fSl9fWNhdGNoKGUpe2lmKGUmJnImJlwic3RyaW5nXCI9PXR5cGVvZiBlLnN0YWNrKXJldHVybltlLnN0YWNrLHIuc3RhY2tdfXJldHVybltudWxsLG51bGxdfX07ci5EZXRlcm1pbmVDb21wb25lbnRGcmFtZVJvb3QuZGlzcGxheU5hbWU9XCJEZXRlcm1pbmVDb21wb25lbnRGcmFtZVJvb3RcIjt2YXIgbz1PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHIuRGV0ZXJtaW5lQ29tcG9uZW50RnJhbWVSb290LFwibmFtZVwiKTtvJiZvLmNvbmZpZ3VyYWJsZSYmT2JqZWN0LmRlZmluZVByb3BlcnR5KHIuRGV0ZXJtaW5lQ29tcG9uZW50RnJhbWVSb290LFwibmFtZVwiLHt2YWx1ZTpcIkRldGVybWluZUNvbXBvbmVudEZyYW1lUm9vdFwifSk7dmFyIGE9ci5EZXRlcm1pbmVDb21wb25lbnRGcmFtZVJvb3QoKSxpPWFbMF0sbD1hWzFdO2lmKGkmJmwpe3ZhciBzPWkuc3BsaXQoXCJcXG5cIiksYz1sLnNwbGl0KFwiXFxuXCIpO2ZvcihvPXI9MDtyPHMubGVuZ3RoJiYhc1tyXS5pbmNsdWRlcyhcIkRldGVybWluZUNvbXBvbmVudEZyYW1lUm9vdFwiKTspcisrO2Zvcig7bzxjLmxlbmd0aCYmIWNbb10uaW5jbHVkZXMoXCJEZXRlcm1pbmVDb21wb25lbnRGcmFtZVJvb3RcIik7KW8rKztpZihyPT09cy5sZW5ndGh8fG89PT1jLmxlbmd0aClmb3Iocj1zLmxlbmd0aC0xLG89Yy5sZW5ndGgtMTsxPD1yJiYwPD1vJiZzW3JdIT09Y1tvXTspby0tO2Zvcig7MTw9ciYmMDw9bztyLS0sby0tKWlmKHNbcl0hPT1jW29dKXtpZigxIT09cnx8MSE9PW8pZG8gaWYoci0tLG8tLSwwPm98fHNbcl0hPT1jW29dKXt2YXIgdT1cIlxcblwiK3Nbcl0ucmVwbGFjZShcIiBhdCBuZXcgXCIsXCIgYXQgXCIpO3JldHVybiBlLmRpc3BsYXlOYW1lJiZ1LmluY2x1ZGVzKFwiPGFub255bW91cz5cIikmJih1PXUucmVwbGFjZShcIjxhbm9ueW1vdXM+XCIsZS5kaXNwbGF5TmFtZSkpLHV9d2hpbGUoMTw9ciYmMDw9byk7YnJlYWt9fX1maW5hbGx5e1g9ITEsRXJyb3IucHJlcGFyZVN0YWNrVHJhY2U9dH1yZXR1cm4odD1lP2UuZGlzcGxheU5hbWV8fGUubmFtZTpcIlwiKT9ZKHQpOlwiXCJ9ZnVuY3Rpb24gUShlKXt0cnl7dmFyIG49XCJcIix0PW51bGw7ZG8gbis9ZnVuY3Rpb24oZSxuKXtzd2l0Y2goZS50YWcpe2Nhc2UgMjY6Y2FzZSAyNzpjYXNlIDU6cmV0dXJuIFkoZS50eXBlKTtjYXNlIDE2OnJldHVybiBZKFwiTGF6eVwiKTtjYXNlIDEzOnJldHVybiBlLmNoaWxkIT09biYmbnVsbCE9PW4/WShcIlN1c3BlbnNlIEZhbGxiYWNrXCIpOlkoXCJTdXNwZW5zZVwiKTtjYXNlIDE5OnJldHVybiBZKFwiU3VzcGVuc2VMaXN0XCIpO2Nhc2UgMDpjYXNlIDE1OnJldHVybiBLKGUudHlwZSwhMSk7Y2FzZSAxMTpyZXR1cm4gSyhlLnR5cGUucmVuZGVyLCExKTtjYXNlIDE6cmV0dXJuIEsoZS50eXBlLCEwKTtjYXNlIDMxOnJldHVybiBZKFwiQWN0aXZpdHlcIik7ZGVmYXVsdDpyZXR1cm5cIlwifX0oZSx0KSx0PWUsZT1lLnJldHVybjt3aGlsZShlKTtyZXR1cm4gbn1jYXRjaChlKXtyZXR1cm5cIlxcbkVycm9yIGdlbmVyYXRpbmcgc3RhY2s6IFwiK2UubWVzc2FnZStcIlxcblwiK2Uuc3RhY2t9fXZhciBHPU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHksSj1vLnVuc3RhYmxlX3NjaGVkdWxlQ2FsbGJhY2ssZWU9by51bnN0YWJsZV9jYW5jZWxDYWxsYmFjayxlbj1vLnVuc3RhYmxlX3Nob3VsZFlpZWxkLGV0PW8udW5zdGFibGVfcmVxdWVzdFBhaW50LGVyPW8udW5zdGFibGVfbm93LGVvPW8udW5zdGFibGVfZ2V0Q3VycmVudFByaW9yaXR5TGV2ZWwsZWE9by51bnN0YWJsZV9JbW1lZGlhdGVQcmlvcml0eSxlaT1vLnVuc3RhYmxlX1VzZXJCbG9ja2luZ1ByaW9yaXR5LGVsPW8udW5zdGFibGVfTm9ybWFsUHJpb3JpdHksZXM9by51bnN0YWJsZV9Mb3dQcmlvcml0eSxlYz1vLnVuc3RhYmxlX0lkbGVQcmlvcml0eSxldT1vLmxvZyxlZD1vLnVuc3RhYmxlX3NldERpc2FibGVZaWVsZFZhbHVlLGVmPW51bGwsZXA9bnVsbDtmdW5jdGlvbiBlaChlKXtpZihcImZ1bmN0aW9uXCI9PXR5cGVvZiBldSYmZWQoZSksZXAmJlwiZnVuY3Rpb25cIj09dHlwZW9mIGVwLnNldFN0cmljdE1vZGUpdHJ5e2VwLnNldFN0cmljdE1vZGUoZWYsZSl9Y2F0Y2goZSl7fX12YXIgZWc9TWF0aC5jbHozMj9NYXRoLmNsejMyOmZ1bmN0aW9uKGUpe3JldHVybiAwPT0oZT4+Pj0wKT8zMjozMS0oZW0oZSkvZXZ8MCl8MH0sZW09TWF0aC5sb2csZXY9TWF0aC5MTjIsZWI9MjU2LGV5PTQxOTQzMDQ7ZnVuY3Rpb24gZXgoZSl7dmFyIG49NDImZTtpZigwIT09bilyZXR1cm4gbjtzd2l0Y2goZSYtZSl7Y2FzZSAxOnJldHVybiAxO2Nhc2UgMjpyZXR1cm4gMjtjYXNlIDQ6cmV0dXJuIDQ7Y2FzZSA4OnJldHVybiA4O2Nhc2UgMTY6cmV0dXJuIDE2O2Nhc2UgMzI6cmV0dXJuIDMyO2Nhc2UgNjQ6cmV0dXJuIDY0O2Nhc2UgMTI4OnJldHVybiAxMjg7Y2FzZSAyNTY6Y2FzZSA1MTI6Y2FzZSAxMDI0OmNhc2UgMjA0ODpjYXNlIDQwOTY6Y2FzZSA4MTkyOmNhc2UgMTYzODQ6Y2FzZSAzMjc2ODpjYXNlIDY1NTM2OmNhc2UgMTMxMDcyOmNhc2UgMjYyMTQ0OmNhc2UgNTI0Mjg4OmNhc2UgMTA0ODU3NjpjYXNlIDIwOTcxNTI6cmV0dXJuIDQxOTQwNDgmZTtjYXNlIDQxOTQzMDQ6Y2FzZSA4Mzg4NjA4OmNhc2UgMHgxMDAwMDAwOmNhc2UgMHgyMDAwMDAwOnJldHVybiAweDNjMDAwMDAmZTtjYXNlIDB4NDAwMDAwMDpyZXR1cm4gMHg0MDAwMDAwO2Nhc2UgMHg4MDAwMDAwOnJldHVybiAweDgwMDAwMDA7Y2FzZSAweDEwMDAwMDAwOnJldHVybiAweDEwMDAwMDAwO2Nhc2UgMHgyMDAwMDAwMDpyZXR1cm4gMHgyMDAwMDAwMDtjYXNlIDB4NDAwMDAwMDA6cmV0dXJuIDA7ZGVmYXVsdDpyZXR1cm4gZX19ZnVuY3Rpb24gZXcoZSxuLHQpe3ZhciByPWUucGVuZGluZ0xhbmVzO2lmKDA9PT1yKXJldHVybiAwO3ZhciBvPTAsYT1lLnN1c3BlbmRlZExhbmVzLGk9ZS5waW5nZWRMYW5lcztlPWUud2FybUxhbmVzO3ZhciBsPTB4N2ZmZmZmZiZyO3JldHVybiAwIT09bD8wIT0ocj1sJn5hKT9vPWV4KHIpOjAhPShpJj1sKT9vPWV4KGkpOnR8fDAhPSh0PWwmfmUpJiYobz1leCh0KSk6MCE9KGw9ciZ+YSk/bz1leChsKTowIT09aT9vPWV4KGkpOnR8fDAhPSh0PXImfmUpJiYobz1leCh0KSksMD09PW8/MDowIT09biYmbiE9PW8mJjA9PShuJmEpJiYoKGE9byYtbyk+PSh0PW4mLW4pfHwzMj09PWEmJjAhPSg0MTk0MDQ4JnQpKT9uOm99ZnVuY3Rpb24gZWooZSxuKXtyZXR1cm4gMD09KGUucGVuZGluZ0xhbmVzJn4oZS5zdXNwZW5kZWRMYW5lcyZ+ZS5waW5nZWRMYW5lcykmbil9ZnVuY3Rpb24gZWsoKXt2YXIgZT1lYjtyZXR1cm4gMD09KDQxOTQwNDgmKGViPDw9MSkpJiYoZWI9MjU2KSxlfWZ1bmN0aW9uIGVBKCl7dmFyIGU9ZXk7cmV0dXJuIDA9PSgweDNjMDAwMDAmKGV5PDw9MSkpJiYoZXk9NDE5NDMwNCksZX1mdW5jdGlvbiBlTyhlKXtmb3IodmFyIG49W10sdD0wOzMxPnQ7dCsrKW4ucHVzaChlKTtyZXR1cm4gbn1mdW5jdGlvbiBlQyhlLG4pe2UucGVuZGluZ0xhbmVzfD1uLDB4MTAwMDAwMDAhPT1uJiYoZS5zdXNwZW5kZWRMYW5lcz0wLGUucGluZ2VkTGFuZXM9MCxlLndhcm1MYW5lcz0wKX1mdW5jdGlvbiBlUyhlLG4sdCl7ZS5wZW5kaW5nTGFuZXN8PW4sZS5zdXNwZW5kZWRMYW5lcyY9fm47dmFyIHI9MzEtZWcobik7ZS5lbnRhbmdsZWRMYW5lc3w9bixlLmVudGFuZ2xlbWVudHNbcl09MHg0MDAwMDAwMHxlLmVudGFuZ2xlbWVudHNbcl18NDE5NDA5MCZ0fWZ1bmN0aW9uIGVFKGUsbil7dmFyIHQ9ZS5lbnRhbmdsZWRMYW5lc3w9bjtmb3IoZT1lLmVudGFuZ2xlbWVudHM7dDspe3ZhciByPTMxLWVnKHQpLG89MTw8cjtvJm58ZVtyXSZuJiYoZVtyXXw9biksdCY9fm99fWZ1bmN0aW9uIGVfKGUsbil7dmFyIHQ9biYtbjtyZXR1cm4gMCE9KCh0PTAhPSg0MiZ0KT8xOmVQKHQpKSYoZS5zdXNwZW5kZWRMYW5lc3xuKSk/MDp0fWZ1bmN0aW9uIGVQKGUpe3N3aXRjaChlKXtjYXNlIDI6ZT0xO2JyZWFrO2Nhc2UgODplPTQ7YnJlYWs7Y2FzZSAzMjplPTE2O2JyZWFrO2Nhc2UgMjU2OmNhc2UgNTEyOmNhc2UgMTAyNDpjYXNlIDIwNDg6Y2FzZSA0MDk2OmNhc2UgODE5MjpjYXNlIDE2Mzg0OmNhc2UgMzI3Njg6Y2FzZSA2NTUzNjpjYXNlIDEzMTA3MjpjYXNlIDI2MjE0NDpjYXNlIDUyNDI4ODpjYXNlIDEwNDg1NzY6Y2FzZSAyMDk3MTUyOmNhc2UgNDE5NDMwNDpjYXNlIDgzODg2MDg6Y2FzZSAweDEwMDAwMDA6Y2FzZSAweDIwMDAwMDA6ZT0xMjg7YnJlYWs7Y2FzZSAweDEwMDAwMDAwOmU9MHg4MDAwMDAwO2JyZWFrO2RlZmF1bHQ6ZT0wfXJldHVybiBlfWZ1bmN0aW9uIGV6KGUpe3JldHVybiAyPChlJj0tZSk/ODxlPzAhPSgweDdmZmZmZmYmZSk/MzI6MHgxMDAwMDAwMDo4OjJ9ZnVuY3Rpb24gZUwoKXt2YXIgZT1ULnA7cmV0dXJuIDAhPT1lP2U6dm9pZCAwPT09KGU9d2luZG93LmV2ZW50KT8zMjp1dShlLnR5cGUpfWZ1bmN0aW9uIGVUKGUsbil7dmFyIHQ9VC5wO3RyeXtyZXR1cm4gVC5wPWUsbigpfWZpbmFsbHl7VC5wPXR9fXZhciBlUj1NYXRoLnJhbmRvbSgpLnRvU3RyaW5nKDM2KS5zbGljZSgyKSxlTj1cIl9fcmVhY3RGaWJlciRcIitlUixlRD1cIl9fcmVhY3RQcm9wcyRcIitlUixlQj1cIl9fcmVhY3RDb250YWluZXIkXCIrZVIsZU09XCJfX3JlYWN0RXZlbnRzJFwiK2VSLGVJPVwiX19yZWFjdExpc3RlbmVycyRcIitlUixlSD1cIl9fcmVhY3RIYW5kbGVzJFwiK2VSLGVGPVwiX19yZWFjdFJlc291cmNlcyRcIitlUixlVT1cIl9fcmVhY3RNYXJrZXIkXCIrZVI7ZnVuY3Rpb24gZVYoZSl7ZGVsZXRlIGVbZU5dLGRlbGV0ZSBlW2VEXSxkZWxldGUgZVtlTV0sZGVsZXRlIGVbZUldLGRlbGV0ZSBlW2VIXX1mdW5jdGlvbiBlcShlKXt2YXIgbj1lW2VOXTtpZihuKXJldHVybiBuO2Zvcih2YXIgdD1lLnBhcmVudE5vZGU7dDspe2lmKG49dFtlQl18fHRbZU5dKXtpZih0PW4uYWx0ZXJuYXRlLG51bGwhPT1uLmNoaWxkfHxudWxsIT09dCYmbnVsbCE9PXQuY2hpbGQpZm9yKGU9Y0woZSk7bnVsbCE9PWU7KXtpZih0PWVbZU5dKXJldHVybiB0O2U9Y0woZSl9cmV0dXJuIG59dD0oZT10KS5wYXJlbnROb2RlfXJldHVybiBudWxsfWZ1bmN0aW9uIGVXKGUpe2lmKGU9ZVtlTl18fGVbZUJdKXt2YXIgbj1lLnRhZztpZig1PT09bnx8Nj09PW58fDEzPT09bnx8MzE9PT1ufHwyNj09PW58fDI3PT09bnx8Mz09PW4pcmV0dXJuIGV9cmV0dXJuIG51bGx9ZnVuY3Rpb24gZSQoZSl7dmFyIG49ZS50YWc7aWYoNT09PW58fDI2PT09bnx8Mjc9PT1ufHw2PT09bilyZXR1cm4gZS5zdGF0ZU5vZGU7dGhyb3cgRXJyb3IobCgzMykpfWZ1bmN0aW9uIGVaKGUpe3ZhciBuPWVbZUZdO3JldHVybiBufHwobj1lW2VGXT17aG9pc3RhYmxlU3R5bGVzOm5ldyBNYXAsaG9pc3RhYmxlU2NyaXB0czpuZXcgTWFwfSksbn1mdW5jdGlvbiBlWShlKXtlW2VVXT0hMH12YXIgZVg9bmV3IFNldCxlSz17fTtmdW5jdGlvbiBlUShlLG4pe2VHKGUsbiksZUcoZStcIkNhcHR1cmVcIixuKX1mdW5jdGlvbiBlRyhlLG4pe2ZvcihlS1tlXT1uLGU9MDtlPG4ubGVuZ3RoO2UrKyllWC5hZGQobltlXSl9dmFyIGVKPVJlZ0V4cChcIl5bOkEtWl9hLXpcXFxcdTAwQzAtXFxcXHUwMEQ2XFxcXHUwMEQ4LVxcXFx1MDBGNlxcXFx1MDBGOC1cXFxcdTAyRkZcXFxcdTAzNzAtXFxcXHUwMzdEXFxcXHUwMzdGLVxcXFx1MUZGRlxcXFx1MjAwQy1cXFxcdTIwMERcXFxcdTIwNzAtXFxcXHUyMThGXFxcXHUyQzAwLVxcXFx1MkZFRlxcXFx1MzAwMS1cXFxcdUQ3RkZcXFxcdUY5MDAtXFxcXHVGRENGXFxcXHVGREYwLVxcXFx1RkZGRF1bOkEtWl9hLXpcXFxcdTAwQzAtXFxcXHUwMEQ2XFxcXHUwMEQ4LVxcXFx1MDBGNlxcXFx1MDBGOC1cXFxcdTAyRkZcXFxcdTAzNzAtXFxcXHUwMzdEXFxcXHUwMzdGLVxcXFx1MUZGRlxcXFx1MjAwQy1cXFxcdTIwMERcXFxcdTIwNzAtXFxcXHUyMThGXFxcXHUyQzAwLVxcXFx1MkZFRlxcXFx1MzAwMS1cXFxcdUQ3RkZcXFxcdUY5MDAtXFxcXHVGRENGXFxcXHVGREYwLVxcXFx1RkZGRFxcXFwtLjAtOVxcXFx1MDBCN1xcXFx1MDMwMC1cXFxcdTAzNkZcXFxcdTIwM0YtXFxcXHUyMDQwXSokXCIpLGUwPXt9LGUxPXt9O2Z1bmN0aW9uIGUyKGUsbix0KXtpZihHLmNhbGwoZTEsbil8fCFHLmNhbGwoZTAsbikmJihlSi50ZXN0KG4pP2UxW25dPSEwOihlMFtuXT0hMCwhMSkpKWlmKG51bGw9PT10KWUucmVtb3ZlQXR0cmlidXRlKG4pO2Vsc2V7c3dpdGNoKHR5cGVvZiB0KXtjYXNlXCJ1bmRlZmluZWRcIjpjYXNlXCJmdW5jdGlvblwiOmNhc2VcInN5bWJvbFwiOmUucmVtb3ZlQXR0cmlidXRlKG4pO3JldHVybjtjYXNlXCJib29sZWFuXCI6dmFyIHI9bi50b0xvd2VyQ2FzZSgpLnNsaWNlKDAsNSk7aWYoXCJkYXRhLVwiIT09ciYmXCJhcmlhLVwiIT09cilyZXR1cm4gdm9pZCBlLnJlbW92ZUF0dHJpYnV0ZShuKX1lLnNldEF0dHJpYnV0ZShuLFwiXCIrdCl9fWZ1bmN0aW9uIGU0KGUsbix0KXtpZihudWxsPT09dCllLnJlbW92ZUF0dHJpYnV0ZShuKTtlbHNle3N3aXRjaCh0eXBlb2YgdCl7Y2FzZVwidW5kZWZpbmVkXCI6Y2FzZVwiZnVuY3Rpb25cIjpjYXNlXCJzeW1ib2xcIjpjYXNlXCJib29sZWFuXCI6ZS5yZW1vdmVBdHRyaWJ1dGUobik7cmV0dXJufWUuc2V0QXR0cmlidXRlKG4sXCJcIit0KX19ZnVuY3Rpb24gZTUoZSxuLHQscil7aWYobnVsbD09PXIpZS5yZW1vdmVBdHRyaWJ1dGUodCk7ZWxzZXtzd2l0Y2godHlwZW9mIHIpe2Nhc2VcInVuZGVmaW5lZFwiOmNhc2VcImZ1bmN0aW9uXCI6Y2FzZVwic3ltYm9sXCI6Y2FzZVwiYm9vbGVhblwiOmUucmVtb3ZlQXR0cmlidXRlKHQpO3JldHVybn1lLnNldEF0dHJpYnV0ZU5TKG4sdCxcIlwiK3IpfX1mdW5jdGlvbiBlMyhlKXtzd2l0Y2godHlwZW9mIGUpe2Nhc2VcImJpZ2ludFwiOmNhc2VcImJvb2xlYW5cIjpjYXNlXCJudW1iZXJcIjpjYXNlXCJzdHJpbmdcIjpjYXNlXCJ1bmRlZmluZWRcIjpjYXNlXCJvYmplY3RcIjpyZXR1cm4gZTtkZWZhdWx0OnJldHVyblwiXCJ9fWZ1bmN0aW9uIGU2KGUpe3ZhciBuPWUudHlwZTtyZXR1cm4oZT1lLm5vZGVOYW1lKSYmXCJpbnB1dFwiPT09ZS50b0xvd2VyQ2FzZSgpJiYoXCJjaGVja2JveFwiPT09bnx8XCJyYWRpb1wiPT09bil9ZnVuY3Rpb24gZTkoZSl7aWYoIWUuX3ZhbHVlVHJhY2tlcil7dmFyIG49ZTYoZSk/XCJjaGVja2VkXCI6XCJ2YWx1ZVwiO2UuX3ZhbHVlVHJhY2tlcj1mdW5jdGlvbihlLG4sdCl7dmFyIHI9T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihlLmNvbnN0cnVjdG9yLnByb3RvdHlwZSxuKTtpZighZS5oYXNPd25Qcm9wZXJ0eShuKSYmdm9pZCAwIT09ciYmXCJmdW5jdGlvblwiPT10eXBlb2Ygci5nZXQmJlwiZnVuY3Rpb25cIj09dHlwZW9mIHIuc2V0KXt2YXIgbz1yLmdldCxhPXIuc2V0O3JldHVybiBPYmplY3QuZGVmaW5lUHJvcGVydHkoZSxuLHtjb25maWd1cmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIG8uY2FsbCh0aGlzKX0sc2V0OmZ1bmN0aW9uKGUpe3Q9XCJcIitlLGEuY2FsbCh0aGlzLGUpfX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLG4se2VudW1lcmFibGU6ci5lbnVtZXJhYmxlfSkse2dldFZhbHVlOmZ1bmN0aW9uKCl7cmV0dXJuIHR9LHNldFZhbHVlOmZ1bmN0aW9uKGUpe3Q9XCJcIitlfSxzdG9wVHJhY2tpbmc6ZnVuY3Rpb24oKXtlLl92YWx1ZVRyYWNrZXI9bnVsbCxkZWxldGUgZVtuXX19fX0oZSxuLFwiXCIrZVtuXSl9fWZ1bmN0aW9uIGU4KGUpe2lmKCFlKXJldHVybiExO3ZhciBuPWUuX3ZhbHVlVHJhY2tlcjtpZighbilyZXR1cm4hMDt2YXIgdD1uLmdldFZhbHVlKCkscj1cIlwiO3JldHVybiBlJiYocj1lNihlKT9lLmNoZWNrZWQ/XCJ0cnVlXCI6XCJmYWxzZVwiOmUudmFsdWUpLChlPXIpIT09dCYmKG4uc2V0VmFsdWUoZSksITApfWZ1bmN0aW9uIGU3KGUpe2lmKHZvaWQgMD09PShlPWV8fChcInVuZGVmaW5lZFwiIT10eXBlb2YgZG9jdW1lbnQ/ZG9jdW1lbnQ6dm9pZCAwKSkpcmV0dXJuIG51bGw7dHJ5e3JldHVybiBlLmFjdGl2ZUVsZW1lbnR8fGUuYm9keX1jYXRjaChuKXtyZXR1cm4gZS5ib2R5fX12YXIgbmU9L1tcXG5cIlxcXFxdL2c7ZnVuY3Rpb24gbm4oZSl7cmV0dXJuIGUucmVwbGFjZShuZSxmdW5jdGlvbihlKXtyZXR1cm5cIlxcXFxcIitlLmNoYXJDb2RlQXQoMCkudG9TdHJpbmcoMTYpK1wiIFwifSl9ZnVuY3Rpb24gbnQoZSxuLHQscixvLGEsaSxsKXtlLm5hbWU9XCJcIixudWxsIT1pJiZcImZ1bmN0aW9uXCIhPXR5cGVvZiBpJiZcInN5bWJvbFwiIT10eXBlb2YgaSYmXCJib29sZWFuXCIhPXR5cGVvZiBpP2UudHlwZT1pOmUucmVtb3ZlQXR0cmlidXRlKFwidHlwZVwiKSxudWxsIT1uP1wibnVtYmVyXCI9PT1pPygwPT09biYmXCJcIj09PWUudmFsdWV8fGUudmFsdWUhPW4pJiYoZS52YWx1ZT1cIlwiK2UzKG4pKTplLnZhbHVlIT09XCJcIitlMyhuKSYmKGUudmFsdWU9XCJcIitlMyhuKSk6XCJzdWJtaXRcIiE9PWkmJlwicmVzZXRcIiE9PWl8fGUucmVtb3ZlQXR0cmlidXRlKFwidmFsdWVcIiksbnVsbCE9bj9ubyhlLGksZTMobikpOm51bGwhPXQ/bm8oZSxpLGUzKHQpKTpudWxsIT1yJiZlLnJlbW92ZUF0dHJpYnV0ZShcInZhbHVlXCIpLG51bGw9PW8mJm51bGwhPWEmJihlLmRlZmF1bHRDaGVja2VkPSEhYSksbnVsbCE9byYmKGUuY2hlY2tlZD1vJiZcImZ1bmN0aW9uXCIhPXR5cGVvZiBvJiZcInN5bWJvbFwiIT10eXBlb2YgbyksbnVsbCE9bCYmXCJmdW5jdGlvblwiIT10eXBlb2YgbCYmXCJzeW1ib2xcIiE9dHlwZW9mIGwmJlwiYm9vbGVhblwiIT10eXBlb2YgbD9lLm5hbWU9XCJcIitlMyhsKTplLnJlbW92ZUF0dHJpYnV0ZShcIm5hbWVcIil9ZnVuY3Rpb24gbnIoZSxuLHQscixvLGEsaSxsKXtpZihudWxsIT1hJiZcImZ1bmN0aW9uXCIhPXR5cGVvZiBhJiZcInN5bWJvbFwiIT10eXBlb2YgYSYmXCJib29sZWFuXCIhPXR5cGVvZiBhJiYoZS50eXBlPWEpLG51bGwhPW58fG51bGwhPXQpe2lmKChcInN1Ym1pdFwiPT09YXx8XCJyZXNldFwiPT09YSkmJm51bGw9PW4pcmV0dXJuIHZvaWQgZTkoZSk7dD1udWxsIT10P1wiXCIrZTModCk6XCJcIixuPW51bGwhPW4/XCJcIitlMyhuKTp0LGx8fG49PT1lLnZhbHVlfHwoZS52YWx1ZT1uKSxlLmRlZmF1bHRWYWx1ZT1ufXI9XCJmdW5jdGlvblwiIT10eXBlb2Yocj1udWxsIT1yP3I6bykmJlwic3ltYm9sXCIhPXR5cGVvZiByJiYhIXIsZS5jaGVja2VkPWw/ZS5jaGVja2VkOiEhcixlLmRlZmF1bHRDaGVja2VkPSEhcixudWxsIT1pJiZcImZ1bmN0aW9uXCIhPXR5cGVvZiBpJiZcInN5bWJvbFwiIT10eXBlb2YgaSYmXCJib29sZWFuXCIhPXR5cGVvZiBpJiYoZS5uYW1lPWkpLGU5KGUpfWZ1bmN0aW9uIG5vKGUsbix0KXtcIm51bWJlclwiPT09biYmZTcoZS5vd25lckRvY3VtZW50KT09PWV8fGUuZGVmYXVsdFZhbHVlPT09XCJcIit0fHwoZS5kZWZhdWx0VmFsdWU9XCJcIit0KX1mdW5jdGlvbiBuYShlLG4sdCxyKXtpZihlPWUub3B0aW9ucyxuKXtuPXt9O2Zvcih2YXIgbz0wO288dC5sZW5ndGg7bysrKW5bXCIkXCIrdFtvXV09ITA7Zm9yKHQ9MDt0PGUubGVuZ3RoO3QrKylvPW4uaGFzT3duUHJvcGVydHkoXCIkXCIrZVt0XS52YWx1ZSksZVt0XS5zZWxlY3RlZCE9PW8mJihlW3RdLnNlbGVjdGVkPW8pLG8mJnImJihlW3RdLmRlZmF1bHRTZWxlY3RlZD0hMCl9ZWxzZXtmb3Iobz0wLHQ9XCJcIitlMyh0KSxuPW51bGw7bzxlLmxlbmd0aDtvKyspe2lmKGVbb10udmFsdWU9PT10KXtlW29dLnNlbGVjdGVkPSEwLHImJihlW29dLmRlZmF1bHRTZWxlY3RlZD0hMCk7cmV0dXJufW51bGwhPT1ufHxlW29dLmRpc2FibGVkfHwobj1lW29dKX1udWxsIT09biYmKG4uc2VsZWN0ZWQ9ITApfX1mdW5jdGlvbiBuaShlLG4sdCl7aWYobnVsbCE9biYmKChuPVwiXCIrZTMobikpIT09ZS52YWx1ZSYmKGUudmFsdWU9biksbnVsbD09dCkpe2UuZGVmYXVsdFZhbHVlIT09biYmKGUuZGVmYXVsdFZhbHVlPW4pO3JldHVybn1lLmRlZmF1bHRWYWx1ZT1udWxsIT10P1wiXCIrZTModCk6XCJcIn1mdW5jdGlvbiBubChlLG4sdCxyKXtpZihudWxsPT1uKXtpZihudWxsIT1yKXtpZihudWxsIT10KXRocm93IEVycm9yKGwoOTIpKTtpZih6KHIpKXtpZigxPHIubGVuZ3RoKXRocm93IEVycm9yKGwoOTMpKTtyPXJbMF19dD1yfW51bGw9PXQmJih0PVwiXCIpLG49dH1lLmRlZmF1bHRWYWx1ZT10PWUzKG4pLChyPWUudGV4dENvbnRlbnQpPT09dCYmXCJcIiE9PXImJm51bGwhPT1yJiYoZS52YWx1ZT1yKSxlOShlKX1mdW5jdGlvbiBucyhlLG4pe2lmKG4pe3ZhciB0PWUuZmlyc3RDaGlsZDtpZih0JiZ0PT09ZS5sYXN0Q2hpbGQmJjM9PT10Lm5vZGVUeXBlKXt0Lm5vZGVWYWx1ZT1uO3JldHVybn19ZS50ZXh0Q29udGVudD1ufXZhciBuYz1uZXcgU2V0KFwiYW5pbWF0aW9uSXRlcmF0aW9uQ291bnQgYXNwZWN0UmF0aW8gYm9yZGVySW1hZ2VPdXRzZXQgYm9yZGVySW1hZ2VTbGljZSBib3JkZXJJbWFnZVdpZHRoIGJveEZsZXggYm94RmxleEdyb3VwIGJveE9yZGluYWxHcm91cCBjb2x1bW5Db3VudCBjb2x1bW5zIGZsZXggZmxleEdyb3cgZmxleFBvc2l0aXZlIGZsZXhTaHJpbmsgZmxleE5lZ2F0aXZlIGZsZXhPcmRlciBncmlkQXJlYSBncmlkUm93IGdyaWRSb3dFbmQgZ3JpZFJvd1NwYW4gZ3JpZFJvd1N0YXJ0IGdyaWRDb2x1bW4gZ3JpZENvbHVtbkVuZCBncmlkQ29sdW1uU3BhbiBncmlkQ29sdW1uU3RhcnQgZm9udFdlaWdodCBsaW5lQ2xhbXAgbGluZUhlaWdodCBvcGFjaXR5IG9yZGVyIG9ycGhhbnMgc2NhbGUgdGFiU2l6ZSB3aWRvd3MgekluZGV4IHpvb20gZmlsbE9wYWNpdHkgZmxvb2RPcGFjaXR5IHN0b3BPcGFjaXR5IHN0cm9rZURhc2hhcnJheSBzdHJva2VEYXNob2Zmc2V0IHN0cm9rZU1pdGVybGltaXQgc3Ryb2tlT3BhY2l0eSBzdHJva2VXaWR0aCBNb3pBbmltYXRpb25JdGVyYXRpb25Db3VudCBNb3pCb3hGbGV4IE1vekJveEZsZXhHcm91cCBNb3pMaW5lQ2xhbXAgbXNBbmltYXRpb25JdGVyYXRpb25Db3VudCBtc0ZsZXggbXNab29tIG1zRmxleEdyb3cgbXNGbGV4TmVnYXRpdmUgbXNGbGV4T3JkZXIgbXNGbGV4UG9zaXRpdmUgbXNGbGV4U2hyaW5rIG1zR3JpZENvbHVtbiBtc0dyaWRDb2x1bW5TcGFuIG1zR3JpZFJvdyBtc0dyaWRSb3dTcGFuIFdlYmtpdEFuaW1hdGlvbkl0ZXJhdGlvbkNvdW50IFdlYmtpdEJveEZsZXggV2ViS2l0Qm94RmxleEdyb3VwIFdlYmtpdEJveE9yZGluYWxHcm91cCBXZWJraXRDb2x1bW5Db3VudCBXZWJraXRDb2x1bW5zIFdlYmtpdEZsZXggV2Via2l0RmxleEdyb3cgV2Via2l0RmxleFBvc2l0aXZlIFdlYmtpdEZsZXhTaHJpbmsgV2Via2l0TGluZUNsYW1wXCIuc3BsaXQoXCIgXCIpKTtmdW5jdGlvbiBudShlLG4sdCl7dmFyIHI9MD09PW4uaW5kZXhPZihcIi0tXCIpO251bGw9PXR8fFwiYm9vbGVhblwiPT10eXBlb2YgdHx8XCJcIj09PXQ/cj9lLnNldFByb3BlcnR5KG4sXCJcIik6XCJmbG9hdFwiPT09bj9lLmNzc0Zsb2F0PVwiXCI6ZVtuXT1cIlwiOnI/ZS5zZXRQcm9wZXJ0eShuLHQpOlwibnVtYmVyXCIhPXR5cGVvZiB0fHwwPT09dHx8bmMuaGFzKG4pP1wiZmxvYXRcIj09PW4/ZS5jc3NGbG9hdD10OmVbbl09KFwiXCIrdCkudHJpbSgpOmVbbl09dCtcInB4XCJ9ZnVuY3Rpb24gbmQoZSxuLHQpe2lmKG51bGwhPW4mJlwib2JqZWN0XCIhPXR5cGVvZiBuKXRocm93IEVycm9yKGwoNjIpKTtpZihlPWUuc3R5bGUsbnVsbCE9dCl7Zm9yKHZhciByIGluIHQpIXQuaGFzT3duUHJvcGVydHkocil8fG51bGwhPW4mJm4uaGFzT3duUHJvcGVydHkocil8fCgwPT09ci5pbmRleE9mKFwiLS1cIik/ZS5zZXRQcm9wZXJ0eShyLFwiXCIpOlwiZmxvYXRcIj09PXI/ZS5jc3NGbG9hdD1cIlwiOmVbcl09XCJcIik7Zm9yKHZhciBvIGluIG4pcj1uW29dLG4uaGFzT3duUHJvcGVydHkobykmJnRbb10hPT1yJiZudShlLG8scil9ZWxzZSBmb3IodmFyIGEgaW4gbiluLmhhc093blByb3BlcnR5KGEpJiZudShlLGEsblthXSl9ZnVuY3Rpb24gbmYoZSl7aWYoLTE9PT1lLmluZGV4T2YoXCItXCIpKXJldHVybiExO3N3aXRjaChlKXtjYXNlXCJhbm5vdGF0aW9uLXhtbFwiOmNhc2VcImNvbG9yLXByb2ZpbGVcIjpjYXNlXCJmb250LWZhY2VcIjpjYXNlXCJmb250LWZhY2Utc3JjXCI6Y2FzZVwiZm9udC1mYWNlLXVyaVwiOmNhc2VcImZvbnQtZmFjZS1mb3JtYXRcIjpjYXNlXCJmb250LWZhY2UtbmFtZVwiOmNhc2VcIm1pc3NpbmctZ2x5cGhcIjpyZXR1cm4hMTtkZWZhdWx0OnJldHVybiEwfX12YXIgbnA9bmV3IE1hcChbW1wiYWNjZXB0Q2hhcnNldFwiLFwiYWNjZXB0LWNoYXJzZXRcIl0sW1wiaHRtbEZvclwiLFwiZm9yXCJdLFtcImh0dHBFcXVpdlwiLFwiaHR0cC1lcXVpdlwiXSxbXCJjcm9zc09yaWdpblwiLFwiY3Jvc3NvcmlnaW5cIl0sW1wiYWNjZW50SGVpZ2h0XCIsXCJhY2NlbnQtaGVpZ2h0XCJdLFtcImFsaWdubWVudEJhc2VsaW5lXCIsXCJhbGlnbm1lbnQtYmFzZWxpbmVcIl0sW1wiYXJhYmljRm9ybVwiLFwiYXJhYmljLWZvcm1cIl0sW1wiYmFzZWxpbmVTaGlmdFwiLFwiYmFzZWxpbmUtc2hpZnRcIl0sW1wiY2FwSGVpZ2h0XCIsXCJjYXAtaGVpZ2h0XCJdLFtcImNsaXBQYXRoXCIsXCJjbGlwLXBhdGhcIl0sW1wiY2xpcFJ1bGVcIixcImNsaXAtcnVsZVwiXSxbXCJjb2xvckludGVycG9sYXRpb25cIixcImNvbG9yLWludGVycG9sYXRpb25cIl0sW1wiY29sb3JJbnRlcnBvbGF0aW9uRmlsdGVyc1wiLFwiY29sb3ItaW50ZXJwb2xhdGlvbi1maWx0ZXJzXCJdLFtcImNvbG9yUHJvZmlsZVwiLFwiY29sb3ItcHJvZmlsZVwiXSxbXCJjb2xvclJlbmRlcmluZ1wiLFwiY29sb3ItcmVuZGVyaW5nXCJdLFtcImRvbWluYW50QmFzZWxpbmVcIixcImRvbWluYW50LWJhc2VsaW5lXCJdLFtcImVuYWJsZUJhY2tncm91bmRcIixcImVuYWJsZS1iYWNrZ3JvdW5kXCJdLFtcImZpbGxPcGFjaXR5XCIsXCJmaWxsLW9wYWNpdHlcIl0sW1wiZmlsbFJ1bGVcIixcImZpbGwtcnVsZVwiXSxbXCJmbG9vZENvbG9yXCIsXCJmbG9vZC1jb2xvclwiXSxbXCJmbG9vZE9wYWNpdHlcIixcImZsb29kLW9wYWNpdHlcIl0sW1wiZm9udEZhbWlseVwiLFwiZm9udC1mYW1pbHlcIl0sW1wiZm9udFNpemVcIixcImZvbnQtc2l6ZVwiXSxbXCJmb250U2l6ZUFkanVzdFwiLFwiZm9udC1zaXplLWFkanVzdFwiXSxbXCJmb250U3RyZXRjaFwiLFwiZm9udC1zdHJldGNoXCJdLFtcImZvbnRTdHlsZVwiLFwiZm9udC1zdHlsZVwiXSxbXCJmb250VmFyaWFudFwiLFwiZm9udC12YXJpYW50XCJdLFtcImZvbnRXZWlnaHRcIixcImZvbnQtd2VpZ2h0XCJdLFtcImdseXBoTmFtZVwiLFwiZ2x5cGgtbmFtZVwiXSxbXCJnbHlwaE9yaWVudGF0aW9uSG9yaXpvbnRhbFwiLFwiZ2x5cGgtb3JpZW50YXRpb24taG9yaXpvbnRhbFwiXSxbXCJnbHlwaE9yaWVudGF0aW9uVmVydGljYWxcIixcImdseXBoLW9yaWVudGF0aW9uLXZlcnRpY2FsXCJdLFtcImhvcml6QWR2WFwiLFwiaG9yaXotYWR2LXhcIl0sW1wiaG9yaXpPcmlnaW5YXCIsXCJob3Jpei1vcmlnaW4teFwiXSxbXCJpbWFnZVJlbmRlcmluZ1wiLFwiaW1hZ2UtcmVuZGVyaW5nXCJdLFtcImxldHRlclNwYWNpbmdcIixcImxldHRlci1zcGFjaW5nXCJdLFtcImxpZ2h0aW5nQ29sb3JcIixcImxpZ2h0aW5nLWNvbG9yXCJdLFtcIm1hcmtlckVuZFwiLFwibWFya2VyLWVuZFwiXSxbXCJtYXJrZXJNaWRcIixcIm1hcmtlci1taWRcIl0sW1wibWFya2VyU3RhcnRcIixcIm1hcmtlci1zdGFydFwiXSxbXCJvdmVybGluZVBvc2l0aW9uXCIsXCJvdmVybGluZS1wb3NpdGlvblwiXSxbXCJvdmVybGluZVRoaWNrbmVzc1wiLFwib3ZlcmxpbmUtdGhpY2tuZXNzXCJdLFtcInBhaW50T3JkZXJcIixcInBhaW50LW9yZGVyXCJdLFtcInBhbm9zZS0xXCIsXCJwYW5vc2UtMVwiXSxbXCJwb2ludGVyRXZlbnRzXCIsXCJwb2ludGVyLWV2ZW50c1wiXSxbXCJyZW5kZXJpbmdJbnRlbnRcIixcInJlbmRlcmluZy1pbnRlbnRcIl0sW1wic2hhcGVSZW5kZXJpbmdcIixcInNoYXBlLXJlbmRlcmluZ1wiXSxbXCJzdG9wQ29sb3JcIixcInN0b3AtY29sb3JcIl0sW1wic3RvcE9wYWNpdHlcIixcInN0b3Atb3BhY2l0eVwiXSxbXCJzdHJpa2V0aHJvdWdoUG9zaXRpb25cIixcInN0cmlrZXRocm91Z2gtcG9zaXRpb25cIl0sW1wic3RyaWtldGhyb3VnaFRoaWNrbmVzc1wiLFwic3RyaWtldGhyb3VnaC10aGlja25lc3NcIl0sW1wic3Ryb2tlRGFzaGFycmF5XCIsXCJzdHJva2UtZGFzaGFycmF5XCJdLFtcInN0cm9rZURhc2hvZmZzZXRcIixcInN0cm9rZS1kYXNob2Zmc2V0XCJdLFtcInN0cm9rZUxpbmVjYXBcIixcInN0cm9rZS1saW5lY2FwXCJdLFtcInN0cm9rZUxpbmVqb2luXCIsXCJzdHJva2UtbGluZWpvaW5cIl0sW1wic3Ryb2tlTWl0ZXJsaW1pdFwiLFwic3Ryb2tlLW1pdGVybGltaXRcIl0sW1wic3Ryb2tlT3BhY2l0eVwiLFwic3Ryb2tlLW9wYWNpdHlcIl0sW1wic3Ryb2tlV2lkdGhcIixcInN0cm9rZS13aWR0aFwiXSxbXCJ0ZXh0QW5jaG9yXCIsXCJ0ZXh0LWFuY2hvclwiXSxbXCJ0ZXh0RGVjb3JhdGlvblwiLFwidGV4dC1kZWNvcmF0aW9uXCJdLFtcInRleHRSZW5kZXJpbmdcIixcInRleHQtcmVuZGVyaW5nXCJdLFtcInRyYW5zZm9ybU9yaWdpblwiLFwidHJhbnNmb3JtLW9yaWdpblwiXSxbXCJ1bmRlcmxpbmVQb3NpdGlvblwiLFwidW5kZXJsaW5lLXBvc2l0aW9uXCJdLFtcInVuZGVybGluZVRoaWNrbmVzc1wiLFwidW5kZXJsaW5lLXRoaWNrbmVzc1wiXSxbXCJ1bmljb2RlQmlkaVwiLFwidW5pY29kZS1iaWRpXCJdLFtcInVuaWNvZGVSYW5nZVwiLFwidW5pY29kZS1yYW5nZVwiXSxbXCJ1bml0c1BlckVtXCIsXCJ1bml0cy1wZXItZW1cIl0sW1widkFscGhhYmV0aWNcIixcInYtYWxwaGFiZXRpY1wiXSxbXCJ2SGFuZ2luZ1wiLFwidi1oYW5naW5nXCJdLFtcInZJZGVvZ3JhcGhpY1wiLFwidi1pZGVvZ3JhcGhpY1wiXSxbXCJ2TWF0aGVtYXRpY2FsXCIsXCJ2LW1hdGhlbWF0aWNhbFwiXSxbXCJ2ZWN0b3JFZmZlY3RcIixcInZlY3Rvci1lZmZlY3RcIl0sW1widmVydEFkdllcIixcInZlcnQtYWR2LXlcIl0sW1widmVydE9yaWdpblhcIixcInZlcnQtb3JpZ2luLXhcIl0sW1widmVydE9yaWdpbllcIixcInZlcnQtb3JpZ2luLXlcIl0sW1wid29yZFNwYWNpbmdcIixcIndvcmQtc3BhY2luZ1wiXSxbXCJ3cml0aW5nTW9kZVwiLFwid3JpdGluZy1tb2RlXCJdLFtcInhtbG5zWGxpbmtcIixcInhtbG5zOnhsaW5rXCJdLFtcInhIZWlnaHRcIixcIngtaGVpZ2h0XCJdXSksbmg9L15bXFx1MDAwMC1cXHUwMDFGIF0qaltcXHJcXG5cXHRdKmFbXFxyXFxuXFx0XSp2W1xcclxcblxcdF0qYVtcXHJcXG5cXHRdKnNbXFxyXFxuXFx0XSpjW1xcclxcblxcdF0qcltcXHJcXG5cXHRdKmlbXFxyXFxuXFx0XSpwW1xcclxcblxcdF0qdFtcXHJcXG5cXHRdKjovaTtmdW5jdGlvbiBuZyhlKXtyZXR1cm4gbmgudGVzdChcIlwiK2UpP1wiamF2YXNjcmlwdDp0aHJvdyBuZXcgRXJyb3IoJ1JlYWN0IGhhcyBibG9ja2VkIGEgamF2YXNjcmlwdDogVVJMIGFzIGEgc2VjdXJpdHkgcHJlY2F1dGlvbi4nKVwiOmV9ZnVuY3Rpb24gbm0oKXt9dmFyIG52PW51bGw7ZnVuY3Rpb24gbmIoZSl7cmV0dXJuKGU9ZS50YXJnZXR8fGUuc3JjRWxlbWVudHx8d2luZG93KS5jb3JyZXNwb25kaW5nVXNlRWxlbWVudCYmKGU9ZS5jb3JyZXNwb25kaW5nVXNlRWxlbWVudCksMz09PWUubm9kZVR5cGU/ZS5wYXJlbnROb2RlOmV9dmFyIG55PW51bGwsbng9bnVsbDtmdW5jdGlvbiBudyhlKXt2YXIgbj1lVyhlKTtpZihuJiYoZT1uLnN0YXRlTm9kZSkpe3ZhciB0PWVbZURdfHxudWxsO3N3aXRjaChlPW4uc3RhdGVOb2RlLG4udHlwZSl7Y2FzZVwiaW5wdXRcIjppZihudChlLHQudmFsdWUsdC5kZWZhdWx0VmFsdWUsdC5kZWZhdWx0VmFsdWUsdC5jaGVja2VkLHQuZGVmYXVsdENoZWNrZWQsdC50eXBlLHQubmFtZSksbj10Lm5hbWUsXCJyYWRpb1wiPT09dC50eXBlJiZudWxsIT1uKXtmb3IodD1lO3QucGFyZW50Tm9kZTspdD10LnBhcmVudE5vZGU7Zm9yKHQ9dC5xdWVyeVNlbGVjdG9yQWxsKCdpbnB1dFtuYW1lPVwiJytubihcIlwiK24pKydcIl1bdHlwZT1cInJhZGlvXCJdJyksbj0wO248dC5sZW5ndGg7bisrKXt2YXIgcj10W25dO2lmKHIhPT1lJiZyLmZvcm09PT1lLmZvcm0pe3ZhciBvPXJbZURdfHxudWxsO2lmKCFvKXRocm93IEVycm9yKGwoOTApKTtudChyLG8udmFsdWUsby5kZWZhdWx0VmFsdWUsby5kZWZhdWx0VmFsdWUsby5jaGVja2VkLG8uZGVmYXVsdENoZWNrZWQsby50eXBlLG8ubmFtZSl9fWZvcihuPTA7bjx0Lmxlbmd0aDtuKyspKHI9dFtuXSkuZm9ybT09PWUuZm9ybSYmZTgocil9YnJlYWs7Y2FzZVwidGV4dGFyZWFcIjpuaShlLHQudmFsdWUsdC5kZWZhdWx0VmFsdWUpO2JyZWFrO2Nhc2VcInNlbGVjdFwiOm51bGwhPShuPXQudmFsdWUpJiZuYShlLCEhdC5tdWx0aXBsZSxuLCExKX19fXZhciBuaj0hMTtmdW5jdGlvbiBuayhlLG4sdCl7aWYobmopcmV0dXJuIGUobix0KTtuaj0hMDt0cnl7cmV0dXJuIGUobil9ZmluYWxseXtpZihuaj0hMSwobnVsbCE9PW55fHxudWxsIT09bngpJiYoc3MoKSxueSYmKG49bnksZT1ueCxueD1ueT1udWxsLG53KG4pLGUpKSlmb3Iobj0wO248ZS5sZW5ndGg7bisrKW53KGVbbl0pfX1mdW5jdGlvbiBuQShlLG4pe3ZhciB0PWUuc3RhdGVOb2RlO2lmKG51bGw9PT10KXJldHVybiBudWxsO3ZhciByPXRbZURdfHxudWxsO2lmKG51bGw9PT1yKXJldHVybiBudWxsO3N3aXRjaCh0PXJbbl0sbil7Y2FzZVwib25DbGlja1wiOmNhc2VcIm9uQ2xpY2tDYXB0dXJlXCI6Y2FzZVwib25Eb3VibGVDbGlja1wiOmNhc2VcIm9uRG91YmxlQ2xpY2tDYXB0dXJlXCI6Y2FzZVwib25Nb3VzZURvd25cIjpjYXNlXCJvbk1vdXNlRG93bkNhcHR1cmVcIjpjYXNlXCJvbk1vdXNlTW92ZVwiOmNhc2VcIm9uTW91c2VNb3ZlQ2FwdHVyZVwiOmNhc2VcIm9uTW91c2VVcFwiOmNhc2VcIm9uTW91c2VVcENhcHR1cmVcIjpjYXNlXCJvbk1vdXNlRW50ZXJcIjoocj0hci5kaXNhYmxlZCl8fChyPVwiYnV0dG9uXCIhPT0oZT1lLnR5cGUpJiZcImlucHV0XCIhPT1lJiZcInNlbGVjdFwiIT09ZSYmXCJ0ZXh0YXJlYVwiIT09ZSksZT0hcjticmVhaztkZWZhdWx0OmU9ITF9aWYoZSlyZXR1cm4gbnVsbDtpZih0JiZcImZ1bmN0aW9uXCIhPXR5cGVvZiB0KXRocm93IEVycm9yKGwoMjMxLG4sdHlwZW9mIHQpKTtyZXR1cm4gdH12YXIgbk89XCJ1bmRlZmluZWRcIiE9dHlwZW9mIHdpbmRvdyYmdm9pZCAwIT09d2luZG93LmRvY3VtZW50JiZ2b2lkIDAhPT13aW5kb3cuZG9jdW1lbnQuY3JlYXRlRWxlbWVudCxuQz0hMTtpZihuTyl0cnl7dmFyIG5TPXt9O09iamVjdC5kZWZpbmVQcm9wZXJ0eShuUyxcInBhc3NpdmVcIix7Z2V0OmZ1bmN0aW9uKCl7bkM9ITB9fSksd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoXCJ0ZXN0XCIsblMsblMpLHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKFwidGVzdFwiLG5TLG5TKX1jYXRjaChlKXtuQz0hMX12YXIgbkU9bnVsbCxuXz1udWxsLG5QPW51bGw7ZnVuY3Rpb24gbnooKXtpZihuUClyZXR1cm4gblA7dmFyIGUsbix0PW5fLHI9dC5sZW5ndGgsbz1cInZhbHVlXCJpbiBuRT9uRS52YWx1ZTpuRS50ZXh0Q29udGVudCxhPW8ubGVuZ3RoO2ZvcihlPTA7ZTxyJiZ0W2VdPT09b1tlXTtlKyspO3ZhciBpPXItZTtmb3Iobj0xO248PWkmJnRbci1uXT09PW9bYS1uXTtuKyspO3JldHVybiBuUD1vLnNsaWNlKGUsMTxuPzEtbjp2b2lkIDApfWZ1bmN0aW9uIG5MKGUpe3ZhciBuPWUua2V5Q29kZTtyZXR1cm5cImNoYXJDb2RlXCJpbiBlPzA9PT0oZT1lLmNoYXJDb2RlKSYmMTM9PT1uJiYoZT0xMyk6ZT1uLDEwPT09ZSYmKGU9MTMpLDMyPD1lfHwxMz09PWU/ZTowfWZ1bmN0aW9uIG5UKCl7cmV0dXJuITB9ZnVuY3Rpb24gblIoKXtyZXR1cm4hMX1mdW5jdGlvbiBuTihlKXtmdW5jdGlvbiBuKG4sdCxyLG8sYSl7Zm9yKHZhciBpIGluIHRoaXMuX3JlYWN0TmFtZT1uLHRoaXMuX3RhcmdldEluc3Q9cix0aGlzLnR5cGU9dCx0aGlzLm5hdGl2ZUV2ZW50PW8sdGhpcy50YXJnZXQ9YSx0aGlzLmN1cnJlbnRUYXJnZXQ9bnVsbCxlKWUuaGFzT3duUHJvcGVydHkoaSkmJihuPWVbaV0sdGhpc1tpXT1uP24obyk6b1tpXSk7cmV0dXJuIHRoaXMuaXNEZWZhdWx0UHJldmVudGVkPShudWxsIT1vLmRlZmF1bHRQcmV2ZW50ZWQ/by5kZWZhdWx0UHJldmVudGVkOiExPT09by5yZXR1cm5WYWx1ZSk/blQ6blIsdGhpcy5pc1Byb3BhZ2F0aW9uU3RvcHBlZD1uUix0aGlzfXJldHVybiBmKG4ucHJvdG90eXBlLHtwcmV2ZW50RGVmYXVsdDpmdW5jdGlvbigpe3RoaXMuZGVmYXVsdFByZXZlbnRlZD0hMDt2YXIgZT10aGlzLm5hdGl2ZUV2ZW50O2UmJihlLnByZXZlbnREZWZhdWx0P2UucHJldmVudERlZmF1bHQoKTpcInVua25vd25cIiE9dHlwZW9mIGUucmV0dXJuVmFsdWUmJihlLnJldHVyblZhbHVlPSExKSx0aGlzLmlzRGVmYXVsdFByZXZlbnRlZD1uVCl9LHN0b3BQcm9wYWdhdGlvbjpmdW5jdGlvbigpe3ZhciBlPXRoaXMubmF0aXZlRXZlbnQ7ZSYmKGUuc3RvcFByb3BhZ2F0aW9uP2Uuc3RvcFByb3BhZ2F0aW9uKCk6XCJ1bmtub3duXCIhPXR5cGVvZiBlLmNhbmNlbEJ1YmJsZSYmKGUuY2FuY2VsQnViYmxlPSEwKSx0aGlzLmlzUHJvcGFnYXRpb25TdG9wcGVkPW5UKX0scGVyc2lzdDpmdW5jdGlvbigpe30saXNQZXJzaXN0ZW50Om5UfSksbn12YXIgbkQsbkIsbk0sbkksbkgsbkY9e2V2ZW50UGhhc2U6MCxidWJibGVzOjAsY2FuY2VsYWJsZTowLHRpbWVTdGFtcDpmdW5jdGlvbihlKXtyZXR1cm4gZS50aW1lU3RhbXB8fERhdGUubm93KCl9LGRlZmF1bHRQcmV2ZW50ZWQ6MCxpc1RydXN0ZWQ6MH0sblU9bk4obkYpLG5WPWYoe30sbkYse3ZpZXc6MCxkZXRhaWw6MH0pLG5xPW5OKG5WKSxuVz1mKHt9LG5WLHtzY3JlZW5YOjAsc2NyZWVuWTowLGNsaWVudFg6MCxjbGllbnRZOjAscGFnZVg6MCxwYWdlWTowLGN0cmxLZXk6MCxzaGlmdEtleTowLGFsdEtleTowLG1ldGFLZXk6MCxnZXRNb2RpZmllclN0YXRlOm4yLGJ1dHRvbjowLGJ1dHRvbnM6MCxyZWxhdGVkVGFyZ2V0OmZ1bmN0aW9uKGUpe3JldHVybiB2b2lkIDA9PT1lLnJlbGF0ZWRUYXJnZXQ/ZS5mcm9tRWxlbWVudD09PWUuc3JjRWxlbWVudD9lLnRvRWxlbWVudDplLmZyb21FbGVtZW50OmUucmVsYXRlZFRhcmdldH0sbW92ZW1lbnRYOmZ1bmN0aW9uKGUpe3JldHVyblwibW92ZW1lbnRYXCJpbiBlP2UubW92ZW1lbnRYOihlIT09bkgmJihuSCYmXCJtb3VzZW1vdmVcIj09PWUudHlwZT8obk09ZS5zY3JlZW5YLW5ILnNjcmVlblgsbkk9ZS5zY3JlZW5ZLW5ILnNjcmVlblkpOm5JPW5NPTAsbkg9ZSksbk0pfSxtb3ZlbWVudFk6ZnVuY3Rpb24oZSl7cmV0dXJuXCJtb3ZlbWVudFlcImluIGU/ZS5tb3ZlbWVudFk6bkl9fSksbiQ9bk4oblcpLG5aPW5OKGYoe30sblcse2RhdGFUcmFuc2ZlcjowfSkpLG5ZPW5OKGYoe30sblYse3JlbGF0ZWRUYXJnZXQ6MH0pKSxuWD1uTihmKHt9LG5GLHthbmltYXRpb25OYW1lOjAsZWxhcHNlZFRpbWU6MCxwc2V1ZG9FbGVtZW50OjB9KSksbks9bk4oZih7fSxuRix7Y2xpcGJvYXJkRGF0YTpmdW5jdGlvbihlKXtyZXR1cm5cImNsaXBib2FyZERhdGFcImluIGU/ZS5jbGlwYm9hcmREYXRhOndpbmRvdy5jbGlwYm9hcmREYXRhfX0pKSxuUT1uTihmKHt9LG5GLHtkYXRhOjB9KSksbkc9e0VzYzpcIkVzY2FwZVwiLFNwYWNlYmFyOlwiIFwiLExlZnQ6XCJBcnJvd0xlZnRcIixVcDpcIkFycm93VXBcIixSaWdodDpcIkFycm93UmlnaHRcIixEb3duOlwiQXJyb3dEb3duXCIsRGVsOlwiRGVsZXRlXCIsV2luOlwiT1NcIixNZW51OlwiQ29udGV4dE1lbnVcIixBcHBzOlwiQ29udGV4dE1lbnVcIixTY3JvbGw6XCJTY3JvbGxMb2NrXCIsTW96UHJpbnRhYmxlS2V5OlwiVW5pZGVudGlmaWVkXCJ9LG5KPXs4OlwiQmFja3NwYWNlXCIsOTpcIlRhYlwiLDEyOlwiQ2xlYXJcIiwxMzpcIkVudGVyXCIsMTY6XCJTaGlmdFwiLDE3OlwiQ29udHJvbFwiLDE4OlwiQWx0XCIsMTk6XCJQYXVzZVwiLDIwOlwiQ2Fwc0xvY2tcIiwyNzpcIkVzY2FwZVwiLDMyOlwiIFwiLDMzOlwiUGFnZVVwXCIsMzQ6XCJQYWdlRG93blwiLDM1OlwiRW5kXCIsMzY6XCJIb21lXCIsMzc6XCJBcnJvd0xlZnRcIiwzODpcIkFycm93VXBcIiwzOTpcIkFycm93UmlnaHRcIiw0MDpcIkFycm93RG93blwiLDQ1OlwiSW5zZXJ0XCIsNDY6XCJEZWxldGVcIiwxMTI6XCJGMVwiLDExMzpcIkYyXCIsMTE0OlwiRjNcIiwxMTU6XCJGNFwiLDExNjpcIkY1XCIsMTE3OlwiRjZcIiwxMTg6XCJGN1wiLDExOTpcIkY4XCIsMTIwOlwiRjlcIiwxMjE6XCJGMTBcIiwxMjI6XCJGMTFcIiwxMjM6XCJGMTJcIiwxNDQ6XCJOdW1Mb2NrXCIsMTQ1OlwiU2Nyb2xsTG9ja1wiLDIyNDpcIk1ldGFcIn0sbjA9e0FsdDpcImFsdEtleVwiLENvbnRyb2w6XCJjdHJsS2V5XCIsTWV0YTpcIm1ldGFLZXlcIixTaGlmdDpcInNoaWZ0S2V5XCJ9O2Z1bmN0aW9uIG4xKGUpe3ZhciBuPXRoaXMubmF0aXZlRXZlbnQ7cmV0dXJuIG4uZ2V0TW9kaWZpZXJTdGF0ZT9uLmdldE1vZGlmaWVyU3RhdGUoZSk6ISEoZT1uMFtlXSkmJiEhbltlXX1mdW5jdGlvbiBuMigpe3JldHVybiBuMX12YXIgbjQ9bk4oZih7fSxuVix7a2V5OmZ1bmN0aW9uKGUpe2lmKGUua2V5KXt2YXIgbj1uR1tlLmtleV18fGUua2V5O2lmKFwiVW5pZGVudGlmaWVkXCIhPT1uKXJldHVybiBufXJldHVyblwia2V5cHJlc3NcIj09PWUudHlwZT8xMz09PShlPW5MKGUpKT9cIkVudGVyXCI6U3RyaW5nLmZyb21DaGFyQ29kZShlKTpcImtleWRvd25cIj09PWUudHlwZXx8XCJrZXl1cFwiPT09ZS50eXBlP25KW2Uua2V5Q29kZV18fFwiVW5pZGVudGlmaWVkXCI6XCJcIn0sY29kZTowLGxvY2F0aW9uOjAsY3RybEtleTowLHNoaWZ0S2V5OjAsYWx0S2V5OjAsbWV0YUtleTowLHJlcGVhdDowLGxvY2FsZTowLGdldE1vZGlmaWVyU3RhdGU6bjIsY2hhckNvZGU6ZnVuY3Rpb24oZSl7cmV0dXJuXCJrZXlwcmVzc1wiPT09ZS50eXBlP25MKGUpOjB9LGtleUNvZGU6ZnVuY3Rpb24oZSl7cmV0dXJuXCJrZXlkb3duXCI9PT1lLnR5cGV8fFwia2V5dXBcIj09PWUudHlwZT9lLmtleUNvZGU6MH0sd2hpY2g6ZnVuY3Rpb24oZSl7cmV0dXJuXCJrZXlwcmVzc1wiPT09ZS50eXBlP25MKGUpOlwia2V5ZG93blwiPT09ZS50eXBlfHxcImtleXVwXCI9PT1lLnR5cGU/ZS5rZXlDb2RlOjB9fSkpLG41PW5OKGYoe30sblcse3BvaW50ZXJJZDowLHdpZHRoOjAsaGVpZ2h0OjAscHJlc3N1cmU6MCx0YW5nZW50aWFsUHJlc3N1cmU6MCx0aWx0WDowLHRpbHRZOjAsdHdpc3Q6MCxwb2ludGVyVHlwZTowLGlzUHJpbWFyeTowfSkpLG4zPW5OKGYoe30sblYse3RvdWNoZXM6MCx0YXJnZXRUb3VjaGVzOjAsY2hhbmdlZFRvdWNoZXM6MCxhbHRLZXk6MCxtZXRhS2V5OjAsY3RybEtleTowLHNoaWZ0S2V5OjAsZ2V0TW9kaWZpZXJTdGF0ZTpuMn0pKSxuNj1uTihmKHt9LG5GLHtwcm9wZXJ0eU5hbWU6MCxlbGFwc2VkVGltZTowLHBzZXVkb0VsZW1lbnQ6MH0pKSxuOT1uTihmKHt9LG5XLHtkZWx0YVg6ZnVuY3Rpb24oZSl7cmV0dXJuXCJkZWx0YVhcImluIGU/ZS5kZWx0YVg6XCJ3aGVlbERlbHRhWFwiaW4gZT8tZS53aGVlbERlbHRhWDowfSxkZWx0YVk6ZnVuY3Rpb24oZSl7cmV0dXJuXCJkZWx0YVlcImluIGU/ZS5kZWx0YVk6XCJ3aGVlbERlbHRhWVwiaW4gZT8tZS53aGVlbERlbHRhWTpcIndoZWVsRGVsdGFcImluIGU/LWUud2hlZWxEZWx0YTowfSxkZWx0YVo6MCxkZWx0YU1vZGU6MH0pKSxuOD1uTihmKHt9LG5GLHtuZXdTdGF0ZTowLG9sZFN0YXRlOjB9KSksbjc9WzksMTMsMjcsMzJdLHRlPW5PJiZcIkNvbXBvc2l0aW9uRXZlbnRcImluIHdpbmRvdyx0bj1udWxsO25PJiZcImRvY3VtZW50TW9kZVwiaW4gZG9jdW1lbnQmJih0bj1kb2N1bWVudC5kb2N1bWVudE1vZGUpO3ZhciB0dD1uTyYmXCJUZXh0RXZlbnRcImluIHdpbmRvdyYmIXRuLHRyPW5PJiYoIXRlfHx0biYmODx0biYmMTE+PXRuKSx0bz0hMTtmdW5jdGlvbiB0YShlLG4pe3N3aXRjaChlKXtjYXNlXCJrZXl1cFwiOnJldHVybiAtMSE9PW43LmluZGV4T2Yobi5rZXlDb2RlKTtjYXNlXCJrZXlkb3duXCI6cmV0dXJuIDIyOSE9PW4ua2V5Q29kZTtjYXNlXCJrZXlwcmVzc1wiOmNhc2VcIm1vdXNlZG93blwiOmNhc2VcImZvY3Vzb3V0XCI6cmV0dXJuITA7ZGVmYXVsdDpyZXR1cm4hMX19ZnVuY3Rpb24gdGkoZSl7cmV0dXJuXCJvYmplY3RcIj09dHlwZW9mKGU9ZS5kZXRhaWwpJiZcImRhdGFcImluIGU/ZS5kYXRhOm51bGx9dmFyIHRsPSExLHRzPXtjb2xvcjohMCxkYXRlOiEwLGRhdGV0aW1lOiEwLFwiZGF0ZXRpbWUtbG9jYWxcIjohMCxlbWFpbDohMCxtb250aDohMCxudW1iZXI6ITAscGFzc3dvcmQ6ITAscmFuZ2U6ITAsc2VhcmNoOiEwLHRlbDohMCx0ZXh0OiEwLHRpbWU6ITAsdXJsOiEwLHdlZWs6ITB9O2Z1bmN0aW9uIHRjKGUpe3ZhciBuPWUmJmUubm9kZU5hbWUmJmUubm9kZU5hbWUudG9Mb3dlckNhc2UoKTtyZXR1cm5cImlucHV0XCI9PT1uPyEhdHNbZS50eXBlXTpcInRleHRhcmVhXCI9PT1ufWZ1bmN0aW9uIHR1KGUsbix0LHIpe255P254P254LnB1c2gocik6bng9W3JdOm55PXIsMDwobj1jZShuLFwib25DaGFuZ2VcIikpLmxlbmd0aCYmKHQ9bmV3IG5VKFwib25DaGFuZ2VcIixcImNoYW5nZVwiLG51bGwsdCxyKSxlLnB1c2goe2V2ZW50OnQsbGlzdGVuZXJzOm59KSl9dmFyIHRkPW51bGwsdGY9bnVsbDtmdW5jdGlvbiB0cChlKXtzMihlLDApfWZ1bmN0aW9uIHRoKGUpe2lmKGU4KGUkKGUpKSlyZXR1cm4gZX1mdW5jdGlvbiB0ZyhlLG4pe2lmKFwiY2hhbmdlXCI9PT1lKXJldHVybiBufXZhciB0bT0hMTtpZihuTyl7aWYobk8pe3ZhciB0dj1cIm9uaW5wdXRcImluIGRvY3VtZW50O2lmKCF0dil7dmFyIHRiPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoXCJkaXZcIik7dGIuc2V0QXR0cmlidXRlKFwib25pbnB1dFwiLFwicmV0dXJuO1wiKSx0dj1cImZ1bmN0aW9uXCI9PXR5cGVvZiB0Yi5vbmlucHV0fXI9dHZ9ZWxzZSByPSExO3RtPXImJighZG9jdW1lbnQuZG9jdW1lbnRNb2RlfHw5PGRvY3VtZW50LmRvY3VtZW50TW9kZSl9ZnVuY3Rpb24gdHkoKXt0ZCYmKHRkLmRldGFjaEV2ZW50KFwib25wcm9wZXJ0eWNoYW5nZVwiLHR4KSx0Zj10ZD1udWxsKX1mdW5jdGlvbiB0eChlKXtpZihcInZhbHVlXCI9PT1lLnByb3BlcnR5TmFtZSYmdGgodGYpKXt2YXIgbj1bXTt0dShuLHRmLGUsbmIoZSkpLG5rKHRwLG4pfX1mdW5jdGlvbiB0dyhlLG4sdCl7XCJmb2N1c2luXCI9PT1lPyh0eSgpLHRkPW4sdGY9dCx0ZC5hdHRhY2hFdmVudChcIm9ucHJvcGVydHljaGFuZ2VcIix0eCkpOlwiZm9jdXNvdXRcIj09PWUmJnR5KCl9ZnVuY3Rpb24gdGooZSl7aWYoXCJzZWxlY3Rpb25jaGFuZ2VcIj09PWV8fFwia2V5dXBcIj09PWV8fFwia2V5ZG93blwiPT09ZSlyZXR1cm4gdGgodGYpfWZ1bmN0aW9uIHRrKGUsbil7aWYoXCJjbGlja1wiPT09ZSlyZXR1cm4gdGgobil9ZnVuY3Rpb24gdEEoZSxuKXtpZihcImlucHV0XCI9PT1lfHxcImNoYW5nZVwiPT09ZSlyZXR1cm4gdGgobil9dmFyIHRPPVwiZnVuY3Rpb25cIj09dHlwZW9mIE9iamVjdC5pcz9PYmplY3QuaXM6ZnVuY3Rpb24oZSxuKXtyZXR1cm4gZT09PW4mJigwIT09ZXx8MS9lPT0xL24pfHxlIT1lJiZuIT1ufTtmdW5jdGlvbiB0QyhlLG4pe2lmKHRPKGUsbikpcmV0dXJuITA7aWYoXCJvYmplY3RcIiE9dHlwZW9mIGV8fG51bGw9PT1lfHxcIm9iamVjdFwiIT10eXBlb2Ygbnx8bnVsbD09PW4pcmV0dXJuITE7dmFyIHQ9T2JqZWN0LmtleXMoZSkscj1PYmplY3Qua2V5cyhuKTtpZih0Lmxlbmd0aCE9PXIubGVuZ3RoKXJldHVybiExO2ZvcihyPTA7cjx0Lmxlbmd0aDtyKyspe3ZhciBvPXRbcl07aWYoIUcuY2FsbChuLG8pfHwhdE8oZVtvXSxuW29dKSlyZXR1cm4hMX1yZXR1cm4hMH1mdW5jdGlvbiB0UyhlKXtmb3IoO2UmJmUuZmlyc3RDaGlsZDspZT1lLmZpcnN0Q2hpbGQ7cmV0dXJuIGV9ZnVuY3Rpb24gdEUoZSxuKXt2YXIgdCxyPXRTKGUpO2ZvcihlPTA7cjspe2lmKDM9PT1yLm5vZGVUeXBlKXtpZih0PWUrci50ZXh0Q29udGVudC5sZW5ndGgsZTw9biYmdD49bilyZXR1cm57bm9kZTpyLG9mZnNldDpuLWV9O2U9dH1lOntmb3IoO3I7KXtpZihyLm5leHRTaWJsaW5nKXtyPXIubmV4dFNpYmxpbmc7YnJlYWsgZX1yPXIucGFyZW50Tm9kZX1yPXZvaWQgMH1yPXRTKHIpfX1mdW5jdGlvbiB0XyhlKXtlPW51bGwhPWUmJm51bGwhPWUub3duZXJEb2N1bWVudCYmbnVsbCE9ZS5vd25lckRvY3VtZW50LmRlZmF1bHRWaWV3P2Uub3duZXJEb2N1bWVudC5kZWZhdWx0Vmlldzp3aW5kb3c7Zm9yKHZhciBuPWU3KGUuZG9jdW1lbnQpO24gaW5zdGFuY2VvZiBlLkhUTUxJRnJhbWVFbGVtZW50Oyl7dHJ5e3ZhciB0PVwic3RyaW5nXCI9PXR5cGVvZiBuLmNvbnRlbnRXaW5kb3cubG9jYXRpb24uaHJlZn1jYXRjaChlKXt0PSExfWlmKHQpZT1uLmNvbnRlbnRXaW5kb3c7ZWxzZSBicmVhaztuPWU3KGUuZG9jdW1lbnQpfXJldHVybiBufWZ1bmN0aW9uIHRQKGUpe3ZhciBuPWUmJmUubm9kZU5hbWUmJmUubm9kZU5hbWUudG9Mb3dlckNhc2UoKTtyZXR1cm4gbiYmKFwiaW5wdXRcIj09PW4mJihcInRleHRcIj09PWUudHlwZXx8XCJzZWFyY2hcIj09PWUudHlwZXx8XCJ0ZWxcIj09PWUudHlwZXx8XCJ1cmxcIj09PWUudHlwZXx8XCJwYXNzd29yZFwiPT09ZS50eXBlKXx8XCJ0ZXh0YXJlYVwiPT09bnx8XCJ0cnVlXCI9PT1lLmNvbnRlbnRFZGl0YWJsZSl9dmFyIHR6PW5PJiZcImRvY3VtZW50TW9kZVwiaW4gZG9jdW1lbnQmJjExPj1kb2N1bWVudC5kb2N1bWVudE1vZGUsdEw9bnVsbCx0VD1udWxsLHRSPW51bGwsdE49ITE7ZnVuY3Rpb24gdEQoZSxuLHQpe3ZhciByPXQud2luZG93PT09dD90LmRvY3VtZW50Ojk9PT10Lm5vZGVUeXBlP3Q6dC5vd25lckRvY3VtZW50O3ROfHxudWxsPT10THx8dEwhPT1lNyhyKXx8KHI9XCJzZWxlY3Rpb25TdGFydFwiaW4ocj10TCkmJnRQKHIpP3tzdGFydDpyLnNlbGVjdGlvblN0YXJ0LGVuZDpyLnNlbGVjdGlvbkVuZH06e2FuY2hvck5vZGU6KHI9KHIub3duZXJEb2N1bWVudCYmci5vd25lckRvY3VtZW50LmRlZmF1bHRWaWV3fHx3aW5kb3cpLmdldFNlbGVjdGlvbigpKS5hbmNob3JOb2RlLGFuY2hvck9mZnNldDpyLmFuY2hvck9mZnNldCxmb2N1c05vZGU6ci5mb2N1c05vZGUsZm9jdXNPZmZzZXQ6ci5mb2N1c09mZnNldH0sdFImJnRDKHRSLHIpfHwodFI9ciwwPChyPWNlKHRULFwib25TZWxlY3RcIikpLmxlbmd0aCYmKG49bmV3IG5VKFwib25TZWxlY3RcIixcInNlbGVjdFwiLG51bGwsbix0KSxlLnB1c2goe2V2ZW50Om4sbGlzdGVuZXJzOnJ9KSxuLnRhcmdldD10TCkpKX1mdW5jdGlvbiB0QihlLG4pe3ZhciB0PXt9O3JldHVybiB0W2UudG9Mb3dlckNhc2UoKV09bi50b0xvd2VyQ2FzZSgpLHRbXCJXZWJraXRcIitlXT1cIndlYmtpdFwiK24sdFtcIk1velwiK2VdPVwibW96XCIrbix0fXZhciB0TT17YW5pbWF0aW9uZW5kOnRCKFwiQW5pbWF0aW9uXCIsXCJBbmltYXRpb25FbmRcIiksYW5pbWF0aW9uaXRlcmF0aW9uOnRCKFwiQW5pbWF0aW9uXCIsXCJBbmltYXRpb25JdGVyYXRpb25cIiksYW5pbWF0aW9uc3RhcnQ6dEIoXCJBbmltYXRpb25cIixcIkFuaW1hdGlvblN0YXJ0XCIpLHRyYW5zaXRpb25ydW46dEIoXCJUcmFuc2l0aW9uXCIsXCJUcmFuc2l0aW9uUnVuXCIpLHRyYW5zaXRpb25zdGFydDp0QihcIlRyYW5zaXRpb25cIixcIlRyYW5zaXRpb25TdGFydFwiKSx0cmFuc2l0aW9uY2FuY2VsOnRCKFwiVHJhbnNpdGlvblwiLFwiVHJhbnNpdGlvbkNhbmNlbFwiKSx0cmFuc2l0aW9uZW5kOnRCKFwiVHJhbnNpdGlvblwiLFwiVHJhbnNpdGlvbkVuZFwiKX0sdEk9e30sdEg9e307ZnVuY3Rpb24gdEYoZSl7aWYodElbZV0pcmV0dXJuIHRJW2VdO2lmKCF0TVtlXSlyZXR1cm4gZTt2YXIgbix0PXRNW2VdO2ZvcihuIGluIHQpaWYodC5oYXNPd25Qcm9wZXJ0eShuKSYmbiBpbiB0SClyZXR1cm4gdElbZV09dFtuXTtyZXR1cm4gZX1uTyYmKHRIPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoXCJkaXZcIikuc3R5bGUsXCJBbmltYXRpb25FdmVudFwiaW4gd2luZG93fHwoZGVsZXRlIHRNLmFuaW1hdGlvbmVuZC5hbmltYXRpb24sZGVsZXRlIHRNLmFuaW1hdGlvbml0ZXJhdGlvbi5hbmltYXRpb24sZGVsZXRlIHRNLmFuaW1hdGlvbnN0YXJ0LmFuaW1hdGlvbiksXCJUcmFuc2l0aW9uRXZlbnRcImluIHdpbmRvd3x8ZGVsZXRlIHRNLnRyYW5zaXRpb25lbmQudHJhbnNpdGlvbik7dmFyIHRVPXRGKFwiYW5pbWF0aW9uZW5kXCIpLHRWPXRGKFwiYW5pbWF0aW9uaXRlcmF0aW9uXCIpLHRxPXRGKFwiYW5pbWF0aW9uc3RhcnRcIiksdFc9dEYoXCJ0cmFuc2l0aW9ucnVuXCIpLHQkPXRGKFwidHJhbnNpdGlvbnN0YXJ0XCIpLHRaPXRGKFwidHJhbnNpdGlvbmNhbmNlbFwiKSx0WT10RihcInRyYW5zaXRpb25lbmRcIiksdFg9bmV3IE1hcCx0Sz1cImFib3J0IGF1eENsaWNrIGJlZm9yZVRvZ2dsZSBjYW5jZWwgY2FuUGxheSBjYW5QbGF5VGhyb3VnaCBjbGljayBjbG9zZSBjb250ZXh0TWVudSBjb3B5IGN1dCBkcmFnIGRyYWdFbmQgZHJhZ0VudGVyIGRyYWdFeGl0IGRyYWdMZWF2ZSBkcmFnT3ZlciBkcmFnU3RhcnQgZHJvcCBkdXJhdGlvbkNoYW5nZSBlbXB0aWVkIGVuY3J5cHRlZCBlbmRlZCBlcnJvciBnb3RQb2ludGVyQ2FwdHVyZSBpbnB1dCBpbnZhbGlkIGtleURvd24ga2V5UHJlc3Mga2V5VXAgbG9hZCBsb2FkZWREYXRhIGxvYWRlZE1ldGFkYXRhIGxvYWRTdGFydCBsb3N0UG9pbnRlckNhcHR1cmUgbW91c2VEb3duIG1vdXNlTW92ZSBtb3VzZU91dCBtb3VzZU92ZXIgbW91c2VVcCBwYXN0ZSBwYXVzZSBwbGF5IHBsYXlpbmcgcG9pbnRlckNhbmNlbCBwb2ludGVyRG93biBwb2ludGVyTW92ZSBwb2ludGVyT3V0IHBvaW50ZXJPdmVyIHBvaW50ZXJVcCBwcm9ncmVzcyByYXRlQ2hhbmdlIHJlc2V0IHJlc2l6ZSBzZWVrZWQgc2Vla2luZyBzdGFsbGVkIHN1Ym1pdCBzdXNwZW5kIHRpbWVVcGRhdGUgdG91Y2hDYW5jZWwgdG91Y2hFbmQgdG91Y2hTdGFydCB2b2x1bWVDaGFuZ2Ugc2Nyb2xsIHRvZ2dsZSB0b3VjaE1vdmUgd2FpdGluZyB3aGVlbFwiLnNwbGl0KFwiIFwiKTtmdW5jdGlvbiB0UShlLG4pe3RYLnNldChlLG4pLGVRKG4sW2VdKX10Sy5wdXNoKFwic2Nyb2xsRW5kXCIpO3ZhciB0Rz1cImZ1bmN0aW9uXCI9PXR5cGVvZiByZXBvcnRFcnJvcj9yZXBvcnRFcnJvcjpmdW5jdGlvbihlKXtpZihcIm9iamVjdFwiPT10eXBlb2Ygd2luZG93JiZcImZ1bmN0aW9uXCI9PXR5cGVvZiB3aW5kb3cuRXJyb3JFdmVudCl7dmFyIG49bmV3IHdpbmRvdy5FcnJvckV2ZW50KFwiZXJyb3JcIix7YnViYmxlczohMCxjYW5jZWxhYmxlOiEwLG1lc3NhZ2U6XCJvYmplY3RcIj09dHlwZW9mIGUmJm51bGwhPT1lJiZcInN0cmluZ1wiPT10eXBlb2YgZS5tZXNzYWdlP1N0cmluZyhlLm1lc3NhZ2UpOlN0cmluZyhlKSxlcnJvcjplfSk7aWYoIXdpbmRvdy5kaXNwYXRjaEV2ZW50KG4pKXJldHVybn1lbHNlIGlmKFwib2JqZWN0XCI9PXR5cGVvZiBwcm9jZXNzJiZcImZ1bmN0aW9uXCI9PXR5cGVvZiBwcm9jZXNzLmVtaXQpcmV0dXJuIHZvaWQgcHJvY2Vzcy5lbWl0KFwidW5jYXVnaHRFeGNlcHRpb25cIixlKTtjb25zb2xlLmVycm9yKGUpfSx0Sj1bXSx0MD0wLHQxPTA7ZnVuY3Rpb24gdDIoKXtmb3IodmFyIGU9dDAsbj10MT10MD0wO248ZTspe3ZhciB0PXRKW25dO3RKW24rK109bnVsbDt2YXIgcj10SltuXTt0SltuKytdPW51bGw7dmFyIG89dEpbbl07dEpbbisrXT1udWxsO3ZhciBhPXRKW25dO2lmKHRKW24rK109bnVsbCxudWxsIT09ciYmbnVsbCE9PW8pe3ZhciBpPXIucGVuZGluZztudWxsPT09aT9vLm5leHQ9bzooby5uZXh0PWkubmV4dCxpLm5leHQ9byksci5wZW5kaW5nPW99MCE9PWEmJnQ2KHQsbyxhKX19ZnVuY3Rpb24gdDQoZSxuLHQscil7dEpbdDArK109ZSx0Slt0MCsrXT1uLHRKW3QwKytdPXQsdEpbdDArK109cix0MXw9cixlLmxhbmVzfD1yLG51bGwhPT0oZT1lLmFsdGVybmF0ZSkmJihlLmxhbmVzfD1yKX1mdW5jdGlvbiB0NShlLG4sdCxyKXtyZXR1cm4gdDQoZSxuLHQsciksdDkoZSl9ZnVuY3Rpb24gdDMoZSxuKXtyZXR1cm4gdDQoZSxudWxsLG51bGwsbiksdDkoZSl9ZnVuY3Rpb24gdDYoZSxuLHQpe2UubGFuZXN8PXQ7dmFyIHI9ZS5hbHRlcm5hdGU7bnVsbCE9PXImJihyLmxhbmVzfD10KTtmb3IodmFyIG89ITEsYT1lLnJldHVybjtudWxsIT09YTspYS5jaGlsZExhbmVzfD10LG51bGwhPT0ocj1hLmFsdGVybmF0ZSkmJihyLmNoaWxkTGFuZXN8PXQpLDIyPT09YS50YWcmJihudWxsPT09KGU9YS5zdGF0ZU5vZGUpfHwxJmUuX3Zpc2liaWxpdHl8fChvPSEwKSksZT1hLGE9YS5yZXR1cm47cmV0dXJuIDM9PT1lLnRhZz8oYT1lLnN0YXRlTm9kZSxvJiZudWxsIT09biYmKG89MzEtZWcodCksbnVsbD09PShyPShlPWEuaGlkZGVuVXBkYXRlcylbb10pP2Vbb109W25dOnIucHVzaChuKSxuLmxhbmU9MHgyMDAwMDAwMHx0KSxhKTpudWxsfWZ1bmN0aW9uIHQ5KGUpe2lmKDUwPHNlKXRocm93IHNlPTAsc249bnVsbCxFcnJvcihsKDE4NSkpO2Zvcih2YXIgbj1lLnJldHVybjtudWxsIT09bjspbj0oZT1uKS5yZXR1cm47cmV0dXJuIDM9PT1lLnRhZz9lLnN0YXRlTm9kZTpudWxsfXZhciB0OD17fTtmdW5jdGlvbiB0NyhlLG4sdCxyKXt0aGlzLnRhZz1lLHRoaXMua2V5PXQsdGhpcy5zaWJsaW5nPXRoaXMuY2hpbGQ9dGhpcy5yZXR1cm49dGhpcy5zdGF0ZU5vZGU9dGhpcy50eXBlPXRoaXMuZWxlbWVudFR5cGU9bnVsbCx0aGlzLmluZGV4PTAsdGhpcy5yZWZDbGVhbnVwPXRoaXMucmVmPW51bGwsdGhpcy5wZW5kaW5nUHJvcHM9bix0aGlzLmRlcGVuZGVuY2llcz10aGlzLm1lbW9pemVkU3RhdGU9dGhpcy51cGRhdGVRdWV1ZT10aGlzLm1lbW9pemVkUHJvcHM9bnVsbCx0aGlzLm1vZGU9cix0aGlzLnN1YnRyZWVGbGFncz10aGlzLmZsYWdzPTAsdGhpcy5kZWxldGlvbnM9bnVsbCx0aGlzLmNoaWxkTGFuZXM9dGhpcy5sYW5lcz0wLHRoaXMuYWx0ZXJuYXRlPW51bGx9ZnVuY3Rpb24gcmUoZSxuLHQscil7cmV0dXJuIG5ldyB0NyhlLG4sdCxyKX1mdW5jdGlvbiBybihlKXtyZXR1cm4hKCEoZT1lLnByb3RvdHlwZSl8fCFlLmlzUmVhY3RDb21wb25lbnQpfWZ1bmN0aW9uIHJ0KGUsbil7dmFyIHQ9ZS5hbHRlcm5hdGU7cmV0dXJuIG51bGw9PT10PygodD1yZShlLnRhZyxuLGUua2V5LGUubW9kZSkpLmVsZW1lbnRUeXBlPWUuZWxlbWVudFR5cGUsdC50eXBlPWUudHlwZSx0LnN0YXRlTm9kZT1lLnN0YXRlTm9kZSx0LmFsdGVybmF0ZT1lLGUuYWx0ZXJuYXRlPXQpOih0LnBlbmRpbmdQcm9wcz1uLHQudHlwZT1lLnR5cGUsdC5mbGFncz0wLHQuc3VidHJlZUZsYWdzPTAsdC5kZWxldGlvbnM9bnVsbCksdC5mbGFncz0weDNlMDAwMDAmZS5mbGFncyx0LmNoaWxkTGFuZXM9ZS5jaGlsZExhbmVzLHQubGFuZXM9ZS5sYW5lcyx0LmNoaWxkPWUuY2hpbGQsdC5tZW1vaXplZFByb3BzPWUubWVtb2l6ZWRQcm9wcyx0Lm1lbW9pemVkU3RhdGU9ZS5tZW1vaXplZFN0YXRlLHQudXBkYXRlUXVldWU9ZS51cGRhdGVRdWV1ZSxuPWUuZGVwZW5kZW5jaWVzLHQuZGVwZW5kZW5jaWVzPW51bGw9PT1uP251bGw6e2xhbmVzOm4ubGFuZXMsZmlyc3RDb250ZXh0Om4uZmlyc3RDb250ZXh0fSx0LnNpYmxpbmc9ZS5zaWJsaW5nLHQuaW5kZXg9ZS5pbmRleCx0LnJlZj1lLnJlZix0LnJlZkNsZWFudXA9ZS5yZWZDbGVhbnVwLHR9ZnVuY3Rpb24gcnIoZSxuKXtlLmZsYWdzJj0weDNlMDAwMDI7dmFyIHQ9ZS5hbHRlcm5hdGU7cmV0dXJuIG51bGw9PT10PyhlLmNoaWxkTGFuZXM9MCxlLmxhbmVzPW4sZS5jaGlsZD1udWxsLGUuc3VidHJlZUZsYWdzPTAsZS5tZW1vaXplZFByb3BzPW51bGwsZS5tZW1vaXplZFN0YXRlPW51bGwsZS51cGRhdGVRdWV1ZT1udWxsLGUuZGVwZW5kZW5jaWVzPW51bGwsZS5zdGF0ZU5vZGU9bnVsbCk6KGUuY2hpbGRMYW5lcz10LmNoaWxkTGFuZXMsZS5sYW5lcz10LmxhbmVzLGUuY2hpbGQ9dC5jaGlsZCxlLnN1YnRyZWVGbGFncz0wLGUuZGVsZXRpb25zPW51bGwsZS5tZW1vaXplZFByb3BzPXQubWVtb2l6ZWRQcm9wcyxlLm1lbW9pemVkU3RhdGU9dC5tZW1vaXplZFN0YXRlLGUudXBkYXRlUXVldWU9dC51cGRhdGVRdWV1ZSxlLnR5cGU9dC50eXBlLGUuZGVwZW5kZW5jaWVzPW51bGw9PT0obj10LmRlcGVuZGVuY2llcyk/bnVsbDp7bGFuZXM6bi5sYW5lcyxmaXJzdENvbnRleHQ6bi5maXJzdENvbnRleHR9KSxlfWZ1bmN0aW9uIHJvKGUsbix0LHIsbyxhKXt2YXIgaT0wO2lmKHI9ZSxcImZ1bmN0aW9uXCI9PXR5cGVvZiBlKXJuKGUpJiYoaT0xKTtlbHNlIGlmKFwic3RyaW5nXCI9PXR5cGVvZiBlKWk9IWZ1bmN0aW9uKGUsbix0KXtpZigxPT09dHx8bnVsbCE9bi5pdGVtUHJvcClyZXR1cm4hMTtzd2l0Y2goZSl7Y2FzZVwibWV0YVwiOmNhc2VcInRpdGxlXCI6cmV0dXJuITA7Y2FzZVwic3R5bGVcIjppZihcInN0cmluZ1wiIT10eXBlb2Ygbi5wcmVjZWRlbmNlfHxcInN0cmluZ1wiIT10eXBlb2Ygbi5ocmVmfHxcIlwiPT09bi5ocmVmKWJyZWFrO3JldHVybiEwO2Nhc2VcImxpbmtcIjppZihcInN0cmluZ1wiIT10eXBlb2Ygbi5yZWx8fFwic3RyaW5nXCIhPXR5cGVvZiBuLmhyZWZ8fFwiXCI9PT1uLmhyZWZ8fG4ub25Mb2FkfHxuLm9uRXJyb3IpYnJlYWs7aWYoXCJzdHlsZXNoZWV0XCI9PT1uLnJlbClyZXR1cm4gZT1uLmRpc2FibGVkLFwic3RyaW5nXCI9PXR5cGVvZiBuLnByZWNlZGVuY2UmJm51bGw9PWU7cmV0dXJuITA7Y2FzZVwic2NyaXB0XCI6aWYobi5hc3luYyYmXCJmdW5jdGlvblwiIT10eXBlb2Ygbi5hc3luYyYmXCJzeW1ib2xcIiE9dHlwZW9mIG4uYXN5bmMmJiFuLm9uTG9hZCYmIW4ub25FcnJvciYmbi5zcmMmJlwic3RyaW5nXCI9PXR5cGVvZiBuLnNyYylyZXR1cm4hMH1yZXR1cm4hMX0oZSx0LEguY3VycmVudCk/XCJodG1sXCI9PT1lfHxcImhlYWRcIj09PWV8fFwiYm9keVwiPT09ZT8yNzo1OjI2O2Vsc2UgZTpzd2l0Y2goZSl7Y2FzZSBDOnJldHVybihlPXJlKDMxLHQsbixvKSkuZWxlbWVudFR5cGU9QyxlLmxhbmVzPWEsZTtjYXNlIG06cmV0dXJuIHJhKHQuY2hpbGRyZW4sbyxhLG4pO2Nhc2UgdjppPTgsb3w9MjQ7YnJlYWs7Y2FzZSBiOnJldHVybihlPXJlKDEyLHQsbiwyfG8pKS5lbGVtZW50VHlwZT1iLGUubGFuZXM9YSxlO2Nhc2UgajpyZXR1cm4oZT1yZSgxMyx0LG4sbykpLmVsZW1lbnRUeXBlPWosZS5sYW5lcz1hLGU7Y2FzZSBrOnJldHVybihlPXJlKDE5LHQsbixvKSkuZWxlbWVudFR5cGU9ayxlLmxhbmVzPWEsZTtkZWZhdWx0OmlmKFwib2JqZWN0XCI9PXR5cGVvZiBlJiZudWxsIT09ZSlzd2l0Y2goZS4kJHR5cGVvZil7Y2FzZSB4Omk9MTA7YnJlYWsgZTtjYXNlIHk6aT05O2JyZWFrIGU7Y2FzZSB3Omk9MTE7YnJlYWsgZTtjYXNlIEE6aT0xNDticmVhayBlO2Nhc2UgTzppPTE2LHI9bnVsbDticmVhayBlfWk9MjksdD1FcnJvcihsKDEzMCxudWxsPT09ZT9cIm51bGxcIjp0eXBlb2YgZSxcIlwiKSkscj1udWxsfXJldHVybihuPXJlKGksdCxuLG8pKS5lbGVtZW50VHlwZT1lLG4udHlwZT1yLG4ubGFuZXM9YSxufWZ1bmN0aW9uIHJhKGUsbix0LHIpe3JldHVybihlPXJlKDcsZSxyLG4pKS5sYW5lcz10LGV9ZnVuY3Rpb24gcmkoZSxuLHQpe3JldHVybihlPXJlKDYsZSxudWxsLG4pKS5sYW5lcz10LGV9ZnVuY3Rpb24gcmwoZSl7dmFyIG49cmUoMTgsbnVsbCxudWxsLDApO3JldHVybiBuLnN0YXRlTm9kZT1lLG59ZnVuY3Rpb24gcnMoZSxuLHQpe3JldHVybihuPXJlKDQsbnVsbCE9PWUuY2hpbGRyZW4/ZS5jaGlsZHJlbjpbXSxlLmtleSxuKSkubGFuZXM9dCxuLnN0YXRlTm9kZT17Y29udGFpbmVySW5mbzplLmNvbnRhaW5lckluZm8scGVuZGluZ0NoaWxkcmVuOm51bGwsaW1wbGVtZW50YXRpb246ZS5pbXBsZW1lbnRhdGlvbn0sbn12YXIgcmM9bmV3IFdlYWtNYXA7ZnVuY3Rpb24gcnUoZSxuKXtpZihcIm9iamVjdFwiPT10eXBlb2YgZSYmbnVsbCE9PWUpe3ZhciB0PXJjLmdldChlKTtyZXR1cm4gdm9pZCAwIT09dD90OihuPXt2YWx1ZTplLHNvdXJjZTpuLHN0YWNrOlEobil9LHJjLnNldChlLG4pLG4pfXJldHVybnt2YWx1ZTplLHNvdXJjZTpuLHN0YWNrOlEobil9fXZhciByZD1bXSxyZj0wLHJwPW51bGwscmg9MCxyZz1bXSxybT0wLHJ2PW51bGwscmI9MSxyeT1cIlwiO2Z1bmN0aW9uIHJ4KGUsbil7cmRbcmYrK109cmgscmRbcmYrK109cnAscnA9ZSxyaD1ufWZ1bmN0aW9uIHJ3KGUsbix0KXtyZ1tybSsrXT1yYixyZ1tybSsrXT1yeSxyZ1tybSsrXT1ydixydj1lO3ZhciByPXJiO2U9cnk7dmFyIG89MzItZWcociktMTtyJj1+KDE8PG8pLHQrPTE7dmFyIGE9MzItZWcobikrbztpZigzMDxhKXt2YXIgaT1vLW8lNTthPShyJigxPDxpKS0xKS50b1N0cmluZygzMikscj4+PWksby09aSxyYj0xPDwzMi1lZyhuKStvfHQ8PG98cixyeT1hK2V9ZWxzZSByYj0xPDxhfHQ8PG98cixyeT1lfWZ1bmN0aW9uIHJqKGUpe251bGwhPT1lLnJldHVybiYmKHJ4KGUsMSkscncoZSwxLDApKX1mdW5jdGlvbiByayhlKXtmb3IoO2U9PT1ycDspcnA9cmRbLS1yZl0scmRbcmZdPW51bGwscmg9cmRbLS1yZl0scmRbcmZdPW51bGw7Zm9yKDtlPT09cnY7KXJ2PXJnWy0tcm1dLHJnW3JtXT1udWxsLHJ5PXJnWy0tcm1dLHJnW3JtXT1udWxsLHJiPXJnWy0tcm1dLHJnW3JtXT1udWxsfWZ1bmN0aW9uIHJBKGUsbil7cmdbcm0rK109cmIscmdbcm0rK109cnkscmdbcm0rK109cnYscmI9bi5pZCxyeT1uLm92ZXJmbG93LHJ2PWV9dmFyIHJPPW51bGwsckM9bnVsbCxyUz0hMSxyRT1udWxsLHJfPSExLHJQPUVycm9yKGwoNTE5KSk7ZnVuY3Rpb24gcnooZSl7dmFyIG49RXJyb3IobCg0MTgsMTxhcmd1bWVudHMubGVuZ3RoJiZ2b2lkIDAhPT1hcmd1bWVudHNbMV0mJmFyZ3VtZW50c1sxXT9cInRleHRcIjpcIkhUTUxcIixcIlwiKSk7dGhyb3cgckIocnUobixlKSksclB9ZnVuY3Rpb24gckwoZSl7dmFyIG49ZS5zdGF0ZU5vZGUsdD1lLnR5cGUscj1lLm1lbW9pemVkUHJvcHM7c3dpdGNoKG5bZU5dPWUsbltlRF09cix0KXtjYXNlXCJkaWFsb2dcIjpzNChcImNhbmNlbFwiLG4pLHM0KFwiY2xvc2VcIixuKTticmVhaztjYXNlXCJpZnJhbWVcIjpjYXNlXCJvYmplY3RcIjpjYXNlXCJlbWJlZFwiOnM0KFwibG9hZFwiLG4pO2JyZWFrO2Nhc2VcInZpZGVvXCI6Y2FzZVwiYXVkaW9cIjpmb3IodD0wO3Q8czAubGVuZ3RoO3QrKylzNChzMFt0XSxuKTticmVhaztjYXNlXCJzb3VyY2VcIjpzNChcImVycm9yXCIsbik7YnJlYWs7Y2FzZVwiaW1nXCI6Y2FzZVwiaW1hZ2VcIjpjYXNlXCJsaW5rXCI6czQoXCJlcnJvclwiLG4pLHM0KFwibG9hZFwiLG4pO2JyZWFrO2Nhc2VcImRldGFpbHNcIjpzNChcInRvZ2dsZVwiLG4pO2JyZWFrO2Nhc2VcImlucHV0XCI6czQoXCJpbnZhbGlkXCIsbiksbnIobixyLnZhbHVlLHIuZGVmYXVsdFZhbHVlLHIuY2hlY2tlZCxyLmRlZmF1bHRDaGVja2VkLHIudHlwZSxyLm5hbWUsITApO2JyZWFrO2Nhc2VcInNlbGVjdFwiOnM0KFwiaW52YWxpZFwiLG4pO2JyZWFrO2Nhc2VcInRleHRhcmVhXCI6czQoXCJpbnZhbGlkXCIsbiksbmwobixyLnZhbHVlLHIuZGVmYXVsdFZhbHVlLHIuY2hpbGRyZW4pfVwic3RyaW5nXCIhPXR5cGVvZih0PXIuY2hpbGRyZW4pJiZcIm51bWJlclwiIT10eXBlb2YgdCYmXCJiaWdpbnRcIiE9dHlwZW9mIHR8fG4udGV4dENvbnRlbnQ9PT1cIlwiK3R8fCEwPT09ci5zdXBwcmVzc0h5ZHJhdGlvbldhcm5pbmd8fGNpKG4udGV4dENvbnRlbnQsdCk/KG51bGwhPXIucG9wb3ZlciYmKHM0KFwiYmVmb3JldG9nZ2xlXCIsbiksczQoXCJ0b2dnbGVcIixuKSksbnVsbCE9ci5vblNjcm9sbCYmczQoXCJzY3JvbGxcIixuKSxudWxsIT1yLm9uU2Nyb2xsRW5kJiZzNChcInNjcm9sbGVuZFwiLG4pLG51bGwhPXIub25DbGljayYmKG4ub25jbGljaz1ubSksbj0hMCk6bj0hMSxufHxyeihlLCEwKX1mdW5jdGlvbiByVChlKXtmb3Iock89ZS5yZXR1cm47ck87KXN3aXRjaChyTy50YWcpe2Nhc2UgNTpjYXNlIDMxOmNhc2UgMTM6cl89ITE7cmV0dXJuO2Nhc2UgMjc6Y2FzZSAzOnJfPSEwO3JldHVybjtkZWZhdWx0OnJPPXJPLnJldHVybn19ZnVuY3Rpb24gclIoZSl7aWYoZSE9PXJPKXJldHVybiExO2lmKCFyUylyZXR1cm4gclQoZSksclM9ITAsITE7dmFyIG4sdD1lLnRhZztpZigobj0zIT09dCYmMjchPT10KSYmKChuPTU9PT10KSYmKG49XCJmb3JtXCI9PT0obj1lLnR5cGUpfHxcImJ1dHRvblwiPT09bnx8Y2coZS50eXBlLGUubWVtb2l6ZWRQcm9wcykpLG49IW4pLG4mJnJDJiZyeihlKSxyVChlKSwxMz09PXQpe2lmKCEoZT1udWxsIT09KGU9ZS5tZW1vaXplZFN0YXRlKT9lLmRlaHlkcmF0ZWQ6bnVsbCkpdGhyb3cgRXJyb3IobCgzMTcpKTtyQz1jeihlKX1lbHNlIGlmKDMxPT09dCl7aWYoIShlPW51bGwhPT0oZT1lLm1lbW9pemVkU3RhdGUpP2UuZGVoeWRyYXRlZDpudWxsKSl0aHJvdyBFcnJvcihsKDMxNykpO3JDPWN6KGUpfWVsc2UgMjc9PT10Pyh0PXJDLGNqKGUudHlwZSk/KGU9Y1AsY1A9bnVsbCxyQz1lKTpyQz10KTpyQz1yTz9jXyhlLnN0YXRlTm9kZS5uZXh0U2libGluZyk6bnVsbDtyZXR1cm4hMH1mdW5jdGlvbiByTigpe3JDPXJPPW51bGwsclM9ITF9ZnVuY3Rpb24gckQoKXt2YXIgZT1yRTtyZXR1cm4gbnVsbCE9PWUmJihudWxsPT09bFE/bFE9ZTpsUS5wdXNoLmFwcGx5KGxRLGUpLHJFPW51bGwpLGV9ZnVuY3Rpb24gckIoZSl7bnVsbD09PXJFP3JFPVtlXTpyRS5wdXNoKGUpfXZhciByTT1CKG51bGwpLHJJPW51bGwsckg9bnVsbDtmdW5jdGlvbiByRihlLG4sdCl7SShyTSxuLl9jdXJyZW50VmFsdWUpLG4uX2N1cnJlbnRWYWx1ZT10fWZ1bmN0aW9uIHJVKGUpe2UuX2N1cnJlbnRWYWx1ZT1yTS5jdXJyZW50LE0ock0pfWZ1bmN0aW9uIHJWKGUsbix0KXtmb3IoO251bGwhPT1lOyl7dmFyIHI9ZS5hbHRlcm5hdGU7aWYoKGUuY2hpbGRMYW5lcyZuKSE9PW4/KGUuY2hpbGRMYW5lc3w9bixudWxsIT09ciYmKHIuY2hpbGRMYW5lc3w9bikpOm51bGwhPT1yJiYoci5jaGlsZExhbmVzJm4pIT09biYmKHIuY2hpbGRMYW5lc3w9biksZT09PXQpYnJlYWs7ZT1lLnJldHVybn19ZnVuY3Rpb24gcnEoZSxuLHQscil7dmFyIG89ZS5jaGlsZDtmb3IobnVsbCE9PW8mJihvLnJldHVybj1lKTtudWxsIT09bzspe3ZhciBhPW8uZGVwZW5kZW5jaWVzO2lmKG51bGwhPT1hKXt2YXIgaT1vLmNoaWxkO2E9YS5maXJzdENvbnRleHQ7ZTpmb3IoO251bGwhPT1hOyl7dmFyIHM9YTthPW87Zm9yKHZhciBjPTA7YzxuLmxlbmd0aDtjKyspaWYocy5jb250ZXh0PT09bltjXSl7YS5sYW5lc3w9dCxudWxsIT09KHM9YS5hbHRlcm5hdGUpJiYocy5sYW5lc3w9dCksclYoYS5yZXR1cm4sdCxlKSxyfHwoaT1udWxsKTticmVhayBlfWE9cy5uZXh0fX1lbHNlIGlmKDE4PT09by50YWcpe2lmKG51bGw9PT0oaT1vLnJldHVybikpdGhyb3cgRXJyb3IobCgzNDEpKTtpLmxhbmVzfD10LG51bGwhPT0oYT1pLmFsdGVybmF0ZSkmJihhLmxhbmVzfD10KSxyVihpLHQsZSksaT1udWxsfWVsc2UgaT1vLmNoaWxkO2lmKG51bGwhPT1pKWkucmV0dXJuPW87ZWxzZSBmb3IoaT1vO251bGwhPT1pOyl7aWYoaT09PWUpe2k9bnVsbDticmVha31pZihudWxsIT09KG89aS5zaWJsaW5nKSl7by5yZXR1cm49aS5yZXR1cm4saT1vO2JyZWFrfWk9aS5yZXR1cm59bz1pfX1mdW5jdGlvbiByVyhlLG4sdCxyKXtlPW51bGw7Zm9yKHZhciBvPW4sYT0hMTtudWxsIT09bzspe2lmKCFhKXtpZigwIT0oNTI0Mjg4Jm8uZmxhZ3MpKWE9ITA7ZWxzZSBpZigwIT0oMjYyMTQ0Jm8uZmxhZ3MpKWJyZWFrfWlmKDEwPT09by50YWcpe3ZhciBpPW8uYWx0ZXJuYXRlO2lmKG51bGw9PT1pKXRocm93IEVycm9yKGwoMzg3KSk7aWYobnVsbCE9PShpPWkubWVtb2l6ZWRQcm9wcykpe3ZhciBzPW8udHlwZTt0TyhvLnBlbmRpbmdQcm9wcy52YWx1ZSxpLnZhbHVlKXx8KG51bGwhPT1lP2UucHVzaChzKTplPVtzXSl9fWVsc2UgaWYobz09PVYuY3VycmVudCl7aWYobnVsbD09PShpPW8uYWx0ZXJuYXRlKSl0aHJvdyBFcnJvcihsKDM4NykpO2kubWVtb2l6ZWRTdGF0ZS5tZW1vaXplZFN0YXRlIT09by5tZW1vaXplZFN0YXRlLm1lbW9pemVkU3RhdGUmJihudWxsIT09ZT9lLnB1c2goYzYpOmU9W2M2XSl9bz1vLnJldHVybn1udWxsIT09ZSYmcnEobixlLHQsciksbi5mbGFnc3w9MjYyMTQ0fWZ1bmN0aW9uIHIkKGUpe2ZvcihlPWUuZmlyc3RDb250ZXh0O251bGwhPT1lOyl7aWYoIXRPKGUuY29udGV4dC5fY3VycmVudFZhbHVlLGUubWVtb2l6ZWRWYWx1ZSkpcmV0dXJuITA7ZT1lLm5leHR9cmV0dXJuITF9ZnVuY3Rpb24gclooZSl7ckk9ZSxySD1udWxsLG51bGwhPT0oZT1lLmRlcGVuZGVuY2llcykmJihlLmZpcnN0Q29udGV4dD1udWxsKX1mdW5jdGlvbiByWShlKXtyZXR1cm4gcksockksZSl9ZnVuY3Rpb24gclgoZSxuKXtyZXR1cm4gbnVsbD09PXJJJiZyWihlKSxySyhlLG4pfWZ1bmN0aW9uIHJLKGUsbil7dmFyIHQ9bi5fY3VycmVudFZhbHVlO2lmKG49e2NvbnRleHQ6bixtZW1vaXplZFZhbHVlOnQsbmV4dDpudWxsfSxudWxsPT09ckgpe2lmKG51bGw9PT1lKXRocm93IEVycm9yKGwoMzA4KSk7ckg9bixlLmRlcGVuZGVuY2llcz17bGFuZXM6MCxmaXJzdENvbnRleHQ6bn0sZS5mbGFnc3w9NTI0Mjg4fWVsc2Ugckg9ckgubmV4dD1uO3JldHVybiB0fXZhciByUT1cInVuZGVmaW5lZFwiIT10eXBlb2YgQWJvcnRDb250cm9sbGVyP0Fib3J0Q29udHJvbGxlcjpmdW5jdGlvbigpe3ZhciBlPVtdLG49dGhpcy5zaWduYWw9e2Fib3J0ZWQ6ITEsYWRkRXZlbnRMaXN0ZW5lcjpmdW5jdGlvbihuLHQpe2UucHVzaCh0KX19O3RoaXMuYWJvcnQ9ZnVuY3Rpb24oKXtuLmFib3J0ZWQ9ITAsZS5mb3JFYWNoKGZ1bmN0aW9uKGUpe3JldHVybiBlKCl9KX19LHJHPW8udW5zdGFibGVfc2NoZWR1bGVDYWxsYmFjayxySj1vLnVuc3RhYmxlX05vcm1hbFByaW9yaXR5LHIwPXskJHR5cGVvZjp4LENvbnN1bWVyOm51bGwsUHJvdmlkZXI6bnVsbCxfY3VycmVudFZhbHVlOm51bGwsX2N1cnJlbnRWYWx1ZTI6bnVsbCxfdGhyZWFkQ291bnQ6MH07ZnVuY3Rpb24gcjEoKXtyZXR1cm57Y29udHJvbGxlcjpuZXcgclEsZGF0YTpuZXcgTWFwLHJlZkNvdW50OjB9fWZ1bmN0aW9uIHIyKGUpe2UucmVmQ291bnQtLSwwPT09ZS5yZWZDb3VudCYmckcockosZnVuY3Rpb24oKXtlLmNvbnRyb2xsZXIuYWJvcnQoKX0pfXZhciByND1udWxsLHI1PTAscjM9MCxyNj1udWxsO2Z1bmN0aW9uIHI5KCl7aWYoMD09LS1yNSYmbnVsbCE9PXI0KXtudWxsIT09cjYmJihyNi5zdGF0dXM9XCJmdWxmaWxsZWRcIik7dmFyIGU9cjQ7cjQ9bnVsbCxyMz0wLHI2PW51bGw7Zm9yKHZhciBuPTA7bjxlLmxlbmd0aDtuKyspKDAsZVtuXSkoKX19dmFyIHI4PUwuUztMLlM9ZnVuY3Rpb24oZSxuKXtcIm9iamVjdFwiPT10eXBlb2YgbiYmbnVsbCE9PW4mJlwiZnVuY3Rpb25cIj09dHlwZW9mIG4udGhlbiYmZnVuY3Rpb24oZSxuKXtpZihudWxsPT09cjQpe3ZhciB0PXI0PVtdO3I1PTAscjM9c1goKSxyNj17c3RhdHVzOlwicGVuZGluZ1wiLHZhbHVlOnZvaWQgMCx0aGVuOmZ1bmN0aW9uKGUpe3QucHVzaChlKX19fXI1Kyssbi50aGVuKHI5LHI5KX0oMCxuKSxudWxsIT09cjgmJnI4KGUsbil9O3ZhciByNz1CKG51bGwpO2Z1bmN0aW9uIG9lKCl7dmFyIGU9cjcuY3VycmVudDtyZXR1cm4gbnVsbCE9PWU/ZTpsTi5wb29sZWRDYWNoZX1mdW5jdGlvbiBvbihlLG4pe251bGw9PT1uP0kocjcscjcuY3VycmVudCk6SShyNyxuLnBvb2wpfWZ1bmN0aW9uIG90KCl7dmFyIGU9b2UoKTtyZXR1cm4gbnVsbD09PWU/bnVsbDp7cGFyZW50OnIwLl9jdXJyZW50VmFsdWUscG9vbDplfX12YXIgb3I9RXJyb3IobCg0NjApKSxvbz1FcnJvcihsKDQ3NCkpLG9hPUVycm9yKGwoNTQyKSksb2k9e3RoZW46ZnVuY3Rpb24oKXt9fTtmdW5jdGlvbiBvbChlKXtyZXR1cm5cImZ1bGZpbGxlZFwiPT09KGU9ZS5zdGF0dXMpfHxcInJlamVjdGVkXCI9PT1lfWZ1bmN0aW9uIG9zKGUsbix0KXtzd2l0Y2godm9pZCAwPT09KHQ9ZVt0XSk/ZS5wdXNoKG4pOnQhPT1uJiYobi50aGVuKG5tLG5tKSxuPXQpLG4uc3RhdHVzKXtjYXNlXCJmdWxmaWxsZWRcIjpyZXR1cm4gbi52YWx1ZTtjYXNlXCJyZWplY3RlZFwiOnRocm93IG9kKGU9bi5yZWFzb24pLGU7ZGVmYXVsdDppZihcInN0cmluZ1wiPT10eXBlb2Ygbi5zdGF0dXMpbi50aGVuKG5tLG5tKTtlbHNle2lmKG51bGwhPT0oZT1sTikmJjEwMDxlLnNoZWxsU3VzcGVuZENvdW50ZXIpdGhyb3cgRXJyb3IobCg0ODIpKTsoZT1uKS5zdGF0dXM9XCJwZW5kaW5nXCIsZS50aGVuKGZ1bmN0aW9uKGUpe2lmKFwicGVuZGluZ1wiPT09bi5zdGF0dXMpe3ZhciB0PW47dC5zdGF0dXM9XCJmdWxmaWxsZWRcIix0LnZhbHVlPWV9fSxmdW5jdGlvbihlKXtpZihcInBlbmRpbmdcIj09PW4uc3RhdHVzKXt2YXIgdD1uO3Quc3RhdHVzPVwicmVqZWN0ZWRcIix0LnJlYXNvbj1lfX0pfXN3aXRjaChuLnN0YXR1cyl7Y2FzZVwiZnVsZmlsbGVkXCI6cmV0dXJuIG4udmFsdWU7Y2FzZVwicmVqZWN0ZWRcIjp0aHJvdyBvZChlPW4ucmVhc29uKSxlfXRocm93IG9jPW4sb3J9fXZhciBvYz1udWxsO2Z1bmN0aW9uIG91KCl7aWYobnVsbD09PW9jKXRocm93IEVycm9yKGwoNDU5KSk7dmFyIGU9b2M7cmV0dXJuIG9jPW51bGwsZX1mdW5jdGlvbiBvZChlKXtpZihlPT09b3J8fGU9PT1vYSl0aHJvdyBFcnJvcihsKDQ4MykpfXZhciBvZj1udWxsLG9wPTA7ZnVuY3Rpb24gb2goZSl7dmFyIG49b3A7cmV0dXJuIG9wKz0xLG51bGw9PT1vZiYmKG9mPVtdKSxvcyhvZixlLG4pfWZ1bmN0aW9uIG9nKGUsbil7ZS5yZWY9dm9pZCAwIT09KG49bi5wcm9wcy5yZWYpP246bnVsbH1mdW5jdGlvbiBvbShlLG4pe2lmKG4uJCR0eXBlb2Y9PT1wKXRocm93IEVycm9yKGwoNTI1KSk7dGhyb3cgRXJyb3IobCgzMSxcIltvYmplY3QgT2JqZWN0XVwiPT09KGU9T2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKG4pKT9cIm9iamVjdCB3aXRoIGtleXMge1wiK09iamVjdC5rZXlzKG4pLmpvaW4oXCIsIFwiKStcIn1cIjplKSl9ZnVuY3Rpb24gb3YoZSl7cmV0dXJuKDAsZS5faW5pdCkoZS5fcGF5bG9hZCl9ZnVuY3Rpb24gb2IoZSl7ZnVuY3Rpb24gbihuLHQpe2lmKGUpe3ZhciByPW4uZGVsZXRpb25zO251bGw9PT1yPyhuLmRlbGV0aW9ucz1bdF0sbi5mbGFnc3w9MTYpOnIucHVzaCh0KX19ZnVuY3Rpb24gdCh0LHIpe2lmKCFlKXJldHVybiBudWxsO2Zvcig7bnVsbCE9PXI7KW4odCxyKSxyPXIuc2libGluZztyZXR1cm4gbnVsbH1mdW5jdGlvbiByKGUpe2Zvcih2YXIgbj1uZXcgTWFwO251bGwhPT1lOyludWxsIT09ZS5rZXk/bi5zZXQoZS5rZXksZSk6bi5zZXQoZS5pbmRleCxlKSxlPWUuc2libGluZztyZXR1cm4gbn1mdW5jdGlvbiBvKGUsbil7cmV0dXJuKGU9cnQoZSxuKSkuaW5kZXg9MCxlLnNpYmxpbmc9bnVsbCxlfWZ1bmN0aW9uIGEobix0LHIpe3JldHVybihuLmluZGV4PXIsZSk/bnVsbCE9PShyPW4uYWx0ZXJuYXRlKT8ocj1yLmluZGV4KTx0PyhuLmZsYWdzfD0weDQwMDAwMDIsdCk6cjoobi5mbGFnc3w9MHg0MDAwMDAyLHQpOihuLmZsYWdzfD0xMDQ4NTc2LHQpfWZ1bmN0aW9uIGkobil7cmV0dXJuIGUmJm51bGw9PT1uLmFsdGVybmF0ZSYmKG4uZmxhZ3N8PTB4NDAwMDAwMiksbn1mdW5jdGlvbiBzKGUsbix0LHIpe3JldHVybiBudWxsPT09bnx8NiE9PW4udGFnPyhuPXJpKHQsZS5tb2RlLHIpKS5yZXR1cm49ZToobj1vKG4sdCkpLnJldHVybj1lLG59ZnVuY3Rpb24gYyhlLG4sdCxyKXt2YXIgYT10LnR5cGU7cmV0dXJuIGE9PT1tP2QoZSxuLHQucHJvcHMuY2hpbGRyZW4scix0LmtleSk6KG51bGwhPT1uJiYobi5lbGVtZW50VHlwZT09PWF8fFwib2JqZWN0XCI9PXR5cGVvZiBhJiZudWxsIT09YSYmYS4kJHR5cGVvZj09PU8mJm92KGEpPT09bi50eXBlKT9vZyhuPW8obix0LnByb3BzKSx0KTpvZyhuPXJvKHQudHlwZSx0LmtleSx0LnByb3BzLG51bGwsZS5tb2RlLHIpLHQpLG4ucmV0dXJuPWUsbil9ZnVuY3Rpb24gdShlLG4sdCxyKXtyZXR1cm4gbnVsbD09PW58fDQhPT1uLnRhZ3x8bi5zdGF0ZU5vZGUuY29udGFpbmVySW5mbyE9PXQuY29udGFpbmVySW5mb3x8bi5zdGF0ZU5vZGUuaW1wbGVtZW50YXRpb24hPT10LmltcGxlbWVudGF0aW9uPyhuPXJzKHQsZS5tb2RlLHIpKS5yZXR1cm49ZToobj1vKG4sdC5jaGlsZHJlbnx8W10pKS5yZXR1cm49ZSxufWZ1bmN0aW9uIGQoZSxuLHQscixhKXtyZXR1cm4gbnVsbD09PW58fDchPT1uLnRhZz8obj1yYSh0LGUubW9kZSxyLGEpKS5yZXR1cm49ZToobj1vKG4sdCkpLnJldHVybj1lLG59ZnVuY3Rpb24gZihlLG4sdCl7aWYoXCJzdHJpbmdcIj09dHlwZW9mIG4mJlwiXCIhPT1ufHxcIm51bWJlclwiPT10eXBlb2Ygbnx8XCJiaWdpbnRcIj09dHlwZW9mIG4pcmV0dXJuKG49cmkoXCJcIituLGUubW9kZSx0KSkucmV0dXJuPWUsbjtpZihcIm9iamVjdFwiPT10eXBlb2YgbiYmbnVsbCE9PW4pe3N3aXRjaChuLiQkdHlwZW9mKXtjYXNlIGg6cmV0dXJuIG9nKHQ9cm8obi50eXBlLG4ua2V5LG4ucHJvcHMsbnVsbCxlLm1vZGUsdCksbiksdC5yZXR1cm49ZSx0O2Nhc2UgZzpyZXR1cm4obj1ycyhuLGUubW9kZSx0KSkucmV0dXJuPWUsbjtjYXNlIE86cmV0dXJuIGYoZSxuPSgwLG4uX2luaXQpKG4uX3BheWxvYWQpLHQpfWlmKHoobil8fF8obikpcmV0dXJuKG49cmEobixlLm1vZGUsdCxudWxsKSkucmV0dXJuPWUsbjtpZihcImZ1bmN0aW9uXCI9PXR5cGVvZiBuLnRoZW4pcmV0dXJuIGYoZSxvaChuKSx0KTtpZihuLiQkdHlwZW9mPT09eClyZXR1cm4gZihlLHJYKGUsbiksdCk7b20oZSxuKX1yZXR1cm4gbnVsbH1mdW5jdGlvbiBwKGUsbix0LHIpe3ZhciBvPW51bGwhPT1uP24ua2V5Om51bGw7aWYoXCJzdHJpbmdcIj09dHlwZW9mIHQmJlwiXCIhPT10fHxcIm51bWJlclwiPT10eXBlb2YgdHx8XCJiaWdpbnRcIj09dHlwZW9mIHQpcmV0dXJuIG51bGwhPT1vP251bGw6cyhlLG4sXCJcIit0LHIpO2lmKFwib2JqZWN0XCI9PXR5cGVvZiB0JiZudWxsIT09dCl7c3dpdGNoKHQuJCR0eXBlb2Ype2Nhc2UgaDpyZXR1cm4gdC5rZXk9PT1vP2MoZSxuLHQscik6bnVsbDtjYXNlIGc6cmV0dXJuIHQua2V5PT09bz91KGUsbix0LHIpOm51bGw7Y2FzZSBPOnJldHVybiBwKGUsbix0PShvPXQuX2luaXQpKHQuX3BheWxvYWQpLHIpfWlmKHoodCl8fF8odCkpcmV0dXJuIG51bGwhPT1vP251bGw6ZChlLG4sdCxyLG51bGwpO2lmKFwiZnVuY3Rpb25cIj09dHlwZW9mIHQudGhlbilyZXR1cm4gcChlLG4sb2godCkscik7aWYodC4kJHR5cGVvZj09PXgpcmV0dXJuIHAoZSxuLHJYKGUsdCkscik7b20oZSx0KX1yZXR1cm4gbnVsbH1mdW5jdGlvbiB2KGUsbix0LHIsbyl7aWYoXCJzdHJpbmdcIj09dHlwZW9mIHImJlwiXCIhPT1yfHxcIm51bWJlclwiPT10eXBlb2Ygcnx8XCJiaWdpbnRcIj09dHlwZW9mIHIpcmV0dXJuIHMobixlPWUuZ2V0KHQpfHxudWxsLFwiXCIrcixvKTtpZihcIm9iamVjdFwiPT10eXBlb2YgciYmbnVsbCE9PXIpe3N3aXRjaChyLiQkdHlwZW9mKXtjYXNlIGg6cmV0dXJuIGMobixlPWUuZ2V0KG51bGw9PT1yLmtleT90OnIua2V5KXx8bnVsbCxyLG8pO2Nhc2UgZzpyZXR1cm4gdShuLGU9ZS5nZXQobnVsbD09PXIua2V5P3Q6ci5rZXkpfHxudWxsLHIsbyk7Y2FzZSBPOnJldHVybiB2KGUsbix0LHI9KDAsci5faW5pdCkoci5fcGF5bG9hZCksbyl9aWYoeihyKXx8XyhyKSlyZXR1cm4gZChuLGU9ZS5nZXQodCl8fG51bGwscixvLG51bGwpO2lmKFwiZnVuY3Rpb25cIj09dHlwZW9mIHIudGhlbilyZXR1cm4gdihlLG4sdCxvaChyKSxvKTtpZihyLiQkdHlwZW9mPT09eClyZXR1cm4gdihlLG4sdCxyWChuLHIpLG8pO29tKG4scil9cmV0dXJuIG51bGx9cmV0dXJuIGZ1bmN0aW9uKHMsYyx1LGQpe3RyeXtvcD0wO3ZhciBiPWZ1bmN0aW9uIHMoYyx1LGQsYil7aWYoXCJvYmplY3RcIj09dHlwZW9mIGQmJm51bGwhPT1kJiZkLnR5cGU9PT1tJiZudWxsPT09ZC5rZXkmJihkPWQucHJvcHMuY2hpbGRyZW4pLFwib2JqZWN0XCI9PXR5cGVvZiBkJiZudWxsIT09ZCl7c3dpdGNoKGQuJCR0eXBlb2Ype2Nhc2UgaDplOntmb3IodmFyIHk9ZC5rZXk7bnVsbCE9PXU7KXtpZih1LmtleT09PXkpe2lmKCh5PWQudHlwZSk9PT1tKXtpZig3PT09dS50YWcpe3QoYyx1LnNpYmxpbmcpLChiPW8odSxkLnByb3BzLmNoaWxkcmVuKSkucmV0dXJuPWMsYz1iO2JyZWFrIGV9fWVsc2UgaWYodS5lbGVtZW50VHlwZT09PXl8fFwib2JqZWN0XCI9PXR5cGVvZiB5JiZudWxsIT09eSYmeS4kJHR5cGVvZj09PU8mJm92KHkpPT09dS50eXBlKXt0KGMsdS5zaWJsaW5nKSxvZyhiPW8odSxkLnByb3BzKSxkKSxiLnJldHVybj1jLGM9YjticmVhayBlfXQoYyx1KTticmVha31uKGMsdSksdT11LnNpYmxpbmd9ZC50eXBlPT09bT8oYj1yYShkLnByb3BzLmNoaWxkcmVuLGMubW9kZSxiLGQua2V5KSkucmV0dXJuPWM6KG9nKGI9cm8oZC50eXBlLGQua2V5LGQucHJvcHMsbnVsbCxjLm1vZGUsYiksZCksYi5yZXR1cm49YyksYz1ifXJldHVybiBpKGMpO2Nhc2UgZzplOntmb3IoeT1kLmtleTtudWxsIT09dTspe2lmKHUua2V5PT09eSlpZig0PT09dS50YWcmJnUuc3RhdGVOb2RlLmNvbnRhaW5lckluZm89PT1kLmNvbnRhaW5lckluZm8mJnUuc3RhdGVOb2RlLmltcGxlbWVudGF0aW9uPT09ZC5pbXBsZW1lbnRhdGlvbil7dChjLHUuc2libGluZyksKGI9byh1LGQuY2hpbGRyZW58fFtdKSkucmV0dXJuPWMsYz1iO2JyZWFrIGV9ZWxzZXt0KGMsdSk7YnJlYWt9bihjLHUpLHU9dS5zaWJsaW5nfShiPXJzKGQsYy5tb2RlLGIpKS5yZXR1cm49YyxjPWJ9cmV0dXJuIGkoYyk7Y2FzZSBPOnJldHVybiBzKGMsdSxkPSh5PWQuX2luaXQpKGQuX3BheWxvYWQpLGIpfWlmKHooZCkpcmV0dXJuIGZ1bmN0aW9uKG8saSxsLHMpe2Zvcih2YXIgYz1udWxsLHU9bnVsbCxkPWksaD1pPTAsZz1udWxsO251bGwhPT1kJiZoPGwubGVuZ3RoO2grKyl7ZC5pbmRleD5oPyhnPWQsZD1udWxsKTpnPWQuc2libGluZzt2YXIgbT1wKG8sZCxsW2hdLHMpO2lmKG51bGw9PT1tKXtudWxsPT09ZCYmKGQ9Zyk7YnJlYWt9ZSYmZCYmbnVsbD09PW0uYWx0ZXJuYXRlJiZuKG8sZCksaT1hKG0saSxoKSxudWxsPT09dT9jPW06dS5zaWJsaW5nPW0sdT1tLGQ9Z31pZihoPT09bC5sZW5ndGgpcmV0dXJuIHQobyxkKSxyUyYmcngobyxoKSxjO2lmKG51bGw9PT1kKXtmb3IoO2g8bC5sZW5ndGg7aCsrKW51bGwhPT0oZD1mKG8sbFtoXSxzKSkmJihpPWEoZCxpLGgpLG51bGw9PT11P2M9ZDp1LnNpYmxpbmc9ZCx1PWQpO3JldHVybiByUyYmcngobyxoKSxjfWZvcihkPXIoZCk7aDxsLmxlbmd0aDtoKyspbnVsbCE9PShnPXYoZCxvLGgsbFtoXSxzKSkmJihlJiZudWxsIT09Zy5hbHRlcm5hdGUmJmQuZGVsZXRlKG51bGw9PT1nLmtleT9oOmcua2V5KSxpPWEoZyxpLGgpLG51bGw9PT11P2M9Zzp1LnNpYmxpbmc9Zyx1PWcpO3JldHVybiBlJiZkLmZvckVhY2goZnVuY3Rpb24oZSl7cmV0dXJuIG4obyxlKX0pLHJTJiZyeChvLGgpLGN9KGMsdSxkLGIpO2lmKF8oZCkpe2lmKFwiZnVuY3Rpb25cIiE9dHlwZW9mKHk9XyhkKSkpdGhyb3cgRXJyb3IobCgxNTApKTtyZXR1cm4gZnVuY3Rpb24obyxpLHMsYyl7aWYobnVsbD09cyl0aHJvdyBFcnJvcihsKDE1MSkpO2Zvcih2YXIgdT1udWxsLGQ9bnVsbCxoPWksZz1pPTAsbT1udWxsLGI9cy5uZXh0KCk7bnVsbCE9PWgmJiFiLmRvbmU7ZysrLGI9cy5uZXh0KCkpe2guaW5kZXg+Zz8obT1oLGg9bnVsbCk6bT1oLnNpYmxpbmc7dmFyIHk9cChvLGgsYi52YWx1ZSxjKTtpZihudWxsPT09eSl7bnVsbD09PWgmJihoPW0pO2JyZWFrfWUmJmgmJm51bGw9PT15LmFsdGVybmF0ZSYmbihvLGgpLGk9YSh5LGksZyksbnVsbD09PWQ/dT15OmQuc2libGluZz15LGQ9eSxoPW19aWYoYi5kb25lKXJldHVybiB0KG8saCksclMmJnJ4KG8sZyksdTtpZihudWxsPT09aCl7Zm9yKDshYi5kb25lO2crKyxiPXMubmV4dCgpKW51bGwhPT0oYj1mKG8sYi52YWx1ZSxjKSkmJihpPWEoYixpLGcpLG51bGw9PT1kP3U9YjpkLnNpYmxpbmc9YixkPWIpO3JldHVybiByUyYmcngobyxnKSx1fWZvcihoPXIoaCk7IWIuZG9uZTtnKyssYj1zLm5leHQoKSludWxsIT09KGI9dihoLG8sZyxiLnZhbHVlLGMpKSYmKGUmJm51bGwhPT1iLmFsdGVybmF0ZSYmaC5kZWxldGUobnVsbD09PWIua2V5P2c6Yi5rZXkpLGk9YShiLGksZyksbnVsbD09PWQ/dT1iOmQuc2libGluZz1iLGQ9Yik7cmV0dXJuIGUmJmguZm9yRWFjaChmdW5jdGlvbihlKXtyZXR1cm4gbihvLGUpfSksclMmJnJ4KG8sZyksdX0oYyx1LGQ9eS5jYWxsKGQpLGIpfWlmKFwiZnVuY3Rpb25cIj09dHlwZW9mIGQudGhlbilyZXR1cm4gcyhjLHUsb2goZCksYik7aWYoZC4kJHR5cGVvZj09PXgpcmV0dXJuIHMoYyx1LHJYKGMsZCksYik7b20oYyxkKX1yZXR1cm5cInN0cmluZ1wiPT10eXBlb2YgZCYmXCJcIiE9PWR8fFwibnVtYmVyXCI9PXR5cGVvZiBkfHxcImJpZ2ludFwiPT10eXBlb2YgZD8oZD1cIlwiK2QsbnVsbCE9PXUmJjY9PT11LnRhZz8odChjLHUuc2libGluZyksKGI9byh1LGQpKS5yZXR1cm49Yyk6KHQoYyx1KSwoYj1yaShkLGMubW9kZSxiKSkucmV0dXJuPWMpLGkoYz1iKSk6dChjLHUpfShzLGMsdSxkKTtyZXR1cm4gb2Y9bnVsbCxifWNhdGNoKGUpe2lmKGU9PT1vcnx8ZT09PW9hKXRocm93IGU7dmFyIHk9cmUoMjksZSxudWxsLHMubW9kZSk7cmV0dXJuIHkubGFuZXM9ZCx5LnJldHVybj1zLHl9ZmluYWxseXt9fX12YXIgb3k9b2IoITApLG94PW9iKCExKSxvdz0hMTtmdW5jdGlvbiBvaihlKXtlLnVwZGF0ZVF1ZXVlPXtiYXNlU3RhdGU6ZS5tZW1vaXplZFN0YXRlLGZpcnN0QmFzZVVwZGF0ZTpudWxsLGxhc3RCYXNlVXBkYXRlOm51bGwsc2hhcmVkOntwZW5kaW5nOm51bGwsbGFuZXM6MCxoaWRkZW5DYWxsYmFja3M6bnVsbH0sY2FsbGJhY2tzOm51bGx9fWZ1bmN0aW9uIG9rKGUsbil7ZT1lLnVwZGF0ZVF1ZXVlLG4udXBkYXRlUXVldWU9PT1lJiYobi51cGRhdGVRdWV1ZT17YmFzZVN0YXRlOmUuYmFzZVN0YXRlLGZpcnN0QmFzZVVwZGF0ZTplLmZpcnN0QmFzZVVwZGF0ZSxsYXN0QmFzZVVwZGF0ZTplLmxhc3RCYXNlVXBkYXRlLHNoYXJlZDplLnNoYXJlZCxjYWxsYmFja3M6bnVsbH0pfWZ1bmN0aW9uIG9BKGUpe3JldHVybntsYW5lOmUsdGFnOjAscGF5bG9hZDpudWxsLGNhbGxiYWNrOm51bGwsbmV4dDpudWxsfX1mdW5jdGlvbiBvTyhlLG4sdCl7dmFyIHI9ZS51cGRhdGVRdWV1ZTtpZihudWxsPT09cilyZXR1cm4gbnVsbDtpZihyPXIuc2hhcmVkLDAhPSgyJmxSKSl7dmFyIG89ci5wZW5kaW5nO3JldHVybiBudWxsPT09bz9uLm5leHQ9bjoobi5uZXh0PW8ubmV4dCxvLm5leHQ9biksci5wZW5kaW5nPW4sbj10OShlKSx0NihlLG51bGwsdCksbn1yZXR1cm4gdDQoZSxyLG4sdCksdDkoZSl9ZnVuY3Rpb24gb0MoZSxuLHQpe2lmKG51bGwhPT0obj1uLnVwZGF0ZVF1ZXVlKSYmKG49bi5zaGFyZWQsMCE9KDQxOTQwNDgmdCkpKXt2YXIgcj1uLmxhbmVzO3ImPWUucGVuZGluZ0xhbmVzLHR8PXIsbi5sYW5lcz10LGVFKGUsdCl9fWZ1bmN0aW9uIG9TKGUsbil7dmFyIHQ9ZS51cGRhdGVRdWV1ZSxyPWUuYWx0ZXJuYXRlO2lmKG51bGwhPT1yJiZ0PT09KHI9ci51cGRhdGVRdWV1ZSkpe3ZhciBvPW51bGwsYT1udWxsO2lmKG51bGwhPT0odD10LmZpcnN0QmFzZVVwZGF0ZSkpe2Rve3ZhciBpPXtsYW5lOnQubGFuZSx0YWc6dC50YWcscGF5bG9hZDp0LnBheWxvYWQsY2FsbGJhY2s6bnVsbCxuZXh0Om51bGx9O251bGw9PT1hP289YT1pOmE9YS5uZXh0PWksdD10Lm5leHR9d2hpbGUobnVsbCE9PXQpO251bGw9PT1hP289YT1uOmE9YS5uZXh0PW59ZWxzZSBvPWE9bjt0PXtiYXNlU3RhdGU6ci5iYXNlU3RhdGUsZmlyc3RCYXNlVXBkYXRlOm8sbGFzdEJhc2VVcGRhdGU6YSxzaGFyZWQ6ci5zaGFyZWQsY2FsbGJhY2tzOnIuY2FsbGJhY2tzfSxlLnVwZGF0ZVF1ZXVlPXQ7cmV0dXJufW51bGw9PT0oZT10Lmxhc3RCYXNlVXBkYXRlKT90LmZpcnN0QmFzZVVwZGF0ZT1uOmUubmV4dD1uLHQubGFzdEJhc2VVcGRhdGU9bn12YXIgb0U9ITE7ZnVuY3Rpb24gb18oKXtpZihvRSl7dmFyIGU9cjY7aWYobnVsbCE9PWUpdGhyb3cgZX19ZnVuY3Rpb24gb1AoZSxuLHQscil7b0U9ITE7dmFyIG89ZS51cGRhdGVRdWV1ZTtvdz0hMTt2YXIgYT1vLmZpcnN0QmFzZVVwZGF0ZSxpPW8ubGFzdEJhc2VVcGRhdGUsbD1vLnNoYXJlZC5wZW5kaW5nO2lmKG51bGwhPT1sKXtvLnNoYXJlZC5wZW5kaW5nPW51bGw7dmFyIHM9bCxjPXMubmV4dDtzLm5leHQ9bnVsbCxudWxsPT09aT9hPWM6aS5uZXh0PWMsaT1zO3ZhciB1PWUuYWx0ZXJuYXRlO251bGwhPT11JiYobD0odT11LnVwZGF0ZVF1ZXVlKS5sYXN0QmFzZVVwZGF0ZSkhPT1pJiYobnVsbD09PWw/dS5maXJzdEJhc2VVcGRhdGU9YzpsLm5leHQ9Yyx1Lmxhc3RCYXNlVXBkYXRlPXMpfWlmKG51bGwhPT1hKXt2YXIgZD1vLmJhc2VTdGF0ZTtmb3IoaT0wLHU9Yz1zPW51bGwsbD1hOzspe3ZhciBwPS0weDIwMDAwMDAxJmwubGFuZSxoPXAhPT1sLmxhbmU7aWYoaD8obEImcCk9PT1wOihyJnApPT09cCl7MCE9PXAmJnA9PT1yMyYmKG9FPSEwKSxudWxsIT09dSYmKHU9dS5uZXh0PXtsYW5lOjAsdGFnOmwudGFnLHBheWxvYWQ6bC5wYXlsb2FkLGNhbGxiYWNrOm51bGwsbmV4dDpudWxsfSk7ZTp7dmFyIGc9ZSxtPWw7c3dpdGNoKHA9bixtLnRhZyl7Y2FzZSAxOmlmKFwiZnVuY3Rpb25cIj09dHlwZW9mKGc9bS5wYXlsb2FkKSl7ZD1nLmNhbGwodCxkLHApO2JyZWFrIGV9ZD1nO2JyZWFrIGU7Y2FzZSAzOmcuZmxhZ3M9LTY1NTM3JmcuZmxhZ3N8MTI4O2Nhc2UgMDppZihudWxsPT0ocD1cImZ1bmN0aW9uXCI9PXR5cGVvZihnPW0ucGF5bG9hZCk/Zy5jYWxsKHQsZCxwKTpnKSlicmVhayBlO2Q9Zih7fSxkLHApO2JyZWFrIGU7Y2FzZSAyOm93PSEwfX1udWxsIT09KHA9bC5jYWxsYmFjaykmJihlLmZsYWdzfD02NCxoJiYoZS5mbGFnc3w9ODE5MiksbnVsbD09PShoPW8uY2FsbGJhY2tzKT9vLmNhbGxiYWNrcz1bcF06aC5wdXNoKHApKX1lbHNlIGg9e2xhbmU6cCx0YWc6bC50YWcscGF5bG9hZDpsLnBheWxvYWQsY2FsbGJhY2s6bC5jYWxsYmFjayxuZXh0Om51bGx9LG51bGw9PT11PyhjPXU9aCxzPWQpOnU9dS5uZXh0PWgsaXw9cDtpZihudWxsPT09KGw9bC5uZXh0KSlpZihudWxsPT09KGw9by5zaGFyZWQucGVuZGluZykpYnJlYWs7ZWxzZSBsPShoPWwpLm5leHQsaC5uZXh0PW51bGwsby5sYXN0QmFzZVVwZGF0ZT1oLG8uc2hhcmVkLnBlbmRpbmc9bnVsbH1udWxsPT09dSYmKHM9ZCksby5iYXNlU3RhdGU9cyxvLmZpcnN0QmFzZVVwZGF0ZT1jLG8ubGFzdEJhc2VVcGRhdGU9dSxudWxsPT09YSYmKG8uc2hhcmVkLmxhbmVzPTApLGxXfD1pLGUubGFuZXM9aSxlLm1lbW9pemVkU3RhdGU9ZH19ZnVuY3Rpb24gb3ooZSxuKXtpZihcImZ1bmN0aW9uXCIhPXR5cGVvZiBlKXRocm93IEVycm9yKGwoMTkxLGUpKTtlLmNhbGwobil9ZnVuY3Rpb24gb0woZSxuKXt2YXIgdD1lLmNhbGxiYWNrcztpZihudWxsIT09dClmb3IoZS5jYWxsYmFja3M9bnVsbCxlPTA7ZTx0Lmxlbmd0aDtlKyspb3oodFtlXSxuKX12YXIgb1Q9QihudWxsKSxvUj1CKDApO2Z1bmN0aW9uIG9OKGUsbil7SShvUixlPWxWKSxJKG9ULG4pLGxWPWV8bi5iYXNlTGFuZXN9ZnVuY3Rpb24gb0QoKXtJKG9SLGxWKSxJKG9ULG9ULmN1cnJlbnQpfWZ1bmN0aW9uIG9CKCl7bFY9b1IuY3VycmVudCxNKG9UKSxNKG9SKX12YXIgb009QihudWxsKSxvST1udWxsO2Z1bmN0aW9uIG9IKGUpe3ZhciBuPWUuYWx0ZXJuYXRlO0kob1csMSZvVy5jdXJyZW50KSxJKG9NLGUpLG51bGw9PT1vSSYmKG51bGw9PT1ufHxudWxsIT09b1QuY3VycmVudD9vST1lOm51bGwhPT1uLm1lbW9pemVkU3RhdGUmJihvST1lKSl9ZnVuY3Rpb24gb0YoZSl7SShvVyxvVy5jdXJyZW50KSxJKG9NLGUpLG51bGw9PT1vSSYmKG9JPWUpfWZ1bmN0aW9uIG9VKGUpezIyPT09ZS50YWc/KEkob1csb1cuY3VycmVudCksSShvTSxlKSxudWxsPT09b0kmJihvST1lKSk6b1YoZSl9ZnVuY3Rpb24gb1YoKXtJKG9XLG9XLmN1cnJlbnQpLEkob00sb00uY3VycmVudCl9ZnVuY3Rpb24gb3EoZSl7TShvTSksb0k9PT1lJiYob0k9bnVsbCksTShvVyl9dmFyIG9XPUIoMCk7ZnVuY3Rpb24gbyQoZSl7Zm9yKHZhciBuPWU7bnVsbCE9PW47KXtpZigxMz09PW4udGFnKXt2YXIgdD1uLm1lbW9pemVkU3RhdGU7aWYobnVsbCE9PXQmJihudWxsPT09KHQ9dC5kZWh5ZHJhdGVkKXx8Y1ModCl8fGNFKHQpKSlyZXR1cm4gbn1lbHNlIGlmKDE5PT09bi50YWcmJihcImZvcndhcmRzXCI9PT1uLm1lbW9pemVkUHJvcHMucmV2ZWFsT3JkZXJ8fFwiYmFja3dhcmRzXCI9PT1uLm1lbW9pemVkUHJvcHMucmV2ZWFsT3JkZXJ8fFwidW5zdGFibGVfbGVnYWN5LWJhY2t3YXJkc1wiPT09bi5tZW1vaXplZFByb3BzLnJldmVhbE9yZGVyfHxcInRvZ2V0aGVyXCI9PT1uLm1lbW9pemVkUHJvcHMucmV2ZWFsT3JkZXIpKXtpZigwIT0oMTI4Jm4uZmxhZ3MpKXJldHVybiBufWVsc2UgaWYobnVsbCE9PW4uY2hpbGQpe24uY2hpbGQucmV0dXJuPW4sbj1uLmNoaWxkO2NvbnRpbnVlfWlmKG49PT1lKWJyZWFrO2Zvcig7bnVsbD09PW4uc2libGluZzspe2lmKG51bGw9PT1uLnJldHVybnx8bi5yZXR1cm49PT1lKXJldHVybiBudWxsO249bi5yZXR1cm59bi5zaWJsaW5nLnJldHVybj1uLnJldHVybixuPW4uc2libGluZ31yZXR1cm4gbnVsbH12YXIgb1o9MCxvWT1udWxsLG9YPW51bGwsb0s9bnVsbCxvUT0hMSxvRz0hMSxvSj0hMSxvMD0wLG8xPTAsbzI9bnVsbCxvND0wO2Z1bmN0aW9uIG81KCl7dGhyb3cgRXJyb3IobCgzMjEpKX1mdW5jdGlvbiBvMyhlLG4pe2lmKG51bGw9PT1uKXJldHVybiExO2Zvcih2YXIgdD0wO3Q8bi5sZW5ndGgmJnQ8ZS5sZW5ndGg7dCsrKWlmKCF0TyhlW3RdLG5bdF0pKXJldHVybiExO3JldHVybiEwfWZ1bmN0aW9uIG82KGUsbix0LHIsbyxhKXtyZXR1cm4gb1o9YSxvWT1uLG4ubWVtb2l6ZWRTdGF0ZT1udWxsLG4udXBkYXRlUXVldWU9bnVsbCxuLmxhbmVzPTAsTC5IPW51bGw9PT1lfHxudWxsPT09ZS5tZW1vaXplZFN0YXRlP2l0OmlyLG9KPSExLGE9dChyLG8pLG9KPSExLG9HJiYoYT1vOChuLHQscixvKSksbzkoZSksYX1mdW5jdGlvbiBvOShlKXtMLkg9aWU7dmFyIG49bnVsbCE9PW9YJiZudWxsIT09b1gubmV4dDtpZihvWj0wLG9LPW9YPW9ZPW51bGwsb1E9ITEsbzE9MCxvMj1udWxsLG4pdGhyb3cgRXJyb3IobCgzMDApKTtudWxsPT09ZXx8aXh8fG51bGwhPT0oZT1lLmRlcGVuZGVuY2llcykmJnIkKGUpJiYoaXg9ITApfWZ1bmN0aW9uIG84KGUsbix0LHIpe29ZPWU7dmFyIG89MDtkb3tpZihvRyYmKG8yPW51bGwpLG8xPTAsb0c9ITEsMjU8PW8pdGhyb3cgRXJyb3IobCgzMDEpKTtpZihvKz0xLG9LPW9YPW51bGwsbnVsbCE9ZS51cGRhdGVRdWV1ZSl7dmFyIGE9ZS51cGRhdGVRdWV1ZTthLmxhc3RFZmZlY3Q9bnVsbCxhLmV2ZW50cz1udWxsLGEuc3RvcmVzPW51bGwsbnVsbCE9YS5tZW1vQ2FjaGUmJihhLm1lbW9DYWNoZS5pbmRleD0wKX1MLkg9aW8sYT1uKHQscil9d2hpbGUob0cpO3JldHVybiBhfWZ1bmN0aW9uIG83KCl7dmFyIGU9TC5ILG49ZS51c2VTdGF0ZSgpWzBdO3JldHVybiBuPVwiZnVuY3Rpb25cIj09dHlwZW9mIG4udGhlbj9haShuKTpuLGU9ZS51c2VTdGF0ZSgpWzBdLChudWxsIT09b1g/b1gubWVtb2l6ZWRTdGF0ZTpudWxsKSE9PWUmJihvWS5mbGFnc3w9MTAyNCksbn1mdW5jdGlvbiBhZSgpe3ZhciBlPTAhPT1vMDtyZXR1cm4gbzA9MCxlfWZ1bmN0aW9uIGFuKGUsbix0KXtuLnVwZGF0ZVF1ZXVlPWUudXBkYXRlUXVldWUsbi5mbGFncyY9LTIwNTMsZS5sYW5lcyY9fnR9ZnVuY3Rpb24gYXQoZSl7aWYob1Epe2ZvcihlPWUubWVtb2l6ZWRTdGF0ZTtudWxsIT09ZTspe3ZhciBuPWUucXVldWU7bnVsbCE9PW4mJihuLnBlbmRpbmc9bnVsbCksZT1lLm5leHR9b1E9ITF9b1o9MCxvSz1vWD1vWT1udWxsLG9HPSExLG8xPW8wPTAsbzI9bnVsbH1mdW5jdGlvbiBhcigpe3ZhciBlPXttZW1vaXplZFN0YXRlOm51bGwsYmFzZVN0YXRlOm51bGwsYmFzZVF1ZXVlOm51bGwscXVldWU6bnVsbCxuZXh0Om51bGx9O3JldHVybiBudWxsPT09b0s/b1kubWVtb2l6ZWRTdGF0ZT1vSz1lOm9LPW9LLm5leHQ9ZSxvS31mdW5jdGlvbiBhbygpe2lmKG51bGw9PT1vWCl7dmFyIGU9b1kuYWx0ZXJuYXRlO2U9bnVsbCE9PWU/ZS5tZW1vaXplZFN0YXRlOm51bGx9ZWxzZSBlPW9YLm5leHQ7dmFyIG49bnVsbD09PW9LP29ZLm1lbW9pemVkU3RhdGU6b0submV4dDtpZihudWxsIT09bilvSz1uLG9YPWU7ZWxzZXtpZihudWxsPT09ZSl7aWYobnVsbD09PW9ZLmFsdGVybmF0ZSl0aHJvdyBFcnJvcihsKDQ2NykpO3Rocm93IEVycm9yKGwoMzEwKSl9ZT17bWVtb2l6ZWRTdGF0ZToob1g9ZSkubWVtb2l6ZWRTdGF0ZSxiYXNlU3RhdGU6b1guYmFzZVN0YXRlLGJhc2VRdWV1ZTpvWC5iYXNlUXVldWUscXVldWU6b1gucXVldWUsbmV4dDpudWxsfSxudWxsPT09b0s/b1kubWVtb2l6ZWRTdGF0ZT1vSz1lOm9LPW9LLm5leHQ9ZX1yZXR1cm4gb0t9ZnVuY3Rpb24gYWEoKXtyZXR1cm57bGFzdEVmZmVjdDpudWxsLGV2ZW50czpudWxsLHN0b3JlczpudWxsLG1lbW9DYWNoZTpudWxsfX1mdW5jdGlvbiBhaShlKXt2YXIgbj1vMTtyZXR1cm4gbzErPTEsbnVsbD09PW8yJiYobzI9W10pLGU9b3MobzIsZSxuKSxuPW9ZLG51bGw9PT0obnVsbD09PW9LP24ubWVtb2l6ZWRTdGF0ZTpvSy5uZXh0KSYmKEwuSD1udWxsPT09KG49bi5hbHRlcm5hdGUpfHxudWxsPT09bi5tZW1vaXplZFN0YXRlP2l0OmlyKSxlfWZ1bmN0aW9uIGFsKGUpe2lmKG51bGwhPT1lJiZcIm9iamVjdFwiPT10eXBlb2YgZSl7aWYoXCJmdW5jdGlvblwiPT10eXBlb2YgZS50aGVuKXJldHVybiBhaShlKTtpZihlLiQkdHlwZW9mPT09eClyZXR1cm4gclkoZSl9dGhyb3cgRXJyb3IobCg0MzgsU3RyaW5nKGUpKSl9ZnVuY3Rpb24gYXMoZSl7dmFyIG49bnVsbCx0PW9ZLnVwZGF0ZVF1ZXVlO2lmKG51bGwhPT10JiYobj10Lm1lbW9DYWNoZSksbnVsbD09bil7dmFyIHI9b1kuYWx0ZXJuYXRlO251bGwhPT1yJiZudWxsIT09KHI9ci51cGRhdGVRdWV1ZSkmJm51bGwhPShyPXIubWVtb0NhY2hlKSYmKG49e2RhdGE6ci5kYXRhLm1hcChmdW5jdGlvbihlKXtyZXR1cm4gZS5zbGljZSgpfSksaW5kZXg6MH0pfWlmKG51bGw9PW4mJihuPXtkYXRhOltdLGluZGV4OjB9KSxudWxsPT09dCYmKHQ9YWEoKSxvWS51cGRhdGVRdWV1ZT10KSx0Lm1lbW9DYWNoZT1uLHZvaWQgMD09PSh0PW4uZGF0YVtuLmluZGV4XSkpZm9yKHQ9bi5kYXRhW24uaW5kZXhdPUFycmF5KGUpLHI9MDtyPGU7cisrKXRbcl09UztyZXR1cm4gbi5pbmRleCsrLHR9ZnVuY3Rpb24gYWMoZSxuKXtyZXR1cm5cImZ1bmN0aW9uXCI9PXR5cGVvZiBuP24oZSk6bn1mdW5jdGlvbiBhdShlKXtyZXR1cm4gYWQoYW8oKSxvWCxlKX1mdW5jdGlvbiBhZChlLG4sdCl7dmFyIHI9ZS5xdWV1ZTtpZihudWxsPT09cil0aHJvdyBFcnJvcihsKDMxMSkpO3IubGFzdFJlbmRlcmVkUmVkdWNlcj10O3ZhciBvPWUuYmFzZVF1ZXVlLGE9ci5wZW5kaW5nO2lmKG51bGwhPT1hKXtpZihudWxsIT09byl7dmFyIGk9by5uZXh0O28ubmV4dD1hLm5leHQsYS5uZXh0PWl9bi5iYXNlUXVldWU9bz1hLHIucGVuZGluZz1udWxsfWlmKGE9ZS5iYXNlU3RhdGUsbnVsbD09PW8pZS5tZW1vaXplZFN0YXRlPWE7ZWxzZXtuPW8ubmV4dDt2YXIgcz1pPW51bGwsYz1udWxsLHU9bixkPSExO2Rve3ZhciBmPS0weDIwMDAwMDAxJnUubGFuZTtpZihmIT09dS5sYW5lPyhsQiZmKT09PWY6KG9aJmYpPT09Zil7dmFyIHA9dS5yZXZlcnRMYW5lO2lmKDA9PT1wKW51bGwhPT1jJiYoYz1jLm5leHQ9e2xhbmU6MCxyZXZlcnRMYW5lOjAsZ2VzdHVyZTpudWxsLGFjdGlvbjp1LmFjdGlvbixoYXNFYWdlclN0YXRlOnUuaGFzRWFnZXJTdGF0ZSxlYWdlclN0YXRlOnUuZWFnZXJTdGF0ZSxuZXh0Om51bGx9KSxmPT09cjMmJihkPSEwKTtlbHNlIGlmKChvWiZwKT09PXApe3U9dS5uZXh0LHA9PT1yMyYmKGQ9ITApO2NvbnRpbnVlfWVsc2UgZj17bGFuZTowLHJldmVydExhbmU6dS5yZXZlcnRMYW5lLGdlc3R1cmU6bnVsbCxhY3Rpb246dS5hY3Rpb24saGFzRWFnZXJTdGF0ZTp1Lmhhc0VhZ2VyU3RhdGUsZWFnZXJTdGF0ZTp1LmVhZ2VyU3RhdGUsbmV4dDpudWxsfSxudWxsPT09Yz8ocz1jPWYsaT1hKTpjPWMubmV4dD1mLG9ZLmxhbmVzfD1wLGxXfD1wO2Y9dS5hY3Rpb24sb0omJnQoYSxmKSxhPXUuaGFzRWFnZXJTdGF0ZT91LmVhZ2VyU3RhdGU6dChhLGYpfWVsc2UgcD17bGFuZTpmLHJldmVydExhbmU6dS5yZXZlcnRMYW5lLGdlc3R1cmU6dS5nZXN0dXJlLGFjdGlvbjp1LmFjdGlvbixoYXNFYWdlclN0YXRlOnUuaGFzRWFnZXJTdGF0ZSxlYWdlclN0YXRlOnUuZWFnZXJTdGF0ZSxuZXh0Om51bGx9LG51bGw9PT1jPyhzPWM9cCxpPWEpOmM9Yy5uZXh0PXAsb1kubGFuZXN8PWYsbFd8PWY7dT11Lm5leHR9d2hpbGUobnVsbCE9PXUmJnUhPT1uKTtpZihudWxsPT09Yz9pPWE6Yy5uZXh0PXMsIXRPKGEsZS5tZW1vaXplZFN0YXRlKSYmKGl4PSEwLGQmJm51bGwhPT0odD1yNikpKXRocm93IHQ7ZS5tZW1vaXplZFN0YXRlPWEsZS5iYXNlU3RhdGU9aSxlLmJhc2VRdWV1ZT1jLHIubGFzdFJlbmRlcmVkU3RhdGU9YX1yZXR1cm4gbnVsbD09PW8mJihyLmxhbmVzPTApLFtlLm1lbW9pemVkU3RhdGUsci5kaXNwYXRjaF19ZnVuY3Rpb24gYWYoZSl7dmFyIG49YW8oKSx0PW4ucXVldWU7aWYobnVsbD09PXQpdGhyb3cgRXJyb3IobCgzMTEpKTt0Lmxhc3RSZW5kZXJlZFJlZHVjZXI9ZTt2YXIgcj10LmRpc3BhdGNoLG89dC5wZW5kaW5nLGE9bi5tZW1vaXplZFN0YXRlO2lmKG51bGwhPT1vKXt0LnBlbmRpbmc9bnVsbDt2YXIgaT1vPW8ubmV4dDtkbyBhPWUoYSxpLmFjdGlvbiksaT1pLm5leHQ7d2hpbGUoaSE9PW8pO3RPKGEsbi5tZW1vaXplZFN0YXRlKXx8KGl4PSEwKSxuLm1lbW9pemVkU3RhdGU9YSxudWxsPT09bi5iYXNlUXVldWUmJihuLmJhc2VTdGF0ZT1hKSx0Lmxhc3RSZW5kZXJlZFN0YXRlPWF9cmV0dXJuW2Escl19ZnVuY3Rpb24gYXAoZSxuLHQpe3ZhciByPW9ZLG89YW8oKSxhPXJTO2lmKGEpe2lmKHZvaWQgMD09PXQpdGhyb3cgRXJyb3IobCg0MDcpKTt0PXQoKX1lbHNlIHQ9bigpO3ZhciBpPSF0Tygob1h8fG8pLm1lbW9pemVkU3RhdGUsdCk7aWYoaSYmKG8ubWVtb2l6ZWRTdGF0ZT10LGl4PSEwKSxvPW8ucXVldWUsYU0oYW0uYmluZChudWxsLHIsbyxlKSxbZV0pLG8uZ2V0U25hcHNob3QhPT1ufHxpfHxudWxsIT09b0smJjEmb0subWVtb2l6ZWRTdGF0ZS50YWcpe2lmKHIuZmxhZ3N8PTIwNDgsYVQoOSx7ZGVzdHJveTp2b2lkIDB9LGFnLmJpbmQobnVsbCxyLG8sdCxuKSxudWxsKSxudWxsPT09bE4pdGhyb3cgRXJyb3IobCgzNDkpKTthfHwwIT0oMTI0Jm9aKXx8YWgocixuLHQpfXJldHVybiB0fWZ1bmN0aW9uIGFoKGUsbix0KXtlLmZsYWdzfD0xNjM4NCxlPXtnZXRTbmFwc2hvdDpuLHZhbHVlOnR9LG51bGw9PT0obj1vWS51cGRhdGVRdWV1ZSk/KG49YWEoKSxvWS51cGRhdGVRdWV1ZT1uLG4uc3RvcmVzPVtlXSk6bnVsbD09PSh0PW4uc3RvcmVzKT9uLnN0b3Jlcz1bZV06dC5wdXNoKGUpfWZ1bmN0aW9uIGFnKGUsbix0LHIpe24udmFsdWU9dCxuLmdldFNuYXBzaG90PXIsYXYobikmJmFiKGUpfWZ1bmN0aW9uIGFtKGUsbix0KXtyZXR1cm4gdChmdW5jdGlvbigpe2F2KG4pJiZhYihlKX0pfWZ1bmN0aW9uIGF2KGUpe3ZhciBuPWUuZ2V0U25hcHNob3Q7ZT1lLnZhbHVlO3RyeXt2YXIgdD1uKCk7cmV0dXJuIXRPKGUsdCl9Y2F0Y2goZSl7cmV0dXJuITB9fWZ1bmN0aW9uIGFiKGUpe3ZhciBuPXQzKGUsMik7bnVsbCE9PW4mJnNvKG4sZSwyKX1mdW5jdGlvbiBheShlKXt2YXIgbj1hcigpO2lmKFwiZnVuY3Rpb25cIj09dHlwZW9mIGUpe3ZhciB0PWU7aWYoZT10KCksb0ope2VoKCEwKTt0cnl7dCgpfWZpbmFsbHl7ZWgoITEpfX19cmV0dXJuIG4ubWVtb2l6ZWRTdGF0ZT1uLmJhc2VTdGF0ZT1lLG4ucXVldWU9e3BlbmRpbmc6bnVsbCxsYW5lczowLGRpc3BhdGNoOm51bGwsbGFzdFJlbmRlcmVkUmVkdWNlcjphYyxsYXN0UmVuZGVyZWRTdGF0ZTplfSxufWZ1bmN0aW9uIGF4KGUsbix0LHIpe3JldHVybiBlLmJhc2VTdGF0ZT10LGFkKGUsb1gsXCJmdW5jdGlvblwiPT10eXBlb2Ygcj9yOmFjKX1mdW5jdGlvbiBhdyhlLG4sdCxyLG8pe2lmKGE5KGUpKXRocm93IEVycm9yKGwoNDg1KSk7aWYobnVsbCE9PShlPW4uYWN0aW9uKSl7dmFyIGE9e3BheWxvYWQ6byxhY3Rpb246ZSxuZXh0Om51bGwsaXNUcmFuc2l0aW9uOiEwLHN0YXR1czpcInBlbmRpbmdcIix2YWx1ZTpudWxsLHJlYXNvbjpudWxsLGxpc3RlbmVyczpbXSx0aGVuOmZ1bmN0aW9uKGUpe2EubGlzdGVuZXJzLnB1c2goZSl9fTtudWxsIT09TC5UP3QoITApOmEuaXNUcmFuc2l0aW9uPSExLHIoYSksbnVsbD09PSh0PW4ucGVuZGluZyk/KGEubmV4dD1uLnBlbmRpbmc9YSxhaihuLGEpKTooYS5uZXh0PXQubmV4dCxuLnBlbmRpbmc9dC5uZXh0PWEpfX1mdW5jdGlvbiBhaihlLG4pe3ZhciB0PW4uYWN0aW9uLHI9bi5wYXlsb2FkLG89ZS5zdGF0ZTtpZihuLmlzVHJhbnNpdGlvbil7dmFyIGE9TC5ULGk9e307TC5UPWk7dHJ5e3ZhciBsPXQobyxyKSxzPUwuUztudWxsIT09cyYmcyhpLGwpLGFrKGUsbixsKX1jYXRjaCh0KXthTyhlLG4sdCl9ZmluYWxseXtudWxsIT09YSYmbnVsbCE9PWkudHlwZXMmJihhLnR5cGVzPWkudHlwZXMpLEwuVD1hfX1lbHNlIHRyeXthPXQobyxyKSxhayhlLG4sYSl9Y2F0Y2godCl7YU8oZSxuLHQpfX1mdW5jdGlvbiBhayhlLG4sdCl7bnVsbCE9PXQmJlwib2JqZWN0XCI9PXR5cGVvZiB0JiZcImZ1bmN0aW9uXCI9PXR5cGVvZiB0LnRoZW4/dC50aGVuKGZ1bmN0aW9uKHQpe2FBKGUsbix0KX0sZnVuY3Rpb24odCl7cmV0dXJuIGFPKGUsbix0KX0pOmFBKGUsbix0KX1mdW5jdGlvbiBhQShlLG4sdCl7bi5zdGF0dXM9XCJmdWxmaWxsZWRcIixuLnZhbHVlPXQsYUMobiksZS5zdGF0ZT10LG51bGwhPT0obj1lLnBlbmRpbmcpJiYoKHQ9bi5uZXh0KT09PW4/ZS5wZW5kaW5nPW51bGw6KHQ9dC5uZXh0LG4ubmV4dD10LGFqKGUsdCkpKX1mdW5jdGlvbiBhTyhlLG4sdCl7dmFyIHI9ZS5wZW5kaW5nO2lmKGUucGVuZGluZz1udWxsLG51bGwhPT1yKXtyPXIubmV4dDtkbyBuLnN0YXR1cz1cInJlamVjdGVkXCIsbi5yZWFzb249dCxhQyhuKSxuPW4ubmV4dDt3aGlsZShuIT09cil9ZS5hY3Rpb249bnVsbH1mdW5jdGlvbiBhQyhlKXtlPWUubGlzdGVuZXJzO2Zvcih2YXIgbj0wO248ZS5sZW5ndGg7bisrKSgwLGVbbl0pKCl9ZnVuY3Rpb24gYVMoZSxuKXtyZXR1cm4gbn1mdW5jdGlvbiBhRShlLG4pe2lmKHJTKXt2YXIgdD1sTi5mb3JtU3RhdGU7aWYobnVsbCE9PXQpe2U6e3ZhciByPW9ZO2lmKHJTKXtpZihyQyl7bjp7Zm9yKHZhciBvPXJDLGE9cl87OCE9PW8ubm9kZVR5cGU7KWlmKCFhfHxudWxsPT09KG89Y18oby5uZXh0U2libGluZykpKXtvPW51bGw7YnJlYWsgbn1vPVwiRiFcIj09PShhPW8uZGF0YSl8fFwiRlwiPT09YT9vOm51bGx9aWYobyl7ckM9Y18oby5uZXh0U2libGluZykscj1cIkYhXCI9PT1vLmRhdGE7YnJlYWsgZX19cnoocil9cj0hMX1yJiYobj10WzBdKX19cmV0dXJuKHQ9YXIoKSkubWVtb2l6ZWRTdGF0ZT10LmJhc2VTdGF0ZT1uLHI9e3BlbmRpbmc6bnVsbCxsYW5lczowLGRpc3BhdGNoOm51bGwsbGFzdFJlbmRlcmVkUmVkdWNlcjphUyxsYXN0UmVuZGVyZWRTdGF0ZTpufSx0LnF1ZXVlPXIsdD1hNS5iaW5kKG51bGwsb1ksciksci5kaXNwYXRjaD10LHI9YXkoITEpLGE9YTYuYmluZChudWxsLG9ZLCExLHIucXVldWUpLHI9YXIoKSxvPXtzdGF0ZTpuLGRpc3BhdGNoOm51bGwsYWN0aW9uOmUscGVuZGluZzpudWxsfSxyLnF1ZXVlPW8sdD1hdy5iaW5kKG51bGwsb1ksbyxhLHQpLG8uZGlzcGF0Y2g9dCxyLm1lbW9pemVkU3RhdGU9ZSxbbix0LCExXX1mdW5jdGlvbiBhXyhlKXtyZXR1cm4gYVAoYW8oKSxvWCxlKX1mdW5jdGlvbiBhUChlLG4sdCl7aWYobj1hZChlLG4sYVMpWzBdLGU9YXUoYWMpWzBdLFwib2JqZWN0XCI9PXR5cGVvZiBuJiZudWxsIT09biYmXCJmdW5jdGlvblwiPT10eXBlb2Ygbi50aGVuKXRyeXt2YXIgcj1haShuKX1jYXRjaChlKXtpZihlPT09b3IpdGhyb3cgb2E7dGhyb3cgZX1lbHNlIHI9bjt2YXIgbz0obj1hbygpKS5xdWV1ZSxhPW8uZGlzcGF0Y2g7cmV0dXJuIHQhPT1uLm1lbW9pemVkU3RhdGUmJihvWS5mbGFnc3w9MjA0OCxhVCg5LHtkZXN0cm95OnZvaWQgMH0sYXouYmluZChudWxsLG8sdCksbnVsbCkpLFtyLGEsZV19ZnVuY3Rpb24gYXooZSxuKXtlLmFjdGlvbj1ufWZ1bmN0aW9uIGFMKGUpe3ZhciBuPWFvKCksdD1vWDtpZihudWxsIT09dClyZXR1cm4gYVAobix0LGUpO2FvKCksbj1uLm1lbW9pemVkU3RhdGU7dmFyIHI9KHQ9YW8oKSkucXVldWUuZGlzcGF0Y2g7cmV0dXJuIHQubWVtb2l6ZWRTdGF0ZT1lLFtuLHIsITFdfWZ1bmN0aW9uIGFUKGUsbix0LHIpe3JldHVybiBlPXt0YWc6ZSxjcmVhdGU6dCxkZXBzOnIsaW5zdDpuLG5leHQ6bnVsbH0sbnVsbD09PShuPW9ZLnVwZGF0ZVF1ZXVlKSYmKG49YWEoKSxvWS51cGRhdGVRdWV1ZT1uKSxudWxsPT09KHQ9bi5sYXN0RWZmZWN0KT9uLmxhc3RFZmZlY3Q9ZS5uZXh0PWU6KHI9dC5uZXh0LHQubmV4dD1lLGUubmV4dD1yLG4ubGFzdEVmZmVjdD1lKSxlfWZ1bmN0aW9uIGFSKCl7cmV0dXJuIGFvKCkubWVtb2l6ZWRTdGF0ZX1mdW5jdGlvbiBhTihlLG4sdCxyKXt2YXIgbz1hcigpO29ZLmZsYWdzfD1lLG8ubWVtb2l6ZWRTdGF0ZT1hVCgxfG4se2Rlc3Ryb3k6dm9pZCAwfSx0LHZvaWQgMD09PXI/bnVsbDpyKX1mdW5jdGlvbiBhRChlLG4sdCxyKXt2YXIgbz1hbygpO3I9dm9pZCAwPT09cj9udWxsOnI7dmFyIGE9by5tZW1vaXplZFN0YXRlLmluc3Q7bnVsbCE9PW9YJiZudWxsIT09ciYmbzMocixvWC5tZW1vaXplZFN0YXRlLmRlcHMpP28ubWVtb2l6ZWRTdGF0ZT1hVChuLGEsdCxyKToob1kuZmxhZ3N8PWUsby5tZW1vaXplZFN0YXRlPWFUKDF8bixhLHQscikpfWZ1bmN0aW9uIGFCKGUsbil7YU4oODM5MDY1Niw4LGUsbil9ZnVuY3Rpb24gYU0oZSxuKXthRCgyMDQ4LDgsZSxuKX1mdW5jdGlvbiBhSShlLG4pe3JldHVybiBhRCg0LDIsZSxuKX1mdW5jdGlvbiBhSChlLG4pe3JldHVybiBhRCg0LDQsZSxuKX1mdW5jdGlvbiBhRihlLG4pe2lmKFwiZnVuY3Rpb25cIj09dHlwZW9mIG4pe3ZhciB0PW4oZT1lKCkpO3JldHVybiBmdW5jdGlvbigpe1wiZnVuY3Rpb25cIj09dHlwZW9mIHQ/dCgpOm4obnVsbCl9fWlmKG51bGwhPW4pcmV0dXJuIG4uY3VycmVudD1lPWUoKSxmdW5jdGlvbigpe24uY3VycmVudD1udWxsfX1mdW5jdGlvbiBhVShlLG4sdCl7dD1udWxsIT10P3QuY29uY2F0KFtlXSk6bnVsbCxhRCg0LDQsYUYuYmluZChudWxsLG4sZSksdCl9ZnVuY3Rpb24gYVYoKXt9ZnVuY3Rpb24gYXEoZSxuKXt2YXIgdD1hbygpO249dm9pZCAwPT09bj9udWxsOm47dmFyIHI9dC5tZW1vaXplZFN0YXRlO3JldHVybiBudWxsIT09biYmbzMobixyWzFdKT9yWzBdOih0Lm1lbW9pemVkU3RhdGU9W2Usbl0sZSl9ZnVuY3Rpb24gYVcoZSxuKXt2YXIgdD1hbygpO249dm9pZCAwPT09bj9udWxsOm47dmFyIHI9dC5tZW1vaXplZFN0YXRlO2lmKG51bGwhPT1uJiZvMyhuLHJbMV0pKXJldHVybiByWzBdO2lmKHI9ZSgpLG9KKXtlaCghMCk7dHJ5e2UoKX1maW5hbGx5e2VoKCExKX19cmV0dXJuIHQubWVtb2l6ZWRTdGF0ZT1bcixuXSxyfWZ1bmN0aW9uIGEkKGUsbix0KXtyZXR1cm4gdm9pZCAwPT09dHx8MCE9KDB4NDAwMDAwMDAmb1opP2UubWVtb2l6ZWRTdGF0ZT1uOihlLm1lbW9pemVkU3RhdGU9dCxlPXNyKCksb1kubGFuZXN8PWUsbFd8PWUsdCl9ZnVuY3Rpb24gYVooZSxuLHQscil7cmV0dXJuIHRPKHQsbik/dDpudWxsIT09b1QuY3VycmVudD8odE8oZT1hJChlLHQsciksbil8fChpeD0hMCksZSk6MD09KDQyJm9aKXx8MCE9KDB4NDAwMDAwMDAmb1opPyhpeD0hMCxlLm1lbW9pemVkU3RhdGU9dCk6KGU9c3IoKSxvWS5sYW5lc3w9ZSxsV3w9ZSxuKX1mdW5jdGlvbiBhWShlLG4sdCxyLG8pe3ZhciBhPVQucDtULnA9MCE9PWEmJjg+YT9hOjg7dmFyIGk9TC5ULGw9e307TC5UPWwsYTYoZSwhMSxuLHQpO3RyeXt2YXIgcz1vKCksYz1MLlM7aWYobnVsbCE9PWMmJmMobCxzKSxudWxsIT09cyYmXCJvYmplY3RcIj09dHlwZW9mIHMmJlwiZnVuY3Rpb25cIj09dHlwZW9mIHMudGhlbil7dmFyIHUsZCxmPSh1PVtdLGQ9e3N0YXR1czpcInBlbmRpbmdcIix2YWx1ZTpudWxsLHJlYXNvbjpudWxsLHRoZW46ZnVuY3Rpb24oZSl7dS5wdXNoKGUpfX0scy50aGVuKGZ1bmN0aW9uKCl7ZC5zdGF0dXM9XCJmdWxmaWxsZWRcIixkLnZhbHVlPXI7Zm9yKHZhciBlPTA7ZTx1Lmxlbmd0aDtlKyspKDAsdVtlXSkocil9LGZ1bmN0aW9uKGUpe2ZvcihkLnN0YXR1cz1cInJlamVjdGVkXCIsZC5yZWFzb249ZSxlPTA7ZTx1Lmxlbmd0aDtlKyspKDAsdVtlXSkodm9pZCAwKX0pLGQpO2EzKGUsbixmLHN0KGUpKX1lbHNlIGEzKGUsbixyLHN0KGUpKX1jYXRjaCh0KXthMyhlLG4se3RoZW46ZnVuY3Rpb24oKXt9LHN0YXR1czpcInJlamVjdGVkXCIscmVhc29uOnR9LHN0KCkpfWZpbmFsbHl7VC5wPWEsbnVsbCE9PWkmJm51bGwhPT1sLnR5cGVzJiYoaS50eXBlcz1sLnR5cGVzKSxMLlQ9aX19ZnVuY3Rpb24gYVgoKXt9ZnVuY3Rpb24gYUsoZSxuLHQscil7aWYoNSE9PWUudGFnKXRocm93IEVycm9yKGwoNDc2KSk7dmFyIG89YVEoZSkucXVldWU7YVkoZSxvLG4sUixudWxsPT09dD9hWDpmdW5jdGlvbigpe3JldHVybiBhRyhlKSx0KHIpfSl9ZnVuY3Rpb24gYVEoZSl7dmFyIG49ZS5tZW1vaXplZFN0YXRlO2lmKG51bGwhPT1uKXJldHVybiBuO3ZhciB0PXt9O3JldHVybihuPXttZW1vaXplZFN0YXRlOlIsYmFzZVN0YXRlOlIsYmFzZVF1ZXVlOm51bGwscXVldWU6e3BlbmRpbmc6bnVsbCxsYW5lczowLGRpc3BhdGNoOm51bGwsbGFzdFJlbmRlcmVkUmVkdWNlcjphYyxsYXN0UmVuZGVyZWRTdGF0ZTpSfSxuZXh0Om51bGx9KS5uZXh0PXttZW1vaXplZFN0YXRlOnQsYmFzZVN0YXRlOnQsYmFzZVF1ZXVlOm51bGwscXVldWU6e3BlbmRpbmc6bnVsbCxsYW5lczowLGRpc3BhdGNoOm51bGwsbGFzdFJlbmRlcmVkUmVkdWNlcjphYyxsYXN0UmVuZGVyZWRTdGF0ZTp0fSxuZXh0Om51bGx9LGUubWVtb2l6ZWRTdGF0ZT1uLG51bGwhPT0oZT1lLmFsdGVybmF0ZSkmJihlLm1lbW9pemVkU3RhdGU9biksbn1mdW5jdGlvbiBhRyhlKXt2YXIgbj1hUShlKTtudWxsPT09bi5uZXh0JiYobj1lLmFsdGVybmF0ZS5tZW1vaXplZFN0YXRlKSxhMyhlLG4ubmV4dC5xdWV1ZSx7fSxzdCgpKX1mdW5jdGlvbiBhSigpe3JldHVybiByWShjNil9ZnVuY3Rpb24gYTAoKXtyZXR1cm4gYW8oKS5tZW1vaXplZFN0YXRlfWZ1bmN0aW9uIGExKCl7cmV0dXJuIGFvKCkubWVtb2l6ZWRTdGF0ZX1mdW5jdGlvbiBhMihlKXtmb3IodmFyIG49ZS5yZXR1cm47bnVsbCE9PW47KXtzd2l0Y2gobi50YWcpe2Nhc2UgMjQ6Y2FzZSAzOnZhciB0PXN0KCkscj1vTyhuLGU9b0EodCksdCk7bnVsbCE9PXImJihzbyhyLG4sdCksb0MocixuLHQpKSxuPXtjYWNoZTpyMSgpfSxlLnBheWxvYWQ9bjtyZXR1cm59bj1uLnJldHVybn19ZnVuY3Rpb24gYTQoZSxuLHQpe3ZhciByPXN0KCk7dD17bGFuZTpyLHJldmVydExhbmU6MCxnZXN0dXJlOm51bGwsYWN0aW9uOnQsaGFzRWFnZXJTdGF0ZTohMSxlYWdlclN0YXRlOm51bGwsbmV4dDpudWxsfSxhOShlKT9hOChuLHQpOm51bGwhPT0odD10NShlLG4sdCxyKSkmJihzbyh0LGUsciksYTcodCxuLHIpKX1mdW5jdGlvbiBhNShlLG4sdCl7YTMoZSxuLHQsc3QoKSl9ZnVuY3Rpb24gYTMoZSxuLHQscil7dmFyIG89e2xhbmU6cixyZXZlcnRMYW5lOjAsZ2VzdHVyZTpudWxsLGFjdGlvbjp0LGhhc0VhZ2VyU3RhdGU6ITEsZWFnZXJTdGF0ZTpudWxsLG5leHQ6bnVsbH07aWYoYTkoZSkpYTgobixvKTtlbHNle3ZhciBhPWUuYWx0ZXJuYXRlO2lmKDA9PT1lLmxhbmVzJiYobnVsbD09PWF8fDA9PT1hLmxhbmVzKSYmbnVsbCE9PShhPW4ubGFzdFJlbmRlcmVkUmVkdWNlcikpdHJ5e3ZhciBpPW4ubGFzdFJlbmRlcmVkU3RhdGUsbD1hKGksdCk7aWYoby5oYXNFYWdlclN0YXRlPSEwLG8uZWFnZXJTdGF0ZT1sLHRPKGwsaSkpcmV0dXJuIHQ0KGUsbixvLDApLG51bGw9PT1sTiYmdDIoKSwhMX1jYXRjaChlKXt9ZmluYWxseXt9aWYobnVsbCE9PSh0PXQ1KGUsbixvLHIpKSlyZXR1cm4gc28odCxlLHIpLGE3KHQsbixyKSwhMH1yZXR1cm4hMX1mdW5jdGlvbiBhNihlLG4sdCxyKXtpZihyPXtsYW5lOjIscmV2ZXJ0TGFuZTpzWCgpLGdlc3R1cmU6bnVsbCxhY3Rpb246cixoYXNFYWdlclN0YXRlOiExLGVhZ2VyU3RhdGU6bnVsbCxuZXh0Om51bGx9LGE5KGUpKXtpZihuKXRocm93IEVycm9yKGwoNDc5KSl9ZWxzZSBudWxsIT09KG49dDUoZSx0LHIsMikpJiZzbyhuLGUsMil9ZnVuY3Rpb24gYTkoZSl7dmFyIG49ZS5hbHRlcm5hdGU7cmV0dXJuIGU9PT1vWXx8bnVsbCE9PW4mJm49PT1vWX1mdW5jdGlvbiBhOChlLG4pe29HPW9RPSEwO3ZhciB0PWUucGVuZGluZztudWxsPT09dD9uLm5leHQ9bjoobi5uZXh0PXQubmV4dCx0Lm5leHQ9biksZS5wZW5kaW5nPW59ZnVuY3Rpb24gYTcoZSxuLHQpe2lmKDAhPSg0MTk0MDQ4JnQpKXt2YXIgcj1uLmxhbmVzO3ImPWUucGVuZGluZ0xhbmVzLG4ubGFuZXM9dHw9cixlRShlLHQpfX12YXIgaWU9e3JlYWRDb250ZXh0OnJZLHVzZTphbCx1c2VDYWxsYmFjazpvNSx1c2VDb250ZXh0Om81LHVzZUVmZmVjdDpvNSx1c2VJbXBlcmF0aXZlSGFuZGxlOm81LHVzZUxheW91dEVmZmVjdDpvNSx1c2VJbnNlcnRpb25FZmZlY3Q6bzUsdXNlTWVtbzpvNSx1c2VSZWR1Y2VyOm81LHVzZVJlZjpvNSx1c2VTdGF0ZTpvNSx1c2VEZWJ1Z1ZhbHVlOm81LHVzZURlZmVycmVkVmFsdWU6bzUsdXNlVHJhbnNpdGlvbjpvNSx1c2VTeW5jRXh0ZXJuYWxTdG9yZTpvNSx1c2VJZDpvNSx1c2VIb3N0VHJhbnNpdGlvblN0YXR1czpvNSx1c2VGb3JtU3RhdGU6bzUsdXNlQWN0aW9uU3RhdGU6bzUsdXNlT3B0aW1pc3RpYzpvNSx1c2VNZW1vQ2FjaGU6bzUsdXNlQ2FjaGVSZWZyZXNoOm81fSxpdD17cmVhZENvbnRleHQ6clksdXNlOmFsLHVzZUNhbGxiYWNrOmZ1bmN0aW9uKGUsbil7cmV0dXJuIGFyKCkubWVtb2l6ZWRTdGF0ZT1bZSx2b2lkIDA9PT1uP251bGw6bl0sZX0sdXNlQ29udGV4dDpyWSx1c2VFZmZlY3Q6YUIsdXNlSW1wZXJhdGl2ZUhhbmRsZTpmdW5jdGlvbihlLG4sdCl7dD1udWxsIT10P3QuY29uY2F0KFtlXSk6bnVsbCxhTig0MTk0MzA4LDQsYUYuYmluZChudWxsLG4sZSksdCl9LHVzZUxheW91dEVmZmVjdDpmdW5jdGlvbihlLG4pe3JldHVybiBhTig0MTk0MzA4LDQsZSxuKX0sdXNlSW5zZXJ0aW9uRWZmZWN0OmZ1bmN0aW9uKGUsbil7YU4oNCwyLGUsbil9LHVzZU1lbW86ZnVuY3Rpb24oZSxuKXt2YXIgdD1hcigpO249dm9pZCAwPT09bj9udWxsOm47dmFyIHI9ZSgpO2lmKG9KKXtlaCghMCk7dHJ5e2UoKX1maW5hbGx5e2VoKCExKX19cmV0dXJuIHQubWVtb2l6ZWRTdGF0ZT1bcixuXSxyfSx1c2VSZWR1Y2VyOmZ1bmN0aW9uKGUsbix0KXt2YXIgcj1hcigpO2lmKHZvaWQgMCE9PXQpe3ZhciBvPXQobik7aWYob0ope2VoKCEwKTt0cnl7dChuKX1maW5hbGx5e2VoKCExKX19fWVsc2Ugbz1uO3JldHVybiByLm1lbW9pemVkU3RhdGU9ci5iYXNlU3RhdGU9byxyLnF1ZXVlPWU9e3BlbmRpbmc6bnVsbCxsYW5lczowLGRpc3BhdGNoOm51bGwsbGFzdFJlbmRlcmVkUmVkdWNlcjplLGxhc3RSZW5kZXJlZFN0YXRlOm99LGU9ZS5kaXNwYXRjaD1hNC5iaW5kKG51bGwsb1ksZSksW3IubWVtb2l6ZWRTdGF0ZSxlXX0sdXNlUmVmOmZ1bmN0aW9uKGUpe3JldHVybiBhcigpLm1lbW9pemVkU3RhdGU9ZT17Y3VycmVudDplfX0sdXNlU3RhdGU6ZnVuY3Rpb24oZSl7dmFyIG49KGU9YXkoZSkpLnF1ZXVlLHQ9YTUuYmluZChudWxsLG9ZLG4pO3JldHVybiBuLmRpc3BhdGNoPXQsW2UubWVtb2l6ZWRTdGF0ZSx0XX0sdXNlRGVidWdWYWx1ZTphVix1c2VEZWZlcnJlZFZhbHVlOmZ1bmN0aW9uKGUsbil7cmV0dXJuIGEkKGFyKCksZSxuKX0sdXNlVHJhbnNpdGlvbjpmdW5jdGlvbigpe3ZhciBlPWF5KCExKTtyZXR1cm4gZT1hWS5iaW5kKG51bGwsb1ksZS5xdWV1ZSwhMCwhMSksYXIoKS5tZW1vaXplZFN0YXRlPWUsWyExLGVdfSx1c2VTeW5jRXh0ZXJuYWxTdG9yZTpmdW5jdGlvbihlLG4sdCl7dmFyIHI9b1ksbz1hcigpO2lmKHJTKXtpZih2b2lkIDA9PT10KXRocm93IEVycm9yKGwoNDA3KSk7dD10KCl9ZWxzZXtpZih0PW4oKSxudWxsPT09bE4pdGhyb3cgRXJyb3IobCgzNDkpKTswIT0oMTI0JmxCKXx8YWgocixuLHQpfW8ubWVtb2l6ZWRTdGF0ZT10O3ZhciBhPXt2YWx1ZTp0LGdldFNuYXBzaG90Om59O3JldHVybiBvLnF1ZXVlPWEsYUIoYW0uYmluZChudWxsLHIsYSxlKSxbZV0pLHIuZmxhZ3N8PTIwNDgsYVQoOSx7ZGVzdHJveTp2b2lkIDB9LGFnLmJpbmQobnVsbCxyLGEsdCxuKSxudWxsKSx0fSx1c2VJZDpmdW5jdGlvbigpe3ZhciBlPWFyKCksbj1sTi5pZGVudGlmaWVyUHJlZml4O2lmKHJTKXt2YXIgdD1yeSxyPXJiO249XCJfXCIrbitcIlJfXCIrKHQ9KHImfigxPDwzMi1lZyhyKS0xKSkudG9TdHJpbmcoMzIpK3QpLDA8KHQ9bzArKykmJihuKz1cIkhcIit0LnRvU3RyaW5nKDMyKSksbis9XCJfXCJ9ZWxzZSBuPVwiX1wiK24rXCJyX1wiKyh0PW80KyspLnRvU3RyaW5nKDMyKStcIl9cIjtyZXR1cm4gZS5tZW1vaXplZFN0YXRlPW59LHVzZUhvc3RUcmFuc2l0aW9uU3RhdHVzOmFKLHVzZUZvcm1TdGF0ZTphRSx1c2VBY3Rpb25TdGF0ZTphRSx1c2VPcHRpbWlzdGljOmZ1bmN0aW9uKGUpe3ZhciBuPWFyKCk7bi5tZW1vaXplZFN0YXRlPW4uYmFzZVN0YXRlPWU7dmFyIHQ9e3BlbmRpbmc6bnVsbCxsYW5lczowLGRpc3BhdGNoOm51bGwsbGFzdFJlbmRlcmVkUmVkdWNlcjpudWxsLGxhc3RSZW5kZXJlZFN0YXRlOm51bGx9O3JldHVybiBuLnF1ZXVlPXQsbj1hNi5iaW5kKG51bGwsb1ksITAsdCksdC5kaXNwYXRjaD1uLFtlLG5dfSx1c2VNZW1vQ2FjaGU6YXMsdXNlQ2FjaGVSZWZyZXNoOmZ1bmN0aW9uKCl7cmV0dXJuIGFyKCkubWVtb2l6ZWRTdGF0ZT1hMi5iaW5kKG51bGwsb1kpfX0saXI9e3JlYWRDb250ZXh0OnJZLHVzZTphbCx1c2VDYWxsYmFjazphcSx1c2VDb250ZXh0OnJZLHVzZUVmZmVjdDphTSx1c2VJbXBlcmF0aXZlSGFuZGxlOmFVLHVzZUluc2VydGlvbkVmZmVjdDphSSx1c2VMYXlvdXRFZmZlY3Q6YUgsdXNlTWVtbzphVyx1c2VSZWR1Y2VyOmF1LHVzZVJlZjphUix1c2VTdGF0ZTpmdW5jdGlvbigpe3JldHVybiBhdShhYyl9LHVzZURlYnVnVmFsdWU6YVYsdXNlRGVmZXJyZWRWYWx1ZTpmdW5jdGlvbihlLG4pe3JldHVybiBhWihhbygpLG9YLm1lbW9pemVkU3RhdGUsZSxuKX0sdXNlVHJhbnNpdGlvbjpmdW5jdGlvbigpe3ZhciBlPWF1KGFjKVswXSxuPWFvKCkubWVtb2l6ZWRTdGF0ZTtyZXR1cm5bXCJib29sZWFuXCI9PXR5cGVvZiBlP2U6YWkoZSksbl19LHVzZVN5bmNFeHRlcm5hbFN0b3JlOmFwLHVzZUlkOmEwLHVzZUhvc3RUcmFuc2l0aW9uU3RhdHVzOmFKLHVzZUZvcm1TdGF0ZTphXyx1c2VBY3Rpb25TdGF0ZTphXyx1c2VPcHRpbWlzdGljOmZ1bmN0aW9uKGUsbil7cmV0dXJuIGF4KGFvKCksb1gsZSxuKX0sdXNlTWVtb0NhY2hlOmFzLHVzZUNhY2hlUmVmcmVzaDphMX0saW89e3JlYWRDb250ZXh0OnJZLHVzZTphbCx1c2VDYWxsYmFjazphcSx1c2VDb250ZXh0OnJZLHVzZUVmZmVjdDphTSx1c2VJbXBlcmF0aXZlSGFuZGxlOmFVLHVzZUluc2VydGlvbkVmZmVjdDphSSx1c2VMYXlvdXRFZmZlY3Q6YUgsdXNlTWVtbzphVyx1c2VSZWR1Y2VyOmFmLHVzZVJlZjphUix1c2VTdGF0ZTpmdW5jdGlvbigpe3JldHVybiBhZihhYyl9LHVzZURlYnVnVmFsdWU6YVYsdXNlRGVmZXJyZWRWYWx1ZTpmdW5jdGlvbihlLG4pe3ZhciB0PWFvKCk7cmV0dXJuIG51bGw9PT1vWD9hJCh0LGUsbik6YVoodCxvWC5tZW1vaXplZFN0YXRlLGUsbil9LHVzZVRyYW5zaXRpb246ZnVuY3Rpb24oKXt2YXIgZT1hZihhYylbMF0sbj1hbygpLm1lbW9pemVkU3RhdGU7cmV0dXJuW1wiYm9vbGVhblwiPT10eXBlb2YgZT9lOmFpKGUpLG5dfSx1c2VTeW5jRXh0ZXJuYWxTdG9yZTphcCx1c2VJZDphMCx1c2VIb3N0VHJhbnNpdGlvblN0YXR1czphSix1c2VGb3JtU3RhdGU6YUwsdXNlQWN0aW9uU3RhdGU6YUwsdXNlT3B0aW1pc3RpYzpmdW5jdGlvbihlLG4pe3ZhciB0PWFvKCk7cmV0dXJuIG51bGwhPT1vWD9heCh0LG9YLGUsbik6KHQuYmFzZVN0YXRlPWUsW2UsdC5xdWV1ZS5kaXNwYXRjaF0pfSx1c2VNZW1vQ2FjaGU6YXMsdXNlQ2FjaGVSZWZyZXNoOmExfTtmdW5jdGlvbiBpYShlLG4sdCxyKXt0PW51bGw9PSh0PXQocixuPWUubWVtb2l6ZWRTdGF0ZSkpP246Zih7fSxuLHQpLGUubWVtb2l6ZWRTdGF0ZT10LDA9PT1lLmxhbmVzJiYoZS51cGRhdGVRdWV1ZS5iYXNlU3RhdGU9dCl9dmFyIGlpPXtlbnF1ZXVlU2V0U3RhdGU6ZnVuY3Rpb24oZSxuLHQpe2U9ZS5fcmVhY3RJbnRlcm5hbHM7dmFyIHI9c3QoKSxvPW9BKHIpO28ucGF5bG9hZD1uLG51bGwhPXQmJihvLmNhbGxiYWNrPXQpLG51bGwhPT0obj1vTyhlLG8scikpJiYoc28obixlLHIpLG9DKG4sZSxyKSl9LGVucXVldWVSZXBsYWNlU3RhdGU6ZnVuY3Rpb24oZSxuLHQpe2U9ZS5fcmVhY3RJbnRlcm5hbHM7dmFyIHI9c3QoKSxvPW9BKHIpO28udGFnPTEsby5wYXlsb2FkPW4sbnVsbCE9dCYmKG8uY2FsbGJhY2s9dCksbnVsbCE9PShuPW9PKGUsbyxyKSkmJihzbyhuLGUsciksb0MobixlLHIpKX0sZW5xdWV1ZUZvcmNlVXBkYXRlOmZ1bmN0aW9uKGUsbil7ZT1lLl9yZWFjdEludGVybmFsczt2YXIgdD1zdCgpLHI9b0EodCk7ci50YWc9MixudWxsIT1uJiYoci5jYWxsYmFjaz1uKSxudWxsIT09KG49b08oZSxyLHQpKSYmKHNvKG4sZSx0KSxvQyhuLGUsdCkpfX07ZnVuY3Rpb24gaWwoZSxuLHQscixvLGEsaSl7cmV0dXJuXCJmdW5jdGlvblwiPT10eXBlb2YoZT1lLnN0YXRlTm9kZSkuc2hvdWxkQ29tcG9uZW50VXBkYXRlP2Uuc2hvdWxkQ29tcG9uZW50VXBkYXRlKHIsYSxpKTohbi5wcm90b3R5cGV8fCFuLnByb3RvdHlwZS5pc1B1cmVSZWFjdENvbXBvbmVudHx8IXRDKHQscil8fCF0QyhvLGEpfWZ1bmN0aW9uIGlzKGUsbix0LHIpe2U9bi5zdGF0ZSxcImZ1bmN0aW9uXCI9PXR5cGVvZiBuLmNvbXBvbmVudFdpbGxSZWNlaXZlUHJvcHMmJm4uY29tcG9uZW50V2lsbFJlY2VpdmVQcm9wcyh0LHIpLFwiZnVuY3Rpb25cIj09dHlwZW9mIG4uVU5TQUZFX2NvbXBvbmVudFdpbGxSZWNlaXZlUHJvcHMmJm4uVU5TQUZFX2NvbXBvbmVudFdpbGxSZWNlaXZlUHJvcHModCxyKSxuLnN0YXRlIT09ZSYmaWkuZW5xdWV1ZVJlcGxhY2VTdGF0ZShuLG4uc3RhdGUsbnVsbCl9ZnVuY3Rpb24gaWMoZSxuKXt2YXIgdD1uO2lmKFwicmVmXCJpbiBuKWZvcih2YXIgciBpbiB0PXt9LG4pXCJyZWZcIiE9PXImJih0W3JdPW5bcl0pO2lmKGU9ZS5kZWZhdWx0UHJvcHMpZm9yKHZhciBvIGluIHQ9PT1uJiYodD1mKHt9LHQpKSxlKXZvaWQgMD09PXRbb10mJih0W29dPWVbb10pO3JldHVybiB0fWZ1bmN0aW9uIGl1KGUpe3RHKGUpfWZ1bmN0aW9uIGlkKGUpe2NvbnNvbGUuZXJyb3IoZSl9ZnVuY3Rpb24gaXAoZSl7dEcoZSl9ZnVuY3Rpb24gaWgoZSxuKXt0cnl7KDAsZS5vblVuY2F1Z2h0RXJyb3IpKG4udmFsdWUse2NvbXBvbmVudFN0YWNrOm4uc3RhY2t9KX1jYXRjaChlKXtzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7dGhyb3cgZX0pfX1mdW5jdGlvbiBpZyhlLG4sdCl7dHJ5eygwLGUub25DYXVnaHRFcnJvcikodC52YWx1ZSx7Y29tcG9uZW50U3RhY2s6dC5zdGFjayxlcnJvckJvdW5kYXJ5OjE9PT1uLnRhZz9uLnN0YXRlTm9kZTpudWxsfSl9Y2F0Y2goZSl7c2V0VGltZW91dChmdW5jdGlvbigpe3Rocm93IGV9KX19ZnVuY3Rpb24gaW0oZSxuLHQpe3JldHVybih0PW9BKHQpKS50YWc9Myx0LnBheWxvYWQ9e2VsZW1lbnQ6bnVsbH0sdC5jYWxsYmFjaz1mdW5jdGlvbigpe2loKGUsbil9LHR9ZnVuY3Rpb24gaXYoZSl7cmV0dXJuKGU9b0EoZSkpLnRhZz0zLGV9ZnVuY3Rpb24gaWIoZSxuLHQscil7dmFyIG89dC50eXBlLmdldERlcml2ZWRTdGF0ZUZyb21FcnJvcjtpZihcImZ1bmN0aW9uXCI9PXR5cGVvZiBvKXt2YXIgYT1yLnZhbHVlO2UucGF5bG9hZD1mdW5jdGlvbigpe3JldHVybiBvKGEpfSxlLmNhbGxiYWNrPWZ1bmN0aW9uKCl7aWcobix0LHIpfX12YXIgaT10LnN0YXRlTm9kZTtudWxsIT09aSYmXCJmdW5jdGlvblwiPT10eXBlb2YgaS5jb21wb25lbnREaWRDYXRjaCYmKGUuY2FsbGJhY2s9ZnVuY3Rpb24oKXtpZyhuLHQsciksXCJmdW5jdGlvblwiIT10eXBlb2YgbyYmKG51bGw9PT1sMj9sMj1uZXcgU2V0KFt0aGlzXSk6bDIuYWRkKHRoaXMpKTt2YXIgZT1yLnN0YWNrO3RoaXMuY29tcG9uZW50RGlkQ2F0Y2goci52YWx1ZSx7Y29tcG9uZW50U3RhY2s6bnVsbCE9PWU/ZTpcIlwifSl9KX12YXIgaXk9RXJyb3IobCg0NjEpKSxpeD0hMTtmdW5jdGlvbiBpdyhlLG4sdCxyKXtuLmNoaWxkPW51bGw9PT1lP294KG4sbnVsbCx0LHIpOm95KG4sZS5jaGlsZCx0LHIpfWZ1bmN0aW9uIGlqKGUsbix0LHIsbyl7dD10LnJlbmRlcjt2YXIgYT1uLnJlZjtpZihcInJlZlwiaW4gcil7dmFyIGk9e307Zm9yKHZhciBsIGluIHIpXCJyZWZcIiE9PWwmJihpW2xdPXJbbF0pfWVsc2UgaT1yO3JldHVybihyWihuKSxyPW82KGUsbix0LGksYSxvKSxsPWFlKCksbnVsbD09PWV8fGl4KT8oclMmJmwmJnJqKG4pLG4uZmxhZ3N8PTEsaXcoZSxuLHIsbyksbi5jaGlsZCk6KGFuKGUsbixvKSxpcShlLG4sbykpfWZ1bmN0aW9uIGlrKGUsbix0LHIsbyl7aWYobnVsbD09PWUpe3ZhciBhPXQudHlwZTtyZXR1cm5cImZ1bmN0aW9uXCIhPXR5cGVvZiBhfHxybihhKXx8dm9pZCAwIT09YS5kZWZhdWx0UHJvcHN8fG51bGwhPT10LmNvbXBhcmU/KChlPXJvKHQudHlwZSxudWxsLHIsbixuLm1vZGUsbykpLnJlZj1uLnJlZixlLnJldHVybj1uLG4uY2hpbGQ9ZSk6KG4udGFnPTE1LG4udHlwZT1hLGlBKGUsbixhLHIsbykpfWlmKGE9ZS5jaGlsZCwhaVcoZSxvKSl7dmFyIGk9YS5tZW1vaXplZFByb3BzO2lmKCh0PW51bGwhPT0odD10LmNvbXBhcmUpP3Q6dEMpKGkscikmJmUucmVmPT09bi5yZWYpcmV0dXJuIGlxKGUsbixvKX1yZXR1cm4gbi5mbGFnc3w9MSwoZT1ydChhLHIpKS5yZWY9bi5yZWYsZS5yZXR1cm49bixuLmNoaWxkPWV9ZnVuY3Rpb24gaUEoZSxuLHQscixvKXtpZihudWxsIT09ZSl7dmFyIGE9ZS5tZW1vaXplZFByb3BzO2lmKHRDKGEscikmJmUucmVmPT09bi5yZWYpaWYoaXg9ITEsbi5wZW5kaW5nUHJvcHM9cj1hLCFpVyhlLG8pKXJldHVybiBuLmxhbmVzPWUubGFuZXMsaXEoZSxuLG8pO2Vsc2UgMCE9KDEzMTA3MiZlLmZsYWdzKSYmKGl4PSEwKX1yZXR1cm4gaVAoZSxuLHQscixvKX1mdW5jdGlvbiBpTyhlLG4sdCxyKXt2YXIgbz1yLmNoaWxkcmVuLGE9bnVsbCE9PWU/ZS5tZW1vaXplZFN0YXRlOm51bGw7aWYoXCJoaWRkZW5cIj09PXIubW9kZSl7aWYoMCE9KDEyOCZuLmZsYWdzKSl7aWYocj1udWxsIT09YT9hLmJhc2VMYW5lc3x0OnQsbnVsbCE9PWUpe2ZvcihhPTAsbz1uLmNoaWxkPWUuY2hpbGQ7bnVsbCE9PW87KWE9YXxvLmxhbmVzfG8uY2hpbGRMYW5lcyxvPW8uc2libGluZztuLmNoaWxkTGFuZXM9YSZ+cn1lbHNlIG4uY2hpbGRMYW5lcz0wLG4uY2hpbGQ9bnVsbDtyZXR1cm4gaUMoZSxuLHIsdCl9aWYoMD09KDB4MjAwMDAwMDAmdCkpcmV0dXJuIG4ubGFuZXM9bi5jaGlsZExhbmVzPTB4MjAwMDAwMDAsaUMoZSxuLG51bGwhPT1hP2EuYmFzZUxhbmVzfHQ6dCx0KTtuLm1lbW9pemVkU3RhdGU9e2Jhc2VMYW5lczowLGNhY2hlUG9vbDpudWxsfSxudWxsIT09ZSYmb24obixudWxsIT09YT9hLmNhY2hlUG9vbDpudWxsKSxudWxsIT09YT9vTihuLGEpOm9EKCksb1Uobil9ZWxzZSBudWxsIT09YT8ob24obixhLmNhY2hlUG9vbCksb04obixhKSxvVihuKSxuLm1lbW9pemVkU3RhdGU9bnVsbCk6KG51bGwhPT1lJiZvbihuLG51bGwpLG9EKCksb1YobikpO3JldHVybiBpdyhlLG4sbyx0KSxuLmNoaWxkfWZ1bmN0aW9uIGlDKGUsbix0LHIpe3ZhciBvPW9lKCk7cmV0dXJuIG4ubWVtb2l6ZWRTdGF0ZT17YmFzZUxhbmVzOnQsY2FjaGVQb29sOm89bnVsbD09PW8/bnVsbDp7cGFyZW50OnIwLl9jdXJyZW50VmFsdWUscG9vbDpvfX0sbnVsbCE9PWUmJm9uKG4sbnVsbCksb0QoKSxvVShuKSxudWxsIT09ZSYmclcoZSxuLHIsITApLG51bGx9ZnVuY3Rpb24gaVMoZSxuKXtyZXR1cm4obj1pSSh7bW9kZTpuLm1vZGUsY2hpbGRyZW46bi5jaGlsZHJlbn0sZS5tb2RlKSkucmVmPWUucmVmLGUuY2hpbGQ9bixuLnJldHVybj1lLG59ZnVuY3Rpb24gaUUoZSxuLHQpe3JldHVybiBveShuLGUuY2hpbGQsbnVsbCx0KSxlPWlTKG4sbi5wZW5kaW5nUHJvcHMpLGUuZmxhZ3N8PTIsb3Eobiksbi5tZW1vaXplZFN0YXRlPW51bGwsZX1mdW5jdGlvbiBpXyhlLG4pe3ZhciB0PW4ucmVmO2lmKG51bGw9PT10KW51bGwhPT1lJiZudWxsIT09ZS5yZWYmJihuLmZsYWdzfD00MTk0ODE2KTtlbHNle2lmKFwiZnVuY3Rpb25cIiE9dHlwZW9mIHQmJlwib2JqZWN0XCIhPXR5cGVvZiB0KXRocm93IEVycm9yKGwoMjg0KSk7KG51bGw9PT1lfHxlLnJlZiE9PXQpJiYobi5mbGFnc3w9NDE5NDgxNil9fWZ1bmN0aW9uIGlQKGUsbix0LHIsbyl7cmV0dXJuKHJaKG4pLHQ9bzYoZSxuLHQscix2b2lkIDAsbykscj1hZSgpLG51bGw9PT1lfHxpeCk/KHJTJiZyJiZyaihuKSxuLmZsYWdzfD0xLGl3KGUsbix0LG8pLG4uY2hpbGQpOihhbihlLG4sbyksaXEoZSxuLG8pKX1mdW5jdGlvbiBpeihlLG4sdCxyLG8sYSl7cmV0dXJuKHJaKG4pLG4udXBkYXRlUXVldWU9bnVsbCx0PW84KG4scix0LG8pLG85KGUpLHI9YWUoKSxudWxsPT09ZXx8aXgpPyhyUyYmciYmcmoobiksbi5mbGFnc3w9MSxpdyhlLG4sdCxhKSxuLmNoaWxkKTooYW4oZSxuLGEpLGlxKGUsbixhKSl9ZnVuY3Rpb24gaUwoZSxuLHQscixvKXtpZihyWihuKSxudWxsPT09bi5zdGF0ZU5vZGUpe3ZhciBhPXQ4LGk9dC5jb250ZXh0VHlwZTtcIm9iamVjdFwiPT10eXBlb2YgaSYmbnVsbCE9PWkmJihhPXJZKGkpKSxuLm1lbW9pemVkU3RhdGU9bnVsbCE9PShhPW5ldyB0KHIsYSkpLnN0YXRlJiZ2b2lkIDAhPT1hLnN0YXRlP2Euc3RhdGU6bnVsbCxhLnVwZGF0ZXI9aWksbi5zdGF0ZU5vZGU9YSxhLl9yZWFjdEludGVybmFscz1uLChhPW4uc3RhdGVOb2RlKS5wcm9wcz1yLGEuc3RhdGU9bi5tZW1vaXplZFN0YXRlLGEucmVmcz17fSxvaihuKSxpPXQuY29udGV4dFR5cGUsYS5jb250ZXh0PVwib2JqZWN0XCI9PXR5cGVvZiBpJiZudWxsIT09aT9yWShpKTp0OCxhLnN0YXRlPW4ubWVtb2l6ZWRTdGF0ZSxcImZ1bmN0aW9uXCI9PXR5cGVvZihpPXQuZ2V0RGVyaXZlZFN0YXRlRnJvbVByb3BzKSYmKGlhKG4sdCxpLHIpLGEuc3RhdGU9bi5tZW1vaXplZFN0YXRlKSxcImZ1bmN0aW9uXCI9PXR5cGVvZiB0LmdldERlcml2ZWRTdGF0ZUZyb21Qcm9wc3x8XCJmdW5jdGlvblwiPT10eXBlb2YgYS5nZXRTbmFwc2hvdEJlZm9yZVVwZGF0ZXx8XCJmdW5jdGlvblwiIT10eXBlb2YgYS5VTlNBRkVfY29tcG9uZW50V2lsbE1vdW50JiZcImZ1bmN0aW9uXCIhPXR5cGVvZiBhLmNvbXBvbmVudFdpbGxNb3VudHx8KGk9YS5zdGF0ZSxcImZ1bmN0aW9uXCI9PXR5cGVvZiBhLmNvbXBvbmVudFdpbGxNb3VudCYmYS5jb21wb25lbnRXaWxsTW91bnQoKSxcImZ1bmN0aW9uXCI9PXR5cGVvZiBhLlVOU0FGRV9jb21wb25lbnRXaWxsTW91bnQmJmEuVU5TQUZFX2NvbXBvbmVudFdpbGxNb3VudCgpLGkhPT1hLnN0YXRlJiZpaS5lbnF1ZXVlUmVwbGFjZVN0YXRlKGEsYS5zdGF0ZSxudWxsKSxvUChuLHIsYSxvKSxvXygpLGEuc3RhdGU9bi5tZW1vaXplZFN0YXRlKSxcImZ1bmN0aW9uXCI9PXR5cGVvZiBhLmNvbXBvbmVudERpZE1vdW50JiYobi5mbGFnc3w9NDE5NDMwOCkscj0hMH1lbHNlIGlmKG51bGw9PT1lKXthPW4uc3RhdGVOb2RlO3ZhciBsPW4ubWVtb2l6ZWRQcm9wcyxzPWljKHQsbCk7YS5wcm9wcz1zO3ZhciBjPWEuY29udGV4dCx1PXQuY29udGV4dFR5cGU7aT10OCxcIm9iamVjdFwiPT10eXBlb2YgdSYmbnVsbCE9PXUmJihpPXJZKHUpKTt2YXIgZD10LmdldERlcml2ZWRTdGF0ZUZyb21Qcm9wczt1PVwiZnVuY3Rpb25cIj09dHlwZW9mIGR8fFwiZnVuY3Rpb25cIj09dHlwZW9mIGEuZ2V0U25hcHNob3RCZWZvcmVVcGRhdGUsbD1uLnBlbmRpbmdQcm9wcyE9PWwsdXx8XCJmdW5jdGlvblwiIT10eXBlb2YgYS5VTlNBRkVfY29tcG9uZW50V2lsbFJlY2VpdmVQcm9wcyYmXCJmdW5jdGlvblwiIT10eXBlb2YgYS5jb21wb25lbnRXaWxsUmVjZWl2ZVByb3BzfHwobHx8YyE9PWkpJiZpcyhuLGEscixpKSxvdz0hMTt2YXIgZj1uLm1lbW9pemVkU3RhdGU7YS5zdGF0ZT1mLG9QKG4scixhLG8pLG9fKCksYz1uLm1lbW9pemVkU3RhdGUsbHx8ZiE9PWN8fG93PyhcImZ1bmN0aW9uXCI9PXR5cGVvZiBkJiYoaWEobix0LGQsciksYz1uLm1lbW9pemVkU3RhdGUpLChzPW93fHxpbChuLHQscyxyLGYsYyxpKSk/KHV8fFwiZnVuY3Rpb25cIiE9dHlwZW9mIGEuVU5TQUZFX2NvbXBvbmVudFdpbGxNb3VudCYmXCJmdW5jdGlvblwiIT10eXBlb2YgYS5jb21wb25lbnRXaWxsTW91bnR8fChcImZ1bmN0aW9uXCI9PXR5cGVvZiBhLmNvbXBvbmVudFdpbGxNb3VudCYmYS5jb21wb25lbnRXaWxsTW91bnQoKSxcImZ1bmN0aW9uXCI9PXR5cGVvZiBhLlVOU0FGRV9jb21wb25lbnRXaWxsTW91bnQmJmEuVU5TQUZFX2NvbXBvbmVudFdpbGxNb3VudCgpKSxcImZ1bmN0aW9uXCI9PXR5cGVvZiBhLmNvbXBvbmVudERpZE1vdW50JiYobi5mbGFnc3w9NDE5NDMwOCkpOihcImZ1bmN0aW9uXCI9PXR5cGVvZiBhLmNvbXBvbmVudERpZE1vdW50JiYobi5mbGFnc3w9NDE5NDMwOCksbi5tZW1vaXplZFByb3BzPXIsbi5tZW1vaXplZFN0YXRlPWMpLGEucHJvcHM9cixhLnN0YXRlPWMsYS5jb250ZXh0PWkscj1zKTooXCJmdW5jdGlvblwiPT10eXBlb2YgYS5jb21wb25lbnREaWRNb3VudCYmKG4uZmxhZ3N8PTQxOTQzMDgpLHI9ITEpfWVsc2V7YT1uLnN0YXRlTm9kZSxvayhlLG4pLHU9aWModCxpPW4ubWVtb2l6ZWRQcm9wcyksYS5wcm9wcz11LGQ9bi5wZW5kaW5nUHJvcHMsZj1hLmNvbnRleHQsYz10LmNvbnRleHRUeXBlLHM9dDgsXCJvYmplY3RcIj09dHlwZW9mIGMmJm51bGwhPT1jJiYocz1yWShjKSksKGM9XCJmdW5jdGlvblwiPT10eXBlb2YobD10LmdldERlcml2ZWRTdGF0ZUZyb21Qcm9wcyl8fFwiZnVuY3Rpb25cIj09dHlwZW9mIGEuZ2V0U25hcHNob3RCZWZvcmVVcGRhdGUpfHxcImZ1bmN0aW9uXCIhPXR5cGVvZiBhLlVOU0FGRV9jb21wb25lbnRXaWxsUmVjZWl2ZVByb3BzJiZcImZ1bmN0aW9uXCIhPXR5cGVvZiBhLmNvbXBvbmVudFdpbGxSZWNlaXZlUHJvcHN8fChpIT09ZHx8ZiE9PXMpJiZpcyhuLGEscixzKSxvdz0hMSxmPW4ubWVtb2l6ZWRTdGF0ZSxhLnN0YXRlPWYsb1AobixyLGEsbyksb18oKTt2YXIgcD1uLm1lbW9pemVkU3RhdGU7aSE9PWR8fGYhPT1wfHxvd3x8bnVsbCE9PWUmJm51bGwhPT1lLmRlcGVuZGVuY2llcyYmciQoZS5kZXBlbmRlbmNpZXMpPyhcImZ1bmN0aW9uXCI9PXR5cGVvZiBsJiYoaWEobix0LGwscikscD1uLm1lbW9pemVkU3RhdGUpLCh1PW93fHxpbChuLHQsdSxyLGYscCxzKXx8bnVsbCE9PWUmJm51bGwhPT1lLmRlcGVuZGVuY2llcyYmciQoZS5kZXBlbmRlbmNpZXMpKT8oY3x8XCJmdW5jdGlvblwiIT10eXBlb2YgYS5VTlNBRkVfY29tcG9uZW50V2lsbFVwZGF0ZSYmXCJmdW5jdGlvblwiIT10eXBlb2YgYS5jb21wb25lbnRXaWxsVXBkYXRlfHwoXCJmdW5jdGlvblwiPT10eXBlb2YgYS5jb21wb25lbnRXaWxsVXBkYXRlJiZhLmNvbXBvbmVudFdpbGxVcGRhdGUocixwLHMpLFwiZnVuY3Rpb25cIj09dHlwZW9mIGEuVU5TQUZFX2NvbXBvbmVudFdpbGxVcGRhdGUmJmEuVU5TQUZFX2NvbXBvbmVudFdpbGxVcGRhdGUocixwLHMpKSxcImZ1bmN0aW9uXCI9PXR5cGVvZiBhLmNvbXBvbmVudERpZFVwZGF0ZSYmKG4uZmxhZ3N8PTQpLFwiZnVuY3Rpb25cIj09dHlwZW9mIGEuZ2V0U25hcHNob3RCZWZvcmVVcGRhdGUmJihuLmZsYWdzfD0xMDI0KSk6KFwiZnVuY3Rpb25cIiE9dHlwZW9mIGEuY29tcG9uZW50RGlkVXBkYXRlfHxpPT09ZS5tZW1vaXplZFByb3BzJiZmPT09ZS5tZW1vaXplZFN0YXRlfHwobi5mbGFnc3w9NCksXCJmdW5jdGlvblwiIT10eXBlb2YgYS5nZXRTbmFwc2hvdEJlZm9yZVVwZGF0ZXx8aT09PWUubWVtb2l6ZWRQcm9wcyYmZj09PWUubWVtb2l6ZWRTdGF0ZXx8KG4uZmxhZ3N8PTEwMjQpLG4ubWVtb2l6ZWRQcm9wcz1yLG4ubWVtb2l6ZWRTdGF0ZT1wKSxhLnByb3BzPXIsYS5zdGF0ZT1wLGEuY29udGV4dD1zLHI9dSk6KFwiZnVuY3Rpb25cIiE9dHlwZW9mIGEuY29tcG9uZW50RGlkVXBkYXRlfHxpPT09ZS5tZW1vaXplZFByb3BzJiZmPT09ZS5tZW1vaXplZFN0YXRlfHwobi5mbGFnc3w9NCksXCJmdW5jdGlvblwiIT10eXBlb2YgYS5nZXRTbmFwc2hvdEJlZm9yZVVwZGF0ZXx8aT09PWUubWVtb2l6ZWRQcm9wcyYmZj09PWUubWVtb2l6ZWRTdGF0ZXx8KG4uZmxhZ3N8PTEwMjQpLHI9ITEpfXJldHVybiBhPXIsaV8oZSxuKSxyPTAhPSgxMjgmbi5mbGFncyksYXx8cj8oYT1uLnN0YXRlTm9kZSx0PXImJlwiZnVuY3Rpb25cIiE9dHlwZW9mIHQuZ2V0RGVyaXZlZFN0YXRlRnJvbUVycm9yP251bGw6YS5yZW5kZXIoKSxuLmZsYWdzfD0xLG51bGwhPT1lJiZyPyhuLmNoaWxkPW95KG4sZS5jaGlsZCxudWxsLG8pLG4uY2hpbGQ9b3kobixudWxsLHQsbykpOml3KGUsbix0LG8pLG4ubWVtb2l6ZWRTdGF0ZT1hLnN0YXRlLGU9bi5jaGlsZCk6ZT1pcShlLG4sbyksZX1mdW5jdGlvbiBpVChlLG4sdCxyKXtyZXR1cm4gck4oKSxuLmZsYWdzfD0yNTYsaXcoZSxuLHQsciksbi5jaGlsZH12YXIgaVI9e2RlaHlkcmF0ZWQ6bnVsbCx0cmVlQ29udGV4dDpudWxsLHJldHJ5TGFuZTowLGh5ZHJhdGlvbkVycm9yczpudWxsfTtmdW5jdGlvbiBpTihlKXtyZXR1cm57YmFzZUxhbmVzOmUsY2FjaGVQb29sOm90KCl9fWZ1bmN0aW9uIGlEKGUsbix0KXtyZXR1cm4gZT1udWxsIT09ZT9lLmNoaWxkTGFuZXMmfnQ6MCxuJiYoZXw9bFkpLGV9ZnVuY3Rpb24gaUIoZSxuLHQpe3ZhciByLG89bi5wZW5kaW5nUHJvcHMsYT0hMSxpPTAhPSgxMjgmbi5mbGFncyk7aWYoKHI9aSl8fChyPShudWxsPT09ZXx8bnVsbCE9PWUubWVtb2l6ZWRTdGF0ZSkmJjAhPSgyJm9XLmN1cnJlbnQpKSxyJiYoYT0hMCxuLmZsYWdzJj0tMTI5KSxyPTAhPSgzMiZuLmZsYWdzKSxuLmZsYWdzJj0tMzMsbnVsbD09PWUpe2lmKHJTKXtpZihhP29IKG4pOm9WKG4pLChlPXJDKT9udWxsIT09KGU9bnVsbCE9PShlPWNDKGUscl8pKSYmXCImXCIhPT1lLmRhdGE/ZTpudWxsKSYmKG4ubWVtb2l6ZWRTdGF0ZT17ZGVoeWRyYXRlZDplLHRyZWVDb250ZXh0Om51bGwhPT1ydj97aWQ6cmIsb3ZlcmZsb3c6cnl9Om51bGwscmV0cnlMYW5lOjB4MjAwMDAwMDAsaHlkcmF0aW9uRXJyb3JzOm51bGx9LCh0PXJsKGUpKS5yZXR1cm49bixuLmNoaWxkPXQsck89bixyQz1udWxsKTplPW51bGwsbnVsbD09PWUpdGhyb3cgcnoobik7cmV0dXJuIGNFKGUpP24ubGFuZXM9MzI6bi5sYW5lcz0weDIwMDAwMDAwLG51bGx9dmFyIHM9by5jaGlsZHJlbjtyZXR1cm4obz1vLmZhbGxiYWNrLGEpPyhvVihuKSxzPWlJKHttb2RlOlwiaGlkZGVuXCIsY2hpbGRyZW46c30sYT1uLm1vZGUpLG89cmEobyxhLHQsbnVsbCkscy5yZXR1cm49bixvLnJldHVybj1uLHMuc2libGluZz1vLG4uY2hpbGQ9cywocz1uLmNoaWxkKS5tZW1vaXplZFN0YXRlPWlOKHQpLHMuY2hpbGRMYW5lcz1pRChlLHIsdCksbi5tZW1vaXplZFN0YXRlPWlSLG8pOihvSChuKSxpTShuLHMpKX12YXIgYz1lLm1lbW9pemVkU3RhdGU7aWYobnVsbCE9PWMmJm51bGwhPT0ocz1jLmRlaHlkcmF0ZWQpKXtpZihpKTI1NiZuLmZsYWdzPyhvSChuKSxuLmZsYWdzJj0tMjU3LG49aUgoZSxuLHQpKTpudWxsIT09bi5tZW1vaXplZFN0YXRlPyhvVihuKSxuLmNoaWxkPWUuY2hpbGQsbi5mbGFnc3w9MTI4LG49bnVsbCk6KG9WKG4pLHM9by5mYWxsYmFjayxhPW4ubW9kZSxvPWlJKHttb2RlOlwidmlzaWJsZVwiLGNoaWxkcmVuOm8uY2hpbGRyZW59LGEpLHM9cmEocyxhLHQsbnVsbCkscy5mbGFnc3w9MixvLnJldHVybj1uLHMucmV0dXJuPW4sby5zaWJsaW5nPXMsbi5jaGlsZD1vLG95KG4sZS5jaGlsZCxudWxsLHQpLChvPW4uY2hpbGQpLm1lbW9pemVkU3RhdGU9aU4odCksby5jaGlsZExhbmVzPWlEKGUscix0KSxuLm1lbW9pemVkU3RhdGU9aVIsbj1zKTtlbHNlIGlmKG9IKG4pLGNFKHMpKXtpZihyPXMubmV4dFNpYmxpbmcmJnMubmV4dFNpYmxpbmcuZGF0YXNldCl2YXIgdT1yLmRnc3Q7cj11LChvPUVycm9yKGwoNDE5KSkpLnN0YWNrPVwiXCIsby5kaWdlc3Q9cixyQih7dmFsdWU6byxzb3VyY2U6bnVsbCxzdGFjazpudWxsfSksbj1pSChlLG4sdCl9ZWxzZSBpZihpeHx8clcoZSxuLHQsITEpLHI9MCE9KHQmZS5jaGlsZExhbmVzKSxpeHx8cil7aWYobnVsbCE9PShyPWxOKSYmMCE9PShvPWVfKHIsdCkpJiZvIT09Yy5yZXRyeUxhbmUpdGhyb3cgYy5yZXRyeUxhbmU9byx0MyhlLG8pLHNvKHIsZSxvKSxpeTtjUyhzKXx8c2coKSxuPWlIKGUsbix0KX1lbHNlIGNTKHMpPyhuLmZsYWdzfD0xOTIsbi5jaGlsZD1lLmNoaWxkLG49bnVsbCk6KGU9Yy50cmVlQ29udGV4dCxyQz1jXyhzLm5leHRTaWJsaW5nKSxyTz1uLHJTPSEwLHJFPW51bGwscl89ITEsbnVsbCE9PWUmJnJBKG4sZSksbj1pTShuLG8uY2hpbGRyZW4pLG4uZmxhZ3N8PTQwOTYpO3JldHVybiBufXJldHVybiBhPyhvVihuKSxzPW8uZmFsbGJhY2ssYT1uLm1vZGUsdT0oYz1lLmNoaWxkKS5zaWJsaW5nLChvPXJ0KGMse21vZGU6XCJoaWRkZW5cIixjaGlsZHJlbjpvLmNoaWxkcmVufSkpLnN1YnRyZWVGbGFncz0weDNlMDAwMDAmYy5zdWJ0cmVlRmxhZ3MsbnVsbCE9PXU/cz1ydCh1LHMpOihzPXJhKHMsYSx0LG51bGwpLHMuZmxhZ3N8PTIpLHMucmV0dXJuPW4sby5yZXR1cm49bixvLnNpYmxpbmc9cyxuLmNoaWxkPW8sbz1zLHM9bi5jaGlsZCxudWxsPT09KGE9ZS5jaGlsZC5tZW1vaXplZFN0YXRlKT9hPWlOKHQpOihudWxsIT09KGM9YS5jYWNoZVBvb2wpPyh1PXIwLl9jdXJyZW50VmFsdWUsYz1jLnBhcmVudCE9PXU/e3BhcmVudDp1LHBvb2w6dX06Yyk6Yz1vdCgpLGE9e2Jhc2VMYW5lczphLmJhc2VMYW5lc3x0LGNhY2hlUG9vbDpjfSkscy5tZW1vaXplZFN0YXRlPWEscy5jaGlsZExhbmVzPWlEKGUscix0KSxuLm1lbW9pemVkU3RhdGU9aVIsbyk6KG9IKG4pLGU9KHQ9ZS5jaGlsZCkuc2libGluZywodD1ydCh0LHttb2RlOlwidmlzaWJsZVwiLGNoaWxkcmVuOm8uY2hpbGRyZW59KSkucmV0dXJuPW4sdC5zaWJsaW5nPW51bGwsbnVsbCE9PWUmJihudWxsPT09KHI9bi5kZWxldGlvbnMpPyhuLmRlbGV0aW9ucz1bZV0sbi5mbGFnc3w9MTYpOnIucHVzaChlKSksbi5jaGlsZD10LG4ubWVtb2l6ZWRTdGF0ZT1udWxsLHQpfWZ1bmN0aW9uIGlNKGUsbil7cmV0dXJuKG49aUkoe21vZGU6XCJ2aXNpYmxlXCIsY2hpbGRyZW46bn0sZS5tb2RlKSkucmV0dXJuPWUsZS5jaGlsZD1ufWZ1bmN0aW9uIGlJKGUsbil7cmV0dXJuKGU9cmUoMjIsZSxudWxsLG4pKS5sYW5lcz0wLGUuc3RhdGVOb2RlPXtfdmlzaWJpbGl0eToxLF9wZW5kaW5nTWFya2VyczpudWxsLF9yZXRyeUNhY2hlOm51bGwsX3RyYW5zaXRpb25zOm51bGx9LGV9ZnVuY3Rpb24gaUgoZSxuLHQpe3JldHVybiBveShuLGUuY2hpbGQsbnVsbCx0KSxlPWlNKG4sbi5wZW5kaW5nUHJvcHMuY2hpbGRyZW4pLGUuZmxhZ3N8PTIsbi5tZW1vaXplZFN0YXRlPW51bGwsZX1mdW5jdGlvbiBpRihlLG4sdCl7ZS5sYW5lc3w9bjt2YXIgcj1lLmFsdGVybmF0ZTtudWxsIT09ciYmKHIubGFuZXN8PW4pLHJWKGUucmV0dXJuLG4sdCl9ZnVuY3Rpb24gaVUoZSxuLHQscixvLGEpe3ZhciBpPWUubWVtb2l6ZWRTdGF0ZTtudWxsPT09aT9lLm1lbW9pemVkU3RhdGU9e2lzQmFja3dhcmRzOm4scmVuZGVyaW5nOm51bGwscmVuZGVyaW5nU3RhcnRUaW1lOjAsbGFzdDpyLHRhaWw6dCx0YWlsTW9kZTpvLHRyZWVGb3JrQ291bnQ6YX06KGkuaXNCYWNrd2FyZHM9bixpLnJlbmRlcmluZz1udWxsLGkucmVuZGVyaW5nU3RhcnRUaW1lPTAsaS5sYXN0PXIsaS50YWlsPXQsaS50YWlsTW9kZT1vLGkudHJlZUZvcmtDb3VudD1hKX1mdW5jdGlvbiBpVihlLG4sdCl7dmFyIHI9bi5wZW5kaW5nUHJvcHMsbz1yLnJldmVhbE9yZGVyLGE9ci50YWlsO3I9ci5jaGlsZHJlbjt2YXIgaT1vVy5jdXJyZW50LGw9MCE9KDImaSk7aWYobD8oaT0xJml8MixuLmZsYWdzfD0xMjgpOmkmPTEsSShvVyxpKSxpdyhlLG4scix0KSxyPXJTP3JoOjAsIWwmJm51bGwhPT1lJiYwIT0oMTI4JmUuZmxhZ3MpKWU6Zm9yKGU9bi5jaGlsZDtudWxsIT09ZTspe2lmKDEzPT09ZS50YWcpbnVsbCE9PWUubWVtb2l6ZWRTdGF0ZSYmaUYoZSx0LG4pO2Vsc2UgaWYoMTk9PT1lLnRhZylpRihlLHQsbik7ZWxzZSBpZihudWxsIT09ZS5jaGlsZCl7ZS5jaGlsZC5yZXR1cm49ZSxlPWUuY2hpbGQ7Y29udGludWV9aWYoZT09PW4pYnJlYWs7Zm9yKDtudWxsPT09ZS5zaWJsaW5nOyl7aWYobnVsbD09PWUucmV0dXJufHxlLnJldHVybj09PW4pYnJlYWsgZTtlPWUucmV0dXJufWUuc2libGluZy5yZXR1cm49ZS5yZXR1cm4sZT1lLnNpYmxpbmd9c3dpdGNoKG8pe2Nhc2VcImZvcndhcmRzXCI6Zm9yKG89bnVsbCx0PW4uY2hpbGQ7bnVsbCE9PXQ7KW51bGwhPT0oZT10LmFsdGVybmF0ZSkmJm51bGw9PT1vJChlKSYmKG89dCksdD10LnNpYmxpbmc7bnVsbD09PSh0PW8pPyhvPW4uY2hpbGQsbi5jaGlsZD1udWxsKToobz10LnNpYmxpbmcsdC5zaWJsaW5nPW51bGwpLGlVKG4sITEsbyx0LGEscik7YnJlYWs7Y2FzZVwiYmFja3dhcmRzXCI6Y2FzZVwidW5zdGFibGVfbGVnYWN5LWJhY2t3YXJkc1wiOmZvcih0PW51bGwsbz1uLmNoaWxkLG4uY2hpbGQ9bnVsbDtudWxsIT09bzspe2lmKG51bGwhPT0oZT1vLmFsdGVybmF0ZSkmJm51bGw9PT1vJChlKSl7bi5jaGlsZD1vO2JyZWFrfWU9by5zaWJsaW5nLG8uc2libGluZz10LHQ9byxvPWV9aVUobiwhMCx0LG51bGwsYSxyKTticmVhaztjYXNlXCJ0b2dldGhlclwiOmlVKG4sITEsbnVsbCxudWxsLHZvaWQgMCxyKTticmVhaztkZWZhdWx0Om4ubWVtb2l6ZWRTdGF0ZT1udWxsfXJldHVybiBuLmNoaWxkfWZ1bmN0aW9uIGlxKGUsbix0KXtpZihudWxsIT09ZSYmKG4uZGVwZW5kZW5jaWVzPWUuZGVwZW5kZW5jaWVzKSxsV3w9bi5sYW5lcywwPT0odCZuLmNoaWxkTGFuZXMpKXtpZihudWxsPT09ZSlyZXR1cm4gbnVsbDtlbHNlIGlmKHJXKGUsbix0LCExKSwwPT0odCZuLmNoaWxkTGFuZXMpKXJldHVybiBudWxsfWlmKG51bGwhPT1lJiZuLmNoaWxkIT09ZS5jaGlsZCl0aHJvdyBFcnJvcihsKDE1MykpO2lmKG51bGwhPT1uLmNoaWxkKXtmb3IodD1ydChlPW4uY2hpbGQsZS5wZW5kaW5nUHJvcHMpLG4uY2hpbGQ9dCx0LnJldHVybj1uO251bGwhPT1lLnNpYmxpbmc7KWU9ZS5zaWJsaW5nLCh0PXQuc2libGluZz1ydChlLGUucGVuZGluZ1Byb3BzKSkucmV0dXJuPW47dC5zaWJsaW5nPW51bGx9cmV0dXJuIG4uY2hpbGR9ZnVuY3Rpb24gaVcoZSxuKXtyZXR1cm4gMCE9KGUubGFuZXMmbil8fCEhKG51bGwhPT0oZT1lLmRlcGVuZGVuY2llcykmJnIkKGUpKX1mdW5jdGlvbiBpJChlLG4sdCl7aWYobnVsbCE9PWUpaWYoZS5tZW1vaXplZFByb3BzIT09bi5wZW5kaW5nUHJvcHMpaXg9ITA7ZWxzZXtpZighaVcoZSx0KSYmMD09KDEyOCZuLmZsYWdzKSlyZXR1cm4gaXg9ITEsZnVuY3Rpb24oZSxuLHQpe3N3aXRjaChuLnRhZyl7Y2FzZSAzOnEobixuLnN0YXRlTm9kZS5jb250YWluZXJJbmZvKSxyRihuLHIwLGUubWVtb2l6ZWRTdGF0ZS5jYWNoZSksck4oKTticmVhaztjYXNlIDI3OmNhc2UgNTokKG4pO2JyZWFrO2Nhc2UgNDpxKG4sbi5zdGF0ZU5vZGUuY29udGFpbmVySW5mbyk7YnJlYWs7Y2FzZSAxMDpyRihuLG4udHlwZSxuLm1lbW9pemVkUHJvcHMudmFsdWUpO2JyZWFrO2Nhc2UgMzE6aWYobnVsbCE9PW4ubWVtb2l6ZWRTdGF0ZSlyZXR1cm4gbi5mbGFnc3w9MTI4LG9GKG4pLG51bGw7YnJlYWs7Y2FzZSAxMzp2YXIgcj1uLm1lbW9pemVkU3RhdGU7aWYobnVsbCE9PXIpe2lmKG51bGwhPT1yLmRlaHlkcmF0ZWQpcmV0dXJuIG9IKG4pLG4uZmxhZ3N8PTEyOCxudWxsO2lmKDAhPSh0Jm4uY2hpbGQuY2hpbGRMYW5lcykpcmV0dXJuIGlCKGUsbix0KTtyZXR1cm4gb0gobiksbnVsbCE9PShlPWlxKGUsbix0KSk/ZS5zaWJsaW5nOm51bGx9b0gobik7YnJlYWs7Y2FzZSAxOTp2YXIgbz0wIT0oMTI4JmUuZmxhZ3MpO2lmKChyPTAhPSh0Jm4uY2hpbGRMYW5lcykpfHwoclcoZSxuLHQsITEpLHI9MCE9KHQmbi5jaGlsZExhbmVzKSksbyl7aWYocilyZXR1cm4gaVYoZSxuLHQpO24uZmxhZ3N8PTEyOH1pZihudWxsIT09KG89bi5tZW1vaXplZFN0YXRlKSYmKG8ucmVuZGVyaW5nPW51bGwsby50YWlsPW51bGwsby5sYXN0RWZmZWN0PW51bGwpLEkob1csb1cuY3VycmVudCksIXIpcmV0dXJuIG51bGw7YnJlYWs7Y2FzZSAyMjpyZXR1cm4gbi5sYW5lcz0wLGlPKGUsbix0LG4ucGVuZGluZ1Byb3BzKTtjYXNlIDI0OnJGKG4scjAsZS5tZW1vaXplZFN0YXRlLmNhY2hlKX1yZXR1cm4gaXEoZSxuLHQpfShlLG4sdCk7aXg9MCE9KDEzMTA3MiZlLmZsYWdzKX1lbHNlIGl4PSExLHJTJiYwIT0oMTA0ODU3NiZuLmZsYWdzKSYmcncobixyaCxuLmluZGV4KTtzd2l0Y2gobi5sYW5lcz0wLG4udGFnKXtjYXNlIDE2OmU6e2U9bi5wZW5kaW5nUHJvcHM7dmFyIHI9bi5lbGVtZW50VHlwZSxvPXIuX2luaXQ7aWYocj1vKHIuX3BheWxvYWQpLG4udHlwZT1yLFwiZnVuY3Rpb25cIj09dHlwZW9mIHIpcm4ocik/KGU9aWMocixlKSxuLnRhZz0xLG49aUwobnVsbCxuLHIsZSx0KSk6KG4udGFnPTAsbj1pUChudWxsLG4scixlLHQpKTtlbHNle2lmKG51bGwhPXIpe2lmKChvPXIuJCR0eXBlb2YpPT09dyl7bi50YWc9MTEsbj1paihudWxsLG4scixlLHQpO2JyZWFrIGV9ZWxzZSBpZihvPT09QSl7bi50YWc9MTQsbj1payhudWxsLG4scixlLHQpO2JyZWFrIGV9fXRocm93IEVycm9yKGwoMzA2LG49ZnVuY3Rpb24gZShuKXtpZihudWxsPT1uKXJldHVybiBudWxsO2lmKFwiZnVuY3Rpb25cIj09dHlwZW9mIG4pcmV0dXJuIG4uJCR0eXBlb2Y9PT1QP251bGw6bi5kaXNwbGF5TmFtZXx8bi5uYW1lfHxudWxsO2lmKFwic3RyaW5nXCI9PXR5cGVvZiBuKXJldHVybiBuO3N3aXRjaChuKXtjYXNlIG06cmV0dXJuXCJGcmFnbWVudFwiO2Nhc2UgYjpyZXR1cm5cIlByb2ZpbGVyXCI7Y2FzZSB2OnJldHVyblwiU3RyaWN0TW9kZVwiO2Nhc2UgajpyZXR1cm5cIlN1c3BlbnNlXCI7Y2FzZSBrOnJldHVyblwiU3VzcGVuc2VMaXN0XCI7Y2FzZSBDOnJldHVyblwiQWN0aXZpdHlcIn1pZihcIm9iamVjdFwiPT10eXBlb2Ygbilzd2l0Y2gobi4kJHR5cGVvZil7Y2FzZSBnOnJldHVyblwiUG9ydGFsXCI7Y2FzZSB4OnJldHVybiBuLmRpc3BsYXlOYW1lfHxcIkNvbnRleHRcIjtjYXNlIHk6cmV0dXJuKG4uX2NvbnRleHQuZGlzcGxheU5hbWV8fFwiQ29udGV4dFwiKStcIi5Db25zdW1lclwiO2Nhc2Ugdzp2YXIgdD1uLnJlbmRlcjtyZXR1cm4obj1uLmRpc3BsYXlOYW1lKXx8KG49XCJcIiE9PShuPXQuZGlzcGxheU5hbWV8fHQubmFtZXx8XCJcIik/XCJGb3J3YXJkUmVmKFwiK24rXCIpXCI6XCJGb3J3YXJkUmVmXCIpLG47Y2FzZSBBOnJldHVybiBudWxsIT09KHQ9bi5kaXNwbGF5TmFtZXx8bnVsbCk/dDplKG4udHlwZSl8fFwiTWVtb1wiO2Nhc2UgTzp0PW4uX3BheWxvYWQsbj1uLl9pbml0O3RyeXtyZXR1cm4gZShuKHQpKX1jYXRjaChlKXt9fXJldHVybiBudWxsfShyKXx8cixcIlwiKSl9fXJldHVybiBuO2Nhc2UgMDpyZXR1cm4gaVAoZSxuLG4udHlwZSxuLnBlbmRpbmdQcm9wcyx0KTtjYXNlIDE6cmV0dXJuIG89aWMocj1uLnR5cGUsbi5wZW5kaW5nUHJvcHMpLGlMKGUsbixyLG8sdCk7Y2FzZSAzOmU6e2lmKHEobixuLnN0YXRlTm9kZS5jb250YWluZXJJbmZvKSxudWxsPT09ZSl0aHJvdyBFcnJvcihsKDM4NykpO3I9bi5wZW5kaW5nUHJvcHM7dmFyIGE9bi5tZW1vaXplZFN0YXRlO289YS5lbGVtZW50LG9rKGUsbiksb1AobixyLG51bGwsdCk7dmFyIGk9bi5tZW1vaXplZFN0YXRlO2lmKHJGKG4scjAscj1pLmNhY2hlKSxyIT09YS5jYWNoZSYmcnEobixbcjBdLHQsITApLG9fKCkscj1pLmVsZW1lbnQsYS5pc0RlaHlkcmF0ZWQpaWYoYT17ZWxlbWVudDpyLGlzRGVoeWRyYXRlZDohMSxjYWNoZTppLmNhY2hlfSxuLnVwZGF0ZVF1ZXVlLmJhc2VTdGF0ZT1hLG4ubWVtb2l6ZWRTdGF0ZT1hLDI1NiZuLmZsYWdzKXtuPWlUKGUsbixyLHQpO2JyZWFrIGV9ZWxzZSBpZihyIT09byl7ckIobz1ydShFcnJvcihsKDQyNCkpLG4pKSxuPWlUKGUsbixyLHQpO2JyZWFrIGV9ZWxzZSBmb3IockM9Y18oKGU9OT09PShlPW4uc3RhdGVOb2RlLmNvbnRhaW5lckluZm8pLm5vZGVUeXBlP2UuYm9keTpcIkhUTUxcIj09PWUubm9kZU5hbWU/ZS5vd25lckRvY3VtZW50LmJvZHk6ZSkuZmlyc3RDaGlsZCksck89bixyUz0hMCxyRT1udWxsLHJfPSEwLHQ9b3gobixudWxsLHIsdCksbi5jaGlsZD10O3Q7KXQuZmxhZ3M9LTMmdC5mbGFnc3w0MDk2LHQ9dC5zaWJsaW5nO2Vsc2V7aWYock4oKSxyPT09byl7bj1pcShlLG4sdCk7YnJlYWsgZX1pdyhlLG4scix0KX1uPW4uY2hpbGR9cmV0dXJuIG47Y2FzZSAyNjpyZXR1cm4gaV8oZSxuKSxudWxsPT09ZT8odD1jRihuLnR5cGUsbnVsbCxuLnBlbmRpbmdQcm9wcyxudWxsKSk/bi5tZW1vaXplZFN0YXRlPXQ6clN8fCh0PW4udHlwZSxlPW4ucGVuZGluZ1Byb3BzLChyPWNmKFUuY3VycmVudCkuY3JlYXRlRWxlbWVudCh0KSlbZU5dPW4scltlRF09ZSxjYyhyLHQsZSksZVkociksbi5zdGF0ZU5vZGU9cik6bi5tZW1vaXplZFN0YXRlPWNGKG4udHlwZSxlLm1lbW9pemVkUHJvcHMsbi5wZW5kaW5nUHJvcHMsZS5tZW1vaXplZFN0YXRlKSxudWxsO2Nhc2UgMjc6cmV0dXJuICQobiksbnVsbD09PWUmJnJTJiYocj1uLnN0YXRlTm9kZT1jVChuLnR5cGUsbi5wZW5kaW5nUHJvcHMsVS5jdXJyZW50KSxyTz1uLHJfPSEwLG89ckMsY2oobi50eXBlKT8oY1A9byxyQz1jXyhyLmZpcnN0Q2hpbGQpKTpyQz1vKSxpdyhlLG4sbi5wZW5kaW5nUHJvcHMuY2hpbGRyZW4sdCksaV8oZSxuKSxudWxsPT09ZSYmKG4uZmxhZ3N8PTQxOTQzMDQpLG4uY2hpbGQ7Y2FzZSA1OnJldHVybiBudWxsPT09ZSYmclMmJigobz1yPXJDKSYmKG51bGwhPT0ocj1mdW5jdGlvbihlLG4sdCxyKXtmb3IoOzE9PT1lLm5vZGVUeXBlOyl7aWYoZS5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpIT09bi50b0xvd2VyQ2FzZSgpKXtpZighciYmKFwiSU5QVVRcIiE9PWUubm9kZU5hbWV8fFwiaGlkZGVuXCIhPT1lLnR5cGUpKWJyZWFrfWVsc2UgaWYocil7aWYoIWVbZVVdKXN3aXRjaChuKXtjYXNlXCJtZXRhXCI6aWYoIWUuaGFzQXR0cmlidXRlKFwiaXRlbXByb3BcIikpYnJlYWs7cmV0dXJuIGU7Y2FzZVwibGlua1wiOmlmKFwic3R5bGVzaGVldFwiPT09KG89ZS5nZXRBdHRyaWJ1dGUoXCJyZWxcIikpJiZlLmhhc0F0dHJpYnV0ZShcImRhdGEtcHJlY2VkZW5jZVwiKXx8byE9PXQucmVsfHxlLmdldEF0dHJpYnV0ZShcImhyZWZcIikhPT0obnVsbD09dC5ocmVmfHxcIlwiPT09dC5ocmVmP251bGw6dC5ocmVmKXx8ZS5nZXRBdHRyaWJ1dGUoXCJjcm9zc29yaWdpblwiKSE9PShudWxsPT10LmNyb3NzT3JpZ2luP251bGw6dC5jcm9zc09yaWdpbil8fGUuZ2V0QXR0cmlidXRlKFwidGl0bGVcIikhPT0obnVsbD09dC50aXRsZT9udWxsOnQudGl0bGUpKWJyZWFrO3JldHVybiBlO2Nhc2VcInN0eWxlXCI6aWYoZS5oYXNBdHRyaWJ1dGUoXCJkYXRhLXByZWNlZGVuY2VcIikpYnJlYWs7cmV0dXJuIGU7Y2FzZVwic2NyaXB0XCI6aWYoKChvPWUuZ2V0QXR0cmlidXRlKFwic3JjXCIpKSE9PShudWxsPT10LnNyYz9udWxsOnQuc3JjKXx8ZS5nZXRBdHRyaWJ1dGUoXCJ0eXBlXCIpIT09KG51bGw9PXQudHlwZT9udWxsOnQudHlwZSl8fGUuZ2V0QXR0cmlidXRlKFwiY3Jvc3NvcmlnaW5cIikhPT0obnVsbD09dC5jcm9zc09yaWdpbj9udWxsOnQuY3Jvc3NPcmlnaW4pKSYmbyYmZS5oYXNBdHRyaWJ1dGUoXCJhc3luY1wiKSYmIWUuaGFzQXR0cmlidXRlKFwiaXRlbXByb3BcIikpYnJlYWs7cmV0dXJuIGU7ZGVmYXVsdDpyZXR1cm4gZX19ZWxzZXtpZihcImlucHV0XCIhPT1ufHxcImhpZGRlblwiIT09ZS50eXBlKXJldHVybiBlO3ZhciBvPW51bGw9PXQubmFtZT9udWxsOlwiXCIrdC5uYW1lO2lmKFwiaGlkZGVuXCI9PT10LnR5cGUmJmUuZ2V0QXR0cmlidXRlKFwibmFtZVwiKT09PW8pcmV0dXJuIGV9aWYobnVsbD09PShlPWNfKGUubmV4dFNpYmxpbmcpKSlicmVha31yZXR1cm4gbnVsbH0ocixuLnR5cGUsbi5wZW5kaW5nUHJvcHMscl8pKT8obi5zdGF0ZU5vZGU9cixyTz1uLHJDPWNfKHIuZmlyc3RDaGlsZCkscl89ITEsbz0hMCk6bz0hMSksb3x8cnoobikpLCQobiksbz1uLnR5cGUsYT1uLnBlbmRpbmdQcm9wcyxpPW51bGwhPT1lP2UubWVtb2l6ZWRQcm9wczpudWxsLHI9YS5jaGlsZHJlbixjZyhvLGEpP3I9bnVsbDpudWxsIT09aSYmY2cobyxpKSYmKG4uZmxhZ3N8PTMyKSxudWxsIT09bi5tZW1vaXplZFN0YXRlJiYoYzYuX2N1cnJlbnRWYWx1ZT1vPW82KGUsbixvNyxudWxsLG51bGwsdCkpLGlfKGUsbiksaXcoZSxuLHIsdCksbi5jaGlsZDtjYXNlIDY6cmV0dXJuIG51bGw9PT1lJiZyUyYmKChlPXQ9ckMpJiYobnVsbCE9PSh0PWZ1bmN0aW9uKGUsbix0KXtpZihcIlwiPT09bilyZXR1cm4gbnVsbDtmb3IoOzMhPT1lLm5vZGVUeXBlOylpZigoMSE9PWUubm9kZVR5cGV8fFwiSU5QVVRcIiE9PWUubm9kZU5hbWV8fFwiaGlkZGVuXCIhPT1lLnR5cGUpJiYhdHx8bnVsbD09PShlPWNfKGUubmV4dFNpYmxpbmcpKSlyZXR1cm4gbnVsbDtyZXR1cm4gZX0odCxuLnBlbmRpbmdQcm9wcyxyXykpPyhuLnN0YXRlTm9kZT10LHJPPW4sckM9bnVsbCxlPSEwKTplPSExKSxlfHxyeihuKSksbnVsbDtjYXNlIDEzOnJldHVybiBpQihlLG4sdCk7Y2FzZSA0OnJldHVybiBxKG4sbi5zdGF0ZU5vZGUuY29udGFpbmVySW5mbykscj1uLnBlbmRpbmdQcm9wcyxudWxsPT09ZT9uLmNoaWxkPW95KG4sbnVsbCxyLHQpOml3KGUsbixyLHQpLG4uY2hpbGQ7Y2FzZSAxMTpyZXR1cm4gaWooZSxuLG4udHlwZSxuLnBlbmRpbmdQcm9wcyx0KTtjYXNlIDc6cmV0dXJuIGl3KGUsbixuLnBlbmRpbmdQcm9wcyx0KSxuLmNoaWxkO2Nhc2UgODpjYXNlIDEyOnJldHVybiBpdyhlLG4sbi5wZW5kaW5nUHJvcHMuY2hpbGRyZW4sdCksbi5jaGlsZDtjYXNlIDEwOnJldHVybiByPW4ucGVuZGluZ1Byb3BzLHJGKG4sbi50eXBlLHIudmFsdWUpLGl3KGUsbixyLmNoaWxkcmVuLHQpLG4uY2hpbGQ7Y2FzZSA5OnJldHVybiBvPW4udHlwZS5fY29udGV4dCxyPW4ucGVuZGluZ1Byb3BzLmNoaWxkcmVuLHJaKG4pLHI9cihvPXJZKG8pKSxuLmZsYWdzfD0xLGl3KGUsbixyLHQpLG4uY2hpbGQ7Y2FzZSAxNDpyZXR1cm4gaWsoZSxuLG4udHlwZSxuLnBlbmRpbmdQcm9wcyx0KTtjYXNlIDE1OnJldHVybiBpQShlLG4sbi50eXBlLG4ucGVuZGluZ1Byb3BzLHQpO2Nhc2UgMTk6cmV0dXJuIGlWKGUsbix0KTtjYXNlIDMxOmlmKG89bi5wZW5kaW5nUHJvcHMsaT0wIT0oMTI4Jm4uZmxhZ3MpLG4uZmxhZ3MmPS0xMjksbnVsbD09PWUpaWYoclMpe2lmKFwiaGlkZGVuXCI9PT1vLm1vZGUpaVMobixvKTtlbHNlIGlmKG9GKG4pLCh0PXJDKT9udWxsIT09KHQ9bnVsbCE9PSh0PWNDKHQscl8pKSYmXCImXCI9PT10LmRhdGE/dDpudWxsKSYmKG4ubWVtb2l6ZWRTdGF0ZT17ZGVoeWRyYXRlZDp0LHRyZWVDb250ZXh0Om51bGwhPT1ydj97aWQ6cmIsb3ZlcmZsb3c6cnl9Om51bGwscmV0cnlMYW5lOjB4MjAwMDAwMDAsaHlkcmF0aW9uRXJyb3JzOm51bGx9LChlPXJsKHQpKS5yZXR1cm49bixuLmNoaWxkPWUsck89bixyQz1udWxsKTp0PW51bGwsbnVsbD09PXQpdGhyb3cgcnoobik7bi5sYW5lcz0weDIwMDAwMDAwLG49bnVsbH1lbHNlIG49aVMobixvKTtlbHNlIGlmKG51bGwhPT0ocj1lLm1lbW9pemVkU3RhdGUpKWlmKGE9ci5kZWh5ZHJhdGVkLG9GKG4pLGkpaWYoMjU2Jm4uZmxhZ3Mpbi5mbGFncyY9LTI1NyxuPWlFKGUsbix0KTtlbHNlIGlmKG51bGwhPT1uLm1lbW9pemVkU3RhdGUpbi5jaGlsZD1lLmNoaWxkLG4uZmxhZ3N8PTEyOCxuPW51bGw7ZWxzZSB0aHJvdyBFcnJvcihsKDU1OCkpO2Vsc2UgaWYoaXh8fHJXKGUsbix0LCExKSxpPTAhPSh0JmUuY2hpbGRMYW5lcyksaXh8fGkpe2lmKG51bGwhPT0obz1sTikmJjAhPT0oYT1lXyhvLHQpKSYmYSE9PXIucmV0cnlMYW5lKXRocm93IHIucmV0cnlMYW5lPWEsdDMoZSxhKSxzbyhvLGUsYSksaXk7c2coKSxuPWlFKGUsbix0KX1lbHNlIHQ9ci50cmVlQ29udGV4dCxyQz1jXyhhLm5leHRTaWJsaW5nKSxyTz1uLHJTPSEwLHJFPW51bGwscl89ITEsbnVsbCE9PXQmJnJBKG4sdCksbj1pUyhuLG8pLG4uZmxhZ3N8PTQwOTY7ZWxzZSh0PXJ0KGUuY2hpbGQse21vZGU6by5tb2RlLGNoaWxkcmVuOm8uY2hpbGRyZW59KSkucmVmPW4ucmVmLG4uY2hpbGQ9dCx0LnJldHVybj1uLG49dDtyZXR1cm4gbjtjYXNlIDIyOnJldHVybiBpTyhlLG4sdCxuLnBlbmRpbmdQcm9wcyk7Y2FzZSAyNDpyZXR1cm4gcloobikscj1yWShyMCksbnVsbD09PWU/KG51bGw9PT0obz1vZSgpKSYmKG89bE4sYT1yMSgpLG8ucG9vbGVkQ2FjaGU9YSxhLnJlZkNvdW50KyssbnVsbCE9PWEmJihvLnBvb2xlZENhY2hlTGFuZXN8PXQpLG89YSksbi5tZW1vaXplZFN0YXRlPXtwYXJlbnQ6cixjYWNoZTpvfSxvaihuKSxyRihuLHIwLG8pKTooMCE9KGUubGFuZXMmdCkmJihvayhlLG4pLG9QKG4sbnVsbCxudWxsLHQpLG9fKCkpLG89ZS5tZW1vaXplZFN0YXRlLGE9bi5tZW1vaXplZFN0YXRlLG8ucGFyZW50IT09cj8obz17cGFyZW50OnIsY2FjaGU6cn0sbi5tZW1vaXplZFN0YXRlPW8sMD09PW4ubGFuZXMmJihuLm1lbW9pemVkU3RhdGU9bi51cGRhdGVRdWV1ZS5iYXNlU3RhdGU9byksckYobixyMCxyKSk6KHJGKG4scjAscj1hLmNhY2hlKSxyIT09by5jYWNoZSYmcnEobixbcjBdLHQsITApKSksaXcoZSxuLG4ucGVuZGluZ1Byb3BzLmNoaWxkcmVuLHQpLG4uY2hpbGQ7Y2FzZSAyOTp0aHJvdyBuLnBlbmRpbmdQcm9wc310aHJvdyBFcnJvcihsKDE1NixuLnRhZykpfWZ1bmN0aW9uIGlaKGUpe2UuZmxhZ3N8PTR9ZnVuY3Rpb24gaVkoZSxuLHQscixvKXtpZigobj0wIT0oMzImZS5tb2RlKSkmJihuPSExKSxuKXtpZihlLmZsYWdzfD0weDEwMDAwMDAsKDB4MTNmZmZmNDAmbyk9PT1vKWlmKGUuc3RhdGVOb2RlLmNvbXBsZXRlKWUuZmxhZ3N8PTgxOTI7ZWxzZSBpZihzZigpKWUuZmxhZ3N8PTgxOTI7ZWxzZSB0aHJvdyBvYz1vaSxvb31lbHNlIGUuZmxhZ3MmPS0weDEwMDAwMDF9ZnVuY3Rpb24gaVgoZSxuKXtpZihcInN0eWxlc2hlZXRcIiE9PW4udHlwZXx8MCE9KDQmbi5zdGF0ZS5sb2FkaW5nKSllLmZsYWdzJj0tMHgxMDAwMDAxO2Vsc2UgaWYoZS5mbGFnc3w9MHgxMDAwMDAwLCFjMChuKSlpZihzZigpKWUuZmxhZ3N8PTgxOTI7ZWxzZSB0aHJvdyBvYz1vaSxvb31mdW5jdGlvbiBpSyhlLG4pe251bGwhPT1uJiYoZS5mbGFnc3w9NCksMTYzODQmZS5mbGFncyYmKG49MjIhPT1lLnRhZz9lQSgpOjB4MjAwMDAwMDAsZS5sYW5lc3w9bixsWHw9bil9ZnVuY3Rpb24gaVEoZSxuKXtpZighclMpc3dpdGNoKGUudGFpbE1vZGUpe2Nhc2VcImhpZGRlblwiOm49ZS50YWlsO2Zvcih2YXIgdD1udWxsO251bGwhPT1uOyludWxsIT09bi5hbHRlcm5hdGUmJih0PW4pLG49bi5zaWJsaW5nO251bGw9PT10P2UudGFpbD1udWxsOnQuc2libGluZz1udWxsO2JyZWFrO2Nhc2VcImNvbGxhcHNlZFwiOnQ9ZS50YWlsO2Zvcih2YXIgcj1udWxsO251bGwhPT10OyludWxsIT09dC5hbHRlcm5hdGUmJihyPXQpLHQ9dC5zaWJsaW5nO251bGw9PT1yP258fG51bGw9PT1lLnRhaWw/ZS50YWlsPW51bGw6ZS50YWlsLnNpYmxpbmc9bnVsbDpyLnNpYmxpbmc9bnVsbH19ZnVuY3Rpb24gaUcoZSl7dmFyIG49bnVsbCE9PWUuYWx0ZXJuYXRlJiZlLmFsdGVybmF0ZS5jaGlsZD09PWUuY2hpbGQsdD0wLHI9MDtpZihuKWZvcih2YXIgbz1lLmNoaWxkO251bGwhPT1vOyl0fD1vLmxhbmVzfG8uY2hpbGRMYW5lcyxyfD0weDNlMDAwMDAmby5zdWJ0cmVlRmxhZ3Mscnw9MHgzZTAwMDAwJm8uZmxhZ3Msby5yZXR1cm49ZSxvPW8uc2libGluZztlbHNlIGZvcihvPWUuY2hpbGQ7bnVsbCE9PW87KXR8PW8ubGFuZXN8by5jaGlsZExhbmVzLHJ8PW8uc3VidHJlZUZsYWdzLHJ8PW8uZmxhZ3Msby5yZXR1cm49ZSxvPW8uc2libGluZztyZXR1cm4gZS5zdWJ0cmVlRmxhZ3N8PXIsZS5jaGlsZExhbmVzPXQsbn1mdW5jdGlvbiBpSihlLG4pe3N3aXRjaChyayhuKSxuLnRhZyl7Y2FzZSAzOnJVKHIwKSxXKCk7YnJlYWs7Y2FzZSAyNjpjYXNlIDI3OmNhc2UgNTpaKG4pO2JyZWFrO2Nhc2UgNDpXKCk7YnJlYWs7Y2FzZSAzMTpudWxsIT09bi5tZW1vaXplZFN0YXRlJiZvcShuKTticmVhaztjYXNlIDEzOm9xKG4pO2JyZWFrO2Nhc2UgMTk6TShvVyk7YnJlYWs7Y2FzZSAxMDpyVShuLnR5cGUpO2JyZWFrO2Nhc2UgMjI6Y2FzZSAyMzpvcShuKSxvQigpLG51bGwhPT1lJiZNKHI3KTticmVhaztjYXNlIDI0OnJVKHIwKX19ZnVuY3Rpb24gaTAoZSxuKXt0cnl7dmFyIHQ9bi51cGRhdGVRdWV1ZSxyPW51bGwhPT10P3QubGFzdEVmZmVjdDpudWxsO2lmKG51bGwhPT1yKXt2YXIgbz1yLm5leHQ7dD1vO2Rve2lmKCh0LnRhZyZlKT09PWUpe3I9dm9pZCAwO3ZhciBhPXQuY3JlYXRlO3QuaW5zdC5kZXN0cm95PXI9YSgpfXQ9dC5uZXh0fXdoaWxlKHQhPT1vKX19Y2F0Y2goZSl7c1AobixuLnJldHVybixlKX19ZnVuY3Rpb24gaTEoZSxuLHQpe3RyeXt2YXIgcj1uLnVwZGF0ZVF1ZXVlLG89bnVsbCE9PXI/ci5sYXN0RWZmZWN0Om51bGw7aWYobnVsbCE9PW8pe3ZhciBhPW8ubmV4dDtyPWE7ZG97aWYoKHIudGFnJmUpPT09ZSl7dmFyIGk9ci5pbnN0LGw9aS5kZXN0cm95O2lmKHZvaWQgMCE9PWwpe2kuZGVzdHJveT12b2lkIDAsbz1uO3RyeXtsKCl9Y2F0Y2goZSl7c1Aobyx0LGUpfX19cj1yLm5leHR9d2hpbGUociE9PWEpfX1jYXRjaChlKXtzUChuLG4ucmV0dXJuLGUpfX1mdW5jdGlvbiBpMihlKXt2YXIgbj1lLnVwZGF0ZVF1ZXVlO2lmKG51bGwhPT1uKXt2YXIgdD1lLnN0YXRlTm9kZTt0cnl7b0wobix0KX1jYXRjaChuKXtzUChlLGUucmV0dXJuLG4pfX19ZnVuY3Rpb24gaTQoZSxuLHQpe3QucHJvcHM9aWMoZS50eXBlLGUubWVtb2l6ZWRQcm9wcyksdC5zdGF0ZT1lLm1lbW9pemVkU3RhdGU7dHJ5e3QuY29tcG9uZW50V2lsbFVubW91bnQoKX1jYXRjaCh0KXtzUChlLG4sdCl9fWZ1bmN0aW9uIGk1KGUsbil7dHJ5e3ZhciB0PWUucmVmO2lmKG51bGwhPT10KXtzd2l0Y2goZS50YWcpe2Nhc2UgMjY6Y2FzZSAyNzpjYXNlIDU6dmFyIHI9ZS5zdGF0ZU5vZGU7YnJlYWs7ZGVmYXVsdDpyPWUuc3RhdGVOb2RlfVwiZnVuY3Rpb25cIj09dHlwZW9mIHQ/ZS5yZWZDbGVhbnVwPXQocik6dC5jdXJyZW50PXJ9fWNhdGNoKHQpe3NQKGUsbix0KX19ZnVuY3Rpb24gaTMoZSxuKXt2YXIgdD1lLnJlZixyPWUucmVmQ2xlYW51cDtpZihudWxsIT09dClpZihcImZ1bmN0aW9uXCI9PXR5cGVvZiByKXRyeXtyKCl9Y2F0Y2godCl7c1AoZSxuLHQpfWZpbmFsbHl7ZS5yZWZDbGVhbnVwPW51bGwsbnVsbCE9KGU9ZS5hbHRlcm5hdGUpJiYoZS5yZWZDbGVhbnVwPW51bGwpfWVsc2UgaWYoXCJmdW5jdGlvblwiPT10eXBlb2YgdCl0cnl7dChudWxsKX1jYXRjaCh0KXtzUChlLG4sdCl9ZWxzZSB0LmN1cnJlbnQ9bnVsbH1mdW5jdGlvbiBpNihlKXt2YXIgbj1lLnR5cGUsdD1lLm1lbW9pemVkUHJvcHMscj1lLnN0YXRlTm9kZTt0cnl7c3dpdGNoKG4pe2Nhc2VcImJ1dHRvblwiOmNhc2VcImlucHV0XCI6Y2FzZVwic2VsZWN0XCI6Y2FzZVwidGV4dGFyZWFcIjp0LmF1dG9Gb2N1cyYmci5mb2N1cygpO2JyZWFrO2Nhc2VcImltZ1wiOnQuc3JjP3Iuc3JjPXQuc3JjOnQuc3JjU2V0JiYoci5zcmNzZXQ9dC5zcmNTZXQpfX1jYXRjaChuKXtzUChlLGUucmV0dXJuLG4pfX1mdW5jdGlvbiBpOShlLG4sdCl7dHJ5e3ZhciByPWUuc3RhdGVOb2RlOyhmdW5jdGlvbihlLG4sdCxyKXtzd2l0Y2gobil7Y2FzZVwiZGl2XCI6Y2FzZVwic3BhblwiOmNhc2VcInN2Z1wiOmNhc2VcInBhdGhcIjpjYXNlXCJhXCI6Y2FzZVwiZ1wiOmNhc2VcInBcIjpjYXNlXCJsaVwiOmJyZWFrO2Nhc2VcImlucHV0XCI6dmFyIG89bnVsbCxhPW51bGwsaT1udWxsLHM9bnVsbCxjPW51bGwsdT1udWxsLGQ9bnVsbDtmb3IoaCBpbiB0KXt2YXIgZj10W2hdO2lmKHQuaGFzT3duUHJvcGVydHkoaCkmJm51bGwhPWYpc3dpdGNoKGgpe2Nhc2VcImNoZWNrZWRcIjpjYXNlXCJ2YWx1ZVwiOmJyZWFrO2Nhc2VcImRlZmF1bHRWYWx1ZVwiOmM9ZjtkZWZhdWx0OnIuaGFzT3duUHJvcGVydHkoaCl8fGNsKGUsbixoLG51bGwscixmKX19Zm9yKHZhciBwIGluIHIpe3ZhciBoPXJbcF07aWYoZj10W3BdLHIuaGFzT3duUHJvcGVydHkocCkmJihudWxsIT1ofHxudWxsIT1mKSlzd2l0Y2gocCl7Y2FzZVwidHlwZVwiOmE9aDticmVhaztjYXNlXCJuYW1lXCI6bz1oO2JyZWFrO2Nhc2VcImNoZWNrZWRcIjp1PWg7YnJlYWs7Y2FzZVwiZGVmYXVsdENoZWNrZWRcIjpkPWg7YnJlYWs7Y2FzZVwidmFsdWVcIjppPWg7YnJlYWs7Y2FzZVwiZGVmYXVsdFZhbHVlXCI6cz1oO2JyZWFrO2Nhc2VcImNoaWxkcmVuXCI6Y2FzZVwiZGFuZ2Vyb3VzbHlTZXRJbm5lckhUTUxcIjppZihudWxsIT1oKXRocm93IEVycm9yKGwoMTM3LG4pKTticmVhaztkZWZhdWx0OmghPT1mJiZjbChlLG4scCxoLHIsZil9fW50KGUsaSxzLGMsdSxkLGEsbyk7cmV0dXJuO2Nhc2VcInNlbGVjdFwiOmZvcihhIGluIGg9aT1zPXA9bnVsbCx0KWlmKGM9dFthXSx0Lmhhc093blByb3BlcnR5KGEpJiZudWxsIT1jKXN3aXRjaChhKXtjYXNlXCJ2YWx1ZVwiOmJyZWFrO2Nhc2VcIm11bHRpcGxlXCI6aD1jO2RlZmF1bHQ6ci5oYXNPd25Qcm9wZXJ0eShhKXx8Y2woZSxuLGEsbnVsbCxyLGMpfWZvcihvIGluIHIpaWYoYT1yW29dLGM9dFtvXSxyLmhhc093blByb3BlcnR5KG8pJiYobnVsbCE9YXx8bnVsbCE9Yykpc3dpdGNoKG8pe2Nhc2VcInZhbHVlXCI6cD1hO2JyZWFrO2Nhc2VcImRlZmF1bHRWYWx1ZVwiOnM9YTticmVhaztjYXNlXCJtdWx0aXBsZVwiOmk9YTtkZWZhdWx0OmEhPT1jJiZjbChlLG4sbyxhLHIsYyl9bj1zLHQ9aSxyPWgsbnVsbCE9cD9uYShlLCEhdCxwLCExKTohIXIhPSEhdCYmKG51bGwhPW4/bmEoZSwhIXQsbiwhMCk6bmEoZSwhIXQsdD9bXTpcIlwiLCExKSk7cmV0dXJuO2Nhc2VcInRleHRhcmVhXCI6Zm9yKHMgaW4gaD1wPW51bGwsdClpZihvPXRbc10sdC5oYXNPd25Qcm9wZXJ0eShzKSYmbnVsbCE9byYmIXIuaGFzT3duUHJvcGVydHkocykpc3dpdGNoKHMpe2Nhc2VcInZhbHVlXCI6Y2FzZVwiY2hpbGRyZW5cIjpicmVhaztkZWZhdWx0OmNsKGUsbixzLG51bGwscixvKX1mb3IoaSBpbiByKWlmKG89cltpXSxhPXRbaV0sci5oYXNPd25Qcm9wZXJ0eShpKSYmKG51bGwhPW98fG51bGwhPWEpKXN3aXRjaChpKXtjYXNlXCJ2YWx1ZVwiOnA9bzticmVhaztjYXNlXCJkZWZhdWx0VmFsdWVcIjpoPW87YnJlYWs7Y2FzZVwiY2hpbGRyZW5cIjpicmVhaztjYXNlXCJkYW5nZXJvdXNseVNldElubmVySFRNTFwiOmlmKG51bGwhPW8pdGhyb3cgRXJyb3IobCg5MSkpO2JyZWFrO2RlZmF1bHQ6byE9PWEmJmNsKGUsbixpLG8scixhKX1uaShlLHAsaCk7cmV0dXJuO2Nhc2VcIm9wdGlvblwiOmZvcih2YXIgZyBpbiB0KXA9dFtnXSx0Lmhhc093blByb3BlcnR5KGcpJiZudWxsIT1wJiYhci5oYXNPd25Qcm9wZXJ0eShnKSYmKFwic2VsZWN0ZWRcIj09PWc/ZS5zZWxlY3RlZD0hMTpjbChlLG4sZyxudWxsLHIscCkpO2ZvcihjIGluIHIpcD1yW2NdLGg9dFtjXSxyLmhhc093blByb3BlcnR5KGMpJiZwIT09aCYmKG51bGwhPXB8fG51bGwhPWgpJiYoXCJzZWxlY3RlZFwiPT09Yz9lLnNlbGVjdGVkPXAmJlwiZnVuY3Rpb25cIiE9dHlwZW9mIHAmJlwic3ltYm9sXCIhPXR5cGVvZiBwOmNsKGUsbixjLHAscixoKSk7cmV0dXJuO2Nhc2VcImltZ1wiOmNhc2VcImxpbmtcIjpjYXNlXCJhcmVhXCI6Y2FzZVwiYmFzZVwiOmNhc2VcImJyXCI6Y2FzZVwiY29sXCI6Y2FzZVwiZW1iZWRcIjpjYXNlXCJoclwiOmNhc2VcImtleWdlblwiOmNhc2VcIm1ldGFcIjpjYXNlXCJwYXJhbVwiOmNhc2VcInNvdXJjZVwiOmNhc2VcInRyYWNrXCI6Y2FzZVwid2JyXCI6Y2FzZVwibWVudWl0ZW1cIjpmb3IodmFyIG0gaW4gdClwPXRbbV0sdC5oYXNPd25Qcm9wZXJ0eShtKSYmbnVsbCE9cCYmIXIuaGFzT3duUHJvcGVydHkobSkmJmNsKGUsbixtLG51bGwscixwKTtmb3IodSBpbiByKWlmKHA9clt1XSxoPXRbdV0sci5oYXNPd25Qcm9wZXJ0eSh1KSYmcCE9PWgmJihudWxsIT1wfHxudWxsIT1oKSlzd2l0Y2godSl7Y2FzZVwiY2hpbGRyZW5cIjpjYXNlXCJkYW5nZXJvdXNseVNldElubmVySFRNTFwiOmlmKG51bGwhPXApdGhyb3cgRXJyb3IobCgxMzcsbikpO2JyZWFrO2RlZmF1bHQ6Y2woZSxuLHUscCxyLGgpfXJldHVybjtkZWZhdWx0OmlmKG5mKG4pKXtmb3IodmFyIHYgaW4gdClwPXRbdl0sdC5oYXNPd25Qcm9wZXJ0eSh2KSYmdm9pZCAwIT09cCYmIXIuaGFzT3duUHJvcGVydHkodikmJmNzKGUsbix2LHZvaWQgMCxyLHApO2ZvcihkIGluIHIpcD1yW2RdLGg9dFtkXSxyLmhhc093blByb3BlcnR5KGQpJiZwIT09aCYmKHZvaWQgMCE9PXB8fHZvaWQgMCE9PWgpJiZjcyhlLG4sZCxwLHIsaCk7cmV0dXJufX1mb3IodmFyIGIgaW4gdClwPXRbYl0sdC5oYXNPd25Qcm9wZXJ0eShiKSYmbnVsbCE9cCYmIXIuaGFzT3duUHJvcGVydHkoYikmJmNsKGUsbixiLG51bGwscixwKTtmb3IoZiBpbiByKXA9cltmXSxoPXRbZl0sci5oYXNPd25Qcm9wZXJ0eShmKSYmcCE9PWgmJihudWxsIT1wfHxudWxsIT1oKSYmY2woZSxuLGYscCxyLGgpfSkocixlLnR5cGUsdCxuKSxyW2VEXT1ufWNhdGNoKG4pe3NQKGUsZS5yZXR1cm4sbil9fWZ1bmN0aW9uIGk4KGUpe3JldHVybiA1PT09ZS50YWd8fDM9PT1lLnRhZ3x8MjY9PT1lLnRhZ3x8Mjc9PT1lLnRhZyYmY2ooZS50eXBlKXx8ND09PWUudGFnfWZ1bmN0aW9uIGk3KGUpe2U6Zm9yKDs7KXtmb3IoO251bGw9PT1lLnNpYmxpbmc7KXtpZihudWxsPT09ZS5yZXR1cm58fGk4KGUucmV0dXJuKSlyZXR1cm4gbnVsbDtlPWUucmV0dXJufWZvcihlLnNpYmxpbmcucmV0dXJuPWUucmV0dXJuLGU9ZS5zaWJsaW5nOzUhPT1lLnRhZyYmNiE9PWUudGFnJiYxOCE9PWUudGFnOyl7aWYoMjc9PT1lLnRhZyYmY2ooZS50eXBlKXx8MiZlLmZsYWdzfHxudWxsPT09ZS5jaGlsZHx8ND09PWUudGFnKWNvbnRpbnVlIGU7ZS5jaGlsZC5yZXR1cm49ZSxlPWUuY2hpbGR9aWYoISgyJmUuZmxhZ3MpKXJldHVybiBlLnN0YXRlTm9kZX19ZnVuY3Rpb24gbGUoZSxuLHQpe3ZhciByPWUudGFnO2lmKDU9PT1yfHw2PT09cillPWUuc3RhdGVOb2RlLG4/dC5pbnNlcnRCZWZvcmUoZSxuKTp0LmFwcGVuZENoaWxkKGUpO2Vsc2UgaWYoNCE9PXImJigyNz09PXImJmNqKGUudHlwZSkmJih0PWUuc3RhdGVOb2RlKSxudWxsIT09KGU9ZS5jaGlsZCkpKWZvcihsZShlLG4sdCksZT1lLnNpYmxpbmc7bnVsbCE9PWU7KWxlKGUsbix0KSxlPWUuc2libGluZ31mdW5jdGlvbiBsbihlKXt2YXIgbj1lLnN0YXRlTm9kZSx0PWUubWVtb2l6ZWRQcm9wczt0cnl7Zm9yKHZhciByPWUudHlwZSxvPW4uYXR0cmlidXRlcztvLmxlbmd0aDspbi5yZW1vdmVBdHRyaWJ1dGVOb2RlKG9bMF0pO2NjKG4scix0KSxuW2VOXT1lLG5bZURdPXR9Y2F0Y2gobil7c1AoZSxlLnJldHVybixuKX19dmFyIGx0PSExLGxyPSExLGxvPSExLGxhPVwiZnVuY3Rpb25cIj09dHlwZW9mIFdlYWtTZXQ/V2Vha1NldDpTZXQsbGk9bnVsbDtmdW5jdGlvbiBsbChlLG4sdCl7dmFyIHI9dC5mbGFncztzd2l0Y2godC50YWcpe2Nhc2UgMDpjYXNlIDExOmNhc2UgMTU6bHkoZSx0KSw0JnImJmkwKDUsdCk7YnJlYWs7Y2FzZSAxOmlmKGx5KGUsdCksNCZyKWlmKGU9dC5zdGF0ZU5vZGUsbnVsbD09PW4pdHJ5e2UuY29tcG9uZW50RGlkTW91bnQoKX1jYXRjaChlKXtzUCh0LHQucmV0dXJuLGUpfWVsc2V7dmFyIG89aWModC50eXBlLG4ubWVtb2l6ZWRQcm9wcyk7bj1uLm1lbW9pemVkU3RhdGU7dHJ5e2UuY29tcG9uZW50RGlkVXBkYXRlKG8sbixlLl9fcmVhY3RJbnRlcm5hbFNuYXBzaG90QmVmb3JlVXBkYXRlKX1jYXRjaChlKXtzUCh0LHQucmV0dXJuLGUpfX02NCZyJiZpMih0KSw1MTImciYmaTUodCx0LnJldHVybik7YnJlYWs7Y2FzZSAzOmlmKGx5KGUsdCksNjQmciYmbnVsbCE9PShlPXQudXBkYXRlUXVldWUpKXtpZihuPW51bGwsbnVsbCE9PXQuY2hpbGQpc3dpdGNoKHQuY2hpbGQudGFnKXtjYXNlIDI3OmNhc2UgNTpjYXNlIDE6bj10LmNoaWxkLnN0YXRlTm9kZX10cnl7b0woZSxuKX1jYXRjaChlKXtzUCh0LHQucmV0dXJuLGUpfX1icmVhaztjYXNlIDI3Om51bGw9PT1uJiY0JnImJmxuKHQpO2Nhc2UgMjY6Y2FzZSA1Omx5KGUsdCksbnVsbD09PW4mJjQmciYmaTYodCksNTEyJnImJmk1KHQsdC5yZXR1cm4pO2JyZWFrO2Nhc2UgMTI6ZGVmYXVsdDpseShlLHQpO2JyZWFrO2Nhc2UgMzE6bHkoZSx0KSw0JnImJmxmKGUsdCk7YnJlYWs7Y2FzZSAxMzpseShlLHQpLDQmciYmbHAoZSx0KSw2NCZyJiZudWxsIT09KGU9dC5tZW1vaXplZFN0YXRlKSYmbnVsbCE9PShlPWUuZGVoeWRyYXRlZCkmJmZ1bmN0aW9uKGUsbil7dmFyIHQ9ZS5vd25lckRvY3VtZW50O2lmKFwiJH5cIj09PWUuZGF0YSllLl9yZWFjdFJldHJ5PW47ZWxzZSBpZihcIiQ/XCIhPT1lLmRhdGF8fFwibG9hZGluZ1wiIT09dC5yZWFkeVN0YXRlKW4oKTtlbHNle3ZhciByPWZ1bmN0aW9uKCl7bigpLHQucmVtb3ZlRXZlbnRMaXN0ZW5lcihcIkRPTUNvbnRlbnRMb2FkZWRcIixyKX07dC5hZGRFdmVudExpc3RlbmVyKFwiRE9NQ29udGVudExvYWRlZFwiLHIpLGUuX3JlYWN0UmV0cnk9cn19KGUsdD1zUi5iaW5kKG51bGwsdCkpO2JyZWFrO2Nhc2UgMjI6aWYoIShyPW51bGwhPT10Lm1lbW9pemVkU3RhdGV8fGx0KSl7bj1udWxsIT09biYmbnVsbCE9PW4ubWVtb2l6ZWRTdGF0ZXx8bHIsbz1sdDt2YXIgYT1scjtsdD1yLChscj1uKSYmIWE/ZnVuY3Rpb24gZShuLHQscil7Zm9yKHI9ciYmMCE9KDg3NzImdC5zdWJ0cmVlRmxhZ3MpLHQ9dC5jaGlsZDtudWxsIT09dDspe3ZhciBvPXQuYWx0ZXJuYXRlLGE9bixpPXQsbD1pLmZsYWdzO3N3aXRjaChpLnRhZyl7Y2FzZSAwOmNhc2UgMTE6Y2FzZSAxNTplKGEsaSxyKSxpMCg0LGkpO2JyZWFrO2Nhc2UgMTppZihlKGEsaSxyKSxcImZ1bmN0aW9uXCI9PXR5cGVvZihhPShvPWkpLnN0YXRlTm9kZSkuY29tcG9uZW50RGlkTW91bnQpdHJ5e2EuY29tcG9uZW50RGlkTW91bnQoKX1jYXRjaChlKXtzUChvLG8ucmV0dXJuLGUpfWlmKG51bGwhPT0oYT0obz1pKS51cGRhdGVRdWV1ZSkpe3ZhciBzPW8uc3RhdGVOb2RlO3RyeXt2YXIgYz1hLnNoYXJlZC5oaWRkZW5DYWxsYmFja3M7aWYobnVsbCE9PWMpZm9yKGEuc2hhcmVkLmhpZGRlbkNhbGxiYWNrcz1udWxsLGE9MDthPGMubGVuZ3RoO2ErKylveihjW2FdLHMpfWNhdGNoKGUpe3NQKG8sby5yZXR1cm4sZSl9fXImJjY0JmwmJmkyKGkpLGk1KGksaS5yZXR1cm4pO2JyZWFrO2Nhc2UgMjc6bG4oaSk7Y2FzZSAyNjpjYXNlIDU6ZShhLGksciksciYmbnVsbD09PW8mJjQmbCYmaTYoaSksaTUoaSxpLnJldHVybik7YnJlYWs7Y2FzZSAxMjpkZWZhdWx0OmUoYSxpLHIpO2JyZWFrO2Nhc2UgMzE6ZShhLGksciksciYmNCZsJiZsZihhLGkpO2JyZWFrO2Nhc2UgMTM6ZShhLGksciksciYmNCZsJiZscChhLGkpO2JyZWFrO2Nhc2UgMjI6bnVsbD09PWkubWVtb2l6ZWRTdGF0ZSYmZShhLGksciksaTUoaSxpLnJldHVybik7Y2FzZSAzMDp9dD10LnNpYmxpbmd9fShlLHQsMCE9KDg3NzImdC5zdWJ0cmVlRmxhZ3MpKTpseShlLHQpLGx0PW8sbHI9YX1jYXNlIDMwOn19dmFyIGxzPW51bGwsbGM9ITE7ZnVuY3Rpb24gbHUoZSxuLHQpe2Zvcih0PXQuY2hpbGQ7bnVsbCE9PXQ7KWxkKGUsbix0KSx0PXQuc2libGluZ31mdW5jdGlvbiBsZChlLG4sdCl7aWYoZXAmJlwiZnVuY3Rpb25cIj09dHlwZW9mIGVwLm9uQ29tbWl0RmliZXJVbm1vdW50KXRyeXtlcC5vbkNvbW1pdEZpYmVyVW5tb3VudChlZix0KX1jYXRjaChlKXt9c3dpdGNoKHQudGFnKXtjYXNlIDI2OmxyfHxpMyh0LG4pLGx1KGUsbix0KSx0Lm1lbW9pemVkU3RhdGU/dC5tZW1vaXplZFN0YXRlLmNvdW50LS06dC5zdGF0ZU5vZGUmJih0PXQuc3RhdGVOb2RlKS5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKHQpO2JyZWFrO2Nhc2UgMjc6bHJ8fGkzKHQsbik7dmFyIHI9bHMsbz1sYztjaih0LnR5cGUpJiYobHM9dC5zdGF0ZU5vZGUsbGM9ITEpLGx1KGUsbix0KSxjUih0LnN0YXRlTm9kZSksbHM9cixsYz1vO2JyZWFrO2Nhc2UgNTpscnx8aTModCxuKTtjYXNlIDY6aWYocj1scyxvPWxjLGxzPW51bGwsbHUoZSxuLHQpLGxzPXIsbGM9byxudWxsIT09bHMpaWYobGMpdHJ5eyg5PT09bHMubm9kZVR5cGU/bHMuYm9keTpcIkhUTUxcIj09PWxzLm5vZGVOYW1lP2xzLm93bmVyRG9jdW1lbnQuYm9keTpscykucmVtb3ZlQ2hpbGQodC5zdGF0ZU5vZGUpfWNhdGNoKGUpe3NQKHQsbixlKX1lbHNlIHRyeXtscy5yZW1vdmVDaGlsZCh0LnN0YXRlTm9kZSl9Y2F0Y2goZSl7c1AodCxuLGUpfWJyZWFrO2Nhc2UgMTg6bnVsbCE9PWxzJiYobGM/KGNrKDk9PT0oZT1scykubm9kZVR5cGU/ZS5ib2R5OlwiSFRNTFwiPT09ZS5ub2RlTmFtZT9lLm93bmVyRG9jdW1lbnQuYm9keTplLHQuc3RhdGVOb2RlKSx1RShlKSk6Y2sobHMsdC5zdGF0ZU5vZGUpKTticmVhaztjYXNlIDQ6cj1scyxvPWxjLGxzPXQuc3RhdGVOb2RlLmNvbnRhaW5lckluZm8sbGM9ITAsbHUoZSxuLHQpLGxzPXIsbGM9bzticmVhaztjYXNlIDA6Y2FzZSAxMTpjYXNlIDE0OmNhc2UgMTU6bHJ8fGkxKDIsdCxuKSxscnx8aTEoNCx0LG4pLGx1KGUsbix0KTticmVhaztjYXNlIDE6bHJ8fChpMyh0LG4pLFwiZnVuY3Rpb25cIj09dHlwZW9mKHI9dC5zdGF0ZU5vZGUpLmNvbXBvbmVudFdpbGxVbm1vdW50JiZpNCh0LG4scikpLGx1KGUsbix0KTticmVhaztjYXNlIDIxOmRlZmF1bHQ6bHUoZSxuLHQpO2JyZWFrO2Nhc2UgMjI6bHI9KHI9bHIpfHxudWxsIT09dC5tZW1vaXplZFN0YXRlLGx1KGUsbix0KSxscj1yfX1mdW5jdGlvbiBsZihlLG4pe2lmKG51bGw9PT1uLm1lbW9pemVkU3RhdGUmJm51bGwhPT0oZT1uLmFsdGVybmF0ZSkmJm51bGwhPT0oZT1lLm1lbW9pemVkU3RhdGUpKXtlPWUuZGVoeWRyYXRlZDt0cnl7dUUoZSl9Y2F0Y2goZSl7c1AobixuLnJldHVybixlKX19fWZ1bmN0aW9uIGxwKGUsbil7aWYobnVsbD09PW4ubWVtb2l6ZWRTdGF0ZSYmbnVsbCE9PShlPW4uYWx0ZXJuYXRlKSYmbnVsbCE9PShlPWUubWVtb2l6ZWRTdGF0ZSkmJm51bGwhPT0oZT1lLmRlaHlkcmF0ZWQpKXRyeXt1RShlKX1jYXRjaChlKXtzUChuLG4ucmV0dXJuLGUpfX1mdW5jdGlvbiBsaChlLG4pe3ZhciB0PWZ1bmN0aW9uKGUpe3N3aXRjaChlLnRhZyl7Y2FzZSAzMTpjYXNlIDEzOmNhc2UgMTk6dmFyIG49ZS5zdGF0ZU5vZGU7cmV0dXJuIG51bGw9PT1uJiYobj1lLnN0YXRlTm9kZT1uZXcgbGEpLG47Y2FzZSAyMjpyZXR1cm4gbnVsbD09PShuPShlPWUuc3RhdGVOb2RlKS5fcmV0cnlDYWNoZSkmJihuPWUuX3JldHJ5Q2FjaGU9bmV3IGxhKSxuO2RlZmF1bHQ6dGhyb3cgRXJyb3IobCg0MzUsZS50YWcpKX19KGUpO24uZm9yRWFjaChmdW5jdGlvbihuKXt2YXIgcj1zTi5iaW5kKG51bGwsZSxuKTt0LmhhcyhuKXx8KHQuYWRkKG4pLG4udGhlbihyLHIpKX0pfWZ1bmN0aW9uIGxnKGUsbil7dmFyIHQ9bi5kZWxldGlvbnM7aWYobnVsbCE9PXQpZm9yKHZhciByPTA7cjx0Lmxlbmd0aDtyKyspe3ZhciBvPXRbcl0sYT1lLGk9bixzPWk7ZTpmb3IoO251bGwhPT1zOyl7c3dpdGNoKHMudGFnKXtjYXNlIDI3OmlmKGNqKHMudHlwZSkpe2xzPXMuc3RhdGVOb2RlLGxjPSExO2JyZWFrIGV9YnJlYWs7Y2FzZSA1OmxzPXMuc3RhdGVOb2RlLGxjPSExO2JyZWFrIGU7Y2FzZSAzOmNhc2UgNDpscz1zLnN0YXRlTm9kZS5jb250YWluZXJJbmZvLGxjPSEwO2JyZWFrIGV9cz1zLnJldHVybn1pZihudWxsPT09bHMpdGhyb3cgRXJyb3IobCgxNjApKTtsZChhLGksbyksbHM9bnVsbCxsYz0hMSxudWxsIT09KGE9by5hbHRlcm5hdGUpJiYoYS5yZXR1cm49bnVsbCksby5yZXR1cm49bnVsbH1pZigxMzg3OCZuLnN1YnRyZWVGbGFncylmb3Iobj1uLmNoaWxkO251bGwhPT1uOylsdihuLGUpLG49bi5zaWJsaW5nfXZhciBsbT1udWxsO2Z1bmN0aW9uIGx2KGUsbil7dmFyIHQ9ZS5hbHRlcm5hdGUscj1lLmZsYWdzO3N3aXRjaChlLnRhZyl7Y2FzZSAwOmNhc2UgMTE6Y2FzZSAxNDpjYXNlIDE1OmxnKG4sZSksbGIoZSksNCZyJiYoaTEoMyxlLGUucmV0dXJuKSxpMCgzLGUpLGkxKDUsZSxlLnJldHVybikpO2JyZWFrO2Nhc2UgMTpsZyhuLGUpLGxiKGUpLDUxMiZyJiYobHJ8fG51bGw9PT10fHxpMyh0LHQucmV0dXJuKSksNjQmciYmbHQmJm51bGwhPT0oZT1lLnVwZGF0ZVF1ZXVlKSYmbnVsbCE9PShyPWUuY2FsbGJhY2tzKSYmKHQ9ZS5zaGFyZWQuaGlkZGVuQ2FsbGJhY2tzLGUuc2hhcmVkLmhpZGRlbkNhbGxiYWNrcz1udWxsPT09dD9yOnQuY29uY2F0KHIpKTticmVhaztjYXNlIDI2OnZhciBvPWxtO2lmKGxnKG4sZSksbGIoZSksNTEyJnImJihscnx8bnVsbD09PXR8fGkzKHQsdC5yZXR1cm4pKSw0JnIpe3ZhciBhPW51bGwhPT10P3QubWVtb2l6ZWRTdGF0ZTpudWxsO2lmKHI9ZS5tZW1vaXplZFN0YXRlLG51bGw9PT10KWlmKG51bGw9PT1yKWlmKG51bGw9PT1lLnN0YXRlTm9kZSl7ZTp7cj1lLnR5cGUsdD1lLm1lbW9pemVkUHJvcHMsbz1vLm93bmVyRG9jdW1lbnR8fG87bjpzd2l0Y2gocil7Y2FzZVwidGl0bGVcIjooIShhPW8uZ2V0RWxlbWVudHNCeVRhZ05hbWUoXCJ0aXRsZVwiKVswXSl8fGFbZVVdfHxhW2VOXXx8XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiPT09YS5uYW1lc3BhY2VVUkl8fGEuaGFzQXR0cmlidXRlKFwiaXRlbXByb3BcIikpJiYoYT1vLmNyZWF0ZUVsZW1lbnQociksby5oZWFkLmluc2VydEJlZm9yZShhLG8ucXVlcnlTZWxlY3RvcihcImhlYWQgPiB0aXRsZVwiKSkpLGNjKGEscix0KSxhW2VOXT1lLGVZKGEpLHI9YTticmVhayBlO2Nhc2VcImxpbmtcIjp2YXIgaT1jRyhcImxpbmtcIixcImhyZWZcIixvKS5nZXQocisodC5ocmVmfHxcIlwiKSk7aWYoaSl7Zm9yKHZhciBzPTA7czxpLmxlbmd0aDtzKyspaWYoKGE9aVtzXSkuZ2V0QXR0cmlidXRlKFwiaHJlZlwiKT09PShudWxsPT10LmhyZWZ8fFwiXCI9PT10LmhyZWY/bnVsbDp0LmhyZWYpJiZhLmdldEF0dHJpYnV0ZShcInJlbFwiKT09PShudWxsPT10LnJlbD9udWxsOnQucmVsKSYmYS5nZXRBdHRyaWJ1dGUoXCJ0aXRsZVwiKT09PShudWxsPT10LnRpdGxlP251bGw6dC50aXRsZSkmJmEuZ2V0QXR0cmlidXRlKFwiY3Jvc3NvcmlnaW5cIik9PT0obnVsbD09dC5jcm9zc09yaWdpbj9udWxsOnQuY3Jvc3NPcmlnaW4pKXtpLnNwbGljZShzLDEpO2JyZWFrIG59fWNjKGE9by5jcmVhdGVFbGVtZW50KHIpLHIsdCksby5oZWFkLmFwcGVuZENoaWxkKGEpO2JyZWFrO2Nhc2VcIm1ldGFcIjppZihpPWNHKFwibWV0YVwiLFwiY29udGVudFwiLG8pLmdldChyKyh0LmNvbnRlbnR8fFwiXCIpKSl7Zm9yKHM9MDtzPGkubGVuZ3RoO3MrKylpZigoYT1pW3NdKS5nZXRBdHRyaWJ1dGUoXCJjb250ZW50XCIpPT09KG51bGw9PXQuY29udGVudD9udWxsOlwiXCIrdC5jb250ZW50KSYmYS5nZXRBdHRyaWJ1dGUoXCJuYW1lXCIpPT09KG51bGw9PXQubmFtZT9udWxsOnQubmFtZSkmJmEuZ2V0QXR0cmlidXRlKFwicHJvcGVydHlcIik9PT0obnVsbD09dC5wcm9wZXJ0eT9udWxsOnQucHJvcGVydHkpJiZhLmdldEF0dHJpYnV0ZShcImh0dHAtZXF1aXZcIik9PT0obnVsbD09dC5odHRwRXF1aXY/bnVsbDp0Lmh0dHBFcXVpdikmJmEuZ2V0QXR0cmlidXRlKFwiY2hhcnNldFwiKT09PShudWxsPT10LmNoYXJTZXQ/bnVsbDp0LmNoYXJTZXQpKXtpLnNwbGljZShzLDEpO2JyZWFrIG59fWNjKGE9by5jcmVhdGVFbGVtZW50KHIpLHIsdCksby5oZWFkLmFwcGVuZENoaWxkKGEpO2JyZWFrO2RlZmF1bHQ6dGhyb3cgRXJyb3IobCg0NjgscikpfWFbZU5dPWUsZVkoYSkscj1hfWUuc3RhdGVOb2RlPXJ9ZWxzZSBjSihvLGUudHlwZSxlLnN0YXRlTm9kZSk7ZWxzZSBlLnN0YXRlTm9kZT1jWihvLHIsZS5tZW1vaXplZFByb3BzKTtlbHNlIGEhPT1yPyhudWxsPT09YT9udWxsIT09dC5zdGF0ZU5vZGUmJih0PXQuc3RhdGVOb2RlKS5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKHQpOmEuY291bnQtLSxudWxsPT09cj9jSihvLGUudHlwZSxlLnN0YXRlTm9kZSk6Y1oobyxyLGUubWVtb2l6ZWRQcm9wcykpOm51bGw9PT1yJiZudWxsIT09ZS5zdGF0ZU5vZGUmJmk5KGUsZS5tZW1vaXplZFByb3BzLHQubWVtb2l6ZWRQcm9wcyl9YnJlYWs7Y2FzZSAyNzpsZyhuLGUpLGxiKGUpLDUxMiZyJiYobHJ8fG51bGw9PT10fHxpMyh0LHQucmV0dXJuKSksbnVsbCE9PXQmJjQmciYmaTkoZSxlLm1lbW9pemVkUHJvcHMsdC5tZW1vaXplZFByb3BzKTticmVhaztjYXNlIDU6aWYobGcobixlKSxsYihlKSw1MTImciYmKGxyfHxudWxsPT09dHx8aTModCx0LnJldHVybikpLDMyJmUuZmxhZ3Mpe289ZS5zdGF0ZU5vZGU7dHJ5e25zKG8sXCJcIil9Y2F0Y2gobil7c1AoZSxlLnJldHVybixuKX19NCZyJiZudWxsIT1lLnN0YXRlTm9kZSYmKG89ZS5tZW1vaXplZFByb3BzLGk5KGUsbyxudWxsIT09dD90Lm1lbW9pemVkUHJvcHM6bykpLDEwMjQmciYmKGxvPSEwKTticmVhaztjYXNlIDY6aWYobGcobixlKSxsYihlKSw0JnIpe2lmKG51bGw9PT1lLnN0YXRlTm9kZSl0aHJvdyBFcnJvcihsKDE2MikpO3I9ZS5tZW1vaXplZFByb3BzLHQ9ZS5zdGF0ZU5vZGU7dHJ5e3Qubm9kZVZhbHVlPXJ9Y2F0Y2gobil7c1AoZSxlLnJldHVybixuKX19YnJlYWs7Y2FzZSAzOmlmKGNRPW51bGwsbz1sbSxsbT1jQihuLmNvbnRhaW5lckluZm8pLGxnKG4sZSksbG09byxsYihlKSw0JnImJm51bGwhPT10JiZ0Lm1lbW9pemVkU3RhdGUuaXNEZWh5ZHJhdGVkKXRyeXt1RShuLmNvbnRhaW5lckluZm8pfWNhdGNoKG4pe3NQKGUsZS5yZXR1cm4sbil9bG8mJihsbz0hMSxmdW5jdGlvbiBlKG4pe2lmKDEwMjQmbi5zdWJ0cmVlRmxhZ3MpZm9yKG49bi5jaGlsZDtudWxsIT09bjspe3ZhciB0PW47ZSh0KSw1PT09dC50YWcmJjEwMjQmdC5mbGFncyYmdC5zdGF0ZU5vZGUucmVzZXQoKSxuPW4uc2libGluZ319KGUpKTticmVhaztjYXNlIDQ6cj1sbSxsbT1jQihlLnN0YXRlTm9kZS5jb250YWluZXJJbmZvKSxsZyhuLGUpLGxiKGUpLGxtPXI7YnJlYWs7Y2FzZSAxMjpkZWZhdWx0OmxnKG4sZSksbGIoZSk7YnJlYWs7Y2FzZSAzMTpjYXNlIDE5OmxnKG4sZSksbGIoZSksNCZyJiZudWxsIT09KHI9ZS51cGRhdGVRdWV1ZSkmJihlLnVwZGF0ZVF1ZXVlPW51bGwsbGgoZSxyKSk7YnJlYWs7Y2FzZSAxMzpsZyhuLGUpLGxiKGUpLDgxOTImZS5jaGlsZC5mbGFncyYmbnVsbCE9PWUubWVtb2l6ZWRTdGF0ZSE9KG51bGwhPT10JiZudWxsIT09dC5tZW1vaXplZFN0YXRlKSYmKGxKPWVyKCkpLDQmciYmbnVsbCE9PShyPWUudXBkYXRlUXVldWUpJiYoZS51cGRhdGVRdWV1ZT1udWxsLGxoKGUscikpO2JyZWFrO2Nhc2UgMjI6bz1udWxsIT09ZS5tZW1vaXplZFN0YXRlO3ZhciBjPW51bGwhPT10JiZudWxsIT09dC5tZW1vaXplZFN0YXRlLHU9bHQsZD1scjtpZihsdD11fHxvLGxyPWR8fGMsbGcobixlKSxscj1kLGx0PXUsbGIoZSksODE5MiZyKWU6Zm9yKChuPWUuc3RhdGVOb2RlKS5fdmlzaWJpbGl0eT1vPy0yJm4uX3Zpc2liaWxpdHk6MXxuLl92aXNpYmlsaXR5LG8mJihudWxsPT09dHx8Y3x8bHR8fGxyfHxmdW5jdGlvbiBlKG4pe2ZvcihuPW4uY2hpbGQ7bnVsbCE9PW47KXt2YXIgdD1uO3N3aXRjaCh0LnRhZyl7Y2FzZSAwOmNhc2UgMTE6Y2FzZSAxNDpjYXNlIDE1OmkxKDQsdCx0LnJldHVybiksZSh0KTticmVhaztjYXNlIDE6aTModCx0LnJldHVybik7dmFyIHI9dC5zdGF0ZU5vZGU7XCJmdW5jdGlvblwiPT10eXBlb2Ygci5jb21wb25lbnRXaWxsVW5tb3VudCYmaTQodCx0LnJldHVybixyKSxlKHQpO2JyZWFrO2Nhc2UgMjc6Y1IodC5zdGF0ZU5vZGUpO2Nhc2UgMjY6Y2FzZSA1OmkzKHQsdC5yZXR1cm4pLGUodCk7YnJlYWs7Y2FzZSAyMjpudWxsPT09dC5tZW1vaXplZFN0YXRlJiZlKHQpO2JyZWFrO2RlZmF1bHQ6ZSh0KX1uPW4uc2libGluZ319KGUpKSx0PW51bGwsbj1lOzspe2lmKDU9PT1uLnRhZ3x8MjY9PT1uLnRhZyl7aWYobnVsbD09PXQpe2M9dD1uO3RyeXtpZihhPWMuc3RhdGVOb2RlLG8paT1hLnN0eWxlLFwiZnVuY3Rpb25cIj09dHlwZW9mIGkuc2V0UHJvcGVydHk/aS5zZXRQcm9wZXJ0eShcImRpc3BsYXlcIixcIm5vbmVcIixcImltcG9ydGFudFwiKTppLmRpc3BsYXk9XCJub25lXCI7ZWxzZXtzPWMuc3RhdGVOb2RlO3ZhciBmPWMubWVtb2l6ZWRQcm9wcy5zdHlsZSxwPW51bGwhPWYmJmYuaGFzT3duUHJvcGVydHkoXCJkaXNwbGF5XCIpP2YuZGlzcGxheTpudWxsO3Muc3R5bGUuZGlzcGxheT1udWxsPT1wfHxcImJvb2xlYW5cIj09dHlwZW9mIHA/XCJcIjooXCJcIitwKS50cmltKCl9fWNhdGNoKGUpe3NQKGMsYy5yZXR1cm4sZSl9fX1lbHNlIGlmKDY9PT1uLnRhZyl7aWYobnVsbD09PXQpe2M9bjt0cnl7Yy5zdGF0ZU5vZGUubm9kZVZhbHVlPW8/XCJcIjpjLm1lbW9pemVkUHJvcHN9Y2F0Y2goZSl7c1AoYyxjLnJldHVybixlKX19fWVsc2UgaWYoMTg9PT1uLnRhZyl7aWYobnVsbD09PXQpe2M9bjt0cnl7dmFyIGg9Yy5zdGF0ZU5vZGU7bz9jQShoLCEwKTpjQShjLnN0YXRlTm9kZSwhMSl9Y2F0Y2goZSl7c1AoYyxjLnJldHVybixlKX19fWVsc2UgaWYoKDIyIT09bi50YWcmJjIzIT09bi50YWd8fG51bGw9PT1uLm1lbW9pemVkU3RhdGV8fG49PT1lKSYmbnVsbCE9PW4uY2hpbGQpe24uY2hpbGQucmV0dXJuPW4sbj1uLmNoaWxkO2NvbnRpbnVlfWlmKG49PT1lKWJyZWFrO2Zvcig7bnVsbD09PW4uc2libGluZzspe2lmKG51bGw9PT1uLnJldHVybnx8bi5yZXR1cm49PT1lKWJyZWFrIGU7dD09PW4mJih0PW51bGwpLG49bi5yZXR1cm59dD09PW4mJih0PW51bGwpLG4uc2libGluZy5yZXR1cm49bi5yZXR1cm4sbj1uLnNpYmxpbmd9NCZyJiZudWxsIT09KHI9ZS51cGRhdGVRdWV1ZSkmJm51bGwhPT0odD1yLnJldHJ5UXVldWUpJiYoci5yZXRyeVF1ZXVlPW51bGwsbGgoZSx0KSk7Y2FzZSAzMDpjYXNlIDIxOn19ZnVuY3Rpb24gbGIoZSl7dmFyIG49ZS5mbGFncztpZigyJm4pe3RyeXtmb3IodmFyIHQscj1lLnJldHVybjtudWxsIT09cjspe2lmKGk4KHIpKXt0PXI7YnJlYWt9cj1yLnJldHVybn1pZihudWxsPT10KXRocm93IEVycm9yKGwoMTYwKSk7c3dpdGNoKHQudGFnKXtjYXNlIDI3OnZhciBvPXQuc3RhdGVOb2RlLGE9aTcoZSk7bGUoZSxhLG8pO2JyZWFrO2Nhc2UgNTp2YXIgaT10LnN0YXRlTm9kZTszMiZ0LmZsYWdzJiYobnMoaSxcIlwiKSx0LmZsYWdzJj0tMzMpO3ZhciBzPWk3KGUpO2xlKGUscyxpKTticmVhaztjYXNlIDM6Y2FzZSA0OnZhciBjPXQuc3RhdGVOb2RlLmNvbnRhaW5lckluZm8sdT1pNyhlKTshZnVuY3Rpb24gZShuLHQscil7dmFyIG89bi50YWc7aWYoNT09PW98fDY9PT1vKW49bi5zdGF0ZU5vZGUsdD8oOT09PXIubm9kZVR5cGU/ci5ib2R5OlwiSFRNTFwiPT09ci5ub2RlTmFtZT9yLm93bmVyRG9jdW1lbnQuYm9keTpyKS5pbnNlcnRCZWZvcmUobix0KTooKHQ9OT09PXIubm9kZVR5cGU/ci5ib2R5OlwiSFRNTFwiPT09ci5ub2RlTmFtZT9yLm93bmVyRG9jdW1lbnQuYm9keTpyKS5hcHBlbmRDaGlsZChuKSxudWxsIT0ocj1yLl9yZWFjdFJvb3RDb250YWluZXIpfHxudWxsIT09dC5vbmNsaWNrfHwodC5vbmNsaWNrPW5tKSk7ZWxzZSBpZig0IT09byYmKDI3PT09byYmY2oobi50eXBlKSYmKHI9bi5zdGF0ZU5vZGUsdD1udWxsKSxudWxsIT09KG49bi5jaGlsZCkpKWZvcihlKG4sdCxyKSxuPW4uc2libGluZztudWxsIT09bjspZShuLHQsciksbj1uLnNpYmxpbmd9KGUsdSxjKTticmVhaztkZWZhdWx0OnRocm93IEVycm9yKGwoMTYxKSl9fWNhdGNoKG4pe3NQKGUsZS5yZXR1cm4sbil9ZS5mbGFncyY9LTN9NDA5NiZuJiYoZS5mbGFncyY9LTQwOTcpfWZ1bmN0aW9uIGx5KGUsbil7aWYoODc3MiZuLnN1YnRyZWVGbGFncylmb3Iobj1uLmNoaWxkO251bGwhPT1uOylsbChlLG4uYWx0ZXJuYXRlLG4pLG49bi5zaWJsaW5nfWZ1bmN0aW9uIGx4KGUsbil7dmFyIHQ9bnVsbDtudWxsIT09ZSYmbnVsbCE9PWUubWVtb2l6ZWRTdGF0ZSYmbnVsbCE9PWUubWVtb2l6ZWRTdGF0ZS5jYWNoZVBvb2wmJih0PWUubWVtb2l6ZWRTdGF0ZS5jYWNoZVBvb2wucG9vbCksZT1udWxsLG51bGwhPT1uLm1lbW9pemVkU3RhdGUmJm51bGwhPT1uLm1lbW9pemVkU3RhdGUuY2FjaGVQb29sJiYoZT1uLm1lbW9pemVkU3RhdGUuY2FjaGVQb29sLnBvb2wpLGUhPT10JiYobnVsbCE9ZSYmZS5yZWZDb3VudCsrLG51bGwhPXQmJnIyKHQpKX1mdW5jdGlvbiBsdyhlLG4pe2U9bnVsbCxudWxsIT09bi5hbHRlcm5hdGUmJihlPW4uYWx0ZXJuYXRlLm1lbW9pemVkU3RhdGUuY2FjaGUpLChuPW4ubWVtb2l6ZWRTdGF0ZS5jYWNoZSkhPT1lJiYobi5yZWZDb3VudCsrLG51bGwhPWUmJnIyKGUpKX1mdW5jdGlvbiBsaihlLG4sdCxyKXtpZigxMDI1NiZuLnN1YnRyZWVGbGFncylmb3Iobj1uLmNoaWxkO251bGwhPT1uOylsayhlLG4sdCxyKSxuPW4uc2libGluZ31mdW5jdGlvbiBsayhlLG4sdCxyKXt2YXIgbz1uLmZsYWdzO3N3aXRjaChuLnRhZyl7Y2FzZSAwOmNhc2UgMTE6Y2FzZSAxNTpsaihlLG4sdCxyKSwyMDQ4Jm8mJmkwKDksbik7YnJlYWs7Y2FzZSAxOmNhc2UgMzE6Y2FzZSAxMzpkZWZhdWx0OmxqKGUsbix0LHIpO2JyZWFrO2Nhc2UgMzpsaihlLG4sdCxyKSwyMDQ4Jm8mJihlPW51bGwsbnVsbCE9PW4uYWx0ZXJuYXRlJiYoZT1uLmFsdGVybmF0ZS5tZW1vaXplZFN0YXRlLmNhY2hlKSwobj1uLm1lbW9pemVkU3RhdGUuY2FjaGUpIT09ZSYmKG4ucmVmQ291bnQrKyxudWxsIT1lJiZyMihlKSkpO2JyZWFrO2Nhc2UgMTI6aWYoMjA0OCZvKXtsaihlLG4sdCxyKSxlPW4uc3RhdGVOb2RlO3RyeXt2YXIgYT1uLm1lbW9pemVkUHJvcHMsaT1hLmlkLGw9YS5vblBvc3RDb21taXQ7XCJmdW5jdGlvblwiPT10eXBlb2YgbCYmbChpLG51bGw9PT1uLmFsdGVybmF0ZT9cIm1vdW50XCI6XCJ1cGRhdGVcIixlLnBhc3NpdmVFZmZlY3REdXJhdGlvbiwtMCl9Y2F0Y2goZSl7c1AobixuLnJldHVybixlKX19ZWxzZSBsaihlLG4sdCxyKTticmVhaztjYXNlIDIzOmJyZWFrO2Nhc2UgMjI6YT1uLnN0YXRlTm9kZSxpPW4uYWx0ZXJuYXRlLG51bGwhPT1uLm1lbW9pemVkU3RhdGU/MiZhLl92aXNpYmlsaXR5P2xqKGUsbix0LHIpOmxBKGUsbik6MiZhLl92aXNpYmlsaXR5P2xqKGUsbix0LHIpOihhLl92aXNpYmlsaXR5fD0yLGZ1bmN0aW9uIGUobix0LHIsbyxhKXtmb3IoYT1hJiYwIT0oMTAyNTYmdC5zdWJ0cmVlRmxhZ3MpLHQ9dC5jaGlsZDtudWxsIT09dDspe3ZhciBpPXQsbD1pLmZsYWdzO3N3aXRjaChpLnRhZyl7Y2FzZSAwOmNhc2UgMTE6Y2FzZSAxNTplKG4saSxyLG8sYSksaTAoOCxpKTticmVhaztjYXNlIDIzOmJyZWFrO2Nhc2UgMjI6dmFyIHM9aS5zdGF0ZU5vZGU7bnVsbCE9PWkubWVtb2l6ZWRTdGF0ZT8yJnMuX3Zpc2liaWxpdHk/ZShuLGkscixvLGEpOmxBKG4saSk6KHMuX3Zpc2liaWxpdHl8PTIsZShuLGkscixvLGEpKSxhJiYyMDQ4JmwmJmx4KGkuYWx0ZXJuYXRlLGkpO2JyZWFrO2Nhc2UgMjQ6ZShuLGkscixvLGEpLGEmJjIwNDgmbCYmbHcoaS5hbHRlcm5hdGUsaSk7YnJlYWs7ZGVmYXVsdDplKG4saSxyLG8sYSl9dD10LnNpYmxpbmd9fShlLG4sdCxyLDAhPSgxMDI1NiZuLnN1YnRyZWVGbGFncykpKSwyMDQ4Jm8mJmx4KGksbik7YnJlYWs7Y2FzZSAyNDpsaihlLG4sdCxyKSwyMDQ4Jm8mJmx3KG4uYWx0ZXJuYXRlLG4pfX1mdW5jdGlvbiBsQShlLG4pe2lmKDEwMjU2Jm4uc3VidHJlZUZsYWdzKWZvcihuPW4uY2hpbGQ7bnVsbCE9PW47KXt2YXIgdD1uLHI9dC5mbGFncztzd2l0Y2godC50YWcpe2Nhc2UgMjI6bEEoZSx0KSwyMDQ4JnImJmx4KHQuYWx0ZXJuYXRlLHQpO2JyZWFrO2Nhc2UgMjQ6bEEoZSx0KSwyMDQ4JnImJmx3KHQuYWx0ZXJuYXRlLHQpO2JyZWFrO2RlZmF1bHQ6bEEoZSx0KX1uPW4uc2libGluZ319dmFyIGxPPTgxOTI7ZnVuY3Rpb24gbEMoZSl7aWYoZS5zdWJ0cmVlRmxhZ3MmbE8pZm9yKGU9ZS5jaGlsZDtudWxsIT09ZTspbFMoZSksZT1lLnNpYmxpbmd9ZnVuY3Rpb24gbFMoZSl7c3dpdGNoKGUudGFnKXtjYXNlIDI2OmxDKGUpLGUuZmxhZ3MmbE8mJm51bGwhPT1lLm1lbW9pemVkU3RhdGUmJmZ1bmN0aW9uKGUsbix0KXtpZihudWxsPT09YzEpdGhyb3cgRXJyb3IobCg0NzUpKTt2YXIgcj1jMTtpZihcInN0eWxlc2hlZXRcIj09PW4udHlwZSYmKFwic3RyaW5nXCIhPXR5cGVvZiB0Lm1lZGlhfHwhMSE9PW1hdGNoTWVkaWEodC5tZWRpYSkubWF0Y2hlcykmJjA9PSg0Jm4uc3RhdGUubG9hZGluZykpe2lmKG51bGw9PT1uLmluc3RhbmNlKXt2YXIgbz1jVSh0LmhyZWYpLGE9ZS5xdWVyeVNlbGVjdG9yKGNWKG8pKTtpZihhKXtudWxsIT09KGU9YS5fcCkmJlwib2JqZWN0XCI9PXR5cGVvZiBlJiZcImZ1bmN0aW9uXCI9PXR5cGVvZiBlLnRoZW4mJihyLmNvdW50Kysscj1jMi5iaW5kKHIpLGUudGhlbihyLHIpKSxuLnN0YXRlLmxvYWRpbmd8PTQsbi5pbnN0YW5jZT1hLGVZKGEpO3JldHVybn1hPWUub3duZXJEb2N1bWVudHx8ZSx0PWNxKHQpLChvPWNOLmdldChvKSkmJmNYKHQsbyksZVkoYT1hLmNyZWF0ZUVsZW1lbnQoXCJsaW5rXCIpKTt2YXIgaT1hO2kuX3A9bmV3IFByb21pc2UoZnVuY3Rpb24oZSxuKXtpLm9ubG9hZD1lLGkub25lcnJvcj1ufSksY2MoYSxcImxpbmtcIix0KSxuLmluc3RhbmNlPWF9bnVsbD09PXIuc3R5bGVzaGVldHMmJihyLnN0eWxlc2hlZXRzPW5ldyBNYXApLHIuc3R5bGVzaGVldHMuc2V0KG4sZSksKGU9bi5zdGF0ZS5wcmVsb2FkKSYmMD09KDMmbi5zdGF0ZS5sb2FkaW5nKSYmKHIuY291bnQrKyxuPWMyLmJpbmQociksZS5hZGRFdmVudExpc3RlbmVyKFwibG9hZFwiLG4pLGUuYWRkRXZlbnRMaXN0ZW5lcihcImVycm9yXCIsbikpfX0obG0sZS5tZW1vaXplZFN0YXRlLGUubWVtb2l6ZWRQcm9wcyk7YnJlYWs7Y2FzZSA1OmRlZmF1bHQ6bEMoZSk7YnJlYWs7Y2FzZSAzOmNhc2UgNDp2YXIgbj1sbTtsbT1jQihlLnN0YXRlTm9kZS5jb250YWluZXJJbmZvKSxsQyhlKSxsbT1uO2JyZWFrO2Nhc2UgMjI6bnVsbD09PWUubWVtb2l6ZWRTdGF0ZSYmKG51bGwhPT0obj1lLmFsdGVybmF0ZSkmJm51bGwhPT1uLm1lbW9pemVkU3RhdGU/KG49bE8sbE89MHgxMDAwMDAwLGxDKGUpLGxPPW4pOmxDKGUpKX19ZnVuY3Rpb24gbEUoZSl7dmFyIG49ZS5hbHRlcm5hdGU7aWYobnVsbCE9PW4mJm51bGwhPT0oZT1uLmNoaWxkKSl7bi5jaGlsZD1udWxsO2RvIG49ZS5zaWJsaW5nLGUuc2libGluZz1udWxsLGU9bjt3aGlsZShudWxsIT09ZSl9fWZ1bmN0aW9uIGxfKGUpe3ZhciBuPWUuZGVsZXRpb25zO2lmKDAhPSgxNiZlLmZsYWdzKSl7aWYobnVsbCE9PW4pZm9yKHZhciB0PTA7dDxuLmxlbmd0aDt0Kyspe3ZhciByPW5bdF07bGk9cixseihyLGUpfWxFKGUpfWlmKDEwMjU2JmUuc3VidHJlZUZsYWdzKWZvcihlPWUuY2hpbGQ7bnVsbCE9PWU7KWxQKGUpLGU9ZS5zaWJsaW5nfWZ1bmN0aW9uIGxQKGUpe3N3aXRjaChlLnRhZyl7Y2FzZSAwOmNhc2UgMTE6Y2FzZSAxNTpsXyhlKSwyMDQ4JmUuZmxhZ3MmJmkxKDksZSxlLnJldHVybik7YnJlYWs7Y2FzZSAzOmNhc2UgMTI6ZGVmYXVsdDpsXyhlKTticmVhaztjYXNlIDIyOnZhciBuPWUuc3RhdGVOb2RlO251bGwhPT1lLm1lbW9pemVkU3RhdGUmJjImbi5fdmlzaWJpbGl0eSYmKG51bGw9PT1lLnJldHVybnx8MTMhPT1lLnJldHVybi50YWcpPyhuLl92aXNpYmlsaXR5Jj0tMyxmdW5jdGlvbiBlKG4pe3ZhciB0PW4uZGVsZXRpb25zO2lmKDAhPSgxNiZuLmZsYWdzKSl7aWYobnVsbCE9PXQpZm9yKHZhciByPTA7cjx0Lmxlbmd0aDtyKyspe3ZhciBvPXRbcl07bGk9byxseihvLG4pfWxFKG4pfWZvcihuPW4uY2hpbGQ7bnVsbCE9PW47KXtzd2l0Y2goKHQ9bikudGFnKXtjYXNlIDA6Y2FzZSAxMTpjYXNlIDE1OmkxKDgsdCx0LnJldHVybiksZSh0KTticmVhaztjYXNlIDIyOjImKHI9dC5zdGF0ZU5vZGUpLl92aXNpYmlsaXR5JiYoci5fdmlzaWJpbGl0eSY9LTMsZSh0KSk7YnJlYWs7ZGVmYXVsdDplKHQpfW49bi5zaWJsaW5nfX0oZSkpOmxfKGUpfX1mdW5jdGlvbiBseihlLG4pe2Zvcig7bnVsbCE9PWxpOyl7dmFyIHQ9bGk7c3dpdGNoKHQudGFnKXtjYXNlIDA6Y2FzZSAxMTpjYXNlIDE1OmkxKDgsdCxuKTticmVhaztjYXNlIDIzOmNhc2UgMjI6aWYobnVsbCE9PXQubWVtb2l6ZWRTdGF0ZSYmbnVsbCE9PXQubWVtb2l6ZWRTdGF0ZS5jYWNoZVBvb2wpe3ZhciByPXQubWVtb2l6ZWRTdGF0ZS5jYWNoZVBvb2wucG9vbDtudWxsIT1yJiZyLnJlZkNvdW50Kyt9YnJlYWs7Y2FzZSAyNDpyMih0Lm1lbW9pemVkU3RhdGUuY2FjaGUpfWlmKG51bGwhPT0ocj10LmNoaWxkKSlyLnJldHVybj10LGxpPXI7ZWxzZSBmb3IodD1lO251bGwhPT1saTspe3ZhciBvPShyPWxpKS5zaWJsaW5nLGE9ci5yZXR1cm47aWYoIWZ1bmN0aW9uIGUobil7dmFyIHQ9bi5hbHRlcm5hdGU7bnVsbCE9PXQmJihuLmFsdGVybmF0ZT1udWxsLGUodCkpLG4uY2hpbGQ9bnVsbCxuLmRlbGV0aW9ucz1udWxsLG4uc2libGluZz1udWxsLDU9PT1uLnRhZyYmbnVsbCE9PSh0PW4uc3RhdGVOb2RlKSYmZVYodCksbi5zdGF0ZU5vZGU9bnVsbCxuLnJldHVybj1udWxsLG4uZGVwZW5kZW5jaWVzPW51bGwsbi5tZW1vaXplZFByb3BzPW51bGwsbi5tZW1vaXplZFN0YXRlPW51bGwsbi5wZW5kaW5nUHJvcHM9bnVsbCxuLnN0YXRlTm9kZT1udWxsLG4udXBkYXRlUXVldWU9bnVsbH0ocikscj09PXQpe2xpPW51bGw7YnJlYWt9aWYobnVsbCE9PW8pe28ucmV0dXJuPWEsbGk9bzticmVha31saT1hfX19dmFyIGxMPXtnZXRDYWNoZUZvclR5cGU6ZnVuY3Rpb24oZSl7dmFyIG49clkocjApLHQ9bi5kYXRhLmdldChlKTtyZXR1cm4gdm9pZCAwPT09dCYmKHQ9ZSgpLG4uZGF0YS5zZXQoZSx0KSksdH0sY2FjaGVTaWduYWw6ZnVuY3Rpb24oKXtyZXR1cm4gclkocjApLmNvbnRyb2xsZXIuc2lnbmFsfX0sbFQ9XCJmdW5jdGlvblwiPT10eXBlb2YgV2Vha01hcD9XZWFrTWFwOk1hcCxsUj0wLGxOPW51bGwsbEQ9bnVsbCxsQj0wLGxNPTAsbEk9bnVsbCxsSD0hMSxsRj0hMSxsVT0hMSxsVj0wLGxxPTAsbFc9MCxsJD0wLGxaPTAsbFk9MCxsWD0wLGxLPW51bGwsbFE9bnVsbCxsRz0hMSxsSj0wLGwwPTEvMCxsMT1udWxsLGwyPW51bGwsbDQ9MCxsNT1udWxsLGwzPW51bGwsbDY9MCxsOT0wLGw4PW51bGwsbDc9bnVsbCxzZT0wLHNuPW51bGw7ZnVuY3Rpb24gc3QoKXtyZXR1cm4gMCE9KDImbFIpJiYwIT09bEI/bEImLWxCOm51bGwhPT1MLlQ/c1goKTplTCgpfWZ1bmN0aW9uIHNyKCl7MD09PWxZJiYobFk9MD09KDB4MjAwMDAwMDAmbEIpfHxyUz9laygpOjB4MjAwMDAwMDApO3ZhciBlPW9NLmN1cnJlbnQ7cmV0dXJuIG51bGwhPT1lJiYoZS5mbGFnc3w9MzIpLGxZfWZ1bmN0aW9uIHNvKGUsbix0KXsoZT09PWxOJiYoMj09PWxNfHw5PT09bE0pfHxudWxsIT09ZS5jYW5jZWxQZW5kaW5nQ29tbWl0KSYmKHN1KGUsMCksc2woZSxsQixsWSwhMSkpLGVDKGUsdCksKDA9PSgyJmxSKXx8ZSE9PWxOKSYmKGU9PT1sTiYmKDA9PSgyJmxSKSYmKGwkfD10KSw0PT09bHEmJnNsKGUsbEIsbFksITEpKSxzVShlKSl9ZnVuY3Rpb24gc2EoZSxuLHQpe2lmKDAhPSg2JmxSKSl0aHJvdyBFcnJvcihsKDMyNykpO2Zvcih2YXIgcj0hdCYmMD09KDEyNCZuKSYmMD09KG4mZS5leHBpcmVkTGFuZXMpfHxlaihlLG4pLG89cj9mdW5jdGlvbihlLG4pe3ZhciB0PWxSO2xSfD0yO3ZhciByPXNwKCksbz1zaCgpO2xOIT09ZXx8bEIhPT1uPyhsMT1udWxsLGwwPWVyKCkrNTAwLHN1KGUsbikpOmxGPWVqKGUsbik7ZTpmb3IoOzspdHJ5e2lmKDAhPT1sTSYmbnVsbCE9PWxEKXtuPWxEO3ZhciBhPWxJO246c3dpdGNoKGxNKXtjYXNlIDE6bE09MCxsST1udWxsLHN5KGUsbixhLDEpO2JyZWFrO2Nhc2UgMjpjYXNlIDk6aWYob2woYSkpe2xNPTAsbEk9bnVsbCxzYihuKTticmVha31uPWZ1bmN0aW9uKCl7MiE9PWxNJiY5IT09bE18fGxOIT09ZXx8KGxNPTcpLHNVKGUpfSxhLnRoZW4obixuKTticmVhayBlO2Nhc2UgMzpsTT03O2JyZWFrIGU7Y2FzZSA0OmxNPTU7YnJlYWsgZTtjYXNlIDc6b2woYSk/KGxNPTAsbEk9bnVsbCxzYihuKSk6KGxNPTAsbEk9bnVsbCxzeShlLG4sYSw3KSk7YnJlYWs7Y2FzZSA1OnZhciBpPW51bGw7c3dpdGNoKGxELnRhZyl7Y2FzZSAyNjppPWxELm1lbW9pemVkU3RhdGU7Y2FzZSA1OmNhc2UgMjc6dmFyIHM9bEQ7aWYoaT9jMChpKTpzLnN0YXRlTm9kZS5jb21wbGV0ZSl7bE09MCxsST1udWxsO3ZhciBjPXMuc2libGluZztpZihudWxsIT09YylsRD1jO2Vsc2V7dmFyIHU9cy5yZXR1cm47bnVsbCE9PXU/KGxEPXUsc3godSkpOmxEPW51bGx9YnJlYWsgbn19bE09MCxsST1udWxsLHN5KGUsbixhLDUpO2JyZWFrO2Nhc2UgNjpsTT0wLGxJPW51bGwsc3koZSxuLGEsNik7YnJlYWs7Y2FzZSA4OnNjKCksbHE9NjticmVhayBlO2RlZmF1bHQ6dGhyb3cgRXJyb3IobCg0NjIpKX19Zm9yKDtudWxsIT09bEQmJiFlbigpOylzdihsRCk7YnJlYWt9Y2F0Y2gobil7c2QoZSxuKX1yZXR1cm4ockg9ckk9bnVsbCxMLkg9cixMLkE9byxsUj10LG51bGwhPT1sRCk/MDoobE49bnVsbCxsQj0wLHQyKCksbHEpfShlLG4pOnNtKGUsbiwhMCksYT1yOzspe2lmKDA9PT1vKWxGJiYhciYmc2woZSxuLDAsITEpO2Vsc2V7aWYodD1lLmN1cnJlbnQuYWx0ZXJuYXRlLGEmJiFmdW5jdGlvbihlKXtmb3IodmFyIG49ZTs7KXt2YXIgdD1uLnRhZztpZigoMD09PXR8fDExPT09dHx8MTU9PT10KSYmMTYzODQmbi5mbGFncyYmbnVsbCE9PSh0PW4udXBkYXRlUXVldWUpJiZudWxsIT09KHQ9dC5zdG9yZXMpKWZvcih2YXIgcj0wO3I8dC5sZW5ndGg7cisrKXt2YXIgbz10W3JdLGE9by5nZXRTbmFwc2hvdDtvPW8udmFsdWU7dHJ5e2lmKCF0TyhhKCksbykpcmV0dXJuITF9Y2F0Y2goZSl7cmV0dXJuITF9fWlmKHQ9bi5jaGlsZCwxNjM4NCZuLnN1YnRyZWVGbGFncyYmbnVsbCE9PXQpdC5yZXR1cm49bixuPXQ7ZWxzZXtpZihuPT09ZSlicmVhaztmb3IoO251bGw9PT1uLnNpYmxpbmc7KXtpZihudWxsPT09bi5yZXR1cm58fG4ucmV0dXJuPT09ZSlyZXR1cm4hMDtuPW4ucmV0dXJufW4uc2libGluZy5yZXR1cm49bi5yZXR1cm4sbj1uLnNpYmxpbmd9fXJldHVybiEwfSh0KSl7bz1zbShlLG4sITEpLGE9ITE7Y29udGludWV9aWYoMj09PW8pe2lmKGE9bixlLmVycm9yUmVjb3ZlcnlEaXNhYmxlZExhbmVzJmEpdmFyIGk9MDtlbHNlIGk9MCE9KGk9LTB4MjAwMDAwMDEmZS5wZW5kaW5nTGFuZXMpP2k6MHgyMDAwMDAwMCZpPzB4MjAwMDAwMDA6MDtpZigwIT09aSl7bj1pO2U6e289bEs7dmFyIHM9ZS5jdXJyZW50Lm1lbW9pemVkU3RhdGUuaXNEZWh5ZHJhdGVkO2lmKHMmJihzdShlLGkpLmZsYWdzfD0yNTYpLDIhPT0oaT1zbShlLGksITEpKSl7aWYobFUmJiFzKXtlLmVycm9yUmVjb3ZlcnlEaXNhYmxlZExhbmVzfD1hLGwkfD1hLG89NDticmVhayBlfWE9bFEsbFE9byxudWxsIT09YSYmKG51bGw9PT1sUT9sUT1hOmxRLnB1c2guYXBwbHkobFEsYSkpfW89aX1pZihhPSExLDIhPT1vKWNvbnRpbnVlfX1pZigxPT09byl7c3UoZSwwKSxzbChlLG4sMCwhMCk7YnJlYWt9ZTp7c3dpdGNoKHI9ZSxhPW8pe2Nhc2UgMDpjYXNlIDE6dGhyb3cgRXJyb3IobCgzNDUpKTtjYXNlIDQ6aWYoKDQxOTQwNDgmbikhPT1uKWJyZWFrO2Nhc2UgNjpzbChyLG4sbFksIWxIKTticmVhayBlO2Nhc2UgMjpsUT1udWxsO2JyZWFrO2Nhc2UgMzpjYXNlIDU6YnJlYWs7ZGVmYXVsdDp0aHJvdyBFcnJvcihsKDMyOSkpfWlmKCgweDNjMDAwMDAmbik9PT1uJiYxMDwobz1sSiszMDAtZXIoKSkpe2lmKHNsKHIsbixsWSwhbEgpLDAhPT1ldyhyLDAsITApKWJyZWFrIGU7ci50aW1lb3V0SGFuZGxlPWN2KHNpLmJpbmQobnVsbCxyLHQsbFEsbDEsbEcsbixsWSxsJCxsWCxsSCxhLDIsLTAsMCksbyk7YnJlYWsgZX1zaShyLHQsbFEsbDEsbEcsbixsWSxsJCxsWCxsSCxhLDAsLTAsMCl9fWJyZWFrfXNVKGUpfWZ1bmN0aW9uIHNpKGUsbix0LHIsbyxhLGkscyxjLHUsZCxmLHAsaCl7aWYoZS50aW1lb3V0SGFuZGxlPS0xLCg4MTkyJihmPW4uc3VidHJlZUZsYWdzKXx8MHgxMDAyMDAwPT0oMHgxMDAyMDAwJmYpKSYmKGMxPXtzdHlsZXNoZWV0czpudWxsLGNvdW50OjAsdW5zdXNwZW5kOm5tfSxsUyhuKSxudWxsIT09KGY9ZnVuY3Rpb24oKXtpZihudWxsPT09YzEpdGhyb3cgRXJyb3IobCg0NzUpKTt2YXIgZT1jMTtyZXR1cm4gZS5zdHlsZXNoZWV0cyYmMD09PWUuY291bnQmJmM1KGUsZS5zdHlsZXNoZWV0cyksMDxlLmNvdW50P2Z1bmN0aW9uKG4pe3ZhciB0PXNldFRpbWVvdXQoZnVuY3Rpb24oKXtpZihlLnN0eWxlc2hlZXRzJiZjNShlLGUuc3R5bGVzaGVldHMpLGUudW5zdXNwZW5kKXt2YXIgbj1lLnVuc3VzcGVuZDtlLnVuc3VzcGVuZD1udWxsLG4oKX19LDZlNCk7cmV0dXJuIGUudW5zdXNwZW5kPW4sZnVuY3Rpb24oKXtlLnVuc3VzcGVuZD1udWxsLGNsZWFyVGltZW91dCh0KX19Om51bGx9KCkpKSl7ZS5jYW5jZWxQZW5kaW5nQ29tbWl0PWYoc2ouYmluZChudWxsLGUsbixhLHQscixvLGkscyxjLGQsMSxwLGgpKSxzbChlLGEsaSwhdSk7cmV0dXJufXNqKGUsbixhLHQscixvLGkscyxjKX1mdW5jdGlvbiBzbChlLG4sdCxyKXtuJj1+bFosbiY9fmwkLGUuc3VzcGVuZGVkTGFuZXN8PW4sZS5waW5nZWRMYW5lcyY9fm4sciYmKGUud2FybUxhbmVzfD1uKSxyPWUuZXhwaXJhdGlvblRpbWVzO2Zvcih2YXIgbz1uOzA8bzspe3ZhciBhPTMxLWVnKG8pLGk9MTw8YTtyW2FdPS0xLG8mPX5pfTAhPT10JiZlUyhlLHQsbil9ZnVuY3Rpb24gc3MoKXtyZXR1cm4gMCE9KDYmbFIpfHwoc1YoMCwhMSksITEpfWZ1bmN0aW9uIHNjKCl7aWYobnVsbCE9PWxEKXtpZigwPT09bE0pdmFyIGU9bEQucmV0dXJuO2Vsc2UgZT1sRCxySD1yST1udWxsLGF0KGUpLG9mPW51bGwsb3A9MCxlPWxEO2Zvcig7bnVsbCE9PWU7KWlKKGUuYWx0ZXJuYXRlLGUpLGU9ZS5yZXR1cm47bEQ9bnVsbH19ZnVuY3Rpb24gc3UoZSxuKXt2YXIgdD1lLnRpbWVvdXRIYW5kbGU7LTEhPT10JiYoZS50aW1lb3V0SGFuZGxlPS0xLGNiKHQpKSxudWxsIT09KHQ9ZS5jYW5jZWxQZW5kaW5nQ29tbWl0KSYmKGUuY2FuY2VsUGVuZGluZ0NvbW1pdD1udWxsLHQoKSksc2MoKSxsTj1lLGxEPXQ9cnQoZS5jdXJyZW50LG51bGwpLGxCPW4sbE09MCxsST1udWxsLGxIPSExLGxGPWVqKGUsbiksbFU9ITEsbFg9bFk9bFo9bCQ9bFc9bHE9MCxsUT1sSz1udWxsLGxHPSExLDAhPSg4Jm4pJiYobnw9MzImbik7dmFyIHI9ZS5lbnRhbmdsZWRMYW5lcztpZigwIT09cilmb3IoZT1lLmVudGFuZ2xlbWVudHMsciY9bjswPHI7KXt2YXIgbz0zMS1lZyhyKSxhPTE8PG87bnw9ZVtvXSxyJj1+YX1yZXR1cm4gbFY9bix0MigpLHR9ZnVuY3Rpb24gc2QoZSxuKXtvWT1udWxsLEwuSD1pZSxuPT09b3J8fG49PT1vYT8obj1vdSgpLGxNPTMpOm49PT1vbz8obj1vdSgpLGxNPTQpOmxNPW49PT1peT84Om51bGwhPT1uJiZcIm9iamVjdFwiPT10eXBlb2YgbiYmXCJmdW5jdGlvblwiPT10eXBlb2Ygbi50aGVuPzY6MSxsST1uLG51bGw9PT1sRCYmKGxxPTEsaWgoZSxydShuLGUuY3VycmVudCkpKX1mdW5jdGlvbiBzZigpe3ZhciBlPW9NLmN1cnJlbnQ7cmV0dXJuIG51bGw9PT1lfHwoKDQxOTQwNDgmbEIpPT09bEI/bnVsbD09PW9JOigoMHgzYzAwMDAwJmxCKT09PWxCfHwwIT0oMHgyMDAwMDAwMCZsQikpJiZlPT09b0kpfWZ1bmN0aW9uIHNwKCl7dmFyIGU9TC5IO3JldHVybiBMLkg9aWUsbnVsbD09PWU/aWU6ZX1mdW5jdGlvbiBzaCgpe3ZhciBlPUwuQTtyZXR1cm4gTC5BPWxMLGV9ZnVuY3Rpb24gc2coKXtscT00LGxIfHwoNDE5NDA0OCZsQikhPT1sQiYmbnVsbCE9PW9NLmN1cnJlbnR8fChsRj0hMCksMD09KDB4N2ZmZmZmZiZsVykmJjA9PSgweDdmZmZmZmYmbCQpfHxudWxsPT09bE58fHNsKGxOLGxCLGxZLCExKX1mdW5jdGlvbiBzbShlLG4sdCl7dmFyIHI9bFI7bFJ8PTI7dmFyIG89c3AoKSxhPXNoKCk7KGxOIT09ZXx8bEIhPT1uKSYmKGwxPW51bGwsc3UoZSxuKSksbj0hMTt2YXIgaT1scTtlOmZvcig7Oyl0cnl7aWYoMCE9PWxNJiZudWxsIT09bEQpe3ZhciBsPWxELHM9bEk7c3dpdGNoKGxNKXtjYXNlIDg6c2MoKSxpPTY7YnJlYWsgZTtjYXNlIDM6Y2FzZSAyOmNhc2UgOTpjYXNlIDY6bnVsbD09PW9NLmN1cnJlbnQmJihuPSEwKTt2YXIgYz1sTTtpZihsTT0wLGxJPW51bGwsc3koZSxsLHMsYyksdCYmbEYpe2k9MDticmVhayBlfWJyZWFrO2RlZmF1bHQ6Yz1sTSxsTT0wLGxJPW51bGwsc3koZSxsLHMsYyl9fShmdW5jdGlvbigpe2Zvcig7bnVsbCE9PWxEOylzdihsRCl9KSgpLGk9bHE7YnJlYWt9Y2F0Y2gobil7c2QoZSxuKX1yZXR1cm4gbiYmZS5zaGVsbFN1c3BlbmRDb3VudGVyKyssckg9ckk9bnVsbCxsUj1yLEwuSD1vLEwuQT1hLG51bGw9PT1sRCYmKGxOPW51bGwsbEI9MCx0MigpKSxpfWZ1bmN0aW9uIHN2KGUpe3ZhciBuPWkkKGUuYWx0ZXJuYXRlLGUsbFYpO2UubWVtb2l6ZWRQcm9wcz1lLnBlbmRpbmdQcm9wcyxudWxsPT09bj9zeChlKTpsRD1ufWZ1bmN0aW9uIHNiKGUpe3ZhciBuPWUsdD1uLmFsdGVybmF0ZTtzd2l0Y2gobi50YWcpe2Nhc2UgMTU6Y2FzZSAwOm49aXoodCxuLG4ucGVuZGluZ1Byb3BzLG4udHlwZSx2b2lkIDAsbEIpO2JyZWFrO2Nhc2UgMTE6bj1peih0LG4sbi5wZW5kaW5nUHJvcHMsbi50eXBlLnJlbmRlcixuLnJlZixsQik7YnJlYWs7Y2FzZSA1OmF0KG4pO2RlZmF1bHQ6aUoodCxuKSxuPWkkKHQsbj1sRD1ycihuLGxWKSxsVil9ZS5tZW1vaXplZFByb3BzPWUucGVuZGluZ1Byb3BzLG51bGw9PT1uP3N4KGUpOmxEPW59ZnVuY3Rpb24gc3koZSxuLHQscil7ckg9ckk9bnVsbCxhdChuKSxvZj1udWxsLG9wPTA7dmFyIG89bi5yZXR1cm47dHJ5e2lmKGZ1bmN0aW9uKGUsbix0LHIsbyl7aWYodC5mbGFnc3w9MzI3NjgsbnVsbCE9PXImJlwib2JqZWN0XCI9PXR5cGVvZiByJiZcImZ1bmN0aW9uXCI9PXR5cGVvZiByLnRoZW4pe2lmKG51bGwhPT0obj10LmFsdGVybmF0ZSkmJnJXKG4sdCxvLCEwKSxudWxsIT09KHQ9b00uY3VycmVudCkpe3N3aXRjaCh0LnRhZyl7Y2FzZSAzMTpjYXNlIDEzOnJldHVybiBudWxsPT09b0k/c2coKTpudWxsPT09dC5hbHRlcm5hdGUmJjA9PT1scSYmKGxxPTMpLHQuZmxhZ3MmPS0yNTcsdC5mbGFnc3w9NjU1MzYsdC5sYW5lcz1vLHI9PT1vaT90LmZsYWdzfD0xNjM4NDoobnVsbD09PShuPXQudXBkYXRlUXVldWUpP3QudXBkYXRlUXVldWU9bmV3IFNldChbcl0pOm4uYWRkKHIpLHN6KGUscixvKSksITE7Y2FzZSAyMjpyZXR1cm4gdC5mbGFnc3w9NjU1MzYscj09PW9pP3QuZmxhZ3N8PTE2Mzg0OihudWxsPT09KG49dC51cGRhdGVRdWV1ZSk/KG49e3RyYW5zaXRpb25zOm51bGwsbWFya2VySW5zdGFuY2VzOm51bGwscmV0cnlRdWV1ZTpuZXcgU2V0KFtyXSl9LHQudXBkYXRlUXVldWU9bik6bnVsbD09PSh0PW4ucmV0cnlRdWV1ZSk/bi5yZXRyeVF1ZXVlPW5ldyBTZXQoW3JdKTp0LmFkZChyKSxzeihlLHIsbykpLCExfXRocm93IEVycm9yKGwoNDM1LHQudGFnKSl9cmV0dXJuIHN6KGUscixvKSxzZygpLCExfWlmKHJTKXJldHVybiBudWxsIT09KG49b00uY3VycmVudCk/KDA9PSg2NTUzNiZuLmZsYWdzKSYmKG4uZmxhZ3N8PTI1Niksbi5mbGFnc3w9NjU1MzYsbi5sYW5lcz1vLHIhPT1yUCYmckIocnUoZT1FcnJvcihsKDQyMikse2NhdXNlOnJ9KSx0KSkpOihyIT09clAmJnJCKHJ1KG49RXJyb3IobCg0MjMpLHtjYXVzZTpyfSksdCkpLGU9ZS5jdXJyZW50LmFsdGVybmF0ZSxlLmZsYWdzfD02NTUzNixvJj0tbyxlLmxhbmVzfD1vLHI9cnUocix0KSxvPWltKGUuc3RhdGVOb2RlLHIsbyksb1MoZSxvKSw0IT09bHEmJihscT0yKSksITE7dmFyIGE9RXJyb3IobCg1MjApLHtjYXVzZTpyfSk7aWYoYT1ydShhLHQpLG51bGw9PT1sSz9sSz1bYV06bEsucHVzaChhKSw0IT09bHEmJihscT0yKSxudWxsPT09bilyZXR1cm4hMDtyPXJ1KHIsdCksdD1uO2Rve3N3aXRjaCh0LnRhZyl7Y2FzZSAzOnJldHVybiB0LmZsYWdzfD02NTUzNixlPW8mLW8sdC5sYW5lc3w9ZSxlPWltKHQuc3RhdGVOb2RlLHIsZSksb1ModCxlKSwhMTtjYXNlIDE6aWYobj10LnR5cGUsYT10LnN0YXRlTm9kZSwwPT0oMTI4JnQuZmxhZ3MpJiYoXCJmdW5jdGlvblwiPT10eXBlb2Ygbi5nZXREZXJpdmVkU3RhdGVGcm9tRXJyb3J8fG51bGwhPT1hJiZcImZ1bmN0aW9uXCI9PXR5cGVvZiBhLmNvbXBvbmVudERpZENhdGNoJiYobnVsbD09PWwyfHwhbDIuaGFzKGEpKSkpcmV0dXJuIHQuZmxhZ3N8PTY1NTM2LG8mPS1vLHQubGFuZXN8PW8saWIobz1pdihvKSxlLHQsciksb1ModCxvKSwhMX10PXQucmV0dXJufXdoaWxlKG51bGwhPT10KTtyZXR1cm4hMX0oZSxvLG4sdCxsQikpe2xxPTEsaWgoZSxydSh0LGUuY3VycmVudCkpLGxEPW51bGw7cmV0dXJufX1jYXRjaChuKXtpZihudWxsIT09byl0aHJvdyBsRD1vLG47bHE9MSxpaChlLHJ1KHQsZS5jdXJyZW50KSksbEQ9bnVsbDtyZXR1cm59MzI3Njgmbi5mbGFncz8oclN8fDE9PT1yP2U9ITA6bEZ8fDAhPSgweDIwMDAwMDAwJmxCKT9lPSExOihsSD1lPSEwLCgyPT09cnx8OT09PXJ8fDM9PT1yfHw2PT09cikmJm51bGwhPT0ocj1vTS5jdXJyZW50KSYmMTM9PT1yLnRhZyYmKHIuZmxhZ3N8PTE2Mzg0KSksc3cobixlKSk6c3gobil9ZnVuY3Rpb24gc3goZSl7dmFyIG49ZTtkb3tpZigwIT0oMzI3Njgmbi5mbGFncykpcmV0dXJuIHZvaWQgc3cobixsSCk7ZT1uLnJldHVybjt2YXIgdD1mdW5jdGlvbihlLG4sdCl7dmFyIHI9bi5wZW5kaW5nUHJvcHM7c3dpdGNoKHJrKG4pLG4udGFnKXtjYXNlIDE2OmNhc2UgMTU6Y2FzZSAwOmNhc2UgMTE6Y2FzZSA3OmNhc2UgODpjYXNlIDEyOmNhc2UgOTpjYXNlIDE0OmNhc2UgMTpyZXR1cm4gaUcobiksbnVsbDtjYXNlIDM6cmV0dXJuIHQ9bi5zdGF0ZU5vZGUscj1udWxsLG51bGwhPT1lJiYocj1lLm1lbW9pemVkU3RhdGUuY2FjaGUpLG4ubWVtb2l6ZWRTdGF0ZS5jYWNoZSE9PXImJihuLmZsYWdzfD0yMDQ4KSxyVShyMCksVygpLHQucGVuZGluZ0NvbnRleHQmJih0LmNvbnRleHQ9dC5wZW5kaW5nQ29udGV4dCx0LnBlbmRpbmdDb250ZXh0PW51bGwpLChudWxsPT09ZXx8bnVsbD09PWUuY2hpbGQpJiYoclIobik/aVoobik6bnVsbD09PWV8fGUubWVtb2l6ZWRTdGF0ZS5pc0RlaHlkcmF0ZWQmJjA9PSgyNTYmbi5mbGFncyl8fChuLmZsYWdzfD0xMDI0LHJEKCkpKSxpRyhuKSxudWxsO2Nhc2UgMjY6dmFyIG89bi50eXBlLGE9bi5tZW1vaXplZFN0YXRlO3JldHVybiBudWxsPT09ZT8oaVoobiksbnVsbCE9PWE/KGlHKG4pLGlYKG4sYSkpOihpRyhuKSxpWShuLG8sbnVsbCxyLHQpKSk6YT9hIT09ZS5tZW1vaXplZFN0YXRlPyhpWihuKSxpRyhuKSxpWChuLGEpKTooaUcobiksbi5mbGFncyY9LTB4MTAwMDAwMSk6KChlPWUubWVtb2l6ZWRQcm9wcykhPT1yJiZpWihuKSxpRyhuKSxpWShuLG8sZSxyLHQpKSxudWxsO2Nhc2UgMjc6aWYoWihuKSx0PVUuY3VycmVudCxvPW4udHlwZSxudWxsIT09ZSYmbnVsbCE9bi5zdGF0ZU5vZGUpZS5tZW1vaXplZFByb3BzIT09ciYmaVoobik7ZWxzZXtpZighcil7aWYobnVsbD09PW4uc3RhdGVOb2RlKXRocm93IEVycm9yKGwoMTY2KSk7cmV0dXJuIGlHKG4pLG51bGx9ZT1ILmN1cnJlbnQsclIobik/ckwobixlKToobi5zdGF0ZU5vZGU9ZT1jVChvLHIsdCksaVoobikpfXJldHVybiBpRyhuKSxudWxsO2Nhc2UgNTppZihaKG4pLG89bi50eXBlLG51bGwhPT1lJiZudWxsIT1uLnN0YXRlTm9kZSllLm1lbW9pemVkUHJvcHMhPT1yJiZpWihuKTtlbHNle2lmKCFyKXtpZihudWxsPT09bi5zdGF0ZU5vZGUpdGhyb3cgRXJyb3IobCgxNjYpKTtyZXR1cm4gaUcobiksbnVsbH1pZihhPUguY3VycmVudCxyUihuKSlyTChuLGEpO2Vsc2V7dmFyIGk9Y2YoVS5jdXJyZW50KTtzd2l0Y2goYSl7Y2FzZSAxOmE9aS5jcmVhdGVFbGVtZW50TlMoXCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiLG8pO2JyZWFrO2Nhc2UgMjphPWkuY3JlYXRlRWxlbWVudE5TKFwiaHR0cDovL3d3dy53My5vcmcvMTk5OC9NYXRoL01hdGhNTFwiLG8pO2JyZWFrO2RlZmF1bHQ6c3dpdGNoKG8pe2Nhc2VcInN2Z1wiOmE9aS5jcmVhdGVFbGVtZW50TlMoXCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiLG8pO2JyZWFrO2Nhc2VcIm1hdGhcIjphPWkuY3JlYXRlRWxlbWVudE5TKFwiaHR0cDovL3d3dy53My5vcmcvMTk5OC9NYXRoL01hdGhNTFwiLG8pO2JyZWFrO2Nhc2VcInNjcmlwdFwiOihhPWkuY3JlYXRlRWxlbWVudChcImRpdlwiKSkuaW5uZXJIVE1MPVwiPHNjcmlwdD48XFwvc2NyaXB0PlwiLGE9YS5yZW1vdmVDaGlsZChhLmZpcnN0Q2hpbGQpO2JyZWFrO2Nhc2VcInNlbGVjdFwiOmE9XCJzdHJpbmdcIj09dHlwZW9mIHIuaXM/aS5jcmVhdGVFbGVtZW50KFwic2VsZWN0XCIse2lzOnIuaXN9KTppLmNyZWF0ZUVsZW1lbnQoXCJzZWxlY3RcIiksci5tdWx0aXBsZT9hLm11bHRpcGxlPSEwOnIuc2l6ZSYmKGEuc2l6ZT1yLnNpemUpO2JyZWFrO2RlZmF1bHQ6YT1cInN0cmluZ1wiPT10eXBlb2Ygci5pcz9pLmNyZWF0ZUVsZW1lbnQobyx7aXM6ci5pc30pOmkuY3JlYXRlRWxlbWVudChvKX19YVtlTl09bixhW2VEXT1yO2U6Zm9yKGk9bi5jaGlsZDtudWxsIT09aTspe2lmKDU9PT1pLnRhZ3x8Nj09PWkudGFnKWEuYXBwZW5kQ2hpbGQoaS5zdGF0ZU5vZGUpO2Vsc2UgaWYoNCE9PWkudGFnJiYyNyE9PWkudGFnJiZudWxsIT09aS5jaGlsZCl7aS5jaGlsZC5yZXR1cm49aSxpPWkuY2hpbGQ7Y29udGludWV9aWYoaT09PW4pYnJlYWs7Zm9yKDtudWxsPT09aS5zaWJsaW5nOyl7aWYobnVsbD09PWkucmV0dXJufHxpLnJldHVybj09PW4pYnJlYWsgZTtpPWkucmV0dXJufWkuc2libGluZy5yZXR1cm49aS5yZXR1cm4saT1pLnNpYmxpbmd9c3dpdGNoKG4uc3RhdGVOb2RlPWEsY2MoYSxvLHIpLG8pe2Nhc2VcImJ1dHRvblwiOmNhc2VcImlucHV0XCI6Y2FzZVwic2VsZWN0XCI6Y2FzZVwidGV4dGFyZWFcIjpyPSEhci5hdXRvRm9jdXM7YnJlYWs7Y2FzZVwiaW1nXCI6cj0hMDticmVhaztkZWZhdWx0OnI9ITF9ciYmaVoobil9fXJldHVybiBpRyhuKSxpWShuLG4udHlwZSxudWxsPT09ZT9udWxsOmUubWVtb2l6ZWRQcm9wcyxuLnBlbmRpbmdQcm9wcyx0KSxudWxsO2Nhc2UgNjppZihlJiZudWxsIT1uLnN0YXRlTm9kZSllLm1lbW9pemVkUHJvcHMhPT1yJiZpWihuKTtlbHNle2lmKFwic3RyaW5nXCIhPXR5cGVvZiByJiZudWxsPT09bi5zdGF0ZU5vZGUpdGhyb3cgRXJyb3IobCgxNjYpKTtpZihlPVUuY3VycmVudCxyUihuKSl7aWYoZT1uLnN0YXRlTm9kZSx0PW4ubWVtb2l6ZWRQcm9wcyxyPW51bGwsbnVsbCE9PShvPXJPKSlzd2l0Y2goby50YWcpe2Nhc2UgMjc6Y2FzZSA1OnI9by5tZW1vaXplZFByb3BzfWVbZU5dPW4sKGU9ISEoZS5ub2RlVmFsdWU9PT10fHxudWxsIT09ciYmITA9PT1yLnN1cHByZXNzSHlkcmF0aW9uV2FybmluZ3x8Y2koZS5ub2RlVmFsdWUsdCkpKXx8cnoobiwhMCl9ZWxzZShlPWNmKGUpLmNyZWF0ZVRleHROb2RlKHIpKVtlTl09bixuLnN0YXRlTm9kZT1lfXJldHVybiBpRyhuKSxudWxsO2Nhc2UgMzE6aWYodD1uLm1lbW9pemVkU3RhdGUsbnVsbD09PWV8fG51bGwhPT1lLm1lbW9pemVkU3RhdGUpe2lmKHI9clIobiksbnVsbCE9PXQpe2lmKG51bGw9PT1lKXtpZighcil0aHJvdyBFcnJvcihsKDMxOCkpO2lmKCEoZT1udWxsIT09KGU9bi5tZW1vaXplZFN0YXRlKT9lLmRlaHlkcmF0ZWQ6bnVsbCkpdGhyb3cgRXJyb3IobCg1NTcpKTtlW2VOXT1ufWVsc2Ugck4oKSwwPT0oMTI4Jm4uZmxhZ3MpJiYobi5tZW1vaXplZFN0YXRlPW51bGwpLG4uZmxhZ3N8PTQ7aUcobiksZT0hMX1lbHNlIHQ9ckQoKSxudWxsIT09ZSYmbnVsbCE9PWUubWVtb2l6ZWRTdGF0ZSYmKGUubWVtb2l6ZWRTdGF0ZS5oeWRyYXRpb25FcnJvcnM9dCksZT0hMDtpZighZSl7aWYoMjU2Jm4uZmxhZ3MpcmV0dXJuIG9xKG4pLG47cmV0dXJuIG9xKG4pLG51bGx9aWYoMCE9KDEyOCZuLmZsYWdzKSl0aHJvdyBFcnJvcihsKDU1OCkpfXJldHVybiBpRyhuKSxudWxsO2Nhc2UgMTM6aWYocj1uLm1lbW9pemVkU3RhdGUsbnVsbD09PWV8fG51bGwhPT1lLm1lbW9pemVkU3RhdGUmJm51bGwhPT1lLm1lbW9pemVkU3RhdGUuZGVoeWRyYXRlZCl7aWYobz1yUihuKSxudWxsIT09ciYmbnVsbCE9PXIuZGVoeWRyYXRlZCl7aWYobnVsbD09PWUpe2lmKCFvKXRocm93IEVycm9yKGwoMzE4KSk7aWYoIShvPW51bGwhPT0obz1uLm1lbW9pemVkU3RhdGUpP28uZGVoeWRyYXRlZDpudWxsKSl0aHJvdyBFcnJvcihsKDMxNykpO29bZU5dPW59ZWxzZSByTigpLDA9PSgxMjgmbi5mbGFncykmJihuLm1lbW9pemVkU3RhdGU9bnVsbCksbi5mbGFnc3w9NDtpRyhuKSxvPSExfWVsc2Ugbz1yRCgpLG51bGwhPT1lJiZudWxsIT09ZS5tZW1vaXplZFN0YXRlJiYoZS5tZW1vaXplZFN0YXRlLmh5ZHJhdGlvbkVycm9ycz1vKSxvPSEwO2lmKCFvKXtpZigyNTYmbi5mbGFncylyZXR1cm4gb3EobiksbjtyZXR1cm4gb3EobiksbnVsbH19aWYob3EobiksMCE9KDEyOCZuLmZsYWdzKSlyZXR1cm4gbi5sYW5lcz10LG47cmV0dXJuIHQ9bnVsbCE9PXIsZT1udWxsIT09ZSYmbnVsbCE9PWUubWVtb2l6ZWRTdGF0ZSx0JiYocj1uLmNoaWxkLG89bnVsbCxudWxsIT09ci5hbHRlcm5hdGUmJm51bGwhPT1yLmFsdGVybmF0ZS5tZW1vaXplZFN0YXRlJiZudWxsIT09ci5hbHRlcm5hdGUubWVtb2l6ZWRTdGF0ZS5jYWNoZVBvb2wmJihvPXIuYWx0ZXJuYXRlLm1lbW9pemVkU3RhdGUuY2FjaGVQb29sLnBvb2wpLGE9bnVsbCxudWxsIT09ci5tZW1vaXplZFN0YXRlJiZudWxsIT09ci5tZW1vaXplZFN0YXRlLmNhY2hlUG9vbCYmKGE9ci5tZW1vaXplZFN0YXRlLmNhY2hlUG9vbC5wb29sKSxhIT09byYmKHIuZmxhZ3N8PTIwNDgpKSx0IT09ZSYmdCYmKG4uY2hpbGQuZmxhZ3N8PTgxOTIpLGlLKG4sbi51cGRhdGVRdWV1ZSksaUcobiksbnVsbDtjYXNlIDQ6cmV0dXJuIFcoKSxudWxsPT09ZSYmczYobi5zdGF0ZU5vZGUuY29udGFpbmVySW5mbyksaUcobiksbnVsbDtjYXNlIDEwOnJldHVybiByVShuLnR5cGUpLGlHKG4pLG51bGw7Y2FzZSAxOTppZihNKG9XKSxudWxsPT09KHI9bi5tZW1vaXplZFN0YXRlKSlyZXR1cm4gaUcobiksbnVsbDtpZihvPTAhPSgxMjgmbi5mbGFncyksbnVsbD09PShhPXIucmVuZGVyaW5nKSlpZihvKWlRKHIsITEpO2Vsc2V7aWYoMCE9PWxxfHxudWxsIT09ZSYmMCE9KDEyOCZlLmZsYWdzKSlmb3IoZT1uLmNoaWxkO251bGwhPT1lOyl7aWYobnVsbCE9PShhPW8kKGUpKSl7Zm9yKG4uZmxhZ3N8PTEyOCxpUShyLCExKSxuLnVwZGF0ZVF1ZXVlPWU9YS51cGRhdGVRdWV1ZSxpSyhuLGUpLG4uc3VidHJlZUZsYWdzPTAsZT10LHQ9bi5jaGlsZDtudWxsIT09dDspcnIodCxlKSx0PXQuc2libGluZztyZXR1cm4gSShvVywxJm9XLmN1cnJlbnR8MiksclMmJnJ4KG4sci50cmVlRm9ya0NvdW50KSxuLmNoaWxkfWU9ZS5zaWJsaW5nfW51bGwhPT1yLnRhaWwmJmVyKCk+bDAmJihuLmZsYWdzfD0xMjgsbz0hMCxpUShyLCExKSxuLmxhbmVzPTQxOTQzMDQpfWVsc2V7aWYoIW8paWYobnVsbCE9PShlPW8kKGEpKSl7aWYobi5mbGFnc3w9MTI4LG89ITAsbi51cGRhdGVRdWV1ZT1lPWUudXBkYXRlUXVldWUsaUsobixlKSxpUShyLCEwKSxudWxsPT09ci50YWlsJiZcImhpZGRlblwiPT09ci50YWlsTW9kZSYmIWEuYWx0ZXJuYXRlJiYhclMpcmV0dXJuIGlHKG4pLG51bGx9ZWxzZSAyKmVyKCktci5yZW5kZXJpbmdTdGFydFRpbWU+bDAmJjB4MjAwMDAwMDAhPT10JiYobi5mbGFnc3w9MTI4LG89ITAsaVEociwhMSksbi5sYW5lcz00MTk0MzA0KTtyLmlzQmFja3dhcmRzPyhhLnNpYmxpbmc9bi5jaGlsZCxuLmNoaWxkPWEpOihudWxsIT09KGU9ci5sYXN0KT9lLnNpYmxpbmc9YTpuLmNoaWxkPWEsci5sYXN0PWEpfWlmKG51bGwhPT1yLnRhaWwpcmV0dXJuIGU9ci50YWlsLHIucmVuZGVyaW5nPWUsci50YWlsPWUuc2libGluZyxyLnJlbmRlcmluZ1N0YXJ0VGltZT1lcigpLGUuc2libGluZz1udWxsLHQ9b1cuY3VycmVudCxJKG9XLG8/MSZ0fDI6MSZ0KSxyUyYmcngobixyLnRyZWVGb3JrQ291bnQpLGU7cmV0dXJuIGlHKG4pLG51bGw7Y2FzZSAyMjpjYXNlIDIzOnJldHVybiBvcShuKSxvQigpLHI9bnVsbCE9PW4ubWVtb2l6ZWRTdGF0ZSxudWxsIT09ZT9udWxsIT09ZS5tZW1vaXplZFN0YXRlIT09ciYmKG4uZmxhZ3N8PTgxOTIpOnImJihuLmZsYWdzfD04MTkyKSxyPzAhPSgweDIwMDAwMDAwJnQpJiYwPT0oMTI4Jm4uZmxhZ3MpJiYoaUcobiksNiZuLnN1YnRyZWVGbGFncyYmKG4uZmxhZ3N8PTgxOTIpKTppRyhuKSxudWxsIT09KHQ9bi51cGRhdGVRdWV1ZSkmJmlLKG4sdC5yZXRyeVF1ZXVlKSx0PW51bGwsbnVsbCE9PWUmJm51bGwhPT1lLm1lbW9pemVkU3RhdGUmJm51bGwhPT1lLm1lbW9pemVkU3RhdGUuY2FjaGVQb29sJiYodD1lLm1lbW9pemVkU3RhdGUuY2FjaGVQb29sLnBvb2wpLHI9bnVsbCxudWxsIT09bi5tZW1vaXplZFN0YXRlJiZudWxsIT09bi5tZW1vaXplZFN0YXRlLmNhY2hlUG9vbCYmKHI9bi5tZW1vaXplZFN0YXRlLmNhY2hlUG9vbC5wb29sKSxyIT09dCYmKG4uZmxhZ3N8PTIwNDgpLG51bGwhPT1lJiZNKHI3KSxudWxsO2Nhc2UgMjQ6cmV0dXJuIHQ9bnVsbCxudWxsIT09ZSYmKHQ9ZS5tZW1vaXplZFN0YXRlLmNhY2hlKSxuLm1lbW9pemVkU3RhdGUuY2FjaGUhPT10JiYobi5mbGFnc3w9MjA0OCksclUocjApLGlHKG4pLG51bGw7Y2FzZSAyNTpjYXNlIDMwOnJldHVybiBudWxsfXRocm93IEVycm9yKGwoMTU2LG4udGFnKSl9KG4uYWx0ZXJuYXRlLG4sbFYpO2lmKG51bGwhPT10KXtsRD10O3JldHVybn1pZihudWxsIT09KG49bi5zaWJsaW5nKSl7bEQ9bjtyZXR1cm59bEQ9bj1lfXdoaWxlKG51bGwhPT1uKTswPT09bHEmJihscT01KX1mdW5jdGlvbiBzdyhlLG4pe2Rve3ZhciB0PWZ1bmN0aW9uKGUsbil7c3dpdGNoKHJrKG4pLG4udGFnKXtjYXNlIDE6cmV0dXJuIDY1NTM2JihlPW4uZmxhZ3MpPyhuLmZsYWdzPS02NTUzNyZlfDEyOCxuKTpudWxsO2Nhc2UgMzpyZXR1cm4gclUocjApLFcoKSwwIT0oNjU1MzYmKGU9bi5mbGFncykpJiYwPT0oMTI4JmUpPyhuLmZsYWdzPS02NTUzNyZlfDEyOCxuKTpudWxsO2Nhc2UgMjY6Y2FzZSAyNzpjYXNlIDU6cmV0dXJuIFoobiksbnVsbDtjYXNlIDMxOmlmKG51bGwhPT1uLm1lbW9pemVkU3RhdGUpe2lmKG9xKG4pLG51bGw9PT1uLmFsdGVybmF0ZSl0aHJvdyBFcnJvcihsKDM0MCkpO3JOKCl9cmV0dXJuIDY1NTM2JihlPW4uZmxhZ3MpPyhuLmZsYWdzPS02NTUzNyZlfDEyOCxuKTpudWxsO2Nhc2UgMTM6aWYob3EobiksbnVsbCE9PShlPW4ubWVtb2l6ZWRTdGF0ZSkmJm51bGwhPT1lLmRlaHlkcmF0ZWQpe2lmKG51bGw9PT1uLmFsdGVybmF0ZSl0aHJvdyBFcnJvcihsKDM0MCkpO3JOKCl9cmV0dXJuIDY1NTM2JihlPW4uZmxhZ3MpPyhuLmZsYWdzPS02NTUzNyZlfDEyOCxuKTpudWxsO2Nhc2UgMTk6cmV0dXJuIE0ob1cpLG51bGw7Y2FzZSA0OnJldHVybiBXKCksbnVsbDtjYXNlIDEwOnJldHVybiByVShuLnR5cGUpLG51bGw7Y2FzZSAyMjpjYXNlIDIzOnJldHVybiBvcShuKSxvQigpLG51bGwhPT1lJiZNKHI3KSw2NTUzNiYoZT1uLmZsYWdzKT8obi5mbGFncz0tNjU1MzcmZXwxMjgsbik6bnVsbDtjYXNlIDI0OnJldHVybiByVShyMCksbnVsbDtkZWZhdWx0OnJldHVybiBudWxsfX0oZS5hbHRlcm5hdGUsZSk7aWYobnVsbCE9PXQpe3QuZmxhZ3MmPTMyNzY3LGxEPXQ7cmV0dXJufWlmKG51bGwhPT0odD1lLnJldHVybikmJih0LmZsYWdzfD0zMjc2OCx0LnN1YnRyZWVGbGFncz0wLHQuZGVsZXRpb25zPW51bGwpLCFuJiZudWxsIT09KGU9ZS5zaWJsaW5nKSl7bEQ9ZTtyZXR1cm59bEQ9ZT10fXdoaWxlKG51bGwhPT1lKTtscT02LGxEPW51bGx9ZnVuY3Rpb24gc2ooZSxuLHQscixvLGEsaSxzLGMpe2UuY2FuY2VsUGVuZGluZ0NvbW1pdD1udWxsO2RvIHNTKCk7d2hpbGUoMCE9PWw0KTtpZigwIT0oNiZsUikpdGhyb3cgRXJyb3IobCgzMjcpKTtpZihudWxsIT09bil7aWYobj09PWUuY3VycmVudCl0aHJvdyBFcnJvcihsKDE3NykpO2lmKCFmdW5jdGlvbihlLG4sdCxyLG8sYSl7dmFyIGk9ZS5wZW5kaW5nTGFuZXM7ZS5wZW5kaW5nTGFuZXM9dCxlLnN1c3BlbmRlZExhbmVzPTAsZS5waW5nZWRMYW5lcz0wLGUud2FybUxhbmVzPTAsZS5leHBpcmVkTGFuZXMmPXQsZS5lbnRhbmdsZWRMYW5lcyY9dCxlLmVycm9yUmVjb3ZlcnlEaXNhYmxlZExhbmVzJj10LGUuc2hlbGxTdXNwZW5kQ291bnRlcj0wO3ZhciBsPWUuZW50YW5nbGVtZW50cyxzPWUuZXhwaXJhdGlvblRpbWVzLGM9ZS5oaWRkZW5VcGRhdGVzO2Zvcih0PWkmfnQ7MDx0Oyl7dmFyIHU9MzEtZWcodCksZD0xPDx1O2xbdV09MCxzW3VdPS0xO3ZhciBmPWNbdV07aWYobnVsbCE9PWYpZm9yKGNbdV09bnVsbCx1PTA7dTxmLmxlbmd0aDt1Kyspe3ZhciBwPWZbdV07bnVsbCE9PXAmJihwLmxhbmUmPS0weDIwMDAwMDAxKX10Jj1+ZH0wIT09ciYmZVMoZSxyLDApLDAhPT1hJiYwPT09byYmMCE9PWUudGFnJiYoZS5zdXNwZW5kZWRMYW5lc3w9YSZ+KGkmfm4pKX0oZSx0LGE9bi5sYW5lc3xuLmNoaWxkTGFuZXN8dDEsaSxzLGMpLGU9PT1sTiYmKGxEPWxOPW51bGwsbEI9MCksbDM9bixsNT1lLGw2PXQsbDk9YSxsOD1vLGw3PXIsMCE9KDEwMjU2Jm4uc3VidHJlZUZsYWdzKXx8MCE9KDEwMjU2Jm4uZmxhZ3MpPyhlLmNhbGxiYWNrTm9kZT1udWxsLGUuY2FsbGJhY2tQcmlvcml0eT0wLEooZWwsZnVuY3Rpb24oKXtyZXR1cm4gc0UoITApLG51bGx9KSk6KGUuY2FsbGJhY2tOb2RlPW51bGwsZS5jYWxsYmFja1ByaW9yaXR5PTApLHI9MCE9KDEzODc4Jm4uZmxhZ3MpLDAhPSgxMzg3OCZuLnN1YnRyZWVGbGFncyl8fHIpe3I9TC5ULEwuVD1udWxsLG89VC5wLFQucD0yLGk9bFIsbFJ8PTQ7dHJ5eyFmdW5jdGlvbihlLG4pe2lmKGU9ZS5jb250YWluZXJJbmZvLGN1PXVyLHRQKGU9dF8oZSkpKXtpZihcInNlbGVjdGlvblN0YXJ0XCJpbiBlKXZhciB0PXtzdGFydDplLnNlbGVjdGlvblN0YXJ0LGVuZDplLnNlbGVjdGlvbkVuZH07ZWxzZSBlOnt2YXIgcj0odD0odD1lLm93bmVyRG9jdW1lbnQpJiZ0LmRlZmF1bHRWaWV3fHx3aW5kb3cpLmdldFNlbGVjdGlvbiYmdC5nZXRTZWxlY3Rpb24oKTtpZihyJiYwIT09ci5yYW5nZUNvdW50KXt0PXIuYW5jaG9yTm9kZTt2YXIgbyxhPXIuYW5jaG9yT2Zmc2V0LGk9ci5mb2N1c05vZGU7cj1yLmZvY3VzT2Zmc2V0O3RyeXt0Lm5vZGVUeXBlLGkubm9kZVR5cGV9Y2F0Y2goZSl7dD1udWxsO2JyZWFrIGV9dmFyIHM9MCxjPS0xLHU9LTEsZD0wLGY9MCxwPWUsaD1udWxsO246Zm9yKDs7KXtmb3IoO3AhPT10fHwwIT09YSYmMyE9PXAubm9kZVR5cGV8fChjPXMrYSkscCE9PWl8fDAhPT1yJiYzIT09cC5ub2RlVHlwZXx8KHU9cytyKSwzPT09cC5ub2RlVHlwZSYmKHMrPXAubm9kZVZhbHVlLmxlbmd0aCksbnVsbCE9PShvPXAuZmlyc3RDaGlsZCk7KWg9cCxwPW87Zm9yKDs7KXtpZihwPT09ZSlicmVhayBuO2lmKGg9PT10JiYrK2Q9PT1hJiYoYz1zKSxoPT09aSYmKytmPT09ciYmKHU9cyksbnVsbCE9PShvPXAubmV4dFNpYmxpbmcpKWJyZWFrO2g9KHA9aCkucGFyZW50Tm9kZX1wPW99dD0tMT09PWN8fC0xPT09dT9udWxsOntzdGFydDpjLGVuZDp1fX1lbHNlIHQ9bnVsbH10PXR8fHtzdGFydDowLGVuZDowfX1lbHNlIHQ9bnVsbDtmb3IoY2Q9e2ZvY3VzZWRFbGVtOmUsc2VsZWN0aW9uUmFuZ2U6dH0sdXI9ITEsbGk9bjtudWxsIT09bGk7KWlmKGU9KG49bGkpLmNoaWxkLDAhPSgxMDI0Jm4uc3VidHJlZUZsYWdzKSYmbnVsbCE9PWUpZS5yZXR1cm49bixsaT1lO2Vsc2UgZm9yKDtudWxsIT09bGk7KXtzd2l0Y2goaT0obj1saSkuYWx0ZXJuYXRlLGU9bi5mbGFncyxuLnRhZyl7Y2FzZSAwOmNhc2UgMTE6Y2FzZSAxNTpjYXNlIDU6Y2FzZSAyNjpjYXNlIDI3OmNhc2UgNjpjYXNlIDQ6Y2FzZSAxNzpicmVhaztjYXNlIDE6aWYoMCE9KDEwMjQmZSkmJm51bGwhPT1pKXtlPXZvaWQgMCx0PW4sYT1pLm1lbW9pemVkUHJvcHMsaT1pLm1lbW9pemVkU3RhdGUscj10LnN0YXRlTm9kZTt0cnl7dmFyIGc9aWModC50eXBlLGEpO2U9ci5nZXRTbmFwc2hvdEJlZm9yZVVwZGF0ZShnLGkpLHIuX19yZWFjdEludGVybmFsU25hcHNob3RCZWZvcmVVcGRhdGU9ZX1jYXRjaChlKXtzUCh0LHQucmV0dXJuLGUpfX1icmVhaztjYXNlIDM6aWYoMCE9KDEwMjQmZSkpe2lmKDk9PT0odD0oZT1uLnN0YXRlTm9kZS5jb250YWluZXJJbmZvKS5ub2RlVHlwZSkpY08oZSk7ZWxzZSBpZigxPT09dClzd2l0Y2goZS5ub2RlTmFtZSl7Y2FzZVwiSEVBRFwiOmNhc2VcIkhUTUxcIjpjYXNlXCJCT0RZXCI6Y08oZSk7YnJlYWs7ZGVmYXVsdDplLnRleHRDb250ZW50PVwiXCJ9fWJyZWFrO2RlZmF1bHQ6aWYoMCE9KDEwMjQmZSkpdGhyb3cgRXJyb3IobCgxNjMpKX1pZihudWxsIT09KGU9bi5zaWJsaW5nKSl7ZS5yZXR1cm49bi5yZXR1cm4sbGk9ZTticmVha31saT1uLnJldHVybn19KGUsbix0KX1maW5hbGx5e2xSPWksVC5wPW8sTC5UPXJ9fWw0PTEsc2soKSxzQSgpLHNPKCl9fWZ1bmN0aW9uIHNrKCl7aWYoMT09PWw0KXtsND0wO3ZhciBlPWw1LG49bDMsdD0wIT0oMTM4Nzgmbi5mbGFncyk7aWYoMCE9KDEzODc4Jm4uc3VidHJlZUZsYWdzKXx8dCl7dD1MLlQsTC5UPW51bGw7dmFyIHI9VC5wO1QucD0yO3ZhciBvPWxSO2xSfD00O3RyeXtsdihuLGUpO3ZhciBhPWNkLGk9dF8oZS5jb250YWluZXJJbmZvKSxsPWEuZm9jdXNlZEVsZW0scz1hLnNlbGVjdGlvblJhbmdlO2lmKGkhPT1sJiZsJiZsLm93bmVyRG9jdW1lbnQmJmZ1bmN0aW9uIGUobix0KXtyZXR1cm4hIW4mJiEhdCYmKG49PT10fHwoIW58fDMhPT1uLm5vZGVUeXBlKSYmKHQmJjM9PT10Lm5vZGVUeXBlP2Uobix0LnBhcmVudE5vZGUpOlwiY29udGFpbnNcImluIG4/bi5jb250YWlucyh0KTohIW4uY29tcGFyZURvY3VtZW50UG9zaXRpb24mJiEhKDE2Jm4uY29tcGFyZURvY3VtZW50UG9zaXRpb24odCkpKSl9KGwub3duZXJEb2N1bWVudC5kb2N1bWVudEVsZW1lbnQsbCkpe2lmKG51bGwhPT1zJiZ0UChsKSl7dmFyIGM9cy5zdGFydCx1PXMuZW5kO2lmKHZvaWQgMD09PXUmJih1PWMpLFwic2VsZWN0aW9uU3RhcnRcImluIGwpbC5zZWxlY3Rpb25TdGFydD1jLGwuc2VsZWN0aW9uRW5kPU1hdGgubWluKHUsbC52YWx1ZS5sZW5ndGgpO2Vsc2V7dmFyIGQ9bC5vd25lckRvY3VtZW50fHxkb2N1bWVudCxmPWQmJmQuZGVmYXVsdFZpZXd8fHdpbmRvdztpZihmLmdldFNlbGVjdGlvbil7dmFyIHA9Zi5nZXRTZWxlY3Rpb24oKSxoPWwudGV4dENvbnRlbnQubGVuZ3RoLGc9TWF0aC5taW4ocy5zdGFydCxoKSxtPXZvaWQgMD09PXMuZW5kP2c6TWF0aC5taW4ocy5lbmQsaCk7IXAuZXh0ZW5kJiZnPm0mJihpPW0sbT1nLGc9aSk7dmFyIHY9dEUobCxnKSxiPXRFKGwsbSk7aWYodiYmYiYmKDEhPT1wLnJhbmdlQ291bnR8fHAuYW5jaG9yTm9kZSE9PXYubm9kZXx8cC5hbmNob3JPZmZzZXQhPT12Lm9mZnNldHx8cC5mb2N1c05vZGUhPT1iLm5vZGV8fHAuZm9jdXNPZmZzZXQhPT1iLm9mZnNldCkpe3ZhciB5PWQuY3JlYXRlUmFuZ2UoKTt5LnNldFN0YXJ0KHYubm9kZSx2Lm9mZnNldCkscC5yZW1vdmVBbGxSYW5nZXMoKSxnPm0/KHAuYWRkUmFuZ2UoeSkscC5leHRlbmQoYi5ub2RlLGIub2Zmc2V0KSk6KHkuc2V0RW5kKGIubm9kZSxiLm9mZnNldCkscC5hZGRSYW5nZSh5KSl9fX19Zm9yKGQ9W10scD1sO3A9cC5wYXJlbnROb2RlOykxPT09cC5ub2RlVHlwZSYmZC5wdXNoKHtlbGVtZW50OnAsbGVmdDpwLnNjcm9sbExlZnQsdG9wOnAuc2Nyb2xsVG9wfSk7Zm9yKFwiZnVuY3Rpb25cIj09dHlwZW9mIGwuZm9jdXMmJmwuZm9jdXMoKSxsPTA7bDxkLmxlbmd0aDtsKyspe3ZhciB4PWRbbF07eC5lbGVtZW50LnNjcm9sbExlZnQ9eC5sZWZ0LHguZWxlbWVudC5zY3JvbGxUb3A9eC50b3B9fXVyPSEhY3UsY2Q9Y3U9bnVsbH1maW5hbGx5e2xSPW8sVC5wPXIsTC5UPXR9fWUuY3VycmVudD1uLGw0PTJ9fWZ1bmN0aW9uIHNBKCl7aWYoMj09PWw0KXtsND0wO3ZhciBlPWw1LG49bDMsdD0wIT0oODc3MiZuLmZsYWdzKTtpZigwIT0oODc3MiZuLnN1YnRyZWVGbGFncyl8fHQpe3Q9TC5ULEwuVD1udWxsO3ZhciByPVQucDtULnA9Mjt2YXIgbz1sUjtsUnw9NDt0cnl7bGwoZSxuLmFsdGVybmF0ZSxuKX1maW5hbGx5e2xSPW8sVC5wPXIsTC5UPXR9fWw0PTN9fWZ1bmN0aW9uIHNPKCl7aWYoND09PWw0fHwzPT09bDQpe2w0PTAsZXQoKTt2YXIgZT1sNSxuPWwzLHQ9bDYscj1sNzswIT0oMTAyNTYmbi5zdWJ0cmVlRmxhZ3MpfHwwIT0oMTAyNTYmbi5mbGFncyk/bDQ9NToobDQ9MCxsMz1sNT1udWxsLHNDKGUsZS5wZW5kaW5nTGFuZXMpKTt2YXIgbz1lLnBlbmRpbmdMYW5lcztpZigwPT09byYmKGwyPW51bGwpLGV6KHQpLG49bi5zdGF0ZU5vZGUsZXAmJlwiZnVuY3Rpb25cIj09dHlwZW9mIGVwLm9uQ29tbWl0RmliZXJSb290KXRyeXtlcC5vbkNvbW1pdEZpYmVyUm9vdChlZixuLHZvaWQgMCwxMjg9PSgxMjgmbi5jdXJyZW50LmZsYWdzKSl9Y2F0Y2goZSl7fWlmKG51bGwhPT1yKXtuPUwuVCxvPVQucCxULnA9MixMLlQ9bnVsbDt0cnl7Zm9yKHZhciBhPWUub25SZWNvdmVyYWJsZUVycm9yLGk9MDtpPHIubGVuZ3RoO2krKyl7dmFyIGw9cltpXTthKGwudmFsdWUse2NvbXBvbmVudFN0YWNrOmwuc3RhY2t9KX19ZmluYWxseXtMLlQ9bixULnA9b319MCE9KDMmbDYpJiZzUygpLHNVKGUpLG89ZS5wZW5kaW5nTGFuZXMsMCE9KDQxOTQwOTAmdCkmJjAhPSg0MiZvKT9lPT09c24/c2UrKzooc2U9MCxzbj1lKTpzZT0wLHNWKDAsITEpfX1mdW5jdGlvbiBzQyhlLG4pezA9PShlLnBvb2xlZENhY2hlTGFuZXMmPW4pJiZudWxsIT0obj1lLnBvb2xlZENhY2hlKSYmKGUucG9vbGVkQ2FjaGU9bnVsbCxyMihuKSl9ZnVuY3Rpb24gc1MoZSl7cmV0dXJuIHNrKCksc0EoKSxzTygpLHNFKGUpfWZ1bmN0aW9uIHNFKCl7aWYoNSE9PWw0KXJldHVybiExO3ZhciBlPWw1LG49bDk7bDk9MDt2YXIgdD1leihsNikscj1MLlQsbz1ULnA7dHJ5e1QucD0zMj50PzMyOnQsTC5UPW51bGwsdD1sOCxsOD1udWxsO3ZhciBhPWw1LGk9bDY7aWYobDQ9MCxsMz1sNT1udWxsLGw2PTAsMCE9KDYmbFIpKXRocm93IEVycm9yKGwoMzMxKSk7dmFyIHM9bFI7aWYobFJ8PTQsbFAoYS5jdXJyZW50KSxsayhhLGEuY3VycmVudCxpLHQpLGxSPXMsc1YoMCwhMSksZXAmJlwiZnVuY3Rpb25cIj09dHlwZW9mIGVwLm9uUG9zdENvbW1pdEZpYmVyUm9vdCl0cnl7ZXAub25Qb3N0Q29tbWl0RmliZXJSb290KGVmLGEpfWNhdGNoKGUpe31yZXR1cm4hMH1maW5hbGx5e1QucD1vLEwuVD1yLHNDKGUsbil9fWZ1bmN0aW9uIHNfKGUsbix0KXtuPXJ1KHQsbiksbj1pbShlLnN0YXRlTm9kZSxuLDIpLG51bGwhPT0oZT1vTyhlLG4sMikpJiYoZUMoZSwyKSxzVShlKSl9ZnVuY3Rpb24gc1AoZSxuLHQpe2lmKDM9PT1lLnRhZylzXyhlLGUsdCk7ZWxzZSBmb3IoO251bGwhPT1uOyl7aWYoMz09PW4udGFnKXtzXyhuLGUsdCk7YnJlYWt9aWYoMT09PW4udGFnKXt2YXIgcj1uLnN0YXRlTm9kZTtpZihcImZ1bmN0aW9uXCI9PXR5cGVvZiBuLnR5cGUuZ2V0RGVyaXZlZFN0YXRlRnJvbUVycm9yfHxcImZ1bmN0aW9uXCI9PXR5cGVvZiByLmNvbXBvbmVudERpZENhdGNoJiYobnVsbD09PWwyfHwhbDIuaGFzKHIpKSl7ZT1ydSh0LGUpLG51bGwhPT0ocj1vTyhuLHQ9aXYoMiksMikpJiYoaWIodCxyLG4sZSksZUMociwyKSxzVShyKSk7YnJlYWt9fW49bi5yZXR1cm59fWZ1bmN0aW9uIHN6KGUsbix0KXt2YXIgcj1lLnBpbmdDYWNoZTtpZihudWxsPT09cil7cj1lLnBpbmdDYWNoZT1uZXcgbFQ7dmFyIG89bmV3IFNldDtyLnNldChuLG8pfWVsc2Ugdm9pZCAwPT09KG89ci5nZXQobikpJiYobz1uZXcgU2V0LHIuc2V0KG4sbykpO28uaGFzKHQpfHwobFU9ITAsby5hZGQodCksZT1zTC5iaW5kKG51bGwsZSxuLHQpLG4udGhlbihlLGUpKX1mdW5jdGlvbiBzTChlLG4sdCl7dmFyIHI9ZS5waW5nQ2FjaGU7bnVsbCE9PXImJnIuZGVsZXRlKG4pLGUucGluZ2VkTGFuZXN8PWUuc3VzcGVuZGVkTGFuZXMmdCxlLndhcm1MYW5lcyY9fnQsbE49PT1lJiYobEImdCk9PT10JiYoND09PWxxfHwzPT09bHEmJigweDNjMDAwMDAmbEIpPT09bEImJjMwMD5lcigpLWxKPzA9PSgyJmxSKSYmc3UoZSwwKTpsWnw9dCxsWD09PWxCJiYobFg9MCkpLHNVKGUpfWZ1bmN0aW9uIHNUKGUsbil7MD09PW4mJihuPWVBKCkpLG51bGwhPT0oZT10MyhlLG4pKSYmKGVDKGUsbiksc1UoZSkpfWZ1bmN0aW9uIHNSKGUpe3ZhciBuPWUubWVtb2l6ZWRTdGF0ZSx0PTA7bnVsbCE9PW4mJih0PW4ucmV0cnlMYW5lKSxzVChlLHQpfWZ1bmN0aW9uIHNOKGUsbil7dmFyIHQ9MDtzd2l0Y2goZS50YWcpe2Nhc2UgMzE6Y2FzZSAxMzp2YXIgcj1lLnN0YXRlTm9kZSxvPWUubWVtb2l6ZWRTdGF0ZTtudWxsIT09byYmKHQ9by5yZXRyeUxhbmUpO2JyZWFrO2Nhc2UgMTk6cj1lLnN0YXRlTm9kZTticmVhaztjYXNlIDIyOnI9ZS5zdGF0ZU5vZGUuX3JldHJ5Q2FjaGU7YnJlYWs7ZGVmYXVsdDp0aHJvdyBFcnJvcihsKDMxNCkpfW51bGwhPT1yJiZyLmRlbGV0ZShuKSxzVChlLHQpfXZhciBzRD1udWxsLHNCPW51bGwsc009ITEsc0k9ITEsc0g9ITEsc0Y9MDtmdW5jdGlvbiBzVShlKXtlIT09c0ImJm51bGw9PT1lLm5leHQmJihudWxsPT09c0I/c0Q9c0I9ZTpzQj1zQi5uZXh0PWUpLHNJPSEwLHNNfHwoc009ITAsY3goZnVuY3Rpb24oKXswIT0oNiZsUik/SihlYSxzcSk6c1coKX0pKX1mdW5jdGlvbiBzVihlLG4pe2lmKCFzSCYmc0kpe3NIPSEwO2RvIGZvcih2YXIgdD0hMSxyPXNEO251bGwhPT1yOyl7aWYoIW4paWYoMCE9PWUpe3ZhciBvPXIucGVuZGluZ0xhbmVzO2lmKDA9PT1vKXZhciBhPTA7ZWxzZXt2YXIgaT1yLnN1c3BlbmRlZExhbmVzLGw9ci5waW5nZWRMYW5lczthPTB4YzAwMDA5NSYoYT0oMTw8MzEtZWcoNDJ8ZSkrMSktMSYobyZ+KGkmfmwpKSk/MHhjMDAwMDk1JmF8MTphPzJ8YTowfTAhPT1hJiYodD0hMCxzWShyLGEpKX1lbHNlIGE9bEIsMD09KDMmKGE9ZXcocixyPT09bE4/YTowLG51bGwhPT1yLmNhbmNlbFBlbmRpbmdDb21taXR8fC0xIT09ci50aW1lb3V0SGFuZGxlKSkpfHxlaihyLGEpfHwodD0hMCxzWShyLGEpKTtyPXIubmV4dH13aGlsZSh0KTtzSD0hMX19ZnVuY3Rpb24gc3EoKXtzVygpfWZ1bmN0aW9uIHNXKCl7c0k9c009ITE7dmFyIGUsbj0wOzA9PT1zRnx8KChlPXdpbmRvdy5ldmVudCkmJlwicG9wc3RhdGVcIj09PWUudHlwZT9lPT09Y218fChjbT1lLDApOihjbT1udWxsLDEpKXx8KG49c0YpO2Zvcih2YXIgdD1lcigpLHI9bnVsbCxvPXNEO251bGwhPT1vOyl7dmFyIGE9by5uZXh0LGk9cyQobyx0KTswPT09aT8oby5uZXh0PW51bGwsbnVsbD09PXI/c0Q9YTpyLm5leHQ9YSxudWxsPT09YSYmKHNCPXIpKToocj1vLCgwIT09bnx8MCE9KDMmaSkpJiYoc0k9ITApKSxvPWF9MCE9PWw0JiY1IT09bDR8fHNWKG4sITEpLDAhPT1zRiYmKHNGPTApfWZ1bmN0aW9uIHMkKGUsbil7Zm9yKHZhciB0PWUuc3VzcGVuZGVkTGFuZXMscj1lLnBpbmdlZExhbmVzLG89ZS5leHBpcmF0aW9uVGltZXMsYT0tMHgzYzAwMDAxJmUucGVuZGluZ0xhbmVzOzA8YTspe3ZhciBpPTMxLWVnKGEpLGw9MTw8aSxzPW9baV07LTE9PT1zPygwPT0obCZ0KXx8MCE9KGwmcikpJiYob1tpXT1mdW5jdGlvbihlLG4pe3N3aXRjaChlKXtjYXNlIDE6Y2FzZSAyOmNhc2UgNDpjYXNlIDg6Y2FzZSA2NDpyZXR1cm4gbisyNTA7Y2FzZSAxNjpjYXNlIDMyOmNhc2UgMTI4OmNhc2UgMjU2OmNhc2UgNTEyOmNhc2UgMTAyNDpjYXNlIDIwNDg6Y2FzZSA0MDk2OmNhc2UgODE5MjpjYXNlIDE2Mzg0OmNhc2UgMzI3Njg6Y2FzZSA2NTUzNjpjYXNlIDEzMTA3MjpjYXNlIDI2MjE0NDpjYXNlIDUyNDI4ODpjYXNlIDEwNDg1NzY6Y2FzZSAyMDk3MTUyOnJldHVybiBuKzVlMztkZWZhdWx0OnJldHVybiAtMX19KGwsbikpOnM8PW4mJihlLmV4cGlyZWRMYW5lc3w9bCksYSY9fmx9aWYobj1sTix0PWxCLHQ9ZXcoZSxlPT09bj90OjAsbnVsbCE9PWUuY2FuY2VsUGVuZGluZ0NvbW1pdHx8LTEhPT1lLnRpbWVvdXRIYW5kbGUpLHI9ZS5jYWxsYmFja05vZGUsMD09PXR8fGU9PT1uJiYoMj09PWxNfHw5PT09bE0pfHxudWxsIT09ZS5jYW5jZWxQZW5kaW5nQ29tbWl0KXJldHVybiBudWxsIT09ciYmbnVsbCE9PXImJmVlKHIpLGUuY2FsbGJhY2tOb2RlPW51bGwsZS5jYWxsYmFja1ByaW9yaXR5PTA7aWYoMD09KDMmdCl8fGVqKGUsdCkpe2lmKChuPXQmLXQpPT09ZS5jYWxsYmFja1ByaW9yaXR5KXJldHVybiBuO3N3aXRjaChudWxsIT09ciYmZWUociksZXoodCkpe2Nhc2UgMjpjYXNlIDg6dD1laTticmVhaztjYXNlIDMyOmRlZmF1bHQ6dD1lbDticmVhaztjYXNlIDB4MTAwMDAwMDA6dD1lY31yZXR1cm4gdD1KKHQscj1zWi5iaW5kKG51bGwsZSkpLGUuY2FsbGJhY2tQcmlvcml0eT1uLGUuY2FsbGJhY2tOb2RlPXQsbn1yZXR1cm4gbnVsbCE9PXImJm51bGwhPT1yJiZlZShyKSxlLmNhbGxiYWNrUHJpb3JpdHk9MixlLmNhbGxiYWNrTm9kZT1udWxsLDJ9ZnVuY3Rpb24gc1ooZSxuKXtpZigwIT09bDQmJjUhPT1sNClyZXR1cm4gZS5jYWxsYmFja05vZGU9bnVsbCxlLmNhbGxiYWNrUHJpb3JpdHk9MCxudWxsO3ZhciB0PWUuY2FsbGJhY2tOb2RlO2lmKHNTKCEwKSYmZS5jYWxsYmFja05vZGUhPT10KXJldHVybiBudWxsO3ZhciByPWxCO3JldHVybiAwPT09KHI9ZXcoZSxlPT09bE4/cjowLG51bGwhPT1lLmNhbmNlbFBlbmRpbmdDb21taXR8fC0xIT09ZS50aW1lb3V0SGFuZGxlKSk/bnVsbDooc2EoZSxyLG4pLHMkKGUsZXIoKSksbnVsbCE9ZS5jYWxsYmFja05vZGUmJmUuY2FsbGJhY2tOb2RlPT09dD9zWi5iaW5kKG51bGwsZSk6bnVsbCl9ZnVuY3Rpb24gc1koZSxuKXtpZihzUygpKXJldHVybiBudWxsO3NhKGUsbiwhMCl9ZnVuY3Rpb24gc1goKXtpZigwPT09c0Ype3ZhciBlPXIzO3NGPTAhPT1lP2U6ZWsoKX1yZXR1cm4gc0Z9ZnVuY3Rpb24gc0soZSl7cmV0dXJuIG51bGw9PWV8fFwic3ltYm9sXCI9PXR5cGVvZiBlfHxcImJvb2xlYW5cIj09dHlwZW9mIGU/bnVsbDpcImZ1bmN0aW9uXCI9PXR5cGVvZiBlP2U6bmcoXCJcIitlKX1mdW5jdGlvbiBzUShlLG4pe3ZhciB0PW4ub3duZXJEb2N1bWVudC5jcmVhdGVFbGVtZW50KFwiaW5wdXRcIik7cmV0dXJuIHQubmFtZT1uLm5hbWUsdC52YWx1ZT1uLnZhbHVlLGUuaWQmJnQuc2V0QXR0cmlidXRlKFwiZm9ybVwiLGUuaWQpLG4ucGFyZW50Tm9kZS5pbnNlcnRCZWZvcmUodCxuKSxlPW5ldyBGb3JtRGF0YShlKSx0LnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQodCksZX1mb3IodmFyIHNHPTA7c0c8dEsubGVuZ3RoO3NHKyspe3ZhciBzSj10S1tzR107dFEoc0oudG9Mb3dlckNhc2UoKSxcIm9uXCIrKHNKWzBdLnRvVXBwZXJDYXNlKCkrc0ouc2xpY2UoMSkpKX10USh0VSxcIm9uQW5pbWF0aW9uRW5kXCIpLHRRKHRWLFwib25BbmltYXRpb25JdGVyYXRpb25cIiksdFEodHEsXCJvbkFuaW1hdGlvblN0YXJ0XCIpLHRRKFwiZGJsY2xpY2tcIixcIm9uRG91YmxlQ2xpY2tcIiksdFEoXCJmb2N1c2luXCIsXCJvbkZvY3VzXCIpLHRRKFwiZm9jdXNvdXRcIixcIm9uQmx1clwiKSx0USh0VyxcIm9uVHJhbnNpdGlvblJ1blwiKSx0USh0JCxcIm9uVHJhbnNpdGlvblN0YXJ0XCIpLHRRKHRaLFwib25UcmFuc2l0aW9uQ2FuY2VsXCIpLHRRKHRZLFwib25UcmFuc2l0aW9uRW5kXCIpLGVHKFwib25Nb3VzZUVudGVyXCIsW1wibW91c2VvdXRcIixcIm1vdXNlb3ZlclwiXSksZUcoXCJvbk1vdXNlTGVhdmVcIixbXCJtb3VzZW91dFwiLFwibW91c2VvdmVyXCJdKSxlRyhcIm9uUG9pbnRlckVudGVyXCIsW1wicG9pbnRlcm91dFwiLFwicG9pbnRlcm92ZXJcIl0pLGVHKFwib25Qb2ludGVyTGVhdmVcIixbXCJwb2ludGVyb3V0XCIsXCJwb2ludGVyb3ZlclwiXSksZVEoXCJvbkNoYW5nZVwiLFwiY2hhbmdlIGNsaWNrIGZvY3VzaW4gZm9jdXNvdXQgaW5wdXQga2V5ZG93biBrZXl1cCBzZWxlY3Rpb25jaGFuZ2VcIi5zcGxpdChcIiBcIikpLGVRKFwib25TZWxlY3RcIixcImZvY3Vzb3V0IGNvbnRleHRtZW51IGRyYWdlbmQgZm9jdXNpbiBrZXlkb3duIGtleXVwIG1vdXNlZG93biBtb3VzZXVwIHNlbGVjdGlvbmNoYW5nZVwiLnNwbGl0KFwiIFwiKSksZVEoXCJvbkJlZm9yZUlucHV0XCIsW1wiY29tcG9zaXRpb25lbmRcIixcImtleXByZXNzXCIsXCJ0ZXh0SW5wdXRcIixcInBhc3RlXCJdKSxlUShcIm9uQ29tcG9zaXRpb25FbmRcIixcImNvbXBvc2l0aW9uZW5kIGZvY3Vzb3V0IGtleWRvd24ga2V5cHJlc3Mga2V5dXAgbW91c2Vkb3duXCIuc3BsaXQoXCIgXCIpKSxlUShcIm9uQ29tcG9zaXRpb25TdGFydFwiLFwiY29tcG9zaXRpb25zdGFydCBmb2N1c291dCBrZXlkb3duIGtleXByZXNzIGtleXVwIG1vdXNlZG93blwiLnNwbGl0KFwiIFwiKSksZVEoXCJvbkNvbXBvc2l0aW9uVXBkYXRlXCIsXCJjb21wb3NpdGlvbnVwZGF0ZSBmb2N1c291dCBrZXlkb3duIGtleXByZXNzIGtleXVwIG1vdXNlZG93blwiLnNwbGl0KFwiIFwiKSk7dmFyIHMwPVwiYWJvcnQgY2FucGxheSBjYW5wbGF5dGhyb3VnaCBkdXJhdGlvbmNoYW5nZSBlbXB0aWVkIGVuY3J5cHRlZCBlbmRlZCBlcnJvciBsb2FkZWRkYXRhIGxvYWRlZG1ldGFkYXRhIGxvYWRzdGFydCBwYXVzZSBwbGF5IHBsYXlpbmcgcHJvZ3Jlc3MgcmF0ZWNoYW5nZSByZXNpemUgc2Vla2VkIHNlZWtpbmcgc3RhbGxlZCBzdXNwZW5kIHRpbWV1cGRhdGUgdm9sdW1lY2hhbmdlIHdhaXRpbmdcIi5zcGxpdChcIiBcIiksczE9bmV3IFNldChcImJlZm9yZXRvZ2dsZSBjYW5jZWwgY2xvc2UgaW52YWxpZCBsb2FkIHNjcm9sbCBzY3JvbGxlbmQgdG9nZ2xlXCIuc3BsaXQoXCIgXCIpLmNvbmNhdChzMCkpO2Z1bmN0aW9uIHMyKGUsbil7bj0wIT0oNCZuKTtmb3IodmFyIHQ9MDt0PGUubGVuZ3RoO3QrKyl7dmFyIHI9ZVt0XSxvPXIuZXZlbnQ7cj1yLmxpc3RlbmVycztlOnt2YXIgYT12b2lkIDA7aWYobilmb3IodmFyIGk9ci5sZW5ndGgtMTswPD1pO2ktLSl7dmFyIGw9cltpXSxzPWwuaW5zdGFuY2UsYz1sLmN1cnJlbnRUYXJnZXQ7aWYobD1sLmxpc3RlbmVyLHMhPT1hJiZvLmlzUHJvcGFnYXRpb25TdG9wcGVkKCkpYnJlYWsgZTthPWwsby5jdXJyZW50VGFyZ2V0PWM7dHJ5e2Eobyl9Y2F0Y2goZSl7dEcoZSl9by5jdXJyZW50VGFyZ2V0PW51bGwsYT1zfWVsc2UgZm9yKGk9MDtpPHIubGVuZ3RoO2krKyl7aWYocz0obD1yW2ldKS5pbnN0YW5jZSxjPWwuY3VycmVudFRhcmdldCxsPWwubGlzdGVuZXIscyE9PWEmJm8uaXNQcm9wYWdhdGlvblN0b3BwZWQoKSlicmVhayBlO2E9bCxvLmN1cnJlbnRUYXJnZXQ9Yzt0cnl7YShvKX1jYXRjaChlKXt0RyhlKX1vLmN1cnJlbnRUYXJnZXQ9bnVsbCxhPXN9fX19ZnVuY3Rpb24gczQoZSxuKXt2YXIgdD1uW2VNXTt2b2lkIDA9PT10JiYodD1uW2VNXT1uZXcgU2V0KTt2YXIgcj1lK1wiX19idWJibGVcIjt0LmhhcyhyKXx8KHM5KG4sZSwyLCExKSx0LmFkZChyKSl9ZnVuY3Rpb24gczUoZSxuLHQpe3ZhciByPTA7biYmKHJ8PTQpLHM5KHQsZSxyLG4pfXZhciBzMz1cIl9yZWFjdExpc3RlbmluZ1wiK01hdGgucmFuZG9tKCkudG9TdHJpbmcoMzYpLnNsaWNlKDIpO2Z1bmN0aW9uIHM2KGUpe2lmKCFlW3MzXSl7ZVtzM109ITAsZVguZm9yRWFjaChmdW5jdGlvbihuKXtcInNlbGVjdGlvbmNoYW5nZVwiIT09biYmKHMxLmhhcyhuKXx8czUobiwhMSxlKSxzNShuLCEwLGUpKX0pO3ZhciBuPTk9PT1lLm5vZGVUeXBlP2U6ZS5vd25lckRvY3VtZW50O251bGw9PT1ufHxuW3MzXXx8KG5bczNdPSEwLHM1KFwic2VsZWN0aW9uY2hhbmdlXCIsITEsbikpfX1mdW5jdGlvbiBzOShlLG4sdCxyKXtzd2l0Y2godXUobikpe2Nhc2UgMjp2YXIgbz11bzticmVhaztjYXNlIDg6bz11YTticmVhaztkZWZhdWx0Om89dWl9dD1vLmJpbmQobnVsbCxuLHQsZSksbz12b2lkIDAsbkMmJihcInRvdWNoc3RhcnRcIj09PW58fFwidG91Y2htb3ZlXCI9PT1ufHxcIndoZWVsXCI9PT1uKSYmKG89ITApLHI/dm9pZCAwIT09bz9lLmFkZEV2ZW50TGlzdGVuZXIobix0LHtjYXB0dXJlOiEwLHBhc3NpdmU6b30pOmUuYWRkRXZlbnRMaXN0ZW5lcihuLHQsITApOnZvaWQgMCE9PW8/ZS5hZGRFdmVudExpc3RlbmVyKG4sdCx7cGFzc2l2ZTpvfSk6ZS5hZGRFdmVudExpc3RlbmVyKG4sdCwhMSl9ZnVuY3Rpb24gczgoZSxuLHQscixvKXt2YXIgYT1yO2lmKDA9PSgxJm4pJiYwPT0oMiZuKSYmbnVsbCE9PXIpZTpmb3IoOzspe2lmKG51bGw9PT1yKXJldHVybjt2YXIgaT1yLnRhZztpZigzPT09aXx8ND09PWkpe3ZhciBsPXIuc3RhdGVOb2RlLmNvbnRhaW5lckluZm87aWYobD09PW8pYnJlYWs7aWYoND09PWkpZm9yKGk9ci5yZXR1cm47bnVsbCE9PWk7KXt2YXIgYz1pLnRhZztpZigoMz09PWN8fDQ9PT1jKSYmaS5zdGF0ZU5vZGUuY29udGFpbmVySW5mbz09PW8pcmV0dXJuO2k9aS5yZXR1cm59Zm9yKDtudWxsIT09bDspe2lmKG51bGw9PT0oaT1lcShsKSkpcmV0dXJuO2lmKDU9PT0oYz1pLnRhZyl8fDY9PT1jfHwyNj09PWN8fDI3PT09Yyl7cj1hPWk7Y29udGludWUgZX1sPWwucGFyZW50Tm9kZX19cj1yLnJldHVybn1uayhmdW5jdGlvbigpe3ZhciByPWEsbz1uYih0KSxpPVtdO2U6e3ZhciBsPXRYLmdldChlKTtpZih2b2lkIDAhPT1sKXt2YXIgYz1uVSx1PWU7c3dpdGNoKGUpe2Nhc2VcImtleXByZXNzXCI6aWYoMD09PW5MKHQpKWJyZWFrIGU7Y2FzZVwia2V5ZG93blwiOmNhc2VcImtleXVwXCI6Yz1uNDticmVhaztjYXNlXCJmb2N1c2luXCI6dT1cImZvY3VzXCIsYz1uWTticmVhaztjYXNlXCJmb2N1c291dFwiOnU9XCJibHVyXCIsYz1uWTticmVhaztjYXNlXCJiZWZvcmVibHVyXCI6Y2FzZVwiYWZ0ZXJibHVyXCI6Yz1uWTticmVhaztjYXNlXCJjbGlja1wiOmlmKDI9PT10LmJ1dHRvbilicmVhayBlO2Nhc2VcImF1eGNsaWNrXCI6Y2FzZVwiZGJsY2xpY2tcIjpjYXNlXCJtb3VzZWRvd25cIjpjYXNlXCJtb3VzZW1vdmVcIjpjYXNlXCJtb3VzZXVwXCI6Y2FzZVwibW91c2VvdXRcIjpjYXNlXCJtb3VzZW92ZXJcIjpjYXNlXCJjb250ZXh0bWVudVwiOmM9biQ7YnJlYWs7Y2FzZVwiZHJhZ1wiOmNhc2VcImRyYWdlbmRcIjpjYXNlXCJkcmFnZW50ZXJcIjpjYXNlXCJkcmFnZXhpdFwiOmNhc2VcImRyYWdsZWF2ZVwiOmNhc2VcImRyYWdvdmVyXCI6Y2FzZVwiZHJhZ3N0YXJ0XCI6Y2FzZVwiZHJvcFwiOmM9blo7YnJlYWs7Y2FzZVwidG91Y2hjYW5jZWxcIjpjYXNlXCJ0b3VjaGVuZFwiOmNhc2VcInRvdWNobW92ZVwiOmNhc2VcInRvdWNoc3RhcnRcIjpjPW4zO2JyZWFrO2Nhc2UgdFU6Y2FzZSB0VjpjYXNlIHRxOmM9blg7YnJlYWs7Y2FzZSB0WTpjPW42O2JyZWFrO2Nhc2VcInNjcm9sbFwiOmNhc2VcInNjcm9sbGVuZFwiOmM9bnE7YnJlYWs7Y2FzZVwid2hlZWxcIjpjPW45O2JyZWFrO2Nhc2VcImNvcHlcIjpjYXNlXCJjdXRcIjpjYXNlXCJwYXN0ZVwiOmM9bks7YnJlYWs7Y2FzZVwiZ290cG9pbnRlcmNhcHR1cmVcIjpjYXNlXCJsb3N0cG9pbnRlcmNhcHR1cmVcIjpjYXNlXCJwb2ludGVyY2FuY2VsXCI6Y2FzZVwicG9pbnRlcmRvd25cIjpjYXNlXCJwb2ludGVybW92ZVwiOmNhc2VcInBvaW50ZXJvdXRcIjpjYXNlXCJwb2ludGVyb3ZlclwiOmNhc2VcInBvaW50ZXJ1cFwiOmM9bjU7YnJlYWs7Y2FzZVwidG9nZ2xlXCI6Y2FzZVwiYmVmb3JldG9nZ2xlXCI6Yz1uOH12YXIgZD0wIT0oNCZuKSxmPSFkJiYoXCJzY3JvbGxcIj09PWV8fFwic2Nyb2xsZW5kXCI9PT1lKSxwPWQ/bnVsbCE9PWw/bCtcIkNhcHR1cmVcIjpudWxsOmw7ZD1bXTtmb3IodmFyIGgsZz1yO251bGwhPT1nOyl7dmFyIG09ZztpZihoPW0uc3RhdGVOb2RlLDUhPT0obT1tLnRhZykmJjI2IT09bSYmMjchPT1tfHxudWxsPT09aHx8bnVsbD09PXB8fG51bGwhPShtPW5BKGcscCkpJiZkLnB1c2goczcoZyxtLGgpKSxmKWJyZWFrO2c9Zy5yZXR1cm59MDxkLmxlbmd0aCYmKGw9bmV3IGMobCx1LG51bGwsdCxvKSxpLnB1c2goe2V2ZW50OmwsbGlzdGVuZXJzOmR9KSl9fWlmKDA9PSg3Jm4pKXtpZigobD1cIm1vdXNlb3ZlclwiPT09ZXx8XCJwb2ludGVyb3ZlclwiPT09ZSxjPVwibW91c2VvdXRcIj09PWV8fFwicG9pbnRlcm91dFwiPT09ZSwhKGwmJnQhPT1udiYmKHU9dC5yZWxhdGVkVGFyZ2V0fHx0LmZyb21FbGVtZW50KSYmKGVxKHUpfHx1W2VCXSkpKSYmKGN8fGwpJiYobD1vLndpbmRvdz09PW8/bzoobD1vLm93bmVyRG9jdW1lbnQpP2wuZGVmYXVsdFZpZXd8fGwucGFyZW50V2luZG93OndpbmRvdyxjPyh1PXQucmVsYXRlZFRhcmdldHx8dC50b0VsZW1lbnQsYz1yLG51bGwhPT0odT11P2VxKHUpOm51bGwpJiYoZj1zKHUpLGQ9dS50YWcsdSE9PWZ8fDUhPT1kJiYyNyE9PWQmJjYhPT1kKSYmKHU9bnVsbCkpOihjPW51bGwsdT1yKSxjIT09dSkpe2lmKGQ9biQsbT1cIm9uTW91c2VMZWF2ZVwiLHA9XCJvbk1vdXNlRW50ZXJcIixnPVwibW91c2VcIiwoXCJwb2ludGVyb3V0XCI9PT1lfHxcInBvaW50ZXJvdmVyXCI9PT1lKSYmKGQ9bjUsbT1cIm9uUG9pbnRlckxlYXZlXCIscD1cIm9uUG9pbnRlckVudGVyXCIsZz1cInBvaW50ZXJcIiksZj1udWxsPT1jP2w6ZSQoYyksaD1udWxsPT11P2w6ZSQodSksKGw9bmV3IGQobSxnK1wibGVhdmVcIixjLHQsbykpLnRhcmdldD1mLGwucmVsYXRlZFRhcmdldD1oLG09bnVsbCxlcShvKT09PXImJigoZD1uZXcgZChwLGcrXCJlbnRlclwiLHUsdCxvKSkudGFyZ2V0PWgsZC5yZWxhdGVkVGFyZ2V0PWYsbT1kKSxmPW0sYyYmdSluOntmb3IoZD1jbixwPWMsZz11LGg9MCxtPXA7bTttPWQobSkpaCsrO209MDtmb3IodmFyIHYsYj1nO2I7Yj1kKGIpKW0rKztmb3IoOzA8aC1tOylwPWQocCksaC0tO2Zvcig7MDxtLWg7KWc9ZChnKSxtLS07Zm9yKDtoLS07KXtpZihwPT09Z3x8bnVsbCE9PWcmJnA9PT1nLmFsdGVybmF0ZSl7ZD1wO2JyZWFrIG59cD1kKHApLGc9ZChnKX1kPW51bGx9ZWxzZSBkPW51bGw7bnVsbCE9PWMmJmN0KGksbCxjLGQsITEpLG51bGwhPT11JiZudWxsIT09ZiYmY3QoaSxmLHUsZCwhMCl9ZTp7aWYoXCJzZWxlY3RcIj09PShjPShsPXI/ZSQocik6d2luZG93KS5ub2RlTmFtZSYmbC5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpKXx8XCJpbnB1dFwiPT09YyYmXCJmaWxlXCI9PT1sLnR5cGUpdmFyIHk9dGc7ZWxzZSBpZih0YyhsKSlpZih0bSl5PXRBO2Vsc2V7eT10ajt2YXIgeD10d31lbHNlKGM9bC5ub2RlTmFtZSkmJlwiaW5wdXRcIj09PWMudG9Mb3dlckNhc2UoKSYmKFwiY2hlY2tib3hcIj09PWwudHlwZXx8XCJyYWRpb1wiPT09bC50eXBlKT95PXRrOnImJm5mKHIuZWxlbWVudFR5cGUpJiYoeT10Zyk7aWYoeSYmKHk9eShlLHIpKSl7dHUoaSx5LHQsbyk7YnJlYWsgZX14JiZ4KGUsbCxyKSxcImZvY3Vzb3V0XCI9PT1lJiZyJiZcIm51bWJlclwiPT09bC50eXBlJiZudWxsIT1yLm1lbW9pemVkUHJvcHMudmFsdWUmJm5vKGwsXCJudW1iZXJcIixsLnZhbHVlKX1zd2l0Y2goeD1yP2UkKHIpOndpbmRvdyxlKXtjYXNlXCJmb2N1c2luXCI6KHRjKHgpfHxcInRydWVcIj09PXguY29udGVudEVkaXRhYmxlKSYmKHRMPXgsdFQ9cix0Uj1udWxsKTticmVhaztjYXNlXCJmb2N1c291dFwiOnRSPXRUPXRMPW51bGw7YnJlYWs7Y2FzZVwibW91c2Vkb3duXCI6dE49ITA7YnJlYWs7Y2FzZVwiY29udGV4dG1lbnVcIjpjYXNlXCJtb3VzZXVwXCI6Y2FzZVwiZHJhZ2VuZFwiOnROPSExLHREKGksdCxvKTticmVhaztjYXNlXCJzZWxlY3Rpb25jaGFuZ2VcIjppZih0eilicmVhaztjYXNlXCJrZXlkb3duXCI6Y2FzZVwia2V5dXBcIjp0RChpLHQsbyl9aWYodGUpbjp7c3dpdGNoKGUpe2Nhc2VcImNvbXBvc2l0aW9uc3RhcnRcIjp2YXIgdz1cIm9uQ29tcG9zaXRpb25TdGFydFwiO2JyZWFrIG47Y2FzZVwiY29tcG9zaXRpb25lbmRcIjp3PVwib25Db21wb3NpdGlvbkVuZFwiO2JyZWFrIG47Y2FzZVwiY29tcG9zaXRpb251cGRhdGVcIjp3PVwib25Db21wb3NpdGlvblVwZGF0ZVwiO2JyZWFrIG59dz12b2lkIDB9ZWxzZSB0bD90YShlLHQpJiYodz1cIm9uQ29tcG9zaXRpb25FbmRcIik6XCJrZXlkb3duXCI9PT1lJiYyMjk9PT10LmtleUNvZGUmJih3PVwib25Db21wb3NpdGlvblN0YXJ0XCIpO3cmJih0ciYmXCJrb1wiIT09dC5sb2NhbGUmJih0bHx8XCJvbkNvbXBvc2l0aW9uU3RhcnRcIiE9PXc/XCJvbkNvbXBvc2l0aW9uRW5kXCI9PT13JiZ0bCYmKHY9bnooKSk6KG5fPVwidmFsdWVcImluKG5FPW8pP25FLnZhbHVlOm5FLnRleHRDb250ZW50LHRsPSEwKSksMDwoeD1jZShyLHcpKS5sZW5ndGgmJih3PW5ldyBuUSh3LGUsbnVsbCx0LG8pLGkucHVzaCh7ZXZlbnQ6dyxsaXN0ZW5lcnM6eH0pLHY/dy5kYXRhPXY6bnVsbCE9PSh2PXRpKHQpKSYmKHcuZGF0YT12KSkpLCh2PXR0P2Z1bmN0aW9uKGUsbil7c3dpdGNoKGUpe2Nhc2VcImNvbXBvc2l0aW9uZW5kXCI6cmV0dXJuIHRpKG4pO2Nhc2VcImtleXByZXNzXCI6aWYoMzIhPT1uLndoaWNoKXJldHVybiBudWxsO3JldHVybiB0bz0hMCxcIiBcIjtjYXNlXCJ0ZXh0SW5wdXRcIjpyZXR1cm5cIiBcIj09PShlPW4uZGF0YSkmJnRvP251bGw6ZTtkZWZhdWx0OnJldHVybiBudWxsfX0oZSx0KTpmdW5jdGlvbihlLG4pe2lmKHRsKXJldHVyblwiY29tcG9zaXRpb25lbmRcIj09PWV8fCF0ZSYmdGEoZSxuKT8oZT1ueigpLG5QPW5fPW5FPW51bGwsdGw9ITEsZSk6bnVsbDtzd2l0Y2goZSl7Y2FzZVwicGFzdGVcIjpkZWZhdWx0OnJldHVybiBudWxsO2Nhc2VcImtleXByZXNzXCI6aWYoIShuLmN0cmxLZXl8fG4uYWx0S2V5fHxuLm1ldGFLZXkpfHxuLmN0cmxLZXkmJm4uYWx0S2V5KXtpZihuLmNoYXImJjE8bi5jaGFyLmxlbmd0aClyZXR1cm4gbi5jaGFyO2lmKG4ud2hpY2gpcmV0dXJuIFN0cmluZy5mcm9tQ2hhckNvZGUobi53aGljaCl9cmV0dXJuIG51bGw7Y2FzZVwiY29tcG9zaXRpb25lbmRcIjpyZXR1cm4gdHImJlwia29cIiE9PW4ubG9jYWxlP251bGw6bi5kYXRhfX0oZSx0KSkmJjA8KHc9Y2UocixcIm9uQmVmb3JlSW5wdXRcIikpLmxlbmd0aCYmKHg9bmV3IG5RKFwib25CZWZvcmVJbnB1dFwiLFwiYmVmb3JlaW5wdXRcIixudWxsLHQsbyksaS5wdXNoKHtldmVudDp4LGxpc3RlbmVyczp3fSkseC5kYXRhPXYpO3ZhciBqPWU7aWYoXCJzdWJtaXRcIj09PWomJnImJnIuc3RhdGVOb2RlPT09byl7dmFyIGs9c0soKG9bZURdfHxudWxsKS5hY3Rpb24pLEE9dC5zdWJtaXR0ZXI7QSYmbnVsbCE9PShqPShqPUFbZURdfHxudWxsKT9zSyhqLmZvcm1BY3Rpb24pOkEuZ2V0QXR0cmlidXRlKFwiZm9ybUFjdGlvblwiKSkmJihrPWosQT1udWxsKTt2YXIgTz1uZXcgblUoXCJhY3Rpb25cIixcImFjdGlvblwiLG51bGwsdCxvKTtpLnB1c2goe2V2ZW50Ok8sbGlzdGVuZXJzOlt7aW5zdGFuY2U6bnVsbCxsaXN0ZW5lcjpmdW5jdGlvbigpe2lmKHQuZGVmYXVsdFByZXZlbnRlZCl7aWYoMCE9PXNGKXt2YXIgZT1BP3NRKG8sQSk6bmV3IEZvcm1EYXRhKG8pO2FLKHIse3BlbmRpbmc6ITAsZGF0YTplLG1ldGhvZDpvLm1ldGhvZCxhY3Rpb246a30sbnVsbCxlKX19ZWxzZVwiZnVuY3Rpb25cIj09dHlwZW9mIGsmJihPLnByZXZlbnREZWZhdWx0KCksYUsocix7cGVuZGluZzohMCxkYXRhOmU9QT9zUShvLEEpOm5ldyBGb3JtRGF0YShvKSxtZXRob2Q6by5tZXRob2QsYWN0aW9uOmt9LGssZSkpfSxjdXJyZW50VGFyZ2V0Om99XX0pfX1zMihpLG4pfSl9ZnVuY3Rpb24gczcoZSxuLHQpe3JldHVybntpbnN0YW5jZTplLGxpc3RlbmVyOm4sY3VycmVudFRhcmdldDp0fX1mdW5jdGlvbiBjZShlLG4pe2Zvcih2YXIgdD1uK1wiQ2FwdHVyZVwiLHI9W107bnVsbCE9PWU7KXt2YXIgbz1lLGE9by5zdGF0ZU5vZGU7aWYoNSE9PShvPW8udGFnKSYmMjYhPT1vJiYyNyE9PW98fG51bGw9PT1hfHwobnVsbCE9KG89bkEoZSx0KSkmJnIudW5zaGlmdChzNyhlLG8sYSkpLG51bGwhPShvPW5BKGUsbikpJiZyLnB1c2goczcoZSxvLGEpKSksMz09PWUudGFnKXJldHVybiByO2U9ZS5yZXR1cm59cmV0dXJuW119ZnVuY3Rpb24gY24oZSl7aWYobnVsbD09PWUpcmV0dXJuIG51bGw7ZG8gZT1lLnJldHVybjt3aGlsZShlJiY1IT09ZS50YWcmJjI3IT09ZS50YWcpO3JldHVybiBlfHxudWxsfWZ1bmN0aW9uIGN0KGUsbix0LHIsbyl7Zm9yKHZhciBhPW4uX3JlYWN0TmFtZSxpPVtdO251bGwhPT10JiZ0IT09cjspe3ZhciBsPXQscz1sLmFsdGVybmF0ZSxjPWwuc3RhdGVOb2RlO2lmKGw9bC50YWcsbnVsbCE9PXMmJnM9PT1yKWJyZWFrOzUhPT1sJiYyNiE9PWwmJjI3IT09bHx8bnVsbD09PWN8fChzPWMsbz9udWxsIT0oYz1uQSh0LGEpKSYmaS51bnNoaWZ0KHM3KHQsYyxzKSk6b3x8bnVsbCE9KGM9bkEodCxhKSkmJmkucHVzaChzNyh0LGMscykpKSx0PXQucmV0dXJufTAhPT1pLmxlbmd0aCYmZS5wdXNoKHtldmVudDpuLGxpc3RlbmVyczppfSl9dmFyIGNyPS9cXHJcXG4/L2csY289L1xcdTAwMDB8XFx1RkZGRC9nO2Z1bmN0aW9uIGNhKGUpe3JldHVybihcInN0cmluZ1wiPT10eXBlb2YgZT9lOlwiXCIrZSkucmVwbGFjZShjcixcIlxcblwiKS5yZXBsYWNlKGNvLFwiXCIpfWZ1bmN0aW9uIGNpKGUsbil7cmV0dXJuIG49Y2EobiksY2EoZSk9PT1ufWZ1bmN0aW9uIGNsKGUsbix0LHIsbyxhKXtzd2l0Y2godCl7Y2FzZVwiY2hpbGRyZW5cIjpcInN0cmluZ1wiPT10eXBlb2Ygcj9cImJvZHlcIj09PW58fFwidGV4dGFyZWFcIj09PW4mJlwiXCI9PT1yfHxucyhlLHIpOihcIm51bWJlclwiPT10eXBlb2Ygcnx8XCJiaWdpbnRcIj09dHlwZW9mIHIpJiZcImJvZHlcIiE9PW4mJm5zKGUsXCJcIityKTticmVhaztjYXNlXCJjbGFzc05hbWVcIjplNChlLFwiY2xhc3NcIixyKTticmVhaztjYXNlXCJ0YWJJbmRleFwiOmU0KGUsXCJ0YWJpbmRleFwiLHIpO2JyZWFrO2Nhc2VcImRpclwiOmNhc2VcInJvbGVcIjpjYXNlXCJ2aWV3Qm94XCI6Y2FzZVwid2lkdGhcIjpjYXNlXCJoZWlnaHRcIjplNChlLHQscik7YnJlYWs7Y2FzZVwic3R5bGVcIjpuZChlLHIsYSk7YnJlYWs7Y2FzZVwiZGF0YVwiOmlmKFwib2JqZWN0XCIhPT1uKXtlNChlLFwiZGF0YVwiLHIpO2JyZWFrfWNhc2VcInNyY1wiOmNhc2VcImhyZWZcIjppZihcIlwiPT09ciYmKFwiYVwiIT09bnx8XCJocmVmXCIhPT10KXx8bnVsbD09cnx8XCJmdW5jdGlvblwiPT10eXBlb2Ygcnx8XCJzeW1ib2xcIj09dHlwZW9mIHJ8fFwiYm9vbGVhblwiPT10eXBlb2Ygcil7ZS5yZW1vdmVBdHRyaWJ1dGUodCk7YnJlYWt9cj1uZyhcIlwiK3IpLGUuc2V0QXR0cmlidXRlKHQscik7YnJlYWs7Y2FzZVwiYWN0aW9uXCI6Y2FzZVwiZm9ybUFjdGlvblwiOmlmKFwiZnVuY3Rpb25cIj09dHlwZW9mIHIpe2Uuc2V0QXR0cmlidXRlKHQsXCJqYXZhc2NyaXB0OnRocm93IG5ldyBFcnJvcignQSBSZWFjdCBmb3JtIHdhcyB1bmV4cGVjdGVkbHkgc3VibWl0dGVkLiBJZiB5b3UgY2FsbGVkIGZvcm0uc3VibWl0KCkgbWFudWFsbHksIGNvbnNpZGVyIHVzaW5nIGZvcm0ucmVxdWVzdFN1Ym1pdCgpIGluc3RlYWQuIElmIHlvdVxcXFwncmUgdHJ5aW5nIHRvIHVzZSBldmVudC5zdG9wUHJvcGFnYXRpb24oKSBpbiBhIHN1Ym1pdCBldmVudCBoYW5kbGVyLCBjb25zaWRlciBhbHNvIGNhbGxpbmcgZXZlbnQucHJldmVudERlZmF1bHQoKS4nKVwiKTticmVha31pZihcImZ1bmN0aW9uXCI9PXR5cGVvZiBhJiYoXCJmb3JtQWN0aW9uXCI9PT10PyhcImlucHV0XCIhPT1uJiZjbChlLG4sXCJuYW1lXCIsby5uYW1lLG8sbnVsbCksY2woZSxuLFwiZm9ybUVuY1R5cGVcIixvLmZvcm1FbmNUeXBlLG8sbnVsbCksY2woZSxuLFwiZm9ybU1ldGhvZFwiLG8uZm9ybU1ldGhvZCxvLG51bGwpLGNsKGUsbixcImZvcm1UYXJnZXRcIixvLmZvcm1UYXJnZXQsbyxudWxsKSk6KGNsKGUsbixcImVuY1R5cGVcIixvLmVuY1R5cGUsbyxudWxsKSxjbChlLG4sXCJtZXRob2RcIixvLm1ldGhvZCxvLG51bGwpLGNsKGUsbixcInRhcmdldFwiLG8udGFyZ2V0LG8sbnVsbCkpKSxudWxsPT1yfHxcInN5bWJvbFwiPT10eXBlb2Ygcnx8XCJib29sZWFuXCI9PXR5cGVvZiByKXtlLnJlbW92ZUF0dHJpYnV0ZSh0KTticmVha31yPW5nKFwiXCIrciksZS5zZXRBdHRyaWJ1dGUodCxyKTticmVhaztjYXNlXCJvbkNsaWNrXCI6bnVsbCE9ciYmKGUub25jbGljaz1ubSk7YnJlYWs7Y2FzZVwib25TY3JvbGxcIjpudWxsIT1yJiZzNChcInNjcm9sbFwiLGUpO2JyZWFrO2Nhc2VcIm9uU2Nyb2xsRW5kXCI6bnVsbCE9ciYmczQoXCJzY3JvbGxlbmRcIixlKTticmVhaztjYXNlXCJkYW5nZXJvdXNseVNldElubmVySFRNTFwiOmlmKG51bGwhPXIpe2lmKFwib2JqZWN0XCIhPXR5cGVvZiByfHwhKFwiX19odG1sXCJpbiByKSl0aHJvdyBFcnJvcihsKDYxKSk7aWYobnVsbCE9KHQ9ci5fX2h0bWwpKXtpZihudWxsIT1vLmNoaWxkcmVuKXRocm93IEVycm9yKGwoNjApKTtlLmlubmVySFRNTD10fX1icmVhaztjYXNlXCJtdWx0aXBsZVwiOmUubXVsdGlwbGU9ciYmXCJmdW5jdGlvblwiIT10eXBlb2YgciYmXCJzeW1ib2xcIiE9dHlwZW9mIHI7YnJlYWs7Y2FzZVwibXV0ZWRcIjplLm11dGVkPXImJlwiZnVuY3Rpb25cIiE9dHlwZW9mIHImJlwic3ltYm9sXCIhPXR5cGVvZiByO2JyZWFrO2Nhc2VcInN1cHByZXNzQ29udGVudEVkaXRhYmxlV2FybmluZ1wiOmNhc2VcInN1cHByZXNzSHlkcmF0aW9uV2FybmluZ1wiOmNhc2VcImRlZmF1bHRWYWx1ZVwiOmNhc2VcImRlZmF1bHRDaGVja2VkXCI6Y2FzZVwiaW5uZXJIVE1MXCI6Y2FzZVwicmVmXCI6Y2FzZVwiYXV0b0ZvY3VzXCI6Y2FzZVwiaW5uZXJUZXh0XCI6Y2FzZVwidGV4dENvbnRlbnRcIjpicmVhaztjYXNlXCJ4bGlua0hyZWZcIjppZihudWxsPT1yfHxcImZ1bmN0aW9uXCI9PXR5cGVvZiByfHxcImJvb2xlYW5cIj09dHlwZW9mIHJ8fFwic3ltYm9sXCI9PXR5cGVvZiByKXtlLnJlbW92ZUF0dHJpYnV0ZShcInhsaW5rOmhyZWZcIik7YnJlYWt9dD1uZyhcIlwiK3IpLGUuc2V0QXR0cmlidXRlTlMoXCJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rXCIsXCJ4bGluazpocmVmXCIsdCk7YnJlYWs7Y2FzZVwiY29udGVudEVkaXRhYmxlXCI6Y2FzZVwic3BlbGxDaGVja1wiOmNhc2VcImRyYWdnYWJsZVwiOmNhc2VcInZhbHVlXCI6Y2FzZVwiYXV0b1JldmVyc2VcIjpjYXNlXCJleHRlcm5hbFJlc291cmNlc1JlcXVpcmVkXCI6Y2FzZVwiZm9jdXNhYmxlXCI6Y2FzZVwicHJlc2VydmVBbHBoYVwiOm51bGwhPXImJlwiZnVuY3Rpb25cIiE9dHlwZW9mIHImJlwic3ltYm9sXCIhPXR5cGVvZiByP2Uuc2V0QXR0cmlidXRlKHQsXCJcIityKTplLnJlbW92ZUF0dHJpYnV0ZSh0KTticmVhaztjYXNlXCJpbmVydFwiOmNhc2VcImFsbG93RnVsbFNjcmVlblwiOmNhc2VcImFzeW5jXCI6Y2FzZVwiYXV0b1BsYXlcIjpjYXNlXCJjb250cm9sc1wiOmNhc2VcImRlZmF1bHRcIjpjYXNlXCJkZWZlclwiOmNhc2VcImRpc2FibGVkXCI6Y2FzZVwiZGlzYWJsZVBpY3R1cmVJblBpY3R1cmVcIjpjYXNlXCJkaXNhYmxlUmVtb3RlUGxheWJhY2tcIjpjYXNlXCJmb3JtTm9WYWxpZGF0ZVwiOmNhc2VcImhpZGRlblwiOmNhc2VcImxvb3BcIjpjYXNlXCJub01vZHVsZVwiOmNhc2VcIm5vVmFsaWRhdGVcIjpjYXNlXCJvcGVuXCI6Y2FzZVwicGxheXNJbmxpbmVcIjpjYXNlXCJyZWFkT25seVwiOmNhc2VcInJlcXVpcmVkXCI6Y2FzZVwicmV2ZXJzZWRcIjpjYXNlXCJzY29wZWRcIjpjYXNlXCJzZWFtbGVzc1wiOmNhc2VcIml0ZW1TY29wZVwiOnImJlwiZnVuY3Rpb25cIiE9dHlwZW9mIHImJlwic3ltYm9sXCIhPXR5cGVvZiByP2Uuc2V0QXR0cmlidXRlKHQsXCJcIik6ZS5yZW1vdmVBdHRyaWJ1dGUodCk7YnJlYWs7Y2FzZVwiY2FwdHVyZVwiOmNhc2VcImRvd25sb2FkXCI6ITA9PT1yP2Uuc2V0QXR0cmlidXRlKHQsXCJcIik6ITEhPT1yJiZudWxsIT1yJiZcImZ1bmN0aW9uXCIhPXR5cGVvZiByJiZcInN5bWJvbFwiIT10eXBlb2Ygcj9lLnNldEF0dHJpYnV0ZSh0LHIpOmUucmVtb3ZlQXR0cmlidXRlKHQpO2JyZWFrO2Nhc2VcImNvbHNcIjpjYXNlXCJyb3dzXCI6Y2FzZVwic2l6ZVwiOmNhc2VcInNwYW5cIjpudWxsIT1yJiZcImZ1bmN0aW9uXCIhPXR5cGVvZiByJiZcInN5bWJvbFwiIT10eXBlb2YgciYmIWlzTmFOKHIpJiYxPD1yP2Uuc2V0QXR0cmlidXRlKHQscik6ZS5yZW1vdmVBdHRyaWJ1dGUodCk7YnJlYWs7Y2FzZVwicm93U3BhblwiOmNhc2VcInN0YXJ0XCI6bnVsbD09cnx8XCJmdW5jdGlvblwiPT10eXBlb2Ygcnx8XCJzeW1ib2xcIj09dHlwZW9mIHJ8fGlzTmFOKHIpP2UucmVtb3ZlQXR0cmlidXRlKHQpOmUuc2V0QXR0cmlidXRlKHQscik7YnJlYWs7Y2FzZVwicG9wb3ZlclwiOnM0KFwiYmVmb3JldG9nZ2xlXCIsZSksczQoXCJ0b2dnbGVcIixlKSxlMihlLFwicG9wb3ZlclwiLHIpO2JyZWFrO2Nhc2VcInhsaW5rQWN0dWF0ZVwiOmU1KGUsXCJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rXCIsXCJ4bGluazphY3R1YXRlXCIscik7YnJlYWs7Y2FzZVwieGxpbmtBcmNyb2xlXCI6ZTUoZSxcImh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmtcIixcInhsaW5rOmFyY3JvbGVcIixyKTticmVhaztjYXNlXCJ4bGlua1JvbGVcIjplNShlLFwiaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGlua1wiLFwieGxpbms6cm9sZVwiLHIpO2JyZWFrO2Nhc2VcInhsaW5rU2hvd1wiOmU1KGUsXCJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rXCIsXCJ4bGluazpzaG93XCIscik7YnJlYWs7Y2FzZVwieGxpbmtUaXRsZVwiOmU1KGUsXCJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rXCIsXCJ4bGluazp0aXRsZVwiLHIpO2JyZWFrO2Nhc2VcInhsaW5rVHlwZVwiOmU1KGUsXCJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rXCIsXCJ4bGluazp0eXBlXCIscik7YnJlYWs7Y2FzZVwieG1sQmFzZVwiOmU1KGUsXCJodHRwOi8vd3d3LnczLm9yZy9YTUwvMTk5OC9uYW1lc3BhY2VcIixcInhtbDpiYXNlXCIscik7YnJlYWs7Y2FzZVwieG1sTGFuZ1wiOmU1KGUsXCJodHRwOi8vd3d3LnczLm9yZy9YTUwvMTk5OC9uYW1lc3BhY2VcIixcInhtbDpsYW5nXCIscik7YnJlYWs7Y2FzZVwieG1sU3BhY2VcIjplNShlLFwiaHR0cDovL3d3dy53My5vcmcvWE1MLzE5OTgvbmFtZXNwYWNlXCIsXCJ4bWw6c3BhY2VcIixyKTticmVhaztjYXNlXCJpc1wiOmUyKGUsXCJpc1wiLHIpO2JyZWFrO2RlZmF1bHQ6Mjx0Lmxlbmd0aCYmKFwib1wiPT09dFswXXx8XCJPXCI9PT10WzBdKSYmKFwiblwiPT09dFsxXXx8XCJOXCI9PT10WzFdKXx8ZTIoZSx0PW5wLmdldCh0KXx8dCxyKX19ZnVuY3Rpb24gY3MoZSxuLHQscixvLGEpe3N3aXRjaCh0KXtjYXNlXCJzdHlsZVwiOm5kKGUscixhKTticmVhaztjYXNlXCJkYW5nZXJvdXNseVNldElubmVySFRNTFwiOmlmKG51bGwhPXIpe2lmKFwib2JqZWN0XCIhPXR5cGVvZiByfHwhKFwiX19odG1sXCJpbiByKSl0aHJvdyBFcnJvcihsKDYxKSk7aWYobnVsbCE9KHQ9ci5fX2h0bWwpKXtpZihudWxsIT1vLmNoaWxkcmVuKXRocm93IEVycm9yKGwoNjApKTtlLmlubmVySFRNTD10fX1icmVhaztjYXNlXCJjaGlsZHJlblwiOlwic3RyaW5nXCI9PXR5cGVvZiByP25zKGUscik6KFwibnVtYmVyXCI9PXR5cGVvZiByfHxcImJpZ2ludFwiPT10eXBlb2YgcikmJm5zKGUsXCJcIityKTticmVhaztjYXNlXCJvblNjcm9sbFwiOm51bGwhPXImJnM0KFwic2Nyb2xsXCIsZSk7YnJlYWs7Y2FzZVwib25TY3JvbGxFbmRcIjpudWxsIT1yJiZzNChcInNjcm9sbGVuZFwiLGUpO2JyZWFrO2Nhc2VcIm9uQ2xpY2tcIjpudWxsIT1yJiYoZS5vbmNsaWNrPW5tKTticmVhaztjYXNlXCJzdXBwcmVzc0NvbnRlbnRFZGl0YWJsZVdhcm5pbmdcIjpjYXNlXCJzdXBwcmVzc0h5ZHJhdGlvbldhcm5pbmdcIjpjYXNlXCJpbm5lckhUTUxcIjpjYXNlXCJyZWZcIjpjYXNlXCJpbm5lclRleHRcIjpjYXNlXCJ0ZXh0Q29udGVudFwiOmJyZWFrO2RlZmF1bHQ6aWYoIWVLLmhhc093blByb3BlcnR5KHQpKWU6e2lmKFwib1wiPT09dFswXSYmXCJuXCI9PT10WzFdJiYobz10LmVuZHNXaXRoKFwiQ2FwdHVyZVwiKSxuPXQuc2xpY2UoMixvP3QubGVuZ3RoLTc6dm9pZCAwKSxcImZ1bmN0aW9uXCI9PXR5cGVvZihhPW51bGwhPShhPWVbZURdfHxudWxsKT9hW3RdOm51bGwpJiZlLnJlbW92ZUV2ZW50TGlzdGVuZXIobixhLG8pLFwiZnVuY3Rpb25cIj09dHlwZW9mIHIpKXtcImZ1bmN0aW9uXCIhPXR5cGVvZiBhJiZudWxsIT09YSYmKHQgaW4gZT9lW3RdPW51bGw6ZS5oYXNBdHRyaWJ1dGUodCkmJmUucmVtb3ZlQXR0cmlidXRlKHQpKSxlLmFkZEV2ZW50TGlzdGVuZXIobixyLG8pO2JyZWFrIGV9dCBpbiBlP2VbdF09cjohMD09PXI/ZS5zZXRBdHRyaWJ1dGUodCxcIlwiKTplMihlLHQscil9fX1mdW5jdGlvbiBjYyhlLG4sdCl7c3dpdGNoKG4pe2Nhc2VcImRpdlwiOmNhc2VcInNwYW5cIjpjYXNlXCJzdmdcIjpjYXNlXCJwYXRoXCI6Y2FzZVwiYVwiOmNhc2VcImdcIjpjYXNlXCJwXCI6Y2FzZVwibGlcIjpicmVhaztjYXNlXCJpbWdcIjpzNChcImVycm9yXCIsZSksczQoXCJsb2FkXCIsZSk7dmFyIHIsbz0hMSxhPSExO2ZvcihyIGluIHQpaWYodC5oYXNPd25Qcm9wZXJ0eShyKSl7dmFyIGk9dFtyXTtpZihudWxsIT1pKXN3aXRjaChyKXtjYXNlXCJzcmNcIjpvPSEwO2JyZWFrO2Nhc2VcInNyY1NldFwiOmE9ITA7YnJlYWs7Y2FzZVwiY2hpbGRyZW5cIjpjYXNlXCJkYW5nZXJvdXNseVNldElubmVySFRNTFwiOnRocm93IEVycm9yKGwoMTM3LG4pKTtkZWZhdWx0OmNsKGUsbixyLGksdCxudWxsKX19YSYmY2woZSxuLFwic3JjU2V0XCIsdC5zcmNTZXQsdCxudWxsKSxvJiZjbChlLG4sXCJzcmNcIix0LnNyYyx0LG51bGwpO3JldHVybjtjYXNlXCJpbnB1dFwiOnM0KFwiaW52YWxpZFwiLGUpO3ZhciBzPXI9aT1hPW51bGwsYz1udWxsLHU9bnVsbDtmb3IobyBpbiB0KWlmKHQuaGFzT3duUHJvcGVydHkobykpe3ZhciBkPXRbb107aWYobnVsbCE9ZClzd2l0Y2gobyl7Y2FzZVwibmFtZVwiOmE9ZDticmVhaztjYXNlXCJ0eXBlXCI6aT1kO2JyZWFrO2Nhc2VcImNoZWNrZWRcIjpjPWQ7YnJlYWs7Y2FzZVwiZGVmYXVsdENoZWNrZWRcIjp1PWQ7YnJlYWs7Y2FzZVwidmFsdWVcIjpyPWQ7YnJlYWs7Y2FzZVwiZGVmYXVsdFZhbHVlXCI6cz1kO2JyZWFrO2Nhc2VcImNoaWxkcmVuXCI6Y2FzZVwiZGFuZ2Vyb3VzbHlTZXRJbm5lckhUTUxcIjppZihudWxsIT1kKXRocm93IEVycm9yKGwoMTM3LG4pKTticmVhaztkZWZhdWx0OmNsKGUsbixvLGQsdCxudWxsKX19bnIoZSxyLHMsYyx1LGksYSwhMSk7cmV0dXJuO2Nhc2VcInNlbGVjdFwiOmZvcihhIGluIHM0KFwiaW52YWxpZFwiLGUpLG89aT1yPW51bGwsdClpZih0Lmhhc093blByb3BlcnR5KGEpJiZudWxsIT0ocz10W2FdKSlzd2l0Y2goYSl7Y2FzZVwidmFsdWVcIjpyPXM7YnJlYWs7Y2FzZVwiZGVmYXVsdFZhbHVlXCI6aT1zO2JyZWFrO2Nhc2VcIm11bHRpcGxlXCI6bz1zO2RlZmF1bHQ6Y2woZSxuLGEscyx0LG51bGwpfW49cix0PWksZS5tdWx0aXBsZT0hIW8sbnVsbCE9bj9uYShlLCEhbyxuLCExKTpudWxsIT10JiZuYShlLCEhbyx0LCEwKTtyZXR1cm47Y2FzZVwidGV4dGFyZWFcIjpmb3IoaSBpbiBzNChcImludmFsaWRcIixlKSxyPWE9bz1udWxsLHQpaWYodC5oYXNPd25Qcm9wZXJ0eShpKSYmbnVsbCE9KHM9dFtpXSkpc3dpdGNoKGkpe2Nhc2VcInZhbHVlXCI6bz1zO2JyZWFrO2Nhc2VcImRlZmF1bHRWYWx1ZVwiOmE9czticmVhaztjYXNlXCJjaGlsZHJlblwiOnI9czticmVhaztjYXNlXCJkYW5nZXJvdXNseVNldElubmVySFRNTFwiOmlmKG51bGwhPXMpdGhyb3cgRXJyb3IobCg5MSkpO2JyZWFrO2RlZmF1bHQ6Y2woZSxuLGkscyx0LG51bGwpfW5sKGUsbyxhLHIpO3JldHVybjtjYXNlXCJvcHRpb25cIjpmb3IoYyBpbiB0KXQuaGFzT3duUHJvcGVydHkoYykmJm51bGwhPShvPXRbY10pJiYoXCJzZWxlY3RlZFwiPT09Yz9lLnNlbGVjdGVkPW8mJlwiZnVuY3Rpb25cIiE9dHlwZW9mIG8mJlwic3ltYm9sXCIhPXR5cGVvZiBvOmNsKGUsbixjLG8sdCxudWxsKSk7cmV0dXJuO2Nhc2VcImRpYWxvZ1wiOnM0KFwiYmVmb3JldG9nZ2xlXCIsZSksczQoXCJ0b2dnbGVcIixlKSxzNChcImNhbmNlbFwiLGUpLHM0KFwiY2xvc2VcIixlKTticmVhaztjYXNlXCJpZnJhbWVcIjpjYXNlXCJvYmplY3RcIjpzNChcImxvYWRcIixlKTticmVhaztjYXNlXCJ2aWRlb1wiOmNhc2VcImF1ZGlvXCI6Zm9yKG89MDtvPHMwLmxlbmd0aDtvKyspczQoczBbb10sZSk7YnJlYWs7Y2FzZVwiaW1hZ2VcIjpzNChcImVycm9yXCIsZSksczQoXCJsb2FkXCIsZSk7YnJlYWs7Y2FzZVwiZGV0YWlsc1wiOnM0KFwidG9nZ2xlXCIsZSk7YnJlYWs7Y2FzZVwiZW1iZWRcIjpjYXNlXCJzb3VyY2VcIjpjYXNlXCJsaW5rXCI6czQoXCJlcnJvclwiLGUpLHM0KFwibG9hZFwiLGUpO2Nhc2VcImFyZWFcIjpjYXNlXCJiYXNlXCI6Y2FzZVwiYnJcIjpjYXNlXCJjb2xcIjpjYXNlXCJoclwiOmNhc2VcImtleWdlblwiOmNhc2VcIm1ldGFcIjpjYXNlXCJwYXJhbVwiOmNhc2VcInRyYWNrXCI6Y2FzZVwid2JyXCI6Y2FzZVwibWVudWl0ZW1cIjpmb3IodSBpbiB0KWlmKHQuaGFzT3duUHJvcGVydHkodSkmJm51bGwhPShvPXRbdV0pKXN3aXRjaCh1KXtjYXNlXCJjaGlsZHJlblwiOmNhc2VcImRhbmdlcm91c2x5U2V0SW5uZXJIVE1MXCI6dGhyb3cgRXJyb3IobCgxMzcsbikpO2RlZmF1bHQ6Y2woZSxuLHUsbyx0LG51bGwpfXJldHVybjtkZWZhdWx0OmlmKG5mKG4pKXtmb3IoZCBpbiB0KXQuaGFzT3duUHJvcGVydHkoZCkmJnZvaWQgMCE9PShvPXRbZF0pJiZjcyhlLG4sZCxvLHQsdm9pZCAwKTtyZXR1cm59fWZvcihzIGluIHQpdC5oYXNPd25Qcm9wZXJ0eShzKSYmbnVsbCE9KG89dFtzXSkmJmNsKGUsbixzLG8sdCxudWxsKX12YXIgY3U9bnVsbCxjZD1udWxsO2Z1bmN0aW9uIGNmKGUpe3JldHVybiA5PT09ZS5ub2RlVHlwZT9lOmUub3duZXJEb2N1bWVudH1mdW5jdGlvbiBjcChlKXtzd2l0Y2goZSl7Y2FzZVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIjpyZXR1cm4gMTtjYXNlXCJodHRwOi8vd3d3LnczLm9yZy8xOTk4L01hdGgvTWF0aE1MXCI6cmV0dXJuIDI7ZGVmYXVsdDpyZXR1cm4gMH19ZnVuY3Rpb24gY2goZSxuKXtpZigwPT09ZSlzd2l0Y2gobil7Y2FzZVwic3ZnXCI6cmV0dXJuIDE7Y2FzZVwibWF0aFwiOnJldHVybiAyO2RlZmF1bHQ6cmV0dXJuIDB9cmV0dXJuIDE9PT1lJiZcImZvcmVpZ25PYmplY3RcIj09PW4/MDplfWZ1bmN0aW9uIGNnKGUsbil7cmV0dXJuXCJ0ZXh0YXJlYVwiPT09ZXx8XCJub3NjcmlwdFwiPT09ZXx8XCJzdHJpbmdcIj09dHlwZW9mIG4uY2hpbGRyZW58fFwibnVtYmVyXCI9PXR5cGVvZiBuLmNoaWxkcmVufHxcImJpZ2ludFwiPT10eXBlb2Ygbi5jaGlsZHJlbnx8XCJvYmplY3RcIj09dHlwZW9mIG4uZGFuZ2Vyb3VzbHlTZXRJbm5lckhUTUwmJm51bGwhPT1uLmRhbmdlcm91c2x5U2V0SW5uZXJIVE1MJiZudWxsIT1uLmRhbmdlcm91c2x5U2V0SW5uZXJIVE1MLl9faHRtbH12YXIgY209bnVsbCxjdj1cImZ1bmN0aW9uXCI9PXR5cGVvZiBzZXRUaW1lb3V0P3NldFRpbWVvdXQ6dm9pZCAwLGNiPVwiZnVuY3Rpb25cIj09dHlwZW9mIGNsZWFyVGltZW91dD9jbGVhclRpbWVvdXQ6dm9pZCAwLGN5PVwiZnVuY3Rpb25cIj09dHlwZW9mIFByb21pc2U/UHJvbWlzZTp2b2lkIDAsY3g9XCJmdW5jdGlvblwiPT10eXBlb2YgcXVldWVNaWNyb3Rhc2s/cXVldWVNaWNyb3Rhc2s6dm9pZCAwIT09Y3k/ZnVuY3Rpb24oZSl7cmV0dXJuIGN5LnJlc29sdmUobnVsbCkudGhlbihlKS5jYXRjaChjdyl9OmN2O2Z1bmN0aW9uIGN3KGUpe3NldFRpbWVvdXQoZnVuY3Rpb24oKXt0aHJvdyBlfSl9ZnVuY3Rpb24gY2ooZSl7cmV0dXJuXCJoZWFkXCI9PT1lfWZ1bmN0aW9uIGNrKGUsbil7dmFyIHQ9bixyPTA7ZG97dmFyIG89dC5uZXh0U2libGluZztpZihlLnJlbW92ZUNoaWxkKHQpLG8mJjg9PT1vLm5vZGVUeXBlKWlmKFwiLyRcIj09PSh0PW8uZGF0YSl8fFwiLyZcIj09PXQpe2lmKDA9PT1yKXtlLnJlbW92ZUNoaWxkKG8pLHVFKG4pO3JldHVybn1yLS19ZWxzZSBpZihcIiRcIj09PXR8fFwiJD9cIj09PXR8fFwiJH5cIj09PXR8fFwiJCFcIj09PXR8fFwiJlwiPT09dClyKys7ZWxzZSBpZihcImh0bWxcIj09PXQpY1IoZS5vd25lckRvY3VtZW50LmRvY3VtZW50RWxlbWVudCk7ZWxzZSBpZihcImhlYWRcIj09PXQpe2NSKHQ9ZS5vd25lckRvY3VtZW50LmhlYWQpO2Zvcih2YXIgYT10LmZpcnN0Q2hpbGQ7YTspe3ZhciBpPWEubmV4dFNpYmxpbmcsbD1hLm5vZGVOYW1lO2FbZVVdfHxcIlNDUklQVFwiPT09bHx8XCJTVFlMRVwiPT09bHx8XCJMSU5LXCI9PT1sJiZcInN0eWxlc2hlZXRcIj09PWEucmVsLnRvTG93ZXJDYXNlKCl8fHQucmVtb3ZlQ2hpbGQoYSksYT1pfX1lbHNlXCJib2R5XCI9PT10JiZjUihlLm93bmVyRG9jdW1lbnQuYm9keSk7dD1vfXdoaWxlKHQpO3VFKG4pfWZ1bmN0aW9uIGNBKGUsbil7dmFyIHQ9ZTtlPTA7ZG97dmFyIHI9dC5uZXh0U2libGluZztpZigxPT09dC5ub2RlVHlwZT9uPyh0Ll9zdGFzaGVkRGlzcGxheT10LnN0eWxlLmRpc3BsYXksdC5zdHlsZS5kaXNwbGF5PVwibm9uZVwiKToodC5zdHlsZS5kaXNwbGF5PXQuX3N0YXNoZWREaXNwbGF5fHxcIlwiLFwiXCI9PT10LmdldEF0dHJpYnV0ZShcInN0eWxlXCIpJiZ0LnJlbW92ZUF0dHJpYnV0ZShcInN0eWxlXCIpKTozPT09dC5ub2RlVHlwZSYmKG4/KHQuX3N0YXNoZWRUZXh0PXQubm9kZVZhbHVlLHQubm9kZVZhbHVlPVwiXCIpOnQubm9kZVZhbHVlPXQuX3N0YXNoZWRUZXh0fHxcIlwiKSxyJiY4PT09ci5ub2RlVHlwZSlpZihcIi8kXCI9PT0odD1yLmRhdGEpKWlmKDA9PT1lKWJyZWFrO2Vsc2UgZS0tO2Vsc2VcIiRcIiE9PXQmJlwiJD9cIiE9PXQmJlwiJH5cIiE9PXQmJlwiJCFcIiE9PXR8fGUrKzt0PXJ9d2hpbGUodCl9ZnVuY3Rpb24gY08oZSl7dmFyIG49ZS5maXJzdENoaWxkO2ZvcihuJiYxMD09PW4ubm9kZVR5cGUmJihuPW4ubmV4dFNpYmxpbmcpO247KXt2YXIgdD1uO3N3aXRjaChuPW4ubmV4dFNpYmxpbmcsdC5ub2RlTmFtZSl7Y2FzZVwiSFRNTFwiOmNhc2VcIkhFQURcIjpjYXNlXCJCT0RZXCI6Y08odCksZVYodCk7Y29udGludWU7Y2FzZVwiU0NSSVBUXCI6Y2FzZVwiU1RZTEVcIjpjb250aW51ZTtjYXNlXCJMSU5LXCI6aWYoXCJzdHlsZXNoZWV0XCI9PT10LnJlbC50b0xvd2VyQ2FzZSgpKWNvbnRpbnVlfWUucmVtb3ZlQ2hpbGQodCl9fWZ1bmN0aW9uIGNDKGUsbil7Zm9yKDs4IT09ZS5ub2RlVHlwZTspaWYoIW58fG51bGw9PT0oZT1jXyhlLm5leHRTaWJsaW5nKSkpcmV0dXJuIG51bGw7cmV0dXJuIGV9ZnVuY3Rpb24gY1MoZSl7cmV0dXJuXCIkP1wiPT09ZS5kYXRhfHxcIiR+XCI9PT1lLmRhdGF9ZnVuY3Rpb24gY0UoZSl7cmV0dXJuXCIkIVwiPT09ZS5kYXRhfHxcIiQ/XCI9PT1lLmRhdGEmJlwibG9hZGluZ1wiIT09ZS5vd25lckRvY3VtZW50LnJlYWR5U3RhdGV9ZnVuY3Rpb24gY18oZSl7Zm9yKDtudWxsIT1lO2U9ZS5uZXh0U2libGluZyl7dmFyIG49ZS5ub2RlVHlwZTtpZigxPT09bnx8Mz09PW4pYnJlYWs7aWYoOD09PW4pe2lmKFwiJFwiPT09KG49ZS5kYXRhKXx8XCIkIVwiPT09bnx8XCIkP1wiPT09bnx8XCIkflwiPT09bnx8XCImXCI9PT1ufHxcIkYhXCI9PT1ufHxcIkZcIj09PW4pYnJlYWs7aWYoXCIvJFwiPT09bnx8XCIvJlwiPT09bilyZXR1cm4gbnVsbH19cmV0dXJuIGV9dmFyIGNQPW51bGw7ZnVuY3Rpb24gY3ooZSl7ZT1lLm5leHRTaWJsaW5nO2Zvcih2YXIgbj0wO2U7KXtpZig4PT09ZS5ub2RlVHlwZSl7dmFyIHQ9ZS5kYXRhO2lmKFwiLyRcIj09PXR8fFwiLyZcIj09PXQpe2lmKDA9PT1uKXJldHVybiBjXyhlLm5leHRTaWJsaW5nKTtuLS19ZWxzZVwiJFwiIT09dCYmXCIkIVwiIT09dCYmXCIkP1wiIT09dCYmXCIkflwiIT09dCYmXCImXCIhPT10fHxuKyt9ZT1lLm5leHRTaWJsaW5nfXJldHVybiBudWxsfWZ1bmN0aW9uIGNMKGUpe2U9ZS5wcmV2aW91c1NpYmxpbmc7Zm9yKHZhciBuPTA7ZTspe2lmKDg9PT1lLm5vZGVUeXBlKXt2YXIgdD1lLmRhdGE7aWYoXCIkXCI9PT10fHxcIiQhXCI9PT10fHxcIiQ/XCI9PT10fHxcIiR+XCI9PT10fHxcIiZcIj09PXQpe2lmKDA9PT1uKXJldHVybiBlO24tLX1lbHNlXCIvJFwiIT09dCYmXCIvJlwiIT09dHx8bisrfWU9ZS5wcmV2aW91c1NpYmxpbmd9cmV0dXJuIG51bGx9ZnVuY3Rpb24gY1QoZSxuLHQpe3N3aXRjaChuPWNmKHQpLGUpe2Nhc2VcImh0bWxcIjppZighKGU9bi5kb2N1bWVudEVsZW1lbnQpKXRocm93IEVycm9yKGwoNDUyKSk7cmV0dXJuIGU7Y2FzZVwiaGVhZFwiOmlmKCEoZT1uLmhlYWQpKXRocm93IEVycm9yKGwoNDUzKSk7cmV0dXJuIGU7Y2FzZVwiYm9keVwiOmlmKCEoZT1uLmJvZHkpKXRocm93IEVycm9yKGwoNDU0KSk7cmV0dXJuIGU7ZGVmYXVsdDp0aHJvdyBFcnJvcihsKDQ1MSkpfX1mdW5jdGlvbiBjUihlKXtmb3IodmFyIG49ZS5hdHRyaWJ1dGVzO24ubGVuZ3RoOyllLnJlbW92ZUF0dHJpYnV0ZU5vZGUoblswXSk7ZVYoZSl9dmFyIGNOPW5ldyBNYXAsY0Q9bmV3IFNldDtmdW5jdGlvbiBjQihlKXtyZXR1cm5cImZ1bmN0aW9uXCI9PXR5cGVvZiBlLmdldFJvb3ROb2RlP2UuZ2V0Um9vdE5vZGUoKTo5PT09ZS5ub2RlVHlwZT9lOmUub3duZXJEb2N1bWVudH12YXIgY009VC5kO1QuZD17ZjpmdW5jdGlvbigpe3ZhciBlPWNNLmYoKSxuPXNzKCk7cmV0dXJuIGV8fG59LHI6ZnVuY3Rpb24oZSl7dmFyIG49ZVcoZSk7bnVsbCE9PW4mJjU9PT1uLnRhZyYmXCJmb3JtXCI9PT1uLnR5cGU/YUcobik6Y00ucihlKX0sRDpmdW5jdGlvbihlKXtjTS5EKGUpLGNIKFwiZG5zLXByZWZldGNoXCIsZSxudWxsKX0sQzpmdW5jdGlvbihlLG4pe2NNLkMoZSxuKSxjSChcInByZWNvbm5lY3RcIixlLG4pfSxMOmZ1bmN0aW9uKGUsbix0KXtpZihjTS5MKGUsbix0KSxjSSYmZSYmbil7dmFyIHI9J2xpbmtbcmVsPVwicHJlbG9hZFwiXVthcz1cIicrbm4obikrJ1wiXSc7XCJpbWFnZVwiPT09biYmdCYmdC5pbWFnZVNyY1NldD8ocis9J1tpbWFnZXNyY3NldD1cIicrbm4odC5pbWFnZVNyY1NldCkrJ1wiXScsXCJzdHJpbmdcIj09dHlwZW9mIHQuaW1hZ2VTaXplcyYmKHIrPSdbaW1hZ2VzaXplcz1cIicrbm4odC5pbWFnZVNpemVzKSsnXCJdJykpOnIrPSdbaHJlZj1cIicrbm4oZSkrJ1wiXSc7dmFyIG89cjtzd2l0Y2gobil7Y2FzZVwic3R5bGVcIjpvPWNVKGUpO2JyZWFrO2Nhc2VcInNjcmlwdFwiOm89Y1coZSl9Y04uaGFzKG8pfHwoZT1mKHtyZWw6XCJwcmVsb2FkXCIsaHJlZjpcImltYWdlXCI9PT1uJiZ0JiZ0LmltYWdlU3JjU2V0P3ZvaWQgMDplLGFzOm59LHQpLGNOLnNldChvLGUpLG51bGwhPT1jSS5xdWVyeVNlbGVjdG9yKHIpfHxcInN0eWxlXCI9PT1uJiZjSS5xdWVyeVNlbGVjdG9yKGNWKG8pKXx8XCJzY3JpcHRcIj09PW4mJmNJLnF1ZXJ5U2VsZWN0b3IoYyQobykpfHwoY2Mobj1jSS5jcmVhdGVFbGVtZW50KFwibGlua1wiKSxcImxpbmtcIixlKSxlWShuKSxjSS5oZWFkLmFwcGVuZENoaWxkKG4pKSl9fSxtOmZ1bmN0aW9uKGUsbil7aWYoY00ubShlLG4pLGNJJiZlKXt2YXIgdD1uJiZcInN0cmluZ1wiPT10eXBlb2Ygbi5hcz9uLmFzOlwic2NyaXB0XCIscj0nbGlua1tyZWw9XCJtb2R1bGVwcmVsb2FkXCJdW2FzPVwiJytubih0KSsnXCJdW2hyZWY9XCInK25uKGUpKydcIl0nLG89cjtzd2l0Y2godCl7Y2FzZVwiYXVkaW93b3JrbGV0XCI6Y2FzZVwicGFpbnR3b3JrbGV0XCI6Y2FzZVwic2VydmljZXdvcmtlclwiOmNhc2VcInNoYXJlZHdvcmtlclwiOmNhc2VcIndvcmtlclwiOmNhc2VcInNjcmlwdFwiOm89Y1coZSl9aWYoIWNOLmhhcyhvKSYmKGU9Zih7cmVsOlwibW9kdWxlcHJlbG9hZFwiLGhyZWY6ZX0sbiksY04uc2V0KG8sZSksbnVsbD09PWNJLnF1ZXJ5U2VsZWN0b3IocikpKXtzd2l0Y2godCl7Y2FzZVwiYXVkaW93b3JrbGV0XCI6Y2FzZVwicGFpbnR3b3JrbGV0XCI6Y2FzZVwic2VydmljZXdvcmtlclwiOmNhc2VcInNoYXJlZHdvcmtlclwiOmNhc2VcIndvcmtlclwiOmNhc2VcInNjcmlwdFwiOmlmKGNJLnF1ZXJ5U2VsZWN0b3IoYyQobykpKXJldHVybn1jYyh0PWNJLmNyZWF0ZUVsZW1lbnQoXCJsaW5rXCIpLFwibGlua1wiLGUpLGVZKHQpLGNJLmhlYWQuYXBwZW5kQ2hpbGQodCl9fX0sWDpmdW5jdGlvbihlLG4pe2lmKGNNLlgoZSxuKSxjSSYmZSl7dmFyIHQ9ZVooY0kpLmhvaXN0YWJsZVNjcmlwdHMscj1jVyhlKSxvPXQuZ2V0KHIpO298fCgobz1jSS5xdWVyeVNlbGVjdG9yKGMkKHIpKSl8fChlPWYoe3NyYzplLGFzeW5jOiEwfSxuKSwobj1jTi5nZXQocikpJiZjSyhlLG4pLGVZKG89Y0kuY3JlYXRlRWxlbWVudChcInNjcmlwdFwiKSksY2MobyxcImxpbmtcIixlKSxjSS5oZWFkLmFwcGVuZENoaWxkKG8pKSxvPXt0eXBlOlwic2NyaXB0XCIsaW5zdGFuY2U6byxjb3VudDoxLHN0YXRlOm51bGx9LHQuc2V0KHIsbykpfX0sUzpmdW5jdGlvbihlLG4sdCl7aWYoY00uUyhlLG4sdCksY0kmJmUpe3ZhciByPWVaKGNJKS5ob2lzdGFibGVTdHlsZXMsbz1jVShlKTtuPW58fFwiZGVmYXVsdFwiO3ZhciBhPXIuZ2V0KG8pO2lmKCFhKXt2YXIgaT17bG9hZGluZzowLHByZWxvYWQ6bnVsbH07aWYoYT1jSS5xdWVyeVNlbGVjdG9yKGNWKG8pKSlpLmxvYWRpbmc9NTtlbHNle2U9Zih7cmVsOlwic3R5bGVzaGVldFwiLGhyZWY6ZSxcImRhdGEtcHJlY2VkZW5jZVwiOm59LHQpLCh0PWNOLmdldChvKSkmJmNYKGUsdCk7dmFyIGw9YT1jSS5jcmVhdGVFbGVtZW50KFwibGlua1wiKTtlWShsKSxjYyhsLFwibGlua1wiLGUpLGwuX3A9bmV3IFByb21pc2UoZnVuY3Rpb24oZSxuKXtsLm9ubG9hZD1lLGwub25lcnJvcj1ufSksbC5hZGRFdmVudExpc3RlbmVyKFwibG9hZFwiLGZ1bmN0aW9uKCl7aS5sb2FkaW5nfD0xfSksbC5hZGRFdmVudExpc3RlbmVyKFwiZXJyb3JcIixmdW5jdGlvbigpe2kubG9hZGluZ3w9Mn0pLGkubG9hZGluZ3w9NCxjWShhLG4sY0kpfWE9e3R5cGU6XCJzdHlsZXNoZWV0XCIsaW5zdGFuY2U6YSxjb3VudDoxLHN0YXRlOml9LHIuc2V0KG8sYSl9fX0sTTpmdW5jdGlvbihlLG4pe2lmKGNNLk0oZSxuKSxjSSYmZSl7dmFyIHQ9ZVooY0kpLmhvaXN0YWJsZVNjcmlwdHMscj1jVyhlKSxvPXQuZ2V0KHIpO298fCgobz1jSS5xdWVyeVNlbGVjdG9yKGMkKHIpKSl8fChlPWYoe3NyYzplLGFzeW5jOiEwLHR5cGU6XCJtb2R1bGVcIn0sbiksKG49Y04uZ2V0KHIpKSYmY0soZSxuKSxlWShvPWNJLmNyZWF0ZUVsZW1lbnQoXCJzY3JpcHRcIikpLGNjKG8sXCJsaW5rXCIsZSksY0kuaGVhZC5hcHBlbmRDaGlsZChvKSksbz17dHlwZTpcInNjcmlwdFwiLGluc3RhbmNlOm8sY291bnQ6MSxzdGF0ZTpudWxsfSx0LnNldChyLG8pKX19fTt2YXIgY0k9XCJ1bmRlZmluZWRcIj09dHlwZW9mIGRvY3VtZW50P251bGw6ZG9jdW1lbnQ7ZnVuY3Rpb24gY0goZSxuLHQpe2lmKGNJJiZcInN0cmluZ1wiPT10eXBlb2YgbiYmbil7dmFyIHI9bm4obik7cj0nbGlua1tyZWw9XCInK2UrJ1wiXVtocmVmPVwiJytyKydcIl0nLFwic3RyaW5nXCI9PXR5cGVvZiB0JiYocis9J1tjcm9zc29yaWdpbj1cIicrdCsnXCJdJyksY0QuaGFzKHIpfHwoY0QuYWRkKHIpLGU9e3JlbDplLGNyb3NzT3JpZ2luOnQsaHJlZjpufSxudWxsPT09Y0kucXVlcnlTZWxlY3RvcihyKSYmKGNjKG49Y0kuY3JlYXRlRWxlbWVudChcImxpbmtcIiksXCJsaW5rXCIsZSksZVkobiksY0kuaGVhZC5hcHBlbmRDaGlsZChuKSkpfX1mdW5jdGlvbiBjRihlLG4sdCxyKXt2YXIgbz0obz1VLmN1cnJlbnQpP2NCKG8pOm51bGw7aWYoIW8pdGhyb3cgRXJyb3IobCg0NDYpKTtzd2l0Y2goZSl7Y2FzZVwibWV0YVwiOmNhc2VcInRpdGxlXCI6cmV0dXJuIG51bGw7Y2FzZVwic3R5bGVcIjpyZXR1cm5cInN0cmluZ1wiPT10eXBlb2YgdC5wcmVjZWRlbmNlJiZcInN0cmluZ1wiPT10eXBlb2YgdC5ocmVmPyhuPWNVKHQuaHJlZiksKHI9KHQ9ZVoobykuaG9pc3RhYmxlU3R5bGVzKS5nZXQobikpfHwocj17dHlwZTpcInN0eWxlXCIsaW5zdGFuY2U6bnVsbCxjb3VudDowLHN0YXRlOm51bGx9LHQuc2V0KG4scikpLHIpOnt0eXBlOlwidm9pZFwiLGluc3RhbmNlOm51bGwsY291bnQ6MCxzdGF0ZTpudWxsfTtjYXNlXCJsaW5rXCI6aWYoXCJzdHlsZXNoZWV0XCI9PT10LnJlbCYmXCJzdHJpbmdcIj09dHlwZW9mIHQuaHJlZiYmXCJzdHJpbmdcIj09dHlwZW9mIHQucHJlY2VkZW5jZSl7ZT1jVSh0LmhyZWYpO3ZhciBhLGkscyxjLHU9ZVoobykuaG9pc3RhYmxlU3R5bGVzLGQ9dS5nZXQoZSk7aWYoZHx8KG89by5vd25lckRvY3VtZW50fHxvLGQ9e3R5cGU6XCJzdHlsZXNoZWV0XCIsaW5zdGFuY2U6bnVsbCxjb3VudDowLHN0YXRlOntsb2FkaW5nOjAscHJlbG9hZDpudWxsfX0sdS5zZXQoZSxkKSwodT1vLnF1ZXJ5U2VsZWN0b3IoY1YoZSkpKSYmIXUuX3AmJihkLmluc3RhbmNlPXUsZC5zdGF0ZS5sb2FkaW5nPTUpLGNOLmhhcyhlKXx8KHQ9e3JlbDpcInByZWxvYWRcIixhczpcInN0eWxlXCIsaHJlZjp0LmhyZWYsY3Jvc3NPcmlnaW46dC5jcm9zc09yaWdpbixpbnRlZ3JpdHk6dC5pbnRlZ3JpdHksbWVkaWE6dC5tZWRpYSxocmVmTGFuZzp0LmhyZWZMYW5nLHJlZmVycmVyUG9saWN5OnQucmVmZXJyZXJQb2xpY3l9LGNOLnNldChlLHQpLHV8fChhPW8saT1lLHM9dCxjPWQuc3RhdGUsYS5xdWVyeVNlbGVjdG9yKCdsaW5rW3JlbD1cInByZWxvYWRcIl1bYXM9XCJzdHlsZVwiXVsnK2krXCJdXCIpP2MubG9hZGluZz0xOihjLnByZWxvYWQ9aT1hLmNyZWF0ZUVsZW1lbnQoXCJsaW5rXCIpLGkuYWRkRXZlbnRMaXN0ZW5lcihcImxvYWRcIixmdW5jdGlvbigpe3JldHVybiBjLmxvYWRpbmd8PTF9KSxpLmFkZEV2ZW50TGlzdGVuZXIoXCJlcnJvclwiLGZ1bmN0aW9uKCl7cmV0dXJuIGMubG9hZGluZ3w9Mn0pLGNjKGksXCJsaW5rXCIscyksZVkoaSksYS5oZWFkLmFwcGVuZENoaWxkKGkpKSkpKSxuJiZudWxsPT09cil0aHJvdyBFcnJvcihsKDUyOCxcIlwiKSk7cmV0dXJuIGR9aWYobiYmbnVsbCE9PXIpdGhyb3cgRXJyb3IobCg1MjksXCJcIikpO3JldHVybiBudWxsO2Nhc2VcInNjcmlwdFwiOnJldHVybiBuPXQuYXN5bmMsXCJzdHJpbmdcIj09dHlwZW9mKHQ9dC5zcmMpJiZuJiZcImZ1bmN0aW9uXCIhPXR5cGVvZiBuJiZcInN5bWJvbFwiIT10eXBlb2Ygbj8obj1jVyh0KSwocj0odD1lWihvKS5ob2lzdGFibGVTY3JpcHRzKS5nZXQobikpfHwocj17dHlwZTpcInNjcmlwdFwiLGluc3RhbmNlOm51bGwsY291bnQ6MCxzdGF0ZTpudWxsfSx0LnNldChuLHIpKSxyKTp7dHlwZTpcInZvaWRcIixpbnN0YW5jZTpudWxsLGNvdW50OjAsc3RhdGU6bnVsbH07ZGVmYXVsdDp0aHJvdyBFcnJvcihsKDQ0NCxlKSl9fWZ1bmN0aW9uIGNVKGUpe3JldHVybidocmVmPVwiJytubihlKSsnXCInfWZ1bmN0aW9uIGNWKGUpe3JldHVybidsaW5rW3JlbD1cInN0eWxlc2hlZXRcIl1bJytlK1wiXVwifWZ1bmN0aW9uIGNxKGUpe3JldHVybiBmKHt9LGUse1wiZGF0YS1wcmVjZWRlbmNlXCI6ZS5wcmVjZWRlbmNlLHByZWNlZGVuY2U6bnVsbH0pfWZ1bmN0aW9uIGNXKGUpe3JldHVybidbc3JjPVwiJytubihlKSsnXCJdJ31mdW5jdGlvbiBjJChlKXtyZXR1cm5cInNjcmlwdFthc3luY11cIitlfWZ1bmN0aW9uIGNaKGUsbix0KXtpZihuLmNvdW50KyssbnVsbD09PW4uaW5zdGFuY2Upc3dpdGNoKG4udHlwZSl7Y2FzZVwic3R5bGVcIjp2YXIgcj1lLnF1ZXJ5U2VsZWN0b3IoJ3N0eWxlW2RhdGEtaHJlZn49XCInK25uKHQuaHJlZikrJ1wiXScpO2lmKHIpcmV0dXJuIG4uaW5zdGFuY2U9cixlWShyKSxyO3ZhciBvPWYoe30sdCx7XCJkYXRhLWhyZWZcIjp0LmhyZWYsXCJkYXRhLXByZWNlZGVuY2VcIjp0LnByZWNlZGVuY2UsaHJlZjpudWxsLHByZWNlZGVuY2U6bnVsbH0pO3JldHVybiBlWShyPShlLm93bmVyRG9jdW1lbnR8fGUpLmNyZWF0ZUVsZW1lbnQoXCJzdHlsZVwiKSksY2MocixcInN0eWxlXCIsbyksY1kocix0LnByZWNlZGVuY2UsZSksbi5pbnN0YW5jZT1yO2Nhc2VcInN0eWxlc2hlZXRcIjpvPWNVKHQuaHJlZik7dmFyIGE9ZS5xdWVyeVNlbGVjdG9yKGNWKG8pKTtpZihhKXJldHVybiBuLnN0YXRlLmxvYWRpbmd8PTQsbi5pbnN0YW5jZT1hLGVZKGEpLGE7cj1jcSh0KSwobz1jTi5nZXQobykpJiZjWChyLG8pLGVZKGE9KGUub3duZXJEb2N1bWVudHx8ZSkuY3JlYXRlRWxlbWVudChcImxpbmtcIikpO3ZhciBpPWE7cmV0dXJuIGkuX3A9bmV3IFByb21pc2UoZnVuY3Rpb24oZSxuKXtpLm9ubG9hZD1lLGkub25lcnJvcj1ufSksY2MoYSxcImxpbmtcIixyKSxuLnN0YXRlLmxvYWRpbmd8PTQsY1koYSx0LnByZWNlZGVuY2UsZSksbi5pbnN0YW5jZT1hO2Nhc2VcInNjcmlwdFwiOmlmKGE9Y1codC5zcmMpLG89ZS5xdWVyeVNlbGVjdG9yKGMkKGEpKSlyZXR1cm4gbi5pbnN0YW5jZT1vLGVZKG8pLG87cmV0dXJuIHI9dCwobz1jTi5nZXQoYSkpJiZjSyhyPWYoe30sdCksbyksZVkobz0oZT1lLm93bmVyRG9jdW1lbnR8fGUpLmNyZWF0ZUVsZW1lbnQoXCJzY3JpcHRcIikpLGNjKG8sXCJsaW5rXCIsciksZS5oZWFkLmFwcGVuZENoaWxkKG8pLG4uaW5zdGFuY2U9bztjYXNlXCJ2b2lkXCI6cmV0dXJuIG51bGw7ZGVmYXVsdDp0aHJvdyBFcnJvcihsKDQ0MyxuLnR5cGUpKX1yZXR1cm5cInN0eWxlc2hlZXRcIj09PW4udHlwZSYmMD09KDQmbi5zdGF0ZS5sb2FkaW5nKSYmKHI9bi5pbnN0YW5jZSxuLnN0YXRlLmxvYWRpbmd8PTQsY1kocix0LnByZWNlZGVuY2UsZSkpLG4uaW5zdGFuY2V9ZnVuY3Rpb24gY1koZSxuLHQpe2Zvcih2YXIgcj10LnF1ZXJ5U2VsZWN0b3JBbGwoJ2xpbmtbcmVsPVwic3R5bGVzaGVldFwiXVtkYXRhLXByZWNlZGVuY2VdLHN0eWxlW2RhdGEtcHJlY2VkZW5jZV0nKSxvPXIubGVuZ3RoP3Jbci5sZW5ndGgtMV06bnVsbCxhPW8saT0wO2k8ci5sZW5ndGg7aSsrKXt2YXIgbD1yW2ldO2lmKGwuZGF0YXNldC5wcmVjZWRlbmNlPT09bilhPWw7ZWxzZSBpZihhIT09bylicmVha31hP2EucGFyZW50Tm9kZS5pbnNlcnRCZWZvcmUoZSxhLm5leHRTaWJsaW5nKToobj05PT09dC5ub2RlVHlwZT90LmhlYWQ6dCkuaW5zZXJ0QmVmb3JlKGUsbi5maXJzdENoaWxkKX1mdW5jdGlvbiBjWChlLG4pe251bGw9PWUuY3Jvc3NPcmlnaW4mJihlLmNyb3NzT3JpZ2luPW4uY3Jvc3NPcmlnaW4pLG51bGw9PWUucmVmZXJyZXJQb2xpY3kmJihlLnJlZmVycmVyUG9saWN5PW4ucmVmZXJyZXJQb2xpY3kpLG51bGw9PWUudGl0bGUmJihlLnRpdGxlPW4udGl0bGUpfWZ1bmN0aW9uIGNLKGUsbil7bnVsbD09ZS5jcm9zc09yaWdpbiYmKGUuY3Jvc3NPcmlnaW49bi5jcm9zc09yaWdpbiksbnVsbD09ZS5yZWZlcnJlclBvbGljeSYmKGUucmVmZXJyZXJQb2xpY3k9bi5yZWZlcnJlclBvbGljeSksbnVsbD09ZS5pbnRlZ3JpdHkmJihlLmludGVncml0eT1uLmludGVncml0eSl9dmFyIGNRPW51bGw7ZnVuY3Rpb24gY0coZSxuLHQpe2lmKG51bGw9PT1jUSl7dmFyIHI9bmV3IE1hcCxvPWNRPW5ldyBNYXA7by5zZXQodCxyKX1lbHNlKHI9KG89Y1EpLmdldCh0KSl8fChyPW5ldyBNYXAsby5zZXQodCxyKSk7aWYoci5oYXMoZSkpcmV0dXJuIHI7Zm9yKHIuc2V0KGUsbnVsbCksdD10LmdldEVsZW1lbnRzQnlUYWdOYW1lKGUpLG89MDtvPHQubGVuZ3RoO28rKyl7dmFyIGE9dFtvXTtpZighKGFbZVVdfHxhW2VOXXx8XCJsaW5rXCI9PT1lJiZcInN0eWxlc2hlZXRcIj09PWEuZ2V0QXR0cmlidXRlKFwicmVsXCIpKSYmXCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIT09YS5uYW1lc3BhY2VVUkkpe3ZhciBpPWEuZ2V0QXR0cmlidXRlKG4pfHxcIlwiO2k9ZStpO3ZhciBsPXIuZ2V0KGkpO2w/bC5wdXNoKGEpOnIuc2V0KGksW2FdKX19cmV0dXJuIHJ9ZnVuY3Rpb24gY0ooZSxuLHQpeyhlPWUub3duZXJEb2N1bWVudHx8ZSkuaGVhZC5pbnNlcnRCZWZvcmUodCxcInRpdGxlXCI9PT1uP2UucXVlcnlTZWxlY3RvcihcImhlYWQgPiB0aXRsZVwiKTpudWxsKX1mdW5jdGlvbiBjMChlKXtyZXR1cm5cInN0eWxlc2hlZXRcIiE9PWUudHlwZXx8MCE9KDMmZS5zdGF0ZS5sb2FkaW5nKX12YXIgYzE9bnVsbDtmdW5jdGlvbiBjMigpe2lmKHRoaXMuY291bnQtLSwwPT09dGhpcy5jb3VudCl7aWYodGhpcy5zdHlsZXNoZWV0cyljNSh0aGlzLHRoaXMuc3R5bGVzaGVldHMpO2Vsc2UgaWYodGhpcy51bnN1c3BlbmQpe3ZhciBlPXRoaXMudW5zdXNwZW5kO3RoaXMudW5zdXNwZW5kPW51bGwsZSgpfX19dmFyIGM0PW51bGw7ZnVuY3Rpb24gYzUoZSxuKXtlLnN0eWxlc2hlZXRzPW51bGwsbnVsbCE9PWUudW5zdXNwZW5kJiYoZS5jb3VudCsrLGM0PW5ldyBNYXAsbi5mb3JFYWNoKGMzLGUpLGM0PW51bGwsYzIuY2FsbChlKSl9ZnVuY3Rpb24gYzMoZSxuKXtpZighKDQmbi5zdGF0ZS5sb2FkaW5nKSl7dmFyIHQ9YzQuZ2V0KGUpO2lmKHQpdmFyIHI9dC5nZXQobnVsbCk7ZWxzZXt0PW5ldyBNYXAsYzQuc2V0KGUsdCk7Zm9yKHZhciBvPWUucXVlcnlTZWxlY3RvckFsbChcImxpbmtbZGF0YS1wcmVjZWRlbmNlXSxzdHlsZVtkYXRhLXByZWNlZGVuY2VdXCIpLGE9MDthPG8ubGVuZ3RoO2ErKyl7dmFyIGk9b1thXTsoXCJMSU5LXCI9PT1pLm5vZGVOYW1lfHxcIm5vdCBhbGxcIiE9PWkuZ2V0QXR0cmlidXRlKFwibWVkaWFcIikpJiYodC5zZXQoaS5kYXRhc2V0LnByZWNlZGVuY2UsaSkscj1pKX1yJiZ0LnNldChudWxsLHIpfWk9KG89bi5pbnN0YW5jZSkuZ2V0QXR0cmlidXRlKFwiZGF0YS1wcmVjZWRlbmNlXCIpLChhPXQuZ2V0KGkpfHxyKT09PXImJnQuc2V0KG51bGwsbyksdC5zZXQoaSxvKSx0aGlzLmNvdW50Kysscj1jMi5iaW5kKHRoaXMpLG8uYWRkRXZlbnRMaXN0ZW5lcihcImxvYWRcIixyKSxvLmFkZEV2ZW50TGlzdGVuZXIoXCJlcnJvclwiLHIpLGE/YS5wYXJlbnROb2RlLmluc2VydEJlZm9yZShvLGEubmV4dFNpYmxpbmcpOihlPTk9PT1lLm5vZGVUeXBlP2UuaGVhZDplKS5pbnNlcnRCZWZvcmUobyxlLmZpcnN0Q2hpbGQpLG4uc3RhdGUubG9hZGluZ3w9NH19dmFyIGM2PXskJHR5cGVvZjp4LFByb3ZpZGVyOm51bGwsQ29uc3VtZXI6bnVsbCxfY3VycmVudFZhbHVlOlIsX2N1cnJlbnRWYWx1ZTI6UixfdGhyZWFkQ291bnQ6MH07ZnVuY3Rpb24gYzkoZSxuLHQscixvLGEsaSxsLHMpe3RoaXMudGFnPTEsdGhpcy5jb250YWluZXJJbmZvPWUsdGhpcy5waW5nQ2FjaGU9dGhpcy5jdXJyZW50PXRoaXMucGVuZGluZ0NoaWxkcmVuPW51bGwsdGhpcy50aW1lb3V0SGFuZGxlPS0xLHRoaXMuY2FsbGJhY2tOb2RlPXRoaXMubmV4dD10aGlzLnBlbmRpbmdDb250ZXh0PXRoaXMuY29udGV4dD10aGlzLmNhbmNlbFBlbmRpbmdDb21taXQ9bnVsbCx0aGlzLmNhbGxiYWNrUHJpb3JpdHk9MCx0aGlzLmV4cGlyYXRpb25UaW1lcz1lTygtMSksdGhpcy5lbnRhbmdsZWRMYW5lcz10aGlzLnNoZWxsU3VzcGVuZENvdW50ZXI9dGhpcy5lcnJvclJlY292ZXJ5RGlzYWJsZWRMYW5lcz10aGlzLmV4cGlyZWRMYW5lcz10aGlzLndhcm1MYW5lcz10aGlzLnBpbmdlZExhbmVzPXRoaXMuc3VzcGVuZGVkTGFuZXM9dGhpcy5wZW5kaW5nTGFuZXM9MCx0aGlzLmVudGFuZ2xlbWVudHM9ZU8oMCksdGhpcy5oaWRkZW5VcGRhdGVzPWVPKG51bGwpLHRoaXMuaWRlbnRpZmllclByZWZpeD1yLHRoaXMub25VbmNhdWdodEVycm9yPW8sdGhpcy5vbkNhdWdodEVycm9yPWEsdGhpcy5vblJlY292ZXJhYmxlRXJyb3I9aSx0aGlzLnBvb2xlZENhY2hlPW51bGwsdGhpcy5wb29sZWRDYWNoZUxhbmVzPTAsdGhpcy5mb3JtU3RhdGU9cyx0aGlzLmluY29tcGxldGVUcmFuc2l0aW9ucz1uZXcgTWFwfWZ1bmN0aW9uIGM4KGUsbix0LHIsbyxhKXtvPW8/dDg6dDgsbnVsbD09PXIuY29udGV4dD9yLmNvbnRleHQ9bzpyLnBlbmRpbmdDb250ZXh0PW8sKHI9b0EobikpLnBheWxvYWQ9e2VsZW1lbnQ6dH0sbnVsbCE9PShhPXZvaWQgMD09PWE/bnVsbDphKSYmKHIuY2FsbGJhY2s9YSksbnVsbCE9PSh0PW9PKGUscixuKSkmJihzbyh0LGUsbiksb0ModCxlLG4pKX1mdW5jdGlvbiBjNyhlLG4pe2lmKG51bGwhPT0oZT1lLm1lbW9pemVkU3RhdGUpJiZudWxsIT09ZS5kZWh5ZHJhdGVkKXt2YXIgdD1lLnJldHJ5TGFuZTtlLnJldHJ5TGFuZT0wIT09dCYmdDxuP3Q6bn19ZnVuY3Rpb24gdWUoZSxuKXtjNyhlLG4pLChlPWUuYWx0ZXJuYXRlKSYmYzcoZSxuKX1mdW5jdGlvbiB1bihlKXtpZigxMz09PWUudGFnfHwzMT09PWUudGFnKXt2YXIgbj10MyhlLDB4NDAwMDAwMCk7bnVsbCE9PW4mJnNvKG4sZSwweDQwMDAwMDApLHVlKGUsMHg0MDAwMDAwKX19ZnVuY3Rpb24gdXQoZSl7aWYoMTM9PT1lLnRhZ3x8MzE9PT1lLnRhZyl7dmFyIG49c3QoKSx0PXQzKGUsbj1lUChuKSk7bnVsbCE9PXQmJnNvKHQsZSxuKSx1ZShlLG4pfX12YXIgdXI9ITA7ZnVuY3Rpb24gdW8oZSxuLHQscil7dmFyIG89TC5UO0wuVD1udWxsO3ZhciBhPVQucDt0cnl7VC5wPTIsdWkoZSxuLHQscil9ZmluYWxseXtULnA9YSxMLlQ9b319ZnVuY3Rpb24gdWEoZSxuLHQscil7dmFyIG89TC5UO0wuVD1udWxsO3ZhciBhPVQucDt0cnl7VC5wPTgsdWkoZSxuLHQscil9ZmluYWxseXtULnA9YSxMLlQ9b319ZnVuY3Rpb24gdWkoZSxuLHQscil7aWYodXIpe3ZhciBvPXVsKHIpO2lmKG51bGw9PT1vKXM4KGUsbixyLHVzLHQpLHV5KGUscik7ZWxzZSBpZihmdW5jdGlvbihlLG4sdCxyLG8pe3N3aXRjaChuKXtjYXNlXCJmb2N1c2luXCI6cmV0dXJuIHVmPXV4KHVmLGUsbix0LHIsbyksITA7Y2FzZVwiZHJhZ2VudGVyXCI6cmV0dXJuIHVwPXV4KHVwLGUsbix0LHIsbyksITA7Y2FzZVwibW91c2VvdmVyXCI6cmV0dXJuIHVoPXV4KHVoLGUsbix0LHIsbyksITA7Y2FzZVwicG9pbnRlcm92ZXJcIjp2YXIgYT1vLnBvaW50ZXJJZDtyZXR1cm4gdWcuc2V0KGEsdXgodWcuZ2V0KGEpfHxudWxsLGUsbix0LHIsbykpLCEwO2Nhc2VcImdvdHBvaW50ZXJjYXB0dXJlXCI6cmV0dXJuIGE9by5wb2ludGVySWQsdW0uc2V0KGEsdXgodW0uZ2V0KGEpfHxudWxsLGUsbix0LHIsbykpLCEwfXJldHVybiExfShvLGUsbix0LHIpKXIuc3RvcFByb3BhZ2F0aW9uKCk7ZWxzZSBpZih1eShlLHIpLDQmbiYmLTE8dWIuaW5kZXhPZihlKSl7Zm9yKDtudWxsIT09bzspe3ZhciBhPWVXKG8pO2lmKG51bGwhPT1hKXN3aXRjaChhLnRhZyl7Y2FzZSAzOmlmKChhPWEuc3RhdGVOb2RlKS5jdXJyZW50Lm1lbW9pemVkU3RhdGUuaXNEZWh5ZHJhdGVkKXt2YXIgaT1leChhLnBlbmRpbmdMYW5lcyk7aWYoMCE9PWkpe3ZhciBsPWE7Zm9yKGwucGVuZGluZ0xhbmVzfD0yLGwuZW50YW5nbGVkTGFuZXN8PTI7aTspe3ZhciBzPTE8PDMxLWVnKGkpO2wuZW50YW5nbGVtZW50c1sxXXw9cyxpJj1+c31zVShhKSwwPT0oNiZsUikmJihsMD1lcigpKzUwMCxzVigwLCExKSl9fWJyZWFrO2Nhc2UgMzE6Y2FzZSAxMzpudWxsIT09KGw9dDMoYSwyKSkmJnNvKGwsYSwyKSxzcygpLHVlKGEsMil9aWYobnVsbD09PShhPXVsKHIpKSYmczgoZSxuLHIsdXMsdCksYT09PW8pYnJlYWs7bz1hfW51bGwhPT1vJiZyLnN0b3BQcm9wYWdhdGlvbigpfWVsc2UgczgoZSxuLHIsbnVsbCx0KX19ZnVuY3Rpb24gdWwoZSl7cmV0dXJuIHVjKGU9bmIoZSkpfXZhciB1cz1udWxsO2Z1bmN0aW9uIHVjKGUpe2lmKHVzPW51bGwsbnVsbCE9PShlPWVxKGUpKSl7dmFyIG49cyhlKTtpZihudWxsPT09billPW51bGw7ZWxzZXt2YXIgdD1uLnRhZztpZigxMz09PXQpe2lmKG51bGwhPT0oZT1jKG4pKSlyZXR1cm4gZTtlPW51bGx9ZWxzZSBpZigzMT09PXQpe2lmKG51bGwhPT0oZT11KG4pKSlyZXR1cm4gZTtlPW51bGx9ZWxzZSBpZigzPT09dCl7aWYobi5zdGF0ZU5vZGUuY3VycmVudC5tZW1vaXplZFN0YXRlLmlzRGVoeWRyYXRlZClyZXR1cm4gMz09PW4udGFnP24uc3RhdGVOb2RlLmNvbnRhaW5lckluZm86bnVsbDtlPW51bGx9ZWxzZSBuIT09ZSYmKGU9bnVsbCl9fXJldHVybiB1cz1lLG51bGx9ZnVuY3Rpb24gdXUoZSl7c3dpdGNoKGUpe2Nhc2VcImJlZm9yZXRvZ2dsZVwiOmNhc2VcImNhbmNlbFwiOmNhc2VcImNsaWNrXCI6Y2FzZVwiY2xvc2VcIjpjYXNlXCJjb250ZXh0bWVudVwiOmNhc2VcImNvcHlcIjpjYXNlXCJjdXRcIjpjYXNlXCJhdXhjbGlja1wiOmNhc2VcImRibGNsaWNrXCI6Y2FzZVwiZHJhZ2VuZFwiOmNhc2VcImRyYWdzdGFydFwiOmNhc2VcImRyb3BcIjpjYXNlXCJmb2N1c2luXCI6Y2FzZVwiZm9jdXNvdXRcIjpjYXNlXCJpbnB1dFwiOmNhc2VcImludmFsaWRcIjpjYXNlXCJrZXlkb3duXCI6Y2FzZVwia2V5cHJlc3NcIjpjYXNlXCJrZXl1cFwiOmNhc2VcIm1vdXNlZG93blwiOmNhc2VcIm1vdXNldXBcIjpjYXNlXCJwYXN0ZVwiOmNhc2VcInBhdXNlXCI6Y2FzZVwicGxheVwiOmNhc2VcInBvaW50ZXJjYW5jZWxcIjpjYXNlXCJwb2ludGVyZG93blwiOmNhc2VcInBvaW50ZXJ1cFwiOmNhc2VcInJhdGVjaGFuZ2VcIjpjYXNlXCJyZXNldFwiOmNhc2VcInJlc2l6ZVwiOmNhc2VcInNlZWtlZFwiOmNhc2VcInN1Ym1pdFwiOmNhc2VcInRvZ2dsZVwiOmNhc2VcInRvdWNoY2FuY2VsXCI6Y2FzZVwidG91Y2hlbmRcIjpjYXNlXCJ0b3VjaHN0YXJ0XCI6Y2FzZVwidm9sdW1lY2hhbmdlXCI6Y2FzZVwiY2hhbmdlXCI6Y2FzZVwic2VsZWN0aW9uY2hhbmdlXCI6Y2FzZVwidGV4dElucHV0XCI6Y2FzZVwiY29tcG9zaXRpb25zdGFydFwiOmNhc2VcImNvbXBvc2l0aW9uZW5kXCI6Y2FzZVwiY29tcG9zaXRpb251cGRhdGVcIjpjYXNlXCJiZWZvcmVibHVyXCI6Y2FzZVwiYWZ0ZXJibHVyXCI6Y2FzZVwiYmVmb3JlaW5wdXRcIjpjYXNlXCJibHVyXCI6Y2FzZVwiZnVsbHNjcmVlbmNoYW5nZVwiOmNhc2VcImZvY3VzXCI6Y2FzZVwiaGFzaGNoYW5nZVwiOmNhc2VcInBvcHN0YXRlXCI6Y2FzZVwic2VsZWN0XCI6Y2FzZVwic2VsZWN0c3RhcnRcIjpyZXR1cm4gMjtjYXNlXCJkcmFnXCI6Y2FzZVwiZHJhZ2VudGVyXCI6Y2FzZVwiZHJhZ2V4aXRcIjpjYXNlXCJkcmFnbGVhdmVcIjpjYXNlXCJkcmFnb3ZlclwiOmNhc2VcIm1vdXNlbW92ZVwiOmNhc2VcIm1vdXNlb3V0XCI6Y2FzZVwibW91c2VvdmVyXCI6Y2FzZVwicG9pbnRlcm1vdmVcIjpjYXNlXCJwb2ludGVyb3V0XCI6Y2FzZVwicG9pbnRlcm92ZXJcIjpjYXNlXCJzY3JvbGxcIjpjYXNlXCJ0b3VjaG1vdmVcIjpjYXNlXCJ3aGVlbFwiOmNhc2VcIm1vdXNlZW50ZXJcIjpjYXNlXCJtb3VzZWxlYXZlXCI6Y2FzZVwicG9pbnRlcmVudGVyXCI6Y2FzZVwicG9pbnRlcmxlYXZlXCI6cmV0dXJuIDg7Y2FzZVwibWVzc2FnZVwiOnN3aXRjaChlbygpKXtjYXNlIGVhOnJldHVybiAyO2Nhc2UgZWk6cmV0dXJuIDg7Y2FzZSBlbDpjYXNlIGVzOnJldHVybiAzMjtjYXNlIGVjOnJldHVybiAweDEwMDAwMDAwO2RlZmF1bHQ6cmV0dXJuIDMyfWRlZmF1bHQ6cmV0dXJuIDMyfX12YXIgdWQ9ITEsdWY9bnVsbCx1cD1udWxsLHVoPW51bGwsdWc9bmV3IE1hcCx1bT1uZXcgTWFwLHV2PVtdLHViPVwibW91c2Vkb3duIG1vdXNldXAgdG91Y2hjYW5jZWwgdG91Y2hlbmQgdG91Y2hzdGFydCBhdXhjbGljayBkYmxjbGljayBwb2ludGVyY2FuY2VsIHBvaW50ZXJkb3duIHBvaW50ZXJ1cCBkcmFnZW5kIGRyYWdzdGFydCBkcm9wIGNvbXBvc2l0aW9uZW5kIGNvbXBvc2l0aW9uc3RhcnQga2V5ZG93biBrZXlwcmVzcyBrZXl1cCBpbnB1dCB0ZXh0SW5wdXQgY29weSBjdXQgcGFzdGUgY2xpY2sgY2hhbmdlIGNvbnRleHRtZW51IHJlc2V0XCIuc3BsaXQoXCIgXCIpO2Z1bmN0aW9uIHV5KGUsbil7c3dpdGNoKGUpe2Nhc2VcImZvY3VzaW5cIjpjYXNlXCJmb2N1c291dFwiOnVmPW51bGw7YnJlYWs7Y2FzZVwiZHJhZ2VudGVyXCI6Y2FzZVwiZHJhZ2xlYXZlXCI6dXA9bnVsbDticmVhaztjYXNlXCJtb3VzZW92ZXJcIjpjYXNlXCJtb3VzZW91dFwiOnVoPW51bGw7YnJlYWs7Y2FzZVwicG9pbnRlcm92ZXJcIjpjYXNlXCJwb2ludGVyb3V0XCI6dWcuZGVsZXRlKG4ucG9pbnRlcklkKTticmVhaztjYXNlXCJnb3Rwb2ludGVyY2FwdHVyZVwiOmNhc2VcImxvc3Rwb2ludGVyY2FwdHVyZVwiOnVtLmRlbGV0ZShuLnBvaW50ZXJJZCl9fWZ1bmN0aW9uIHV4KGUsbix0LHIsbyxhKXtyZXR1cm4gbnVsbD09PWV8fGUubmF0aXZlRXZlbnQhPT1hPyhlPXtibG9ja2VkT246bixkb21FdmVudE5hbWU6dCxldmVudFN5c3RlbUZsYWdzOnIsbmF0aXZlRXZlbnQ6YSx0YXJnZXRDb250YWluZXJzOltvXX0sbnVsbCE9PW4mJm51bGwhPT0obj1lVyhuKSkmJnVuKG4pKTooZS5ldmVudFN5c3RlbUZsYWdzfD1yLG49ZS50YXJnZXRDb250YWluZXJzLG51bGwhPT1vJiYtMT09PW4uaW5kZXhPZihvKSYmbi5wdXNoKG8pKSxlfWZ1bmN0aW9uIHV3KGUpe3ZhciBuPWVxKGUudGFyZ2V0KTtpZihudWxsIT09bil7dmFyIHQ9cyhuKTtpZihudWxsIT09dCl7aWYoMTM9PT0obj10LnRhZykpe2lmKG51bGwhPT0obj1jKHQpKSl7ZS5ibG9ja2VkT249bixlVChlLnByaW9yaXR5LGZ1bmN0aW9uKCl7dXQodCl9KTtyZXR1cm59fWVsc2UgaWYoMzE9PT1uKXtpZihudWxsIT09KG49dSh0KSkpe2UuYmxvY2tlZE9uPW4sZVQoZS5wcmlvcml0eSxmdW5jdGlvbigpe3V0KHQpfSk7cmV0dXJufX1lbHNlIGlmKDM9PT1uJiZ0LnN0YXRlTm9kZS5jdXJyZW50Lm1lbW9pemVkU3RhdGUuaXNEZWh5ZHJhdGVkKXtlLmJsb2NrZWRPbj0zPT09dC50YWc/dC5zdGF0ZU5vZGUuY29udGFpbmVySW5mbzpudWxsO3JldHVybn19fWUuYmxvY2tlZE9uPW51bGx9ZnVuY3Rpb24gdWooZSl7aWYobnVsbCE9PWUuYmxvY2tlZE9uKXJldHVybiExO2Zvcih2YXIgbj1lLnRhcmdldENvbnRhaW5lcnM7MDxuLmxlbmd0aDspe3ZhciB0PXVsKGUubmF0aXZlRXZlbnQpO2lmKG51bGwhPT10KXJldHVybiBudWxsIT09KG49ZVcodCkpJiZ1bihuKSxlLmJsb2NrZWRPbj10LCExO3ZhciByPW5ldyh0PWUubmF0aXZlRXZlbnQpLmNvbnN0cnVjdG9yKHQudHlwZSx0KTtudj1yLHQudGFyZ2V0LmRpc3BhdGNoRXZlbnQociksbnY9bnVsbCxuLnNoaWZ0KCl9cmV0dXJuITB9ZnVuY3Rpb24gdWsoZSxuLHQpe3VqKGUpJiZ0LmRlbGV0ZShuKX1mdW5jdGlvbiB1QSgpe3VkPSExLG51bGwhPT11ZiYmdWoodWYpJiYodWY9bnVsbCksbnVsbCE9PXVwJiZ1aih1cCkmJih1cD1udWxsKSxudWxsIT09dWgmJnVqKHVoKSYmKHVoPW51bGwpLHVnLmZvckVhY2godWspLHVtLmZvckVhY2godWspfWZ1bmN0aW9uIHVPKGUsbil7ZS5ibG9ja2VkT249PT1uJiYoZS5ibG9ja2VkT249bnVsbCx1ZHx8KHVkPSEwLG8udW5zdGFibGVfc2NoZWR1bGVDYWxsYmFjayhvLnVuc3RhYmxlX05vcm1hbFByaW9yaXR5LHVBKSkpfXZhciB1Qz1udWxsO2Z1bmN0aW9uIHVTKGUpe3VDIT09ZSYmKHVDPWUsby51bnN0YWJsZV9zY2hlZHVsZUNhbGxiYWNrKG8udW5zdGFibGVfTm9ybWFsUHJpb3JpdHksZnVuY3Rpb24oKXt1Qz09PWUmJih1Qz1udWxsKTtmb3IodmFyIG49MDtuPGUubGVuZ3RoO24rPTMpe3ZhciB0PWVbbl0scj1lW24rMV0sbz1lW24rMl07aWYoXCJmdW5jdGlvblwiIT10eXBlb2YgcilpZihudWxsPT09dWMocnx8dCkpY29udGludWU7ZWxzZSBicmVhazt2YXIgYT1lVyh0KTtudWxsIT09YSYmKGUuc3BsaWNlKG4sMyksbi09MyxhSyhhLHtwZW5kaW5nOiEwLGRhdGE6byxtZXRob2Q6dC5tZXRob2QsYWN0aW9uOnJ9LHIsbykpfX0pKX1mdW5jdGlvbiB1RShlKXtmdW5jdGlvbiBuKG4pe3JldHVybiB1TyhuLGUpfW51bGwhPT11ZiYmdU8odWYsZSksbnVsbCE9PXVwJiZ1Tyh1cCxlKSxudWxsIT09dWgmJnVPKHVoLGUpLHVnLmZvckVhY2gobiksdW0uZm9yRWFjaChuKTtmb3IodmFyIHQ9MDt0PHV2Lmxlbmd0aDt0Kyspe3ZhciByPXV2W3RdO3IuYmxvY2tlZE9uPT09ZSYmKHIuYmxvY2tlZE9uPW51bGwpfWZvcig7MDx1di5sZW5ndGgmJm51bGw9PT0odD11dlswXSkuYmxvY2tlZE9uOyl1dyh0KSxudWxsPT09dC5ibG9ja2VkT24mJnV2LnNoaWZ0KCk7aWYobnVsbCE9KHQ9KGUub3duZXJEb2N1bWVudHx8ZSkuJCRyZWFjdEZvcm1SZXBsYXkpKWZvcihyPTA7cjx0Lmxlbmd0aDtyKz0zKXt2YXIgbz10W3JdLGE9dFtyKzFdLGk9b1tlRF18fG51bGw7aWYoXCJmdW5jdGlvblwiPT10eXBlb2YgYSlpfHx1Uyh0KTtlbHNlIGlmKGkpe3ZhciBsPW51bGw7aWYoYSYmYS5oYXNBdHRyaWJ1dGUoXCJmb3JtQWN0aW9uXCIpKXtpZihvPWEsaT1hW2VEXXx8bnVsbClsPWkuZm9ybUFjdGlvbjtlbHNlIGlmKG51bGwhPT11YyhvKSljb250aW51ZX1lbHNlIGw9aS5hY3Rpb247XCJmdW5jdGlvblwiPT10eXBlb2YgbD90W3IrMV09bDoodC5zcGxpY2UociwzKSxyLT0zKSx1Uyh0KX19fWZ1bmN0aW9uIHVfKCl7ZnVuY3Rpb24gZShlKXtlLmNhbkludGVyY2VwdCYmXCJyZWFjdC10cmFuc2l0aW9uXCI9PT1lLmluZm8mJmUuaW50ZXJjZXB0KHtoYW5kbGVyOmZ1bmN0aW9uKCl7cmV0dXJuIG5ldyBQcm9taXNlKGZ1bmN0aW9uKGUpe3JldHVybiBvPWV9KX0sZm9jdXNSZXNldDpcIm1hbnVhbFwiLHNjcm9sbDpcIm1hbnVhbFwifSl9ZnVuY3Rpb24gbigpe251bGwhPT1vJiYobygpLG89bnVsbCkscnx8c2V0VGltZW91dCh0LDIwKX1mdW5jdGlvbiB0KCl7aWYoIXImJiFuYXZpZ2F0aW9uLnRyYW5zaXRpb24pe3ZhciBlPW5hdmlnYXRpb24uY3VycmVudEVudHJ5O2UmJm51bGwhPWUudXJsJiZuYXZpZ2F0aW9uLm5hdmlnYXRlKGUudXJsLHtzdGF0ZTplLmdldFN0YXRlKCksaW5mbzpcInJlYWN0LXRyYW5zaXRpb25cIixoaXN0b3J5OlwicmVwbGFjZVwifSl9fWlmKFwib2JqZWN0XCI9PXR5cGVvZiBuYXZpZ2F0aW9uKXt2YXIgcj0hMSxvPW51bGw7cmV0dXJuIG5hdmlnYXRpb24uYWRkRXZlbnRMaXN0ZW5lcihcIm5hdmlnYXRlXCIsZSksbmF2aWdhdGlvbi5hZGRFdmVudExpc3RlbmVyKFwibmF2aWdhdGVzdWNjZXNzXCIsbiksbmF2aWdhdGlvbi5hZGRFdmVudExpc3RlbmVyKFwibmF2aWdhdGVlcnJvclwiLG4pLHNldFRpbWVvdXQodCwxMDApLGZ1bmN0aW9uKCl7cj0hMCxuYXZpZ2F0aW9uLnJlbW92ZUV2ZW50TGlzdGVuZXIoXCJuYXZpZ2F0ZVwiLGUpLG5hdmlnYXRpb24ucmVtb3ZlRXZlbnRMaXN0ZW5lcihcIm5hdmlnYXRlc3VjY2Vzc1wiLG4pLG5hdmlnYXRpb24ucmVtb3ZlRXZlbnRMaXN0ZW5lcihcIm5hdmlnYXRlZXJyb3JcIixuKSxudWxsIT09byYmKG8oKSxvPW51bGwpfX19ZnVuY3Rpb24gdVAoZSl7dGhpcy5faW50ZXJuYWxSb290PWV9ZnVuY3Rpb24gdXooZSl7dGhpcy5faW50ZXJuYWxSb290PWV9dXoucHJvdG90eXBlLnJlbmRlcj11UC5wcm90b3R5cGUucmVuZGVyPWZ1bmN0aW9uKGUpe3ZhciBuPXRoaXMuX2ludGVybmFsUm9vdDtpZihudWxsPT09bil0aHJvdyBFcnJvcihsKDQwOSkpO2M4KG4uY3VycmVudCxzdCgpLGUsbixudWxsLG51bGwpfSx1ei5wcm90b3R5cGUudW5tb3VudD11UC5wcm90b3R5cGUudW5tb3VudD1mdW5jdGlvbigpe3ZhciBlPXRoaXMuX2ludGVybmFsUm9vdDtpZihudWxsIT09ZSl7dGhpcy5faW50ZXJuYWxSb290PW51bGw7dmFyIG49ZS5jb250YWluZXJJbmZvO2M4KGUuY3VycmVudCwyLG51bGwsZSxudWxsLG51bGwpLHNzKCksbltlQl09bnVsbH19LHV6LnByb3RvdHlwZS51bnN0YWJsZV9zY2hlZHVsZUh5ZHJhdGlvbj1mdW5jdGlvbihlKXtpZihlKXt2YXIgbj1lTCgpO2U9e2Jsb2NrZWRPbjpudWxsLHRhcmdldDplLHByaW9yaXR5Om59O2Zvcih2YXIgdD0wO3Q8dXYubGVuZ3RoJiYwIT09biYmbjx1dlt0XS5wcmlvcml0eTt0KyspO3V2LnNwbGljZSh0LDAsZSksMD09PXQmJnV3KGUpfX07dmFyIHVMPWEudmVyc2lvbjtpZihcIjE5LjIuMC1jYW5hcnktOTdjZGQ1ZDMtMjAyNTA3MTBcIiE9PXVMKXRocm93IEVycm9yKGwoNTI3LHVMLFwiMTkuMi4wLWNhbmFyeS05N2NkZDVkMy0yMDI1MDcxMFwiKSk7aWYoVC5maW5kRE9NTm9kZT1mdW5jdGlvbihlKXt2YXIgbj1lLl9yZWFjdEludGVybmFscztpZih2b2lkIDA9PT1uKXtpZihcImZ1bmN0aW9uXCI9PXR5cGVvZiBlLnJlbmRlcil0aHJvdyBFcnJvcihsKDE4OCkpO3Rocm93IEVycm9yKGwoMjY4LGU9T2JqZWN0LmtleXMoZSkuam9pbihcIixcIikpKX1yZXR1cm4gZT1udWxsPT09KGU9bnVsbCE9PShlPWZ1bmN0aW9uKGUpe3ZhciBuPWUuYWx0ZXJuYXRlO2lmKCFuKXtpZihudWxsPT09KG49cyhlKSkpdGhyb3cgRXJyb3IobCgxODgpKTtyZXR1cm4gbiE9PWU/bnVsbDplfWZvcih2YXIgdD1lLHI9bjs7KXt2YXIgbz10LnJldHVybjtpZihudWxsPT09bylicmVhazt2YXIgYT1vLmFsdGVybmF0ZTtpZihudWxsPT09YSl7aWYobnVsbCE9PShyPW8ucmV0dXJuKSl7dD1yO2NvbnRpbnVlfWJyZWFrfWlmKG8uY2hpbGQ9PT1hLmNoaWxkKXtmb3IoYT1vLmNoaWxkO2E7KXtpZihhPT09dClyZXR1cm4gZChvKSxlO2lmKGE9PT1yKXJldHVybiBkKG8pLG47YT1hLnNpYmxpbmd9dGhyb3cgRXJyb3IobCgxODgpKX1pZih0LnJldHVybiE9PXIucmV0dXJuKXQ9byxyPWE7ZWxzZXtmb3IodmFyIGk9ITEsYz1vLmNoaWxkO2M7KXtpZihjPT09dCl7aT0hMCx0PW8scj1hO2JyZWFrfWlmKGM9PT1yKXtpPSEwLHI9byx0PWE7YnJlYWt9Yz1jLnNpYmxpbmd9aWYoIWkpe2ZvcihjPWEuY2hpbGQ7Yzspe2lmKGM9PT10KXtpPSEwLHQ9YSxyPW87YnJlYWt9aWYoYz09PXIpe2k9ITAscj1hLHQ9bzticmVha31jPWMuc2libGluZ31pZighaSl0aHJvdyBFcnJvcihsKDE4OSkpfX1pZih0LmFsdGVybmF0ZSE9PXIpdGhyb3cgRXJyb3IobCgxOTApKX1pZigzIT09dC50YWcpdGhyb3cgRXJyb3IobCgxODgpKTtyZXR1cm4gdC5zdGF0ZU5vZGUuY3VycmVudD09PXQ/ZTpufShuKSk/ZnVuY3Rpb24gZShuKXt2YXIgdD1uLnRhZztpZig1PT09dHx8MjY9PT10fHwyNz09PXR8fDY9PT10KXJldHVybiBuO2ZvcihuPW4uY2hpbGQ7bnVsbCE9PW47KXtpZihudWxsIT09KHQ9ZShuKSkpcmV0dXJuIHQ7bj1uLnNpYmxpbmd9cmV0dXJuIG51bGx9KGUpOm51bGwpP251bGw6ZS5zdGF0ZU5vZGV9LFwidW5kZWZpbmVkXCIhPXR5cGVvZiBfX1JFQUNUX0RFVlRPT0xTX0dMT0JBTF9IT09LX18pe3ZhciB1VD1fX1JFQUNUX0RFVlRPT0xTX0dMT0JBTF9IT09LX187aWYoIXVULmlzRGlzYWJsZWQmJnVULnN1cHBvcnRzRmliZXIpdHJ5e2VmPXVULmluamVjdCh7YnVuZGxlVHlwZTowLHZlcnNpb246XCIxOS4yLjAtY2FuYXJ5LTk3Y2RkNWQzLTIwMjUwNzEwXCIscmVuZGVyZXJQYWNrYWdlTmFtZTpcInJlYWN0LWRvbVwiLGN1cnJlbnREaXNwYXRjaGVyUmVmOkwscmVjb25jaWxlclZlcnNpb246XCIxOS4yLjAtY2FuYXJ5LTk3Y2RkNWQzLTIwMjUwNzEwXCJ9KSxlcD11VH1jYXRjaChlKXt9fW4uY3JlYXRlUm9vdD1mdW5jdGlvbihlLG4pe2lmKCEodD1lKXx8MSE9PXQubm9kZVR5cGUmJjkhPT10Lm5vZGVUeXBlJiYxMSE9PXQubm9kZVR5cGUpdGhyb3cgRXJyb3IobCgyOTkpKTt2YXIgdCxyLG8sYSxpLHMsYyx1LGQ9ITEsZj1cIlwiLHA9aXUsaD1pZCxnPWlwO3JldHVybiBudWxsIT1uJiYoITA9PT1uLnVuc3RhYmxlX3N0cmljdE1vZGUmJihkPSEwKSx2b2lkIDAhPT1uLmlkZW50aWZpZXJQcmVmaXgmJihmPW4uaWRlbnRpZmllclByZWZpeCksdm9pZCAwIT09bi5vblVuY2F1Z2h0RXJyb3ImJihwPW4ub25VbmNhdWdodEVycm9yKSx2b2lkIDAhPT1uLm9uQ2F1Z2h0RXJyb3ImJihoPW4ub25DYXVnaHRFcnJvciksdm9pZCAwIT09bi5vblJlY292ZXJhYmxlRXJyb3ImJihnPW4ub25SZWNvdmVyYWJsZUVycm9yKSkscj1lLG89MSxhPSExLGk9bnVsbCxzPTAsYz1kLHU9bnVsbCxyPW5ldyBjOShyLG8sYSxmLHAsaCxnLHVfLG51bGwpLG89MSwhMD09PWMmJihvfD0yNCksYz1yZSgzLG51bGwsbnVsbCxvKSxyLmN1cnJlbnQ9YyxjLnN0YXRlTm9kZT1yLG89cjEoKSxvLnJlZkNvdW50Kyssci5wb29sZWRDYWNoZT1vLG8ucmVmQ291bnQrKyxjLm1lbW9pemVkU3RhdGU9e2VsZW1lbnQ6bnVsbCxpc0RlaHlkcmF0ZWQ6YSxjYWNoZTpvfSxvaihjKSxuPXIsZVtlQl09bi5jdXJyZW50LHM2KGUpLG5ldyB1UChuKX19LFwiLi9kaXN0L2NvbXBpbGVkL3JlYWN0LWRvbS9janMvcmVhY3QtZG9tLnByb2R1Y3Rpb24uanNcIjpmdW5jdGlvbihlLG4sdCl7XCJ1c2Ugc3RyaWN0XCI7dmFyIHI9dChcIi4vZGlzdC9jb21waWxlZC9yZWFjdC9pbmRleC5qc1wiKTtmdW5jdGlvbiBvKGUpe3ZhciBuPVwiaHR0cHM6Ly9yZWFjdC5kZXYvZXJyb3JzL1wiK2U7aWYoMTxhcmd1bWVudHMubGVuZ3RoKXtuKz1cIj9hcmdzW109XCIrZW5jb2RlVVJJQ29tcG9uZW50KGFyZ3VtZW50c1sxXSk7Zm9yKHZhciB0PTI7dDxhcmd1bWVudHMubGVuZ3RoO3QrKyluKz1cIiZhcmdzW109XCIrZW5jb2RlVVJJQ29tcG9uZW50KGFyZ3VtZW50c1t0XSl9cmV0dXJuXCJNaW5pZmllZCBSZWFjdCBlcnJvciAjXCIrZStcIjsgdmlzaXQgXCIrbitcIiBmb3IgdGhlIGZ1bGwgbWVzc2FnZSBvciB1c2UgdGhlIG5vbi1taW5pZmllZCBkZXYgZW52aXJvbm1lbnQgZm9yIGZ1bGwgZXJyb3JzIGFuZCBhZGRpdGlvbmFsIGhlbHBmdWwgd2FybmluZ3MuXCJ9ZnVuY3Rpb24gYSgpe312YXIgaT17ZDp7ZjphLHI6ZnVuY3Rpb24oKXt0aHJvdyBFcnJvcihvKDUyMikpfSxEOmEsQzphLEw6YSxtOmEsWDphLFM6YSxNOmF9LHA6MCxmaW5kRE9NTm9kZTpudWxsfSxsPVN5bWJvbC5mb3IoXCJyZWFjdC5wb3J0YWxcIikscz1yLl9fQ0xJRU5UX0lOVEVSTkFMU19ET19OT1RfVVNFX09SX1dBUk5fVVNFUlNfVEhFWV9DQU5OT1RfVVBHUkFERTtmdW5jdGlvbiBjKGUsbil7cmV0dXJuXCJmb250XCI9PT1lP1wiXCI6XCJzdHJpbmdcIj09dHlwZW9mIG4/XCJ1c2UtY3JlZGVudGlhbHNcIj09PW4/bjpcIlwiOnZvaWQgMH1uLl9fRE9NX0lOVEVSTkFMU19ET19OT1RfVVNFX09SX1dBUk5fVVNFUlNfVEhFWV9DQU5OT1RfVVBHUkFERT1pLG4uY3JlYXRlUG9ydGFsPWZ1bmN0aW9uKGUsbil7dmFyIHQ9Mjxhcmd1bWVudHMubGVuZ3RoJiZ2b2lkIDAhPT1hcmd1bWVudHNbMl0/YXJndW1lbnRzWzJdOm51bGw7aWYoIW58fDEhPT1uLm5vZGVUeXBlJiY5IT09bi5ub2RlVHlwZSYmMTEhPT1uLm5vZGVUeXBlKXRocm93IEVycm9yKG8oMjk5KSk7cmV0dXJuIGZ1bmN0aW9uKGUsbix0KXt2YXIgcj0zPGFyZ3VtZW50cy5sZW5ndGgmJnZvaWQgMCE9PWFyZ3VtZW50c1szXT9hcmd1bWVudHNbM106bnVsbDtyZXR1cm57JCR0eXBlb2Y6bCxrZXk6bnVsbD09cj9udWxsOlwiXCIrcixjaGlsZHJlbjplLGNvbnRhaW5lckluZm86bixpbXBsZW1lbnRhdGlvbjp0fX0oZSxuLG51bGwsdCl9LG4uZmx1c2hTeW5jPWZ1bmN0aW9uKGUpe3ZhciBuPXMuVCx0PWkucDt0cnl7aWYocy5UPW51bGwsaS5wPTIsZSlyZXR1cm4gZSgpfWZpbmFsbHl7cy5UPW4saS5wPXQsaS5kLmYoKX19LG4ucHJlY29ubmVjdD1mdW5jdGlvbihlLG4pe1wic3RyaW5nXCI9PXR5cGVvZiBlJiYobj1uP1wic3RyaW5nXCI9PXR5cGVvZihuPW4uY3Jvc3NPcmlnaW4pP1widXNlLWNyZWRlbnRpYWxzXCI9PT1uP246XCJcIjp2b2lkIDA6bnVsbCxpLmQuQyhlLG4pKX0sbi5wcmVmZXRjaEROUz1mdW5jdGlvbihlKXtcInN0cmluZ1wiPT10eXBlb2YgZSYmaS5kLkQoZSl9LG4ucHJlaW5pdD1mdW5jdGlvbihlLG4pe2lmKFwic3RyaW5nXCI9PXR5cGVvZiBlJiZuJiZcInN0cmluZ1wiPT10eXBlb2Ygbi5hcyl7dmFyIHQ9bi5hcyxyPWModCxuLmNyb3NzT3JpZ2luKSxvPVwic3RyaW5nXCI9PXR5cGVvZiBuLmludGVncml0eT9uLmludGVncml0eTp2b2lkIDAsYT1cInN0cmluZ1wiPT10eXBlb2Ygbi5mZXRjaFByaW9yaXR5P24uZmV0Y2hQcmlvcml0eTp2b2lkIDA7XCJzdHlsZVwiPT09dD9pLmQuUyhlLFwic3RyaW5nXCI9PXR5cGVvZiBuLnByZWNlZGVuY2U/bi5wcmVjZWRlbmNlOnZvaWQgMCx7Y3Jvc3NPcmlnaW46cixpbnRlZ3JpdHk6byxmZXRjaFByaW9yaXR5OmF9KTpcInNjcmlwdFwiPT09dCYmaS5kLlgoZSx7Y3Jvc3NPcmlnaW46cixpbnRlZ3JpdHk6byxmZXRjaFByaW9yaXR5OmEsbm9uY2U6XCJzdHJpbmdcIj09dHlwZW9mIG4ubm9uY2U/bi5ub25jZTp2b2lkIDB9KX19LG4ucHJlaW5pdE1vZHVsZT1mdW5jdGlvbihlLG4pe2lmKFwic3RyaW5nXCI9PXR5cGVvZiBlKWlmKFwib2JqZWN0XCI9PXR5cGVvZiBuJiZudWxsIT09bil7aWYobnVsbD09bi5hc3x8XCJzY3JpcHRcIj09PW4uYXMpe3ZhciB0PWMobi5hcyxuLmNyb3NzT3JpZ2luKTtpLmQuTShlLHtjcm9zc09yaWdpbjp0LGludGVncml0eTpcInN0cmluZ1wiPT10eXBlb2Ygbi5pbnRlZ3JpdHk/bi5pbnRlZ3JpdHk6dm9pZCAwLG5vbmNlOlwic3RyaW5nXCI9PXR5cGVvZiBuLm5vbmNlP24ubm9uY2U6dm9pZCAwfSl9fWVsc2UgbnVsbD09biYmaS5kLk0oZSl9LG4ucHJlbG9hZD1mdW5jdGlvbihlLG4pe2lmKFwic3RyaW5nXCI9PXR5cGVvZiBlJiZcIm9iamVjdFwiPT10eXBlb2YgbiYmbnVsbCE9PW4mJlwic3RyaW5nXCI9PXR5cGVvZiBuLmFzKXt2YXIgdD1uLmFzLHI9Yyh0LG4uY3Jvc3NPcmlnaW4pO2kuZC5MKGUsdCx7Y3Jvc3NPcmlnaW46cixpbnRlZ3JpdHk6XCJzdHJpbmdcIj09dHlwZW9mIG4uaW50ZWdyaXR5P24uaW50ZWdyaXR5OnZvaWQgMCxub25jZTpcInN0cmluZ1wiPT10eXBlb2Ygbi5ub25jZT9uLm5vbmNlOnZvaWQgMCx0eXBlOlwic3RyaW5nXCI9PXR5cGVvZiBuLnR5cGU/bi50eXBlOnZvaWQgMCxmZXRjaFByaW9yaXR5Olwic3RyaW5nXCI9PXR5cGVvZiBuLmZldGNoUHJpb3JpdHk/bi5mZXRjaFByaW9yaXR5OnZvaWQgMCxyZWZlcnJlclBvbGljeTpcInN0cmluZ1wiPT10eXBlb2Ygbi5yZWZlcnJlclBvbGljeT9uLnJlZmVycmVyUG9saWN5OnZvaWQgMCxpbWFnZVNyY1NldDpcInN0cmluZ1wiPT10eXBlb2Ygbi5pbWFnZVNyY1NldD9uLmltYWdlU3JjU2V0OnZvaWQgMCxpbWFnZVNpemVzOlwic3RyaW5nXCI9PXR5cGVvZiBuLmltYWdlU2l6ZXM/bi5pbWFnZVNpemVzOnZvaWQgMCxtZWRpYTpcInN0cmluZ1wiPT10eXBlb2Ygbi5tZWRpYT9uLm1lZGlhOnZvaWQgMH0pfX0sbi5wcmVsb2FkTW9kdWxlPWZ1bmN0aW9uKGUsbil7aWYoXCJzdHJpbmdcIj09dHlwZW9mIGUpaWYobil7dmFyIHQ9YyhuLmFzLG4uY3Jvc3NPcmlnaW4pO2kuZC5tKGUse2FzOlwic3RyaW5nXCI9PXR5cGVvZiBuLmFzJiZcInNjcmlwdFwiIT09bi5hcz9uLmFzOnZvaWQgMCxjcm9zc09yaWdpbjp0LGludGVncml0eTpcInN0cmluZ1wiPT10eXBlb2Ygbi5pbnRlZ3JpdHk/bi5pbnRlZ3JpdHk6dm9pZCAwfSl9ZWxzZSBpLmQubShlKX0sbi5yZXF1ZXN0Rm9ybVJlc2V0PWZ1bmN0aW9uKGUpe2kuZC5yKGUpfSxuLnVuc3RhYmxlX2JhdGNoZWRVcGRhdGVzPWZ1bmN0aW9uKGUsbil7cmV0dXJuIGUobil9LG4udXNlRm9ybVN0YXRlPWZ1bmN0aW9uKGUsbix0KXtyZXR1cm4gcy5ILnVzZUZvcm1TdGF0ZShlLG4sdCl9LG4udXNlRm9ybVN0YXR1cz1mdW5jdGlvbigpe3JldHVybiBzLkgudXNlSG9zdFRyYW5zaXRpb25TdGF0dXMoKX0sbi52ZXJzaW9uPVwiMTkuMi4wLWNhbmFyeS05N2NkZDVkMy0yMDI1MDcxMFwifSxcIi4vZGlzdC9jb21waWxlZC9yZWFjdC1kb20vY2xpZW50LmpzXCI6ZnVuY3Rpb24oZSxuLHQpe1widXNlIHN0cmljdFwiOyFmdW5jdGlvbiBlKCl7aWYoXCJ1bmRlZmluZWRcIiE9dHlwZW9mIF9fUkVBQ1RfREVWVE9PTFNfR0xPQkFMX0hPT0tfXyYmXCJmdW5jdGlvblwiPT10eXBlb2YgX19SRUFDVF9ERVZUT09MU19HTE9CQUxfSE9PS19fLmNoZWNrRENFKXRyeXtfX1JFQUNUX0RFVlRPT0xTX0dMT0JBTF9IT09LX18uY2hlY2tEQ0UoZSl9Y2F0Y2goZSl7Y29uc29sZS5lcnJvcihlKX19KCksZS5leHBvcnRzPXQoXCIuL2Rpc3QvY29tcGlsZWQvcmVhY3QtZG9tL2Nqcy9yZWFjdC1kb20tY2xpZW50LnByb2R1Y3Rpb24uanNcIil9LFwiLi9kaXN0L2NvbXBpbGVkL3JlYWN0LWRvbS9pbmRleC5qc1wiOmZ1bmN0aW9uKGUsbix0KXtcInVzZSBzdHJpY3RcIjshZnVuY3Rpb24gZSgpe2lmKFwidW5kZWZpbmVkXCIhPXR5cGVvZiBfX1JFQUNUX0RFVlRPT0xTX0dMT0JBTF9IT09LX18mJlwiZnVuY3Rpb25cIj09dHlwZW9mIF9fUkVBQ1RfREVWVE9PTFNfR0xPQkFMX0hPT0tfXy5jaGVja0RDRSl0cnl7X19SRUFDVF9ERVZUT09MU19HTE9CQUxfSE9PS19fLmNoZWNrRENFKGUpfWNhdGNoKGUpe2NvbnNvbGUuZXJyb3IoZSl9fSgpLGUuZXhwb3J0cz10KFwiLi9kaXN0L2NvbXBpbGVkL3JlYWN0LWRvbS9janMvcmVhY3QtZG9tLnByb2R1Y3Rpb24uanNcIil9LFwiLi9kaXN0L2NvbXBpbGVkL3JlYWN0L2Nqcy9yZWFjdC1qc3gtcnVudGltZS5wcm9kdWN0aW9uLmpzXCI6ZnVuY3Rpb24oZSxuKXtcInVzZSBzdHJpY3RcIjt2YXIgdD1TeW1ib2wuZm9yKFwicmVhY3QudHJhbnNpdGlvbmFsLmVsZW1lbnRcIik7ZnVuY3Rpb24gcihlLG4scil7dmFyIG89bnVsbDtpZih2b2lkIDAhPT1yJiYobz1cIlwiK3IpLHZvaWQgMCE9PW4ua2V5JiYobz1cIlwiK24ua2V5KSxcImtleVwiaW4gbilmb3IodmFyIGEgaW4gcj17fSxuKVwia2V5XCIhPT1hJiYoclthXT1uW2FdKTtlbHNlIHI9bjtyZXR1cm57JCR0eXBlb2Y6dCx0eXBlOmUsa2V5Om8scmVmOnZvaWQgMCE9PShuPXIucmVmKT9uOm51bGwscHJvcHM6cn19bi5GcmFnbWVudD1TeW1ib2wuZm9yKFwicmVhY3QuZnJhZ21lbnRcIiksbi5qc3g9cixuLmpzeHM9cn0sXCIuL2Rpc3QvY29tcGlsZWQvcmVhY3QvY2pzL3JlYWN0LnByb2R1Y3Rpb24uanNcIjpmdW5jdGlvbihlLG4pe1widXNlIHN0cmljdFwiO3ZhciB0PVN5bWJvbC5mb3IoXCJyZWFjdC50cmFuc2l0aW9uYWwuZWxlbWVudFwiKSxyPVN5bWJvbC5mb3IoXCJyZWFjdC5wb3J0YWxcIiksbz1TeW1ib2wuZm9yKFwicmVhY3QuZnJhZ21lbnRcIiksYT1TeW1ib2wuZm9yKFwicmVhY3Quc3RyaWN0X21vZGVcIiksaT1TeW1ib2wuZm9yKFwicmVhY3QucHJvZmlsZXJcIiksbD1TeW1ib2wuZm9yKFwicmVhY3QuY29uc3VtZXJcIikscz1TeW1ib2wuZm9yKFwicmVhY3QuY29udGV4dFwiKSxjPVN5bWJvbC5mb3IoXCJyZWFjdC5mb3J3YXJkX3JlZlwiKSx1PVN5bWJvbC5mb3IoXCJyZWFjdC5zdXNwZW5zZVwiKSxkPVN5bWJvbC5mb3IoXCJyZWFjdC5tZW1vXCIpLGY9U3ltYm9sLmZvcihcInJlYWN0LmxhenlcIikscD1TeW1ib2wuaXRlcmF0b3IsaD17aXNNb3VudGVkOmZ1bmN0aW9uKCl7cmV0dXJuITF9LGVucXVldWVGb3JjZVVwZGF0ZTpmdW5jdGlvbigpe30sZW5xdWV1ZVJlcGxhY2VTdGF0ZTpmdW5jdGlvbigpe30sZW5xdWV1ZVNldFN0YXRlOmZ1bmN0aW9uKCl7fX0sZz1PYmplY3QuYXNzaWduLG09e307ZnVuY3Rpb24gdihlLG4sdCl7dGhpcy5wcm9wcz1lLHRoaXMuY29udGV4dD1uLHRoaXMucmVmcz1tLHRoaXMudXBkYXRlcj10fHxofWZ1bmN0aW9uIGIoKXt9ZnVuY3Rpb24geShlLG4sdCl7dGhpcy5wcm9wcz1lLHRoaXMuY29udGV4dD1uLHRoaXMucmVmcz1tLHRoaXMudXBkYXRlcj10fHxofXYucHJvdG90eXBlLmlzUmVhY3RDb21wb25lbnQ9e30sdi5wcm90b3R5cGUuc2V0U3RhdGU9ZnVuY3Rpb24oZSxuKXtpZihcIm9iamVjdFwiIT10eXBlb2YgZSYmXCJmdW5jdGlvblwiIT10eXBlb2YgZSYmbnVsbCE9ZSl0aHJvdyBFcnJvcihcInRha2VzIGFuIG9iamVjdCBvZiBzdGF0ZSB2YXJpYWJsZXMgdG8gdXBkYXRlIG9yIGEgZnVuY3Rpb24gd2hpY2ggcmV0dXJucyBhbiBvYmplY3Qgb2Ygc3RhdGUgdmFyaWFibGVzLlwiKTt0aGlzLnVwZGF0ZXIuZW5xdWV1ZVNldFN0YXRlKHRoaXMsZSxuLFwic2V0U3RhdGVcIil9LHYucHJvdG90eXBlLmZvcmNlVXBkYXRlPWZ1bmN0aW9uKGUpe3RoaXMudXBkYXRlci5lbnF1ZXVlRm9yY2VVcGRhdGUodGhpcyxlLFwiZm9yY2VVcGRhdGVcIil9LGIucHJvdG90eXBlPXYucHJvdG90eXBlO3ZhciB4PXkucHJvdG90eXBlPW5ldyBiO3guY29uc3RydWN0b3I9eSxnKHgsdi5wcm90b3R5cGUpLHguaXNQdXJlUmVhY3RDb21wb25lbnQ9ITA7dmFyIHc9QXJyYXkuaXNBcnJheTtmdW5jdGlvbiBqKCl7fXZhciBrPXtIOm51bGwsQTpudWxsLFQ6bnVsbCxTOm51bGx9LEE9T2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eTtmdW5jdGlvbiBPKGUsbixyLG8sYSxpKXtyZXR1cm57JCR0eXBlb2Y6dCx0eXBlOmUsa2V5Om4scmVmOnZvaWQgMCE9PShyPWkucmVmKT9yOm51bGwscHJvcHM6aX19ZnVuY3Rpb24gQyhlKXtyZXR1cm5cIm9iamVjdFwiPT10eXBlb2YgZSYmbnVsbCE9PWUmJmUuJCR0eXBlb2Y9PT10fXZhciBTPS9cXC8rL2c7ZnVuY3Rpb24gRShlLG4pe3ZhciB0LHI7cmV0dXJuXCJvYmplY3RcIj09dHlwZW9mIGUmJm51bGwhPT1lJiZudWxsIT1lLmtleT8odD1cIlwiK2Uua2V5LHI9e1wiPVwiOlwiPTBcIixcIjpcIjpcIj0yXCJ9LFwiJFwiK3QucmVwbGFjZSgvWz06XS9nLGZ1bmN0aW9uKGUpe3JldHVybiByW2VdfSkpOm4udG9TdHJpbmcoMzYpfWZ1bmN0aW9uIF8oZSxuLG8pe2lmKG51bGw9PWUpcmV0dXJuIGU7dmFyIGE9W10saT0wO3JldHVybiFmdW5jdGlvbiBlKG4sbyxhLGksbCl7dmFyIHMsYyx1LGQ9dHlwZW9mIG47KFwidW5kZWZpbmVkXCI9PT1kfHxcImJvb2xlYW5cIj09PWQpJiYobj1udWxsKTt2YXIgaD0hMTtpZihudWxsPT09biloPSEwO2Vsc2Ugc3dpdGNoKGQpe2Nhc2VcImJpZ2ludFwiOmNhc2VcInN0cmluZ1wiOmNhc2VcIm51bWJlclwiOmg9ITA7YnJlYWs7Y2FzZVwib2JqZWN0XCI6c3dpdGNoKG4uJCR0eXBlb2Ype2Nhc2UgdDpjYXNlIHI6aD0hMDticmVhaztjYXNlIGY6cmV0dXJuIGUoKGg9bi5faW5pdCkobi5fcGF5bG9hZCksbyxhLGksbCl9fWlmKGgpcmV0dXJuIGw9bChuKSxoPVwiXCI9PT1pP1wiLlwiK0UobiwwKTppLHcobCk/KGE9XCJcIixudWxsIT1oJiYoYT1oLnJlcGxhY2UoUyxcIiQmL1wiKStcIi9cIiksZShsLG8sYSxcIlwiLGZ1bmN0aW9uKGUpe3JldHVybiBlfSkpOm51bGwhPWwmJihDKGwpJiYocz1sLGM9YSsobnVsbD09bC5rZXl8fG4mJm4ua2V5PT09bC5rZXk/XCJcIjooXCJcIitsLmtleSkucmVwbGFjZShTLFwiJCYvXCIpK1wiL1wiKStoLGw9TyhzLnR5cGUsYyx2b2lkIDAsdm9pZCAwLHZvaWQgMCxzLnByb3BzKSksby5wdXNoKGwpKSwxO2g9MDt2YXIgZz1cIlwiPT09aT9cIi5cIjppK1wiOlwiO2lmKHcobikpZm9yKHZhciBtPTA7bTxuLmxlbmd0aDttKyspZD1nK0UoaT1uW21dLG0pLGgrPWUoaSxvLGEsZCxsKTtlbHNlIGlmKFwiZnVuY3Rpb25cIj09dHlwZW9mKG09bnVsbD09PSh1PW4pfHxcIm9iamVjdFwiIT10eXBlb2YgdT9udWxsOlwiZnVuY3Rpb25cIj09dHlwZW9mKHU9cCYmdVtwXXx8dVtcIkBAaXRlcmF0b3JcIl0pP3U6bnVsbCkpZm9yKG49bS5jYWxsKG4pLG09MDshKGk9bi5uZXh0KCkpLmRvbmU7KWQ9ZytFKGk9aS52YWx1ZSxtKyspLGgrPWUoaSxvLGEsZCxsKTtlbHNlIGlmKFwib2JqZWN0XCI9PT1kKXtpZihcImZ1bmN0aW9uXCI9PXR5cGVvZiBuLnRoZW4pcmV0dXJuIGUoZnVuY3Rpb24oZSl7c3dpdGNoKGUuc3RhdHVzKXtjYXNlXCJmdWxmaWxsZWRcIjpyZXR1cm4gZS52YWx1ZTtjYXNlXCJyZWplY3RlZFwiOnRocm93IGUucmVhc29uO2RlZmF1bHQ6c3dpdGNoKFwic3RyaW5nXCI9PXR5cGVvZiBlLnN0YXR1cz9lLnRoZW4oaixqKTooZS5zdGF0dXM9XCJwZW5kaW5nXCIsZS50aGVuKGZ1bmN0aW9uKG4pe1wicGVuZGluZ1wiPT09ZS5zdGF0dXMmJihlLnN0YXR1cz1cImZ1bGZpbGxlZFwiLGUudmFsdWU9bil9LGZ1bmN0aW9uKG4pe1wicGVuZGluZ1wiPT09ZS5zdGF0dXMmJihlLnN0YXR1cz1cInJlamVjdGVkXCIsZS5yZWFzb249bil9KSksZS5zdGF0dXMpe2Nhc2VcImZ1bGZpbGxlZFwiOnJldHVybiBlLnZhbHVlO2Nhc2VcInJlamVjdGVkXCI6dGhyb3cgZS5yZWFzb259fXRocm93IGV9KG4pLG8sYSxpLGwpO3Rocm93IEVycm9yKFwiT2JqZWN0cyBhcmUgbm90IHZhbGlkIGFzIGEgUmVhY3QgY2hpbGQgKGZvdW5kOiBcIisoXCJbb2JqZWN0IE9iamVjdF1cIj09PShvPVN0cmluZyhuKSk/XCJvYmplY3Qgd2l0aCBrZXlzIHtcIitPYmplY3Qua2V5cyhuKS5qb2luKFwiLCBcIikrXCJ9XCI6bykrXCIpLiBJZiB5b3UgbWVhbnQgdG8gcmVuZGVyIGEgY29sbGVjdGlvbiBvZiBjaGlsZHJlbiwgdXNlIGFuIGFycmF5IGluc3RlYWQuXCIpfXJldHVybiBofShlLGEsXCJcIixcIlwiLGZ1bmN0aW9uKGUpe3JldHVybiBuLmNhbGwobyxlLGkrKyl9KSxhfWZ1bmN0aW9uIFAoZSl7aWYoLTE9PT1lLl9zdGF0dXMpe3ZhciBuPWUuX3Jlc3VsdDsobj1uKCkpLnRoZW4oZnVuY3Rpb24obil7KDA9PT1lLl9zdGF0dXN8fC0xPT09ZS5fc3RhdHVzKSYmKGUuX3N0YXR1cz0xLGUuX3Jlc3VsdD1uKX0sZnVuY3Rpb24obil7KDA9PT1lLl9zdGF0dXN8fC0xPT09ZS5fc3RhdHVzKSYmKGUuX3N0YXR1cz0yLGUuX3Jlc3VsdD1uKX0pLC0xPT09ZS5fc3RhdHVzJiYoZS5fc3RhdHVzPTAsZS5fcmVzdWx0PW4pfWlmKDE9PT1lLl9zdGF0dXMpcmV0dXJuIGUuX3Jlc3VsdC5kZWZhdWx0O3Rocm93IGUuX3Jlc3VsdH12YXIgej1cImZ1bmN0aW9uXCI9PXR5cGVvZiByZXBvcnRFcnJvcj9yZXBvcnRFcnJvcjpmdW5jdGlvbihlKXtpZihcIm9iamVjdFwiPT10eXBlb2Ygd2luZG93JiZcImZ1bmN0aW9uXCI9PXR5cGVvZiB3aW5kb3cuRXJyb3JFdmVudCl7dmFyIG49bmV3IHdpbmRvdy5FcnJvckV2ZW50KFwiZXJyb3JcIix7YnViYmxlczohMCxjYW5jZWxhYmxlOiEwLG1lc3NhZ2U6XCJvYmplY3RcIj09dHlwZW9mIGUmJm51bGwhPT1lJiZcInN0cmluZ1wiPT10eXBlb2YgZS5tZXNzYWdlP1N0cmluZyhlLm1lc3NhZ2UpOlN0cmluZyhlKSxlcnJvcjplfSk7aWYoIXdpbmRvdy5kaXNwYXRjaEV2ZW50KG4pKXJldHVybn1lbHNlIGlmKFwib2JqZWN0XCI9PXR5cGVvZiBwcm9jZXNzJiZcImZ1bmN0aW9uXCI9PXR5cGVvZiBwcm9jZXNzLmVtaXQpcmV0dXJuIHZvaWQgcHJvY2Vzcy5lbWl0KFwidW5jYXVnaHRFeGNlcHRpb25cIixlKTtjb25zb2xlLmVycm9yKGUpfTtuLkNoaWxkcmVuPXttYXA6Xyxmb3JFYWNoOmZ1bmN0aW9uKGUsbix0KXtfKGUsZnVuY3Rpb24oKXtuLmFwcGx5KHRoaXMsYXJndW1lbnRzKX0sdCl9LGNvdW50OmZ1bmN0aW9uKGUpe3ZhciBuPTA7cmV0dXJuIF8oZSxmdW5jdGlvbigpe24rK30pLG59LHRvQXJyYXk6ZnVuY3Rpb24oZSl7cmV0dXJuIF8oZSxmdW5jdGlvbihlKXtyZXR1cm4gZX0pfHxbXX0sb25seTpmdW5jdGlvbihlKXtpZighQyhlKSl0aHJvdyBFcnJvcihcIlJlYWN0LkNoaWxkcmVuLm9ubHkgZXhwZWN0ZWQgdG8gcmVjZWl2ZSBhIHNpbmdsZSBSZWFjdCBlbGVtZW50IGNoaWxkLlwiKTtyZXR1cm4gZX19LG4uQ29tcG9uZW50PXYsbi5GcmFnbWVudD1vLG4uUHJvZmlsZXI9aSxuLlB1cmVDb21wb25lbnQ9eSxuLlN0cmljdE1vZGU9YSxuLlN1c3BlbnNlPXUsbi5fX0NMSUVOVF9JTlRFUk5BTFNfRE9fTk9UX1VTRV9PUl9XQVJOX1VTRVJTX1RIRVlfQ0FOTk9UX1VQR1JBREU9ayxuLl9fQ09NUElMRVJfUlVOVElNRT17X19wcm90b19fOm51bGwsYzpmdW5jdGlvbihlKXtyZXR1cm4gay5ILnVzZU1lbW9DYWNoZShlKX19LG4uY2FjaGU9ZnVuY3Rpb24oZSl7cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIGUuYXBwbHkobnVsbCxhcmd1bWVudHMpfX0sbi5jYWNoZVNpZ25hbD1mdW5jdGlvbigpe3JldHVybiBudWxsfSxuLmNsb25lRWxlbWVudD1mdW5jdGlvbihlLG4sdCl7aWYobnVsbD09ZSl0aHJvdyBFcnJvcihcIlRoZSBhcmd1bWVudCBtdXN0IGJlIGEgUmVhY3QgZWxlbWVudCwgYnV0IHlvdSBwYXNzZWQgXCIrZStcIi5cIik7dmFyIHI9Zyh7fSxlLnByb3BzKSxvPWUua2V5LGE9dm9pZCAwO2lmKG51bGwhPW4pZm9yKGkgaW4gdm9pZCAwIT09bi5yZWYmJihhPXZvaWQgMCksdm9pZCAwIT09bi5rZXkmJihvPVwiXCIrbi5rZXkpLG4pQS5jYWxsKG4saSkmJlwia2V5XCIhPT1pJiZcIl9fc2VsZlwiIT09aSYmXCJfX3NvdXJjZVwiIT09aSYmKFwicmVmXCIhPT1pfHx2b2lkIDAhPT1uLnJlZikmJihyW2ldPW5baV0pO3ZhciBpPWFyZ3VtZW50cy5sZW5ndGgtMjtpZigxPT09aSlyLmNoaWxkcmVuPXQ7ZWxzZSBpZigxPGkpe2Zvcih2YXIgbD1BcnJheShpKSxzPTA7czxpO3MrKylsW3NdPWFyZ3VtZW50c1tzKzJdO3IuY2hpbGRyZW49bH1yZXR1cm4gTyhlLnR5cGUsbyx2b2lkIDAsdm9pZCAwLGEscil9LG4uY3JlYXRlQ29udGV4dD1mdW5jdGlvbihlKXtyZXR1cm4oZT17JCR0eXBlb2Y6cyxfY3VycmVudFZhbHVlOmUsX2N1cnJlbnRWYWx1ZTI6ZSxfdGhyZWFkQ291bnQ6MCxQcm92aWRlcjpudWxsLENvbnN1bWVyOm51bGx9KS5Qcm92aWRlcj1lLGUuQ29uc3VtZXI9eyQkdHlwZW9mOmwsX2NvbnRleHQ6ZX0sZX0sbi5jcmVhdGVFbGVtZW50PWZ1bmN0aW9uKGUsbix0KXt2YXIgcixvPXt9LGE9bnVsbDtpZihudWxsIT1uKWZvcihyIGluIHZvaWQgMCE9PW4ua2V5JiYoYT1cIlwiK24ua2V5KSxuKUEuY2FsbChuLHIpJiZcImtleVwiIT09ciYmXCJfX3NlbGZcIiE9PXImJlwiX19zb3VyY2VcIiE9PXImJihvW3JdPW5bcl0pO3ZhciBpPWFyZ3VtZW50cy5sZW5ndGgtMjtpZigxPT09aSlvLmNoaWxkcmVuPXQ7ZWxzZSBpZigxPGkpe2Zvcih2YXIgbD1BcnJheShpKSxzPTA7czxpO3MrKylsW3NdPWFyZ3VtZW50c1tzKzJdO28uY2hpbGRyZW49bH1pZihlJiZlLmRlZmF1bHRQcm9wcylmb3IociBpbiBpPWUuZGVmYXVsdFByb3BzKXZvaWQgMD09PW9bcl0mJihvW3JdPWlbcl0pO3JldHVybiBPKGUsYSx2b2lkIDAsdm9pZCAwLG51bGwsbyl9LG4uY3JlYXRlUmVmPWZ1bmN0aW9uKCl7cmV0dXJue2N1cnJlbnQ6bnVsbH19LG4uZm9yd2FyZFJlZj1mdW5jdGlvbihlKXtyZXR1cm57JCR0eXBlb2Y6YyxyZW5kZXI6ZX19LG4uaXNWYWxpZEVsZW1lbnQ9QyxuLmxhenk9ZnVuY3Rpb24oZSl7cmV0dXJueyQkdHlwZW9mOmYsX3BheWxvYWQ6e19zdGF0dXM6LTEsX3Jlc3VsdDplfSxfaW5pdDpQfX0sbi5tZW1vPWZ1bmN0aW9uKGUsbil7cmV0dXJueyQkdHlwZW9mOmQsdHlwZTplLGNvbXBhcmU6dm9pZCAwPT09bj9udWxsOm59fSxuLnN0YXJ0VHJhbnNpdGlvbj1mdW5jdGlvbihlKXt2YXIgbj1rLlQsdD17fTtrLlQ9dDt0cnl7dmFyIHI9ZSgpLG89ay5TO251bGwhPT1vJiZvKHQsciksXCJvYmplY3RcIj09dHlwZW9mIHImJm51bGwhPT1yJiZcImZ1bmN0aW9uXCI9PXR5cGVvZiByLnRoZW4mJnIudGhlbihqLHopfWNhdGNoKGUpe3ooZSl9ZmluYWxseXtudWxsIT09biYmbnVsbCE9PXQudHlwZXMmJihuLnR5cGVzPXQudHlwZXMpLGsuVD1ufX0sbi51bnN0YWJsZV91c2VDYWNoZVJlZnJlc2g9ZnVuY3Rpb24oKXtyZXR1cm4gay5ILnVzZUNhY2hlUmVmcmVzaCgpfSxuLnVzZT1mdW5jdGlvbihlKXtyZXR1cm4gay5ILnVzZShlKX0sbi51c2VBY3Rpb25TdGF0ZT1mdW5jdGlvbihlLG4sdCl7cmV0dXJuIGsuSC51c2VBY3Rpb25TdGF0ZShlLG4sdCl9LG4udXNlQ2FsbGJhY2s9ZnVuY3Rpb24oZSxuKXtyZXR1cm4gay5ILnVzZUNhbGxiYWNrKGUsbil9LG4udXNlQ29udGV4dD1mdW5jdGlvbihlKXtyZXR1cm4gay5ILnVzZUNvbnRleHQoZSl9LG4udXNlRGVidWdWYWx1ZT1mdW5jdGlvbigpe30sbi51c2VEZWZlcnJlZFZhbHVlPWZ1bmN0aW9uKGUsbil7cmV0dXJuIGsuSC51c2VEZWZlcnJlZFZhbHVlKGUsbil9LG4udXNlRWZmZWN0PWZ1bmN0aW9uKGUsbil7cmV0dXJuIGsuSC51c2VFZmZlY3QoZSxuKX0sbi51c2VJZD1mdW5jdGlvbigpe3JldHVybiBrLkgudXNlSWQoKX0sbi51c2VJbXBlcmF0aXZlSGFuZGxlPWZ1bmN0aW9uKGUsbix0KXtyZXR1cm4gay5ILnVzZUltcGVyYXRpdmVIYW5kbGUoZSxuLHQpfSxuLnVzZUluc2VydGlvbkVmZmVjdD1mdW5jdGlvbihlLG4pe3JldHVybiBrLkgudXNlSW5zZXJ0aW9uRWZmZWN0KGUsbil9LG4udXNlTGF5b3V0RWZmZWN0PWZ1bmN0aW9uKGUsbil7cmV0dXJuIGsuSC51c2VMYXlvdXRFZmZlY3QoZSxuKX0sbi51c2VNZW1vPWZ1bmN0aW9uKGUsbil7cmV0dXJuIGsuSC51c2VNZW1vKGUsbil9LG4udXNlT3B0aW1pc3RpYz1mdW5jdGlvbihlLG4pe3JldHVybiBrLkgudXNlT3B0aW1pc3RpYyhlLG4pfSxuLnVzZVJlZHVjZXI9ZnVuY3Rpb24oZSxuLHQpe3JldHVybiBrLkgudXNlUmVkdWNlcihlLG4sdCl9LG4udXNlUmVmPWZ1bmN0aW9uKGUpe3JldHVybiBrLkgudXNlUmVmKGUpfSxuLnVzZVN0YXRlPWZ1bmN0aW9uKGUpe3JldHVybiBrLkgudXNlU3RhdGUoZSl9LG4udXNlU3luY0V4dGVybmFsU3RvcmU9ZnVuY3Rpb24oZSxuLHQpe3JldHVybiBrLkgudXNlU3luY0V4dGVybmFsU3RvcmUoZSxuLHQpfSxuLnVzZVRyYW5zaXRpb249ZnVuY3Rpb24oKXtyZXR1cm4gay5ILnVzZVRyYW5zaXRpb24oKX0sbi52ZXJzaW9uPVwiMTkuMi4wLWNhbmFyeS05N2NkZDVkMy0yMDI1MDcxMFwifSxcIi4vZGlzdC9jb21waWxlZC9yZWFjdC9pbmRleC5qc1wiOmZ1bmN0aW9uKGUsbix0KXtcInVzZSBzdHJpY3RcIjtlLmV4cG9ydHM9dChcIi4vZGlzdC9jb21waWxlZC9yZWFjdC9janMvcmVhY3QucHJvZHVjdGlvbi5qc1wiKX0sXCIuL2Rpc3QvY29tcGlsZWQvcmVhY3QvanN4LXJ1bnRpbWUuanNcIjpmdW5jdGlvbihlLG4sdCl7XCJ1c2Ugc3RyaWN0XCI7ZS5leHBvcnRzPXQoXCIuL2Rpc3QvY29tcGlsZWQvcmVhY3QvY2pzL3JlYWN0LWpzeC1ydW50aW1lLnByb2R1Y3Rpb24uanNcIil9LFwiLi9kaXN0L2NvbXBpbGVkL3NjaGVkdWxlci9janMvc2NoZWR1bGVyLnByb2R1Y3Rpb24uanNcIjpmdW5jdGlvbihlLG4pe1widXNlIHN0cmljdFwiO2Z1bmN0aW9uIHQoZSxuKXt2YXIgdD1lLmxlbmd0aDtmb3IoZS5wdXNoKG4pOzA8dDspe3ZhciByPXQtMT4+PjEsbz1lW3JdO2lmKDA8YShvLG4pKWVbcl09bixlW3RdPW8sdD1yO2Vsc2UgYnJlYWt9fWZ1bmN0aW9uIHIoZSl7cmV0dXJuIDA9PT1lLmxlbmd0aD9udWxsOmVbMF19ZnVuY3Rpb24gbyhlKXtpZigwPT09ZS5sZW5ndGgpcmV0dXJuIG51bGw7dmFyIG49ZVswXSx0PWUucG9wKCk7aWYodCE9PW4pe2VbMF09dDtmb3IodmFyIHI9MCxvPWUubGVuZ3RoLGk9bz4+PjE7cjxpOyl7dmFyIGw9MioocisxKS0xLHM9ZVtsXSxjPWwrMSx1PWVbY107aWYoMD5hKHMsdCkpYzxvJiYwPmEodSxzKT8oZVtyXT11LGVbY109dCxyPWMpOihlW3JdPXMsZVtsXT10LHI9bCk7ZWxzZSBpZihjPG8mJjA+YSh1LHQpKWVbcl09dSxlW2NdPXQscj1jO2Vsc2UgYnJlYWt9fXJldHVybiBufWZ1bmN0aW9uIGEoZSxuKXt2YXIgdD1lLnNvcnRJbmRleC1uLnNvcnRJbmRleDtyZXR1cm4gMCE9PXQ/dDplLmlkLW4uaWR9aWYobi51bnN0YWJsZV9ub3c9dm9pZCAwLFwib2JqZWN0XCI9PXR5cGVvZiBwZXJmb3JtYW5jZSYmXCJmdW5jdGlvblwiPT10eXBlb2YgcGVyZm9ybWFuY2Uubm93KXt2YXIgaSxsPXBlcmZvcm1hbmNlO24udW5zdGFibGVfbm93PWZ1bmN0aW9uKCl7cmV0dXJuIGwubm93KCl9fWVsc2V7dmFyIHM9RGF0ZSxjPXMubm93KCk7bi51bnN0YWJsZV9ub3c9ZnVuY3Rpb24oKXtyZXR1cm4gcy5ub3coKS1jfX12YXIgdT1bXSxkPVtdLGY9MSxwPW51bGwsaD0zLGc9ITEsbT0hMSx2PSExLGI9ITEseT1cImZ1bmN0aW9uXCI9PXR5cGVvZiBzZXRUaW1lb3V0P3NldFRpbWVvdXQ6bnVsbCx4PVwiZnVuY3Rpb25cIj09dHlwZW9mIGNsZWFyVGltZW91dD9jbGVhclRpbWVvdXQ6bnVsbCx3PVwidW5kZWZpbmVkXCIhPXR5cGVvZiBzZXRJbW1lZGlhdGU/c2V0SW1tZWRpYXRlOm51bGw7ZnVuY3Rpb24gaihlKXtmb3IodmFyIG49cihkKTtudWxsIT09bjspe2lmKG51bGw9PT1uLmNhbGxiYWNrKW8oZCk7ZWxzZSBpZihuLnN0YXJ0VGltZTw9ZSlvKGQpLG4uc29ydEluZGV4PW4uZXhwaXJhdGlvblRpbWUsdCh1LG4pO2Vsc2UgYnJlYWs7bj1yKGQpfX1mdW5jdGlvbiBrKGUpe2lmKHY9ITEsaihlKSwhbSlpZihudWxsIT09cih1KSltPSEwLEF8fChBPSEwLGkoKSk7ZWxzZXt2YXIgbj1yKGQpO251bGwhPT1uJiZMKGssbi5zdGFydFRpbWUtZSl9fXZhciBBPSExLE89LTEsQz01LFM9LTE7ZnVuY3Rpb24gRSgpe3JldHVybiEhYnx8IShuLnVuc3RhYmxlX25vdygpLVM8Qyl9ZnVuY3Rpb24gXygpe2lmKGI9ITEsQSl7dmFyIGU9bi51bnN0YWJsZV9ub3coKTtTPWU7dmFyIHQ9ITA7dHJ5e2U6e209ITEsdiYmKHY9ITEseChPKSxPPS0xKSxnPSEwO3ZhciBhPWg7dHJ5e246e2ZvcihqKGUpLHA9cih1KTtudWxsIT09cCYmIShwLmV4cGlyYXRpb25UaW1lPmUmJkUoKSk7KXt2YXIgbD1wLmNhbGxiYWNrO2lmKFwiZnVuY3Rpb25cIj09dHlwZW9mIGwpe3AuY2FsbGJhY2s9bnVsbCxoPXAucHJpb3JpdHlMZXZlbDt2YXIgcz1sKHAuZXhwaXJhdGlvblRpbWU8PWUpO2lmKGU9bi51bnN0YWJsZV9ub3coKSxcImZ1bmN0aW9uXCI9PXR5cGVvZiBzKXtwLmNhbGxiYWNrPXMsaihlKSx0PSEwO2JyZWFrIG59cD09PXIodSkmJm8odSksaihlKX1lbHNlIG8odSk7cD1yKHUpfWlmKG51bGwhPT1wKXQ9ITA7ZWxzZXt2YXIgYz1yKGQpO251bGwhPT1jJiZMKGssYy5zdGFydFRpbWUtZSksdD0hMX19YnJlYWsgZX1maW5hbGx5e3A9bnVsbCxoPWEsZz0hMX19fWZpbmFsbHl7dD9pKCk6QT0hMX19fWlmKFwiZnVuY3Rpb25cIj09dHlwZW9mIHcpaT1mdW5jdGlvbigpe3coXyl9O2Vsc2UgaWYoXCJ1bmRlZmluZWRcIiE9dHlwZW9mIE1lc3NhZ2VDaGFubmVsKXt2YXIgUD1uZXcgTWVzc2FnZUNoYW5uZWwsej1QLnBvcnQyO1AucG9ydDEub25tZXNzYWdlPV8saT1mdW5jdGlvbigpe3oucG9zdE1lc3NhZ2UobnVsbCl9fWVsc2UgaT1mdW5jdGlvbigpe3koXywwKX07ZnVuY3Rpb24gTChlLHQpe089eShmdW5jdGlvbigpe2Uobi51bnN0YWJsZV9ub3coKSl9LHQpfW4udW5zdGFibGVfSWRsZVByaW9yaXR5PTUsbi51bnN0YWJsZV9JbW1lZGlhdGVQcmlvcml0eT0xLG4udW5zdGFibGVfTG93UHJpb3JpdHk9NCxuLnVuc3RhYmxlX05vcm1hbFByaW9yaXR5PTMsbi51bnN0YWJsZV9Qcm9maWxpbmc9bnVsbCxuLnVuc3RhYmxlX1VzZXJCbG9ja2luZ1ByaW9yaXR5PTIsbi51bnN0YWJsZV9jYW5jZWxDYWxsYmFjaz1mdW5jdGlvbihlKXtlLmNhbGxiYWNrPW51bGx9LG4udW5zdGFibGVfZm9yY2VGcmFtZVJhdGU9ZnVuY3Rpb24oZSl7MD5lfHwxMjU8ZT9jb25zb2xlLmVycm9yKFwiZm9yY2VGcmFtZVJhdGUgdGFrZXMgYSBwb3NpdGl2ZSBpbnQgYmV0d2VlbiAwIGFuZCAxMjUsIGZvcmNpbmcgZnJhbWUgcmF0ZXMgaGlnaGVyIHRoYW4gMTI1IGZwcyBpcyBub3Qgc3VwcG9ydGVkXCIpOkM9MDxlP01hdGguZmxvb3IoMWUzL2UpOjV9LG4udW5zdGFibGVfZ2V0Q3VycmVudFByaW9yaXR5TGV2ZWw9ZnVuY3Rpb24oKXtyZXR1cm4gaH0sbi51bnN0YWJsZV9uZXh0PWZ1bmN0aW9uKGUpe3N3aXRjaChoKXtjYXNlIDE6Y2FzZSAyOmNhc2UgMzp2YXIgbj0zO2JyZWFrO2RlZmF1bHQ6bj1ofXZhciB0PWg7aD1uO3RyeXtyZXR1cm4gZSgpfWZpbmFsbHl7aD10fX0sbi51bnN0YWJsZV9yZXF1ZXN0UGFpbnQ9ZnVuY3Rpb24oKXtiPSEwfSxuLnVuc3RhYmxlX3J1bldpdGhQcmlvcml0eT1mdW5jdGlvbihlLG4pe3N3aXRjaChlKXtjYXNlIDE6Y2FzZSAyOmNhc2UgMzpjYXNlIDQ6Y2FzZSA1OmJyZWFrO2RlZmF1bHQ6ZT0zfXZhciB0PWg7aD1lO3RyeXtyZXR1cm4gbigpfWZpbmFsbHl7aD10fX0sbi51bnN0YWJsZV9zY2hlZHVsZUNhbGxiYWNrPWZ1bmN0aW9uKGUsbyxhKXt2YXIgbD1uLnVuc3RhYmxlX25vdygpO3N3aXRjaChhPVwib2JqZWN0XCI9PXR5cGVvZiBhJiZudWxsIT09YSYmXCJudW1iZXJcIj09dHlwZW9mKGE9YS5kZWxheSkmJjA8YT9sK2E6bCxlKXtjYXNlIDE6dmFyIHM9LTE7YnJlYWs7Y2FzZSAyOnM9MjUwO2JyZWFrO2Nhc2UgNTpzPTB4M2ZmZmZmZmY7YnJlYWs7Y2FzZSA0OnM9MWU0O2JyZWFrO2RlZmF1bHQ6cz01ZTN9cmV0dXJuIHM9YStzLGU9e2lkOmYrKyxjYWxsYmFjazpvLHByaW9yaXR5TGV2ZWw6ZSxzdGFydFRpbWU6YSxleHBpcmF0aW9uVGltZTpzLHNvcnRJbmRleDotMX0sYT5sPyhlLnNvcnRJbmRleD1hLHQoZCxlKSxudWxsPT09cih1KSYmZT09PXIoZCkmJih2Pyh4KE8pLE89LTEpOnY9ITAsTChrLGEtbCkpKTooZS5zb3J0SW5kZXg9cyx0KHUsZSksbXx8Z3x8KG09ITAsQXx8KEE9ITAsaSgpKSkpLGV9LG4udW5zdGFibGVfc2hvdWxkWWllbGQ9RSxuLnVuc3RhYmxlX3dyYXBDYWxsYmFjaz1mdW5jdGlvbihlKXt2YXIgbj1oO3JldHVybiBmdW5jdGlvbigpe3ZhciB0PWg7aD1uO3RyeXtyZXR1cm4gZS5hcHBseSh0aGlzLGFyZ3VtZW50cyl9ZmluYWxseXtoPXR9fX19LFwiLi9kaXN0L2NvbXBpbGVkL3NjaGVkdWxlci9pbmRleC5qc1wiOmZ1bmN0aW9uKGUsbix0KXtcInVzZSBzdHJpY3RcIjtlLmV4cG9ydHM9dChcIi4vZGlzdC9jb21waWxlZC9zY2hlZHVsZXIvY2pzL3NjaGVkdWxlci5wcm9kdWN0aW9uLmpzXCIpfSxcIi4vZGlzdC9jb21waWxlZC9zdGFja3RyYWNlLXBhcnNlci9zdGFjay10cmFjZS1wYXJzZXIuY2pzLmpzXCI6ZnVuY3Rpb24oZSl7KCgpPT57XCJ1c2Ugc3RyaWN0XCI7XCJ1bmRlZmluZWRcIiE9dHlwZW9mIF9fbmNjd3Bja19yZXF1aXJlX18mJihfX25jY3dwY2tfcmVxdWlyZV9fLmFiPVwiLy9cIik7dmFyIG4sdCxyLG8sYSxpLGwscyxjPXt9O09iamVjdC5kZWZpbmVQcm9wZXJ0eShjLFwiX19lc01vZHVsZVwiLHt2YWx1ZTohMH0pLG49XCI8dW5rbm93bj5cIix0PS9eXFxzKmF0ICguKj8pID9cXCgoKD86ZmlsZXxodHRwcz98YmxvYnxjaHJvbWUtZXh0ZW5zaW9ufG5hdGl2ZXxldmFsfHdlYnBhY2t8d2VicGFjay1pbnRlcm5hbHxyc2N8dHVyYm9wYWNrfDxhbm9ueW1vdXM+fFxcL3xbYS16XTpcXFxcfFxcXFxcXFxcKS4qPykoPzo6KFxcZCspKT8oPzo6KFxcZCspKT9cXCk/XFxzKiQvaSxyPS9cXCgoXFxTKikoPzo6KFxcZCspKSg/OjooXFxkKykpXFwpLyxvPS9eXFxzKmF0ICg/OigoPzpcXFtvYmplY3Qgb2JqZWN0XFxdKT8uKykgKT9cXCg/KCg/OmZpbGV8bXMtYXBweHxodHRwcz98d2VicGFja3x3ZWJwYWNrLWludGVybmFsfHJzY3x0dXJib3BhY2t8YmxvYik6Lio/KTooXFxkKykoPzo6KFxcZCspKT9cXCk/XFxzKiQvaSxhPS9eXFxzKiguKj8pKD86XFwoKC4qPylcXCkpPyg/Ol58QCkoKD86ZmlsZXxodHRwcz98YmxvYnxjaHJvbWV8d2VicGFja3x3ZWJwYWNrLWludGVybmFsfHJzY3x0dXJib3BhY2t8cmVzb3VyY2V8XFxbbmF0aXZlKS4qP3xbXkBdKmJ1bmRsZSkoPzo6KFxcZCspKT8oPzo6KFxcZCspKT9cXHMqJC9pLGk9LyhcXFMrKSBsaW5lIChcXGQrKSg/OiA+IGV2YWwgbGluZSBcXGQrKSogPiBldmFsL2ksbD0vXlxccyooPzooW15AXSopKD86XFwoKC4qPylcXCkpP0ApPyhcXFMuKj8pOihcXGQrKSg/OjooXFxkKykpP1xccyokL2kscz0vXlxccyphdCAoPzooKD86XFxbb2JqZWN0IG9iamVjdFxcXSk/W15cXFxcL10rKD86IFxcW2FzIFxcUytcXF0pPykgKT9cXCg/KC4qPyk6KFxcZCspKD86OihcXGQrKSk/XFwpP1xccyokL2ksYy5wYXJzZT1mdW5jdGlvbihlKXtyZXR1cm4gZS5zcGxpdChcIlxcblwiKS5yZWR1Y2UoZnVuY3Rpb24oZSxjKXt2YXIgdSxkLGYscCxoLGcsbT1mdW5jdGlvbihlKXt2YXIgbz10LmV4ZWMoZSk7aWYoIW8pcmV0dXJuIG51bGw7dmFyIGE9b1syXSYmMD09PW9bMl0uaW5kZXhPZihcIm5hdGl2ZVwiKSxpPW9bMl0mJjA9PT1vWzJdLmluZGV4T2YoXCJldmFsXCIpLGw9ci5leGVjKG9bMl0pO3JldHVybiBpJiZudWxsIT1sJiYob1syXT1sWzFdLG9bM109bFsyXSxvWzRdPWxbM10pLHtmaWxlOmE/bnVsbDpvWzJdLG1ldGhvZE5hbWU6b1sxXXx8bixhcmd1bWVudHM6YT9bb1syXV06W10sbGluZU51bWJlcjpvWzNdPytvWzNdOm51bGwsY29sdW1uOm9bNF0/K29bNF06bnVsbH19KGMpfHwodT1jLChkPW8uZXhlYyh1KSk/e2ZpbGU6ZFsyXSxtZXRob2ROYW1lOmRbMV18fG4sYXJndW1lbnRzOltdLGxpbmVOdW1iZXI6K2RbM10sY29sdW1uOmRbNF0/K2RbNF06bnVsbH06bnVsbCl8fGZ1bmN0aW9uKGUpe3ZhciB0PWEuZXhlYyhlKTtpZighdClyZXR1cm4gbnVsbDt2YXIgcj10WzNdJiZ0WzNdLmluZGV4T2YoXCIgPiBldmFsXCIpPi0xLG89aS5leGVjKHRbM10pO3JldHVybiByJiZudWxsIT1vJiYodFszXT1vWzFdLHRbNF09b1syXSx0WzVdPW51bGwpLHtmaWxlOnRbM10sbWV0aG9kTmFtZTp0WzFdfHxuLGFyZ3VtZW50czp0WzJdP3RbMl0uc3BsaXQoXCIsXCIpOltdLGxpbmVOdW1iZXI6dFs0XT8rdFs0XTpudWxsLGNvbHVtbjp0WzVdPyt0WzVdOm51bGx9fShjKXx8KGY9YywocD1zLmV4ZWMoZikpP3tmaWxlOnBbMl0sbWV0aG9kTmFtZTpwWzFdfHxuLGFyZ3VtZW50czpbXSxsaW5lTnVtYmVyOitwWzNdLGNvbHVtbjpwWzRdPytwWzRdOm51bGx9Om51bGwpfHwoaD1jLChnPWwuZXhlYyhoKSk/e2ZpbGU6Z1szXSxtZXRob2ROYW1lOmdbMV18fG4sYXJndW1lbnRzOltdLGxpbmVOdW1iZXI6K2dbNF0sY29sdW1uOmdbNV0/K2dbNV06bnVsbH06bnVsbCk7cmV0dXJuIG0mJmUucHVzaChtKSxlfSxbXSl9LGUuZXhwb3J0cz1jfSkoKX0sXCIuL2Rpc3QvY29tcGlsZWQvc3RyaXAtYW5zaS9pbmRleC5qc1wiOmZ1bmN0aW9uKGUpeygoKT0+e1widXNlIHN0cmljdFwiO3ZhciBuPXs1MTE6ZT0+e2UuZXhwb3J0cz0oe29ubHlGaXJzdDplPSExfT17fSk9PlJlZ0V4cChcIltcXFxcdTAwMUJcXFxcdTAwOUJdW1tcXFxcXSgpIzs/XSooPzooPzooPzooPzo7Wy1hLXpBLVpcXFxcZFxcXFwvIyYuOj0/JUB+X10rKSp8W2EtekEtWlxcXFxkXSsoPzo7Wy1hLXpBLVpcXFxcZFxcXFwvIyYuOj0/JUB+X10qKSopP1xcXFx1MDAwNyl8KD86KD86XFxcXGR7MSw0fSg/OjtcXFxcZHswLDR9KSopP1tcXFxcZEEtUFItVFpjZi1udHFyeT0+PH5dKSlcIixlP3ZvaWQgMDpcImdcIil9LDUzMjooZSxuLHQpPT57bGV0IHI9dCg1MTEpO2UuZXhwb3J0cz1lPT5cInN0cmluZ1wiPT10eXBlb2YgZT9lLnJlcGxhY2UocigpLFwiXCIpOmV9fSx0PXt9O2Z1bmN0aW9uIHIoZSl7dmFyIG89dFtlXTtpZih2b2lkIDAhPT1vKXJldHVybiBvLmV4cG9ydHM7dmFyIGE9dFtlXT17ZXhwb3J0czp7fX0saT0hMDt0cnl7bltlXShhLGEuZXhwb3J0cyxyKSxpPSExfWZpbmFsbHl7aSYmZGVsZXRlIHRbZV19cmV0dXJuIGEuZXhwb3J0c31yLmFiPVwiLy9cIixlLmV4cG9ydHM9cig1MzIpfSkoKX0sXCIuL3NyYy9idWlsZC93ZWJwYWNrL2xvYWRlcnMvZGV2dG9vbC9kZXZ0b29sLXN0eWxlLWluamVjdC5qc1wiOmZ1bmN0aW9uKGUpe2Z1bmN0aW9uIG4oKXtsZXQgZT13aW5kb3cuX25leHRqc0RldnRvb2xzU3R5bGVDYWNoZTtpZihlLmNhY2hlZFNoYWRvd1Jvb3QpcmV0dXJuIGUuY2FjaGVkU2hhZG93Um9vdDtsZXQgbj1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKFwibmV4dGpzLXBvcnRhbFwiKSx0PW4/LnNoYWRvd1Jvb3R8fG51bGw7cmV0dXJuIHQmJihlLmNhY2hlZFNoYWRvd1Jvb3Q9dCksdH1mdW5jdGlvbiB0KGUsbil7bGV0IHQ9d2luZG93Ll9uZXh0anNEZXZ0b29sc1N0eWxlQ2FjaGU7dC5sYXN0SW5zZXJ0ZWRFbGVtZW50P3QubGFzdEluc2VydGVkRWxlbWVudC5uZXh0U2libGluZz9uLmluc2VydEJlZm9yZShlLHQubGFzdEluc2VydGVkRWxlbWVudC5uZXh0U2libGluZyk6bi5hcHBlbmRDaGlsZChlKTpuLmluc2VydEJlZm9yZShlLG4uZmlyc3RDaGlsZCksdC5sYXN0SW5zZXJ0ZWRFbGVtZW50PWV9ZnVuY3Rpb24gcigpe2xldCBlPXdpbmRvdy5fbmV4dGpzRGV2dG9vbHNTdHlsZUNhY2hlLHI9bigpO3ImJihlLnBlbmRpbmdFbGVtZW50cy5mb3JFYWNoKGU9Pnt0KGUscil9KSxlLnBlbmRpbmdFbGVtZW50cz1bXSl9XCJ1bmRlZmluZWRcIiE9dHlwZW9mIHdpbmRvdyYmKHdpbmRvdy5fbmV4dGpzRGV2dG9vbHNTdHlsZUNhY2hlPXdpbmRvdy5fbmV4dGpzRGV2dG9vbHNTdHlsZUNhY2hlfHx7cGVuZGluZ0VsZW1lbnRzOltdLGlzT2JzZXJ2aW5nOiExLGxhc3RJbnNlcnRlZEVsZW1lbnQ6bnVsbCxjYWNoZWRTaGFkb3dSb290Om51bGx9KSxlLmV4cG9ydHM9ZnVuY3Rpb24oZSl7ZS5zZXRBdHRyaWJ1dGUoXCJkYXRhLW5leHRqcy1kZXYtdG9vbC1zdHlsZVwiLFwidHJ1ZVwiKTtsZXQgbz1uKCk7bz90KGUsbyk6KHdpbmRvdy5fbmV4dGpzRGV2dG9vbHNTdHlsZUNhY2hlLnBlbmRpbmdFbGVtZW50cy5wdXNoKGUpLGZ1bmN0aW9uKCl7bGV0IGU9d2luZG93Ll9uZXh0anNEZXZ0b29sc1N0eWxlQ2FjaGU7aWYoZS5pc09ic2VydmluZylyZXR1cm47aWYoZS5pc09ic2VydmluZz0hMCxuKCkpcmV0dXJuIHIoKTtsZXQgdD1uZXcgTXV0YXRpb25PYnNlcnZlcihvPT57aWYoMD09PW8ubGVuZ3RofHwwPT09b1swXS5hZGRlZE5vZGVzLmxlbmd0aClyZXR1cm47bGV0IGE9b1swXS5hZGRlZE5vZGVzWzBdLGk9bnVsbDtpZihcIlNDUklQVFwiPT09YS50YWdOYW1lJiZhLmdldEF0dHJpYnV0ZShcImRhdGEtbmV4dGpzLWRldi1vdmVybGF5XCIpP2k9YS5maXJzdENoaWxkOlwiTkVYVEpTLVBPUlRBTFwiPT09YS50YWdOYW1lJiYoaT1hKSwhaSlyZXR1cm47bGV0IGw9KCk9PntuKCk/KHIoKSx0LmRpc2Nvbm5lY3QoKSxlLmlzT2JzZXJ2aW5nPSExKTpzZXRUaW1lb3V0KGwsMjApfTtsKCl9KTt0Lm9ic2VydmUoZG9jdW1lbnQuYm9keSx7Y2hpbGRMaXN0OiEwLHN1YnRyZWU6ITB9KX0oKSl9fSxcIi4vc3JjL25leHQtZGV2dG9vbHMvZGV2LW92ZXJsYXkvY29tcG9uZW50cy9lcnJvcnMvZGV2LXRvb2xzLWluZGljYXRvci9kZXYtdG9vbHMtaW5mby9kZXYtdG9vbHMtaW5mby50c3hcIjpmdW5jdGlvbihlLG4sdCl7XCJ1c2Ugc3RyaWN0XCI7dC5kKG4se2c6KCk9PnMseDooKT0+bH0pO3ZhciByPXQoXCIuL2Rpc3QvY29tcGlsZWQvcmVhY3QvanN4LXJ1bnRpbWUuanNcIiksbz10KFwiLi9kaXN0L2NvbXBpbGVkL3JlYWN0L2luZGV4LmpzXCIpLGE9dChcIi4vc3JjL25leHQtZGV2dG9vbHMvZGV2LW92ZXJsYXkvY29tcG9uZW50cy9lcnJvcnMvZGV2LXRvb2xzLWluZGljYXRvci91dGlscy50c1wiKSxpPXQoXCIuL3NyYy9uZXh0LWRldnRvb2xzL2Rldi1vdmVybGF5L2hvb2tzL3VzZS1kZWxheWVkLXJlbmRlci50c1wiKTtmdW5jdGlvbiBsKGUpe3ZhciBuLHQsbD1lLnRpdGxlLHM9ZS5jaGlsZHJlbix1PWUubGVhcm5Nb3JlTGluayxkPWUuaXNPcGVuLGY9ZS50cmlnZ2VyUmVmLHA9ZS5jbG9zZSxoPWZ1bmN0aW9uKGUsbil7aWYobnVsbD09ZSlyZXR1cm57fTt2YXIgdCxyLG89ZnVuY3Rpb24oZSxuKXtpZihudWxsPT1lKXJldHVybnt9O3ZhciB0LHIsbz17fSxhPU9iamVjdC5rZXlzKGUpO2ZvcihyPTA7cjxhLmxlbmd0aDtyKyspdD1hW3JdLG4uaW5kZXhPZih0KT49MHx8KG9bdF09ZVt0XSk7cmV0dXJuIG99KGUsbik7aWYoT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyl7dmFyIGE9T2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhlKTtmb3Iocj0wO3I8YS5sZW5ndGg7cisrKXQ9YVtyXSwhKG4uaW5kZXhPZih0KT49MCkmJk9iamVjdC5wcm90b3R5cGUucHJvcGVydHlJc0VudW1lcmFibGUuY2FsbChlLHQpJiYob1t0XT1lW3RdKX1yZXR1cm4gb30oZSxbXCJ0aXRsZVwiLFwiY2hpbGRyZW5cIixcImxlYXJuTW9yZUxpbmtcIixcImlzT3BlblwiLFwidHJpZ2dlclJlZlwiLFwiY2xvc2VcIl0pLGc9KDAsby51c2VSZWYpKG51bGwpLG09KDAsby51c2VSZWYpKG51bGwpLHY9KDAsaS5OKShkLHtlbnRlckRlbGF5OjAsZXhpdERlbGF5OmEuSzd9KSxiPXYubW91bnRlZCx5PXYucmVuZGVyZWQ7cmV0dXJuKCgwLGEuUDUpKGcsZixkLGZ1bmN0aW9uKCl7dmFyIGU7bnVsbD09KGU9bS5jdXJyZW50KXx8ZS5mb2N1cygpfSksKDAsYS5POCkoZyxmLGIscCksYik/KDAsci5qc3gpKFwiZGl2XCIsKG49ZnVuY3Rpb24oZSl7Zm9yKHZhciBuPTE7bjxhcmd1bWVudHMubGVuZ3RoO24rKyl7dmFyIHQ9bnVsbCE9YXJndW1lbnRzW25dP2FyZ3VtZW50c1tuXTp7fSxyPU9iamVjdC5rZXlzKHQpO1wiZnVuY3Rpb25cIj09dHlwZW9mIE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMmJihyPXIuY29uY2F0KE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHModCkuZmlsdGVyKGZ1bmN0aW9uKGUpe3JldHVybiBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHQsZSkuZW51bWVyYWJsZX0pKSksci5mb3JFYWNoKGZ1bmN0aW9uKG4pe3ZhciByO3I9dFtuXSxuIGluIGU/T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsbix7dmFsdWU6cixlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMH0pOmVbbl09cn0pfXJldHVybiBlfSh7dGFiSW5kZXg6LTEscm9sZTpcImRpYWxvZ1wiLHJlZjpnLFwiZGF0YS1pbmZvLXBvcG92ZXJcIjohMH0saCksdD10PXtcImRhdGEtcmVuZGVyZWRcIjp5LGNoaWxkcmVuOigwLHIuanN4cykoXCJkaXZcIix7Y2xhc3NOYW1lOlwiZGV2LXRvb2xzLWluZm8tY29udGFpbmVyXCIsY2hpbGRyZW46WygwLHIuanN4cykoXCJkaXZcIix7Y2xhc3NOYW1lOlwiZGV2LXRvb2xzLWluZm8taGVhZGVyXCIsY2hpbGRyZW46WygwLHIuanN4KShcImJ1dHRvblwiLHtyZWY6bSxjbGFzc05hbWU6XCJkZXYtdG9vbHMtaW5mby1jbG9zZS1idXR0b25cIixvbkNsaWNrOnAsXCJhcmlhLWxhYmVsXCI6XCJDbG9zZSBkaWFsb2dcIixjaGlsZHJlbjooMCxyLmpzeCkoYyx7fSl9KSwoMCxyLmpzeCkoXCJoM1wiLHtjbGFzc05hbWU6XCJkZXYtdG9vbHMtaW5mby10aXRsZVwiLGNoaWxkcmVuOmx9KV19KSwoMCxyLmpzeHMpKFwiZGl2XCIse2NsYXNzTmFtZTpcImRldi10b29scy1pbmZvLWJvZHlcIixjaGlsZHJlbjpbcyx1JiYoMCxyLmpzeCkoXCJkaXZcIix7Y2xhc3NOYW1lOlwiZGV2LXRvb2xzLWluZm8tYnV0dG9uLWNvbnRhaW5lclwiLGNoaWxkcmVuOigwLHIuanN4KShcImFcIix7Y2xhc3NOYW1lOlwiZGV2LXRvb2xzLWluZm8tbGVhcm4tbW9yZS1idXR0b25cIixocmVmOnUsdGFyZ2V0OlwiX2JsYW5rXCIscmVsOlwibm9yZWZlcnJlciBub29wZW5lclwiLGNoaWxkcmVuOlwiTGVhcm4gTW9yZVwifSl9KV19KV19KX0sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcnM/T2JqZWN0LmRlZmluZVByb3BlcnRpZXMobixPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycyh0KSk6KGZ1bmN0aW9uKGUsbil7dmFyIHQ9T2JqZWN0LmtleXMoZSk7aWYoT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyl7dmFyIHI9T2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhlKTt0LnB1c2guYXBwbHkodCxyKX1yZXR1cm4gdH0pKE9iamVjdCh0KSkuZm9yRWFjaChmdW5jdGlvbihlKXtPYmplY3QuZGVmaW5lUHJvcGVydHkobixlLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IodCxlKSl9KSxuKSk6bnVsbH12YXIgcz1cIlxcbiAgW2RhdGEtaW5mby1wb3BvdmVyXSB7XFxuICAgIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkO1xcbiAgICBkaXNwbGF5OiBmbGV4O1xcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xcbiAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcXG4gICAgYmFja2dyb3VuZDogdmFyKC0tY29sb3ItYmFja2dyb3VuZC0xMDApO1xcbiAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1jb2xvci1ncmF5LWFscGhhLTQwMCk7XFxuICAgIGJhY2tncm91bmQtY2xpcDogcGFkZGluZy1ib3g7XFxuICAgIGJveC1zaGFkb3c6IHZhcigtLXNoYWRvdy1tZW51KTtcXG4gICAgYm9yZGVyLXJhZGl1czogdmFyKC0tcm91bmRlZC14bCk7XFxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcXG4gICAgZm9udC1mYW1pbHk6IHZhcigtLWZvbnQtc3RhY2stc2Fucyk7XFxuICAgIHotaW5kZXg6IDM7XFxuICAgIG92ZXJmbG93OiBoaWRkZW47XFxuICAgIG9wYWNpdHk6IDA7XFxuICAgIG91dGxpbmU6IDA7XFxuICAgIG1pbi13aWR0aDogMzUwcHg7XFxuICAgIHRyYW5zaXRpb246IG9wYWNpdHkgdmFyKC0tYW5pbWF0ZS1vdXQtZHVyYXRpb24tbXMpXFxuICAgICAgdmFyKC0tYW5pbWF0ZS1vdXQtdGltaW5nLWZ1bmN0aW9uKTtcXG5cXG4gICAgJltkYXRhLXJlbmRlcmVkPSd0cnVlJ10ge1xcbiAgICAgIG9wYWNpdHk6IDE7XFxuICAgICAgc2NhbGU6IDE7XFxuICAgIH1cXG5cXG4gICAgYnV0dG9uOmZvY3VzLXZpc2libGUge1xcbiAgICAgIG91dGxpbmU6IHZhcigtLWZvY3VzLXJpbmcpO1xcbiAgICB9XFxuICB9XFxuXFxuICAuZGV2LXRvb2xzLWluZm8tY29udGFpbmVyIHtcXG4gICAgd2lkdGg6IDEwMCU7XFxuICB9XFxuXFxuICAuZGV2LXRvb2xzLWluZm8tYm9keSB7XFxuICAgIHBhZGRpbmc6IDE2cHg7XFxuICB9XFxuXFxuICAuZGV2LXRvb2xzLWluZm8taGVhZGVyIHtcXG4gICAgaGVpZ2h0OiA0OHB4O1xcbiAgICBkaXNwbGF5OiBmbGV4O1xcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xcbiAgICBnYXA6IDZweDtcXG4gICAgcGFkZGluZzogNnB4IDhweDtcXG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHZhcigtLWNvbG9yLWdyYXktYWxwaGEtNDAwKTtcXG4gIH1cXG5cXG4gIC5kZXYtdG9vbHMtaW5mby1jbG9zZS1idXR0b24ge1xcbiAgICBhbGw6IHVuc2V0O1xcbiAgICB3aWR0aDogMjBweDtcXG4gICAgaGVpZ2h0OiAyMHB4OyAgICBcXG4gICAgZGlzcGxheTogZmxleDtcXG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcXG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XFxuICAgIGNvbG9yOiB2YXIoLS1jb2xvci1ncmF5LTkwMCk7XFxuICAgIHRyYW5zaXRpb246IGNvbG9yIDE1MG1zIGVhc2U7XFxuICAgIHRyYW5zbGF0ZTogMCAxcHg7XFxuICAgIGJvcmRlci1yYWRpdXM6IDNweDtcXG5cXG4gICAgJjpob3ZlciB7XFxuICAgICAgY29sb3I6IHZhcigtLWNvbG9yLWdyYXktMTAwMCk7XFxuICAgIH1cXG4gIH1cXG5cXG4gIC5kZXYtdG9vbHMtaW5mby10aXRsZSB7XFxuICAgIGNvbG9yOiB2YXIoLS1jb2xvci1ncmF5LTEwMDApO1xcbiAgICBmb250LXNpemU6IHZhcigtLXNpemUtMTQpO1xcbiAgICBmb250LXdlaWdodDogNTAwO1xcbiAgICBsaW5lLWhlaWdodDogdmFyKC0tc2l6ZS0yMCk7XFxuICAgIG1hcmdpbjogMDtcXG4gIH1cXG5cXG4gIC5kZXYtdG9vbHMtaW5mby1zZWN0aW9uLXRpdGxlIHtcXG4gICAgcGFkZGluZzogOHB4IDBweDtcXG4gICAgY29sb3I6IHZhcigtLWNvbG9yLWdyYXktMTAwMCk7XFxuICAgIGZvbnQtc2l6ZTogdmFyKC0tc2l6ZS0xNik7XFxuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XFxuICAgIGxpbmUtaGVpZ2h0OiB2YXIoLS1zaXplLTIwKTtcXG4gICAgbWFyZ2luOiAwO1xcbiAgfVxcblxcbiAgLmRldi10b29scy1pbmZvLWFydGljbGUge1xcbiAgICBwYWRkaW5nOiA4cHggNnB4O1xcbiAgICBjb2xvcjogdmFyKC0tY29sb3ItZ3JheS0xMDAwKTtcXG4gICAgZm9udC1zaXplOiB2YXIoLS1zaXplLTE0KTtcXG4gICAgbGluZS1oZWlnaHQ6IHZhcigtLXNpemUtMjApO1xcbiAgICBtYXJnaW46IDA7XFxuICB9XFxuICAuZGV2LXRvb2xzLWluZm8tcGFyYWdyYXBoIHtcXG4gICAgJjpsYXN0LWNoaWxkIHtcXG4gICAgICBtYXJnaW4tYm90dG9tOiAwO1xcbiAgICB9XFxuICB9XFxuXFxuICAuZGV2LXRvb2xzLWluZm8tYnV0dG9uLWNvbnRhaW5lciB7XFxuICAgIGRpc3BsYXk6IGZsZXg7XFxuICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcXG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcXG4gIH1cXG5cXG4gIC5kZXYtdG9vbHMtaW5mby1sZWFybi1tb3JlLWJ1dHRvbiB7XFxuICAgIGFsaWduLWNvbnRlbnQ6IGNlbnRlcjtcXG4gICAgcGFkZGluZzogMCA4cHg7XFxuICAgIGhlaWdodDogdmFyKC0tc2l6ZS0yOCk7XFxuICAgIGZvbnQtc2l6ZTogdmFyKC0tc2l6ZS0xNCk7XFxuICAgIGZvbnQtd2VpZ2h0OiA1MDA7XFxuICAgIGxpbmUtaGVpZ2h0OiB2YXIoLS1zaXplLTIwKTtcXG4gICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZCB2YXIoLS1kdXJhdGlvbi1zaG9ydCkgZWFzZTtcXG4gICAgY29sb3I6IHZhcigtLWNvbG9yLWJhY2tncm91bmQtMTAwKTtcXG4gICAgYm9yZGVyLXJhZGl1czogdmFyKC0tcm91bmRlZC1tZC0yKTtcXG4gICAgYmFja2dyb3VuZDogdmFyKC0tY29sb3ItZ3JheS0xMDAwKTtcXG4gICAgbWFyZ2luLWxlZnQ6IGF1dG87XFxuICB9XFxuXFxuICAuZGV2LXRvb2xzLWluZm8tbGVhcm4tbW9yZS1idXR0b246aG92ZXIge1xcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XFxuICAgIGNvbG9yOiB2YXIoLS1jb2xvci1iYWNrZ3JvdW5kLTEwMCk7XFxuICAgIG9wYWNpdHk6IDAuOTtcXG4gIH1cXG5cIjtmdW5jdGlvbiBjKCl7cmV0dXJuKDAsci5qc3gpKFwic3ZnXCIse3dpZHRoOlwiMTZcIixoZWlnaHQ6XCIxNlwiLHZpZXdCb3g6XCIwIDAgMTYgMTZcIixmaWxsOlwibm9uZVwiLHhtbG5zOlwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIixjaGlsZHJlbjooMCxyLmpzeCkoXCJwYXRoXCIse2Q6XCJNNS4xNDY0NSA4LjcwNzAzQzQuNzU1OTUgOC4zMTY1MSA0Ljc1NTk1IDcuNjgzNDkgNS4xNDY0NSA3LjI5Mjk3TDEwLjUgMS45Mzk0NUwxMS41NjA1IDNMNi41NjA1MSA4TDExLjU2MDUgMTNMMTAuNSAxNC4wNjA1TDUuMTQ2NDUgOC43MDcwM1pcIixmaWxsOlwiY3VycmVudENvbG9yXCJ9KX0pfX0sXCIuL3NyYy9uZXh0LWRldnRvb2xzL2Rldi1vdmVybGF5L2NvbXBvbmVudHMvZXJyb3JzL2Rldi10b29scy1pbmRpY2F0b3IvZGV2LXRvb2xzLWluZm8vc2VnbWVudHMtZXhwbG9yZXIudHN4XCI6ZnVuY3Rpb24oZSxuLHQpe1widXNlIHN0cmljdFwiO3QuZChuLHtXOigpPT5pfSk7dmFyIHI9dChcIi4vZGlzdC9jb21waWxlZC9yZWFjdC9qc3gtcnVudGltZS5qc1wiKSxvPXQoXCIuL3NyYy9uZXh0LWRldnRvb2xzL2Rldi1vdmVybGF5L2NvbXBvbmVudHMvb3ZlcnZpZXcvc2VnbWVudC1leHBsb3Jlci50c3hcIiksYT10KFwiLi9zcmMvbmV4dC1kZXZ0b29scy9kZXYtb3ZlcmxheS9jb21wb25lbnRzL2Vycm9ycy9kZXYtdG9vbHMtaW5kaWNhdG9yL2Rldi10b29scy1pbmZvL2Rldi10b29scy1pbmZvLnRzeFwiKTtmdW5jdGlvbiBpKGUpe3ZhciBuLHQsaT1lLnJvdXRlclR5cGUsbD1lLnBhZ2Uscz1mdW5jdGlvbihlLG4pe2lmKG51bGw9PWUpcmV0dXJue307dmFyIHQscixvPWZ1bmN0aW9uKGUsbil7aWYobnVsbD09ZSlyZXR1cm57fTt2YXIgdCxyLG89e30sYT1PYmplY3Qua2V5cyhlKTtmb3Iocj0wO3I8YS5sZW5ndGg7cisrKXQ9YVtyXSxuLmluZGV4T2YodCk+PTB8fChvW3RdPWVbdF0pO3JldHVybiBvfShlLG4pO2lmKE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMpe3ZhciBhPU9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMoZSk7Zm9yKHI9MDtyPGEubGVuZ3RoO3IrKyl0PWFbcl0sIShuLmluZGV4T2YodCk+PTApJiZPYmplY3QucHJvdG90eXBlLnByb3BlcnR5SXNFbnVtZXJhYmxlLmNhbGwoZSx0KSYmKG9bdF09ZVt0XSl9cmV0dXJuIG99KGUsW1wicm91dGVyVHlwZVwiLFwicGFnZVwiXSk7cmV0dXJuKDAsci5qc3gpKGEueCwobj1mdW5jdGlvbihlKXtmb3IodmFyIG49MTtuPGFyZ3VtZW50cy5sZW5ndGg7bisrKXt2YXIgdD1udWxsIT1hcmd1bWVudHNbbl0/YXJndW1lbnRzW25dOnt9LHI9T2JqZWN0LmtleXModCk7XCJmdW5jdGlvblwiPT10eXBlb2YgT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyYmKHI9ci5jb25jYXQoT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyh0KS5maWx0ZXIoZnVuY3Rpb24oZSl7cmV0dXJuIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IodCxlKS5lbnVtZXJhYmxlfSkpKSxyLmZvckVhY2goZnVuY3Rpb24obil7dmFyIHI7cj10W25dLG4gaW4gZT9PYmplY3QuZGVmaW5lUHJvcGVydHkoZSxuLHt2YWx1ZTpyLGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwfSk6ZVtuXT1yfSl9cmV0dXJuIGV9KHt0aXRsZTpcIlJvdXRlIEluZm9cIn0scyksdD10PXtjaGlsZHJlbjooMCxyLmpzeCkoXCJkaXZcIix7XCJkYXRhLW5leHRqcy1zZWdtZW50cy1leHBsb3JlclwiOiEwLHN0eWxlOnttYXJnaW46XCItMTZweFwifSxjaGlsZHJlbjooMCxyLmpzeCkoby51LHtpc0FwcFJvdXRlcjpcImFwcFwiPT09aSxwYWdlOmx9KX0pfSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycz9PYmplY3QuZGVmaW5lUHJvcGVydGllcyhuLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzKHQpKTooZnVuY3Rpb24oZSxuKXt2YXIgdD1PYmplY3Qua2V5cyhlKTtpZihPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKXt2YXIgcj1PYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKGUpO3QucHVzaC5hcHBseSh0LHIpfXJldHVybiB0fSkoT2JqZWN0KHQpKS5mb3JFYWNoKGZ1bmN0aW9uKGUpe09iamVjdC5kZWZpbmVQcm9wZXJ0eShuLGUsT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcih0LGUpKX0pLG4pKX19LFwiLi9zcmMvbmV4dC1kZXZ0b29scy9kZXYtb3ZlcmxheS9jb21wb25lbnRzL2Vycm9ycy9kZXYtdG9vbHMtaW5kaWNhdG9yL3V0aWxzLnRzXCI6ZnVuY3Rpb24oZSxuLHQpe1widXNlIHN0cmljdFwiO3QuZChuLHtLNzooKT0+cyxPODooKT0+bCxQNTooKT0+YSx1RDooKT0+Yyx2WTooKT0+aX0pO3ZhciByPXQoXCIuL2Rpc3QvY29tcGlsZWQvcmVhY3QvaW5kZXguanNcIik7ZnVuY3Rpb24gbyhlLG4peyhudWxsPT1ufHxuPmUubGVuZ3RoKSYmKG49ZS5sZW5ndGgpO2Zvcih2YXIgdD0wLHI9QXJyYXkobik7dDxuO3QrKylyW3RdPWVbdF07cmV0dXJuIHJ9ZnVuY3Rpb24gYShlLG4sdCxhKXsoMCxyLnVzZUVmZmVjdCkoZnVuY3Rpb24oKXt2YXIgcj1mdW5jdGlvbihlKXtpZihcIlRhYlwiPT09ZS5rZXkmJm51bGwhPT1sKXt2YXIgbix0LHI9KHQ9KG49bC5xdWVyeVNlbGVjdG9yQWxsKCdidXR0b24sIFtocmVmXSwgaW5wdXQsIHNlbGVjdCwgdGV4dGFyZWEsIFt0YWJpbmRleF06bm90KFt0YWJpbmRleD1cIi0xXCJdKScpKT9bblswXSxuW24ubGVuZ3RoLTFdXTpbXSxmdW5jdGlvbihlKXtpZihBcnJheS5pc0FycmF5KGUpKXJldHVybiBlfSh0KXx8ZnVuY3Rpb24oZSxuKXt2YXIgdCxyLG89bnVsbD09ZT9udWxsOlwidW5kZWZpbmVkXCIhPXR5cGVvZiBTeW1ib2wmJmVbU3ltYm9sLml0ZXJhdG9yXXx8ZVtcIkBAaXRlcmF0b3JcIl07aWYobnVsbCE9byl7dmFyIGE9W10saT0hMCxsPSExO3RyeXtmb3Iobz1vLmNhbGwoZSk7IShpPSh0PW8ubmV4dCgpKS5kb25lKSYmKGEucHVzaCh0LnZhbHVlKSxhLmxlbmd0aCE9PW4pO2k9ITApO31jYXRjaChlKXtsPSEwLHI9ZX1maW5hbGx5e3RyeXtpfHxudWxsPT1vLnJldHVybnx8by5yZXR1cm4oKX1maW5hbGx5e2lmKGwpdGhyb3cgcn19cmV0dXJuIGF9fSh0LDIpfHxmdW5jdGlvbihlLG4pe2lmKGUpe2lmKFwic3RyaW5nXCI9PXR5cGVvZiBlKXJldHVybiBvKGUsMik7dmFyIHQ9T2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKGUpLnNsaWNlKDgsLTEpO2lmKFwiT2JqZWN0XCI9PT10JiZlLmNvbnN0cnVjdG9yJiYodD1lLmNvbnN0cnVjdG9yLm5hbWUpLFwiTWFwXCI9PT10fHxcIlNldFwiPT09dClyZXR1cm4gQXJyYXkuZnJvbSh0KTtpZihcIkFyZ3VtZW50c1wiPT09dHx8L14oPzpVaXxJKW50KD86OHwxNnwzMikoPzpDbGFtcGVkKT9BcnJheSQvLnRlc3QodCkpcmV0dXJuIG8oZSxuKX19KHQsMil8fGZ1bmN0aW9uKCl7dGhyb3cgVHlwZUVycm9yKFwiSW52YWxpZCBhdHRlbXB0IHRvIGRlc3RydWN0dXJlIG5vbi1pdGVyYWJsZSBpbnN0YW5jZS5cXFxcbkluIG9yZGVyIHRvIGJlIGl0ZXJhYmxlLCBub24tYXJyYXkgb2JqZWN0cyBtdXN0IGhhdmUgYSBbU3ltYm9sLml0ZXJhdG9yXSgpIG1ldGhvZC5cIil9KCkpLGE9clswXSxzPXJbMV0sYz1pKGwpO2Uuc2hpZnRLZXk/Yz09PWEmJihudWxsPT1zfHxzLmZvY3VzKCksZS5wcmV2ZW50RGVmYXVsdCgpKTpjPT09cyYmKG51bGw9PWF8fGEuZm9jdXMoKSxlLnByZXZlbnREZWZhdWx0KCkpfX0sbD1udWxsLHM9c2V0VGltZW91dChmdW5jdGlvbigpe2lmKGw9ZS5jdXJyZW50LHQpYT9hKCk6bnVsbD09bHx8bC5mb2N1cygpLG51bGw9PWx8fGwuYWRkRXZlbnRMaXN0ZW5lcihcImtleWRvd25cIixyKTtlbHNle3ZhciBvLHM9aShsKTtuJiYobnVsbD09bD92b2lkIDA6bC5jb250YWlucyhzKSkmJihudWxsPT0obz1uLmN1cnJlbnQpfHxvLmZvY3VzKCkpfX0pO3JldHVybiBmdW5jdGlvbigpe2NsZWFyVGltZW91dChzKSxudWxsPT1sfHxsLnJlbW92ZUV2ZW50TGlzdGVuZXIoXCJrZXlkb3duXCIscil9fSxbdF0pfWZ1bmN0aW9uIGkoZSl7dmFyIG4sdD1udWxsPT1lP3ZvaWQgMDplLmdldFJvb3ROb2RlKCk7cmV0dXJuKG51bGwhPShuPVNoYWRvd1Jvb3QpJiZcInVuZGVmaW5lZFwiIT10eXBlb2YgU3ltYm9sJiZuW1N5bWJvbC5oYXNJbnN0YW5jZV0/ISFuW1N5bWJvbC5oYXNJbnN0YW5jZV0odCk6dCBpbnN0YW5jZW9mIG4pP251bGw9PXQ/dm9pZCAwOnQuYWN0aXZlRWxlbWVudDpudWxsfWZ1bmN0aW9uIGwoZSxuLHQsbyxhKXsoMCxyLnVzZUVmZmVjdCkoZnVuY3Rpb24oKXt2YXIgcixpPWZ1bmN0aW9uKHQpe3ZhciByLGEsaT10LnRhcmdldDshKGUuY3VycmVudCYmZS5jdXJyZW50LmNvbnRhaW5zKGkpKSYmKG51bGwhPShyPWUuY3VycmVudCkmJnIuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkmJnQuY2xpZW50WD49ZS5jdXJyZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLmxlZnQmJnQuY2xpZW50WDw9ZS5jdXJyZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLnJpZ2h0JiZ0LmNsaWVudFk+PWUuY3VycmVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS50b3AmJnQuY2xpZW50WTw9ZS5jdXJyZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLmJvdHRvbXx8bnVsbCE9KGE9bi5jdXJyZW50KSYmYS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSYmdC5jbGllbnRYPj1uLmN1cnJlbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkubGVmdCYmdC5jbGllbnRYPD1uLmN1cnJlbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkucmlnaHQmJnQuY2xpZW50WT49bi5jdXJyZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLnRvcCYmdC5jbGllbnRZPD1uLmN1cnJlbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkuYm90dG9tfHxvKCkpfSxsPWZ1bmN0aW9uKGUpe1wiRXNjYXBlXCI9PT1lLmtleSYmbygpfTtpZih0KXt2YXIgcz1hfHwobnVsbD09KHI9ZS5jdXJyZW50KT92b2lkIDA6ci5vd25lckRvY3VtZW50KTtyZXR1cm4gbnVsbD09c3x8cy5hZGRFdmVudExpc3RlbmVyKFwibW91c2Vkb3duXCIsaSksbnVsbD09c3x8cy5hZGRFdmVudExpc3RlbmVyKFwia2V5ZG93blwiLGwpLGZ1bmN0aW9uKCl7bnVsbD09c3x8cy5yZW1vdmVFdmVudExpc3RlbmVyKFwibW91c2Vkb3duXCIsaSksbnVsbD09c3x8cy5yZW1vdmVFdmVudExpc3RlbmVyKFwia2V5ZG93blwiLGwpfX19LFt0LGUsbl0pfXZhciBzPTIwMCxjPVwiY3ViaWMtYmV6aWVyKDAuMTc1LCAwLjg4NSwgMC4zMiwgMS4xKVwifSxcIi4vc3JjL25leHQtZGV2dG9vbHMvZGV2LW92ZXJsYXkvY29tcG9uZW50cy9vdmVydmlldy9zZWdtZW50LWV4cGxvcmVyLnRzeFwiOmZ1bmN0aW9uKGUsbix0KXtcInVzZSBzdHJpY3RcIjt0LmQobix7dTooKT0+YXR9KTt2YXIgcixvLGEsaSxsPXQoXCIuL2Rpc3QvY29tcGlsZWQvcmVhY3QvanN4LXJ1bnRpbWUuanNcIikscz10KFwiLi4vLi4vbm9kZV9tb2R1bGVzLy5wbnBtL3N0eWxlLWxvYWRlckA0LjAuMF93ZWJwYWNrQDUuOTguMF9Ac3djK2NvcmVAMS4xMS4yNF9Ac3djK2hlbHBlcnNAMC41LjE1X19lc2J1aWxkQDAuMjQuMl8vbm9kZV9tb2R1bGVzL3N0eWxlLWxvYWRlci9kaXN0L3J1bnRpbWUvaW5qZWN0U3R5bGVzSW50b1N0eWxlVGFnLmpzXCIpLGM9dC5uKHMpLHU9dChcIi4uLy4uL25vZGVfbW9kdWxlcy8ucG5wbS9zdHlsZS1sb2FkZXJANC4wLjBfd2VicGFja0A1Ljk4LjBfQHN3Yytjb3JlQDEuMTEuMjRfQHN3YytoZWxwZXJzQDAuNS4xNV9fZXNidWlsZEAwLjI0LjJfL25vZGVfbW9kdWxlcy9zdHlsZS1sb2FkZXIvZGlzdC9ydW50aW1lL3N0eWxlRG9tQVBJLmpzXCIpLGQ9dC5uKHUpLGY9dChcIi4vc3JjL2J1aWxkL3dlYnBhY2svbG9hZGVycy9kZXZ0b29sL2RldnRvb2wtc3R5bGUtaW5qZWN0LmpzXCIpLHA9dC5uKGYpLGg9dChcIi4uLy4uL25vZGVfbW9kdWxlcy8ucG5wbS9zdHlsZS1sb2FkZXJANC4wLjBfd2VicGFja0A1Ljk4LjBfQHN3Yytjb3JlQDEuMTEuMjRfQHN3YytoZWxwZXJzQDAuNS4xNV9fZXNidWlsZEAwLjI0LjJfL25vZGVfbW9kdWxlcy9zdHlsZS1sb2FkZXIvZGlzdC9ydW50aW1lL3NldEF0dHJpYnV0ZXNXaXRob3V0QXR0cmlidXRlcy5qc1wiKSxnPXQubihoKSxtPXQoXCIuLi8uLi9ub2RlX21vZHVsZXMvLnBucG0vc3R5bGUtbG9hZGVyQDQuMC4wX3dlYnBhY2tANS45OC4wX0Bzd2MrY29yZUAxLjExLjI0X0Bzd2MraGVscGVyc0AwLjUuMTVfX2VzYnVpbGRAMC4yNC4yXy9ub2RlX21vZHVsZXMvc3R5bGUtbG9hZGVyL2Rpc3QvcnVudGltZS9pbnNlcnRTdHlsZUVsZW1lbnQuanNcIiksdj10Lm4obSksYj10KFwiLi4vLi4vbm9kZV9tb2R1bGVzLy5wbnBtL3N0eWxlLWxvYWRlckA0LjAuMF93ZWJwYWNrQDUuOTguMF9Ac3djK2NvcmVAMS4xMS4yNF9Ac3djK2hlbHBlcnNAMC41LjE1X19lc2J1aWxkQDAuMjQuMl8vbm9kZV9tb2R1bGVzL3N0eWxlLWxvYWRlci9kaXN0L3J1bnRpbWUvc3R5bGVUYWdUcmFuc2Zvcm0uanNcIikseT10Lm4oYikseD10KFwiLi4vLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2Nzcy1sb2FkZXJANy4xLjJfQHJzcGFjaytjb3JlQDEuNC41X0Bzd2MraGVscGVyc0AwLjUuMTVfX3dlYnBhY2tANS45OC4wX0Bzd2MrY29yZUAxLjExLjI0X0Bzd193bTdlZTVpYzRtb2ZyaGlzdWR3b240cXBxNC9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9kaXN0L2Nqcy5qcyEuL3NyYy9uZXh0LWRldnRvb2xzL2Rldi1vdmVybGF5L2NvbXBvbmVudHMvb3ZlcnZpZXcvc2VnbWVudC1leHBsb3Jlci5jc3NcIiksdz17fTt3LnN0eWxlVGFnVHJhbnNmb3JtPXkoKSx3LnNldEF0dHJpYnV0ZXM9ZygpLHcuaW5zZXJ0PXAoKSx3LmRvbUFQST1kKCksdy5pbnNlcnRTdHlsZUVsZW1lbnQ9digpLGMoKSh4LlosdykseC5aJiZ4LloubG9jYWxzJiZ4LloubG9jYWxzO3ZhciBqPXQoXCIuL3NyYy9uZXh0LWRldnRvb2xzL2Rldi1vdmVybGF5L3NlZ21lbnQtZXhwbG9yZXItdHJpZS50c1wiKSxrPXQoXCIuL3NyYy9uZXh0LWRldnRvb2xzL2Rldi1vdmVybGF5L3V0aWxzL2N4LnRzXCIpLEE9dChcIi4uLy4uL25vZGVfbW9kdWxlcy8ucG5wbS9jc3MtbG9hZGVyQDcuMS4yX0Byc3BhY2srY29yZUAxLjQuNV9Ac3djK2hlbHBlcnNAMC41LjE1X193ZWJwYWNrQDUuOTguMF9Ac3djK2NvcmVAMS4xMS4yNF9Ac3dfd203ZWU1aWM0bW9mcmhpc3Vkd29uNHFwcTQvbm9kZV9tb2R1bGVzL2Nzcy1sb2FkZXIvZGlzdC9janMuanMhLi9zcmMvbmV4dC1kZXZ0b29scy9kZXYtb3ZlcmxheS9jb21wb25lbnRzL292ZXJ2aWV3L3NlZ21lbnQtYm91bmRhcnktdHJpZ2dlci5jc3NcIiksTz17fTtPLnN0eWxlVGFnVHJhbnNmb3JtPXkoKSxPLnNldEF0dHJpYnV0ZXM9ZygpLE8uaW5zZXJ0PXAoKSxPLmRvbUFQST1kKCksTy5pbnNlcnRTdHlsZUVsZW1lbnQ9digpLGMoKShBLlosTyksQS5aJiZBLloubG9jYWxzJiZBLloubG9jYWxzO3ZhciBDPXQoXCIuL2Rpc3QvY29tcGlsZWQvcmVhY3QvaW5kZXguanNcIiksUz10LnQoQywyKSxFPXQoXCIuL2Rpc3QvY29tcGlsZWQvcmVhY3QtZG9tL2luZGV4LmpzXCIpO2xldCBfPXt9O2Z1bmN0aW9uIFAoZSxuKXtsZXQgdD1DLnVzZVJlZihfKTtyZXR1cm4gdC5jdXJyZW50PT09XyYmKHQuY3VycmVudD1lKG4pKSx0fWxldCB6PVNbYHVzZUluc2VydGlvbkVmZmVjdCR7TWF0aC5yYW5kb20oKS50b0ZpeGVkKDEpfWAuc2xpY2UoMCwtMyldLEw9eiYmeiE9PUMudXNlTGF5b3V0RWZmZWN0P3o6ZT0+ZSgpO2Z1bmN0aW9uIFQoZSl7bGV0IG49UChSKS5jdXJyZW50O3JldHVybiBuLm5leHQ9ZSxMKG4uZWZmZWN0KSxuLnRyYW1wb2xpbmV9ZnVuY3Rpb24gUigpe2xldCBlPXtuZXh0OnZvaWQgMCxjYWxsYmFjazpOLHRyYW1wb2xpbmU6KC4uLm4pPT5lLmNhbGxiYWNrPy4oLi4ubiksZWZmZWN0OigpPT57ZS5jYWxsYmFjaz1lLm5leHR9fTtyZXR1cm4gZX1mdW5jdGlvbiBOKCl7fWZ1bmN0aW9uIEQoKXtsZXQgZT1uZXcgTWFwO3JldHVybntlbWl0KG4sdCl7ZS5nZXQobik/LmZvckVhY2goZT0+ZSh0KSl9LG9uKG4sdCl7ZS5oYXMobil8fGUuc2V0KG4sbmV3IFNldCksZS5nZXQobikuYWRkKHQpfSxvZmYobix0KXtlLmdldChuKT8uZGVsZXRlKHQpfX19bGV0IEI9ey4uLlN9LE09MCxJPUIudXNlSWQ7ZnVuY3Rpb24gSChlLG4pe2lmKHZvaWQgMCE9PUkpe2xldCB0PUkoKTtyZXR1cm4gZT8/KG4/YCR7bn0tJHt0fWA6dCl9cmV0dXJuIGZ1bmN0aW9uKGUsbj1cIm11aVwiKXtsZXRbdCxyXT1DLnVzZVN0YXRlKGUpLG89ZXx8dDtyZXR1cm4gQy51c2VFZmZlY3QoKCk9PntudWxsPT10JiYoTSs9MSxyKGAke259LSR7TX1gKSl9LFt0LG5dKSxvfShlLG4pfWxldCBGPVwidW5kZWZpbmVkXCIhPXR5cGVvZiBkb2N1bWVudD9DLnVzZUxheW91dEVmZmVjdDooKT0+e30sVT1DLmNyZWF0ZUNvbnRleHQobnVsbCksVj1DLmNyZWF0ZUNvbnRleHQobnVsbCkscT0oKT0+Qy51c2VDb250ZXh0KFUpPy5pZHx8bnVsbCxXPSgpPT5DLnVzZUNvbnRleHQoVik7ZnVuY3Rpb24gJChlKXtsZXR7Y2hpbGRyZW46bixpZDp0fT1lLHI9cSgpO3JldHVybigwLGwuanN4KShVLlByb3ZpZGVyLHt2YWx1ZTpDLnVzZU1lbW8oKCk9Pih7aWQ6dCxwYXJlbnRJZDpyfSksW3Qscl0pLGNoaWxkcmVuOm59KX1mdW5jdGlvbiBaKGUpe2xldHtjaGlsZHJlbjpufT1lLHQ9Qy51c2VSZWYoW10pLHI9Qy51c2VDYWxsYmFjayhlPT57dC5jdXJyZW50PVsuLi50LmN1cnJlbnQsZV19LFtdKSxvPUMudXNlQ2FsbGJhY2soZT0+e3QuY3VycmVudD10LmN1cnJlbnQuZmlsdGVyKG49Pm4hPT1lKX0sW10pLFthXT1DLnVzZVN0YXRlKCgpPT5EKCkpO3JldHVybigwLGwuanN4KShWLlByb3ZpZGVyLHt2YWx1ZTpDLnVzZU1lbW8oKCk9Pih7bm9kZXNSZWY6dCxhZGROb2RlOnIscmVtb3ZlTm9kZTpvLGV2ZW50czphfSksW3IsbyxhXSksY2hpbGRyZW46bn0pfWZ1bmN0aW9uIFkoZSl7bGV0e29wZW46bj0hMSxvbk9wZW5DaGFuZ2U6dCxlbGVtZW50czpyfT1lLG89SCgpLGE9Qy51c2VSZWYoe30pLFtpXT1DLnVzZVN0YXRlKCgpPT5EKCkpLGw9bnVsbCE9cSgpLFtzLGNdPUMudXNlU3RhdGUoci5yZWZlcmVuY2UpLHU9VCgoZSxuLHIpPT57YS5jdXJyZW50Lm9wZW5FdmVudD1lP246dm9pZCAwLGkuZW1pdChcIm9wZW5jaGFuZ2VcIix7b3BlbjplLGV2ZW50Om4scmVhc29uOnIsbmVzdGVkOmx9KSx0Py4oZSxuLHIpfSksZD1DLnVzZU1lbW8oKCk9Pih7c2V0UG9zaXRpb25SZWZlcmVuY2U6Y30pLFtdKSxmPUMudXNlTWVtbygoKT0+KHtyZWZlcmVuY2U6c3x8ci5yZWZlcmVuY2V8fG51bGwsZmxvYXRpbmc6ci5mbG9hdGluZ3x8bnVsbCxkb21SZWZlcmVuY2U6ci5yZWZlcmVuY2V9KSxbcyxyLnJlZmVyZW5jZSxyLmZsb2F0aW5nXSk7cmV0dXJuIEMudXNlTWVtbygoKT0+KHtkYXRhUmVmOmEsb3BlbjpuLG9uT3BlbkNoYW5nZTp1LGVsZW1lbnRzOmYsZXZlbnRzOmksZmxvYXRpbmdJZDpvLHJlZnM6ZH0pLFtuLHUsZixpLG8sZF0pfWZ1bmN0aW9uIFgoKXtyZXR1cm5cInVuZGVmaW5lZFwiIT10eXBlb2Ygd2luZG93fWZ1bmN0aW9uIEsoZSl7cmV0dXJuIEooZSk/KGUubm9kZU5hbWV8fFwiXCIpLnRvTG93ZXJDYXNlKCk6XCIjZG9jdW1lbnRcIn1mdW5jdGlvbiBRKGUpe3ZhciBuO3JldHVybihudWxsPT1lfHxudWxsPT0obj1lLm93bmVyRG9jdW1lbnQpP3ZvaWQgMDpuLmRlZmF1bHRWaWV3KXx8d2luZG93fWZ1bmN0aW9uIEcoZSl7dmFyIG47cmV0dXJuIG51bGw9PShuPShKKGUpP2Uub3duZXJEb2N1bWVudDplLmRvY3VtZW50KXx8d2luZG93LmRvY3VtZW50KT92b2lkIDA6bi5kb2N1bWVudEVsZW1lbnR9ZnVuY3Rpb24gSihlKXtyZXR1cm4hIVgoKSYmKGUgaW5zdGFuY2VvZiBOb2RlfHxlIGluc3RhbmNlb2YgUShlKS5Ob2RlKX1mdW5jdGlvbiBlZShlKXtyZXR1cm4hIVgoKSYmKGUgaW5zdGFuY2VvZiBFbGVtZW50fHxlIGluc3RhbmNlb2YgUShlKS5FbGVtZW50KX1mdW5jdGlvbiBlbihlKXtyZXR1cm4hIVgoKSYmKGUgaW5zdGFuY2VvZiBIVE1MRWxlbWVudHx8ZSBpbnN0YW5jZW9mIFEoZSkuSFRNTEVsZW1lbnQpfWZ1bmN0aW9uIGV0KGUpe3JldHVybiEhWCgpJiZcInVuZGVmaW5lZFwiIT10eXBlb2YgU2hhZG93Um9vdCYmKGUgaW5zdGFuY2VvZiBTaGFkb3dSb290fHxlIGluc3RhbmNlb2YgUShlKS5TaGFkb3dSb290KX1sZXQgZXI9bmV3IFNldChbXCJpbmxpbmVcIixcImNvbnRlbnRzXCJdKTtmdW5jdGlvbiBlbyhlKXtsZXR7b3ZlcmZsb3c6bixvdmVyZmxvd1g6dCxvdmVyZmxvd1k6cixkaXNwbGF5Om99PWVnKGUpO3JldHVybi9hdXRvfHNjcm9sbHxvdmVybGF5fGhpZGRlbnxjbGlwLy50ZXN0KG4rcit0KSYmIWVyLmhhcyhvKX1sZXQgZWE9bmV3IFNldChbXCJ0YWJsZVwiLFwidGRcIixcInRoXCJdKSxlaT1bXCI6cG9wb3Zlci1vcGVuXCIsXCI6bW9kYWxcIl07ZnVuY3Rpb24gZWwoZSl7cmV0dXJuIGVpLnNvbWUobj0+e3RyeXtyZXR1cm4gZS5tYXRjaGVzKG4pfWNhdGNoKGUpe3JldHVybiExfX0pfWxldCBlcz1bXCJ0cmFuc2Zvcm1cIixcInRyYW5zbGF0ZVwiLFwic2NhbGVcIixcInJvdGF0ZVwiLFwicGVyc3BlY3RpdmVcIl0sZWM9W1widHJhbnNmb3JtXCIsXCJ0cmFuc2xhdGVcIixcInNjYWxlXCIsXCJyb3RhdGVcIixcInBlcnNwZWN0aXZlXCIsXCJmaWx0ZXJcIl0sZXU9W1wicGFpbnRcIixcImxheW91dFwiLFwic3RyaWN0XCIsXCJjb250ZW50XCJdO2Z1bmN0aW9uIGVkKGUpe2xldCBuPWVmKCksdD1lZShlKT9lZyhlKTplO3JldHVybiBlcy5zb21lKGU9PiEhdFtlXSYmXCJub25lXCIhPT10W2VdKXx8ISF0LmNvbnRhaW5lclR5cGUmJlwibm9ybWFsXCIhPT10LmNvbnRhaW5lclR5cGV8fCFuJiYhIXQuYmFja2Ryb3BGaWx0ZXImJlwibm9uZVwiIT09dC5iYWNrZHJvcEZpbHRlcnx8IW4mJiEhdC5maWx0ZXImJlwibm9uZVwiIT09dC5maWx0ZXJ8fGVjLnNvbWUoZT0+KHQud2lsbENoYW5nZXx8XCJcIikuaW5jbHVkZXMoZSkpfHxldS5zb21lKGU9Pih0LmNvbnRhaW58fFwiXCIpLmluY2x1ZGVzKGUpKX1mdW5jdGlvbiBlZigpe3JldHVyblwidW5kZWZpbmVkXCIhPXR5cGVvZiBDU1MmJiEhQ1NTLnN1cHBvcnRzJiZDU1Muc3VwcG9ydHMoXCItd2Via2l0LWJhY2tkcm9wLWZpbHRlclwiLFwibm9uZVwiKX1sZXQgZXA9bmV3IFNldChbXCJodG1sXCIsXCJib2R5XCIsXCIjZG9jdW1lbnRcIl0pO2Z1bmN0aW9uIGVoKGUpe3JldHVybiBlcC5oYXMoSyhlKSl9ZnVuY3Rpb24gZWcoZSl7cmV0dXJuIFEoZSkuZ2V0Q29tcHV0ZWRTdHlsZShlKX1mdW5jdGlvbiBlbShlKXtyZXR1cm4gZWUoZSk/e3Njcm9sbExlZnQ6ZS5zY3JvbGxMZWZ0LHNjcm9sbFRvcDplLnNjcm9sbFRvcH06e3Njcm9sbExlZnQ6ZS5zY3JvbGxYLHNjcm9sbFRvcDplLnNjcm9sbFl9fWZ1bmN0aW9uIGV2KGUpe2lmKFwiaHRtbFwiPT09SyhlKSlyZXR1cm4gZTtsZXQgbj1lLmFzc2lnbmVkU2xvdHx8ZS5wYXJlbnROb2RlfHxldChlKSYmZS5ob3N0fHxHKGUpO3JldHVybiBldChuKT9uLmhvc3Q6bn1mdW5jdGlvbiBlYihlLG4sdCl7dmFyIHI7dm9pZCAwPT09biYmKG49W10pLHZvaWQgMD09PXQmJih0PSEwKTtsZXQgbz1mdW5jdGlvbiBlKG4pe2xldCB0PWV2KG4pO3JldHVybiBlaCh0KT9uLm93bmVyRG9jdW1lbnQ/bi5vd25lckRvY3VtZW50LmJvZHk6bi5ib2R5OmVuKHQpJiZlbyh0KT90OmUodCl9KGUpLGE9bz09PShudWxsPT0ocj1lLm93bmVyRG9jdW1lbnQpP3ZvaWQgMDpyLmJvZHkpLGk9UShvKTtpZihhKXtsZXQgZT1leShpKTtyZXR1cm4gbi5jb25jYXQoaSxpLnZpc3VhbFZpZXdwb3J0fHxbXSxlbyhvKT9vOltdLGUmJnQ/ZWIoZSk6W10pfXJldHVybiBuLmNvbmNhdChvLGViKG8sW10sdCkpfWZ1bmN0aW9uIGV5KGUpe3JldHVybiBlLnBhcmVudCYmT2JqZWN0LmdldFByb3RvdHlwZU9mKGUucGFyZW50KT9lLmZyYW1lRWxlbWVudDpudWxsfWxldCBleD1bXTtmdW5jdGlvbiBldyhlKXtDLnVzZUVmZmVjdChlLGV4KX1jbGFzcyBlantzdGF0aWMgY3JlYXRlKCl7cmV0dXJuIG5ldyBlan1jdXJyZW50SWQ9MDtzdGFydChlLG4pe3RoaXMuY2xlYXIoKSx0aGlzLmN1cnJlbnRJZD1zZXRUaW1lb3V0KCgpPT57dGhpcy5jdXJyZW50SWQ9MCxuKCl9LGUpfWlzU3RhcnRlZCgpe3JldHVybiAwIT09dGhpcy5jdXJyZW50SWR9Y2xlYXI9KCk9PnswIT09dGhpcy5jdXJyZW50SWQmJihjbGVhclRpbWVvdXQodGhpcy5jdXJyZW50SWQpLHRoaXMuY3VycmVudElkPTApfTtkaXNwb3NlRWZmZWN0PSgpPT50aGlzLmNsZWFyfWZ1bmN0aW9uIGVrKCl7bGV0IGU9UChlai5jcmVhdGUpLmN1cnJlbnQ7cmV0dXJuIGV3KGUuZGlzcG9zZUVmZmVjdCksZX1mdW5jdGlvbiBlQShlKXtsZXQgbj1QKGVPLGUpLmN1cnJlbnQ7cmV0dXJuIG4ubmV4dD1lLEYobi5lZmZlY3QpLG59ZnVuY3Rpb24gZU8oZSl7bGV0IG49e2N1cnJlbnQ6ZSxuZXh0OmUsZWZmZWN0OigpPT57bi5jdXJyZW50PW4ubmV4dH19O3JldHVybiBufWxldCBlQz1cInVuZGVmaW5lZFwiIT10eXBlb2YgbmF2aWdhdG9yLGVTPWZ1bmN0aW9uKCl7aWYoXCJ1bmRlZmluZWRcIj09dHlwZW9mIG5hdmlnYXRvcilyZXR1cm57cGxhdGZvcm06XCJcIixtYXhUb3VjaFBvaW50czotMX07bGV0IGU9bmF2aWdhdG9yLnVzZXJBZ2VudERhdGE7cmV0dXJuIGU/LnBsYXRmb3JtP3twbGF0Zm9ybTplLnBsYXRmb3JtLG1heFRvdWNoUG9pbnRzOm5hdmlnYXRvci5tYXhUb3VjaFBvaW50c306e3BsYXRmb3JtOm5hdmlnYXRvci5wbGF0Zm9ybT8/XCJcIixtYXhUb3VjaFBvaW50czpuYXZpZ2F0b3IubWF4VG91Y2hQb2ludHM/Py0xfX0oKSxlRT1mdW5jdGlvbigpe2lmKCFlQylyZXR1cm5cIlwiO2xldCBlPW5hdmlnYXRvci51c2VyQWdlbnREYXRhO3JldHVybiBlPy5wbGF0Zm9ybT9lLnBsYXRmb3JtOm5hdmlnYXRvci5wbGF0Zm9ybT8/XCJcIn0oKSxlXz1mdW5jdGlvbigpe2lmKCFlQylyZXR1cm5cIlwiO2xldCBlPW5hdmlnYXRvci51c2VyQWdlbnREYXRhO3JldHVybiBlJiZBcnJheS5pc0FycmF5KGUuYnJhbmRzKT9lLmJyYW5kcy5tYXAoKHticmFuZDplLHZlcnNpb246bn0pPT5gJHtlfS8ke259YCkuam9pbihcIiBcIik6bmF2aWdhdG9yLnVzZXJBZ2VudH0oKSxlUD1cInVuZGVmaW5lZFwiIT10eXBlb2YgQ1NTJiYhIUNTUy5zdXBwb3J0cyYmQ1NTLnN1cHBvcnRzKFwiLXdlYmtpdC1iYWNrZHJvcC1maWx0ZXI6bm9uZVwiKSxlej1cIk1hY0ludGVsXCI9PT1lUy5wbGF0Zm9ybSYmZVMubWF4VG91Y2hQb2ludHM+MXx8L2lQKGhvbmV8YWR8b2QpfGlPUy8udGVzdChlUy5wbGF0Zm9ybSk7ZUMmJi9maXJlZm94L2kudGVzdChlXyk7bGV0IGVMPWVDJiYvYXBwbGUvaS50ZXN0KG5hdmlnYXRvci52ZW5kb3IpLGVUPWVDJiYvYW5kcm9pZC9pLnRlc3QoZUUpfHwvYW5kcm9pZC9pLnRlc3QoZV8pLGVSPWVDJiZlRS50b0xvd2VyQ2FzZSgpLnN0YXJ0c1dpdGgoXCJtYWNcIikmJiFuYXZpZ2F0b3IubWF4VG91Y2hQb2ludHMsZU49ZV8uaW5jbHVkZXMoXCJqc2RvbS9cIik7ZnVuY3Rpb24gZUQoZSl7ZS5wcmV2ZW50RGVmYXVsdCgpLGUuc3RvcFByb3BhZ2F0aW9uKCl9ZnVuY3Rpb24gZUIoZSl7cmV0dXJuIDA9PT1lLm1veklucHV0U291cmNlJiYhIWUuaXNUcnVzdGVkfHwoZVQmJmUucG9pbnRlclR5cGU/XCJjbGlja1wiPT09ZS50eXBlJiYxPT09ZS5idXR0b25zOjA9PT1lLmRldGFpbCYmIWUucG9pbnRlclR5cGUpfWZ1bmN0aW9uIGVNKGUpe3JldHVybiFlTiYmKCFlVCYmMD09PWUud2lkdGgmJjA9PT1lLmhlaWdodHx8ZVQmJjE9PT1lLndpZHRoJiYxPT09ZS5oZWlnaHQmJjA9PT1lLnByZXNzdXJlJiYwPT09ZS5kZXRhaWwmJlwibW91c2VcIj09PWUucG9pbnRlclR5cGV8fGUud2lkdGg8MSYmZS5oZWlnaHQ8MSYmMD09PWUucHJlc3N1cmUmJjA9PT1lLmRldGFpbCYmXCJ0b3VjaFwiPT09ZS5wb2ludGVyVHlwZSl9ZnVuY3Rpb24gZUkoZSxuKXtsZXQgdD1bXCJtb3VzZVwiLFwicGVuXCJdO3JldHVybiBufHx0LnB1c2goXCJcIix2b2lkIDApLHQuaW5jbHVkZXMoZSl9bGV0IGVIPVwiZGF0YS1iYXNlLXVpLWZvY3VzYWJsZVwiLGVGPVwiYWN0aXZlXCIsZVU9XCJzZWxlY3RlZFwiLGVWPVwiQXJyb3dMZWZ0XCIsZXE9XCJBcnJvd1JpZ2h0XCIsZVc9XCJBcnJvd1VwXCIsZSQ9XCJBcnJvd0Rvd25cIjtmdW5jdGlvbiBlWihlKXtsZXQgbj1lLmFjdGl2ZUVsZW1lbnQ7Zm9yKDtuPy5zaGFkb3dSb290Py5hY3RpdmVFbGVtZW50IT1udWxsOyluPW4uc2hhZG93Um9vdC5hY3RpdmVFbGVtZW50O3JldHVybiBufWZ1bmN0aW9uIGVZKGUsbil7aWYoIWV8fCFuKXJldHVybiExO2xldCB0PW4uZ2V0Um9vdE5vZGU/LigpO2lmKGUuY29udGFpbnMobikpcmV0dXJuITA7aWYodCYmZXQodCkpe2xldCB0PW47Zm9yKDt0Oyl7aWYoZT09PXQpcmV0dXJuITA7dD10LnBhcmVudE5vZGV8fHQuaG9zdH19cmV0dXJuITF9ZnVuY3Rpb24gZVgoZSl7cmV0dXJuXCJjb21wb3NlZFBhdGhcImluIGU/ZS5jb21wb3NlZFBhdGgoKVswXTplLnRhcmdldH1mdW5jdGlvbiBlSyhlLG4pe3JldHVybiBudWxsIT1uJiYoXCJjb21wb3NlZFBhdGhcImluIGU/ZS5jb21wb3NlZFBhdGgoKS5pbmNsdWRlcyhuKTpudWxsIT1lLnRhcmdldCYmbi5jb250YWlucyhlLnRhcmdldCkpfWZ1bmN0aW9uIGVRKGUpe3JldHVybiBlPy5vd25lckRvY3VtZW50fHxkb2N1bWVudH1mdW5jdGlvbiBlRyhlKXtyZXR1cm4gZW4oZSkmJmUubWF0Y2hlcyhcImlucHV0Om5vdChbdHlwZT0naGlkZGVuJ10pOm5vdChbZGlzYWJsZWRdKSxbY29udGVudGVkaXRhYmxlXTpub3QoW2NvbnRlbnRlZGl0YWJsZT0nZmFsc2UnXSksdGV4dGFyZWE6bm90KFtkaXNhYmxlZF0pXCIpfWZ1bmN0aW9uIGVKKGUpe3JldHVybiEhZSYmXCJjb21ib2JveFwiPT09ZS5nZXRBdHRyaWJ1dGUoXCJyb2xlXCIpJiZlRyhlKX1mdW5jdGlvbiBlMChlKXtyZXR1cm4gZT9lLmhhc0F0dHJpYnV0ZShlSCk/ZTplLnF1ZXJ5U2VsZWN0b3IoYFske2VIfV1gKXx8ZTpudWxsfWZ1bmN0aW9uIGUxKGUpe3JldHVybmBkYXRhLWJhc2UtdWktJHtlfWB9bGV0IGUyPWUxKFwic2FmZS1wb2x5Z29uXCIpO2Z1bmN0aW9uIGU0KGUsbix0KXtpZih0JiYhZUkodCkpcmV0dXJuIDA7aWYoXCJudW1iZXJcIj09dHlwZW9mIGUpcmV0dXJuIGU7aWYoXCJmdW5jdGlvblwiPT10eXBlb2YgZSl7bGV0IHQ9ZSgpO3JldHVyblwibnVtYmVyXCI9PXR5cGVvZiB0P3Q6dD8uW25dfXJldHVybiBlPy5bbl19ZnVuY3Rpb24gZTUoZSl7cmV0dXJuXCJmdW5jdGlvblwiPT10eXBlb2YgZT9lKCk6ZX1mdW5jdGlvbiBlMyhlLG49e30pe2xldHtvcGVuOnQsb25PcGVuQ2hhbmdlOnIsZGF0YVJlZjpvLGV2ZW50czphLGVsZW1lbnRzOml9PWUse2VuYWJsZWQ6bD0hMCxkZWxheTpzPTAsaGFuZGxlQ2xvc2U6Yz1udWxsLG1vdXNlT25seTp1PSExLHJlc3RNczpkPTAsbW92ZTpmPSEwfT1uLHA9VygpLGg9cSgpLGc9ZUEoYyksbT1lQShzKSx2PWVBKHQpLGI9ZUEoZCkseT1DLnVzZVJlZih2b2lkIDApLHg9ZWsoKSx3PUMudXNlUmVmKHZvaWQgMCksaj1laygpLGs9Qy51c2VSZWYoITApLEE9Qy51c2VSZWYoITEpLE89Qy51c2VSZWYoKCk9Pnt9KSxTPUMudXNlUmVmKCExKSxFPVQoKCk9PntsZXQgZT1vLmN1cnJlbnQub3BlbkV2ZW50Py50eXBlO3JldHVybiBlPy5pbmNsdWRlcyhcIm1vdXNlXCIpJiZcIm1vdXNlZG93blwiIT09ZX0pO0MudXNlRWZmZWN0KCgpPT57aWYobClyZXR1cm4gYS5vbihcIm9wZW5jaGFuZ2VcIixlKSwoKT0+e2Eub2ZmKFwib3BlbmNoYW5nZVwiLGUpfTtmdW5jdGlvbiBlKHtvcGVuOmV9KXtlfHwoeC5jbGVhcigpLGouY2xlYXIoKSxrLmN1cnJlbnQ9ITAsUy5jdXJyZW50PSExKX19LFtsLGEseCxqXSksQy51c2VFZmZlY3QoKCk9PntpZighbHx8IWcuY3VycmVudHx8IXQpcmV0dXJuO2Z1bmN0aW9uIGUoZSl7RSgpJiZyKCExLGUsXCJob3ZlclwiKX1sZXQgbj1lUShpLmZsb2F0aW5nKS5kb2N1bWVudEVsZW1lbnQ7cmV0dXJuIG4uYWRkRXZlbnRMaXN0ZW5lcihcIm1vdXNlbGVhdmVcIixlKSwoKT0+e24ucmVtb3ZlRXZlbnRMaXN0ZW5lcihcIm1vdXNlbGVhdmVcIixlKX19LFtpLmZsb2F0aW5nLHQscixsLGcsRV0pO2xldCBfPUMudXNlQ2FsbGJhY2soKGUsbj0hMCx0PVwiaG92ZXJcIik9PntsZXQgbz1lNChtLmN1cnJlbnQsXCJjbG9zZVwiLHkuY3VycmVudCk7byYmIXcuY3VycmVudD94LnN0YXJ0KG8sKCk9PnIoITEsZSx0KSk6biYmKHguY2xlYXIoKSxyKCExLGUsdCkpfSxbbSxyLHhdKSxQPVQoKCk9PntPLmN1cnJlbnQoKSx3LmN1cnJlbnQ9dm9pZCAwfSksej1UKCgpPT57aWYoQS5jdXJyZW50KXtsZXQgZT1lUShpLmZsb2F0aW5nKS5ib2R5O2Uuc3R5bGUucG9pbnRlckV2ZW50cz1cIlwiLGUucmVtb3ZlQXR0cmlidXRlKGUyKSxBLmN1cnJlbnQ9ITF9fSksTD1UKCgpPT4hIW8uY3VycmVudC5vcGVuRXZlbnQmJltcImNsaWNrXCIsXCJtb3VzZWRvd25cIl0uaW5jbHVkZXMoby5jdXJyZW50Lm9wZW5FdmVudC50eXBlKSk7Qy51c2VFZmZlY3QoKCk9PntpZihsJiZlZShpLmRvbVJlZmVyZW5jZSkpe2xldCByPWkuZG9tUmVmZXJlbmNlLG89aS5mbG9hdGluZztyZXR1cm4gdCYmci5hZGRFdmVudExpc3RlbmVyKFwibW91c2VsZWF2ZVwiLGEpLGYmJnIuYWRkRXZlbnRMaXN0ZW5lcihcIm1vdXNlbW92ZVwiLGUse29uY2U6ITB9KSxyLmFkZEV2ZW50TGlzdGVuZXIoXCJtb3VzZWVudGVyXCIsZSksci5hZGRFdmVudExpc3RlbmVyKFwibW91c2VsZWF2ZVwiLG4pLG8mJihvLmFkZEV2ZW50TGlzdGVuZXIoXCJtb3VzZWxlYXZlXCIsYSksby5hZGRFdmVudExpc3RlbmVyKFwibW91c2VlbnRlclwiLHMpLG8uYWRkRXZlbnRMaXN0ZW5lcihcIm1vdXNlbGVhdmVcIixjKSksKCk9Pnt0JiZyLnJlbW92ZUV2ZW50TGlzdGVuZXIoXCJtb3VzZWxlYXZlXCIsYSksZiYmci5yZW1vdmVFdmVudExpc3RlbmVyKFwibW91c2Vtb3ZlXCIsZSksci5yZW1vdmVFdmVudExpc3RlbmVyKFwibW91c2VlbnRlclwiLGUpLHIucmVtb3ZlRXZlbnRMaXN0ZW5lcihcIm1vdXNlbGVhdmVcIixuKSxvJiYoby5yZW1vdmVFdmVudExpc3RlbmVyKFwibW91c2VsZWF2ZVwiLGEpLG8ucmVtb3ZlRXZlbnRMaXN0ZW5lcihcIm1vdXNlZW50ZXJcIixzKSxvLnJlbW92ZUV2ZW50TGlzdGVuZXIoXCJtb3VzZWxlYXZlXCIsYykpfX1mdW5jdGlvbiBlKGUpe2lmKHguY2xlYXIoKSxrLmN1cnJlbnQ9ITEsdSYmIWVJKHkuY3VycmVudCl8fGU1KGIuY3VycmVudCk+MCYmIWU0KG0uY3VycmVudCxcIm9wZW5cIikpcmV0dXJuO2xldCBuPWU0KG0uY3VycmVudCxcIm9wZW5cIix5LmN1cnJlbnQpO24/eC5zdGFydChuLCgpPT57di5jdXJyZW50fHxyKCEwLGUsXCJob3ZlclwiKX0pOnR8fHIoITAsZSxcImhvdmVyXCIpfWZ1bmN0aW9uIG4oZSl7aWYoTCgpKXJldHVybiB2b2lkIHooKTtPLmN1cnJlbnQoKTtsZXQgbj1lUShpLmZsb2F0aW5nKTtpZihqLmNsZWFyKCksUy5jdXJyZW50PSExLGcuY3VycmVudCYmby5jdXJyZW50LmZsb2F0aW5nQ29udGV4dCl7dHx8eC5jbGVhcigpLHcuY3VycmVudD1nLmN1cnJlbnQoey4uLm8uY3VycmVudC5mbG9hdGluZ0NvbnRleHQsdHJlZTpwLHg6ZS5jbGllbnRYLHk6ZS5jbGllbnRZLG9uQ2xvc2UoKXt6KCksUCgpLEwoKXx8XyhlLCEwLFwic2FmZS1wb2x5Z29uXCIpfX0pO2xldCByPXcuY3VycmVudDtuLmFkZEV2ZW50TGlzdGVuZXIoXCJtb3VzZW1vdmVcIixyKSxPLmN1cnJlbnQ9KCk9PntuLnJlbW92ZUV2ZW50TGlzdGVuZXIoXCJtb3VzZW1vdmVcIixyKX07cmV0dXJufVwidG91Y2hcIj09PXkuY3VycmVudCYmZVkoaS5mbG9hdGluZyxlLnJlbGF0ZWRUYXJnZXQpfHxfKGUpfWZ1bmN0aW9uIGEoZSl7IUwoKSYmby5jdXJyZW50LmZsb2F0aW5nQ29udGV4dCYmZy5jdXJyZW50Py4oey4uLm8uY3VycmVudC5mbG9hdGluZ0NvbnRleHQsdHJlZTpwLHg6ZS5jbGllbnRYLHk6ZS5jbGllbnRZLG9uQ2xvc2UoKXt6KCksUCgpLEwoKXx8XyhlKX19KShlKX1mdW5jdGlvbiBzKCl7eC5jbGVhcigpfWZ1bmN0aW9uIGMoZSl7TCgpfHxfKGUsITEpfX0sW2ksbCxlLHUsZixfLFAseixyLHQsdixwLG0sZyxvLEwsYix4LGpdKSxGKCgpPT57aWYobCYmdCYmZy5jdXJyZW50Py5fX29wdGlvbnM/LmJsb2NrUG9pbnRlckV2ZW50cyYmRSgpKXtBLmN1cnJlbnQ9ITA7bGV0IGU9aS5mbG9hdGluZztpZihlZShpLmRvbVJlZmVyZW5jZSkmJmUpe2xldCBuPWVRKGkuZmxvYXRpbmcpLmJvZHk7bi5zZXRBdHRyaWJ1dGUoZTIsXCJcIik7bGV0IHQ9aS5kb21SZWZlcmVuY2Uscj1wPy5ub2Rlc1JlZi5jdXJyZW50LmZpbmQoZT0+ZS5pZD09PWgpPy5jb250ZXh0Py5lbGVtZW50cy5mbG9hdGluZztyZXR1cm4gciYmKHIuc3R5bGUucG9pbnRlckV2ZW50cz1cIlwiKSxuLnN0eWxlLnBvaW50ZXJFdmVudHM9XCJub25lXCIsdC5zdHlsZS5wb2ludGVyRXZlbnRzPVwiYXV0b1wiLGUuc3R5bGUucG9pbnRlckV2ZW50cz1cImF1dG9cIiwoKT0+e24uc3R5bGUucG9pbnRlckV2ZW50cz1cIlwiLHQuc3R5bGUucG9pbnRlckV2ZW50cz1cIlwiLGUuc3R5bGUucG9pbnRlckV2ZW50cz1cIlwifX19fSxbbCx0LGgsaSxwLGcsRV0pLEYoKCk9Pnt0fHwoeS5jdXJyZW50PXZvaWQgMCxTLmN1cnJlbnQ9ITEsUCgpLHooKSl9LFt0LFAsel0pLEMudXNlRWZmZWN0KCgpPT4oKT0+e1AoKSx4LmNsZWFyKCksai5jbGVhcigpLHooKX0sW2wsaS5kb21SZWZlcmVuY2UsUCx6LHgsal0pO2xldCBSPUMudXNlTWVtbygoKT0+e2Z1bmN0aW9uIGUoZSl7eS5jdXJyZW50PWUucG9pbnRlclR5cGV9cmV0dXJue29uUG9pbnRlckRvd246ZSxvblBvaW50ZXJFbnRlcjplLG9uTW91c2VNb3ZlKGUpe2xldHtuYXRpdmVFdmVudDpufT1lO2Z1bmN0aW9uIG8oKXtrLmN1cnJlbnR8fHYuY3VycmVudHx8cighMCxuLFwiaG92ZXJcIil9KCF1fHxlSSh5LmN1cnJlbnQpKSYmIXQmJjAhPT1lNShiLmN1cnJlbnQpJiYoUy5jdXJyZW50JiZlLm1vdmVtZW50WCoqMitlLm1vdmVtZW50WSoqMjwyfHwoai5jbGVhcigpLFwidG91Y2hcIj09PXkuY3VycmVudD9vKCk6KFMuY3VycmVudD0hMCxqLnN0YXJ0KGU1KGIuY3VycmVudCksbykpKSl9fX0sW3Uscix0LHYsYixqXSk7cmV0dXJuIEMudXNlTWVtbygoKT0+bD97cmVmZXJlbmNlOlJ9Ont9LFtsLFJdKX1mdW5jdGlvbiBlNihlLG4sdD0hMCl7cmV0dXJuIGUuZmlsdGVyKGU9PmUucGFyZW50SWQ9PT1uJiYoIXR8fGUuY29udGV4dD8ub3BlbikpLmZsYXRNYXAobj0+W24sLi4uZTYoZSxuLmlkLHQpXSl9ZnVuY3Rpb24gZTkoZSxuKXtsZXQgdD1bXSxyPWUuZmluZChlPT5lLmlkPT09bik/LnBhcmVudElkO2Zvcig7cjspe2xldCBuPWUuZmluZChlPT5lLmlkPT09cik7cj1uPy5wYXJlbnRJZCxuJiYodD10LmNvbmNhdChuKSl9cmV0dXJuIHR9ZnVuY3Rpb24gZTgoZSxuKXtsZXRbdCxyXT1lLG89ITEsYT1uLmxlbmd0aDtmb3IobGV0IGU9MCxpPWEtMTtlPGE7aT1lKyspe2xldFthLGxdPW5bZV18fFswLDBdLFtzLGNdPW5baV18fFswLDBdO2w+PXIhPWM+PXImJnQ8PShzLWEpKihyLWwpLyhjLWwpK2EmJihvPSFvKX1yZXR1cm4gb31mdW5jdGlvbiBlNyhlPXt9KXtsZXR7YnVmZmVyOm49LjUsYmxvY2tQb2ludGVyRXZlbnRzOnQ9ITEscmVxdWlyZUludGVudDpyPSEwfT1lLG89bmV3IGVqLGE9ITEsaT1udWxsLGw9bnVsbCxzPXBlcmZvcm1hbmNlLm5vdygpLGM9KHt4OmUseTp0LHBsYWNlbWVudDpjLGVsZW1lbnRzOnUsb25DbG9zZTpkLG5vZGVJZDpmLHRyZWU6cH0pPT5mdW5jdGlvbihoKXtmdW5jdGlvbiBnKCl7by5jbGVhcigpLGQoKX1pZihvLmNsZWFyKCksIXUuZG9tUmVmZXJlbmNlfHwhdS5mbG9hdGluZ3x8bnVsbD09Y3x8bnVsbD09ZXx8bnVsbD09dClyZXR1cm47bGV0e2NsaWVudFg6bSxjbGllbnRZOnZ9PWgsYj1bbSx2XSx5PWVYKGgpLHg9XCJtb3VzZWxlYXZlXCI9PT1oLnR5cGUsdz1lWSh1LmZsb2F0aW5nLHkpLGo9ZVkodS5kb21SZWZlcmVuY2UseSksaz11LmRvbVJlZmVyZW5jZS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSxBPXUuZmxvYXRpbmcuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCksTz1jLnNwbGl0KFwiLVwiKVswXSxDPWU+QS5yaWdodC1BLndpZHRoLzIsUz10PkEuYm90dG9tLUEuaGVpZ2h0LzIsRT1iWzBdPj1rLngmJmJbMF08PWsueCtrLndpZHRoJiZiWzFdPj1rLnkmJmJbMV08PWsueStrLmhlaWdodCxfPUEud2lkdGg+ay53aWR0aCxQPUEuaGVpZ2h0PmsuaGVpZ2h0LHo9KF8/azpBKS5sZWZ0LEw9KF8/azpBKS5yaWdodCxUPShQP2s6QSkudG9wLFI9KFA/azpBKS5ib3R0b207aWYodyYmKGE9ITAsIXgpKXJldHVybjtpZihqJiYoYT0hMSksaiYmIXgpe2E9ITA7cmV0dXJufWlmKHgmJmVlKGgucmVsYXRlZFRhcmdldCkmJmVZKHUuZmxvYXRpbmcsaC5yZWxhdGVkVGFyZ2V0KXx8cCYmZTYocC5ub2Rlc1JlZi5jdXJyZW50LGYpLnNvbWUoKHtjb250ZXh0OmV9KT0+ZT8ub3BlbikpcmV0dXJuO2lmKFwidG9wXCI9PT1PJiZ0Pj1rLmJvdHRvbS0xfHxcImJvdHRvbVwiPT09TyYmdDw9ay50b3ArMXx8XCJsZWZ0XCI9PT1PJiZlPj1rLnJpZ2h0LTF8fFwicmlnaHRcIj09PU8mJmU8PWsubGVmdCsxKXJldHVybiBnKCk7bGV0IE49W107c3dpdGNoKE8pe2Nhc2VcInRvcFwiOk49W1t6LGsudG9wKzFdLFt6LEEuYm90dG9tLTFdLFtMLEEuYm90dG9tLTFdLFtMLGsudG9wKzFdXTticmVhaztjYXNlXCJib3R0b21cIjpOPVtbeixBLnRvcCsxXSxbeixrLmJvdHRvbS0xXSxbTCxrLmJvdHRvbS0xXSxbTCxBLnRvcCsxXV07YnJlYWs7Y2FzZVwibGVmdFwiOk49W1tBLnJpZ2h0LTEsUl0sW0EucmlnaHQtMSxUXSxbay5sZWZ0KzEsVF0sW2subGVmdCsxLFJdXTticmVhaztjYXNlXCJyaWdodFwiOk49W1trLnJpZ2h0LTEsUl0sW2sucmlnaHQtMSxUXSxbQS5sZWZ0KzEsVF0sW0EubGVmdCsxLFJdXX1pZighZTgoW20sdl0sTikpe2lmKGEmJiFFKXJldHVybiBnKCk7aWYoIXgmJnIpe2xldCBlPWZ1bmN0aW9uKGUsbil7bGV0IHQ9cGVyZm9ybWFuY2Uubm93KCkscj10LXM7aWYobnVsbD09PWl8fG51bGw9PT1sfHwwPT09cilyZXR1cm4gaT1lLGw9bixzPXQsbnVsbDtsZXQgbz1lLWksYT1uLWwsYz1NYXRoLnNxcnQobypvK2EqYSk7cmV0dXJuIGk9ZSxsPW4scz10LGMvcn0oaC5jbGllbnRYLGguY2xpZW50WSk7aWYobnVsbCE9PWUmJmU8LjEpcmV0dXJuIGcoKX1lOChbbSx2XSxmdW5jdGlvbihbZSx0XSl7c3dpdGNoKE8pe2Nhc2VcInRvcFwiOntsZXQgcj1bW0EubGVmdCxDfHxfP0EuYm90dG9tLW46QS50b3BdLFtBLnJpZ2h0LEM/Xz9BLmJvdHRvbS1uOkEudG9wOkEuYm90dG9tLW5dXTtyZXR1cm5bW18/ZStuLzI6Qz9lKzQqbjplLTQqbix0K24rMV0sW18/ZS1uLzI6Qz9lKzQqbjplLTQqbix0K24rMV0sLi4ucl19Y2FzZVwiYm90dG9tXCI6e2xldCByPVtbQS5sZWZ0LEN8fF8/QS50b3ArbjpBLmJvdHRvbV0sW0EucmlnaHQsQz9fP0EudG9wK246QS5ib3R0b206QS50b3Arbl1dO3JldHVybltbXz9lK24vMjpDP2UrNCpuOmUtNCpuLHQtbl0sW18/ZS1uLzI6Qz9lKzQqbjplLTQqbix0LW5dLC4uLnJdfWNhc2VcImxlZnRcIjpyZXR1cm5bW1N8fFA/QS5yaWdodC1uOkEubGVmdCxBLnRvcF0sW1M/UD9BLnJpZ2h0LW46QS5sZWZ0OkEucmlnaHQtbixBLmJvdHRvbV0sW2UrbisxLFA/dCtuLzI6Uz90KzQqbjp0LTQqbl0sW2UrbisxLFA/dC1uLzI6Uz90KzQqbjp0LTQqbl1dO2Nhc2VcInJpZ2h0XCI6e2xldCByPVtbU3x8UD9BLmxlZnQrbjpBLnJpZ2h0LEEudG9wXSxbUz9QP0EubGVmdCtuOkEucmlnaHQ6QS5sZWZ0K24sQS5ib3R0b21dXTtyZXR1cm5bW2UtbixQP3Qrbi8yOlM/dCs0Km46dC00Km5dLFtlLW4sUD90LW4vMjpTP3QrNCpuOnQtNCpuXSwuLi5yXX1kZWZhdWx0OnJldHVybltdfX0oW2UsdF0pKT8hYSYmciYmby5zdGFydCg0MCxnKTpnKCl9fTtyZXR1cm4gYy5fX29wdGlvbnM9e2Jsb2NrUG9pbnRlckV2ZW50czp0fSxjfWxldCBuZT1lUiYmZUw7ZnVuY3Rpb24gbm4oZSxuPXt9KXtsZXR7b3Blbjp0LG9uT3BlbkNoYW5nZTpyLGV2ZW50czpvLGRhdGFSZWY6YSxlbGVtZW50czppfT1lLHtlbmFibGVkOmw9ITAsdmlzaWJsZU9ubHk6cz0hMH09bixjPUMudXNlUmVmKCExKSx1PWVrKCksZD1DLnVzZVJlZighMCk7Qy51c2VFZmZlY3QoKCk9PntpZighbClyZXR1cm47bGV0IGU9UShpLmRvbVJlZmVyZW5jZSk7ZnVuY3Rpb24gbigpeyF0JiZlbihpLmRvbVJlZmVyZW5jZSkmJmkuZG9tUmVmZXJlbmNlPT09ZVooZVEoaS5kb21SZWZlcmVuY2UpKSYmKGMuY3VycmVudD0hMCl9ZnVuY3Rpb24gcigpe2QuY3VycmVudD0hMH1mdW5jdGlvbiBvKCl7ZC5jdXJyZW50PSExfXJldHVybiBlLmFkZEV2ZW50TGlzdGVuZXIoXCJibHVyXCIsbiksbmUmJihlLmFkZEV2ZW50TGlzdGVuZXIoXCJrZXlkb3duXCIsciwhMCksZS5hZGRFdmVudExpc3RlbmVyKFwicG9pbnRlcmRvd25cIixvLCEwKSksKCk9PntlLnJlbW92ZUV2ZW50TGlzdGVuZXIoXCJibHVyXCIsbiksbmUmJihlLnJlbW92ZUV2ZW50TGlzdGVuZXIoXCJrZXlkb3duXCIsciwhMCksZS5yZW1vdmVFdmVudExpc3RlbmVyKFwicG9pbnRlcmRvd25cIixvLCEwKSl9fSxbaS5kb21SZWZlcmVuY2UsdCxsXSksQy51c2VFZmZlY3QoKCk9PntpZihsKXJldHVybiBvLm9uKFwib3BlbmNoYW5nZVwiLGUpLCgpPT57by5vZmYoXCJvcGVuY2hhbmdlXCIsZSl9O2Z1bmN0aW9uIGUoe3JlYXNvbjplfSl7KFwicmVmZXJlbmNlLXByZXNzXCI9PT1lfHxcImVzY2FwZS1rZXlcIj09PWUpJiYoYy5jdXJyZW50PSEwKX19LFtvLGxdKTtsZXQgZj1DLnVzZU1lbW8oKCk9Pih7b25Nb3VzZUxlYXZlKCl7Yy5jdXJyZW50PSExfSxvbkZvY3VzKGUpe2lmKGMuY3VycmVudClyZXR1cm47bGV0IG49ZVgoZS5uYXRpdmVFdmVudCk7aWYocyYmZWUobikpe2lmKG5lJiYhZS5yZWxhdGVkVGFyZ2V0KXtpZighZC5jdXJyZW50JiYhZUcobikpcmV0dXJufWVsc2UgaWYoIWZ1bmN0aW9uKGUpe2lmKCFlfHxlTilyZXR1cm4hMDt0cnl7cmV0dXJuIGUubWF0Y2hlcyhcIjpmb2N1cy12aXNpYmxlXCIpfWNhdGNoKGUpe3JldHVybiEwfX0obikpcmV0dXJufXIoITAsZS5uYXRpdmVFdmVudCxcImZvY3VzXCIpfSxvbkJsdXIoZSl7Yy5jdXJyZW50PSExO2xldCBuPWUucmVsYXRlZFRhcmdldCx0PWUubmF0aXZlRXZlbnQsbz1lZShuKSYmbi5oYXNBdHRyaWJ1dGUoZTEoXCJmb2N1cy1ndWFyZFwiKSkmJlwib3V0c2lkZVwiPT09bi5nZXRBdHRyaWJ1dGUoXCJkYXRhLXR5cGVcIik7dS5zdGFydCgwLCgpPT57bGV0IGU9ZVooaS5kb21SZWZlcmVuY2U/aS5kb21SZWZlcmVuY2Uub3duZXJEb2N1bWVudDpkb2N1bWVudCk7KG58fGUhPT1pLmRvbVJlZmVyZW5jZSkmJihlWShhLmN1cnJlbnQuZmxvYXRpbmdDb250ZXh0Py5yZWZzLmZsb2F0aW5nLmN1cnJlbnQsZSl8fGVZKGkuZG9tUmVmZXJlbmNlLGUpfHxvfHxyKCExLHQsXCJmb2N1c1wiKSl9KX19KSxbYSxpLmRvbVJlZmVyZW5jZSxyLHMsdV0pO3JldHVybiBDLnVzZU1lbW8oKCk9Pmw/e3JlZmVyZW5jZTpmfTp7fSxbbCxmXSl9bGV0IG50PXtzdHlsZTp7dHJhbnNpdGlvbjpcIm5vbmVcIn19LG5yPXt9LG5vPXtmYWxsYmFja0F4aXNTaWRlOlwibm9uZVwifSxuYT17ZmFsbGJhY2tBeGlzU2lkZTpcImVuZFwifSxuaT1uZXcgY2xhc3N7Y2FsbGJhY2tzPVtdO2NhbGxiYWNrc0NvdW50PTA7bmV4dElkPTE7c3RhcnRJZD0xO2lzU2NoZWR1bGVkPSExO3RpY2s9ZT0+e3RoaXMuaXNTY2hlZHVsZWQ9ITE7bGV0IG49dGhpcy5jYWxsYmFja3MsdD10aGlzLmNhbGxiYWNrc0NvdW50O2lmKHRoaXMuY2FsbGJhY2tzPVtdLHRoaXMuY2FsbGJhY2tzQ291bnQ9MCx0aGlzLnN0YXJ0SWQ9dGhpcy5uZXh0SWQsdD4wKWZvcihsZXQgdD0wO3Q8bi5sZW5ndGg7dCs9MSluW3RdPy4oZSl9O3JlcXVlc3QoZSl7bGV0IG49dGhpcy5uZXh0SWQ7cmV0dXJuIHRoaXMubmV4dElkKz0xLHRoaXMuY2FsbGJhY2tzLnB1c2goZSksdGhpcy5jYWxsYmFja3NDb3VudCs9MSx0aGlzLmlzU2NoZWR1bGVkfHwocmVxdWVzdEFuaW1hdGlvbkZyYW1lKHRoaXMudGljayksdGhpcy5pc1NjaGVkdWxlZD0hMCksbn1jYW5jZWwoZSl7bGV0IG49ZS10aGlzLnN0YXJ0SWQ7bjwwfHxuPj10aGlzLmNhbGxiYWNrcy5sZW5ndGh8fCh0aGlzLmNhbGxiYWNrc1tuXT1udWxsLHRoaXMuY2FsbGJhY2tzQ291bnQtPTEpfX07Y2xhc3Mgbmx7c3RhdGljIGNyZWF0ZSgpe3JldHVybiBuZXcgbmx9c3RhdGljIHJlcXVlc3QoZSl7cmV0dXJuIG5pLnJlcXVlc3QoZSl9c3RhdGljIGNhbmNlbChlKXtyZXR1cm4gbmkuY2FuY2VsKGUpfWN1cnJlbnRJZD1udWxsO3JlcXVlc3QoZSl7dGhpcy5jYW5jZWwoKSx0aGlzLmN1cnJlbnRJZD1uaS5yZXF1ZXN0KCgpPT57dGhpcy5jdXJyZW50SWQ9bnVsbCxlKCl9KX1jYW5jZWw9KCk9PntudWxsIT09dGhpcy5jdXJyZW50SWQmJihuaS5jYW5jZWwodGhpcy5jdXJyZW50SWQpLHRoaXMuY3VycmVudElkPW51bGwpfTtkaXNwb3NlRWZmZWN0PSgpPT50aGlzLmNhbmNlbH1mdW5jdGlvbiBucygpe2xldCBlPVAobmwuY3JlYXRlKS5jdXJyZW50O3JldHVybiBldyhlLmRpc3Bvc2VFZmZlY3QpLGV9bGV0IG5jPXtwb2ludGVyZG93bjpcIm9uUG9pbnRlckRvd25cIixtb3VzZWRvd246XCJvbk1vdXNlRG93blwiLGNsaWNrOlwib25DbGlja1wifSxudT17cG9pbnRlcmRvd246XCJvblBvaW50ZXJEb3duQ2FwdHVyZVwiLG1vdXNlZG93bjpcIm9uTW91c2VEb3duQ2FwdHVyZVwiLGNsaWNrOlwib25DbGlja0NhcHR1cmVcIn0sbmQ9ZT0+KHtlc2NhcGVLZXk6XCJib29sZWFuXCI9PXR5cGVvZiBlP2U6ZT8uZXNjYXBlS2V5Pz8hMSxvdXRzaWRlUHJlc3M6XCJib29sZWFuXCI9PXR5cGVvZiBlP2U6ZT8ub3V0c2lkZVByZXNzPz8hMH0pO2Z1bmN0aW9uIG5mKGUsbj17fSl7bGV0e29wZW46dCxvbk9wZW5DaGFuZ2U6cixlbGVtZW50czpvLGRhdGFSZWY6YX09ZSx7ZW5hYmxlZDppPSEwLGVzY2FwZUtleTpsPSEwLG91dHNpZGVQcmVzczpzPSEwLG91dHNpZGVQcmVzc0V2ZW50OmM9XCJwb2ludGVyZG93blwiLHJlZmVyZW5jZVByZXNzOnU9ITEscmVmZXJlbmNlUHJlc3NFdmVudDpkPVwicG9pbnRlcmRvd25cIixhbmNlc3RvclNjcm9sbDpmPSExLGJ1YmJsZXM6cCxjYXB0dXJlOmh9PW4sZz1XKCksbT1UKFwiZnVuY3Rpb25cIj09dHlwZW9mIHM/czooKT0+ITEpLHY9XCJmdW5jdGlvblwiPT10eXBlb2Ygcz9tOnMsYj1DLnVzZVJlZighMSkse2VzY2FwZUtleTp5LG91dHNpZGVQcmVzczp4fT1uZChwKSx7ZXNjYXBlS2V5Oncsb3V0c2lkZVByZXNzOmp9PW5kKGgpLGs9Qy51c2VSZWYoITEpLEE9ZWsoKSxPPVQoZT0+e2lmKCF0fHwhaXx8IWx8fFwiRXNjYXBlXCIhPT1lLmtleXx8ay5jdXJyZW50KXJldHVybjtsZXQgbj1hLmN1cnJlbnQuZmxvYXRpbmdDb250ZXh0Py5ub2RlSWQsbz1nP2U2KGcubm9kZXNSZWYuY3VycmVudCxuKTpbXTtpZigheSYmKGUuc3RvcFByb3BhZ2F0aW9uKCksby5sZW5ndGg+MCkpe2xldCBlPSEwO2lmKG8uZm9yRWFjaChuPT57bi5jb250ZXh0Py5vcGVuJiYhbi5jb250ZXh0LmRhdGFSZWYuY3VycmVudC5fX2VzY2FwZUtleUJ1YmJsZXMmJihlPSExKX0pLCFlKXJldHVybn1yKCExLFwibmF0aXZlRXZlbnRcImluIGU/ZS5uYXRpdmVFdmVudDplLFwiZXNjYXBlLWtleVwiKX0pLFM9VChlPT57bGV0IG49KCk9PntPKGUpLGVYKGUpPy5yZW1vdmVFdmVudExpc3RlbmVyKFwia2V5ZG93blwiLG4pfTtlWChlKT8uYWRkRXZlbnRMaXN0ZW5lcihcImtleWRvd25cIixuKX0pLEU9VChlPT57bGV0IG49YS5jdXJyZW50Lmluc2lkZVJlYWN0VHJlZTthLmN1cnJlbnQuaW5zaWRlUmVhY3RUcmVlPSExO2xldCB0PWIuY3VycmVudDtpZihiLmN1cnJlbnQ9ITEsXCJjbGlja1wiPT09YyYmdHx8bnx8XCJmdW5jdGlvblwiPT10eXBlb2YgdiYmIXYoZSkpcmV0dXJuO2xldCBpPWVYKGUpLGw9YFske2UxKFwiaW5lcnRcIil9XWAscz1lUShvLmZsb2F0aW5nKS5xdWVyeVNlbGVjdG9yQWxsKGwpLHU9ZWUoaSk/aTpudWxsO2Zvcig7dSYmIWVoKHUpOyl7bGV0IGU9ZXYodSk7aWYoZWgoZSl8fCFlZShlKSlicmVhazt1PWV9aWYocy5sZW5ndGgmJmVlKGkpJiYhaS5tYXRjaGVzKFwiaHRtbCxib2R5XCIpJiYhZVkoaSxvLmZsb2F0aW5nKSYmQXJyYXkuZnJvbShzKS5ldmVyeShlPT4hZVkodSxlKSkpcmV0dXJuO2lmKGVuKGkpKXtsZXQgbj1laChpKSx0PWVnKGkpLHI9L2F1dG98c2Nyb2xsLyxvPW58fHIudGVzdCh0Lm92ZXJmbG93WCksYT1ufHxyLnRlc3QodC5vdmVyZmxvd1kpLGw9byYmaS5jbGllbnRXaWR0aD4wJiZpLnNjcm9sbFdpZHRoPmkuY2xpZW50V2lkdGgscz1hJiZpLmNsaWVudEhlaWdodD4wJiZpLnNjcm9sbEhlaWdodD5pLmNsaWVudEhlaWdodCxjPVwicnRsXCI9PT10LmRpcmVjdGlvbix1PXMmJihjP2Uub2Zmc2V0WDw9aS5vZmZzZXRXaWR0aC1pLmNsaWVudFdpZHRoOmUub2Zmc2V0WD5pLmNsaWVudFdpZHRoKSxkPWwmJmUub2Zmc2V0WT5pLmNsaWVudEhlaWdodDtpZih1fHxkKXJldHVybn1sZXQgZD1hLmN1cnJlbnQuZmxvYXRpbmdDb250ZXh0Py5ub2RlSWQsZj1nJiZlNihnLm5vZGVzUmVmLmN1cnJlbnQsZCkuc29tZShuPT5lSyhlLG4uY29udGV4dD8uZWxlbWVudHMuZmxvYXRpbmcpKTtpZihlSyhlLG8uZmxvYXRpbmcpfHxlSyhlLG8uZG9tUmVmZXJlbmNlKXx8ZilyZXR1cm47bGV0IHA9Zz9lNihnLm5vZGVzUmVmLmN1cnJlbnQsZCk6W107aWYocC5sZW5ndGg+MCl7bGV0IGU9ITA7aWYocC5mb3JFYWNoKG49PntuLmNvbnRleHQ/Lm9wZW4mJiFuLmNvbnRleHQuZGF0YVJlZi5jdXJyZW50Ll9fb3V0c2lkZVByZXNzQnViYmxlcyYmKGU9ITEpfSksIWUpcmV0dXJufXIoITEsZSxcIm91dHNpZGUtcHJlc3NcIil9KSxfPVQoZT0+e2xldCBuPSgpPT57RShlKSxlWChlKT8ucmVtb3ZlRXZlbnRMaXN0ZW5lcihjLG4pfTtlWChlKT8uYWRkRXZlbnRMaXN0ZW5lcihjLG4pfSk7Qy51c2VFZmZlY3QoKCk9PntpZighdHx8IWkpcmV0dXJuO2EuY3VycmVudC5fX2VzY2FwZUtleUJ1YmJsZXM9eSxhLmN1cnJlbnQuX19vdXRzaWRlUHJlc3NCdWJibGVzPXg7bGV0IGU9bmV3IGVqO2Z1bmN0aW9uIG4oZSl7cighMSxlLFwiYW5jZXN0b3Itc2Nyb2xsXCIpfWZ1bmN0aW9uIHMoKXtlLmNsZWFyKCksay5jdXJyZW50PSEwfWZ1bmN0aW9uIHUoKXtlLnN0YXJ0KDUqISFlZigpLCgpPT57ay5jdXJyZW50PSExfSl9bGV0IGQ9ZVEoby5mbG9hdGluZyk7bCYmKGQuYWRkRXZlbnRMaXN0ZW5lcihcImtleWRvd25cIix3P1M6Tyx3KSxkLmFkZEV2ZW50TGlzdGVuZXIoXCJjb21wb3NpdGlvbnN0YXJ0XCIscyksZC5hZGRFdmVudExpc3RlbmVyKFwiY29tcG9zaXRpb25lbmRcIix1KSksdiYmZC5hZGRFdmVudExpc3RlbmVyKGMsaj9fOkUsaik7bGV0IHA9W107cmV0dXJuIGYmJihlZShvLmRvbVJlZmVyZW5jZSkmJihwPWViKG8uZG9tUmVmZXJlbmNlKSksZWUoby5mbG9hdGluZykmJihwPXAuY29uY2F0KGViKG8uZmxvYXRpbmcpKSksIWVlKG8ucmVmZXJlbmNlKSYmby5yZWZlcmVuY2UmJm8ucmVmZXJlbmNlLmNvbnRleHRFbGVtZW50JiYocD1wLmNvbmNhdChlYihvLnJlZmVyZW5jZS5jb250ZXh0RWxlbWVudCkpKSksKHA9cC5maWx0ZXIoZT0+ZSE9PWQuZGVmYXVsdFZpZXc/LnZpc3VhbFZpZXdwb3J0KSkuZm9yRWFjaChlPT57ZS5hZGRFdmVudExpc3RlbmVyKFwic2Nyb2xsXCIsbix7cGFzc2l2ZTohMH0pfSksKCk9PntsJiYoZC5yZW1vdmVFdmVudExpc3RlbmVyKFwia2V5ZG93blwiLHc/UzpPLHcpLGQucmVtb3ZlRXZlbnRMaXN0ZW5lcihcImNvbXBvc2l0aW9uc3RhcnRcIixzKSxkLnJlbW92ZUV2ZW50TGlzdGVuZXIoXCJjb21wb3NpdGlvbmVuZFwiLHUpKSx2JiZkLnJlbW92ZUV2ZW50TGlzdGVuZXIoYyxqP186RSxqKSxwLmZvckVhY2goZT0+e2UucmVtb3ZlRXZlbnRMaXN0ZW5lcihcInNjcm9sbFwiLG4pfSksZS5jbGVhcigpfX0sW2EsbyxsLHYsYyx0LHIsZixpLHkseCxPLHcsUyxFLGosX10pLEMudXNlRWZmZWN0KCgpPT57YS5jdXJyZW50Lmluc2lkZVJlYWN0VHJlZT0hMX0sW2EsdixjXSk7bGV0IFA9Qy51c2VNZW1vKCgpPT4oe29uS2V5RG93bjpPLC4uLnUmJntbbmNbZF1dOmU9PntyKCExLGUubmF0aXZlRXZlbnQsXCJyZWZlcmVuY2UtcHJlc3NcIil9LC4uLlwiY2xpY2tcIiE9PWQmJntvbkNsaWNrKGUpe3IoITEsZS5uYXRpdmVFdmVudCxcInJlZmVyZW5jZS1wcmVzc1wiKX19fX0pLFtPLHIsdSxkXSksej1DLnVzZU1lbW8oKCk9Pih7b25LZXlEb3duOk8sb25Nb3VzZURvd24oKXtiLmN1cnJlbnQ9ITB9LG9uTW91c2VVcCgpe2IuY3VycmVudD0hMH0sW251W2NdXTooKT0+e2EuY3VycmVudC5pbnNpZGVSZWFjdFRyZWU9ITB9LG9uQmx1ckNhcHR1cmUoKXtnfHwoYS5jdXJyZW50Lmluc2lkZVJlYWN0VHJlZT0hMCxBLnN0YXJ0KDAsKCk9PnthLmN1cnJlbnQuaW5zaWRlUmVhY3RUcmVlPSExfSkpfX0pLFtPLGMsYSxnLEFdKTtyZXR1cm4gQy51c2VNZW1vKCgpPT5pP3tyZWZlcmVuY2U6UCxmbG9hdGluZzp6fTp7fSxbaSxQLHpdKX1sZXQgbnA9bmV3IE1hcChbW1wic2VsZWN0XCIsXCJsaXN0Ym94XCJdLFtcImNvbWJvYm94XCIsXCJsaXN0Ym94XCJdLFtcImxhYmVsXCIsITFdXSksbmg9W1widG9wXCIsXCJyaWdodFwiLFwiYm90dG9tXCIsXCJsZWZ0XCJdLG5nPU1hdGgubWluLG5tPU1hdGgubWF4LG52PU1hdGgucm91bmQsbmI9TWF0aC5mbG9vcixueT1lPT4oe3g6ZSx5OmV9KSxueD17bGVmdDpcInJpZ2h0XCIscmlnaHQ6XCJsZWZ0XCIsYm90dG9tOlwidG9wXCIsdG9wOlwiYm90dG9tXCJ9LG53PXtzdGFydDpcImVuZFwiLGVuZDpcInN0YXJ0XCJ9O2Z1bmN0aW9uIG5qKGUsbil7cmV0dXJuXCJmdW5jdGlvblwiPT10eXBlb2YgZT9lKG4pOmV9ZnVuY3Rpb24gbmsoZSl7cmV0dXJuIGUuc3BsaXQoXCItXCIpWzBdfWZ1bmN0aW9uIG5BKGUpe3JldHVybiBlLnNwbGl0KFwiLVwiKVsxXX1mdW5jdGlvbiBuTyhlKXtyZXR1cm5cInhcIj09PWU/XCJ5XCI6XCJ4XCJ9ZnVuY3Rpb24gbkMoZSl7cmV0dXJuXCJ5XCI9PT1lP1wiaGVpZ2h0XCI6XCJ3aWR0aFwifWxldCBuUz1uZXcgU2V0KFtcInRvcFwiLFwiYm90dG9tXCJdKTtmdW5jdGlvbiBuRShlKXtyZXR1cm4gblMuaGFzKG5rKGUpKT9cInlcIjpcInhcIn1mdW5jdGlvbiBuXyhlKXtyZXR1cm4gZS5yZXBsYWNlKC9zdGFydHxlbmQvZyxlPT5ud1tlXSl9bGV0IG5QPVtcImxlZnRcIixcInJpZ2h0XCJdLG56PVtcInJpZ2h0XCIsXCJsZWZ0XCJdLG5MPVtcInRvcFwiLFwiYm90dG9tXCJdLG5UPVtcImJvdHRvbVwiLFwidG9wXCJdO2Z1bmN0aW9uIG5SKGUpe3JldHVybiBlLnJlcGxhY2UoL2xlZnR8cmlnaHR8Ym90dG9tfHRvcC9nLGU9Pm54W2VdKX1mdW5jdGlvbiBuTihlKXtyZXR1cm5cIm51bWJlclwiIT10eXBlb2YgZT97dG9wOjAscmlnaHQ6MCxib3R0b206MCxsZWZ0OjAsLi4uZX06e3RvcDplLHJpZ2h0OmUsYm90dG9tOmUsbGVmdDplfX1mdW5jdGlvbiBuRChlKXtsZXR7eDpuLHk6dCx3aWR0aDpyLGhlaWdodDpvfT1lO3JldHVybnt3aWR0aDpyLGhlaWdodDpvLHRvcDp0LGxlZnQ6bixyaWdodDpuK3IsYm90dG9tOnQrbyx4Om4seTp0fX1mdW5jdGlvbiBuQihlLG4sdCl7cmV0dXJuIE1hdGguZmxvb3IoZS9uKSE9PXR9ZnVuY3Rpb24gbk0oZSxuKXtyZXR1cm4gbjwwfHxuPj1lLmN1cnJlbnQubGVuZ3RofWZ1bmN0aW9uIG5JKGUsbil7cmV0dXJuIG5GKGUse2Rpc2FibGVkSW5kaWNlczpufSl9ZnVuY3Rpb24gbkgoZSxuKXtyZXR1cm4gbkYoZSx7ZGVjcmVtZW50OiEwLHN0YXJ0aW5nSW5kZXg6ZS5jdXJyZW50Lmxlbmd0aCxkaXNhYmxlZEluZGljZXM6bn0pfWZ1bmN0aW9uIG5GKGUse3N0YXJ0aW5nSW5kZXg6bj0tMSxkZWNyZW1lbnQ6dD0hMSxkaXNhYmxlZEluZGljZXM6cixhbW91bnQ6bz0xfT17fSl7bGV0IGE9bjtkbyBhKz10Py1vOm87d2hpbGUoYT49MCYmYTw9ZS5jdXJyZW50Lmxlbmd0aC0xJiZuVShlLGEscikpO3JldHVybiBhfWZ1bmN0aW9uIG5VKGUsbix0KXtpZihcImZ1bmN0aW9uXCI9PXR5cGVvZiB0KXJldHVybiB0KG4pO2lmKHQpcmV0dXJuIHQuaW5jbHVkZXMobik7bGV0IHI9ZS5jdXJyZW50W25dO3JldHVybiBudWxsPT1yfHxyLmhhc0F0dHJpYnV0ZShcImRpc2FibGVkXCIpfHxcInRydWVcIj09PXIuZ2V0QXR0cmlidXRlKFwiYXJpYS1kaXNhYmxlZFwiKX1sZXQgblY9MDtmdW5jdGlvbiBucShlLG49e30pe2xldHtwcmV2ZW50U2Nyb2xsOnQ9ITEsY2FuY2VsUHJldmlvdXM6cj0hMCxzeW5jOm89ITF9PW47ciYmY2FuY2VsQW5pbWF0aW9uRnJhbWUoblYpO2xldCBhPSgpPT5lPy5mb2N1cyh7cHJldmVudFNjcm9sbDp0fSk7bz9hKCk6blY9cmVxdWVzdEFuaW1hdGlvbkZyYW1lKGEpfWZ1bmN0aW9uIG5XKGUsbix0KXtzd2l0Y2goZSl7Y2FzZVwidmVydGljYWxcIjpyZXR1cm4gbjtjYXNlXCJob3Jpem9udGFsXCI6cmV0dXJuIHQ7ZGVmYXVsdDpyZXR1cm4gbnx8dH19ZnVuY3Rpb24gbiQoZSxuKXtyZXR1cm4gblcobixlPT09ZVd8fGU9PT1lJCxlPT09ZVZ8fGU9PT1lcSl9ZnVuY3Rpb24gblooZSxuLHQpe3JldHVybiBuVyhuLGU9PT1lJCx0P2U9PT1lVjplPT09ZXEpfHxcIkVudGVyXCI9PT1lfHxcIiBcIj09PWV8fFwiXCI9PT1lfWZ1bmN0aW9uIG5ZKGUsbix0KXtyZXR1cm4gblcobix0P2U9PT1lVjplPT09ZXEsZT09PWUkKX1mdW5jdGlvbiBuWChlLG4sdCxyKXtyZXR1cm5cImJvdGhcIj09PW58fFwiaG9yaXpvbnRhbFwiPT09biYmciYmcj4xP1wiRXNjYXBlXCI9PT1lOm5XKG4sdD9lPT09ZXE6ZT09PWVWLGU9PT1lVyl9ZnVuY3Rpb24gbksoZT1bXSl7bGV0IG49ZS5tYXAoZT0+ZT8ucmVmZXJlbmNlKSx0PWUubWFwKGU9PmU/LmZsb2F0aW5nKSxyPWUubWFwKGU9PmU/Lml0ZW0pLG89Qy51c2VDYWxsYmFjayhuPT5uUShuLGUsXCJyZWZlcmVuY2VcIiksbiksYT1DLnVzZUNhbGxiYWNrKG49Pm5RKG4sZSxcImZsb2F0aW5nXCIpLHQpLGk9Qy51c2VDYWxsYmFjayhuPT5uUShuLGUsXCJpdGVtXCIpLHIpO3JldHVybiBDLnVzZU1lbW8oKCk9Pih7Z2V0UmVmZXJlbmNlUHJvcHM6byxnZXRGbG9hdGluZ1Byb3BzOmEsZ2V0SXRlbVByb3BzOml9KSxbbyxhLGldKX1mdW5jdGlvbiBuUShlLG4sdCl7bGV0IHI9bmV3IE1hcCxvPVwiaXRlbVwiPT09dCxhPXt9O2ZvcihsZXQgbiBpblwiZmxvYXRpbmdcIj09PXQmJihhLnRhYkluZGV4PS0xLGFbZUhdPVwiXCIpLGUpbyYmZSYmKG49PT1lRnx8bj09PWVVKXx8KGFbbl09ZVtuXSk7Zm9yKGxldCBpPTA7aTxuLmxlbmd0aDtpKz0xKXtsZXQgbCxzPW5baV0/Llt0XTsobD1cImZ1bmN0aW9uXCI9PXR5cGVvZiBzP2U/cyhlKTpudWxsOnMpJiZuRyhhLGwsbyxyKX1yZXR1cm4gbkcoYSxlLG8sciksYX1mdW5jdGlvbiBuRyhlLG4sdCxyKXtmb3IobGV0IG8gaW4gbil7bGV0IGE9bltvXTt0JiYobz09PWVGfHxvPT09ZVUpfHwoby5zdGFydHNXaXRoKFwib25cIik/KHIuaGFzKG8pfHxyLnNldChvLFtdKSxcImZ1bmN0aW9uXCI9PXR5cGVvZiBhJiYoci5nZXQobyk/LnB1c2goYSksZVtvXT0oLi4uZSk9PnIuZ2V0KG8pPy5tYXAobj0+biguLi5lKSkuZmluZChlPT52b2lkIDAhPT1lKSkpOmVbb109YSl9fWxldCBuSj1DLmNyZWF0ZUNvbnRleHQodm9pZCAwKTtmdW5jdGlvbiBuMChlKXtsZXQgbj1DLnVzZUNvbnRleHQobkopO2lmKHZvaWQgMD09PW4mJiFlKXRocm93IEVycm9yKFwiQmFzZSBVSTogTWVudVJvb3RDb250ZXh0IGlzIG1pc3NpbmcuIE1lbnUgcGFydHMgbXVzdCBiZSBwbGFjZWQgd2l0aGluIDxNZW51LlJvb3Q+LlwiKTtyZXR1cm4gbn1sZXQgbjE9Qy5jcmVhdGVDb250ZXh0KG51bGwpO2Z1bmN0aW9uIG4yKGUsbj0hMSx0PSExKXtsZXRbcixvXT1DLnVzZVN0YXRlKGUmJm4/XCJpZGxlXCI6dm9pZCAwKSxbYSxpXT1DLnVzZVN0YXRlKGUpO3JldHVybiBlJiYhYSYmKGkoITApLG8oXCJzdGFydGluZ1wiKSksZXx8IWF8fFwiZW5kaW5nXCI9PT1yfHx0fHxvKFwiZW5kaW5nXCIpLGV8fGF8fFwiZW5kaW5nXCIhPT1yfHxvKHZvaWQgMCksRigoKT0+e2lmKCFlJiZhJiZcImVuZGluZ1wiIT09ciYmdCl7bGV0IGU9bmwucmVxdWVzdCgoKT0+e28oXCJlbmRpbmdcIil9KTtyZXR1cm4oKT0+e25sLmNhbmNlbChlKX19fSxbZSxhLHIsdF0pLEYoKCk9PntpZighZXx8bilyZXR1cm47bGV0IHQ9bmwucmVxdWVzdCgoKT0+e0UuZmx1c2hTeW5jKCgpPT57byh2b2lkIDApfSl9KTtyZXR1cm4oKT0+e25sLmNhbmNlbCh0KX19LFtuLGVdKSxGKCgpPT57aWYoIWV8fCFuKXJldHVybjtlJiZhJiZcImlkbGVcIiE9PXImJm8oXCJzdGFydGluZ1wiKTtsZXQgdD1ubC5yZXF1ZXN0KCgpPT57byhcImlkbGVcIil9KTtyZXR1cm4oKT0+e25sLmNhbmNlbCh0KX19LFtuLGUsYSxvLHJdKSxDLnVzZU1lbW8oKCk9Pih7bW91bnRlZDphLHNldE1vdW50ZWQ6aSx0cmFuc2l0aW9uU3RhdHVzOnJ9KSxbYSxyXSl9ZnVuY3Rpb24gbjQoe2NvbnRyb2xsZWQ6ZSxkZWZhdWx0Om4sbmFtZTp0LHN0YXRlOnI9XCJ2YWx1ZVwifSl7bGV0e2N1cnJlbnQ6b309Qy51c2VSZWYodm9pZCAwIT09ZSksW2EsaV09Qy51c2VTdGF0ZShuKSxsPUMudXNlQ2FsbGJhY2soZT0+e298fGkoZSl9LFtdKTtyZXR1cm5bbz9lOmEsbF19ZnVuY3Rpb24gbjUoZSl7bGV0e2VuYWJsZWQ6bj0hMCxvcGVuOnQscmVmOnIsb25Db21wbGV0ZTpvfT1lLGE9ZUEodCksaT1UKG8pLGw9ZnVuY3Rpb24oZSxuPSExKXtsZXQgdD1ucygpLHI9ZWsoKTtyZXR1cm4gVCgobyxhPW51bGwpPT57dC5jYW5jZWwoKSxyLmNsZWFyKCk7bGV0IGk9ZS5jdXJyZW50O2kmJihcImZ1bmN0aW9uXCIhPXR5cGVvZiBpLmdldEFuaW1hdGlvbnN8fGdsb2JhbFRoaXMuQkFTRV9VSV9BTklNQVRJT05TX0RJU0FCTEVEP28oKTp0LnJlcXVlc3QoKCk9PntmdW5jdGlvbiBlKCl7aSYmUHJvbWlzZS5hbGxTZXR0bGVkKGkuZ2V0QW5pbWF0aW9ucygpLm1hcChlPT5lLmZpbmlzaGVkKSkudGhlbigoKT0+e251bGwhPWEmJmEuYWJvcnRlZHx8RS5mbHVzaFN5bmMobyl9KX1uP3Iuc3RhcnQoMCxlKTplKCl9KSl9KX0ocix0KTtDLnVzZUVmZmVjdCgoKT0+e24mJmwoKCk9Pnt0PT09YS5jdXJyZW50JiZpKCl9KX0sW24sdCxpLGwsYV0pfWxldCBuMz1DLmNyZWF0ZUNvbnRleHQodm9pZCAwKTtmdW5jdGlvbiBuNihlPSEwKXtsZXQgbj1DLnVzZUNvbnRleHQobjMpO2lmKHZvaWQgMD09PW4mJiFlKXRocm93IEVycm9yKFwiQmFzZSBVSTogRGlyZWN0aW9uQ29udGV4dCBpcyBtaXNzaW5nLlwiKTtyZXR1cm4gbj8uZGlyZWN0aW9uPz9cImx0clwifWxldCBuOT0oKT0+e30sbjg9e30sbjc9e30sdGU9XCJcIjtjbGFzcyB0bntsb2NrQ291bnQ9MDtyZXN0b3JlPW51bGw7dGltZW91dExvY2s9ZWouY3JlYXRlKCk7dGltZW91dFVubG9jaz1lai5jcmVhdGUoKTthY3F1aXJlKGUpe3JldHVybiB0aGlzLmxvY2tDb3VudCs9MSwxPT09dGhpcy5sb2NrQ291bnQmJm51bGw9PT10aGlzLnJlc3RvcmUmJnRoaXMudGltZW91dExvY2suc3RhcnQoMCwoKT0+dGhpcy5sb2NrKGUpKSx0aGlzLnJlbGVhc2V9cmVsZWFzZT0oKT0+e3RoaXMubG9ja0NvdW50LT0xLDA9PT10aGlzLmxvY2tDb3VudCYmdGhpcy5yZXN0b3JlJiZ0aGlzLnRpbWVvdXRVbmxvY2suc3RhcnQoMCx0aGlzLnVubG9jayl9O3VubG9jaz0oKT0+ezA9PT10aGlzLmxvY2tDb3VudCYmdGhpcy5yZXN0b3JlJiYodGhpcy5yZXN0b3JlPy4oKSx0aGlzLnJlc3RvcmU9bnVsbCl9O2xvY2soZSl7aWYoMD09PXRoaXMubG9ja0NvdW50fHxudWxsIT09dGhpcy5yZXN0b3JlKXJldHVybjtsZXQgbj1lUShlKS5kb2N1bWVudEVsZW1lbnQsdD1RKG4pLmdldENvbXB1dGVkU3R5bGUobikub3ZlcmZsb3dZO2lmKFwiaGlkZGVuXCI9PT10fHxcImNsaXBcIj09PXQpe3RoaXMucmVzdG9yZT1uOTtyZXR1cm59bGV0IHI9ZXp8fCFmdW5jdGlvbihlKXtpZihcInVuZGVmaW5lZFwiPT10eXBlb2YgZG9jdW1lbnQpcmV0dXJuITE7bGV0IG49ZVEoZSk7cmV0dXJuIFEobikuaW5uZXJXaWR0aC1uLmRvY3VtZW50RWxlbWVudC5jbGllbnRXaWR0aD4wfShlKTt0aGlzLnJlc3RvcmU9cj9mdW5jdGlvbihlKXtsZXQgbj1lUShlKS5kb2N1bWVudEVsZW1lbnQsdD1uLnN0eWxlLm92ZXJmbG93O3JldHVybiBuLnN0eWxlLm92ZXJmbG93PVwiaGlkZGVuXCIsKCk9PntuLnN0eWxlLm92ZXJmbG93PXR9fShlKTpmdW5jdGlvbihlKXtsZXQgbj1lUShlKSx0PW4uZG9jdW1lbnRFbGVtZW50LHI9bi5ib2R5LG89USh0KSxhPTAsaT0wLGw9bmwuY3JlYXRlKCk7aWYoZVAmJihvLnZpc3VhbFZpZXdwb3J0Py5zY2FsZT8/MSkhPT0xKXJldHVybigpPT57fTtmdW5jdGlvbiBzKCl7bGV0IGU9by5nZXRDb21wdXRlZFN0eWxlKHQpLG49by5nZXRDb21wdXRlZFN0eWxlKHIpO2E9dC5zY3JvbGxUb3AsaT10LnNjcm9sbExlZnQsbjg9e3Njcm9sbGJhckd1dHRlcjp0LnN0eWxlLnNjcm9sbGJhckd1dHRlcixvdmVyZmxvd1k6dC5zdHlsZS5vdmVyZmxvd1ksb3ZlcmZsb3dYOnQuc3R5bGUub3ZlcmZsb3dYfSx0ZT10LnN0eWxlLnNjcm9sbEJlaGF2aW9yLG43PXtwb3NpdGlvbjpyLnN0eWxlLnBvc2l0aW9uLGhlaWdodDpyLnN0eWxlLmhlaWdodCx3aWR0aDpyLnN0eWxlLndpZHRoLGJveFNpemluZzpyLnN0eWxlLmJveFNpemluZyxvdmVyZmxvd1k6ci5zdHlsZS5vdmVyZmxvd1ksb3ZlcmZsb3dYOnIuc3R5bGUub3ZlcmZsb3dYLHNjcm9sbEJlaGF2aW9yOnIuc3R5bGUuc2Nyb2xsQmVoYXZpb3J9O2xldCBsPVwidW5kZWZpbmVkXCIhPXR5cGVvZiBDU1MmJkNTUy5zdXBwb3J0cz8uKFwic2Nyb2xsYmFyLWd1dHRlclwiLFwic3RhYmxlXCIpLHM9dC5zY3JvbGxIZWlnaHQ+dC5jbGllbnRIZWlnaHQsYz10LnNjcm9sbFdpZHRoPnQuY2xpZW50V2lkdGgsdT1cInNjcm9sbFwiPT09ZS5vdmVyZmxvd1l8fFwic2Nyb2xsXCI9PT1uLm92ZXJmbG93WSxkPVwic2Nyb2xsXCI9PT1lLm92ZXJmbG93WHx8XCJzY3JvbGxcIj09PW4ub3ZlcmZsb3dYLGY9TWF0aC5tYXgoMCxvLmlubmVyV2lkdGgtdC5jbGllbnRXaWR0aCkscD1NYXRoLm1heCgwLG8uaW5uZXJIZWlnaHQtdC5jbGllbnRIZWlnaHQpLGg9cGFyc2VGbG9hdChuLm1hcmdpblRvcCkrcGFyc2VGbG9hdChuLm1hcmdpbkJvdHRvbSksZz1wYXJzZUZsb2F0KG4ubWFyZ2luTGVmdCkrcGFyc2VGbG9hdChuLm1hcmdpblJpZ2h0KTtPYmplY3QuYXNzaWduKHQuc3R5bGUse3Njcm9sbGJhckd1dHRlcjpcInN0YWJsZVwiLG92ZXJmbG93WTohbCYmKHN8fHUpP1wic2Nyb2xsXCI6XCJoaWRkZW5cIixvdmVyZmxvd1g6IWwmJihjfHxkKT9cInNjcm9sbFwiOlwiaGlkZGVuXCJ9KSxPYmplY3QuYXNzaWduKHIuc3R5bGUse3Bvc2l0aW9uOlwicmVsYXRpdmVcIixoZWlnaHQ6aHx8cD9gY2FsYygxMDBkdmggLSAke2grcH1weClgOlwiMTAwZHZoXCIsd2lkdGg6Z3x8Zj9gY2FsYygxMDB2dyAtICR7ZytmfXB4KWA6XCIxMDB2d1wiLGJveFNpemluZzpcImJvcmRlci1ib3hcIixvdmVyZmxvdzpcImhpZGRlblwiLHNjcm9sbEJlaGF2aW9yOlwidW5zZXRcIn0pLHIuc2Nyb2xsVG9wPWEsci5zY3JvbGxMZWZ0PWksdC5zZXRBdHRyaWJ1dGUoXCJkYXRhLWJhc2UtdWktc2Nyb2xsLWxvY2tlZFwiLFwiXCIpLHQuc3R5bGUuc2Nyb2xsQmVoYXZpb3I9XCJ1bnNldFwifWZ1bmN0aW9uIGMoKXtPYmplY3QuYXNzaWduKHQuc3R5bGUsbjgpLE9iamVjdC5hc3NpZ24oci5zdHlsZSxuNyksdC5zY3JvbGxUb3A9YSx0LnNjcm9sbExlZnQ9aSx0LnJlbW92ZUF0dHJpYnV0ZShcImRhdGEtYmFzZS11aS1zY3JvbGwtbG9ja2VkXCIpLHQuc3R5bGUuc2Nyb2xsQmVoYXZpb3I9dGV9ZnVuY3Rpb24gdSgpe2MoKSxsLnJlcXVlc3Qocyl9cmV0dXJuIHMoKSxvLmFkZEV2ZW50TGlzdGVuZXIoXCJyZXNpemVcIix1KSwoKT0+e2wuY2FuY2VsKCksYygpLG8ucmVtb3ZlRXZlbnRMaXN0ZW5lcihcInJlc2l6ZVwiLHUpfX0oZSl9fWxldCB0dD1uZXcgdG47ZnVuY3Rpb24gdHIoZSl7aWYoZSlyZXR1cm4oe1wiZm9jdXMtb3V0XCI6XCJmb2N1cy1vdXRcIixcImVzY2FwZS1rZXlcIjpcImVzY2FwZS1rZXlcIixcIm91dHNpZGUtcHJlc3NcIjpcIm91dHNpZGUtcHJlc3NcIixcImxpc3QtbmF2aWdhdGlvblwiOlwibGlzdC1uYXZpZ2F0aW9uXCIsY2xpY2s6XCJ0cmlnZ2VyLXByZXNzXCIsaG92ZXI6XCJ0cmlnZ2VyLWhvdmVyXCIsZm9jdXM6XCJ0cmlnZ2VyLWZvY3VzXCIsXCJyZWZlcmVuY2UtcHJlc3NcIjpcInRyaWdnZXItcHJlc3NcIixcInNhZmUtcG9seWdvblwiOlwidHJpZ2dlci1ob3ZlclwiLFwiYW5jZXN0b3Itc2Nyb2xsXCI6dm9pZCAwfSlbZV19bGV0IHRvPUMuY3JlYXRlQ29udGV4dCh2b2lkIDApO2Z1bmN0aW9uIHRhKGU9ITApe2xldCBuPUMudXNlQ29udGV4dCh0byk7aWYodm9pZCAwPT09biYmIWUpdGhyb3cgRXJyb3IoXCJCYXNlIFVJOiBDb250ZXh0TWVudVJvb3RDb250ZXh0IGlzIG1pc3NpbmcuIENvbnRleHRNZW51IHBhcnRzIG11c3QgYmUgcGxhY2VkIHdpdGhpbiA8Q29udGV4dE1lbnUuUm9vdD4uXCIpO3JldHVybiBufWxldCB0aT1DLmNyZWF0ZUNvbnRleHQoITEpO2Z1bmN0aW9uIHRsKGUsbil7cmV0dXJuIGUmJiFuP2U6IWUmJm4/bjplfHxuP3suLi5lLC4uLm59OnZvaWQgMH1sZXQgdHM9e307ZnVuY3Rpb24gdGMoZSxuLHQscixvKXtsZXQgYT17Li4udGYoZSx0cyl9O3JldHVybiBuJiYoYT10dShhLG4pKSx0JiYoYT10dShhLHQpKSxyJiYoYT10dShhLHIpKSxvJiYoYT10dShhLG8pKSxhfWZ1bmN0aW9uIHR1KGUsbil7cmV0dXJuIHRkKG4pP24oZSk6ZnVuY3Rpb24oZSxuKXtpZighbilyZXR1cm4gZTtmb3IobGV0IHQgaW4gbil7bGV0IHI9blt0XTtzd2l0Y2godCl7Y2FzZVwic3R5bGVcIjplW3RdPXRsKGUuc3R5bGUscik7YnJlYWs7Y2FzZVwiY2xhc3NOYW1lXCI6ZVt0XT10aChlLmNsYXNzTmFtZSxyKTticmVhaztkZWZhdWx0OiFmdW5jdGlvbihlLG4pe2xldCB0PWUuY2hhckNvZGVBdCgwKSxyPWUuY2hhckNvZGVBdCgxKSxvPWUuY2hhckNvZGVBdCgyKTtyZXR1cm4gMTExPT09dCYmMTEwPT09ciYmbz49NjUmJm88PTkwJiYoXCJmdW5jdGlvblwiPT10eXBlb2Ygbnx8dm9pZCAwPT09bil9KHQscik/ZVt0XT1yOmVbdF09ZnVuY3Rpb24oZSxuKXtyZXR1cm4gbj9lP3Q9Pnt2YXIgcjtpZihudWxsIT0ocj10KSYmXCJvYmplY3RcIj09dHlwZW9mIHImJlwibmF0aXZlRXZlbnRcImluIHIpe3RwKHQpO2xldCByPW4odCk7cmV0dXJuIHQuYmFzZVVJSGFuZGxlclByZXZlbnRlZHx8ZT8uKHQpLHJ9bGV0IG89bih0KTtyZXR1cm4gZT8uKHQpLG99Om46ZX0oZVt0XSxyKX19cmV0dXJuIGV9KGUsbil9ZnVuY3Rpb24gdGQoZSl7cmV0dXJuXCJmdW5jdGlvblwiPT10eXBlb2YgZX1mdW5jdGlvbiB0ZihlLG4pe3JldHVybiB0ZChlKT9lKG4pOmU/P3RzfWZ1bmN0aW9uIHRwKGUpe3JldHVybiBlLnByZXZlbnRCYXNlVUlIYW5kbGVyPSgpPT57ZS5iYXNlVUlIYW5kbGVyUHJldmVudGVkPSEwfSxlfWZ1bmN0aW9uIHRoKGUsbil7cmV0dXJuIG4/ZT9uK1wiIFwiK2U6bjplfWxldCB0Zz1bXSx0bT17Y3VycmVudDohMX0sdHY9ZnVuY3Rpb24oZSl7bGV0IG4sdCx7Y2hpbGRyZW46cixvcGVuOm8sb25PcGVuQ2hhbmdlOmEsb25PcGVuQ2hhbmdlQ29tcGxldGU6aSxkZWZhdWx0T3BlbjpzPSExLGRpc2FibGVkOmM9ITEsbW9kYWw6dSxsb29wOmQ9ITAsb3JpZW50YXRpb246Zj1cInZlcnRpY2FsXCIsYWN0aW9uc1JlZjpwLG9wZW5PbkhvdmVyOmgsZGVsYXk6Zz0xMDAsY2xvc2VEZWxheTptPTAsY2xvc2VQYXJlbnRPbkVzYzp2PSEwfT1lLFtiLHldPUMudXNlU3RhdGUobnVsbCksW3gsd109Qy51c2VTdGF0ZShudWxsKSxbaixrXT1DLnVzZVN0YXRlKCksW0EsT109Qy51c2VTdGF0ZSghMCksW1MsX109Qy51c2VTdGF0ZShudWxsKSxbUCx6XT1DLnVzZVN0YXRlKG51bGwpLFtMLFJdPUMudXNlU3RhdGUoITApLFtOLERdPUMudXNlU3RhdGUoITEpLEI9Qy51c2VSZWYobnVsbCksTT1DLnVzZVJlZihudWxsKSxJPUMudXNlUmVmKG51bGwpLFU9ZWsoKSxWPXRhKCEwKSwkPUMudXNlQ29udGV4dCh0aSk7e2xldCBlPW4wKCEwKSx0PWZ1bmN0aW9uKGUpe2xldCBuPUMudXNlQ29udGV4dChuMSk7aWYobnVsbD09PW4mJiFlKXRocm93IEVycm9yKFwiQmFzZSBVSTogTWVudWJhckNvbnRleHQgaXMgbWlzc2luZy4gTWVudWJhciBwYXJ0cyBtdXN0IGJlIHBsYWNlZCB3aXRoaW4gPE1lbnViYXI+LlwiKTtyZXR1cm4gbn0oITApO249JCYmZT97dHlwZTpcIm1lbnVcIixjb250ZXh0OmV9OnQ/e3R5cGU6XCJtZW51YmFyXCIsY29udGV4dDp0fTpWP3t0eXBlOlwiY29udGV4dC1tZW51XCIsY29udGV4dDpWfTp7dHlwZTp2b2lkIDB9fWxldCBYPUgoKTt2b2lkIDAhPT1uLnR5cGUmJihYPW4uY29udGV4dC5yb290SWQpO2xldCBLPSh2b2lkIDA9PT1uLnR5cGV8fFwiY29udGV4dC1tZW51XCI9PT1uLnR5cGUpJiYodT8/ITApLFE9XCJtZW51XCI9PT1uLnR5cGU/bi5jb250ZXh0LmFsbG93TW91c2VFbnRlcjpOLEc9XCJtZW51XCI9PT1uLnR5cGU/bi5jb250ZXh0LnNldEFsbG93TW91c2VFbnRlcjpELEo9aD8/KFwibWVudVwiPT09bi50eXBlfHxcIm1lbnViYXJcIj09PW4udHlwZSYmbi5jb250ZXh0Lmhhc1N1Ym1lbnVPcGVuKSxbZWUsZXRdPW40KHtjb250cm9sbGVkOm8sZGVmYXVsdDpzLG5hbWU6XCJNZW51Um9vdFwiLHN0YXRlOlwib3BlblwifSksZXI9Qy51c2VSZWYoXCJjb250ZXh0LW1lbnVcIiE9PW4udHlwZSksZW89ZWsoKTtDLnVzZUVmZmVjdCgoKT0+e2lmKGVlfHwoQi5jdXJyZW50PW51bGwpLFwiY29udGV4dC1tZW51XCI9PT1uLnR5cGUpe2lmKCFlZSl7ZW8uY2xlYXIoKSxlci5jdXJyZW50PSExO3JldHVybn1lby5zdGFydCg1MDAsKCk9Pntlci5jdXJyZW50PSEwfSl9fSxbZW8sZWUsbi50eXBlXSk7bGV0IGVhPUMudXNlQ2FsbGJhY2soZT0+e0kuY3VycmVudD1lLHcoZSl9LFtdKSx7bW91bnRlZDplaSxzZXRNb3VudGVkOmVsLHRyYW5zaXRpb25TdGF0dXM6ZXN9PW4yKGVlKSx7ZW5hYmxlZDplYz0hMCxtb3VudGVkOmV1LG9wZW46ZWQscmVmZXJlbmNlRWxlbWVudDplZj1udWxsfT17ZW5hYmxlZDplZSYmSyYmXCJ0cmlnZ2VyLWhvdmVyXCIhPT1QLG1vdW50ZWQ6ZWksb3BlbjplZSxyZWZlcmVuY2VFbGVtZW50Onh9O0YoKCk9PntpZihlUCYmZXUmJiFlZCl7bGV0IGU9ZVEoZWYpLG49ZS5ib2R5LnN0eWxlLnVzZXJTZWxlY3QsdD1lLmJvZHkuc3R5bGUud2Via2l0VXNlclNlbGVjdDtyZXR1cm4gZS5ib2R5LnN0eWxlLnVzZXJTZWxlY3Q9XCJub25lXCIsZS5ib2R5LnN0eWxlLndlYmtpdFVzZXJTZWxlY3Q9XCJub25lXCIsKCk9PntlLmJvZHkuc3R5bGUudXNlclNlbGVjdD1uLGUuYm9keS5zdHlsZS53ZWJraXRVc2VyU2VsZWN0PXR9fX0sW2V1LGVkLGVmXSksRigoKT0+e2lmKGVjKXJldHVybiB0dC5hY3F1aXJlKGVmKX0sW2VjLGVmXSksZWV8fEF8fE8oITApO2xldCBlcD1UKCgpPT57ZWwoITEpLFIoITApLEcoITEpLGk/LighMSl9KTtuNSh7ZW5hYmxlZDohcCxvcGVuOmVlLHJlZjpNLG9uQ29tcGxldGUoKXtlZXx8ZXAoKX19KTtsZXQgZWg9Qy51c2VSZWYoITApLGVnPWVrKCksZW09VCgoZSx0LHIpPT57aWYoZWU9PT1lfHwhMT09PWUmJnQ/LnR5cGU9PT1cImNsaWNrXCImJlwidG91Y2hcIj09PXQucG9pbnRlclR5cGUmJiFlaC5jdXJyZW50KXJldHVybjtlJiZcInRyaWdnZXItZm9jdXNcIj09PXI/KGVoLmN1cnJlbnQ9ITEsZWcuc3RhcnQoMzAwLCgpPT57ZWguY3VycmVudD0hMH0pKTooZWguY3VycmVudD0hMCxlZy5jbGVhcigpKTtsZXQgbz0oXCJ0cmlnZ2VyLXByZXNzXCI9PT1yfHxcIml0ZW0tcHJlc3NcIj09PXIpJiYwPT09dC5kZXRhaWwmJnQ/LmlzVHJ1c3RlZCxpPSFlJiYoXCJlc2NhcGUta2V5XCI9PT1yfHxudWxsPT1yKTtmdW5jdGlvbiBsKCl7YT8uKGUsdCxyKSxldChlKSx6KHI/P251bGwpLEIuY3VycmVudD10Pz9udWxsfVwidHJpZ2dlci1ob3ZlclwiPT09cj8oUighMCksVS5zdGFydCg1MDAsKCk9PntSKCExKX0pLEUuZmx1c2hTeW5jKGwpKTpsKCksXCJtZW51YmFyXCI9PT1uLnR5cGUmJihcInRyaWdnZXItZm9jdXNcIj09PXJ8fFwiZm9jdXMtb3V0XCI9PT1yfHxcInRyaWdnZXItaG92ZXJcIj09PXJ8fFwibGlzdC1uYXZpZ2F0aW9uXCI9PT1yfHxcInNpYmxpbmctb3BlblwiPT09cik/ayhcImdyb3VwXCIpOm98fGk/ayhvP1wiY2xpY2tcIjpcImRpc21pc3NcIik6ayh2b2lkIDApfSk7Qy51c2VJbXBlcmF0aXZlSGFuZGxlKHAsKCk9Pih7dW5tb3VudDplcH0pLFtlcF0pLFwiY29udGV4dC1tZW51XCI9PT1uLnR5cGUmJih0PW4uY29udGV4dCksQy51c2VJbXBlcmF0aXZlSGFuZGxlKHQ/LnBvc2l0aW9uZXJSZWYsKCk9PngsW3hdKSxDLnVzZUltcGVyYXRpdmVIYW5kbGUodD8uYWN0aW9uc1JlZiwoKT0+KHtzZXRPcGVuOmVtfSksW2VtXSksQy51c2VFZmZlY3QoKCk9PntlZXx8VS5jbGVhcigpfSxbVSxlZV0pO2xldCBldj1ZKHtlbGVtZW50czp7cmVmZXJlbmNlOmIsZmxvYXRpbmc6eH0sb3BlbjplZSxvbk9wZW5DaGFuZ2UoZSxuLHQpe2VtKGUsbix0cih0KSl9fSksZWI9ZTMoZXYse2VuYWJsZWQ6QSYmSiYmIWMmJlwiY29udGV4dC1tZW51XCIhPT1uLnR5cGUmJihcIm1lbnViYXJcIiE9PW4udHlwZXx8bi5jb250ZXh0Lmhhc1N1Ym1lbnVPcGVuJiYhZWUpLGhhbmRsZUNsb3NlOmU3KHtibG9ja1BvaW50ZXJFdmVudHM6ITB9KSxtb3VzZU9ubHk6ITAsbW92ZTpcIm1lbnVcIj09PW4udHlwZSxyZXN0TXM6dm9pZCAwPT09bi50eXBlfHxcIm1lbnVcIj09PW4udHlwZSYmUT9nOnZvaWQgMCxkZWxheTpcIm1lbnVcIj09PW4udHlwZT97b3BlbjpRP2c6MWUxMCxjbG9zZTptfTp7Y2xvc2U6bX19KSxleT1ubihldix7ZW5hYmxlZDohYyYmIWVlJiZcIm1lbnViYXJcIj09PW4udHlwZSYmbi5jb250ZXh0Lmhhc1N1Ym1lbnVPcGVuJiYhVn0pLGV4PWZ1bmN0aW9uKGUsbj17fSl7bGV0e29wZW46dCxvbk9wZW5DaGFuZ2U6cixkYXRhUmVmOm99PWUse2VuYWJsZWQ6YT0hMCxldmVudDppPVwiY2xpY2tcIix0b2dnbGU6bD0hMCxpZ25vcmVNb3VzZTpzPSExLHN0aWNrSWZPcGVuOmM9ITB9PW4sdT1DLnVzZVJlZih2b2lkIDApLGQ9bnMoKSxmPUMudXNlTWVtbygoKT0+KHtvblBvaW50ZXJEb3duKGUpe3UuY3VycmVudD1lLnBvaW50ZXJUeXBlfSxvbk1vdXNlRG93bihlKXtsZXQgbj11LmN1cnJlbnQsYT1lLm5hdGl2ZUV2ZW50O2lmKDAhPT1lLmJ1dHRvbnx8XCJjbGlja1wiPT09aXx8ZUkobiwhMCkmJnMpcmV0dXJuO2xldCBmPW8uY3VycmVudC5vcGVuRXZlbnQscD1mPy50eXBlLGg9ISh0JiZsJiYoIWZ8fCFjfHxcImNsaWNrXCI9PT1wfHxcIm1vdXNlZG93blwiPT09cCkpO2QucmVxdWVzdCgoKT0+e3IoaCxhLFwiY2xpY2tcIil9KX0sb25DbGljayhlKXtsZXQgbj11LmN1cnJlbnQ7aWYoXCJtb3VzZWRvd25cIj09PWkmJm4pe3UuY3VycmVudD12b2lkIDA7cmV0dXJufWlmKGVJKG4sITApJiZzKXJldHVybjtsZXQgYT1vLmN1cnJlbnQub3BlbkV2ZW50LGQ9YT8udHlwZTtyKCEodCYmbCYmKCFhfHwhY3x8XCJjbGlja1wiPT09ZHx8XCJtb3VzZWRvd25cIj09PWR8fFwia2V5ZG93blwiPT09ZHx8XCJrZXl1cFwiPT09ZCkpLGUubmF0aXZlRXZlbnQsXCJjbGlja1wiKX0sb25LZXlEb3duKCl7dS5jdXJyZW50PXZvaWQgMH19KSxbbyxpLHMscix0LGMsbCxkXSk7cmV0dXJuIEMudXNlTWVtbygoKT0+YT97cmVmZXJlbmNlOmZ9Om5yLFthLGZdKX0oZXYse2VuYWJsZWQ6IWMmJlwiY29udGV4dC1tZW51XCIhPT1uLnR5cGUsZXZlbnQ6ZWUmJlwibWVudWJhclwiPT09bi50eXBlP1wiY2xpY2tcIjpcIm1vdXNlZG93blwiLHRvZ2dsZTohSnx8XCJtZW51XCIhPT1uLnR5cGUsaWdub3JlTW91c2U6SiYmXCJtZW51XCI9PT1uLnR5cGUsc3RpY2tJZk9wZW46dm9pZCAwPT09bi50eXBlJiZMfSksZXc9bmYoZXYse2VuYWJsZWQ6IWMsYnViYmxlczp2JiZcIm1lbnVcIj09PW4udHlwZSxvdXRzaWRlUHJlc3NFdmVudDpcIm1vdXNlZG93blwiLG91dHNpZGVQcmVzczooKT0+XCJjb250ZXh0LW1lbnVcIiE9PW4udHlwZXx8Qi5jdXJyZW50Py50eXBlPT09XCJjb250ZXh0bWVudVwifHxlci5jdXJyZW50fSksZWo9ZnVuY3Rpb24oZSxuPXt9KXtsZXR7b3Blbjp0LGVsZW1lbnRzOnIsZmxvYXRpbmdJZDpvfT1lLHtlbmFibGVkOmE9ITAscm9sZTppPVwiZGlhbG9nXCJ9PW4sbD1IKCkscz1yLmRvbVJlZmVyZW5jZT8uaWR8fGwsYz1DLnVzZU1lbW8oKCk9PmUwKHIuZmxvYXRpbmcpPy5pZHx8byxbci5mbG9hdGluZyxvXSksdT1ucC5nZXQoaSk/P2ksZD1udWxsIT1xKCksZj1DLnVzZU1lbW8oKCk9PlwidG9vbHRpcFwiPT09dXx8XCJsYWJlbFwiPT09aT97W2BhcmlhLSR7XCJsYWJlbFwiPT09aT9cImxhYmVsbGVkYnlcIjpcImRlc2NyaWJlZGJ5XCJ9YF06dD9jOnZvaWQgMH06e1wiYXJpYS1leHBhbmRlZFwiOnQ/XCJ0cnVlXCI6XCJmYWxzZVwiLFwiYXJpYS1oYXNwb3B1cFwiOlwiYWxlcnRkaWFsb2dcIj09PXU/XCJkaWFsb2dcIjp1LFwiYXJpYS1jb250cm9sc1wiOnQ/Yzp2b2lkIDAsLi4uXCJsaXN0Ym94XCI9PT11JiZ7cm9sZTpcImNvbWJvYm94XCJ9LC4uLlwibWVudVwiPT09dSYme2lkOnN9LC4uLlwibWVudVwiPT09dSYmZCYme3JvbGU6XCJtZW51aXRlbVwifSwuLi5cInNlbGVjdFwiPT09aSYme1wiYXJpYS1hdXRvY29tcGxldGVcIjpcIm5vbmVcIn0sLi4uXCJjb21ib2JveFwiPT09aSYme1wiYXJpYS1hdXRvY29tcGxldGVcIjpcImxpc3RcIn19LFt1LGMsZCx0LHMsaV0pLHA9Qy51c2VNZW1vKCgpPT57bGV0IGU9e2lkOmMsLi4udSYme3JvbGU6dX19O3JldHVyblwidG9vbHRpcFwiPT09dXx8XCJsYWJlbFwiPT09aT9lOnsuLi5lLC4uLlwibWVudVwiPT09dSYme1wiYXJpYS1sYWJlbGxlZGJ5XCI6c319fSxbdSxjLHMsaV0pLGg9Qy51c2VDYWxsYmFjaygoe2FjdGl2ZTplLHNlbGVjdGVkOm59KT0+e2xldCB0PXtyb2xlOlwib3B0aW9uXCIsLi4uZSYme2lkOmAke2N9LWZ1aS1vcHRpb25gfX07c3dpdGNoKGkpe2Nhc2VcInNlbGVjdFwiOnJldHVybnsuLi50LFwiYXJpYS1zZWxlY3RlZFwiOmUmJm59O2Nhc2VcImNvbWJvYm94XCI6cmV0dXJuey4uLnQsXCJhcmlhLXNlbGVjdGVkXCI6bn19cmV0dXJue319LFtjLGldKTtyZXR1cm4gQy51c2VNZW1vKCgpPT5hP3tyZWZlcmVuY2U6ZixmbG9hdGluZzpwLGl0ZW06aH06e30sW2EsZixwLGhdKX0oZXYse3JvbGU6XCJtZW51XCJ9KSxlTz1DLnVzZVJlZihbXSksZUM9Qy51c2VSZWYoW10pLGVTPW42KCksZUU9ZnVuY3Rpb24oZSxuKXtsZXR7b3Blbjp0LG9uT3BlbkNoYW5nZTpyLGVsZW1lbnRzOm8sZmxvYXRpbmdJZDphfT1lLHtsaXN0UmVmOmksYWN0aXZlSW5kZXg6bCxvbk5hdmlnYXRlOnM9KCk9Pnt9LGVuYWJsZWQ6Yz0hMCxzZWxlY3RlZEluZGV4OnU9bnVsbCxhbGxvd0VzY2FwZTpkPSExLGxvb3A6Zj0hMSxuZXN0ZWQ6cD0hMSxydGw6aD0hMSx2aXJ0dWFsOmc9ITEsZm9jdXNJdGVtT25PcGVuOm09XCJhdXRvXCIsZm9jdXNJdGVtT25Ib3Zlcjp2PSEwLG9wZW5PbkFycm93S2V5RG93bjpiPSEwLGRpc2FibGVkSW5kaWNlczp5LG9yaWVudGF0aW9uOng9XCJ2ZXJ0aWNhbFwiLHBhcmVudE9yaWVudGF0aW9uOncsY29sczpqPTEsc2Nyb2xsSXRlbUludG9WaWV3Oms9ITAsdmlydHVhbEl0ZW1SZWY6QSxpdGVtU2l6ZXM6TyxkZW5zZTpTPSExfT1uLEU9ZUEoZTAoby5mbG9hdGluZykpLF89cSgpLFA9VygpO0YoKCk9PntlLmRhdGFSZWYuY3VycmVudC5vcmllbnRhdGlvbj14fSxbZSx4XSk7bGV0IHo9ZUooby5kb21SZWZlcmVuY2UpLEw9Qy51c2VSZWYobSksUj1DLnVzZVJlZih1Pz8tMSksTj1DLnVzZVJlZihudWxsKSxEPUMudXNlUmVmKCEwKSxCPVQoKCk9PntzKC0xPT09Ui5jdXJyZW50P251bGw6Ui5jdXJyZW50KX0pLE09Qy51c2VSZWYoQiksST1DLnVzZVJlZighIW8uZmxvYXRpbmcpLEg9Qy51c2VSZWYodCksVT1DLnVzZVJlZighMSksVj1DLnVzZVJlZighMSksJD1lQSh5KSxaPWVBKHQpLFk9ZUEoayksWD1lQSh1KSxbSyxRXT1DLnVzZVN0YXRlKCksW0csSl09Qy51c2VTdGF0ZSgpLGVlPVQoKCk9PntmdW5jdGlvbiBlKGUpe2c/KGUuaWQ/LmVuZHNXaXRoKFwiLWZ1aS1vcHRpb25cIikmJihlLmlkPWAke2F9LSR7TWF0aC5yYW5kb20oKS50b1N0cmluZygxNikuc2xpY2UoMiwxMCl9YCksUShlLmlkKSxQPy5ldmVudHMuZW1pdChcInZpcnR1YWxmb2N1c1wiLGUpLEEmJihBLmN1cnJlbnQ9ZSkpOm5xKGUse3N5bmM6VS5jdXJyZW50LHByZXZlbnRTY3JvbGw6ITB9KX1sZXQgbj1pLmN1cnJlbnRbUi5jdXJyZW50XSx0PVYuY3VycmVudDtuJiZlKG4pLChVLmN1cnJlbnQ/ZT0+ZSgpOnJlcXVlc3RBbmltYXRpb25GcmFtZSkoKCk9PntsZXQgcj1pLmN1cnJlbnRbUi5jdXJyZW50XXx8bjtpZighcilyZXR1cm47bnx8ZShyKTtsZXQgbz1ZLmN1cnJlbnQ7byYmZXImJih0fHwhRC5jdXJyZW50KSYmci5zY3JvbGxJbnRvVmlldz8uKFwiYm9vbGVhblwiPT10eXBlb2Ygbz97YmxvY2s6XCJuZWFyZXN0XCIsaW5saW5lOlwibmVhcmVzdFwifTpvKX0pfSk7RigoKT0+e2MmJih0JiZvLmZsb2F0aW5nP0wuY3VycmVudCYmbnVsbCE9dSYmKFYuY3VycmVudD0hMCxSLmN1cnJlbnQ9dSxCKCkpOkkuY3VycmVudCYmKFIuY3VycmVudD0tMSxNLmN1cnJlbnQoKSkpfSxbYyx0LG8uZmxvYXRpbmcsdSxCXSksRigoKT0+e2lmKGMmJnQmJm8uZmxvYXRpbmcpaWYobnVsbD09bCl7aWYoVS5jdXJyZW50PSExLG51bGwhPVguY3VycmVudClyZXR1cm47aWYoSS5jdXJyZW50JiYoUi5jdXJyZW50PS0xLGVlKCkpLCghSC5jdXJyZW50fHwhSS5jdXJyZW50KSYmTC5jdXJyZW50JiYobnVsbCE9Ti5jdXJyZW50fHwhMD09PUwuY3VycmVudCYmbnVsbD09Ti5jdXJyZW50KSl7bGV0IGU9MCxuPSgpPT57bnVsbD09aS5jdXJyZW50WzBdPyhlPDImJihlP3JlcXVlc3RBbmltYXRpb25GcmFtZTpxdWV1ZU1pY3JvdGFzaykobiksZSs9MSk6KFIuY3VycmVudD1udWxsPT1OLmN1cnJlbnR8fG5aKE4uY3VycmVudCx4LGgpfHxwP25JKGksJC5jdXJyZW50KTpuSChpLCQuY3VycmVudCksTi5jdXJyZW50PW51bGwsQigpKX07bigpfX1lbHNlIG5NKGksbCl8fChSLmN1cnJlbnQ9bCxlZSgpLFYuY3VycmVudD0hMSl9LFtjLHQsby5mbG9hdGluZyxsLFgscCxpLHgsaCxCLGVlLCRdKSxGKCgpPT57aWYoIWN8fG8uZmxvYXRpbmd8fCFQfHxnfHwhSS5jdXJyZW50KXJldHVybjtsZXQgZT1QLm5vZGVzUmVmLmN1cnJlbnQsbj1lLmZpbmQoZT0+ZS5pZD09PV8pPy5jb250ZXh0Py5lbGVtZW50cy5mbG9hdGluZyx0PWVaKGVRKG8uZmxvYXRpbmcpKSxyPWUuc29tZShlPT5lLmNvbnRleHQmJmVZKGUuY29udGV4dC5lbGVtZW50cy5mbG9hdGluZyx0KSk7biYmIXImJkQuY3VycmVudCYmbi5mb2N1cyh7cHJldmVudFNjcm9sbDohMH0pfSxbYyxvLmZsb2F0aW5nLFAsXyxnXSksRigoKT0+e2lmKGMmJlAmJmcmJiFfKXJldHVybiBQLmV2ZW50cy5vbihcInZpcnR1YWxmb2N1c1wiLGUpLCgpPT57UC5ldmVudHMub2ZmKFwidmlydHVhbGZvY3VzXCIsZSl9O2Z1bmN0aW9uIGUoZSl7SihlLmlkKSxBJiYoQS5jdXJyZW50PWUpfX0sW2MsUCxnLF8sQV0pLEYoKCk9PntNLmN1cnJlbnQ9QixILmN1cnJlbnQ9dCxJLmN1cnJlbnQ9ISFvLmZsb2F0aW5nfSksRigoKT0+e3R8fChOLmN1cnJlbnQ9bnVsbCxMLmN1cnJlbnQ9bSl9LFt0LG1dKTtsZXQgZXQ9bnVsbCE9bCxlcj1DLnVzZU1lbW8oKCk9PntmdW5jdGlvbiBlKGUpe2lmKCFaLmN1cnJlbnQpcmV0dXJuO2xldCBuPWkuY3VycmVudC5pbmRleE9mKGUpOy0xIT09biYmUi5jdXJyZW50IT09biYmKFIuY3VycmVudD1uLEIoKSl9cmV0dXJue29uRm9jdXMoe2N1cnJlbnRUYXJnZXQ6bn0pe1UuY3VycmVudD0hMCxlKG4pfSxvbkNsaWNrOih7Y3VycmVudFRhcmdldDplfSk9PmUuZm9jdXMoe3ByZXZlbnRTY3JvbGw6ITB9KSxvbk1vdXNlTW92ZSh7Y3VycmVudFRhcmdldDpufSl7VS5jdXJyZW50PSEwLFYuY3VycmVudD0hMSx2JiZlKG4pfSxvblBvaW50ZXJMZWF2ZSh7cG9pbnRlclR5cGU6ZX0pe0QuY3VycmVudCYmXCJ0b3VjaFwiIT09ZSYmKFUuY3VycmVudD0hMCx2JiYoUi5jdXJyZW50PS0xLEIoKSxnfHxFLmN1cnJlbnQ/LmZvY3VzKHtwcmV2ZW50U2Nyb2xsOiEwfSkpKX19fSxbWixFLHYsaSxCLGddKSxlbz1DLnVzZUNhbGxiYWNrKCgpPT53Pz9QPy5ub2Rlc1JlZi5jdXJyZW50LmZpbmQoZT0+ZS5pZD09PV8pPy5jb250ZXh0Py5kYXRhUmVmPy5jdXJyZW50Lm9yaWVudGF0aW9uLFtfLFAsd10pLGVhPVQoZT0+e2lmKEQuY3VycmVudD0hMSxVLmN1cnJlbnQ9ITAsMjI5PT09ZS53aGljaHx8IVouY3VycmVudCYmZS5jdXJyZW50VGFyZ2V0PT09RS5jdXJyZW50KXJldHVybjtpZihwJiZuWChlLmtleSx4LGgsaikpe24kKGUua2V5LGVvKCkpfHxlRChlKSxyKCExLGUubmF0aXZlRXZlbnQsXCJsaXN0LW5hdmlnYXRpb25cIiksZW4oby5kb21SZWZlcmVuY2UpJiYoZz9QPy5ldmVudHMuZW1pdChcInZpcnR1YWxmb2N1c1wiLG8uZG9tUmVmZXJlbmNlKTpvLmRvbVJlZmVyZW5jZS5mb2N1cygpKTtyZXR1cm59bGV0IG49Ui5jdXJyZW50LGE9bkkoaSx5KSxsPW5IKGkseSk7aWYoenx8KFwiSG9tZVwiPT09ZS5rZXkmJihlRChlKSxSLmN1cnJlbnQ9YSxCKCkpLFwiRW5kXCI9PT1lLmtleSYmKGVEKGUpLFIuY3VycmVudD1sLEIoKSkpLGo+MSl7dmFyIHM7bGV0IG49T3x8QXJyYXkuZnJvbSh7bGVuZ3RoOmkuY3VycmVudC5sZW5ndGh9LCgpPT4oe3dpZHRoOjEsaGVpZ2h0OjF9KSksdD1mdW5jdGlvbihlLG4sdCl7bGV0IHI9W10sbz0wO3JldHVybiBlLmZvckVhY2goKHt3aWR0aDplLGhlaWdodDphfSxpKT0+e2xldCBsPSExO2Zvcih0JiYobz0wKTshbDspe2xldCB0PVtdO2ZvcihsZXQgcj0wO3I8ZTtyKz0xKWZvcihsZXQgZT0wO2U8YTtlKz0xKXQucHVzaChvK3IrZSpuKTtvJW4rZTw9biYmdC5ldmVyeShlPT5udWxsPT1yW2VdKT8odC5mb3JFYWNoKGU9PntyW2VdPWl9KSxsPSEwKTpvKz0xfX0pLFsuLi5yXX0obixqLFMpLHI9dC5maW5kSW5kZXgoZT0+bnVsbCE9ZSYmIW5VKGksZSx5KSksbz10LnJlZHVjZSgoZSxuLHQpPT5udWxsPT1ufHxuVShpLG4seSk/ZTp0LC0xKSxjPXRbZnVuY3Rpb24oZSx7ZXZlbnQ6bixvcmllbnRhdGlvbjp0LGxvb3A6cixydGw6byxjb2xzOmEsZGlzYWJsZWRJbmRpY2VzOmksbWluSW5kZXg6bCxtYXhJbmRleDpzLHByZXZJbmRleDpjLHN0b3BFdmVudDp1PSExfSl7bGV0IGQ9YztpZihuLmtleT09PWVXKXtpZih1JiZlRChuKSwtMT09PWMpZD1zO2Vsc2UgaWYoZD1uRihlLHtzdGFydGluZ0luZGV4OmQsYW1vdW50OmEsZGVjcmVtZW50OiEwLGRpc2FibGVkSW5kaWNlczppfSksciYmKGMtYTxsfHxkPDApKXtsZXQgZT1jJWEsbj1zJWEsdD1zLShuLWUpO2Q9bj09PWU/czpuPmU/dDp0LWF9bk0oZSxkKSYmKGQ9Yyl9aWYobi5rZXk9PT1lJCYmKHUmJmVEKG4pLC0xPT09Yz9kPWw6KGQ9bkYoZSx7c3RhcnRpbmdJbmRleDpjLGFtb3VudDphLGRpc2FibGVkSW5kaWNlczppfSksciYmYythPnMmJihkPW5GKGUse3N0YXJ0aW5nSW5kZXg6YyVhLWEsYW1vdW50OmEsZGlzYWJsZWRJbmRpY2VzOml9KSkpLG5NKGUsZCkmJihkPWMpKSxcImJvdGhcIj09PXQpe2xldCB0PW5iKGMvYSk7bi5rZXk9PT0obz9lVjplcSkmJih1JiZlRChuKSxjJWEhPWEtMT8oZD1uRihlLHtzdGFydGluZ0luZGV4OmMsZGlzYWJsZWRJbmRpY2VzOml9KSxyJiZuQihkLGEsdCkmJihkPW5GKGUse3N0YXJ0aW5nSW5kZXg6Yy1jJWEtMSxkaXNhYmxlZEluZGljZXM6aX0pKSk6ciYmKGQ9bkYoZSx7c3RhcnRpbmdJbmRleDpjLWMlYS0xLGRpc2FibGVkSW5kaWNlczppfSkpLG5CKGQsYSx0KSYmKGQ9YykpLG4ua2V5PT09KG8/ZXE6ZVYpJiYodSYmZUQobiksYyVhIT0wPyhkPW5GKGUse3N0YXJ0aW5nSW5kZXg6YyxkZWNyZW1lbnQ6ITAsZGlzYWJsZWRJbmRpY2VzOml9KSxyJiZuQihkLGEsdCkmJihkPW5GKGUse3N0YXJ0aW5nSW5kZXg6YysoYS1jJWEpLGRlY3JlbWVudDohMCxkaXNhYmxlZEluZGljZXM6aX0pKSk6ciYmKGQ9bkYoZSx7c3RhcnRpbmdJbmRleDpjKyhhLWMlYSksZGVjcmVtZW50OiEwLGRpc2FibGVkSW5kaWNlczppfSkpLG5CKGQsYSx0KSYmKGQ9YykpO2xldCBsPW5iKHMvYSk9PT10O25NKGUsZCkmJihkPXImJmw/bi5rZXk9PT0obz9lcTplVik/czpuRihlLHtzdGFydGluZ0luZGV4OmMtYyVhLTEsZGlzYWJsZWRJbmRpY2VzOml9KTpjKX1yZXR1cm4gZH0oe2N1cnJlbnQ6dC5tYXAoZT0+bnVsbCE9ZT9pLmN1cnJlbnRbZV06bnVsbCl9LHtldmVudDplLG9yaWVudGF0aW9uOngsbG9vcDpmLHJ0bDpoLGNvbHM6aixkaXNhYmxlZEluZGljZXM6KHM9Wy4uLihcImZ1bmN0aW9uXCIhPXR5cGVvZiB5P3k6bnVsbCl8fGkuY3VycmVudC5tYXAoKGUsbik9Pm5VKGksbix5KT9uOnZvaWQgMCksdm9pZCAwXSx0LmZsYXRNYXAoKGUsbik9PnMuaW5jbHVkZXMoZSk/W25dOltdKSksbWluSW5kZXg6cixtYXhJbmRleDpvLHByZXZJbmRleDpmdW5jdGlvbihlLG4sdCxyLG8pe2lmKC0xPT09ZSlyZXR1cm4gLTE7bGV0IGE9dC5pbmRleE9mKGUpLGk9bltlXTtzd2l0Y2gobyl7Y2FzZVwidGxcIjpyZXR1cm4gYTtjYXNlXCJ0clwiOmlmKCFpKXJldHVybiBhO3JldHVybiBhK2kud2lkdGgtMTtjYXNlXCJibFwiOmlmKCFpKXJldHVybiBhO3JldHVybiBhKyhpLmhlaWdodC0xKSpyO2Nhc2VcImJyXCI6cmV0dXJuIHQubGFzdEluZGV4T2YoZSk7ZGVmYXVsdDpyZXR1cm4gLTF9fShSLmN1cnJlbnQ+bD9hOlIuY3VycmVudCxuLHQsaixlLmtleT09PWUkP1wiYmxcIjplLmtleT09PShoP2VWOmVxKT9cInRyXCI6XCJ0bFwiKSxzdG9wRXZlbnQ6ITB9KV07aWYobnVsbCE9YyYmKFIuY3VycmVudD1jLEIoKSksXCJib3RoXCI9PT14KXJldHVybn1pZihuJChlLmtleSx4KSl7aWYoZUQoZSksdCYmIWcmJmVaKGUuY3VycmVudFRhcmdldC5vd25lckRvY3VtZW50KT09PWUuY3VycmVudFRhcmdldCl7Ui5jdXJyZW50PW5aKGUua2V5LHgsaCk/YTpsLEIoKTtyZXR1cm59blooZS5rZXkseCxoKT9mP1IuY3VycmVudD1uPj1sP2QmJm4hPT1pLmN1cnJlbnQubGVuZ3RoPy0xOmE6bkYoaSx7c3RhcnRpbmdJbmRleDpuLGRpc2FibGVkSW5kaWNlczp5fSk6Ui5jdXJyZW50PU1hdGgubWluKGwsbkYoaSx7c3RhcnRpbmdJbmRleDpuLGRpc2FibGVkSW5kaWNlczp5fSkpOmY/Ui5jdXJyZW50PW48PWE/ZCYmLTEhPT1uP2kuY3VycmVudC5sZW5ndGg6bDpuRihpLHtzdGFydGluZ0luZGV4Om4sZGVjcmVtZW50OiEwLGRpc2FibGVkSW5kaWNlczp5fSk6Ui5jdXJyZW50PU1hdGgubWF4KGEsbkYoaSx7c3RhcnRpbmdJbmRleDpuLGRlY3JlbWVudDohMCxkaXNhYmxlZEluZGljZXM6eX0pKSxuTShpLFIuY3VycmVudCkmJihSLmN1cnJlbnQ9LTEpLEIoKX19KSxlaT1DLnVzZU1lbW8oKCk9PmcmJnQmJmV0JiZ7XCJhcmlhLWFjdGl2ZWRlc2NlbmRhbnRcIjpHfHxLfSxbZyx0LGV0LEcsS10pLGVsPUMudXNlTWVtbygoKT0+KHtcImFyaWEtb3JpZW50YXRpb25cIjpcImJvdGhcIj09PXg/dm9pZCAwOngsLi4uIXo/ZWk6e30sb25LZXlEb3duOmVhLG9uUG9pbnRlck1vdmUoKXtELmN1cnJlbnQ9ITB9fSksW2VpLGVhLHgsel0pLGVzPUMudXNlTWVtbygoKT0+e2Z1bmN0aW9uIGUoZSl7XCJhdXRvXCI9PT1tJiZlQihlLm5hdGl2ZUV2ZW50KSYmKEwuY3VycmVudD0hMCl9ZnVuY3Rpb24gbihlKXtMLmN1cnJlbnQ9bSxcImF1dG9cIj09PW0mJmVNKGUubmF0aXZlRXZlbnQpJiYoTC5jdXJyZW50PSEwKX1yZXR1cm57Li4uZWksb25LZXlEb3duKGUpe0QuY3VycmVudD0hMTtsZXQgbj1lLmtleS5zdGFydHNXaXRoKFwiQXJyb3dcIiksbz1bXCJIb21lXCIsXCJFbmRcIl0uaW5jbHVkZXMoZS5rZXkpLGE9blkoZS5rZXkseCxoKSxsPW5YKGUua2V5LHgsaCxqKSxzPW5ZKGUua2V5LGVvKCksaCksYz1uJChlLmtleSx4KSxkPShwP3M6Yyl8fFwiRW50ZXJcIj09PWUua2V5fHxcIlwiPT09ZS5rZXkudHJpbSgpO2lmKGcmJnQpe3ZhciBmLG07bGV0IHQscixzPVA/Lm5vZGVzUmVmLmN1cnJlbnQuZmluZChlPT5udWxsPT1lLnBhcmVudElkKSx1PVAmJnM/KGY9UC5ub2Rlc1JlZi5jdXJyZW50LG09cy5pZCxyPS0xLCFmdW5jdGlvbiBlKG4sbyl7bz5yJiYodD1uLHI9byksZTYoZixuKS5mb3JFYWNoKG49PntlKG4uaWQsbysxKX0pfShtLDApLGYuZmluZChlPT5lLmlkPT09dCkpOm51bGw7aWYoKG58fG8pJiZ1JiZBKXtsZXQgbj1uZXcgS2V5Ym9hcmRFdmVudChcImtleWRvd25cIix7a2V5OmUua2V5LGJ1YmJsZXM6ITB9KTtpZihhfHxsKXtsZXQgdD11LmNvbnRleHQ/LmVsZW1lbnRzLmRvbVJlZmVyZW5jZT09PWUuY3VycmVudFRhcmdldCxyPWwmJiF0P3UuY29udGV4dD8uZWxlbWVudHMuZG9tUmVmZXJlbmNlOmE/aS5jdXJyZW50LmZpbmQoZT0+ZT8uaWQ9PT1LKTpudWxsO3ImJihlRChlKSxyLmRpc3BhdGNoRXZlbnQobiksSih2b2lkIDApKX1pZigoY3x8bykmJnUuY29udGV4dCYmdS5jb250ZXh0Lm9wZW4mJnUucGFyZW50SWQmJmUuY3VycmVudFRhcmdldCE9PXUuY29udGV4dC5lbGVtZW50cy5kb21SZWZlcmVuY2Upe2VEKGUpLHUuY29udGV4dC5lbGVtZW50cy5kb21SZWZlcmVuY2U/LmRpc3BhdGNoRXZlbnQobik7cmV0dXJufX1yZXR1cm4gZWEoZSl9aWYodHx8Ynx8IW4pe2lmKGQpe2xldCBuPW4kKGUua2V5LGVvKCkpO04uY3VycmVudD1wJiZuP251bGw6ZS5rZXl9aWYocCl7cyYmKGVEKGUpLHQ/KFIuY3VycmVudD1uSShpLCQuY3VycmVudCksQigpKTpyKCEwLGUubmF0aXZlRXZlbnQsXCJsaXN0LW5hdmlnYXRpb25cIikpO3JldHVybn1jJiYobnVsbCE9dSYmKFIuY3VycmVudD11KSxlRChlKSwhdCYmYj9yKCEwLGUubmF0aXZlRXZlbnQsXCJsaXN0LW5hdmlnYXRpb25cIik6ZWEoZSksdCYmQigpKX19LG9uRm9jdXMoKXt0JiYhZyYmKFIuY3VycmVudD0tMSxCKCkpfSxvblBvaW50ZXJEb3duOm4sb25Qb2ludGVyRW50ZXI6bixvbk1vdXNlRG93bjplLG9uQ2xpY2s6ZX19LFtLLGVpLGosZWEsJCxtLGkscCxCLHIsdCxiLHgsZW8saCx1LFAsZyxBXSk7cmV0dXJuIEMudXNlTWVtbygoKT0+Yz97cmVmZXJlbmNlOmVzLGZsb2F0aW5nOmVsLGl0ZW06ZXJ9Ont9LFtjLGVzLGVsLGVyXSl9KGV2LHtlbmFibGVkOiFjLGxpc3RSZWY6ZU8sYWN0aXZlSW5kZXg6UyxuZXN0ZWQ6dm9pZCAwIT09bi50eXBlLGxvb3A6ZCxvcmllbnRhdGlvbjpmLHBhcmVudE9yaWVudGF0aW9uOlwibWVudWJhclwiPT09bi50eXBlP24uY29udGV4dC5vcmllbnRhdGlvbjp2b2lkIDAscnRsOlwicnRsXCI9PT1lUyxkaXNhYmxlZEluZGljZXM6dGcsb25OYXZpZ2F0ZTpfLG9wZW5PbkFycm93S2V5RG93bjpcImNvbnRleHQtbWVudVwiIT09bi50eXBlfSksZV89Qy51c2VSZWYoITEpLGV6PWZ1bmN0aW9uKGUsbil7bGV0e29wZW46dCxkYXRhUmVmOnJ9PWUse2xpc3RSZWY6byxhY3RpdmVJbmRleDphLG9uTWF0Y2g6aSxvblR5cGluZ0NoYW5nZTpsLGVuYWJsZWQ6cz0hMCxmaW5kTWF0Y2g6Yz1udWxsLHJlc2V0TXM6dT03NTAsaWdub3JlS2V5czpkPVtdLHNlbGVjdGVkSW5kZXg6Zj1udWxsfT1uLHA9ZWsoKSxoPUMudXNlUmVmKFwiXCIpLGc9Qy51c2VSZWYoZj8/YT8/LTEpLG09Qy51c2VSZWYobnVsbCksdj1UKGkpLGI9VChsKSx5PWVBKGMpLHg9ZUEoZCk7RigoKT0+e3QmJihwLmNsZWFyKCksbS5jdXJyZW50PW51bGwsaC5jdXJyZW50PVwiXCIpfSxbdCxwXSksRigoKT0+e3QmJlwiXCI9PT1oLmN1cnJlbnQmJihnLmN1cnJlbnQ9Zj8/YT8/LTEpfSxbdCxmLGFdKTtsZXQgdz1UKGU9PntlP3IuY3VycmVudC50eXBpbmd8fChyLmN1cnJlbnQudHlwaW5nPWUsYihlKSk6ci5jdXJyZW50LnR5cGluZyYmKHIuY3VycmVudC50eXBpbmc9ZSxiKGUpKX0pLGo9VChlPT57ZnVuY3Rpb24gbihlLG4sdCl7bGV0IHI9eS5jdXJyZW50P3kuY3VycmVudChuLHQpOm4uZmluZChlPT5lPy50b0xvY2FsZUxvd2VyQ2FzZSgpLmluZGV4T2YodC50b0xvY2FsZUxvd2VyQ2FzZSgpKT09PTApO3JldHVybiByP2UuaW5kZXhPZihyKTotMX1sZXQgcj1vLmN1cnJlbnQ7aWYoaC5jdXJyZW50Lmxlbmd0aD4wJiZcIiBcIiE9PWguY3VycmVudFswXSYmKC0xPT09bihyLHIsaC5jdXJyZW50KT93KCExKTpcIiBcIj09PWUua2V5JiZlRChlKSksbnVsbD09cnx8eC5jdXJyZW50LmluY2x1ZGVzKGUua2V5KXx8MSE9PWUua2V5Lmxlbmd0aHx8ZS5jdHJsS2V5fHxlLm1ldGFLZXl8fGUuYWx0S2V5KXJldHVybjt0JiZcIiBcIiE9PWUua2V5JiYoZUQoZSksdyghMCkpLHIuZXZlcnkoZT0+IWV8fGVbMF0/LnRvTG9jYWxlTG93ZXJDYXNlKCkhPT1lWzFdPy50b0xvY2FsZUxvd2VyQ2FzZSgpKSYmaC5jdXJyZW50PT09ZS5rZXkmJihoLmN1cnJlbnQ9XCJcIixnLmN1cnJlbnQ9bS5jdXJyZW50KSxoLmN1cnJlbnQrPWUua2V5LHAuc3RhcnQodSwoKT0+e2guY3VycmVudD1cIlwiLGcuY3VycmVudD1tLmN1cnJlbnQsdyghMSl9KTtsZXQgYT1nLmN1cnJlbnQsaT1uKHIsWy4uLnIuc2xpY2UoKGF8fDApKzEpLC4uLnIuc2xpY2UoMCwoYXx8MCkrMSldLGguY3VycmVudCk7LTEhPT1pPyh2KGkpLG0uY3VycmVudD1pKTpcIiBcIiE9PWUua2V5JiYoaC5jdXJyZW50PVwiXCIsdyghMSkpfSksaz1DLnVzZU1lbW8oKCk9Pih7b25LZXlEb3duOmp9KSxbal0pLEE9Qy51c2VNZW1vKCgpPT4oe29uS2V5RG93bjpqLG9uS2V5VXAoZSl7XCIgXCI9PT1lLmtleSYmdyghMSl9fSksW2osd10pO3JldHVybiBDLnVzZU1lbW8oKCk9PnM/e3JlZmVyZW5jZTprLGZsb2F0aW5nOkF9Ont9LFtzLGssQV0pfShldix7bGlzdFJlZjplQyxhY3RpdmVJbmRleDpTLHJlc2V0TXM6NTAwLG9uTWF0Y2g6ZT0+e2VlJiZlIT09UyYmXyhlKX0sb25UeXBpbmdDaGFuZ2U6Qy51c2VDYWxsYmFjayhlPT57ZV8uY3VycmVudD1lfSxbXSl9KSx7Z2V0UmVmZXJlbmNlUHJvcHM6ZUwsZ2V0RmxvYXRpbmdQcm9wczplVCxnZXRJdGVtUHJvcHM6ZVJ9PW5LKFtlYixleCxldyxleSxlaixlRSxlel0pLGVOPWZ1bmN0aW9uKGUpe2xldHtlbmFibGVkOm49ITAsbW91c2VEb3duQWN0aW9uOnQsb3BlbjpyfT1lLG89Qy51c2VSZWYoITEpO3JldHVybiBDLnVzZU1lbW8oKCk9Pm4/e29uTW91c2VEb3duOmU9PnsoXCJvcGVuXCI9PT10JiYhcnx8XCJjbG9zZVwiPT09dCYmcikmJihvLmN1cnJlbnQ9ITAsZVEoZS5jdXJyZW50VGFyZ2V0KS5hZGRFdmVudExpc3RlbmVyKFwiY2xpY2tcIiwoKT0+e28uY3VycmVudD0hMX0se29uY2U6ITB9KSl9LG9uQ2xpY2s6ZT0+e28uY3VycmVudCYmKG8uY3VycmVudD0hMSxlLnByZXZlbnRCYXNlVUlIYW5kbGVyKCkpfX06bnIsW24sdCxyXSl9KHtvcGVuOmVlLGVuYWJsZWQ6XCJtZW51YmFyXCI9PT1uLnR5cGUsbW91c2VEb3duQWN0aW9uOlwib3BlblwifSksZUg9Qy51c2VNZW1vKCgpPT57bGV0IGU9dGMoZUwoKSx7b25Nb3VzZUVudGVyKCl7TyghMCl9LG9uTW91c2VNb3ZlKCl7RyghMCl9fSxlTik7cmV0dXJuIGRlbGV0ZSBlLnJvbGUsZX0sW2VMLGVOLEddKSxlRj1DLnVzZU1lbW8oKCk9PmVUKHtvbk1vdXNlRW50ZXIoKXtKJiZcIm1lbnVcIiE9PW4udHlwZXx8TyghMSl9LG9uTW91c2VNb3ZlKCl7RyghMCl9LG9uQ2xpY2soKXtKJiZPKCExKX19KSxbZVQsSixuLnR5cGUsR10pLGVVPUMudXNlTWVtbygoKT0+ZVIoKSxbZVJdKSxlWD1DLnVzZU1lbW8oKCk9Pih7YWN0aXZlSW5kZXg6UyxzZXRBY3RpdmVJbmRleDpfLGFsbG93TW91c2VVcFRyaWdnZXJSZWY6bi50eXBlP24uY29udGV4dC5hbGxvd01vdXNlVXBUcmlnZ2VyUmVmOnRtLGZsb2F0aW5nUm9vdENvbnRleHQ6ZXYsaXRlbVByb3BzOmVVLHBvcHVwUHJvcHM6ZUYsdHJpZ2dlclByb3BzOmVILGl0ZW1Eb21FbGVtZW50czplTyxpdGVtTGFiZWxzOmVDLG1vdW50ZWQ6ZWksb3BlbjplZSxwb3B1cFJlZjpNLHBvc2l0aW9uZXJSZWY6SSxzZXRPcGVuOmVtLHNldFBvc2l0aW9uZXJFbGVtZW50OmVhLHRyaWdnZXJFbGVtZW50OmIsc2V0VHJpZ2dlckVsZW1lbnQ6eSx0cmFuc2l0aW9uU3RhdHVzOmVzLGxhc3RPcGVuQ2hhbmdlUmVhc29uOlAsaW5zdGFudFR5cGU6aixvbk9wZW5DaGFuZ2VDb21wbGV0ZTppLHNldEhvdmVyRW5hYmxlZDpPLHR5cGluZ1JlZjplXyxtb2RhbDpLLGRpc2FibGVkOmMscGFyZW50Om4scm9vdElkOlgsYWxsb3dNb3VzZUVudGVyOlEsc2V0QWxsb3dNb3VzZUVudGVyOkd9KSxbUyxldixlVSxlRixlSCxlTyxlQyxlaSxlZSxJLGVtLGVzLGIsZWEsUCxqLGksSyxjLG4sWCxRLEddKSxlSz0oMCxsLmpzeCkobkouUHJvdmlkZXIse3ZhbHVlOmVYLGNoaWxkcmVuOnJ9KTtyZXR1cm4gdm9pZCAwPT09bi50eXBlfHxcImNvbnRleHQtbWVudVwiPT09bi50eXBlPygwLGwuanN4KShaLHtjaGlsZHJlbjplS30pOmVLfTtmdW5jdGlvbiB0YihlLG4sdCxyKXt2YXIgbyxhLGksbCxzO2xldCBjPVAodHkpLmN1cnJlbnQ7cmV0dXJuIG89YyxhPWUsaT1uLGw9dCxzPXIsKG8ucmVmc1swXSE9PWF8fG8ucmVmc1sxXSE9PWl8fG8ucmVmc1syXSE9PWx8fG8ucmVmc1szXSE9PXMpJiZ0eChjLFtlLG4sdCxyXSksYy5jYWxsYmFja31mdW5jdGlvbiB0eSgpe3JldHVybntjYWxsYmFjazpudWxsLGNsZWFudXA6bnVsbCxyZWZzOltdfX1mdW5jdGlvbiB0eChlLG4pe2lmKGUucmVmcz1uLG4uZXZlcnkoZT0+bnVsbD09ZSkpe2UuY2FsbGJhY2s9bnVsbDtyZXR1cm59ZS5jYWxsYmFjaz10PT57aWYoZS5jbGVhbnVwJiYoZS5jbGVhbnVwKCksZS5jbGVhbnVwPW51bGwpLG51bGwhPXQpe2xldCByPUFycmF5KG4ubGVuZ3RoKS5maWxsKG51bGwpO2ZvcihsZXQgZT0wO2U8bi5sZW5ndGg7ZSs9MSl7bGV0IG89bltlXTtpZihudWxsIT1vKXN3aXRjaCh0eXBlb2Ygbyl7Y2FzZVwiZnVuY3Rpb25cIjp7bGV0IG49byh0KTtcImZ1bmN0aW9uXCI9PXR5cGVvZiBuJiYocltlXT1uKTticmVha31jYXNlXCJvYmplY3RcIjpvLmN1cnJlbnQ9dH19ZS5jbGVhbnVwPSgpPT57Zm9yKGxldCBlPTA7ZTxuLmxlbmd0aDtlKz0xKXtsZXQgdD1uW2VdO2lmKG51bGwhPXQpc3dpdGNoKHR5cGVvZiB0KXtjYXNlXCJmdW5jdGlvblwiOntsZXQgbj1yW2VdO1wiZnVuY3Rpb25cIj09dHlwZW9mIG4/bigpOnQobnVsbCk7YnJlYWt9Y2FzZVwib2JqZWN0XCI6dC5jdXJyZW50PW51bGx9fX19fX1sZXQgdHc9cGFyc2VJbnQoQy52ZXJzaW9uLDEwKTtmdW5jdGlvbiB0aihlLG4sdD17fSl7bGV0IHI9bi5yZW5kZXIsbz1mdW5jdGlvbihlLG49e30pe2xldCB0LHtjbGFzc05hbWU6cixyZW5kZXI6b309ZSx7c3RhdGU6YT1ucixyZWY6aSxwcm9wczpsLGRpc2FibGVTdHlsZUhvb2tzOnMsY3VzdG9tU3R5bGVIb29rTWFwcGluZzpjLGVuYWJsZWQ6dT0hMH09bixkPXU/XCJmdW5jdGlvblwiPT10eXBlb2Ygcj9yKGEpOnI6dm9pZCAwOyEwIT09cyYmKHQ9Qy51c2VNZW1vKCgpPT51P2Z1bmN0aW9uKGUsbil7bGV0IHQ9e307Zm9yKGxldCByIGluIGUpe2xldCBvPWVbcl07aWYobj8uaGFzT3duUHJvcGVydHkocikpe2xldCBlPW5bcl0obyk7bnVsbCE9ZSYmT2JqZWN0LmFzc2lnbih0LGUpO2NvbnRpbnVlfSEwPT09bz90W2BkYXRhLSR7ci50b0xvd2VyQ2FzZSgpfWBdPVwiXCI6byYmKHRbYGRhdGEtJHtyLnRvTG93ZXJDYXNlKCl9YF09by50b1N0cmluZygpKX1yZXR1cm4gdH0oYSxjKTpucixbYSxjLHVdKSk7bGV0IGY9dT90bCh0LEFycmF5LmlzQXJyYXkobCk/ZnVuY3Rpb24oZSl7aWYoMD09PWUubGVuZ3RoKXJldHVybiB0cztpZigxPT09ZS5sZW5ndGgpcmV0dXJuIHRmKGVbMF0sdHMpO2xldCBuPXsuLi50ZihlWzBdLHRzKX07Zm9yKGxldCB0PTE7dDxlLmxlbmd0aDt0Kz0xKW49dHUobixlW3RdKTtyZXR1cm4gbn0obCk6bCk/P25yOm5yO3JldHVybihcInVuZGVmaW5lZFwiIT10eXBlb2YgZG9jdW1lbnQmJih1P0FycmF5LmlzQXJyYXkoaSk/Zi5yZWY9ZnVuY3Rpb24oZSl7dmFyIG4sdDtsZXQgcj1QKHR5KS5jdXJyZW50O3JldHVybiBuPXIsdD1lLChuLnJlZnMubGVuZ3RoIT09dC5sZW5ndGh8fG4ucmVmcy5zb21lKChlLG4pPT5lIT09dFtuXSkpJiZ0eChyLGUpLHIuY2FsbGJhY2t9KFtmLnJlZix0ayhvKSwuLi5pXSk6Zi5yZWY9dGIoZi5yZWYsdGsobyksaSk6dGIobnVsbCxudWxsKSksdSk/KHZvaWQgMCE9PWQmJihmLmNsYXNzTmFtZT10aChmLmNsYXNzTmFtZSxkKSksZik6bnJ9KG4sdCk7cmV0dXJuITE9PT10LmVuYWJsZWQ/bnVsbDpmdW5jdGlvbihlLG4sdCxyKXtpZihuKXtpZihcImZ1bmN0aW9uXCI9PXR5cGVvZiBuKXJldHVybiBuKHQscik7bGV0IGU9dGModCxuLnByb3BzKTtyZXR1cm4gZS5yZWY9dC5yZWYsQy5jbG9uZUVsZW1lbnQobixlKX1pZihlJiZcInN0cmluZ1wiPT10eXBlb2YgZSl7dmFyIG8sYTtyZXR1cm4gbz1lLGE9dCxcImJ1dHRvblwiPT09bz8oMCxsLmpzeCkoXCJidXR0b25cIix7dHlwZTpcImJ1dHRvblwiLC4uLmF9KTpcImltZ1wiPT09bz8oMCxsLmpzeCkoXCJpbWdcIix7YWx0OlwiXCIsLi4uYX0pOkMuY3JlYXRlRWxlbWVudChvLGEpfXRocm93IEVycm9yKFwiQmFzZSBVSTogUmVuZGVyIGVsZW1lbnQgb3IgZnVuY3Rpb24gYXJlIG5vdCBkZWZpbmVkLlwiKX0oZSxyLG8sdC5zdGF0ZT8/bnIpfWZ1bmN0aW9uIHRrKGUpe3JldHVybiBlJiZcImZ1bmN0aW9uXCIhPXR5cGVvZiBlP3R3Pj0xOT9lLnByb3BzLnJlZjplLnJlZjpudWxsfWxldCB0QT1DLmNyZWF0ZUNvbnRleHQodm9pZCAwKTtmdW5jdGlvbiB0TyhlPSExKXtsZXQgbj1DLnVzZUNvbnRleHQodEEpO2lmKHZvaWQgMD09PW4mJiFlKXRocm93IEVycm9yKFwiQmFzZSBVSTogQ29tcG9zaXRlUm9vdENvbnRleHQgaXMgbWlzc2luZy4gQ29tcG9zaXRlIHBhcnRzIG11c3QgYmUgcGxhY2VkIHdpdGhpbiA8Q29tcG9zaXRlLlJvb3Q+LlwiKTtyZXR1cm4gbn1sZXQgdEM9Qy5jcmVhdGVDb250ZXh0KHtyZWdpc3RlcjooKT0+e30sdW5yZWdpc3RlcjooKT0+e30sc3Vic2NyaWJlTWFwQ2hhbmdlOigpPT4oKT0+e30sZWxlbWVudHNSZWY6e2N1cnJlbnQ6W119LG5leHRJbmRleFJlZjp7Y3VycmVudDowfX0pLHRTPSgocj17fSlbci5Ob25lPTBdPVwiTm9uZVwiLHJbci5HdWVzc0Zyb21PcmRlcj0xXT1cIkd1ZXNzRnJvbU9yZGVyXCIscik7ZnVuY3Rpb24gdEUoZT17fSl7bGV0e2xhYmVsOm4sbWV0YWRhdGE6dCx0ZXh0UmVmOnIsaW5kZXhHdWVzc0JlaGF2aW9yOm99PWUse3JlZ2lzdGVyOmEsdW5yZWdpc3RlcjppLHN1YnNjcmliZU1hcENoYW5nZTpsLGVsZW1lbnRzUmVmOnMsbGFiZWxzUmVmOmMsbmV4dEluZGV4UmVmOnV9PUMudXNlQ29udGV4dCh0QyksZD1DLnVzZVJlZigtMSksW2YscF09Qy51c2VTdGF0ZShvPT09dFMuR3Vlc3NGcm9tT3JkZXI/KCk9PntpZigtMT09PWQuY3VycmVudCl7bGV0IGU9dS5jdXJyZW50O3UuY3VycmVudCs9MSxkLmN1cnJlbnQ9ZX1yZXR1cm4gZC5jdXJyZW50fTotMSksaD1DLnVzZVJlZihudWxsKSxnPUMudXNlQ2FsbGJhY2soZT0+e2lmKGguY3VycmVudD1lLC0xIT09ZiYmbnVsbCE9PWUmJihzLmN1cnJlbnRbZl09ZSxjKSl7bGV0IHQ9dm9pZCAwIT09bjtjLmN1cnJlbnRbZl09dD9uOnI/LmN1cnJlbnQ/LnRleHRDb250ZW50Pz9lLnRleHRDb250ZW50fX0sW2YscyxjLG4scl0pO3JldHVybiBGKCgpPT57bGV0IGU9aC5jdXJyZW50O2lmKGUpcmV0dXJuIGEoZSx0KSwoKT0+e2koZSl9fSxbYSxpLHRdKSxGKCgpPT5sKGU9PntsZXQgbj1oLmN1cnJlbnQ/ZS5nZXQoaC5jdXJyZW50KT8uaW5kZXg6bnVsbDtudWxsIT1uJiZwKG4pfSksW2wscF0pLEMudXNlTWVtbygoKT0+KHtyZWY6ZyxpbmRleDpmfSksW2YsZ10pfWZ1bmN0aW9uIHRfKGUpe2xldHtyZW5kZXI6bixjbGFzc05hbWU6dCxpdGVtUmVmOnI9bnVsbCxtZXRhZGF0YTpvLC4uLmF9PWUse3Byb3BzOmkscmVmOmx9PWZ1bmN0aW9uKGU9e30pe2xldHtoaWdobGlnaHRlZEluZGV4Om4sb25IaWdobGlnaHRlZEluZGV4Q2hhbmdlOnQsaGlnaGxpZ2h0SXRlbU9uSG92ZXI6cn09dE8oKSx7cmVmOm8saW5kZXg6YX09dEUoZSksaT1uPT09YSxsPUMudXNlUmVmKG51bGwpLHM9dGIobyxsKSxjPUMudXNlTWVtbygoKT0+KHt0YWJJbmRleDppPzA6LTEsb25Gb2N1cygpe3QoYSl9LG9uTW91c2VNb3ZlKCl7bGV0IGU9bC5jdXJyZW50O2lmKCFyfHwhZSlyZXR1cm47bGV0IG49ZS5oYXNBdHRyaWJ1dGUoXCJkaXNhYmxlZFwiKXx8XCJ0cnVlXCI9PT1lLmFyaWFEaXNhYmxlZDtpfHxufHxlLmZvY3VzKCl9fSksW2EsaSx0LHJdKTtyZXR1cm4gQy51c2VNZW1vKCgpPT4oe3Byb3BzOmMscmVmOnMsaW5kZXg6YX0pLFtjLGEsc10pfSh7bWV0YWRhdGE6b30pO3JldHVybiB0aihcImRpdlwiLGUse3JlZjpbcixsXSxwcm9wczpbaSxhXX0pfWxldCB0UD0oKG89e30pLnN0YXJ0aW5nU3R5bGU9XCJkYXRhLXN0YXJ0aW5nLXN0eWxlXCIsby5lbmRpbmdTdHlsZT1cImRhdGEtZW5kaW5nLXN0eWxlXCIsbyksdHo9e1t0UC5zdGFydGluZ1N0eWxlXTpcIlwifSx0TD17W3RQLmVuZGluZ1N0eWxlXTpcIlwifSx0VD17dHJhbnNpdGlvblN0YXR1czplPT5cInN0YXJ0aW5nXCI9PT1lP3R6OlwiZW5kaW5nXCI9PT1lP3RMOm51bGx9LHRSPSgoYT17fSkub3Blbj1cImRhdGEtb3BlblwiLGEuY2xvc2VkPVwiZGF0YS1jbG9zZWRcIixhW2Euc3RhcnRpbmdTdHlsZT10UC5zdGFydGluZ1N0eWxlXT1cInN0YXJ0aW5nU3R5bGVcIixhW2EuZW5kaW5nU3R5bGU9dFAuZW5kaW5nU3R5bGVdPVwiZW5kaW5nU3R5bGVcIixhLmFuY2hvckhpZGRlbj1cImRhdGEtYW5jaG9yLWhpZGRlblwiLGEpLHROPSgoaT17fSkucG9wdXBPcGVuPVwiZGF0YS1wb3B1cC1vcGVuXCIsaS5wcmVzc2VkPVwiZGF0YS1wcmVzc2VkXCIsaSksdEQ9e1t0Ti5wb3B1cE9wZW5dOlwiXCJ9LHRCPXtbdE4ucG9wdXBPcGVuXTpcIlwiLFt0Ti5wcmVzc2VkXTpcIlwifSx0TT17W3RSLm9wZW5dOlwiXCJ9LHRJPXtbdFIuY2xvc2VkXTpcIlwifSx0SD17W3RSLmFuY2hvckhpZGRlbl06XCJcIn0sdEY9e29wZW46ZT0+ZT90RDpudWxsfSx0VT17b3BlbjplPT5lP3RCOm51bGx9LHRWPXtvcGVuOmU9PmU/dE06dEksYW5jaG9ySGlkZGVuOmU9PmU/dEg6bnVsbH07ZnVuY3Rpb24gdHEoZT17fSl7bGV0e2Rpc2FibGVkOm49ITEsZm9jdXNhYmxlV2hlbkRpc2FibGVkOnQsdGFiSW5kZXg6cj0wLG5hdGl2ZTpvPSEwfT1lLGE9Qy51c2VSZWYobnVsbCksaT12b2lkIDAhPT10TyghMCksbD1UKCgpPT57bGV0IGU9YS5jdXJyZW50O3JldHVybiEhKGU/LnRhZ05hbWU9PT1cIkFcIiYmZT8uaHJlZil9KSx7cHJvcHM6c309ZnVuY3Rpb24oZSl7bGV0e2ZvY3VzYWJsZVdoZW5EaXNhYmxlZDpuLGRpc2FibGVkOnQsY29tcG9zaXRlOnI9ITEsdGFiSW5kZXg6bz0wLGlzTmF0aXZlQnV0dG9uOmF9PWUsaT1yJiYhMSE9PW4sbD1yJiYhMT09PW47cmV0dXJue3Byb3BzOkMudXNlTWVtbygoKT0+e2xldCBlPXtvbktleURvd24oZSl7dCYmbiYmXCJUYWJcIiE9PWUua2V5JiZlLnByZXZlbnREZWZhdWx0KCl9fTtyZXR1cm4gcnx8KGUudGFiSW5kZXg9bywhYSYmdCYmKGUudGFiSW5kZXg9bj9vOi0xKSksKGEmJihufHxpKXx8IWEmJnQpJiYoZVtcImFyaWEtZGlzYWJsZWRcIl09dCksYSYmKCFufHxsKSYmKGUuZGlzYWJsZWQ9dCksZX0sW3IsdCxuLGksbCxhLG9dKX19KHtmb2N1c2FibGVXaGVuRGlzYWJsZWQ6dCxkaXNhYmxlZDpuLGNvbXBvc2l0ZTppLHRhYkluZGV4OnIsaXNOYXRpdmVCdXR0b246b30pO3JldHVybiBGKCgpPT57bGV0IGU9YS5jdXJyZW50O2UgaW5zdGFuY2VvZiBIVE1MQnV0dG9uRWxlbWVudCYmaSYmbiYmdm9pZCAwPT09cy5kaXNhYmxlZCYmZS5kaXNhYmxlZCYmKGUuZGlzYWJsZWQ9ITEpfSxbbixzLmRpc2FibGVkLGldKSx7Z2V0QnV0dG9uUHJvcHM6Qy51c2VDYWxsYmFjaygoZT17fSk9PntsZXR7b25DbGljazp0LG9uTW91c2VEb3duOnIsb25LZXlVcDphLG9uS2V5RG93bjppLG9uUG9pbnRlckRvd246YywuLi51fT1lO3JldHVybiB0Yyh7dHlwZTpvP1wiYnV0dG9uXCI6dm9pZCAwLG9uQ2xpY2soZSl7aWYobilyZXR1cm4gdm9pZCBlLnByZXZlbnREZWZhdWx0KCk7dD8uKGUpfSxvbk1vdXNlRG93bihlKXtufHxyPy4oZSl9LG9uS2V5RG93bihlKXtufHwodHAoZSksaT8uKGUpKSwhZS5iYXNlVUlIYW5kbGVyUHJldmVudGVkJiYoZS50YXJnZXQhPT1lLmN1cnJlbnRUYXJnZXR8fG98fGwoKXx8XCJFbnRlclwiIT09ZS5rZXl8fG58fCh0Py4oZSksZS5wcmV2ZW50RGVmYXVsdCgpKSl9LG9uS2V5VXAoZSl7bnx8KHRwKGUpLGE/LihlKSksIWUuYmFzZVVJSGFuZGxlclByZXZlbnRlZCYmKGUudGFyZ2V0IT09ZS5jdXJyZW50VGFyZ2V0fHxvfHxufHxcIiBcIiE9PWUua2V5fHx0Py4oZSkpfSxvblBvaW50ZXJEb3duKGUpe2lmKG4pcmV0dXJuIHZvaWQgZS5wcmV2ZW50RGVmYXVsdCgpO2M/LihlKX19LG8/dm9pZCAwOntyb2xlOlwiYnV0dG9uXCJ9LHMsdSl9LFtuLHMsbyxsXSksYnV0dG9uUmVmOmF9fWxldCB0Vz1DLmZvcndhcmRSZWYoZnVuY3Rpb24oZSxuKXtsZXR7cmVuZGVyOnQsY2xhc3NOYW1lOnIsZGlzYWJsZWQ6bz0hMSxuYXRpdmVCdXR0b246YT0hMCwuLi5pfT1lLHt0cmlnZ2VyUHJvcHM6cyxkaXNhYmxlZDpjLHNldFRyaWdnZXJFbGVtZW50OnUsb3BlbjpkLGFsbG93TW91c2VVcFRyaWdnZXJSZWY6Zixwb3NpdGlvbmVyUmVmOnAscGFyZW50OmgsbGFzdE9wZW5DaGFuZ2VSZWFzb246Zyxyb290SWQ6bX09bjAoKSx2PW98fGMsYj1DLnVzZVJlZihudWxsKSx5PWVrKCkse2dldEJ1dHRvblByb3BzOngsYnV0dG9uUmVmOnd9PXRxKHtkaXNhYmxlZDp2LG5hdGl2ZTphfSksaj10Yih3LHUpLHtldmVudHM6a309VygpO0MudXNlRWZmZWN0KCgpPT57ZHx8dm9pZCAwIT09aC50eXBlfHwoZi5jdXJyZW50PSExKX0sW2YsZCxoLnR5cGVdKTtsZXQgQT1UKGU9PntpZighYi5jdXJyZW50KXJldHVybjt5LmNsZWFyKCksZi5jdXJyZW50PSExO2xldCBuPWUudGFyZ2V0O2lmKGVZKGIuY3VycmVudCxuKXx8ZVkocC5jdXJyZW50LG4pfHxuPT09Yi5jdXJyZW50fHxudWxsIT1uJiZmdW5jdGlvbiBlKG4pe3JldHVybiBlbihuKSYmbi5oYXNBdHRyaWJ1dGUoXCJkYXRhLXJvb3Rvd25lcmlkXCIpP24uZ2V0QXR0cmlidXRlKFwiZGF0YS1yb290b3duZXJpZFwiKT8/dm9pZCAwOmVoKG4pP3ZvaWQgMDplKGV2KG4pKX0obik9PT1tKXJldHVybjtsZXQgdD1mdW5jdGlvbihlKXtsZXQgbj1lLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLHQ9d2luZG93LmdldENvbXB1dGVkU3R5bGUoZSxcIjo6YmVmb3JlXCIpLHI9d2luZG93LmdldENvbXB1dGVkU3R5bGUoZSxcIjo6YWZ0ZXJcIik7aWYoXCJub25lXCI9PT10LmNvbnRlbnQmJlwibm9uZVwiPT09ci5jb250ZW50KXJldHVybiBuO2xldCBvPXBhcnNlRmxvYXQodC53aWR0aCl8fDAsYT1wYXJzZUZsb2F0KHQuaGVpZ2h0KXx8MCxpPXBhcnNlRmxvYXQoci53aWR0aCl8fDAsbD1wYXJzZUZsb2F0KHIuaGVpZ2h0KXx8MCxzPU1hdGgubWF4KG4ud2lkdGgsbyxpKSxjPU1hdGgubWF4KG4uaGVpZ2h0LGEsbCksdT1zLW4ud2lkdGgsZD1jLW4uaGVpZ2h0O3JldHVybntsZWZ0Om4ubGVmdC11LzIscmlnaHQ6bi5yaWdodCt1LzIsdG9wOm4udG9wLWQvMixib3R0b206bi5ib3R0b20rZC8yfX0oYi5jdXJyZW50KTtlLmNsaWVudFg+PXQubGVmdC0yJiZlLmNsaWVudFg8PXQucmlnaHQrMiYmZS5jbGllbnRZPj10LnRvcC0yJiZlLmNsaWVudFk8PXQuYm90dG9tKzJ8fGsuZW1pdChcImNsb3NlXCIse2RvbUV2ZW50OmUscmVhc29uOlwiY2FuY2VsLW9wZW5cIn0pfSk7Qy51c2VFZmZlY3QoKCk9PntkJiZcInRyaWdnZXItaG92ZXJcIj09PWcmJmVRKGIuY3VycmVudCkuYWRkRXZlbnRMaXN0ZW5lcihcIm1vdXNldXBcIixBLHtvbmNlOiEwfSl9LFtkLEEsZ10pO2xldCBPPUMudXNlQ2FsbGJhY2soZT0+dGMoe1wiYXJpYS1oYXNwb3B1cFwiOlwibWVudVwiLHJlZjpqLG9uTW91c2VEb3duOmU9PntkfHwoeS5zdGFydCgyMDAsKCk9PntmLmN1cnJlbnQ9ITB9KSxlUShlLmN1cnJlbnRUYXJnZXQpLmFkZEV2ZW50TGlzdGVuZXIoXCJtb3VzZXVwXCIsQSx7b25jZTohMH0pKX19LGUseCksW3gsaixkLGYseSxBXSksUz10aihcImJ1dHRvblwiLGUse3N0YXRlOkMudXNlTWVtbygoKT0+KHtkaXNhYmxlZDp2LG9wZW46ZH0pLFt2LGRdKSxjdXN0b21TdHlsZUhvb2tNYXBwaW5nOnRVLHJlZjpbYixuLHddLHByb3BzOltzLGksT119KTtyZXR1cm5cIm1lbnViYXJcIj09PWgudHlwZT8oMCxsLmpzeCkodF8se3JlbmRlcjpTfSk6U30pLHQkPXtjbGlwOlwicmVjdCgwIDAgMCAwKVwiLG92ZXJmbG93OlwiaGlkZGVuXCIsd2hpdGVTcGFjZTpcIm5vd3JhcFwiLHBvc2l0aW9uOlwiZml4ZWRcIix0b3A6MCxsZWZ0OjAsYm9yZGVyOjAscGFkZGluZzowLHdpZHRoOjEsaGVpZ2h0OjEsbWFyZ2luOi0xfSx0Wj1DLmZvcndhcmRSZWYoZnVuY3Rpb24oZSxuKXtsZXRbdCxyXT1DLnVzZVN0YXRlKCk7cmV0dXJuIEYoKCk9PntlTCYmcihcImJ1dHRvblwiKX0sW10pLCgwLGwuanN4KShcInNwYW5cIix7Li4uZSxyZWY6bix0YWJJbmRleDowLHJvbGU6dCxcImFyaWEtaGlkZGVuXCI6IXR8fHZvaWQgMCxzdHlsZTp0JCxcImRhdGEtYmFzZS11aS1mb2N1cy1ndWFyZFwiOlwiXCJ9KX0pO3ZhciB0WT0naW5wdXQ6bm90KFtpbmVydF0pLHNlbGVjdDpub3QoW2luZXJ0XSksdGV4dGFyZWE6bm90KFtpbmVydF0pLGFbaHJlZl06bm90KFtpbmVydF0pLGJ1dHRvbjpub3QoW2luZXJ0XSksW3RhYmluZGV4XTpub3Qoc2xvdCk6bm90KFtpbmVydF0pLGF1ZGlvW2NvbnRyb2xzXTpub3QoW2luZXJ0XSksdmlkZW9bY29udHJvbHNdOm5vdChbaW5lcnRdKSxbY29udGVudGVkaXRhYmxlXTpub3QoW2NvbnRlbnRlZGl0YWJsZT1cImZhbHNlXCJdKTpub3QoW2luZXJ0XSksZGV0YWlscz5zdW1tYXJ5OmZpcnN0LW9mLXR5cGU6bm90KFtpbmVydF0pLGRldGFpbHM6bm90KFtpbmVydF0pJyx0WD1cInVuZGVmaW5lZFwiPT10eXBlb2YgRWxlbWVudCx0Sz10WD9mdW5jdGlvbigpe306RWxlbWVudC5wcm90b3R5cGUubWF0Y2hlc3x8RWxlbWVudC5wcm90b3R5cGUubXNNYXRjaGVzU2VsZWN0b3J8fEVsZW1lbnQucHJvdG90eXBlLndlYmtpdE1hdGNoZXNTZWxlY3Rvcix0UT0hdFgmJkVsZW1lbnQucHJvdG90eXBlLmdldFJvb3ROb2RlP2Z1bmN0aW9uKGUpe3ZhciBuO3JldHVybiBudWxsPT1lfHxudWxsPT0obj1lLmdldFJvb3ROb2RlKT92b2lkIDA6bi5jYWxsKGUpfTpmdW5jdGlvbihlKXtyZXR1cm4gbnVsbD09ZT92b2lkIDA6ZS5vd25lckRvY3VtZW50fSx0Rz1mdW5jdGlvbiBlKG4sdCl7dm9pZCAwPT09dCYmKHQ9ITApO3ZhciByLG89bnVsbD09bnx8bnVsbD09KHI9bi5nZXRBdHRyaWJ1dGUpP3ZvaWQgMDpyLmNhbGwobixcImluZXJ0XCIpO3JldHVyblwiXCI9PT1vfHxcInRydWVcIj09PW98fHQmJm4mJmUobi5wYXJlbnROb2RlKX0sdEo9ZnVuY3Rpb24oZSl7dmFyIG4sdD1udWxsPT1lfHxudWxsPT0obj1lLmdldEF0dHJpYnV0ZSk/dm9pZCAwOm4uY2FsbChlLFwiY29udGVudGVkaXRhYmxlXCIpO3JldHVyblwiXCI9PT10fHxcInRydWVcIj09PXR9LHQwPWZ1bmN0aW9uKGUsbix0KXtpZih0RyhlKSlyZXR1cm5bXTt2YXIgcj1BcnJheS5wcm90b3R5cGUuc2xpY2UuYXBwbHkoZS5xdWVyeVNlbGVjdG9yQWxsKHRZKSk7cmV0dXJuIG4mJnRLLmNhbGwoZSx0WSkmJnIudW5zaGlmdChlKSxyPXIuZmlsdGVyKHQpfSx0MT1mdW5jdGlvbiBlKG4sdCxyKXtmb3IodmFyIG89W10sYT1BcnJheS5mcm9tKG4pO2EubGVuZ3RoOyl7dmFyIGk9YS5zaGlmdCgpO2lmKCF0RyhpLCExKSlpZihcIlNMT1RcIj09PWkudGFnTmFtZSl7dmFyIGw9aS5hc3NpZ25lZEVsZW1lbnRzKCkscz1lKGwubGVuZ3RoP2w6aS5jaGlsZHJlbiwhMCxyKTtyLmZsYXR0ZW4/by5wdXNoLmFwcGx5KG8scyk6by5wdXNoKHtzY29wZVBhcmVudDppLGNhbmRpZGF0ZXM6c30pfWVsc2V7dEsuY2FsbChpLHRZKSYmci5maWx0ZXIoaSkmJih0fHwhbi5pbmNsdWRlcyhpKSkmJm8ucHVzaChpKTt2YXIgYz1pLnNoYWRvd1Jvb3R8fFwiZnVuY3Rpb25cIj09dHlwZW9mIHIuZ2V0U2hhZG93Um9vdCYmci5nZXRTaGFkb3dSb290KGkpLHU9IXRHKGMsITEpJiYoIXIuc2hhZG93Um9vdEZpbHRlcnx8ci5zaGFkb3dSb290RmlsdGVyKGkpKTtpZihjJiZ1KXt2YXIgZD1lKCEwPT09Yz9pLmNoaWxkcmVuOmMuY2hpbGRyZW4sITAscik7ci5mbGF0dGVuP28ucHVzaC5hcHBseShvLGQpOm8ucHVzaCh7c2NvcGVQYXJlbnQ6aSxjYW5kaWRhdGVzOmR9KX1lbHNlIGEudW5zaGlmdC5hcHBseShhLGkuY2hpbGRyZW4pfX1yZXR1cm4gb30sdDI9ZnVuY3Rpb24oZSl7cmV0dXJuIWlzTmFOKHBhcnNlSW50KGUuZ2V0QXR0cmlidXRlKFwidGFiaW5kZXhcIiksMTApKX0sdDQ9ZnVuY3Rpb24oZSl7aWYoIWUpdGhyb3cgRXJyb3IoXCJObyBub2RlIHByb3ZpZGVkXCIpO3JldHVybiBlLnRhYkluZGV4PDAmJigvXihBVURJT3xWSURFT3xERVRBSUxTKSQvLnRlc3QoZS50YWdOYW1lKXx8dEooZSkpJiYhdDIoZSk/MDplLnRhYkluZGV4fSx0NT1mdW5jdGlvbihlLG4pe3ZhciB0PXQ0KGUpO3JldHVybiB0PDAmJm4mJiF0MihlKT8wOnR9LHQzPWZ1bmN0aW9uKGUsbil7cmV0dXJuIGUudGFiSW5kZXg9PT1uLnRhYkluZGV4P2UuZG9jdW1lbnRPcmRlci1uLmRvY3VtZW50T3JkZXI6ZS50YWJJbmRleC1uLnRhYkluZGV4fSx0Nj1mdW5jdGlvbihlKXtyZXR1cm5cIklOUFVUXCI9PT1lLnRhZ05hbWV9LHQ5PWZ1bmN0aW9uKGUsbil7Zm9yKHZhciB0PTA7dDxlLmxlbmd0aDt0KyspaWYoZVt0XS5jaGVja2VkJiZlW3RdLmZvcm09PT1uKXJldHVybiBlW3RdfSx0OD1mdW5jdGlvbihlKXtpZighZS5uYW1lKXJldHVybiEwO3ZhciBuLHQ9ZS5mb3JtfHx0UShlKSxyPWZ1bmN0aW9uKGUpe3JldHVybiB0LnF1ZXJ5U2VsZWN0b3JBbGwoJ2lucHV0W3R5cGU9XCJyYWRpb1wiXVtuYW1lPVwiJytlKydcIl0nKX07aWYoXCJ1bmRlZmluZWRcIiE9dHlwZW9mIHdpbmRvdyYmdm9pZCAwIT09d2luZG93LkNTUyYmXCJmdW5jdGlvblwiPT10eXBlb2Ygd2luZG93LkNTUy5lc2NhcGUpbj1yKHdpbmRvdy5DU1MuZXNjYXBlKGUubmFtZSkpO2Vsc2UgdHJ5e249cihlLm5hbWUpfWNhdGNoKGUpe3JldHVybiBjb25zb2xlLmVycm9yKFwiTG9va3MgbGlrZSB5b3UgaGF2ZSBhIHJhZGlvIGJ1dHRvbiB3aXRoIGEgbmFtZSBhdHRyaWJ1dGUgY29udGFpbmluZyBpbnZhbGlkIENTUyBzZWxlY3RvciBjaGFyYWN0ZXJzIGFuZCBuZWVkIHRoZSBDU1MuZXNjYXBlIHBvbHlmaWxsOiAlc1wiLGUubWVzc2FnZSksITF9dmFyIG89dDkobixlLmZvcm0pO3JldHVybiFvfHxvPT09ZX0sdDc9ZnVuY3Rpb24oZSl7cmV0dXJuIHQ2KGUpJiZcInJhZGlvXCI9PT1lLnR5cGUmJiF0OChlKX0scmU9ZnVuY3Rpb24oZSl7dmFyIG4sdCxyLG8sYSxpLGwscz1lJiZ0UShlKSxjPW51bGw9PShuPXMpP3ZvaWQgMDpuLmhvc3QsdT0hMTtpZihzJiZzIT09ZSlmb3IodT0hIShudWxsIT0odD1jKSYmbnVsbCE9KHI9dC5vd25lckRvY3VtZW50KSYmci5jb250YWlucyhjKXx8bnVsbCE9ZSYmbnVsbCE9KG89ZS5vd25lckRvY3VtZW50KSYmby5jb250YWlucyhlKSk7IXUmJmM7KXU9ISEobnVsbCE9KGk9Yz1udWxsPT0oYT1zPXRRKGMpKT92b2lkIDA6YS5ob3N0KSYmbnVsbCE9KGw9aS5vd25lckRvY3VtZW50KSYmbC5jb250YWlucyhjKSk7cmV0dXJuIHV9LHJuPWZ1bmN0aW9uKGUpe3ZhciBuPWUuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCksdD1uLndpZHRoLHI9bi5oZWlnaHQ7cmV0dXJuIDA9PT10JiYwPT09cn0scnQ9ZnVuY3Rpb24oZSxuKXt2YXIgdD1uLmRpc3BsYXlDaGVjayxyPW4uZ2V0U2hhZG93Um9vdDtpZihcImhpZGRlblwiPT09Z2V0Q29tcHV0ZWRTdHlsZShlKS52aXNpYmlsaXR5KXJldHVybiEwO3ZhciBvPXRLLmNhbGwoZSxcImRldGFpbHM+c3VtbWFyeTpmaXJzdC1vZi10eXBlXCIpP2UucGFyZW50RWxlbWVudDplO2lmKHRLLmNhbGwobyxcImRldGFpbHM6bm90KFtvcGVuXSkgKlwiKSlyZXR1cm4hMDtpZih0JiZcImZ1bGxcIiE9PXQmJlwibGVnYWN5LWZ1bGxcIiE9PXQpe2lmKFwibm9uLXplcm8tYXJlYVwiPT09dClyZXR1cm4gcm4oZSl9ZWxzZXtpZihcImZ1bmN0aW9uXCI9PXR5cGVvZiByKXtmb3IodmFyIGE9ZTtlOyl7dmFyIGk9ZS5wYXJlbnRFbGVtZW50LGw9dFEoZSk7aWYoaSYmIWkuc2hhZG93Um9vdCYmITA9PT1yKGkpKXJldHVybiBybihlKTtlPWUuYXNzaWduZWRTbG90P2UuYXNzaWduZWRTbG90Oml8fGw9PT1lLm93bmVyRG9jdW1lbnQ/aTpsLmhvc3R9ZT1hfWlmKHJlKGUpKXJldHVybiFlLmdldENsaWVudFJlY3RzKCkubGVuZ3RoO2lmKFwibGVnYWN5LWZ1bGxcIiE9PXQpcmV0dXJuITB9cmV0dXJuITF9LHJyPWZ1bmN0aW9uKGUpe2lmKC9eKElOUFVUfEJVVFRPTnxTRUxFQ1R8VEVYVEFSRUEpJC8udGVzdChlLnRhZ05hbWUpKWZvcih2YXIgbj1lLnBhcmVudEVsZW1lbnQ7bjspe2lmKFwiRklFTERTRVRcIj09PW4udGFnTmFtZSYmbi5kaXNhYmxlZCl7Zm9yKHZhciB0PTA7dDxuLmNoaWxkcmVuLmxlbmd0aDt0Kyspe3ZhciByPW4uY2hpbGRyZW4uaXRlbSh0KTtpZihcIkxFR0VORFwiPT09ci50YWdOYW1lKXJldHVybiEhdEsuY2FsbChuLFwiZmllbGRzZXRbZGlzYWJsZWRdICpcIil8fCFyLmNvbnRhaW5zKGUpfXJldHVybiEwfW49bi5wYXJlbnRFbGVtZW50fXJldHVybiExfSxybz1mdW5jdGlvbihlLG4pe3JldHVybiEobi5kaXNhYmxlZHx8dEcobil8fHQ2KG4pJiZcImhpZGRlblwiPT09bi50eXBlfHxydChuLGUpfHxcIkRFVEFJTFNcIj09PW4udGFnTmFtZSYmQXJyYXkucHJvdG90eXBlLnNsaWNlLmFwcGx5KG4uY2hpbGRyZW4pLnNvbWUoZnVuY3Rpb24oZSl7cmV0dXJuXCJTVU1NQVJZXCI9PT1lLnRhZ05hbWV9KXx8cnIobikpfSxyYT1mdW5jdGlvbihlLG4pe3JldHVybiEodDcobil8fDA+dDQobikpJiYhIXJvKGUsbil9LHJpPWZ1bmN0aW9uKGUpe3ZhciBuPXBhcnNlSW50KGUuZ2V0QXR0cmlidXRlKFwidGFiaW5kZXhcIiksMTApO3JldHVybiEhaXNOYU4obil8fCEhKG4+PTApfSxybD1mdW5jdGlvbiBlKG4pe3ZhciB0PVtdLHI9W107cmV0dXJuIG4uZm9yRWFjaChmdW5jdGlvbihuLG8pe3ZhciBhPSEhbi5zY29wZVBhcmVudCxpPWE/bi5zY29wZVBhcmVudDpuLGw9dDUoaSxhKSxzPWE/ZShuLmNhbmRpZGF0ZXMpOmk7MD09PWw/YT90LnB1c2guYXBwbHkodCxzKTp0LnB1c2goaSk6ci5wdXNoKHtkb2N1bWVudE9yZGVyOm8sdGFiSW5kZXg6bCxpdGVtOm4saXNTY29wZTphLGNvbnRlbnQ6c30pfSksci5zb3J0KHQzKS5yZWR1Y2UoZnVuY3Rpb24oZSxuKXtyZXR1cm4gbi5pc1Njb3BlP2UucHVzaC5hcHBseShlLG4uY29udGVudCk6ZS5wdXNoKG4uY29udGVudCksZX0sW10pLmNvbmNhdCh0KX0scnM9ZnVuY3Rpb24oZSxuKXtyZXR1cm4gcmwoKG49bnx8e30pLmdldFNoYWRvd1Jvb3Q/dDEoW2VdLG4uaW5jbHVkZUNvbnRhaW5lcix7ZmlsdGVyOnJhLmJpbmQobnVsbCxuKSxmbGF0dGVuOiExLGdldFNoYWRvd1Jvb3Q6bi5nZXRTaGFkb3dSb290LHNoYWRvd1Jvb3RGaWx0ZXI6cml9KTp0MChlLG4uaW5jbHVkZUNvbnRhaW5lcixyYS5iaW5kKG51bGwsbikpKX0scmM9ZnVuY3Rpb24oZSxuKXtyZXR1cm4obj1ufHx7fSkuZ2V0U2hhZG93Um9vdD90MShbZV0sbi5pbmNsdWRlQ29udGFpbmVyLHtmaWx0ZXI6cm8uYmluZChudWxsLG4pLGZsYXR0ZW46ITAsZ2V0U2hhZG93Um9vdDpuLmdldFNoYWRvd1Jvb3R9KTp0MChlLG4uaW5jbHVkZUNvbnRhaW5lcixyby5iaW5kKG51bGwsbikpfSxydT1mdW5jdGlvbihlLG4pe2lmKG49bnx8e30sIWUpdGhyb3cgRXJyb3IoXCJObyBub2RlIHByb3ZpZGVkXCIpO3JldHVybiExIT09dEsuY2FsbChlLHRZKSYmcmEobixlKX07bGV0IHJkPSgpPT4oe2dldFNoYWRvd1Jvb3Q6ITAsZGlzcGxheUNoZWNrOlwiZnVuY3Rpb25cIj09dHlwZW9mIFJlc2l6ZU9ic2VydmVyJiZSZXNpemVPYnNlcnZlci50b1N0cmluZygpLmluY2x1ZGVzKFwiW25hdGl2ZSBjb2RlXVwiKT9cImZ1bGxcIjpcIm5vbmVcIn0pO2Z1bmN0aW9uIHJmKGUsbil7bGV0IHQ9cnMoZSxyZCgpKSxyPXQubGVuZ3RoO2lmKDA9PT1yKXJldHVybjtsZXQgbz1lWihlUShlKSksYT10LmluZGV4T2Yobyk7cmV0dXJuIHRbLTE9PT1hPzE9PT1uPzA6ci0xOmErbl19ZnVuY3Rpb24gcnAoZSl7cmV0dXJuIHJmKGVRKGUpLmJvZHksMSl8fGV9ZnVuY3Rpb24gcmgoZSl7cmV0dXJuIHJmKGVRKGUpLmJvZHksLTEpfHxlfWZ1bmN0aW9uIHJnKGUsbil7bGV0IHQ9bnx8ZS5jdXJyZW50VGFyZ2V0LHI9ZS5yZWxhdGVkVGFyZ2V0O3JldHVybiFyfHwhZVkodCxyKX1mdW5jdGlvbiBybShlKXtlLnF1ZXJ5U2VsZWN0b3JBbGwoXCJbZGF0YS10YWJpbmRleF1cIikuZm9yRWFjaChlPT57bGV0IG49ZS5kYXRhc2V0LnRhYmluZGV4O2RlbGV0ZSBlLmRhdGFzZXQudGFiaW5kZXgsbj9lLnNldEF0dHJpYnV0ZShcInRhYmluZGV4XCIsbik6ZS5yZW1vdmVBdHRyaWJ1dGUoXCJ0YWJpbmRleFwiKX0pfWxldCBydj1DLmNyZWF0ZUNvbnRleHQobnVsbCkscmI9KCk9PkMudXNlQ29udGV4dChydikscnk9ZTEoXCJwb3J0YWxcIik7ZnVuY3Rpb24gcngoZT17fSl7bGV0e2lkOm4scm9vdDp0fT1lLHI9SCgpLG89cmIoKSxbYSxpXT1DLnVzZVN0YXRlKG51bGwpLGw9Qy51c2VSZWYobnVsbCk7cmV0dXJuIEYoKCk9PigpPT57YT8ucmVtb3ZlKCkscXVldWVNaWNyb3Rhc2soKCk9PntsLmN1cnJlbnQ9bnVsbH0pfSxbYV0pLEYoKCk9PntpZighcnx8bC5jdXJyZW50KXJldHVybjtsZXQgZT1uP2RvY3VtZW50LmdldEVsZW1lbnRCeUlkKG4pOm51bGw7aWYoIWUpcmV0dXJuO2xldCB0PWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoXCJkaXZcIik7dC5pZD1yLHQuc2V0QXR0cmlidXRlKHJ5LFwiXCIpLGUuYXBwZW5kQ2hpbGQodCksbC5jdXJyZW50PXQsaSh0KX0sW24scl0pLEYoKCk9PntpZihudWxsPT09dHx8IXJ8fGwuY3VycmVudClyZXR1cm47bGV0IGU9dHx8bz8ucG9ydGFsTm9kZTtlJiYhZWUoZSkmJihlPWUuY3VycmVudCksZT1lfHxkb2N1bWVudC5ib2R5O2xldCBhPW51bGw7biYmKChhPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoXCJkaXZcIikpLmlkPW4sZS5hcHBlbmRDaGlsZChhKSk7bGV0IHM9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudChcImRpdlwiKTtzLmlkPXIscy5zZXRBdHRyaWJ1dGUocnksXCJcIiksKGU9YXx8ZSkuYXBwZW5kQ2hpbGQocyksbC5jdXJyZW50PXMsaShzKX0sW24sdCxyLG9dKSxhfWZ1bmN0aW9uIHJ3KGUpe2xldHtjaGlsZHJlbjpuLGlkOnQscm9vdDpyLHByZXNlcnZlVGFiT3JkZXI6bz0hMH09ZSxhPXJ4KHtpZDp0LHJvb3Q6cn0pLFtpLHNdPUMudXNlU3RhdGUobnVsbCksYz1DLnVzZVJlZihudWxsKSx1PUMudXNlUmVmKG51bGwpLGQ9Qy51c2VSZWYobnVsbCksZj1DLnVzZVJlZihudWxsKSxwPWk/Lm1vZGFsLGg9aT8ub3BlbixnPSEhaSYmIWkubW9kYWwmJmkub3BlbiYmbyYmISEocnx8YSk7cmV0dXJuIEMudXNlRWZmZWN0KCgpPT57aWYoYSYmbyYmIXApcmV0dXJuIGEuYWRkRXZlbnRMaXN0ZW5lcihcImZvY3VzaW5cIixlLCEwKSxhLmFkZEV2ZW50TGlzdGVuZXIoXCJmb2N1c291dFwiLGUsITApLCgpPT57YS5yZW1vdmVFdmVudExpc3RlbmVyKFwiZm9jdXNpblwiLGUsITApLGEucmVtb3ZlRXZlbnRMaXN0ZW5lcihcImZvY3Vzb3V0XCIsZSwhMCl9O2Z1bmN0aW9uIGUoZSl7YSYmcmcoZSkmJihcImZvY3VzaW5cIj09PWUudHlwZT9ybTpmdW5jdGlvbihlKXtycyhlLHJkKCkpLmZvckVhY2goZT0+e2UuZGF0YXNldC50YWJpbmRleD1lLmdldEF0dHJpYnV0ZShcInRhYmluZGV4XCIpfHxcIlwiLGUuc2V0QXR0cmlidXRlKFwidGFiaW5kZXhcIixcIi0xXCIpfSl9KShhKX19LFthLG8scF0pLEMudXNlRWZmZWN0KCgpPT57YSYmKGh8fHJtKGEpKX0sW2gsYV0pLCgwLGwuanN4cykocnYuUHJvdmlkZXIse3ZhbHVlOkMudXNlTWVtbygoKT0+KHtwcmVzZXJ2ZVRhYk9yZGVyOm8sYmVmb3JlT3V0c2lkZVJlZjpjLGFmdGVyT3V0c2lkZVJlZjp1LGJlZm9yZUluc2lkZVJlZjpkLGFmdGVySW5zaWRlUmVmOmYscG9ydGFsTm9kZTphLHNldEZvY3VzTWFuYWdlclN0YXRlOnN9KSxbbyxhXSksY2hpbGRyZW46W2cmJmEmJigwLGwuanN4KSh0Wix7XCJkYXRhLXR5cGVcIjpcIm91dHNpZGVcIixyZWY6YyxvbkZvY3VzOmU9PntpZihyZyhlLGEpKWQuY3VycmVudD8uZm9jdXMoKTtlbHNle2xldCBlPXJoKGk/aS5kb21SZWZlcmVuY2U6bnVsbCk7ZT8uZm9jdXMoKX19fSksZyYmYSYmKDAsbC5qc3gpKFwic3BhblwiLHtcImFyaWEtb3duc1wiOmEuaWQsc3R5bGU6dCR9KSxhJiZFLmNyZWF0ZVBvcnRhbChuLGEpLGcmJmEmJigwLGwuanN4KSh0Wix7XCJkYXRhLXR5cGVcIjpcIm91dHNpZGVcIixyZWY6dSxvbkZvY3VzOmU9PntpZihyZyhlLGEpKWYuY3VycmVudD8uZm9jdXMoKTtlbHNle2xldCBuPXJwKGk/aS5kb21SZWZlcmVuY2U6bnVsbCk7bj8uZm9jdXMoKSxpPy5jbG9zZU9uRm9jdXNPdXQmJmk/Lm9uT3BlbkNoYW5nZSghMSxlLm5hdGl2ZUV2ZW50LFwiZm9jdXMtb3V0XCIpfX19KV19KX1sZXQgcmo9Qy5jcmVhdGVDb250ZXh0KHZvaWQgMCk7ZnVuY3Rpb24gcmsoZSl7bGV0e2NoaWxkcmVuOm4sa2VlcE1vdW50ZWQ6dD0hMSxjb250YWluZXI6cn09ZSx7bW91bnRlZDpvfT1uMCgpO3JldHVybiBvfHx0PygwLGwuanN4KShyai5Qcm92aWRlcix7dmFsdWU6dCxjaGlsZHJlbjooMCxsLmpzeCkocncse3Jvb3Q6cixjaGlsZHJlbjpufSl9KTpudWxsfWxldCByQT1DLmNyZWF0ZUNvbnRleHQodm9pZCAwKTtmdW5jdGlvbiByTyhlLG4sdCl7bGV0IHIse3JlZmVyZW5jZTpvLGZsb2F0aW5nOmF9PWUsaT1uRShuKSxsPW5PKG5FKG4pKSxzPW5DKGwpLGM9bmsobiksdT1cInlcIj09PWksZD1vLngrby53aWR0aC8yLWEud2lkdGgvMixmPW8ueStvLmhlaWdodC8yLWEuaGVpZ2h0LzIscD1vW3NdLzItYVtzXS8yO3N3aXRjaChjKXtjYXNlXCJ0b3BcIjpyPXt4OmQseTpvLnktYS5oZWlnaHR9O2JyZWFrO2Nhc2VcImJvdHRvbVwiOnI9e3g6ZCx5Om8ueStvLmhlaWdodH07YnJlYWs7Y2FzZVwicmlnaHRcIjpyPXt4Om8ueCtvLndpZHRoLHk6Zn07YnJlYWs7Y2FzZVwibGVmdFwiOnI9e3g6by54LWEud2lkdGgseTpmfTticmVhaztkZWZhdWx0OnI9e3g6by54LHk6by55fX1zd2l0Y2gobkEobikpe2Nhc2VcInN0YXJ0XCI6cltsXS09cCoodCYmdT8tMToxKTticmVhaztjYXNlXCJlbmRcIjpyW2xdKz1wKih0JiZ1Py0xOjEpfXJldHVybiByfWxldCByQz1hc3luYyhlLG4sdCk9PntsZXR7cGxhY2VtZW50OnI9XCJib3R0b21cIixzdHJhdGVneTpvPVwiYWJzb2x1dGVcIixtaWRkbGV3YXJlOmE9W10scGxhdGZvcm06aX09dCxsPWEuZmlsdGVyKEJvb2xlYW4pLHM9YXdhaXQgKG51bGw9PWkuaXNSVEw/dm9pZCAwOmkuaXNSVEwobikpLGM9YXdhaXQgaS5nZXRFbGVtZW50UmVjdHMoe3JlZmVyZW5jZTplLGZsb2F0aW5nOm4sc3RyYXRlZ3k6b30pLHt4OnUseTpkfT1yTyhjLHIscyksZj1yLHA9e30saD0wO2ZvcihsZXQgdD0wO3Q8bC5sZW5ndGg7dCsrKXtsZXR7bmFtZTphLGZuOmd9PWxbdF0se3g6bSx5OnYsZGF0YTpiLHJlc2V0Onl9PWF3YWl0IGcoe3g6dSx5OmQsaW5pdGlhbFBsYWNlbWVudDpyLHBsYWNlbWVudDpmLHN0cmF0ZWd5Om8sbWlkZGxld2FyZURhdGE6cCxyZWN0czpjLHBsYXRmb3JtOmksZWxlbWVudHM6e3JlZmVyZW5jZTplLGZsb2F0aW5nOm59fSk7dT1udWxsIT1tP206dSxkPW51bGwhPXY/djpkLHA9ey4uLnAsW2FdOnsuLi5wW2FdLC4uLmJ9fSx5JiZoPD01MCYmKGgrKyxcIm9iamVjdFwiPT10eXBlb2YgeSYmKHkucGxhY2VtZW50JiYoZj15LnBsYWNlbWVudCkseS5yZWN0cyYmKGM9ITA9PT15LnJlY3RzP2F3YWl0IGkuZ2V0RWxlbWVudFJlY3RzKHtyZWZlcmVuY2U6ZSxmbG9hdGluZzpuLHN0cmF0ZWd5Om99KTp5LnJlY3RzKSx7eDp1LHk6ZH09ck8oYyxmLHMpKSx0PS0xKX1yZXR1cm57eDp1LHk6ZCxwbGFjZW1lbnQ6ZixzdHJhdGVneTpvLG1pZGRsZXdhcmVEYXRhOnB9fTthc3luYyBmdW5jdGlvbiByUyhlLG4pe3ZhciB0O3ZvaWQgMD09PW4mJihuPXt9KTtsZXR7eDpyLHk6byxwbGF0Zm9ybTphLHJlY3RzOmksZWxlbWVudHM6bCxzdHJhdGVneTpzfT1lLHtib3VuZGFyeTpjPVwiY2xpcHBpbmdBbmNlc3RvcnNcIixyb290Qm91bmRhcnk6dT1cInZpZXdwb3J0XCIsZWxlbWVudENvbnRleHQ6ZD1cImZsb2F0aW5nXCIsYWx0Qm91bmRhcnk6Zj0hMSxwYWRkaW5nOnA9MH09bmoobixlKSxoPW5OKHApLGc9bFtmP1wiZmxvYXRpbmdcIj09PWQ/XCJyZWZlcmVuY2VcIjpcImZsb2F0aW5nXCI6ZF0sbT1uRChhd2FpdCBhLmdldENsaXBwaW5nUmVjdCh7ZWxlbWVudDpudWxsPT0odD1hd2FpdCAobnVsbD09YS5pc0VsZW1lbnQ/dm9pZCAwOmEuaXNFbGVtZW50KGcpKSl8fHQ/ZzpnLmNvbnRleHRFbGVtZW50fHxhd2FpdCAobnVsbD09YS5nZXREb2N1bWVudEVsZW1lbnQ/dm9pZCAwOmEuZ2V0RG9jdW1lbnRFbGVtZW50KGwuZmxvYXRpbmcpKSxib3VuZGFyeTpjLHJvb3RCb3VuZGFyeTp1LHN0cmF0ZWd5OnN9KSksdj1cImZsb2F0aW5nXCI9PT1kP3t4OnIseTpvLHdpZHRoOmkuZmxvYXRpbmcud2lkdGgsaGVpZ2h0OmkuZmxvYXRpbmcuaGVpZ2h0fTppLnJlZmVyZW5jZSxiPWF3YWl0IChudWxsPT1hLmdldE9mZnNldFBhcmVudD92b2lkIDA6YS5nZXRPZmZzZXRQYXJlbnQobC5mbG9hdGluZykpLHk9YXdhaXQgKG51bGw9PWEuaXNFbGVtZW50P3ZvaWQgMDphLmlzRWxlbWVudChiKSkmJmF3YWl0IChudWxsPT1hLmdldFNjYWxlP3ZvaWQgMDphLmdldFNjYWxlKGIpKXx8e3g6MSx5OjF9LHg9bkQoYS5jb252ZXJ0T2Zmc2V0UGFyZW50UmVsYXRpdmVSZWN0VG9WaWV3cG9ydFJlbGF0aXZlUmVjdD9hd2FpdCBhLmNvbnZlcnRPZmZzZXRQYXJlbnRSZWxhdGl2ZVJlY3RUb1ZpZXdwb3J0UmVsYXRpdmVSZWN0KHtlbGVtZW50czpsLHJlY3Q6dixvZmZzZXRQYXJlbnQ6YixzdHJhdGVneTpzfSk6dik7cmV0dXJue3RvcDoobS50b3AteC50b3AraC50b3ApL3kueSxib3R0b206KHguYm90dG9tLW0uYm90dG9tK2guYm90dG9tKS95LnksbGVmdDoobS5sZWZ0LXgubGVmdCtoLmxlZnQpL3kueCxyaWdodDooeC5yaWdodC1tLnJpZ2h0K2gucmlnaHQpL3kueH19ZnVuY3Rpb24gckUoZSxuKXtyZXR1cm57dG9wOmUudG9wLW4uaGVpZ2h0LHJpZ2h0OmUucmlnaHQtbi53aWR0aCxib3R0b206ZS5ib3R0b20tbi5oZWlnaHQsbGVmdDplLmxlZnQtbi53aWR0aH19ZnVuY3Rpb24gcl8oZSl7cmV0dXJuIG5oLnNvbWUobj0+ZVtuXT49MCl9bGV0IHJQPW5ldyBTZXQoW1wibGVmdFwiLFwidG9wXCJdKTthc3luYyBmdW5jdGlvbiByeihlLG4pe2xldHtwbGFjZW1lbnQ6dCxwbGF0Zm9ybTpyLGVsZW1lbnRzOm99PWUsYT1hd2FpdCAobnVsbD09ci5pc1JUTD92b2lkIDA6ci5pc1JUTChvLmZsb2F0aW5nKSksaT1uayh0KSxsPW5BKHQpLHM9XCJ5XCI9PT1uRSh0KSxjPXJQLmhhcyhpKT8tMToxLHU9YSYmcz8tMToxLGQ9bmoobixlKSx7bWFpbkF4aXM6Zixjcm9zc0F4aXM6cCxhbGlnbm1lbnRBeGlzOmh9PVwibnVtYmVyXCI9PXR5cGVvZiBkP3ttYWluQXhpczpkLGNyb3NzQXhpczowLGFsaWdubWVudEF4aXM6bnVsbH06e21haW5BeGlzOmQubWFpbkF4aXN8fDAsY3Jvc3NBeGlzOmQuY3Jvc3NBeGlzfHwwLGFsaWdubWVudEF4aXM6ZC5hbGlnbm1lbnRBeGlzfTtyZXR1cm4gbCYmXCJudW1iZXJcIj09dHlwZW9mIGgmJihwPVwiZW5kXCI9PT1sPy0xKmg6aCkscz97eDpwKnUseTpmKmN9Ont4OmYqYyx5OnAqdX19ZnVuY3Rpb24gckwoZSl7bGV0IG49ZWcoZSksdD1wYXJzZUZsb2F0KG4ud2lkdGgpfHwwLHI9cGFyc2VGbG9hdChuLmhlaWdodCl8fDAsbz1lbihlKSxhPW8/ZS5vZmZzZXRXaWR0aDp0LGk9bz9lLm9mZnNldEhlaWdodDpyLGw9bnYodCkhPT1hfHxudihyKSE9PWk7cmV0dXJuIGwmJih0PWEscj1pKSx7d2lkdGg6dCxoZWlnaHQ6ciwkOmx9fWZ1bmN0aW9uIHJUKGUpe3JldHVybiBlZShlKT9lOmUuY29udGV4dEVsZW1lbnR9ZnVuY3Rpb24gclIoZSl7bGV0IG49clQoZSk7aWYoIWVuKG4pKXJldHVybiBueSgxKTtsZXQgdD1uLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLHt3aWR0aDpyLGhlaWdodDpvLCQ6YX09ckwobiksaT0oYT9udih0LndpZHRoKTp0LndpZHRoKS9yLGw9KGE/bnYodC5oZWlnaHQpOnQuaGVpZ2h0KS9vO3JldHVybiBpJiZOdW1iZXIuaXNGaW5pdGUoaSl8fChpPTEpLGwmJk51bWJlci5pc0Zpbml0ZShsKXx8KGw9MSkse3g6aSx5Omx9fWxldCByTj1ueSgwKTtmdW5jdGlvbiByRChlKXtsZXQgbj1RKGUpO3JldHVybiBlZigpJiZuLnZpc3VhbFZpZXdwb3J0P3t4Om4udmlzdWFsVmlld3BvcnQub2Zmc2V0TGVmdCx5Om4udmlzdWFsVmlld3BvcnQub2Zmc2V0VG9wfTpyTn1mdW5jdGlvbiByQihlLG4sdCxyKXt2YXIgbzt2b2lkIDA9PT1uJiYobj0hMSksdm9pZCAwPT09dCYmKHQ9ITEpO2xldCBhPWUuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCksaT1yVChlKSxsPW55KDEpO24mJihyP2VlKHIpJiYobD1yUihyKSk6bD1yUihlKSk7bGV0IHM9KHZvaWQgMD09PShvPXQpJiYobz0hMSksciYmKCFvfHxyPT09UShpKSkmJm8pP3JEKGkpOm55KDApLGM9KGEubGVmdCtzLngpL2wueCx1PShhLnRvcCtzLnkpL2wueSxkPWEud2lkdGgvbC54LGY9YS5oZWlnaHQvbC55O2lmKGkpe2xldCBlPVEoaSksbj1yJiZlZShyKT9RKHIpOnIsdD1lLG89ZXkodCk7Zm9yKDtvJiZyJiZuIT09dDspe2xldCBlPXJSKG8pLG49by5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSxyPWVnKG8pLGE9bi5sZWZ0KyhvLmNsaWVudExlZnQrcGFyc2VGbG9hdChyLnBhZGRpbmdMZWZ0KSkqZS54LGk9bi50b3ArKG8uY2xpZW50VG9wK3BhcnNlRmxvYXQoci5wYWRkaW5nVG9wKSkqZS55O2MqPWUueCx1Kj1lLnksZCo9ZS54LGYqPWUueSxjKz1hLHUrPWksbz1leSh0PVEobykpfX1yZXR1cm4gbkQoe3dpZHRoOmQsaGVpZ2h0OmYseDpjLHk6dX0pfWZ1bmN0aW9uIHJNKGUsbil7bGV0IHQ9ZW0oZSkuc2Nyb2xsTGVmdDtyZXR1cm4gbj9uLmxlZnQrdDpyQihHKGUpKS5sZWZ0K3R9ZnVuY3Rpb24gckkoZSxuLHQpe3ZvaWQgMD09PXQmJih0PSExKTtsZXQgcj1lLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO3JldHVybnt4OnIubGVmdCtuLnNjcm9sbExlZnQtKHQ/MDpyTShlLHIpKSx5OnIudG9wK24uc2Nyb2xsVG9wfX1sZXQgckg9bmV3IFNldChbXCJhYnNvbHV0ZVwiLFwiZml4ZWRcIl0pO2Z1bmN0aW9uIHJGKGUsbix0KXtsZXQgcjtpZihcInZpZXdwb3J0XCI9PT1uKXI9ZnVuY3Rpb24oZSxuKXtsZXQgdD1RKGUpLHI9RyhlKSxvPXQudmlzdWFsVmlld3BvcnQsYT1yLmNsaWVudFdpZHRoLGk9ci5jbGllbnRIZWlnaHQsbD0wLHM9MDtpZihvKXthPW8ud2lkdGgsaT1vLmhlaWdodDtsZXQgZT1lZigpOyghZXx8ZSYmXCJmaXhlZFwiPT09bikmJihsPW8ub2Zmc2V0TGVmdCxzPW8ub2Zmc2V0VG9wKX1yZXR1cm57d2lkdGg6YSxoZWlnaHQ6aSx4OmwseTpzfX0oZSx0KTtlbHNlIGlmKFwiZG9jdW1lbnRcIj09PW4pcj1mdW5jdGlvbihlKXtsZXQgbj1HKGUpLHQ9ZW0oZSkscj1lLm93bmVyRG9jdW1lbnQuYm9keSxvPW5tKG4uc2Nyb2xsV2lkdGgsbi5jbGllbnRXaWR0aCxyLnNjcm9sbFdpZHRoLHIuY2xpZW50V2lkdGgpLGE9bm0obi5zY3JvbGxIZWlnaHQsbi5jbGllbnRIZWlnaHQsci5zY3JvbGxIZWlnaHQsci5jbGllbnRIZWlnaHQpLGk9LXQuc2Nyb2xsTGVmdCtyTShlKSxsPS10LnNjcm9sbFRvcDtyZXR1cm5cInJ0bFwiPT09ZWcocikuZGlyZWN0aW9uJiYoaSs9bm0obi5jbGllbnRXaWR0aCxyLmNsaWVudFdpZHRoKS1vKSx7d2lkdGg6byxoZWlnaHQ6YSx4OmkseTpsfX0oRyhlKSk7ZWxzZSBpZihlZShuKSlyPWZ1bmN0aW9uKGUsbil7bGV0IHQ9ckIoZSwhMCxcImZpeGVkXCI9PT1uKSxyPXQudG9wK2UuY2xpZW50VG9wLG89dC5sZWZ0K2UuY2xpZW50TGVmdCxhPWVuKGUpP3JSKGUpOm55KDEpLGk9ZS5jbGllbnRXaWR0aCphLngsbD1lLmNsaWVudEhlaWdodCphLnk7cmV0dXJue3dpZHRoOmksaGVpZ2h0OmwseDpvKmEueCx5OnIqYS55fX0obix0KTtlbHNle2xldCB0PXJEKGUpO3I9e3g6bi54LXQueCx5Om4ueS10Lnksd2lkdGg6bi53aWR0aCxoZWlnaHQ6bi5oZWlnaHR9fXJldHVybiBuRChyKX1mdW5jdGlvbiByVShlKXtyZXR1cm5cInN0YXRpY1wiPT09ZWcoZSkucG9zaXRpb259ZnVuY3Rpb24gclYoZSxuKXtpZighZW4oZSl8fFwiZml4ZWRcIj09PWVnKGUpLnBvc2l0aW9uKXJldHVybiBudWxsO2lmKG4pcmV0dXJuIG4oZSk7bGV0IHQ9ZS5vZmZzZXRQYXJlbnQ7cmV0dXJuIEcoZSk9PT10JiYodD10Lm93bmVyRG9jdW1lbnQuYm9keSksdH1mdW5jdGlvbiBycShlLG4pe3ZhciB0O2xldCByPVEoZSk7aWYoZWwoZSkpcmV0dXJuIHI7aWYoIWVuKGUpKXtsZXQgbj1ldihlKTtmb3IoO24mJiFlaChuKTspe2lmKGVlKG4pJiYhclUobikpcmV0dXJuIG47bj1ldihuKX1yZXR1cm4gcn1sZXQgbz1yVihlLG4pO2Zvcig7byYmKHQ9byxlYS5oYXMoSyh0KSkpJiZyVShvKTspbz1yVihvLG4pO3JldHVybiBvJiZlaChvKSYmclUobykmJiFlZChvKT9yOm98fGZ1bmN0aW9uKGUpe2xldCBuPWV2KGUpO2Zvcig7ZW4obikmJiFlaChuKTspe2lmKGVkKG4pKXJldHVybiBuO2lmKGVsKG4pKWJyZWFrO249ZXYobil9cmV0dXJuIG51bGx9KGUpfHxyfWxldCByVz1hc3luYyBmdW5jdGlvbihlKXtsZXQgbj10aGlzLmdldE9mZnNldFBhcmVudHx8cnEsdD10aGlzLmdldERpbWVuc2lvbnMscj1hd2FpdCB0KGUuZmxvYXRpbmcpO3JldHVybntyZWZlcmVuY2U6ZnVuY3Rpb24oZSxuLHQpe2xldCByPWVuKG4pLG89RyhuKSxhPVwiZml4ZWRcIj09PXQsaT1yQihlLCEwLGEsbiksbD17c2Nyb2xsTGVmdDowLHNjcm9sbFRvcDowfSxzPW55KDApO2lmKHJ8fCFyJiYhYSlpZigoXCJib2R5XCIhPT1LKG4pfHxlbyhvKSkmJihsPWVtKG4pKSxyKXtsZXQgZT1yQihuLCEwLGEsbik7cy54PWUueCtuLmNsaWVudExlZnQscy55PWUueStuLmNsaWVudFRvcH1lbHNlIG8mJihzLng9ck0obykpO2EmJiFyJiZvJiYocy54PXJNKG8pKTtsZXQgYz0hb3x8cnx8YT9ueSgwKTpySShvLGwpO3JldHVybnt4OmkubGVmdCtsLnNjcm9sbExlZnQtcy54LWMueCx5OmkudG9wK2wuc2Nyb2xsVG9wLXMueS1jLnksd2lkdGg6aS53aWR0aCxoZWlnaHQ6aS5oZWlnaHR9fShlLnJlZmVyZW5jZSxhd2FpdCBuKGUuZmxvYXRpbmcpLGUuc3RyYXRlZ3kpLGZsb2F0aW5nOnt4OjAseTowLHdpZHRoOnIud2lkdGgsaGVpZ2h0OnIuaGVpZ2h0fX19LHIkPXtjb252ZXJ0T2Zmc2V0UGFyZW50UmVsYXRpdmVSZWN0VG9WaWV3cG9ydFJlbGF0aXZlUmVjdDpmdW5jdGlvbihlKXtsZXR7ZWxlbWVudHM6bixyZWN0OnQsb2Zmc2V0UGFyZW50OnIsc3RyYXRlZ3k6b309ZSxhPVwiZml4ZWRcIj09PW8saT1HKHIpLGw9ISFuJiZlbChuLmZsb2F0aW5nKTtpZihyPT09aXx8bCYmYSlyZXR1cm4gdDtsZXQgcz17c2Nyb2xsTGVmdDowLHNjcm9sbFRvcDowfSxjPW55KDEpLHU9bnkoMCksZD1lbihyKTtpZigoZHx8IWQmJiFhKSYmKChcImJvZHlcIiE9PUsocil8fGVvKGkpKSYmKHM9ZW0ocikpLGVuKHIpKSl7bGV0IGU9ckIocik7Yz1yUihyKSx1Lng9ZS54K3IuY2xpZW50TGVmdCx1Lnk9ZS55K3IuY2xpZW50VG9wfWxldCBmPSFpfHxkfHxhP255KDApOnJJKGkscywhMCk7cmV0dXJue3dpZHRoOnQud2lkdGgqYy54LGhlaWdodDp0LmhlaWdodCpjLnkseDp0LngqYy54LXMuc2Nyb2xsTGVmdCpjLngrdS54K2YueCx5OnQueSpjLnktcy5zY3JvbGxUb3AqYy55K3UueStmLnl9fSxnZXREb2N1bWVudEVsZW1lbnQ6RyxnZXRDbGlwcGluZ1JlY3Q6ZnVuY3Rpb24oZSl7bGV0e2VsZW1lbnQ6bixib3VuZGFyeTp0LHJvb3RCb3VuZGFyeTpyLHN0cmF0ZWd5Om99PWUsYT1bLi4uXCJjbGlwcGluZ0FuY2VzdG9yc1wiPT09dD9lbChuKT9bXTpmdW5jdGlvbihlLG4pe2xldCB0PW4uZ2V0KGUpO2lmKHQpcmV0dXJuIHQ7bGV0IHI9ZWIoZSxbXSwhMSkuZmlsdGVyKGU9PmVlKGUpJiZcImJvZHlcIiE9PUsoZSkpLG89bnVsbCxhPVwiZml4ZWRcIj09PWVnKGUpLnBvc2l0aW9uLGk9YT9ldihlKTplO2Zvcig7ZWUoaSkmJiFlaChpKTspe2xldCBuPWVnKGkpLHQ9ZWQoaSk7dHx8XCJmaXhlZFwiIT09bi5wb3NpdGlvbnx8KG89bnVsbCksKGE/IXQmJiFvOiF0JiZcInN0YXRpY1wiPT09bi5wb3NpdGlvbiYmISFvJiZySC5oYXMoby5wb3NpdGlvbil8fGVvKGkpJiYhdCYmZnVuY3Rpb24gZShuLHQpe2xldCByPWV2KG4pO3JldHVybiEocj09PXR8fCFlZShyKXx8ZWgocikpJiYoXCJmaXhlZFwiPT09ZWcocikucG9zaXRpb258fGUocix0KSl9KGUsaSkpP3I9ci5maWx0ZXIoZT0+ZSE9PWkpOm89bixpPWV2KGkpfXJldHVybiBuLnNldChlLHIpLHJ9KG4sdGhpcy5fYyk6W10uY29uY2F0KHQpLHJdLGk9YVswXSxsPWEucmVkdWNlKChlLHQpPT57bGV0IHI9ckYobix0LG8pO3JldHVybiBlLnRvcD1ubShyLnRvcCxlLnRvcCksZS5yaWdodD1uZyhyLnJpZ2h0LGUucmlnaHQpLGUuYm90dG9tPW5nKHIuYm90dG9tLGUuYm90dG9tKSxlLmxlZnQ9bm0oci5sZWZ0LGUubGVmdCksZX0sckYobixpLG8pKTtyZXR1cm57d2lkdGg6bC5yaWdodC1sLmxlZnQsaGVpZ2h0OmwuYm90dG9tLWwudG9wLHg6bC5sZWZ0LHk6bC50b3B9fSxnZXRPZmZzZXRQYXJlbnQ6cnEsZ2V0RWxlbWVudFJlY3RzOnJXLGdldENsaWVudFJlY3RzOmZ1bmN0aW9uKGUpe3JldHVybiBBcnJheS5mcm9tKGUuZ2V0Q2xpZW50UmVjdHMoKSl9LGdldERpbWVuc2lvbnM6ZnVuY3Rpb24oZSl7bGV0e3dpZHRoOm4saGVpZ2h0OnR9PXJMKGUpO3JldHVybnt3aWR0aDpuLGhlaWdodDp0fX0sZ2V0U2NhbGU6clIsaXNFbGVtZW50OmVlLGlzUlRMOmZ1bmN0aW9uKGUpe3JldHVyblwicnRsXCI9PT1lZyhlKS5kaXJlY3Rpb259fTtmdW5jdGlvbiByWihlLG4pe3JldHVybiBlLng9PT1uLngmJmUueT09PW4ueSYmZS53aWR0aD09PW4ud2lkdGgmJmUuaGVpZ2h0PT09bi5oZWlnaHR9ZnVuY3Rpb24gclkoZSxuLHQscil7bGV0IG87dm9pZCAwPT09ciYmKHI9e30pO2xldHthbmNlc3RvclNjcm9sbDphPSEwLGFuY2VzdG9yUmVzaXplOmk9ITAsZWxlbWVudFJlc2l6ZTpsPVwiZnVuY3Rpb25cIj09dHlwZW9mIFJlc2l6ZU9ic2VydmVyLGxheW91dFNoaWZ0OnM9XCJmdW5jdGlvblwiPT10eXBlb2YgSW50ZXJzZWN0aW9uT2JzZXJ2ZXIsYW5pbWF0aW9uRnJhbWU6Yz0hMX09cix1PXJUKGUpLGQ9YXx8aT9bLi4udT9lYih1KTpbXSwuLi5lYihuKV06W107ZC5mb3JFYWNoKGU9PnthJiZlLmFkZEV2ZW50TGlzdGVuZXIoXCJzY3JvbGxcIix0LHtwYXNzaXZlOiEwfSksaSYmZS5hZGRFdmVudExpc3RlbmVyKFwicmVzaXplXCIsdCl9KTtsZXQgZj11JiZzP2Z1bmN0aW9uKGUsbil7bGV0IHQscj1udWxsLG89RyhlKTtmdW5jdGlvbiBhKCl7dmFyIGU7Y2xlYXJUaW1lb3V0KHQpLG51bGw9PShlPXIpfHxlLmRpc2Nvbm5lY3QoKSxyPW51bGx9cmV0dXJuIWZ1bmN0aW9uIGkobCxzKXt2b2lkIDA9PT1sJiYobD0hMSksdm9pZCAwPT09cyYmKHM9MSksYSgpO2xldCBjPWUuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkse2xlZnQ6dSx0b3A6ZCx3aWR0aDpmLGhlaWdodDpwfT1jO2lmKGx8fG4oKSwhZnx8IXApcmV0dXJuO2xldCBoPW5iKGQpLGc9bmIoby5jbGllbnRXaWR0aC0odStmKSksbT17cm9vdE1hcmdpbjotaCtcInB4IFwiKy1nK1wicHggXCIrLW5iKG8uY2xpZW50SGVpZ2h0LShkK3ApKStcInB4IFwiKy1uYih1KStcInB4XCIsdGhyZXNob2xkOm5tKDAsbmcoMSxzKSl8fDF9LHY9ITA7ZnVuY3Rpb24gYihuKXtsZXQgcj1uWzBdLmludGVyc2VjdGlvblJhdGlvO2lmKHIhPT1zKXtpZighdilyZXR1cm4gaSgpO3I/aSghMSxyKTp0PXNldFRpbWVvdXQoKCk9PntpKCExLDFlLTcpfSwxZTMpfTEhPT1yfHxyWihjLGUuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkpfHxpKCksdj0hMX10cnl7cj1uZXcgSW50ZXJzZWN0aW9uT2JzZXJ2ZXIoYix7Li4ubSxyb290Om8ub3duZXJEb2N1bWVudH0pfWNhdGNoKGUpe3I9bmV3IEludGVyc2VjdGlvbk9ic2VydmVyKGIsbSl9ci5vYnNlcnZlKGUpfSghMCksYX0odSx0KTpudWxsLHA9LTEsaD1udWxsO2wmJihoPW5ldyBSZXNpemVPYnNlcnZlcihlPT57bGV0W3JdPWU7ciYmci50YXJnZXQ9PT11JiZoJiYoaC51bm9ic2VydmUobiksY2FuY2VsQW5pbWF0aW9uRnJhbWUocCkscD1yZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCk9Pnt2YXIgZTtudWxsPT0oZT1oKXx8ZS5vYnNlcnZlKG4pfSkpLHQoKX0pLHUmJiFjJiZoLm9ic2VydmUodSksaC5vYnNlcnZlKG4pKTtsZXQgZz1jP3JCKGUpOm51bGw7cmV0dXJuIGMmJmZ1bmN0aW9uIG4oKXtsZXQgcj1yQihlKTtnJiYhclooZyxyKSYmdCgpLGc9cixvPXJlcXVlc3RBbmltYXRpb25GcmFtZShuKX0oKSx0KCksKCk9Pnt2YXIgZTtkLmZvckVhY2goZT0+e2EmJmUucmVtb3ZlRXZlbnRMaXN0ZW5lcihcInNjcm9sbFwiLHQpLGkmJmUucmVtb3ZlRXZlbnRMaXN0ZW5lcihcInJlc2l6ZVwiLHQpfSksbnVsbD09Znx8ZigpLG51bGw9PShlPWgpfHxlLmRpc2Nvbm5lY3QoKSxoPW51bGwsYyYmY2FuY2VsQW5pbWF0aW9uRnJhbWUobyl9fWxldCByWD1lPT4oe25hbWU6XCJhcnJvd1wiLG9wdGlvbnM6ZSxhc3luYyBmbihuKXtsZXR7eDp0LHk6cixwbGFjZW1lbnQ6byxyZWN0czphLHBsYXRmb3JtOmksZWxlbWVudHM6bCxtaWRkbGV3YXJlRGF0YTpzfT1uLHtlbGVtZW50OmMscGFkZGluZzp1PTB9PW5qKGUsbil8fHt9O2lmKG51bGw9PWMpcmV0dXJue307bGV0IGQ9bk4odSksZj17eDp0LHk6cn0scD1uTyhuRShvKSksaD1uQyhwKSxnPWF3YWl0IGkuZ2V0RGltZW5zaW9ucyhjKSxtPVwieVwiPT09cCx2PW0/XCJjbGllbnRIZWlnaHRcIjpcImNsaWVudFdpZHRoXCIsYj1hLnJlZmVyZW5jZVtoXSthLnJlZmVyZW5jZVtwXS1mW3BdLWEuZmxvYXRpbmdbaF0seT1mW3BdLWEucmVmZXJlbmNlW3BdLHg9YXdhaXQgKG51bGw9PWkuZ2V0T2Zmc2V0UGFyZW50P3ZvaWQgMDppLmdldE9mZnNldFBhcmVudChjKSksdz14P3hbdl06MDt3JiZhd2FpdCAobnVsbD09aS5pc0VsZW1lbnQ/dm9pZCAwOmkuaXNFbGVtZW50KHgpKXx8KHc9bC5mbG9hdGluZ1t2XXx8YS5mbG9hdGluZ1toXSk7bGV0IGo9dy8yLWdbaF0vMi0xLGs9bmcoZFttP1widG9wXCI6XCJsZWZ0XCJdLGopLEE9bmcoZFttP1wiYm90dG9tXCI6XCJyaWdodFwiXSxqKSxPPXctZ1toXS1BLEM9dy8yLWdbaF0vMisoYi8yLXkvMiksUz1ubShrLG5nKEMsTykpLEU9IXMuYXJyb3cmJm51bGwhPW5BKG8pJiZDIT09UyYmYS5yZWZlcmVuY2VbaF0vMi0oQzxrP2s6QSktZ1toXS8yPDAsXz1FP0M8az9DLWs6Qy1POjA7cmV0dXJue1twXTpmW3BdK18sZGF0YTp7W3BdOlMsY2VudGVyT2Zmc2V0OkMtUy1fLC4uLkUmJnthbGlnbm1lbnRPZmZzZXQ6X319LHJlc2V0OkV9fX0pO3ZhciBySz1cInVuZGVmaW5lZFwiIT10eXBlb2YgZG9jdW1lbnQ/Qy51c2VMYXlvdXRFZmZlY3Q6ZnVuY3Rpb24oKXt9O2Z1bmN0aW9uIHJRKGUsbil7bGV0IHQscixvO2lmKGU9PT1uKXJldHVybiEwO2lmKHR5cGVvZiBlIT10eXBlb2YgbilyZXR1cm4hMTtpZihcImZ1bmN0aW9uXCI9PXR5cGVvZiBlJiZlLnRvU3RyaW5nKCk9PT1uLnRvU3RyaW5nKCkpcmV0dXJuITA7aWYoZSYmbiYmXCJvYmplY3RcIj09dHlwZW9mIGUpe2lmKEFycmF5LmlzQXJyYXkoZSkpe2lmKCh0PWUubGVuZ3RoKSE9PW4ubGVuZ3RoKXJldHVybiExO2ZvcihyPXQ7MCE9ci0tOylpZighclEoZVtyXSxuW3JdKSlyZXR1cm4hMTtyZXR1cm4hMH1pZigodD0obz1PYmplY3Qua2V5cyhlKSkubGVuZ3RoKSE9PU9iamVjdC5rZXlzKG4pLmxlbmd0aClyZXR1cm4hMTtmb3Iocj10OzAhPXItLTspaWYoISh7fSkuaGFzT3duUHJvcGVydHkuY2FsbChuLG9bcl0pKXJldHVybiExO2ZvcihyPXQ7MCE9ci0tOyl7bGV0IHQ9b1tyXTtpZigoXCJfb3duZXJcIiE9PXR8fCFlLiQkdHlwZW9mKSYmIXJRKGVbdF0sblt0XSkpcmV0dXJuITF9cmV0dXJuITB9cmV0dXJuIGUhPWUmJm4hPW59ZnVuY3Rpb24gckcoZSl7cmV0dXJuXCJ1bmRlZmluZWRcIj09dHlwZW9mIHdpbmRvdz8xOihlLm93bmVyRG9jdW1lbnQuZGVmYXVsdFZpZXd8fHdpbmRvdykuZGV2aWNlUGl4ZWxSYXRpb3x8MX1mdW5jdGlvbiBySihlLG4pe2xldCB0PXJHKGUpO3JldHVybiBNYXRoLnJvdW5kKG4qdCkvdH1mdW5jdGlvbiByMChlKXtsZXQgbj1DLnVzZVJlZihlKTtyZXR1cm4gcksoKCk9PntuLmN1cnJlbnQ9ZX0pLG59ZnVuY3Rpb24gcjEoZSxuLHQpe2xldCByPVwiaW5saW5lLXN0YXJ0XCI9PT1lfHxcImlubGluZS1lbmRcIj09PWU7cmV0dXJuKHt0b3A6XCJ0b3BcIixyaWdodDpyP3Q/XCJpbmxpbmUtc3RhcnRcIjpcImlubGluZS1lbmRcIjpcInJpZ2h0XCIsYm90dG9tOlwiYm90dG9tXCIsbGVmdDpyP3Q/XCJpbmxpbmUtZW5kXCI6XCJpbmxpbmUtc3RhcnRcIjpcImxlZnRcIn0pW25dfWZ1bmN0aW9uIHIyKGUsbix0KXtsZXR7cmVjdHM6cixwbGFjZW1lbnQ6b309ZTtyZXR1cm57c2lkZTpyMShuLG5rKG8pLHQpLGFsaWduOm5BKG8pfHxcImNlbnRlclwiLGFuY2hvcjp7d2lkdGg6ci5yZWZlcmVuY2Uud2lkdGgsaGVpZ2h0OnIucmVmZXJlbmNlLmhlaWdodH0scG9zaXRpb25lcjp7d2lkdGg6ci5mbG9hdGluZy53aWR0aCxoZWlnaHQ6ci5mbG9hdGluZy5oZWlnaHR9fX1mdW5jdGlvbiByNChlKXt2YXIgbix0LHIsbyxhLGksbCxzLGMsdSxkLGYscCxoLGcsbSx2O2xldHthbmNob3I6Yixwb3NpdGlvbk1ldGhvZDp5PVwiYWJzb2x1dGVcIixzaWRlOng9XCJib3R0b21cIixzaWRlT2Zmc2V0Onc9MCxhbGlnbjpqPVwiY2VudGVyXCIsYWxpZ25PZmZzZXQ6az0wLGNvbGxpc2lvbkJvdW5kYXJ5OkEsY29sbGlzaW9uUGFkZGluZzpPPTUsc3RpY2t5OlM9ITEsYXJyb3dQYWRkaW5nOl89NSx0cmFja0FuY2hvcjpQPSEwLGtlZXBNb3VudGVkOno9ITEsZmxvYXRpbmdSb290Q29udGV4dDpMLG1vdW50ZWQ6Uixjb2xsaXNpb25Bdm9pZGFuY2U6TixzaGlmdENyb3NzQXhpczpEPSExLG5vZGVJZDpCLGFkYXB0aXZlT3JpZ2luOk19PWUsST1OLnNpZGV8fFwiZmxpcFwiLEg9Ti5hbGlnbnx8XCJmbGlwXCIsVT1OLmZhbGxiYWNrQXhpc1NpZGV8fFwiZW5kXCIsVj1cImZ1bmN0aW9uXCI9PXR5cGVvZiBiP2I6dm9pZCAwLHE9VChWKSwkPVY/cTpiLFo9ZUEoYiksWD1cInJ0bFwiPT09bjYoKSxLPXt0b3A6XCJ0b3BcIixyaWdodDpcInJpZ2h0XCIsYm90dG9tOlwiYm90dG9tXCIsbGVmdDpcImxlZnRcIixcImlubGluZS1lbmRcIjpYP1wibGVmdFwiOlwicmlnaHRcIixcImlubGluZS1zdGFydFwiOlg/XCJyaWdodFwiOlwibGVmdFwifVt4XSxRPVwiY2VudGVyXCI9PT1qP0s6YCR7S30tJHtqfWAsRz17Ym91bmRhcnk6XCJjbGlwcGluZy1hbmNlc3RvcnNcIj09PUE/XCJjbGlwcGluZ0FuY2VzdG9yc1wiOkEscGFkZGluZzpPfSxKPUMudXNlUmVmKG51bGwpLGVuPWVBKHcpLGV0PWVBKGspLGVyPVwiZnVuY3Rpb25cIiE9dHlwZW9mIHc/dzowLGVvPVsobj1lPT57bGV0IG49cjIoZSx4LFgpLHQ9XCJmdW5jdGlvblwiPT10eXBlb2YgZW4uY3VycmVudD9lbi5jdXJyZW50KG4pOmVuLmN1cnJlbnQscj1cImZ1bmN0aW9uXCI9PXR5cGVvZiBldC5jdXJyZW50P2V0LmN1cnJlbnQobik6ZXQuY3VycmVudDtyZXR1cm57bWFpbkF4aXM6dCxjcm9zc0F4aXM6cixhbGlnbm1lbnRBeGlzOnJ9fSx0PVtlcixcImZ1bmN0aW9uXCIhPXR5cGVvZiBrP2s6MCxYLHhdLHsuLi4odm9pZCAwPT09KHI9bikmJihyPTApLHtuYW1lOlwib2Zmc2V0XCIsb3B0aW9uczpyLGFzeW5jIGZuKGUpe3ZhciBuLHQ7bGV0e3g6byx5OmEscGxhY2VtZW50OmksbWlkZGxld2FyZURhdGE6bH09ZSxzPWF3YWl0IHJ6KGUscik7cmV0dXJuIGk9PT0obnVsbD09KG49bC5vZmZzZXQpP3ZvaWQgMDpuLnBsYWNlbWVudCkmJm51bGwhPSh0PWwuYXJyb3cpJiZ0LmFsaWdubWVudE9mZnNldD97fTp7eDpvK3MueCx5OmErcy55LGRhdGE6ey4uLnMscGxhY2VtZW50Oml9fX19KSxvcHRpb25zOltuLHRdfSldLGVhPVwibm9uZVwiPT09SCYmXCJzaGlmdFwiIT09SSxlaT0hZWEmJihTfHxEfHxcInNoaWZ0XCI9PT1JKSxlbD1cIm5vbmVcIj09PUk/bnVsbDp7Li4ue25hbWU6XCJmbGlwXCIsb3B0aW9uczppPW89ey4uLkcsbWFpbkF4aXM6IUQmJlwiZmxpcFwiPT09SSxjcm9zc0F4aXM6XCJmbGlwXCI9PT1IJiZcImFsaWdubWVudFwiLGZhbGxiYWNrQXhpc1NpZGVEaXJlY3Rpb246VX0sYXN5bmMgZm4oZSl7dmFyIG4sdCxyLG8sYTtsZXR7cGxhY2VtZW50OmwsbWlkZGxld2FyZURhdGE6cyxyZWN0czpjLGluaXRpYWxQbGFjZW1lbnQ6dSxwbGF0Zm9ybTpkLGVsZW1lbnRzOmZ9PWUse21haW5BeGlzOnA9ITAsY3Jvc3NBeGlzOmg9ITAsZmFsbGJhY2tQbGFjZW1lbnRzOmcsZmFsbGJhY2tTdHJhdGVneTptPVwiYmVzdEZpdFwiLGZhbGxiYWNrQXhpc1NpZGVEaXJlY3Rpb246dj1cIm5vbmVcIixmbGlwQWxpZ25tZW50OmI9ITAsLi4ueX09bmooaSxlKTtpZihudWxsIT0obj1zLmFycm93KSYmbi5hbGlnbm1lbnRPZmZzZXQpcmV0dXJue307bGV0IHg9bmsobCksdz1uRSh1KSxqPW5rKHUpPT09dSxrPWF3YWl0IChudWxsPT1kLmlzUlRMP3ZvaWQgMDpkLmlzUlRMKGYuZmxvYXRpbmcpKSxBPWd8fChqfHwhYj9bblIodSldOmZ1bmN0aW9uKGUpe2xldCBuPW5SKGUpO3JldHVybltuXyhlKSxuLG5fKG4pXX0odSkpLE89XCJub25lXCIhPT12OyFnJiZPJiZBLnB1c2goLi4uZnVuY3Rpb24oZSxuLHQscil7bGV0IG89bkEoZSksYT1mdW5jdGlvbihlLG4sdCl7c3dpdGNoKGUpe2Nhc2VcInRvcFwiOmNhc2VcImJvdHRvbVwiOmlmKHQpcmV0dXJuIG4/bno6blA7cmV0dXJuIG4/blA6bno7Y2FzZVwibGVmdFwiOmNhc2VcInJpZ2h0XCI6cmV0dXJuIG4/bkw6blQ7ZGVmYXVsdDpyZXR1cm5bXX19KG5rKGUpLFwic3RhcnRcIj09PXQscik7cmV0dXJuIG8mJihhPWEubWFwKGU9PmUrXCItXCIrbyksbiYmKGE9YS5jb25jYXQoYS5tYXAobl8pKSkpLGF9KHUsYix2LGspKTtsZXQgQz1bdSwuLi5BXSxTPWF3YWl0IHJTKGUseSksRT1bXSxfPShudWxsPT0odD1zLmZsaXApP3ZvaWQgMDp0Lm92ZXJmbG93cyl8fFtdO2lmKHAmJkUucHVzaChTW3hdKSxoKXtsZXQgZT1mdW5jdGlvbihlLG4sdCl7dm9pZCAwPT09dCYmKHQ9ITEpO2xldCByPW5BKGUpLG89bk8obkUoZSkpLGE9bkMobyksaT1cInhcIj09PW8/cj09PSh0P1wiZW5kXCI6XCJzdGFydFwiKT9cInJpZ2h0XCI6XCJsZWZ0XCI6XCJzdGFydFwiPT09cj9cImJvdHRvbVwiOlwidG9wXCI7cmV0dXJuIG4ucmVmZXJlbmNlW2FdPm4uZmxvYXRpbmdbYV0mJihpPW5SKGkpKSxbaSxuUihpKV19KGwsYyxrKTtFLnB1c2goU1tlWzBdXSxTW2VbMV1dKX1pZihfPVsuLi5fLHtwbGFjZW1lbnQ6bCxvdmVyZmxvd3M6RX1dLCFFLmV2ZXJ5KGU9PmU8PTApKXtsZXQgZT0oKG51bGw9PShyPXMuZmxpcCk/dm9pZCAwOnIuaW5kZXgpfHwwKSsxLG49Q1tlXTtpZihuJiYoXCJhbGlnbm1lbnRcIiE9PWh8fHc9PT1uRShuKXx8Xy5ldmVyeShlPT5lLm92ZXJmbG93c1swXT4wJiZuRShlLnBsYWNlbWVudCk9PT13KSkpcmV0dXJue2RhdGE6e2luZGV4OmUsb3ZlcmZsb3dzOl99LHJlc2V0OntwbGFjZW1lbnQ6bn19O2xldCB0PW51bGw9PShvPV8uZmlsdGVyKGU9PmUub3ZlcmZsb3dzWzBdPD0wKS5zb3J0KChlLG4pPT5lLm92ZXJmbG93c1sxXS1uLm92ZXJmbG93c1sxXSlbMF0pP3ZvaWQgMDpvLnBsYWNlbWVudDtpZighdClzd2l0Y2gobSl7Y2FzZVwiYmVzdEZpdFwiOntsZXQgZT1udWxsPT0oYT1fLmZpbHRlcihlPT57aWYoTyl7bGV0IG49bkUoZS5wbGFjZW1lbnQpO3JldHVybiBuPT09d3x8XCJ5XCI9PT1ufXJldHVybiEwfSkubWFwKGU9PltlLnBsYWNlbWVudCxlLm92ZXJmbG93cy5maWx0ZXIoZT0+ZT4wKS5yZWR1Y2UoKGUsbik9PmUrbiwwKV0pLnNvcnQoKGUsbik9PmVbMV0tblsxXSlbMF0pP3ZvaWQgMDphWzBdO2UmJih0PWUpO2JyZWFrfWNhc2VcImluaXRpYWxQbGFjZW1lbnRcIjp0PXV9aWYobCE9PXQpcmV0dXJue3Jlc2V0OntwbGFjZW1lbnQ6dH19fXJldHVybnt9fX0sb3B0aW9uczpbbyxhXX0sZXM9ZWE/bnVsbDoobD1lPT57dmFyIG4sdCxyO2xldCBvPWVRKGUuZWxlbWVudHMuZmxvYXRpbmcpLmRvY3VtZW50RWxlbWVudDtyZXR1cm57Li4uRyxyb290Qm91bmRhcnk6RD97eDowLHk6MCx3aWR0aDpvLmNsaWVudFdpZHRoLGhlaWdodDpvLmNsaWVudEhlaWdodH06dm9pZCAwLG1haW5BeGlzOlwibm9uZVwiIT09SCxjcm9zc0F4aXM6ZWksbGltaXRlcjpTfHxEP3ZvaWQgMDp7Li4uKHZvaWQgMD09PShyPW49KCk9PntpZighSi5jdXJyZW50KXJldHVybnt9O2xldHtoZWlnaHQ6ZX09Si5jdXJyZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO3JldHVybntvZmZzZXQ6ZS8yKyhcIm51bWJlclwiPT10eXBlb2YgTz9POjApfX0pJiYocj17fSkse29wdGlvbnM6cixmbihlKXtsZXR7eDpuLHk6dCxwbGFjZW1lbnQ6byxyZWN0czphLG1pZGRsZXdhcmVEYXRhOml9PWUse29mZnNldDpsPTAsbWFpbkF4aXM6cz0hMCxjcm9zc0F4aXM6Yz0hMH09bmoocixlKSx1PXt4Om4seTp0fSxkPW5FKG8pLGY9bk8oZCkscD11W2ZdLGg9dVtkXSxnPW5qKGwsZSksbT1cIm51bWJlclwiPT10eXBlb2YgZz97bWFpbkF4aXM6Zyxjcm9zc0F4aXM6MH06e21haW5BeGlzOjAsY3Jvc3NBeGlzOjAsLi4uZ307aWYocyl7bGV0IGU9XCJ5XCI9PT1mP1wiaGVpZ2h0XCI6XCJ3aWR0aFwiLG49YS5yZWZlcmVuY2VbZl0tYS5mbG9hdGluZ1tlXSttLm1haW5BeGlzLHQ9YS5yZWZlcmVuY2VbZl0rYS5yZWZlcmVuY2VbZV0tbS5tYWluQXhpcztwPG4/cD1uOnA+dCYmKHA9dCl9aWYoYyl7dmFyIHYsYjtsZXQgZT1cInlcIj09PWY/XCJ3aWR0aFwiOlwiaGVpZ2h0XCIsbj1yUC5oYXMobmsobykpLHQ9YS5yZWZlcmVuY2VbZF0tYS5mbG9hdGluZ1tlXSsobiYmKG51bGw9PSh2PWkub2Zmc2V0KT92b2lkIDA6dltkXSl8fDApKyhuPzA6bS5jcm9zc0F4aXMpLHI9YS5yZWZlcmVuY2VbZF0rYS5yZWZlcmVuY2VbZV0rKG4/MDoobnVsbD09KGI9aS5vZmZzZXQpP3ZvaWQgMDpiW2RdKXx8MCktKG4/bS5jcm9zc0F4aXM6MCk7aDx0P2g9dDpoPnImJihoPXIpfXJldHVybntbZl06cCxbZF06aH19fSksb3B0aW9uczpbbix0XX19fSxzPVtHLFMsRCxPLEhdLHsuLi4odm9pZCAwPT09KGM9bCkmJihjPXt9KSx7bmFtZTpcInNoaWZ0XCIsb3B0aW9uczpjLGFzeW5jIGZuKGUpe2xldHt4Om4seTp0LHBsYWNlbWVudDpyfT1lLHttYWluQXhpczpvPSEwLGNyb3NzQXhpczphPSExLGxpbWl0ZXI6aT17Zm46ZT0+e2xldHt4Om4seTp0fT1lO3JldHVybnt4Om4seTp0fX19LC4uLmx9PW5qKGMsZSkscz17eDpuLHk6dH0sdT1hd2FpdCByUyhlLGwpLGQ9bkUobmsocikpLGY9bk8oZCkscD1zW2ZdLGg9c1tkXTtpZihvKXtsZXQgZT1cInlcIj09PWY/XCJ0b3BcIjpcImxlZnRcIixuPVwieVwiPT09Zj9cImJvdHRvbVwiOlwicmlnaHRcIix0PXArdVtlXSxyPXAtdVtuXTtwPW5tKHQsbmcocCxyKSl9aWYoYSl7bGV0IGU9XCJ5XCI9PT1kP1widG9wXCI6XCJsZWZ0XCIsbj1cInlcIj09PWQ/XCJib3R0b21cIjpcInJpZ2h0XCIsdD1oK3VbZV0scj1oLXVbbl07aD1ubSh0LG5nKGgscikpfWxldCBnPWkuZm4oey4uLmUsW2ZdOnAsW2RdOmh9KTtyZXR1cm57Li4uZyxkYXRhOnt4OmcueC1uLHk6Zy55LXQsZW5hYmxlZDp7W2ZdOm8sW2RdOmF9fX19fSksb3B0aW9uczpbbCxzXX0pO1wic2hpZnRcIj09PUl8fFwic2hpZnRcIj09PUh8fFwiY2VudGVyXCI9PT1qP2VvLnB1c2goZXMsZWwpOmVvLnB1c2goZWwsZXMpLGVvLnB1c2goey4uLntuYW1lOlwic2l6ZVwiLG9wdGlvbnM6Zj11PXsuLi5HLGFwcGx5KHtlbGVtZW50czp7ZmxvYXRpbmc6ZX0scmVjdHM6e3JlZmVyZW5jZTpufSxhdmFpbGFibGVXaWR0aDp0LGF2YWlsYWJsZUhlaWdodDpyfSl7T2JqZWN0LmVudHJpZXMoe1wiLS1hdmFpbGFibGUtd2lkdGhcIjpgJHt0fXB4YCxcIi0tYXZhaWxhYmxlLWhlaWdodFwiOmAke3J9cHhgLFwiLS1hbmNob3Itd2lkdGhcIjpgJHtuLndpZHRofXB4YCxcIi0tYW5jaG9yLWhlaWdodFwiOmAke24uaGVpZ2h0fXB4YH0pLmZvckVhY2goKFtuLHRdKT0+e2Uuc3R5bGUuc2V0UHJvcGVydHkobix0KX0pfX0sYXN5bmMgZm4oZSl7dmFyIG4sdDtsZXQgcixvLHtwbGFjZW1lbnQ6YSxyZWN0czppLHBsYXRmb3JtOmwsZWxlbWVudHM6c309ZSx7YXBwbHk6Yz0oKT0+e30sLi4udX09bmooZixlKSxkPWF3YWl0IHJTKGUsdSkscD1uayhhKSxoPW5BKGEpLGc9XCJ5XCI9PT1uRShhKSx7d2lkdGg6bSxoZWlnaHQ6dn09aS5mbG9hdGluZztcInRvcFwiPT09cHx8XCJib3R0b21cIj09PXA/KHI9cCxvPWg9PT0oYXdhaXQgKG51bGw9PWwuaXNSVEw/dm9pZCAwOmwuaXNSVEwocy5mbG9hdGluZykpP1wic3RhcnRcIjpcImVuZFwiKT9cImxlZnRcIjpcInJpZ2h0XCIpOihvPXAscj1cImVuZFwiPT09aD9cInRvcFwiOlwiYm90dG9tXCIpO2xldCBiPXYtZC50b3AtZC5ib3R0b20seT1tLWQubGVmdC1kLnJpZ2h0LHg9bmcodi1kW3JdLGIpLHc9bmcobS1kW29dLHkpLGo9IWUubWlkZGxld2FyZURhdGEuc2hpZnQsaz14LEE9dztpZihudWxsIT0obj1lLm1pZGRsZXdhcmVEYXRhLnNoaWZ0KSYmbi5lbmFibGVkLngmJihBPXkpLG51bGwhPSh0PWUubWlkZGxld2FyZURhdGEuc2hpZnQpJiZ0LmVuYWJsZWQueSYmKGs9YiksaiYmIWgpe2xldCBlPW5tKGQubGVmdCwwKSxuPW5tKGQucmlnaHQsMCksdD1ubShkLnRvcCwwKSxyPW5tKGQuYm90dG9tLDApO2c/QT1tLTIqKDAhPT1lfHwwIT09bj9lK246bm0oZC5sZWZ0LGQucmlnaHQpKTprPXYtMiooMCE9PXR8fDAhPT1yP3QrcjpubShkLnRvcCxkLmJvdHRvbSkpfWF3YWl0IGMoey4uLmUsYXZhaWxhYmxlV2lkdGg6QSxhdmFpbGFibGVIZWlnaHQ6a30pO2xldCBPPWF3YWl0IGwuZ2V0RGltZW5zaW9ucyhzLmZsb2F0aW5nKTtyZXR1cm4gbSE9PU8ud2lkdGh8fHYhPT1PLmhlaWdodD97cmVzZXQ6e3JlY3RzOiEwfX06e319fSxvcHRpb25zOlt1LGRdfSwocD0oKT0+KHtlbGVtZW50OkouY3VycmVudHx8ZG9jdW1lbnQuY3JlYXRlRWxlbWVudChcImRpdlwiKSxwYWRkaW5nOl99KSxoPVtfXSx7bmFtZTpcImFycm93XCIsb3B0aW9uczpwLGZuKGUpe2xldHtlbGVtZW50Om4scGFkZGluZzp0fT1wKGUpO3JldHVybiBuJiYoe30pLmhhc093blByb3BlcnR5LmNhbGwobixcImN1cnJlbnRcIik/bnVsbCE9bi5jdXJyZW50P3JYKHtlbGVtZW50Om4uY3VycmVudCxwYWRkaW5nOnR9KS5mbihlKTp7fTpuP3JYKHtlbGVtZW50Om4scGFkZGluZzp0fSkuZm4oZSk6e319LG9wdGlvbnM6W3AsaF19KSx7Li4uKHZvaWQgMD09PSh2PWcpJiYodj17fSkse25hbWU6XCJoaWRlXCIsb3B0aW9uczp2LGFzeW5jIGZuKGUpe2xldHtyZWN0czpufT1lLHtzdHJhdGVneTp0PVwicmVmZXJlbmNlSGlkZGVuXCIsLi4ucn09bmoodixlKTtzd2l0Y2godCl7Y2FzZVwicmVmZXJlbmNlSGlkZGVuXCI6e2xldCB0PXJFKGF3YWl0IHJTKGUsey4uLnIsZWxlbWVudENvbnRleHQ6XCJyZWZlcmVuY2VcIn0pLG4ucmVmZXJlbmNlKTtyZXR1cm57ZGF0YTp7cmVmZXJlbmNlSGlkZGVuT2Zmc2V0czp0LHJlZmVyZW5jZUhpZGRlbjpyXyh0KX19fWNhc2VcImVzY2FwZWRcIjp7bGV0IHQ9ckUoYXdhaXQgclMoZSx7Li4ucixhbHRCb3VuZGFyeTohMH0pLG4uZmxvYXRpbmcpO3JldHVybntkYXRhOntlc2NhcGVkT2Zmc2V0czp0LGVzY2FwZWQ6cl8odCl9fX1kZWZhdWx0OnJldHVybnt9fX19KSxvcHRpb25zOltnLG1dfSx7bmFtZTpcInRyYW5zZm9ybU9yaWdpblwiLGZuKGUpe2xldHtlbGVtZW50czpuLG1pZGRsZXdhcmVEYXRhOnQscGxhY2VtZW50OnIscmVjdHM6byx5OmF9PWUsaT1uayhyKSxsPW5FKGkpLHM9Si5jdXJyZW50LGM9dC5hcnJvdz8ueHx8MCx1PXQuYXJyb3c/Lnl8fDAsZD1zPy5jbGllbnRXaWR0aHx8MCxmPXM/LmNsaWVudEhlaWdodHx8MCxwPWMrZC8yLGg9dStmLzIsZz1NYXRoLmFicyh0LnNoaWZ0Py55fHwwKSxtPW8ucmVmZXJlbmNlLmhlaWdodC8yLHY9Zz4oXCJmdW5jdGlvblwiPT10eXBlb2Ygdz93KHIyKGUseCxYKSk6dyksYj17dG9wOmAke3B9cHggY2FsYygxMDAlICsgJHt3fXB4KWAsYm90dG9tOmAke3B9cHggJHstd31weGAsbGVmdDpgY2FsYygxMDAlICsgJHt3fXB4KSAke2h9cHhgLHJpZ2h0OmAkey13fXB4ICR7aH1weGB9W2ldLHk9YCR7cH1weCAke28ucmVmZXJlbmNlLnkrbS1hfXB4YDtyZXR1cm4gbi5mbG9hdGluZy5zdHlsZS5zZXRQcm9wZXJ0eShcIi0tdHJhbnNmb3JtLW9yaWdpblwiLGVpJiZcInlcIj09PWwmJnY/eTpiKSx7fX19LE0pO2xldCBlYz1MOyFSJiZMJiYoZWM9ey4uLkwsZWxlbWVudHM6e3JlZmVyZW5jZTpudWxsLGZsb2F0aW5nOm51bGwsZG9tUmVmZXJlbmNlOm51bGx9fSk7bGV0IGV1PUMudXNlTWVtbygoKT0+KHtlbGVtZW50UmVzaXplOlAmJlwidW5kZWZpbmVkXCIhPXR5cGVvZiBSZXNpemVPYnNlcnZlcixsYXlvdXRTaGlmdDpQJiZcInVuZGVmaW5lZFwiIT10eXBlb2YgSW50ZXJzZWN0aW9uT2JzZXJ2ZXJ9KSxbUF0pLHtyZWZzOmVkLGVsZW1lbnRzOmVmLHg6ZXAseTplaCxtaWRkbGV3YXJlRGF0YTplZyx1cGRhdGU6ZW0scGxhY2VtZW50OmV2LGNvbnRleHQ6ZWIsaXNQb3NpdGlvbmVkOmV5LGZsb2F0aW5nU3R5bGVzOmV4fT1mdW5jdGlvbihlPXt9KXtsZXR7bm9kZUlkOm59PWUsdD1ZKHsuLi5lLGVsZW1lbnRzOntyZWZlcmVuY2U6bnVsbCxmbG9hdGluZzpudWxsLC4uLmUuZWxlbWVudHN9fSkscj1lLnJvb3RDb250ZXh0fHx0LG89ci5lbGVtZW50cyxbYSxpXT1DLnVzZVN0YXRlKG51bGwpLFtsLHNdPUMudXNlU3RhdGUobnVsbCksYz1vPy5kb21SZWZlcmVuY2V8fGEsdT1DLnVzZVJlZihudWxsKSxkPVcoKTtGKCgpPT57YyYmKHUuY3VycmVudD1jKX0sW2NdKTtsZXQgZj1mdW5jdGlvbihlKXt2b2lkIDA9PT1lJiYoZT17fSk7bGV0e3BsYWNlbWVudDpuPVwiYm90dG9tXCIsc3RyYXRlZ3k6dD1cImFic29sdXRlXCIsbWlkZGxld2FyZTpyPVtdLHBsYXRmb3JtOm8sZWxlbWVudHM6e3JlZmVyZW5jZTphLGZsb2F0aW5nOml9PXt9LHRyYW5zZm9ybTpsPSEwLHdoaWxlRWxlbWVudHNNb3VudGVkOnMsb3BlbjpjfT1lLFt1LGRdPUMudXNlU3RhdGUoe3g6MCx5OjAsc3RyYXRlZ3k6dCxwbGFjZW1lbnQ6bixtaWRkbGV3YXJlRGF0YTp7fSxpc1Bvc2l0aW9uZWQ6ITF9KSxbZixwXT1DLnVzZVN0YXRlKHIpO3JRKGYscil8fHAocik7bGV0W2gsZ109Qy51c2VTdGF0ZShudWxsKSxbbSx2XT1DLnVzZVN0YXRlKG51bGwpLGI9Qy51c2VDYWxsYmFjayhlPT57ZSE9PWouY3VycmVudCYmKGouY3VycmVudD1lLGcoZSkpfSxbXSkseT1DLnVzZUNhbGxiYWNrKGU9PntlIT09ay5jdXJyZW50JiYoay5jdXJyZW50PWUsdihlKSl9LFtdKSx4PWF8fGgsdz1pfHxtLGo9Qy51c2VSZWYobnVsbCksaz1DLnVzZVJlZihudWxsKSxBPUMudXNlUmVmKHUpLE89bnVsbCE9cyxTPXIwKHMpLF89cjAobyksUD1yMChjKSx6PUMudXNlQ2FsbGJhY2soKCk9PntpZighai5jdXJyZW50fHwhay5jdXJyZW50KXJldHVybjtsZXQgZT17cGxhY2VtZW50Om4sc3RyYXRlZ3k6dCxtaWRkbGV3YXJlOmZ9O18uY3VycmVudCYmKGUucGxhdGZvcm09Xy5jdXJyZW50KSwoKGUsbix0KT0+e2xldCByPW5ldyBNYXAsbz17cGxhdGZvcm06ciQsLi4udH0sYT17Li4uby5wbGF0Zm9ybSxfYzpyfTtyZXR1cm4gckMoZSxuLHsuLi5vLHBsYXRmb3JtOmF9KX0pKGouY3VycmVudCxrLmN1cnJlbnQsZSkudGhlbihlPT57bGV0IG49ey4uLmUsaXNQb3NpdGlvbmVkOiExIT09UC5jdXJyZW50fTtMLmN1cnJlbnQmJiFyUShBLmN1cnJlbnQsbikmJihBLmN1cnJlbnQ9bixFLmZsdXNoU3luYygoKT0+e2Qobil9KSl9KX0sW2Ysbix0LF8sUF0pO3JLKCgpPT57ITE9PT1jJiZBLmN1cnJlbnQuaXNQb3NpdGlvbmVkJiYoQS5jdXJyZW50LmlzUG9zaXRpb25lZD0hMSxkKGU9Pih7Li4uZSxpc1Bvc2l0aW9uZWQ6ITF9KSkpfSxbY10pO2xldCBMPUMudXNlUmVmKCExKTtySygoKT0+KEwuY3VycmVudD0hMCwoKT0+e0wuY3VycmVudD0hMX0pLFtdKSxySygoKT0+e2lmKHgmJihqLmN1cnJlbnQ9eCksdyYmKGsuY3VycmVudD13KSx4JiZ3KXtpZihTLmN1cnJlbnQpcmV0dXJuIFMuY3VycmVudCh4LHcseik7eigpfX0sW3gsdyx6LFMsT10pO2xldCBUPUMudXNlTWVtbygoKT0+KHtyZWZlcmVuY2U6aixmbG9hdGluZzprLHNldFJlZmVyZW5jZTpiLHNldEZsb2F0aW5nOnl9KSxbYix5XSksUj1DLnVzZU1lbW8oKCk9Pih7cmVmZXJlbmNlOngsZmxvYXRpbmc6d30pLFt4LHddKSxOPUMudXNlTWVtbygoKT0+e2xldCBlPXtwb3NpdGlvbjp0LGxlZnQ6MCx0b3A6MH07aWYoIVIuZmxvYXRpbmcpcmV0dXJuIGU7bGV0IG49ckooUi5mbG9hdGluZyx1LngpLHI9ckooUi5mbG9hdGluZyx1LnkpO3JldHVybiBsP3suLi5lLHRyYW5zZm9ybTpcInRyYW5zbGF0ZShcIituK1wicHgsIFwiK3IrXCJweClcIiwuLi5yRyhSLmZsb2F0aW5nKT49MS41JiZ7d2lsbENoYW5nZTpcInRyYW5zZm9ybVwifX06e3Bvc2l0aW9uOnQsbGVmdDpuLHRvcDpyfX0sW3QsbCxSLmZsb2F0aW5nLHUueCx1LnldKTtyZXR1cm4gQy51c2VNZW1vKCgpPT4oey4uLnUsdXBkYXRlOnoscmVmczpULGVsZW1lbnRzOlIsZmxvYXRpbmdTdHlsZXM6Tn0pLFt1LHosVCxSLE5dKX0oey4uLmUsZWxlbWVudHM6ey4uLm8sLi4ubCYme3JlZmVyZW5jZTpsfX19KSxwPUMudXNlQ2FsbGJhY2soZT0+e2xldCBuPWVlKGUpP3tnZXRCb3VuZGluZ0NsaWVudFJlY3Q6KCk9PmUuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCksZ2V0Q2xpZW50UmVjdHM6KCk9PmUuZ2V0Q2xpZW50UmVjdHMoKSxjb250ZXh0RWxlbWVudDplfTplO3MobiksZi5yZWZzLnNldFJlZmVyZW5jZShuKX0sW2YucmVmc10pLGg9Qy51c2VDYWxsYmFjayhlPT57KGVlKGUpfHxudWxsPT09ZSkmJih1LmN1cnJlbnQ9ZSxpKGUpKSwoZWUoZi5yZWZzLnJlZmVyZW5jZS5jdXJyZW50KXx8bnVsbD09PWYucmVmcy5yZWZlcmVuY2UuY3VycmVudHx8bnVsbCE9PWUmJiFlZShlKSkmJmYucmVmcy5zZXRSZWZlcmVuY2UoZSl9LFtmLnJlZnNdKSxnPUMudXNlTWVtbygoKT0+KHsuLi5mLnJlZnMsc2V0UmVmZXJlbmNlOmgsc2V0UG9zaXRpb25SZWZlcmVuY2U6cCxkb21SZWZlcmVuY2U6dX0pLFtmLnJlZnMsaCxwXSksbT1DLnVzZU1lbW8oKCk9Pih7Li4uZi5lbGVtZW50cyxkb21SZWZlcmVuY2U6Y30pLFtmLmVsZW1lbnRzLGNdKSx2PUMudXNlTWVtbygoKT0+KHsuLi5mLC4uLnIscmVmczpnLGVsZW1lbnRzOm0sbm9kZUlkOm59KSxbZixnLG0sbixyXSk7cmV0dXJuIEYoKCk9PntyLmRhdGFSZWYuY3VycmVudC5mbG9hdGluZ0NvbnRleHQ9djtsZXQgZT1kPy5ub2Rlc1JlZi5jdXJyZW50LmZpbmQoZT0+ZS5pZD09PW4pO2UmJihlLmNvbnRleHQ9dil9KSxDLnVzZU1lbW8oKCk9Pih7Li4uZixjb250ZXh0OnYscmVmczpnLGVsZW1lbnRzOm19KSxbZixnLG0sdl0pfSh7cm9vdENvbnRleHQ6ZWMscGxhY2VtZW50OlEsbWlkZGxld2FyZTplbyxzdHJhdGVneTp5LHdoaWxlRWxlbWVudHNNb3VudGVkOno/dm9pZCAwOiguLi5lKT0+clkoLi4uZSxldSksbm9kZUlkOkJ9KSx7c2lkZVg6ZXcsc2lkZVk6ZWp9PWVnLmFkYXB0aXZlT3JpZ2lufHx7fSxlaz1DLnVzZU1lbW8oKCk9Pk0/e3Bvc2l0aW9uOnksW2V3XTpgJHtlcH1weGAsW2VqXTpgJHtlaH1weGB9OmV4LFtNLGV3LGVqLHksZXAsZWgsZXhdKSxlTz1DLnVzZVJlZihudWxsKTtGKCgpPT57aWYoIVIpcmV0dXJuO2xldCBlPVouY3VycmVudCxuPVwiZnVuY3Rpb25cIj09dHlwZW9mIGU/ZSgpOmUsdD0ocjUobik/bi5jdXJyZW50Om4pfHxudWxsO3QhPT1lTy5jdXJyZW50JiYoZWQuc2V0UG9zaXRpb25SZWZlcmVuY2UodCksZU8uY3VycmVudD10KX0sW1IsZWQsJCxaXSksQy51c2VFZmZlY3QoKCk9PntpZighUilyZXR1cm47bGV0IGU9Wi5jdXJyZW50O1wiZnVuY3Rpb25cIiE9dHlwZW9mIGUmJnI1KGUpJiZlLmN1cnJlbnQhPT1lTy5jdXJyZW50JiYoZWQuc2V0UG9zaXRpb25SZWZlcmVuY2UoZS5jdXJyZW50KSxlTy5jdXJyZW50PWUuY3VycmVudCl9LFtSLGVkLCQsWl0pLEMudXNlRWZmZWN0KCgpPT57aWYoeiYmUiYmZWYuZG9tUmVmZXJlbmNlJiZlZi5mbG9hdGluZylyZXR1cm4gclkoZWYuZG9tUmVmZXJlbmNlLGVmLmZsb2F0aW5nLGVtLGV1KX0sW3osUixlZixlbSxldV0pO2xldCBlQz1yMSh4LG5rKGV2KSxYKSxlUz1uQShldil8fFwiY2VudGVyXCIsZUU9ISFlZy5oaWRlPy5yZWZlcmVuY2VIaWRkZW4sZV89Qy51c2VNZW1vKCgpPT4oe3Bvc2l0aW9uOlwiYWJzb2x1dGVcIix0b3A6ZWcuYXJyb3c/LnksbGVmdDplZy5hcnJvdz8ueH0pLFtlZy5hcnJvd10pLGVQPWVnLmFycm93Py5jZW50ZXJPZmZzZXQhPT0wO3JldHVybiBDLnVzZU1lbW8oKCk9Pih7cG9zaXRpb25lclN0eWxlczplayxhcnJvd1N0eWxlczplXyxhcnJvd1JlZjpKLGFycm93VW5jZW50ZXJlZDplUCxzaWRlOmVDLGFsaWduOmVTLGFuY2hvckhpZGRlbjplRSxyZWZzOmVkLGNvbnRleHQ6ZWIsaXNQb3NpdGlvbmVkOmV5LHVwZGF0ZTplbX0pLFtlayxlXyxKLGVQLGVDLGVTLGVFLGVkLGViLGV5LGVtXSl9ZnVuY3Rpb24gcjUoZSl7cmV0dXJuIG51bGwhPWUmJlwiY3VycmVudFwiaW4gZX1mdW5jdGlvbiByMyhlKXtsZXR7Y2hpbGRyZW46bixlbGVtZW50c1JlZjp0LGxhYmVsc1JlZjpyLG9uTWFwQ2hhbmdlOm99PWUsYT1DLnVzZVJlZigwKSxpPVAocjkpLmN1cnJlbnQscz1QKHI2KS5jdXJyZW50LFtjLHVdPUMudXNlU3RhdGUoMCksZD1DLnVzZVJlZihjKSxmPVQoKGUsbik9PntzLnNldChlLG4/P251bGwpLGQuY3VycmVudCs9MSx1KGQuY3VycmVudCl9KSxwPVQoZT0+e3MuZGVsZXRlKGUpLGQuY3VycmVudCs9MSx1KGQuY3VycmVudCl9KSxoPUMudXNlTWVtbygoKT0+e2xldCBlPW5ldyBNYXA7cmV0dXJuIEFycmF5LmZyb20ocy5rZXlzKCkpLnNvcnQocjgpLmZvckVhY2goKG4sdCk9PntsZXQgcj1zLmdldChuKT8/e307ZS5zZXQobix7Li4ucixpbmRleDp0fSl9KSxlfSxbcyxjXSk7RigoKT0+e2QuY3VycmVudD09PWMmJih0LmN1cnJlbnQubGVuZ3RoIT09aC5zaXplJiYodC5jdXJyZW50Lmxlbmd0aD1oLnNpemUpLHImJnIuY3VycmVudC5sZW5ndGghPT1oLnNpemUmJihyLmN1cnJlbnQubGVuZ3RoPWguc2l6ZSkpLG8/LihoKX0sW28saCx0LHIsYyxkXSk7bGV0IGc9VChlPT4oaS5hZGQoZSksKCk9PntpLmRlbGV0ZShlKX0pKTtGKCgpPT57aS5mb3JFYWNoKGU9PmUoaCkpfSxbaSxoXSk7bGV0IG09Qy51c2VNZW1vKCgpPT4oe3JlZ2lzdGVyOmYsdW5yZWdpc3RlcjpwLHN1YnNjcmliZU1hcENoYW5nZTpnLGVsZW1lbnRzUmVmOnQsbGFiZWxzUmVmOnIsbmV4dEluZGV4UmVmOmF9KSxbZixwLGcsdCxyLGFdKTtyZXR1cm4oMCxsLmpzeCkodEMuUHJvdmlkZXIse3ZhbHVlOm0sY2hpbGRyZW46bn0pfWZ1bmN0aW9uIHI2KCl7cmV0dXJuIG5ldyBNYXB9ZnVuY3Rpb24gcjkoKXtyZXR1cm4gbmV3IFNldH1mdW5jdGlvbiByOChlLG4pe2xldCB0PWUuY29tcGFyZURvY3VtZW50UG9zaXRpb24obik7cmV0dXJuIHQmTm9kZS5ET0NVTUVOVF9QT1NJVElPTl9GT0xMT1dJTkd8fHQmTm9kZS5ET0NVTUVOVF9QT1NJVElPTl9DT05UQUlORURfQlk/LTE6dCZOb2RlLkRPQ1VNRU5UX1BPU0lUSU9OX1BSRUNFRElOR3x8dCZOb2RlLkRPQ1VNRU5UX1BPU0lUSU9OX0NPTlRBSU5TPzE6MH1sZXQgcjc9Qy5mb3J3YXJkUmVmKGZ1bmN0aW9uKGUsbil7bGV0IHQse2N1dG91dDpyLC4uLm99PWU7aWYocil7bGV0IGU9cj8uZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7dD1gcG9seWdvbihcbiAgICAgIDAlIDAlLFxuICAgICAgMTAwJSAwJSxcbiAgICAgIDEwMCUgMTAwJSxcbiAgICAgIDAlIDEwMCUsXG4gICAgICAwJSAwJSxcbiAgICAgICR7ZS5sZWZ0fXB4ICR7ZS50b3B9cHgsXG4gICAgICAke2UubGVmdH1weCAke2UuYm90dG9tfXB4LFxuICAgICAgJHtlLnJpZ2h0fXB4ICR7ZS5ib3R0b219cHgsXG4gICAgICAke2UucmlnaHR9cHggJHtlLnRvcH1weCxcbiAgICAgICR7ZS5sZWZ0fXB4ICR7ZS50b3B9cHhcbiAgICApYH1yZXR1cm4oMCxsLmpzeCkoXCJkaXZcIix7cmVmOm4scm9sZTpcInByZXNlbnRhdGlvblwiLFwiZGF0YS1iYXNlLXVpLWluZXJ0XCI6XCJcIiwuLi5vLHN0eWxlOntwb3NpdGlvbjpcImZpeGVkXCIsaW5zZXQ6MCx1c2VyU2VsZWN0Olwibm9uZVwiLFdlYmtpdFVzZXJTZWxlY3Q6XCJub25lXCIsY2xpcFBhdGg6dH19KX0pLG9lPUMuZm9yd2FyZFJlZihmdW5jdGlvbihlLG4pe3ZhciB0O2xldHthbmNob3I6cixwb3NpdGlvbk1ldGhvZDpvPVwiYWJzb2x1dGVcIixjbGFzc05hbWU6YSxyZW5kZXI6aSxzaWRlOnMsYWxpZ246YyxzaWRlT2Zmc2V0OnU9MCxhbGlnbk9mZnNldDpkPTAsY29sbGlzaW9uQm91bmRhcnk6Zj1cImNsaXBwaW5nLWFuY2VzdG9yc1wiLGNvbGxpc2lvblBhZGRpbmc6cD01LGFycm93UGFkZGluZzpoPTUsc3RpY2t5Omc9ITEsdHJhY2tBbmNob3I6bT0hMCxjb2xsaXNpb25Bdm9pZGFuY2U6dj1ubywuLi5ifT1lLHtvcGVuOnksc2V0T3Blbjp4LGZsb2F0aW5nUm9vdENvbnRleHQ6dyxzZXRQb3NpdGlvbmVyRWxlbWVudDpqLGl0ZW1Eb21FbGVtZW50czprLGl0ZW1MYWJlbHM6QSxtb3VudGVkOk8sbW9kYWw6UyxsYXN0T3BlbkNoYW5nZVJlYXNvbjpFLHBhcmVudDpfLHNldEhvdmVyRW5hYmxlZDpQLHRyaWdnZXJFbGVtZW50Onp9PW4wKCksTD1mdW5jdGlvbigpe2xldCBlPUMudXNlQ29udGV4dChyaik7aWYodm9pZCAwPT09ZSl0aHJvdyBFcnJvcihcIkJhc2UgVUk6IDxNZW51LlBvcnRhbD4gaXMgbWlzc2luZy5cIik7cmV0dXJuIGV9KCksVD1mdW5jdGlvbihlKXtsZXQgbj1IKCksdD1XKCkscj1xKCk7cmV0dXJuIEYoKCk9PntpZighbilyZXR1cm47bGV0IGU9e2lkOm4scGFyZW50SWQ6cn07cmV0dXJuIHQ/LmFkZE5vZGUoZSksKCk9Pnt0Py5yZW1vdmVOb2RlKGUpfX0sW3QsbixyXSksbn0oKSxSPXEoKSxOPXRhKCEwKSxEPXIsQj11LE09ZCxJPWM7XCJjb250ZXh0LW1lbnVcIj09PV8udHlwZSYmKEQ9Xy5jb250ZXh0Py5hbmNob3I/P3IsST1lLmFsaWduPz9cInN0YXJ0XCIsTT1lLmFsaWduT2Zmc2V0Pz8yLEI9ZS5zaWRlT2Zmc2V0Pz8tNSk7bGV0IFU9cyxWPUk7XCJtZW51XCI9PT1fLnR5cGU/KFU9VT8/XCJpbmxpbmUtZW5kXCIsVj1WPz9cInN0YXJ0XCIpOlwibWVudWJhclwiPT09Xy50eXBlJiYoVT1VPz9cImJvdHRvbVwiLFY9Vj8/XCJzdGFydFwiKTtsZXQgWj1cImNvbnRleHQtbWVudVwiPT09Xy50eXBlLFk9cjQoe2FuY2hvcjpELGZsb2F0aW5nUm9vdENvbnRleHQ6dyxwb3NpdGlvbk1ldGhvZDpOP1wiZml4ZWRcIjpvLG1vdW50ZWQ6TyxzaWRlOlUsc2lkZU9mZnNldDpCLGFsaWduOlYsYWxpZ25PZmZzZXQ6TSxhcnJvd1BhZGRpbmc6Wj8wOmgsY29sbGlzaW9uQm91bmRhcnk6Zixjb2xsaXNpb25QYWRkaW5nOnAsc3RpY2t5Omcsbm9kZUlkOlQsa2VlcE1vdW50ZWQ6TCx0cmFja0FuY2hvcjptLGNvbGxpc2lvbkF2b2lkYW5jZTp2LHNoaWZ0Q3Jvc3NBeGlzOlp9KSx7ZXZlbnRzOlh9PVcoKSxLPUMudXNlTWVtbygoKT0+e2xldCBlPXt9O3JldHVybiB5fHwoZS5wb2ludGVyRXZlbnRzPVwibm9uZVwiKSx7cm9sZTpcInByZXNlbnRhdGlvblwiLGhpZGRlbjohTyxzdHlsZTp7Li4uWS5wb3NpdGlvbmVyU3R5bGVzLC4uLmV9fX0sW3ksTyxZLnBvc2l0aW9uZXJTdHlsZXNdKTtDLnVzZUVmZmVjdCgoKT0+e2Z1bmN0aW9uIGUoZSl7ZS5vcGVuPyhlLnBhcmVudE5vZGVJZD09PVQmJlAoITEpLGUubm9kZUlkIT09VCYmZS5wYXJlbnROb2RlSWQ9PT1SJiZ4KCExLHZvaWQgMCxcInNpYmxpbmctb3BlblwiKSk6ZS5wYXJlbnROb2RlSWQ9PT1UJiZQKCEwKX1yZXR1cm4gWC5vbihcIm9wZW5jaGFuZ2VcIixlKSwoKT0+e1gub2ZmKFwib3BlbmNoYW5nZVwiLGUpfX0sW1gsVCxSLHgsUF0pLEMudXNlRWZmZWN0KCgpPT57WC5lbWl0KFwib3BlbmNoYW5nZVwiLHtvcGVuOnksbm9kZUlkOlQscGFyZW50Tm9kZUlkOlJ9KX0sW1gseSxULFJdKTtsZXQgUT1DLnVzZU1lbW8oKCk9Pih7b3Blbjp5LHNpZGU6WS5zaWRlLGFsaWduOlkuYWxpZ24sYW5jaG9ySGlkZGVuOlkuYW5jaG9ySGlkZGVuLG5lc3RlZDpcIm1lbnVcIj09PV8udHlwZX0pLFt5LFkuc2lkZSxZLmFsaWduLFkuYW5jaG9ySGlkZGVuLF8udHlwZV0pLEc9Qy51c2VNZW1vKCgpPT4oe3NpZGU6WS5zaWRlLGFsaWduOlkuYWxpZ24sYXJyb3dSZWY6WS5hcnJvd1JlZixhcnJvd1VuY2VudGVyZWQ6WS5hcnJvd1VuY2VudGVyZWQsYXJyb3dTdHlsZXM6WS5hcnJvd1N0eWxlcyxmbG9hdGluZ0NvbnRleHQ6WS5jb250ZXh0fSksW1kuc2lkZSxZLmFsaWduLFkuYXJyb3dSZWYsWS5hcnJvd1VuY2VudGVyZWQsWS5hcnJvd1N0eWxlcyxZLmNvbnRleHRdKSxKPXRqKFwiZGl2XCIsZSx7c3RhdGU6USxjdXN0b21TdHlsZUhvb2tNYXBwaW5nOnRWLHJlZjpbbixqXSxwcm9wczp7Li4uSywuLi5ifX0pLGVlPU8mJlwibWVudVwiIT09Xy50eXBlJiYoXCJtZW51YmFyXCIhPT1fLnR5cGUmJlMmJlwidHJpZ2dlci1ob3ZlclwiIT09RXx8XCJtZW51YmFyXCI9PT1fLnR5cGUmJl8uY29udGV4dC5tb2RhbCksZW49bnVsbDtyZXR1cm5cIm1lbnViYXJcIj09PV8udHlwZT9lbj1fLmNvbnRleHQuY29udGVudEVsZW1lbnQ6dm9pZCAwPT09Xy50eXBlJiYoZW49eiksKDAsbC5qc3hzKShyQS5Qcm92aWRlcix7dmFsdWU6RyxjaGlsZHJlbjpbZWUmJigwLGwuanN4KShyNyx7cmVmOlwiY29udGV4dC1tZW51XCI9PT1fLnR5cGV8fFwibmVzdGVkLWNvbnRleHQtbWVudVwiPT09Xy50eXBlP18uY29udGV4dC5pbnRlcm5hbEJhY2tkcm9wUmVmOm51bGwsaW5lcnQ6KHQ9IXksdHc+PTE5P3Q6dD9cInRydWVcIjp2b2lkIDApLGN1dG91dDplbn0pLCgwLGwuanN4KSgkLHtpZDpULGNoaWxkcmVuOigwLGwuanN4KShyMyx7ZWxlbWVudHNSZWY6ayxsYWJlbHNSZWY6QSxjaGlsZHJlbjpKfSl9KV19KX0pLG9uPXtpbmVydDpuZXcgV2Vha01hcCxcImFyaWEtaGlkZGVuXCI6bmV3IFdlYWtNYXAsbm9uZTpuZXcgV2Vha01hcH07ZnVuY3Rpb24gb3QoZSl7cmV0dXJuXCJpbmVydFwiPT09ZT9vbi5pbmVydDpcImFyaWEtaGlkZGVuXCI9PT1lP29uW1wiYXJpYS1oaWRkZW5cIl06b24ubm9uZX1sZXQgb3I9bmV3IFdlYWtTZXQsb289e30sb2E9MCxvaT1lPT5lJiYoZS5ob3N0fHxvaShlLnBhcmVudE5vZGUpKTtmdW5jdGlvbiBvbChlLG49ITEsdD0hMSl7bGV0IHI9ZVEoZVswXSkuYm9keTtyZXR1cm4gZnVuY3Rpb24oZSxuLHQscil7bGV0IG89XCJkYXRhLWJhc2UtdWktaW5lcnRcIixhPXI/XCJpbmVydFwiOnQ/XCJhcmlhLWhpZGRlblwiOm51bGwsaT1lLm1hcChlPT57aWYobi5jb250YWlucyhlKSlyZXR1cm4gZTtsZXQgdD1vaShlKTtyZXR1cm4gbi5jb250YWlucyh0KT90Om51bGx9KS5maWx0ZXIoZT0+bnVsbCE9ZSksbD1uZXcgU2V0LHM9bmV3IFNldChpKSxjPVtdO29vW29dfHwob29bb109bmV3IFdlYWtNYXApO2xldCB1PW9vW29dO3JldHVybiBpLmZvckVhY2goZnVuY3Rpb24gZShuKXshKCFufHxsLmhhcyhuKSkmJihsLmFkZChuKSxuLnBhcmVudE5vZGUmJmUobi5wYXJlbnROb2RlKSl9KSxmdW5jdGlvbiBlKG4peyFufHxzLmhhcyhuKXx8W10uZm9yRWFjaC5jYWxsKG4uY2hpbGRyZW4sbj0+e2lmKFwic2NyaXB0XCIhPT1LKG4pKWlmKGwuaGFzKG4pKWUobik7ZWxzZXtsZXQgZT1hP24uZ2V0QXR0cmlidXRlKGEpOm51bGwsdD1udWxsIT09ZSYmXCJmYWxzZVwiIT09ZSxyPW90KGEpLGk9KHIuZ2V0KG4pfHwwKSsxLGw9KHUuZ2V0KG4pfHwwKSsxO3Iuc2V0KG4saSksdS5zZXQobixsKSxjLnB1c2gobiksMT09PWkmJnQmJm9yLmFkZChuKSwxPT09bCYmbi5zZXRBdHRyaWJ1dGUobyxcIlwiKSwhdCYmYSYmbi5zZXRBdHRyaWJ1dGUoYSxcImluZXJ0XCI9PT1hP1wiXCI6XCJ0cnVlXCIpfX0pfShuKSxsLmNsZWFyKCksb2ErPTEsKCk9PntjLmZvckVhY2goZT0+e2xldCBuPW90KGEpLHQ9KG4uZ2V0KGUpfHwwKS0xLHI9KHUuZ2V0KGUpfHwwKS0xO24uc2V0KGUsdCksdS5zZXQoZSxyKSx0fHwoIW9yLmhhcyhlKSYmYSYmZS5yZW1vdmVBdHRyaWJ1dGUoYSksb3IuZGVsZXRlKGUpKSxyfHxlLnJlbW92ZUF0dHJpYnV0ZShvKX0pLChvYS09MSl8fChvbi5pbmVydD1uZXcgV2Vha01hcCxvbltcImFyaWEtaGlkZGVuXCJdPW5ldyBXZWFrTWFwLG9uLm5vbmU9bmV3IFdlYWtNYXAsb3I9bmV3IFdlYWtTZXQsb289e30pfX0oZS5jb25jYXQoQXJyYXkuZnJvbShyLnF1ZXJ5U2VsZWN0b3JBbGwoXCJbYXJpYS1saXZlXVwiKSkpLHIsbix0KX1sZXQgb3M9W107ZnVuY3Rpb24gb2MoKXtyZXR1cm4gb3Muc2xpY2UoKS5yZXZlcnNlKCkuZmluZChlPT5lLmlzQ29ubmVjdGVkKX1mdW5jdGlvbiBvdShlLG4pe2lmKCFuLmN1cnJlbnQuaW5jbHVkZXMoXCJmbG9hdGluZ1wiKSYmIWUuZ2V0QXR0cmlidXRlKFwicm9sZVwiKT8uaW5jbHVkZXMoXCJkaWFsb2dcIikpcmV0dXJuO2xldCB0PXJkKCkscj1yYyhlLHQpLmZpbHRlcihlPT57bGV0IG49ZS5nZXRBdHRyaWJ1dGUoXCJkYXRhLXRhYmluZGV4XCIpfHxcIlwiO3JldHVybiBydShlLHQpfHxlLmhhc0F0dHJpYnV0ZShcImRhdGEtdGFiaW5kZXhcIikmJiFuLnN0YXJ0c1dpdGgoXCItXCIpfSksbz1lLmdldEF0dHJpYnV0ZShcInRhYmluZGV4XCIpO24uY3VycmVudC5pbmNsdWRlcyhcImZsb2F0aW5nXCIpfHwwPT09ci5sZW5ndGg/XCIwXCIhPT1vJiZlLnNldEF0dHJpYnV0ZShcInRhYmluZGV4XCIsXCIwXCIpOihcIi0xXCIhPT1vfHxlLmhhc0F0dHJpYnV0ZShcImRhdGEtdGFiaW5kZXhcIikmJlwiLTFcIiE9PWUuZ2V0QXR0cmlidXRlKFwiZGF0YS10YWJpbmRleFwiKSkmJihlLnNldEF0dHJpYnV0ZShcInRhYmluZGV4XCIsXCItMVwiKSxlLnNldEF0dHJpYnV0ZShcImRhdGEtdGFiaW5kZXhcIixcIi0xXCIpKX1sZXQgb2Q9Qy5mb3J3YXJkUmVmKGZ1bmN0aW9uKGUsbil7cmV0dXJuKDAsbC5qc3gpKFwiYnV0dG9uXCIsey4uLmUsdHlwZTpcImJ1dHRvblwiLHJlZjpuLHRhYkluZGV4Oi0xLHN0eWxlOnQkfSl9KTtmdW5jdGlvbiBvZihlKXtsZXR7Y29udGV4dDpuLGNoaWxkcmVuOnQsZGlzYWJsZWQ6cj0hMSxvcmRlcjpvPVtcImNvbnRlbnRcIl0sZ3VhcmRzOmE9ITAsaW5pdGlhbEZvY3VzOmk9MCxyZXR1cm5Gb2N1czpzPSEwLHJlc3RvcmVGb2N1czpjPSExLG1vZGFsOnU9ITAsdmlzdWFsbHlIaWRkZW5EaXNtaXNzOmQ9ITEsY2xvc2VPbkZvY3VzT3V0OmY9ITAsb3V0c2lkZUVsZW1lbnRzSW5lcnQ6cD0hMSxnZXRJbnNpZGVFbGVtZW50czpoPSgpPT5bXX09ZSx7b3BlbjpnLG9uT3BlbkNoYW5nZTptLGV2ZW50czp2LGRhdGFSZWY6YixlbGVtZW50czp7ZG9tUmVmZXJlbmNlOnksZmxvYXRpbmc6eH19PW4sdz1UKCgpPT5iLmN1cnJlbnQuZmxvYXRpbmdDb250ZXh0Py5ub2RlSWQpLGo9VChoKSxrPVwibnVtYmVyXCI9PXR5cGVvZiBpJiZpPDAsQT1lSih5KSYmayxPPVwidW5kZWZpbmVkXCIhPXR5cGVvZiBIVE1MRWxlbWVudCYmXCJpbmVydFwiaW4gSFRNTEVsZW1lbnQucHJvdG90eXBlLFM9IU98fGEsRT0hU3x8TyYmcCxfPWVBKG8pLFA9ZUEoaSksej1lQShzKSxMPVcoKSxSPXJiKCksTj1DLnVzZVJlZihudWxsKSxEPUMudXNlUmVmKG51bGwpLEI9Qy51c2VSZWYoITEpLE09Qy51c2VSZWYoITEpLEk9Qy51c2VSZWYoLTEpLEg9bnVsbCE9UixVPWUwKHgpLFY9VCgoZT1VKT0+ZT9ycyhlLHJkKCkpOltdKSxxPVQoZT0+e2xldCBuPVYoZSk7cmV0dXJuIF8uY3VycmVudC5tYXAoZT0+eSYmXCJyZWZlcmVuY2VcIj09PWU/eTpVJiZcImZsb2F0aW5nXCI9PT1lP1U6bikuZmlsdGVyKEJvb2xlYW4pLmZsYXQoKX0pO0MudXNlRWZmZWN0KCgpPT57aWYocnx8IXUpcmV0dXJuO2Z1bmN0aW9uIGUoZSl7aWYoXCJUYWJcIj09PWUua2V5KXtlWShVLGVaKGVRKFUpKSkmJjA9PT1WKCkubGVuZ3RoJiYhQSYmZUQoZSk7bGV0IG49cSgpLHQ9ZVgoZSk7XCJyZWZlcmVuY2VcIj09PV8uY3VycmVudFswXSYmdD09PXkmJihlRChlKSxlLnNoaWZ0S2V5P25xKG5bbi5sZW5ndGgtMV0pOm5xKG5bMV0pKSxcImZsb2F0aW5nXCI9PT1fLmN1cnJlbnRbMV0mJnQ9PT1VJiZlLnNoaWZ0S2V5JiYoZUQoZSksbnEoblswXSkpfX1sZXQgbj1lUShVKTtyZXR1cm4gbi5hZGRFdmVudExpc3RlbmVyKFwia2V5ZG93blwiLGUpLCgpPT57bi5yZW1vdmVFdmVudExpc3RlbmVyKFwia2V5ZG93blwiLGUpfX0sW3IseSxVLHUsXyxBLFYscV0pLEMudXNlRWZmZWN0KCgpPT57aWYoIXImJngpcmV0dXJuIHguYWRkRXZlbnRMaXN0ZW5lcihcImZvY3VzaW5cIixlKSwoKT0+e3gucmVtb3ZlRXZlbnRMaXN0ZW5lcihcImZvY3VzaW5cIixlKX07ZnVuY3Rpb24gZShlKXtsZXQgbj1lWChlKSx0PVYoKS5pbmRleE9mKG4pOy0xIT09dCYmKEkuY3VycmVudD10KX19LFtyLHgsVl0pLEMudXNlRWZmZWN0KCgpPT57aWYoIXImJmYmJngmJmVuKHkpKXJldHVybiB5LmFkZEV2ZW50TGlzdGVuZXIoXCJmb2N1c291dFwiLG4pLHkuYWRkRXZlbnRMaXN0ZW5lcihcInBvaW50ZXJkb3duXCIsZSkseC5hZGRFdmVudExpc3RlbmVyKFwiZm9jdXNvdXRcIixuKSwoKT0+e3kucmVtb3ZlRXZlbnRMaXN0ZW5lcihcImZvY3Vzb3V0XCIsbikseS5yZW1vdmVFdmVudExpc3RlbmVyKFwicG9pbnRlcmRvd25cIixlKSx4LnJlbW92ZUV2ZW50TGlzdGVuZXIoXCJmb2N1c291dFwiLG4pfTtmdW5jdGlvbiBlKCl7TS5jdXJyZW50PSEwLHNldFRpbWVvdXQoKCk9PntNLmN1cnJlbnQ9ITF9KX1mdW5jdGlvbiBuKGUpe2xldCBuPWUucmVsYXRlZFRhcmdldCx0PWUuY3VycmVudFRhcmdldCxyPWVYKGUpO3F1ZXVlTWljcm90YXNrKCgpPT57bGV0IG89dygpLGE9IShlWSh5LG4pfHxlWSh4LG4pfHxlWShuLHgpfHxlWShSPy5wb3J0YWxOb2RlLG4pfHxuPy5oYXNBdHRyaWJ1dGUoZTEoXCJmb2N1cy1ndWFyZFwiKSl8fEwmJihlNihMLm5vZGVzUmVmLmN1cnJlbnQsbykuZmluZChlPT5lWShlLmNvbnRleHQ/LmVsZW1lbnRzLmZsb2F0aW5nLG4pfHxlWShlLmNvbnRleHQ/LmVsZW1lbnRzLmRvbVJlZmVyZW5jZSxuKSl8fGU5KEwubm9kZXNSZWYuY3VycmVudCxvKS5maW5kKGU9PltlLmNvbnRleHQ/LmVsZW1lbnRzLmZsb2F0aW5nLGUwKGUuY29udGV4dD8uZWxlbWVudHMuZmxvYXRpbmcpXS5pbmNsdWRlcyhuKXx8ZS5jb250ZXh0Py5lbGVtZW50cy5kb21SZWZlcmVuY2U9PT1uKSkpO2lmKHQ9PT15JiZVJiZvdShVLF8pLGMmJnQhPT15JiYhcj8uaXNDb25uZWN0ZWQmJmVaKGVRKFUpKT09PWVRKFUpLmJvZHkpe2VuKFUpJiZVLmZvY3VzKCk7bGV0IGU9SS5jdXJyZW50LG49VigpLHQ9bltlXXx8bltuLmxlbmd0aC0xXXx8VTtlbih0KSYmdC5mb2N1cygpfWlmKGIuY3VycmVudC5pbnNpZGVSZWFjdFRyZWUpe2IuY3VycmVudC5pbnNpZGVSZWFjdFRyZWU9ITE7cmV0dXJufShBfHwhdSkmJm4mJmEmJiFNLmN1cnJlbnQmJm4hPT1vYygpJiYoQi5jdXJyZW50PSEwLG0oITEsZSxcImZvY3VzLW91dFwiKSl9KX19LFtyLHkseCxVLHUsTCxSLG0sZixjLFYsQSx3LF8sYl0pO2xldCAkPUMudXNlUmVmKG51bGwpLFo9Qy51c2VSZWYobnVsbCksWT10YigkLFI/LmJlZm9yZUluc2lkZVJlZiksWD10YihaLFI/LmFmdGVySW5zaWRlUmVmKTtmdW5jdGlvbiBRKGUpe3JldHVybiFyJiZkJiZ1PygwLGwuanN4KShvZCx7cmVmOlwic3RhcnRcIj09PWU/TjpELG9uQ2xpY2s6ZT0+bSghMSxlLm5hdGl2ZUV2ZW50KSxjaGlsZHJlbjpcInN0cmluZ1wiPT10eXBlb2YgZD9kOlwiRGlzbWlzc1wifSk6bnVsbH1DLnVzZUVmZmVjdCgoKT0+e2lmKHJ8fCF4KXJldHVybjtsZXQgZT1BcnJheS5mcm9tKFI/LnBvcnRhbE5vZGU/LnF1ZXJ5U2VsZWN0b3JBbGwoYFske2UxKFwicG9ydGFsXCIpfV1gKXx8W10pLG49TD9lOShMLm5vZGVzUmVmLmN1cnJlbnQsdygpKTpbXSx0PUwmJiF1P24ubWFwKGU9PmUuY29udGV4dD8uZWxlbWVudHMuZmxvYXRpbmcpOltdLG89W3gsbi5maW5kKGU9PmVKKGUuY29udGV4dD8uZWxlbWVudHMuZG9tUmVmZXJlbmNlfHxudWxsKSk/LmNvbnRleHQ/LmVsZW1lbnRzLmRvbVJlZmVyZW5jZSwuLi5lLC4uLnQsLi4uaigpLE4uY3VycmVudCxELmN1cnJlbnQsJC5jdXJyZW50LFouY3VycmVudCxSPy5iZWZvcmVPdXRzaWRlUmVmLmN1cnJlbnQsUj8uYWZ0ZXJPdXRzaWRlUmVmLmN1cnJlbnQsXy5jdXJyZW50LmluY2x1ZGVzKFwicmVmZXJlbmNlXCIpfHxBP3k6bnVsbF0uZmlsdGVyKGU9Pm51bGwhPWUpLGE9dXx8QT9vbChvLCFFLEUpOm9sKG8pO3JldHVybigpPT57YSgpfX0sW3IseSx4LHUsXyxSLEEsUyxFLEwsdyxqXSksRigoKT0+e2lmKHJ8fCFlbihVKSlyZXR1cm47bGV0IGU9ZVooZVEoVSkpO3F1ZXVlTWljcm90YXNrKCgpPT57bGV0IG49cShVKSx0PVAuY3VycmVudCxyPShcIm51bWJlclwiPT10eXBlb2YgdD9uW3RdOnQuY3VycmVudCl8fFUsbz1lWShVLGUpO2t8fG98fCFnfHxucShyLHtwcmV2ZW50U2Nyb2xsOnI9PT1VfSl9KX0sW3IsZyxVLGsscSxQXSksRigoKT0+e3ZhciBlO2lmKHJ8fCFVKXJldHVybjtsZXQgbj1lUShVKTtmdW5jdGlvbiB0KHtyZWFzb246ZSxldmVudDpuLG5lc3RlZDp0fSl7aWYoW1wiaG92ZXJcIixcInNhZmUtcG9seWdvblwiXS5pbmNsdWRlcyhlKSYmXCJtb3VzZWxlYXZlXCI9PT1uLnR5cGUmJihCLmN1cnJlbnQ9ITApLFwib3V0c2lkZS1wcmVzc1wiPT09ZSlpZih0KUIuY3VycmVudD0hMTtlbHNlIGlmKGVCKG4pfHxlTShuKSlCLmN1cnJlbnQ9ITE7ZWxzZXtsZXQgZT0hMTtkb2N1bWVudC5jcmVhdGVFbGVtZW50KFwiZGl2XCIpLmZvY3VzKHtnZXQgcHJldmVudFNjcm9sbCgpe3JldHVybiBlPSEwLCExfX0pLGU/Qi5jdXJyZW50PSExOkIuY3VycmVudD0hMH19ZT1lWihuKSxvcz1vcy5maWx0ZXIoZT0+ZS5pc0Nvbm5lY3RlZCksZSYmXCJib2R5XCIhPT1LKGUpJiYob3MucHVzaChlKSxvcy5sZW5ndGg+MjAmJihvcz1vcy5zbGljZSgtMjApKSksdi5vbihcIm9wZW5jaGFuZ2VcIix0KTtsZXQgbz1uLmNyZWF0ZUVsZW1lbnQoXCJzcGFuXCIpO3JldHVybiBvLnNldEF0dHJpYnV0ZShcInRhYmluZGV4XCIsXCItMVwiKSxvLnNldEF0dHJpYnV0ZShcImFyaWEtaGlkZGVuXCIsXCJ0cnVlXCIpLE9iamVjdC5hc3NpZ24oby5zdHlsZSx0JCksSCYmeSYmeS5pbnNlcnRBZGphY2VudEVsZW1lbnQoXCJhZnRlcmVuZFwiLG8pLCgpPT57di5vZmYoXCJvcGVuY2hhbmdlXCIsdCk7bGV0IGU9ZVoobikscj1lWSh4LGUpfHxMJiZlNihMLm5vZGVzUmVmLmN1cnJlbnQsdygpLCExKS5zb21lKG49PmVZKG4uY29udGV4dD8uZWxlbWVudHMuZmxvYXRpbmcsZSkpLGE9ZnVuY3Rpb24oKXtpZihcImJvb2xlYW5cIj09dHlwZW9mIHouY3VycmVudCl7bGV0IGU9eXx8b2MoKTtyZXR1cm4gZSYmZS5pc0Nvbm5lY3RlZD9lOm99cmV0dXJuIHouY3VycmVudC5jdXJyZW50fHxvfSgpO3F1ZXVlTWljcm90YXNrKCgpPT57bGV0IHQ9ZnVuY3Rpb24oZSl7bGV0IG49cmQoKTtyZXR1cm4gcnUoZSxuKT9lOnJzKGUsbilbMF18fGV9KGEpO3ouY3VycmVudCYmIUIuY3VycmVudCYmZW4odCkmJih0PT09ZXx8ZT09PW4uYm9keXx8cikmJnQuZm9jdXMoe3ByZXZlbnRTY3JvbGw6ITB9KSxvLnJlbW92ZSgpfSl9fSxbcix4LFUseixiLHYsTCxILHksd10pLEMudXNlRWZmZWN0KCgpPT57cXVldWVNaWNyb3Rhc2soKCk9PntCLmN1cnJlbnQ9ITF9KX0sW3JdKSxGKCgpPT57aWYoIXImJlIpcmV0dXJuIFIuc2V0Rm9jdXNNYW5hZ2VyU3RhdGUoe21vZGFsOnUsY2xvc2VPbkZvY3VzT3V0OmYsb3BlbjpnLG9uT3BlbkNoYW5nZTptLGRvbVJlZmVyZW5jZTp5fSksKCk9PntSLnNldEZvY3VzTWFuYWdlclN0YXRlKG51bGwpfX0sW3IsUix1LGcsbSxmLHldKSxGKCgpPT57IXImJlUmJm91KFUsXyl9LFtyLFUsX10pO2xldCBHPSFyJiZTJiYoIXV8fCFBKSYmKEh8fHUpO3JldHVybigwLGwuanN4cykoQy5GcmFnbWVudCx7Y2hpbGRyZW46W0cmJigwLGwuanN4KSh0Wix7XCJkYXRhLXR5cGVcIjpcImluc2lkZVwiLHJlZjpZLG9uRm9jdXM6ZT0+e2lmKHUpe2xldCBlPXEoKTtucShcInJlZmVyZW5jZVwiPT09b1swXT9lWzBdOmVbZS5sZW5ndGgtMV0pfWVsc2UgaWYoUj8ucHJlc2VydmVUYWJPcmRlciYmUi5wb3J0YWxOb2RlKWlmKEIuY3VycmVudD0hMSxyZyhlLFIucG9ydGFsTm9kZSkpe2xldCBlPXJwKHkpO2U/LmZvY3VzKCl9ZWxzZSBSLmJlZm9yZU91dHNpZGVSZWYuY3VycmVudD8uZm9jdXMoKX19KSwhQSYmUShcInN0YXJ0XCIpLHQsUShcImVuZFwiKSxHJiYoMCxsLmpzeCkodFose1wiZGF0YS10eXBlXCI6XCJpbnNpZGVcIixyZWY6WCxvbkZvY3VzOmU9PntpZih1KW5xKHEoKVswXSk7ZWxzZSBpZihSPy5wcmVzZXJ2ZVRhYk9yZGVyJiZSLnBvcnRhbE5vZGUpaWYoZiYmKEIuY3VycmVudD0hMCkscmcoZSxSLnBvcnRhbE5vZGUpKXtsZXQgZT1yaCh5KTtlPy5mb2N1cygpfWVsc2UgUi5hZnRlck91dHNpZGVSZWYuY3VycmVudD8uZm9jdXMoKX19KV19KX1sZXQgb3A9ey4uLnRWLC4uLnRUfSxvaD1DLmZvcndhcmRSZWYoZnVuY3Rpb24oZSxuKXtsZXR7cmVuZGVyOnQsY2xhc3NOYW1lOnIsZmluYWxGb2N1czpvLC4uLmF9PWUse29wZW46aSxzZXRPcGVuOnMscG9wdXBSZWY6Yyx0cmFuc2l0aW9uU3RhdHVzOnUscG9wdXBQcm9wczpkLG1vdW50ZWQ6ZixpbnN0YW50VHlwZTpwLG9uT3BlbkNoYW5nZUNvbXBsZXRlOmgscGFyZW50OmcsbGFzdE9wZW5DaGFuZ2VSZWFzb246bSxyb290SWQ6dn09bjAoKSx7c2lkZTpiLGFsaWduOnksZmxvYXRpbmdDb250ZXh0Onh9PWZ1bmN0aW9uKCl7bGV0IGU9Qy51c2VDb250ZXh0KHJBKTtpZih2b2lkIDA9PT1lKXRocm93IEVycm9yKFwiQmFzZSBVSTogTWVudVBvc2l0aW9uZXJDb250ZXh0IGlzIG1pc3NpbmcuIE1lbnVQb3NpdGlvbmVyIHBhcnRzIG11c3QgYmUgcGxhY2VkIHdpdGhpbiA8TWVudS5Qb3NpdGlvbmVyPi5cIik7cmV0dXJuIGV9KCk7bjUoe29wZW46aSxyZWY6YyxvbkNvbXBsZXRlKCl7aSYmaD8uKCEwKX19KTtsZXR7ZXZlbnRzOnd9PVcoKTtDLnVzZUVmZmVjdCgoKT0+e2Z1bmN0aW9uIGUoZSl7cyghMSxlLmRvbUV2ZW50LGUucmVhc29uKX1yZXR1cm4gdy5vbihcImNsb3NlXCIsZSksKCk9Pnt3Lm9mZihcImNsb3NlXCIsZSl9fSxbdyxzXSk7bGV0IGo9dGooXCJkaXZcIixlLHtzdGF0ZTpDLnVzZU1lbW8oKCk9Pih7dHJhbnNpdGlvblN0YXR1czp1LHNpZGU6YixhbGlnbjp5LG9wZW46aSxuZXN0ZWQ6XCJtZW51XCI9PT1nLnR5cGUsaW5zdGFudDpwfSksW3UsYix5LGksZy50eXBlLHBdKSxyZWY6W24sY10sY3VzdG9tU3R5bGVIb29rTWFwcGluZzpvcCxwcm9wczpbZCxcInN0YXJ0aW5nXCI9PT11P250Om5yLGEse1wiZGF0YS1yb290b3duZXJpZFwiOnZ9XX0pLGs9dm9pZCAwPT09Zy50eXBlfHxcImNvbnRleHQtbWVudVwiPT09Zy50eXBlO3JldHVyblwibWVudWJhclwiPT09Zy50eXBlJiZcIm91dHNpZGUtcHJlc3NcIiE9PW0mJihrPSEwKSwoMCxsLmpzeCkob2Yse2NvbnRleHQ6eCxtb2RhbDohMSxkaXNhYmxlZDohZixyZXR1cm5Gb2N1czpvfHxrLGluaXRpYWxGb2N1czpcIm1lbnVcIj09PWcudHlwZT8tMTowLHJlc3RvcmVGb2N1czohMCxjaGlsZHJlbjpqfSl9KSxvZz1DLmNyZWF0ZUNvbnRleHQodm9pZCAwKSxvbT1DLmZvcndhcmRSZWYoZnVuY3Rpb24oZSxuKXtsZXR7cmVuZGVyOnQsY2xhc3NOYW1lOnIsLi4ub309ZSxbYSxpXT1DLnVzZVN0YXRlKHZvaWQgMCkscz1DLnVzZU1lbW8oKCk9Pih7c2V0TGFiZWxJZDppfSksW2ldKSxjPXRqKFwiZGl2XCIsZSx7cmVmOm4scHJvcHM6e3JvbGU6XCJncm91cFwiLFwiYXJpYS1sYWJlbGxlZGJ5XCI6YSwuLi5vfX0pO3JldHVybigwLGwuanN4KShvZy5Qcm92aWRlcix7dmFsdWU6cyxjaGlsZHJlbjpjfSl9KTtmdW5jdGlvbiBvdihlKXtyZXR1cm4gSChlLFwiYmFzZS11aVwiKX1sZXQgb2I9Qy5mb3J3YXJkUmVmKGZ1bmN0aW9uKGUsbil7bGV0e2NsYXNzTmFtZTp0LHJlbmRlcjpyLGlkOm8sLi4uYX09ZSxpPW92KG8pLHtzZXRMYWJlbElkOmx9PWZ1bmN0aW9uKCl7bGV0IGU9Qy51c2VDb250ZXh0KG9nKTtpZih2b2lkIDA9PT1lKXRocm93IEVycm9yKFwiQmFzZSBVSTogTWVudUdyb3VwUm9vdENvbnRleHQgaXMgbWlzc2luZy4gTWVudSBncm91cCBwYXJ0cyBtdXN0IGJlIHVzZWQgd2l0aGluIDxNZW51Lkdyb3VwPi5cIik7cmV0dXJuIGV9KCk7cmV0dXJuIEYoKCk9PihsKGkpLCgpPT57bCh2b2lkIDApfSksW2wsaV0pLHRqKFwiZGl2XCIsZSx7cmVmOm4scHJvcHM6e2lkOmkscm9sZTpcInByZXNlbnRhdGlvblwiLC4uLmF9fSl9KSxveT17dHlwZTpcInJlZ3VsYXItaXRlbVwifSxveD1DLm1lbW8oQy5mb3J3YXJkUmVmKGZ1bmN0aW9uKGUsbil7bGV0e2NsYXNzTmFtZTp0LGNsb3NlT25DbGljazpyPSEwLGRpc2FibGVkOm89ITEsaGlnaGxpZ2h0ZWQ6YSxpZDppLG1lbnVFdmVudHM6bCxpdGVtUHJvcHM6cyxyZW5kZXI6YyxhbGxvd01vdXNlVXBUcmlnZ2VyUmVmOnUsdHlwaW5nUmVmOmQsbmF0aXZlQnV0dG9uOmYsLi4ucH09ZSx7Z2V0SXRlbVByb3BzOmgsaXRlbVJlZjpnfT1mdW5jdGlvbihlKXtsZXR7Y2xvc2VPbkNsaWNrOm4sZGlzYWJsZWQ6dD0hMSxoaWdobGlnaHRlZDpyLGlkOm8sbWVudUV2ZW50czphLGFsbG93TW91c2VVcFRyaWdnZXJSZWY6aSx0eXBpbmdSZWY6bCxuYXRpdmVCdXR0b246cyxpdGVtTWV0YWRhdGE6Y309ZSx1PUMudXNlUmVmKG51bGwpLHtnZXRCdXR0b25Qcm9wczpkLGJ1dHRvblJlZjpmfT10cSh7ZGlzYWJsZWQ6dCxmb2N1c2FibGVXaGVuRGlzYWJsZWQ6ITAsbmF0aXZlOnN9KSxwPUMudXNlQ2FsbGJhY2soZT0+dGMoe2lkOm8scm9sZTpcIm1lbnVpdGVtXCIsdGFiSW5kZXg6cj8wOi0xLG9uTW91c2VFbnRlcigpe1wic3VibWVudS10cmlnZ2VyXCI9PT1jLnR5cGUmJmMuc2V0QWN0aXZlKCl9LG9uS2V5VXA6ZT0+e1wiIFwiPT09ZS5rZXkmJmwuY3VycmVudCYmZS5wcmV2ZW50QmFzZVVJSGFuZGxlcigpfSxvbkNsaWNrOmU9PntuJiZhLmVtaXQoXCJjbG9zZVwiLHtkb21FdmVudDplLHJlYXNvbjpcIml0ZW0tcHJlc3NcIn0pfSxvbk1vdXNlVXA6KCk9Pnt1LmN1cnJlbnQmJmkuY3VycmVudCYmXCJyZWd1bGFyLWl0ZW1cIj09PWMudHlwZSYmdS5jdXJyZW50LmNsaWNrKCl9fSxlLGQpLFtvLHIsZCxsLG4sYSxpLGNdKSxoPXRiKHUsZik7cmV0dXJuIEMudXNlTWVtbygoKT0+KHtnZXRJdGVtUHJvcHM6cCxpdGVtUmVmOmh9KSxbcCxoXSl9KHtjbG9zZU9uQ2xpY2s6cixkaXNhYmxlZDpvLGhpZ2hsaWdodGVkOmEsaWQ6aSxtZW51RXZlbnRzOmwsYWxsb3dNb3VzZVVwVHJpZ2dlclJlZjp1LHR5cGluZ1JlZjpkLG5hdGl2ZUJ1dHRvbjpmLGl0ZW1NZXRhZGF0YTpveX0pO3JldHVybiB0aihcImRpdlwiLGUse3N0YXRlOkMudXNlTWVtbygoKT0+KHtkaXNhYmxlZDpvLGhpZ2hsaWdodGVkOmF9KSxbbyxhXSkscmVmOltnLG5dLHByb3BzOltzLHAsaF19KX0pKSxvdz1DLmZvcndhcmRSZWYoZnVuY3Rpb24oZSxuKXtsZXR7aWQ6dCxsYWJlbDpyLG5hdGl2ZUJ1dHRvbjpvPSExLC4uLmF9PWUsaT1DLnVzZVJlZihudWxsKSxzPXRFKHtsYWJlbDpyfSksYz10YihuLHMucmVmLGkpLHtpdGVtUHJvcHM6dSxhY3RpdmVJbmRleDpkLGFsbG93TW91c2VVcFRyaWdnZXJSZWY6Zix0eXBpbmdSZWY6cH09bjAoKSxoPW92KHQpLGc9cy5pbmRleD09PWQse2V2ZW50czptfT1XKCk7cmV0dXJuKDAsbC5qc3gpKG94LHsuLi5hLGlkOmgscmVmOmMsaGlnaGxpZ2h0ZWQ6ZyxtZW51RXZlbnRzOm0saXRlbVByb3BzOnUsYWxsb3dNb3VzZVVwVHJpZ2dlclJlZjpmLHR5cGluZ1JlZjpwLG5hdGl2ZUJ1dHRvbjpvfSl9KTt2YXIgb2o9XCJfX25leHRfYnVpbHRpbl9fXCI7ZnVuY3Rpb24gb2soZSl7cmV0dXJuIGUucmVwbGFjZShuZXcgUmVnRXhwKFwiXlwiLmNvbmNhdChvaikpLFwiXCIpLnJlcGxhY2UobmV3IFJlZ0V4cChcIlwiLmNvbmNhdChcIkBib3VuZGFyeVwiLFwiJFwiKSksXCJcIil9dmFyIG9BPVwiYm91bmRhcnk6XCI7ZnVuY3Rpb24gb08oZSl7cmV0dXJuIGUuc3RhcnRzV2l0aChvQSl9dmFyIG9DPXQoXCIuL3NyYy9uZXh0LWRldnRvb2xzL2Rldi1vdmVybGF5L2NvbXBvbmVudHMvZXJyb3JzL2Rldi10b29scy1pbmRpY2F0b3IvdXRpbHMudHNcIik7ZnVuY3Rpb24gb1MoZSxuKXsobnVsbD09bnx8bj5lLmxlbmd0aCkmJihuPWUubGVuZ3RoKTtmb3IodmFyIHQ9MCxyPUFycmF5KG4pO3Q8bjt0Kyspclt0XT1lW3RdO3JldHVybiByfWZ1bmN0aW9uIG9FKGUpe2Zvcih2YXIgbj0xO248YXJndW1lbnRzLmxlbmd0aDtuKyspe3ZhciB0PW51bGwhPWFyZ3VtZW50c1tuXT9hcmd1bWVudHNbbl06e30scj1PYmplY3Qua2V5cyh0KTtcImZ1bmN0aW9uXCI9PXR5cGVvZiBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzJiYocj1yLmNvbmNhdChPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKHQpLmZpbHRlcihmdW5jdGlvbihlKXtyZXR1cm4gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcih0LGUpLmVudW1lcmFibGV9KSkpLHIuZm9yRWFjaChmdW5jdGlvbihuKXt2YXIgcjtyPXRbbl0sbiBpbiBlP09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLG4se3ZhbHVlOnIsZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITB9KTplW25dPXJ9KX1yZXR1cm4gZX1mdW5jdGlvbiBvXyhlLG4pe3JldHVybiBuPW51bGwhPW4/bjp7fSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycz9PYmplY3QuZGVmaW5lUHJvcGVydGllcyhlLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzKG4pKTooZnVuY3Rpb24oZSxuKXt2YXIgdD1PYmplY3Qua2V5cyhlKTtpZihPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKXt2YXIgcj1PYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKGUpO3QucHVzaC5hcHBseSh0LHIpfXJldHVybiB0fSkoT2JqZWN0KG4pKS5mb3JFYWNoKGZ1bmN0aW9uKHQpe09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLHQsT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihuLHQpKX0pLGV9ZnVuY3Rpb24gb1AoZSxuKXtyZXR1cm4gZnVuY3Rpb24oZSl7aWYoQXJyYXkuaXNBcnJheShlKSlyZXR1cm4gZX0oZSl8fGZ1bmN0aW9uKGUsbil7dmFyIHQscixvPW51bGw9PWU/bnVsbDpcInVuZGVmaW5lZFwiIT10eXBlb2YgU3ltYm9sJiZlW1N5bWJvbC5pdGVyYXRvcl18fGVbXCJAQGl0ZXJhdG9yXCJdO2lmKG51bGwhPW8pe3ZhciBhPVtdLGk9ITAsbD0hMTt0cnl7Zm9yKG89by5jYWxsKGUpOyEoaT0odD1vLm5leHQoKSkuZG9uZSkmJihhLnB1c2godC52YWx1ZSksIW58fGEubGVuZ3RoIT09bik7aT0hMCk7fWNhdGNoKGUpe2w9ITAscj1lfWZpbmFsbHl7dHJ5e2l8fG51bGw9PW8ucmV0dXJufHxvLnJldHVybigpfWZpbmFsbHl7aWYobCl0aHJvdyByfX1yZXR1cm4gYX19KGUsbil8fGZ1bmN0aW9uKGUsbil7aWYoZSl7aWYoXCJzdHJpbmdcIj09dHlwZW9mIGUpcmV0dXJuIG9TKGUsbik7dmFyIHQ9T2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKGUpLnNsaWNlKDgsLTEpO2lmKFwiT2JqZWN0XCI9PT10JiZlLmNvbnN0cnVjdG9yJiYodD1lLmNvbnN0cnVjdG9yLm5hbWUpLFwiTWFwXCI9PT10fHxcIlNldFwiPT09dClyZXR1cm4gQXJyYXkuZnJvbSh0KTtpZihcIkFyZ3VtZW50c1wiPT09dHx8L14oPzpVaXxJKW50KD86OHwxNnwzMikoPzpDbGFtcGVkKT9BcnJheSQvLnRlc3QodCkpcmV0dXJuIG9TKGUsbil9fShlLG4pfHxmdW5jdGlvbigpe3Rocm93IFR5cGVFcnJvcihcIkludmFsaWQgYXR0ZW1wdCB0byBkZXN0cnVjdHVyZSBub24taXRlcmFibGUgaW5zdGFuY2UuXFxcXG5JbiBvcmRlciB0byBiZSBpdGVyYWJsZSwgbm9uLWFycmF5IG9iamVjdHMgbXVzdCBoYXZlIGEgW1N5bWJvbC5pdGVyYXRvcl0oKSBtZXRob2QuXCIpfSgpfXZhciBvej1mdW5jdGlvbigpe2Zvcih2YXIgZT1hcmd1bWVudHMubGVuZ3RoLG49QXJyYXkoZSksdD0wO3Q8ZTt0Kyspblt0XT1hcmd1bWVudHNbdF07cmV0dXJuIGZ1bmN0aW9uKGUpe24uZm9yRWFjaChmdW5jdGlvbihuKXtcImZ1bmN0aW9uXCI9PXR5cGVvZiBuP24oZSk6biYmKG4uY3VycmVudD1lKX0pfX07ZnVuY3Rpb24gb0woZSl7dmFyIG4sdCxyPWUubm9kZVN0YXRlLG89ZS5ib3VuZGFyaWVzLGE9ci5wYWdlUGF0aCxpPXIuYm91bmRhcnlUeXBlLHM9ci5zZXRCb3VuZGFyeVR5cGUsYz1vUCgoMCxDLnVzZVN0YXRlKSghMSksMiksdT1jWzBdLGQ9Y1sxXSxmPW9QKCgwLEMudXNlU3RhdGUpKGZ1bmN0aW9uKCl7cmV0dXJuIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoXCJuZXh0anMtcG9ydGFsXCIpLnNoYWRvd1Jvb3R9KSwxKVswXSxwPSgwLEMudXNlUmVmKShmKSxoPSgwLEMudXNlUmVmKShudWxsKSxnPSgwLEMudXNlUmVmKShudWxsKTsoMCxvQy5POCkoZyxoLHUsZnVuY3Rpb24oKXtkKCExKX0sbnVsbD09KG49aC5jdXJyZW50KT92b2lkIDA6bi5vd25lckRvY3VtZW50KTt2YXIgbT1PYmplY3QudmFsdWVzKG8pLmZpbmQoZnVuY3Rpb24oZSl7cmV0dXJuIG51bGwhPT1lfSksdj1tP251bGw9PSh0PW0uc3BsaXQoXCIuXCIpKT92b2lkIDA6dC5wb3AoKTpcImpzXCIsYj0oMCxDLnVzZU1lbW8pKGZ1bmN0aW9uKCl7cmV0dXJuIE9iamVjdC5mcm9tRW50cmllcyhPYmplY3QuZW50cmllcyhvKS5tYXAoZnVuY3Rpb24oZSl7dmFyIG49b1AoZSwyKSx0PW5bMF0scj1vaygoblsxXXx8XCJcIikuc3BsaXQoXCIvXCIpLnBvcCgpfHxcIlwiLmNvbmNhdCh0LFwiLlwiKS5jb25jYXQodikpO3JldHVyblt0LHJdfSkpfSxbbyx2XSkseT0oYXx8XCJcIikuc3BsaXQoXCIvXCIpLnBvcCgpfHxcIlwiLHg9b2soaT9cInBhZ2UuXCIuY29uY2F0KHYpOnl8fFwicGFnZS5cIi5jb25jYXQodikpLHc9W3tsYWJlbDpiLmxvYWRpbmcsdmFsdWU6XCJsb2FkaW5nXCIsaWNvbjooMCxsLmpzeCkob1Qse30pLGRpc2FibGVkOiFvLmxvYWRpbmd9LHtsYWJlbDpiLmVycm9yLHZhbHVlOlwiZXJyb3JcIixpY29uOigwLGwuanN4KShvUix7fSksZGlzYWJsZWQ6IW8uZXJyb3J9LHtsYWJlbDpiW1wibm90LWZvdW5kXCJdLHZhbHVlOlwibm90LWZvdW5kXCIsaWNvbjooMCxsLmpzeCkob04se30pLGRpc2FibGVkOiFvW1wibm90LWZvdW5kXCJdfV0saj17bGFiZWw6aT9cIlJlc2V0XCI6eCx2YWx1ZTpcInJlc2V0XCIsaWNvbjooMCxsLmpzeCkob0Qse30pLGRpc2FibGVkOm51bGw9PT1pfSxrPSgwLEMudXNlQ2FsbGJhY2spKGZ1bmN0aW9uKGUpe3ZhciBuPW5ldyBVUkxTZWFyY2hQYXJhbXMoe2ZpbGU6ZS5maWxlUGF0aCxpc0FwcFJlbGF0aXZlUGF0aDpcIjFcIn0pO2ZldGNoKFwiXCIuY29uY2F0KHByb2Nlc3MuZW52Ll9fTkVYVF9ST1VURVJfQkFTRVBBVEh8fFwiXCIsXCIvX19uZXh0anNfbGF1bmNoLWVkaXRvcj9cIikuY29uY2F0KG4udG9TdHJpbmcoKSkpLmNhdGNoKGNvbnNvbGUud2Fybil9LFtdKSxBPSgwLEMudXNlQ2FsbGJhY2spKGZ1bmN0aW9uKGUpe3N3aXRjaChlKXtjYXNlXCJub3QtZm91bmRcIjpjYXNlXCJsb2FkaW5nXCI6Y2FzZVwiZXJyb3JcIjpzKGUpO2JyZWFrO2Nhc2VcInJlc2V0XCI6cyhudWxsKTticmVhaztjYXNlXCJvcGVuLWVkaXRvclwiOmEmJmsoe2ZpbGVQYXRoOmF9KX19LFtzLGEsa10pLE89KDAsQy51c2VNZW1vKShmdW5jdGlvbigpe3JldHVyblwibGF5b3V0XCIhPT1yLnR5cGUmJlwidGVtcGxhdGVcIiE9PXIudHlwZSYmT2JqZWN0LnZhbHVlcyhvKS5zb21lKGZ1bmN0aW9uKGUpe3JldHVybiBudWxsIT09ZX0pfSxbci50eXBlLG9dKTtyZXR1cm4oMCxsLmpzeHMpKHR2LHtkZWxheTowLG1vZGFsOiExLG9wZW46dSxvbk9wZW5DaGFuZ2U6ZCxjaGlsZHJlbjpbKDAsbC5qc3gpKHRXLHtjbGFzc05hbWU6XCJzZWdtZW50LWJvdW5kYXJ5LXRyaWdnZXJcIixcImRhdGEtbmV4dGpzLWRldi1vdmVybGF5LXNlZ21lbnQtYm91bmRhcnktdHJpZ2dlci1idXR0b25cIjohMCxyZW5kZXI6ZnVuY3Rpb24oZSl7dmFyIG49b3ooZS5yZWYsaCk7cmV0dXJuKDAsbC5qc3gpKG9NLG9fKG9FKHt9LGUpLHtyZWY6bn0pKX0sZGlzYWJsZWQ6IU99KSwoMCxsLmpzeCkocmsse2NvbnRhaW5lcjpwLGNoaWxkcmVuOigwLGwuanN4KShvZSx7Y2xhc3NOYW1lOlwic2VnbWVudC1ib3VuZGFyeS1kcm9wZG93bi1wb3NpdGlvbmVyXCIsc2lkZTpcImJvdHRvbVwiLGFsaWduOlwiY2VudGVyXCIsc2lkZU9mZnNldDo2LGFycm93UGFkZGluZzo4LHJlZjpnLGNoaWxkcmVuOigwLGwuanN4cykob2gse2NsYXNzTmFtZTpcInNlZ21lbnQtYm91bmRhcnktZHJvcGRvd25cIixjaGlsZHJlbjpbKDAsbC5qc3hzKShvbSx7Y2hpbGRyZW46WygwLGwuanN4KShvYix7Y2xhc3NOYW1lOlwic2VnbWVudC1ib3VuZGFyeS1ncm91cC1sYWJlbFwiLGNoaWxkcmVuOlwiVG9nZ2xlIE92ZXJyaWRlc1wifSksdy5tYXAoZnVuY3Rpb24oZSl7cmV0dXJuKDAsbC5qc3hzKShvdyx7Y2xhc3NOYW1lOlwic2VnbWVudC1ib3VuZGFyeS1kcm9wZG93bi1pdGVtXCIsb25DbGljazpmdW5jdGlvbigpe3JldHVybiBBKGUudmFsdWUpfSxkaXNhYmxlZDplLmRpc2FibGVkLGNoaWxkcmVuOltlLmljb24sZS5sYWJlbF19LGUudmFsdWUpfSldfSksKDAsbC5qc3gpKG9tLHtjaGlsZHJlbjooMCxsLmpzeHMpKG93LHtjbGFzc05hbWU6XCJzZWdtZW50LWJvdW5kYXJ5LWRyb3Bkb3duLWl0ZW1cIixvbkNsaWNrOmZ1bmN0aW9uKCl7cmV0dXJuIEEoai52YWx1ZSl9LGRpc2FibGVkOmouZGlzYWJsZWQsY2hpbGRyZW46W2ouaWNvbixqLmxhYmVsXX0sai52YWx1ZSl9KV19KX0pfSldfSl9ZnVuY3Rpb24gb1QoKXtyZXR1cm4oMCxsLmpzeHMpKFwic3ZnXCIse3dpZHRoOlwiMjBweFwiLGhlaWdodDpcIjIwcHhcIix2aWV3Qm94OlwiMCAwIDIwIDIwXCIsZmlsbDpcIm5vbmVcIix4bWxuczpcImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIsY2hpbGRyZW46WygwLGwuanN4KShcImdcIix7Y2xpcFBhdGg6XCJ1cmwoI2NsaXAwXzI3NTlfMTg2NilcIixjaGlsZHJlbjooMCxsLmpzeCkoXCJwYXRoXCIse2ZpbGxSdWxlOlwiZXZlbm9kZFwiLGNsaXBSdWxlOlwiZXZlbm9kZFwiLGQ6XCJNMTAgMy41QzEzLjU4OTkgMy41IDE2LjUgNi40MTAxNSAxNi41IDEwQzE2LjUgMTMuNTg5OSAxMy41ODk5IDE2LjUgMTAgMTYuNUM2LjQxMDE1IDE2LjUgMy41IDEzLjU4OTkgMy41IDEwQzMuNSA2LjQxMDE1IDYuNDEwMTUgMy41IDEwIDMuNVpNMiAxMEMyIDE0LjQxODMgNS41ODE3MiAxOCAxMCAxOEMxNC40MTgzIDE4IDE4IDE0LjQxODMgMTggMTBDMTggNS41ODE3MiAxNC40MTgzIDIgMTAgMkM1LjU4MTcyIDIgMiA1LjU4MTcyIDIgMTBaTTEwLjc1IDkuNjI0MDJWNkg5LjI1VjkuODc1QzkuMjUgMTAuMTg5OCA5LjM5ODU4IDEwLjQ4NiA5LjY1MDM5IDEwLjY3NDhMMTEuNTQ5OCAxMi4wOTk2TDEyLjE1MDQgMTIuNTQ5OEwxMy4wNDk4IDExLjM0OTZMMTIuNDUwMiAxMC45MDA0TDEwLjc1IDkuNjI0MDJaXCIsZmlsbDpcImN1cnJlbnRDb2xvclwifSl9KSwoMCxsLmpzeCkoXCJkZWZzXCIse2NoaWxkcmVuOigwLGwuanN4KShcImNsaXBQYXRoXCIse2lkOlwiY2xpcDBfMjc1OV8xODY2XCIsY2hpbGRyZW46KDAsbC5qc3gpKFwicmVjdFwiLHt3aWR0aDpcIjE2XCIsaGVpZ2h0OlwiMTZcIixmaWxsOlwid2hpdGVcIix0cmFuc2Zvcm06XCJ0cmFuc2xhdGUoMiAyKVwifSl9KX0pXX0pfWZ1bmN0aW9uIG9SKCl7cmV0dXJuKDAsbC5qc3hzKShcInN2Z1wiLHt3aWR0aDpcIjIwXCIsaGVpZ2h0OlwiMjBcIix2aWV3Qm94OlwiMCAwIDIwIDIwXCIsZmlsbDpcIm5vbmVcIix4bWxuczpcImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIsY2hpbGRyZW46WygwLGwuanN4KShcImdcIix7Y2xpcFBhdGg6XCJ1cmwoI2NsaXAwXzI3NTlfMTg4MSlcIixjaGlsZHJlbjooMCxsLmpzeCkoXCJwYXRoXCIse2ZpbGxSdWxlOlwiZXZlbm9kZFwiLGNsaXBSdWxlOlwiZXZlbm9kZFwiLGQ6XCJNMy41IDcuMzA3NjJWMTIuNjkyNEw3LjMwNzYyIDE2LjVIMTIuNjkyNEwxNi41IDEyLjY5MjRWNy4zMDc2MkwxMi42OTI0IDMuNUg3LjMwNzYyTDMuNSA3LjMwNzYyWk0xOCAxMi44OTk0TDE3Ljk5NTEgMTIuOTk4QzE3Ljk3MjQgMTMuMjI3MSAxNy44NzEyIDEzLjQ0MjMgMTcuNzA3IDEzLjYwNjRMMTMuNjA2NCAxNy43MDdMMTMuNTMzMiAxNy43NzM0QzEzLjM4MDYgMTcuODk4NSAxMy4xOTQ0IDE3Ljk3NTcgMTIuOTk4IDE3Ljk5NTFMMTIuODk5NCAxOEg3LjEwMDU5TDcuMDAxOTUgMTcuOTk1MUM2LjgwNTYyIDE3Ljk3NTcgNi42MTk0IDE3Ljg5ODUgNi40NjY4IDE3Ljc3MzRMNi4zOTM1NSAxNy43MDdMMi4yOTI5NyAxMy42MDY0QzIuMTI4ODMgMTMuNDQyMyAyLjAyNzU2IDEzLjIyNzEgMi4wMDQ4OCAxMi45OThMMiAxMi44OTk0VjcuMTAwNTlDMiA2LjgzNTM5IDIuMTA1NDYgNi41ODEwOSAyLjI5Mjk3IDYuMzkzNTVMNi4zOTM1NSAyLjI5Mjk3QzYuNTU3NzEgMi4xMjg4MyA2Ljc3Mjk0IDIuMDI3NTYgNy4wMDE5NSAyLjAwNDg4TDcuMTAwNTkgMkgxMi44OTk0TDEyLjk5OCAyLjAwNDg4QzEzLjIyNzEgMi4wMjc1NiAxMy40NDIzIDIuMTI4ODMgMTMuNjA2NCAyLjI5Mjk3TDE3LjcwNyA2LjM5MzU1QzE3Ljg5NDUgNi41ODEwOSAxOCA2LjgzNTM5IDE4IDcuMTAwNTlWMTIuODk5NFpNOS4yNSA1Ljc1SDEwLjc1TDEwLjc1IDEwLjc1SDkuMjVMOS4yNSA1Ljc1Wk0xMCAxNEMxMC41NTIzIDE0IDExIDEzLjU1MjMgMTEgMTNDMTEgMTIuNDQ3NyAxMC41NTIzIDEyIDEwIDEyQzkuNDQ3NzIgMTIgOSAxMi40NDc3IDkgMTNDOSAxMy41NTIzIDkuNDQ3NzIgMTQgMTAgMTRaXCIsZmlsbDpcImN1cnJlbnRDb2xvclwifSl9KSwoMCxsLmpzeCkoXCJkZWZzXCIse2NoaWxkcmVuOigwLGwuanN4KShcImNsaXBQYXRoXCIse2lkOlwiY2xpcDBfMjc1OV8xODgxXCIsY2hpbGRyZW46KDAsbC5qc3gpKFwicmVjdFwiLHt3aWR0aDpcIjE2XCIsaGVpZ2h0OlwiMTZcIixmaWxsOlwid2hpdGVcIix0cmFuc2Zvcm06XCJ0cmFuc2xhdGUoMiAyKVwifSl9KX0pXX0pfWZ1bmN0aW9uIG9OKCl7cmV0dXJuKDAsbC5qc3gpKFwic3ZnXCIse3dpZHRoOlwiMjBweFwiLGhlaWdodDpcIjIwcHhcIix2aWV3Qm94OlwiMCAwIDIwIDIwXCIsZmlsbDpcIm5vbmVcIix4bWxuczpcImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIsY2hpbGRyZW46KDAsbC5qc3gpKFwicGF0aFwiLHtmaWxsUnVsZTpcImV2ZW5vZGRcIixjbGlwUnVsZTpcImV2ZW5vZGRcIixkOlwiTTEwLjU1ODYgMi41QzExLjEzNDEgMi41MDAwNCAxMS42NTg4IDIuODI5NCAxMS45MDkxIDMuMzQ3NjZMMTcuODA3NiAxNS41NjU0QzE4LjEyNzggMTYuMjI5MiAxNy42NDQyIDE2Ljk5OTcgMTYuOTA3MiAxN0gzLjA5Mjc0QzIuMzU1NzQgMTYuOTk5NyAxLjg3MjEgMTYuMjI5MiAyLjE5MjM1IDE1LjU2NTRMOC4wOTA3OSAzLjM0NzY2QzguMzQxMDkgMi44Mjk0IDguODY1ODMgMi41MDAwNCA5LjQ0MTM3IDIuNUgxMC41NTg2Wk0zLjg5MDU5IDE1LjVIMTYuMTA5M0wxMC41NTg2IDRIOS40NDEzN0wzLjg5MDU5IDE1LjVaTTkuMjQ5OTcgNi43NUgxMC43NUwxMC43NSAxMC43NUg5LjI0OTk3TDkuMjQ5OTcgNi43NVpNOS45OTk5NyAxNEMxMC41NTIzIDE0IDExIDEzLjU1MjMgMTEgMTNDMTEgMTIuNDQ3NyAxMC41NTIzIDEyIDkuOTk5OTcgMTJDOS40NDc2OCAxMiA4Ljk5OTk3IDEyLjQ0NzcgOC45OTk5NyAxM0M4Ljk5OTk3IDEzLjU1MjMgOS40NDc2OCAxNCA5Ljk5OTk3IDE0WlwiLGZpbGw6XCJjdXJyZW50Q29sb3JcIn0pfSl9ZnVuY3Rpb24gb0QoKXtyZXR1cm4oMCxsLmpzeCkoXCJzdmdcIix7d2lkdGg6XCIyMFwiLGhlaWdodDpcIjIwXCIsdmlld0JveDpcIjAgMCAyMCAyMFwiLGZpbGw6XCJub25lXCIseG1sbnM6XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiLGNoaWxkcmVuOigwLGwuanN4KShcInBhdGhcIix7ZDpcIk05Ljk2NDg0IDNDMTMuODQ2MyAzLjAwMDE4IDE3IDYuMTMwMTIgMTcgMTBDMTcgMTMuODY5OSAxMy44NDYzIDE2Ljk5OTggOS45NjQ4NCAxN0M3LjYyNDA0IDE3IDUuNTQ4NzcgMTUuODYxNyA0LjI3MDUxIDE0LjExMjNMMy44MjgxMiAxMy41MDY4TDUuMDM5MDYgMTIuNjIyMUw1LjQ4MTQ1IDEzLjIyNzVDNi40ODgxNSAxNC42MDUzIDguMTIwOTIgMTUuNSA5Ljk2NDg0IDE1LjVDMTMuMDI1OSAxNS40OTk4IDE1LjUgMTMuMDMzNSAxNS41IDEwQzE1LjUgNi45NjY1NCAxMy4wMjU5IDQuNTAwMTggOS45NjQ4NCA0LjVDNy40MjkwNSA0LjUgNS4yOTU0NCA2LjE5NDI5IDQuNjM4NjcgOC41SDhWMTBIMi43NUMyLjMzNTc5IDEwIDIgOS42NjQyMSAyIDkuMjVWNEgzLjVWNy4yMzczQzQuNTc3ODEgNC43NDM3NiA3LjA2NzQ5IDMgOS45NjQ4NCAzWlwiLGZpbGw6XCJjdXJyZW50Q29sb3JcIn0pfSl9ZnVuY3Rpb24gb0IoZSl7cmV0dXJuKDAsbC5qc3gpKFwic3ZnXCIsb18ob0Uoe3N0cm9rZUxpbmVqb2luOlwicm91bmRcIix2aWV3Qm94OlwiMCAwIDE2IDE2XCJ9LGUpLHtjaGlsZHJlbjooMCxsLmpzeCkoXCJwYXRoXCIse2ZpbGxSdWxlOlwiZXZlbm9kZFwiLGNsaXBSdWxlOlwiZXZlbm9kZFwiLGQ6XCJNOC43MDcxIDIuMzk2NDRDOC4zMTY1OCAyLjAwNTkyIDcuNjgzNDEgMi4wMDU5MiA3LjI5Mjg5IDIuMzk2NDRMNC40Njk2NiA1LjIxOTY2TDMuOTM5MzMgNS43NDk5OUw0Ljk5OTk5IDYuODEwNjVMNS41MzAzMiA2LjI4MDMyTDcuOTk5OTkgMy44MTA2NUwxMC40Njk3IDYuMjgwMzJMMTEgNi44MTA2NUwxMi4wNjA3IDUuNzQ5OTlMMTEuNTMwMyA1LjIxOTY2TDguNzA3MSAyLjM5NjQ0Wk01LjUzMDMyIDkuNzE5NjZMNC45OTk5OSA5LjE4OTMzTDMuOTM5MzMgMTAuMjVMNC40Njk2NiAxMC43ODAzTDcuMjkyODkgMTMuNjAzNUM3LjY4MzQxIDEzLjk5NDEgOC4zMTY1OCAxMy45OTQxIDguNzA3MSAxMy42MDM1TDExLjUzMDMgMTAuNzgwM0wxMi4wNjA3IDEwLjI1TDExIDkuMTg5MzNMMTAuNDY5NyA5LjcxOTY2TDcuOTk5OTkgMTIuMTg5M0w1LjUzMDMyIDkuNzE5NjZaXCIsZmlsbDpcImN1cnJlbnRDb2xvclwifSl9KSl9ZnVuY3Rpb24gb00oZSl7cmV0dXJuKDAsbC5qc3gpKFwiYnV0dG9uXCIsb18ob0Uoe30sZSkse2NoaWxkcmVuOigwLGwuanN4KShcInNwYW5cIix7Y2xhc3NOYW1lOlwic2VnbWVudC1ib3VuZGFyeS10cmlnZ2VyLXRleHRcIixjaGlsZHJlbjooMCxsLmpzeCkob0Ise2NsYXNzTmFtZTpcInBsdXMtaWNvblwifSl9KX0pKX1sZXQgb0k9Qy5jcmVhdGVDb250ZXh0KHtoYXNQcm92aWRlcjohMSx0aW1lb3V0TXM6MCxkZWxheVJlZjp7Y3VycmVudDowfSxpbml0aWFsRGVsYXlSZWY6e2N1cnJlbnQ6MH0sdGltZW91dDpuZXcgZWosY3VycmVudElkUmVmOntjdXJyZW50Om51bGx9LGN1cnJlbnRDb250ZXh0UmVmOntjdXJyZW50Om51bGx9fSk7ZnVuY3Rpb24gb0goZSl7bGV0e2NoaWxkcmVuOm4sZGVsYXk6dCx0aW1lb3V0TXM6cj0wfT1lLG89Qy51c2VSZWYodCksYT1DLnVzZVJlZih0KSxpPUMudXNlUmVmKG51bGwpLHM9Qy51c2VSZWYobnVsbCksYz1laygpO3JldHVybigwLGwuanN4KShvSS5Qcm92aWRlcix7dmFsdWU6Qy51c2VNZW1vKCgpPT4oe2hhc1Byb3ZpZGVyOiEwLGRlbGF5UmVmOm8saW5pdGlhbERlbGF5UmVmOmEsY3VycmVudElkUmVmOmksdGltZW91dE1zOnIsY3VycmVudENvbnRleHRSZWY6cyx0aW1lb3V0OmN9KSxbcixjXSksY2hpbGRyZW46bn0pfWxldCBvRj1DLmNyZWF0ZUNvbnRleHQodm9pZCAwKSxvVT1mdW5jdGlvbihlKXtsZXR7ZGVsYXk6bixjbG9zZURlbGF5OnQsdGltZW91dDpyPTQwMH09ZSxvPUMudXNlTWVtbygoKT0+KHtkZWxheTpuLGNsb3NlRGVsYXk6dH0pLFtuLHRdKTtyZXR1cm4oMCxsLmpzeCkob0YuUHJvdmlkZXIse3ZhbHVlOm8sY2hpbGRyZW46KDAsbC5qc3gpKG9ILHtkZWxheTp7b3BlbjpuLGNsb3NlOnR9LHRpbWVvdXRNczpyLGNoaWxkcmVuOmUuY2hpbGRyZW59KX0pfSxvVj1DLmNyZWF0ZUNvbnRleHQodm9pZCAwKTtmdW5jdGlvbiBvcSgpe2xldCBlPUMudXNlQ29udGV4dChvVik7aWYodm9pZCAwPT09ZSl0aHJvdyBFcnJvcihcIkJhc2UgVUk6IFRvb2x0aXBSb290Q29udGV4dCBpcyBtaXNzaW5nLiBUb29sdGlwIHBhcnRzIG11c3QgYmUgcGxhY2VkIHdpdGhpbiA8VG9vbHRpcC5Sb290Pi5cIik7cmV0dXJuIGV9ZnVuY3Rpb24gb1coZSl7cmV0dXJuIG51bGwhPWUmJm51bGwhPWUuY2xpZW50WH1mdW5jdGlvbiBvJChlKXtsZXR7ZGlzYWJsZWQ6bj0hMSxkZWZhdWx0T3Blbjp0PSExLG9uT3BlbkNoYW5nZTpyLG9wZW46byxkZWxheTphLGNsb3NlRGVsYXk6aSxob3ZlcmFibGU6cz0hMCx0cmFja0N1cnNvckF4aXM6Yz1cIm5vbmVcIixhY3Rpb25zUmVmOnUsb25PcGVuQ2hhbmdlQ29tcGxldGU6ZH09ZSxmPWE/PzYwMCxwPWk/PzAsW2gsZ109Qy51c2VTdGF0ZShudWxsKSxbbSx2XT1DLnVzZVN0YXRlKG51bGwpLFtiLHldPUMudXNlU3RhdGUoKSx4PUMudXNlUmVmKG51bGwpLFt3LGpdPW40KHtjb250cm9sbGVkOm8sZGVmYXVsdDp0LG5hbWU6XCJUb29sdGlwXCIsc3RhdGU6XCJvcGVuXCJ9KSxrPVQociksQT1UKChlLG4sdCk9PntsZXQgcj1cInRyaWdnZXItaG92ZXJcIj09PXQsbz1lJiZcInRyaWdnZXItZm9jdXNcIj09PXQsYT0hZSYmKFwidHJpZ2dlci1wcmVzc1wiPT09dHx8XCJlc2NhcGUta2V5XCI9PT10KTtmdW5jdGlvbiBpKCl7ayhlLG4sdCksaihlKX1yP0UuZmx1c2hTeW5jKGkpOmkoKSxvfHxhP3kobz9cImZvY3VzXCI6XCJkaXNtaXNzXCIpOlwidHJpZ2dlci1ob3ZlclwiPT09dCYmeSh2b2lkIDApfSk7dyYmbiYmQSghMSx2b2lkIDAsXCJkaXNhYmxlZFwiKTtsZXR7bW91bnRlZDpPLHNldE1vdW50ZWQ6Uyx0cmFuc2l0aW9uU3RhdHVzOl99PW4yKHcpLFA9VCgoKT0+e1MoITEpLGQ/LighMSl9KTtuNSh7ZW5hYmxlZDohdSxvcGVuOncscmVmOngsb25Db21wbGV0ZSgpe3d8fFAoKX19KSxDLnVzZUltcGVyYXRpdmVIYW5kbGUodSwoKT0+KHt1bm1vdW50OlB9KSxbUF0pO2xldCB6PVkoe2VsZW1lbnRzOntyZWZlcmVuY2U6aCxmbG9hdGluZzptfSxvcGVuOncsb25PcGVuQ2hhbmdlKGUsbix0KXtBKGUsbix0cih0KSl9fSksTD1DLnVzZUNvbnRleHQob0YpLHtkZWxheVJlZjpSLGlzSW5zdGFudFBoYXNlOk4saGFzUHJvdmlkZXI6RH09ZnVuY3Rpb24oZSxuPXt9KXtsZXR7b3Blbjp0LG9uT3BlbkNoYW5nZTpyLGZsb2F0aW5nSWQ6b309ZSx7ZW5hYmxlZDphPSEwfT1uLHtjdXJyZW50SWRSZWY6aSxkZWxheVJlZjpsLHRpbWVvdXRNczpzLGluaXRpYWxEZWxheVJlZjpjLGN1cnJlbnRDb250ZXh0UmVmOnUsaGFzUHJvdmlkZXI6ZCx0aW1lb3V0OmZ9PUMudXNlQ29udGV4dChvSSksW3AsaF09Qy51c2VTdGF0ZSghMSk7cmV0dXJuIEYoKCk9PntmdW5jdGlvbiBlKCl7aCghMSksdS5jdXJyZW50Py5zZXRJc0luc3RhbnRQaGFzZSghMSksaS5jdXJyZW50PW51bGwsdS5jdXJyZW50PW51bGwsbC5jdXJyZW50PWMuY3VycmVudH1pZihhJiZpLmN1cnJlbnQmJiF0JiZpLmN1cnJlbnQ9PT1vKXtpZihoKCExKSxzKXJldHVybiBmLnN0YXJ0KHMsZSksKCk9PntmLmNsZWFyKCl9O2UoKX19LFthLHQsbyxpLGwscyxjLHUsZl0pLEYoKCk9PntpZighYXx8IXQpcmV0dXJuO2xldCBlPXUuY3VycmVudCxuPWkuY3VycmVudDt1LmN1cnJlbnQ9e29uT3BlbkNoYW5nZTpyLHNldElzSW5zdGFudFBoYXNlOmh9LGkuY3VycmVudD1vLGwuY3VycmVudD17b3BlbjowLGNsb3NlOmU0KGMuY3VycmVudCxcImNsb3NlXCIpfSxudWxsIT09biYmbiE9PW8/KGYuY2xlYXIoKSxoKCEwKSxlPy5zZXRJc0luc3RhbnRQaGFzZSghMCksZT8ub25PcGVuQ2hhbmdlKCExKSk6KGgoITEpLGU/LnNldElzSW5zdGFudFBoYXNlKCExKSl9LFthLHQsbyxyLGksbCxzLGMsdSxmXSksRigoKT0+KCk9Pnt1LmN1cnJlbnQ9bnVsbH0sW3VdKSxDLnVzZU1lbW8oKCk9Pih7aGFzUHJvdmlkZXI6ZCxkZWxheVJlZjpsLGlzSW5zdGFudFBoYXNlOnB9KSxbZCxsLHBdKX0oeiksQj1OP1wiZGVsYXlcIjpiLE09ZTMoeix7ZW5hYmxlZDohbixtb3VzZU9ubHk6ITAsbW92ZTohMSxoYW5kbGVDbG9zZTpzJiZcImJvdGhcIiE9PWM/ZTcoKTpudWxsLHJlc3RNcygpe2xldCBlPUw/LmRlbGF5LG49XCJvYmplY3RcIj09dHlwZW9mIFIuY3VycmVudD9SLmN1cnJlbnQub3Blbjp2b2lkIDAsdD1mO3JldHVybiBEJiYodD0wIT09bj9hPz9lPz9mOjApLHR9LGRlbGF5KCl7bGV0IGU9XCJvYmplY3RcIj09dHlwZW9mIFIuY3VycmVudD9SLmN1cnJlbnQuY2xvc2U6dm9pZCAwLG49cDtyZXR1cm4gbnVsbD09aSYmRCYmKG49ZSkse2Nsb3NlOm59fX0pLEk9bm4oeix7ZW5hYmxlZDohbn0pLHtnZXRSZWZlcmVuY2VQcm9wczpILGdldEZsb2F0aW5nUHJvcHM6VX09bksoW00sSSxuZih6LHtlbmFibGVkOiFuLHJlZmVyZW5jZVByZXNzOiEwfSksZnVuY3Rpb24oZSxuPXt9KXtsZXR7b3Blbjp0LGRhdGFSZWY6cixlbGVtZW50czp7ZmxvYXRpbmc6byxkb21SZWZlcmVuY2U6YX0scmVmczppfT1lLHtlbmFibGVkOmw9ITAsYXhpczpzPVwiYm90aFwiLHg6Yz1udWxsLHk6dT1udWxsfT1uLGQ9Qy51c2VSZWYoITEpLGY9Qy51c2VSZWYobnVsbCksW3AsaF09Qy51c2VTdGF0ZSgpLFtnLG1dPUMudXNlU3RhdGUoW10pLHY9VCgoZSxuKT0+e2lmKCFkLmN1cnJlbnQmJighci5jdXJyZW50Lm9wZW5FdmVudHx8b1coci5jdXJyZW50Lm9wZW5FdmVudCkpKXt2YXIgdDtsZXQgbyxsLGM7aS5zZXRQb3NpdGlvblJlZmVyZW5jZSgodD17eDplLHk6bixheGlzOnMsZGF0YVJlZjpyLHBvaW50ZXJUeXBlOnB9LG89bnVsbCxsPW51bGwsYz0hMSx7Y29udGV4dEVsZW1lbnQ6YXx8dm9pZCAwLGdldEJvdW5kaW5nQ2xpZW50UmVjdCgpe2xldCBlPWE/LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpfHx7d2lkdGg6MCxoZWlnaHQ6MCx4OjAseTowfSxuPVwieFwiPT09dC5heGlzfHxcImJvdGhcIj09PXQuYXhpcyxyPVwieVwiPT09dC5heGlzfHxcImJvdGhcIj09PXQuYXhpcyxpPVtcIm1vdXNlZW50ZXJcIixcIm1vdXNlbW92ZVwiXS5pbmNsdWRlcyh0LmRhdGFSZWYuY3VycmVudC5vcGVuRXZlbnQ/LnR5cGV8fFwiXCIpJiZcInRvdWNoXCIhPT10LnBvaW50ZXJUeXBlLHM9ZS53aWR0aCx1PWUuaGVpZ2h0LGQ9ZS54LGY9ZS55O3JldHVybiBudWxsPT1vJiZ0LngmJm4mJihvPWUueC10LngpLG51bGw9PWwmJnQueSYmciYmKGw9ZS55LXQueSksZC09b3x8MCxmLT1sfHwwLHM9MCx1PTAsIWN8fGk/KHM9XCJ5XCI9PT10LmF4aXM/ZS53aWR0aDowLHU9XCJ4XCI9PT10LmF4aXM/ZS5oZWlnaHQ6MCxkPW4mJm51bGwhPXQueD90Lng6ZCxmPXImJm51bGwhPXQueT90Lnk6Zik6YyYmIWkmJih1PVwieFwiPT09dC5heGlzP2UuaGVpZ2h0OnUscz1cInlcIj09PXQuYXhpcz9lLndpZHRoOnMpLGM9ITAse3dpZHRoOnMsaGVpZ2h0OnUseDpkLHk6Zix0b3A6ZixyaWdodDpkK3MsYm90dG9tOmYrdSxsZWZ0OmR9fX0pKX19KSxiPVQoZT0+e251bGw9PWMmJm51bGw9PXUmJih0P2YuY3VycmVudHx8bShbXSk6dihlLmNsaWVudFgsZS5jbGllbnRZKSl9KSx5PWVJKHApP286dCx4PUMudXNlQ2FsbGJhY2soKCk9PntpZigheXx8IWx8fG51bGwhPWN8fG51bGwhPXUpcmV0dXJuO2xldCBlPVEobyk7ZnVuY3Rpb24gbih0KXtlWShvLGVYKHQpKT8oZS5yZW1vdmVFdmVudExpc3RlbmVyKFwibW91c2Vtb3ZlXCIsbiksZi5jdXJyZW50PW51bGwpOnYodC5jbGllbnRYLHQuY2xpZW50WSl9aWYoIXIuY3VycmVudC5vcGVuRXZlbnR8fG9XKHIuY3VycmVudC5vcGVuRXZlbnQpKXtlLmFkZEV2ZW50TGlzdGVuZXIoXCJtb3VzZW1vdmVcIixuKTtsZXQgdD0oKT0+e2UucmVtb3ZlRXZlbnRMaXN0ZW5lcihcIm1vdXNlbW92ZVwiLG4pLGYuY3VycmVudD1udWxsfTtyZXR1cm4gZi5jdXJyZW50PXQsdH1pLnNldFBvc2l0aW9uUmVmZXJlbmNlKGEpfSxbeSxsLGMsdSxvLHIsaSxhLHZdKTtDLnVzZUVmZmVjdCgoKT0+eCgpLFt4LGddKSxDLnVzZUVmZmVjdCgoKT0+e2wmJiFvJiYoZC5jdXJyZW50PSExKX0sW2wsb10pLEMudXNlRWZmZWN0KCgpPT57IWwmJnQmJihkLmN1cnJlbnQ9ITApfSxbbCx0XSksRigoKT0+e2wmJihudWxsIT1jfHxudWxsIT11KSYmKGQuY3VycmVudD0hMSx2KGMsdSkpfSxbbCxjLHUsdl0pO2xldCB3PUMudXNlTWVtbygoKT0+e2Z1bmN0aW9uIGUoZSl7aChlLnBvaW50ZXJUeXBlKX1yZXR1cm57b25Qb2ludGVyRG93bjplLG9uUG9pbnRlckVudGVyOmUsb25Nb3VzZU1vdmU6Yixvbk1vdXNlRW50ZXI6Yn19LFtiXSk7cmV0dXJuIEMudXNlTWVtbygoKT0+bD97cmVmZXJlbmNlOnd9Ont9LFtsLHddKX0oeix7ZW5hYmxlZDohbiYmXCJub25lXCIhPT1jLGF4aXM6XCJub25lXCI9PT1jP3ZvaWQgMDpjfSldKSxWPUMudXNlTWVtbygoKT0+KHtvcGVuOncsc2V0T3BlbjpBLG1vdW50ZWQ6TyxzZXRNb3VudGVkOlMsc2V0VHJpZ2dlckVsZW1lbnQ6Zyxwb3NpdGlvbmVyRWxlbWVudDptLHNldFBvc2l0aW9uZXJFbGVtZW50OnYscG9wdXBSZWY6eCx0cmlnZ2VyUHJvcHM6SCgpLHBvcHVwUHJvcHM6VSgpLGZsb2F0aW5nUm9vdENvbnRleHQ6eixpbnN0YW50VHlwZTpCLHRyYW5zaXRpb25TdGF0dXM6Xyxvbk9wZW5DaGFuZ2VDb21wbGV0ZTpkfSksW3csQSxPLFMsZyxtLHYseCxILFUseixCLF8sZF0pLHE9Qy51c2VNZW1vKCgpPT4oey4uLlYsZGVsYXk6ZixjbG9zZURlbGF5OnAsdHJhY2tDdXJzb3JBeGlzOmMsaG92ZXJhYmxlOnN9KSxbVixmLHAsYyxzXSk7cmV0dXJuKDAsbC5qc3gpKG9WLlByb3ZpZGVyLHt2YWx1ZTpxLGNoaWxkcmVuOmUuY2hpbGRyZW59KX1sZXQgb1o9Qy5mb3J3YXJkUmVmKGZ1bmN0aW9uKGUsbil7bGV0e2NsYXNzTmFtZTp0LHJlbmRlcjpyLC4uLm99PWUse29wZW46YSxzZXRUcmlnZ2VyRWxlbWVudDppLHRyaWdnZXJQcm9wczpsfT1vcSgpO3JldHVybiB0aihcImJ1dHRvblwiLGUse3N0YXRlOkMudXNlTWVtbygoKT0+KHtvcGVuOmF9KSxbYV0pLHJlZjpbbixpXSxwcm9wczpbbCxvXSxjdXN0b21TdHlsZUhvb2tNYXBwaW5nOnRGfSl9KSxvWT1DLmNyZWF0ZUNvbnRleHQodm9pZCAwKTtmdW5jdGlvbiBvWChlKXtsZXQgbj1yeCh7cm9vdDplLnJvb3R9KTtyZXR1cm4gbiYmRS5jcmVhdGVQb3J0YWwoZS5jaGlsZHJlbixuKX1mdW5jdGlvbiBvSyhlKXtsZXR7Y2hpbGRyZW46bixrZWVwTW91bnRlZDp0PSExLGNvbnRhaW5lcjpyfT1lLHttb3VudGVkOm99PW9xKCk7cmV0dXJuIG98fHQ/KDAsbC5qc3gpKG9ZLlByb3ZpZGVyLHt2YWx1ZTp0LGNoaWxkcmVuOigwLGwuanN4KShvWCx7cm9vdDpyLGNoaWxkcmVuOm59KX0pOm51bGx9bGV0IG9RPUMuY3JlYXRlQ29udGV4dCh2b2lkIDApO2Z1bmN0aW9uIG9HKCl7bGV0IGU9Qy51c2VDb250ZXh0KG9RKTtpZih2b2lkIDA9PT1lKXRocm93IEVycm9yKFwiQmFzZSBVSTogVG9vbHRpcFBvc2l0aW9uZXJDb250ZXh0IGlzIG1pc3NpbmcuIFRvb2x0aXBQb3NpdGlvbmVyIHBhcnRzIG11c3QgYmUgcGxhY2VkIHdpdGhpbiA8VG9vbHRpcC5Qb3NpdGlvbmVyPi5cIik7cmV0dXJuIGV9bGV0IG9KPUMuZm9yd2FyZFJlZihmdW5jdGlvbihlLG4pe2xldHtyZW5kZXI6dCxjbGFzc05hbWU6cixhbmNob3I6byxwb3NpdGlvbk1ldGhvZDphPVwiYWJzb2x1dGVcIixzaWRlOmk9XCJ0b3BcIixhbGlnbjpzPVwiY2VudGVyXCIsc2lkZU9mZnNldDpjPTAsYWxpZ25PZmZzZXQ6dT0wLGNvbGxpc2lvbkJvdW5kYXJ5OmQ9XCJjbGlwcGluZy1hbmNlc3RvcnNcIixjb2xsaXNpb25QYWRkaW5nOmY9NSxhcnJvd1BhZGRpbmc6cD01LHN0aWNreTpoPSExLHRyYWNrQW5jaG9yOmc9ITAsY29sbGlzaW9uQXZvaWRhbmNlOm09bmEsLi4udn09ZSx7b3BlbjpiLHNldFBvc2l0aW9uZXJFbGVtZW50OnksbW91bnRlZDp4LGZsb2F0aW5nUm9vdENvbnRleHQ6dyx0cmFja0N1cnNvckF4aXM6aixob3ZlcmFibGU6a309b3EoKSxBPXI0KHthbmNob3I6byxwb3NpdGlvbk1ldGhvZDphLGZsb2F0aW5nUm9vdENvbnRleHQ6dyxtb3VudGVkOngsc2lkZTppLHNpZGVPZmZzZXQ6YyxhbGlnbjpzLGFsaWduT2Zmc2V0OnUsY29sbGlzaW9uQm91bmRhcnk6ZCxjb2xsaXNpb25QYWRkaW5nOmYsc3RpY2t5OmgsYXJyb3dQYWRkaW5nOnAsdHJhY2tBbmNob3I6ZyxrZWVwTW91bnRlZDpmdW5jdGlvbigpe2xldCBlPUMudXNlQ29udGV4dChvWSk7aWYodm9pZCAwPT09ZSl0aHJvdyBFcnJvcihcIkJhc2UgVUk6IDxUb29sdGlwLlBvcnRhbD4gaXMgbWlzc2luZy5cIik7cmV0dXJuIGV9KCksY29sbGlzaW9uQXZvaWRhbmNlOm19KSxPPUMudXNlTWVtbygoKT0+e2xldCBlPXt9O3JldHVybiBiJiZcImJvdGhcIiE9PWomJmt8fChlLnBvaW50ZXJFdmVudHM9XCJub25lXCIpLHtyb2xlOlwicHJlc2VudGF0aW9uXCIsaGlkZGVuOiF4LHN0eWxlOnsuLi5BLnBvc2l0aW9uZXJTdHlsZXMsLi4uZX19fSxbYixqLGsseCxBLnBvc2l0aW9uZXJTdHlsZXNdKSxTPUMudXNlTWVtbygoKT0+KHtwcm9wczpPLC4uLkF9KSxbTyxBXSksRT1DLnVzZU1lbW8oKCk9Pih7b3BlbjpiLHNpZGU6Uy5zaWRlLGFsaWduOlMuYWxpZ24sYW5jaG9ySGlkZGVuOlMuYW5jaG9ySGlkZGVufSksW2IsUy5zaWRlLFMuYWxpZ24sUy5hbmNob3JIaWRkZW5dKSxfPUMudXNlTWVtbygoKT0+KHsuLi5FLGFycm93UmVmOlMuYXJyb3dSZWYsYXJyb3dTdHlsZXM6Uy5hcnJvd1N0eWxlcyxhcnJvd1VuY2VudGVyZWQ6Uy5hcnJvd1VuY2VudGVyZWR9KSxbRSxTLmFycm93UmVmLFMuYXJyb3dTdHlsZXMsUy5hcnJvd1VuY2VudGVyZWRdKSxQPXRqKFwiZGl2XCIsZSx7c3RhdGU6RSxwcm9wczpbUy5wcm9wcyx2XSxyZWY6W24seV0sY3VzdG9tU3R5bGVIb29rTWFwcGluZzp0Vn0pO3JldHVybigwLGwuanN4KShvUS5Qcm92aWRlcix7dmFsdWU6XyxjaGlsZHJlbjpQfSl9KSxvMD17Li4udFYsLi4udFR9LG8xPUMuZm9yd2FyZFJlZihmdW5jdGlvbihlLG4pe2xldHtjbGFzc05hbWU6dCxyZW5kZXI6ciwuLi5vfT1lLHtvcGVuOmEsaW5zdGFudFR5cGU6aSx0cmFuc2l0aW9uU3RhdHVzOmwscG9wdXBQcm9wczpzLHBvcHVwUmVmOmMsb25PcGVuQ2hhbmdlQ29tcGxldGU6dX09b3EoKSx7c2lkZTpkLGFsaWduOmZ9PW9HKCk7cmV0dXJuIG41KHtvcGVuOmEscmVmOmMsb25Db21wbGV0ZSgpe2EmJnU/LighMCl9fSksdGooXCJkaXZcIixlLHtzdGF0ZTpDLnVzZU1lbW8oKCk9Pih7b3BlbjphLHNpZGU6ZCxhbGlnbjpmLGluc3RhbnQ6aSx0cmFuc2l0aW9uU3RhdHVzOmx9KSxbYSxkLGYsaSxsXSkscmVmOltuLGNdLHByb3BzOltzLFwic3RhcnRpbmdcIj09PWw/bnQ6bnIsb10sY3VzdG9tU3R5bGVIb29rTWFwcGluZzpvMH0pfSksbzI9Qy5mb3J3YXJkUmVmKGZ1bmN0aW9uKGUsbil7bGV0e2NsYXNzTmFtZTp0LHJlbmRlcjpyLC4uLm99PWUse29wZW46YSxhcnJvd1JlZjppLHNpZGU6bCxhbGlnbjpzLGFycm93VW5jZW50ZXJlZDpjLGFycm93U3R5bGVzOnV9PW9HKCk7cmV0dXJuIHRqKFwiZGl2XCIsZSx7c3RhdGU6Qy51c2VNZW1vKCgpPT4oe29wZW46YSxzaWRlOmwsYWxpZ246cyx1bmNlbnRlcmVkOmN9KSxbYSxsLHMsY10pLHJlZjpbbixpXSxwcm9wczpbe3N0eWxlOnUsXCJhcmlhLWhpZGRlblwiOiEwfSxvXSxjdXN0b21TdHlsZUhvb2tNYXBwaW5nOnRWfSl9KTt2YXIgbzQ9dChcIi4uLy4uL25vZGVfbW9kdWxlcy8ucG5wbS9jc3MtbG9hZGVyQDcuMS4yX0Byc3BhY2srY29yZUAxLjQuNV9Ac3djK2hlbHBlcnNAMC41LjE1X193ZWJwYWNrQDUuOTguMF9Ac3djK2NvcmVAMS4xMS4yNF9Ac3dfd203ZWU1aWM0bW9mcmhpc3Vkd29uNHFwcTQvbm9kZV9tb2R1bGVzL2Nzcy1sb2FkZXIvZGlzdC9janMuanMhLi9zcmMvbmV4dC1kZXZ0b29scy9jb21wb25lbnRzL3Rvb2x0aXAuY3NzXCIpLG81PXt9O2Z1bmN0aW9uIG8zKGUsbil7KG51bGw9PW58fG4+ZS5sZW5ndGgpJiYobj1lLmxlbmd0aCk7Zm9yKHZhciB0PTAscj1BcnJheShuKTt0PG47dCsrKXJbdF09ZVt0XTtyZXR1cm4gcn1vNS5zdHlsZVRhZ1RyYW5zZm9ybT15KCksbzUuc2V0QXR0cmlidXRlcz1nKCksbzUuaW5zZXJ0PXAoKSxvNS5kb21BUEk9ZCgpLG81Lmluc2VydFN0eWxlRWxlbWVudD12KCksYygpKG80LlosbzUpLG80LlomJm80LloubG9jYWxzJiZvNC5aLmxvY2Fsczt2YXIgbzY9KDAsQy5mb3J3YXJkUmVmKShmdW5jdGlvbihlLG4pe3ZhciB0LHI9ZS5jbGFzc05hbWUsbz1lLmNoaWxkcmVuLGE9ZS50aXRsZSxpPWUuZGlyZWN0aW9uLHM9dm9pZCAwPT09aT9cInRvcFwiOmksYz1lLmFycm93U2l6ZSx1PXZvaWQgMD09PWM/NjpjLGQ9ZS5vZmZzZXQsZj1lLmJnY29sb3IscD12b2lkIDA9PT1mP1wiIzAwMFwiOmYsaD1lLmNvbG9yLGc9KHQ9KDAsQy51c2VTdGF0ZSkoZnVuY3Rpb24oKXtyZXR1cm4gZG9jdW1lbnQucXVlcnlTZWxlY3RvcihcIm5leHRqcy1wb3J0YWxcIikuc2hhZG93Um9vdH0pLGZ1bmN0aW9uKGUpe2lmKEFycmF5LmlzQXJyYXkoZSkpcmV0dXJuIGV9KHQpfHxmdW5jdGlvbihlLG4pe3ZhciB0LHIsbz1udWxsPT1lP251bGw6XCJ1bmRlZmluZWRcIiE9dHlwZW9mIFN5bWJvbCYmZVtTeW1ib2wuaXRlcmF0b3JdfHxlW1wiQEBpdGVyYXRvclwiXTtpZihudWxsIT1vKXt2YXIgYT1bXSxpPSEwLGw9ITE7dHJ5e2ZvcihvPW8uY2FsbChlKTshKGk9KHQ9by5uZXh0KCkpLmRvbmUpJiYoYS5wdXNoKHQudmFsdWUpLGEubGVuZ3RoIT09bik7aT0hMCk7fWNhdGNoKGUpe2w9ITAscj1lfWZpbmFsbHl7dHJ5e2l8fG51bGw9PW8ucmV0dXJufHxvLnJldHVybigpfWZpbmFsbHl7aWYobCl0aHJvdyByfX1yZXR1cm4gYX19KHQsMSl8fGZ1bmN0aW9uKGUsbil7aWYoZSl7aWYoXCJzdHJpbmdcIj09dHlwZW9mIGUpcmV0dXJuIG8zKGUsMSk7dmFyIHQ9T2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKGUpLnNsaWNlKDgsLTEpO2lmKFwiT2JqZWN0XCI9PT10JiZlLmNvbnN0cnVjdG9yJiYodD1lLmNvbnN0cnVjdG9yLm5hbWUpLFwiTWFwXCI9PT10fHxcIlNldFwiPT09dClyZXR1cm4gQXJyYXkuZnJvbSh0KTtpZihcIkFyZ3VtZW50c1wiPT09dHx8L14oPzpVaXxJKW50KD86OHwxNnwzMikoPzpDbGFtcGVkKT9BcnJheSQvLnRlc3QodCkpcmV0dXJuIG8zKGUsbil9fSh0LDEpfHxmdW5jdGlvbigpe3Rocm93IFR5cGVFcnJvcihcIkludmFsaWQgYXR0ZW1wdCB0byBkZXN0cnVjdHVyZSBub24taXRlcmFibGUgaW5zdGFuY2UuXFxcXG5JbiBvcmRlciB0byBiZSBpdGVyYWJsZSwgbm9uLWFycmF5IG9iamVjdHMgbXVzdCBoYXZlIGEgW1N5bWJvbC5pdGVyYXRvcl0oKSBtZXRob2QuXCIpfSgpKVswXSxtPSgwLEMudXNlUmVmKShnKTtyZXR1cm4gYT8oMCxsLmpzeCkob1Use2NoaWxkcmVuOigwLGwuanN4cykobyQse2RlbGF5OjQwMCxjaGlsZHJlbjpbKDAsbC5qc3gpKG9aLHtyZWY6bixyZW5kZXI6ZnVuY3Rpb24oZSl7dmFyIG4sdDtyZXR1cm4oMCxsLmpzeCkoXCJzcGFuXCIsKG49ZnVuY3Rpb24oZSl7Zm9yKHZhciBuPTE7bjxhcmd1bWVudHMubGVuZ3RoO24rKyl7dmFyIHQ9bnVsbCE9YXJndW1lbnRzW25dP2FyZ3VtZW50c1tuXTp7fSxyPU9iamVjdC5rZXlzKHQpO1wiZnVuY3Rpb25cIj09dHlwZW9mIE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMmJihyPXIuY29uY2F0KE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHModCkuZmlsdGVyKGZ1bmN0aW9uKGUpe3JldHVybiBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHQsZSkuZW51bWVyYWJsZX0pKSksci5mb3JFYWNoKGZ1bmN0aW9uKG4pe3ZhciByO3I9dFtuXSxuIGluIGU/T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsbix7dmFsdWU6cixlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMH0pOmVbbl09cn0pfXJldHVybiBlfSh7fSxlKSx0PXQ9e2NoaWxkcmVuOm99LE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzP09iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKG4sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcnModCkpOihmdW5jdGlvbihlLG4pe3ZhciB0PU9iamVjdC5rZXlzKGUpO2lmKE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMpe3ZhciByPU9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMoZSk7dC5wdXNoLmFwcGx5KHQscil9cmV0dXJuIHR9KShPYmplY3QodCkpLmZvckVhY2goZnVuY3Rpb24oZSl7T2JqZWN0LmRlZmluZVByb3BlcnR5KG4sZSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHQsZSkpfSksbikpfX0pLCgwLGwuanN4KShvSyx7Y29udGFpbmVyOm0sY2hpbGRyZW46KDAsbC5qc3gpKG9KLHtzaWRlOnMsc2lkZU9mZnNldDoodm9pZCAwPT09ZD84OmQpK3UsY2xhc3NOYW1lOlwidG9vbHRpcC1wb3NpdGlvbmVyXCIsc3R5bGU6e1wiLS1hbmNob3Itd2lkdGhcIjpcIlwiLmNvbmNhdCh1LFwicHhcIiksXCItLWFuY2hvci1oZWlnaHRcIjpcIlwiLmNvbmNhdCh1LFwicHhcIil9LGNoaWxkcmVuOigwLGwuanN4cykobzEse2NsYXNzTmFtZTooMCxrLmN4KShcInRvb2x0aXBcIixyKSxzdHlsZTp7YmFja2dyb3VuZENvbG9yOnAsY29sb3I6dm9pZCAwPT09aD9cIiNmZmZcIjpoLFwiLS10b29sdGlwLWJnLWNvbG9yXCI6cCxcIi0tYXJyb3ctc2l6ZVwiOlwiXCIuY29uY2F0KHUsXCJweFwiKX0sY2hpbGRyZW46W2EsKDAsbC5qc3gpKG8yLHtjbGFzc05hbWU6KDAsay5jeCkoXCJ0b29sdGlwLWFycm93XCIsXCJ0b29sdGlwLWFycm93LS1cIi5jb25jYXQocykpLHN0eWxlOntcIi0tYXJyb3ctc2l6ZVwiOlwiXCIuY29uY2F0KHUsXCJweFwiKSxcIi0tdG9vbHRpcC1iZy1jb2xvclwiOnB9fSldfSl9KX0pXX0pfSk6b30pO2Z1bmN0aW9uIG85KGUpe2Zvcih2YXIgbj0xO248YXJndW1lbnRzLmxlbmd0aDtuKyspe3ZhciB0PW51bGwhPWFyZ3VtZW50c1tuXT9hcmd1bWVudHNbbl06e30scj1PYmplY3Qua2V5cyh0KTtcImZ1bmN0aW9uXCI9PXR5cGVvZiBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzJiYocj1yLmNvbmNhdChPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKHQpLmZpbHRlcihmdW5jdGlvbihlKXtyZXR1cm4gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcih0LGUpLmVudW1lcmFibGV9KSkpLHIuZm9yRWFjaChmdW5jdGlvbihuKXt2YXIgcjtyPXRbbl0sbiBpbiBlP09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLG4se3ZhbHVlOnIsZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITB9KTplW25dPXJ9KX1yZXR1cm4gZX1mdW5jdGlvbiBvOChlLG4pe3JldHVybiBuPW51bGwhPW4/bjp7fSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycz9PYmplY3QuZGVmaW5lUHJvcGVydGllcyhlLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzKG4pKTooZnVuY3Rpb24oZSxuKXt2YXIgdD1PYmplY3Qua2V5cyhlKTtpZihPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKXt2YXIgcj1PYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKGUpO3QucHVzaC5hcHBseSh0LHIpfXJldHVybiB0fSkoT2JqZWN0KG4pKS5mb3JFYWNoKGZ1bmN0aW9uKHQpe09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLHQsT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihuLHQpKX0pLGV9dmFyIG83PWZ1bmN0aW9uKGUpe3ZhciBuLHQ7cmV0dXJuISEobnVsbD09KG49ZS52YWx1ZSk/dm9pZCAwOm4udHlwZSkmJiEhKG51bGw9PSh0PWUudmFsdWUpP3ZvaWQgMDp0LnBhZ2VQYXRoKX07ZnVuY3Rpb24gYWUoZSl7dmFyIG49ZS5wYWdlO3JldHVybigwLGwuanN4cykoXCJkaXZcIix7Y2xhc3NOYW1lOlwic2VnbWVudC1leHBsb3Jlci1wYWdlLXJvdXRlLWJhclwiLGNoaWxkcmVuOlsoMCxsLmpzeCkoYWEse30pLCgwLGwuanN4KShcInNwYW5cIix7Y2xhc3NOYW1lOlwic2VnbWVudC1leHBsb3Jlci1wYWdlLXJvdXRlLWJhci1wYXRoXCIsY2hpbGRyZW46bn0pXX0pfWZ1bmN0aW9uIGFuKGUpe3ZhciBuPWUuYWN0aXZlQm91bmRhcmllc0NvdW50LHQ9ZS5vbkdsb2JhbFJlc2V0LHI9bj4wO3JldHVybigwLGwuanN4KShcImRpdlwiLHtjbGFzc05hbWU6XCJzZWdtZW50LWV4cGxvcmVyLWZvb3RlclwiLGNoaWxkcmVuOigwLGwuanN4cykoXCJidXR0b25cIix7Y2xhc3NOYW1lOlwic2VnbWVudC1leHBsb3Jlci1mb290ZXItYnV0dG9uIFwiLmNvbmNhdChyP1wiXCI6XCJzZWdtZW50LWV4cGxvcmVyLWZvb3Rlci1idXR0b24tLWRpc2FibGVkXCIpLG9uQ2xpY2s6cj90OnZvaWQgMCxkaXNhYmxlZDohcix0eXBlOlwiYnV0dG9uXCIsY2hpbGRyZW46WygwLGwuanN4KShcInNwYW5cIix7Y2xhc3NOYW1lOlwic2VnbWVudC1leHBsb3Jlci1mb290ZXItdGV4dFwiLGNoaWxkcmVuOlwiQ2xlYXIgU2VnbWVudCBPdmVycmlkZXNcIn0pLHImJigwLGwuanN4KShcInNwYW5cIix7Y2xhc3NOYW1lOlwic2VnbWVudC1leHBsb3Jlci1mb290ZXItYmFkZ2VcIixjaGlsZHJlbjpufSldfSl9KX1mdW5jdGlvbiBhdChlKXt2YXIgbj1lLmlzQXBwUm91dGVyLHQ9ZS5wYWdlLHI9KDAsai5pOCkoKSxvPSgwLEMudXNlTWVtbykoZnVuY3Rpb24oKXtyZXR1cm4gbj9mdW5jdGlvbiBlKG4pe3ZhciB0LHI9MDtyZXR1cm4obnVsbD09KHQ9bi52YWx1ZSk/dm9pZCAwOnQuc2V0Qm91bmRhcnlUeXBlKSYmbnVsbCE9PW4udmFsdWUuYm91bmRhcnlUeXBlJiYhb08obi52YWx1ZS50eXBlKSYmcisrLE9iamVjdC52YWx1ZXMobi5jaGlsZHJlbikuZm9yRWFjaChmdW5jdGlvbihuKXtuJiYocis9ZShuKSl9KSxyfShyKTowfSxbcixuXSksYT0oMCxDLnVzZUNhbGxiYWNrKShmdW5jdGlvbigpe24mJmZ1bmN0aW9uIGUobil7dmFyIHQ7KG51bGw9PSh0PW4udmFsdWUpP3ZvaWQgMDp0LnNldEJvdW5kYXJ5VHlwZSkmJm4udmFsdWUuc2V0Qm91bmRhcnlUeXBlKG51bGwpLE9iamVjdC52YWx1ZXMobi5jaGlsZHJlbikuZm9yRWFjaChmdW5jdGlvbihuKXtuJiZlKG4pfSl9KHIpfSxbcixuXSk7cmV0dXJuKDAsbC5qc3hzKShcImRpdlwiLHtcImRhdGEtbmV4dGpzLWRldnRvb2xzLXBhbmVsLXNlZ21lbnRzLWV4cGxvcmVyXCI6ITAsY2hpbGRyZW46W24mJigwLGwuanN4KShhZSx7cGFnZTp0fSksKDAsbC5qc3gpKFwiZGl2XCIse2NsYXNzTmFtZTpcInNlZ21lbnQtZXhwbG9yZXItY29udGVudFwiLFwiZGF0YS1uZXh0anMtZGV2dG9vbC1zZWdtZW50LWV4cGxvcmVyXCI6ITAsY2hpbGRyZW46bj8oMCxsLmpzeCkoYXIse25vZGU6cixsZXZlbDowLHNlZ21lbnQ6XCJcIn0pOigwLGwuanN4KShcInBcIix7Y2hpbGRyZW46XCJSb3V0ZSBJbmZvIGN1cnJlbnRseSBpcyBvbmx5IGF2YWlsYWJsZSBmb3IgdGhlIEFwcCBSb3V0ZXIuXCJ9KX0pLG4mJigwLGwuanN4KShhbix7YWN0aXZlQm91bmRhcmllc0NvdW50Om8sb25HbG9iYWxSZXNldDphfSldfSl9ZnVuY3Rpb24gYXIoZSl7dmFyIG49ZS5zZWdtZW50LHQ9ZS5ub2RlLHI9ZS5sZXZlbCxvPU9iamVjdC5rZXlzKHQuY2hpbGRyZW4pLnNvcnQoZnVuY3Rpb24oZSxuKXt2YXIgcj1lLmluY2x1ZGVzKFwiLlwiKSxvPW4uaW5jbHVkZXMoXCIuXCIpO2lmKHImJiFvKXJldHVybiAtMTtpZighciYmbylyZXR1cm4gMTtpZihyJiZvKXt2YXIgYSxpLGwscyxjLHUsZCxmLHA9bnVsbD09KGk9dC5jaGlsZHJlbltlXSl8fG51bGw9PShhPWkudmFsdWUpP3ZvaWQgMDphLnR5cGUsaD1udWxsPT0ocz10LmNoaWxkcmVuW25dKXx8bnVsbD09KGw9cy52YWx1ZSk/dm9pZCAwOmwudHlwZSxnPWZ1bmN0aW9uKGUpe3JldHVybiBlP1wibGF5b3V0XCI9PT1lPzE6XCJ0ZW1wbGF0ZVwiPT09ZT8yOlwicGFnZVwiPT09ZT8zOm9PKGUpPzQ6NTo1fSxtPWcocCksdj1nKGgpO2lmKG0hPT12KXJldHVybiBtLXY7dmFyIGI9KG51bGw9PSh1PXQuY2hpbGRyZW5bZV0pfHxudWxsPT0oYz11LnZhbHVlKT92b2lkIDA6Yy5wYWdlUGF0aCl8fFwiXCIseT0obnVsbD09KGY9dC5jaGlsZHJlbltuXSl8fG51bGw9PShkPWYudmFsdWUpP3ZvaWQgMDpkLnBhZ2VQYXRoKXx8XCJcIjtyZXR1cm4gYi5sb2NhbGVDb21wYXJlKHkpfXJldHVybiBlLmxvY2FsZUNvbXBhcmUobil9KSxhPTAhPT1yfHxuP246XCJhcHBcIixpPVtdLHM9W10sYz0hMCx1PSExLGQ9dm9pZCAwO3RyeXtmb3IodmFyIGYscD1vW1N5bWJvbC5pdGVyYXRvcl0oKTshKGM9KGY9cC5uZXh0KCkpLmRvbmUpO2M9ITApe3ZhciBoPWYudmFsdWUsZz10LmNoaWxkcmVuW2hdO2lmKGcpe2lmKG83KGcpKXtzLnB1c2goaCk7Y29udGludWV9aS5wdXNoKGgpfX19Y2F0Y2goZSl7dT0hMCxkPWV9ZmluYWxseXt0cnl7Y3x8bnVsbD09cC5yZXR1cm58fHAucmV0dXJuKCl9ZmluYWxseXtpZih1KXRocm93IGR9fWZvcih2YXIgbT1udWxsLHY9by5sZW5ndGgtMTt2Pj0wO3YtLSl7dmFyIGI9dC5jaGlsZHJlbltvW3ZdXTtpZihiJiZiLnZhbHVlKXt2YXIgeT1vTyhiLnZhbHVlLnR5cGUpO2lmKCFtJiYheSl7bT1iO2JyZWFrfX19dmFyIHg9bnVsbCx3PSEwLGo9ITEsQT12b2lkIDA7dHJ5e2Zvcih2YXIgTyxDPW9bU3ltYm9sLml0ZXJhdG9yXSgpOyEodz0oTz1DLm5leHQoKSkuZG9uZSk7dz0hMCl7dmFyIFM9Ty52YWx1ZSxFPXQuY2hpbGRyZW5bU107aWYoRSYmRS52YWx1ZSYmb08oRS52YWx1ZS50eXBlKSl7eD1FO2JyZWFrfX19Y2F0Y2goZSl7aj0hMCxBPWV9ZmluYWxseXt0cnl7d3x8bnVsbD09Qy5yZXR1cm58fEMucmV0dXJuKCl9ZmluYWxseXtpZihqKXRocm93IEF9fW09bXx8eDt2YXIgXz1zLmxlbmd0aD4wLFA9e1wibm90LWZvdW5kXCI6bnVsbCxsb2FkaW5nOm51bGwsZXJyb3I6bnVsbH07cmV0dXJuIHMuZm9yRWFjaChmdW5jdGlvbihlKXt2YXIgbj10LmNoaWxkcmVuW2VdO2lmKG4mJm4udmFsdWUmJm9PKG4udmFsdWUudHlwZSkpe3ZhciByPW4udmFsdWUudHlwZS5yZXBsYWNlKG9BLFwiXCIpO3IgaW4gUCYmKFBbcl09bi52YWx1ZS5wYWdlUGF0aHx8bnVsbCl9fSksKDAsbC5qc3hzKShsLkZyYWdtZW50LHtjaGlsZHJlbjpbXyYmKDAsbC5qc3gpKFwiZGl2XCIse2NsYXNzTmFtZTpcInNlZ21lbnQtZXhwbG9yZXItaXRlbVwiLFwiZGF0YS1uZXh0anMtZGV2dG9vbC1zZWdtZW50LWV4cGxvcmVyLXNlZ21lbnRcIjpuK1wiLVwiK3IsY2hpbGRyZW46KDAsbC5qc3gpKFwiZGl2XCIse2NsYXNzTmFtZTpcInNlZ21lbnQtZXhwbG9yZXItaXRlbS1yb3dcIixzdHlsZTpvOSh7fSx7cGFkZGluZ0xlZnQ6XCJcIi5jb25jYXQoKHIrMSkqOCxcInB4XCIpfSksY2hpbGRyZW46KDAsbC5qc3hzKShcImRpdlwiLHtjbGFzc05hbWU6XCJzZWdtZW50LWV4cGxvcmVyLWZpbGVuYW1lXCIsY2hpbGRyZW46W2EmJigwLGwuanN4cykoXCJzcGFuXCIse2NsYXNzTmFtZTpcInNlZ21lbnQtZXhwbG9yZXItZmlsZW5hbWUtLXBhdGhcIixjaGlsZHJlbjpbYSwoMCxsLmpzeCkoXCJzbWFsbFwiLHtjaGlsZHJlbjpcIi9cIn0pXX0pLHMubGVuZ3RoPjAmJigwLGwuanN4KShcInNwYW5cIix7Y2xhc3NOYW1lOlwic2VnbWVudC1leHBsb3Jlci1maWxlc1wiLGNoaWxkcmVuOnMubWFwKGZ1bmN0aW9uKGUpe3ZhciBuPXQuY2hpbGRyZW5bZV07aWYoIW58fCFuLnZhbHVlfHxvTyhuLnZhbHVlLnR5cGUpKXJldHVybiBudWxsO3ZhciByPW4udmFsdWUucGFnZVBhdGgsbz1yLnNwbGl0KFwiL1wiKS5wb3AoKXx8XCJcIixhPXIuc3RhcnRzV2l0aChvaiksaT1vayhvKSxzPWE/XCJUaGUgZGVmYXVsdCBOZXh0LmpzIFwiLmNvbmNhdChuLnZhbHVlLnR5cGUsXCIgaXMgYmVpbmcgc2hvd24uIFlvdSBjYW4gY3VzdG9taXplIHRoaXMgcGFnZSBieSBhZGRpbmcgeW91ciBvd24gXCIpLmNvbmNhdChpLFwiIGZpbGUgdG8gdGhlIGFwcC8gZGlyZWN0b3J5LlwiKTpudWxsLGM9bnVsbCE9PW4udmFsdWUuYm91bmRhcnlUeXBlO3JldHVybigwLGwuanN4KShvNix7Y2xhc3NOYW1lOlwic2VnbWVudC1leHBsb3Jlci1maWxlLWxhYmVsLXRvb2x0aXAtLVwiKyhhP1wibGdcIjpcInNtXCIpLGRpcmVjdGlvbjphP1wicmlnaHRcIjpcInRvcFwiLHRpdGxlOnMsb2Zmc2V0OjEyLGJnY29sb3I6XCJ2YXIoLS1jb2xvci1ncmF5LTEwMDApXCIsY29sb3I6XCJ2YXIoLS1jb2xvci1ncmF5LTEwMClcIixjaGlsZHJlbjooMCxsLmpzeHMpKFwic3BhblwiLHtjbGFzc05hbWU6KDAsay5jeCkoXCJzZWdtZW50LWV4cGxvcmVyLWZpbGUtbGFiZWxcIixcInNlZ21lbnQtZXhwbG9yZXItZmlsZS1sYWJlbC0tXCIuY29uY2F0KG4udmFsdWUudHlwZSksYSYmXCJzZWdtZW50LWV4cGxvcmVyLWZpbGUtbGFiZWwtLWJ1aWx0aW5cIixjJiZcInNlZ21lbnQtZXhwbG9yZXItZmlsZS1sYWJlbC0tb3ZlcnJpZGRlblwiKSxvbkNsaWNrOmZ1bmN0aW9uKCl7dmFyIGU7ZT1uZXcgVVJMU2VhcmNoUGFyYW1zKHtmaWxlOntmaWxlUGF0aDpyfS5maWxlUGF0aCxpc0FwcFJlbGF0aXZlUGF0aDpcIjFcIn0pLGZldGNoKFwiXCIuY29uY2F0KHByb2Nlc3MuZW52Ll9fTkVYVF9ST1VURVJfQkFTRVBBVEh8fFwiXCIsXCIvX19uZXh0anNfbGF1bmNoLWVkaXRvcj9cIikuY29uY2F0KGUudG9TdHJpbmcoKSkpfSxjaGlsZHJlbjpbKDAsbC5qc3gpKFwic3BhblwiLHtjbGFzc05hbWU6XCJzZWdtZW50LWV4cGxvcmVyLWZpbGUtbGFiZWwtdGV4dFwiLGNoaWxkcmVuOml9KSxhPygwLGwuanN4KShhbyx7fSk6KDAsbC5qc3gpKGFpLHtjbGFzc05hbWU6XCJjb2RlLWljb25cIn0pXX0pfSxlKX0pfSksbSYmbS52YWx1ZSYmKDAsbC5qc3gpKG9MLHtub2RlU3RhdGU6bS52YWx1ZSxib3VuZGFyaWVzOlB9KV19KX0pfSksaS5tYXAoZnVuY3Rpb24oZSl7dmFyIG89dC5jaGlsZHJlbltlXTtpZighbylyZXR1cm4gbnVsbDt2YXIgYT1fP2U6bitcIiAvIFwiK2U7cmV0dXJuKDAsbC5qc3gpKGFyLHtzZWdtZW50OmEsbm9kZTpvLGxldmVsOl8/cisxOnJ9LGUpfSldfSl9ZnVuY3Rpb24gYW8oZSl7cmV0dXJuKDAsbC5qc3hzKShcInN2Z1wiLG84KG85KHt3aWR0aDpcIjE2XCIsaGVpZ2h0OlwiMTZcIix2aWV3Qm94OlwiMCAwIDE2IDE2XCIsZmlsbDpcIm5vbmVcIix4bWxuczpcImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCJ9LGUpLHtjaGlsZHJlbjpbKDAsbC5qc3gpKFwicGF0aFwiLHtkOlwiTTE0IDhDMTQgMTEuMzEzNyAxMS4zMTM3IDE0IDggMTRDNC42ODYyOSAxNCAyIDExLjMxMzcgMiA4QzIgNC42ODYyOSA0LjY4NjI5IDIgOCAyQzExLjMxMzcgMiAxNCA0LjY4NjI5IDE0IDhaXCIsZmlsbDpcInZhcigtLWNvbG9yLWdyYXktNDAwKVwifSksKDAsbC5qc3gpKFwicGF0aFwiLHtkOlwiTTcuNzUgN0M4LjMwMjI4IDcuMDAwMDEgOC43NSA3LjQ0NzcyIDguNzUgOFYxMS4yNUg3LjI1VjguNUg2LjI1VjdINy43NVpNOCA0QzguNTUyMjggNCA5IDQuNDQ3NzIgOSA1QzkgNS41NTIyOCA4LjU1MjI4IDYgOCA2QzcuNDQ3NzIgNiA3IDUuNTUyMjggNyA1QzcgNC40NDc3MiA3LjQ0NzcyIDQgOCA0WlwiLGZpbGw6XCJ2YXIoLS1jb2xvci1ncmF5LTkwMClcIn0pXX0pKX1mdW5jdGlvbiBhYSgpe3JldHVybigwLGwuanN4KShcInN2Z1wiLHt3aWR0aDpcIjIwXCIsaGVpZ2h0OlwiMjBcIix2aWV3Qm94OlwiMCAwIDIwIDIwXCIsZmlsbDpcInZhcigtLWNvbG9yLWdyYXktNjAwKVwiLHhtbG5zOlwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIixjaGlsZHJlbjooMCxsLmpzeCkoXCJwYXRoXCIse2Q6XCJNNC41IDExLjI1QzQuNSAxMS4zODgxIDQuNjExOTMgMTEuNSA0Ljc1IDExLjVIMTQuNDM5NUwxMS45Mzk1IDlMMTMgNy45Mzk0NUwxNi43ODAzIDExLjcxOTdMMTYuODMyIDExLjc3NjRDMTcuMDcyMyAxMi4wNzA5IDE3LjA1NDkgMTIuNTA1NyAxNi43ODAzIDEyLjc4MDNMMTMgMTYuNTYwNUwxMS45Mzk1IDE1LjVMMTQuNDM5NSAxM0g0Ljc1QzMuNzgzNSAxMyAzIDEyLjIxNjUgMyAxMS4yNVY0LjI1SDQuNVYxMS4yNVpcIn0pfSl9ZnVuY3Rpb24gYWkoZSl7cmV0dXJuKDAsbC5qc3gpKFwic3ZnXCIsbzgobzkoe3dpZHRoOlwiMTJcIixoZWlnaHQ6XCIxMlwiLHN0cm9rZUxpbmVqb2luOlwicm91bmRcIix2aWV3Qm94OlwiMCAwIDE2IDE2XCIsZmlsbDpcImN1cnJlbnRDb2xvclwifSxlKSx7Y2hpbGRyZW46KDAsbC5qc3gpKFwicGF0aFwiLHtmaWxsUnVsZTpcImV2ZW5vZGRcIixjbGlwUnVsZTpcImV2ZW5vZGRcIixkOlwiTTcuMjI3NjMgMTQuMTgxOUwxMC4yMjc2IDIuMTgxOTNMMTAuNDA5NSAxLjQ1NDMyTDguOTU0MzIgMS4wOTA1Mkw4Ljc3MjQyIDEuODE4MTJMNS43NzI0MiAxMy44MTgxTDUuNTkwNTEgMTQuNTQ1N0w3LjA0NTczIDE0LjkwOTVMNy4yMjc2MyAxNC4xODE5Wk0zLjc1MDAyIDEyLjA2MDdMMy4yMTk2OSAxMS41MzA0TDAuMzk2NDcgOC43MDcxM0MwLjAwNTk0NTU5IDguMzE2NjEgMC4wMDU5NDU1OSA3LjY4MzQ0IDAuMzk2NDcgNy4yOTI5MkwzLjIxOTY5IDQuNDY5NjlMMy43NTAwMiAzLjkzOTM2TDQuODEwNjggNS4wMDAwMkw0LjI4MDM1IDUuNTMwMzVMMS44MTA2OCA4LjAwMDAzTDQuMjgwMzUgMTAuNDY5N0w0LjgxMDY4IDExTDMuNzUwMDIgMTIuMDYwN1pNMTIuMjUgMTIuMDYwN0wxMi43ODA0IDExLjUzMDRMMTUuNjAzNiA4LjcwNzEzQzE1Ljk5NDEgOC4zMTY2MSAxNS45OTQxIDcuNjgzNDQgMTUuNjAzNiA3LjI5MjkyTDEyLjc4MDQgNC40Njk2OUwxMi4yNSAzLjkzOTM2TDExLjE4OTQgNS4wMDAwMkwxMS43MTk3IDUuNTMwMzVMMTQuMTg5NCA4LjAwMDAzTDExLjcxOTcgMTAuNDY5N0wxMS4xODk0IDExTDEyLjI1IDEyLjA2MDdaXCIsZmlsbDpcImN1cnJlbnRDb2xvclwifSl9KSl9fSxcIi4vc3JjL25leHQtZGV2dG9vbHMvZGV2LW92ZXJsYXkvaG9va3MvdXNlLWRlbGF5ZWQtcmVuZGVyLnRzXCI6ZnVuY3Rpb24oZSxuLHQpe1widXNlIHN0cmljdFwiO3QuZChuLHtOOigpPT5pfSk7dmFyIHI9dChcIi4vZGlzdC9jb21waWxlZC9yZWFjdC9pbmRleC5qc1wiKTtmdW5jdGlvbiBvKGUsbil7KG51bGw9PW58fG4+ZS5sZW5ndGgpJiYobj1lLmxlbmd0aCk7Zm9yKHZhciB0PTAscj1BcnJheShuKTt0PG47dCsrKXJbdF09ZVt0XTtyZXR1cm4gcn1mdW5jdGlvbiBhKGUsbil7cmV0dXJuIGZ1bmN0aW9uKGUpe2lmKEFycmF5LmlzQXJyYXkoZSkpcmV0dXJuIGV9KGUpfHxmdW5jdGlvbihlLG4pe3ZhciB0LHIsbz1udWxsPT1lP251bGw6XCJ1bmRlZmluZWRcIiE9dHlwZW9mIFN5bWJvbCYmZVtTeW1ib2wuaXRlcmF0b3JdfHxlW1wiQEBpdGVyYXRvclwiXTtpZihudWxsIT1vKXt2YXIgYT1bXSxpPSEwLGw9ITE7dHJ5e2ZvcihvPW8uY2FsbChlKTshKGk9KHQ9by5uZXh0KCkpLmRvbmUpJiYoYS5wdXNoKHQudmFsdWUpLCFufHxhLmxlbmd0aCE9PW4pO2k9ITApO31jYXRjaChlKXtsPSEwLHI9ZX1maW5hbGx5e3RyeXtpfHxudWxsPT1vLnJldHVybnx8by5yZXR1cm4oKX1maW5hbGx5e2lmKGwpdGhyb3cgcn19cmV0dXJuIGF9fShlLG4pfHxmdW5jdGlvbihlLG4pe2lmKGUpe2lmKFwic3RyaW5nXCI9PXR5cGVvZiBlKXJldHVybiBvKGUsbik7dmFyIHQ9T2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKGUpLnNsaWNlKDgsLTEpO2lmKFwiT2JqZWN0XCI9PT10JiZlLmNvbnN0cnVjdG9yJiYodD1lLmNvbnN0cnVjdG9yLm5hbWUpLFwiTWFwXCI9PT10fHxcIlNldFwiPT09dClyZXR1cm4gQXJyYXkuZnJvbSh0KTtpZihcIkFyZ3VtZW50c1wiPT09dHx8L14oPzpVaXxJKW50KD86OHwxNnwzMikoPzpDbGFtcGVkKT9BcnJheSQvLnRlc3QodCkpcmV0dXJuIG8oZSxuKX19KGUsbil8fGZ1bmN0aW9uKCl7dGhyb3cgVHlwZUVycm9yKFwiSW52YWxpZCBhdHRlbXB0IHRvIGRlc3RydWN0dXJlIG5vbi1pdGVyYWJsZSBpbnN0YW5jZS5cXFxcbkluIG9yZGVyIHRvIGJlIGl0ZXJhYmxlLCBub24tYXJyYXkgb2JqZWN0cyBtdXN0IGhhdmUgYSBbU3ltYm9sLml0ZXJhdG9yXSgpIG1ldGhvZC5cIil9KCl9ZnVuY3Rpb24gaSgpe3ZhciBlPWFyZ3VtZW50cy5sZW5ndGg+MCYmdm9pZCAwIT09YXJndW1lbnRzWzBdJiZhcmd1bWVudHNbMF0sbj1hcmd1bWVudHMubGVuZ3RoPjEmJnZvaWQgMCE9PWFyZ3VtZW50c1sxXT9hcmd1bWVudHNbMV06e30sdD1hKCgwLHIudXNlU3RhdGUpKGUpLDIpLG89dFswXSxpPXRbMV0sbD1hKCgwLHIudXNlU3RhdGUpKCExKSwyKSxzPWxbMF0sYz1sWzFdLHU9bi5lbnRlckRlbGF5LGQ9dm9pZCAwPT09dT8xOnUsZj1uLmV4aXREZWxheSxwPXZvaWQgMD09PWY/MDpmO3JldHVybigwLHIudXNlRWZmZWN0KShmdW5jdGlvbigpe3ZhciBuLHQ7cmV0dXJuIGU/KGkoITApLGQ8PTA/YyghMCk6bj1zZXRUaW1lb3V0KGZ1bmN0aW9uKCl7YyghMCl9LGQpKTooYyghMSkscDw9MD9pKCExKTp0PXNldFRpbWVvdXQoZnVuY3Rpb24oKXtpKCExKX0scCkpLGZ1bmN0aW9uKCl7Y2xlYXJUaW1lb3V0KG4pLGNsZWFyVGltZW91dCh0KX19LFtlLGQscF0pLHttb3VudGVkOm8scmVuZGVyZWQ6c319fSxcIi4vc3JjL25leHQtZGV2dG9vbHMvZGV2LW92ZXJsYXkvc2VnbWVudC1leHBsb3Jlci10cmllLnRzXCI6ZnVuY3Rpb24oZSxuLHQpe1widXNlIHN0cmljdFwiO3QuZChuLHtfYzooKT0+ZCxpODooKT0+Zix0aDooKT0+dX0pO3ZhciByPXQoXCIuL2Rpc3QvY29tcGlsZWQvcmVhY3QvaW5kZXguanNcIik7ZnVuY3Rpb24gbyhlKXtmb3IodmFyIG49MTtuPGFyZ3VtZW50cy5sZW5ndGg7bisrKXt2YXIgdD1udWxsIT1hcmd1bWVudHNbbl0/YXJndW1lbnRzW25dOnt9LHI9T2JqZWN0LmtleXModCk7XCJmdW5jdGlvblwiPT10eXBlb2YgT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyYmKHI9ci5jb25jYXQoT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyh0KS5maWx0ZXIoZnVuY3Rpb24oZSl7cmV0dXJuIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IodCxlKS5lbnVtZXJhYmxlfSkpKSxyLmZvckVhY2goZnVuY3Rpb24obil7dmFyIHI7cj10W25dLG4gaW4gZT9PYmplY3QuZGVmaW5lUHJvcGVydHkoZSxuLHt2YWx1ZTpyLGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwfSk6ZVtuXT1yfSl9cmV0dXJuIGV9dmFyIGE9bmV3IFNldCxpPWZ1bmN0aW9uKGUpe3JldHVybiBhLmFkZChlKSxmdW5jdGlvbigpe3JldHVybiBhLmRlbGV0ZShlKX19LGw9ZnVuY3Rpb24oKXtyZXR1cm4gYy5nZXRSb290KCl9LHM9ZnVuY3Rpb24oKXtyZXR1cm4gYy5nZXRSb290KCl9LGM9ZnVuY3Rpb24oZSl7dmFyIG49ZS5nZXRDaGFyYWN0ZXJzLHQ9dm9pZCAwPT09bj9mdW5jdGlvbihlKXtyZXR1cm5bZV19Om4scj1lLmNvbXBhcmUsaT12b2lkIDA9PT1yP2Z1bmN0aW9uKGUsbil7cmV0dXJuIGU9PT1ufTpyLGw9e3ZhbHVlOnZvaWQgMCxjaGlsZHJlbjp7fX07ZnVuY3Rpb24gcygpe3ZhciBlPSEwLG49ITEsdD12b2lkIDA7dHJ5e2Zvcih2YXIgcixvPWFbU3ltYm9sLml0ZXJhdG9yXSgpOyEoZT0ocj1vLm5leHQoKSkuZG9uZSk7ZT0hMCkoMCxyLnZhbHVlKSgpfWNhdGNoKGUpe249ITAsdD1lfWZpbmFsbHl7dHJ5e2V8fG51bGw9PW8ucmV0dXJufHxvLnJldHVybigpfWZpbmFsbHl7aWYobil0aHJvdyB0fX19cmV0dXJue2luc2VydDpmdW5jdGlvbihlKXt2YXIgbj1sLHI9dChlKSxhPSEwLGk9ITEsYz12b2lkIDA7dHJ5e2Zvcih2YXIgdSxkPXJbU3ltYm9sLml0ZXJhdG9yXSgpOyEoYT0odT1kLm5leHQoKSkuZG9uZSk7YT0hMCl7dmFyIGY9dS52YWx1ZTtuLmNoaWxkcmVuW2ZdfHwobi5jaGlsZHJlbltmXT17dmFsdWU6dm9pZCAwLGNoaWxkcmVuOnt9fSksbj1uLmNoaWxkcmVuW2ZdfX1jYXRjaChlKXtpPSEwLGM9ZX1maW5hbGx5e3RyeXthfHxudWxsPT1kLnJldHVybnx8ZC5yZXR1cm4oKX1maW5hbGx5e2lmKGkpdGhyb3cgY319bi52YWx1ZT1lLGw9byh7fSxsKSxzKCl9LHJlbW92ZTpmdW5jdGlvbihlKXt2YXIgbj1sLHI9dChlKSxhPVtdLGM9ITAsdT0hMCxkPSExLGY9dm9pZCAwO3RyeXtmb3IodmFyIHAsaD1yW1N5bWJvbC5pdGVyYXRvcl0oKTshKHU9KHA9aC5uZXh0KCkpLmRvbmUpO3U9ITApe3ZhciBnPXAudmFsdWU7aWYoIW4uY2hpbGRyZW5bZ10pe2M9ITE7YnJlYWt9YS5wdXNoKG4pLG49bi5jaGlsZHJlbltnXX19Y2F0Y2goZSl7ZD0hMCxmPWV9ZmluYWxseXt0cnl7dXx8bnVsbD09aC5yZXR1cm58fGgucmV0dXJuKCl9ZmluYWxseXtpZihkKXRocm93IGZ9fWlmKGMmJmkobi52YWx1ZSxlKSl7bi52YWx1ZT12b2lkIDA7Zm9yKHZhciBtPWEubGVuZ3RoLTE7bT49MDttLS0pe3ZhciB2PWFbbV0sYj1yW21dOzA9PT1PYmplY3Qua2V5cyh2LmNoaWxkcmVuW2JdLmNoaWxkcmVuKS5sZW5ndGgmJmRlbGV0ZSB2LmNoaWxkcmVuW2JdfWw9byh7fSxsKSxzKCl9fSxnZXRSb290OmZ1bmN0aW9uKCl7cmV0dXJuIGx9fX0oe2NvbXBhcmU6ZnVuY3Rpb24oZSxuKXtyZXR1cm4hIWUmJiEhbiYmZS5wYWdlUGF0aD09PW4ucGFnZVBhdGgmJmUudHlwZT09PW4udHlwZSYmZS5ib3VuZGFyeVR5cGU9PT1uLmJvdW5kYXJ5VHlwZX0sZ2V0Q2hhcmFjdGVyczpmdW5jdGlvbihlKXtyZXR1cm4gZS5wYWdlUGF0aC5zcGxpdChcIi9cIil9fSksdT1jLmluc2VydCxkPWMucmVtb3ZlO2Z1bmN0aW9uIGYoKXtyZXR1cm4oMCxyLnVzZVN5bmNFeHRlcm5hbFN0b3JlKShpLGwscyl9fSxcIi4vc3JjL25leHQtZGV2dG9vbHMvZGV2LW92ZXJsYXkvdXRpbHMvY3gudHNcIjpmdW5jdGlvbihlLG4sdCl7XCJ1c2Ugc3RyaWN0XCI7ZnVuY3Rpb24gcigpe2Zvcih2YXIgZT1hcmd1bWVudHMubGVuZ3RoLG49QXJyYXkoZSksdD0wO3Q8ZTt0Kyspblt0XT1hcmd1bWVudHNbdF07cmV0dXJuIG4uZmlsdGVyKEJvb2xlYW4pLmpvaW4oXCIgXCIpfXQuZChuLHtjeDooKT0+cn0pfX0sX193ZWJwYWNrX21vZHVsZV9jYWNoZV9fPXt9O2Z1bmN0aW9uIF9fd2VicGFja19yZXF1aXJlX18oZSl7dmFyIG49X193ZWJwYWNrX21vZHVsZV9jYWNoZV9fW2VdO2lmKHZvaWQgMCE9PW4pcmV0dXJuIG4uZXhwb3J0czt2YXIgdD1fX3dlYnBhY2tfbW9kdWxlX2NhY2hlX19bZV09e2lkOmUsZXhwb3J0czp7fX07cmV0dXJuIF9fd2VicGFja19tb2R1bGVzX19bZV0odCx0LmV4cG9ydHMsX193ZWJwYWNrX3JlcXVpcmVfXyksdC5leHBvcnRzfV9fd2VicGFja19yZXF1aXJlX18ubj1lPT57dmFyIG49ZSYmZS5fX2VzTW9kdWxlPygpPT5lLmRlZmF1bHQ6KCk9PmU7cmV0dXJuIF9fd2VicGFja19yZXF1aXJlX18uZChuLHthOm59KSxufSwoKCk9Pnt2YXIgZSxuPU9iamVjdC5nZXRQcm90b3R5cGVPZj9lPT5PYmplY3QuZ2V0UHJvdG90eXBlT2YoZSk6ZT0+ZS5fX3Byb3RvX187X193ZWJwYWNrX3JlcXVpcmVfXy50PWZ1bmN0aW9uKHQscil7aWYoMSZyJiYodD10aGlzKHQpKSw4JnJ8fFwib2JqZWN0XCI9PXR5cGVvZiB0JiZ0JiYoNCZyJiZ0Ll9fZXNNb2R1bGV8fDE2JnImJlwiZnVuY3Rpb25cIj09dHlwZW9mIHQudGhlbikpcmV0dXJuIHQ7dmFyIG89T2JqZWN0LmNyZWF0ZShudWxsKTtfX3dlYnBhY2tfcmVxdWlyZV9fLnIobyk7dmFyIGE9e307ZT1lfHxbbnVsbCxuKHt9KSxuKFtdKSxuKG4pXTtmb3IodmFyIGk9MiZyJiZ0O1wib2JqZWN0XCI9PXR5cGVvZiBpJiYhfmUuaW5kZXhPZihpKTtpPW4oaSkpT2JqZWN0LmdldE93blByb3BlcnR5TmFtZXMoaSkuZm9yRWFjaChlPT57YVtlXT0oKT0+dFtlXX0pO3JldHVybiBhLmRlZmF1bHQ9KCk9PnQsX193ZWJwYWNrX3JlcXVpcmVfXy5kKG8sYSksb319KSgpLF9fd2VicGFja19yZXF1aXJlX18uZD0oZSxuKT0+e2Zvcih2YXIgdCBpbiBuKV9fd2VicGFja19yZXF1aXJlX18ubyhuLHQpJiYhX193ZWJwYWNrX3JlcXVpcmVfXy5vKGUsdCkmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLHQse2VudW1lcmFibGU6ITAsZ2V0Om5bdF19KX0sX193ZWJwYWNrX3JlcXVpcmVfXy5vPShlLG4pPT5PYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoZSxuKSxfX3dlYnBhY2tfcmVxdWlyZV9fLnI9ZT0+e1widW5kZWZpbmVkXCIhPXR5cGVvZiBTeW1ib2wmJlN5bWJvbC50b1N0cmluZ1RhZyYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGUsU3ltYm9sLnRvU3RyaW5nVGFnLHt2YWx1ZTpcIk1vZHVsZVwifSksT2JqZWN0LmRlZmluZVByb3BlcnR5KGUsXCJfX2VzTW9kdWxlXCIse3ZhbHVlOiEwfSl9LF9fd2VicGFja19yZXF1aXJlX18ubmM9dm9pZCAwO3ZhciBfX3dlYnBhY2tfZXhwb3J0c19fPXt9O2Zvcih2YXIgX193ZWJwYWNrX2lfXyBpbigoKT0+e1widXNlIHN0cmljdFwiO19fd2VicGFja19yZXF1aXJlX18ucihfX3dlYnBhY2tfZXhwb3J0c19fKSxfX3dlYnBhY2tfcmVxdWlyZV9fLmQoX193ZWJwYWNrX2V4cG9ydHNfXyx7ZGlzcGF0Y2hlcjooKT0+YUgscmVuZGVyQXBwRGV2T3ZlcmxheTooKT0+YVcscmVuZGVyUGFnZXNEZXZPdmVybGF5OigpPT5hJH0pO3ZhciBlLG4sdCxyPV9fd2VicGFja19yZXF1aXJlX18oXCIuLi8uLi9ub2RlX21vZHVsZXMvLnBucG0vc3R5bGUtbG9hZGVyQDQuMC4wX3dlYnBhY2tANS45OC4wX0Bzd2MrY29yZUAxLjExLjI0X0Bzd2MraGVscGVyc0AwLjUuMTVfX2VzYnVpbGRAMC4yNC4yXy9ub2RlX21vZHVsZXMvc3R5bGUtbG9hZGVyL2Rpc3QvcnVudGltZS9pbmplY3RTdHlsZXNJbnRvU3R5bGVUYWcuanNcIiksbz1fX3dlYnBhY2tfcmVxdWlyZV9fLm4ociksYT1fX3dlYnBhY2tfcmVxdWlyZV9fKFwiLi4vLi4vbm9kZV9tb2R1bGVzLy5wbnBtL3N0eWxlLWxvYWRlckA0LjAuMF93ZWJwYWNrQDUuOTguMF9Ac3djK2NvcmVAMS4xMS4yNF9Ac3djK2hlbHBlcnNAMC41LjE1X19lc2J1aWxkQDAuMjQuMl8vbm9kZV9tb2R1bGVzL3N0eWxlLWxvYWRlci9kaXN0L3J1bnRpbWUvc3R5bGVEb21BUEkuanNcIiksaT1fX3dlYnBhY2tfcmVxdWlyZV9fLm4oYSksbD1fX3dlYnBhY2tfcmVxdWlyZV9fKFwiLi9zcmMvYnVpbGQvd2VicGFjay9sb2FkZXJzL2RldnRvb2wvZGV2dG9vbC1zdHlsZS1pbmplY3QuanNcIikscz1fX3dlYnBhY2tfcmVxdWlyZV9fLm4obCksYz1fX3dlYnBhY2tfcmVxdWlyZV9fKFwiLi4vLi4vbm9kZV9tb2R1bGVzLy5wbnBtL3N0eWxlLWxvYWRlckA0LjAuMF93ZWJwYWNrQDUuOTguMF9Ac3djK2NvcmVAMS4xMS4yNF9Ac3djK2hlbHBlcnNAMC41LjE1X19lc2J1aWxkQDAuMjQuMl8vbm9kZV9tb2R1bGVzL3N0eWxlLWxvYWRlci9kaXN0L3J1bnRpbWUvc2V0QXR0cmlidXRlc1dpdGhvdXRBdHRyaWJ1dGVzLmpzXCIpLHU9X193ZWJwYWNrX3JlcXVpcmVfXy5uKGMpLGQ9X193ZWJwYWNrX3JlcXVpcmVfXyhcIi4uLy4uL25vZGVfbW9kdWxlcy8ucG5wbS9zdHlsZS1sb2FkZXJANC4wLjBfd2VicGFja0A1Ljk4LjBfQHN3Yytjb3JlQDEuMTEuMjRfQHN3YytoZWxwZXJzQDAuNS4xNV9fZXNidWlsZEAwLjI0LjJfL25vZGVfbW9kdWxlcy9zdHlsZS1sb2FkZXIvZGlzdC9ydW50aW1lL2luc2VydFN0eWxlRWxlbWVudC5qc1wiKSxmPV9fd2VicGFja19yZXF1aXJlX18ubihkKSxwPV9fd2VicGFja19yZXF1aXJlX18oXCIuLi8uLi9ub2RlX21vZHVsZXMvLnBucG0vc3R5bGUtbG9hZGVyQDQuMC4wX3dlYnBhY2tANS45OC4wX0Bzd2MrY29yZUAxLjExLjI0X0Bzd2MraGVscGVyc0AwLjUuMTVfX2VzYnVpbGRAMC4yNC4yXy9ub2RlX21vZHVsZXMvc3R5bGUtbG9hZGVyL2Rpc3QvcnVudGltZS9zdHlsZVRhZ1RyYW5zZm9ybS5qc1wiKSxoPV9fd2VicGFja19yZXF1aXJlX18ubihwKSxnPV9fd2VicGFja19yZXF1aXJlX18oXCIuLi8uLi9ub2RlX21vZHVsZXMvLnBucG0vY3NzLWxvYWRlckA3LjEuMl9AcnNwYWNrK2NvcmVAMS40LjVfQHN3YytoZWxwZXJzQDAuNS4xNV9fd2VicGFja0A1Ljk4LjBfQHN3Yytjb3JlQDEuMTEuMjRfQHN3X3dtN2VlNWljNG1vZnJoaXN1ZHdvbjRxcHE0L25vZGVfbW9kdWxlcy9jc3MtbG9hZGVyL2Rpc3QvY2pzLmpzIS4vc3JjL25leHQtZGV2dG9vbHMvZ2xvYmFsLmNzc1wiKSxtPXt9O20uc3R5bGVUYWdUcmFuc2Zvcm09aCgpLG0uc2V0QXR0cmlidXRlcz11KCksbS5pbnNlcnQ9cygpLG0uZG9tQVBJPWkoKSxtLmluc2VydFN0eWxlRWxlbWVudD1mKCksbygpKGcuWixtKSxnLlomJmcuWi5sb2NhbHMmJmcuWi5sb2NhbHM7dmFyIHY9X193ZWJwYWNrX3JlcXVpcmVfXyhcIi4uLy4uL25vZGVfbW9kdWxlcy8ucG5wbS9jc3MtbG9hZGVyQDcuMS4yX0Byc3BhY2srY29yZUAxLjQuNV9Ac3djK2hlbHBlcnNAMC41LjE1X193ZWJwYWNrQDUuOTguMF9Ac3djK2NvcmVAMS4xMS4yNF9Ac3dfd203ZWU1aWM0bW9mcmhpc3Vkd29uNHFwcTQvbm9kZV9tb2R1bGVzL2Nzcy1sb2FkZXIvZGlzdC9janMuanMhLi9zcmMvbmV4dC1kZXZ0b29scy9kZXYtb3ZlcmxheS9jb21wb25lbnRzL3RvYXN0L3N0eWxlLmNzc1wiKSxiPXt9O2Iuc3R5bGVUYWdUcmFuc2Zvcm09aCgpLGIuc2V0QXR0cmlidXRlcz11KCksYi5pbnNlcnQ9cygpLGIuZG9tQVBJPWkoKSxiLmluc2VydFN0eWxlRWxlbWVudD1mKCksbygpKHYuWixiKSx2LlomJnYuWi5sb2NhbHMmJnYuWi5sb2NhbHM7dmFyIHk9X193ZWJwYWNrX3JlcXVpcmVfXyhcIi4vZGlzdC9jb21waWxlZC9yZWFjdC9qc3gtcnVudGltZS5qc1wiKSx4PV9fd2VicGFja19yZXF1aXJlX18oXCIuL2Rpc3QvY29tcGlsZWQvcmVhY3QvaW5kZXguanNcIik7ZnVuY3Rpb24gdyhlLG4peyhudWxsPT1ufHxuPmUubGVuZ3RoKSYmKG49ZS5sZW5ndGgpO2Zvcih2YXIgdD0wLHI9QXJyYXkobik7dDxuO3QrKylyW3RdPWVbdF07cmV0dXJuIHJ9dmFyIGo9X193ZWJwYWNrX3JlcXVpcmVfXyhcIi4vZGlzdC9jb21waWxlZC9zdGFja3RyYWNlLXBhcnNlci9zdGFjay10cmFjZS1wYXJzZXIuY2pzLmpzXCIpLGs9L1xcL19uZXh0KFxcL3N0YXRpY1xcLy4rKS8sQT1TeW1ib2wuZm9yKFwibmV4dC5jb25zb2xlLmVycm9yLmRpZ2VzdFwiKTtmdW5jdGlvbiBPKGUpe2Zvcih2YXIgbj0xO248YXJndW1lbnRzLmxlbmd0aDtuKyspe3ZhciB0PW51bGwhPWFyZ3VtZW50c1tuXT9hcmd1bWVudHNbbl06e30scj1PYmplY3Qua2V5cyh0KTtcImZ1bmN0aW9uXCI9PXR5cGVvZiBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzJiYocj1yLmNvbmNhdChPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKHQpLmZpbHRlcihmdW5jdGlvbihlKXtyZXR1cm4gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcih0LGUpLmVudW1lcmFibGV9KSkpLHIuZm9yRWFjaChmdW5jdGlvbihuKXt2YXIgcixvLGE7cj1lLG89bixhPXRbbl0sbyBpbiByP09iamVjdC5kZWZpbmVQcm9wZXJ0eShyLG8se3ZhbHVlOmEsZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITB9KTpyW29dPWF9KX1yZXR1cm4gZX1mdW5jdGlvbiBDKGUsbil7cmV0dXJuIG49bnVsbCE9bj9uOnt9LE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzP09iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKGUsT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcnMobikpOihmdW5jdGlvbihlLG4pe3ZhciB0PU9iamVjdC5rZXlzKGUpO2lmKE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMpe3ZhciByPU9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMoZSk7dC5wdXNoLmFwcGx5KHQscil9cmV0dXJuIHR9KShPYmplY3QobikpLmZvckVhY2goZnVuY3Rpb24odCl7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsdCxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKG4sdCkpfSksZX12YXIgUz17U21hbGw6MTYvMTQsTWVkaXVtOjEsTGFyZ2U6MTYvMTh9LEU9XCJzdGF0aWMtaW5kaWNhdG9yXCIsXz1cImJ1aWxkLW9rXCIsUD1cImJ1aWxkLWVycm9yXCIsej1cImJlZm9yZS1mYXN0LXJlZnJlc2hcIixMPVwiZmFzdC1yZWZyZXNoXCIsVD1cInZlcnNpb24taW5mb1wiLFI9XCJ1bmhhbmRsZWQtZXJyb3JcIixOPVwidW5oYW5kbGVkLXJlamVjdGlvblwiLEQ9XCJkZWJ1Zy1pbmZvXCIsQj1cImRldi1pbmRpY2F0b3JcIixNPVwiZXJyb3Itb3ZlcmxheS1vcGVuXCIsST1cImVycm9yLW92ZXJsYXktY2xvc2VcIixIPVwiZXJyb3Itb3ZlcmxheS10b2dnbGVcIixGPVwiYnVpbGRpbmctaW5kaWNhdG9yLXNob3dcIixVPVwiYnVpbGRpbmctaW5kaWNhdG9yLWhpZGVcIixWPVwicmVuZGVyaW5nLWluZGljYXRvci1zaG93XCIscT1cInJlbmRlcmluZy1pbmRpY2F0b3ItaGlkZVwiLFc9XCJkZXZ0b29scy1wYW5lbC1vcGVuXCIsJD1cImRldnRvb2xzLXBhbmVsLWNsb3NlXCIsWj1cImRldnRvb2xzLXBhbmVsLXRvZ2dsZVwiLFk9XCJkZXZ0b29scy1wb3NpdGlvblwiLFg9XCJkZXZ0b29scy1zY2FsZVwiLEs9XCJyZXN0YXJ0LXNlcnZlci1idXR0b25cIixRPVwiX19uZXh0anMtZGV2LXRvb2xzLXRoZW1lXCIsRz1cIl9fbmV4dGpzLWRldi10b29scy1wb3NpdGlvblwiLEo9XCJfX25leHRqcy1kZXYtdG9vbHMtc2NhbGVcIixlZT1cInNlZ21lbnQtZXhwbG9yZXItdXBkYXRlLXJvdXRlLXN0YXRlXCIsZW49L1xccysoYXQgT2JqZWN0XFwucmVhY3Rfc3RhY2tfYm90dG9tX2ZyYW1lLiopfChyZWFjdF9zdGFja19ib3R0b21fZnJhbWVALiopfChhdCByZWFjdC1zdGFjay1ib3R0b20tZnJhbWUuKil8KHJlYWN0LXN0YWNrLWJvdHRvbS1mcmFtZUAuKikvO2Z1bmN0aW9uIGV0KGUpe3JldHVybiBudWxsPT1lP3ZvaWQgMDplLnNwbGl0KGVuKVswXX12YXIgZXI9KG51bGw9PShlPXByb2Nlc3MuZW52Ll9fTkVYVF9ERVZfSU5ESUNBVE9SKT92b2lkIDA6ZS50b1N0cmluZygpKT09PVwiZmFsc2VcIixlbz17bmV4dElkOjEsYnVpbGRFcnJvcjpudWxsLGVycm9yczpbXSxub3RGb3VuZDohMSxyZW5kZXJpbmdJbmRpY2F0b3I6ITEsc3RhdGljSW5kaWNhdG9yOiExLHNob3dJbmRpY2F0b3I6ITEsZGlzYWJsZURldkluZGljYXRvcjohMSxidWlsZGluZ0luZGljYXRvcjohMSxyZWZyZXNoU3RhdGU6e3R5cGU6XCJpZGxlXCJ9LHZlcnNpb25JbmZvOntpbnN0YWxsZWQ6XCIwLjAuMFwiLHN0YWxlbmVzczpcInVua25vd25cIn0sZGVidWdJbmZvOntkZXZ0b29sc0Zyb250ZW5kVXJsOnZvaWQgMH0saXNEZXZUb29sc1BhbmVsT3BlbjohMSxzaG93UmVzdGFydFNlcnZlckJ1dHRvbjohMSxkZXZUb29sc1Bvc2l0aW9uOlwiYm90dG9tLWxlZnRcIixzY2FsZTpTLk1lZGl1bSxwYWdlOlwiXCJ9LGVhPV9fd2VicGFja19yZXF1aXJlX18oXCIuL2Rpc3QvY29tcGlsZWQvcmVhY3QtZG9tL2NsaWVudC5qc1wiKTtmdW5jdGlvbiBlaShlKXtmb3IodmFyIG49YXJndW1lbnRzLmxlbmd0aCx0PUFycmF5KG4+MT9uLTE6MCkscj0xO3I8bjtyKyspdFtyLTFdPWFyZ3VtZW50c1tyXTt2YXIgbz1lLmxlbmd0aC0xO3JldHVybihlLnNsaWNlKDAsbykucmVkdWNlKGZ1bmN0aW9uKGUsbixyKXtyZXR1cm4gZStuK3Rbcl19LFwiXCIpK2Vbb10pLnJlcGxhY2UoL1xcL1xcKltcXHNcXFNdKj9cXCpcXC8vZyxcIlwiKS5yZXBsYWNlKC9cXHMrL2csXCIgXCIpLnJlcGxhY2UoL1xccyooWzo7LHt9XSlcXHMqL2csXCIkMVwiKS5yZXBsYWNlKC87K30vZyxcIn1cIikudHJpbSgpfWZ1bmN0aW9uIGVsKCl7dmFyIGUsbix0PShlPVtcIlxcbiAgICAgIC8qIGxhdGluLWV4dCAqL1xcbiAgICAgIEBmb250LWZhY2Uge1xcbiAgICAgICAgZm9udC1mYW1pbHk6ICdfX25leHRqcy1HZWlzdCc7XFxuICAgICAgICBmb250LXN0eWxlOiBub3JtYWw7XFxuICAgICAgICBmb250LXdlaWdodDogNDAwIDYwMDtcXG4gICAgICAgIGZvbnQtZGlzcGxheTogc3dhcDtcXG4gICAgICAgIHNyYzogdXJsKC9fX25leHRqc19mb250L2dlaXN0LWxhdGluLWV4dC53b2ZmMikgZm9ybWF0KCd3b2ZmMicpO1xcbiAgICAgICAgdW5pY29kZS1yYW5nZTogVSswMTAwLTAyQkEsIFUrMDJCRC0wMkM1LCBVKzAyQzctMDJDQywgVSswMkNFLTAyRDcsXFxuICAgICAgICAgIFUrMDJERC0wMkZGLCBVKzAzMDQsIFUrMDMwOCwgVSswMzI5LCBVKzFEMDAtMURCRiwgVSsxRTAwLTFFOUYsXFxuICAgICAgICAgIFUrMUVGMi0xRUZGLCBVKzIwMjAsIFUrMjBBMC0yMEFCLCBVKzIwQUQtMjBDMCwgVSsyMTEzLCBVKzJDNjAtMkM3RixcXG4gICAgICAgICAgVStBNzIwLUE3RkY7XFxuICAgICAgfVxcbiAgICAgIC8qIGxhdGluLWV4dCAqL1xcbiAgICAgIEBmb250LWZhY2Uge1xcbiAgICAgICAgZm9udC1mYW1pbHk6ICdfX25leHRqcy1HZWlzdCBNb25vJztcXG4gICAgICAgIGZvbnQtc3R5bGU6IG5vcm1hbDtcXG4gICAgICAgIGZvbnQtd2VpZ2h0OiA0MDAgNjAwO1xcbiAgICAgICAgZm9udC1kaXNwbGF5OiBzd2FwO1xcbiAgICAgICAgc3JjOiB1cmwoL19fbmV4dGpzX2ZvbnQvZ2Vpc3QtbW9uby1sYXRpbi1leHQud29mZjIpIGZvcm1hdCgnd29mZjInKTtcXG4gICAgICAgIHVuaWNvZGUtcmFuZ2U6IFUrMDEwMC0wMkJBLCBVKzAyQkQtMDJDNSwgVSswMkM3LTAyQ0MsIFUrMDJDRS0wMkQ3LFxcbiAgICAgICAgICBVKzAyREQtMDJGRiwgVSswMzA0LCBVKzAzMDgsIFUrMDMyOSwgVSsxRDAwLTFEQkYsIFUrMUUwMC0xRTlGLFxcbiAgICAgICAgICBVKzFFRjItMUVGRiwgVSsyMDIwLCBVKzIwQTAtMjBBQiwgVSsyMEFELTIwQzAsIFUrMjExMywgVSsyQzYwLTJDN0YsXFxuICAgICAgICAgIFUrQTcyMC1BN0ZGO1xcbiAgICAgIH1cXG4gICAgICAvKiBsYXRpbiAqL1xcbiAgICAgIEBmb250LWZhY2Uge1xcbiAgICAgICAgZm9udC1mYW1pbHk6ICdfX25leHRqcy1HZWlzdCc7XFxuICAgICAgICBmb250LXN0eWxlOiBub3JtYWw7XFxuICAgICAgICBmb250LXdlaWdodDogNDAwIDYwMDtcXG4gICAgICAgIGZvbnQtZGlzcGxheTogc3dhcDtcXG4gICAgICAgIHNyYzogdXJsKC9fX25leHRqc19mb250L2dlaXN0LWxhdGluLndvZmYyKSBmb3JtYXQoJ3dvZmYyJyk7XFxuICAgICAgICB1bmljb2RlLXJhbmdlOiBVKzAwMDAtMDBGRiwgVSswMTMxLCBVKzAxNTItMDE1MywgVSswMkJCLTAyQkMsIFUrMDJDNixcXG4gICAgICAgICAgVSswMkRBLCBVKzAyREMsIFUrMDMwNCwgVSswMzA4LCBVKzAzMjksIFUrMjAwMC0yMDZGLCBVKzIwQUMsIFUrMjEyMixcXG4gICAgICAgICAgVSsyMTkxLCBVKzIxOTMsIFUrMjIxMiwgVSsyMjE1LCBVK0ZFRkYsIFUrRkZGRDtcXG4gICAgICB9XFxuICAgICAgLyogbGF0aW4gKi9cXG4gICAgICBAZm9udC1mYWNlIHtcXG4gICAgICAgIGZvbnQtZmFtaWx5OiAnX19uZXh0anMtR2Vpc3QgTW9ubyc7XFxuICAgICAgICBmb250LXN0eWxlOiBub3JtYWw7XFxuICAgICAgICBmb250LXdlaWdodDogNDAwIDYwMDtcXG4gICAgICAgIGZvbnQtZGlzcGxheTogc3dhcDtcXG4gICAgICAgIHNyYzogdXJsKC9fX25leHRqc19mb250L2dlaXN0LW1vbm8tbGF0aW4ud29mZjIpIGZvcm1hdCgnd29mZjInKTtcXG4gICAgICAgIHVuaWNvZGUtcmFuZ2U6IFUrMDAwMC0wMEZGLCBVKzAxMzEsIFUrMDE1Mi0wMTUzLCBVKzAyQkItMDJCQywgVSswMkM2LFxcbiAgICAgICAgICBVKzAyREEsIFUrMDJEQywgVSswMzA0LCBVKzAzMDgsIFUrMDMyOSwgVSsyMDAwLTIwNkYsIFUrMjBBQywgVSsyMTIyLFxcbiAgICAgICAgICBVKzIxOTEsIFUrMjE5MywgVSsyMjEyLCBVKzIyMTUsIFUrRkVGRiwgVStGRkZEO1xcbiAgICAgIH1cXG4gICAgXCJdLG58fChuPWUuc2xpY2UoMCkpLE9iamVjdC5mcmVlemUoT2JqZWN0LmRlZmluZVByb3BlcnRpZXMoZSx7cmF3Ont2YWx1ZTpPYmplY3QuZnJlZXplKG4pfX0pKSk7cmV0dXJuIGVsPWZ1bmN0aW9uKCl7cmV0dXJuIHR9LHR9dmFyIGVzPWZ1bmN0aW9uKCl7cmV0dXJuKDAseC51c2VJbnNlcnRpb25FZmZlY3QpKGZ1bmN0aW9uKCl7dmFyIGU9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudChcInN0eWxlXCIpO3JldHVybiBlLnRleHRDb250ZW50PWVpKGVsKCkpLGRvY3VtZW50LmhlYWQuYXBwZW5kQ2hpbGQoZSksZnVuY3Rpb24oKXtkb2N1bWVudC5oZWFkLnJlbW92ZUNoaWxkKGUpfX0sW10pLG51bGx9LGVjPV9fd2VicGFja19yZXF1aXJlX18oXCIuL2Rpc3QvY29tcGlsZWQvcmVhY3QtZG9tL2luZGV4LmpzXCIpO2Z1bmN0aW9uIGV1KGUsbil7KG51bGw9PW58fG4+ZS5sZW5ndGgpJiYobj1lLmxlbmd0aCk7Zm9yKHZhciB0PTAscj1BcnJheShuKTt0PG47dCsrKXJbdF09ZVt0XTtyZXR1cm4gcn1mdW5jdGlvbiBlZChlKXt2YXIgbix0LHI9ZS5jaGlsZHJlbixvPXgudXNlUmVmKG51bGwpLGE9eC51c2VSZWYobnVsbCksaT0obj14LnVzZVN0YXRlKCksdD0yLGZ1bmN0aW9uKGUpe2lmKEFycmF5LmlzQXJyYXkoZSkpcmV0dXJuIGV9KG4pfHxmdW5jdGlvbihlLG4pe3ZhciB0LHIsbz1udWxsPT1lP251bGw6XCJ1bmRlZmluZWRcIiE9dHlwZW9mIFN5bWJvbCYmZVtTeW1ib2wuaXRlcmF0b3JdfHxlW1wiQEBpdGVyYXRvclwiXTtpZihudWxsIT1vKXt2YXIgYT1bXSxpPSEwLGw9ITE7dHJ5e2ZvcihvPW8uY2FsbChlKTshKGk9KHQ9by5uZXh0KCkpLmRvbmUpJiYoYS5wdXNoKHQudmFsdWUpLGEubGVuZ3RoIT09bik7aT0hMCk7fWNhdGNoKGUpe2w9ITAscj1lfWZpbmFsbHl7dHJ5e2l8fG51bGw9PW8ucmV0dXJufHxvLnJldHVybigpfWZpbmFsbHl7aWYobCl0aHJvdyByfX1yZXR1cm4gYX19KG4sMil8fGZ1bmN0aW9uKGUsbil7aWYoZSl7aWYoXCJzdHJpbmdcIj09dHlwZW9mIGUpcmV0dXJuIGV1KGUsbik7dmFyIHQ9T2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKGUpLnNsaWNlKDgsLTEpO2lmKFwiT2JqZWN0XCI9PT10JiZlLmNvbnN0cnVjdG9yJiYodD1lLmNvbnN0cnVjdG9yLm5hbWUpLFwiTWFwXCI9PT10fHxcIlNldFwiPT09dClyZXR1cm4gQXJyYXkuZnJvbSh0KTtpZihcIkFyZ3VtZW50c1wiPT09dHx8L14oPzpVaXxJKW50KD86OHwxNnwzMikoPzpDbGFtcGVkKT9BcnJheSQvLnRlc3QodCkpcmV0dXJuIGV1KGUsbil9fShuLHQpfHxmdW5jdGlvbigpe3Rocm93IFR5cGVFcnJvcihcIkludmFsaWQgYXR0ZW1wdCB0byBkZXN0cnVjdHVyZSBub24taXRlcmFibGUgaW5zdGFuY2UuXFxcXG5JbiBvcmRlciB0byBiZSBpdGVyYWJsZSwgbm9uLWFycmF5IG9iamVjdHMgbXVzdCBoYXZlIGEgW1N5bWJvbC5pdGVyYXRvcl0oKSBtZXRob2QuXCIpfSgpKVsxXTtyZXR1cm4geC51c2VFZmZlY3QoZnVuY3Rpb24oKXtpZihvLmN1cnJlbnQ9ZG9jdW1lbnQucXVlcnlTZWxlY3RvcihcIm5leHRqcy1wb3J0YWxcIiksXCJ1bmRlZmluZWRcIiE9dHlwZW9mIGxvY2FsU3RvcmFnZSl7dmFyIGU9bG9jYWxTdG9yYWdlLmdldEl0ZW0oUSk7XCJkYXJrXCI9PT1lPyhvLmN1cnJlbnQuY2xhc3NMaXN0LmFkZChcImRhcmtcIiksby5jdXJyZW50LmNsYXNzTGlzdC5yZW1vdmUoXCJsaWdodFwiKSk6XCJsaWdodFwiPT09ZSYmKG8uY3VycmVudC5jbGFzc0xpc3QucmVtb3ZlKFwiZGFya1wiKSxvLmN1cnJlbnQuY2xhc3NMaXN0LmFkZChcImxpZ2h0XCIpKX1udWxsPT09by5jdXJyZW50LnNoYWRvd1Jvb3QmJihhLmN1cnJlbnQ9by5jdXJyZW50LmF0dGFjaFNoYWRvdyh7bW9kZTpcIm9wZW5cIn0pKSxpKHt9KX0sW10pLGEuY3VycmVudD8oMCxlYy5jcmVhdGVQb3J0YWwpKHIsYS5jdXJyZW50KTpudWxsfWZ1bmN0aW9uIGVmKCl7dmFyIGUsbix0PShlPVtcIlxcbiAgICAgICAgOmhvc3Qge1xcbiAgICAgICAgICAvKiBcXG4gICAgICAgICAgICogQWx0aG91Z2ggdGhlIHN0eWxlIGFwcGxpZWQgdG8gdGhlIHNoYWRvdyBob3N0IGlzIGlzb2xhdGVkLFxcbiAgICAgICAgICAgKiB0aGUgZWxlbWVudCB0aGF0IGF0dGFjaGVkIHRoZSBzaGFkb3cgaG9zdCAoaS5lLiBcXFwibmV4dGpzLXBvcnRhbFxcXCIpXFxuICAgICAgICAgICAqIGlzIHN0aWxsIGFmZmVjdGVkIGJ5IHRoZSBwYXJlbnQncyBzdHlsZSAoZS5nLiBcXFwiYm9keVxcXCIpLiBUaGlzIG1heVxcbiAgICAgICAgICAgKiBvY2N1ciBzdHlsZSBjb25mbGljdHMgbGlrZSBcXFwiZGlzcGxheTogZmxleFxcXCIsIHdpdGggb3RoZXIgY2hpbGRyZW5cXG4gICAgICAgICAgICogZWxlbWVudHMgdGhlcmVmb3JlIGdpdmUgdGhlIHNoYWRvdyBob3N0IGFuIGFic29sdXRlIHBvc2l0aW9uLlxcbiAgICAgICAgICAgKi9cXG4gICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xcblxcbiAgICAgICAgICAtLWNvbG9yLWZvbnQ6ICM3NTc1NzU7XFxuICAgICAgICAgIC0tY29sb3ItYmFja2Ryb3A6IHJnYmEoMjUwLCAyNTAsIDI1MCwgMC44KTtcXG4gICAgICAgICAgLS1jb2xvci1ib3JkZXItc2hhZG93OiByZ2JhKDAsIDAsIDAsIDAuMTQ1KTtcXG5cXG4gICAgICAgICAgLS1jb2xvci10aXRsZS1jb2xvcjogIzFmMWYxZjtcXG4gICAgICAgICAgLS1jb2xvci1zdGFjay1ub3RlczogIzc3NztcXG5cXG4gICAgICAgICAgLS1jb2xvci1hY2NlbnRzLTE6ICM4MDgwODA7XFxuICAgICAgICAgIC0tY29sb3ItYWNjZW50cy0yOiAjMjIyMjIyO1xcbiAgICAgICAgICAtLWNvbG9yLWFjY2VudHMtMzogIzQwNDA0MDtcXG5cXG4gICAgICAgICAgLS1mb250LXN0YWNrLW1vbm9zcGFjZTogJ19fbmV4dGpzLUdlaXN0IE1vbm8nLCAnR2Vpc3QgTW9ubycsXFxuICAgICAgICAgICAgJ1NGTW9uby1SZWd1bGFyJywgQ29uc29sYXMsICdMaWJlcmF0aW9uIE1vbm8nLCBNZW5sbywgQ291cmllcixcXG4gICAgICAgICAgICBtb25vc3BhY2U7XFxuICAgICAgICAgIC0tZm9udC1zdGFjay1zYW5zOiAnX19uZXh0anMtR2Vpc3QnLCAnR2Vpc3QnLCAtYXBwbGUtc3lzdGVtLFxcbiAgICAgICAgICAgICdTb3VyY2UgU2FucyBQcm8nLCBzYW5zLXNlcmlmO1xcblxcbiAgICAgICAgICBmb250LWZhbWlseTogdmFyKC0tZm9udC1zdGFjay1zYW5zKTtcXG4gICAgICAgICAgZm9udC12YXJpYW50LWxpZ2F0dXJlczogbm9uZTtcXG5cXG4gICAgICAgICAgLyogVE9ETzogUmVtb3ZlIHJlcGxhY2VkIG9uZXMuICovXFxuICAgICAgICAgIC0tc2hhZG93LXNtOiAwIDFweCAycHggMCByZ2IoMCAwIDAgLyAwLjA1KTtcXG4gICAgICAgICAgLS1zaGFkb3c6IDAgMXB4IDNweCAwIHJnYigwIDAgMCAvIDAuMSksXFxuICAgICAgICAgICAgMCAxcHggMnB4IC0xcHggcmdiKDAgMCAwIC8gMC4xKTtcXG4gICAgICAgICAgLS1zaGFkb3ctbWQ6IDAgNHB4IDZweCAtMXB4IHJnYigwIDAgMCAvIDAuMSksXFxuICAgICAgICAgICAgMCAycHggNHB4IC0ycHggcmdiKDAgMCAwIC8gMC4xKTtcXG4gICAgICAgICAgLS1zaGFkb3ctbGc6IDAgMTBweCAxNXB4IC0zcHggcmdiKDAgMCAwIC8gMC4xKSxcXG4gICAgICAgICAgICAwIDRweCA2cHggLTRweCByZ2IoMCAwIDAgLyAwLjEpO1xcbiAgICAgICAgICAtLXNoYWRvdy14bDogMCAyMHB4IDI1cHggLTVweCByZ2IoMCAwIDAgLyAwLjEpLFxcbiAgICAgICAgICAgIDAgOHB4IDEwcHggLTZweCByZ2IoMCAwIDAgLyAwLjEpO1xcbiAgICAgICAgICAtLXNoYWRvdy0yeGw6IDAgMjVweCA1MHB4IC0xMnB4IHJnYigwIDAgMCAvIDAuMjUpO1xcbiAgICAgICAgICAtLXNoYWRvdy1pbm5lcjogaW5zZXQgMCAycHggNHB4IDAgcmdiKDAgMCAwIC8gMC4wNSk7XFxuICAgICAgICAgIC0tc2hhZG93LW5vbmU6IDAgMCAjMDAwMDtcXG5cXG4gICAgICAgICAgLS1zaGFkb3ctc21hbGw6IDBweCAycHggMnB4IHJnYmEoMCwgMCwgMCwgMC4wNCk7XFxuICAgICAgICAgIC0tc2hhZG93LW1lbnU6IDBweCAxcHggMXB4IHJnYmEoMCwgMCwgMCwgMC4wMiksXFxuICAgICAgICAgICAgMHB4IDRweCA4cHggLTRweCByZ2JhKDAsIDAsIDAsIDAuMDQpLFxcbiAgICAgICAgICAgIDBweCAxNnB4IDI0cHggLThweCByZ2JhKDAsIDAsIDAsIDAuMDYpO1xcblxcbiAgICAgICAgICAtLWZvY3VzLWNvbG9yOiB2YXIoLS1jb2xvci1ibHVlLTgwMCk7XFxuICAgICAgICAgIC0tZm9jdXMtcmluZzogMnB4IHNvbGlkIHZhcigtLWZvY3VzLWNvbG9yKTtcXG5cXG4gICAgICAgICAgLS10aW1pbmctc3dpZnQ6IGN1YmljLWJlemllcigwLjIzLCAwLjg4LCAwLjI2LCAwLjkyKTtcXG4gICAgICAgICAgLS10aW1pbmctb3ZlcmxheTogY3ViaWMtYmV6aWVyKDAuMTc1LCAwLjg4NSwgMC4zMiwgMS4xKTtcXG4gICAgICAgICAgLyogcHJldHRpZXItaWdub3JlICovXFxuICAgICAgICAgIC0tdGltaW5nLWJvdW5jZTogbGluZWFyKDAgMCUsIDAuMDA1ODcxIDElLCAwLjAyMjA1OCAyJSwgMC4wNDY2MTIgMyUsIDAuMDc3ODIzIDQlLCAwLjExNDE5OSA1JSwgMC4xNTQ0NDEgNiUsIDAuMTk3NDMxIDcuMDAwMDAwMDAwMDAwMDAxJSwgMC4yNDIyMDggOCUsIDAuMjg3OTU5IDklLCAwLjMzMzk5NSAxMCUsIDAuMzc5NzQzIDExJSwgMC40MjQ3MzIgMTIlLCAwLjQ2ODU4IDEzJSwgMC41MTA5ODIgMTQuMDAwMDAwMDAwMDAwMDAyJSwgMC41NTE3MDIgMTUlLCAwLjU5MDU2NCAxNiUsIDAuNjI3NDQ1IDE3JSwgMC42NjIyNjEgMTglLCAwLjY5NDk3MSAxOSUsIDAuNzI1NTYxIDIwJSwgMC43NTQwNDcgMjElLCAwLjc4MDQ2MiAyMiUsIDAuODA0ODYxIDIzJSwgMC44MjczMSAyNCUsIDAuODQ3ODg4IDI1JSwgMC44NjY2NzkgMjYlLCAwLjg4Mzc3NSAyNyUsIDAuODk5MjcyIDI4LjAwMDAwMDAwMDAwMDAwNCUsIDAuOTEzMjY3IDI4Ljk5OTk5OTk5OTk5OTk5NiUsIDAuOTI1ODU2IDMwJSwgMC45MzcxMzcgMzElLCAwLjk0NzIwNSAzMiUsIDAuOTU2MTUzIDMzJSwgMC45NjQwNyAzNCUsIDAuOTcxMDQzIDM1JSwgMC45NzcxNTMgMzYlLCAwLjk4MjQ3OSAzNyUsIDAuOTg3MDk0IDM4JSwgMC45OTEwNjYgMzklLCAwLjk5NDQ2MiA0MCUsIDAuOTk3MzM5IDQxJSwgMC45OTk3NTUgNDIlLCAxLjAwMTc2MSA0MyUsIDEuMDAzNDA0IDQ0JSwgMS4wMDQ3MjcgNDUlLCAxLjAwNTc3IDQ2JSwgMS4wMDY1NjkgNDclLCAxLjAwNzE1NyA0OCUsIDEuMDA3NTYzIDQ5JSwgMS4wMDc4MTMgNTAlLCAxLjAwNzkzMSA1MSUsIDEuMDA3OTM5IDUyJSwgMS4wMDc4NTUgNTMlLCAxLjAwNzY5NyA1NCUsIDEuMDA3NDc3IDU1LjAwMDAwMDAwMDAwMDAxJSwgMS4wMDcyMSA1Ni4wMDAwMDAwMDAwMDAwMSUsIDEuMDA2OTA3IDU2Ljk5OTk5OTk5OTk5OTk5JSwgMS4wMDY1NzYgNTcuOTk5OTk5OTk5OTk5OTklLCAxLjAwNjIyOCA1OSUsIDEuMDA1ODY4IDYwJSwgMS4wMDU1MDMgNjElLCAxLjAwNTEzNyA2MiUsIDEuMDA0Nzc2IDYzJSwgMS4wMDQ0MjIgNjQlLCAxLjAwNDA3OCA2NSUsIDEuMDAzNzQ2IDY2JSwgMS4wMDM0MjkgNjclLCAxLjAwMzEyNyA2OCUsIDEuMDAyODQgNjklLCAxLjAwMjU3MSA3MCUsIDEuMDAyMzE4IDcxJSwgMS4wMDIwODIgNzIlLCAxLjAwMTg2MyA3MyUsIDEuMDAxNjYgNzQlLCAxLjAwMTQ3MyA3NSUsIDEuMDAxMzAxIDc2JSwgMS4wMDExNDMgNzclLCAxLjAwMSA3OCUsIDEuMDAwODY5IDc5JSwgMS4wMDA3NTIgODAlLCAxLjAwMDY0NSA4MSUsIDEuMDAwNTUgODIlLCAxLjAwMDQ2NCA4MyUsIDEuMDAwMzg4IDg0JSwgMS4wMDAzMjEgODUlLCAxLjAwMDI2MSA4NiUsIDEuMDAwMjA5IDg3JSwgMS4wMDAxNjMgODglLCAxLjAwMDEyMyA4OSUsIDEuMDAwMDg4IDkwJSk7XFxuXFxuICAgICAgICAgIC0tcm91bmRlZC1ub25lOiAwcHg7XFxuICAgICAgICAgIC0tcm91bmRlZC1zbTogMnB4O1xcbiAgICAgICAgICAtLXJvdW5kZWQtbWQ6IDRweDtcXG4gICAgICAgICAgLS1yb3VuZGVkLW1kLTI6IDZweDtcXG4gICAgICAgICAgLS1yb3VuZGVkLWxnOiA4cHg7XFxuICAgICAgICAgIC0tcm91bmRlZC14bDogMTJweDtcXG4gICAgICAgICAgLS1yb3VuZGVkLTJ4bDogMTZweDtcXG4gICAgICAgICAgLS1yb3VuZGVkLTN4bDogMjRweDtcXG4gICAgICAgICAgLS1yb3VuZGVkLTR4bDogMzJweDtcXG4gICAgICAgICAgLS1yb3VuZGVkLWZ1bGw6IDk5OTlweDtcXG5cXG4gICAgICAgICAgLyogXFxuICAgICAgICAgICAgVGhpcyB2YWx1ZSBnZXRzIHNldCBmcm9tIHRoZSBEZXYgVG9vbHMgcHJlZmVyZW5jZXMsXFxuICAgICAgICAgICAgYW5kIHdlIHVzZSB0aGUgZm9sbG93aW5nIC0tc2l6ZS0qIHZhcmlhYmxlcyB0byBcXG4gICAgICAgICAgICBzY2FsZSB0aGUgcmVsZXZhbnQgZWxlbWVudHMuXFxuXFxuICAgICAgICAgICAgVGhlIHJlYXNvbiB3aHkgd2UgZG9uJ3QgcmVseSBvbiByZW0gdmFsdWVzIGlzIGJlY2F1c2VcXG4gICAgICAgICAgICBpZiBhbiBhcHAgc2V0cyB0aGVpciByb290IGZvbnQgc2l6ZSB0byBzb21ldGhpbmcgdGlueSwgXFxuICAgICAgICAgICAgaXQgZmVlbHMgdW5leHBlY3RlZCB0byBoYXZlIHRoZSBhcHAgcm9vdCBzaXplIGxlYWsgXFxuICAgICAgICAgICAgaW50byBhIE5leHQuanMgc3VyZmFjZS5cXG5cXG4gICAgICAgICAgICBodHRwczovL2dpdGh1Yi5jb20vdmVyY2VsL25leHQuanMvZGlzY3Vzc2lvbnMvNzY4MTJcXG4gICAgICAgICAgKi9cXG4gICAgICAgICAgLS1uZXh0anMtZGV2LXRvb2xzLXNjYWxlOiBcIixcIjtcXG4gICAgICAgICAgLS1zaXplLTE6IGNhbGMoMXB4IC8gdmFyKC0tbmV4dGpzLWRldi10b29scy1zY2FsZSkpO1xcbiAgICAgICAgICAtLXNpemUtMjogY2FsYygycHggLyB2YXIoLS1uZXh0anMtZGV2LXRvb2xzLXNjYWxlKSk7XFxuICAgICAgICAgIC0tc2l6ZS0zOiBjYWxjKDNweCAvIHZhcigtLW5leHRqcy1kZXYtdG9vbHMtc2NhbGUpKTtcXG4gICAgICAgICAgLS1zaXplLTQ6IGNhbGMoNHB4IC8gdmFyKC0tbmV4dGpzLWRldi10b29scy1zY2FsZSkpO1xcbiAgICAgICAgICAtLXNpemUtNTogY2FsYyg1cHggLyB2YXIoLS1uZXh0anMtZGV2LXRvb2xzLXNjYWxlKSk7XFxuICAgICAgICAgIC0tc2l6ZS02OiBjYWxjKDZweCAvIHZhcigtLW5leHRqcy1kZXYtdG9vbHMtc2NhbGUpKTtcXG4gICAgICAgICAgLS1zaXplLTc6IGNhbGMoN3B4IC8gdmFyKC0tbmV4dGpzLWRldi10b29scy1zY2FsZSkpO1xcbiAgICAgICAgICAtLXNpemUtODogY2FsYyg4cHggLyB2YXIoLS1uZXh0anMtZGV2LXRvb2xzLXNjYWxlKSk7XFxuICAgICAgICAgIC0tc2l6ZS05OiBjYWxjKDlweCAvIHZhcigtLW5leHRqcy1kZXYtdG9vbHMtc2NhbGUpKTtcXG4gICAgICAgICAgLS1zaXplLTEwOiBjYWxjKDEwcHggLyB2YXIoLS1uZXh0anMtZGV2LXRvb2xzLXNjYWxlKSk7XFxuICAgICAgICAgIC0tc2l6ZS0xMTogY2FsYygxMXB4IC8gdmFyKC0tbmV4dGpzLWRldi10b29scy1zY2FsZSkpO1xcbiAgICAgICAgICAtLXNpemUtMTI6IGNhbGMoMTJweCAvIHZhcigtLW5leHRqcy1kZXYtdG9vbHMtc2NhbGUpKTtcXG4gICAgICAgICAgLS1zaXplLTEzOiBjYWxjKDEzcHggLyB2YXIoLS1uZXh0anMtZGV2LXRvb2xzLXNjYWxlKSk7XFxuICAgICAgICAgIC0tc2l6ZS0xNDogY2FsYygxNHB4IC8gdmFyKC0tbmV4dGpzLWRldi10b29scy1zY2FsZSkpO1xcbiAgICAgICAgICAtLXNpemUtMTU6IGNhbGMoMTVweCAvIHZhcigtLW5leHRqcy1kZXYtdG9vbHMtc2NhbGUpKTtcXG4gICAgICAgICAgLS1zaXplLTE2OiBjYWxjKDE2cHggLyB2YXIoLS1uZXh0anMtZGV2LXRvb2xzLXNjYWxlKSk7XFxuICAgICAgICAgIC0tc2l6ZS0xNzogY2FsYygxN3B4IC8gdmFyKC0tbmV4dGpzLWRldi10b29scy1zY2FsZSkpO1xcbiAgICAgICAgICAtLXNpemUtMTg6IGNhbGMoMThweCAvIHZhcigtLW5leHRqcy1kZXYtdG9vbHMtc2NhbGUpKTtcXG4gICAgICAgICAgLS1zaXplLTIwOiBjYWxjKDIwcHggLyB2YXIoLS1uZXh0anMtZGV2LXRvb2xzLXNjYWxlKSk7XFxuICAgICAgICAgIC0tc2l6ZS0yMjogY2FsYygyMnB4IC8gdmFyKC0tbmV4dGpzLWRldi10b29scy1zY2FsZSkpO1xcbiAgICAgICAgICAtLXNpemUtMjQ6IGNhbGMoMjRweCAvIHZhcigtLW5leHRqcy1kZXYtdG9vbHMtc2NhbGUpKTtcXG4gICAgICAgICAgLS1zaXplLTI2OiBjYWxjKDI2cHggLyB2YXIoLS1uZXh0anMtZGV2LXRvb2xzLXNjYWxlKSk7XFxuICAgICAgICAgIC0tc2l6ZS0yODogY2FsYygyOHB4IC8gdmFyKC0tbmV4dGpzLWRldi10b29scy1zY2FsZSkpO1xcbiAgICAgICAgICAtLXNpemUtMzA6IGNhbGMoMzBweCAvIHZhcigtLW5leHRqcy1kZXYtdG9vbHMtc2NhbGUpKTtcXG4gICAgICAgICAgLS1zaXplLTMyOiBjYWxjKDMycHggLyB2YXIoLS1uZXh0anMtZGV2LXRvb2xzLXNjYWxlKSk7XFxuICAgICAgICAgIC0tc2l6ZS0zNDogY2FsYygzNHB4IC8gdmFyKC0tbmV4dGpzLWRldi10b29scy1zY2FsZSkpO1xcbiAgICAgICAgICAtLXNpemUtMzY6IGNhbGMoMzZweCAvIHZhcigtLW5leHRqcy1kZXYtdG9vbHMtc2NhbGUpKTtcXG4gICAgICAgICAgLS1zaXplLTM4OiBjYWxjKDM4cHggLyB2YXIoLS1uZXh0anMtZGV2LXRvb2xzLXNjYWxlKSk7XFxuICAgICAgICAgIC0tc2l6ZS00MDogY2FsYyg0MHB4IC8gdmFyKC0tbmV4dGpzLWRldi10b29scy1zY2FsZSkpO1xcbiAgICAgICAgICAtLXNpemUtNDI6IGNhbGMoNDJweCAvIHZhcigtLW5leHRqcy1kZXYtdG9vbHMtc2NhbGUpKTtcXG4gICAgICAgICAgLS1zaXplLTQ0OiBjYWxjKDQ0cHggLyB2YXIoLS1uZXh0anMtZGV2LXRvb2xzLXNjYWxlKSk7XFxuICAgICAgICAgIC0tc2l6ZS00NjogY2FsYyg0NnB4IC8gdmFyKC0tbmV4dGpzLWRldi10b29scy1zY2FsZSkpO1xcbiAgICAgICAgICAtLXNpemUtNDg6IGNhbGMoNDhweCAvIHZhcigtLW5leHRqcy1kZXYtdG9vbHMtc2NhbGUpKTtcXG5cXG4gICAgICAgICAgQG1lZGlhIHByaW50IHtcXG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xcbiAgICAgICAgICB9XFxuICAgICAgICB9XFxuXFxuICAgICAgICBoMSxcXG4gICAgICAgIGgyLFxcbiAgICAgICAgaDMsXFxuICAgICAgICBoNCxcXG4gICAgICAgIGg1LFxcbiAgICAgICAgaDYge1xcbiAgICAgICAgICBtYXJnaW4tYm90dG9tOiA4cHg7XFxuICAgICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7XFxuICAgICAgICAgIGxpbmUtaGVpZ2h0OiAxLjU7XFxuICAgICAgICB9XFxuXFxuICAgICAgICBhIHtcXG4gICAgICAgICAgY29sb3I6IHZhcigtLWNvbG9yLWJsdWUtOTAwKTtcXG4gICAgICAgICAgJjpob3ZlciB7XFxuICAgICAgICAgICAgY29sb3I6IHZhcigtLWNvbG9yLWJsdWUtOTAwKTtcXG4gICAgICAgICAgfVxcbiAgICAgICAgICAmOmZvY3VzLXZpc2libGUge1xcbiAgICAgICAgICAgIG91dGxpbmU6IHZhcigtLWZvY3VzLXJpbmcpO1xcbiAgICAgICAgICB9XFxuICAgICAgICB9XFxuICAgICAgXCJdLG58fChuPWUuc2xpY2UoMCkpLE9iamVjdC5mcmVlemUoT2JqZWN0LmRlZmluZVByb3BlcnRpZXMoZSx7cmF3Ont2YWx1ZTpPYmplY3QuZnJlZXplKG4pfX0pKSk7cmV0dXJuIGVmPWZ1bmN0aW9uKCl7cmV0dXJuIHR9LHR9ZnVuY3Rpb24gZXAoZSl7dmFyIG49ZS5zY2FsZTtyZXR1cm4oMCx5LmpzeCkoXCJzdHlsZVwiLHtjaGlsZHJlbjplaShlZigpLFN0cmluZyh2b2lkIDA9PT1uPzE6bikpfSl9ZnVuY3Rpb24gZWgoZSl7aWYoXCJcIj09PWUudHJpbSgpKXRocm93IEVycm9yKFwiY2FuJ3QgZGVjb2RlIGVtcHR5IGhleFwiKTt2YXIgbj1wYXJzZUludChlLDE2KTtpZihpc05hTihuKSl0aHJvdyBFcnJvcihcImludmFsaWQgaGV4OiBgXCIuY29uY2F0KGUsXCJgXCIpKTtyZXR1cm4gU3RyaW5nLmZyb21Db2RlUG9pbnQobil9dmFyIGVnPS9eX19UVVJCT1BBQ0tfXyhbYS16QS1aMC05XyRdKylfXyQvLGVtPS9odHRwcz86XFwvXFwvW15cXHMvJC4/I10uW15cXHMpJ1wiXSovaSxldj1uZXcgUmVnRXhwKFwiKFwiLmNvbmNhdCgvX19UVVJCT1BBQ0tfX1thLXpBLVowLTlfJF0rX18vZy5zb3VyY2UsXCJ8XFxcXHMrKVwiKSksZWI9ZnVuY3Rpb24oZSl7dmFyIG49ZS50ZXh0LHQ9ZS5tYXRjaGVyLHI9bi5zcGxpdChldik7cmV0dXJuKDAseS5qc3gpKHkuRnJhZ21lbnQse2NoaWxkcmVuOnIubWFwKGZ1bmN0aW9uKGUsbil7aWYoZW0udGVzdChlKSl7dmFyIHI9ZW0uZXhlYyhlKVswXTtyZXR1cm5cImZ1bmN0aW9uXCIhPXR5cGVvZiB0fHx0KHIpPygwLHkuanN4KSh4LkZyYWdtZW50LHtjaGlsZHJlbjooMCx5LmpzeCkoXCJhXCIse2hyZWY6cix0YXJnZXQ6XCJfYmxhbmtcIixyZWw6XCJub3JlZmVycmVyIG5vb3BlbmVyXCIsY2hpbGRyZW46ZX0pfSxcImxpbmstXCIuY29uY2F0KG4pKTplfXRyeXt2YXIgbz1mdW5jdGlvbihlKXt2YXIgbj1lLm1hdGNoKGVnKTtpZighbilyZXR1cm4gZTtmb3IodmFyIHQ9blsxXSxyPVwiXCIsbz0wLGE9XCJcIixpPTA7aTx0Lmxlbmd0aDtpKyspe3ZhciBsPXRbaV07aWYoMD09PW8pXCJfXCI9PT1sP289MTpcIiRcIj09PWw/bz0yOnIrPWw7ZWxzZSBpZigxPT09bylcIl9cIj09PWw/KHIrPVwiIFwiLG89MCk6XCIkXCI9PT1sPyhyKz1cIl9cIixvPTIpOihyKz1sLG89MCk7ZWxzZSBpZigyPT09bylpZigyPT09YS5sZW5ndGgmJihyKz1laChhKSxhPVwiXCIpLFwiX1wiPT09bCl7aWYoXCJcIiE9PWEpdGhyb3cgRXJyb3IoXCJpbnZhbGlkIGhleDogYFwiLmNvbmNhdChhLFwiYFwiKSk7bz0zfWVsc2UgaWYoXCIkXCI9PT1sKXtpZihcIlwiIT09YSl0aHJvdyBFcnJvcihcImludmFsaWQgaGV4OiBgXCIuY29uY2F0KGEsXCJgXCIpKTtvPTB9ZWxzZSBhKz1sO2Vsc2UgaWYoMz09PW8paWYoXCJfXCI9PT1sKXRocm93IEVycm9yKFwiaW52YWxpZCBoZXg6IGBcIi5jb25jYXQoYStsLFwiYFwiKSk7ZWxzZVwiJFwiPT09bD8ocis9ZWgoYSksYT1cIlwiLG89MCk6YSs9bH1yZXR1cm4gcn0oZSk7aWYobyE9PWUpcmV0dXJuKDAseS5qc3hzKShcImlcIix7Y2hpbGRyZW46W1wie1wiLG8sXCJ9XCJdfSxcImlkZW50LVwiLmNvbmNhdChuKSl9Y2F0Y2godCl7cmV0dXJuKDAseS5qc3hzKShcImlcIix7Y2hpbGRyZW46W1wie1wiLGUsXCIgKGRlY29kaW5nIGZhaWxlZDogXCIsXCJcIit0LFwiKVwiLFwifVwiXX0sXCJpZGVudC1cIi5jb25jYXQobikpfXJldHVybigwLHkuanN4KSh4LkZyYWdtZW50LHtjaGlsZHJlbjplfSxcInRleHQtXCIuY29uY2F0KG4pKX0pfSl9LGV5PVsvXndlYnBhY2staW50ZXJuYWw6XFwvXFwvXFwvKFxcKFtcXHctXStcXClcXC8pPy8sL14od2VicGFjazpcXC9cXC9cXC98d2VicGFjazpcXC9cXC8oX05fRVxcLyk/KShcXChbXFx3LV0rXFwpXFwvKT8vXTtmdW5jdGlvbiBleChlKXt2YXIgbj0hMCx0PSExLHI9dm9pZCAwO3RyeXtmb3IodmFyIG8sYT1leVtTeW1ib2wuaXRlcmF0b3JdKCk7IShuPShvPWEubmV4dCgpKS5kb25lKTtuPSEwKXt2YXIgaT1vLnZhbHVlO2lmKGkudGVzdChlKSlyZXR1cm4hMDtlPWUucmVwbGFjZShpLFwiXCIpfX1jYXRjaChlKXt0PSEwLHI9ZX1maW5hbGx5e3RyeXtufHxudWxsPT1hLnJldHVybnx8YS5yZXR1cm4oKX1maW5hbGx5e2lmKHQpdGhyb3cgcn19cmV0dXJuITF9ZnVuY3Rpb24gZXcoZSl7dmFyIG49ITAsdD0hMSxyPXZvaWQgMDt0cnl7Zm9yKHZhciBvLGE9ZXlbU3ltYm9sLml0ZXJhdG9yXSgpOyEobj0obz1hLm5leHQoKSkuZG9uZSk7bj0hMCl7dmFyIGk9by52YWx1ZTtlPWUucmVwbGFjZShpLFwiXCIpfX1jYXRjaChlKXt0PSEwLHI9ZX1maW5hbGx5e3RyeXtufHxudWxsPT1hLnJldHVybnx8YS5yZXR1cm4oKX1maW5hbGx5e2lmKHQpdGhyb3cgcn19cmV0dXJuIGV9ZnVuY3Rpb24gZWooZSxuLHQscixvLGEsaSl7dHJ5e3ZhciBsPWVbYV0oaSkscz1sLnZhbHVlfWNhdGNoKGUpe3QoZSk7cmV0dXJufWwuZG9uZT9uKHMpOlByb21pc2UucmVzb2x2ZShzKS50aGVuKHIsbyl9ZnVuY3Rpb24gZWsoZSl7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIG49dGhpcyx0PWFyZ3VtZW50cztyZXR1cm4gbmV3IFByb21pc2UoZnVuY3Rpb24ocixvKXt2YXIgYT1lLmFwcGx5KG4sdCk7ZnVuY3Rpb24gaShlKXtlaihhLHIsbyxpLGwsXCJuZXh0XCIsZSl9ZnVuY3Rpb24gbChlKXtlaihhLHIsbyxpLGwsXCJ0aHJvd1wiLGUpfWkodm9pZCAwKX0pfX1mdW5jdGlvbiBlQShlLG4pe3ZhciB0LHIsbyxhPXtsYWJlbDowLHNlbnQ6ZnVuY3Rpb24oKXtpZigxJm9bMF0pdGhyb3cgb1sxXTtyZXR1cm4gb1sxXX0sdHJ5czpbXSxvcHM6W119LGk9T2JqZWN0LmNyZWF0ZSgoXCJmdW5jdGlvblwiPT10eXBlb2YgSXRlcmF0b3I/SXRlcmF0b3I6T2JqZWN0KS5wcm90b3R5cGUpO3JldHVybiBpLm5leHQ9bCgwKSxpLnRocm93PWwoMSksaS5yZXR1cm49bCgyKSxcImZ1bmN0aW9uXCI9PXR5cGVvZiBTeW1ib2wmJihpW1N5bWJvbC5pdGVyYXRvcl09ZnVuY3Rpb24oKXtyZXR1cm4gdGhpc30pLGk7ZnVuY3Rpb24gbChsKXtyZXR1cm4gZnVuY3Rpb24ocyl7dmFyIGM9W2wsc107aWYodCl0aHJvdyBUeXBlRXJyb3IoXCJHZW5lcmF0b3IgaXMgYWxyZWFkeSBleGVjdXRpbmcuXCIpO2Zvcig7aSYmKGk9MCxjWzBdJiYoYT0wKSksYTspdHJ5e2lmKHQ9MSxyJiYobz0yJmNbMF0/ci5yZXR1cm46Y1swXT9yLnRocm93fHwoKG89ci5yZXR1cm4pJiZvLmNhbGwociksMCk6ci5uZXh0KSYmIShvPW8uY2FsbChyLGNbMV0pKS5kb25lKXJldHVybiBvO3N3aXRjaChyPTAsbyYmKGM9WzImY1swXSxvLnZhbHVlXSksY1swXSl7Y2FzZSAwOmNhc2UgMTpvPWM7YnJlYWs7Y2FzZSA0OnJldHVybiBhLmxhYmVsKysse3ZhbHVlOmNbMV0sZG9uZTohMX07Y2FzZSA1OmEubGFiZWwrKyxyPWNbMV0sYz1bMF07Y29udGludWU7Y2FzZSA3OmM9YS5vcHMucG9wKCksYS50cnlzLnBvcCgpO2NvbnRpbnVlO2RlZmF1bHQ6aWYoIShvPShvPWEudHJ5cykubGVuZ3RoPjAmJm9bby5sZW5ndGgtMV0pJiYoNj09PWNbMF18fDI9PT1jWzBdKSl7YT0wO2NvbnRpbnVlfWlmKDM9PT1jWzBdJiYoIW98fGNbMV0+b1swXSYmY1sxXTxvWzNdKSl7YS5sYWJlbD1jWzFdO2JyZWFrfWlmKDY9PT1jWzBdJiZhLmxhYmVsPG9bMV0pe2EubGFiZWw9b1sxXSxvPWM7YnJlYWt9aWYobyYmYS5sYWJlbDxvWzJdKXthLmxhYmVsPW9bMl0sYS5vcHMucHVzaChjKTticmVha31vWzJdJiZhLm9wcy5wb3AoKSxhLnRyeXMucG9wKCk7Y29udGludWV9Yz1uLmNhbGwoZSxhKX1jYXRjaChlKXtjPVs2LGVdLHI9MH1maW5hbGx5e3Q9bz0wfWlmKDUmY1swXSl0aHJvdyBjWzFdO3JldHVybnt2YWx1ZTpjWzBdP2NbMV06dm9pZCAwLGRvbmU6ITB9fX19ZnVuY3Rpb24gZU8oZSxuKXt2YXIgdDtyZXR1cm5cImZpbGU6Ly9cIj09PWUuZmlsZXx8KG51bGw9PSh0PWUuZmlsZSk/dm9pZCAwOnQubWF0Y2goL2h0dHBzPzpcXC9cXC8vKSk/UHJvbWlzZS5yZXNvbHZlKHtlcnJvcjohMSxyZWFzb246bnVsbCxleHRlcm5hbDohMCxzb3VyY2VTdGFja0ZyYW1lOmUsb3JpZ2luYWxTdGFja0ZyYW1lOm51bGwsb3JpZ2luYWxDb2RlRnJhbWU6bnVsbCxpZ25vcmVkOiEwfSk6ZWsoZnVuY3Rpb24oKXt2YXIgdCxyO3JldHVybiBlQSh0aGlzLGZ1bmN0aW9uKG8pe2lmKFwicmVqZWN0ZWRcIj09PW4uc3RhdHVzKXRocm93IEVycm9yKG4ucmVhc29uKTtyZXR1cm5bMix7ZXJyb3I6ITEscmVhc29uOm51bGwsZXh0ZXJuYWw6ITEsc291cmNlU3RhY2tGcmFtZTplLG9yaWdpbmFsU3RhY2tGcmFtZToocj1uLnZhbHVlKS5vcmlnaW5hbFN0YWNrRnJhbWUsb3JpZ2luYWxDb2RlRnJhbWU6ci5vcmlnaW5hbENvZGVGcmFtZXx8bnVsbCxpZ25vcmVkOihudWxsPT0odD1yLm9yaWdpbmFsU3RhY2tGcmFtZSk/dm9pZCAwOnQuaWdub3JlZCl8fCExfV19KX0pKCkuY2F0Y2goZnVuY3Rpb24obil7dmFyIHQscjtyZXR1cm57ZXJyb3I6ITAscmVhc29uOm51bGwhPShyPW51bGwhPSh0PW51bGw9PW4/dm9pZCAwOm4ubWVzc2FnZSk/dDpudWxsPT1uP3ZvaWQgMDpuLnRvU3RyaW5nKCkpP3I6XCJVbmtub3duIEVycm9yXCIsZXh0ZXJuYWw6ITEsc291cmNlU3RhY2tGcmFtZTplLG9yaWdpbmFsU3RhY2tGcmFtZTpudWxsLG9yaWdpbmFsQ29kZUZyYW1lOm51bGwsaWdub3JlZDohMX19KX1mdW5jdGlvbiBlQyhlLG4sdCl7cmV0dXJuIGVrKGZ1bmN0aW9uKCl7dmFyIHIsbyxhLGk7cmV0dXJuIGVBKHRoaXMsZnVuY3Rpb24obCl7c3dpdGNoKGwubGFiZWwpe2Nhc2UgMDpyPXtmcmFtZXM6ZSxpc1NlcnZlcjpcInNlcnZlclwiPT09bixpc0VkZ2VTZXJ2ZXI6XCJlZGdlLXNlcnZlclwiPT09bixpc0FwcERpcmVjdG9yeTp0fSxvPXZvaWQgMCxhPXZvaWQgMCxsLmxhYmVsPTE7Y2FzZSAxOnJldHVybiBsLnRyeXMucHVzaChbMSwzLCw0XSksWzQsZmV0Y2goXCIvX19uZXh0anNfb3JpZ2luYWwtc3RhY2stZnJhbWVzXCIse21ldGhvZDpcIlBPU1RcIixib2R5OkpTT04uc3RyaW5naWZ5KHIpfSldO2Nhc2UgMjpyZXR1cm4gbz1sLnNlbnQoKSxbMyw0XTtjYXNlIDM6cmV0dXJuIGE9bC5zZW50KCkrXCJcIixbMyw0XTtjYXNlIDQ6aWYoIShvJiZvLm9rJiYyMDQhPT1vLnN0YXR1cykpcmV0dXJuWzMsNl07cmV0dXJuWzQsby5qc29uKCldO2Nhc2UgNTpyZXR1cm4gaT1sLnNlbnQoKSxbMixQcm9taXNlLmFsbChlLm1hcChmdW5jdGlvbihlLG4pe3JldHVybiBlTyhlLGlbbl0pfSkpXTtjYXNlIDY6aWYoIW8pcmV0dXJuWzMsOF07cmV0dXJuWzQsby50ZXh0KCldO2Nhc2UgNzphPWwuc2VudCgpLGwubGFiZWw9ODtjYXNlIDg6cmV0dXJuWzIsUHJvbWlzZS5hbGwoZS5tYXAoZnVuY3Rpb24oZSl7cmV0dXJuIGVPKGUse3N0YXR1czpcInJlamVjdGVkXCIscmVhc29uOlwiRmFpbGVkIHRvIGZldGNoIHRoZSBvcmlnaW5hbCBzdGFjayBmcmFtZXMgXCIuY29uY2F0KGE/XCI6IFwiLmNvbmNhdChhKTpcIlwiKX0pfSkpXX19KX0pKCl9ZnVuY3Rpb24gZVMoZSl7aWYoIWUuZmlsZSlyZXR1cm5cIlwiO3ZhciBuPWV4KGUuZmlsZSksdD1cIlwiO2lmKG4pdD1ldyhlLmZpbGUpO2Vsc2UgdHJ5e3ZhciByLG89bmV3IFVSTChlLmZpbGUpLGE9XCJcIjsobnVsbD09KHI9Z2xvYmFsVGhpcy5sb2NhdGlvbik/dm9pZCAwOnIub3JpZ2luKSE9PW8ub3JpZ2luJiYoXCJudWxsXCI9PT1vLm9yaWdpbj9hKz1vLnByb3RvY29sOmErPW8ub3JpZ2luKSxhKz1vLnBhdGhuYW1lLHQ9ZXcoYSl9Y2F0Y2gobil7dD1ldyhlLmZpbGUpfXJldHVybiFleChlLmZpbGUpJiZudWxsIT1lLmxpbmVOdW1iZXImJnQmJlwiPGFub255bW91cz5cIiE9PWUuZmlsZSYmKG51bGwhPWUuY29sdW1uP3QrPVwiIChcIi5jb25jYXQoZS5saW5lTnVtYmVyLFwiOlwiKS5jb25jYXQoZS5jb2x1bW4sXCIpXCIpOnQrPVwiIChcIi5jb25jYXQoZS5saW5lTnVtYmVyLFwiKVwiKSksdH1mdW5jdGlvbiBlRSgpe3ZhciBlPWFyZ3VtZW50cy5sZW5ndGg+MCYmdm9pZCAwIT09YXJndW1lbnRzWzBdP2FyZ3VtZW50c1swXTp7fSxuPWUuZmlsZSx0PWUubGluZU51bWJlcixyPWUuY29sdW1uO3JldHVybigwLHgudXNlQ2FsbGJhY2spKGZ1bmN0aW9uKCl7aWYobnVsbCE9biYmbnVsbCE9dCYmbnVsbCE9cil7dmFyIGU9bmV3IFVSTFNlYXJjaFBhcmFtcztlLmFwcGVuZChcImZpbGVcIixuKSxlLmFwcGVuZChcImxpbmVOdW1iZXJcIixTdHJpbmcodCkpLGUuYXBwZW5kKFwiY29sdW1uXCIsU3RyaW5nKHIpKSxzZWxmLmZldGNoKFwiXCIuY29uY2F0KHByb2Nlc3MuZW52Ll9fTkVYVF9ST1VURVJfQkFTRVBBVEh8fFwiXCIsXCIvX19uZXh0anNfbGF1bmNoLWVkaXRvcj9cIikuY29uY2F0KGUudG9TdHJpbmcoKSkpLnRoZW4oZnVuY3Rpb24oKXt9LGZ1bmN0aW9uKGUpe2NvbnNvbGUuZXJyb3IoJ0ZhaWxlZCB0byBvcGVuIGZpbGUgXCInLmNvbmNhdChuLFwiIChcIikuY29uY2F0KHQsXCI6XCIpLmNvbmNhdChyLCcpXCIgaW4geW91ciBlZGl0b3IuIENhdXNlOicpLGUpfSl9fSxbbix0LHJdKX1mdW5jdGlvbiBlXyhlKXtmb3IodmFyIG49MTtuPGFyZ3VtZW50cy5sZW5ndGg7bisrKXt2YXIgdD1udWxsIT1hcmd1bWVudHNbbl0/YXJndW1lbnRzW25dOnt9LHI9T2JqZWN0LmtleXModCk7XCJmdW5jdGlvblwiPT10eXBlb2YgT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyYmKHI9ci5jb25jYXQoT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyh0KS5maWx0ZXIoZnVuY3Rpb24oZSl7cmV0dXJuIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IodCxlKS5lbnVtZXJhYmxlfSkpKSxyLmZvckVhY2goZnVuY3Rpb24obil7dmFyIHIsbyxhO3I9ZSxvPW4sYT10W25dLG8gaW4gcj9PYmplY3QuZGVmaW5lUHJvcGVydHkocixvLHt2YWx1ZTphLGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwfSk6cltvXT1hfSl9cmV0dXJuIGV9ZnVuY3Rpb24gZVAoZSxuKXtyZXR1cm4gbj1udWxsIT1uP246e30sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcnM/T2JqZWN0LmRlZmluZVByb3BlcnRpZXMoZSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycyhuKSk6KGZ1bmN0aW9uKGUsbil7dmFyIHQ9T2JqZWN0LmtleXMoZSk7aWYoT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyl7dmFyIHI9T2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhlKTt0LnB1c2guYXBwbHkodCxyKX1yZXR1cm4gdH0pKE9iamVjdChuKSkuZm9yRWFjaChmdW5jdGlvbih0KXtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSx0LE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Iobix0KSl9KSxlfWZ1bmN0aW9uIGV6KGUpe3JldHVybigwLHkuanN4KShcInN2Z1wiLGVQKGVfKHt4bWxuczpcImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIsd2lkdGg6XCIxNlwiLGhlaWdodDpcIjE2XCIsdmlld0JveDpcIjAgMCAxNiAxNlwiLGZpbGw6XCJub25lXCJ9LGUpLHtjaGlsZHJlbjooMCx5LmpzeCkoXCJwYXRoXCIse2ZpbGxSdWxlOlwiZXZlbm9kZFwiLGNsaXBSdWxlOlwiZXZlbm9kZFwiLGZpbGw6XCJjdXJyZW50Q29sb3JcIixkOlwiTTExLjUgOS43NVYxMS4yNUMxMS41IDExLjM4ODEgMTEuMzg4MSAxMS41IDExLjI1IDExLjVINC43NUM0LjYxMTkzIDExLjUgNC41IDExLjM4ODEgNC41IDExLjI1TDQuNSA0Ljc1QzQuNSA0LjYxMTkzIDQuNjExOTMgNC41IDQuNzUgNC41SDYuMjVIN1YzSDYuMjVINC43NUMzLjc4MzUgMyAzIDMuNzgzNSAzIDQuNzVWMTEuMjVDMyAxMi4yMTY1IDMuNzgzNSAxMyA0Ljc1IDEzSDExLjI1QzEyLjIxNjUgMTMgMTMgMTIuMjE2NSAxMyAxMS4yNVY5Ljc1VjlIMTEuNVY5Ljc1Wk04LjUgM0g5LjI1SDEyLjI0OTVDMTIuNjYzNyAzIDEyLjk5OTUgMy4zMzU3OSAxMi45OTk1IDMuNzVWNi43NVY3LjVIMTEuNDk5NVY2Ljc1VjUuNTYwNjZMOC41MzAzMyA4LjUyOTc4TDggOS4wNjAxMUw2LjkzOTM0IDcuOTk5NDVMNy40Njk2NyA3LjQ2OTEyTDEwLjQzODggNC41SDkuMjVIOC41VjNaXCJ9KX0pKX1mdW5jdGlvbiBlTChlKXtyZXR1cm4oMCx5LmpzeCkoXCJzdmdcIixlUChlXyh7eG1sbnM6XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiLGhlaWdodDpcIjE2XCIsc3Ryb2tlTGluZWpvaW46XCJyb3VuZFwiLHZpZXdCb3g6XCItNCAtNCAyNCAyNFwiLHdpZHRoOlwiMTZcIn0sZSkse2NoaWxkcmVuOigwLHkuanN4KShcInBhdGhcIix7ZmlsbFJ1bGU6XCJldmVub2RkXCIsY2xpcFJ1bGU6XCJldmVub2RkXCIsZDpcIk04LjU1ODQ2IDJINy40NDE0OEwxLjg4OTc1IDEzLjVIMTQuMTEwMkw4LjU1ODQ2IDJaTTkuOTA5MjkgMS4zNDc4OEM5LjY1OTAyIDAuODI5NDU2IDkuMTM0MTMgMC41IDguNTU4NDYgMC41SDcuNDQxNDhDNi44NjU4MSAwLjUgNi4zNDA5MiAwLjgyOTQ1NCA2LjA5MDY1IDEuMzQ3ODdMMC4xOTI2MDggMTMuNTY1M0MtMC4xMjc5NDMgMTQuMjI5MyAwLjM1NTgzNSAxNSAxLjA5MzE2IDE1SDE0LjkwNjhDMTUuNjQ0MSAxNSAxNi4xMjc5IDE0LjIyOTMgMTUuODA3MyAxMy41NjUzTDkuOTA5MjkgMS4zNDc4OFpNOC43NDk5NyA0Ljc1VjUuNVY4VjguNzVINy4yNDk5N1Y4VjUuNVY0Ljc1SDguNzQ5OTdaTTcuOTk5OTcgMTJDOC41NTIyNiAxMiA4Ljk5OTk3IDExLjU1MjMgOC45OTk5NyAxMUM4Ljk5OTk3IDEwLjQ0NzcgOC41NTIyNiAxMCA3Ljk5OTk3IDEwQzcuNDQ3NjkgMTAgNi45OTk5NyAxMC40NDc3IDYuOTk5OTcgMTFDNi45OTk5NyAxMS41NTIzIDcuNDQ3NjkgMTIgNy45OTk5NyAxMlpcIixmaWxsOlwiY3VycmVudENvbG9yXCJ9KX0pKX1mdW5jdGlvbiBlVChlKXt2YXIgbj1lLmxhbmc7aWYoIW4pcmV0dXJuKDAseS5qc3gpKGVCLHt9KTtzd2l0Y2gobi50b0xvd2VyQ2FzZSgpKXtjYXNlXCJqc3hcIjpjYXNlXCJ0c3hcIjpyZXR1cm4oMCx5LmpzeCkoZU0se30pO2Nhc2VcInRzXCI6Y2FzZVwidHlwZXNjcmlwdFwiOnJldHVybigwLHkuanN4KShlRCx7fSk7Y2FzZVwiamF2YXNjcmlwdFwiOmNhc2VcImpzXCI6Y2FzZVwibWpzXCI6cmV0dXJuKDAseS5qc3gpKGVOLHt9KTtjYXNlXCJqc29uXCI6cmV0dXJuKDAseS5qc3gpKGVSLHt9KTtkZWZhdWx0OnJldHVybigwLHkuanN4KShlQix7fSl9fWZ1bmN0aW9uIGVSKCl7cmV0dXJuKDAseS5qc3gpKFwic3ZnXCIse2NsaXBSdWxlOlwiZXZlbm9kZFwiLGZpbGxSdWxlOlwiZXZlbm9kZFwiLGhlaWdodDpcIjE2XCIsdmlld0JveDpcIjAgMCAxMzIxLjQ1IDEzMzMuMzNcIix3aWR0aDpcIjE2XCIsY2hpbGRyZW46KDAseS5qc3gpKFwicGF0aFwiLHtkOlwiTTIyMS4zNyA2MTguNDRoNzU3Ljk0VjQwNS4xNUg3NTUuMTRjLTIzLjUgMC01Ni4zMi0xMi43NC03MS44Mi0yOC4yNC0xNS41LTE1LjUtMjUtNDMuNDctMjUtNjYuOTdWODIuODlIODguMzljLTEuOTkgMC0zLjQ5IDEtNC40OSAyLTEuNSAxLTIgMi41LTIgNC41djExNTUuMDRjMCAxLjUgMSAzLjUgMiA0LjUgMSAxLjQ5IDMgMS45OSA0LjQ5IDEuOTlIOTcyLjhjMiAwIDEuODktLjk5IDIuODktMS45OSAxLjUtMSAzLjYxLTMgMy42MS00LjV2LTEyMS4wOUgyMjEuMzZjLTQ0Ljk2IDAtODItMzYuOS04Mi04MS45OVY3MDAuNDRjMC00NS4xIDM2LjktODIgODItODJ6bTEyNi41MSAxMTcuNDdoNzUuMjR2MTQ2LjYxYzAgMzAuNzktMi40NCA1NC4yMy03LjMzIDcwLjMxLTQuOTIgMTYuMDMtMTQuOCAyOS42Ny0yOS42NSA0MC44NS0xNC44NiAxMS4xMi0zMy45MSAxNi43Mi01Ny4wNSAxNi43Mi0yNC41MyAwLTQzLjUxLTMuNzEtNTYuOTQtMTEuMDYtMTMuNS03LjM2LTIzLjg5LTE4LjEtMzEuMjMtMzIuMy03LjM1LTE0LjE0LTExLjY5LTMxLjY3LTEyLjk5LTUyLjUzbDcxLjUtMTAuODFjLjExIDExLjgxIDEuMDcgMjAuNjEgMi44MSAyNi4zMyAxLjc2IDUuNzggNC43NSAxMC4zNyA5IDEzLjk1IDIuODcgMi4zMyA2Ljk0IDMuNDYgMTIuMjUgMy40NiA4LjQgMCAxNC41OC0zLjQ2IDE4LjUzLTEwLjM3IDMuOS02LjkyIDUuODctMTguNiA1Ljg3LTM1VjczNS45MnptMTEyLjc3IDE4MC42N2w3MS4xNy00Ljk3YzEuNTQgMTIuODEgNC42OSAyMi42MiA5LjQ0IDI5LjI4IDcuNzQgMTAuODggMTguNzQgMTYuMzQgMzMuMDkgMTYuMzQgMTAuNjggMCAxOC45My0yLjc2IDI0LjY4LTguMzYgNS44MS01LjU4IDguNy0xMi4wNyA4LjctMTkuNDEgMC02Ljk3LTIuNzEtMTMuMjYtOC4yLTE4Ljc5LTUuNDctNS41My0xOC4yMy0xMC42OC0zOC4yOC0xNS42NS0zMi44OS04LjE3LTU2LjI3LTE5LjEtNzAuMjYtMzIuNzQtMTQuMTItMTMuNTctMjEuMTgtMzAuOTItMjEuMTgtNTIuMDMgMC0xMy44MyAzLjYxLTI2Ljg5IDEwLjg1LTM5LjIxIDcuMjItMTIuMzggMTguMDctMjIuMDYgMzIuNTktMjkuMDkgMTQuNTItNy4wNCAzNC40LTEwLjU2IDU5LjY1LTEwLjU2IDMxIDAgNTQuNjIgNi40MSA3MC44OCAxOS4yOSAxNi4yOCAxMi44MSAyNS45MiAzMy4yNCAyOS4wNCA2MS4yN2wtNzAuNSA0LjY1Yy0xLjg3LTEyLjI1LTUuODEtMjEuMTctMTEuODEtMjYuNy02LjA1LTUuNi0xNC4zNS04LjM2LTI0LjktOC4zNi04LjcxIDAtMTUuMzEgMi4wNy0xOS43MyA2LjE2LTQuNCA0LjA5LTYuNTkgOS4xMi02LjU5IDE1LjAyIDAgNC4yNyAxLjgxIDguMTEgNS4zNyAxMS41NyAzLjQ1IDMuNTkgMTEuOCA2Ljg1IDI1LjAyIDkuOTMgMzIuNzUgNy44NiA1Ni4yIDE1Ljg0IDcwLjMxIDIzLjg3IDE0LjE4IDguMDUgMjQuNTIgMTcuOTggMzAuOTYgMjkuOTIgNi40NCAxMS44OCA5LjY2IDI1LjIgOS42NiAzOS45NiAwIDE3LjI5LTQuMyAzMy4yNC0xMi44OCA0Ny44OS04LjYzIDE0LjU4LTIwLjYxIDI1LjctMzYuMDggMzMuMjQtMTUuNDEgNy41NC0zNC44NSAxMS4zMS01OC4zMyAxMS4zMS00MS4yNCAwLTY5LjgxLTguODYtODUuNjgtMjYuNTItMTUuODgtMTcuNjUtMjQuODUtNDAuMDktMjYuOTYtNjcuM3ptMjQ4Ljc0LTQ1LjVjMC00NC4wNSAxMS4wMi03OC4zNiAzMy4wOS0xMDIuODcgMjIuMDktMjQuNTcgNTIuODItMzYuODIgOTIuMjQtMzYuODIgNDAuMzggMCA3MS41IDEyLjA3IDkzLjM0IDM2LjEzIDIxLjg2IDI0LjEzIDMyLjc3IDU3Ljk0IDMyLjc3IDEwMS4zNyAwIDMxLjU0LTQuNzUgNTcuMzYtMTQuMyA3Ny41NC05LjU0IDIwLjE4LTIzLjM3IDM1Ljg5LTQxLjQgNDcuMTMtMTguMDcgMTEuMjQtNDAuNTUgMTYuODQtNjcuNDggMTYuODQtMjcuMzMgMC00OS45OS00LjgzLTY3Ljk0LTE0LjUyLTE3LjkyLTkuNzQtMzIuNDktMjUuMDctNDMuNjItNDYuMDYtMTEuMTMtMjAuOTItMTYuNzItNDcuMTktMTYuNzItNzguNzR6bTc0Ljg5LjE5YzAgMjcuMjEgNC41NyA0Ni44MSAxMy42OCA1OC42OCA5LjEzIDExLjg4IDIxLjU3IDE3Ljg1IDM3LjI2IDE3Ljg1IDE2LjEgMCAyOC42NS01Ljg0IDM3LjQ1LTE3LjQ3IDguODctMTEuNjggMTMuMjgtMzIuNTQgMTMuMjgtNjIuNzcgMC0yNS4zOS00LjYzLTQzLjkyLTEzLjg0LTU1LjYxLTkuMjYtMTEuNzYtMjEuNzUtMTcuNi0zNy41Ni0xNy42LTE1LjEzIDAtMjcuMzQgNS45Ny0zNi40OSAxNy44NS05LjIxIDExLjg4LTEzLjc4IDMxLjYxLTEzLjc4IDU5LjA3em0yMDkuMDgtMTM1LjM2aDY5Ljk5bDkwLjk4IDE0OS4wNVY3MzUuOTFoNzAuODN2MjY5Ljk2aC03MC44M2wtOTAuNDgtMTQ4LjI0djE0OC4yNGgtNzAuNDlWNzM1Ljkxem02Ny43MS0xMTcuNDdoMTc4LjM3YzQ1LjEgMCA4MiAzNy4wNCA4MiA4MnYzNDAuOTFjMCA0NC45Ni0zNy4wMyA4MS45OS04MiA4MS45OWgtMTc4LjM3djE0N2MwIDE3LjUtNi45OSAzMi45OS0xOC41IDQ0LjUtMTEuNSAxMS40OS0yNyAxOC41LTQ0LjUgMTguNUg2Mi45N2MtMTcuNSAwLTMyLjk5LTctNDQuNS0xOC41LTExLjQ5LTExLjUtMTguNS0yNy0xOC41LTQ0LjVWNjMuNDljMC0xNy41IDctMzMgMTguNS00NC41UzQ1Ljk3LjQ5IDYyLjk3LjQ5SDcwMC4xYzEuNS0uNSAzLS41IDQuNS0uNSA3IDAgMTQgMyAxOSA3LjQ5aDFjMSAuNSAxLjUgMSAyLjUgMmwzMjUuNDYgMzI5LjQ3YzUuNSA1LjUgOS41IDEzIDkuNSAyMS41IDAgMi41LS41IDQuNS0xIDd2MjUwLjk4ek03MzIuNjEgMzAzLjQ3Vjk2Ljk5bDIzMi40OCAyMzUuNDdINzYxLjZjLTcuOTkgMC0xNC45OS0zLjUtMjAuNS04LjQ5LTQuOTktNS04LjQ5LTEyLjUtOC40OS0yMC41elwiLGZpbGw6XCJjdXJyZW50Q29sb3JcIn0pfSl9ZnVuY3Rpb24gZU4oKXtyZXR1cm4oMCx5LmpzeCkoXCJzdmdcIix7aGVpZ2h0OlwiMTZcIix2aWV3Qm94OlwiMCAwIDUwIDUwXCIsd2lkdGg6XCIxNlwiLHhtbG5zOlwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIixjaGlsZHJlbjooMCx5LmpzeCkoXCJwYXRoXCIse2Q6XCJNIDQzLjMzNTkzOCA0IEwgNi42Njc5NjkgNCBDIDUuMTk1MzEzIDQgNCA1LjE5NTMxMyA0IDYuNjY3OTY5IEwgNCA0My4zMzIwMzEgQyA0IDQ0LjgwNDY4OCA1LjE5NTMxMyA0NiA2LjY2Nzk2OSA0NiBMIDQzLjMzMjAzMSA0NiBDIDQ0LjgwNDY4OCA0NiA0NiA0NC44MDQ2ODggNDYgNDMuMzM1OTM4IEwgNDYgNi42Njc5NjkgQyA0NiA1LjE5NTMxMyA0NC44MDQ2ODggNCA0My4zMzU5MzggNCBaIE0gMjcgMzYuMTgzNTk0IEMgMjcgNDAuMTc5Njg4IDI0LjY1NjI1IDQyIDIxLjIzNDM3NSA0MiBDIDE4LjE0MDYyNSA0MiAxNS45MTAxNTYgMzkuOTI1NzgxIDE1IDM4IEwgMTguMTQ0NTMxIDM2LjA5NzY1NiBDIDE4Ljc1IDM3LjE3MTg3NSAxOS42NzE4NzUgMzggMjEgMzggQyAyMi4yNjk1MzEgMzggMjMgMzcuNTAzOTA2IDIzIDM1LjU3NDIxOSBMIDIzIDIzIEwgMjcgMjMgWiBNIDM1LjY3NTc4MSA0MiBDIDMyLjEzMjgxMyA0MiAzMC4xMjEwOTQgNDAuMjE0ODQ0IDI5IDM4IEwgMzIgMzYgQyAzMi44MTY0MDYgMzcuMzM1OTM4IDMzLjcwNzAzMSAzOC42MTMyODEgMzUuNTg5ODQ0IDM4LjYxMzI4MSBDIDM3LjE3MTg3NSAzOC42MTMyODEgMzggMzcuODI0MjE5IDM4IDM2LjczMDQ2OSBDIDM4IDM1LjQyNTc4MSAzNy4xNDA2MjUgMzQuOTYwOTM4IDM1LjQwMjM0NCAzNC4xOTkyMTkgTCAzNC40NDkyMTkgMzMuNzg5MDYzIEMgMzEuNjk1MzEzIDMyLjYxNzE4OCAyOS44NjMyODEgMzEuMTQ4NDM4IDI5Ljg2MzI4MSAyOC4wMzkwNjMgQyAyOS44NjMyODEgMjUuMTc5Njg4IDMyLjA0Njg3NSAyMyAzNS40NTMxMjUgMjMgQyAzNy44Nzg5MDYgMjMgMzkuNjIxMDk0IDIzLjg0Mzc1IDQwLjg3ODkwNiAyNi4wNTQ2ODggTCAzNy45MTAxNTYgMjcuOTY0ODQ0IEMgMzcuMjUzOTA2IDI2Ljc4OTA2MyAzNi41NTA3ODEgMjYuMzI4MTI1IDM1LjQ1MzEyNSAyNi4zMjgxMjUgQyAzNC4zMzU5MzggMjYuMzI4MTI1IDMzLjYyODkwNiAyNy4wMzkwNjMgMzMuNjI4OTA2IDI3Ljk2NDg0NCBDIDMzLjYyODkwNiAyOS4xMDkzNzUgMzQuMzM1OTM4IDI5LjU3MDMxMyAzNS45NzI2NTYgMzAuMjgxMjUgTCAzNi45MjU3ODEgMzAuNjkxNDA2IEMgNDAuMTcxODc1IDMyLjA3ODEyNSA0MiAzMy40OTYwOTQgNDIgMzYuNjgzNTk0IEMgNDIgNDAuMTE3MTg4IDM5LjMwMDc4MSA0MiAzNS42NzU3ODEgNDIgWlwiLGZpbGw6XCJjdXJyZW50Q29sb3JcIn0pfSl9ZnVuY3Rpb24gZUQoKXtyZXR1cm4oMCx5LmpzeHMpKFwic3ZnXCIse2ZpbGw6XCJub25lXCIsaGVpZ2h0OlwiMTRcIix2aWV3Qm94OlwiMCAwIDUxMiA1MTJcIix3aWR0aDpcIjE0XCIseG1sbnM6XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiLGNoaWxkcmVuOlsoMCx5LmpzeCkoXCJyZWN0XCIse2ZpbGw6XCJjdXJyZW50Q29sb3JcIixoZWlnaHQ6XCI1MTJcIixyeDpcIjUwXCIsd2lkdGg6XCI1MTJcIn0pLCgwLHkuanN4KShcInJlY3RcIix7ZmlsbDpcImN1cnJlbnRDb2xvclwiLGhlaWdodDpcIjUxMlwiLHJ4OlwiNTBcIix3aWR0aDpcIjUxMlwifSksKDAseS5qc3gpKFwicGF0aFwiLHtjbGlwUnVsZTpcImV2ZW5vZGRcIixkOlwibTMxNi45MzkgNDA3LjQyNHY1MC4wNjFjOC4xMzggNC4xNzIgMTcuNzYzIDcuMyAyOC44NzUgOS4zODZzMjIuODIzIDMuMTI5IDM1LjEzNSAzLjEyOWMxMS45OTkgMCAyMy4zOTctMS4xNDcgMzQuMTk2LTMuNDQyIDEwLjc5OS0yLjI5NCAyMC4yNjgtNi4wNzUgMjguNDA2LTExLjM0MiA4LjEzOC01LjI2NiAxNC41ODEtMTIuMTUgMTkuMzI4LTIwLjY1czcuMTIxLTE5LjAwNyA3LjEyMS0zMS41MjJjMC05LjA3NC0xLjM1Ni0xNy4wMjYtNC4wNjktMjMuODU3cy02LjYyNS0xMi45MDYtMTEuNzM4LTE4LjIyNWMtNS4xMTItNS4zMTktMTEuMjQyLTEwLjA5MS0xOC4zODktMTQuMzE1cy0xNS4yMDctOC4yMTMtMjQuMTgtMTEuOTY3Yy02LjU3My0yLjcxMi0xMi40NjgtNS4zNDUtMTcuNjg1LTcuOS01LjIxNy0yLjU1Ni05LjY1MS01LjE2My0xMy4zMDMtNy44MjItMy42NTItMi42Ni02LjQ2OS01LjQ3Ni04LjQ1MS04LjQ0OC0xLjk4Mi0yLjk3My0yLjk3NC02LjMzNi0yLjk3NC0xMC4wOTEgMC0zLjQ0MS44ODctNi41NDQgMi42NjEtOS4zMDhzNC4yNzgtNS4xMzYgNy41MTItNy4xMThjMy4yMzUtMS45ODEgNy4xOTktMy41MiAxMS44OTQtNC42MTUgNC42OTYtMS4wOTUgOS45MTItMS42NDIgMTUuNjUxLTEuNjQyIDQuMTczIDAgOC41ODEuMzEzIDEzLjIyNC45MzggNC42NDMuNjI2IDkuMzEyIDEuNTkxIDE0LjAwOCAyLjg5NCA0LjY5NSAxLjMwNCA5LjI1OSAyLjk0NyAxMy42OTQgNC45MjggNC40MzQgMS45ODIgOC41MjkgNC4yNzYgMTIuMjg1IDYuODg0di00Ni43NzZjLTcuNjE2LTIuOTItMTUuOTM3LTUuMDg0LTI0Ljk2Mi02LjQ5MnMtMTkuMzgxLTIuMTEyLTMxLjA2Ni0yLjExMmMtMTEuODk1IDAtMjMuMTYzIDEuMjc4LTMzLjgwNSAzLjgzM3MtMjAuMDA2IDYuNTQ0LTI4LjA5MyAxMS45NjdjLTguMDg2IDUuNDI0LTE0LjQ3NiAxMi4zMzMtMTkuMTcxIDIwLjcyOS00LjY5NSA4LjM5NS03LjA0MyAxOC40MzMtNy4wNDMgMzAuMTE0IDAgMTQuOTE0IDQuMzA0IDI3LjYzOCAxMi45MTIgMzguMTcyIDguNjA3IDEwLjUzMyAyMS42NzUgMTkuNDUgMzkuMjA0IDI2Ljc1MSA2Ljg4NiAyLjgxNiAxMy4zMDMgNS41NzkgMTkuMjUgOC4yOTFzMTEuMDg2IDUuNTI4IDE1LjQxNSA4LjQ0OGM0LjMzIDIuOTIgNy43NDcgNi4xMDEgMTAuMjUyIDkuNTQzIDIuNTA0IDMuNDQxIDMuNzU2IDcuMzUyIDMuNzU2IDExLjczMyAwIDMuMjMzLS43ODMgNi4yMzEtMi4zNDggOC45OTVzLTMuOTM5IDUuMTYyLTcuMTIxIDcuMTk2LTcuMTQ3IDMuNjI0LTExLjg5NCA0Ljc3MWMtNC43NDggMS4xNDgtMTAuMzAzIDEuNzIxLTE2LjY2OCAxLjcyMS0xMC44NTEgMC0yMS41OTctMS45MDMtMzIuMjQtNS43MS0xMC42NDItMy44MDYtMjAuNTAyLTkuNTE2LTI5LjU3OS0xNy4xM3ptLTg0LjE1OS0xMjMuMzQyaDY0LjIydi00MS4wODJoLTE3OXY0MS4wODJoNjMuOTA2djE4Mi45MThoNTAuODc0elwiLGZpbGw6XCJ2YXIoLS1jb2xvci1iYWNrZ3JvdW5kLTEwMClcIixmaWxsUnVsZTpcImV2ZW5vZGRcIn0pXX0pfWZ1bmN0aW9uIGVCKCl7cmV0dXJuKDAseS5qc3gpKFwic3ZnXCIse3dpZHRoOlwiMTZcIixoZWlnaHQ6XCIxN1wiLGZpbGw6XCJub25lXCIseG1sbnM6XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiLGNoaWxkcmVuOigwLHkuanN4KShcInBhdGhcIix7ZmlsbFJ1bGU6XCJldmVub2RkXCIsY2xpcFJ1bGU6XCJldmVub2RkXCIsZDpcIk0xNC41IDd2N2EyLjUgMi41IDAgMCAxLTIuNSAyLjVINEEyLjUgMi41IDAgMCAxIDEuNSAxNFYuNWg3LjU4NmExIDEgMCAwIDEgLjcwNy4yOTNsNC40MTQgNC40MTRhMSAxIDAgMCAxIC4yOTMuNzA3Vjd6TTEzIDd2N2ExIDEgMCAwIDEtMSAxSDRhMSAxIDAgMCAxLTEtMVYyaDV2NWg1ek05LjUgMi42MjFWNS41aDIuODc5TDkuNSAyLjYyMXpcIixmaWxsOlwiY3VycmVudENvbG9yXCJ9KX0pfWZ1bmN0aW9uIGVNKCl7cmV0dXJuKDAseS5qc3hzKShcInN2Z1wiLHtoZWlnaHQ6XCIxNlwiLHN0cm9rZUxpbmVqb2luOlwicm91bmRcIix2aWV3Qm94OlwiMCAwIDE2IDE2XCIsd2lkdGg6XCIxNlwiLGNoaWxkcmVuOlsoMCx5LmpzeCkoXCJnXCIse2NsaXBQYXRoOlwidXJsKCNmaWxlX3JlYWN0X2NsaXAwXzg3Ml8zMTgzKVwiLGNoaWxkcmVuOigwLHkuanN4KShcInBhdGhcIix7ZmlsbFJ1bGU6XCJldmVub2RkXCIsY2xpcFJ1bGU6XCJldmVub2RkXCIsZDpcIk00LjUgMS45Mzc4MkM0LjcwMTI5IDEuODIxNjEgNC45OTQ3MiAxLjc4NTggNS40MTMxNSAxLjkxMDUzQzUuODMyOTggMi4wMzU2NyA2LjMzMTM5IDIuMzEwNzMgNi44NzYyNyAyLjczOTQ4QzcuMDExMzYgMi44NDU3OCA3LjE0ODAzIDIuOTYwNTIgNy4yODU3MyAzLjA4MzMxQzYuODYyMTcgMy41MzQ0NiA2LjQ0MjM5IDQuMDQzNTggNi4wMzc1MiA0LjYwMDkyQzUuMzUyNDMgNC42NzI4OCA0LjcwMTY0IDQuNzgxODYgNC4wOTkxNiA0LjkyMzA5QzQuMDYxNjcgNC43NDI0NCA0LjAzMDY0IDQuNTY2NzEgNC4wMDYxMiA0LjM5NjU2QzMuOTA3MjUgMy43MTAzMSAzLjkxODI1IDMuMTQxMTQgNC4wMTk3OSAyLjcxNDk5QzQuMTIwOTkgMi4yOTAyNSA0LjI5ODcxIDIuMDU0MDQgNC41IDEuOTM3ODJaTTcuNDk0NjYgMS45NTM2MUM3LjY2MjI1IDIuMDg1NDggNy44MzA5MiAyLjIyODA0IDcuOTk5OTkgMi4zODA2N0M4LjE2OTA2IDIuMjI4MDQgOC4zMzc3MyAyLjA4NTQ4IDguNTA1MzIgMS45NTM2MUM5LjEwOTIxIDEuNDc4NDIgOS43MTk4MiAxLjEyNTQ5IDEwLjMwMTIgMC45NTIyMDJDMTAuODgzOSAwLjc3ODQ5NiAxMS40ODM4IDAuNzczOCAxMiAxLjA3MThDMTIuNTE2MSAxLjM2OTggMTIuODEyIDEuODkxNjkgMTIuOTUzIDIuNDgzMjJDMTMuMDkzNiAzLjA3MzMzIDEzLjA5MzIgMy43Nzg1OCAxMi45ODM2IDQuNTM5MTdDMTIuOTUzMiA0Ljc1MDI0IDEyLjkxNDEgNC45Njc2IDEyLjg2NjUgNS4xOTAzNEMxMy4wODMyIDUuMjYwNDQgMTMuMjkxIDUuMzM1MjQgMTMuNDg5IDUuNDE0NDRDMTQuMjAyNSA1LjY5OTgzIDE0LjgxMzQgNi4wNTIxNyAxNS4yNTQyIDYuNDY4OTlDMTUuNjk2IDYuODg2OCAxNiA3LjQwNCAxNiA4QzE2IDguNTk2IDE1LjY5NiA5LjExMzE5IDE1LjI1NDIgOS41MzEwMUMxNC44MTM0IDkuOTQ3ODMgMTQuMjAyNSAxMC4zMDAyIDEzLjQ4OSAxMC41ODU2QzEzLjI5MSAxMC42NjQ4IDEzLjA4MzIgMTAuNzM5NiAxMi44NjY1IDEwLjgwOTdDMTIuOTE0MSAxMS4wMzI0IDEyLjk1MzIgMTEuMjQ5OCAxMi45ODM3IDExLjQ2MDhDMTMuMDkzMiAxMi4yMjE0IDEzLjA5MzYgMTIuOTI2NyAxMi45NTMgMTMuNTE2OEMxMi44MTIgMTQuMTA4MyAxMi41MTYxIDE0LjYzMDIgMTIgMTQuOTI4MkMxMS40ODM5IDE1LjIyNjIgMTAuODgzOSAxNS4yMjE1IDEwLjMwMTIgMTUuMDQ3OEM5LjcxOTg0IDE0Ljg3NDUgOS4xMDkyMyAxNC41MjE2IDguNTA1MzQgMTQuMDQ2NEM4LjMzNzc1IDEzLjkxNDUgOC4xNjkwNiAxMy43NzE5IDcuOTk5OTkgMTMuNjE5M0M3LjgzMDkxIDEzLjc3MTkgNy42NjIyMyAxMy45MTQ1IDcuNDk0NjQgMTQuMDQ2NEM2Ljg5MDc1IDE0LjUyMTYgNi4yODAxNCAxNC44NzQ1IDUuNjk4NzkgMTUuMDQ3OEM1LjExNjA1IDE1LjIyMTUgNC41MTYxMyAxNS4yMjYyIDMuOTk5OTggMTQuOTI4MkMzLjQ4MzgzIDE0LjYzMDIgMy4xODc5NCAxNC4xMDgzIDMuMDQ3IDEzLjUxNjhDMi45MDY0IDEyLjkyNjcgMi45MDY3NCAxMi4yMjE0IDMuMDE2MzIgMTEuNDYwOEMzLjA0NjczIDExLjI0OTggMy4wODU4NiAxMS4wMzI0IDMuMTMzNTEgMTAuODA5N0MyLjkxNjc5IDEwLjczOTUgMi43MDkgMTAuNjY0OCAyLjUxMSAxMC41ODU2QzEuNzk3NTIgMTAuMzAwMiAxLjE4NjU4IDkuOTQ3ODMgMC43NDU4MzMgOS41MzEwMUMwLjMwNDAyOCA5LjExMzE5IDAgOC41OTYgMCA4QzAgNy40MDQgMC4zMDQwMjggNi44ODY4IDAuNzQ1ODMzIDYuNDY4OTlDMS4xODY1OCA2LjA1MjE3IDEuNzk3NTIgNS42OTk4MyAyLjUxMSA1LjQxNDQ0QzIuNzA5IDUuMzM1MjQgMi45MTY4IDUuMjYwNDQgMy4xMzM1MiA1LjE5MDM0QzMuMDg1ODcgNC45Njc2IDMuMDQ2NzUgNC43NTAyNCAzLjAxNjM0IDQuNTM5MTdDMi45MDY3NiAzLjc3ODU4IDIuOTA2NDIgMy4wNzMzMiAzLjA0NzAyIDIuNDgzMjFDMy4xODc5NiAxLjg5MTY5IDMuNDgzODUgMS4zNjk4IDQgMS4wNzE4QzQuNTE2MTUgMC43NzM3OTggNS4xMTYwNyAwLjc3ODQ5NSA1LjY5ODgxIDAuOTUyMjAxQzYuMjgwMTYgMS4xMjU0OSA2Ljg5MDc3IDEuNDc4NDEgNy40OTQ2NiAxLjk1MzYxWk03LjM2NzQ3IDQuNTEwMjVDNy41NzczNSA0LjI1MTk0IDcuNzg4ODEgNC4wMDkyNyA3Ljk5OTk5IDMuNzgzNTZDOC4yMTExNyA0LjAwOTI3IDguNDIyNjMgNC4yNTE5NCA4LjYzMjUxIDQuNTEwMjVDOC40MjM2OSA0LjUwMzQ2IDguMjEyNzQgNC41IDggNC41QzcuNzg3MjUgNC41IDcuNTc2MyA0LjUwMzQ1IDcuMzY3NDcgNC41MTAyNVpNOC43MTQyNSAzLjA4MzMxQzkuMTM3ODEgMy41MzQ0NyA5LjU1NzU5IDQuMDQzNTggOS45NjI0NiA0LjYwMDkyQzEwLjY0NzUgNC42NzI4OCAxMS4yOTgzIDQuNzgxODYgMTEuOTAwOCA0LjkyMzA5QzExLjkzODMgNC43NDI0NCAxMS45NjkzIDQuNTY2NzEgMTEuOTkzOSA0LjM5NjU3QzEyLjA5MjcgMy43MTAzMSAxMi4wODE3IDMuMTQxMTQgMTEuOTgwMiAyLjcxNDk5QzExLjg3OSAyLjI5MDI1IDExLjcwMTMgMi4wNTQwNCAxMS41IDEuOTM3ODJDMTEuMjk4NyAxLjgyMTYxIDExLjAwNTMgMS43ODU4IDEwLjU4NjggMS45MTA1M0MxMC4xNjcgMi4wMzU2OCA5LjY2ODU5IDIuMzEwNzMgOS4xMjM3MSAyLjczOTQ4QzguOTg4NjIgMi44NDU3OCA4Ljg1MTk2IDIuOTYwNTIgOC43MTQyNSAzLjA4MzMxWk04IDUuNUM4LjQ4NDMzIDUuNSA4Ljk1NjM4IDUuNTE4ODUgOS40MTE4OCA1LjU1NDU2QzkuNjcwNTYgNS45MzExOCA5LjkyMjkgNi4zMzA1NiAxMC4xNjUxIDYuNzVDMTAuNDA3MiA3LjE2OTQ0IDEwLjYyNjkgNy41ODc2NiAxMC44MjM3IDcuOTk5OThDMTAuNjI2OSA4LjQxMjMyIDEwLjQwNzIgOC44MzA1NSAxMC4xNjUgOS4yNUM5LjkyMjg4IDkuNjY5NDQgOS42NzA1MyAxMC4wNjg4IDkuNDExODUgMTAuNDQ1NEM4Ljk1NjM2IDEwLjQ4MTIgOC40ODQzMiAxMC41IDggMTAuNUM3LjUxNTY3IDEwLjUgNy4wNDM2MyAxMC40ODEyIDYuNTg4MTMgMTAuNDQ1NEM2LjMyOTQ1IDEwLjA2ODggNi4wNzcxIDkuNjY5NDQgNS44MzQ5NCA5LjI1QzUuNTkyNzcgOC44MzA1NSA1LjM3MzA2IDguNDEyMzIgNS4xNzYyNCA3Ljk5OTk4QzUuMzczMDYgNy41ODc2NSA1LjU5Mjc1IDcuMTY5NDQgNS44MzQ5MiA2Ljc1QzYuMDc3MDggNi4zMzA1NiA2LjMyOTQyIDUuOTMxMTggNi41ODgxIDUuNTU0NTZDNy4wNDM2MSA1LjUxODg0IDcuNTE1NjYgNS41IDggNS41Wk0xMS4wMzExIDYuMjVDMTEuMTM3NSA2LjQzNDIzIDExLjIzOTkgNi42MTg2NCAxMS4zMzg1IDYuODAyODdDMTEuNDU3MiA2LjQ5MTk3IDExLjU2MTYgNi4xODc1MiAxMS42NTE1IDUuODkxNzhDMTEuMzUwNSA1LjgyMTc1IDExLjAzNDYgNS43NTk5NiAxMC43MDYgNS43MDczNkMxMC44MTYzIDUuODg0OCAxMC45MjQ3IDYuMDY1NzYgMTEuMDMxMSA2LjI1Wk0xMS4wMzExIDkuNzVDMTEuMTM3NCA5LjU2NTc2IDExLjIzOTkgOS4zODEzMyAxMS4zMzg1IDkuMTk3MDlDMTEuNDU3MiA5LjUwODAxIDExLjU2MTcgOS44MTI0NiAxMS42NTE1IDEwLjEwODJDMTEuMzUwNSAxMC4xNzgyIDExLjAzNDYgMTAuMjQgMTAuNzA1OSAxMC4yOTI2QzEwLjgxNjIgMTAuMTE1MiAxMC45MjQ3IDkuOTM0MjQgMTEuMDMxMSA5Ljc1Wk0xMS45MjQ5IDcuOTk5OThDMTIuMjA1MSA4LjYyOTI3IDEyLjQzNjIgOS4yNDczOCAxMi42MTUxIDkuODM5NzdDMTIuNzkwMyA5Ljc4MTkxIDEyLjk1OCA5LjcyMDkyIDEzLjExNzYgOS42NTcwOEMxMy43NjE0IDkuMzk5NTggMTQuMjQ4OCA5LjEwNTQ3IDE0LjU2NzEgOC44MDQ0NkMxNC44ODQzIDguNTA0NDUgMTUgOC4yMzI0MyAxNSA4QzE1IDcuNzY3NTcgMTQuODg0MyA3LjQ5NTU1IDE0LjU2NzEgNy4xOTU1NEMxNC4yNDg4IDYuODk0NTMgMTMuNzYxNCA2LjYwMDQyIDEzLjExNzYgNi4zNDI5MkMxMi45NTggNi4yNzkwNyAxMi43OTAzIDYuMjE4MDggMTIuNjE1MSA2LjE2MDIyQzEyLjQzNjIgNi43NTI2IDEyLjIwNTEgNy4zNzA2OSAxMS45MjQ5IDcuOTk5OThaTTkuOTYyNDQgMTEuMzk5MUMxMC42NDc1IDExLjMyNzEgMTEuMjk4MyAxMS4yMTgxIDExLjkwMDggMTEuMDc2OUMxMS45MzgzIDExLjI1NzYgMTEuOTY5NCAxMS40MzMzIDExLjk5MzkgMTEuNjAzNEMxMi4wOTI4IDEyLjI4OTcgMTIuMDgxNyAxMi44NTg5IDExLjk4MDIgMTMuMjg1QzExLjg3OSAxMy43MDk4IDExLjcwMTMgMTMuOTQ2IDExLjUgMTQuMDYyMkMxMS4yOTg3IDE0LjE3ODQgMTEuMDA1MyAxNC4yMTQyIDEwLjU4NjggMTQuMDg5NUMxMC4xNjcgMTMuOTY0MyA5LjY2ODYxIDEzLjY4OTMgOS4xMjM3MyAxMy4yNjA1QzguOTg4NjMgMTMuMTU0MiA4Ljg1MTk2IDEzLjAzOTUgOC43MTQyNCAxMi45MTY3QzkuMTM3OCAxMi40NjU1IDkuNTU3NTggMTEuOTU2NCA5Ljk2MjQ0IDExLjM5OTFaTTguNjMyNDkgMTEuNDg5OEM4LjQyMjYyIDExLjc0ODEgOC4yMTExNiAxMS45OTA3IDcuOTk5OTkgMTIuMjE2NEM3Ljc4ODgxIDExLjk5MDcgNy41NzczNyAxMS43NDgxIDcuMzY3NDkgMTEuNDg5N0M3LjU3NjMxIDExLjQ5NjUgNy43ODcyNiAxMS41IDggMTEuNUM4LjIxMjczIDExLjUgOC40MjM2NyAxMS40OTY1IDguNjMyNDkgMTEuNDg5OFpNNC45Njg5MSA5Ljc1QzUuMDc1MjggOS45MzQyNCA1LjE4Mzc1IDEwLjExNTIgNS4yOTQwNCAxMC4yOTI2QzQuOTY1NCAxMC4yNCA0LjY0OTUxIDEwLjE3ODIgNC4zNDg0NCAxMC4xMDgyQzQuNDM4MzMgOS44MTI0NiA0LjU0Mjc2IDkuNTA4IDQuNjYxNTIgOS4xOTcwOEM0Ljc2MDA1IDkuMzgxMzMgNC44NjI1NCA5LjU2NTc1IDQuOTY4OTEgOS43NVpNNi4wMzc1NCAxMS4zOTkxQzUuMzUyNDQgMTEuMzI3MSA0LjcwMTYzIDExLjIxODEgNC4wOTkxNCAxMS4wNzY5QzQuMDYxNjUgMTEuMjU3NiA0LjAzMDYyIDExLjQzMzMgNC4wMDYxIDExLjYwMzRDMy45MDcyMyAxMi4yODk3IDMuOTE4MjMgMTIuODU4OSA0LjAxOTc3IDEzLjI4NUM0LjEyMDk3IDEzLjcwOTggNC4yOTg2OSAxMy45NDYgNC40OTk5OCAxNC4wNjIyQzQuNzAxMjcgMTQuMTc4NCA0Ljk5NDcgMTQuMjE0MiA1LjQxMzEzIDE0LjA4OTVDNS44MzI5NiAxMy45NjQzIDYuMzMxMzcgMTMuNjg5MyA2Ljg3NjI1IDEzLjI2MDVDNy4wMTEzNSAxMy4xNTQyIDcuMTQ4MDIgMTMuMDM5NSA3LjI4NTczIDEyLjkxNjdDNi44NjIxNyAxMi40NjU1IDYuNDQyNCAxMS45NTY0IDYuMDM3NTQgMTEuMzk5MVpNNC4wNzUwNyA3Ljk5OTk4QzMuNzk0ODQgOC42MjkyNyAzLjU2MzgxIDkuMjQ3MzcgMy4zODQ4OSA5LjgzOTc3QzMuMjA5NjkgOS43ODE5MSAzLjA0MiA5LjcyMDkyIDIuODgyMzkgOS42NTcwOEMyLjIzODY0IDkuMzk5NTggMS43NTEyMyA5LjEwNTQ3IDEuNDMyOTQgOC44MDQ0NkMxLjExNTcxIDguNTA0NDUgMSA4LjIzMjQzIDEgOEMxIDcuNzY3NTcgMS4xMTU3MSA3LjQ5NTU1IDEuNDMyOTQgNy4xOTU1NEMxLjc1MTIzIDYuODk0NTMgMi4yMzg2NCA2LjYwMDQyIDIuODgyMzkgNi4zNDI5MkMzLjA0MiA2LjI3OTA3IDMuMjA5NyA2LjIxODA4IDMuMzg0OSA2LjE2MDIyQzMuNTYzODMgNi43NTI2MSAzLjc5NDg0IDcuMzcwNjkgNC4wNzUwNyA3Ljk5OTk4Wk00LjY2MTUyIDYuODAyODdDNC41NDI3NyA2LjQ5MTk3IDQuNDM4MzUgNi4xODc1MiA0LjM0ODQ2IDUuODkxNzhDNC42NDk1MiA1LjgyMTc1IDQuOTY1MzkgNS43NTk5NiA1LjI5NDAyIDUuNzA3MzZDNS4xODM3MyA1Ljg4NDggNS4wNzUyNiA2LjA2NTc2IDQuOTY4ODkgNi4yNUM0Ljg2MjUzIDYuNDM0MjMgNC43NjAwNSA2LjYxODY0IDQuNjYxNTIgNi44MDI4N1pNOS4yNSA4QzkuMjUgOC42OTAzNiA4LjY5MDM2IDkuMjUgOCA5LjI1QzcuMzA5NjQgOS4yNSA2Ljc1IDguNjkwMzYgNi43NSA4QzYuNzUgNy4zMDk2NSA3LjMwOTY0IDYuNzUgOCA2Ljc1QzguNjkwMzYgNi43NSA5LjI1IDcuMzA5NjUgOS4yNSA4WlwiLGZpbGw6XCJjdXJyZW50Q29sb3JcIn0pfSksKDAseS5qc3gpKFwiZGVmc1wiLHtjaGlsZHJlbjooMCx5LmpzeCkoXCJjbGlwUGF0aFwiLHtpZDpcImZpbGVfcmVhY3RfY2xpcDBfODcyXzMxODNcIixjaGlsZHJlbjooMCx5LmpzeCkoXCJyZWN0XCIse3dpZHRoOlwiMTZcIixoZWlnaHQ6XCIxNlwiLGZpbGw6XCJ3aGl0ZVwifSl9KX0pXX0pfXZhciBlST1fX3dlYnBhY2tfcmVxdWlyZV9fKFwiLi9kaXN0L2NvbXBpbGVkL2Fuc2VyL2luZGV4LmpzXCIpLGVIPV9fd2VicGFja19yZXF1aXJlX18ubihlSSksZUY9X193ZWJwYWNrX3JlcXVpcmVfXyhcIi4vZGlzdC9jb21waWxlZC9zdHJpcC1hbnNpL2luZGV4LmpzXCIpLGVVPV9fd2VicGFja19yZXF1aXJlX18ubihlRik7ZnVuY3Rpb24gZVYoZSl7Zm9yKHZhciBuPTE7bjxhcmd1bWVudHMubGVuZ3RoO24rKyl7dmFyIHQ9bnVsbCE9YXJndW1lbnRzW25dP2FyZ3VtZW50c1tuXTp7fSxyPU9iamVjdC5rZXlzKHQpO1wiZnVuY3Rpb25cIj09dHlwZW9mIE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMmJihyPXIuY29uY2F0KE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHModCkuZmlsdGVyKGZ1bmN0aW9uKGUpe3JldHVybiBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHQsZSkuZW51bWVyYWJsZX0pKSksci5mb3JFYWNoKGZ1bmN0aW9uKG4pe3ZhciByLG8sYTtyPWUsbz1uLGE9dFtuXSxvIGluIHI/T2JqZWN0LmRlZmluZVByb3BlcnR5KHIsbyx7dmFsdWU6YSxlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMH0pOnJbb109YX0pfXJldHVybiBlfWZ1bmN0aW9uIGVxKGUpe3ZhciBuLHQ9ZS5zdGFja0ZyYW1lLHI9ZS5jb2RlRnJhbWUsbz0oMCx4LnVzZU1lbW8pKGZ1bmN0aW9uKCl7dmFyIGUsbjtyZXR1cm4oZnVuY3Rpb24oZSl7dmFyIG49ZUgoKS5hbnNpVG9Kc29uKGUse2pzb246ITAsdXNlX2NsYXNzZXM6ITAscmVtb3ZlX2VtcHR5OiEwfSksdD1bXSxyPVtdLG89ITAsYT0hMSxpPXZvaWQgMDt0cnl7Zm9yKHZhciBsLHM9bltTeW1ib2wuaXRlcmF0b3JdKCk7IShvPShsPXMubmV4dCgpKS5kb25lKTtvPSEwKXt2YXIgYz1sLnZhbHVlO2lmKFwic3RyaW5nXCI9PXR5cGVvZiBjLmNvbnRlbnQmJmMuY29udGVudC5pbmNsdWRlcyhcIlxcblwiKSlmb3IodmFyIHU9Yy5jb250ZW50LnNwbGl0KFwiXFxuXCIpLGQ9MDtkPHUubGVuZ3RoO2QrKyl7dmFyIGY9dVtkXTtmJiZyLnB1c2goZnVuY3Rpb24oZSxuKXtyZXR1cm4gbj1udWxsIT1uP246e30sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcnM/T2JqZWN0LmRlZmluZVByb3BlcnRpZXMoZSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycyhuKSk6KGZ1bmN0aW9uKGUsbil7dmFyIHQ9T2JqZWN0LmtleXMoZSk7aWYoT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyl7dmFyIHI9T2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhlKTt0LnB1c2guYXBwbHkodCxyKX1yZXR1cm4gdH0pKE9iamVjdChuKSkuZm9yRWFjaChmdW5jdGlvbih0KXtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSx0LE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Iobix0KSl9KSxlfShmdW5jdGlvbihlKXtmb3IodmFyIG49MTtuPGFyZ3VtZW50cy5sZW5ndGg7bisrKXt2YXIgdD1udWxsIT1hcmd1bWVudHNbbl0/YXJndW1lbnRzW25dOnt9LHI9T2JqZWN0LmtleXModCk7XCJmdW5jdGlvblwiPT10eXBlb2YgT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyYmKHI9ci5jb25jYXQoT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyh0KS5maWx0ZXIoZnVuY3Rpb24oZSl7cmV0dXJuIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IodCxlKS5lbnVtZXJhYmxlfSkpKSxyLmZvckVhY2goZnVuY3Rpb24obil7dmFyIHIsbyxhO3I9ZSxvPW4sYT10W25dLG8gaW4gcj9PYmplY3QuZGVmaW5lUHJvcGVydHkocixvLHt2YWx1ZTphLGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwfSk6cltvXT1hfSl9cmV0dXJuIGV9KHt9LGMpLHtjb250ZW50OmZ9KSksZDx1Lmxlbmd0aC0xJiYodC5wdXNoKHIpLHI9W10pfWVsc2Ugci5wdXNoKGMpfX1jYXRjaChlKXthPSEwLGk9ZX1maW5hbGx5e3RyeXtvfHxudWxsPT1zLnJldHVybnx8cy5yZXR1cm4oKX1maW5hbGx5e2lmKGEpdGhyb3cgaX19cmV0dXJuIHIubGVuZ3RoPjAmJnQucHVzaChyKSx0fSkoKG49KGU9ci5zcGxpdCgvXFxyP1xcbi9nKSkubWFwKGZ1bmN0aW9uKGUpe3JldHVybiBudWxsPT09L14+PyArXFxkKyArXFx8IFsgXSsvLmV4ZWMoZVUoKShlKSk/bnVsbDovXj4/ICtcXGQrICtcXHwgKCAqKS8uZXhlYyhlVSgpKGUpKX0pLmZpbHRlcihCb29sZWFuKS5tYXAoZnVuY3Rpb24oZSl7cmV0dXJuIGUucG9wKCl9KS5yZWR1Y2UoZnVuY3Rpb24oZSxuKXtyZXR1cm4gaXNOYU4oZSk/bi5sZW5ndGg6TWF0aC5taW4oZSxuLmxlbmd0aCl9LE5hTikpPjE/ZS5tYXAoZnVuY3Rpb24oZSx0KXtyZXR1cm5+KHQ9ZS5pbmRleE9mKFwifFwiKSk/ZS5zdWJzdHJpbmcoMCx0KStlLnN1YnN0cmluZyh0KS5yZXBsYWNlKFwiXlxcXFwge1wiLmNvbmNhdChuLFwifVwiKSxcIlwiKTplfSkuam9pbihcIlxcblwiKTplLmpvaW4oXCJcXG5cIikpLm1hcChmdW5jdGlvbihlKXt2YXIgbixyLG8sYSxpLGwscyxjLHU7cmV0dXJue2xpbmU6ZSxwYXJzZWRMaW5lOihuPWUscj10LCgobnVsbD09KG89blswXSk/dm9pZCAwOm8uY29udGVudCk9PT1cIj5cInx8KG51bGw9PShhPW5bMF0pP3ZvaWQgMDphLmNvbnRlbnQpPT09XCIgXCIpJiYocz1udWxsPT0obD1uWzFdKXx8bnVsbD09KHU9bC5jb250ZW50KXx8bnVsbD09KGM9dS5yZXBsYWNlKFwifFwiLFwiXCIpKT92b2lkIDA6Yy50cmltKCkpLHtsaW5lTnVtYmVyOnMsaXNFcnJvcmVkTGluZTpzPT09KG51bGw9PShpPXIubGluZU51bWJlcik/dm9pZCAwOmkudG9TdHJpbmcoKSl9KX19KX0sW3IsdF0pLGE9ZUUoe2ZpbGU6dC5maWxlLGxpbmVOdW1iZXI6dC5saW5lTnVtYmVyLGNvbHVtbjp0LmNvbHVtbn0pLGk9bnVsbD09dHx8bnVsbD09KG49dC5maWxlKT92b2lkIDA6bi5zcGxpdChcIi5cIikucG9wKCk7cmV0dXJuKDAseS5qc3hzKShcImRpdlwiLHtcImRhdGEtbmV4dGpzLWNvZGVmcmFtZVwiOiEwLGNoaWxkcmVuOlsoMCx5LmpzeCkoXCJkaXZcIix7Y2xhc3NOYW1lOlwiY29kZS1mcmFtZS1oZWFkZXJcIixjaGlsZHJlbjooMCx5LmpzeHMpKFwicFwiLHtjbGFzc05hbWU6XCJjb2RlLWZyYW1lLWxpbmtcIixjaGlsZHJlbjpbKDAseS5qc3gpKFwic3BhblwiLHtjbGFzc05hbWU6XCJjb2RlLWZyYW1lLWljb25cIixjaGlsZHJlbjooMCx5LmpzeCkoZVQse2xhbmc6aX0pfSksKDAseS5qc3hzKShcInNwYW5cIix7XCJkYXRhLXRleHRcIjohMCxjaGlsZHJlbjpbZVModCksXCIgQFwiLFwiIFwiLCgwLHkuanN4KShlYix7dGV4dDp0Lm1ldGhvZE5hbWV9KV19KSwoMCx5LmpzeCkoXCJidXR0b25cIix7XCJhcmlhLWxhYmVsXCI6XCJPcGVuIGluIGVkaXRvclwiLFwiZGF0YS13aXRoLW9wZW4taW4tZWRpdG9yLWxpbmstc291cmNlLWZpbGVcIjohMCxvbkNsaWNrOmEsY2hpbGRyZW46KDAseS5qc3gpKFwic3BhblwiLHtjbGFzc05hbWU6XCJjb2RlLWZyYW1lLWljb25cIixcImRhdGEtaWNvblwiOlwicmlnaHRcIixjaGlsZHJlbjooMCx5LmpzeCkoZXose3dpZHRoOjE2LGhlaWdodDoxNn0pfSl9KV19KX0pLCgwLHkuanN4KShcInByZVwiLHtjbGFzc05hbWU6XCJjb2RlLWZyYW1lLXByZVwiLGNoaWxkcmVuOigwLHkuanN4KShcImRpdlwiLHtjbGFzc05hbWU6XCJjb2RlLWZyYW1lLWxpbmVzXCIsY2hpbGRyZW46by5tYXAoZnVuY3Rpb24oZSxuKXt2YXIgdCxyLG89ZS5saW5lLGE9ZS5wYXJzZWRMaW5lLGk9YS5saW5lTnVtYmVyLGw9YS5pc0Vycm9yZWRMaW5lLHM9e307cmV0dXJuIGkmJihzW1wiZGF0YS1uZXh0anMtY29kZWZyYW1lLWxpbmVcIl09aSksbCYmKHNbXCJkYXRhLW5leHRqcy1jb2RlZnJhbWUtbGluZS0tZXJyb3JlZFwiXT0hMCksKDAseS5qc3gpKFwiZGl2XCIsKHQ9ZVYoe30scykscj1yPXtjaGlsZHJlbjpvLm1hcChmdW5jdGlvbihlLG4pe3JldHVybigwLHkuanN4KShcInNwYW5cIix7c3R5bGU6ZVYoe2NvbG9yOmUuZmc/XCJ2YXIoLS1jb2xvci1cIi5jb25jYXQoZS5mZyxcIilcIik6dm9pZCAwfSxcImJvbGRcIj09PWUuZGVjb3JhdGlvbj97Zm9udFdlaWdodDo1MDB9OlwiaXRhbGljXCI9PT1lLmRlY29yYXRpb24/e2ZvbnRTdHlsZTpcIml0YWxpY1wifTp2b2lkIDApLGNoaWxkcmVuOmUuY29udGVudH0sXCJmcmFtZS1cIi5jb25jYXQobikpfSl9LE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzP09iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKHQsT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcnMocikpOihmdW5jdGlvbihlLG4pe3ZhciB0PU9iamVjdC5rZXlzKGUpO2lmKE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMpe3ZhciByPU9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMoZSk7dC5wdXNoLmFwcGx5KHQscil9cmV0dXJuIHR9KShPYmplY3QocikpLmZvckVhY2goZnVuY3Rpb24oZSl7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsZSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHIsZSkpfSksdCksXCJsaW5lLVwiLmNvbmNhdChuKSl9KX0pfSldfSl9ZnVuY3Rpb24gZVcoZSxuKXsobnVsbD09bnx8bj5lLmxlbmd0aCkmJihuPWUubGVuZ3RoKTtmb3IodmFyIHQ9MCxyPUFycmF5KG4pO3Q8bjt0Kyspclt0XT1lW3RdO3JldHVybiByfXZhciBlJD1bXCJbZGF0YS1uZXh0LW1hcmtdXCIsXCJbZGF0YS1pc3N1ZXMtb3Blbl1cIixcIiNuZXh0anMtZGV2LXRvb2xzLW1lbnVcIixcIltkYXRhLW5leHRqcy1lcnJvci1vdmVybGF5LW5hdl1cIixcIltkYXRhLWluZm8tcG9wb3Zlcl1cIixcIltkYXRhLW5leHRqcy1kZXZ0b29scy1wYW5lbC1vdmVybGF5XVwiLFwiW2RhdGEtbmV4dGpzLWRldnRvb2xzLXBhbmVsLWZvb3Rlcl1cIixcIltkYXRhLW5leHRqcy1lcnJvci1vdmVybGF5LWZvb3Rlcl1cIl0sZVo9ZnVuY3Rpb24oZSl7dmFyIG4sdCxyLG8sYSxpLGwscz1lLmNoaWxkcmVuLGM9ZS5jbGFzc05hbWUsdT1lLm9uQ2xvc2UsZD1lW1wiYXJpYS1sYWJlbGxlZGJ5XCJdLGY9ZVtcImFyaWEtZGVzY3JpYmVkYnlcIl0scD0oZS5kaWFsb2dSZXNpemVyUmVmLGZ1bmN0aW9uKGUsbil7aWYobnVsbD09ZSlyZXR1cm57fTt2YXIgdCxyLG89ZnVuY3Rpb24oZSxuKXtpZihudWxsPT1lKXJldHVybnt9O3ZhciB0LHIsbz17fSxhPU9iamVjdC5rZXlzKGUpO2ZvcihyPTA7cjxhLmxlbmd0aDtyKyspdD1hW3JdLG4uaW5kZXhPZih0KT49MHx8KG9bdF09ZVt0XSk7cmV0dXJuIG99KGUsbik7aWYoT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyl7dmFyIGE9T2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhlKTtmb3Iocj0wO3I8YS5sZW5ndGg7cisrKXQ9YVtyXSwhKG4uaW5kZXhPZih0KT49MCkmJk9iamVjdC5wcm90b3R5cGUucHJvcGVydHlJc0VudW1lcmFibGUuY2FsbChlLHQpJiYob1t0XT1lW3RdKX1yZXR1cm4gb30oZSxbXCJjaGlsZHJlblwiLFwiY2xhc3NOYW1lXCIsXCJvbkNsb3NlXCIsXCJhcmlhLWxhYmVsbGVkYnlcIixcImFyaWEtZGVzY3JpYmVkYnlcIixcImRpYWxvZ1Jlc2l6ZXJSZWZcIl0pKSxoPXgudXNlUmVmKG51bGwpLGc9KG49eC51c2VTdGF0ZShcInVuZGVmaW5lZFwiIT10eXBlb2YgZG9jdW1lbnQmJmRvY3VtZW50Lmhhc0ZvY3VzKCk/XCJkaWFsb2dcIjp2b2lkIDApLHQ9MixmdW5jdGlvbihlKXtpZihBcnJheS5pc0FycmF5KGUpKXJldHVybiBlfShuKXx8ZnVuY3Rpb24oZSxuKXt2YXIgdCxyLG89bnVsbD09ZT9udWxsOlwidW5kZWZpbmVkXCIhPXR5cGVvZiBTeW1ib2wmJmVbU3ltYm9sLml0ZXJhdG9yXXx8ZVtcIkBAaXRlcmF0b3JcIl07aWYobnVsbCE9byl7dmFyIGE9W10saT0hMCxsPSExO3RyeXtmb3Iobz1vLmNhbGwoZSk7IShpPSh0PW8ubmV4dCgpKS5kb25lKSYmKGEucHVzaCh0LnZhbHVlKSxhLmxlbmd0aCE9PW4pO2k9ITApO31jYXRjaChlKXtsPSEwLHI9ZX1maW5hbGx5e3RyeXtpfHxudWxsPT1vLnJldHVybnx8by5yZXR1cm4oKX1maW5hbGx5e2lmKGwpdGhyb3cgcn19cmV0dXJuIGF9fShuLDIpfHxmdW5jdGlvbihlLG4pe2lmKGUpe2lmKFwic3RyaW5nXCI9PXR5cGVvZiBlKXJldHVybiBlVyhlLG4pO3ZhciB0PU9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChlKS5zbGljZSg4LC0xKTtpZihcIk9iamVjdFwiPT09dCYmZS5jb25zdHJ1Y3RvciYmKHQ9ZS5jb25zdHJ1Y3Rvci5uYW1lKSxcIk1hcFwiPT09dHx8XCJTZXRcIj09PXQpcmV0dXJuIEFycmF5LmZyb20odCk7aWYoXCJBcmd1bWVudHNcIj09PXR8fC9eKD86VWl8SSludCg/Ojh8MTZ8MzIpKD86Q2xhbXBlZCk/QXJyYXkkLy50ZXN0KHQpKXJldHVybiBlVyhlLG4pfX0obix0KXx8ZnVuY3Rpb24oKXt0aHJvdyBUeXBlRXJyb3IoXCJJbnZhbGlkIGF0dGVtcHQgdG8gZGVzdHJ1Y3R1cmUgbm9uLWl0ZXJhYmxlIGluc3RhbmNlLlxcXFxuSW4gb3JkZXIgdG8gYmUgaXRlcmFibGUsIG5vbi1hcnJheSBvYmplY3RzIG11c3QgaGF2ZSBhIFtTeW1ib2wuaXRlcmF0b3JdKCkgbWV0aG9kLlwiKX0oKSksbT1nWzBdLHY9Z1sxXTtyZXR1cm4gcj1oLmN1cnJlbnQsbz1lJCxhPWZ1bmN0aW9uKGUpe3JldHVybiBlLnByZXZlbnREZWZhdWx0KCksbnVsbD09dT92b2lkIDA6dSgpfSx4LnVzZUVmZmVjdChmdW5jdGlvbigpe2lmKG51bGwhPXImJm51bGwhPWEpe3ZhciBlPWZ1bmN0aW9uKGUpeyEoIXJ8fHIuY29udGFpbnMoZS50YXJnZXQpKSYmKG8uc29tZShmdW5jdGlvbihuKXtyZXR1cm4gZS50YXJnZXQuY2xvc2VzdChuKX0pfHxhKGUpKX0sbj1yLmdldFJvb3ROb2RlKCk7cmV0dXJuIG4uYWRkRXZlbnRMaXN0ZW5lcihcIm1vdXNldXBcIixlKSxuLmFkZEV2ZW50TGlzdGVuZXIoXCJ0b3VjaGVuZFwiLGUse3Bhc3NpdmU6ITF9KSxmdW5jdGlvbigpe24ucmVtb3ZlRXZlbnRMaXN0ZW5lcihcIm1vdXNldXBcIixlKSxuLnJlbW92ZUV2ZW50TGlzdGVuZXIoXCJ0b3VjaGVuZFwiLGUpfX19LFthLHIsb10pLHgudXNlRWZmZWN0KGZ1bmN0aW9uKCl7dmFyIGU9ZnVuY3Rpb24oKXt2KGRvY3VtZW50Lmhhc0ZvY3VzKCk/XCJkaWFsb2dcIjp2b2lkIDApfTtpZihudWxsIT1oLmN1cnJlbnQpcmV0dXJuIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKFwiZm9jdXNcIixlKSx3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcihcImJsdXJcIixlKSxmdW5jdGlvbigpe3dpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKFwiZm9jdXNcIixlKSx3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcihcImJsdXJcIixlKX19LFtdKSx4LnVzZUVmZmVjdChmdW5jdGlvbigpe3ZhciBlLG4sdD1oLmN1cnJlbnQscj1udWxsPT10P3ZvaWQgMDp0LmdldFJvb3ROb2RlKCksbz0oZT1yLG51bGwhPShuPVNoYWRvd1Jvb3QpJiZcInVuZGVmaW5lZFwiIT10eXBlb2YgU3ltYm9sJiZuW1N5bWJvbC5oYXNJbnN0YW5jZV0/ISFuW1N5bWJvbC5oYXNJbnN0YW5jZV0oZSk6ZSBpbnN0YW5jZW9mIG4pP251bGw9PXI/dm9pZCAwOnIuYWN0aXZlRWxlbWVudDpudWxsO3JldHVybiBudWxsPT10fHx0LmZvY3VzKCksZnVuY3Rpb24oKXtudWxsPT10fHx0LmJsdXIoKSxudWxsPT1vfHxvLmZvY3VzKCl9fSxbXSksKDAseS5qc3gpKFwiZGl2XCIsKGk9ZnVuY3Rpb24oZSl7Zm9yKHZhciBuPTE7bjxhcmd1bWVudHMubGVuZ3RoO24rKyl7dmFyIHQ9bnVsbCE9YXJndW1lbnRzW25dP2FyZ3VtZW50c1tuXTp7fSxyPU9iamVjdC5rZXlzKHQpO1wiZnVuY3Rpb25cIj09dHlwZW9mIE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMmJihyPXIuY29uY2F0KE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHModCkuZmlsdGVyKGZ1bmN0aW9uKGUpe3JldHVybiBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHQsZSkuZW51bWVyYWJsZX0pKSksci5mb3JFYWNoKGZ1bmN0aW9uKG4pe3ZhciByLG8sYTtyPWUsbz1uLGE9dFtuXSxvIGluIHI/T2JqZWN0LmRlZmluZVByb3BlcnR5KHIsbyx7dmFsdWU6YSxlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMH0pOnJbb109YX0pfXJldHVybiBlfSh7cmVmOmgsdGFiSW5kZXg6LTEsXCJkYXRhLW5leHRqcy1kaWFsb2dcIjohMCxyb2xlOm0sXCJhcmlhLWxhYmVsbGVkYnlcIjpkLFwiYXJpYS1kZXNjcmliZWRieVwiOmYsXCJhcmlhLW1vZGFsXCI6XCJ0cnVlXCIsY2xhc3NOYW1lOmMsb25LZXlEb3duOmZ1bmN0aW9uKGUpe1wiRXNjYXBlXCI9PT1lLmtleSYmKG51bGw9PXV8fHUoKSl9fSxwKSxsPWw9e2NoaWxkcmVuOnN9LE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzP09iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKGksT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcnMobCkpOihmdW5jdGlvbihlLG4pe3ZhciB0PU9iamVjdC5rZXlzKGUpO2lmKE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMpe3ZhciByPU9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMoZSk7dC5wdXNoLmFwcGx5KHQscil9cmV0dXJuIHR9KShPYmplY3QobCkpLmZvckVhY2goZnVuY3Rpb24oZSl7T2JqZWN0LmRlZmluZVByb3BlcnR5KGksZSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGwsZSkpfSksaSkpfSxlWT1mdW5jdGlvbihlKXt2YXIgbix0LHI9ZS5jaGlsZHJlbixvPWUuY2xhc3NOYW1lLGE9ZnVuY3Rpb24oZSxuKXtpZihudWxsPT1lKXJldHVybnt9O3ZhciB0LHIsbz1mdW5jdGlvbihlLG4pe2lmKG51bGw9PWUpcmV0dXJue307dmFyIHQscixvPXt9LGE9T2JqZWN0LmtleXMoZSk7Zm9yKHI9MDtyPGEubGVuZ3RoO3IrKyl0PWFbcl0sbi5pbmRleE9mKHQpPj0wfHwob1t0XT1lW3RdKTtyZXR1cm4gb30oZSxuKTtpZihPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKXt2YXIgYT1PYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKGUpO2ZvcihyPTA7cjxhLmxlbmd0aDtyKyspdD1hW3JdLCEobi5pbmRleE9mKHQpPj0wKSYmT2JqZWN0LnByb3RvdHlwZS5wcm9wZXJ0eUlzRW51bWVyYWJsZS5jYWxsKGUsdCkmJihvW3RdPWVbdF0pfXJldHVybiBvfShlLFtcImNoaWxkcmVuXCIsXCJjbGFzc05hbWVcIl0pO3JldHVybigwLHkuanN4KShcImRpdlwiLChuPWZ1bmN0aW9uKGUpe2Zvcih2YXIgbj0xO248YXJndW1lbnRzLmxlbmd0aDtuKyspe3ZhciB0PW51bGwhPWFyZ3VtZW50c1tuXT9hcmd1bWVudHNbbl06e30scj1PYmplY3Qua2V5cyh0KTtcImZ1bmN0aW9uXCI9PXR5cGVvZiBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzJiYocj1yLmNvbmNhdChPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKHQpLmZpbHRlcihmdW5jdGlvbihlKXtyZXR1cm4gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcih0LGUpLmVudW1lcmFibGV9KSkpLHIuZm9yRWFjaChmdW5jdGlvbihuKXt2YXIgcixvLGE7cj1lLG89bixhPXRbbl0sbyBpbiByP09iamVjdC5kZWZpbmVQcm9wZXJ0eShyLG8se3ZhbHVlOmEsZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITB9KTpyW29dPWF9KX1yZXR1cm4gZX0oe1wiZGF0YS1uZXh0anMtZGlhbG9nLWJvZHlcIjohMCxjbGFzc05hbWU6b30sYSksdD10PXtjaGlsZHJlbjpyfSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycz9PYmplY3QuZGVmaW5lUHJvcGVydGllcyhuLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzKHQpKTooZnVuY3Rpb24oZSxuKXt2YXIgdD1PYmplY3Qua2V5cyhlKTtpZihPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKXt2YXIgcj1PYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKGUpO3QucHVzaC5hcHBseSh0LHIpfXJldHVybiB0fSkoT2JqZWN0KHQpKS5mb3JFYWNoKGZ1bmN0aW9uKGUpe09iamVjdC5kZWZpbmVQcm9wZXJ0eShuLGUsT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcih0LGUpKX0pLG4pKX0sZVg9ZnVuY3Rpb24oZSl7dmFyIG4sdCxyPWUuY2hpbGRyZW4sbz1lLmNsYXNzTmFtZSxhPWZ1bmN0aW9uKGUsbil7aWYobnVsbD09ZSlyZXR1cm57fTt2YXIgdCxyLG89ZnVuY3Rpb24oZSxuKXtpZihudWxsPT1lKXJldHVybnt9O3ZhciB0LHIsbz17fSxhPU9iamVjdC5rZXlzKGUpO2ZvcihyPTA7cjxhLmxlbmd0aDtyKyspdD1hW3JdLG4uaW5kZXhPZih0KT49MHx8KG9bdF09ZVt0XSk7cmV0dXJuIG99KGUsbik7aWYoT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyl7dmFyIGE9T2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhlKTtmb3Iocj0wO3I8YS5sZW5ndGg7cisrKXQ9YVtyXSwhKG4uaW5kZXhPZih0KT49MCkmJk9iamVjdC5wcm90b3R5cGUucHJvcGVydHlJc0VudW1lcmFibGUuY2FsbChlLHQpJiYob1t0XT1lW3RdKX1yZXR1cm4gb30oZSxbXCJjaGlsZHJlblwiLFwiY2xhc3NOYW1lXCJdKTtyZXR1cm4oMCx5LmpzeCkoXCJkaXZcIiwobj1mdW5jdGlvbihlKXtmb3IodmFyIG49MTtuPGFyZ3VtZW50cy5sZW5ndGg7bisrKXt2YXIgdD1udWxsIT1hcmd1bWVudHNbbl0/YXJndW1lbnRzW25dOnt9LHI9T2JqZWN0LmtleXModCk7XCJmdW5jdGlvblwiPT10eXBlb2YgT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyYmKHI9ci5jb25jYXQoT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyh0KS5maWx0ZXIoZnVuY3Rpb24oZSl7cmV0dXJuIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IodCxlKS5lbnVtZXJhYmxlfSkpKSxyLmZvckVhY2goZnVuY3Rpb24obil7dmFyIHIsbyxhO3I9ZSxvPW4sYT10W25dLG8gaW4gcj9PYmplY3QuZGVmaW5lUHJvcGVydHkocixvLHt2YWx1ZTphLGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwfSk6cltvXT1hfSl9cmV0dXJuIGV9KHtcImRhdGEtbmV4dGpzLWRpYWxvZy1jb250ZW50XCI6ITAsY2xhc3NOYW1lOm99LGEpLHQ9dD17Y2hpbGRyZW46cn0sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcnM/T2JqZWN0LmRlZmluZVByb3BlcnRpZXMobixPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycyh0KSk6KGZ1bmN0aW9uKGUsbil7dmFyIHQ9T2JqZWN0LmtleXMoZSk7aWYoT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyl7dmFyIHI9T2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhlKTt0LnB1c2guYXBwbHkodCxyKX1yZXR1cm4gdH0pKE9iamVjdCh0KSkuZm9yRWFjaChmdW5jdGlvbihlKXtPYmplY3QuZGVmaW5lUHJvcGVydHkobixlLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IodCxlKSl9KSxuKSl9O2Z1bmN0aW9uIGVLKGUpe3ZhciBuLHQ7cmV0dXJuKDAseS5qc3gpKFwiZGl2XCIsKG49ZnVuY3Rpb24oZSl7Zm9yKHZhciBuPTE7bjxhcmd1bWVudHMubGVuZ3RoO24rKyl7dmFyIHQ9bnVsbCE9YXJndW1lbnRzW25dP2FyZ3VtZW50c1tuXTp7fSxyPU9iamVjdC5rZXlzKHQpO1wiZnVuY3Rpb25cIj09dHlwZW9mIE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMmJihyPXIuY29uY2F0KE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHModCkuZmlsdGVyKGZ1bmN0aW9uKGUpe3JldHVybiBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHQsZSkuZW51bWVyYWJsZX0pKSksci5mb3JFYWNoKGZ1bmN0aW9uKG4pe3ZhciByLG8sYTtyPWUsbz1uLGE9dFtuXSxvIGluIHI/T2JqZWN0LmRlZmluZVByb3BlcnR5KHIsbyx7dmFsdWU6YSxlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMH0pOnJbb109YX0pfXJldHVybiBlfSh7XCJkYXRhLW5leHRqcy1kaWFsb2ctaGVhZGVyXCI6ITB9LGUpLHQ9dD17Y2hpbGRyZW46ZS5jaGlsZHJlbn0sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcnM/T2JqZWN0LmRlZmluZVByb3BlcnRpZXMobixPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycyh0KSk6KGZ1bmN0aW9uKGUsbil7dmFyIHQ9T2JqZWN0LmtleXMoZSk7aWYoT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyl7dmFyIHI9T2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhlKTt0LnB1c2guYXBwbHkodCxyKX1yZXR1cm4gdH0pKE9iamVjdCh0KSkuZm9yRWFjaChmdW5jdGlvbihlKXtPYmplY3QuZGVmaW5lUHJvcGVydHkobixlLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IodCxlKSl9KSxuKSl9ZnVuY3Rpb24gZVEoKXt2YXIgZSxuLHQ9KGU9W1wiXFxuICBbZGF0YS1uZXh0anMtZGlhbG9nLXJvb3RdIHtcXG4gICAgLS1uZXh0LWRpYWxvZy1yYWRpdXM6IHZhcigtLXJvdW5kZWQteGwpO1xcbiAgICAtLW5leHQtZGlhbG9nLW1heC13aWR0aDogOTYwcHg7XFxuICAgIC0tbmV4dC1kaWFsb2ctcm93LXBhZGRpbmc6IDE2cHg7XFxuICAgIC0tbmV4dC1kaWFsb2ctcGFkZGluZzogMTJweDtcXG4gICAgLS1uZXh0LWRpYWxvZy1ub3RjaC1oZWlnaHQ6IDQycHg7XFxuICAgIC0tbmV4dC1kaWFsb2ctYm9yZGVyLXdpZHRoOiAxcHg7XFxuXFxuICAgIGRpc3BsYXk6IGZsZXg7XFxuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XFxuICAgIHdpZHRoOiAxMDAlO1xcbiAgICBtYXgtaGVpZ2h0OiBjYWxjKDEwMCUgLSA1NnB4KTtcXG4gICAgbWF4LXdpZHRoOiB2YXIoLS1uZXh0LWRpYWxvZy1tYXgtd2lkdGgpO1xcbiAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XFxuICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xcbiAgICBzY2FsZTogMC45NztcXG4gICAgb3BhY2l0eTogMDtcXG4gICAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogc2NhbGUsIG9wYWNpdHk7XFxuICAgIHRyYW5zaXRpb24tZHVyYXRpb246IHZhcigtLXRyYW5zaXRpb24tZHVyYXRpb24pO1xcbiAgICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogdmFyKC0tdGltaW5nLW92ZXJsYXkpO1xcblxcbiAgICAmW2RhdGEtcmVuZGVyZWQ9J3RydWUnXSB7XFxuICAgICAgb3BhY2l0eTogMTtcXG4gICAgICBzY2FsZTogMTtcXG4gICAgfVxcblxcbiAgICBbZGF0YS1uZXh0anMtc2Nyb2xsLWZhZGVyXVtkYXRhLXNpZGU9J3RvcCddIHtcXG4gICAgICBsZWZ0OiAxcHg7XFxuICAgICAgdG9wOiBjYWxjKFxcbiAgICAgICAgdmFyKC0tbmV4dC1kaWFsb2ctbm90Y2gtaGVpZ2h0KSArIHZhcigtLW5leHQtZGlhbG9nLWJvcmRlci13aWR0aClcXG4gICAgICApO1xcbiAgICAgIHdpZHRoOiBjYWxjKDEwMCUgLSB2YXIoLS1uZXh0LWRpYWxvZy1wYWRkaW5nKSk7XFxuICAgICAgb3BhY2l0eTogMDtcXG4gICAgfVxcbiAgfVxcblxcbiAgW2RhdGEtbmV4dGpzLWRpYWxvZ10ge1xcbiAgICBvdXRsaW5lOiAwO1xcbiAgfVxcblxcbiAgW2RhdGEtbmV4dGpzLWRpYWxvZ10sXFxuICBbZGF0YS1uZXh0anMtZGlhbG9nXSAqIHtcXG4gICAgJjo6LXdlYmtpdC1zY3JvbGxiYXIge1xcbiAgICAgIHdpZHRoOiA2cHg7XFxuICAgICAgaGVpZ2h0OiA2cHg7XFxuICAgICAgYm9yZGVyLXJhZGl1czogMCAwIDFyZW0gMXJlbTtcXG4gICAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xcbiAgICB9XFxuXFxuICAgICY6Oi13ZWJraXQtc2Nyb2xsYmFyLWJ1dHRvbiB7XFxuICAgICAgZGlzcGxheTogbm9uZTtcXG4gICAgfVxcblxcbiAgICAmOjotd2Via2l0LXNjcm9sbGJhci10cmFjayB7XFxuICAgICAgYm9yZGVyLXJhZGl1czogMCAwIDFyZW0gMXJlbTtcXG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jb2xvci1iYWNrZ3JvdW5kLTEwMCk7XFxuICAgIH1cXG5cXG4gICAgJjo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWIge1xcbiAgICAgIGJvcmRlci1yYWRpdXM6IDFyZW07XFxuICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY29sb3ItZ3JheS01MDApO1xcbiAgICB9XFxuICB9XFxuXFxuICAvKiBQbGFjZSBvdmVyZmxvdzogaGlkZGVuIG9uIHRoaXMgc28gd2UgY2FuIGJyZWFrIG91dCBmcm9tIFtkYXRhLW5leHRqcy1kaWFsb2ddICovXFxuICBbZGF0YS1uZXh0anMtZGlhbG9nLXNpemVyXSB7XFxuICAgIG92ZXJmbG93OiBoaWRkZW47XFxuICAgIGJvcmRlci1yYWRpdXM6IGluaGVyaXQ7XFxuICB9XFxuXFxuICBbZGF0YS1uZXh0anMtZGlhbG9nLWJhY2tkcm9wXSB7XFxuICAgIG9wYWNpdHk6IDA7XFxuICAgIHRyYW5zaXRpb246IG9wYWNpdHkgdmFyKC0tdHJhbnNpdGlvbi1kdXJhdGlvbikgdmFyKC0tdGltaW5nLW92ZXJsYXkpO1xcbiAgfVxcblxcbiAgW2RhdGEtbmV4dGpzLWRpYWxvZy1vdmVybGF5XSB7XFxuICAgIG1hcmdpbjogOHB4O1xcbiAgfVxcblxcbiAgW2RhdGEtbmV4dGpzLWRpYWxvZy1vdmVybGF5XVtkYXRhLXJlbmRlcmVkPSd0cnVlJ11cXG4gICAgW2RhdGEtbmV4dGpzLWRpYWxvZy1iYWNrZHJvcF0ge1xcbiAgICBvcGFjaXR5OiAxO1xcbiAgfVxcblxcbiAgW2RhdGEtbmV4dGpzLWRpYWxvZy1jb250ZW50XSB7XFxuICAgIGJvcmRlcjogbm9uZTtcXG4gICAgbWFyZ2luOiAwO1xcbiAgICBkaXNwbGF5OiBmbGV4O1xcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XFxuICAgIHBhZGRpbmc6IHZhcigtLW5leHQtZGlhbG9nLXBhZGRpbmcpO1xcbiAgfVxcblxcbiAgW2RhdGEtbmV4dGpzLWRpYWxvZy1jb250ZW50XSA+IFtkYXRhLW5leHRqcy1kaWFsb2ctaGVhZGVyXSB7XFxuICAgIGZsZXgtc2hyaW5rOiAwO1xcbiAgICBtYXJnaW4tYm90dG9tOiA4cHg7XFxuICB9XFxuXFxuICBbZGF0YS1uZXh0anMtZGlhbG9nLWNvbnRlbnRdID4gW2RhdGEtbmV4dGpzLWRpYWxvZy1ib2R5XSB7XFxuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcXG4gICAgZmxleDogMSAxIGF1dG87XFxuICB9XFxuXFxuICBAbWVkaWEgKG1heC1oZWlnaHQ6IDgxMnB4KSB7XFxuICAgIFtkYXRhLW5leHRqcy1kaWFsb2ctb3ZlcmxheV0ge1xcbiAgICAgIG1heC1oZWlnaHQ6IGNhbGMoMTAwJSAtIDE1cHgpO1xcbiAgICB9XFxuICB9XFxuXFxuICBAbWVkaWEgKG1pbi13aWR0aDogNTc2cHgpIHtcXG4gICAgW2RhdGEtbmV4dGpzLWRpYWxvZy1yb290XSB7XFxuICAgICAgLS1uZXh0LWRpYWxvZy1tYXgtd2lkdGg6IDU0MHB4O1xcbiAgICB9XFxuICB9XFxuXFxuICBAbWVkaWEgKG1pbi13aWR0aDogNzY4cHgpIHtcXG4gICAgW2RhdGEtbmV4dGpzLWRpYWxvZy1yb290XSB7XFxuICAgICAgLS1uZXh0LWRpYWxvZy1tYXgtd2lkdGg6IDcyMHB4O1xcbiAgICB9XFxuICB9XFxuXFxuICBAbWVkaWEgKG1pbi13aWR0aDogOTkycHgpIHtcXG4gICAgW2RhdGEtbmV4dGpzLWRpYWxvZy1yb290XSB7XFxuICAgICAgLS1uZXh0LWRpYWxvZy1tYXgtd2lkdGg6IDk2MHB4O1xcbiAgICB9XFxuICB9XFxuXCJdLG58fChuPWUuc2xpY2UoMCkpLE9iamVjdC5mcmVlemUoT2JqZWN0LmRlZmluZVByb3BlcnRpZXMoZSx7cmF3Ont2YWx1ZTpPYmplY3QuZnJlZXplKG4pfX0pKSk7cmV0dXJuIGVRPWZ1bmN0aW9uKCl7cmV0dXJuIHR9LHR9dmFyIGVHPWVpKGVRKCkpLGVKPV9fd2VicGFja19yZXF1aXJlX18oXCIuL3NyYy9uZXh0LWRldnRvb2xzL2Rldi1vdmVybGF5L3V0aWxzL2N4LnRzXCIpO2Z1bmN0aW9uIGUwKGUsbil7KG51bGw9PW58fG4+ZS5sZW5ndGgpJiYobj1lLmxlbmd0aCk7Zm9yKHZhciB0PTAscj1BcnJheShuKTt0PG47dCsrKXJbdF09ZVt0XTtyZXR1cm4gcn1mdW5jdGlvbiBlMShlKXtmb3IodmFyIG49MTtuPGFyZ3VtZW50cy5sZW5ndGg7bisrKXt2YXIgdD1udWxsIT1hcmd1bWVudHNbbl0/YXJndW1lbnRzW25dOnt9LHI9T2JqZWN0LmtleXModCk7XCJmdW5jdGlvblwiPT10eXBlb2YgT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyYmKHI9ci5jb25jYXQoT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyh0KS5maWx0ZXIoZnVuY3Rpb24oZSl7cmV0dXJuIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IodCxlKS5lbnVtZXJhYmxlfSkpKSxyLmZvckVhY2goZnVuY3Rpb24obil7dmFyIHIsbyxhO3I9ZSxvPW4sYT10W25dLG8gaW4gcj9PYmplY3QuZGVmaW5lUHJvcGVydHkocixvLHt2YWx1ZTphLGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwfSk6cltvXT1hfSl9cmV0dXJuIGV9ZnVuY3Rpb24gZTIoZSxuKXtyZXR1cm4gbj1udWxsIT1uP246e30sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcnM/T2JqZWN0LmRlZmluZVByb3BlcnRpZXMoZSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycyhuKSk6KGZ1bmN0aW9uKGUsbil7dmFyIHQ9T2JqZWN0LmtleXMoZSk7aWYoT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyl7dmFyIHI9T2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhlKTt0LnB1c2guYXBwbHkodCxyKX1yZXR1cm4gdH0pKE9iamVjdChuKSkuZm9yRWFjaChmdW5jdGlvbih0KXtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSx0LE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Iobix0KSl9KSxlfWZ1bmN0aW9uIGU0KGUsbil7cmV0dXJuIGZ1bmN0aW9uKGUpe2lmKEFycmF5LmlzQXJyYXkoZSkpcmV0dXJuIGV9KGUpfHxmdW5jdGlvbihlLG4pe3ZhciB0LHIsbz1udWxsPT1lP251bGw6XCJ1bmRlZmluZWRcIiE9dHlwZW9mIFN5bWJvbCYmZVtTeW1ib2wuaXRlcmF0b3JdfHxlW1wiQEBpdGVyYXRvclwiXTtpZihudWxsIT1vKXt2YXIgYT1bXSxpPSEwLGw9ITE7dHJ5e2ZvcihvPW8uY2FsbChlKTshKGk9KHQ9by5uZXh0KCkpLmRvbmUpJiYoYS5wdXNoKHQudmFsdWUpLCFufHxhLmxlbmd0aCE9PW4pO2k9ITApO31jYXRjaChlKXtsPSEwLHI9ZX1maW5hbGx5e3RyeXtpfHxudWxsPT1vLnJldHVybnx8by5yZXR1cm4oKX1maW5hbGx5e2lmKGwpdGhyb3cgcn19cmV0dXJuIGF9fShlLG4pfHxmdW5jdGlvbihlLG4pe2lmKGUpe2lmKFwic3RyaW5nXCI9PXR5cGVvZiBlKXJldHVybiBlMChlLG4pO3ZhciB0PU9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChlKS5zbGljZSg4LC0xKTtpZihcIk9iamVjdFwiPT09dCYmZS5jb25zdHJ1Y3RvciYmKHQ9ZS5jb25zdHJ1Y3Rvci5uYW1lKSxcIk1hcFwiPT09dHx8XCJTZXRcIj09PXQpcmV0dXJuIEFycmF5LmZyb20odCk7aWYoXCJBcmd1bWVudHNcIj09PXR8fC9eKD86VWl8SSludCg/Ojh8MTZ8MzIpKD86Q2xhbXBlZCk/QXJyYXkkLy50ZXN0KHQpKXJldHVybiBlMChlLG4pfX0oZSxuKXx8ZnVuY3Rpb24oKXt0aHJvdyBUeXBlRXJyb3IoXCJJbnZhbGlkIGF0dGVtcHQgdG8gZGVzdHJ1Y3R1cmUgbm9uLWl0ZXJhYmxlIGluc3RhbmNlLlxcXFxuSW4gb3JkZXIgdG8gYmUgaXRlcmFibGUsIG5vbi1hcnJheSBvYmplY3RzIG11c3QgaGF2ZSBhIFtTeW1ib2wuaXRlcmF0b3JdKCkgbWV0aG9kLlwiKX0oKX12YXIgZTU9XCJmdW5jdGlvblwiPT10eXBlb2YgeC51c2VBY3Rpb25TdGF0ZT9mdW5jdGlvbihlKXt2YXIgbj1lNCh4LnVzZUFjdGlvblN0YXRlKGZ1bmN0aW9uKG4sdCl7cmV0dXJuXCJyZXNldFwiPT09dD97c3RhdGU6XCJpbml0aWFsXCJ9OlwiY29weVwiPT09dD9uYXZpZ2F0b3IuY2xpcGJvYXJkP25hdmlnYXRvci5jbGlwYm9hcmQud3JpdGVUZXh0KGUpLnRoZW4oZnVuY3Rpb24oKXtyZXR1cm57c3RhdGU6XCJzdWNjZXNzXCJ9fSxmdW5jdGlvbihlKXtyZXR1cm57c3RhdGU6XCJlcnJvclwiLGVycm9yOmV9fSk6e3N0YXRlOlwiZXJyb3JcIixlcnJvcjpcIkNvcHkgdG8gY2xpcGJvYXJkIGlzIG5vdCBzdXBwb3J0ZWQgaW4gdGhpcyBicm93c2VyXCJ9Om59LHtzdGF0ZTpcImluaXRpYWxcIn0pLDMpLHQ9blswXSxyPW5bMV0sbz1uWzJdO3JldHVyblt0LGZ1bmN0aW9uKCl7eC5zdGFydFRyYW5zaXRpb24oZnVuY3Rpb24oKXtyKFwiY29weVwiKX0pfSx4LnVzZUNhbGxiYWNrKGZ1bmN0aW9uKCl7cihcInJlc2V0XCIpfSxbcl0pLG9dfTpmdW5jdGlvbihlKXt2YXIgbj1lNCh4LnVzZVJlZHVjZXIoZnVuY3Rpb24oZSxuKXtyZXR1cm5cInJlc2V0XCI9PT1uLnR5cGU/e3N0YXRlOlwiaW5pdGlhbFwifTpcImNvcGllZFwiPT09bi50eXBlP3tzdGF0ZTpcInN1Y2Nlc3NcIn06XCJjb3B5aW5nXCI9PT1uLnR5cGU/e3N0YXRlOlwicGVuZGluZ1wifTpcImVycm9yXCI9PT1uLnR5cGU/e3N0YXRlOlwiZXJyb3JcIixlcnJvcjpuLmVycm9yfTplfSx7c3RhdGU6XCJpbml0aWFsXCJ9KSwyKSx0PW5bMF0scj1uWzFdLG89eC51c2VDYWxsYmFjayhmdW5jdGlvbigpe3Ioe3R5cGU6XCJyZXNldFwifSl9LFtdKSxhPVwicGVuZGluZ1wiPT09dC5zdGF0ZTtyZXR1cm5bdCxmdW5jdGlvbigpe2F8fChuYXZpZ2F0b3IuY2xpcGJvYXJkPyhyKHt0eXBlOlwiY29weWluZ1wifSksbmF2aWdhdG9yLmNsaXBib2FyZC53cml0ZVRleHQoZSkudGhlbihmdW5jdGlvbigpe3Ioe3R5cGU6XCJjb3BpZWRcIn0pfSxmdW5jdGlvbihlKXtyKHt0eXBlOlwiZXJyb3JcIixlcnJvcjplfSl9KSk6cih7dHlwZTpcImVycm9yXCIsZXJyb3I6XCJDb3B5IHRvIGNsaXBib2FyZCBpcyBub3Qgc3VwcG9ydGVkIGluIHRoaXMgYnJvd3NlclwifSkpfSxvLGFdfTtmdW5jdGlvbiBlMyhlKXt2YXIgbj1lLmFjdGlvbkxhYmVsLHQ9ZS5zdWNjZXNzTGFiZWwscj1lLmNvbnRlbnQsbz1lLmljb24sYT1lLmRpc2FibGVkLGk9ZnVuY3Rpb24oZSxuKXtpZihudWxsPT1lKXJldHVybnt9O3ZhciB0LHIsbz1mdW5jdGlvbihlLG4pe2lmKG51bGw9PWUpcmV0dXJue307dmFyIHQscixvPXt9LGE9T2JqZWN0LmtleXMoZSk7Zm9yKHI9MDtyPGEubGVuZ3RoO3IrKyl0PWFbcl0sbi5pbmRleE9mKHQpPj0wfHwob1t0XT1lW3RdKTtyZXR1cm4gb30oZSxuKTtpZihPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKXt2YXIgYT1PYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKGUpO2ZvcihyPTA7cjxhLmxlbmd0aDtyKyspdD1hW3JdLCEobi5pbmRleE9mKHQpPj0wKSYmT2JqZWN0LnByb3RvdHlwZS5wcm9wZXJ0eUlzRW51bWVyYWJsZS5jYWxsKGUsdCkmJihvW3RdPWVbdF0pfXJldHVybiBvfShlLFtcImFjdGlvbkxhYmVsXCIsXCJzdWNjZXNzTGFiZWxcIixcImNvbnRlbnRcIixcImljb25cIixcImRpc2FibGVkXCJdKSxsPWU0KGU1KHIpLDQpLHM9bFswXSxjPWxbMV0sdT1sWzJdLGQ9bFszXSxmPVwiZXJyb3JcIj09PXMuc3RhdGU/cy5lcnJvcjpudWxsO3gudXNlRWZmZWN0KGZ1bmN0aW9uKCl7bnVsbCE9PWYmJmNvbnNvbGUud2FybihmKX0sW2ZdKSx4LnVzZUVmZmVjdChmdW5jdGlvbigpe2lmKFwic3VjY2Vzc1wiPT09cy5zdGF0ZSl7dmFyIGU9c2V0VGltZW91dChmdW5jdGlvbigpe3UoKX0sMmUzKTtyZXR1cm4gZnVuY3Rpb24oKXtjbGVhclRpbWVvdXQoZSl9fX0sW2Qscy5zdGF0ZSx1XSk7dmFyIHA9IW5hdmlnYXRvci5jbGlwYm9hcmR8fGR8fGF8fCEhZixoPVwic3VjY2Vzc1wiPT09cy5zdGF0ZT90Om4sZz1cInN1Y2Nlc3NcIj09PXMuc3RhdGU/KDAseS5qc3gpKGU5LHt9KTpvfHwoMCx5LmpzeCkoZTYse3dpZHRoOjE0LGhlaWdodDoxNCxjbGFzc05hbWU6XCJlcnJvci1vdmVybGF5LXRvb2xiYXItYnV0dG9uLWljb25cIn0pO3JldHVybigwLHkuanN4cykoXCJidXR0b25cIixlMihlMSh7fSxpKSx7dHlwZTpcImJ1dHRvblwiLHRpdGxlOmgsXCJhcmlhLWxhYmVsXCI6aCxcImFyaWEtZGlzYWJsZWRcIjpwLGRpc2FibGVkOnAsXCJkYXRhLW5leHRqcy1jb3B5LWJ1dHRvblwiOiEwLGNsYXNzTmFtZTooMCxlSi5jeCkoaS5jbGFzc05hbWUsXCJuZXh0anMtZGF0YS1jb3B5LWJ1dHRvblwiLFwibmV4dGpzLWRhdGEtY29weS1idXR0b24tLVwiLmNvbmNhdChzLnN0YXRlKSksb25DbGljazpmdW5jdGlvbigpe3B8fGMoKX0sY2hpbGRyZW46W2csXCJlcnJvclwiPT09cy5zdGF0ZT9cIiBcIi5jb25jYXQocy5lcnJvcik6bnVsbF19KSl9ZnVuY3Rpb24gZTYoZSl7cmV0dXJuKDAseS5qc3gpKFwic3ZnXCIsZTIoZTEoe3dpZHRoOlwiMTRcIixoZWlnaHQ6XCIxNFwiLHZpZXdCb3g6XCIwIDAgMTQgMTRcIixmaWxsOlwibm9uZVwiLHhtbG5zOlwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIn0sZSkse2NoaWxkcmVuOigwLHkuanN4KShcInBhdGhcIix7ZmlsbFJ1bGU6XCJldmVub2RkXCIsY2xpcFJ1bGU6XCJldmVub2RkXCIsZDpcIk0yLjQwNi40MzhjLS44NDUgMC0xLjUzMS42ODUtMS41MzEgMS41M3Y2LjU2M2MwIC44NDYuNjg2IDEuNTMxIDEuNTMxIDEuNTMxSDMuOTM3VjguNzVIMi40MDZhLjIxOS4yMTkgMCAwIDEtLjIxOS0uMjE5VjEuOTdjMC0uMTIxLjA5OC0uMjE5LjIyLS4yMTloNC44MTJjLjEyIDAgLjIxOC4wOTguMjE4LjIxOXYuNjU2SDguNzV2LS42NTZjMC0uODQ2LS42ODYtMS41MzItMS41MzEtMS41MzJIMi40MDZ6bTQuMzc1IDMuNWMtLjg0NSAwLTEuNTMxLjY4NS0xLjUzMSAxLjUzdjYuNTYzYzAgLjg0Ni42ODYgMS41MzEgMS41MzEgMS41MzFoNC44MTNjLjg0NSAwIDEuNTMxLS42ODUgMS41MzEtMS41M1Y1LjQ2OGMwLS44NDYtLjY4Ni0xLjUzMi0xLjUzMS0xLjUzMkg2Ljc4em0tLjIxOCAxLjUzYzAtLjEyLjA5Ny0uMjE4LjIxOC0uMjE4aDQuODEzYy4xMiAwIC4yMTkuMDk4LjIxOS4yMTl2Ni41NjJjMCAuMTIxLS4wOTguMjE5LS4yMi4yMTlINi43ODJhLjIxOS4yMTkgMCAwIDEtLjIxOC0uMjE5VjUuNDd6XCIsZmlsbDpcImN1cnJlbnRDb2xvclwifSl9KSl9ZnVuY3Rpb24gZTkoKXtyZXR1cm4oMCx5LmpzeCkoXCJzdmdcIix7aGVpZ2h0OlwiMTZcIix4bGlua1RpdGxlOlwiY29waWVkXCIsdmlld0JveDpcIjAgMCAxNiAxNlwiLHdpZHRoOlwiMTZcIixzdHJva2U6XCJjdXJyZW50Q29sb3JcIixmaWxsOlwiY3VycmVudENvbG9yXCIsY2hpbGRyZW46KDAseS5qc3gpKFwicGF0aFwiLHtkOlwiTTEzLjc4IDQuMjJhLjc1Ljc1IDAgMCAxIDAgMS4wNmwtNy4yNSA3LjI1YS43NS43NSAwIDAgMS0xLjA2IDBMMi4yMiA5LjI4YS43NTEuNzUxIDAgMCAxIC4wMTgtMS4wNDIuNzUxLjc1MSAwIDAgMSAxLjA0Mi0uMDE4TDYgMTAuOTRsNi43Mi02LjcyYS43NS43NSAwIDAgMSAxLjA2IDBaXCJ9KX0pfWZ1bmN0aW9uIGU4KGUpe2Zvcih2YXIgbj0xO248YXJndW1lbnRzLmxlbmd0aDtuKyspe3ZhciB0PW51bGwhPWFyZ3VtZW50c1tuXT9hcmd1bWVudHNbbl06e30scj1PYmplY3Qua2V5cyh0KTtcImZ1bmN0aW9uXCI9PXR5cGVvZiBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzJiYocj1yLmNvbmNhdChPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKHQpLmZpbHRlcihmdW5jdGlvbihlKXtyZXR1cm4gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcih0LGUpLmVudW1lcmFibGV9KSkpLHIuZm9yRWFjaChmdW5jdGlvbihuKXt2YXIgcixvLGE7cj1lLG89bixhPXRbbl0sbyBpbiByP09iamVjdC5kZWZpbmVQcm9wZXJ0eShyLG8se3ZhbHVlOmEsZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITB9KTpyW29dPWF9KX1yZXR1cm4gZX1mdW5jdGlvbiBlNyhlLG4pe3JldHVybiBuPW51bGwhPW4/bjp7fSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycz9PYmplY3QuZGVmaW5lUHJvcGVydGllcyhlLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzKG4pKTooZnVuY3Rpb24oZSxuKXt2YXIgdD1PYmplY3Qua2V5cyhlKTtpZihPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKXt2YXIgcj1PYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKGUpO3QucHVzaC5hcHBseSh0LHIpfXJldHVybiB0fSkoT2JqZWN0KG4pKS5mb3JFYWNoKGZ1bmN0aW9uKHQpe09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLHQsT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihuLHQpKX0pLGV9dmFyIG5lPWZ1bmN0aW9uKCl7aWYoXCJ1bmRlZmluZWRcIj09dHlwZW9mIHdpbmRvdylyZXR1cm4hMTt2YXIgZT1cImNocm9tZVwiaW4gd2luZG93JiZ3aW5kb3cuY2hyb21lLG49d2luZG93Lm5hdmlnYXRvci52ZW5kb3I7cmV0dXJuIG51bGwhPWUmJlwiR29vZ2xlIEluYy5cIj09PW59KCk7ZnVuY3Rpb24gbm4oZSl7cmV0dXJuKDAseS5qc3hzKShcInN2Z1wiLGU3KGU4KHt3aWR0aDpcIjE0XCIsaGVpZ2h0OlwiMTRcIix2aWV3Qm94OlwiMCAwIDE0IDE0XCIsZmlsbDpcIm5vbmVcIix4bWxuczpcImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCJ9LGUpLHtjaGlsZHJlbjpbKDAseS5qc3gpKFwibWFza1wiLHtpZDpcIm5vZGVqc19pY29uX21hc2tfYVwiLHN0eWxlOnttYXNrVHlwZTpcImx1bWluYW5jZVwifSxtYXNrVW5pdHM6XCJ1c2VyU3BhY2VPblVzZVwiLHg6XCIwXCIseTpcIjBcIix3aWR0aDpcIjE0XCIsaGVpZ2h0OlwiMTRcIixjaGlsZHJlbjooMCx5LmpzeCkoXCJwYXRoXCIse2Q6XCJNNi42Ny4wODkgMS4yMDUgMy4yNTZhLjY2My42NjMgMCAwIDAtLjMzLjU3M3Y2LjMzOWMwIC4yMzcuMTI2LjQ1NS4zMy41NzRsNS40NjYgMy4xN2EuNjYuNjYgMCAwIDAgLjY2IDBsNS40NjUtMy4xN2EuNjY0LjY2NCAwIDAgMCAuMzI5LS41NzRWMy44MjlhLjY2My42NjMgMCAwIDAtLjMzLS41NzNMNy4zMy4wODlhLjY2My42NjMgMCAwIDAtLjY2MSAwXCIsZmlsbDpcIiNmZmZcIn0pfSksKDAseS5qc3gpKFwiZ1wiLHttYXNrOlwidXJsKCNub2RlanNfaWNvbl9tYXNrX2EpXCIsY2hpbGRyZW46KDAseS5qc3gpKFwicGF0aFwiLHtkOlwiTTE4LjY0OCAyLjcxNyAzLjI0OC00Ljg2LTQuNjQ4IDExLjMxbDE1LjQgNy41OCA3Ljg5Ni0xNi4xNzR6XCIsZmlsbDpcInVybCgjbm9kZWpzX2ljb25fbGluZWFyX2dyYWRpZW50X2IpXCJ9KX0pLCgwLHkuanN4KShcIm1hc2tcIix7aWQ6XCJub2RlanNfaWNvbl9tYXNrX2NcIixzdHlsZTp7bWFza1R5cGU6XCJsdW1pbmFuY2VcIn0sbWFza1VuaXRzOlwidXNlclNwYWNlT25Vc2VcIix4OlwiMVwiLHk6XCIwXCIsd2lkdGg6XCIxMlwiLGhlaWdodDpcIjE0XCIsY2hpbGRyZW46KDAseS5qc3gpKFwicGF0aFwiLHtkOlwiTTEuMDEgMTAuNTdhLjY2My42NjMgMCAwIDAgLjE5NS4xN2w0LjY4OCAyLjcyLjc4MS40NWEuNjYuNjYgMCAwIDAgLjUxLjA2M2w1Ljc2NC0xMC41OTdhLjY1My42NTMgMCAwIDAtLjE1My0uMTIyTDkuMjE2IDEuMTggNy4zMjUuMDg3YS42ODguNjg4IDAgMCAwLS4xNzEtLjA3TDEuMDEgMTAuNTd6XCIsZmlsbDpcIiNmZmZcIn0pfSksKDAseS5qc3gpKFwiZ1wiLHttYXNrOlwidXJsKCNub2RlanNfaWNvbl9tYXNrX2MpXCIsY2hpbGRyZW46KDAseS5qc3gpKFwicGF0aFwiLHtkOlwiTS01LjY0NyA0Ljk1OCA1LjIyNiAxOS43MzRsMTQuMzgtMTAuNjY3TDguNzM0LTUuNzEtNS42NDcgNC45NTh6XCIsZmlsbDpcInVybCgjbm9kZWpzX2ljb25fbGluZWFyX2dyYWRpZW50X2QpXCJ9KX0pLCgwLHkuanN4cykoXCJnXCIse2NoaWxkcmVuOlsoMCx5LmpzeCkoXCJtYXNrXCIse2lkOlwibm9kZWpzX2ljb25fbWFza19lXCIsc3R5bGU6e21hc2tUeXBlOlwibHVtaW5hbmNlXCJ9LG1hc2tVbml0czpcInVzZXJTcGFjZU9uVXNlXCIseDpcIjFcIix5OlwiMFwiLHdpZHRoOlwiMTNcIixoZWlnaHQ6XCIxNFwiLGNoaWxkcmVuOigwLHkuanN4KShcInBhdGhcIix7ZDpcIk02LjkzNC4wMDRBLjY2NS42NjUgMCAwIDAgNi42Ny4wOUwxLjIyIDMuMjQ3bDUuODc3IDEwLjc0NmEuNjU1LjY1NSAwIDAgMCAuMjM1LS4wOGw1LjQ2NS0zLjE3YS42NjUuNjY1IDAgMCAwIC4zMTktLjQ1M0w3LjEyNi4wMTVhLjY4NC42ODQgMCAwIDAtLjE4OS0uMDFcIixmaWxsOlwiI2ZmZlwifSl9KSwoMCx5LmpzeCkoXCJnXCIse21hc2s6XCJ1cmwoI25vZGVqc19pY29uX21hc2tfZSlcIixjaGlsZHJlbjooMCx5LmpzeCkoXCJwYXRoXCIse2Q6XCJNMS4yMi4wMDJ2MTMuOTkyaDExLjg5NFYuMDAySDEuMjJ6XCIsZmlsbDpcInVybCgjbm9kZWpzX2ljb25fbGluZWFyX2dyYWRpZW50X2YpXCJ9KX0pXX0pLCgwLHkuanN4cykoXCJkZWZzXCIse2NoaWxkcmVuOlsoMCx5LmpzeHMpKFwibGluZWFyR3JhZGllbnRcIix7aWQ6XCJub2RlanNfaWNvbl9saW5lYXJfZ3JhZGllbnRfYlwiLHgxOlwiMTAuOTQzXCIseTE6XCItMS4wODRcIix4MjpcIjIuOTk3XCIseTI6XCIxNS4wNjJcIixncmFkaWVudFVuaXRzOlwidXNlclNwYWNlT25Vc2VcIixjaGlsZHJlbjpbKDAseS5qc3gpKFwic3RvcFwiLHtvZmZzZXQ6XCIuM1wiLHN0b3BDb2xvcjpcIiMzRTg2M0RcIn0pLCgwLHkuanN4KShcInN0b3BcIix7b2Zmc2V0OlwiLjVcIixzdG9wQ29sb3I6XCIjNTU5MzRGXCJ9KSwoMCx5LmpzeCkoXCJzdG9wXCIse29mZnNldDpcIi44XCIsc3RvcENvbG9yOlwiIzVBQUQ0NVwifSldfSksKDAseS5qc3hzKShcImxpbmVhckdyYWRpZW50XCIse2lkOlwibm9kZWpzX2ljb25fbGluZWFyX2dyYWRpZW50X2RcIix4MTpcIi0uMTQ1XCIseTE6XCIxMi40MzFcIix4MjpcIjE0LjI3N1wiLHkyOlwiMS44MThcIixncmFkaWVudFVuaXRzOlwidXNlclNwYWNlT25Vc2VcIixjaGlsZHJlbjpbKDAseS5qc3gpKFwic3RvcFwiLHtvZmZzZXQ6XCIuNTdcIixzdG9wQ29sb3I6XCIjM0U4NjNEXCJ9KSwoMCx5LmpzeCkoXCJzdG9wXCIse29mZnNldDpcIi43MlwiLHN0b3BDb2xvcjpcIiM2MTk4NTdcIn0pLCgwLHkuanN4KShcInN0b3BcIix7b2Zmc2V0OlwiMVwiLHN0b3BDb2xvcjpcIiM3NkFDNjRcIn0pXX0pLCgwLHkuanN4cykoXCJsaW5lYXJHcmFkaWVudFwiLHtpZDpcIm5vZGVqc19pY29uX2xpbmVhcl9ncmFkaWVudF9mXCIseDE6XCIxLjIyNVwiLHkxOlwiNi45OThcIix4MjpcIjEzLjExNlwiLHkyOlwiNi45OThcIixncmFkaWVudFVuaXRzOlwidXNlclNwYWNlT25Vc2VcIixjaGlsZHJlbjpbKDAseS5qc3gpKFwic3RvcFwiLHtvZmZzZXQ6XCIuMTZcIixzdG9wQ29sb3I6XCIjNkJCRjQ3XCJ9KSwoMCx5LmpzeCkoXCJzdG9wXCIse29mZnNldDpcIi4zOFwiLHN0b3BDb2xvcjpcIiM3OUI0NjFcIn0pLCgwLHkuanN4KShcInN0b3BcIix7b2Zmc2V0OlwiLjQ3XCIsc3RvcENvbG9yOlwiIzc1QUM2NFwifSksKDAseS5qc3gpKFwic3RvcFwiLHtvZmZzZXQ6XCIuN1wiLHN0b3BDb2xvcjpcIiM2NTlFNUFcIn0pLCgwLHkuanN4KShcInN0b3BcIix7b2Zmc2V0OlwiLjlcIixzdG9wQ29sb3I6XCIjM0U4NjNEXCJ9KV19KV19KV19KSl9ZnVuY3Rpb24gbnQoZSl7cmV0dXJuKDAseS5qc3hzKShcInN2Z1wiLGU3KGU4KHt3aWR0aDpcIjE0XCIsaGVpZ2h0OlwiMTRcIix2aWV3Qm94OlwiMCAwIDE0IDE0XCIsZmlsbDpcIm5vbmVcIix4bWxuczpcImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCJ9LGUpLHtjaGlsZHJlbjpbKDAseS5qc3gpKFwibWFza1wiLHtpZDpcIm5vZGVqc19pY29uX21hc2tfYVwiLHN0eWxlOnttYXNrVHlwZTpcImx1bWluYW5jZVwifSxtYXNrVW5pdHM6XCJ1c2VyU3BhY2VPblVzZVwiLHg6XCIwXCIseTpcIjBcIix3aWR0aDpcIjE0XCIsaGVpZ2h0OlwiMTRcIixjaGlsZHJlbjooMCx5LmpzeCkoXCJwYXRoXCIse2Q6XCJNNi42Ny4wODkgMS4yMDUgMy4yNTZhLjY2My42NjMgMCAwIDAtLjMzLjU3M3Y2LjMzOWMwIC4yMzcuMTI2LjQ1NS4zMy41NzRsNS40NjYgMy4xN2EuNjYuNjYgMCAwIDAgLjY2IDBsNS40NjUtMy4xN2EuNjY0LjY2NCAwIDAgMCAuMzI5LS41NzRWMy44MjlhLjY2My42NjMgMCAwIDAtLjMzLS41NzNMNy4zMy4wODlhLjY2My42NjMgMCAwIDAtLjY2MSAwXCIsZmlsbDpcIiNmZmZcIn0pfSksKDAseS5qc3gpKFwiZ1wiLHttYXNrOlwidXJsKCNub2RlanNfaWNvbl9tYXNrX2EpXCIsY2hpbGRyZW46KDAseS5qc3gpKFwicGF0aFwiLHtkOlwiTTE4LjY0OCAyLjcxNyAzLjI0OC00Ljg2LTQuNjQ2IDExLjMxbDE1LjM5OSA3LjU4IDcuODk2LTE2LjE3NHpcIixmaWxsOlwidXJsKCNub2RlanNfaWNvbl9saW5lYXJfZ3JhZGllbnRfYilcIn0pfSksKDAseS5qc3gpKFwibWFza1wiLHtpZDpcIm5vZGVqc19pY29uX21hc2tfY1wiLHN0eWxlOnttYXNrVHlwZTpcImx1bWluYW5jZVwifSxtYXNrVW5pdHM6XCJ1c2VyU3BhY2VPblVzZVwiLHg6XCIxXCIseTpcIjBcIix3aWR0aDpcIjEyXCIsaGVpZ2h0OlwiMTVcIixjaGlsZHJlbjooMCx5LmpzeCkoXCJwYXRoXCIse2Q6XCJNMS4wMSAxMC41NzFhLjY2LjY2IDAgMCAwIC4xOTUuMTcybDQuNjg4IDIuNzE4Ljc4MS40NTFhLjY2LjY2IDAgMCAwIC41MS4wNjNsNS43NjQtMTAuNTk3YS42NTMuNjUzIDAgMCAwLS4xNTMtLjEyMkw5LjIxNiAxLjE4MSA3LjMyNS4wOWEuNjg4LjY4OCAwIDAgMC0uMTcxLS4wN0wxLjAxIDEwLjU3MnpcIixmaWxsOlwiI2ZmZlwifSl9KSwoMCx5LmpzeCkoXCJnXCIse21hc2s6XCJ1cmwoI25vZGVqc19pY29uX21hc2tfYylcIixjaGlsZHJlbjooMCx5LmpzeCkoXCJwYXRoXCIse2Q6XCJNLTUuNjQ3IDQuOTYgNS4yMjYgMTkuNzM2IDE5LjYwNiA5LjA3IDguNzM0LTUuNzA3LTUuNjQ3IDQuOTZ6XCIsZmlsbDpcInVybCgjbm9kZWpzX2ljb25fbGluZWFyX2dyYWRpZW50X2QpXCJ9KX0pLCgwLHkuanN4cykoXCJnXCIse2NoaWxkcmVuOlsoMCx5LmpzeCkoXCJtYXNrXCIse2lkOlwibm9kZWpzX2ljb25fbWFza19lXCIsc3R5bGU6e21hc2tUeXBlOlwibHVtaW5hbmNlXCJ9LG1hc2tVbml0czpcInVzZXJTcGFjZU9uVXNlXCIseDpcIjFcIix5OlwiMFwiLHdpZHRoOlwiMTNcIixoZWlnaHQ6XCIxNFwiLGNoaWxkcmVuOigwLHkuanN4KShcInBhdGhcIix7ZDpcIk02LjkzNS4wMDNhLjY2NS42NjUgMCAwIDAtLjI2NC4wODVsLTUuNDUgMy4xNTggNS44NzcgMTAuNzQ3YS42NTMuNjUzIDAgMCAwIC4yMzUtLjA4Mmw1LjQ2NS0zLjE3YS42NjUuNjY1IDAgMCAwIC4zMTktLjQ1Mkw3LjEyNy4wMTRhLjY4NC42ODQgMCAwIDAtLjE4OS0uMDFcIixmaWxsOlwiI2ZmZlwifSl9KSwoMCx5LmpzeCkoXCJnXCIse21hc2s6XCJ1cmwoI25vZGVqc19pY29uX21hc2tfZSlcIixjaGlsZHJlbjooMCx5LmpzeCkoXCJwYXRoXCIse2Q6XCJNMS4yMjIuMDAxdjEzLjk5MmgxMS44OTNWMEgxLjIyMnpcIixmaWxsOlwidXJsKCNub2RlanNfaWNvbl9saW5lYXJfZ3JhZGllbnRfZilcIn0pfSldfSksKDAseS5qc3hzKShcImRlZnNcIix7Y2hpbGRyZW46WygwLHkuanN4cykoXCJsaW5lYXJHcmFkaWVudFwiLHtpZDpcIm5vZGVqc19pY29uX2xpbmVhcl9ncmFkaWVudF9iXCIseDE6XCIxMC45NDRcIix5MTpcIi0xLjA4NFwiLHgyOlwiMi45OTdcIix5MjpcIjE1LjA2MlwiLGdyYWRpZW50VW5pdHM6XCJ1c2VyU3BhY2VPblVzZVwiLGNoaWxkcmVuOlsoMCx5LmpzeCkoXCJzdG9wXCIse29mZnNldDpcIi4zXCIsc3RvcENvbG9yOlwiIzY3Njc2N1wifSksKDAseS5qc3gpKFwic3RvcFwiLHtvZmZzZXQ6XCIuNVwiLHN0b3BDb2xvcjpcIiM4NTg1ODVcIn0pLCgwLHkuanN4KShcInN0b3BcIix7b2Zmc2V0OlwiLjhcIixzdG9wQ29sb3I6XCIjOTg5QTk4XCJ9KV19KSwoMCx5LmpzeHMpKFwibGluZWFyR3JhZGllbnRcIix7aWQ6XCJub2RlanNfaWNvbl9saW5lYXJfZ3JhZGllbnRfZFwiLHgxOlwiLS4xNDVcIix5MTpcIjEyLjQzM1wiLHgyOlwiMTQuMjc3XCIseTI6XCIxLjgxOVwiLGdyYWRpZW50VW5pdHM6XCJ1c2VyU3BhY2VPblVzZVwiLGNoaWxkcmVuOlsoMCx5LmpzeCkoXCJzdG9wXCIse29mZnNldDpcIi41N1wiLHN0b3BDb2xvcjpcIiM3NDc0NzRcIn0pLCgwLHkuanN4KShcInN0b3BcIix7b2Zmc2V0OlwiLjcyXCIsc3RvcENvbG9yOlwiIzcwNzA3MFwifSksKDAseS5qc3gpKFwic3RvcFwiLHtvZmZzZXQ6XCIxXCIsc3RvcENvbG9yOlwiIzkyOTI5MlwifSldfSksKDAseS5qc3hzKShcImxpbmVhckdyYWRpZW50XCIse2lkOlwibm9kZWpzX2ljb25fbGluZWFyX2dyYWRpZW50X2ZcIix4MTpcIjEuMjI2XCIseTE6XCI2Ljk5N1wiLHgyOlwiMTMuMTE3XCIseTI6XCI2Ljk5N1wiLGdyYWRpZW50VW5pdHM6XCJ1c2VyU3BhY2VPblVzZVwiLGNoaWxkcmVuOlsoMCx5LmpzeCkoXCJzdG9wXCIse29mZnNldDpcIi4xNlwiLHN0b3BDb2xvcjpcIiM4Nzg3ODdcIn0pLCgwLHkuanN4KShcInN0b3BcIix7b2Zmc2V0OlwiLjM4XCIsc3RvcENvbG9yOlwiI0E5QTlBOVwifSksKDAseS5qc3gpKFwic3RvcFwiLHtvZmZzZXQ6XCIuNDdcIixzdG9wQ29sb3I6XCIjQTVBNUE1XCJ9KSwoMCx5LmpzeCkoXCJzdG9wXCIse29mZnNldDpcIi43XCIsc3RvcENvbG9yOlwiIzhGOEY4RlwifSksKDAseS5qc3gpKFwic3RvcFwiLHtvZmZzZXQ6XCIuOVwiLHN0b3BDb2xvcjpcIiM2MjYyNjJcIn0pXX0pXX0pXX0pKX12YXIgbnI9XCJMZWFybiBtb3JlIGFib3V0IGVuYWJsaW5nIE5vZGUuanMgaW5zcGVjdG9yIGZvciBzZXJ2ZXIgY29kZSB3aXRoIENocm9tZSBEZXZUb29sc1wiO2Z1bmN0aW9uIG5vKGUpe3ZhciBuPWUuZGV2dG9vbHNGcm9udGVuZFVybHx8XCJcIjtyZXR1cm4gbiYmbmU/KDAseS5qc3gpKGUzLHtcImRhdGEtbmV4dGpzLWRhdGEtcnVudGltZS1lcnJvci1jb3B5LWRldnRvb2xzLXVybFwiOiEwLGNsYXNzTmFtZTpcIm5vZGVqcy1pbnNwZWN0b3ItYnV0dG9uXCIsYWN0aW9uTGFiZWw6XCJDb3B5IENocm9tZSBEZXZUb29scyBVUkxcIixzdWNjZXNzTGFiZWw6XCJDb3BpZWRcIixjb250ZW50Om4saWNvbjooMCx5LmpzeCkobm4se2NsYXNzTmFtZTpcImVycm9yLW92ZXJsYXktdG9vbGJhci1idXR0b24taWNvblwiLHdpZHRoOjE0LGhlaWdodDoxNH0pfSk6KDAseS5qc3gpKFwiYVwiLHt0aXRsZTpucixcImFyaWEtbGFiZWxcIjpucixjbGFzc05hbWU6XCJub2RlanMtaW5zcGVjdG9yLWJ1dHRvblwiLGhyZWY6XCJodHRwczovL25leHRqcy5vcmcvZG9jcy9hcHAvYnVpbGRpbmcteW91ci1hcHBsaWNhdGlvbi9jb25maWd1cmluZy9kZWJ1Z2dpbmcjc2VydmVyLXNpZGUtY29kZVwiLHRhcmdldDpcIl9ibGFua1wiLHJlbDpcIm5vb3BlbmVyIG5vcmVmZXJyZXJcIixjaGlsZHJlbjooMCx5LmpzeCkobnQse2NsYXNzTmFtZTpcImVycm9yLW92ZXJsYXktdG9vbGJhci1idXR0b24taWNvblwiLHdpZHRoOjE0LGhlaWdodDoxNH0pfSl9ZnVuY3Rpb24gbmEoZSl7dmFyIG49ZS5lcnJvcjtyZXR1cm4oMCx5LmpzeCkoZTMse1wiZGF0YS1uZXh0anMtZGF0YS1ydW50aW1lLWVycm9yLWNvcHktc3RhY2tcIjohMCxjbGFzc05hbWU6XCJjb3B5LXN0YWNrLXRyYWNlLWJ1dHRvblwiLGFjdGlvbkxhYmVsOlwiQ29weSBTdGFjayBUcmFjZVwiLHN1Y2Nlc3NMYWJlbDpcIlN0YWNrIFRyYWNlIENvcGllZFwiLGNvbnRlbnQ6bi5zdGFja3x8XCJcIixkaXNhYmxlZDohbi5zdGFja30pfWZ1bmN0aW9uIG5pKGUsbil7KG51bGw9PW58fG4+ZS5sZW5ndGgpJiYobj1lLmxlbmd0aCk7Zm9yKHZhciB0PTAscj1BcnJheShuKTt0PG47dCsrKXJbdF09ZVt0XTtyZXR1cm4gcn1mdW5jdGlvbiBubChlKXtpZihBcnJheS5pc0FycmF5KGUpKXJldHVybiBlfWZ1bmN0aW9uIG5zKCl7dGhyb3cgVHlwZUVycm9yKFwiSW52YWxpZCBhdHRlbXB0IHRvIGRlc3RydWN0dXJlIG5vbi1pdGVyYWJsZSBpbnN0YW5jZS5cXFxcbkluIG9yZGVyIHRvIGJlIGl0ZXJhYmxlLCBub24tYXJyYXkgb2JqZWN0cyBtdXN0IGhhdmUgYSBbU3ltYm9sLml0ZXJhdG9yXSgpIG1ldGhvZC5cIil9ZnVuY3Rpb24gbmMoZSxuKXtyZXR1cm4gbmwoZSl8fGZ1bmN0aW9uKGUsbil7dmFyIHQscixvPW51bGw9PWU/bnVsbDpcInVuZGVmaW5lZFwiIT10eXBlb2YgU3ltYm9sJiZlW1N5bWJvbC5pdGVyYXRvcl18fGVbXCJAQGl0ZXJhdG9yXCJdO2lmKG51bGwhPW8pe3ZhciBhPVtdLGk9ITAsbD0hMTt0cnl7Zm9yKG89by5jYWxsKGUpOyEoaT0odD1vLm5leHQoKSkuZG9uZSkmJihhLnB1c2godC52YWx1ZSksIW58fGEubGVuZ3RoIT09bik7aT0hMCk7fWNhdGNoKGUpe2w9ITAscj1lfWZpbmFsbHl7dHJ5e2l8fG51bGw9PW8ucmV0dXJufHxvLnJldHVybigpfWZpbmFsbHl7aWYobCl0aHJvdyByfX1yZXR1cm4gYX19KGUsbil8fG5kKGUsbil8fG5zKCl9ZnVuY3Rpb24gbnUoZSl7cmV0dXJuIG5sKGUpfHxmdW5jdGlvbihlKXtpZihcInVuZGVmaW5lZFwiIT10eXBlb2YgU3ltYm9sJiZudWxsIT1lW1N5bWJvbC5pdGVyYXRvcl18fG51bGwhPWVbXCJAQGl0ZXJhdG9yXCJdKXJldHVybiBBcnJheS5mcm9tKGUpfShlKXx8bmQoZSl8fG5zKCl9ZnVuY3Rpb24gbmQoZSxuKXtpZihlKXtpZihcInN0cmluZ1wiPT10eXBlb2YgZSlyZXR1cm4gbmkoZSxuKTt2YXIgdD1PYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwoZSkuc2xpY2UoOCwtMSk7aWYoXCJPYmplY3RcIj09PXQmJmUuY29uc3RydWN0b3ImJih0PWUuY29uc3RydWN0b3IubmFtZSksXCJNYXBcIj09PXR8fFwiU2V0XCI9PT10KXJldHVybiBBcnJheS5mcm9tKHQpO2lmKFwiQXJndW1lbnRzXCI9PT10fHwvXig/OlVpfEkpbnQoPzo4fDE2fDMyKSg/OkNsYW1wZWQpP0FycmF5JC8udGVzdCh0KSlyZXR1cm4gbmkoZSxuKX19dmFyIG5mPVwiaHR0cHM6Ly9yZWFjdC5kZXYvbGluay9oeWRyYXRpb24tbWlzbWF0Y2hcIixucD1cImh0dHBzOi8vbmV4dGpzLm9yZy9kb2NzL21lc3NhZ2VzL3JlYWN0LWh5ZHJhdGlvbi1lcnJvclwiLG5oPVsvXkluIEhUTUwsICguKz8pIGNhbm5vdCBiZSBhIGNoaWxkIG9mIDwoLis/KT5cXC4oLiopXFxuVGhpcyB3aWxsIGNhdXNlIGEgaHlkcmF0aW9uIGVycm9yXFwuKC4qKS8sL15JbiBIVE1MLCAoLis/KSBjYW5ub3QgYmUgYSBkZXNjZW5kYW50IG9mIDwoLis/KT5cXC5cXG5UaGlzIHdpbGwgY2F1c2UgYSBoeWRyYXRpb24gZXJyb3JcXC4oLiopLywvXkluIEhUTUwsIHRleHQgbm9kZXMgY2Fubm90IGJlIGEgY2hpbGQgb2YgPCguKz8pPlxcLlxcblRoaXMgd2lsbCBjYXVzZSBhIGh5ZHJhdGlvbiBlcnJvclxcLi8sL15JbiBIVE1MLCB3aGl0ZXNwYWNlIHRleHQgbm9kZXMgY2Fubm90IGJlIGEgY2hpbGQgb2YgPCguKz8pPlxcLiBNYWtlIHN1cmUgeW91IGRvbid0IGhhdmUgYW55IGV4dHJhIHdoaXRlc3BhY2UgYmV0d2VlbiB0YWdzIG9uIGVhY2ggbGluZSBvZiB5b3VyIHNvdXJjZSBjb2RlXFwuXFxuVGhpcyB3aWxsIGNhdXNlIGEgaHlkcmF0aW9uIGVycm9yXFwuL107ZnVuY3Rpb24gbmcoZSl7cmV0dXJuIG5oLnNvbWUoZnVuY3Rpb24obil7cmV0dXJuIG4udGVzdChlKX0pfXZhciBubT1bXCJodHRwczovL25leHRqcy5vcmdcIixcImh0dHBzOi8vcmVhY3QuZGV2XCJdO2Z1bmN0aW9uIG52KGUpe3JldHVybiBubS5zb21lKGZ1bmN0aW9uKG4pe3JldHVybiBlLnN0YXJ0c1dpdGgobil9KX1mdW5jdGlvbiBuYihlKXt2YXIgbj1mdW5jdGlvbihlKXt2YXIgbix0LHIsbz0obj1lLHQ9bnYscj1BcnJheS5mcm9tKG4ubWF0Y2hBbGwoL2h0dHBzPzpcXC9cXC9bXlxccy8kLj8jXS5bXlxccyknXCJdKi9naSksZnVuY3Rpb24oZSl7cmV0dXJuIGVbMF19KSx0P3IuZmlsdGVyKGZ1bmN0aW9uKGUpe3JldHVybiB0KGUpfSk6cik7aWYoMD09PW8ubGVuZ3RoKXJldHVybiBudWxsO3ZhciBhPW9bMF07cmV0dXJuIGE9PT1uZj9ucDphfShlLmVycm9yTWVzc2FnZSk7cmV0dXJuIG4/KDAseS5qc3gpKFwiYVwiLHt0aXRsZTpcIkdvIHRvIHJlbGF0ZWQgZG9jdW1lbnRhdGlvblwiLFwiYXJpYS1sYWJlbFwiOlwiR28gdG8gcmVsYXRlZCBkb2N1bWVudGF0aW9uXCIsY2xhc3NOYW1lOlwiZG9jcy1saW5rLWJ1dHRvblwiLGhyZWY6bix0YXJnZXQ6XCJfYmxhbmtcIixyZWw6XCJub29wZW5lciBub3JlZmVycmVyXCIsY2hpbGRyZW46KDAseS5qc3gpKG55LHtjbGFzc05hbWU6XCJlcnJvci1vdmVybGF5LXRvb2xiYXItYnV0dG9uLWljb25cIix3aWR0aDoxNCxoZWlnaHQ6MTR9KX0pOigwLHkuanN4KShcImJ1dHRvblwiLHt0aXRsZTpcIk5vIHJlbGF0ZWQgZG9jdW1lbnRhdGlvbiBmb3VuZFwiLFwiYXJpYS1sYWJlbFwiOlwiTm8gcmVsYXRlZCBkb2N1bWVudGF0aW9uIGZvdW5kXCIsY2xhc3NOYW1lOlwiZG9jcy1saW5rLWJ1dHRvblwiLGRpc2FibGVkOiEwLGNoaWxkcmVuOigwLHkuanN4KShueSx7Y2xhc3NOYW1lOlwiZXJyb3Itb3ZlcmxheS10b29sYmFyLWJ1dHRvbi1pY29uXCIsd2lkdGg6MTQsaGVpZ2h0OjE0fSl9KX1mdW5jdGlvbiBueShlKXt2YXIgbix0O3JldHVybigwLHkuanN4KShcInN2Z1wiLChuPWZ1bmN0aW9uKGUpe2Zvcih2YXIgbj0xO248YXJndW1lbnRzLmxlbmd0aDtuKyspe3ZhciB0PW51bGwhPWFyZ3VtZW50c1tuXT9hcmd1bWVudHNbbl06e30scj1PYmplY3Qua2V5cyh0KTtcImZ1bmN0aW9uXCI9PXR5cGVvZiBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzJiYocj1yLmNvbmNhdChPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKHQpLmZpbHRlcihmdW5jdGlvbihlKXtyZXR1cm4gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcih0LGUpLmVudW1lcmFibGV9KSkpLHIuZm9yRWFjaChmdW5jdGlvbihuKXt2YXIgcixvLGE7cj1lLG89bixhPXRbbl0sbyBpbiByP09iamVjdC5kZWZpbmVQcm9wZXJ0eShyLG8se3ZhbHVlOmEsZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITB9KTpyW29dPWF9KX1yZXR1cm4gZX0oe3dpZHRoOlwiMTRcIixoZWlnaHQ6XCIxNFwiLHZpZXdCb3g6XCIwIDAgMTQgMTRcIixmaWxsOlwibm9uZVwiLHhtbG5zOlwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIn0sZSksdD10PXtjaGlsZHJlbjooMCx5LmpzeCkoXCJwYXRoXCIse2ZpbGxSdWxlOlwiZXZlbm9kZFwiLGNsaXBSdWxlOlwiZXZlbm9kZFwiLGQ6XCJNMCAuODc1aDQuMzc1QzUuNDQ4Ljg3NSA2LjQwMSAxLjM5IDcgMi4xODdBMy4yNzYgMy4yNzYgMCAwIDEgOS42MjUuODc1SDE0djExLjE1Nkg5LjRjLS41MjIgMC0xLjAyMy4yMDgtMS4zOTIuNTc3bC0uNTQ0LjU0M2gtLjkyOGwtLjU0NC0uNTQzYy0uMzY5LS4zNy0uODctLjU3Ny0xLjM5Mi0uNTc3SDBWLjg3NXptNi4zNDQgMy4yODFhMS45NjkgMS45NjkgMCAwIDAtMS45NjktMS45NjhIMS4zMTJ2OC41M0g0LjZjLjYyMiAwIDEuMjI1LjE3NyAxLjc0NC41MDJWNC4xNTZ6bTEuMzEyIDcuMDY0VjQuMTU2YzAtMS4wODcuODgyLTEuOTY4IDEuOTY5LTEuOTY4aDMuMDYzdjguNTNIOS40Yy0uNjIyIDAtMS4yMjUuMTc3LTEuNzQ0LjUwMnpcIixmaWxsOlwiY3VycmVudENvbG9yXCJ9KX0sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcnM/T2JqZWN0LmRlZmluZVByb3BlcnRpZXMobixPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycyh0KSk6KGZ1bmN0aW9uKGUsbil7dmFyIHQ9T2JqZWN0LmtleXMoZSk7aWYoT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyl7dmFyIHI9T2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhlKTt0LnB1c2guYXBwbHkodCxyKX1yZXR1cm4gdH0pKE9iamVjdCh0KSkuZm9yRWFjaChmdW5jdGlvbihlKXtPYmplY3QuZGVmaW5lUHJvcGVydHkobixlLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IodCxlKSl9KSxuKSl9ZnVuY3Rpb24gbngoZSl7dmFyIG49ZS5lcnJvcix0PWUuZGVidWdJbmZvLHI9ZS5mZWVkYmFja0J1dHRvbjtyZXR1cm4oMCx5LmpzeHMpKFwic3BhblwiLHtjbGFzc05hbWU6XCJlcnJvci1vdmVybGF5LXRvb2xiYXJcIixjaGlsZHJlbjpbciwoMCx5LmpzeCkobmEse2Vycm9yOm59KSwoMCx5LmpzeCkobmIse2Vycm9yTWVzc2FnZTpuLm1lc3NhZ2V9KSwoMCx5LmpzeCkobm8se2RldnRvb2xzRnJvbnRlbmRVcmw6bnVsbD09dD92b2lkIDA6dC5kZXZ0b29sc0Zyb250ZW5kVXJsfSldfSl9ZnVuY3Rpb24gbncoZSl7dmFyIG4sdDtyZXR1cm4oMCx5LmpzeCkoXCJzdmdcIiwobj1mdW5jdGlvbihlKXtmb3IodmFyIG49MTtuPGFyZ3VtZW50cy5sZW5ndGg7bisrKXt2YXIgdD1udWxsIT1hcmd1bWVudHNbbl0/YXJndW1lbnRzW25dOnt9LHI9T2JqZWN0LmtleXModCk7XCJmdW5jdGlvblwiPT10eXBlb2YgT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyYmKHI9ci5jb25jYXQoT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyh0KS5maWx0ZXIoZnVuY3Rpb24oZSl7cmV0dXJuIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IodCxlKS5lbnVtZXJhYmxlfSkpKSxyLmZvckVhY2goZnVuY3Rpb24obil7dmFyIHIsbyxhO3I9ZSxvPW4sYT10W25dLG8gaW4gcj9PYmplY3QuZGVmaW5lUHJvcGVydHkocixvLHt2YWx1ZTphLGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwfSk6cltvXT1hfSl9cmV0dXJuIGV9KHt3aWR0aDpcIjE2XCIsaGVpZ2h0OlwiMTZcIix2aWV3Qm94OlwiMCAwIDE2IDE2XCIsZmlsbDpcIm5vbmVcIix4bWxuczpcImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIsY2xhc3NOYW1lOlwidGh1bWJzLXVwLWljb25cIn0sZSksdD10PXtjaGlsZHJlbjooMCx5LmpzeCkoXCJnXCIse2lkOlwidGh1bWItdXAtMTZcIixjaGlsZHJlbjooMCx5LmpzeCkoXCJwYXRoXCIse2lkOlwiVW5pb25cIixmaWxsUnVsZTpcImV2ZW5vZGRcIixjbGlwUnVsZTpcImV2ZW5vZGRcIixkOlwiTTYuODk1MzEgMi4yMzk1OUM2LjcyOTg0IDIuMTIxNCA2LjUgMi4yMzk2OCA2LjUgMi40NDMwM1Y1LjI0OTg5QzYuNSA2LjIxNjM5IDUuNzE2NSA2Ljk5OTg5IDQuNzUgNi45OTk4OUgyLjVWMTMuNDk5OUgxMi4xODg0QzEyLjc2MiAxMy40OTk5IDEzLjI2MiAxMy4xMDk1IDEzLjQwMTEgMTIuNTUzMUwxNC40MDExIDguNTUzMDZDMTQuNTk4NCA3Ljc2NDEyIDE0LjAwMTcgNi45OTk4OSAxMy4xODg0IDYuOTk5ODlIOS4yNUg4LjVWNi4yNDk4OVYzLjUxNDQ2QzguNSAzLjQzMzcyIDguNDYxMDEgMy4zNTc5NSA4LjM5NTMxIDMuMzExMDJMNi44OTUzMSAyLjIzOTU5Wk01IDIuNDQzMDNDNSAxLjAxOTYzIDYuNjA4OSAwLjE5MTY1NiA3Ljc2NzE3IDEuMDE4OTlMOS4yNjcxNyAyLjA5MDQyQzkuNzI3MDYgMi40MTg5MiAxMCAyLjk0OTI5IDEwIDMuNTE0NDZWNS40OTk4OUgxMy4xODg0QzE0Ljk3NzUgNS40OTk4OSAxNi4yOTAzIDcuMTgxMjEgMTUuODU2MyA4LjkxNjg2TDE0Ljg1NjMgMTIuOTE2OUMxNC41NTAzIDE0LjE0MTEgMTMuNDUwMyAxNC45OTk5IDEyLjE4ODQgMTQuOTk5OUgxLjc1SDFWMTQuMjQ5OVY2LjI0OTg5VjUuNDk5ODlIMS43NUg0Ljc1QzQuODg4MDcgNS40OTk4OSA1IDUuMzg3OTYgNSA1LjI0OTg5VjIuNDQzMDNaXCIsZmlsbDpcImN1cnJlbnRDb2xvclwifSl9KX0sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcnM/T2JqZWN0LmRlZmluZVByb3BlcnRpZXMobixPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycyh0KSk6KGZ1bmN0aW9uKGUsbil7dmFyIHQ9T2JqZWN0LmtleXMoZSk7aWYoT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyl7dmFyIHI9T2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhlKTt0LnB1c2guYXBwbHkodCxyKX1yZXR1cm4gdH0pKE9iamVjdCh0KSkuZm9yRWFjaChmdW5jdGlvbihlKXtPYmplY3QuZGVmaW5lUHJvcGVydHkobixlLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IodCxlKSl9KSxuKSl9ZnVuY3Rpb24gbmooZSl7dmFyIG4sdDtyZXR1cm4oMCx5LmpzeCkoXCJzdmdcIiwobj1mdW5jdGlvbihlKXtmb3IodmFyIG49MTtuPGFyZ3VtZW50cy5sZW5ndGg7bisrKXt2YXIgdD1udWxsIT1hcmd1bWVudHNbbl0/YXJndW1lbnRzW25dOnt9LHI9T2JqZWN0LmtleXModCk7XCJmdW5jdGlvblwiPT10eXBlb2YgT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyYmKHI9ci5jb25jYXQoT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyh0KS5maWx0ZXIoZnVuY3Rpb24oZSl7cmV0dXJuIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IodCxlKS5lbnVtZXJhYmxlfSkpKSxyLmZvckVhY2goZnVuY3Rpb24obil7dmFyIHIsbyxhO3I9ZSxvPW4sYT10W25dLG8gaW4gcj9PYmplY3QuZGVmaW5lUHJvcGVydHkocixvLHt2YWx1ZTphLGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwfSk6cltvXT1hfSl9cmV0dXJuIGV9KHt3aWR0aDpcIjE2XCIsaGVpZ2h0OlwiMTZcIix2aWV3Qm94OlwiMCAwIDE2IDE2XCIsZmlsbDpcIm5vbmVcIix4bWxuczpcImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIsY2xhc3NOYW1lOlwidGh1bWJzLWRvd24taWNvblwifSxlKSx0PXQ9e2NoaWxkcmVuOigwLHkuanN4KShcInBhdGhcIix7ZmlsbFJ1bGU6XCJldmVub2RkXCIsY2xpcFJ1bGU6XCJldmVub2RkXCIsZDpcIk01Ljg5NTMxIDEyLjc2MDNDNS43Mjk4NCAxMi44Nzg1IDUuNSAxMi43NjAyIDUuNSAxMi41NTY5VjkuNzVDNS41IDguNzgzNSA0LjcxNjUgOCAzLjc1IDhIMS41VjEuNUgxMS4xODg0QzExLjc2MiAxLjUgMTIuMjYyIDEuODkwMzcgMTIuNDAxMSAyLjQ0NjgzTDEzLjQwMTEgNi40NDY4M0MxMy41OTg0IDcuMjM1NzYgMTMuMDAxNyA4IDEyLjE4ODQgOEg4LjI1SDcuNVY4Ljc1VjExLjQ4NTRDNy41IDExLjU2NjIgNy40NjEwMSAxMS42NDE5IDcuMzk1MzEgMTEuNjg4OUw1Ljg5NTMxIDEyLjc2MDNaTTQgMTIuNTU2OUM0IDEzLjk4MDMgNS42MDg5IDE0LjgwODIgNi43NjcxNyAxMy45ODA5TDguMjY3MTcgMTIuOTA5NUM4LjcyNzA2IDEyLjU4MSA5IDEyLjA1MDYgOSAxMS40ODU0VjkuNUgxMi4xODg0QzEzLjk3NzUgOS41IDE1LjI5MDMgNy44MTg2OCAxNC44NTYzIDYuMDgzMDNMMTMuODU2MyAyLjA4MzAzQzEzLjU1MDMgMC44NTg4MTYgMTIuNDUwMyAwIDExLjE4ODQgMEgwLjc1SDBWMC43NVY4Ljc1VjkuNUgwLjc1SDMuNzVDMy44ODgwNyA5LjUgNCA5LjYxMTkzIDQgOS43NVYxMi41NTY5WlwiLGZpbGw6XCJjdXJyZW50Q29sb3JcIn0pfSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycz9PYmplY3QuZGVmaW5lUHJvcGVydGllcyhuLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzKHQpKTooZnVuY3Rpb24oZSxuKXt2YXIgdD1PYmplY3Qua2V5cyhlKTtpZihPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKXt2YXIgcj1PYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKGUpO3QucHVzaC5hcHBseSh0LHIpfXJldHVybiB0fSkoT2JqZWN0KHQpKS5mb3JFYWNoKGZ1bmN0aW9uKGUpe09iamVjdC5kZWZpbmVQcm9wZXJ0eShuLGUsT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcih0LGUpKX0pLG4pKX1mdW5jdGlvbiBuayhlLG4peyhudWxsPT1ufHxuPmUubGVuZ3RoKSYmKG49ZS5sZW5ndGgpO2Zvcih2YXIgdD0wLHI9QXJyYXkobik7dDxuO3QrKylyW3RdPWVbdF07cmV0dXJuIHJ9ZnVuY3Rpb24gbkEoZSxuLHQscixvLGEsaSl7dHJ5e3ZhciBsPWVbYV0oaSkscz1sLnZhbHVlfWNhdGNoKGUpe3QoZSk7cmV0dXJufWwuZG9uZT9uKHMpOlByb21pc2UucmVzb2x2ZShzKS50aGVuKHIsbyl9ZnVuY3Rpb24gbk8oZSxuLHQpe3JldHVybiBuIGluIGU/T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsbix7dmFsdWU6dCxlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMH0pOmVbbl09dCxlfWZ1bmN0aW9uIG5DKGUpe3ZhciBuLHQscj1lLmVycm9yQ29kZSxvPWUuY2xhc3NOYW1lLGE9KG49KDAseC51c2VTdGF0ZSkoe30pLHQ9MixmdW5jdGlvbihlKXtpZihBcnJheS5pc0FycmF5KGUpKXJldHVybiBlfShuKXx8ZnVuY3Rpb24oZSxuKXt2YXIgdCxyLG89bnVsbD09ZT9udWxsOlwidW5kZWZpbmVkXCIhPXR5cGVvZiBTeW1ib2wmJmVbU3ltYm9sLml0ZXJhdG9yXXx8ZVtcIkBAaXRlcmF0b3JcIl07aWYobnVsbCE9byl7dmFyIGE9W10saT0hMCxsPSExO3RyeXtmb3Iobz1vLmNhbGwoZSk7IShpPSh0PW8ubmV4dCgpKS5kb25lKSYmKGEucHVzaCh0LnZhbHVlKSxhLmxlbmd0aCE9PW4pO2k9ITApO31jYXRjaChlKXtsPSEwLHI9ZX1maW5hbGx5e3RyeXtpfHxudWxsPT1vLnJldHVybnx8by5yZXR1cm4oKX1maW5hbGx5e2lmKGwpdGhyb3cgcn19cmV0dXJuIGF9fShuLDIpfHxmdW5jdGlvbihlLG4pe2lmKGUpe2lmKFwic3RyaW5nXCI9PXR5cGVvZiBlKXJldHVybiBuayhlLG4pO3ZhciB0PU9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChlKS5zbGljZSg4LC0xKTtpZihcIk9iamVjdFwiPT09dCYmZS5jb25zdHJ1Y3RvciYmKHQ9ZS5jb25zdHJ1Y3Rvci5uYW1lKSxcIk1hcFwiPT09dHx8XCJTZXRcIj09PXQpcmV0dXJuIEFycmF5LmZyb20odCk7aWYoXCJBcmd1bWVudHNcIj09PXR8fC9eKD86VWl8SSludCg/Ojh8MTZ8MzIpKD86Q2xhbXBlZCk/QXJyYXkkLy50ZXN0KHQpKXJldHVybiBuayhlLG4pfX0obix0KXx8ZnVuY3Rpb24oKXt0aHJvdyBUeXBlRXJyb3IoXCJJbnZhbGlkIGF0dGVtcHQgdG8gZGVzdHJ1Y3R1cmUgbm9uLWl0ZXJhYmxlIGluc3RhbmNlLlxcXFxuSW4gb3JkZXIgdG8gYmUgaXRlcmFibGUsIG5vbi1hcnJheSBvYmplY3RzIG11c3QgaGF2ZSBhIFtTeW1ib2wuaXRlcmF0b3JdKCkgbWV0aG9kLlwiKX0oKSksaT1hWzBdLGw9YVsxXSxzPWlbcl0sYz1wcm9jZXNzLmVudi5fX05FWFRfVEVMRU1FVFJZX0RJU0FCTEVELHU9KDAseC51c2VDYWxsYmFjaykoZnVuY3Rpb24oZSl7dmFyIG47cmV0dXJuKG49ZnVuY3Rpb24oKXtyZXR1cm4gZnVuY3Rpb24oZSxuKXt2YXIgdCxyLG8sYT17bGFiZWw6MCxzZW50OmZ1bmN0aW9uKCl7aWYoMSZvWzBdKXRocm93IG9bMV07cmV0dXJuIG9bMV19LHRyeXM6W10sb3BzOltdfSxpPU9iamVjdC5jcmVhdGUoKFwiZnVuY3Rpb25cIj09dHlwZW9mIEl0ZXJhdG9yP0l0ZXJhdG9yOk9iamVjdCkucHJvdG90eXBlKTtyZXR1cm4gaS5uZXh0PWwoMCksaS50aHJvdz1sKDEpLGkucmV0dXJuPWwoMiksXCJmdW5jdGlvblwiPT10eXBlb2YgU3ltYm9sJiYoaVtTeW1ib2wuaXRlcmF0b3JdPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXN9KSxpO2Z1bmN0aW9uIGwobCl7cmV0dXJuIGZ1bmN0aW9uKHMpe3ZhciBjPVtsLHNdO2lmKHQpdGhyb3cgVHlwZUVycm9yKFwiR2VuZXJhdG9yIGlzIGFscmVhZHkgZXhlY3V0aW5nLlwiKTtmb3IoO2kmJihpPTAsY1swXSYmKGE9MCkpLGE7KXRyeXtpZih0PTEsciYmKG89MiZjWzBdP3IucmV0dXJuOmNbMF0/ci50aHJvd3x8KChvPXIucmV0dXJuKSYmby5jYWxsKHIpLDApOnIubmV4dCkmJiEobz1vLmNhbGwocixjWzFdKSkuZG9uZSlyZXR1cm4gbztzd2l0Y2gocj0wLG8mJihjPVsyJmNbMF0sby52YWx1ZV0pLGNbMF0pe2Nhc2UgMDpjYXNlIDE6bz1jO2JyZWFrO2Nhc2UgNDpyZXR1cm4gYS5sYWJlbCsrLHt2YWx1ZTpjWzFdLGRvbmU6ITF9O2Nhc2UgNTphLmxhYmVsKysscj1jWzFdLGM9WzBdO2NvbnRpbnVlO2Nhc2UgNzpjPWEub3BzLnBvcCgpLGEudHJ5cy5wb3AoKTtjb250aW51ZTtkZWZhdWx0OmlmKCEobz0obz1hLnRyeXMpLmxlbmd0aD4wJiZvW28ubGVuZ3RoLTFdKSYmKDY9PT1jWzBdfHwyPT09Y1swXSkpe2E9MDtjb250aW51ZX1pZigzPT09Y1swXSYmKCFvfHxjWzFdPm9bMF0mJmNbMV08b1szXSkpe2EubGFiZWw9Y1sxXTticmVha31pZig2PT09Y1swXSYmYS5sYWJlbDxvWzFdKXthLmxhYmVsPW9bMV0sbz1jO2JyZWFrfWlmKG8mJmEubGFiZWw8b1syXSl7YS5sYWJlbD1vWzJdLGEub3BzLnB1c2goYyk7YnJlYWt9b1syXSYmYS5vcHMucG9wKCksYS50cnlzLnBvcCgpO2NvbnRpbnVlfWM9bi5jYWxsKGUsYSl9Y2F0Y2goZSl7Yz1bNixlXSxyPTB9ZmluYWxseXt0PW89MH1pZig1JmNbMF0pdGhyb3cgY1sxXTtyZXR1cm57dmFsdWU6Y1swXT9jWzFdOnZvaWQgMCxkb25lOiEwfX19fSh0aGlzLGZ1bmN0aW9uKG4pe3N3aXRjaChuLmxhYmVsKXtjYXNlIDA6bChmdW5jdGlvbihuKXt2YXIgdCxvO3JldHVybiB0PWZ1bmN0aW9uKGUpe2Zvcih2YXIgbj0xO248YXJndW1lbnRzLmxlbmd0aDtuKyspe3ZhciB0PW51bGwhPWFyZ3VtZW50c1tuXT9hcmd1bWVudHNbbl06e30scj1PYmplY3Qua2V5cyh0KTtcImZ1bmN0aW9uXCI9PXR5cGVvZiBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzJiYocj1yLmNvbmNhdChPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKHQpLmZpbHRlcihmdW5jdGlvbihlKXtyZXR1cm4gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcih0LGUpLmVudW1lcmFibGV9KSkpLHIuZm9yRWFjaChmdW5jdGlvbihuKXtuTyhlLG4sdFtuXSl9KX1yZXR1cm4gZX0oe30sbiksbz1udWxsIT0obz1uTyh7fSxyLGUpKT9vOnt9LE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzP09iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKHQsT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcnMobykpOihmdW5jdGlvbihlLG4pe3ZhciB0PU9iamVjdC5rZXlzKGUpO2lmKE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMpe3ZhciByPU9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMoZSk7dC5wdXNoLmFwcGx5KHQscil9cmV0dXJuIHR9KShPYmplY3QobykpLmZvckVhY2goZnVuY3Rpb24oZSl7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsZSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKG8sZSkpfSksdH0pLG4ubGFiZWw9MTtjYXNlIDE6cmV0dXJuIG4udHJ5cy5wdXNoKFsxLDMsLDRdKSxbNCxmZXRjaChcIlwiLmNvbmNhdChwcm9jZXNzLmVudi5fX05FWFRfUk9VVEVSX0JBU0VQQVRIfHxcIlwiLFwiL19fbmV4dGpzX2Vycm9yX2ZlZWRiYWNrP1wiKS5jb25jYXQobmV3IFVSTFNlYXJjaFBhcmFtcyh7ZXJyb3JDb2RlOnIsd2FzSGVscGZ1bDplLnRvU3RyaW5nKCl9KSkpXTtjYXNlIDI6cmV0dXJuIG4uc2VudCgpLm9rfHxjb25zb2xlLmVycm9yKFwiRmFpbGVkIHRvIHJlY29yZCBmZWVkYmFjayBvbiB0aGUgc2VydmVyLlwiKSxbMyw0XTtjYXNlIDM6cmV0dXJuIGNvbnNvbGUuZXJyb3IoXCJGYWlsZWQgdG8gcmVjb3JkIGZlZWRiYWNrOlwiLG4uc2VudCgpKSxbMyw0XTtjYXNlIDQ6cmV0dXJuWzJdfX0pfSxmdW5jdGlvbigpe3ZhciBlPXRoaXMsdD1hcmd1bWVudHM7cmV0dXJuIG5ldyBQcm9taXNlKGZ1bmN0aW9uKHIsbyl7dmFyIGE9bi5hcHBseShlLHQpO2Z1bmN0aW9uIGkoZSl7bkEoYSxyLG8saSxsLFwibmV4dFwiLGUpfWZ1bmN0aW9uIGwoZSl7bkEoYSxyLG8saSxsLFwidGhyb3dcIixlKX1pKHZvaWQgMCl9KX0pKCl9LFtyXSk7cmV0dXJuKDAseS5qc3gpKFwiZGl2XCIse2NsYXNzTmFtZTooMCxlSi5jeCkoXCJlcnJvci1mZWVkYmFja1wiLG8pLHJvbGU6XCJyZWdpb25cIixcImFyaWEtbGFiZWxcIjpcIkVycm9yIGZlZWRiYWNrXCIsY2hpbGRyZW46dm9pZCAwIT09cz8oMCx5LmpzeCkoXCJwXCIse2NsYXNzTmFtZTpcImVycm9yLWZlZWRiYWNrLXRoYW5rc1wiLHJvbGU6XCJzdGF0dXNcIixcImFyaWEtbGl2ZVwiOlwicG9saXRlXCIsY2hpbGRyZW46XCJUaGFua3MgZm9yIHlvdXIgZmVlZGJhY2shXCJ9KTooMCx5LmpzeHMpKHkuRnJhZ21lbnQse2NoaWxkcmVuOlsoMCx5LmpzeCkoXCJwXCIse2NoaWxkcmVuOigwLHkuanN4KShcImFcIix7aHJlZjpcImh0dHBzOi8vbmV4dGpzLm9yZy90ZWxlbWV0cnkjZXJyb3ItZmVlZGJhY2tcIixyZWw6XCJub29wZW5lciBub3JlZmVycmVyXCIsdGFyZ2V0OlwiX2JsYW5rXCIsY2hpbGRyZW46XCJXYXMgdGhpcyBoZWxwZnVsP1wifSl9KSwoMCx5LmpzeCkoXCJidXR0b25cIix7XCJhcmlhLWRpc2FibGVkXCI6Yz9cInRydWVcIjp2b2lkIDAsXCJhcmlhLWxhYmVsXCI6XCJNYXJrIGFzIGhlbHBmdWxcIixvbkNsaWNrOmM/dm9pZCAwOmZ1bmN0aW9uKCl7cmV0dXJuIHUoITApfSxjbGFzc05hbWU6KDAsZUouY3gpKFwiZmVlZGJhY2stYnV0dG9uXCIsITA9PT1zJiZcInZvdGVkXCIpLHRpdGxlOmM/XCJGZWVkYmFjayBkaXNhYmxlZCBkdWUgdG8gc2V0dGluZyBORVhUX1RFTEVNRVRSWV9ESVNBQkxFRFwiOnZvaWQgMCx0eXBlOlwiYnV0dG9uXCIsY2hpbGRyZW46KDAseS5qc3gpKG53LHtcImFyaWEtaGlkZGVuXCI6XCJ0cnVlXCJ9KX0pLCgwLHkuanN4KShcImJ1dHRvblwiLHtcImFyaWEtZGlzYWJsZWRcIjpjP1widHJ1ZVwiOnZvaWQgMCxcImFyaWEtbGFiZWxcIjpcIk1hcmsgYXMgbm90IGhlbHBmdWxcIixvbkNsaWNrOmM/dm9pZCAwOmZ1bmN0aW9uKCl7cmV0dXJuIHUoITEpfSxjbGFzc05hbWU6KDAsZUouY3gpKFwiZmVlZGJhY2stYnV0dG9uXCIsITE9PT1zJiZcInZvdGVkXCIpLHRpdGxlOmM/XCJGZWVkYmFjayBkaXNhYmxlZCBkdWUgdG8gc2V0dGluZyBORVhUX1RFTEVNRVRSWV9ESVNBQkxFRFwiOnZvaWQgMCx0eXBlOlwiYnV0dG9uXCIsY2hpbGRyZW46KDAseS5qc3gpKG5qLHtcImFyaWEtaGlkZGVuXCI6XCJ0cnVlXCIsc3R5bGU6e3RyYW5zbGF0ZTpcIjFweCAxcHhcIn19KX0pXX0pfSl9ZnVuY3Rpb24gblMoZSl7dmFyIG49ZS5lcnJvckNvZGU7cmV0dXJuKDAseS5qc3gpKFwiZm9vdGVyXCIse1wiZGF0YS1uZXh0anMtZXJyb3Itb3ZlcmxheS1mb290ZXJcIjohMCxjbGFzc05hbWU6XCJlcnJvci1vdmVybGF5LWZvb3RlclwiLGNoaWxkcmVuOm4/KDAseS5qc3gpKG5DLHtjbGFzc05hbWU6XCJlcnJvci1mZWVkYmFja1wiLGVycm9yQ29kZTpufSk6bnVsbH0pfXZhciBuRT1cIlxcbiAgLmVycm9yLW92ZXJsYXktZm9vdGVyIHtcXG4gICAgZGlzcGxheTogZmxleDtcXG4gICAgZmxleC1kaXJlY3Rpb246IHJvdztcXG4gICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xcblxcbiAgICBnYXA6IDhweDtcXG4gICAgcGFkZGluZzogMTJweDtcXG4gICAgYmFja2dyb3VuZDogdmFyKC0tY29sb3ItYmFja2dyb3VuZC0yMDApO1xcbiAgICBib3JkZXItdG9wOiAxcHggc29saWQgdmFyKC0tY29sb3ItZ3JheS00MDApO1xcbiAgfVxcblxcbiAgLmVycm9yLWZlZWRiYWNrIHtcXG4gICAgbWFyZ2luLWxlZnQ6IGF1dG87XFxuXFxuICAgIHAge1xcbiAgICAgIGZvbnQtc2l6ZTogdmFyKC0tc2l6ZS0xNCk7XFxuICAgICAgZm9udC13ZWlnaHQ6IDUwMDtcXG4gICAgICBtYXJnaW46IDA7XFxuICAgIH1cXG4gIH1cXG5cXG4gIFwiLmNvbmNhdChcIlxcbiAgLmVycm9yLWZlZWRiYWNrIHtcXG4gICAgZGlzcGxheTogZmxleDtcXG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcXG4gICAgZ2FwOiA4cHg7XFxuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XFxuICAgIGNvbG9yOiB2YXIoLS1jb2xvci1ncmF5LTkwMCk7XFxuICB9XFxuXFxuICAuZXJyb3ItZmVlZGJhY2stdGhhbmtzIHtcXG4gICAgaGVpZ2h0OiB2YXIoLS1zaXplLTI0KTtcXG4gICAgZGlzcGxheTogZmxleDtcXG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcXG4gICAgcGFkZGluZy1yaWdodDogNHB4OyAvKiBUbyBtYXRjaCB0aGUgNHB4IGlubmVyIHBhZGRpbmcgb2YgdGhlIHRodW1icyB1cCBhbmQgZG93biBpY29ucyAqL1xcbiAgfVxcblxcbiAgLmZlZWRiYWNrLWJ1dHRvbiB7XFxuICAgIGJhY2tncm91bmQ6IG5vbmU7XFxuICAgIGJvcmRlcjogbm9uZTtcXG4gICAgYm9yZGVyLXJhZGl1czogdmFyKC0tcm91bmRlZC1tZCk7XFxuICAgIHdpZHRoOiB2YXIoLS1zaXplLTI0KTtcXG4gICAgaGVpZ2h0OiB2YXIoLS1zaXplLTI0KTtcXG4gICAgZGlzcGxheTogZmxleDtcXG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcXG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XFxuICAgIGN1cnNvcjogcG9pbnRlcjtcXG5cXG4gICAgJjpmb2N1cyB7XFxuICAgICAgb3V0bGluZTogdmFyKC0tZm9jdXMtcmluZyk7XFxuICAgIH1cXG5cXG4gICAgJjpob3ZlciB7XFxuICAgICAgYmFja2dyb3VuZDogdmFyKC0tY29sb3ItZ3JheS1hbHBoYS0xMDApO1xcbiAgICB9XFxuXFxuICAgICY6YWN0aXZlIHtcXG4gICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1jb2xvci1ncmF5LWFscGhhLTIwMCk7XFxuICAgIH1cXG4gIH1cXG5cXG4gIC5mZWVkYmFjay1idXR0b25bYXJpYS1kaXNhYmxlZD0ndHJ1ZSddIHtcXG4gICAgb3BhY2l0eTogMC43O1xcbiAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xcbiAgfVxcblxcbiAgLmZlZWRiYWNrLWJ1dHRvbi52b3RlZCB7XFxuICAgIGJhY2tncm91bmQ6IHZhcigtLWNvbG9yLWdyYXktYWxwaGEtMjAwKTtcXG4gIH1cXG5cXG4gIC50aHVtYnMtdXAtaWNvbixcXG4gIC50aHVtYnMtZG93bi1pY29uIHtcXG4gICAgY29sb3I6IHZhcigtLWNvbG9yLWdyYXktOTAwKTtcXG4gICAgd2lkdGg6IHZhcigtLXNpemUtMTYpO1xcbiAgICBoZWlnaHQ6IHZhcigtLXNpemUtMTYpO1xcbiAgfVxcblwiLFwiXFxuXCIpO2Z1bmN0aW9uIG5fKGUsbil7KG51bGw9PW58fG4+ZS5sZW5ndGgpJiYobj1lLmxlbmd0aCk7Zm9yKHZhciB0PTAscj1BcnJheShuKTt0PG47dCsrKXJbdF09ZVt0XTtyZXR1cm4gcn1mdW5jdGlvbiBuUChlLG4pe3JldHVybiBmdW5jdGlvbihlKXtpZihBcnJheS5pc0FycmF5KGUpKXJldHVybiBlfShlKXx8ZnVuY3Rpb24oZSxuKXt2YXIgdCxyLG89bnVsbD09ZT9udWxsOlwidW5kZWZpbmVkXCIhPXR5cGVvZiBTeW1ib2wmJmVbU3ltYm9sLml0ZXJhdG9yXXx8ZVtcIkBAaXRlcmF0b3JcIl07aWYobnVsbCE9byl7dmFyIGE9W10saT0hMCxsPSExO3RyeXtmb3Iobz1vLmNhbGwoZSk7IShpPSh0PW8ubmV4dCgpKS5kb25lKSYmKGEucHVzaCh0LnZhbHVlKSwhbnx8YS5sZW5ndGghPT1uKTtpPSEwKTt9Y2F0Y2goZSl7bD0hMCxyPWV9ZmluYWxseXt0cnl7aXx8bnVsbD09by5yZXR1cm58fG8ucmV0dXJuKCl9ZmluYWxseXtpZihsKXRocm93IHJ9fXJldHVybiBhfX0oZSxuKXx8ZnVuY3Rpb24oZSxuKXtpZihlKXtpZihcInN0cmluZ1wiPT10eXBlb2YgZSlyZXR1cm4gbl8oZSxuKTt2YXIgdD1PYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwoZSkuc2xpY2UoOCwtMSk7aWYoXCJPYmplY3RcIj09PXQmJmUuY29uc3RydWN0b3ImJih0PWUuY29uc3RydWN0b3IubmFtZSksXCJNYXBcIj09PXR8fFwiU2V0XCI9PT10KXJldHVybiBBcnJheS5mcm9tKHQpO2lmKFwiQXJndW1lbnRzXCI9PT10fHwvXig/OlVpfEkpbnQoPzo4fDE2fDMyKSg/OkNsYW1wZWQpP0FycmF5JC8udGVzdCh0KSlyZXR1cm4gbl8oZSxuKX19KGUsbil8fGZ1bmN0aW9uKCl7dGhyb3cgVHlwZUVycm9yKFwiSW52YWxpZCBhdHRlbXB0IHRvIGRlc3RydWN0dXJlIG5vbi1pdGVyYWJsZSBpbnN0YW5jZS5cXFxcbkluIG9yZGVyIHRvIGJlIGl0ZXJhYmxlLCBub24tYXJyYXkgb2JqZWN0cyBtdXN0IGhhdmUgYSBbU3ltYm9sLml0ZXJhdG9yXSgpIG1ldGhvZC5cIil9KCl9ZnVuY3Rpb24gbnooZSl7dmFyIG49ZS5lcnJvck1lc3NhZ2UsdD1uUCgoMCx4LnVzZVN0YXRlKSghMSksMikscj10WzBdLG89dFsxXSxhPW5QKCgwLHgudXNlU3RhdGUpKCExKSwyKSxpPWFbMF0sbD1hWzFdLHM9KDAseC51c2VSZWYpKG51bGwpO3JldHVybigwLHgudXNlTGF5b3V0RWZmZWN0KShmdW5jdGlvbigpe3MuY3VycmVudCYmbChzLmN1cnJlbnQuc2Nyb2xsSGVpZ2h0PjIwMCl9LFtuXSksKDAseS5qc3hzKShcImRpdlwiLHtjbGFzc05hbWU6XCJuZXh0anNfX2NvbnRhaW5lcl9lcnJvcnNfd3JhcHBlclwiLGNoaWxkcmVuOlsoMCx5LmpzeCkoXCJwXCIse3JlZjpzLGlkOlwibmV4dGpzX19jb250YWluZXJfZXJyb3JzX2Rlc2NcIixjbGFzc05hbWU6XCJuZXh0anNfX2NvbnRhaW5lcl9lcnJvcnNfZGVzYyBcIi5jb25jYXQoaSYmIXI/XCJ0cnVuY2F0ZWRcIjpcIlwiKSxjaGlsZHJlbjpufSksaSYmIXImJigwLHkuanN4cykoeS5GcmFnbWVudCx7Y2hpbGRyZW46WygwLHkuanN4KShcImRpdlwiLHtjbGFzc05hbWU6XCJuZXh0anNfX2NvbnRhaW5lcl9lcnJvcnNfZ3JhZGllbnRfb3ZlcmxheVwifSksKDAseS5qc3gpKFwiYnV0dG9uXCIse29uQ2xpY2s6ZnVuY3Rpb24oKXtyZXR1cm4gbyghMCl9LGNsYXNzTmFtZTpcIm5leHRqc19fY29udGFpbmVyX2Vycm9yc19leHBhbmRfYnV0dG9uXCIsXCJhcmlhLWV4cGFuZGVkXCI6cixcImFyaWEtY29udHJvbHNcIjpcIm5leHRqc19fY29udGFpbmVyX2Vycm9yc19kZXNjXCIsY2hpbGRyZW46XCJTaG93IE1vcmVcIn0pXX0pXX0pfWZ1bmN0aW9uIG5MKGUpe3ZhciBuPWUuZXJyb3JUeXBlO3JldHVybigwLHkuanN4KShcInNwYW5cIix7aWQ6XCJuZXh0anNfX2NvbnRhaW5lcl9lcnJvcnNfbGFiZWxcIixjbGFzc05hbWU6XCJuZXh0anNfX2NvbnRhaW5lcl9lcnJvcnNfbGFiZWxcIixjaGlsZHJlbjpufSl9ZnVuY3Rpb24gblQoZSl7dmFyIG49ZS50aXRsZSx0PWUuY2xhc3NOYW1lO3JldHVybigwLHkuanN4KShcInN2Z1wiLHt3aWR0aDpcIjE2XCIsaGVpZ2h0OlwiMTZcIix2aWV3Qm94OlwiMCAwIDE2IDE2XCIsZmlsbDpcIm5vbmVcIix4bWxuczpcImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIsXCJhcmlhLWxhYmVsXCI6bixjbGFzc05hbWU6dCxjaGlsZHJlbjooMCx5LmpzeCkoXCJwYXRoXCIse2ZpbGxSdWxlOlwiZXZlbm9kZFwiLGNsaXBSdWxlOlwiZXZlbm9kZFwiLGQ6XCJNOS4yNDk5NiAxMi4wNjA4TDguNzE5NjMgMTEuNTMwNEw1Ljg5NjQxIDguNzA3MjJDNS41MDU4OCA4LjMxNjcgNS41MDU4OCA3LjY4MzUzIDUuODk2NDEgNy4yOTMwMUw4LjcxOTYzIDQuNDY5NzhMOS4yNDk5NiAzLjkzOTQ1TDEwLjMxMDYgNS4wMDAxMUw5Ljc4MDI5IDUuNTMwNDRMNy4zMTA2MiA4LjAwMDExTDkuNzgwMjkgMTAuNDY5OEwxMC4zMTA2IDExLjAwMDFMOS4yNDk5NiAxMi4wNjA4WlwiLGZpbGw6XCJjdXJyZW50Q29sb3JcIn0pfSl9ZnVuY3Rpb24gblIoZSl7dmFyIG49ZS50aXRsZSx0PWUuY2xhc3NOYW1lO3JldHVybigwLHkuanN4KShcInN2Z1wiLHt3aWR0aDpcIjE2XCIsaGVpZ2h0OlwiMTZcIix2aWV3Qm94OlwiMCAwIDE2IDE2XCIsZmlsbDpcIm5vbmVcIix4bWxuczpcImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIsY2xhc3NOYW1lOnQsXCJhcmlhLWxhYmVsXCI6bixjaGlsZHJlbjooMCx5LmpzeCkoXCJwYXRoXCIse2ZpbGxSdWxlOlwiZXZlbm9kZFwiLGNsaXBSdWxlOlwiZXZlbm9kZFwiLGQ6XCJNNi43NTAxMSAzLjkzOTQ1TDcuMjgwNDQgNC40Njk3OEwxMC4xMDM3IDcuMjkzMDFDMTAuNDk0MiA3LjY4MzUzIDEwLjQ5NDIgOC4zMTY3IDEwLjEwMzcgOC43MDcyMkw3LjI4MDQ0IDExLjUzMDRMNi43NTAxMSAxMi4wNjA4TDUuNjg5NDUgMTEuMDAwMUw2LjIxOTc4IDEwLjQ2OThMOC42ODk0NSA4LjAwMDExTDYuMjE5NzggNS41MzA0NEw1LjY4OTQ1IDUuMDAwMTFMNi43NTAxMSAzLjkzOTQ1WlwiLGZpbGw6XCJjdXJyZW50Q29sb3JcIn0pfSl9ZnVuY3Rpb24gbk4oZSxuKXsobnVsbD09bnx8bj5lLmxlbmd0aCkmJihuPWUubGVuZ3RoKTtmb3IodmFyIHQ9MCxyPUFycmF5KG4pO3Q8bjt0Kyspclt0XT1lW3RdO3JldHVybiByfWZ1bmN0aW9uIG5EKGUpe3ZhciBuLHQscj1lLnJ1bnRpbWVFcnJvcnMsbz1lLmFjdGl2ZUlkeCxhPWUub25BY3RpdmVJbmRleENoYW5nZSxpPSgwLHgudXNlQ2FsbGJhY2spKGZ1bmN0aW9uKCl7cmV0dXJuKDAseC5zdGFydFRyYW5zaXRpb24pKGZ1bmN0aW9uKCl7bz4wJiZhKE1hdGgubWF4KDAsby0xKSl9KX0sW28sYV0pLGw9KDAseC51c2VDYWxsYmFjaykoZnVuY3Rpb24oKXtyZXR1cm4oMCx4LnN0YXJ0VHJhbnNpdGlvbikoZnVuY3Rpb24oKXtvPHIubGVuZ3RoLTEmJmEoTWF0aC5tYXgoMCxNYXRoLm1pbihyLmxlbmd0aC0xLG8rMSkpKX0pfSxbbyxyLmxlbmd0aCxhXSkscz0oMCx4LnVzZVJlZikobnVsbCksYz0oMCx4LnVzZVJlZikobnVsbCksdT0obj0oMCx4LnVzZVN0YXRlKShudWxsKSx0PTIsZnVuY3Rpb24oZSl7aWYoQXJyYXkuaXNBcnJheShlKSlyZXR1cm4gZX0obil8fGZ1bmN0aW9uKGUsbil7dmFyIHQscixvPW51bGw9PWU/bnVsbDpcInVuZGVmaW5lZFwiIT10eXBlb2YgU3ltYm9sJiZlW1N5bWJvbC5pdGVyYXRvcl18fGVbXCJAQGl0ZXJhdG9yXCJdO2lmKG51bGwhPW8pe3ZhciBhPVtdLGk9ITAsbD0hMTt0cnl7Zm9yKG89by5jYWxsKGUpOyEoaT0odD1vLm5leHQoKSkuZG9uZSkmJihhLnB1c2godC52YWx1ZSksYS5sZW5ndGghPT1uKTtpPSEwKTt9Y2F0Y2goZSl7bD0hMCxyPWV9ZmluYWxseXt0cnl7aXx8bnVsbD09by5yZXR1cm58fG8ucmV0dXJuKCl9ZmluYWxseXtpZihsKXRocm93IHJ9fXJldHVybiBhfX0obiwyKXx8ZnVuY3Rpb24oZSxuKXtpZihlKXtpZihcInN0cmluZ1wiPT10eXBlb2YgZSlyZXR1cm4gbk4oZSxuKTt2YXIgdD1PYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwoZSkuc2xpY2UoOCwtMSk7aWYoXCJPYmplY3RcIj09PXQmJmUuY29uc3RydWN0b3ImJih0PWUuY29uc3RydWN0b3IubmFtZSksXCJNYXBcIj09PXR8fFwiU2V0XCI9PT10KXJldHVybiBBcnJheS5mcm9tKHQpO2lmKFwiQXJndW1lbnRzXCI9PT10fHwvXig/OlVpfEkpbnQoPzo4fDE2fDMyKSg/OkNsYW1wZWQpP0FycmF5JC8udGVzdCh0KSlyZXR1cm4gbk4oZSxuKX19KG4sdCl8fGZ1bmN0aW9uKCl7dGhyb3cgVHlwZUVycm9yKFwiSW52YWxpZCBhdHRlbXB0IHRvIGRlc3RydWN0dXJlIG5vbi1pdGVyYWJsZSBpbnN0YW5jZS5cXFxcbkluIG9yZGVyIHRvIGJlIGl0ZXJhYmxlLCBub24tYXJyYXkgb2JqZWN0cyBtdXN0IGhhdmUgYSBbU3ltYm9sLml0ZXJhdG9yXSgpIG1ldGhvZC5cIil9KCkpLGQ9dVswXSxmPXVbMV0scD0oMCx4LnVzZUNhbGxiYWNrKShmdW5jdGlvbihlKXtmKGUpfSxbXSk7cmV0dXJuKDAseC51c2VFZmZlY3QpKGZ1bmN0aW9uKCl7dmFyIGU9ZnVuY3Rpb24oZSl7XCJBcnJvd0xlZnRcIj09PWUua2V5PyhlLnByZXZlbnREZWZhdWx0KCksZS5zdG9wUHJvcGFnYXRpb24oKSxpJiZpKCkpOlwiQXJyb3dSaWdodFwiPT09ZS5rZXkmJihlLnByZXZlbnREZWZhdWx0KCksZS5zdG9wUHJvcGFnYXRpb24oKSxsJiZsKCkpfTtpZihudWxsIT1kKXt2YXIgbj1kLmdldFJvb3ROb2RlKCksdD1zZWxmLmRvY3VtZW50O3JldHVybiBuLmFkZEV2ZW50TGlzdGVuZXIoXCJrZXlkb3duXCIsZSksbiE9PXQmJnQuYWRkRXZlbnRMaXN0ZW5lcihcImtleWRvd25cIixlKSxmdW5jdGlvbigpe24ucmVtb3ZlRXZlbnRMaXN0ZW5lcihcImtleWRvd25cIixlKSxuIT09dCYmdC5yZW1vdmVFdmVudExpc3RlbmVyKFwia2V5ZG93blwiLGUpfX19LFtkLGwsaV0pLCgwLHgudXNlRWZmZWN0KShmdW5jdGlvbigpe2lmKG51bGwhPWQpe3ZhciBlLG4sdD1kLmdldFJvb3ROb2RlKCk7aWYoZT10LG51bGwhPShuPVNoYWRvd1Jvb3QpJiZcInVuZGVmaW5lZFwiIT10eXBlb2YgU3ltYm9sJiZuW1N5bWJvbC5oYXNJbnN0YW5jZV0/ISFuW1N5bWJvbC5oYXNJbnN0YW5jZV0oZSk6ZSBpbnN0YW5jZW9mIG4pe3ZhciBhPXQuYWN0aXZlRWxlbWVudDswPT09bz9zLmN1cnJlbnQmJmE9PT1zLmN1cnJlbnQmJnMuY3VycmVudC5ibHVyKCk6bz09PXIubGVuZ3RoLTEmJmMuY3VycmVudCYmYT09PWMuY3VycmVudCYmYy5jdXJyZW50LmJsdXIoKX19fSxbZCxvLHIubGVuZ3RoXSksKDAseS5qc3hzKShcIm5hdlwiLHtjbGFzc05hbWU6XCJlcnJvci1vdmVybGF5LXBhZ2luYXRpb24gZGlhbG9nLWV4Y2x1ZGUtY2xvc2luZy1mcm9tLW91dHNpZGUtY2xpY2tcIixyZWY6cCxjaGlsZHJlbjpbKDAseS5qc3gpKFwiYnV0dG9uXCIse3JlZjpzLHR5cGU6XCJidXR0b25cIixkaXNhYmxlZDowPT09byxcImFyaWEtZGlzYWJsZWRcIjowPT09byxvbkNsaWNrOmksXCJkYXRhLW5leHRqcy1kaWFsb2ctZXJyb3ItcHJldmlvdXNcIjohMCxjbGFzc05hbWU6XCJlcnJvci1vdmVybGF5LXBhZ2luYXRpb24tYnV0dG9uXCIsY2hpbGRyZW46KDAseS5qc3gpKG5ULHt0aXRsZTpcInByZXZpb3VzXCIsY2xhc3NOYW1lOlwiZXJyb3Itb3ZlcmxheS1wYWdpbmF0aW9uLWJ1dHRvbi1pY29uXCJ9KX0pLCgwLHkuanN4cykoXCJkaXZcIix7Y2xhc3NOYW1lOlwiZXJyb3Itb3ZlcmxheS1wYWdpbmF0aW9uLWNvdW50XCIsY2hpbGRyZW46WygwLHkuanN4cykoXCJzcGFuXCIse1wiZGF0YS1uZXh0anMtZGlhbG9nLWVycm9yLWluZGV4XCI6byxjaGlsZHJlbjpbbysxLFwiL1wiXX0pLCgwLHkuanN4KShcInNwYW5cIix7XCJkYXRhLW5leHRqcy1kaWFsb2ctaGVhZGVyLXRvdGFsLWNvdW50XCI6ITAsY2hpbGRyZW46ci5sZW5ndGh8fDF9KV19KSwoMCx5LmpzeCkoXCJidXR0b25cIix7cmVmOmMsdHlwZTpcImJ1dHRvblwiLGRpc2FibGVkOm8+PXIubGVuZ3RoLTEsXCJhcmlhLWRpc2FibGVkXCI6bz49ci5sZW5ndGgtMSxvbkNsaWNrOmwsXCJkYXRhLW5leHRqcy1kaWFsb2ctZXJyb3ItbmV4dFwiOiEwLGNsYXNzTmFtZTpcImVycm9yLW92ZXJsYXktcGFnaW5hdGlvbi1idXR0b25cIixjaGlsZHJlbjooMCx5LmpzeCkoblIse3RpdGxlOlwibmV4dFwiLGNsYXNzTmFtZTpcImVycm9yLW92ZXJsYXktcGFnaW5hdGlvbi1idXR0b24taWNvblwifSl9KV19KX1mdW5jdGlvbiBuQihlKXt2YXIgbj1lLmluc3RhbGxlZCx0PWUuc3RhbGVuZXNzLHI9ZS5leHBlY3RlZCxvPVwiXCIsYT1cIlwiLGk9XCJcIixsPVwiTmV4dC5qcyBcIi5jb25jYXQobik7c3dpdGNoKHQpe2Nhc2VcIm5ld2VyLXRoYW4tbnBtXCI6Y2FzZVwiZnJlc2hcIjpvPWwsYT1cIkxhdGVzdCBhdmFpbGFibGUgdmVyc2lvbiBpcyBkZXRlY3RlZCAoXCIuY29uY2F0KG4sXCIpLlwiKSxpPVwiZnJlc2hcIjticmVhaztjYXNlXCJzdGFsZS1wYXRjaFwiOmNhc2VcInN0YWxlLW1pbm9yXCI6bz1cIlwiLmNvbmNhdChsLFwiIChzdGFsZSlcIiksYT1cIlRoZXJlIGlzIGEgbmV3ZXIgdmVyc2lvbiAoXCIuY29uY2F0KHIsXCIpIGF2YWlsYWJsZSwgdXBncmFkZSByZWNvbW1lbmRlZCEgXCIpLGk9XCJzdGFsZVwiO2JyZWFrO2Nhc2VcInN0YWxlLW1ham9yXCI6bz1cIlwiLmNvbmNhdChsLFwiIChvdXRkYXRlZClcIiksYT1cIkFuIG91dGRhdGVkIHZlcnNpb24gZGV0ZWN0ZWQgKGxhdGVzdCBpcyBcIi5jb25jYXQocixcIiksIHVwZ3JhZGUgaXMgaGlnaGx5IHJlY29tbWVuZGVkIVwiKSxpPVwib3V0ZGF0ZWRcIjticmVhaztjYXNlXCJzdGFsZS1wcmVyZWxlYXNlXCI6bz1cIlwiLmNvbmNhdChsLFwiIChzdGFsZSlcIiksYT1cIlRoZXJlIGlzIGEgbmV3ZXIgY2FuYXJ5IHZlcnNpb24gKFwiLmNvbmNhdChyLFwiKSBhdmFpbGFibGUsIHBsZWFzZSB1cGdyYWRlISBcIiksaT1cInN0YWxlXCI7YnJlYWs7Y2FzZVwidW5rbm93blwiOm89XCJcIi5jb25jYXQobCxcIiAodW5rbm93bilcIiksYT1cIk5vIE5leHQuanMgdmVyc2lvbiBkYXRhIHdhcyBmb3VuZC5cIixpPVwidW5rbm93blwifXJldHVybnt0ZXh0Om8saW5kaWNhdG9yQ2xhc3M6aSx0aXRsZTphfX1mdW5jdGlvbiBuTShlKXt2YXIgbix0O3JldHVybigwLHkuanN4KShcInN2Z1wiLChuPWZ1bmN0aW9uKGUpe2Zvcih2YXIgbj0xO248YXJndW1lbnRzLmxlbmd0aDtuKyspe3ZhciB0PW51bGwhPWFyZ3VtZW50c1tuXT9hcmd1bWVudHNbbl06e30scj1PYmplY3Qua2V5cyh0KTtcImZ1bmN0aW9uXCI9PXR5cGVvZiBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzJiYocj1yLmNvbmNhdChPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKHQpLmZpbHRlcihmdW5jdGlvbihlKXtyZXR1cm4gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcih0LGUpLmVudW1lcmFibGV9KSkpLHIuZm9yRWFjaChmdW5jdGlvbihuKXt2YXIgcixvLGE7cj1lLG89bixhPXRbbl0sbyBpbiByP09iamVjdC5kZWZpbmVQcm9wZXJ0eShyLG8se3ZhbHVlOmEsZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITB9KTpyW29dPWF9KX1yZXR1cm4gZX0oe3dpZHRoOlwiMTRcIixoZWlnaHQ6XCIxNFwiLHZpZXdCb3g6XCIwIDAgMTQgMTRcIixmaWxsOlwibm9uZVwiLHhtbG5zOlwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIn0sZSksdD10PXtjaGlsZHJlbjooMCx5LmpzeCkoXCJjaXJjbGVcIix7Y3g6XCI3XCIsY3k6XCI3XCIscjpcIjUuNVwiLHN0cm9rZVdpZHRoOlwiM1wifSl9LE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzP09iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKG4sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcnModCkpOihmdW5jdGlvbihlLG4pe3ZhciB0PU9iamVjdC5rZXlzKGUpO2lmKE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMpe3ZhciByPU9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMoZSk7dC5wdXNoLmFwcGx5KHQscil9cmV0dXJuIHR9KShPYmplY3QodCkpLmZvckVhY2goZnVuY3Rpb24oZSl7T2JqZWN0LmRlZmluZVByb3BlcnR5KG4sZSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHQsZSkpfSksbikpfWZ1bmN0aW9uIG5JKGUpe3ZhciBuPWUudmVyc2lvbkluZm8sdD1lLmJ1bmRsZXJOYW1lLHI9bi5zdGFsZW5lc3Msbz1uQihuKSxhPW8udGV4dCxpPW8uaW5kaWNhdG9yQ2xhc3MsbD1vLnRpdGxlLHM9XCJUdXJib3BhY2tcIj09PXQ7cmV0dXJuIHIuc3RhcnRzV2l0aChcInN0YWxlXCIpPygwLHkuanN4cykoXCJhXCIse2NsYXNzTmFtZTpcIm5leHRqcy1jb250YWluZXItYnVpbGQtZXJyb3ItdmVyc2lvbi1zdGF0dXMgZGlhbG9nLWV4Y2x1ZGUtY2xvc2luZy1mcm9tLW91dHNpZGUtY2xpY2tcIix0YXJnZXQ6XCJfYmxhbmtcIixyZWw6XCJub29wZW5lciBub3JlZmVycmVyXCIsaHJlZjpcImh0dHBzOi8vbmV4dGpzLm9yZy9kb2NzL21lc3NhZ2VzL3ZlcnNpb24tc3RhbGVuZXNzXCIsY2hpbGRyZW46WygwLHkuanN4KShuTSx7Y2xhc3NOYW1lOigwLGVKLmN4KShcInZlcnNpb24tc3RhbGVuZXNzLWluZGljYXRvclwiLGkpfSksKDAseS5qc3gpKFwic3BhblwiLHtcImRhdGEtbmV4dGpzLXZlcnNpb24tY2hlY2tlclwiOiEwLHRpdGxlOmwsY2hpbGRyZW46YX0pLCgwLHkuanN4KShcInNwYW5cIix7Y2xhc3NOYW1lOigwLGVKLmN4KShzJiZcInR1cmJvcGFjay10ZXh0XCIpLGNoaWxkcmVuOnR9KV19KTooMCx5LmpzeHMpKFwic3BhblwiLHtjbGFzc05hbWU6XCJuZXh0anMtY29udGFpbmVyLWJ1aWxkLWVycm9yLXZlcnNpb24tc3RhdHVzIGRpYWxvZy1leGNsdWRlLWNsb3NpbmctZnJvbS1vdXRzaWRlLWNsaWNrXCIsY2hpbGRyZW46WygwLHkuanN4KShuTSx7Y2xhc3NOYW1lOigwLGVKLmN4KShcInZlcnNpb24tc3RhbGVuZXNzLWluZGljYXRvclwiLGkpfSksKDAseS5qc3gpKFwic3BhblwiLHtcImRhdGEtbmV4dGpzLXZlcnNpb24tY2hlY2tlclwiOiEwLHRpdGxlOmwsY2hpbGRyZW46YX0pLCgwLHkuanN4KShcInNwYW5cIix7Y2xhc3NOYW1lOigwLGVKLmN4KShzJiZcInR1cmJvcGFjay10ZXh0XCIpLGNoaWxkcmVuOnR9KV19KX1mdW5jdGlvbiBuSChlKXt2YXIgbj1lLnJ1bnRpbWVFcnJvcnMsdD1lLmFjdGl2ZUlkeCxyPWUuc2V0QWN0aXZlSW5kZXgsbz1lLnZlcnNpb25JbmZvLGE9cHJvY2Vzcy5lbnYuX19ORVhUX0JVTkRMRVJ8fFwiV2VicGFja1wiO3JldHVybigwLHkuanN4cykoXCJkaXZcIix7XCJkYXRhLW5leHRqcy1lcnJvci1vdmVybGF5LW5hdlwiOiEwLGNoaWxkcmVuOlsoMCx5LmpzeCkobkYse3NpZGU6XCJsZWZ0XCIsY2hpbGRyZW46KDAseS5qc3gpKG5ELHtydW50aW1lRXJyb3JzOm51bGwhPW4/bjpbXSxhY3RpdmVJZHg6bnVsbCE9dD90OjAsb25BY3RpdmVJbmRleENoYW5nZTpudWxsIT1yP3I6ZnVuY3Rpb24oKXt9fSl9KSxvJiYoMCx5LmpzeCkobkYse3NpZGU6XCJyaWdodFwiLGNoaWxkcmVuOigwLHkuanN4KShuSSx7dmVyc2lvbkluZm86byxidW5kbGVyTmFtZTphfSl9KV19KX1mdW5jdGlvbiBuRihlKXt2YXIgbj1lLmNoaWxkcmVuLHQ9ZS5zaWRlO3JldHVybigwLHkuanN4cykoXCJkaXZcIix7Y2xhc3NOYW1lOlwiZXJyb3Itb3ZlcmxheS1ub3RjaFwiLFwiZGF0YS1zaWRlXCI6dm9pZCAwPT09dD9cImxlZnRcIjp0LGNoaWxkcmVuOltuLCgwLHkuanN4KShuVSx7fSldfSl9ZnVuY3Rpb24gblUoKXtyZXR1cm4oMCx5LmpzeHMpKFwic3ZnXCIse3dpZHRoOlwiNjBcIixoZWlnaHQ6XCI0MlwiLHZpZXdCb3g6XCIwIDAgNjAgNDJcIixmaWxsOlwibm9uZVwiLHhtbG5zOlwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIixjbGFzc05hbWU6XCJlcnJvci1vdmVybGF5LW5vdGNoLXRhaWxcIixwcmVzZXJ2ZUFzcGVjdFJhdGlvOlwibm9uZVwiLGNoaWxkcmVuOlsoMCx5LmpzeHMpKFwibWFza1wiLHtpZDpcImVycm9yX292ZXJsYXlfbmF2X21hc2swXzI2NjdfMTQ2ODdcIixzdHlsZTp7bWFza1R5cGU6XCJhbHBoYVwifSxtYXNrVW5pdHM6XCJ1c2VyU3BhY2VPblVzZVwiLHg6XCIwXCIseTpcIi0xXCIsd2lkdGg6XCI2MFwiLGhlaWdodDpcIjQzXCIsY2hpbGRyZW46WygwLHkuanN4cykoXCJtYXNrXCIse2lkOlwiZXJyb3Jfb3ZlcmxheV9uYXZfcGF0aF8xX291dHNpZGVfMV8yNjY3XzE0Njg3XCIsbWFza1VuaXRzOlwidXNlclNwYWNlT25Vc2VcIix4OlwiMFwiLHk6XCItMVwiLHdpZHRoOlwiNjBcIixoZWlnaHQ6XCI0M1wiLGZpbGw6XCJibGFja1wiLGNoaWxkcmVuOlsoMCx5LmpzeCkoXCJyZWN0XCIse2ZpbGw6XCJ3aGl0ZVwiLHk6XCItMVwiLHdpZHRoOlwiNjBcIixoZWlnaHQ6XCI0M1wifSksKDAseS5qc3gpKFwicGF0aFwiLHtkOlwiTTEgMEw4LjA3ODMgMEMxNS43NzIgMCAyMi43ODM2IDQuNDEzMjQgMjYuMTExIDExLjM1MDFMMzQuODg4OSAyOS42NDk4QzM4LjIxNjQgMzYuNTg2OCA0NS4yMjggNDEgNTIuOTIxNyA0MUg2MEgxTDEgMFpcIn0pXX0pLCgwLHkuanN4KShcInBhdGhcIix7ZDpcIk0xIDBMOC4wNzgzIDBDMTUuNzcyIDAgMjIuNzgzNiA0LjQxMzI0IDI2LjExMSAxMS4zNTAxTDM0Ljg4ODkgMjkuNjQ5OEMzOC4yMTY0IDM2LjU4NjggNDUuMjI4IDQxIDUyLjkyMTcgNDFINjBIMUwxIDBaXCIsZmlsbDpcIndoaXRlXCJ9KSwoMCx5LmpzeCkoXCJwYXRoXCIse2Q6XCJNMSAwVi0xSDBWMEwxIDBaTTEgNDFIMFY0MkgxVjQxWk0zNC44ODg5IDI5LjY0OThMMzMuOTg3MyAzMC4wODIzTDM0Ljg4ODkgMjkuNjQ5OFpNMjYuMTExIDExLjM1MDFMMjcuMDEyNyAxMC45MTc3TDI2LjExMSAxMS4zNTAxWk0xIDFIOC4wNzgzVi0xSDFWMVpNNjAgNDBIMVY0Mkg2MFY0MFpNMiA0MVYwTDAgMEwwIDQxSDJaTTI1LjIwOTQgMTEuNzgyNkwzMy45ODczIDMwLjA4MjNMMzUuNzkwNiAyOS4yMTc0TDI3LjAxMjcgMTAuOTE3N0wyNS4yMDk0IDExLjc4MjZaTTUyLjkyMTcgNDJINjBWNDBINTIuOTIxN1Y0MlpNMzMuOTg3MyAzMC4wODIzQzM3LjQ4MTEgMzcuMzY2MSA0NC44NDMzIDQyIDUyLjkyMTcgNDJWNDBDNDUuNjEyNyA0MCAzOC45NTE3IDM1LjgwNzQgMzUuNzkwNiAyOS4yMTc0TDMzLjk4NzMgMzAuMDgyM1pNOC4wNzgzIDFDMTUuMzg3MyAxIDIyLjA0ODMgNS4xOTI1NyAyNS4yMDk0IDExLjc4MjZMMjcuMDEyNyAxMC45MTc3QzIzLjUxODggMy42MzM5IDE2LjE1NjcgLTEgOC4wNzgzIC0xVjFaXCIsZmlsbDpcImJsYWNrXCIsbWFzazpcInVybCgjZXJyb3Jfb3ZlcmxheV9uYXZfcGF0aF8xX291dHNpZGVfMV8yNjY3XzE0Njg3KVwifSldfSksKDAseS5qc3hzKShcImdcIix7bWFzazpcInVybCgjZXJyb3Jfb3ZlcmxheV9uYXZfbWFzazBfMjY2N18xNDY4NylcIixjaGlsZHJlbjpbKDAseS5qc3hzKShcIm1hc2tcIix7aWQ6XCJlcnJvcl9vdmVybGF5X25hdl9wYXRoXzNfb3V0c2lkZV8yXzI2NjdfMTQ2ODdcIixtYXNrVW5pdHM6XCJ1c2VyU3BhY2VPblVzZVwiLHg6XCItMVwiLHk6XCIwLjAyNDQxNDFcIix3aWR0aDpcIjYwXCIsaGVpZ2h0OlwiNDNcIixmaWxsOlwiYmxhY2tcIixjaGlsZHJlbjpbKDAseS5qc3gpKFwicmVjdFwiLHtmaWxsOlwid2hpdGVcIix4OlwiLTFcIix5OlwiMC4wMjQ0MTQxXCIsd2lkdGg6XCI2MFwiLGhlaWdodDpcIjQzXCJ9KSwoMCx5LmpzeCkoXCJwYXRoXCIse2Q6XCJNMCAxLjAyNDQxSDcuMDc4M0MxNC43NzIgMS4wMjQ0MSAyMS43ODM2IDUuNDM3NjUgMjUuMTExIDEyLjM3NDZMMzMuODg4OSAzMC42NzQzQzM3LjIxNjQgMzcuNjExMiA0NC4yMjggNDIuMDI0NCA1MS45MjE3IDQyLjAyNDRINTlIMEwwIDEuMDI0NDFaXCJ9KV19KSwoMCx5LmpzeCkoXCJwYXRoXCIse2Q6XCJNMCAxLjAyNDQxSDcuMDc4M0MxNC43NzIgMS4wMjQ0MSAyMS43ODM2IDUuNDM3NjUgMjUuMTExIDEyLjM3NDZMMzMuODg4OSAzMC42NzQzQzM3LjIxNjQgMzcuNjExMiA0NC4yMjggNDIuMDI0NCA1MS45MjE3IDQyLjAyNDRINTlIMEwwIDEuMDI0NDFaXCIsZmlsbDpcInZhcigtLWJhY2tncm91bmQtY29sb3IpXCJ9KSwoMCx5LmpzeCkoXCJwYXRoXCIse2Q6XCJNMCAxLjAyNDQxTDAgMC4wMjQ0MTQxSC0xVjEuMDI0NDFIMFpNMCA0Mi4wMjQ0SC0xVjQzLjAyNDRIMEwwIDQyLjAyNDRaTTMzLjg4ODkgMzAuNjc0M0wzMi45ODczIDMxLjEwNjhMMzMuODg4OSAzMC42NzQzWk0yNS4xMTEgMTIuMzc0NkwyNi4wMTI3IDExLjk0MjFMMjUuMTExIDEyLjM3NDZaTTAgMi4wMjQ0MUg3LjA3ODNWMC4wMjQ0MTQxSDBMMCAyLjAyNDQxWk01OSA0MS4wMjQ0SDBMMCA0My4wMjQ0SDU5VjQxLjAyNDRaTTEgNDIuMDI0NEwxIDEuMDI0NDFILTFMLTEgNDIuMDI0NEgxWk0yNC4yMDk0IDEyLjgwNzFMMzIuOTg3MyAzMS4xMDY4TDM0Ljc5MDYgMzAuMjQxOEwyNi4wMTI3IDExLjk0MjFMMjQuMjA5NCAxMi44MDcxWk01MS45MjE3IDQzLjAyNDRINTlWNDEuMDI0NEg1MS45MjE3VjQzLjAyNDRaTTMyLjk4NzMgMzEuMTA2OEMzNi40ODExIDM4LjM5MDUgNDMuODQzMyA0My4wMjQ0IDUxLjkyMTcgNDMuMDI0NFY0MS4wMjQ0QzQ0LjYxMjcgNDEuMDI0NCAzNy45NTE3IDM2LjgzMTggMzQuNzkwNiAzMC4yNDE4TDMyLjk4NzMgMzEuMTA2OFpNNy4wNzgzIDIuMDI0NDFDMTQuMzg3MyAyLjAyNDQxIDIxLjA0ODMgNi4yMTY5OSAyNC4yMDk0IDEyLjgwNzFMMjYuMDEyNyAxMS45NDIxQzIyLjUxODggNC42NTgzMSAxNS4xNTY3IDAuMDI0NDE0MSA3LjA3ODMgMC4wMjQ0MTQxVjIuMDI0NDFaXCIsZmlsbDpcInZhcigtLXN0cm9rZS1jb2xvcilcIixtYXNrOlwidXJsKCNlcnJvcl9vdmVybGF5X25hdl9wYXRoXzNfb3V0c2lkZV8yXzI2NjdfMTQ2ODcpXCJ9KV19KV19KX1mdW5jdGlvbiBuVihlKXt2YXIgbix0LHI9ZS5jaGlsZHJlbixvPWUub25DbG9zZSxhPWUuZm9vdGVyLGk9ZnVuY3Rpb24oZSxuKXtpZihudWxsPT1lKXJldHVybnt9O3ZhciB0LHIsbz1mdW5jdGlvbihlLG4pe2lmKG51bGw9PWUpcmV0dXJue307dmFyIHQscixvPXt9LGE9T2JqZWN0LmtleXMoZSk7Zm9yKHI9MDtyPGEubGVuZ3RoO3IrKyl0PWFbcl0sbi5pbmRleE9mKHQpPj0wfHwob1t0XT1lW3RdKTtyZXR1cm4gb30oZSxuKTtpZihPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKXt2YXIgYT1PYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKGUpO2ZvcihyPTA7cjxhLmxlbmd0aDtyKyspdD1hW3JdLCEobi5pbmRleE9mKHQpPj0wKSYmT2JqZWN0LnByb3RvdHlwZS5wcm9wZXJ0eUlzRW51bWVyYWJsZS5jYWxsKGUsdCkmJihvW3RdPWVbdF0pfXJldHVybiBvfShlLFtcImNoaWxkcmVuXCIsXCJvbkNsb3NlXCIsXCJmb290ZXJcIl0pO3JldHVybigwLHkuanN4cykoXCJkaXZcIix7Y2xhc3NOYW1lOlwiZXJyb3Itb3ZlcmxheS1kaWFsb2ctY29udGFpbmVyXCIsY2hpbGRyZW46WygwLHkuanN4KShlWiwobj1mdW5jdGlvbihlKXtmb3IodmFyIG49MTtuPGFyZ3VtZW50cy5sZW5ndGg7bisrKXt2YXIgdD1udWxsIT1hcmd1bWVudHNbbl0/YXJndW1lbnRzW25dOnt9LHI9T2JqZWN0LmtleXModCk7XCJmdW5jdGlvblwiPT10eXBlb2YgT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyYmKHI9ci5jb25jYXQoT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyh0KS5maWx0ZXIoZnVuY3Rpb24oZSl7cmV0dXJuIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IodCxlKS5lbnVtZXJhYmxlfSkpKSxyLmZvckVhY2goZnVuY3Rpb24obil7dmFyIHIsbyxhO3I9ZSxvPW4sYT10W25dLG8gaW4gcj9PYmplY3QuZGVmaW5lUHJvcGVydHkocixvLHt2YWx1ZTphLGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwfSk6cltvXT1hfSl9cmV0dXJuIGV9KHtcImFyaWEtbGFiZWxsZWRieVwiOlwibmV4dGpzX19jb250YWluZXJfZXJyb3JzX2xhYmVsXCIsXCJhcmlhLWRlc2NyaWJlZGJ5XCI6XCJuZXh0anNfX2NvbnRhaW5lcl9lcnJvcnNfZGVzY1wiLGNsYXNzTmFtZTpcImVycm9yLW92ZXJsYXktZGlhbG9nLXNjcm9sbFwiLG9uQ2xvc2U6b30saSksdD10PXtjaGlsZHJlbjpyfSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycz9PYmplY3QuZGVmaW5lUHJvcGVydGllcyhuLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzKHQpKTooZnVuY3Rpb24oZSxuKXt2YXIgdD1PYmplY3Qua2V5cyhlKTtpZihPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKXt2YXIgcj1PYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKGUpO3QucHVzaC5hcHBseSh0LHIpfXJldHVybiB0fSkoT2JqZWN0KHQpKS5mb3JFYWNoKGZ1bmN0aW9uKGUpe09iamVjdC5kZWZpbmVQcm9wZXJ0eShuLGUsT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcih0LGUpKX0pLG4pKSxhXX0pfWZ1bmN0aW9uIG5xKGUpe3ZhciBuPWUuY2hpbGRyZW47cmV0dXJuKDAseS5qc3gpKGVLLHtjbGFzc05hbWU6XCJuZXh0anMtY29udGFpbmVyLWVycm9ycy1oZWFkZXJcIixjaGlsZHJlbjpufSl9ZnVuY3Rpb24gblcoZSl7dmFyIG49ZS5jaGlsZHJlbjtyZXR1cm4oMCx5LmpzeCkoZVkse2NsYXNzTmFtZTpcIm5leHRqcy1jb250YWluZXItZXJyb3JzLWJvZHlcIixjaGlsZHJlbjpufSl9dmFyIG4kPTAsblo9ZnVuY3Rpb24oZSl7dmFyIHIsbyxhPWUuY2xhc3NOYW1lLGk9ZS5jaGlsZHJlbixsPWZ1bmN0aW9uKGUsbil7aWYobnVsbD09ZSlyZXR1cm57fTt2YXIgdCxyLG89ZnVuY3Rpb24oZSxuKXtpZihudWxsPT1lKXJldHVybnt9O3ZhciB0LHIsbz17fSxhPU9iamVjdC5rZXlzKGUpO2ZvcihyPTA7cjxhLmxlbmd0aDtyKyspdD1hW3JdLG4uaW5kZXhPZih0KT49MHx8KG9bdF09ZVt0XSk7cmV0dXJuIG99KGUsbik7aWYoT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyl7dmFyIGE9T2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhlKTtmb3Iocj0wO3I8YS5sZW5ndGg7cisrKXQ9YVtyXSwhKG4uaW5kZXhPZih0KT49MCkmJk9iamVjdC5wcm90b3R5cGUucHJvcGVydHlJc0VudW1lcmFibGUuY2FsbChlLHQpJiYob1t0XT1lW3RdKX1yZXR1cm4gb30oZSxbXCJjbGFzc05hbWVcIixcImNoaWxkcmVuXCJdKTtyZXR1cm4geC51c2VFZmZlY3QoZnVuY3Rpb24oKXtyZXR1cm4gc2V0VGltZW91dChmdW5jdGlvbigpe2lmKCEobiQrKz4wKSl7dmFyIGU9d2luZG93LmlubmVyV2lkdGgtZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmNsaWVudFdpZHRoO2U+MCYmKG49ZG9jdW1lbnQuYm9keS5zdHlsZS5wYWRkaW5nUmlnaHQsZG9jdW1lbnQuYm9keS5zdHlsZS5wYWRkaW5nUmlnaHQ9XCJcIi5jb25jYXQoZSxcInB4XCIpKSx0PWRvY3VtZW50LmJvZHkuc3R5bGUub3ZlcmZsb3csZG9jdW1lbnQuYm9keS5zdHlsZS5vdmVyZmxvdz1cImhpZGRlblwifX0pLGZ1bmN0aW9uKCl7c2V0VGltZW91dChmdW5jdGlvbigpezAhPT1uJCYmMD09LS1uJCYmKHZvaWQgMCE9PW4mJihkb2N1bWVudC5ib2R5LnN0eWxlLnBhZGRpbmdSaWdodD1uLG49dm9pZCAwKSx2b2lkIDAhPT10JiYoZG9jdW1lbnQuYm9keS5zdHlsZS5vdmVyZmxvdz10LHQ9dm9pZCAwKSl9KX19LFtdKSwoMCx5LmpzeCkoXCJkaXZcIiwocj1mdW5jdGlvbihlKXtmb3IodmFyIG49MTtuPGFyZ3VtZW50cy5sZW5ndGg7bisrKXt2YXIgdD1udWxsIT1hcmd1bWVudHNbbl0/YXJndW1lbnRzW25dOnt9LHI9T2JqZWN0LmtleXModCk7XCJmdW5jdGlvblwiPT10eXBlb2YgT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyYmKHI9ci5jb25jYXQoT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyh0KS5maWx0ZXIoZnVuY3Rpb24oZSl7cmV0dXJuIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IodCxlKS5lbnVtZXJhYmxlfSkpKSxyLmZvckVhY2goZnVuY3Rpb24obil7dmFyIHIsbyxhO3I9ZSxvPW4sYT10W25dLG8gaW4gcj9PYmplY3QuZGVmaW5lUHJvcGVydHkocixvLHt2YWx1ZTphLGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwfSk6cltvXT1hfSl9cmV0dXJuIGV9KHtcImRhdGEtbmV4dGpzLWRpYWxvZy1vdmVybGF5XCI6ITAsY2xhc3NOYW1lOmF9LGwpLG89bz17Y2hpbGRyZW46aX0sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcnM/T2JqZWN0LmRlZmluZVByb3BlcnRpZXMocixPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycyhvKSk6KGZ1bmN0aW9uKGUsbil7dmFyIHQ9T2JqZWN0LmtleXMoZSk7aWYoT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyl7dmFyIHI9T2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhlKTt0LnB1c2guYXBwbHkodCxyKX1yZXR1cm4gdH0pKE9iamVjdChvKSkuZm9yRWFjaChmdW5jdGlvbihlKXtPYmplY3QuZGVmaW5lUHJvcGVydHkocixlLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IobyxlKSl9KSxyKSl9O2Z1bmN0aW9uIG5ZKGUpe3ZhciBuLHQscj1lLmNoaWxkcmVuLG89ZnVuY3Rpb24oZSxuKXtpZihudWxsPT1lKXJldHVybnt9O3ZhciB0LHIsbz1mdW5jdGlvbihlLG4pe2lmKG51bGw9PWUpcmV0dXJue307dmFyIHQscixvPXt9LGE9T2JqZWN0LmtleXMoZSk7Zm9yKHI9MDtyPGEubGVuZ3RoO3IrKyl0PWFbcl0sbi5pbmRleE9mKHQpPj0wfHwob1t0XT1lW3RdKTtyZXR1cm4gb30oZSxuKTtpZihPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKXt2YXIgYT1PYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKGUpO2ZvcihyPTA7cjxhLmxlbmd0aDtyKyspdD1hW3JdLCEobi5pbmRleE9mKHQpPj0wKSYmT2JqZWN0LnByb3RvdHlwZS5wcm9wZXJ0eUlzRW51bWVyYWJsZS5jYWxsKGUsdCkmJihvW3RdPWVbdF0pfXJldHVybiBvfShlLFtcImNoaWxkcmVuXCJdKTtyZXR1cm4oMCx5LmpzeCkoblosKG49ZnVuY3Rpb24oZSl7Zm9yKHZhciBuPTE7bjxhcmd1bWVudHMubGVuZ3RoO24rKyl7dmFyIHQ9bnVsbCE9YXJndW1lbnRzW25dP2FyZ3VtZW50c1tuXTp7fSxyPU9iamVjdC5rZXlzKHQpO1wiZnVuY3Rpb25cIj09dHlwZW9mIE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMmJihyPXIuY29uY2F0KE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHModCkuZmlsdGVyKGZ1bmN0aW9uKGUpe3JldHVybiBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHQsZSkuZW51bWVyYWJsZX0pKSksci5mb3JFYWNoKGZ1bmN0aW9uKG4pe3ZhciByLG8sYTtyPWUsbz1uLGE9dFtuXSxvIGluIHI/T2JqZWN0LmRlZmluZVByb3BlcnR5KHIsbyx7dmFsdWU6YSxlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMH0pOnJbb109YX0pfXJldHVybiBlfSh7fSxvKSx0PXQ9e2NoaWxkcmVuOnJ9LE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzP09iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKG4sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcnModCkpOihmdW5jdGlvbihlLG4pe3ZhciB0PU9iamVjdC5rZXlzKGUpO2lmKE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMpe3ZhciByPU9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMoZSk7dC5wdXNoLmFwcGx5KHQscil9cmV0dXJuIHR9KShPYmplY3QodCkpLmZvckVhY2goZnVuY3Rpb24oZSl7T2JqZWN0LmRlZmluZVByb3BlcnR5KG4sZSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHQsZSkpfSksbikpfWZ1bmN0aW9uIG5YKGUpe3ZhciBuPU1hdGgubWluKGUuZXJyb3JDb3VudC1lLmFjdGl2ZUlkeC0xLDIpO3JldHVybigwLHkuanN4KShcImRpdlwiLHtcImFyaWEtaGlkZGVuXCI6ITAsY2xhc3NOYW1lOlwiZXJyb3Itb3ZlcmxheS1ib3R0b20tc3RhY2tcIixjaGlsZHJlbjooMCx5LmpzeHMpKFwiZGl2XCIse2NsYXNzTmFtZTpcImVycm9yLW92ZXJsYXktYm90dG9tLXN0YWNrLXN0YWNrXCIsXCJkYXRhLXN0YWNrLWNvdW50XCI6bixjaGlsZHJlbjpbKDAseS5qc3gpKFwiZGl2XCIse2NsYXNzTmFtZTpcImVycm9yLW92ZXJsYXktYm90dG9tLXN0YWNrLWxheWVyIGVycm9yLW92ZXJsYXktYm90dG9tLXN0YWNrLWxheWVyLTFcIixjaGlsZHJlbjpcIjFcIn0pLCgwLHkuanN4KShcImRpdlwiLHtjbGFzc05hbWU6XCJlcnJvci1vdmVybGF5LWJvdHRvbS1zdGFjay1sYXllciBlcnJvci1vdmVybGF5LWJvdHRvbS1zdGFjay1sYXllci0yXCIsY2hpbGRyZW46XCIyXCJ9KV19KX0pfWZ1bmN0aW9uIG5LKGUpe3ZhciBuPWUuZW52aXJvbm1lbnROYW1lO3JldHVybigwLHkuanN4KShcInNwYW5cIix7XCJkYXRhLW5leHRqcy1lbnZpcm9ubWVudC1uYW1lLWxhYmVsXCI6ITAsY2hpbGRyZW46bn0pfXZhciBuUT1fX3dlYnBhY2tfcmVxdWlyZV9fKFwiLi9zcmMvbmV4dC1kZXZ0b29scy9kZXYtb3ZlcmxheS9jb21wb25lbnRzL2Vycm9ycy9kZXYtdG9vbHMtaW5kaWNhdG9yL3V0aWxzLnRzXCIpLG5HPSgwLHguZm9yd2FyZFJlZikoZnVuY3Rpb24oZSxuKXt2YXIgdD1lLnN0b3Ascj1lLmJsdXIsbz1lLnNpZGUsYT1lLnN0eWxlLGk9ZS5oZWlnaHQ7cmV0dXJuKDAseS5qc3gpKFwiZGl2XCIse3JlZjpuLFwiYXJpYS1oaWRkZW5cIjohMCxcImRhdGEtbmV4dGpzLXNjcm9sbC1mYWRlclwiOiEwLGNsYXNzTmFtZTpcIm5leHRqcy1zY3JvbGwtZmFkZXJcIixcImRhdGEtc2lkZVwiOm8sc3R5bGU6ZnVuY3Rpb24oZSl7Zm9yKHZhciBuPTE7bjxhcmd1bWVudHMubGVuZ3RoO24rKyl7dmFyIHQ9bnVsbCE9YXJndW1lbnRzW25dP2FyZ3VtZW50c1tuXTp7fSxyPU9iamVjdC5rZXlzKHQpO1wiZnVuY3Rpb25cIj09dHlwZW9mIE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMmJihyPXIuY29uY2F0KE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHModCkuZmlsdGVyKGZ1bmN0aW9uKGUpe3JldHVybiBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHQsZSkuZW51bWVyYWJsZX0pKSksci5mb3JFYWNoKGZ1bmN0aW9uKG4pe3ZhciByLG8sYTtyPWUsbz1uLGE9dFtuXSxvIGluIHI/T2JqZWN0LmRlZmluZVByb3BlcnR5KHIsbyx7dmFsdWU6YSxlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMH0pOnJbb109YX0pfXJldHVybiBlfSh7XCItLXN0b3BcIjp0LFwiLS1ibHVyXCI6cixcIi0taGVpZ2h0XCI6XCJcIi5jb25jYXQoaSxcInB4XCIpfSxhKX0pfSk7ZnVuY3Rpb24gbkooZSxuKXsobnVsbD09bnx8bj5lLmxlbmd0aCkmJihuPWUubGVuZ3RoKTtmb3IodmFyIHQ9MCxyPUFycmF5KG4pO3Q8bjt0Kyspclt0XT1lW3RdO3JldHVybiByfWZ1bmN0aW9uIG4wKGUsbil7cmV0dXJuIGZ1bmN0aW9uKGUpe2lmKEFycmF5LmlzQXJyYXkoZSkpcmV0dXJuIGV9KGUpfHxmdW5jdGlvbihlLG4pe3ZhciB0LHIsbz1udWxsPT1lP251bGw6XCJ1bmRlZmluZWRcIiE9dHlwZW9mIFN5bWJvbCYmZVtTeW1ib2wuaXRlcmF0b3JdfHxlW1wiQEBpdGVyYXRvclwiXTtpZihudWxsIT1vKXt2YXIgYT1bXSxpPSEwLGw9ITE7dHJ5e2ZvcihvPW8uY2FsbChlKTshKGk9KHQ9by5uZXh0KCkpLmRvbmUpJiYoYS5wdXNoKHQudmFsdWUpLCFufHxhLmxlbmd0aCE9PW4pO2k9ITApO31jYXRjaChlKXtsPSEwLHI9ZX1maW5hbGx5e3RyeXtpfHxudWxsPT1vLnJldHVybnx8by5yZXR1cm4oKX1maW5hbGx5e2lmKGwpdGhyb3cgcn19cmV0dXJuIGF9fShlLG4pfHxmdW5jdGlvbihlLG4pe2lmKGUpe2lmKFwic3RyaW5nXCI9PXR5cGVvZiBlKXJldHVybiBuSihlLG4pO3ZhciB0PU9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChlKS5zbGljZSg4LC0xKTtpZihcIk9iamVjdFwiPT09dCYmZS5jb25zdHJ1Y3RvciYmKHQ9ZS5jb25zdHJ1Y3Rvci5uYW1lKSxcIk1hcFwiPT09dHx8XCJTZXRcIj09PXQpcmV0dXJuIEFycmF5LmZyb20odCk7aWYoXCJBcmd1bWVudHNcIj09PXR8fC9eKD86VWl8SSludCg/Ojh8MTZ8MzIpKD86Q2xhbXBlZCk/QXJyYXkkLy50ZXN0KHQpKXJldHVybiBuSihlLG4pfX0oZSxuKXx8ZnVuY3Rpb24oKXt0aHJvdyBUeXBlRXJyb3IoXCJJbnZhbGlkIGF0dGVtcHQgdG8gZGVzdHJ1Y3R1cmUgbm9uLWl0ZXJhYmxlIGluc3RhbmNlLlxcXFxuSW4gb3JkZXIgdG8gYmUgaXRlcmFibGUsIG5vbi1hcnJheSBvYmplY3RzIG11c3QgaGF2ZSBhIFtTeW1ib2wuaXRlcmF0b3JdKCkgbWV0aG9kLlwiKX0oKX12YXIgbjE9KDAseC5mb3J3YXJkUmVmKShmdW5jdGlvbihlLG4pe3ZhciB0LHIsbyxhLGksbCxzLGMsdSxkLGY9ZS5jaGlsZHJlbixwPWUubWVhc3VyZSxoPWZ1bmN0aW9uKGUsbil7aWYobnVsbD09ZSlyZXR1cm57fTt2YXIgdCxyLG89ZnVuY3Rpb24oZSxuKXtpZihudWxsPT1lKXJldHVybnt9O3ZhciB0LHIsbz17fSxhPU9iamVjdC5rZXlzKGUpO2ZvcihyPTA7cjxhLmxlbmd0aDtyKyspdD1hW3JdLG4uaW5kZXhPZih0KT49MHx8KG9bdF09ZVt0XSk7cmV0dXJuIG99KGUsbik7aWYoT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyl7dmFyIGE9T2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhlKTtmb3Iocj0wO3I8YS5sZW5ndGg7cisrKXQ9YVtyXSwhKG4uaW5kZXhPZih0KT49MCkmJk9iamVjdC5wcm90b3R5cGUucHJvcGVydHlJc0VudW1lcmFibGUuY2FsbChlLHQpJiYob1t0XT1lW3RdKX1yZXR1cm4gb30oZSxbXCJjaGlsZHJlblwiLFwibWVhc3VyZVwiXSksZz0oMCx4LnVzZVJlZikobnVsbCksbT1uMCgodD1nLHI9cCxhPShvPW4wKCgwLHgudXNlU3RhdGUpKDApLDIpKVswXSxpPW9bMV0scz0obD1uMCgoMCx4LnVzZVN0YXRlKSghMCksMikpWzBdLGM9bFsxXSwoMCx4LnVzZUVmZmVjdCkoZnVuY3Rpb24oKXtpZihyKXt2YXIgZSxuPXQuY3VycmVudDtpZihuKXt2YXIgbz1uZXcgUmVzaXplT2JzZXJ2ZXIoZnVuY3Rpb24obil7dmFyIHQ9bjAobiwxKVswXS5jb250ZW50UmVjdDtjbGVhclRpbWVvdXQoZSksZT13aW5kb3cuc2V0VGltZW91dChmdW5jdGlvbigpe2MoITEpfSwxMDApLGkodC5oZWlnaHQpfSk7cmV0dXJuIG8ub2JzZXJ2ZShuKSxmdW5jdGlvbigpe3JldHVybiBvLmRpc2Nvbm5lY3QoKX19fX0sW3JdKSxbYSxzXSksMiksdj1tWzBdLGI9bVsxXTtyZXR1cm4oMCx5LmpzeCkoXCJkaXZcIiwodT1mdW5jdGlvbihlKXtmb3IodmFyIG49MTtuPGFyZ3VtZW50cy5sZW5ndGg7bisrKXt2YXIgdD1udWxsIT1hcmd1bWVudHNbbl0/YXJndW1lbnRzW25dOnt9LHI9T2JqZWN0LmtleXModCk7XCJmdW5jdGlvblwiPT10eXBlb2YgT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyYmKHI9ci5jb25jYXQoT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyh0KS5maWx0ZXIoZnVuY3Rpb24oZSl7cmV0dXJuIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IodCxlKS5lbnVtZXJhYmxlfSkpKSxyLmZvckVhY2goZnVuY3Rpb24obil7dmFyIHIsbyxhO3I9ZSxvPW4sYT10W25dLG8gaW4gcj9PYmplY3QuZGVmaW5lUHJvcGVydHkocixvLHt2YWx1ZTphLGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwfSk6cltvXT1hfSl9cmV0dXJuIGV9KHt9LGgpLGQ9ZD17cmVmOm4sc3R5bGU6e2hlaWdodDpiP1wiYXV0b1wiOnYsdHJhbnNpdGlvbjpcImhlaWdodCAyNTBtcyB2YXIoLS10aW1pbmctc3dpZnQpXCJ9LGNoaWxkcmVuOigwLHkuanN4KShcImRpdlwiLHtyZWY6ZyxjaGlsZHJlbjpmfSl9LE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzP09iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKHUsT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcnMoZCkpOihmdW5jdGlvbihlLG4pe3ZhciB0PU9iamVjdC5rZXlzKGUpO2lmKE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMpe3ZhciByPU9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMoZSk7dC5wdXNoLmFwcGx5KHQscil9cmV0dXJuIHR9KShPYmplY3QoZCkpLmZvckVhY2goZnVuY3Rpb24oZSl7T2JqZWN0LmRlZmluZVByb3BlcnR5KHUsZSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGQsZSkpfSksdSkpfSk7ZnVuY3Rpb24gbjIoZSl7dmFyIG49ZS5maXhlZCx0PWZ1bmN0aW9uKGUsbil7aWYobnVsbD09ZSlyZXR1cm57fTt2YXIgdCxyLG89ZnVuY3Rpb24oZSxuKXtpZihudWxsPT1lKXJldHVybnt9O3ZhciB0LHIsbz17fSxhPU9iamVjdC5rZXlzKGUpO2ZvcihyPTA7cjxhLmxlbmd0aDtyKyspdD1hW3JdLG4uaW5kZXhPZih0KT49MHx8KG9bdF09ZVt0XSk7cmV0dXJuIG99KGUsbik7aWYoT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyl7dmFyIGE9T2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhlKTtmb3Iocj0wO3I8YS5sZW5ndGg7cisrKXQ9YVtyXSwhKG4uaW5kZXhPZih0KT49MCkmJk9iamVjdC5wcm90b3R5cGUucHJvcGVydHlJc0VudW1lcmFibGUuY2FsbChlLHQpJiYob1t0XT1lW3RdKX1yZXR1cm4gb30oZSxbXCJmaXhlZFwiXSk7cmV0dXJuKDAseS5qc3gpKFwiZGl2XCIsZnVuY3Rpb24oZSl7Zm9yKHZhciBuPTE7bjxhcmd1bWVudHMubGVuZ3RoO24rKyl7dmFyIHQ9bnVsbCE9YXJndW1lbnRzW25dP2FyZ3VtZW50c1tuXTp7fSxyPU9iamVjdC5rZXlzKHQpO1wiZnVuY3Rpb25cIj09dHlwZW9mIE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMmJihyPXIuY29uY2F0KE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHModCkuZmlsdGVyKGZ1bmN0aW9uKGUpe3JldHVybiBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHQsZSkuZW51bWVyYWJsZX0pKSksci5mb3JFYWNoKGZ1bmN0aW9uKG4pe3ZhciByLG8sYTtyPWUsbz1uLGE9dFtuXSxvIGluIHI/T2JqZWN0LmRlZmluZVByb3BlcnR5KHIsbyx7dmFsdWU6YSxlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMH0pOnJbb109YX0pfXJldHVybiBlfSh7XCJkYXRhLW5leHRqcy1kaWFsb2ctYmFja2Ryb3BcIjohMCxcImRhdGEtbmV4dGpzLWRpYWxvZy1iYWNrZHJvcC1maXhlZFwiOiEhbnx8dm9pZCAwfSx0KSl9ZnVuY3Rpb24gbjQoZSxuKXsobnVsbD09bnx8bj5lLmxlbmd0aCkmJihuPWUubGVuZ3RoKTtmb3IodmFyIHQ9MCxyPUFycmF5KG4pO3Q8bjt0Kyspclt0XT1lW3RdO3JldHVybiByfWZ1bmN0aW9uIG41KGUpe2Zvcih2YXIgbj0xO248YXJndW1lbnRzLmxlbmd0aDtuKyspe3ZhciB0PW51bGwhPWFyZ3VtZW50c1tuXT9hcmd1bWVudHNbbl06e30scj1PYmplY3Qua2V5cyh0KTtcImZ1bmN0aW9uXCI9PXR5cGVvZiBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzJiYocj1yLmNvbmNhdChPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKHQpLmZpbHRlcihmdW5jdGlvbihlKXtyZXR1cm4gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcih0LGUpLmVudW1lcmFibGV9KSkpLHIuZm9yRWFjaChmdW5jdGlvbihuKXt2YXIgcixvLGE7cj1lLG89bixhPXRbbl0sbyBpbiByP09iamVjdC5kZWZpbmVQcm9wZXJ0eShyLG8se3ZhbHVlOmEsZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITB9KTpyW29dPWF9KX1yZXR1cm4gZX1mdW5jdGlvbiBuMyhlLG4pe3JldHVybiBuPW51bGwhPW4/bjp7fSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycz9PYmplY3QuZGVmaW5lUHJvcGVydGllcyhlLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzKG4pKTooZnVuY3Rpb24oZSxuKXt2YXIgdD1PYmplY3Qua2V5cyhlKTtpZihPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKXt2YXIgcj1PYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKGUpO3QucHVzaC5hcHBseSh0LHIpfXJldHVybiB0fSkoT2JqZWN0KG4pKS5mb3JFYWNoKGZ1bmN0aW9uKHQpe09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLHQsT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihuLHQpKX0pLGV9ZnVuY3Rpb24gbjYoZSxuKXtyZXR1cm4gZnVuY3Rpb24oZSl7aWYoQXJyYXkuaXNBcnJheShlKSlyZXR1cm4gZX0oZSl8fGZ1bmN0aW9uKGUsbil7dmFyIHQscixvPW51bGw9PWU/bnVsbDpcInVuZGVmaW5lZFwiIT10eXBlb2YgU3ltYm9sJiZlW1N5bWJvbC5pdGVyYXRvcl18fGVbXCJAQGl0ZXJhdG9yXCJdO2lmKG51bGwhPW8pe3ZhciBhPVtdLGk9ITAsbD0hMTt0cnl7Zm9yKG89by5jYWxsKGUpOyEoaT0odD1vLm5leHQoKSkuZG9uZSkmJihhLnB1c2godC52YWx1ZSksIW58fGEubGVuZ3RoIT09bik7aT0hMCk7fWNhdGNoKGUpe2w9ITAscj1lfWZpbmFsbHl7dHJ5e2l8fG51bGw9PW8ucmV0dXJufHxvLnJldHVybigpfWZpbmFsbHl7aWYobCl0aHJvdyByfX1yZXR1cm4gYX19KGUsbil8fGZ1bmN0aW9uKGUsbil7aWYoZSl7aWYoXCJzdHJpbmdcIj09dHlwZW9mIGUpcmV0dXJuIG40KGUsbik7dmFyIHQ9T2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKGUpLnNsaWNlKDgsLTEpO2lmKFwiT2JqZWN0XCI9PT10JiZlLmNvbnN0cnVjdG9yJiYodD1lLmNvbnN0cnVjdG9yLm5hbWUpLFwiTWFwXCI9PT10fHxcIlNldFwiPT09dClyZXR1cm4gQXJyYXkuZnJvbSh0KTtpZihcIkFyZ3VtZW50c1wiPT09dHx8L14oPzpVaXxJKW50KD86OHwxNnwzMikoPzpDbGFtcGVkKT9BcnJheSQvLnRlc3QodCkpcmV0dXJuIG40KGUsbil9fShlLG4pfHxmdW5jdGlvbigpe3Rocm93IFR5cGVFcnJvcihcIkludmFsaWQgYXR0ZW1wdCB0byBkZXN0cnVjdHVyZSBub24taXRlcmFibGUgaW5zdGFuY2UuXFxcXG5JbiBvcmRlciB0byBiZSBpdGVyYWJsZSwgbm9uLWFycmF5IG9iamVjdHMgbXVzdCBoYXZlIGEgW1N5bWJvbC5pdGVyYXRvcl0oKSBtZXRob2QuXCIpfSgpfWZ1bmN0aW9uIG45KGUpe3ZhciBuPWUuZXJyb3JNZXNzYWdlLHQ9ZS5lcnJvclR5cGUscj1lLmNoaWxkcmVuLG89ZS5lcnJvckNvZGUsYT1lLmVycm9yQ291bnQsaT1lLmVycm9yLGw9ZS5kZWJ1Z0luZm8scz1lLmlzQnVpbGRFcnJvcixjPWUub25DbG9zZSx1PWUudmVyc2lvbkluZm8sZD1lLnJ1bnRpbWVFcnJvcnMsZj1lLmFjdGl2ZUlkeCxwPWUuc2V0QWN0aXZlSW5kZXgsaD1lLmlzVHVyYm9wYWNrLGc9ZS5kaWFsb2dSZXNpemVyUmVmLG09ZS5yZW5kZXJlZCx2PXZvaWQgMD09PW18fG0sYj1lLnRyYW5zaXRpb25EdXJhdGlvbk1zLHc9e1wiZGF0YS1yZW5kZXJlZFwiOnYsc3R5bGU6e1wiLS10cmFuc2l0aW9uLWR1cmF0aW9uXCI6XCJcIi5jb25jYXQoYixcIm1zXCIpfX0saj1uNih4LnVzZVN0YXRlKCEhYiksMiksaz1qWzBdLEE9alsxXSxPPXgudXNlUmVmKG51bGwpLEM9ISFvLFM9eC51c2VSZWYobnVsbCk7cmV0dXJuKDAsblEuUDUpKFMsbnVsbCx2KSwoMCx5LmpzeHMpKG5ZLG4zKG41KHt9LHcpLHtjaGlsZHJlbjpbKDAseS5qc3gpKG4yLHtmaXhlZDpzfSksKDAseS5qc3hzKShcImRpdlwiLG4zKG41KHtcImRhdGEtbmV4dGpzLWRpYWxvZy1yb290XCI6ITAsb25UcmFuc2l0aW9uRW5kOmZ1bmN0aW9uKGUpe3ZhciBuPWUucHJvcGVydHlOYW1lLHQ9ZS50YXJnZXQ7XCJzY2FsZVwiPT09biYmdD09PVMuY3VycmVudCYmQSghMSl9LHJlZjpTfSx3KSx7Y2hpbGRyZW46WygwLHkuanN4KShuSCx7cnVudGltZUVycm9yczpkLGFjdGl2ZUlkeDpmLHNldEFjdGl2ZUluZGV4OnAsdmVyc2lvbkluZm86dSxpc1R1cmJvcGFjazpofSksKDAseS5qc3hzKShuVix7b25DbG9zZTpjLGRpYWxvZ1Jlc2l6ZXJSZWY6ZyxcImRhdGEtaGFzLWZvb3RlclwiOkMsb25TY3JvbGw6ZnVuY3Rpb24oZSl7aWYoTy5jdXJyZW50KXt2YXIgbix0LHI9KG49ZS5jdXJyZW50VGFyZ2V0LnNjcm9sbFRvcC8xNyxNYXRoLm1pbihNYXRoLm1heChuLCh0PW42KFswLDFdLDIpKVswXSksdFsxXSkpO08uY3VycmVudC5zdHlsZS5vcGFjaXR5PVN0cmluZyhyKX19LGZvb3RlcjpDJiYoMCx5LmpzeCkoblMse2Vycm9yQ29kZTpvfSksY2hpbGRyZW46WygwLHkuanN4KShuMSx7cmVmOmcsbWVhc3VyZTohayxcImRhdGEtbmV4dGpzLWRpYWxvZy1zaXplclwiOiEwLGNoaWxkcmVuOigwLHkuanN4cykoZVgse2NoaWxkcmVuOlsoMCx5LmpzeHMpKG5xLHtjaGlsZHJlbjpbKDAseS5qc3hzKShcImRpdlwiLHtjbGFzc05hbWU6XCJuZXh0anNfX2NvbnRhaW5lcl9lcnJvcnNfX2Vycm9yX3RpdGxlXCIsXCJkYXRhLW5leHRqcy1lcnJvci1jb2RlXCI6byxjaGlsZHJlbjpbKDAseS5qc3hzKShcInNwYW5cIix7XCJkYXRhLW5leHRqcy1lcnJvci1sYWJlbC1ncm91cFwiOiEwLGNoaWxkcmVuOlsoMCx5LmpzeCkobkwse2Vycm9yVHlwZTp0fSksaS5lbnZpcm9ubWVudE5hbWUmJigwLHkuanN4KShuSyx7ZW52aXJvbm1lbnROYW1lOmkuZW52aXJvbm1lbnROYW1lfSldfSksKDAseS5qc3gpKG54LHtlcnJvcjppLGRlYnVnSW5mbzpsfSldfSksKDAseS5qc3gpKG56LHtlcnJvck1lc3NhZ2U6bn0pXX0pLCgwLHkuanN4KShuVyx7Y2hpbGRyZW46cn0pXX0pfSksKDAseS5qc3gpKG5YLHtlcnJvckNvdW50OmEsYWN0aXZlSWR4Om51bGwhPWY/ZjowfSldfSksKDAseS5qc3gpKG5HLHtyZWY6TyxzaWRlOlwidG9wXCIsc3RvcDpcIjUwJVwiLGJsdXI6XCI0cHhcIixoZWlnaHQ6NDh9KV19KSldfSkpfXZhciBuOD1cIlxcbiAgXCIuY29uY2F0KFwiXFxuICBbZGF0YS1uZXh0anMtZGlhbG9nLW92ZXJsYXldIHtcXG4gICAgcGFkZGluZzogaW5pdGlhbDtcXG4gICAgdG9wOiAxMHZoO1xcbiAgfVxcblwiLFwiXFxuICBcIikuY29uY2F0KFwiXFxuICAuZXJyb3Itb3ZlcmxheS1kaWFsb2ctY29udGFpbmVyIHtcXG4gICAgLXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7XFxuICAgIGRpc3BsYXk6IGZsZXg7XFxuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XFxuICAgIGJhY2tncm91bmQ6IHZhcigtLWNvbG9yLWJhY2tncm91bmQtMTAwKTtcXG4gICAgYmFja2dyb3VuZC1jbGlwOiBwYWRkaW5nLWJveDtcXG4gICAgYm9yZGVyOiB2YXIoLS1uZXh0LWRpYWxvZy1ib3JkZXItd2lkdGgpIHNvbGlkIHZhcigtLWNvbG9yLWdyYXktNDAwKTtcXG4gICAgYm9yZGVyLXJhZGl1czogMCAwIHZhcigtLW5leHQtZGlhbG9nLXJhZGl1cykgdmFyKC0tbmV4dC1kaWFsb2ctcmFkaXVzKTtcXG4gICAgYm94LXNoYWRvdzogdmFyKC0tc2hhZG93LW1lbnUpO1xcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XFxuICAgIG92ZXJmbG93OiBoaWRkZW47XFxuICB9XFxuXFxuICAuZXJyb3Itb3ZlcmxheS1kaWFsb2ctc2Nyb2xsIHtcXG4gICAgb3ZlcmZsb3cteTogYXV0bztcXG4gICAgaGVpZ2h0OiAxMDAlO1xcbiAgfVxcblwiLFwiXFxuICBcIikuY29uY2F0KFwiXFxuICAubmV4dGpzLWNvbnRhaW5lci1lcnJvcnMtaGVhZGVyIHtcXG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xcbiAgfVxcbiAgLm5leHRqcy1jb250YWluZXItZXJyb3JzLWhlYWRlciA+IGgxIHtcXG4gICAgZm9udC1zaXplOiB2YXIoLS1zaXplLTIwKTtcXG4gICAgbGluZS1oZWlnaHQ6IHZhcigtLXNpemUtMjQpO1xcbiAgICBmb250LXdlaWdodDogYm9sZDtcXG4gICAgbWFyZ2luOiBjYWxjKDE2cHggKiAxLjUpIDA7XFxuICAgIGNvbG9yOiB2YXIoLS1jb2xvci10aXRsZS1oMSk7XFxuICB9XFxuICAubmV4dGpzLWNvbnRhaW5lci1lcnJvcnMtaGVhZGVyIHNtYWxsIHtcXG4gICAgZm9udC1zaXplOiB2YXIoLS1zaXplLTE0KTtcXG4gICAgY29sb3I6IHZhcigtLWNvbG9yLWFjY2VudHMtMSk7XFxuICAgIG1hcmdpbi1sZWZ0OiAxNnB4O1xcbiAgfVxcbiAgLm5leHRqcy1jb250YWluZXItZXJyb3JzLWhlYWRlciBzbWFsbCA+IHNwYW4ge1xcbiAgICBmb250LWZhbWlseTogdmFyKC0tZm9udC1zdGFjay1tb25vc3BhY2UpO1xcbiAgfVxcbiAgLm5leHRqcy1jb250YWluZXItZXJyb3JzLWhlYWRlciA+IGRpdiA+IHNtYWxsIHtcXG4gICAgbWFyZ2luOiAwO1xcbiAgICBtYXJnaW4tdG9wOiA0cHg7XFxuICB9XFxuICAubmV4dGpzLWNvbnRhaW5lci1lcnJvcnMtaGVhZGVyID4gcCA+IGEge1xcbiAgICBjb2xvcjogaW5oZXJpdDtcXG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7XFxuICB9XFxuICAubmV4dGpzLWNvbnRhaW5lci1lcnJvcnMtaGVhZGVyXFxuICAgID4gLm5leHRqcy1jb250YWluZXItYnVpbGQtZXJyb3ItdmVyc2lvbi1zdGF0dXMge1xcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XFxuICAgIHRvcDogMTZweDtcXG4gICAgcmlnaHQ6IDE2cHg7XFxuICB9XFxuXCIsXCJcXG4gIFwiKS5jb25jYXQoXCJcIixcIlxcblxcbiAgXCIpLmNvbmNhdChcIlxcbiAgW2RhdGEtbmV4dGpzLWVycm9yLW92ZXJsYXktbmF2XSB7XFxuICAgIC0tc3Ryb2tlLWNvbG9yOiB2YXIoLS1jb2xvci1ncmF5LTQwMCk7XFxuICAgIC0tYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY29sb3ItYmFja2dyb3VuZC0xMDApO1xcbiAgICBkaXNwbGF5OiBmbGV4O1xcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XFxuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XFxuXFxuICAgIHdpZHRoOiAxMDAlO1xcblxcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XFxuICAgIHotaW5kZXg6IDI7XFxuICAgIG91dGxpbmU6IG5vbmU7XFxuICAgIHRyYW5zbGF0ZTogdmFyKC0tbmV4dC1kaWFsb2ctYm9yZGVyLXdpZHRoKSB2YXIoLS1uZXh0LWRpYWxvZy1ib3JkZXItd2lkdGgpO1xcbiAgICBtYXgtd2lkdGg6IHZhcigtLW5leHQtZGlhbG9nLW1heC13aWR0aCk7XFxuXFxuICAgIC5lcnJvci1vdmVybGF5LW5vdGNoIHtcXG4gICAgICB0cmFuc2xhdGU6IGNhbGModmFyKC0tbmV4dC1kaWFsb2ctYm9yZGVyLXdpZHRoKSAqIC0xKTtcXG4gICAgICB3aWR0aDogYXV0bztcXG4gICAgICBoZWlnaHQ6IHZhcigtLW5leHQtZGlhbG9nLW5vdGNoLWhlaWdodCk7XFxuICAgICAgcGFkZGluZzogMTJweDtcXG4gICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1iYWNrZ3JvdW5kLWNvbG9yKTtcXG4gICAgICBib3JkZXI6IHZhcigtLW5leHQtZGlhbG9nLWJvcmRlci13aWR0aCkgc29saWQgdmFyKC0tc3Ryb2tlLWNvbG9yKTtcXG4gICAgICBib3JkZXItYm90dG9tOiBub25lO1xcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcXG5cXG4gICAgICAmW2RhdGEtc2lkZT0nbGVmdCddIHtcXG4gICAgICAgIHBhZGRpbmctcmlnaHQ6IDA7XFxuICAgICAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1uZXh0LWRpYWxvZy1yYWRpdXMpIDAgMCAwO1xcblxcbiAgICAgICAgLmVycm9yLW92ZXJsYXktbm90Y2gtdGFpbCB7XFxuICAgICAgICAgIHJpZ2h0OiAtNTRweDtcXG4gICAgICAgIH1cXG5cXG4gICAgICAgID4gKjpub3QoLmVycm9yLW92ZXJsYXktbm90Y2gtdGFpbCkge1xcbiAgICAgICAgICBtYXJnaW4tcmlnaHQ6IC0xMHB4O1xcbiAgICAgICAgfVxcbiAgICAgIH1cXG5cXG4gICAgICAmW2RhdGEtc2lkZT0ncmlnaHQnXSB7XFxuICAgICAgICBwYWRkaW5nLWxlZnQ6IDA7XFxuICAgICAgICBib3JkZXItcmFkaXVzOiAwIHZhcigtLW5leHQtZGlhbG9nLXJhZGl1cykgMCAwO1xcblxcbiAgICAgICAgLmVycm9yLW92ZXJsYXktbm90Y2gtdGFpbCB7XFxuICAgICAgICAgIGxlZnQ6IC01NHB4O1xcbiAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZVkoMTgwZGVnKTtcXG4gICAgICAgIH1cXG5cXG4gICAgICAgID4gKjpub3QoLmVycm9yLW92ZXJsYXktbm90Y2gtdGFpbCkge1xcbiAgICAgICAgICBtYXJnaW4tbGVmdDogLTEycHg7XFxuICAgICAgICB9XFxuICAgICAgfVxcblxcbiAgICAgIC5lcnJvci1vdmVybGF5LW5vdGNoLXRhaWwge1xcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xcbiAgICAgICAgdG9wOiBjYWxjKHZhcigtLW5leHQtZGlhbG9nLWJvcmRlci13aWR0aCkgKiAtMSk7XFxuICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcXG4gICAgICAgIHotaW5kZXg6IC0xO1xcbiAgICAgICAgaGVpZ2h0OiBjYWxjKDEwMCUgKyB2YXIoLS1uZXh0LWRpYWxvZy1ib3JkZXItd2lkdGgpKTtcXG4gICAgICB9XFxuICAgIH1cXG4gIH1cXG5cXG4gIEBtZWRpYSAobWF4LXdpZHRoOiA2MDBweCkge1xcbiAgICBbZGF0YS1uZXh0anMtZXJyb3Itb3ZlcmxheS1uYXZdIHtcXG4gICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1iYWNrZ3JvdW5kLWNvbG9yKTtcXG4gICAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1uZXh0LWRpYWxvZy1yYWRpdXMpIHZhcigtLW5leHQtZGlhbG9nLXJhZGl1cykgMCAwO1xcbiAgICAgIGJvcmRlcjogdmFyKC0tbmV4dC1kaWFsb2ctYm9yZGVyLXdpZHRoKSBzb2xpZCB2YXIoLS1zdHJva2UtY29sb3IpO1xcbiAgICAgIGJvcmRlci1ib3R0b206IG5vbmU7XFxuICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcXG4gICAgICB0cmFuc2xhdGU6IDAgdmFyKC0tbmV4dC1kaWFsb2ctYm9yZGVyLXdpZHRoKTtcXG4gICAgICBcXG4gICAgICAuZXJyb3Itb3ZlcmxheS1ub3RjaCB7XFxuICAgICAgICBib3JkZXItcmFkaXVzOiAwO1xcbiAgICAgICAgYm9yZGVyOiAwO1xcblxcbiAgICAgICAgJltkYXRhLXNpZGU9XFxcImxlZnRcXFwiXSwgJltkYXRhLXNpZGU9XFxcInJpZ2h0XFxcIl0ge1xcbiAgICAgICAgICBib3JkZXItcmFkaXVzOiAwO1xcbiAgICAgICAgfVxcblxcbiAgICAgICAgLmVycm9yLW92ZXJsYXktbm90Y2gtdGFpbCB7XFxuICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XFxuICAgICAgICB9XFxuICAgICAgfVxcbiAgICB9XFxuICB9XFxuXCIsXCJcXG4gIFwiKS5jb25jYXQoXCJcXG4gIC5uZXh0anNfX2NvbnRhaW5lcl9lcnJvcnNfbGFiZWwge1xcbiAgICBwYWRkaW5nOiAycHggNnB4O1xcbiAgICBtYXJnaW46IDA7XFxuICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLXJvdW5kZWQtbWQtMik7XFxuICAgIGJhY2tncm91bmQ6IHZhcigtLWNvbG9yLXJlZC0xMDApO1xcbiAgICBmb250LXdlaWdodDogNjAwO1xcbiAgICBmb250LXNpemU6IHZhcigtLXNpemUtMTIpO1xcbiAgICBjb2xvcjogdmFyKC0tY29sb3ItcmVkLTkwMCk7XFxuICAgIGZvbnQtZmFtaWx5OiB2YXIoLS1mb250LXN0YWNrLW1vbm9zcGFjZSk7XFxuICAgIGxpbmUtaGVpZ2h0OiB2YXIoLS1zaXplLTIwKTtcXG4gIH1cXG5cIixcIlxcbiAgXCIpLmNvbmNhdChcIlxcbiAgLm5leHRqc19fY29udGFpbmVyX2Vycm9yc193cmFwcGVyIHtcXG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xcbiAgfVxcblxcbiAgLm5leHRqc19fY29udGFpbmVyX2Vycm9yc19kZXNjIHtcXG4gICAgbWFyZ2luOiAwO1xcbiAgICBtYXJnaW4tbGVmdDogNHB4O1xcbiAgICBjb2xvcjogdmFyKC0tY29sb3ItcmVkLTkwMCk7XFxuICAgIGZvbnQtd2VpZ2h0OiA1MDA7XFxuICAgIGZvbnQtc2l6ZTogdmFyKC0tc2l6ZS0xNik7XFxuICAgIGxldHRlci1zcGFjaW5nOiAtMC4zMnB4O1xcbiAgICBsaW5lLWhlaWdodDogdmFyKC0tc2l6ZS0yNCk7XFxuICAgIG92ZXJmbG93LXdyYXA6IGJyZWFrLXdvcmQ7XFxuICAgIHdoaXRlLXNwYWNlOiBwcmUtd3JhcDtcXG4gIH1cXG5cXG4gIC5uZXh0anNfX2NvbnRhaW5lcl9lcnJvcnNfZGVzYy50cnVuY2F0ZWQge1xcbiAgICBtYXgtaGVpZ2h0OiAyMDBweDtcXG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcXG4gIH1cXG5cXG4gIC5uZXh0anNfX2NvbnRhaW5lcl9lcnJvcnNfZ3JhZGllbnRfb3ZlcmxheSB7XFxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcXG4gICAgYm90dG9tOiAwO1xcbiAgICBsZWZ0OiAwO1xcbiAgICByaWdodDogMDtcXG4gICAgaGVpZ2h0OiA4NXB4O1xcbiAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoXFxuICAgICAgMTgwZGVnLFxcbiAgICAgIHJnYmEoMjUwLCAyNTAsIDI1MCwgMCkgMCUsXFxuICAgICAgdmFyKC0tY29sb3ItYmFja2dyb3VuZC0xMDApIDEwMCVcXG4gICAgKTtcXG4gIH1cXG5cXG4gIC5uZXh0anNfX2NvbnRhaW5lcl9lcnJvcnNfZXhwYW5kX2J1dHRvbiB7XFxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcXG4gICAgYm90dG9tOiAxMHB4O1xcbiAgICBsZWZ0OiA1MCU7XFxuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKTtcXG4gICAgZGlzcGxheTogZmxleDtcXG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcXG4gICAgcGFkZGluZzogNnB4IDhweDtcXG4gICAgYmFja2dyb3VuZDogdmFyKC0tY29sb3ItYmFja2dyb3VuZC0xMDApO1xcbiAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1jb2xvci1ncmF5LWFscGhhLTQwMCk7XFxuICAgIGJvcmRlci1yYWRpdXM6IDk5OXB4O1xcbiAgICBib3gtc2hhZG93OlxcbiAgICAgIDBweCAycHggMnB4IHZhcigtLWNvbG9yLWdyYXktYWxwaGEtMTAwKSxcXG4gICAgICAwcHggOHB4IDhweCAtOHB4IHZhcigtLWNvbG9yLWdyYXktYWxwaGEtMTAwKTtcXG4gICAgZm9udC1zaXplOiB2YXIoLS1zaXplLTEzKTtcXG4gICAgY3Vyc29yOiBwb2ludGVyO1xcbiAgICBjb2xvcjogdmFyKC0tY29sb3ItZ3JheS05MDApO1xcbiAgICBmb250LXdlaWdodDogNTAwO1xcbiAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIDAuMnMgZWFzZTtcXG4gIH1cXG5cXG4gIC5uZXh0anNfX2NvbnRhaW5lcl9lcnJvcnNfZXhwYW5kX2J1dHRvbjpob3ZlciB7XFxuICAgIGJhY2tncm91bmQ6IHZhcigtLWNvbG9yLWdyYXktMTAwKTtcXG4gIH1cXG5cIixcIlxcbiAgXCIpLmNvbmNhdChcIlxcbiAgLmVycm9yLW92ZXJsYXktdG9vbGJhciB7XFxuICAgIGRpc3BsYXk6IGZsZXg7XFxuICAgIGdhcDogNnB4O1xcbiAgfVxcblxcbiAgLm5vZGVqcy1pbnNwZWN0b3ItYnV0dG9uLFxcbiAgLmNvcHktc3RhY2stdHJhY2UtYnV0dG9uLFxcbiAgLmRvY3MtbGluay1idXR0b24ge1xcbiAgICBkaXNwbGF5OiBmbGV4O1xcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcXG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcXG5cXG4gICAgd2lkdGg6IHZhcigtLXNpemUtMjgpO1xcbiAgICBoZWlnaHQ6IHZhcigtLXNpemUtMjgpO1xcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1jb2xvci1iYWNrZ3JvdW5kLTEwMCk7XFxuICAgIGJhY2tncm91bmQtY2xpcDogcGFkZGluZy1ib3g7XFxuICAgIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWNvbG9yLWdyYXktYWxwaGEtNDAwKTtcXG4gICAgYm94LXNoYWRvdzogdmFyKC0tc2hhZG93LXNtYWxsKTtcXG4gICAgYm9yZGVyLXJhZGl1czogdmFyKC0tcm91bmRlZC1mdWxsKTtcXG5cXG4gICAgc3ZnIHtcXG4gICAgICB3aWR0aDogdmFyKC0tc2l6ZS0xNCk7XFxuICAgICAgaGVpZ2h0OiB2YXIoLS1zaXplLTE0KTtcXG4gICAgfVxcblxcbiAgICAmOmZvY3VzIHtcXG4gICAgICBvdXRsaW5lOiB2YXIoLS1mb2N1cy1yaW5nKTtcXG4gICAgfVxcblxcbiAgICAmOm5vdCg6ZGlzYWJsZWQpOmhvdmVyIHtcXG4gICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1jb2xvci1ncmF5LWFscGhhLTEwMCk7XFxuICAgIH1cXG5cXG4gICAgJjpub3QoOmRpc2FibGVkKTphY3RpdmUge1xcbiAgICAgIGJhY2tncm91bmQ6IHZhcigtLWNvbG9yLWdyYXktYWxwaGEtMjAwKTtcXG4gICAgfVxcblxcbiAgICAmOmRpc2FibGVkIHtcXG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jb2xvci1ncmF5LTEwMCk7XFxuICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcXG4gICAgfVxcbiAgfVxcblxcbiAgLmVycm9yLW92ZXJsYXktdG9vbGJhci1idXR0b24taWNvbiB7XFxuICAgIGNvbG9yOiB2YXIoLS1jb2xvci1ncmF5LTkwMCk7XFxuICB9XFxuXCIsXCJcXG5cXG4gIFtkYXRhLW5leHRqcy1lcnJvci1sYWJlbC1ncm91cF0ge1xcbiAgICBkaXNwbGF5OiBmbGV4O1xcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xcbiAgICBnYXA6IDhweDtcXG4gIH1cXG5cIik7ZnVuY3Rpb24gbjcoZSl7dmFyIG4sdCxyPWUuZmlsZSxvPWUubG9jYXRpb24sYT1lRSh7ZmlsZTpyLGxpbmVOdW1iZXI6bnVsbCE9KG49bnVsbD09bz92b2lkIDA6by5saW5lKT9uOjEsY29sdW1uOm51bGwhPSh0PW51bGw9PW8/dm9pZCAwOm8uY29sdW1uKT90OjB9KTtyZXR1cm4oMCx5LmpzeHMpKFwiZGl2XCIse1wiZGF0YS13aXRoLW9wZW4taW4tZWRpdG9yLWxpbmtcIjohMCxcImRhdGEtd2l0aC1vcGVuLWluLWVkaXRvci1saW5rLWltcG9ydC10cmFjZVwiOiEwLHJvbGU6XCJsaW5rXCIsb25DbGljazphLHRpdGxlOlwiQ2xpY2sgdG8gb3BlbiBpbiB5b3VyIGVkaXRvclwiLGNoaWxkcmVuOltyLG8/XCI6XCIuY29uY2F0KG8ubGluZSxcIjpcIikuY29uY2F0KG8uY29sdW1uKTpudWxsLCgwLHkuanN4cykoXCJzdmdcIix7eG1sbnM6XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiLHZpZXdCb3g6XCIwIDAgMjQgMjRcIixmaWxsOlwibm9uZVwiLHN0cm9rZTpcImN1cnJlbnRDb2xvclwiLHN0cm9rZVdpZHRoOlwiMlwiLHN0cm9rZUxpbmVjYXA6XCJyb3VuZFwiLHN0cm9rZUxpbmVqb2luOlwicm91bmRcIixjaGlsZHJlbjpbKDAseS5qc3gpKFwicGF0aFwiLHtkOlwiTTE4IDEzdjZhMiAyIDAgMCAxLTIgMkg1YTIgMiAwIDAgMS0yLTJWOGEyIDIgMCAwIDEgMi0yaDZcIn0pLCgwLHkuanN4KShcInBvbHlsaW5lXCIse3BvaW50czpcIjE1IDMgMjEgMyAyMSA5XCJ9KSwoMCx5LmpzeCkoXCJsaW5lXCIse3gxOlwiMTBcIix5MTpcIjE0XCIseDI6XCIyMVwiLHkyOlwiM1wifSldfSldfSl9ZnVuY3Rpb24gdGUoZSxuKXsobnVsbD09bnx8bj5lLmxlbmd0aCkmJihuPWUubGVuZ3RoKTtmb3IodmFyIHQ9MCxyPUFycmF5KG4pO3Q8bjt0Kyspclt0XT1lW3RdO3JldHVybiByfXZhciB0bj1mdW5jdGlvbihlKXt2YXIgbix0LHIsbyxhLGksbCxzLGMsdSxkPWUuY29udGVudCxmPXgudXNlTWVtbyhmdW5jdGlvbigpe3ZhciBlLG4sdDtyZXR1cm4gbj1mdW5jdGlvbihlKXt2YXIgbix0LHI9ZS5zaGlmdCgpO2lmKCFyKXJldHVybiBudWxsO3ZhciBvPShuPXIuc3BsaXQoXCI6XCIsMyksdD0zLGZ1bmN0aW9uKGUpe2lmKEFycmF5LmlzQXJyYXkoZSkpcmV0dXJuIGV9KG4pfHxmdW5jdGlvbihlLG4pe3ZhciB0LHIsbz1udWxsPT1lP251bGw6XCJ1bmRlZmluZWRcIiE9dHlwZW9mIFN5bWJvbCYmZVtTeW1ib2wuaXRlcmF0b3JdfHxlW1wiQEBpdGVyYXRvclwiXTtpZihudWxsIT1vKXt2YXIgYT1bXSxpPSEwLGw9ITE7dHJ5e2ZvcihvPW8uY2FsbChlKTshKGk9KHQ9by5uZXh0KCkpLmRvbmUpJiYoYS5wdXNoKHQudmFsdWUpLGEubGVuZ3RoIT09bik7aT0hMCk7fWNhdGNoKGUpe2w9ITAscj1lfWZpbmFsbHl7dHJ5e2l8fG51bGw9PW8ucmV0dXJufHxvLnJldHVybigpfWZpbmFsbHl7aWYobCl0aHJvdyByfX1yZXR1cm4gYX19KG4sMyl8fGZ1bmN0aW9uKGUsbil7aWYoZSl7aWYoXCJzdHJpbmdcIj09dHlwZW9mIGUpcmV0dXJuIHRlKGUsbik7dmFyIHQ9T2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKGUpLnNsaWNlKDgsLTEpO2lmKFwiT2JqZWN0XCI9PT10JiZlLmNvbnN0cnVjdG9yJiYodD1lLmNvbnN0cnVjdG9yLm5hbWUpLFwiTWFwXCI9PT10fHxcIlNldFwiPT09dClyZXR1cm4gQXJyYXkuZnJvbSh0KTtpZihcIkFyZ3VtZW50c1wiPT09dHx8L14oPzpVaXxJKW50KD86OHwxNnwzMikoPzpDbGFtcGVkKT9BcnJheSQvLnRlc3QodCkpcmV0dXJuIHRlKGUsbil9fShuLHQpfHxmdW5jdGlvbigpe3Rocm93IFR5cGVFcnJvcihcIkludmFsaWQgYXR0ZW1wdCB0byBkZXN0cnVjdHVyZSBub24taXRlcmFibGUgaW5zdGFuY2UuXFxcXG5JbiBvcmRlciB0byBiZSBpdGVyYWJsZSwgbm9uLWFycmF5IG9iamVjdHMgbXVzdCBoYXZlIGEgW1N5bWJvbC5pdGVyYXRvcl0oKSBtZXRob2QuXCIpfSgpKSxhPW9bMF0saT1vWzFdLGw9b1syXSxzPU51bWJlcihpKSxjPU51bWJlcihsKSx1PSFOdW1iZXIuaXNOYU4ocykmJiFOdW1iZXIuaXNOYU4oYyk7cmV0dXJue2ZpbGVOYW1lOnU/YTpyLGxvY2F0aW9uOnU/e2xpbmU6cyxjb2x1bW46Y306dm9pZCAwfX0oZT1kLnNwbGl0KFwiXFxuXCIpKSx0PWZ1bmN0aW9uKGUpe2lmKGUuc29tZShmdW5jdGlvbihlKXtyZXR1cm4vUmVhY3RTZXJ2ZXJDb21wb25lbnRzRXJyb3I6Ly50ZXN0KGUpfSl8fGUuc29tZShmdW5jdGlvbihlKXtyZXR1cm4vSW1wb3J0IHRyYWNlIGZvciByZXF1ZXN0ZWQgbW9kdWxlOi8udGVzdChlKX0pKXtmb3IodmFyIG49W107Ly4rXFwuLisvLnRlc3QoZVtlLmxlbmd0aC0xXSkmJiFlW2UubGVuZ3RoLTFdLmluY2x1ZGVzKFwiOlwiKTspe3ZhciB0PWUucG9wKCkudHJpbSgpO24udW5zaGlmdCh0KX1yZXR1cm4gbn1yZXR1cm5bXX0oZSkse2ZpbGU6bixzb3VyY2U6ZS5qb2luKFwiXFxuXCIpLGltcG9ydFRyYWNlRmlsZXM6dH19LFtkXSkscD1mLmZpbGUsaD1mLnNvdXJjZSxnPWYuaW1wb3J0VHJhY2VGaWxlcyxtPXgudXNlTWVtbyhmdW5jdGlvbigpe3JldHVybiBlSCgpLmFuc2lUb0pzb24oaCx7anNvbjohMCx1c2VfY2xhc3NlczohMCxyZW1vdmVfZW1wdHk6ITB9KX0sW2hdKSx2PWVFKHtmaWxlOm51bGw9PXA/dm9pZCAwOnAuZmlsZU5hbWUsbGluZU51bWJlcjpudWxsIT0oaT1udWxsPT1wfHxudWxsPT0obj1wLmxvY2F0aW9uKT92b2lkIDA6bi5saW5lKT9pOjEsY29sdW1uOm51bGwhPShsPW51bGw9PXB8fG51bGw9PSh0PXAubG9jYXRpb24pP3ZvaWQgMDp0LmNvbHVtbik/bDowfSksYj17ZmlsZTpudWxsIT0ocz1udWxsPT1wP3ZvaWQgMDpwLmZpbGVOYW1lKT9zOm51bGwsbWV0aG9kTmFtZTpcIlwiLGFyZ3VtZW50czpbXSxsaW5lTnVtYmVyOm51bGwhPShjPW51bGw9PXB8fG51bGw9PShyPXAubG9jYXRpb24pP3ZvaWQgMDpyLmxpbmUpP2M6bnVsbCxjb2x1bW46bnVsbCE9KHU9bnVsbD09cHx8bnVsbD09KG89cC5sb2NhdGlvbik/dm9pZCAwOm8uY29sdW1uKT91Om51bGx9LHc9bnVsbD09Ynx8bnVsbD09KGE9Yi5maWxlKT92b2lkIDA6YS5zcGxpdChcIi5cIikucG9wKCk7cmV0dXJuKDAseS5qc3hzKShcImRpdlwiLHtcImRhdGEtbmV4dGpzLWNvZGVmcmFtZVwiOiEwLGNoaWxkcmVuOlsoMCx5LmpzeCkoXCJkaXZcIix7Y2xhc3NOYW1lOlwiY29kZS1mcmFtZS1oZWFkZXJcIixjaGlsZHJlbjooMCx5LmpzeHMpKFwiZGl2XCIse2NsYXNzTmFtZTpcImNvZGUtZnJhbWUtbGlua1wiLGNoaWxkcmVuOlsoMCx5LmpzeCkoXCJzcGFuXCIse2NsYXNzTmFtZTpcImNvZGUtZnJhbWUtaWNvblwiLGNoaWxkcmVuOigwLHkuanN4KShlVCx7bGFuZzp3fSl9KSwoMCx5LmpzeCkoXCJzcGFuXCIse1wiZGF0YS10ZXh0XCI6ITAsY2hpbGRyZW46ZVMoYil9KSwoMCx5LmpzeCkoXCJidXR0b25cIix7XCJhcmlhLWxhYmVsXCI6XCJPcGVuIGluIGVkaXRvclwiLFwiZGF0YS13aXRoLW9wZW4taW4tZWRpdG9yLWxpbmstc291cmNlLWZpbGVcIjohMCxvbkNsaWNrOnYsY2hpbGRyZW46KDAseS5qc3gpKFwic3BhblwiLHtjbGFzc05hbWU6XCJjb2RlLWZyYW1lLWljb25cIixcImRhdGEtaWNvblwiOlwicmlnaHRcIixjaGlsZHJlbjooMCx5LmpzeCkoZXose3dpZHRoOjE2LGhlaWdodDoxNn0pfSl9KV19KX0pLCgwLHkuanN4KShcInByZVwiLHtjbGFzc05hbWU6XCJjb2RlLWZyYW1lLXByZVwiLGNoaWxkcmVuOigwLHkuanN4cykoXCJkaXZcIix7Y2xhc3NOYW1lOlwiY29kZS1mcmFtZS1saW5lc1wiLGNoaWxkcmVuOlttLm1hcChmdW5jdGlvbihlLG4pe3JldHVybigwLHkuanN4KShcInNwYW5cIix7c3R5bGU6ZnVuY3Rpb24oZSl7Zm9yKHZhciBuPTE7bjxhcmd1bWVudHMubGVuZ3RoO24rKyl7dmFyIHQ9bnVsbCE9YXJndW1lbnRzW25dP2FyZ3VtZW50c1tuXTp7fSxyPU9iamVjdC5rZXlzKHQpO1wiZnVuY3Rpb25cIj09dHlwZW9mIE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMmJihyPXIuY29uY2F0KE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHModCkuZmlsdGVyKGZ1bmN0aW9uKGUpe3JldHVybiBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHQsZSkuZW51bWVyYWJsZX0pKSksci5mb3JFYWNoKGZ1bmN0aW9uKG4pe3ZhciByLG8sYTtyPWUsbz1uLGE9dFtuXSxvIGluIHI/T2JqZWN0LmRlZmluZVByb3BlcnR5KHIsbyx7dmFsdWU6YSxlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMH0pOnJbb109YX0pfXJldHVybiBlfSh7Y29sb3I6ZS5mZz9cInZhcigtLWNvbG9yLVwiLmNvbmNhdChlLmZnLFwiKVwiKTp2b2lkIDB9LFwiYm9sZFwiPT09ZS5kZWNvcmF0aW9uP3tmb250V2VpZ2h0OjUwMH06XCJpdGFsaWNcIj09PWUuZGVjb3JhdGlvbj97Zm9udFN0eWxlOlwiaXRhbGljXCJ9OnZvaWQgMCksY2hpbGRyZW46KDAseS5qc3gpKGViLHt0ZXh0OmUuY29udGVudH0pfSxcInRlcm1pbmFsLWVudHJ5LVwiLmNvbmNhdChuKSl9KSxnLm1hcChmdW5jdGlvbihlKXtyZXR1cm4oMCx5LmpzeCkobjcse2lzU291cmNlRmlsZTohMSxmaWxlOmV9LGUpfSldfSl9KV19KX0sdHQ9ZnVuY3Rpb24oZSl7dmFyIG49ZS5zcGxpdChcIlxcblwiKTtyZXR1cm4gZVUoKShuWzFdfHxcIlwiKS5yZXBsYWNlKC9eRXJyb3I6IC8sXCJcIil9LHRyPWZ1bmN0aW9uKGUpe3ZhciBuLHQscj1lLm1lc3NhZ2Usbz1mdW5jdGlvbihlLG4pe2lmKG51bGw9PWUpcmV0dXJue307dmFyIHQscixvPWZ1bmN0aW9uKGUsbil7aWYobnVsbD09ZSlyZXR1cm57fTt2YXIgdCxyLG89e30sYT1PYmplY3Qua2V5cyhlKTtmb3Iocj0wO3I8YS5sZW5ndGg7cisrKXQ9YVtyXSxuLmluZGV4T2YodCk+PTB8fChvW3RdPWVbdF0pO3JldHVybiBvfShlLG4pO2lmKE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMpe3ZhciBhPU9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMoZSk7Zm9yKHI9MDtyPGEubGVuZ3RoO3IrKyl0PWFbcl0sIShuLmluZGV4T2YodCk+PTApJiZPYmplY3QucHJvdG90eXBlLnByb3BlcnR5SXNFbnVtZXJhYmxlLmNhbGwoZSx0KSYmKG9bdF09ZVt0XSl9cmV0dXJuIG99KGUsW1wibWVzc2FnZVwiXSksYT0oMCx4LnVzZUNhbGxiYWNrKShmdW5jdGlvbigpe30sW10pLGk9RXJyb3IociksbD0oMCx4LnVzZU1lbW8pKGZ1bmN0aW9uKCl7cmV0dXJuIHR0KHIpfHxcIkZhaWxlZCB0byBjb21waWxlXCJ9LFtyXSk7cmV0dXJuKDAseS5qc3gpKG45LChuPWZ1bmN0aW9uKGUpe2Zvcih2YXIgbj0xO248YXJndW1lbnRzLmxlbmd0aDtuKyspe3ZhciB0PW51bGwhPWFyZ3VtZW50c1tuXT9hcmd1bWVudHNbbl06e30scj1PYmplY3Qua2V5cyh0KTtcImZ1bmN0aW9uXCI9PXR5cGVvZiBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzJiYocj1yLmNvbmNhdChPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKHQpLmZpbHRlcihmdW5jdGlvbihlKXtyZXR1cm4gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcih0LGUpLmVudW1lcmFibGV9KSkpLHIuZm9yRWFjaChmdW5jdGlvbihuKXt2YXIgcixvLGE7cj1lLG89bixhPXRbbl0sbyBpbiByP09iamVjdC5kZWZpbmVQcm9wZXJ0eShyLG8se3ZhbHVlOmEsZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITB9KTpyW29dPWF9KX1yZXR1cm4gZX0oe2Vycm9yVHlwZTpcIkJ1aWxkIEVycm9yXCIsZXJyb3JNZXNzYWdlOmwsb25DbG9zZTphLGVycm9yOml9LG8pLHQ9dD17Y2hpbGRyZW46KDAseS5qc3gpKHRuLHtjb250ZW50OnJ9KX0sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcnM/T2JqZWN0LmRlZmluZVByb3BlcnRpZXMobixPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycyh0KSk6KGZ1bmN0aW9uKGUsbil7dmFyIHQ9T2JqZWN0LmtleXMoZSk7aWYoT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyl7dmFyIHI9T2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhlKTt0LnB1c2guYXBwbHkodCxyKX1yZXR1cm4gdH0pKE9iamVjdCh0KSkuZm9yRWFjaChmdW5jdGlvbihlKXtPYmplY3QuZGVmaW5lUHJvcGVydHkobixlLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IodCxlKSl9KSxuKSl9LHRvPWZ1bmN0aW9uKGUpe3ZhciBuLHQ9ZS5mcmFtZSxyPW51bGwhPShuPXQub3JpZ2luYWxTdGFja0ZyYW1lKT9uOnQuc291cmNlU3RhY2tGcmFtZSxvPSEhdC5vcmlnaW5hbENvZGVGcmFtZSxhPWVFKG8/e2ZpbGU6ci5maWxlLGxpbmVOdW1iZXI6ci5saW5lTnVtYmVyLGNvbHVtbjpyLmNvbHVtbn06dm9pZCAwKSxpPWVTKHIpO3JldHVybiBpPygwLHkuanN4cykoXCJkaXZcIix7XCJkYXRhLW5leHRqcy1jYWxsLXN0YWNrLWZyYW1lXCI6ITAsXCJkYXRhLW5leHRqcy1jYWxsLXN0YWNrLWZyYW1lLW5vLXNvdXJjZVwiOiFvLFwiZGF0YS1uZXh0anMtY2FsbC1zdGFjay1mcmFtZS1pZ25vcmVkXCI6dC5pZ25vcmVkLGNoaWxkcmVuOlsoMCx5LmpzeHMpKFwiZGl2XCIse2NsYXNzTmFtZTpcImNhbGwtc3RhY2stZnJhbWUtbWV0aG9kLW5hbWVcIixjaGlsZHJlbjpbKDAseS5qc3gpKGViLHt0ZXh0OnIubWV0aG9kTmFtZX0pLG8mJigwLHkuanN4KShcImJ1dHRvblwiLHtvbkNsaWNrOmEsY2xhc3NOYW1lOlwib3Blbi1pbi1lZGl0b3ItYnV0dG9uXCIsXCJhcmlhLWxhYmVsXCI6XCJPcGVuIFwiLmNvbmNhdChyLm1ldGhvZE5hbWUsXCIgaW4gZWRpdG9yXCIpLGNoaWxkcmVuOigwLHkuanN4KShleix7d2lkdGg6MTYsaGVpZ2h0OjE2fSl9KSx0LmVycm9yPygwLHkuanN4KShcImJ1dHRvblwiLHtjbGFzc05hbWU6XCJzb3VyY2UtbWFwcGluZy1lcnJvci1idXR0b25cIixvbkNsaWNrOmZ1bmN0aW9uKCl7cmV0dXJuIGNvbnNvbGUuZXJyb3IodC5yZWFzb24pfSx0aXRsZTpcIlNvdXJjZW1hcHBpbmcgZmFpbGVkLiBDbGljayB0byBsb2cgY2F1c2Ugb2YgZXJyb3IuXCIsY2hpbGRyZW46KDAseS5qc3gpKGVMLHt3aWR0aDoxNixoZWlnaHQ6MTZ9KX0pOm51bGxdfSksKDAseS5qc3gpKFwic3BhblwiLHtjbGFzc05hbWU6XCJjYWxsLXN0YWNrLWZyYW1lLWZpbGUtc291cmNlXCIsXCJkYXRhLWhhcy1zb3VyY2VcIjpvLGNoaWxkcmVuOml9KV19KTpudWxsfTtmdW5jdGlvbiB0YSgpe3JldHVybigwLHkuanN4KShcInN2Z1wiLHt3aWR0aDpcIjE2XCIsaGVpZ2h0OlwiMTZcIix2aWV3Qm94OlwiMCAwIDE2IDE2XCIsZmlsbDpcIm5vbmVcIix4bWxuczpcImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIsY2hpbGRyZW46KDAseS5qc3gpKFwicGF0aFwiLHtmaWxsUnVsZTpcImV2ZW5vZGRcIixjbGlwUnVsZTpcImV2ZW5vZGRcIixkOlwiTTguNzA3MjIgMi4zOTY0MUM4LjMxNjcgMi4wMDU4OCA3LjY4MzUzIDIuMDA1ODggNy4yOTMwMSAyLjM5NjQxTDQuNDY5NzggNS4yMTk2M0wzLjkzOTQ1IDUuNzQ5OTZMNS4wMDAxMSA2LjgxMDYyTDUuNTMwNDQgNi4yODAyOUw4LjAwMDExIDMuODEwNjJMMTAuNDY5OCA2LjI4MDI5TDExLjAwMDEgNi44MTA2MkwxMi4wNjA4IDUuNzQ5OTZMMTEuNTMwNCA1LjIxOTYzTDguNzA3MjIgMi4zOTY0MVpNNS41MzA0NCA5LjcxOTYzTDUuMDAwMTEgOS4xODkzTDMuOTM5NDUgMTAuMjVMNC40Njk3OCAxMC43ODAzTDcuMjkzMDEgMTMuNjAzNUM3LjY4MzUzIDEzLjk5NCA4LjMxNjcgMTMuOTk0IDguNzA3MjIgMTMuNjAzNUwxMS41MzA0IDEwLjc4MDNMMTIuMDYwOCAxMC4yNUwxMS4wMDAxIDkuMTg5M0wxMC40Njk4IDkuNzE5NjNMOC4wMDAxMSAxMi4xODkzTDUuNTMwNDQgOS43MTk2M1pcIixmaWxsOlwiY3VycmVudENvbG9yXCJ9KX0pfWZ1bmN0aW9uIHRpKCl7dmFyIGUsbix0PShlPVtcIlxcbiAgW2RhdGEtbmV4dGpzLWNhbGwtc3RhY2stY29udGFpbmVyXSB7XFxuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcXG4gICAgbWFyZ2luLXRvcDogOHB4O1xcbiAgfVxcblxcbiAgW2RhdGEtbmV4dGpzLWNhbGwtc3RhY2staGVhZGVyXSB7XFxuICAgIGRpc3BsYXk6IGZsZXg7XFxuICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcXG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcXG4gICAgbWluLWhlaWdodDogdmFyKC0tc2l6ZS0yOCk7XFxuICAgIHBhZGRpbmc6IDhweCA4cHggMTJweCA0cHg7XFxuICAgIHdpZHRoOiAxMDAlO1xcbiAgfVxcblxcbiAgW2RhdGEtbmV4dGpzLWNhbGwtc3RhY2stdGl0bGVdIHtcXG4gICAgZGlzcGxheTogZmxleDtcXG4gICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xcbiAgICBnYXA6IDhweDtcXG5cXG4gICAgbWFyZ2luOiAwO1xcblxcbiAgICBjb2xvcjogdmFyKC0tY29sb3ItZ3JheS0xMDAwKTtcXG4gICAgZm9udC1zaXplOiB2YXIoLS1zaXplLTE2KTtcXG4gICAgZm9udC13ZWlnaHQ6IDUwMDtcXG4gIH1cXG5cXG4gIFtkYXRhLW5leHRqcy1jYWxsLXN0YWNrLWNvdW50XSB7XFxuICAgIGRpc3BsYXk6IGZsZXg7XFxuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xcblxcbiAgICB3aWR0aDogdmFyKC0tc2l6ZS0yMCk7XFxuICAgIGhlaWdodDogdmFyKC0tc2l6ZS0yMCk7XFxuICAgIGdhcDogNHB4O1xcblxcbiAgICBjb2xvcjogdmFyKC0tY29sb3ItZ3JheS0xMDAwKTtcXG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xcbiAgICBmb250LXNpemU6IHZhcigtLXNpemUtMTEpO1xcbiAgICBmb250LXdlaWdodDogNTAwO1xcbiAgICBsaW5lLWhlaWdodDogdmFyKC0tc2l6ZS0xNik7XFxuXFxuICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLXJvdW5kZWQtZnVsbCk7XFxuICAgIGJhY2tncm91bmQ6IHZhcigtLWNvbG9yLWdyYXktMzAwKTtcXG4gIH1cXG5cXG4gIFtkYXRhLW5leHRqcy1jYWxsLXN0YWNrLWlnbm9yZWQtbGlzdC10b2dnbGUtYnV0dG9uXSB7XFxuICAgIGFsbDogdW5zZXQ7XFxuICAgIGRpc3BsYXk6IGZsZXg7XFxuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XFxuICAgIGdhcDogNnB4O1xcbiAgICBjb2xvcjogdmFyKC0tY29sb3ItZ3JheS05MDApO1xcbiAgICBmb250LXNpemU6IHZhcigtLXNpemUtMTQpO1xcbiAgICBsaW5lLWhlaWdodDogdmFyKC0tc2l6ZS0yMCk7XFxuICAgIGJvcmRlci1yYWRpdXM6IDZweDtcXG4gICAgcGFkZGluZzogNHB4IDZweDtcXG4gICAgbWFyZ2luLXJpZ2h0OiAtNnB4O1xcbiAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIDE1MG1zIGVhc2U7XFxuXFxuICAgICY6aG92ZXIge1xcbiAgICAgIGJhY2tncm91bmQ6IHZhcigtLWNvbG9yLWdyYXktMTAwKTtcXG4gICAgfVxcblxcbiAgICAmOmZvY3VzIHtcXG4gICAgICBvdXRsaW5lOiB2YXIoLS1mb2N1cy1yaW5nKTtcXG4gICAgfVxcblxcbiAgICBzdmcge1xcbiAgICAgIHdpZHRoOiB2YXIoLS1zaXplLTE2KTtcXG4gICAgICBoZWlnaHQ6IHZhcigtLXNpemUtMTYpO1xcbiAgICB9XFxuICB9XFxuXCJdLG58fChuPWUuc2xpY2UoMCkpLE9iamVjdC5mcmVlemUoT2JqZWN0LmRlZmluZVByb3BlcnRpZXMoZSx7cmF3Ont2YWx1ZTpPYmplY3QuZnJlZXplKG4pfX0pKSk7cmV0dXJuIHRpPWZ1bmN0aW9uKCl7cmV0dXJuIHR9LHR9ZnVuY3Rpb24gdGwoZSl7dmFyIG49ZS5mcmFtZXMsdD1lLmlzSWdub3JlTGlzdE9wZW4scj1lLmlnbm9yZWRGcmFtZXNUYWxseSxvPWUub25Ub2dnbGVJZ25vcmVMaXN0O3JldHVybigwLHkuanN4cykoXCJkaXZcIix7XCJkYXRhLW5leHRqcy1jYWxsLXN0YWNrLWNvbnRhaW5lclwiOiEwLGNoaWxkcmVuOlsoMCx5LmpzeHMpKFwiZGl2XCIse1wiZGF0YS1uZXh0anMtY2FsbC1zdGFjay1oZWFkZXJcIjohMCxjaGlsZHJlbjpbKDAseS5qc3hzKShcInBcIix7XCJkYXRhLW5leHRqcy1jYWxsLXN0YWNrLXRpdGxlXCI6ITAsY2hpbGRyZW46W1wiQ2FsbCBTdGFjayBcIiwoMCx5LmpzeCkoXCJzcGFuXCIse1wiZGF0YS1uZXh0anMtY2FsbC1zdGFjay1jb3VudFwiOiEwLGNoaWxkcmVuOm4ubGVuZ3RofSldfSkscj4wJiYoMCx5LmpzeHMpKFwiYnV0dG9uXCIse1wiZGF0YS1uZXh0anMtY2FsbC1zdGFjay1pZ25vcmVkLWxpc3QtdG9nZ2xlLWJ1dHRvblwiOnQsb25DbGljazpvLGNoaWxkcmVuOltcIlwiLmNvbmNhdCh0P1wiSGlkZVwiOlwiU2hvd1wiLFwiIFwiKS5jb25jYXQocixcIiBpZ25vcmUtbGlzdGVkIGZyYW1lKHMpXCIpLCgwLHkuanN4KSh0YSx7fSldfSldfSksbi5tYXAoZnVuY3Rpb24oZSxuKXtyZXR1cm4hZS5pZ25vcmVkfHx0PygwLHkuanN4KSh0byx7ZnJhbWU6ZX0sbik6bnVsbH0pXX0pfXZhciB0cz1laSh0aSgpKTtmdW5jdGlvbiB0YyhlLG4peyhudWxsPT1ufHxuPmUubGVuZ3RoKSYmKG49ZS5sZW5ndGgpO2Zvcih2YXIgdD0wLHI9QXJyYXkobik7dDxuO3QrKylyW3RdPWVbdF07cmV0dXJuIHJ9ZnVuY3Rpb24gdHUoZSl7dmFyIG4sdCxyPWUuZnJhbWVzLG89ZS5kaWFsb2dSZXNpemVyUmVmLGE9KDAseC51c2VSZWYpKE5hTiksaT0obj0oMCx4LnVzZVN0YXRlKSghMSksdD0yLGZ1bmN0aW9uKGUpe2lmKEFycmF5LmlzQXJyYXkoZSkpcmV0dXJuIGV9KG4pfHxmdW5jdGlvbihlLG4pe3ZhciB0LHIsbz1udWxsPT1lP251bGw6XCJ1bmRlZmluZWRcIiE9dHlwZW9mIFN5bWJvbCYmZVtTeW1ib2wuaXRlcmF0b3JdfHxlW1wiQEBpdGVyYXRvclwiXTtpZihudWxsIT1vKXt2YXIgYT1bXSxpPSEwLGw9ITE7dHJ5e2ZvcihvPW8uY2FsbChlKTshKGk9KHQ9by5uZXh0KCkpLmRvbmUpJiYoYS5wdXNoKHQudmFsdWUpLGEubGVuZ3RoIT09bik7aT0hMCk7fWNhdGNoKGUpe2w9ITAscj1lfWZpbmFsbHl7dHJ5e2l8fG51bGw9PW8ucmV0dXJufHxvLnJldHVybigpfWZpbmFsbHl7aWYobCl0aHJvdyByfX1yZXR1cm4gYX19KG4sMil8fGZ1bmN0aW9uKGUsbil7aWYoZSl7aWYoXCJzdHJpbmdcIj09dHlwZW9mIGUpcmV0dXJuIHRjKGUsbik7dmFyIHQ9T2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKGUpLnNsaWNlKDgsLTEpO2lmKFwiT2JqZWN0XCI9PT10JiZlLmNvbnN0cnVjdG9yJiYodD1lLmNvbnN0cnVjdG9yLm5hbWUpLFwiTWFwXCI9PT10fHxcIlNldFwiPT09dClyZXR1cm4gQXJyYXkuZnJvbSh0KTtpZihcIkFyZ3VtZW50c1wiPT09dHx8L14oPzpVaXxJKW50KD86OHwxNnwzMikoPzpDbGFtcGVkKT9BcnJheSQvLnRlc3QodCkpcmV0dXJuIHRjKGUsbil9fShuLHQpfHxmdW5jdGlvbigpe3Rocm93IFR5cGVFcnJvcihcIkludmFsaWQgYXR0ZW1wdCB0byBkZXN0cnVjdHVyZSBub24taXRlcmFibGUgaW5zdGFuY2UuXFxcXG5JbiBvcmRlciB0byBiZSBpdGVyYWJsZSwgbm9uLWFycmF5IG9iamVjdHMgbXVzdCBoYXZlIGEgW1N5bWJvbC5pdGVyYXRvcl0oKSBtZXRob2QuXCIpfSgpKSxsPWlbMF0scz1pWzFdLGM9KDAseC51c2VNZW1vKShmdW5jdGlvbigpe3JldHVybiByLnJlZHVjZShmdW5jdGlvbihlLG4pe3JldHVybiBlKyArISFuLmlnbm9yZWR9LDApfSxbcl0pO3JldHVybigwLHkuanN4KSh0bCx7ZnJhbWVzOnIsaXNJZ25vcmVMaXN0T3BlbjpsLG9uVG9nZ2xlSWdub3JlTGlzdDpmdW5jdGlvbigpe3ZhciBlPW51bGw9PW8/dm9pZCAwOm8uY3VycmVudDtpZihlKXt2YXIgbj0obnVsbD09ZT92b2lkIDA6ZS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSkuaGVpZ2h0O2EuY3VycmVudHx8KGEuY3VycmVudD1uKSxsPyhlLnN0eWxlLmhlaWdodD1cIlwiLmNvbmNhdChhLmN1cnJlbnQsXCJweFwiKSxlLmFkZEV2ZW50TGlzdGVuZXIoXCJ0cmFuc2l0aW9uZW5kXCIsZnVuY3Rpb24gbigpe2UucmVtb3ZlRXZlbnRMaXN0ZW5lcihcInRyYW5zaXRpb25lbmRcIixuKSxzKCExKX0pKTpzKCEwKX19LGlnbm9yZWRGcmFtZXNUYWxseTpjfSl9ZnVuY3Rpb24gdGQoKXt2YXIgZSxuLHQ9KGFyZ3VtZW50cy5sZW5ndGg+MCYmdm9pZCAwIT09YXJndW1lbnRzWzBdP2FyZ3VtZW50c1swXTp7fSkuY29sbGFwc2VkO3JldHVybigwLHkuanN4KShcInN2Z1wiLChlPWZ1bmN0aW9uKGUpe2Zvcih2YXIgbj0xO248YXJndW1lbnRzLmxlbmd0aDtuKyspe3ZhciB0PW51bGwhPWFyZ3VtZW50c1tuXT9hcmd1bWVudHNbbl06e30scj1PYmplY3Qua2V5cyh0KTtcImZ1bmN0aW9uXCI9PXR5cGVvZiBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzJiYocj1yLmNvbmNhdChPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKHQpLmZpbHRlcihmdW5jdGlvbihlKXtyZXR1cm4gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcih0LGUpLmVudW1lcmFibGV9KSkpLHIuZm9yRWFjaChmdW5jdGlvbihuKXt2YXIgcixvLGE7cj1lLG89bixhPXRbbl0sbyBpbiByP09iamVjdC5kZWZpbmVQcm9wZXJ0eShyLG8se3ZhbHVlOmEsZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITB9KTpyW29dPWF9KX1yZXR1cm4gZX0oe1wiZGF0YS1uZXh0anMtY2FsbC1zdGFjay1jaGV2cm9uLWljb25cIjohMCxcImRhdGEtY29sbGFwc2VkXCI6dCx3aWR0aDpcIjE2XCIsaGVpZ2h0OlwiMTZcIixmaWxsOlwibm9uZVwifSxcImJvb2xlYW5cIj09dHlwZW9mIHQ/e3N0eWxlOnt0cmFuc2Zvcm06dD92b2lkIDA6XCJyb3RhdGUoOTBkZWcpXCJ9fTp7fSksbj1uPXtjaGlsZHJlbjooMCx5LmpzeCkoXCJwYXRoXCIse3N0eWxlOntmaWxsOlwidmFyKC0tY29sb3ItZm9udClcIn0sZmlsbFJ1bGU6XCJldmVub2RkXCIsZDpcIm02Ljc1IDMuOTQuNTMuNTMgMi44MjQgMi44MjNhMSAxIDAgMCAxIDAgMS40MTRMNy4yOCAxMS41M2wtLjUzLjUzTDUuNjkgMTFsLjUzLS41M0w4LjY5IDggNi4yMiA1LjUzIDUuNjkgNWwxLjA2LTEuMDZaXCIsY2xpcFJ1bGU6XCJldmVub2RkXCJ9KX0sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcnM/T2JqZWN0LmRlZmluZVByb3BlcnRpZXMoZSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycyhuKSk6KGZ1bmN0aW9uKGUsbil7dmFyIHQ9T2JqZWN0LmtleXMoZSk7aWYoT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyl7dmFyIHI9T2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhlKTt0LnB1c2guYXBwbHkodCxyKX1yZXR1cm4gdH0pKE9iamVjdChuKSkuZm9yRWFjaChmdW5jdGlvbih0KXtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSx0LE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Iobix0KSl9KSxlKSl9ZnVuY3Rpb24gdGYoZSxuKXsobnVsbD09bnx8bj5lLmxlbmd0aCkmJihuPWUubGVuZ3RoKTtmb3IodmFyIHQ9MCxyPUFycmF5KG4pO3Q8bjt0Kyspclt0XT1lW3RdO3JldHVybiByfWZ1bmN0aW9uIHRwKGUsbil7cmV0dXJuIGZ1bmN0aW9uKGUpe2lmKEFycmF5LmlzQXJyYXkoZSkpcmV0dXJuIGV9KGUpfHxmdW5jdGlvbihlLG4pe3ZhciB0LHIsbz1udWxsPT1lP251bGw6XCJ1bmRlZmluZWRcIiE9dHlwZW9mIFN5bWJvbCYmZVtTeW1ib2wuaXRlcmF0b3JdfHxlW1wiQEBpdGVyYXRvclwiXTtpZihudWxsIT1vKXt2YXIgYT1bXSxpPSEwLGw9ITE7dHJ5e2ZvcihvPW8uY2FsbChlKTshKGk9KHQ9by5uZXh0KCkpLmRvbmUpJiYoYS5wdXNoKHQudmFsdWUpLCFufHxhLmxlbmd0aCE9PW4pO2k9ITApO31jYXRjaChlKXtsPSEwLHI9ZX1maW5hbGx5e3RyeXtpfHxudWxsPT1vLnJldHVybnx8by5yZXR1cm4oKX1maW5hbGx5e2lmKGwpdGhyb3cgcn19cmV0dXJuIGF9fShlLG4pfHxmdW5jdGlvbihlLG4pe2lmKGUpe2lmKFwic3RyaW5nXCI9PXR5cGVvZiBlKXJldHVybiB0ZihlLG4pO3ZhciB0PU9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChlKS5zbGljZSg4LC0xKTtpZihcIk9iamVjdFwiPT09dCYmZS5jb25zdHJ1Y3RvciYmKHQ9ZS5jb25zdHJ1Y3Rvci5uYW1lKSxcIk1hcFwiPT09dHx8XCJTZXRcIj09PXQpcmV0dXJuIEFycmF5LmZyb20odCk7aWYoXCJBcmd1bWVudHNcIj09PXR8fC9eKD86VWl8SSludCg/Ojh8MTZ8MzIpKD86Q2xhbXBlZCk/QXJyYXkkLy50ZXN0KHQpKXJldHVybiB0ZihlLG4pfX0oZSxuKXx8ZnVuY3Rpb24oKXt0aHJvdyBUeXBlRXJyb3IoXCJJbnZhbGlkIGF0dGVtcHQgdG8gZGVzdHJ1Y3R1cmUgbm9uLWl0ZXJhYmxlIGluc3RhbmNlLlxcXFxuSW4gb3JkZXIgdG8gYmUgaXRlcmFibGUsIG5vbi1hcnJheSBvYmplY3RzIG11c3QgaGF2ZSBhIFtTeW1ib2wuaXRlcmF0b3JdKCkgbWV0aG9kLlwiKX0oKX1mdW5jdGlvbiB0aChlKXt2YXIgbj1lLnJlYWN0T3V0cHV0Q29tcG9uZW50RGlmZix0PXRwKCgwLHgudXNlU3RhdGUpKCEwKSwyKSxyPXRbMF0sbz10WzFdLGE9KDAseC51c2VNZW1vKShmdW5jdGlvbigpe3ZhciBlPVtdO3JldHVybiBuLnNwbGl0KFwiXFxuXCIpLmZvckVhY2goZnVuY3Rpb24obix0KXt2YXIgcixvLGE9XCIrXCI9PT1uWzBdfHxcIi1cIj09PW5bMF0saT1cIj5cIj09PW5bMF0sbD1hfHxpLHM9bD9uWzBdOlwiXCIsYz1sP24uaW5kZXhPZihzKTotMSx1PXRwKGw/W24uc2xpY2UoMCxjKSxuLnNsaWNlKGMrMSldOltuLFwiXCJdLDIpLGQ9dVswXSxmPXVbMV07YT9lLnB1c2goKDAseS5qc3gpKFwic3BhblwiLHtcImRhdGEtbmV4dGpzLWNvbnRhaW5lci1lcnJvcnMtcHNldWRvLWh0bWwtbGluZVwiOiEwLFwiZGF0YS1uZXh0anMtY29udGFpbmVyLWVycm9ycy1wc2V1ZG8taHRtbC0tZGlmZlwiOlwiK1wiPT09cz9cImFkZFwiOlwicmVtb3ZlXCIsY2hpbGRyZW46KDAseS5qc3hzKShcInNwYW5cIix7Y2hpbGRyZW46W2QsKDAseS5qc3gpKFwic3BhblwiLHtcImRhdGEtbmV4dGpzLWNvbnRhaW5lci1lcnJvcnMtcHNldWRvLWh0bWwtbGluZS1zaWduXCI6ITAsY2hpbGRyZW46c30pLGYsXCJcXG5cIl19KX0sXCJjb21wLWRpZmZcIit0KSk6ZS5wdXNoKCgwLHkuanN4cykoXCJzcGFuXCIsKHI9ZnVuY3Rpb24oZSl7Zm9yKHZhciBuPTE7bjxhcmd1bWVudHMubGVuZ3RoO24rKyl7dmFyIHQ9bnVsbCE9YXJndW1lbnRzW25dP2FyZ3VtZW50c1tuXTp7fSxyPU9iamVjdC5rZXlzKHQpO1wiZnVuY3Rpb25cIj09dHlwZW9mIE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMmJihyPXIuY29uY2F0KE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHModCkuZmlsdGVyKGZ1bmN0aW9uKGUpe3JldHVybiBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHQsZSkuZW51bWVyYWJsZX0pKSksci5mb3JFYWNoKGZ1bmN0aW9uKG4pe3ZhciByLG8sYTtyPWUsbz1uLGE9dFtuXSxvIGluIHI/T2JqZWN0LmRlZmluZVByb3BlcnR5KHIsbyx7dmFsdWU6YSxlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMH0pOnJbb109YX0pfXJldHVybiBlfSh7XCJkYXRhLW5leHRqcy1jb250YWluZXItZXJyb3JzLXBzZXVkby1odG1sLWxpbmVcIjohMH0saT97XCJkYXRhLW5leHRqcy1jb250YWluZXItZXJyb3JzLXBzZXVkby1odG1sLS1kaWZmXCI6XCJlcnJvclwifTp2b2lkIDApLG89bz17Y2hpbGRyZW46W2QsKDAseS5qc3gpKFwic3BhblwiLHtcImRhdGEtbmV4dGpzLWNvbnRhaW5lci1lcnJvcnMtcHNldWRvLWh0bWwtbGluZS1zaWduXCI6ITAsY2hpbGRyZW46c30pLGYsXCJcXG5cIl19LE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzP09iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKHIsT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcnMobykpOihmdW5jdGlvbihlLG4pe3ZhciB0PU9iamVjdC5rZXlzKGUpO2lmKE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMpe3ZhciByPU9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMoZSk7dC5wdXNoLmFwcGx5KHQscil9cmV0dXJuIHR9KShPYmplY3QobykpLmZvckVhY2goZnVuY3Rpb24oZSl7T2JqZWN0LmRlZmluZVByb3BlcnR5KHIsZSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKG8sZSkpfSksciksXCJjb21wLWRpZmZcIit0KSl9KSxlfSxbbl0pO3JldHVybigwLHkuanN4cykoXCJkaXZcIix7XCJkYXRhLW5leHRqcy1jb250YWluZXItZXJyb3JzLXBzZXVkby1odG1sXCI6ITAsXCJkYXRhLW5leHRqcy1jb250YWluZXItZXJyb3JzLXBzZXVkby1odG1sLWNvbGxhcHNlXCI6cixjaGlsZHJlbjpbKDAseS5qc3gpKFwiYnV0dG9uXCIse1wiYXJpYS1leHBhbmRlZFwiOiFyLFwiYXJpYS1sYWJlbFwiOlwiY29tcGxldGUgQ29tcG9uZW50IFN0YWNrXCIsXCJkYXRhLW5leHRqcy1jb250YWluZXItZXJyb3JzLXBzZXVkby1odG1sLWNvbGxhcHNlLWJ1dHRvblwiOiEwLG9uQ2xpY2s6ZnVuY3Rpb24oKXtyZXR1cm4gbyghcil9LGNoaWxkcmVuOigwLHkuanN4KSh0ZCx7Y29sbGFwc2VkOnJ9KX0pLCgwLHkuanN4KShcInByZVwiLHtjbGFzc05hbWU6XCJuZXh0anNfX2NvbnRhaW5lcl9lcnJvcnNfX2NvbXBvbmVudC1zdGFja1wiLGNoaWxkcmVuOigwLHkuanN4KShcImNvZGVcIix7Y2hpbGRyZW46YX0pfSldfSl9dmFyIHRnPVN5bWJvbC5mb3IoXCJOZXh0anNFcnJvclwiKTtmdW5jdGlvbiB0bShlKXtyZXR1cm4gZVt0Z118fG51bGx9ZnVuY3Rpb24gdHYoZSxuLHQscixvLGEsaSl7dHJ5e3ZhciBsPWVbYV0oaSkscz1sLnZhbHVlfWNhdGNoKGUpe3QoZSk7cmV0dXJufWwuZG9uZT9uKHMpOlByb21pc2UucmVzb2x2ZShzKS50aGVuKHIsbyl9ZnVuY3Rpb24gdGIoZSl7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIG49dGhpcyx0PWFyZ3VtZW50cztyZXR1cm4gbmV3IFByb21pc2UoZnVuY3Rpb24ocixvKXt2YXIgYT1lLmFwcGx5KG4sdCk7ZnVuY3Rpb24gaShlKXt0dihhLHIsbyxpLGwsXCJuZXh0XCIsZSl9ZnVuY3Rpb24gbChlKXt0dihhLHIsbyxpLGwsXCJ0aHJvd1wiLGUpfWkodm9pZCAwKX0pfX1mdW5jdGlvbiB0eShlKXtmb3IodmFyIG49MTtuPGFyZ3VtZW50cy5sZW5ndGg7bisrKXt2YXIgdD1udWxsIT1hcmd1bWVudHNbbl0/YXJndW1lbnRzW25dOnt9LHI9T2JqZWN0LmtleXModCk7XCJmdW5jdGlvblwiPT10eXBlb2YgT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyYmKHI9ci5jb25jYXQoT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyh0KS5maWx0ZXIoZnVuY3Rpb24oZSl7cmV0dXJuIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IodCxlKS5lbnVtZXJhYmxlfSkpKSxyLmZvckVhY2goZnVuY3Rpb24obil7dmFyIHIsbyxhO3I9ZSxvPW4sYT10W25dLG8gaW4gcj9PYmplY3QuZGVmaW5lUHJvcGVydHkocixvLHt2YWx1ZTphLGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwfSk6cltvXT1hfSl9cmV0dXJuIGV9ZnVuY3Rpb24gdHgoZSxuKXtyZXR1cm4gbj1udWxsIT1uP246e30sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcnM/T2JqZWN0LmRlZmluZVByb3BlcnRpZXMoZSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycyhuKSk6KGZ1bmN0aW9uKGUsbil7dmFyIHQ9T2JqZWN0LmtleXMoZSk7aWYoT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyl7dmFyIHI9T2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhlKTt0LnB1c2guYXBwbHkodCxyKX1yZXR1cm4gdH0pKE9iamVjdChuKSkuZm9yRWFjaChmdW5jdGlvbih0KXtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSx0LE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Iobix0KSl9KSxlfWZ1bmN0aW9uIHR3KGUsbil7dmFyIHQscixvLGE9e2xhYmVsOjAsc2VudDpmdW5jdGlvbigpe2lmKDEmb1swXSl0aHJvdyBvWzFdO3JldHVybiBvWzFdfSx0cnlzOltdLG9wczpbXX0saT1PYmplY3QuY3JlYXRlKChcImZ1bmN0aW9uXCI9PXR5cGVvZiBJdGVyYXRvcj9JdGVyYXRvcjpPYmplY3QpLnByb3RvdHlwZSk7cmV0dXJuIGkubmV4dD1sKDApLGkudGhyb3c9bCgxKSxpLnJldHVybj1sKDIpLFwiZnVuY3Rpb25cIj09dHlwZW9mIFN5bWJvbCYmKGlbU3ltYm9sLml0ZXJhdG9yXT1mdW5jdGlvbigpe3JldHVybiB0aGlzfSksaTtmdW5jdGlvbiBsKGwpe3JldHVybiBmdW5jdGlvbihzKXt2YXIgYz1bbCxzXTtpZih0KXRocm93IFR5cGVFcnJvcihcIkdlbmVyYXRvciBpcyBhbHJlYWR5IGV4ZWN1dGluZy5cIik7Zm9yKDtpJiYoaT0wLGNbMF0mJihhPTApKSxhOyl0cnl7aWYodD0xLHImJihvPTImY1swXT9yLnJldHVybjpjWzBdP3IudGhyb3d8fCgobz1yLnJldHVybikmJm8uY2FsbChyKSwwKTpyLm5leHQpJiYhKG89by5jYWxsKHIsY1sxXSkpLmRvbmUpcmV0dXJuIG87c3dpdGNoKHI9MCxvJiYoYz1bMiZjWzBdLG8udmFsdWVdKSxjWzBdKXtjYXNlIDA6Y2FzZSAxOm89YzticmVhaztjYXNlIDQ6cmV0dXJuIGEubGFiZWwrKyx7dmFsdWU6Y1sxXSxkb25lOiExfTtjYXNlIDU6YS5sYWJlbCsrLHI9Y1sxXSxjPVswXTtjb250aW51ZTtjYXNlIDc6Yz1hLm9wcy5wb3AoKSxhLnRyeXMucG9wKCk7Y29udGludWU7ZGVmYXVsdDppZighKG89KG89YS50cnlzKS5sZW5ndGg+MCYmb1tvLmxlbmd0aC0xXSkmJig2PT09Y1swXXx8Mj09PWNbMF0pKXthPTA7Y29udGludWV9aWYoMz09PWNbMF0mJighb3x8Y1sxXT5vWzBdJiZjWzFdPG9bM10pKXthLmxhYmVsPWNbMV07YnJlYWt9aWYoNj09PWNbMF0mJmEubGFiZWw8b1sxXSl7YS5sYWJlbD1vWzFdLG89YzticmVha31pZihvJiZhLmxhYmVsPG9bMl0pe2EubGFiZWw9b1syXSxhLm9wcy5wdXNoKGMpO2JyZWFrfW9bMl0mJmEub3BzLnBvcCgpLGEudHJ5cy5wb3AoKTtjb250aW51ZX1jPW4uY2FsbChlLGEpfWNhdGNoKGUpe2M9WzYsZV0scj0wfWZpbmFsbHl7dD1vPTB9aWYoNSZjWzBdKXRocm93IGNbMV07cmV0dXJue3ZhbHVlOmNbMF0/Y1sxXTp2b2lkIDAsZG9uZTohMH19fX12YXIgdGo9ZnVuY3Rpb24oZSl7aWYoXCJ1c2VcImluIHgpe3ZhciBuPWUuZnJhbWVzO2lmKFwiZnVuY3Rpb25cIiE9dHlwZW9mIG4pdGhyb3cgRXJyb3IoXCJJbnZhcmlhbnQ6IGZyYW1lcyBtdXN0IGJlIGEgZnVuY3Rpb24gd2hlbiB0aGUgUmVhY3QgdmVyc2lvbiBoYXMgUmVhY3QudXNlLiBUaGlzIGlzIGEgYnVnIGluIE5leHQuanMuXCIpO3JldHVybiB4LnVzZShuKCkpfWlmKCFBcnJheS5pc0FycmF5KGUuZnJhbWVzKSl0aHJvdyBFcnJvcihcIkludmFyaWFudDogZnJhbWVzIG11c3QgYmUgYW4gYXJyYXkgd2hlbiB0aGUgUmVhY3QgdmVyc2lvbiBkb2VzIG5vdCBoYXZlIFJlYWN0LnVzZS4gVGhpcyBpcyBhIGJ1ZyBpbiBOZXh0LmpzLlwiKTtyZXR1cm4gZS5mcmFtZXN9O2Z1bmN0aW9uIHRrKGUpe3ZhciBuPWUuZXJyb3IsdD1lLmRpYWxvZ1Jlc2l6ZXJSZWYscj10aihuKSxvPSgwLHgudXNlTWVtbykoZnVuY3Rpb24oKXt2YXIgZSxuPXIuZmluZEluZGV4KGZ1bmN0aW9uKGUpe3JldHVybiFlLmlnbm9yZWQmJiEhZS5vcmlnaW5hbENvZGVGcmFtZSYmISFlLm9yaWdpbmFsU3RhY2tGcmFtZX0pO3JldHVybiBudWxsIT0oZT1yW25dKT9lOm51bGx9LFtyXSk7cmV0dXJuKDAseS5qc3hzKSh5LkZyYWdtZW50LHtjaGlsZHJlbjpbbyYmKDAseS5qc3gpKGVxLHtzdGFja0ZyYW1lOm8ub3JpZ2luYWxTdGFja0ZyYW1lLGNvZGVGcmFtZTpvLm9yaWdpbmFsQ29kZUZyYW1lfSksci5sZW5ndGg+MCYmKDAseS5qc3gpKHR1LHtkaWFsb2dSZXNpemVyUmVmOnQsZnJhbWVzOnJ9KV19KX12YXIgdEE9XCJcXG4gIFwiLmNvbmNhdChcIlxcbiAgW2RhdGEtbmV4dGpzLWNvbnRhaW5lci1lcnJvcnMtcHNldWRvLWh0bWxdIHtcXG4gICAgcGFkZGluZzogOHB4IDA7XFxuICAgIG1hcmdpbjogOHB4IDA7XFxuICAgIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWNvbG9yLWdyYXktNDAwKTtcXG4gICAgYmFja2dyb3VuZDogdmFyKC0tY29sb3ItYmFja2dyb3VuZC0yMDApO1xcbiAgICBjb2xvcjogdmFyKC0tY29sb3Itc3ludGF4LWNvbnN0YW50KTtcXG4gICAgZm9udC1mYW1pbHk6IHZhcigtLWZvbnQtc3RhY2stbW9ub3NwYWNlKTtcXG4gICAgZm9udC1zaXplOiB2YXIoLS1zaXplLTEyKTtcXG4gICAgbGluZS1oZWlnaHQ6IDEuMzNlbTsgLyogMTZweCBpbiAxMnB4IGZvbnQgc2l6ZSAqL1xcbiAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1yb3VuZGVkLW1kLTIpO1xcbiAgfVxcbiAgW2RhdGEtbmV4dGpzLWNvbnRhaW5lci1lcnJvcnMtcHNldWRvLWh0bWwtbGluZV0ge1xcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XFxuICAgIHdpZHRoOiAxMDAlO1xcbiAgICBwYWRkaW5nLWxlZnQ6IDQwcHg7XFxuICAgIGxpbmUtaGVpZ2h0OiBjYWxjKDUgLyAzKTtcXG4gIH1cXG4gIFtkYXRhLW5leHRqcy1jb250YWluZXItZXJyb3JzLXBzZXVkby1odG1sLS1kaWZmPSdlcnJvciddIHtcXG4gICAgYmFja2dyb3VuZDogdmFyKC0tY29sb3ItYW1iZXItMTAwKTtcXG4gICAgYm94LXNoYWRvdzogMnB4IDAgMCAwIHZhcigtLWNvbG9yLWFtYmVyLTkwMCkgaW5zZXQ7XFxuICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xcbiAgfVxcbiAgW2RhdGEtbmV4dGpzLWNvbnRhaW5lci1lcnJvcnMtcHNldWRvLWh0bWwtY29sbGFwc2UtYnV0dG9uXSB7XFxuICAgIGFsbDogdW5zZXQ7XFxuICAgIG1hcmdpbi1sZWZ0OiAxMnB4O1xcbiAgICAmOmZvY3VzIHtcXG4gICAgICBvdXRsaW5lOiBub25lO1xcbiAgICB9XFxuICB9XFxuICBbZGF0YS1uZXh0anMtY29udGFpbmVyLWVycm9ycy1wc2V1ZG8taHRtbC0tZGlmZj0nYWRkJ10ge1xcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1jb2xvci1ncmVlbi0zMDApO1xcbiAgfVxcbiAgW2RhdGEtbmV4dGpzLWNvbnRhaW5lci1lcnJvcnMtcHNldWRvLWh0bWwtbGluZS1zaWduXSB7XFxuICAgIG1hcmdpbi1sZWZ0OiBjYWxjKDI0cHggKiAtMSk7XFxuICAgIG1hcmdpbi1yaWdodDogMjRweDtcXG4gIH1cXG4gIFtkYXRhLW5leHRqcy1jb250YWluZXItZXJyb3JzLXBzZXVkby1odG1sLS1kaWZmPSdhZGQnXVxcbiAgICBbZGF0YS1uZXh0anMtY29udGFpbmVyLWVycm9ycy1wc2V1ZG8taHRtbC1saW5lLXNpZ25dIHtcXG4gICAgY29sb3I6IHZhcigtLWNvbG9yLWdyZWVuLTkwMCk7XFxuICB9XFxuICBbZGF0YS1uZXh0anMtY29udGFpbmVyLWVycm9ycy1wc2V1ZG8taHRtbC0tZGlmZj0ncmVtb3ZlJ10ge1xcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1jb2xvci1yZWQtMzAwKTtcXG4gIH1cXG4gIFtkYXRhLW5leHRqcy1jb250YWluZXItZXJyb3JzLXBzZXVkby1odG1sLS1kaWZmPSdyZW1vdmUnXVxcbiAgICBbZGF0YS1uZXh0anMtY29udGFpbmVyLWVycm9ycy1wc2V1ZG8taHRtbC1saW5lLXNpZ25dIHtcXG4gICAgY29sb3I6IHZhcigtLWNvbG9yLXJlZC05MDApO1xcbiAgICBtYXJnaW4tbGVmdDogY2FsYygyNHB4ICogLTEpO1xcbiAgICBtYXJnaW4tcmlnaHQ6IDI0cHg7XFxuICB9XFxuICBbZGF0YS1uZXh0anMtY29udGFpbmVyLWVycm9ycy1wc2V1ZG8taHRtbC0tZGlmZj0nZXJyb3InXVxcbiAgICBbZGF0YS1uZXh0anMtY29udGFpbmVyLWVycm9ycy1wc2V1ZG8taHRtbC1saW5lLXNpZ25dIHtcXG4gICAgY29sb3I6IHZhcigtLWNvbG9yLWFtYmVyLTkwMCk7XFxuICB9XFxuICBcXG4gIFtkYXRhLW5leHRqcy1jb250YWluZXItZXJyb3JzLXBzZXVkby1odG1sLS1oaW50XSB7XFxuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcXG4gICAgZm9udC1zaXplOiAwO1xcbiAgICBoZWlnaHQ6IDA7XFxuICB9XFxuICBbZGF0YS1uZXh0anMtY29udGFpbmVyLWVycm9ycy1wc2V1ZG8taHRtbC0tdGFnLWFkamFjZW50PSdmYWxzZSddIHtcXG4gICAgY29sb3I6IHZhcigtLWNvbG9yLWFjY2VudHMtMSk7XFxuICB9XFxuICAubmV4dGpzX19jb250YWluZXJfZXJyb3JzX19jb21wb25lbnQtc3RhY2sge1xcbiAgICBtYXJnaW46IDA7XFxuICB9XFxuICBbZGF0YS1uZXh0anMtY29udGFpbmVyLWVycm9ycy1wc2V1ZG8taHRtbC1jb2xsYXBzZT0ndHJ1ZSddXFxuICAgIC5uZXh0anNfX2NvbnRhaW5lcl9lcnJvcnNfX2NvbXBvbmVudC1zdGFja1xcbiAgICBjb2RlIHtcXG4gICAgbWF4LWhlaWdodDogMTIwcHg7XFxuICAgIG1hc2staW1hZ2U6IGxpbmVhci1ncmFkaWVudCh0byBib3R0b20scmdiYSgwLDAsMCwwKSAwJSxibGFjayAxMCUpO1xcbiAgICBwYWRkaW5nLWJvdHRvbTogNDBweDtcXG4gIH1cXG4gIC5uZXh0anNfX2NvbnRhaW5lcl9lcnJvcnNfX2NvbXBvbmVudC1zdGFjayBjb2RlIHtcXG4gICAgZGlzcGxheTogYmxvY2s7XFxuICAgIHdpZHRoOiAxMDAlO1xcbiAgICB3aGl0ZS1zcGFjZTogcHJlLXdyYXA7XFxuICAgIHNjcm9sbC1zbmFwLXR5cGU6IHkgbWFuZGF0b3J5O1xcbiAgICBvdmVyZmxvdy15OiBoaWRkZW47XFxuICB9XFxuICBbZGF0YS1uZXh0anMtY29udGFpbmVyLWVycm9ycy1wc2V1ZG8taHRtbC0tZGlmZl0ge1xcbiAgICBzY3JvbGwtc25hcC1hbGlnbjogY2VudGVyO1xcbiAgfVxcbiAgLmVycm9yLW92ZXJsYXktaHlkcmF0aW9uLWVycm9yLWRpZmYtcGx1cy1pY29uIHtcXG4gICAgY29sb3I6IHZhcigtLWNvbG9yLWdyZWVuLTkwMCk7XFxuICB9XFxuICAuZXJyb3Itb3ZlcmxheS1oeWRyYXRpb24tZXJyb3ItZGlmZi1taW51cy1pY29uIHtcXG4gICAgY29sb3I6IHZhcigtLWNvbG9yLXJlZC05MDApO1xcbiAgfVxcblwiLFwiXFxuXCIpO2Z1bmN0aW9uIHRPKGUpe3JldHVybiBlJiZcInVuZGVmaW5lZFwiIT10eXBlb2YgU3ltYm9sJiZlLmNvbnN0cnVjdG9yPT09U3ltYm9sP1wic3ltYm9sXCI6dHlwZW9mIGV9ZnVuY3Rpb24gdEMoZSxuKXsobnVsbD09bnx8bj5lLmxlbmd0aCkmJihuPWUubGVuZ3RoKTtmb3IodmFyIHQ9MCxyPUFycmF5KG4pO3Q8bjt0Kyspclt0XT1lW3RdO3JldHVybiByfWZ1bmN0aW9uIHRTKGUpe3ZhciBuLHQscixvLGEsaT1lLnJ1bnRpbWVFcnJvcnMsbD1lLmdldFNxdWFzaGVkSHlkcmF0aW9uRXJyb3JEZXRhaWxzLHM9KHI9KDAseC51c2VTdGF0ZSkoMCksbz0yLGZ1bmN0aW9uKGUpe2lmKEFycmF5LmlzQXJyYXkoZSkpcmV0dXJuIGV9KHIpfHxmdW5jdGlvbihlLG4pe3ZhciB0LHIsbz1udWxsPT1lP251bGw6XCJ1bmRlZmluZWRcIiE9dHlwZW9mIFN5bWJvbCYmZVtTeW1ib2wuaXRlcmF0b3JdfHxlW1wiQEBpdGVyYXRvclwiXTtpZihudWxsIT1vKXt2YXIgYT1bXSxpPSEwLGw9ITE7dHJ5e2ZvcihvPW8uY2FsbChlKTshKGk9KHQ9by5uZXh0KCkpLmRvbmUpJiYoYS5wdXNoKHQudmFsdWUpLGEubGVuZ3RoIT09bik7aT0hMCk7fWNhdGNoKGUpe2w9ITAscj1lfWZpbmFsbHl7dHJ5e2l8fG51bGw9PW8ucmV0dXJufHxvLnJldHVybigpfWZpbmFsbHl7aWYobCl0aHJvdyByfX1yZXR1cm4gYX19KHIsMil8fGZ1bmN0aW9uKGUsbil7aWYoZSl7aWYoXCJzdHJpbmdcIj09dHlwZW9mIGUpcmV0dXJuIHRDKGUsbik7dmFyIHQ9T2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKGUpLnNsaWNlKDgsLTEpO2lmKFwiT2JqZWN0XCI9PT10JiZlLmNvbnN0cnVjdG9yJiYodD1lLmNvbnN0cnVjdG9yLm5hbWUpLFwiTWFwXCI9PT10fHxcIlNldFwiPT09dClyZXR1cm4gQXJyYXkuZnJvbSh0KTtpZihcIkFyZ3VtZW50c1wiPT09dHx8L14oPzpVaXxJKW50KD86OHwxNnwzMikoPzpDbGFtcGVkKT9BcnJheSQvLnRlc3QodCkpcmV0dXJuIHRDKGUsbil9fShyLG8pfHxmdW5jdGlvbigpe3Rocm93IFR5cGVFcnJvcihcIkludmFsaWQgYXR0ZW1wdCB0byBkZXN0cnVjdHVyZSBub24taXRlcmFibGUgaW5zdGFuY2UuXFxcXG5JbiBvcmRlciB0byBiZSBpdGVyYWJsZSwgbm9uLWFycmF5IG9iamVjdHMgbXVzdCBoYXZlIGEgW1N5bWJvbC5pdGVyYXRvcl0oKSBtZXRob2QuXCIpfSgpKSxjPXNbMF0sdT1zWzFdLGQ9KDAseC51c2VNZW1vKShmdW5jdGlvbigpe3JldHVybiAwPT09aS5sZW5ndGh9LFtpLmxlbmd0aF0pLGY9KDAseC51c2VNZW1vKShmdW5jdGlvbigpe3ZhciBlO3JldHVybiBudWxsIT0oZT1pW2NdKT9lOm51bGx9LFtjLGldKSxwPShuPW51bGw9PWY/dm9pZCAwOmYuZXJyb3IsdD1sLCgwLHgudXNlTWVtbykoZnVuY3Rpb24oKXtpZih2b2lkIDA9PT1uKXJldHVybiB0TDt2YXIgZSxyLG8sYT10KG4pO2lmKG51bGwhPT1hKXJldHVybntoeWRyYXRpb25XYXJuaW5nOm51bGwhPShyPWEud2FybmluZyk/cjpudWxsLG5vdGVzOm51bGwscmVhY3RPdXRwdXRDb21wb25lbnREaWZmOm51bGwhPShvPWEucmVhY3RPdXRwdXRDb21wb25lbnREaWZmKT9vOm51bGx9O2lmKCEobmcoKGU9bikubWVzc2FnZSl8fC9IeWRyYXRpb24gZmFpbGVkIGJlY2F1c2UgdGhlIHNlcnZlciByZW5kZXJlZCAodGV4dHxIVE1MKSBkaWRuJ3QgbWF0Y2ggdGhlIGNsaWVudFxcLi8udGVzdChlLm1lc3NhZ2UpfHwvQSB0cmVlIGh5ZHJhdGVkIGJ1dCBzb21lIGF0dHJpYnV0ZXMgb2YgdGhlIHNlcnZlciByZW5kZXJlZCBIVE1MIGRpZG4ndCBtYXRjaCB0aGUgY2xpZW50IHByb3BlcnRpZXMuLy50ZXN0KGUubWVzc2FnZSkpKXJldHVybiB0TDt2YXIgaT1mdW5jdGlvbihlKXt2YXIgbj1lLm1lc3NhZ2U7aWYobmcobikpe3ZhciB0PW5jKG4uc3BsaXQoXCJcXG5cXG5cIiksMikscj10WzBdLG89dFsxXSxhPSh2b2lkIDA9PT1vP1wiXCI6bykudHJpbSgpO3JldHVybnttZXNzYWdlOlwiXCI9PT1hP24udHJpbSgpOnIudHJpbSgpLGRpZmY6YSxub3RlczpudWxsfX12YXIgaT1uYyhuLnNwbGl0KFwiXCIuY29uY2F0KG5mKSksMiksbD1pWzBdLHM9aVsxXSxjPWwudHJpbSgpO2lmKHZvaWQgMCE9PXMmJnMubGVuZ3RoPjEpe3ZhciB1PVtdO3Muc3BsaXQoXCJcXG5cIikuZm9yRWFjaChmdW5jdGlvbihlKXtcIlwiIT09ZS50cmltKCkmJihlLnRyaW0oKS5zdGFydHNXaXRoKFwiYXQgXCIpfHx1LnB1c2goZSkpfSk7dmFyIGQ9bnUoYy5zcGxpdChcIlxcblxcblwiKSksZj1kWzBdLHA9ZC5zbGljZSgxKTtyZXR1cm57bWVzc2FnZTpmLGRpZmY6dS5qb2luKFwiXFxuXCIpLG5vdGVzOnAuam9pbihcIlxcblxcblwiKXx8bnVsbH19dmFyIGg9bnUoYy5zcGxpdChcIlxcblxcblwiKSk7cmV0dXJue21lc3NhZ2U6aFswXSxkaWZmOm51bGwsbm90ZXM6aC5zbGljZSgxKS5qb2luKFwiXFxuXFxuXCIpfX0obiksbD1pLm1lc3NhZ2Uscz1pLm5vdGVzLGM9aS5kaWZmO3JldHVybiBudWxsPT09bD90TDp7aHlkcmF0aW9uV2FybmluZzpsLG5vdGVzOnMscmVhY3RPdXRwdXRDb21wb25lbnREaWZmOmN9fSxbbix0XSkpO2lmKGR8fCFmKXJldHVybntpc0xvYWRpbmc6ZCxhY3RpdmVJZHg6YyxzZXRBY3RpdmVJbmRleDp1LGFjdGl2ZUVycm9yOm51bGwsZXJyb3JEZXRhaWxzOm51bGwsZXJyb3JDb2RlOm51bGwsZXJyb3JUeXBlOm51bGwsbm90ZXM6bnVsbCxoeWRyYXRpb25XYXJuaW5nOm51bGx9O3ZhciBoPWYuZXJyb3IsZz0odm9pZCAwPT09KGE9aCk/XCJ1bmRlZmluZWRcIjp0TyhhKSk9PT1cIm9iamVjdFwiJiZudWxsIT09YSYmXCJfX05FWFRfRVJST1JfQ09ERVwiaW4gYSYmXCJzdHJpbmdcIj09dHlwZW9mIGEuX19ORVhUX0VSUk9SX0NPREU/YS5fX05FWFRfRVJST1JfQ09ERToodm9pZCAwPT09YT9cInVuZGVmaW5lZFwiOnRPKGEpKT09PVwib2JqZWN0XCImJm51bGwhPT1hJiZcImRpZ2VzdFwiaW4gYSYmXCJzdHJpbmdcIj09dHlwZW9mIGEuZGlnZXN0P2EuZGlnZXN0LnNwbGl0KFwiQFwiKS5maW5kKGZ1bmN0aW9uKGUpe3JldHVybiBlLnN0YXJ0c1dpdGgoXCJFXCIpfSk6dm9pZCAwLG09dHooaCxmLnR5cGUpLHY9cC5ub3RlcyxiPXAuaHlkcmF0aW9uV2FybmluZztyZXR1cm57aXNMb2FkaW5nOmQsYWN0aXZlSWR4OmMsc2V0QWN0aXZlSW5kZXg6dSxhY3RpdmVFcnJvcjpmLGVycm9yRGV0YWlsczpwLGVycm9yQ29kZTpnLGVycm9yVHlwZTptLG5vdGVzOnYsaHlkcmF0aW9uV2FybmluZzpifX1mdW5jdGlvbiB0RShlKXtyZXR1cm4gZS5zdGFydHNXaXRoKFwiaHR0cHM6Ly9uZXh0anMub3JnXCIpfWZ1bmN0aW9uIHRfKGUpe3ZhciBuPWUubWVzc2FnZTtyZXR1cm4oMCx5LmpzeCkoZWIse3RleHQ6bixtYXRjaGVyOnRFfSl9ZnVuY3Rpb24gdFAoZSl7dmFyIG49ZS5lcnJvcix0PVwiZW52aXJvbm1lbnROYW1lXCJpbiBuP24uZW52aXJvbm1lbnROYW1lOlwiXCIscj10P1wiWyBcIi5jb25jYXQodCxcIiBdIFwiKTpcIlwiLG89bi5tZXNzYWdlO3JldHVybiBvLnN0YXJ0c1dpdGgocikmJihvPW8uc2xpY2Uoci5sZW5ndGgpKSwoMCx5LmpzeCkoeS5GcmFnbWVudCx7Y2hpbGRyZW46KDAseS5qc3gpKGViLHt0ZXh0Om8sbWF0Y2hlcjp0RX0pfSl9ZnVuY3Rpb24gdHooZSxuKXtyZXR1cm5cInJlY292ZXJhYmxlXCI9PT1uP1wiUmVjb3ZlcmFibGUgXCIuY29uY2F0KGUubmFtZSk6XCJjb25zb2xlXCI9PT1uP1wiQ29uc29sZSBcIi5jb25jYXQoZS5uYW1lKTpcIlJ1bnRpbWUgXCIuY29uY2F0KGUubmFtZSl9dmFyIHRMPXtoeWRyYXRpb25XYXJuaW5nOm51bGwsbm90ZXM6bnVsbCxyZWFjdE91dHB1dENvbXBvbmVudERpZmY6bnVsbH07ZnVuY3Rpb24gdFQoZSl7dmFyIG4sdCxyPWUuZ2V0U3F1YXNoZWRIeWRyYXRpb25FcnJvckRldGFpbHMsbz1lLnJ1bnRpbWVFcnJvcnMsYT1lLmRlYnVnSW5mbyxpPWUub25DbG9zZSxsPWZ1bmN0aW9uKGUsbil7aWYobnVsbD09ZSlyZXR1cm57fTt2YXIgdCxyLG89ZnVuY3Rpb24oZSxuKXtpZihudWxsPT1lKXJldHVybnt9O3ZhciB0LHIsbz17fSxhPU9iamVjdC5rZXlzKGUpO2ZvcihyPTA7cjxhLmxlbmd0aDtyKyspdD1hW3JdLG4uaW5kZXhPZih0KT49MHx8KG9bdF09ZVt0XSk7cmV0dXJuIG99KGUsbik7aWYoT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyl7dmFyIGE9T2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhlKTtmb3Iocj0wO3I8YS5sZW5ndGg7cisrKXQ9YVtyXSwhKG4uaW5kZXhPZih0KT49MCkmJk9iamVjdC5wcm90b3R5cGUucHJvcGVydHlJc0VudW1lcmFibGUuY2FsbChlLHQpJiYob1t0XT1lW3RdKX1yZXR1cm4gb30oZSxbXCJnZXRTcXVhc2hlZEh5ZHJhdGlvbkVycm9yRGV0YWlsc1wiLFwicnVudGltZUVycm9yc1wiLFwiZGVidWdJbmZvXCIsXCJvbkNsb3NlXCJdKSxzPSgwLHgudXNlUmVmKShudWxsKSxjPXRTKHtydW50aW1lRXJyb3JzOm8sZ2V0U3F1YXNoZWRIeWRyYXRpb25FcnJvckRldGFpbHM6cn0pLHU9Yy5pc0xvYWRpbmcsZD1jLmVycm9yQ29kZSxmPWMuZXJyb3JUeXBlLHA9Yy5ub3RlcyxoPWMuaHlkcmF0aW9uV2FybmluZyxnPWMuYWN0aXZlSWR4LG09Yy5lcnJvckRldGFpbHMsdj1jLmFjdGl2ZUVycm9yLGI9Yy5zZXRBY3RpdmVJbmRleDtpZih1KXJldHVybigwLHkuanN4KShuWix7Y2hpbGRyZW46KDAseS5qc3gpKG4yLHt9KX0pO2lmKCF2KXJldHVybiBudWxsO3ZhciB3PXYuZXJyb3Isaj1bXCJzZXJ2ZXJcIixcImVkZ2Utc2VydmVyXCJdLmluY2x1ZGVzKHRtKHcpfHxcIlwiKTtyZXR1cm4oMCx5LmpzeHMpKG45LChuPWZ1bmN0aW9uKGUpe2Zvcih2YXIgbj0xO248YXJndW1lbnRzLmxlbmd0aDtuKyspe3ZhciB0PW51bGwhPWFyZ3VtZW50c1tuXT9hcmd1bWVudHNbbl06e30scj1PYmplY3Qua2V5cyh0KTtcImZ1bmN0aW9uXCI9PXR5cGVvZiBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzJiYocj1yLmNvbmNhdChPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKHQpLmZpbHRlcihmdW5jdGlvbihlKXtyZXR1cm4gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcih0LGUpLmVudW1lcmFibGV9KSkpLHIuZm9yRWFjaChmdW5jdGlvbihuKXt2YXIgcixvLGE7cj1lLG89bixhPXRbbl0sbyBpbiByP09iamVjdC5kZWZpbmVQcm9wZXJ0eShyLG8se3ZhbHVlOmEsZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITB9KTpyW29dPWF9KX1yZXR1cm4gZX0oe2Vycm9yQ29kZTpkLGVycm9yVHlwZTpmLGVycm9yTWVzc2FnZTpoPygwLHkuanN4KSh0Xyx7bWVzc2FnZTpofSk6KDAseS5qc3gpKHRQLHtlcnJvcjp3fSksb25DbG9zZTpqP3ZvaWQgMDppLGRlYnVnSW5mbzphLGVycm9yOncscnVudGltZUVycm9yczpvLGFjdGl2ZUlkeDpnLHNldEFjdGl2ZUluZGV4OmIsZGlhbG9nUmVzaXplclJlZjpzfSxsKSx0PXQ9e2NoaWxkcmVuOlsoMCx5LmpzeHMpKFwiZGl2XCIse2NsYXNzTmFtZTpcImVycm9yLW92ZXJsYXktbm90ZXMtY29udGFpbmVyXCIsY2hpbGRyZW46W3A/KDAseS5qc3gpKHkuRnJhZ21lbnQse2NoaWxkcmVuOigwLHkuanN4KShcInBcIix7aWQ6XCJuZXh0anNfX2NvbnRhaW5lcl9lcnJvcnNfX25vdGVzXCIsY2xhc3NOYW1lOlwibmV4dGpzX19jb250YWluZXJfZXJyb3JzX19ub3Rlc1wiLGNoaWxkcmVuOnB9KX0pOm51bGwsaD8oMCx5LmpzeCkoXCJwXCIse2lkOlwibmV4dGpzX19jb250YWluZXJfZXJyb3JzX19saW5rXCIsY2xhc3NOYW1lOlwibmV4dGpzX19jb250YWluZXJfZXJyb3JzX19saW5rXCIsY2hpbGRyZW46KDAseS5qc3gpKGViLHt0ZXh0OlwiU2VlIG1vcmUgaW5mbyBoZXJlOiBcIi5jb25jYXQobnApfSl9KTpudWxsXX0pLG0ucmVhY3RPdXRwdXRDb21wb25lbnREaWZmPygwLHkuanN4KSh0aCx7cmVhY3RPdXRwdXRDb21wb25lbnREaWZmOm0ucmVhY3RPdXRwdXRDb21wb25lbnREaWZmfHxcIlwifSk6bnVsbCwoMCx5LmpzeCkoeC5TdXNwZW5zZSx7ZmFsbGJhY2s6KDAseS5qc3gpKFwiZGl2XCIse1wiZGF0YS1uZXh0anMtZXJyb3Itc3VzcGVuZGVkXCI6ITB9KSxjaGlsZHJlbjooMCx5LmpzeCkodGsse2Vycm9yOnYsZGlhbG9nUmVzaXplclJlZjpzfSx2LmlkLnRvU3RyaW5nKCkpfSldfSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycz9PYmplY3QuZGVmaW5lUHJvcGVydGllcyhuLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzKHQpKTooZnVuY3Rpb24oZSxuKXt2YXIgdD1PYmplY3Qua2V5cyhlKTtpZihPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKXt2YXIgcj1PYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKGUpO3QucHVzaC5hcHBseSh0LHIpfXJldHVybiB0fSkoT2JqZWN0KHQpKS5mb3JFYWNoKGZ1bmN0aW9uKGUpe09iamVjdC5kZWZpbmVQcm9wZXJ0eShuLGUsT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcih0LGUpKX0pLG4pKX12YXIgdFI9eC5mb3J3YXJkUmVmKGZ1bmN0aW9uKGUsbil7dmFyIHQscixvPWUub25DbGljayxhPWUuY2hpbGRyZW4saT1lLmNsYXNzTmFtZSxsPWZ1bmN0aW9uKGUsbil7aWYobnVsbD09ZSlyZXR1cm57fTt2YXIgdCxyLG89ZnVuY3Rpb24oZSxuKXtpZihudWxsPT1lKXJldHVybnt9O3ZhciB0LHIsbz17fSxhPU9iamVjdC5rZXlzKGUpO2ZvcihyPTA7cjxhLmxlbmd0aDtyKyspdD1hW3JdLG4uaW5kZXhPZih0KT49MHx8KG9bdF09ZVt0XSk7cmV0dXJuIG99KGUsbik7aWYoT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyl7dmFyIGE9T2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhlKTtmb3Iocj0wO3I8YS5sZW5ndGg7cisrKXQ9YVtyXSwhKG4uaW5kZXhPZih0KT49MCkmJk9iamVjdC5wcm90b3R5cGUucHJvcGVydHlJc0VudW1lcmFibGUuY2FsbChlLHQpJiYob1t0XT1lW3RdKX1yZXR1cm4gb30oZSxbXCJvbkNsaWNrXCIsXCJjaGlsZHJlblwiLFwiY2xhc3NOYW1lXCJdKTtyZXR1cm4oMCx5LmpzeCkoXCJkaXZcIiwodD1mdW5jdGlvbihlKXtmb3IodmFyIG49MTtuPGFyZ3VtZW50cy5sZW5ndGg7bisrKXt2YXIgdD1udWxsIT1hcmd1bWVudHNbbl0/YXJndW1lbnRzW25dOnt9LHI9T2JqZWN0LmtleXModCk7XCJmdW5jdGlvblwiPT10eXBlb2YgT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyYmKHI9ci5jb25jYXQoT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyh0KS5maWx0ZXIoZnVuY3Rpb24oZSl7cmV0dXJuIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IodCxlKS5lbnVtZXJhYmxlfSkpKSxyLmZvckVhY2goZnVuY3Rpb24obil7dmFyIHIsbyxhO3I9ZSxvPW4sYT10W25dLG8gaW4gcj9PYmplY3QuZGVmaW5lUHJvcGVydHkocixvLHt2YWx1ZTphLGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwfSk6cltvXT1hfSl9cmV0dXJuIGV9KHt9LGwpLHI9cj17cmVmOm4sb25DbGljazpmdW5jdGlvbihlKXtyZXR1cm4gZS50YXJnZXQuY2xvc2VzdChcImFcIil8fGUucHJldmVudERlZmF1bHQoKSxudWxsPT1vP3ZvaWQgMDpvKCl9LGNsYXNzTmFtZTooMCxlSi5jeCkoXCJuZXh0anMtdG9hc3RcIixpKSxjaGlsZHJlbjphfSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycz9PYmplY3QuZGVmaW5lUHJvcGVydGllcyh0LE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzKHIpKTooZnVuY3Rpb24oZSxuKXt2YXIgdD1PYmplY3Qua2V5cyhlKTtpZihPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKXt2YXIgcj1PYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKGUpO3QucHVzaC5hcHBseSh0LHIpfXJldHVybiB0fSkoT2JqZWN0KHIpKS5mb3JFYWNoKGZ1bmN0aW9uKGUpe09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LGUsT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihyLGUpKX0pLHQpKX0pO2Z1bmN0aW9uIHROKGUsbil7KG51bGw9PW58fG4+ZS5sZW5ndGgpJiYobj1lLmxlbmd0aCk7Zm9yKHZhciB0PTAscj1BcnJheShuKTt0PG47dCsrKXJbdF09ZVt0XTtyZXR1cm4gcn1mdW5jdGlvbiB0RChlKXt2YXIgbix0LHI9YXJndW1lbnRzLmxlbmd0aD4xJiZ2b2lkIDAhPT1hcmd1bWVudHNbMV0/YXJndW1lbnRzWzFdOjc1MCxvPShuPSgwLHgudXNlU3RhdGUpKCExKSx0PTIsZnVuY3Rpb24oZSl7aWYoQXJyYXkuaXNBcnJheShlKSlyZXR1cm4gZX0obil8fGZ1bmN0aW9uKGUsbil7dmFyIHQscixvPW51bGw9PWU/bnVsbDpcInVuZGVmaW5lZFwiIT10eXBlb2YgU3ltYm9sJiZlW1N5bWJvbC5pdGVyYXRvcl18fGVbXCJAQGl0ZXJhdG9yXCJdO2lmKG51bGwhPW8pe3ZhciBhPVtdLGk9ITAsbD0hMTt0cnl7Zm9yKG89by5jYWxsKGUpOyEoaT0odD1vLm5leHQoKSkuZG9uZSkmJihhLnB1c2godC52YWx1ZSksYS5sZW5ndGghPT1uKTtpPSEwKTt9Y2F0Y2goZSl7bD0hMCxyPWV9ZmluYWxseXt0cnl7aXx8bnVsbD09by5yZXR1cm58fG8ucmV0dXJuKCl9ZmluYWxseXtpZihsKXRocm93IHJ9fXJldHVybiBhfX0obiwyKXx8ZnVuY3Rpb24oZSxuKXtpZihlKXtpZihcInN0cmluZ1wiPT10eXBlb2YgZSlyZXR1cm4gdE4oZSxuKTt2YXIgdD1PYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwoZSkuc2xpY2UoOCwtMSk7aWYoXCJPYmplY3RcIj09PXQmJmUuY29uc3RydWN0b3ImJih0PWUuY29uc3RydWN0b3IubmFtZSksXCJNYXBcIj09PXR8fFwiU2V0XCI9PT10KXJldHVybiBBcnJheS5mcm9tKHQpO2lmKFwiQXJndW1lbnRzXCI9PT10fHwvXig/OlVpfEkpbnQoPzo4fDE2fDMyKSg/OkNsYW1wZWQpP0FycmF5JC8udGVzdCh0KSlyZXR1cm4gdE4oZSxuKX19KG4sdCl8fGZ1bmN0aW9uKCl7dGhyb3cgVHlwZUVycm9yKFwiSW52YWxpZCBhdHRlbXB0IHRvIGRlc3RydWN0dXJlIG5vbi1pdGVyYWJsZSBpbnN0YW5jZS5cXFxcbkluIG9yZGVyIHRvIGJlIGl0ZXJhYmxlLCBub24tYXJyYXkgb2JqZWN0cyBtdXN0IGhhdmUgYSBbU3ltYm9sLml0ZXJhdG9yXSgpIG1ldGhvZC5cIil9KCkpLGE9b1swXSxpPW9bMV0sbD0oMCx4LnVzZVJlZikobnVsbCkscz0oMCx4LnVzZVJlZikobnVsbCk7cmV0dXJuKDAseC51c2VFZmZlY3QpKGZ1bmN0aW9uKCl7aWYocy5jdXJyZW50JiYoY2xlYXJUaW1lb3V0KHMuY3VycmVudCkscy5jdXJyZW50PW51bGwpLGUpbnVsbD09PWwuY3VycmVudCYmKGwuY3VycmVudD1EYXRlLm5vdygpKSxpKCEwKTtlbHNlIGlmKG51bGw9PT1sLmN1cnJlbnQpaSghMSk7ZWxzZXt2YXIgbj1EYXRlLm5vdygpLWwuY3VycmVudCx0PXIqTWF0aC5jZWlsKG4vciktbjt0PjA/cy5jdXJyZW50PXNldFRpbWVvdXQoZnVuY3Rpb24oKXtpKCExKSxsLmN1cnJlbnQ9bnVsbH0sdCk6KGkoITEpLGwuY3VycmVudD1udWxsKX1yZXR1cm4gZnVuY3Rpb24oKXtzLmN1cnJlbnQmJmNsZWFyVGltZW91dChzLmN1cnJlbnQpfX0sW2Uscl0pLGF9ZnVuY3Rpb24gdEIoZSxuKXsobnVsbD09bnx8bj5lLmxlbmd0aCkmJihuPWUubGVuZ3RoKTtmb3IodmFyIHQ9MCxyPUFycmF5KG4pO3Q8bjt0Kyspclt0XT1lW3RdO3JldHVybiByfWZ1bmN0aW9uIHRNKGUpe3ZhciBuLHQscj1hcmd1bWVudHMubGVuZ3RoPjEmJnZvaWQgMCE9PWFyZ3VtZW50c1sxXT9hcmd1bWVudHNbMV06MCxvPSgwLHgudXNlUmVmKShudWxsKSxhPShuPSgwLHgudXNlU3RhdGUpKCExKSx0PTIsZnVuY3Rpb24oZSl7aWYoQXJyYXkuaXNBcnJheShlKSlyZXR1cm4gZX0obil8fGZ1bmN0aW9uKGUsbil7dmFyIHQscixvPW51bGw9PWU/bnVsbDpcInVuZGVmaW5lZFwiIT10eXBlb2YgU3ltYm9sJiZlW1N5bWJvbC5pdGVyYXRvcl18fGVbXCJAQGl0ZXJhdG9yXCJdO2lmKG51bGwhPW8pe3ZhciBhPVtdLGk9ITAsbD0hMTt0cnl7Zm9yKG89by5jYWxsKGUpOyEoaT0odD1vLm5leHQoKSkuZG9uZSkmJihhLnB1c2godC52YWx1ZSksYS5sZW5ndGghPT1uKTtpPSEwKTt9Y2F0Y2goZSl7bD0hMCxyPWV9ZmluYWxseXt0cnl7aXx8bnVsbD09by5yZXR1cm58fG8ucmV0dXJuKCl9ZmluYWxseXtpZihsKXRocm93IHJ9fXJldHVybiBhfX0obiwyKXx8ZnVuY3Rpb24oZSxuKXtpZihlKXtpZihcInN0cmluZ1wiPT10eXBlb2YgZSlyZXR1cm4gdEIoZSxuKTt2YXIgdD1PYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwoZSkuc2xpY2UoOCwtMSk7aWYoXCJPYmplY3RcIj09PXQmJmUuY29uc3RydWN0b3ImJih0PWUuY29uc3RydWN0b3IubmFtZSksXCJNYXBcIj09PXR8fFwiU2V0XCI9PT10KXJldHVybiBBcnJheS5mcm9tKHQpO2lmKFwiQXJndW1lbnRzXCI9PT10fHwvXig/OlVpfEkpbnQoPzo4fDE2fDMyKSg/OkNsYW1wZWQpP0FycmF5JC8udGVzdCh0KSlyZXR1cm4gdEIoZSxuKX19KG4sdCl8fGZ1bmN0aW9uKCl7dGhyb3cgVHlwZUVycm9yKFwiSW52YWxpZCBhdHRlbXB0IHRvIGRlc3RydWN0dXJlIG5vbi1pdGVyYWJsZSBpbnN0YW5jZS5cXFxcbkluIG9yZGVyIHRvIGJlIGl0ZXJhYmxlLCBub24tYXJyYXkgb2JqZWN0cyBtdXN0IGhhdmUgYSBbU3ltYm9sLml0ZXJhdG9yXSgpIG1ldGhvZC5cIil9KCkpLGk9YVswXSxsPWFbMV07cmV0dXJuKDAseC51c2VFZmZlY3QpKGZ1bmN0aW9uKCl7aWYoZT4wKXt2YXIgbj1vLmN1cnJlbnQ/RGF0ZS5ub3coKS1vLmN1cnJlbnQ6LTE7aWYoby5jdXJyZW50PURhdGUubm93KCksIShuPD1yKSl7bCghMCk7dmFyIHQ9d2luZG93LnNldFRpbWVvdXQoZnVuY3Rpb24oKXtsKCExKX0scik7cmV0dXJuIGZ1bmN0aW9uKCl7Y2xlYXJUaW1lb3V0KHQpfX19fSxbZSxyXSksaX1mdW5jdGlvbiB0SShlLG4peyhudWxsPT1ufHxuPmUubGVuZ3RoKSYmKG49ZS5sZW5ndGgpO2Zvcih2YXIgdD0wLHI9QXJyYXkobik7dDxuO3QrKylyW3RdPWVbdF07cmV0dXJuIHJ9ZnVuY3Rpb24gdEgoZSxuKXtyZXR1cm4gZnVuY3Rpb24oZSl7aWYoQXJyYXkuaXNBcnJheShlKSlyZXR1cm4gZX0oZSl8fGZ1bmN0aW9uKGUsbil7dmFyIHQscixvPW51bGw9PWU/bnVsbDpcInVuZGVmaW5lZFwiIT10eXBlb2YgU3ltYm9sJiZlW1N5bWJvbC5pdGVyYXRvcl18fGVbXCJAQGl0ZXJhdG9yXCJdO2lmKG51bGwhPW8pe3ZhciBhPVtdLGk9ITAsbD0hMTt0cnl7Zm9yKG89by5jYWxsKGUpOyEoaT0odD1vLm5leHQoKSkuZG9uZSkmJihhLnB1c2godC52YWx1ZSksIW58fGEubGVuZ3RoIT09bik7aT0hMCk7fWNhdGNoKGUpe2w9ITAscj1lfWZpbmFsbHl7dHJ5e2l8fG51bGw9PW8ucmV0dXJufHxvLnJldHVybigpfWZpbmFsbHl7aWYobCl0aHJvdyByfX1yZXR1cm4gYX19KGUsbil8fGZ1bmN0aW9uKGUsbil7aWYoZSl7aWYoXCJzdHJpbmdcIj09dHlwZW9mIGUpcmV0dXJuIHRJKGUsbik7dmFyIHQ9T2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKGUpLnNsaWNlKDgsLTEpO2lmKFwiT2JqZWN0XCI9PT10JiZlLmNvbnN0cnVjdG9yJiYodD1lLmNvbnN0cnVjdG9yLm5hbWUpLFwiTWFwXCI9PT10fHxcIlNldFwiPT09dClyZXR1cm4gQXJyYXkuZnJvbSh0KTtpZihcIkFyZ3VtZW50c1wiPT09dHx8L14oPzpVaXxJKW50KD86OHwxNnwzMikoPzpDbGFtcGVkKT9BcnJheSQvLnRlc3QodCkpcmV0dXJuIHRJKGUsbil9fShlLG4pfHxmdW5jdGlvbigpe3Rocm93IFR5cGVFcnJvcihcIkludmFsaWQgYXR0ZW1wdCB0byBkZXN0cnVjdHVyZSBub24taXRlcmFibGUgaW5zdGFuY2UuXFxcXG5JbiBvcmRlciB0byBiZSBpdGVyYWJsZSwgbm9uLWFycmF5IG9iamVjdHMgbXVzdCBoYXZlIGEgW1N5bWJvbC5pdGVyYXRvcl0oKSBtZXRob2QuXCIpfSgpfWZ1bmN0aW9uIHRGKGUpe3ZhciBuPXRIKCgwLHgudXNlU3RhdGUpKDApLDIpLHQ9blswXSxyPW5bMV07cmV0dXJuKDAseC51c2VFZmZlY3QpKGZ1bmN0aW9uKCl7dmFyIG49ZS5jdXJyZW50O2lmKG4pe3ZhciB0PW5ldyBSZXNpemVPYnNlcnZlcihmdW5jdGlvbihlKXtyKHRIKGUsMSlbMF0uY29udGVudFJlY3Qud2lkdGgpfSk7cmV0dXJuIHQub2JzZXJ2ZShuKSxmdW5jdGlvbigpe3JldHVybiB0LmRpc2Nvbm5lY3QoKX19fSxbZV0pLHR9ZnVuY3Rpb24gdFUoZSxuKXsobnVsbD09bnx8bj5lLmxlbmd0aCkmJihuPWUubGVuZ3RoKTtmb3IodmFyIHQ9MCxyPUFycmF5KG4pO3Q8bjt0Kyspclt0XT1lW3RdO3JldHVybiByfWZ1bmN0aW9uIHRWKGUpe2Zvcih2YXIgbj0xO248YXJndW1lbnRzLmxlbmd0aDtuKyspe3ZhciB0PW51bGwhPWFyZ3VtZW50c1tuXT9hcmd1bWVudHNbbl06e30scj1PYmplY3Qua2V5cyh0KTtcImZ1bmN0aW9uXCI9PXR5cGVvZiBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzJiYocj1yLmNvbmNhdChPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKHQpLmZpbHRlcihmdW5jdGlvbihlKXtyZXR1cm4gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcih0LGUpLmVudW1lcmFibGV9KSkpLHIuZm9yRWFjaChmdW5jdGlvbihuKXt2YXIgcixvLGE7cj1lLG89bixhPXRbbl0sbyBpbiByP09iamVjdC5kZWZpbmVQcm9wZXJ0eShyLG8se3ZhbHVlOmEsZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITB9KTpyW29dPWF9KX1yZXR1cm4gZX1mdW5jdGlvbiB0cShlLG4pe3JldHVybiBuPW51bGwhPW4/bjp7fSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycz9PYmplY3QuZGVmaW5lUHJvcGVydGllcyhlLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzKG4pKTooZnVuY3Rpb24oZSxuKXt2YXIgdD1PYmplY3Qua2V5cyhlKTtpZihPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKXt2YXIgcj1PYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKGUpO3QucHVzaC5hcHBseSh0LHIpfXJldHVybiB0fSkoT2JqZWN0KG4pKS5mb3JFYWNoKGZ1bmN0aW9uKHQpe09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLHQsT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihuLHQpKX0pLGV9ZnVuY3Rpb24gdFcoZSxuKXtpZihudWxsPT1lKXJldHVybnt9O3ZhciB0LHIsbz1mdW5jdGlvbihlLG4pe2lmKG51bGw9PWUpcmV0dXJue307dmFyIHQscixvPXt9LGE9T2JqZWN0LmtleXMoZSk7Zm9yKHI9MDtyPGEubGVuZ3RoO3IrKyl0PWFbcl0sbi5pbmRleE9mKHQpPj0wfHwob1t0XT1lW3RdKTtyZXR1cm4gb30oZSxuKTtpZihPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKXt2YXIgYT1PYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKGUpO2ZvcihyPTA7cjxhLmxlbmd0aDtyKyspdD1hW3JdLCEobi5pbmRleE9mKHQpPj0wKSYmT2JqZWN0LnByb3RvdHlwZS5wcm9wZXJ0eUlzRW51bWVyYWJsZS5jYWxsKGUsdCkmJihvW3RdPWVbdF0pfXJldHVybiBvfWZ1bmN0aW9uIHQkKGUsbil7cmV0dXJuIGZ1bmN0aW9uKGUpe2lmKEFycmF5LmlzQXJyYXkoZSkpcmV0dXJuIGV9KGUpfHxmdW5jdGlvbihlLG4pe3ZhciB0LHIsbz1udWxsPT1lP251bGw6XCJ1bmRlZmluZWRcIiE9dHlwZW9mIFN5bWJvbCYmZVtTeW1ib2wuaXRlcmF0b3JdfHxlW1wiQEBpdGVyYXRvclwiXTtpZihudWxsIT1vKXt2YXIgYT1bXSxpPSEwLGw9ITE7dHJ5e2ZvcihvPW8uY2FsbChlKTshKGk9KHQ9by5uZXh0KCkpLmRvbmUpJiYoYS5wdXNoKHQudmFsdWUpLCFufHxhLmxlbmd0aCE9PW4pO2k9ITApO31jYXRjaChlKXtsPSEwLHI9ZX1maW5hbGx5e3RyeXtpfHxudWxsPT1vLnJldHVybnx8by5yZXR1cm4oKX1maW5hbGx5e2lmKGwpdGhyb3cgcn19cmV0dXJuIGF9fShlLG4pfHxmdW5jdGlvbihlLG4pe2lmKGUpe2lmKFwic3RyaW5nXCI9PXR5cGVvZiBlKXJldHVybiB0VShlLG4pO3ZhciB0PU9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChlKS5zbGljZSg4LC0xKTtpZihcIk9iamVjdFwiPT09dCYmZS5jb25zdHJ1Y3RvciYmKHQ9ZS5jb25zdHJ1Y3Rvci5uYW1lKSxcIk1hcFwiPT09dHx8XCJTZXRcIj09PXQpcmV0dXJuIEFycmF5LmZyb20odCk7aWYoXCJBcmd1bWVudHNcIj09PXR8fC9eKD86VWl8SSludCg/Ojh8MTZ8MzIpKD86Q2xhbXBlZCk/QXJyYXkkLy50ZXN0KHQpKXJldHVybiB0VShlLG4pfX0oZSxuKXx8ZnVuY3Rpb24oKXt0aHJvdyBUeXBlRXJyb3IoXCJJbnZhbGlkIGF0dGVtcHQgdG8gZGVzdHJ1Y3R1cmUgbm9uLWl0ZXJhYmxlIGluc3RhbmNlLlxcXFxuSW4gb3JkZXIgdG8gYmUgaXRlcmFibGUsIG5vbi1hcnJheSBvYmplY3RzIG11c3QgaGF2ZSBhIFtTeW1ib2wuaXRlcmF0b3JdKCkgbWV0aG9kLlwiKX0oKX1mdW5jdGlvbiB0Wigpe3ZhciBlLG4sdD0oZT1bXCJcXG4gICAgICAgICAgW2RhdGEtbmV4dC1iYWRnZS1yb290XSB7XFxuICAgICAgICAgICAgLS10aW1pbmc6IGN1YmljLWJlemllcigwLjIzLCAwLjg4LCAwLjI2LCAwLjkyKTtcXG4gICAgICAgICAgICAtLWR1cmF0aW9uLWxvbmc6IDI1MG1zO1xcbiAgICAgICAgICAgIC0tY29sb3Itb3V0ZXItYm9yZGVyOiAjMTcxNzE3O1xcbiAgICAgICAgICAgIC0tY29sb3ItaW5uZXItYm9yZGVyOiBoc2xhKDAsIDAlLCAxMDAlLCAwLjE0KTtcXG4gICAgICAgICAgICAtLWNvbG9yLWhvdmVyLWFscGhhLXN1YnRsZTogaHNsYSgwLCAwJSwgMTAwJSwgMC4xMyk7XFxuICAgICAgICAgICAgLS1jb2xvci1ob3Zlci1hbHBoYS1lcnJvcjogaHNsYSgwLCAwJSwgMTAwJSwgMC4yKTtcXG4gICAgICAgICAgICAtLWNvbG9yLWhvdmVyLWFscGhhLWVycm9yLTI6IGhzbGEoMCwgMCUsIDEwMCUsIDAuMjUpO1xcbiAgICAgICAgICAgIC0tbWFyay1zaXplOiBjYWxjKHZhcigtLXNpemUpIC0gdmFyKC0tc2l6ZS0yKSAqIDIpO1xcblxcbiAgICAgICAgICAgIC0tZm9jdXMtY29sb3I6IHZhcigtLWNvbG9yLWJsdWUtODAwKTtcXG4gICAgICAgICAgICAtLWZvY3VzLXJpbmc6IDJweCBzb2xpZCB2YXIoLS1mb2N1cy1jb2xvcik7XFxuXFxuICAgICAgICAgICAgJjpoYXMoW2RhdGEtbmV4dC1iYWRnZV1bZGF0YS1lcnJvcj0ndHJ1ZSddKSB7XFxuICAgICAgICAgICAgICAtLWZvY3VzLWNvbG9yOiAjZmZmO1xcbiAgICAgICAgICAgIH1cXG4gICAgICAgICAgfVxcblxcbiAgICAgICAgICBbZGF0YS1kaXNhYmxlZC1pY29uXSB7XFxuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcXG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDRweDtcXG4gICAgICAgICAgfVxcblxcbiAgICAgICAgICBbZGF0YS1uZXh0LWJhZGdlXSB7XFxuICAgICAgICAgICAgLXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7XFxuICAgICAgICAgICAgd2lkdGg6IHZhcigtLXNpemUpO1xcbiAgICAgICAgICAgIGhlaWdodDogdmFyKC0tc2l6ZSk7XFxuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcXG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcXG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKDAsIDAsIDAsIDAuOCk7XFxuICAgICAgICAgICAgYm94LXNoYWRvdzpcXG4gICAgICAgICAgICAgIDAgMCAwIDFweCB2YXIoLS1jb2xvci1vdXRlci1ib3JkZXIpLFxcbiAgICAgICAgICAgICAgaW5zZXQgMCAwIDAgMXB4IHZhcigtLWNvbG9yLWlubmVyLWJvcmRlciksXFxuICAgICAgICAgICAgICAwcHggMTZweCAzMnB4IC04cHggcmdiYSgwLCAwLCAwLCAwLjI0KTtcXG4gICAgICAgICAgICBiYWNrZHJvcC1maWx0ZXI6IGJsdXIoNDhweCk7XFxuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogdmFyKC0tcm91bmRlZC1mdWxsKTtcXG4gICAgICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTtcXG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XFxuICAgICAgICAgICAgc2NhbGU6IDE7XFxuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcXG4gICAgICAgICAgICB3aWxsLWNoYW5nZTogc2NhbGUsIGJveC1zaGFkb3csIHdpZHRoLCBiYWNrZ3JvdW5kO1xcbiAgICAgICAgICAgIHRyYW5zaXRpb246XFxuICAgICAgICAgICAgICBzY2FsZSB2YXIoLS1kdXJhdGlvbi1zaG9ydCkgdmFyKC0tdGltaW5nKSxcXG4gICAgICAgICAgICAgIHdpZHRoIHZhcigtLWR1cmF0aW9uLWxvbmcpIHZhcigtLXRpbWluZyksXFxuICAgICAgICAgICAgICBib3gtc2hhZG93IHZhcigtLWR1cmF0aW9uLWxvbmcpIHZhcigtLXRpbWluZyksXFxuICAgICAgICAgICAgICBiYWNrZ3JvdW5kIHZhcigtLWR1cmF0aW9uLXNob3J0KSBlYXNlO1xcblxcbiAgICAgICAgICAgICY6YWN0aXZlW2RhdGEtZXJyb3I9J2ZhbHNlJ10ge1xcbiAgICAgICAgICAgICAgc2NhbGU6IDAuOTU7XFxuICAgICAgICAgICAgfVxcblxcbiAgICAgICAgICAgICZbZGF0YS1hbmltYXRlPSd0cnVlJ106bm90KDpob3Zlcikge1xcbiAgICAgICAgICAgICAgc2NhbGU6IDEuMDI7XFxuICAgICAgICAgICAgfVxcblxcbiAgICAgICAgICAgICZbZGF0YS1lcnJvcj0nZmFsc2UnXTpoYXMoW2RhdGEtbmV4dC1tYXJrXTpmb2N1cy12aXNpYmxlKSB7XFxuICAgICAgICAgICAgICBvdXRsaW5lOiB2YXIoLS1mb2N1cy1yaW5nKTtcXG4gICAgICAgICAgICAgIG91dGxpbmUtb2Zmc2V0OiAzcHg7XFxuICAgICAgICAgICAgfVxcblxcbiAgICAgICAgICAgICZbZGF0YS1lcnJvcj0ndHJ1ZSddIHtcXG4gICAgICAgICAgICAgIGJhY2tncm91bmQ6ICNjYTJhMzA7XFxuICAgICAgICAgICAgICAtLWNvbG9yLWlubmVyLWJvcmRlcjogI2U1NDg0ZDtcXG5cXG4gICAgICAgICAgICAgIFtkYXRhLW5leHQtbWFya10ge1xcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1jb2xvci1ob3Zlci1hbHBoYS1lcnJvcik7XFxuICAgICAgICAgICAgICAgIG91dGxpbmUtb2Zmc2V0OiAwcHg7XFxuXFxuICAgICAgICAgICAgICAgICY6Zm9jdXMtdmlzaWJsZSB7XFxuICAgICAgICAgICAgICAgICAgb3V0bGluZTogdmFyKC0tZm9jdXMtcmluZyk7XFxuICAgICAgICAgICAgICAgICAgb3V0bGluZS1vZmZzZXQ6IC0xcHg7XFxuICAgICAgICAgICAgICAgIH1cXG5cXG4gICAgICAgICAgICAgICAgJjpob3ZlciB7XFxuICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tY29sb3ItaG92ZXItYWxwaGEtZXJyb3ItMik7XFxuICAgICAgICAgICAgICAgIH1cXG4gICAgICAgICAgICAgIH1cXG4gICAgICAgICAgICB9XFxuXFxuICAgICAgICAgICAgJltkYXRhLWVycm9yLWV4cGFuZGVkPSdmYWxzZSddW2RhdGEtZXJyb3I9J3RydWUnXSB+IFtkYXRhLWRvdF0ge1xcbiAgICAgICAgICAgICAgc2NhbGU6IDE7XFxuICAgICAgICAgICAgfVxcblxcbiAgICAgICAgICAgID4gZGl2IHtcXG4gICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XFxuICAgICAgICAgICAgfVxcbiAgICAgICAgICB9XFxuXFxuICAgICAgICAgIFtkYXRhLWlzc3Vlcy1jb2xsYXBzZV06Zm9jdXMtdmlzaWJsZSB7XFxuICAgICAgICAgICAgb3V0bGluZTogdmFyKC0tZm9jdXMtcmluZyk7XFxuICAgICAgICAgIH1cXG5cXG4gICAgICAgICAgW2RhdGEtaXNzdWVzXTpoYXMoW2RhdGEtaXNzdWVzLW9wZW5dOmZvY3VzLXZpc2libGUpIHtcXG4gICAgICAgICAgICBvdXRsaW5lOiB2YXIoLS1mb2N1cy1yaW5nKTtcXG4gICAgICAgICAgICBvdXRsaW5lLW9mZnNldDogLTFweDtcXG4gICAgICAgICAgfVxcblxcbiAgICAgICAgICBbZGF0YS1kb3RdIHtcXG4gICAgICAgICAgICBjb250ZW50OiAnJztcXG4gICAgICAgICAgICB3aWR0aDogdmFyKC0tc2l6ZS04KTtcXG4gICAgICAgICAgICBoZWlnaHQ6IHZhcigtLXNpemUtOCk7XFxuICAgICAgICAgICAgYmFja2dyb3VuZDogI2ZmZjtcXG4gICAgICAgICAgICBib3gtc2hhZG93OiAwIDAgMCAxcHggdmFyKC0tY29sb3Itb3V0ZXItYm9yZGVyKTtcXG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiA1MCU7XFxuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xcbiAgICAgICAgICAgIHRvcDogMnB4O1xcbiAgICAgICAgICAgIHJpZ2h0OiAwcHg7XFxuICAgICAgICAgICAgc2NhbGU6IDA7XFxuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XFxuICAgICAgICAgICAgdHJhbnNpdGlvbjogc2NhbGUgMjAwbXMgdmFyKC0tdGltaW5nKTtcXG4gICAgICAgICAgICB0cmFuc2l0aW9uLWRlbGF5OiB2YXIoLS1kdXJhdGlvbi1zaG9ydCk7XFxuICAgICAgICAgIH1cXG5cXG4gICAgICAgICAgW2RhdGEtaXNzdWVzXSB7XFxuICAgICAgICAgICAgLS1wYWRkaW5nLWxlZnQ6IDhweDtcXG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xcbiAgICAgICAgICAgIGdhcDogMnB4O1xcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XFxuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiA4cHg7XFxuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogOHB4O1xcbiAgICAgICAgICAgIGhlaWdodDogdmFyKC0tc2l6ZS0zMik7XFxuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAycHg7XFxuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogdmFyKC0tcm91bmRlZC1mdWxsKTtcXG4gICAgICAgICAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIHZhcigtLWR1cmF0aW9uLXNob3J0KSBlYXNlO1xcblxcbiAgICAgICAgICAgICY6aGFzKFtkYXRhLWlzc3Vlcy1vcGVuXTpob3Zlcikge1xcbiAgICAgICAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tY29sb3ItaG92ZXItYWxwaGEtZXJyb3IpO1xcbiAgICAgICAgICAgIH1cXG5cXG4gICAgICAgICAgICAmOmhhcyhbZGF0YS1pc3N1ZXMtY29sbGFwc2VdKSB7XFxuICAgICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiBjYWxjKHZhcigtLXBhZGRpbmctbGVmdCkgLyAyKTtcXG4gICAgICAgICAgICB9XFxuXFxuICAgICAgICAgICAgW2RhdGEtY3Jvc3NdIHtcXG4gICAgICAgICAgICAgIHRyYW5zbGF0ZTogMHB4IC0xcHg7XFxuICAgICAgICAgICAgfVxcbiAgICAgICAgICB9XFxuXFxuICAgICAgICAgIFtkYXRhLWlzc3Vlcy1vcGVuXSB7XFxuICAgICAgICAgICAgZm9udC1zaXplOiB2YXIoLS1zaXplLTEzKTtcXG4gICAgICAgICAgICBjb2xvcjogd2hpdGU7XFxuICAgICAgICAgICAgd2lkdGg6IGZpdC1jb250ZW50O1xcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcXG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xcbiAgICAgICAgICAgIGdhcDogMnB4O1xcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XFxuICAgICAgICAgICAgbWFyZ2luOiAwO1xcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiB2YXIoLS1zaXplLTM2KTtcXG4gICAgICAgICAgICBmb250LXdlaWdodDogNTAwO1xcbiAgICAgICAgICAgIHotaW5kZXg6IDI7XFxuICAgICAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcXG5cXG4gICAgICAgICAgICAmOmZvY3VzLXZpc2libGUge1xcbiAgICAgICAgICAgICAgb3V0bGluZTogMDtcXG4gICAgICAgICAgICB9XFxuICAgICAgICAgIH1cXG5cXG4gICAgICAgICAgW2RhdGEtaXNzdWVzLWNvbGxhcHNlXSB7XFxuICAgICAgICAgICAgd2lkdGg6IHZhcigtLXNpemUtMjQpO1xcbiAgICAgICAgICAgIGhlaWdodDogdmFyKC0tc2l6ZS0yNCk7XFxuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogdmFyKC0tcm91bmRlZC1mdWxsKTtcXG4gICAgICAgICAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIHZhcigtLWR1cmF0aW9uLXNob3J0KSBlYXNlO1xcblxcbiAgICAgICAgICAgICY6aG92ZXIge1xcbiAgICAgICAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tY29sb3ItaG92ZXItYWxwaGEtZXJyb3IpO1xcbiAgICAgICAgICAgIH1cXG4gICAgICAgICAgfVxcblxcbiAgICAgICAgICBbZGF0YS1jcm9zc10ge1xcbiAgICAgICAgICAgIGNvbG9yOiAjZmZmO1xcbiAgICAgICAgICAgIHdpZHRoOiB2YXIoLS1zaXplLTEyKTtcXG4gICAgICAgICAgICBoZWlnaHQ6IHZhcigtLXNpemUtMTIpO1xcbiAgICAgICAgICB9XFxuXFxuICAgICAgICAgIFtkYXRhLW5leHQtbWFya10ge1xcbiAgICAgICAgICAgIHdpZHRoOiB2YXIoLS1tYXJrLXNpemUpO1xcbiAgICAgICAgICAgIGhlaWdodDogdmFyKC0tbWFyay1zaXplKTtcXG4gICAgICAgICAgICBtYXJnaW46IDAgMnB4O1xcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XFxuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcXG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1yb3VuZGVkLWZ1bGwpO1xcbiAgICAgICAgICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQgdmFyKC0tZHVyYXRpb24tbG9uZykgdmFyKC0tdGltaW5nKTtcXG5cXG4gICAgICAgICAgICAmOmZvY3VzLXZpc2libGUge1xcbiAgICAgICAgICAgICAgb3V0bGluZTogMDtcXG4gICAgICAgICAgICB9XFxuXFxuICAgICAgICAgICAgJjpob3ZlciB7XFxuICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1jb2xvci1ob3Zlci1hbHBoYS1zdWJ0bGUpO1xcbiAgICAgICAgICAgIH1cXG5cXG4gICAgICAgICAgICBzdmcge1xcbiAgICAgICAgICAgICAgZmxleC1zaHJpbms6IDA7XFxuICAgICAgICAgICAgICB3aWR0aDogdmFyKC0tc2l6ZS00MCk7XFxuICAgICAgICAgICAgICBoZWlnaHQ6IHZhcigtLXNpemUtNDApO1xcbiAgICAgICAgICAgIH1cXG4gICAgICAgICAgfVxcblxcbiAgICAgICAgICBbZGF0YS1pc3N1ZXMtY291bnQtYW5pbWF0aW9uXSB7XFxuICAgICAgICAgICAgZGlzcGxheTogZ3JpZDtcXG4gICAgICAgICAgICBwbGFjZS1pdGVtczogY2VudGVyIGNlbnRlcjtcXG4gICAgICAgICAgICBmb250LXZhcmlhbnQtbnVtZXJpYzogdGFidWxhci1udW1zO1xcblxcbiAgICAgICAgICAgICZbZGF0YS1hbmltYXRlPSdmYWxzZSddIHtcXG4gICAgICAgICAgICAgIFtkYXRhLWlzc3Vlcy1jb3VudC1leGl0XSxcXG4gICAgICAgICAgICAgIFtkYXRhLWlzc3Vlcy1jb3VudC1lbnRlcl0ge1xcbiAgICAgICAgICAgICAgICBhbmltYXRpb24tZHVyYXRpb246IDBtcztcXG4gICAgICAgICAgICAgIH1cXG4gICAgICAgICAgICB9XFxuXFxuICAgICAgICAgICAgPiAqIHtcXG4gICAgICAgICAgICAgIGdyaWQtYXJlYTogMSAvIDE7XFxuICAgICAgICAgICAgfVxcblxcbiAgICAgICAgICAgIFtkYXRhLWlzc3Vlcy1jb3VudC1leGl0XSB7XFxuICAgICAgICAgICAgICBhbmltYXRpb246IGZhZGVPdXQgMzAwbXMgdmFyKC0tdGltaW5nKSBmb3J3YXJkcztcXG4gICAgICAgICAgICB9XFxuXFxuICAgICAgICAgICAgW2RhdGEtaXNzdWVzLWNvdW50LWVudGVyXSB7XFxuICAgICAgICAgICAgICBhbmltYXRpb246IGZhZGVJbiAzMDBtcyB2YXIoLS10aW1pbmcpIGZvcndhcmRzO1xcbiAgICAgICAgICAgIH1cXG4gICAgICAgICAgfVxcblxcbiAgICAgICAgICBbZGF0YS1pc3N1ZXMtY291bnQtcGx1cmFsXSB7XFxuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xcbiAgICAgICAgICAgICZbZGF0YS1hbmltYXRlPSd0cnVlJ10ge1xcbiAgICAgICAgICAgICAgYW5pbWF0aW9uOiBmYWRlSW4gMzAwbXMgdmFyKC0tdGltaW5nKSBmb3J3YXJkcztcXG4gICAgICAgICAgICB9XFxuICAgICAgICAgIH1cXG5cXG4gICAgICAgICAgLnBhdGgwIHtcXG4gICAgICAgICAgICBhbmltYXRpb246IGRyYXcwIDEuNXMgZWFzZS1pbi1vdXQgaW5maW5pdGU7XFxuICAgICAgICAgIH1cXG5cXG4gICAgICAgICAgLnBhdGgxIHtcXG4gICAgICAgICAgICBhbmltYXRpb246IGRyYXcxIDEuNXMgZWFzZS1vdXQgaW5maW5pdGU7XFxuICAgICAgICAgICAgYW5pbWF0aW9uLWRlbGF5OiAwLjNzO1xcbiAgICAgICAgICB9XFxuXFxuICAgICAgICAgIC5wYXVzZWQge1xcbiAgICAgICAgICAgIHN0cm9rZS1kYXNob2Zmc2V0OiAwO1xcbiAgICAgICAgICB9XFxuXFxuICAgICAgICAgIEBrZXlmcmFtZXMgZmFkZUluIHtcXG4gICAgICAgICAgICAwJSB7XFxuICAgICAgICAgICAgICBvcGFjaXR5OiAwO1xcbiAgICAgICAgICAgICAgZmlsdGVyOiBibHVyKDJweCk7XFxuICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoOHB4KTtcXG4gICAgICAgICAgICB9XFxuICAgICAgICAgICAgMTAwJSB7XFxuICAgICAgICAgICAgICBvcGFjaXR5OiAxO1xcbiAgICAgICAgICAgICAgZmlsdGVyOiBibHVyKDBweCk7XFxuICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCk7XFxuICAgICAgICAgICAgfVxcbiAgICAgICAgICB9XFxuXFxuICAgICAgICAgIEBrZXlmcmFtZXMgZmFkZU91dCB7XFxuICAgICAgICAgICAgMCUge1xcbiAgICAgICAgICAgICAgb3BhY2l0eTogMTtcXG4gICAgICAgICAgICAgIGZpbHRlcjogYmx1cigwcHgpO1xcbiAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApO1xcbiAgICAgICAgICAgIH1cXG4gICAgICAgICAgICAxMDAlIHtcXG4gICAgICAgICAgICAgIG9wYWNpdHk6IDA7XFxuICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTEycHgpO1xcbiAgICAgICAgICAgICAgZmlsdGVyOiBibHVyKDJweCk7XFxuICAgICAgICAgICAgfVxcbiAgICAgICAgICB9XFxuXFxuICAgICAgICAgIEBrZXlmcmFtZXMgZHJhdzAge1xcbiAgICAgICAgICAgIDAlLFxcbiAgICAgICAgICAgIDI1JSB7XFxuICAgICAgICAgICAgICBzdHJva2UtZGFzaG9mZnNldDogLTI5LjY7XFxuICAgICAgICAgICAgfVxcbiAgICAgICAgICAgIDI1JSxcXG4gICAgICAgICAgICA1MCUge1xcbiAgICAgICAgICAgICAgc3Ryb2tlLWRhc2hvZmZzZXQ6IDA7XFxuICAgICAgICAgICAgfVxcbiAgICAgICAgICAgIDUwJSxcXG4gICAgICAgICAgICA3NSUge1xcbiAgICAgICAgICAgICAgc3Ryb2tlLWRhc2hvZmZzZXQ6IDA7XFxuICAgICAgICAgICAgfVxcbiAgICAgICAgICAgIDc1JSxcXG4gICAgICAgICAgICAxMDAlIHtcXG4gICAgICAgICAgICAgIHN0cm9rZS1kYXNob2Zmc2V0OiAyOS42O1xcbiAgICAgICAgICAgIH1cXG4gICAgICAgICAgfVxcblxcbiAgICAgICAgICBAa2V5ZnJhbWVzIGRyYXcxIHtcXG4gICAgICAgICAgICAwJSxcXG4gICAgICAgICAgICAyMCUge1xcbiAgICAgICAgICAgICAgc3Ryb2tlLWRhc2hvZmZzZXQ6IC0xMS42O1xcbiAgICAgICAgICAgIH1cXG4gICAgICAgICAgICAyMCUsXFxuICAgICAgICAgICAgNTAlIHtcXG4gICAgICAgICAgICAgIHN0cm9rZS1kYXNob2Zmc2V0OiAwO1xcbiAgICAgICAgICAgIH1cXG4gICAgICAgICAgICA1MCUsXFxuICAgICAgICAgICAgNzUlIHtcXG4gICAgICAgICAgICAgIHN0cm9rZS1kYXNob2Zmc2V0OiAwO1xcbiAgICAgICAgICAgIH1cXG4gICAgICAgICAgICA3NSUsXFxuICAgICAgICAgICAgMTAwJSB7XFxuICAgICAgICAgICAgICBzdHJva2UtZGFzaG9mZnNldDogMTEuNjtcXG4gICAgICAgICAgICB9XFxuICAgICAgICAgIH1cXG5cXG4gICAgICAgICAgQG1lZGlhIChwcmVmZXJzLXJlZHVjZWQtbW90aW9uKSB7XFxuICAgICAgICAgICAgW2RhdGEtaXNzdWVzLWNvdW50LWV4aXRdLFxcbiAgICAgICAgICAgIFtkYXRhLWlzc3Vlcy1jb3VudC1lbnRlcl0sXFxuICAgICAgICAgICAgW2RhdGEtaXNzdWVzLWNvdW50LXBsdXJhbF0ge1xcbiAgICAgICAgICAgICAgYW5pbWF0aW9uLWR1cmF0aW9uOiAwbXMgIWltcG9ydGFudDtcXG4gICAgICAgICAgICB9XFxuICAgICAgICAgIH1cXG4gICAgICAgIFwiXSxufHwobj1lLnNsaWNlKDApKSxPYmplY3QuZnJlZXplKE9iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKGUse3Jhdzp7dmFsdWU6T2JqZWN0LmZyZWV6ZShuKX19KSkpO3JldHVybiB0Wj1mdW5jdGlvbigpe3JldHVybiB0fSx0fXZhciB0WT0oMCx4LmZvcndhcmRSZWYpKGZ1bmN0aW9uKGUsbil7dmFyIHQ9ZS5kaXNhYmxlZCxyPWUuaXNzdWVDb3VudCxvPWUuaXNEZXZCdWlsZGluZyxhPWUuaXNEZXZSZW5kZXJpbmcsaT1lLmlzQnVpbGRFcnJvcixsPWUub25UcmlnZ2VyQ2xpY2sscz1lLnRvZ2dsZUVycm9yT3ZlcmxheSxjPWUuc2NhbGUsdT10VyhlLFtcImRpc2FibGVkXCIsXCJpc3N1ZUNvdW50XCIsXCJpc0RldkJ1aWxkaW5nXCIsXCJpc0RldlJlbmRlcmluZ1wiLFwiaXNCdWlsZEVycm9yXCIsXCJvblRyaWdnZXJDbGlja1wiLFwidG9nZ2xlRXJyb3JPdmVybGF5XCIsXCJzY2FsZVwiXSksZD1yPjAsZj10JCgoMCx4LnVzZVN0YXRlKShkKSwyKSxwPWZbMF0saD1mWzFdLGc9dCQoKDAseC51c2VTdGF0ZSkoITEpLDIpLG09Z1swXSx2PWdbMV0sYj10TShyLDE1MCksdz0oMCx4LnVzZVJlZikobnVsbCksaj0oMCx4LnVzZVJlZikobnVsbCksaz10RihqKSxBPXREKG98fGEpLE89cHx8dDtyZXR1cm4oMCx4LnVzZUVmZmVjdCkoZnVuY3Rpb24oKXtoKGQpfSxbZF0pLCgwLHkuanN4cykoXCJkaXZcIix7XCJkYXRhLW5leHQtYmFkZ2Utcm9vdFwiOiEwLHN0eWxlOntcIi0tc2l6ZVwiOlwiXCIuY29uY2F0KDM2Lyh2b2lkIDA9PT1jPzE6YyksXCJweFwiKSxcIi0tZHVyYXRpb24tc2hvcnRcIjpcIlwiLmNvbmNhdCgxNTAsXCJtc1wiKSxkaXNwbGF5OnQmJighZHx8bSk/XCJub25lXCI6XCJibG9ja1wifSxjaGlsZHJlbjpbKDAseS5qc3gpKFwic3R5bGVcIix7Y2hpbGRyZW46ZWkodFooKSl9KSwoMCx5LmpzeCkoXCJkaXZcIix7XCJkYXRhLW5leHQtYmFkZ2VcIjohMCxcImRhdGEtZXJyb3JcIjpkLFwiZGF0YS1lcnJvci1leHBhbmRlZFwiOk8sXCJkYXRhLWFuaW1hdGVcIjpiLHN0eWxlOnt3aWR0aDowPT09az9cImF1dG9cIjprfSxjaGlsZHJlbjooMCx5LmpzeHMpKFwiZGl2XCIse3JlZjpqLGNoaWxkcmVuOlshdCYmKDAseS5qc3gpKFwiYnV0dG9uXCIsdHEodFYoe3JlZjpmdW5jdGlvbigpe2Zvcih2YXIgZT1hcmd1bWVudHMubGVuZ3RoLG49QXJyYXkoZSksdD0wO3Q8ZTt0Kyspblt0XT1hcmd1bWVudHNbdF07dmFyIHI9bi5maWx0ZXIoQm9vbGVhbik7cmV0dXJuIHIubGVuZ3RoPD0xP3JbMF18fG51bGw6ZnVuY3Rpb24oZSl7dmFyIG49ITAsdD0hMSxvPXZvaWQgMDt0cnl7Zm9yKHZhciBhLGk9cltTeW1ib2wuaXRlcmF0b3JdKCk7IShuPShhPWkubmV4dCgpKS5kb25lKTtuPSEwKXt2YXIgbD1hLnZhbHVlO1wiZnVuY3Rpb25cIj09dHlwZW9mIGw/bChlKTpsJiYobC5jdXJyZW50PWUpfX1jYXRjaChlKXt0PSEwLG89ZX1maW5hbGx5e3RyeXtufHxudWxsPT1pLnJldHVybnx8aS5yZXR1cm4oKX1maW5hbGx5e2lmKHQpdGhyb3cgb319fX0odyxuKSxcImRhdGEtbmV4dC1tYXJrXCI6ITAsXCJkYXRhLW5leHQtbWFyay1sb2FkaW5nXCI6QSxvbkNsaWNrOmx9LHUpLHtjaGlsZHJlbjooMCx5LmpzeCkodEsse2lzTG9hZGluZzpBLGlzRGV2QnVpbGRpbmc6b30pfSkpLE8mJigwLHkuanN4cykoXCJkaXZcIix7XCJkYXRhLWlzc3Vlc1wiOiEwLGNoaWxkcmVuOlsoMCx5LmpzeHMpKFwiYnV0dG9uXCIse1wiZGF0YS1pc3N1ZXMtb3BlblwiOiEwLFwiYXJpYS1sYWJlbFwiOlwiT3BlbiBpc3N1ZXMgb3ZlcmxheVwiLG9uQ2xpY2s6cyxjaGlsZHJlbjpbdCYmKDAseS5qc3gpKFwiZGl2XCIse1wiZGF0YS1kaXNhYmxlZC1pY29uXCI6ITAsY2hpbGRyZW46KDAseS5qc3gpKHRRLHt9KX0pLCgwLHkuanN4KSh0WCx7YW5pbWF0ZTpiLFwiZGF0YS1pc3N1ZXMtY291bnQtYW5pbWF0aW9uXCI6ITAsY2hpbGRyZW46cn0sciksXCIgXCIsKDAseS5qc3hzKShcImRpdlwiLHtjaGlsZHJlbjpbXCJJc3N1ZVwiLHI+MSYmKDAseS5qc3gpKFwic3BhblwiLHtcImFyaWEtaGlkZGVuXCI6ITAsXCJkYXRhLWlzc3Vlcy1jb3VudC1wbHVyYWxcIjohMCxcImRhdGEtYW5pbWF0ZVwiOmImJjI9PT1yLGNoaWxkcmVuOlwic1wifSldfSldfSksIWkmJigwLHkuanN4KShcImJ1dHRvblwiLHtcImRhdGEtaXNzdWVzLWNvbGxhcHNlXCI6ITAsXCJhcmlhLWxhYmVsXCI6XCJDb2xsYXBzZSBpc3N1ZXMgYmFkZ2VcIixvbkNsaWNrOmZ1bmN0aW9uKCl7dmFyIGU7dD92KCEwKTpoKCExKSxudWxsPT0oZT13LmN1cnJlbnQpfHxlLmZvY3VzKCl9LGNoaWxkcmVuOigwLHkuanN4KSh0Ryx7XCJkYXRhLWNyb3NzXCI6ITB9KX0pXX0pXX0pfSksKDAseS5qc3gpKFwiZGl2XCIse1wiYXJpYS1oaWRkZW5cIjohMCxcImRhdGEtZG90XCI6ITB9KV19KX0pO2Z1bmN0aW9uIHRYKGUpe3ZhciBuPWUuY2hpbGRyZW4sdD1lLmFuaW1hdGUscj10VyhlLFtcImNoaWxkcmVuXCIsXCJhbmltYXRlXCJdKTtyZXR1cm4oMCx5LmpzeHMpKFwiZGl2XCIsdHEodFYoe30scikse1wiZGF0YS1hbmltYXRlXCI6dm9pZCAwPT09dHx8dCxjaGlsZHJlbjpbKDAseS5qc3gpKFwiZGl2XCIse1wiYXJpYS1oaWRkZW5cIjohMCxcImRhdGEtaXNzdWVzLWNvdW50LWV4aXRcIjohMCxjaGlsZHJlbjpuLTF9KSwoMCx5LmpzeCkoXCJkaXZcIix7XCJkYXRhLWlzc3Vlcy1jb3VudFwiOiEwLFwiZGF0YS1pc3N1ZXMtY291bnQtZW50ZXJcIjohMCxjaGlsZHJlbjpufSldfSkpfWZ1bmN0aW9uIHRLKGUpe3ZhciBuPWUuaXNMb2FkaW5nLHQ9ZS5pc0RldkJ1aWxkaW5nP1wicmdiYSgyNTUsMjU1LDI1NSwwLjcpXCI6XCJ3aGl0ZVwiO3JldHVybigwLHkuanN4cykoXCJzdmdcIix7d2lkdGg6XCI0MFwiLGhlaWdodDpcIjQwXCIsdmlld0JveDpcIjAgMCA0MCA0MFwiLGZpbGw6XCJub25lXCIsXCJkYXRhLW5leHQtbWFyay1sb2FkaW5nXCI6bixjaGlsZHJlbjpbKDAseS5qc3hzKShcImdcIix7dHJhbnNmb3JtOlwidHJhbnNsYXRlKDguNSwgMTMpXCIsY2hpbGRyZW46WygwLHkuanN4KShcInBhdGhcIix7Y2xhc3NOYW1lOm4/XCJwYXRoMFwiOlwicGF1c2VkXCIsZDpcIk0xMy4zIDE1LjIgTDIuMzQgMSBWMTIuNlwiLGZpbGw6XCJub25lXCIsc3Ryb2tlOlwidXJsKCNuZXh0X2xvZ29fcGFpbnQwX2xpbmVhcl8xMzU3XzEwODUzKVwiLHN0cm9rZVdpZHRoOlwiMS44NlwiLG1hc2s6XCJ1cmwoI25leHRfbG9nb19tYXNrMClcIixzdHJva2VEYXNoYXJyYXk6XCIyOS42XCIsc3Ryb2tlRGFzaG9mZnNldDpcIjI5LjZcIn0pLCgwLHkuanN4KShcInBhdGhcIix7Y2xhc3NOYW1lOm4/XCJwYXRoMVwiOlwicGF1c2VkXCIsZDpcIk0xMS44MjUgMS41IFYxMy4xXCIsc3Ryb2tlV2lkdGg6XCIxLjg2XCIsc3Ryb2tlOlwidXJsKCNuZXh0X2xvZ29fcGFpbnQxX2xpbmVhcl8xMzU3XzEwODUzKVwiLHN0cm9rZURhc2hhcnJheTpcIjExLjZcIixzdHJva2VEYXNob2Zmc2V0OlwiMTEuNlwifSldfSksKDAseS5qc3hzKShcImRlZnNcIix7Y2hpbGRyZW46WygwLHkuanN4cykoXCJsaW5lYXJHcmFkaWVudFwiLHtpZDpcIm5leHRfbG9nb19wYWludDBfbGluZWFyXzEzNTdfMTA4NTNcIix4MTpcIjkuOTU1NTVcIix5MTpcIjExLjEyMjZcIix4MjpcIjE1LjQ3NzhcIix5MjpcIjE3Ljk2NzFcIixncmFkaWVudFVuaXRzOlwidXNlclNwYWNlT25Vc2VcIixjaGlsZHJlbjpbKDAseS5qc3gpKFwic3RvcFwiLHtzdG9wQ29sb3I6dH0pLCgwLHkuanN4KShcInN0b3BcIix7b2Zmc2V0OlwiMC42MDQwNzJcIixzdG9wQ29sb3I6dCxzdG9wT3BhY2l0eTpcIjBcIn0pLCgwLHkuanN4KShcInN0b3BcIix7b2Zmc2V0OlwiMVwiLHN0b3BDb2xvcjp0LHN0b3BPcGFjaXR5OlwiMFwifSldfSksKDAseS5qc3hzKShcImxpbmVhckdyYWRpZW50XCIse2lkOlwibmV4dF9sb2dvX3BhaW50MV9saW5lYXJfMTM1N18xMDg1M1wiLHgxOlwiMTEuODIyMlwiLHkxOlwiMS40MDAzOVwiLHgyOlwiMTEuNzkxXCIseTI6XCI5LjYyNTQyXCIsZ3JhZGllbnRVbml0czpcInVzZXJTcGFjZU9uVXNlXCIsY2hpbGRyZW46WygwLHkuanN4KShcInN0b3BcIix7c3RvcENvbG9yOnR9KSwoMCx5LmpzeCkoXCJzdG9wXCIse29mZnNldDpcIjFcIixzdG9wQ29sb3I6dCxzdG9wT3BhY2l0eTpcIjBcIn0pXX0pLCgwLHkuanN4cykoXCJtYXNrXCIse2lkOlwibmV4dF9sb2dvX21hc2swXCIsY2hpbGRyZW46WygwLHkuanN4KShcInJlY3RcIix7d2lkdGg6XCIxMDAlXCIsaGVpZ2h0OlwiMTAwJVwiLGZpbGw6XCJ3aGl0ZVwifSksKDAseS5qc3gpKFwicmVjdFwiLHt3aWR0aDpcIjVcIixoZWlnaHQ6XCIxLjVcIixmaWxsOlwiYmxhY2tcIn0pXX0pXX0pXX0pfWZ1bmN0aW9uIHRRKCl7cmV0dXJuKDAseS5qc3gpKFwic3ZnXCIse3dpZHRoOlwiMTJcIixoZWlnaHQ6XCIxMlwiLHZpZXdCb3g6XCIwIDAgMTIgMTJcIixmaWxsOlwibm9uZVwiLHhtbG5zOlwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIixjaGlsZHJlbjooMCx5LmpzeCkoXCJwYXRoXCIse2ZpbGxSdWxlOlwiZXZlbm9kZFwiLGNsaXBSdWxlOlwiZXZlbm9kZFwiLGQ6XCJNMy45ODA3MSAxLjEyNUwxLjEyNSAzLjk4MDcxTDEuMTI1IDguMDE5MjlMMy45ODA3MSAxMC44NzVIOC4wMTkyOUwxMC44NzUgOC4wMTkyOVYzLjk4MDcxTDguMDE5MjkgMS4xMjVIMy45ODA3MVpNMy44MjUzOCAwQzMuNjI2NDcgMCAzLjQzNTcgMC4wNzkwMTc2IDMuMjk1MDUgMC4yMTk2N0wwLjIxOTY3IDMuMjk1MDVDMC4wNzkwMTc2IDMuNDM1NyAwIDMuNjI2NDcgMCAzLjgyNTM4VjguMTc0NjJDMCA4LjM3MzUzIDAuMDc5MDE3OCA4LjU2NDMgMC4yMTk2NyA4LjcwNDk1TDMuMjk1MDUgMTEuNzgwM0MzLjQzNTcgMTEuOTIxIDMuNjI2NDcgMTIgMy44MjUzOCAxMkg4LjE3NDYyQzguMzczNTMgMTIgOC41NjQzIDExLjkyMSA4LjcwNDk1IDExLjc4MDNMMTEuNzgwMyA4LjcwNDk1QzExLjkyMSA4LjU2NDMgMTIgOC4zNzM1MyAxMiA4LjE3NDYyVjMuODI1MzhDMTIgMy42MjY0NyAxMS45MjEgMy40MzU3IDExLjc4MDMgMy4yOTUwNUw4LjcwNDk1IDAuMjE5NjdDOC41NjQzIDAuMDc5MDE3NyA4LjM3MzUzIDAgOC4xNzQ2MiAwSDMuODI1MzhaTTYuNTYyNSAyLjgxMjVWMy4zNzVWNlY2LjU2MjVINS40Mzc1VjZWMy4zNzVWMi44MTI1SDYuNTYyNVpNNiA5QzYuNDE0MjEgOSA2Ljc1IDguNjY0MjEgNi43NSA4LjI1QzYuNzUgNy44MzU3OSA2LjQxNDIxIDcuNSA2IDcuNUM1LjU4NTc5IDcuNSA1LjI1IDcuODM1NzkgNS4yNSA4LjI1QzUuMjUgOC42NjQyMSA1LjU4NTc5IDkgNiA5WlwiLGZpbGw6XCIjRUFFQUVBXCJ9KX0pfWZ1bmN0aW9uIHRHKGUpe3JldHVybigwLHkuanN4KShcInN2Z1wiLHRxKHRWKHt3aWR0aDpcIjEyXCIsaGVpZ2h0OlwiMTJcIix2aWV3Qm94OlwiMCAwIDE0IDE0XCIsZmlsbDpcIm5vbmVcIix4bWxuczpcImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCJ9LGUpLHtjaGlsZHJlbjooMCx5LmpzeCkoXCJwYXRoXCIse2ZpbGxSdWxlOlwiZXZlbm9kZFwiLGNsaXBSdWxlOlwiZXZlbm9kZFwiLGQ6XCJNMy4wODg4OSAxMS44Mzg0TDIuNjI0ODYgMTIuMzAyNEwxLjY5Njc4IDExLjM3NDRMMi4xNjA4MiAxMC45MTAzTDYuMDcxNzggNi45OTkzN0wyLjE2MDgyIDMuMDg4NDFMMS42OTY3OCAyLjYyNDM3TDIuNjI0ODYgMS42OTYyOUwzLjA4ODg5IDIuMTYwMzNMNi45OTk4NiA2LjA3MTI5TDEwLjkxMDggMi4xNjAzM0wxMS4zNzQ5IDEuNjk2MjlMMTIuMzAyOSAyLjYyNDM3TDExLjgzODkgMy4wODg0MUw3LjkyNzkzIDYuOTk5MzdMMTEuODM4OSAxMC45MTAzTDEyLjMwMjkgMTEuMzc0NEwxMS4zNzQ5IDEyLjMwMjRMMTAuOTEwOCAxMS44Mzg0TDYuOTk5ODYgNy45Mjc0NEwzLjA4ODg5IDExLjgzODRaXCIsZmlsbDpcImN1cnJlbnRDb2xvclwifSl9KSl9dmFyIHRKPV9fd2VicGFja19yZXF1aXJlX18oXCIuL3NyYy9uZXh0LWRldnRvb2xzL2Rldi1vdmVybGF5L2hvb2tzL3VzZS1kZWxheWVkLXJlbmRlci50c1wiKSx0MD1fX3dlYnBhY2tfcmVxdWlyZV9fKFwiLi9zcmMvbmV4dC1kZXZ0b29scy9kZXYtb3ZlcmxheS9jb21wb25lbnRzL2Vycm9ycy9kZXYtdG9vbHMtaW5kaWNhdG9yL2Rldi10b29scy1pbmZvL2Rldi10b29scy1pbmZvLnRzeFwiKTtmdW5jdGlvbiB0MShlKXt2YXIgbix0O3JldHVybigwLHkuanN4cykodDAueCwobj1mdW5jdGlvbihlKXtmb3IodmFyIG49MTtuPGFyZ3VtZW50cy5sZW5ndGg7bisrKXt2YXIgdD1udWxsIT1hcmd1bWVudHNbbl0/YXJndW1lbnRzW25dOnt9LHI9T2JqZWN0LmtleXModCk7XCJmdW5jdGlvblwiPT10eXBlb2YgT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyYmKHI9ci5jb25jYXQoT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyh0KS5maWx0ZXIoZnVuY3Rpb24oZSl7cmV0dXJuIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IodCxlKS5lbnVtZXJhYmxlfSkpKSxyLmZvckVhY2goZnVuY3Rpb24obil7dmFyIHIsbyxhO3I9ZSxvPW4sYT10W25dLG8gaW4gcj9PYmplY3QuZGVmaW5lUHJvcGVydHkocixvLHt2YWx1ZTphLGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwfSk6cltvXT1hfSl9cmV0dXJuIGV9KHt0aXRsZTpcIlR1cmJvcGFja1wiLGxlYXJuTW9yZUxpbms6XCJodHRwczovL25leHRqcy5vcmcvZG9jcy9hcHAvYXBpLXJlZmVyZW5jZS90dXJib3BhY2tcIn0sZSksdD10PXtjaGlsZHJlbjpbKDAseS5qc3hzKShcImFydGljbGVcIix7Y2xhc3NOYW1lOlwiZGV2LXRvb2xzLWluZm8tYXJ0aWNsZVwiLGNoaWxkcmVuOlsoMCx5LmpzeHMpKFwicFwiLHtjbGFzc05hbWU6XCJkZXYtdG9vbHMtaW5mby1wYXJhZ3JhcGhcIixjaGlsZHJlbjpbXCJUdXJib3BhY2sgaXMgYW4gaW5jcmVtZW50YWwgYnVuZGxlciBvcHRpbWl6ZWQgZm9yIEphdmFTY3JpcHQgYW5kIFR5cGVTY3JpcHQsIHdyaXR0ZW4gaW4gUnVzdCwgYW5kIGJ1aWx0IGludG8gTmV4dC5qcy4gVHVyYm9wYWNrIGNhbiBiZSB1c2VkIGluIE5leHQuanMgaW4gYm90aCB0aGVcIixcIiBcIiwoMCx5LmpzeCkoXCJjb2RlXCIse2NsYXNzTmFtZTpcImRldi10b29scy1pbmZvLWNvZGVcIixjaGlsZHJlbjpcInBhZ2VzXCJ9KSxcIiBhbmRcIixcIiBcIiwoMCx5LmpzeCkoXCJjb2RlXCIse2NsYXNzTmFtZTpcImRldi10b29scy1pbmZvLWNvZGVcIixjaGlsZHJlbjpcImFwcFwifSksXCIgZGlyZWN0b3JpZXMgZm9yIGZhc3RlciBsb2NhbCBkZXZlbG9wbWVudC5cIl19KSwoMCx5LmpzeHMpKFwicFwiLHtjbGFzc05hbWU6XCJkZXYtdG9vbHMtaW5mby1wYXJhZ3JhcGhcIixjaGlsZHJlbjpbXCJUbyBlbmFibGUgVHVyYm9wYWNrLCB1c2UgdGhlXCIsXCIgXCIsKDAseS5qc3gpKFwiY29kZVwiLHtjbGFzc05hbWU6XCJkZXYtdG9vbHMtaW5mby1jb2RlXCIsY2hpbGRyZW46XCItLXR1cmJvcGFja1wifSksXCIgZmxhZyB3aGVuIHJ1bm5pbmcgdGhlIE5leHQuanMgZGV2ZWxvcG1lbnQgc2VydmVyLlwiXX0pXX0pLCgwLHkuanN4KShcImRpdlwiLHtjbGFzc05hbWU6XCJkZXYtdG9vbHMtaW5mby1jb2RlLWJsb2NrLWNvbnRhaW5lclwiLGNoaWxkcmVuOigwLHkuanN4cykoXCJkaXZcIix7Y2xhc3NOYW1lOlwiZGV2LXRvb2xzLWluZm8tY29kZS1ibG9ja1wiLGNoaWxkcmVuOlsoMCx5LmpzeCkoZTMse2FjdGlvbkxhYmVsOlwiQ29weSBOZXh0LmpzIFR1cmJvcGFjayBDb21tYW5kXCIsc3VjY2Vzc0xhYmVsOlwiTmV4dC5qcyBUdXJib3BhY2sgQ29tbWFuZCBDb3BpZWRcIixjb250ZW50OlwiLS10dXJib3BhY2tcIixjbGFzc05hbWU6XCJkZXYtdG9vbHMtaW5mby1jb3B5LWJ1dHRvblwifSksKDAseS5qc3gpKFwicHJlXCIse2NsYXNzTmFtZTpcImRldi10b29scy1pbmZvLWNvZGUtYmxvY2stcHJlXCIsY2hpbGRyZW46KDAseS5qc3hzKShcImNvZGVcIix7Y2hpbGRyZW46WygwLHkuanN4KShcImRpdlwiLHtjbGFzc05hbWU6XCJkZXYtdG9vbHMtaW5mby1jb2RlLWJsb2NrLWxpbmVcIixjaGlsZHJlbjpcIiAgXCJ9KSwoMCx5LmpzeCkoXCJkaXZcIix7Y2xhc3NOYW1lOlwiZGV2LXRvb2xzLWluZm8tY29kZS1ibG9jay1saW5lXCIsY2hpbGRyZW46XCJ7XCJ9KSwoMCx5LmpzeHMpKFwiZGl2XCIse2NsYXNzTmFtZTpcImRldi10b29scy1pbmZvLWNvZGUtYmxvY2stbGluZVwiLGNoaWxkcmVuOltcIiAgXCIsKDAseS5qc3gpKFwic3BhblwiLHtjbGFzc05hbWU6XCJkZXYtdG9vbHMtaW5mby1jb2RlLWJsb2NrLWpzb24ta2V5XCIsY2hpbGRyZW46J1wic2NyaXB0c1wiJ30pLFwiOiBcIixcIntcIl19KSwoMCx5LmpzeHMpKFwiZGl2XCIse2NsYXNzTmFtZTpcImRldi10b29scy1pbmZvLWNvZGUtYmxvY2stbGluZSBkZXYtdG9vbHMtaW5mby1oaWdobGlnaHRcIixjaGlsZHJlbjpbXCIgICAgXCIsKDAseS5qc3gpKFwic3BhblwiLHtjbGFzc05hbWU6XCJkZXYtdG9vbHMtaW5mby1jb2RlLWJsb2NrLWpzb24ta2V5XCIsY2hpbGRyZW46J1wiZGV2XCInfSksXCI6XCIsXCIgXCIsKDAseS5qc3gpKFwic3BhblwiLHtjbGFzc05hbWU6XCJkZXYtdG9vbHMtaW5mby1jb2RlLWJsb2NrLWpzb24tdmFsdWVcIixjaGlsZHJlbjonXCJuZXh0IGRldiAtLXR1cmJvcGFja1wiJ30pLFwiLFwiXX0pLCgwLHkuanN4cykoXCJkaXZcIix7Y2xhc3NOYW1lOlwiZGV2LXRvb2xzLWluZm8tY29kZS1ibG9jay1saW5lXCIsY2hpbGRyZW46W1wiICAgIFwiLCgwLHkuanN4KShcInNwYW5cIix7Y2xhc3NOYW1lOlwiZGV2LXRvb2xzLWluZm8tY29kZS1ibG9jay1qc29uLWtleVwiLGNoaWxkcmVuOidcImJ1aWxkXCInfSksXCI6XCIsXCIgXCIsKDAseS5qc3gpKFwic3BhblwiLHtjbGFzc05hbWU6XCJkZXYtdG9vbHMtaW5mby1jb2RlLWJsb2NrLWpzb24tdmFsdWVcIixjaGlsZHJlbjonXCJuZXh0IGJ1aWxkXCInfSksXCIsXCJdfSksKDAseS5qc3hzKShcImRpdlwiLHtjbGFzc05hbWU6XCJkZXYtdG9vbHMtaW5mby1jb2RlLWJsb2NrLWxpbmVcIixjaGlsZHJlbjpbXCIgICAgXCIsKDAseS5qc3gpKFwic3BhblwiLHtjbGFzc05hbWU6XCJkZXYtdG9vbHMtaW5mby1jb2RlLWJsb2NrLWpzb24ta2V5XCIsY2hpbGRyZW46J1wic3RhcnRcIid9KSxcIjpcIixcIiBcIiwoMCx5LmpzeCkoXCJzcGFuXCIse2NsYXNzTmFtZTpcImRldi10b29scy1pbmZvLWNvZGUtYmxvY2stanNvbi12YWx1ZVwiLGNoaWxkcmVuOidcIm5leHQgc3RhcnRcIid9KSxcIixcIl19KSwoMCx5LmpzeHMpKFwiZGl2XCIse2NsYXNzTmFtZTpcImRldi10b29scy1pbmZvLWNvZGUtYmxvY2stbGluZVwiLGNoaWxkcmVuOltcIiAgICBcIiwoMCx5LmpzeCkoXCJzcGFuXCIse2NsYXNzTmFtZTpcImRldi10b29scy1pbmZvLWNvZGUtYmxvY2stanNvbi1rZXlcIixjaGlsZHJlbjonXCJsaW50XCInfSksXCI6XCIsXCIgXCIsKDAseS5qc3gpKFwic3BhblwiLHtjbGFzc05hbWU6XCJkZXYtdG9vbHMtaW5mby1jb2RlLWJsb2NrLWpzb24tdmFsdWVcIixjaGlsZHJlbjonXCJuZXh0IGxpbnRcIid9KV19KSwoMCx5LmpzeCkoXCJkaXZcIix7Y2xhc3NOYW1lOlwiZGV2LXRvb2xzLWluZm8tY29kZS1ibG9jay1saW5lXCIsY2hpbGRyZW46XCIgIH1cIn0pLCgwLHkuanN4KShcImRpdlwiLHtjbGFzc05hbWU6XCJkZXYtdG9vbHMtaW5mby1jb2RlLWJsb2NrLWxpbmVcIixjaGlsZHJlbjpcIn1cIn0pLCgwLHkuanN4KShcImRpdlwiLHtjbGFzc05hbWU6XCJkZXYtdG9vbHMtaW5mby1jb2RlLWJsb2NrLWxpbmVcIixjaGlsZHJlbjpcIiAgXCJ9KV19KX0pXX0pfSldfSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycz9PYmplY3QuZGVmaW5lUHJvcGVydGllcyhuLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzKHQpKTooZnVuY3Rpb24oZSxuKXt2YXIgdD1PYmplY3Qua2V5cyhlKTtpZihPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKXt2YXIgcj1PYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKGUpO3QucHVzaC5hcHBseSh0LHIpfXJldHVybiB0fSkoT2JqZWN0KHQpKS5mb3JFYWNoKGZ1bmN0aW9uKGUpe09iamVjdC5kZWZpbmVQcm9wZXJ0eShuLGUsT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcih0LGUpKX0pLG4pKX1mdW5jdGlvbiB0MihlKXt2YXIgbj1lLnJvdXRlclR5cGU7cmV0dXJuKDAseS5qc3hzKShcImFydGljbGVcIix7Y2xhc3NOYW1lOlwiZGV2LXRvb2xzLWluZm8tYXJ0aWNsZVwiLGNoaWxkcmVuOlsoMCx5LmpzeHMpKFwicFwiLHtjbGFzc05hbWU6XCJkZXYtdG9vbHMtaW5mby1wYXJhZ3JhcGhcIixjaGlsZHJlbjpbXCJUaGUgcGF0aFwiLFwiIFwiLCgwLHkuanN4KShcImNvZGVcIix7Y2xhc3NOYW1lOlwiZGV2LXRvb2xzLWluZm8tY29kZVwiLGNoaWxkcmVuOndpbmRvdy5sb2NhdGlvbi5wYXRobmFtZX0pLFwiIFwiLCdpcyBtYXJrZWQgYXMgXCJzdGF0aWNcIiBzaW5jZSBpdCB3aWxsIGJlIHByZXJlbmRlcmVkIGR1cmluZyB0aGUgYnVpbGQgdGltZS4nXX0pLCgwLHkuanN4cykoXCJwXCIse2NsYXNzTmFtZTpcImRldi10b29scy1pbmZvLXBhcmFncmFwaFwiLGNoaWxkcmVuOltcIldpdGggU3RhdGljIFJlbmRlcmluZywgcm91dGVzIGFyZSByZW5kZXJlZCBhdCBidWlsZCB0aW1lLCBvciBpbiB0aGUgYmFja2dyb3VuZCBhZnRlclwiLFwiIFwiLCgwLHkuanN4KShcImFcIix7Y2xhc3NOYW1lOlwiZGV2LXRvb2xzLWluZm8tbGlua1wiLGhyZWY6XCJwYWdlc1wiPT09bj9cImh0dHBzOi8vbmV4dGpzLm9yZy9kb2NzL3BhZ2VzL2J1aWxkaW5nLXlvdXItYXBwbGljYXRpb24vZGF0YS1mZXRjaGluZy9pbmNyZW1lbnRhbC1zdGF0aWMtcmVnZW5lcmF0aW9uXCI6XCJodHRwczovL25leHRqcy5vcmcvZG9jcy9hcHAvYnVpbGRpbmcteW91ci1hcHBsaWNhdGlvbi9kYXRhLWZldGNoaW5nL2luY3JlbWVudGFsLXN0YXRpYy1yZWdlbmVyYXRpb25cIix0YXJnZXQ6XCJfYmxhbmtcIixyZWw6XCJub29wZW5lciBub3JlZmVycmVyXCIsY2hpbGRyZW46XCJkYXRhIHJldmFsaWRhdGlvblwifSksXCIuXCJdfSksKDAseS5qc3gpKFwicFwiLHtjbGFzc05hbWU6XCJkZXYtdG9vbHMtaW5mby1wYXJhZ3JhcGhcIixjaGlsZHJlbjpcIlN0YXRpYyByZW5kZXJpbmcgaXMgdXNlZnVsIHdoZW4gYSByb3V0ZSBoYXMgZGF0YSB0aGF0IGlzIG5vdCBwZXJzb25hbGl6ZWQgdG8gdGhlIHVzZXIgYW5kIGNhbiBiZSBrbm93biBhdCBidWlsZCB0aW1lLCBzdWNoIGFzIGEgc3RhdGljIGJsb2cgcG9zdCBvciBhIHByb2R1Y3QgcGFnZS5cIn0pXX0pfWZ1bmN0aW9uIHQ0KGUpe3ZhciBuPWUucm91dGVyVHlwZTtyZXR1cm4oMCx5LmpzeHMpKFwiYXJ0aWNsZVwiLHtjbGFzc05hbWU6XCJkZXYtdG9vbHMtaW5mby1hcnRpY2xlXCIsY2hpbGRyZW46WygwLHkuanN4cykoXCJwXCIse2NsYXNzTmFtZTpcImRldi10b29scy1pbmZvLXBhcmFncmFwaFwiLGNoaWxkcmVuOltcIlRoZSBwYXRoXCIsXCIgXCIsKDAseS5qc3gpKFwiY29kZVwiLHtjbGFzc05hbWU6XCJkZXYtdG9vbHMtaW5mby1jb2RlXCIsY2hpbGRyZW46d2luZG93LmxvY2F0aW9uLnBhdGhuYW1lfSksXCIgXCIsJ2lzIG1hcmtlZCBhcyBcImR5bmFtaWNcIiBzaW5jZSBpdCB3aWxsIGJlIHJlbmRlcmVkIGZvciBlYWNoIHVzZXIgYXQnLFwiIFwiLCgwLHkuanN4KShcInN0cm9uZ1wiLHtjaGlsZHJlbjpcInJlcXVlc3QgdGltZVwifSksXCIuXCJdfSksKDAseS5qc3gpKFwicFwiLHtjbGFzc05hbWU6XCJkZXYtdG9vbHMtaW5mby1wYXJhZ3JhcGhcIixjaGlsZHJlbjpcIkR5bmFtaWMgcmVuZGVyaW5nIGlzIHVzZWZ1bCB3aGVuIGEgcm91dGUgaGFzIGRhdGEgdGhhdCBpcyBwZXJzb25hbGl6ZWQgdG8gdGhlIHVzZXIgb3IgaGFzIGluZm9ybWF0aW9uIHRoYXQgY2FuIG9ubHkgYmUga25vd24gYXQgcmVxdWVzdCB0aW1lLCBzdWNoIGFzIGNvb2tpZXMgb3IgdGhlIFVSTCdzIHNlYXJjaCBwYXJhbXMuXCJ9KSxcInBhZ2VzXCI9PT1uPygwLHkuanN4cykoXCJwXCIse2NsYXNzTmFtZTpcImRldi10b29scy1pbmZvLXBhZ3JhcGhcIixjaGlsZHJlbjpbXCJFeHBvcnRpbmcgdGhlXCIsXCIgXCIsKDAseS5qc3gpKFwiYVwiLHtjbGFzc05hbWU6XCJkZXYtdG9vbHMtaW5mby1saW5rXCIsaHJlZjpcImh0dHBzOi8vbmV4dGpzLm9yZy9kb2NzL3BhZ2VzL2J1aWxkaW5nLXlvdXItYXBwbGljYXRpb24vZGF0YS1mZXRjaGluZy9nZXQtc2VydmVyLXNpZGUtcHJvcHNcIix0YXJnZXQ6XCJfYmxhbmtcIixyZWw6XCJub29wZW5lciBub3JlZmVycmVyXCIsY2hpbGRyZW46XCJnZXRTZXJ2ZXJTaWRlUHJvcHNcIn0pLFwiIFwiLFwiZnVuY3Rpb24gd2lsbCBvcHQgdGhlIHJvdXRlIGludG8gZHluYW1pYyByZW5kZXJpbmcuIFRoaXMgZnVuY3Rpb24gd2lsbCBiZSBjYWxsZWQgYnkgdGhlIHNlcnZlciBvbiBldmVyeSByZXF1ZXN0LlwiXX0pOigwLHkuanN4cykoXCJwXCIse2NsYXNzTmFtZTpcImRldi10b29scy1pbmZvLXBhcmFncmFwaFwiLGNoaWxkcmVuOltcIkR1cmluZyByZW5kZXJpbmcsIGlmIGFcIixcIiBcIiwoMCx5LmpzeCkoXCJhXCIse2NsYXNzTmFtZTpcImRldi10b29scy1pbmZvLWxpbmtcIixocmVmOlwiaHR0cHM6Ly9uZXh0anMub3JnL2RvY3MvYXBwL2J1aWxkaW5nLXlvdXItYXBwbGljYXRpb24vcmVuZGVyaW5nL3NlcnZlci1jb21wb25lbnRzI2R5bmFtaWMtYXBpc1wiLHRhcmdldDpcIl9ibGFua1wiLHJlbDpcIm5vb3BlbmVyIG5vcmVmZXJyZXJcIixjaGlsZHJlbjpcIkR5bmFtaWMgQVBJXCJ9KSxcIiBcIixcIm9yIGFcIixcIiBcIiwoMCx5LmpzeCkoXCJhXCIse2NsYXNzTmFtZTpcImRldi10b29scy1pbmZvLWxpbmtcIixocmVmOlwiaHR0cHM6Ly9uZXh0anMub3JnL2RvY3MvYXBwL2FwaS1yZWZlcmVuY2UvZnVuY3Rpb25zL2ZldGNoXCIsdGFyZ2V0OlwiX2JsYW5rXCIscmVsOlwibm9vcGVuZXIgbm9yZWZlcnJlclwiLGNoaWxkcmVuOlwiZmV0Y2hcIn0pLFwiIFwiLFwib3B0aW9uIG9mXCIsXCIgXCIsKDAseS5qc3gpKFwiY29kZVwiLHtjbGFzc05hbWU6XCJkZXYtdG9vbHMtaW5mby1jb2RlXCIsY2hpbGRyZW46XCJ7IGNhY2hlOiAnbm8tc3RvcmUnIH1cIn0pLFwiIFwiLFwiaXMgZGlzY292ZXJlZCwgTmV4dC5qcyB3aWxsIHN3aXRjaCB0byBkeW5hbWljYWxseSByZW5kZXJpbmcgdGhlIHdob2xlIHJvdXRlLlwiXX0pXX0pfXZhciB0NT17cGFnZXM6e3N0YXRpYzpcImh0dHBzOi8vbmV4dGpzLm9yZy9kb2NzL3BhZ2VzL2J1aWxkaW5nLXlvdXItYXBwbGljYXRpb24vcmVuZGVyaW5nL3N0YXRpYy1zaXRlLWdlbmVyYXRpb25cIixkeW5hbWljOlwiaHR0cHM6Ly9uZXh0anMub3JnL2RvY3MvcGFnZXMvYnVpbGRpbmcteW91ci1hcHBsaWNhdGlvbi9yZW5kZXJpbmcvc2VydmVyLXNpZGUtcmVuZGVyaW5nXCJ9LGFwcDp7c3RhdGljOlwiaHR0cHM6Ly9uZXh0anMub3JnL2RvY3MvYXBwL2J1aWxkaW5nLXlvdXItYXBwbGljYXRpb24vcmVuZGVyaW5nL3NlcnZlci1jb21wb25lbnRzI3N0YXRpYy1yZW5kZXJpbmctZGVmYXVsdFwiLGR5bmFtaWM6XCJodHRwczovL25leHRqcy5vcmcvZG9jcy9hcHAvYnVpbGRpbmcteW91ci1hcHBsaWNhdGlvbi9yZW5kZXJpbmcvc2VydmVyLWNvbXBvbmVudHMjZHluYW1pYy1yZW5kZXJpbmdcIn19O2Z1bmN0aW9uIHQzKGUpe3ZhciBuLHQscj1lLnJvdXRlVHlwZSxvPWUucm91dGVyVHlwZSxhPWZ1bmN0aW9uKGUsbil7aWYobnVsbD09ZSlyZXR1cm57fTt2YXIgdCxyLG89ZnVuY3Rpb24oZSxuKXtpZihudWxsPT1lKXJldHVybnt9O3ZhciB0LHIsbz17fSxhPU9iamVjdC5rZXlzKGUpO2ZvcihyPTA7cjxhLmxlbmd0aDtyKyspdD1hW3JdLG4uaW5kZXhPZih0KT49MHx8KG9bdF09ZVt0XSk7cmV0dXJuIG99KGUsbik7aWYoT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyl7dmFyIGE9T2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhlKTtmb3Iocj0wO3I8YS5sZW5ndGg7cisrKXQ9YVtyXSwhKG4uaW5kZXhPZih0KT49MCkmJk9iamVjdC5wcm90b3R5cGUucHJvcGVydHlJc0VudW1lcmFibGUuY2FsbChlLHQpJiYob1t0XT1lW3RdKX1yZXR1cm4gb30oZSxbXCJyb3V0ZVR5cGVcIixcInJvdXRlclR5cGVcIl0pLGk9XCJTdGF0aWNcIj09PXIsbD1pP3Q1W29dLnN0YXRpYzp0NVtvXS5keW5hbWljO3JldHVybigwLHkuanN4KSh0MC54LChuPWZ1bmN0aW9uKGUpe2Zvcih2YXIgbj0xO248YXJndW1lbnRzLmxlbmd0aDtuKyspe3ZhciB0PW51bGwhPWFyZ3VtZW50c1tuXT9hcmd1bWVudHNbbl06e30scj1PYmplY3Qua2V5cyh0KTtcImZ1bmN0aW9uXCI9PXR5cGVvZiBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzJiYocj1yLmNvbmNhdChPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKHQpLmZpbHRlcihmdW5jdGlvbihlKXtyZXR1cm4gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcih0LGUpLmVudW1lcmFibGV9KSkpLHIuZm9yRWFjaChmdW5jdGlvbihuKXt2YXIgcixvLGE7cj1lLG89bixhPXRbbl0sbyBpbiByP09iamVjdC5kZWZpbmVQcm9wZXJ0eShyLG8se3ZhbHVlOmEsZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITB9KTpyW29dPWF9KX1yZXR1cm4gZX0oe3RpdGxlOlwiXCIuY29uY2F0KHIsXCIgUm91dGVcIiksbGVhcm5Nb3JlTGluazpsfSxhKSx0PXQ9e2NoaWxkcmVuOmk/KDAseS5qc3gpKHQyLHtyb3V0ZXJUeXBlOm99KTooMCx5LmpzeCkodDQse3JvdXRlclR5cGU6b30pfSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycz9PYmplY3QuZGVmaW5lUHJvcGVydGllcyhuLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzKHQpKTooZnVuY3Rpb24oZSxuKXt2YXIgdD1PYmplY3Qua2V5cyhlKTtpZihPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKXt2YXIgcj1PYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKGUpO3QucHVzaC5hcHBseSh0LHIpfXJldHVybiB0fSkoT2JqZWN0KHQpKS5mb3JFYWNoKGZ1bmN0aW9uKGUpe09iamVjdC5kZWZpbmVQcm9wZXJ0eShuLGUsT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcih0LGUpKX0pLG4pKX1mdW5jdGlvbiB0Nigpe3JldHVybigwLHkuanN4KShcInN2Z1wiLHt4bWxuczpcImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIsd2lkdGg6XCIxNlwiLGhlaWdodDpcIjE2XCIsdmlld0JveDpcIjAgMCAyMCAyMFwiLGZpbGw6XCJub25lXCIsY2hpbGRyZW46KDAseS5qc3gpKFwicGF0aFwiLHtmaWxsOlwiY3VycmVudENvbG9yXCIsZmlsbFJ1bGU6XCJldmVub2RkXCIsZDpcIm05LjcgMy43MzYuMDQ1LS4yMzZoLjUxbC4wNDQuMjM2YTIuMDI0IDIuMDI0IDAgMCAwIDEuMzM0IDEuNTM2Yy4xOS4wNjYuMzc1LjE0My41NTQuMjMuNjE4LjMwMSAxLjM5OC4yOSAyLjAzLS4xNDNsLjE5OS0uMTM2LjM2LjM2MS0uMTM1LjE5OWEyLjAyNCAyLjAyNCAwIDAgMC0uMTQzIDIuMDNjLjA4Ny4xNzkuMTY0LjM2NC4yMy41NTQuMjI0LjY1Ljc4MyAxLjE5MiAxLjUzNiAxLjMzNGwuMjM2LjA0NHYuNTFsLS4yMzYuMDQ0YTIuMDI0IDIuMDI0IDAgMCAwLTEuNTM2IDEuMzM0IDQuOTUgNC45NSAwIDAgMS0uMjMuNTU0IDIuMDI0IDIuMDI0IDAgMCAwIC4xNDMgMi4wM2wuMTM2LjE5OS0uMzYxLjM2LS4xOTktLjEzNWEyLjAyNCAyLjAyNCAwIDAgMC0yLjAzLS4xNDNjLS4xNzkuMDg3LS4zNjQuMTY0LS41NTQuMjNhMi4wMjQgMi4wMjQgMCAwIDAtMS4zMzQgMS41MzZsLS4wNDQuMjM2aC0uNTFsLS4wNDQtLjIzNmEyLjAyNCAyLjAyNCAwIDAgMC0xLjMzNC0xLjUzNiA0Ljk1MiA0Ljk1MiAwIDAgMS0uNTU0LS4yMyAyLjAyNCAyLjAyNCAwIDAgMC0yLjAzLjE0M2wtLjE5OS4xMzYtLjM2LS4zNjEuMTM1LS4xOTlhMi4wMjQgMi4wMjQgMCAwIDAgLjE0My0yLjAzIDQuOTU4IDQuOTU4IDAgMCAxLS4yMy0uNTU0IDIuMDI0IDIuMDI0IDAgMCAwLTEuNTM2LTEuMzM0bC0uMjM2LS4wNDR2LS41MWwuMjM2LS4wNDRhMi4wMjQgMi4wMjQgMCAwIDAgMS41MzYtMS4zMzQgNC45NiA0Ljk2IDAgMCAxIC4yMy0uNTU0IDIuMDI0IDIuMDI0IDAgMCAwLS4xNDMtMi4wM2wtLjEzNi0uMTk5LjM2MS0uMzYuMTk5LjEzNWEyLjAyNCAyLjAyNCAwIDAgMCAyLjAzLjE0M2MuMTc5LS4wODcuMzY0LS4xNjQuNTU0LS4yM2EyLjAyNCAyLjAyNCAwIDAgMCAxLjMzNC0xLjUzNlpNOC41IDJoM2wuMjc0IDEuNDZjLjAzNC4xODUuMTcuMzMzLjM0OC4zOTQuMjQ4LjA4Ni40OS4xODYuNzIyLjMuMTcuMDgyLjM3LjA3NC41MjYtLjAzM2wxLjIyNi0uODM5IDIuMTIyIDIuMTIyLS44NCAxLjIyNmEuNTI0LjUyNCAwIDAgMC0uMDMyLjUyNmMuMTE0LjIzMy4yMTQuNDc0LjMuNzIyLjA2MS4xNzcuMjEuMzE0LjM5NC4zNDhMMTggOC41djNsLTEuNDYuMjc0YS41MjQuNTI0IDAgMCAwLS4zOTQuMzQ4IDYuNDcgNi40NyAwIDAgMS0uMy43MjIuNTI0LjUyNCAwIDAgMCAuMDMzLjUyNmwuODM5IDEuMjI2LTIuMTIyIDIuMTIyLTEuMjI2LS44NGEuNTI0LjUyNCAwIDAgMC0uNTI2LS4wMzIgNi40NzcgNi40NzcgMCAwIDEtLjcyMi4zLjUyNC41MjQgMCAwIDAtLjM0OC4zOTRMMTEuNSAxOGgtM2wtLjI3NC0xLjQ2YS41MjQuNTI0IDAgMCAwLS4zNDgtLjM5NCA2LjQ3NyA2LjQ3NyAwIDAgMS0uNzIyLS4zLjUyNC41MjQgMCAwIDAtLjUyNi4wMzNsLTEuMjI2LjgzOS0yLjEyMi0yLjEyMi44NC0xLjIyNmEuNTI0LjUyNCAwIDAgMCAuMDMyLS41MjYgNi40NTMgNi40NTMgMCAwIDEtLjMtLjcyMi41MjQuNTI0IDAgMCAwLS4zOTQtLjM0OEwyIDExLjV2LTNsMS40Ni0uMjc0YS41MjQuNTI0IDAgMCAwIC4zOTQtLjM0OGMuMDg2LS4yNDguMTg2LS40OS4zLS43MjJhLjUyNC41MjQgMCAwIDAtLjAzMy0uNTI2bC0uODM5LTEuMjI2IDIuMTIyLTIuMTIyIDEuMjI2Ljg0YS41MjQuNTI0IDAgMCAwIC41MjYuMDMyIDYuNDYgNi40NiAwIDAgMSAuNzIyLS4zLjUyNC41MjQgMCAwIDAgLjM0OC0uMzk0TDguNSAyWm0zIDhhMS41IDEuNSAwIDEgMS0zIDAgMS41IDEuNSAwIDAgMSAzIDBabTEuNSAwYTMgMyAwIDEgMS02IDAgMyAzIDAgMCAxIDYgMFpcIixjbGlwUnVsZTpcImV2ZW5vZGRcIn0pfSl9ZnVuY3Rpb24gdDkoKXtyZXR1cm4oMCx5LmpzeCkoXCJzdmdcIix7eG1sbnM6XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiLHdpZHRoOlwiMTZcIixoZWlnaHQ6XCIxNlwiLGZpbGw6XCJub25lXCIsY2hpbGRyZW46KDAseS5qc3gpKFwicGF0aFwiLHtmaWxsOlwiY3VycmVudENvbG9yXCIsZmlsbFJ1bGU6XCJldmVub2RkXCIsZDpcIm0uMTkxIDIuMDYzLjU2LjQ5OCAxMy41IDEyIC41NjEuNDk4Ljk5Ny0xLjEyMS0uNTYtLjQ5OC0xLjgxLTEuNjA4IDIuODgtMy4zNDJ2LS45OGwtMy4yMDQtMy43MkMxMC42NDUuOTIzIDYuMzY1LjY4NiAzLjU5NCAzLjA4TDEuNzQ4IDEuNDQgMS4xODguOTQuMTkgMi4wNjNaTTE0Ljc2MSA4bC0yLjQ0MiAyLjgzNi0xLjY1LTEuNDY2YTMuMDAxIDMuMDAxIDAgMCAwLTQuMzQyLTMuODZsLTEuNi0xLjQyMmE1LjI1MyA1LjI1MyAwIDAgMSA3LjI1MS42ODJMMTQuNzYgOFpNNy41MjYgNi41NzZsMS45NDIgMS43MjdhMS40OTkgMS40OTkgMCAwIDAtMS45NDItMS43MjdabS03Ljg0NS45MzUgMS43MjItMiAxLjEzNy45NzlMMS4yNCA4bDIuNzgyIDMuMjNBNS4yNSA1LjI1IDAgMCAwIDkuOSAxMi43MDNsLjU0IDEuNGE2Ljc1MSA2Ljc1MSAwIDAgMS03LjU1NS0xLjg5MkwtLjMxOCA4LjQ5di0uOThaXCIsY2xpcFJ1bGU6XCJldmVub2RkXCJ9KX0pfWZ1bmN0aW9uIHQ4KCl7cmV0dXJuKDAseS5qc3hzKShcInN2Z1wiLHt4bWxuczpcImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIsd2lkdGg6XCIyMFwiLGhlaWdodDpcIjE2XCIsdmlld0JveDpcIjAgMCAxNiAxNlwiLGZpbGw6XCJub25lXCIsY2hpbGRyZW46WygwLHkuanN4KShcImdcIix7Y2xpcFBhdGg6XCJ1cmwoI2xpZ2h0X2ljb25fY2xpcF9wYXRoKVwiLGNoaWxkcmVuOigwLHkuanN4KShcInBhdGhcIix7ZmlsbDpcImN1cnJlbnRDb2xvclwiLGZpbGxSdWxlOlwiZXZlbm9kZFwiLGQ6XCJNOC43NS43NVYwaC0xLjV2MmgxLjVWLjc1Wk0zLjI2IDQuMzJsLS41My0uNTMtLjM1NC0uMzUzLS41My0uNTMgMS4wNi0xLjA2MS41My41My4zNTQuMzU0LjUzLjUzLTEuMDYgMS4wNlptOC40Mi0xLjA2LjUzLS41My4zNTMtLjM1NC41My0uNTMgMS4wNjEgMS4wNi0uNTMuNTMtLjM1NC4zNTQtLjUzLjUzLTEuMDYtMS4wNlpNOCAxMS4yNWEzLjI1IDMuMjUgMCAxIDAgMC02LjUgMy4yNSAzLjI1IDAgMCAwIDAgNi41Wm0wIDEuNWE0Ljc1IDQuNzUgMCAxIDAgMC05LjUgNC43NSA0Ljc1IDAgMCAwIDAgOS41Wm02LTUuNWgydjEuNWgtMnYtMS41Wm0tMTMuMjUgMEgwdjEuNWgydi0xLjVILjc1Wm0xLjYyIDUuMzItLjUzLjUzIDEuMDYgMS4wNi41My0uNTMuMzU0LS4zNTMuNTMtLjUzLTEuMDYtMS4wNjEtLjUzLjUzLS4zNTQuMzU0Wm0xMC4yIDEuMDYuNTMuNTMgMS4wNi0xLjA2LS41My0uNTMtLjM1NC0uMzU0LS41My0uNTMtMS4wNiAxLjA2LjUzLjUzLjM1My4zNTRaTTguNzUgMTR2MmgtMS41di0yaDEuNVpcIixjbGlwUnVsZTpcImV2ZW5vZGRcIn0pfSksKDAseS5qc3gpKFwiZGVmc1wiLHtjaGlsZHJlbjooMCx5LmpzeCkoXCJjbGlwUGF0aFwiLHtpZDpcImxpZ2h0X2ljb25fY2xpcF9wYXRoXCIsY2hpbGRyZW46KDAseS5qc3gpKFwicGF0aFwiLHtmaWxsOlwiY3VycmVudENvbG9yXCIsZDpcIk0wIDBoMTZ2MTZIMHpcIn0pfSl9KV19KX1mdW5jdGlvbiB0Nygpe3JldHVybigwLHkuanN4KShcInN2Z1wiLHtcImRhdGEtdGVzdGlkXCI6XCJnZWlzdC1pY29uXCIsaGVpZ2h0OlwiMTZcIixzdHJva2VMaW5lam9pbjpcInJvdW5kXCIsdmlld0JveDpcIjAgMCAxNiAxNlwiLHdpZHRoOlwiMTZcIixjaGlsZHJlbjooMCx5LmpzeCkoXCJwYXRoXCIse2ZpbGxSdWxlOlwiZXZlbm9kZFwiLGNsaXBSdWxlOlwiZXZlbm9kZFwiLGQ6XCJNMS41IDguMDAwMDVDMS41IDUuNTMwODkgMi45OTE5OCAzLjQwOTMyIDUuMTIzNDkgMi40ODg4OUM0Ljg4MTM2IDMuMTk4NTggNC43NSAzLjk1OTM2IDQuNzUgNC43NTAxQzQuNzUgOC42MTYwOSA3Ljg4NDAxIDExLjc1MDEgMTEuNzUgMTEuNzUwMUMxMS44OTk1IDExLjc1MDEgMTIuMDQ4IDExLjc0NTQgMTIuMTk1MyAxMS43MzYxQzExLjA5NTUgMTMuMTE2NCA5LjQwMDQ3IDE0LjAwMDEgNy41IDE0LjAwMDFDNC4xODYyOSAxNC4wMDAxIDEuNSAxMS4zMTM4IDEuNSA4LjAwMDA1Wk02LjQxNzA2IDAuNTc3NzU5QzIuNzg3ODQgMS4xMDMxIDAgNC4yMjUzNiAwIDguMDAwMDVDMCAxMi4xNDIyIDMuMzU3ODYgMTUuNTAwMSA3LjUgMTUuNTAwMUMxMC41Nzk4IDE1LjUwMDEgMTMuMjI0NCAxMy42NDM4IDE0LjM3OTIgMTAuOTkyMUwxMy40NTg4IDkuOTc5N0MxMi45MjE4IDEwLjE1NSAxMi4zNDc4IDEwLjI1MDEgMTEuNzUgMTAuMjUwMUM4LjcxMjQzIDEwLjI1MDEgNi4yNSA3Ljc4NzY3IDYuMjUgNC43NTAxQzYuMjUgMy42MzQzMSA2LjU4MTQ2IDIuNTk4MjMgNy4xNTExMSAxLjczMjE3TDYuNDE3MDYgMC41Nzc3NTlaTTEzLjI1IDFWMS43NVYyLjc1TDE0LjI1IDIuNzVIMTVWNC4yNUgxNC4yNUgxMy4yNVY1LjI1VjZIMTEuNzVWNS4yNVY0LjI1SDEwLjc1TDEwIDQuMjVWMi43NUgxMC43NUwxMS43NSAyLjc1VjEuNzVWMUgxMy4yNVpcIixmaWxsOlwiY3VycmVudENvbG9yXCJ9KX0pfWZ1bmN0aW9uIHJlKCl7cmV0dXJuKDAseS5qc3gpKFwic3ZnXCIse3dpZHRoOlwiMTZcIixoZWlnaHQ6XCIxNlwiLHN0cm9rZUxpbmVqb2luOlwicm91bmRcIixjaGlsZHJlbjooMCx5LmpzeCkoXCJwYXRoXCIse2ZpbGw6XCJjdXJyZW50Q29sb3JcIixmaWxsUnVsZTpcImV2ZW5vZGRcIixkOlwiTTAgMmExIDEgMCAwIDEgMS0xaDE0YTEgMSAwIDAgMSAxIDF2OC41YTEgMSAwIDAgMS0xIDFIOC43NXYzaDEuNzVWMTZoLTV2LTEuNWgxLjc1di0zSDFhMSAxIDAgMCAxLTEtMVYyWm0xLjUuNVYxMGgxM1YyLjVoLTEzWlwiLGNsaXBSdWxlOlwiZXZlbm9kZFwifSl9KX1mdW5jdGlvbiBybihlLG4peyhudWxsPT1ufHxuPmUubGVuZ3RoKSYmKG49ZS5sZW5ndGgpO2Zvcih2YXIgdD0wLHI9QXJyYXkobik7dDxuO3QrKylyW3RdPWVbdF07cmV0dXJuIHJ9ZnVuY3Rpb24gcnQoZSxuKXtyZXR1cm4gZnVuY3Rpb24oZSl7aWYoQXJyYXkuaXNBcnJheShlKSlyZXR1cm4gZX0oZSl8fGZ1bmN0aW9uKGUsbil7dmFyIHQscixvPW51bGw9PWU/bnVsbDpcInVuZGVmaW5lZFwiIT10eXBlb2YgU3ltYm9sJiZlW1N5bWJvbC5pdGVyYXRvcl18fGVbXCJAQGl0ZXJhdG9yXCJdO2lmKG51bGwhPW8pe3ZhciBhPVtdLGk9ITAsbD0hMTt0cnl7Zm9yKG89by5jYWxsKGUpOyEoaT0odD1vLm5leHQoKSkuZG9uZSkmJihhLnB1c2godC52YWx1ZSksIW58fGEubGVuZ3RoIT09bik7aT0hMCk7fWNhdGNoKGUpe2w9ITAscj1lfWZpbmFsbHl7dHJ5e2l8fG51bGw9PW8ucmV0dXJufHxvLnJldHVybigpfWZpbmFsbHl7aWYobCl0aHJvdyByfX1yZXR1cm4gYX19KGUsbil8fGZ1bmN0aW9uKGUsbil7aWYoZSl7aWYoXCJzdHJpbmdcIj09dHlwZW9mIGUpcmV0dXJuIHJuKGUsbik7dmFyIHQ9T2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKGUpLnNsaWNlKDgsLTEpO2lmKFwiT2JqZWN0XCI9PT10JiZlLmNvbnN0cnVjdG9yJiYodD1lLmNvbnN0cnVjdG9yLm5hbWUpLFwiTWFwXCI9PT10fHxcIlNldFwiPT09dClyZXR1cm4gQXJyYXkuZnJvbSh0KTtpZihcIkFyZ3VtZW50c1wiPT09dHx8L14oPzpVaXxJKW50KD86OHwxNnwzMikoPzpDbGFtcGVkKT9BcnJheSQvLnRlc3QodCkpcmV0dXJuIHJuKGUsbil9fShlLG4pfHxmdW5jdGlvbigpe3Rocm93IFR5cGVFcnJvcihcIkludmFsaWQgYXR0ZW1wdCB0byBkZXN0cnVjdHVyZSBub24taXRlcmFibGUgaW5zdGFuY2UuXFxcXG5JbiBvcmRlciB0byBiZSBpdGVyYWJsZSwgbm9uLWFycmF5IG9iamVjdHMgbXVzdCBoYXZlIGEgW1N5bWJvbC5pdGVyYXRvcl0oKSBtZXRob2QuXCIpfSgpfXZhciBycj1wcm9jZXNzLmVudi5fX05FWFRfREVWX0lORElDQVRPUl9QT1NJVElPTnx8XCJib3R0b20tbGVmdFwiLHJvPVwiX19uZXh0anNfaGlkZV9zaG9ydGN1dFwiO2Z1bmN0aW9uIHJhKGUsbil7KG51bGw9PW58fG4+ZS5sZW5ndGgpJiYobj1lLmxlbmd0aCk7Zm9yKHZhciB0PTAscj1BcnJheShuKTt0PG47dCsrKXJbdF09ZVt0XTtyZXR1cm4gcn1mdW5jdGlvbiByaShlLG4pe3JldHVybiBmdW5jdGlvbihlKXtpZihBcnJheS5pc0FycmF5KGUpKXJldHVybiBlfShlKXx8ZnVuY3Rpb24oZSxuKXt2YXIgdCxyLG89bnVsbD09ZT9udWxsOlwidW5kZWZpbmVkXCIhPXR5cGVvZiBTeW1ib2wmJmVbU3ltYm9sLml0ZXJhdG9yXXx8ZVtcIkBAaXRlcmF0b3JcIl07aWYobnVsbCE9byl7dmFyIGE9W10saT0hMCxsPSExO3RyeXtmb3Iobz1vLmNhbGwoZSk7IShpPSh0PW8ubmV4dCgpKS5kb25lKSYmKGEucHVzaCh0LnZhbHVlKSwhbnx8YS5sZW5ndGghPT1uKTtpPSEwKTt9Y2F0Y2goZSl7bD0hMCxyPWV9ZmluYWxseXt0cnl7aXx8bnVsbD09by5yZXR1cm58fG8ucmV0dXJuKCl9ZmluYWxseXtpZihsKXRocm93IHJ9fXJldHVybiBhfX0oZSxuKXx8cnMoZSxuKXx8ZnVuY3Rpb24oKXt0aHJvdyBUeXBlRXJyb3IoXCJJbnZhbGlkIGF0dGVtcHQgdG8gZGVzdHJ1Y3R1cmUgbm9uLWl0ZXJhYmxlIGluc3RhbmNlLlxcXFxuSW4gb3JkZXIgdG8gYmUgaXRlcmFibGUsIG5vbi1hcnJheSBvYmplY3RzIG11c3QgaGF2ZSBhIFtTeW1ib2wuaXRlcmF0b3JdKCkgbWV0aG9kLlwiKX0oKX1mdW5jdGlvbiBybChlKXtyZXR1cm4gZnVuY3Rpb24oZSl7aWYoQXJyYXkuaXNBcnJheShlKSlyZXR1cm4gcmEoZSl9KGUpfHxmdW5jdGlvbihlKXtpZihcInVuZGVmaW5lZFwiIT10eXBlb2YgU3ltYm9sJiZudWxsIT1lW1N5bWJvbC5pdGVyYXRvcl18fG51bGwhPWVbXCJAQGl0ZXJhdG9yXCJdKXJldHVybiBBcnJheS5mcm9tKGUpfShlKXx8cnMoZSl8fGZ1bmN0aW9uKCl7dGhyb3cgVHlwZUVycm9yKFwiSW52YWxpZCBhdHRlbXB0IHRvIHNwcmVhZCBub24taXRlcmFibGUgaW5zdGFuY2UuXFxcXG5JbiBvcmRlciB0byBiZSBpdGVyYWJsZSwgbm9uLWFycmF5IG9iamVjdHMgbXVzdCBoYXZlIGEgW1N5bWJvbC5pdGVyYXRvcl0oKSBtZXRob2QuXCIpfSgpfWZ1bmN0aW9uIHJzKGUsbil7aWYoZSl7aWYoXCJzdHJpbmdcIj09dHlwZW9mIGUpcmV0dXJuIHJhKGUsbik7dmFyIHQ9T2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKGUpLnNsaWNlKDgsLTEpO2lmKFwiT2JqZWN0XCI9PT10JiZlLmNvbnN0cnVjdG9yJiYodD1lLmNvbnN0cnVjdG9yLm5hbWUpLFwiTWFwXCI9PT10fHxcIlNldFwiPT09dClyZXR1cm4gQXJyYXkuZnJvbSh0KTtpZihcIkFyZ3VtZW50c1wiPT09dHx8L14oPzpVaXxJKW50KD86OHwxNnwzMikoPzpDbGFtcGVkKT9BcnJheSQvLnRlc3QodCkpcmV0dXJuIHJhKGUsbil9fWZ1bmN0aW9uIHJjKCl7dmFyIGUsbix0PShlPVtcIlxcbiAgLnNob3J0Y3V0LXJlY29yZGVyIHtcXG4gICAgZGlzcGxheTogZmxleDtcXG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcXG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XFxuICAgIGdhcDogOHB4O1xcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XFxuICAgIGZvbnQtZmFtaWx5OiB2YXIoLS1mb250LXN0YWNrLXNhbnMpO1xcblxcbiAgICAuc2hvcnRjdXQtcmVjb3JkZXItYnV0dG9uIHtcXG4gICAgICBkaXNwbGF5OiBmbGV4O1xcbiAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XFxuICAgICAgZ2FwOiA0cHg7XFxuICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XFxuICAgICAgYm9yZGVyOiAxcHggZGFzaGVkIHZhcigtLWNvbG9yLWdyYXktNTAwKTtcXG4gICAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1yb3VuZGVkLWxnKTtcXG4gICAgICBwYWRkaW5nOiA2cHggOHB4O1xcbiAgICAgIGZvbnQtd2VpZ2h0OiA0MDA7XFxuICAgICAgZm9udC1zaXplOiB2YXIoLS1zaXplLTE0KTtcXG4gICAgICBjb2xvcjogdmFyKC0tY29sb3ItZ3JheS0xMDAwKTtcXG4gICAgICB0cmFuc2l0aW9uOiBib3JkZXItY29sb3IgMTUwbXMgdmFyKC0tdGltaW5nLXN3aWZ0KTtcXG5cXG4gICAgICAmW2RhdGEtaGFzLXNob3J0Y3V0PSd0cnVlJ10ge1xcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tY29sb3ItZ3JheS1hbHBoYS00MDApO1xcblxcbiAgICAgICAgJjpob3ZlciB7XFxuICAgICAgICAgIGJvcmRlci1jb2xvcjogdmFyKC0tY29sb3ItZ3JheS01MDApO1xcbiAgICAgICAgfVxcbiAgICAgIH1cXG5cXG4gICAgICAmOmhvdmVyIHtcXG4gICAgICAgIGJvcmRlci1jb2xvcjogdmFyKC0tY29sb3ItZ3JheS02MDApO1xcbiAgICAgIH1cXG5cXG4gICAgICAmOjpwbGFjZWhvbGRlciB7XFxuICAgICAgICBjb2xvcjogdmFyKC0tY29sb3ItZ3JheS05MDApO1xcbiAgICAgIH1cXG5cXG4gICAgICAmW2RhdGEtcHJpc3RpbmU9J2ZhbHNlJ106OnBsYWNlaG9sZGVyIHtcXG4gICAgICAgIGNvbG9yOiB0cmFuc3BhcmVudDtcXG4gICAgICB9XFxuXFxuICAgICAgJjpmb2N1cy12aXNpYmxlIHtcXG4gICAgICAgIG91dGxpbmU6IHZhcigtLWZvY3VzLXJpbmcpO1xcbiAgICAgICAgb3V0bGluZS1vZmZzZXQ6IC0xcHg7XFxuICAgICAgfVxcbiAgICB9XFxuXFxuICAgIGtiZCB7XFxuICAgICAgZGlzcGxheTogaW5saW5lLWZsZXg7XFxuICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcXG4gICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcXG4gICAgICBmb250LWZhbWlseTogdmFyKC0tZm9udC1zdGFjay1zYW5zKTtcXG4gICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1jb2xvci1ncmF5LTIwMCk7XFxuICAgICAgbWluLXdpZHRoOiAyMHB4O1xcbiAgICAgIGhlaWdodDogMjBweDtcXG4gICAgICBmb250LXNpemU6IDE0cHg7XFxuICAgICAgYm9yZGVyLXJhZGl1czogNHB4O1xcbiAgICAgIGNvbG9yOiB2YXIoLS1jb2xvci1ncmF5LTEwMDApO1xcblxcbiAgICAgICZbZGF0YS1zeW1ib2w9J2ZhbHNlJ10ge1xcbiAgICAgICAgcGFkZGluZzogMCA0cHg7XFxuICAgICAgfVxcbiAgICB9XFxuXFxuICAgIC5zaG9ydGN1dC1yZWNvcmRlci1jbGVhci1idXR0b24ge1xcbiAgICAgIGN1cnNvcjogcG9pbnRlcjtcXG4gICAgICBjb2xvcjogdmFyKC0tY29sb3ItZ3JheS0xMDAwKTtcXG4gICAgICB3aWR0aDogMjBweDtcXG4gICAgICBoZWlnaHQ6IDIwcHg7XFxuICAgICAgZGlzcGxheTogZmxleDtcXG4gICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xcbiAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xcbiAgICAgIGJvcmRlci1yYWRpdXM6IDRweDtcXG4gICAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIDE1MG1zIHZhcigtLXRpbWluZy1zd2lmdCk7XFxuXFxuICAgICAgJjpob3ZlciB7XFxuICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1jb2xvci1ncmF5LTMwMCk7XFxuICAgICAgfVxcblxcbiAgICAgICY6Zm9jdXMtdmlzaWJsZSB7XFxuICAgICAgICBvdXRsaW5lOiB2YXIoLS1mb2N1cy1yaW5nKTtcXG4gICAgICB9XFxuXFxuICAgICAgc3ZnIHtcXG4gICAgICAgIHdpZHRoOiAxNHB4O1xcbiAgICAgICAgaGVpZ2h0OiAxNHB4O1xcbiAgICAgIH1cXG4gICAgfVxcbiAgfVxcblxcbiAgLnNob3J0Y3V0LXJlY29yZGVyLWtleXMge1xcbiAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcXG4gICAgdXNlci1zZWxlY3Q6IG5vbmU7XFxuICAgIGRpc3BsYXk6IGZsZXg7XFxuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XFxuICAgIGdhcDogMnB4O1xcbiAgfVxcblxcbiAgLnNob3J0Y3V0LXJlY29yZGVyLXRvb2x0aXAge1xcbiAgICAtLWdhcDogOHB4O1xcbiAgICAtLWJhY2tncm91bmQ6IHZhcigtLWNvbG9yLWdyYXktMTAwMCk7XFxuICAgIGJhY2tncm91bmQ6IHZhcigtLWJhY2tncm91bmQpO1xcbiAgICBjb2xvcjogdmFyKC0tY29sb3ItYmFja2dyb3VuZC0xMDApO1xcbiAgICBmb250LXNpemU6IHZhcigtLXNpemUtMTQpO1xcbiAgICBwYWRkaW5nOiA0cHggOHB4O1xcbiAgICBib3JkZXItcmFkaXVzOiA4cHg7XFxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcXG4gICAgYm90dG9tOiBjYWxjKDEwMCUgKyB2YXIoLS1nYXApKTtcXG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xcbiAgICBvcGFjaXR5OiAwO1xcbiAgICBzY2FsZTogMC45NjtcXG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcXG4gICAgdXNlci1zZWxlY3Q6IG5vbmU7XFxuICAgIHRyYW5zaXRpb246XFxuICAgICAgb3BhY2l0eSAxNTBtcyB2YXIoLS10aW1pbmctc3dpZnQpLFxcbiAgICAgIHNjYWxlIDE1MG1zIHZhcigtLXRpbWluZy1zd2lmdCk7XFxuXFxuICAgICZbZGF0YS1zaG93PSd0cnVlJ10ge1xcbiAgICAgIG9wYWNpdHk6IDE7XFxuICAgICAgc2NhbGU6IDE7XFxuICAgIH1cXG5cXG4gICAgc3ZnIHtcXG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XFxuICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpO1xcbiAgICAgIGJvdHRvbTogLTZweDtcXG4gICAgICBsZWZ0OiA1MCU7XFxuICAgIH1cXG5cXG4gICAgLnNob3J0Y3V0LXJlY29yZGVyLXN0YXR1cyB7XFxuICAgICAgZGlzcGxheTogZmxleDtcXG4gICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xcbiAgICAgIGdhcDogNnB4O1xcbiAgICB9XFxuXFxuICAgIC5zaG9ydGN1dC1yZWNvcmRlci1zdGF0dXMtaWNvbiB7XFxuICAgICAgd2lkdGg6IDdweDtcXG4gICAgICBoZWlnaHQ6IDdweDtcXG4gICAgICBib3JkZXItcmFkaXVzOiA1MCU7XFxuICAgICAgZmxleC1zaHJpbms6IDA7XFxuICAgICAgYmFja2dyb3VuZDogdmFyKC0tY29sb3ItcmVkLTcwMCk7XFxuXFxuICAgICAgJltkYXRhLXN1Y2Nlc3M9J3RydWUnXSB7XFxuICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1jb2xvci1ncmVlbi03MDApO1xcbiAgICAgIH1cXG4gICAgfVxcbiAgfVxcblwiXSxufHwobj1lLnNsaWNlKDApKSxPYmplY3QuZnJlZXplKE9iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKGUse3Jhdzp7dmFsdWU6T2JqZWN0LmZyZWV6ZShuKX19KSkpO3JldHVybiByYz1mdW5jdGlvbigpe3JldHVybiB0fSx0fXZhciBydT1bXCJNZXRhXCIsXCJDb250cm9sXCIsXCJDdHJsXCIsXCJBbHRcIixcIk9wdGlvblwiLFwiU2hpZnRcIl07ZnVuY3Rpb24gcmQoZSl7dmFyIG49ZS52YWx1ZSx0PWUub25DaGFuZ2Uscj1yaSgoMCx4LnVzZVN0YXRlKSghMSksMiksbz1yWzBdLGE9clsxXSxpPXJpKCgwLHgudXNlU3RhdGUpKG51bGwhPW4/bjpbXSksMiksbD1pWzBdLHM9aVsxXSxjPXJpKCgwLHgudXNlU3RhdGUpKCExKSwyKSx1PWNbMF0sZD1jWzFdLGY9KDAseC51c2VSZWYpKG51bGwpLHA9KDAseC51c2VSZWYpKG51bGwpLGg9ISFufHxsLmxlbmd0aD4wO2Z1bmN0aW9uIGcoKXt2YXIgZTtudWxsPT0oZT1wLmN1cnJlbnQpfHxlLmZvY3VzKCkscyhbXSksZCghMSksc2V0VGltZW91dChmdW5jdGlvbigpe2EoITApfSksdChudWxsKX1mdW5jdGlvbiBtKCl7dmFyIGU7Zi5jdXJyZW50JiZjbGVhclRpbWVvdXQoZi5jdXJyZW50KSxhKCEwKSxudWxsPT0oZT1wLmN1cnJlbnQpfHxlLmZvY3VzKCl9cmV0dXJuKDAseS5qc3hzKShcImRpdlwiLHtjbGFzc05hbWU6XCJzaG9ydGN1dC1yZWNvcmRlclwiLGNoaWxkcmVuOlsoMCx5LmpzeHMpKFwiYnV0dG9uXCIse2NsYXNzTmFtZTpcInNob3J0Y3V0LXJlY29yZGVyLWJ1dHRvblwiLHJlZjpwLG9uQ2xpY2s6bSxvbkZvY3VzOm0sb25CbHVyOmZ1bmN0aW9uKCl7ZCghMSksYSghMSl9LG9uS2V5RG93bjpmdW5jdGlvbihlKXtlLnRhcmdldD09PXAuY3VycmVudCYmXCJUYWJcIiE9PWUua2V5JiYoZi5jdXJyZW50JiZjbGVhclRpbWVvdXQoZi5jdXJyZW50KSxvfHxhKCEwKSwzIT09bC5sZW5ndGgmJihlLnByZXZlbnREZWZhdWx0KCksZS5zdG9wUHJvcGFnYXRpb24oKSxzKGZ1bmN0aW9uKHQpe2lmKHQuaW5jbHVkZXMoZS5rZXkpKXJldHVybiB0O2lmKCFydS5pbmNsdWRlcyhlLmtleSkpe3ZhciByPXQuZmluZEluZGV4KGZ1bmN0aW9uKGUpe3JldHVybiFydS5pbmNsdWRlcyhlKX0pO2lmKC0xIT09cil7dmFyIG89cmwodCk7cmV0dXJuIG9bcl09ZS5rZXksbihvKSxvfXZhciBhPXJsKHQpLmNvbmNhdChbZS5rZXldKTtyZXR1cm4gbihhKSxhfWZvcih2YXIgaT1ybCh0KSxsPXJ1LmluZGV4T2YoZS5rZXkpLHM9MCxjPTA7YzxpLmxlbmd0aDtjKyspaWYocnUuaW5jbHVkZXMoaVtjXSkpe2lmKGw8cnUuaW5kZXhPZihpW2NdKSl7cz1jO2JyZWFrfXM9YysxfWVsc2UgYnJlYWs7cmV0dXJuIGkuc3BsaWNlKHMsMCxlLmtleSksbihpKSxpfSkpKTtmdW5jdGlvbiBuKGUpe2YuY3VycmVudD13aW5kb3cuc2V0VGltZW91dChmdW5jdGlvbigpe2QoITApLHQoZS5qb2luKFwiK1wiKSksZi5jdXJyZW50PXdpbmRvdy5zZXRUaW1lb3V0KGZ1bmN0aW9uKCl7YSghMSl9LDFlMyl9LDE4MCl9fSxcImRhdGEtaGFzLXNob3J0Y3V0XCI6aCxcImRhdGEtc2hvcnRjdXQtcmVjb3JkZXJcIjpcInRydWVcIixjaGlsZHJlbjpbaD8oMCx5LmpzeCkoXCJkaXZcIix7Y2xhc3NOYW1lOlwic2hvcnRjdXQtcmVjb3JkZXIta2V5c1wiLGNoaWxkcmVuOmwubWFwKGZ1bmN0aW9uKGUpe3JldHVybigwLHkuanN4KShycCx7Y2hpbGRyZW46ZX0sZSl9KX0pOlwiUmVjb3JkIFNob3J0Y3V0XCIsaCYmKDAseS5qc3gpKFwiZGl2XCIse2NsYXNzTmFtZTpcInNob3J0Y3V0LXJlY29yZGVyLWNsZWFyLWJ1dHRvblwiLHJvbGU6XCJidXR0b25cIixvbkNsaWNrOmcsb25Gb2N1czpmdW5jdGlvbihlKXtyZXR1cm4gZS5zdG9wUHJvcGFnYXRpb24oKX0sb25LZXlEb3duOmZ1bmN0aW9uKGUpeyhcIkVudGVyXCI9PT1lLmtleXx8XCIgXCI9PT1lLmtleSkmJihnKCksZS5zdG9wUHJvcGFnYXRpb24oKSl9LFwiYXJpYS1sYWJlbFwiOlwiQ2xlYXIgc2hvcnRjdXRcIix0YWJJbmRleDowLGNoaWxkcmVuOigwLHkuanN4KShyZyx7fSl9KV19KSwoMCx5LmpzeHMpKFwiZGl2XCIse2NsYXNzTmFtZTpcInNob3J0Y3V0LXJlY29yZGVyLXRvb2x0aXBcIixcImRhdGEtc2hvd1wiOm8sY2hpbGRyZW46WygwLHkuanN4cykoXCJkaXZcIix7Y2xhc3NOYW1lOlwic2hvcnRjdXQtcmVjb3JkZXItc3RhdHVzXCIsY2hpbGRyZW46WygwLHkuanN4KShcImRpdlwiLHtjbGFzc05hbWU6XCJzaG9ydGN1dC1yZWNvcmRlci1zdGF0dXMtaWNvblwiLFwiZGF0YS1zdWNjZXNzXCI6dX0pLHU/XCJTaG9ydGN1dCBzZXRcIjpcIlJlY29yZGluZ1wiXX0pLCgwLHkuanN4KShyZix7fSldfSldfSl9ZnVuY3Rpb24gcmYoKXtyZXR1cm4oMCx5LmpzeCkoXCJzdmdcIix7ZmlsbDpcIm5vbmVcIixoZWlnaHQ6XCI2XCIsdmlld0JveDpcIjAgMCAxNCA2XCIsd2lkdGg6XCIxNFwiLHhtbG5zOlwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIixjaGlsZHJlbjooMCx5LmpzeCkoXCJwYXRoXCIse2Q6XCJNMTMuODI4NCAwSDAuMTcxNTdDMC43MDIwMDMgMCAxLjIxMDcxIDAuMjEwNzE0IDEuNTg1NzggMC41ODU3ODdMNS41ODU3OCA0LjU4NTc5QzYuMzY2ODMgNS4zNjY4NCA3LjYzMzE2IDUuMzY2ODMgOC40MTQyMSA0LjU4NTc5TDEyLjQxNDIgMC41ODU3ODZDMTIuNzg5MyAwLjIxMDcxNCAxMy4yOTggMCAxMy44Mjg0IDBaXCIsZmlsbDpcInZhcigtLWJhY2tncm91bmQpXCJ9KX0pfWZ1bmN0aW9uIHJwKGUpe3ZhciBuPWUuY2hpbGRyZW4sdD1mdW5jdGlvbihlKXtzd2l0Y2goZSl7Y2FzZVwiTWV0YVwiOnJldHVybigwLHkuanN4KShyaCx7fSk7Y2FzZVwiQWx0XCI6Y2FzZVwiT3B0aW9uXCI6cmV0dXJuXCLijKVcIjtjYXNlXCJDb250cm9sXCI6Y2FzZVwiQ3RybFwiOnJldHVyblwiQ3RybFwiO2Nhc2VcIlNoaWZ0XCI6cmV0dXJuXCLih6dcIjtjYXNlXCJFbnRlclwiOnJldHVyblwi4o+OXCI7Y2FzZVwiRXNjYXBlXCI6Y2FzZVwiRXNjXCI6cmV0dXJuXCJFc2NcIjtjYXNlXCIgXCI6Y2FzZVwiU3BhY2VcIjpjYXNlXCJTcGFjZWJhclwiOnJldHVyblwiU3BhY2VcIjtjYXNlXCJBcnJvd1VwXCI6cmV0dXJuXCLihpFcIjtjYXNlXCJBcnJvd0Rvd25cIjpyZXR1cm5cIuKGk1wiO2Nhc2VcIkFycm93TGVmdFwiOnJldHVyblwi4oaQXCI7Y2FzZVwiQXJyb3dSaWdodFwiOnJldHVyblwi4oaSXCI7Y2FzZVwiVGFiXCI6cmV0dXJuXCJUYWJcIjtjYXNlXCJCYWNrc3BhY2VcIjpyZXR1cm5cIuKMq1wiO2Nhc2VcIkRlbGV0ZVwiOnJldHVyblwi4oymXCI7ZGVmYXVsdDppZigxPT09bi5sZW5ndGgpcmV0dXJuIG4udG9VcHBlckNhc2UoKTtyZXR1cm4gbn19KG4pLHI9XCJzdHJpbmdcIj09dHlwZW9mIHQmJjE9PT10Lmxlbmd0aDtyZXR1cm4oMCx5LmpzeCkoXCJrYmRcIix7XCJkYXRhLXN5bWJvbFwiOnIsY2hpbGRyZW46dH0pfWZ1bmN0aW9uIHJoKCl7dmFyIGU9cmkoKDAseC51c2VTdGF0ZSkoXCJcXHhhMFwiKSwyKSxuPWVbMF0sdD1lWzFdLHI9cnYoL15NYWMvKXx8cnYoL15pUGhvbmUvKXx8cnYoL15pUGFkLyl8fHJ2KC9eTWFjLykmJm5hdmlnYXRvci5tYXhUb3VjaFBvaW50cz4xO3JldHVybigwLHgudXNlRWZmZWN0KShmdW5jdGlvbigpeyEwPT09ciYmdChcIuKMmFwiKSwhMT09PXImJnQoXCJDdHJsXCIpfSxbcl0pLCgwLHkuanN4KShcInNwYW5cIix7c3R5bGU6e21pbldpZHRoOlwiMWVtXCIsZGlzcGxheTpcImlubGluZS1ibG9ja1wifSxjaGlsZHJlbjpufSl9ZnVuY3Rpb24gcmcoKXtyZXR1cm4oMCx5LmpzeCkoXCJzdmdcIix7aGVpZ2h0OlwiMTZcIixzdHJva2VMaW5lam9pbjpcInJvdW5kXCIsdmlld0JveDpcIjAgMCAxNiAxNlwiLHdpZHRoOlwiMTZcIixjaGlsZHJlbjooMCx5LmpzeCkoXCJwYXRoXCIse2ZpbGxSdWxlOlwiZXZlbm9kZFwiLGNsaXBSdWxlOlwiZXZlbm9kZFwiLGQ6XCJNMTIuNDY5NyAxMy41MzAzTDEzIDE0LjA2MDdMMTQuMDYwNyAxM0wxMy41MzAzIDEyLjQ2OTdMOS4wNjA2NSA3Ljk5OTk5TDEzLjUzMDMgMy41MzAzMkwxNC4wNjA3IDIuOTk5OTlMMTMgMS45MzkzM0wxMi40Njk3IDIuNDY5NjZMNy45OTk5OSA2LjkzOTMzTDMuNTMwMzIgMi40Njk2NkwyLjk5OTk5IDEuOTM5MzNMMS45MzkzMyAyLjk5OTk5TDIuNDY5NjYgMy41MzAzMkw2LjkzOTMzIDcuOTk5OTlMMi40Njk2NiAxMi40Njk3TDEuOTM5MzMgMTNMMi45OTk5OSAxNC4wNjA3TDMuNTMwMzIgMTMuNTMwM0w3Ljk5OTk5IDkuMDYwNjVMMTIuNDY5NyAxMy41MzAzWlwiLGZpbGw6XCJjdXJyZW50Q29sb3JcIn0pfSl9dmFyIHJtPWVpKHJjKCkpO2Z1bmN0aW9uIHJ2KGUpe3JldHVyblwidW5kZWZpbmVkXCIhPXR5cGVvZiB3aW5kb3cmJm51bGwhPXdpbmRvdy5uYXZpZ2F0b3I/ZS50ZXN0KHdpbmRvdy5uYXZpZ2F0b3IucGxhdGZvcm0pOnZvaWQgMH1mdW5jdGlvbiByYihlLG4peyhudWxsPT1ufHxuPmUubGVuZ3RoKSYmKG49ZS5sZW5ndGgpO2Zvcih2YXIgdD0wLHI9QXJyYXkobik7dDxuO3QrKylyW3RdPWVbdF07cmV0dXJuIHJ9ZnVuY3Rpb24gcnkoZSl7Zm9yKHZhciBuPTE7bjxhcmd1bWVudHMubGVuZ3RoO24rKyl7dmFyIHQ9bnVsbCE9YXJndW1lbnRzW25dP2FyZ3VtZW50c1tuXTp7fSxyPU9iamVjdC5rZXlzKHQpO1wiZnVuY3Rpb25cIj09dHlwZW9mIE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMmJihyPXIuY29uY2F0KE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHModCkuZmlsdGVyKGZ1bmN0aW9uKGUpe3JldHVybiBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHQsZSkuZW51bWVyYWJsZX0pKSksci5mb3JFYWNoKGZ1bmN0aW9uKG4pe3ZhciByLG8sYTtyPWUsbz1uLGE9dFtuXSxvIGluIHI/T2JqZWN0LmRlZmluZVByb3BlcnR5KHIsbyx7dmFsdWU6YSxlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMH0pOnJbb109YX0pfXJldHVybiBlfWZ1bmN0aW9uIHJ4KGUsbil7cmV0dXJuIG49bnVsbCE9bj9uOnt9LE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzP09iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKGUsT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcnMobikpOihmdW5jdGlvbihlLG4pe3ZhciB0PU9iamVjdC5rZXlzKGUpO2lmKE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMpe3ZhciByPU9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMoZSk7dC5wdXNoLmFwcGx5KHQscil9cmV0dXJuIHR9KShPYmplY3QobikpLmZvckVhY2goZnVuY3Rpb24odCl7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsdCxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKG4sdCkpfSksZX1mdW5jdGlvbiBydyhlLG4pe2lmKG51bGw9PWUpcmV0dXJue307dmFyIHQscixvPWZ1bmN0aW9uKGUsbil7aWYobnVsbD09ZSlyZXR1cm57fTt2YXIgdCxyLG89e30sYT1PYmplY3Qua2V5cyhlKTtmb3Iocj0wO3I8YS5sZW5ndGg7cisrKXQ9YVtyXSxuLmluZGV4T2YodCk+PTB8fChvW3RdPWVbdF0pO3JldHVybiBvfShlLG4pO2lmKE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMpe3ZhciBhPU9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMoZSk7Zm9yKHI9MDtyPGEubGVuZ3RoO3IrKyl0PWFbcl0sIShuLmluZGV4T2YodCk+PTApJiZPYmplY3QucHJvdG90eXBlLnByb3BlcnR5SXNFbnVtZXJhYmxlLmNhbGwoZSx0KSYmKG9bdF09ZVt0XSl9cmV0dXJuIG99ZnVuY3Rpb24gcmooZSxuKXtyZXR1cm4gZnVuY3Rpb24oZSl7aWYoQXJyYXkuaXNBcnJheShlKSlyZXR1cm4gZX0oZSl8fGZ1bmN0aW9uKGUsbil7dmFyIHQscixvPW51bGw9PWU/bnVsbDpcInVuZGVmaW5lZFwiIT10eXBlb2YgU3ltYm9sJiZlW1N5bWJvbC5pdGVyYXRvcl18fGVbXCJAQGl0ZXJhdG9yXCJdO2lmKG51bGwhPW8pe3ZhciBhPVtdLGk9ITAsbD0hMTt0cnl7Zm9yKG89by5jYWxsKGUpOyEoaT0odD1vLm5leHQoKSkuZG9uZSkmJihhLnB1c2godC52YWx1ZSksIW58fGEubGVuZ3RoIT09bik7aT0hMCk7fWNhdGNoKGUpe2w9ITAscj1lfWZpbmFsbHl7dHJ5e2l8fG51bGw9PW8ucmV0dXJufHxvLnJldHVybigpfWZpbmFsbHl7aWYobCl0aHJvdyByfX1yZXR1cm4gYX19KGUsbil8fGZ1bmN0aW9uKGUsbil7aWYoZSl7aWYoXCJzdHJpbmdcIj09dHlwZW9mIGUpcmV0dXJuIHJiKGUsbik7dmFyIHQ9T2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKGUpLnNsaWNlKDgsLTEpO2lmKFwiT2JqZWN0XCI9PT10JiZlLmNvbnN0cnVjdG9yJiYodD1lLmNvbnN0cnVjdG9yLm5hbWUpLFwiTWFwXCI9PT10fHxcIlNldFwiPT09dClyZXR1cm4gQXJyYXkuZnJvbSh0KTtpZihcIkFyZ3VtZW50c1wiPT09dHx8L14oPzpVaXxJKW50KD86OHwxNnwzMikoPzpDbGFtcGVkKT9BcnJheSQvLnRlc3QodCkpcmV0dXJuIHJiKGUsbil9fShlLG4pfHxmdW5jdGlvbigpe3Rocm93IFR5cGVFcnJvcihcIkludmFsaWQgYXR0ZW1wdCB0byBkZXN0cnVjdHVyZSBub24taXRlcmFibGUgaW5zdGFuY2UuXFxcXG5JbiBvcmRlciB0byBiZSBpdGVyYWJsZSwgbm9uLWFycmF5IG9iamVjdHMgbXVzdCBoYXZlIGEgW1N5bWJvbC5pdGVyYXRvcl0oKSBtZXRob2QuXCIpfSgpfWZ1bmN0aW9uIHJrKCl7dmFyIGUsbix0PShlPVtcIlxcbiAgLnByZWZlcmVuY2VzLWNvbnRhaW5lciB7XFxuICAgIHdpZHRoOiAxMDAlO1xcbiAgfVxcblxcbiAgQG1lZGlhIChtaW4td2lkdGg6IDU3NnB4KSB7XFxuICAgIC5wcmVmZXJlbmNlcy1jb250YWluZXIge1xcbiAgICAgIHdpZHRoOiA0ODBweDtcXG4gICAgfVxcbiAgfVxcblxcbiAgLnByZWZlcmVuY2Utc2VjdGlvbjpmaXJzdC1jaGlsZCB7XFxuICAgIHBhZGRpbmctdG9wOiAwO1xcbiAgfVxcblxcbiAgLnByZWZlcmVuY2Utc2VjdGlvbiB7XFxuICAgIHBhZGRpbmc6IDEycHggMDtcXG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHZhcigtLWNvbG9yLWdyYXktNDAwKTtcXG4gICAgZGlzcGxheTogZmxleDtcXG4gICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xcbiAgICBnYXA6IDI0cHg7XFxuICB9XFxuXFxuICAucHJlZmVyZW5jZS1zZWN0aW9uOmxhc3QtY2hpbGQge1xcbiAgICBib3JkZXItYm90dG9tOiBub25lO1xcbiAgfVxcblxcbiAgLnByZWZlcmVuY2UtaGVhZGVyIHtcXG4gICAgbWFyZ2luLWJvdHRvbTogMDtcXG4gICAgZmxleDogMTtcXG4gIH1cXG5cXG4gIC5wcmVmZXJlbmNlLWhlYWRlciBsYWJlbCB7XFxuICAgIGZvbnQtc2l6ZTogdmFyKC0tc2l6ZS0xNCk7XFxuICAgIGZvbnQtd2VpZ2h0OiA1MDA7XFxuICAgIGNvbG9yOiB2YXIoLS1jb2xvci1ncmF5LTEwMDApO1xcbiAgICBtYXJnaW46IDA7XFxuICB9XFxuXFxuICAucHJlZmVyZW5jZS1kZXNjcmlwdGlvbiB7XFxuICAgIGNvbG9yOiB2YXIoLS1jb2xvci1ncmF5LTkwMCk7XFxuICAgIGZvbnQtc2l6ZTogdmFyKC0tc2l6ZS0xNCk7XFxuICAgIG1hcmdpbjogMDtcXG4gIH1cXG5cXG4gIC5zZWxlY3QtYnV0dG9uLFxcbiAgLmFjdGlvbi1idXR0b24ge1xcbiAgICBkaXNwbGF5OiBmbGV4O1xcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xcbiAgICBnYXA6IDhweDtcXG4gICAgYmFja2dyb3VuZDogdmFyKC0tY29sb3ItYmFja2dyb3VuZC0xMDApO1xcbiAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1jb2xvci1ncmF5LTQwMCk7XFxuICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLXJvdW5kZWQtbGcpO1xcbiAgICBmb250LXdlaWdodDogNDAwO1xcbiAgICBmb250LXNpemU6IHZhcigtLXNpemUtMTQpO1xcbiAgICBjb2xvcjogdmFyKC0tY29sb3ItZ3JheS0xMDAwKTtcXG4gICAgcGFkZGluZzogNnB4IDhweDtcXG4gICAgdHJhbnNpdGlvbjogYm9yZGVyLWNvbG9yIDE1MG1zIHZhcigtLXRpbWluZy1zd2lmdCk7XFxuXFxuICAgICY6aG92ZXIge1xcbiAgICAgIGJvcmRlci1jb2xvcjogdmFyKC0tY29sb3ItZ3JheS01MDApO1xcbiAgICB9XFxuXFxuICAgIHN2ZyB7XFxuICAgICAgd2lkdGg6IDE0cHg7XFxuICAgICAgaGVpZ2h0OiAxNHB4O1xcbiAgICAgIG92ZXJmbG93OiB2aXNpYmxlO1xcbiAgICB9XFxuICB9XFxuXFxuICAuc2VsZWN0LWJ1dHRvbiB7XFxuICAgICY6Zm9jdXMtd2l0aGluIHtcXG4gICAgICBvdXRsaW5lOiB2YXIoLS1mb2N1cy1yaW5nKTtcXG4gICAgICBvdXRsaW5lLW9mZnNldDogLTFweDtcXG4gICAgfVxcblxcbiAgICBzZWxlY3Qge1xcbiAgICAgIGFsbDogdW5zZXQ7XFxuICAgIH1cXG5cXG4gICAgb3B0aW9uIHtcXG4gICAgICBjb2xvcjogdmFyKC0tY29sb3ItZ3JheS0xMDAwKTtcXG4gICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1jb2xvci1iYWNrZ3JvdW5kLTEwMCk7XFxuICAgIH1cXG4gIH1cXG5cXG4gIDpnbG9iYWwoLmljb24pIHtcXG4gICAgd2lkdGg6IDE4cHg7XFxuICAgIGhlaWdodDogMThweDtcXG4gICAgY29sb3I6ICM2NjY7XFxuICB9XFxuXCJdLG58fChuPWUuc2xpY2UoMCkpLE9iamVjdC5mcmVlemUoT2JqZWN0LmRlZmluZVByb3BlcnRpZXMoZSx7cmF3Ont2YWx1ZTpPYmplY3QuZnJlZXplKG4pfX0pKSk7cmV0dXJuIHJrPWZ1bmN0aW9uKCl7cmV0dXJuIHR9LHR9ZnVuY3Rpb24gckEoZSl7dmFyIG4sdD1lLnNldFBvc2l0aW9uLHI9ZS5wb3NpdGlvbixvPWUuaGlkZSxhPWUuc2NhbGUsaT1lLnNldFNjYWxlLGw9ZS5oaWRlU2hvcnRjdXQscz1lLnNldEhpZGVTaG9ydGN1dCxjPXJ3KGUsW1wic2V0UG9zaXRpb25cIixcInBvc2l0aW9uXCIsXCJoaWRlXCIsXCJzY2FsZVwiLFwic2V0U2NhbGVcIixcImhpZGVTaG9ydGN1dFwiLFwic2V0SGlkZVNob3J0Y3V0XCJdKSx1PXJqKCgwLHgudXNlU3RhdGUpKGZ1bmN0aW9uKCl7aWYoXCJ1bmRlZmluZWRcIj09dHlwZW9mIGxvY2FsU3RvcmFnZSlyZXR1cm5cInN5c3RlbVwiO3ZhciBlPWxvY2FsU3RvcmFnZS5nZXRJdGVtKFEpO3JldHVyblwiZGFya1wiPT09ZXx8XCJsaWdodFwiPT09ZT9lOlwic3lzdGVtXCJ9KCkpLDIpLGQ9dVswXSxmPXVbMV07ZnVuY3Rpb24gcChlKXt2YXIgbj1cIi9fX25leHRqc19yZXN0YXJ0X2RldlwiO2UmJihuPVwiL19fbmV4dGpzX3Jlc3RhcnRfZGV2P2ludmFsaWRhdGVQZXJzaXN0ZW50Q2FjaGVcIiksZmV0Y2gobix7bWV0aG9kOlwiUE9TVFwifSkudGhlbihmdW5jdGlvbigpe30pfXJldHVybigwLHkuanN4cykodDAueCxyeChyeSh7dGl0bGU6XCJQcmVmZXJlbmNlc1wifSxjKSx7Y2hpbGRyZW46WygwLHkuanN4KShcImgyXCIse2NsYXNzTmFtZTpcImRldi10b29scy1pbmZvLXNlY3Rpb24tdGl0bGVcIixjaGlsZHJlbjpcIkdlbmVyYWxcIn0pLCgwLHkuanN4cykoXCJkaXZcIix7Y2xhc3NOYW1lOlwicHJlZmVyZW5jZXMtY29udGFpbmVyXCIsY2hpbGRyZW46WygwLHkuanN4cykoXCJkaXZcIix7Y2xhc3NOYW1lOlwicHJlZmVyZW5jZS1zZWN0aW9uXCIsY2hpbGRyZW46WygwLHkuanN4cykoXCJkaXZcIix7Y2xhc3NOYW1lOlwicHJlZmVyZW5jZS1oZWFkZXJcIixjaGlsZHJlbjpbKDAseS5qc3gpKFwibGFiZWxcIix7aHRtbEZvcjpcInRoZW1lXCIsY2hpbGRyZW46XCJUaGVtZVwifSksKDAseS5qc3gpKFwicFwiLHtjbGFzc05hbWU6XCJwcmVmZXJlbmNlLWRlc2NyaXB0aW9uXCIsY2hpbGRyZW46XCJTZWxlY3QgeW91ciB0aGVtZSBwcmVmZXJlbmNlLlwifSldfSksKDAseS5qc3hzKShyTyx7aWQ6XCJ0aGVtZVwiLG5hbWU6XCJ0aGVtZVwiLHByZWZpeDooMCx5LmpzeCkockMse3RoZW1lOmR9KSx2YWx1ZTpkLG9uQ2hhbmdlOmZ1bmN0aW9uKGUpe3ZhciBuPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoXCJuZXh0anMtcG9ydGFsXCIpO2lmKG4pe2lmKGYoZS50YXJnZXQudmFsdWUpLFwic3lzdGVtXCI9PT1lLnRhcmdldC52YWx1ZSl7bi5jbGFzc0xpc3QucmVtb3ZlKFwiZGFya1wiKSxuLmNsYXNzTGlzdC5yZW1vdmUoXCJsaWdodFwiKSxsb2NhbFN0b3JhZ2UucmVtb3ZlSXRlbShRKTtyZXR1cm59XCJkYXJrXCI9PT1lLnRhcmdldC52YWx1ZT8obi5jbGFzc0xpc3QuYWRkKFwiZGFya1wiKSxuLmNsYXNzTGlzdC5yZW1vdmUoXCJsaWdodFwiKSxsb2NhbFN0b3JhZ2Uuc2V0SXRlbShRLFwiZGFya1wiKSk6KG4uY2xhc3NMaXN0LnJlbW92ZShcImRhcmtcIiksbi5jbGFzc0xpc3QuYWRkKFwibGlnaHRcIiksbG9jYWxTdG9yYWdlLnNldEl0ZW0oUSxcImxpZ2h0XCIpKX19LGNoaWxkcmVuOlsoMCx5LmpzeCkoXCJvcHRpb25cIix7dmFsdWU6XCJzeXN0ZW1cIixjaGlsZHJlbjpcIlN5c3RlbVwifSksKDAseS5qc3gpKFwib3B0aW9uXCIse3ZhbHVlOlwibGlnaHRcIixjaGlsZHJlbjpcIkxpZ2h0XCJ9KSwoMCx5LmpzeCkoXCJvcHRpb25cIix7dmFsdWU6XCJkYXJrXCIsY2hpbGRyZW46XCJEYXJrXCJ9KV19KV19KSwoMCx5LmpzeHMpKFwiZGl2XCIse2NsYXNzTmFtZTpcInByZWZlcmVuY2Utc2VjdGlvblwiLGNoaWxkcmVuOlsoMCx5LmpzeHMpKFwiZGl2XCIse2NsYXNzTmFtZTpcInByZWZlcmVuY2UtaGVhZGVyXCIsY2hpbGRyZW46WygwLHkuanN4KShcImxhYmVsXCIse2h0bWxGb3I6XCJwb3NpdGlvblwiLGNoaWxkcmVuOlwiUG9zaXRpb25cIn0pLCgwLHkuanN4KShcInBcIix7Y2xhc3NOYW1lOlwicHJlZmVyZW5jZS1kZXNjcmlwdGlvblwiLGNoaWxkcmVuOlwiQWRqdXN0IHRoZSBwbGFjZW1lbnQgb2YgeW91ciBkZXYgdG9vbHMuXCJ9KV19KSwoMCx5LmpzeHMpKHJPLHtpZDpcInBvc2l0aW9uXCIsbmFtZTpcInBvc2l0aW9uXCIsdmFsdWU6cixvbkNoYW5nZTpmdW5jdGlvbihlKXt0KGUudGFyZ2V0LnZhbHVlKSxsb2NhbFN0b3JhZ2Uuc2V0SXRlbShHLGUudGFyZ2V0LnZhbHVlKX0sY2hpbGRyZW46WygwLHkuanN4KShcIm9wdGlvblwiLHt2YWx1ZTpcImJvdHRvbS1sZWZ0XCIsY2hpbGRyZW46XCJCb3R0b20gTGVmdFwifSksKDAseS5qc3gpKFwib3B0aW9uXCIse3ZhbHVlOlwiYm90dG9tLXJpZ2h0XCIsY2hpbGRyZW46XCJCb3R0b20gUmlnaHRcIn0pLCgwLHkuanN4KShcIm9wdGlvblwiLHt2YWx1ZTpcInRvcC1sZWZ0XCIsY2hpbGRyZW46XCJUb3AgTGVmdFwifSksKDAseS5qc3gpKFwib3B0aW9uXCIse3ZhbHVlOlwidG9wLXJpZ2h0XCIsY2hpbGRyZW46XCJUb3AgUmlnaHRcIn0pXX0pXX0pLCgwLHkuanN4cykoXCJkaXZcIix7Y2xhc3NOYW1lOlwicHJlZmVyZW5jZS1zZWN0aW9uXCIsY2hpbGRyZW46WygwLHkuanN4cykoXCJkaXZcIix7Y2xhc3NOYW1lOlwicHJlZmVyZW5jZS1oZWFkZXJcIixjaGlsZHJlbjpbKDAseS5qc3gpKFwibGFiZWxcIix7aHRtbEZvcjpcInNpemVcIixjaGlsZHJlbjpcIlNpemVcIn0pLCgwLHkuanN4KShcInBcIix7Y2xhc3NOYW1lOlwicHJlZmVyZW5jZS1kZXNjcmlwdGlvblwiLGNoaWxkcmVuOlwiQWRqdXN0IHRoZSBzaXplIG9mIHlvdXIgZGV2IHRvb2xzLlwifSldfSksKDAseS5qc3gpKHJPLHtpZDpcInNpemVcIixuYW1lOlwic2l6ZVwiLHZhbHVlOmEsb25DaGFuZ2U6ZnVuY3Rpb24oZSl7aShOdW1iZXIoZS50YXJnZXQudmFsdWUpKX0sY2hpbGRyZW46T2JqZWN0LmVudHJpZXMoUykubWFwKGZ1bmN0aW9uKGUpe3ZhciBuPXJqKGUsMiksdD1uWzBdLHI9blsxXTtyZXR1cm4oMCx5LmpzeCkoXCJvcHRpb25cIix7dmFsdWU6cixjaGlsZHJlbjp0fSx0KX0pfSldfSksKDAseS5qc3hzKShcImRpdlwiLHtjbGFzc05hbWU6XCJwcmVmZXJlbmNlLXNlY3Rpb25cIixjaGlsZHJlbjpbKDAseS5qc3hzKShcImRpdlwiLHtjbGFzc05hbWU6XCJwcmVmZXJlbmNlLWhlYWRlclwiLGNoaWxkcmVuOlsoMCx5LmpzeCkoXCJsYWJlbFwiLHtpZDpcImhpZGUtZGV2LXRvb2xzXCIsY2hpbGRyZW46XCJIaWRlIERldiBUb29scyBmb3IgdGhpcyBzZXNzaW9uXCJ9KSwoMCx5LmpzeCkoXCJwXCIse2NsYXNzTmFtZTpcInByZWZlcmVuY2UtZGVzY3JpcHRpb25cIixjaGlsZHJlbjpcIkhpZGUgRGV2IFRvb2xzIHVudGlsIHlvdSByZXN0YXJ0IHlvdXIgZGV2IHNlcnZlciwgb3IgMSBkYXkuXCJ9KV19KSwoMCx5LmpzeCkoXCJkaXZcIix7Y2xhc3NOYW1lOlwicHJlZmVyZW5jZS1jb250cm9sXCIsY2hpbGRyZW46KDAseS5qc3hzKShcImJ1dHRvblwiLHtcImFyaWEtZGVzY3JpYmVkYnlcIjpcImhpZGUtZGV2LXRvb2xzXCIsbmFtZTpcImhpZGUtZGV2LXRvb2xzXCIsXCJkYXRhLWhpZGUtZGV2LXRvb2xzXCI6ITAsY2xhc3NOYW1lOlwiYWN0aW9uLWJ1dHRvblwiLG9uQ2xpY2s6byxjaGlsZHJlbjpbKDAseS5qc3gpKHQ5LHt9KSwoMCx5LmpzeCkoXCJzcGFuXCIse2NoaWxkcmVuOlwiSGlkZVwifSldfSl9KV19KSwoMCx5LmpzeHMpKFwiZGl2XCIse2NsYXNzTmFtZTpcInByZWZlcmVuY2Utc2VjdGlvblwiLGNoaWxkcmVuOlsoMCx5LmpzeHMpKFwiZGl2XCIse2NsYXNzTmFtZTpcInByZWZlcmVuY2UtaGVhZGVyXCIsY2hpbGRyZW46WygwLHkuanN4KShcImxhYmVsXCIse2lkOlwiaGlkZS1kZXYtdG9vbHNcIixjaGlsZHJlbjpcIkhpZGUgRGV2IFRvb2xzIHNob3J0Y3V0XCJ9KSwoMCx5LmpzeCkoXCJwXCIse2NsYXNzTmFtZTpcInByZWZlcmVuY2UtZGVzY3JpcHRpb25cIixjaGlsZHJlbjpcIlNldCBhIGN1c3RvbSBrZXlib2FyZCBzaG9ydGN1dCB0byB0b2dnbGUgdmlzaWJpbGl0eS5cIn0pXX0pLCgwLHkuanN4KShcImRpdlwiLHtjbGFzc05hbWU6XCJwcmVmZXJlbmNlLWNvbnRyb2xcIixjaGlsZHJlbjooMCx5LmpzeCkocmQse3ZhbHVlOm51bGwhPShuPW51bGw9PWw/dm9pZCAwOmwuc3BsaXQoXCIrXCIpKT9uOm51bGwsb25DaGFuZ2U6c30pfSldfSksKDAseS5qc3gpKFwiZGl2XCIse2NsYXNzTmFtZTpcInByZWZlcmVuY2Utc2VjdGlvblwiLGNoaWxkcmVuOigwLHkuanN4cykoXCJkaXZcIix7Y2xhc3NOYW1lOlwicHJlZmVyZW5jZS1oZWFkZXJcIixjaGlsZHJlbjpbKDAseS5qc3gpKFwibGFiZWxcIix7Y2hpbGRyZW46XCJEaXNhYmxlIERldiBUb29scyBmb3IgdGhpcyBwcm9qZWN0XCJ9KSwoMCx5LmpzeHMpKFwicFwiLHtjbGFzc05hbWU6XCJwcmVmZXJlbmNlLWRlc2NyaXB0aW9uXCIsY2hpbGRyZW46W1wiVG8gZGlzYWJsZSB0aGlzIFVJIGNvbXBsZXRlbHksIHNldFwiLFwiIFwiLCgwLHkuanN4KShcImNvZGVcIix7Y2xhc3NOYW1lOlwiZGV2LXRvb2xzLWluZm8tY29kZVwiLGNoaWxkcmVuOlwiZGV2SW5kaWNhdG9yczogZmFsc2VcIn0pLFwiIFwiLFwiaW4geW91ciBcIiwoMCx5LmpzeCkoXCJjb2RlXCIse2NsYXNzTmFtZTpcImRldi10b29scy1pbmZvLWNvZGVcIixjaGlsZHJlbjpcIm5leHQuY29uZmlnXCJ9KSxcIiBcIixcImZpbGUuXCJdfSldfSl9KV19KSwoMCx5LmpzeCkoXCJoMlwiLHtjbGFzc05hbWU6XCJkZXYtdG9vbHMtaW5mby1zZWN0aW9uLXRpdGxlXCIsY2hpbGRyZW46XCJEZXZlbG9wbWVudCBTZXJ2ZXJcIn0pLCgwLHkuanN4KShcImRpdlwiLHtjbGFzc05hbWU6XCJwcmVmZXJlbmNlcy1jb250YWluZXJcIixjaGlsZHJlbjooMCx5LmpzeHMpKFwiZGl2XCIse2NsYXNzTmFtZTpcInByZWZlcmVuY2Utc2VjdGlvblwiLGNoaWxkcmVuOlsoMCx5LmpzeHMpKFwiZGl2XCIse2NsYXNzTmFtZTpcInByZWZlcmVuY2UtaGVhZGVyXCIsY2hpbGRyZW46WygwLHkuanN4KShcImxhYmVsXCIse2lkOlwicmVzdGFydC1kZXYtc2VydmVyXCIsY2hpbGRyZW46XCJSZXN0YXJ0IERldiBTZXJ2ZXJcIn0pLCgwLHkuanN4KShcInBcIix7Y2xhc3NOYW1lOlwicHJlZmVyZW5jZS1kZXNjcmlwdGlvblwiLGNoaWxkcmVuOlwiUmVzdGFydHMgdGhlIGRldmVsb3BtZW50IHNlcnZlciB3aXRob3V0IG5lZWRpbmcgdG8gbGVhdmUgdGhlIGJyb3dzZXIuXCJ9KV19KSwoMCx5LmpzeCkoXCJkaXZcIix7Y2xhc3NOYW1lOlwicHJlZmVyZW5jZS1jb250cm9sXCIsY2hpbGRyZW46KDAseS5qc3gpKFwiYnV0dG9uXCIse1wiYXJpYS1kZXNjcmliZWRieVwiOlwicmVzdGFydC1kZXYtc2VydmVyXCIsdGl0bGU6XCJSZXN0YXJ0cyB0aGUgZGV2ZWxvcG1lbnQgc2VydmVyIHdpdGhvdXQgbmVlZGluZyB0byBsZWF2ZSB0aGUgYnJvd3Nlci5cIixuYW1lOlwicmVzdGFydC1kZXYtc2VydmVyXCIsXCJkYXRhLXJlc3RhcnQtZGV2LXNlcnZlclwiOiEwLGNsYXNzTmFtZTpcImFjdGlvbi1idXR0b25cIixvbkNsaWNrOmZ1bmN0aW9uKCl7cmV0dXJuIHAoITEpfSxjaGlsZHJlbjooMCx5LmpzeCkoXCJzcGFuXCIse2NoaWxkcmVuOlwiUmVzdGFydFwifSl9KX0pXX0pfSkscHJvY2Vzcy5lbnYuX19ORVhUX0JVTkRMRVJfSEFTX1BFUlNJU1RFTlRfQ0FDSEU/KDAseS5qc3gpKFwiZGl2XCIse2NsYXNzTmFtZTpcInByZWZlcmVuY2VzLWNvbnRhaW5lclwiLGNoaWxkcmVuOigwLHkuanN4cykoXCJkaXZcIix7Y2xhc3NOYW1lOlwicHJlZmVyZW5jZS1zZWN0aW9uXCIsY2hpbGRyZW46WygwLHkuanN4cykoXCJkaXZcIix7Y2xhc3NOYW1lOlwicHJlZmVyZW5jZS1oZWFkZXJcIixjaGlsZHJlbjpbKDAseS5qc3gpKFwibGFiZWxcIix7aWQ6XCJyZXNldC1idW5kbGVyLWNhY2hlXCIsY2hpbGRyZW46XCJSZXNldCBCdW5kbGVyIENhY2hlXCJ9KSwoMCx5LmpzeCkoXCJwXCIse2NsYXNzTmFtZTpcInByZWZlcmVuY2UtZGVzY3JpcHRpb25cIixjaGlsZHJlbjpcIkNsZWFycyB0aGUgYnVuZGxlciBjYWNoZSBhbmQgcmVzdGFydHMgdGhlIGRldiBzZXJ2ZXIuIEhlbHBmdWwgaWYgeW91IGFyZSBzZWVpbmcgc3RhbGUgZXJyb3JzIG9yIGNoYW5nZXMgYXJlIG5vdCBhcHBlYXJpbmcuXCJ9KV19KSwoMCx5LmpzeCkoXCJkaXZcIix7Y2xhc3NOYW1lOlwicHJlZmVyZW5jZS1jb250cm9sXCIsY2hpbGRyZW46KDAseS5qc3gpKFwiYnV0dG9uXCIse1wiYXJpYS1kZXNjcmliZWRieVwiOlwicmVzZXQtYnVuZGxlci1jYWNoZVwiLHRpdGxlOlwiQ2xlYXJzIHRoZSBidW5kbGVyIGNhY2hlIGFuZCByZXN0YXJ0cyB0aGUgZGV2IHNlcnZlci4gSGVscGZ1bCBpZiB5b3UgYXJlIHNlZWluZyBzdGFsZSBlcnJvcnMgb3IgY2hhbmdlcyBhcmUgbm90IGFwcGVhcmluZy5cIixuYW1lOlwicmVzZXQtYnVuZGxlci1jYWNoZVwiLFwiZGF0YS1yZXNldC1idW5kbGVyLWNhY2hlXCI6ITAsY2xhc3NOYW1lOlwiYWN0aW9uLWJ1dHRvblwiLG9uQ2xpY2s6ZnVuY3Rpb24oKXtyZXR1cm4gcCghMCl9LGNoaWxkcmVuOigwLHkuanN4KShcInNwYW5cIix7Y2hpbGRyZW46XCJSZXNldCBDYWNoZVwifSl9KX0pXX0pfSk6bnVsbF19KSl9ZnVuY3Rpb24gck8oZSl7dmFyIG49ZS5jaGlsZHJlbix0PWUucHJlZml4LHI9cncoZSxbXCJjaGlsZHJlblwiLFwicHJlZml4XCJdKTtyZXR1cm4oMCx5LmpzeHMpKFwiZGl2XCIse2NsYXNzTmFtZTpcInNlbGVjdC1idXR0b25cIixjaGlsZHJlbjpbdCwoMCx5LmpzeCkoXCJzZWxlY3RcIixyeChyeSh7fSxyKSx7Y2hpbGRyZW46bn0pKSwoMCx5LmpzeCkockUse30pXX0pfWZ1bmN0aW9uIHJDKGUpe3N3aXRjaChlLnRoZW1lKXtjYXNlXCJzeXN0ZW1cIjpyZXR1cm4oMCx5LmpzeCkocmUse30pO2Nhc2VcImRhcmtcIjpyZXR1cm4oMCx5LmpzeCkodDcse30pO2Nhc2VcImxpZ2h0XCI6cmV0dXJuKDAseS5qc3gpKHQ4LHt9KTtkZWZhdWx0OnJldHVybiBudWxsfX12YXIgclM9ZWkocmsoKSk7ZnVuY3Rpb24gckUoKXtyZXR1cm4oMCx5LmpzeCkoXCJzdmdcIix7d2lkdGg6XCIxNlwiLGhlaWdodDpcIjE2XCIsdmlld0JveDpcIjAgMCAxNiAxNlwiLFwiYXJpYS1oaWRkZW5cIjohMCxjaGlsZHJlbjooMCx5LmpzeCkoXCJwYXRoXCIse2ZpbGxSdWxlOlwiZXZlbm9kZFwiLGNsaXBSdWxlOlwiZXZlbm9kZFwiLGQ6XCJNMTQuMDYwNyA1LjQ5OTk5TDEzLjUzMDMgNi4wMzAzMkw4LjcwNzEgMTAuODUzNUM4LjMxNjU4IDExLjI0NDEgNy42ODM0MSAxMS4yNDQxIDcuMjkyODkgMTAuODUzNUwyLjQ2OTY2IDYuMDMwMzJMMS45MzkzMyA1LjQ5OTk5TDIuOTk5OTkgNC40MzkzM0wzLjUzMDMyIDQuOTY5NjZMNy45OTk5OSA5LjQzOTMzTDEyLjQ2OTcgNC45Njk2NkwxMyA0LjQzOTMzTDE0LjA2MDcgNS40OTk5OVpcIixmaWxsOlwiY3VycmVudENvbG9yXCJ9KX0pfWZ1bmN0aW9uIHJfKGUsbil7KG51bGw9PW58fG4+ZS5sZW5ndGgpJiYobj1lLmxlbmd0aCk7Zm9yKHZhciB0PTAscj1BcnJheShuKTt0PG47dCsrKXJbdF09ZVt0XTtyZXR1cm4gcn1mdW5jdGlvbiByUChlKXtmb3IodmFyIG49MTtuPGFyZ3VtZW50cy5sZW5ndGg7bisrKXt2YXIgdD1udWxsIT1hcmd1bWVudHNbbl0/YXJndW1lbnRzW25dOnt9LHI9T2JqZWN0LmtleXModCk7XCJmdW5jdGlvblwiPT10eXBlb2YgT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyYmKHI9ci5jb25jYXQoT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyh0KS5maWx0ZXIoZnVuY3Rpb24oZSl7cmV0dXJuIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IodCxlKS5lbnVtZXJhYmxlfSkpKSxyLmZvckVhY2goZnVuY3Rpb24obil7dmFyIHIsbyxhO3I9ZSxvPW4sYT10W25dLG8gaW4gcj9PYmplY3QuZGVmaW5lUHJvcGVydHkocixvLHt2YWx1ZTphLGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwfSk6cltvXT1hfSl9cmV0dXJuIGV9ZnVuY3Rpb24gcnooZSxuKXtyZXR1cm4gbj1udWxsIT1uP246e30sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcnM/T2JqZWN0LmRlZmluZVByb3BlcnRpZXMoZSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycyhuKSk6KGZ1bmN0aW9uKGUsbil7dmFyIHQ9T2JqZWN0LmtleXMoZSk7aWYoT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyl7dmFyIHI9T2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhlKTt0LnB1c2guYXBwbHkodCxyKX1yZXR1cm4gdH0pKE9iamVjdChuKSkuZm9yRWFjaChmdW5jdGlvbih0KXtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSx0LE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Iobix0KSl9KSxlfWZ1bmN0aW9uIHJMKGUsbil7aWYobnVsbD09ZSlyZXR1cm57fTt2YXIgdCxyLG89ZnVuY3Rpb24oZSxuKXtpZihudWxsPT1lKXJldHVybnt9O3ZhciB0LHIsbz17fSxhPU9iamVjdC5rZXlzKGUpO2ZvcihyPTA7cjxhLmxlbmd0aDtyKyspdD1hW3JdLG4uaW5kZXhPZih0KT49MHx8KG9bdF09ZVt0XSk7cmV0dXJuIG99KGUsbik7aWYoT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyl7dmFyIGE9T2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhlKTtmb3Iocj0wO3I8YS5sZW5ndGg7cisrKXQ9YVtyXSwhKG4uaW5kZXhPZih0KT49MCkmJk9iamVjdC5wcm90b3R5cGUucHJvcGVydHlJc0VudW1lcmFibGUuY2FsbChlLHQpJiYob1t0XT1lW3RdKX1yZXR1cm4gb31mdW5jdGlvbiByVChlKXtyZXR1cm4gZnVuY3Rpb24oZSl7aWYoQXJyYXkuaXNBcnJheShlKSlyZXR1cm4gcl8oZSl9KGUpfHxmdW5jdGlvbihlKXtpZihcInVuZGVmaW5lZFwiIT10eXBlb2YgU3ltYm9sJiZudWxsIT1lW1N5bWJvbC5pdGVyYXRvcl18fG51bGwhPWVbXCJAQGl0ZXJhdG9yXCJdKXJldHVybiBBcnJheS5mcm9tKGUpfShlKXx8clIoZSl8fGZ1bmN0aW9uKCl7dGhyb3cgVHlwZUVycm9yKFwiSW52YWxpZCBhdHRlbXB0IHRvIHNwcmVhZCBub24taXRlcmFibGUgaW5zdGFuY2UuXFxcXG5JbiBvcmRlciB0byBiZSBpdGVyYWJsZSwgbm9uLWFycmF5IG9iamVjdHMgbXVzdCBoYXZlIGEgW1N5bWJvbC5pdGVyYXRvcl0oKSBtZXRob2QuXCIpfSgpfWZ1bmN0aW9uIHJSKGUsbil7aWYoZSl7aWYoXCJzdHJpbmdcIj09dHlwZW9mIGUpcmV0dXJuIHJfKGUsbik7dmFyIHQ9T2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKGUpLnNsaWNlKDgsLTEpO2lmKFwiT2JqZWN0XCI9PT10JiZlLmNvbnN0cnVjdG9yJiYodD1lLmNvbnN0cnVjdG9yLm5hbWUpLFwiTWFwXCI9PT10fHxcIlNldFwiPT09dClyZXR1cm4gQXJyYXkuZnJvbSh0KTtpZihcIkFyZ3VtZW50c1wiPT09dHx8L14oPzpVaXxJKW50KD86OHwxNnwzMikoPzpDbGFtcGVkKT9BcnJheSQvLnRlc3QodCkpcmV0dXJuIHJfKGUsbil9fWZ1bmN0aW9uIHJOKGUpe3ZhciBuPWUuY2hpbGRyZW4sdD1lLnBhZGRpbmcscj1lLnBvc2l0aW9uLG89ZS5zZXRQb3NpdGlvbixhPWUub25EcmFnU3RhcnQsaT1lLmRyYWdIYW5kbGVTZWxlY3RvcixsPWUuZGlzYWJsZURyYWcscz1yTChlLFtcImNoaWxkcmVuXCIsXCJwYWRkaW5nXCIsXCJwb3NpdGlvblwiLFwic2V0UG9zaXRpb25cIixcIm9uRHJhZ1N0YXJ0XCIsXCJkcmFnSGFuZGxlU2VsZWN0b3JcIixcImRpc2FibGVEcmFnXCJdKSxjPWZ1bmN0aW9uKGUpe3ZhciBuPSgwLHgudXNlUmVmKShudWxsKSx0PSgwLHgudXNlUmVmKSh7c3RhdGU6XCJpZGxlXCJ9KSxyPSgwLHgudXNlUmVmKShudWxsKSxvPSgwLHgudXNlUmVmKSh7eDowLHk6MH0pLGE9KDAseC51c2VSZWYpKHt4OjAseTowfSksaT0oMCx4LnVzZVJlZikoMCksbD0oMCx4LnVzZVJlZikoW10pLHM9KDAseC51c2VDYWxsYmFjaykoZnVuY3Rpb24oKXt2YXIgZSxvO1wiZHJhZ1wiPT09dC5jdXJyZW50LnN0YXRlJiYobnVsbD09KG89bi5jdXJyZW50KXx8by5yZWxlYXNlUG9pbnRlckNhcHR1cmUodC5jdXJyZW50LnBvaW50ZXJJZCkpLHQuY3VycmVudD1cImRyYWdcIj09PXQuY3VycmVudC5zdGF0ZT97c3RhdGU6XCJkcmFnLWVuZFwifTp7c3RhdGU6XCJpZGxlXCJ9LG51bGwhPT1yLmN1cnJlbnQmJihyLmN1cnJlbnQoKSxyLmN1cnJlbnQ9bnVsbCksbC5jdXJyZW50PVtdLG51bGw9PShlPW4uY3VycmVudCl8fGUuY2xhc3NMaXN0LnJlbW92ZShcImRldi10b29scy1ncmFiYmluZ1wiKX0sW10pO2Z1bmN0aW9uIGMoZSl7bi5jdXJyZW50JiYoYS5jdXJyZW50PWUsbi5jdXJyZW50LnN0eWxlLnRyYW5zbGF0ZT1cIlwiLmNvbmNhdChlLngsXCJweCBcIikuY29uY2F0KGUueSxcInB4XCIpKX1mdW5jdGlvbiB1KGUpe2lmKFwiZHJhZy1lbmRcIj09PXQuY3VycmVudC5zdGF0ZSl7dmFyIHI7ZS5wcmV2ZW50RGVmYXVsdCgpLGUuc3RvcFByb3BhZ2F0aW9uKCksdC5jdXJyZW50PXtzdGF0ZTpcImlkbGVcIn0sbnVsbD09KHI9bi5jdXJyZW50KXx8ci5yZW1vdmVFdmVudExpc3RlbmVyKFwiY2xpY2tcIix1KX19ZnVuY3Rpb24gZChyKXtpZihcInByZXNzXCI9PT10LmN1cnJlbnQuc3RhdGUpe3ZhciBzLHUsZCxmLHA9ci5jbGllbnRYLW8uY3VycmVudC54LGg9ci5jbGllbnRZLW8uY3VycmVudC55O01hdGguc3FydChwKnAraCpoKT49ZS50aHJlc2hvbGQmJih0LmN1cnJlbnQ9e3N0YXRlOlwiZHJhZ1wiLHBvaW50ZXJJZDpyLnBvaW50ZXJJZH0sbnVsbD09KHU9bi5jdXJyZW50KXx8dS5zZXRQb2ludGVyQ2FwdHVyZShyLnBvaW50ZXJJZCksbnVsbD09KGQ9bi5jdXJyZW50KXx8ZC5jbGFzc0xpc3QuYWRkKFwiZGV2LXRvb2xzLWdyYWJiaW5nXCIpLG51bGw9PShmPWUub25EcmFnU3RhcnQpfHxmLmNhbGwoZSkpfWlmKFwiZHJhZ1wiPT09dC5jdXJyZW50LnN0YXRlKXt2YXIgZz17eDpyLmNsaWVudFgseTpyLmNsaWVudFl9LG09Zy54LW8uY3VycmVudC54LHY9Zy55LW8uY3VycmVudC55O28uY3VycmVudD1nLGMoe3g6YS5jdXJyZW50LngrbSx5OmEuY3VycmVudC55K3Z9KTt2YXIgYj1EYXRlLm5vdygpO2ItaS5jdXJyZW50Pj0xMCYmKGwuY3VycmVudD1yVChsLmN1cnJlbnQuc2xpY2UoLTUpKS5jb25jYXQoW3twb3NpdGlvbjpnLHRpbWVzdGFtcDpifV0pKSxpLmN1cnJlbnQ9YixudWxsPT0ocz1lLm9uRHJhZyl8fHMuY2FsbChlLGEuY3VycmVudCl9fWZ1bmN0aW9uIGYoKXt2YXIgbix0PWZ1bmN0aW9uKGUpe2lmKGUubGVuZ3RoPDIpcmV0dXJue3g6MCx5OjB9O3ZhciBuPWVbMF0sdD1lW2UubGVuZ3RoLTFdLHI9dC50aW1lc3RhbXAtbi50aW1lc3RhbXA7cmV0dXJuIDA9PT1yP3t4OjAseTowfTp7eDoxZTMqKCh0LnBvc2l0aW9uLngtbi5wb3NpdGlvbi54KS9yKSx5OjFlMyooKHQucG9zaXRpb24ueS1uLnBvc2l0aW9uLnkpL3IpfX0obC5jdXJyZW50KTtzKCksbnVsbD09KG49ZS5vbkRyYWdFbmQpfHxuLmNhbGwoZSxhLmN1cnJlbnQsdCl9cmV0dXJuKDAseC51c2VMYXlvdXRFZmZlY3QpKGZ1bmN0aW9uKCl7ZS5kaXNhYmxlZCYmcygpfSxbcyxlLmRpc2FibGVkXSkse3JlZjpuLG9uUG9pbnRlckRvd246ZnVuY3Rpb24oYSl7dmFyIGksbDswPT09YS5idXR0b24mJihsPWEudGFyZ2V0LCghZS5kcmFnSGFuZGxlU2VsZWN0b3J8fCFuLmN1cnJlbnR8fCFsfHxsLm1hdGNoZXMmJmwubWF0Y2hlcyhlLmRyYWdIYW5kbGVTZWxlY3RvcikpJiYoby5jdXJyZW50PXt4OmEuY2xpZW50WCx5OmEuY2xpZW50WX0sdC5jdXJyZW50PXtzdGF0ZTpcInByZXNzXCJ9LHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKFwicG9pbnRlcm1vdmVcIixkKSx3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcihcInBvaW50ZXJ1cFwiLGYpLG51bGwhPT1yLmN1cnJlbnQmJihyLmN1cnJlbnQoKSxyLmN1cnJlbnQ9bnVsbCksci5jdXJyZW50PWZ1bmN0aW9uKCl7d2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoXCJwb2ludGVybW92ZVwiLGQpLHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKFwicG9pbnRlcnVwXCIsZil9LG51bGw9PShpPW4uY3VycmVudCl8fGkuYWRkRXZlbnRMaXN0ZW5lcihcImNsaWNrXCIsdSkpKX0sYW5pbWF0ZTpmdW5jdGlvbih0KXt2YXIgcj1uLmN1cnJlbnQ7bnVsbCE9PXImJihyLnN0eWxlLnRyYW5zaXRpb249XCJ0cmFuc2xhdGUgNDkxLjIybXMgdmFyKC0tdGltaW5nLWJvdW5jZSlcIixyLmFkZEV2ZW50TGlzdGVuZXIoXCJ0cmFuc2l0aW9uZW5kXCIsZnVuY3Rpb24gbihvKXtpZihcInRyYW5zbGF0ZVwiPT09by5wcm9wZXJ0eU5hbWUpe3ZhciBpO251bGw9PShpPWUub25BbmltYXRpb25FbmQpfHxpLmNhbGwoZSx0KSxhLmN1cnJlbnQ9e3g6MCx5OjB9LHIuc3R5bGUudHJhbnNpdGlvbj1cIlwiLHIucmVtb3ZlRXZlbnRMaXN0ZW5lcihcInRyYW5zaXRpb25lbmRcIixuKX19KSxjKHQudHJhbnNsYXRpb24pKX19fSh7ZGlzYWJsZWQ6dm9pZCAwIT09bCYmbCx0aHJlc2hvbGQ6NSxvbkRyYWdTdGFydDphLG9uRHJhZ0VuZDpmdW5jdGlvbihlLG4pe3ZhciBvLGEsaSxsLHMsYyxmLHAsaCxnLG0sdixiLHkseCx3LGosayxBO2lmKDA9PT1NYXRoLnNxcnQoZS54KmUueCtlLnkqZS55KSl7bnVsbD09KG89dS5jdXJyZW50KXx8by5zdHlsZS5yZW1vdmVQcm9wZXJ0eShcInRyYW5zbGF0ZVwiKTtyZXR1cm59ZCgoeT0oYT17eDplLngrckQobi54KSx5OmUueStyRChuLnkpfSkueCx4PWEueSxqPU9iamVjdC5lbnRyaWVzKHc9KHA9Mip0LGg9KG51bGw9PShjPXUuY3VycmVudCk/dm9pZCAwOmMub2Zmc2V0V2lkdGgpfHwwLGc9KG51bGw9PShmPXUuY3VycmVudCk/dm9pZCAwOmYub2Zmc2V0SGVpZ2h0KXx8MCxtPXdpbmRvdy5pbm5lcldpZHRoLWRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5jbGllbnRXaWR0aCx7XCJ0b3AtbGVmdFwiOnt4OjAtKHY9KGw9KGk9cikuaW5jbHVkZXMoXCJyaWdodFwiKSxzPWkuaW5jbHVkZXMoXCJib3R0b21cIikse3g6bD93aW5kb3cuaW5uZXJXaWR0aC1tLXAtaDowLHk6cz93aW5kb3cuaW5uZXJIZWlnaHQtcC1nOjB9KSkueCx5OjAtdi55fSxcInRvcC1yaWdodFwiOnt4OndpbmRvdy5pbm5lcldpZHRoLW0tcC1oLXYueCx5OjAtdi55fSxcImJvdHRvbS1sZWZ0XCI6e3g6MC12LngseTp3aW5kb3cuaW5uZXJIZWlnaHQtcC1nLXYueX0sXCJib3R0b20tcmlnaHRcIjp7eDp3aW5kb3cuaW5uZXJXaWR0aC1tLXAtaC12LngseTp3aW5kb3cuaW5uZXJIZWlnaHQtcC1nLXYueX19KSkubWFwKGZ1bmN0aW9uKGUpe3ZhciBuLHQscj0odD0yLGZ1bmN0aW9uKGUpe2lmKEFycmF5LmlzQXJyYXkoZSkpcmV0dXJuIGV9KG49ZSl8fGZ1bmN0aW9uKGUsbil7dmFyIHQscixvPW51bGw9PWU/bnVsbDpcInVuZGVmaW5lZFwiIT10eXBlb2YgU3ltYm9sJiZlW1N5bWJvbC5pdGVyYXRvcl18fGVbXCJAQGl0ZXJhdG9yXCJdO2lmKG51bGwhPW8pe3ZhciBhPVtdLGk9ITAsbD0hMTt0cnl7Zm9yKG89by5jYWxsKGUpOyEoaT0odD1vLm5leHQoKSkuZG9uZSkmJihhLnB1c2godC52YWx1ZSksYS5sZW5ndGghPT1uKTtpPSEwKTt9Y2F0Y2goZSl7bD0hMCxyPWV9ZmluYWxseXt0cnl7aXx8bnVsbD09by5yZXR1cm58fG8ucmV0dXJuKCl9ZmluYWxseXtpZihsKXRocm93IHJ9fXJldHVybiBhfX0obiwyKXx8clIobix0KXx8ZnVuY3Rpb24oKXt0aHJvdyBUeXBlRXJyb3IoXCJJbnZhbGlkIGF0dGVtcHQgdG8gZGVzdHJ1Y3R1cmUgbm9uLWl0ZXJhYmxlIGluc3RhbmNlLlxcXFxuSW4gb3JkZXIgdG8gYmUgaXRlcmFibGUsIG5vbi1hcnJheSBvYmplY3RzIG11c3QgaGF2ZSBhIFtTeW1ib2wuaXRlcmF0b3JdKCkgbWV0aG9kLlwiKX0oKSksbz1yWzBdLGE9clsxXTtyZXR1cm57a2V5Om8sZGlzdGFuY2U6TWF0aC5zcXJ0KE1hdGgucG93KHktYS54LDIpK01hdGgucG93KHgtYS55LDIpKX19KSxrPShiPU1hdGgpLm1pbi5hcHBseShiLHJUKGoubWFwKGZ1bmN0aW9uKGUpe3JldHVybiBlLmRpc3RhbmNlfSkpKSwoQT1qLmZpbmQoZnVuY3Rpb24oZSl7cmV0dXJuIGUuZGlzdGFuY2U9PT1rfSkpP3t0cmFuc2xhdGlvbjp3W0Eua2V5XSxjb3JuZXI6QS5rZXl9Ontjb3JuZXI6cix0cmFuc2xhdGlvbjp3W3JdfSkpfSxvbkFuaW1hdGlvbkVuZDpmdW5jdGlvbihlKXt2YXIgbj1lLmNvcm5lcjtzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7dmFyIGU7bnVsbD09KGU9dS5jdXJyZW50KXx8ZS5zdHlsZS5yZW1vdmVQcm9wZXJ0eShcInRyYW5zbGF0ZVwiKSxvKG4pfSl9LGRyYWdIYW5kbGVTZWxlY3RvcjppfSksdT1jLnJlZixkPWMuYW5pbWF0ZSxmPXJMKGMsW1wicmVmXCIsXCJhbmltYXRlXCJdKTtyZXR1cm4oMCx5LmpzeCkoXCJkaXZcIixyeihyUChyeihyUCh7fSxzKSx7cmVmOnV9KSxmKSx7c3R5bGU6e3RvdWNoQWN0aW9uOlwibm9uZVwifSxjaGlsZHJlbjpufSkpfWZ1bmN0aW9uIHJEKGUpe3ZhciBuPWFyZ3VtZW50cy5sZW5ndGg+MSYmdm9pZCAwIT09YXJndW1lbnRzWzFdP2FyZ3VtZW50c1sxXTouOTk5O3JldHVybiBlLzFlMypuLygxLW4pfWZ1bmN0aW9uIHJCKGUsbil7KG51bGw9PW58fG4+ZS5sZW5ndGgpJiYobj1lLmxlbmd0aCk7Zm9yKHZhciB0PTAscj1BcnJheShuKTt0PG47dCsrKXJbdF09ZVt0XTtyZXR1cm4gcn1mdW5jdGlvbiByTShlLG4sdCl7cmV0dXJuIG4gaW4gZT9PYmplY3QuZGVmaW5lUHJvcGVydHkoZSxuLHt2YWx1ZTp0LGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwfSk6ZVtuXT10LGV9ZnVuY3Rpb24gckkoZSl7Zm9yKHZhciBuPTE7bjxhcmd1bWVudHMubGVuZ3RoO24rKyl7dmFyIHQ9bnVsbCE9YXJndW1lbnRzW25dP2FyZ3VtZW50c1tuXTp7fSxyPU9iamVjdC5rZXlzKHQpO1wiZnVuY3Rpb25cIj09dHlwZW9mIE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMmJihyPXIuY29uY2F0KE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHModCkuZmlsdGVyKGZ1bmN0aW9uKGUpe3JldHVybiBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHQsZSkuZW51bWVyYWJsZX0pKSksci5mb3JFYWNoKGZ1bmN0aW9uKG4pe3JNKGUsbix0W25dKX0pfXJldHVybiBlfWZ1bmN0aW9uIHJIKGUsbil7aWYobnVsbD09ZSlyZXR1cm57fTt2YXIgdCxyLG89ZnVuY3Rpb24oZSxuKXtpZihudWxsPT1lKXJldHVybnt9O3ZhciB0LHIsbz17fSxhPU9iamVjdC5rZXlzKGUpO2ZvcihyPTA7cjxhLmxlbmd0aDtyKyspdD1hW3JdLG4uaW5kZXhPZih0KT49MHx8KG9bdF09ZVt0XSk7cmV0dXJuIG99KGUsbik7aWYoT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyl7dmFyIGE9T2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhlKTtmb3Iocj0wO3I8YS5sZW5ndGg7cisrKXQ9YVtyXSwhKG4uaW5kZXhPZih0KT49MCkmJk9iamVjdC5wcm90b3R5cGUucHJvcGVydHlJc0VudW1lcmFibGUuY2FsbChlLHQpJiYob1t0XT1lW3RdKX1yZXR1cm4gb31mdW5jdGlvbiByRihlLG4pe3JldHVybiBmdW5jdGlvbihlKXtpZihBcnJheS5pc0FycmF5KGUpKXJldHVybiBlfShlKXx8ZnVuY3Rpb24oZSxuKXt2YXIgdCxyLG89bnVsbD09ZT9udWxsOlwidW5kZWZpbmVkXCIhPXR5cGVvZiBTeW1ib2wmJmVbU3ltYm9sLml0ZXJhdG9yXXx8ZVtcIkBAaXRlcmF0b3JcIl07aWYobnVsbCE9byl7dmFyIGE9W10saT0hMCxsPSExO3RyeXtmb3Iobz1vLmNhbGwoZSk7IShpPSh0PW8ubmV4dCgpKS5kb25lKSYmKGEucHVzaCh0LnZhbHVlKSwhbnx8YS5sZW5ndGghPT1uKTtpPSEwKTt9Y2F0Y2goZSl7bD0hMCxyPWV9ZmluYWxseXt0cnl7aXx8bnVsbD09by5yZXR1cm58fG8ucmV0dXJuKCl9ZmluYWxseXtpZihsKXRocm93IHJ9fXJldHVybiBhfX0oZSxuKXx8ZnVuY3Rpb24oZSxuKXtpZihlKXtpZihcInN0cmluZ1wiPT10eXBlb2YgZSlyZXR1cm4gckIoZSxuKTt2YXIgdD1PYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwoZSkuc2xpY2UoOCwtMSk7aWYoXCJPYmplY3RcIj09PXQmJmUuY29uc3RydWN0b3ImJih0PWUuY29uc3RydWN0b3IubmFtZSksXCJNYXBcIj09PXR8fFwiU2V0XCI9PT10KXJldHVybiBBcnJheS5mcm9tKHQpO2lmKFwiQXJndW1lbnRzXCI9PT10fHwvXig/OlVpfEkpbnQoPzo4fDE2fDMyKSg/OkNsYW1wZWQpP0FycmF5JC8udGVzdCh0KSlyZXR1cm4gckIoZSxuKX19KGUsbil8fGZ1bmN0aW9uKCl7dGhyb3cgVHlwZUVycm9yKFwiSW52YWxpZCBhdHRlbXB0IHRvIGRlc3RydWN0dXJlIG5vbi1pdGVyYWJsZSBpbnN0YW5jZS5cXFxcbkluIG9yZGVyIHRvIGJlIGl0ZXJhYmxlLCBub24tYXJyYXkgb2JqZWN0cyBtdXN0IGhhdmUgYSBbU3ltYm9sLml0ZXJhdG9yXSgpIG1ldGhvZC5cIil9KCl9ZnVuY3Rpb24gclUoZSl7dmFyIG49ZS5zdGF0ZSx0PWUuZXJyb3JDb3VudCxyPWUuaXNCdWlsZEVycm9yLG89ckgoZSxbXCJzdGF0ZVwiLFwiZXJyb3JDb3VudFwiLFwiaXNCdWlsZEVycm9yXCJdKSxhPXJGKCgwLHgudXNlU3RhdGUpKCEwKSwyKSxpPWFbMF0sbD1hWzFdO3JldHVybigwLHkuanN4KShyJCxySSh7cm91dGVyVHlwZTpuLnJvdXRlclR5cGUsc2VtdmVyOm4udmVyc2lvbkluZm8uaW5zdGFsbGVkLGlzc3VlQ291bnQ6dCxpc0RldkJ1aWxkaW5nOm4uYnVpbGRpbmdJbmRpY2F0b3IsaXNEZXZSZW5kZXJpbmc6bi5yZW5kZXJpbmdJbmRpY2F0b3IsaXNTdGF0aWNSb3V0ZTpuLnN0YXRpY0luZGljYXRvcixoaWRlOmZ1bmN0aW9uKCl7bCghMSksZmV0Y2goXCIvX19uZXh0anNfZGlzYWJsZV9kZXZfaW5kaWNhdG9yXCIse21ldGhvZDpcIlBPU1RcIn0pfSx0b2dnbGVWaXNpYmlsaXR5OmZ1bmN0aW9uKCl7bCghaSl9LGlzVHVyYm9wYWNrOiEhcHJvY2Vzcy5lbnYuVFVSQk9QQUNLLGRpc2FibGVkOm4uZGlzYWJsZURldkluZGljYXRvcnx8IWksaXNCdWlsZEVycm9yOnIscGFnZTpuLnBhZ2V9LG8pKX12YXIgclY9KDAseC5jcmVhdGVDb250ZXh0KSh7fSkscnE9e1Jvb3Q6XCJyb290XCIsVHVyYm86XCJ0dXJib1wiLFJvdXRlOlwicm91dGVcIixQcmVmZXJlbmNlczpcInByZWZlcmVuY2VzXCIsU2VnbWVudEV4cGxvcmVyOlwic2VnbWVudC1leHBsb3JlclwifSxyVz1wcm9jZXNzLmVudi5fX05FWFRfREVWVE9PTF9TRUdNRU5UX0VYUExPUkVSP19fd2VicGFja19yZXF1aXJlX18oXCIuL3NyYy9uZXh0LWRldnRvb2xzL2Rldi1vdmVybGF5L2NvbXBvbmVudHMvZXJyb3JzL2Rldi10b29scy1pbmRpY2F0b3IvZGV2LXRvb2xzLWluZm8vc2VnbWVudHMtZXhwbG9yZXIudHN4XCIpLlc6ZnVuY3Rpb24oKXtyZXR1cm4gbnVsbH07ZnVuY3Rpb24gciQoZSl7dmFyIG4sdCxyLG8sYSxpLGwscz1lLnJvdXRlclR5cGUsYz1lLmRpc2FibGVkLHU9ZS5pc3N1ZUNvdW50LGQ9ZS5pc0RldkJ1aWxkaW5nLGY9ZS5pc0RldlJlbmRlcmluZyxwPWUuaXNTdGF0aWNSb3V0ZSxoPWUuaXNUdXJib3BhY2ssZz1lLmlzQnVpbGRFcnJvcixtPWUuaGlkZSx2PWUudG9nZ2xlVmlzaWJpbGl0eSxiPWUuZGlzcGF0Y2gsdz1lLnNjYWxlLGo9ZS5zZXRTY2FsZSxrPWUucGFnZSxBPSgwLHgudXNlUmVmKShudWxsKSxPPSgwLHgudXNlUmVmKShudWxsKSxDPSgwLHgudXNlUmVmKShudWxsKSxTPXJGKCgwLHgudXNlU3RhdGUpKG51bGwpLDIpLEU9U1swXSxfPVNbMV0sUD1yRigoMCx4LnVzZVN0YXRlKShcInVuZGVmaW5lZFwiIT10eXBlb2YgbG9jYWxTdG9yYWdlJiZsb2NhbFN0b3JhZ2UuZ2V0SXRlbShHKT9sb2NhbFN0b3JhZ2UuZ2V0SXRlbShHKTpyciksMiksej1QWzBdLEw9UFsxXSxUPXJGKCgwLHgudXNlU3RhdGUpKC0xKSwyKSxSPVRbMF0sTj1UWzFdLEQ9ckYoKHQ9KG49cnQoKDAseC51c2VTdGF0ZSkoZnVuY3Rpb24oKXtpZihcInVuZGVmaW5lZFwiPT10eXBlb2YgbG9jYWxTdG9yYWdlKXJldHVybiBudWxsO3ZhciBlPWxvY2FsU3RvcmFnZS5nZXRJdGVtKHJvKTtyZXR1cm4gZXx8bnVsbH0oKSksMikpWzBdLHI9blsxXSxbdCxmdW5jdGlvbihlKXtyKGUpLG51bGw9PT1lP2xvY2FsU3RvcmFnZS5yZW1vdmVJdGVtKHJvKTpsb2NhbFN0b3JhZ2Uuc2V0SXRlbShybyxlKX1dKSwyKSxCPURbMF0sST1EWzFdLEY9RT09PXJxLlJvb3QsVT1FPT09cnEuVHVyYm8sVj1FPT09cnEuUm91dGUscT1FPT09cnEuUHJlZmVyZW5jZXMsVz1FPT09cnEuU2VnbWVudEV4cGxvcmVyLCQ9KDAsdEouTikoRix7ZW50ZXJEZWxheTowLGV4aXREZWxheTpuUS5LN30pLFo9JC5tb3VudGVkLFk9JC5yZW5kZXJlZDtmdW5jdGlvbiBYKGUpe2lmKFwiZmlyc3RcIj09PWUpcmV0dXJuIHZvaWQgc2V0VGltZW91dChmdW5jdGlvbigpe3ZhciBlLG49bnVsbD09KGU9Ty5jdXJyZW50KT92b2lkIDA6ZS5xdWVyeVNlbGVjdG9yQWxsKCdbcm9sZT1cIm1lbnVpdGVtXCJdJyk7biYmWChOdW1iZXIoblswXS5nZXRBdHRyaWJ1dGUoXCJkYXRhLWluZGV4XCIpKSl9KTtpZihcImxhc3RcIj09PWUpcmV0dXJuIHZvaWQgc2V0VGltZW91dChmdW5jdGlvbigpe3ZhciBlLG49bnVsbD09KGU9Ty5jdXJyZW50KT92b2lkIDA6ZS5xdWVyeVNlbGVjdG9yQWxsKCdbcm9sZT1cIm1lbnVpdGVtXCJdJyk7biYmWChuLmxlbmd0aC0xKX0pO3ZhciBuLHQ9bnVsbD09KG49Ty5jdXJyZW50KT92b2lkIDA6bi5xdWVyeVNlbGVjdG9yKCdbZGF0YS1pbmRleD1cIicuY29uY2F0KGUsJ1wiXScpKTt0JiYoTihlKSxudWxsPT10fHx0LmZvY3VzKCkpfWZ1bmN0aW9uIEsoKXtfKHJxLlJvb3QpLHNldFRpbWVvdXQoZnVuY3Rpb24oKXtYKFIpfSxuUS5LNyl9ZnVuY3Rpb24gUSgpe18oZnVuY3Rpb24oZSl7cmV0dXJuIGU9PT1ycS5Sb290P251bGw6ZX0pfSgwLG5RLlA1KShPLEMsRiksKDAsblEuTzgpKE8sQyxaLFEpLG89Qj9yTSh7fSxCLGZ1bmN0aW9uKCl7digpO3ZhciBlPUEuY3VycmVudDtlJiYoZS5kYXRhc2V0LmhpZGRlbj1cInRydWVcIj09PWUuZGF0YXNldC5oaWRkZW4/XCJmYWxzZVwiOlwidHJ1ZVwiKX0pOnt9LGE9QywoMCx4LnVzZUVmZmVjdCkoZnVuY3Rpb24oKXt2YXIgZT1mdW5jdGlvbihlKXtpZihuPWEsISh0PSgwLG5RLnZZKShuLmN1cnJlbnQpKXx8XCJ0cnVlXCIhPT10LmNvbnRlbnRFZGl0YWJsZSYmXCJJTlBVVFwiIT09dC50YWdOYW1lJiZcIlRFWFRBUkVBXCIhPT10LnRhZ05hbWUmJlwiU0VMRUNUXCIhPT10LnRhZ05hbWUmJlwidHJ1ZVwiIT09dC5kYXRhc2V0W1wic2hvcnRjdXQtcmVjb3JkZXJcIl18fHQuaGFzQXR0cmlidXRlKFwicmVhZG9ubHlcIikpe3ZhciBuLHQscj1bXTtlLm1ldGFLZXkmJnIucHVzaChcIk1ldGFcIiksZS5jdHJsS2V5JiZyLnB1c2goXCJDb250cm9sXCIpLGUuYWx0S2V5JiZyLnB1c2goXCJBbHRcIiksZS5zaGlmdEtleSYmci5wdXNoKFwiU2hpZnRcIiksXCJNZXRhXCIhPT1lLmtleSYmXCJDb250cm9sXCIhPT1lLmtleSYmXCJBbHRcIiE9PWUua2V5JiZcIlNoaWZ0XCIhPT1lLmtleSYmci5wdXNoKGUua2V5KTt2YXIgaT1yLmpvaW4oXCIrXCIpO29baV0mJihlLnByZXZlbnREZWZhdWx0KCksb1tpXSgpKX19O3JldHVybiB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcihcImtleWRvd25cIixlKSxmdW5jdGlvbigpe3JldHVybiB3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcihcImtleWRvd25cIixlKX19LFtvXSksKDAseC51c2VFZmZlY3QpKGZ1bmN0aW9uKCl7aWYobnVsbD09PUUpe3ZhciBlPXNldFRpbWVvdXQoZnVuY3Rpb24oKXtOKC0xKX0sblEuSzcpO3JldHVybiBmdW5jdGlvbigpe3JldHVybiBjbGVhclRpbWVvdXQoZSl9fX0sW0VdKTt2YXIgSj1yRih6LnNwbGl0KFwiLVwiLDIpLDIpLGVlPUpbMF0sZW49SlsxXSxldD0ock0oaT17fSxlZSxcImNhbGMoMTAwJSArIDhweClcIiksck0oaSxlbiwwKSxpKTtyZXR1cm4oMCx5LmpzeHMpKHRSLHtyZWY6QSxcImRhdGEtbmV4dGpzLXRvYXN0XCI6ITAsc3R5bGU6KHJNKGw9e1wiLS1hbmltYXRlLW91dC1kdXJhdGlvbi1tc1wiOlwiXCIuY29uY2F0KG5RLks3LFwibXNcIiksXCItLWFuaW1hdGUtb3V0LXRpbWluZy1mdW5jdGlvblwiOm5RLnVELGJveFNoYWRvdzpcIm5vbmVcIn0sZWUsXCJcIi5jb25jYXQoMjAsXCJweFwiKSksck0obCxlbixcIlwiLmNvbmNhdCgyMCxcInB4XCIpKSxsKSxjaGlsZHJlbjpbKDAseS5qc3gpKHJOLHtwYWRkaW5nOjIwLG9uRHJhZ1N0YXJ0OmZ1bmN0aW9uKCl7cmV0dXJuIF8obnVsbCl9LHBvc2l0aW9uOnosc2V0UG9zaXRpb246ZnVuY3Rpb24oZSl7bG9jYWxTdG9yYWdlLnNldEl0ZW0oRyxlKSxMKGUpfSxjaGlsZHJlbjooMCx5LmpzeCkodFkse3JlZjpDLFwiYXJpYS1oYXNwb3B1cFwiOlwibWVudVwiLFwiYXJpYS1leHBhbmRlZFwiOkYsXCJhcmlhLWNvbnRyb2xzXCI6XCJuZXh0anMtZGV2LXRvb2xzLW1lbnVcIixcImFyaWEtbGFiZWxcIjpcIlwiLmNvbmNhdChGP1wiQ2xvc2VcIjpcIk9wZW5cIixcIiBOZXh0LmpzIERldiBUb29sc1wiKSxcImRhdGEtbmV4dGpzLWRldi10b29scy1idXR0b25cIjohMCxkaXNhYmxlZDpjLGlzc3VlQ291bnQ6dSxvblRyaWdnZXJDbGljazpmdW5jdGlvbigpe0U9PT1ycS5Sb290P18obnVsbCk6KF8ocnEuUm9vdCksc2V0VGltZW91dChmdW5jdGlvbigpe1goXCJmaXJzdFwiKX0pKX0sdG9nZ2xlRXJyb3JPdmVybGF5OmZ1bmN0aW9uKCl7Yih7dHlwZTpIfSl9LGlzRGV2QnVpbGRpbmc6ZCxpc0RldlJlbmRlcmluZzpmLGlzQnVpbGRFcnJvcjpnLHNjYWxlOnd9KX0pLCgwLHkuanN4KSh0Myx7aXNPcGVuOlYsY2xvc2U6Syx0cmlnZ2VyUmVmOkMsc3R5bGU6ZXQscm91dGVyVHlwZTpzLHJvdXRlVHlwZTpwP1wiU3RhdGljXCI6XCJEeW5hbWljXCJ9KSwoMCx5LmpzeCkodDEse2lzT3BlbjpVLGNsb3NlOkssdHJpZ2dlclJlZjpDLHN0eWxlOmV0fSksKDAseS5qc3gpKHJBLHtpc09wZW46cSxjbG9zZTpLLHRyaWdnZXJSZWY6QyxzdHlsZTpldCxoaWRlOmZ1bmN0aW9uKCl7XyhudWxsKSxtKCl9LHNldFBvc2l0aW9uOkwscG9zaXRpb246eixzY2FsZTp3LHNldFNjYWxlOmosaGlkZVNob3J0Y3V0OkIsc2V0SGlkZVNob3J0Y3V0Okl9KSxwcm9jZXNzLmVudi5fX05FWFRfREVWVE9PTF9TRUdNRU5UX0VYUExPUkVSPygwLHkuanN4KShyVyx7aXNPcGVuOlcsY2xvc2U6Syx0cmlnZ2VyUmVmOkMsc3R5bGU6ZXQscm91dGVyVHlwZTpzLHBhZ2U6a30pOm51bGwsWiYmKDAseS5qc3gpKFwiZGl2XCIse3JlZjpPLGlkOlwibmV4dGpzLWRldi10b29scy1tZW51XCIscm9sZTpcIm1lbnVcIixkaXI6XCJsdHJcIixcImFyaWEtb3JpZW50YXRpb25cIjpcInZlcnRpY2FsXCIsXCJhcmlhLWxhYmVsXCI6XCJOZXh0LmpzIERldiBUb29scyBJdGVtc1wiLHRhYkluZGV4Oi0xLGNsYXNzTmFtZTpcImRldi10b29scy1pbmRpY2F0b3ItbWVudVwiLG9uS2V5RG93bjpmdW5jdGlvbihlKXtzd2l0Y2goZS5wcmV2ZW50RGVmYXVsdCgpLGUua2V5KXtjYXNlXCJBcnJvd0Rvd25cIjpYKFIrMSk7YnJlYWs7Y2FzZVwiQXJyb3dVcFwiOlgoUi0xKTticmVhaztjYXNlXCJIb21lXCI6WChcImZpcnN0XCIpO2JyZWFrO2Nhc2VcIkVuZFwiOlgoXCJsYXN0XCIpfX0sXCJkYXRhLXJlbmRlcmVkXCI6WSxzdHlsZTpldCxjaGlsZHJlbjooMCx5LmpzeHMpKHJWLlByb3ZpZGVyLHt2YWx1ZTp7Y2xvc2VNZW51OlEsc2VsZWN0ZWRJbmRleDpSLHNldFNlbGVjdGVkSW5kZXg6Tn0sY2hpbGRyZW46WygwLHkuanN4cykoXCJkaXZcIix7Y2xhc3NOYW1lOlwiZGV2LXRvb2xzLWluZGljYXRvci1pbm5lclwiLGNoaWxkcmVuOlt1PjAmJigwLHkuanN4KShyWSx7dGl0bGU6XCJcIi5jb25jYXQodSxcIiBcIikuY29uY2F0KDE9PT11P1wiaXNzdWVcIjpcImlzc3Vlc1wiLFwiIGZvdW5kLiBDbGljayB0byB2aWV3IGRldGFpbHMgaW4gdGhlIGRldiBvdmVybGF5LlwiKSxpbmRleDowLGxhYmVsOlwiSXNzdWVzXCIsdmFsdWU6KDAseS5qc3gpKHJYLHtjaGlsZHJlbjp1fSksb25DbGljazpmdW5jdGlvbigpe18obnVsbCksdT4wJiZiKHt0eXBlOk19KX19KSwoMCx5LmpzeCkoclkse3RpdGxlOlwiQ3VycmVudCByb3V0ZSBpcyBcIi5jb25jYXQocD9cInN0YXRpY1wiOlwiZHluYW1pY1wiLFwiLlwiKSxsYWJlbDpcIlJvdXRlXCIsaW5kZXg6MSx2YWx1ZTpwP1wiU3RhdGljXCI6XCJEeW5hbWljXCIsb25DbGljazpmdW5jdGlvbigpe3JldHVybiBfKHJxLlJvdXRlKX0sXCJkYXRhLW5leHRqcy1yb3V0ZS10eXBlXCI6cD9cInN0YXRpY1wiOlwiZHluYW1pY1wifSksaD8oMCx5LmpzeCkoclkse3RpdGxlOlwiVHVyYm9wYWNrIGlzIGVuYWJsZWQuXCIsbGFiZWw6XCJUdXJib3BhY2tcIix2YWx1ZTpcIkVuYWJsZWRcIn0pOigwLHkuanN4KShyWSx7aW5kZXg6Mix0aXRsZTpcIkxlYXJuIGFib3V0IFR1cmJvcGFjayBhbmQgaG93IHRvIGVuYWJsZSBpdCBpbiB5b3VyIGFwcGxpY2F0aW9uLlwiLGxhYmVsOlwiVHJ5IFR1cmJvcGFja1wiLHZhbHVlOigwLHkuanN4KShyWix7fSksb25DbGljazpmdW5jdGlvbigpe3JldHVybiBfKHJxLlR1cmJvKX19KV19KSwoMCx5LmpzeHMpKFwiZGl2XCIse2NsYXNzTmFtZTpcImRldi10b29scy1pbmRpY2F0b3ItZm9vdGVyXCIsY2hpbGRyZW46WygwLHkuanN4KShyWSx7XCJkYXRhLXByZWZlcmVuY2VzXCI6ITAsbGFiZWw6XCJQcmVmZXJlbmNlc1wiLHZhbHVlOigwLHkuanN4KSh0Nix7fSksb25DbGljazpmdW5jdGlvbigpe3JldHVybiBfKHJxLlByZWZlcmVuY2VzKX0saW5kZXg6aD8yOjN9KSxwcm9jZXNzLmVudi5fX05FWFRfREVWVE9PTF9TRUdNRU5UX0VYUExPUkVSPygwLHkuanN4KShyWSx7XCJkYXRhLXNlZ21lbnQtZXhwbG9yZXJcIjohMCxsYWJlbDpcIlJvdXRlIEluZm9cIix2YWx1ZTooMCx5LmpzeCkoclose30pLG9uQ2xpY2s6ZnVuY3Rpb24oKXtyZXR1cm4gXyhycS5TZWdtZW50RXhwbG9yZXIpfSxpbmRleDpoPzM6NH0pOm51bGxdfSldfSl9KV19KX1mdW5jdGlvbiByWigpe3JldHVybigwLHkuanN4KShcInN2Z1wiLHt4bWxuczpcImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIsd2lkdGg6XCIxNlwiLGhlaWdodDpcIjE2XCIsdmlld0JveDpcIjAgMCAxNiAxNlwiLGZpbGw6XCJub25lXCIsY2hpbGRyZW46KDAseS5qc3gpKFwicGF0aFwiLHtmaWxsOlwiIzY2NlwiLGZpbGxSdWxlOlwiZXZlbm9kZFwiLGNsaXBSdWxlOlwiZXZlbm9kZFwiLGQ6XCJNNS41MDAxMSAxLjkzOTQ1TDYuMDMwNDQgMi40Njk3OEwxMC44NTM3IDcuMjkzQzExLjI0NDIgNy42ODM1MyAxMS4yNDQyIDguMzE2NjkgMTAuODUzNyA4LjcwNzIyTDYuMDMwNDQgMTMuNTMwNEw1LjUwMDExIDE0LjA2MDhMNC40Mzk0NSAxMy4wMDAxTDQuOTY5NzggMTIuNDY5OEw5LjQzOTQ1IDguMDAwMTFMNC45Njk3OCAzLjUzMDQ0TDQuNDM5NDUgMy4wMDAxMUw1LjUwMDExIDEuOTM5NDVaXCJ9KX0pfWZ1bmN0aW9uIHJZKGUpe3ZhciBuLHQscj1lLmluZGV4LG89ZS5sYWJlbCxhPWUudmFsdWUsaT1lLm9uQ2xpY2ssbD1lLmhyZWYscz1ySChlLFtcImluZGV4XCIsXCJsYWJlbFwiLFwidmFsdWVcIixcIm9uQ2xpY2tcIixcImhyZWZcIl0pLGM9XCJmdW5jdGlvblwiPT10eXBlb2YgaXx8XCJzdHJpbmdcIj09dHlwZW9mIGwsdT0oMCx4LnVzZUNvbnRleHQpKHJWKSxkPXUuY2xvc2VNZW51LGY9dS5zZWxlY3RlZEluZGV4LHA9dS5zZXRTZWxlY3RlZEluZGV4LGg9Zj09PXI7ZnVuY3Rpb24gZygpe2MmJihudWxsPT1pfHxpKCksZCgpLGwmJndpbmRvdy5vcGVuKGwsXCJfYmxhbmtcIixcIm5vb3BlbmVyLCBub3JlZmVycmVyXCIpKX1yZXR1cm4oMCx5LmpzeHMpKFwiZGl2XCIsKG49ckkoe2NsYXNzTmFtZTpcImRldi10b29scy1pbmRpY2F0b3ItaXRlbVwiLFwiZGF0YS1pbmRleFwiOnIsXCJkYXRhLXNlbGVjdGVkXCI6aCxvbkNsaWNrOmcsb25Nb3VzZU1vdmU6ZnVuY3Rpb24oKXtjJiZ2b2lkIDAhPT1yJiZmIT09ciYmcChyKX0sb25Nb3VzZUxlYXZlOmZ1bmN0aW9uKCl7cmV0dXJuIHAoLTEpfSxvbktleURvd246ZnVuY3Rpb24oZSl7KFwiRW50ZXJcIj09PWUua2V5fHxcIiBcIj09PWUua2V5KSYmZygpfSxyb2xlOmM/XCJtZW51aXRlbVwiOnZvaWQgMCx0YWJJbmRleDpoPzA6LTF9LHMpLHQ9dD17Y2hpbGRyZW46WygwLHkuanN4KShcInNwYW5cIix7Y2xhc3NOYW1lOlwiZGV2LXRvb2xzLWluZGljYXRvci1sYWJlbFwiLGNoaWxkcmVuOm99KSwoMCx5LmpzeCkoXCJzcGFuXCIse2NsYXNzTmFtZTpcImRldi10b29scy1pbmRpY2F0b3ItdmFsdWVcIixjaGlsZHJlbjphfSldfSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycz9PYmplY3QuZGVmaW5lUHJvcGVydGllcyhuLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzKHQpKTooZnVuY3Rpb24oZSxuKXt2YXIgdD1PYmplY3Qua2V5cyhlKTtpZihPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKXt2YXIgcj1PYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKGUpO3QucHVzaC5hcHBseSh0LHIpfXJldHVybiB0fSkoT2JqZWN0KHQpKS5mb3JFYWNoKGZ1bmN0aW9uKGUpe09iamVjdC5kZWZpbmVQcm9wZXJ0eShuLGUsT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcih0LGUpKX0pLG4pKX1mdW5jdGlvbiByWChlKXt2YXIgbj1lLmNoaWxkcmVuO3JldHVybigwLHkuanN4cykoXCJzcGFuXCIse2NsYXNzTmFtZTpcImRldi10b29scy1pbmRpY2F0b3ItaXNzdWUtY291bnRcIixcImRhdGEtaGFzLWlzc3Vlc1wiOm4+MCxjaGlsZHJlbjpbKDAseS5qc3gpKFwic3BhblwiLHtjbGFzc05hbWU6XCJkZXYtdG9vbHMtaW5kaWNhdG9yLWlzc3VlLWNvdW50LWluZGljYXRvclwifSksbl19KX1mdW5jdGlvbiBySyhlKXt2YXIgbix0O3JldHVybigwLHkuanN4KShcInN2Z1wiLChuPWZ1bmN0aW9uKGUpe2Zvcih2YXIgbj0xO248YXJndW1lbnRzLmxlbmd0aDtuKyspe3ZhciB0PW51bGwhPWFyZ3VtZW50c1tuXT9hcmd1bWVudHNbbl06e30scj1PYmplY3Qua2V5cyh0KTtcImZ1bmN0aW9uXCI9PXR5cGVvZiBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzJiYocj1yLmNvbmNhdChPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKHQpLmZpbHRlcihmdW5jdGlvbihlKXtyZXR1cm4gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcih0LGUpLmVudW1lcmFibGV9KSkpLHIuZm9yRWFjaChmdW5jdGlvbihuKXt2YXIgcixvLGE7cj1lLG89bixhPXRbbl0sbyBpbiByP09iamVjdC5kZWZpbmVQcm9wZXJ0eShyLG8se3ZhbHVlOmEsZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITB9KTpyW29dPWF9KX1yZXR1cm4gZX0oe3htbG5zOlwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIixmaWxsOlwiY3VycmVudENvbG9yXCJ9LGUpLHQ9dD17Y2hpbGRyZW46KDAseS5qc3gpKFwicGF0aFwiLHtkOlwiTTQuMzA5NjkgOC4zNzg5MUgyLjM4NzgyQzIuOTgwNSAxMC4zNjQ3IDQuODIxODggMTEuODEyNCA3LjAwMDEyIDExLjgxMjVDOC44MTk3NyAxMS44MTI0IDEwLjQwNDMgMTAuODAyNCAxMS4yMjI4IDkuMzA5NTdMMTEuNTM4MiA4LjczNDM4TDEyLjY4OTYgOS4zNjUyM0wxMi4zNzQxIDkuOTQwNDNMMTIuMTY4MSAxMC4yODkxQzExLjA4MTUgMTEuOTkzIDkuMTczMjQgMTMuMTI0OSA3LjAwMDEyIDEzLjEyNUM0LjQyMjA3IDEzLjEyNDkgMi4yMTc0NyAxMS41MzIyIDEuMzEzNiA5LjI3NzM0VjExLjM3NUgwLjAwMTA5ODYzVjcuNzIyNjZMMC4wMTQ3NzA1IDcuNTg5ODRDMC4wNzYwMzA0IDcuMjkwODkgMC4zNDAyNzggNy4wNjY0MSAwLjY1NzM0OSA3LjA2NjQxSDQuMzA5NjlWOC4zNzg5MVpNNy4wMDAxMiAwLjg3NUM5LjU3Njg1IDAuODc1MTE4IDExLjc4MTkgMi40NjU2OSAxMi42ODY2IDQuNzE4NzVWMi42MjVIMTMuOTk5MVY2LjI3NzM0QzEzLjk5OTEgNi42Mzk3NCAxMy43MDUzIDYuOTMzNTQgMTMuMzQyOSA2LjkzMzU5SDkuNjg5NThWNS42MjEwOUgxMS42MTE1QzExLjAxODYgMy42MzU2IDkuMTc4MTMgMi4xODc2MyA3LjAwMDEyIDIuMTg3NUM1LjE3MTMxIDIuMTg3NTcgMy41Nzk1OSAzLjIwNzcxIDIuNzY0NzcgNC43MTI4OUwyLjQ1MjI3IDUuMjkwMDRMMS4yOTc5NyA0LjY2NTA0TDEuNjEwNDcgNC4wODc4OUMyLjY0NTQ3IDIuMTc2MDUgNC42NzA1MiAwLjg3NTA2OCA3LjAwMDEyIDAuODc1WlwiLGZpbGw6XCIjQTM1MjAwXCJ9KX0sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcnM/T2JqZWN0LmRlZmluZVByb3BlcnRpZXMobixPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycyh0KSk6KGZ1bmN0aW9uKGUsbil7dmFyIHQ9T2JqZWN0LmtleXMoZSk7aWYoT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyl7dmFyIHI9T2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhlKTt0LnB1c2guYXBwbHkodCxyKX1yZXR1cm4gdH0pKE9iamVjdCh0KSkuZm9yRWFjaChmdW5jdGlvbihlKXtPYmplY3QuZGVmaW5lUHJvcGVydHkobixlLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IodCxlKSl9KSxuKSl9ZnVuY3Rpb24gclEoZSl7cmV0dXJuIGUuc2hvd0J1dHRvbj8oMCx5LmpzeHMpKFwiYnV0dG9uXCIse2NsYXNzTmFtZTpcInJlc3RhcnQtZGV2LXNlcnZlci1idXR0b25cIixvbkNsaWNrOmZ1bmN0aW9uKCl7ZmV0Y2goXCIvX19uZXh0anNfcmVzdGFydF9kZXY/aW52YWxpZGF0ZVBlcnNpc3RlbnRDYWNoZVwiLHttZXRob2Q6XCJQT1NUXCJ9KS50aGVuKGZ1bmN0aW9uKCl7fSl9LHRpdGxlOlwiQ2xlYXJzIHRoZSBidW5kbGVyIGNhY2hlIGFuZCByZXN0YXJ0cyB0aGUgZGV2IHNlcnZlci4gSGVscGZ1bCBpZiB5b3UgYXJlIHNlZWluZyBzdGFsZSBlcnJvcnMgb3IgY2hhbmdlcyBhcmUgbm90IGFwcGVhcmluZy5cIixjaGlsZHJlbjpbKDAseS5qc3gpKHJLLHt3aWR0aDoxNCxoZWlnaHQ6MTR9KSxcIkNsZWFyIEJ1bmRsZXIgQ2FjaGUgJiBSZXN0YXJ0XCJdfSk6bnVsbH1mdW5jdGlvbiByRygpe3ZhciBlLG4sdD0oZT1bXCJcXG4gIFtkYXRhLW5leHRqcy12ZXJzaW9uLXN0YWxlbmVzcy1pbmRpY2F0b3I9J2ZyZXNoJ10ge1xcbiAgICBmaWxsOiB2YXIoLS1jb2xvci1ncmVlbi04MDApO1xcbiAgICBzdHJva2U6IHZhcigtLWNvbG9yLWdyZWVuLTMwMCk7XFxuICB9XFxuICBbZGF0YS1uZXh0anMtdmVyc2lvbi1zdGFsZW5lc3MtaW5kaWNhdG9yPSdzdGFsZSddIHtcXG4gICAgZmlsbDogdmFyKC0tY29sb3ItYW1iZXItODAwKTtcXG4gICAgc3Ryb2tlOiB2YXIoLS1jb2xvci1hbWJlci0zMDApO1xcbiAgfVxcbiAgW2RhdGEtbmV4dGpzLXZlcnNpb24tc3RhbGVuZXNzLWluZGljYXRvcj0nb3V0ZGF0ZWQnXSB7XFxuICAgIGZpbGw6IHZhcigtLWNvbG9yLXJlZC04MDApO1xcbiAgICBzdHJva2U6IHZhcigtLWNvbG9yLXJlZC0zMDApO1xcbiAgfVxcbiAgW2RhdGEtbmV4dGpzLXZlcnNpb24tc3RhbGVuZXNzLWluZGljYXRvcj0ndW5rbm93biddIHtcXG4gICAgZmlsbDogdmFyKC0tY29sb3ItZ3JheS04MDApO1xcbiAgICBzdHJva2U6IHZhcigtLWNvbG9yLWdyYXktMzAwKTtcXG4gIH1cXG5cIl0sbnx8KG49ZS5zbGljZSgwKSksT2JqZWN0LmZyZWV6ZShPYmplY3QuZGVmaW5lUHJvcGVydGllcyhlLHtyYXc6e3ZhbHVlOk9iamVjdC5mcmVlemUobil9fSkpKTtyZXR1cm4gckc9ZnVuY3Rpb24oKXtyZXR1cm4gdH0sdH1mdW5jdGlvbiBySihlKXt2YXIgbj1lLnZlcnNpb25JbmZvLHQ9bi5zdGFsZW5lc3Mscj1uQihuKSxvPXIudGV4dCxhPXIuaW5kaWNhdG9yQ2xhc3MsaT1yLnRpdGxlO3JldHVybiB0LnN0YXJ0c1dpdGgoXCJzdGFsZVwiKT8oMCx5LmpzeHMpKFwiYVwiLHtcImRhdGEtbmV4dGpzLWRldnRvb2xzLXBhbmVsLWZvb3Rlci10YWJcIjohMCx0YXJnZXQ6XCJfYmxhbmtcIixyZWw6XCJub29wZW5lciBub3JlZmVycmVyXCIsaHJlZjpcImh0dHBzOi8vbmV4dGpzLm9yZy9kb2NzL21lc3NhZ2VzL3ZlcnNpb24tc3RhbGVuZXNzXCIsdGl0bGU6aSxjaGlsZHJlbjpbKDAseS5qc3gpKG5NLHtcImRhdGEtbmV4dGpzLXZlcnNpb24tc3RhbGVuZXNzLWluZGljYXRvclwiOmF9KSwoMCx5LmpzeCkoXCJzcGFuXCIse2NoaWxkcmVuOm99KV19KTooMCx5LmpzeHMpKFwiZGl2XCIse1wiZGF0YS1uZXh0anMtZGV2dG9vbHMtcGFuZWwtZm9vdGVyLXRhYlwiOiEwLHRpdGxlOmksY2hpbGRyZW46WygwLHkuanN4KShuTSx7XCJkYXRhLW5leHRqcy12ZXJzaW9uLXN0YWxlbmVzcy1pbmRpY2F0b3JcIjphfSksKDAseS5qc3gpKFwic3BhblwiLHtjaGlsZHJlbjpvfSldfSl9dmFyIHIwPWVpKHJHKCkpO2Z1bmN0aW9uIHIxKCl7dmFyIGUsbix0PShlPVtcIlxcbiAgW2RhdGEtbmV4dGpzLWRldnRvb2xzLXBhbmVsLWZvb3Rlcl0ge1xcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jb2xvci1iYWNrZ3JvdW5kLTIwMCk7XFxuICAgIGRpc3BsYXk6IGZsZXg7XFxuICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcXG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcXG4gICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkIHZhcigtLWNvbG9yLWdyYXktNDAwKTtcXG4gICAgYm9yZGVyLXJhZGl1czogMCAwIHZhcigtLXJvdW5kZWQteGwpIHZhcigtLXJvdW5kZWQteGwpO1xcbiAgICBoZWlnaHQ6IGF1dG87XFxuICB9XFxuXFxuICBbZGF0YS1uZXh0anMtZGV2dG9vbHMtcGFuZWwtZm9vdGVyLXRhYi1ncm91cF0ge1xcbiAgICBkaXNwbGF5OiBmbGV4O1xcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xcbiAgfVxcblxcbiAgW2RhdGEtbmV4dGpzLWRldnRvb2xzLXBhbmVsLWZvb3Rlci10YWJdIHtcXG4gICAgZGlzcGxheTogZmxleDtcXG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcXG4gICAgcGFkZGluZzogMTJweDtcXG4gICAgZ2FwOiA4cHg7XFxuICAgIGFsaWduLXNlbGY6IHN0cmV0Y2g7XFxuICAgIGJvcmRlci1yaWdodDogMXB4IHNvbGlkIHZhcigtLWNvbG9yLWdyYXktNDAwKTtcXG5cXG4gICAgY29sb3I6IHZhcigtLWNvbG9yLWdyYXktOTAwKTtcXG4gICAgZm9udC1zaXplOiAxMnB4O1xcbiAgICBmb250LWZhbWlseTogdmFyKC0tZm9udC1zdGFjay1tb25vc3BhY2UpO1xcbiAgfVxcblxcbiAgW2RhdGEtbmV4dGpzLWRldnRvb2xzLXBhbmVsLWZvb3Rlci10YWItYnVuZGxlci1uYW1lPSdUVVJCT1BBQ0snXSB7XFxuICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudChcXG4gICAgICB0byByaWdodCxcXG4gICAgICB2YXIoLS1jb2xvci10dXJib3BhY2stdGV4dC1yZWQpIDAlLFxcbiAgICAgIHZhcigtLWNvbG9yLXR1cmJvcGFjay10ZXh0LWJsdWUpIDEwMCVcXG4gICAgKTtcXG4gICAgYmFja2dyb3VuZC1jbGlwOiB0ZXh0O1xcbiAgICAtd2Via2l0LWJhY2tncm91bmQtY2xpcDogdGV4dDtcXG4gICAgLXdlYmtpdC10ZXh0LWZpbGwtY29sb3I6IHRyYW5zcGFyZW50O1xcbiAgfVxcblwiXSxufHwobj1lLnNsaWNlKDApKSxPYmplY3QuZnJlZXplKE9iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKGUse3Jhdzp7dmFsdWU6T2JqZWN0LmZyZWV6ZShuKX19KSkpO3JldHVybiByMT1mdW5jdGlvbigpe3JldHVybiB0fSx0fWZ1bmN0aW9uIHIyKGUpe3ZhciBuPWUudmVyc2lvbkluZm8sdD1lLmlzRHJhZ2dhYmxlLHI9ZS5zaG93UmVzdGFydFNlcnZlckJ1dHRvbixvPShwcm9jZXNzLmVudi5fX05FWFRfQlVORExFUnx8XCJXRUJQQUNLXCIpLnRvVXBwZXJDYXNlKCk7cmV0dXJuKDAseS5qc3hzKShcImRpdlwiLHtcImRhdGEtbmV4dGpzLWRldnRvb2xzLXBhbmVsLWZvb3RlclwiOiEwLFwiZGF0YS1uZXh0anMtZGV2dG9vbHMtcGFuZWwtZHJhZ2dhYmxlXCI6dCxjaGlsZHJlbjpbKDAseS5qc3hzKShcImRpdlwiLHtcImRhdGEtbmV4dGpzLWRldnRvb2xzLXBhbmVsLWZvb3Rlci10YWItZ3JvdXBcIjohMCxjaGlsZHJlbjpbKDAseS5qc3gpKHJKLHt2ZXJzaW9uSW5mbzpufSksKDAseS5qc3hzKShcImRpdlwiLHtcImRhdGEtbmV4dGpzLWRldnRvb2xzLXBhbmVsLWZvb3Rlci10YWJcIjohMCxjaGlsZHJlbjpbKDAseS5qc3gpKFwic3BhblwiLHtcImRhdGEtbmV4dGpzLWRldnRvb2xzLXBhbmVsLWZvb3Rlci10YWItYnVuZGxlci1uYW1lXCI6byxjaGlsZHJlbjpvfSksKDAseS5qc3gpKFwic3BhblwiLHtcImRhdGEtbmV4dGpzLWRldnRvb2xzLXBhbmVsLWZvb3Rlci10YWItYnVuZGxlci1zdGF0dXNcIjohMCxjaGlsZHJlbjpcImVuYWJsZWRcIn0pXX0pXX0pLHImJigwLHkuanN4KShcImRpdlwiLHtcImRhdGEtbmV4dGpzLWRldnRvb2xzLXBhbmVsLWZvb3Rlci10YWItZ3JvdXBcIjohMCxjaGlsZHJlbjooMCx5LmpzeCkoclEse3Nob3dCdXR0b246ITB9KX0pXX0pfXZhciByND1laShyMSgpKTtmdW5jdGlvbiByNShlKXt2YXIgbix0O3JldHVybigwLHkuanN4KShcInN2Z1wiLChuPWZ1bmN0aW9uKGUpe2Zvcih2YXIgbj0xO248YXJndW1lbnRzLmxlbmd0aDtuKyspe3ZhciB0PW51bGwhPWFyZ3VtZW50c1tuXT9hcmd1bWVudHNbbl06e30scj1PYmplY3Qua2V5cyh0KTtcImZ1bmN0aW9uXCI9PXR5cGVvZiBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzJiYocj1yLmNvbmNhdChPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKHQpLmZpbHRlcihmdW5jdGlvbihlKXtyZXR1cm4gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcih0LGUpLmVudW1lcmFibGV9KSkpLHIuZm9yRWFjaChmdW5jdGlvbihuKXt2YXIgcixvLGE7cj1lLG89bixhPXRbbl0sbyBpbiByP09iamVjdC5kZWZpbmVQcm9wZXJ0eShyLG8se3ZhbHVlOmEsZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITB9KTpyW29dPWF9KX1yZXR1cm4gZX0oe3dpZHRoOlwiMTZcIixoZWlnaHQ6XCIxNlwiLHZpZXdCb3g6XCIwIDAgMTYgMTZcIixcImFyaWEtaGlkZGVuXCI6ITB9LGUpLHQ9dD17Y2hpbGRyZW46KDAseS5qc3gpKFwicGF0aFwiLHtmaWxsUnVsZTpcImV2ZW5vZGRcIixjbGlwUnVsZTpcImV2ZW5vZGRcIixkOlwiTTE0LjA2MDcgNS40OTk5OUwxMy41MzAzIDYuMDMwMzJMOC43MDcxIDEwLjg1MzVDOC4zMTY1OCAxMS4yNDQxIDcuNjgzNDEgMTEuMjQ0MSA3LjI5Mjg5IDEwLjg1MzVMMi40Njk2NiA2LjAzMDMyTDEuOTM5MzMgNS40OTk5OUwyLjk5OTk5IDQuNDM5MzNMMy41MzAzMiA0Ljk2OTY2TDcuOTk5OTkgOS40MzkzM0wxMi40Njk3IDQuOTY5NjZMMTMgNC40MzkzM0wxNC4wNjA3IDUuNDk5OTlaXCIsZmlsbDpcImN1cnJlbnRDb2xvclwifSl9LE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzP09iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKG4sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcnModCkpOihmdW5jdGlvbihlLG4pe3ZhciB0PU9iamVjdC5rZXlzKGUpO2lmKE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMpe3ZhciByPU9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMoZSk7dC5wdXNoLmFwcGx5KHQscil9cmV0dXJuIHR9KShPYmplY3QodCkpLmZvckVhY2goZnVuY3Rpb24oZSl7T2JqZWN0LmRlZmluZVByb3BlcnR5KG4sZSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHQsZSkpfSksbikpfWZ1bmN0aW9uIHIzKGUpe3ZhciBuLHQscj1lLmNoaWxkcmVuLG89ZS5wcmVmaXgsYT1mdW5jdGlvbihlLG4pe2lmKG51bGw9PWUpcmV0dXJue307dmFyIHQscixvPWZ1bmN0aW9uKGUsbil7aWYobnVsbD09ZSlyZXR1cm57fTt2YXIgdCxyLG89e30sYT1PYmplY3Qua2V5cyhlKTtmb3Iocj0wO3I8YS5sZW5ndGg7cisrKXQ9YVtyXSxuLmluZGV4T2YodCk+PTB8fChvW3RdPWVbdF0pO3JldHVybiBvfShlLG4pO2lmKE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMpe3ZhciBhPU9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMoZSk7Zm9yKHI9MDtyPGEubGVuZ3RoO3IrKyl0PWFbcl0sIShuLmluZGV4T2YodCk+PTApJiZPYmplY3QucHJvdG90eXBlLnByb3BlcnR5SXNFbnVtZXJhYmxlLmNhbGwoZSx0KSYmKG9bdF09ZVt0XSl9cmV0dXJuIG99KGUsW1wiY2hpbGRyZW5cIixcInByZWZpeFwiXSk7cmV0dXJuKDAseS5qc3hzKShcImRpdlwiLHtcImRhdGEtbmV4dGpzLXNlbGVjdFwiOiEwLGNoaWxkcmVuOltvLCgwLHkuanN4KShcInNlbGVjdFwiLChuPWZ1bmN0aW9uKGUpe2Zvcih2YXIgbj0xO248YXJndW1lbnRzLmxlbmd0aDtuKyspe3ZhciB0PW51bGwhPWFyZ3VtZW50c1tuXT9hcmd1bWVudHNbbl06e30scj1PYmplY3Qua2V5cyh0KTtcImZ1bmN0aW9uXCI9PXR5cGVvZiBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzJiYocj1yLmNvbmNhdChPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKHQpLmZpbHRlcihmdW5jdGlvbihlKXtyZXR1cm4gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcih0LGUpLmVudW1lcmFibGV9KSkpLHIuZm9yRWFjaChmdW5jdGlvbihuKXt2YXIgcixvLGE7cj1lLG89bixhPXRbbl0sbyBpbiByP09iamVjdC5kZWZpbmVQcm9wZXJ0eShyLG8se3ZhbHVlOmEsZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITB9KTpyW29dPWF9KX1yZXR1cm4gZX0oe30sYSksdD10PXtjaGlsZHJlbjpyfSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycz9PYmplY3QuZGVmaW5lUHJvcGVydGllcyhuLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzKHQpKTooZnVuY3Rpb24oZSxuKXt2YXIgdD1PYmplY3Qua2V5cyhlKTtpZihPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKXt2YXIgcj1PYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKGUpO3QucHVzaC5hcHBseSh0LHIpfXJldHVybiB0fSkoT2JqZWN0KHQpKS5mb3JFYWNoKGZ1bmN0aW9uKGUpe09iamVjdC5kZWZpbmVQcm9wZXJ0eShuLGUsT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcih0LGUpKX0pLG4pKSwoMCx5LmpzeCkocjUse3dpZHRoOjE2LGhlaWdodDoxNn0pXX0pfWZ1bmN0aW9uIHI2KGUsbil7KG51bGw9PW58fG4+ZS5sZW5ndGgpJiYobj1lLmxlbmd0aCk7Zm9yKHZhciB0PTAscj1BcnJheShuKTt0PG47dCsrKXJbdF09ZVt0XTtyZXR1cm4gcn1mdW5jdGlvbiByOShlLG4pe3JldHVybiBmdW5jdGlvbihlKXtpZihBcnJheS5pc0FycmF5KGUpKXJldHVybiBlfShlKXx8ZnVuY3Rpb24oZSxuKXt2YXIgdCxyLG89bnVsbD09ZT9udWxsOlwidW5kZWZpbmVkXCIhPXR5cGVvZiBTeW1ib2wmJmVbU3ltYm9sLml0ZXJhdG9yXXx8ZVtcIkBAaXRlcmF0b3JcIl07aWYobnVsbCE9byl7dmFyIGE9W10saT0hMCxsPSExO3RyeXtmb3Iobz1vLmNhbGwoZSk7IShpPSh0PW8ubmV4dCgpKS5kb25lKSYmKGEucHVzaCh0LnZhbHVlKSwhbnx8YS5sZW5ndGghPT1uKTtpPSEwKTt9Y2F0Y2goZSl7bD0hMCxyPWV9ZmluYWxseXt0cnl7aXx8bnVsbD09by5yZXR1cm58fG8ucmV0dXJuKCl9ZmluYWxseXtpZihsKXRocm93IHJ9fXJldHVybiBhfX0oZSxuKXx8ZnVuY3Rpb24oZSxuKXtpZihlKXtpZihcInN0cmluZ1wiPT10eXBlb2YgZSlyZXR1cm4gcjYoZSxuKTt2YXIgdD1PYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwoZSkuc2xpY2UoOCwtMSk7aWYoXCJPYmplY3RcIj09PXQmJmUuY29uc3RydWN0b3ImJih0PWUuY29uc3RydWN0b3IubmFtZSksXCJNYXBcIj09PXR8fFwiU2V0XCI9PT10KXJldHVybiBBcnJheS5mcm9tKHQpO2lmKFwiQXJndW1lbnRzXCI9PT10fHwvXig/OlVpfEkpbnQoPzo4fDE2fDMyKSg/OkNsYW1wZWQpP0FycmF5JC8udGVzdCh0KSlyZXR1cm4gcjYoZSxuKX19KGUsbil8fGZ1bmN0aW9uKCl7dGhyb3cgVHlwZUVycm9yKFwiSW52YWxpZCBhdHRlbXB0IHRvIGRlc3RydWN0dXJlIG5vbi1pdGVyYWJsZSBpbnN0YW5jZS5cXFxcbkluIG9yZGVyIHRvIGJlIGl0ZXJhYmxlLCBub24tYXJyYXkgb2JqZWN0cyBtdXN0IGhhdmUgYSBbU3ltYm9sLml0ZXJhdG9yXSgpIG1ldGhvZC5cIil9KCl9ZnVuY3Rpb24gcjgoKXt2YXIgZSxuLHQ9KGU9W1wiXFxuICBbZGF0YS1uZXh0anMtZGV2dG9vbHMtcGFuZWwtc2V0dGluZ3NdIHtcXG4gICAgcGFkZGluZzogMTZweDtcXG4gIH1cXG5cXG4gIFtkYXRhLW5leHRqcy1kZXZ0b29scy1wYW5lbC1zZXR0aW5ncy1zZWN0aW9uXTpmaXJzdC1jaGlsZCB7XFxuICAgIHBhZGRpbmctdG9wOiAwO1xcbiAgfVxcblxcbiAgW2RhdGEtbmV4dGpzLWRldnRvb2xzLXBhbmVsLXNldHRpbmdzLXNlY3Rpb25dIHtcXG4gICAgcGFkZGluZzogMTJweCAwO1xcbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgdmFyKC0tY29sb3ItZ3JheS00MDApO1xcbiAgICBkaXNwbGF5OiBmbGV4O1xcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XFxuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XFxuICAgIGdhcDogMjRweDtcXG4gIH1cXG5cXG4gIFtkYXRhLW5leHRqcy1kZXZ0b29scy1wYW5lbC1zZXR0aW5ncy1zZWN0aW9uXTpsYXN0LWNoaWxkIHtcXG4gICAgcGFkZGluZy1ib3R0b206IDA7XFxuICAgIGJvcmRlci1ib3R0b206IG5vbmU7XFxuICB9XFxuXFxuICBbZGF0YS1uZXh0anMtZGV2dG9vbHMtcGFuZWwtc2V0dGluZ3Mtc2VjdGlvbi1oZWFkZXJdIHtcXG4gICAgbWFyZ2luLWJvdHRvbTogMDtcXG4gICAgZmxleDogMTtcXG4gIH1cXG5cXG4gIFtkYXRhLW5leHRqcy1kZXZ0b29scy1wYW5lbC1zZXR0aW5ncy1zZWN0aW9uLWhlYWRlcl0gbGFiZWwge1xcbiAgICBmb250LXNpemU6IHZhcigtLXNpemUtMTQpO1xcbiAgICBmb250LXdlaWdodDogNTAwO1xcbiAgICBjb2xvcjogdmFyKC0tY29sb3ItZ3JheS0xMDAwKTtcXG4gICAgbWFyZ2luOiAwO1xcbiAgfVxcblxcbiAgW2RhdGEtbmV4dGpzLWRldnRvb2xzLXBhbmVsLXNldHRpbmdzLXNlY3Rpb24tZGVzY3JpcHRpb25dIHtcXG4gICAgY29sb3I6IHZhcigtLWNvbG9yLWdyYXktOTAwKTtcXG4gICAgZm9udC1zaXplOiB2YXIoLS1zaXplLTE0KTtcXG4gICAgbWFyZ2luOiAwO1xcbiAgfVxcblxcbiAgW2RhdGEtbmV4dGpzLXNlbGVjdF0sXFxuICBbZGF0YS1uZXh0anMtZGV2dG9vbHMtcGFuZWwtc2V0dGluZ3Mtc2VjdGlvbi1hY3Rpb24tYnV0dG9uXSB7XFxuICAgIGRpc3BsYXk6IGZsZXg7XFxuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XFxuICAgIGdhcDogOHB4O1xcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1jb2xvci1iYWNrZ3JvdW5kLTEwMCk7XFxuICAgIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWNvbG9yLWdyYXktNDAwKTtcXG4gICAgYm9yZGVyLXJhZGl1czogdmFyKC0tcm91bmRlZC1sZyk7XFxuICAgIGZvbnQtd2VpZ2h0OiA0MDA7XFxuICAgIGZvbnQtc2l6ZTogdmFyKC0tc2l6ZS0xNCk7XFxuICAgIGNvbG9yOiB2YXIoLS1jb2xvci1ncmF5LTEwMDApO1xcbiAgICBwYWRkaW5nOiA2cHggOHB4O1xcblxcbiAgICAmOmhvdmVyIHtcXG4gICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1jb2xvci1ncmF5LTEwMCk7XFxuICAgIH1cXG4gIH1cXG5cXG4gIFtkYXRhLW5leHRqcy1zZWxlY3RdIHtcXG4gICAgJjpmb2N1cy13aXRoaW4ge1xcbiAgICAgIG91dGxpbmU6IHZhcigtLWZvY3VzLXJpbmcpO1xcbiAgICB9XFxuXFxuICAgIHNlbGVjdCB7XFxuICAgICAgYWxsOiB1bnNldDtcXG4gICAgfVxcblxcbiAgICBvcHRpb24ge1xcbiAgICAgIGNvbG9yOiB2YXIoLS1jb2xvci1ncmF5LTEwMDApO1xcbiAgICAgIGJhY2tncm91bmQ6IHZhcigtLWNvbG9yLWJhY2tncm91bmQtMTAwKTtcXG4gICAgfVxcbiAgfVxcblxcbiAgOmdsb2JhbCguaWNvbikge1xcbiAgICB3aWR0aDogMThweDtcXG4gICAgaGVpZ2h0OiAxOHB4O1xcbiAgICBjb2xvcjogIzY2NjtcXG4gIH1cXG5cIl0sbnx8KG49ZS5zbGljZSgwKSksT2JqZWN0LmZyZWV6ZShPYmplY3QuZGVmaW5lUHJvcGVydGllcyhlLHtyYXc6e3ZhbHVlOk9iamVjdC5mcmVlemUobil9fSkpKTtyZXR1cm4gcjg9ZnVuY3Rpb24oKXtyZXR1cm4gdH0sdH1mdW5jdGlvbiByNyhlKXtzd2l0Y2goZS50aGVtZSl7Y2FzZVwic3lzdGVtXCI6cmV0dXJuKDAseS5qc3gpKHJlLHt9KTtjYXNlXCJkYXJrXCI6cmV0dXJuKDAseS5qc3gpKHQ3LHt9KTtjYXNlXCJsaWdodFwiOnJldHVybigwLHkuanN4KSh0OCx7fSk7ZGVmYXVsdDpyZXR1cm4gbnVsbH19ZnVuY3Rpb24gb2UoZSl7dmFyIG49ZS5kZXZUb29sc1Bvc2l0aW9uLHQ9ZS5zY2FsZSxyPWUuaGFuZGxlUG9zaXRpb25DaGFuZ2Usbz1lLmhhbmRsZVNjYWxlQ2hhbmdlLGE9cjkoKDAseC51c2VTdGF0ZSkoZnVuY3Rpb24oKXtpZihcInVuZGVmaW5lZFwiPT10eXBlb2YgbG9jYWxTdG9yYWdlKXJldHVyblwic3lzdGVtXCI7dmFyIGU9bG9jYWxTdG9yYWdlLmdldEl0ZW0oUSk7cmV0dXJuXCJkYXJrXCI9PT1lfHxcImxpZ2h0XCI9PT1lP2U6XCJzeXN0ZW1cIn0oKSksMiksaT1hWzBdLGw9YVsxXTtmdW5jdGlvbiBzKGUpe3ZhciBuPVwiL19fbmV4dGpzX3Jlc3RhcnRfZGV2XCI7ZSYmKG49XCIvX19uZXh0anNfcmVzdGFydF9kZXY/aW52YWxpZGF0ZVBlcnNpc3RlbnRDYWNoZVwiKSxmZXRjaChuLHttZXRob2Q6XCJQT1NUXCJ9KS50aGVuKGZ1bmN0aW9uKCl7fSl9cmV0dXJuKDAseS5qc3hzKShcImRpdlwiLHtcImRhdGEtbmV4dGpzLWRldnRvb2xzLXBhbmVsLXNldHRpbmdzXCI6ITAsY2hpbGRyZW46WygwLHkuanN4cykoXCJkaXZcIix7XCJkYXRhLW5leHRqcy1kZXZ0b29scy1wYW5lbC1zZXR0aW5ncy1zZWN0aW9uXCI6ITAsY2hpbGRyZW46WygwLHkuanN4cykoXCJkaXZcIix7XCJkYXRhLW5leHRqcy1kZXZ0b29scy1wYW5lbC1zZXR0aW5ncy1zZWN0aW9uLWhlYWRlclwiOiEwLGNoaWxkcmVuOlsoMCx5LmpzeCkoXCJsYWJlbFwiLHtodG1sRm9yOlwidGhlbWVcIixjaGlsZHJlbjpcIlRoZW1lXCJ9KSwoMCx5LmpzeCkoXCJwXCIse1wiZGF0YS1uZXh0anMtZGV2dG9vbHMtcGFuZWwtc2V0dGluZ3Mtc2VjdGlvbi1kZXNjcmlwdGlvblwiOiEwLGNoaWxkcmVuOlwiU2VsZWN0IHlvdXIgdGhlbWUgcHJlZmVyZW5jZS5cIn0pXX0pLCgwLHkuanN4cykocjMse2lkOlwidGhlbWVcIixuYW1lOlwidGhlbWVcIixwcmVmaXg6KDAseS5qc3gpKHI3LHt0aGVtZTppfSksdmFsdWU6aSxvbkNoYW5nZTpmdW5jdGlvbihlKXt2YXIgbj1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKFwibmV4dGpzLXBvcnRhbFwiKTtpZihuKXtpZihsKGUudGFyZ2V0LnZhbHVlKSxcInN5c3RlbVwiPT09ZS50YXJnZXQudmFsdWUpe24uY2xhc3NMaXN0LnJlbW92ZShcImRhcmtcIiksbi5jbGFzc0xpc3QucmVtb3ZlKFwibGlnaHRcIiksbG9jYWxTdG9yYWdlLnJlbW92ZUl0ZW0oUSk7cmV0dXJufVwiZGFya1wiPT09ZS50YXJnZXQudmFsdWU/KG4uY2xhc3NMaXN0LmFkZChcImRhcmtcIiksbi5jbGFzc0xpc3QucmVtb3ZlKFwibGlnaHRcIiksbG9jYWxTdG9yYWdlLnNldEl0ZW0oUSxcImRhcmtcIikpOihuLmNsYXNzTGlzdC5yZW1vdmUoXCJkYXJrXCIpLG4uY2xhc3NMaXN0LmFkZChcImxpZ2h0XCIpLGxvY2FsU3RvcmFnZS5zZXRJdGVtKFEsXCJsaWdodFwiKSl9fSxjaGlsZHJlbjpbKDAseS5qc3gpKFwib3B0aW9uXCIse3ZhbHVlOlwic3lzdGVtXCIsY2hpbGRyZW46XCJTeXN0ZW1cIn0pLCgwLHkuanN4KShcIm9wdGlvblwiLHt2YWx1ZTpcImxpZ2h0XCIsY2hpbGRyZW46XCJMaWdodFwifSksKDAseS5qc3gpKFwib3B0aW9uXCIse3ZhbHVlOlwiZGFya1wiLGNoaWxkcmVuOlwiRGFya1wifSldfSldfSksKDAseS5qc3hzKShcImRpdlwiLHtcImRhdGEtbmV4dGpzLWRldnRvb2xzLXBhbmVsLXNldHRpbmdzLXNlY3Rpb25cIjohMCxjaGlsZHJlbjpbKDAseS5qc3hzKShcImRpdlwiLHtcImRhdGEtbmV4dGpzLWRldnRvb2xzLXBhbmVsLXNldHRpbmdzLXNlY3Rpb24taGVhZGVyXCI6ITAsY2hpbGRyZW46WygwLHkuanN4KShcImxhYmVsXCIse2h0bWxGb3I6XCJwb3NpdGlvblwiLGNoaWxkcmVuOlwiUG9zaXRpb25cIn0pLCgwLHkuanN4KShcInBcIix7XCJkYXRhLW5leHRqcy1kZXZ0b29scy1wYW5lbC1zZXR0aW5ncy1zZWN0aW9uLWRlc2NyaXB0aW9uXCI6ITAsY2hpbGRyZW46XCJBZGp1c3QgdGhlIHBsYWNlbWVudCBvZiB5b3VyIGRldiB0b29scy5cIn0pXX0pLCgwLHkuanN4cykocjMse2lkOlwicG9zaXRpb25cIixuYW1lOlwicG9zaXRpb25cIix2YWx1ZTpuLG9uQ2hhbmdlOnIsY2hpbGRyZW46WygwLHkuanN4KShcIm9wdGlvblwiLHt2YWx1ZTpcImJvdHRvbS1sZWZ0XCIsY2hpbGRyZW46XCJCb3R0b20gTGVmdFwifSksKDAseS5qc3gpKFwib3B0aW9uXCIse3ZhbHVlOlwiYm90dG9tLXJpZ2h0XCIsY2hpbGRyZW46XCJCb3R0b20gUmlnaHRcIn0pLCgwLHkuanN4KShcIm9wdGlvblwiLHt2YWx1ZTpcInRvcC1sZWZ0XCIsY2hpbGRyZW46XCJUb3AgTGVmdFwifSksKDAseS5qc3gpKFwib3B0aW9uXCIse3ZhbHVlOlwidG9wLXJpZ2h0XCIsY2hpbGRyZW46XCJUb3AgUmlnaHRcIn0pXX0pXX0pLCgwLHkuanN4cykoXCJkaXZcIix7XCJkYXRhLW5leHRqcy1kZXZ0b29scy1wYW5lbC1zZXR0aW5ncy1zZWN0aW9uXCI6ITAsY2hpbGRyZW46WygwLHkuanN4cykoXCJkaXZcIix7XCJkYXRhLW5leHRqcy1kZXZ0b29scy1wYW5lbC1zZXR0aW5ncy1zZWN0aW9uLWhlYWRlclwiOiEwLGNoaWxkcmVuOlsoMCx5LmpzeCkoXCJsYWJlbFwiLHtodG1sRm9yOlwic2l6ZVwiLGNoaWxkcmVuOlwiU2l6ZVwifSksKDAseS5qc3gpKFwicFwiLHtcImRhdGEtbmV4dGpzLWRldnRvb2xzLXBhbmVsLXNldHRpbmdzLXNlY3Rpb24tZGVzY3JpcHRpb25cIjohMCxjaGlsZHJlbjpcIkFkanVzdCB0aGUgc2l6ZSBvZiB5b3VyIGRldiB0b29scy5cIn0pXX0pLCgwLHkuanN4KShyMyx7aWQ6XCJzaXplXCIsbmFtZTpcInNpemVcIix2YWx1ZTp0LG9uQ2hhbmdlOm8sY2hpbGRyZW46T2JqZWN0LmVudHJpZXMoUykubWFwKGZ1bmN0aW9uKGUpe3ZhciBuPXI5KGUsMiksdD1uWzBdLHI9blsxXTtyZXR1cm4oMCx5LmpzeCkoXCJvcHRpb25cIix7dmFsdWU6cixjaGlsZHJlbjp0fSx0KX0pfSldfSksKDAseS5qc3hzKShcImRpdlwiLHtcImRhdGEtbmV4dGpzLWRldnRvb2xzLXBhbmVsLXNldHRpbmdzLXNlY3Rpb25cIjohMCxjaGlsZHJlbjpbKDAseS5qc3hzKShcImRpdlwiLHtcImRhdGEtbmV4dGpzLWRldnRvb2xzLXBhbmVsLXNldHRpbmdzLXNlY3Rpb24taGVhZGVyXCI6ITAsY2hpbGRyZW46WygwLHkuanN4KShcImxhYmVsXCIse2lkOlwiaGlkZS1kZXYtdG9vbHNcIixjaGlsZHJlbjpcIkhpZGUgRGV2IFRvb2xzIGZvciB0aGlzIHNlc3Npb25cIn0pLCgwLHkuanN4KShcInBcIix7XCJkYXRhLW5leHRqcy1kZXZ0b29scy1wYW5lbC1zZXR0aW5ncy1zZWN0aW9uLWRlc2NyaXB0aW9uXCI6ITAsY2hpbGRyZW46XCJIaWRlIERldiBUb29scyB1bnRpbCB5b3UgcmVzdGFydCB5b3VyIGRldiBzZXJ2ZXIsIG9yIDEgZGF5LlwifSldfSksKDAseS5qc3gpKFwiZGl2XCIse2NoaWxkcmVuOigwLHkuanN4cykoXCJidXR0b25cIix7XCJhcmlhLWRlc2NyaWJlZGJ5XCI6XCJoaWRlLWRldi10b29sc1wiLG5hbWU6XCJoaWRlLWRldi10b29sc1wiLFwiZGF0YS1oaWRlLWRldi10b29sc1wiOiEwLFwiZGF0YS1uZXh0anMtZGV2dG9vbHMtcGFuZWwtc2V0dGluZ3Mtc2VjdGlvbi1hY3Rpb24tYnV0dG9uXCI6ITAsb25DbGljazpmdW5jdGlvbigpe2ZldGNoKFwiL19fbmV4dGpzX2Rpc2FibGVfZGV2X2luZGljYXRvclwiLHttZXRob2Q6XCJQT1NUXCJ9KX0sY2hpbGRyZW46WygwLHkuanN4KSh0OSx7fSksKDAseS5qc3gpKFwic3BhblwiLHtjaGlsZHJlbjpcIkhpZGVcIn0pXX0pfSldfSksKDAseS5qc3gpKFwiZGl2XCIse1wiZGF0YS1uZXh0anMtZGV2dG9vbHMtcGFuZWwtc2V0dGluZ3Mtc2VjdGlvblwiOiEwLGNoaWxkcmVuOigwLHkuanN4cykoXCJkaXZcIix7XCJkYXRhLW5leHRqcy1kZXZ0b29scy1wYW5lbC1zZXR0aW5ncy1zZWN0aW9uLWhlYWRlclwiOiEwLGNoaWxkcmVuOlsoMCx5LmpzeCkoXCJsYWJlbFwiLHtjaGlsZHJlbjpcIkRpc2FibGUgRGV2IFRvb2xzIGZvciB0aGlzIHByb2plY3RcIn0pLCgwLHkuanN4cykoXCJwXCIse1wiZGF0YS1uZXh0anMtZGV2dG9vbHMtcGFuZWwtc2V0dGluZ3Mtc2VjdGlvbi1kZXNjcmlwdGlvblwiOiEwLGNoaWxkcmVuOltcIlRvIGRpc2FibGUgdGhpcyBVSSBjb21wbGV0ZWx5LCBzZXRcIixcIiBcIiwoMCx5LmpzeCkoXCJjb2RlXCIse2NsYXNzTmFtZTpcImRldi10b29scy1pbmZvLWNvZGVcIixjaGlsZHJlbjpcImRldkluZGljYXRvcnM6IGZhbHNlXCJ9KSxcIiBpbiB5b3VyIFwiLCgwLHkuanN4KShcImNvZGVcIix7Y2xhc3NOYW1lOlwiZGV2LXRvb2xzLWluZm8tY29kZVwiLGNoaWxkcmVuOlwibmV4dC5jb25maWdcIn0pLFwiIGZpbGUuXCJdfSldfSl9KSwoMCx5LmpzeHMpKFwiZGl2XCIse1wiZGF0YS1uZXh0anMtZGV2dG9vbHMtcGFuZWwtc2V0dGluZ3Mtc2VjdGlvblwiOiEwLGNoaWxkcmVuOlsoMCx5LmpzeHMpKFwiZGl2XCIse1wiZGF0YS1uZXh0anMtZGV2dG9vbHMtcGFuZWwtc2V0dGluZ3Mtc2VjdGlvbi1oZWFkZXJcIjohMCxjaGlsZHJlbjpbKDAseS5qc3gpKFwibGFiZWxcIix7aWQ6XCJyZXN0YXJ0LWRldi1zZXJ2ZXJcIixjaGlsZHJlbjpcIlJlc3RhcnQgRGV2IFNlcnZlclwifSksKDAseS5qc3gpKFwicFwiLHtcImRhdGEtbmV4dGpzLWRldnRvb2xzLXBhbmVsLXNldHRpbmdzLXNlY3Rpb24tZGVzY3JpcHRpb25cIjohMCxjaGlsZHJlbjpcIlJlc3RhcnRzIHRoZSBkZXZlbG9wbWVudCBzZXJ2ZXIgd2l0aG91dCBuZWVkaW5nIHRvIGxlYXZlIHRoZSBicm93c2VyLlwifSldfSksKDAseS5qc3gpKFwiZGl2XCIse2NoaWxkcmVuOigwLHkuanN4KShcImJ1dHRvblwiLHtcImFyaWEtZGVzY3JpYmVkYnlcIjpcInJlc3RhcnQtZGV2LXNlcnZlclwiLHRpdGxlOlwiUmVzdGFydHMgdGhlIGRldmVsb3BtZW50IHNlcnZlciB3aXRob3V0IG5lZWRpbmcgdG8gbGVhdmUgdGhlIGJyb3dzZXIuXCIsbmFtZTpcInJlc3RhcnQtZGV2LXNlcnZlclwiLFwiZGF0YS1yZXN0YXJ0LWRldi1zZXJ2ZXJcIjohMCxcImRhdGEtbmV4dGpzLWRldnRvb2xzLXBhbmVsLXNldHRpbmdzLXNlY3Rpb24tYWN0aW9uLWJ1dHRvblwiOiEwLG9uQ2xpY2s6ZnVuY3Rpb24oKXtyZXR1cm4gcyghMSl9LGNoaWxkcmVuOigwLHkuanN4KShcInNwYW5cIix7Y2hpbGRyZW46XCJSZXN0YXJ0XCJ9KX0pfSldfSkscHJvY2Vzcy5lbnYuX19ORVhUX1RVUkJPUEFDS19QRVJTSVNURU5UX0NBQ0hFPygwLHkuanN4cykoXCJkaXZcIix7XCJkYXRhLW5leHRqcy1kZXZ0b29scy1wYW5lbC1zZXR0aW5ncy1zZWN0aW9uXCI6ITAsY2hpbGRyZW46WygwLHkuanN4cykoXCJkaXZcIix7XCJkYXRhLW5leHRqcy1kZXZ0b29scy1wYW5lbC1zZXR0aW5ncy1zZWN0aW9uLWhlYWRlclwiOiEwLGNoaWxkcmVuOlsoMCx5LmpzeCkoXCJsYWJlbFwiLHtpZDpcInJlc2V0LWJ1bmRsZXItY2FjaGVcIixjaGlsZHJlbjpcIlJlc2V0IEJ1bmRsZXIgQ2FjaGVcIn0pLCgwLHkuanN4KShcInBcIix7XCJkYXRhLW5leHRqcy1kZXZ0b29scy1wYW5lbC1zZXR0aW5ncy1zZWN0aW9uLWRlc2NyaXB0aW9uXCI6ITAsY2hpbGRyZW46XCJDbGVhcnMgdGhlIGJ1bmRsZXIgY2FjaGUgYW5kIHJlc3RhcnRzIHRoZSBkZXYgc2VydmVyLiBIZWxwZnVsIGlmIHlvdSBhcmUgc2VlaW5nIHN0YWxlIGVycm9ycyBvciBjaGFuZ2VzIGFyZSBub3QgYXBwZWFyaW5nLlwifSldfSksKDAseS5qc3gpKFwiZGl2XCIse2NoaWxkcmVuOigwLHkuanN4KShcImJ1dHRvblwiLHtcImFyaWEtZGVzY3JpYmVkYnlcIjpcInJlc2V0LWJ1bmRsZXItY2FjaGVcIix0aXRsZTpcIkNsZWFycyB0aGUgYnVuZGxlciBjYWNoZSBhbmQgcmVzdGFydHMgdGhlIGRldiBzZXJ2ZXIuIEhlbHBmdWwgaWYgeW91IGFyZSBzZWVpbmcgc3RhbGUgZXJyb3JzIG9yIGNoYW5nZXMgYXJlIG5vdCBhcHBlYXJpbmcuXCIsbmFtZTpcInJlc2V0LWJ1bmRsZXItY2FjaGVcIixcImRhdGEtcmVzZXQtYnVuZGxlci1jYWNoZVwiOiEwLFwiZGF0YS1uZXh0anMtZGV2dG9vbHMtcGFuZWwtc2V0dGluZ3Mtc2VjdGlvbi1hY3Rpb24tYnV0dG9uXCI6ITAsb25DbGljazpmdW5jdGlvbigpe3JldHVybiBzKCEwKX0sY2hpbGRyZW46KDAseS5qc3gpKFwic3BhblwiLHtjaGlsZHJlbjpcIlJlc2V0IENhY2hlXCJ9KX0pfSldfSk6bnVsbF19KX12YXIgb249ZWkocjgoKSk7ZnVuY3Rpb24gb3QoKXt2YXIgZSxuLHQ9KGU9W1wiXFxuICBbZGF0YS1uZXh0anMtZGV2dG9vbHMtcGFuZWwtdGFiLWlzc3Vlcy1zaWRlYmFyLWZyYW1lLXNrZWxldG9uLWJhcl0ge1xcbiAgICBoZWlnaHQ6IHZhcigtLXNpemUtMTIpO1xcbiAgICBib3JkZXItcmFkaXVzOiAxMDBweDtcXG4gICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KFxcbiAgICAgIDkwZGVnLFxcbiAgICAgIHZhcigtLWNvbG9yLWdyYXktMjAwKSAyNSUsXFxuICAgICAgdmFyKC0tY29sb3ItZ3JheS0xMDApIDUwJSxcXG4gICAgICB2YXIoLS1jb2xvci1ncmF5LTIwMCkgNzUlXFxuICAgICk7XFxuICAgIGJhY2tncm91bmQtc2l6ZTogMjAwJSAxMDAlO1xcbiAgICBhbmltYXRpb246IHNrZWxldG9uLXNoaW1tZXIgMS41cyBlYXNlLWluLW91dCBpbmZpbml0ZTtcXG4gIH1cXG5cXG4gIFtkYXRhLW5leHRqcy1kZXZ0b29scy1wYW5lbC10YWItaXNzdWVzLXNpZGViYXItZnJhbWUtc2tlbGV0b24tYmFyPScxJ10ge1xcbiAgICB3aWR0aDogNzUlO1xcbiAgICBtYXJnaW4tYm90dG9tOiA4cHg7XFxuICB9XFxuXFxuICBbZGF0YS1uZXh0anMtZGV2dG9vbHMtcGFuZWwtdGFiLWlzc3Vlcy1zaWRlYmFyLWZyYW1lLXNrZWxldG9uLWJhcj0nMiddIHtcXG4gICAgd2lkdGg6IDM2LjUlO1xcbiAgfVxcblxcbiAgQGtleWZyYW1lcyBza2VsZXRvbi1zaGltbWVyIHtcXG4gICAgMCUge1xcbiAgICAgIGJhY2tncm91bmQtcG9zaXRpb246IC0yMDAlIDA7XFxuICAgIH1cXG4gICAgMTAwJSB7XFxuICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbjogMjAwJSAwO1xcbiAgICB9XFxuICB9XFxuXFxuICAvKiBSZXNwZWN0IHVzZXIncyBtb3Rpb24gcHJlZmVyZW5jZXMgKi9cXG4gIEBtZWRpYSAocHJlZmVycy1yZWR1Y2VkLW1vdGlvbjogcmVkdWNlKSB7XFxuICAgIFtkYXRhLW5leHRqcy1kZXZ0b29scy1wYW5lbC10YWItaXNzdWVzLXNpZGViYXItZnJhbWUtc2tlbGV0b24tYmFyPScxJ10sXFxuICAgIFtkYXRhLW5leHRqcy1kZXZ0b29scy1wYW5lbC10YWItaXNzdWVzLXNpZGViYXItZnJhbWUtc2tlbGV0b24tYmFyPScyJ10ge1xcbiAgICAgIGFuaW1hdGlvbjogbm9uZTtcXG4gICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1jb2xvci1ncmF5LTIwMCk7XFxuICAgIH1cXG4gIH1cXG5cIl0sbnx8KG49ZS5zbGljZSgwKSksT2JqZWN0LmZyZWV6ZShPYmplY3QuZGVmaW5lUHJvcGVydGllcyhlLHtyYXc6e3ZhbHVlOk9iamVjdC5mcmVlemUobil9fSkpKTtyZXR1cm4gb3Q9ZnVuY3Rpb24oKXtyZXR1cm4gdH0sdH1mdW5jdGlvbiBvcigpe3JldHVybigwLHkuanN4cykoeS5GcmFnbWVudCx7Y2hpbGRyZW46WygwLHkuanN4KShcImRpdlwiLHtcImRhdGEtbmV4dGpzLWRldnRvb2xzLXBhbmVsLXRhYi1pc3N1ZXMtc2lkZWJhci1mcmFtZS1za2VsZXRvbi1iYXJcIjpcIjFcIn0pLCgwLHkuanN4KShcImRpdlwiLHtcImRhdGEtbmV4dGpzLWRldnRvb2xzLXBhbmVsLXRhYi1pc3N1ZXMtc2lkZWJhci1mcmFtZS1za2VsZXRvbi1iYXJcIjpcIjJcIn0pXX0pfXZhciBvbz1laShvdCgpKTtmdW5jdGlvbiBvYSgpe3ZhciBlLG4sdD0oZT1bXCJcXG4gIFtkYXRhLW5leHRqcy1kZXZ0b29scy1wYW5lbC10YWItaXNzdWVzLXNpZGViYXJdIHtcXG4gICAgZGlzcGxheTogZmxleDtcXG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcXG4gICAgZ2FwOiA0cHg7XFxuICAgIHBhZGRpbmc6IDhweDtcXG4gICAgYm9yZGVyLXJpZ2h0OiAxcHggc29saWQgdmFyKC0tY29sb3ItZ3JheS00MDApO1xcbiAgICBvdmVyZmxvdy15OiBhdXRvO1xcbiAgICBtaW4taGVpZ2h0OiAwO1xcblxcbiAgICBAbWVkaWEgKG1heC13aWR0aDogNTc1cHgpIHtcXG4gICAgICBtYXgtd2lkdGg6IDExMnB4O1xcbiAgICB9XFxuXFxuICAgIEBtZWRpYSAobWluLXdpZHRoOiA1NzZweCkge1xcbiAgICAgIG1heC13aWR0aDogMTM4cHg7XFxuICAgICAgd2lkdGg6IDEwMCU7XFxuICAgIH1cXG5cXG4gICAgQG1lZGlhIChtaW4td2lkdGg6IDc2OHB4KSB7XFxuICAgICAgbWF4LXdpZHRoOiAxNzIuNXB4O1xcbiAgICAgIHdpZHRoOiAxMDAlO1xcbiAgICB9XFxuXFxuICAgIEBtZWRpYSAobWluLXdpZHRoOiA5OTJweCkge1xcbiAgICAgIG1heC13aWR0aDogMjMwcHg7XFxuICAgICAgd2lkdGg6IDEwMCU7XFxuICAgIH1cXG4gIH1cXG5cXG4gIFtkYXRhLW5leHRqcy1kZXZ0b29scy1wYW5lbC10YWItaXNzdWVzLXNpZGViYXItZnJhbWVdIHtcXG4gICAgZGlzcGxheTogZmxleDtcXG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcXG4gICAgcGFkZGluZzogMTBweCA4cHg7XFxuICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLXJvdW5kZWQtbGcpO1xcbiAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIDAuMnMgZWFzZS1pbi1vdXQ7XFxuXFxuICAgICY6aG92ZXIge1xcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNvbG9yLWdyYXktMjAwKTtcXG4gICAgfVxcblxcbiAgICAmOmFjdGl2ZSB7XFxuICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY29sb3ItZ3JheS0zMDApO1xcbiAgICB9XFxuICB9XFxuXFxuICBbZGF0YS1uZXh0anMtZGV2dG9vbHMtcGFuZWwtdGFiLWlzc3Vlcy1zaWRlYmFyLWZyYW1lLWFjdGl2ZT0ndHJ1ZSddIHtcXG4gICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY29sb3ItZ3JheS0xMDApO1xcbiAgfVxcblxcbiAgW2RhdGEtbmV4dGpzLWRldnRvb2xzLXBhbmVsLXRhYi1pc3N1ZXMtc2lkZWJhci1mcmFtZS1lcnJvci10eXBlXSB7XFxuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcXG4gICAgYWxpZ24tc2VsZjogZmxleC1zdGFydDtcXG4gICAgY29sb3I6IHZhcigtLWNvbG9yLWdyYXktMTAwMCk7XFxuICAgIGZvbnQtc2l6ZTogdmFyKC0tc2l6ZS0xNCk7XFxuICAgIGZvbnQtd2VpZ2h0OiA1MDA7XFxuICAgIGxpbmUtaGVpZ2h0OiB2YXIoLS1zaXplLTIwKTtcXG4gIH1cXG5cXG4gIFtkYXRhLW5leHRqcy1kZXZ0b29scy1wYW5lbC10YWItaXNzdWVzLXNpZGViYXItZnJhbWUtc291cmNlXSB7XFxuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcXG4gICAgYWxpZ24tc2VsZjogZmxleC1zdGFydDtcXG4gICAgY29sb3I6IHZhcigtLWNvbG9yLWdyYXktOTAwKTtcXG4gICAgZm9udC1zaXplOiB2YXIoLS1zaXplLTEzKTtcXG4gICAgbGluZS1oZWlnaHQ6IHZhcigtLXNpemUtMTgpO1xcbiAgfVxcblxcbiAgLyogRWxsaXBzaXMgZm9yIGxvbmcgc3RhY2sgZnJhbWUgc291cmNlIG9yIHNtYWxsIGRldmljZXMuICovXFxuICBbZGF0YS1uZXh0anMtZGV2dG9vbHMtcGFuZWwtdGFiLWlzc3Vlcy1zaWRlYmFyLWZyYW1lLWVycm9yLXR5cGVdLFxcbiAgW2RhdGEtbmV4dGpzLWRldnRvb2xzLXBhbmVsLXRhYi1pc3N1ZXMtc2lkZWJhci1mcmFtZS1zb3VyY2VdIHtcXG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcXG4gICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XFxuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XFxuICAgIG1heC13aWR0aDogMTAwJTtcXG4gIH1cXG5cIl0sbnx8KG49ZS5zbGljZSgwKSksT2JqZWN0LmZyZWV6ZShPYmplY3QuZGVmaW5lUHJvcGVydGllcyhlLHtyYXc6e3ZhbHVlOk9iamVjdC5mcmVlemUobil9fSkpKTtyZXR1cm4gb2E9ZnVuY3Rpb24oKXtyZXR1cm4gdH0sdH1mdW5jdGlvbiBvaShlKXt2YXIgbj1lLnJ1bnRpbWVFcnJvcnMsdD1lLmFjdGl2ZUlkeCxyPWUuc2V0QWN0aXZlSW5kZXg7cmV0dXJuIDA9PT1uLmxlbmd0aD9udWxsOigwLHkuanN4KShcImFzaWRlXCIse1wiZGF0YS1uZXh0anMtZGV2dG9vbHMtcGFuZWwtdGFiLWlzc3Vlcy1zaWRlYmFyXCI6ITAsY2hpbGRyZW46bi5tYXAoZnVuY3Rpb24oZSxuKXt2YXIgbz1uPT09dDtyZXR1cm4oMCx5LmpzeCkob3Mse3J1bnRpbWVFcnJvcjplLGlkeDpuLGlzQWN0aXZlOm8sc2V0QWN0aXZlSW5kZXg6cn0sbil9KX0pfXZhciBvbD0oMCx4Lm1lbW8pKGZ1bmN0aW9uKGUpe3ZhciBuPWUucnVudGltZUVycm9yLHQ9dGoobikscj0oMCx4LnVzZU1lbW8pKGZ1bmN0aW9uKCl7dmFyIGUsbj10LmZpbmRJbmRleChmdW5jdGlvbihlKXtyZXR1cm4hZS5pZ25vcmVkJiYhIWUub3JpZ2luYWxDb2RlRnJhbWUmJiEhZS5vcmlnaW5hbFN0YWNrRnJhbWV9KTtyZXR1cm4gbnVsbCE9KGU9dFtuXSk/ZTpudWxsfSxbdF0pO2lmKCEobnVsbD09cj92b2lkIDA6ci5vcmlnaW5hbFN0YWNrRnJhbWUpKXJldHVybiBudWxsO3ZhciBvPXR6KG4uZXJyb3Isbi50eXBlKSxhPWVTKHIub3JpZ2luYWxTdGFja0ZyYW1lKTtyZXR1cm4oMCx5LmpzeHMpKHkuRnJhZ21lbnQse2NoaWxkcmVuOlsoMCx5LmpzeCkoXCJzcGFuXCIse1wiZGF0YS1uZXh0anMtZGV2dG9vbHMtcGFuZWwtdGFiLWlzc3Vlcy1zaWRlYmFyLWZyYW1lLWVycm9yLXR5cGVcIjohMCxjaGlsZHJlbjpvfSksKDAseS5qc3gpKFwic3BhblwiLHtcImRhdGEtbmV4dGpzLWRldnRvb2xzLXBhbmVsLXRhYi1pc3N1ZXMtc2lkZWJhci1mcmFtZS1zb3VyY2VcIjohMCxjaGlsZHJlbjphfSldfSl9KSxvcz0oMCx4Lm1lbW8pKGZ1bmN0aW9uKGUpe3ZhciBuPWUucnVudGltZUVycm9yLHQ9ZS5pZHgscj1lLmlzQWN0aXZlLG89ZS5zZXRBY3RpdmVJbmRleDtyZXR1cm4oMCx5LmpzeCkoXCJidXR0b25cIix7XCJkYXRhLW5leHRqcy1kZXZ0b29scy1wYW5lbC10YWItaXNzdWVzLXNpZGViYXItZnJhbWVcIjohMCxcImRhdGEtbmV4dGpzLWRldnRvb2xzLXBhbmVsLXRhYi1pc3N1ZXMtc2lkZWJhci1mcmFtZS1hY3RpdmVcIjpyLG9uQ2xpY2s6ZnVuY3Rpb24oKXtyZXR1cm4gbyh0KX0sY2hpbGRyZW46KDAseS5qc3gpKHguU3VzcGVuc2Use2ZhbGxiYWNrOigwLHkuanN4KShvcix7fSksY2hpbGRyZW46KDAseS5qc3gpKG9sLHtydW50aW1lRXJyb3I6bn0pfSl9KX0pLG9jPWVpKG9hKCkpO2Z1bmN0aW9uIG91KCl7dmFyIGUsbix0PShlPVtcIlxcbiAgW2RhdGEtbmV4dGpzLWNvZGVmcmFtZS1za2VsZXRvbl0ge1xcbiAgICBtYXJnaW46IDhweCAwO1xcbiAgICBib3JkZXItcmFkaXVzOiA4cHg7XFxuICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNvbG9yLWJhY2tncm91bmQtMjAwKTtcXG4gICAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tY29sb3ItZ3JheS00MDApO1xcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xcbiAgfVxcblxcbiAgW2RhdGEtbmV4dGpzLWNvZGVmcmFtZS1za2VsZXRvbi1oZWFkZXJdIHtcXG4gICAgZGlzcGxheTogZmxleDtcXG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcXG4gICAgcGFkZGluZzogMTJweDtcXG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHZhcigtLWNvbG9yLWdyYXktNDAwKTtcXG4gICAgYm9yZGVyLXJhZGl1czogOHB4IDhweCAwIDA7XFxuICAgIGdhcDogNnB4O1xcbiAgfVxcblxcbiAgW2RhdGEtbmV4dGpzLWNvZGVmcmFtZS1za2VsZXRvbi1pY29uXSB7XFxuICAgIHdpZHRoOiB2YXIoLS1zaXplLTE2KTtcXG4gICAgaGVpZ2h0OiB2YXIoLS1zaXplLTE2KTtcXG4gICAgYm9yZGVyLXJhZGl1czogNHB4O1xcbiAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoXFxuICAgICAgOTBkZWcsXFxuICAgICAgdmFyKC0tY29sb3ItZ3JheS0yMDApIDI1JSxcXG4gICAgICB2YXIoLS1jb2xvci1ncmF5LTEwMCkgNTAlLFxcbiAgICAgIHZhcigtLWNvbG9yLWdyYXktMjAwKSA3NSVcXG4gICAgKTtcXG4gICAgYmFja2dyb3VuZC1zaXplOiAyMDAlIDEwMCU7XFxuICAgIGFuaW1hdGlvbjogc2tlbGV0b24tc2hpbW1lciAxLjVzIGVhc2UtaW4tb3V0IGluZmluaXRlO1xcbiAgICBmbGV4LXNocmluazogMDtcXG4gIH1cXG5cXG4gIFtkYXRhLW5leHRqcy1jb2RlZnJhbWUtc2tlbGV0b24taGVhZGVyLWJhcl0ge1xcbiAgICB3aWR0aDogNDIuOSU7XFxuICB9XFxuXFxuICBbZGF0YS1uZXh0anMtY29kZWZyYW1lLXNrZWxldG9uLWJ1dHRvbl0ge1xcbiAgICB3aWR0aDogdmFyKC0tc2l6ZS0xNik7XFxuICAgIGhlaWdodDogdmFyKC0tc2l6ZS0xNik7XFxuICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLXJvdW5kZWQtZnVsbCk7XFxuICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudChcXG4gICAgICA5MGRlZyxcXG4gICAgICB2YXIoLS1jb2xvci1ncmF5LTIwMCkgMjUlLFxcbiAgICAgIHZhcigtLWNvbG9yLWdyYXktMTAwKSA1MCUsXFxuICAgICAgdmFyKC0tY29sb3ItZ3JheS0yMDApIDc1JVxcbiAgICApO1xcbiAgICBiYWNrZ3JvdW5kLXNpemU6IDIwMCUgMTAwJTtcXG4gICAgYW5pbWF0aW9uOiBza2VsZXRvbi1zaGltbWVyIDEuNXMgZWFzZS1pbi1vdXQgaW5maW5pdGU7XFxuICAgIGZsZXgtc2hyaW5rOiAwO1xcbiAgfVxcblxcbiAgW2RhdGEtbmV4dGpzLWNvZGVmcmFtZS1za2VsZXRvbi1jb250ZW50XSB7XFxuICAgIHBhZGRpbmc6IDEycHg7XFxuICB9XFxuXFxuICBbZGF0YS1uZXh0anMtY29kZWZyYW1lLXNrZWxldG9uLWxpbmVdIHtcXG4gICAgaGVpZ2h0OiB2YXIoLS1zaXplLTE2KTtcXG4gICAgYm9yZGVyLXJhZGl1czogMTAwcHg7XFxuICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudChcXG4gICAgICA5MGRlZyxcXG4gICAgICB2YXIoLS1jb2xvci1ncmF5LTIwMCkgMjUlLFxcbiAgICAgIHZhcigtLWNvbG9yLWdyYXktMTAwKSA1MCUsXFxuICAgICAgdmFyKC0tY29sb3ItZ3JheS0yMDApIDc1JVxcbiAgICApO1xcbiAgICBiYWNrZ3JvdW5kLXNpemU6IDIwMCUgMTAwJTtcXG4gICAgYW5pbWF0aW9uOiBza2VsZXRvbi1zaGltbWVyIDEuNXMgZWFzZS1pbi1vdXQgaW5maW5pdGU7XFxuICAgIG1hcmdpbi1ib3R0b206IDhweDtcXG4gIH1cXG5cXG4gIFtkYXRhLW5leHRqcy1jb2RlZnJhbWUtc2tlbGV0b24tbGluZV06bGFzdC1jaGlsZCB7XFxuICAgIG1hcmdpbi1ib3R0b206IDA7XFxuICB9XFxuXFxuICBbZGF0YS1uZXh0anMtY29kZWZyYW1lLXNrZWxldG9uLWxpbmUtMV0ge1xcbiAgICB3aWR0aDogMzIuNSU7XFxuICB9XFxuXFxuICBbZGF0YS1uZXh0anMtY29kZWZyYW1lLXNrZWxldG9uLWxpbmUtMl0ge1xcbiAgICB3aWR0aDogNTYuOCU7XFxuICB9XFxuXFxuICBbZGF0YS1uZXh0anMtY29kZWZyYW1lLXNrZWxldG9uLWxpbmUtM10ge1xcbiAgICB3aWR0aDogMjkuNiU7XFxuICB9XFxuXFxuICBbZGF0YS1uZXh0anMtY2FsbC1zdGFjay1jb250YWluZXJdIHtcXG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xcbiAgICBtYXJnaW4tdG9wOiA4cHg7XFxuICB9XFxuXFxuICBbZGF0YS1uZXh0anMtY2FsbC1zdGFjay1jb3VudC1za2VsZXRvbl0ge1xcbiAgICBkaXNwbGF5OiBmbGV4O1xcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcXG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcXG4gICAgd2lkdGg6IHZhcigtLXNpemUtMjApO1xcbiAgICBoZWlnaHQ6IHZhcigtLXNpemUtMjApO1xcbiAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1yb3VuZGVkLWZ1bGwpO1xcbiAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoXFxuICAgICAgOTBkZWcsXFxuICAgICAgdmFyKC0tY29sb3ItZ3JheS0yMDApIDI1JSxcXG4gICAgICB2YXIoLS1jb2xvci1ncmF5LTEwMCkgNTAlLFxcbiAgICAgIHZhcigtLWNvbG9yLWdyYXktMjAwKSA3NSVcXG4gICAgKTtcXG4gICAgYmFja2dyb3VuZC1zaXplOiAyMDAlIDEwMCU7XFxuICAgIGFuaW1hdGlvbjogc2tlbGV0b24tc2hpbW1lciAxLjVzIGVhc2UtaW4tb3V0IGluZmluaXRlO1xcbiAgfVxcblxcbiAgW2RhdGEtbmV4dGpzLWNhbGwtc3RhY2staWdub3JlZC1saXN0LXRvZ2dsZS1idXR0b24tc2tlbGV0b25dIHtcXG4gICAgYWxsOiB1bnNldDtcXG4gICAgZGlzcGxheTogZmxleDtcXG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcXG4gICAgYm9yZGVyLXJhZGl1czogNnB4O1xcbiAgICBwYWRkaW5nOiA0cHggNnB4O1xcbiAgICBtYXJnaW4tcmlnaHQ6IC02cHg7XFxuICB9XFxuXFxuICBbZGF0YS1uZXh0anMtY2FsbC1zdGFjay1za2VsZXRvbi1iYXJdIHtcXG4gICAgaGVpZ2h0OiB2YXIoLS1zaXplLTEyKTtcXG4gICAgd2lkdGg6IDE0OHB4O1xcbiAgICBib3JkZXItcmFkaXVzOiAxMDBweDtcXG4gICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KFxcbiAgICAgIDkwZGVnLFxcbiAgICAgIHZhcigtLWNvbG9yLWdyYXktMjAwKSAyNSUsXFxuICAgICAgdmFyKC0tY29sb3ItZ3JheS0xMDApIDUwJSxcXG4gICAgICB2YXIoLS1jb2xvci1ncmF5LTIwMCkgNzUlXFxuICAgICk7XFxuICAgIGJhY2tncm91bmQtc2l6ZTogMjAwJSAxMDAlO1xcbiAgICBhbmltYXRpb246IHNrZWxldG9uLXNoaW1tZXIgMS41cyBlYXNlLWluLW91dCBpbmZpbml0ZTtcXG4gIH1cXG5cXG4gIEBrZXlmcmFtZXMgc2tlbGV0b24tc2hpbW1lciB7XFxuICAgIDAlIHtcXG4gICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMjAwJSAwO1xcbiAgICB9XFxuICAgIDEwMCUge1xcbiAgICAgIGJhY2tncm91bmQtcG9zaXRpb246IDIwMCUgMDtcXG4gICAgfVxcbiAgfVxcblxcbiAgLyogUmVzcGVjdCB1c2VyJ3MgbW90aW9uIHByZWZlcmVuY2VzICovXFxuICBAbWVkaWEgKHByZWZlcnMtcmVkdWNlZC1tb3Rpb246IHJlZHVjZSkge1xcbiAgICBbZGF0YS1uZXh0anMtY29kZWZyYW1lLXNrZWxldG9uLWljb25dLFxcbiAgICBbZGF0YS1uZXh0anMtY29kZWZyYW1lLXNrZWxldG9uLWhlYWRlci1iYXJdLFxcbiAgICBbZGF0YS1uZXh0anMtY29kZWZyYW1lLXNrZWxldG9uLWJ1dHRvbl0sXFxuICAgIFtkYXRhLW5leHRqcy1jb2RlZnJhbWUtc2tlbGV0b24tbGluZV0sXFxuICAgIFtkYXRhLW5leHRqcy1jYWxsLXN0YWNrLWNvdW50LXNrZWxldG9uXSxcXG4gICAgW2RhdGEtbmV4dGpzLWNhbGwtc3RhY2stc2tlbGV0b24tYmFyXSB7XFxuICAgICAgYW5pbWF0aW9uOiBub25lO1xcbiAgICAgIGJhY2tncm91bmQ6IHZhcigtLWNvbG9yLWdyYXktMjAwKTtcXG4gICAgfVxcbiAgfVxcblwiXSxufHwobj1lLnNsaWNlKDApKSxPYmplY3QuZnJlZXplKE9iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKGUse3Jhdzp7dmFsdWU6T2JqZWN0LmZyZWV6ZShuKX19KSkpO3JldHVybiBvdT1mdW5jdGlvbigpe3JldHVybiB0fSx0fWZ1bmN0aW9uIG9kKCl7cmV0dXJuKDAseS5qc3hzKSh5LkZyYWdtZW50LHtjaGlsZHJlbjpbKDAseS5qc3hzKShcImRpdlwiLHtcImRhdGEtbmV4dGpzLWNvZGVmcmFtZS1za2VsZXRvblwiOiEwLGNoaWxkcmVuOlsoMCx5LmpzeHMpKFwiZGl2XCIse1wiZGF0YS1uZXh0anMtY29kZWZyYW1lLXNrZWxldG9uLWhlYWRlclwiOiEwLGNoaWxkcmVuOlsoMCx5LmpzeCkoXCJkaXZcIix7XCJkYXRhLW5leHRqcy1jb2RlZnJhbWUtc2tlbGV0b24taWNvblwiOiEwfSksKDAseS5qc3gpKFwiZGl2XCIse1wiZGF0YS1uZXh0anMtY29kZWZyYW1lLXNrZWxldG9uLWxpbmVcIjohMCxcImRhdGEtbmV4dGpzLWNvZGVmcmFtZS1za2VsZXRvbi1oZWFkZXItYmFyXCI6ITB9KV19KSwoMCx5LmpzeHMpKFwiZGl2XCIse1wiZGF0YS1uZXh0anMtY29kZWZyYW1lLXNrZWxldG9uLWNvbnRlbnRcIjohMCxjaGlsZHJlbjpbKDAseS5qc3gpKFwiZGl2XCIse1wiZGF0YS1uZXh0anMtY29kZWZyYW1lLXNrZWxldG9uLWxpbmVcIjohMCxcImRhdGEtbmV4dGpzLWNvZGVmcmFtZS1za2VsZXRvbi1saW5lLTFcIjohMH0pLCgwLHkuanN4KShcImRpdlwiLHtcImRhdGEtbmV4dGpzLWNvZGVmcmFtZS1za2VsZXRvbi1saW5lXCI6ITAsXCJkYXRhLW5leHRqcy1jb2RlZnJhbWUtc2tlbGV0b24tbGluZS0yXCI6ITB9KSwoMCx5LmpzeCkoXCJkaXZcIix7XCJkYXRhLW5leHRqcy1jb2RlZnJhbWUtc2tlbGV0b24tbGluZVwiOiEwLFwiZGF0YS1uZXh0anMtY29kZWZyYW1lLXNrZWxldG9uLWxpbmUtM1wiOiEwfSldfSldfSksKDAseS5qc3gpKFwiZGl2XCIse1wiZGF0YS1uZXh0anMtY2FsbC1zdGFjay1jb250YWluZXJcIjohMCxjaGlsZHJlbjooMCx5LmpzeHMpKFwiZGl2XCIse1wiZGF0YS1uZXh0anMtY2FsbC1zdGFjay1oZWFkZXJcIjohMCxjaGlsZHJlbjpbKDAseS5qc3hzKShcInBcIix7XCJkYXRhLW5leHRqcy1jYWxsLXN0YWNrLXRpdGxlXCI6ITAsY2hpbGRyZW46W1wiQ2FsbCBTdGFja1wiLFwiIFwiLCgwLHkuanN4KShcInNwYW5cIix7XCJkYXRhLW5leHRqcy1jYWxsLXN0YWNrLWNvdW50XCI6ITAsXCJkYXRhLW5leHRqcy1jYWxsLXN0YWNrLWNvdW50LXNrZWxldG9uXCI6ITB9KV19KSwoMCx5LmpzeCkoXCJidXR0b25cIix7XCJkYXRhLW5leHRqcy1jYWxsLXN0YWNrLWlnbm9yZWQtbGlzdC10b2dnbGUtYnV0dG9uXCI6ITAsXCJkYXRhLW5leHRqcy1jYWxsLXN0YWNrLWlnbm9yZWQtbGlzdC10b2dnbGUtYnV0dG9uLXNrZWxldG9uXCI6ITAsXCJhcmlhLWhpZGRlblwiOlwidHJ1ZVwiLGNoaWxkcmVuOigwLHkuanN4KShcImRpdlwiLHtcImRhdGEtbmV4dGpzLWNhbGwtc3RhY2stc2tlbGV0b24tYmFyXCI6ITB9KX0pXX0pfSldfSl9dmFyIG9mPWVpKG91KCkpO2Z1bmN0aW9uIG9wKGUsbil7KG51bGw9PW58fG4+ZS5sZW5ndGgpJiYobj1lLmxlbmd0aCk7Zm9yKHZhciB0PTAscj1BcnJheShuKTt0PG47dCsrKXJbdF09ZVt0XTtyZXR1cm4gcn1mdW5jdGlvbiBvaChlLG4sdCxyLG8sYSxpKXt0cnl7dmFyIGw9ZVthXShpKSxzPWwudmFsdWV9Y2F0Y2goZSl7dChlKTtyZXR1cm59bC5kb25lP24ocyk6UHJvbWlzZS5yZXNvbHZlKHMpLnRoZW4ocixvKX1mdW5jdGlvbiBvZyhlLG4sdCl7cmV0dXJuIG4gaW4gZT9PYmplY3QuZGVmaW5lUHJvcGVydHkoZSxuLHt2YWx1ZTp0LGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwfSk6ZVtuXT10LGV9ZnVuY3Rpb24gb20oKXt2YXIgZSxuLHQ9KGU9W1wiXFxuICBbZGF0YS1uZXh0anMtaXNzdWUtZmVlZGJhY2stYnV0dG9uLWdyb3VwXSB7XFxuICAgIGRpc3BsYXk6IGZsZXg7XFxuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XFxuICAgIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWNvbG9yLWdyYXktNDAwKTtcXG4gICAgYm9yZGVyLXJhZGl1czogdmFyKC0tcm91bmRlZC1mdWxsKTtcXG4gICAgYmFja2dyb3VuZDogdmFyKC0tY29sb3ItYmFja2dyb3VuZC0xMDApO1xcbiAgICBib3gtc2hhZG93OiB2YXIoLS1zaGFkb3ctc21hbGwpO1xcbiAgfVxcblxcbiAgW2RhdGEtbmV4dGpzLWlzc3VlLWZlZWRiYWNrLWJ1dHRvbi1ncm91cF0gYnV0dG9uIHtcXG4gICAgaGVpZ2h0OiAxMDAlO1xcbiAgICBkaXNwbGF5OiBmbGV4O1xcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcXG4gIH1cXG5cXG4gIFtkYXRhLW5leHRqcy1pc3N1ZS1mZWVkYmFjay1idXR0b24tZ3JvdXBdIGJ1dHRvbjpmaXJzdC1jaGlsZCB7XFxuICAgIHBhZGRpbmc6IDRweCAzcHggNHB4IDVweDtcXG4gICAgYm9yZGVyLXJhZGl1czogdmFyKC0tcm91bmRlZC1mdWxsKSAwIDAgdmFyKC0tcm91bmRlZC1mdWxsKTtcXG4gIH1cXG5cXG4gIFtkYXRhLW5leHRqcy1pc3N1ZS1mZWVkYmFjay1idXR0b24tZ3JvdXBdIGJ1dHRvbjpsYXN0LWNoaWxkIHtcXG4gICAgcGFkZGluZzogNHB4IDVweCA0cHggM3B4O1xcbiAgICBib3JkZXItcmFkaXVzOiAwIHZhcigtLXJvdW5kZWQtZnVsbCkgdmFyKC0tcm91bmRlZC1mdWxsKSAwO1xcbiAgfVxcblxcbiAgW2RhdGEtbmV4dGpzLWlzc3VlLWZlZWRiYWNrLXNlcGFyYXRvcl0ge1xcbiAgICB3aWR0aDogMXB4O1xcbiAgICBoZWlnaHQ6IDEwMCU7XFxuICAgIGJhY2tncm91bmQ6IHZhcigtLWNvbG9yLWdyYXktNDAwKTtcXG4gIH1cXG5cIl0sbnx8KG49ZS5zbGljZSgwKSksT2JqZWN0LmZyZWV6ZShPYmplY3QuZGVmaW5lUHJvcGVydGllcyhlLHtyYXc6e3ZhbHVlOk9iamVjdC5mcmVlemUobil9fSkpKTtyZXR1cm4gb209ZnVuY3Rpb24oKXtyZXR1cm4gdH0sdH1mdW5jdGlvbiBvdihlKXt2YXIgbix0LHI9ZS5lcnJvckNvZGUsbz0obj0oMCx4LnVzZVN0YXRlKSh7fSksdD0yLGZ1bmN0aW9uKGUpe2lmKEFycmF5LmlzQXJyYXkoZSkpcmV0dXJuIGV9KG4pfHxmdW5jdGlvbihlLG4pe3ZhciB0LHIsbz1udWxsPT1lP251bGw6XCJ1bmRlZmluZWRcIiE9dHlwZW9mIFN5bWJvbCYmZVtTeW1ib2wuaXRlcmF0b3JdfHxlW1wiQEBpdGVyYXRvclwiXTtpZihudWxsIT1vKXt2YXIgYT1bXSxpPSEwLGw9ITE7dHJ5e2ZvcihvPW8uY2FsbChlKTshKGk9KHQ9by5uZXh0KCkpLmRvbmUpJiYoYS5wdXNoKHQudmFsdWUpLGEubGVuZ3RoIT09bik7aT0hMCk7fWNhdGNoKGUpe2w9ITAscj1lfWZpbmFsbHl7dHJ5e2l8fG51bGw9PW8ucmV0dXJufHxvLnJldHVybigpfWZpbmFsbHl7aWYobCl0aHJvdyByfX1yZXR1cm4gYX19KG4sMil8fGZ1bmN0aW9uKGUsbil7aWYoZSl7aWYoXCJzdHJpbmdcIj09dHlwZW9mIGUpcmV0dXJuIG9wKGUsbik7dmFyIHQ9T2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKGUpLnNsaWNlKDgsLTEpO2lmKFwiT2JqZWN0XCI9PT10JiZlLmNvbnN0cnVjdG9yJiYodD1lLmNvbnN0cnVjdG9yLm5hbWUpLFwiTWFwXCI9PT10fHxcIlNldFwiPT09dClyZXR1cm4gQXJyYXkuZnJvbSh0KTtpZihcIkFyZ3VtZW50c1wiPT09dHx8L14oPzpVaXxJKW50KD86OHwxNnwzMikoPzpDbGFtcGVkKT9BcnJheSQvLnRlc3QodCkpcmV0dXJuIG9wKGUsbil9fShuLHQpfHxmdW5jdGlvbigpe3Rocm93IFR5cGVFcnJvcihcIkludmFsaWQgYXR0ZW1wdCB0byBkZXN0cnVjdHVyZSBub24taXRlcmFibGUgaW5zdGFuY2UuXFxcXG5JbiBvcmRlciB0byBiZSBpdGVyYWJsZSwgbm9uLWFycmF5IG9iamVjdHMgbXVzdCBoYXZlIGEgW1N5bWJvbC5pdGVyYXRvcl0oKSBtZXRob2QuXCIpfSgpKSxhPW9bMF0saT1vWzFdLGw9YVtyXSxzPXByb2Nlc3MuZW52Ll9fTkVYVF9URUxFTUVUUllfRElTQUJMRUQsYz0oMCx4LnVzZUNhbGxiYWNrKShmdW5jdGlvbihlKXt2YXIgbjtyZXR1cm4obj1mdW5jdGlvbigpe3JldHVybiBmdW5jdGlvbihlLG4pe3ZhciB0LHIsbyxhPXtsYWJlbDowLHNlbnQ6ZnVuY3Rpb24oKXtpZigxJm9bMF0pdGhyb3cgb1sxXTtyZXR1cm4gb1sxXX0sdHJ5czpbXSxvcHM6W119LGk9T2JqZWN0LmNyZWF0ZSgoXCJmdW5jdGlvblwiPT10eXBlb2YgSXRlcmF0b3I/SXRlcmF0b3I6T2JqZWN0KS5wcm90b3R5cGUpO3JldHVybiBpLm5leHQ9bCgwKSxpLnRocm93PWwoMSksaS5yZXR1cm49bCgyKSxcImZ1bmN0aW9uXCI9PXR5cGVvZiBTeW1ib2wmJihpW1N5bWJvbC5pdGVyYXRvcl09ZnVuY3Rpb24oKXtyZXR1cm4gdGhpc30pLGk7ZnVuY3Rpb24gbChsKXtyZXR1cm4gZnVuY3Rpb24ocyl7dmFyIGM9W2wsc107aWYodCl0aHJvdyBUeXBlRXJyb3IoXCJHZW5lcmF0b3IgaXMgYWxyZWFkeSBleGVjdXRpbmcuXCIpO2Zvcig7aSYmKGk9MCxjWzBdJiYoYT0wKSksYTspdHJ5e2lmKHQ9MSxyJiYobz0yJmNbMF0/ci5yZXR1cm46Y1swXT9yLnRocm93fHwoKG89ci5yZXR1cm4pJiZvLmNhbGwociksMCk6ci5uZXh0KSYmIShvPW8uY2FsbChyLGNbMV0pKS5kb25lKXJldHVybiBvO3N3aXRjaChyPTAsbyYmKGM9WzImY1swXSxvLnZhbHVlXSksY1swXSl7Y2FzZSAwOmNhc2UgMTpvPWM7YnJlYWs7Y2FzZSA0OnJldHVybiBhLmxhYmVsKysse3ZhbHVlOmNbMV0sZG9uZTohMX07Y2FzZSA1OmEubGFiZWwrKyxyPWNbMV0sYz1bMF07Y29udGludWU7Y2FzZSA3OmM9YS5vcHMucG9wKCksYS50cnlzLnBvcCgpO2NvbnRpbnVlO2RlZmF1bHQ6aWYoIShvPShvPWEudHJ5cykubGVuZ3RoPjAmJm9bby5sZW5ndGgtMV0pJiYoNj09PWNbMF18fDI9PT1jWzBdKSl7YT0wO2NvbnRpbnVlfWlmKDM9PT1jWzBdJiYoIW98fGNbMV0+b1swXSYmY1sxXTxvWzNdKSl7YS5sYWJlbD1jWzFdO2JyZWFrfWlmKDY9PT1jWzBdJiZhLmxhYmVsPG9bMV0pe2EubGFiZWw9b1sxXSxvPWM7YnJlYWt9aWYobyYmYS5sYWJlbDxvWzJdKXthLmxhYmVsPW9bMl0sYS5vcHMucHVzaChjKTticmVha31vWzJdJiZhLm9wcy5wb3AoKSxhLnRyeXMucG9wKCk7Y29udGludWV9Yz1uLmNhbGwoZSxhKX1jYXRjaChlKXtjPVs2LGVdLHI9MH1maW5hbGx5e3Q9bz0wfWlmKDUmY1swXSl0aHJvdyBjWzFdO3JldHVybnt2YWx1ZTpjWzBdP2NbMV06dm9pZCAwLGRvbmU6ITB9fX19KHRoaXMsZnVuY3Rpb24obil7c3dpdGNoKG4ubGFiZWwpe2Nhc2UgMDppKGZ1bmN0aW9uKG4pe3ZhciB0LG87cmV0dXJuIHQ9ZnVuY3Rpb24oZSl7Zm9yKHZhciBuPTE7bjxhcmd1bWVudHMubGVuZ3RoO24rKyl7dmFyIHQ9bnVsbCE9YXJndW1lbnRzW25dP2FyZ3VtZW50c1tuXTp7fSxyPU9iamVjdC5rZXlzKHQpO1wiZnVuY3Rpb25cIj09dHlwZW9mIE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMmJihyPXIuY29uY2F0KE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHModCkuZmlsdGVyKGZ1bmN0aW9uKGUpe3JldHVybiBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHQsZSkuZW51bWVyYWJsZX0pKSksci5mb3JFYWNoKGZ1bmN0aW9uKG4pe29nKGUsbix0W25dKX0pfXJldHVybiBlfSh7fSxuKSxvPW51bGwhPShvPW9nKHt9LHIsZSkpP286e30sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcnM/T2JqZWN0LmRlZmluZVByb3BlcnRpZXModCxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycyhvKSk6KGZ1bmN0aW9uKGUsbil7dmFyIHQ9T2JqZWN0LmtleXMoZSk7aWYoT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyl7dmFyIHI9T2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhlKTt0LnB1c2guYXBwbHkodCxyKX1yZXR1cm4gdH0pKE9iamVjdChvKSkuZm9yRWFjaChmdW5jdGlvbihlKXtPYmplY3QuZGVmaW5lUHJvcGVydHkodCxlLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IobyxlKSl9KSx0fSksbi5sYWJlbD0xO2Nhc2UgMTpyZXR1cm4gbi50cnlzLnB1c2goWzEsMywsNF0pLFs0LGZldGNoKFwiXCIuY29uY2F0KHByb2Nlc3MuZW52Ll9fTkVYVF9ST1VURVJfQkFTRVBBVEh8fFwiXCIsXCIvX19uZXh0anNfZXJyb3JfZmVlZGJhY2s/XCIpLmNvbmNhdChuZXcgVVJMU2VhcmNoUGFyYW1zKHtlcnJvckNvZGU6cix3YXNIZWxwZnVsOmUudG9TdHJpbmcoKX0pKSldO2Nhc2UgMjpyZXR1cm4gbi5zZW50KCkub2t8fGNvbnNvbGUuZXJyb3IoXCJGYWlsZWQgdG8gcmVjb3JkIGZlZWRiYWNrIG9uIHRoZSBzZXJ2ZXIuXCIpLFszLDRdO2Nhc2UgMzpyZXR1cm4gY29uc29sZS5lcnJvcihcIkZhaWxlZCB0byByZWNvcmQgZmVlZGJhY2s6XCIsbi5zZW50KCkpLFszLDRdO2Nhc2UgNDpyZXR1cm5bMl19fSl9LGZ1bmN0aW9uKCl7dmFyIGU9dGhpcyx0PWFyZ3VtZW50cztyZXR1cm4gbmV3IFByb21pc2UoZnVuY3Rpb24ocixvKXt2YXIgYT1uLmFwcGx5KGUsdCk7ZnVuY3Rpb24gaShlKXtvaChhLHIsbyxpLGwsXCJuZXh0XCIsZSl9ZnVuY3Rpb24gbChlKXtvaChhLHIsbyxpLGwsXCJ0aHJvd1wiLGUpfWkodm9pZCAwKX0pfSkoKX0sW3JdKTtyZXR1cm4oMCx5LmpzeHMpKFwiZGl2XCIse1wiZGF0YS1uZXh0anMtaXNzdWUtZmVlZGJhY2stYnV0dG9uLWdyb3VwXCI6ITAsY2hpbGRyZW46WygwLHkuanN4KShcImJ1dHRvblwiLHtcImFyaWEtZGlzYWJsZWRcIjpzP1widHJ1ZVwiOnZvaWQgMCxcImFyaWEtbGFiZWxcIjpcIk1hcmsgYXMgaGVscGZ1bFwiLG9uQ2xpY2s6cz92b2lkIDA6ZnVuY3Rpb24oKXtyZXR1cm4gYyghMCl9LGNsYXNzTmFtZTooMCxlSi5jeCkoXCJmZWVkYmFjay1idXR0b25cIiwhMD09PWwmJlwidm90ZWRcIiksdGl0bGU6cz9cIkZlZWRiYWNrIGRpc2FibGVkIGR1ZSB0byBzZXR0aW5nIE5FWFRfVEVMRU1FVFJZX0RJU0FCTEVEXCI6dm9pZCAwLHR5cGU6XCJidXR0b25cIixjaGlsZHJlbjooMCx5LmpzeCkobncse1wiYXJpYS1oaWRkZW5cIjpcInRydWVcIn0pfSksKDAseS5qc3gpKFwiZGl2XCIse1wiZGF0YS1uZXh0anMtaXNzdWUtZmVlZGJhY2stc2VwYXJhdG9yXCI6ITB9KSwoMCx5LmpzeCkoXCJidXR0b25cIix7XCJhcmlhLWRpc2FibGVkXCI6cz9cInRydWVcIjp2b2lkIDAsXCJhcmlhLWxhYmVsXCI6XCJNYXJrIGFzIG5vdCBoZWxwZnVsXCIsb25DbGljazpzP3ZvaWQgMDpmdW5jdGlvbigpe3JldHVybiBjKCExKX0sY2xhc3NOYW1lOigwLGVKLmN4KShcImZlZWRiYWNrLWJ1dHRvblwiLCExPT09bCYmXCJ2b3RlZFwiKSx0aXRsZTpzP1wiRmVlZGJhY2sgZGlzYWJsZWQgZHVlIHRvIHNldHRpbmcgTkVYVF9URUxFTUVUUllfRElTQUJMRURcIjp2b2lkIDAsdHlwZTpcImJ1dHRvblwiLGNoaWxkcmVuOigwLHkuanN4KShuaix7XCJhcmlhLWhpZGRlblwiOlwidHJ1ZVwiLHN0eWxlOnt0cmFuc2xhdGU6XCIxcHggMXB4XCJ9fSl9KV19KX12YXIgb2I9ZWkob20oKSk7ZnVuY3Rpb24gb3koKXt2YXIgZSxuLHQ9KGU9W1wiXFxuICBbZGF0YS1uZXh0anMtZGV2dG9vbHMtcGFuZWwtdGFiLWlzc3Vlcy1jb250ZW50LWxheW91dF0ge1xcbiAgICBmbGV4OiAxO1xcbiAgICBkaXNwbGF5OiBmbGV4O1xcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xcbiAgICBvdmVyZmxvdy15OiBhdXRvO1xcbiAgICBtaW4taGVpZ2h0OiAwO1xcbiAgICBwYWRkaW5nOiAxNHB4O1xcbiAgfVxcblwiXSxufHwobj1lLnNsaWNlKDApKSxPYmplY3QuZnJlZXplKE9iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKGUse3Jhdzp7dmFsdWU6T2JqZWN0LmZyZWV6ZShuKX19KSkpO3JldHVybiBveT1mdW5jdGlvbigpe3JldHVybiB0fSx0fWZ1bmN0aW9uIG94KGUpe3ZhciBuPWUuZXJyb3IsdD1lLmVycm9yVHlwZSxyPWUubWVzc2FnZSxvPWUuZGVidWdJbmZvLGE9ZS5jaGlsZHJlbixpPWUuZXJyb3JDb2RlLGw9ZS5lbnZpcm9ubWVudE5hbWU7cmV0dXJuKDAseS5qc3hzKShcImRpdlwiLHtcImRhdGEtbmV4dGpzLWRldnRvb2xzLXBhbmVsLXRhYi1pc3N1ZXMtY29udGVudC1sYXlvdXRcIjohMCxjaGlsZHJlbjpbKDAseS5qc3hzKShcImRpdlwiLHtjbGFzc05hbWU6XCJuZXh0anMtY29udGFpbmVyLWVycm9ycy1oZWFkZXJcIixjaGlsZHJlbjpbKDAseS5qc3hzKShcImRpdlwiLHtjbGFzc05hbWU6XCJuZXh0anNfX2NvbnRhaW5lcl9lcnJvcnNfX2Vycm9yX3RpdGxlXCIsXCJkYXRhLW5leHRqcy1lcnJvci1jb2RlXCI6aSxjaGlsZHJlbjpbKDAseS5qc3hzKShcInNwYW5cIix7XCJkYXRhLW5leHRqcy1lcnJvci1sYWJlbC1ncm91cFwiOiEwLGNoaWxkcmVuOlsoMCx5LmpzeCkobkwse2Vycm9yVHlwZTp0fSksbCYmKDAseS5qc3gpKG5LLHtlbnZpcm9ubWVudE5hbWU6bH0pXX0pLCgwLHkuanN4KShueCx7ZXJyb3I6bixkZWJ1Z0luZm86byxmZWVkYmFja0J1dHRvbjppJiYoMCx5LmpzeCkob3Yse2Vycm9yQ29kZTppfSl9KV19KSwoMCx5LmpzeCkobnose2Vycm9yTWVzc2FnZTpyfSldfSksYV19KX12YXIgb3c9ZWkob3koKSk7ZnVuY3Rpb24gb2ooZSl7dmFyIG4sdDtyZXR1cm4oMCx5LmpzeCkoXCJzdmdcIiwobj1mdW5jdGlvbihlKXtmb3IodmFyIG49MTtuPGFyZ3VtZW50cy5sZW5ndGg7bisrKXt2YXIgdD1udWxsIT1hcmd1bWVudHNbbl0/YXJndW1lbnRzW25dOnt9LHI9T2JqZWN0LmtleXModCk7XCJmdW5jdGlvblwiPT10eXBlb2YgT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyYmKHI9ci5jb25jYXQoT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyh0KS5maWx0ZXIoZnVuY3Rpb24oZSl7cmV0dXJuIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IodCxlKS5lbnVtZXJhYmxlfSkpKSxyLmZvckVhY2goZnVuY3Rpb24obil7dmFyIHIsbyxhO3I9ZSxvPW4sYT10W25dLG8gaW4gcj9PYmplY3QuZGVmaW5lUHJvcGVydHkocixvLHt2YWx1ZTphLGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwfSk6cltvXT1hfSl9cmV0dXJuIGV9KHt3aWR0aDpcIjEyXCIsaGVpZ2h0OlwiMTJcIix2aWV3Qm94OlwiMCAwIDEyIDEyXCIsZmlsbDpcIm5vbmVcIix4bWxuczpcImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCJ9LGUpLHQ9dD17Y2hpbGRyZW46KDAseS5qc3gpKFwicGF0aFwiLHtmaWxsUnVsZTpcImV2ZW5vZGRcIixjbGlwUnVsZTpcImV2ZW5vZGRcIixkOlwiTTMuOTgwNzEgMS4xMjVMMS4xMjUgMy45ODA3MUwxLjEyNSA4LjAxOTI5TDMuOTgwNzEgMTAuODc1SDguMDE5MjlMMTAuODc1IDguMDE5MjlWMy45ODA3MUw4LjAxOTI5IDEuMTI1SDMuOTgwNzFaTTMuODI1MzggMEMzLjYyNjQ3IDAgMy40MzU3IDAuMDc5MDE3NiAzLjI5NTA1IDAuMjE5NjdMMC4yMTk2NyAzLjI5NTA1QzAuMDc5MDE3NiAzLjQzNTcgMCAzLjYyNjQ3IDAgMy44MjUzOFY4LjE3NDYyQzAgOC4zNzM1MyAwLjA3OTAxNzggOC41NjQzIDAuMjE5NjcgOC43MDQ5NUwzLjI5NTA1IDExLjc4MDNDMy40MzU3IDExLjkyMSAzLjYyNjQ3IDEyIDMuODI1MzggMTJIOC4xNzQ2MkM4LjM3MzUzIDEyIDguNTY0MyAxMS45MjEgOC43MDQ5NSAxMS43ODAzTDExLjc4MDMgOC43MDQ5NUMxMS45MjEgOC41NjQzIDEyIDguMzczNTMgMTIgOC4xNzQ2MlYzLjgyNTM4QzEyIDMuNjI2NDcgMTEuOTIxIDMuNDM1NyAxMS43ODAzIDMuMjk1MDVMOC43MDQ5NSAwLjIxOTY3QzguNTY0MyAwLjA3OTAxNzcgOC4zNzM1MyAwIDguMTc0NjIgMEgzLjgyNTM4Wk02LjU2MjUgMi44MTI1VjMuMzc1VjZWNi41NjI1SDUuNDM3NVY2VjMuMzc1VjIuODEyNUg2LjU2MjVaTTYgOUM2LjQxNDIxIDkgNi43NSA4LjY2NDIxIDYuNzUgOC4yNUM2Ljc1IDcuODM1NzkgNi40MTQyMSA3LjUgNiA3LjVDNS41ODU3OSA3LjUgNS4yNSA3LjgzNTc5IDUuMjUgOC4yNUM1LjI1IDguNjY0MjEgNS41ODU3OSA5IDYgOVpcIixmaWxsOlwiY3VycmVudENvbG9yXCJ9KX0sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcnM/T2JqZWN0LmRlZmluZVByb3BlcnRpZXMobixPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycyh0KSk6KGZ1bmN0aW9uKGUsbil7dmFyIHQ9T2JqZWN0LmtleXMoZSk7aWYoT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyl7dmFyIHI9T2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhlKTt0LnB1c2guYXBwbHkodCxyKX1yZXR1cm4gdH0pKE9iamVjdCh0KSkuZm9yRWFjaChmdW5jdGlvbihlKXtPYmplY3QuZGVmaW5lUHJvcGVydHkobixlLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IodCxlKSl9KSxuKSl9ZnVuY3Rpb24gb2soKXt2YXIgZSxuLHQ9KGU9W1wiXFxuICBbZGF0YS1uZXh0anMtZGV2dG9vbHMtcGFuZWwtdGFiLWlzc3Vlcy1lbXB0eV0ge1xcbiAgICBkaXNwbGF5OiBmbGV4O1xcbiAgICBmbGV4OiAxO1xcbiAgICBwYWRkaW5nOiAxMnB4O1xcbiAgICBtaW4taGVpZ2h0OiAwO1xcbiAgfVxcblxcbiAgW2RhdGEtbmV4dGpzLWRldnRvb2xzLXBhbmVsLXRhYi1pc3N1ZXMtZW1wdHktY29udGVudF0ge1xcbiAgICBkaXNwbGF5OiBmbGV4O1xcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcXG4gICAgZmxleDogMTtcXG4gICAgYm9yZGVyOiAxcHggZGFzaGVkIHZhcigtLWNvbG9yLWdyYXktYWxwaGEtNTAwKTtcXG4gICAgYm9yZGVyLXJhZGl1czogNHB4O1xcbiAgfVxcblxcbiAgW2RhdGEtbmV4dGpzLWRldnRvb2xzLXBhbmVsLXRhYi1pc3N1ZXMtZW1wdHktaWNvbl0ge1xcbiAgICBtYXJnaW4tYm90dG9tOiAxNnB4O1xcbiAgICBwYWRkaW5nOiA4cHg7XFxuICAgIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWNvbG9yLWdyYXktYWxwaGEtNDAwKTtcXG4gICAgYm9yZGVyLXJhZGl1czogNnB4O1xcblxcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jb2xvci1iYWNrZ3JvdW5kLTEwMCk7XFxuICAgIGRpc3BsYXk6IGZsZXg7XFxuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XFxuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xcbiAgfVxcblxcbiAgW2RhdGEtbmV4dGpzLWRldnRvb2xzLXBhbmVsLXRhYi1pc3N1ZXMtZW1wdHktdGl0bGVdIHtcXG4gICAgY29sb3I6IHZhcigtLWNvbG9yLWdyYXktMTAwMCk7XFxuICAgIGZvbnQtc2l6ZTogMTZweDtcXG4gICAgZm9udC13ZWlnaHQ6IDUwMDtcXG4gICAgbGluZS1oZWlnaHQ6IHZhcigtLWxpbmUtaGVpZ2h0LTIwKTtcXG4gIH1cXG5cXG4gIFtkYXRhLW5leHRqcy1kZXZ0b29scy1wYW5lbC10YWItaXNzdWVzLWVtcHR5LXN1YnRpdGxlXSB7XFxuICAgIGNvbG9yOiB2YXIoLS1jb2xvci1ncmF5LTkwMCk7XFxuICAgIGZvbnQtc2l6ZTogMTRweDtcXG4gICAgbGluZS1oZWlnaHQ6IHZhcigtLWxpbmUtaGVpZ2h0LTIxKTtcXG4gIH1cXG5cIl0sbnx8KG49ZS5zbGljZSgwKSksT2JqZWN0LmZyZWV6ZShPYmplY3QuZGVmaW5lUHJvcGVydGllcyhlLHtyYXc6e3ZhbHVlOk9iamVjdC5mcmVlemUobil9fSkpKTtyZXR1cm4gb2s9ZnVuY3Rpb24oKXtyZXR1cm4gdH0sdH1mdW5jdGlvbiBvQSgpe3JldHVybigwLHkuanN4KShcImRpdlwiLHtcImRhdGEtbmV4dGpzLWRldnRvb2xzLXBhbmVsLXRhYi1pc3N1ZXMtZW1wdHlcIjohMCxjaGlsZHJlbjooMCx5LmpzeHMpKFwiZGl2XCIse1wiZGF0YS1uZXh0anMtZGV2dG9vbHMtcGFuZWwtdGFiLWlzc3Vlcy1lbXB0eS1jb250ZW50XCI6ITAsY2hpbGRyZW46WygwLHkuanN4KShcImRpdlwiLHtcImRhdGEtbmV4dGpzLWRldnRvb2xzLXBhbmVsLXRhYi1pc3N1ZXMtZW1wdHktaWNvblwiOiEwLGNoaWxkcmVuOigwLHkuanN4KShvaix7d2lkdGg6MTYsaGVpZ2h0OjE2fSl9KSwoMCx5LmpzeCkoXCJoM1wiLHtcImRhdGEtbmV4dGpzLWRldnRvb2xzLXBhbmVsLXRhYi1pc3N1ZXMtZW1wdHktdGl0bGVcIjohMCxjaGlsZHJlbjpcIk5vIElzc3VlcyBGb3VuZFwifSksKDAseS5qc3gpKFwicFwiLHtcImRhdGEtbmV4dGpzLWRldnRvb2xzLXBhbmVsLXRhYi1pc3N1ZXMtZW1wdHktc3VidGl0bGVcIjohMCxjaGlsZHJlbjpcIklzc3VlcyB3aWxsIGFwcGVhciBoZXJlIHdoZW4gdGhleSBvY2N1ci5cIn0pXX0pfSl9dmFyIG9PPWVpKG9rKCkpO2Z1bmN0aW9uIG9DKGUsbil7KG51bGw9PW58fG4+ZS5sZW5ndGgpJiYobj1lLmxlbmd0aCk7Zm9yKHZhciB0PTAscj1BcnJheShuKTt0PG47dCsrKXJbdF09ZVt0XTtyZXR1cm4gcn1mdW5jdGlvbiBvUygpe3ZhciBlLG4sdD0oZT1bXCJcIl0sbnx8KG49ZS5zbGljZSgwKSksT2JqZWN0LmZyZWV6ZShPYmplY3QuZGVmaW5lUHJvcGVydGllcyhlLHtyYXc6e3ZhbHVlOk9iamVjdC5mcmVlemUobil9fSkpKTtyZXR1cm4gb1M9ZnVuY3Rpb24oKXtyZXR1cm4gdH0sdH1mdW5jdGlvbiBvRShlKXt2YXIgbj1lLm5vdGVzLHQ9ZS5idWlsZEVycm9yLHI9ZS5oeWRyYXRpb25XYXJuaW5nLG89ZS5lcnJvckRldGFpbHMsYT1lLmFjdGl2ZUVycm9yLGk9ZS5lcnJvclR5cGUsbD1lLmRlYnVnSW5mbyxzPWUuZXJyb3JDb2RlO3JldHVybiB0PygwLHkuanN4KShveix7bWVzc2FnZTp0LGRlYnVnSW5mbzpsfSk6KDAseS5qc3gpKG9fLHtub3RlczpuLGh5ZHJhdGlvbldhcm5pbmc6cixlcnJvckRldGFpbHM6byxhY3RpdmVFcnJvcjphLGVycm9yVHlwZTppLGRlYnVnSW5mbzpsLGVycm9yQ29kZTpzfSl9ZnVuY3Rpb24gb18oZSl7dmFyIG49ZS5ub3Rlcyx0PWUuaHlkcmF0aW9uV2FybmluZyxyPWUuZXJyb3JEZXRhaWxzLG89ZS5hY3RpdmVFcnJvcixhPWUuZXJyb3JUeXBlLGk9ZS5kZWJ1Z0luZm8sbD1lLmVycm9yQ29kZTtyZXR1cm4gbyYmYT8oMCx5LmpzeHMpKG94LHtlcnJvcjpvLmVycm9yLGVycm9yVHlwZTphLG1lc3NhZ2U6by5lcnJvci5tZXNzYWdlLGRlYnVnSW5mbzppLGVycm9yQ29kZTpsLGVudmlyb25tZW50TmFtZTpvLmVycm9yLmVudmlyb25tZW50TmFtZSxjaGlsZHJlbjpbKDAseS5qc3hzKShcImRpdlwiLHtjbGFzc05hbWU6XCJlcnJvci1vdmVybGF5LW5vdGVzLWNvbnRhaW5lclwiLGNoaWxkcmVuOltuPygwLHkuanN4KSh5LkZyYWdtZW50LHtjaGlsZHJlbjooMCx5LmpzeCkoXCJwXCIse2lkOlwibmV4dGpzX19jb250YWluZXJfZXJyb3JzX19ub3Rlc1wiLGNsYXNzTmFtZTpcIm5leHRqc19fY29udGFpbmVyX2Vycm9yc19fbm90ZXNcIixjaGlsZHJlbjpufSl9KTpudWxsLHQ/KDAseS5qc3gpKFwicFwiLHtpZDpcIm5leHRqc19fY29udGFpbmVyX2Vycm9yc19fbGlua1wiLGNsYXNzTmFtZTpcIm5leHRqc19fY29udGFpbmVyX2Vycm9yc19fbGlua1wiLGNoaWxkcmVuOigwLHkuanN4KShlYix7dGV4dDpcIlNlZSBtb3JlIGluZm8gaGVyZTogXCIuY29uY2F0KG5wKX0pfSk6bnVsbF19KSwobnVsbD09cj92b2lkIDA6ci5yZWFjdE91dHB1dENvbXBvbmVudERpZmYpPygwLHkuanN4KSh0aCx7cmVhY3RPdXRwdXRDb21wb25lbnREaWZmOnIucmVhY3RPdXRwdXRDb21wb25lbnREaWZmfHxcIlwifSk6bnVsbCwoMCx5LmpzeCkoeC5TdXNwZW5zZSx7ZmFsbGJhY2s6KDAseS5qc3gpKG9kLHt9KSxjaGlsZHJlbjooMCx5LmpzeCkob1Ase2Vycm9yOm99LG8uaWQudG9TdHJpbmcoKSl9KV19KTooMCx5LmpzeCkob0Ese30pfWZ1bmN0aW9uIG9QKGUpe3ZhciBuLHQscj1lLmVycm9yLG89KG49KDAseC51c2VTdGF0ZSkoITEpLHQ9MixmdW5jdGlvbihlKXtpZihBcnJheS5pc0FycmF5KGUpKXJldHVybiBlfShuKXx8ZnVuY3Rpb24oZSxuKXt2YXIgdCxyLG89bnVsbD09ZT9udWxsOlwidW5kZWZpbmVkXCIhPXR5cGVvZiBTeW1ib2wmJmVbU3ltYm9sLml0ZXJhdG9yXXx8ZVtcIkBAaXRlcmF0b3JcIl07aWYobnVsbCE9byl7dmFyIGE9W10saT0hMCxsPSExO3RyeXtmb3Iobz1vLmNhbGwoZSk7IShpPSh0PW8ubmV4dCgpKS5kb25lKSYmKGEucHVzaCh0LnZhbHVlKSxhLmxlbmd0aCE9PW4pO2k9ITApO31jYXRjaChlKXtsPSEwLHI9ZX1maW5hbGx5e3RyeXtpfHxudWxsPT1vLnJldHVybnx8by5yZXR1cm4oKX1maW5hbGx5e2lmKGwpdGhyb3cgcn19cmV0dXJuIGF9fShuLDIpfHxmdW5jdGlvbihlLG4pe2lmKGUpe2lmKFwic3RyaW5nXCI9PXR5cGVvZiBlKXJldHVybiBvQyhlLG4pO3ZhciB0PU9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChlKS5zbGljZSg4LC0xKTtpZihcIk9iamVjdFwiPT09dCYmZS5jb25zdHJ1Y3RvciYmKHQ9ZS5jb25zdHJ1Y3Rvci5uYW1lKSxcIk1hcFwiPT09dHx8XCJTZXRcIj09PXQpcmV0dXJuIEFycmF5LmZyb20odCk7aWYoXCJBcmd1bWVudHNcIj09PXR8fC9eKD86VWl8SSludCg/Ojh8MTZ8MzIpKD86Q2xhbXBlZCk/QXJyYXkkLy50ZXN0KHQpKXJldHVybiBvQyhlLG4pfX0obix0KXx8ZnVuY3Rpb24oKXt0aHJvdyBUeXBlRXJyb3IoXCJJbnZhbGlkIGF0dGVtcHQgdG8gZGVzdHJ1Y3R1cmUgbm9uLWl0ZXJhYmxlIGluc3RhbmNlLlxcXFxuSW4gb3JkZXIgdG8gYmUgaXRlcmFibGUsIG5vbi1hcnJheSBvYmplY3RzIG11c3QgaGF2ZSBhIFtTeW1ib2wuaXRlcmF0b3JdKCkgbWV0aG9kLlwiKX0oKSksYT1vWzBdLGk9b1sxXSxsPXRqKHIpLHM9KDAseC51c2VNZW1vKShmdW5jdGlvbigpe3JldHVybiBsLnJlZHVjZShmdW5jdGlvbihlLG4pe3JldHVybiBlKyArISFuLmlnbm9yZWR9LDApfSxbbF0pLGM9KDAseC51c2VNZW1vKShmdW5jdGlvbigpe3ZhciBlLG49bC5maW5kSW5kZXgoZnVuY3Rpb24oZSl7cmV0dXJuIWUuaWdub3JlZCYmISFlLm9yaWdpbmFsQ29kZUZyYW1lJiYhIWUub3JpZ2luYWxTdGFja0ZyYW1lfSk7cmV0dXJuIG51bGwhPShlPWxbbl0pP2U6bnVsbH0sW2xdKTtyZXR1cm4oMCx5LmpzeHMpKHkuRnJhZ21lbnQse2NoaWxkcmVuOltjJiZjLm9yaWdpbmFsU3RhY2tGcmFtZSYmYy5vcmlnaW5hbENvZGVGcmFtZSYmKDAseS5qc3gpKGVxLHtzdGFja0ZyYW1lOmMub3JpZ2luYWxTdGFja0ZyYW1lLGNvZGVGcmFtZTpjLm9yaWdpbmFsQ29kZUZyYW1lfSksbC5sZW5ndGg+MCYmKDAseS5qc3gpKHRsLHtmcmFtZXM6bCxpc0lnbm9yZUxpc3RPcGVuOmEsb25Ub2dnbGVJZ25vcmVMaXN0OmZ1bmN0aW9uKCl7cmV0dXJuIGkoIWEpfSxpZ25vcmVkRnJhbWVzVGFsbHk6c30pXX0pfWZ1bmN0aW9uIG96KGUpe3ZhciBuPWUubWVzc2FnZSx0PWUuZGVidWdJbmZvLHI9RXJyb3Iobiksbz0oMCx4LnVzZU1lbW8pKGZ1bmN0aW9uKCl7cmV0dXJuIHR0KG4pfHxcIkZhaWxlZCB0byBjb21waWxlXCJ9LFtuXSk7cmV0dXJuKDAseS5qc3gpKG94LHtlcnJvclR5cGU6XCJCdWlsZCBFcnJvclwiLGVycm9yOnIsbWVzc2FnZTpvLGRlYnVnSW5mbzp0LGNoaWxkcmVuOigwLHkuanN4KSh0bix7Y29udGVudDpufSl9KX12YXIgb0w9ZWkob1MoKSk7ZnVuY3Rpb24gb1QoKXt2YXIgZSxuLHQ9KGU9W1wiXFxuICBbZGF0YS1uZXh0anMtZGV2dG9vbHMtcGFuZWwtdGFiLWlzc3Vlc10ge1xcbiAgICBkaXNwbGF5OiBmbGV4O1xcbiAgICBmbGV4OiAxO1xcbiAgICBtaW4taGVpZ2h0OiAwO1xcbiAgfVxcblwiXSxufHwobj1lLnNsaWNlKDApKSxPYmplY3QuZnJlZXplKE9iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKGUse3Jhdzp7dmFsdWU6T2JqZWN0LmZyZWV6ZShuKX19KSkpO3JldHVybiBvVD1mdW5jdGlvbigpe3JldHVybiB0fSx0fWZ1bmN0aW9uIG9SKGUpe3ZhciBuPWUuZGVidWdJbmZvLHQ9ZS5ydW50aW1lRXJyb3JzLHI9ZS5nZXRTcXVhc2hlZEh5ZHJhdGlvbkVycm9yRGV0YWlscyxvPWUuYnVpbGRFcnJvcixhPXRTKHtydW50aW1lRXJyb3JzOnQsZ2V0U3F1YXNoZWRIeWRyYXRpb25FcnJvckRldGFpbHM6cn0pLGk9YS5lcnJvckNvZGUsbD1hLmVycm9yVHlwZSxzPWEuaHlkcmF0aW9uV2FybmluZyxjPWEuYWN0aXZlRXJyb3IsdT1hLmFjdGl2ZUlkeCxkPWEuc2V0QWN0aXZlSW5kZXgsZj1hLm5vdGVzLHA9YS5lcnJvckRldGFpbHM7cmV0dXJuKDAseS5qc3hzKShcImRpdlwiLHtcImRhdGEtbmV4dGpzLWRldnRvb2xzLXBhbmVsLXRhYi1pc3N1ZXNcIjohMCxjaGlsZHJlbjpbbz9udWxsOigwLHkuanN4KShvaSx7cnVudGltZUVycm9yczp0LGVycm9yVHlwZTpsLGFjdGl2ZUlkeDp1LHNldEFjdGl2ZUluZGV4OmR9KSwoMCx5LmpzeCkob0Use2J1aWxkRXJyb3I6byxub3RlczpmLGh5ZHJhdGlvbldhcm5pbmc6cyxlcnJvckRldGFpbHM6cCxhY3RpdmVFcnJvcjpjLGVycm9yVHlwZTpsLGRlYnVnSW5mbzpuLGVycm9yQ29kZTppfSldfSl9dmFyIG9OPWVpKG9UKCkpLG9EPXByb2Nlc3MuZW52Ll9fTkVYVF9ERVZUT09MX1NFR01FTlRfRVhQTE9SRVI/X193ZWJwYWNrX3JlcXVpcmVfXyhcIi4vc3JjL25leHQtZGV2dG9vbHMvZGV2LW92ZXJsYXkvY29tcG9uZW50cy9vdmVydmlldy9zZWdtZW50LWV4cGxvcmVyLnRzeFwiKS51OmZ1bmN0aW9uKCl7cmV0dXJuIG51bGx9O2Z1bmN0aW9uIG9CKGUpe3ZhciBuPWUucm91dGVyVHlwZSx0PWUucGFnZTtyZXR1cm4oMCx5LmpzeCkob0Qse2lzQXBwUm91dGVyOlwiYXBwXCI9PT1uLHBhZ2U6dH0pfWZ1bmN0aW9uIG9NKGUpe3ZhciBuPWUucm91dGVyVHlwZSx0PWUucGFnZTtyZXR1cm4oMCx5LmpzeCkob0Ise3JvdXRlclR5cGU6bixwYWdlOnR9KX1mdW5jdGlvbiBvSShlKXt2YXIgbj1lLmFjdGl2ZVRhYix0PWUuZGV2VG9vbHNQb3NpdGlvbixyPWUuc2NhbGUsbz1lLnJvdXRlclR5cGUsYT1lLmhhbmRsZVBvc2l0aW9uQ2hhbmdlLGk9ZS5oYW5kbGVTY2FsZUNoYW5nZSxsPWUuZGVidWdJbmZvLHM9ZS5ydW50aW1lRXJyb3JzLGM9ZS5nZXRTcXVhc2hlZEh5ZHJhdGlvbkVycm9yRGV0YWlscyx1PWUuYnVpbGRFcnJvcixkPWUucGFnZTtzd2l0Y2gobil7Y2FzZVwic2V0dGluZ3NcIjpyZXR1cm4oMCx5LmpzeCkob2Use2RldlRvb2xzUG9zaXRpb246dCxzY2FsZTpyLGhhbmRsZVBvc2l0aW9uQ2hhbmdlOmEsaGFuZGxlU2NhbGVDaGFuZ2U6aX0pO2Nhc2VcInJvdXRlXCI6cmV0dXJuKDAseS5qc3gpKG9NLHtyb3V0ZXJUeXBlOm8scGFnZTpkfSk7Y2FzZVwiaXNzdWVzXCI6cmV0dXJuKDAseS5qc3gpKG9SLHtkZWJ1Z0luZm86bCxydW50aW1lRXJyb3JzOnMsZ2V0U3F1YXNoZWRIeWRyYXRpb25FcnJvckRldGFpbHM6YyxidWlsZEVycm9yOnV9KTtkZWZhdWx0OnJldHVybiBudWxsfX1mdW5jdGlvbiBvSChlKXt2YXIgbix0O3JldHVybigwLHkuanN4KShcInN2Z1wiLChuPWZ1bmN0aW9uKGUpe2Zvcih2YXIgbj0xO248YXJndW1lbnRzLmxlbmd0aDtuKyspe3ZhciB0PW51bGwhPWFyZ3VtZW50c1tuXT9hcmd1bWVudHNbbl06e30scj1PYmplY3Qua2V5cyh0KTtcImZ1bmN0aW9uXCI9PXR5cGVvZiBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzJiYocj1yLmNvbmNhdChPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKHQpLmZpbHRlcihmdW5jdGlvbihlKXtyZXR1cm4gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcih0LGUpLmVudW1lcmFibGV9KSkpLHIuZm9yRWFjaChmdW5jdGlvbihuKXt2YXIgcixvLGE7cj1lLG89bixhPXRbbl0sbyBpbiByP09iamVjdC5kZWZpbmVQcm9wZXJ0eShyLG8se3ZhbHVlOmEsZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITB9KTpyW29dPWF9KX1yZXR1cm4gZX0oe3dpZHRoOlwiMTJcIixoZWlnaHQ6XCIxMlwiLHZpZXdCb3g6XCIwIDAgMTQgMTRcIixmaWxsOlwibm9uZVwiLHhtbG5zOlwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIn0sZSksdD10PXtjaGlsZHJlbjooMCx5LmpzeCkoXCJwYXRoXCIse2ZpbGxSdWxlOlwiZXZlbm9kZFwiLGNsaXBSdWxlOlwiZXZlbm9kZFwiLGQ6XCJNMy4wODg4OSAxMS44Mzg0TDIuNjI0ODYgMTIuMzAyNEwxLjY5Njc4IDExLjM3NDRMMi4xNjA4MiAxMC45MTAzTDYuMDcxNzggNi45OTkzN0wyLjE2MDgyIDMuMDg4NDFMMS42OTY3OCAyLjYyNDM3TDIuNjI0ODYgMS42OTYyOUwzLjA4ODg5IDIuMTYwMzNMNi45OTk4NiA2LjA3MTI5TDEwLjkxMDggMi4xNjAzM0wxMS4zNzQ5IDEuNjk2MjlMMTIuMzAyOSAyLjYyNDM3TDExLjgzODkgMy4wODg0MUw3LjkyNzkzIDYuOTk5MzdMMTEuODM4OSAxMC45MTAzTDEyLjMwMjkgMTEuMzc0NEwxMS4zNzQ5IDEyLjMwMjRMMTAuOTEwOCAxMS44Mzg0TDYuOTk5ODYgNy45Mjc0NEwzLjA4ODg5IDExLjgzODRaXCIsZmlsbDpcImN1cnJlbnRDb2xvclwifSl9LE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzP09iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKG4sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcnModCkpOihmdW5jdGlvbihlLG4pe3ZhciB0PU9iamVjdC5rZXlzKGUpO2lmKE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMpe3ZhciByPU9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMoZSk7dC5wdXNoLmFwcGx5KHQscil9cmV0dXJuIHR9KShPYmplY3QodCkpLmZvckVhY2goZnVuY3Rpb24oZSl7T2JqZWN0LmRlZmluZVByb3BlcnR5KG4sZSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHQsZSkpfSksbikpfWZ1bmN0aW9uIG9GKGUsbil7KG51bGw9PW58fG4+ZS5sZW5ndGgpJiYobj1lLmxlbmd0aCk7Zm9yKHZhciB0PTAscj1BcnJheShuKTt0PG47dCsrKXJbdF09ZVt0XTtyZXR1cm4gcn1mdW5jdGlvbiBvVShlKXtmb3IodmFyIG49MTtuPGFyZ3VtZW50cy5sZW5ndGg7bisrKXt2YXIgdD1udWxsIT1hcmd1bWVudHNbbl0/YXJndW1lbnRzW25dOnt9LHI9T2JqZWN0LmtleXModCk7XCJmdW5jdGlvblwiPT10eXBlb2YgT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyYmKHI9ci5jb25jYXQoT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyh0KS5maWx0ZXIoZnVuY3Rpb24oZSl7cmV0dXJuIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IodCxlKS5lbnVtZXJhYmxlfSkpKSxyLmZvckVhY2goZnVuY3Rpb24obil7dmFyIHIsbyxhO3I9ZSxvPW4sYT10W25dLG8gaW4gcj9PYmplY3QuZGVmaW5lUHJvcGVydHkocixvLHt2YWx1ZTphLGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwfSk6cltvXT1hfSl9cmV0dXJuIGV9ZnVuY3Rpb24gb1YoZSxuKXtyZXR1cm4gbj1udWxsIT1uP246e30sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcnM/T2JqZWN0LmRlZmluZVByb3BlcnRpZXMoZSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycyhuKSk6KGZ1bmN0aW9uKGUsbil7dmFyIHQ9T2JqZWN0LmtleXMoZSk7aWYoT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyl7dmFyIHI9T2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhlKTt0LnB1c2guYXBwbHkodCxyKX1yZXR1cm4gdH0pKE9iamVjdChuKSkuZm9yRWFjaChmdW5jdGlvbih0KXtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSx0LE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Iobix0KSl9KSxlfWZ1bmN0aW9uIG9xKGUsbil7aWYobnVsbD09ZSlyZXR1cm57fTt2YXIgdCxyLG89ZnVuY3Rpb24oZSxuKXtpZihudWxsPT1lKXJldHVybnt9O3ZhciB0LHIsbz17fSxhPU9iamVjdC5rZXlzKGUpO2ZvcihyPTA7cjxhLmxlbmd0aDtyKyspdD1hW3JdLG4uaW5kZXhPZih0KT49MHx8KG9bdF09ZVt0XSk7cmV0dXJuIG99KGUsbik7aWYoT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyl7dmFyIGE9T2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhlKTtmb3Iocj0wO3I8YS5sZW5ndGg7cisrKXQ9YVtyXSwhKG4uaW5kZXhPZih0KT49MCkmJk9iamVjdC5wcm90b3R5cGUucHJvcGVydHlJc0VudW1lcmFibGUuY2FsbChlLHQpJiYob1t0XT1lW3RdKX1yZXR1cm4gb31mdW5jdGlvbiBvVyhlLG4pe3JldHVybiBmdW5jdGlvbihlKXtpZihBcnJheS5pc0FycmF5KGUpKXJldHVybiBlfShlKXx8ZnVuY3Rpb24oZSxuKXt2YXIgdCxyLG89bnVsbD09ZT9udWxsOlwidW5kZWZpbmVkXCIhPXR5cGVvZiBTeW1ib2wmJmVbU3ltYm9sLml0ZXJhdG9yXXx8ZVtcIkBAaXRlcmF0b3JcIl07aWYobnVsbCE9byl7dmFyIGE9W10saT0hMCxsPSExO3RyeXtmb3Iobz1vLmNhbGwoZSk7IShpPSh0PW8ubmV4dCgpKS5kb25lKSYmKGEucHVzaCh0LnZhbHVlKSwhbnx8YS5sZW5ndGghPT1uKTtpPSEwKTt9Y2F0Y2goZSl7bD0hMCxyPWV9ZmluYWxseXt0cnl7aXx8bnVsbD09by5yZXR1cm58fG8ucmV0dXJuKCl9ZmluYWxseXtpZihsKXRocm93IHJ9fXJldHVybiBhfX0oZSxuKXx8ZnVuY3Rpb24oZSxuKXtpZihlKXtpZihcInN0cmluZ1wiPT10eXBlb2YgZSlyZXR1cm4gb0YoZSxuKTt2YXIgdD1PYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwoZSkuc2xpY2UoOCwtMSk7aWYoXCJPYmplY3RcIj09PXQmJmUuY29uc3RydWN0b3ImJih0PWUuY29uc3RydWN0b3IubmFtZSksXCJNYXBcIj09PXR8fFwiU2V0XCI9PT10KXJldHVybiBBcnJheS5mcm9tKHQpO2lmKFwiQXJndW1lbnRzXCI9PT10fHwvXig/OlVpfEkpbnQoPzo4fDE2fDMyKSg/OkNsYW1wZWQpP0FycmF5JC8udGVzdCh0KSlyZXR1cm4gb0YoZSxuKX19KGUsbil8fGZ1bmN0aW9uKCl7dGhyb3cgVHlwZUVycm9yKFwiSW52YWxpZCBhdHRlbXB0IHRvIGRlc3RydWN0dXJlIG5vbi1pdGVyYWJsZSBpbnN0YW5jZS5cXFxcbkluIG9yZGVyIHRvIGJlIGl0ZXJhYmxlLCBub24tYXJyYXkgb2JqZWN0cyBtdXN0IGhhdmUgYSBbU3ltYm9sLml0ZXJhdG9yXSgpIG1ldGhvZC5cIil9KCl9ZnVuY3Rpb24gbyQoKXt2YXIgZSxuLHQ9KGU9W1wiXFxuICAgICAgICAgIFtkYXRhLW5leHQtYmFkZ2Utcm9vdF0ge1xcbiAgICAgICAgICAgIC0tdGltaW5nOiBjdWJpYy1iZXppZXIoMC4yMywgMC44OCwgMC4yNiwgMC45Mik7XFxuICAgICAgICAgICAgLS1kdXJhdGlvbi1sb25nOiAyNTBtcztcXG4gICAgICAgICAgICAtLWNvbG9yLW91dGVyLWJvcmRlcjogIzE3MTcxNztcXG4gICAgICAgICAgICAtLWNvbG9yLWlubmVyLWJvcmRlcjogaHNsYSgwLCAwJSwgMTAwJSwgMC4xNCk7XFxuICAgICAgICAgICAgLS1jb2xvci1ob3Zlci1hbHBoYS1zdWJ0bGU6IGhzbGEoMCwgMCUsIDEwMCUsIDAuMTMpO1xcbiAgICAgICAgICAgIC0tY29sb3ItaG92ZXItYWxwaGEtZXJyb3I6IGhzbGEoMCwgMCUsIDEwMCUsIDAuMik7XFxuICAgICAgICAgICAgLS1jb2xvci1ob3Zlci1hbHBoYS1lcnJvci0yOiBoc2xhKDAsIDAlLCAxMDAlLCAwLjI1KTtcXG4gICAgICAgICAgICAtLW1hcmstc2l6ZTogY2FsYyh2YXIoLS1zaXplKSAtIHZhcigtLXNpemUtMikgKiAyKTtcXG5cXG4gICAgICAgICAgICAtLWZvY3VzLWNvbG9yOiB2YXIoLS1jb2xvci1ibHVlLTgwMCk7XFxuICAgICAgICAgICAgLS1mb2N1cy1yaW5nOiAycHggc29saWQgdmFyKC0tZm9jdXMtY29sb3IpO1xcblxcbiAgICAgICAgICAgICY6aGFzKFtkYXRhLW5leHQtYmFkZ2VdW2RhdGEtZXJyb3I9J3RydWUnXSkge1xcbiAgICAgICAgICAgICAgLS1mb2N1cy1jb2xvcjogI2ZmZjtcXG4gICAgICAgICAgICB9XFxuICAgICAgICAgIH1cXG5cXG4gICAgICAgICAgW2RhdGEtZGlzYWJsZWQtaWNvbl0ge1xcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XFxuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcXG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcXG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiA0cHg7XFxuICAgICAgICAgIH1cXG5cXG4gICAgICAgICAgW2RhdGEtbmV4dC1iYWRnZV0ge1xcbiAgICAgICAgICAgIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkO1xcbiAgICAgICAgICAgIHdpZHRoOiB2YXIoLS1zaXplKTtcXG4gICAgICAgICAgICBoZWlnaHQ6IHZhcigtLXNpemUpO1xcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XFxuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcXG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XFxuICAgICAgICAgICAgYmFja2dyb3VuZDogcmdiYSgwLCAwLCAwLCAwLjgpO1xcbiAgICAgICAgICAgIGJveC1zaGFkb3c6XFxuICAgICAgICAgICAgICAwIDAgMCAxcHggdmFyKC0tY29sb3Itb3V0ZXItYm9yZGVyKSxcXG4gICAgICAgICAgICAgIGluc2V0IDAgMCAwIDFweCB2YXIoLS1jb2xvci1pbm5lci1ib3JkZXIpLFxcbiAgICAgICAgICAgICAgMHB4IDE2cHggMzJweCAtOHB4IHJnYmEoMCwgMCwgMCwgMC4yNCk7XFxuICAgICAgICAgICAgYmFja2Ryb3AtZmlsdGVyOiBibHVyKDQ4cHgpO1xcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLXJvdW5kZWQtZnVsbCk7XFxuICAgICAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7XFxuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xcbiAgICAgICAgICAgIHNjYWxlOiAxO1xcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XFxuICAgICAgICAgICAgd2lsbC1jaGFuZ2U6IHNjYWxlLCBib3gtc2hhZG93LCB3aWR0aCwgYmFja2dyb3VuZDtcXG4gICAgICAgICAgICB0cmFuc2l0aW9uOlxcbiAgICAgICAgICAgICAgc2NhbGUgdmFyKC0tZHVyYXRpb24tc2hvcnQpIHZhcigtLXRpbWluZyksXFxuICAgICAgICAgICAgICB3aWR0aCB2YXIoLS1kdXJhdGlvbi1sb25nKSB2YXIoLS10aW1pbmcpLFxcbiAgICAgICAgICAgICAgYm94LXNoYWRvdyB2YXIoLS1kdXJhdGlvbi1sb25nKSB2YXIoLS10aW1pbmcpLFxcbiAgICAgICAgICAgICAgYmFja2dyb3VuZCB2YXIoLS1kdXJhdGlvbi1zaG9ydCkgZWFzZTtcXG5cXG4gICAgICAgICAgICAmOmFjdGl2ZVtkYXRhLWVycm9yPSdmYWxzZSddIHtcXG4gICAgICAgICAgICAgIHNjYWxlOiAwLjk1O1xcbiAgICAgICAgICAgIH1cXG5cXG4gICAgICAgICAgICAmW2RhdGEtYW5pbWF0ZT0ndHJ1ZSddOm5vdCg6aG92ZXIpIHtcXG4gICAgICAgICAgICAgIHNjYWxlOiAxLjAyO1xcbiAgICAgICAgICAgIH1cXG5cXG4gICAgICAgICAgICAmW2RhdGEtZXJyb3I9J2ZhbHNlJ106aGFzKFtkYXRhLW5leHQtbWFya106Zm9jdXMtdmlzaWJsZSkge1xcbiAgICAgICAgICAgICAgb3V0bGluZTogdmFyKC0tZm9jdXMtcmluZyk7XFxuICAgICAgICAgICAgICBvdXRsaW5lLW9mZnNldDogM3B4O1xcbiAgICAgICAgICAgIH1cXG5cXG4gICAgICAgICAgICAmW2RhdGEtZXJyb3I9J3RydWUnXSB7XFxuICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAjY2EyYTMwO1xcbiAgICAgICAgICAgICAgLS1jb2xvci1pbm5lci1ib3JkZXI6ICNlNTQ4NGQ7XFxuXFxuICAgICAgICAgICAgICBbZGF0YS1uZXh0LW1hcmtdIHtcXG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tY29sb3ItaG92ZXItYWxwaGEtZXJyb3IpO1xcbiAgICAgICAgICAgICAgICBvdXRsaW5lLW9mZnNldDogMHB4O1xcblxcbiAgICAgICAgICAgICAgICAmOmZvY3VzLXZpc2libGUge1xcbiAgICAgICAgICAgICAgICAgIG91dGxpbmU6IHZhcigtLWZvY3VzLXJpbmcpO1xcbiAgICAgICAgICAgICAgICAgIG91dGxpbmUtb2Zmc2V0OiAtMXB4O1xcbiAgICAgICAgICAgICAgICB9XFxuXFxuICAgICAgICAgICAgICAgICY6aG92ZXIge1xcbiAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWNvbG9yLWhvdmVyLWFscGhhLWVycm9yLTIpO1xcbiAgICAgICAgICAgICAgICB9XFxuICAgICAgICAgICAgICB9XFxuICAgICAgICAgICAgfVxcblxcbiAgICAgICAgICAgICZbZGF0YS1lcnJvci1leHBhbmRlZD0nZmFsc2UnXVtkYXRhLWVycm9yPSd0cnVlJ10gfiBbZGF0YS1kb3RdIHtcXG4gICAgICAgICAgICAgIHNjYWxlOiAxO1xcbiAgICAgICAgICAgIH1cXG5cXG4gICAgICAgICAgICA+IGRpdiB7XFxuICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xcbiAgICAgICAgICAgIH1cXG4gICAgICAgICAgfVxcblxcbiAgICAgICAgICBbZGF0YS1pc3N1ZXMtY29sbGFwc2VdOmZvY3VzLXZpc2libGUge1xcbiAgICAgICAgICAgIG91dGxpbmU6IHZhcigtLWZvY3VzLXJpbmcpO1xcbiAgICAgICAgICB9XFxuXFxuICAgICAgICAgIFtkYXRhLWlzc3Vlc106aGFzKFtkYXRhLWlzc3Vlcy1vcGVuXTpmb2N1cy12aXNpYmxlKSB7XFxuICAgICAgICAgICAgb3V0bGluZTogdmFyKC0tZm9jdXMtcmluZyk7XFxuICAgICAgICAgICAgb3V0bGluZS1vZmZzZXQ6IC0xcHg7XFxuICAgICAgICAgIH1cXG5cXG4gICAgICAgICAgW2RhdGEtZG90XSB7XFxuICAgICAgICAgICAgY29udGVudDogJyc7XFxuICAgICAgICAgICAgd2lkdGg6IHZhcigtLXNpemUtOCk7XFxuICAgICAgICAgICAgaGVpZ2h0OiB2YXIoLS1zaXplLTgpO1xcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICNmZmY7XFxuICAgICAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgMXB4IHZhcigtLWNvbG9yLW91dGVyLWJvcmRlcik7XFxuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogNTAlO1xcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcXG4gICAgICAgICAgICB0b3A6IDJweDtcXG4gICAgICAgICAgICByaWdodDogMHB4O1xcbiAgICAgICAgICAgIHNjYWxlOiAwO1xcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xcbiAgICAgICAgICAgIHRyYW5zaXRpb246IHNjYWxlIDIwMG1zIHZhcigtLXRpbWluZyk7XFxuICAgICAgICAgICAgdHJhbnNpdGlvbi1kZWxheTogdmFyKC0tZHVyYXRpb24tc2hvcnQpO1xcbiAgICAgICAgICB9XFxuXFxuICAgICAgICAgIFtkYXRhLWlzc3Vlc10ge1xcbiAgICAgICAgICAgIC0tcGFkZGluZy1sZWZ0OiA4cHg7XFxuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcXG4gICAgICAgICAgICBnYXA6IDJweDtcXG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogOHB4O1xcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDhweDtcXG4gICAgICAgICAgICBoZWlnaHQ6IHZhcigtLXNpemUtMzIpO1xcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMnB4O1xcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLXJvdW5kZWQtZnVsbCk7XFxuICAgICAgICAgICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZCB2YXIoLS1kdXJhdGlvbi1zaG9ydCkgZWFzZTtcXG5cXG4gICAgICAgICAgICAmOmhhcyhbZGF0YS1pc3N1ZXMtb3Blbl06aG92ZXIpIHtcXG4gICAgICAgICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWNvbG9yLWhvdmVyLWFscGhhLWVycm9yKTtcXG4gICAgICAgICAgICB9XFxuXFxuICAgICAgICAgICAgJjpoYXMoW2RhdGEtaXNzdWVzLWNvbGxhcHNlXSkge1xcbiAgICAgICAgICAgICAgcGFkZGluZy1yaWdodDogY2FsYyh2YXIoLS1wYWRkaW5nLWxlZnQpIC8gMik7XFxuICAgICAgICAgICAgfVxcblxcbiAgICAgICAgICAgIFtkYXRhLWNyb3NzXSB7XFxuICAgICAgICAgICAgICB0cmFuc2xhdGU6IDBweCAtMXB4O1xcbiAgICAgICAgICAgIH1cXG4gICAgICAgICAgfVxcblxcbiAgICAgICAgICBbZGF0YS1pc3N1ZXMtb3Blbl0ge1xcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogdmFyKC0tc2l6ZS0xMyk7XFxuICAgICAgICAgICAgY29sb3I6IHdoaXRlO1xcbiAgICAgICAgICAgIHdpZHRoOiBmaXQtY29udGVudDtcXG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XFxuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcXG4gICAgICAgICAgICBnYXA6IDJweDtcXG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xcbiAgICAgICAgICAgIG1hcmdpbjogMDtcXG4gICAgICAgICAgICBsaW5lLWhlaWdodDogdmFyKC0tc2l6ZS0zNik7XFxuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDtcXG4gICAgICAgICAgICB6LWluZGV4OiAyO1xcbiAgICAgICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XFxuXFxuICAgICAgICAgICAgJjpmb2N1cy12aXNpYmxlIHtcXG4gICAgICAgICAgICAgIG91dGxpbmU6IDA7XFxuICAgICAgICAgICAgfVxcbiAgICAgICAgICB9XFxuXFxuICAgICAgICAgIFtkYXRhLWlzc3Vlcy1jb2xsYXBzZV0ge1xcbiAgICAgICAgICAgIHdpZHRoOiB2YXIoLS1zaXplLTI0KTtcXG4gICAgICAgICAgICBoZWlnaHQ6IHZhcigtLXNpemUtMjQpO1xcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLXJvdW5kZWQtZnVsbCk7XFxuICAgICAgICAgICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZCB2YXIoLS1kdXJhdGlvbi1zaG9ydCkgZWFzZTtcXG5cXG4gICAgICAgICAgICAmOmhvdmVyIHtcXG4gICAgICAgICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWNvbG9yLWhvdmVyLWFscGhhLWVycm9yKTtcXG4gICAgICAgICAgICB9XFxuICAgICAgICAgIH1cXG5cXG4gICAgICAgICAgW2RhdGEtY3Jvc3NdIHtcXG4gICAgICAgICAgICBjb2xvcjogI2ZmZjtcXG4gICAgICAgICAgICB3aWR0aDogdmFyKC0tc2l6ZS0xMik7XFxuICAgICAgICAgICAgaGVpZ2h0OiB2YXIoLS1zaXplLTEyKTtcXG4gICAgICAgICAgfVxcblxcbiAgICAgICAgICBbZGF0YS1uZXh0LW1hcmtdIHtcXG4gICAgICAgICAgICB3aWR0aDogdmFyKC0tbWFyay1zaXplKTtcXG4gICAgICAgICAgICBoZWlnaHQ6IHZhcigtLW1hcmstc2l6ZSk7XFxuICAgICAgICAgICAgbWFyZ2luOiAwIDJweDtcXG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XFxuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogdmFyKC0tcm91bmRlZC1mdWxsKTtcXG4gICAgICAgICAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIHZhcigtLWR1cmF0aW9uLWxvbmcpIHZhcigtLXRpbWluZyk7XFxuXFxuICAgICAgICAgICAgJjpmb2N1cy12aXNpYmxlIHtcXG4gICAgICAgICAgICAgIG91dGxpbmU6IDA7XFxuICAgICAgICAgICAgfVxcblxcbiAgICAgICAgICAgICY6aG92ZXIge1xcbiAgICAgICAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tY29sb3ItaG92ZXItYWxwaGEtc3VidGxlKTtcXG4gICAgICAgICAgICB9XFxuXFxuICAgICAgICAgICAgc3ZnIHtcXG4gICAgICAgICAgICAgIGZsZXgtc2hyaW5rOiAwO1xcbiAgICAgICAgICAgICAgd2lkdGg6IHZhcigtLXNpemUtNDApO1xcbiAgICAgICAgICAgICAgaGVpZ2h0OiB2YXIoLS1zaXplLTQwKTtcXG4gICAgICAgICAgICB9XFxuICAgICAgICAgIH1cXG5cXG4gICAgICAgICAgW2RhdGEtaXNzdWVzLWNvdW50LWFuaW1hdGlvbl0ge1xcbiAgICAgICAgICAgIGRpc3BsYXk6IGdyaWQ7XFxuICAgICAgICAgICAgcGxhY2UtaXRlbXM6IGNlbnRlciBjZW50ZXI7XFxuICAgICAgICAgICAgZm9udC12YXJpYW50LW51bWVyaWM6IHRhYnVsYXItbnVtcztcXG5cXG4gICAgICAgICAgICAmW2RhdGEtYW5pbWF0ZT0nZmFsc2UnXSB7XFxuICAgICAgICAgICAgICBbZGF0YS1pc3N1ZXMtY291bnQtZXhpdF0sXFxuICAgICAgICAgICAgICBbZGF0YS1pc3N1ZXMtY291bnQtZW50ZXJdIHtcXG4gICAgICAgICAgICAgICAgYW5pbWF0aW9uLWR1cmF0aW9uOiAwbXM7XFxuICAgICAgICAgICAgICB9XFxuICAgICAgICAgICAgfVxcblxcbiAgICAgICAgICAgID4gKiB7XFxuICAgICAgICAgICAgICBncmlkLWFyZWE6IDEgLyAxO1xcbiAgICAgICAgICAgIH1cXG5cXG4gICAgICAgICAgICBbZGF0YS1pc3N1ZXMtY291bnQtZXhpdF0ge1xcbiAgICAgICAgICAgICAgYW5pbWF0aW9uOiBmYWRlT3V0IDMwMG1zIHZhcigtLXRpbWluZykgZm9yd2FyZHM7XFxuICAgICAgICAgICAgfVxcblxcbiAgICAgICAgICAgIFtkYXRhLWlzc3Vlcy1jb3VudC1lbnRlcl0ge1xcbiAgICAgICAgICAgICAgYW5pbWF0aW9uOiBmYWRlSW4gMzAwbXMgdmFyKC0tdGltaW5nKSBmb3J3YXJkcztcXG4gICAgICAgICAgICB9XFxuICAgICAgICAgIH1cXG5cXG4gICAgICAgICAgW2RhdGEtaXNzdWVzLWNvdW50LXBsdXJhbF0ge1xcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcXG4gICAgICAgICAgICAmW2RhdGEtYW5pbWF0ZT0ndHJ1ZSddIHtcXG4gICAgICAgICAgICAgIGFuaW1hdGlvbjogZmFkZUluIDMwMG1zIHZhcigtLXRpbWluZykgZm9yd2FyZHM7XFxuICAgICAgICAgICAgfVxcbiAgICAgICAgICB9XFxuXFxuICAgICAgICAgIC5wYXRoMCB7XFxuICAgICAgICAgICAgYW5pbWF0aW9uOiBkcmF3MCAxLjVzIGVhc2UtaW4tb3V0IGluZmluaXRlO1xcbiAgICAgICAgICB9XFxuXFxuICAgICAgICAgIC5wYXRoMSB7XFxuICAgICAgICAgICAgYW5pbWF0aW9uOiBkcmF3MSAxLjVzIGVhc2Utb3V0IGluZmluaXRlO1xcbiAgICAgICAgICAgIGFuaW1hdGlvbi1kZWxheTogMC4zcztcXG4gICAgICAgICAgfVxcblxcbiAgICAgICAgICAucGF1c2VkIHtcXG4gICAgICAgICAgICBzdHJva2UtZGFzaG9mZnNldDogMDtcXG4gICAgICAgICAgfVxcblxcbiAgICAgICAgICBAa2V5ZnJhbWVzIGZhZGVJbiB7XFxuICAgICAgICAgICAgMCUge1xcbiAgICAgICAgICAgICAgb3BhY2l0eTogMDtcXG4gICAgICAgICAgICAgIGZpbHRlcjogYmx1cigycHgpO1xcbiAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDhweCk7XFxuICAgICAgICAgICAgfVxcbiAgICAgICAgICAgIDEwMCUge1xcbiAgICAgICAgICAgICAgb3BhY2l0eTogMTtcXG4gICAgICAgICAgICAgIGZpbHRlcjogYmx1cigwcHgpO1xcbiAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApO1xcbiAgICAgICAgICAgIH1cXG4gICAgICAgICAgfVxcblxcbiAgICAgICAgICBAa2V5ZnJhbWVzIGZhZGVPdXQge1xcbiAgICAgICAgICAgIDAlIHtcXG4gICAgICAgICAgICAgIG9wYWNpdHk6IDE7XFxuICAgICAgICAgICAgICBmaWx0ZXI6IGJsdXIoMHB4KTtcXG4gICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwKTtcXG4gICAgICAgICAgICB9XFxuICAgICAgICAgICAgMTAwJSB7XFxuICAgICAgICAgICAgICBvcGFjaXR5OiAwO1xcbiAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0xMnB4KTtcXG4gICAgICAgICAgICAgIGZpbHRlcjogYmx1cigycHgpO1xcbiAgICAgICAgICAgIH1cXG4gICAgICAgICAgfVxcblxcbiAgICAgICAgICBAa2V5ZnJhbWVzIGRyYXcwIHtcXG4gICAgICAgICAgICAwJSxcXG4gICAgICAgICAgICAyNSUge1xcbiAgICAgICAgICAgICAgc3Ryb2tlLWRhc2hvZmZzZXQ6IC0yOS42O1xcbiAgICAgICAgICAgIH1cXG4gICAgICAgICAgICAyNSUsXFxuICAgICAgICAgICAgNTAlIHtcXG4gICAgICAgICAgICAgIHN0cm9rZS1kYXNob2Zmc2V0OiAwO1xcbiAgICAgICAgICAgIH1cXG4gICAgICAgICAgICA1MCUsXFxuICAgICAgICAgICAgNzUlIHtcXG4gICAgICAgICAgICAgIHN0cm9rZS1kYXNob2Zmc2V0OiAwO1xcbiAgICAgICAgICAgIH1cXG4gICAgICAgICAgICA3NSUsXFxuICAgICAgICAgICAgMTAwJSB7XFxuICAgICAgICAgICAgICBzdHJva2UtZGFzaG9mZnNldDogMjkuNjtcXG4gICAgICAgICAgICB9XFxuICAgICAgICAgIH1cXG5cXG4gICAgICAgICAgQGtleWZyYW1lcyBkcmF3MSB7XFxuICAgICAgICAgICAgMCUsXFxuICAgICAgICAgICAgMjAlIHtcXG4gICAgICAgICAgICAgIHN0cm9rZS1kYXNob2Zmc2V0OiAtMTEuNjtcXG4gICAgICAgICAgICB9XFxuICAgICAgICAgICAgMjAlLFxcbiAgICAgICAgICAgIDUwJSB7XFxuICAgICAgICAgICAgICBzdHJva2UtZGFzaG9mZnNldDogMDtcXG4gICAgICAgICAgICB9XFxuICAgICAgICAgICAgNTAlLFxcbiAgICAgICAgICAgIDc1JSB7XFxuICAgICAgICAgICAgICBzdHJva2UtZGFzaG9mZnNldDogMDtcXG4gICAgICAgICAgICB9XFxuICAgICAgICAgICAgNzUlLFxcbiAgICAgICAgICAgIDEwMCUge1xcbiAgICAgICAgICAgICAgc3Ryb2tlLWRhc2hvZmZzZXQ6IDExLjY7XFxuICAgICAgICAgICAgfVxcbiAgICAgICAgICB9XFxuXFxuICAgICAgICAgIEBtZWRpYSAocHJlZmVycy1yZWR1Y2VkLW1vdGlvbikge1xcbiAgICAgICAgICAgIFtkYXRhLWlzc3Vlcy1jb3VudC1leGl0XSxcXG4gICAgICAgICAgICBbZGF0YS1pc3N1ZXMtY291bnQtZW50ZXJdLFxcbiAgICAgICAgICAgIFtkYXRhLWlzc3Vlcy1jb3VudC1wbHVyYWxdIHtcXG4gICAgICAgICAgICAgIGFuaW1hdGlvbi1kdXJhdGlvbjogMG1zICFpbXBvcnRhbnQ7XFxuICAgICAgICAgICAgfVxcbiAgICAgICAgICB9XFxuICAgICAgICBcIl0sbnx8KG49ZS5zbGljZSgwKSksT2JqZWN0LmZyZWV6ZShPYmplY3QuZGVmaW5lUHJvcGVydGllcyhlLHtyYXc6e3ZhbHVlOk9iamVjdC5mcmVlemUobil9fSkpKTtyZXR1cm4gbyQ9ZnVuY3Rpb24oKXtyZXR1cm4gdH0sdH1mdW5jdGlvbiBvWihlKXt2YXIgbj1lLmRpc2FibGVkLHQ9ZS5pc3N1ZUNvdW50LHI9ZS5pc0RldkJ1aWxkaW5nLG89ZS5pc0RldlJlbmRlcmluZyxhPWUuaXNCdWlsZEVycm9yLGk9ZS5vblRyaWdnZXJDbGljayxsPWUudG9nZ2xlRXJyb3JPdmVybGF5LHM9ZS5zY2FsZSxjPW9xKGUsW1wiZGlzYWJsZWRcIixcImlzc3VlQ291bnRcIixcImlzRGV2QnVpbGRpbmdcIixcImlzRGV2UmVuZGVyaW5nXCIsXCJpc0J1aWxkRXJyb3JcIixcIm9uVHJpZ2dlckNsaWNrXCIsXCJ0b2dnbGVFcnJvck92ZXJsYXlcIixcInNjYWxlXCJdKSx1PXQ+MCxkPW9XKCgwLHgudXNlU3RhdGUpKHUpLDIpLGY9ZFswXSxwPWRbMV0saD1vVygoMCx4LnVzZVN0YXRlKSghMSksMiksZz1oWzBdLG09aFsxXSx2PXRNKHQsMTUwKSxiPSgwLHgudXNlUmVmKShudWxsKSx3PSgwLHgudXNlUmVmKShudWxsKSxqPXRGKHcpLGs9dEQocnx8byksQT1mfHxuO3JldHVybigwLHgudXNlRWZmZWN0KShmdW5jdGlvbigpe3AodSl9LFt1XSksKDAseS5qc3hzKShcImRpdlwiLHtcImRhdGEtbmV4dC1iYWRnZS1yb290XCI6ITAsc3R5bGU6e1wiLS1zaXplXCI6XCJcIi5jb25jYXQoMzYvKHZvaWQgMD09PXM/MTpzKSxcInB4XCIpLFwiLS1kdXJhdGlvbi1zaG9ydFwiOlwiXCIuY29uY2F0KDE1MCxcIm1zXCIpLGRpc3BsYXk6biYmKCF1fHxnKT9cIm5vbmVcIjpcImJsb2NrXCJ9LGNoaWxkcmVuOlsoMCx5LmpzeCkoXCJzdHlsZVwiLHtjaGlsZHJlbjplaShvJCgpKX0pLCgwLHkuanN4KShcImRpdlwiLHtcImRhdGEtbmV4dC1iYWRnZVwiOiEwLFwiZGF0YS1lcnJvclwiOnUsXCJkYXRhLWVycm9yLWV4cGFuZGVkXCI6QSxcImRhdGEtYW5pbWF0ZVwiOnYsc3R5bGU6e3dpZHRoOjA9PT1qP1wiYXV0b1wiOmp9LGNoaWxkcmVuOigwLHkuanN4cykoXCJkaXZcIix7cmVmOncsY2hpbGRyZW46WyFuJiYoMCx5LmpzeCkoXCJidXR0b25cIixvVihvVSh7cmVmOmIsXCJkYXRhLW5leHQtbWFya1wiOiEwLFwiZGF0YS1uZXh0LW1hcmstbG9hZGluZ1wiOmssb25DbGljazppfSxjKSx7Y2hpbGRyZW46KDAseS5qc3gpKG9YLHtpc0xvYWRpbmc6ayxpc0RldkJ1aWxkaW5nOnJ9KX0pKSxBJiYoMCx5LmpzeHMpKFwiZGl2XCIse1wiZGF0YS1pc3N1ZXNcIjohMCxjaGlsZHJlbjpbKDAseS5qc3hzKShcImJ1dHRvblwiLHtcImRhdGEtaXNzdWVzLW9wZW5cIjohMCxcImFyaWEtbGFiZWxcIjpcIk9wZW4gaXNzdWVzIG92ZXJsYXlcIixvbkNsaWNrOmwsY2hpbGRyZW46W24mJigwLHkuanN4KShcImRpdlwiLHtcImRhdGEtZGlzYWJsZWQtaWNvblwiOiEwLGNoaWxkcmVuOigwLHkuanN4KShvaix7fSl9KSwoMCx5LmpzeCkob1kse2FuaW1hdGU6dixcImRhdGEtaXNzdWVzLWNvdW50LWFuaW1hdGlvblwiOiEwLGNoaWxkcmVuOnR9LHQpLFwiIFwiLCgwLHkuanN4cykoXCJkaXZcIix7Y2hpbGRyZW46W1wiSXNzdWVcIix0PjEmJigwLHkuanN4KShcInNwYW5cIix7XCJhcmlhLWhpZGRlblwiOiEwLFwiZGF0YS1pc3N1ZXMtY291bnQtcGx1cmFsXCI6ITAsXCJkYXRhLWFuaW1hdGVcIjp2JiYyPT09dCxjaGlsZHJlbjpcInNcIn0pXX0pXX0pLCFhJiYoMCx5LmpzeCkoXCJidXR0b25cIix7XCJkYXRhLWlzc3Vlcy1jb2xsYXBzZVwiOiEwLFwiYXJpYS1sYWJlbFwiOlwiQ29sbGFwc2UgaXNzdWVzIGJhZGdlXCIsb25DbGljazpmdW5jdGlvbigpe3ZhciBlO24/bSghMCk6cCghMSksbnVsbD09KGU9Yi5jdXJyZW50KXx8ZS5mb2N1cygpfSxjaGlsZHJlbjooMCx5LmpzeCkob0gse1wiZGF0YS1jcm9zc1wiOiEwfSl9KV19KV19KX0pLCgwLHkuanN4KShcImRpdlwiLHtcImFyaWEtaGlkZGVuXCI6ITAsXCJkYXRhLWRvdFwiOiEwfSldfSl9ZnVuY3Rpb24gb1koZSl7dmFyIG49ZS5jaGlsZHJlbix0PWUuYW5pbWF0ZSxyPW9xKGUsW1wiY2hpbGRyZW5cIixcImFuaW1hdGVcIl0pO3JldHVybigwLHkuanN4cykoXCJkaXZcIixvVihvVSh7fSxyKSx7XCJkYXRhLWFuaW1hdGVcIjp2b2lkIDA9PT10fHx0LGNoaWxkcmVuOlsoMCx5LmpzeCkoXCJkaXZcIix7XCJhcmlhLWhpZGRlblwiOiEwLFwiZGF0YS1pc3N1ZXMtY291bnQtZXhpdFwiOiEwLGNoaWxkcmVuOm4tMX0pLCgwLHkuanN4KShcImRpdlwiLHtcImRhdGEtaXNzdWVzLWNvdW50XCI6ITAsXCJkYXRhLWlzc3Vlcy1jb3VudC1lbnRlclwiOiEwLGNoaWxkcmVuOm59KV19KSl9ZnVuY3Rpb24gb1goZSl7dmFyIG49ZS5pc0xvYWRpbmcsdD1lLmlzRGV2QnVpbGRpbmc/XCJyZ2JhKDI1NSwyNTUsMjU1LDAuNylcIjpcIndoaXRlXCI7cmV0dXJuKDAseS5qc3hzKShcInN2Z1wiLHt3aWR0aDpcIjQwXCIsaGVpZ2h0OlwiNDBcIix2aWV3Qm94OlwiMCAwIDQwIDQwXCIsZmlsbDpcIm5vbmVcIixcImRhdGEtbmV4dC1tYXJrLWxvYWRpbmdcIjpuLGNoaWxkcmVuOlsoMCx5LmpzeHMpKFwiZ1wiLHt0cmFuc2Zvcm06XCJ0cmFuc2xhdGUoOC41LCAxMylcIixjaGlsZHJlbjpbKDAseS5qc3gpKFwicGF0aFwiLHtjbGFzc05hbWU6bj9cInBhdGgwXCI6XCJwYXVzZWRcIixkOlwiTTEzLjMgMTUuMiBMMi4zNCAxIFYxMi42XCIsZmlsbDpcIm5vbmVcIixzdHJva2U6XCJ1cmwoI25leHRfbG9nb19wYWludDBfbGluZWFyXzEzNTdfMTA4NTMpXCIsc3Ryb2tlV2lkdGg6XCIxLjg2XCIsbWFzazpcInVybCgjbmV4dF9sb2dvX21hc2swKVwiLHN0cm9rZURhc2hhcnJheTpcIjI5LjZcIixzdHJva2VEYXNob2Zmc2V0OlwiMjkuNlwifSksKDAseS5qc3gpKFwicGF0aFwiLHtjbGFzc05hbWU6bj9cInBhdGgxXCI6XCJwYXVzZWRcIixkOlwiTTExLjgyNSAxLjUgVjEzLjFcIixzdHJva2VXaWR0aDpcIjEuODZcIixzdHJva2U6XCJ1cmwoI25leHRfbG9nb19wYWludDFfbGluZWFyXzEzNTdfMTA4NTMpXCIsc3Ryb2tlRGFzaGFycmF5OlwiMTEuNlwiLHN0cm9rZURhc2hvZmZzZXQ6XCIxMS42XCJ9KV19KSwoMCx5LmpzeHMpKFwiZGVmc1wiLHtjaGlsZHJlbjpbKDAseS5qc3hzKShcImxpbmVhckdyYWRpZW50XCIse2lkOlwibmV4dF9sb2dvX3BhaW50MF9saW5lYXJfMTM1N18xMDg1M1wiLHgxOlwiOS45NTU1NVwiLHkxOlwiMTEuMTIyNlwiLHgyOlwiMTUuNDc3OFwiLHkyOlwiMTcuOTY3MVwiLGdyYWRpZW50VW5pdHM6XCJ1c2VyU3BhY2VPblVzZVwiLGNoaWxkcmVuOlsoMCx5LmpzeCkoXCJzdG9wXCIse3N0b3BDb2xvcjp0fSksKDAseS5qc3gpKFwic3RvcFwiLHtvZmZzZXQ6XCIwLjYwNDA3MlwiLHN0b3BDb2xvcjp0LHN0b3BPcGFjaXR5OlwiMFwifSksKDAseS5qc3gpKFwic3RvcFwiLHtvZmZzZXQ6XCIxXCIsc3RvcENvbG9yOnQsc3RvcE9wYWNpdHk6XCIwXCJ9KV19KSwoMCx5LmpzeHMpKFwibGluZWFyR3JhZGllbnRcIix7aWQ6XCJuZXh0X2xvZ29fcGFpbnQxX2xpbmVhcl8xMzU3XzEwODUzXCIseDE6XCIxMS44MjIyXCIseTE6XCIxLjQwMDM5XCIseDI6XCIxMS43OTFcIix5MjpcIjkuNjI1NDJcIixncmFkaWVudFVuaXRzOlwidXNlclNwYWNlT25Vc2VcIixjaGlsZHJlbjpbKDAseS5qc3gpKFwic3RvcFwiLHtzdG9wQ29sb3I6dH0pLCgwLHkuanN4KShcInN0b3BcIix7b2Zmc2V0OlwiMVwiLHN0b3BDb2xvcjp0LHN0b3BPcGFjaXR5OlwiMFwifSldfSksKDAseS5qc3hzKShcIm1hc2tcIix7aWQ6XCJuZXh0X2xvZ29fbWFzazBcIixjaGlsZHJlbjpbKDAseS5qc3gpKFwicmVjdFwiLHt3aWR0aDpcIjEwMCVcIixoZWlnaHQ6XCIxMDAlXCIsZmlsbDpcIndoaXRlXCJ9KSwoMCx5LmpzeCkoXCJyZWN0XCIse3dpZHRoOlwiNVwiLGhlaWdodDpcIjEuNVwiLGZpbGw6XCJibGFja1wifSldfSldfSldfSl9ZnVuY3Rpb24gb0soZSxuKXsobnVsbD09bnx8bj5lLmxlbmd0aCkmJihuPWUubGVuZ3RoKTtmb3IodmFyIHQ9MCxyPUFycmF5KG4pO3Q8bjt0Kyspclt0XT1lW3RdO3JldHVybiByfWZ1bmN0aW9uIG9RKGUsbix0KXtyZXR1cm4gbiBpbiBlP09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLG4se3ZhbHVlOnQsZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITB9KTplW25dPXQsZX1mdW5jdGlvbiBvRyhlLG4pe3JldHVybiBmdW5jdGlvbihlKXtpZihBcnJheS5pc0FycmF5KGUpKXJldHVybiBlfShlKXx8ZnVuY3Rpb24oZSxuKXt2YXIgdCxyLG89bnVsbD09ZT9udWxsOlwidW5kZWZpbmVkXCIhPXR5cGVvZiBTeW1ib2wmJmVbU3ltYm9sLml0ZXJhdG9yXXx8ZVtcIkBAaXRlcmF0b3JcIl07aWYobnVsbCE9byl7dmFyIGE9W10saT0hMCxsPSExO3RyeXtmb3Iobz1vLmNhbGwoZSk7IShpPSh0PW8ubmV4dCgpKS5kb25lKSYmKGEucHVzaCh0LnZhbHVlKSwhbnx8YS5sZW5ndGghPT1uKTtpPSEwKTt9Y2F0Y2goZSl7bD0hMCxyPWV9ZmluYWxseXt0cnl7aXx8bnVsbD09by5yZXR1cm58fG8ucmV0dXJuKCl9ZmluYWxseXtpZihsKXRocm93IHJ9fXJldHVybiBhfX0oZSxuKXx8ZnVuY3Rpb24oZSxuKXtpZihlKXtpZihcInN0cmluZ1wiPT10eXBlb2YgZSlyZXR1cm4gb0soZSxuKTt2YXIgdD1PYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwoZSkuc2xpY2UoOCwtMSk7aWYoXCJPYmplY3RcIj09PXQmJmUuY29uc3RydWN0b3ImJih0PWUuY29uc3RydWN0b3IubmFtZSksXCJNYXBcIj09PXR8fFwiU2V0XCI9PT10KXJldHVybiBBcnJheS5mcm9tKHQpO2lmKFwiQXJndW1lbnRzXCI9PT10fHwvXig/OlVpfEkpbnQoPzo4fDE2fDMyKSg/OkNsYW1wZWQpP0FycmF5JC8udGVzdCh0KSlyZXR1cm4gb0soZSxuKX19KGUsbil8fGZ1bmN0aW9uKCl7dGhyb3cgVHlwZUVycm9yKFwiSW52YWxpZCBhdHRlbXB0IHRvIGRlc3RydWN0dXJlIG5vbi1pdGVyYWJsZSBpbnN0YW5jZS5cXFxcbkluIG9yZGVyIHRvIGJlIGl0ZXJhYmxlLCBub24tYXJyYXkgb2JqZWN0cyBtdXN0IGhhdmUgYSBbU3ltYm9sLml0ZXJhdG9yXSgpIG1ldGhvZC5cIil9KCl9ZnVuY3Rpb24gb0ooZSl7dmFyIG4sdD1lLnN0YXRlLHI9ZS5kaXNwYXRjaCxvPWUuZXJyb3JDb3VudCxhPWUuaXNCdWlsZEVycm9yLGk9b0coKDAseC51c2VTdGF0ZSkoITEpLDIpLGw9aVswXSxzPWlbMV0sYz1vRyh0LmRldlRvb2xzUG9zaXRpb24uc3BsaXQoXCItXCIsMiksMiksdT1jWzBdLGQ9Y1sxXTtyZXR1cm4oMCx5LmpzeCkodFIse1wiZGF0YS1uZXh0anMtdG9hc3RcIjohMCxzdHlsZToob1Eobj17XCItLWFuaW1hdGUtb3V0LWR1cmF0aW9uLW1zXCI6XCJcIi5jb25jYXQoblEuSzcsXCJtc1wiKSxcIi0tYW5pbWF0ZS1vdXQtdGltaW5nLWZ1bmN0aW9uXCI6blEudUQsYm94U2hhZG93Olwibm9uZVwifSx1LFwiXCIuY29uY2F0KDIwLFwicHhcIikpLG9RKG4sZCxcIlwiLmNvbmNhdCgyMCxcInB4XCIpKSxvUShuLFwidmlzaWJpbGl0eVwiLHQuaXNEZXZUb29sc1BhbmVsT3Blbnx8dC5pc0Vycm9yT3ZlcmxheU9wZW4/XCJoaWRkZW5cIjpcInZpc2libGVcIiksbiksY2hpbGRyZW46KDAseS5qc3gpKHJOLHtwYWRkaW5nOjIwLG9uRHJhZ1N0YXJ0OmZ1bmN0aW9uKCl7cmV0dXJuIHMoITEpfSxwb3NpdGlvbjp0LmRldlRvb2xzUG9zaXRpb24sc2V0UG9zaXRpb246ZnVuY3Rpb24oZSl7cih7dHlwZTpZLGRldlRvb2xzUG9zaXRpb246ZX0pLGxvY2FsU3RvcmFnZS5zZXRJdGVtKEcsZSl9LGNoaWxkcmVuOigwLHkuanN4KShvWix7XCJhcmlhLWhhc3BvcHVwXCI6XCJtZW51XCIsXCJhcmlhLWV4cGFuZGVkXCI6bCxcImFyaWEtY29udHJvbHNcIjpcIm5leHRqcy1kZXYtdG9vbHMtbWVudVwiLFwiYXJpYS1sYWJlbFwiOlwiXCIuY29uY2F0KGw/XCJDbG9zZVwiOlwiT3BlblwiLFwiIE5leHQuanMgRGV2IFRvb2xzXCIpLFwiZGF0YS1uZXh0anMtZGV2LXRvb2xzLWJ1dHRvblwiOiEwLGRpc2FibGVkOnQuZGlzYWJsZURldkluZGljYXRvcixpc3N1ZUNvdW50Om8sb25UcmlnZ2VyQ2xpY2s6ZnVuY3Rpb24oKXtyKHt0eXBlOlp9KX0sdG9nZ2xlRXJyb3JPdmVybGF5OmZ1bmN0aW9uKCl7cih7dHlwZTpNfSkscih7dHlwZTpXfSl9LGlzRGV2QnVpbGRpbmc6dC5idWlsZGluZ0luZGljYXRvcixpc0RldlJlbmRlcmluZzp0LnJlbmRlcmluZ0luZGljYXRvcixpc0J1aWxkRXJyb3I6YSxzY2FsZTp0LnNjYWxlfSl9KX0pfWZ1bmN0aW9uIG8wKGUpe3ZhciBuLHQ7cmV0dXJuKDAseS5qc3gpKFwic3ZnXCIsKG49ZnVuY3Rpb24oZSl7Zm9yKHZhciBuPTE7bjxhcmd1bWVudHMubGVuZ3RoO24rKyl7dmFyIHQ9bnVsbCE9YXJndW1lbnRzW25dP2FyZ3VtZW50c1tuXTp7fSxyPU9iamVjdC5rZXlzKHQpO1wiZnVuY3Rpb25cIj09dHlwZW9mIE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMmJihyPXIuY29uY2F0KE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHModCkuZmlsdGVyKGZ1bmN0aW9uKGUpe3JldHVybiBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHQsZSkuZW51bWVyYWJsZX0pKSksci5mb3JFYWNoKGZ1bmN0aW9uKG4pe3ZhciByLG8sYTtyPWUsbz1uLGE9dFtuXSxvIGluIHI/T2JqZWN0LmRlZmluZVByb3BlcnR5KHIsbyx7dmFsdWU6YSxlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMH0pOnJbb109YX0pfXJldHVybiBlfSh7eG1sbnM6XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiLHdpZHRoOlwiMTZcIixoZWlnaHQ6XCIxNlwiLHZpZXdCb3g6XCIwIDAgMTYgMTZcIixmaWxsOlwibm9uZVwifSxlKSx0PXQ9e2NoaWxkcmVuOigwLHkuanN4KShcInBhdGhcIix7ZDpcIk0xNSAxNEMxNSAxNC41NTIzIDE0LjU1MjMgMTUgMTQgMTVIMTBWMTMuNUgxMy41VjEwSDE1VjE0Wk0yLjUgMTMuNDk5SDZWMTQuOTk5SDJDMS40NDc3MiAxNC45OTkgMSAxNC41NTEzIDEgMTMuOTk5VjkuOTk5MDJIMi41VjEzLjQ5OVpNNiAyLjVIMi41VjZIMVYyQzEgMS40NDc3MiAxLjQ0NzcyIDEgMiAxSDZWMi41Wk0xNCAxQzE0LjU1MjMgMSAxNSAxLjQ0NzcyIDE1IDJWNkgxMy41VjIuNUgxMFYxSDE0WlwiLGZpbGw6XCJjdXJyZW50Q29sb3JcIn0pfSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycz9PYmplY3QuZGVmaW5lUHJvcGVydGllcyhuLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzKHQpKTooZnVuY3Rpb24oZSxuKXt2YXIgdD1PYmplY3Qua2V5cyhlKTtpZihPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKXt2YXIgcj1PYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKGUpO3QucHVzaC5hcHBseSh0LHIpfXJldHVybiB0fSkoT2JqZWN0KHQpKS5mb3JFYWNoKGZ1bmN0aW9uKGUpe09iamVjdC5kZWZpbmVQcm9wZXJ0eShuLGUsT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcih0LGUpKX0pLG4pKX1mdW5jdGlvbiBvMShlKXt2YXIgbix0O3JldHVybigwLHkuanN4KShcInN2Z1wiLChuPWZ1bmN0aW9uKGUpe2Zvcih2YXIgbj0xO248YXJndW1lbnRzLmxlbmd0aDtuKyspe3ZhciB0PW51bGwhPWFyZ3VtZW50c1tuXT9hcmd1bWVudHNbbl06e30scj1PYmplY3Qua2V5cyh0KTtcImZ1bmN0aW9uXCI9PXR5cGVvZiBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzJiYocj1yLmNvbmNhdChPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKHQpLmZpbHRlcihmdW5jdGlvbihlKXtyZXR1cm4gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcih0LGUpLmVudW1lcmFibGV9KSkpLHIuZm9yRWFjaChmdW5jdGlvbihuKXt2YXIgcixvLGE7cj1lLG89bixhPXRbbl0sbyBpbiByP09iamVjdC5kZWZpbmVQcm9wZXJ0eShyLG8se3ZhbHVlOmEsZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITB9KTpyW29dPWF9KX1yZXR1cm4gZX0oe3htbG5zOlwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIix3aWR0aDpcIjE2XCIsaGVpZ2h0OlwiMTZcIix2aWV3Qm94OlwiMCAwIDE2IDE2XCIsZmlsbDpcIm5vbmVcIn0sZSksdD10PXtjaGlsZHJlbjooMCx5LmpzeCkoXCJwYXRoXCIse2ZpbGxSdWxlOlwiZXZlbm9kZFwiLGNsaXBSdWxlOlwiZXZlbm9kZFwiLGQ6XCJNMSA2VjQuNUg0LjVWMUg2VjVDNiA1LjU1MjI4IDUuNTUyMjggNiA1IDZIMVpNMTEuNSAxSDEwVjVDMTAgNS41NTIyOCAxMC40NDc3IDYgMTEgNkgxNVY0LjVIMTEuNVYxWk0xNS4wNCAxMS41VjEwSDExQzEwLjQ0NzcgMTAgMTAgMTAuNDQ3NyAxMCAxMVYxNUgxMS41VjExLjVIMTUuMDRaTTQuNSAxNUg2VjExQzYgMTAuNDQ3NyA1LjU1MjI4IDEwIDUgMTBIMVYxMS41SDQuNVYxNVpcIixmaWxsOlwiY3VycmVudENvbG9yXCJ9KX0sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcnM/T2JqZWN0LmRlZmluZVByb3BlcnRpZXMobixPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycyh0KSk6KGZ1bmN0aW9uKGUsbil7dmFyIHQ9T2JqZWN0LmtleXMoZSk7aWYoT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyl7dmFyIHI9T2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhlKTt0LnB1c2guYXBwbHkodCxyKX1yZXR1cm4gdH0pKE9iamVjdCh0KSkuZm9yRWFjaChmdW5jdGlvbihlKXtPYmplY3QuZGVmaW5lUHJvcGVydHkobixlLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IodCxlKSl9KSxuKSl9ZnVuY3Rpb24gbzIoZSxuKXsobnVsbD09bnx8bj5lLmxlbmd0aCkmJihuPWUubGVuZ3RoKTtmb3IodmFyIHQ9MCxyPUFycmF5KG4pO3Q8bjt0Kyspclt0XT1lW3RdO3JldHVybiByfXZhciBvND1cIm5leHRqcy1kZXZ0b29scy1kaW1lbnNpb25zXCIsbzU9KDAseC5jcmVhdGVDb250ZXh0KShudWxsKSxvMz1mdW5jdGlvbihlKXt2YXIgbj0uOTUqd2luZG93LmlubmVyV2lkdGgsdD0uOTUqd2luZG93LmlubmVySGVpZ2h0O3JldHVybnt3aWR0aDpNYXRoLm1pbihuLE1hdGgubWF4KGUubWluV2lkdGgsZS53aWR0aCkpLGhlaWdodDpNYXRoLm1pbih0LE1hdGgubWF4KGUubWluSGVpZ2h0LGUuaGVpZ2h0KSl9fSxvNj1mdW5jdGlvbigpe3ZhciBlPWxvY2FsU3RvcmFnZS5nZXRJdGVtKG80KTtpZighZSlyZXR1cm4gbnVsbDt0cnl7dmFyIG4sdD1KU09OLnBhcnNlKGUpO2lmKCh2b2lkIDA9PT10P1widW5kZWZpbmVkXCI6KG49dCkmJlwidW5kZWZpbmVkXCIhPXR5cGVvZiBTeW1ib2wmJm4uY29uc3RydWN0b3I9PT1TeW1ib2w/XCJzeW1ib2xcIjp0eXBlb2Ygbik9PVwib2JqZWN0XCImJm51bGwhPT10JiZcIm51bWJlclwiPT10eXBlb2YgdC53aWR0aCYmXCJudW1iZXJcIj09dHlwZW9mIHQuaGVpZ2h0KXJldHVybnt3aWR0aDp0LndpZHRoLGhlaWdodDp0LmhlaWdodH07cmV0dXJuIG51bGx9Y2F0Y2goZSl7cmV0dXJuIGxvY2FsU3RvcmFnZS5yZW1vdmVJdGVtKG80KSxudWxsfX0sbzk9ZnVuY3Rpb24oZSl7dmFyIG4sdCxyLG8sYT1lLnZhbHVlLGk9ZS5jaGlsZHJlbixsPW51bGwhPShyPWEubWluV2lkdGgpP3I6MTAwLHM9bnVsbCE9KG89YS5taW5IZWlnaHQpP286ODAsYz0obj0oMCx4LnVzZVN0YXRlKShudWxsKSx0PTIsZnVuY3Rpb24oZSl7aWYoQXJyYXkuaXNBcnJheShlKSlyZXR1cm4gZX0obil8fGZ1bmN0aW9uKGUsbil7dmFyIHQscixvPW51bGw9PWU/bnVsbDpcInVuZGVmaW5lZFwiIT10eXBlb2YgU3ltYm9sJiZlW1N5bWJvbC5pdGVyYXRvcl18fGVbXCJAQGl0ZXJhdG9yXCJdO2lmKG51bGwhPW8pe3ZhciBhPVtdLGk9ITAsbD0hMTt0cnl7Zm9yKG89by5jYWxsKGUpOyEoaT0odD1vLm5leHQoKSkuZG9uZSkmJihhLnB1c2godC52YWx1ZSksYS5sZW5ndGghPT1uKTtpPSEwKTt9Y2F0Y2goZSl7bD0hMCxyPWV9ZmluYWxseXt0cnl7aXx8bnVsbD09by5yZXR1cm58fG8ucmV0dXJuKCl9ZmluYWxseXtpZihsKXRocm93IHJ9fXJldHVybiBhfX0obiwyKXx8ZnVuY3Rpb24oZSxuKXtpZihlKXtpZihcInN0cmluZ1wiPT10eXBlb2YgZSlyZXR1cm4gbzIoZSxuKTt2YXIgdD1PYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwoZSkuc2xpY2UoOCwtMSk7aWYoXCJPYmplY3RcIj09PXQmJmUuY29uc3RydWN0b3ImJih0PWUuY29uc3RydWN0b3IubmFtZSksXCJNYXBcIj09PXR8fFwiU2V0XCI9PT10KXJldHVybiBBcnJheS5mcm9tKHQpO2lmKFwiQXJndW1lbnRzXCI9PT10fHwvXig/OlVpfEkpbnQoPzo4fDE2fDMyKSg/OkNsYW1wZWQpP0FycmF5JC8udGVzdCh0KSlyZXR1cm4gbzIoZSxuKX19KG4sdCl8fGZ1bmN0aW9uKCl7dGhyb3cgVHlwZUVycm9yKFwiSW52YWxpZCBhdHRlbXB0IHRvIGRlc3RydWN0dXJlIG5vbi1pdGVyYWJsZSBpbnN0YW5jZS5cXFxcbkluIG9yZGVyIHRvIGJlIGl0ZXJhYmxlLCBub24tYXJyYXkgb2JqZWN0cyBtdXN0IGhhdmUgYSBbU3ltYm9sLml0ZXJhdG9yXSgpIG1ldGhvZC5cIil9KCkpLHU9Y1swXSxkPWNbMV07cmV0dXJuKDAseC51c2VMYXlvdXRFZmZlY3QpKGZ1bmN0aW9uKCl7dmFyIGU9ZnVuY3Rpb24oKXtpZihhLnJlc2l6ZVJlZi5jdXJyZW50KXt2YXIgZT1vNigpO2lmKGUpe3ZhciBuLHQscj1vMygobj1mdW5jdGlvbihlKXtmb3IodmFyIG49MTtuPGFyZ3VtZW50cy5sZW5ndGg7bisrKXt2YXIgdD1udWxsIT1hcmd1bWVudHNbbl0/YXJndW1lbnRzW25dOnt9LHI9T2JqZWN0LmtleXModCk7XCJmdW5jdGlvblwiPT10eXBlb2YgT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyYmKHI9ci5jb25jYXQoT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyh0KS5maWx0ZXIoZnVuY3Rpb24oZSl7cmV0dXJuIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IodCxlKS5lbnVtZXJhYmxlfSkpKSxyLmZvckVhY2goZnVuY3Rpb24obil7dmFyIHIsbyxhO3I9ZSxvPW4sYT10W25dLG8gaW4gcj9PYmplY3QuZGVmaW5lUHJvcGVydHkocixvLHt2YWx1ZTphLGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwfSk6cltvXT1hfSl9cmV0dXJuIGV9KHt9LGUpLHQ9dD17bWluV2lkdGg6bnVsbCE9bD9sOjEwMCxtaW5IZWlnaHQ6bnVsbCE9cz9zOjgwfSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycz9PYmplY3QuZGVmaW5lUHJvcGVydGllcyhuLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzKHQpKTooZnVuY3Rpb24oZSxuKXt2YXIgdD1PYmplY3Qua2V5cyhlKTtpZihPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKXt2YXIgcj1PYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKGUpO3QucHVzaC5hcHBseSh0LHIpfXJldHVybiB0fSkoT2JqZWN0KHQpKS5mb3JFYWNoKGZ1bmN0aW9uKGUpe09iamVjdC5kZWZpbmVQcm9wZXJ0eShuLGUsT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcih0LGUpKX0pLG4pKSxvPXIuaGVpZ2h0LGk9ci53aWR0aDthLnJlc2l6ZVJlZi5jdXJyZW50LnN0eWxlLndpZHRoPVwiXCIuY29uY2F0KGksXCJweFwiKSxhLnJlc2l6ZVJlZi5jdXJyZW50LnN0eWxlLmhlaWdodD1cIlwiLmNvbmNhdChvLFwicHhcIil9fX07cmV0dXJuIGUoKSx3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcihcInJlc2l6ZVwiLGUpLGZ1bmN0aW9uKCl7cmV0dXJuIHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKFwicmVzaXplXCIsZSl9fSxbYS5yZXNpemVSZWYsbCxzXSksKDAseS5qc3gpKG81LlByb3ZpZGVyLHt2YWx1ZTp7cmVzaXplUmVmOmEucmVzaXplUmVmLG1pbldpZHRoOmwsbWluSGVpZ2h0OnMsZGV2VG9vbHNQb3NpdGlvbjphLmRldlRvb2xzUG9zaXRpb24sZHJhZ2dpbmdEaXJlY3Rpb246dSxzZXREcmFnZ2luZ0RpcmVjdGlvbjpkfSxjaGlsZHJlbjppfSl9LG84PWZ1bmN0aW9uKCl7dmFyIGU9KDAseC51c2VDb250ZXh0KShvNSk7aWYoIWUpdGhyb3cgRXJyb3IoXCJ1c2VSZXNpemUgbXVzdCBiZSB1c2VkIHdpdGhpbiBhIFJlc2l6ZSBwcm92aWRlclwiKTtyZXR1cm4gZX0sbzc9X193ZWJwYWNrX3JlcXVpcmVfXyhcIi4uLy4uL25vZGVfbW9kdWxlcy8ucG5wbS9jc3MtbG9hZGVyQDcuMS4yX0Byc3BhY2srY29yZUAxLjQuNV9Ac3djK2hlbHBlcnNAMC41LjE1X193ZWJwYWNrQDUuOTguMF9Ac3djK2NvcmVAMS4xMS4yNF9Ac3dfd203ZWU1aWM0bW9mcmhpc3Vkd29uNHFwcTQvbm9kZV9tb2R1bGVzL2Nzcy1sb2FkZXIvZGlzdC9janMuanMhLi9zcmMvbmV4dC1kZXZ0b29scy9kZXYtb3ZlcmxheS9jb21wb25lbnRzL2RldnRvb2xzLXBhbmVsL3Jlc2l6ZS9yZXNpemUtaGFuZGxlLmNzc1wiKSxhZT17fTtmdW5jdGlvbiBhbihlLG4peyhudWxsPT1ufHxuPmUubGVuZ3RoKSYmKG49ZS5sZW5ndGgpO2Zvcih2YXIgdD0wLHI9QXJyYXkobik7dDxuO3QrKylyW3RdPWVbdF07cmV0dXJuIHJ9YWUuc3R5bGVUYWdUcmFuc2Zvcm09aCgpLGFlLnNldEF0dHJpYnV0ZXM9dSgpLGFlLmluc2VydD1zKCksYWUuZG9tQVBJPWkoKSxhZS5pbnNlcnRTdHlsZUVsZW1lbnQ9ZigpLG8oKShvNy5aLGFlKSxvNy5aJiZvNy5aLmxvY2FscyYmbzcuWi5sb2NhbHM7dmFyIGF0PWZ1bmN0aW9uKGUpe3ZhciBuLHQscj1lLmRpcmVjdGlvbixvPW84KCksYT1vLnJlc2l6ZVJlZixpPW8ubWluV2lkdGgsbD1vLm1pbkhlaWdodCxzPW8uZGV2VG9vbHNQb3NpdGlvbixjPW8uZHJhZ2dpbmdEaXJlY3Rpb24sdT1vLnNldERyYWdnaW5nRGlyZWN0aW9uLGQ9KG49KDAseC51c2VTdGF0ZSkoe3RvcDowLHJpZ2h0OjAsYm90dG9tOjAsbGVmdDowfSksdD0yLGZ1bmN0aW9uKGUpe2lmKEFycmF5LmlzQXJyYXkoZSkpcmV0dXJuIGV9KG4pfHxmdW5jdGlvbihlLG4pe3ZhciB0LHIsbz1udWxsPT1lP251bGw6XCJ1bmRlZmluZWRcIiE9dHlwZW9mIFN5bWJvbCYmZVtTeW1ib2wuaXRlcmF0b3JdfHxlW1wiQEBpdGVyYXRvclwiXTtpZihudWxsIT1vKXt2YXIgYT1bXSxpPSEwLGw9ITE7dHJ5e2ZvcihvPW8uY2FsbChlKTshKGk9KHQ9by5uZXh0KCkpLmRvbmUpJiYoYS5wdXNoKHQudmFsdWUpLGEubGVuZ3RoIT09bik7aT0hMCk7fWNhdGNoKGUpe2w9ITAscj1lfWZpbmFsbHl7dHJ5e2l8fG51bGw9PW8ucmV0dXJufHxvLnJldHVybigpfWZpbmFsbHl7aWYobCl0aHJvdyByfX1yZXR1cm4gYX19KG4sMil8fGZ1bmN0aW9uKGUsbil7aWYoZSl7aWYoXCJzdHJpbmdcIj09dHlwZW9mIGUpcmV0dXJuIGFuKGUsbik7dmFyIHQ9T2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKGUpLnNsaWNlKDgsLTEpO2lmKFwiT2JqZWN0XCI9PT10JiZlLmNvbnN0cnVjdG9yJiYodD1lLmNvbnN0cnVjdG9yLm5hbWUpLFwiTWFwXCI9PT10fHxcIlNldFwiPT09dClyZXR1cm4gQXJyYXkuZnJvbSh0KTtpZihcIkFyZ3VtZW50c1wiPT09dHx8L14oPzpVaXxJKW50KD86OHwxNnwzMikoPzpDbGFtcGVkKT9BcnJheSQvLnRlc3QodCkpcmV0dXJuIGFuKGUsbil9fShuLHQpfHxmdW5jdGlvbigpe3Rocm93IFR5cGVFcnJvcihcIkludmFsaWQgYXR0ZW1wdCB0byBkZXN0cnVjdHVyZSBub24taXRlcmFibGUgaW5zdGFuY2UuXFxcXG5JbiBvcmRlciB0byBiZSBpdGVyYWJsZSwgbm9uLWFycmF5IG9iamVjdHMgbXVzdCBoYXZlIGEgW1N5bWJvbC5pdGVyYXRvcl0oKSBtZXRob2QuXCIpfSgpKSxmPWRbMF0scD1kWzFdO2lmKCgwLHgudXNlTGF5b3V0RWZmZWN0KShmdW5jdGlvbigpe2lmKGEuY3VycmVudCl7dmFyIGU9YS5jdXJyZW50LG49d2luZG93LmdldENvbXB1dGVkU3R5bGUoZSk7cCh7dG9wOnBhcnNlRmxvYXQobi5ib3JkZXJUb3BXaWR0aCl8fDAscmlnaHQ6cGFyc2VGbG9hdChuLmJvcmRlclJpZ2h0V2lkdGgpfHwwLGJvdHRvbTpwYXJzZUZsb2F0KG4uYm9yZGVyQm90dG9tV2lkdGgpfHwwLGxlZnQ6cGFyc2VGbG9hdChuLmJvcmRlckxlZnRXaWR0aCl8fDB9KX19LFthXSksISghcy5zcGxpdChcIi1cIikuaW5jbHVkZXMocikmJighci5pbmNsdWRlcyhcIi1cIil8fHI9PT1mdW5jdGlvbihlKXtzd2l0Y2goZSl7Y2FzZVwidG9wLWxlZnRcIjpyZXR1cm5cImJvdHRvbS1yaWdodFwiO2Nhc2VcInRvcC1yaWdodFwiOnJldHVyblwiYm90dG9tLWxlZnRcIjtjYXNlXCJib3R0b20tbGVmdFwiOnJldHVyblwidG9wLXJpZ2h0XCI7Y2FzZVwiYm90dG9tLXJpZ2h0XCI6cmV0dXJuXCJ0b3AtbGVmdFwiO2RlZmF1bHQ6cmV0dXJuIG51bGx9fShzKSkpKXJldHVybiBudWxsO3ZhciBoPWYubGVmdCtmLnJpZ2h0LGc9Zi50b3ArZi5ib3R0b20sbT1yLmluY2x1ZGVzKFwiLVwiKTtyZXR1cm4oMCx5LmpzeHMpKHkuRnJhZ21lbnQse2NoaWxkcmVuOlsoMCx5LmpzeCkoXCJkaXZcIix7Y2xhc3NOYW1lOlwicmVzaXplLWNvbnRhaW5lciBcIi5jb25jYXQocixcIiBcIikuY29uY2F0KGMmJmMhPT1yP1wibm8taG92ZXJcIjpcIlwiKSxvbk1vdXNlRG93bjpmdW5jdGlvbihlKXtpZihlLnByZXZlbnREZWZhdWx0KCksYS5jdXJyZW50KXt1KHIpO3ZhciBuPWEuY3VycmVudCx0PW4uZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCksbz1uLm9mZnNldExlZnQscz1uLm9mZnNldFRvcCxjPWUuY2xpZW50WCxkPWUuY2xpZW50WSxmPWZ1bmN0aW9uKGUpe3ZhciBhPWFyKHIsZS5jbGllbnRYLWMsZS5jbGllbnRZLWQsdCxvLHMsaSxsKSx1PWEubmV3V2lkdGgsZj1hLm5ld0hlaWdodCxwPWEubmV3TGVmdCxoPWEubmV3VG9wO24uc3R5bGUud2lkdGg9XCJcIi5jb25jYXQodSxcInB4XCIpLG4uc3R5bGUuaGVpZ2h0PVwiXCIuY29uY2F0KGYsXCJweFwiKSwoci5pbmNsdWRlcyhcImxlZnRcIil8fFwibGVmdFwiPT09cikmJihuLnN0eWxlLmxlZnQ9XCJcIi5jb25jYXQocCxcInB4XCIpKSwoci5pbmNsdWRlcyhcInRvcFwiKXx8XCJ0b3BcIj09PXIpJiYobi5zdHlsZS50b3A9XCJcIi5jb25jYXQoaCxcInB4XCIpKX0scD1mdW5jdGlvbigpe3UobnVsbCksZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcihcIm1vdXNlbW92ZVwiLGYpLGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoXCJtb3VzZXVwXCIscCk7dmFyIGU9YS5jdXJyZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLG49ZS53aWR0aCx0PWUuaGVpZ2h0O2xvY2FsU3RvcmFnZS5zZXRJdGVtKFwibmV4dGpzLWRldnRvb2xzLWRpbWVuc2lvbnNcIixKU09OLnN0cmluZ2lmeSh7d2lkdGg6bixoZWlnaHQ6dH0pKX07ZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcihcIm1vdXNlbW92ZVwiLGYpLGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoXCJtb3VzZXVwXCIscCl9fX0pLCFtJiYoMCx5LmpzeCkoXCJkaXZcIix7Y2xhc3NOYW1lOlwicmVzaXplLWxpbmUgXCIuY29uY2F0KHIsXCIgXCIpLmNvbmNhdChjPT09cj9cImRyYWdnaW5nXCI6XCJcIiksc3R5bGU6e1wiLS1ib3JkZXItaG9yaXpvbnRhbFwiOlwiXCIuY29uY2F0KGgsXCJweFwiKSxcIi0tYm9yZGVyLXZlcnRpY2FsXCI6XCJcIi5jb25jYXQoZyxcInB4XCIpLFwiLS1ib3JkZXItdG9wXCI6XCJcIi5jb25jYXQoZi50b3AsXCJweFwiKSxcIi0tYm9yZGVyLXJpZ2h0XCI6XCJcIi5jb25jYXQoZi5yaWdodCxcInB4XCIpLFwiLS1ib3JkZXItYm90dG9tXCI6XCJcIi5jb25jYXQoZi5ib3R0b20sXCJweFwiKSxcIi0tYm9yZGVyLWxlZnRcIjpcIlwiLmNvbmNhdChmLmxlZnQsXCJweFwiKX19KV19KX0sYXI9ZnVuY3Rpb24oZSxuLHQscixvLGEsaSxsKXt2YXIgcz0uOTUqd2luZG93LmlubmVyV2lkdGgsYz0uOTUqd2luZG93LmlubmVySGVpZ2h0O3N3aXRjaChlKXtjYXNlXCJyaWdodFwiOnJldHVybntuZXdXaWR0aDpNYXRoLm1pbihzLE1hdGgubWF4KGksci53aWR0aCtuKSksbmV3SGVpZ2h0OnIuaGVpZ2h0LG5ld0xlZnQ6byxuZXdUb3A6YX07Y2FzZVwibGVmdFwiOnZhciB1PU1hdGgubWluKHMsTWF0aC5tYXgoaSxyLndpZHRoLW4pKSxkPXUtci53aWR0aDtyZXR1cm57bmV3V2lkdGg6dSxuZXdIZWlnaHQ6ci5oZWlnaHQsbmV3TGVmdDpvLWQsbmV3VG9wOmF9O2Nhc2VcImJvdHRvbVwiOnJldHVybntuZXdXaWR0aDpyLndpZHRoLG5ld0hlaWdodDpNYXRoLm1pbihjLE1hdGgubWF4KGwsci5oZWlnaHQrdCkpLG5ld0xlZnQ6byxuZXdUb3A6YX07Y2FzZVwidG9wXCI6dmFyIGY9TWF0aC5taW4oYyxNYXRoLm1heChsLHIuaGVpZ2h0LXQpKSxwPWYtci5oZWlnaHQ7cmV0dXJue25ld1dpZHRoOnIud2lkdGgsbmV3SGVpZ2h0OmYsbmV3TGVmdDpvLG5ld1RvcDphLXB9O2Nhc2VcInRvcC1sZWZ0XCI6dmFyIGg9TWF0aC5taW4ocyxNYXRoLm1heChpLHIud2lkdGgtbikpLGc9TWF0aC5taW4oYyxNYXRoLm1heChsLHIuaGVpZ2h0LXQpKSxtPWgtci53aWR0aCx2PWctci5oZWlnaHQ7cmV0dXJue25ld1dpZHRoOmgsbmV3SGVpZ2h0OmcsbmV3TGVmdDpvLW0sbmV3VG9wOmEtdn07Y2FzZVwidG9wLXJpZ2h0XCI6dmFyIGI9TWF0aC5taW4oYyxNYXRoLm1heChsLHIuaGVpZ2h0LXQpKSx5PWItci5oZWlnaHQ7cmV0dXJue25ld1dpZHRoOk1hdGgubWluKHMsTWF0aC5tYXgoaSxyLndpZHRoK24pKSxuZXdIZWlnaHQ6YixuZXdMZWZ0Om8sbmV3VG9wOmEteX07Y2FzZVwiYm90dG9tLWxlZnRcIjp2YXIgeD1NYXRoLm1pbihzLE1hdGgubWF4KGksci53aWR0aC1uKSksdz14LXIud2lkdGg7cmV0dXJue25ld1dpZHRoOngsbmV3SGVpZ2h0Ok1hdGgubWluKGMsTWF0aC5tYXgobCxyLmhlaWdodCt0KSksbmV3TGVmdDpvLXcsbmV3VG9wOmF9O2Nhc2VcImJvdHRvbS1yaWdodFwiOnJldHVybntuZXdXaWR0aDpNYXRoLm1pbihzLE1hdGgubWF4KGksci53aWR0aCtuKSksbmV3SGVpZ2h0Ok1hdGgubWluKGMsTWF0aC5tYXgobCxyLmhlaWdodCt0KSksbmV3TGVmdDpvLG5ld1RvcDphfTtkZWZhdWx0OnJldHVybiBudWxsfX07ZnVuY3Rpb24gYW8oZSxuKXsobnVsbD09bnx8bj5lLmxlbmd0aCkmJihuPWUubGVuZ3RoKTtmb3IodmFyIHQ9MCxyPUFycmF5KG4pO3Q8bjt0Kyspclt0XT1lW3RdO3JldHVybiByfWZ1bmN0aW9uIGFhKGUsbix0KXtyZXR1cm4gbiBpbiBlP09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLG4se3ZhbHVlOnQsZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITB9KTplW25dPXQsZX1mdW5jdGlvbiBhaShlLG4pe3JldHVybiBmdW5jdGlvbihlKXtpZihBcnJheS5pc0FycmF5KGUpKXJldHVybiBlfShlKXx8ZnVuY3Rpb24oZSxuKXt2YXIgdCxyLG89bnVsbD09ZT9udWxsOlwidW5kZWZpbmVkXCIhPXR5cGVvZiBTeW1ib2wmJmVbU3ltYm9sLml0ZXJhdG9yXXx8ZVtcIkBAaXRlcmF0b3JcIl07aWYobnVsbCE9byl7dmFyIGE9W10saT0hMCxsPSExO3RyeXtmb3Iobz1vLmNhbGwoZSk7IShpPSh0PW8ubmV4dCgpKS5kb25lKSYmKGEucHVzaCh0LnZhbHVlKSwhbnx8YS5sZW5ndGghPT1uKTtpPSEwKTt9Y2F0Y2goZSl7bD0hMCxyPWV9ZmluYWxseXt0cnl7aXx8bnVsbD09by5yZXR1cm58fG8ucmV0dXJuKCl9ZmluYWxseXtpZihsKXRocm93IHJ9fXJldHVybiBhfX0oZSxuKXx8ZnVuY3Rpb24oZSxuKXtpZihlKXtpZihcInN0cmluZ1wiPT10eXBlb2YgZSlyZXR1cm4gYW8oZSxuKTt2YXIgdD1PYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwoZSkuc2xpY2UoOCwtMSk7aWYoXCJPYmplY3RcIj09PXQmJmUuY29uc3RydWN0b3ImJih0PWUuY29uc3RydWN0b3IubmFtZSksXCJNYXBcIj09PXR8fFwiU2V0XCI9PT10KXJldHVybiBBcnJheS5mcm9tKHQpO2lmKFwiQXJndW1lbnRzXCI9PT10fHwvXig/OlVpfEkpbnQoPzo4fDE2fDMyKSg/OkNsYW1wZWQpP0FycmF5JC8udGVzdCh0KSlyZXR1cm4gYW8oZSxuKX19KGUsbil8fGZ1bmN0aW9uKCl7dGhyb3cgVHlwZUVycm9yKFwiSW52YWxpZCBhdHRlbXB0IHRvIGRlc3RydWN0dXJlIG5vbi1pdGVyYWJsZSBpbnN0YW5jZS5cXFxcbkluIG9yZGVyIHRvIGJlIGl0ZXJhYmxlLCBub24tYXJyYXkgb2JqZWN0cyBtdXN0IGhhdmUgYSBbU3ltYm9sLml0ZXJhdG9yXSgpIG1ldGhvZC5cIil9KCl9ZnVuY3Rpb24gYWwoKXt2YXIgZSxuLHQ9KGU9W1wiXFxuICAvKiBUT0RPOiBCZXR0ZXIgb3ZlcnJpZGUgZGlhbG9nIGhlYWRlciBzdHlsZS4gVGhpcyBjb25mbGljdHMgd2l0aCBpc3N1ZXMgdGFiIGNvbnRlbnQuICovXFxuICBbZGF0YS1uZXh0anMtZGV2dG9vbHMtcGFuZWwtZGlhbG9nLWhlYWRlcl0ge1xcbiAgICBmbGV4LXNocmluazogMDtcXG4gICAgbWFyZ2luLWJvdHRvbTogMCAhaW1wb3J0YW50O1xcbiAgfVxcblxcbiAgW2RhdGEtbmV4dGpzLWRldnRvb2xzLXBhbmVsLWRpYWxvZy1jb250ZW50XSB7XFxuICAgIGZsZXg6IDE7XFxuICAgIGRpc3BsYXk6IGZsZXg7XFxuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XFxuICAgIG1pbi1oZWlnaHQ6IDA7IC8vIHdoYXQgYWxsb3dzIGNvbnRlbnQgdG8gb3ZlcmZsb3dcXG4gIH1cXG5cXG4gIFtkYXRhLW5leHRqcy1kZXZ0b29scy1wYW5lbC1kaWFsb2ctYm9keV0ge1xcbiAgICBmbGV4OiAxO1xcbiAgICBvdmVyZmxvdzogYXV0bztcXG4gIH1cXG5cXG4gIFtkYXRhLW5leHRqcy1kZXZ0b29scy1wYW5lbC1vdmVybGF5XSB7XFxuICAgIG1hcmdpbjogYXV0bztcXG4gICAgd2lkdGg6IDUyNXB4O1xcbiAgICBoZWlnaHQ6IDM3NXB4O1xcbiAgfVxcblxcbiAgW2RhdGEtbmV4dGpzLWRldnRvb2xzLXBhbmVsLW92ZXJsYXktYmFja2Ryb3BdIHtcXG4gICAgb3BhY2l0eTogMDtcXG4gICAgdmlzaWJpbGl0eTogaGlkZGVuO1xcbiAgfVxcblxcbiAgW2RhdGEtbmV4dGpzLWRldnRvb2xzLXBhbmVsLW92ZXJsYXktYmFja2Ryb3A9J3RydWUnXSB7XFxuICAgIG9wYWNpdHk6IDE7XFxuICAgIHZpc2liaWxpdHk6IHZpc2libGU7XFxuICB9XFxuXFxuICBbZGF0YS1uZXh0anMtZGV2dG9vbHMtcGFuZWwtZHJhZ2dhYmxlXSB7XFxuICAgIC8qIEZvciByZXNwb25zaXZlbmVzcyAqL1xcbiAgICB3aWR0aDogMTAwJTtcXG4gICAgaGVpZ2h0OiAxMDAlO1xcbiAgfVxcblxcbiAgW2RhdGEtbmV4dGpzLWRldnRvb2xzLXBhbmVsLWRpYWxvZ10ge1xcbiAgICAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDtcXG4gICAgZGlzcGxheTogZmxleDtcXG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcXG4gICAgYmFja2dyb3VuZDogdmFyKC0tY29sb3ItYmFja2dyb3VuZC0xMDApO1xcbiAgICBiYWNrZ3JvdW5kLWNsaXA6IHBhZGRpbmctYm94O1xcbiAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1jb2xvci1ncmF5LTQwMCk7XFxuICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLXJvdW5kZWQteGwpO1xcbiAgICBib3gtc2hhZG93OiB2YXIoLS1zaGFkb3ctbGcpO1xcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XFxuICAgIHdpZHRoOiAxMDAlO1xcbiAgICBoZWlnaHQ6IDEwMCU7XFxuICAgIG1pbi13aWR0aDogNDAwcHg7XFxuICAgIG1pbi1oZWlnaHQ6IDM1MHB4O1xcbiAgfVxcblxcbiAgW2RhdGEtbmV4dGpzLWRldnRvb2xzLXBhbmVsLWhlYWRlcl0ge1xcbiAgICBkaXNwbGF5OiBmbGV4O1xcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XFxuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XFxuICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCB2YXIoLS1jb2xvci1ncmF5LTQwMCk7XFxuICB9XFxuXFxuICBbZGF0YS1uZXh0anMtZGV2dG9vbHMtcGFuZWwtaGVhZGVyLXRhYi1ncm91cF0ge1xcbiAgICBkaXNwbGF5OiBmbGV4O1xcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xcbiAgICBwYWRkaW5nOiA4cHg7XFxuICAgIGdhcDogNnB4O1xcbiAgfVxcblxcbiAgW2RhdGEtbmV4dGpzLWRldnRvb2xzLXBhbmVsLWhlYWRlci10YWJdIHtcXG4gICAgZGlzcGxheTogZmxleDtcXG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcXG4gICAgY29sb3I6IHZhcigtLWNvbG9yLWdyYXktOTAwKTtcXG4gICAgYm9yZGVyLXJhZGl1czogdmFyKC0tcm91bmRlZC1tZC0yKTtcXG4gICAgcGFkZGluZzogNHB4IDEycHg7XFxuICAgIGZvbnQtc2l6ZTogMTRweDtcXG4gICAgZm9udC13ZWlnaHQ6IDUwMDtcXG4gICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciAyMDBtcyBlYXNlO1xcblxcbiAgICAmOmhvdmVyIHtcXG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jb2xvci1ncmF5LTIwMCk7XFxuICAgIH1cXG5cXG4gICAgJjphY3RpdmUge1xcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNvbG9yLWdyYXktMzAwKTtcXG4gICAgfVxcbiAgfVxcblxcbiAgW2RhdGEtbmV4dGpzLWRldnRvb2xzLXBhbmVsLWhlYWRlci10YWI9J3RydWUnXSB7XFxuICAgIGNvbG9yOiB2YXIoLS1jb2xvci1ncmF5LTEwMDApO1xcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jb2xvci1ncmF5LTEwMCk7XFxuICB9XFxuXFxuICBbZGF0YS1uZXh0anMtZGV2dG9vbHMtcGFuZWwtaGVhZGVyLXRhYi1pc3N1ZXMtYmFkZ2VdIHtcXG4gICAgZGlzcGxheTogZmxleDtcXG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcXG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XFxuICAgIG1hcmdpbi1sZWZ0OiA4cHg7XFxuICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNvbG9yLXJlZC00MDApO1xcbiAgICBjb2xvcjogdmFyKC0tY29sb3ItcmVkLTkwMCk7XFxuICAgIGZvbnQtc2l6ZTogMTFweDtcXG4gICAgYm9yZGVyLXJhZGl1czogdmFyKC0tcm91bmRlZC1mdWxsKTtcXG4gICAgcGFkZGluZzogMnB4IDZweDtcXG4gICAgd2lkdGg6IDIwcHg7XFxuICAgIGhlaWdodDogMjBweDtcXG4gICAgZm9udC13ZWlnaHQ6IDUwMDtcXG4gIH1cXG5cXG4gIFtkYXRhLW5leHRqcy1kZXZ0b29scy1wYW5lbC1oZWFkZXItYWN0aW9uLWJ1dHRvbi1ncm91cF0ge1xcbiAgICBkaXNwbGF5OiBmbGV4O1xcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xcbiAgICBnYXA6IDRweDtcXG4gICAgcGFkZGluZy1yaWdodDogOHB4O1xcbiAgfVxcblxcbiAgW2RhdGEtbmV4dGpzLWRldnRvb2xzLXBhbmVsLWhlYWRlci1hY3Rpb24tYnV0dG9uXSB7XFxuICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xcbiAgICBib3JkZXI6IG5vbmU7XFxuICAgIGN1cnNvcjogcG9pbnRlcjtcXG4gICAgZGlzcGxheTogZmxleDtcXG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcXG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XFxuICAgIHBhZGRpbmc6IDZweDtcXG4gICAgY29sb3I6IHZhcigtLWNvbG9yLWdyYXktMTAwMCk7XFxuICAgIGJvcmRlci1yYWRpdXM6IDRweDtcXG4gICAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogYmFja2dyb3VuZC1jb2xvciwgY29sb3I7XFxuICAgIHRyYW5zaXRpb24tZHVyYXRpb246IDIwMG1zO1xcbiAgICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogZWFzZTtcXG5cXG4gICAgJjpob3ZlciB7XFxuICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY29sb3ItZ3JheS0yMDApO1xcbiAgICAgIGNvbG9yOiB2YXIoLS1jb2xvci1ncmF5LTkwMCk7XFxuICAgIH1cXG5cXG4gICAgJjphY3RpdmUge1xcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNvbG9yLWdyYXktMzAwKTtcXG4gICAgfVxcbiAgfVxcblxcbiAgW2RhdGEtbmV4dGpzLWRldnRvb2xzLXBhbmVsLWRyYWdnYWJsZT0ndHJ1ZSddIHtcXG4gICAgY3Vyc29yOiBtb3ZlO1xcbiAgICB1c2VyLXNlbGVjdDogbm9uZTtcXG4gICAgJiA+ICoge1xcbiAgICAgIGN1cnNvcjogYXV0bztcXG4gICAgICAvKiB1c2VyLXNlbGVjdDogYXV0bzsgZm9sbG93cyB0aGUgcGFyZW50IChwYXJlbnQgbm9uZSAtPiBjaGlsZCBub25lKSwgc28gcmVzZXQgdGhlIGRpcmVjdCBjaGlsZCB0byB0ZXh0ICovXFxuICAgICAgdXNlci1zZWxlY3Q6IHRleHQ7XFxuICAgIH1cXG4gIH1cXG5cIl0sbnx8KG49ZS5zbGljZSgwKSksT2JqZWN0LmZyZWV6ZShPYmplY3QuZGVmaW5lUHJvcGVydGllcyhlLHtyYXc6e3ZhbHVlOk9iamVjdC5mcmVlemUobil9fSkpKTtyZXR1cm4gYWw9ZnVuY3Rpb24oKXtyZXR1cm4gdH0sdH1mdW5jdGlvbiBhcyhlKXt2YXIgbix0LHIsbyxhLGksbD1lLnN0YXRlLHM9ZS5kaXNwYXRjaCxjPWUuaXNzdWVDb3VudCx1PWUucnVudGltZUVycm9ycyxkPWUuZ2V0U3F1YXNoZWRIeWRyYXRpb25FcnJvckRldGFpbHMsZj1haSgobj1cIl9fbmV4dGpzLWRldnRvb2xzLWFjdGl2ZS10YWJcIix0PVwiaXNzdWVzXCIsbz0ocj1haSgoMCx4LnVzZVN0YXRlKShmdW5jdGlvbigpe2lmKFwidW5kZWZpbmVkXCIhPXR5cGVvZiB3aW5kb3cmJlwidW5kZWZpbmVkXCIhPXR5cGVvZiBzZXNzaW9uU3RvcmFnZSl7dmFyIGU9c2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbShuKTtyZXR1cm4gbnVsbCE9ZT9lOnR9cmV0dXJuIHR9KSwyKSlbMF0sYT1yWzFdLCgwLHgudXNlRWZmZWN0KShmdW5jdGlvbigpe1widW5kZWZpbmVkXCIhPXR5cGVvZiB3aW5kb3cmJlwidW5kZWZpbmVkXCIhPXR5cGVvZiBzZXNzaW9uU3RvcmFnZSYmc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbShuLG8pfSxbbixvXSksW28sYV0pLDIpLHA9ZlswXSxoPWZbMV0sZz1haSgoMCx4LnVzZVN0YXRlKSghMSksMiksbT1nWzBdLHY9Z1sxXSxiPWFpKCgwLHgudXNlU3RhdGUpKCExKSwyKSx3PWJbMF0saj1iWzFdLGs9KDAseC51c2VSZWYpKG51bGwpO2wuaXNFcnJvck92ZXJsYXlPcGVuIT09dyYmKGwuaXNFcnJvck92ZXJsYXlPcGVuJiYodighMCksaChcImlzc3Vlc1wiKSksaihsLmlzRXJyb3JPdmVybGF5T3BlbikpO3ZhciBBPWFpKGwuZGV2VG9vbHNQb3NpdGlvbi5zcGxpdChcIi1cIiwyKSwyKSxPPUFbMF0sQz1BWzFdLFM9ZnVuY3Rpb24oKXtzKHt0eXBlOiR9KSxzKHt0eXBlOkl9KX07cmV0dXJuKDAseS5qc3gpKG85LHt2YWx1ZTp7cmVzaXplUmVmOmssbWluV2lkdGg6NDAwLG1pbkhlaWdodDozNTAsZGV2VG9vbHNQb3NpdGlvbjpsLmRldlRvb2xzUG9zaXRpb259LGNoaWxkcmVuOigwLHkuanN4cykoblose3JlZjprLFwiZGF0YS1uZXh0anMtZGV2dG9vbHMtcGFuZWwtb3ZlcmxheVwiOiEwLHN0eWxlOm0/e306KGFhKGk9e30sTyxcIlwiLmNvbmNhdCgyMCxcInB4XCIpKSxhYShpLEMsXCJcIi5jb25jYXQoMjAsXCJweFwiKSksYWEoaSxcInRvcFwiPT09Tz9cImJvdHRvbVwiOlwidG9wXCIsXCJhdXRvXCIpLGFhKGksXCJsZWZ0XCI9PT1DP1wicmlnaHRcIjpcImxlZnRcIixcImF1dG9cIiksaSksY2hpbGRyZW46WygwLHkuanN4KShuMix7XCJkYXRhLW5leHRqcy1kZXZ0b29scy1wYW5lbC1vdmVybGF5LWJhY2tkcm9wXCI6bSxvbkNsaWNrOlN9KSwoMCx5LmpzeCkock4se1wiZGF0YS1uZXh0anMtZGV2dG9vbHMtcGFuZWwtZHJhZ2dhYmxlXCI6ITAscGFkZGluZzoyMCxvbkRyYWdTdGFydDpmdW5jdGlvbigpe30scG9zaXRpb246bC5kZXZUb29sc1Bvc2l0aW9uLHNldFBvc2l0aW9uOmZ1bmN0aW9uKGUpe2xvY2FsU3RvcmFnZS5zZXRJdGVtKEcsZSkscyh7dHlwZTpZLGRldlRvb2xzUG9zaXRpb246ZX0pfSxkcmFnSGFuZGxlU2VsZWN0b3I6XCJbZGF0YS1uZXh0anMtZGV2dG9vbHMtcGFuZWwtaGVhZGVyXSwgW2RhdGEtbmV4dGpzLWRldnRvb2xzLXBhbmVsLWZvb3Rlcl1cIixkaXNhYmxlRHJhZzptLGNoaWxkcmVuOigwLHkuanN4cykoeS5GcmFnbWVudCx7Y2hpbGRyZW46WygwLHkuanN4cykoZVose1wiZGF0YS1uZXh0anMtZGV2dG9vbHMtcGFuZWwtZGlhbG9nXCI6ITAsXCJhcmlhLWxhYmVsbGVkYnlcIjpcIm5leHRqc19fY29udGFpbmVyX2Rldl90b29sc19wYW5lbF9sYWJlbFwiLFwiYXJpYS1kZXNjcmliZWRieVwiOlwibmV4dGpzX19jb250YWluZXJfZGV2X3Rvb2xzX3BhbmVsX2Rlc2NcIixvbkNsb3NlOlMsY2hpbGRyZW46WygwLHkuanN4cykoZVgse1wiZGF0YS1uZXh0anMtZGV2dG9vbHMtcGFuZWwtZGlhbG9nLWNvbnRlbnRcIjohMCxjaGlsZHJlbjpbKDAseS5qc3gpKGVLLHtcImRhdGEtbmV4dGpzLWRldnRvb2xzLXBhbmVsLWRpYWxvZy1oZWFkZXJcIjohMCxjaGlsZHJlbjooMCx5LmpzeHMpKFwiZGl2XCIse1wiZGF0YS1uZXh0anMtZGV2dG9vbHMtcGFuZWwtaGVhZGVyXCI6ITAsXCJkYXRhLW5leHRqcy1kZXZ0b29scy1wYW5lbC1kcmFnZ2FibGVcIjohbSxjaGlsZHJlbjpbKDAseS5qc3hzKShcImRpdlwiLHtcImRhdGEtbmV4dGpzLWRldnRvb2xzLXBhbmVsLWhlYWRlci10YWItZ3JvdXBcIjohMCxjaGlsZHJlbjpbKDAseS5qc3hzKShcImJ1dHRvblwiLHtcImRhdGEtbmV4dGpzLWRldnRvb2xzLXBhbmVsLWhlYWRlci10YWJcIjpcImlzc3Vlc1wiPT09cCxvbkNsaWNrOmZ1bmN0aW9uKCl7cmV0dXJuIGgoXCJpc3N1ZXNcIil9LGNoaWxkcmVuOltcIklzc3Vlc1wiLGM+MD8oMCx5LmpzeCkoXCJzcGFuXCIse1wiZGF0YS1uZXh0anMtZGV2dG9vbHMtcGFuZWwtaGVhZGVyLXRhYi1pc3N1ZXMtYmFkZ2VcIjohMCxjaGlsZHJlbjpjfSk6bnVsbF19KSwoMCx5LmpzeCkoXCJidXR0b25cIix7XCJkYXRhLW5leHRqcy1kZXZ0b29scy1wYW5lbC1oZWFkZXItdGFiXCI6XCJyb3V0ZVwiPT09cCxvbkNsaWNrOmZ1bmN0aW9uKCl7cmV0dXJuIGgoXCJyb3V0ZVwiKX0sY2hpbGRyZW46XCJSb3V0ZSBJbmZvXCJ9KSwoMCx5LmpzeCkoXCJidXR0b25cIix7XCJkYXRhLW5leHRqcy1kZXZ0b29scy1wYW5lbC1oZWFkZXItdGFiXCI6XCJzZXR0aW5nc1wiPT09cCxvbkNsaWNrOmZ1bmN0aW9uKCl7cmV0dXJuIGgoXCJzZXR0aW5nc1wiKX0sY2hpbGRyZW46XCJTZXR0aW5nc1wifSldfSksKDAseS5qc3hzKShcImRpdlwiLHtcImRhdGEtbmV4dGpzLWRldnRvb2xzLXBhbmVsLWhlYWRlci1hY3Rpb24tYnV0dG9uLWdyb3VwXCI6ITAsY2hpbGRyZW46WygwLHkuanN4KShcImJ1dHRvblwiLHtcImRhdGEtbmV4dGpzLWRldnRvb2xzLXBhbmVsLWhlYWRlci1hY3Rpb24tYnV0dG9uXCI6ITAsb25DbGljazpmdW5jdGlvbigpe3YoZnVuY3Rpb24oZSl7cmV0dXJuIWV9KSxzKHt0eXBlOkl9KX0sY2hpbGRyZW46bT8oMCx5LmpzeCkobzEse3dpZHRoOjE2LGhlaWdodDoxNn0pOigwLHkuanN4KShvMCx7d2lkdGg6MTYsaGVpZ2h0OjE2fSl9KSwoMCx5LmpzeCkoXCJidXR0b25cIix7XCJkYXRhLW5leHRqcy1kZXZ0b29scy1wYW5lbC1oZWFkZXItYWN0aW9uLWJ1dHRvblwiOiEwLG9uQ2xpY2s6UyxjaGlsZHJlbjooMCx5LmpzeCkob0gse3dpZHRoOjE2LGhlaWdodDoxNn0pfSldfSldfSl9KSwoMCx5LmpzeCkoZVkse1wiZGF0YS1uZXh0anMtZGV2dG9vbHMtcGFuZWwtZGlhbG9nLWJvZHlcIjohMCxjaGlsZHJlbjooMCx5LmpzeCkob0kse3BhZ2U6bC5wYWdlLGFjdGl2ZVRhYjpwLGRldlRvb2xzUG9zaXRpb246bC5kZXZUb29sc1Bvc2l0aW9uLHNjYWxlOmwuc2NhbGUscm91dGVyVHlwZTpsLnJvdXRlclR5cGUsaGFuZGxlUG9zaXRpb25DaGFuZ2U6ZnVuY3Rpb24oZSl7cyh7dHlwZTpZLGRldlRvb2xzUG9zaXRpb246ZS50YXJnZXQudmFsdWV9KSxsb2NhbFN0b3JhZ2Uuc2V0SXRlbShHLGUudGFyZ2V0LnZhbHVlKX0saGFuZGxlU2NhbGVDaGFuZ2U6ZnVuY3Rpb24oZSl7cyh7dHlwZTpYLHNjYWxlOk51bWJlcihlLnRhcmdldC52YWx1ZSl9KSxsb2NhbFN0b3JhZ2Uuc2V0SXRlbShKLGUudGFyZ2V0LnZhbHVlKX0sZGVidWdJbmZvOmwuZGVidWdJbmZvLHJ1bnRpbWVFcnJvcnM6dSxnZXRTcXVhc2hlZEh5ZHJhdGlvbkVycm9yRGV0YWlsczpkLGJ1aWxkRXJyb3I6bC5idWlsZEVycm9yfSl9KV19KSwoMCx5LmpzeCkocjIse3ZlcnNpb25JbmZvOmwudmVyc2lvbkluZm8saXNEcmFnZ2FibGU6IW0sc2hvd1Jlc3RhcnRTZXJ2ZXJCdXR0b246bC5zaG93UmVzdGFydFNlcnZlckJ1dHRvbn0pXX0pLCFtJiYoMCx5LmpzeHMpKHkuRnJhZ21lbnQse2NoaWxkcmVuOlsoMCx5LmpzeCkoYXQse2RpcmVjdGlvbjpcInRvcFwifSksKDAseS5qc3gpKGF0LHtkaXJlY3Rpb246XCJyaWdodFwifSksKDAseS5qc3gpKGF0LHtkaXJlY3Rpb246XCJib3R0b21cIn0pLCgwLHkuanN4KShhdCx7ZGlyZWN0aW9uOlwibGVmdFwifSksKDAseS5qc3gpKGF0LHtkaXJlY3Rpb246XCJ0b3AtbGVmdFwifSksKDAseS5qc3gpKGF0LHtkaXJlY3Rpb246XCJ0b3AtcmlnaHRcIn0pLCgwLHkuanN4KShhdCx7ZGlyZWN0aW9uOlwiYm90dG9tLWxlZnRcIn0pLCgwLHkuanN4KShhdCx7ZGlyZWN0aW9uOlwiYm90dG9tLXJpZ2h0XCJ9KV19KV19KX0pXX0pfSl9dmFyIGFjPWVpKGFsKCkpO2Z1bmN0aW9uIGF1KCl7dmFyIGUsbix0PShlPVtcIlxcbiAgICAgICAgXCIsXCJcXG4gICAgICAgIFwiLFwiXFxuICAgICAgICBcIixcIlxcbiAgICAgICAgXCIsXCJcXG4gICAgICAgIFwiLFwiXFxuICAgICAgICBcIixcIlxcbiAgICAgICAgXCIsXCJcXG4gICAgICAgIFwiLFwiXFxuICAgICAgICBcIixcIlxcbiAgICAgICAgXCIsXCJcXG4gICAgICAgIFwiLFwiXFxuICAgICAgICBcIixcIlxcbiAgICAgICAgXCIsXCJcXG4gICAgICAgIFwiLFwiXFxuICAgICAgICBcIixcIlxcbiAgICAgICAgXCIsXCJcXG4gICAgICAgIFwiLFwiXFxuICAgICAgICBcIixcIlxcbiAgICAgICAgXCIsXCJcXG4gICAgICAgIFwiLFwiXFxuICAgICAgICBcIixcIlxcbiAgICAgICAgXCIsXCJcXG4gICAgICAgIFwiLFwiXFxuICAgICAgICBcIixcIlxcbiAgICAgICAgXCIsXCJcXG4gICAgICAgIFwiLFwiXFxuICAgICAgICBcIixcIlxcbiAgICAgICAgXCIsXCJcXG4gICAgICAgIFwiLFwiXFxuICAgICAgICBcIixcIlxcbiAgICAgICAgXCIsXCJcXG4gICAgICAgIFwiLFwiXFxuICAgICAgICBcIixcIlxcbiAgICAgICAgXCIsXCJcXG4gICAgICAgIFwiLFwiXFxuICAgICAgICBcIixcIlxcbiAgICAgICAgXCIsXCJcXG4gICAgICBcIl0sbnx8KG49ZS5zbGljZSgwKSksT2JqZWN0LmZyZWV6ZShPYmplY3QuZGVmaW5lUHJvcGVydGllcyhlLHtyYXc6e3ZhbHVlOk9iamVjdC5mcmVlemUobil9fSkpKTtyZXR1cm4gYXU9ZnVuY3Rpb24oKXtyZXR1cm4gdH0sdH1mdW5jdGlvbiBhZCgpe3JldHVybigwLHkuanN4KShcInN0eWxlXCIse2NoaWxkcmVuOmVpKGF1KCksXCJcXG4gIC5uZXh0anMtZGF0YS1jb3B5LWJ1dHRvbiB7XFxuICAgIGNvbG9yOiBpbmhlcml0O1xcblxcbiAgICBzdmcge1xcbiAgICAgIHdpZHRoOiB2YXIoLS1zaXplLTE2KTtcXG4gICAgICBoZWlnaHQ6IHZhcigtLXNpemUtMTYpO1xcbiAgICB9XFxuICB9XFxuICAubmV4dGpzLWRhdGEtY29weS1idXR0b246ZGlzYWJsZWQge1xcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jb2xvci1ncmF5LTEwMCk7XFxuICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XFxuICB9XFxuICAubmV4dGpzLWRhdGEtY29weS1idXR0b24tLWluaXRpYWw6aG92ZXI6bm90KDpkaXNhYmxlZCkge1xcbiAgICBjdXJzb3I6IHBvaW50ZXI7XFxuICB9XFxuICAubmV4dGpzLWRhdGEtY29weS1idXR0b24tLWVycm9yOm5vdCg6ZGlzYWJsZWQpLFxcbiAgLm5leHRqcy1kYXRhLWNvcHktYnV0dG9uLS1lcnJvcjpob3Zlcjpub3QoOmRpc2FibGVkKSB7XFxuICAgIGNvbG9yOiB2YXIoLS1jb2xvci1hbnNpLXJlZCk7XFxuICB9XFxuICAubmV4dGpzLWRhdGEtY29weS1idXR0b24tLXN1Y2Nlc3M6bm90KDpkaXNhYmxlZCkge1xcbiAgICBjb2xvcjogdmFyKC0tY29sb3ItYW5zaS1ncmVlbik7XFxuICB9XFxuXCIsJ1xcbiAgW2RhdGEtbmV4dGpzLWNhbGwtc3RhY2stZnJhbWUtbm8tc291cmNlXSB7XFxuICAgIHBhZGRpbmc6IDZweCA4cHg7XFxuICAgIG1hcmdpbi1ib3R0b206IDRweDtcXG5cXG4gICAgYm9yZGVyLXJhZGl1czogdmFyKC0tcm91bmRlZC1sZyk7XFxuICB9XFxuXFxuICBbZGF0YS1uZXh0anMtY2FsbC1zdGFjay1mcmFtZS1uby1zb3VyY2VdOmxhc3QtY2hpbGQge1xcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xcbiAgfVxcblxcbiAgW2RhdGEtbmV4dGpzLWNhbGwtc3RhY2stZnJhbWUtaWdub3JlZD1cInRydWVcIl0ge1xcbiAgICBvcGFjaXR5OiAwLjY7XFxuICB9XFxuXFxuICBbZGF0YS1uZXh0anMtY2FsbC1zdGFjay1mcmFtZV0ge1xcbiAgICB1c2VyLXNlbGVjdDogdGV4dDtcXG4gICAgZGlzcGxheTogYmxvY2s7XFxuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XFxuXFxuICAgIHVzZXItc2VsZWN0OiB0ZXh0O1xcbiAgICAtd2Via2l0LXVzZXItc2VsZWN0OiB0ZXh0O1xcbiAgICAtbW96LXVzZXItc2VsZWN0OiB0ZXh0O1xcbiAgICAtbXMtdXNlci1zZWxlY3Q6IHRleHQ7XFxuXFxuICAgIHBhZGRpbmc6IDZweCA4cHg7XFxuXFxuICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLXJvdW5kZWQtbGcpO1xcbiAgfVxcblxcbiAgLmNhbGwtc3RhY2stZnJhbWUtbWV0aG9kLW5hbWUge1xcbiAgICBkaXNwbGF5OiBmbGV4O1xcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xcbiAgICBnYXA6IDRweDtcXG5cXG4gICAgbWFyZ2luLWJvdHRvbTogNHB4O1xcbiAgICBmb250LWZhbWlseTogdmFyKC0tZm9udC1zdGFjay1tb25vc3BhY2UpO1xcblxcbiAgICBjb2xvcjogdmFyKC0tY29sb3ItZ3JheS0xMDAwKTtcXG4gICAgZm9udC1zaXplOiB2YXIoLS1zaXplLTE0KTtcXG4gICAgZm9udC13ZWlnaHQ6IDUwMDtcXG4gICAgbGluZS1oZWlnaHQ6IHZhcigtLXNpemUtMjApO1xcblxcbiAgICBzdmcge1xcbiAgICAgIHdpZHRoOiB2YXIoLS1zaXplLTE2cHgpO1xcbiAgICAgIGhlaWdodDogdmFyKC0tc2l6ZS0xNnB4KTtcXG4gICAgfVxcbiAgfVxcblxcbiAgLm9wZW4taW4tZWRpdG9yLWJ1dHRvbiwgLnNvdXJjZS1tYXBwaW5nLWVycm9yLWJ1dHRvbiB7XFxuICAgIGRpc3BsYXk6IGZsZXg7XFxuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XFxuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xcbiAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1yb3VuZGVkLWZ1bGwpO1xcbiAgICBwYWRkaW5nOiA0cHg7XFxuICAgIGNvbG9yOiB2YXIoLS1jb2xvci1mb250KTtcXG5cXG4gICAgc3ZnIHtcXG4gICAgICB3aWR0aDogdmFyKC0tc2l6ZS0xNik7XFxuICAgICAgaGVpZ2h0OiB2YXIoLS1zaXplLTE2KTtcXG4gICAgfVxcblxcbiAgICAmOmZvY3VzLXZpc2libGUge1xcbiAgICAgIG91dGxpbmU6IHZhcigtLWZvY3VzLXJpbmcpO1xcbiAgICAgIG91dGxpbmUtb2Zmc2V0OiAtMnB4O1xcbiAgICB9XFxuXFxuICAgICY6aG92ZXIge1xcbiAgICAgIGJhY2tncm91bmQ6IHZhcigtLWNvbG9yLWdyYXktMTAwKTtcXG4gICAgfVxcbiAgfVxcblxcbiAgLmNhbGwtc3RhY2stZnJhbWUtZmlsZS1zb3VyY2Uge1xcbiAgICBjb2xvcjogdmFyKC0tY29sb3ItZ3JheS05MDApO1xcbiAgICBmb250LXNpemU6IHZhcigtLXNpemUtMTQpO1xcbiAgICBsaW5lLWhlaWdodDogdmFyKC0tc2l6ZS0yMCk7XFxuICB9XFxuJyx0cyxcIlxcbiAgW2RhdGEtbmV4dGpzLWVudmlyb25tZW50LW5hbWUtbGFiZWxdIHtcXG4gICAgcGFkZGluZzogMnB4IDZweDtcXG4gICAgbWFyZ2luOiAwO1xcbiAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1yb3VuZGVkLW1kLTIpO1xcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1jb2xvci1ncmF5LTEwMCk7XFxuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XFxuICAgIGZvbnQtc2l6ZTogdmFyKC0tc2l6ZS0xMik7XFxuICAgIGNvbG9yOiB2YXIoLS1jb2xvci1ncmF5LTkwMCk7XFxuICAgIGZvbnQtZmFtaWx5OiB2YXIoLS1mb250LXN0YWNrLW1vbm9zcGFjZSk7XFxuICAgIGxpbmUtaGVpZ2h0OiB2YXIoLS1zaXplLTIwKTtcXG4gIH1cXG5cIixcIlxcbiAgW2RhdGEtbmV4dGpzLWRpYWxvZy1vdmVybGF5XSB7XFxuICAgIHBvc2l0aW9uOiBmaXhlZDtcXG4gICAgdG9wOiAwO1xcbiAgICByaWdodDogMDtcXG4gICAgYm90dG9tOiAwO1xcbiAgICBsZWZ0OiAwO1xcbiAgICAvKiBzZWNvbmRhcnkgei1pbmRleCwgLTEgdGhhbiB0b2FzdCB6LWluZGV4ICovXFxuICAgIHotaW5kZXg6IDIxNDc0ODM2NDY7XFxuXFxuICAgIGRpc3BsYXk6IGZsZXg7XFxuICAgIGFsaWduLWNvbnRlbnQ6IGNlbnRlcjtcXG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcXG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcXG4gICAgcGFkZGluZzogMTB2aCAxNXB4IDA7XFxuICB9XFxuXFxuICBAbWVkaWEgKG1heC1oZWlnaHQ6IDgxMnB4KSB7XFxuICAgIFtkYXRhLW5leHRqcy1kaWFsb2ctb3ZlcmxheV0ge1xcbiAgICAgIHBhZGRpbmc6IDE1cHggMTVweCAwO1xcbiAgICB9XFxuICB9XFxuXFxuICBbZGF0YS1uZXh0anMtZGlhbG9nLWJhY2tkcm9wXSB7XFxuICAgIHBvc2l0aW9uOiBmaXhlZDtcXG4gICAgdG9wOiAwO1xcbiAgICByaWdodDogMDtcXG4gICAgYm90dG9tOiAwO1xcbiAgICBsZWZ0OiAwO1xcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jb2xvci1iYWNrZHJvcCk7XFxuICAgIGJhY2tkcm9wLWZpbHRlcjogYmx1cigxMHB4KTtcXG4gICAgcG9pbnRlci1ldmVudHM6IGFsbDtcXG4gICAgei1pbmRleDogLTE7XFxuICB9XFxuXFxuICBbZGF0YS1uZXh0anMtZGlhbG9nLWJhY2tkcm9wLWZpeGVkXSB7XFxuICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XFxuICAgIC13ZWJraXQtYmFja2Ryb3AtZmlsdGVyOiBibHVyKDhweCk7XFxuICAgIGJhY2tkcm9wLWZpbHRlcjogYmx1cig4cHgpO1xcbiAgfVxcblwiLGVHLG44LG5FLFwiXFxuICAuZXJyb3Itb3ZlcmxheS1ib3R0b20tc3RhY2stbGF5ZXIge1xcbiAgICB3aWR0aDogMTAwJTtcXG4gICAgaGVpZ2h0OiB2YXIoLS1zdGFjay1sYXllci1oZWlnaHQpO1xcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XFxuICAgIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWNvbG9yLWdyYXktNDAwKTtcXG4gICAgYm9yZGVyLXJhZGl1czogdmFyKC0tcm91bmRlZC14bCk7XFxuICAgIGJhY2tncm91bmQ6IHZhcigtLWNvbG9yLWJhY2tncm91bmQtMjAwKTtcXG4gICAgdHJhbnNpdGlvbjpcXG4gICAgICB0cmFuc2xhdGUgMzUwbXMgdmFyKC0tdGltaW5nLXN3aWZ0KSxcXG4gICAgICBib3gtc2hhZG93IDM1MG1zIHZhcigtLXRpbWluZy1zd2lmdCk7XFxuICB9XFxuXFxuICAuZXJyb3Itb3ZlcmxheS1ib3R0b20tc3RhY2stbGF5ZXItMSB7XFxuICAgIHdpZHRoOiBjYWxjKDEwMCUgLSB2YXIoLS1zaXplLTI0KSk7XFxuICB9XFxuXFxuICAuZXJyb3Itb3ZlcmxheS1ib3R0b20tc3RhY2stbGF5ZXItMiB7XFxuICAgIHdpZHRoOiBjYWxjKDEwMCUgLSB2YXIoLS1zaXplLTQ4KSk7XFxuICAgIHotaW5kZXg6IC0xO1xcbiAgfVxcblxcbiAgLmVycm9yLW92ZXJsYXktYm90dG9tLXN0YWNrIHtcXG4gICAgd2lkdGg6IDEwMCU7XFxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcXG4gICAgYm90dG9tOiAtMXB4O1xcbiAgICBoZWlnaHQ6IDA7XFxuICAgIG92ZXJmbG93OiB2aXNpYmxlO1xcbiAgfVxcblxcbiAgLmVycm9yLW92ZXJsYXktYm90dG9tLXN0YWNrLXN0YWNrIHtcXG4gICAgLS1zdGFjay1sYXllci1oZWlnaHQ6IDQ0cHg7XFxuICAgIC0tc3RhY2stbGF5ZXItaGVpZ2h0LWhhbGY6IGNhbGModmFyKC0tc3RhY2stbGF5ZXItaGVpZ2h0KSAvIDIpO1xcbiAgICAtLXN0YWNrLWxheWVyLXRyaW06IDEzcHg7XFxuICAgIC0tc2hhZG93OiAwcHggMC45MjVweCAwLjkyNXB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMDIpLFxcbiAgICAgIDBweCAzLjdweCA3LjRweCAtMy43cHggcmdiYSgwLCAwLCAwLCAwLjA0KSxcXG4gICAgICAwcHggMTQuOHB4IDIyLjJweCAtNy40cHggcmdiYSgwLCAwLCAwLCAwLjA2KTtcXG5cXG4gICAgZGlzcGxheTogZ3JpZDtcXG4gICAgcGxhY2UtaXRlbXM6IGNlbnRlciBjZW50ZXI7XFxuICAgIHdpZHRoOiAxMDAlO1xcbiAgICBwb3NpdGlvbjogZml4ZWQ7XFxuICAgIG92ZXJmbG93OiBoaWRkZW47XFxuICAgIHotaW5kZXg6IC0xO1xcbiAgICBtYXgtd2lkdGg6IHZhcigtLW5leHQtZGlhbG9nLW1heC13aWR0aCk7XFxuXFxuICAgIC5lcnJvci1vdmVybGF5LWJvdHRvbS1zdGFjay1sYXllciB7XFxuICAgICAgZ3JpZC1hcmVhOiAxIC8gMTtcXG4gICAgICAvKiBIaWRlICovXFxuICAgICAgdHJhbnNsYXRlOiAwIGNhbGModmFyKC0tc3RhY2stbGF5ZXItaGVpZ2h0KSAqIC0xKTtcXG4gICAgfVxcblxcbiAgICAmW2RhdGEtc3RhY2stY291bnQ9JzEnXSxcXG4gICAgJltkYXRhLXN0YWNrLWNvdW50PScyJ10ge1xcbiAgICAgIC5lcnJvci1vdmVybGF5LWJvdHRvbS1zdGFjay1sYXllci0xIHtcXG4gICAgICAgIHRyYW5zbGF0ZTogMFxcbiAgICAgICAgICBjYWxjKHZhcigtLXN0YWNrLWxheWVyLWhlaWdodC1oYWxmKSAqIC0xIC0gdmFyKC0tc3RhY2stbGF5ZXItdHJpbSkpO1xcbiAgICAgIH1cXG4gICAgfVxcblxcbiAgICAmW2RhdGEtc3RhY2stY291bnQ9JzInXSB7XFxuICAgICAgLmVycm9yLW92ZXJsYXktYm90dG9tLXN0YWNrLWxheWVyLTIge1xcbiAgICAgICAgdHJhbnNsYXRlOiAwIGNhbGModmFyKC0tc3RhY2stbGF5ZXItdHJpbSkgKiAtMSAqIDIpO1xcbiAgICAgIH1cXG4gICAgfVxcblxcbiAgICAvKiBPbmx5IHRoZSBib3R0b20gc3RhY2sgc2hvdWxkIGhhdmUgdGhlIHNoYWRvdyAqL1xcbiAgICAmW2RhdGEtc3RhY2stY291bnQ9JzEnXSAuZXJyb3Itb3ZlcmxheS1ib3R0b20tc3RhY2stbGF5ZXItMSB7XFxuICAgICAgYm94LXNoYWRvdzogdmFyKC0tc2hhZG93KTtcXG4gICAgfVxcblxcbiAgICAmW2RhdGEtc3RhY2stY291bnQ9JzInXSB7XFxuICAgICAgLmVycm9yLW92ZXJsYXktYm90dG9tLXN0YWNrLWxheWVyLTIge1xcbiAgICAgICAgYm94LXNoYWRvdzogdmFyKC0tc2hhZG93KTtcXG4gICAgICB9XFxuICAgIH1cXG4gIH1cXG5cIixcIlxcbiAgLmVycm9yLW92ZXJsYXktcGFnaW5hdGlvbiB7XFxuICAgIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkO1xcbiAgICBkaXNwbGF5OiBmbGV4O1xcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcXG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcXG4gICAgZ2FwOiA4cHg7XFxuICAgIHdpZHRoOiBmaXQtY29udGVudDtcXG4gIH1cXG5cXG4gIC5lcnJvci1vdmVybGF5LXBhZ2luYXRpb24tY291bnQge1xcbiAgICBjb2xvcjogdmFyKC0tY29sb3ItZ3JheS05MDApO1xcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XFxuICAgIGZvbnQtc2l6ZTogdmFyKC0tc2l6ZS0xNCk7XFxuICAgIGZvbnQtd2VpZ2h0OiA1MDA7XFxuICAgIGxpbmUtaGVpZ2h0OiB2YXIoLS1zaXplLTE2KTtcXG4gICAgZm9udC12YXJpYW50LW51bWVyaWM6IHRhYnVsYXItbnVtcztcXG4gIH1cXG5cXG4gIC5lcnJvci1vdmVybGF5LXBhZ2luYXRpb24tYnV0dG9uIHtcXG4gICAgZGlzcGxheTogZmxleDtcXG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XFxuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XFxuXFxuICAgIHdpZHRoOiB2YXIoLS1zaXplLTI0KTtcXG4gICAgaGVpZ2h0OiB2YXIoLS1zaXplLTI0KTtcXG4gICAgYmFja2dyb3VuZDogdmFyKC0tY29sb3ItZ3JheS0zMDApO1xcbiAgICBmbGV4LXNocmluazogMDtcXG5cXG4gICAgYm9yZGVyOiBub25lO1xcbiAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1yb3VuZGVkLWZ1bGwpO1xcblxcbiAgICBzdmcge1xcbiAgICAgIHdpZHRoOiB2YXIoLS1zaXplLTE2KTtcXG4gICAgICBoZWlnaHQ6IHZhcigtLXNpemUtMTYpO1xcbiAgICB9XFxuXFxuICAgICY6Zm9jdXMtdmlzaWJsZSB7XFxuICAgICAgb3V0bGluZTogdmFyKC0tZm9jdXMtcmluZyk7XFxuICAgIH1cXG5cXG4gICAgJjpub3QoOmRpc2FibGVkKTphY3RpdmUge1xcbiAgICAgIGJhY2tncm91bmQ6IHZhcigtLWNvbG9yLWdyYXktNTAwKTtcXG4gICAgfVxcblxcbiAgICAmOmRpc2FibGVkIHtcXG4gICAgICBvcGFjaXR5OiAwLjU7XFxuICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcXG4gICAgfVxcbiAgfVxcblxcbiAgLmVycm9yLW92ZXJsYXktcGFnaW5hdGlvbi1idXR0b24taWNvbiB7XFxuICAgIGNvbG9yOiB2YXIoLS1jb2xvci1ncmF5LTEwMDApO1xcbiAgfVxcblwiLCdcXG4gIFtkYXRhLW5leHRqcy1jb2RlZnJhbWVdIHtcXG4gICAgLS1jb2RlLWZyYW1lLXBhZGRpbmc6IDEycHg7XFxuICAgIC0tY29kZS1mcmFtZS1saW5lLWhlaWdodDogdmFyKC0tc2l6ZS0xNik7XFxuICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNvbG9yLWJhY2tncm91bmQtMjAwKTtcXG4gICAgY29sb3I6IHZhcigtLWNvbG9yLWdyYXktMTAwMCk7XFxuICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xcbiAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1jb2xvci1ncmF5LTQwMCk7XFxuICAgIGJvcmRlci1yYWRpdXM6IDhweDtcXG4gICAgZm9udC1mYW1pbHk6IHZhcigtLWZvbnQtc3RhY2stbW9ub3NwYWNlKTtcXG4gICAgZm9udC1zaXplOiB2YXIoLS1zaXplLTEyKTtcXG4gICAgbGluZS1oZWlnaHQ6IHZhcigtLWNvZGUtZnJhbWUtbGluZS1oZWlnaHQpO1xcbiAgICBtYXJnaW46IDhweCAwO1xcblxcbiAgICBzdmcge1xcbiAgICAgIHdpZHRoOiB2YXIoLS1zaXplLTE2KTtcXG4gICAgICBoZWlnaHQ6IHZhcigtLXNpemUtMTYpO1xcbiAgICB9XFxuICB9XFxuXFxuICAuY29kZS1mcmFtZS1saW5rLFxcbiAgLmNvZGUtZnJhbWUtcHJlIHtcXG4gICAgcGFkZGluZzogdmFyKC0tY29kZS1mcmFtZS1wYWRkaW5nKTtcXG4gIH1cXG5cXG4gIC5jb2RlLWZyYW1lLWxpbmsgc3ZnIHtcXG4gICAgZmxleC1zaHJpbms6IDA7XFxuICB9XFxuXFxuICAuY29kZS1mcmFtZS1saW5lcyB7XFxuICAgIG1pbi13aWR0aDogbWF4LWNvbnRlbnQ7XFxuICB9XFxuXFxuICAuY29kZS1mcmFtZS1saW5rIFtkYXRhLXRleHRdIHtcXG4gICAgZGlzcGxheTogaW5saW5lLWZsZXg7XFxuICAgIHRleHQtYWxpZ246IGxlZnQ7XFxuICAgIG1hcmdpbjogYXV0byA2cHg7XFxuICB9XFxuXFxuICAuY29kZS1mcmFtZS1oZWFkZXIge1xcbiAgICB3aWR0aDogMTAwJTtcXG4gICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZCAxMDBtcyBlYXNlLW91dDtcXG4gICAgYm9yZGVyLXJhZGl1czogOHB4IDhweCAwIDA7XFxuICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCB2YXIoLS1jb2xvci1ncmF5LTQwMCk7XFxuICB9XFxuXFxuICBbZGF0YS13aXRoLW9wZW4taW4tZWRpdG9yLWxpbmstc291cmNlLWZpbGVdIHtcXG4gICAgcGFkZGluZzogNHB4O1xcbiAgICBtYXJnaW46IC00cHggMCAtNHB4IGF1dG87XFxuICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLXJvdW5kZWQtZnVsbCk7XFxuICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xcblxcbiAgICAmOmZvY3VzLXZpc2libGUge1xcbiAgICAgIG91dGxpbmU6IHZhcigtLWZvY3VzLXJpbmcpO1xcbiAgICAgIG91dGxpbmUtb2Zmc2V0OiAtMnB4O1xcbiAgICB9XFxuXFxuICAgICY6aG92ZXIge1xcbiAgICAgIGJhY2tncm91bmQ6IHZhcigtLWNvbG9yLWdyYXktMTAwKTtcXG4gICAgfVxcbiAgfVxcblxcbiAgW2RhdGEtbmV4dGpzLWNvZGVmcmFtZV06OnNlbGVjdGlvbixcXG4gIFtkYXRhLW5leHRqcy1jb2RlZnJhbWVdICo6OnNlbGVjdGlvbiB7XFxuICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNvbG9yLWFuc2ktc2VsZWN0aW9uKTtcXG4gIH1cXG5cXG4gIFtkYXRhLW5leHRqcy1jb2RlZnJhbWVdICo6bm90KGEpIHtcXG4gICAgY29sb3I6IGluaGVyaXQ7XFxuICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xcbiAgICBmb250LWZhbWlseTogdmFyKC0tZm9udC1zdGFjay1tb25vc3BhY2UpO1xcbiAgfVxcblxcbiAgW2RhdGEtbmV4dGpzLWNvZGVmcmFtZS1saW5lXVtkYXRhLW5leHRqcy1jb2RlZnJhbWUtbGluZS0tZXJyb3JlZD1cInRydWVcIl0ge1xcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XFxuICAgIGlzb2xhdGlvbjogaXNvbGF0ZTtcXG5cXG4gICAgPiBzcGFuIHsgXFxuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xcbiAgICAgIHotaW5kZXg6IDE7XFxuICAgIH1cXG5cXG4gICAgJjo6YWZ0ZXIge1xcbiAgICAgIGNvbnRlbnQ6IFwiXCI7XFxuICAgICAgd2lkdGg6IGNhbGMoMTAwJSArIHZhcigtLWNvZGUtZnJhbWUtcGFkZGluZykgKiAyKTtcXG4gICAgICBoZWlnaHQ6IHZhcigtLWNvZGUtZnJhbWUtbGluZS1oZWlnaHQpO1xcbiAgICAgIGxlZnQ6IGNhbGMoLTEgKiB2YXIoLS1jb2RlLWZyYW1lLXBhZGRpbmcpKTtcXG4gICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1jb2xvci1yZWQtMjAwKTtcXG4gICAgICBib3gtc2hhZG93OiAycHggMCAwIDAgdmFyKC0tY29sb3ItcmVkLTkwMCkgaW5zZXQ7XFxuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xcbiAgICB9XFxuICB9XFxuXFxuXFxuICBbZGF0YS1uZXh0anMtY29kZWZyYW1lXSA+ICoge1xcbiAgICBtYXJnaW46IDA7XFxuICB9XFxuXFxuICAuY29kZS1mcmFtZS1saW5rIHtcXG4gICAgZGlzcGxheTogZmxleDtcXG4gICAgbWFyZ2luOiAwO1xcbiAgICBvdXRsaW5lOiAwO1xcbiAgfVxcbiAgLmNvZGUtZnJhbWUtbGluayBbZGF0YS1pY29uPVxcJ3JpZ2h0XFwnXSB7XFxuICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xcbiAgfVxcblxcbiAgW2RhdGEtbmV4dGpzLWNvZGVmcmFtZV0gZGl2ID4gcHJlIHtcXG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcXG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xcbiAgfVxcblxcbiAgW2RhdGEtbmV4dGpzLWNvZGVmcmFtZV0gc3ZnIHtcXG4gICAgY29sb3I6IHZhcigtLWNvbG9yLWdyYXktOTAwKTtcXG4gIH1cXG4nLFwiXFxuICBbZGF0YS1uZXh0anMtdGVybWluYWxdOjpzZWxlY3Rpb24sXFxuICBbZGF0YS1uZXh0anMtdGVybWluYWxdICo6OnNlbGVjdGlvbiB7XFxuICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNvbG9yLWFuc2ktc2VsZWN0aW9uKTtcXG4gIH1cXG5cXG4gIFtkYXRhLW5leHRqcy10ZXJtaW5hbF0gKiB7XFxuICAgIGNvbG9yOiBpbmhlcml0O1xcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcXG4gICAgZm9udC1mYW1pbHk6IHZhcigtLWZvbnQtc3RhY2stbW9ub3NwYWNlKTtcXG4gIH1cXG5cXG4gIFtkYXRhLW5leHRqcy10ZXJtaW5hbF0gPiBkaXYgPiBwIHtcXG4gICAgZGlzcGxheTogZmxleDtcXG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcXG4gICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xcbiAgICBjdXJzb3I6IHBvaW50ZXI7XFxuICAgIG1hcmdpbjogMDtcXG4gIH1cXG4gIFtkYXRhLW5leHRqcy10ZXJtaW5hbF0gPiBkaXYgPiBwOmhvdmVyIHtcXG4gICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmUgZG90dGVkO1xcbiAgfVxcbiAgW2RhdGEtbmV4dGpzLXRlcm1pbmFsXSBkaXYgPiBwcmUge1xcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XFxuICB9XFxuXCIsXCJcXG4gIFtkYXRhLXdpdGgtb3Blbi1pbi1lZGl0b3ItbGlua10gc3ZnIHtcXG4gICAgd2lkdGg6IGF1dG87XFxuICAgIGhlaWdodDogdmFyKC0tc2l6ZS0xNCk7XFxuICAgIG1hcmdpbi1sZWZ0OiA4cHg7XFxuICB9XFxuICBbZGF0YS13aXRoLW9wZW4taW4tZWRpdG9yLWxpbmtdIHtcXG4gICAgY3Vyc29yOiBwb2ludGVyO1xcbiAgfVxcbiAgW2RhdGEtd2l0aC1vcGVuLWluLWVkaXRvci1saW5rXTpob3ZlciB7XFxuICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lIGRvdHRlZDtcXG4gIH1cXG4gIFtkYXRhLXdpdGgtb3Blbi1pbi1lZGl0b3ItbGluay1pbXBvcnQtdHJhY2VdIHtcXG4gICAgbWFyZ2luLWxlZnQ6IDE2cHg7XFxuICB9XFxuXCIsXCJcIixcIlxcbiAgLm5leHRqcy1lcnJvci13aXRoLXN0YXRpYyB7XFxuICAgIGJvdHRvbTogY2FsYygxNnB4ICogNC41KTtcXG4gIH1cXG4gIHAubmV4dGpzX19jb250YWluZXJfZXJyb3JzX19saW5rIHtcXG4gICAgZm9udC1zaXplOiB2YXIoLS1zaXplLTE0KTtcXG4gIH1cXG4gIHAubmV4dGpzX19jb250YWluZXJfZXJyb3JzX19ub3RlcyB7XFxuICAgIGNvbG9yOiB2YXIoLS1jb2xvci1zdGFjay1ub3Rlcyk7XFxuICAgIGZvbnQtc2l6ZTogdmFyKC0tc2l6ZS0xNCk7XFxuICAgIGxpbmUtaGVpZ2h0OiAxLjU7XFxuICB9XFxuICAubmV4dGpzLWNvbnRhaW5lci1lcnJvcnMtYm9keSA+IGgyOm5vdCg6Zmlyc3QtY2hpbGQpIHtcXG4gICAgbWFyZ2luLXRvcDogY2FsYygxNnB4ICsgOHB4KTtcXG4gIH1cXG4gIC5uZXh0anMtY29udGFpbmVyLWVycm9ycy1ib2R5ID4gaDIge1xcbiAgICBjb2xvcjogdmFyKC0tY29sb3ItdGl0bGUtY29sb3IpO1xcbiAgICBtYXJnaW4tYm90dG9tOiA4cHg7XFxuICAgIGZvbnQtc2l6ZTogdmFyKC0tc2l6ZS0yMCk7XFxuICB9XFxuICAubmV4dGpzLXRvYXN0LWVycm9ycy1wYXJlbnQge1xcbiAgICBjdXJzb3I6IHBvaW50ZXI7XFxuICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjJzIGVhc2U7XFxuICB9XFxuICAubmV4dGpzLXRvYXN0LWVycm9ycy1wYXJlbnQ6aG92ZXIge1xcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDEuMSk7XFxuICB9XFxuICAubmV4dGpzLXRvYXN0LWVycm9ycyB7XFxuICAgIGRpc3BsYXk6IGZsZXg7XFxuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XFxuICAgIGp1c3RpZnktY29udGVudDogZmxleC1zdGFydDtcXG4gIH1cXG4gIC5uZXh0anMtdG9hc3QtZXJyb3JzID4gc3ZnIHtcXG4gICAgbWFyZ2luLXJpZ2h0OiA4cHg7XFxuICB9XFxuICAubmV4dGpzLXRvYXN0LWhpZGUtYnV0dG9uIHtcXG4gICAgbWFyZ2luLWxlZnQ6IDI0cHg7XFxuICAgIGJvcmRlcjogbm9uZTtcXG4gICAgYmFja2dyb3VuZDogbm9uZTtcXG4gICAgY29sb3I6IHZhcigtLWNvbG9yLWFuc2ktYnJpZ2h0LXdoaXRlKTtcXG4gICAgcGFkZGluZzogMDtcXG4gICAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjI1cyBlYXNlO1xcbiAgICBvcGFjaXR5OiAwLjc7XFxuICB9XFxuICAubmV4dGpzLXRvYXN0LWhpZGUtYnV0dG9uOmhvdmVyIHtcXG4gICAgb3BhY2l0eTogMTtcXG4gIH1cXG4gIC5uZXh0anNfX2NvbnRhaW5lcl9lcnJvcnNfX2Vycm9yX3RpdGxlIHtcXG4gICAgZGlzcGxheTogZmxleDtcXG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcXG4gICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xcbiAgICBtYXJnaW4tYm90dG9tOiAxNHB4O1xcbiAgfVxcbiAgLmVycm9yLW92ZXJsYXktbm90ZXMtY29udGFpbmVyIHtcXG4gICAgbWFyZ2luOiA4cHggMnB4O1xcbiAgfVxcbiAgLmVycm9yLW92ZXJsYXktbm90ZXMtY29udGFpbmVyIHAge1xcbiAgICB3aGl0ZS1zcGFjZTogcHJlLXdyYXA7XFxuICB9XFxuXCIsdEEsXCJcXG4gIC5uZXh0anMtY29udGFpbmVyLWJ1aWxkLWVycm9yLXZlcnNpb24tc3RhdHVzIHtcXG4gICAgLXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7XFxuICAgIGRpc3BsYXk6IGZsZXg7XFxuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xcbiAgICBnYXA6IDRweDtcXG5cXG4gICAgaGVpZ2h0OiB2YXIoLS1zaXplLTI2KTtcXG4gICAgcGFkZGluZzogNnB4IDhweCA2cHggNnB4O1xcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1jb2xvci1iYWNrZ3JvdW5kLTEwMCk7XFxuICAgIGJhY2tncm91bmQtY2xpcDogcGFkZGluZy1ib3g7XFxuICAgIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWNvbG9yLWdyYXktYWxwaGEtNDAwKTtcXG4gICAgYm94LXNoYWRvdzogdmFyKC0tc2hhZG93LXNtYWxsKTtcXG4gICAgYm9yZGVyLXJhZGl1czogdmFyKC0tcm91bmRlZC1mdWxsKTtcXG5cXG4gICAgY29sb3I6IHZhcigtLWNvbG9yLWdyYXktOTAwKTtcXG4gICAgZm9udC1zaXplOiB2YXIoLS1zaXplLTEyKTtcXG4gICAgZm9udC13ZWlnaHQ6IDUwMDtcXG4gICAgbGluZS1oZWlnaHQ6IHZhcigtLXNpemUtMTYpO1xcbiAgfVxcblxcbiAgYS5uZXh0anMtY29udGFpbmVyLWJ1aWxkLWVycm9yLXZlcnNpb24tc3RhdHVzIHtcXG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xcbiAgICBjb2xvcjogdmFyKC0tY29sb3ItZ3JheS05MDApO1xcblxcbiAgICAmOmhvdmVyIHtcXG4gICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1jb2xvci1ncmF5LTEwMCk7XFxuICAgIH1cXG5cXG4gICAgJjpmb2N1cyB7XFxuICAgICAgb3V0bGluZTogdmFyKC0tZm9jdXMtcmluZyk7XFxuICAgIH1cXG4gIH1cXG5cXG4gIC52ZXJzaW9uLXN0YWxlbmVzcy1pbmRpY2F0b3IuZnJlc2gge1xcbiAgICBmaWxsOiB2YXIoLS1jb2xvci1ncmVlbi04MDApO1xcbiAgICBzdHJva2U6IHZhcigtLWNvbG9yLWdyZWVuLTMwMCk7XFxuICB9XFxuICAudmVyc2lvbi1zdGFsZW5lc3MtaW5kaWNhdG9yLnN0YWxlIHtcXG4gICAgZmlsbDogdmFyKC0tY29sb3ItYW1iZXItODAwKTtcXG4gICAgc3Ryb2tlOiB2YXIoLS1jb2xvci1hbWJlci0zMDApO1xcbiAgfVxcbiAgLnZlcnNpb24tc3RhbGVuZXNzLWluZGljYXRvci5vdXRkYXRlZCB7XFxuICAgIGZpbGw6IHZhcigtLWNvbG9yLXJlZC04MDApO1xcbiAgICBzdHJva2U6IHZhcigtLWNvbG9yLXJlZC0zMDApO1xcbiAgfVxcbiAgLnZlcnNpb24tc3RhbGVuZXNzLWluZGljYXRvci51bmtub3duIHtcXG4gICAgZmlsbDogdmFyKC0tY29sb3ItZ3JheS04MDApO1xcbiAgICBzdHJva2U6IHZhcigtLWNvbG9yLWdyYXktMzAwKTtcXG4gIH1cXG5cXG4gIC5uZXh0anMtY29udGFpbmVyLWJ1aWxkLWVycm9yLXZlcnNpb24tc3RhdHVzID4gLnR1cmJvcGFjay10ZXh0IHtcXG4gICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KFxcbiAgICAgIHRvIHJpZ2h0LFxcbiAgICAgIHZhcigtLWNvbG9yLXR1cmJvcGFjay10ZXh0LXJlZCkgMCUsXFxuICAgICAgdmFyKC0tY29sb3ItdHVyYm9wYWNrLXRleHQtYmx1ZSkgMTAwJVxcbiAgICApO1xcbiAgICBiYWNrZ3JvdW5kLWNsaXA6IHRleHQ7XFxuICAgIC13ZWJraXQtYmFja2dyb3VuZC1jbGlwOiB0ZXh0O1xcbiAgICAtd2Via2l0LXRleHQtZmlsbC1jb2xvcjogdHJhbnNwYXJlbnQ7XFxuICB9XFxuXCIsXCJcXG4gIC5yZXN0YXJ0LWRldi1zZXJ2ZXItYnV0dG9uIHtcXG4gICAgLXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7XFxuICAgIGRpc3BsYXk6IGZsZXg7XFxuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xcbiAgICBnYXA6IDRweDtcXG4gICAgbWFyZ2luOiAwIDEycHg7XFxuXFxuICAgIGhlaWdodDogdmFyKC0tc2l6ZS0yNik7XFxuICAgIHBhZGRpbmc6IDZweCA4cHggNnB4IDZweDtcXG4gICAgYmFja2dyb3VuZDogdmFyKC0tY29sb3ItYW1iZXItMTAwKTtcXG4gICAgYmFja2dyb3VuZC1jbGlwOiBwYWRkaW5nLWJveDtcXG4gICAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tY29sb3ItZ3JheS1hbHBoYS00MDApO1xcbiAgICBib3gtc2hhZG93OiB2YXIoLS1zaGFkb3ctc21hbGwpO1xcbiAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1yb3VuZGVkLWZ1bGwpO1xcblxcbiAgICBjb2xvcjogdmFyKC0tY29sb3ItYW1iZXItOTAwKTtcXG4gICAgZm9udC1zaXplOiB2YXIoLS1zaXplLTEyKTtcXG4gICAgZm9udC13ZWlnaHQ6IDUwMDtcXG4gICAgbGluZS1oZWlnaHQ6IHZhcigtLXNpemUtMTYpO1xcbiAgfVxcblwiLFwiXFxuICBbZGF0YS1uZXh0anMtdG9hc3RdIHtcXG4gICAgJltkYXRhLWhpZGRlbj0ndHJ1ZSddIHtcXG4gICAgICBkaXNwbGF5OiBub25lO1xcbiAgICB9XFxuICB9XFxuXFxuICAuZGV2LXRvb2xzLWluZGljYXRvci1tZW51IHtcXG4gICAgLXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7XFxuICAgIGRpc3BsYXk6IGZsZXg7XFxuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XFxuICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1jb2xvci1iYWNrZ3JvdW5kLTEwMCk7XFxuICAgIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWNvbG9yLWdyYXktYWxwaGEtNDAwKTtcXG4gICAgYmFja2dyb3VuZC1jbGlwOiBwYWRkaW5nLWJveDtcXG4gICAgYm94LXNoYWRvdzogdmFyKC0tc2hhZG93LW1lbnUpO1xcbiAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1yb3VuZGVkLXhsKTtcXG4gICAgcG9zaXRpb246IGFic29sdXRlO1xcbiAgICBmb250LWZhbWlseTogdmFyKC0tZm9udC1zdGFjay1zYW5zKTtcXG4gICAgei1pbmRleDogMztcXG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcXG4gICAgb3BhY2l0eTogMDtcXG4gICAgb3V0bGluZTogMDtcXG4gICAgbWluLXdpZHRoOiAyNDhweDtcXG4gICAgdHJhbnNpdGlvbjogb3BhY2l0eSB2YXIoLS1hbmltYXRlLW91dC1kdXJhdGlvbi1tcylcXG4gICAgICB2YXIoLS1hbmltYXRlLW91dC10aW1pbmctZnVuY3Rpb24pO1xcblxcbiAgICAmW2RhdGEtcmVuZGVyZWQ9J3RydWUnXSB7XFxuICAgICAgb3BhY2l0eTogMTtcXG4gICAgICBzY2FsZTogMTtcXG4gICAgfVxcbiAgfVxcblxcbiAgLmRldi10b29scy1pbmRpY2F0b3ItaW5uZXIge1xcbiAgICBwYWRkaW5nOiA2cHg7XFxuICAgIHdpZHRoOiAxMDAlO1xcbiAgfVxcblxcbiAgLmRldi10b29scy1pbmRpY2F0b3ItaXRlbSB7XFxuICAgIGRpc3BsYXk6IGZsZXg7XFxuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XFxuICAgIHBhZGRpbmc6IDhweCA2cHg7XFxuICAgIGhlaWdodDogdmFyKC0tc2l6ZS0zNik7XFxuICAgIGJvcmRlci1yYWRpdXM6IDZweDtcXG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lICFpbXBvcnRhbnQ7XFxuICAgIHVzZXItc2VsZWN0OiBub25lO1xcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xcblxcbiAgICBzdmcge1xcbiAgICAgIHdpZHRoOiB2YXIoLS1zaXplLTE2KTtcXG4gICAgICBoZWlnaHQ6IHZhcigtLXNpemUtMTYpO1xcbiAgICB9XFxuXFxuICAgICY6Zm9jdXMtdmlzaWJsZSB7XFxuICAgICAgb3V0bGluZTogMDtcXG4gICAgfVxcbiAgfVxcblxcbiAgLmRldi10b29scy1pbmRpY2F0b3ItZm9vdGVyIHtcXG4gICAgYmFja2dyb3VuZDogdmFyKC0tY29sb3ItYmFja2dyb3VuZC0yMDApO1xcbiAgICBwYWRkaW5nOiA2cHg7XFxuICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCB2YXIoLS1jb2xvci1ncmF5LTQwMCk7XFxuICAgIHdpZHRoOiAxMDAlO1xcbiAgfVxcblxcbiAgLmRldi10b29scy1pbmRpY2F0b3ItaXRlbVtkYXRhLXNlbGVjdGVkPSd0cnVlJ10ge1xcbiAgICBjdXJzb3I6IHBvaW50ZXI7XFxuICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNvbG9yLWdyYXktMjAwKTtcXG4gIH1cXG5cXG4gIC5kZXYtdG9vbHMtaW5kaWNhdG9yLWxhYmVsIHtcXG4gICAgZm9udC1zaXplOiB2YXIoLS1zaXplLTE0KTtcXG4gICAgbGluZS1oZWlnaHQ6IHZhcigtLXNpemUtMjApO1xcbiAgICBjb2xvcjogdmFyKC0tY29sb3ItZ3JheS0xMDAwKTtcXG4gIH1cXG5cXG4gIC5kZXYtdG9vbHMtaW5kaWNhdG9yLXZhbHVlIHtcXG4gICAgZm9udC1zaXplOiB2YXIoLS1zaXplLTE0KTtcXG4gICAgbGluZS1oZWlnaHQ6IHZhcigtLXNpemUtMjApO1xcbiAgICBjb2xvcjogdmFyKC0tY29sb3ItZ3JheS05MDApO1xcbiAgICBtYXJnaW4tbGVmdDogYXV0bztcXG4gIH1cXG5cXG4gIC5kZXYtdG9vbHMtaW5kaWNhdG9yLWlzc3VlLWNvdW50IHtcXG4gICAgLS1jb2xvci1wcmltYXJ5OiB2YXIoLS1jb2xvci1ncmF5LTgwMCk7XFxuICAgIC0tY29sb3Itc2Vjb25kYXJ5OiB2YXIoLS1jb2xvci1ncmF5LTEwMCk7XFxuICAgIGRpc3BsYXk6IGZsZXg7XFxuICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XFxuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XFxuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xcbiAgICBnYXA6IDhweDtcXG4gICAgbWluLXdpZHRoOiB2YXIoLS1zaXplLTQwKTtcXG4gICAgaGVpZ2h0OiB2YXIoLS1zaXplLTI0KTtcXG4gICAgYmFja2dyb3VuZDogdmFyKC0tY29sb3ItYmFja2dyb3VuZC0xMDApO1xcbiAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1jb2xvci1ncmF5LWFscGhhLTQwMCk7XFxuICAgIGJhY2tncm91bmQtY2xpcDogcGFkZGluZy1ib3g7XFxuICAgIGJveC1zaGFkb3c6IHZhcigtLXNoYWRvdy1zbWFsbCk7XFxuICAgIHBhZGRpbmc6IDJweDtcXG4gICAgY29sb3I6IHZhcigtLWNvbG9yLWdyYXktMTAwMCk7XFxuICAgIGJvcmRlci1yYWRpdXM6IDEyOHB4O1xcbiAgICBmb250LXdlaWdodDogNTAwO1xcbiAgICBmb250LXNpemU6IHZhcigtLXNpemUtMTMpO1xcbiAgICBmb250LXZhcmlhbnQtbnVtZXJpYzogdGFidWxhci1udW1zO1xcblxcbiAgICAmW2RhdGEtaGFzLWlzc3Vlcz0ndHJ1ZSddIHtcXG4gICAgICAtLWNvbG9yLXByaW1hcnk6IHZhcigtLWNvbG9yLXJlZC04MDApO1xcbiAgICAgIC0tY29sb3Itc2Vjb25kYXJ5OiB2YXIoLS1jb2xvci1yZWQtMTAwKTtcXG4gICAgfVxcblxcbiAgICAuZGV2LXRvb2xzLWluZGljYXRvci1pc3N1ZS1jb3VudC1pbmRpY2F0b3Ige1xcbiAgICAgIHdpZHRoOiB2YXIoLS1zaXplLTgpO1xcbiAgICAgIGhlaWdodDogdmFyKC0tc2l6ZS04KTtcXG4gICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1jb2xvci1wcmltYXJ5KTtcXG4gICAgICBib3gtc2hhZG93OiAwIDAgMCAycHggdmFyKC0tY29sb3Itc2Vjb25kYXJ5KTtcXG4gICAgICBib3JkZXItcmFkaXVzOiA1MCU7XFxuICAgIH1cXG4gIH1cXG5cXG4gIC5kZXYtdG9vbHMtaW5kaWNhdG9yLXNob3J0Y3V0IHtcXG4gICAgZGlzcGxheTogZmxleDtcXG4gICAgZ2FwOiA0cHg7XFxuXFxuICAgIGtiZCB7XFxuICAgICAgd2lkdGg6IHZhcigtLXNpemUtMjApO1xcbiAgICAgIGhlaWdodDogdmFyKC0tc2l6ZS0yMCk7XFxuICAgICAgZGlzcGxheTogZmxleDtcXG4gICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcXG4gICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xcbiAgICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLXJvdW5kZWQtbWQpO1xcbiAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWNvbG9yLWdyYXktNDAwKTtcXG4gICAgICBmb250LWZhbWlseTogdmFyKC0tZm9udC1zdGFjay1zYW5zKTtcXG4gICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1jb2xvci1iYWNrZ3JvdW5kLTEwMCk7XFxuICAgICAgY29sb3I6IHZhcigtLWNvbG9yLWdyYXktMTAwMCk7XFxuICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xcbiAgICAgIGZvbnQtc2l6ZTogdmFyKC0tc2l6ZS0xMik7XFxuICAgICAgbGluZS1oZWlnaHQ6IHZhcigtLXNpemUtMTYpO1xcbiAgICB9XFxuICB9XFxuXFxuICAuZGV2LXRvb2xzLWdyYWJiaW5nIHtcXG4gICAgY3Vyc29yOiBncmFiYmluZztcXG5cXG4gICAgPiAqIHtcXG4gICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcXG4gICAgfVxcbiAgfVxcblwiLHQwLmcsXCJcXG4gIC5kZXYtdG9vbHMtaW5mby1jb2RlIHtcXG4gICAgYmFja2dyb3VuZDogdmFyKC0tY29sb3ItZ3JheS00MDApO1xcbiAgICBjb2xvcjogdmFyKC0tY29sb3ItZ3JheS0xMDAwKTtcXG4gICAgZm9udC1mYW1pbHk6IHZhcigtLWZvbnQtc3RhY2stbW9ub3NwYWNlKTtcXG4gICAgcGFkZGluZzogMnB4IDRweDtcXG4gICAgbWFyZ2luOiAwO1xcbiAgICBmb250LXNpemU6IHZhcigtLXNpemUtMTMpO1xcbiAgICB3aGl0ZS1zcGFjZTogYnJlYWstc3BhY2VzO1xcbiAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1yb3VuZGVkLW1kLTIpO1xcbiAgfVxcblxcbiAgLmRldi10b29scy1pbmZvLWNvZGUtYmxvY2stY29udGFpbmVyIHtcXG4gICAgcGFkZGluZzogNnB4O1xcbiAgfVxcblxcbiAgLmRldi10b29scy1pbmZvLWNvZGUtYmxvY2sge1xcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XFxuICAgIGJhY2tncm91bmQ6IHZhcigtLWNvbG9yLWJhY2tncm91bmQtMjAwKTtcXG4gICAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tY29sb3ItZ3JheS1hbHBoYS00MDApO1xcbiAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1yb3VuZGVkLW1kLTIpO1xcbiAgICBtaW4td2lkdGg6IDMyNnB4O1xcbiAgfVxcblxcbiAgLmRldi10b29scy1pbmZvLWNvZGUtYmxvY2stcHJlIHtcXG4gICAgbWFyZ2luOiAwO1xcbiAgICBmb250LWZhbWlseTogdmFyKC0tZm9udC1zdGFjay1tb25vc3BhY2UpO1xcbiAgICBmb250LXNpemU6IHZhcigtLXNpemUtMTIpO1xcbiAgfVxcblxcbiAgLmRldi10b29scy1pbmZvLWNvcHktYnV0dG9uIHtcXG4gICAgcG9zaXRpb246IGFic29sdXRlO1xcblxcbiAgICBkaXNwbGF5OiBmbGV4O1xcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcXG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcXG4gICAgcmlnaHQ6IDhweDtcXG4gICAgdG9wOiA4cHg7XFxuICAgIHBhZGRpbmc6IDRweDtcXG4gICAgaGVpZ2h0OiB2YXIoLS1zaXplLTI0KTtcXG4gICAgd2lkdGg6IHZhcigtLXNpemUtMjQpO1xcbiAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1yb3VuZGVkLW1kLTIpO1xcbiAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1jb2xvci1ncmF5LWFscGhhLTQwMCk7XFxuICAgIGJhY2tncm91bmQ6IHZhcigtLWNvbG9yLWJhY2tncm91bmQtMTAwKTtcXG4gIH1cXG5cXG4gIC5kZXYtdG9vbHMtaW5mby1jb2RlLWJsb2NrLWxpbmUge1xcbiAgICBkaXNwbGF5OiBibG9jaztcXG4gICAgbGluZS1oZWlnaHQ6IDEuNTtcXG4gICAgcGFkZGluZzogMCAxNnB4O1xcbiAgfVxcblxcbiAgLmRldi10b29scy1pbmZvLWNvZGUtYmxvY2stbGluZS5kZXYtdG9vbHMtaW5mby1oaWdobGlnaHQge1xcbiAgICBib3JkZXItbGVmdDogMnB4IHNvbGlkIHZhcigtLWNvbG9yLWJsdWUtOTAwKTtcXG4gICAgYmFja2dyb3VuZDogdmFyKC0tY29sb3ItYmx1ZS00MDApO1xcbiAgfVxcblxcbiAgLmRldi10b29scy1pbmZvLWNvZGUtYmxvY2stanNvbi1rZXkge1xcbiAgICBjb2xvcjogdmFyKC0tY29sb3Itc3ludGF4LWtleXdvcmQpO1xcbiAgfVxcblxcbiAgLmRldi10b29scy1pbmZvLWNvZGUtYmxvY2stanNvbi12YWx1ZSB7XFxuICAgIGNvbG9yOiB2YXIoLS1jb2xvci1zeW50YXgtbGluayk7XFxuICB9XFxuXCIsXCJcIixyUywnXFxuICAubmV4dGpzLXNjcm9sbC1mYWRlciB7XFxuICAgIC0tYmx1cjogMXB4O1xcbiAgICAtLXN0b3A6IDI1JTtcXG4gICAgLS1oZWlnaHQ6IDE1MHB4O1xcbiAgICAtLWNvbG9yLWJnOiB2YXIoLS1jb2xvci1iYWNrZ3JvdW5kLTEwMCk7XFxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcXG4gICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XFxuICAgIHVzZXItc2VsZWN0OiBub25lO1xcbiAgICB3aWR0aDogMTAwJTtcXG4gICAgaGVpZ2h0OiB2YXIoLS1oZWlnaHQpO1xcbiAgICBsZWZ0OiAwO1xcbiAgICBiYWNrZHJvcC1maWx0ZXI6IGJsdXIodmFyKC0tYmx1cikpO1xcblxcbiAgICAmW2RhdGEtc2lkZT1cInRvcFwiXSB7XFxuICAgICAgdG9wOiAwO1xcbiAgICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCh0byB0b3AsIHRyYW5zcGFyZW50LCB2YXIoLS1jb2xvci1iZykpO1xcbiAgICAgIG1hc2staW1hZ2U6IGxpbmVhci1ncmFkaWVudCh0byBib3R0b20sIHZhcigtLWNvbG9yLWJnKSB2YXIoLS1zdG9wKSwgdHJhbnNwYXJlbnQpO1xcbiAgICB9XFxuICB9XFxuJyxhYyxyNCxyMCxvbixvTixvTyxvYyxvbyxvTCxvdyxvYixvZixybSl9KX1mdW5jdGlvbiBhZigpe3ZhciBlLG4sdD0oZT1bXCJcXG4gICAgICAgIDpob3N0IHtcXG4gICAgICAgICAgYWxsOiBpbml0aWFsO1xcblxcbiAgICAgICAgICAvKiB0aGUgZGlyZWN0aW9uIHByb3BlcnR5IGlzIG5vdCByZXNldCBieSAnYWxsJyAqL1xcbiAgICAgICAgICBkaXJlY3Rpb246IGx0cjtcXG4gICAgICAgIH1cXG5cXG4gICAgICAgIC8qIVxcbiAgICAgICAgICogQm9vdHN0cmFwIFJlYm9vdCB2NC40LjEgKGh0dHBzOi8vZ2V0Ym9vdHN0cmFwLmNvbS8pXFxuICAgICAgICAgKiBDb3B5cmlnaHQgMjAxMS0yMDE5IFRoZSBCb290c3RyYXAgQXV0aG9yc1xcbiAgICAgICAgICogQ29weXJpZ2h0IDIwMTEtMjAxOSBUd2l0dGVyLCBJbmMuXFxuICAgICAgICAgKiBMaWNlbnNlZCB1bmRlciBNSVQgKGh0dHBzOi8vZ2l0aHViLmNvbS90d2JzL2Jvb3RzdHJhcC9ibG9iL21hc3Rlci9MSUNFTlNFKVxcbiAgICAgICAgICogRm9ya2VkIGZyb20gTm9ybWFsaXplLmNzcywgbGljZW5zZWQgTUlUIChodHRwczovL2dpdGh1Yi5jb20vbmVjb2xhcy9ub3JtYWxpemUuY3NzL2Jsb2IvbWFzdGVyL0xJQ0VOU0UubWQpXFxuICAgICAgICAgKi9cXG4gICAgICAgICosXFxuICAgICAgICAqOjpiZWZvcmUsXFxuICAgICAgICAqOjphZnRlciB7XFxuICAgICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XFxuICAgICAgICB9XFxuXFxuICAgICAgICA6aG9zdCB7XFxuICAgICAgICAgIGZvbnQtZmFtaWx5OiBzYW5zLXNlcmlmO1xcbiAgICAgICAgICBsaW5lLWhlaWdodDogMS4xNTtcXG4gICAgICAgICAgLXdlYmtpdC10ZXh0LXNpemUtYWRqdXN0OiAxMDAlO1xcbiAgICAgICAgICAtd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMCk7XFxuICAgICAgICB9XFxuXFxuICAgICAgICBhcnRpY2xlLFxcbiAgICAgICAgYXNpZGUsXFxuICAgICAgICBmaWdjYXB0aW9uLFxcbiAgICAgICAgZmlndXJlLFxcbiAgICAgICAgZm9vdGVyLFxcbiAgICAgICAgaGVhZGVyLFxcbiAgICAgICAgaGdyb3VwLFxcbiAgICAgICAgbWFpbixcXG4gICAgICAgIG5hdixcXG4gICAgICAgIHNlY3Rpb24ge1xcbiAgICAgICAgICBkaXNwbGF5OiBibG9jaztcXG4gICAgICAgIH1cXG5cXG4gICAgICAgIDpob3N0IHtcXG4gICAgICAgICAgbWFyZ2luOiAwO1xcbiAgICAgICAgICBmb250LWZhbWlseTogLWFwcGxlLXN5c3RlbSwgQmxpbmtNYWNTeXN0ZW1Gb250LCAnU2Vnb2UgVUknLCBSb2JvdG8sXFxuICAgICAgICAgICAgJ0hlbHZldGljYSBOZXVlJywgQXJpYWwsICdOb3RvIFNhbnMnLCBzYW5zLXNlcmlmLFxcbiAgICAgICAgICAgICdBcHBsZSBDb2xvciBFbW9qaScsICdTZWdvZSBVSSBFbW9qaScsICdTZWdvZSBVSSBTeW1ib2wnLFxcbiAgICAgICAgICAgICdOb3RvIENvbG9yIEVtb2ppJztcXG4gICAgICAgICAgZm9udC1zaXplOiAxNnB4O1xcbiAgICAgICAgICBmb250LXdlaWdodDogNDAwO1xcbiAgICAgICAgICBsaW5lLWhlaWdodDogMS41O1xcbiAgICAgICAgICBjb2xvcjogdmFyKC0tY29sb3ItZm9udCk7XFxuICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XFxuICAgICAgICB9XFxuXFxuICAgICAgICA6aG9zdDpub3QoYnV0dG9uKSB7XFxuICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XFxuICAgICAgICB9XFxuXFxuICAgICAgICBbdGFiaW5kZXg9Jy0xJ106Zm9jdXM6bm90KDpmb2N1cy12aXNpYmxlKSB7XFxuICAgICAgICAgIG91dGxpbmU6IDAgIWltcG9ydGFudDtcXG4gICAgICAgIH1cXG5cXG4gICAgICAgIGhyIHtcXG4gICAgICAgICAgYm94LXNpemluZzogY29udGVudC1ib3g7XFxuICAgICAgICAgIGhlaWdodDogMDtcXG4gICAgICAgICAgb3ZlcmZsb3c6IHZpc2libGU7XFxuICAgICAgICB9XFxuXFxuICAgICAgICBoMSxcXG4gICAgICAgIGgyLFxcbiAgICAgICAgaDMsXFxuICAgICAgICBoNCxcXG4gICAgICAgIGg1LFxcbiAgICAgICAgaDYge1xcbiAgICAgICAgICBtYXJnaW4tdG9wOiAwO1xcbiAgICAgICAgICBtYXJnaW4tYm90dG9tOiA4cHg7XFxuICAgICAgICB9XFxuXFxuICAgICAgICBwIHtcXG4gICAgICAgICAgbWFyZ2luLXRvcDogMDtcXG4gICAgICAgICAgbWFyZ2luLWJvdHRvbTogMTZweDtcXG4gICAgICAgIH1cXG5cXG4gICAgICAgIGFiYnJbdGl0bGVdLFxcbiAgICAgICAgYWJicltkYXRhLW9yaWdpbmFsLXRpdGxlXSB7XFxuICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xcbiAgICAgICAgICAtd2Via2l0LXRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lIGRvdHRlZDtcXG4gICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmUgZG90dGVkO1xcbiAgICAgICAgICBjdXJzb3I6IGhlbHA7XFxuICAgICAgICAgIGJvcmRlci1ib3R0b206IDA7XFxuICAgICAgICAgIC13ZWJraXQtdGV4dC1kZWNvcmF0aW9uLXNraXAtaW5rOiBub25lO1xcbiAgICAgICAgICB0ZXh0LWRlY29yYXRpb24tc2tpcC1pbms6IG5vbmU7XFxuICAgICAgICB9XFxuXFxuICAgICAgICBhZGRyZXNzIHtcXG4gICAgICAgICAgbWFyZ2luLWJvdHRvbTogMTZweDtcXG4gICAgICAgICAgZm9udC1zdHlsZTogbm9ybWFsO1xcbiAgICAgICAgICBsaW5lLWhlaWdodDogaW5oZXJpdDtcXG4gICAgICAgIH1cXG5cXG4gICAgICAgIG9sLFxcbiAgICAgICAgdWwsXFxuICAgICAgICBkbCB7XFxuICAgICAgICAgIG1hcmdpbi10b3A6IDA7XFxuICAgICAgICAgIG1hcmdpbi1ib3R0b206IDE2cHg7XFxuICAgICAgICB9XFxuXFxuICAgICAgICBvbCBvbCxcXG4gICAgICAgIHVsIHVsLFxcbiAgICAgICAgb2wgdWwsXFxuICAgICAgICB1bCBvbCB7XFxuICAgICAgICAgIG1hcmdpbi1ib3R0b206IDA7XFxuICAgICAgICB9XFxuXFxuICAgICAgICBkdCB7XFxuICAgICAgICAgIGZvbnQtd2VpZ2h0OiA3MDA7XFxuICAgICAgICB9XFxuXFxuICAgICAgICBkZCB7XFxuICAgICAgICAgIG1hcmdpbi1ib3R0b206IDhweDtcXG4gICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XFxuICAgICAgICB9XFxuXFxuICAgICAgICBibG9ja3F1b3RlIHtcXG4gICAgICAgICAgbWFyZ2luOiAwIDAgMTZweDtcXG4gICAgICAgIH1cXG5cXG4gICAgICAgIGIsXFxuICAgICAgICBzdHJvbmcge1xcbiAgICAgICAgICBmb250LXdlaWdodDogYm9sZGVyO1xcbiAgICAgICAgfVxcblxcbiAgICAgICAgc21hbGwge1xcbiAgICAgICAgICBmb250LXNpemU6IDgwJTtcXG4gICAgICAgIH1cXG5cXG4gICAgICAgIHN1YixcXG4gICAgICAgIHN1cCB7XFxuICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcXG4gICAgICAgICAgZm9udC1zaXplOiA3NSU7XFxuICAgICAgICAgIGxpbmUtaGVpZ2h0OiAwO1xcbiAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7XFxuICAgICAgICB9XFxuXFxuICAgICAgICBzdWIge1xcbiAgICAgICAgICBib3R0b206IC0wLjI1ZW07XFxuICAgICAgICB9XFxuXFxuICAgICAgICBzdXAge1xcbiAgICAgICAgICB0b3A6IC0wLjVlbTtcXG4gICAgICAgIH1cXG5cXG4gICAgICAgIGEge1xcbiAgICAgICAgICBjb2xvcjogIzAwN2JmZjtcXG4gICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xcbiAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcXG4gICAgICAgIH1cXG5cXG4gICAgICAgIGE6aG92ZXIge1xcbiAgICAgICAgICBjb2xvcjogIzAwNTZiMztcXG4gICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XFxuICAgICAgICB9XFxuXFxuICAgICAgICBhOm5vdChbaHJlZl0pIHtcXG4gICAgICAgICAgY29sb3I6IGluaGVyaXQ7XFxuICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcXG4gICAgICAgIH1cXG5cXG4gICAgICAgIGE6bm90KFtocmVmXSk6aG92ZXIge1xcbiAgICAgICAgICBjb2xvcjogaW5oZXJpdDtcXG4gICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xcbiAgICAgICAgfVxcblxcbiAgICAgICAgcHJlLFxcbiAgICAgICAgY29kZSxcXG4gICAgICAgIGtiZCxcXG4gICAgICAgIHNhbXAge1xcbiAgICAgICAgICBmb250LWZhbWlseTogU0ZNb25vLVJlZ3VsYXIsIE1lbmxvLCBNb25hY28sIENvbnNvbGFzLFxcbiAgICAgICAgICAgICdMaWJlcmF0aW9uIE1vbm8nLCAnQ291cmllciBOZXcnLCBtb25vc3BhY2U7XFxuICAgICAgICAgIGZvbnQtc2l6ZTogMWVtO1xcbiAgICAgICAgfVxcblxcbiAgICAgICAgcHJlIHtcXG4gICAgICAgICAgbWFyZ2luLXRvcDogMDtcXG4gICAgICAgICAgbWFyZ2luLWJvdHRvbTogMTZweDtcXG4gICAgICAgICAgb3ZlcmZsb3c6IGF1dG87XFxuICAgICAgICB9XFxuXFxuICAgICAgICBmaWd1cmUge1xcbiAgICAgICAgICBtYXJnaW46IDAgMCAxNnB4O1xcbiAgICAgICAgfVxcblxcbiAgICAgICAgaW1nIHtcXG4gICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcXG4gICAgICAgICAgYm9yZGVyLXN0eWxlOiBub25lO1xcbiAgICAgICAgfVxcblxcbiAgICAgICAgc3ZnIHtcXG4gICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcXG4gICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcXG4gICAgICAgIH1cXG5cXG4gICAgICAgIHRhYmxlIHtcXG4gICAgICAgICAgYm9yZGVyLWNvbGxhcHNlOiBjb2xsYXBzZTtcXG4gICAgICAgIH1cXG5cXG4gICAgICAgIGNhcHRpb24ge1xcbiAgICAgICAgICBwYWRkaW5nLXRvcDogMTJweDtcXG4gICAgICAgICAgcGFkZGluZy1ib3R0b206IDEycHg7XFxuICAgICAgICAgIGNvbG9yOiAjNmM3NTdkO1xcbiAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xcbiAgICAgICAgICBjYXB0aW9uLXNpZGU6IGJvdHRvbTtcXG4gICAgICAgIH1cXG5cXG4gICAgICAgIHRoIHtcXG4gICAgICAgICAgdGV4dC1hbGlnbjogaW5oZXJpdDtcXG4gICAgICAgIH1cXG5cXG4gICAgICAgIGxhYmVsIHtcXG4gICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xcbiAgICAgICAgICBtYXJnaW4tYm90dG9tOiA4cHg7XFxuICAgICAgICB9XFxuXFxuICAgICAgICBidXR0b24ge1xcbiAgICAgICAgICBib3JkZXItcmFkaXVzOiAwO1xcbiAgICAgICAgICBib3JkZXI6IDA7XFxuICAgICAgICAgIHBhZGRpbmc6IDA7XFxuICAgICAgICAgIG1hcmdpbjogMDtcXG4gICAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcXG4gICAgICAgICAgYXBwZWFyYW5jZTogbm9uZTtcXG4gICAgICAgICAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xcbiAgICAgICAgfVxcblxcbiAgICAgICAgYnV0dG9uOmZvY3VzIHtcXG4gICAgICAgICAgb3V0bGluZTogMXB4IGRvdHRlZDtcXG4gICAgICAgICAgb3V0bGluZTogNXB4IGF1dG8gLXdlYmtpdC1mb2N1cy1yaW5nLWNvbG9yO1xcbiAgICAgICAgfVxcblxcbiAgICAgICAgYnV0dG9uOmZvY3VzOm5vdCg6Zm9jdXMtdmlzaWJsZSkge1xcbiAgICAgICAgICBvdXRsaW5lOiBub25lO1xcbiAgICAgICAgfVxcblxcbiAgICAgICAgaW5wdXQsXFxuICAgICAgICBidXR0b24sXFxuICAgICAgICBzZWxlY3QsXFxuICAgICAgICBvcHRncm91cCxcXG4gICAgICAgIHRleHRhcmVhIHtcXG4gICAgICAgICAgbWFyZ2luOiAwO1xcbiAgICAgICAgICBmb250LWZhbWlseTogaW5oZXJpdDtcXG4gICAgICAgICAgZm9udC1zaXplOiBpbmhlcml0O1xcbiAgICAgICAgICBsaW5lLWhlaWdodDogaW5oZXJpdDtcXG4gICAgICAgIH1cXG5cXG4gICAgICAgIGJ1dHRvbixcXG4gICAgICAgIGlucHV0IHtcXG4gICAgICAgICAgb3ZlcmZsb3c6IHZpc2libGU7XFxuICAgICAgICB9XFxuXFxuICAgICAgICBidXR0b24sXFxuICAgICAgICBzZWxlY3Qge1xcbiAgICAgICAgICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcXG4gICAgICAgIH1cXG5cXG4gICAgICAgIHNlbGVjdCB7XFxuICAgICAgICAgIHdvcmQtd3JhcDogbm9ybWFsO1xcbiAgICAgICAgfVxcblxcbiAgICAgICAgYnV0dG9uLFxcbiAgICAgICAgW3R5cGU9J2J1dHRvbiddLFxcbiAgICAgICAgW3R5cGU9J3Jlc2V0J10sXFxuICAgICAgICBbdHlwZT0nc3VibWl0J10ge1xcbiAgICAgICAgICAtd2Via2l0LWFwcGVhcmFuY2U6IGJ1dHRvbjtcXG4gICAgICAgIH1cXG5cXG4gICAgICAgIGJ1dHRvbjpub3QoOmRpc2FibGVkKSxcXG4gICAgICAgIFt0eXBlPSdidXR0b24nXTpub3QoOmRpc2FibGVkKSxcXG4gICAgICAgIFt0eXBlPSdyZXNldCddOm5vdCg6ZGlzYWJsZWQpLFxcbiAgICAgICAgW3R5cGU9J3N1Ym1pdCddOm5vdCg6ZGlzYWJsZWQpIHtcXG4gICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xcbiAgICAgICAgfVxcblxcbiAgICAgICAgYnV0dG9uOjotbW96LWZvY3VzLWlubmVyLFxcbiAgICAgICAgW3R5cGU9J2J1dHRvbiddOjotbW96LWZvY3VzLWlubmVyLFxcbiAgICAgICAgW3R5cGU9J3Jlc2V0J106Oi1tb3otZm9jdXMtaW5uZXIsXFxuICAgICAgICBbdHlwZT0nc3VibWl0J106Oi1tb3otZm9jdXMtaW5uZXIge1xcbiAgICAgICAgICBwYWRkaW5nOiAwO1xcbiAgICAgICAgICBib3JkZXItc3R5bGU6IG5vbmU7XFxuICAgICAgICB9XFxuXFxuICAgICAgICBpbnB1dFt0eXBlPSdyYWRpbyddLFxcbiAgICAgICAgaW5wdXRbdHlwZT0nY2hlY2tib3gnXSB7XFxuICAgICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XFxuICAgICAgICAgIHBhZGRpbmc6IDA7XFxuICAgICAgICB9XFxuXFxuICAgICAgICBpbnB1dFt0eXBlPSdkYXRlJ10sXFxuICAgICAgICBpbnB1dFt0eXBlPSd0aW1lJ10sXFxuICAgICAgICBpbnB1dFt0eXBlPSdkYXRldGltZS1sb2NhbCddLFxcbiAgICAgICAgaW5wdXRbdHlwZT0nbW9udGgnXSB7XFxuICAgICAgICAgIC13ZWJraXQtYXBwZWFyYW5jZTogbGlzdGJveDtcXG4gICAgICAgIH1cXG5cXG4gICAgICAgIHRleHRhcmVhIHtcXG4gICAgICAgICAgb3ZlcmZsb3c6IGF1dG87XFxuICAgICAgICAgIHJlc2l6ZTogdmVydGljYWw7XFxuICAgICAgICB9XFxuXFxuICAgICAgICBmaWVsZHNldCB7XFxuICAgICAgICAgIG1pbi13aWR0aDogMDtcXG4gICAgICAgICAgcGFkZGluZzogMDtcXG4gICAgICAgICAgbWFyZ2luOiAwO1xcbiAgICAgICAgICBib3JkZXI6IDA7XFxuICAgICAgICB9XFxuXFxuICAgICAgICBsZWdlbmQge1xcbiAgICAgICAgICBkaXNwbGF5OiBibG9jaztcXG4gICAgICAgICAgd2lkdGg6IDEwMCU7XFxuICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcXG4gICAgICAgICAgcGFkZGluZzogMDtcXG4gICAgICAgICAgbWFyZ2luLWJvdHRvbTogOHB4O1xcbiAgICAgICAgICBmb250LXNpemU6IDI0cHg7XFxuICAgICAgICAgIGxpbmUtaGVpZ2h0OiBpbmhlcml0O1xcbiAgICAgICAgICBjb2xvcjogaW5oZXJpdDtcXG4gICAgICAgICAgd2hpdGUtc3BhY2U6IG5vcm1hbDtcXG4gICAgICAgIH1cXG5cXG4gICAgICAgIHByb2dyZXNzIHtcXG4gICAgICAgICAgdmVydGljYWwtYWxpZ246IGJhc2VsaW5lO1xcbiAgICAgICAgfVxcblxcbiAgICAgICAgW3R5cGU9J251bWJlciddOjotd2Via2l0LWlubmVyLXNwaW4tYnV0dG9uLFxcbiAgICAgICAgW3R5cGU9J251bWJlciddOjotd2Via2l0LW91dGVyLXNwaW4tYnV0dG9uIHtcXG4gICAgICAgICAgaGVpZ2h0OiBhdXRvO1xcbiAgICAgICAgfVxcblxcbiAgICAgICAgW3R5cGU9J3NlYXJjaCddIHtcXG4gICAgICAgICAgb3V0bGluZS1vZmZzZXQ6IC0ycHg7XFxuICAgICAgICAgIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcXG4gICAgICAgIH1cXG5cXG4gICAgICAgIFt0eXBlPSdzZWFyY2gnXTo6LXdlYmtpdC1zZWFyY2gtZGVjb3JhdGlvbiB7XFxuICAgICAgICAgIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcXG4gICAgICAgIH1cXG5cXG4gICAgICAgIDo6LXdlYmtpdC1maWxlLXVwbG9hZC1idXR0b24ge1xcbiAgICAgICAgICBmb250OiBpbmhlcml0O1xcbiAgICAgICAgICAtd2Via2l0LWFwcGVhcmFuY2U6IGJ1dHRvbjtcXG4gICAgICAgIH1cXG5cXG4gICAgICAgIG91dHB1dCB7XFxuICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcXG4gICAgICAgIH1cXG5cXG4gICAgICAgIHN1bW1hcnkge1xcbiAgICAgICAgICBkaXNwbGF5OiBsaXN0LWl0ZW07XFxuICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcXG4gICAgICAgIH1cXG5cXG4gICAgICAgIHRlbXBsYXRlIHtcXG4gICAgICAgICAgZGlzcGxheTogbm9uZTtcXG4gICAgICAgIH1cXG5cXG4gICAgICAgIFtoaWRkZW5dIHtcXG4gICAgICAgICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xcbiAgICAgICAgfVxcbiAgICAgIFwiXSxufHwobj1lLnNsaWNlKDApKSxPYmplY3QuZnJlZXplKE9iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKGUse3Jhdzp7dmFsdWU6T2JqZWN0LmZyZWV6ZShuKX19KSkpO3JldHVybiBhZj1mdW5jdGlvbigpe3JldHVybiB0fSx0fWZ1bmN0aW9uIGFwKCl7cmV0dXJuKDAseS5qc3gpKFwic3R5bGVcIix7Y2hpbGRyZW46ZWkoYWYoKSl9KX1mdW5jdGlvbiBhaCgpe3ZhciBlLG4sdD0oZT1bJ1xcbiAgICAgICAgOmhvc3Qge1xcbiAgICAgICAgICAvKiBcXG4gICAgICAgICAgICogQ0FVVElPTjogVEhJUyBJUyBBIFdPUktBUk9VTkQhXFxuICAgICAgICAgICAqIEZvciBub3csIHdlIHVzZSBAYmFiZWwvY29kZS1mcmFtZSB0byBwYXJzZSB0aGUgY29kZSBmcmFtZSB3aGljaCBkb2VzIG5vdCBzdXBwb3J0IG9wdGlvbiB0byBjaGFuZ2UgdGhlIGNvbG9yLlxcbiAgICAgICAgICAgKiB4LXJlZjogaHR0cHM6Ly9naXRodWIuY29tL2JhYmVsL2JhYmVsL2Jsb2IvZWZhNTIzMjRmZjgzNWI3OTRjNDgwODBmMTQ4NzdiNmNhZjMyY2QxNS9wYWNrYWdlcy9iYWJlbC1jb2RlLWZyYW1lL3NyYy9kZWZzLnRzI0w0MC1MNTRcXG4gICAgICAgICAgICogU28sIHdlIGRvIGEgd29ya2Fyb3VuZCBtYXBwaW5nIHRvIGNoYW5nZSB0aGUgY29sb3IgbWF0Y2hpbmcgdGhlIHRoZW1lLlxcbiAgICAgICAgICAgKlxcbiAgICAgICAgICAgKiBGb3IgZXhhbXBsZSwgaW4gQGJhYmVsL2NvZGUtZnJhbWUsIHRoZSBcImtleXdvcmRcIiBpcyBtYXBwZWQgdG8gQU5TSSBcImN5YW5cIi5cXG4gICAgICAgICAgICogV2Ugd2FudCB0aGUgXCJrZXl3b3JkXCIgdG8gdXNlIHRoZSBcInN5bnRheC1rZXl3b3JkXCIgY29sb3IgaW4gdGhlIHRoZW1lLlxcbiAgICAgICAgICAgKiBTbywgd2UgbWFwIHRoZSBcImN5YW5cIiB0byB0aGUgXCJzeW50YXgta2V5d29yZFwiIGluIHRoZSB0aGVtZS5cXG4gICAgICAgICAgICovXFxuICAgICAgICAgIC8qIGN5YW46IGtleXdvcmQgKi9cXG4gICAgICAgICAgLS1jb2xvci1hbnNpLWN5YW46IHZhcigtLWNvbG9yLXN5bnRheC1rZXl3b3JkKTtcXG4gICAgICAgICAgLyogeWVsbG93OiBjYXBpdGFsaXplZCwganN4SWRlbnRpZmllciwgcHVuY3R1YXRpb24gKi9cXG4gICAgICAgICAgLS1jb2xvci1hbnNpLXllbGxvdzogdmFyKC0tY29sb3Itc3ludGF4LWZ1bmN0aW9uKTtcXG4gICAgICAgICAgLyogbWFnZW50YTogbnVtYmVyLCByZWdleCAqL1xcbiAgICAgICAgICAtLWNvbG9yLWFuc2ktbWFnZW50YTogdmFyKC0tY29sb3Itc3ludGF4LWtleXdvcmQpO1xcbiAgICAgICAgICAvKiBncmVlbjogc3RyaW5nICovXFxuICAgICAgICAgIC0tY29sb3ItYW5zaS1ncmVlbjogdmFyKC0tY29sb3Itc3ludGF4LXN0cmluZyk7XFxuICAgICAgICAgIC8qIGdyYXkgKGJyaWdodCBibGFjayk6IGNvbW1lbnQsIGd1dHRlciAqL1xcbiAgICAgICAgICAtLWNvbG9yLWFuc2ktYnJpZ2h0LWJsYWNrOiB2YXIoLS1jb2xvci1zeW50YXgtY29tbWVudCk7XFxuXFxuICAgICAgICAgIC8qIEFuc2kgLSBUZW1wb3JhcnkgKi9cXG4gICAgICAgICAgLS1jb2xvci1hbnNpLXNlbGVjdGlvbjogdmFyKC0tY29sb3ItZ3JheS1hbHBoYS0zMDApO1xcbiAgICAgICAgICAtLWNvbG9yLWFuc2ktYmc6IHZhcigtLWNvbG9yLWJhY2tncm91bmQtMjAwKTtcXG4gICAgICAgICAgLS1jb2xvci1hbnNpLWZnOiB2YXIoLS1jb2xvci1ncmF5LTEwMDApO1xcblxcbiAgICAgICAgICAtLWNvbG9yLWFuc2ktd2hpdGU6IHZhcigtLWNvbG9yLWdyYXktNzAwKTtcXG4gICAgICAgICAgLS1jb2xvci1hbnNpLWJsYWNrOiB2YXIoLS1jb2xvci1ncmF5LTIwMCk7XFxuICAgICAgICAgIC0tY29sb3ItYW5zaS1ibHVlOiB2YXIoLS1jb2xvci1ibHVlLTcwMCk7XFxuICAgICAgICAgIC0tY29sb3ItYW5zaS1yZWQ6IHZhcigtLWNvbG9yLXJlZC03MDApO1xcbiAgICAgICAgICAtLWNvbG9yLWFuc2ktYnJpZ2h0LXdoaXRlOiB2YXIoLS1jb2xvci1ncmF5LTEwMDApO1xcbiAgICAgICAgICAtLWNvbG9yLWFuc2ktYnJpZ2h0LWJsdWU6IHZhcigtLWNvbG9yLWJsdWUtODAwKTtcXG4gICAgICAgICAgLS1jb2xvci1hbnNpLWJyaWdodC1jeWFuOiB2YXIoLS1jb2xvci1ibHVlLTgwMCk7XFxuICAgICAgICAgIC0tY29sb3ItYW5zaS1icmlnaHQtZ3JlZW46IHZhcigtLWNvbG9yLWdyZWVuLTgwMCk7XFxuICAgICAgICAgIC0tY29sb3ItYW5zaS1icmlnaHQtbWFnZW50YTogdmFyKC0tY29sb3ItYmx1ZS04MDApO1xcbiAgICAgICAgICAtLWNvbG9yLWFuc2ktYnJpZ2h0LXJlZDogdmFyKC0tY29sb3ItcmVkLTgwMCk7XFxuICAgICAgICAgIC0tY29sb3ItYW5zaS1icmlnaHQteWVsbG93OiB2YXIoLS1jb2xvci1hbWJlci05MDApO1xcblxcbiAgICAgICAgICAvKiBCYWNrZ3JvdW5kIExpZ2h0ICovXFxuICAgICAgICAgIC0tY29sb3ItYmFja2dyb3VuZC0xMDA6ICNmZmZmZmY7XFxuICAgICAgICAgIC0tY29sb3ItYmFja2dyb3VuZC0yMDA6ICNmYWZhZmE7XFxuXFxuICAgICAgICAgIC8qIFN5bnRheCBMaWdodCAqL1xcbiAgICAgICAgICAtLWNvbG9yLXN5bnRheC1jb21tZW50OiAjNTQ1NDU0O1xcbiAgICAgICAgICAtLWNvbG9yLXN5bnRheC1jb25zdGFudDogIzE3MTcxNztcXG4gICAgICAgICAgLS1jb2xvci1zeW50YXgtZnVuY3Rpb246ICMwMDU0YWQ7XFxuICAgICAgICAgIC0tY29sb3Itc3ludGF4LWtleXdvcmQ6ICNhNTE4NTA7XFxuICAgICAgICAgIC0tY29sb3Itc3ludGF4LWxpbms6ICMwNjYwNTY7XFxuICAgICAgICAgIC0tY29sb3Itc3ludGF4LXBhcmFtZXRlcjogIzhmM2UwMDtcXG4gICAgICAgICAgLS1jb2xvci1zeW50YXgtcHVuY3R1YXRpb246ICMxNzE3MTc7XFxuICAgICAgICAgIC0tY29sb3Itc3ludGF4LXN0cmluZzogIzAzNjE1NztcXG4gICAgICAgICAgLS1jb2xvci1zeW50YXgtc3RyaW5nLWV4cHJlc3Npb246ICMwNjYwNTY7XFxuXFxuICAgICAgICAgIC8qIEdyYXkgU2NhbGUgTGlnaHQgKi9cXG4gICAgICAgICAgLS1jb2xvci1ncmF5LTEwMDogI2YyZjJmMjtcXG4gICAgICAgICAgLS1jb2xvci1ncmF5LTIwMDogI2ViZWJlYjtcXG4gICAgICAgICAgLS1jb2xvci1ncmF5LTMwMDogI2U2ZTZlNjtcXG4gICAgICAgICAgLS1jb2xvci1ncmF5LTQwMDogI2VhZWFlYTtcXG4gICAgICAgICAgLS1jb2xvci1ncmF5LTUwMDogI2M5YzljOTtcXG4gICAgICAgICAgLS1jb2xvci1ncmF5LTYwMDogI2E4YThhODtcXG4gICAgICAgICAgLS1jb2xvci1ncmF5LTcwMDogIzhmOGY4ZjtcXG4gICAgICAgICAgLS1jb2xvci1ncmF5LTgwMDogIzdkN2Q3ZDtcXG4gICAgICAgICAgLS1jb2xvci1ncmF5LTkwMDogIzY2NjY2NjtcXG4gICAgICAgICAgLS1jb2xvci1ncmF5LTEwMDA6ICMxNzE3MTc7XFxuXFxuICAgICAgICAgIC8qIEdyYXkgQWxwaGEgU2NhbGUgTGlnaHQgKi9cXG4gICAgICAgICAgLS1jb2xvci1ncmF5LWFscGhhLTEwMDogcmdiYSgwLCAwLCAwLCAwLjA1KTtcXG4gICAgICAgICAgLS1jb2xvci1ncmF5LWFscGhhLTIwMDogcmdiYSgwLCAwLCAwLCAwLjA4MSk7XFxuICAgICAgICAgIC0tY29sb3ItZ3JheS1hbHBoYS0zMDA6IHJnYmEoMCwgMCwgMCwgMC4xKTtcXG4gICAgICAgICAgLS1jb2xvci1ncmF5LWFscGhhLTQwMDogcmdiYSgwLCAwLCAwLCAwLjA4KTtcXG4gICAgICAgICAgLS1jb2xvci1ncmF5LWFscGhhLTUwMDogcmdiYSgwLCAwLCAwLCAwLjIxKTtcXG4gICAgICAgICAgLS1jb2xvci1ncmF5LWFscGhhLTYwMDogcmdiYSgwLCAwLCAwLCAwLjM0KTtcXG4gICAgICAgICAgLS1jb2xvci1ncmF5LWFscGhhLTcwMDogcmdiYSgwLCAwLCAwLCAwLjQ0KTtcXG4gICAgICAgICAgLS1jb2xvci1ncmF5LWFscGhhLTgwMDogcmdiYSgwLCAwLCAwLCAwLjUxKTtcXG4gICAgICAgICAgLS1jb2xvci1ncmF5LWFscGhhLTkwMDogcmdiYSgwLCAwLCAwLCAwLjYwNSk7XFxuICAgICAgICAgIC0tY29sb3ItZ3JheS1hbHBoYS0xMDAwOiByZ2JhKDAsIDAsIDAsIDAuOTEpO1xcblxcbiAgICAgICAgICAvKiBCbHVlIFNjYWxlIExpZ2h0ICovXFxuICAgICAgICAgIC0tY29sb3ItYmx1ZS0xMDA6ICNmMGY3ZmY7XFxuICAgICAgICAgIC0tY29sb3ItYmx1ZS0yMDA6ICNlZGY2ZmY7XFxuICAgICAgICAgIC0tY29sb3ItYmx1ZS0zMDA6ICNlMWYwZmY7XFxuICAgICAgICAgIC0tY29sb3ItYmx1ZS00MDA6ICNjZGU3ZmY7XFxuICAgICAgICAgIC0tY29sb3ItYmx1ZS01MDA6ICM5OWNlZmY7XFxuICAgICAgICAgIC0tY29sb3ItYmx1ZS02MDA6ICM1MmFlZmY7XFxuICAgICAgICAgIC0tY29sb3ItYmx1ZS03MDA6ICMwMDcwZjM7XFxuICAgICAgICAgIC0tY29sb3ItYmx1ZS04MDA6ICMwMDYwZDE7XFxuICAgICAgICAgIC0tY29sb3ItYmx1ZS05MDA6ICMwMDY3ZDY7XFxuICAgICAgICAgIC0tY29sb3ItYmx1ZS0xMDAwOiAjMDAyNWFkO1xcblxcbiAgICAgICAgICAvKiBSZWQgU2NhbGUgTGlnaHQgKi9cXG4gICAgICAgICAgLS1jb2xvci1yZWQtMTAwOiAjZmZmMGYwO1xcbiAgICAgICAgICAtLWNvbG9yLXJlZC0yMDA6ICNmZmViZWI7XFxuICAgICAgICAgIC0tY29sb3ItcmVkLTMwMDogI2ZmZTVlNTtcXG4gICAgICAgICAgLS1jb2xvci1yZWQtNDAwOiAjZmRkOGQ4O1xcbiAgICAgICAgICAtLWNvbG9yLXJlZC01MDA6ICNmOGJhYmE7XFxuICAgICAgICAgIC0tY29sb3ItcmVkLTYwMDogI2Y4NzI3NDtcXG4gICAgICAgICAgLS1jb2xvci1yZWQtNzAwOiAjZTU0ODRkO1xcbiAgICAgICAgICAtLWNvbG9yLXJlZC04MDA6ICNkYTMwMzY7XFxuICAgICAgICAgIC0tY29sb3ItcmVkLTkwMDogI2NhMmEzMDtcXG4gICAgICAgICAgLS1jb2xvci1yZWQtMTAwMDogIzM4MTMxNjtcXG5cXG4gICAgICAgICAgLyogQW1iZXIgU2NhbGUgTGlnaHQgKi9cXG4gICAgICAgICAgLS1jb2xvci1hbWJlci0xMDA6ICNmZmY2ZTU7XFxuICAgICAgICAgIC0tY29sb3ItYW1iZXItMjAwOiAjZmZmNGQ1O1xcbiAgICAgICAgICAtLWNvbG9yLWFtYmVyLTMwMDogI2ZlZjBjZDtcXG4gICAgICAgICAgLS1jb2xvci1hbWJlci00MDA6ICNmZmRkYmY7XFxuICAgICAgICAgIC0tY29sb3ItYW1iZXItNTAwOiAjZmZjOTZiO1xcbiAgICAgICAgICAtLWNvbG9yLWFtYmVyLTYwMDogI2Y1YjA0NztcXG4gICAgICAgICAgLS1jb2xvci1hbWJlci03MDA6ICNmZmIyMjQ7XFxuICAgICAgICAgIC0tY29sb3ItYW1iZXItODAwOiAjZmY5OTBhO1xcbiAgICAgICAgICAtLWNvbG9yLWFtYmVyLTkwMDogI2EzNTIwMDtcXG4gICAgICAgICAgLS1jb2xvci1hbWJlci0xMDAwOiAjNGUyMDA5O1xcblxcbiAgICAgICAgICAvKiBHcmVlbiBTY2FsZSBMaWdodCAqL1xcbiAgICAgICAgICAtLWNvbG9yLWdyZWVuLTEwMDogI2VmZmJlZjtcXG4gICAgICAgICAgLS1jb2xvci1ncmVlbi0yMDA6ICNlYWZhZWE7XFxuICAgICAgICAgIC0tY29sb3ItZ3JlZW4tMzAwOiAjZGNmNmRjO1xcbiAgICAgICAgICAtLWNvbG9yLWdyZWVuLTQwMDogI2M4ZjFjOTtcXG4gICAgICAgICAgLS1jb2xvci1ncmVlbi01MDA6ICM5OWU1OWY7XFxuICAgICAgICAgIC0tY29sb3ItZ3JlZW4tNjAwOiAjNmNkYTc2O1xcbiAgICAgICAgICAtLWNvbG9yLWdyZWVuLTcwMDogIzQ2YTc1ODtcXG4gICAgICAgICAgLS1jb2xvci1ncmVlbi04MDA6ICMzODhlNGE7XFxuICAgICAgICAgIC0tY29sb3ItZ3JlZW4tOTAwOiAjMjk3YzNiO1xcbiAgICAgICAgICAtLWNvbG9yLWdyZWVuLTEwMDA6ICMxODMxMWU7XFxuXFxuICAgICAgICAgIC8qIFR1cmJvcGFjayBMaWdodCAtIFRlbXBvcmFyeSAqL1xcbiAgICAgICAgICAtLWNvbG9yLXR1cmJvcGFjay10ZXh0LXJlZDogI2ZmMWU1NjtcXG4gICAgICAgICAgLS1jb2xvci10dXJib3BhY2stdGV4dC1ibHVlOiAjMDA5NmZmO1xcbiAgICAgICAgICAtLWNvbG9yLXR1cmJvcGFjay1ib3JkZXItcmVkOiAjZjBhZGJlO1xcbiAgICAgICAgICAtLWNvbG9yLXR1cmJvcGFjay1ib3JkZXItYmx1ZTogI2FkY2NlYTtcXG4gICAgICAgICAgLS1jb2xvci10dXJib3BhY2stYmFja2dyb3VuZC1yZWQ6ICNmZmY3Zjk7XFxuICAgICAgICAgIC0tY29sb3ItdHVyYm9wYWNrLWJhY2tncm91bmQtYmx1ZTogI2Y2ZmJmZjtcXG4gICAgICAgIH1cXG4gICAgICAnXSxufHwobj1lLnNsaWNlKDApKSxPYmplY3QuZnJlZXplKE9iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKGUse3Jhdzp7dmFsdWU6T2JqZWN0LmZyZWV6ZShuKX19KSkpO3JldHVybiBhaD1mdW5jdGlvbigpe3JldHVybiB0fSx0fWZ1bmN0aW9uIGFnKCl7cmV0dXJuKDAseS5qc3gpKFwic3R5bGVcIix7Y2hpbGRyZW46ZWkoYWgoKSl9KX1mdW5jdGlvbiBhbShlKXtmb3IodmFyIG49MTtuPGFyZ3VtZW50cy5sZW5ndGg7bisrKXt2YXIgdD1udWxsIT1hcmd1bWVudHNbbl0/YXJndW1lbnRzW25dOnt9LHI9T2JqZWN0LmtleXModCk7XCJmdW5jdGlvblwiPT10eXBlb2YgT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyYmKHI9ci5jb25jYXQoT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyh0KS5maWx0ZXIoZnVuY3Rpb24oZSl7cmV0dXJuIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IodCxlKS5lbnVtZXJhYmxlfSkpKSxyLmZvckVhY2goZnVuY3Rpb24obil7dmFyIHIsbyxhO3I9ZSxvPW4sYT10W25dLG8gaW4gcj9PYmplY3QuZGVmaW5lUHJvcGVydHkocixvLHt2YWx1ZTphLGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwfSk6cltvXT1hfSl9cmV0dXJuIGV9ZnVuY3Rpb24gYXYoZSxuKXtyZXR1cm4gbj1udWxsIT1uP246e30sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcnM/T2JqZWN0LmRlZmluZVByb3BlcnRpZXMoZSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycyhuKSk6KGZ1bmN0aW9uKGUsbil7dmFyIHQ9T2JqZWN0LmtleXMoZSk7aWYoT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyl7dmFyIHI9T2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhlKTt0LnB1c2guYXBwbHkodCxyKX1yZXR1cm4gdH0pKE9iamVjdChuKSkuZm9yRWFjaChmdW5jdGlvbih0KXtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSx0LE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Iobix0KSl9KSxlfWZ1bmN0aW9uIGFiKGUpe3ZhciBuPWUuc3RhdGUsdD1lLmRpc3BhdGNoLHI9ZS5nZXRTcXVhc2hlZEh5ZHJhdGlvbkVycm9yRGV0YWlscyxvPWUucnVudGltZUVycm9ycyxhPWUuZXJyb3JDb3VudCxpPSEhcHJvY2Vzcy5lbnYuVFVSQk9QQUNLLGw9KDAsdEouTikobi5pc0Vycm9yT3ZlcmxheU9wZW4se2V4aXREZWxheToyMDB9KSxzPWwubW91bnRlZCxjPXtyZW5kZXJlZDpsLnJlbmRlcmVkLHRyYW5zaXRpb25EdXJhdGlvbk1zOjIwMCxpc1R1cmJvcGFjazppLHZlcnNpb25JbmZvOm4udmVyc2lvbkluZm8sZXJyb3JDb3VudDphfTtyZXR1cm4gbnVsbCE9PW4uYnVpbGRFcnJvcj8oMCx5LmpzeCkodHIsYXYoYW0oe30sYykse21lc3NhZ2U6bi5idWlsZEVycm9yLHJlbmRlcmVkOiEwfSkpOm8ubGVuZ3RoJiZzPygwLHkuanN4KSh0VCxhdihhbSh7fSxjKSx7ZGVidWdJbmZvOm4uZGVidWdJbmZvLGdldFNxdWFzaGVkSHlkcmF0aW9uRXJyb3JEZXRhaWxzOnIscnVudGltZUVycm9yczpvLG9uQ2xvc2U6ZnVuY3Rpb24oKXt0KHt0eXBlOkl9KX19KSk6KDAseS5qc3gpKHguU3VzcGVuc2Use30pfWZ1bmN0aW9uIGF5KGUsbil7KG51bGw9PW58fG4+ZS5sZW5ndGgpJiYobj1lLmxlbmd0aCk7Zm9yKHZhciB0PTAscj1BcnJheShuKTt0PG47dCsrKXJbdF09ZVt0XTtyZXR1cm4gcn1mdW5jdGlvbiBheChlLG4sdCl7cmV0dXJuIG4gaW4gZT9PYmplY3QuZGVmaW5lUHJvcGVydHkoZSxuLHt2YWx1ZTp0LGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwfSk6ZVtuXT10LGV9ZnVuY3Rpb24gYXcoZSl7Zm9yKHZhciBuPTE7bjxhcmd1bWVudHMubGVuZ3RoO24rKyl7dmFyIHQ9bnVsbCE9YXJndW1lbnRzW25dP2FyZ3VtZW50c1tuXTp7fSxyPU9iamVjdC5rZXlzKHQpO1wiZnVuY3Rpb25cIj09dHlwZW9mIE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMmJihyPXIuY29uY2F0KE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHModCkuZmlsdGVyKGZ1bmN0aW9uKGUpe3JldHVybiBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHQsZSkuZW51bWVyYWJsZX0pKSksci5mb3JFYWNoKGZ1bmN0aW9uKG4pe2F4KGUsbix0W25dKX0pfXJldHVybiBlfWZ1bmN0aW9uIGFqKGUsbil7cmV0dXJuIGZ1bmN0aW9uKGUpe2lmKEFycmF5LmlzQXJyYXkoZSkpcmV0dXJuIGV9KGUpfHxmdW5jdGlvbihlLG4pe3ZhciB0LHIsbz1udWxsPT1lP251bGw6XCJ1bmRlZmluZWRcIiE9dHlwZW9mIFN5bWJvbCYmZVtTeW1ib2wuaXRlcmF0b3JdfHxlW1wiQEBpdGVyYXRvclwiXTtpZihudWxsIT1vKXt2YXIgYT1bXSxpPSEwLGw9ITE7dHJ5e2ZvcihvPW8uY2FsbChlKTshKGk9KHQ9by5uZXh0KCkpLmRvbmUpJiYoYS5wdXNoKHQudmFsdWUpLCFufHxhLmxlbmd0aCE9PW4pO2k9ITApO31jYXRjaChlKXtsPSEwLHI9ZX1maW5hbGx5e3RyeXtpfHxudWxsPT1vLnJldHVybnx8by5yZXR1cm4oKX1maW5hbGx5e2lmKGwpdGhyb3cgcn19cmV0dXJuIGF9fShlLG4pfHxmdW5jdGlvbihlLG4pe2lmKGUpe2lmKFwic3RyaW5nXCI9PXR5cGVvZiBlKXJldHVybiBheShlLG4pO3ZhciB0PU9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChlKS5zbGljZSg4LC0xKTtpZihcIk9iamVjdFwiPT09dCYmZS5jb25zdHJ1Y3RvciYmKHQ9ZS5jb25zdHJ1Y3Rvci5uYW1lKSxcIk1hcFwiPT09dHx8XCJTZXRcIj09PXQpcmV0dXJuIEFycmF5LmZyb20odCk7aWYoXCJBcmd1bWVudHNcIj09PXR8fC9eKD86VWl8SSludCg/Ojh8MTZ8MzIpKD86Q2xhbXBlZCk/QXJyYXkkLy50ZXN0KHQpKXJldHVybiBheShlLG4pfX0oZSxuKXx8ZnVuY3Rpb24oKXt0aHJvdyBUeXBlRXJyb3IoXCJJbnZhbGlkIGF0dGVtcHQgdG8gZGVzdHJ1Y3R1cmUgbm9uLWl0ZXJhYmxlIGluc3RhbmNlLlxcXFxuSW4gb3JkZXIgdG8gYmUgaXRlcmFibGUsIG5vbi1hcnJheSBvYmplY3RzIG11c3QgaGF2ZSBhIFtTeW1ib2wuaXRlcmF0b3JdKCkgbWV0aG9kLlwiKX0oKX12YXIgYWs9ZnVuY3Rpb24oZSl7cmV0dXJuIGUuc3RhdGUuYnVpbGRFcnJvcj8oMCx5LmpzeCkoYU8sYXcoe30sZSkpOigwLHkuanN4KShhQSxhdyh7fSxlKSl9LGFBPWZ1bmN0aW9uKGUpe3ZhciBuLHQscixvPWUuY2hpbGRyZW4sYT1lLnN0YXRlLGk9ZS5pc0FwcERpcixsPWUuZGlzcGF0Y2gscz1hLmVycm9ycyxjPWFqKCgwLHgudXNlU3RhdGUpKHt9KSwyKSx1PWNbMF0sZD1jWzFdLGY9YWooKDAseC51c2VNZW1vKShmdW5jdGlvbigpe2Zvcih2YXIgZT1bXSxuPW51bGwsdD0wO3Q8cy5sZW5ndGg7Kyt0KXt2YXIgcj1zW3RdLG89ci5pZDtpZihvIGluIHUpe2UucHVzaCh1W29dKTtjb250aW51ZX1uPXI7YnJlYWt9cmV0dXJuW2Usbl19LFtzLHVdKSwyKSxwPWZbMF0saD1mWzFdO3JldHVybiB0PShuPXtlcnJvcnM6cyxkaXNwYXRjaDpsfSkuZXJyb3JzLHI9bi5kaXNwYXRjaCwoMCx4LnVzZUVmZmVjdCkoZnVuY3Rpb24oKXt2YXIgZSxuLG89KG51bGw9PShlPXByb2Nlc3MuZW52Ll9fTkVYVF9CVU5ETEVSKT92b2lkIDA6ZS50b1VwcGVyQ2FzZSgpKT09PVwiVFVSQk9QQUNLXCImJnByb2Nlc3MuZW52Ll9fTkVYVF9CVU5ETEVSX0hBU19QRVJTSVNURU5UX0NBQ0hFLGE9bnVsbD09KG49dFswXSk/dm9pZCAwOm4uZXJyb3I7aWYobyYmYSl7dmFyIGk9XCJfX25leHRfZXJyb3Jfb3ZlcmxheTpcIi5jb25jYXQod2luZG93LmxvY2F0aW9uLnBhdGhuYW1lLFwiOlwiKS5jb25jYXQoYS5tZXNzYWdlKTtyKHt0eXBlOkssc2hvd1Jlc3RhcnRTZXJ2ZXJCdXR0b246XCIxXCI9PT1zZXNzaW9uU3RvcmFnZS5nZXRJdGVtKGkpfSk7dmFyIGw9ZnVuY3Rpb24oKXtzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKGksXCIxXCIpfTtyZXR1cm4gd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoXCJiZWZvcmV1bmxvYWRcIixsKSxmdW5jdGlvbigpe3dpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKFwiYmVmb3JldW5sb2FkXCIsbCl9fXIoe3R5cGU6SyxzaG93UmVzdGFydFNlcnZlckJ1dHRvbjohMX0pfSxbdCxyXSksKDAseC51c2VFZmZlY3QpKGZ1bmN0aW9uKCl7aWYobnVsbCE9aCl7dmFyIGUsbix0PSEwO3JldHVybihlPWgsbj1pLHRiKGZ1bmN0aW9uKCl7dmFyIHQscixvLGEsaTtyZXR1cm4gdHcodGhpcyxmdW5jdGlvbihsKXtzd2l0Y2gobC5sYWJlbCl7Y2FzZSAwOnZhciBzLGM7aWYodD17aWQ6ZS5pZCxydW50aW1lOiEwLGVycm9yOmUuZXJyb3IsdHlwZTplLnR5cGV9LCEoXCJ1c2VcImluIHgpKXJldHVyblszLDFdO3JldHVybiByPXR4KHR5KHt9LHQpLHtmcmFtZXM6KGM9KHM9ZnVuY3Rpb24oKXtyZXR1cm4gdGIoZnVuY3Rpb24oKXtyZXR1cm4gdHcodGhpcyxmdW5jdGlvbih0KXtzd2l0Y2godC5sYWJlbCl7Y2FzZSAwOnJldHVybls0LGVDKGUuZnJhbWVzLHRtKGUuZXJyb3IpLG4pXTtjYXNlIDE6cmV0dXJuWzIsdC5zZW50KCldfX0pfSkoKX0pKCksZnVuY3Rpb24oKXtyZXR1cm4gY30pfSksdm9pZCAwIT09ZS5jb21wb25lbnRTdGFja0ZyYW1lcyYmKHIuY29tcG9uZW50U3RhY2tGcmFtZXM9ZS5jb21wb25lbnRTdGFja0ZyYW1lcyksWzIscl07Y2FzZSAxOnJldHVybiBhPVt0eSh7fSx0KV0saT17fSxbNCxlQyhlLmZyYW1lcyx0bShlLmVycm9yKSxuKV07Y2FzZSAyOnJldHVybiBvPXR4LmFwcGx5KHZvaWQgMCxhLmNvbmNhdChbKGkuZnJhbWVzPWwuc2VudCgpLGkpXSkpLHZvaWQgMCE9PWUuY29tcG9uZW50U3RhY2tGcmFtZXMmJihvLmNvbXBvbmVudFN0YWNrRnJhbWVzPWUuY29tcG9uZW50U3RhY2tGcmFtZXMpLFsyLG9dO2Nhc2UgMzpyZXR1cm5bMl19fSl9KSgpKS50aGVuKGZ1bmN0aW9uKGUpe3QmJmQoZnVuY3Rpb24obil7dmFyIHQscjtyZXR1cm4gdD1hdyh7fSxuKSxyPW51bGwhPShyPWF4KHt9LGUuaWQsZSkpP3I6e30sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcnM/T2JqZWN0LmRlZmluZVByb3BlcnRpZXModCxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycyhyKSk6KGZ1bmN0aW9uKGUsbil7dmFyIHQ9T2JqZWN0LmtleXMoZSk7aWYoT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyl7dmFyIHI9T2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhlKTt0LnB1c2guYXBwbHkodCxyKX1yZXR1cm4gdH0pKE9iamVjdChyKSkuZm9yRWFjaChmdW5jdGlvbihlKXtPYmplY3QuZGVmaW5lUHJvcGVydHkodCxlLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IocixlKSl9KSx0fSl9KSxmdW5jdGlvbigpe3Q9ITF9fX0sW2gsaV0pLG8oe3J1bnRpbWVFcnJvcnM6cCx0b3RhbEVycm9yQ291bnQ6cy5sZW5ndGh9KX0sYU89ZnVuY3Rpb24oZSl7cmV0dXJuKDAsZS5jaGlsZHJlbikoe3J1bnRpbWVFcnJvcnM6W10sdG90YWxFcnJvckNvdW50OjF9KX07ZnVuY3Rpb24gYUMoKXt2YXIgZSxuLHQ9KGU9W1wiXFxuICAgICAgOmhvc3QoLmRhcmspIHtcXG4gICAgICAgIFwiLFwiXFxuICAgICAgICBcIixcIlxcbiAgICAgIH1cXG5cXG4gICAgICBAbWVkaWEgKHByZWZlcnMtY29sb3Itc2NoZW1lOiBkYXJrKSB7XFxuICAgICAgICA6aG9zdCg6bm90KC5saWdodCkpIHtcXG4gICAgICAgICAgXCIsXCJcXG4gICAgICAgICAgXCIsXCJcXG4gICAgICAgIH1cXG4gICAgICB9XFxuICAgIFwiXSxufHwobj1lLnNsaWNlKDApKSxPYmplY3QuZnJlZXplKE9iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKGUse3Jhdzp7dmFsdWU6T2JqZWN0LmZyZWV6ZShuKX19KSkpO3JldHVybiBhQz1mdW5jdGlvbigpe3JldHVybiB0fSx0fXZhciBhUz1cIlxcbiAgLyogQmFja2dyb3VuZCBEYXJrICovXFxuICAtLWNvbG9yLWJhY2tncm91bmQtMTAwOiAjMGEwYTBhO1xcbiAgLS1jb2xvci1iYWNrZ3JvdW5kLTIwMDogIzAwMDAwMDtcXG5cXG4gIC8qIFN5bnRheCBEYXJrICovXFxuICAtLWNvbG9yLXN5bnRheC1jb21tZW50OiAjYTBhMGEwO1xcbiAgLS1jb2xvci1zeW50YXgtY29uc3RhbnQ6ICNlZGVkZWQ7XFxuICAtLWNvbG9yLXN5bnRheC1mdW5jdGlvbjogIzUyYTlmZjtcXG4gIC0tY29sb3Itc3ludGF4LWtleXdvcmQ6ICNmNzZlOTk7XFxuICAtLWNvbG9yLXN5bnRheC1saW5rOiAjMGFjNWIyO1xcbiAgLS1jb2xvci1zeW50YXgtcGFyYW1ldGVyOiAjZjFhMTBkO1xcbiAgLS1jb2xvci1zeW50YXgtcHVuY3R1YXRpb246ICNlZGVkZWQ7XFxuICAtLWNvbG9yLXN5bnRheC1zdHJpbmc6ICMwYWM1YjI7XFxuICAtLWNvbG9yLXN5bnRheC1zdHJpbmctZXhwcmVzc2lvbjogIzBhYzViMjtcXG5cXG4gIC8qIEdyYXkgU2NhbGUgRGFyayAqL1xcbiAgLS1jb2xvci1ncmF5LTEwMDogIzFhMWExYTtcXG4gIC0tY29sb3ItZ3JheS0yMDA6ICMxZjFmMWY7XFxuICAtLWNvbG9yLWdyYXktMzAwOiAjMjkyOTI5O1xcbiAgLS1jb2xvci1ncmF5LTQwMDogIzJlMmUyZTtcXG4gIC0tY29sb3ItZ3JheS01MDA6ICM0NTQ1NDU7XFxuICAtLWNvbG9yLWdyYXktNjAwOiAjODc4Nzg3O1xcbiAgLS1jb2xvci1ncmF5LTcwMDogIzhmOGY4ZjtcXG4gIC0tY29sb3ItZ3JheS04MDA6ICM3ZDdkN2Q7XFxuICAtLWNvbG9yLWdyYXktOTAwOiAjYTBhMGEwO1xcbiAgLS1jb2xvci1ncmF5LTEwMDA6ICNlZGVkZWQ7XFxuXFxuICAvKiBHcmF5IEFscGhhIFNjYWxlIERhcmsgKi9cXG4gIC0tY29sb3ItZ3JheS1hbHBoYS0xMDA6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4wNjYpO1xcbiAgLS1jb2xvci1ncmF5LWFscGhhLTIwMDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjA4Nyk7XFxuICAtLWNvbG9yLWdyYXktYWxwaGEtMzAwOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMTI1KTtcXG4gIC0tY29sb3ItZ3JheS1hbHBoYS00MDA6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xNDUpO1xcbiAgLS1jb2xvci1ncmF5LWFscGhhLTUwMDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjIzOSk7XFxuICAtLWNvbG9yLWdyYXktYWxwaGEtNjAwOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNTA2KTtcXG4gIC0tY29sb3ItZ3JheS1hbHBoYS03MDA6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC41NCk7XFxuICAtLWNvbG9yLWdyYXktYWxwaGEtODAwOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNDcpO1xcbiAgLS1jb2xvci1ncmF5LWFscGhhLTkwMDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjYxKTtcXG4gIC0tY29sb3ItZ3JheS1hbHBoYS0xMDAwOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuOTIzKTtcXG5cXG4gIC8qIEJsdWUgU2NhbGUgRGFyayAqL1xcbiAgLS1jb2xvci1ibHVlLTEwMDogIzBmMWIyZDtcXG4gIC0tY29sb3ItYmx1ZS0yMDA6ICMxMDI0M2U7XFxuICAtLWNvbG9yLWJsdWUtMzAwOiAjMGYzMDU4O1xcbiAgLS1jb2xvci1ibHVlLTQwMDogIzBkMzg2ODtcXG4gIC0tY29sb3ItYmx1ZS01MDA6ICMwYTQ0ODE7XFxuICAtLWNvbG9yLWJsdWUtNjAwOiAjMDA5MWZmO1xcbiAgLS1jb2xvci1ibHVlLTcwMDogIzAwNzBmMztcXG4gIC0tY29sb3ItYmx1ZS04MDA6ICMwMDYwZDE7XFxuICAtLWNvbG9yLWJsdWUtOTAwOiAjNTJhOWZmO1xcbiAgLS1jb2xvci1ibHVlLTEwMDA6ICNlYWY2ZmY7XFxuXFxuICAvKiBSZWQgU2NhbGUgRGFyayAqL1xcbiAgLS1jb2xvci1yZWQtMTAwOiAjMmExMzE0O1xcbiAgLS1jb2xvci1yZWQtMjAwOiAjM2QxNzE5O1xcbiAgLS1jb2xvci1yZWQtMzAwOiAjNTUxYTFlO1xcbiAgLS1jb2xvci1yZWQtNDAwOiAjNjcxZTIyO1xcbiAgLS1jb2xvci1yZWQtNTAwOiAjODIyMDI1O1xcbiAgLS1jb2xvci1yZWQtNjAwOiAjZTU0ODRkO1xcbiAgLS1jb2xvci1yZWQtNzAwOiAjZTU0ODRkO1xcbiAgLS1jb2xvci1yZWQtODAwOiAjZGEzMDM2O1xcbiAgLS1jb2xvci1yZWQtOTAwOiAjZmY2MzY5O1xcbiAgLS1jb2xvci1yZWQtMTAwMDogI2ZmZWNlZTtcXG5cXG4gIC8qIEFtYmVyIFNjYWxlIERhcmsgKi9cXG4gIC0tY29sb3ItYW1iZXItMTAwOiAjMjcxNzAwO1xcbiAgLS1jb2xvci1hbWJlci0yMDA6ICMzNDFjMDA7XFxuICAtLWNvbG9yLWFtYmVyLTMwMDogIzRhMjkwMDtcXG4gIC0tY29sb3ItYW1iZXItNDAwOiAjNTczMzAwO1xcbiAgLS1jb2xvci1hbWJlci01MDA6ICM2OTNmMDU7XFxuICAtLWNvbG9yLWFtYmVyLTYwMDogI2U3OWMxMztcXG4gIC0tY29sb3ItYW1iZXItNzAwOiAjZmZiMjI0O1xcbiAgLS1jb2xvci1hbWJlci04MDA6ICNmZjk5MGE7XFxuICAtLWNvbG9yLWFtYmVyLTkwMDogI2YxYTEwZDtcXG4gIC0tY29sb3ItYW1iZXItMTAwMDogI2ZlZjNkZDtcXG5cXG4gIC8qIEdyZWVuIFNjYWxlIERhcmsgKi9cXG4gIC0tY29sb3ItZ3JlZW4tMTAwOiAjMGIyMjExO1xcbiAgLS1jb2xvci1ncmVlbi0yMDA6ICMwZjJjMTc7XFxuICAtLWNvbG9yLWdyZWVuLTMwMDogIzExMzUxYjtcXG4gIC0tY29sb3ItZ3JlZW4tNDAwOiAjMGM0NjFiO1xcbiAgLS1jb2xvci1ncmVlbi01MDA6ICMxMjY0Mjc7XFxuICAtLWNvbG9yLWdyZWVuLTYwMDogIzFhOTMzODtcXG4gIC0tY29sb3ItZ3JlZW4tNzAwOiAjNDZhNzU4O1xcbiAgLS1jb2xvci1ncmVlbi04MDA6ICMzODhlNGE7XFxuICAtLWNvbG9yLWdyZWVuLTkwMDogIzYzYzE3NDtcXG4gIC0tY29sb3ItZ3JlZW4tMTAwMDogI2U1ZmJlYjtcXG5cXG4gIC8qIFR1cmJvcGFjayBEYXJrIC0gVGVtcG9yYXJ5ICovXFxuICAtLWNvbG9yLXR1cmJvcGFjay10ZXh0LXJlZDogI2ZmNmQ5MjtcXG4gIC0tY29sb3ItdHVyYm9wYWNrLXRleHQtYmx1ZTogIzQ1YjJmZjtcXG4gIC0tY29sb3ItdHVyYm9wYWNrLWJvcmRlci1yZWQ6ICM2ZTI5M2I7XFxuICAtLWNvbG9yLXR1cmJvcGFjay1ib3JkZXItYmx1ZTogIzI4NGY4MDtcXG4gIC0tY29sb3ItdHVyYm9wYWNrLWJhY2tncm91bmQtcmVkOiAjMjUwZDEyO1xcbiAgLS1jb2xvci10dXJib3BhY2stYmFja2dyb3VuZC1ibHVlOiAjMGExNzIzO1xcblwiLGFFPVwiXFxuICAtLWNvbG9yLWZvbnQ6IHdoaXRlO1xcbiAgLS1jb2xvci1iYWNrZHJvcDogcmdiYSgwLCAwLCAwLCAwLjgpO1xcbiAgLS1jb2xvci1ib3JkZXItc2hhZG93OiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMTQ1KTtcXG5cXG4gIC0tY29sb3ItdGl0bGUtY29sb3I6ICNmYWZhZmE7XFxuICAtLWNvbG9yLXN0YWNrLW5vdGVzOiAjYTlhOWE5O1xcblwiO2Z1bmN0aW9uIGFfKCl7cmV0dXJuKDAseS5qc3gpKFwic3R5bGVcIix7Y2hpbGRyZW46ZWkoYUMoKSxhRSxhUyxhRSxhUyl9KX1mdW5jdGlvbiBhUChlLG4peyhudWxsPT1ufHxuPmUubGVuZ3RoKSYmKG49ZS5sZW5ndGgpO2Zvcih2YXIgdD0wLHI9QXJyYXkobik7dDxuO3QrKylyW3RdPWVbdF07cmV0dXJuIHJ9ZnVuY3Rpb24gYXooZSxuKXtyZXR1cm4gZnVuY3Rpb24oZSl7aWYoQXJyYXkuaXNBcnJheShlKSlyZXR1cm4gZX0oZSl8fGZ1bmN0aW9uKGUsbil7dmFyIHQscixvPW51bGw9PWU/bnVsbDpcInVuZGVmaW5lZFwiIT10eXBlb2YgU3ltYm9sJiZlW1N5bWJvbC5pdGVyYXRvcl18fGVbXCJAQGl0ZXJhdG9yXCJdO2lmKG51bGwhPW8pe3ZhciBhPVtdLGk9ITAsbD0hMTt0cnl7Zm9yKG89by5jYWxsKGUpOyEoaT0odD1vLm5leHQoKSkuZG9uZSkmJihhLnB1c2godC52YWx1ZSksIW58fGEubGVuZ3RoIT09bik7aT0hMCk7fWNhdGNoKGUpe2w9ITAscj1lfWZpbmFsbHl7dHJ5e2l8fG51bGw9PW8ucmV0dXJufHxvLnJldHVybigpfWZpbmFsbHl7aWYobCl0aHJvdyByfX1yZXR1cm4gYX19KGUsbil8fGZ1bmN0aW9uKGUsbil7aWYoZSl7aWYoXCJzdHJpbmdcIj09dHlwZW9mIGUpcmV0dXJuIGFQKGUsbik7dmFyIHQ9T2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKGUpLnNsaWNlKDgsLTEpO2lmKFwiT2JqZWN0XCI9PT10JiZlLmNvbnN0cnVjdG9yJiYodD1lLmNvbnN0cnVjdG9yLm5hbWUpLFwiTWFwXCI9PT10fHxcIlNldFwiPT09dClyZXR1cm4gQXJyYXkuZnJvbSh0KTtpZihcIkFyZ3VtZW50c1wiPT09dHx8L14oPzpVaXxJKW50KD86OHwxNnwzMikoPzpDbGFtcGVkKT9BcnJheSQvLnRlc3QodCkpcmV0dXJuIGFQKGUsbil9fShlLG4pfHxmdW5jdGlvbigpe3Rocm93IFR5cGVFcnJvcihcIkludmFsaWQgYXR0ZW1wdCB0byBkZXN0cnVjdHVyZSBub24taXRlcmFibGUgaW5zdGFuY2UuXFxcXG5JbiBvcmRlciB0byBiZSBpdGVyYWJsZSwgbm9uLWFycmF5IG9iamVjdHMgbXVzdCBoYXZlIGEgW1N5bWJvbC5pdGVyYXRvcl0oKSBtZXRob2QuXCIpfSgpfWZ1bmN0aW9uIGFMKGUpe3ZhciBuLHQscixvPWUuc3RhdGUsYT1lLmRpc3BhdGNoLGk9ZS5nZXRTcXVhc2hlZEh5ZHJhdGlvbkVycm9yRGV0YWlscyxsPWF6KCh0PShuPXJ0KCgwLHgudXNlU3RhdGUpKFwidW5kZWZpbmVkXCIhPXR5cGVvZiBsb2NhbFN0b3JhZ2UmJmxvY2FsU3RvcmFnZS5nZXRJdGVtKEopP051bWJlcihsb2NhbFN0b3JhZ2UuZ2V0SXRlbShKKSk6Uy5NZWRpdW0pLDIpKVswXSxyPW5bMV0sW3QsZnVuY3Rpb24oZSl7cihlKSxsb2NhbFN0b3JhZ2Uuc2V0SXRlbShKLFN0cmluZyhlKSl9XSksMikscz1sWzBdLGM9bFsxXSx1PWF6KCgwLHgudXNlU3RhdGUpKCExKSwyKSxkPXVbMF0sZj11WzFdLHA9bnVsbCE9PW8uYnVpbGRFcnJvcjtyZXR1cm4gcHJvY2Vzcy5lbnYuX19ORVhUX0RFVlRPT0xfTkVXX1BBTkVMX1VJJiZwIT09ZCYmKHAmJihhKHt0eXBlOld9KSxhKHt0eXBlOk19KSksZihwKSksKDAseS5qc3hzKShlZCx7Y2hpbGRyZW46WygwLHkuanN4KShhcCx7fSksKDAseS5qc3gpKGVwLHtzY2FsZTpwcm9jZXNzLmVudi5fX05FWFRfREVWVE9PTF9ORVdfUEFORUxfVUk/by5zY2FsZTpzfSksKDAseS5qc3gpKGFnLHt9KSwoMCx5LmpzeCkoYWQse30pLCgwLHkuanN4KShhXyx7fSksKDAseS5qc3gpKGFrLHtzdGF0ZTpvLGRpc3BhdGNoOmEsaXNBcHBEaXI6ITAsY2hpbGRyZW46ZnVuY3Rpb24oZSl7dmFyIG49ZS5ydW50aW1lRXJyb3JzLHQ9ZS50b3RhbEVycm9yQ291bnQ7cmV0dXJuKDAseS5qc3gpKHkuRnJhZ21lbnQse2NoaWxkcmVuOm8uc2hvd0luZGljYXRvciYmKHByb2Nlc3MuZW52Ll9fTkVYVF9ERVZUT09MX05FV19QQU5FTF9VST8oMCx5LmpzeHMpKHkuRnJhZ21lbnQse2NoaWxkcmVuOlsoMCx5LmpzeCkob0ose3N0YXRlOm8sZGlzcGF0Y2g6YSxlcnJvckNvdW50OnQsaXNCdWlsZEVycm9yOnB9KSwoby5pc0RldlRvb2xzUGFuZWxPcGVufHxvLmlzRXJyb3JPdmVybGF5T3BlbikmJigwLHkuanN4KShhcyx7c3RhdGU6byxkaXNwYXRjaDphLGlzc3VlQ291bnQ6dCxydW50aW1lRXJyb3JzOm4sZ2V0U3F1YXNoZWRIeWRyYXRpb25FcnJvckRldGFpbHM6aX0pXX0pOigwLHkuanN4cykoeS5GcmFnbWVudCx7Y2hpbGRyZW46WygwLHkuanN4KShyVSx7c2NhbGU6cyxzZXRTY2FsZTpjLHN0YXRlOm8sZGlzcGF0Y2g6YSxlcnJvckNvdW50OnQsaXNCdWlsZEVycm9yOnB9KSwoMCx5LmpzeCkoYWIse3N0YXRlOm8sZGlzcGF0Y2g6YSxnZXRTcXVhc2hlZEh5ZHJhdGlvbkVycm9yRGV0YWlsczppLHJ1bnRpbWVFcnJvcnM6bixlcnJvckNvdW50OnR9KV19KSl9KX19KV19KX12YXIgYVQ9X193ZWJwYWNrX3JlcXVpcmVfXyhcIi4vc3JjL25leHQtZGV2dG9vbHMvZGV2LW92ZXJsYXkvc2VnbWVudC1leHBsb3Jlci10cmllLnRzXCIpO2Z1bmN0aW9uIGFSKGUsbil7KG51bGw9PW58fG4+ZS5sZW5ndGgpJiYobj1lLmxlbmd0aCk7Zm9yKHZhciB0PTAscj1BcnJheShuKTt0PG47dCsrKXJbdF09ZVt0XTtyZXR1cm4gcn1mdW5jdGlvbiBhTihlKXtyZXR1cm4gZnVuY3Rpb24oZSl7aWYoQXJyYXkuaXNBcnJheShlKSlyZXR1cm4gYVIoZSl9KGUpfHxmdW5jdGlvbihlKXtpZihcInVuZGVmaW5lZFwiIT10eXBlb2YgU3ltYm9sJiZudWxsIT1lW1N5bWJvbC5pdGVyYXRvcl18fG51bGwhPWVbXCJAQGl0ZXJhdG9yXCJdKXJldHVybiBBcnJheS5mcm9tKGUpfShlKXx8YUQoZSl8fGZ1bmN0aW9uKCl7dGhyb3cgVHlwZUVycm9yKFwiSW52YWxpZCBhdHRlbXB0IHRvIHNwcmVhZCBub24taXRlcmFibGUgaW5zdGFuY2UuXFxcXG5JbiBvcmRlciB0byBiZSBpdGVyYWJsZSwgbm9uLWFycmF5IG9iamVjdHMgbXVzdCBoYXZlIGEgW1N5bWJvbC5pdGVyYXRvcl0oKSBtZXRob2QuXCIpfSgpfWZ1bmN0aW9uIGFEKGUsbil7aWYoZSl7aWYoXCJzdHJpbmdcIj09dHlwZW9mIGUpcmV0dXJuIGFSKGUsbik7dmFyIHQ9T2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKGUpLnNsaWNlKDgsLTEpO2lmKFwiT2JqZWN0XCI9PT10JiZlLmNvbnN0cnVjdG9yJiYodD1lLmNvbnN0cnVjdG9yLm5hbWUpLFwiTWFwXCI9PT10fHxcIlNldFwiPT09dClyZXR1cm4gQXJyYXkuZnJvbSh0KTtpZihcIkFyZ3VtZW50c1wiPT09dHx8L14oPzpVaXxJKW50KD86OHwxNnwzMikoPzpDbGFtcGVkKT9BcnJheSQvLnRlc3QodCkpcmV0dXJuIGFSKGUsbil9fXZhciBhQj1udWxsLGFNPVtdO2Z1bmN0aW9uIGFJKGUpe3JldHVybiBmdW5jdGlvbigpe2Zvcih2YXIgbj1hcmd1bWVudHMubGVuZ3RoLHQ9QXJyYXkobikscj0wO3I8bjtyKyspdFtyXT1hcmd1bWVudHNbcl07YUI/ZS5hcHBseSh2b2lkIDAsW2FCXS5jb25jYXQoYU4odCkpKTphTS5wdXNoKGZ1bmN0aW9uKG4pe2UuYXBwbHkodm9pZCAwLFtuXS5jb25jYXQoYU4odCkpKX0pfX12YXIgYUg9e29uQnVpbGRPazphSShmdW5jdGlvbihlKXtlKHt0eXBlOl99KX0pLG9uQnVpbGRFcnJvcjphSShmdW5jdGlvbihlLG4pe2Uoe3R5cGU6UCxtZXNzYWdlOm59KX0pLG9uQmVmb3JlUmVmcmVzaDphSShmdW5jdGlvbihlKXtlKHt0eXBlOnp9KX0pLG9uUmVmcmVzaDphSShmdW5jdGlvbihlKXtlKHt0eXBlOkx9KX0pLG9uVmVyc2lvbkluZm86YUkoZnVuY3Rpb24oZSxuKXtlKHt0eXBlOlQsdmVyc2lvbkluZm86bn0pfSksb25TdGF0aWNJbmRpY2F0b3I6YUkoZnVuY3Rpb24oZSxuKXtlKHt0eXBlOkUsc3RhdGljSW5kaWNhdG9yOm59KX0pLG9uRGVidWdJbmZvOmFJKGZ1bmN0aW9uKGUsbil7ZSh7dHlwZTpELGRlYnVnSW5mbzpufSl9KSxvbkRldkluZGljYXRvcjphSShmdW5jdGlvbihlLG4pe2Uoe3R5cGU6QixkZXZJbmRpY2F0b3I6bn0pfSksb25VbmhhbmRsZWRFcnJvcjphSShmdW5jdGlvbihlLG4pe2Uoe3R5cGU6UixyZWFzb246bn0pfSksb25VbmhhbmRsZWRSZWplY3Rpb246YUkoZnVuY3Rpb24oZSxuKXtlKHt0eXBlOk4scmVhc29uOm59KX0pLG9wZW5FcnJvck92ZXJsYXk6YUkoZnVuY3Rpb24oZSl7ZSh7dHlwZTpNfSl9KSxjbG9zZUVycm9yT3ZlcmxheTphSShmdW5jdGlvbihlKXtlKHt0eXBlOkl9KX0pLHRvZ2dsZUVycm9yT3ZlcmxheTphSShmdW5jdGlvbihlKXtlKHt0eXBlOkh9KX0pLGJ1aWxkaW5nSW5kaWNhdG9ySGlkZTphSShmdW5jdGlvbihlKXtlKHt0eXBlOlV9KX0pLGJ1aWxkaW5nSW5kaWNhdG9yU2hvdzphSShmdW5jdGlvbihlKXtlKHt0eXBlOkZ9KX0pLHJlbmRlcmluZ0luZGljYXRvckhpZGU6YUkoZnVuY3Rpb24oZSl7ZSh7dHlwZTpxfSl9KSxyZW5kZXJpbmdJbmRpY2F0b3JTaG93OmFJKGZ1bmN0aW9uKGUpe2Uoe3R5cGU6Vn0pfSksc2VnbWVudEV4cGxvcmVyTm9kZUFkZDphSShmdW5jdGlvbihlLG4peygwLGFULnRoKShuKX0pLHNlZ21lbnRFeHBsb3Jlck5vZGVSZW1vdmU6YUkoZnVuY3Rpb24oZSxuKXsoMCxhVC5fYykobil9KSxzZWdtZW50RXhwbG9yZXJVcGRhdGVSb3V0ZVN0YXRlOmFJKGZ1bmN0aW9uKGUsbil7ZSh7dHlwZTplZSxwYWdlOm59KX0pfTtmdW5jdGlvbiBhRihlKXt2YXIgbix0LHI9ZS5nZXRDb21wb25lbnRTdGFjayxvPWUuZ2V0T3duZXJTdGFjayxhPWUuZ2V0U3F1YXNoZWRIeWRyYXRpb25FcnJvckRldGFpbHMsaT1lLmlzUmVjb3ZlcmFibGVFcnJvcixsPShuPWZ1bmN0aW9uKGUsbix0LHIpe3ZhciBvO2Z1bmN0aW9uIGEoZSxvLGEpe3ZhciBpLGw9bihhKSxzPXZvaWQgMD09PWw/dm9pZCAwOmZ1bmN0aW9uKGUpe3ZhciBuPVtdLHQ9ITAscj0hMSxvPXZvaWQgMDt0cnl7Zm9yKHZhciBhLGk9ZS50cmltKCkuc3BsaXQoXCJcXG5cIilbU3ltYm9sLml0ZXJhdG9yXSgpOyEodD0oYT1pLm5leHQoKSkuZG9uZSk7dD0hMCl7dmFyIGw9YS52YWx1ZSxzPS9hdCAoW14gXSspKCBcXCgoLiopXFwpKT8vLmV4ZWMobCk7aWYobnVsbD09cz92b2lkIDA6c1sxXSl7dmFyIGM9c1sxXSx1PXNbM107aWYoIXUpe24ucHVzaCh7Y2FuT3BlbkluRWRpdG9yOiExLGNvbXBvbmVudDpjfSk7Y29udGludWV9aWYobnVsbD09dT92b2lkIDA6dS5pbmNsdWRlcyhcIm5leHQvZGlzdFwiKSlicmVhazt2YXIgZD1mdW5jdGlvbihlKXt2YXIgbix0LHIsbyxhPShyPWUpLnN0YXJ0c1dpdGgoXCJmaWxlOi8vXCIpP1wiZmlsZVwiOnIuaW5jbHVkZXMoXCJ3ZWJwYWNrLWludGVybmFsOi8vXCIpP1wid2VicGFjay1pbnRlcm5hbFwiOnIuc3RhcnRzV2l0aChcImh0dHA6Ly9cIil8fHIuc3RhcnRzV2l0aChcImh0dHBzOi8vXCIpP1wiaHR0cFwiOnIuc3RhcnRzV2l0aChcIi8vXCIpP1wicHJvdG9jb2wtcmVsYXRpdmVcIjpcInVua25vd25cIixpPW51bGw9PWU/dm9pZCAwOmUucmVwbGFjZSgvXih3ZWJwYWNrLWludGVybmFsOlxcL1xcL1xcL3xmaWxlOlxcL1xcLykoXFwoLipcXClcXC8pPy8sXCJcIiksbD0obj1udWxsIT0obz1udWxsPT1pP3ZvaWQgMDppLm1hdGNoKC9eKC4rKTooXFxkKyk6KFxcZCspLykpP286W10sdD00LGZ1bmN0aW9uKGUpe2lmKEFycmF5LmlzQXJyYXkoZSkpcmV0dXJuIGV9KG4pfHxmdW5jdGlvbihlLG4pe3ZhciB0LHIsbz1udWxsPT1lP251bGw6XCJ1bmRlZmluZWRcIiE9dHlwZW9mIFN5bWJvbCYmZVtTeW1ib2wuaXRlcmF0b3JdfHxlW1wiQEBpdGVyYXRvclwiXTtpZihudWxsIT1vKXt2YXIgYT1bXSxpPSEwLGw9ITE7dHJ5e2ZvcihvPW8uY2FsbChlKTshKGk9KHQ9by5uZXh0KCkpLmRvbmUpJiYoYS5wdXNoKHQudmFsdWUpLGEubGVuZ3RoIT09bik7aT0hMCk7fWNhdGNoKGUpe2w9ITAscj1lfWZpbmFsbHl7dHJ5e2l8fG51bGw9PW8ucmV0dXJufHxvLnJldHVybigpfWZpbmFsbHl7aWYobCl0aHJvdyByfX1yZXR1cm4gYX19KG4sNCl8fGZ1bmN0aW9uKGUsbil7aWYoZSl7aWYoXCJzdHJpbmdcIj09dHlwZW9mIGUpcmV0dXJuIHcoZSxuKTt2YXIgdD1PYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwoZSkuc2xpY2UoOCwtMSk7aWYoXCJPYmplY3RcIj09PXQmJmUuY29uc3RydWN0b3ImJih0PWUuY29uc3RydWN0b3IubmFtZSksXCJNYXBcIj09PXR8fFwiU2V0XCI9PT10KXJldHVybiBBcnJheS5mcm9tKHQpO2lmKFwiQXJndW1lbnRzXCI9PT10fHwvXig/OlVpfEkpbnQoPzo4fDE2fDMyKSg/OkNsYW1wZWQpP0FycmF5JC8udGVzdCh0KSlyZXR1cm4gdyhlLG4pfX0obix0KXx8ZnVuY3Rpb24oKXt0aHJvdyBUeXBlRXJyb3IoXCJJbnZhbGlkIGF0dGVtcHQgdG8gZGVzdHJ1Y3R1cmUgbm9uLWl0ZXJhYmxlIGluc3RhbmNlLlxcXFxuSW4gb3JkZXIgdG8gYmUgaXRlcmFibGUsIG5vbi1hcnJheSBvYmplY3RzIG11c3QgaGF2ZSBhIFtTeW1ib2wuaXRlcmF0b3JdKCkgbWV0aG9kLlwiKX0oKSkscz1sWzFdLGM9bFsyXSx1PWxbM107c3dpdGNoKGEpe2Nhc2VcImZpbGVcIjpjYXNlXCJ3ZWJwYWNrLWludGVybmFsXCI6cmV0dXJue2Nhbk9wZW5JbkVkaXRvcjohMCxmaWxlOnMsbGluZU51bWJlcjpjP051bWJlcihjKTp2b2lkIDAsY29sdW1uOnU/TnVtYmVyKHUpOnZvaWQgMH07ZGVmYXVsdDpyZXR1cm57Y2FuT3BlbkluRWRpdG9yOiExfX19KHUpO24ucHVzaChmdW5jdGlvbihlKXtmb3IodmFyIG49MTtuPGFyZ3VtZW50cy5sZW5ndGg7bisrKXt2YXIgdD1udWxsIT1hcmd1bWVudHNbbl0/YXJndW1lbnRzW25dOnt9LHI9T2JqZWN0LmtleXModCk7XCJmdW5jdGlvblwiPT10eXBlb2YgT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyYmKHI9ci5jb25jYXQoT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyh0KS5maWx0ZXIoZnVuY3Rpb24oZSl7cmV0dXJuIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IodCxlKS5lbnVtZXJhYmxlfSkpKSxyLmZvckVhY2goZnVuY3Rpb24obil7dmFyIHIsbyxhO3I9ZSxvPW4sYT10W25dLG8gaW4gcj9PYmplY3QuZGVmaW5lUHJvcGVydHkocixvLHt2YWx1ZTphLGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwfSk6cltvXT1hfSl9cmV0dXJuIGV9KHtjb21wb25lbnQ6Y30sZCkpfX19Y2F0Y2goZSl7cj0hMCxvPWV9ZmluYWxseXt0cnl7dHx8bnVsbD09aS5yZXR1cm58fGkucmV0dXJuKCl9ZmluYWxseXtpZihyKXRocm93IG99fXJldHVybiBufShsKSxjPXQoYSksdT1mdW5jdGlvbihlKXt2YXIgbj1hcmd1bWVudHMubGVuZ3RoPjEmJnZvaWQgMCE9PWFyZ3VtZW50c1sxXT9hcmd1bWVudHNbMV06cHJvY2Vzcy5lbnYuX19ORVhUX0RJU1RfRElSO3JldHVybiBlPyhlPWUuc3BsaXQoXCJcXG5cIikubWFwKGZ1bmN0aW9uKGUpe3JldHVybiBlLmluY2x1ZGVzKFwiKGV2YWwgXCIpJiYoZT1lLnJlcGxhY2UoL2V2YWwgY29kZS9nLFwiZXZhbFwiKS5yZXBsYWNlKC9cXChldmFsIGF0IFteKCldKiBcXCgvLFwiKGZpbGU6Ly9cIikucmVwbGFjZSgvXFwpLC4qJC9nLFwiKVwiKSksZX0pLmpvaW4oXCJcXG5cIiksKDAsai5wYXJzZSkoZSkubWFwKGZ1bmN0aW9uKGUpe3RyeXt2YXIgdD1uZXcgVVJMKGUuZmlsZSkscj1rLmV4ZWModC5wYXRobmFtZSk7aWYocil7dmFyIG8sYT1udWxsPT1ufHxudWxsPT0obz1uLnJlcGxhY2UoL1xcXFwvZyxcIi9cIikpP3ZvaWQgMDpvLnJlcGxhY2UoL1xcLyQvLFwiXCIpO2EmJihlLmZpbGU9XCJmaWxlOi8vXCIrYS5jb25jYXQoci5wb3AoKSkrdC5zZWFyY2gpfX1jYXRjaChlKXt9cmV0dXJuIGV9KSk6W119KChhLnN0YWNrfHxcIlwiKSsoY3x8XCJcIikpLGQ9e2lkOm8sZXJyb3I6YSxmcmFtZXM6dSxjb21wb25lbnRTdGFja0ZyYW1lczpzLHR5cGU6cihhKT9cInJlY292ZXJhYmxlXCI6KGk9YSkmJlwiTkVYVF9DT05TT0xFX0VSUk9SXCI9PT1pW0FdP1wiY29uc29sZVwiOlwicnVudGltZVwifSxmPWUuZmlsdGVyKGZ1bmN0aW9uKGUpe3JldHVybiBlLmVycm9yLnN0YWNrIT09ZC5lcnJvci5zdGFjayYmZXQoZS5lcnJvci5zdGFjaykhPT1ldChkLmVycm9yLnN0YWNrKXx8dChlLmVycm9yKSE9PXQoZC5lcnJvcil9KTtyZXR1cm4gZi5sZW5ndGg9PT1lLmxlbmd0aD8oZi5wdXNoKGQpLGYpOmV9cmV0dXJuKDAseC51c2VSZWR1Y2VyKShmdW5jdGlvbihlLG4pe3N3aXRjaChuLnR5cGUpe2Nhc2UgRDpyZXR1cm4gQyhPKHt9LGUpLHtkZWJ1Z0luZm86bi5kZWJ1Z0luZm99KTtjYXNlIEU6cmV0dXJuIEMoTyh7fSxlKSx7c3RhdGljSW5kaWNhdG9yOm4uc3RhdGljSW5kaWNhdG9yfSk7Y2FzZSBfOnJldHVybiBDKE8oe30sZSkse2J1aWxkRXJyb3I6bnVsbH0pO2Nhc2UgUDpyZXR1cm4gQyhPKHt9LGUpLHtidWlsZEVycm9yOm4ubWVzc2FnZX0pO2Nhc2UgejpyZXR1cm4gQyhPKHt9LGUpLHtyZWZyZXNoU3RhdGU6e3R5cGU6XCJwZW5kaW5nXCIsZXJyb3JzOltdfX0pO2Nhc2UgTDpyZXR1cm4gQyhPKHt9LGUpLHtidWlsZEVycm9yOm51bGwsZXJyb3JzOlwicGVuZGluZ1wiPT09ZS5yZWZyZXNoU3RhdGUudHlwZT9lLnJlZnJlc2hTdGF0ZS5lcnJvcnM6W10scmVmcmVzaFN0YXRlOnt0eXBlOlwiaWRsZVwifX0pO2Nhc2UgUjpjYXNlIE46c3dpdGNoKGUucmVmcmVzaFN0YXRlLnR5cGUpe2Nhc2VcImlkbGVcIjpyZXR1cm4gQyhPKHt9LGUpLHtuZXh0SWQ6ZS5uZXh0SWQrMSxlcnJvcnM6YShlLmVycm9ycyxlLm5leHRJZCxuLnJlYXNvbil9KTtjYXNlXCJwZW5kaW5nXCI6cmV0dXJuIEMoTyh7fSxlKSx7bmV4dElkOmUubmV4dElkKzEscmVmcmVzaFN0YXRlOkMoTyh7fSxlLnJlZnJlc2hTdGF0ZSkse2Vycm9yczphKGUuZXJyb3JzLGUubmV4dElkLG4ucmVhc29uKX0pfSk7ZGVmYXVsdDpyZXR1cm4gZX1jYXNlIFQ6cmV0dXJuIEMoTyh7fSxlKSx7dmVyc2lvbkluZm86bi52ZXJzaW9uSW5mb30pO2Nhc2UgQjpyZXR1cm4gQyhPKHt9LGUpLHtzaG93SW5kaWNhdG9yOiEwLGRpc2FibGVEZXZJbmRpY2F0b3I6ZXJ8fCEhbi5kZXZJbmRpY2F0b3IuZGlzYWJsZWRVbnRpbH0pO2Nhc2UgTTpyZXR1cm4gQyhPKHt9LGUpLHtpc0Vycm9yT3ZlcmxheU9wZW46ITB9KTtjYXNlIEk6cmV0dXJuIEMoTyh7fSxlKSx7aXNFcnJvck92ZXJsYXlPcGVuOiExfSk7Y2FzZSBIOnJldHVybiBDKE8oe30sZSkse2lzRXJyb3JPdmVybGF5T3BlbjohZS5pc0Vycm9yT3ZlcmxheU9wZW59KTtjYXNlIEY6cmV0dXJuIEMoTyh7fSxlKSx7YnVpbGRpbmdJbmRpY2F0b3I6ITB9KTtjYXNlIFU6cmV0dXJuIEMoTyh7fSxlKSx7YnVpbGRpbmdJbmRpY2F0b3I6ITF9KTtjYXNlIFY6cmV0dXJuIEMoTyh7fSxlKSx7cmVuZGVyaW5nSW5kaWNhdG9yOiEwfSk7Y2FzZSBxOnJldHVybiBDKE8oe30sZSkse3JlbmRlcmluZ0luZGljYXRvcjohMX0pO2Nhc2UgVzpyZXR1cm4gQyhPKHt9LGUpLHtpc0RldlRvb2xzUGFuZWxPcGVuOiEwfSk7Y2FzZSAkOnJldHVybiBDKE8oe30sZSkse2lzRGV2VG9vbHNQYW5lbE9wZW46ITF9KTtjYXNlIFo6cmV0dXJuIEMoTyh7fSxlKSx7aXNEZXZUb29sc1BhbmVsT3BlbjohZS5pc0RldlRvb2xzUGFuZWxPcGVufSk7Y2FzZSBZOnJldHVybiBDKE8oe30sZSkse2RldlRvb2xzUG9zaXRpb246bi5kZXZUb29sc1Bvc2l0aW9ufSk7Y2FzZSBYOnJldHVybiBDKE8oe30sZSkse3NjYWxlOm4uc2NhbGV9KTtjYXNlIGVlOnJldHVybiBDKE8oe30sZSkse3BhZ2U6bi5wYWdlfSk7Y2FzZSBLOnJldHVybiBDKE8oe30sZSkse3Nob3dSZXN0YXJ0U2VydmVyQnV0dG9uOm4uc2hvd1Jlc3RhcnRTZXJ2ZXJCdXR0b259KTtkZWZhdWx0OnJldHVybiBlfX0sKG89ZSxDKE8oe30sZW8pLHtpc0Vycm9yT3ZlcmxheU9wZW46XCJwYWdlc1wiPT09byxyb3V0ZXJUeXBlOm99KSkpfShlLnJvdXRlclR5cGUscixvLGkpLHQ9MixmdW5jdGlvbihlKXtpZihBcnJheS5pc0FycmF5KGUpKXJldHVybiBlfShuKXx8ZnVuY3Rpb24oZSxuKXt2YXIgdCxyLG89bnVsbD09ZT9udWxsOlwidW5kZWZpbmVkXCIhPXR5cGVvZiBTeW1ib2wmJmVbU3ltYm9sLml0ZXJhdG9yXXx8ZVtcIkBAaXRlcmF0b3JcIl07aWYobnVsbCE9byl7dmFyIGE9W10saT0hMCxsPSExO3RyeXtmb3Iobz1vLmNhbGwoZSk7IShpPSh0PW8ubmV4dCgpKS5kb25lKSYmKGEucHVzaCh0LnZhbHVlKSxhLmxlbmd0aCE9PW4pO2k9ITApO31jYXRjaChlKXtsPSEwLHI9ZX1maW5hbGx5e3RyeXtpfHxudWxsPT1vLnJldHVybnx8by5yZXR1cm4oKX1maW5hbGx5e2lmKGwpdGhyb3cgcn19cmV0dXJuIGF9fShuLDIpfHxhRChuLHQpfHxmdW5jdGlvbigpe3Rocm93IFR5cGVFcnJvcihcIkludmFsaWQgYXR0ZW1wdCB0byBkZXN0cnVjdHVyZSBub24taXRlcmFibGUgaW5zdGFuY2UuXFxcXG5JbiBvcmRlciB0byBiZSBpdGVyYWJsZSwgbm9uLWFycmF5IG9iamVjdHMgbXVzdCBoYXZlIGEgW1N5bWJvbC5pdGVyYXRvcl0oKSBtZXRob2QuXCIpfSgpKSxzPWxbMF0sYz1sWzFdO3JldHVybigwLHgudXNlSW5zZXJ0aW9uRWZmZWN0KShmdW5jdGlvbigpe2FCPWM7dmFyIGU9c2V0VGltZW91dChmdW5jdGlvbigpeyFmdW5jdGlvbihlKXt0cnl7dmFyIG49ITAsdD0hMSxyPXZvaWQgMDt0cnl7Zm9yKHZhciBvLGE9YU1bU3ltYm9sLml0ZXJhdG9yXSgpOyEobj0obz1hLm5leHQoKSkuZG9uZSk7bj0hMCkoMCxvLnZhbHVlKShlKX1jYXRjaChlKXt0PSEwLHI9ZX1maW5hbGx5e3RyeXtufHxudWxsPT1hLnJldHVybnx8YS5yZXR1cm4oKX1maW5hbGx5e2lmKHQpdGhyb3cgcn19fWZpbmFsbHl7YU0ubGVuZ3RoPTB9fShjKX0pO3JldHVybiBmdW5jdGlvbigpe2FCPW51bGwsY2xlYXJUaW1lb3V0KGUpfX0sW10pLCgwLHkuanN4cykoeS5GcmFnbWVudCx7Y2hpbGRyZW46WygwLHkuanN4KShlcyx7fSksKDAseS5qc3gpKGFMLHtzdGF0ZTpzLGRpc3BhdGNoOmMsZ2V0U3F1YXNoZWRIeWRyYXRpb25FcnJvckRldGFpbHM6YX0pXX0pfXZhciBhVT0hMSxhVj0hMTtmdW5jdGlvbiBhcSgpe3JldHVybiBudWxsfWZ1bmN0aW9uIGFXKGUsbix0KXtpZihhVSl0aHJvdyBFcnJvcihcIk5leHQgRGV2VG9vbHM6IFBhZ2VzIERldiBPdmVybGF5IGlzIGFscmVhZHkgbW91bnRlZC4gVGhpcyBpcyBhIGJ1ZyBpbiBOZXh0LmpzXCIpO2lmKCFhVil7dmFyIHI9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudChcInNjcmlwdFwiKTtyLnN0eWxlLmRpc3BsYXk9XCJibG9ja1wiLHIuc3R5bGUucG9zaXRpb249XCJhYnNvbHV0ZVwiLHIuc2V0QXR0cmlidXRlKFwiZGF0YS1uZXh0anMtZGV2LW92ZXJsYXlcIixcInRydWVcIik7dmFyIG89ZG9jdW1lbnQuY3JlYXRlRWxlbWVudChcIm5leHRqcy1wb3J0YWxcIik7ci5hcHBlbmRDaGlsZChvKSxkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKHIpO3ZhciBhPSgwLGVhLmNyZWF0ZVJvb3QpKG8se2lkZW50aWZpZXJQcmVmaXg6XCJuZHQtXCJ9KTsoMCx4LnN0YXJ0VHJhbnNpdGlvbikoZnVuY3Rpb24oKXthLnJlbmRlcigoMCx5LmpzeCkoYUYse2dldENvbXBvbmVudFN0YWNrOmUsZ2V0T3duZXJTdGFjazpuLGdldFNxdWFzaGVkSHlkcmF0aW9uRXJyb3JEZXRhaWxzOmFxLGlzUmVjb3ZlcmFibGVFcnJvcjp0LHJvdXRlclR5cGU6XCJhcHBcIn0pKX0pLGFWPSEwfX1mdW5jdGlvbiBhJChlLG4sdCxyKXtpZihhVil0aHJvdyBFcnJvcihcIk5leHQgRGV2VG9vbHM6IEFwcCBEZXYgT3ZlcmxheSBpcyBhbHJlYWR5IG1vdW50ZWQuIFRoaXMgaXMgYSBidWcgaW4gTmV4dC5qc1wiKTtpZighYVUpe3ZhciBvPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoXCJuZXh0anMtcG9ydGFsXCIpO28uc3R5bGUucG9zaXRpb249XCJhYnNvbHV0ZVwiLG5ldyBNdXRhdGlvbk9ic2VydmVyKGZ1bmN0aW9uKGUpe3ZhciBuPSEwLHQ9ITEscj12b2lkIDA7dHJ5e2Zvcih2YXIgYSxpPWVbU3ltYm9sLml0ZXJhdG9yXSgpOyEobj0oYT1pLm5leHQoKSkuZG9uZSk7bj0hMCl7dmFyIGw9YS52YWx1ZTtpZihcImNoaWxkTGlzdFwiPT09bC50eXBlKXt2YXIgcz0hMCxjPSExLHU9dm9pZCAwO3RyeXtmb3IodmFyIGQsZj1sLnJlbW92ZWROb2Rlc1tTeW1ib2wuaXRlcmF0b3JdKCk7IShzPShkPWYubmV4dCgpKS5kb25lKTtzPSEwKWQudmFsdWU9PT1vJiZkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKG8pfWNhdGNoKGUpe2M9ITAsdT1lfWZpbmFsbHl7dHJ5e3N8fG51bGw9PWYucmV0dXJufHxmLnJldHVybigpfWZpbmFsbHl7aWYoYyl0aHJvdyB1fX19fX1jYXRjaChlKXt0PSEwLHI9ZX1maW5hbGx5e3RyeXtufHxudWxsPT1pLnJldHVybnx8aS5yZXR1cm4oKX1maW5hbGx5e2lmKHQpdGhyb3cgcn19fSkub2JzZXJ2ZShkb2N1bWVudC5ib2R5LHtjaGlsZExpc3Q6ITB9KSxkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKG8pO3ZhciBhPSgwLGVhLmNyZWF0ZVJvb3QpKG8pOygwLHguc3RhcnRUcmFuc2l0aW9uKShmdW5jdGlvbigpe2EucmVuZGVyKCgwLHkuanN4KShhRix7Z2V0Q29tcG9uZW50U3RhY2s6ZSxnZXRPd25lclN0YWNrOm4sZ2V0U3F1YXNoZWRIeWRyYXRpb25FcnJvckRldGFpbHM6dCxpc1JlY292ZXJhYmxlRXJyb3I6cixyb3V0ZXJUeXBlOlwicGFnZXNcIn0pKX0pLGFVPSEwfX19KSgpLGV4cG9ydHMuZGlzcGF0Y2hlcj1fX3dlYnBhY2tfZXhwb3J0c19fLmRpc3BhdGNoZXIsZXhwb3J0cy5yZW5kZXJBcHBEZXZPdmVybGF5PV9fd2VicGFja19leHBvcnRzX18ucmVuZGVyQXBwRGV2T3ZlcmxheSxleHBvcnRzLnJlbmRlclBhZ2VzRGV2T3ZlcmxheT1fX3dlYnBhY2tfZXhwb3J0c19fLnJlbmRlclBhZ2VzRGV2T3ZlcmxheSxfX3dlYnBhY2tfZXhwb3J0c19fKS0xPT09W1wiZGlzcGF0Y2hlclwiLFwicmVuZGVyQXBwRGV2T3ZlcmxheVwiLFwicmVuZGVyUGFnZXNEZXZPdmVybGF5XCJdLmluZGV4T2YoX193ZWJwYWNrX2lfXykmJihleHBvcnRzW19fd2VicGFja19pX19dPV9fd2VicGFja19leHBvcnRzX19bX193ZWJwYWNrX2lfX10pO09iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLFwiX19lc01vZHVsZVwiLHt2YWx1ZTohMH0pO1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9aW5kZXguanMubWFwIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(pages-dir-browser)/./node_modules/next/dist/compiled/next-devtools/index.js\n")); - -/***/ }), - -/***/ "(pages-dir-browser)/./node_modules/next/dist/compiled/react-is/cjs/react-is.development.js": -/*!******************************************************************************!*\ - !*** ./node_modules/next/dist/compiled/react-is/cjs/react-is.development.js ***! - \******************************************************************************/ -/***/ ((__unused_webpack_module, exports, __webpack_require__) => { - -"use strict"; -eval(__webpack_require__.ts("/**\n * @license React\n * react-is.development.js\n *\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n\n true &&\n (function () {\n function typeOf(object) {\n if (\"object\" === typeof object && null !== object) {\n var $$typeof = object.$$typeof;\n switch ($$typeof) {\n case REACT_ELEMENT_TYPE:\n switch (((object = object.type), object)) {\n case REACT_FRAGMENT_TYPE:\n case REACT_PROFILER_TYPE:\n case REACT_STRICT_MODE_TYPE:\n case REACT_SUSPENSE_TYPE:\n case REACT_SUSPENSE_LIST_TYPE:\n case REACT_VIEW_TRANSITION_TYPE:\n return object;\n default:\n switch (((object = object && object.$$typeof), object)) {\n case REACT_CONTEXT_TYPE:\n case REACT_FORWARD_REF_TYPE:\n case REACT_LAZY_TYPE:\n case REACT_MEMO_TYPE:\n return object;\n case REACT_CONSUMER_TYPE:\n return object;\n default:\n return $$typeof;\n }\n }\n case REACT_PORTAL_TYPE:\n return $$typeof;\n }\n }\n }\n var REACT_ELEMENT_TYPE = Symbol.for(\"react.transitional.element\"),\n REACT_PORTAL_TYPE = Symbol.for(\"react.portal\"),\n REACT_FRAGMENT_TYPE = Symbol.for(\"react.fragment\"),\n REACT_STRICT_MODE_TYPE = Symbol.for(\"react.strict_mode\"),\n REACT_PROFILER_TYPE = Symbol.for(\"react.profiler\"),\n REACT_CONSUMER_TYPE = Symbol.for(\"react.consumer\"),\n REACT_CONTEXT_TYPE = Symbol.for(\"react.context\"),\n REACT_FORWARD_REF_TYPE = Symbol.for(\"react.forward_ref\"),\n REACT_SUSPENSE_TYPE = Symbol.for(\"react.suspense\"),\n REACT_SUSPENSE_LIST_TYPE = Symbol.for(\"react.suspense_list\"),\n REACT_MEMO_TYPE = Symbol.for(\"react.memo\"),\n REACT_LAZY_TYPE = Symbol.for(\"react.lazy\"),\n REACT_VIEW_TRANSITION_TYPE = Symbol.for(\"react.view_transition\"),\n REACT_CLIENT_REFERENCE = Symbol.for(\"react.client.reference\");\n exports.ContextConsumer = REACT_CONSUMER_TYPE;\n exports.ContextProvider = REACT_CONTEXT_TYPE;\n exports.Element = REACT_ELEMENT_TYPE;\n exports.ForwardRef = REACT_FORWARD_REF_TYPE;\n exports.Fragment = REACT_FRAGMENT_TYPE;\n exports.Lazy = REACT_LAZY_TYPE;\n exports.Memo = REACT_MEMO_TYPE;\n exports.Portal = REACT_PORTAL_TYPE;\n exports.Profiler = REACT_PROFILER_TYPE;\n exports.StrictMode = REACT_STRICT_MODE_TYPE;\n exports.Suspense = REACT_SUSPENSE_TYPE;\n exports.SuspenseList = REACT_SUSPENSE_LIST_TYPE;\n exports.isContextConsumer = function (object) {\n return typeOf(object) === REACT_CONSUMER_TYPE;\n };\n exports.isContextProvider = function (object) {\n return typeOf(object) === REACT_CONTEXT_TYPE;\n };\n exports.isElement = function (object) {\n return (\n \"object\" === typeof object &&\n null !== object &&\n object.$$typeof === REACT_ELEMENT_TYPE\n );\n };\n exports.isForwardRef = function (object) {\n return typeOf(object) === REACT_FORWARD_REF_TYPE;\n };\n exports.isFragment = function (object) {\n return typeOf(object) === REACT_FRAGMENT_TYPE;\n };\n exports.isLazy = function (object) {\n return typeOf(object) === REACT_LAZY_TYPE;\n };\n exports.isMemo = function (object) {\n return typeOf(object) === REACT_MEMO_TYPE;\n };\n exports.isPortal = function (object) {\n return typeOf(object) === REACT_PORTAL_TYPE;\n };\n exports.isProfiler = function (object) {\n return typeOf(object) === REACT_PROFILER_TYPE;\n };\n exports.isStrictMode = function (object) {\n return typeOf(object) === REACT_STRICT_MODE_TYPE;\n };\n exports.isSuspense = function (object) {\n return typeOf(object) === REACT_SUSPENSE_TYPE;\n };\n exports.isSuspenseList = function (object) {\n return typeOf(object) === REACT_SUSPENSE_LIST_TYPE;\n };\n exports.isValidElementType = function (type) {\n return \"string\" === typeof type ||\n \"function\" === typeof type ||\n type === REACT_FRAGMENT_TYPE ||\n type === REACT_PROFILER_TYPE ||\n type === REACT_STRICT_MODE_TYPE ||\n type === REACT_SUSPENSE_TYPE ||\n type === REACT_SUSPENSE_LIST_TYPE ||\n (\"object\" === typeof type &&\n null !== type &&\n (type.$$typeof === REACT_LAZY_TYPE ||\n type.$$typeof === REACT_MEMO_TYPE ||\n type.$$typeof === REACT_CONTEXT_TYPE ||\n type.$$typeof === REACT_CONSUMER_TYPE ||\n type.$$typeof === REACT_FORWARD_REF_TYPE ||\n type.$$typeof === REACT_CLIENT_REFERENCE ||\n void 0 !== type.getModuleId))\n ? !0\n : !1;\n };\n exports.typeOf = typeOf;\n })();\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvY29tcGlsZWQvcmVhY3QtaXMvY2pzL3JlYWN0LWlzLmRldmVsb3BtZW50LmpzIiwibWFwcGluZ3MiOiJBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFYTtBQUNiLEtBQXFDO0FBQ3JDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsSUFBSSx1QkFBdUI7QUFDM0IsSUFBSSx1QkFBdUI7QUFDM0IsSUFBSSxlQUFlO0FBQ25CLElBQUksa0JBQWtCO0FBQ3RCLElBQUksZ0JBQWdCO0FBQ3BCLElBQUksWUFBWTtBQUNoQixJQUFJLFlBQVk7QUFDaEIsSUFBSSxjQUFjO0FBQ2xCLElBQUksZ0JBQWdCO0FBQ3BCLElBQUksa0JBQWtCO0FBQ3RCLElBQUksZ0JBQWdCO0FBQ3BCLElBQUksb0JBQW9CO0FBQ3hCLElBQUkseUJBQXlCO0FBQzdCO0FBQ0E7QUFDQSxJQUFJLHlCQUF5QjtBQUM3QjtBQUNBO0FBQ0EsSUFBSSxpQkFBaUI7QUFDckI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsSUFBSSxvQkFBb0I7QUFDeEI7QUFDQTtBQUNBLElBQUksa0JBQWtCO0FBQ3RCO0FBQ0E7QUFDQSxJQUFJLGNBQWM7QUFDbEI7QUFDQTtBQUNBLElBQUksY0FBYztBQUNsQjtBQUNBO0FBQ0EsSUFBSSxnQkFBZ0I7QUFDcEI7QUFDQTtBQUNBLElBQUksa0JBQWtCO0FBQ3RCO0FBQ0E7QUFDQSxJQUFJLG9CQUFvQjtBQUN4QjtBQUNBO0FBQ0EsSUFBSSxrQkFBa0I7QUFDdEI7QUFDQTtBQUNBLElBQUksc0JBQXNCO0FBQzFCO0FBQ0E7QUFDQSxJQUFJLDBCQUEwQjtBQUM5QjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLElBQUksY0FBYztBQUNsQixHQUFHIiwic291cmNlcyI6WyJEOlxcZG9uZ3l1bi1wcm9qZWN0c1xcdHdvXFxub2RlX21vZHVsZXNcXG5leHRcXGRpc3RcXGNvbXBpbGVkXFxyZWFjdC1pc1xcY2pzXFxyZWFjdC1pcy5kZXZlbG9wbWVudC5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBsaWNlbnNlIFJlYWN0XG4gKiByZWFjdC1pcy5kZXZlbG9wbWVudC5qc1xuICpcbiAqIENvcHlyaWdodCAoYykgTWV0YSBQbGF0Zm9ybXMsIEluYy4gYW5kIGFmZmlsaWF0ZXMuXG4gKlxuICogVGhpcyBzb3VyY2UgY29kZSBpcyBsaWNlbnNlZCB1bmRlciB0aGUgTUlUIGxpY2Vuc2UgZm91bmQgaW4gdGhlXG4gKiBMSUNFTlNFIGZpbGUgaW4gdGhlIHJvb3QgZGlyZWN0b3J5IG9mIHRoaXMgc291cmNlIHRyZWUuXG4gKi9cblxuXCJ1c2Ugc3RyaWN0XCI7XG5cInByb2R1Y3Rpb25cIiAhPT0gcHJvY2Vzcy5lbnYuTk9ERV9FTlYgJiZcbiAgKGZ1bmN0aW9uICgpIHtcbiAgICBmdW5jdGlvbiB0eXBlT2Yob2JqZWN0KSB7XG4gICAgICBpZiAoXCJvYmplY3RcIiA9PT0gdHlwZW9mIG9iamVjdCAmJiBudWxsICE9PSBvYmplY3QpIHtcbiAgICAgICAgdmFyICQkdHlwZW9mID0gb2JqZWN0LiQkdHlwZW9mO1xuICAgICAgICBzd2l0Y2ggKCQkdHlwZW9mKSB7XG4gICAgICAgICAgY2FzZSBSRUFDVF9FTEVNRU5UX1RZUEU6XG4gICAgICAgICAgICBzd2l0Y2ggKCgob2JqZWN0ID0gb2JqZWN0LnR5cGUpLCBvYmplY3QpKSB7XG4gICAgICAgICAgICAgIGNhc2UgUkVBQ1RfRlJBR01FTlRfVFlQRTpcbiAgICAgICAgICAgICAgY2FzZSBSRUFDVF9QUk9GSUxFUl9UWVBFOlxuICAgICAgICAgICAgICBjYXNlIFJFQUNUX1NUUklDVF9NT0RFX1RZUEU6XG4gICAgICAgICAgICAgIGNhc2UgUkVBQ1RfU1VTUEVOU0VfVFlQRTpcbiAgICAgICAgICAgICAgY2FzZSBSRUFDVF9TVVNQRU5TRV9MSVNUX1RZUEU6XG4gICAgICAgICAgICAgIGNhc2UgUkVBQ1RfVklFV19UUkFOU0lUSU9OX1RZUEU6XG4gICAgICAgICAgICAgICAgcmV0dXJuIG9iamVjdDtcbiAgICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICBzd2l0Y2ggKCgob2JqZWN0ID0gb2JqZWN0ICYmIG9iamVjdC4kJHR5cGVvZiksIG9iamVjdCkpIHtcbiAgICAgICAgICAgICAgICAgIGNhc2UgUkVBQ1RfQ09OVEVYVF9UWVBFOlxuICAgICAgICAgICAgICAgICAgY2FzZSBSRUFDVF9GT1JXQVJEX1JFRl9UWVBFOlxuICAgICAgICAgICAgICAgICAgY2FzZSBSRUFDVF9MQVpZX1RZUEU6XG4gICAgICAgICAgICAgICAgICBjYXNlIFJFQUNUX01FTU9fVFlQRTpcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG9iamVjdDtcbiAgICAgICAgICAgICAgICAgIGNhc2UgUkVBQ1RfQ09OU1VNRVJfVFlQRTpcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG9iamVjdDtcbiAgICAgICAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiAkJHR5cGVvZjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgY2FzZSBSRUFDVF9QT1JUQUxfVFlQRTpcbiAgICAgICAgICAgIHJldHVybiAkJHR5cGVvZjtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgICB2YXIgUkVBQ1RfRUxFTUVOVF9UWVBFID0gU3ltYm9sLmZvcihcInJlYWN0LnRyYW5zaXRpb25hbC5lbGVtZW50XCIpLFxuICAgICAgUkVBQ1RfUE9SVEFMX1RZUEUgPSBTeW1ib2wuZm9yKFwicmVhY3QucG9ydGFsXCIpLFxuICAgICAgUkVBQ1RfRlJBR01FTlRfVFlQRSA9IFN5bWJvbC5mb3IoXCJyZWFjdC5mcmFnbWVudFwiKSxcbiAgICAgIFJFQUNUX1NUUklDVF9NT0RFX1RZUEUgPSBTeW1ib2wuZm9yKFwicmVhY3Quc3RyaWN0X21vZGVcIiksXG4gICAgICBSRUFDVF9QUk9GSUxFUl9UWVBFID0gU3ltYm9sLmZvcihcInJlYWN0LnByb2ZpbGVyXCIpLFxuICAgICAgUkVBQ1RfQ09OU1VNRVJfVFlQRSA9IFN5bWJvbC5mb3IoXCJyZWFjdC5jb25zdW1lclwiKSxcbiAgICAgIFJFQUNUX0NPTlRFWFRfVFlQRSA9IFN5bWJvbC5mb3IoXCJyZWFjdC5jb250ZXh0XCIpLFxuICAgICAgUkVBQ1RfRk9SV0FSRF9SRUZfVFlQRSA9IFN5bWJvbC5mb3IoXCJyZWFjdC5mb3J3YXJkX3JlZlwiKSxcbiAgICAgIFJFQUNUX1NVU1BFTlNFX1RZUEUgPSBTeW1ib2wuZm9yKFwicmVhY3Quc3VzcGVuc2VcIiksXG4gICAgICBSRUFDVF9TVVNQRU5TRV9MSVNUX1RZUEUgPSBTeW1ib2wuZm9yKFwicmVhY3Quc3VzcGVuc2VfbGlzdFwiKSxcbiAgICAgIFJFQUNUX01FTU9fVFlQRSA9IFN5bWJvbC5mb3IoXCJyZWFjdC5tZW1vXCIpLFxuICAgICAgUkVBQ1RfTEFaWV9UWVBFID0gU3ltYm9sLmZvcihcInJlYWN0LmxhenlcIiksXG4gICAgICBSRUFDVF9WSUVXX1RSQU5TSVRJT05fVFlQRSA9IFN5bWJvbC5mb3IoXCJyZWFjdC52aWV3X3RyYW5zaXRpb25cIiksXG4gICAgICBSRUFDVF9DTElFTlRfUkVGRVJFTkNFID0gU3ltYm9sLmZvcihcInJlYWN0LmNsaWVudC5yZWZlcmVuY2VcIik7XG4gICAgZXhwb3J0cy5Db250ZXh0Q29uc3VtZXIgPSBSRUFDVF9DT05TVU1FUl9UWVBFO1xuICAgIGV4cG9ydHMuQ29udGV4dFByb3ZpZGVyID0gUkVBQ1RfQ09OVEVYVF9UWVBFO1xuICAgIGV4cG9ydHMuRWxlbWVudCA9IFJFQUNUX0VMRU1FTlRfVFlQRTtcbiAgICBleHBvcnRzLkZvcndhcmRSZWYgPSBSRUFDVF9GT1JXQVJEX1JFRl9UWVBFO1xuICAgIGV4cG9ydHMuRnJhZ21lbnQgPSBSRUFDVF9GUkFHTUVOVF9UWVBFO1xuICAgIGV4cG9ydHMuTGF6eSA9IFJFQUNUX0xBWllfVFlQRTtcbiAgICBleHBvcnRzLk1lbW8gPSBSRUFDVF9NRU1PX1RZUEU7XG4gICAgZXhwb3J0cy5Qb3J0YWwgPSBSRUFDVF9QT1JUQUxfVFlQRTtcbiAgICBleHBvcnRzLlByb2ZpbGVyID0gUkVBQ1RfUFJPRklMRVJfVFlQRTtcbiAgICBleHBvcnRzLlN0cmljdE1vZGUgPSBSRUFDVF9TVFJJQ1RfTU9ERV9UWVBFO1xuICAgIGV4cG9ydHMuU3VzcGVuc2UgPSBSRUFDVF9TVVNQRU5TRV9UWVBFO1xuICAgIGV4cG9ydHMuU3VzcGVuc2VMaXN0ID0gUkVBQ1RfU1VTUEVOU0VfTElTVF9UWVBFO1xuICAgIGV4cG9ydHMuaXNDb250ZXh0Q29uc3VtZXIgPSBmdW5jdGlvbiAob2JqZWN0KSB7XG4gICAgICByZXR1cm4gdHlwZU9mKG9iamVjdCkgPT09IFJFQUNUX0NPTlNVTUVSX1RZUEU7XG4gICAgfTtcbiAgICBleHBvcnRzLmlzQ29udGV4dFByb3ZpZGVyID0gZnVuY3Rpb24gKG9iamVjdCkge1xuICAgICAgcmV0dXJuIHR5cGVPZihvYmplY3QpID09PSBSRUFDVF9DT05URVhUX1RZUEU7XG4gICAgfTtcbiAgICBleHBvcnRzLmlzRWxlbWVudCA9IGZ1bmN0aW9uIChvYmplY3QpIHtcbiAgICAgIHJldHVybiAoXG4gICAgICAgIFwib2JqZWN0XCIgPT09IHR5cGVvZiBvYmplY3QgJiZcbiAgICAgICAgbnVsbCAhPT0gb2JqZWN0ICYmXG4gICAgICAgIG9iamVjdC4kJHR5cGVvZiA9PT0gUkVBQ1RfRUxFTUVOVF9UWVBFXG4gICAgICApO1xuICAgIH07XG4gICAgZXhwb3J0cy5pc0ZvcndhcmRSZWYgPSBmdW5jdGlvbiAob2JqZWN0KSB7XG4gICAgICByZXR1cm4gdHlwZU9mKG9iamVjdCkgPT09IFJFQUNUX0ZPUldBUkRfUkVGX1RZUEU7XG4gICAgfTtcbiAgICBleHBvcnRzLmlzRnJhZ21lbnQgPSBmdW5jdGlvbiAob2JqZWN0KSB7XG4gICAgICByZXR1cm4gdHlwZU9mKG9iamVjdCkgPT09IFJFQUNUX0ZSQUdNRU5UX1RZUEU7XG4gICAgfTtcbiAgICBleHBvcnRzLmlzTGF6eSA9IGZ1bmN0aW9uIChvYmplY3QpIHtcbiAgICAgIHJldHVybiB0eXBlT2Yob2JqZWN0KSA9PT0gUkVBQ1RfTEFaWV9UWVBFO1xuICAgIH07XG4gICAgZXhwb3J0cy5pc01lbW8gPSBmdW5jdGlvbiAob2JqZWN0KSB7XG4gICAgICByZXR1cm4gdHlwZU9mKG9iamVjdCkgPT09IFJFQUNUX01FTU9fVFlQRTtcbiAgICB9O1xuICAgIGV4cG9ydHMuaXNQb3J0YWwgPSBmdW5jdGlvbiAob2JqZWN0KSB7XG4gICAgICByZXR1cm4gdHlwZU9mKG9iamVjdCkgPT09IFJFQUNUX1BPUlRBTF9UWVBFO1xuICAgIH07XG4gICAgZXhwb3J0cy5pc1Byb2ZpbGVyID0gZnVuY3Rpb24gKG9iamVjdCkge1xuICAgICAgcmV0dXJuIHR5cGVPZihvYmplY3QpID09PSBSRUFDVF9QUk9GSUxFUl9UWVBFO1xuICAgIH07XG4gICAgZXhwb3J0cy5pc1N0cmljdE1vZGUgPSBmdW5jdGlvbiAob2JqZWN0KSB7XG4gICAgICByZXR1cm4gdHlwZU9mKG9iamVjdCkgPT09IFJFQUNUX1NUUklDVF9NT0RFX1RZUEU7XG4gICAgfTtcbiAgICBleHBvcnRzLmlzU3VzcGVuc2UgPSBmdW5jdGlvbiAob2JqZWN0KSB7XG4gICAgICByZXR1cm4gdHlwZU9mKG9iamVjdCkgPT09IFJFQUNUX1NVU1BFTlNFX1RZUEU7XG4gICAgfTtcbiAgICBleHBvcnRzLmlzU3VzcGVuc2VMaXN0ID0gZnVuY3Rpb24gKG9iamVjdCkge1xuICAgICAgcmV0dXJuIHR5cGVPZihvYmplY3QpID09PSBSRUFDVF9TVVNQRU5TRV9MSVNUX1RZUEU7XG4gICAgfTtcbiAgICBleHBvcnRzLmlzVmFsaWRFbGVtZW50VHlwZSA9IGZ1bmN0aW9uICh0eXBlKSB7XG4gICAgICByZXR1cm4gXCJzdHJpbmdcIiA9PT0gdHlwZW9mIHR5cGUgfHxcbiAgICAgICAgXCJmdW5jdGlvblwiID09PSB0eXBlb2YgdHlwZSB8fFxuICAgICAgICB0eXBlID09PSBSRUFDVF9GUkFHTUVOVF9UWVBFIHx8XG4gICAgICAgIHR5cGUgPT09IFJFQUNUX1BST0ZJTEVSX1RZUEUgfHxcbiAgICAgICAgdHlwZSA9PT0gUkVBQ1RfU1RSSUNUX01PREVfVFlQRSB8fFxuICAgICAgICB0eXBlID09PSBSRUFDVF9TVVNQRU5TRV9UWVBFIHx8XG4gICAgICAgIHR5cGUgPT09IFJFQUNUX1NVU1BFTlNFX0xJU1RfVFlQRSB8fFxuICAgICAgICAoXCJvYmplY3RcIiA9PT0gdHlwZW9mIHR5cGUgJiZcbiAgICAgICAgICBudWxsICE9PSB0eXBlICYmXG4gICAgICAgICAgKHR5cGUuJCR0eXBlb2YgPT09IFJFQUNUX0xBWllfVFlQRSB8fFxuICAgICAgICAgICAgdHlwZS4kJHR5cGVvZiA9PT0gUkVBQ1RfTUVNT19UWVBFIHx8XG4gICAgICAgICAgICB0eXBlLiQkdHlwZW9mID09PSBSRUFDVF9DT05URVhUX1RZUEUgfHxcbiAgICAgICAgICAgIHR5cGUuJCR0eXBlb2YgPT09IFJFQUNUX0NPTlNVTUVSX1RZUEUgfHxcbiAgICAgICAgICAgIHR5cGUuJCR0eXBlb2YgPT09IFJFQUNUX0ZPUldBUkRfUkVGX1RZUEUgfHxcbiAgICAgICAgICAgIHR5cGUuJCR0eXBlb2YgPT09IFJFQUNUX0NMSUVOVF9SRUZFUkVOQ0UgfHxcbiAgICAgICAgICAgIHZvaWQgMCAhPT0gdHlwZS5nZXRNb2R1bGVJZCkpXG4gICAgICAgID8gITBcbiAgICAgICAgOiAhMTtcbiAgICB9O1xuICAgIGV4cG9ydHMudHlwZU9mID0gdHlwZU9mO1xuICB9KSgpO1xuIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(pages-dir-browser)/./node_modules/next/dist/compiled/react-is/cjs/react-is.development.js\n")); - -/***/ }), - -/***/ "(pages-dir-browser)/./node_modules/next/dist/compiled/react-is/index.js": -/*!***********************************************************!*\ - !*** ./node_modules/next/dist/compiled/react-is/index.js ***! - \***********************************************************/ -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { - -"use strict"; -eval(__webpack_require__.ts("\n\nif (false) {} else {\n module.exports = __webpack_require__(/*! ./cjs/react-is.development.js */ \"(pages-dir-browser)/./node_modules/next/dist/compiled/react-is/cjs/react-is.development.js\");\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvY29tcGlsZWQvcmVhY3QtaXMvaW5kZXguanMiLCJtYXBwaW5ncyI6IkFBQWE7O0FBRWIsSUFBSSxLQUFxQyxFQUFFLEVBRTFDLENBQUM7QUFDRixFQUFFLHVLQUF5RDtBQUMzRCIsInNvdXJjZXMiOlsiRDpcXGRvbmd5dW4tcHJvamVjdHNcXHR3b1xcbm9kZV9tb2R1bGVzXFxuZXh0XFxkaXN0XFxjb21waWxlZFxccmVhY3QtaXNcXGluZGV4LmpzIl0sInNvdXJjZXNDb250ZW50IjpbIid1c2Ugc3RyaWN0JztcblxuaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WID09PSAncHJvZHVjdGlvbicpIHtcbiAgbW9kdWxlLmV4cG9ydHMgPSByZXF1aXJlKCcuL2Nqcy9yZWFjdC1pcy5wcm9kdWN0aW9uLmpzJyk7XG59IGVsc2Uge1xuICBtb2R1bGUuZXhwb3J0cyA9IHJlcXVpcmUoJy4vY2pzL3JlYWN0LWlzLmRldmVsb3BtZW50LmpzJyk7XG59XG4iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(pages-dir-browser)/./node_modules/next/dist/compiled/react-is/index.js\n")); - -/***/ }), - -/***/ "(pages-dir-browser)/./node_modules/next/dist/compiled/safe-stable-stringify/index.js": -/*!************************************************************************!*\ - !*** ./node_modules/next/dist/compiled/safe-stable-stringify/index.js ***! - \************************************************************************/ -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { - -eval(__webpack_require__.ts("var __dirname = \"/\";\n(function(){\"use strict\";var e={879:function(e,t){const{hasOwnProperty:n}=Object.prototype;const r=configure();r.configure=configure;r.stringify=r;r.default=r;t.stringify=r;t.configure=configure;e.exports=r;const i=/[\\u0000-\\u001f\\u0022\\u005c\\ud800-\\udfff]/;function strEscape(e){if(e.length<5e3&&!i.test(e)){return`\"${e}\"`}return JSON.stringify(e)}function sort(e,t){if(e.length>200||t){return e.sort(t)}for(let t=1;t<e.length;t++){const n=e[t];let r=t;while(r!==0&&e[r-1]>n){e[r]=e[r-1];r--}e[r]=n}return e}const f=Object.getOwnPropertyDescriptor(Object.getPrototypeOf(Object.getPrototypeOf(new Int8Array)),Symbol.toStringTag).get;function isTypedArrayWithEntries(e){return f.call(e)!==undefined&&e.length!==0}function stringifyTypedArray(e,t,n){if(e.length<n){n=e.length}const r=t===\",\"?\"\":\" \";let i=`\"0\":${r}${e[0]}`;for(let f=1;f<n;f++){i+=`${t}\"${f}\":${r}${e[f]}`}return i}function getCircularValueOption(e){if(n.call(e,\"circularValue\")){const t=e.circularValue;if(typeof t===\"string\"){return`\"${t}\"`}if(t==null){return t}if(t===Error||t===TypeError){return{toString(){throw new TypeError(\"Converting circular structure to JSON\")}}}throw new TypeError('The \"circularValue\" argument must be of type string or the value null or undefined')}return'\"[Circular]\"'}function getDeterministicOption(e){let t;if(n.call(e,\"deterministic\")){t=e.deterministic;if(typeof t!==\"boolean\"&&typeof t!==\"function\"){throw new TypeError('The \"deterministic\" argument must be of type boolean or comparator function')}}return t===undefined?true:t}function getBooleanOption(e,t){let r;if(n.call(e,t)){r=e[t];if(typeof r!==\"boolean\"){throw new TypeError(`The \"${t}\" argument must be of type boolean`)}}return r===undefined?true:r}function getPositiveIntegerOption(e,t){let r;if(n.call(e,t)){r=e[t];if(typeof r!==\"number\"){throw new TypeError(`The \"${t}\" argument must be of type number`)}if(!Number.isInteger(r)){throw new TypeError(`The \"${t}\" argument must be an integer`)}if(r<1){throw new RangeError(`The \"${t}\" argument must be >= 1`)}}return r===undefined?Infinity:r}function getItemCount(e){if(e===1){return\"1 item\"}return`${e} items`}function getUniqueReplacerSet(e){const t=new Set;for(const n of e){if(typeof n===\"string\"||typeof n===\"number\"){t.add(String(n))}}return t}function getStrictOption(e){if(n.call(e,\"strict\")){const t=e.strict;if(typeof t!==\"boolean\"){throw new TypeError('The \"strict\" argument must be of type boolean')}if(t){return e=>{let t=`Object can not safely be stringified. Received type ${typeof e}`;if(typeof e!==\"function\")t+=` (${e.toString()})`;throw new Error(t)}}}}function configure(e){e={...e};const t=getStrictOption(e);if(t){if(e.bigint===undefined){e.bigint=false}if(!(\"circularValue\"in e)){e.circularValue=Error}}const n=getCircularValueOption(e);const r=getBooleanOption(e,\"bigint\");const i=getDeterministicOption(e);const f=typeof i===\"function\"?i:undefined;const u=getPositiveIntegerOption(e,\"maximumDepth\");const o=getPositiveIntegerOption(e,\"maximumBreadth\");function stringifyFnReplacer(e,s,l,c,a,g){let p=s[e];if(typeof p===\"object\"&&p!==null&&typeof p.toJSON===\"function\"){p=p.toJSON(e)}p=c.call(s,e,p);switch(typeof p){case\"string\":return strEscape(p);case\"object\":{if(p===null){return\"null\"}if(l.indexOf(p)!==-1){return n}let e=\"\";let t=\",\";const r=g;if(Array.isArray(p)){if(p.length===0){return\"[]\"}if(u<l.length+1){return'\"[Array]\"'}l.push(p);if(a!==\"\"){g+=a;e+=`\\n${g}`;t=`,\\n${g}`}const n=Math.min(p.length,o);let i=0;for(;i<n-1;i++){const n=stringifyFnReplacer(String(i),p,l,c,a,g);e+=n!==undefined?n:\"null\";e+=t}const f=stringifyFnReplacer(String(i),p,l,c,a,g);e+=f!==undefined?f:\"null\";if(p.length-1>o){const n=p.length-o-1;e+=`${t}\"... ${getItemCount(n)} not stringified\"`}if(a!==\"\"){e+=`\\n${r}`}l.pop();return`[${e}]`}let s=Object.keys(p);const y=s.length;if(y===0){return\"{}\"}if(u<l.length+1){return'\"[Object]\"'}let d=\"\";let h=\"\";if(a!==\"\"){g+=a;t=`,\\n${g}`;d=\" \"}const $=Math.min(y,o);if(i&&!isTypedArrayWithEntries(p)){s=sort(s,f)}l.push(p);for(let n=0;n<$;n++){const r=s[n];const i=stringifyFnReplacer(r,p,l,c,a,g);if(i!==undefined){e+=`${h}${strEscape(r)}:${d}${i}`;h=t}}if(y>o){const n=y-o;e+=`${h}\"...\":${d}\"${getItemCount(n)} not stringified\"`;h=t}if(a!==\"\"&&h.length>1){e=`\\n${g}${e}\\n${r}`}l.pop();return`{${e}}`}case\"number\":return isFinite(p)?String(p):t?t(p):\"null\";case\"boolean\":return p===true?\"true\":\"false\";case\"undefined\":return undefined;case\"bigint\":if(r){return String(p)}default:return t?t(p):undefined}}function stringifyArrayReplacer(e,i,f,s,l,c){if(typeof i===\"object\"&&i!==null&&typeof i.toJSON===\"function\"){i=i.toJSON(e)}switch(typeof i){case\"string\":return strEscape(i);case\"object\":{if(i===null){return\"null\"}if(f.indexOf(i)!==-1){return n}const e=c;let t=\"\";let r=\",\";if(Array.isArray(i)){if(i.length===0){return\"[]\"}if(u<f.length+1){return'\"[Array]\"'}f.push(i);if(l!==\"\"){c+=l;t+=`\\n${c}`;r=`,\\n${c}`}const n=Math.min(i.length,o);let a=0;for(;a<n-1;a++){const e=stringifyArrayReplacer(String(a),i[a],f,s,l,c);t+=e!==undefined?e:\"null\";t+=r}const g=stringifyArrayReplacer(String(a),i[a],f,s,l,c);t+=g!==undefined?g:\"null\";if(i.length-1>o){const e=i.length-o-1;t+=`${r}\"... ${getItemCount(e)} not stringified\"`}if(l!==\"\"){t+=`\\n${e}`}f.pop();return`[${t}]`}f.push(i);let a=\"\";if(l!==\"\"){c+=l;r=`,\\n${c}`;a=\" \"}let g=\"\";for(const e of s){const n=stringifyArrayReplacer(e,i[e],f,s,l,c);if(n!==undefined){t+=`${g}${strEscape(e)}:${a}${n}`;g=r}}if(l!==\"\"&&g.length>1){t=`\\n${c}${t}\\n${e}`}f.pop();return`{${t}}`}case\"number\":return isFinite(i)?String(i):t?t(i):\"null\";case\"boolean\":return i===true?\"true\":\"false\";case\"undefined\":return undefined;case\"bigint\":if(r){return String(i)}default:return t?t(i):undefined}}function stringifyIndent(e,s,l,c,a){switch(typeof s){case\"string\":return strEscape(s);case\"object\":{if(s===null){return\"null\"}if(typeof s.toJSON===\"function\"){s=s.toJSON(e);if(typeof s!==\"object\"){return stringifyIndent(e,s,l,c,a)}if(s===null){return\"null\"}}if(l.indexOf(s)!==-1){return n}const t=a;if(Array.isArray(s)){if(s.length===0){return\"[]\"}if(u<l.length+1){return'\"[Array]\"'}l.push(s);a+=c;let e=`\\n${a}`;const n=`,\\n${a}`;const r=Math.min(s.length,o);let i=0;for(;i<r-1;i++){const t=stringifyIndent(String(i),s[i],l,c,a);e+=t!==undefined?t:\"null\";e+=n}const f=stringifyIndent(String(i),s[i],l,c,a);e+=f!==undefined?f:\"null\";if(s.length-1>o){const t=s.length-o-1;e+=`${n}\"... ${getItemCount(t)} not stringified\"`}e+=`\\n${t}`;l.pop();return`[${e}]`}let r=Object.keys(s);const g=r.length;if(g===0){return\"{}\"}if(u<l.length+1){return'\"[Object]\"'}a+=c;const p=`,\\n${a}`;let y=\"\";let d=\"\";let h=Math.min(g,o);if(isTypedArrayWithEntries(s)){y+=stringifyTypedArray(s,p,o);r=r.slice(s.length);h-=s.length;d=p}if(i){r=sort(r,f)}l.push(s);for(let e=0;e<h;e++){const t=r[e];const n=stringifyIndent(t,s[t],l,c,a);if(n!==undefined){y+=`${d}${strEscape(t)}: ${n}`;d=p}}if(g>o){const e=g-o;y+=`${d}\"...\": \"${getItemCount(e)} not stringified\"`;d=p}if(d!==\"\"){y=`\\n${a}${y}\\n${t}`}l.pop();return`{${y}}`}case\"number\":return isFinite(s)?String(s):t?t(s):\"null\";case\"boolean\":return s===true?\"true\":\"false\";case\"undefined\":return undefined;case\"bigint\":if(r){return String(s)}default:return t?t(s):undefined}}function stringifySimple(e,s,l){switch(typeof s){case\"string\":return strEscape(s);case\"object\":{if(s===null){return\"null\"}if(typeof s.toJSON===\"function\"){s=s.toJSON(e);if(typeof s!==\"object\"){return stringifySimple(e,s,l)}if(s===null){return\"null\"}}if(l.indexOf(s)!==-1){return n}let t=\"\";const r=s.length!==undefined;if(r&&Array.isArray(s)){if(s.length===0){return\"[]\"}if(u<l.length+1){return'\"[Array]\"'}l.push(s);const e=Math.min(s.length,o);let n=0;for(;n<e-1;n++){const e=stringifySimple(String(n),s[n],l);t+=e!==undefined?e:\"null\";t+=\",\"}const r=stringifySimple(String(n),s[n],l);t+=r!==undefined?r:\"null\";if(s.length-1>o){const e=s.length-o-1;t+=`,\"... ${getItemCount(e)} not stringified\"`}l.pop();return`[${t}]`}let c=Object.keys(s);const a=c.length;if(a===0){return\"{}\"}if(u<l.length+1){return'\"[Object]\"'}let g=\"\";let p=Math.min(a,o);if(r&&isTypedArrayWithEntries(s)){t+=stringifyTypedArray(s,\",\",o);c=c.slice(s.length);p-=s.length;g=\",\"}if(i){c=sort(c,f)}l.push(s);for(let e=0;e<p;e++){const n=c[e];const r=stringifySimple(n,s[n],l);if(r!==undefined){t+=`${g}${strEscape(n)}:${r}`;g=\",\"}}if(a>o){const e=a-o;t+=`${g}\"...\":\"${getItemCount(e)} not stringified\"`}l.pop();return`{${t}}`}case\"number\":return isFinite(s)?String(s):t?t(s):\"null\";case\"boolean\":return s===true?\"true\":\"false\";case\"undefined\":return undefined;case\"bigint\":if(r){return String(s)}default:return t?t(s):undefined}}function stringify(e,t,n){if(arguments.length>1){let r=\"\";if(typeof n===\"number\"){r=\" \".repeat(Math.min(n,10))}else if(typeof n===\"string\"){r=n.slice(0,10)}if(t!=null){if(typeof t===\"function\"){return stringifyFnReplacer(\"\",{\"\":e},[],t,r,\"\")}if(Array.isArray(t)){return stringifyArrayReplacer(\"\",e,[],getUniqueReplacerSet(t),r,\"\")}}if(r.length!==0){return stringifyIndent(\"\",e,[],r,\"\")}}return stringifySimple(\"\",e,[])}return stringify}}};var t={};function __nccwpck_require__(n){var r=t[n];if(r!==undefined){return r.exports}var i=t[n]={exports:{}};var f=true;try{e[n](i,i.exports,__nccwpck_require__);f=false}finally{if(f)delete t[n]}return i.exports}if(typeof __nccwpck_require__!==\"undefined\")__nccwpck_require__.ab=__dirname+\"/\";var n=__nccwpck_require__(879);module.exports=n})();//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvY29tcGlsZWQvc2FmZS1zdGFibGUtc3RyaW5naWZ5L2luZGV4LmpzIiwibWFwcGluZ3MiOiI7QUFBQSxZQUFZLGFBQWEsT0FBTyxrQkFBa0IsTUFBTSxpQkFBaUIsa0JBQWtCLG9CQUFvQixzQkFBc0IsY0FBYyxZQUFZLGNBQWMsc0JBQXNCLFlBQVksbURBQW1ELHNCQUFzQiw2QkFBNkIsVUFBVSxFQUFFLEdBQUcseUJBQXlCLG1CQUFtQixvQkFBb0IsaUJBQWlCLFlBQVksV0FBVyxLQUFLLGFBQWEsUUFBUSx1QkFBdUIsWUFBWSxJQUFJLE9BQU8sU0FBUyw0SEFBNEgsb0NBQW9DLDJDQUEyQyxvQ0FBb0MsZUFBZSxXQUFXLHVCQUF1QixhQUFhLEVBQUUsRUFBRSxLQUFLLEVBQUUsWUFBWSxJQUFJLEtBQUssTUFBTSxFQUFFLEdBQUcsRUFBRSxJQUFJLEVBQUUsRUFBRSxLQUFLLEVBQUUsU0FBUyxtQ0FBbUMsOEJBQThCLHdCQUF3Qix3QkFBd0IsVUFBVSxFQUFFLEdBQUcsWUFBWSxTQUFTLDZCQUE2QixPQUFPLFdBQVcsK0RBQStELDBHQUEwRyxxQkFBcUIsbUNBQW1DLE1BQU0sOEJBQThCLGtCQUFrQixnREFBZ0Qsb0dBQW9HLDRCQUE0QiwrQkFBK0IsTUFBTSxnQkFBZ0IsT0FBTyx5QkFBeUIsNEJBQTRCLEVBQUUsc0NBQXNDLDRCQUE0Qix1Q0FBdUMsTUFBTSxnQkFBZ0IsT0FBTyx3QkFBd0IsNEJBQTRCLEVBQUUsb0NBQW9DLHlCQUF5Qiw0QkFBNEIsRUFBRSxnQ0FBZ0MsUUFBUSw2QkFBNkIsRUFBRSwyQkFBMkIsZ0NBQWdDLHlCQUF5QixVQUFVLGVBQWUsU0FBUyxHQUFHLE9BQU8saUNBQWlDLGdCQUFnQixrQkFBa0IsNkNBQTZDLGtCQUFrQixTQUFTLDRCQUE0Qix1QkFBdUIsaUJBQWlCLHlCQUF5QixxRUFBcUUsTUFBTSxXQUFXLDZEQUE2RCxTQUFTLEVBQUUsaUNBQWlD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LGlCQUFpQiIsInNvdXJjZXMiOlsiRDpcXGRvbmd5dW4tcHJvamVjdHNcXHR3b1xcbm9kZV9tb2R1bGVzXFxuZXh0XFxkaXN0XFxjb21waWxlZFxcc2FmZS1zdGFibGUtc3RyaW5naWZ5XFxpbmRleC5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyIoZnVuY3Rpb24oKXtcInVzZSBzdHJpY3RcIjt2YXIgZT17ODc5OmZ1bmN0aW9uKGUsdCl7Y29uc3R7aGFzT3duUHJvcGVydHk6bn09T2JqZWN0LnByb3RvdHlwZTtjb25zdCByPWNvbmZpZ3VyZSgpO3IuY29uZmlndXJlPWNvbmZpZ3VyZTtyLnN0cmluZ2lmeT1yO3IuZGVmYXVsdD1yO3Quc3RyaW5naWZ5PXI7dC5jb25maWd1cmU9Y29uZmlndXJlO2UuZXhwb3J0cz1yO2NvbnN0IGk9L1tcXHUwMDAwLVxcdTAwMWZcXHUwMDIyXFx1MDA1Y1xcdWQ4MDAtXFx1ZGZmZl0vO2Z1bmN0aW9uIHN0ckVzY2FwZShlKXtpZihlLmxlbmd0aDw1ZTMmJiFpLnRlc3QoZSkpe3JldHVybmBcIiR7ZX1cImB9cmV0dXJuIEpTT04uc3RyaW5naWZ5KGUpfWZ1bmN0aW9uIHNvcnQoZSx0KXtpZihlLmxlbmd0aD4yMDB8fHQpe3JldHVybiBlLnNvcnQodCl9Zm9yKGxldCB0PTE7dDxlLmxlbmd0aDt0Kyspe2NvbnN0IG49ZVt0XTtsZXQgcj10O3doaWxlKHIhPT0wJiZlW3ItMV0+bil7ZVtyXT1lW3ItMV07ci0tfWVbcl09bn1yZXR1cm4gZX1jb25zdCBmPU9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoT2JqZWN0LmdldFByb3RvdHlwZU9mKE9iamVjdC5nZXRQcm90b3R5cGVPZihuZXcgSW50OEFycmF5KSksU3ltYm9sLnRvU3RyaW5nVGFnKS5nZXQ7ZnVuY3Rpb24gaXNUeXBlZEFycmF5V2l0aEVudHJpZXMoZSl7cmV0dXJuIGYuY2FsbChlKSE9PXVuZGVmaW5lZCYmZS5sZW5ndGghPT0wfWZ1bmN0aW9uIHN0cmluZ2lmeVR5cGVkQXJyYXkoZSx0LG4pe2lmKGUubGVuZ3RoPG4pe249ZS5sZW5ndGh9Y29uc3Qgcj10PT09XCIsXCI/XCJcIjpcIiBcIjtsZXQgaT1gXCIwXCI6JHtyfSR7ZVswXX1gO2ZvcihsZXQgZj0xO2Y8bjtmKyspe2krPWAke3R9XCIke2Z9XCI6JHtyfSR7ZVtmXX1gfXJldHVybiBpfWZ1bmN0aW9uIGdldENpcmN1bGFyVmFsdWVPcHRpb24oZSl7aWYobi5jYWxsKGUsXCJjaXJjdWxhclZhbHVlXCIpKXtjb25zdCB0PWUuY2lyY3VsYXJWYWx1ZTtpZih0eXBlb2YgdD09PVwic3RyaW5nXCIpe3JldHVybmBcIiR7dH1cImB9aWYodD09bnVsbCl7cmV0dXJuIHR9aWYodD09PUVycm9yfHx0PT09VHlwZUVycm9yKXtyZXR1cm57dG9TdHJpbmcoKXt0aHJvdyBuZXcgVHlwZUVycm9yKFwiQ29udmVydGluZyBjaXJjdWxhciBzdHJ1Y3R1cmUgdG8gSlNPTlwiKX19fXRocm93IG5ldyBUeXBlRXJyb3IoJ1RoZSBcImNpcmN1bGFyVmFsdWVcIiBhcmd1bWVudCBtdXN0IGJlIG9mIHR5cGUgc3RyaW5nIG9yIHRoZSB2YWx1ZSBudWxsIG9yIHVuZGVmaW5lZCcpfXJldHVybidcIltDaXJjdWxhcl1cIid9ZnVuY3Rpb24gZ2V0RGV0ZXJtaW5pc3RpY09wdGlvbihlKXtsZXQgdDtpZihuLmNhbGwoZSxcImRldGVybWluaXN0aWNcIikpe3Q9ZS5kZXRlcm1pbmlzdGljO2lmKHR5cGVvZiB0IT09XCJib29sZWFuXCImJnR5cGVvZiB0IT09XCJmdW5jdGlvblwiKXt0aHJvdyBuZXcgVHlwZUVycm9yKCdUaGUgXCJkZXRlcm1pbmlzdGljXCIgYXJndW1lbnQgbXVzdCBiZSBvZiB0eXBlIGJvb2xlYW4gb3IgY29tcGFyYXRvciBmdW5jdGlvbicpfX1yZXR1cm4gdD09PXVuZGVmaW5lZD90cnVlOnR9ZnVuY3Rpb24gZ2V0Qm9vbGVhbk9wdGlvbihlLHQpe2xldCByO2lmKG4uY2FsbChlLHQpKXtyPWVbdF07aWYodHlwZW9mIHIhPT1cImJvb2xlYW5cIil7dGhyb3cgbmV3IFR5cGVFcnJvcihgVGhlIFwiJHt0fVwiIGFyZ3VtZW50IG11c3QgYmUgb2YgdHlwZSBib29sZWFuYCl9fXJldHVybiByPT09dW5kZWZpbmVkP3RydWU6cn1mdW5jdGlvbiBnZXRQb3NpdGl2ZUludGVnZXJPcHRpb24oZSx0KXtsZXQgcjtpZihuLmNhbGwoZSx0KSl7cj1lW3RdO2lmKHR5cGVvZiByIT09XCJudW1iZXJcIil7dGhyb3cgbmV3IFR5cGVFcnJvcihgVGhlIFwiJHt0fVwiIGFyZ3VtZW50IG11c3QgYmUgb2YgdHlwZSBudW1iZXJgKX1pZighTnVtYmVyLmlzSW50ZWdlcihyKSl7dGhyb3cgbmV3IFR5cGVFcnJvcihgVGhlIFwiJHt0fVwiIGFyZ3VtZW50IG11c3QgYmUgYW4gaW50ZWdlcmApfWlmKHI8MSl7dGhyb3cgbmV3IFJhbmdlRXJyb3IoYFRoZSBcIiR7dH1cIiBhcmd1bWVudCBtdXN0IGJlID49IDFgKX19cmV0dXJuIHI9PT11bmRlZmluZWQ/SW5maW5pdHk6cn1mdW5jdGlvbiBnZXRJdGVtQ291bnQoZSl7aWYoZT09PTEpe3JldHVyblwiMSBpdGVtXCJ9cmV0dXJuYCR7ZX0gaXRlbXNgfWZ1bmN0aW9uIGdldFVuaXF1ZVJlcGxhY2VyU2V0KGUpe2NvbnN0IHQ9bmV3IFNldDtmb3IoY29uc3QgbiBvZiBlKXtpZih0eXBlb2Ygbj09PVwic3RyaW5nXCJ8fHR5cGVvZiBuPT09XCJudW1iZXJcIil7dC5hZGQoU3RyaW5nKG4pKX19cmV0dXJuIHR9ZnVuY3Rpb24gZ2V0U3RyaWN0T3B0aW9uKGUpe2lmKG4uY2FsbChlLFwic3RyaWN0XCIpKXtjb25zdCB0PWUuc3RyaWN0O2lmKHR5cGVvZiB0IT09XCJib29sZWFuXCIpe3Rocm93IG5ldyBUeXBlRXJyb3IoJ1RoZSBcInN0cmljdFwiIGFyZ3VtZW50IG11c3QgYmUgb2YgdHlwZSBib29sZWFuJyl9aWYodCl7cmV0dXJuIGU9PntsZXQgdD1gT2JqZWN0IGNhbiBub3Qgc2FmZWx5IGJlIHN0cmluZ2lmaWVkLiBSZWNlaXZlZCB0eXBlICR7dHlwZW9mIGV9YDtpZih0eXBlb2YgZSE9PVwiZnVuY3Rpb25cIil0Kz1gICgke2UudG9TdHJpbmcoKX0pYDt0aHJvdyBuZXcgRXJyb3IodCl9fX19ZnVuY3Rpb24gY29uZmlndXJlKGUpe2U9ey4uLmV9O2NvbnN0IHQ9Z2V0U3RyaWN0T3B0aW9uKGUpO2lmKHQpe2lmKGUuYmlnaW50PT09dW5kZWZpbmVkKXtlLmJpZ2ludD1mYWxzZX1pZighKFwiY2lyY3VsYXJWYWx1ZVwiaW4gZSkpe2UuY2lyY3VsYXJWYWx1ZT1FcnJvcn19Y29uc3Qgbj1nZXRDaXJjdWxhclZhbHVlT3B0aW9uKGUpO2NvbnN0IHI9Z2V0Qm9vbGVhbk9wdGlvbihlLFwiYmlnaW50XCIpO2NvbnN0IGk9Z2V0RGV0ZXJtaW5pc3RpY09wdGlvbihlKTtjb25zdCBmPXR5cGVvZiBpPT09XCJmdW5jdGlvblwiP2k6dW5kZWZpbmVkO2NvbnN0IHU9Z2V0UG9zaXRpdmVJbnRlZ2VyT3B0aW9uKGUsXCJtYXhpbXVtRGVwdGhcIik7Y29uc3Qgbz1nZXRQb3NpdGl2ZUludGVnZXJPcHRpb24oZSxcIm1heGltdW1CcmVhZHRoXCIpO2Z1bmN0aW9uIHN0cmluZ2lmeUZuUmVwbGFjZXIoZSxzLGwsYyxhLGcpe2xldCBwPXNbZV07aWYodHlwZW9mIHA9PT1cIm9iamVjdFwiJiZwIT09bnVsbCYmdHlwZW9mIHAudG9KU09OPT09XCJmdW5jdGlvblwiKXtwPXAudG9KU09OKGUpfXA9Yy5jYWxsKHMsZSxwKTtzd2l0Y2godHlwZW9mIHApe2Nhc2VcInN0cmluZ1wiOnJldHVybiBzdHJFc2NhcGUocCk7Y2FzZVwib2JqZWN0XCI6e2lmKHA9PT1udWxsKXtyZXR1cm5cIm51bGxcIn1pZihsLmluZGV4T2YocCkhPT0tMSl7cmV0dXJuIG59bGV0IGU9XCJcIjtsZXQgdD1cIixcIjtjb25zdCByPWc7aWYoQXJyYXkuaXNBcnJheShwKSl7aWYocC5sZW5ndGg9PT0wKXtyZXR1cm5cIltdXCJ9aWYodTxsLmxlbmd0aCsxKXtyZXR1cm4nXCJbQXJyYXldXCInfWwucHVzaChwKTtpZihhIT09XCJcIil7Zys9YTtlKz1gXFxuJHtnfWA7dD1gLFxcbiR7Z31gfWNvbnN0IG49TWF0aC5taW4ocC5sZW5ndGgsbyk7bGV0IGk9MDtmb3IoO2k8bi0xO2krKyl7Y29uc3Qgbj1zdHJpbmdpZnlGblJlcGxhY2VyKFN0cmluZyhpKSxwLGwsYyxhLGcpO2UrPW4hPT11bmRlZmluZWQ/bjpcIm51bGxcIjtlKz10fWNvbnN0IGY9c3RyaW5naWZ5Rm5SZXBsYWNlcihTdHJpbmcoaSkscCxsLGMsYSxnKTtlKz1mIT09dW5kZWZpbmVkP2Y6XCJudWxsXCI7aWYocC5sZW5ndGgtMT5vKXtjb25zdCBuPXAubGVuZ3RoLW8tMTtlKz1gJHt0fVwiLi4uICR7Z2V0SXRlbUNvdW50KG4pfSBub3Qgc3RyaW5naWZpZWRcImB9aWYoYSE9PVwiXCIpe2UrPWBcXG4ke3J9YH1sLnBvcCgpO3JldHVybmBbJHtlfV1gfWxldCBzPU9iamVjdC5rZXlzKHApO2NvbnN0IHk9cy5sZW5ndGg7aWYoeT09PTApe3JldHVyblwie31cIn1pZih1PGwubGVuZ3RoKzEpe3JldHVybidcIltPYmplY3RdXCInfWxldCBkPVwiXCI7bGV0IGg9XCJcIjtpZihhIT09XCJcIil7Zys9YTt0PWAsXFxuJHtnfWA7ZD1cIiBcIn1jb25zdCAkPU1hdGgubWluKHksbyk7aWYoaSYmIWlzVHlwZWRBcnJheVdpdGhFbnRyaWVzKHApKXtzPXNvcnQocyxmKX1sLnB1c2gocCk7Zm9yKGxldCBuPTA7bjwkO24rKyl7Y29uc3Qgcj1zW25dO2NvbnN0IGk9c3RyaW5naWZ5Rm5SZXBsYWNlcihyLHAsbCxjLGEsZyk7aWYoaSE9PXVuZGVmaW5lZCl7ZSs9YCR7aH0ke3N0ckVzY2FwZShyKX06JHtkfSR7aX1gO2g9dH19aWYoeT5vKXtjb25zdCBuPXktbztlKz1gJHtofVwiLi4uXCI6JHtkfVwiJHtnZXRJdGVtQ291bnQobil9IG5vdCBzdHJpbmdpZmllZFwiYDtoPXR9aWYoYSE9PVwiXCImJmgubGVuZ3RoPjEpe2U9YFxcbiR7Z30ke2V9XFxuJHtyfWB9bC5wb3AoKTtyZXR1cm5geyR7ZX19YH1jYXNlXCJudW1iZXJcIjpyZXR1cm4gaXNGaW5pdGUocCk/U3RyaW5nKHApOnQ/dChwKTpcIm51bGxcIjtjYXNlXCJib29sZWFuXCI6cmV0dXJuIHA9PT10cnVlP1widHJ1ZVwiOlwiZmFsc2VcIjtjYXNlXCJ1bmRlZmluZWRcIjpyZXR1cm4gdW5kZWZpbmVkO2Nhc2VcImJpZ2ludFwiOmlmKHIpe3JldHVybiBTdHJpbmcocCl9ZGVmYXVsdDpyZXR1cm4gdD90KHApOnVuZGVmaW5lZH19ZnVuY3Rpb24gc3RyaW5naWZ5QXJyYXlSZXBsYWNlcihlLGksZixzLGwsYyl7aWYodHlwZW9mIGk9PT1cIm9iamVjdFwiJiZpIT09bnVsbCYmdHlwZW9mIGkudG9KU09OPT09XCJmdW5jdGlvblwiKXtpPWkudG9KU09OKGUpfXN3aXRjaCh0eXBlb2YgaSl7Y2FzZVwic3RyaW5nXCI6cmV0dXJuIHN0ckVzY2FwZShpKTtjYXNlXCJvYmplY3RcIjp7aWYoaT09PW51bGwpe3JldHVyblwibnVsbFwifWlmKGYuaW5kZXhPZihpKSE9PS0xKXtyZXR1cm4gbn1jb25zdCBlPWM7bGV0IHQ9XCJcIjtsZXQgcj1cIixcIjtpZihBcnJheS5pc0FycmF5KGkpKXtpZihpLmxlbmd0aD09PTApe3JldHVyblwiW11cIn1pZih1PGYubGVuZ3RoKzEpe3JldHVybidcIltBcnJheV1cIid9Zi5wdXNoKGkpO2lmKGwhPT1cIlwiKXtjKz1sO3QrPWBcXG4ke2N9YDtyPWAsXFxuJHtjfWB9Y29uc3Qgbj1NYXRoLm1pbihpLmxlbmd0aCxvKTtsZXQgYT0wO2Zvcig7YTxuLTE7YSsrKXtjb25zdCBlPXN0cmluZ2lmeUFycmF5UmVwbGFjZXIoU3RyaW5nKGEpLGlbYV0sZixzLGwsYyk7dCs9ZSE9PXVuZGVmaW5lZD9lOlwibnVsbFwiO3QrPXJ9Y29uc3QgZz1zdHJpbmdpZnlBcnJheVJlcGxhY2VyKFN0cmluZyhhKSxpW2FdLGYscyxsLGMpO3QrPWchPT11bmRlZmluZWQ/ZzpcIm51bGxcIjtpZihpLmxlbmd0aC0xPm8pe2NvbnN0IGU9aS5sZW5ndGgtby0xO3QrPWAke3J9XCIuLi4gJHtnZXRJdGVtQ291bnQoZSl9IG5vdCBzdHJpbmdpZmllZFwiYH1pZihsIT09XCJcIil7dCs9YFxcbiR7ZX1gfWYucG9wKCk7cmV0dXJuYFske3R9XWB9Zi5wdXNoKGkpO2xldCBhPVwiXCI7aWYobCE9PVwiXCIpe2MrPWw7cj1gLFxcbiR7Y31gO2E9XCIgXCJ9bGV0IGc9XCJcIjtmb3IoY29uc3QgZSBvZiBzKXtjb25zdCBuPXN0cmluZ2lmeUFycmF5UmVwbGFjZXIoZSxpW2VdLGYscyxsLGMpO2lmKG4hPT11bmRlZmluZWQpe3QrPWAke2d9JHtzdHJFc2NhcGUoZSl9OiR7YX0ke259YDtnPXJ9fWlmKGwhPT1cIlwiJiZnLmxlbmd0aD4xKXt0PWBcXG4ke2N9JHt0fVxcbiR7ZX1gfWYucG9wKCk7cmV0dXJuYHske3R9fWB9Y2FzZVwibnVtYmVyXCI6cmV0dXJuIGlzRmluaXRlKGkpP1N0cmluZyhpKTp0P3QoaSk6XCJudWxsXCI7Y2FzZVwiYm9vbGVhblwiOnJldHVybiBpPT09dHJ1ZT9cInRydWVcIjpcImZhbHNlXCI7Y2FzZVwidW5kZWZpbmVkXCI6cmV0dXJuIHVuZGVmaW5lZDtjYXNlXCJiaWdpbnRcIjppZihyKXtyZXR1cm4gU3RyaW5nKGkpfWRlZmF1bHQ6cmV0dXJuIHQ/dChpKTp1bmRlZmluZWR9fWZ1bmN0aW9uIHN0cmluZ2lmeUluZGVudChlLHMsbCxjLGEpe3N3aXRjaCh0eXBlb2Ygcyl7Y2FzZVwic3RyaW5nXCI6cmV0dXJuIHN0ckVzY2FwZShzKTtjYXNlXCJvYmplY3RcIjp7aWYocz09PW51bGwpe3JldHVyblwibnVsbFwifWlmKHR5cGVvZiBzLnRvSlNPTj09PVwiZnVuY3Rpb25cIil7cz1zLnRvSlNPTihlKTtpZih0eXBlb2YgcyE9PVwib2JqZWN0XCIpe3JldHVybiBzdHJpbmdpZnlJbmRlbnQoZSxzLGwsYyxhKX1pZihzPT09bnVsbCl7cmV0dXJuXCJudWxsXCJ9fWlmKGwuaW5kZXhPZihzKSE9PS0xKXtyZXR1cm4gbn1jb25zdCB0PWE7aWYoQXJyYXkuaXNBcnJheShzKSl7aWYocy5sZW5ndGg9PT0wKXtyZXR1cm5cIltdXCJ9aWYodTxsLmxlbmd0aCsxKXtyZXR1cm4nXCJbQXJyYXldXCInfWwucHVzaChzKTthKz1jO2xldCBlPWBcXG4ke2F9YDtjb25zdCBuPWAsXFxuJHthfWA7Y29uc3Qgcj1NYXRoLm1pbihzLmxlbmd0aCxvKTtsZXQgaT0wO2Zvcig7aTxyLTE7aSsrKXtjb25zdCB0PXN0cmluZ2lmeUluZGVudChTdHJpbmcoaSksc1tpXSxsLGMsYSk7ZSs9dCE9PXVuZGVmaW5lZD90OlwibnVsbFwiO2UrPW59Y29uc3QgZj1zdHJpbmdpZnlJbmRlbnQoU3RyaW5nKGkpLHNbaV0sbCxjLGEpO2UrPWYhPT11bmRlZmluZWQ/ZjpcIm51bGxcIjtpZihzLmxlbmd0aC0xPm8pe2NvbnN0IHQ9cy5sZW5ndGgtby0xO2UrPWAke259XCIuLi4gJHtnZXRJdGVtQ291bnQodCl9IG5vdCBzdHJpbmdpZmllZFwiYH1lKz1gXFxuJHt0fWA7bC5wb3AoKTtyZXR1cm5gWyR7ZX1dYH1sZXQgcj1PYmplY3Qua2V5cyhzKTtjb25zdCBnPXIubGVuZ3RoO2lmKGc9PT0wKXtyZXR1cm5cInt9XCJ9aWYodTxsLmxlbmd0aCsxKXtyZXR1cm4nXCJbT2JqZWN0XVwiJ31hKz1jO2NvbnN0IHA9YCxcXG4ke2F9YDtsZXQgeT1cIlwiO2xldCBkPVwiXCI7bGV0IGg9TWF0aC5taW4oZyxvKTtpZihpc1R5cGVkQXJyYXlXaXRoRW50cmllcyhzKSl7eSs9c3RyaW5naWZ5VHlwZWRBcnJheShzLHAsbyk7cj1yLnNsaWNlKHMubGVuZ3RoKTtoLT1zLmxlbmd0aDtkPXB9aWYoaSl7cj1zb3J0KHIsZil9bC5wdXNoKHMpO2ZvcihsZXQgZT0wO2U8aDtlKyspe2NvbnN0IHQ9cltlXTtjb25zdCBuPXN0cmluZ2lmeUluZGVudCh0LHNbdF0sbCxjLGEpO2lmKG4hPT11bmRlZmluZWQpe3krPWAke2R9JHtzdHJFc2NhcGUodCl9OiAke259YDtkPXB9fWlmKGc+byl7Y29uc3QgZT1nLW87eSs9YCR7ZH1cIi4uLlwiOiBcIiR7Z2V0SXRlbUNvdW50KGUpfSBub3Qgc3RyaW5naWZpZWRcImA7ZD1wfWlmKGQhPT1cIlwiKXt5PWBcXG4ke2F9JHt5fVxcbiR7dH1gfWwucG9wKCk7cmV0dXJuYHske3l9fWB9Y2FzZVwibnVtYmVyXCI6cmV0dXJuIGlzRmluaXRlKHMpP1N0cmluZyhzKTp0P3Qocyk6XCJudWxsXCI7Y2FzZVwiYm9vbGVhblwiOnJldHVybiBzPT09dHJ1ZT9cInRydWVcIjpcImZhbHNlXCI7Y2FzZVwidW5kZWZpbmVkXCI6cmV0dXJuIHVuZGVmaW5lZDtjYXNlXCJiaWdpbnRcIjppZihyKXtyZXR1cm4gU3RyaW5nKHMpfWRlZmF1bHQ6cmV0dXJuIHQ/dChzKTp1bmRlZmluZWR9fWZ1bmN0aW9uIHN0cmluZ2lmeVNpbXBsZShlLHMsbCl7c3dpdGNoKHR5cGVvZiBzKXtjYXNlXCJzdHJpbmdcIjpyZXR1cm4gc3RyRXNjYXBlKHMpO2Nhc2VcIm9iamVjdFwiOntpZihzPT09bnVsbCl7cmV0dXJuXCJudWxsXCJ9aWYodHlwZW9mIHMudG9KU09OPT09XCJmdW5jdGlvblwiKXtzPXMudG9KU09OKGUpO2lmKHR5cGVvZiBzIT09XCJvYmplY3RcIil7cmV0dXJuIHN0cmluZ2lmeVNpbXBsZShlLHMsbCl9aWYocz09PW51bGwpe3JldHVyblwibnVsbFwifX1pZihsLmluZGV4T2YocykhPT0tMSl7cmV0dXJuIG59bGV0IHQ9XCJcIjtjb25zdCByPXMubGVuZ3RoIT09dW5kZWZpbmVkO2lmKHImJkFycmF5LmlzQXJyYXkocykpe2lmKHMubGVuZ3RoPT09MCl7cmV0dXJuXCJbXVwifWlmKHU8bC5sZW5ndGgrMSl7cmV0dXJuJ1wiW0FycmF5XVwiJ31sLnB1c2gocyk7Y29uc3QgZT1NYXRoLm1pbihzLmxlbmd0aCxvKTtsZXQgbj0wO2Zvcig7bjxlLTE7bisrKXtjb25zdCBlPXN0cmluZ2lmeVNpbXBsZShTdHJpbmcobiksc1tuXSxsKTt0Kz1lIT09dW5kZWZpbmVkP2U6XCJudWxsXCI7dCs9XCIsXCJ9Y29uc3Qgcj1zdHJpbmdpZnlTaW1wbGUoU3RyaW5nKG4pLHNbbl0sbCk7dCs9ciE9PXVuZGVmaW5lZD9yOlwibnVsbFwiO2lmKHMubGVuZ3RoLTE+byl7Y29uc3QgZT1zLmxlbmd0aC1vLTE7dCs9YCxcIi4uLiAke2dldEl0ZW1Db3VudChlKX0gbm90IHN0cmluZ2lmaWVkXCJgfWwucG9wKCk7cmV0dXJuYFske3R9XWB9bGV0IGM9T2JqZWN0LmtleXMocyk7Y29uc3QgYT1jLmxlbmd0aDtpZihhPT09MCl7cmV0dXJuXCJ7fVwifWlmKHU8bC5sZW5ndGgrMSl7cmV0dXJuJ1wiW09iamVjdF1cIid9bGV0IGc9XCJcIjtsZXQgcD1NYXRoLm1pbihhLG8pO2lmKHImJmlzVHlwZWRBcnJheVdpdGhFbnRyaWVzKHMpKXt0Kz1zdHJpbmdpZnlUeXBlZEFycmF5KHMsXCIsXCIsbyk7Yz1jLnNsaWNlKHMubGVuZ3RoKTtwLT1zLmxlbmd0aDtnPVwiLFwifWlmKGkpe2M9c29ydChjLGYpfWwucHVzaChzKTtmb3IobGV0IGU9MDtlPHA7ZSsrKXtjb25zdCBuPWNbZV07Y29uc3Qgcj1zdHJpbmdpZnlTaW1wbGUobixzW25dLGwpO2lmKHIhPT11bmRlZmluZWQpe3QrPWAke2d9JHtzdHJFc2NhcGUobil9OiR7cn1gO2c9XCIsXCJ9fWlmKGE+byl7Y29uc3QgZT1hLW87dCs9YCR7Z31cIi4uLlwiOlwiJHtnZXRJdGVtQ291bnQoZSl9IG5vdCBzdHJpbmdpZmllZFwiYH1sLnBvcCgpO3JldHVybmB7JHt0fX1gfWNhc2VcIm51bWJlclwiOnJldHVybiBpc0Zpbml0ZShzKT9TdHJpbmcocyk6dD90KHMpOlwibnVsbFwiO2Nhc2VcImJvb2xlYW5cIjpyZXR1cm4gcz09PXRydWU/XCJ0cnVlXCI6XCJmYWxzZVwiO2Nhc2VcInVuZGVmaW5lZFwiOnJldHVybiB1bmRlZmluZWQ7Y2FzZVwiYmlnaW50XCI6aWYocil7cmV0dXJuIFN0cmluZyhzKX1kZWZhdWx0OnJldHVybiB0P3Qocyk6dW5kZWZpbmVkfX1mdW5jdGlvbiBzdHJpbmdpZnkoZSx0LG4pe2lmKGFyZ3VtZW50cy5sZW5ndGg+MSl7bGV0IHI9XCJcIjtpZih0eXBlb2Ygbj09PVwibnVtYmVyXCIpe3I9XCIgXCIucmVwZWF0KE1hdGgubWluKG4sMTApKX1lbHNlIGlmKHR5cGVvZiBuPT09XCJzdHJpbmdcIil7cj1uLnNsaWNlKDAsMTApfWlmKHQhPW51bGwpe2lmKHR5cGVvZiB0PT09XCJmdW5jdGlvblwiKXtyZXR1cm4gc3RyaW5naWZ5Rm5SZXBsYWNlcihcIlwiLHtcIlwiOmV9LFtdLHQscixcIlwiKX1pZihBcnJheS5pc0FycmF5KHQpKXtyZXR1cm4gc3RyaW5naWZ5QXJyYXlSZXBsYWNlcihcIlwiLGUsW10sZ2V0VW5pcXVlUmVwbGFjZXJTZXQodCkscixcIlwiKX19aWYoci5sZW5ndGghPT0wKXtyZXR1cm4gc3RyaW5naWZ5SW5kZW50KFwiXCIsZSxbXSxyLFwiXCIpfX1yZXR1cm4gc3RyaW5naWZ5U2ltcGxlKFwiXCIsZSxbXSl9cmV0dXJuIHN0cmluZ2lmeX19fTt2YXIgdD17fTtmdW5jdGlvbiBfX25jY3dwY2tfcmVxdWlyZV9fKG4pe3ZhciByPXRbbl07aWYociE9PXVuZGVmaW5lZCl7cmV0dXJuIHIuZXhwb3J0c312YXIgaT10W25dPXtleHBvcnRzOnt9fTt2YXIgZj10cnVlO3RyeXtlW25dKGksaS5leHBvcnRzLF9fbmNjd3Bja19yZXF1aXJlX18pO2Y9ZmFsc2V9ZmluYWxseXtpZihmKWRlbGV0ZSB0W25dfXJldHVybiBpLmV4cG9ydHN9aWYodHlwZW9mIF9fbmNjd3Bja19yZXF1aXJlX18hPT1cInVuZGVmaW5lZFwiKV9fbmNjd3Bja19yZXF1aXJlX18uYWI9X19kaXJuYW1lK1wiL1wiO3ZhciBuPV9fbmNjd3Bja19yZXF1aXJlX18oODc5KTttb2R1bGUuZXhwb3J0cz1ufSkoKTsiXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(pages-dir-browser)/./node_modules/next/dist/compiled/safe-stable-stringify/index.js\n")); - -/***/ }), - -/***/ "(pages-dir-browser)/./node_modules/next/dist/compiled/stacktrace-parser/stack-trace-parser.cjs.js": -/*!*************************************************************************************!*\ - !*** ./node_modules/next/dist/compiled/stacktrace-parser/stack-trace-parser.cjs.js ***! - \*************************************************************************************/ -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { - -eval(__webpack_require__.ts("var __dirname = \"/\";\n(()=>{\"use strict\";if(typeof __nccwpck_require__!==\"undefined\")__nccwpck_require__.ab=__dirname+\"/\";var e={};(()=>{var r=e;Object.defineProperty(r,\"__esModule\",{value:true});var n=\"<unknown>\";function parse(e){var r=e.split(\"\\n\");return r.reduce((function(e,r){var n=parseChrome(r)||parseWinjs(r)||parseGecko(r)||parseNode(r)||parseJSC(r);if(n){e.push(n)}return e}),[])}var a=/^\\s*at (.*?) ?\\(((?:file|https?|blob|chrome-extension|native|eval|webpack|webpack-internal|rsc|turbopack|<anonymous>|\\/|[a-z]:\\\\|\\\\\\\\).*?)(?::(\\d+))?(?::(\\d+))?\\)?\\s*$/i;var l=/\\((\\S*)(?::(\\d+))(?::(\\d+))\\)/;function parseChrome(e){var r=a.exec(e);if(!r){return null}var u=r[2]&&r[2].indexOf(\"native\")===0;var t=r[2]&&r[2].indexOf(\"eval\")===0;var i=l.exec(r[2]);if(t&&i!=null){r[2]=i[1];r[3]=i[2];r[4]=i[3]}return{file:!u?r[2]:null,methodName:r[1]||n,arguments:u?[r[2]]:[],lineNumber:r[3]?+r[3]:null,column:r[4]?+r[4]:null}}var u=/^\\s*at (?:((?:\\[object object\\])?.+) )?\\(?((?:file|ms-appx|https?|webpack|webpack-internal|rsc|turbopack|blob):.*?):(\\d+)(?::(\\d+))?\\)?\\s*$/i;function parseWinjs(e){var r=u.exec(e);if(!r){return null}return{file:r[2],methodName:r[1]||n,arguments:[],lineNumber:+r[3],column:r[4]?+r[4]:null}}var t=/^\\s*(.*?)(?:\\((.*?)\\))?(?:^|@)((?:file|https?|blob|chrome|webpack|webpack-internal|rsc|turbopack|resource|\\[native).*?|[^@]*bundle)(?::(\\d+))?(?::(\\d+))?\\s*$/i;var i=/(\\S+) line (\\d+)(?: > eval line \\d+)* > eval/i;function parseGecko(e){var r=t.exec(e);if(!r){return null}var a=r[3]&&r[3].indexOf(\" > eval\")>-1;var l=i.exec(r[3]);if(a&&l!=null){r[3]=l[1];r[4]=l[2];r[5]=null}return{file:r[3],methodName:r[1]||n,arguments:r[2]?r[2].split(\",\"):[],lineNumber:r[4]?+r[4]:null,column:r[5]?+r[5]:null}}var s=/^\\s*(?:([^@]*)(?:\\((.*?)\\))?@)?(\\S.*?):(\\d+)(?::(\\d+))?\\s*$/i;function parseJSC(e){var r=s.exec(e);if(!r){return null}return{file:r[3],methodName:r[1]||n,arguments:[],lineNumber:+r[4],column:r[5]?+r[5]:null}}var c=/^\\s*at (?:((?:\\[object object\\])?[^\\\\/]+(?: \\[as \\S+\\])?) )?\\(?(.*?):(\\d+)(?::(\\d+))?\\)?\\s*$/i;function parseNode(e){var r=c.exec(e);if(!r){return null}return{file:r[2],methodName:r[1]||n,arguments:[],lineNumber:+r[3],column:r[4]?+r[4]:null}}r.parse=parse})();module.exports=e})();//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvY29tcGlsZWQvc3RhY2t0cmFjZS1wYXJzZXIvc3RhY2stdHJhY2UtcGFyc2VyLmNqcy5qcyIsIm1hcHBpbmdzIjoiO0FBQUEsTUFBTSxhQUFhLG1FQUFtRSxTQUFTLEtBQUssU0FBUyxNQUFNLFFBQVEsc0NBQXNDLFdBQVcsRUFBRSxrQkFBa0Isa0JBQWtCLG9CQUFvQiwrQkFBK0IsOEVBQThFLE1BQU0sVUFBVSxTQUFTLE1BQU0saUxBQWlMLHNDQUFzQyx3QkFBd0IsZ0JBQWdCLE9BQU8sWUFBWSx1Q0FBdUMscUNBQXFDLG1CQUFtQixlQUFlLFVBQVUsVUFBVSxVQUFVLE9BQU8sOEdBQThHLHFKQUFxSix1QkFBdUIsZ0JBQWdCLE9BQU8sWUFBWSxPQUFPLG1GQUFtRix1S0FBdUssc0RBQXNELHVCQUF1QixnQkFBZ0IsT0FBTyxZQUFZLHVDQUF1QyxtQkFBbUIsZUFBZSxVQUFVLFVBQVUsVUFBVSxPQUFPLGtIQUFrSCxxRUFBcUUscUJBQXFCLGdCQUFnQixPQUFPLFlBQVksT0FBTyxtRkFBbUYsc0dBQXNHLHNCQUFzQixnQkFBZ0IsT0FBTyxZQUFZLE9BQU8sbUZBQW1GLGNBQWMsSUFBSSxpQkFBaUIiLCJzb3VyY2VzIjpbIkQ6XFxkb25neXVuLXByb2plY3RzXFx0d29cXG5vZGVfbW9kdWxlc1xcbmV4dFxcZGlzdFxcY29tcGlsZWRcXHN0YWNrdHJhY2UtcGFyc2VyXFxzdGFjay10cmFjZS1wYXJzZXIuY2pzLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIigoKT0+e1widXNlIHN0cmljdFwiO2lmKHR5cGVvZiBfX25jY3dwY2tfcmVxdWlyZV9fIT09XCJ1bmRlZmluZWRcIilfX25jY3dwY2tfcmVxdWlyZV9fLmFiPV9fZGlybmFtZStcIi9cIjt2YXIgZT17fTsoKCk9Pnt2YXIgcj1lO09iamVjdC5kZWZpbmVQcm9wZXJ0eShyLFwiX19lc01vZHVsZVwiLHt2YWx1ZTp0cnVlfSk7dmFyIG49XCI8dW5rbm93bj5cIjtmdW5jdGlvbiBwYXJzZShlKXt2YXIgcj1lLnNwbGl0KFwiXFxuXCIpO3JldHVybiByLnJlZHVjZSgoZnVuY3Rpb24oZSxyKXt2YXIgbj1wYXJzZUNocm9tZShyKXx8cGFyc2VXaW5qcyhyKXx8cGFyc2VHZWNrbyhyKXx8cGFyc2VOb2RlKHIpfHxwYXJzZUpTQyhyKTtpZihuKXtlLnB1c2gobil9cmV0dXJuIGV9KSxbXSl9dmFyIGE9L15cXHMqYXQgKC4qPykgP1xcKCgoPzpmaWxlfGh0dHBzP3xibG9ifGNocm9tZS1leHRlbnNpb258bmF0aXZlfGV2YWx8d2VicGFja3x3ZWJwYWNrLWludGVybmFsfHJzY3x0dXJib3BhY2t8PGFub255bW91cz58XFwvfFthLXpdOlxcXFx8XFxcXFxcXFwpLio/KSg/OjooXFxkKykpPyg/OjooXFxkKykpP1xcKT9cXHMqJC9pO3ZhciBsPS9cXCgoXFxTKikoPzo6KFxcZCspKSg/OjooXFxkKykpXFwpLztmdW5jdGlvbiBwYXJzZUNocm9tZShlKXt2YXIgcj1hLmV4ZWMoZSk7aWYoIXIpe3JldHVybiBudWxsfXZhciB1PXJbMl0mJnJbMl0uaW5kZXhPZihcIm5hdGl2ZVwiKT09PTA7dmFyIHQ9clsyXSYmclsyXS5pbmRleE9mKFwiZXZhbFwiKT09PTA7dmFyIGk9bC5leGVjKHJbMl0pO2lmKHQmJmkhPW51bGwpe3JbMl09aVsxXTtyWzNdPWlbMl07cls0XT1pWzNdfXJldHVybntmaWxlOiF1P3JbMl06bnVsbCxtZXRob2ROYW1lOnJbMV18fG4sYXJndW1lbnRzOnU/W3JbMl1dOltdLGxpbmVOdW1iZXI6clszXT8rclszXTpudWxsLGNvbHVtbjpyWzRdPytyWzRdOm51bGx9fXZhciB1PS9eXFxzKmF0ICg/OigoPzpcXFtvYmplY3Qgb2JqZWN0XFxdKT8uKykgKT9cXCg/KCg/OmZpbGV8bXMtYXBweHxodHRwcz98d2VicGFja3x3ZWJwYWNrLWludGVybmFsfHJzY3x0dXJib3BhY2t8YmxvYik6Lio/KTooXFxkKykoPzo6KFxcZCspKT9cXCk/XFxzKiQvaTtmdW5jdGlvbiBwYXJzZVdpbmpzKGUpe3ZhciByPXUuZXhlYyhlKTtpZighcil7cmV0dXJuIG51bGx9cmV0dXJue2ZpbGU6clsyXSxtZXRob2ROYW1lOnJbMV18fG4sYXJndW1lbnRzOltdLGxpbmVOdW1iZXI6K3JbM10sY29sdW1uOnJbNF0/K3JbNF06bnVsbH19dmFyIHQ9L15cXHMqKC4qPykoPzpcXCgoLio/KVxcKSk/KD86XnxAKSgoPzpmaWxlfGh0dHBzP3xibG9ifGNocm9tZXx3ZWJwYWNrfHdlYnBhY2staW50ZXJuYWx8cnNjfHR1cmJvcGFja3xyZXNvdXJjZXxcXFtuYXRpdmUpLio/fFteQF0qYnVuZGxlKSg/OjooXFxkKykpPyg/OjooXFxkKykpP1xccyokL2k7dmFyIGk9LyhcXFMrKSBsaW5lIChcXGQrKSg/OiA+IGV2YWwgbGluZSBcXGQrKSogPiBldmFsL2k7ZnVuY3Rpb24gcGFyc2VHZWNrbyhlKXt2YXIgcj10LmV4ZWMoZSk7aWYoIXIpe3JldHVybiBudWxsfXZhciBhPXJbM10mJnJbM10uaW5kZXhPZihcIiA+IGV2YWxcIik+LTE7dmFyIGw9aS5leGVjKHJbM10pO2lmKGEmJmwhPW51bGwpe3JbM109bFsxXTtyWzRdPWxbMl07cls1XT1udWxsfXJldHVybntmaWxlOnJbM10sbWV0aG9kTmFtZTpyWzFdfHxuLGFyZ3VtZW50czpyWzJdP3JbMl0uc3BsaXQoXCIsXCIpOltdLGxpbmVOdW1iZXI6cls0XT8rcls0XTpudWxsLGNvbHVtbjpyWzVdPytyWzVdOm51bGx9fXZhciBzPS9eXFxzKig/OihbXkBdKikoPzpcXCgoLio/KVxcKSk/QCk/KFxcUy4qPyk6KFxcZCspKD86OihcXGQrKSk/XFxzKiQvaTtmdW5jdGlvbiBwYXJzZUpTQyhlKXt2YXIgcj1zLmV4ZWMoZSk7aWYoIXIpe3JldHVybiBudWxsfXJldHVybntmaWxlOnJbM10sbWV0aG9kTmFtZTpyWzFdfHxuLGFyZ3VtZW50czpbXSxsaW5lTnVtYmVyOityWzRdLGNvbHVtbjpyWzVdPytyWzVdOm51bGx9fXZhciBjPS9eXFxzKmF0ICg/OigoPzpcXFtvYmplY3Qgb2JqZWN0XFxdKT9bXlxcXFwvXSsoPzogXFxbYXMgXFxTK1xcXSk/KSApP1xcKD8oLio/KTooXFxkKykoPzo6KFxcZCspKT9cXCk/XFxzKiQvaTtmdW5jdGlvbiBwYXJzZU5vZGUoZSl7dmFyIHI9Yy5leGVjKGUpO2lmKCFyKXtyZXR1cm4gbnVsbH1yZXR1cm57ZmlsZTpyWzJdLG1ldGhvZE5hbWU6clsxXXx8bixhcmd1bWVudHM6W10sbGluZU51bWJlcjorclszXSxjb2x1bW46cls0XT8rcls0XTpudWxsfX1yLnBhcnNlPXBhcnNlfSkoKTttb2R1bGUuZXhwb3J0cz1lfSkoKTsiXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(pages-dir-browser)/./node_modules/next/dist/compiled/stacktrace-parser/stack-trace-parser.cjs.js\n")); - -/***/ }), - -/***/ "(pages-dir-browser)/./node_modules/next/dist/compiled/strip-ansi/index.js": -/*!*************************************************************!*\ - !*** ./node_modules/next/dist/compiled/strip-ansi/index.js ***! - \*************************************************************/ -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { - -"use strict"; -eval(__webpack_require__.ts("var __dirname = \"/\";\n\n(()=>{\n \"use strict\";\n var e = {\n 511: (e)=>{\n e.exports = function() {\n let { onlyFirst: e = false } = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : {};\n const r = [\n \"[\\\\u001B\\\\u009B][[\\\\]()#;?]*(?:(?:(?:(?:;[-a-zA-Z\\\\d\\\\/#&.:=?%@~_]+)*|[a-zA-Z\\\\d]+(?:;[-a-zA-Z\\\\d\\\\/#&.:=?%@~_]*)*)?\\\\u0007)\",\n \"(?:(?:\\\\d{1,4}(?:;\\\\d{0,4})*)?[\\\\dA-PR-TZcf-ntqry=><~]))\"\n ].join(\"|\");\n return new RegExp(r, e ? undefined : \"g\");\n };\n },\n 532: (e, r, _)=>{\n const t = _(511);\n e.exports = (e)=>typeof e === \"string\" ? e.replace(t(), \"\") : e;\n }\n };\n var r = {};\n function __nccwpck_require__(_) {\n var t = r[_];\n if (t !== undefined) {\n return t.exports;\n }\n var a = r[_] = {\n exports: {}\n };\n var n = true;\n try {\n e[_](a, a.exports, __nccwpck_require__);\n n = false;\n } finally{\n if (n) delete r[_];\n }\n return a.exports;\n }\n if (typeof __nccwpck_require__ !== \"undefined\") __nccwpck_require__.ab = __dirname + \"/\";\n var _ = __nccwpck_require__(532);\n module.exports = _;\n})();\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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvY29tcGlsZWQvc3RyaXAtYW5zaS9pbmRleC5qcyIsIm1hcHBpbmdzIjoiOztBQUFDO0lBQUs7SUFBYSxJQUFJQSxJQUFFO1FBQUMsS0FBSUEsQ0FBQUE7WUFBSUEsRUFBRUMsT0FBTyxHQUFDO29CQUFDLEVBQUNDLFdBQVVGLElBQUUsS0FBSyxFQUFDLG9FQUFDLENBQUM7Z0JBQUssTUFBTUcsSUFBRTtvQkFBQztvQkFBK0g7aUJBQTJELENBQUNDLElBQUksQ0FBQztnQkFBSyxPQUFPLElBQUlDLE9BQU9GLEdBQUVILElBQUVNLFlBQVU7WUFBSTtRQUFDO1FBQUUsS0FBSSxDQUFDTixHQUFFRyxHQUFFSTtZQUFLLE1BQU1DLElBQUVELEVBQUU7WUFBS1AsRUFBRUMsT0FBTyxHQUFDRCxDQUFBQSxJQUFHLE9BQU9BLE1BQUksV0FBU0EsRUFBRVMsT0FBTyxDQUFDRCxLQUFJLE1BQUlSO1FBQUM7SUFBQztJQUFFLElBQUlHLElBQUUsQ0FBQztJQUFFLFNBQVNPLG9CQUFvQkgsQ0FBQztRQUFFLElBQUlDLElBQUVMLENBQUMsQ0FBQ0ksRUFBRTtRQUFDLElBQUdDLE1BQUlGLFdBQVU7WUFBQyxPQUFPRSxFQUFFUCxPQUFPO1FBQUE7UUFBQyxJQUFJVSxJQUFFUixDQUFDLENBQUNJLEVBQUUsR0FBQztZQUFDTixTQUFRLENBQUM7UUFBQztRQUFFLElBQUlXLElBQUU7UUFBSyxJQUFHO1lBQUNaLENBQUMsQ0FBQ08sRUFBRSxDQUFDSSxHQUFFQSxFQUFFVixPQUFPLEVBQUNTO1lBQXFCRSxJQUFFO1FBQUssU0FBUTtZQUFDLElBQUdBLEdBQUUsT0FBT1QsQ0FBQyxDQUFDSSxFQUFFO1FBQUE7UUFBQyxPQUFPSSxFQUFFVixPQUFPO0lBQUE7SUFBQyxJQUFHLE9BQU9TLHdCQUFzQixhQUFZQSxvQkFBb0JHLEVBQUUsR0FBQ0MsU0FBU0EsR0FBQztJQUFJLElBQUlQLElBQUVHLG9CQUFvQjtJQUFLSyxPQUFPZCxPQUFPLEdBQUNNO0FBQUMiLCJzb3VyY2VzIjpbIkQ6XFxkb25neXVuLXByb2plY3RzXFx0d29cXG5vZGVfbW9kdWxlc1xcbmV4dFxcZGlzdFxcY29tcGlsZWRcXHN0cmlwLWFuc2lcXGluZGV4LmpzIl0sInNvdXJjZXNDb250ZW50IjpbIigoKT0+e1widXNlIHN0cmljdFwiO3ZhciBlPXs1MTE6ZT0+e2UuZXhwb3J0cz0oe29ubHlGaXJzdDplPWZhbHNlfT17fSk9Pntjb25zdCByPVtcIltcXFxcdTAwMUJcXFxcdTAwOUJdW1tcXFxcXSgpIzs/XSooPzooPzooPzooPzo7Wy1hLXpBLVpcXFxcZFxcXFwvIyYuOj0/JUB+X10rKSp8W2EtekEtWlxcXFxkXSsoPzo7Wy1hLXpBLVpcXFxcZFxcXFwvIyYuOj0/JUB+X10qKSopP1xcXFx1MDAwNylcIixcIig/Oig/OlxcXFxkezEsNH0oPzo7XFxcXGR7MCw0fSkqKT9bXFxcXGRBLVBSLVRaY2YtbnRxcnk9Pjx+XSkpXCJdLmpvaW4oXCJ8XCIpO3JldHVybiBuZXcgUmVnRXhwKHIsZT91bmRlZmluZWQ6XCJnXCIpfX0sNTMyOihlLHIsXyk9Pntjb25zdCB0PV8oNTExKTtlLmV4cG9ydHM9ZT0+dHlwZW9mIGU9PT1cInN0cmluZ1wiP2UucmVwbGFjZSh0KCksXCJcIik6ZX19O3ZhciByPXt9O2Z1bmN0aW9uIF9fbmNjd3Bja19yZXF1aXJlX18oXyl7dmFyIHQ9cltfXTtpZih0IT09dW5kZWZpbmVkKXtyZXR1cm4gdC5leHBvcnRzfXZhciBhPXJbX109e2V4cG9ydHM6e319O3ZhciBuPXRydWU7dHJ5e2VbX10oYSxhLmV4cG9ydHMsX19uY2N3cGNrX3JlcXVpcmVfXyk7bj1mYWxzZX1maW5hbGx5e2lmKG4pZGVsZXRlIHJbX119cmV0dXJuIGEuZXhwb3J0c31pZih0eXBlb2YgX19uY2N3cGNrX3JlcXVpcmVfXyE9PVwidW5kZWZpbmVkXCIpX19uY2N3cGNrX3JlcXVpcmVfXy5hYj1fX2Rpcm5hbWUrXCIvXCI7dmFyIF89X19uY2N3cGNrX3JlcXVpcmVfXyg1MzIpO21vZHVsZS5leHBvcnRzPV99KSgpOyJdLCJuYW1lcyI6WyJlIiwiZXhwb3J0cyIsIm9ubHlGaXJzdCIsInIiLCJqb2luIiwiUmVnRXhwIiwidW5kZWZpbmVkIiwiXyIsInQiLCJyZXBsYWNlIiwiX19uY2N3cGNrX3JlcXVpcmVfXyIsImEiLCJuIiwiYWIiLCJfX2Rpcm5hbWUiLCJtb2R1bGUiXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(pages-dir-browser)/./node_modules/next/dist/compiled/strip-ansi/index.js\n")); - -/***/ }), - -/***/ "(pages-dir-browser)/./node_modules/next/dist/lib/constants.js": -/*!*************************************************!*\ - !*** ./node_modules/next/dist/lib/constants.js ***! - \*************************************************/ -/***/ ((__unused_webpack_module, exports, __webpack_require__) => { - -"use strict"; -eval(__webpack_require__.ts("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n ACTION_SUFFIX: function() {\n return ACTION_SUFFIX;\n },\n APP_DIR_ALIAS: function() {\n return APP_DIR_ALIAS;\n },\n CACHE_ONE_YEAR: function() {\n return CACHE_ONE_YEAR;\n },\n DOT_NEXT_ALIAS: function() {\n return DOT_NEXT_ALIAS;\n },\n ESLINT_DEFAULT_DIRS: function() {\n return ESLINT_DEFAULT_DIRS;\n },\n GSP_NO_RETURNED_VALUE: function() {\n return GSP_NO_RETURNED_VALUE;\n },\n GSSP_COMPONENT_MEMBER_ERROR: function() {\n return GSSP_COMPONENT_MEMBER_ERROR;\n },\n GSSP_NO_RETURNED_VALUE: function() {\n return GSSP_NO_RETURNED_VALUE;\n },\n INFINITE_CACHE: function() {\n return INFINITE_CACHE;\n },\n INSTRUMENTATION_HOOK_FILENAME: function() {\n return INSTRUMENTATION_HOOK_FILENAME;\n },\n MATCHED_PATH_HEADER: function() {\n return MATCHED_PATH_HEADER;\n },\n MIDDLEWARE_FILENAME: function() {\n return MIDDLEWARE_FILENAME;\n },\n MIDDLEWARE_LOCATION_REGEXP: function() {\n return MIDDLEWARE_LOCATION_REGEXP;\n },\n NEXT_BODY_SUFFIX: function() {\n return NEXT_BODY_SUFFIX;\n },\n NEXT_CACHE_IMPLICIT_TAG_ID: function() {\n return NEXT_CACHE_IMPLICIT_TAG_ID;\n },\n NEXT_CACHE_REVALIDATED_TAGS_HEADER: function() {\n return NEXT_CACHE_REVALIDATED_TAGS_HEADER;\n },\n NEXT_CACHE_REVALIDATE_TAG_TOKEN_HEADER: function() {\n return NEXT_CACHE_REVALIDATE_TAG_TOKEN_HEADER;\n },\n NEXT_CACHE_SOFT_TAG_MAX_LENGTH: function() {\n return NEXT_CACHE_SOFT_TAG_MAX_LENGTH;\n },\n NEXT_CACHE_TAGS_HEADER: function() {\n return NEXT_CACHE_TAGS_HEADER;\n },\n NEXT_CACHE_TAG_MAX_ITEMS: function() {\n return NEXT_CACHE_TAG_MAX_ITEMS;\n },\n NEXT_CACHE_TAG_MAX_LENGTH: function() {\n return NEXT_CACHE_TAG_MAX_LENGTH;\n },\n NEXT_DATA_SUFFIX: function() {\n return NEXT_DATA_SUFFIX;\n },\n NEXT_INTERCEPTION_MARKER_PREFIX: function() {\n return NEXT_INTERCEPTION_MARKER_PREFIX;\n },\n NEXT_META_SUFFIX: function() {\n return NEXT_META_SUFFIX;\n },\n NEXT_QUERY_PARAM_PREFIX: function() {\n return NEXT_QUERY_PARAM_PREFIX;\n },\n NEXT_RESUME_HEADER: function() {\n return NEXT_RESUME_HEADER;\n },\n NON_STANDARD_NODE_ENV: function() {\n return NON_STANDARD_NODE_ENV;\n },\n PAGES_DIR_ALIAS: function() {\n return PAGES_DIR_ALIAS;\n },\n PRERENDER_REVALIDATE_HEADER: function() {\n return PRERENDER_REVALIDATE_HEADER;\n },\n PRERENDER_REVALIDATE_ONLY_GENERATED_HEADER: function() {\n return PRERENDER_REVALIDATE_ONLY_GENERATED_HEADER;\n },\n PUBLIC_DIR_MIDDLEWARE_CONFLICT: function() {\n return PUBLIC_DIR_MIDDLEWARE_CONFLICT;\n },\n ROOT_DIR_ALIAS: function() {\n return ROOT_DIR_ALIAS;\n },\n RSC_ACTION_CLIENT_WRAPPER_ALIAS: function() {\n return RSC_ACTION_CLIENT_WRAPPER_ALIAS;\n },\n RSC_ACTION_ENCRYPTION_ALIAS: function() {\n return RSC_ACTION_ENCRYPTION_ALIAS;\n },\n RSC_ACTION_PROXY_ALIAS: function() {\n return RSC_ACTION_PROXY_ALIAS;\n },\n RSC_ACTION_VALIDATE_ALIAS: function() {\n return RSC_ACTION_VALIDATE_ALIAS;\n },\n RSC_CACHE_WRAPPER_ALIAS: function() {\n return RSC_CACHE_WRAPPER_ALIAS;\n },\n RSC_DYNAMIC_IMPORT_WRAPPER_ALIAS: function() {\n return RSC_DYNAMIC_IMPORT_WRAPPER_ALIAS;\n },\n RSC_MOD_REF_PROXY_ALIAS: function() {\n return RSC_MOD_REF_PROXY_ALIAS;\n },\n RSC_PREFETCH_SUFFIX: function() {\n return RSC_PREFETCH_SUFFIX;\n },\n RSC_SEGMENTS_DIR_SUFFIX: function() {\n return RSC_SEGMENTS_DIR_SUFFIX;\n },\n RSC_SEGMENT_SUFFIX: function() {\n return RSC_SEGMENT_SUFFIX;\n },\n RSC_SUFFIX: function() {\n return RSC_SUFFIX;\n },\n SERVER_PROPS_EXPORT_ERROR: function() {\n return SERVER_PROPS_EXPORT_ERROR;\n },\n SERVER_PROPS_GET_INIT_PROPS_CONFLICT: function() {\n return SERVER_PROPS_GET_INIT_PROPS_CONFLICT;\n },\n SERVER_PROPS_SSG_CONFLICT: function() {\n return SERVER_PROPS_SSG_CONFLICT;\n },\n SERVER_RUNTIME: function() {\n return SERVER_RUNTIME;\n },\n SSG_FALLBACK_EXPORT_ERROR: function() {\n return SSG_FALLBACK_EXPORT_ERROR;\n },\n SSG_GET_INITIAL_PROPS_CONFLICT: function() {\n return SSG_GET_INITIAL_PROPS_CONFLICT;\n },\n STATIC_STATUS_PAGE_GET_INITIAL_PROPS_ERROR: function() {\n return STATIC_STATUS_PAGE_GET_INITIAL_PROPS_ERROR;\n },\n UNSTABLE_REVALIDATE_RENAME_ERROR: function() {\n return UNSTABLE_REVALIDATE_RENAME_ERROR;\n },\n WEBPACK_LAYERS: function() {\n return WEBPACK_LAYERS;\n },\n WEBPACK_RESOURCE_QUERIES: function() {\n return WEBPACK_RESOURCE_QUERIES;\n }\n});\nconst NEXT_QUERY_PARAM_PREFIX = 'nxtP';\nconst NEXT_INTERCEPTION_MARKER_PREFIX = 'nxtI';\nconst MATCHED_PATH_HEADER = 'x-matched-path';\nconst PRERENDER_REVALIDATE_HEADER = 'x-prerender-revalidate';\nconst PRERENDER_REVALIDATE_ONLY_GENERATED_HEADER = 'x-prerender-revalidate-if-generated';\nconst RSC_PREFETCH_SUFFIX = '.prefetch.rsc';\nconst RSC_SEGMENTS_DIR_SUFFIX = '.segments';\nconst RSC_SEGMENT_SUFFIX = '.segment.rsc';\nconst RSC_SUFFIX = '.rsc';\nconst ACTION_SUFFIX = '.action';\nconst NEXT_DATA_SUFFIX = '.json';\nconst NEXT_META_SUFFIX = '.meta';\nconst NEXT_BODY_SUFFIX = '.body';\nconst NEXT_CACHE_TAGS_HEADER = 'x-next-cache-tags';\nconst NEXT_CACHE_REVALIDATED_TAGS_HEADER = 'x-next-revalidated-tags';\nconst NEXT_CACHE_REVALIDATE_TAG_TOKEN_HEADER = 'x-next-revalidate-tag-token';\nconst NEXT_RESUME_HEADER = 'next-resume';\nconst NEXT_CACHE_TAG_MAX_ITEMS = 128;\nconst NEXT_CACHE_TAG_MAX_LENGTH = 256;\nconst NEXT_CACHE_SOFT_TAG_MAX_LENGTH = 1024;\nconst NEXT_CACHE_IMPLICIT_TAG_ID = '_N_T_';\nconst CACHE_ONE_YEAR = 31536000;\nconst INFINITE_CACHE = 0xfffffffe;\nconst MIDDLEWARE_FILENAME = 'middleware';\nconst MIDDLEWARE_LOCATION_REGEXP = `(?:src/)?${MIDDLEWARE_FILENAME}`;\nconst INSTRUMENTATION_HOOK_FILENAME = 'instrumentation';\nconst PAGES_DIR_ALIAS = 'private-next-pages';\nconst DOT_NEXT_ALIAS = 'private-dot-next';\nconst ROOT_DIR_ALIAS = 'private-next-root-dir';\nconst APP_DIR_ALIAS = 'private-next-app-dir';\nconst RSC_MOD_REF_PROXY_ALIAS = 'private-next-rsc-mod-ref-proxy';\nconst RSC_ACTION_VALIDATE_ALIAS = 'private-next-rsc-action-validate';\nconst RSC_ACTION_PROXY_ALIAS = 'private-next-rsc-server-reference';\nconst RSC_CACHE_WRAPPER_ALIAS = 'private-next-rsc-cache-wrapper';\nconst RSC_DYNAMIC_IMPORT_WRAPPER_ALIAS = 'private-next-rsc-track-dynamic-import';\nconst RSC_ACTION_ENCRYPTION_ALIAS = 'private-next-rsc-action-encryption';\nconst RSC_ACTION_CLIENT_WRAPPER_ALIAS = 'private-next-rsc-action-client-wrapper';\nconst PUBLIC_DIR_MIDDLEWARE_CONFLICT = `You can not have a '_next' folder inside of your public folder. This conflicts with the internal '/_next' route. https://nextjs.org/docs/messages/public-next-folder-conflict`;\nconst SSG_GET_INITIAL_PROPS_CONFLICT = `You can not use getInitialProps with getStaticProps. To use SSG, please remove your getInitialProps`;\nconst SERVER_PROPS_GET_INIT_PROPS_CONFLICT = `You can not use getInitialProps with getServerSideProps. Please remove getInitialProps.`;\nconst SERVER_PROPS_SSG_CONFLICT = `You can not use getStaticProps or getStaticPaths with getServerSideProps. To use SSG, please remove getServerSideProps`;\nconst STATIC_STATUS_PAGE_GET_INITIAL_PROPS_ERROR = `can not have getInitialProps/getServerSideProps, https://nextjs.org/docs/messages/404-get-initial-props`;\nconst SERVER_PROPS_EXPORT_ERROR = `pages with \\`getServerSideProps\\` can not be exported. See more info here: https://nextjs.org/docs/messages/gssp-export`;\nconst GSP_NO_RETURNED_VALUE = 'Your `getStaticProps` function did not return an object. Did you forget to add a `return`?';\nconst GSSP_NO_RETURNED_VALUE = 'Your `getServerSideProps` function did not return an object. Did you forget to add a `return`?';\nconst UNSTABLE_REVALIDATE_RENAME_ERROR = 'The `unstable_revalidate` property is available for general use.\\n' + 'Please use `revalidate` instead.';\nconst GSSP_COMPONENT_MEMBER_ERROR = `can not be attached to a page's component and must be exported from the page. See more info here: https://nextjs.org/docs/messages/gssp-component-member`;\nconst NON_STANDARD_NODE_ENV = `You are using a non-standard \"NODE_ENV\" value in your environment. This creates inconsistencies in the project and is strongly advised against. Read more: https://nextjs.org/docs/messages/non-standard-node-env`;\nconst SSG_FALLBACK_EXPORT_ERROR = `Pages with \\`fallback\\` enabled in \\`getStaticPaths\\` can not be exported. See more info here: https://nextjs.org/docs/messages/ssg-fallback-true-export`;\nconst ESLINT_DEFAULT_DIRS = [\n 'app',\n 'pages',\n 'components',\n 'lib',\n 'src'\n];\nconst SERVER_RUNTIME = {\n edge: 'edge',\n experimentalEdge: 'experimental-edge',\n nodejs: 'nodejs'\n};\n/**\n * The names of the webpack layers. These layers are the primitives for the\n * webpack chunks.\n */ const WEBPACK_LAYERS_NAMES = {\n /**\n * The layer for the shared code between the client and server bundles.\n */ shared: 'shared',\n /**\n * The layer for server-only runtime and picking up `react-server` export conditions.\n * Including app router RSC pages and app router custom routes and metadata routes.\n */ reactServerComponents: 'rsc',\n /**\n * Server Side Rendering layer for app (ssr).\n */ serverSideRendering: 'ssr',\n /**\n * The browser client bundle layer for actions.\n */ actionBrowser: 'action-browser',\n /**\n * The Node.js bundle layer for the API routes.\n */ apiNode: 'api-node',\n /**\n * The Edge Lite bundle layer for the API routes.\n */ apiEdge: 'api-edge',\n /**\n * The layer for the middleware code.\n */ middleware: 'middleware',\n /**\n * The layer for the instrumentation hooks.\n */ instrument: 'instrument',\n /**\n * The layer for assets on the edge.\n */ edgeAsset: 'edge-asset',\n /**\n * The browser client bundle layer for App directory.\n */ appPagesBrowser: 'app-pages-browser',\n /**\n * The browser client bundle layer for Pages directory.\n */ pagesDirBrowser: 'pages-dir-browser',\n /**\n * The Edge Lite bundle layer for Pages directory.\n */ pagesDirEdge: 'pages-dir-edge',\n /**\n * The Node.js bundle layer for Pages directory.\n */ pagesDirNode: 'pages-dir-node'\n};\nconst WEBPACK_LAYERS = {\n ...WEBPACK_LAYERS_NAMES,\n GROUP: {\n builtinReact: [\n WEBPACK_LAYERS_NAMES.reactServerComponents,\n WEBPACK_LAYERS_NAMES.actionBrowser\n ],\n serverOnly: [\n WEBPACK_LAYERS_NAMES.reactServerComponents,\n WEBPACK_LAYERS_NAMES.actionBrowser,\n WEBPACK_LAYERS_NAMES.instrument,\n WEBPACK_LAYERS_NAMES.middleware\n ],\n neutralTarget: [\n // pages api\n WEBPACK_LAYERS_NAMES.apiNode,\n WEBPACK_LAYERS_NAMES.apiEdge\n ],\n clientOnly: [\n WEBPACK_LAYERS_NAMES.serverSideRendering,\n WEBPACK_LAYERS_NAMES.appPagesBrowser\n ],\n bundled: [\n WEBPACK_LAYERS_NAMES.reactServerComponents,\n WEBPACK_LAYERS_NAMES.actionBrowser,\n WEBPACK_LAYERS_NAMES.serverSideRendering,\n WEBPACK_LAYERS_NAMES.appPagesBrowser,\n WEBPACK_LAYERS_NAMES.shared,\n WEBPACK_LAYERS_NAMES.instrument,\n WEBPACK_LAYERS_NAMES.middleware\n ],\n appPages: [\n // app router pages and layouts\n WEBPACK_LAYERS_NAMES.reactServerComponents,\n WEBPACK_LAYERS_NAMES.serverSideRendering,\n WEBPACK_LAYERS_NAMES.appPagesBrowser,\n WEBPACK_LAYERS_NAMES.actionBrowser\n ]\n }\n};\nconst WEBPACK_RESOURCE_QUERIES = {\n edgeSSREntry: '__next_edge_ssr_entry__',\n metadata: '__next_metadata__',\n metadataRoute: '__next_metadata_route__',\n metadataImageMeta: '__next_metadata_image_meta__'\n};\n\n//# sourceMappingURL=constants.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvbGliL2NvbnN0YW50cy5qcyIsIm1hcHBpbmdzIjoiQUFBYTtBQUNiLDhDQUE2QztBQUM3QztBQUNBLENBQUMsRUFBQztBQUNGLE1BQU0sQ0FzREw7QUFDRDtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQSxDQUFDO0FBQ0Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsK0NBQStDLG9CQUFvQjtBQUNuRTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQSIsInNvdXJjZXMiOlsiRDpcXGRvbmd5dW4tcHJvamVjdHNcXHR3b1xcbm9kZV9tb2R1bGVzXFxuZXh0XFxkaXN0XFxsaWJcXGNvbnN0YW50cy5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwge1xuICAgIHZhbHVlOiB0cnVlXG59KTtcbjAgJiYgKG1vZHVsZS5leHBvcnRzID0ge1xuICAgIEFDVElPTl9TVUZGSVg6IG51bGwsXG4gICAgQVBQX0RJUl9BTElBUzogbnVsbCxcbiAgICBDQUNIRV9PTkVfWUVBUjogbnVsbCxcbiAgICBET1RfTkVYVF9BTElBUzogbnVsbCxcbiAgICBFU0xJTlRfREVGQVVMVF9ESVJTOiBudWxsLFxuICAgIEdTUF9OT19SRVRVUk5FRF9WQUxVRTogbnVsbCxcbiAgICBHU1NQX0NPTVBPTkVOVF9NRU1CRVJfRVJST1I6IG51bGwsXG4gICAgR1NTUF9OT19SRVRVUk5FRF9WQUxVRTogbnVsbCxcbiAgICBJTkZJTklURV9DQUNIRTogbnVsbCxcbiAgICBJTlNUUlVNRU5UQVRJT05fSE9PS19GSUxFTkFNRTogbnVsbCxcbiAgICBNQVRDSEVEX1BBVEhfSEVBREVSOiBudWxsLFxuICAgIE1JRERMRVdBUkVfRklMRU5BTUU6IG51bGwsXG4gICAgTUlERExFV0FSRV9MT0NBVElPTl9SRUdFWFA6IG51bGwsXG4gICAgTkVYVF9CT0RZX1NVRkZJWDogbnVsbCxcbiAgICBORVhUX0NBQ0hFX0lNUExJQ0lUX1RBR19JRDogbnVsbCxcbiAgICBORVhUX0NBQ0hFX1JFVkFMSURBVEVEX1RBR1NfSEVBREVSOiBudWxsLFxuICAgIE5FWFRfQ0FDSEVfUkVWQUxJREFURV9UQUdfVE9LRU5fSEVBREVSOiBudWxsLFxuICAgIE5FWFRfQ0FDSEVfU09GVF9UQUdfTUFYX0xFTkdUSDogbnVsbCxcbiAgICBORVhUX0NBQ0hFX1RBR1NfSEVBREVSOiBudWxsLFxuICAgIE5FWFRfQ0FDSEVfVEFHX01BWF9JVEVNUzogbnVsbCxcbiAgICBORVhUX0NBQ0hFX1RBR19NQVhfTEVOR1RIOiBudWxsLFxuICAgIE5FWFRfREFUQV9TVUZGSVg6IG51bGwsXG4gICAgTkVYVF9JTlRFUkNFUFRJT05fTUFSS0VSX1BSRUZJWDogbnVsbCxcbiAgICBORVhUX01FVEFfU1VGRklYOiBudWxsLFxuICAgIE5FWFRfUVVFUllfUEFSQU1fUFJFRklYOiBudWxsLFxuICAgIE5FWFRfUkVTVU1FX0hFQURFUjogbnVsbCxcbiAgICBOT05fU1RBTkRBUkRfTk9ERV9FTlY6IG51bGwsXG4gICAgUEFHRVNfRElSX0FMSUFTOiBudWxsLFxuICAgIFBSRVJFTkRFUl9SRVZBTElEQVRFX0hFQURFUjogbnVsbCxcbiAgICBQUkVSRU5ERVJfUkVWQUxJREFURV9PTkxZX0dFTkVSQVRFRF9IRUFERVI6IG51bGwsXG4gICAgUFVCTElDX0RJUl9NSURETEVXQVJFX0NPTkZMSUNUOiBudWxsLFxuICAgIFJPT1RfRElSX0FMSUFTOiBudWxsLFxuICAgIFJTQ19BQ1RJT05fQ0xJRU5UX1dSQVBQRVJfQUxJQVM6IG51bGwsXG4gICAgUlNDX0FDVElPTl9FTkNSWVBUSU9OX0FMSUFTOiBudWxsLFxuICAgIFJTQ19BQ1RJT05fUFJPWFlfQUxJQVM6IG51bGwsXG4gICAgUlNDX0FDVElPTl9WQUxJREFURV9BTElBUzogbnVsbCxcbiAgICBSU0NfQ0FDSEVfV1JBUFBFUl9BTElBUzogbnVsbCxcbiAgICBSU0NfRFlOQU1JQ19JTVBPUlRfV1JBUFBFUl9BTElBUzogbnVsbCxcbiAgICBSU0NfTU9EX1JFRl9QUk9YWV9BTElBUzogbnVsbCxcbiAgICBSU0NfUFJFRkVUQ0hfU1VGRklYOiBudWxsLFxuICAgIFJTQ19TRUdNRU5UU19ESVJfU1VGRklYOiBudWxsLFxuICAgIFJTQ19TRUdNRU5UX1NVRkZJWDogbnVsbCxcbiAgICBSU0NfU1VGRklYOiBudWxsLFxuICAgIFNFUlZFUl9QUk9QU19FWFBPUlRfRVJST1I6IG51bGwsXG4gICAgU0VSVkVSX1BST1BTX0dFVF9JTklUX1BST1BTX0NPTkZMSUNUOiBudWxsLFxuICAgIFNFUlZFUl9QUk9QU19TU0dfQ09ORkxJQ1Q6IG51bGwsXG4gICAgU0VSVkVSX1JVTlRJTUU6IG51bGwsXG4gICAgU1NHX0ZBTExCQUNLX0VYUE9SVF9FUlJPUjogbnVsbCxcbiAgICBTU0dfR0VUX0lOSVRJQUxfUFJPUFNfQ09ORkxJQ1Q6IG51bGwsXG4gICAgU1RBVElDX1NUQVRVU19QQUdFX0dFVF9JTklUSUFMX1BST1BTX0VSUk9SOiBudWxsLFxuICAgIFVOU1RBQkxFX1JFVkFMSURBVEVfUkVOQU1FX0VSUk9SOiBudWxsLFxuICAgIFdFQlBBQ0tfTEFZRVJTOiBudWxsLFxuICAgIFdFQlBBQ0tfUkVTT1VSQ0VfUVVFUklFUzogbnVsbFxufSk7XG5mdW5jdGlvbiBfZXhwb3J0KHRhcmdldCwgYWxsKSB7XG4gICAgZm9yKHZhciBuYW1lIGluIGFsbClPYmplY3QuZGVmaW5lUHJvcGVydHkodGFyZ2V0LCBuYW1lLCB7XG4gICAgICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgICAgIGdldDogYWxsW25hbWVdXG4gICAgfSk7XG59XG5fZXhwb3J0KGV4cG9ydHMsIHtcbiAgICBBQ1RJT05fU1VGRklYOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIEFDVElPTl9TVUZGSVg7XG4gICAgfSxcbiAgICBBUFBfRElSX0FMSUFTOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIEFQUF9ESVJfQUxJQVM7XG4gICAgfSxcbiAgICBDQUNIRV9PTkVfWUVBUjogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBDQUNIRV9PTkVfWUVBUjtcbiAgICB9LFxuICAgIERPVF9ORVhUX0FMSUFTOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIERPVF9ORVhUX0FMSUFTO1xuICAgIH0sXG4gICAgRVNMSU5UX0RFRkFVTFRfRElSUzogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBFU0xJTlRfREVGQVVMVF9ESVJTO1xuICAgIH0sXG4gICAgR1NQX05PX1JFVFVSTkVEX1ZBTFVFOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIEdTUF9OT19SRVRVUk5FRF9WQUxVRTtcbiAgICB9LFxuICAgIEdTU1BfQ09NUE9ORU5UX01FTUJFUl9FUlJPUjogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBHU1NQX0NPTVBPTkVOVF9NRU1CRVJfRVJST1I7XG4gICAgfSxcbiAgICBHU1NQX05PX1JFVFVSTkVEX1ZBTFVFOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIEdTU1BfTk9fUkVUVVJORURfVkFMVUU7XG4gICAgfSxcbiAgICBJTkZJTklURV9DQUNIRTogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBJTkZJTklURV9DQUNIRTtcbiAgICB9LFxuICAgIElOU1RSVU1FTlRBVElPTl9IT09LX0ZJTEVOQU1FOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIElOU1RSVU1FTlRBVElPTl9IT09LX0ZJTEVOQU1FO1xuICAgIH0sXG4gICAgTUFUQ0hFRF9QQVRIX0hFQURFUjogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBNQVRDSEVEX1BBVEhfSEVBREVSO1xuICAgIH0sXG4gICAgTUlERExFV0FSRV9GSUxFTkFNRTogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBNSURETEVXQVJFX0ZJTEVOQU1FO1xuICAgIH0sXG4gICAgTUlERExFV0FSRV9MT0NBVElPTl9SRUdFWFA6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gTUlERExFV0FSRV9MT0NBVElPTl9SRUdFWFA7XG4gICAgfSxcbiAgICBORVhUX0JPRFlfU1VGRklYOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIE5FWFRfQk9EWV9TVUZGSVg7XG4gICAgfSxcbiAgICBORVhUX0NBQ0hFX0lNUExJQ0lUX1RBR19JRDogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBORVhUX0NBQ0hFX0lNUExJQ0lUX1RBR19JRDtcbiAgICB9LFxuICAgIE5FWFRfQ0FDSEVfUkVWQUxJREFURURfVEFHU19IRUFERVI6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gTkVYVF9DQUNIRV9SRVZBTElEQVRFRF9UQUdTX0hFQURFUjtcbiAgICB9LFxuICAgIE5FWFRfQ0FDSEVfUkVWQUxJREFURV9UQUdfVE9LRU5fSEVBREVSOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIE5FWFRfQ0FDSEVfUkVWQUxJREFURV9UQUdfVE9LRU5fSEVBREVSO1xuICAgIH0sXG4gICAgTkVYVF9DQUNIRV9TT0ZUX1RBR19NQVhfTEVOR1RIOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIE5FWFRfQ0FDSEVfU09GVF9UQUdfTUFYX0xFTkdUSDtcbiAgICB9LFxuICAgIE5FWFRfQ0FDSEVfVEFHU19IRUFERVI6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gTkVYVF9DQUNIRV9UQUdTX0hFQURFUjtcbiAgICB9LFxuICAgIE5FWFRfQ0FDSEVfVEFHX01BWF9JVEVNUzogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBORVhUX0NBQ0hFX1RBR19NQVhfSVRFTVM7XG4gICAgfSxcbiAgICBORVhUX0NBQ0hFX1RBR19NQVhfTEVOR1RIOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIE5FWFRfQ0FDSEVfVEFHX01BWF9MRU5HVEg7XG4gICAgfSxcbiAgICBORVhUX0RBVEFfU1VGRklYOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIE5FWFRfREFUQV9TVUZGSVg7XG4gICAgfSxcbiAgICBORVhUX0lOVEVSQ0VQVElPTl9NQVJLRVJfUFJFRklYOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIE5FWFRfSU5URVJDRVBUSU9OX01BUktFUl9QUkVGSVg7XG4gICAgfSxcbiAgICBORVhUX01FVEFfU1VGRklYOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIE5FWFRfTUVUQV9TVUZGSVg7XG4gICAgfSxcbiAgICBORVhUX1FVRVJZX1BBUkFNX1BSRUZJWDogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBORVhUX1FVRVJZX1BBUkFNX1BSRUZJWDtcbiAgICB9LFxuICAgIE5FWFRfUkVTVU1FX0hFQURFUjogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBORVhUX1JFU1VNRV9IRUFERVI7XG4gICAgfSxcbiAgICBOT05fU1RBTkRBUkRfTk9ERV9FTlY6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gTk9OX1NUQU5EQVJEX05PREVfRU5WO1xuICAgIH0sXG4gICAgUEFHRVNfRElSX0FMSUFTOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIFBBR0VTX0RJUl9BTElBUztcbiAgICB9LFxuICAgIFBSRVJFTkRFUl9SRVZBTElEQVRFX0hFQURFUjogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBQUkVSRU5ERVJfUkVWQUxJREFURV9IRUFERVI7XG4gICAgfSxcbiAgICBQUkVSRU5ERVJfUkVWQUxJREFURV9PTkxZX0dFTkVSQVRFRF9IRUFERVI6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gUFJFUkVOREVSX1JFVkFMSURBVEVfT05MWV9HRU5FUkFURURfSEVBREVSO1xuICAgIH0sXG4gICAgUFVCTElDX0RJUl9NSURETEVXQVJFX0NPTkZMSUNUOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIFBVQkxJQ19ESVJfTUlERExFV0FSRV9DT05GTElDVDtcbiAgICB9LFxuICAgIFJPT1RfRElSX0FMSUFTOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIFJPT1RfRElSX0FMSUFTO1xuICAgIH0sXG4gICAgUlNDX0FDVElPTl9DTElFTlRfV1JBUFBFUl9BTElBUzogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBSU0NfQUNUSU9OX0NMSUVOVF9XUkFQUEVSX0FMSUFTO1xuICAgIH0sXG4gICAgUlNDX0FDVElPTl9FTkNSWVBUSU9OX0FMSUFTOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIFJTQ19BQ1RJT05fRU5DUllQVElPTl9BTElBUztcbiAgICB9LFxuICAgIFJTQ19BQ1RJT05fUFJPWFlfQUxJQVM6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gUlNDX0FDVElPTl9QUk9YWV9BTElBUztcbiAgICB9LFxuICAgIFJTQ19BQ1RJT05fVkFMSURBVEVfQUxJQVM6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gUlNDX0FDVElPTl9WQUxJREFURV9BTElBUztcbiAgICB9LFxuICAgIFJTQ19DQUNIRV9XUkFQUEVSX0FMSUFTOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIFJTQ19DQUNIRV9XUkFQUEVSX0FMSUFTO1xuICAgIH0sXG4gICAgUlNDX0RZTkFNSUNfSU1QT1JUX1dSQVBQRVJfQUxJQVM6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gUlNDX0RZTkFNSUNfSU1QT1JUX1dSQVBQRVJfQUxJQVM7XG4gICAgfSxcbiAgICBSU0NfTU9EX1JFRl9QUk9YWV9BTElBUzogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBSU0NfTU9EX1JFRl9QUk9YWV9BTElBUztcbiAgICB9LFxuICAgIFJTQ19QUkVGRVRDSF9TVUZGSVg6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gUlNDX1BSRUZFVENIX1NVRkZJWDtcbiAgICB9LFxuICAgIFJTQ19TRUdNRU5UU19ESVJfU1VGRklYOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIFJTQ19TRUdNRU5UU19ESVJfU1VGRklYO1xuICAgIH0sXG4gICAgUlNDX1NFR01FTlRfU1VGRklYOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIFJTQ19TRUdNRU5UX1NVRkZJWDtcbiAgICB9LFxuICAgIFJTQ19TVUZGSVg6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gUlNDX1NVRkZJWDtcbiAgICB9LFxuICAgIFNFUlZFUl9QUk9QU19FWFBPUlRfRVJST1I6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gU0VSVkVSX1BST1BTX0VYUE9SVF9FUlJPUjtcbiAgICB9LFxuICAgIFNFUlZFUl9QUk9QU19HRVRfSU5JVF9QUk9QU19DT05GTElDVDogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBTRVJWRVJfUFJPUFNfR0VUX0lOSVRfUFJPUFNfQ09ORkxJQ1Q7XG4gICAgfSxcbiAgICBTRVJWRVJfUFJPUFNfU1NHX0NPTkZMSUNUOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIFNFUlZFUl9QUk9QU19TU0dfQ09ORkxJQ1Q7XG4gICAgfSxcbiAgICBTRVJWRVJfUlVOVElNRTogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBTRVJWRVJfUlVOVElNRTtcbiAgICB9LFxuICAgIFNTR19GQUxMQkFDS19FWFBPUlRfRVJST1I6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gU1NHX0ZBTExCQUNLX0VYUE9SVF9FUlJPUjtcbiAgICB9LFxuICAgIFNTR19HRVRfSU5JVElBTF9QUk9QU19DT05GTElDVDogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBTU0dfR0VUX0lOSVRJQUxfUFJPUFNfQ09ORkxJQ1Q7XG4gICAgfSxcbiAgICBTVEFUSUNfU1RBVFVTX1BBR0VfR0VUX0lOSVRJQUxfUFJPUFNfRVJST1I6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gU1RBVElDX1NUQVRVU19QQUdFX0dFVF9JTklUSUFMX1BST1BTX0VSUk9SO1xuICAgIH0sXG4gICAgVU5TVEFCTEVfUkVWQUxJREFURV9SRU5BTUVfRVJST1I6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gVU5TVEFCTEVfUkVWQUxJREFURV9SRU5BTUVfRVJST1I7XG4gICAgfSxcbiAgICBXRUJQQUNLX0xBWUVSUzogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBXRUJQQUNLX0xBWUVSUztcbiAgICB9LFxuICAgIFdFQlBBQ0tfUkVTT1VSQ0VfUVVFUklFUzogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBXRUJQQUNLX1JFU09VUkNFX1FVRVJJRVM7XG4gICAgfVxufSk7XG5jb25zdCBORVhUX1FVRVJZX1BBUkFNX1BSRUZJWCA9ICdueHRQJztcbmNvbnN0IE5FWFRfSU5URVJDRVBUSU9OX01BUktFUl9QUkVGSVggPSAnbnh0SSc7XG5jb25zdCBNQVRDSEVEX1BBVEhfSEVBREVSID0gJ3gtbWF0Y2hlZC1wYXRoJztcbmNvbnN0IFBSRVJFTkRFUl9SRVZBTElEQVRFX0hFQURFUiA9ICd4LXByZXJlbmRlci1yZXZhbGlkYXRlJztcbmNvbnN0IFBSRVJFTkRFUl9SRVZBTElEQVRFX09OTFlfR0VORVJBVEVEX0hFQURFUiA9ICd4LXByZXJlbmRlci1yZXZhbGlkYXRlLWlmLWdlbmVyYXRlZCc7XG5jb25zdCBSU0NfUFJFRkVUQ0hfU1VGRklYID0gJy5wcmVmZXRjaC5yc2MnO1xuY29uc3QgUlNDX1NFR01FTlRTX0RJUl9TVUZGSVggPSAnLnNlZ21lbnRzJztcbmNvbnN0IFJTQ19TRUdNRU5UX1NVRkZJWCA9ICcuc2VnbWVudC5yc2MnO1xuY29uc3QgUlNDX1NVRkZJWCA9ICcucnNjJztcbmNvbnN0IEFDVElPTl9TVUZGSVggPSAnLmFjdGlvbic7XG5jb25zdCBORVhUX0RBVEFfU1VGRklYID0gJy5qc29uJztcbmNvbnN0IE5FWFRfTUVUQV9TVUZGSVggPSAnLm1ldGEnO1xuY29uc3QgTkVYVF9CT0RZX1NVRkZJWCA9ICcuYm9keSc7XG5jb25zdCBORVhUX0NBQ0hFX1RBR1NfSEVBREVSID0gJ3gtbmV4dC1jYWNoZS10YWdzJztcbmNvbnN0IE5FWFRfQ0FDSEVfUkVWQUxJREFURURfVEFHU19IRUFERVIgPSAneC1uZXh0LXJldmFsaWRhdGVkLXRhZ3MnO1xuY29uc3QgTkVYVF9DQUNIRV9SRVZBTElEQVRFX1RBR19UT0tFTl9IRUFERVIgPSAneC1uZXh0LXJldmFsaWRhdGUtdGFnLXRva2VuJztcbmNvbnN0IE5FWFRfUkVTVU1FX0hFQURFUiA9ICduZXh0LXJlc3VtZSc7XG5jb25zdCBORVhUX0NBQ0hFX1RBR19NQVhfSVRFTVMgPSAxMjg7XG5jb25zdCBORVhUX0NBQ0hFX1RBR19NQVhfTEVOR1RIID0gMjU2O1xuY29uc3QgTkVYVF9DQUNIRV9TT0ZUX1RBR19NQVhfTEVOR1RIID0gMTAyNDtcbmNvbnN0IE5FWFRfQ0FDSEVfSU1QTElDSVRfVEFHX0lEID0gJ19OX1RfJztcbmNvbnN0IENBQ0hFX09ORV9ZRUFSID0gMzE1MzYwMDA7XG5jb25zdCBJTkZJTklURV9DQUNIRSA9IDB4ZmZmZmZmZmU7XG5jb25zdCBNSURETEVXQVJFX0ZJTEVOQU1FID0gJ21pZGRsZXdhcmUnO1xuY29uc3QgTUlERExFV0FSRV9MT0NBVElPTl9SRUdFWFAgPSBgKD86c3JjLyk/JHtNSURETEVXQVJFX0ZJTEVOQU1FfWA7XG5jb25zdCBJTlNUUlVNRU5UQVRJT05fSE9PS19GSUxFTkFNRSA9ICdpbnN0cnVtZW50YXRpb24nO1xuY29uc3QgUEFHRVNfRElSX0FMSUFTID0gJ3ByaXZhdGUtbmV4dC1wYWdlcyc7XG5jb25zdCBET1RfTkVYVF9BTElBUyA9ICdwcml2YXRlLWRvdC1uZXh0JztcbmNvbnN0IFJPT1RfRElSX0FMSUFTID0gJ3ByaXZhdGUtbmV4dC1yb290LWRpcic7XG5jb25zdCBBUFBfRElSX0FMSUFTID0gJ3ByaXZhdGUtbmV4dC1hcHAtZGlyJztcbmNvbnN0IFJTQ19NT0RfUkVGX1BST1hZX0FMSUFTID0gJ3ByaXZhdGUtbmV4dC1yc2MtbW9kLXJlZi1wcm94eSc7XG5jb25zdCBSU0NfQUNUSU9OX1ZBTElEQVRFX0FMSUFTID0gJ3ByaXZhdGUtbmV4dC1yc2MtYWN0aW9uLXZhbGlkYXRlJztcbmNvbnN0IFJTQ19BQ1RJT05fUFJPWFlfQUxJQVMgPSAncHJpdmF0ZS1uZXh0LXJzYy1zZXJ2ZXItcmVmZXJlbmNlJztcbmNvbnN0IFJTQ19DQUNIRV9XUkFQUEVSX0FMSUFTID0gJ3ByaXZhdGUtbmV4dC1yc2MtY2FjaGUtd3JhcHBlcic7XG5jb25zdCBSU0NfRFlOQU1JQ19JTVBPUlRfV1JBUFBFUl9BTElBUyA9ICdwcml2YXRlLW5leHQtcnNjLXRyYWNrLWR5bmFtaWMtaW1wb3J0JztcbmNvbnN0IFJTQ19BQ1RJT05fRU5DUllQVElPTl9BTElBUyA9ICdwcml2YXRlLW5leHQtcnNjLWFjdGlvbi1lbmNyeXB0aW9uJztcbmNvbnN0IFJTQ19BQ1RJT05fQ0xJRU5UX1dSQVBQRVJfQUxJQVMgPSAncHJpdmF0ZS1uZXh0LXJzYy1hY3Rpb24tY2xpZW50LXdyYXBwZXInO1xuY29uc3QgUFVCTElDX0RJUl9NSURETEVXQVJFX0NPTkZMSUNUID0gYFlvdSBjYW4gbm90IGhhdmUgYSAnX25leHQnIGZvbGRlciBpbnNpZGUgb2YgeW91ciBwdWJsaWMgZm9sZGVyLiBUaGlzIGNvbmZsaWN0cyB3aXRoIHRoZSBpbnRlcm5hbCAnL19uZXh0JyByb3V0ZS4gaHR0cHM6Ly9uZXh0anMub3JnL2RvY3MvbWVzc2FnZXMvcHVibGljLW5leHQtZm9sZGVyLWNvbmZsaWN0YDtcbmNvbnN0IFNTR19HRVRfSU5JVElBTF9QUk9QU19DT05GTElDVCA9IGBZb3UgY2FuIG5vdCB1c2UgZ2V0SW5pdGlhbFByb3BzIHdpdGggZ2V0U3RhdGljUHJvcHMuIFRvIHVzZSBTU0csIHBsZWFzZSByZW1vdmUgeW91ciBnZXRJbml0aWFsUHJvcHNgO1xuY29uc3QgU0VSVkVSX1BST1BTX0dFVF9JTklUX1BST1BTX0NPTkZMSUNUID0gYFlvdSBjYW4gbm90IHVzZSBnZXRJbml0aWFsUHJvcHMgd2l0aCBnZXRTZXJ2ZXJTaWRlUHJvcHMuIFBsZWFzZSByZW1vdmUgZ2V0SW5pdGlhbFByb3BzLmA7XG5jb25zdCBTRVJWRVJfUFJPUFNfU1NHX0NPTkZMSUNUID0gYFlvdSBjYW4gbm90IHVzZSBnZXRTdGF0aWNQcm9wcyBvciBnZXRTdGF0aWNQYXRocyB3aXRoIGdldFNlcnZlclNpZGVQcm9wcy4gVG8gdXNlIFNTRywgcGxlYXNlIHJlbW92ZSBnZXRTZXJ2ZXJTaWRlUHJvcHNgO1xuY29uc3QgU1RBVElDX1NUQVRVU19QQUdFX0dFVF9JTklUSUFMX1BST1BTX0VSUk9SID0gYGNhbiBub3QgaGF2ZSBnZXRJbml0aWFsUHJvcHMvZ2V0U2VydmVyU2lkZVByb3BzLCBodHRwczovL25leHRqcy5vcmcvZG9jcy9tZXNzYWdlcy80MDQtZ2V0LWluaXRpYWwtcHJvcHNgO1xuY29uc3QgU0VSVkVSX1BST1BTX0VYUE9SVF9FUlJPUiA9IGBwYWdlcyB3aXRoIFxcYGdldFNlcnZlclNpZGVQcm9wc1xcYCBjYW4gbm90IGJlIGV4cG9ydGVkLiBTZWUgbW9yZSBpbmZvIGhlcmU6IGh0dHBzOi8vbmV4dGpzLm9yZy9kb2NzL21lc3NhZ2VzL2dzc3AtZXhwb3J0YDtcbmNvbnN0IEdTUF9OT19SRVRVUk5FRF9WQUxVRSA9ICdZb3VyIGBnZXRTdGF0aWNQcm9wc2AgZnVuY3Rpb24gZGlkIG5vdCByZXR1cm4gYW4gb2JqZWN0LiBEaWQgeW91IGZvcmdldCB0byBhZGQgYSBgcmV0dXJuYD8nO1xuY29uc3QgR1NTUF9OT19SRVRVUk5FRF9WQUxVRSA9ICdZb3VyIGBnZXRTZXJ2ZXJTaWRlUHJvcHNgIGZ1bmN0aW9uIGRpZCBub3QgcmV0dXJuIGFuIG9iamVjdC4gRGlkIHlvdSBmb3JnZXQgdG8gYWRkIGEgYHJldHVybmA/JztcbmNvbnN0IFVOU1RBQkxFX1JFVkFMSURBVEVfUkVOQU1FX0VSUk9SID0gJ1RoZSBgdW5zdGFibGVfcmV2YWxpZGF0ZWAgcHJvcGVydHkgaXMgYXZhaWxhYmxlIGZvciBnZW5lcmFsIHVzZS5cXG4nICsgJ1BsZWFzZSB1c2UgYHJldmFsaWRhdGVgIGluc3RlYWQuJztcbmNvbnN0IEdTU1BfQ09NUE9ORU5UX01FTUJFUl9FUlJPUiA9IGBjYW4gbm90IGJlIGF0dGFjaGVkIHRvIGEgcGFnZSdzIGNvbXBvbmVudCBhbmQgbXVzdCBiZSBleHBvcnRlZCBmcm9tIHRoZSBwYWdlLiBTZWUgbW9yZSBpbmZvIGhlcmU6IGh0dHBzOi8vbmV4dGpzLm9yZy9kb2NzL21lc3NhZ2VzL2dzc3AtY29tcG9uZW50LW1lbWJlcmA7XG5jb25zdCBOT05fU1RBTkRBUkRfTk9ERV9FTlYgPSBgWW91IGFyZSB1c2luZyBhIG5vbi1zdGFuZGFyZCBcIk5PREVfRU5WXCIgdmFsdWUgaW4geW91ciBlbnZpcm9ubWVudC4gVGhpcyBjcmVhdGVzIGluY29uc2lzdGVuY2llcyBpbiB0aGUgcHJvamVjdCBhbmQgaXMgc3Ryb25nbHkgYWR2aXNlZCBhZ2FpbnN0LiBSZWFkIG1vcmU6IGh0dHBzOi8vbmV4dGpzLm9yZy9kb2NzL21lc3NhZ2VzL25vbi1zdGFuZGFyZC1ub2RlLWVudmA7XG5jb25zdCBTU0dfRkFMTEJBQ0tfRVhQT1JUX0VSUk9SID0gYFBhZ2VzIHdpdGggXFxgZmFsbGJhY2tcXGAgZW5hYmxlZCBpbiBcXGBnZXRTdGF0aWNQYXRoc1xcYCBjYW4gbm90IGJlIGV4cG9ydGVkLiBTZWUgbW9yZSBpbmZvIGhlcmU6IGh0dHBzOi8vbmV4dGpzLm9yZy9kb2NzL21lc3NhZ2VzL3NzZy1mYWxsYmFjay10cnVlLWV4cG9ydGA7XG5jb25zdCBFU0xJTlRfREVGQVVMVF9ESVJTID0gW1xuICAgICdhcHAnLFxuICAgICdwYWdlcycsXG4gICAgJ2NvbXBvbmVudHMnLFxuICAgICdsaWInLFxuICAgICdzcmMnXG5dO1xuY29uc3QgU0VSVkVSX1JVTlRJTUUgPSB7XG4gICAgZWRnZTogJ2VkZ2UnLFxuICAgIGV4cGVyaW1lbnRhbEVkZ2U6ICdleHBlcmltZW50YWwtZWRnZScsXG4gICAgbm9kZWpzOiAnbm9kZWpzJ1xufTtcbi8qKlxuICogVGhlIG5hbWVzIG9mIHRoZSB3ZWJwYWNrIGxheWVycy4gVGhlc2UgbGF5ZXJzIGFyZSB0aGUgcHJpbWl0aXZlcyBmb3IgdGhlXG4gKiB3ZWJwYWNrIGNodW5rcy5cbiAqLyBjb25zdCBXRUJQQUNLX0xBWUVSU19OQU1FUyA9IHtcbiAgICAvKipcbiAgICogVGhlIGxheWVyIGZvciB0aGUgc2hhcmVkIGNvZGUgYmV0d2VlbiB0aGUgY2xpZW50IGFuZCBzZXJ2ZXIgYnVuZGxlcy5cbiAgICovIHNoYXJlZDogJ3NoYXJlZCcsXG4gICAgLyoqXG4gICAqIFRoZSBsYXllciBmb3Igc2VydmVyLW9ubHkgcnVudGltZSBhbmQgcGlja2luZyB1cCBgcmVhY3Qtc2VydmVyYCBleHBvcnQgY29uZGl0aW9ucy5cbiAgICogSW5jbHVkaW5nIGFwcCByb3V0ZXIgUlNDIHBhZ2VzIGFuZCBhcHAgcm91dGVyIGN1c3RvbSByb3V0ZXMgYW5kIG1ldGFkYXRhIHJvdXRlcy5cbiAgICovIHJlYWN0U2VydmVyQ29tcG9uZW50czogJ3JzYycsXG4gICAgLyoqXG4gICAqIFNlcnZlciBTaWRlIFJlbmRlcmluZyBsYXllciBmb3IgYXBwIChzc3IpLlxuICAgKi8gc2VydmVyU2lkZVJlbmRlcmluZzogJ3NzcicsXG4gICAgLyoqXG4gICAqIFRoZSBicm93c2VyIGNsaWVudCBidW5kbGUgbGF5ZXIgZm9yIGFjdGlvbnMuXG4gICAqLyBhY3Rpb25Ccm93c2VyOiAnYWN0aW9uLWJyb3dzZXInLFxuICAgIC8qKlxuICAgKiBUaGUgTm9kZS5qcyBidW5kbGUgbGF5ZXIgZm9yIHRoZSBBUEkgcm91dGVzLlxuICAgKi8gYXBpTm9kZTogJ2FwaS1ub2RlJyxcbiAgICAvKipcbiAgICogVGhlIEVkZ2UgTGl0ZSBidW5kbGUgbGF5ZXIgZm9yIHRoZSBBUEkgcm91dGVzLlxuICAgKi8gYXBpRWRnZTogJ2FwaS1lZGdlJyxcbiAgICAvKipcbiAgICogVGhlIGxheWVyIGZvciB0aGUgbWlkZGxld2FyZSBjb2RlLlxuICAgKi8gbWlkZGxld2FyZTogJ21pZGRsZXdhcmUnLFxuICAgIC8qKlxuICAgKiBUaGUgbGF5ZXIgZm9yIHRoZSBpbnN0cnVtZW50YXRpb24gaG9va3MuXG4gICAqLyBpbnN0cnVtZW50OiAnaW5zdHJ1bWVudCcsXG4gICAgLyoqXG4gICAqIFRoZSBsYXllciBmb3IgYXNzZXRzIG9uIHRoZSBlZGdlLlxuICAgKi8gZWRnZUFzc2V0OiAnZWRnZS1hc3NldCcsXG4gICAgLyoqXG4gICAqIFRoZSBicm93c2VyIGNsaWVudCBidW5kbGUgbGF5ZXIgZm9yIEFwcCBkaXJlY3RvcnkuXG4gICAqLyBhcHBQYWdlc0Jyb3dzZXI6ICdhcHAtcGFnZXMtYnJvd3NlcicsXG4gICAgLyoqXG4gICAqIFRoZSBicm93c2VyIGNsaWVudCBidW5kbGUgbGF5ZXIgZm9yIFBhZ2VzIGRpcmVjdG9yeS5cbiAgICovIHBhZ2VzRGlyQnJvd3NlcjogJ3BhZ2VzLWRpci1icm93c2VyJyxcbiAgICAvKipcbiAgICogVGhlIEVkZ2UgTGl0ZSBidW5kbGUgbGF5ZXIgZm9yIFBhZ2VzIGRpcmVjdG9yeS5cbiAgICovIHBhZ2VzRGlyRWRnZTogJ3BhZ2VzLWRpci1lZGdlJyxcbiAgICAvKipcbiAgICogVGhlIE5vZGUuanMgYnVuZGxlIGxheWVyIGZvciBQYWdlcyBkaXJlY3RvcnkuXG4gICAqLyBwYWdlc0Rpck5vZGU6ICdwYWdlcy1kaXItbm9kZSdcbn07XG5jb25zdCBXRUJQQUNLX0xBWUVSUyA9IHtcbiAgICAuLi5XRUJQQUNLX0xBWUVSU19OQU1FUyxcbiAgICBHUk9VUDoge1xuICAgICAgICBidWlsdGluUmVhY3Q6IFtcbiAgICAgICAgICAgIFdFQlBBQ0tfTEFZRVJTX05BTUVTLnJlYWN0U2VydmVyQ29tcG9uZW50cyxcbiAgICAgICAgICAgIFdFQlBBQ0tfTEFZRVJTX05BTUVTLmFjdGlvbkJyb3dzZXJcbiAgICAgICAgXSxcbiAgICAgICAgc2VydmVyT25seTogW1xuICAgICAgICAgICAgV0VCUEFDS19MQVlFUlNfTkFNRVMucmVhY3RTZXJ2ZXJDb21wb25lbnRzLFxuICAgICAgICAgICAgV0VCUEFDS19MQVlFUlNfTkFNRVMuYWN0aW9uQnJvd3NlcixcbiAgICAgICAgICAgIFdFQlBBQ0tfTEFZRVJTX05BTUVTLmluc3RydW1lbnQsXG4gICAgICAgICAgICBXRUJQQUNLX0xBWUVSU19OQU1FUy5taWRkbGV3YXJlXG4gICAgICAgIF0sXG4gICAgICAgIG5ldXRyYWxUYXJnZXQ6IFtcbiAgICAgICAgICAgIC8vIHBhZ2VzIGFwaVxuICAgICAgICAgICAgV0VCUEFDS19MQVlFUlNfTkFNRVMuYXBpTm9kZSxcbiAgICAgICAgICAgIFdFQlBBQ0tfTEFZRVJTX05BTUVTLmFwaUVkZ2VcbiAgICAgICAgXSxcbiAgICAgICAgY2xpZW50T25seTogW1xuICAgICAgICAgICAgV0VCUEFDS19MQVlFUlNfTkFNRVMuc2VydmVyU2lkZVJlbmRlcmluZyxcbiAgICAgICAgICAgIFdFQlBBQ0tfTEFZRVJTX05BTUVTLmFwcFBhZ2VzQnJvd3NlclxuICAgICAgICBdLFxuICAgICAgICBidW5kbGVkOiBbXG4gICAgICAgICAgICBXRUJQQUNLX0xBWUVSU19OQU1FUy5yZWFjdFNlcnZlckNvbXBvbmVudHMsXG4gICAgICAgICAgICBXRUJQQUNLX0xBWUVSU19OQU1FUy5hY3Rpb25Ccm93c2VyLFxuICAgICAgICAgICAgV0VCUEFDS19MQVlFUlNfTkFNRVMuc2VydmVyU2lkZVJlbmRlcmluZyxcbiAgICAgICAgICAgIFdFQlBBQ0tfTEFZRVJTX05BTUVTLmFwcFBhZ2VzQnJvd3NlcixcbiAgICAgICAgICAgIFdFQlBBQ0tfTEFZRVJTX05BTUVTLnNoYXJlZCxcbiAgICAgICAgICAgIFdFQlBBQ0tfTEFZRVJTX05BTUVTLmluc3RydW1lbnQsXG4gICAgICAgICAgICBXRUJQQUNLX0xBWUVSU19OQU1FUy5taWRkbGV3YXJlXG4gICAgICAgIF0sXG4gICAgICAgIGFwcFBhZ2VzOiBbXG4gICAgICAgICAgICAvLyBhcHAgcm91dGVyIHBhZ2VzIGFuZCBsYXlvdXRzXG4gICAgICAgICAgICBXRUJQQUNLX0xBWUVSU19OQU1FUy5yZWFjdFNlcnZlckNvbXBvbmVudHMsXG4gICAgICAgICAgICBXRUJQQUNLX0xBWUVSU19OQU1FUy5zZXJ2ZXJTaWRlUmVuZGVyaW5nLFxuICAgICAgICAgICAgV0VCUEFDS19MQVlFUlNfTkFNRVMuYXBwUGFnZXNCcm93c2VyLFxuICAgICAgICAgICAgV0VCUEFDS19MQVlFUlNfTkFNRVMuYWN0aW9uQnJvd3NlclxuICAgICAgICBdXG4gICAgfVxufTtcbmNvbnN0IFdFQlBBQ0tfUkVTT1VSQ0VfUVVFUklFUyA9IHtcbiAgICBlZGdlU1NSRW50cnk6ICdfX25leHRfZWRnZV9zc3JfZW50cnlfXycsXG4gICAgbWV0YWRhdGE6ICdfX25leHRfbWV0YWRhdGFfXycsXG4gICAgbWV0YWRhdGFSb3V0ZTogJ19fbmV4dF9tZXRhZGF0YV9yb3V0ZV9fJyxcbiAgICBtZXRhZGF0YUltYWdlTWV0YTogJ19fbmV4dF9tZXRhZGF0YV9pbWFnZV9tZXRhX18nXG59O1xuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1jb25zdGFudHMuanMubWFwIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(pages-dir-browser)/./node_modules/next/dist/lib/constants.js\n")); - -/***/ }), - -/***/ "(pages-dir-browser)/./node_modules/next/dist/lib/is-api-route.js": -/*!****************************************************!*\ - !*** ./node_modules/next/dist/lib/is-api-route.js ***! - \****************************************************/ -/***/ ((__unused_webpack_module, exports, __webpack_require__) => { - -"use strict"; -eval(__webpack_require__.ts("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"isAPIRoute\", ({\n enumerable: true,\n get: function() {\n return isAPIRoute;\n }\n}));\nfunction isAPIRoute(value) {\n return value === '/api' || Boolean(value == null ? void 0 : value.startsWith('/api/'));\n}\n\n//# sourceMappingURL=is-api-route.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvbGliL2lzLWFwaS1yb3V0ZS5qcyIsIm1hcHBpbmdzIjoiQUFBYTtBQUNiLDhDQUE2QztBQUM3QztBQUNBLENBQUMsRUFBQztBQUNGLDhDQUE2QztBQUM3QztBQUNBO0FBQ0E7QUFDQTtBQUNBLENBQUMsRUFBQztBQUNGO0FBQ0E7QUFDQTs7QUFFQSIsInNvdXJjZXMiOlsiRDpcXGRvbmd5dW4tcHJvamVjdHNcXHR3b1xcbm9kZV9tb2R1bGVzXFxuZXh0XFxkaXN0XFxsaWJcXGlzLWFwaS1yb3V0ZS5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwge1xuICAgIHZhbHVlOiB0cnVlXG59KTtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcImlzQVBJUm91dGVcIiwge1xuICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgZ2V0OiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIGlzQVBJUm91dGU7XG4gICAgfVxufSk7XG5mdW5jdGlvbiBpc0FQSVJvdXRlKHZhbHVlKSB7XG4gICAgcmV0dXJuIHZhbHVlID09PSAnL2FwaScgfHwgQm9vbGVhbih2YWx1ZSA9PSBudWxsID8gdm9pZCAwIDogdmFsdWUuc3RhcnRzV2l0aCgnL2FwaS8nKSk7XG59XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWlzLWFwaS1yb3V0ZS5qcy5tYXAiXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(pages-dir-browser)/./node_modules/next/dist/lib/is-api-route.js\n")); - -/***/ }), - -/***/ "(pages-dir-browser)/./node_modules/next/dist/lib/is-error.js": -/*!************************************************!*\ - !*** ./node_modules/next/dist/lib/is-error.js ***! - \************************************************/ -/***/ ((__unused_webpack_module, exports, __webpack_require__) => { - -"use strict"; -eval(__webpack_require__.ts("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n /**\n * Checks whether the given value is a NextError.\n * This can be used to print a more detailed error message with properties like `code` & `digest`.\n */ default: function() {\n return isError;\n },\n getProperError: function() {\n return getProperError;\n }\n});\nconst _isplainobject = __webpack_require__(/*! ../shared/lib/is-plain-object */ \"(pages-dir-browser)/./node_modules/next/dist/shared/lib/is-plain-object.js\");\nfunction isError(err) {\n return typeof err === 'object' && err !== null && 'name' in err && 'message' in err;\n}\nfunction safeStringify(obj) {\n const seen = new WeakSet();\n return JSON.stringify(obj, (_key, value)=>{\n // If value is an object and already seen, replace with \"[Circular]\"\n if (typeof value === 'object' && value !== null) {\n if (seen.has(value)) {\n return '[Circular]';\n }\n seen.add(value);\n }\n return value;\n });\n}\nfunction getProperError(err) {\n if (isError(err)) {\n return err;\n }\n if (true) {\n // provide better error for case where `throw undefined`\n // is called in development\n if (typeof err === 'undefined') {\n return Object.defineProperty(new Error('An undefined error was thrown, ' + 'see here for more info: https://nextjs.org/docs/messages/threw-undefined'), \"__NEXT_ERROR_CODE\", {\n value: \"E98\",\n enumerable: false,\n configurable: true\n });\n }\n if (err === null) {\n return Object.defineProperty(new Error('A null error was thrown, ' + 'see here for more info: https://nextjs.org/docs/messages/threw-undefined'), \"__NEXT_ERROR_CODE\", {\n value: \"E336\",\n enumerable: false,\n configurable: true\n });\n }\n }\n return Object.defineProperty(new Error((0, _isplainobject.isPlainObject)(err) ? safeStringify(err) : err + ''), \"__NEXT_ERROR_CODE\", {\n value: \"E394\",\n enumerable: false,\n configurable: true\n });\n}\n\n//# sourceMappingURL=is-error.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvbGliL2lzLWVycm9yLmpzIiwibWFwcGluZ3MiOiJBQUFhO0FBQ2IsOENBQTZDO0FBQzdDO0FBQ0EsQ0FBQyxFQUFDO0FBQ0YsTUFBTSxDQUdMO0FBQ0Q7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0EsQ0FBQztBQUNELHVCQUF1QixtQkFBTyxDQUFDLGlIQUErQjtBQUM5RDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxRQUFRLElBQXNDO0FBQzlDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsYUFBYTtBQUNiO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGFBQWE7QUFDYjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7O0FBRUEiLCJzb3VyY2VzIjpbIkQ6XFxkb25neXVuLXByb2plY3RzXFx0d29cXG5vZGVfbW9kdWxlc1xcbmV4dFxcZGlzdFxcbGliXFxpcy1lcnJvci5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwge1xuICAgIHZhbHVlOiB0cnVlXG59KTtcbjAgJiYgKG1vZHVsZS5leHBvcnRzID0ge1xuICAgIGRlZmF1bHQ6IG51bGwsXG4gICAgZ2V0UHJvcGVyRXJyb3I6IG51bGxcbn0pO1xuZnVuY3Rpb24gX2V4cG9ydCh0YXJnZXQsIGFsbCkge1xuICAgIGZvcih2YXIgbmFtZSBpbiBhbGwpT2JqZWN0LmRlZmluZVByb3BlcnR5KHRhcmdldCwgbmFtZSwge1xuICAgICAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgICAgICBnZXQ6IGFsbFtuYW1lXVxuICAgIH0pO1xufVxuX2V4cG9ydChleHBvcnRzLCB7XG4gICAgLyoqXG4gKiBDaGVja3Mgd2hldGhlciB0aGUgZ2l2ZW4gdmFsdWUgaXMgYSBOZXh0RXJyb3IuXG4gKiBUaGlzIGNhbiBiZSB1c2VkIHRvIHByaW50IGEgbW9yZSBkZXRhaWxlZCBlcnJvciBtZXNzYWdlIHdpdGggcHJvcGVydGllcyBsaWtlIGBjb2RlYCAmIGBkaWdlc3RgLlxuICovIGRlZmF1bHQ6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gaXNFcnJvcjtcbiAgICB9LFxuICAgIGdldFByb3BlckVycm9yOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIGdldFByb3BlckVycm9yO1xuICAgIH1cbn0pO1xuY29uc3QgX2lzcGxhaW5vYmplY3QgPSByZXF1aXJlKFwiLi4vc2hhcmVkL2xpYi9pcy1wbGFpbi1vYmplY3RcIik7XG5mdW5jdGlvbiBpc0Vycm9yKGVycikge1xuICAgIHJldHVybiB0eXBlb2YgZXJyID09PSAnb2JqZWN0JyAmJiBlcnIgIT09IG51bGwgJiYgJ25hbWUnIGluIGVyciAmJiAnbWVzc2FnZScgaW4gZXJyO1xufVxuZnVuY3Rpb24gc2FmZVN0cmluZ2lmeShvYmopIHtcbiAgICBjb25zdCBzZWVuID0gbmV3IFdlYWtTZXQoKTtcbiAgICByZXR1cm4gSlNPTi5zdHJpbmdpZnkob2JqLCAoX2tleSwgdmFsdWUpPT57XG4gICAgICAgIC8vIElmIHZhbHVlIGlzIGFuIG9iamVjdCBhbmQgYWxyZWFkeSBzZWVuLCByZXBsYWNlIHdpdGggXCJbQ2lyY3VsYXJdXCJcbiAgICAgICAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gJ29iamVjdCcgJiYgdmFsdWUgIT09IG51bGwpIHtcbiAgICAgICAgICAgIGlmIChzZWVuLmhhcyh2YWx1ZSkpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gJ1tDaXJjdWxhcl0nO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgc2Vlbi5hZGQodmFsdWUpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB2YWx1ZTtcbiAgICB9KTtcbn1cbmZ1bmN0aW9uIGdldFByb3BlckVycm9yKGVycikge1xuICAgIGlmIChpc0Vycm9yKGVycikpIHtcbiAgICAgICAgcmV0dXJuIGVycjtcbiAgICB9XG4gICAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WID09PSAnZGV2ZWxvcG1lbnQnKSB7XG4gICAgICAgIC8vIHByb3ZpZGUgYmV0dGVyIGVycm9yIGZvciBjYXNlIHdoZXJlIGB0aHJvdyB1bmRlZmluZWRgXG4gICAgICAgIC8vIGlzIGNhbGxlZCBpbiBkZXZlbG9wbWVudFxuICAgICAgICBpZiAodHlwZW9mIGVyciA9PT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgICAgICAgIHJldHVybiBPYmplY3QuZGVmaW5lUHJvcGVydHkobmV3IEVycm9yKCdBbiB1bmRlZmluZWQgZXJyb3Igd2FzIHRocm93biwgJyArICdzZWUgaGVyZSBmb3IgbW9yZSBpbmZvOiBodHRwczovL25leHRqcy5vcmcvZG9jcy9tZXNzYWdlcy90aHJldy11bmRlZmluZWQnKSwgXCJfX05FWFRfRVJST1JfQ09ERVwiLCB7XG4gICAgICAgICAgICAgICAgdmFsdWU6IFwiRTk4XCIsXG4gICAgICAgICAgICAgICAgZW51bWVyYWJsZTogZmFsc2UsXG4gICAgICAgICAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoZXJyID09PSBudWxsKSB7XG4gICAgICAgICAgICByZXR1cm4gT2JqZWN0LmRlZmluZVByb3BlcnR5KG5ldyBFcnJvcignQSBudWxsIGVycm9yIHdhcyB0aHJvd24sICcgKyAnc2VlIGhlcmUgZm9yIG1vcmUgaW5mbzogaHR0cHM6Ly9uZXh0anMub3JnL2RvY3MvbWVzc2FnZXMvdGhyZXctdW5kZWZpbmVkJyksIFwiX19ORVhUX0VSUk9SX0NPREVcIiwge1xuICAgICAgICAgICAgICAgIHZhbHVlOiBcIkUzMzZcIixcbiAgICAgICAgICAgICAgICBlbnVtZXJhYmxlOiBmYWxzZSxcbiAgICAgICAgICAgICAgICBjb25maWd1cmFibGU6IHRydWVcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgfVxuICAgIHJldHVybiBPYmplY3QuZGVmaW5lUHJvcGVydHkobmV3IEVycm9yKCgwLCBfaXNwbGFpbm9iamVjdC5pc1BsYWluT2JqZWN0KShlcnIpID8gc2FmZVN0cmluZ2lmeShlcnIpIDogZXJyICsgJycpLCBcIl9fTkVYVF9FUlJPUl9DT0RFXCIsIHtcbiAgICAgICAgdmFsdWU6IFwiRTM5NFwiLFxuICAgICAgICBlbnVtZXJhYmxlOiBmYWxzZSxcbiAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlXG4gICAgfSk7XG59XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWlzLWVycm9yLmpzLm1hcCJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(pages-dir-browser)/./node_modules/next/dist/lib/is-error.js\n")); - -/***/ }), - -/***/ "(pages-dir-browser)/./node_modules/next/dist/lib/require-instrumentation-client.js": -/*!**********************************************************************!*\ - !*** ./node_modules/next/dist/lib/require-instrumentation-client.js ***! - \**********************************************************************/ -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { - -"use strict"; -eval(__webpack_require__.ts("/**\n * This module imports the client instrumentation hook from the project root.\n *\n * The `private-next-instrumentation-client` module is automatically aliased to\n * the `instrumentation-client.ts` file in the project root by webpack or turbopack.\n */ \nif (true) {\n const measureName = 'Client Instrumentation Hook';\n const startTime = performance.now();\n // eslint-disable-next-line @next/internal/typechecked-require -- Not a module.\n module.exports = __webpack_require__(/*! private-next-instrumentation-client */ \"?608e\");\n const endTime = performance.now();\n const duration = endTime - startTime;\n // Using 16ms threshold as it represents one frame (1000ms/60fps)\n // This helps identify if the instrumentation hook initialization\n // could potentially cause frame drops during development.\n const THRESHOLD = 16;\n if (duration > THRESHOLD) {\n console.log(`[${measureName}] Slow execution detected: ${duration.toFixed(0)}ms (Note: Code download overhead is not included in this measurement)`);\n }\n} else {}\n\n//# sourceMappingURL=require-instrumentation-client.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvbGliL3JlcXVpcmUtaW5zdHJ1bWVudGF0aW9uLWNsaWVudC5qcyIsIm1hcHBpbmdzIjoiQUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsSUFBaUI7QUFDakIsSUFBSSxJQUFzQztBQUMxQztBQUNBO0FBQ0E7QUFDQSxJQUFJLHdGQUErRDtBQUNuRTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHdCQUF3QixZQUFZLDZCQUE2QixvQkFBb0I7QUFDckY7QUFDQSxFQUFFLEtBQUssRUFHTjs7QUFFRCIsInNvdXJjZXMiOlsiRDpcXGRvbmd5dW4tcHJvamVjdHNcXHR3b1xcbm9kZV9tb2R1bGVzXFxuZXh0XFxkaXN0XFxsaWJcXHJlcXVpcmUtaW5zdHJ1bWVudGF0aW9uLWNsaWVudC5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIFRoaXMgbW9kdWxlIGltcG9ydHMgdGhlIGNsaWVudCBpbnN0cnVtZW50YXRpb24gaG9vayBmcm9tIHRoZSBwcm9qZWN0IHJvb3QuXG4gKlxuICogVGhlIGBwcml2YXRlLW5leHQtaW5zdHJ1bWVudGF0aW9uLWNsaWVudGAgbW9kdWxlIGlzIGF1dG9tYXRpY2FsbHkgYWxpYXNlZCB0b1xuICogdGhlIGBpbnN0cnVtZW50YXRpb24tY2xpZW50LnRzYCBmaWxlIGluIHRoZSBwcm9qZWN0IHJvb3QgYnkgd2VicGFjayBvciB0dXJib3BhY2suXG4gKi8gXCJ1c2Ugc3RyaWN0XCI7XG5pZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgPT09ICdkZXZlbG9wbWVudCcpIHtcbiAgICBjb25zdCBtZWFzdXJlTmFtZSA9ICdDbGllbnQgSW5zdHJ1bWVudGF0aW9uIEhvb2snO1xuICAgIGNvbnN0IHN0YXJ0VGltZSA9IHBlcmZvcm1hbmNlLm5vdygpO1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAbmV4dC9pbnRlcm5hbC90eXBlY2hlY2tlZC1yZXF1aXJlIC0tIE5vdCBhIG1vZHVsZS5cbiAgICBtb2R1bGUuZXhwb3J0cyA9IHJlcXVpcmUoJ3ByaXZhdGUtbmV4dC1pbnN0cnVtZW50YXRpb24tY2xpZW50Jyk7XG4gICAgY29uc3QgZW5kVGltZSA9IHBlcmZvcm1hbmNlLm5vdygpO1xuICAgIGNvbnN0IGR1cmF0aW9uID0gZW5kVGltZSAtIHN0YXJ0VGltZTtcbiAgICAvLyBVc2luZyAxNm1zIHRocmVzaG9sZCBhcyBpdCByZXByZXNlbnRzIG9uZSBmcmFtZSAoMTAwMG1zLzYwZnBzKVxuICAgIC8vIFRoaXMgaGVscHMgaWRlbnRpZnkgaWYgdGhlIGluc3RydW1lbnRhdGlvbiBob29rIGluaXRpYWxpemF0aW9uXG4gICAgLy8gY291bGQgcG90ZW50aWFsbHkgY2F1c2UgZnJhbWUgZHJvcHMgZHVyaW5nIGRldmVsb3BtZW50LlxuICAgIGNvbnN0IFRIUkVTSE9MRCA9IDE2O1xuICAgIGlmIChkdXJhdGlvbiA+IFRIUkVTSE9MRCkge1xuICAgICAgICBjb25zb2xlLmxvZyhgWyR7bWVhc3VyZU5hbWV9XSBTbG93IGV4ZWN1dGlvbiBkZXRlY3RlZDogJHtkdXJhdGlvbi50b0ZpeGVkKDApfW1zIChOb3RlOiBDb2RlIGRvd25sb2FkIG92ZXJoZWFkIGlzIG5vdCBpbmNsdWRlZCBpbiB0aGlzIG1lYXN1cmVtZW50KWApO1xuICAgIH1cbn0gZWxzZSB7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBuZXh0L2ludGVybmFsL3R5cGVjaGVja2VkLXJlcXVpcmUgLS0gTm90IGEgbW9kdWxlLlxuICAgIG1vZHVsZS5leHBvcnRzID0gcmVxdWlyZSgncHJpdmF0ZS1uZXh0LWluc3RydW1lbnRhdGlvbi1jbGllbnQnKTtcbn1cblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9cmVxdWlyZS1pbnN0cnVtZW50YXRpb24tY2xpZW50LmpzLm1hcCJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(pages-dir-browser)/./node_modules/next/dist/lib/require-instrumentation-client.js\n")); - -/***/ }), - -/***/ "(pages-dir-browser)/./node_modules/next/dist/next-devtools/shared/forward-logs-shared.js": -/*!****************************************************************************!*\ - !*** ./node_modules/next/dist/next-devtools/shared/forward-logs-shared.js ***! - \****************************************************************************/ -/***/ ((module, exports, __webpack_require__) => { - -"use strict"; -eval(__webpack_require__.ts("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n UNDEFINED_MARKER: function() {\n return UNDEFINED_MARKER;\n },\n patchConsoleMethod: function() {\n return patchConsoleMethod;\n }\n});\nconst UNDEFINED_MARKER = '__next_tagged_undefined';\nfunction patchConsoleMethod(methodName, wrapper) {\n const descriptor = Object.getOwnPropertyDescriptor(console, methodName);\n if (descriptor && (descriptor.configurable || descriptor.writable) && typeof descriptor.value === 'function') {\n const originalMethod = descriptor.value;\n const originalName = Object.getOwnPropertyDescriptor(originalMethod, 'name');\n const wrapperMethod = function() {\n for(var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++){\n args[_key] = arguments[_key];\n }\n wrapper(methodName, ...args);\n originalMethod.apply(this, args);\n };\n if (originalName) {\n Object.defineProperty(wrapperMethod, 'name', originalName);\n }\n Object.defineProperty(console, methodName, {\n value: wrapperMethod\n });\n return ()=>{\n Object.defineProperty(console, methodName, {\n value: originalMethod,\n writable: descriptor.writable,\n configurable: descriptor.configurable\n });\n };\n }\n return ()=>{};\n}\n\nif ((typeof exports.default === 'function' || (typeof exports.default === 'object' && exports.default !== null)) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', { value: true });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n}\n\n//# sourceMappingURL=forward-logs-shared.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvbmV4dC1kZXZ0b29scy9zaGFyZWQvZm9yd2FyZC1sb2dzLXNoYXJlZC5qcyIsIm1hcHBpbmdzIjoiQUFBYTtBQUNiLDhDQUE2QztBQUM3QztBQUNBLENBQUMsRUFBQztBQUNGLE1BQU0sQ0FHTDtBQUNEO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBLENBQUM7QUFDRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLCtFQUErRSxhQUFhO0FBQzVGO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxhQUFhO0FBQ2I7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQSx5REFBeUQsYUFBYTtBQUN0RTtBQUNBO0FBQ0E7O0FBRUEiLCJzb3VyY2VzIjpbIkQ6XFxkb25neXVuLXByb2plY3RzXFx0d29cXG5vZGVfbW9kdWxlc1xcbmV4dFxcZGlzdFxcbmV4dC1kZXZ0b29sc1xcc2hhcmVkXFxmb3J3YXJkLWxvZ3Mtc2hhcmVkLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7XG4gICAgdmFsdWU6IHRydWVcbn0pO1xuMCAmJiAobW9kdWxlLmV4cG9ydHMgPSB7XG4gICAgVU5ERUZJTkVEX01BUktFUjogbnVsbCxcbiAgICBwYXRjaENvbnNvbGVNZXRob2Q6IG51bGxcbn0pO1xuZnVuY3Rpb24gX2V4cG9ydCh0YXJnZXQsIGFsbCkge1xuICAgIGZvcih2YXIgbmFtZSBpbiBhbGwpT2JqZWN0LmRlZmluZVByb3BlcnR5KHRhcmdldCwgbmFtZSwge1xuICAgICAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgICAgICBnZXQ6IGFsbFtuYW1lXVxuICAgIH0pO1xufVxuX2V4cG9ydChleHBvcnRzLCB7XG4gICAgVU5ERUZJTkVEX01BUktFUjogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBVTkRFRklORURfTUFSS0VSO1xuICAgIH0sXG4gICAgcGF0Y2hDb25zb2xlTWV0aG9kOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIHBhdGNoQ29uc29sZU1ldGhvZDtcbiAgICB9XG59KTtcbmNvbnN0IFVOREVGSU5FRF9NQVJLRVIgPSAnX19uZXh0X3RhZ2dlZF91bmRlZmluZWQnO1xuZnVuY3Rpb24gcGF0Y2hDb25zb2xlTWV0aG9kKG1ldGhvZE5hbWUsIHdyYXBwZXIpIHtcbiAgICBjb25zdCBkZXNjcmlwdG9yID0gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihjb25zb2xlLCBtZXRob2ROYW1lKTtcbiAgICBpZiAoZGVzY3JpcHRvciAmJiAoZGVzY3JpcHRvci5jb25maWd1cmFibGUgfHwgZGVzY3JpcHRvci53cml0YWJsZSkgJiYgdHlwZW9mIGRlc2NyaXB0b3IudmFsdWUgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgY29uc3Qgb3JpZ2luYWxNZXRob2QgPSBkZXNjcmlwdG9yLnZhbHVlO1xuICAgICAgICBjb25zdCBvcmlnaW5hbE5hbWUgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKG9yaWdpbmFsTWV0aG9kLCAnbmFtZScpO1xuICAgICAgICBjb25zdCB3cmFwcGVyTWV0aG9kID0gZnVuY3Rpb24oKSB7XG4gICAgICAgICAgICBmb3IodmFyIF9sZW4gPSBhcmd1bWVudHMubGVuZ3RoLCBhcmdzID0gbmV3IEFycmF5KF9sZW4pLCBfa2V5ID0gMDsgX2tleSA8IF9sZW47IF9rZXkrKyl7XG4gICAgICAgICAgICAgICAgYXJnc1tfa2V5XSA9IGFyZ3VtZW50c1tfa2V5XTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHdyYXBwZXIobWV0aG9kTmFtZSwgLi4uYXJncyk7XG4gICAgICAgICAgICBvcmlnaW5hbE1ldGhvZC5hcHBseSh0aGlzLCBhcmdzKTtcbiAgICAgICAgfTtcbiAgICAgICAgaWYgKG9yaWdpbmFsTmFtZSkge1xuICAgICAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHdyYXBwZXJNZXRob2QsICduYW1lJywgb3JpZ2luYWxOYW1lKTtcbiAgICAgICAgfVxuICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoY29uc29sZSwgbWV0aG9kTmFtZSwge1xuICAgICAgICAgICAgdmFsdWU6IHdyYXBwZXJNZXRob2RcbiAgICAgICAgfSk7XG4gICAgICAgIHJldHVybiAoKT0+e1xuICAgICAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGNvbnNvbGUsIG1ldGhvZE5hbWUsIHtcbiAgICAgICAgICAgICAgICB2YWx1ZTogb3JpZ2luYWxNZXRob2QsXG4gICAgICAgICAgICAgICAgd3JpdGFibGU6IGRlc2NyaXB0b3Iud3JpdGFibGUsXG4gICAgICAgICAgICAgICAgY29uZmlndXJhYmxlOiBkZXNjcmlwdG9yLmNvbmZpZ3VyYWJsZVxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH07XG4gICAgfVxuICAgIHJldHVybiAoKT0+e307XG59XG5cbmlmICgodHlwZW9mIGV4cG9ydHMuZGVmYXVsdCA9PT0gJ2Z1bmN0aW9uJyB8fCAodHlwZW9mIGV4cG9ydHMuZGVmYXVsdCA9PT0gJ29iamVjdCcgJiYgZXhwb3J0cy5kZWZhdWx0ICE9PSBudWxsKSkgJiYgdHlwZW9mIGV4cG9ydHMuZGVmYXVsdC5fX2VzTW9kdWxlID09PSAndW5kZWZpbmVkJykge1xuICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cy5kZWZhdWx0LCAnX19lc01vZHVsZScsIHsgdmFsdWU6IHRydWUgfSk7XG4gIE9iamVjdC5hc3NpZ24oZXhwb3J0cy5kZWZhdWx0LCBleHBvcnRzKTtcbiAgbW9kdWxlLmV4cG9ydHMgPSBleHBvcnRzLmRlZmF1bHQ7XG59XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWZvcndhcmQtbG9ncy1zaGFyZWQuanMubWFwIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(pages-dir-browser)/./node_modules/next/dist/next-devtools/shared/forward-logs-shared.js\n")); - -/***/ }), - -/***/ "(pages-dir-browser)/./node_modules/next/dist/next-devtools/shared/react-18-hydration-error.js": -/*!*********************************************************************************!*\ - !*** ./node_modules/next/dist/next-devtools/shared/react-18-hydration-error.js ***! - \*********************************************************************************/ -/***/ ((module, exports, __webpack_require__) => { - -"use strict"; -eval(__webpack_require__.ts("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n getHydrationWarningType: function() {\n return getHydrationWarningType;\n },\n isHydrationError: function() {\n return isHydrationError;\n },\n isHydrationWarning: function() {\n return isHydrationWarning;\n }\n});\nconst _interop_require_default = __webpack_require__(/*! @swc/helpers/_/_interop_require_default */ \"(pages-dir-browser)/./node_modules/@swc/helpers/esm/_interop_require_default.js\");\nconst _iserror = /*#__PURE__*/ _interop_require_default._(__webpack_require__(/*! ../../lib/is-error */ \"(pages-dir-browser)/./node_modules/next/dist/lib/is-error.js\"));\nfunction isHydrationError(error) {\n return (0, _iserror.default)(error) && (error.message === 'Hydration failed because the initial UI does not match what was rendered on the server.' || error.message === 'Text content does not match server-rendered HTML.');\n}\nfunction isHydrationWarning(message) {\n return isHtmlTagsWarning(message) || isTextInTagsMismatchWarning(message) || isTextWarning(message);\n}\n// https://github.com/facebook/react/blob/main/packages/react-dom/src/__tests__/ReactDOMHydrationDiff-test.js used as a reference\nconst htmlTagsWarnings = new Set([\n 'Warning: Expected server HTML to contain a matching <%s> in <%s>.%s',\n 'Warning: Did not expect server HTML to contain a <%s> in <%s>.%s'\n]);\nconst textAndTagsMismatchWarnings = new Set([\n 'Warning: Expected server HTML to contain a matching text node for \"%s\" in <%s>.%s',\n 'Warning: Did not expect server HTML to contain the text node \"%s\" in <%s>.%s'\n]);\nconst textWarnings = new Set([\n 'Warning: Text content did not match. Server: \"%s\" Client: \"%s\"%s'\n]);\nconst getHydrationWarningType = (message)=>{\n if (typeof message !== 'string') {\n // TODO: Doesn't make sense to treat no message as a hydration error message.\n // We should bail out somewhere earlier.\n return 'text';\n }\n const normalizedMessage = message.startsWith('Warning: ') ? message : \"Warning: \" + message;\n if (isHtmlTagsWarning(normalizedMessage)) return 'tag';\n if (isTextInTagsMismatchWarning(normalizedMessage)) return 'text-in-tag';\n return 'text';\n};\nconst isHtmlTagsWarning = (message)=>typeof message === 'string' && htmlTagsWarnings.has(message);\nconst isTextInTagsMismatchWarning = (msg)=>typeof msg === 'string' && textAndTagsMismatchWarnings.has(msg);\nconst isTextWarning = (msg)=>typeof msg === 'string' && textWarnings.has(msg);\n\nif ((typeof exports.default === 'function' || (typeof exports.default === 'object' && exports.default !== null)) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', { value: true });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n}\n\n//# sourceMappingURL=react-18-hydration-error.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvbmV4dC1kZXZ0b29scy9zaGFyZWQvcmVhY3QtMTgtaHlkcmF0aW9uLWVycm9yLmpzIiwibWFwcGluZ3MiOiJBQUFhO0FBQ2IsOENBQTZDO0FBQzdDO0FBQ0EsQ0FBQyxFQUFDO0FBQ0YsTUFBTSxDQUlMO0FBQ0Q7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQSxDQUFDO0FBQ0QsaUNBQWlDLG1CQUFPLENBQUMsZ0lBQXlDO0FBQ2xGLDBEQUEwRCxtQkFBTyxDQUFDLHdGQUFvQjtBQUN0RjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0EseURBQXlELGFBQWE7QUFDdEU7QUFDQTtBQUNBOztBQUVBIiwic291cmNlcyI6WyJEOlxcZG9uZ3l1bi1wcm9qZWN0c1xcdHdvXFxub2RlX21vZHVsZXNcXG5leHRcXGRpc3RcXG5leHQtZGV2dG9vbHNcXHNoYXJlZFxccmVhY3QtMTgtaHlkcmF0aW9uLWVycm9yLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7XG4gICAgdmFsdWU6IHRydWVcbn0pO1xuMCAmJiAobW9kdWxlLmV4cG9ydHMgPSB7XG4gICAgZ2V0SHlkcmF0aW9uV2FybmluZ1R5cGU6IG51bGwsXG4gICAgaXNIeWRyYXRpb25FcnJvcjogbnVsbCxcbiAgICBpc0h5ZHJhdGlvbldhcm5pbmc6IG51bGxcbn0pO1xuZnVuY3Rpb24gX2V4cG9ydCh0YXJnZXQsIGFsbCkge1xuICAgIGZvcih2YXIgbmFtZSBpbiBhbGwpT2JqZWN0LmRlZmluZVByb3BlcnR5KHRhcmdldCwgbmFtZSwge1xuICAgICAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgICAgICBnZXQ6IGFsbFtuYW1lXVxuICAgIH0pO1xufVxuX2V4cG9ydChleHBvcnRzLCB7XG4gICAgZ2V0SHlkcmF0aW9uV2FybmluZ1R5cGU6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gZ2V0SHlkcmF0aW9uV2FybmluZ1R5cGU7XG4gICAgfSxcbiAgICBpc0h5ZHJhdGlvbkVycm9yOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIGlzSHlkcmF0aW9uRXJyb3I7XG4gICAgfSxcbiAgICBpc0h5ZHJhdGlvbldhcm5pbmc6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gaXNIeWRyYXRpb25XYXJuaW5nO1xuICAgIH1cbn0pO1xuY29uc3QgX2ludGVyb3BfcmVxdWlyZV9kZWZhdWx0ID0gcmVxdWlyZShcIkBzd2MvaGVscGVycy9fL19pbnRlcm9wX3JlcXVpcmVfZGVmYXVsdFwiKTtcbmNvbnN0IF9pc2Vycm9yID0gLyojX19QVVJFX18qLyBfaW50ZXJvcF9yZXF1aXJlX2RlZmF1bHQuXyhyZXF1aXJlKFwiLi4vLi4vbGliL2lzLWVycm9yXCIpKTtcbmZ1bmN0aW9uIGlzSHlkcmF0aW9uRXJyb3IoZXJyb3IpIHtcbiAgICByZXR1cm4gKDAsIF9pc2Vycm9yLmRlZmF1bHQpKGVycm9yKSAmJiAoZXJyb3IubWVzc2FnZSA9PT0gJ0h5ZHJhdGlvbiBmYWlsZWQgYmVjYXVzZSB0aGUgaW5pdGlhbCBVSSBkb2VzIG5vdCBtYXRjaCB3aGF0IHdhcyByZW5kZXJlZCBvbiB0aGUgc2VydmVyLicgfHwgZXJyb3IubWVzc2FnZSA9PT0gJ1RleHQgY29udGVudCBkb2VzIG5vdCBtYXRjaCBzZXJ2ZXItcmVuZGVyZWQgSFRNTC4nKTtcbn1cbmZ1bmN0aW9uIGlzSHlkcmF0aW9uV2FybmluZyhtZXNzYWdlKSB7XG4gICAgcmV0dXJuIGlzSHRtbFRhZ3NXYXJuaW5nKG1lc3NhZ2UpIHx8IGlzVGV4dEluVGFnc01pc21hdGNoV2FybmluZyhtZXNzYWdlKSB8fCBpc1RleHRXYXJuaW5nKG1lc3NhZ2UpO1xufVxuLy8gaHR0cHM6Ly9naXRodWIuY29tL2ZhY2Vib29rL3JlYWN0L2Jsb2IvbWFpbi9wYWNrYWdlcy9yZWFjdC1kb20vc3JjL19fdGVzdHNfXy9SZWFjdERPTUh5ZHJhdGlvbkRpZmYtdGVzdC5qcyB1c2VkIGFzIGEgcmVmZXJlbmNlXG5jb25zdCBodG1sVGFnc1dhcm5pbmdzID0gbmV3IFNldChbXG4gICAgJ1dhcm5pbmc6IEV4cGVjdGVkIHNlcnZlciBIVE1MIHRvIGNvbnRhaW4gYSBtYXRjaGluZyA8JXM+IGluIDwlcz4uJXMnLFxuICAgICdXYXJuaW5nOiBEaWQgbm90IGV4cGVjdCBzZXJ2ZXIgSFRNTCB0byBjb250YWluIGEgPCVzPiBpbiA8JXM+LiVzJ1xuXSk7XG5jb25zdCB0ZXh0QW5kVGFnc01pc21hdGNoV2FybmluZ3MgPSBuZXcgU2V0KFtcbiAgICAnV2FybmluZzogRXhwZWN0ZWQgc2VydmVyIEhUTUwgdG8gY29udGFpbiBhIG1hdGNoaW5nIHRleHQgbm9kZSBmb3IgXCIlc1wiIGluIDwlcz4uJXMnLFxuICAgICdXYXJuaW5nOiBEaWQgbm90IGV4cGVjdCBzZXJ2ZXIgSFRNTCB0byBjb250YWluIHRoZSB0ZXh0IG5vZGUgXCIlc1wiIGluIDwlcz4uJXMnXG5dKTtcbmNvbnN0IHRleHRXYXJuaW5ncyA9IG5ldyBTZXQoW1xuICAgICdXYXJuaW5nOiBUZXh0IGNvbnRlbnQgZGlkIG5vdCBtYXRjaC4gU2VydmVyOiBcIiVzXCIgQ2xpZW50OiBcIiVzXCIlcydcbl0pO1xuY29uc3QgZ2V0SHlkcmF0aW9uV2FybmluZ1R5cGUgPSAobWVzc2FnZSk9PntcbiAgICBpZiAodHlwZW9mIG1lc3NhZ2UgIT09ICdzdHJpbmcnKSB7XG4gICAgICAgIC8vIFRPRE86IERvZXNuJ3QgbWFrZSBzZW5zZSB0byB0cmVhdCBubyBtZXNzYWdlIGFzIGEgaHlkcmF0aW9uIGVycm9yIG1lc3NhZ2UuXG4gICAgICAgIC8vIFdlIHNob3VsZCBiYWlsIG91dCBzb21ld2hlcmUgZWFybGllci5cbiAgICAgICAgcmV0dXJuICd0ZXh0JztcbiAgICB9XG4gICAgY29uc3Qgbm9ybWFsaXplZE1lc3NhZ2UgPSBtZXNzYWdlLnN0YXJ0c1dpdGgoJ1dhcm5pbmc6ICcpID8gbWVzc2FnZSA6IFwiV2FybmluZzogXCIgKyBtZXNzYWdlO1xuICAgIGlmIChpc0h0bWxUYWdzV2FybmluZyhub3JtYWxpemVkTWVzc2FnZSkpIHJldHVybiAndGFnJztcbiAgICBpZiAoaXNUZXh0SW5UYWdzTWlzbWF0Y2hXYXJuaW5nKG5vcm1hbGl6ZWRNZXNzYWdlKSkgcmV0dXJuICd0ZXh0LWluLXRhZyc7XG4gICAgcmV0dXJuICd0ZXh0Jztcbn07XG5jb25zdCBpc0h0bWxUYWdzV2FybmluZyA9IChtZXNzYWdlKT0+dHlwZW9mIG1lc3NhZ2UgPT09ICdzdHJpbmcnICYmIGh0bWxUYWdzV2FybmluZ3MuaGFzKG1lc3NhZ2UpO1xuY29uc3QgaXNUZXh0SW5UYWdzTWlzbWF0Y2hXYXJuaW5nID0gKG1zZyk9PnR5cGVvZiBtc2cgPT09ICdzdHJpbmcnICYmIHRleHRBbmRUYWdzTWlzbWF0Y2hXYXJuaW5ncy5oYXMobXNnKTtcbmNvbnN0IGlzVGV4dFdhcm5pbmcgPSAobXNnKT0+dHlwZW9mIG1zZyA9PT0gJ3N0cmluZycgJiYgdGV4dFdhcm5pbmdzLmhhcyhtc2cpO1xuXG5pZiAoKHR5cGVvZiBleHBvcnRzLmRlZmF1bHQgPT09ICdmdW5jdGlvbicgfHwgKHR5cGVvZiBleHBvcnRzLmRlZmF1bHQgPT09ICdvYmplY3QnICYmIGV4cG9ydHMuZGVmYXVsdCAhPT0gbnVsbCkpICYmIHR5cGVvZiBleHBvcnRzLmRlZmF1bHQuX19lc01vZHVsZSA9PT0gJ3VuZGVmaW5lZCcpIHtcbiAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMuZGVmYXVsdCwgJ19fZXNNb2R1bGUnLCB7IHZhbHVlOiB0cnVlIH0pO1xuICBPYmplY3QuYXNzaWduKGV4cG9ydHMuZGVmYXVsdCwgZXhwb3J0cyk7XG4gIG1vZHVsZS5leHBvcnRzID0gZXhwb3J0cy5kZWZhdWx0O1xufVxuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1yZWFjdC0xOC1oeWRyYXRpb24tZXJyb3IuanMubWFwIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(pages-dir-browser)/./node_modules/next/dist/next-devtools/shared/react-18-hydration-error.js\n")); - -/***/ }), - -/***/ "(pages-dir-browser)/./node_modules/next/dist/next-devtools/shared/react-19-hydration-error.js": -/*!*********************************************************************************!*\ - !*** ./node_modules/next/dist/next-devtools/shared/react-19-hydration-error.js ***! - \*********************************************************************************/ -/***/ ((module, exports, __webpack_require__) => { - -"use strict"; -eval(__webpack_require__.ts("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n NEXTJS_HYDRATION_ERROR_LINK: function() {\n return NEXTJS_HYDRATION_ERROR_LINK;\n },\n REACT_HYDRATION_ERROR_LINK: function() {\n return REACT_HYDRATION_ERROR_LINK;\n },\n getHydrationErrorStackInfo: function() {\n return getHydrationErrorStackInfo;\n },\n isErrorMessageWithComponentStackDiff: function() {\n return isErrorMessageWithComponentStackDiff;\n },\n isHydrationError: function() {\n return isHydrationError;\n }\n});\nconst REACT_HYDRATION_ERROR_LINK = 'https://react.dev/link/hydration-mismatch';\nconst NEXTJS_HYDRATION_ERROR_LINK = 'https://nextjs.org/docs/messages/react-hydration-error';\n/**\n * Only React 19+ contains component stack diff in the error message\n */ const errorMessagesWithComponentStackDiff = [\n /^In HTML, (.+?) cannot be a child of <(.+?)>\\.(.*)\\nThis will cause a hydration error\\.(.*)/,\n /^In HTML, (.+?) cannot be a descendant of <(.+?)>\\.\\nThis will cause a hydration error\\.(.*)/,\n /^In HTML, text nodes cannot be a child of <(.+?)>\\.\\nThis will cause a hydration error\\./,\n /^In HTML, whitespace text nodes cannot be a child of <(.+?)>\\. Make sure you don't have any extra whitespace between tags on each line of your source code\\.\\nThis will cause a hydration error\\./\n];\nfunction isHydrationError(error) {\n return isErrorMessageWithComponentStackDiff(error.message) || /Hydration failed because the server rendered (text|HTML) didn't match the client\\./.test(error.message) || /A tree hydrated but some attributes of the server rendered HTML didn't match the client properties./.test(error.message);\n}\nfunction isErrorMessageWithComponentStackDiff(msg) {\n return errorMessagesWithComponentStackDiff.some((regex)=>regex.test(msg));\n}\nfunction getHydrationErrorStackInfo(error) {\n const errorMessage = error.message;\n if (isErrorMessageWithComponentStackDiff(errorMessage)) {\n const [message, diffLog = ''] = errorMessage.split('\\n\\n');\n const diff = diffLog.trim();\n return {\n message: diff === '' ? errorMessage.trim() : message.trim(),\n diff,\n notes: null\n };\n }\n const [message, maybeComponentStackDiff] = errorMessage.split(\"\" + REACT_HYDRATION_ERROR_LINK);\n const trimmedMessage = message.trim();\n // React built-in hydration diff starts with a newline\n if (maybeComponentStackDiff !== undefined && maybeComponentStackDiff.length > 1) {\n const diffs = [];\n maybeComponentStackDiff.split('\\n').forEach((line)=>{\n if (line.trim() === '') return;\n if (!line.trim().startsWith('at ')) {\n diffs.push(line);\n }\n });\n const [displayedMessage, ...notes] = trimmedMessage.split('\\n\\n');\n return {\n message: displayedMessage,\n diff: diffs.join('\\n'),\n notes: notes.join('\\n\\n') || null\n };\n } else {\n const [displayedMessage, ...notes] = trimmedMessage.split('\\n\\n');\n return {\n message: displayedMessage,\n diff: null,\n notes: notes.join('\\n\\n')\n };\n }\n}\n\nif ((typeof exports.default === 'function' || (typeof exports.default === 'object' && exports.default !== null)) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', { value: true });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n}\n\n//# sourceMappingURL=react-19-hydration-error.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvbmV4dC1kZXZ0b29scy9zaGFyZWQvcmVhY3QtMTktaHlkcmF0aW9uLWVycm9yLmpzIiwibWFwcGluZ3MiOiJBQUFhO0FBQ2IsOENBQTZDO0FBQzdDO0FBQ0EsQ0FBQyxFQUFDO0FBQ0YsTUFBTSxDQU1MO0FBQ0Q7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0EsQ0FBQztBQUNEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE1BQU07QUFDTjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0EseURBQXlELGFBQWE7QUFDdEU7QUFDQTtBQUNBOztBQUVBIiwic291cmNlcyI6WyJEOlxcZG9uZ3l1bi1wcm9qZWN0c1xcdHdvXFxub2RlX21vZHVsZXNcXG5leHRcXGRpc3RcXG5leHQtZGV2dG9vbHNcXHNoYXJlZFxccmVhY3QtMTktaHlkcmF0aW9uLWVycm9yLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7XG4gICAgdmFsdWU6IHRydWVcbn0pO1xuMCAmJiAobW9kdWxlLmV4cG9ydHMgPSB7XG4gICAgTkVYVEpTX0hZRFJBVElPTl9FUlJPUl9MSU5LOiBudWxsLFxuICAgIFJFQUNUX0hZRFJBVElPTl9FUlJPUl9MSU5LOiBudWxsLFxuICAgIGdldEh5ZHJhdGlvbkVycm9yU3RhY2tJbmZvOiBudWxsLFxuICAgIGlzRXJyb3JNZXNzYWdlV2l0aENvbXBvbmVudFN0YWNrRGlmZjogbnVsbCxcbiAgICBpc0h5ZHJhdGlvbkVycm9yOiBudWxsXG59KTtcbmZ1bmN0aW9uIF9leHBvcnQodGFyZ2V0LCBhbGwpIHtcbiAgICBmb3IodmFyIG5hbWUgaW4gYWxsKU9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0YXJnZXQsIG5hbWUsIHtcbiAgICAgICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICAgICAgZ2V0OiBhbGxbbmFtZV1cbiAgICB9KTtcbn1cbl9leHBvcnQoZXhwb3J0cywge1xuICAgIE5FWFRKU19IWURSQVRJT05fRVJST1JfTElOSzogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBORVhUSlNfSFlEUkFUSU9OX0VSUk9SX0xJTks7XG4gICAgfSxcbiAgICBSRUFDVF9IWURSQVRJT05fRVJST1JfTElOSzogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBSRUFDVF9IWURSQVRJT05fRVJST1JfTElOSztcbiAgICB9LFxuICAgIGdldEh5ZHJhdGlvbkVycm9yU3RhY2tJbmZvOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIGdldEh5ZHJhdGlvbkVycm9yU3RhY2tJbmZvO1xuICAgIH0sXG4gICAgaXNFcnJvck1lc3NhZ2VXaXRoQ29tcG9uZW50U3RhY2tEaWZmOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIGlzRXJyb3JNZXNzYWdlV2l0aENvbXBvbmVudFN0YWNrRGlmZjtcbiAgICB9LFxuICAgIGlzSHlkcmF0aW9uRXJyb3I6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gaXNIeWRyYXRpb25FcnJvcjtcbiAgICB9XG59KTtcbmNvbnN0IFJFQUNUX0hZRFJBVElPTl9FUlJPUl9MSU5LID0gJ2h0dHBzOi8vcmVhY3QuZGV2L2xpbmsvaHlkcmF0aW9uLW1pc21hdGNoJztcbmNvbnN0IE5FWFRKU19IWURSQVRJT05fRVJST1JfTElOSyA9ICdodHRwczovL25leHRqcy5vcmcvZG9jcy9tZXNzYWdlcy9yZWFjdC1oeWRyYXRpb24tZXJyb3InO1xuLyoqXG4gKiBPbmx5IFJlYWN0IDE5KyBjb250YWlucyBjb21wb25lbnQgc3RhY2sgZGlmZiBpbiB0aGUgZXJyb3IgbWVzc2FnZVxuICovIGNvbnN0IGVycm9yTWVzc2FnZXNXaXRoQ29tcG9uZW50U3RhY2tEaWZmID0gW1xuICAgIC9eSW4gSFRNTCwgKC4rPykgY2Fubm90IGJlIGEgY2hpbGQgb2YgPCguKz8pPlxcLiguKilcXG5UaGlzIHdpbGwgY2F1c2UgYSBoeWRyYXRpb24gZXJyb3JcXC4oLiopLyxcbiAgICAvXkluIEhUTUwsICguKz8pIGNhbm5vdCBiZSBhIGRlc2NlbmRhbnQgb2YgPCguKz8pPlxcLlxcblRoaXMgd2lsbCBjYXVzZSBhIGh5ZHJhdGlvbiBlcnJvclxcLiguKikvLFxuICAgIC9eSW4gSFRNTCwgdGV4dCBub2RlcyBjYW5ub3QgYmUgYSBjaGlsZCBvZiA8KC4rPyk+XFwuXFxuVGhpcyB3aWxsIGNhdXNlIGEgaHlkcmF0aW9uIGVycm9yXFwuLyxcbiAgICAvXkluIEhUTUwsIHdoaXRlc3BhY2UgdGV4dCBub2RlcyBjYW5ub3QgYmUgYSBjaGlsZCBvZiA8KC4rPyk+XFwuIE1ha2Ugc3VyZSB5b3UgZG9uJ3QgaGF2ZSBhbnkgZXh0cmEgd2hpdGVzcGFjZSBiZXR3ZWVuIHRhZ3Mgb24gZWFjaCBsaW5lIG9mIHlvdXIgc291cmNlIGNvZGVcXC5cXG5UaGlzIHdpbGwgY2F1c2UgYSBoeWRyYXRpb24gZXJyb3JcXC4vXG5dO1xuZnVuY3Rpb24gaXNIeWRyYXRpb25FcnJvcihlcnJvcikge1xuICAgIHJldHVybiBpc0Vycm9yTWVzc2FnZVdpdGhDb21wb25lbnRTdGFja0RpZmYoZXJyb3IubWVzc2FnZSkgfHwgL0h5ZHJhdGlvbiBmYWlsZWQgYmVjYXVzZSB0aGUgc2VydmVyIHJlbmRlcmVkICh0ZXh0fEhUTUwpIGRpZG4ndCBtYXRjaCB0aGUgY2xpZW50XFwuLy50ZXN0KGVycm9yLm1lc3NhZ2UpIHx8IC9BIHRyZWUgaHlkcmF0ZWQgYnV0IHNvbWUgYXR0cmlidXRlcyBvZiB0aGUgc2VydmVyIHJlbmRlcmVkIEhUTUwgZGlkbid0IG1hdGNoIHRoZSBjbGllbnQgcHJvcGVydGllcy4vLnRlc3QoZXJyb3IubWVzc2FnZSk7XG59XG5mdW5jdGlvbiBpc0Vycm9yTWVzc2FnZVdpdGhDb21wb25lbnRTdGFja0RpZmYobXNnKSB7XG4gICAgcmV0dXJuIGVycm9yTWVzc2FnZXNXaXRoQ29tcG9uZW50U3RhY2tEaWZmLnNvbWUoKHJlZ2V4KT0+cmVnZXgudGVzdChtc2cpKTtcbn1cbmZ1bmN0aW9uIGdldEh5ZHJhdGlvbkVycm9yU3RhY2tJbmZvKGVycm9yKSB7XG4gICAgY29uc3QgZXJyb3JNZXNzYWdlID0gZXJyb3IubWVzc2FnZTtcbiAgICBpZiAoaXNFcnJvck1lc3NhZ2VXaXRoQ29tcG9uZW50U3RhY2tEaWZmKGVycm9yTWVzc2FnZSkpIHtcbiAgICAgICAgY29uc3QgW21lc3NhZ2UsIGRpZmZMb2cgPSAnJ10gPSBlcnJvck1lc3NhZ2Uuc3BsaXQoJ1xcblxcbicpO1xuICAgICAgICBjb25zdCBkaWZmID0gZGlmZkxvZy50cmltKCk7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBtZXNzYWdlOiBkaWZmID09PSAnJyA/IGVycm9yTWVzc2FnZS50cmltKCkgOiBtZXNzYWdlLnRyaW0oKSxcbiAgICAgICAgICAgIGRpZmYsXG4gICAgICAgICAgICBub3RlczogbnVsbFxuICAgICAgICB9O1xuICAgIH1cbiAgICBjb25zdCBbbWVzc2FnZSwgbWF5YmVDb21wb25lbnRTdGFja0RpZmZdID0gZXJyb3JNZXNzYWdlLnNwbGl0KFwiXCIgKyBSRUFDVF9IWURSQVRJT05fRVJST1JfTElOSyk7XG4gICAgY29uc3QgdHJpbW1lZE1lc3NhZ2UgPSBtZXNzYWdlLnRyaW0oKTtcbiAgICAvLyBSZWFjdCBidWlsdC1pbiBoeWRyYXRpb24gZGlmZiBzdGFydHMgd2l0aCBhIG5ld2xpbmVcbiAgICBpZiAobWF5YmVDb21wb25lbnRTdGFja0RpZmYgIT09IHVuZGVmaW5lZCAmJiBtYXliZUNvbXBvbmVudFN0YWNrRGlmZi5sZW5ndGggPiAxKSB7XG4gICAgICAgIGNvbnN0IGRpZmZzID0gW107XG4gICAgICAgIG1heWJlQ29tcG9uZW50U3RhY2tEaWZmLnNwbGl0KCdcXG4nKS5mb3JFYWNoKChsaW5lKT0+e1xuICAgICAgICAgICAgaWYgKGxpbmUudHJpbSgpID09PSAnJykgcmV0dXJuO1xuICAgICAgICAgICAgaWYgKCFsaW5lLnRyaW0oKS5zdGFydHNXaXRoKCdhdCAnKSkge1xuICAgICAgICAgICAgICAgIGRpZmZzLnB1c2gobGluZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgICBjb25zdCBbZGlzcGxheWVkTWVzc2FnZSwgLi4ubm90ZXNdID0gdHJpbW1lZE1lc3NhZ2Uuc3BsaXQoJ1xcblxcbicpO1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgbWVzc2FnZTogZGlzcGxheWVkTWVzc2FnZSxcbiAgICAgICAgICAgIGRpZmY6IGRpZmZzLmpvaW4oJ1xcbicpLFxuICAgICAgICAgICAgbm90ZXM6IG5vdGVzLmpvaW4oJ1xcblxcbicpIHx8IG51bGxcbiAgICAgICAgfTtcbiAgICB9IGVsc2Uge1xuICAgICAgICBjb25zdCBbZGlzcGxheWVkTWVzc2FnZSwgLi4ubm90ZXNdID0gdHJpbW1lZE1lc3NhZ2Uuc3BsaXQoJ1xcblxcbicpO1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgbWVzc2FnZTogZGlzcGxheWVkTWVzc2FnZSxcbiAgICAgICAgICAgIGRpZmY6IG51bGwsXG4gICAgICAgICAgICBub3Rlczogbm90ZXMuam9pbignXFxuXFxuJylcbiAgICAgICAgfTtcbiAgICB9XG59XG5cbmlmICgodHlwZW9mIGV4cG9ydHMuZGVmYXVsdCA9PT0gJ2Z1bmN0aW9uJyB8fCAodHlwZW9mIGV4cG9ydHMuZGVmYXVsdCA9PT0gJ29iamVjdCcgJiYgZXhwb3J0cy5kZWZhdWx0ICE9PSBudWxsKSkgJiYgdHlwZW9mIGV4cG9ydHMuZGVmYXVsdC5fX2VzTW9kdWxlID09PSAndW5kZWZpbmVkJykge1xuICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cy5kZWZhdWx0LCAnX19lc01vZHVsZScsIHsgdmFsdWU6IHRydWUgfSk7XG4gIE9iamVjdC5hc3NpZ24oZXhwb3J0cy5kZWZhdWx0LCBleHBvcnRzKTtcbiAgbW9kdWxlLmV4cG9ydHMgPSBleHBvcnRzLmRlZmF1bHQ7XG59XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPXJlYWN0LTE5LWh5ZHJhdGlvbi1lcnJvci5qcy5tYXAiXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(pages-dir-browser)/./node_modules/next/dist/next-devtools/shared/react-19-hydration-error.js\n")); - -/***/ }), - -/***/ "(pages-dir-browser)/./node_modules/next/dist/next-devtools/userspace/app/errors/stitched-error.js": -/*!*************************************************************************************!*\ - !*** ./node_modules/next/dist/next-devtools/userspace/app/errors/stitched-error.js ***! - \*************************************************************************************/ -/***/ ((module, exports, __webpack_require__) => { - -"use strict"; -eval(__webpack_require__.ts("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n coerceError: function() {\n return coerceError;\n },\n decorateDevError: function() {\n return decorateDevError;\n },\n getComponentStack: function() {\n return getComponentStack;\n },\n getOwnerStack: function() {\n return getOwnerStack;\n },\n setComponentStack: function() {\n return setComponentStack;\n },\n setOwnerStack: function() {\n return setOwnerStack;\n },\n setOwnerStackIfAvailable: function() {\n return setOwnerStackIfAvailable;\n }\n});\nconst _interop_require_default = __webpack_require__(/*! @swc/helpers/_/_interop_require_default */ \"(pages-dir-browser)/./node_modules/@swc/helpers/esm/_interop_require_default.js\");\nconst _react = /*#__PURE__*/ _interop_require_default._(__webpack_require__(/*! react */ \"(pages-dir-browser)/./node_modules/react/index.js\"));\nconst _iserror = /*#__PURE__*/ _interop_require_default._(__webpack_require__(/*! ../../../../lib/is-error */ \"(pages-dir-browser)/./node_modules/next/dist/lib/is-error.js\"));\nconst ownerStacks = new WeakMap();\nconst componentStacks = new WeakMap();\nfunction getComponentStack(error) {\n return componentStacks.get(error);\n}\nfunction setComponentStack(error, stack) {\n componentStacks.set(error, stack);\n}\nfunction getOwnerStack(error) {\n return ownerStacks.get(error);\n}\nfunction setOwnerStack(error, stack) {\n ownerStacks.set(error, stack);\n}\nfunction coerceError(value) {\n return (0, _iserror.default)(value) ? value : Object.defineProperty(new Error('' + value), \"__NEXT_ERROR_CODE\", {\n value: \"E394\",\n enumerable: false,\n configurable: true\n });\n}\nfunction setOwnerStackIfAvailable(error) {\n // React 18 and prod does not have `captureOwnerStack`\n if ('captureOwnerStack' in _react.default) {\n setOwnerStack(error, _react.default.captureOwnerStack());\n }\n}\nfunction decorateDevError(thrownValue, errorInfo) {\n const error = coerceError(thrownValue);\n setOwnerStackIfAvailable(error);\n // TODO: change to passing down errorInfo later\n // In development mode, pass along the component stack to the error\n if (errorInfo.componentStack) {\n setComponentStack(error, errorInfo.componentStack);\n }\n return error;\n}\n\nif ((typeof exports.default === 'function' || (typeof exports.default === 'object' && exports.default !== null)) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', { value: true });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n}\n\n//# sourceMappingURL=stitched-error.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvbmV4dC1kZXZ0b29scy91c2Vyc3BhY2UvYXBwL2Vycm9ycy9zdGl0Y2hlZC1lcnJvci5qcyIsIm1hcHBpbmdzIjoiQUFBYTtBQUNiLDhDQUE2QztBQUM3QztBQUNBLENBQUMsRUFBQztBQUNGLE1BQU0sQ0FRTDtBQUNEO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQSxDQUFDO0FBQ0QsaUNBQWlDLG1CQUFPLENBQUMsZ0lBQXlDO0FBQ2xGLHdEQUF3RCxtQkFBTyxDQUFDLGdFQUFPO0FBQ3ZFLDBEQUEwRCxtQkFBTyxDQUFDLDhGQUEwQjtBQUM1RjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0EseURBQXlELGFBQWE7QUFDdEU7QUFDQTtBQUNBOztBQUVBIiwic291cmNlcyI6WyJEOlxcZG9uZ3l1bi1wcm9qZWN0c1xcdHdvXFxub2RlX21vZHVsZXNcXG5leHRcXGRpc3RcXG5leHQtZGV2dG9vbHNcXHVzZXJzcGFjZVxcYXBwXFxlcnJvcnNcXHN0aXRjaGVkLWVycm9yLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7XG4gICAgdmFsdWU6IHRydWVcbn0pO1xuMCAmJiAobW9kdWxlLmV4cG9ydHMgPSB7XG4gICAgY29lcmNlRXJyb3I6IG51bGwsXG4gICAgZGVjb3JhdGVEZXZFcnJvcjogbnVsbCxcbiAgICBnZXRDb21wb25lbnRTdGFjazogbnVsbCxcbiAgICBnZXRPd25lclN0YWNrOiBudWxsLFxuICAgIHNldENvbXBvbmVudFN0YWNrOiBudWxsLFxuICAgIHNldE93bmVyU3RhY2s6IG51bGwsXG4gICAgc2V0T3duZXJTdGFja0lmQXZhaWxhYmxlOiBudWxsXG59KTtcbmZ1bmN0aW9uIF9leHBvcnQodGFyZ2V0LCBhbGwpIHtcbiAgICBmb3IodmFyIG5hbWUgaW4gYWxsKU9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0YXJnZXQsIG5hbWUsIHtcbiAgICAgICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICAgICAgZ2V0OiBhbGxbbmFtZV1cbiAgICB9KTtcbn1cbl9leHBvcnQoZXhwb3J0cywge1xuICAgIGNvZXJjZUVycm9yOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIGNvZXJjZUVycm9yO1xuICAgIH0sXG4gICAgZGVjb3JhdGVEZXZFcnJvcjogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBkZWNvcmF0ZURldkVycm9yO1xuICAgIH0sXG4gICAgZ2V0Q29tcG9uZW50U3RhY2s6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gZ2V0Q29tcG9uZW50U3RhY2s7XG4gICAgfSxcbiAgICBnZXRPd25lclN0YWNrOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIGdldE93bmVyU3RhY2s7XG4gICAgfSxcbiAgICBzZXRDb21wb25lbnRTdGFjazogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBzZXRDb21wb25lbnRTdGFjaztcbiAgICB9LFxuICAgIHNldE93bmVyU3RhY2s6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gc2V0T3duZXJTdGFjaztcbiAgICB9LFxuICAgIHNldE93bmVyU3RhY2tJZkF2YWlsYWJsZTogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBzZXRPd25lclN0YWNrSWZBdmFpbGFibGU7XG4gICAgfVxufSk7XG5jb25zdCBfaW50ZXJvcF9yZXF1aXJlX2RlZmF1bHQgPSByZXF1aXJlKFwiQHN3Yy9oZWxwZXJzL18vX2ludGVyb3BfcmVxdWlyZV9kZWZhdWx0XCIpO1xuY29uc3QgX3JlYWN0ID0gLyojX19QVVJFX18qLyBfaW50ZXJvcF9yZXF1aXJlX2RlZmF1bHQuXyhyZXF1aXJlKFwicmVhY3RcIikpO1xuY29uc3QgX2lzZXJyb3IgPSAvKiNfX1BVUkVfXyovIF9pbnRlcm9wX3JlcXVpcmVfZGVmYXVsdC5fKHJlcXVpcmUoXCIuLi8uLi8uLi8uLi9saWIvaXMtZXJyb3JcIikpO1xuY29uc3Qgb3duZXJTdGFja3MgPSBuZXcgV2Vha01hcCgpO1xuY29uc3QgY29tcG9uZW50U3RhY2tzID0gbmV3IFdlYWtNYXAoKTtcbmZ1bmN0aW9uIGdldENvbXBvbmVudFN0YWNrKGVycm9yKSB7XG4gICAgcmV0dXJuIGNvbXBvbmVudFN0YWNrcy5nZXQoZXJyb3IpO1xufVxuZnVuY3Rpb24gc2V0Q29tcG9uZW50U3RhY2soZXJyb3IsIHN0YWNrKSB7XG4gICAgY29tcG9uZW50U3RhY2tzLnNldChlcnJvciwgc3RhY2spO1xufVxuZnVuY3Rpb24gZ2V0T3duZXJTdGFjayhlcnJvcikge1xuICAgIHJldHVybiBvd25lclN0YWNrcy5nZXQoZXJyb3IpO1xufVxuZnVuY3Rpb24gc2V0T3duZXJTdGFjayhlcnJvciwgc3RhY2spIHtcbiAgICBvd25lclN0YWNrcy5zZXQoZXJyb3IsIHN0YWNrKTtcbn1cbmZ1bmN0aW9uIGNvZXJjZUVycm9yKHZhbHVlKSB7XG4gICAgcmV0dXJuICgwLCBfaXNlcnJvci5kZWZhdWx0KSh2YWx1ZSkgPyB2YWx1ZSA6IE9iamVjdC5kZWZpbmVQcm9wZXJ0eShuZXcgRXJyb3IoJycgKyB2YWx1ZSksIFwiX19ORVhUX0VSUk9SX0NPREVcIiwge1xuICAgICAgICB2YWx1ZTogXCJFMzk0XCIsXG4gICAgICAgIGVudW1lcmFibGU6IGZhbHNlLFxuICAgICAgICBjb25maWd1cmFibGU6IHRydWVcbiAgICB9KTtcbn1cbmZ1bmN0aW9uIHNldE93bmVyU3RhY2tJZkF2YWlsYWJsZShlcnJvcikge1xuICAgIC8vIFJlYWN0IDE4IGFuZCBwcm9kIGRvZXMgbm90IGhhdmUgYGNhcHR1cmVPd25lclN0YWNrYFxuICAgIGlmICgnY2FwdHVyZU93bmVyU3RhY2snIGluIF9yZWFjdC5kZWZhdWx0KSB7XG4gICAgICAgIHNldE93bmVyU3RhY2soZXJyb3IsIF9yZWFjdC5kZWZhdWx0LmNhcHR1cmVPd25lclN0YWNrKCkpO1xuICAgIH1cbn1cbmZ1bmN0aW9uIGRlY29yYXRlRGV2RXJyb3IodGhyb3duVmFsdWUsIGVycm9ySW5mbykge1xuICAgIGNvbnN0IGVycm9yID0gY29lcmNlRXJyb3IodGhyb3duVmFsdWUpO1xuICAgIHNldE93bmVyU3RhY2tJZkF2YWlsYWJsZShlcnJvcik7XG4gICAgLy8gVE9ETzogY2hhbmdlIHRvIHBhc3NpbmcgZG93biBlcnJvckluZm8gbGF0ZXJcbiAgICAvLyBJbiBkZXZlbG9wbWVudCBtb2RlLCBwYXNzIGFsb25nIHRoZSBjb21wb25lbnQgc3RhY2sgdG8gdGhlIGVycm9yXG4gICAgaWYgKGVycm9ySW5mby5jb21wb25lbnRTdGFjaykge1xuICAgICAgICBzZXRDb21wb25lbnRTdGFjayhlcnJvciwgZXJyb3JJbmZvLmNvbXBvbmVudFN0YWNrKTtcbiAgICB9XG4gICAgcmV0dXJuIGVycm9yO1xufVxuXG5pZiAoKHR5cGVvZiBleHBvcnRzLmRlZmF1bHQgPT09ICdmdW5jdGlvbicgfHwgKHR5cGVvZiBleHBvcnRzLmRlZmF1bHQgPT09ICdvYmplY3QnICYmIGV4cG9ydHMuZGVmYXVsdCAhPT0gbnVsbCkpICYmIHR5cGVvZiBleHBvcnRzLmRlZmF1bHQuX19lc01vZHVsZSA9PT0gJ3VuZGVmaW5lZCcpIHtcbiAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMuZGVmYXVsdCwgJ19fZXNNb2R1bGUnLCB7IHZhbHVlOiB0cnVlIH0pO1xuICBPYmplY3QuYXNzaWduKGV4cG9ydHMuZGVmYXVsdCwgZXhwb3J0cyk7XG4gIG1vZHVsZS5leHBvcnRzID0gZXhwb3J0cy5kZWZhdWx0O1xufVxuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1zdGl0Y2hlZC1lcnJvci5qcy5tYXAiXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(pages-dir-browser)/./node_modules/next/dist/next-devtools/userspace/app/errors/stitched-error.js\n")); - -/***/ }), - -/***/ "(pages-dir-browser)/./node_modules/next/dist/next-devtools/userspace/app/forward-logs.js": -/*!****************************************************************************!*\ - !*** ./node_modules/next/dist/next-devtools/userspace/app/forward-logs.js ***! - \****************************************************************************/ -/***/ ((module, exports, __webpack_require__) => { - -"use strict"; -eval(__webpack_require__.ts("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n PROMISE_MARKER: function() {\n return PROMISE_MARKER;\n },\n UNAVAILABLE_MARKER: function() {\n return UNAVAILABLE_MARKER;\n },\n forwardErrorLog: function() {\n return forwardErrorLog;\n },\n forwardUnhandledError: function() {\n return forwardUnhandledError;\n },\n initializeDebugLogForwarding: function() {\n return initializeDebugLogForwarding;\n },\n isTerminalLoggingEnabled: function() {\n return isTerminalLoggingEnabled;\n },\n logQueue: function() {\n return logQueue;\n },\n logStringify: function() {\n return logStringify;\n },\n logUnhandledRejection: function() {\n return logUnhandledRejection;\n },\n preLogSerializationClone: function() {\n return preLogSerializationClone;\n }\n});\nconst _safestablestringify = __webpack_require__(/*! next/dist/compiled/safe-stable-stringify */ \"(pages-dir-browser)/./node_modules/next/dist/compiled/safe-stable-stringify/index.js\");\nconst _stitchederror = __webpack_require__(/*! ./errors/stitched-error */ \"(pages-dir-browser)/./node_modules/next/dist/next-devtools/userspace/app/errors/stitched-error.js\");\nconst _errorsource = __webpack_require__(/*! ../../../shared/lib/error-source */ \"(pages-dir-browser)/./node_modules/next/dist/shared/lib/error-source.js\");\nconst _terminalloggingconfig = __webpack_require__(/*! ./terminal-logging-config */ \"(pages-dir-browser)/./node_modules/next/dist/next-devtools/userspace/app/terminal-logging-config.js\");\nconst _forwardlogsshared = __webpack_require__(/*! ../../shared/forward-logs-shared */ \"(pages-dir-browser)/./node_modules/next/dist/next-devtools/shared/forward-logs-shared.js\");\nconst terminalLoggingConfig = (0, _terminalloggingconfig.getTerminalLoggingConfig)();\nconst PROMISE_MARKER = 'Promise {}';\nconst UNAVAILABLE_MARKER = '[Unable to view]';\nconst maximumDepth = typeof terminalLoggingConfig === 'object' && terminalLoggingConfig.depthLimit ? terminalLoggingConfig.depthLimit : 5;\nconst maximumBreadth = typeof terminalLoggingConfig === 'object' && terminalLoggingConfig.edgeLimit ? terminalLoggingConfig.edgeLimit : 100;\nconst stringify = (0, _safestablestringify.configure)({\n maximumDepth,\n maximumBreadth\n});\nconst isTerminalLoggingEnabled = (0, _terminalloggingconfig.getIsTerminalLoggingEnabled)();\nconst methods = [\n 'log',\n 'info',\n 'warn',\n 'debug',\n 'table',\n 'assert',\n 'dir',\n 'dirxml',\n 'group',\n 'groupCollapsed',\n 'groupEnd',\n 'trace'\n];\nfunction preLogSerializationClone(value, seen) {\n if (seen === void 0) seen = new WeakMap();\n if (value === undefined) return _forwardlogsshared.UNDEFINED_MARKER;\n if (value === null || typeof value !== 'object') return value;\n if (seen.has(value)) return seen.get(value);\n try {\n Object.keys(value);\n } catch (e) {\n return UNAVAILABLE_MARKER;\n }\n try {\n if (typeof value.then === 'function') return PROMISE_MARKER;\n } catch (e) {\n return UNAVAILABLE_MARKER;\n }\n if (Array.isArray(value)) {\n const out = [];\n seen.set(value, out);\n for (const item of value){\n try {\n out.push(preLogSerializationClone(item, seen));\n } catch (e) {\n out.push(UNAVAILABLE_MARKER);\n }\n }\n return out;\n }\n const proto = Object.getPrototypeOf(value);\n if (proto === Object.prototype || proto === null) {\n const out = {};\n seen.set(value, out);\n for (const key of Object.keys(value)){\n try {\n out[key] = preLogSerializationClone(value[key], seen);\n } catch (e) {\n out[key] = UNAVAILABLE_MARKER;\n }\n }\n return out;\n }\n return Object.prototype.toString.call(value);\n}\nconst logStringify = (data)=>{\n try {\n const result = stringify(data);\n return result != null ? result : '\"' + UNAVAILABLE_MARKER + '\"';\n } catch (e) {\n return '\"' + UNAVAILABLE_MARKER + '\"';\n }\n};\nconst afterThisFrame = (cb)=>{\n let timeout;\n const rafId = requestAnimationFrame(()=>{\n timeout = setTimeout(()=>{\n cb();\n });\n });\n return ()=>{\n cancelAnimationFrame(rafId);\n clearTimeout(timeout);\n };\n};\nlet isPatched = false;\nconst serializeEntries = (entries)=>entries.map((clientEntry)=>{\n switch(clientEntry.kind){\n case 'any-logged-error':\n case 'console':\n {\n return {\n ...clientEntry,\n args: clientEntry.args.map(stringifyUserArg)\n };\n }\n case 'formatted-error':\n {\n return clientEntry;\n }\n default:\n {\n return null;\n }\n }\n });\nconst logQueue = {\n entries: [],\n flushScheduled: false,\n cancelFlush: null,\n socket: null,\n sourceType: undefined,\n router: null,\n scheduleLogSend: (entry)=>{\n logQueue.entries.push(entry);\n if (logQueue.flushScheduled) {\n return;\n }\n // safe to deref and use in setTimeout closure since we cancel on new socket\n const socket = logQueue.socket;\n if (!socket) {\n return;\n }\n // we probably dont need this\n logQueue.flushScheduled = true;\n // non blocking log flush, runs at most once per frame\n logQueue.cancelFlush = afterThisFrame(()=>{\n logQueue.flushScheduled = false;\n // just incase\n try {\n const payload = JSON.stringify({\n event: 'browser-logs',\n entries: serializeEntries(logQueue.entries),\n router: logQueue.router,\n // needed for source mapping, we just assign the sourceType from the last error for the whole batch\n sourceType: logQueue.sourceType\n });\n socket.send(payload);\n logQueue.entries = [];\n logQueue.sourceType = undefined;\n } catch (e) {\n // error (make sure u don't infinite loop)\n /* noop */ }\n });\n },\n onSocketReady: (socket)=>{\n if (socket.readyState !== WebSocket.OPEN) {\n // invariant\n return;\n }\n // incase an existing timeout was going to run with a stale socket\n logQueue.cancelFlush == null ? void 0 : logQueue.cancelFlush.call(logQueue);\n logQueue.socket = socket;\n try {\n const payload = JSON.stringify({\n event: 'browser-logs',\n entries: serializeEntries(logQueue.entries),\n router: logQueue.router,\n sourceType: logQueue.sourceType\n });\n socket.send(payload);\n logQueue.entries = [];\n logQueue.sourceType = undefined;\n } catch (e) {\n /** noop just incase */ }\n }\n};\nconst stringifyUserArg = (arg)=>{\n if (arg.kind !== 'arg') {\n return arg;\n }\n return {\n ...arg,\n data: logStringify(arg.data)\n };\n};\nconst createErrorArg = (error)=>{\n const stack = stackWithOwners(error);\n return {\n kind: 'formatted-error-arg',\n prefix: error.message ? error.name + \": \" + error.message : \"\" + error.name,\n stack\n };\n};\nconst createLogEntry = (level, args)=>{\n // do not abstract this, it implicitly relies on which functions call it. forcing the inlined implementation makes you think about callers\n // error capture stack trace maybe\n const stack = stackWithOwners(new Error());\n const stackLines = stack == null ? void 0 : stack.split('\\n');\n const cleanStack = stackLines == null ? void 0 : stackLines.slice(3).join('\\n') // this is probably ignored anyways\n ;\n const entry = {\n kind: 'console',\n consoleMethodStack: cleanStack != null ? cleanStack : null,\n method: level,\n args: args.map((arg)=>{\n if (arg instanceof Error) {\n return createErrorArg(arg);\n }\n return {\n kind: 'arg',\n data: preLogSerializationClone(arg)\n };\n })\n };\n logQueue.scheduleLogSend(entry);\n};\nconst forwardErrorLog = (args)=>{\n const errorObjects = args.filter((arg)=>arg instanceof Error);\n const first = errorObjects.at(0);\n if (first) {\n const source = (0, _errorsource.getErrorSource)(first);\n if (source) {\n logQueue.sourceType = source;\n }\n }\n /**\n * browser shows stack regardless of type of data passed to console.error, so we should do the same\n *\n * do not abstract this, it implicitly relies on which functions call it. forcing the inlined implementation makes you think about callers\n */ const stack = stackWithOwners(new Error());\n const stackLines = stack == null ? void 0 : stack.split('\\n');\n const cleanStack = stackLines == null ? void 0 : stackLines.slice(3).join('\\n');\n const entry = {\n kind: 'any-logged-error',\n method: 'error',\n consoleErrorStack: cleanStack != null ? cleanStack : '',\n args: args.map((arg)=>{\n if (arg instanceof Error) {\n return createErrorArg(arg);\n }\n return {\n kind: 'arg',\n data: preLogSerializationClone(arg)\n };\n })\n };\n logQueue.scheduleLogSend(entry);\n};\nconst createUncaughtErrorEntry = (errorName, errorMessage, fullStack)=>{\n const entry = {\n kind: 'formatted-error',\n prefix: \"Uncaught \" + errorName + \": \" + errorMessage,\n stack: fullStack,\n method: 'error'\n };\n logQueue.scheduleLogSend(entry);\n};\nconst stackWithOwners = (error)=>{\n let ownerStack = '';\n (0, _stitchederror.setOwnerStackIfAvailable)(error);\n ownerStack = (0, _stitchederror.getOwnerStack)(error) || '';\n const stack = (error.stack || '') + ownerStack;\n return stack;\n};\nfunction logUnhandledRejection(reason) {\n if (reason instanceof Error) {\n createUnhandledRejectionErrorEntry(reason, stackWithOwners(reason));\n return;\n }\n createUnhandledRejectionNonErrorEntry(reason);\n}\nconst createUnhandledRejectionErrorEntry = (error, fullStack)=>{\n const source = (0, _errorsource.getErrorSource)(error);\n if (source) {\n logQueue.sourceType = source;\n }\n const entry = {\n kind: 'formatted-error',\n prefix: \"⨯ unhandledRejection: \" + error.name + \": \" + error.message,\n stack: fullStack,\n method: 'error'\n };\n logQueue.scheduleLogSend(entry);\n};\nconst createUnhandledRejectionNonErrorEntry = (reason)=>{\n const entry = {\n kind: 'any-logged-error',\n // we can't access the stack since the event is dispatched async and creating an inline error would be meaningless\n consoleErrorStack: '',\n method: 'error',\n args: [\n {\n kind: 'arg',\n data: \"⨯ unhandledRejection:\",\n isRejectionMessage: true\n },\n {\n kind: 'arg',\n data: preLogSerializationClone(reason)\n }\n ]\n };\n logQueue.scheduleLogSend(entry);\n};\nconst isHMR = (args)=>{\n const firstArg = args[0];\n if (typeof firstArg !== 'string') {\n return false;\n }\n if (firstArg.startsWith('[Fast Refresh]')) {\n return true;\n }\n if (firstArg.startsWith('[HMR]')) {\n return true;\n }\n return false;\n};\nconst isIgnoredLog = (args)=>{\n if (args.length < 3) {\n return false;\n }\n const [format, styles, label] = args;\n if (typeof format !== 'string' || typeof styles !== 'string' || typeof label !== 'string') {\n return false;\n }\n // kinda hacky, we should define a common format for these strings so we can safely ignore\n return format.startsWith('%c%s%c') && styles.includes('background:');\n};\nfunction forwardUnhandledError(error) {\n createUncaughtErrorEntry(error.name, error.message, stackWithOwners(error));\n}\nconst initializeDebugLogForwarding = (router)=>{\n // probably don't need this\n if (isPatched) {\n return;\n }\n // TODO(rob): why does this break rendering on server, important to know incase the same bug appears in browser\n if (typeof window === 'undefined') {\n return;\n }\n // better to be safe than sorry\n try {\n methods.forEach((method)=>(0, _forwardlogsshared.patchConsoleMethod)(method, function(_) {\n for(var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++){\n args[_key - 1] = arguments[_key];\n }\n if (isHMR(args)) {\n return;\n }\n if (isIgnoredLog(args)) {\n return;\n }\n createLogEntry(method, args);\n }));\n } catch (e) {}\n logQueue.router = router;\n isPatched = true;\n};\n\nif ((typeof exports.default === 'function' || (typeof exports.default === 'object' && exports.default !== null)) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', { value: true });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n}\n\n//# sourceMappingURL=forward-logs.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvbmV4dC1kZXZ0b29scy91c2Vyc3BhY2UvYXBwL2ZvcndhcmQtbG9ncy5qcyIsIm1hcHBpbmdzIjoiQUFBYTtBQUNiLDhDQUE2QztBQUM3QztBQUNBLENBQUMsRUFBQztBQUNGLE1BQU0sQ0FXTDtBQUNEO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQSxDQUFDO0FBQ0QsNkJBQTZCLG1CQUFPLENBQUMsc0lBQTBDO0FBQy9FLHVCQUF1QixtQkFBTyxDQUFDLGtJQUF5QjtBQUN4RCxxQkFBcUIsbUJBQU8sQ0FBQyxpSEFBa0M7QUFDL0QsK0JBQStCLG1CQUFPLENBQUMsc0lBQTJCO0FBQ2xFLDJCQUEyQixtQkFBTyxDQUFDLGtJQUFrQztBQUNyRTtBQUNBLGtDQUFrQztBQUNsQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxDQUFDO0FBQ0Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxNQUFNO0FBQ047QUFDQTtBQUNBO0FBQ0E7QUFDQSxNQUFNO0FBQ047QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGNBQWM7QUFDZDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxjQUFjO0FBQ2Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE1BQU07QUFDTjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNULEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxpQkFBaUI7QUFDakI7QUFDQTtBQUNBO0FBQ0EsY0FBYztBQUNkO0FBQ0E7QUFDQSxTQUFTO0FBQ1QsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxhQUFhO0FBQ2I7QUFDQTtBQUNBO0FBQ0EsVUFBVTtBQUNWO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsYUFBYTtBQUNiO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxzR0FBc0csYUFBYTtBQUNuSDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxhQUFhO0FBQ2IsTUFBTTtBQUNOO0FBQ0E7QUFDQTs7QUFFQTtBQUNBLHlEQUF5RCxhQUFhO0FBQ3RFO0FBQ0E7QUFDQTs7QUFFQSIsInNvdXJjZXMiOlsiRDpcXGRvbmd5dW4tcHJvamVjdHNcXHR3b1xcbm9kZV9tb2R1bGVzXFxuZXh0XFxkaXN0XFxuZXh0LWRldnRvb2xzXFx1c2Vyc3BhY2VcXGFwcFxcZm9yd2FyZC1sb2dzLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7XG4gICAgdmFsdWU6IHRydWVcbn0pO1xuMCAmJiAobW9kdWxlLmV4cG9ydHMgPSB7XG4gICAgUFJPTUlTRV9NQVJLRVI6IG51bGwsXG4gICAgVU5BVkFJTEFCTEVfTUFSS0VSOiBudWxsLFxuICAgIGZvcndhcmRFcnJvckxvZzogbnVsbCxcbiAgICBmb3J3YXJkVW5oYW5kbGVkRXJyb3I6IG51bGwsXG4gICAgaW5pdGlhbGl6ZURlYnVnTG9nRm9yd2FyZGluZzogbnVsbCxcbiAgICBpc1Rlcm1pbmFsTG9nZ2luZ0VuYWJsZWQ6IG51bGwsXG4gICAgbG9nUXVldWU6IG51bGwsXG4gICAgbG9nU3RyaW5naWZ5OiBudWxsLFxuICAgIGxvZ1VuaGFuZGxlZFJlamVjdGlvbjogbnVsbCxcbiAgICBwcmVMb2dTZXJpYWxpemF0aW9uQ2xvbmU6IG51bGxcbn0pO1xuZnVuY3Rpb24gX2V4cG9ydCh0YXJnZXQsIGFsbCkge1xuICAgIGZvcih2YXIgbmFtZSBpbiBhbGwpT2JqZWN0LmRlZmluZVByb3BlcnR5KHRhcmdldCwgbmFtZSwge1xuICAgICAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgICAgICBnZXQ6IGFsbFtuYW1lXVxuICAgIH0pO1xufVxuX2V4cG9ydChleHBvcnRzLCB7XG4gICAgUFJPTUlTRV9NQVJLRVI6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gUFJPTUlTRV9NQVJLRVI7XG4gICAgfSxcbiAgICBVTkFWQUlMQUJMRV9NQVJLRVI6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gVU5BVkFJTEFCTEVfTUFSS0VSO1xuICAgIH0sXG4gICAgZm9yd2FyZEVycm9yTG9nOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIGZvcndhcmRFcnJvckxvZztcbiAgICB9LFxuICAgIGZvcndhcmRVbmhhbmRsZWRFcnJvcjogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBmb3J3YXJkVW5oYW5kbGVkRXJyb3I7XG4gICAgfSxcbiAgICBpbml0aWFsaXplRGVidWdMb2dGb3J3YXJkaW5nOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIGluaXRpYWxpemVEZWJ1Z0xvZ0ZvcndhcmRpbmc7XG4gICAgfSxcbiAgICBpc1Rlcm1pbmFsTG9nZ2luZ0VuYWJsZWQ6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gaXNUZXJtaW5hbExvZ2dpbmdFbmFibGVkO1xuICAgIH0sXG4gICAgbG9nUXVldWU6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gbG9nUXVldWU7XG4gICAgfSxcbiAgICBsb2dTdHJpbmdpZnk6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gbG9nU3RyaW5naWZ5O1xuICAgIH0sXG4gICAgbG9nVW5oYW5kbGVkUmVqZWN0aW9uOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIGxvZ1VuaGFuZGxlZFJlamVjdGlvbjtcbiAgICB9LFxuICAgIHByZUxvZ1NlcmlhbGl6YXRpb25DbG9uZTogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBwcmVMb2dTZXJpYWxpemF0aW9uQ2xvbmU7XG4gICAgfVxufSk7XG5jb25zdCBfc2FmZXN0YWJsZXN0cmluZ2lmeSA9IHJlcXVpcmUoXCJuZXh0L2Rpc3QvY29tcGlsZWQvc2FmZS1zdGFibGUtc3RyaW5naWZ5XCIpO1xuY29uc3QgX3N0aXRjaGVkZXJyb3IgPSByZXF1aXJlKFwiLi9lcnJvcnMvc3RpdGNoZWQtZXJyb3JcIik7XG5jb25zdCBfZXJyb3Jzb3VyY2UgPSByZXF1aXJlKFwiLi4vLi4vLi4vc2hhcmVkL2xpYi9lcnJvci1zb3VyY2VcIik7XG5jb25zdCBfdGVybWluYWxsb2dnaW5nY29uZmlnID0gcmVxdWlyZShcIi4vdGVybWluYWwtbG9nZ2luZy1jb25maWdcIik7XG5jb25zdCBfZm9yd2FyZGxvZ3NzaGFyZWQgPSByZXF1aXJlKFwiLi4vLi4vc2hhcmVkL2ZvcndhcmQtbG9ncy1zaGFyZWRcIik7XG5jb25zdCB0ZXJtaW5hbExvZ2dpbmdDb25maWcgPSAoMCwgX3Rlcm1pbmFsbG9nZ2luZ2NvbmZpZy5nZXRUZXJtaW5hbExvZ2dpbmdDb25maWcpKCk7XG5jb25zdCBQUk9NSVNFX01BUktFUiA9ICdQcm9taXNlIHt9JztcbmNvbnN0IFVOQVZBSUxBQkxFX01BUktFUiA9ICdbVW5hYmxlIHRvIHZpZXddJztcbmNvbnN0IG1heGltdW1EZXB0aCA9IHR5cGVvZiB0ZXJtaW5hbExvZ2dpbmdDb25maWcgPT09ICdvYmplY3QnICYmIHRlcm1pbmFsTG9nZ2luZ0NvbmZpZy5kZXB0aExpbWl0ID8gdGVybWluYWxMb2dnaW5nQ29uZmlnLmRlcHRoTGltaXQgOiA1O1xuY29uc3QgbWF4aW11bUJyZWFkdGggPSB0eXBlb2YgdGVybWluYWxMb2dnaW5nQ29uZmlnID09PSAnb2JqZWN0JyAmJiB0ZXJtaW5hbExvZ2dpbmdDb25maWcuZWRnZUxpbWl0ID8gdGVybWluYWxMb2dnaW5nQ29uZmlnLmVkZ2VMaW1pdCA6IDEwMDtcbmNvbnN0IHN0cmluZ2lmeSA9ICgwLCBfc2FmZXN0YWJsZXN0cmluZ2lmeS5jb25maWd1cmUpKHtcbiAgICBtYXhpbXVtRGVwdGgsXG4gICAgbWF4aW11bUJyZWFkdGhcbn0pO1xuY29uc3QgaXNUZXJtaW5hbExvZ2dpbmdFbmFibGVkID0gKDAsIF90ZXJtaW5hbGxvZ2dpbmdjb25maWcuZ2V0SXNUZXJtaW5hbExvZ2dpbmdFbmFibGVkKSgpO1xuY29uc3QgbWV0aG9kcyA9IFtcbiAgICAnbG9nJyxcbiAgICAnaW5mbycsXG4gICAgJ3dhcm4nLFxuICAgICdkZWJ1ZycsXG4gICAgJ3RhYmxlJyxcbiAgICAnYXNzZXJ0JyxcbiAgICAnZGlyJyxcbiAgICAnZGlyeG1sJyxcbiAgICAnZ3JvdXAnLFxuICAgICdncm91cENvbGxhcHNlZCcsXG4gICAgJ2dyb3VwRW5kJyxcbiAgICAndHJhY2UnXG5dO1xuZnVuY3Rpb24gcHJlTG9nU2VyaWFsaXphdGlvbkNsb25lKHZhbHVlLCBzZWVuKSB7XG4gICAgaWYgKHNlZW4gPT09IHZvaWQgMCkgc2VlbiA9IG5ldyBXZWFrTWFwKCk7XG4gICAgaWYgKHZhbHVlID09PSB1bmRlZmluZWQpIHJldHVybiBfZm9yd2FyZGxvZ3NzaGFyZWQuVU5ERUZJTkVEX01BUktFUjtcbiAgICBpZiAodmFsdWUgPT09IG51bGwgfHwgdHlwZW9mIHZhbHVlICE9PSAnb2JqZWN0JykgcmV0dXJuIHZhbHVlO1xuICAgIGlmIChzZWVuLmhhcyh2YWx1ZSkpIHJldHVybiBzZWVuLmdldCh2YWx1ZSk7XG4gICAgdHJ5IHtcbiAgICAgICAgT2JqZWN0LmtleXModmFsdWUpO1xuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgcmV0dXJuIFVOQVZBSUxBQkxFX01BUktFUjtcbiAgICB9XG4gICAgdHJ5IHtcbiAgICAgICAgaWYgKHR5cGVvZiB2YWx1ZS50aGVuID09PSAnZnVuY3Rpb24nKSByZXR1cm4gUFJPTUlTRV9NQVJLRVI7XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgICByZXR1cm4gVU5BVkFJTEFCTEVfTUFSS0VSO1xuICAgIH1cbiAgICBpZiAoQXJyYXkuaXNBcnJheSh2YWx1ZSkpIHtcbiAgICAgICAgY29uc3Qgb3V0ID0gW107XG4gICAgICAgIHNlZW4uc2V0KHZhbHVlLCBvdXQpO1xuICAgICAgICBmb3IgKGNvbnN0IGl0ZW0gb2YgdmFsdWUpe1xuICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICBvdXQucHVzaChwcmVMb2dTZXJpYWxpemF0aW9uQ2xvbmUoaXRlbSwgc2VlbikpO1xuICAgICAgICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICAgICAgICAgIG91dC5wdXNoKFVOQVZBSUxBQkxFX01BUktFUik7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG91dDtcbiAgICB9XG4gICAgY29uc3QgcHJvdG8gPSBPYmplY3QuZ2V0UHJvdG90eXBlT2YodmFsdWUpO1xuICAgIGlmIChwcm90byA9PT0gT2JqZWN0LnByb3RvdHlwZSB8fCBwcm90byA9PT0gbnVsbCkge1xuICAgICAgICBjb25zdCBvdXQgPSB7fTtcbiAgICAgICAgc2Vlbi5zZXQodmFsdWUsIG91dCk7XG4gICAgICAgIGZvciAoY29uc3Qga2V5IG9mIE9iamVjdC5rZXlzKHZhbHVlKSl7XG4gICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgIG91dFtrZXldID0gcHJlTG9nU2VyaWFsaXphdGlvbkNsb25lKHZhbHVlW2tleV0sIHNlZW4pO1xuICAgICAgICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICAgICAgICAgIG91dFtrZXldID0gVU5BVkFJTEFCTEVfTUFSS0VSO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiBvdXQ7XG4gICAgfVxuICAgIHJldHVybiBPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwodmFsdWUpO1xufVxuY29uc3QgbG9nU3RyaW5naWZ5ID0gKGRhdGEpPT57XG4gICAgdHJ5IHtcbiAgICAgICAgY29uc3QgcmVzdWx0ID0gc3RyaW5naWZ5KGRhdGEpO1xuICAgICAgICByZXR1cm4gcmVzdWx0ICE9IG51bGwgPyByZXN1bHQgOiAnXCInICsgVU5BVkFJTEFCTEVfTUFSS0VSICsgJ1wiJztcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgIHJldHVybiAnXCInICsgVU5BVkFJTEFCTEVfTUFSS0VSICsgJ1wiJztcbiAgICB9XG59O1xuY29uc3QgYWZ0ZXJUaGlzRnJhbWUgPSAoY2IpPT57XG4gICAgbGV0IHRpbWVvdXQ7XG4gICAgY29uc3QgcmFmSWQgPSByZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCk9PntcbiAgICAgICAgdGltZW91dCA9IHNldFRpbWVvdXQoKCk9PntcbiAgICAgICAgICAgIGNiKCk7XG4gICAgICAgIH0pO1xuICAgIH0pO1xuICAgIHJldHVybiAoKT0+e1xuICAgICAgICBjYW5jZWxBbmltYXRpb25GcmFtZShyYWZJZCk7XG4gICAgICAgIGNsZWFyVGltZW91dCh0aW1lb3V0KTtcbiAgICB9O1xufTtcbmxldCBpc1BhdGNoZWQgPSBmYWxzZTtcbmNvbnN0IHNlcmlhbGl6ZUVudHJpZXMgPSAoZW50cmllcyk9PmVudHJpZXMubWFwKChjbGllbnRFbnRyeSk9PntcbiAgICAgICAgc3dpdGNoKGNsaWVudEVudHJ5LmtpbmQpe1xuICAgICAgICAgICAgY2FzZSAnYW55LWxvZ2dlZC1lcnJvcic6XG4gICAgICAgICAgICBjYXNlICdjb25zb2xlJzpcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAuLi5jbGllbnRFbnRyeSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGFyZ3M6IGNsaWVudEVudHJ5LmFyZ3MubWFwKHN0cmluZ2lmeVVzZXJBcmcpXG4gICAgICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSAnZm9ybWF0dGVkLWVycm9yJzpcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBjbGllbnRFbnRyeTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfSk7XG5jb25zdCBsb2dRdWV1ZSA9IHtcbiAgICBlbnRyaWVzOiBbXSxcbiAgICBmbHVzaFNjaGVkdWxlZDogZmFsc2UsXG4gICAgY2FuY2VsRmx1c2g6IG51bGwsXG4gICAgc29ja2V0OiBudWxsLFxuICAgIHNvdXJjZVR5cGU6IHVuZGVmaW5lZCxcbiAgICByb3V0ZXI6IG51bGwsXG4gICAgc2NoZWR1bGVMb2dTZW5kOiAoZW50cnkpPT57XG4gICAgICAgIGxvZ1F1ZXVlLmVudHJpZXMucHVzaChlbnRyeSk7XG4gICAgICAgIGlmIChsb2dRdWV1ZS5mbHVzaFNjaGVkdWxlZCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIC8vIHNhZmUgdG8gZGVyZWYgYW5kIHVzZSBpbiBzZXRUaW1lb3V0IGNsb3N1cmUgc2luY2Ugd2UgY2FuY2VsIG9uIG5ldyBzb2NrZXRcbiAgICAgICAgY29uc3Qgc29ja2V0ID0gbG9nUXVldWUuc29ja2V0O1xuICAgICAgICBpZiAoIXNvY2tldCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIC8vIHdlIHByb2JhYmx5IGRvbnQgbmVlZCB0aGlzXG4gICAgICAgIGxvZ1F1ZXVlLmZsdXNoU2NoZWR1bGVkID0gdHJ1ZTtcbiAgICAgICAgLy8gbm9uIGJsb2NraW5nIGxvZyBmbHVzaCwgcnVucyBhdCBtb3N0IG9uY2UgcGVyIGZyYW1lXG4gICAgICAgIGxvZ1F1ZXVlLmNhbmNlbEZsdXNoID0gYWZ0ZXJUaGlzRnJhbWUoKCk9PntcbiAgICAgICAgICAgIGxvZ1F1ZXVlLmZsdXNoU2NoZWR1bGVkID0gZmFsc2U7XG4gICAgICAgICAgICAvLyBqdXN0IGluY2FzZVxuICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICBjb25zdCBwYXlsb2FkID0gSlNPTi5zdHJpbmdpZnkoe1xuICAgICAgICAgICAgICAgICAgICBldmVudDogJ2Jyb3dzZXItbG9ncycsXG4gICAgICAgICAgICAgICAgICAgIGVudHJpZXM6IHNlcmlhbGl6ZUVudHJpZXMobG9nUXVldWUuZW50cmllcyksXG4gICAgICAgICAgICAgICAgICAgIHJvdXRlcjogbG9nUXVldWUucm91dGVyLFxuICAgICAgICAgICAgICAgICAgICAvLyBuZWVkZWQgZm9yIHNvdXJjZSBtYXBwaW5nLCB3ZSBqdXN0IGFzc2lnbiB0aGUgc291cmNlVHlwZSBmcm9tIHRoZSBsYXN0IGVycm9yIGZvciB0aGUgd2hvbGUgYmF0Y2hcbiAgICAgICAgICAgICAgICAgICAgc291cmNlVHlwZTogbG9nUXVldWUuc291cmNlVHlwZVxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIHNvY2tldC5zZW5kKHBheWxvYWQpO1xuICAgICAgICAgICAgICAgIGxvZ1F1ZXVlLmVudHJpZXMgPSBbXTtcbiAgICAgICAgICAgICAgICBsb2dRdWV1ZS5zb3VyY2VUeXBlID0gdW5kZWZpbmVkO1xuICAgICAgICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICAgICAgLy8gZXJyb3IgKG1ha2Ugc3VyZSB1IGRvbid0IGluZmluaXRlIGxvb3ApXG4gICAgICAgICAgICAvKiBub29wICovIH1cbiAgICAgICAgfSk7XG4gICAgfSxcbiAgICBvblNvY2tldFJlYWR5OiAoc29ja2V0KT0+e1xuICAgICAgICBpZiAoc29ja2V0LnJlYWR5U3RhdGUgIT09IFdlYlNvY2tldC5PUEVOKSB7XG4gICAgICAgICAgICAvLyBpbnZhcmlhbnRcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICAvLyBpbmNhc2UgYW4gZXhpc3RpbmcgdGltZW91dCB3YXMgZ29pbmcgdG8gcnVuIHdpdGggYSBzdGFsZSBzb2NrZXRcbiAgICAgICAgbG9nUXVldWUuY2FuY2VsRmx1c2ggPT0gbnVsbCA/IHZvaWQgMCA6IGxvZ1F1ZXVlLmNhbmNlbEZsdXNoLmNhbGwobG9nUXVldWUpO1xuICAgICAgICBsb2dRdWV1ZS5zb2NrZXQgPSBzb2NrZXQ7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICBjb25zdCBwYXlsb2FkID0gSlNPTi5zdHJpbmdpZnkoe1xuICAgICAgICAgICAgICAgIGV2ZW50OiAnYnJvd3Nlci1sb2dzJyxcbiAgICAgICAgICAgICAgICBlbnRyaWVzOiBzZXJpYWxpemVFbnRyaWVzKGxvZ1F1ZXVlLmVudHJpZXMpLFxuICAgICAgICAgICAgICAgIHJvdXRlcjogbG9nUXVldWUucm91dGVyLFxuICAgICAgICAgICAgICAgIHNvdXJjZVR5cGU6IGxvZ1F1ZXVlLnNvdXJjZVR5cGVcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgc29ja2V0LnNlbmQocGF5bG9hZCk7XG4gICAgICAgICAgICBsb2dRdWV1ZS5lbnRyaWVzID0gW107XG4gICAgICAgICAgICBsb2dRdWV1ZS5zb3VyY2VUeXBlID0gdW5kZWZpbmVkO1xuICAgICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgIC8qKiBub29wIGp1c3QgaW5jYXNlICovIH1cbiAgICB9XG59O1xuY29uc3Qgc3RyaW5naWZ5VXNlckFyZyA9IChhcmcpPT57XG4gICAgaWYgKGFyZy5raW5kICE9PSAnYXJnJykge1xuICAgICAgICByZXR1cm4gYXJnO1xuICAgIH1cbiAgICByZXR1cm4ge1xuICAgICAgICAuLi5hcmcsXG4gICAgICAgIGRhdGE6IGxvZ1N0cmluZ2lmeShhcmcuZGF0YSlcbiAgICB9O1xufTtcbmNvbnN0IGNyZWF0ZUVycm9yQXJnID0gKGVycm9yKT0+e1xuICAgIGNvbnN0IHN0YWNrID0gc3RhY2tXaXRoT3duZXJzKGVycm9yKTtcbiAgICByZXR1cm4ge1xuICAgICAgICBraW5kOiAnZm9ybWF0dGVkLWVycm9yLWFyZycsXG4gICAgICAgIHByZWZpeDogZXJyb3IubWVzc2FnZSA/IGVycm9yLm5hbWUgKyBcIjogXCIgKyBlcnJvci5tZXNzYWdlIDogXCJcIiArIGVycm9yLm5hbWUsXG4gICAgICAgIHN0YWNrXG4gICAgfTtcbn07XG5jb25zdCBjcmVhdGVMb2dFbnRyeSA9IChsZXZlbCwgYXJncyk9PntcbiAgICAvLyBkbyBub3QgYWJzdHJhY3QgdGhpcywgaXQgaW1wbGljaXRseSByZWxpZXMgb24gd2hpY2ggZnVuY3Rpb25zIGNhbGwgaXQuIGZvcmNpbmcgdGhlIGlubGluZWQgaW1wbGVtZW50YXRpb24gbWFrZXMgeW91IHRoaW5rIGFib3V0IGNhbGxlcnNcbiAgICAvLyBlcnJvciBjYXB0dXJlIHN0YWNrIHRyYWNlIG1heWJlXG4gICAgY29uc3Qgc3RhY2sgPSBzdGFja1dpdGhPd25lcnMobmV3IEVycm9yKCkpO1xuICAgIGNvbnN0IHN0YWNrTGluZXMgPSBzdGFjayA9PSBudWxsID8gdm9pZCAwIDogc3RhY2suc3BsaXQoJ1xcbicpO1xuICAgIGNvbnN0IGNsZWFuU3RhY2sgPSBzdGFja0xpbmVzID09IG51bGwgPyB2b2lkIDAgOiBzdGFja0xpbmVzLnNsaWNlKDMpLmpvaW4oJ1xcbicpIC8vIHRoaXMgaXMgcHJvYmFibHkgaWdub3JlZCBhbnl3YXlzXG4gICAgO1xuICAgIGNvbnN0IGVudHJ5ID0ge1xuICAgICAgICBraW5kOiAnY29uc29sZScsXG4gICAgICAgIGNvbnNvbGVNZXRob2RTdGFjazogY2xlYW5TdGFjayAhPSBudWxsID8gY2xlYW5TdGFjayA6IG51bGwsXG4gICAgICAgIG1ldGhvZDogbGV2ZWwsXG4gICAgICAgIGFyZ3M6IGFyZ3MubWFwKChhcmcpPT57XG4gICAgICAgICAgICBpZiAoYXJnIGluc3RhbmNlb2YgRXJyb3IpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gY3JlYXRlRXJyb3JBcmcoYXJnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAga2luZDogJ2FyZycsXG4gICAgICAgICAgICAgICAgZGF0YTogcHJlTG9nU2VyaWFsaXphdGlvbkNsb25lKGFyZylcbiAgICAgICAgICAgIH07XG4gICAgICAgIH0pXG4gICAgfTtcbiAgICBsb2dRdWV1ZS5zY2hlZHVsZUxvZ1NlbmQoZW50cnkpO1xufTtcbmNvbnN0IGZvcndhcmRFcnJvckxvZyA9IChhcmdzKT0+e1xuICAgIGNvbnN0IGVycm9yT2JqZWN0cyA9IGFyZ3MuZmlsdGVyKChhcmcpPT5hcmcgaW5zdGFuY2VvZiBFcnJvcik7XG4gICAgY29uc3QgZmlyc3QgPSBlcnJvck9iamVjdHMuYXQoMCk7XG4gICAgaWYgKGZpcnN0KSB7XG4gICAgICAgIGNvbnN0IHNvdXJjZSA9ICgwLCBfZXJyb3Jzb3VyY2UuZ2V0RXJyb3JTb3VyY2UpKGZpcnN0KTtcbiAgICAgICAgaWYgKHNvdXJjZSkge1xuICAgICAgICAgICAgbG9nUXVldWUuc291cmNlVHlwZSA9IHNvdXJjZTtcbiAgICAgICAgfVxuICAgIH1cbiAgICAvKipcbiAgICogYnJvd3NlciBzaG93cyBzdGFjayByZWdhcmRsZXNzIG9mIHR5cGUgb2YgZGF0YSBwYXNzZWQgdG8gY29uc29sZS5lcnJvciwgc28gd2Ugc2hvdWxkIGRvIHRoZSBzYW1lXG4gICAqXG4gICAqIGRvIG5vdCBhYnN0cmFjdCB0aGlzLCBpdCBpbXBsaWNpdGx5IHJlbGllcyBvbiB3aGljaCBmdW5jdGlvbnMgY2FsbCBpdC4gZm9yY2luZyB0aGUgaW5saW5lZCBpbXBsZW1lbnRhdGlvbiBtYWtlcyB5b3UgdGhpbmsgYWJvdXQgY2FsbGVyc1xuICAgKi8gY29uc3Qgc3RhY2sgPSBzdGFja1dpdGhPd25lcnMobmV3IEVycm9yKCkpO1xuICAgIGNvbnN0IHN0YWNrTGluZXMgPSBzdGFjayA9PSBudWxsID8gdm9pZCAwIDogc3RhY2suc3BsaXQoJ1xcbicpO1xuICAgIGNvbnN0IGNsZWFuU3RhY2sgPSBzdGFja0xpbmVzID09IG51bGwgPyB2b2lkIDAgOiBzdGFja0xpbmVzLnNsaWNlKDMpLmpvaW4oJ1xcbicpO1xuICAgIGNvbnN0IGVudHJ5ID0ge1xuICAgICAgICBraW5kOiAnYW55LWxvZ2dlZC1lcnJvcicsXG4gICAgICAgIG1ldGhvZDogJ2Vycm9yJyxcbiAgICAgICAgY29uc29sZUVycm9yU3RhY2s6IGNsZWFuU3RhY2sgIT0gbnVsbCA/IGNsZWFuU3RhY2sgOiAnJyxcbiAgICAgICAgYXJnczogYXJncy5tYXAoKGFyZyk9PntcbiAgICAgICAgICAgIGlmIChhcmcgaW5zdGFuY2VvZiBFcnJvcikge1xuICAgICAgICAgICAgICAgIHJldHVybiBjcmVhdGVFcnJvckFyZyhhcmcpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICBraW5kOiAnYXJnJyxcbiAgICAgICAgICAgICAgICBkYXRhOiBwcmVMb2dTZXJpYWxpemF0aW9uQ2xvbmUoYXJnKVxuICAgICAgICAgICAgfTtcbiAgICAgICAgfSlcbiAgICB9O1xuICAgIGxvZ1F1ZXVlLnNjaGVkdWxlTG9nU2VuZChlbnRyeSk7XG59O1xuY29uc3QgY3JlYXRlVW5jYXVnaHRFcnJvckVudHJ5ID0gKGVycm9yTmFtZSwgZXJyb3JNZXNzYWdlLCBmdWxsU3RhY2spPT57XG4gICAgY29uc3QgZW50cnkgPSB7XG4gICAgICAgIGtpbmQ6ICdmb3JtYXR0ZWQtZXJyb3InLFxuICAgICAgICBwcmVmaXg6IFwiVW5jYXVnaHQgXCIgKyBlcnJvck5hbWUgKyBcIjogXCIgKyBlcnJvck1lc3NhZ2UsXG4gICAgICAgIHN0YWNrOiBmdWxsU3RhY2ssXG4gICAgICAgIG1ldGhvZDogJ2Vycm9yJ1xuICAgIH07XG4gICAgbG9nUXVldWUuc2NoZWR1bGVMb2dTZW5kKGVudHJ5KTtcbn07XG5jb25zdCBzdGFja1dpdGhPd25lcnMgPSAoZXJyb3IpPT57XG4gICAgbGV0IG93bmVyU3RhY2sgPSAnJztcbiAgICAoMCwgX3N0aXRjaGVkZXJyb3Iuc2V0T3duZXJTdGFja0lmQXZhaWxhYmxlKShlcnJvcik7XG4gICAgb3duZXJTdGFjayA9ICgwLCBfc3RpdGNoZWRlcnJvci5nZXRPd25lclN0YWNrKShlcnJvcikgfHwgJyc7XG4gICAgY29uc3Qgc3RhY2sgPSAoZXJyb3Iuc3RhY2sgfHwgJycpICsgb3duZXJTdGFjaztcbiAgICByZXR1cm4gc3RhY2s7XG59O1xuZnVuY3Rpb24gbG9nVW5oYW5kbGVkUmVqZWN0aW9uKHJlYXNvbikge1xuICAgIGlmIChyZWFzb24gaW5zdGFuY2VvZiBFcnJvcikge1xuICAgICAgICBjcmVhdGVVbmhhbmRsZWRSZWplY3Rpb25FcnJvckVudHJ5KHJlYXNvbiwgc3RhY2tXaXRoT3duZXJzKHJlYXNvbikpO1xuICAgICAgICByZXR1cm47XG4gICAgfVxuICAgIGNyZWF0ZVVuaGFuZGxlZFJlamVjdGlvbk5vbkVycm9yRW50cnkocmVhc29uKTtcbn1cbmNvbnN0IGNyZWF0ZVVuaGFuZGxlZFJlamVjdGlvbkVycm9yRW50cnkgPSAoZXJyb3IsIGZ1bGxTdGFjayk9PntcbiAgICBjb25zdCBzb3VyY2UgPSAoMCwgX2Vycm9yc291cmNlLmdldEVycm9yU291cmNlKShlcnJvcik7XG4gICAgaWYgKHNvdXJjZSkge1xuICAgICAgICBsb2dRdWV1ZS5zb3VyY2VUeXBlID0gc291cmNlO1xuICAgIH1cbiAgICBjb25zdCBlbnRyeSA9IHtcbiAgICAgICAga2luZDogJ2Zvcm1hdHRlZC1lcnJvcicsXG4gICAgICAgIHByZWZpeDogXCLiqK8gdW5oYW5kbGVkUmVqZWN0aW9uOiBcIiArIGVycm9yLm5hbWUgKyBcIjogXCIgKyBlcnJvci5tZXNzYWdlLFxuICAgICAgICBzdGFjazogZnVsbFN0YWNrLFxuICAgICAgICBtZXRob2Q6ICdlcnJvcidcbiAgICB9O1xuICAgIGxvZ1F1ZXVlLnNjaGVkdWxlTG9nU2VuZChlbnRyeSk7XG59O1xuY29uc3QgY3JlYXRlVW5oYW5kbGVkUmVqZWN0aW9uTm9uRXJyb3JFbnRyeSA9IChyZWFzb24pPT57XG4gICAgY29uc3QgZW50cnkgPSB7XG4gICAgICAgIGtpbmQ6ICdhbnktbG9nZ2VkLWVycm9yJyxcbiAgICAgICAgLy8gd2UgY2FuJ3QgYWNjZXNzIHRoZSBzdGFjayBzaW5jZSB0aGUgZXZlbnQgaXMgZGlzcGF0Y2hlZCBhc3luYyBhbmQgY3JlYXRpbmcgYW4gaW5saW5lIGVycm9yIHdvdWxkIGJlIG1lYW5pbmdsZXNzXG4gICAgICAgIGNvbnNvbGVFcnJvclN0YWNrOiAnJyxcbiAgICAgICAgbWV0aG9kOiAnZXJyb3InLFxuICAgICAgICBhcmdzOiBbXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAga2luZDogJ2FyZycsXG4gICAgICAgICAgICAgICAgZGF0YTogXCLiqK8gdW5oYW5kbGVkUmVqZWN0aW9uOlwiLFxuICAgICAgICAgICAgICAgIGlzUmVqZWN0aW9uTWVzc2FnZTogdHJ1ZVxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBraW5kOiAnYXJnJyxcbiAgICAgICAgICAgICAgICBkYXRhOiBwcmVMb2dTZXJpYWxpemF0aW9uQ2xvbmUocmVhc29uKVxuICAgICAgICAgICAgfVxuICAgICAgICBdXG4gICAgfTtcbiAgICBsb2dRdWV1ZS5zY2hlZHVsZUxvZ1NlbmQoZW50cnkpO1xufTtcbmNvbnN0IGlzSE1SID0gKGFyZ3MpPT57XG4gICAgY29uc3QgZmlyc3RBcmcgPSBhcmdzWzBdO1xuICAgIGlmICh0eXBlb2YgZmlyc3RBcmcgIT09ICdzdHJpbmcnKSB7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gICAgaWYgKGZpcnN0QXJnLnN0YXJ0c1dpdGgoJ1tGYXN0IFJlZnJlc2hdJykpIHtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICAgIGlmIChmaXJzdEFyZy5zdGFydHNXaXRoKCdbSE1SXScpKSB7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgICByZXR1cm4gZmFsc2U7XG59O1xuY29uc3QgaXNJZ25vcmVkTG9nID0gKGFyZ3MpPT57XG4gICAgaWYgKGFyZ3MubGVuZ3RoIDwgMykge1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICAgIGNvbnN0IFtmb3JtYXQsIHN0eWxlcywgbGFiZWxdID0gYXJncztcbiAgICBpZiAodHlwZW9mIGZvcm1hdCAhPT0gJ3N0cmluZycgfHwgdHlwZW9mIHN0eWxlcyAhPT0gJ3N0cmluZycgfHwgdHlwZW9mIGxhYmVsICE9PSAnc3RyaW5nJykge1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICAgIC8vIGtpbmRhIGhhY2t5LCB3ZSBzaG91bGQgZGVmaW5lIGEgY29tbW9uIGZvcm1hdCBmb3IgdGhlc2Ugc3RyaW5ncyBzbyB3ZSBjYW4gc2FmZWx5IGlnbm9yZVxuICAgIHJldHVybiBmb3JtYXQuc3RhcnRzV2l0aCgnJWMlcyVjJykgJiYgc3R5bGVzLmluY2x1ZGVzKCdiYWNrZ3JvdW5kOicpO1xufTtcbmZ1bmN0aW9uIGZvcndhcmRVbmhhbmRsZWRFcnJvcihlcnJvcikge1xuICAgIGNyZWF0ZVVuY2F1Z2h0RXJyb3JFbnRyeShlcnJvci5uYW1lLCBlcnJvci5tZXNzYWdlLCBzdGFja1dpdGhPd25lcnMoZXJyb3IpKTtcbn1cbmNvbnN0IGluaXRpYWxpemVEZWJ1Z0xvZ0ZvcndhcmRpbmcgPSAocm91dGVyKT0+e1xuICAgIC8vIHByb2JhYmx5IGRvbid0IG5lZWQgdGhpc1xuICAgIGlmIChpc1BhdGNoZWQpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICAvLyBUT0RPKHJvYik6IHdoeSBkb2VzIHRoaXMgYnJlYWsgcmVuZGVyaW5nIG9uIHNlcnZlciwgaW1wb3J0YW50IHRvIGtub3cgaW5jYXNlIHRoZSBzYW1lIGJ1ZyBhcHBlYXJzIGluIGJyb3dzZXJcbiAgICBpZiAodHlwZW9mIHdpbmRvdyA9PT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICAvLyBiZXR0ZXIgdG8gYmUgc2FmZSB0aGFuIHNvcnJ5XG4gICAgdHJ5IHtcbiAgICAgICAgbWV0aG9kcy5mb3JFYWNoKChtZXRob2QpPT4oMCwgX2ZvcndhcmRsb2dzc2hhcmVkLnBhdGNoQ29uc29sZU1ldGhvZCkobWV0aG9kLCBmdW5jdGlvbihfKSB7XG4gICAgICAgICAgICAgICAgZm9yKHZhciBfbGVuID0gYXJndW1lbnRzLmxlbmd0aCwgYXJncyA9IG5ldyBBcnJheShfbGVuID4gMSA/IF9sZW4gLSAxIDogMCksIF9rZXkgPSAxOyBfa2V5IDwgX2xlbjsgX2tleSsrKXtcbiAgICAgICAgICAgICAgICAgICAgYXJnc1tfa2V5IC0gMV0gPSBhcmd1bWVudHNbX2tleV07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGlmIChpc0hNUihhcmdzKSkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGlmIChpc0lnbm9yZWRMb2coYXJncykpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBjcmVhdGVMb2dFbnRyeShtZXRob2QsIGFyZ3MpO1xuICAgICAgICAgICAgfSkpO1xuICAgIH0gY2F0Y2ggKGUpIHt9XG4gICAgbG9nUXVldWUucm91dGVyID0gcm91dGVyO1xuICAgIGlzUGF0Y2hlZCA9IHRydWU7XG59O1xuXG5pZiAoKHR5cGVvZiBleHBvcnRzLmRlZmF1bHQgPT09ICdmdW5jdGlvbicgfHwgKHR5cGVvZiBleHBvcnRzLmRlZmF1bHQgPT09ICdvYmplY3QnICYmIGV4cG9ydHMuZGVmYXVsdCAhPT0gbnVsbCkpICYmIHR5cGVvZiBleHBvcnRzLmRlZmF1bHQuX19lc01vZHVsZSA9PT0gJ3VuZGVmaW5lZCcpIHtcbiAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMuZGVmYXVsdCwgJ19fZXNNb2R1bGUnLCB7IHZhbHVlOiB0cnVlIH0pO1xuICBPYmplY3QuYXNzaWduKGV4cG9ydHMuZGVmYXVsdCwgZXhwb3J0cyk7XG4gIG1vZHVsZS5leHBvcnRzID0gZXhwb3J0cy5kZWZhdWx0O1xufVxuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1mb3J3YXJkLWxvZ3MuanMubWFwIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(pages-dir-browser)/./node_modules/next/dist/next-devtools/userspace/app/forward-logs.js\n")); - -/***/ }), - -/***/ "(pages-dir-browser)/./node_modules/next/dist/next-devtools/userspace/app/terminal-logging-config.js": -/*!***************************************************************************************!*\ - !*** ./node_modules/next/dist/next-devtools/userspace/app/terminal-logging-config.js ***! - \***************************************************************************************/ -/***/ ((module, exports, __webpack_require__) => { - -"use strict"; -eval(__webpack_require__.ts("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n getIsTerminalLoggingEnabled: function() {\n return getIsTerminalLoggingEnabled;\n },\n getTerminalLoggingConfig: function() {\n return getTerminalLoggingConfig;\n }\n});\nfunction getTerminalLoggingConfig() {\n try {\n return JSON.parse(\"false\" || 0);\n } catch (e) {\n return false;\n }\n}\nfunction getIsTerminalLoggingEnabled() {\n const config = getTerminalLoggingConfig();\n return Boolean(config);\n}\n\nif ((typeof exports.default === 'function' || (typeof exports.default === 'object' && exports.default !== null)) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', { value: true });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n}\n\n//# sourceMappingURL=terminal-logging-config.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvbmV4dC1kZXZ0b29scy91c2Vyc3BhY2UvYXBwL3Rlcm1pbmFsLWxvZ2dpbmctY29uZmlnLmpzIiwibWFwcGluZ3MiOiJBQUFhO0FBQ2IsOENBQTZDO0FBQzdDO0FBQ0EsQ0FBQyxFQUFDO0FBQ0YsTUFBTSxDQUdMO0FBQ0Q7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0EsQ0FBQztBQUNEO0FBQ0E7QUFDQSwwQkFBMEIsT0FBaUQsSUFBSSxDQUFPO0FBQ3RGLE1BQU07QUFDTjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBLHlEQUF5RCxhQUFhO0FBQ3RFO0FBQ0E7QUFDQTs7QUFFQSIsInNvdXJjZXMiOlsiRDpcXGRvbmd5dW4tcHJvamVjdHNcXHR3b1xcbm9kZV9tb2R1bGVzXFxuZXh0XFxkaXN0XFxuZXh0LWRldnRvb2xzXFx1c2Vyc3BhY2VcXGFwcFxcdGVybWluYWwtbG9nZ2luZy1jb25maWcuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHtcbiAgICB2YWx1ZTogdHJ1ZVxufSk7XG4wICYmIChtb2R1bGUuZXhwb3J0cyA9IHtcbiAgICBnZXRJc1Rlcm1pbmFsTG9nZ2luZ0VuYWJsZWQ6IG51bGwsXG4gICAgZ2V0VGVybWluYWxMb2dnaW5nQ29uZmlnOiBudWxsXG59KTtcbmZ1bmN0aW9uIF9leHBvcnQodGFyZ2V0LCBhbGwpIHtcbiAgICBmb3IodmFyIG5hbWUgaW4gYWxsKU9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0YXJnZXQsIG5hbWUsIHtcbiAgICAgICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICAgICAgZ2V0OiBhbGxbbmFtZV1cbiAgICB9KTtcbn1cbl9leHBvcnQoZXhwb3J0cywge1xuICAgIGdldElzVGVybWluYWxMb2dnaW5nRW5hYmxlZDogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBnZXRJc1Rlcm1pbmFsTG9nZ2luZ0VuYWJsZWQ7XG4gICAgfSxcbiAgICBnZXRUZXJtaW5hbExvZ2dpbmdDb25maWc6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gZ2V0VGVybWluYWxMb2dnaW5nQ29uZmlnO1xuICAgIH1cbn0pO1xuZnVuY3Rpb24gZ2V0VGVybWluYWxMb2dnaW5nQ29uZmlnKCkge1xuICAgIHRyeSB7XG4gICAgICAgIHJldHVybiBKU09OLnBhcnNlKHByb2Nlc3MuZW52Ll9fTkVYVF9CUk9XU0VSX0RFQlVHX0lORk9fSU5fVEVSTUlOQUwgfHwgJ2ZhbHNlJyk7XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxufVxuZnVuY3Rpb24gZ2V0SXNUZXJtaW5hbExvZ2dpbmdFbmFibGVkKCkge1xuICAgIGNvbnN0IGNvbmZpZyA9IGdldFRlcm1pbmFsTG9nZ2luZ0NvbmZpZygpO1xuICAgIHJldHVybiBCb29sZWFuKGNvbmZpZyk7XG59XG5cbmlmICgodHlwZW9mIGV4cG9ydHMuZGVmYXVsdCA9PT0gJ2Z1bmN0aW9uJyB8fCAodHlwZW9mIGV4cG9ydHMuZGVmYXVsdCA9PT0gJ29iamVjdCcgJiYgZXhwb3J0cy5kZWZhdWx0ICE9PSBudWxsKSkgJiYgdHlwZW9mIGV4cG9ydHMuZGVmYXVsdC5fX2VzTW9kdWxlID09PSAndW5kZWZpbmVkJykge1xuICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cy5kZWZhdWx0LCAnX19lc01vZHVsZScsIHsgdmFsdWU6IHRydWUgfSk7XG4gIE9iamVjdC5hc3NpZ24oZXhwb3J0cy5kZWZhdWx0LCBleHBvcnRzKTtcbiAgbW9kdWxlLmV4cG9ydHMgPSBleHBvcnRzLmRlZmF1bHQ7XG59XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPXRlcm1pbmFsLWxvZ2dpbmctY29uZmlnLmpzLm1hcCJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(pages-dir-browser)/./node_modules/next/dist/next-devtools/userspace/app/terminal-logging-config.js\n")); - -/***/ }), - -/***/ "(pages-dir-browser)/./node_modules/next/dist/next-devtools/userspace/pages/hydration-error-state.js": -/*!***************************************************************************************!*\ - !*** ./node_modules/next/dist/next-devtools/userspace/pages/hydration-error-state.js ***! - \***************************************************************************************/ -/***/ ((module, exports, __webpack_require__) => { - -"use strict"; -eval(__webpack_require__.ts("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n attachHydrationErrorState: function() {\n return attachHydrationErrorState;\n },\n getSquashedHydrationErrorDetails: function() {\n return getSquashedHydrationErrorDetails;\n },\n storeHydrationErrorStateFromConsoleArgs: function() {\n return storeHydrationErrorStateFromConsoleArgs;\n }\n});\nconst _react18hydrationerror = __webpack_require__(/*! ../../shared/react-18-hydration-error */ \"(pages-dir-browser)/./node_modules/next/dist/next-devtools/shared/react-18-hydration-error.js\");\nconst _react19hydrationerror = __webpack_require__(/*! ../../shared/react-19-hydration-error */ \"(pages-dir-browser)/./node_modules/next/dist/next-devtools/shared/react-19-hydration-error.js\");\n// We only need this for React 18 or hydration console errors in React 19.\n// Once we surface console.error in the dev overlay in pages router, we should only\n// use this for React 18.\nlet hydrationErrorState = {};\nconst squashedHydrationErrorDetails = new WeakMap();\nfunction getSquashedHydrationErrorDetails(error) {\n return squashedHydrationErrorDetails.has(error) ? squashedHydrationErrorDetails.get(error) : null;\n}\nfunction attachHydrationErrorState(error) {\n if (!(0, _react18hydrationerror.isHydrationError)(error) && !(0, _react19hydrationerror.isHydrationError)(error)) {\n return;\n }\n let parsedHydrationErrorState = {};\n // If there's any extra information in the error message to display,\n // append it to the error message details property\n if (hydrationErrorState.warning) {\n // The patched console.error found hydration errors logged by React\n // Append the logged warning to the error message\n parsedHydrationErrorState = {\n // It contains the warning, component stack, server and client tag names\n ...hydrationErrorState\n };\n // Consume the cached hydration diff.\n // This is only required for now when we still squashed the hydration diff log into hydration error.\n // Once the all error is logged to dev overlay in order, this will go away.\n if (hydrationErrorState.reactOutputComponentDiff) {\n parsedHydrationErrorState.reactOutputComponentDiff = hydrationErrorState.reactOutputComponentDiff;\n }\n squashedHydrationErrorDetails.set(error, parsedHydrationErrorState);\n }\n}\nfunction storeHydrationErrorStateFromConsoleArgs() {\n for(var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++){\n args[_key] = arguments[_key];\n }\n let [message, firstContent, secondContent, ...rest] = args;\n if ((0, _react18hydrationerror.isHydrationWarning)(message)) {\n // Some hydration warnings has 4 arguments, some has 3, fallback to the last argument\n // when the 3rd argument is not the component stack but an empty string\n // For some warnings, there's only 1 argument for template.\n // The second argument is the diff or component stack.\n if (args.length === 3) {\n secondContent = '';\n }\n const warning = message.replace(/Warning: /, '').replace('%s', firstContent).replace('%s', secondContent)// remove the last %s from the message\n .replace(/%s/g, '');\n const lastArg = (rest[rest.length - 1] || '').trim();\n hydrationErrorState.reactOutputComponentDiff = generateHydrationDiffReact18(message, firstContent, secondContent, lastArg);\n hydrationErrorState.warning = warning;\n } else if ((0, _react19hydrationerror.isErrorMessageWithComponentStackDiff)(message)) {\n // Some hydration warnings has 4 arguments, some has 3, fallback to the last argument\n // when the 3rd argument is not the component stack but an empty string\n // For some warnings, there's only 1 argument for template.\n // The second argument is the diff or component stack.\n if (args.length === 3) {\n secondContent = '';\n }\n const warning = message.replace('%s', firstContent).replace('%s', secondContent)// remove the last %s from the message\n .replace(/%s/g, '');\n const lastArg = (args[args.length - 1] || '').trim();\n hydrationErrorState.reactOutputComponentDiff = lastArg;\n hydrationErrorState.warning = warning;\n }\n}\n/*\n * Some hydration errors in React 18 does not have the diff in the error message.\n * Instead it has the error stack trace which is component stack that we can leverage.\n * Will parse the diff from the error stack trace\n * e.g.\n * Warning: Expected server HTML to contain a matching <div> in <p>.\n * at div\n * at p\n * at div\n * at div\n * at Page\n * output:\n * <Page>\n * <div>\n * <p>\n * > <div>\n *\n */ function generateHydrationDiffReact18(message, firstContent, secondContent, lastArg) {\n const componentStack = lastArg;\n let firstIndex = -1;\n let secondIndex = -1;\n const hydrationWarningType = (0, _react18hydrationerror.getHydrationWarningType)(message);\n // at div\\n at Foo\\n at Bar (....)\\n -> [div, Foo]\n const components = componentStack.split('\\n')// .reverse()\n .map((line, index)=>{\n // `<space>at <component> (<location>)` -> `at <component> (<location>)`\n line = line.trim();\n // extract `<space>at <component>` to `<<component>>`\n // e.g. ` at Foo` -> `<Foo>`\n const [, component, location] = /at (\\w+)( \\((.*)\\))?/.exec(line) || [];\n // If there's no location then it's user-land stack frame\n if (!location) {\n if (component === firstContent && firstIndex === -1) {\n firstIndex = index;\n } else if (component === secondContent && secondIndex === -1) {\n secondIndex = index;\n }\n }\n return location ? '' : component;\n }).filter(Boolean).reverse();\n let diff = '';\n for(let i = 0; i < components.length; i++){\n const component = components[i];\n const matchFirstContent = hydrationWarningType === 'tag' && i === components.length - firstIndex - 1;\n const matchSecondContent = hydrationWarningType === 'tag' && i === components.length - secondIndex - 1;\n if (matchFirstContent || matchSecondContent) {\n const spaces = ' '.repeat(Math.max(i * 2 - 2, 0) + 2);\n diff += \"> \" + spaces + \"<\" + component + \">\\n\";\n } else {\n const spaces = ' '.repeat(i * 2 + 2);\n diff += spaces + \"<\" + component + \">\\n\";\n }\n }\n if (hydrationWarningType === 'text') {\n const spaces = ' '.repeat(components.length * 2);\n diff += \"+ \" + spaces + '\"' + firstContent + '\"\\n';\n diff += \"- \" + spaces + '\"' + secondContent + '\"\\n';\n } else if (hydrationWarningType === 'text-in-tag') {\n const spaces = ' '.repeat(components.length * 2);\n diff += \"> \" + spaces + \"<\" + secondContent + \">\\n\";\n diff += \"> \" + spaces + '\"' + firstContent + '\"\\n';\n }\n return diff;\n}\n\nif ((typeof exports.default === 'function' || (typeof exports.default === 'object' && exports.default !== null)) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', { value: true });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n}\n\n//# sourceMappingURL=hydration-error-state.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvbmV4dC1kZXZ0b29scy91c2Vyc3BhY2UvcGFnZXMvaHlkcmF0aW9uLWVycm9yLXN0YXRlLmpzIiwibWFwcGluZ3MiOiJBQUFhO0FBQ2IsOENBQTZDO0FBQzdDO0FBQ0EsQ0FBQyxFQUFDO0FBQ0YsTUFBTSxDQUlMO0FBQ0Q7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQSxDQUFDO0FBQ0QsK0JBQStCLG1CQUFPLENBQUMsNElBQXVDO0FBQzlFLCtCQUErQixtQkFBTyxDQUFDLDRJQUF1QztBQUM5RTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsdUVBQXVFLGFBQWE7QUFDcEY7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxNQUFNO0FBQ047QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsY0FBYztBQUNkO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0EsbUJBQW1CLHVCQUF1QjtBQUMxQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxVQUFVO0FBQ1Y7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE1BQU07QUFDTjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQSx5REFBeUQsYUFBYTtBQUN0RTtBQUNBO0FBQ0E7O0FBRUEiLCJzb3VyY2VzIjpbIkQ6XFxkb25neXVuLXByb2plY3RzXFx0d29cXG5vZGVfbW9kdWxlc1xcbmV4dFxcZGlzdFxcbmV4dC1kZXZ0b29sc1xcdXNlcnNwYWNlXFxwYWdlc1xcaHlkcmF0aW9uLWVycm9yLXN0YXRlLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7XG4gICAgdmFsdWU6IHRydWVcbn0pO1xuMCAmJiAobW9kdWxlLmV4cG9ydHMgPSB7XG4gICAgYXR0YWNoSHlkcmF0aW9uRXJyb3JTdGF0ZTogbnVsbCxcbiAgICBnZXRTcXVhc2hlZEh5ZHJhdGlvbkVycm9yRGV0YWlsczogbnVsbCxcbiAgICBzdG9yZUh5ZHJhdGlvbkVycm9yU3RhdGVGcm9tQ29uc29sZUFyZ3M6IG51bGxcbn0pO1xuZnVuY3Rpb24gX2V4cG9ydCh0YXJnZXQsIGFsbCkge1xuICAgIGZvcih2YXIgbmFtZSBpbiBhbGwpT2JqZWN0LmRlZmluZVByb3BlcnR5KHRhcmdldCwgbmFtZSwge1xuICAgICAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgICAgICBnZXQ6IGFsbFtuYW1lXVxuICAgIH0pO1xufVxuX2V4cG9ydChleHBvcnRzLCB7XG4gICAgYXR0YWNoSHlkcmF0aW9uRXJyb3JTdGF0ZTogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBhdHRhY2hIeWRyYXRpb25FcnJvclN0YXRlO1xuICAgIH0sXG4gICAgZ2V0U3F1YXNoZWRIeWRyYXRpb25FcnJvckRldGFpbHM6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gZ2V0U3F1YXNoZWRIeWRyYXRpb25FcnJvckRldGFpbHM7XG4gICAgfSxcbiAgICBzdG9yZUh5ZHJhdGlvbkVycm9yU3RhdGVGcm9tQ29uc29sZUFyZ3M6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gc3RvcmVIeWRyYXRpb25FcnJvclN0YXRlRnJvbUNvbnNvbGVBcmdzO1xuICAgIH1cbn0pO1xuY29uc3QgX3JlYWN0MThoeWRyYXRpb25lcnJvciA9IHJlcXVpcmUoXCIuLi8uLi9zaGFyZWQvcmVhY3QtMTgtaHlkcmF0aW9uLWVycm9yXCIpO1xuY29uc3QgX3JlYWN0MTloeWRyYXRpb25lcnJvciA9IHJlcXVpcmUoXCIuLi8uLi9zaGFyZWQvcmVhY3QtMTktaHlkcmF0aW9uLWVycm9yXCIpO1xuLy8gV2Ugb25seSBuZWVkIHRoaXMgZm9yIFJlYWN0IDE4IG9yIGh5ZHJhdGlvbiBjb25zb2xlIGVycm9ycyBpbiBSZWFjdCAxOS5cbi8vIE9uY2Ugd2Ugc3VyZmFjZSBjb25zb2xlLmVycm9yIGluIHRoZSBkZXYgb3ZlcmxheSBpbiBwYWdlcyByb3V0ZXIsIHdlIHNob3VsZCBvbmx5XG4vLyB1c2UgdGhpcyBmb3IgUmVhY3QgMTguXG5sZXQgaHlkcmF0aW9uRXJyb3JTdGF0ZSA9IHt9O1xuY29uc3Qgc3F1YXNoZWRIeWRyYXRpb25FcnJvckRldGFpbHMgPSBuZXcgV2Vha01hcCgpO1xuZnVuY3Rpb24gZ2V0U3F1YXNoZWRIeWRyYXRpb25FcnJvckRldGFpbHMoZXJyb3IpIHtcbiAgICByZXR1cm4gc3F1YXNoZWRIeWRyYXRpb25FcnJvckRldGFpbHMuaGFzKGVycm9yKSA/IHNxdWFzaGVkSHlkcmF0aW9uRXJyb3JEZXRhaWxzLmdldChlcnJvcikgOiBudWxsO1xufVxuZnVuY3Rpb24gYXR0YWNoSHlkcmF0aW9uRXJyb3JTdGF0ZShlcnJvcikge1xuICAgIGlmICghKDAsIF9yZWFjdDE4aHlkcmF0aW9uZXJyb3IuaXNIeWRyYXRpb25FcnJvcikoZXJyb3IpICYmICEoMCwgX3JlYWN0MTloeWRyYXRpb25lcnJvci5pc0h5ZHJhdGlvbkVycm9yKShlcnJvcikpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBsZXQgcGFyc2VkSHlkcmF0aW9uRXJyb3JTdGF0ZSA9IHt9O1xuICAgIC8vIElmIHRoZXJlJ3MgYW55IGV4dHJhIGluZm9ybWF0aW9uIGluIHRoZSBlcnJvciBtZXNzYWdlIHRvIGRpc3BsYXksXG4gICAgLy8gYXBwZW5kIGl0IHRvIHRoZSBlcnJvciBtZXNzYWdlIGRldGFpbHMgcHJvcGVydHlcbiAgICBpZiAoaHlkcmF0aW9uRXJyb3JTdGF0ZS53YXJuaW5nKSB7XG4gICAgICAgIC8vIFRoZSBwYXRjaGVkIGNvbnNvbGUuZXJyb3IgZm91bmQgaHlkcmF0aW9uIGVycm9ycyBsb2dnZWQgYnkgUmVhY3RcbiAgICAgICAgLy8gQXBwZW5kIHRoZSBsb2dnZWQgd2FybmluZyB0byB0aGUgZXJyb3IgbWVzc2FnZVxuICAgICAgICBwYXJzZWRIeWRyYXRpb25FcnJvclN0YXRlID0ge1xuICAgICAgICAgICAgLy8gSXQgY29udGFpbnMgdGhlIHdhcm5pbmcsIGNvbXBvbmVudCBzdGFjaywgc2VydmVyIGFuZCBjbGllbnQgdGFnIG5hbWVzXG4gICAgICAgICAgICAuLi5oeWRyYXRpb25FcnJvclN0YXRlXG4gICAgICAgIH07XG4gICAgICAgIC8vIENvbnN1bWUgdGhlIGNhY2hlZCBoeWRyYXRpb24gZGlmZi5cbiAgICAgICAgLy8gVGhpcyBpcyBvbmx5IHJlcXVpcmVkIGZvciBub3cgd2hlbiB3ZSBzdGlsbCBzcXVhc2hlZCB0aGUgaHlkcmF0aW9uIGRpZmYgbG9nIGludG8gaHlkcmF0aW9uIGVycm9yLlxuICAgICAgICAvLyBPbmNlIHRoZSBhbGwgZXJyb3IgaXMgbG9nZ2VkIHRvIGRldiBvdmVybGF5IGluIG9yZGVyLCB0aGlzIHdpbGwgZ28gYXdheS5cbiAgICAgICAgaWYgKGh5ZHJhdGlvbkVycm9yU3RhdGUucmVhY3RPdXRwdXRDb21wb25lbnREaWZmKSB7XG4gICAgICAgICAgICBwYXJzZWRIeWRyYXRpb25FcnJvclN0YXRlLnJlYWN0T3V0cHV0Q29tcG9uZW50RGlmZiA9IGh5ZHJhdGlvbkVycm9yU3RhdGUucmVhY3RPdXRwdXRDb21wb25lbnREaWZmO1xuICAgICAgICB9XG4gICAgICAgIHNxdWFzaGVkSHlkcmF0aW9uRXJyb3JEZXRhaWxzLnNldChlcnJvciwgcGFyc2VkSHlkcmF0aW9uRXJyb3JTdGF0ZSk7XG4gICAgfVxufVxuZnVuY3Rpb24gc3RvcmVIeWRyYXRpb25FcnJvclN0YXRlRnJvbUNvbnNvbGVBcmdzKCkge1xuICAgIGZvcih2YXIgX2xlbiA9IGFyZ3VtZW50cy5sZW5ndGgsIGFyZ3MgPSBuZXcgQXJyYXkoX2xlbiksIF9rZXkgPSAwOyBfa2V5IDwgX2xlbjsgX2tleSsrKXtcbiAgICAgICAgYXJnc1tfa2V5XSA9IGFyZ3VtZW50c1tfa2V5XTtcbiAgICB9XG4gICAgbGV0IFttZXNzYWdlLCBmaXJzdENvbnRlbnQsIHNlY29uZENvbnRlbnQsIC4uLnJlc3RdID0gYXJncztcbiAgICBpZiAoKDAsIF9yZWFjdDE4aHlkcmF0aW9uZXJyb3IuaXNIeWRyYXRpb25XYXJuaW5nKShtZXNzYWdlKSkge1xuICAgICAgICAvLyBTb21lIGh5ZHJhdGlvbiB3YXJuaW5ncyBoYXMgNCBhcmd1bWVudHMsIHNvbWUgaGFzIDMsIGZhbGxiYWNrIHRvIHRoZSBsYXN0IGFyZ3VtZW50XG4gICAgICAgIC8vIHdoZW4gdGhlIDNyZCBhcmd1bWVudCBpcyBub3QgdGhlIGNvbXBvbmVudCBzdGFjayBidXQgYW4gZW1wdHkgc3RyaW5nXG4gICAgICAgIC8vIEZvciBzb21lIHdhcm5pbmdzLCB0aGVyZSdzIG9ubHkgMSBhcmd1bWVudCBmb3IgdGVtcGxhdGUuXG4gICAgICAgIC8vIFRoZSBzZWNvbmQgYXJndW1lbnQgaXMgdGhlIGRpZmYgb3IgY29tcG9uZW50IHN0YWNrLlxuICAgICAgICBpZiAoYXJncy5sZW5ndGggPT09IDMpIHtcbiAgICAgICAgICAgIHNlY29uZENvbnRlbnQgPSAnJztcbiAgICAgICAgfVxuICAgICAgICBjb25zdCB3YXJuaW5nID0gbWVzc2FnZS5yZXBsYWNlKC9XYXJuaW5nOiAvLCAnJykucmVwbGFjZSgnJXMnLCBmaXJzdENvbnRlbnQpLnJlcGxhY2UoJyVzJywgc2Vjb25kQ29udGVudCkvLyByZW1vdmUgdGhlIGxhc3QgJXMgZnJvbSB0aGUgbWVzc2FnZVxuICAgICAgICAucmVwbGFjZSgvJXMvZywgJycpO1xuICAgICAgICBjb25zdCBsYXN0QXJnID0gKHJlc3RbcmVzdC5sZW5ndGggLSAxXSB8fCAnJykudHJpbSgpO1xuICAgICAgICBoeWRyYXRpb25FcnJvclN0YXRlLnJlYWN0T3V0cHV0Q29tcG9uZW50RGlmZiA9IGdlbmVyYXRlSHlkcmF0aW9uRGlmZlJlYWN0MTgobWVzc2FnZSwgZmlyc3RDb250ZW50LCBzZWNvbmRDb250ZW50LCBsYXN0QXJnKTtcbiAgICAgICAgaHlkcmF0aW9uRXJyb3JTdGF0ZS53YXJuaW5nID0gd2FybmluZztcbiAgICB9IGVsc2UgaWYgKCgwLCBfcmVhY3QxOWh5ZHJhdGlvbmVycm9yLmlzRXJyb3JNZXNzYWdlV2l0aENvbXBvbmVudFN0YWNrRGlmZikobWVzc2FnZSkpIHtcbiAgICAgICAgLy8gU29tZSBoeWRyYXRpb24gd2FybmluZ3MgaGFzIDQgYXJndW1lbnRzLCBzb21lIGhhcyAzLCBmYWxsYmFjayB0byB0aGUgbGFzdCBhcmd1bWVudFxuICAgICAgICAvLyB3aGVuIHRoZSAzcmQgYXJndW1lbnQgaXMgbm90IHRoZSBjb21wb25lbnQgc3RhY2sgYnV0IGFuIGVtcHR5IHN0cmluZ1xuICAgICAgICAvLyBGb3Igc29tZSB3YXJuaW5ncywgdGhlcmUncyBvbmx5IDEgYXJndW1lbnQgZm9yIHRlbXBsYXRlLlxuICAgICAgICAvLyBUaGUgc2Vjb25kIGFyZ3VtZW50IGlzIHRoZSBkaWZmIG9yIGNvbXBvbmVudCBzdGFjay5cbiAgICAgICAgaWYgKGFyZ3MubGVuZ3RoID09PSAzKSB7XG4gICAgICAgICAgICBzZWNvbmRDb250ZW50ID0gJyc7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3Qgd2FybmluZyA9IG1lc3NhZ2UucmVwbGFjZSgnJXMnLCBmaXJzdENvbnRlbnQpLnJlcGxhY2UoJyVzJywgc2Vjb25kQ29udGVudCkvLyByZW1vdmUgdGhlIGxhc3QgJXMgZnJvbSB0aGUgbWVzc2FnZVxuICAgICAgICAucmVwbGFjZSgvJXMvZywgJycpO1xuICAgICAgICBjb25zdCBsYXN0QXJnID0gKGFyZ3NbYXJncy5sZW5ndGggLSAxXSB8fCAnJykudHJpbSgpO1xuICAgICAgICBoeWRyYXRpb25FcnJvclN0YXRlLnJlYWN0T3V0cHV0Q29tcG9uZW50RGlmZiA9IGxhc3RBcmc7XG4gICAgICAgIGh5ZHJhdGlvbkVycm9yU3RhdGUud2FybmluZyA9IHdhcm5pbmc7XG4gICAgfVxufVxuLypcbiAqIFNvbWUgaHlkcmF0aW9uIGVycm9ycyBpbiBSZWFjdCAxOCBkb2VzIG5vdCBoYXZlIHRoZSBkaWZmIGluIHRoZSBlcnJvciBtZXNzYWdlLlxuICogSW5zdGVhZCBpdCBoYXMgdGhlIGVycm9yIHN0YWNrIHRyYWNlIHdoaWNoIGlzIGNvbXBvbmVudCBzdGFjayB0aGF0IHdlIGNhbiBsZXZlcmFnZS5cbiAqIFdpbGwgcGFyc2UgdGhlIGRpZmYgZnJvbSB0aGUgZXJyb3Igc3RhY2sgdHJhY2VcbiAqICBlLmcuXG4gKiAgV2FybmluZzogRXhwZWN0ZWQgc2VydmVyIEhUTUwgdG8gY29udGFpbiBhIG1hdGNoaW5nIDxkaXY+IGluIDxwPi5cbiAqICAgIGF0IGRpdlxuICogICAgYXQgcFxuICogICAgYXQgZGl2XG4gKiAgICBhdCBkaXZcbiAqICAgIGF0IFBhZ2VcbiAqICBvdXRwdXQ6XG4gKiAgICA8UGFnZT5cbiAqICAgICAgPGRpdj5cbiAqICAgICAgICA8cD5cbiAqICA+ICAgICAgIDxkaXY+XG4gKlxuICovIGZ1bmN0aW9uIGdlbmVyYXRlSHlkcmF0aW9uRGlmZlJlYWN0MTgobWVzc2FnZSwgZmlyc3RDb250ZW50LCBzZWNvbmRDb250ZW50LCBsYXN0QXJnKSB7XG4gICAgY29uc3QgY29tcG9uZW50U3RhY2sgPSBsYXN0QXJnO1xuICAgIGxldCBmaXJzdEluZGV4ID0gLTE7XG4gICAgbGV0IHNlY29uZEluZGV4ID0gLTE7XG4gICAgY29uc3QgaHlkcmF0aW9uV2FybmluZ1R5cGUgPSAoMCwgX3JlYWN0MThoeWRyYXRpb25lcnJvci5nZXRIeWRyYXRpb25XYXJuaW5nVHlwZSkobWVzc2FnZSk7XG4gICAgLy8gYXQgZGl2XFxuIGF0IEZvb1xcbiBhdCBCYXIgKC4uLi4pXFxuIC0+IFtkaXYsIEZvb11cbiAgICBjb25zdCBjb21wb25lbnRzID0gY29tcG9uZW50U3RhY2suc3BsaXQoJ1xcbicpLy8gLnJldmVyc2UoKVxuICAgIC5tYXAoKGxpbmUsIGluZGV4KT0+e1xuICAgICAgICAvLyBgPHNwYWNlPmF0IDxjb21wb25lbnQ+ICg8bG9jYXRpb24+KWAgLT4gYGF0IDxjb21wb25lbnQ+ICg8bG9jYXRpb24+KWBcbiAgICAgICAgbGluZSA9IGxpbmUudHJpbSgpO1xuICAgICAgICAvLyBleHRyYWN0IGA8c3BhY2U+YXQgPGNvbXBvbmVudD5gIHRvIGA8PGNvbXBvbmVudD4+YFxuICAgICAgICAvLyBlLmcuIGAgIGF0IEZvb2AgLT4gYDxGb28+YFxuICAgICAgICBjb25zdCBbLCBjb21wb25lbnQsIGxvY2F0aW9uXSA9IC9hdCAoXFx3KykoIFxcKCguKilcXCkpPy8uZXhlYyhsaW5lKSB8fCBbXTtcbiAgICAgICAgLy8gSWYgdGhlcmUncyBubyBsb2NhdGlvbiB0aGVuIGl0J3MgdXNlci1sYW5kIHN0YWNrIGZyYW1lXG4gICAgICAgIGlmICghbG9jYXRpb24pIHtcbiAgICAgICAgICAgIGlmIChjb21wb25lbnQgPT09IGZpcnN0Q29udGVudCAmJiBmaXJzdEluZGV4ID09PSAtMSkge1xuICAgICAgICAgICAgICAgIGZpcnN0SW5kZXggPSBpbmRleDtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoY29tcG9uZW50ID09PSBzZWNvbmRDb250ZW50ICYmIHNlY29uZEluZGV4ID09PSAtMSkge1xuICAgICAgICAgICAgICAgIHNlY29uZEluZGV4ID0gaW5kZXg7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGxvY2F0aW9uID8gJycgOiBjb21wb25lbnQ7XG4gICAgfSkuZmlsdGVyKEJvb2xlYW4pLnJldmVyc2UoKTtcbiAgICBsZXQgZGlmZiA9ICcnO1xuICAgIGZvcihsZXQgaSA9IDA7IGkgPCBjb21wb25lbnRzLmxlbmd0aDsgaSsrKXtcbiAgICAgICAgY29uc3QgY29tcG9uZW50ID0gY29tcG9uZW50c1tpXTtcbiAgICAgICAgY29uc3QgbWF0Y2hGaXJzdENvbnRlbnQgPSBoeWRyYXRpb25XYXJuaW5nVHlwZSA9PT0gJ3RhZycgJiYgaSA9PT0gY29tcG9uZW50cy5sZW5ndGggLSBmaXJzdEluZGV4IC0gMTtcbiAgICAgICAgY29uc3QgbWF0Y2hTZWNvbmRDb250ZW50ID0gaHlkcmF0aW9uV2FybmluZ1R5cGUgPT09ICd0YWcnICYmIGkgPT09IGNvbXBvbmVudHMubGVuZ3RoIC0gc2Vjb25kSW5kZXggLSAxO1xuICAgICAgICBpZiAobWF0Y2hGaXJzdENvbnRlbnQgfHwgbWF0Y2hTZWNvbmRDb250ZW50KSB7XG4gICAgICAgICAgICBjb25zdCBzcGFjZXMgPSAnICcucmVwZWF0KE1hdGgubWF4KGkgKiAyIC0gMiwgMCkgKyAyKTtcbiAgICAgICAgICAgIGRpZmYgKz0gXCI+IFwiICsgc3BhY2VzICsgXCI8XCIgKyBjb21wb25lbnQgKyBcIj5cXG5cIjtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGNvbnN0IHNwYWNlcyA9ICcgJy5yZXBlYXQoaSAqIDIgKyAyKTtcbiAgICAgICAgICAgIGRpZmYgKz0gc3BhY2VzICsgXCI8XCIgKyBjb21wb25lbnQgKyBcIj5cXG5cIjtcbiAgICAgICAgfVxuICAgIH1cbiAgICBpZiAoaHlkcmF0aW9uV2FybmluZ1R5cGUgPT09ICd0ZXh0Jykge1xuICAgICAgICBjb25zdCBzcGFjZXMgPSAnICcucmVwZWF0KGNvbXBvbmVudHMubGVuZ3RoICogMik7XG4gICAgICAgIGRpZmYgKz0gXCIrIFwiICsgc3BhY2VzICsgJ1wiJyArIGZpcnN0Q29udGVudCArICdcIlxcbic7XG4gICAgICAgIGRpZmYgKz0gXCItIFwiICsgc3BhY2VzICsgJ1wiJyArIHNlY29uZENvbnRlbnQgKyAnXCJcXG4nO1xuICAgIH0gZWxzZSBpZiAoaHlkcmF0aW9uV2FybmluZ1R5cGUgPT09ICd0ZXh0LWluLXRhZycpIHtcbiAgICAgICAgY29uc3Qgc3BhY2VzID0gJyAnLnJlcGVhdChjb21wb25lbnRzLmxlbmd0aCAqIDIpO1xuICAgICAgICBkaWZmICs9IFwiPiBcIiArIHNwYWNlcyArIFwiPFwiICsgc2Vjb25kQ29udGVudCArIFwiPlxcblwiO1xuICAgICAgICBkaWZmICs9IFwiPiAgIFwiICsgc3BhY2VzICsgJ1wiJyArIGZpcnN0Q29udGVudCArICdcIlxcbic7XG4gICAgfVxuICAgIHJldHVybiBkaWZmO1xufVxuXG5pZiAoKHR5cGVvZiBleHBvcnRzLmRlZmF1bHQgPT09ICdmdW5jdGlvbicgfHwgKHR5cGVvZiBleHBvcnRzLmRlZmF1bHQgPT09ICdvYmplY3QnICYmIGV4cG9ydHMuZGVmYXVsdCAhPT0gbnVsbCkpICYmIHR5cGVvZiBleHBvcnRzLmRlZmF1bHQuX19lc01vZHVsZSA9PT0gJ3VuZGVmaW5lZCcpIHtcbiAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMuZGVmYXVsdCwgJ19fZXNNb2R1bGUnLCB7IHZhbHVlOiB0cnVlIH0pO1xuICBPYmplY3QuYXNzaWduKGV4cG9ydHMuZGVmYXVsdCwgZXhwb3J0cyk7XG4gIG1vZHVsZS5leHBvcnRzID0gZXhwb3J0cy5kZWZhdWx0O1xufVxuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1oeWRyYXRpb24tZXJyb3Itc3RhdGUuanMubWFwIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(pages-dir-browser)/./node_modules/next/dist/next-devtools/userspace/pages/hydration-error-state.js\n")); - -/***/ }), - -/***/ "(pages-dir-browser)/./node_modules/next/dist/next-devtools/userspace/pages/pages-dev-overlay-error-boundary.js": -/*!**************************************************************************************************!*\ - !*** ./node_modules/next/dist/next-devtools/userspace/pages/pages-dev-overlay-error-boundary.js ***! - \**************************************************************************************************/ -/***/ ((module, exports, __webpack_require__) => { - -"use strict"; -eval(__webpack_require__.ts("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"PagesDevOverlayErrorBoundary\", ({\n enumerable: true,\n get: function() {\n return PagesDevOverlayErrorBoundary;\n }\n}));\nconst _interop_require_default = __webpack_require__(/*! @swc/helpers/_/_interop_require_default */ \"(pages-dir-browser)/./node_modules/@swc/helpers/esm/_interop_require_default.js\");\nconst _react = /*#__PURE__*/ _interop_require_default._(__webpack_require__(/*! react */ \"(pages-dir-browser)/./node_modules/react/index.js\"));\nclass PagesDevOverlayErrorBoundary extends _react.default.PureComponent {\n static getDerivedStateFromError(error) {\n return {\n error\n };\n }\n // Explicit type is needed to avoid the generated `.d.ts` having a wide return type that could be specific to the `@types/react` version.\n render() {\n // The component has to be unmounted or else it would continue to error\n return this.state.error ? null : this.props.children;\n }\n constructor(...args){\n super(...args), this.state = {\n error: null\n };\n }\n}\n\nif ((typeof exports.default === 'function' || (typeof exports.default === 'object' && exports.default !== null)) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', { value: true });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n}\n\n//# sourceMappingURL=pages-dev-overlay-error-boundary.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvbmV4dC1kZXZ0b29scy91c2Vyc3BhY2UvcGFnZXMvcGFnZXMtZGV2LW92ZXJsYXktZXJyb3ItYm91bmRhcnkuanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYiw4Q0FBNkM7QUFDN0M7QUFDQSxDQUFDLEVBQUM7QUFDRixnRUFBK0Q7QUFDL0Q7QUFDQTtBQUNBO0FBQ0E7QUFDQSxDQUFDLEVBQUM7QUFDRixpQ0FBaUMsbUJBQU8sQ0FBQyxnSUFBeUM7QUFDbEYsd0RBQXdELG1CQUFPLENBQUMsZ0VBQU87QUFDdkU7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBLHlEQUF5RCxhQUFhO0FBQ3RFO0FBQ0E7QUFDQTs7QUFFQSIsInNvdXJjZXMiOlsiRDpcXGRvbmd5dW4tcHJvamVjdHNcXHR3b1xcbm9kZV9tb2R1bGVzXFxuZXh0XFxkaXN0XFxuZXh0LWRldnRvb2xzXFx1c2Vyc3BhY2VcXHBhZ2VzXFxwYWdlcy1kZXYtb3ZlcmxheS1lcnJvci1ib3VuZGFyeS5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwge1xuICAgIHZhbHVlOiB0cnVlXG59KTtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIlBhZ2VzRGV2T3ZlcmxheUVycm9yQm91bmRhcnlcIiwge1xuICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgZ2V0OiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIFBhZ2VzRGV2T3ZlcmxheUVycm9yQm91bmRhcnk7XG4gICAgfVxufSk7XG5jb25zdCBfaW50ZXJvcF9yZXF1aXJlX2RlZmF1bHQgPSByZXF1aXJlKFwiQHN3Yy9oZWxwZXJzL18vX2ludGVyb3BfcmVxdWlyZV9kZWZhdWx0XCIpO1xuY29uc3QgX3JlYWN0ID0gLyojX19QVVJFX18qLyBfaW50ZXJvcF9yZXF1aXJlX2RlZmF1bHQuXyhyZXF1aXJlKFwicmVhY3RcIikpO1xuY2xhc3MgUGFnZXNEZXZPdmVybGF5RXJyb3JCb3VuZGFyeSBleHRlbmRzIF9yZWFjdC5kZWZhdWx0LlB1cmVDb21wb25lbnQge1xuICAgIHN0YXRpYyBnZXREZXJpdmVkU3RhdGVGcm9tRXJyb3IoZXJyb3IpIHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIGVycm9yXG4gICAgICAgIH07XG4gICAgfVxuICAgIC8vIEV4cGxpY2l0IHR5cGUgaXMgbmVlZGVkIHRvIGF2b2lkIHRoZSBnZW5lcmF0ZWQgYC5kLnRzYCBoYXZpbmcgYSB3aWRlIHJldHVybiB0eXBlIHRoYXQgY291bGQgYmUgc3BlY2lmaWMgdG8gdGhlIGBAdHlwZXMvcmVhY3RgIHZlcnNpb24uXG4gICAgcmVuZGVyKCkge1xuICAgICAgICAvLyBUaGUgY29tcG9uZW50IGhhcyB0byBiZSB1bm1vdW50ZWQgb3IgZWxzZSBpdCB3b3VsZCBjb250aW51ZSB0byBlcnJvclxuICAgICAgICByZXR1cm4gdGhpcy5zdGF0ZS5lcnJvciA/IG51bGwgOiB0aGlzLnByb3BzLmNoaWxkcmVuO1xuICAgIH1cbiAgICBjb25zdHJ1Y3RvciguLi5hcmdzKXtcbiAgICAgICAgc3VwZXIoLi4uYXJncyksIHRoaXMuc3RhdGUgPSB7XG4gICAgICAgICAgICBlcnJvcjogbnVsbFxuICAgICAgICB9O1xuICAgIH1cbn1cblxuaWYgKCh0eXBlb2YgZXhwb3J0cy5kZWZhdWx0ID09PSAnZnVuY3Rpb24nIHx8ICh0eXBlb2YgZXhwb3J0cy5kZWZhdWx0ID09PSAnb2JqZWN0JyAmJiBleHBvcnRzLmRlZmF1bHQgIT09IG51bGwpKSAmJiB0eXBlb2YgZXhwb3J0cy5kZWZhdWx0Ll9fZXNNb2R1bGUgPT09ICd1bmRlZmluZWQnKSB7XG4gIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLmRlZmF1bHQsICdfX2VzTW9kdWxlJywgeyB2YWx1ZTogdHJ1ZSB9KTtcbiAgT2JqZWN0LmFzc2lnbihleHBvcnRzLmRlZmF1bHQsIGV4cG9ydHMpO1xuICBtb2R1bGUuZXhwb3J0cyA9IGV4cG9ydHMuZGVmYXVsdDtcbn1cblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9cGFnZXMtZGV2LW92ZXJsYXktZXJyb3ItYm91bmRhcnkuanMubWFwIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(pages-dir-browser)/./node_modules/next/dist/next-devtools/userspace/pages/pages-dev-overlay-error-boundary.js\n")); - -/***/ }), - -/***/ "(pages-dir-browser)/./node_modules/next/dist/next-devtools/userspace/pages/pages-dev-overlay-setup.js": -/*!*****************************************************************************************!*\ - !*** ./node_modules/next/dist/next-devtools/userspace/pages/pages-dev-overlay-setup.js ***! - \*****************************************************************************************/ -/***/ ((module, exports, __webpack_require__) => { - -"use strict"; -eval(__webpack_require__.ts("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n PagesDevOverlayBridge: function() {\n return PagesDevOverlayBridge;\n },\n register: function() {\n return register;\n }\n});\nconst _interop_require_default = __webpack_require__(/*! @swc/helpers/_/_interop_require_default */ \"(pages-dir-browser)/./node_modules/@swc/helpers/esm/_interop_require_default.js\");\nconst _jsxruntime = __webpack_require__(/*! react/jsx-runtime */ \"(pages-dir-browser)/./node_modules/react/jsx-runtime.js\");\nconst _react = /*#__PURE__*/ _interop_require_default._(__webpack_require__(/*! react */ \"(pages-dir-browser)/./node_modules/react/index.js\"));\nconst _nextdevtools = __webpack_require__(/*! next/dist/compiled/next-devtools */ \"(pages-dir-browser)/./node_modules/next/dist/compiled/next-devtools/index.js\");\nconst _hydrationerrorstate = __webpack_require__(/*! ./hydration-error-state */ \"(pages-dir-browser)/./node_modules/next/dist/next-devtools/userspace/pages/hydration-error-state.js\");\nconst _router = __webpack_require__(/*! ../../../client/router */ \"(pages-dir-browser)/./node_modules/next/dist/client/router.js\");\nconst _stitchederror = __webpack_require__(/*! ../app/errors/stitched-error */ \"(pages-dir-browser)/./node_modules/next/dist/next-devtools/userspace/app/errors/stitched-error.js\");\nconst _onrecoverableerror = __webpack_require__(/*! ../../../client/react-client-callbacks/on-recoverable-error */ \"(pages-dir-browser)/./node_modules/next/dist/client/react-client-callbacks/on-recoverable-error.js\");\nconst _pagesdevoverlayerrorboundary = __webpack_require__(/*! ./pages-dev-overlay-error-boundary */ \"(pages-dir-browser)/./node_modules/next/dist/next-devtools/userspace/pages/pages-dev-overlay-error-boundary.js\");\nconst _forwardlogs = __webpack_require__(/*! ../app/forward-logs */ \"(pages-dir-browser)/./node_modules/next/dist/next-devtools/userspace/app/forward-logs.js\");\nconst usePagesDevOverlayBridge = ()=>{\n _react.default.useInsertionEffect(()=>{\n // NDT uses a different React instance so it's not technically a state update\n // scheduled from useInsertionEffect.\n (0, _nextdevtools.renderPagesDevOverlay)(_stitchederror.getComponentStack, _stitchederror.getOwnerStack, _hydrationerrorstate.getSquashedHydrationErrorDetails, _onrecoverableerror.isRecoverableError);\n }, []);\n _react.default.useEffect(()=>{\n const { handleStaticIndicator } = __webpack_require__(/*! ../../../client/dev/hot-reloader/pages/hot-reloader-pages */ \"(pages-dir-browser)/./node_modules/next/dist/client/dev/hot-reloader/pages/hot-reloader-pages.js\");\n _router.Router.events.on('routeChangeComplete', handleStaticIndicator);\n return function() {\n _router.Router.events.off('routeChangeComplete', handleStaticIndicator);\n };\n }, []);\n};\nfunction PagesDevOverlayBridge(param) {\n let { children } = param;\n usePagesDevOverlayBridge();\n return /*#__PURE__*/ (0, _jsxruntime.jsx)(_pagesdevoverlayerrorboundary.PagesDevOverlayErrorBoundary, {\n children: children\n });\n}\nlet isRegistered = false;\nfunction handleError(error) {\n if (!error || !(error instanceof Error) || typeof error.stack !== 'string') {\n // A non-error was thrown, we don't have anything to show. :-(\n return;\n }\n (0, _hydrationerrorstate.attachHydrationErrorState)(error);\n // Skip ModuleBuildError and ModuleNotFoundError, as it will be sent through onBuildError callback.\n // This is to avoid same error as different type showing up on client to cause flashing.\n if (error.name !== 'ModuleBuildError' && error.name !== 'ModuleNotFoundError') {\n _nextdevtools.dispatcher.onUnhandledError(error);\n }\n}\nlet origConsoleError = console.error;\nfunction nextJsHandleConsoleError() {\n for(var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++){\n args[_key] = arguments[_key];\n }\n // See https://github.com/facebook/react/blob/d50323eb845c5fde0d720cae888bf35dedd05506/packages/react-reconciler/src/ReactFiberErrorLogger.js#L78\n const maybeError = true ? args[1] : 0;\n (0, _hydrationerrorstate.storeHydrationErrorStateFromConsoleArgs)(...args);\n // TODO: Surfaces non-errors logged via `console.error`.\n handleError(maybeError);\n if (_forwardlogs.isTerminalLoggingEnabled) {\n (0, _forwardlogs.forwardErrorLog)(args);\n }\n origConsoleError.apply(window.console, args);\n}\nfunction onUnhandledError(event) {\n const error = event == null ? void 0 : event.error;\n handleError(error);\n if (error && _forwardlogs.isTerminalLoggingEnabled) {\n (0, _forwardlogs.forwardUnhandledError)(error);\n }\n}\nfunction onUnhandledRejection(ev) {\n const reason = ev == null ? void 0 : ev.reason;\n if (!reason || !(reason instanceof Error) || typeof reason.stack !== 'string') {\n // A non-error was thrown, we don't have anything to show. :-(\n return;\n }\n _nextdevtools.dispatcher.onUnhandledRejection(reason);\n if (_forwardlogs.isTerminalLoggingEnabled) {\n (0, _forwardlogs.logUnhandledRejection)(reason);\n }\n}\nfunction register() {\n if (isRegistered) {\n return;\n }\n isRegistered = true;\n try {\n Error.stackTraceLimit = 50;\n } catch (e) {}\n if (_forwardlogs.isTerminalLoggingEnabled) {\n (0, _forwardlogs.initializeDebugLogForwarding)('pages');\n }\n window.addEventListener('error', onUnhandledError);\n window.addEventListener('unhandledrejection', onUnhandledRejection);\n window.console.error = nextJsHandleConsoleError;\n}\n\nif ((typeof exports.default === 'function' || (typeof exports.default === 'object' && exports.default !== null)) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', { value: true });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n}\n\n//# sourceMappingURL=pages-dev-overlay-setup.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvbmV4dC1kZXZ0b29scy91c2Vyc3BhY2UvcGFnZXMvcGFnZXMtZGV2LW92ZXJsYXktc2V0dXAuanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYiw4Q0FBNkM7QUFDN0M7QUFDQSxDQUFDLEVBQUM7QUFDRixNQUFNLENBR0w7QUFDRDtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQSxDQUFDO0FBQ0QsaUNBQWlDLG1CQUFPLENBQUMsZ0lBQXlDO0FBQ2xGLG9CQUFvQixtQkFBTyxDQUFDLGtGQUFtQjtBQUMvQyx3REFBd0QsbUJBQU8sQ0FBQyxnRUFBTztBQUN2RSxzQkFBc0IsbUJBQU8sQ0FBQyxzSEFBa0M7QUFDaEUsNkJBQTZCLG1CQUFPLENBQUMsb0lBQXlCO0FBQzlELGdCQUFnQixtQkFBTyxDQUFDLDZGQUF3QjtBQUNoRCx1QkFBdUIsbUJBQU8sQ0FBQyx1SUFBOEI7QUFDN0QsNEJBQTRCLG1CQUFPLENBQUMsdUtBQTZEO0FBQ2pHLHNDQUFzQyxtQkFBTyxDQUFDLDBKQUFvQztBQUNsRixxQkFBcUIsbUJBQU8sQ0FBQyxxSEFBcUI7QUFDbEQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBLGdCQUFnQix3QkFBd0IsRUFBRSxtQkFBTyxDQUFDLG1LQUEyRDtBQUM3RztBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsVUFBVSxXQUFXO0FBQ3JCO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHVFQUF1RSxhQUFhO0FBQ3BGO0FBQ0E7QUFDQTtBQUNBLHVCQUF1QixLQUFxQyxhQUFhLENBQU87QUFDaEY7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsTUFBTTtBQUNOO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0EseURBQXlELGFBQWE7QUFDdEU7QUFDQTtBQUNBOztBQUVBIiwic291cmNlcyI6WyJEOlxcZG9uZ3l1bi1wcm9qZWN0c1xcdHdvXFxub2RlX21vZHVsZXNcXG5leHRcXGRpc3RcXG5leHQtZGV2dG9vbHNcXHVzZXJzcGFjZVxccGFnZXNcXHBhZ2VzLWRldi1vdmVybGF5LXNldHVwLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7XG4gICAgdmFsdWU6IHRydWVcbn0pO1xuMCAmJiAobW9kdWxlLmV4cG9ydHMgPSB7XG4gICAgUGFnZXNEZXZPdmVybGF5QnJpZGdlOiBudWxsLFxuICAgIHJlZ2lzdGVyOiBudWxsXG59KTtcbmZ1bmN0aW9uIF9leHBvcnQodGFyZ2V0LCBhbGwpIHtcbiAgICBmb3IodmFyIG5hbWUgaW4gYWxsKU9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0YXJnZXQsIG5hbWUsIHtcbiAgICAgICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICAgICAgZ2V0OiBhbGxbbmFtZV1cbiAgICB9KTtcbn1cbl9leHBvcnQoZXhwb3J0cywge1xuICAgIFBhZ2VzRGV2T3ZlcmxheUJyaWRnZTogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBQYWdlc0Rldk92ZXJsYXlCcmlkZ2U7XG4gICAgfSxcbiAgICByZWdpc3RlcjogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiByZWdpc3RlcjtcbiAgICB9XG59KTtcbmNvbnN0IF9pbnRlcm9wX3JlcXVpcmVfZGVmYXVsdCA9IHJlcXVpcmUoXCJAc3djL2hlbHBlcnMvXy9faW50ZXJvcF9yZXF1aXJlX2RlZmF1bHRcIik7XG5jb25zdCBfanN4cnVudGltZSA9IHJlcXVpcmUoXCJyZWFjdC9qc3gtcnVudGltZVwiKTtcbmNvbnN0IF9yZWFjdCA9IC8qI19fUFVSRV9fKi8gX2ludGVyb3BfcmVxdWlyZV9kZWZhdWx0Ll8ocmVxdWlyZShcInJlYWN0XCIpKTtcbmNvbnN0IF9uZXh0ZGV2dG9vbHMgPSByZXF1aXJlKFwibmV4dC9kaXN0L2NvbXBpbGVkL25leHQtZGV2dG9vbHNcIik7XG5jb25zdCBfaHlkcmF0aW9uZXJyb3JzdGF0ZSA9IHJlcXVpcmUoXCIuL2h5ZHJhdGlvbi1lcnJvci1zdGF0ZVwiKTtcbmNvbnN0IF9yb3V0ZXIgPSByZXF1aXJlKFwiLi4vLi4vLi4vY2xpZW50L3JvdXRlclwiKTtcbmNvbnN0IF9zdGl0Y2hlZGVycm9yID0gcmVxdWlyZShcIi4uL2FwcC9lcnJvcnMvc3RpdGNoZWQtZXJyb3JcIik7XG5jb25zdCBfb25yZWNvdmVyYWJsZWVycm9yID0gcmVxdWlyZShcIi4uLy4uLy4uL2NsaWVudC9yZWFjdC1jbGllbnQtY2FsbGJhY2tzL29uLXJlY292ZXJhYmxlLWVycm9yXCIpO1xuY29uc3QgX3BhZ2VzZGV2b3ZlcmxheWVycm9yYm91bmRhcnkgPSByZXF1aXJlKFwiLi9wYWdlcy1kZXYtb3ZlcmxheS1lcnJvci1ib3VuZGFyeVwiKTtcbmNvbnN0IF9mb3J3YXJkbG9ncyA9IHJlcXVpcmUoXCIuLi9hcHAvZm9yd2FyZC1sb2dzXCIpO1xuY29uc3QgdXNlUGFnZXNEZXZPdmVybGF5QnJpZGdlID0gKCk9PntcbiAgICBfcmVhY3QuZGVmYXVsdC51c2VJbnNlcnRpb25FZmZlY3QoKCk9PntcbiAgICAgICAgLy8gTkRUIHVzZXMgYSBkaWZmZXJlbnQgUmVhY3QgaW5zdGFuY2Ugc28gaXQncyBub3QgdGVjaG5pY2FsbHkgYSBzdGF0ZSB1cGRhdGVcbiAgICAgICAgLy8gc2NoZWR1bGVkIGZyb20gdXNlSW5zZXJ0aW9uRWZmZWN0LlxuICAgICAgICAoMCwgX25leHRkZXZ0b29scy5yZW5kZXJQYWdlc0Rldk92ZXJsYXkpKF9zdGl0Y2hlZGVycm9yLmdldENvbXBvbmVudFN0YWNrLCBfc3RpdGNoZWRlcnJvci5nZXRPd25lclN0YWNrLCBfaHlkcmF0aW9uZXJyb3JzdGF0ZS5nZXRTcXVhc2hlZEh5ZHJhdGlvbkVycm9yRGV0YWlscywgX29ucmVjb3ZlcmFibGVlcnJvci5pc1JlY292ZXJhYmxlRXJyb3IpO1xuICAgIH0sIFtdKTtcbiAgICBfcmVhY3QuZGVmYXVsdC51c2VFZmZlY3QoKCk9PntcbiAgICAgICAgY29uc3QgeyBoYW5kbGVTdGF0aWNJbmRpY2F0b3IgfSA9IHJlcXVpcmUoJy4uLy4uLy4uL2NsaWVudC9kZXYvaG90LXJlbG9hZGVyL3BhZ2VzL2hvdC1yZWxvYWRlci1wYWdlcycpO1xuICAgICAgICBfcm91dGVyLlJvdXRlci5ldmVudHMub24oJ3JvdXRlQ2hhbmdlQ29tcGxldGUnLCBoYW5kbGVTdGF0aWNJbmRpY2F0b3IpO1xuICAgICAgICByZXR1cm4gZnVuY3Rpb24oKSB7XG4gICAgICAgICAgICBfcm91dGVyLlJvdXRlci5ldmVudHMub2ZmKCdyb3V0ZUNoYW5nZUNvbXBsZXRlJywgaGFuZGxlU3RhdGljSW5kaWNhdG9yKTtcbiAgICAgICAgfTtcbiAgICB9LCBbXSk7XG59O1xuZnVuY3Rpb24gUGFnZXNEZXZPdmVybGF5QnJpZGdlKHBhcmFtKSB7XG4gICAgbGV0IHsgY2hpbGRyZW4gfSA9IHBhcmFtO1xuICAgIHVzZVBhZ2VzRGV2T3ZlcmxheUJyaWRnZSgpO1xuICAgIHJldHVybiAvKiNfX1BVUkVfXyovICgwLCBfanN4cnVudGltZS5qc3gpKF9wYWdlc2Rldm92ZXJsYXllcnJvcmJvdW5kYXJ5LlBhZ2VzRGV2T3ZlcmxheUVycm9yQm91bmRhcnksIHtcbiAgICAgICAgY2hpbGRyZW46IGNoaWxkcmVuXG4gICAgfSk7XG59XG5sZXQgaXNSZWdpc3RlcmVkID0gZmFsc2U7XG5mdW5jdGlvbiBoYW5kbGVFcnJvcihlcnJvcikge1xuICAgIGlmICghZXJyb3IgfHwgIShlcnJvciBpbnN0YW5jZW9mIEVycm9yKSB8fCB0eXBlb2YgZXJyb3Iuc3RhY2sgIT09ICdzdHJpbmcnKSB7XG4gICAgICAgIC8vIEEgbm9uLWVycm9yIHdhcyB0aHJvd24sIHdlIGRvbid0IGhhdmUgYW55dGhpbmcgdG8gc2hvdy4gOi0oXG4gICAgICAgIHJldHVybjtcbiAgICB9XG4gICAgKDAsIF9oeWRyYXRpb25lcnJvcnN0YXRlLmF0dGFjaEh5ZHJhdGlvbkVycm9yU3RhdGUpKGVycm9yKTtcbiAgICAvLyBTa2lwIE1vZHVsZUJ1aWxkRXJyb3IgYW5kIE1vZHVsZU5vdEZvdW5kRXJyb3IsIGFzIGl0IHdpbGwgYmUgc2VudCB0aHJvdWdoIG9uQnVpbGRFcnJvciBjYWxsYmFjay5cbiAgICAvLyBUaGlzIGlzIHRvIGF2b2lkIHNhbWUgZXJyb3IgYXMgZGlmZmVyZW50IHR5cGUgc2hvd2luZyB1cCBvbiBjbGllbnQgdG8gY2F1c2UgZmxhc2hpbmcuXG4gICAgaWYgKGVycm9yLm5hbWUgIT09ICdNb2R1bGVCdWlsZEVycm9yJyAmJiBlcnJvci5uYW1lICE9PSAnTW9kdWxlTm90Rm91bmRFcnJvcicpIHtcbiAgICAgICAgX25leHRkZXZ0b29scy5kaXNwYXRjaGVyLm9uVW5oYW5kbGVkRXJyb3IoZXJyb3IpO1xuICAgIH1cbn1cbmxldCBvcmlnQ29uc29sZUVycm9yID0gY29uc29sZS5lcnJvcjtcbmZ1bmN0aW9uIG5leHRKc0hhbmRsZUNvbnNvbGVFcnJvcigpIHtcbiAgICBmb3IodmFyIF9sZW4gPSBhcmd1bWVudHMubGVuZ3RoLCBhcmdzID0gbmV3IEFycmF5KF9sZW4pLCBfa2V5ID0gMDsgX2tleSA8IF9sZW47IF9rZXkrKyl7XG4gICAgICAgIGFyZ3NbX2tleV0gPSBhcmd1bWVudHNbX2tleV07XG4gICAgfVxuICAgIC8vIFNlZSBodHRwczovL2dpdGh1Yi5jb20vZmFjZWJvb2svcmVhY3QvYmxvYi9kNTAzMjNlYjg0NWM1ZmRlMGQ3MjBjYWU4ODhiZjM1ZGVkZDA1NTA2L3BhY2thZ2VzL3JlYWN0LXJlY29uY2lsZXIvc3JjL1JlYWN0RmliZXJFcnJvckxvZ2dlci5qcyNMNzhcbiAgICBjb25zdCBtYXliZUVycm9yID0gcHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJyA/IGFyZ3NbMV0gOiBhcmdzWzBdO1xuICAgICgwLCBfaHlkcmF0aW9uZXJyb3JzdGF0ZS5zdG9yZUh5ZHJhdGlvbkVycm9yU3RhdGVGcm9tQ29uc29sZUFyZ3MpKC4uLmFyZ3MpO1xuICAgIC8vIFRPRE86IFN1cmZhY2VzIG5vbi1lcnJvcnMgbG9nZ2VkIHZpYSBgY29uc29sZS5lcnJvcmAuXG4gICAgaGFuZGxlRXJyb3IobWF5YmVFcnJvcik7XG4gICAgaWYgKF9mb3J3YXJkbG9ncy5pc1Rlcm1pbmFsTG9nZ2luZ0VuYWJsZWQpIHtcbiAgICAgICAgKDAsIF9mb3J3YXJkbG9ncy5mb3J3YXJkRXJyb3JMb2cpKGFyZ3MpO1xuICAgIH1cbiAgICBvcmlnQ29uc29sZUVycm9yLmFwcGx5KHdpbmRvdy5jb25zb2xlLCBhcmdzKTtcbn1cbmZ1bmN0aW9uIG9uVW5oYW5kbGVkRXJyb3IoZXZlbnQpIHtcbiAgICBjb25zdCBlcnJvciA9IGV2ZW50ID09IG51bGwgPyB2b2lkIDAgOiBldmVudC5lcnJvcjtcbiAgICBoYW5kbGVFcnJvcihlcnJvcik7XG4gICAgaWYgKGVycm9yICYmIF9mb3J3YXJkbG9ncy5pc1Rlcm1pbmFsTG9nZ2luZ0VuYWJsZWQpIHtcbiAgICAgICAgKDAsIF9mb3J3YXJkbG9ncy5mb3J3YXJkVW5oYW5kbGVkRXJyb3IpKGVycm9yKTtcbiAgICB9XG59XG5mdW5jdGlvbiBvblVuaGFuZGxlZFJlamVjdGlvbihldikge1xuICAgIGNvbnN0IHJlYXNvbiA9IGV2ID09IG51bGwgPyB2b2lkIDAgOiBldi5yZWFzb247XG4gICAgaWYgKCFyZWFzb24gfHwgIShyZWFzb24gaW5zdGFuY2VvZiBFcnJvcikgfHwgdHlwZW9mIHJlYXNvbi5zdGFjayAhPT0gJ3N0cmluZycpIHtcbiAgICAgICAgLy8gQSBub24tZXJyb3Igd2FzIHRocm93biwgd2UgZG9uJ3QgaGF2ZSBhbnl0aGluZyB0byBzaG93LiA6LShcbiAgICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBfbmV4dGRldnRvb2xzLmRpc3BhdGNoZXIub25VbmhhbmRsZWRSZWplY3Rpb24ocmVhc29uKTtcbiAgICBpZiAoX2ZvcndhcmRsb2dzLmlzVGVybWluYWxMb2dnaW5nRW5hYmxlZCkge1xuICAgICAgICAoMCwgX2ZvcndhcmRsb2dzLmxvZ1VuaGFuZGxlZFJlamVjdGlvbikocmVhc29uKTtcbiAgICB9XG59XG5mdW5jdGlvbiByZWdpc3RlcigpIHtcbiAgICBpZiAoaXNSZWdpc3RlcmVkKSB7XG4gICAgICAgIHJldHVybjtcbiAgICB9XG4gICAgaXNSZWdpc3RlcmVkID0gdHJ1ZTtcbiAgICB0cnkge1xuICAgICAgICBFcnJvci5zdGFja1RyYWNlTGltaXQgPSA1MDtcbiAgICB9IGNhdGNoIChlKSB7fVxuICAgIGlmIChfZm9yd2FyZGxvZ3MuaXNUZXJtaW5hbExvZ2dpbmdFbmFibGVkKSB7XG4gICAgICAgICgwLCBfZm9yd2FyZGxvZ3MuaW5pdGlhbGl6ZURlYnVnTG9nRm9yd2FyZGluZykoJ3BhZ2VzJyk7XG4gICAgfVxuICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdlcnJvcicsIG9uVW5oYW5kbGVkRXJyb3IpO1xuICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCd1bmhhbmRsZWRyZWplY3Rpb24nLCBvblVuaGFuZGxlZFJlamVjdGlvbik7XG4gICAgd2luZG93LmNvbnNvbGUuZXJyb3IgPSBuZXh0SnNIYW5kbGVDb25zb2xlRXJyb3I7XG59XG5cbmlmICgodHlwZW9mIGV4cG9ydHMuZGVmYXVsdCA9PT0gJ2Z1bmN0aW9uJyB8fCAodHlwZW9mIGV4cG9ydHMuZGVmYXVsdCA9PT0gJ29iamVjdCcgJiYgZXhwb3J0cy5kZWZhdWx0ICE9PSBudWxsKSkgJiYgdHlwZW9mIGV4cG9ydHMuZGVmYXVsdC5fX2VzTW9kdWxlID09PSAndW5kZWZpbmVkJykge1xuICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cy5kZWZhdWx0LCAnX19lc01vZHVsZScsIHsgdmFsdWU6IHRydWUgfSk7XG4gIE9iamVjdC5hc3NpZ24oZXhwb3J0cy5kZWZhdWx0LCBleHBvcnRzKTtcbiAgbW9kdWxlLmV4cG9ydHMgPSBleHBvcnRzLmRlZmF1bHQ7XG59XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPXBhZ2VzLWRldi1vdmVybGF5LXNldHVwLmpzLm1hcCJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(pages-dir-browser)/./node_modules/next/dist/next-devtools/userspace/pages/pages-dev-overlay-setup.js\n")); - -/***/ }), - -/***/ "(pages-dir-browser)/./node_modules/next/dist/server/dev/hot-reloader-types.js": -/*!*****************************************************************!*\ - !*** ./node_modules/next/dist/server/dev/hot-reloader-types.js ***! - \*****************************************************************/ -/***/ ((__unused_webpack_module, exports, __webpack_require__) => { - -"use strict"; -eval(__webpack_require__.ts("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"HMR_ACTIONS_SENT_TO_BROWSER\", ({\n enumerable: true,\n get: function() {\n return HMR_ACTIONS_SENT_TO_BROWSER;\n }\n}));\nvar HMR_ACTIONS_SENT_TO_BROWSER = /*#__PURE__*/ function(HMR_ACTIONS_SENT_TO_BROWSER) {\n HMR_ACTIONS_SENT_TO_BROWSER[\"ADDED_PAGE\"] = \"addedPage\";\n HMR_ACTIONS_SENT_TO_BROWSER[\"REMOVED_PAGE\"] = \"removedPage\";\n HMR_ACTIONS_SENT_TO_BROWSER[\"RELOAD_PAGE\"] = \"reloadPage\";\n HMR_ACTIONS_SENT_TO_BROWSER[\"SERVER_COMPONENT_CHANGES\"] = \"serverComponentChanges\";\n HMR_ACTIONS_SENT_TO_BROWSER[\"MIDDLEWARE_CHANGES\"] = \"middlewareChanges\";\n HMR_ACTIONS_SENT_TO_BROWSER[\"CLIENT_CHANGES\"] = \"clientChanges\";\n HMR_ACTIONS_SENT_TO_BROWSER[\"SERVER_ONLY_CHANGES\"] = \"serverOnlyChanges\";\n HMR_ACTIONS_SENT_TO_BROWSER[\"SYNC\"] = \"sync\";\n HMR_ACTIONS_SENT_TO_BROWSER[\"BUILT\"] = \"built\";\n HMR_ACTIONS_SENT_TO_BROWSER[\"BUILDING\"] = \"building\";\n HMR_ACTIONS_SENT_TO_BROWSER[\"DEV_PAGES_MANIFEST_UPDATE\"] = \"devPagesManifestUpdate\";\n HMR_ACTIONS_SENT_TO_BROWSER[\"TURBOPACK_MESSAGE\"] = \"turbopack-message\";\n HMR_ACTIONS_SENT_TO_BROWSER[\"SERVER_ERROR\"] = \"serverError\";\n HMR_ACTIONS_SENT_TO_BROWSER[\"TURBOPACK_CONNECTED\"] = \"turbopack-connected\";\n HMR_ACTIONS_SENT_TO_BROWSER[\"ISR_MANIFEST\"] = \"isrManifest\";\n HMR_ACTIONS_SENT_TO_BROWSER[\"DEV_INDICATOR\"] = \"devIndicator\";\n return HMR_ACTIONS_SENT_TO_BROWSER;\n}({});\n\n//# sourceMappingURL=hot-reloader-types.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3Qvc2VydmVyL2Rldi9ob3QtcmVsb2FkZXItdHlwZXMuanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYiw4Q0FBNkM7QUFDN0M7QUFDQSxDQUFDLEVBQUM7QUFDRiwrREFBOEQ7QUFDOUQ7QUFDQTtBQUNBO0FBQ0E7QUFDQSxDQUFDLEVBQUM7QUFDRjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxDQUFDLEdBQUc7O0FBRUoiLCJzb3VyY2VzIjpbIkQ6XFxkb25neXVuLXByb2plY3RzXFx0d29cXG5vZGVfbW9kdWxlc1xcbmV4dFxcZGlzdFxcc2VydmVyXFxkZXZcXGhvdC1yZWxvYWRlci10eXBlcy5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwge1xuICAgIHZhbHVlOiB0cnVlXG59KTtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIkhNUl9BQ1RJT05TX1NFTlRfVE9fQlJPV1NFUlwiLCB7XG4gICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICBnZXQ6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gSE1SX0FDVElPTlNfU0VOVF9UT19CUk9XU0VSO1xuICAgIH1cbn0pO1xudmFyIEhNUl9BQ1RJT05TX1NFTlRfVE9fQlJPV1NFUiA9IC8qI19fUFVSRV9fKi8gZnVuY3Rpb24oSE1SX0FDVElPTlNfU0VOVF9UT19CUk9XU0VSKSB7XG4gICAgSE1SX0FDVElPTlNfU0VOVF9UT19CUk9XU0VSW1wiQURERURfUEFHRVwiXSA9IFwiYWRkZWRQYWdlXCI7XG4gICAgSE1SX0FDVElPTlNfU0VOVF9UT19CUk9XU0VSW1wiUkVNT1ZFRF9QQUdFXCJdID0gXCJyZW1vdmVkUGFnZVwiO1xuICAgIEhNUl9BQ1RJT05TX1NFTlRfVE9fQlJPV1NFUltcIlJFTE9BRF9QQUdFXCJdID0gXCJyZWxvYWRQYWdlXCI7XG4gICAgSE1SX0FDVElPTlNfU0VOVF9UT19CUk9XU0VSW1wiU0VSVkVSX0NPTVBPTkVOVF9DSEFOR0VTXCJdID0gXCJzZXJ2ZXJDb21wb25lbnRDaGFuZ2VzXCI7XG4gICAgSE1SX0FDVElPTlNfU0VOVF9UT19CUk9XU0VSW1wiTUlERExFV0FSRV9DSEFOR0VTXCJdID0gXCJtaWRkbGV3YXJlQ2hhbmdlc1wiO1xuICAgIEhNUl9BQ1RJT05TX1NFTlRfVE9fQlJPV1NFUltcIkNMSUVOVF9DSEFOR0VTXCJdID0gXCJjbGllbnRDaGFuZ2VzXCI7XG4gICAgSE1SX0FDVElPTlNfU0VOVF9UT19CUk9XU0VSW1wiU0VSVkVSX09OTFlfQ0hBTkdFU1wiXSA9IFwic2VydmVyT25seUNoYW5nZXNcIjtcbiAgICBITVJfQUNUSU9OU19TRU5UX1RPX0JST1dTRVJbXCJTWU5DXCJdID0gXCJzeW5jXCI7XG4gICAgSE1SX0FDVElPTlNfU0VOVF9UT19CUk9XU0VSW1wiQlVJTFRcIl0gPSBcImJ1aWx0XCI7XG4gICAgSE1SX0FDVElPTlNfU0VOVF9UT19CUk9XU0VSW1wiQlVJTERJTkdcIl0gPSBcImJ1aWxkaW5nXCI7XG4gICAgSE1SX0FDVElPTlNfU0VOVF9UT19CUk9XU0VSW1wiREVWX1BBR0VTX01BTklGRVNUX1VQREFURVwiXSA9IFwiZGV2UGFnZXNNYW5pZmVzdFVwZGF0ZVwiO1xuICAgIEhNUl9BQ1RJT05TX1NFTlRfVE9fQlJPV1NFUltcIlRVUkJPUEFDS19NRVNTQUdFXCJdID0gXCJ0dXJib3BhY2stbWVzc2FnZVwiO1xuICAgIEhNUl9BQ1RJT05TX1NFTlRfVE9fQlJPV1NFUltcIlNFUlZFUl9FUlJPUlwiXSA9IFwic2VydmVyRXJyb3JcIjtcbiAgICBITVJfQUNUSU9OU19TRU5UX1RPX0JST1dTRVJbXCJUVVJCT1BBQ0tfQ09OTkVDVEVEXCJdID0gXCJ0dXJib3BhY2stY29ubmVjdGVkXCI7XG4gICAgSE1SX0FDVElPTlNfU0VOVF9UT19CUk9XU0VSW1wiSVNSX01BTklGRVNUXCJdID0gXCJpc3JNYW5pZmVzdFwiO1xuICAgIEhNUl9BQ1RJT05TX1NFTlRfVE9fQlJPV1NFUltcIkRFVl9JTkRJQ0FUT1JcIl0gPSBcImRldkluZGljYXRvclwiO1xuICAgIHJldHVybiBITVJfQUNUSU9OU19TRU5UX1RPX0JST1dTRVI7XG59KHt9KTtcblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9aG90LXJlbG9hZGVyLXR5cGVzLmpzLm1hcCJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(pages-dir-browser)/./node_modules/next/dist/server/dev/hot-reloader-types.js\n")); - -/***/ }), - -/***/ "(pages-dir-browser)/./node_modules/next/dist/server/dev/node-stack-frames.js": -/*!****************************************************************!*\ - !*** ./node_modules/next/dist/server/dev/node-stack-frames.js ***! - \****************************************************************/ -/***/ ((__unused_webpack_module, exports, __webpack_require__) => { - -"use strict"; -eval(__webpack_require__.ts("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"getServerError\", ({\n enumerable: true,\n get: function() {\n return getServerError;\n }\n}));\nconst _stacktraceparser = __webpack_require__(/*! next/dist/compiled/stacktrace-parser */ \"(pages-dir-browser)/./node_modules/next/dist/compiled/stacktrace-parser/stack-trace-parser.cjs.js\");\nconst _errorsource = __webpack_require__(/*! ../../shared/lib/error-source */ \"(pages-dir-browser)/./node_modules/next/dist/shared/lib/error-source.js\");\nfunction getFilesystemFrame(frame) {\n const f = {\n ...frame\n };\n if (typeof f.file === 'string') {\n if (// Posix:\n f.file.startsWith('/') || // Win32:\n /^[a-z]:\\\\/i.test(f.file) || // Win32 UNC:\n f.file.startsWith('\\\\\\\\')) {\n f.file = `file://${f.file}`;\n }\n }\n return f;\n}\nfunction getServerError(error, type) {\n if (error.name === 'TurbopackInternalError') {\n // If this is an internal Turbopack error we shouldn't show internal details\n // to the user. These are written to a log file instead.\n const turbopackInternalError = Object.defineProperty(new Error('An unexpected Turbopack error occurred. Please see the output of `next dev` for more details.'), \"__NEXT_ERROR_CODE\", {\n value: \"E167\",\n enumerable: false,\n configurable: true\n });\n (0, _errorsource.decorateServerError)(turbopackInternalError, type);\n return turbopackInternalError;\n }\n let n;\n try {\n throw Object.defineProperty(new Error(error.message), \"__NEXT_ERROR_CODE\", {\n value: \"E394\",\n enumerable: false,\n configurable: true\n });\n } catch (e) {\n n = e;\n }\n n.name = error.name;\n try {\n n.stack = `${n.toString()}\\n${(0, _stacktraceparser.parse)(error.stack).map(getFilesystemFrame).map((f)=>{\n let str = ` at ${f.methodName}`;\n if (f.file) {\n let loc = f.file;\n if (f.lineNumber) {\n loc += `:${f.lineNumber}`;\n if (f.column) {\n loc += `:${f.column}`;\n }\n }\n str += ` (${loc})`;\n }\n return str;\n }).join('\\n')}`;\n } catch {\n n.stack = error.stack;\n }\n (0, _errorsource.decorateServerError)(n, type);\n return n;\n}\n\n//# sourceMappingURL=node-stack-frames.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3Qvc2VydmVyL2Rldi9ub2RlLXN0YWNrLWZyYW1lcy5qcyIsIm1hcHBpbmdzIjoiQUFBYTtBQUNiLDhDQUE2QztBQUM3QztBQUNBLENBQUMsRUFBQztBQUNGLGtEQUFpRDtBQUNqRDtBQUNBO0FBQ0E7QUFDQTtBQUNBLENBQUMsRUFBQztBQUNGLDBCQUEwQixtQkFBTyxDQUFDLCtJQUFzQztBQUN4RSxxQkFBcUIsbUJBQU8sQ0FBQyw4R0FBK0I7QUFDNUQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsK0JBQStCLE9BQU87QUFDdEM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVCxNQUFNO0FBQ047QUFDQTtBQUNBO0FBQ0E7QUFDQSxxQkFBcUIsYUFBYSxJQUFJO0FBQ3RDLGdDQUFnQyxhQUFhO0FBQzdDO0FBQ0E7QUFDQTtBQUNBLCtCQUErQixhQUFhO0FBQzVDO0FBQ0EsbUNBQW1DLFNBQVM7QUFDNUM7QUFDQTtBQUNBLDRCQUE0QixJQUFJO0FBQ2hDO0FBQ0E7QUFDQSxTQUFTLGFBQWE7QUFDdEIsTUFBTTtBQUNOO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUEiLCJzb3VyY2VzIjpbIkQ6XFxkb25neXVuLXByb2plY3RzXFx0d29cXG5vZGVfbW9kdWxlc1xcbmV4dFxcZGlzdFxcc2VydmVyXFxkZXZcXG5vZGUtc3RhY2stZnJhbWVzLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7XG4gICAgdmFsdWU6IHRydWVcbn0pO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiZ2V0U2VydmVyRXJyb3JcIiwge1xuICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgZ2V0OiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIGdldFNlcnZlckVycm9yO1xuICAgIH1cbn0pO1xuY29uc3QgX3N0YWNrdHJhY2VwYXJzZXIgPSByZXF1aXJlKFwibmV4dC9kaXN0L2NvbXBpbGVkL3N0YWNrdHJhY2UtcGFyc2VyXCIpO1xuY29uc3QgX2Vycm9yc291cmNlID0gcmVxdWlyZShcIi4uLy4uL3NoYXJlZC9saWIvZXJyb3Itc291cmNlXCIpO1xuZnVuY3Rpb24gZ2V0RmlsZXN5c3RlbUZyYW1lKGZyYW1lKSB7XG4gICAgY29uc3QgZiA9IHtcbiAgICAgICAgLi4uZnJhbWVcbiAgICB9O1xuICAgIGlmICh0eXBlb2YgZi5maWxlID09PSAnc3RyaW5nJykge1xuICAgICAgICBpZiAoLy8gUG9zaXg6XG4gICAgICAgIGYuZmlsZS5zdGFydHNXaXRoKCcvJykgfHwgLy8gV2luMzI6XG4gICAgICAgIC9eW2Etel06XFxcXC9pLnRlc3QoZi5maWxlKSB8fCAvLyBXaW4zMiBVTkM6XG4gICAgICAgIGYuZmlsZS5zdGFydHNXaXRoKCdcXFxcXFxcXCcpKSB7XG4gICAgICAgICAgICBmLmZpbGUgPSBgZmlsZTovLyR7Zi5maWxlfWA7XG4gICAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIGY7XG59XG5mdW5jdGlvbiBnZXRTZXJ2ZXJFcnJvcihlcnJvciwgdHlwZSkge1xuICAgIGlmIChlcnJvci5uYW1lID09PSAnVHVyYm9wYWNrSW50ZXJuYWxFcnJvcicpIHtcbiAgICAgICAgLy8gSWYgdGhpcyBpcyBhbiBpbnRlcm5hbCBUdXJib3BhY2sgZXJyb3Igd2Ugc2hvdWxkbid0IHNob3cgaW50ZXJuYWwgZGV0YWlsc1xuICAgICAgICAvLyB0byB0aGUgdXNlci4gVGhlc2UgYXJlIHdyaXR0ZW4gdG8gYSBsb2cgZmlsZSBpbnN0ZWFkLlxuICAgICAgICBjb25zdCB0dXJib3BhY2tJbnRlcm5hbEVycm9yID0gT2JqZWN0LmRlZmluZVByb3BlcnR5KG5ldyBFcnJvcignQW4gdW5leHBlY3RlZCBUdXJib3BhY2sgZXJyb3Igb2NjdXJyZWQuIFBsZWFzZSBzZWUgdGhlIG91dHB1dCBvZiBgbmV4dCBkZXZgIGZvciBtb3JlIGRldGFpbHMuJyksIFwiX19ORVhUX0VSUk9SX0NPREVcIiwge1xuICAgICAgICAgICAgdmFsdWU6IFwiRTE2N1wiLFxuICAgICAgICAgICAgZW51bWVyYWJsZTogZmFsc2UsXG4gICAgICAgICAgICBjb25maWd1cmFibGU6IHRydWVcbiAgICAgICAgfSk7XG4gICAgICAgICgwLCBfZXJyb3Jzb3VyY2UuZGVjb3JhdGVTZXJ2ZXJFcnJvcikodHVyYm9wYWNrSW50ZXJuYWxFcnJvciwgdHlwZSk7XG4gICAgICAgIHJldHVybiB0dXJib3BhY2tJbnRlcm5hbEVycm9yO1xuICAgIH1cbiAgICBsZXQgbjtcbiAgICB0cnkge1xuICAgICAgICB0aHJvdyBPYmplY3QuZGVmaW5lUHJvcGVydHkobmV3IEVycm9yKGVycm9yLm1lc3NhZ2UpLCBcIl9fTkVYVF9FUlJPUl9DT0RFXCIsIHtcbiAgICAgICAgICAgIHZhbHVlOiBcIkUzOTRcIixcbiAgICAgICAgICAgIGVudW1lcmFibGU6IGZhbHNlLFxuICAgICAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlXG4gICAgICAgIH0pO1xuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgbiA9IGU7XG4gICAgfVxuICAgIG4ubmFtZSA9IGVycm9yLm5hbWU7XG4gICAgdHJ5IHtcbiAgICAgICAgbi5zdGFjayA9IGAke24udG9TdHJpbmcoKX1cXG4keygwLCBfc3RhY2t0cmFjZXBhcnNlci5wYXJzZSkoZXJyb3Iuc3RhY2spLm1hcChnZXRGaWxlc3lzdGVtRnJhbWUpLm1hcCgoZik9PntcbiAgICAgICAgICAgIGxldCBzdHIgPSBgICAgIGF0ICR7Zi5tZXRob2ROYW1lfWA7XG4gICAgICAgICAgICBpZiAoZi5maWxlKSB7XG4gICAgICAgICAgICAgICAgbGV0IGxvYyA9IGYuZmlsZTtcbiAgICAgICAgICAgICAgICBpZiAoZi5saW5lTnVtYmVyKSB7XG4gICAgICAgICAgICAgICAgICAgIGxvYyArPSBgOiR7Zi5saW5lTnVtYmVyfWA7XG4gICAgICAgICAgICAgICAgICAgIGlmIChmLmNvbHVtbikge1xuICAgICAgICAgICAgICAgICAgICAgICAgbG9jICs9IGA6JHtmLmNvbHVtbn1gO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHN0ciArPSBgICgke2xvY30pYDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiBzdHI7XG4gICAgICAgIH0pLmpvaW4oJ1xcbicpfWA7XG4gICAgfSBjYXRjaCAge1xuICAgICAgICBuLnN0YWNrID0gZXJyb3Iuc3RhY2s7XG4gICAgfVxuICAgICgwLCBfZXJyb3Jzb3VyY2UuZGVjb3JhdGVTZXJ2ZXJFcnJvcikobiwgdHlwZSk7XG4gICAgcmV0dXJuIG47XG59XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPW5vZGUtc3RhY2stZnJhbWVzLmpzLm1hcCJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(pages-dir-browser)/./node_modules/next/dist/server/dev/node-stack-frames.js\n")); - -/***/ }), - -/***/ "(pages-dir-browser)/./node_modules/next/dist/shared/lib/app-router-context.shared-runtime.js": -/*!********************************************************************************!*\ - !*** ./node_modules/next/dist/shared/lib/app-router-context.shared-runtime.js ***! - \********************************************************************************/ -/***/ ((module, exports, __webpack_require__) => { - -"use strict"; -eval(__webpack_require__.ts("/* __next_internal_client_entry_do_not_use__ cjs */ \nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n AppRouterContext: function() {\n return AppRouterContext;\n },\n GlobalLayoutRouterContext: function() {\n return GlobalLayoutRouterContext;\n },\n LayoutRouterContext: function() {\n return LayoutRouterContext;\n },\n MissingSlotContext: function() {\n return MissingSlotContext;\n },\n TemplateContext: function() {\n return TemplateContext;\n }\n});\nconst _interop_require_default = __webpack_require__(/*! @swc/helpers/_/_interop_require_default */ \"(pages-dir-browser)/./node_modules/@swc/helpers/esm/_interop_require_default.js\");\nconst _react = /*#__PURE__*/ _interop_require_default._(__webpack_require__(/*! react */ \"(pages-dir-browser)/./node_modules/react/index.js\"));\nconst AppRouterContext = _react.default.createContext(null);\nconst LayoutRouterContext = _react.default.createContext(null);\nconst GlobalLayoutRouterContext = _react.default.createContext(null);\nconst TemplateContext = _react.default.createContext(null);\nif (true) {\n AppRouterContext.displayName = 'AppRouterContext';\n LayoutRouterContext.displayName = 'LayoutRouterContext';\n GlobalLayoutRouterContext.displayName = 'GlobalLayoutRouterContext';\n TemplateContext.displayName = 'TemplateContext';\n}\nconst MissingSlotContext = _react.default.createContext(new Set()); //# sourceMappingURL=app-router-context.shared-runtime.js.map\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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3Qvc2hhcmVkL2xpYi9hcHAtcm91dGVyLWNvbnRleHQuc2hhcmVkLXJ1bnRpbWUuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7O0lBaUthQSxnQkFBZ0I7ZUFBaEJBOztJQVVBQyx5QkFBeUI7ZUFBekJBOztJQVBBQyxtQkFBbUI7ZUFBbkJBOztJQXNCQUMsa0JBQWtCO2VBQWxCQTs7SUFUQUMsZUFBZTtlQUFmQTs7Ozs0RUF0S0s7QUFzSlgsTUFBTUosbUJBQW1CSyxPQUFBQSxPQUFLLENBQUNDLGFBQWEsQ0FDakQ7QUFFSyxNQUFNSixzQkFBc0JHLE9BQUFBLE9BQUssQ0FBQ0MsYUFBYSxDQUs1QztBQUVILE1BQU1MLDRCQUE0QkksT0FBQUEsT0FBSyxDQUFDQyxhQUFhLENBSXpEO0FBRUksTUFBTUYsa0JBQWtCQyxPQUFBQSxPQUFLLENBQUNDLGFBQWEsQ0FBa0I7QUFFcEUsSUFBSUMsSUFBb0IsRUFBbUI7SUFDekNQLGlCQUFpQlUsV0FBVyxHQUFHO0lBQy9CUixvQkFBb0JRLFdBQVcsR0FBRztJQUNsQ1QsMEJBQTBCUyxXQUFXLEdBQUc7SUFDeENOLGdCQUFnQk0sV0FBVyxHQUFHO0FBQ2hDO0FBRU8sTUFBTVAscUJBQXFCRSxPQUFBQSxPQUFLLENBQUNDLGFBQWEsQ0FBYyxJQUFJSyIsInNvdXJjZXMiOlsiRDpcXHNyY1xcc2hhcmVkXFxsaWJcXGFwcC1yb3V0ZXItY29udGV4dC5zaGFyZWQtcnVudGltZS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIndXNlIGNsaWVudCdcblxuaW1wb3J0IHR5cGUgeyBGZXRjaFNlcnZlclJlc3BvbnNlUmVzdWx0IH0gZnJvbSAnLi4vLi4vY2xpZW50L2NvbXBvbmVudHMvcm91dGVyLXJlZHVjZXIvZmV0Y2gtc2VydmVyLXJlc3BvbnNlJ1xuaW1wb3J0IHR5cGUge1xuICBGb2N1c0FuZFNjcm9sbFJlZixcbiAgUHJlZmV0Y2hLaW5kLFxufSBmcm9tICcuLi8uLi9jbGllbnQvY29tcG9uZW50cy9yb3V0ZXItcmVkdWNlci9yb3V0ZXItcmVkdWNlci10eXBlcydcbmltcG9ydCB0eXBlIHtcbiAgRmxpZ2h0Um91dGVyU3RhdGUsXG4gIEZsaWdodFNlZ21lbnRQYXRoLFxufSBmcm9tICcuLi8uLi9zZXJ2ZXIvYXBwLXJlbmRlci90eXBlcydcbmltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCdcblxuZXhwb3J0IHR5cGUgQ2hpbGRTZWdtZW50TWFwID0gTWFwPHN0cmluZywgQ2FjaGVOb2RlPlxuXG4vKipcbiAqIENhY2hlIG5vZGUgdXNlZCBpbiBhcHAtcm91dGVyIC8gbGF5b3V0LXJvdXRlci5cbiAqL1xuZXhwb3J0IHR5cGUgQ2FjaGVOb2RlID0gUmVhZHlDYWNoZU5vZGUgfCBMYXp5Q2FjaGVOb2RlXG5cbmV4cG9ydCB0eXBlIExvYWRpbmdNb2R1bGVEYXRhID1cbiAgfCBbUmVhY3QuSlNYLkVsZW1lbnQsIFJlYWN0LlJlYWN0Tm9kZSwgUmVhY3QuUmVhY3ROb2RlXVxuICB8IG51bGxcblxuLyoqIHZpZXdwb3J0IG1ldGFkYXRhIG5vZGUgKi9cbmV4cG9ydCB0eXBlIEhlYWREYXRhID0gUmVhY3QuUmVhY3ROb2RlXG5cbmV4cG9ydCB0eXBlIExhenlDYWNoZU5vZGUgPSB7XG4gIC8qKlxuICAgKiBXaGVuIHJzYyBpcyBudWxsLCB0aGlzIGlzIGEgbGF6aWx5LWluaXRpYWxpemVkIGNhY2hlIG5vZGUuXG4gICAqXG4gICAqIElmIHRoZSBhcHAgYXR0ZW1wdHMgdG8gcmVuZGVyIGl0LCBpdCB0cmlnZ2VycyBhIGxhenkgZGF0YSBmZXRjaCxcbiAgICogcG9zdHBvbmVzIHRoZSByZW5kZXIsIGFuZCBzY2hlZHVsZXMgYW4gdXBkYXRlIHRvIGEgbmV3IHRyZWUuXG4gICAqXG4gICAqIFRPRE86IFRoaXMgbWVjaGFuaXNtIHNob3VsZCBub3QgYmUgdXNlZCB3aGVuIFBQUiBpcyBlbmFibGVkLCB0aG91Z2ggaXRcbiAgICogY3VycmVudGx5IGlzIGluIHNvbWUgY2FzZXMgdW50aWwgd2UndmUgaW1wbGVtZW50ZWQgcGFydGlhbFxuICAgKiBzZWdtZW50IGZldGNoaW5nLlxuICAgKi9cbiAgcnNjOiBudWxsXG5cbiAgLyoqXG4gICAqIEEgcHJlZmV0Y2hlZCB2ZXJzaW9uIG9mIHRoZSBzZWdtZW50IGRhdGEuIFNlZSBleHBsYW5hdGlvbiBpbiBjb3JyZXNwb25kaW5nXG4gICAqIGZpZWxkIG9mIFJlYWR5Q2FjaGVOb2RlIChiZWxvdykuXG4gICAqXG4gICAqIFNpbmNlIExhenlDYWNoZU5vZGUgbW9zdGx5IG9ubHkgZXhpc3RzIGluIHRoZSBub24tUFBSIGltcGxlbWVudGF0aW9uLCB0aGlzXG4gICAqIHdpbGwgdXN1YWxseSBiZSBudWxsLCBidXQgaXQgY291bGQgaGF2ZSBiZWVuIGNsb25lZCBmcm9tIGEgcHJldmlvdXNcbiAgICogQ2FjaGVOb2RlIHRoYXQgd2FzIGNyZWF0ZWQgYnkgdGhlIFBQUiBpbXBsZW1lbnRhdGlvbi4gRXZlbnR1YWxseSB3ZSB3YW50XG4gICAqIHRvIG1pZ3JhdGUgZXZlcnl0aGluZyBhd2F5IGZyb20gTGF6eUNhY2hlTm9kZSBlbnRpcmVseS5cbiAgICovXG4gIHByZWZldGNoUnNjOiBSZWFjdC5SZWFjdE5vZGVcblxuICAvKipcbiAgICogQSBwZW5kaW5nIHJlc3BvbnNlIGZvciB0aGUgbGF6eSBkYXRhIGZldGNoLiBJZiB0aGlzIGlzIG5vdCBwcmVzZW50XG4gICAqIGR1cmluZyByZW5kZXIsIGl0IGlzIGxhemlseSBjcmVhdGVkLlxuICAgKi9cbiAgbGF6eURhdGE6IFByb21pc2U8RmV0Y2hTZXJ2ZXJSZXNwb25zZVJlc3VsdD4gfCBudWxsXG5cbiAgcHJlZmV0Y2hIZWFkOiBIZWFkRGF0YSB8IG51bGxcblxuICBoZWFkOiBIZWFkRGF0YVxuXG4gIGxvYWRpbmc6IExvYWRpbmdNb2R1bGVEYXRhIHwgUHJvbWlzZTxMb2FkaW5nTW9kdWxlRGF0YT5cblxuICAvKipcbiAgICogQ2hpbGQgcGFyYWxsZWwgcm91dGVzLlxuICAgKi9cbiAgcGFyYWxsZWxSb3V0ZXM6IE1hcDxzdHJpbmcsIENoaWxkU2VnbWVudE1hcD5cblxuICAvKipcbiAgICogVGhlIHRpbWVzdGFtcCBvZiB0aGUgbmF2aWdhdGlvbiB0aGF0IGxhc3QgdXBkYXRlZCB0aGUgQ2FjaGVOb2RlJ3MgZGF0YS4gSWZcbiAgICogYSBDYWNoZU5vZGUgaXMgcmV1c2VkIGZyb20gYSBwcmV2aW91cyBuYXZpZ2F0aW9uLCB0aGlzIHZhbHVlIGlzIG5vdFxuICAgKiB1cGRhdGVkLiBVc2VkIHRvIHRyYWNrIHRoZSBzdGFsZW5lc3Mgb2YgdGhlIGRhdGEuXG4gICAqL1xuICBuYXZpZ2F0ZWRBdDogbnVtYmVyXG59XG5cbmV4cG9ydCB0eXBlIFJlYWR5Q2FjaGVOb2RlID0ge1xuICAvKipcbiAgICogV2hlbiByc2MgaXMgbm90IG51bGwsIGl0IHJlcHJlc2VudHMgdGhlIFJTQyBkYXRhIGZvciB0aGVcbiAgICogY29ycmVzcG9uZGluZyBzZWdtZW50LlxuICAgKlxuICAgKiBgbnVsbGAgaXMgYSB2YWxpZCBSZWFjdCBOb2RlIGJ1dCBiZWNhdXNlIHNlZ21lbnQgZGF0YSBpcyBhbHdheXMgYVxuICAgKiA8TGF5b3V0Um91dGVyPiBjb21wb25lbnQsIHdlIGNhbiB1c2UgYG51bGxgIHRvIHJlcHJlc2VudCBlbXB0eS5cbiAgICpcbiAgICogVE9ETzogRm9yIGFkZGl0aW9uYWwgdHlwZSBzYWZldHksIHVwZGF0ZSB0aGlzIHR5cGUgdG9cbiAgICogRXhjbHVkZTxSZWFjdC5SZWFjdE5vZGUsIG51bGw+LiBOZWVkIHRvIHVwZGF0ZSBjcmVhdGVFbXB0eUNhY2hlTm9kZSB0b1xuICAgKiBhY2NlcHQgcnNjIGFzIGFuIGFyZ3VtZW50LCBvciBqdXN0IGlubGluZSB0aGUgY2FsbGVycy5cbiAgICovXG4gIHJzYzogUmVhY3QuUmVhY3ROb2RlXG5cbiAgLyoqXG4gICAqIFJlcHJlc2VudHMgYSBzdGF0aWMgdmVyc2lvbiBvZiB0aGUgc2VnbWVudCB0aGF0IGNhbiBiZSBzaG93biBpbW1lZGlhdGVseSxcbiAgICogYW5kIG1heSBvciBtYXkgbm90IGNvbnRhaW4gZHluYW1pYyBob2xlcy4gSXQncyBwcmVmZXRjaGVkIGJlZm9yZSBhXG4gICAqIG5hdmlnYXRpb24gb2NjdXJzLlxuICAgKlxuICAgKiBEdXJpbmcgcmVuZGVyaW5nLCB3ZSB3aWxsIGNob29zZSB3aGV0aGVyIHRvIHJlbmRlciBgcnNjYCBvciBgcHJlZmV0Y2hSc2NgXG4gICAqIHdpdGggYHVzZURlZmVycmVkVmFsdWVgLiBBcyB3aXRoIHRoZSBgcnNjYCBmaWVsZCwgYSB2YWx1ZSBvZiBgbnVsbGAgbWVhbnNcbiAgICogbm8gdmFsdWUgd2FzIHByb3ZpZGVkLiBJbiB0aGlzIGNhc2UsIHRoZSBMYXlvdXRSb3V0ZXIgd2lsbCBnbyBzdHJhaWdodCB0b1xuICAgKiByZW5kZXJpbmcgdGhlIGByc2NgIHZhbHVlOyBpZiB0aGF0IG9uZSBpcyBhbHNvIG1pc3NpbmcsIGl0IHdpbGwgc3VzcGVuZCBhbmRcbiAgICogdHJpZ2dlciBhIGxhenkgZmV0Y2guXG4gICAqL1xuICBwcmVmZXRjaFJzYzogUmVhY3QuUmVhY3ROb2RlXG5cbiAgLyoqXG4gICAqIFRoZXJlIHNob3VsZCBuZXZlciBiZSBhIGxhenkgZGF0YSByZXF1ZXN0IGluIHRoaXMgY2FzZS5cbiAgICovXG4gIGxhenlEYXRhOiBudWxsXG4gIHByZWZldGNoSGVhZDogSGVhZERhdGEgfCBudWxsXG5cbiAgaGVhZDogSGVhZERhdGFcblxuICBsb2FkaW5nOiBMb2FkaW5nTW9kdWxlRGF0YSB8IFByb21pc2U8TG9hZGluZ01vZHVsZURhdGE+XG5cbiAgcGFyYWxsZWxSb3V0ZXM6IE1hcDxzdHJpbmcsIENoaWxkU2VnbWVudE1hcD5cblxuICBuYXZpZ2F0ZWRBdDogbnVtYmVyXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgTmF2aWdhdGVPcHRpb25zIHtcbiAgc2Nyb2xsPzogYm9vbGVhblxufVxuXG5leHBvcnQgaW50ZXJmYWNlIFByZWZldGNoT3B0aW9ucyB7XG4gIGtpbmQ6IFByZWZldGNoS2luZFxuICBvbkludmFsaWRhdGU/OiAoKSA9PiB2b2lkXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQXBwUm91dGVySW5zdGFuY2Uge1xuICAvKipcbiAgICogTmF2aWdhdGUgdG8gdGhlIHByZXZpb3VzIGhpc3RvcnkgZW50cnkuXG4gICAqL1xuICBiYWNrKCk6IHZvaWRcbiAgLyoqXG4gICAqIE5hdmlnYXRlIHRvIHRoZSBuZXh0IGhpc3RvcnkgZW50cnkuXG4gICAqL1xuICBmb3J3YXJkKCk6IHZvaWRcbiAgLyoqXG4gICAqIFJlZnJlc2ggdGhlIGN1cnJlbnQgcGFnZS5cbiAgICovXG4gIHJlZnJlc2goKTogdm9pZFxuICAvKipcbiAgICogUmVmcmVzaCB0aGUgY3VycmVudCBwYWdlLiBVc2UgaW4gZGV2ZWxvcG1lbnQgb25seS5cbiAgICogQGludGVybmFsXG4gICAqL1xuICBobXJSZWZyZXNoKCk6IHZvaWRcbiAgLyoqXG4gICAqIE5hdmlnYXRlIHRvIHRoZSBwcm92aWRlZCBocmVmLlxuICAgKiBQdXNoZXMgYSBuZXcgaGlzdG9yeSBlbnRyeS5cbiAgICovXG4gIHB1c2goaHJlZjogc3RyaW5nLCBvcHRpb25zPzogTmF2aWdhdGVPcHRpb25zKTogdm9pZFxuICAvKipcbiAgICogTmF2aWdhdGUgdG8gdGhlIHByb3ZpZGVkIGhyZWYuXG4gICAqIFJlcGxhY2VzIHRoZSBjdXJyZW50IGhpc3RvcnkgZW50cnkuXG4gICAqL1xuICByZXBsYWNlKGhyZWY6IHN0cmluZywgb3B0aW9ucz86IE5hdmlnYXRlT3B0aW9ucyk6IHZvaWRcbiAgLyoqXG4gICAqIFByZWZldGNoIHRoZSBwcm92aWRlZCBocmVmLlxuICAgKi9cbiAgcHJlZmV0Y2goaHJlZjogc3RyaW5nLCBvcHRpb25zPzogUHJlZmV0Y2hPcHRpb25zKTogdm9pZFxufVxuXG5leHBvcnQgY29uc3QgQXBwUm91dGVyQ29udGV4dCA9IFJlYWN0LmNyZWF0ZUNvbnRleHQ8QXBwUm91dGVySW5zdGFuY2UgfCBudWxsPihcbiAgbnVsbFxuKVxuZXhwb3J0IGNvbnN0IExheW91dFJvdXRlckNvbnRleHQgPSBSZWFjdC5jcmVhdGVDb250ZXh0PHtcbiAgcGFyZW50VHJlZTogRmxpZ2h0Um91dGVyU3RhdGVcbiAgcGFyZW50Q2FjaGVOb2RlOiBDYWNoZU5vZGVcbiAgcGFyZW50U2VnbWVudFBhdGg6IEZsaWdodFNlZ21lbnRQYXRoIHwgbnVsbFxuICB1cmw6IHN0cmluZ1xufSB8IG51bGw+KG51bGwpXG5cbmV4cG9ydCBjb25zdCBHbG9iYWxMYXlvdXRSb3V0ZXJDb250ZXh0ID0gUmVhY3QuY3JlYXRlQ29udGV4dDx7XG4gIHRyZWU6IEZsaWdodFJvdXRlclN0YXRlXG4gIGZvY3VzQW5kU2Nyb2xsUmVmOiBGb2N1c0FuZFNjcm9sbFJlZlxuICBuZXh0VXJsOiBzdHJpbmcgfCBudWxsXG59PihudWxsIGFzIGFueSlcblxuZXhwb3J0IGNvbnN0IFRlbXBsYXRlQ29udGV4dCA9IFJlYWN0LmNyZWF0ZUNvbnRleHQ8UmVhY3QuUmVhY3ROb2RlPihudWxsIGFzIGFueSlcblxuaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpIHtcbiAgQXBwUm91dGVyQ29udGV4dC5kaXNwbGF5TmFtZSA9ICdBcHBSb3V0ZXJDb250ZXh0J1xuICBMYXlvdXRSb3V0ZXJDb250ZXh0LmRpc3BsYXlOYW1lID0gJ0xheW91dFJvdXRlckNvbnRleHQnXG4gIEdsb2JhbExheW91dFJvdXRlckNvbnRleHQuZGlzcGxheU5hbWUgPSAnR2xvYmFsTGF5b3V0Um91dGVyQ29udGV4dCdcbiAgVGVtcGxhdGVDb250ZXh0LmRpc3BsYXlOYW1lID0gJ1RlbXBsYXRlQ29udGV4dCdcbn1cblxuZXhwb3J0IGNvbnN0IE1pc3NpbmdTbG90Q29udGV4dCA9IFJlYWN0LmNyZWF0ZUNvbnRleHQ8U2V0PHN0cmluZz4+KG5ldyBTZXQoKSlcbiJdLCJuYW1lcyI6WyJBcHBSb3V0ZXJDb250ZXh0IiwiR2xvYmFsTGF5b3V0Um91dGVyQ29udGV4dCIsIkxheW91dFJvdXRlckNvbnRleHQiLCJNaXNzaW5nU2xvdENvbnRleHQiLCJUZW1wbGF0ZUNvbnRleHQiLCJSZWFjdCIsImNyZWF0ZUNvbnRleHQiLCJwcm9jZXNzIiwiZW52IiwiTk9ERV9FTlYiLCJkaXNwbGF5TmFtZSIsIlNldCJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(pages-dir-browser)/./node_modules/next/dist/shared/lib/app-router-context.shared-runtime.js\n")); - -/***/ }), - -/***/ "(pages-dir-browser)/./node_modules/next/dist/shared/lib/bloom-filter.js": -/*!***********************************************************!*\ - !*** ./node_modules/next/dist/shared/lib/bloom-filter.js ***! - \***********************************************************/ -/***/ ((module, exports, __webpack_require__) => { - -"use strict"; -eval(__webpack_require__.ts("// minimal implementation MurmurHash2 hash function\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"BloomFilter\", ({\n enumerable: true,\n get: function() {\n return BloomFilter;\n }\n}));\nfunction murmurhash2(str) {\n let h = 0;\n for(let i = 0; i < str.length; i++){\n const c = str.charCodeAt(i);\n h = Math.imul(h ^ c, 0x5bd1e995);\n h ^= h >>> 13;\n h = Math.imul(h, 0x5bd1e995);\n }\n return h >>> 0;\n}\n// default to 0.01% error rate as the filter compresses very well\nconst DEFAULT_ERROR_RATE = 0.0001;\nclass BloomFilter {\n static from(items, errorRate) {\n if (errorRate === void 0) errorRate = DEFAULT_ERROR_RATE;\n const filter = new BloomFilter(items.length, errorRate);\n for (const item of items){\n filter.add(item);\n }\n return filter;\n }\n export() {\n const data = {\n numItems: this.numItems,\n errorRate: this.errorRate,\n numBits: this.numBits,\n numHashes: this.numHashes,\n bitArray: this.bitArray\n };\n if (false) {}\n return data;\n }\n import(data) {\n this.numItems = data.numItems;\n this.errorRate = data.errorRate;\n this.numBits = data.numBits;\n this.numHashes = data.numHashes;\n this.bitArray = data.bitArray;\n }\n add(item) {\n const hashValues = this.getHashValues(item);\n hashValues.forEach((hash)=>{\n this.bitArray[hash] = 1;\n });\n }\n contains(item) {\n const hashValues = this.getHashValues(item);\n return hashValues.every((hash)=>this.bitArray[hash]);\n }\n getHashValues(item) {\n const hashValues = [];\n for(let i = 1; i <= this.numHashes; i++){\n const hash = murmurhash2(\"\" + item + i) % this.numBits;\n hashValues.push(hash);\n }\n return hashValues;\n }\n constructor(numItems, errorRate = DEFAULT_ERROR_RATE){\n this.numItems = numItems;\n this.errorRate = errorRate;\n this.numBits = Math.ceil(-(numItems * Math.log(errorRate)) / (Math.log(2) * Math.log(2)));\n this.numHashes = Math.ceil(this.numBits / numItems * Math.log(2));\n this.bitArray = new Array(this.numBits).fill(0);\n }\n} //# sourceMappingURL=bloom-filter.js.map\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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3Qvc2hhcmVkL2xpYi9ibG9vbS1maWx0ZXIuanMiLCJtYXBwaW5ncyI6IkFBQUEsbURBQW1EOzs7OzsrQ0FldENBOzs7ZUFBQUE7OztBQWRiLFNBQVNDLFlBQVlDLEdBQVc7SUFDOUIsSUFBSUMsSUFBSTtJQUNSLElBQUssSUFBSUMsSUFBSSxHQUFHQSxJQUFJRixJQUFJRyxNQUFNLEVBQUVELElBQUs7UUFDbkMsTUFBTUUsSUFBSUosSUFBSUssVUFBVSxDQUFDSDtRQUN6QkQsSUFBSUssS0FBS0MsSUFBSSxDQUFDTixJQUFJRyxHQUFHO1FBQ3JCSCxLQUFLQSxNQUFNO1FBQ1hBLElBQUlLLEtBQUtDLElBQUksQ0FBQ04sR0FBRztJQUNuQjtJQUNBLE9BQU9BLE1BQU07QUFDZjtBQUVBLGlFQUFpRTtBQUNqRSxNQUFNTyxxQkFBcUI7QUFFcEIsTUFBTVY7SUFpQlgsT0FBT1csS0FBS0MsS0FBZSxFQUFFQyxTQUE4QixFQUFFO1FBQWhDQSxJQUFBQSxjQUFBQSxLQUFBQSxHQUFBQSxZQUFZSDtRQUN2QyxNQUFNSSxTQUFTLElBQUlkLFlBQVlZLE1BQU1QLE1BQU0sRUFBRVE7UUFFN0MsS0FBSyxNQUFNRSxRQUFRSCxNQUFPO1lBQ3hCRSxPQUFPRSxHQUFHLENBQUNEO1FBQ2I7UUFDQSxPQUFPRDtJQUNUO0lBRUFHLFNBQVM7UUFDUCxNQUFNQyxPQUFPO1lBQ1hDLFVBQVUsSUFBSSxDQUFDQSxRQUFRO1lBQ3ZCTixXQUFXLElBQUksQ0FBQ0EsU0FBUztZQUN6Qk8sU0FBUyxJQUFJLENBQUNBLE9BQU87WUFDckJDLFdBQVcsSUFBSSxDQUFDQSxTQUFTO1lBQ3pCQyxVQUFVLElBQUksQ0FBQ0EsUUFBUTtRQUN6QjtRQUVBLElBQUlDLEtBQXFDLEVBQUUsRUFhMUM7UUFFRCxPQUFPTDtJQUNUO0lBRUFnQixPQUFPaEIsSUFBeUMsRUFBRTtRQUNoRCxJQUFJLENBQUNDLFFBQVEsR0FBR0QsS0FBS0MsUUFBUTtRQUM3QixJQUFJLENBQUNOLFNBQVMsR0FBR0ssS0FBS0wsU0FBUztRQUMvQixJQUFJLENBQUNPLE9BQU8sR0FBR0YsS0FBS0UsT0FBTztRQUMzQixJQUFJLENBQUNDLFNBQVMsR0FBR0gsS0FBS0csU0FBUztRQUMvQixJQUFJLENBQUNDLFFBQVEsR0FBR0osS0FBS0ksUUFBUTtJQUMvQjtJQUVBTixJQUFJRCxJQUFZLEVBQUU7UUFDaEIsTUFBTW9CLGFBQWEsSUFBSSxDQUFDQyxhQUFhLENBQUNyQjtRQUN0Q29CLFdBQVdFLE9BQU8sQ0FBQyxDQUFDQztZQUNsQixJQUFJLENBQUNoQixRQUFRLENBQUNnQixLQUFLLEdBQUc7UUFDeEI7SUFDRjtJQUVBQyxTQUFTeEIsSUFBWSxFQUFFO1FBQ3JCLE1BQU1vQixhQUFhLElBQUksQ0FBQ0MsYUFBYSxDQUFDckI7UUFDdEMsT0FBT29CLFdBQVdLLEtBQUssQ0FBQyxDQUFDRixPQUFTLElBQUksQ0FBQ2hCLFFBQVEsQ0FBQ2dCLEtBQUs7SUFDdkQ7SUFFQUYsY0FBY3JCLElBQVksRUFBRTtRQUMxQixNQUFNb0IsYUFBYSxFQUFFO1FBQ3JCLElBQUssSUFBSS9CLElBQUksR0FBR0EsS0FBSyxJQUFJLENBQUNpQixTQUFTLEVBQUVqQixJQUFLO1lBQ3hDLE1BQU1rQyxPQUFPckMsWUFBYSxLQUFFYyxPQUFPWCxLQUFPLElBQUksQ0FBQ2dCLE9BQU87WUFDdERlLFdBQVdNLElBQUksQ0FBQ0g7UUFDbEI7UUFDQSxPQUFPSDtJQUNUO0lBekVBTyxZQUFZdkIsUUFBZ0IsRUFBRU4sWUFBb0JILGtCQUFrQixDQUFFO1FBQ3BFLElBQUksQ0FBQ1MsUUFBUSxHQUFHQTtRQUNoQixJQUFJLENBQUNOLFNBQVMsR0FBR0E7UUFDakIsSUFBSSxDQUFDTyxPQUFPLEdBQUdaLEtBQUttQyxJQUFJLENBQ3RCLENBQUV4QixDQUFBQSxXQUFXWCxLQUFLb0MsR0FBRyxDQUFDL0IsVUFBQUEsQ0FBUyxJQUFNTCxLQUFLb0MsR0FBRyxDQUFDLEtBQUtwQyxLQUFLb0MsR0FBRyxDQUFDLEdBQUM7UUFFL0QsSUFBSSxDQUFDdkIsU0FBUyxHQUFHYixLQUFLbUMsSUFBSSxDQUFFLElBQUksQ0FBQ3ZCLE9BQU8sR0FBR0QsV0FBWVgsS0FBS29DLEdBQUcsQ0FBQztRQUNoRSxJQUFJLENBQUN0QixRQUFRLEdBQUcsSUFBSXVCLE1BQU0sSUFBSSxDQUFDekIsT0FBTyxFQUFFMEIsSUFBSSxDQUFDO0lBQy9DO0FBa0VGIiwic291cmNlcyI6WyJEOlxcc3JjXFxzaGFyZWRcXGxpYlxcYmxvb20tZmlsdGVyLnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8vIG1pbmltYWwgaW1wbGVtZW50YXRpb24gTXVybXVySGFzaDIgaGFzaCBmdW5jdGlvblxuZnVuY3Rpb24gbXVybXVyaGFzaDIoc3RyOiBzdHJpbmcpIHtcbiAgbGV0IGggPSAwXG4gIGZvciAobGV0IGkgPSAwOyBpIDwgc3RyLmxlbmd0aDsgaSsrKSB7XG4gICAgY29uc3QgYyA9IHN0ci5jaGFyQ29kZUF0KGkpXG4gICAgaCA9IE1hdGguaW11bChoIF4gYywgMHg1YmQxZTk5NSlcbiAgICBoIF49IGggPj4+IDEzXG4gICAgaCA9IE1hdGguaW11bChoLCAweDViZDFlOTk1KVxuICB9XG4gIHJldHVybiBoID4+PiAwXG59XG5cbi8vIGRlZmF1bHQgdG8gMC4wMSUgZXJyb3IgcmF0ZSBhcyB0aGUgZmlsdGVyIGNvbXByZXNzZXMgdmVyeSB3ZWxsXG5jb25zdCBERUZBVUxUX0VSUk9SX1JBVEUgPSAwLjAwMDFcblxuZXhwb3J0IGNsYXNzIEJsb29tRmlsdGVyIHtcbiAgbnVtSXRlbXM6IG51bWJlclxuICBlcnJvclJhdGU6IG51bWJlclxuICBudW1CaXRzOiBudW1iZXJcbiAgbnVtSGFzaGVzOiBudW1iZXJcbiAgYml0QXJyYXk6IG51bWJlcltdXG5cbiAgY29uc3RydWN0b3IobnVtSXRlbXM6IG51bWJlciwgZXJyb3JSYXRlOiBudW1iZXIgPSBERUZBVUxUX0VSUk9SX1JBVEUpIHtcbiAgICB0aGlzLm51bUl0ZW1zID0gbnVtSXRlbXNcbiAgICB0aGlzLmVycm9yUmF0ZSA9IGVycm9yUmF0ZVxuICAgIHRoaXMubnVtQml0cyA9IE1hdGguY2VpbChcbiAgICAgIC0obnVtSXRlbXMgKiBNYXRoLmxvZyhlcnJvclJhdGUpKSAvIChNYXRoLmxvZygyKSAqIE1hdGgubG9nKDIpKVxuICAgIClcbiAgICB0aGlzLm51bUhhc2hlcyA9IE1hdGguY2VpbCgodGhpcy5udW1CaXRzIC8gbnVtSXRlbXMpICogTWF0aC5sb2coMikpXG4gICAgdGhpcy5iaXRBcnJheSA9IG5ldyBBcnJheSh0aGlzLm51bUJpdHMpLmZpbGwoMClcbiAgfVxuXG4gIHN0YXRpYyBmcm9tKGl0ZW1zOiBzdHJpbmdbXSwgZXJyb3JSYXRlID0gREVGQVVMVF9FUlJPUl9SQVRFKSB7XG4gICAgY29uc3QgZmlsdGVyID0gbmV3IEJsb29tRmlsdGVyKGl0ZW1zLmxlbmd0aCwgZXJyb3JSYXRlKVxuXG4gICAgZm9yIChjb25zdCBpdGVtIG9mIGl0ZW1zKSB7XG4gICAgICBmaWx0ZXIuYWRkKGl0ZW0pXG4gICAgfVxuICAgIHJldHVybiBmaWx0ZXJcbiAgfVxuXG4gIGV4cG9ydCgpIHtcbiAgICBjb25zdCBkYXRhID0ge1xuICAgICAgbnVtSXRlbXM6IHRoaXMubnVtSXRlbXMsXG4gICAgICBlcnJvclJhdGU6IHRoaXMuZXJyb3JSYXRlLFxuICAgICAgbnVtQml0czogdGhpcy5udW1CaXRzLFxuICAgICAgbnVtSGFzaGVzOiB0aGlzLm51bUhhc2hlcyxcbiAgICAgIGJpdEFycmF5OiB0aGlzLmJpdEFycmF5LFxuICAgIH1cblxuICAgIGlmIChwcm9jZXNzLmVudi5ORVhUX1JVTlRJTUUgPT09ICdub2RlanMnKSB7XG4gICAgICBpZiAodGhpcy5lcnJvclJhdGUgPCBERUZBVUxUX0VSUk9SX1JBVEUpIHtcbiAgICAgICAgY29uc3QgZmlsdGVyRGF0YSA9IEpTT04uc3RyaW5naWZ5KGRhdGEpXG4gICAgICAgIGNvbnN0IGd6aXBTaXplID0gKFxuICAgICAgICAgIHJlcXVpcmUoJ25leHQvZGlzdC9jb21waWxlZC9nemlwLXNpemUnKSBhcyB0eXBlb2YgaW1wb3J0KCduZXh0L2Rpc3QvY29tcGlsZWQvZ3ppcC1zaXplJylcbiAgICAgICAgKS5zeW5jKGZpbHRlckRhdGEpXG5cbiAgICAgICAgaWYgKGd6aXBTaXplID4gMTAyNCkge1xuICAgICAgICAgIGNvbnNvbGUud2FybihcbiAgICAgICAgICAgIGBDcmVhdGluZyBmaWx0ZXIgd2l0aCBlcnJvciByYXRlIGxlc3MgdGhhbiAwLjElICgwLjAwMSkgY2FuIGluY3JlYXNlIHRoZSBzaXplIGRyYW1hdGljYWxseSBwcm9jZWVkIHdpdGggY2F1dGlvbi4gUmVjZWl2ZWQgZXJyb3IgcmF0ZSAke3RoaXMuZXJyb3JSYXRlfSByZXN1bHRlZCBpbiBzaXplICR7ZmlsdGVyRGF0YS5sZW5ndGh9IGJ5dGVzLCAke2d6aXBTaXplfSBieXRlcyAoZ3ppcClgXG4gICAgICAgICAgKVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIGRhdGFcbiAgfVxuXG4gIGltcG9ydChkYXRhOiBSZXR1cm5UeXBlPCh0eXBlb2YgdGhpcylbJ2V4cG9ydCddPikge1xuICAgIHRoaXMubnVtSXRlbXMgPSBkYXRhLm51bUl0ZW1zXG4gICAgdGhpcy5lcnJvclJhdGUgPSBkYXRhLmVycm9yUmF0ZVxuICAgIHRoaXMubnVtQml0cyA9IGRhdGEubnVtQml0c1xuICAgIHRoaXMubnVtSGFzaGVzID0gZGF0YS5udW1IYXNoZXNcbiAgICB0aGlzLmJpdEFycmF5ID0gZGF0YS5iaXRBcnJheVxuICB9XG5cbiAgYWRkKGl0ZW06IHN0cmluZykge1xuICAgIGNvbnN0IGhhc2hWYWx1ZXMgPSB0aGlzLmdldEhhc2hWYWx1ZXMoaXRlbSlcbiAgICBoYXNoVmFsdWVzLmZvckVhY2goKGhhc2gpID0+IHtcbiAgICAgIHRoaXMuYml0QXJyYXlbaGFzaF0gPSAxXG4gICAgfSlcbiAgfVxuXG4gIGNvbnRhaW5zKGl0ZW06IHN0cmluZykge1xuICAgIGNvbnN0IGhhc2hWYWx1ZXMgPSB0aGlzLmdldEhhc2hWYWx1ZXMoaXRlbSlcbiAgICByZXR1cm4gaGFzaFZhbHVlcy5ldmVyeSgoaGFzaCkgPT4gdGhpcy5iaXRBcnJheVtoYXNoXSlcbiAgfVxuXG4gIGdldEhhc2hWYWx1ZXMoaXRlbTogc3RyaW5nKSB7XG4gICAgY29uc3QgaGFzaFZhbHVlcyA9IFtdXG4gICAgZm9yIChsZXQgaSA9IDE7IGkgPD0gdGhpcy5udW1IYXNoZXM7IGkrKykge1xuICAgICAgY29uc3QgaGFzaCA9IG11cm11cmhhc2gyKGAke2l0ZW19JHtpfWApICUgdGhpcy5udW1CaXRzXG4gICAgICBoYXNoVmFsdWVzLnB1c2goaGFzaClcbiAgICB9XG4gICAgcmV0dXJuIGhhc2hWYWx1ZXNcbiAgfVxufVxuIl0sIm5hbWVzIjpbIkJsb29tRmlsdGVyIiwibXVybXVyaGFzaDIiLCJzdHIiLCJoIiwiaSIsImxlbmd0aCIsImMiLCJjaGFyQ29kZUF0IiwiTWF0aCIsImltdWwiLCJERUZBVUxUX0VSUk9SX1JBVEUiLCJmcm9tIiwiaXRlbXMiLCJlcnJvclJhdGUiLCJmaWx0ZXIiLCJpdGVtIiwiYWRkIiwiZXhwb3J0IiwiZGF0YSIsIm51bUl0ZW1zIiwibnVtQml0cyIsIm51bUhhc2hlcyIsImJpdEFycmF5IiwicHJvY2VzcyIsImVudiIsIk5FWFRfUlVOVElNRSIsImZpbHRlckRhdGEiLCJKU09OIiwic3RyaW5naWZ5IiwiZ3ppcFNpemUiLCJyZXF1aXJlIiwic3luYyIsImNvbnNvbGUiLCJ3YXJuIiwiaW1wb3J0IiwiaGFzaFZhbHVlcyIsImdldEhhc2hWYWx1ZXMiLCJmb3JFYWNoIiwiaGFzaCIsImNvbnRhaW5zIiwiZXZlcnkiLCJwdXNoIiwiY29uc3RydWN0b3IiLCJjZWlsIiwibG9nIiwiQXJyYXkiLCJmaWxsIl0sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(pages-dir-browser)/./node_modules/next/dist/shared/lib/bloom-filter.js\n")); - -/***/ }), - -/***/ "(pages-dir-browser)/./node_modules/next/dist/shared/lib/constants.js": -/*!********************************************************!*\ - !*** ./node_modules/next/dist/shared/lib/constants.js ***! - \********************************************************/ -/***/ ((module, exports, __webpack_require__) => { - -"use strict"; -eval(__webpack_require__.ts("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n APP_BUILD_MANIFEST: function() {\n return APP_BUILD_MANIFEST;\n },\n APP_CLIENT_INTERNALS: function() {\n return APP_CLIENT_INTERNALS;\n },\n APP_PATHS_MANIFEST: function() {\n return APP_PATHS_MANIFEST;\n },\n APP_PATH_ROUTES_MANIFEST: function() {\n return APP_PATH_ROUTES_MANIFEST;\n },\n BARREL_OPTIMIZATION_PREFIX: function() {\n return BARREL_OPTIMIZATION_PREFIX;\n },\n BLOCKED_PAGES: function() {\n return BLOCKED_PAGES;\n },\n BUILD_ID_FILE: function() {\n return BUILD_ID_FILE;\n },\n BUILD_MANIFEST: function() {\n return BUILD_MANIFEST;\n },\n CLIENT_PUBLIC_FILES_PATH: function() {\n return CLIENT_PUBLIC_FILES_PATH;\n },\n CLIENT_REFERENCE_MANIFEST: function() {\n return CLIENT_REFERENCE_MANIFEST;\n },\n CLIENT_STATIC_FILES_PATH: function() {\n return CLIENT_STATIC_FILES_PATH;\n },\n CLIENT_STATIC_FILES_RUNTIME_AMP: function() {\n return CLIENT_STATIC_FILES_RUNTIME_AMP;\n },\n CLIENT_STATIC_FILES_RUNTIME_MAIN: function() {\n return CLIENT_STATIC_FILES_RUNTIME_MAIN;\n },\n CLIENT_STATIC_FILES_RUNTIME_MAIN_APP: function() {\n return CLIENT_STATIC_FILES_RUNTIME_MAIN_APP;\n },\n CLIENT_STATIC_FILES_RUNTIME_POLYFILLS: function() {\n return CLIENT_STATIC_FILES_RUNTIME_POLYFILLS;\n },\n CLIENT_STATIC_FILES_RUNTIME_POLYFILLS_SYMBOL: function() {\n return CLIENT_STATIC_FILES_RUNTIME_POLYFILLS_SYMBOL;\n },\n CLIENT_STATIC_FILES_RUNTIME_REACT_REFRESH: function() {\n return CLIENT_STATIC_FILES_RUNTIME_REACT_REFRESH;\n },\n CLIENT_STATIC_FILES_RUNTIME_WEBPACK: function() {\n return CLIENT_STATIC_FILES_RUNTIME_WEBPACK;\n },\n COMPILER_INDEXES: function() {\n return COMPILER_INDEXES;\n },\n COMPILER_NAMES: function() {\n return COMPILER_NAMES;\n },\n CONFIG_FILES: function() {\n return CONFIG_FILES;\n },\n DEFAULT_RUNTIME_WEBPACK: function() {\n return DEFAULT_RUNTIME_WEBPACK;\n },\n DEFAULT_SANS_SERIF_FONT: function() {\n return DEFAULT_SANS_SERIF_FONT;\n },\n DEFAULT_SERIF_FONT: function() {\n return DEFAULT_SERIF_FONT;\n },\n DEV_CLIENT_MIDDLEWARE_MANIFEST: function() {\n return DEV_CLIENT_MIDDLEWARE_MANIFEST;\n },\n DEV_CLIENT_PAGES_MANIFEST: function() {\n return DEV_CLIENT_PAGES_MANIFEST;\n },\n DYNAMIC_CSS_MANIFEST: function() {\n return DYNAMIC_CSS_MANIFEST;\n },\n EDGE_RUNTIME_WEBPACK: function() {\n return EDGE_RUNTIME_WEBPACK;\n },\n EDGE_UNSUPPORTED_NODE_APIS: function() {\n return EDGE_UNSUPPORTED_NODE_APIS;\n },\n EXPORT_DETAIL: function() {\n return EXPORT_DETAIL;\n },\n EXPORT_MARKER: function() {\n return EXPORT_MARKER;\n },\n FUNCTIONS_CONFIG_MANIFEST: function() {\n return FUNCTIONS_CONFIG_MANIFEST;\n },\n IMAGES_MANIFEST: function() {\n return IMAGES_MANIFEST;\n },\n INTERCEPTION_ROUTE_REWRITE_MANIFEST: function() {\n return INTERCEPTION_ROUTE_REWRITE_MANIFEST;\n },\n MIDDLEWARE_BUILD_MANIFEST: function() {\n return MIDDLEWARE_BUILD_MANIFEST;\n },\n MIDDLEWARE_MANIFEST: function() {\n return MIDDLEWARE_MANIFEST;\n },\n MIDDLEWARE_REACT_LOADABLE_MANIFEST: function() {\n return MIDDLEWARE_REACT_LOADABLE_MANIFEST;\n },\n MODERN_BROWSERSLIST_TARGET: function() {\n return _modernbrowserslisttarget.default;\n },\n NEXT_BUILTIN_DOCUMENT: function() {\n return NEXT_BUILTIN_DOCUMENT;\n },\n NEXT_FONT_MANIFEST: function() {\n return NEXT_FONT_MANIFEST;\n },\n PAGES_MANIFEST: function() {\n return PAGES_MANIFEST;\n },\n PHASE_DEVELOPMENT_SERVER: function() {\n return PHASE_DEVELOPMENT_SERVER;\n },\n PHASE_EXPORT: function() {\n return PHASE_EXPORT;\n },\n PHASE_INFO: function() {\n return PHASE_INFO;\n },\n PHASE_PRODUCTION_BUILD: function() {\n return PHASE_PRODUCTION_BUILD;\n },\n PHASE_PRODUCTION_SERVER: function() {\n return PHASE_PRODUCTION_SERVER;\n },\n PHASE_TEST: function() {\n return PHASE_TEST;\n },\n PRERENDER_MANIFEST: function() {\n return PRERENDER_MANIFEST;\n },\n REACT_LOADABLE_MANIFEST: function() {\n return REACT_LOADABLE_MANIFEST;\n },\n ROUTES_MANIFEST: function() {\n return ROUTES_MANIFEST;\n },\n RSC_MODULE_TYPES: function() {\n return RSC_MODULE_TYPES;\n },\n SERVER_DIRECTORY: function() {\n return SERVER_DIRECTORY;\n },\n SERVER_FILES_MANIFEST: function() {\n return SERVER_FILES_MANIFEST;\n },\n SERVER_PROPS_ID: function() {\n return SERVER_PROPS_ID;\n },\n SERVER_REFERENCE_MANIFEST: function() {\n return SERVER_REFERENCE_MANIFEST;\n },\n STATIC_PROPS_ID: function() {\n return STATIC_PROPS_ID;\n },\n STATIC_STATUS_PAGES: function() {\n return STATIC_STATUS_PAGES;\n },\n STRING_LITERAL_DROP_BUNDLE: function() {\n return STRING_LITERAL_DROP_BUNDLE;\n },\n SUBRESOURCE_INTEGRITY_MANIFEST: function() {\n return SUBRESOURCE_INTEGRITY_MANIFEST;\n },\n SYSTEM_ENTRYPOINTS: function() {\n return SYSTEM_ENTRYPOINTS;\n },\n TRACE_OUTPUT_VERSION: function() {\n return TRACE_OUTPUT_VERSION;\n },\n TURBOPACK_CLIENT_MIDDLEWARE_MANIFEST: function() {\n return TURBOPACK_CLIENT_MIDDLEWARE_MANIFEST;\n },\n TURBO_TRACE_DEFAULT_MEMORY_LIMIT: function() {\n return TURBO_TRACE_DEFAULT_MEMORY_LIMIT;\n },\n UNDERSCORE_NOT_FOUND_ROUTE: function() {\n return UNDERSCORE_NOT_FOUND_ROUTE;\n },\n UNDERSCORE_NOT_FOUND_ROUTE_ENTRY: function() {\n return UNDERSCORE_NOT_FOUND_ROUTE_ENTRY;\n },\n WEBPACK_STATS: function() {\n return WEBPACK_STATS;\n }\n});\nconst _interop_require_default = __webpack_require__(/*! @swc/helpers/_/_interop_require_default */ \"(pages-dir-browser)/./node_modules/@swc/helpers/esm/_interop_require_default.js\");\nconst _modernbrowserslisttarget = /*#__PURE__*/ _interop_require_default._(__webpack_require__(/*! ./modern-browserslist-target */ \"(pages-dir-browser)/./node_modules/next/dist/shared/lib/modern-browserslist-target.js\"));\nconst COMPILER_NAMES = {\n client: 'client',\n server: 'server',\n edgeServer: 'edge-server'\n};\nconst COMPILER_INDEXES = {\n [COMPILER_NAMES.client]: 0,\n [COMPILER_NAMES.server]: 1,\n [COMPILER_NAMES.edgeServer]: 2\n};\nconst UNDERSCORE_NOT_FOUND_ROUTE = '/_not-found';\nconst UNDERSCORE_NOT_FOUND_ROUTE_ENTRY = \"\" + UNDERSCORE_NOT_FOUND_ROUTE + \"/page\";\nconst PHASE_EXPORT = 'phase-export';\nconst PHASE_PRODUCTION_BUILD = 'phase-production-build';\nconst PHASE_PRODUCTION_SERVER = 'phase-production-server';\nconst PHASE_DEVELOPMENT_SERVER = 'phase-development-server';\nconst PHASE_TEST = 'phase-test';\nconst PHASE_INFO = 'phase-info';\nconst PAGES_MANIFEST = 'pages-manifest.json';\nconst WEBPACK_STATS = 'webpack-stats.json';\nconst APP_PATHS_MANIFEST = 'app-paths-manifest.json';\nconst APP_PATH_ROUTES_MANIFEST = 'app-path-routes-manifest.json';\nconst BUILD_MANIFEST = 'build-manifest.json';\nconst APP_BUILD_MANIFEST = 'app-build-manifest.json';\nconst FUNCTIONS_CONFIG_MANIFEST = 'functions-config-manifest.json';\nconst SUBRESOURCE_INTEGRITY_MANIFEST = 'subresource-integrity-manifest';\nconst NEXT_FONT_MANIFEST = 'next-font-manifest';\nconst EXPORT_MARKER = 'export-marker.json';\nconst EXPORT_DETAIL = 'export-detail.json';\nconst PRERENDER_MANIFEST = 'prerender-manifest.json';\nconst ROUTES_MANIFEST = 'routes-manifest.json';\nconst IMAGES_MANIFEST = 'images-manifest.json';\nconst SERVER_FILES_MANIFEST = 'required-server-files.json';\nconst DEV_CLIENT_PAGES_MANIFEST = '_devPagesManifest.json';\nconst MIDDLEWARE_MANIFEST = 'middleware-manifest.json';\nconst TURBOPACK_CLIENT_MIDDLEWARE_MANIFEST = '_clientMiddlewareManifest.json';\nconst DEV_CLIENT_MIDDLEWARE_MANIFEST = '_devMiddlewareManifest.json';\nconst REACT_LOADABLE_MANIFEST = 'react-loadable-manifest.json';\nconst SERVER_DIRECTORY = 'server';\nconst CONFIG_FILES = [\n 'next.config.js',\n 'next.config.mjs',\n 'next.config.ts'\n];\nconst BUILD_ID_FILE = 'BUILD_ID';\nconst BLOCKED_PAGES = [\n '/_document',\n '/_app',\n '/_error'\n];\nconst CLIENT_PUBLIC_FILES_PATH = 'public';\nconst CLIENT_STATIC_FILES_PATH = 'static';\nconst STRING_LITERAL_DROP_BUNDLE = '__NEXT_DROP_CLIENT_FILE__';\nconst NEXT_BUILTIN_DOCUMENT = '__NEXT_BUILTIN_DOCUMENT__';\nconst BARREL_OPTIMIZATION_PREFIX = '__barrel_optimize__';\nconst CLIENT_REFERENCE_MANIFEST = 'client-reference-manifest';\nconst SERVER_REFERENCE_MANIFEST = 'server-reference-manifest';\nconst MIDDLEWARE_BUILD_MANIFEST = 'middleware-build-manifest';\nconst MIDDLEWARE_REACT_LOADABLE_MANIFEST = 'middleware-react-loadable-manifest';\nconst INTERCEPTION_ROUTE_REWRITE_MANIFEST = 'interception-route-rewrite-manifest';\nconst DYNAMIC_CSS_MANIFEST = 'dynamic-css-manifest';\nconst CLIENT_STATIC_FILES_RUNTIME_MAIN = \"main\";\nconst CLIENT_STATIC_FILES_RUNTIME_MAIN_APP = \"\" + CLIENT_STATIC_FILES_RUNTIME_MAIN + \"-app\";\nconst APP_CLIENT_INTERNALS = 'app-pages-internals';\nconst CLIENT_STATIC_FILES_RUNTIME_REACT_REFRESH = \"react-refresh\";\nconst CLIENT_STATIC_FILES_RUNTIME_AMP = \"amp\";\nconst CLIENT_STATIC_FILES_RUNTIME_WEBPACK = \"webpack\";\nconst CLIENT_STATIC_FILES_RUNTIME_POLYFILLS = 'polyfills';\nconst CLIENT_STATIC_FILES_RUNTIME_POLYFILLS_SYMBOL = Symbol(CLIENT_STATIC_FILES_RUNTIME_POLYFILLS);\n_c = CLIENT_STATIC_FILES_RUNTIME_POLYFILLS_SYMBOL;\nconst DEFAULT_RUNTIME_WEBPACK = 'webpack-runtime';\nconst EDGE_RUNTIME_WEBPACK = 'edge-runtime-webpack';\nconst STATIC_PROPS_ID = '__N_SSG';\nconst SERVER_PROPS_ID = '__N_SSP';\nconst DEFAULT_SERIF_FONT = {\n name: 'Times New Roman',\n xAvgCharWidth: 821,\n azAvgWidth: 854.3953488372093,\n unitsPerEm: 2048\n};\nconst DEFAULT_SANS_SERIF_FONT = {\n name: 'Arial',\n xAvgCharWidth: 904,\n azAvgWidth: 934.5116279069767,\n unitsPerEm: 2048\n};\nconst STATIC_STATUS_PAGES = [\n '/500'\n];\nconst TRACE_OUTPUT_VERSION = 1;\nconst TURBO_TRACE_DEFAULT_MEMORY_LIMIT = 6000;\nconst RSC_MODULE_TYPES = {\n client: 'client',\n server: 'server'\n};\nconst EDGE_UNSUPPORTED_NODE_APIS = [\n 'clearImmediate',\n 'setImmediate',\n 'BroadcastChannel',\n 'ByteLengthQueuingStrategy',\n 'CompressionStream',\n 'CountQueuingStrategy',\n 'DecompressionStream',\n 'DomException',\n 'MessageChannel',\n 'MessageEvent',\n 'MessagePort',\n 'ReadableByteStreamController',\n 'ReadableStreamBYOBRequest',\n 'ReadableStreamDefaultController',\n 'TransformStreamDefaultController',\n 'WritableStreamDefaultController'\n];\nconst SYSTEM_ENTRYPOINTS = new Set([\n CLIENT_STATIC_FILES_RUNTIME_MAIN,\n CLIENT_STATIC_FILES_RUNTIME_REACT_REFRESH,\n CLIENT_STATIC_FILES_RUNTIME_AMP,\n CLIENT_STATIC_FILES_RUNTIME_MAIN_APP\n]);\nif ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=constants.js.map\nvar _c;\n$RefreshReg$(_c, \"CLIENT_STATIC_FILES_RUNTIME_POLYFILLS_SYMBOL\");\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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3Qvc2hhcmVkL2xpYi9jb25zdGFudHMuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7O0lBbUNhQSxrQkFBa0I7ZUFBbEJBOztJQWlEQUMsb0JBQW9CO2VBQXBCQTs7SUFwREFDLGtCQUFrQjtlQUFsQkE7O0lBQ0FDLHdCQUF3QjtlQUF4QkE7O0lBOEJBQywwQkFBMEI7ZUFBMUJBOztJQUxBQyxhQUFhO2VBQWJBOztJQURBQyxhQUFhO2VBQWJBOztJQXZCQUMsY0FBYztlQUFkQTs7SUF5QkFDLHdCQUF3QjtlQUF4QkE7O0lBT0FDLHlCQUF5QjtlQUF6QkE7O0lBTkFDLHdCQUF3QjtlQUF4QkE7O0lBNEJBQywrQkFBK0I7ZUFBL0JBOztJQVBBQyxnQ0FBZ0M7ZUFBaENBOztJQUNBQyxvQ0FBb0M7ZUFBcENBOztJQVVBQyxxQ0FBcUM7ZUFBckNBOztJQUNBQyw0Q0FBNEM7ZUFBNUNBOztJQVBBQyx5Q0FBeUM7ZUFBekNBOztJQUlBQyxtQ0FBbUM7ZUFBbkNBOztJQTVFQUMsZ0JBQWdCO2VBQWhCQTs7SUFSQUMsY0FBYztlQUFkQTs7SUE4Q0FDLFlBQVk7ZUFBWkE7O0lBNENBQyx1QkFBdUI7ZUFBdkJBOztJQVVBQyx1QkFBdUI7ZUFBdkJBOztJQU5BQyxrQkFBa0I7ZUFBbEJBOztJQW5EQUMsOEJBQThCO2VBQTlCQTs7SUFKQUMseUJBQXlCO2VBQXpCQTs7SUFpQ0FDLG9CQUFvQjtlQUFwQkE7O0lBbUJBQyxvQkFBb0I7ZUFBcEJBOztJQTZCQUMsMEJBQTBCO2VBQTFCQTs7SUF0RkFDLGFBQWE7ZUFBYkE7O0lBREFDLGFBQWE7ZUFBYkE7O0lBSEFDLHlCQUF5QjtlQUF6QkE7O0lBT0FDLGVBQWU7ZUFBZkE7O0lBZ0NBQyxtQ0FBbUM7ZUFBbkNBOztJQUxBQyx5QkFBeUI7ZUFBekJBOztJQXhCQUMsbUJBQW1CO2VBQW5CQTs7SUEwQkFDLGtDQUFrQztlQUFsQ0E7O0lBdEVKQywwQkFBMEI7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RTdDLE1BQU1ILHdDQUF3QztBQUM5QyxNQUFNQywrQ0FBK0NzRCxPQUMxRHZEOztBQUVLLE1BQU1PLDBCQUEwQjtBQUNoQyxNQUFNTSx1QkFBdUI7QUFDN0IsTUFBTTRCLGtCQUFrQjtBQUN4QixNQUFNRixrQkFBa0I7QUFDeEIsTUFBTTlCLHFCQUFxQjtJQUNoQytDLE1BQU07SUFDTkMsZUFBZTtJQUNmQyxZQUFZO0lBQ1pDLFlBQVk7QUFDZDtBQUNPLE1BQU1uRCwwQkFBMEI7SUFDckNnRCxNQUFNO0lBQ05DLGVBQWU7SUFDZkMsWUFBWTtJQUNaQyxZQUFZO0FBQ2Q7QUFDTyxNQUFNakIsc0JBQXNCO0lBQUM7Q0FBTztBQUNwQyxNQUFNSSx1QkFBdUI7QUFFN0IsTUFBTUUsbUNBQW1DO0FBRXpDLE1BQU1aLG1CQUFtQjtJQUM5QmdCLFFBQVE7SUFDUkMsUUFBUTtBQUNWO0FBTU8sTUFBTXZDLDZCQUE2QjtJQUN4QztJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtDQUNEO0FBRU0sTUFBTStCLHFCQUFxQixJQUFJZSxJQUFZO0lBQ2hEOUQ7SUFDQUk7SUFDQUw7SUFDQUU7Q0FDRCIsInNvdXJjZXMiOlsiRDpcXHNyY1xcc2hhcmVkXFxsaWJcXGNvbnN0YW50cy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgTU9ERVJOX0JST1dTRVJTTElTVF9UQVJHRVQgZnJvbSAnLi9tb2Rlcm4tYnJvd3NlcnNsaXN0LXRhcmdldCdcblxuZXhwb3J0IHsgTU9ERVJOX0JST1dTRVJTTElTVF9UQVJHRVQgfVxuXG5leHBvcnQgdHlwZSBWYWx1ZU9mPFQ+ID0gUmVxdWlyZWQ8VD5ba2V5b2YgVF1cblxuZXhwb3J0IGNvbnN0IENPTVBJTEVSX05BTUVTID0ge1xuICBjbGllbnQ6ICdjbGllbnQnLFxuICBzZXJ2ZXI6ICdzZXJ2ZXInLFxuICBlZGdlU2VydmVyOiAnZWRnZS1zZXJ2ZXInLFxufSBhcyBjb25zdFxuXG5leHBvcnQgdHlwZSBDb21waWxlck5hbWVWYWx1ZXMgPSBWYWx1ZU9mPHR5cGVvZiBDT01QSUxFUl9OQU1FUz5cblxuZXhwb3J0IGNvbnN0IENPTVBJTEVSX0lOREVYRVM6IHtcbiAgW2NvbXBpbGVyS2V5IGluIENvbXBpbGVyTmFtZVZhbHVlc106IG51bWJlclxufSA9IHtcbiAgW0NPTVBJTEVSX05BTUVTLmNsaWVudF06IDAsXG4gIFtDT01QSUxFUl9OQU1FUy5zZXJ2ZXJdOiAxLFxuICBbQ09NUElMRVJfTkFNRVMuZWRnZVNlcnZlcl06IDIsXG59IGFzIGNvbnN0XG5cbmV4cG9ydCBjb25zdCBVTkRFUlNDT1JFX05PVF9GT1VORF9ST1VURSA9ICcvX25vdC1mb3VuZCdcbmV4cG9ydCBjb25zdCBVTkRFUlNDT1JFX05PVF9GT1VORF9ST1VURV9FTlRSWSA9IGAke1VOREVSU0NPUkVfTk9UX0ZPVU5EX1JPVVRFfS9wYWdlYFxuZXhwb3J0IGNvbnN0IFBIQVNFX0VYUE9SVCA9ICdwaGFzZS1leHBvcnQnXG5leHBvcnQgY29uc3QgUEhBU0VfUFJPRFVDVElPTl9CVUlMRCA9ICdwaGFzZS1wcm9kdWN0aW9uLWJ1aWxkJ1xuZXhwb3J0IGNvbnN0IFBIQVNFX1BST0RVQ1RJT05fU0VSVkVSID0gJ3BoYXNlLXByb2R1Y3Rpb24tc2VydmVyJ1xuZXhwb3J0IGNvbnN0IFBIQVNFX0RFVkVMT1BNRU5UX1NFUlZFUiA9ICdwaGFzZS1kZXZlbG9wbWVudC1zZXJ2ZXInXG5leHBvcnQgY29uc3QgUEhBU0VfVEVTVCA9ICdwaGFzZS10ZXN0J1xuZXhwb3J0IGNvbnN0IFBIQVNFX0lORk8gPSAncGhhc2UtaW5mbydcbmV4cG9ydCBjb25zdCBQQUdFU19NQU5JRkVTVCA9ICdwYWdlcy1tYW5pZmVzdC5qc29uJ1xuZXhwb3J0IGNvbnN0IFdFQlBBQ0tfU1RBVFMgPSAnd2VicGFjay1zdGF0cy5qc29uJ1xuZXhwb3J0IGNvbnN0IEFQUF9QQVRIU19NQU5JRkVTVCA9ICdhcHAtcGF0aHMtbWFuaWZlc3QuanNvbidcbmV4cG9ydCBjb25zdCBBUFBfUEFUSF9ST1VURVNfTUFOSUZFU1QgPSAnYXBwLXBhdGgtcm91dGVzLW1hbmlmZXN0Lmpzb24nXG5leHBvcnQgY29uc3QgQlVJTERfTUFOSUZFU1QgPSAnYnVpbGQtbWFuaWZlc3QuanNvbidcbmV4cG9ydCBjb25zdCBBUFBfQlVJTERfTUFOSUZFU1QgPSAnYXBwLWJ1aWxkLW1hbmlmZXN0Lmpzb24nXG5leHBvcnQgY29uc3QgRlVOQ1RJT05TX0NPTkZJR19NQU5JRkVTVCA9ICdmdW5jdGlvbnMtY29uZmlnLW1hbmlmZXN0Lmpzb24nXG5leHBvcnQgY29uc3QgU1VCUkVTT1VSQ0VfSU5URUdSSVRZX01BTklGRVNUID0gJ3N1YnJlc291cmNlLWludGVncml0eS1tYW5pZmVzdCdcbmV4cG9ydCBjb25zdCBORVhUX0ZPTlRfTUFOSUZFU1QgPSAnbmV4dC1mb250LW1hbmlmZXN0J1xuZXhwb3J0IGNvbnN0IEVYUE9SVF9NQVJLRVIgPSAnZXhwb3J0LW1hcmtlci5qc29uJ1xuZXhwb3J0IGNvbnN0IEVYUE9SVF9ERVRBSUwgPSAnZXhwb3J0LWRldGFpbC5qc29uJ1xuZXhwb3J0IGNvbnN0IFBSRVJFTkRFUl9NQU5JRkVTVCA9ICdwcmVyZW5kZXItbWFuaWZlc3QuanNvbidcbmV4cG9ydCBjb25zdCBST1VURVNfTUFOSUZFU1QgPSAncm91dGVzLW1hbmlmZXN0Lmpzb24nXG5leHBvcnQgY29uc3QgSU1BR0VTX01BTklGRVNUID0gJ2ltYWdlcy1tYW5pZmVzdC5qc29uJ1xuZXhwb3J0IGNvbnN0IFNFUlZFUl9GSUxFU19NQU5JRkVTVCA9ICdyZXF1aXJlZC1zZXJ2ZXItZmlsZXMuanNvbidcbmV4cG9ydCBjb25zdCBERVZfQ0xJRU5UX1BBR0VTX01BTklGRVNUID0gJ19kZXZQYWdlc01hbmlmZXN0Lmpzb24nXG5leHBvcnQgY29uc3QgTUlERExFV0FSRV9NQU5JRkVTVCA9ICdtaWRkbGV3YXJlLW1hbmlmZXN0Lmpzb24nXG5leHBvcnQgY29uc3QgVFVSQk9QQUNLX0NMSUVOVF9NSURETEVXQVJFX01BTklGRVNUID1cbiAgJ19jbGllbnRNaWRkbGV3YXJlTWFuaWZlc3QuanNvbidcbmV4cG9ydCBjb25zdCBERVZfQ0xJRU5UX01JRERMRVdBUkVfTUFOSUZFU1QgPSAnX2Rldk1pZGRsZXdhcmVNYW5pZmVzdC5qc29uJ1xuZXhwb3J0IGNvbnN0IFJFQUNUX0xPQURBQkxFX01BTklGRVNUID0gJ3JlYWN0LWxvYWRhYmxlLW1hbmlmZXN0Lmpzb24nXG5leHBvcnQgY29uc3QgU0VSVkVSX0RJUkVDVE9SWSA9ICdzZXJ2ZXInXG5leHBvcnQgY29uc3QgQ09ORklHX0ZJTEVTID0gW1xuICAnbmV4dC5jb25maWcuanMnLFxuICAnbmV4dC5jb25maWcubWpzJyxcbiAgJ25leHQuY29uZmlnLnRzJyxcbl1cbmV4cG9ydCBjb25zdCBCVUlMRF9JRF9GSUxFID0gJ0JVSUxEX0lEJ1xuZXhwb3J0IGNvbnN0IEJMT0NLRURfUEFHRVMgPSBbJy9fZG9jdW1lbnQnLCAnL19hcHAnLCAnL19lcnJvciddXG5leHBvcnQgY29uc3QgQ0xJRU5UX1BVQkxJQ19GSUxFU19QQVRIID0gJ3B1YmxpYydcbmV4cG9ydCBjb25zdCBDTElFTlRfU1RBVElDX0ZJTEVTX1BBVEggPSAnc3RhdGljJ1xuZXhwb3J0IGNvbnN0IFNUUklOR19MSVRFUkFMX0RST1BfQlVORExFID0gJ19fTkVYVF9EUk9QX0NMSUVOVF9GSUxFX18nXG5leHBvcnQgY29uc3QgTkVYVF9CVUlMVElOX0RPQ1VNRU5UID0gJ19fTkVYVF9CVUlMVElOX0RPQ1VNRU5UX18nXG5leHBvcnQgY29uc3QgQkFSUkVMX09QVElNSVpBVElPTl9QUkVGSVggPSAnX19iYXJyZWxfb3B0aW1pemVfXydcblxuLy8gc2VydmVyL1tlbnRyeV0vcGFnZV9jbGllbnQtcmVmZXJlbmNlLW1hbmlmZXN0LmpzXG5leHBvcnQgY29uc3QgQ0xJRU5UX1JFRkVSRU5DRV9NQU5JRkVTVCA9ICdjbGllbnQtcmVmZXJlbmNlLW1hbmlmZXN0J1xuLy8gc2VydmVyL3NlcnZlci1yZWZlcmVuY2UtbWFuaWZlc3RcbmV4cG9ydCBjb25zdCBTRVJWRVJfUkVGRVJFTkNFX01BTklGRVNUID0gJ3NlcnZlci1yZWZlcmVuY2UtbWFuaWZlc3QnXG4vLyBzZXJ2ZXIvbWlkZGxld2FyZS1idWlsZC1tYW5pZmVzdC5qc1xuZXhwb3J0IGNvbnN0IE1JRERMRVdBUkVfQlVJTERfTUFOSUZFU1QgPSAnbWlkZGxld2FyZS1idWlsZC1tYW5pZmVzdCdcbi8vIHNlcnZlci9taWRkbGV3YXJlLXJlYWN0LWxvYWRhYmxlLW1hbmlmZXN0LmpzXG5leHBvcnQgY29uc3QgTUlERExFV0FSRV9SRUFDVF9MT0FEQUJMRV9NQU5JRkVTVCA9XG4gICdtaWRkbGV3YXJlLXJlYWN0LWxvYWRhYmxlLW1hbmlmZXN0J1xuLy8gc2VydmVyL2ludGVyY2VwdGlvbi1yb3V0ZS1yZXdyaXRlLW1hbmlmZXN0LmpzXG5leHBvcnQgY29uc3QgSU5URVJDRVBUSU9OX1JPVVRFX1JFV1JJVEVfTUFOSUZFU1QgPVxuICAnaW50ZXJjZXB0aW9uLXJvdXRlLXJld3JpdGUtbWFuaWZlc3QnXG4vLyBzZXJ2ZXIvZHluYW1pYy1jc3MtbWFuaWZlc3QuanNcbmV4cG9ydCBjb25zdCBEWU5BTUlDX0NTU19NQU5JRkVTVCA9ICdkeW5hbWljLWNzcy1tYW5pZmVzdCdcblxuLy8gc3RhdGljL3J1bnRpbWUvbWFpbi5qc1xuZXhwb3J0IGNvbnN0IENMSUVOVF9TVEFUSUNfRklMRVNfUlVOVElNRV9NQUlOID0gYG1haW5gXG5leHBvcnQgY29uc3QgQ0xJRU5UX1NUQVRJQ19GSUxFU19SVU5USU1FX01BSU5fQVBQID0gYCR7Q0xJRU5UX1NUQVRJQ19GSUxFU19SVU5USU1FX01BSU59LWFwcGBcbi8vIG5leHQgaW50ZXJuYWwgY2xpZW50IGNvbXBvbmVudHMgY2h1bmsgZm9yIGxheW91dHNcbmV4cG9ydCBjb25zdCBBUFBfQ0xJRU5UX0lOVEVSTkFMUyA9ICdhcHAtcGFnZXMtaW50ZXJuYWxzJ1xuLy8gc3RhdGljL3J1bnRpbWUvcmVhY3QtcmVmcmVzaC5qc1xuZXhwb3J0IGNvbnN0IENMSUVOVF9TVEFUSUNfRklMRVNfUlVOVElNRV9SRUFDVF9SRUZSRVNIID0gYHJlYWN0LXJlZnJlc2hgXG4vLyBzdGF0aWMvcnVudGltZS9hbXAuanNcbmV4cG9ydCBjb25zdCBDTElFTlRfU1RBVElDX0ZJTEVTX1JVTlRJTUVfQU1QID0gYGFtcGBcbi8vIHN0YXRpYy9ydW50aW1lL3dlYnBhY2suanNcbmV4cG9ydCBjb25zdCBDTElFTlRfU1RBVElDX0ZJTEVTX1JVTlRJTUVfV0VCUEFDSyA9IGB3ZWJwYWNrYFxuLy8gc3RhdGljL3J1bnRpbWUvcG9seWZpbGxzLmpzXG5leHBvcnQgY29uc3QgQ0xJRU5UX1NUQVRJQ19GSUxFU19SVU5USU1FX1BPTFlGSUxMUyA9ICdwb2x5ZmlsbHMnXG5leHBvcnQgY29uc3QgQ0xJRU5UX1NUQVRJQ19GSUxFU19SVU5USU1FX1BPTFlGSUxMU19TWU1CT0wgPSBTeW1ib2woXG4gIENMSUVOVF9TVEFUSUNfRklMRVNfUlVOVElNRV9QT0xZRklMTFNcbilcbmV4cG9ydCBjb25zdCBERUZBVUxUX1JVTlRJTUVfV0VCUEFDSyA9ICd3ZWJwYWNrLXJ1bnRpbWUnXG5leHBvcnQgY29uc3QgRURHRV9SVU5USU1FX1dFQlBBQ0sgPSAnZWRnZS1ydW50aW1lLXdlYnBhY2snXG5leHBvcnQgY29uc3QgU1RBVElDX1BST1BTX0lEID0gJ19fTl9TU0cnXG5leHBvcnQgY29uc3QgU0VSVkVSX1BST1BTX0lEID0gJ19fTl9TU1AnXG5leHBvcnQgY29uc3QgREVGQVVMVF9TRVJJRl9GT05UID0ge1xuICBuYW1lOiAnVGltZXMgTmV3IFJvbWFuJyxcbiAgeEF2Z0NoYXJXaWR0aDogODIxLFxuICBhekF2Z1dpZHRoOiA4NTQuMzk1MzQ4ODM3MjA5MyxcbiAgdW5pdHNQZXJFbTogMjA0OCxcbn1cbmV4cG9ydCBjb25zdCBERUZBVUxUX1NBTlNfU0VSSUZfRk9OVCA9IHtcbiAgbmFtZTogJ0FyaWFsJyxcbiAgeEF2Z0NoYXJXaWR0aDogOTA0LFxuICBhekF2Z1dpZHRoOiA5MzQuNTExNjI3OTA2OTc2NyxcbiAgdW5pdHNQZXJFbTogMjA0OCxcbn1cbmV4cG9ydCBjb25zdCBTVEFUSUNfU1RBVFVTX1BBR0VTID0gWycvNTAwJ11cbmV4cG9ydCBjb25zdCBUUkFDRV9PVVRQVVRfVkVSU0lPTiA9IDFcbi8vIGluIGBNQmBcbmV4cG9ydCBjb25zdCBUVVJCT19UUkFDRV9ERUZBVUxUX01FTU9SWV9MSU1JVCA9IDYwMDBcblxuZXhwb3J0IGNvbnN0IFJTQ19NT0RVTEVfVFlQRVMgPSB7XG4gIGNsaWVudDogJ2NsaWVudCcsXG4gIHNlcnZlcjogJ3NlcnZlcicsXG59IGFzIGNvbnN0XG5cbi8vIGNvbXBhcmluZ1xuLy8gaHR0cHM6Ly9uZXh0anMub3JnL2RvY3MvYXBpLXJlZmVyZW5jZS9lZGdlLXJ1bnRpbWVcbi8vIHdpdGhcbi8vIGh0dHBzOi8vbm9kZWpzLm9yZy9kb2NzL2xhdGVzdC9hcGkvZ2xvYmFscy5odG1sXG5leHBvcnQgY29uc3QgRURHRV9VTlNVUFBPUlRFRF9OT0RFX0FQSVMgPSBbXG4gICdjbGVhckltbWVkaWF0ZScsXG4gICdzZXRJbW1lZGlhdGUnLFxuICAnQnJvYWRjYXN0Q2hhbm5lbCcsXG4gICdCeXRlTGVuZ3RoUXVldWluZ1N0cmF0ZWd5JyxcbiAgJ0NvbXByZXNzaW9uU3RyZWFtJyxcbiAgJ0NvdW50UXVldWluZ1N0cmF0ZWd5JyxcbiAgJ0RlY29tcHJlc3Npb25TdHJlYW0nLFxuICAnRG9tRXhjZXB0aW9uJyxcbiAgJ01lc3NhZ2VDaGFubmVsJyxcbiAgJ01lc3NhZ2VFdmVudCcsXG4gICdNZXNzYWdlUG9ydCcsXG4gICdSZWFkYWJsZUJ5dGVTdHJlYW1Db250cm9sbGVyJyxcbiAgJ1JlYWRhYmxlU3RyZWFtQllPQlJlcXVlc3QnLFxuICAnUmVhZGFibGVTdHJlYW1EZWZhdWx0Q29udHJvbGxlcicsXG4gICdUcmFuc2Zvcm1TdHJlYW1EZWZhdWx0Q29udHJvbGxlcicsXG4gICdXcml0YWJsZVN0cmVhbURlZmF1bHRDb250cm9sbGVyJyxcbl1cblxuZXhwb3J0IGNvbnN0IFNZU1RFTV9FTlRSWVBPSU5UUyA9IG5ldyBTZXQ8c3RyaW5nPihbXG4gIENMSUVOVF9TVEFUSUNfRklMRVNfUlVOVElNRV9NQUlOLFxuICBDTElFTlRfU1RBVElDX0ZJTEVTX1JVTlRJTUVfUkVBQ1RfUkVGUkVTSCxcbiAgQ0xJRU5UX1NUQVRJQ19GSUxFU19SVU5USU1FX0FNUCxcbiAgQ0xJRU5UX1NUQVRJQ19GSUxFU19SVU5USU1FX01BSU5fQVBQLFxuXSlcbiJdLCJuYW1lcyI6WyJBUFBfQlVJTERfTUFOSUZFU1QiLCJBUFBfQ0xJRU5UX0lOVEVSTkFMUyIsIkFQUF9QQVRIU19NQU5JRkVTVCIsIkFQUF9QQVRIX1JPVVRFU19NQU5JRkVTVCIsIkJBUlJFTF9PUFRJTUlaQVRJT05fUFJFRklYIiwiQkxPQ0tFRF9QQUdFUyIsIkJVSUxEX0lEX0ZJTEUiLCJCVUlMRF9NQU5JRkVTVCIsIkNMSUVOVF9QVUJMSUNfRklMRVNfUEFUSCIsIkNMSUVOVF9SRUZFUkVOQ0VfTUFOSUZFU1QiLCJDTElFTlRfU1RBVElDX0ZJTEVTX1BBVEgiLCJDTElFTlRfU1RBVElDX0ZJTEVTX1JVTlRJTUVfQU1QIiwiQ0xJRU5UX1NUQVRJQ19GSUxFU19SVU5USU1FX01BSU4iLCJDTElFTlRfU1RBVElDX0ZJTEVTX1JVTlRJTUVfTUFJTl9BUFAiLCJDTElFTlRfU1RBVElDX0ZJTEVTX1JVTlRJTUVfUE9MWUZJTExTIiwiQ0xJRU5UX1NUQVRJQ19GSUxFU19SVU5USU1FX1BPTFlGSUxMU19TWU1CT0wiLCJDTElFTlRfU1RBVElDX0ZJTEVTX1JVTlRJTUVfUkVBQ1RfUkVGUkVTSCIsIkNMSUVOVF9TVEFUSUNfRklMRVNfUlVOVElNRV9XRUJQQUNLIiwiQ09NUElMRVJfSU5ERVhFUyIsIkNPTVBJTEVSX05BTUVTIiwiQ09ORklHX0ZJTEVTIiwiREVGQVVMVF9SVU5USU1FX1dFQlBBQ0siLCJERUZBVUxUX1NBTlNfU0VSSUZfRk9OVCIsIkRFRkFVTFRfU0VSSUZfRk9OVCIsIkRFVl9DTElFTlRfTUlERExFV0FSRV9NQU5JRkVTVCIsIkRFVl9DTElFTlRfUEFHRVNfTUFOSUZFU1QiLCJEWU5BTUlDX0NTU19NQU5JRkVTVCIsIkVER0VfUlVOVElNRV9XRUJQQUNLIiwiRURHRV9VTlNVUFBPUlRFRF9OT0RFX0FQSVMiLCJFWFBPUlRfREVUQUlMIiwiRVhQT1JUX01BUktFUiIsIkZVTkNUSU9OU19DT05GSUdfTUFOSUZFU1QiLCJJTUFHRVNfTUFOSUZFU1QiLCJJTlRFUkNFUFRJT05fUk9VVEVfUkVXUklURV9NQU5JRkVTVCIsIk1JRERMRVdBUkVfQlVJTERfTUFOSUZFU1QiLCJNSURETEVXQVJFX01BTklGRVNUIiwiTUlERExFV0FSRV9SRUFDVF9MT0FEQUJMRV9NQU5JRkVTVCIsIk1PREVSTl9CUk9XU0VSU0xJU1RfVEFSR0VUIiwiTkVYVF9CVUlMVElOX0RPQ1VNRU5UIiwiTkVYVF9GT05UX01BTklGRVNUIiwiUEFHRVNfTUFOSUZFU1QiLCJQSEFTRV9ERVZFTE9QTUVOVF9TRVJWRVIiLCJQSEFTRV9FWFBPUlQiLCJQSEFTRV9JTkZPIiwiUEhBU0VfUFJPRFVDVElPTl9CVUlMRCIsIlBIQVNFX1BST0RVQ1RJT05fU0VSVkVSIiwiUEhBU0VfVEVTVCIsIlBSRVJFTkRFUl9NQU5JRkVTVCIsIlJFQUNUX0xPQURBQkxFX01BTklGRVNUIiwiUk9VVEVTX01BTklGRVNUIiwiUlNDX01PRFVMRV9UWVBFUyIsIlNFUlZFUl9ESVJFQ1RPUlkiLCJTRVJWRVJfRklMRVNfTUFOSUZFU1QiLCJTRVJWRVJfUFJPUFNfSUQiLCJTRVJWRVJfUkVGRVJFTkNFX01BTklGRVNUIiwiU1RBVElDX1BST1BTX0lEIiwiU1RBVElDX1NUQVRVU19QQUdFUyIsIlNUUklOR19MSVRFUkFMX0RST1BfQlVORExFIiwiU1VCUkVTT1VSQ0VfSU5URUdSSVRZX01BTklGRVNUIiwiU1lTVEVNX0VOVFJZUE9JTlRTIiwiVFJBQ0VfT1VUUFVUX1ZFUlNJT04iLCJUVVJCT1BBQ0tfQ0xJRU5UX01JRERMRVdBUkVfTUFOSUZFU1QiLCJUVVJCT19UUkFDRV9ERUZBVUxUX01FTU9SWV9MSU1JVCIsIlVOREVSU0NPUkVfTk9UX0ZPVU5EX1JPVVRFIiwiVU5ERVJTQ09SRV9OT1RfRk9VTkRfUk9VVEVfRU5UUlkiLCJXRUJQQUNLX1NUQVRTIiwiY2xpZW50Iiwic2VydmVyIiwiZWRnZVNlcnZlciIsIlN5bWJvbCIsIm5hbWUiLCJ4QXZnQ2hhcldpZHRoIiwiYXpBdmdXaWR0aCIsInVuaXRzUGVyRW0iLCJTZXQiXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(pages-dir-browser)/./node_modules/next/dist/shared/lib/constants.js\n")); - -/***/ }), - -/***/ "(pages-dir-browser)/./node_modules/next/dist/shared/lib/encode-uri-path.js": -/*!**************************************************************!*\ - !*** ./node_modules/next/dist/shared/lib/encode-uri-path.js ***! - \**************************************************************/ -/***/ ((module, exports, __webpack_require__) => { - -"use strict"; -eval(__webpack_require__.ts("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"encodeURIPath\", ({\n enumerable: true,\n get: function() {\n return encodeURIPath;\n }\n}));\nfunction encodeURIPath(file) {\n return file.split('/').map((p)=>encodeURIComponent(p)).join('/');\n} //# sourceMappingURL=encode-uri-path.js.map\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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3Qvc2hhcmVkL2xpYi9lbmNvZGUtdXJpLXBhdGguanMiLCJtYXBwaW5ncyI6Ijs7OztpREFBZ0JBOzs7ZUFBQUE7OztBQUFULFNBQVNBLGNBQWNDLElBQVk7SUFDeEMsT0FBT0EsS0FDSkMsS0FBSyxDQUFDLEtBQ05DLEdBQUcsQ0FBQyxDQUFDQyxJQUFNQyxtQkFBbUJELElBQzlCRSxJQUFJLENBQUM7QUFDViIsInNvdXJjZXMiOlsiRDpcXHNyY1xcc2hhcmVkXFxsaWJcXGVuY29kZS11cmktcGF0aC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgZnVuY3Rpb24gZW5jb2RlVVJJUGF0aChmaWxlOiBzdHJpbmcpIHtcbiAgcmV0dXJuIGZpbGVcbiAgICAuc3BsaXQoJy8nKVxuICAgIC5tYXAoKHApID0+IGVuY29kZVVSSUNvbXBvbmVudChwKSlcbiAgICAuam9pbignLycpXG59XG4iXSwibmFtZXMiOlsiZW5jb2RlVVJJUGF0aCIsImZpbGUiLCJzcGxpdCIsIm1hcCIsInAiLCJlbmNvZGVVUklDb21wb25lbnQiLCJqb2luIl0sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(pages-dir-browser)/./node_modules/next/dist/shared/lib/encode-uri-path.js\n")); - -/***/ }), - -/***/ "(pages-dir-browser)/./node_modules/next/dist/shared/lib/error-source.js": -/*!***********************************************************!*\ - !*** ./node_modules/next/dist/shared/lib/error-source.js ***! - \***********************************************************/ -/***/ ((module, exports, __webpack_require__) => { - -"use strict"; -eval(__webpack_require__.ts("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n decorateServerError: function() {\n return decorateServerError;\n },\n getErrorSource: function() {\n return getErrorSource;\n }\n});\nconst symbolError = Symbol.for('NextjsError');\nfunction getErrorSource(error) {\n return error[symbolError] || null;\n}\nfunction decorateServerError(error, type) {\n Object.defineProperty(error, symbolError, {\n writable: false,\n enumerable: false,\n configurable: false,\n value: type\n });\n} //# sourceMappingURL=error-source.js.map\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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3Qvc2hhcmVkL2xpYi9lcnJvci1zb3VyY2UuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7O0lBUWdCQSxtQkFBbUI7ZUFBbkJBOztJQU5BQyxjQUFjO2VBQWRBOzs7QUFGaEIsTUFBTUMsY0FBY0MsT0FBT0MsR0FBRyxDQUFDO0FBRXhCLFNBQVNILGVBQWVJLEtBQVk7SUFDekMsT0FBUUEsS0FBYSxDQUFDSCxZQUFZLElBQUk7QUFDeEM7QUFJTyxTQUFTRixvQkFBb0JLLEtBQVksRUFBRUMsSUFBcUI7SUFDckVDLE9BQU9DLGNBQWMsQ0FBQ0gsT0FBT0gsYUFBYTtRQUN4Q08sVUFBVTtRQUNWQyxZQUFZO1FBQ1pDLGNBQWM7UUFDZEMsT0FBT047SUFDVDtBQUNGIiwic291cmNlcyI6WyJEOlxcc3JjXFxzaGFyZWRcXGxpYlxcZXJyb3Itc291cmNlLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImNvbnN0IHN5bWJvbEVycm9yID0gU3ltYm9sLmZvcignTmV4dGpzRXJyb3InKVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0RXJyb3JTb3VyY2UoZXJyb3I6IEVycm9yKTogJ3NlcnZlcicgfCAnZWRnZS1zZXJ2ZXInIHwgbnVsbCB7XG4gIHJldHVybiAoZXJyb3IgYXMgYW55KVtzeW1ib2xFcnJvcl0gfHwgbnVsbFxufVxuXG5leHBvcnQgdHlwZSBFcnJvclNvdXJjZVR5cGUgPSAnZWRnZS1zZXJ2ZXInIHwgJ3NlcnZlcidcblxuZXhwb3J0IGZ1bmN0aW9uIGRlY29yYXRlU2VydmVyRXJyb3IoZXJyb3I6IEVycm9yLCB0eXBlOiBFcnJvclNvdXJjZVR5cGUpIHtcbiAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGVycm9yLCBzeW1ib2xFcnJvciwge1xuICAgIHdyaXRhYmxlOiBmYWxzZSxcbiAgICBlbnVtZXJhYmxlOiBmYWxzZSxcbiAgICBjb25maWd1cmFibGU6IGZhbHNlLFxuICAgIHZhbHVlOiB0eXBlLFxuICB9KVxufVxuIl0sIm5hbWVzIjpbImRlY29yYXRlU2VydmVyRXJyb3IiLCJnZXRFcnJvclNvdXJjZSIsInN5bWJvbEVycm9yIiwiU3ltYm9sIiwiZm9yIiwiZXJyb3IiLCJ0eXBlIiwiT2JqZWN0IiwiZGVmaW5lUHJvcGVydHkiLCJ3cml0YWJsZSIsImVudW1lcmFibGUiLCJjb25maWd1cmFibGUiLCJ2YWx1ZSJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(pages-dir-browser)/./node_modules/next/dist/shared/lib/error-source.js\n")); - -/***/ }), - -/***/ "(pages-dir-browser)/./node_modules/next/dist/shared/lib/escape-regexp.js": -/*!************************************************************!*\ - !*** ./node_modules/next/dist/shared/lib/escape-regexp.js ***! - \************************************************************/ -/***/ ((module, exports, __webpack_require__) => { - -"use strict"; -eval(__webpack_require__.ts("// regexp is based on https://github.com/sindresorhus/escape-string-regexp\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"escapeStringRegexp\", ({\n enumerable: true,\n get: function() {\n return escapeStringRegexp;\n }\n}));\nconst reHasRegExp = /[|\\\\{}()[\\]^$+*?.-]/;\nconst reReplaceRegExp = /[|\\\\{}()[\\]^$+*?.-]/g;\nfunction escapeStringRegexp(str) {\n // see also: https://github.com/lodash/lodash/blob/2da024c3b4f9947a48517639de7560457cd4ec6c/escapeRegExp.js#L23\n if (reHasRegExp.test(str)) {\n return str.replace(reReplaceRegExp, '\\\\$&');\n }\n return str;\n} //# sourceMappingURL=escape-regexp.js.map\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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3Qvc2hhcmVkL2xpYi9lc2NhcGUtcmVnZXhwLmpzIiwibWFwcGluZ3MiOiJBQUFBLDBFQUEwRTs7Ozs7c0RBSTFEQTs7O2VBQUFBOzs7QUFIaEIsTUFBTUMsY0FBYztBQUNwQixNQUFNQyxrQkFBa0I7QUFFakIsU0FBU0YsbUJBQW1CRyxHQUFXO0lBQzVDLCtHQUErRztJQUMvRyxJQUFJRixZQUFZRyxJQUFJLENBQUNELE1BQU07UUFDekIsT0FBT0EsSUFBSUUsT0FBTyxDQUFDSCxpQkFBaUI7SUFDdEM7SUFDQSxPQUFPQztBQUNUIiwic291cmNlcyI6WyJEOlxcc3JjXFxzaGFyZWRcXGxpYlxcZXNjYXBlLXJlZ2V4cC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvLyByZWdleHAgaXMgYmFzZWQgb24gaHR0cHM6Ly9naXRodWIuY29tL3NpbmRyZXNvcmh1cy9lc2NhcGUtc3RyaW5nLXJlZ2V4cFxuY29uc3QgcmVIYXNSZWdFeHAgPSAvW3xcXFxce30oKVtcXF1eJCsqPy4tXS9cbmNvbnN0IHJlUmVwbGFjZVJlZ0V4cCA9IC9bfFxcXFx7fSgpW1xcXV4kKyo/Li1dL2dcblxuZXhwb3J0IGZ1bmN0aW9uIGVzY2FwZVN0cmluZ1JlZ2V4cChzdHI6IHN0cmluZykge1xuICAvLyBzZWUgYWxzbzogaHR0cHM6Ly9naXRodWIuY29tL2xvZGFzaC9sb2Rhc2gvYmxvYi8yZGEwMjRjM2I0Zjk5NDdhNDg1MTc2MzlkZTc1NjA0NTdjZDRlYzZjL2VzY2FwZVJlZ0V4cC5qcyNMMjNcbiAgaWYgKHJlSGFzUmVnRXhwLnRlc3Qoc3RyKSkge1xuICAgIHJldHVybiBzdHIucmVwbGFjZShyZVJlcGxhY2VSZWdFeHAsICdcXFxcJCYnKVxuICB9XG4gIHJldHVybiBzdHJcbn1cbiJdLCJuYW1lcyI6WyJlc2NhcGVTdHJpbmdSZWdleHAiLCJyZUhhc1JlZ0V4cCIsInJlUmVwbGFjZVJlZ0V4cCIsInN0ciIsInRlc3QiLCJyZXBsYWNlIl0sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(pages-dir-browser)/./node_modules/next/dist/shared/lib/escape-regexp.js\n")); - -/***/ }), - -/***/ "(pages-dir-browser)/./node_modules/next/dist/shared/lib/format-webpack-messages.js": -/*!**********************************************************************!*\ - !*** ./node_modules/next/dist/shared/lib/format-webpack-messages.js ***! - \**********************************************************************/ -/***/ ((module, exports, __webpack_require__) => { - -"use strict"; -eval(__webpack_require__.ts("/**\nMIT License\n\nCopyright (c) 2015-present, Facebook, Inc.\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n*/ \nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"default\", ({\n enumerable: true,\n get: function() {\n return formatWebpackMessages;\n }\n}));\nconst _interop_require_default = __webpack_require__(/*! @swc/helpers/_/_interop_require_default */ \"(pages-dir-browser)/./node_modules/@swc/helpers/esm/_interop_require_default.js\");\nconst _stripansi = /*#__PURE__*/ _interop_require_default._(__webpack_require__(/*! next/dist/compiled/strip-ansi */ \"(pages-dir-browser)/./node_modules/next/dist/compiled/strip-ansi/index.js\"));\n// This file is based on https://github.com/facebook/create-react-app/blob/7b1a32be6ec9f99a6c9a3c66813f3ac09c4736b9/packages/react-dev-utils/formatWebpackMessages.js\n// It's been edited to remove chalk and CRA-specific logic\nconst friendlySyntaxErrorLabel = 'Syntax error:';\nconst WEBPACK_BREAKING_CHANGE_POLYFILLS = '\\n\\nBREAKING CHANGE: webpack < 5 used to include polyfills for node.js core modules by default.';\nfunction isLikelyASyntaxError(message) {\n return (0, _stripansi.default)(message).includes(friendlySyntaxErrorLabel);\n}\nlet hadMissingSassError = false;\n// Cleans up webpack error messages.\nfunction formatMessage(message, verbose, importTraceNote) {\n // TODO: Replace this once webpack 5 is stable\n if (typeof message === 'object' && message.message) {\n const filteredModuleTrace = message.moduleTrace && message.moduleTrace.filter((trace)=>!/next-(middleware|client-pages|route|edge-function)-loader\\.js/.test(trace.originName));\n let body = message.message;\n const breakingChangeIndex = body.indexOf(WEBPACK_BREAKING_CHANGE_POLYFILLS);\n if (breakingChangeIndex >= 0) {\n body = body.slice(0, breakingChangeIndex);\n }\n message = (message.moduleName ? (0, _stripansi.default)(message.moduleName) + '\\n' : '') + (message.file ? (0, _stripansi.default)(message.file) + '\\n' : '') + body + (message.details && verbose ? '\\n' + message.details : '') + (filteredModuleTrace && filteredModuleTrace.length ? (importTraceNote || '\\n\\nImport trace for requested module:') + filteredModuleTrace.map((trace)=>\"\\n\" + trace.moduleName).join('') : '') + (message.stack && verbose ? '\\n' + message.stack : '');\n }\n let lines = message.split('\\n');\n // Strip Webpack-added headers off errors/warnings\n // https://github.com/webpack/webpack/blob/master/lib/ModuleError.js\n lines = lines.filter((line)=>!/Module [A-z ]+\\(from/.test(line));\n // Transform parsing error into syntax error\n // TODO: move this to our ESLint formatter?\n lines = lines.map((line)=>{\n const parsingError = /Line (\\d+):(?:(\\d+):)?\\s*Parsing error: (.+)$/.exec(line);\n if (!parsingError) {\n return line;\n }\n const [, errorLine, errorColumn, errorMessage] = parsingError;\n return friendlySyntaxErrorLabel + \" \" + errorMessage + \" (\" + errorLine + \":\" + errorColumn + \")\";\n });\n message = lines.join('\\n');\n // Smoosh syntax errors (commonly found in CSS)\n message = message.replace(/SyntaxError\\s+\\((\\d+):(\\d+)\\)\\s*(.+?)\\n/g, \"\" + friendlySyntaxErrorLabel + \" $3 ($1:$2)\\n\");\n // Clean up export errors\n message = message.replace(/^.*export '(.+?)' was not found in '(.+?)'.*$/gm, \"Attempted import error: '$1' is not exported from '$2'.\");\n message = message.replace(/^.*export 'default' \\(imported as '(.+?)'\\) was not found in '(.+?)'.*$/gm, \"Attempted import error: '$2' does not contain a default export (imported as '$1').\");\n message = message.replace(/^.*export '(.+?)' \\(imported as '(.+?)'\\) was not found in '(.+?)'.*$/gm, \"Attempted import error: '$1' is not exported from '$3' (imported as '$2').\");\n lines = message.split('\\n');\n // Remove leading newline\n if (lines.length > 2 && lines[1].trim() === '') {\n lines.splice(1, 1);\n }\n // Cleans up verbose \"module not found\" messages for files and packages.\n if (lines[1] && lines[1].startsWith('Module not found: ')) {\n lines = [\n lines[0],\n lines[1].replace('Error: ', '').replace('Module not found: Cannot find file:', 'Cannot find file:'),\n ...lines.slice(2)\n ];\n }\n // Add helpful message for users trying to use Sass for the first time\n if (lines[1] && lines[1].match(/Cannot find module.+sass/)) {\n // ./file.module.scss (<<loader info>>) => ./file.module.scss\n const firstLine = lines[0].split('!');\n lines[0] = firstLine[firstLine.length - 1];\n lines[1] = \"To use Next.js' built-in Sass support, you first need to install `sass`.\\n\";\n lines[1] += 'Run `npm i sass` or `yarn add sass` inside your workspace.\\n';\n lines[1] += '\\nLearn more: https://nextjs.org/docs/messages/install-sass';\n // dispose of unhelpful stack trace\n lines = lines.slice(0, 2);\n hadMissingSassError = true;\n } else if (hadMissingSassError && message.match(/(sass-loader|resolve-url-loader: CSS error)/)) {\n // dispose of unhelpful stack trace following missing sass module\n lines = [];\n }\n if (!verbose) {\n message = lines.join('\\n');\n // Internal stacks are generally useless so we strip them... with the\n // exception of stacks containing `webpack:` because they're normally\n // from user code generated by Webpack. For more information see\n // https://github.com/facebook/create-react-app/pull/1050\n message = message.replace(/^\\s*at\\s((?!webpack:).)*:\\d+:\\d+[\\s)]*(\\n|$)/gm, '') // at ... ...:x:y\n ;\n message = message.replace(/^\\s*at\\s<anonymous>(\\n|$)/gm, '') // at <anonymous>\n ;\n message = message.replace(/File was processed with these loaders:\\n(.+[\\\\/](next[\\\\/]dist[\\\\/].+|@next[\\\\/]react-refresh-utils[\\\\/]loader)\\.js\\n)*You may need an additional loader to handle the result of these loaders.\\n/g, '');\n lines = message.split('\\n');\n }\n // Remove duplicated newlines\n lines = lines.filter((line, index, arr)=>index === 0 || line.trim() !== '' || line.trim() !== arr[index - 1].trim());\n // Reassemble the message\n message = lines.join('\\n');\n return message.trim();\n}\nfunction formatWebpackMessages(json, verbose) {\n const formattedErrors = json.errors.map((message)=>{\n const isUnknownNextFontError = message.message.includes('An error occurred in `next/font`.');\n return formatMessage(message, isUnknownNextFontError || verbose);\n });\n const formattedWarnings = json.warnings.map((message)=>{\n return formatMessage(message, verbose);\n });\n // Reorder errors to put the most relevant ones first.\n let reactServerComponentsError = -1;\n for(let i = 0; i < formattedErrors.length; i++){\n const error = formattedErrors[i];\n if (error.includes('ReactServerComponentsError')) {\n reactServerComponentsError = i;\n break;\n }\n }\n // Move the reactServerComponentsError to the top if it exists\n if (reactServerComponentsError !== -1) {\n const error = formattedErrors.splice(reactServerComponentsError, 1);\n formattedErrors.unshift(error[0]);\n }\n const result = {\n ...json,\n errors: formattedErrors,\n warnings: formattedWarnings\n };\n if (!verbose && result.errors.some(isLikelyASyntaxError)) {\n // If there are any syntax errors, show just them.\n result.errors = result.errors.filter(isLikelyASyntaxError);\n result.warnings = [];\n }\n return result;\n} //# sourceMappingURL=format-webpack-messages.js.map\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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3Qvc2hhcmVkL2xpYi9mb3JtYXQtd2VicGFjay1tZXNzYWdlcy5qcyIsIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQXNCQTs7OzsyQ0FpS0E7OztlQUF3QkE7Ozs7Z0ZBaEtGO0FBQ3RCLHFLQUFxSztBQUNySywwREFBMEQ7QUFFMUQsTUFBTUMsMkJBQTJCO0FBRWpDLE1BQU1DLG9DQUNKO0FBRUYsU0FBU0MscUJBQXFCQyxPQUFlO0lBQzNDLE9BQU9DLENBQUFBLEdBQUFBLFdBQUFBLE9BQUFBLEVBQVVELFNBQVNFLFFBQVEsQ0FBQ0w7QUFDckM7QUFFQSxJQUFJTSxzQkFBc0I7QUFFMUIsb0NBQW9DO0FBQ3BDLFNBQVNDLGNBQ1BKLE9BQVksRUFDWkssT0FBaUIsRUFDakJDLGVBQXlCO0lBRXpCLDhDQUE4QztJQUM5QyxJQUFJLE9BQU9OLFlBQVksWUFBWUEsUUFBUUEsT0FBTyxFQUFFO1FBQ2xELE1BQU1PLHNCQUNKUCxRQUFRUSxXQUFXLElBQ25CUixRQUFRUSxXQUFXLENBQUNDLE1BQU0sQ0FDeEIsQ0FBQ0MsUUFDQyxDQUFDLGdFQUFnRUMsSUFBSSxDQUNuRUQsTUFBTUUsVUFBVTtRQUl4QixJQUFJQyxPQUFPYixRQUFRQSxPQUFPO1FBQzFCLE1BQU1jLHNCQUFzQkQsS0FBS0UsT0FBTyxDQUFDakI7UUFDekMsSUFBSWdCLHVCQUF1QixHQUFHO1lBQzVCRCxPQUFPQSxLQUFLRyxLQUFLLENBQUMsR0FBR0Y7UUFDdkI7UUFFQWQsVUFDR0EsQ0FBQUEsUUFBUWlCLFVBQVUsR0FBR2hCLENBQUFBLEdBQUFBLFdBQUFBLE9BQUFBLEVBQVVELFFBQVFpQixVQUFVLElBQUksT0FBTyxHQUFDLEdBQzdEakIsQ0FBQUEsUUFBUWtCLElBQUksR0FBR2pCLENBQUFBLEdBQUFBLFdBQUFBLE9BQUFBLEVBQVVELFFBQVFrQixJQUFJLElBQUksT0FBTyxHQUFDLEdBQ2xETCxPQUNDYixDQUFBQSxRQUFRbUIsT0FBTyxJQUFJZCxVQUFVLE9BQU9MLFFBQVFtQixPQUFPLEdBQUcsR0FBQyxJQUN2RFosdUJBQXVCQSxvQkFBb0JhLE1BQU0sR0FDN0NkLENBQUFBLG1CQUFtQix5Q0FBdUMsR0FDM0RDLG9CQUNHYyxHQUFHLENBQUMsQ0FBQ1gsUUFBZ0IsT0FBSUEsTUFBTU8sVUFBVSxFQUN6Q0ssSUFBSSxDQUFDLE1BQ1IsR0FBQyxJQUNKdEIsUUFBUXVCLEtBQUssSUFBSWxCLFVBQVUsT0FBT0wsUUFBUXVCLEtBQUssR0FBRyxHQUFDO0lBQ3hEO0lBQ0EsSUFBSUMsUUFBUXhCLFFBQVF5QixLQUFLLENBQUM7SUFFMUIsa0RBQWtEO0lBQ2xELG9FQUFvRTtJQUNwRUQsUUFBUUEsTUFBTWYsTUFBTSxDQUFDLENBQUNpQixPQUFpQixDQUFDLHVCQUF1QmYsSUFBSSxDQUFDZTtJQUVwRSw0Q0FBNEM7SUFDNUMsMkNBQTJDO0lBQzNDRixRQUFRQSxNQUFNSCxHQUFHLENBQUMsQ0FBQ0s7UUFDakIsTUFBTUMsZUFBZSxnREFBZ0RDLElBQUksQ0FDdkVGO1FBRUYsSUFBSSxDQUFDQyxjQUFjO1lBQ2pCLE9BQU9EO1FBQ1Q7UUFDQSxNQUFNLEdBQUdHLFdBQVdDLGFBQWFDLGFBQWEsR0FBR0o7UUFDakQsT0FBVTlCLDJCQUF5QixNQUFHa0MsZUFBYSxPQUFJRixZQUFVLE1BQUdDLGNBQVk7SUFDbEY7SUFFQTlCLFVBQVV3QixNQUFNRixJQUFJLENBQUM7SUFDckIsK0NBQStDO0lBQy9DdEIsVUFBVUEsUUFBUWdDLE9BQU8sQ0FDdkIsNENBQ0MsS0FBRW5DLDJCQUF5QjtJQUU5Qix5QkFBeUI7SUFDekJHLFVBQVVBLFFBQVFnQyxPQUFPLENBQ3ZCLG1EQUNDO0lBRUhoQyxVQUFVQSxRQUFRZ0MsT0FBTyxDQUN2Qiw2RUFDQztJQUVIaEMsVUFBVUEsUUFBUWdDLE9BQU8sQ0FDdkIsMkVBQ0M7SUFFSFIsUUFBUXhCLFFBQVF5QixLQUFLLENBQUM7SUFFdEIseUJBQXlCO0lBQ3pCLElBQUlELE1BQU1KLE1BQU0sR0FBRyxLQUFLSSxLQUFLLENBQUMsRUFBRSxDQUFDUyxJQUFJLE9BQU8sSUFBSTtRQUM5Q1QsTUFBTVUsTUFBTSxDQUFDLEdBQUc7SUFDbEI7SUFFQSx3RUFBd0U7SUFDeEUsSUFBSVYsS0FBSyxDQUFDLEVBQUUsSUFBSUEsS0FBSyxDQUFDLEVBQUUsQ0FBQ1csVUFBVSxDQUFDLHVCQUF1QjtRQUN6RFgsUUFBUTtZQUNOQSxLQUFLLENBQUMsRUFBRTtZQUNSQSxLQUFLLENBQUMsRUFBRSxDQUNMUSxPQUFPLENBQUMsV0FBVyxJQUNuQkEsT0FBTyxDQUFDLHVDQUF1QztlQUMvQ1IsTUFBTVIsS0FBSyxDQUFDO1NBQ2hCO0lBQ0g7SUFFQSxzRUFBc0U7SUFDdEUsSUFBSVEsS0FBSyxDQUFDLEVBQUUsSUFBSUEsS0FBSyxDQUFDLEVBQUUsQ0FBQ1ksS0FBSyxDQUFDLDZCQUE2QjtRQUMxRCw2REFBNkQ7UUFDN0QsTUFBTUMsWUFBWWIsS0FBSyxDQUFDLEVBQUUsQ0FBQ0MsS0FBSyxDQUFDO1FBQ2pDRCxLQUFLLENBQUMsRUFBRSxHQUFHYSxTQUFTLENBQUNBLFVBQVVqQixNQUFNLEdBQUcsRUFBRTtRQUUxQ0ksS0FBSyxDQUFDLEVBQUUsR0FDTjtRQUNGQSxLQUFLLENBQUMsRUFBRSxJQUFJO1FBQ1pBLEtBQUssQ0FBQyxFQUFFLElBQUk7UUFFWixtQ0FBbUM7UUFDbkNBLFFBQVFBLE1BQU1SLEtBQUssQ0FBQyxHQUFHO1FBQ3ZCYixzQkFBc0I7SUFDeEIsT0FBTyxJQUNMQSx1QkFDQUgsUUFBUW9DLEtBQUssQ0FBQyxnREFDZDtRQUNBLGlFQUFpRTtRQUNqRVosUUFBUSxFQUFFO0lBQ1o7SUFFQSxJQUFJLENBQUNuQixTQUFTO1FBQ1pMLFVBQVV3QixNQUFNRixJQUFJLENBQUM7UUFDckIscUVBQXFFO1FBQ3JFLHFFQUFxRTtRQUNyRSxnRUFBZ0U7UUFDaEUseURBQXlEO1FBQ3pEdEIsVUFBVUEsUUFBUWdDLE9BQU8sQ0FDdkIsa0RBQ0EsSUFDQSxpQkFBaUI7O1FBQ25CaEMsVUFBVUEsUUFBUWdDLE9BQU8sQ0FBQywrQkFBK0IsSUFBSSxpQkFBaUI7O1FBRTlFaEMsVUFBVUEsUUFBUWdDLE9BQU8sQ0FDdkIsc01BQ0E7UUFHRlIsUUFBUXhCLFFBQVF5QixLQUFLLENBQUM7SUFDeEI7SUFFQSw2QkFBNkI7SUFDN0JELFFBQVNBLE1BQW1CZixNQUFNLENBQ2hDLENBQUNpQixNQUFNWSxPQUFPQyxNQUNaRCxVQUFVLEtBQUtaLEtBQUtPLElBQUksT0FBTyxNQUFNUCxLQUFLTyxJQUFJLE9BQU9NLEdBQUcsQ0FBQ0QsUUFBUSxFQUFFLENBQUNMLElBQUk7SUFHNUUseUJBQXlCO0lBQ3pCakMsVUFBVXdCLE1BQU1GLElBQUksQ0FBQztJQUNyQixPQUFPdEIsUUFBUWlDLElBQUk7QUFDckI7QUFFZSxTQUFTckMsc0JBQXNCNEMsSUFBUyxFQUFFbkMsT0FBaUI7SUFDeEUsTUFBTW9DLGtCQUFrQkQsS0FBS0UsTUFBTSxDQUFDckIsR0FBRyxDQUFDLENBQUNyQjtRQUN2QyxNQUFNMkMseUJBQXlCM0MsUUFBUUEsT0FBTyxDQUFDRSxRQUFRLENBQ3JEO1FBRUYsT0FBT0UsY0FBY0osU0FBUzJDLDBCQUEwQnRDO0lBQzFEO0lBQ0EsTUFBTXVDLG9CQUFvQkosS0FBS0ssUUFBUSxDQUFDeEIsR0FBRyxDQUFDLENBQUNyQjtRQUMzQyxPQUFPSSxjQUFjSixTQUFTSztJQUNoQztJQUVBLHNEQUFzRDtJQUN0RCxJQUFJeUMsNkJBQTZCLENBQUM7SUFFbEMsSUFBSyxJQUFJQyxJQUFJLEdBQUdBLElBQUlOLGdCQUFnQnJCLE1BQU0sRUFBRTJCLElBQUs7UUFDL0MsTUFBTUMsUUFBUVAsZUFBZSxDQUFDTSxFQUFFO1FBQ2hDLElBQUlDLE1BQU05QyxRQUFRLENBQUMsK0JBQStCO1lBQ2hENEMsNkJBQTZCQztZQUM3QjtRQUNGO0lBQ0Y7SUFFQSw4REFBOEQ7SUFDOUQsSUFBSUQsK0JBQStCLENBQUMsR0FBRztRQUNyQyxNQUFNRSxRQUFRUCxnQkFBZ0JQLE1BQU0sQ0FBQ1ksNEJBQTRCO1FBQ2pFTCxnQkFBZ0JRLE9BQU8sQ0FBQ0QsS0FBSyxDQUFDLEVBQUU7SUFDbEM7SUFFQSxNQUFNRSxTQUFTO1FBQ2IsR0FBR1YsSUFBSTtRQUNQRSxRQUFRRDtRQUNSSSxVQUFVRDtJQUNaO0lBQ0EsSUFBSSxDQUFDdkMsV0FBVzZDLE9BQU9SLE1BQU0sQ0FBQ1MsSUFBSSxDQUFDcEQsdUJBQXVCO1FBQ3hELGtEQUFrRDtRQUNsRG1ELE9BQU9SLE1BQU0sR0FBR1EsT0FBT1IsTUFBTSxDQUFDakMsTUFBTSxDQUFDVjtRQUNyQ21ELE9BQU9MLFFBQVEsR0FBRyxFQUFFO0lBQ3RCO0lBQ0EsT0FBT0s7QUFDVCIsInNvdXJjZXMiOlsiRDpcXHNyY1xcc2hhcmVkXFxsaWJcXGZvcm1hdC13ZWJwYWNrLW1lc3NhZ2VzLnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxuTUlUIExpY2Vuc2VcblxuQ29weXJpZ2h0IChjKSAyMDE1LXByZXNlbnQsIEZhY2Vib29rLCBJbmMuXG5cblBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhIGNvcHlcbm9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlIFwiU29mdHdhcmVcIiksIHRvIGRlYWxcbmluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHNcbnRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yIHNlbGxcbmNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBTb2Z0d2FyZSBpc1xuZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczpcblxuVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQgaW4gYWxsXG5jb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLlxuXG5USEUgU09GVFdBUkUgSVMgUFJPVklERUQgXCJBUyBJU1wiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SXG5JTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSxcbkZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRVxuQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUlxuTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSxcbk9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU4gVEhFXG5TT0ZUV0FSRS5cbiovXG5pbXBvcnQgc3RyaXBBbnNpIGZyb20gJ25leHQvZGlzdC9jb21waWxlZC9zdHJpcC1hbnNpJ1xuLy8gVGhpcyBmaWxlIGlzIGJhc2VkIG9uIGh0dHBzOi8vZ2l0aHViLmNvbS9mYWNlYm9vay9jcmVhdGUtcmVhY3QtYXBwL2Jsb2IvN2IxYTMyYmU2ZWM5Zjk5YTZjOWEzYzY2ODEzZjNhYzA5YzQ3MzZiOS9wYWNrYWdlcy9yZWFjdC1kZXYtdXRpbHMvZm9ybWF0V2VicGFja01lc3NhZ2VzLmpzXG4vLyBJdCdzIGJlZW4gZWRpdGVkIHRvIHJlbW92ZSBjaGFsayBhbmQgQ1JBLXNwZWNpZmljIGxvZ2ljXG5cbmNvbnN0IGZyaWVuZGx5U3ludGF4RXJyb3JMYWJlbCA9ICdTeW50YXggZXJyb3I6J1xuXG5jb25zdCBXRUJQQUNLX0JSRUFLSU5HX0NIQU5HRV9QT0xZRklMTFMgPVxuICAnXFxuXFxuQlJFQUtJTkcgQ0hBTkdFOiB3ZWJwYWNrIDwgNSB1c2VkIHRvIGluY2x1ZGUgcG9seWZpbGxzIGZvciBub2RlLmpzIGNvcmUgbW9kdWxlcyBieSBkZWZhdWx0LidcblxuZnVuY3Rpb24gaXNMaWtlbHlBU3ludGF4RXJyb3IobWVzc2FnZTogc3RyaW5nKSB7XG4gIHJldHVybiBzdHJpcEFuc2kobWVzc2FnZSkuaW5jbHVkZXMoZnJpZW5kbHlTeW50YXhFcnJvckxhYmVsKVxufVxuXG5sZXQgaGFkTWlzc2luZ1Nhc3NFcnJvciA9IGZhbHNlXG5cbi8vIENsZWFucyB1cCB3ZWJwYWNrIGVycm9yIG1lc3NhZ2VzLlxuZnVuY3Rpb24gZm9ybWF0TWVzc2FnZShcbiAgbWVzc2FnZTogYW55LFxuICB2ZXJib3NlPzogYm9vbGVhbixcbiAgaW1wb3J0VHJhY2VOb3RlPzogYm9vbGVhblxuKSB7XG4gIC8vIFRPRE86IFJlcGxhY2UgdGhpcyBvbmNlIHdlYnBhY2sgNSBpcyBzdGFibGVcbiAgaWYgKHR5cGVvZiBtZXNzYWdlID09PSAnb2JqZWN0JyAmJiBtZXNzYWdlLm1lc3NhZ2UpIHtcbiAgICBjb25zdCBmaWx0ZXJlZE1vZHVsZVRyYWNlID1cbiAgICAgIG1lc3NhZ2UubW9kdWxlVHJhY2UgJiZcbiAgICAgIG1lc3NhZ2UubW9kdWxlVHJhY2UuZmlsdGVyKFxuICAgICAgICAodHJhY2U6IGFueSkgPT5cbiAgICAgICAgICAhL25leHQtKG1pZGRsZXdhcmV8Y2xpZW50LXBhZ2VzfHJvdXRlfGVkZ2UtZnVuY3Rpb24pLWxvYWRlclxcLmpzLy50ZXN0KFxuICAgICAgICAgICAgdHJhY2Uub3JpZ2luTmFtZVxuICAgICAgICAgIClcbiAgICAgIClcblxuICAgIGxldCBib2R5ID0gbWVzc2FnZS5tZXNzYWdlXG4gICAgY29uc3QgYnJlYWtpbmdDaGFuZ2VJbmRleCA9IGJvZHkuaW5kZXhPZihXRUJQQUNLX0JSRUFLSU5HX0NIQU5HRV9QT0xZRklMTFMpXG4gICAgaWYgKGJyZWFraW5nQ2hhbmdlSW5kZXggPj0gMCkge1xuICAgICAgYm9keSA9IGJvZHkuc2xpY2UoMCwgYnJlYWtpbmdDaGFuZ2VJbmRleClcbiAgICB9XG5cbiAgICBtZXNzYWdlID1cbiAgICAgIChtZXNzYWdlLm1vZHVsZU5hbWUgPyBzdHJpcEFuc2kobWVzc2FnZS5tb2R1bGVOYW1lKSArICdcXG4nIDogJycpICtcbiAgICAgIChtZXNzYWdlLmZpbGUgPyBzdHJpcEFuc2kobWVzc2FnZS5maWxlKSArICdcXG4nIDogJycpICtcbiAgICAgIGJvZHkgK1xuICAgICAgKG1lc3NhZ2UuZGV0YWlscyAmJiB2ZXJib3NlID8gJ1xcbicgKyBtZXNzYWdlLmRldGFpbHMgOiAnJykgK1xuICAgICAgKGZpbHRlcmVkTW9kdWxlVHJhY2UgJiYgZmlsdGVyZWRNb2R1bGVUcmFjZS5sZW5ndGhcbiAgICAgICAgPyAoaW1wb3J0VHJhY2VOb3RlIHx8ICdcXG5cXG5JbXBvcnQgdHJhY2UgZm9yIHJlcXVlc3RlZCBtb2R1bGU6JykgK1xuICAgICAgICAgIGZpbHRlcmVkTW9kdWxlVHJhY2VcbiAgICAgICAgICAgIC5tYXAoKHRyYWNlOiBhbnkpID0+IGBcXG4ke3RyYWNlLm1vZHVsZU5hbWV9YClcbiAgICAgICAgICAgIC5qb2luKCcnKVxuICAgICAgICA6ICcnKSArXG4gICAgICAobWVzc2FnZS5zdGFjayAmJiB2ZXJib3NlID8gJ1xcbicgKyBtZXNzYWdlLnN0YWNrIDogJycpXG4gIH1cbiAgbGV0IGxpbmVzID0gbWVzc2FnZS5zcGxpdCgnXFxuJylcblxuICAvLyBTdHJpcCBXZWJwYWNrLWFkZGVkIGhlYWRlcnMgb2ZmIGVycm9ycy93YXJuaW5nc1xuICAvLyBodHRwczovL2dpdGh1Yi5jb20vd2VicGFjay93ZWJwYWNrL2Jsb2IvbWFzdGVyL2xpYi9Nb2R1bGVFcnJvci5qc1xuICBsaW5lcyA9IGxpbmVzLmZpbHRlcigobGluZTogc3RyaW5nKSA9PiAhL01vZHVsZSBbQS16IF0rXFwoZnJvbS8udGVzdChsaW5lKSlcblxuICAvLyBUcmFuc2Zvcm0gcGFyc2luZyBlcnJvciBpbnRvIHN5bnRheCBlcnJvclxuICAvLyBUT0RPOiBtb3ZlIHRoaXMgdG8gb3VyIEVTTGludCBmb3JtYXR0ZXI/XG4gIGxpbmVzID0gbGluZXMubWFwKChsaW5lOiBzdHJpbmcpID0+IHtcbiAgICBjb25zdCBwYXJzaW5nRXJyb3IgPSAvTGluZSAoXFxkKyk6KD86KFxcZCspOik/XFxzKlBhcnNpbmcgZXJyb3I6ICguKykkLy5leGVjKFxuICAgICAgbGluZVxuICAgIClcbiAgICBpZiAoIXBhcnNpbmdFcnJvcikge1xuICAgICAgcmV0dXJuIGxpbmVcbiAgICB9XG4gICAgY29uc3QgWywgZXJyb3JMaW5lLCBlcnJvckNvbHVtbiwgZXJyb3JNZXNzYWdlXSA9IHBhcnNpbmdFcnJvclxuICAgIHJldHVybiBgJHtmcmllbmRseVN5bnRheEVycm9yTGFiZWx9ICR7ZXJyb3JNZXNzYWdlfSAoJHtlcnJvckxpbmV9OiR7ZXJyb3JDb2x1bW59KWBcbiAgfSlcblxuICBtZXNzYWdlID0gbGluZXMuam9pbignXFxuJylcbiAgLy8gU21vb3NoIHN5bnRheCBlcnJvcnMgKGNvbW1vbmx5IGZvdW5kIGluIENTUylcbiAgbWVzc2FnZSA9IG1lc3NhZ2UucmVwbGFjZShcbiAgICAvU3ludGF4RXJyb3JcXHMrXFwoKFxcZCspOihcXGQrKVxcKVxccyooLis/KVxcbi9nLFxuICAgIGAke2ZyaWVuZGx5U3ludGF4RXJyb3JMYWJlbH0gJDMgKCQxOiQyKVxcbmBcbiAgKVxuICAvLyBDbGVhbiB1cCBleHBvcnQgZXJyb3JzXG4gIG1lc3NhZ2UgPSBtZXNzYWdlLnJlcGxhY2UoXG4gICAgL14uKmV4cG9ydCAnKC4rPyknIHdhcyBub3QgZm91bmQgaW4gJyguKz8pJy4qJC9nbSxcbiAgICBgQXR0ZW1wdGVkIGltcG9ydCBlcnJvcjogJyQxJyBpcyBub3QgZXhwb3J0ZWQgZnJvbSAnJDInLmBcbiAgKVxuICBtZXNzYWdlID0gbWVzc2FnZS5yZXBsYWNlKFxuICAgIC9eLipleHBvcnQgJ2RlZmF1bHQnIFxcKGltcG9ydGVkIGFzICcoLis/KSdcXCkgd2FzIG5vdCBmb3VuZCBpbiAnKC4rPyknLiokL2dtLFxuICAgIGBBdHRlbXB0ZWQgaW1wb3J0IGVycm9yOiAnJDInIGRvZXMgbm90IGNvbnRhaW4gYSBkZWZhdWx0IGV4cG9ydCAoaW1wb3J0ZWQgYXMgJyQxJykuYFxuICApXG4gIG1lc3NhZ2UgPSBtZXNzYWdlLnJlcGxhY2UoXG4gICAgL14uKmV4cG9ydCAnKC4rPyknIFxcKGltcG9ydGVkIGFzICcoLis/KSdcXCkgd2FzIG5vdCBmb3VuZCBpbiAnKC4rPyknLiokL2dtLFxuICAgIGBBdHRlbXB0ZWQgaW1wb3J0IGVycm9yOiAnJDEnIGlzIG5vdCBleHBvcnRlZCBmcm9tICckMycgKGltcG9ydGVkIGFzICckMicpLmBcbiAgKVxuICBsaW5lcyA9IG1lc3NhZ2Uuc3BsaXQoJ1xcbicpXG5cbiAgLy8gUmVtb3ZlIGxlYWRpbmcgbmV3bGluZVxuICBpZiAobGluZXMubGVuZ3RoID4gMiAmJiBsaW5lc1sxXS50cmltKCkgPT09ICcnKSB7XG4gICAgbGluZXMuc3BsaWNlKDEsIDEpXG4gIH1cblxuICAvLyBDbGVhbnMgdXAgdmVyYm9zZSBcIm1vZHVsZSBub3QgZm91bmRcIiBtZXNzYWdlcyBmb3IgZmlsZXMgYW5kIHBhY2thZ2VzLlxuICBpZiAobGluZXNbMV0gJiYgbGluZXNbMV0uc3RhcnRzV2l0aCgnTW9kdWxlIG5vdCBmb3VuZDogJykpIHtcbiAgICBsaW5lcyA9IFtcbiAgICAgIGxpbmVzWzBdLFxuICAgICAgbGluZXNbMV1cbiAgICAgICAgLnJlcGxhY2UoJ0Vycm9yOiAnLCAnJylcbiAgICAgICAgLnJlcGxhY2UoJ01vZHVsZSBub3QgZm91bmQ6IENhbm5vdCBmaW5kIGZpbGU6JywgJ0Nhbm5vdCBmaW5kIGZpbGU6JyksXG4gICAgICAuLi5saW5lcy5zbGljZSgyKSxcbiAgICBdXG4gIH1cblxuICAvLyBBZGQgaGVscGZ1bCBtZXNzYWdlIGZvciB1c2VycyB0cnlpbmcgdG8gdXNlIFNhc3MgZm9yIHRoZSBmaXJzdCB0aW1lXG4gIGlmIChsaW5lc1sxXSAmJiBsaW5lc1sxXS5tYXRjaCgvQ2Fubm90IGZpbmQgbW9kdWxlLitzYXNzLykpIHtcbiAgICAvLyAuL2ZpbGUubW9kdWxlLnNjc3MgKDw8bG9hZGVyIGluZm8+PikgPT4gLi9maWxlLm1vZHVsZS5zY3NzXG4gICAgY29uc3QgZmlyc3RMaW5lID0gbGluZXNbMF0uc3BsaXQoJyEnKVxuICAgIGxpbmVzWzBdID0gZmlyc3RMaW5lW2ZpcnN0TGluZS5sZW5ndGggLSAxXVxuXG4gICAgbGluZXNbMV0gPVxuICAgICAgXCJUbyB1c2UgTmV4dC5qcycgYnVpbHQtaW4gU2FzcyBzdXBwb3J0LCB5b3UgZmlyc3QgbmVlZCB0byBpbnN0YWxsIGBzYXNzYC5cXG5cIlxuICAgIGxpbmVzWzFdICs9ICdSdW4gYG5wbSBpIHNhc3NgIG9yIGB5YXJuIGFkZCBzYXNzYCBpbnNpZGUgeW91ciB3b3Jrc3BhY2UuXFxuJ1xuICAgIGxpbmVzWzFdICs9ICdcXG5MZWFybiBtb3JlOiBodHRwczovL25leHRqcy5vcmcvZG9jcy9tZXNzYWdlcy9pbnN0YWxsLXNhc3MnXG5cbiAgICAvLyBkaXNwb3NlIG9mIHVuaGVscGZ1bCBzdGFjayB0cmFjZVxuICAgIGxpbmVzID0gbGluZXMuc2xpY2UoMCwgMilcbiAgICBoYWRNaXNzaW5nU2Fzc0Vycm9yID0gdHJ1ZVxuICB9IGVsc2UgaWYgKFxuICAgIGhhZE1pc3NpbmdTYXNzRXJyb3IgJiZcbiAgICBtZXNzYWdlLm1hdGNoKC8oc2Fzcy1sb2FkZXJ8cmVzb2x2ZS11cmwtbG9hZGVyOiBDU1MgZXJyb3IpLylcbiAgKSB7XG4gICAgLy8gZGlzcG9zZSBvZiB1bmhlbHBmdWwgc3RhY2sgdHJhY2UgZm9sbG93aW5nIG1pc3Npbmcgc2FzcyBtb2R1bGVcbiAgICBsaW5lcyA9IFtdXG4gIH1cblxuICBpZiAoIXZlcmJvc2UpIHtcbiAgICBtZXNzYWdlID0gbGluZXMuam9pbignXFxuJylcbiAgICAvLyBJbnRlcm5hbCBzdGFja3MgYXJlIGdlbmVyYWxseSB1c2VsZXNzIHNvIHdlIHN0cmlwIHRoZW0uLi4gd2l0aCB0aGVcbiAgICAvLyBleGNlcHRpb24gb2Ygc3RhY2tzIGNvbnRhaW5pbmcgYHdlYnBhY2s6YCBiZWNhdXNlIHRoZXkncmUgbm9ybWFsbHlcbiAgICAvLyBmcm9tIHVzZXIgY29kZSBnZW5lcmF0ZWQgYnkgV2VicGFjay4gRm9yIG1vcmUgaW5mb3JtYXRpb24gc2VlXG4gICAgLy8gaHR0cHM6Ly9naXRodWIuY29tL2ZhY2Vib29rL2NyZWF0ZS1yZWFjdC1hcHAvcHVsbC8xMDUwXG4gICAgbWVzc2FnZSA9IG1lc3NhZ2UucmVwbGFjZShcbiAgICAgIC9eXFxzKmF0XFxzKCg/IXdlYnBhY2s6KS4pKjpcXGQrOlxcZCtbXFxzKV0qKFxcbnwkKS9nbSxcbiAgICAgICcnXG4gICAgKSAvLyBhdCAuLi4gLi4uOng6eVxuICAgIG1lc3NhZ2UgPSBtZXNzYWdlLnJlcGxhY2UoL15cXHMqYXRcXHM8YW5vbnltb3VzPihcXG58JCkvZ20sICcnKSAvLyBhdCA8YW5vbnltb3VzPlxuXG4gICAgbWVzc2FnZSA9IG1lc3NhZ2UucmVwbGFjZShcbiAgICAgIC9GaWxlIHdhcyBwcm9jZXNzZWQgd2l0aCB0aGVzZSBsb2FkZXJzOlxcbiguK1tcXFxcL10obmV4dFtcXFxcL11kaXN0W1xcXFwvXS4rfEBuZXh0W1xcXFwvXXJlYWN0LXJlZnJlc2gtdXRpbHNbXFxcXC9dbG9hZGVyKVxcLmpzXFxuKSpZb3UgbWF5IG5lZWQgYW4gYWRkaXRpb25hbCBsb2FkZXIgdG8gaGFuZGxlIHRoZSByZXN1bHQgb2YgdGhlc2UgbG9hZGVycy5cXG4vZyxcbiAgICAgICcnXG4gICAgKVxuXG4gICAgbGluZXMgPSBtZXNzYWdlLnNwbGl0KCdcXG4nKVxuICB9XG5cbiAgLy8gUmVtb3ZlIGR1cGxpY2F0ZWQgbmV3bGluZXNcbiAgbGluZXMgPSAobGluZXMgYXMgc3RyaW5nW10pLmZpbHRlcihcbiAgICAobGluZSwgaW5kZXgsIGFycikgPT5cbiAgICAgIGluZGV4ID09PSAwIHx8IGxpbmUudHJpbSgpICE9PSAnJyB8fCBsaW5lLnRyaW0oKSAhPT0gYXJyW2luZGV4IC0gMV0udHJpbSgpXG4gIClcblxuICAvLyBSZWFzc2VtYmxlIHRoZSBtZXNzYWdlXG4gIG1lc3NhZ2UgPSBsaW5lcy5qb2luKCdcXG4nKVxuICByZXR1cm4gbWVzc2FnZS50cmltKClcbn1cblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gZm9ybWF0V2VicGFja01lc3NhZ2VzKGpzb246IGFueSwgdmVyYm9zZT86IGJvb2xlYW4pIHtcbiAgY29uc3QgZm9ybWF0dGVkRXJyb3JzID0ganNvbi5lcnJvcnMubWFwKChtZXNzYWdlOiBhbnkpID0+IHtcbiAgICBjb25zdCBpc1Vua25vd25OZXh0Rm9udEVycm9yID0gbWVzc2FnZS5tZXNzYWdlLmluY2x1ZGVzKFxuICAgICAgJ0FuIGVycm9yIG9jY3VycmVkIGluIGBuZXh0L2ZvbnRgLidcbiAgICApXG4gICAgcmV0dXJuIGZvcm1hdE1lc3NhZ2UobWVzc2FnZSwgaXNVbmtub3duTmV4dEZvbnRFcnJvciB8fCB2ZXJib3NlKVxuICB9KVxuICBjb25zdCBmb3JtYXR0ZWRXYXJuaW5ncyA9IGpzb24ud2FybmluZ3MubWFwKChtZXNzYWdlOiBhbnkpID0+IHtcbiAgICByZXR1cm4gZm9ybWF0TWVzc2FnZShtZXNzYWdlLCB2ZXJib3NlKVxuICB9KVxuXG4gIC8vIFJlb3JkZXIgZXJyb3JzIHRvIHB1dCB0aGUgbW9zdCByZWxldmFudCBvbmVzIGZpcnN0LlxuICBsZXQgcmVhY3RTZXJ2ZXJDb21wb25lbnRzRXJyb3IgPSAtMVxuXG4gIGZvciAobGV0IGkgPSAwOyBpIDwgZm9ybWF0dGVkRXJyb3JzLmxlbmd0aDsgaSsrKSB7XG4gICAgY29uc3QgZXJyb3IgPSBmb3JtYXR0ZWRFcnJvcnNbaV1cbiAgICBpZiAoZXJyb3IuaW5jbHVkZXMoJ1JlYWN0U2VydmVyQ29tcG9uZW50c0Vycm9yJykpIHtcbiAgICAgIHJlYWN0U2VydmVyQ29tcG9uZW50c0Vycm9yID0gaVxuICAgICAgYnJlYWtcbiAgICB9XG4gIH1cblxuICAvLyBNb3ZlIHRoZSByZWFjdFNlcnZlckNvbXBvbmVudHNFcnJvciB0byB0aGUgdG9wIGlmIGl0IGV4aXN0c1xuICBpZiAocmVhY3RTZXJ2ZXJDb21wb25lbnRzRXJyb3IgIT09IC0xKSB7XG4gICAgY29uc3QgZXJyb3IgPSBmb3JtYXR0ZWRFcnJvcnMuc3BsaWNlKHJlYWN0U2VydmVyQ29tcG9uZW50c0Vycm9yLCAxKVxuICAgIGZvcm1hdHRlZEVycm9ycy51bnNoaWZ0KGVycm9yWzBdKVxuICB9XG5cbiAgY29uc3QgcmVzdWx0ID0ge1xuICAgIC4uLmpzb24sXG4gICAgZXJyb3JzOiBmb3JtYXR0ZWRFcnJvcnMsXG4gICAgd2FybmluZ3M6IGZvcm1hdHRlZFdhcm5pbmdzLFxuICB9XG4gIGlmICghdmVyYm9zZSAmJiByZXN1bHQuZXJyb3JzLnNvbWUoaXNMaWtlbHlBU3ludGF4RXJyb3IpKSB7XG4gICAgLy8gSWYgdGhlcmUgYXJlIGFueSBzeW50YXggZXJyb3JzLCBzaG93IGp1c3QgdGhlbS5cbiAgICByZXN1bHQuZXJyb3JzID0gcmVzdWx0LmVycm9ycy5maWx0ZXIoaXNMaWtlbHlBU3ludGF4RXJyb3IpXG4gICAgcmVzdWx0Lndhcm5pbmdzID0gW11cbiAgfVxuICByZXR1cm4gcmVzdWx0XG59XG4iXSwibmFtZXMiOlsiZm9ybWF0V2VicGFja01lc3NhZ2VzIiwiZnJpZW5kbHlTeW50YXhFcnJvckxhYmVsIiwiV0VCUEFDS19CUkVBS0lOR19DSEFOR0VfUE9MWUZJTExTIiwiaXNMaWtlbHlBU3ludGF4RXJyb3IiLCJtZXNzYWdlIiwic3RyaXBBbnNpIiwiaW5jbHVkZXMiLCJoYWRNaXNzaW5nU2Fzc0Vycm9yIiwiZm9ybWF0TWVzc2FnZSIsInZlcmJvc2UiLCJpbXBvcnRUcmFjZU5vdGUiLCJmaWx0ZXJlZE1vZHVsZVRyYWNlIiwibW9kdWxlVHJhY2UiLCJmaWx0ZXIiLCJ0cmFjZSIsInRlc3QiLCJvcmlnaW5OYW1lIiwiYm9keSIsImJyZWFraW5nQ2hhbmdlSW5kZXgiLCJpbmRleE9mIiwic2xpY2UiLCJtb2R1bGVOYW1lIiwiZmlsZSIsImRldGFpbHMiLCJsZW5ndGgiLCJtYXAiLCJqb2luIiwic3RhY2siLCJsaW5lcyIsInNwbGl0IiwibGluZSIsInBhcnNpbmdFcnJvciIsImV4ZWMiLCJlcnJvckxpbmUiLCJlcnJvckNvbHVtbiIsImVycm9yTWVzc2FnZSIsInJlcGxhY2UiLCJ0cmltIiwic3BsaWNlIiwic3RhcnRzV2l0aCIsIm1hdGNoIiwiZmlyc3RMaW5lIiwiaW5kZXgiLCJhcnIiLCJqc29uIiwiZm9ybWF0dGVkRXJyb3JzIiwiZXJyb3JzIiwiaXNVbmtub3duTmV4dEZvbnRFcnJvciIsImZvcm1hdHRlZFdhcm5pbmdzIiwid2FybmluZ3MiLCJyZWFjdFNlcnZlckNvbXBvbmVudHNFcnJvciIsImkiLCJlcnJvciIsInVuc2hpZnQiLCJyZXN1bHQiLCJzb21lIl0sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(pages-dir-browser)/./node_modules/next/dist/shared/lib/format-webpack-messages.js\n")); - -/***/ }), - -/***/ "(pages-dir-browser)/./node_modules/next/dist/shared/lib/head-manager-context.shared-runtime.js": -/*!**********************************************************************************!*\ - !*** ./node_modules/next/dist/shared/lib/head-manager-context.shared-runtime.js ***! - \**********************************************************************************/ -/***/ ((module, exports, __webpack_require__) => { - -"use strict"; -eval(__webpack_require__.ts("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"HeadManagerContext\", ({\n enumerable: true,\n get: function() {\n return HeadManagerContext;\n }\n}));\nconst _interop_require_default = __webpack_require__(/*! @swc/helpers/_/_interop_require_default */ \"(pages-dir-browser)/./node_modules/@swc/helpers/esm/_interop_require_default.js\");\nconst _react = /*#__PURE__*/ _interop_require_default._(__webpack_require__(/*! react */ \"(pages-dir-browser)/./node_modules/react/index.js\"));\nconst HeadManagerContext = _react.default.createContext({});\nif (true) {\n HeadManagerContext.displayName = 'HeadManagerContext';\n} //# sourceMappingURL=head-manager-context.shared-runtime.js.map\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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3Qvc2hhcmVkL2xpYi9oZWFkLW1hbmFnZXItY29udGV4dC5zaGFyZWQtcnVudGltZS5qcyIsIm1hcHBpbmdzIjoiOzs7O3NEQUVhQTs7O2VBQUFBOzs7OzRFQUZLO0FBRVgsTUFBTUEscUJBVVJDLE9BQUFBLE9BQUssQ0FBQ0MsYUFBYSxDQUFDLENBQUM7QUFFMUIsSUFBSUMsSUFBb0IsRUFBbUI7SUFDekNILG1CQUFtQk0sV0FBVyxHQUFHO0FBQ25DIiwic291cmNlcyI6WyJEOlxcc3JjXFxzaGFyZWRcXGxpYlxcaGVhZC1tYW5hZ2VyLWNvbnRleHQuc2hhcmVkLXJ1bnRpbWUudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0J1xuXG5leHBvcnQgY29uc3QgSGVhZE1hbmFnZXJDb250ZXh0OiBSZWFjdC5Db250ZXh0PHtcbiAgdXBkYXRlSGVhZD86IChzdGF0ZTogYW55KSA9PiB2b2lkXG4gIG1vdW50ZWRJbnN0YW5jZXM/OiBhbnlcbiAgdXBkYXRlU2NyaXB0cz86IChzdGF0ZTogYW55KSA9PiB2b2lkXG4gIHNjcmlwdHM/OiBhbnlcbiAgZ2V0SXNTc3I/OiAoKSA9PiBib29sZWFuXG5cbiAgLy8gVXNlZCBpbiBhcHAgZGlyZWN0b3J5LCB0byByZW5kZXIgc2NyaXB0IHRhZ3MgYXMgc2VydmVyIGNvbXBvbmVudHMuXG4gIGFwcERpcj86IGJvb2xlYW5cbiAgbm9uY2U/OiBzdHJpbmdcbn0+ID0gUmVhY3QuY3JlYXRlQ29udGV4dCh7fSlcblxuaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpIHtcbiAgSGVhZE1hbmFnZXJDb250ZXh0LmRpc3BsYXlOYW1lID0gJ0hlYWRNYW5hZ2VyQ29udGV4dCdcbn1cbiJdLCJuYW1lcyI6WyJIZWFkTWFuYWdlckNvbnRleHQiLCJSZWFjdCIsImNyZWF0ZUNvbnRleHQiLCJwcm9jZXNzIiwiZW52IiwiTk9ERV9FTlYiLCJkaXNwbGF5TmFtZSJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(pages-dir-browser)/./node_modules/next/dist/shared/lib/head-manager-context.shared-runtime.js\n")); - -/***/ }), - -/***/ "(pages-dir-browser)/./node_modules/next/dist/shared/lib/hooks-client-context.shared-runtime.js": -/*!**********************************************************************************!*\ - !*** ./node_modules/next/dist/shared/lib/hooks-client-context.shared-runtime.js ***! - \**********************************************************************************/ -/***/ ((module, exports, __webpack_require__) => { - -"use strict"; -eval(__webpack_require__.ts("/* __next_internal_client_entry_do_not_use__ cjs */ \nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n PathParamsContext: function() {\n return PathParamsContext;\n },\n PathnameContext: function() {\n return PathnameContext;\n },\n SearchParamsContext: function() {\n return SearchParamsContext;\n }\n});\nconst _react = __webpack_require__(/*! react */ \"(pages-dir-browser)/./node_modules/react/index.js\");\nconst SearchParamsContext = (0, _react.createContext)(null);\nconst PathnameContext = (0, _react.createContext)(null);\nconst PathParamsContext = (0, _react.createContext)(null);\nif (true) {\n SearchParamsContext.displayName = 'SearchParamsContext';\n PathnameContext.displayName = 'PathnameContext';\n PathParamsContext.displayName = 'PathParamsContext';\n} //# sourceMappingURL=hooks-client-context.shared-runtime.js.map\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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3Qvc2hhcmVkL2xpYi9ob29rcy1jbGllbnQtY29udGV4dC5zaGFyZWQtcnVudGltZS5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7SUFPYUEsaUJBQWlCO2VBQWpCQTs7SUFEQUMsZUFBZTtlQUFmQTs7SUFEQUMsbUJBQW1CO2VBQW5CQTs7O21DQUhpQjtBQUd2QixNQUFNQSxzQkFBc0JDLENBQUFBLEdBQUFBLE9BQUFBLGFBQUFBLEVBQXNDO0FBQ2xFLE1BQU1GLGtCQUFrQkUsQ0FBQUEsR0FBQUEsT0FBQUEsYUFBQUEsRUFBNkI7QUFDckQsTUFBTUgsb0JBQW9CRyxDQUFBQSxHQUFBQSxPQUFBQSxhQUFBQSxFQUE2QjtBQUU5RCxJQUFJQyxJQUFvQixFQUFtQjtJQUN6Q0Ysb0JBQW9CSyxXQUFXLEdBQUc7SUFDbENOLGdCQUFnQk0sV0FBVyxHQUFHO0lBQzlCUCxrQkFBa0JPLFdBQVcsR0FBRztBQUNsQyIsInNvdXJjZXMiOlsiRDpcXHNyY1xcc2hhcmVkXFxsaWJcXGhvb2tzLWNsaWVudC1jb250ZXh0LnNoYXJlZC1ydW50aW1lLnRzIl0sInNvdXJjZXNDb250ZW50IjpbIid1c2UgY2xpZW50J1xuXG5pbXBvcnQgeyBjcmVhdGVDb250ZXh0IH0gZnJvbSAncmVhY3QnXG5pbXBvcnQgdHlwZSB7IFBhcmFtcyB9IGZyb20gJy4uLy4uL3NlcnZlci9yZXF1ZXN0L3BhcmFtcydcblxuZXhwb3J0IGNvbnN0IFNlYXJjaFBhcmFtc0NvbnRleHQgPSBjcmVhdGVDb250ZXh0PFVSTFNlYXJjaFBhcmFtcyB8IG51bGw+KG51bGwpXG5leHBvcnQgY29uc3QgUGF0aG5hbWVDb250ZXh0ID0gY3JlYXRlQ29udGV4dDxzdHJpbmcgfCBudWxsPihudWxsKVxuZXhwb3J0IGNvbnN0IFBhdGhQYXJhbXNDb250ZXh0ID0gY3JlYXRlQ29udGV4dDxQYXJhbXMgfCBudWxsPihudWxsKVxuXG5pZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJykge1xuICBTZWFyY2hQYXJhbXNDb250ZXh0LmRpc3BsYXlOYW1lID0gJ1NlYXJjaFBhcmFtc0NvbnRleHQnXG4gIFBhdGhuYW1lQ29udGV4dC5kaXNwbGF5TmFtZSA9ICdQYXRobmFtZUNvbnRleHQnXG4gIFBhdGhQYXJhbXNDb250ZXh0LmRpc3BsYXlOYW1lID0gJ1BhdGhQYXJhbXNDb250ZXh0J1xufVxuIl0sIm5hbWVzIjpbIlBhdGhQYXJhbXNDb250ZXh0IiwiUGF0aG5hbWVDb250ZXh0IiwiU2VhcmNoUGFyYW1zQ29udGV4dCIsImNyZWF0ZUNvbnRleHQiLCJwcm9jZXNzIiwiZW52IiwiTk9ERV9FTlYiLCJkaXNwbGF5TmFtZSJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(pages-dir-browser)/./node_modules/next/dist/shared/lib/hooks-client-context.shared-runtime.js\n")); - -/***/ }), - -/***/ "(pages-dir-browser)/./node_modules/next/dist/shared/lib/i18n/normalize-locale-path.js": -/*!*************************************************************************!*\ - !*** ./node_modules/next/dist/shared/lib/i18n/normalize-locale-path.js ***! - \*************************************************************************/ -/***/ ((module, exports, __webpack_require__) => { - -"use strict"; -eval(__webpack_require__.ts("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"normalizeLocalePath\", ({\n enumerable: true,\n get: function() {\n return normalizeLocalePath;\n }\n}));\n/**\n * A cache of lowercased locales for each list of locales. This is stored as a\n * WeakMap so if the locales are garbage collected, the cache entry will be\n * removed as well.\n */ const cache = new WeakMap();\nfunction normalizeLocalePath(pathname, locales) {\n // If locales is undefined, return the pathname as is.\n if (!locales) return {\n pathname\n };\n // Get the cached lowercased locales or create a new cache entry.\n let lowercasedLocales = cache.get(locales);\n if (!lowercasedLocales) {\n lowercasedLocales = locales.map((locale)=>locale.toLowerCase());\n cache.set(locales, lowercasedLocales);\n }\n let detectedLocale;\n // The first segment will be empty, because it has a leading `/`. If\n // there is no further segment, there is no locale (or it's the default).\n const segments = pathname.split('/', 2);\n // If there's no second segment (ie, the pathname is just `/`), there's no\n // locale.\n if (!segments[1]) return {\n pathname\n };\n // The second segment will contain the locale part if any.\n const segment = segments[1].toLowerCase();\n // See if the segment matches one of the locales. If it doesn't, there is\n // no locale (or it's the default).\n const index = lowercasedLocales.indexOf(segment);\n if (index < 0) return {\n pathname\n };\n // Return the case-sensitive locale.\n detectedLocale = locales[index];\n // Remove the `/${locale}` part of the pathname.\n pathname = pathname.slice(detectedLocale.length + 1) || '/';\n return {\n pathname,\n detectedLocale\n };\n} //# sourceMappingURL=normalize-locale-path.js.map\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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3Qvc2hhcmVkL2xpYi9pMThuL25vcm1hbGl6ZS1sb2NhbGUtcGF0aC5qcyIsIm1hcHBpbmdzIjoiOzs7O3VEQXFCZ0JBOzs7ZUFBQUE7OztBQWhCaEI7Ozs7Q0FJQyxHQUNELE1BQU1DLFFBQVEsSUFBSUM7QUFXWCxTQUFTRixvQkFDZEcsUUFBZ0IsRUFDaEJDLE9BQTJCO0lBRTNCLHNEQUFzRDtJQUN0RCxJQUFJLENBQUNBLFNBQVMsT0FBTztRQUFFRDtJQUFTO0lBRWhDLGlFQUFpRTtJQUNqRSxJQUFJRSxvQkFBb0JKLE1BQU1LLEdBQUcsQ0FBQ0Y7SUFDbEMsSUFBSSxDQUFDQyxtQkFBbUI7UUFDdEJBLG9CQUFvQkQsUUFBUUcsR0FBRyxDQUFDLENBQUNDLFNBQVdBLE9BQU9DLFdBQVc7UUFDOURSLE1BQU1TLEdBQUcsQ0FBQ04sU0FBU0M7SUFDckI7SUFFQSxJQUFJTTtJQUVKLG9FQUFvRTtJQUNwRSx5RUFBeUU7SUFDekUsTUFBTUMsV0FBV1QsU0FBU1UsS0FBSyxDQUFDLEtBQUs7SUFFckMsMEVBQTBFO0lBQzFFLFVBQVU7SUFDVixJQUFJLENBQUNELFFBQVEsQ0FBQyxFQUFFLEVBQUUsT0FBTztRQUFFVDtJQUFTO0lBRXBDLDBEQUEwRDtJQUMxRCxNQUFNVyxVQUFVRixRQUFRLENBQUMsRUFBRSxDQUFDSCxXQUFXO0lBRXZDLHlFQUF5RTtJQUN6RSxtQ0FBbUM7SUFDbkMsTUFBTU0sUUFBUVYsa0JBQWtCVyxPQUFPLENBQUNGO0lBQ3hDLElBQUlDLFFBQVEsR0FBRyxPQUFPO1FBQUVaO0lBQVM7SUFFakMsb0NBQW9DO0lBQ3BDUSxpQkFBaUJQLE9BQU8sQ0FBQ1csTUFBTTtJQUUvQixnREFBZ0Q7SUFDaERaLFdBQVdBLFNBQVNjLEtBQUssQ0FBQ04sZUFBZU8sTUFBTSxHQUFHLE1BQU07SUFFeEQsT0FBTztRQUFFZjtRQUFVUTtJQUFlO0FBQ3BDIiwic291cmNlcyI6WyJEOlxcc3JjXFxzaGFyZWRcXGxpYlxcaTE4blxcbm9ybWFsaXplLWxvY2FsZS1wYXRoLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBpbnRlcmZhY2UgUGF0aExvY2FsZSB7XG4gIGRldGVjdGVkTG9jYWxlPzogc3RyaW5nXG4gIHBhdGhuYW1lOiBzdHJpbmdcbn1cblxuLyoqXG4gKiBBIGNhY2hlIG9mIGxvd2VyY2FzZWQgbG9jYWxlcyBmb3IgZWFjaCBsaXN0IG9mIGxvY2FsZXMuIFRoaXMgaXMgc3RvcmVkIGFzIGFcbiAqIFdlYWtNYXAgc28gaWYgdGhlIGxvY2FsZXMgYXJlIGdhcmJhZ2UgY29sbGVjdGVkLCB0aGUgY2FjaGUgZW50cnkgd2lsbCBiZVxuICogcmVtb3ZlZCBhcyB3ZWxsLlxuICovXG5jb25zdCBjYWNoZSA9IG5ldyBXZWFrTWFwPHJlYWRvbmx5IHN0cmluZ1tdLCByZWFkb25seSBzdHJpbmdbXT4oKVxuXG4vKipcbiAqIEZvciBhIHBhdGhuYW1lIHRoYXQgbWF5IGluY2x1ZGUgYSBsb2NhbGUgZnJvbSBhIGxpc3Qgb2YgbG9jYWxlcywgaXRcbiAqIHJlbW92ZXMgdGhlIGxvY2FsZSBmcm9tIHRoZSBwYXRobmFtZSByZXR1cm5pbmcgaXQgYWxvbmdzaWRlIHdpdGggdGhlXG4gKiBkZXRlY3RlZCBsb2NhbGUuXG4gKlxuICogQHBhcmFtIHBhdGhuYW1lIEEgcGF0aG5hbWUgdGhhdCBtYXkgaW5jbHVkZSBhIGxvY2FsZS5cbiAqIEBwYXJhbSBsb2NhbGVzIEEgbGlzdCBvZiBsb2NhbGVzLlxuICogQHJldHVybnMgVGhlIGRldGVjdGVkIGxvY2FsZSBhbmQgcGF0aG5hbWUgd2l0aG91dCBsb2NhbGVcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIG5vcm1hbGl6ZUxvY2FsZVBhdGgoXG4gIHBhdGhuYW1lOiBzdHJpbmcsXG4gIGxvY2FsZXM/OiByZWFkb25seSBzdHJpbmdbXVxuKTogUGF0aExvY2FsZSB7XG4gIC8vIElmIGxvY2FsZXMgaXMgdW5kZWZpbmVkLCByZXR1cm4gdGhlIHBhdGhuYW1lIGFzIGlzLlxuICBpZiAoIWxvY2FsZXMpIHJldHVybiB7IHBhdGhuYW1lIH1cblxuICAvLyBHZXQgdGhlIGNhY2hlZCBsb3dlcmNhc2VkIGxvY2FsZXMgb3IgY3JlYXRlIGEgbmV3IGNhY2hlIGVudHJ5LlxuICBsZXQgbG93ZXJjYXNlZExvY2FsZXMgPSBjYWNoZS5nZXQobG9jYWxlcylcbiAgaWYgKCFsb3dlcmNhc2VkTG9jYWxlcykge1xuICAgIGxvd2VyY2FzZWRMb2NhbGVzID0gbG9jYWxlcy5tYXAoKGxvY2FsZSkgPT4gbG9jYWxlLnRvTG93ZXJDYXNlKCkpXG4gICAgY2FjaGUuc2V0KGxvY2FsZXMsIGxvd2VyY2FzZWRMb2NhbGVzKVxuICB9XG5cbiAgbGV0IGRldGVjdGVkTG9jYWxlOiBzdHJpbmcgfCB1bmRlZmluZWRcblxuICAvLyBUaGUgZmlyc3Qgc2VnbWVudCB3aWxsIGJlIGVtcHR5LCBiZWNhdXNlIGl0IGhhcyBhIGxlYWRpbmcgYC9gLiBJZlxuICAvLyB0aGVyZSBpcyBubyBmdXJ0aGVyIHNlZ21lbnQsIHRoZXJlIGlzIG5vIGxvY2FsZSAob3IgaXQncyB0aGUgZGVmYXVsdCkuXG4gIGNvbnN0IHNlZ21lbnRzID0gcGF0aG5hbWUuc3BsaXQoJy8nLCAyKVxuXG4gIC8vIElmIHRoZXJlJ3Mgbm8gc2Vjb25kIHNlZ21lbnQgKGllLCB0aGUgcGF0aG5hbWUgaXMganVzdCBgL2ApLCB0aGVyZSdzIG5vXG4gIC8vIGxvY2FsZS5cbiAgaWYgKCFzZWdtZW50c1sxXSkgcmV0dXJuIHsgcGF0aG5hbWUgfVxuXG4gIC8vIFRoZSBzZWNvbmQgc2VnbWVudCB3aWxsIGNvbnRhaW4gdGhlIGxvY2FsZSBwYXJ0IGlmIGFueS5cbiAgY29uc3Qgc2VnbWVudCA9IHNlZ21lbnRzWzFdLnRvTG93ZXJDYXNlKClcblxuICAvLyBTZWUgaWYgdGhlIHNlZ21lbnQgbWF0Y2hlcyBvbmUgb2YgdGhlIGxvY2FsZXMuIElmIGl0IGRvZXNuJ3QsIHRoZXJlIGlzXG4gIC8vIG5vIGxvY2FsZSAob3IgaXQncyB0aGUgZGVmYXVsdCkuXG4gIGNvbnN0IGluZGV4ID0gbG93ZXJjYXNlZExvY2FsZXMuaW5kZXhPZihzZWdtZW50KVxuICBpZiAoaW5kZXggPCAwKSByZXR1cm4geyBwYXRobmFtZSB9XG5cbiAgLy8gUmV0dXJuIHRoZSBjYXNlLXNlbnNpdGl2ZSBsb2NhbGUuXG4gIGRldGVjdGVkTG9jYWxlID0gbG9jYWxlc1tpbmRleF1cblxuICAvLyBSZW1vdmUgdGhlIGAvJHtsb2NhbGV9YCBwYXJ0IG9mIHRoZSBwYXRobmFtZS5cbiAgcGF0aG5hbWUgPSBwYXRobmFtZS5zbGljZShkZXRlY3RlZExvY2FsZS5sZW5ndGggKyAxKSB8fCAnLydcblxuICByZXR1cm4geyBwYXRobmFtZSwgZGV0ZWN0ZWRMb2NhbGUgfVxufVxuIl0sIm5hbWVzIjpbIm5vcm1hbGl6ZUxvY2FsZVBhdGgiLCJjYWNoZSIsIldlYWtNYXAiLCJwYXRobmFtZSIsImxvY2FsZXMiLCJsb3dlcmNhc2VkTG9jYWxlcyIsImdldCIsIm1hcCIsImxvY2FsZSIsInRvTG93ZXJDYXNlIiwic2V0IiwiZGV0ZWN0ZWRMb2NhbGUiLCJzZWdtZW50cyIsInNwbGl0Iiwic2VnbWVudCIsImluZGV4IiwiaW5kZXhPZiIsInNsaWNlIiwibGVuZ3RoIl0sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(pages-dir-browser)/./node_modules/next/dist/shared/lib/i18n/normalize-locale-path.js\n")); - -/***/ }), - -/***/ "(pages-dir-browser)/./node_modules/next/dist/shared/lib/image-config-context.shared-runtime.js": -/*!**********************************************************************************!*\ - !*** ./node_modules/next/dist/shared/lib/image-config-context.shared-runtime.js ***! - \**********************************************************************************/ -/***/ ((module, exports, __webpack_require__) => { - -"use strict"; -eval(__webpack_require__.ts("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"ImageConfigContext\", ({\n enumerable: true,\n get: function() {\n return ImageConfigContext;\n }\n}));\nconst _interop_require_default = __webpack_require__(/*! @swc/helpers/_/_interop_require_default */ \"(pages-dir-browser)/./node_modules/@swc/helpers/esm/_interop_require_default.js\");\nconst _react = /*#__PURE__*/ _interop_require_default._(__webpack_require__(/*! react */ \"(pages-dir-browser)/./node_modules/react/index.js\"));\nconst _imageconfig = __webpack_require__(/*! ./image-config */ \"(pages-dir-browser)/./node_modules/next/dist/shared/lib/image-config.js\");\nconst ImageConfigContext = _react.default.createContext(_imageconfig.imageConfigDefault);\nif (true) {\n ImageConfigContext.displayName = 'ImageConfigContext';\n} //# sourceMappingURL=image-config-context.shared-runtime.js.map\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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3Qvc2hhcmVkL2xpYi9pbWFnZS1jb25maWctY29udGV4dC5zaGFyZWQtcnVudGltZS5qcyIsIm1hcHBpbmdzIjoiOzs7O3NEQUlhQTs7O2VBQUFBOzs7OzRFQUpLO3lDQUVpQjtBQUU1QixNQUFNQSxxQkFDWEMsT0FBQUEsT0FBSyxDQUFDQyxhQUFhLENBQXNCQyxhQUFBQSxrQkFBa0I7QUFFN0QsSUFBSUMsSUFBb0IsRUFBbUI7SUFDekNKLG1CQUFtQk8sV0FBVyxHQUFHO0FBQ25DIiwic291cmNlcyI6WyJEOlxcc3JjXFxzaGFyZWRcXGxpYlxcaW1hZ2UtY29uZmlnLWNvbnRleHQuc2hhcmVkLXJ1bnRpbWUudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0J1xuaW1wb3J0IHR5cGUgeyBJbWFnZUNvbmZpZ0NvbXBsZXRlIH0gZnJvbSAnLi9pbWFnZS1jb25maWcnXG5pbXBvcnQgeyBpbWFnZUNvbmZpZ0RlZmF1bHQgfSBmcm9tICcuL2ltYWdlLWNvbmZpZydcblxuZXhwb3J0IGNvbnN0IEltYWdlQ29uZmlnQ29udGV4dCA9XG4gIFJlYWN0LmNyZWF0ZUNvbnRleHQ8SW1hZ2VDb25maWdDb21wbGV0ZT4oaW1hZ2VDb25maWdEZWZhdWx0KVxuXG5pZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJykge1xuICBJbWFnZUNvbmZpZ0NvbnRleHQuZGlzcGxheU5hbWUgPSAnSW1hZ2VDb25maWdDb250ZXh0J1xufVxuIl0sIm5hbWVzIjpbIkltYWdlQ29uZmlnQ29udGV4dCIsIlJlYWN0IiwiY3JlYXRlQ29udGV4dCIsImltYWdlQ29uZmlnRGVmYXVsdCIsInByb2Nlc3MiLCJlbnYiLCJOT0RFX0VOViIsImRpc3BsYXlOYW1lIl0sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(pages-dir-browser)/./node_modules/next/dist/shared/lib/image-config-context.shared-runtime.js\n")); - -/***/ }), - -/***/ "(pages-dir-browser)/./node_modules/next/dist/shared/lib/image-config.js": -/*!***********************************************************!*\ - !*** ./node_modules/next/dist/shared/lib/image-config.js ***! - \***********************************************************/ -/***/ ((module, exports, __webpack_require__) => { - -"use strict"; -eval(__webpack_require__.ts("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n VALID_LOADERS: function() {\n return VALID_LOADERS;\n },\n imageConfigDefault: function() {\n return imageConfigDefault;\n }\n});\nconst VALID_LOADERS = [\n 'default',\n 'imgix',\n 'cloudinary',\n 'akamai',\n 'custom'\n];\nconst imageConfigDefault = {\n deviceSizes: [\n 640,\n 750,\n 828,\n 1080,\n 1200,\n 1920,\n 2048,\n 3840\n ],\n imageSizes: [\n 16,\n 32,\n 48,\n 64,\n 96,\n 128,\n 256,\n 384\n ],\n path: '/_next/image',\n loader: 'default',\n loaderFile: '',\n domains: [],\n disableStaticImages: false,\n minimumCacheTTL: 60,\n formats: [\n 'image/webp'\n ],\n dangerouslyAllowSVG: false,\n contentSecurityPolicy: \"script-src 'none'; frame-src 'none'; sandbox;\",\n contentDispositionType: 'attachment',\n localPatterns: undefined,\n remotePatterns: [],\n qualities: undefined,\n unoptimized: false\n}; //# sourceMappingURL=image-config.js.map\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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3Qvc2hhcmVkL2xpYi9pbWFnZS1jb25maWcuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7O0lBQWFBLGFBQWE7ZUFBYkE7O0lBaUlBQyxrQkFBa0I7ZUFBbEJBOzs7QUFqSU4sTUFBTUQsZ0JBQWdCO0lBQzNCO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7Q0FDRDtBQTJITSxNQUFNQyxxQkFBMEM7SUFDckRDLGFBQWE7UUFBQztRQUFLO1FBQUs7UUFBSztRQUFNO1FBQU07UUFBTTtRQUFNO0tBQUs7SUFDMURDLFlBQVk7UUFBQztRQUFJO1FBQUk7UUFBSTtRQUFJO1FBQUk7UUFBSztRQUFLO0tBQUk7SUFDL0NDLE1BQU07SUFDTkMsUUFBUTtJQUNSQyxZQUFZO0lBQ1pDLFNBQVMsRUFBRTtJQUNYQyxxQkFBcUI7SUFDckJDLGlCQUFpQjtJQUNqQkMsU0FBUztRQUFDO0tBQWE7SUFDdkJDLHFCQUFxQjtJQUNyQkMsdUJBQXdCO0lBQ3hCQyx3QkFBd0I7SUFDeEJDLGVBQWVDO0lBQ2ZDLGdCQUFnQixFQUFFO0lBQ2xCQyxXQUFXRjtJQUNYRyxhQUFhO0FBQ2YiLCJzb3VyY2VzIjpbIkQ6XFxzcmNcXHNoYXJlZFxcbGliXFxpbWFnZS1jb25maWcudHMiXSwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNvbnN0IFZBTElEX0xPQURFUlMgPSBbXG4gICdkZWZhdWx0JyxcbiAgJ2ltZ2l4JyxcbiAgJ2Nsb3VkaW5hcnknLFxuICAnYWthbWFpJyxcbiAgJ2N1c3RvbScsXG5dIGFzIGNvbnN0XG5cbmV4cG9ydCB0eXBlIExvYWRlclZhbHVlID0gKHR5cGVvZiBWQUxJRF9MT0FERVJTKVtudW1iZXJdXG5cbmV4cG9ydCB0eXBlIEltYWdlTG9hZGVyUHJvcHMgPSB7XG4gIHNyYzogc3RyaW5nXG4gIHdpZHRoOiBudW1iZXJcbiAgcXVhbGl0eT86IG51bWJlclxufVxuXG5leHBvcnQgdHlwZSBJbWFnZUxvYWRlclByb3BzV2l0aENvbmZpZyA9IEltYWdlTG9hZGVyUHJvcHMgJiB7XG4gIGNvbmZpZzogUmVhZG9ubHk8SW1hZ2VDb25maWc+XG59XG5cbmV4cG9ydCB0eXBlIExvY2FsUGF0dGVybiA9IHtcbiAgLyoqXG4gICAqIENhbiBiZSBsaXRlcmFsIG9yIHdpbGRjYXJkLlxuICAgKiBTaW5nbGUgYCpgIG1hdGNoZXMgYSBzaW5nbGUgcGF0aCBzZWdtZW50LlxuICAgKiBEb3VibGUgYCoqYCBtYXRjaGVzIGFueSBudW1iZXIgb2YgcGF0aCBzZWdtZW50cy5cbiAgICovXG4gIHBhdGhuYW1lPzogc3RyaW5nXG5cbiAgLyoqXG4gICAqIENhbiBiZSBsaXRlcmFsIHF1ZXJ5IHN0cmluZyBzdWNoIGFzIGA/dj0xYCBvclxuICAgKiBlbXB0eSBzdHJpbmcgbWVhbmluZyBubyBxdWVyeSBzdHJpbmcuXG4gICAqL1xuICBzZWFyY2g/OiBzdHJpbmdcbn1cblxuZXhwb3J0IHR5cGUgUmVtb3RlUGF0dGVybiA9IHtcbiAgLyoqXG4gICAqIE11c3QgYmUgYGh0dHBgIG9yIGBodHRwc2AuXG4gICAqL1xuICBwcm90b2NvbD86ICdodHRwJyB8ICdodHRwcydcblxuICAvKipcbiAgICogQ2FuIGJlIGxpdGVyYWwgb3Igd2lsZGNhcmQuXG4gICAqIFNpbmdsZSBgKmAgbWF0Y2hlcyBhIHNpbmdsZSBzdWJkb21haW4uXG4gICAqIERvdWJsZSBgKipgIG1hdGNoZXMgYW55IG51bWJlciBvZiBzdWJkb21haW5zLlxuICAgKi9cbiAgaG9zdG5hbWU6IHN0cmluZ1xuXG4gIC8qKlxuICAgKiBDYW4gYmUgbGl0ZXJhbCBwb3J0IHN1Y2ggYXMgYDgwODBgIG9yIGVtcHR5IHN0cmluZ1xuICAgKiBtZWFuaW5nIG5vIHBvcnQuXG4gICAqL1xuICBwb3J0Pzogc3RyaW5nXG5cbiAgLyoqXG4gICAqIENhbiBiZSBsaXRlcmFsIG9yIHdpbGRjYXJkLlxuICAgKiBTaW5nbGUgYCpgIG1hdGNoZXMgYSBzaW5nbGUgcGF0aCBzZWdtZW50LlxuICAgKiBEb3VibGUgYCoqYCBtYXRjaGVzIGFueSBudW1iZXIgb2YgcGF0aCBzZWdtZW50cy5cbiAgICovXG4gIHBhdGhuYW1lPzogc3RyaW5nXG5cbiAgLyoqXG4gICAqIENhbiBiZSBsaXRlcmFsIHF1ZXJ5IHN0cmluZyBzdWNoIGFzIGA/dj0xYCBvclxuICAgKiBlbXB0eSBzdHJpbmcgbWVhbmluZyBubyBxdWVyeSBzdHJpbmcuXG4gICAqL1xuICBzZWFyY2g/OiBzdHJpbmdcbn1cblxudHlwZSBJbWFnZUZvcm1hdCA9ICdpbWFnZS9hdmlmJyB8ICdpbWFnZS93ZWJwJ1xuXG4vKipcbiAqIEltYWdlIGNvbmZpZ3VyYXRpb25zXG4gKlxuICogQHNlZSBbSW1hZ2UgY29uZmlndXJhdGlvbiBvcHRpb25zXShodHRwczovL25leHRqcy5vcmcvZG9jcy9hcGktcmVmZXJlbmNlL25leHQvaW1hZ2UjY29uZmlndXJhdGlvbi1vcHRpb25zKVxuICovXG5leHBvcnQgdHlwZSBJbWFnZUNvbmZpZ0NvbXBsZXRlID0ge1xuICAvKiogQHNlZSBbRGV2aWNlIHNpemVzIGRvY3VtZW50YXRpb25dKGh0dHBzOi8vbmV4dGpzLm9yZy9kb2NzL2FwaS1yZWZlcmVuY2UvbmV4dC9pbWFnZSNkZXZpY2Utc2l6ZXMpICovXG4gIGRldmljZVNpemVzOiBudW1iZXJbXVxuXG4gIC8qKiBAc2VlIFtJbWFnZSBzaXppbmcgZG9jdW1lbnRhdGlvbl0oaHR0cHM6Ly9uZXh0anMub3JnL2RvY3MvYXBwL2J1aWxkaW5nLXlvdXItYXBwbGljYXRpb24vb3B0aW1pemluZy9pbWFnZXMjaW1hZ2Utc2l6aW5nKSAqL1xuICBpbWFnZVNpemVzOiBudW1iZXJbXVxuXG4gIC8qKiBAc2VlIFtJbWFnZSBsb2FkZXJzIGNvbmZpZ3VyYXRpb25dKGh0dHBzOi8vbmV4dGpzLm9yZy9kb2NzL2FwaS1yZWZlcmVuY2UvbmV4dC9sZWdhY3kvaW1hZ2UjbG9hZGVyKSAqL1xuICBsb2FkZXI6IExvYWRlclZhbHVlXG5cbiAgLyoqIEBzZWUgW0ltYWdlIGxvYWRlciBjb25maWd1cmF0aW9uXShodHRwczovL25leHRqcy5vcmcvZG9jcy9hcGktcmVmZXJlbmNlL25leHQvbGVnYWN5L2ltYWdlI2xvYWRlci1jb25maWd1cmF0aW9uKSAqL1xuICBwYXRoOiBzdHJpbmdcblxuICAvKiogQHNlZSBbSW1hZ2UgbG9hZGVyIGNvbmZpZ3VyYXRpb25dKGh0dHBzOi8vbmV4dGpzLm9yZy9kb2NzL2FwaS1yZWZlcmVuY2UvbmV4dC9pbWFnZSNsb2FkZXItY29uZmlndXJhdGlvbikgKi9cbiAgbG9hZGVyRmlsZTogc3RyaW5nXG5cbiAgLyoqXG4gICAqIEBkZXByZWNhdGVkIFVzZSBgcmVtb3RlUGF0dGVybnNgIGluc3RlYWQuXG4gICAqL1xuICBkb21haW5zOiBzdHJpbmdbXVxuXG4gIC8qKiBAc2VlIFtEaXNhYmxlIHN0YXRpYyBpbWFnZSBpbXBvcnQgY29uZmlndXJhdGlvbl0oaHR0cHM6Ly9uZXh0anMub3JnL2RvY3MvYXBpLXJlZmVyZW5jZS9uZXh0L2ltYWdlI2Rpc2FibGUtc3RhdGljLWltcG9ydHMpICovXG4gIGRpc2FibGVTdGF0aWNJbWFnZXM6IGJvb2xlYW5cblxuICAvKiogQHNlZSBbQ2FjaGUgYmVoYXZpb3JdKGh0dHBzOi8vbmV4dGpzLm9yZy9kb2NzL2FwaS1yZWZlcmVuY2UvbmV4dC9pbWFnZSNjYWNoaW5nLWJlaGF2aW9yKSAqL1xuICBtaW5pbXVtQ2FjaGVUVEw6IG51bWJlclxuXG4gIC8qKiBAc2VlIFtBY2NlcHRhYmxlIGZvcm1hdHNdKGh0dHBzOi8vbmV4dGpzLm9yZy9kb2NzL2FwaS1yZWZlcmVuY2UvbmV4dC9pbWFnZSNhY2NlcHRhYmxlLWZvcm1hdHMpICovXG4gIGZvcm1hdHM6IEltYWdlRm9ybWF0W11cblxuICAvKiogQHNlZSBbRGFuZ2Vyb3VzbHkgQWxsb3cgU1ZHXShodHRwczovL25leHRqcy5vcmcvZG9jcy9hcGktcmVmZXJlbmNlL25leHQvaW1hZ2UjZGFuZ2Vyb3VzbHktYWxsb3ctc3ZnKSAqL1xuICBkYW5nZXJvdXNseUFsbG93U1ZHOiBib29sZWFuXG5cbiAgLyoqIEBzZWUgW0NvbnRlbnQgU2VjdXJpdHkgUG9saWN5XShodHRwczovL25leHRqcy5vcmcvZG9jcy9hcGktcmVmZXJlbmNlL25leHQvaW1hZ2UjY29udGVudHNlY3VyaXR5cG9saWN5KSAqL1xuICBjb250ZW50U2VjdXJpdHlQb2xpY3k6IHN0cmluZ1xuXG4gIC8qKiBAc2VlIFtDb250ZW50IERpc3Bvc2l0aW9uIFR5cGVdKGh0dHBzOi8vbmV4dGpzLm9yZy9kb2NzL2FwaS1yZWZlcmVuY2UvbmV4dC9pbWFnZSNjb250ZW50ZGlzcG9zaXRpb250eXBlKSAqL1xuICBjb250ZW50RGlzcG9zaXRpb25UeXBlOiAnaW5saW5lJyB8ICdhdHRhY2htZW50J1xuXG4gIC8qKiBAc2VlIFtSZW1vdGUgUGF0dGVybnNdKGh0dHBzOi8vbmV4dGpzLm9yZy9kb2NzL2FwaS1yZWZlcmVuY2UvbmV4dC9pbWFnZSNyZW1vdGVwYXR0ZXJucykgKi9cbiAgcmVtb3RlUGF0dGVybnM6IEFycmF5PFVSTCB8IFJlbW90ZVBhdHRlcm4+XG5cbiAgLyoqIEBzZWUgW0xvY2FsIFBhdHRlcm5zXShodHRwczovL25leHRqcy5vcmcvZG9jcy9hcGktcmVmZXJlbmNlL25leHQvaW1hZ2UjbG9jYWxQYXR0ZXJucykgKi9cbiAgbG9jYWxQYXR0ZXJuczogTG9jYWxQYXR0ZXJuW10gfCB1bmRlZmluZWRcblxuICAvKiogQHNlZSBbUXVhbGl0aWVzXShodHRwczovL25leHRqcy5vcmcvZG9jcy9hcGktcmVmZXJlbmNlL25leHQvaW1hZ2UjcXVhbGl0aWVzKSAqL1xuICBxdWFsaXRpZXM6IG51bWJlcltdIHwgdW5kZWZpbmVkXG5cbiAgLyoqIEBzZWUgW1Vub3B0aW1pemVkXShodHRwczovL25leHRqcy5vcmcvZG9jcy9hcGktcmVmZXJlbmNlL25leHQvaW1hZ2UjdW5vcHRpbWl6ZWQpICovXG4gIHVub3B0aW1pemVkOiBib29sZWFuXG59XG5cbmV4cG9ydCB0eXBlIEltYWdlQ29uZmlnID0gUGFydGlhbDxJbWFnZUNvbmZpZ0NvbXBsZXRlPlxuXG5leHBvcnQgY29uc3QgaW1hZ2VDb25maWdEZWZhdWx0OiBJbWFnZUNvbmZpZ0NvbXBsZXRlID0ge1xuICBkZXZpY2VTaXplczogWzY0MCwgNzUwLCA4MjgsIDEwODAsIDEyMDAsIDE5MjAsIDIwNDgsIDM4NDBdLFxuICBpbWFnZVNpemVzOiBbMTYsIDMyLCA0OCwgNjQsIDk2LCAxMjgsIDI1NiwgMzg0XSxcbiAgcGF0aDogJy9fbmV4dC9pbWFnZScsXG4gIGxvYWRlcjogJ2RlZmF1bHQnLFxuICBsb2FkZXJGaWxlOiAnJyxcbiAgZG9tYWluczogW10sXG4gIGRpc2FibGVTdGF0aWNJbWFnZXM6IGZhbHNlLFxuICBtaW5pbXVtQ2FjaGVUVEw6IDYwLFxuICBmb3JtYXRzOiBbJ2ltYWdlL3dlYnAnXSxcbiAgZGFuZ2Vyb3VzbHlBbGxvd1NWRzogZmFsc2UsXG4gIGNvbnRlbnRTZWN1cml0eVBvbGljeTogYHNjcmlwdC1zcmMgJ25vbmUnOyBmcmFtZS1zcmMgJ25vbmUnOyBzYW5kYm94O2AsXG4gIGNvbnRlbnREaXNwb3NpdGlvblR5cGU6ICdhdHRhY2htZW50JyxcbiAgbG9jYWxQYXR0ZXJuczogdW5kZWZpbmVkLCAvLyBkZWZhdWx0OiBhbGxvdyBhbGwgbG9jYWwgaW1hZ2VzXG4gIHJlbW90ZVBhdHRlcm5zOiBbXSwgLy8gZGVmYXVsdDogYWxsb3cgbm8gcmVtb3RlIGltYWdlc1xuICBxdWFsaXRpZXM6IHVuZGVmaW5lZCwgLy8gZGVmYXVsdDogYWxsb3cgYWxsIHF1YWxpdGllc1xuICB1bm9wdGltaXplZDogZmFsc2UsXG59XG4iXSwibmFtZXMiOlsiVkFMSURfTE9BREVSUyIsImltYWdlQ29uZmlnRGVmYXVsdCIsImRldmljZVNpemVzIiwiaW1hZ2VTaXplcyIsInBhdGgiLCJsb2FkZXIiLCJsb2FkZXJGaWxlIiwiZG9tYWlucyIsImRpc2FibGVTdGF0aWNJbWFnZXMiLCJtaW5pbXVtQ2FjaGVUVEwiLCJmb3JtYXRzIiwiZGFuZ2Vyb3VzbHlBbGxvd1NWRyIsImNvbnRlbnRTZWN1cml0eVBvbGljeSIsImNvbnRlbnREaXNwb3NpdGlvblR5cGUiLCJsb2NhbFBhdHRlcm5zIiwidW5kZWZpbmVkIiwicmVtb3RlUGF0dGVybnMiLCJxdWFsaXRpZXMiLCJ1bm9wdGltaXplZCJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(pages-dir-browser)/./node_modules/next/dist/shared/lib/image-config.js\n")); - -/***/ }), - -/***/ "(pages-dir-browser)/./node_modules/next/dist/shared/lib/is-plain-object.js": -/*!**************************************************************!*\ - !*** ./node_modules/next/dist/shared/lib/is-plain-object.js ***! - \**************************************************************/ -/***/ ((module, exports, __webpack_require__) => { - -"use strict"; -eval(__webpack_require__.ts("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n getObjectClassLabel: function() {\n return getObjectClassLabel;\n },\n isPlainObject: function() {\n return isPlainObject;\n }\n});\nfunction getObjectClassLabel(value) {\n return Object.prototype.toString.call(value);\n}\nfunction isPlainObject(value) {\n if (getObjectClassLabel(value) !== '[object Object]') {\n return false;\n }\n const prototype = Object.getPrototypeOf(value);\n /**\n * this used to be previously:\n *\n * `return prototype === null || prototype === Object.prototype`\n *\n * but Edge Runtime expose Object from vm, being that kind of type-checking wrongly fail.\n *\n * It was changed to the current implementation since it's resilient to serialization.\n */ return prototype === null || prototype.hasOwnProperty('isPrototypeOf');\n} //# sourceMappingURL=is-plain-object.js.map\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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3Qvc2hhcmVkL2xpYi9pcy1wbGFpbi1vYmplY3QuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7O0lBQWdCQSxtQkFBbUI7ZUFBbkJBOztJQUlBQyxhQUFhO2VBQWJBOzs7QUFKVCxTQUFTRCxvQkFBb0JFLEtBQVU7SUFDNUMsT0FBT0MsT0FBT0MsU0FBUyxDQUFDQyxRQUFRLENBQUNDLElBQUksQ0FBQ0o7QUFDeEM7QUFFTyxTQUFTRCxjQUFjQyxLQUFVO0lBQ3RDLElBQUlGLG9CQUFvQkUsV0FBVyxtQkFBbUI7UUFDcEQsT0FBTztJQUNUO0lBRUEsTUFBTUUsWUFBWUQsT0FBT0ksY0FBYyxDQUFDTDtJQUV4Qzs7Ozs7Ozs7R0FRQyxHQUNELE9BQU9FLGNBQWMsUUFBUUEsVUFBVUksY0FBYyxDQUFDO0FBQ3hEIiwic291cmNlcyI6WyJEOlxcc3JjXFxzaGFyZWRcXGxpYlxcaXMtcGxhaW4tb2JqZWN0LnRzIl0sInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBmdW5jdGlvbiBnZXRPYmplY3RDbGFzc0xhYmVsKHZhbHVlOiBhbnkpOiBzdHJpbmcge1xuICByZXR1cm4gT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKHZhbHVlKVxufVxuXG5leHBvcnQgZnVuY3Rpb24gaXNQbGFpbk9iamVjdCh2YWx1ZTogYW55KTogYm9vbGVhbiB7XG4gIGlmIChnZXRPYmplY3RDbGFzc0xhYmVsKHZhbHVlKSAhPT0gJ1tvYmplY3QgT2JqZWN0XScpIHtcbiAgICByZXR1cm4gZmFsc2VcbiAgfVxuXG4gIGNvbnN0IHByb3RvdHlwZSA9IE9iamVjdC5nZXRQcm90b3R5cGVPZih2YWx1ZSlcblxuICAvKipcbiAgICogdGhpcyB1c2VkIHRvIGJlIHByZXZpb3VzbHk6XG4gICAqXG4gICAqIGByZXR1cm4gcHJvdG90eXBlID09PSBudWxsIHx8IHByb3RvdHlwZSA9PT0gT2JqZWN0LnByb3RvdHlwZWBcbiAgICpcbiAgICogYnV0IEVkZ2UgUnVudGltZSBleHBvc2UgT2JqZWN0IGZyb20gdm0sIGJlaW5nIHRoYXQga2luZCBvZiB0eXBlLWNoZWNraW5nIHdyb25nbHkgZmFpbC5cbiAgICpcbiAgICogSXQgd2FzIGNoYW5nZWQgdG8gdGhlIGN1cnJlbnQgaW1wbGVtZW50YXRpb24gc2luY2UgaXQncyByZXNpbGllbnQgdG8gc2VyaWFsaXphdGlvbi5cbiAgICovXG4gIHJldHVybiBwcm90b3R5cGUgPT09IG51bGwgfHwgcHJvdG90eXBlLmhhc093blByb3BlcnR5KCdpc1Byb3RvdHlwZU9mJylcbn1cbiJdLCJuYW1lcyI6WyJnZXRPYmplY3RDbGFzc0xhYmVsIiwiaXNQbGFpbk9iamVjdCIsInZhbHVlIiwiT2JqZWN0IiwicHJvdG90eXBlIiwidG9TdHJpbmciLCJjYWxsIiwiZ2V0UHJvdG90eXBlT2YiLCJoYXNPd25Qcm9wZXJ0eSJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(pages-dir-browser)/./node_modules/next/dist/shared/lib/is-plain-object.js\n")); - -/***/ }), - -/***/ "(pages-dir-browser)/./node_modules/next/dist/shared/lib/lazy-dynamic/bailout-to-csr.js": -/*!**************************************************************************!*\ - !*** ./node_modules/next/dist/shared/lib/lazy-dynamic/bailout-to-csr.js ***! - \**************************************************************************/ -/***/ ((module, exports, __webpack_require__) => { - -"use strict"; -eval(__webpack_require__.ts("// This has to be a shared module which is shared between client component error boundary and dynamic component\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n BailoutToCSRError: function() {\n return BailoutToCSRError;\n },\n isBailoutToCSRError: function() {\n return isBailoutToCSRError;\n }\n});\nconst BAILOUT_TO_CSR = 'BAILOUT_TO_CLIENT_SIDE_RENDERING';\nclass BailoutToCSRError extends Error {\n constructor(reason){\n super(\"Bail out to client-side rendering: \" + reason), this.reason = reason, this.digest = BAILOUT_TO_CSR;\n }\n}\nfunction isBailoutToCSRError(err) {\n if (typeof err !== 'object' || err === null || !('digest' in err)) {\n return false;\n }\n return err.digest === BAILOUT_TO_CSR;\n} //# sourceMappingURL=bailout-to-csr.js.map\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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3Qvc2hhcmVkL2xpYi9sYXp5LWR5bmFtaWMvYmFpbG91dC10by1jc3IuanMiLCJtYXBwaW5ncyI6IkFBQUEsK0dBQStHOzs7Ozs7Ozs7Ozs7O0lBSWxHQSxpQkFBaUI7ZUFBakJBOztJQVNHQyxtQkFBbUI7ZUFBbkJBOzs7QUFaaEIsTUFBTUMsaUJBQWlCO0FBR2hCLE1BQU1GLDBCQUEwQkc7SUFHckNDLFlBQTRCQyxNQUFjLENBQUU7UUFDMUMsS0FBSyxDQUFFLHdDQUFxQ0EsU0FBQUEsSUFBQUEsQ0FEbEJBLE1BQUFBLEdBQUFBLFFBQUFBLElBQUFBLENBRlpDLE1BQUFBLEdBQVNKO0lBSXpCO0FBQ0Y7QUFHTyxTQUFTRCxvQkFBb0JNLEdBQVk7SUFDOUMsSUFBSSxPQUFPQSxRQUFRLFlBQVlBLFFBQVEsUUFBUSxDQUFFLGFBQVlBLEdBQUFBLENBQUUsRUFBSTtRQUNqRSxPQUFPO0lBQ1Q7SUFFQSxPQUFPQSxJQUFJRCxNQUFNLEtBQUtKO0FBQ3hCIiwic291cmNlcyI6WyJEOlxcc3JjXFxzaGFyZWRcXGxpYlxcbGF6eS1keW5hbWljXFxiYWlsb3V0LXRvLWNzci50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvLyBUaGlzIGhhcyB0byBiZSBhIHNoYXJlZCBtb2R1bGUgd2hpY2ggaXMgc2hhcmVkIGJldHdlZW4gY2xpZW50IGNvbXBvbmVudCBlcnJvciBib3VuZGFyeSBhbmQgZHluYW1pYyBjb21wb25lbnRcbmNvbnN0IEJBSUxPVVRfVE9fQ1NSID0gJ0JBSUxPVVRfVE9fQ0xJRU5UX1NJREVfUkVOREVSSU5HJ1xuXG4vKiogQW4gZXJyb3IgdGhhdCBzaG91bGQgYmUgdGhyb3duIHdoZW4gd2Ugd2FudCB0byBiYWlsIG91dCB0byBjbGllbnQtc2lkZSByZW5kZXJpbmcuICovXG5leHBvcnQgY2xhc3MgQmFpbG91dFRvQ1NSRXJyb3IgZXh0ZW5kcyBFcnJvciB7XG4gIHB1YmxpYyByZWFkb25seSBkaWdlc3QgPSBCQUlMT1VUX1RPX0NTUlxuXG4gIGNvbnN0cnVjdG9yKHB1YmxpYyByZWFkb25seSByZWFzb246IHN0cmluZykge1xuICAgIHN1cGVyKGBCYWlsIG91dCB0byBjbGllbnQtc2lkZSByZW5kZXJpbmc6ICR7cmVhc29ufWApXG4gIH1cbn1cblxuLyoqIENoZWNrcyBpZiBhIHBhc3NlZCBhcmd1bWVudCBpcyBhbiBlcnJvciB0aGF0IGlzIHRocm93biBpZiB3ZSB3YW50IHRvIGJhaWwgb3V0IHRvIGNsaWVudC1zaWRlIHJlbmRlcmluZy4gKi9cbmV4cG9ydCBmdW5jdGlvbiBpc0JhaWxvdXRUb0NTUkVycm9yKGVycjogdW5rbm93bik6IGVyciBpcyBCYWlsb3V0VG9DU1JFcnJvciB7XG4gIGlmICh0eXBlb2YgZXJyICE9PSAnb2JqZWN0JyB8fCBlcnIgPT09IG51bGwgfHwgISgnZGlnZXN0JyBpbiBlcnIpKSB7XG4gICAgcmV0dXJuIGZhbHNlXG4gIH1cblxuICByZXR1cm4gZXJyLmRpZ2VzdCA9PT0gQkFJTE9VVF9UT19DU1Jcbn1cbiJdLCJuYW1lcyI6WyJCYWlsb3V0VG9DU1JFcnJvciIsImlzQmFpbG91dFRvQ1NSRXJyb3IiLCJCQUlMT1VUX1RPX0NTUiIsIkVycm9yIiwiY29uc3RydWN0b3IiLCJyZWFzb24iLCJkaWdlc3QiLCJlcnIiXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(pages-dir-browser)/./node_modules/next/dist/shared/lib/lazy-dynamic/bailout-to-csr.js\n")); - -/***/ }), - -/***/ "(pages-dir-browser)/./node_modules/next/dist/shared/lib/mitt.js": -/*!***************************************************!*\ - !*** ./node_modules/next/dist/shared/lib/mitt.js ***! - \***************************************************/ -/***/ ((module, exports, __webpack_require__) => { - -"use strict"; -eval(__webpack_require__.ts("/*\nMIT License\n\nCopyright (c) Jason Miller (https://jasonformat.com/)\n\nPermission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the \"Software\"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n*/ // This file is based on https://github.com/developit/mitt/blob/v1.1.3/src/index.js\n// It's been edited for the needs of this script\n// See the LICENSE at the top of the file\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"default\", ({\n enumerable: true,\n get: function() {\n return mitt;\n }\n}));\nfunction mitt() {\n const all = Object.create(null);\n return {\n on (type, handler) {\n ;\n (all[type] || (all[type] = [])).push(handler);\n },\n off (type, handler) {\n if (all[type]) {\n all[type].splice(all[type].indexOf(handler) >>> 0, 1);\n }\n },\n emit (type) {\n for(var _len = arguments.length, evts = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++){\n evts[_key - 1] = arguments[_key];\n }\n // eslint-disable-next-line array-callback-return\n ;\n (all[type] || []).slice().map((handler)=>{\n handler(...evts);\n });\n }\n };\n} //# sourceMappingURL=mitt.js.map\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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3Qvc2hhcmVkL2xpYi9taXR0LmpzIiwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7O0FBVUEsR0FFQSxtRkFBbUY7QUFDbkYsZ0RBQWdEO0FBQ2hELHlDQUF5Qzs7Ozs7MkNBVXpDOzs7ZUFBd0JBOzs7QUFBVCxTQUFTQTtJQUN0QixNQUFNQyxNQUFrQ0MsT0FBT0MsTUFBTSxDQUFDO0lBRXRELE9BQU87UUFDTEMsSUFBR0MsSUFBWSxFQUFFQyxPQUFnQjs7WUFDN0JMLElBQUcsQ0FBQ0ksS0FBSyxJQUFLSixDQUFBQSxHQUFHLENBQUNJLEtBQUssR0FBRyxHQUFDLENBQUMsQ0FBR0UsSUFBSSxDQUFDRDtRQUN4QztRQUVBRSxLQUFJSCxJQUFZLEVBQUVDLE9BQWdCO1lBQ2hDLElBQUlMLEdBQUcsQ0FBQ0ksS0FBSyxFQUFFO2dCQUNiSixHQUFHLENBQUNJLEtBQUssQ0FBQ0ksTUFBTSxDQUFDUixHQUFHLENBQUNJLEtBQUssQ0FBQ0ssT0FBTyxDQUFDSixhQUFhLEdBQUc7WUFDckQ7UUFDRjtRQUVBSyxNQUFLTixJQUFZO1lBQUUsaUNBQUdPLE9BQUg7Z0JBQUdBLElBQUFBLENBQUgsMkJBQWM7O1lBQy9CLGlEQUFpRDs7YUFDL0NYLEdBQUcsQ0FBQ0ksS0FBSyxJQUFJLElBQUlRLEtBQUssR0FBR0MsR0FBRyxDQUFDLENBQUNSO2dCQUM5QkEsV0FBV007WUFDYjtRQUNGO0lBQ0Y7QUFDRiIsInNvdXJjZXMiOlsiRDpcXHNyY1xcc2hhcmVkXFxsaWJcXG1pdHQudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLypcbk1JVCBMaWNlbnNlXG5cbkNvcHlyaWdodCAoYykgSmFzb24gTWlsbGVyIChodHRwczovL2phc29uZm9ybWF0LmNvbS8pXG5cblBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhIGNvcHkgb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgXCJTb2Z0d2FyZVwiKSwgdG8gZGVhbCBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yIHNlbGwgY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIFNvZnR3YXJlIGlzIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6XG5cblRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkIGluIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLlxuXG5USEUgU09GVFdBUkUgSVMgUFJPVklERUQgXCJBUyBJU1wiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLCBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOIFRIRSBTT0ZUV0FSRS5cbiovXG5cbi8vIFRoaXMgZmlsZSBpcyBiYXNlZCBvbiBodHRwczovL2dpdGh1Yi5jb20vZGV2ZWxvcGl0L21pdHQvYmxvYi92MS4xLjMvc3JjL2luZGV4LmpzXG4vLyBJdCdzIGJlZW4gZWRpdGVkIGZvciB0aGUgbmVlZHMgb2YgdGhpcyBzY3JpcHRcbi8vIFNlZSB0aGUgTElDRU5TRSBhdCB0aGUgdG9wIG9mIHRoZSBmaWxlXG5cbnR5cGUgSGFuZGxlciA9ICguLi5ldnRzOiBhbnlbXSkgPT4gdm9pZFxuXG5leHBvcnQgdHlwZSBNaXR0RW1pdHRlcjxUPiA9IHtcbiAgb24odHlwZTogVCwgaGFuZGxlcjogSGFuZGxlcik6IHZvaWRcbiAgb2ZmKHR5cGU6IFQsIGhhbmRsZXI6IEhhbmRsZXIpOiB2b2lkXG4gIGVtaXQodHlwZTogVCwgLi4uZXZ0czogYW55W10pOiB2b2lkXG59XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIG1pdHQoKTogTWl0dEVtaXR0ZXI8c3RyaW5nPiB7XG4gIGNvbnN0IGFsbDogeyBbczogc3RyaW5nXTogSGFuZGxlcltdIH0gPSBPYmplY3QuY3JlYXRlKG51bGwpXG5cbiAgcmV0dXJuIHtcbiAgICBvbih0eXBlOiBzdHJpbmcsIGhhbmRsZXI6IEhhbmRsZXIpIHtcbiAgICAgIDsoYWxsW3R5cGVdIHx8IChhbGxbdHlwZV0gPSBbXSkpLnB1c2goaGFuZGxlcilcbiAgICB9LFxuXG4gICAgb2ZmKHR5cGU6IHN0cmluZywgaGFuZGxlcjogSGFuZGxlcikge1xuICAgICAgaWYgKGFsbFt0eXBlXSkge1xuICAgICAgICBhbGxbdHlwZV0uc3BsaWNlKGFsbFt0eXBlXS5pbmRleE9mKGhhbmRsZXIpID4+PiAwLCAxKVxuICAgICAgfVxuICAgIH0sXG5cbiAgICBlbWl0KHR5cGU6IHN0cmluZywgLi4uZXZ0czogYW55W10pIHtcbiAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBhcnJheS1jYWxsYmFjay1yZXR1cm5cbiAgICAgIDsoYWxsW3R5cGVdIHx8IFtdKS5zbGljZSgpLm1hcCgoaGFuZGxlcjogSGFuZGxlcikgPT4ge1xuICAgICAgICBoYW5kbGVyKC4uLmV2dHMpXG4gICAgICB9KVxuICAgIH0sXG4gIH1cbn1cbiJdLCJuYW1lcyI6WyJtaXR0IiwiYWxsIiwiT2JqZWN0IiwiY3JlYXRlIiwib24iLCJ0eXBlIiwiaGFuZGxlciIsInB1c2giLCJvZmYiLCJzcGxpY2UiLCJpbmRleE9mIiwiZW1pdCIsImV2dHMiLCJzbGljZSIsIm1hcCJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(pages-dir-browser)/./node_modules/next/dist/shared/lib/mitt.js\n")); - -/***/ }), - -/***/ "(pages-dir-browser)/./node_modules/next/dist/shared/lib/modern-browserslist-target.js": -/*!*************************************************************************!*\ - !*** ./node_modules/next/dist/shared/lib/modern-browserslist-target.js ***! - \*************************************************************************/ -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { - -"use strict"; -eval(__webpack_require__.ts("// Note: This file is JS because it's used by the taskfile-swc.js file, which is JS.\n// Keep file changes in sync with the corresponding `.d.ts` files.\n/**\n * These are the browser versions that support all of the following:\n * static import: https://caniuse.com/es6-module\n * dynamic import: https://caniuse.com/es6-module-dynamic-import\n * import.meta: https://caniuse.com/mdn-javascript_operators_import_meta\n */ \nconst MODERN_BROWSERSLIST_TARGET = [\n 'chrome 64',\n 'edge 79',\n 'firefox 67',\n 'opera 51',\n 'safari 12'\n];\nmodule.exports = MODERN_BROWSERSLIST_TARGET; //# sourceMappingURL=modern-browserslist-target.js.map\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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3Qvc2hhcmVkL2xpYi9tb2Rlcm4tYnJvd3NlcnNsaXN0LXRhcmdldC5qcyIsIm1hcHBpbmdzIjoiQUFBQSxvRkFBb0Y7QUFDcEYsa0VBQWtFO0FBQ2xFOzs7OztDQUtDO0FBQ0QsTUFBTUEsNkJBQTZCO0lBQ2pDO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7Q0FDRDtBQUVEQyxPQUFPQyxPQUFPLEdBQUdGIiwic291cmNlcyI6WyJEOlxcc3JjXFxzaGFyZWRcXGxpYlxcbW9kZXJuLWJyb3dzZXJzbGlzdC10YXJnZXQuanMiXSwic291cmNlc0NvbnRlbnQiOlsiLy8gTm90ZTogVGhpcyBmaWxlIGlzIEpTIGJlY2F1c2UgaXQncyB1c2VkIGJ5IHRoZSB0YXNrZmlsZS1zd2MuanMgZmlsZSwgd2hpY2ggaXMgSlMuXG4vLyBLZWVwIGZpbGUgY2hhbmdlcyBpbiBzeW5jIHdpdGggdGhlIGNvcnJlc3BvbmRpbmcgYC5kLnRzYCBmaWxlcy5cbi8qKlxuICogVGhlc2UgYXJlIHRoZSBicm93c2VyIHZlcnNpb25zIHRoYXQgc3VwcG9ydCBhbGwgb2YgdGhlIGZvbGxvd2luZzpcbiAqIHN0YXRpYyBpbXBvcnQ6IGh0dHBzOi8vY2FuaXVzZS5jb20vZXM2LW1vZHVsZVxuICogZHluYW1pYyBpbXBvcnQ6IGh0dHBzOi8vY2FuaXVzZS5jb20vZXM2LW1vZHVsZS1keW5hbWljLWltcG9ydFxuICogaW1wb3J0Lm1ldGE6IGh0dHBzOi8vY2FuaXVzZS5jb20vbWRuLWphdmFzY3JpcHRfb3BlcmF0b3JzX2ltcG9ydF9tZXRhXG4gKi9cbmNvbnN0IE1PREVSTl9CUk9XU0VSU0xJU1RfVEFSR0VUID0gW1xuICAnY2hyb21lIDY0JyxcbiAgJ2VkZ2UgNzknLFxuICAnZmlyZWZveCA2NycsXG4gICdvcGVyYSA1MScsXG4gICdzYWZhcmkgMTInLFxuXVxuXG5tb2R1bGUuZXhwb3J0cyA9IE1PREVSTl9CUk9XU0VSU0xJU1RfVEFSR0VUXG4iXSwibmFtZXMiOlsiTU9ERVJOX0JST1dTRVJTTElTVF9UQVJHRVQiLCJtb2R1bGUiLCJleHBvcnRzIl0sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(pages-dir-browser)/./node_modules/next/dist/shared/lib/modern-browserslist-target.js\n")); - -/***/ }), - -/***/ "(pages-dir-browser)/./node_modules/next/dist/shared/lib/normalized-asset-prefix.js": -/*!**********************************************************************!*\ - !*** ./node_modules/next/dist/shared/lib/normalized-asset-prefix.js ***! - \**********************************************************************/ -/***/ ((module, exports, __webpack_require__) => { - -"use strict"; -eval(__webpack_require__.ts("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"normalizedAssetPrefix\", ({\n enumerable: true,\n get: function() {\n return normalizedAssetPrefix;\n }\n}));\nfunction normalizedAssetPrefix(assetPrefix) {\n // remove all leading slashes and trailing slashes\n const escapedAssetPrefix = (assetPrefix == null ? void 0 : assetPrefix.replace(/^\\/+|\\/+$/g, '')) || false;\n // if an assetPrefix was '/', we return empty string\n // because it could be an unnecessary trailing slash\n if (!escapedAssetPrefix) {\n return '';\n }\n if (URL.canParse(escapedAssetPrefix)) {\n const url = new URL(escapedAssetPrefix).toString();\n return url.endsWith('/') ? url.slice(0, -1) : url;\n }\n // assuming assetPrefix here is a pathname-style,\n // restore the leading slash\n return \"/\" + escapedAssetPrefix;\n} //# sourceMappingURL=normalized-asset-prefix.js.map\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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3Qvc2hhcmVkL2xpYi9ub3JtYWxpemVkLWFzc2V0LXByZWZpeC5qcyIsIm1hcHBpbmdzIjoiOzs7O3lEQUFnQkE7OztlQUFBQTs7O0FBQVQsU0FBU0Esc0JBQXNCQyxXQUErQjtJQUNuRSxrREFBa0Q7SUFDbEQsTUFBTUMscUJBQXFCRCxDQUFBQSxlQUFBQSxPQUFBQSxLQUFBQSxJQUFBQSxZQUFhRSxPQUFPLENBQUMsY0FBYyxRQUFPO0lBRXJFLG9EQUFvRDtJQUNwRCxvREFBb0Q7SUFDcEQsSUFBSSxDQUFDRCxvQkFBb0I7UUFDdkIsT0FBTztJQUNUO0lBRUEsSUFBSUUsSUFBSUMsUUFBUSxDQUFDSCxxQkFBcUI7UUFDcEMsTUFBTUksTUFBTSxJQUFJRixJQUFJRixvQkFBb0JLLFFBQVE7UUFDaEQsT0FBT0QsSUFBSUUsUUFBUSxDQUFDLE9BQU9GLElBQUlHLEtBQUssQ0FBQyxHQUFHLENBQUMsS0FBS0g7SUFDaEQ7SUFFQSxpREFBaUQ7SUFDakQsNEJBQTRCO0lBQzVCLE9BQVEsTUFBR0o7QUFDYiIsInNvdXJjZXMiOlsiRDpcXHNyY1xcc2hhcmVkXFxsaWJcXG5vcm1hbGl6ZWQtYXNzZXQtcHJlZml4LnRzIl0sInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBmdW5jdGlvbiBub3JtYWxpemVkQXNzZXRQcmVmaXgoYXNzZXRQcmVmaXg6IHN0cmluZyB8IHVuZGVmaW5lZCk6IHN0cmluZyB7XG4gIC8vIHJlbW92ZSBhbGwgbGVhZGluZyBzbGFzaGVzIGFuZCB0cmFpbGluZyBzbGFzaGVzXG4gIGNvbnN0IGVzY2FwZWRBc3NldFByZWZpeCA9IGFzc2V0UHJlZml4Py5yZXBsYWNlKC9eXFwvK3xcXC8rJC9nLCAnJykgfHwgZmFsc2VcblxuICAvLyBpZiBhbiBhc3NldFByZWZpeCB3YXMgJy8nLCB3ZSByZXR1cm4gZW1wdHkgc3RyaW5nXG4gIC8vIGJlY2F1c2UgaXQgY291bGQgYmUgYW4gdW5uZWNlc3NhcnkgdHJhaWxpbmcgc2xhc2hcbiAgaWYgKCFlc2NhcGVkQXNzZXRQcmVmaXgpIHtcbiAgICByZXR1cm4gJydcbiAgfVxuXG4gIGlmIChVUkwuY2FuUGFyc2UoZXNjYXBlZEFzc2V0UHJlZml4KSkge1xuICAgIGNvbnN0IHVybCA9IG5ldyBVUkwoZXNjYXBlZEFzc2V0UHJlZml4KS50b1N0cmluZygpXG4gICAgcmV0dXJuIHVybC5lbmRzV2l0aCgnLycpID8gdXJsLnNsaWNlKDAsIC0xKSA6IHVybFxuICB9XG5cbiAgLy8gYXNzdW1pbmcgYXNzZXRQcmVmaXggaGVyZSBpcyBhIHBhdGhuYW1lLXN0eWxlLFxuICAvLyByZXN0b3JlIHRoZSBsZWFkaW5nIHNsYXNoXG4gIHJldHVybiBgLyR7ZXNjYXBlZEFzc2V0UHJlZml4fWBcbn1cbiJdLCJuYW1lcyI6WyJub3JtYWxpemVkQXNzZXRQcmVmaXgiLCJhc3NldFByZWZpeCIsImVzY2FwZWRBc3NldFByZWZpeCIsInJlcGxhY2UiLCJVUkwiLCJjYW5QYXJzZSIsInVybCIsInRvU3RyaW5nIiwiZW5kc1dpdGgiLCJzbGljZSJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(pages-dir-browser)/./node_modules/next/dist/shared/lib/normalized-asset-prefix.js\n")); - -/***/ }), - -/***/ "(pages-dir-browser)/./node_modules/next/dist/shared/lib/page-path/denormalize-page-path.js": -/*!******************************************************************************!*\ - !*** ./node_modules/next/dist/shared/lib/page-path/denormalize-page-path.js ***! - \******************************************************************************/ -/***/ ((module, exports, __webpack_require__) => { - -"use strict"; -eval(__webpack_require__.ts("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"denormalizePagePath\", ({\n enumerable: true,\n get: function() {\n return denormalizePagePath;\n }\n}));\nconst _utils = __webpack_require__(/*! ../router/utils */ \"(pages-dir-browser)/./node_modules/next/dist/shared/lib/router/utils/index.js\");\nconst _normalizepathsep = __webpack_require__(/*! ./normalize-path-sep */ \"(pages-dir-browser)/./node_modules/next/dist/shared/lib/page-path/normalize-path-sep.js\");\nfunction denormalizePagePath(page) {\n let _page = (0, _normalizepathsep.normalizePathSep)(page);\n return _page.startsWith('/index/') && !(0, _utils.isDynamicRoute)(_page) ? _page.slice(6) : _page !== '/index' ? _page : '/';\n} //# sourceMappingURL=denormalize-page-path.js.map\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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3Qvc2hhcmVkL2xpYi9wYWdlLXBhdGgvZGVub3JtYWxpemUtcGFnZS1wYXRoLmpzIiwibWFwcGluZ3MiOiI7Ozs7dURBV2dCQTs7O2VBQUFBOzs7bUNBWGU7OENBQ0U7QUFVMUIsU0FBU0Esb0JBQW9CQyxJQUFZO0lBQzlDLElBQUlDLFFBQVFDLENBQUFBLEdBQUFBLGtCQUFBQSxnQkFBQUEsRUFBaUJGO0lBQzdCLE9BQU9DLE1BQU1FLFVBQVUsQ0FBQyxjQUFjLENBQUNDLENBQUFBLEdBQUFBLE9BQUFBLGNBQUFBLEVBQWVILFNBQ2xEQSxNQUFNSSxLQUFLLENBQUMsS0FDWkosVUFBVSxXQUNSQSxRQUNBO0FBQ1IiLCJzb3VyY2VzIjpbIkQ6XFxzcmNcXHNoYXJlZFxcbGliXFxwYWdlLXBhdGhcXGRlbm9ybWFsaXplLXBhZ2UtcGF0aC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBpc0R5bmFtaWNSb3V0ZSB9IGZyb20gJy4uL3JvdXRlci91dGlscydcbmltcG9ydCB7IG5vcm1hbGl6ZVBhdGhTZXAgfSBmcm9tICcuL25vcm1hbGl6ZS1wYXRoLXNlcCdcblxuLyoqXG4gKiBQZXJmb3JtcyB0aGUgb3Bwb3NpdGUgdHJhbnNmb3JtYXRpb24gb2YgYG5vcm1hbGl6ZVBhZ2VQYXRoYC4gTm90ZSB0aGF0XG4gKiB0aGlzIGZ1bmN0aW9uIGlzIG5vdCBpZGVtcG90ZW50IGVpdGhlciBpbiBjYXNlcyB3aGVyZSB0aGVyZSBhcmUgbXVsdGlwbGVcbiAqIGxlYWRpbmcgYC9pbmRleGAgZm9yIHRoZSBwYWdlLiBFeGFtcGxlczpcbiAqICAtIGAvaW5kZXhgIC0+IGAvYFxuICogIC0gYC9pbmRleC9mb29gIC0+IGAvZm9vYFxuICogIC0gYC9pbmRleC9pbmRleGAgLT4gYC9pbmRleGBcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGRlbm9ybWFsaXplUGFnZVBhdGgocGFnZTogc3RyaW5nKSB7XG4gIGxldCBfcGFnZSA9IG5vcm1hbGl6ZVBhdGhTZXAocGFnZSlcbiAgcmV0dXJuIF9wYWdlLnN0YXJ0c1dpdGgoJy9pbmRleC8nKSAmJiAhaXNEeW5hbWljUm91dGUoX3BhZ2UpXG4gICAgPyBfcGFnZS5zbGljZSg2KVxuICAgIDogX3BhZ2UgIT09ICcvaW5kZXgnXG4gICAgICA/IF9wYWdlXG4gICAgICA6ICcvJ1xufVxuIl0sIm5hbWVzIjpbImRlbm9ybWFsaXplUGFnZVBhdGgiLCJwYWdlIiwiX3BhZ2UiLCJub3JtYWxpemVQYXRoU2VwIiwic3RhcnRzV2l0aCIsImlzRHluYW1pY1JvdXRlIiwic2xpY2UiXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(pages-dir-browser)/./node_modules/next/dist/shared/lib/page-path/denormalize-page-path.js\n")); - -/***/ }), - -/***/ "(pages-dir-browser)/./node_modules/next/dist/shared/lib/page-path/ensure-leading-slash.js": -/*!*****************************************************************************!*\ - !*** ./node_modules/next/dist/shared/lib/page-path/ensure-leading-slash.js ***! - \*****************************************************************************/ -/***/ ((module, exports, __webpack_require__) => { - -"use strict"; -eval(__webpack_require__.ts("/**\n * For a given page path, this function ensures that there is a leading slash.\n * If there is not a leading slash, one is added, otherwise it is noop.\n */ \nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"ensureLeadingSlash\", ({\n enumerable: true,\n get: function() {\n return ensureLeadingSlash;\n }\n}));\nfunction ensureLeadingSlash(path) {\n return path.startsWith('/') ? path : \"/\" + path;\n} //# sourceMappingURL=ensure-leading-slash.js.map\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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3Qvc2hhcmVkL2xpYi9wYWdlLXBhdGgvZW5zdXJlLWxlYWRpbmctc2xhc2guanMiLCJtYXBwaW5ncyI6IkFBQUE7OztDQUdDOzs7O3NEQUNlQTs7O2VBQUFBOzs7QUFBVCxTQUFTQSxtQkFBbUJDLElBQVk7SUFDN0MsT0FBT0EsS0FBS0MsVUFBVSxDQUFDLE9BQU9ELE9BQVEsTUFBR0E7QUFDM0MiLCJzb3VyY2VzIjpbIkQ6XFxzcmNcXHNoYXJlZFxcbGliXFxwYWdlLXBhdGhcXGVuc3VyZS1sZWFkaW5nLXNsYXNoLnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogRm9yIGEgZ2l2ZW4gcGFnZSBwYXRoLCB0aGlzIGZ1bmN0aW9uIGVuc3VyZXMgdGhhdCB0aGVyZSBpcyBhIGxlYWRpbmcgc2xhc2guXG4gKiBJZiB0aGVyZSBpcyBub3QgYSBsZWFkaW5nIHNsYXNoLCBvbmUgaXMgYWRkZWQsIG90aGVyd2lzZSBpdCBpcyBub29wLlxuICovXG5leHBvcnQgZnVuY3Rpb24gZW5zdXJlTGVhZGluZ1NsYXNoKHBhdGg6IHN0cmluZykge1xuICByZXR1cm4gcGF0aC5zdGFydHNXaXRoKCcvJykgPyBwYXRoIDogYC8ke3BhdGh9YFxufVxuIl0sIm5hbWVzIjpbImVuc3VyZUxlYWRpbmdTbGFzaCIsInBhdGgiLCJzdGFydHNXaXRoIl0sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(pages-dir-browser)/./node_modules/next/dist/shared/lib/page-path/ensure-leading-slash.js\n")); - -/***/ }), - -/***/ "(pages-dir-browser)/./node_modules/next/dist/shared/lib/page-path/normalize-path-sep.js": -/*!***************************************************************************!*\ - !*** ./node_modules/next/dist/shared/lib/page-path/normalize-path-sep.js ***! - \***************************************************************************/ -/***/ ((module, exports, __webpack_require__) => { - -"use strict"; -eval(__webpack_require__.ts("/**\n * For a given page path, this function ensures that there is no backslash\n * escaping slashes in the path. Example:\n * - `foo\\/bar\\/baz` -> `foo/bar/baz`\n */ \nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"normalizePathSep\", ({\n enumerable: true,\n get: function() {\n return normalizePathSep;\n }\n}));\nfunction normalizePathSep(path) {\n return path.replace(/\\\\/g, '/');\n} //# sourceMappingURL=normalize-path-sep.js.map\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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3Qvc2hhcmVkL2xpYi9wYWdlLXBhdGgvbm9ybWFsaXplLXBhdGgtc2VwLmpzIiwibWFwcGluZ3MiOiJBQUFBOzs7O0NBSUM7Ozs7b0RBQ2VBOzs7ZUFBQUE7OztBQUFULFNBQVNBLGlCQUFpQkMsSUFBWTtJQUMzQyxPQUFPQSxLQUFLQyxPQUFPLENBQUMsT0FBTztBQUM3QiIsInNvdXJjZXMiOlsiRDpcXHNyY1xcc2hhcmVkXFxsaWJcXHBhZ2UtcGF0aFxcbm9ybWFsaXplLXBhdGgtc2VwLnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogRm9yIGEgZ2l2ZW4gcGFnZSBwYXRoLCB0aGlzIGZ1bmN0aW9uIGVuc3VyZXMgdGhhdCB0aGVyZSBpcyBubyBiYWNrc2xhc2hcbiAqIGVzY2FwaW5nIHNsYXNoZXMgaW4gdGhlIHBhdGguIEV4YW1wbGU6XG4gKiAgLSBgZm9vXFwvYmFyXFwvYmF6YCAtPiBgZm9vL2Jhci9iYXpgXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBub3JtYWxpemVQYXRoU2VwKHBhdGg6IHN0cmluZyk6IHN0cmluZyB7XG4gIHJldHVybiBwYXRoLnJlcGxhY2UoL1xcXFwvZywgJy8nKVxufVxuIl0sIm5hbWVzIjpbIm5vcm1hbGl6ZVBhdGhTZXAiLCJwYXRoIiwicmVwbGFjZSJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(pages-dir-browser)/./node_modules/next/dist/shared/lib/page-path/normalize-path-sep.js\n")); - -/***/ }), - -/***/ "(pages-dir-browser)/./node_modules/next/dist/shared/lib/router-context.shared-runtime.js": -/*!****************************************************************************!*\ - !*** ./node_modules/next/dist/shared/lib/router-context.shared-runtime.js ***! - \****************************************************************************/ -/***/ ((module, exports, __webpack_require__) => { - -"use strict"; -eval(__webpack_require__.ts("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"RouterContext\", ({\n enumerable: true,\n get: function() {\n return RouterContext;\n }\n}));\nconst _interop_require_default = __webpack_require__(/*! @swc/helpers/_/_interop_require_default */ \"(pages-dir-browser)/./node_modules/@swc/helpers/esm/_interop_require_default.js\");\nconst _react = /*#__PURE__*/ _interop_require_default._(__webpack_require__(/*! react */ \"(pages-dir-browser)/./node_modules/react/index.js\"));\nconst RouterContext = _react.default.createContext(null);\nif (true) {\n RouterContext.displayName = 'RouterContext';\n} //# sourceMappingURL=router-context.shared-runtime.js.map\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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3Qvc2hhcmVkL2xpYi9yb3V0ZXItY29udGV4dC5zaGFyZWQtcnVudGltZS5qcyIsIm1hcHBpbmdzIjoiOzs7O2lEQUdhQTs7O2VBQUFBOzs7OzRFQUhLO0FBR1gsTUFBTUEsZ0JBQWdCQyxPQUFBQSxPQUFLLENBQUNDLGFBQWEsQ0FBb0I7QUFFcEUsSUFBSUMsSUFBb0IsRUFBbUI7SUFDekNILGNBQWNNLFdBQVcsR0FBRztBQUM5QiIsInNvdXJjZXMiOlsiRDpcXHNyY1xcc2hhcmVkXFxsaWJcXHJvdXRlci1jb250ZXh0LnNoYXJlZC1ydW50aW1lLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCdcbmltcG9ydCB0eXBlIHsgTmV4dFJvdXRlciB9IGZyb20gJy4vcm91dGVyL3JvdXRlcidcblxuZXhwb3J0IGNvbnN0IFJvdXRlckNvbnRleHQgPSBSZWFjdC5jcmVhdGVDb250ZXh0PE5leHRSb3V0ZXIgfCBudWxsPihudWxsKVxuXG5pZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJykge1xuICBSb3V0ZXJDb250ZXh0LmRpc3BsYXlOYW1lID0gJ1JvdXRlckNvbnRleHQnXG59XG4iXSwibmFtZXMiOlsiUm91dGVyQ29udGV4dCIsIlJlYWN0IiwiY3JlYXRlQ29udGV4dCIsInByb2Nlc3MiLCJlbnYiLCJOT0RFX0VOViIsImRpc3BsYXlOYW1lIl0sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(pages-dir-browser)/./node_modules/next/dist/shared/lib/router-context.shared-runtime.js\n")); - -/***/ }), - -/***/ "(pages-dir-browser)/./node_modules/next/dist/shared/lib/router/adapters.js": -/*!**************************************************************!*\ - !*** ./node_modules/next/dist/shared/lib/router/adapters.js ***! - \**************************************************************/ -/***/ ((module, exports, __webpack_require__) => { - -"use strict"; -eval(__webpack_require__.ts("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n PathnameContextProviderAdapter: function() {\n return PathnameContextProviderAdapter;\n },\n adaptForAppRouterInstance: function() {\n return adaptForAppRouterInstance;\n },\n adaptForPathParams: function() {\n return adaptForPathParams;\n },\n adaptForSearchParams: function() {\n return adaptForSearchParams;\n }\n});\nconst _interop_require_wildcard = __webpack_require__(/*! @swc/helpers/_/_interop_require_wildcard */ \"(pages-dir-browser)/./node_modules/@swc/helpers/esm/_interop_require_wildcard.js\");\nconst _jsxruntime = __webpack_require__(/*! react/jsx-runtime */ \"(pages-dir-browser)/./node_modules/react/jsx-runtime.js\");\nconst _react = /*#__PURE__*/ _interop_require_wildcard._(__webpack_require__(/*! react */ \"(pages-dir-browser)/./node_modules/react/index.js\"));\nconst _hooksclientcontextsharedruntime = __webpack_require__(/*! ../hooks-client-context.shared-runtime */ \"(pages-dir-browser)/./node_modules/next/dist/shared/lib/hooks-client-context.shared-runtime.js\");\nconst _utils = __webpack_require__(/*! ./utils */ \"(pages-dir-browser)/./node_modules/next/dist/shared/lib/router/utils/index.js\");\nconst _aspathtosearchparams = __webpack_require__(/*! ./utils/as-path-to-search-params */ \"(pages-dir-browser)/./node_modules/next/dist/shared/lib/router/utils/as-path-to-search-params.js\");\nconst _routeregex = __webpack_require__(/*! ./utils/route-regex */ \"(pages-dir-browser)/./node_modules/next/dist/shared/lib/router/utils/route-regex.js\");\nfunction adaptForAppRouterInstance(pagesRouter) {\n return {\n back () {\n pagesRouter.back();\n },\n forward () {\n pagesRouter.forward();\n },\n refresh () {\n pagesRouter.reload();\n },\n hmrRefresh () {},\n push (href, param) {\n let { scroll } = param === void 0 ? {} : param;\n void pagesRouter.push(href, undefined, {\n scroll\n });\n },\n replace (href, param) {\n let { scroll } = param === void 0 ? {} : param;\n void pagesRouter.replace(href, undefined, {\n scroll\n });\n },\n prefetch (href) {\n void pagesRouter.prefetch(href);\n }\n };\n}\nfunction adaptForSearchParams(router) {\n if (!router.isReady || !router.query) {\n return new URLSearchParams();\n }\n return (0, _aspathtosearchparams.asPathToSearchParams)(router.asPath);\n}\nfunction adaptForPathParams(router) {\n if (!router.isReady || !router.query) {\n return null;\n }\n const pathParams = {};\n const routeRegex = (0, _routeregex.getRouteRegex)(router.pathname);\n const keys = Object.keys(routeRegex.groups);\n for (const key of keys){\n pathParams[key] = router.query[key];\n }\n return pathParams;\n}\nfunction PathnameContextProviderAdapter(param) {\n let { children, router, ...props } = param;\n const ref = (0, _react.useRef)(props.isAutoExport);\n const value = (0, _react.useMemo)(()=>{\n // isAutoExport is only ever `true` on the first render from the server,\n // so reset it to `false` after we read it for the first time as `true`. If\n // we don't use the value, then we don't need it.\n const isAutoExport = ref.current;\n if (isAutoExport) {\n ref.current = false;\n }\n // When the route is a dynamic route, we need to do more processing to\n // determine if we need to stop showing the pathname.\n if ((0, _utils.isDynamicRoute)(router.pathname)) {\n // When the router is rendering the fallback page, it can't possibly know\n // the path, so return `null` here. Read more about fallback pages over\n // at:\n // https://nextjs.org/docs/api-reference/data-fetching/get-static-paths#fallback-pages\n if (router.isFallback) {\n return null;\n }\n // When `isAutoExport` is true, meaning this is a page page has been\n // automatically statically optimized, and the router is not ready, then\n // we can't know the pathname yet. Read more about automatic static\n // optimization at:\n // https://nextjs.org/docs/advanced-features/automatic-static-optimization\n if (isAutoExport && !router.isReady) {\n return null;\n }\n }\n // The `router.asPath` contains the pathname seen by the browser (including\n // any query strings), so it should have that stripped. Read more about the\n // `asPath` option over at:\n // https://nextjs.org/docs/api-reference/next/router#router-object\n let url;\n try {\n url = new URL(router.asPath, 'http://f');\n } catch (_) {\n // fallback to / for invalid asPath values e.g. //\n return '/';\n }\n return url.pathname;\n }, [\n router.asPath,\n router.isFallback,\n router.isReady,\n router.pathname\n ]);\n return /*#__PURE__*/ (0, _jsxruntime.jsx)(_hooksclientcontextsharedruntime.PathnameContext.Provider, {\n value: value,\n children: children\n });\n} //# sourceMappingURL=adapters.js.map\n_c = PathnameContextProviderAdapter;\nvar _c;\n$RefreshReg$(_c, \"PathnameContextProviderAdapter\");\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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3Qvc2hhcmVkL2xpYi9yb3V0ZXIvYWRhcHRlcnMuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7O0lBb0VnQkEsOEJBQThCO2VBQTlCQTs7SUF6REFDLHlCQUF5QjtlQUF6QkE7O0lBMENBQyxrQkFBa0I7ZUFBbEJBOztJQVZBQyxvQkFBb0I7ZUFBcEJBOzs7Ozs2RUF2Q3VCOzZEQUNQO21DQUNEO2tEQUNNO3dDQUNQO0FBR3ZCLFNBQVNGLDBCQUNkRyxXQUF1QjtJQUV2QixPQUFPO1FBQ0xDO1lBQ0VELFlBQVlDLElBQUk7UUFDbEI7UUFDQUM7WUFDRUYsWUFBWUUsT0FBTztRQUNyQjtRQUNBQztZQUNFSCxZQUFZSSxNQUFNO1FBQ3BCO1FBQ0FDLGVBQWM7UUFDZEMsTUFBS0MsSUFBSSxFQUFFO1lBQUEsTUFBRUMsTUFBTSxFQUFFLEdBQVYsbUJBQWEsQ0FBQyxJQUFkO1lBQ1QsS0FBS1IsWUFBWU0sSUFBSSxDQUFDQyxNQUFNRSxXQUFXO2dCQUFFRDtZQUFPO1FBQ2xEO1FBQ0FFLFNBQVFILElBQUksRUFBRTtZQUFBLE1BQUVDLE1BQU0sRUFBRSxHQUFWLG1CQUFhLENBQUMsSUFBZDtZQUNaLEtBQUtSLFlBQVlVLE9BQU8sQ0FBQ0gsTUFBTUUsV0FBVztnQkFBRUQ7WUFBTztRQUNyRDtRQUNBRyxVQUFTSixJQUFJO1lBQ1gsS0FBS1AsWUFBWVcsUUFBUSxDQUFDSjtRQUM1QjtJQUNGO0FBQ0Y7QUFRTyxTQUFTUixxQkFDZGEsTUFBd0Q7SUFFeEQsSUFBSSxDQUFDQSxPQUFPQyxPQUFPLElBQUksQ0FBQ0QsT0FBT0UsS0FBSyxFQUFFO1FBQ3BDLE9BQU8sSUFBSUM7SUFDYjtJQUVBLE9BQU9DLENBQUFBLEdBQUFBLHNCQUFBQSxvQkFBQUEsRUFBcUJKLE9BQU9LLE1BQU07QUFDM0M7QUFFTyxTQUFTbkIsbUJBQ2RjLE1BQXFFO0lBRXJFLElBQUksQ0FBQ0EsT0FBT0MsT0FBTyxJQUFJLENBQUNELE9BQU9FLEtBQUssRUFBRTtRQUNwQyxPQUFPO0lBQ1Q7SUFDQSxNQUFNSSxhQUFxQixDQUFDO0lBQzVCLE1BQU1DLGFBQWFDLENBQUFBLEdBQUFBLFlBQUFBLGFBQWEsRUFBQ1IsT0FBT1MsUUFBUTtJQUNoRCxNQUFNQyxPQUFPQyxPQUFPRCxJQUFJLENBQUNILFdBQVdLLE1BQU07SUFDMUMsS0FBSyxNQUFNQyxPQUFPSCxLQUFNO1FBQ3RCSixVQUFVLENBQUNPLElBQUksR0FBR2IsT0FBT0UsS0FBSyxDQUFDVyxJQUFJO0lBQ3JDO0lBQ0EsT0FBT1A7QUFDVDtBQUVPLHdDQUF3QyxLQU83QztJQVA2QyxNQUM3Q1EsUUFBUSxFQUNSZCxNQUFNLEVBQ04sR0FBR2UsT0FJSCxHQVA2QztJQVE3QyxNQUFNQyxNQUFNQyxDQUFBQSxHQUFBQSxPQUFBQSxNQUFBQSxFQUFPRixNQUFNRyxZQUFZO0lBQ3JDLE1BQU1DLFFBQVFDLENBQUFBLEdBQUFBLE9BQUFBLE9BQUFBLEVBQVE7UUFDcEIsd0VBQXdFO1FBQ3hFLDJFQUEyRTtRQUMzRSxpREFBaUQ7UUFDakQsTUFBTUYsZUFBZUYsSUFBSUssT0FBTztRQUNoQyxJQUFJSCxjQUFjO1lBQ2hCRixJQUFJSyxPQUFPLEdBQUc7UUFDaEI7UUFFQSxzRUFBc0U7UUFDdEUscURBQXFEO1FBQ3JELElBQUlDLENBQUFBLEdBQUFBLE9BQUFBLGNBQUFBLEVBQWV0QixPQUFPUyxRQUFRLEdBQUc7WUFDbkMseUVBQXlFO1lBQ3pFLHVFQUF1RTtZQUN2RSxNQUFNO1lBQ04sc0ZBQXNGO1lBQ3RGLElBQUlULE9BQU91QixVQUFVLEVBQUU7Z0JBQ3JCLE9BQU87WUFDVDtZQUVBLG9FQUFvRTtZQUNwRSx3RUFBd0U7WUFDeEUsbUVBQW1FO1lBQ25FLG1CQUFtQjtZQUNuQiwwRUFBMEU7WUFDMUUsSUFBSUwsZ0JBQWdCLENBQUNsQixPQUFPQyxPQUFPLEVBQUU7Z0JBQ25DLE9BQU87WUFDVDtRQUNGO1FBRUEsMkVBQTJFO1FBQzNFLDJFQUEyRTtRQUMzRSwyQkFBMkI7UUFDM0Isa0VBQWtFO1FBQ2xFLElBQUl1QjtRQUNKLElBQUk7WUFDRkEsTUFBTSxJQUFJQyxJQUFJekIsT0FBT0ssTUFBTSxFQUFFO1FBQy9CLEVBQUUsT0FBT3FCLEdBQUc7WUFDVixrREFBa0Q7WUFDbEQsT0FBTztRQUNUO1FBRUEsT0FBT0YsSUFBSWYsUUFBUTtJQUNyQixHQUFHO1FBQUNULE9BQU9LLE1BQU07UUFBRUwsT0FBT3VCLFVBQVU7UUFBRXZCLE9BQU9DLE9BQU87UUFBRUQsT0FBT1MsUUFBUTtLQUFDO0lBRXRFLHFCQUNFLHFCQUFDa0IsaUNBQUFBLGVBQWUsQ0FBQ0MsUUFBUTtRQUFDVCxPQUFPQTtrQkFDOUJMOztBQUdQO0tBM0RnQjlCIiwic291cmNlcyI6WyJEOlxcc3JjXFxzaGFyZWRcXGxpYlxccm91dGVyXFxhZGFwdGVycy50c3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBBcHBSb3V0ZXJJbnN0YW5jZSB9IGZyb20gJy4uL2FwcC1yb3V0ZXItY29udGV4dC5zaGFyZWQtcnVudGltZSdcbmltcG9ydCB0eXBlIHsgUGFyYW1zIH0gZnJvbSAnLi4vLi4vLi4vc2VydmVyL3JlcXVlc3QvcGFyYW1zJ1xuaW1wb3J0IHR5cGUgeyBOZXh0Um91dGVyIH0gZnJvbSAnLi9yb3V0ZXInXG5cbmltcG9ydCBSZWFjdCwgeyB1c2VNZW1vLCB1c2VSZWYgfSBmcm9tICdyZWFjdCdcbmltcG9ydCB7IFBhdGhuYW1lQ29udGV4dCB9IGZyb20gJy4uL2hvb2tzLWNsaWVudC1jb250ZXh0LnNoYXJlZC1ydW50aW1lJ1xuaW1wb3J0IHsgaXNEeW5hbWljUm91dGUgfSBmcm9tICcuL3V0aWxzJ1xuaW1wb3J0IHsgYXNQYXRoVG9TZWFyY2hQYXJhbXMgfSBmcm9tICcuL3V0aWxzL2FzLXBhdGgtdG8tc2VhcmNoLXBhcmFtcydcbmltcG9ydCB7IGdldFJvdXRlUmVnZXggfSBmcm9tICcuL3V0aWxzL3JvdXRlLXJlZ2V4J1xuXG4vKiogSXQgYWRhcHRzIGEgUGFnZXMgUm91dGVyIChgTmV4dFJvdXRlcmApIHRvIHRoZSBBcHAgUm91dGVyIEluc3RhbmNlLiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGFkYXB0Rm9yQXBwUm91dGVySW5zdGFuY2UoXG4gIHBhZ2VzUm91dGVyOiBOZXh0Um91dGVyXG4pOiBBcHBSb3V0ZXJJbnN0YW5jZSB7XG4gIHJldHVybiB7XG4gICAgYmFjaygpIHtcbiAgICAgIHBhZ2VzUm91dGVyLmJhY2soKVxuICAgIH0sXG4gICAgZm9yd2FyZCgpIHtcbiAgICAgIHBhZ2VzUm91dGVyLmZvcndhcmQoKVxuICAgIH0sXG4gICAgcmVmcmVzaCgpIHtcbiAgICAgIHBhZ2VzUm91dGVyLnJlbG9hZCgpXG4gICAgfSxcbiAgICBobXJSZWZyZXNoKCkge30sXG4gICAgcHVzaChocmVmLCB7IHNjcm9sbCB9ID0ge30pIHtcbiAgICAgIHZvaWQgcGFnZXNSb3V0ZXIucHVzaChocmVmLCB1bmRlZmluZWQsIHsgc2Nyb2xsIH0pXG4gICAgfSxcbiAgICByZXBsYWNlKGhyZWYsIHsgc2Nyb2xsIH0gPSB7fSkge1xuICAgICAgdm9pZCBwYWdlc1JvdXRlci5yZXBsYWNlKGhyZWYsIHVuZGVmaW5lZCwgeyBzY3JvbGwgfSlcbiAgICB9LFxuICAgIHByZWZldGNoKGhyZWYpIHtcbiAgICAgIHZvaWQgcGFnZXNSb3V0ZXIucHJlZmV0Y2goaHJlZilcbiAgICB9LFxuICB9XG59XG5cbi8qKlxuICogYWRhcHRGb3JTZWFyY2hQYXJhbXMgdHJhbnNmb3JtcyB0aGUgUGFyc2VkVVJMUXVlcnkgaW50byBVUkxTZWFyY2hQYXJhbXMuXG4gKlxuICogQHBhcmFtIHJvdXRlciB0aGUgcm91dGVyIHRoYXQgY29udGFpbnMgdGhlIHF1ZXJ5LlxuICogQHJldHVybnMgdGhlIHNlYXJjaCBwYXJhbXMgaW4gdGhlIFVSTFNlYXJjaFBhcmFtcyBmb3JtYXRcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGFkYXB0Rm9yU2VhcmNoUGFyYW1zKFxuICByb3V0ZXI6IFBpY2s8TmV4dFJvdXRlciwgJ2lzUmVhZHknIHwgJ3F1ZXJ5JyB8ICdhc1BhdGgnPlxuKTogVVJMU2VhcmNoUGFyYW1zIHtcbiAgaWYgKCFyb3V0ZXIuaXNSZWFkeSB8fCAhcm91dGVyLnF1ZXJ5KSB7XG4gICAgcmV0dXJuIG5ldyBVUkxTZWFyY2hQYXJhbXMoKVxuICB9XG5cbiAgcmV0dXJuIGFzUGF0aFRvU2VhcmNoUGFyYW1zKHJvdXRlci5hc1BhdGgpXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBhZGFwdEZvclBhdGhQYXJhbXMoXG4gIHJvdXRlcjogUGljazxOZXh0Um91dGVyLCAnaXNSZWFkeScgfCAncGF0aG5hbWUnIHwgJ3F1ZXJ5JyB8ICdhc1BhdGgnPlxuKTogUGFyYW1zIHwgbnVsbCB7XG4gIGlmICghcm91dGVyLmlzUmVhZHkgfHwgIXJvdXRlci5xdWVyeSkge1xuICAgIHJldHVybiBudWxsXG4gIH1cbiAgY29uc3QgcGF0aFBhcmFtczogUGFyYW1zID0ge31cbiAgY29uc3Qgcm91dGVSZWdleCA9IGdldFJvdXRlUmVnZXgocm91dGVyLnBhdGhuYW1lKVxuICBjb25zdCBrZXlzID0gT2JqZWN0LmtleXMocm91dGVSZWdleC5ncm91cHMpXG4gIGZvciAoY29uc3Qga2V5IG9mIGtleXMpIHtcbiAgICBwYXRoUGFyYW1zW2tleV0gPSByb3V0ZXIucXVlcnlba2V5XSFcbiAgfVxuICByZXR1cm4gcGF0aFBhcmFtc1xufVxuXG5leHBvcnQgZnVuY3Rpb24gUGF0aG5hbWVDb250ZXh0UHJvdmlkZXJBZGFwdGVyKHtcbiAgY2hpbGRyZW4sXG4gIHJvdXRlcixcbiAgLi4ucHJvcHNcbn06IFJlYWN0LlByb3BzV2l0aENoaWxkcmVuPHtcbiAgcm91dGVyOiBQaWNrPE5leHRSb3V0ZXIsICdwYXRobmFtZScgfCAnYXNQYXRoJyB8ICdpc1JlYWR5JyB8ICdpc0ZhbGxiYWNrJz5cbiAgaXNBdXRvRXhwb3J0OiBib29sZWFuXG59Pikge1xuICBjb25zdCByZWYgPSB1c2VSZWYocHJvcHMuaXNBdXRvRXhwb3J0KVxuICBjb25zdCB2YWx1ZSA9IHVzZU1lbW8oKCkgPT4ge1xuICAgIC8vIGlzQXV0b0V4cG9ydCBpcyBvbmx5IGV2ZXIgYHRydWVgIG9uIHRoZSBmaXJzdCByZW5kZXIgZnJvbSB0aGUgc2VydmVyLFxuICAgIC8vIHNvIHJlc2V0IGl0IHRvIGBmYWxzZWAgYWZ0ZXIgd2UgcmVhZCBpdCBmb3IgdGhlIGZpcnN0IHRpbWUgYXMgYHRydWVgLiBJZlxuICAgIC8vIHdlIGRvbid0IHVzZSB0aGUgdmFsdWUsIHRoZW4gd2UgZG9uJ3QgbmVlZCBpdC5cbiAgICBjb25zdCBpc0F1dG9FeHBvcnQgPSByZWYuY3VycmVudFxuICAgIGlmIChpc0F1dG9FeHBvcnQpIHtcbiAgICAgIHJlZi5jdXJyZW50ID0gZmFsc2VcbiAgICB9XG5cbiAgICAvLyBXaGVuIHRoZSByb3V0ZSBpcyBhIGR5bmFtaWMgcm91dGUsIHdlIG5lZWQgdG8gZG8gbW9yZSBwcm9jZXNzaW5nIHRvXG4gICAgLy8gZGV0ZXJtaW5lIGlmIHdlIG5lZWQgdG8gc3RvcCBzaG93aW5nIHRoZSBwYXRobmFtZS5cbiAgICBpZiAoaXNEeW5hbWljUm91dGUocm91dGVyLnBhdGhuYW1lKSkge1xuICAgICAgLy8gV2hlbiB0aGUgcm91dGVyIGlzIHJlbmRlcmluZyB0aGUgZmFsbGJhY2sgcGFnZSwgaXQgY2FuJ3QgcG9zc2libHkga25vd1xuICAgICAgLy8gdGhlIHBhdGgsIHNvIHJldHVybiBgbnVsbGAgaGVyZS4gUmVhZCBtb3JlIGFib3V0IGZhbGxiYWNrIHBhZ2VzIG92ZXJcbiAgICAgIC8vIGF0OlxuICAgICAgLy8gaHR0cHM6Ly9uZXh0anMub3JnL2RvY3MvYXBpLXJlZmVyZW5jZS9kYXRhLWZldGNoaW5nL2dldC1zdGF0aWMtcGF0aHMjZmFsbGJhY2stcGFnZXNcbiAgICAgIGlmIChyb3V0ZXIuaXNGYWxsYmFjaykge1xuICAgICAgICByZXR1cm4gbnVsbFxuICAgICAgfVxuXG4gICAgICAvLyBXaGVuIGBpc0F1dG9FeHBvcnRgIGlzIHRydWUsIG1lYW5pbmcgdGhpcyBpcyBhIHBhZ2UgcGFnZSBoYXMgYmVlblxuICAgICAgLy8gYXV0b21hdGljYWxseSBzdGF0aWNhbGx5IG9wdGltaXplZCwgYW5kIHRoZSByb3V0ZXIgaXMgbm90IHJlYWR5LCB0aGVuXG4gICAgICAvLyB3ZSBjYW4ndCBrbm93IHRoZSBwYXRobmFtZSB5ZXQuIFJlYWQgbW9yZSBhYm91dCBhdXRvbWF0aWMgc3RhdGljXG4gICAgICAvLyBvcHRpbWl6YXRpb24gYXQ6XG4gICAgICAvLyBodHRwczovL25leHRqcy5vcmcvZG9jcy9hZHZhbmNlZC1mZWF0dXJlcy9hdXRvbWF0aWMtc3RhdGljLW9wdGltaXphdGlvblxuICAgICAgaWYgKGlzQXV0b0V4cG9ydCAmJiAhcm91dGVyLmlzUmVhZHkpIHtcbiAgICAgICAgcmV0dXJuIG51bGxcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBUaGUgYHJvdXRlci5hc1BhdGhgIGNvbnRhaW5zIHRoZSBwYXRobmFtZSBzZWVuIGJ5IHRoZSBicm93c2VyIChpbmNsdWRpbmdcbiAgICAvLyBhbnkgcXVlcnkgc3RyaW5ncyksIHNvIGl0IHNob3VsZCBoYXZlIHRoYXQgc3RyaXBwZWQuIFJlYWQgbW9yZSBhYm91dCB0aGVcbiAgICAvLyBgYXNQYXRoYCBvcHRpb24gb3ZlciBhdDpcbiAgICAvLyBodHRwczovL25leHRqcy5vcmcvZG9jcy9hcGktcmVmZXJlbmNlL25leHQvcm91dGVyI3JvdXRlci1vYmplY3RcbiAgICBsZXQgdXJsOiBVUkxcbiAgICB0cnkge1xuICAgICAgdXJsID0gbmV3IFVSTChyb3V0ZXIuYXNQYXRoLCAnaHR0cDovL2YnKVxuICAgIH0gY2F0Y2ggKF8pIHtcbiAgICAgIC8vIGZhbGxiYWNrIHRvIC8gZm9yIGludmFsaWQgYXNQYXRoIHZhbHVlcyBlLmcuIC8vXG4gICAgICByZXR1cm4gJy8nXG4gICAgfVxuXG4gICAgcmV0dXJuIHVybC5wYXRobmFtZVxuICB9LCBbcm91dGVyLmFzUGF0aCwgcm91dGVyLmlzRmFsbGJhY2ssIHJvdXRlci5pc1JlYWR5LCByb3V0ZXIucGF0aG5hbWVdKVxuXG4gIHJldHVybiAoXG4gICAgPFBhdGhuYW1lQ29udGV4dC5Qcm92aWRlciB2YWx1ZT17dmFsdWV9PlxuICAgICAge2NoaWxkcmVufVxuICAgIDwvUGF0aG5hbWVDb250ZXh0LlByb3ZpZGVyPlxuICApXG59XG4iXSwibmFtZXMiOlsiUGF0aG5hbWVDb250ZXh0UHJvdmlkZXJBZGFwdGVyIiwiYWRhcHRGb3JBcHBSb3V0ZXJJbnN0YW5jZSIsImFkYXB0Rm9yUGF0aFBhcmFtcyIsImFkYXB0Rm9yU2VhcmNoUGFyYW1zIiwicGFnZXNSb3V0ZXIiLCJiYWNrIiwiZm9yd2FyZCIsInJlZnJlc2giLCJyZWxvYWQiLCJobXJSZWZyZXNoIiwicHVzaCIsImhyZWYiLCJzY3JvbGwiLCJ1bmRlZmluZWQiLCJyZXBsYWNlIiwicHJlZmV0Y2giLCJyb3V0ZXIiLCJpc1JlYWR5IiwicXVlcnkiLCJVUkxTZWFyY2hQYXJhbXMiLCJhc1BhdGhUb1NlYXJjaFBhcmFtcyIsImFzUGF0aCIsInBhdGhQYXJhbXMiLCJyb3V0ZVJlZ2V4IiwiZ2V0Um91dGVSZWdleCIsInBhdGhuYW1lIiwia2V5cyIsIk9iamVjdCIsImdyb3VwcyIsImtleSIsImNoaWxkcmVuIiwicHJvcHMiLCJyZWYiLCJ1c2VSZWYiLCJpc0F1dG9FeHBvcnQiLCJ2YWx1ZSIsInVzZU1lbW8iLCJjdXJyZW50IiwiaXNEeW5hbWljUm91dGUiLCJpc0ZhbGxiYWNrIiwidXJsIiwiVVJMIiwiXyIsIlBhdGhuYW1lQ29udGV4dCIsIlByb3ZpZGVyIl0sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(pages-dir-browser)/./node_modules/next/dist/shared/lib/router/adapters.js\n")); - -/***/ }), - -/***/ "(pages-dir-browser)/./node_modules/next/dist/shared/lib/router/router.js": -/*!************************************************************!*\ - !*** ./node_modules/next/dist/shared/lib/router/router.js ***! - \************************************************************/ -/***/ ((module, exports, __webpack_require__) => { - -"use strict"; -eval(__webpack_require__.ts("// tslint:disable:no-console\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n createKey: function() {\n return createKey;\n },\n default: function() {\n return Router;\n },\n matchesMiddleware: function() {\n return matchesMiddleware;\n }\n});\nconst _interop_require_default = __webpack_require__(/*! @swc/helpers/_/_interop_require_default */ \"(pages-dir-browser)/./node_modules/@swc/helpers/esm/_interop_require_default.js\");\nconst _interop_require_wildcard = __webpack_require__(/*! @swc/helpers/_/_interop_require_wildcard */ \"(pages-dir-browser)/./node_modules/@swc/helpers/esm/_interop_require_wildcard.js\");\nconst _removetrailingslash = __webpack_require__(/*! ./utils/remove-trailing-slash */ \"(pages-dir-browser)/./node_modules/next/dist/shared/lib/router/utils/remove-trailing-slash.js\");\nconst _routeloader = __webpack_require__(/*! ../../../client/route-loader */ \"(pages-dir-browser)/./node_modules/next/dist/client/route-loader.js\");\nconst _script = __webpack_require__(/*! ../../../client/script */ \"(pages-dir-browser)/./node_modules/next/dist/client/script.js\");\nconst _iserror = /*#__PURE__*/ _interop_require_wildcard._(__webpack_require__(/*! ../../../lib/is-error */ \"(pages-dir-browser)/./node_modules/next/dist/lib/is-error.js\"));\nconst _denormalizepagepath = __webpack_require__(/*! ../page-path/denormalize-page-path */ \"(pages-dir-browser)/./node_modules/next/dist/shared/lib/page-path/denormalize-page-path.js\");\nconst _normalizelocalepath = __webpack_require__(/*! ../i18n/normalize-locale-path */ \"(pages-dir-browser)/./node_modules/next/dist/shared/lib/i18n/normalize-locale-path.js\");\nconst _mitt = /*#__PURE__*/ _interop_require_default._(__webpack_require__(/*! ../mitt */ \"(pages-dir-browser)/./node_modules/next/dist/shared/lib/mitt.js\"));\nconst _utils = __webpack_require__(/*! ../utils */ \"(pages-dir-browser)/./node_modules/next/dist/shared/lib/utils.js\");\nconst _isdynamic = __webpack_require__(/*! ./utils/is-dynamic */ \"(pages-dir-browser)/./node_modules/next/dist/shared/lib/router/utils/is-dynamic.js\");\nconst _parserelativeurl = __webpack_require__(/*! ./utils/parse-relative-url */ \"(pages-dir-browser)/./node_modules/next/dist/shared/lib/router/utils/parse-relative-url.js\");\nconst _routematcher = __webpack_require__(/*! ./utils/route-matcher */ \"(pages-dir-browser)/./node_modules/next/dist/shared/lib/router/utils/route-matcher.js\");\nconst _routeregex = __webpack_require__(/*! ./utils/route-regex */ \"(pages-dir-browser)/./node_modules/next/dist/shared/lib/router/utils/route-regex.js\");\nconst _formaturl = __webpack_require__(/*! ./utils/format-url */ \"(pages-dir-browser)/./node_modules/next/dist/shared/lib/router/utils/format-url.js\");\nconst _detectdomainlocale = __webpack_require__(/*! ../../../client/detect-domain-locale */ \"(pages-dir-browser)/./node_modules/next/dist/client/detect-domain-locale.js\");\nconst _parsepath = __webpack_require__(/*! ./utils/parse-path */ \"(pages-dir-browser)/./node_modules/next/dist/shared/lib/router/utils/parse-path.js\");\nconst _addlocale = __webpack_require__(/*! ../../../client/add-locale */ \"(pages-dir-browser)/./node_modules/next/dist/client/add-locale.js\");\nconst _removelocale = __webpack_require__(/*! ../../../client/remove-locale */ \"(pages-dir-browser)/./node_modules/next/dist/client/remove-locale.js\");\nconst _removebasepath = __webpack_require__(/*! ../../../client/remove-base-path */ \"(pages-dir-browser)/./node_modules/next/dist/client/remove-base-path.js\");\nconst _addbasepath = __webpack_require__(/*! ../../../client/add-base-path */ \"(pages-dir-browser)/./node_modules/next/dist/client/add-base-path.js\");\nconst _hasbasepath = __webpack_require__(/*! ../../../client/has-base-path */ \"(pages-dir-browser)/./node_modules/next/dist/client/has-base-path.js\");\nconst _resolvehref = __webpack_require__(/*! ../../../client/resolve-href */ \"(pages-dir-browser)/./node_modules/next/dist/client/resolve-href.js\");\nconst _isapiroute = __webpack_require__(/*! ../../../lib/is-api-route */ \"(pages-dir-browser)/./node_modules/next/dist/lib/is-api-route.js\");\nconst _getnextpathnameinfo = __webpack_require__(/*! ./utils/get-next-pathname-info */ \"(pages-dir-browser)/./node_modules/next/dist/shared/lib/router/utils/get-next-pathname-info.js\");\nconst _formatnextpathnameinfo = __webpack_require__(/*! ./utils/format-next-pathname-info */ \"(pages-dir-browser)/./node_modules/next/dist/shared/lib/router/utils/format-next-pathname-info.js\");\nconst _comparestates = __webpack_require__(/*! ./utils/compare-states */ \"(pages-dir-browser)/./node_modules/next/dist/shared/lib/router/utils/compare-states.js\");\nconst _islocalurl = __webpack_require__(/*! ./utils/is-local-url */ \"(pages-dir-browser)/./node_modules/next/dist/shared/lib/router/utils/is-local-url.js\");\nconst _isbot = __webpack_require__(/*! ./utils/is-bot */ \"(pages-dir-browser)/./node_modules/next/dist/shared/lib/router/utils/is-bot.js\");\nconst _omit = __webpack_require__(/*! ./utils/omit */ \"(pages-dir-browser)/./node_modules/next/dist/shared/lib/router/utils/omit.js\");\nconst _interpolateas = __webpack_require__(/*! ./utils/interpolate-as */ \"(pages-dir-browser)/./node_modules/next/dist/shared/lib/router/utils/interpolate-as.js\");\nconst _disablesmoothscroll = __webpack_require__(/*! ./utils/disable-smooth-scroll */ \"(pages-dir-browser)/./node_modules/next/dist/shared/lib/router/utils/disable-smooth-scroll.js\");\nconst _constants = __webpack_require__(/*! ../../../lib/constants */ \"(pages-dir-browser)/./node_modules/next/dist/lib/constants.js\");\nlet resolveRewrites;\nif (false) {}\nfunction buildCancellationError() {\n return Object.assign(Object.defineProperty(new Error('Route Cancelled'), \"__NEXT_ERROR_CODE\", {\n value: \"E315\",\n enumerable: false,\n configurable: true\n }), {\n cancelled: true\n });\n}\nasync function matchesMiddleware(options) {\n const matchers = await Promise.resolve(options.router.pageLoader.getMiddleware());\n if (!matchers) return false;\n const { pathname: asPathname } = (0, _parsepath.parsePath)(options.asPath);\n // remove basePath first since path prefix has to be in the order of `/${basePath}/${locale}`\n const cleanedAs = (0, _hasbasepath.hasBasePath)(asPathname) ? (0, _removebasepath.removeBasePath)(asPathname) : asPathname;\n const asWithBasePathAndLocale = (0, _addbasepath.addBasePath)((0, _addlocale.addLocale)(cleanedAs, options.locale));\n // Check only path match on client. Matching \"has\" should be done on server\n // where we can access more info such as headers, HttpOnly cookie, etc.\n return matchers.some((m)=>new RegExp(m.regexp).test(asWithBasePathAndLocale));\n}\nfunction stripOrigin(url) {\n const origin = (0, _utils.getLocationOrigin)();\n return url.startsWith(origin) ? url.substring(origin.length) : url;\n}\nfunction prepareUrlAs(router, url, as) {\n // If url and as provided as an object representation,\n // we'll format them into the string version here.\n let [resolvedHref, resolvedAs] = (0, _resolvehref.resolveHref)(router, url, true);\n const origin = (0, _utils.getLocationOrigin)();\n const hrefWasAbsolute = resolvedHref.startsWith(origin);\n const asWasAbsolute = resolvedAs && resolvedAs.startsWith(origin);\n resolvedHref = stripOrigin(resolvedHref);\n resolvedAs = resolvedAs ? stripOrigin(resolvedAs) : resolvedAs;\n const preparedUrl = hrefWasAbsolute ? resolvedHref : (0, _addbasepath.addBasePath)(resolvedHref);\n const preparedAs = as ? stripOrigin((0, _resolvehref.resolveHref)(router, as)) : resolvedAs || resolvedHref;\n return {\n url: preparedUrl,\n as: asWasAbsolute ? preparedAs : (0, _addbasepath.addBasePath)(preparedAs)\n };\n}\nfunction resolveDynamicRoute(pathname, pages) {\n const cleanPathname = (0, _removetrailingslash.removeTrailingSlash)((0, _denormalizepagepath.denormalizePagePath)(pathname));\n if (cleanPathname === '/404' || cleanPathname === '/_error') {\n return pathname;\n }\n // handle resolving href for dynamic routes\n if (!pages.includes(cleanPathname)) {\n // eslint-disable-next-line array-callback-return\n pages.some((page)=>{\n if ((0, _isdynamic.isDynamicRoute)(page) && (0, _routeregex.getRouteRegex)(page).re.test(cleanPathname)) {\n pathname = page;\n return true;\n }\n });\n }\n return (0, _removetrailingslash.removeTrailingSlash)(pathname);\n}\nfunction getMiddlewareData(source, response, options) {\n const nextConfig = {\n basePath: options.router.basePath,\n i18n: {\n locales: options.router.locales\n },\n trailingSlash: Boolean(false)\n };\n const rewriteHeader = response.headers.get('x-nextjs-rewrite');\n let rewriteTarget = rewriteHeader || response.headers.get('x-nextjs-matched-path');\n const matchedPath = response.headers.get(_constants.MATCHED_PATH_HEADER);\n if (matchedPath && !rewriteTarget && !matchedPath.includes('__next_data_catchall') && !matchedPath.includes('/_error') && !matchedPath.includes('/404')) {\n // leverage x-matched-path to detect next.config.js rewrites\n rewriteTarget = matchedPath;\n }\n if (rewriteTarget) {\n if (rewriteTarget.startsWith('/') || false) {\n const parsedRewriteTarget = (0, _parserelativeurl.parseRelativeUrl)(rewriteTarget);\n const pathnameInfo = (0, _getnextpathnameinfo.getNextPathnameInfo)(parsedRewriteTarget.pathname, {\n nextConfig,\n parseData: true\n });\n let fsPathname = (0, _removetrailingslash.removeTrailingSlash)(pathnameInfo.pathname);\n return Promise.all([\n options.router.pageLoader.getPageList(),\n (0, _routeloader.getClientBuildManifest)()\n ]).then((param)=>{\n let [pages, { __rewrites: rewrites }] = param;\n let as = (0, _addlocale.addLocale)(pathnameInfo.pathname, pathnameInfo.locale);\n if ((0, _isdynamic.isDynamicRoute)(as) || !rewriteHeader && pages.includes((0, _normalizelocalepath.normalizeLocalePath)((0, _removebasepath.removeBasePath)(as), options.router.locales).pathname)) {\n const parsedSource = (0, _getnextpathnameinfo.getNextPathnameInfo)((0, _parserelativeurl.parseRelativeUrl)(source).pathname, {\n nextConfig: false ? 0 : nextConfig,\n parseData: true\n });\n as = (0, _addbasepath.addBasePath)(parsedSource.pathname);\n parsedRewriteTarget.pathname = as;\n }\n if (false) {} else if (!pages.includes(fsPathname)) {\n const resolvedPathname = resolveDynamicRoute(fsPathname, pages);\n if (resolvedPathname !== fsPathname) {\n fsPathname = resolvedPathname;\n }\n }\n const resolvedHref = !pages.includes(fsPathname) ? resolveDynamicRoute((0, _normalizelocalepath.normalizeLocalePath)((0, _removebasepath.removeBasePath)(parsedRewriteTarget.pathname), options.router.locales).pathname, pages) : fsPathname;\n if ((0, _isdynamic.isDynamicRoute)(resolvedHref)) {\n const matches = (0, _routematcher.getRouteMatcher)((0, _routeregex.getRouteRegex)(resolvedHref))(as);\n Object.assign(parsedRewriteTarget.query, matches || {});\n }\n return {\n type: 'rewrite',\n parsedAs: parsedRewriteTarget,\n resolvedHref\n };\n });\n }\n const src = (0, _parsepath.parsePath)(source);\n const pathname = (0, _formatnextpathnameinfo.formatNextPathnameInfo)({\n ...(0, _getnextpathnameinfo.getNextPathnameInfo)(src.pathname, {\n nextConfig,\n parseData: true\n }),\n defaultLocale: options.router.defaultLocale,\n buildId: ''\n });\n return Promise.resolve({\n type: 'redirect-external',\n destination: \"\" + pathname + src.query + src.hash\n });\n }\n const redirectTarget = response.headers.get('x-nextjs-redirect');\n if (redirectTarget) {\n if (redirectTarget.startsWith('/')) {\n const src = (0, _parsepath.parsePath)(redirectTarget);\n const pathname = (0, _formatnextpathnameinfo.formatNextPathnameInfo)({\n ...(0, _getnextpathnameinfo.getNextPathnameInfo)(src.pathname, {\n nextConfig,\n parseData: true\n }),\n defaultLocale: options.router.defaultLocale,\n buildId: ''\n });\n return Promise.resolve({\n type: 'redirect-internal',\n newAs: \"\" + pathname + src.query + src.hash,\n newUrl: \"\" + pathname + src.query + src.hash\n });\n }\n return Promise.resolve({\n type: 'redirect-external',\n destination: redirectTarget\n });\n }\n return Promise.resolve({\n type: 'next'\n });\n}\nasync function withMiddlewareEffects(options) {\n const matches = await matchesMiddleware(options);\n if (!matches || !options.fetchData) {\n return null;\n }\n const data = await options.fetchData();\n const effect = await getMiddlewareData(data.dataHref, data.response, options);\n return {\n dataHref: data.dataHref,\n json: data.json,\n response: data.response,\n text: data.text,\n cacheKey: data.cacheKey,\n effect\n };\n}\nconst manualScrollRestoration = false && 0;\nconst SSG_DATA_NOT_FOUND = Symbol('SSG_DATA_NOT_FOUND');\nfunction fetchRetry(url, attempts, options) {\n return fetch(url, {\n // Cookies are required to be present for Next.js' SSG \"Preview Mode\".\n // Cookies may also be required for `getServerSideProps`.\n //\n // > `fetch` won’t send cookies, unless you set the credentials init\n // > option.\n // https://developer.mozilla.org/docs/Web/API/Fetch_API/Using_Fetch\n //\n // > For maximum browser compatibility when it comes to sending &\n // > receiving cookies, always supply the `credentials: 'same-origin'`\n // > option instead of relying on the default.\n // https://github.com/github/fetch#caveats\n credentials: 'same-origin',\n method: options.method || 'GET',\n headers: Object.assign({}, options.headers, {\n 'x-nextjs-data': '1'\n })\n }).then((response)=>{\n return !response.ok && attempts > 1 && response.status >= 500 ? fetchRetry(url, attempts - 1, options) : response;\n });\n}\nfunction tryToParseAsJSON(text) {\n try {\n return JSON.parse(text);\n } catch (error) {\n return null;\n }\n}\nfunction fetchNextData(param) {\n let { dataHref, inflightCache, isPrefetch, hasMiddleware, isServerRender, parseJSON, persistCache, isBackground, unstable_skipClientCache } = param;\n const { href: cacheKey } = new URL(dataHref, window.location.href);\n const getData = (params)=>{\n var _params_method;\n return fetchRetry(dataHref, isServerRender ? 3 : 1, {\n headers: Object.assign({}, isPrefetch ? {\n purpose: 'prefetch'\n } : {}, isPrefetch && hasMiddleware ? {\n 'x-middleware-prefetch': '1'\n } : {}, false ? 0 : {}),\n method: (_params_method = params == null ? void 0 : params.method) != null ? _params_method : 'GET'\n }).then((response)=>{\n if (response.ok && (params == null ? void 0 : params.method) === 'HEAD') {\n return {\n dataHref,\n response,\n text: '',\n json: {},\n cacheKey\n };\n }\n return response.text().then((text)=>{\n if (!response.ok) {\n /**\n * When the data response is a redirect because of a middleware\n * we do not consider it an error. The headers must bring the\n * mapped location.\n * TODO: Change the status code in the handler.\n */ if (hasMiddleware && [\n 301,\n 302,\n 307,\n 308\n ].includes(response.status)) {\n return {\n dataHref,\n response,\n text,\n json: {},\n cacheKey\n };\n }\n if (response.status === 404) {\n var _tryToParseAsJSON;\n if ((_tryToParseAsJSON = tryToParseAsJSON(text)) == null ? void 0 : _tryToParseAsJSON.notFound) {\n return {\n dataHref,\n json: {\n notFound: SSG_DATA_NOT_FOUND\n },\n response,\n text,\n cacheKey\n };\n }\n }\n const error = Object.defineProperty(new Error(\"Failed to load static props\"), \"__NEXT_ERROR_CODE\", {\n value: \"E124\",\n enumerable: false,\n configurable: true\n });\n /**\n * We should only trigger a server-side transition if this was\n * caused on a client-side transition. Otherwise, we'd get into\n * an infinite loop.\n */ if (!isServerRender) {\n (0, _routeloader.markAssetError)(error);\n }\n throw error;\n }\n return {\n dataHref,\n json: parseJSON ? tryToParseAsJSON(text) : null,\n response,\n text,\n cacheKey\n };\n });\n }).then((data)=>{\n if (!persistCache || \"development\" !== 'production' || 0) {\n delete inflightCache[cacheKey];\n }\n return data;\n }).catch((err)=>{\n if (!unstable_skipClientCache) {\n delete inflightCache[cacheKey];\n }\n if (err.message === 'Failed to fetch' || // firefox\n err.message === 'NetworkError when attempting to fetch resource.' || // safari\n err.message === 'Load failed') {\n (0, _routeloader.markAssetError)(err);\n }\n throw err;\n });\n };\n // when skipping client cache we wait to update\n // inflight cache until successful data response\n // this allows racing click event with fetching newer data\n // without blocking navigation when stale data is available\n if (unstable_skipClientCache && persistCache) {\n return getData({}).then((data)=>{\n if (data.response.headers.get('x-middleware-cache') !== 'no-cache') {\n // only update cache if not marked as no-cache\n inflightCache[cacheKey] = Promise.resolve(data);\n }\n return data;\n });\n }\n if (inflightCache[cacheKey] !== undefined) {\n return inflightCache[cacheKey];\n }\n return inflightCache[cacheKey] = getData(isBackground ? {\n method: 'HEAD'\n } : {});\n}\nfunction createKey() {\n return Math.random().toString(36).slice(2, 10);\n}\nfunction handleHardNavigation(param) {\n let { url, router } = param;\n // ensure we don't trigger a hard navigation to the same\n // URL as this can end up with an infinite refresh\n if (url === (0, _addbasepath.addBasePath)((0, _addlocale.addLocale)(router.asPath, router.locale))) {\n throw Object.defineProperty(new Error(\"Invariant: attempted to hard navigate to the same URL \" + url + \" \" + location.href), \"__NEXT_ERROR_CODE\", {\n value: \"E282\",\n enumerable: false,\n configurable: true\n });\n }\n window.location.href = url;\n}\nconst getCancelledHandler = (param)=>{\n let { route, router } = param;\n let cancelled = false;\n const cancel = router.clc = ()=>{\n cancelled = true;\n };\n const handleCancelled = ()=>{\n if (cancelled) {\n const error = Object.defineProperty(new Error('Abort fetching component for route: \"' + route + '\"'), \"__NEXT_ERROR_CODE\", {\n value: \"E483\",\n enumerable: false,\n configurable: true\n });\n error.cancelled = true;\n throw error;\n }\n if (cancel === router.clc) {\n router.clc = null;\n }\n };\n return handleCancelled;\n};\nclass Router {\n reload() {\n window.location.reload();\n }\n /**\n * Go back in history\n */ back() {\n window.history.back();\n }\n /**\n * Go forward in history\n */ forward() {\n window.history.forward();\n }\n /**\n * Performs a `pushState` with arguments\n * @param url of the route\n * @param as masks `url` for the browser\n * @param options object you can define `shallow` and other options\n */ push(url, as, options) {\n if (options === void 0) options = {};\n if (false) {}\n ;\n ({ url, as } = prepareUrlAs(this, url, as));\n return this.change('pushState', url, as, options);\n }\n /**\n * Performs a `replaceState` with arguments\n * @param url of the route\n * @param as masks `url` for the browser\n * @param options object you can define `shallow` and other options\n */ replace(url, as, options) {\n if (options === void 0) options = {};\n ;\n ({ url, as } = prepareUrlAs(this, url, as));\n return this.change('replaceState', url, as, options);\n }\n async _bfl(as, resolvedAs, locale, skipNavigate) {\n if (true) {\n if (!this._bfl_s && !this._bfl_d) {\n const { BloomFilter } = __webpack_require__(/*! ../../lib/bloom-filter */ \"(pages-dir-browser)/./node_modules/next/dist/shared/lib/bloom-filter.js\");\n let staticFilterData;\n let dynamicFilterData;\n try {\n ;\n ({ __routerFilterStatic: staticFilterData, __routerFilterDynamic: dynamicFilterData } = await (0, _routeloader.getClientBuildManifest)());\n } catch (err) {\n // failed to load build manifest hard navigate\n // to be safe\n console.error(err);\n if (skipNavigate) {\n return true;\n }\n handleHardNavigation({\n url: (0, _addbasepath.addBasePath)((0, _addlocale.addLocale)(as, locale || this.locale, this.defaultLocale)),\n router: this\n });\n return new Promise(()=>{});\n }\n const routerFilterSValue = {\"numItems\":0,\"errorRate\":0.0001,\"numBits\":0,\"numHashes\":null,\"bitArray\":[]};\n if (!staticFilterData && routerFilterSValue) {\n staticFilterData = routerFilterSValue ? routerFilterSValue : undefined;\n }\n const routerFilterDValue = {\"numItems\":0,\"errorRate\":0.0001,\"numBits\":0,\"numHashes\":null,\"bitArray\":[]};\n if (!dynamicFilterData && routerFilterDValue) {\n dynamicFilterData = routerFilterDValue ? routerFilterDValue : undefined;\n }\n if (staticFilterData == null ? void 0 : staticFilterData.numHashes) {\n this._bfl_s = new BloomFilter(staticFilterData.numItems, staticFilterData.errorRate);\n this._bfl_s.import(staticFilterData);\n }\n if (dynamicFilterData == null ? void 0 : dynamicFilterData.numHashes) {\n this._bfl_d = new BloomFilter(dynamicFilterData.numItems, dynamicFilterData.errorRate);\n this._bfl_d.import(dynamicFilterData);\n }\n }\n let matchesBflStatic = false;\n let matchesBflDynamic = false;\n const pathsToCheck = [\n {\n as\n },\n {\n as: resolvedAs\n }\n ];\n for (const { as: curAs, allowMatchCurrent } of pathsToCheck){\n if (curAs) {\n const asNoSlash = (0, _removetrailingslash.removeTrailingSlash)(new URL(curAs, 'http://n').pathname);\n const asNoSlashLocale = (0, _addbasepath.addBasePath)((0, _addlocale.addLocale)(asNoSlash, locale || this.locale));\n if (allowMatchCurrent || asNoSlash !== (0, _removetrailingslash.removeTrailingSlash)(new URL(this.asPath, 'http://n').pathname)) {\n var _this__bfl_s, _this__bfl_s1;\n matchesBflStatic = matchesBflStatic || !!((_this__bfl_s = this._bfl_s) == null ? void 0 : _this__bfl_s.contains(asNoSlash)) || !!((_this__bfl_s1 = this._bfl_s) == null ? void 0 : _this__bfl_s1.contains(asNoSlashLocale));\n for (const normalizedAS of [\n asNoSlash,\n asNoSlashLocale\n ]){\n // if any sub-path of as matches a dynamic filter path\n // it should be hard navigated\n const curAsParts = normalizedAS.split('/');\n for(let i = 0; !matchesBflDynamic && i < curAsParts.length + 1; i++){\n var _this__bfl_d;\n const currentPart = curAsParts.slice(0, i).join('/');\n if (currentPart && ((_this__bfl_d = this._bfl_d) == null ? void 0 : _this__bfl_d.contains(currentPart))) {\n matchesBflDynamic = true;\n break;\n }\n }\n }\n // if the client router filter is matched then we trigger\n // a hard navigation\n if (matchesBflStatic || matchesBflDynamic) {\n if (skipNavigate) {\n return true;\n }\n handleHardNavigation({\n url: (0, _addbasepath.addBasePath)((0, _addlocale.addLocale)(as, locale || this.locale, this.defaultLocale)),\n router: this\n });\n return new Promise(()=>{});\n }\n }\n }\n }\n }\n return false;\n }\n async change(method, url, as, options, forcedScroll) {\n var _this_components_pathname;\n if (!(0, _islocalurl.isLocalURL)(url)) {\n handleHardNavigation({\n url,\n router: this\n });\n return false;\n }\n // WARNING: `_h` is an internal option for handing Next.js client-side\n // hydration. Your app should _never_ use this property. It may change at\n // any time without notice.\n const isQueryUpdating = options._h === 1;\n if (!isQueryUpdating && !options.shallow) {\n await this._bfl(as, undefined, options.locale);\n }\n let shouldResolveHref = isQueryUpdating || options._shouldResolveHref || (0, _parsepath.parsePath)(url).pathname === (0, _parsepath.parsePath)(as).pathname;\n const nextState = {\n ...this.state\n };\n // for static pages with query params in the URL we delay\n // marking the router ready until after the query is updated\n // or a navigation has occurred\n const readyStateChange = this.isReady !== true;\n this.isReady = true;\n const isSsr = this.isSsr;\n if (!isQueryUpdating) {\n this.isSsr = false;\n }\n // if a route transition is already in progress before\n // the query updating is triggered ignore query updating\n if (isQueryUpdating && this.clc) {\n return false;\n }\n const prevLocale = nextState.locale;\n if (false) { var _this_locales; }\n // marking route changes as a navigation start entry\n if (_utils.ST) {\n performance.mark('routeChange');\n }\n const { shallow = false, scroll = true } = options;\n const routeProps = {\n shallow\n };\n if (this._inFlightRoute && this.clc) {\n if (!isSsr) {\n Router.events.emit('routeChangeError', buildCancellationError(), this._inFlightRoute, routeProps);\n }\n this.clc();\n this.clc = null;\n }\n as = (0, _addbasepath.addBasePath)((0, _addlocale.addLocale)((0, _hasbasepath.hasBasePath)(as) ? (0, _removebasepath.removeBasePath)(as) : as, options.locale, this.defaultLocale));\n const cleanedAs = (0, _removelocale.removeLocale)((0, _hasbasepath.hasBasePath)(as) ? (0, _removebasepath.removeBasePath)(as) : as, nextState.locale);\n this._inFlightRoute = as;\n const localeChange = prevLocale !== nextState.locale;\n // If the url change is only related to a hash change\n // We should not proceed. We should only change the state.\n if (!isQueryUpdating && this.onlyAHashChange(cleanedAs) && !localeChange) {\n nextState.asPath = cleanedAs;\n Router.events.emit('hashChangeStart', as, routeProps);\n // TODO: do we need the resolved href when only a hash change?\n this.changeState(method, url, as, {\n ...options,\n scroll: false\n });\n if (scroll) {\n this.scrollToHash(cleanedAs);\n }\n try {\n await this.set(nextState, this.components[nextState.route], null);\n } catch (err) {\n if ((0, _iserror.default)(err) && err.cancelled) {\n Router.events.emit('routeChangeError', err, cleanedAs, routeProps);\n }\n throw err;\n }\n Router.events.emit('hashChangeComplete', as, routeProps);\n return true;\n }\n let parsed = (0, _parserelativeurl.parseRelativeUrl)(url);\n let { pathname, query } = parsed;\n // The build manifest needs to be loaded before auto-static dynamic pages\n // get their query parameters to allow ensuring they can be parsed properly\n // when rewritten to\n let pages, rewrites;\n try {\n ;\n [pages, { __rewrites: rewrites }] = await Promise.all([\n this.pageLoader.getPageList(),\n (0, _routeloader.getClientBuildManifest)(),\n this.pageLoader.getMiddleware()\n ]);\n } catch (err) {\n // If we fail to resolve the page list or client-build manifest, we must\n // do a server-side transition:\n handleHardNavigation({\n url: as,\n router: this\n });\n return false;\n }\n // If asked to change the current URL we should reload the current page\n // (not location.reload() but reload getInitialProps and other Next.js stuffs)\n // We also need to set the method = replaceState always\n // as this should not go into the history (That's how browsers work)\n // We should compare the new asPath to the current asPath, not the url\n if (!this.urlIsNew(cleanedAs) && !localeChange) {\n method = 'replaceState';\n }\n // we need to resolve the as value using rewrites for dynamic SSG\n // pages to allow building the data URL correctly\n let resolvedAs = as;\n // url and as should always be prefixed with basePath by this\n // point by either next/link or router.push/replace so strip the\n // basePath from the pathname to match the pages dir 1-to-1\n pathname = pathname ? (0, _removetrailingslash.removeTrailingSlash)((0, _removebasepath.removeBasePath)(pathname)) : pathname;\n let route = (0, _removetrailingslash.removeTrailingSlash)(pathname);\n const parsedAsPathname = as.startsWith('/') && (0, _parserelativeurl.parseRelativeUrl)(as).pathname;\n // if we detected the path as app route during prefetching\n // trigger hard navigation\n if ((_this_components_pathname = this.components[pathname]) == null ? void 0 : _this_components_pathname.__appRouter) {\n handleHardNavigation({\n url: as,\n router: this\n });\n return new Promise(()=>{});\n }\n const isMiddlewareRewrite = !!(parsedAsPathname && route !== parsedAsPathname && (!(0, _isdynamic.isDynamicRoute)(route) || !(0, _routematcher.getRouteMatcher)((0, _routeregex.getRouteRegex)(route))(parsedAsPathname)));\n // we don't attempt resolve asPath when we need to execute\n // middleware as the resolving will occur server-side\n const isMiddlewareMatch = !options.shallow && await matchesMiddleware({\n asPath: as,\n locale: nextState.locale,\n router: this\n });\n if (isQueryUpdating && isMiddlewareMatch) {\n shouldResolveHref = false;\n }\n if (shouldResolveHref && pathname !== '/_error') {\n ;\n options._shouldResolveHref = true;\n if (false) {} else {\n parsed.pathname = resolveDynamicRoute(pathname, pages);\n if (parsed.pathname !== pathname) {\n pathname = parsed.pathname;\n parsed.pathname = (0, _addbasepath.addBasePath)(pathname);\n if (!isMiddlewareMatch) {\n url = (0, _formaturl.formatWithValidation)(parsed);\n }\n }\n }\n }\n if (!(0, _islocalurl.isLocalURL)(as)) {\n if (true) {\n throw Object.defineProperty(new Error('Invalid href: \"' + url + '\" and as: \"' + as + '\", received relative href and external as' + \"\\nSee more info: https://nextjs.org/docs/messages/invalid-relative-url-external-as\"), \"__NEXT_ERROR_CODE\", {\n value: \"E380\",\n enumerable: false,\n configurable: true\n });\n }\n handleHardNavigation({\n url: as,\n router: this\n });\n return false;\n }\n resolvedAs = (0, _removelocale.removeLocale)((0, _removebasepath.removeBasePath)(resolvedAs), nextState.locale);\n route = (0, _removetrailingslash.removeTrailingSlash)(pathname);\n let routeMatch = false;\n if ((0, _isdynamic.isDynamicRoute)(route)) {\n const parsedAs = (0, _parserelativeurl.parseRelativeUrl)(resolvedAs);\n const asPathname = parsedAs.pathname;\n const routeRegex = (0, _routeregex.getRouteRegex)(route);\n routeMatch = (0, _routematcher.getRouteMatcher)(routeRegex)(asPathname);\n const shouldInterpolate = route === asPathname;\n const interpolatedAs = shouldInterpolate ? (0, _interpolateas.interpolateAs)(route, asPathname, query) : {};\n if (!routeMatch || shouldInterpolate && !interpolatedAs.result) {\n const missingParams = Object.keys(routeRegex.groups).filter((param)=>!query[param] && !routeRegex.groups[param].optional);\n if (missingParams.length > 0 && !isMiddlewareMatch) {\n if (true) {\n console.warn(\"\" + (shouldInterpolate ? \"Interpolating href\" : \"Mismatching `as` and `href`\") + \" failed to manually provide \" + (\"the params: \" + missingParams.join(', ') + \" in the `href`'s `query`\"));\n }\n throw Object.defineProperty(new Error((shouldInterpolate ? \"The provided `href` (\" + url + \") value is missing query values (\" + missingParams.join(', ') + \") to be interpolated properly. \" : \"The provided `as` value (\" + asPathname + \") is incompatible with the `href` value (\" + route + \"). \") + (\"Read more: https://nextjs.org/docs/messages/\" + (shouldInterpolate ? 'href-interpolation-failed' : 'incompatible-href-as'))), \"__NEXT_ERROR_CODE\", {\n value: \"E344\",\n enumerable: false,\n configurable: true\n });\n }\n } else if (shouldInterpolate) {\n as = (0, _formaturl.formatWithValidation)(Object.assign({}, parsedAs, {\n pathname: interpolatedAs.result,\n query: (0, _omit.omit)(query, interpolatedAs.params)\n }));\n } else {\n // Merge params into `query`, overwriting any specified in search\n Object.assign(query, routeMatch);\n }\n }\n if (!isQueryUpdating) {\n Router.events.emit('routeChangeStart', as, routeProps);\n }\n const isErrorRoute = this.pathname === '/404' || this.pathname === '/_error';\n try {\n var _self___NEXT_DATA___props_pageProps, _self___NEXT_DATA___props, _routeInfo_props;\n let routeInfo = await this.getRouteInfo({\n route,\n pathname,\n query,\n as,\n resolvedAs,\n routeProps,\n locale: nextState.locale,\n isPreview: nextState.isPreview,\n hasMiddleware: isMiddlewareMatch,\n unstable_skipClientCache: options.unstable_skipClientCache,\n isQueryUpdating: isQueryUpdating && !this.isFallback,\n isMiddlewareRewrite\n });\n if (!isQueryUpdating && !options.shallow) {\n await this._bfl(as, 'resolvedAs' in routeInfo ? routeInfo.resolvedAs : undefined, nextState.locale);\n }\n if ('route' in routeInfo && isMiddlewareMatch) {\n pathname = routeInfo.route || route;\n route = pathname;\n if (!routeProps.shallow) {\n query = Object.assign({}, routeInfo.query || {}, query);\n }\n const cleanedParsedPathname = (0, _hasbasepath.hasBasePath)(parsed.pathname) ? (0, _removebasepath.removeBasePath)(parsed.pathname) : parsed.pathname;\n if (routeMatch && pathname !== cleanedParsedPathname) {\n Object.keys(routeMatch).forEach((key)=>{\n if (routeMatch && query[key] === routeMatch[key]) {\n delete query[key];\n }\n });\n }\n if ((0, _isdynamic.isDynamicRoute)(pathname)) {\n const prefixedAs = !routeProps.shallow && routeInfo.resolvedAs ? routeInfo.resolvedAs : (0, _addbasepath.addBasePath)((0, _addlocale.addLocale)(new URL(as, location.href).pathname, nextState.locale), true);\n let rewriteAs = prefixedAs;\n if ((0, _hasbasepath.hasBasePath)(rewriteAs)) {\n rewriteAs = (0, _removebasepath.removeBasePath)(rewriteAs);\n }\n if (false) {}\n const routeRegex = (0, _routeregex.getRouteRegex)(pathname);\n const curRouteMatch = (0, _routematcher.getRouteMatcher)(routeRegex)(new URL(rewriteAs, location.href).pathname);\n if (curRouteMatch) {\n Object.assign(query, curRouteMatch);\n }\n }\n }\n // If the routeInfo brings a redirect we simply apply it.\n if ('type' in routeInfo) {\n if (routeInfo.type === 'redirect-internal') {\n return this.change(method, routeInfo.newUrl, routeInfo.newAs, options);\n } else {\n handleHardNavigation({\n url: routeInfo.destination,\n router: this\n });\n return new Promise(()=>{});\n }\n }\n const component = routeInfo.Component;\n if (component && component.unstable_scriptLoader) {\n const scripts = [].concat(component.unstable_scriptLoader());\n scripts.forEach((script)=>{\n (0, _script.handleClientScriptLoad)(script.props);\n });\n }\n // handle redirect on client-transition\n if ((routeInfo.__N_SSG || routeInfo.__N_SSP) && routeInfo.props) {\n if (routeInfo.props.pageProps && routeInfo.props.pageProps.__N_REDIRECT) {\n // Use the destination from redirect without adding locale\n options.locale = false;\n const destination = routeInfo.props.pageProps.__N_REDIRECT;\n // check if destination is internal (resolves to a page) and attempt\n // client-navigation if it is falling back to hard navigation if\n // it's not\n if (destination.startsWith('/') && routeInfo.props.pageProps.__N_REDIRECT_BASE_PATH !== false) {\n const parsedHref = (0, _parserelativeurl.parseRelativeUrl)(destination);\n parsedHref.pathname = resolveDynamicRoute(parsedHref.pathname, pages);\n const { url: newUrl, as: newAs } = prepareUrlAs(this, destination, destination);\n return this.change(method, newUrl, newAs, options);\n }\n handleHardNavigation({\n url: destination,\n router: this\n });\n return new Promise(()=>{});\n }\n nextState.isPreview = !!routeInfo.props.__N_PREVIEW;\n // handle SSG data 404\n if (routeInfo.props.notFound === SSG_DATA_NOT_FOUND) {\n let notFoundRoute;\n try {\n await this.fetchComponent('/404');\n notFoundRoute = '/404';\n } catch (_) {\n notFoundRoute = '/_error';\n }\n routeInfo = await this.getRouteInfo({\n route: notFoundRoute,\n pathname: notFoundRoute,\n query,\n as,\n resolvedAs,\n routeProps: {\n shallow: false\n },\n locale: nextState.locale,\n isPreview: nextState.isPreview,\n isNotFound: true\n });\n if ('type' in routeInfo) {\n throw Object.defineProperty(new Error(\"Unexpected middleware effect on /404\"), \"__NEXT_ERROR_CODE\", {\n value: \"E158\",\n enumerable: false,\n configurable: true\n });\n }\n }\n }\n if (isQueryUpdating && this.pathname === '/_error' && ((_self___NEXT_DATA___props = self.__NEXT_DATA__.props) == null ? void 0 : (_self___NEXT_DATA___props_pageProps = _self___NEXT_DATA___props.pageProps) == null ? void 0 : _self___NEXT_DATA___props_pageProps.statusCode) === 500 && ((_routeInfo_props = routeInfo.props) == null ? void 0 : _routeInfo_props.pageProps)) {\n // ensure statusCode is still correct for static 500 page\n // when updating query information\n routeInfo.props.pageProps.statusCode = 500;\n }\n var _routeInfo_route;\n // shallow routing is only allowed for same page URL changes.\n const isValidShallowRoute = options.shallow && nextState.route === ((_routeInfo_route = routeInfo.route) != null ? _routeInfo_route : route);\n var _options_scroll;\n const shouldScroll = (_options_scroll = options.scroll) != null ? _options_scroll : !isQueryUpdating && !isValidShallowRoute;\n const resetScroll = shouldScroll ? {\n x: 0,\n y: 0\n } : null;\n const upcomingScrollState = forcedScroll != null ? forcedScroll : resetScroll;\n // the new state that the router gonna set\n const upcomingRouterState = {\n ...nextState,\n route,\n pathname,\n query,\n asPath: cleanedAs,\n isFallback: false\n };\n // When the page being rendered is the 404 page, we should only update the\n // query parameters. Route changes here might add the basePath when it\n // wasn't originally present. This is also why this block is before the\n // below `changeState` call which updates the browser's history (changing\n // the URL).\n if (isQueryUpdating && isErrorRoute) {\n var _self___NEXT_DATA___props_pageProps1, _self___NEXT_DATA___props1, _routeInfo_props1;\n routeInfo = await this.getRouteInfo({\n route: this.pathname,\n pathname: this.pathname,\n query,\n as,\n resolvedAs,\n routeProps: {\n shallow: false\n },\n locale: nextState.locale,\n isPreview: nextState.isPreview,\n isQueryUpdating: isQueryUpdating && !this.isFallback\n });\n if ('type' in routeInfo) {\n throw Object.defineProperty(new Error(\"Unexpected middleware effect on \" + this.pathname), \"__NEXT_ERROR_CODE\", {\n value: \"E225\",\n enumerable: false,\n configurable: true\n });\n }\n if (this.pathname === '/_error' && ((_self___NEXT_DATA___props1 = self.__NEXT_DATA__.props) == null ? void 0 : (_self___NEXT_DATA___props_pageProps1 = _self___NEXT_DATA___props1.pageProps) == null ? void 0 : _self___NEXT_DATA___props_pageProps1.statusCode) === 500 && ((_routeInfo_props1 = routeInfo.props) == null ? void 0 : _routeInfo_props1.pageProps)) {\n // ensure statusCode is still correct for static 500 page\n // when updating query information\n routeInfo.props.pageProps.statusCode = 500;\n }\n try {\n await this.set(upcomingRouterState, routeInfo, upcomingScrollState);\n } catch (err) {\n if ((0, _iserror.default)(err) && err.cancelled) {\n Router.events.emit('routeChangeError', err, cleanedAs, routeProps);\n }\n throw err;\n }\n return true;\n }\n Router.events.emit('beforeHistoryChange', as, routeProps);\n this.changeState(method, url, as, options);\n // for query updates we can skip it if the state is unchanged and we don't\n // need to scroll\n // https://github.com/vercel/next.js/issues/37139\n const canSkipUpdating = isQueryUpdating && !upcomingScrollState && !readyStateChange && !localeChange && (0, _comparestates.compareRouterStates)(upcomingRouterState, this.state);\n if (!canSkipUpdating) {\n try {\n await this.set(upcomingRouterState, routeInfo, upcomingScrollState);\n } catch (e) {\n if (e.cancelled) routeInfo.error = routeInfo.error || e;\n else throw e;\n }\n if (routeInfo.error) {\n if (!isQueryUpdating) {\n Router.events.emit('routeChangeError', routeInfo.error, cleanedAs, routeProps);\n }\n throw routeInfo.error;\n }\n if (false) {}\n if (!isQueryUpdating) {\n Router.events.emit('routeChangeComplete', as, routeProps);\n }\n // A hash mark # is the optional last part of a URL\n const hashRegex = /#.+$/;\n if (shouldScroll && hashRegex.test(as)) {\n this.scrollToHash(as);\n }\n }\n return true;\n } catch (err) {\n if ((0, _iserror.default)(err) && err.cancelled) {\n return false;\n }\n throw err;\n }\n }\n changeState(method, url, as, options) {\n if (options === void 0) options = {};\n if (true) {\n if (typeof window.history === 'undefined') {\n console.error(\"Warning: window.history is not available.\");\n return;\n }\n if (typeof window.history[method] === 'undefined') {\n console.error(\"Warning: window.history.\" + method + \" is not available\");\n return;\n }\n }\n if (method !== 'pushState' || (0, _utils.getURL)() !== as) {\n this._shallow = options.shallow;\n window.history[method]({\n url,\n as,\n options,\n __N: true,\n key: this._key = method !== 'pushState' ? this._key : createKey()\n }, // Passing the empty string here should be safe against future changes to the method.\n // https://developer.mozilla.org/docs/Web/API/History/replaceState\n '', as);\n }\n }\n async handleRouteInfoError(err, pathname, query, as, routeProps, loadErrorFail) {\n if (err.cancelled) {\n // bubble up cancellation errors\n throw err;\n }\n if ((0, _routeloader.isAssetError)(err) || loadErrorFail) {\n Router.events.emit('routeChangeError', err, as, routeProps);\n // If we can't load the page it could be one of following reasons\n // 1. Page doesn't exists\n // 2. Page does exist in a different zone\n // 3. Internal error while loading the page\n // So, doing a hard reload is the proper way to deal with this.\n handleHardNavigation({\n url: as,\n router: this\n });\n // Changing the URL doesn't block executing the current code path.\n // So let's throw a cancellation error stop the routing logic.\n throw buildCancellationError();\n }\n console.error(err);\n try {\n let props;\n const { page: Component, styleSheets } = await this.fetchComponent('/_error');\n const routeInfo = {\n props,\n Component,\n styleSheets,\n err,\n error: err\n };\n if (!routeInfo.props) {\n try {\n routeInfo.props = await this.getInitialProps(Component, {\n err,\n pathname,\n query\n });\n } catch (gipErr) {\n console.error('Error in error page `getInitialProps`: ', gipErr);\n routeInfo.props = {};\n }\n }\n return routeInfo;\n } catch (routeInfoErr) {\n return this.handleRouteInfoError((0, _iserror.default)(routeInfoErr) ? routeInfoErr : Object.defineProperty(new Error(routeInfoErr + ''), \"__NEXT_ERROR_CODE\", {\n value: \"E394\",\n enumerable: false,\n configurable: true\n }), pathname, query, as, routeProps, true);\n }\n }\n async getRouteInfo(param) {\n let { route: requestedRoute, pathname, query, as, resolvedAs, routeProps, locale, hasMiddleware, isPreview, unstable_skipClientCache, isQueryUpdating, isMiddlewareRewrite, isNotFound } = param;\n /**\n * This `route` binding can change if there's a rewrite\n * so we keep a reference to the original requested route\n * so we can store the cache for it and avoid re-requesting every time\n * for shallow routing purposes.\n */ let route = requestedRoute;\n try {\n var _data_effect, _data_effect1, _data_effect2, _data_response;\n let existingInfo = this.components[route];\n if (routeProps.shallow && existingInfo && this.route === route) {\n return existingInfo;\n }\n const handleCancelled = getCancelledHandler({\n route,\n router: this\n });\n if (hasMiddleware) {\n existingInfo = undefined;\n }\n let cachedRouteInfo = existingInfo && !('initial' in existingInfo) && \"development\" !== 'development' ? 0 : undefined;\n const isBackground = isQueryUpdating;\n const fetchNextDataParams = {\n dataHref: this.pageLoader.getDataHref({\n href: (0, _formaturl.formatWithValidation)({\n pathname,\n query\n }),\n skipInterpolation: true,\n asPath: isNotFound ? '/404' : resolvedAs,\n locale\n }),\n hasMiddleware: true,\n isServerRender: this.isSsr,\n parseJSON: true,\n inflightCache: isBackground ? this.sbc : this.sdc,\n persistCache: !isPreview,\n isPrefetch: false,\n unstable_skipClientCache,\n isBackground\n };\n let data = isQueryUpdating && !isMiddlewareRewrite ? null : await withMiddlewareEffects({\n fetchData: ()=>fetchNextData(fetchNextDataParams),\n asPath: isNotFound ? '/404' : resolvedAs,\n locale: locale,\n router: this\n }).catch((err)=>{\n // we don't hard error during query updating\n // as it's un-necessary and doesn't need to be fatal\n // unless it is a fallback route and the props can't\n // be loaded\n if (isQueryUpdating) {\n return null;\n }\n throw err;\n });\n // when rendering error routes we don't apply middleware\n // effects\n if (data && (pathname === '/_error' || pathname === '/404')) {\n data.effect = undefined;\n }\n if (isQueryUpdating) {\n if (!data) {\n data = {\n json: self.__NEXT_DATA__.props\n };\n } else {\n data.json = self.__NEXT_DATA__.props;\n }\n }\n handleCancelled();\n if ((data == null ? void 0 : (_data_effect = data.effect) == null ? void 0 : _data_effect.type) === 'redirect-internal' || (data == null ? void 0 : (_data_effect1 = data.effect) == null ? void 0 : _data_effect1.type) === 'redirect-external') {\n return data.effect;\n }\n if ((data == null ? void 0 : (_data_effect2 = data.effect) == null ? void 0 : _data_effect2.type) === 'rewrite') {\n const resolvedRoute = (0, _removetrailingslash.removeTrailingSlash)(data.effect.resolvedHref);\n const pages = await this.pageLoader.getPageList();\n // during query updating the page must match although during\n // client-transition a redirect that doesn't match a page\n // can be returned and this should trigger a hard navigation\n // which is valid for incremental migration\n if (!isQueryUpdating || pages.includes(resolvedRoute)) {\n route = resolvedRoute;\n pathname = data.effect.resolvedHref;\n query = {\n ...query,\n ...data.effect.parsedAs.query\n };\n resolvedAs = (0, _removebasepath.removeBasePath)((0, _normalizelocalepath.normalizeLocalePath)(data.effect.parsedAs.pathname, this.locales).pathname);\n // Check again the cache with the new destination.\n existingInfo = this.components[route];\n if (routeProps.shallow && existingInfo && this.route === route && !hasMiddleware) {\n // If we have a match with the current route due to rewrite,\n // we can copy the existing information to the rewritten one.\n // Then, we return the information along with the matched route.\n return {\n ...existingInfo,\n route\n };\n }\n }\n }\n if ((0, _isapiroute.isAPIRoute)(route)) {\n handleHardNavigation({\n url: as,\n router: this\n });\n return new Promise(()=>{});\n }\n const routeInfo = cachedRouteInfo || await this.fetchComponent(route).then((res)=>({\n Component: res.page,\n styleSheets: res.styleSheets,\n __N_SSG: res.mod.__N_SSG,\n __N_SSP: res.mod.__N_SSP\n }));\n if (true) {\n const { isValidElementType } = __webpack_require__(/*! next/dist/compiled/react-is */ \"(pages-dir-browser)/./node_modules/next/dist/compiled/react-is/index.js\");\n if (!isValidElementType(routeInfo.Component)) {\n throw Object.defineProperty(new Error('The default export is not a React Component in page: \"' + pathname + '\"'), \"__NEXT_ERROR_CODE\", {\n value: \"E286\",\n enumerable: false,\n configurable: true\n });\n }\n }\n const wasBailedPrefetch = data == null ? void 0 : (_data_response = data.response) == null ? void 0 : _data_response.headers.get('x-middleware-skip');\n const shouldFetchData = routeInfo.__N_SSG || routeInfo.__N_SSP;\n // For non-SSG prefetches that bailed before sending data\n // we clear the cache to fetch full response\n if (wasBailedPrefetch && (data == null ? void 0 : data.dataHref)) {\n delete this.sdc[data.dataHref];\n }\n const { props, cacheKey } = await this._getData(async ()=>{\n if (shouldFetchData) {\n if ((data == null ? void 0 : data.json) && !wasBailedPrefetch) {\n return {\n cacheKey: data.cacheKey,\n props: data.json\n };\n }\n const dataHref = (data == null ? void 0 : data.dataHref) ? data.dataHref : this.pageLoader.getDataHref({\n href: (0, _formaturl.formatWithValidation)({\n pathname,\n query\n }),\n asPath: resolvedAs,\n locale\n });\n const fetched = await fetchNextData({\n dataHref,\n isServerRender: this.isSsr,\n parseJSON: true,\n inflightCache: wasBailedPrefetch ? {} : this.sdc,\n persistCache: !isPreview,\n isPrefetch: false,\n unstable_skipClientCache\n });\n return {\n cacheKey: fetched.cacheKey,\n props: fetched.json || {}\n };\n }\n return {\n headers: {},\n props: await this.getInitialProps(routeInfo.Component, {\n pathname,\n query,\n asPath: as,\n locale,\n locales: this.locales,\n defaultLocale: this.defaultLocale\n })\n };\n });\n // Only bust the data cache for SSP routes although\n // middleware can skip cache per request with\n // x-middleware-cache: no-cache as well\n if (routeInfo.__N_SSP && fetchNextDataParams.dataHref && cacheKey) {\n delete this.sdc[cacheKey];\n }\n // we kick off a HEAD request in the background\n // when a non-prefetch request is made to signal revalidation\n if (!this.isPreview && routeInfo.__N_SSG && \"development\" !== 'development' && 0) {}\n props.pageProps = Object.assign({}, props.pageProps);\n routeInfo.props = props;\n routeInfo.route = route;\n routeInfo.query = query;\n routeInfo.resolvedAs = resolvedAs;\n this.components[route] = routeInfo;\n return routeInfo;\n } catch (err) {\n return this.handleRouteInfoError((0, _iserror.getProperError)(err), pathname, query, as, routeProps);\n }\n }\n set(state, data, resetScroll) {\n this.state = state;\n return this.sub(data, this.components['/_app'].Component, resetScroll);\n }\n /**\n * Callback to execute before replacing router state\n * @param cb callback to be executed\n */ beforePopState(cb) {\n this._bps = cb;\n }\n onlyAHashChange(as) {\n if (!this.asPath) return false;\n const [oldUrlNoHash, oldHash] = this.asPath.split('#', 2);\n const [newUrlNoHash, newHash] = as.split('#', 2);\n // Makes sure we scroll to the provided hash if the url/hash are the same\n if (newHash && oldUrlNoHash === newUrlNoHash && oldHash === newHash) {\n return true;\n }\n // If the urls are change, there's more than a hash change\n if (oldUrlNoHash !== newUrlNoHash) {\n return false;\n }\n // If the hash has changed, then it's a hash only change.\n // This check is necessary to handle both the enter and\n // leave hash === '' cases. The identity case falls through\n // and is treated as a next reload.\n return oldHash !== newHash;\n }\n scrollToHash(as) {\n const [, hash = ''] = as.split('#', 2);\n (0, _disablesmoothscroll.disableSmoothScrollDuringRouteTransition)(()=>{\n // Scroll to top if the hash is just `#` with no value or `#top`\n // To mirror browsers\n if (hash === '' || hash === 'top') {\n window.scrollTo(0, 0);\n return;\n }\n // Decode hash to make non-latin anchor works.\n const rawHash = decodeURIComponent(hash);\n // First we check if the element by id is found\n const idEl = document.getElementById(rawHash);\n if (idEl) {\n idEl.scrollIntoView();\n return;\n }\n // If there's no element with the id, we check the `name` property\n // To mirror browsers\n const nameEl = document.getElementsByName(rawHash)[0];\n if (nameEl) {\n nameEl.scrollIntoView();\n }\n }, {\n onlyHashChange: this.onlyAHashChange(as)\n });\n }\n urlIsNew(asPath) {\n return this.asPath !== asPath;\n }\n /**\n * Prefetch page code, you may wait for the data during page rendering.\n * This feature only works in production!\n * @param url the href of prefetched page\n * @param asPath the as path of the prefetched page\n */ async prefetch(url, asPath, options) {\n if (asPath === void 0) asPath = url;\n if (options === void 0) options = {};\n // Prefetch is not supported in development mode because it would trigger on-demand-entries\n if (true) {\n return;\n }\n if ( true && (0, _isbot.isBot)(window.navigator.userAgent)) {\n // No prefetches for bots that render the link since they are typically navigating\n // links via the equivalent of a hard navigation and hence never utilize these\n // prefetches.\n return;\n }\n let parsed = (0, _parserelativeurl.parseRelativeUrl)(url);\n const urlPathname = parsed.pathname;\n let { pathname, query } = parsed;\n const originalPathname = pathname;\n if (false) {}\n const pages = await this.pageLoader.getPageList();\n let resolvedAs = asPath;\n const locale = typeof options.locale !== 'undefined' ? options.locale || undefined : this.locale;\n const isMiddlewareMatch = await matchesMiddleware({\n asPath: asPath,\n locale: locale,\n router: this\n });\n if (false) {}\n parsed.pathname = resolveDynamicRoute(parsed.pathname, pages);\n if ((0, _isdynamic.isDynamicRoute)(parsed.pathname)) {\n pathname = parsed.pathname;\n parsed.pathname = pathname;\n Object.assign(query, (0, _routematcher.getRouteMatcher)((0, _routeregex.getRouteRegex)(parsed.pathname))((0, _parsepath.parsePath)(asPath).pathname) || {});\n if (!isMiddlewareMatch) {\n url = (0, _formaturl.formatWithValidation)(parsed);\n }\n }\n const data = false ? 0 : await withMiddlewareEffects({\n fetchData: ()=>fetchNextData({\n dataHref: this.pageLoader.getDataHref({\n href: (0, _formaturl.formatWithValidation)({\n pathname: originalPathname,\n query\n }),\n skipInterpolation: true,\n asPath: resolvedAs,\n locale\n }),\n hasMiddleware: true,\n isServerRender: false,\n parseJSON: true,\n inflightCache: this.sdc,\n persistCache: !this.isPreview,\n isPrefetch: true\n }),\n asPath: asPath,\n locale: locale,\n router: this\n });\n /**\n * If there was a rewrite we apply the effects of the rewrite on the\n * current parameters for the prefetch.\n */ if ((data == null ? void 0 : data.effect.type) === 'rewrite') {\n parsed.pathname = data.effect.resolvedHref;\n pathname = data.effect.resolvedHref;\n query = {\n ...query,\n ...data.effect.parsedAs.query\n };\n resolvedAs = data.effect.parsedAs.pathname;\n url = (0, _formaturl.formatWithValidation)(parsed);\n }\n /**\n * If there is a redirect to an external destination then we don't have\n * to prefetch content as it will be unused.\n */ if ((data == null ? void 0 : data.effect.type) === 'redirect-external') {\n return;\n }\n const route = (0, _removetrailingslash.removeTrailingSlash)(pathname);\n if (await this._bfl(asPath, resolvedAs, options.locale, true)) {\n this.components[urlPathname] = {\n __appRouter: true\n };\n }\n await Promise.all([\n this.pageLoader._isSsg(route).then((isSsg)=>{\n return isSsg ? fetchNextData({\n dataHref: (data == null ? void 0 : data.json) ? data == null ? void 0 : data.dataHref : this.pageLoader.getDataHref({\n href: url,\n asPath: resolvedAs,\n locale: locale\n }),\n isServerRender: false,\n parseJSON: true,\n inflightCache: this.sdc,\n persistCache: !this.isPreview,\n isPrefetch: true,\n unstable_skipClientCache: options.unstable_skipClientCache || options.priority && !!true\n }).then(()=>false).catch(()=>false) : false;\n }),\n this.pageLoader[options.priority ? 'loadPage' : 'prefetch'](route)\n ]);\n }\n async fetchComponent(route) {\n const handleCancelled = getCancelledHandler({\n route,\n router: this\n });\n try {\n const componentResult = await this.pageLoader.loadPage(route);\n handleCancelled();\n return componentResult;\n } catch (err) {\n handleCancelled();\n throw err;\n }\n }\n _getData(fn) {\n let cancelled = false;\n const cancel = ()=>{\n cancelled = true;\n };\n this.clc = cancel;\n return fn().then((data)=>{\n if (cancel === this.clc) {\n this.clc = null;\n }\n if (cancelled) {\n const err = Object.defineProperty(new Error('Loading initial props cancelled'), \"__NEXT_ERROR_CODE\", {\n value: \"E405\",\n enumerable: false,\n configurable: true\n });\n err.cancelled = true;\n throw err;\n }\n return data;\n });\n }\n getInitialProps(Component, ctx) {\n const { Component: App } = this.components['/_app'];\n const AppTree = this._wrapApp(App);\n ctx.AppTree = AppTree;\n return (0, _utils.loadGetInitialProps)(App, {\n AppTree,\n Component,\n router: this,\n ctx\n });\n }\n get route() {\n return this.state.route;\n }\n get pathname() {\n return this.state.pathname;\n }\n get query() {\n return this.state.query;\n }\n get asPath() {\n return this.state.asPath;\n }\n get locale() {\n return this.state.locale;\n }\n get isFallback() {\n return this.state.isFallback;\n }\n get isPreview() {\n return this.state.isPreview;\n }\n constructor(pathname, query, as, { initialProps, pageLoader, App, wrapApp, Component, err, subscription, isFallback, locale, locales, defaultLocale, domainLocales, isPreview }){\n // Server Data Cache (full data requests)\n this.sdc = {};\n // Server Background Cache (HEAD requests)\n this.sbc = {};\n this.isFirstPopStateEvent = true;\n this._key = createKey();\n this.onPopState = (e)=>{\n const { isFirstPopStateEvent } = this;\n this.isFirstPopStateEvent = false;\n const state = e.state;\n if (!state) {\n // We get state as undefined for two reasons.\n // 1. With older safari (< 8) and older chrome (< 34)\n // 2. When the URL changed with #\n //\n // In the both cases, we don't need to proceed and change the route.\n // (as it's already changed)\n // But we can simply replace the state with the new changes.\n // Actually, for (1) we don't need to nothing. But it's hard to detect that event.\n // So, doing the following for (1) does no harm.\n const { pathname, query } = this;\n this.changeState('replaceState', (0, _formaturl.formatWithValidation)({\n pathname: (0, _addbasepath.addBasePath)(pathname),\n query\n }), (0, _utils.getURL)());\n return;\n }\n // __NA is used to identify if the history entry can be handled by the app-router.\n if (state.__NA) {\n window.location.reload();\n return;\n }\n if (!state.__N) {\n return;\n }\n // Safari fires popstateevent when reopening the browser.\n if (isFirstPopStateEvent && this.locale === state.options.locale && state.as === this.asPath) {\n return;\n }\n let forcedScroll;\n const { url, as, options, key } = state;\n if (false) {}\n this._key = key;\n const { pathname } = (0, _parserelativeurl.parseRelativeUrl)(url);\n // Make sure we don't re-render on initial load,\n // can be caused by navigating back from an external site\n if (this.isSsr && as === (0, _addbasepath.addBasePath)(this.asPath) && pathname === (0, _addbasepath.addBasePath)(this.pathname)) {\n return;\n }\n // If the downstream application returns falsy, return.\n // They will then be responsible for handling the event.\n if (this._bps && !this._bps(state)) {\n return;\n }\n this.change('replaceState', url, as, Object.assign({}, options, {\n shallow: options.shallow && this._shallow,\n locale: options.locale || this.defaultLocale,\n // @ts-ignore internal value not exposed on types\n _h: 0\n }), forcedScroll);\n };\n // represents the current component key\n const route = (0, _removetrailingslash.removeTrailingSlash)(pathname);\n // set up the component cache (by route keys)\n this.components = {};\n // We should not keep the cache, if there's an error\n // Otherwise, this cause issues when when going back and\n // come again to the errored page.\n if (pathname !== '/_error') {\n this.components[route] = {\n Component,\n initial: true,\n props: initialProps,\n err,\n __N_SSG: initialProps && initialProps.__N_SSG,\n __N_SSP: initialProps && initialProps.__N_SSP\n };\n }\n this.components['/_app'] = {\n Component: App,\n styleSheets: []\n };\n // Backwards compat for Router.router.events\n // TODO: Should be remove the following major version as it was never documented\n this.events = Router.events;\n this.pageLoader = pageLoader;\n // if auto prerendered and dynamic route wait to update asPath\n // until after mount to prevent hydration mismatch\n const autoExportDynamic = (0, _isdynamic.isDynamicRoute)(pathname) && self.__NEXT_DATA__.autoExport;\n this.basePath = false || '';\n this.sub = subscription;\n this.clc = null;\n this._wrapApp = wrapApp;\n // make sure to ignore extra popState in safari on navigating\n // back from external site\n this.isSsr = true;\n this.isLocaleDomain = false;\n this.isReady = !!(self.__NEXT_DATA__.gssp || self.__NEXT_DATA__.gip || self.__NEXT_DATA__.isExperimentalCompile || self.__NEXT_DATA__.appGip && !self.__NEXT_DATA__.gsp || !autoExportDynamic && !self.location.search && !false);\n if (false) {}\n this.state = {\n route,\n pathname,\n query,\n asPath: autoExportDynamic ? pathname : as,\n isPreview: !!isPreview,\n locale: false ? 0 : undefined,\n isFallback\n };\n this._initialMatchesMiddlewarePromise = Promise.resolve(false);\n if (true) {\n // make sure \"as\" doesn't start with double slashes or else it can\n // throw an error as it's considered invalid\n if (!as.startsWith('//')) {\n // in order for `e.state` to work on the `onpopstate` event\n // we have to register the initial route upon initialization\n const options = {\n locale\n };\n const asPath = (0, _utils.getURL)();\n this._initialMatchesMiddlewarePromise = matchesMiddleware({\n router: this,\n locale,\n asPath\n }).then((matches)=>{\n // if middleware matches we leave resolving to the change function\n // as the server needs to resolve for correct priority\n ;\n options._shouldResolveHref = as !== pathname;\n this.changeState('replaceState', matches ? asPath : (0, _formaturl.formatWithValidation)({\n pathname: (0, _addbasepath.addBasePath)(pathname),\n query\n }), asPath, options);\n return matches;\n });\n }\n window.addEventListener('popstate', this.onPopState);\n // enable custom scroll restoration handling when available\n // otherwise fallback to browser's default handling\n if (false) {}\n }\n }\n}\nRouter.events = (0, _mitt.default)(); //# sourceMappingURL=router.js.map\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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3Qvc2hhcmVkL2xpYi9yb3V0ZXIvcm91dGVyLmpzIiwibWFwcGluZ3MiOiJBQUFBLDRCQUE0Qjs7Ozs7Ozs7Ozs7OztJQThtQlpBLFNBQVM7ZUFBVEE7OztlQWlES0M7O0lBOWpCQ0MsaUJBQWlCO2VBQWpCQTs7Ozs7aURBdkZjO3lDQUs3QjtvQ0FDZ0M7K0VBQ0M7aURBQ0o7aURBQ0E7MkVBQ25CO21DQUNrRDt1Q0FDcEM7OENBQ0U7MENBQ0Q7d0NBQ0Y7dUNBQ087Z0RBQ0Y7dUNBQ1Q7dUNBQ0E7MENBQ0c7NENBQ0U7eUNBQ0g7eUNBQ0E7eUNBQ0E7d0NBQ0Q7aURBQ1M7b0RBQ0c7MkNBQ0g7d0NBQ1Q7bUNBQ0w7a0NBQ0Q7MkNBQ1M7aURBQzJCO3VDQUVyQjtBQUVwQyxJQUFJQztBQUNKLElBQUlDLEtBQStCLEVBQUUsRUFJcEM7QUFnQ0QsU0FBU0s7SUFDUCxPQUFPQyxPQUFPQyxNQUFNLENBQUMscUJBQTRCLENBQTVCLElBQUlDLE1BQU0sb0JBQVY7ZUFBQTtvQkFBQTtzQkFBQTtJQUEyQixJQUFHO1FBQ2pEQyxXQUFXO0lBQ2I7QUFDRjtBQVNPLGVBQWVYLGtCQUNwQlksT0FBa0M7SUFFbEMsTUFBTUMsV0FBVyxNQUFNQyxRQUFRQyxPQUFPLENBQ3BDSCxRQUFRSSxNQUFNLENBQUNDLFVBQVUsQ0FBQ0MsYUFBYTtJQUV6QyxJQUFJLENBQUNMLFVBQVUsT0FBTztJQUV0QixNQUFNLEVBQUVNLFVBQVVDLFVBQVUsRUFBRSxHQUFHQyxDQUFBQSxHQUFBQSxXQUFBQSxTQUFBQSxFQUFVVCxRQUFRVSxNQUFNO0lBQ3pELDZGQUE2RjtJQUM3RixNQUFNQyxZQUFZQyxDQUFBQSxHQUFBQSxhQUFBQSxXQUFBQSxFQUFZSixjQUMxQkssQ0FBQUEsR0FBQUEsZ0JBQUFBLGNBQUFBLEVBQWVMLGNBQ2ZBO0lBQ0osTUFBTU0sMEJBQTBCQyxDQUFBQSxHQUFBQSxhQUFBQSxXQUFBQSxFQUM5QkMs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Z0IsUUFBUSxJQUFJO29CQUNaYTtvQkFDQVA7Z0JBQ0YsR0FBR2lFLElBQUksQ0FBQyxDQUFDWTtvQkFDUCxrRUFBa0U7b0JBQ2xFLHNEQUFzRDs7b0JBQ3BEdkYsUUFBZ0JxTixrQkFBa0IsR0FBR3RMLE9BQU94QjtvQkFFOUMsSUFBSSxDQUFDNk8sV0FBVyxDQUNkLGdCQUNBN0osVUFDSTdFLFNBQ0FxTixDQUFBQSxHQUFBQSxXQUFBQSxvQkFBb0IsRUFBQzt3QkFDbkJ4TixVQUFVUSxDQUFBQSxHQUFBQSxhQUFBQSxXQUFBQSxFQUFZUjt3QkFDdEIyRTtvQkFDRixJQUNKeEUsUUFDQVY7b0JBRUYsT0FBT3VGO2dCQUNUO1lBQ0Y7WUFFQXNCLE9BQU9tUyxnQkFBZ0IsQ0FBQyxZQUFZLElBQUksQ0FBQ2QsVUFBVTtZQUVuRCwyREFBMkQ7WUFDM0QsbURBQW1EO1lBQ25ELElBQUk1WSxLQUFxQyxFQUFFLEVBSTFDO1FBQ0g7SUFDRjtBQXlyREY7QUFqNERxQkgsT0E2Q1o0UCxNQUFBQSxHQUFtQ21LLENBQUFBLEdBQUFBLE1BQUFBLE9BQUkiLCJzb3VyY2VzIjpbIkQ6XFxzcmNcXHNoYXJlZFxcbGliXFxyb3V0ZXJcXHJvdXRlci50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvLyB0c2xpbnQ6ZGlzYWJsZTpuby1jb25zb2xlXG5pbXBvcnQgdHlwZSB7IENvbXBvbmVudFR5cGUgfSBmcm9tICdyZWFjdCdcbmltcG9ydCB0eXBlIHsgRG9tYWluTG9jYWxlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmVyL2NvbmZpZydcbmltcG9ydCB0eXBlIHsgTWl0dEVtaXR0ZXIgfSBmcm9tICcuLi9taXR0J1xuaW1wb3J0IHR5cGUgeyBQYXJzZWRVcmxRdWVyeSB9IGZyb20gJ3F1ZXJ5c3RyaW5nJ1xuaW1wb3J0IHR5cGUgeyBSb3V0ZXJFdmVudCB9IGZyb20gJy4uLy4uLy4uL2NsaWVudC9yb3V0ZXInXG5pbXBvcnQgdHlwZSB7IFN0eWxlU2hlZXRUdXBsZSB9IGZyb20gJy4uLy4uLy4uL2NsaWVudC9wYWdlLWxvYWRlcidcbmltcG9ydCB0eXBlIHsgVXJsT2JqZWN0IH0gZnJvbSAndXJsJ1xuaW1wb3J0IHR5cGUgUGFnZUxvYWRlciBmcm9tICcuLi8uLi8uLi9jbGllbnQvcGFnZS1sb2FkZXInXG5pbXBvcnQgdHlwZSB7IEFwcENvbnRleHRUeXBlLCBOZXh0UGFnZUNvbnRleHQsIE5FWFRfREFUQSB9IGZyb20gJy4uL3V0aWxzJ1xuaW1wb3J0IHsgcmVtb3ZlVHJhaWxpbmdTbGFzaCB9IGZyb20gJy4vdXRpbHMvcmVtb3ZlLXRyYWlsaW5nLXNsYXNoJ1xuaW1wb3J0IHtcbiAgZ2V0Q2xpZW50QnVpbGRNYW5pZmVzdCxcbiAgaXNBc3NldEVycm9yLFxuICBtYXJrQXNzZXRFcnJvcixcbn0gZnJvbSAnLi4vLi4vLi4vY2xpZW50L3JvdXRlLWxvYWRlcidcbmltcG9ydCB7IGhhbmRsZUNsaWVudFNjcmlwdExvYWQgfSBmcm9tICcuLi8uLi8uLi9jbGllbnQvc2NyaXB0J1xuaW1wb3J0IGlzRXJyb3IsIHsgZ2V0UHJvcGVyRXJyb3IgfSBmcm9tICcuLi8uLi8uLi9saWIvaXMtZXJyb3InXG5pbXBvcnQgeyBkZW5vcm1hbGl6ZVBhZ2VQYXRoIH0gZnJvbSAnLi4vcGFnZS1wYXRoL2Rlbm9ybWFsaXplLXBhZ2UtcGF0aCdcbmltcG9ydCB7IG5vcm1hbGl6ZUxvY2FsZVBhdGggfSBmcm9tICcuLi9pMThuL25vcm1hbGl6ZS1sb2NhbGUtcGF0aCdcbmltcG9ydCBtaXR0IGZyb20gJy4uL21pdHQnXG5pbXBvcnQgeyBnZXRMb2NhdGlvbk9yaWdpbiwgZ2V0VVJMLCBsb2FkR2V0SW5pdGlhbFByb3BzLCBTVCB9IGZyb20gJy4uL3V0aWxzJ1xuaW1wb3J0IHsgaXNEeW5hbWljUm91dGUgfSBmcm9tICcuL3V0aWxzL2lzLWR5bmFtaWMnXG5pbXBvcnQgeyBwYXJzZVJlbGF0aXZlVXJsIH0gZnJvbSAnLi91dGlscy9wYXJzZS1yZWxhdGl2ZS11cmwnXG5pbXBvcnQgeyBnZXRSb3V0ZU1hdGNoZXIgfSBmcm9tICcuL3V0aWxzL3JvdXRlLW1hdGNoZXInXG5pbXBvcnQgeyBnZXRSb3V0ZVJlZ2V4IH0gZnJvbSAnLi91dGlscy9yb3V0ZS1yZWdleCdcbmltcG9ydCB7IGZvcm1hdFdpdGhWYWxpZGF0aW9uIH0gZnJvbSAnLi91dGlscy9mb3JtYXQtdXJsJ1xuaW1wb3J0IHsgZGV0ZWN0RG9tYWluTG9jYWxlIH0gZnJvbSAnLi4vLi4vLi4vY2xpZW50L2RldGVjdC1kb21haW4tbG9jYWxlJ1xuaW1wb3J0IHsgcGFyc2VQYXRoIH0gZnJvbSAnLi91dGlscy9wYXJzZS1wYXRoJ1xuaW1wb3J0IHsgYWRkTG9jYWxlIH0gZnJvbSAnLi4vLi4vLi4vY2xpZW50L2FkZC1sb2NhbGUnXG5pbXBvcnQgeyByZW1vdmVMb2NhbGUgfSBmcm9tICcuLi8uLi8uLi9jbGllbnQvcmVtb3ZlLWxvY2FsZSdcbmltcG9ydCB7IHJlbW92ZUJhc2VQYXRoIH0gZnJvbSAnLi4vLi4vLi4vY2xpZW50L3JlbW92ZS1iYXNlLXBhdGgnXG5pbXBvcnQgeyBhZGRCYXNlUGF0aCB9IGZyb20gJy4uLy4uLy4uL2NsaWVudC9hZGQtYmFzZS1wYXRoJ1xuaW1wb3J0IHsgaGFzQmFzZVBhdGggfSBmcm9tICcuLi8uLi8uLi9jbGllbnQvaGFzLWJhc2UtcGF0aCdcbmltcG9ydCB7IHJlc29sdmVIcmVmIH0gZnJvbSAnLi4vLi4vLi4vY2xpZW50L3Jlc29sdmUtaHJlZidcbmltcG9ydCB7IGlzQVBJUm91dGUgfSBmcm9tICcuLi8uLi8uLi9saWIvaXMtYXBpLXJvdXRlJ1xuaW1wb3J0IHsgZ2V0TmV4dFBhdGhuYW1lSW5mbyB9IGZyb20gJy4vdXRpbHMvZ2V0LW5leHQtcGF0aG5hbWUtaW5mbydcbmltcG9ydCB7IGZvcm1hdE5leHRQYXRobmFtZUluZm8gfSBmcm9tICcuL3V0aWxzL2Zvcm1hdC1uZXh0LXBhdGhuYW1lLWluZm8nXG5pbXBvcnQgeyBjb21wYXJlUm91dGVyU3RhdGVzIH0gZnJvbSAnLi91dGlscy9jb21wYXJlLXN0YXRlcydcbmltcG9ydCB7IGlzTG9jYWxVUkwgfSBmcm9tICcuL3V0aWxzL2lzLWxvY2FsLXVybCdcbmltcG9ydCB7IGlzQm90IH0gZnJvbSAnLi91dGlscy9pcy1ib3QnXG5pbXBvcnQgeyBvbWl0IH0gZnJvbSAnLi91dGlscy9vbWl0J1xuaW1wb3J0IHsgaW50ZXJwb2xhdGVBcyB9IGZyb20gJy4vdXRpbHMvaW50ZXJwb2xhdGUtYXMnXG5pbXBvcnQgeyBkaXNhYmxlU21vb3RoU2Nyb2xsRHVyaW5nUm91dGVUcmFuc2l0aW9uIH0gZnJvbSAnLi91dGlscy9kaXNhYmxlLXNtb290aC1zY3JvbGwnXG5pbXBvcnQgdHlwZSB7IFBhcmFtcyB9IGZyb20gJy4uLy4uLy4uL3NlcnZlci9yZXF1ZXN0L3BhcmFtcydcbmltcG9ydCB7IE1BVENIRURfUEFUSF9IRUFERVIgfSBmcm9tICcuLi8uLi8uLi9saWIvY29uc3RhbnRzJ1xuXG5sZXQgcmVzb2x2ZVJld3JpdGVzOiB0eXBlb2YgaW1wb3J0KCcuL3V0aWxzL3Jlc29sdmUtcmV3cml0ZXMnKS5kZWZhdWx0XG5pZiAocHJvY2Vzcy5lbnYuX19ORVhUX0hBU19SRVdSSVRFUykge1xuICByZXNvbHZlUmV3cml0ZXMgPSAoXG4gICAgcmVxdWlyZSgnLi91dGlscy9yZXNvbHZlLXJld3JpdGVzJykgYXMgdHlwZW9mIGltcG9ydCgnLi91dGlscy9yZXNvbHZlLXJld3JpdGVzJylcbiAgKS5kZWZhdWx0XG59XG5cbmRlY2xhcmUgZ2xvYmFsIHtcbiAgaW50ZXJmYWNlIFdpbmRvdyB7XG4gICAgLyogcHJvZCAqL1xuICAgIF9fTkVYVF9EQVRBX186IE5FWFRfREFUQVxuICB9XG59XG5cbmludGVyZmFjZSBSb3V0ZVByb3BlcnRpZXMge1xuICBzaGFsbG93OiBib29sZWFuXG59XG5cbmludGVyZmFjZSBUcmFuc2l0aW9uT3B0aW9ucyB7XG4gIHNoYWxsb3c/OiBib29sZWFuXG4gIGxvY2FsZT86IHN0cmluZyB8IGZhbHNlXG4gIHNjcm9sbD86IGJvb2xlYW5cbiAgdW5zdGFibGVfc2tpcENsaWVudENhY2hlPzogYm9vbGVhblxufVxuXG5pbnRlcmZhY2UgTmV4dEhpc3RvcnlTdGF0ZSB7XG4gIHVybDogc3RyaW5nXG4gIGFzOiBzdHJpbmdcbiAgb3B0aW9uczogVHJhbnNpdGlvbk9wdGlvbnNcbn1cblxuZXhwb3J0IHR5cGUgSGlzdG9yeVN0YXRlID1cbiAgfCBudWxsXG4gIHwgeyBfX05BOiB0cnVlOyBfX04/OiBmYWxzZSB9XG4gIHwgeyBfX046IGZhbHNlOyBfX05BPzogZmFsc2UgfVxuICB8ICh7IF9fTkE/OiBmYWxzZTsgX19OOiB0cnVlOyBrZXk6IHN0cmluZyB9ICYgTmV4dEhpc3RvcnlTdGF0ZSlcblxuZnVuY3Rpb24gYnVpbGRDYW5jZWxsYXRpb25FcnJvcigpIHtcbiAgcmV0dXJuIE9iamVjdC5hc3NpZ24obmV3IEVycm9yKCdSb3V0ZSBDYW5jZWxsZWQnKSwge1xuICAgIGNhbmNlbGxlZDogdHJ1ZSxcbiAgfSlcbn1cblxuaW50ZXJmYWNlIE1pZGRsZXdhcmVFZmZlY3RQYXJhbXM8VCBleHRlbmRzIEZldGNoRGF0YU91dHB1dD4ge1xuICBmZXRjaERhdGE/OiAoKSA9PiBQcm9taXNlPFQ+XG4gIGxvY2FsZT86IHN0cmluZ1xuICBhc1BhdGg6IHN0cmluZ1xuICByb3V0ZXI6IFJvdXRlclxufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gbWF0Y2hlc01pZGRsZXdhcmU8VCBleHRlbmRzIEZldGNoRGF0YU91dHB1dD4oXG4gIG9wdGlvbnM6IE1pZGRsZXdhcmVFZmZlY3RQYXJhbXM8VD5cbik6IFByb21pc2U8Ym9vbGVhbj4ge1xuICBjb25zdCBtYXRjaGVycyA9IGF3YWl0IFByb21pc2UucmVzb2x2ZShcbiAgICBvcHRpb25zLnJvdXRlci5wYWdlTG9hZGVyLmdldE1pZGRsZXdhcmUoKVxuICApXG4gIGlmICghbWF0Y2hlcnMpIHJldHVybiBmYWxzZVxuXG4gIGNvbnN0IHsgcGF0aG5hbWU6IGFzUGF0aG5hbWUgfSA9IHBhcnNlUGF0aChvcHRpb25zLmFzUGF0aClcbiAgLy8gcmVtb3ZlIGJhc2VQYXRoIGZpcnN0IHNpbmNlIHBhdGggcHJlZml4IGhhcyB0byBiZSBpbiB0aGUgb3JkZXIgb2YgYC8ke2Jhc2VQYXRofS8ke2xvY2FsZX1gXG4gIGNvbnN0IGNsZWFuZWRBcyA9IGhhc0Jhc2VQYXRoKGFzUGF0aG5hbWUpXG4gICAgPyByZW1vdmVCYXNlUGF0aChhc1BhdGhuYW1lKVxuICAgIDogYXNQYXRobmFtZVxuICBjb25zdCBhc1dpdGhCYXNlUGF0aEFuZExvY2FsZSA9IGFkZEJhc2VQYXRoKFxuICAgIGFkZExvY2FsZShjbGVhbmVkQXMsIG9wdGlvbnMubG9jYWxlKVxuICApXG5cbiAgLy8gQ2hlY2sgb25seSBwYXRoIG1hdGNoIG9uIGNsaWVudC4gTWF0Y2hpbmcgXCJoYXNcIiBzaG91bGQgYmUgZG9uZSBvbiBzZXJ2ZXJcbiAgLy8gd2hlcmUgd2UgY2FuIGFjY2VzcyBtb3JlIGluZm8gc3VjaCBhcyBoZWFkZXJzLCBIdHRwT25seSBjb29raWUsIGV0Yy5cbiAgcmV0dXJuIG1hdGNoZXJzLnNvbWUoKG0pID0+XG4gICAgbmV3IFJlZ0V4cChtLnJlZ2V4cCkudGVzdChhc1dpdGhCYXNlUGF0aEFuZExvY2FsZSlcbiAgKVxufVxuXG5mdW5jdGlvbiBzdHJpcE9yaWdpbih1cmw6IHN0cmluZykge1xuICBjb25zdCBvcmlnaW4gPSBnZXRMb2NhdGlvbk9yaWdpbigpXG5cbiAgcmV0dXJuIHVybC5zdGFydHNXaXRoKG9yaWdpbikgPyB1cmwuc3Vic3RyaW5nKG9yaWdpbi5sZW5ndGgpIDogdXJsXG59XG5cbmZ1bmN0aW9uIHByZXBhcmVVcmxBcyhyb3V0ZXI6IE5leHRSb3V0ZXIsIHVybDogVXJsLCBhcz86IFVybCkge1xuICAvLyBJZiB1cmwgYW5kIGFzIHByb3ZpZGVkIGFzIGFuIG9iamVjdCByZXByZXNlbnRhdGlvbixcbiAgLy8gd2UnbGwgZm9ybWF0IHRoZW0gaW50byB0aGUgc3RyaW5nIHZlcnNpb24gaGVyZS5cbiAgbGV0IFtyZXNvbHZlZEhyZWYsIHJlc29sdmVkQXNdID0gcmVzb2x2ZUhyZWYocm91dGVyLCB1cmwsIHRydWUpXG4gIGNvbnN0IG9yaWdpbiA9IGdldExvY2F0aW9uT3JpZ2luKClcbiAgY29uc3QgaHJlZldhc0Fic29sdXRlID0gcmVzb2x2ZWRIcmVmLnN0YXJ0c1dpdGgob3JpZ2luKVxuICBjb25zdCBhc1dhc0Fic29sdXRlID0gcmVzb2x2ZWRBcyAmJiByZXNvbHZlZEFzLnN0YXJ0c1dpdGgob3JpZ2luKVxuXG4gIHJlc29sdmVkSHJlZiA9IHN0cmlwT3JpZ2luKHJlc29sdmVkSHJlZilcbiAgcmVzb2x2ZWRBcyA9IHJlc29sdmVkQXMgPyBzdHJpcE9yaWdpbihyZXNvbHZlZEFzKSA6IHJlc29sdmVkQXNcblxuICBjb25zdCBwcmVwYXJlZFVybCA9IGhyZWZXYXNBYnNvbHV0ZSA/IHJlc29sdmVkSHJlZiA6IGFkZEJhc2VQYXRoKHJlc29sdmVkSHJlZilcbiAgY29uc3QgcHJlcGFyZWRBcyA9IGFzXG4gICAgPyBzdHJpcE9yaWdpbihyZXNvbHZlSHJlZihyb3V0ZXIsIGFzKSlcbiAgICA6IHJlc29sdmVkQXMgfHwgcmVzb2x2ZWRIcmVmXG5cbiAgcmV0dXJuIHtcbiAgICB1cmw6IHByZXBhcmVkVXJsLFxuICAgIGFzOiBhc1dhc0Fic29sdXRlID8gcHJlcGFyZWRBcyA6IGFkZEJhc2VQYXRoKHByZXBhcmVkQXMpLFxuICB9XG59XG5cbmZ1bmN0aW9uIHJlc29sdmVEeW5hbWljUm91dGUocGF0aG5hbWU6IHN0cmluZywgcGFnZXM6IHN0cmluZ1tdKSB7XG4gIGNvbnN0IGNsZWFuUGF0aG5hbWUgPSByZW1vdmVUcmFpbGluZ1NsYXNoKGRlbm9ybWFsaXplUGFnZVBhdGgocGF0aG5hbWUpKVxuICBpZiAoY2xlYW5QYXRobmFtZSA9PT0gJy80MDQnIHx8IGNsZWFuUGF0aG5hbWUgPT09ICcvX2Vycm9yJykge1xuICAgIHJldHVybiBwYXRobmFtZVxuICB9XG5cbiAgLy8gaGFuZGxlIHJlc29sdmluZyBocmVmIGZvciBkeW5hbWljIHJvdXRlc1xuICBpZiAoIXBhZ2VzLmluY2x1ZGVzKGNsZWFuUGF0aG5hbWUpKSB7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGFycmF5LWNhbGxiYWNrLXJldHVyblxuICAgIHBhZ2VzLnNvbWUoKHBhZ2UpID0+IHtcbiAgICAgIGlmIChpc0R5bmFtaWNSb3V0ZShwYWdlKSAmJiBnZXRSb3V0ZVJlZ2V4KHBhZ2UpLnJlLnRlc3QoY2xlYW5QYXRobmFtZSkpIHtcbiAgICAgICAgcGF0aG5hbWUgPSBwYWdlXG4gICAgICAgIHJldHVybiB0cnVlXG4gICAgICB9XG4gICAgfSlcbiAgfVxuICByZXR1cm4gcmVtb3ZlVHJhaWxpbmdTbGFzaChwYXRobmFtZSlcbn1cblxuZnVuY3Rpb24gZ2V0TWlkZGxld2FyZURhdGE8VCBleHRlbmRzIEZldGNoRGF0YU91dHB1dD4oXG4gIHNvdXJjZTogc3RyaW5nLFxuICByZXNwb25zZTogUmVzcG9uc2UsXG4gIG9wdGlvbnM6IE1pZGRsZXdhcmVFZmZlY3RQYXJhbXM8VD5cbikge1xuICBjb25zdCBuZXh0Q29uZmlnID0ge1xuICAgIGJhc2VQYXRoOiBvcHRpb25zLnJvdXRlci5iYXNlUGF0aCxcbiAgICBpMThuOiB7IGxvY2FsZXM6IG9wdGlvbnMucm91dGVyLmxvY2FsZXMgfSxcbiAgICB0cmFpbGluZ1NsYXNoOiBCb29sZWFuKHByb2Nlc3MuZW52Ll9fTkVYVF9UUkFJTElOR19TTEFTSCksXG4gIH1cbiAgY29uc3QgcmV3cml0ZUhlYWRlciA9IHJlc3BvbnNlLmhlYWRlcnMuZ2V0KCd4LW5leHRqcy1yZXdyaXRlJylcblxuICBsZXQgcmV3cml0ZVRhcmdldCA9XG4gICAgcmV3cml0ZUhlYWRlciB8fCByZXNwb25zZS5oZWFkZXJzLmdldCgneC1uZXh0anMtbWF0Y2hlZC1wYXRoJylcblxuICBjb25zdCBtYXRjaGVkUGF0aCA9IHJlc3BvbnNlLmhlYWRlcnMuZ2V0KE1BVENIRURfUEFUSF9IRUFERVIpXG5cbiAgaWYgKFxuICAgIG1hdGNoZWRQYXRoICYmXG4gICAgIXJld3JpdGVUYXJnZXQgJiZcbiAgICAhbWF0Y2hlZFBhdGguaW5jbHVkZXMoJ19fbmV4dF9kYXRhX2NhdGNoYWxsJykgJiZcbiAgICAhbWF0Y2hlZFBhdGguaW5jbHVkZXMoJy9fZXJyb3InKSAmJlxuICAgICFtYXRjaGVkUGF0aC5pbmNsdWRlcygnLzQwNCcpXG4gICkge1xuICAgIC8vIGxldmVyYWdlIHgtbWF0Y2hlZC1wYXRoIHRvIGRldGVjdCBuZXh0LmNvbmZpZy5qcyByZXdyaXRlc1xuICAgIHJld3JpdGVUYXJnZXQgPSBtYXRjaGVkUGF0aFxuICB9XG5cbiAgaWYgKHJld3JpdGVUYXJnZXQpIHtcbiAgICBpZiAoXG4gICAgICByZXdyaXRlVGFyZ2V0LnN0YXJ0c1dpdGgoJy8nKSB8fFxuICAgICAgcHJvY2Vzcy5lbnYuX19ORVhUX0VYVEVSTkFMX01JRERMRVdBUkVfUkVXUklURV9SRVNPTFZFXG4gICAgKSB7XG4gICAgICBjb25zdCBwYXJzZWRSZXdyaXRlVGFyZ2V0ID0gcGFyc2VSZWxhdGl2ZVVybChyZXdyaXRlVGFyZ2V0KVxuICAgICAgY29uc3QgcGF0aG5hbWVJbmZvID0gZ2V0TmV4dFBhdGhuYW1lSW5mbyhwYXJzZWRSZXdyaXRlVGFyZ2V0LnBhdGhuYW1lLCB7XG4gICAgICAgIG5leHRDb25maWcsXG4gICAgICAgIHBhcnNlRGF0YTogdHJ1ZSxcbiAgICAgIH0pXG5cbiAgICAgIGxldCBmc1BhdGhuYW1lID0gcmVtb3ZlVHJhaWxpbmdTbGFzaChwYXRobmFtZUluZm8ucGF0aG5hbWUpXG4gICAgICByZXR1cm4gUHJvbWlzZS5hbGwoW1xuICAgICAgICBvcHRpb25zLnJvdXRlci5wYWdlTG9hZGVyLmdldFBhZ2VMaXN0KCksXG4gICAgICAgIGdldENsaWVudEJ1aWxkTWFuaWZlc3QoKSxcbiAgICAgIF0pLnRoZW4oKFtwYWdlcywgeyBfX3Jld3JpdGVzOiByZXdyaXRlcyB9XTogYW55KSA9PiB7XG4gICAgICAgIGxldCBhcyA9IGFkZExvY2FsZShwYXRobmFtZUluZm8ucGF0aG5hbWUsIHBhdGhuYW1lSW5mby5sb2NhbGUpXG5cbiAgICAgICAgaWYgKFxuICAgICAgICAgIGlzRHluYW1pY1JvdXRlKGFzKSB8fFxuICAgICAgICAgICghcmV3cml0ZUhlYWRlciAmJlxuICAgICAgICAgICAgcGFnZXMuaW5jbHVkZXMoXG4gICAgICAgICAgICAgIG5vcm1hbGl6ZUxvY2FsZVBhdGgocmVtb3ZlQmFzZVBhdGgoYXMpLCBvcHRpb25zLnJvdXRlci5sb2NhbGVzKVxuICAgICAgICAgICAgICAgIC5wYXRobmFtZVxuICAgICAgICAgICAgKSlcbiAgICAgICAgKSB7XG4gICAgICAgICAgY29uc3QgcGFyc2VkU291cmNlID0gZ2V0TmV4dFBhdGhuYW1lSW5mbyhcbiAgICAgICAgICAgIHBhcnNlUmVsYXRpdmVVcmwoc291cmNlKS5wYXRobmFtZSxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgbmV4dENvbmZpZzogcHJvY2Vzcy5lbnYuX19ORVhUX0hBU19SRVdSSVRFU1xuICAgICAgICAgICAgICAgID8gdW5kZWZpbmVkXG4gICAgICAgICAgICAgICAgOiBuZXh0Q29uZmlnLFxuICAgICAgICAgICAgICBwYXJzZURhdGE6IHRydWUsXG4gICAgICAgICAgICB9XG4gICAgICAgICAgKVxuXG4gICAgICAgICAgYXMgPSBhZGRCYXNlUGF0aChwYXJzZWRTb3VyY2UucGF0aG5hbWUpXG4gICAgICAgICAgcGFyc2VkUmV3cml0ZVRhcmdldC5wYXRobmFtZSA9IGFzXG4gICAgICAgIH1cblxuICAgICAgICBpZiAocHJvY2Vzcy5lbnYuX19ORVhUX0hBU19SRVdSSVRFUykge1xuICAgICAgICAgIGNvbnN0IHJlc3VsdCA9IHJlc29sdmVSZXdyaXRlcyhcbiAgICAgICAgICAgIGFzLFxuICAgICAgICAgICAgcGFnZXMsXG4gICAgICAgICAgICByZXdyaXRlcyxcbiAgICAgICAgICAgIHBhcnNlZFJld3JpdGVUYXJnZXQucXVlcnksXG4gICAgICAgICAgICAocGF0aDogc3RyaW5nKSA9PiByZXNvbHZlRHluYW1pY1JvdXRlKHBhdGgsIHBhZ2VzKSxcbiAgICAgICAgICAgIG9wdGlvbnMucm91dGVyLmxvY2FsZXNcbiAgICAgICAgICApXG5cbiAgICAgICAgICBpZiAocmVzdWx0Lm1hdGNoZWRQYWdlKSB7XG4gICAgICAgICAgICBwYXJzZWRSZXdyaXRlVGFyZ2V0LnBhdGhuYW1lID0gcmVzdWx0LnBhcnNlZEFzLnBhdGhuYW1lXG4gICAgICAgICAgICBhcyA9IHBhcnNlZFJld3JpdGVUYXJnZXQucGF0aG5hbWVcbiAgICAgICAgICAgIE9iamVjdC5hc3NpZ24ocGFyc2VkUmV3cml0ZVRhcmdldC5xdWVyeSwgcmVzdWx0LnBhcnNlZEFzLnF1ZXJ5KVxuICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIGlmICghcGFnZXMuaW5jbHVkZXMoZnNQYXRobmFtZSkpIHtcbiAgICAgICAgICBjb25zdCByZXNvbHZlZFBhdGhuYW1lID0gcmVzb2x2ZUR5bmFtaWNSb3V0ZShmc1BhdGhuYW1lLCBwYWdlcylcblxuICAgICAgICAgIGlmIChyZXNvbHZlZFBhdGhuYW1lICE9PSBmc1BhdGhuYW1lKSB7XG4gICAgICAgICAgICBmc1BhdGhuYW1lID0gcmVzb2x2ZWRQYXRobmFtZVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IHJlc29sdmVkSHJlZiA9ICFwYWdlcy5pbmNsdWRlcyhmc1BhdGhuYW1lKVxuICAgICAgICAgID8gcmVzb2x2ZUR5bmFtaWNSb3V0ZShcbiAgICAgICAgICAgICAgbm9ybWFsaXplTG9jYWxlUGF0aChcbiAgICAgICAgICAgICAgICByZW1vdmVCYXNlUGF0aChwYXJzZWRSZXdyaXRlVGFyZ2V0LnBhdGhuYW1lKSxcbiAgICAgICAgICAgICAgICBvcHRpb25zLnJvdXRlci5sb2NhbGVzXG4gICAgICAgICAgICAgICkucGF0aG5hbWUsXG4gICAgICAgICAgICAgIHBhZ2VzXG4gICAgICAgICAgICApXG4gICAgICAgICAgOiBmc1BhdGhuYW1lXG5cbiAgICAgICAgaWYgKGlzRHluYW1pY1JvdXRlKHJlc29sdmVkSHJlZikpIHtcbiAgICAgICAgICBjb25zdCBtYXRjaGVzID0gZ2V0Um91dGVNYXRjaGVyKGdldFJvdXRlUmVnZXgocmVzb2x2ZWRIcmVmKSkoYXMpXG4gICAgICAgICAgT2JqZWN0LmFzc2lnbihwYXJzZWRSZXdyaXRlVGFyZ2V0LnF1ZXJ5LCBtYXRjaGVzIHx8IHt9KVxuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICB0eXBlOiAncmV3cml0ZScgYXMgY29uc3QsXG4gICAgICAgICAgcGFyc2VkQXM6IHBhcnNlZFJld3JpdGVUYXJnZXQsXG4gICAgICAgICAgcmVzb2x2ZWRIcmVmLFxuICAgICAgICB9XG4gICAgICB9KVxuICAgIH1cbiAgICBjb25zdCBzcmMgPSBwYXJzZVBhdGgoc291cmNlKVxuICAgIGNvbnN0IHBhdGhuYW1lID0gZm9ybWF0TmV4dFBhdGhuYW1lSW5mbyh7XG4gICAgICAuLi5nZXROZXh0UGF0aG5hbWVJbmZvKHNyYy5wYXRobmFtZSwgeyBuZXh0Q29uZmlnLCBwYXJzZURhdGE6IHRydWUgfSksXG4gICAgICBkZWZhdWx0TG9jYWxlOiBvcHRpb25zLnJvdXRlci5kZWZhdWx0TG9jYWxlLFxuICAgICAgYnVpbGRJZDogJycsXG4gICAgfSlcblxuICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUoe1xuICAgICAgdHlwZTogJ3JlZGlyZWN0LWV4dGVybmFsJyBhcyBjb25zdCxcbiAgICAgIGRlc3RpbmF0aW9uOiBgJHtwYXRobmFtZX0ke3NyYy5xdWVyeX0ke3NyYy5oYXNofWAsXG4gICAgfSlcbiAgfVxuXG4gIGNvbnN0IHJlZGlyZWN0VGFyZ2V0ID0gcmVzcG9uc2UuaGVhZGVycy5nZXQoJ3gtbmV4dGpzLXJlZGlyZWN0JylcblxuICBpZiAocmVkaXJlY3RUYXJnZXQpIHtcbiAgICBpZiAocmVkaXJlY3RUYXJnZXQuc3RhcnRzV2l0aCgnLycpKSB7XG4gICAgICBjb25zdCBzcmMgPSBwYXJzZVBhdGgocmVkaXJlY3RUYXJnZXQpXG4gICAgICBjb25zdCBwYXRobmFtZSA9IGZvcm1hdE5leHRQYXRobmFtZUluZm8oe1xuICAgICAgICAuLi5nZXROZXh0UGF0aG5hbWVJbmZvKHNyYy5wYXRobmFtZSwgeyBuZXh0Q29uZmlnLCBwYXJzZURhdGE6IHRydWUgfSksXG4gICAgICAgIGRlZmF1bHRMb2NhbGU6IG9wdGlvbnMucm91dGVyLmRlZmF1bHRMb2NhbGUsXG4gICAgICAgIGJ1aWxkSWQ6ICcnLFxuICAgICAgfSlcblxuICAgICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZSh7XG4gICAgICAgIHR5cGU6ICdyZWRpcmVjdC1pbnRlcm5hbCcgYXMgY29uc3QsXG4gICAgICAgIG5ld0FzOiBgJHtwYXRobmFtZX0ke3NyYy5xdWVyeX0ke3NyYy5oYXNofWAsXG4gICAgICAgIG5ld1VybDogYCR7cGF0aG5hbWV9JHtzcmMucXVlcnl9JHtzcmMuaGFzaH1gLFxuICAgICAgfSlcbiAgICB9XG5cbiAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKHtcbiAgICAgIHR5cGU6ICdyZWRpcmVjdC1leHRlcm5hbCcgYXMgY29uc3QsXG4gICAgICBkZXN0aW5hdGlvbjogcmVkaXJlY3RUYXJnZXQsXG4gICAgfSlcbiAgfVxuXG4gIHJldHVybiBQcm9taXNlLnJlc29sdmUoeyB0eXBlOiAnbmV4dCcgYXMgY29uc3QgfSlcbn1cblxuaW50ZXJmYWNlIFdpdGhNaWRkbGV3YXJlRWZmZWN0c091dHB1dCBleHRlbmRzIEZldGNoRGF0YU91dHB1dCB7XG4gIGVmZmVjdDogQXdhaXRlZDxSZXR1cm5UeXBlPHR5cGVvZiBnZXRNaWRkbGV3YXJlRGF0YT4+XG59XG5cbmFzeW5jIGZ1bmN0aW9uIHdpdGhNaWRkbGV3YXJlRWZmZWN0czxUIGV4dGVuZHMgRmV0Y2hEYXRhT3V0cHV0PihcbiAgb3B0aW9uczogTWlkZGxld2FyZUVmZmVjdFBhcmFtczxUPlxuKTogUHJvbWlzZTxXaXRoTWlkZGxld2FyZUVmZmVjdHNPdXRwdXQgfCBudWxsPiB7XG4gIGNvbnN0IG1hdGNoZXMgPSBhd2FpdCBtYXRjaGVzTWlkZGxld2FyZShvcHRpb25zKVxuICBpZiAoIW1hdGNoZXMgfHwgIW9wdGlvbnMuZmV0Y2hEYXRhKSB7XG4gICAgcmV0dXJuIG51bGxcbiAgfVxuXG4gIGNvbnN0IGRhdGEgPSBhd2FpdCBvcHRpb25zLmZldGNoRGF0YSgpXG5cbiAgY29uc3QgZWZmZWN0ID0gYXdhaXQgZ2V0TWlkZGxld2FyZURhdGEoZGF0YS5kYXRhSHJlZiwgZGF0YS5yZXNwb25zZSwgb3B0aW9ucylcblxuICByZXR1cm4ge1xuICAgIGRhdGFIcmVmOiBkYXRhLmRhdGFIcmVmLFxuICAgIGpzb246IGRhdGEuanNvbixcbiAgICByZXNwb25zZTogZGF0YS5yZXNwb25zZSxcbiAgICB0ZXh0OiBkYXRhLnRleHQsXG4gICAgY2FjaGVLZXk6IGRhdGEuY2FjaGVLZXksXG4gICAgZWZmZWN0LFxuICB9XG59XG5cbmV4cG9ydCB0eXBlIFVybCA9IFVybE9iamVjdCB8IHN0cmluZ1xuXG5leHBvcnQgdHlwZSBCYXNlUm91dGVyID0ge1xuICByb3V0ZTogc3RyaW5nXG4gIHBhdGhuYW1lOiBzdHJpbmdcbiAgcXVlcnk6IFBhcnNlZFVybFF1ZXJ5XG4gIGFzUGF0aDogc3RyaW5nXG4gIGJhc2VQYXRoOiBzdHJpbmdcbiAgbG9jYWxlPzogc3RyaW5nIHwgdW5kZWZpbmVkXG4gIGxvY2FsZXM/OiByZWFkb25seSBzdHJpbmdbXSB8IHVuZGVmaW5lZFxuICBkZWZhdWx0TG9jYWxlPzogc3RyaW5nIHwgdW5kZWZpbmVkXG4gIGRvbWFpbkxvY2FsZXM/OiByZWFkb25seSBEb21haW5Mb2NhbGVbXSB8IHVuZGVmaW5lZFxuICBpc0xvY2FsZURvbWFpbjogYm9vbGVhblxufVxuXG5leHBvcnQgdHlwZSBOZXh0Um91dGVyID0gQmFzZVJvdXRlciAmXG4gIFBpY2s8XG4gICAgUm91dGVyLFxuICAgIHwgJ3B1c2gnXG4gICAgfCAncmVwbGFjZSdcbiAgICB8ICdyZWxvYWQnXG4gICAgfCAnYmFjaydcbiAgICB8ICdmb3J3YXJkJ1xuICAgIHwgJ3ByZWZldGNoJ1xuICAgIHwgJ2JlZm9yZVBvcFN0YXRlJ1xuICAgIHwgJ2V2ZW50cydcbiAgICB8ICdpc0ZhbGxiYWNrJ1xuICAgIHwgJ2lzUmVhZHknXG4gICAgfCAnaXNQcmV2aWV3J1xuICA+XG5cbmV4cG9ydCB0eXBlIFByZWZldGNoT3B0aW9ucyA9IHtcbiAgcHJpb3JpdHk/OiBib29sZWFuXG4gIGxvY2FsZT86IHN0cmluZyB8IGZhbHNlXG4gIHVuc3RhYmxlX3NraXBDbGllbnRDYWNoZT86IGJvb2xlYW5cbn1cblxuZXhwb3J0IHR5cGUgUHJpdmF0ZVJvdXRlSW5mbyA9XG4gIHwgKE9taXQ8Q29tcGxldGVQcml2YXRlUm91dGVJbmZvLCAnc3R5bGVTaGVldHMnPiAmIHsgaW5pdGlhbDogdHJ1ZSB9KVxuICB8IENvbXBsZXRlUHJpdmF0ZVJvdXRlSW5mb1xuXG5leHBvcnQgdHlwZSBDb21wbGV0ZVByaXZhdGVSb3V0ZUluZm8gPSB7XG4gIENvbXBvbmVudDogQ29tcG9uZW50VHlwZVxuICBzdHlsZVNoZWV0czogU3R5bGVTaGVldFR1cGxlW11cbiAgX19OX1NTRz86IGJvb2xlYW5cbiAgX19OX1NTUD86IGJvb2xlYW5cbiAgcHJvcHM/OiBSZWNvcmQ8c3RyaW5nLCBhbnk+XG4gIGVycj86IEVycm9yXG4gIGVycm9yPzogYW55XG4gIHJvdXRlPzogc3RyaW5nXG4gIHJlc29sdmVkQXM/OiBzdHJpbmdcbiAgcXVlcnk/OiBQYXJzZWRVcmxRdWVyeVxufVxuXG5leHBvcnQgdHlwZSBBcHBQcm9wcyA9IFBpY2s8Q29tcGxldGVQcml2YXRlUm91dGVJbmZvLCAnQ29tcG9uZW50JyB8ICdlcnInPiAmIHtcbiAgcm91dGVyOiBSb3V0ZXJcbn0gJiBSZWNvcmQ8c3RyaW5nLCBhbnk+XG5leHBvcnQgdHlwZSBBcHBDb21wb25lbnQgPSBDb21wb25lbnRUeXBlPEFwcFByb3BzPlxuXG50eXBlIFN1YnNjcmlwdGlvbiA9IChcbiAgZGF0YTogUHJpdmF0ZVJvdXRlSW5mbyxcbiAgQXBwOiBBcHBDb21wb25lbnQsXG4gIHJlc2V0U2Nyb2xsOiB7IHg6IG51bWJlcjsgeTogbnVtYmVyIH0gfCBudWxsXG4pID0+IFByb21pc2U8dm9pZD5cblxudHlwZSBCZWZvcmVQb3BTdGF0ZUNhbGxiYWNrID0gKHN0YXRlOiBOZXh0SGlzdG9yeVN0YXRlKSA9PiBib29sZWFuXG5cbnR5cGUgQ29tcG9uZW50TG9hZENhbmNlbCA9ICgoKSA9PiB2b2lkKSB8IG51bGxcblxudHlwZSBIaXN0b3J5TWV0aG9kID0gJ3JlcGxhY2VTdGF0ZScgfCAncHVzaFN0YXRlJ1xuXG5jb25zdCBtYW51YWxTY3JvbGxSZXN0b3JhdGlvbiA9XG4gIHByb2Nlc3MuZW52Ll9fTkVYVF9TQ1JPTExfUkVTVE9SQVRJT04gJiZcbiAgdHlwZW9mIHdpbmRvdyAhPT0gJ3VuZGVmaW5lZCcgJiZcbiAgJ3Njcm9sbFJlc3RvcmF0aW9uJyBpbiB3aW5kb3cuaGlzdG9yeSAmJlxuICAhIShmdW5jdGlvbiAoKSB7XG4gICAgdHJ5IHtcbiAgICAgIGxldCB2ID0gJ19fbmV4dCdcbiAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1zZXF1ZW5jZXNcbiAgICAgIHJldHVybiBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHYsIHYpLCBzZXNzaW9uU3RvcmFnZS5yZW1vdmVJdGVtKHYpLCB0cnVlXG4gICAgfSBjYXRjaCAobikge31cbiAgfSkoKVxuXG5jb25zdCBTU0dfREFUQV9OT1RfRk9VTkQgPSBTeW1ib2woJ1NTR19EQVRBX05PVF9GT1VORCcpXG5cbmZ1bmN0aW9uIGZldGNoUmV0cnkoXG4gIHVybDogc3RyaW5nLFxuICBhdHRlbXB0czogbnVtYmVyLFxuICBvcHRpb25zOiBQaWNrPFJlcXVlc3RJbml0LCAnbWV0aG9kJyB8ICdoZWFkZXJzJz5cbik6IFByb21pc2U8UmVzcG9uc2U+IHtcbiAgcmV0dXJuIGZldGNoKHVybCwge1xuICAgIC8vIENvb2tpZXMgYXJlIHJlcXVpcmVkIHRvIGJlIHByZXNlbnQgZm9yIE5leHQuanMnIFNTRyBcIlByZXZpZXcgTW9kZVwiLlxuICAgIC8vIENvb2tpZXMgbWF5IGFsc28gYmUgcmVxdWlyZWQgZm9yIGBnZXRTZXJ2ZXJTaWRlUHJvcHNgLlxuICAgIC8vXG4gICAgLy8gPiBgZmV0Y2hgIHdvbuKAmXQgc2VuZCBjb29raWVzLCB1bmxlc3MgeW91IHNldCB0aGUgY3JlZGVudGlhbHMgaW5pdFxuICAgIC8vID4gb3B0aW9uLlxuICAgIC8vIGh0dHBzOi8vZGV2ZWxvcGVyLm1vemlsbGEub3JnL2RvY3MvV2ViL0FQSS9GZXRjaF9BUEkvVXNpbmdfRmV0Y2hcbiAgICAvL1xuICAgIC8vID4gRm9yIG1heGltdW0gYnJvd3NlciBjb21wYXRpYmlsaXR5IHdoZW4gaXQgY29tZXMgdG8gc2VuZGluZyAmXG4gICAgLy8gPiByZWNlaXZpbmcgY29va2llcywgYWx3YXlzIHN1cHBseSB0aGUgYGNyZWRlbnRpYWxzOiAnc2FtZS1vcmlnaW4nYFxuICAgIC8vID4gb3B0aW9uIGluc3RlYWQgb2YgcmVseWluZyBvbiB0aGUgZGVmYXVsdC5cbiAgICAvLyBodHRwczovL2dpdGh1Yi5jb20vZ2l0aHViL2ZldGNoI2NhdmVhdHNcbiAgICBjcmVkZW50aWFsczogJ3NhbWUtb3JpZ2luJyxcbiAgICBtZXRob2Q6IG9wdGlvbnMubWV0aG9kIHx8ICdHRVQnLFxuICAgIGhlYWRlcnM6IE9iamVjdC5hc3NpZ24oe30sIG9wdGlvbnMuaGVhZGVycywge1xuICAgICAgJ3gtbmV4dGpzLWRhdGEnOiAnMScsXG4gICAgfSksXG4gIH0pLnRoZW4oKHJlc3BvbnNlKSA9PiB7XG4gICAgcmV0dXJuICFyZXNwb25zZS5vayAmJiBhdHRlbXB0cyA+IDEgJiYgcmVzcG9uc2Uuc3RhdHVzID49IDUwMFxuICAgICAgPyBmZXRjaFJldHJ5KHVybCwgYXR0ZW1wdHMgLSAxLCBvcHRpb25zKVxuICAgICAgOiByZXNwb25zZVxuICB9KVxufVxuXG5pbnRlcmZhY2UgRmV0Y2hEYXRhT3V0cHV0IHtcbiAgZGF0YUhyZWY6IHN0cmluZ1xuICBqc29uOiBSZWNvcmQ8c3RyaW5nLCBhbnk+IHwgbnVsbFxuICByZXNwb25zZTogUmVzcG9uc2VcbiAgdGV4dDogc3RyaW5nXG4gIGNhY2hlS2V5OiBzdHJpbmdcbn1cblxuaW50ZXJmYWNlIEZldGNoTmV4dERhdGFQYXJhbXMge1xuICBkYXRhSHJlZjogc3RyaW5nXG4gIGlzU2VydmVyUmVuZGVyOiBib29sZWFuXG4gIHBhcnNlSlNPTjogYm9vbGVhbiB8IHVuZGVmaW5lZFxuICBoYXNNaWRkbGV3YXJlPzogYm9vbGVhblxuICBpbmZsaWdodENhY2hlOiBOZXh0RGF0YUNhY2hlXG4gIHBlcnNpc3RDYWNoZTogYm9vbGVhblxuICBpc1ByZWZldGNoOiBib29sZWFuXG4gIGlzQmFja2dyb3VuZD86IGJvb2xlYW5cbiAgdW5zdGFibGVfc2tpcENsaWVudENhY2hlPzogYm9vbGVhblxufVxuXG5mdW5jdGlvbiB0cnlUb1BhcnNlQXNKU09OKHRleHQ6IHN0cmluZykge1xuICB0cnkge1xuICAgIHJldHVybiBKU09OLnBhcnNlKHRleHQpXG4gIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgcmV0dXJuIG51bGxcbiAgfVxufVxuXG5mdW5jdGlvbiBmZXRjaE5leHREYXRhKHtcbiAgZGF0YUhyZWYsXG4gIGluZmxpZ2h0Q2FjaGUsXG4gIGlzUHJlZmV0Y2gsXG4gIGhhc01pZGRsZXdhcmUsXG4gIGlzU2VydmVyUmVuZGVyLFxuICBwYXJzZUpTT04sXG4gIHBlcnNpc3RDYWNoZSxcbiAgaXNCYWNrZ3JvdW5kLFxuICB1bnN0YWJsZV9za2lwQ2xpZW50Q2FjaGUsXG59OiBGZXRjaE5leHREYXRhUGFyYW1zKTogUHJvbWlzZTxGZXRjaERhdGFPdXRwdXQ+IHtcbiAgY29uc3QgeyBocmVmOiBjYWNoZUtleSB9ID0gbmV3IFVSTChkYXRhSHJlZiwgd2luZG93LmxvY2F0aW9uLmhyZWYpXG4gIGNvbnN0IGdldERhdGEgPSAocGFyYW1zPzogeyBtZXRob2Q/OiAnSEVBRCcgfCAnR0VUJyB9KSA9PlxuICAgIGZldGNoUmV0cnkoZGF0YUhyZWYsIGlzU2VydmVyUmVuZGVyID8gMyA6IDEsIHtcbiAgICAgIGhlYWRlcnM6IE9iamVjdC5hc3NpZ24oXG4gICAgICAgIHt9IGFzIEhlYWRlcnNJbml0LFxuICAgICAgICBpc1ByZWZldGNoID8geyBwdXJwb3NlOiAncHJlZmV0Y2gnIH0gOiB7fSxcbiAgICAgICAgaXNQcmVmZXRjaCAmJiBoYXNNaWRkbGV3YXJlID8geyAneC1taWRkbGV3YXJlLXByZWZldGNoJzogJzEnIH0gOiB7fSxcbiAgICAgICAgcHJvY2Vzcy5lbnYuTkVYVF9ERVBMT1lNRU5UX0lEXG4gICAgICAgICAgPyB7ICd4LWRlcGxveW1lbnQtaWQnOiBwcm9jZXNzLmVudi5ORVhUX0RFUExPWU1FTlRfSUQgfVxuICAgICAgICAgIDoge31cbiAgICAgICksXG4gICAgICBtZXRob2Q6IHBhcmFtcz8ubWV0aG9kID8/ICdHRVQnLFxuICAgIH0pXG4gICAgICAudGhlbigocmVzcG9uc2UpID0+IHtcbiAgICAgICAgaWYgKHJlc3BvbnNlLm9rICYmIHBhcmFtcz8ubWV0aG9kID09PSAnSEVBRCcpIHtcbiAgICAgICAgICByZXR1cm4geyBkYXRhSHJlZiwgcmVzcG9uc2UsIHRleHQ6ICcnLCBqc29uOiB7fSwgY2FjaGVLZXkgfVxuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHJlc3BvbnNlLnRleHQoKS50aGVuKCh0ZXh0KSA9PiB7XG4gICAgICAgICAgaWYgKCFyZXNwb25zZS5vaykge1xuICAgICAgICAgICAgLyoqXG4gICAgICAgICAgICAgKiBXaGVuIHRoZSBkYXRhIHJlc3BvbnNlIGlzIGEgcmVkaXJlY3QgYmVjYXVzZSBvZiBhIG1pZGRsZXdhcmVcbiAgICAgICAgICAgICAqIHdlIGRvIG5vdCBjb25zaWRlciBpdCBhbiBlcnJvci4gVGhlIGhlYWRlcnMgbXVzdCBicmluZyB0aGVcbiAgICAgICAgICAgICAqIG1hcHBlZCBsb2NhdGlvbi5cbiAgICAgICAgICAgICAqIFRPRE86IENoYW5nZSB0aGUgc3RhdHVzIGNvZGUgaW4gdGhlIGhhbmRsZXIuXG4gICAgICAgICAgICAgKi9cbiAgICAgICAgICAgIGlmIChcbiAgICAgICAgICAgICAgaGFzTWlkZGxld2FyZSAmJlxuICAgICAgICAgICAgICBbMzAxLCAzMDIsIDMwNywgMzA4XS5pbmNsdWRlcyhyZXNwb25zZS5zdGF0dXMpXG4gICAgICAgICAgICApIHtcbiAgICAgICAgICAgICAgcmV0dXJuIHsgZGF0YUhyZWYsIHJlc3BvbnNlLCB0ZXh0LCBqc29uOiB7fSwgY2FjaGVLZXkgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpZiAocmVzcG9uc2Uuc3RhdHVzID09PSA0MDQpIHtcbiAgICAgICAgICAgICAgaWYgKHRyeVRvUGFyc2VBc0pTT04odGV4dCk/Lm5vdEZvdW5kKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICAgIGRhdGFIcmVmLFxuICAgICAgICAgICAgICAgICAganNvbjogeyBub3RGb3VuZDogU1NHX0RBVEFfTk9UX0ZPVU5EIH0sXG4gICAgICAgICAgICAgICAgICByZXNwb25zZSxcbiAgICAgICAgICAgICAgICAgIHRleHQsXG4gICAgICAgICAgICAgICAgICBjYWNoZUtleSxcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgY29uc3QgZXJyb3IgPSBuZXcgRXJyb3IoYEZhaWxlZCB0byBsb2FkIHN0YXRpYyBwcm9wc2ApXG5cbiAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICogV2Ugc2hvdWxkIG9ubHkgdHJpZ2dlciBhIHNlcnZlci1zaWRlIHRyYW5zaXRpb24gaWYgdGhpcyB3YXNcbiAgICAgICAgICAgICAqIGNhdXNlZCBvbiBhIGNsaWVudC1zaWRlIHRyYW5zaXRpb24uIE90aGVyd2lzZSwgd2UnZCBnZXQgaW50b1xuICAgICAgICAgICAgICogYW4gaW5maW5pdGUgbG9vcC5cbiAgICAgICAgICAgICAqL1xuICAgICAgICAgICAgaWYgKCFpc1NlcnZlclJlbmRlcikge1xuICAgICAgICAgICAgICBtYXJrQXNzZXRFcnJvcihlcnJvcilcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgdGhyb3cgZXJyb3JcbiAgICAgICAgICB9XG5cbiAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgZGF0YUhyZWYsXG4gICAgICAgICAgICBqc29uOiBwYXJzZUpTT04gPyB0cnlUb1BhcnNlQXNKU09OKHRleHQpIDogbnVsbCxcbiAgICAgICAgICAgIHJlc3BvbnNlLFxuICAgICAgICAgICAgdGV4dCxcbiAgICAgICAgICAgIGNhY2hlS2V5LFxuICAgICAgICAgIH1cbiAgICAgICAgfSlcbiAgICAgIH0pXG4gICAgICAudGhlbigoZGF0YSkgPT4ge1xuICAgICAgICBpZiAoXG4gICAgICAgICAgIXBlcnNpc3RDYWNoZSB8fFxuICAgICAgICAgIHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicgfHxcbiAgICAgICAgICBkYXRhLnJlc3BvbnNlLmhlYWRlcnMuZ2V0KCd4LW1pZGRsZXdhcmUtY2FjaGUnKSA9PT0gJ25vLWNhY2hlJ1xuICAgICAgICApIHtcbiAgICAgICAgICBkZWxldGUgaW5mbGlnaHRDYWNoZVtjYWNoZUtleV1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gZGF0YVxuICAgICAgfSlcbiAgICAgIC5jYXRjaCgoZXJyKSA9PiB7XG4gICAgICAgIGlmICghdW5zdGFibGVfc2tpcENsaWVudENhY2hlKSB7XG4gICAgICAgICAgZGVsZXRlIGluZmxpZ2h0Q2FjaGVbY2FjaGVLZXldXG4gICAgICAgIH1cbiAgICAgICAgaWYgKFxuICAgICAgICAgIC8vIGNocm9tZVxuICAgICAgICAgIGVyci5tZXNzYWdlID09PSAnRmFpbGVkIHRvIGZldGNoJyB8fFxuICAgICAgICAgIC8vIGZpcmVmb3hcbiAgICAgICAgICBlcnIubWVzc2FnZSA9PT0gJ05ldHdvcmtFcnJvciB3aGVuIGF0dGVtcHRpbmcgdG8gZmV0Y2ggcmVzb3VyY2UuJyB8fFxuICAgICAgICAgIC8vIHNhZmFyaVxuICAgICAgICAgIGVyci5tZXNzYWdlID09PSAnTG9hZCBmYWlsZWQnXG4gICAgICAgICkge1xuICAgICAgICAgIG1hcmtBc3NldEVycm9yKGVycilcbiAgICAgICAgfVxuICAgICAgICB0aHJvdyBlcnJcbiAgICAgIH0pXG5cbiAgLy8gd2hlbiBza2lwcGluZyBjbGllbnQgY2FjaGUgd2Ugd2FpdCB0byB1cGRhdGVcbiAgLy8gaW5mbGlnaHQgY2FjaGUgdW50aWwgc3VjY2Vzc2Z1bCBkYXRhIHJlc3BvbnNlXG4gIC8vIHRoaXMgYWxsb3dzIHJhY2luZyBjbGljayBldmVudCB3aXRoIGZldGNoaW5nIG5ld2VyIGRhdGFcbiAgLy8gd2l0aG91dCBibG9ja2luZyBuYXZpZ2F0aW9uIHdoZW4gc3RhbGUgZGF0YSBpcyBhdmFpbGFibGVcbiAgaWYgKHVuc3RhYmxlX3NraXBDbGllbnRDYWNoZSAmJiBwZXJzaXN0Q2FjaGUpIHtcbiAgICByZXR1cm4gZ2V0RGF0YSh7fSkudGhlbigoZGF0YSkgPT4ge1xuICAgICAgaWYgKGRhdGEucmVzcG9uc2UuaGVhZGVycy5nZXQoJ3gtbWlkZGxld2FyZS1jYWNoZScpICE9PSAnbm8tY2FjaGUnKSB7XG4gICAgICAgIC8vIG9ubHkgdXBkYXRlIGNhY2hlIGlmIG5vdCBtYXJrZWQgYXMgbm8tY2FjaGVcbiAgICAgICAgaW5mbGlnaHRDYWNoZVtjYWNoZUtleV0gPSBQcm9taXNlLnJlc29sdmUoZGF0YSlcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIGRhdGFcbiAgICB9KVxuICB9XG5cbiAgaWYgKGluZmxpZ2h0Q2FjaGVbY2FjaGVLZXldICE9PSB1bmRlZmluZWQpIHtcbiAgICByZXR1cm4gaW5mbGlnaHRDYWNoZVtjYWNoZUtleV1cbiAgfVxuICByZXR1cm4gKGluZmxpZ2h0Q2FjaGVbY2FjaGVLZXldID0gZ2V0RGF0YShcbiAgICBpc0JhY2tncm91bmQgPyB7IG1ldGhvZDogJ0hFQUQnIH0gOiB7fVxuICApKVxufVxuXG5pbnRlcmZhY2UgTmV4dERhdGFDYWNoZSB7XG4gIFthc1BhdGg6IHN0cmluZ106IFByb21pc2U8RmV0Y2hEYXRhT3V0cHV0PlxufVxuXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlS2V5KCkge1xuICByZXR1cm4gTWF0aC5yYW5kb20oKS50b1N0cmluZygzNikuc2xpY2UoMiwgMTApXG59XG5cbmZ1bmN0aW9uIGhhbmRsZUhhcmROYXZpZ2F0aW9uKHtcbiAgdXJsLFxuICByb3V0ZXIsXG59OiB7XG4gIHVybDogc3RyaW5nXG4gIHJvdXRlcjogUm91dGVyXG59KSB7XG4gIC8vIGVuc3VyZSB3ZSBkb24ndCB0cmlnZ2VyIGEgaGFyZCBuYXZpZ2F0aW9uIHRvIHRoZSBzYW1lXG4gIC8vIFVSTCBhcyB0aGlzIGNhbiBlbmQgdXAgd2l0aCBhbiBpbmZpbml0ZSByZWZyZXNoXG4gIGlmICh1cmwgPT09IGFkZEJhc2VQYXRoKGFkZExvY2FsZShyb3V0ZXIuYXNQYXRoLCByb3V0ZXIubG9jYWxlKSkpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICBgSW52YXJpYW50OiBhdHRlbXB0ZWQgdG8gaGFyZCBuYXZpZ2F0ZSB0byB0aGUgc2FtZSBVUkwgJHt1cmx9ICR7bG9jYXRpb24uaHJlZn1gXG4gICAgKVxuICB9XG4gIHdpbmRvdy5sb2NhdGlvbi5ocmVmID0gdXJsXG59XG5cbmNvbnN0IGdldENhbmNlbGxlZEhhbmRsZXIgPSAoe1xuICByb3V0ZSxcbiAgcm91dGVyLFxufToge1xuICByb3V0ZTogc3RyaW5nXG4gIHJvdXRlcjogUm91dGVyXG59KSA9PiB7XG4gIGxldCBjYW5jZWxsZWQgPSBmYWxzZVxuICBjb25zdCBjYW5jZWwgPSAocm91dGVyLmNsYyA9ICgpID0+IHtcbiAgICBjYW5jZWxsZWQgPSB0cnVlXG4gIH0pXG5cbiAgY29uc3QgaGFuZGxlQ2FuY2VsbGVkID0gKCkgPT4ge1xuICAgIGlmIChjYW5jZWxsZWQpIHtcbiAgICAgIGNvbnN0IGVycm9yOiBhbnkgPSBuZXcgRXJyb3IoXG4gICAgICAgIGBBYm9ydCBmZXRjaGluZyBjb21wb25lbnQgZm9yIHJvdXRlOiBcIiR7cm91dGV9XCJgXG4gICAgICApXG4gICAgICBlcnJvci5jYW5jZWxsZWQgPSB0cnVlXG4gICAgICB0aHJvdyBlcnJvclxuICAgIH1cblxuICAgIGlmIChjYW5jZWwgPT09IHJvdXRlci5jbGMpIHtcbiAgICAgIHJvdXRlci5jbGMgPSBudWxsXG4gICAgfVxuICB9XG4gIHJldHVybiBoYW5kbGVDYW5jZWxsZWRcbn1cblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgUm91dGVyIGltcGxlbWVudHMgQmFzZVJvdXRlciB7XG4gIGJhc2VQYXRoOiBzdHJpbmdcblxuICAvKipcbiAgICogTWFwIG9mIGFsbCBjb21wb25lbnRzIGxvYWRlZCBpbiBgUm91dGVyYFxuICAgKi9cbiAgY29tcG9uZW50czogeyBbcGF0aG5hbWU6IHN0cmluZ106IFByaXZhdGVSb3V0ZUluZm8gfVxuICAvLyBTZXJ2ZXIgRGF0YSBDYWNoZSAoZnVsbCBkYXRhIHJlcXVlc3RzKVxuICBzZGM6IE5leHREYXRhQ2FjaGUgPSB7fVxuICAvLyBTZXJ2ZXIgQmFja2dyb3VuZCBDYWNoZSAoSEVBRCByZXF1ZXN0cylcbiAgc2JjOiBOZXh0RGF0YUNhY2hlID0ge31cblxuICBzdWI6IFN1YnNjcmlwdGlvblxuICBjbGM6IENvbXBvbmVudExvYWRDYW5jZWxcbiAgcGFnZUxvYWRlcjogUGFnZUxvYWRlclxuICBfYnBzOiBCZWZvcmVQb3BTdGF0ZUNhbGxiYWNrIHwgdW5kZWZpbmVkXG4gIGV2ZW50czogTWl0dEVtaXR0ZXI8Um91dGVyRXZlbnQ+XG4gIF93cmFwQXBwOiAoQXBwOiBBcHBDb21wb25lbnQpID0+IGFueVxuICBpc1NzcjogYm9vbGVhblxuICBfaW5GbGlnaHRSb3V0ZT86IHN0cmluZyB8IHVuZGVmaW5lZFxuICBfc2hhbGxvdz86IGJvb2xlYW4gfCB1bmRlZmluZWRcbiAgbG9jYWxlcz86IHJlYWRvbmx5IHN0cmluZ1tdIHwgdW5kZWZpbmVkXG4gIGRlZmF1bHRMb2NhbGU/OiBzdHJpbmcgfCB1bmRlZmluZWRcbiAgZG9tYWluTG9jYWxlcz86IHJlYWRvbmx5IERvbWFpbkxvY2FsZVtdIHwgdW5kZWZpbmVkXG4gIGlzUmVhZHk6IGJvb2xlYW5cbiAgaXNMb2NhbGVEb21haW46IGJvb2xlYW5cbiAgaXNGaXJzdFBvcFN0YXRlRXZlbnQgPSB0cnVlXG4gIF9pbml0aWFsTWF0Y2hlc01pZGRsZXdhcmVQcm9taXNlOiBQcm9taXNlPGJvb2xlYW4+XG4gIC8vIHN0YXRpYyBlbnRyaWVzIGZpbHRlclxuICBfYmZsX3M/OiBpbXBvcnQoJy4uLy4uL2xpYi9ibG9vbS1maWx0ZXInKS5CbG9vbUZpbHRlclxuICAvLyBkeW5hbWljIGVudGlyZXMgZmlsdGVyXG4gIF9iZmxfZD86IGltcG9ydCgnLi4vLi4vbGliL2Jsb29tLWZpbHRlcicpLkJsb29tRmlsdGVyXG5cbiAgcHJpdmF0ZSBzdGF0ZTogUmVhZG9ubHk8e1xuICAgIHJvdXRlOiBzdHJpbmdcbiAgICBwYXRobmFtZTogc3RyaW5nXG4gICAgcXVlcnk6IFBhcnNlZFVybFF1ZXJ5XG4gICAgYXNQYXRoOiBzdHJpbmdcbiAgICBsb2NhbGU6IHN0cmluZyB8IHVuZGVmaW5lZFxuICAgIGlzRmFsbGJhY2s6IGJvb2xlYW5cbiAgICBpc1ByZXZpZXc6IGJvb2xlYW5cbiAgfT5cblxuICBwcml2YXRlIF9rZXk6IHN0cmluZyA9IGNyZWF0ZUtleSgpXG5cbiAgc3RhdGljIGV2ZW50czogTWl0dEVtaXR0ZXI8Um91dGVyRXZlbnQ+ID0gbWl0dCgpXG5cbiAgY29uc3RydWN0b3IoXG4gICAgcGF0aG5hbWU6IHN0cmluZyxcbiAgICBxdWVyeTogUGFyc2VkVXJsUXVlcnksXG4gICAgYXM6IHN0cmluZyxcbiAgICB7XG4gICAgICBpbml0aWFsUHJvcHMsXG4gICAgICBwYWdlTG9hZGVyLFxuICAgICAgQXBwLFxuICAgICAgd3JhcEFwcCxcbiAgICAgIENvbXBvbmVudCxcbiAgICAgIGVycixcbiAgICAgIHN1YnNjcmlwdGlvbixcbiAgICAgIGlzRmFsbGJhY2ssXG4gICAgICBsb2NhbGUsXG4gICAgICBsb2NhbGVzLFxuICAgICAgZGVmYXVsdExvY2FsZSxcbiAgICAgIGRvbWFpbkxvY2FsZXMsXG4gICAgICBpc1ByZXZpZXcsXG4gICAgfToge1xuICAgICAgc3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb25cbiAgICAgIGluaXRpYWxQcm9wczogYW55XG4gICAgICBwYWdlTG9hZGVyOiBhbnlcbiAgICAgIENvbXBvbmVudDogQ29tcG9uZW50VHlwZVxuICAgICAgQXBwOiBBcHBDb21wb25lbnRcbiAgICAgIHdyYXBBcHA6IChXcmFwQXBwQ29tcG9uZW50OiBBcHBDb21wb25lbnQpID0+IGFueVxuICAgICAgZXJyPzogRXJyb3JcbiAgICAgIGlzRmFsbGJhY2s6IGJvb2xlYW5cbiAgICAgIGxvY2FsZT86IHN0cmluZ1xuICAgICAgbG9jYWxlcz86IHJlYWRvbmx5IHN0cmluZ1tdXG4gICAgICBkZWZhdWx0TG9jYWxlPzogc3RyaW5nXG4gICAgICBkb21haW5Mb2NhbGVzPzogcmVhZG9ubHkgRG9tYWluTG9jYWxlW11cbiAgICAgIGlzUHJldmlldz86IGJvb2xlYW5cbiAgICB9XG4gICkge1xuICAgIC8vIHJlcHJlc2VudHMgdGhlIGN1cnJlbnQgY29tcG9uZW50IGtleVxuICAgIGNvbnN0IHJvdXRlID0gcmVtb3ZlVHJhaWxpbmdTbGFzaChwYXRobmFtZSlcblxuICAgIC8vIHNldCB1cCB0aGUgY29tcG9uZW50IGNhY2hlIChieSByb3V0ZSBrZXlzKVxuICAgIHRoaXMuY29tcG9uZW50cyA9IHt9XG4gICAgLy8gV2Ugc2hvdWxkIG5vdCBrZWVwIHRoZSBjYWNoZSwgaWYgdGhlcmUncyBhbiBlcnJvclxuICAgIC8vIE90aGVyd2lzZSwgdGhpcyBjYXVzZSBpc3N1ZXMgd2hlbiB3aGVuIGdvaW5nIGJhY2sgYW5kXG4gICAgLy8gY29tZSBhZ2FpbiB0byB0aGUgZXJyb3JlZCBwYWdlLlxuICAgIGlmIChwYXRobmFtZSAhPT0gJy9fZXJyb3InKSB7XG4gICAgICB0aGlzLmNvbXBvbmVudHNbcm91dGVdID0ge1xuICAgICAgICBDb21wb25lbnQsXG4gICAgICAgIGluaXRpYWw6IHRydWUsXG4gICAgICAgIHByb3BzOiBpbml0aWFsUHJvcHMsXG4gICAgICAgIGVycixcbiAgICAgICAgX19OX1NTRzogaW5pdGlhbFByb3BzICYmIGluaXRpYWxQcm9wcy5fX05fU1NHLFxuICAgICAgICBfX05fU1NQOiBpbml0aWFsUHJvcHMgJiYgaW5pdGlhbFByb3BzLl9fTl9TU1AsXG4gICAgICB9XG4gICAgfVxuXG4gICAgdGhpcy5jb21wb25lbnRzWycvX2FwcCddID0ge1xuICAgICAgQ29tcG9uZW50OiBBcHAgYXMgQ29tcG9uZW50VHlwZSxcbiAgICAgIHN0eWxlU2hlZXRzOiBbXG4gICAgICAgIC8qIC9fYXBwIGRvZXMgbm90IG5lZWQgaXRzIHN0eWxlc2hlZXRzIG1hbmFnZWQgKi9cbiAgICAgIF0sXG4gICAgfVxuXG4gICAgLy8gQmFja3dhcmRzIGNvbXBhdCBmb3IgUm91dGVyLnJvdXRlci5ldmVudHNcbiAgICAvLyBUT0RPOiBTaG91bGQgYmUgcmVtb3ZlIHRoZSBmb2xsb3dpbmcgbWFqb3IgdmVyc2lvbiBhcyBpdCB3YXMgbmV2ZXIgZG9jdW1lbnRlZFxuICAgIHRoaXMuZXZlbnRzID0gUm91dGVyLmV2ZW50c1xuXG4gICAgdGhpcy5wYWdlTG9hZGVyID0gcGFnZUxvYWRlclxuICAgIC8vIGlmIGF1dG8gcHJlcmVuZGVyZWQgYW5kIGR5bmFtaWMgcm91dGUgd2FpdCB0byB1cGRhdGUgYXNQYXRoXG4gICAgLy8gdW50aWwgYWZ0ZXIgbW91bnQgdG8gcHJldmVudCBoeWRyYXRpb24gbWlzbWF0Y2hcbiAgICBjb25zdCBhdXRvRXhwb3J0RHluYW1pYyA9XG4gICAgICBpc0R5bmFtaWNSb3V0ZShwYXRobmFtZSkgJiYgc2VsZi5fX05FWFRfREFUQV9fLmF1dG9FeHBvcnRcblxuICAgIHRoaXMuYmFzZVBhdGggPSBwcm9jZXNzLmVudi5fX05FWFRfUk9VVEVSX0JBU0VQQVRIIHx8ICcnXG4gICAgdGhpcy5zdWIgPSBzdWJzY3JpcHRpb25cbiAgICB0aGlzLmNsYyA9IG51bGxcbiAgICB0aGlzLl93cmFwQXBwID0gd3JhcEFwcFxuICAgIC8vIG1ha2Ugc3VyZSB0byBpZ25vcmUgZXh0cmEgcG9wU3RhdGUgaW4gc2FmYXJpIG9uIG5hdmlnYXRpbmdcbiAgICAvLyBiYWNrIGZyb20gZXh0ZXJuYWwgc2l0ZVxuICAgIHRoaXMuaXNTc3IgPSB0cnVlXG4gICAgdGhpcy5pc0xvY2FsZURvbWFpbiA9IGZhbHNlXG4gICAgdGhpcy5pc1JlYWR5ID0gISEoXG4gICAgICBzZWxmLl9fTkVYVF9EQVRBX18uZ3NzcCB8fFxuICAgICAgc2VsZi5fX05FWFRfREFUQV9fLmdpcCB8fFxuICAgICAgc2VsZi5fX05FWFRfREFUQV9fLmlzRXhwZXJpbWVudGFsQ29tcGlsZSB8fFxuICAgICAgKHNlbGYuX19ORVhUX0RBVEFfXy5hcHBHaXAgJiYgIXNlbGYuX19ORVhUX0RBVEFfXy5nc3ApIHx8XG4gICAgICAoIWF1dG9FeHBvcnREeW5hbWljICYmXG4gICAgICAgICFzZWxmLmxvY2F0aW9uLnNlYXJjaCAmJlxuICAgICAgICAhcHJvY2Vzcy5lbnYuX19ORVhUX0hBU19SRVdSSVRFUylcbiAgICApXG5cbiAgICBpZiAocHJvY2Vzcy5lbnYuX19ORVhUX0kxOE5fU1VQUE9SVCkge1xuICAgICAgdGhpcy5sb2NhbGVzID0gbG9jYWxlc1xuICAgICAgdGhpcy5kZWZhdWx0TG9jYWxlID0gZGVmYXVsdExvY2FsZVxuICAgICAgdGhpcy5kb21haW5Mb2NhbGVzID0gZG9tYWluTG9jYWxlc1xuICAgICAgdGhpcy5pc0xvY2FsZURvbWFpbiA9ICEhZGV0ZWN0RG9tYWluTG9jYWxlKFxuICAgICAgICBkb21haW5Mb2NhbGVzLFxuICAgICAgICBzZWxmLmxvY2F0aW9uLmhvc3RuYW1lXG4gICAgICApXG4gICAgfVxuXG4gICAgdGhpcy5zdGF0ZSA9IHtcbiAgICAgIHJvdXRlLFxuICAgICAgcGF0aG5hbWUsXG4gICAgICBxdWVyeSxcbiAgICAgIGFzUGF0aDogYXV0b0V4cG9ydER5bmFtaWMgPyBwYXRobmFtZSA6IGFzLFxuICAgICAgaXNQcmV2aWV3OiAhIWlzUHJldmlldyxcbiAgICAgIGxvY2FsZTogcHJvY2Vzcy5lbnYuX19ORVhUX0kxOE5fU1VQUE9SVCA/IGxvY2FsZSA6IHVuZGVmaW5lZCxcbiAgICAgIGlzRmFsbGJhY2ssXG4gICAgfVxuXG4gICAgdGhpcy5faW5pdGlhbE1hdGNoZXNNaWRkbGV3YXJlUHJvbWlzZSA9IFByb21pc2UucmVzb2x2ZShmYWxzZSlcblxuICAgIGlmICh0eXBlb2Ygd2luZG93ICE9PSAndW5kZWZpbmVkJykge1xuICAgICAgLy8gbWFrZSBzdXJlIFwiYXNcIiBkb2Vzbid0IHN0YXJ0IHdpdGggZG91YmxlIHNsYXNoZXMgb3IgZWxzZSBpdCBjYW5cbiAgICAgIC8vIHRocm93IGFuIGVycm9yIGFzIGl0J3MgY29uc2lkZXJlZCBpbnZhbGlkXG4gICAgICBpZiAoIWFzLnN0YXJ0c1dpdGgoJy8vJykpIHtcbiAgICAgICAgLy8gaW4gb3JkZXIgZm9yIGBlLnN0YXRlYCB0byB3b3JrIG9uIHRoZSBgb25wb3BzdGF0ZWAgZXZlbnRcbiAgICAgICAgLy8gd2UgaGF2ZSB0byByZWdpc3RlciB0aGUgaW5pdGlhbCByb3V0ZSB1cG9uIGluaXRpYWxpemF0aW9uXG4gICAgICAgIGNvbnN0IG9wdGlvbnM6IFRyYW5zaXRpb25PcHRpb25zID0geyBsb2NhbGUgfVxuICAgICAgICBjb25zdCBhc1BhdGggPSBnZXRVUkwoKVxuXG4gICAgICAgIHRoaXMuX2luaXRpYWxNYXRjaGVzTWlkZGxld2FyZVByb21pc2UgPSBtYXRjaGVzTWlkZGxld2FyZSh7XG4gICAgICAgICAgcm91dGVyOiB0aGlzLFxuICAgICAgICAgIGxvY2FsZSxcbiAgICAgICAgICBhc1BhdGgsXG4gICAgICAgIH0pLnRoZW4oKG1hdGNoZXMpID0+IHtcbiAgICAgICAgICAvLyBpZiBtaWRkbGV3YXJlIG1hdGNoZXMgd2UgbGVhdmUgcmVzb2x2aW5nIHRvIHRoZSBjaGFuZ2UgZnVuY3Rpb25cbiAgICAgICAgICAvLyBhcyB0aGUgc2VydmVyIG5lZWRzIHRvIHJlc29sdmUgZm9yIGNvcnJlY3QgcHJpb3JpdHlcbiAgICAgICAgICA7KG9wdGlvbnMgYXMgYW55KS5fc2hvdWxkUmVzb2x2ZUhyZWYgPSBhcyAhPT0gcGF0aG5hbWVcblxuICAgICAgICAgIHRoaXMuY2hhbmdlU3RhdGUoXG4gICAgICAgICAgICAncmVwbGFjZVN0YXRlJyxcbiAgICAgICAgICAgIG1hdGNoZXNcbiAgICAgICAgICAgICAgPyBhc1BhdGhcbiAgICAgICAgICAgICAgOiBmb3JtYXRXaXRoVmFsaWRhdGlvbih7XG4gICAgICAgICAgICAgICAgICBwYXRobmFtZTogYWRkQmFzZVBhdGgocGF0aG5hbWUpLFxuICAgICAgICAgICAgICAgICAgcXVlcnksXG4gICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICBhc1BhdGgsXG4gICAgICAgICAgICBvcHRpb25zXG4gICAgICAgICAgKVxuICAgICAgICAgIHJldHVybiBtYXRjaGVzXG4gICAgICAgIH0pXG4gICAgICB9XG5cbiAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdwb3BzdGF0ZScsIHRoaXMub25Qb3BTdGF0ZSlcblxuICAgICAgLy8gZW5hYmxlIGN1c3RvbSBzY3JvbGwgcmVzdG9yYXRpb24gaGFuZGxpbmcgd2hlbiBhdmFpbGFibGVcbiAgICAgIC8vIG90aGVyd2lzZSBmYWxsYmFjayB0byBicm93c2VyJ3MgZGVmYXVsdCBoYW5kbGluZ1xuICAgICAgaWYgKHByb2Nlc3MuZW52Ll9fTkVYVF9TQ1JPTExfUkVTVE9SQVRJT04pIHtcbiAgICAgICAgaWYgKG1hbnVhbFNjcm9sbFJlc3RvcmF0aW9uKSB7XG4gICAgICAgICAgd2luZG93Lmhpc3Rvcnkuc2Nyb2xsUmVzdG9yYXRpb24gPSAnbWFudWFsJ1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgb25Qb3BTdGF0ZSA9IChlOiBQb3BTdGF0ZUV2ZW50KTogdm9pZCA9PiB7XG4gICAgY29uc3QgeyBpc0ZpcnN0UG9wU3RhdGVFdmVudCB9ID0gdGhpc1xuICAgIHRoaXMuaXNGaXJzdFBvcFN0YXRlRXZlbnQgPSBmYWxzZVxuXG4gICAgY29uc3Qgc3RhdGUgPSBlLnN0YXRlIGFzIEhpc3RvcnlTdGF0ZVxuXG4gICAgaWYgKCFzdGF0ZSkge1xuICAgICAgLy8gV2UgZ2V0IHN0YXRlIGFzIHVuZGVmaW5lZCBmb3IgdHdvIHJlYXNvbnMuXG4gICAgICAvLyAgMS4gV2l0aCBvbGRlciBzYWZhcmkgKDwgOCkgYW5kIG9sZGVyIGNocm9tZSAoPCAzNClcbiAgICAgIC8vICAyLiBXaGVuIHRoZSBVUkwgY2hhbmdlZCB3aXRoICNcbiAgICAgIC8vXG4gICAgICAvLyBJbiB0aGUgYm90aCBjYXNlcywgd2UgZG9uJ3QgbmVlZCB0byBwcm9jZWVkIGFuZCBjaGFuZ2UgdGhlIHJvdXRlLlxuICAgICAgLy8gKGFzIGl0J3MgYWxyZWFkeSBjaGFuZ2VkKVxuICAgICAgLy8gQnV0IHdlIGNhbiBzaW1wbHkgcmVwbGFjZSB0aGUgc3RhdGUgd2l0aCB0aGUgbmV3IGNoYW5nZXMuXG4gICAgICAvLyBBY3R1YWxseSwgZm9yICgxKSB3ZSBkb24ndCBuZWVkIHRvIG5vdGhpbmcuIEJ1dCBpdCdzIGhhcmQgdG8gZGV0ZWN0IHRoYXQgZXZlbnQuXG4gICAgICAvLyBTbywgZG9pbmcgdGhlIGZvbGxvd2luZyBmb3IgKDEpIGRvZXMgbm8gaGFybS5cbiAgICAgIGNvbnN0IHsgcGF0aG5hbWUsIHF1ZXJ5IH0gPSB0aGlzXG4gICAgICB0aGlzLmNoYW5nZVN0YXRlKFxuICAgICAgICAncmVwbGFjZVN0YXRlJyxcbiAgICAgICAgZm9ybWF0V2l0aFZhbGlkYXRpb24oeyBwYXRobmFtZTogYWRkQmFzZVBhdGgocGF0aG5hbWUpLCBxdWVyeSB9KSxcbiAgICAgICAgZ2V0VVJMKClcbiAgICAgIClcbiAgICAgIHJldHVyblxuICAgIH1cblxuICAgIC8vIF9fTkEgaXMgdXNlZCB0byBpZGVudGlmeSBpZiB0aGUgaGlzdG9yeSBlbnRyeSBjYW4gYmUgaGFuZGxlZCBieSB0aGUgYXBwLXJvdXRlci5cbiAgICBpZiAoc3RhdGUuX19OQSkge1xuICAgICAgd2luZG93LmxvY2F0aW9uLnJlbG9hZCgpXG4gICAgICByZXR1cm5cbiAgICB9XG5cbiAgICBpZiAoIXN0YXRlLl9fTikge1xuICAgICAgcmV0dXJuXG4gICAgfVxuXG4gICAgLy8gU2FmYXJpIGZpcmVzIHBvcHN0YXRlZXZlbnQgd2hlbiByZW9wZW5pbmcgdGhlIGJyb3dzZXIuXG4gICAgaWYgKFxuICAgICAgaXNGaXJzdFBvcFN0YXRlRXZlbnQgJiZcbiAgICAgIHRoaXMubG9jYWxlID09PSBzdGF0ZS5vcHRpb25zLmxvY2FsZSAmJlxuICAgICAgc3RhdGUuYXMgPT09IHRoaXMuYXNQYXRoXG4gICAgKSB7XG4gICAgICByZXR1cm5cbiAgICB9XG5cbiAgICBsZXQgZm9yY2VkU2Nyb2xsOiB7IHg6IG51bWJlcjsgeTogbnVtYmVyIH0gfCB1bmRlZmluZWRcbiAgICBjb25zdCB7IHVybCwgYXMsIG9wdGlvbnMsIGtleSB9ID0gc3RhdGVcbiAgICBpZiAocHJvY2Vzcy5lbnYuX19ORVhUX1NDUk9MTF9SRVNUT1JBVElPTikge1xuICAgICAgaWYgKG1hbnVhbFNjcm9sbFJlc3RvcmF0aW9uKSB7XG4gICAgICAgIGlmICh0aGlzLl9rZXkgIT09IGtleSkge1xuICAgICAgICAgIC8vIFNuYXBzaG90IGN1cnJlbnQgc2Nyb2xsIHBvc2l0aW9uOlxuICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKFxuICAgICAgICAgICAgICAnX19uZXh0X3Njcm9sbF8nICsgdGhpcy5fa2V5LFxuICAgICAgICAgICAgICBKU09OLnN0cmluZ2lmeSh7IHg6IHNlbGYucGFnZVhPZmZzZXQsIHk6IHNlbGYucGFnZVlPZmZzZXQgfSlcbiAgICAgICAgICAgIClcbiAgICAgICAgICB9IGNhdGNoIHt9XG5cbiAgICAgICAgICAvLyBSZXN0b3JlIG9sZCBzY3JvbGwgcG9zaXRpb246XG4gICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIGNvbnN0IHYgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKCdfX25leHRfc2Nyb2xsXycgKyBrZXkpXG4gICAgICAgICAgICBmb3JjZWRTY3JvbGwgPSBKU09OLnBhcnNlKHYhKVxuICAgICAgICAgIH0gY2F0Y2gge1xuICAgICAgICAgICAgZm9yY2VkU2Nyb2xsID0geyB4OiAwLCB5OiAwIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gICAgdGhpcy5fa2V5ID0ga2V5XG5cbiAgICBjb25zdCB7IHBhdGhuYW1lIH0gPSBwYXJzZVJlbGF0aXZlVXJsKHVybClcblxuICAgIC8vIE1ha2Ugc3VyZSB3ZSBkb24ndCByZS1yZW5kZXIgb24gaW5pdGlhbCBsb2FkLFxuICAgIC8vIGNhbiBiZSBjYXVzZWQgYnkgbmF2aWdhdGluZyBiYWNrIGZyb20gYW4gZXh0ZXJuYWwgc2l0ZVxuICAgIGlmIChcbiAgICAgIHRoaXMuaXNTc3IgJiZcbiAgICAgIGFzID09PSBhZGRCYXNlUGF0aCh0aGlzLmFzUGF0aCkgJiZcbiAgICAgIHBhdGhuYW1lID09PSBhZGRCYXNlUGF0aCh0aGlzLnBhdGhuYW1lKVxuICAgICkge1xuICAgICAgcmV0dXJuXG4gICAgfVxuXG4gICAgLy8gSWYgdGhlIGRvd25zdHJlYW0gYXBwbGljYXRpb24gcmV0dXJucyBmYWxzeSwgcmV0dXJuLlxuICAgIC8vIFRoZXkgd2lsbCB0aGVuIGJlIHJlc3BvbnNpYmxlIGZvciBoYW5kbGluZyB0aGUgZXZlbnQuXG4gICAgaWYgKHRoaXMuX2JwcyAmJiAhdGhpcy5fYnBzKHN0YXRlKSkge1xuICAgICAgcmV0dXJuXG4gICAgfVxuXG4gICAgdGhpcy5jaGFuZ2UoXG4gICAgICAncmVwbGFjZVN0YXRlJyxcbiAgICAgIHVybCxcbiAgICAgIGFzLFxuICAgICAgT2JqZWN0LmFzc2lnbjx7fSwgVHJhbnNpdGlvbk9wdGlvbnMsIFRyYW5zaXRpb25PcHRpb25zPih7fSwgb3B0aW9ucywge1xuICAgICAgICBzaGFsbG93OiBvcHRpb25zLnNoYWxsb3cgJiYgdGhpcy5fc2hhbGxvdyxcbiAgICAgICAgbG9jYWxlOiBvcHRpb25zLmxvY2FsZSB8fCB0aGlzLmRlZmF1bHRMb2NhbGUsXG4gICAgICAgIC8vIEB0cy1pZ25vcmUgaW50ZXJuYWwgdmFsdWUgbm90IGV4cG9zZWQgb24gdHlwZXNcbiAgICAgICAgX2g6IDAsXG4gICAgICB9KSxcbiAgICAgIGZvcmNlZFNjcm9sbFxuICAgIClcbiAgfVxuXG4gIHJlbG9hZCgpOiB2b2lkIHtcbiAgICB3aW5kb3cubG9jYXRpb24ucmVsb2FkKClcbiAgfVxuXG4gIC8qKlxuICAgKiBHbyBiYWNrIGluIGhpc3RvcnlcbiAgICovXG4gIGJhY2soKSB7XG4gICAgd2luZG93Lmhpc3RvcnkuYmFjaygpXG4gIH1cblxuICAvKipcbiAgICogR28gZm9yd2FyZCBpbiBoaXN0b3J5XG4gICAqL1xuICBmb3J3YXJkKCkge1xuICAgIHdpbmRvdy5oaXN0b3J5LmZvcndhcmQoKVxuICB9XG5cbiAgLyoqXG4gICAqIFBlcmZvcm1zIGEgYHB1c2hTdGF0ZWAgd2l0aCBhcmd1bWVudHNcbiAgICogQHBhcmFtIHVybCBvZiB0aGUgcm91dGVcbiAgICogQHBhcmFtIGFzIG1hc2tzIGB1cmxgIGZvciB0aGUgYnJvd3NlclxuICAgKiBAcGFyYW0gb3B0aW9ucyBvYmplY3QgeW91IGNhbiBkZWZpbmUgYHNoYWxsb3dgIGFuZCBvdGhlciBvcHRpb25zXG4gICAqL1xuICBwdXNoKHVybDogVXJsLCBhcz86IFVybCwgb3B0aW9uczogVHJhbnNpdGlvbk9wdGlvbnMgPSB7fSkge1xuICAgIGlmIChwcm9jZXNzLmVudi5fX05FWFRfU0NST0xMX1JFU1RPUkFUSU9OKSB7XG4gICAgICAvLyBUT0RPOiByZW1vdmUgaW4gdGhlIGZ1dHVyZSB3aGVuIHdlIHVwZGF0ZSBoaXN0b3J5IGJlZm9yZSByb3V0ZSBjaGFuZ2VcbiAgICAgIC8vIGlzIGNvbXBsZXRlLCBhcyB0aGUgcG9wc3RhdGUgZXZlbnQgc2hvdWxkIGhhbmRsZSB0aGlzIGNhcHR1cmUuXG4gICAgICBpZiAobWFudWFsU2Nyb2xsUmVzdG9yYXRpb24pIHtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAvLyBTbmFwc2hvdCBzY3JvbGwgcG9zaXRpb24gcmlnaHQgYmVmb3JlIG5hdmlnYXRpbmcgdG8gYSBuZXcgcGFnZTpcbiAgICAgICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKFxuICAgICAgICAgICAgJ19fbmV4dF9zY3JvbGxfJyArIHRoaXMuX2tleSxcbiAgICAgICAgICAgIEpTT04uc3RyaW5naWZ5KHsgeDogc2VsZi5wYWdlWE9mZnNldCwgeTogc2VsZi5wYWdlWU9mZnNldCB9KVxuICAgICAgICAgIClcbiAgICAgICAgfSBjYXRjaCB7fVxuICAgICAgfVxuICAgIH1cbiAgICA7KHsgdXJsLCBhcyB9ID0gcHJlcGFyZVVybEFzKHRoaXMsIHVybCwgYXMpKVxuICAgIHJldHVybiB0aGlzLmNoYW5nZSgncHVzaFN0YXRlJywgdXJsLCBhcywgb3B0aW9ucylcbiAgfVxuXG4gIC8qKlxuICAgKiBQZXJmb3JtcyBhIGByZXBsYWNlU3RhdGVgIHdpdGggYXJndW1lbnRzXG4gICAqIEBwYXJhbSB1cmwgb2YgdGhlIHJvdXRlXG4gICAqIEBwYXJhbSBhcyBtYXNrcyBgdXJsYCBmb3IgdGhlIGJyb3dzZXJcbiAgICogQHBhcmFtIG9wdGlvbnMgb2JqZWN0IHlvdSBjYW4gZGVmaW5lIGBzaGFsbG93YCBhbmQgb3RoZXIgb3B0aW9uc1xuICAgKi9cbiAgcmVwbGFjZSh1cmw6IFVybCwgYXM/OiBVcmwsIG9wdGlvbnM6IFRyYW5zaXRpb25PcHRpb25zID0ge30pIHtcbiAgICA7KHsgdXJsLCBhcyB9ID0gcHJlcGFyZVVybEFzKHRoaXMsIHVybCwgYXMpKVxuICAgIHJldHVybiB0aGlzLmNoYW5nZSgncmVwbGFjZVN0YXRlJywgdXJsLCBhcywgb3B0aW9ucylcbiAgfVxuXG4gIGFzeW5jIF9iZmwoXG4gICAgYXM6IHN0cmluZyxcbiAgICByZXNvbHZlZEFzPzogc3RyaW5nLFxuICAgIGxvY2FsZT86IHN0cmluZyB8IGZhbHNlLFxuICAgIHNraXBOYXZpZ2F0ZT86IGJvb2xlYW5cbiAgKSB7XG4gICAgaWYgKHByb2Nlc3MuZW52Ll9fTkVYVF9DTElFTlRfUk9VVEVSX0ZJTFRFUl9FTkFCTEVEKSB7XG4gICAgICBpZiAoIXRoaXMuX2JmbF9zICYmICF0aGlzLl9iZmxfZCkge1xuICAgICAgICBjb25zdCB7IEJsb29tRmlsdGVyIH0gPVxuICAgICAgICAgIHJlcXVpcmUoJy4uLy4uL2xpYi9ibG9vbS1maWx0ZXInKSBhcyB0eXBlb2YgaW1wb3J0KCcuLi8uLi9saWIvYmxvb20tZmlsdGVyJylcblxuICAgICAgICB0eXBlIEZpbHRlciA9IFJldHVyblR5cGU8XG4gICAgICAgICAgaW1wb3J0KCcuLi8uLi9saWIvYmxvb20tZmlsdGVyJykuQmxvb21GaWx0ZXJbJ2V4cG9ydCddXG4gICAgICAgID5cbiAgICAgICAgbGV0IHN0YXRpY0ZpbHRlckRhdGE6IEZpbHRlciB8IHVuZGVmaW5lZFxuICAgICAgICBsZXQgZHluYW1pY0ZpbHRlckRhdGE6IEZpbHRlciB8IHVuZGVmaW5lZFxuXG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgOyh7XG4gICAgICAgICAgICBfX3JvdXRlckZpbHRlclN0YXRpYzogc3RhdGljRmlsdGVyRGF0YSxcbiAgICAgICAgICAgIF9fcm91dGVyRmlsdGVyRHluYW1pYzogZHluYW1pY0ZpbHRlckRhdGEsXG4gICAgICAgICAgfSA9IChhd2FpdCBnZXRDbGllbnRCdWlsZE1hbmlmZXN0KCkpIGFzIGFueSBhcyB7XG4gICAgICAgICAgICBfX3JvdXRlckZpbHRlclN0YXRpYz86IEZpbHRlclxuICAgICAgICAgICAgX19yb3V0ZXJGaWx0ZXJEeW5hbWljPzogRmlsdGVyXG4gICAgICAgICAgfSlcbiAgICAgICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICAgICAgLy8gZmFpbGVkIHRvIGxvYWQgYnVpbGQgbWFuaWZlc3QgaGFyZCBuYXZpZ2F0ZVxuICAgICAgICAgIC8vIHRvIGJlIHNhZmVcbiAgICAgICAgICBjb25zb2xlLmVycm9yKGVycilcbiAgICAgICAgICBpZiAoc2tpcE5hdmlnYXRlKSB7XG4gICAgICAgICAgICByZXR1cm4gdHJ1ZVxuICAgICAgICAgIH1cbiAgICAgICAgICBoYW5kbGVIYXJkTmF2aWdhdGlvbih7XG4gICAgICAgICAgICB1cmw6IGFkZEJhc2VQYXRoKFxuICAgICAgICAgICAgICBhZGRMb2NhbGUoYXMsIGxvY2FsZSB8fCB0aGlzLmxvY2FsZSwgdGhpcy5kZWZhdWx0TG9jYWxlKVxuICAgICAgICAgICAgKSxcbiAgICAgICAgICAgIHJvdXRlcjogdGhpcyxcbiAgICAgICAgICB9KVxuICAgICAgICAgIHJldHVybiBuZXcgUHJvbWlzZSgoKSA9PiB7fSlcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IHJvdXRlckZpbHRlclNWYWx1ZTogRmlsdGVyIHwgZmFsc2UgPSBwcm9jZXNzLmVudlxuICAgICAgICAgIC5fX05FWFRfQ0xJRU5UX1JPVVRFUl9TX0ZJTFRFUiBhcyBhbnlcblxuICAgICAgICBpZiAoIXN0YXRpY0ZpbHRlckRhdGEgJiYgcm91dGVyRmlsdGVyU1ZhbHVlKSB7XG4gICAgICAgICAgc3RhdGljRmlsdGVyRGF0YSA9IHJvdXRlckZpbHRlclNWYWx1ZSA/IHJvdXRlckZpbHRlclNWYWx1ZSA6IHVuZGVmaW5lZFxuICAgICAgICB9XG5cbiAgICAgICAgY29uc3Qgcm91dGVyRmlsdGVyRFZhbHVlOiBGaWx0ZXIgfCBmYWxzZSA9IHByb2Nlc3MuZW52XG4gICAgICAgICAgLl9fTkVYVF9DTElFTlRfUk9VVEVSX0RfRklMVEVSIGFzIGFueVxuXG4gICAgICAgIGlmICghZHluYW1pY0ZpbHRlckRhdGEgJiYgcm91dGVyRmlsdGVyRFZhbHVlKSB7XG4gICAgICAgICAgZHluYW1pY0ZpbHRlckRhdGEgPSByb3V0ZXJGaWx0ZXJEVmFsdWVcbiAgICAgICAgICAgID8gcm91dGVyRmlsdGVyRFZhbHVlXG4gICAgICAgICAgICA6IHVuZGVmaW5lZFxuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHN0YXRpY0ZpbHRlckRhdGE/Lm51bUhhc2hlcykge1xuICAgICAgICAgIHRoaXMuX2JmbF9zID0gbmV3IEJsb29tRmlsdGVyKFxuICAgICAgICAgICAgc3RhdGljRmlsdGVyRGF0YS5udW1JdGVtcyxcbiAgICAgICAgICAgIHN0YXRpY0ZpbHRlckRhdGEuZXJyb3JSYXRlXG4gICAgICAgICAgKVxuICAgICAgICAgIHRoaXMuX2JmbF9zLmltcG9ydChzdGF0aWNGaWx0ZXJEYXRhKVxuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGR5bmFtaWNGaWx0ZXJEYXRhPy5udW1IYXNoZXMpIHtcbiAgICAgICAgICB0aGlzLl9iZmxfZCA9IG5ldyBCbG9vbUZpbHRlcihcbiAgICAgICAgICAgIGR5bmFtaWNGaWx0ZXJEYXRhLm51bUl0ZW1zLFxuICAgICAgICAgICAgZHluYW1pY0ZpbHRlckRhdGEuZXJyb3JSYXRlXG4gICAgICAgICAgKVxuICAgICAgICAgIHRoaXMuX2JmbF9kLmltcG9ydChkeW5hbWljRmlsdGVyRGF0YSlcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBsZXQgbWF0Y2hlc0JmbFN0YXRpYyA9IGZhbHNlXG4gICAgICBsZXQgbWF0Y2hlc0JmbER5bmFtaWMgPSBmYWxzZVxuICAgICAgY29uc3QgcGF0aHNUb0NoZWNrOiBBcnJheTx7IGFzPzogc3RyaW5nOyBhbGxvd01hdGNoQ3VycmVudD86IGJvb2xlYW4gfT4gPVxuICAgICAgICBbeyBhcyB9LCB7IGFzOiByZXNvbHZlZEFzIH1dXG5cbiAgICAgIGZvciAoY29uc3QgeyBhczogY3VyQXMsIGFsbG93TWF0Y2hDdXJyZW50IH0gb2YgcGF0aHNUb0NoZWNrKSB7XG4gICAgICAgIGlmIChjdXJBcykge1xuICAgICAgICAgIGNvbnN0IGFzTm9TbGFzaCA9IHJlbW92ZVRyYWlsaW5nU2xhc2goXG4gICAgICAgICAgICBuZXcgVVJMKGN1ckFzLCAnaHR0cDovL24nKS5wYXRobmFtZVxuICAgICAgICAgIClcbiAgICAgICAgICBjb25zdCBhc05vU2xhc2hMb2NhbGUgPSBhZGRCYXNlUGF0aChcbiAgICAgICAgICAgIGFkZExvY2FsZShhc05vU2xhc2gsIGxvY2FsZSB8fCB0aGlzLmxvY2FsZSlcbiAgICAgICAgICApXG5cbiAgICAgICAgICBpZiAoXG4gICAgICAgICAgICBhbGxvd01hdGNoQ3VycmVudCB8fFxuICAgICAgICAgICAgYXNOb1NsYXNoICE9PVxuICAgICAgICAgICAgICByZW1vdmVUcmFpbGluZ1NsYXNoKG5ldyBVUkwodGhpcy5hc1BhdGgsICdodHRwOi8vbicpLnBhdGhuYW1lKVxuICAgICAgICAgICkge1xuICAgICAgICAgICAgbWF0Y2hlc0JmbFN0YXRpYyA9XG4gICAgICAgICAgICAgIG1hdGNoZXNCZmxTdGF0aWMgfHxcbiAgICAgICAgICAgICAgISF0aGlzLl9iZmxfcz8uY29udGFpbnMoYXNOb1NsYXNoKSB8fFxuICAgICAgICAgICAgICAhIXRoaXMuX2JmbF9zPy5jb250YWlucyhhc05vU2xhc2hMb2NhbGUpXG5cbiAgICAgICAgICAgIGZvciAoY29uc3Qgbm9ybWFsaXplZEFTIG9mIFthc05vU2xhc2gsIGFzTm9TbGFzaExvY2FsZV0pIHtcbiAgICAgICAgICAgICAgLy8gaWYgYW55IHN1Yi1wYXRoIG9mIGFzIG1hdGNoZXMgYSBkeW5hbWljIGZpbHRlciBwYXRoXG4gICAgICAgICAgICAgIC8vIGl0IHNob3VsZCBiZSBoYXJkIG5hdmlnYXRlZFxuICAgICAgICAgICAgICBjb25zdCBjdXJBc1BhcnRzID0gbm9ybWFsaXplZEFTLnNwbGl0KCcvJylcbiAgICAgICAgICAgICAgZm9yIChcbiAgICAgICAgICAgICAgICBsZXQgaSA9IDA7XG4gICAgICAgICAgICAgICAgIW1hdGNoZXNCZmxEeW5hbWljICYmIGkgPCBjdXJBc1BhcnRzLmxlbmd0aCArIDE7XG4gICAgICAgICAgICAgICAgaSsrXG4gICAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICAgIGNvbnN0IGN1cnJlbnRQYXJ0ID0gY3VyQXNQYXJ0cy5zbGljZSgwLCBpKS5qb2luKCcvJylcbiAgICAgICAgICAgICAgICBpZiAoY3VycmVudFBhcnQgJiYgdGhpcy5fYmZsX2Q/LmNvbnRhaW5zKGN1cnJlbnRQYXJ0KSkge1xuICAgICAgICAgICAgICAgICAgbWF0Y2hlc0JmbER5bmFtaWMgPSB0cnVlXG4gICAgICAgICAgICAgICAgICBicmVha1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAvLyBpZiB0aGUgY2xpZW50IHJvdXRlciBmaWx0ZXIgaXMgbWF0Y2hlZCB0aGVuIHdlIHRyaWdnZXJcbiAgICAgICAgICAgIC8vIGEgaGFyZCBuYXZpZ2F0aW9uXG4gICAgICAgICAgICBpZiAobWF0Y2hlc0JmbFN0YXRpYyB8fCBtYXRjaGVzQmZsRHluYW1pYykge1xuICAgICAgICAgICAgICBpZiAoc2tpcE5hdmlnYXRlKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRydWVcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICBoYW5kbGVIYXJkTmF2aWdhdGlvbih7XG4gICAgICAgICAgICAgICAgdXJsOiBhZGRCYXNlUGF0aChcbiAgICAgICAgICAgICAgICAgIGFkZExvY2FsZShhcywgbG9jYWxlIHx8IHRoaXMubG9jYWxlLCB0aGlzLmRlZmF1bHRMb2NhbGUpXG4gICAgICAgICAgICAgICAgKSxcbiAgICAgICAgICAgICAgICByb3V0ZXI6IHRoaXMsXG4gICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgIHJldHVybiBuZXcgUHJvbWlzZSgoKSA9PiB7fSlcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIGZhbHNlXG4gIH1cblxuICBwcml2YXRlIGFzeW5jIGNoYW5nZShcbiAgICBtZXRob2Q6IEhpc3RvcnlNZXRob2QsXG4gICAgdXJsOiBzdHJpbmcsXG4gICAgYXM6IHN0cmluZyxcbiAgICBvcHRpb25zOiBUcmFuc2l0aW9uT3B0aW9ucyxcbiAgICBmb3JjZWRTY3JvbGw/OiB7IHg6IG51bWJlcjsgeTogbnVtYmVyIH1cbiAgKTogUHJvbWlzZTxib29sZWFuPiB7XG4gICAgaWYgKCFpc0xvY2FsVVJMKHVybCkpIHtcbiAgICAgIGhhbmRsZUhhcmROYXZpZ2F0aW9uKHsgdXJsLCByb3V0ZXI6IHRoaXMgfSlcbiAgICAgIHJldHVybiBmYWxzZVxuICAgIH1cbiAgICAvLyBXQVJOSU5HOiBgX2hgIGlzIGFuIGludGVybmFsIG9wdGlvbiBmb3IgaGFuZGluZyBOZXh0LmpzIGNsaWVudC1zaWRlXG4gICAgLy8gaHlkcmF0aW9uLiBZb3VyIGFwcCBzaG91bGQgX25ldmVyXyB1c2UgdGhpcyBwcm9wZXJ0eS4gSXQgbWF5IGNoYW5nZSBhdFxuICAgIC8vIGFueSB0aW1lIHdpdGhvdXQgbm90aWNlLlxuICAgIGNvbnN0IGlzUXVlcnlVcGRhdGluZyA9IChvcHRpb25zIGFzIGFueSkuX2ggPT09IDFcblxuICAgIGlmICghaXNRdWVyeVVwZGF0aW5nICYmICFvcHRpb25zLnNoYWxsb3cpIHtcbiAgICAgIGF3YWl0IHRoaXMuX2JmbChhcywgdW5kZWZpbmVkLCBvcHRpb25zLmxvY2FsZSlcbiAgICB9XG5cbiAgICBsZXQgc2hvdWxkUmVzb2x2ZUhyZWYgPVxuICAgICAgaXNRdWVyeVVwZGF0aW5nIHx8XG4gICAgICAob3B0aW9ucyBhcyBhbnkpLl9zaG91bGRSZXNvbHZlSHJlZiB8fFxuICAgICAgcGFyc2VQYXRoKHVybCkucGF0aG5hbWUgPT09IHBhcnNlUGF0aChhcykucGF0aG5hbWVcblxuICAgIGNvbnN0IG5leHRTdGF0ZSA9IHtcbiAgICAgIC4uLnRoaXMuc3RhdGUsXG4gICAgfVxuXG4gICAgLy8gZm9yIHN0YXRpYyBwYWdlcyB3aXRoIHF1ZXJ5IHBhcmFtcyBpbiB0aGUgVVJMIHdlIGRlbGF5XG4gICAgLy8gbWFya2luZyB0aGUgcm91dGVyIHJlYWR5IHVudGlsIGFmdGVyIHRoZSBxdWVyeSBpcyB1cGRhdGVkXG4gICAgLy8gb3IgYSBuYXZpZ2F0aW9uIGhhcyBvY2N1cnJlZFxuICAgIGNvbnN0IHJlYWR5U3RhdGVDaGFuZ2UgPSB0aGlzLmlzUmVhZHkgIT09IHRydWVcbiAgICB0aGlzLmlzUmVhZHkgPSB0cnVlXG4gICAgY29uc3QgaXNTc3IgPSB0aGlzLmlzU3NyXG5cbiAgICBpZiAoIWlzUXVlcnlVcGRhdGluZykge1xuICAgICAgdGhpcy5pc1NzciA9IGZhbHNlXG4gICAgfVxuXG4gICAgLy8gaWYgYSByb3V0ZSB0cmFuc2l0aW9uIGlzIGFscmVhZHkgaW4gcHJvZ3Jlc3MgYmVmb3JlXG4gICAgLy8gdGhlIHF1ZXJ5IHVwZGF0aW5nIGlzIHRyaWdnZXJlZCBpZ25vcmUgcXVlcnkgdXBkYXRpbmdcbiAgICBpZiAoaXNRdWVyeVVwZGF0aW5nICYmIHRoaXMuY2xjKSB7XG4gICAgICByZXR1cm4gZmFsc2VcbiAgICB9XG5cbiAgICBjb25zdCBwcmV2TG9jYWxlID0gbmV4dFN0YXRlLmxvY2FsZVxuXG4gICAgaWYgKHByb2Nlc3MuZW52Ll9fTkVYVF9JMThOX1NVUFBPUlQpIHtcbiAgICAgIG5leHRTdGF0ZS5sb2NhbGUgPVxuICAgICAgICBvcHRpb25zLmxvY2FsZSA9PT0gZmFsc2VcbiAgICAgICAgICA/IHRoaXMuZGVmYXVsdExvY2FsZVxuICAgICAgICAgIDogb3B0aW9ucy5sb2NhbGUgfHwgbmV4dFN0YXRlLmxvY2FsZVxuXG4gICAgICBpZiAodHlwZW9mIG9wdGlvbnMubG9jYWxlID09PSAndW5kZWZpbmVkJykge1xuICAgICAgICBvcHRpb25zLmxvY2FsZSA9IG5leHRTdGF0ZS5sb2NhbGVcbiAgICAgIH1cblxuICAgICAgY29uc3QgcGFyc2VkQXMgPSBwYXJzZVJlbGF0aXZlVXJsKFxuICAgICAgICBoYXNCYXNlUGF0aChhcykgPyByZW1vdmVCYXNlUGF0aChhcykgOiBhc1xuICAgICAgKVxuICAgICAgY29uc3QgbG9jYWxlUGF0aFJlc3VsdCA9IG5vcm1hbGl6ZUxvY2FsZVBhdGgoXG4gICAgICAgIHBhcnNlZEFzLnBhdGhuYW1lLFxuICAgICAgICB0aGlzLmxvY2FsZXNcbiAgICAgIClcblxuICAgICAgaWYgKGxvY2FsZVBhdGhSZXN1bHQuZGV0ZWN0ZWRMb2NhbGUpIHtcbiAgICAgICAgbmV4dFN0YXRlLmxvY2FsZSA9IGxvY2FsZVBhdGhSZXN1bHQuZGV0ZWN0ZWRMb2NhbGVcbiAgICAgICAgcGFyc2VkQXMucGF0aG5hbWUgPSBhZGRCYXNlUGF0aChwYXJzZWRBcy5wYXRobmFtZSlcbiAgICAgICAgYXMgPSBmb3JtYXRXaXRoVmFsaWRhdGlvbihwYXJzZWRBcylcbiAgICAgICAgdXJsID0gYWRkQmFzZVBhdGgoXG4gICAgICAgICAgbm9ybWFsaXplTG9jYWxlUGF0aChcbiAgICAgICAgICAgIGhhc0Jhc2VQYXRoKHVybCkgPyByZW1vdmVCYXNlUGF0aCh1cmwpIDogdXJsLFxuICAgICAgICAgICAgdGhpcy5sb2NhbGVzXG4gICAgICAgICAgKS5wYXRobmFtZVxuICAgICAgICApXG4gICAgICB9XG4gICAgICBsZXQgZGlkTmF2aWdhdGUgPSBmYWxzZVxuXG4gICAgICAvLyB3ZSBuZWVkIHRvIHdyYXAgdGhpcyBpbiB0aGUgZW52IGNoZWNrIGFnYWluIHNpbmNlIHJlZ2VuZXJhdG9yIHJ1bnRpbWVcbiAgICAgIC8vIG1vdmVzIHRoaXMgb24gaXRzIG93biBkdWUgdG8gdGhlIHJldHVyblxuICAgICAgaWYgKHByb2Nlc3MuZW52Ll9fTkVYVF9JMThOX1NVUFBPUlQpIHtcbiAgICAgICAgLy8gaWYgdGhlIGxvY2FsZSBpc24ndCBjb25maWd1cmVkIGhhcmQgbmF2aWdhdGUgdG8gc2hvdyA0MDQgcGFnZVxuICAgICAgICBpZiAoIXRoaXMubG9jYWxlcz8uaW5jbHVkZXMobmV4dFN0YXRlLmxvY2FsZSEpKSB7XG4gICAgICAgICAgcGFyc2VkQXMucGF0aG5hbWUgPSBhZGRMb2NhbGUocGFyc2VkQXMucGF0aG5hbWUsIG5leHRTdGF0ZS5sb2NhbGUpXG4gICAgICAgICAgaGFuZGxlSGFyZE5hdmlnYXRpb24oe1xuICAgICAgICAgICAgdXJsOiBmb3JtYXRXaXRoVmFsaWRhdGlvbihwYXJzZWRBcyksXG4gICAgICAgICAgICByb3V0ZXI6IHRoaXMsXG4gICAgICAgICAgfSlcbiAgICAgICAgICAvLyB0aGlzIHdhcyBwcmV2aW91c2x5IGEgcmV0dXJuIGJ1dCB3YXMgcmVtb3ZlZCBpbiBmYXZvclxuICAgICAgICAgIC8vIG9mIGJldHRlciBkZWFkIGNvZGUgZWxpbWluYXRpb24gd2l0aCByZWdlbmVyYXRvciBydW50aW1lXG4gICAgICAgICAgZGlkTmF2aWdhdGUgPSB0cnVlXG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgY29uc3QgZGV0ZWN0ZWREb21haW4gPSBkZXRlY3REb21haW5Mb2NhbGUoXG4gICAgICAgIHRoaXMuZG9tYWluTG9jYWxlcyxcbiAgICAgICAgdW5kZWZpbmVkLFxuICAgICAgICBuZXh0U3RhdGUubG9jYWxlXG4gICAgICApXG5cbiAgICAgIC8vIHdlIG5lZWQgdG8gd3JhcCB0aGlzIGluIHRoZSBlbnYgY2hlY2sgYWdhaW4gc2luY2UgcmVnZW5lcmF0b3IgcnVudGltZVxuICAgICAgLy8gbW92ZXMgdGhpcyBvbiBpdHMgb3duIGR1ZSB0byB0aGUgcmV0dXJuXG4gICAgICBpZiAocHJvY2Vzcy5lbnYuX19ORVhUX0kxOE5fU1VQUE9SVCkge1xuICAgICAgICAvLyBpZiB3ZSBhcmUgbmF2aWdhdGluZyB0byBhIGRvbWFpbiBsb2NhbGUgZW5zdXJlIHdlIHJlZGlyZWN0IHRvIHRoZVxuICAgICAgICAvLyBjb3JyZWN0IGRvbWFpblxuICAgICAgICBpZiAoXG4gICAgICAgICAgIWRpZE5hdmlnYXRlICYmXG4gICAgICAgICAgZGV0ZWN0ZWREb21haW4gJiZcbiAgICAgICAgICB0aGlzLmlzTG9jYWxlRG9tYWluICYmXG4gICAgICAgICAgc2VsZi5sb2NhdGlvbi5ob3N0bmFtZSAhPT0gZGV0ZWN0ZWREb21haW4uZG9tYWluXG4gICAgICAgICkge1xuICAgICAgICAgIGNvbnN0IGFzTm9CYXNlUGF0aCA9IHJlbW92ZUJhc2VQYXRoKGFzKVxuICAgICAgICAgIGhhbmRsZUhhcmROYXZpZ2F0aW9uKHtcbiAgICAgICAgICAgIHVybDogYGh0dHAke2RldGVjdGVkRG9tYWluLmh0dHAgPyAnJyA6ICdzJ306Ly8ke1xuICAgICAgICAgICAgICBkZXRlY3RlZERvbWFpbi5kb21haW5cbiAgICAgICAgICAgIH0ke2FkZEJhc2VQYXRoKFxuICAgICAgICAgICAgICBgJHtcbiAgICAgICAgICAgICAgICBuZXh0U3RhdGUubG9jYWxlID09PSBkZXRlY3RlZERvbWFpbi5kZWZhdWx0TG9jYWxlXG4gICAgICAgICAgICAgICAgICA/ICcnXG4gICAgICAgICAgICAgICAgICA6IGAvJHtuZXh0U3RhdGUubG9jYWxlfWBcbiAgICAgICAgICAgICAgfSR7YXNOb0Jhc2VQYXRoID09PSAnLycgPyAnJyA6IGFzTm9CYXNlUGF0aH1gIHx8ICcvJ1xuICAgICAgICAgICAgKX1gLFxuICAgICAgICAgICAgcm91dGVyOiB0aGlzLFxuICAgICAgICAgIH0pXG4gICAgICAgICAgLy8gdGhpcyB3YXMgcHJldmlvdXNseSBhIHJldHVybiBidXQgd2FzIHJlbW92ZWQgaW4gZmF2b3JcbiAgICAgICAgICAvLyBvZiBiZXR0ZXIgZGVhZCBjb2RlIGVsaW1pbmF0aW9uIHdpdGggcmVnZW5lcmF0b3IgcnVudGltZVxuICAgICAgICAgIGRpZE5hdmlnYXRlID0gdHJ1ZVxuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIGlmIChkaWROYXZpZ2F0ZSkge1xuICAgICAgICByZXR1cm4gbmV3IFByb21pc2UoKCkgPT4ge30pXG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gbWFya2luZyByb3V0ZSBjaGFuZ2VzIGFzIGEgbmF2aWdhdGlvbiBzdGFydCBlbnRyeVxuICAgIGlmIChTVCkge1xuICAgICAgcGVyZm9ybWFuY2UubWFyaygncm91dGVDaGFuZ2UnKVxuICAgIH1cblxuICAgIGNvbnN0IHsgc2hhbGxvdyA9IGZhbHNlLCBzY3JvbGwgPSB0cnVlIH0gPSBvcHRpb25zXG4gICAgY29uc3Qgcm91dGVQcm9wcyA9IHsgc2hhbGxvdyB9XG5cbiAgICBpZiAodGhpcy5faW5GbGlnaHRSb3V0ZSAmJiB0aGlzLmNsYykge1xuICAgICAgaWYgKCFpc1Nzcikge1xuICAgICAgICBSb3V0ZXIuZXZlbnRzLmVtaXQoXG4gICAgICAgICAgJ3JvdXRlQ2hhbmdlRXJyb3InLFxuICAgICAgICAgIGJ1aWxkQ2FuY2VsbGF0aW9uRXJyb3IoKSxcbiAgICAgICAgICB0aGlzLl9pbkZsaWdodFJvdXRlLFxuICAgICAgICAgIHJvdXRlUHJvcHNcbiAgICAgICAgKVxuICAgICAgfVxuICAgICAgdGhpcy5jbGMoKVxuICAgICAgdGhpcy5jbGMgPSBudWxsXG4gICAgfVxuXG4gICAgYXMgPSBhZGRCYXNlUGF0aChcbiAgICAgIGFkZExvY2FsZShcbiAgICAgICAgaGFzQmFzZVBhdGgoYXMpID8gcmVtb3ZlQmFzZVBhdGgoYXMpIDogYXMsXG4gICAgICAgIG9wdGlvbnMubG9jYWxlLFxuICAgICAgICB0aGlzLmRlZmF1bHRMb2NhbGVcbiAgICAgIClcbiAgICApXG4gICAgY29uc3QgY2xlYW5lZEFzID0gcmVtb3ZlTG9jYWxlKFxuICAgICAgaGFzQmFzZVBhdGgoYXMpID8gcmVtb3ZlQmFzZVBhdGgoYXMpIDogYXMsXG4gICAgICBuZXh0U3RhdGUubG9jYWxlXG4gICAgKVxuICAgIHRoaXMuX2luRmxpZ2h0Um91dGUgPSBhc1xuXG4gICAgY29uc3QgbG9jYWxlQ2hhbmdlID0gcHJldkxvY2FsZSAhPT0gbmV4dFN0YXRlLmxvY2FsZVxuXG4gICAgLy8gSWYgdGhlIHVybCBjaGFuZ2UgaXMgb25seSByZWxhdGVkIHRvIGEgaGFzaCBjaGFuZ2VcbiAgICAvLyBXZSBzaG91bGQgbm90IHByb2NlZWQuIFdlIHNob3VsZCBvbmx5IGNoYW5nZSB0aGUgc3RhdGUuXG5cbiAgICBpZiAoIWlzUXVlcnlVcGRhdGluZyAmJiB0aGlzLm9ubHlBSGFzaENoYW5nZShjbGVhbmVkQXMpICYmICFsb2NhbGVDaGFuZ2UpIHtcbiAgICAgIG5leHRTdGF0ZS5hc1BhdGggPSBjbGVhbmVkQXNcbiAgICAgIFJvdXRlci5ldmVudHMuZW1pdCgnaGFzaENoYW5nZVN0YXJ0JywgYXMsIHJvdXRlUHJvcHMpXG4gICAgICAvLyBUT0RPOiBkbyB3ZSBuZWVkIHRoZSByZXNvbHZlZCBocmVmIHdoZW4gb25seSBhIGhhc2ggY2hhbmdlP1xuICAgICAgdGhpcy5jaGFuZ2VTdGF0ZShtZXRob2QsIHVybCwgYXMsIHtcbiAgICAgICAgLi4ub3B0aW9ucyxcbiAgICAgICAgc2Nyb2xsOiBmYWxzZSxcbiAgICAgIH0pXG4gICAgICBpZiAoc2Nyb2xsKSB7XG4gICAgICAgIHRoaXMuc2Nyb2xsVG9IYXNoKGNsZWFuZWRBcylcbiAgICAgIH1cbiAgICAgIHRyeSB7XG4gICAgICAgIGF3YWl0IHRoaXMuc2V0KG5leHRTdGF0ZSwgdGhpcy5jb21wb25lbnRzW25leHRTdGF0ZS5yb3V0ZV0sIG51bGwpXG4gICAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgICAgaWYgKGlzRXJyb3IoZXJyKSAmJiBlcnIuY2FuY2VsbGVkKSB7XG4gICAgICAgICAgUm91dGVyLmV2ZW50cy5lbWl0KCdyb3V0ZUNoYW5nZUVycm9yJywgZXJyLCBjbGVhbmVkQXMsIHJvdXRlUHJvcHMpXG4gICAgICAgIH1cbiAgICAgICAgdGhyb3cgZXJyXG4gICAgICB9XG5cbiAgICAgIFJvdXRlci5ldmVudHMuZW1pdCgnaGFzaENoYW5nZUNvbXBsZXRlJywgYXMsIHJvdXRlUHJvcHMpXG4gICAgICByZXR1cm4gdHJ1ZVxuICAgIH1cblxuICAgIGxldCBwYXJzZWQgPSBwYXJzZVJlbGF0aXZlVXJsKHVybClcbiAgICBsZXQgeyBwYXRobmFtZSwgcXVlcnkgfSA9IHBhcnNlZFxuXG4gICAgLy8gVGhlIGJ1aWxkIG1hbmlmZXN0IG5lZWRzIHRvIGJlIGxvYWRlZCBiZWZvcmUgYXV0by1zdGF0aWMgZHluYW1pYyBwYWdlc1xuICAgIC8vIGdldCB0aGVpciBxdWVyeSBwYXJhbWV0ZXJzIHRvIGFsbG93IGVuc3VyaW5nIHRoZXkgY2FuIGJlIHBhcnNlZCBwcm9wZXJseVxuICAgIC8vIHdoZW4gcmV3cml0dGVuIHRvXG4gICAgbGV0IHBhZ2VzOiBzdHJpbmdbXSwgcmV3cml0ZXM6IGFueVxuICAgIHRyeSB7XG4gICAgICA7W3BhZ2VzLCB7IF9fcmV3cml0ZXM6IHJld3JpdGVzIH1dID0gYXdhaXQgUHJvbWlzZS5hbGwoW1xuICAgICAgICB0aGlzLnBhZ2VMb2FkZXIuZ2V0UGFnZUxpc3QoKSxcbiAgICAgICAgZ2V0Q2xpZW50QnVpbGRNYW5pZmVzdCgpLFxuICAgICAgICB0aGlzLnBhZ2VMb2FkZXIuZ2V0TWlkZGxld2FyZSgpLFxuICAgICAgXSlcbiAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgIC8vIElmIHdlIGZhaWwgdG8gcmVzb2x2ZSB0aGUgcGFnZSBsaXN0IG9yIGNsaWVudC1idWlsZCBtYW5pZmVzdCwgd2UgbXVzdFxuICAgICAgLy8gZG8gYSBzZXJ2ZXItc2lkZSB0cmFuc2l0aW9uOlxuICAgICAgaGFuZGxlSGFyZE5hdmlnYXRpb24oeyB1cmw6IGFzLCByb3V0ZXI6IHRoaXMgfSlcbiAgICAgIHJldHVybiBmYWxzZVxuICAgIH1cblxuICAgIC8vIElmIGFza2VkIHRvIGNoYW5nZSB0aGUgY3VycmVudCBVUkwgd2Ugc2hvdWxkIHJlbG9hZCB0aGUgY3VycmVudCBwYWdlXG4gICAgLy8gKG5vdCBsb2NhdGlvbi5yZWxvYWQoKSBidXQgcmVsb2FkIGdldEluaXRpYWxQcm9wcyBhbmQgb3RoZXIgTmV4dC5qcyBzdHVmZnMpXG4gICAgLy8gV2UgYWxzbyBuZWVkIHRvIHNldCB0aGUgbWV0aG9kID0gcmVwbGFjZVN0YXRlIGFsd2F5c1xuICAgIC8vIGFzIHRoaXMgc2hvdWxkIG5vdCBnbyBpbnRvIHRoZSBoaXN0b3J5IChUaGF0J3MgaG93IGJyb3dzZXJzIHdvcmspXG4gICAgLy8gV2Ugc2hvdWxkIGNvbXBhcmUgdGhlIG5ldyBhc1BhdGggdG8gdGhlIGN1cnJlbnQgYXNQYXRoLCBub3QgdGhlIHVybFxuICAgIGlmICghdGhpcy51cmxJc05ldyhjbGVhbmVkQXMpICYmICFsb2NhbGVDaGFuZ2UpIHtcbiAgICAgIG1ldGhvZCA9ICdyZXBsYWNlU3RhdGUnXG4gICAgfVxuXG4gICAgLy8gd2UgbmVlZCB0byByZXNvbHZlIHRoZSBhcyB2YWx1ZSB1c2luZyByZXdyaXRlcyBmb3IgZHluYW1pYyBTU0dcbiAgICAvLyBwYWdlcyB0byBhbGxvdyBidWlsZGluZyB0aGUgZGF0YSBVUkwgY29ycmVjdGx5XG4gICAgbGV0IHJlc29sdmVkQXMgPSBhc1xuXG4gICAgLy8gdXJsIGFuZCBhcyBzaG91bGQgYWx3YXlzIGJlIHByZWZpeGVkIHdpdGggYmFzZVBhdGggYnkgdGhpc1xuICAgIC8vIHBvaW50IGJ5IGVpdGhlciBuZXh0L2xpbmsgb3Igcm91dGVyLnB1c2gvcmVwbGFjZSBzbyBzdHJpcCB0aGVcbiAgICAvLyBiYXNlUGF0aCBmcm9tIHRoZSBwYXRobmFtZSB0byBtYXRjaCB0aGUgcGFnZXMgZGlyIDEtdG8tMVxuICAgIHBhdGhuYW1lID0gcGF0aG5hbWVcbiAgICAgID8gcmVtb3ZlVHJhaWxpbmdTbGFzaChyZW1vdmVCYXNlUGF0aChwYXRobmFtZSkpXG4gICAgICA6IHBhdGhuYW1lXG5cbiAgICBsZXQgcm91dGUgPSByZW1vdmVUcmFpbGluZ1NsYXNoKHBhdGhuYW1lKVxuICAgIGNvbnN0IHBhcnNlZEFzUGF0aG5hbWUgPSBhcy5zdGFydHNXaXRoKCcvJykgJiYgcGFyc2VSZWxhdGl2ZVVybChhcykucGF0aG5hbWVcblxuICAgIC8vIGlmIHdlIGRldGVjdGVkIHRoZSBwYXRoIGFzIGFwcCByb3V0ZSBkdXJpbmcgcHJlZmV0Y2hpbmdcbiAgICAvLyB0cmlnZ2VyIGhhcmQgbmF2aWdhdGlvblxuICAgIGlmICgodGhpcy5jb21wb25lbnRzW3BhdGhuYW1lXSBhcyBhbnkpPy5fX2FwcFJvdXRlcikge1xuICAgICAgaGFuZGxlSGFyZE5hdmlnYXRpb24oeyB1cmw6IGFzLCByb3V0ZXI6IHRoaXMgfSlcbiAgICAgIHJldHVybiBuZXcgUHJvbWlzZSgoKSA9PiB7fSlcbiAgICB9XG5cbiAgICBjb25zdCBpc01pZGRsZXdhcmVSZXdyaXRlID0gISEoXG4gICAgICBwYXJzZWRBc1BhdGhuYW1lICYmXG4gICAgICByb3V0ZSAhPT0gcGFyc2VkQXNQYXRobmFtZSAmJlxuICAgICAgKCFpc0R5bmFtaWNSb3V0ZShyb3V0ZSkgfHxcbiAgICAgICAgIWdldFJvdXRlTWF0Y2hlcihnZXRSb3V0ZVJlZ2V4KHJvdXRlKSkocGFyc2VkQXNQYXRobmFtZSkpXG4gICAgKVxuXG4gICAgLy8gd2UgZG9uJ3QgYXR0ZW1wdCByZXNvbHZlIGFzUGF0aCB3aGVuIHdlIG5lZWQgdG8gZXhlY3V0ZVxuICAgIC8vIG1pZGRsZXdhcmUgYXMgdGhlIHJlc29sdmluZyB3aWxsIG9jY3VyIHNlcnZlci1zaWRlXG4gICAgY29uc3QgaXNNaWRkbGV3YXJlTWF0Y2ggPVxuICAgICAgIW9wdGlvbnMuc2hhbGxvdyAmJlxuICAgICAgKGF3YWl0IG1hdGNoZXNNaWRkbGV3YXJlKHtcbiAgICAgICAgYXNQYXRoOiBhcyxcbiAgICAgICAgbG9jYWxlOiBuZXh0U3RhdGUubG9jYWxlLFxuICAgICAgICByb3V0ZXI6IHRoaXMsXG4gICAgICB9KSlcblxuICAgIGlmIChpc1F1ZXJ5VXBkYXRpbmcgJiYgaXNNaWRkbGV3YXJlTWF0Y2gpIHtcbiAgICAgIHNob3VsZFJlc29sdmVIcmVmID0gZmFsc2VcbiAgICB9XG5cbiAgICBpZiAoc2hvdWxkUmVzb2x2ZUhyZWYgJiYgcGF0aG5hbWUgIT09ICcvX2Vycm9yJykge1xuICAgICAgOyhvcHRpb25zIGFzIGFueSkuX3Nob3VsZFJlc29sdmVIcmVmID0gdHJ1ZVxuXG4gICAgICBpZiAocHJvY2Vzcy5lbnYuX19ORVhUX0hBU19SRVdSSVRFUyAmJiBhcy5zdGFydHNXaXRoKCcvJykpIHtcbiAgICAgICAgY29uc3QgcmV3cml0ZXNSZXN1bHQgPSByZXNvbHZlUmV3cml0ZXMoXG4gICAgICAgICAgYWRkQmFzZVBhdGgoYWRkTG9jYWxlKGNsZWFuZWRBcywgbmV4dFN0YXRlLmxvY2FsZSksIHRydWUpLFxuICAgICAgICAgIHBhZ2VzLFxuICAgICAgICAgIHJld3JpdGVzLFxuICAgICAgICAgIHF1ZXJ5LFxuICAgICAgICAgIChwOiBzdHJpbmcpID0+IHJlc29sdmVEeW5hbWljUm91dGUocCwgcGFnZXMpLFxuICAgICAgICAgIHRoaXMubG9jYWxlc1xuICAgICAgICApXG5cbiAgICAgICAgaWYgKHJld3JpdGVzUmVzdWx0LmV4dGVybmFsRGVzdCkge1xuICAgICAgICAgIGhhbmRsZUhhcmROYXZpZ2F0aW9uKHsgdXJsOiBhcywgcm91dGVyOiB0aGlzIH0pXG4gICAgICAgICAgcmV0dXJuIHRydWVcbiAgICAgICAgfVxuICAgICAgICBpZiAoIWlzTWlkZGxld2FyZU1hdGNoKSB7XG4gICAgICAgICAgcmVzb2x2ZWRBcyA9IHJld3JpdGVzUmVzdWx0LmFzUGF0aFxuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHJld3JpdGVzUmVzdWx0Lm1hdGNoZWRQYWdlICYmIHJld3JpdGVzUmVzdWx0LnJlc29sdmVkSHJlZikge1xuICAgICAgICAgIC8vIGlmIHRoaXMgZGlyZWN0bHkgbWF0Y2hlcyBhIHBhZ2Ugd2UgbmVlZCB0byB1cGRhdGUgdGhlIGhyZWYgdG9cbiAgICAgICAgICAvLyBhbGxvdyB0aGUgY29ycmVjdCBwYWdlIGNodW5rIHRvIGJlIGxvYWRlZFxuICAgICAgICAgIHBhdGhuYW1lID0gcmV3cml0ZXNSZXN1bHQucmVzb2x2ZWRIcmVmXG4gICAgICAgICAgcGFyc2VkLnBhdGhuYW1lID0gYWRkQmFzZVBhdGgocGF0aG5hbWUpXG5cbiAgICAgICAgICBpZiAoIWlzTWlkZGxld2FyZU1hdGNoKSB7XG4gICAgICAgICAgICB1cmwgPSBmb3JtYXRXaXRoVmFsaWRhdGlvbihwYXJzZWQpXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBwYXJzZWQucGF0aG5hbWUgPSByZXNvbHZlRHluYW1pY1JvdXRlKHBhdGhuYW1lLCBwYWdlcylcblxuICAgICAgICBpZiAocGFyc2VkLnBhdGhuYW1lICE9PSBwYXRobmFtZSkge1xuICAgICAgICAgIHBhdGhuYW1lID0gcGFyc2VkLnBhdGhuYW1lXG4gICAgICAgICAgcGFyc2VkLnBhdGhuYW1lID0gYWRkQmFzZVBhdGgocGF0aG5hbWUpXG5cbiAgICAgICAgICBpZiAoIWlzTWlkZGxld2FyZU1hdGNoKSB7XG4gICAgICAgICAgICB1cmwgPSBmb3JtYXRXaXRoVmFsaWRhdGlvbihwYXJzZWQpXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKCFpc0xvY2FsVVJMKGFzKSkge1xuICAgICAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICAgIGBJbnZhbGlkIGhyZWY6IFwiJHt1cmx9XCIgYW5kIGFzOiBcIiR7YXN9XCIsIHJlY2VpdmVkIHJlbGF0aXZlIGhyZWYgYW5kIGV4dGVybmFsIGFzYCArXG4gICAgICAgICAgICBgXFxuU2VlIG1vcmUgaW5mbzogaHR0cHM6Ly9uZXh0anMub3JnL2RvY3MvbWVzc2FnZXMvaW52YWxpZC1yZWxhdGl2ZS11cmwtZXh0ZXJuYWwtYXNgXG4gICAgICAgIClcbiAgICAgIH1cbiAgICAgIGhhbmRsZUhhcmROYXZpZ2F0aW9uKHsgdXJsOiBhcywgcm91dGVyOiB0aGlzIH0pXG4gICAgICByZXR1cm4gZmFsc2VcbiAgICB9XG5cbiAgICByZXNvbHZlZEFzID0gcmVtb3ZlTG9jYWxlKHJlbW92ZUJhc2VQYXRoKHJlc29sdmVkQXMpLCBuZXh0U3RhdGUubG9jYWxlKVxuXG4gICAgcm91dGUgPSByZW1vdmVUcmFpbGluZ1NsYXNoKHBhdGhuYW1lKVxuICAgIGxldCByb3V0ZU1hdGNoOiBQYXJhbXMgfCBmYWxzZSA9IGZhbHNlXG5cbiAgICBpZiAoaXNEeW5hbWljUm91dGUocm91dGUpKSB7XG4gICAgICBjb25zdCBwYXJzZWRBcyA9IHBhcnNlUmVsYXRpdmVVcmwocmVzb2x2ZWRBcylcbiAgICAgIGNvbnN0IGFzUGF0aG5hbWUgPSBwYXJzZWRBcy5wYXRobmFtZVxuXG4gICAgICBjb25zdCByb3V0ZVJlZ2V4ID0gZ2V0Um91dGVSZWdleChyb3V0ZSlcbiAgICAgIHJvdXRlTWF0Y2ggPSBnZXRSb3V0ZU1hdGNoZXIocm91dGVSZWdleCkoYXNQYXRobmFtZSlcbiAgICAgIGNvbnN0IHNob3VsZEludGVycG9sYXRlID0gcm91dGUgPT09IGFzUGF0aG5hbWVcbiAgICAgIGNvbnN0IGludGVycG9sYXRlZEFzID0gc2hvdWxkSW50ZXJwb2xhdGVcbiAgICAgICAgPyBpbnRlcnBvbGF0ZUFzKHJvdXRlLCBhc1BhdGhuYW1lLCBxdWVyeSlcbiAgICAgICAgOiAoe30gYXMgeyByZXN1bHQ6IHVuZGVmaW5lZDsgcGFyYW1zOiB1bmRlZmluZWQgfSlcblxuICAgICAgaWYgKCFyb3V0ZU1hdGNoIHx8IChzaG91bGRJbnRlcnBvbGF0ZSAmJiAhaW50ZXJwb2xhdGVkQXMucmVzdWx0KSkge1xuICAgICAgICBjb25zdCBtaXNzaW5nUGFyYW1zID0gT2JqZWN0LmtleXMocm91dGVSZWdleC5ncm91cHMpLmZpbHRlcihcbiAgICAgICAgICAocGFyYW0pID0+ICFxdWVyeVtwYXJhbV0gJiYgIXJvdXRlUmVnZXguZ3JvdXBzW3BhcmFtXS5vcHRpb25hbFxuICAgICAgICApXG5cbiAgICAgICAgaWYgKG1pc3NpbmdQYXJhbXMubGVuZ3RoID4gMCAmJiAhaXNNaWRkbGV3YXJlTWF0Y2gpIHtcbiAgICAgICAgICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJykge1xuICAgICAgICAgICAgY29uc29sZS53YXJuKFxuICAgICAgICAgICAgICBgJHtcbiAgICAgICAgICAgICAgICBzaG91bGRJbnRlcnBvbGF0ZVxuICAgICAgICAgICAgICAgICAgPyBgSW50ZXJwb2xhdGluZyBocmVmYFxuICAgICAgICAgICAgICAgICAgOiBgTWlzbWF0Y2hpbmcgXFxgYXNcXGAgYW5kIFxcYGhyZWZcXGBgXG4gICAgICAgICAgICAgIH0gZmFpbGVkIHRvIG1hbnVhbGx5IHByb3ZpZGUgYCArXG4gICAgICAgICAgICAgICAgYHRoZSBwYXJhbXM6ICR7bWlzc2luZ1BhcmFtcy5qb2luKFxuICAgICAgICAgICAgICAgICAgJywgJ1xuICAgICAgICAgICAgICAgICl9IGluIHRoZSBcXGBocmVmXFxgJ3MgXFxgcXVlcnlcXGBgXG4gICAgICAgICAgICApXG4gICAgICAgICAgfVxuXG4gICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICAgICAgKHNob3VsZEludGVycG9sYXRlXG4gICAgICAgICAgICAgID8gYFRoZSBwcm92aWRlZCBcXGBocmVmXFxgICgke3VybH0pIHZhbHVlIGlzIG1pc3NpbmcgcXVlcnkgdmFsdWVzICgke21pc3NpbmdQYXJhbXMuam9pbihcbiAgICAgICAgICAgICAgICAgICcsICdcbiAgICAgICAgICAgICAgICApfSkgdG8gYmUgaW50ZXJwb2xhdGVkIHByb3Blcmx5LiBgXG4gICAgICAgICAgICAgIDogYFRoZSBwcm92aWRlZCBcXGBhc1xcYCB2YWx1ZSAoJHthc1BhdGhuYW1lfSkgaXMgaW5jb21wYXRpYmxlIHdpdGggdGhlIFxcYGhyZWZcXGAgdmFsdWUgKCR7cm91dGV9KS4gYCkgK1xuICAgICAgICAgICAgICBgUmVhZCBtb3JlOiBodHRwczovL25leHRqcy5vcmcvZG9jcy9tZXNzYWdlcy8ke1xuICAgICAgICAgICAgICAgIHNob3VsZEludGVycG9sYXRlXG4gICAgICAgICAgICAgICAgICA/ICdocmVmLWludGVycG9sYXRpb24tZmFpbGVkJ1xuICAgICAgICAgICAgICAgICAgOiAnaW5jb21wYXRpYmxlLWhyZWYtYXMnXG4gICAgICAgICAgICAgIH1gXG4gICAgICAgICAgKVxuICAgICAgICB9XG4gICAgICB9IGVsc2UgaWYgKHNob3VsZEludGVycG9sYXRlKSB7XG4gICAgICAgIGFzID0gZm9ybWF0V2l0aFZhbGlkYXRpb24oXG4gICAgICAgICAgT2JqZWN0LmFzc2lnbih7fSwgcGFyc2VkQXMsIHtcbiAgICAgICAgICAgIHBhdGhuYW1lOiBpbnRlcnBvbGF0ZWRBcy5yZXN1bHQsXG4gICAgICAgICAgICBxdWVyeTogb21pdChxdWVyeSwgaW50ZXJwb2xhdGVkQXMucGFyYW1zISksXG4gICAgICAgICAgfSlcbiAgICAgICAgKVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgLy8gTWVyZ2UgcGFyYW1zIGludG8gYHF1ZXJ5YCwgb3ZlcndyaXRpbmcgYW55IHNwZWNpZmllZCBpbiBzZWFyY2hcbiAgICAgICAgT2JqZWN0LmFzc2lnbihxdWVyeSwgcm91dGVNYXRjaClcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAoIWlzUXVlcnlVcGRhdGluZykge1xuICAgICAgUm91dGVyLmV2ZW50cy5lbWl0KCdyb3V0ZUNoYW5nZVN0YXJ0JywgYXMsIHJvdXRlUHJvcHMpXG4gICAgfVxuXG4gICAgY29uc3QgaXNFcnJvclJvdXRlID0gdGhpcy5wYXRobmFtZSA9PT0gJy80MDQnIHx8IHRoaXMucGF0aG5hbWUgPT09ICcvX2Vycm9yJ1xuXG4gICAgdHJ5IHtcbiAgICAgIGxldCByb3V0ZUluZm8gPSBhd2FpdCB0aGlzLmdldFJvdXRlSW5mbyh7XG4gICAgICAgIHJvdXRlLFxuICAgICAgICBwYXRobmFtZSxcbiAgICAgICAgcXVlcnksXG4gICAgICAgIGFzLFxuICAgICAgICByZXNvbHZlZEFzLFxuICAgICAgICByb3V0ZVByb3BzLFxuICAgICAgICBsb2NhbGU6IG5leHRTdGF0ZS5sb2NhbGUsXG4gICAgICAgIGlzUHJldmlldzogbmV4dFN0YXRlLmlzUHJldmlldyxcbiAgICAgICAgaGFzTWlkZGxld2FyZTogaXNNaWRkbGV3YXJlTWF0Y2gsXG4gICAgICAgIHVuc3RhYmxlX3NraXBDbGllbnRDYWNoZTogb3B0aW9ucy51bnN0YWJsZV9za2lwQ2xpZW50Q2FjaGUsXG4gICAgICAgIGlzUXVlcnlVcGRhdGluZzogaXNRdWVyeVVwZGF0aW5nICYmICF0aGlzLmlzRmFsbGJhY2ssXG4gICAgICAgIGlzTWlkZGxld2FyZVJld3JpdGUsXG4gICAgICB9KVxuXG4gICAgICBpZiAoIWlzUXVlcnlVcGRhdGluZyAmJiAhb3B0aW9ucy5zaGFsbG93KSB7XG4gICAgICAgIGF3YWl0IHRoaXMuX2JmbChcbiAgICAgICAgICBhcyxcbiAgICAgICAgICAncmVzb2x2ZWRBcycgaW4gcm91dGVJbmZvID8gcm91dGVJbmZvLnJlc29sdmVkQXMgOiB1bmRlZmluZWQsXG4gICAgICAgICAgbmV4dFN0YXRlLmxvY2FsZVxuICAgICAgICApXG4gICAgICB9XG5cbiAgICAgIGlmICgncm91dGUnIGluIHJvdXRlSW5mbyAmJiBpc01pZGRsZXdhcmVNYXRjaCkge1xuICAgICAgICBwYXRobmFtZSA9IHJvdXRlSW5mby5yb3V0ZSB8fCByb3V0ZVxuICAgICAgICByb3V0ZSA9IHBhdGhuYW1lXG5cbiAgICAgICAgaWYgKCFyb3V0ZVByb3BzLnNoYWxsb3cpIHtcbiAgICAgICAgICBxdWVyeSA9IE9iamVjdC5hc3NpZ24oe30sIHJvdXRlSW5mby5xdWVyeSB8fCB7fSwgcXVlcnkpXG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBjbGVhbmVkUGFyc2VkUGF0aG5hbWUgPSBoYXNCYXNlUGF0aChwYXJzZWQucGF0aG5hbWUpXG4gICAgICAgICAgPyByZW1vdmVCYXNlUGF0aChwYXJzZWQucGF0aG5hbWUpXG4gICAgICAgICAgOiBwYXJzZWQucGF0aG5hbWVcblxuICAgICAgICBpZiAocm91dGVNYXRjaCAmJiBwYXRobmFtZSAhPT0gY2xlYW5lZFBhcnNlZFBhdGhuYW1lKSB7XG4gICAgICAgICAgT2JqZWN0LmtleXMocm91dGVNYXRjaCkuZm9yRWFjaCgoa2V5KSA9PiB7XG4gICAgICAgICAgICBpZiAocm91dGVNYXRjaCAmJiBxdWVyeVtrZXldID09PSByb3V0ZU1hdGNoW2tleV0pIHtcbiAgICAgICAgICAgICAgZGVsZXRlIHF1ZXJ5W2tleV1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9KVxuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGlzRHluYW1pY1JvdXRlKHBhdGhuYW1lKSkge1xuICAgICAgICAgIGNvbnN0IHByZWZpeGVkQXMgPVxuICAgICAgICAgICAgIXJvdXRlUHJvcHMuc2hhbGxvdyAmJiByb3V0ZUluZm8ucmVzb2x2ZWRBc1xuICAgICAgICAgICAgICA/IHJvdXRlSW5mby5yZXNvbHZlZEFzXG4gICAgICAgICAgICAgIDogYWRkQmFzZVBhdGgoXG4gICAgICAgICAgICAgICAgICBhZGRMb2NhbGUoXG4gICAgICAgICAgICAgICAgICAgIG5ldyBVUkwoYXMsIGxvY2F0aW9uLmhyZWYpLnBhdGhuYW1lLFxuICAgICAgICAgICAgICAgICAgICBuZXh0U3RhdGUubG9jYWxlXG4gICAgICAgICAgICAgICAgICApLFxuICAgICAgICAgICAgICAgICAgdHJ1ZVxuICAgICAgICAgICAgICAgIClcblxuICAgICAgICAgIGxldCByZXdyaXRlQXMgPSBwcmVmaXhlZEFzXG5cbiAgICAgICAgICBpZiAoaGFzQmFzZVBhdGgocmV3cml0ZUFzKSkge1xuICAgICAgICAgICAgcmV3cml0ZUFzID0gcmVtb3ZlQmFzZVBhdGgocmV3cml0ZUFzKVxuICAgICAgICAgIH1cblxuICAgICAgICAgIGlmIChwcm9jZXNzLmVudi5fX05FWFRfSTE4Tl9TVVBQT1JUKSB7XG4gICAgICAgICAgICBjb25zdCBsb2NhbGVSZXN1bHQgPSBub3JtYWxpemVMb2NhbGVQYXRoKHJld3JpdGVBcywgdGhpcy5sb2NhbGVzKVxuICAgICAgICAgICAgbmV4dFN0YXRlLmxvY2FsZSA9IGxvY2FsZVJlc3VsdC5kZXRlY3RlZExvY2FsZSB8fCBuZXh0U3RhdGUubG9jYWxlXG4gICAgICAgICAgICByZXdyaXRlQXMgPSBsb2NhbGVSZXN1bHQucGF0aG5hbWVcbiAgICAgICAgICB9XG4gICAgICAgICAgY29uc3Qgcm91dGVSZWdleCA9IGdldFJvdXRlUmVnZXgocGF0aG5hbWUpXG4gICAgICAgICAgY29uc3QgY3VyUm91dGVNYXRjaCA9IGdldFJvdXRlTWF0Y2hlcihyb3V0ZVJlZ2V4KShcbiAgICAgICAgICAgIG5ldyBVUkwocmV3cml0ZUFzLCBsb2NhdGlvbi5ocmVmKS5wYXRobmFtZVxuICAgICAgICAgIClcblxuICAgICAgICAgIGlmIChjdXJSb3V0ZU1hdGNoKSB7XG4gICAgICAgICAgICBPYmplY3QuYXNzaWduKHF1ZXJ5LCBjdXJSb3V0ZU1hdGNoKVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAvLyBJZiB0aGUgcm91dGVJbmZvIGJyaW5ncyBhIHJlZGlyZWN0IHdlIHNpbXBseSBhcHBseSBpdC5cbiAgICAgIGlmICgndHlwZScgaW4gcm91dGVJbmZvKSB7XG4gICAgICAgIGlmIChyb3V0ZUluZm8udHlwZSA9PT0gJ3JlZGlyZWN0LWludGVybmFsJykge1xuICAgICAgICAgIHJldHVybiB0aGlzLmNoYW5nZShtZXRob2QsIHJvdXRlSW5mby5uZXdVcmwsIHJvdXRlSW5mby5uZXdBcywgb3B0aW9ucylcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBoYW5kbGVIYXJkTmF2aWdhdGlvbih7IHVybDogcm91dGVJbmZvLmRlc3RpbmF0aW9uLCByb3V0ZXI6IHRoaXMgfSlcbiAgICAgICAgICByZXR1cm4gbmV3IFByb21pc2UoKCkgPT4ge30pXG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgY29uc3QgY29tcG9uZW50OiBhbnkgPSByb3V0ZUluZm8uQ29tcG9uZW50XG4gICAgICBpZiAoY29tcG9uZW50ICYmIGNvbXBvbmVudC51bnN0YWJsZV9zY3JpcHRMb2FkZXIpIHtcbiAgICAgICAgY29uc3Qgc2NyaXB0cyA9IFtdLmNvbmNhdChjb21wb25lbnQudW5zdGFibGVfc2NyaXB0TG9hZGVyKCkpXG5cbiAgICAgICAgc2NyaXB0cy5mb3JFYWNoKChzY3JpcHQ6IGFueSkgPT4ge1xuICAgICAgICAgIGhhbmRsZUNsaWVudFNjcmlwdExvYWQoc2NyaXB0LnByb3BzKVxuICAgICAgICB9KVxuICAgICAgfVxuXG4gICAgICAvLyBoYW5kbGUgcmVkaXJlY3Qgb24gY2xpZW50LXRyYW5zaXRpb25cbiAgICAgIGlmICgocm91dGVJbmZvLl9fTl9TU0cgfHwgcm91dGVJbmZvLl9fTl9TU1ApICYmIHJvdXRlSW5mby5wcm9wcykge1xuICAgICAgICBpZiAoXG4gICAgICAgICAgcm91dGVJbmZvLnByb3BzLnBhZ2VQcm9wcyAmJlxuICAgICAgICAgIHJvdXRlSW5mby5wcm9wcy5wYWdlUHJvcHMuX19OX1JFRElSRUNUXG4gICAgICAgICkge1xuICAgICAgICAgIC8vIFVzZSB0aGUgZGVzdGluYXRpb24gZnJvbSByZWRpcmVjdCB3aXRob3V0IGFkZGluZyBsb2NhbGVcbiAgICAgICAgICBvcHRpb25zLmxvY2FsZSA9IGZhbHNlXG5cbiAgICAgICAgICBjb25zdCBkZXN0aW5hdGlvbiA9IHJvdXRlSW5mby5wcm9wcy5wYWdlUHJvcHMuX19OX1JFRElSRUNUXG5cbiAgICAgICAgICAvLyBjaGVjayBpZiBkZXN0aW5hdGlvbiBpcyBpbnRlcm5hbCAocmVzb2x2ZXMgdG8gYSBwYWdlKSBhbmQgYXR0ZW1wdFxuICAgICAgICAgIC8vIGNsaWVudC1uYXZpZ2F0aW9uIGlmIGl0IGlzIGZhbGxpbmcgYmFjayB0byBoYXJkIG5hdmlnYXRpb24gaWZcbiAgICAgICAgICAvLyBpdCdzIG5vdFxuICAgICAgICAgIGlmIChcbiAgICAgICAgICAgIGRlc3RpbmF0aW9uLnN0YXJ0c1dpdGgoJy8nKSAmJlxuICAgICAgICAgICAgcm91dGVJbmZvLnByb3BzLnBhZ2VQcm9wcy5fX05fUkVESVJFQ1RfQkFTRV9QQVRIICE9PSBmYWxzZVxuICAgICAgICAgICkge1xuICAgICAgICAgICAgY29uc3QgcGFyc2VkSHJlZiA9IHBhcnNlUmVsYXRpdmVVcmwoZGVzdGluYXRpb24pXG4gICAgICAgICAgICBwYXJzZWRIcmVmLnBhdGhuYW1lID0gcmVzb2x2ZUR5bmFtaWNSb3V0ZShcbiAgICAgICAgICAgICAgcGFyc2VkSHJlZi5wYXRobmFtZSxcbiAgICAgICAgICAgICAgcGFnZXNcbiAgICAgICAgICAgIClcblxuICAgICAgICAgICAgY29uc3QgeyB1cmw6IG5ld1VybCwgYXM6IG5ld0FzIH0gPSBwcmVwYXJlVXJsQXMoXG4gICAgICAgICAgICAgIHRoaXMsXG4gICAgICAgICAgICAgIGRlc3RpbmF0aW9uLFxuICAgICAgICAgICAgICBkZXN0aW5hdGlvblxuICAgICAgICAgICAgKVxuICAgICAgICAgICAgcmV0dXJuIHRoaXMuY2hhbmdlKG1ldGhvZCwgbmV3VXJsLCBuZXdBcywgb3B0aW9ucylcbiAgICAgICAgICB9XG4gICAgICAgICAgaGFuZGxlSGFyZE5hdmlnYXRpb24oeyB1cmw6IGRlc3RpbmF0aW9uLCByb3V0ZXI6IHRoaXMgfSlcbiAgICAgICAgICByZXR1cm4gbmV3IFByb21pc2UoKCkgPT4ge30pXG4gICAgICAgIH1cblxuICAgICAgICBuZXh0U3RhdGUuaXNQcmV2aWV3ID0gISFyb3V0ZUluZm8ucHJvcHMuX19OX1BSRVZJRVdcblxuICAgICAgICAvLyBoYW5kbGUgU1NHIGRhdGEgNDA0XG4gICAgICAgIGlmIChyb3V0ZUluZm8ucHJvcHMubm90Rm91bmQgPT09IFNTR19EQVRBX05PVF9GT1VORCkge1xuICAgICAgICAgIGxldCBub3RGb3VuZFJvdXRlXG5cbiAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgYXdhaXQgdGhpcy5mZXRjaENvbXBvbmVudCgnLzQwNCcpXG4gICAgICAgICAgICBub3RGb3VuZFJvdXRlID0gJy80MDQnXG4gICAgICAgICAgfSBjYXRjaCAoXykge1xuICAgICAgICAgICAgbm90Rm91bmRSb3V0ZSA9ICcvX2Vycm9yJ1xuICAgICAgICAgIH1cblxuICAgICAgICAgIHJvdXRlSW5mbyA9IGF3YWl0IHRoaXMuZ2V0Um91dGVJbmZvKHtcbiAgICAgICAgICAgIHJvdXRlOiBub3RGb3VuZFJvdXRlLFxuICAgICAgICAgICAgcGF0aG5hbWU6IG5vdEZvdW5kUm91dGUsXG4gICAgICAgICAgICBxdWVyeSxcbiAgICAgICAgICAgIGFzLFxuICAgICAgICAgICAgcmVzb2x2ZWRBcyxcbiAgICAgICAgICAgIHJvdXRlUHJvcHM6IHsgc2hhbGxvdzogZmFsc2UgfSxcbiAgICAgICAgICAgIGxvY2FsZTogbmV4dFN0YXRlLmxvY2FsZSxcbiAgICAgICAgICAgIGlzUHJldmlldzogbmV4dFN0YXRlLmlzUHJldmlldyxcbiAgICAgICAgICAgIGlzTm90Rm91bmQ6IHRydWUsXG4gICAgICAgICAgfSlcblxuICAgICAgICAgIGlmICgndHlwZScgaW4gcm91dGVJbmZvKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYFVuZXhwZWN0ZWQgbWlkZGxld2FyZSBlZmZlY3Qgb24gLzQwNGApXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIGlmIChcbiAgICAgICAgaXNRdWVyeVVwZGF0aW5nICYmXG4gICAgICAgIHRoaXMucGF0aG5hbWUgPT09ICcvX2Vycm9yJyAmJlxuICAgICAgICBzZWxmLl9fTkVYVF9EQVRBX18ucHJvcHM/LnBhZ2VQcm9wcz8uc3RhdHVzQ29kZSA9PT0gNTAwICYmXG4gICAgICAgIHJvdXRlSW5mby5wcm9wcz8ucGFnZVByb3BzXG4gICAgICApIHtcbiAgICAgICAgLy8gZW5zdXJlIHN0YXR1c0NvZGUgaXMgc3RpbGwgY29ycmVjdCBmb3Igc3RhdGljIDUwMCBwYWdlXG4gICAgICAgIC8vIHdoZW4gdXBkYXRpbmcgcXVlcnkgaW5mb3JtYXRpb25cbiAgICAgICAgcm91dGVJbmZvLnByb3BzLnBhZ2VQcm9wcy5zdGF0dXNDb2RlID0gNTAwXG4gICAgICB9XG5cbiAgICAgIC8vIHNoYWxsb3cgcm91dGluZyBpcyBvbmx5IGFsbG93ZWQgZm9yIHNhbWUgcGFnZSBVUkwgY2hhbmdlcy5cbiAgICAgIGNvbnN0IGlzVmFsaWRTaGFsbG93Um91dGUgPVxuICAgICAgICBvcHRpb25zLnNoYWxsb3cgJiYgbmV4dFN0YXRlLnJvdXRlID09PSAocm91dGVJbmZvLnJvdXRlID8/IHJvdXRlKVxuXG4gICAgICBjb25zdCBzaG91bGRTY3JvbGwgPVxuICAgICAgICBvcHRpb25zLnNjcm9sbCA/PyAoIWlzUXVlcnlVcGRhdGluZyAmJiAhaXNWYWxpZFNoYWxsb3dSb3V0ZSlcbiAgICAgIGNvbnN0IHJlc2V0U2Nyb2xsID0gc2hvdWxkU2Nyb2xsID8geyB4OiAwLCB5OiAwIH0gOiBudWxsXG4gICAgICBjb25zdCB1cGNvbWluZ1Njcm9sbFN0YXRlID0gZm9yY2VkU2Nyb2xsID8/IHJlc2V0U2Nyb2xsXG5cbiAgICAgIC8vIHRoZSBuZXcgc3RhdGUgdGhhdCB0aGUgcm91dGVyIGdvbm5hIHNldFxuICAgICAgY29uc3QgdXBjb21pbmdSb3V0ZXJTdGF0ZSA9IHtcbiAgICAgICAgLi4ubmV4dFN0YXRlLFxuICAgICAgICByb3V0ZSxcbiAgICAgICAgcGF0aG5hbWUsXG4gICAgICAgIHF1ZXJ5LFxuICAgICAgICBhc1BhdGg6IGNsZWFuZWRBcyxcbiAgICAgICAgaXNGYWxsYmFjazogZmFsc2UsXG4gICAgICB9XG5cbiAgICAgIC8vIFdoZW4gdGhlIHBhZ2UgYmVpbmcgcmVuZGVyZWQgaXMgdGhlIDQwNCBwYWdlLCB3ZSBzaG91bGQgb25seSB1cGRhdGUgdGhlXG4gICAgICAvLyBxdWVyeSBwYXJhbWV0ZXJzLiBSb3V0ZSBjaGFuZ2VzIGhlcmUgbWlnaHQgYWRkIHRoZSBiYXNlUGF0aCB3aGVuIGl0XG4gICAgICAvLyB3YXNuJ3Qgb3JpZ2luYWxseSBwcmVzZW50LiBUaGlzIGlzIGFsc28gd2h5IHRoaXMgYmxvY2sgaXMgYmVmb3JlIHRoZVxuICAgICAgLy8gYmVsb3cgYGNoYW5nZVN0YXRlYCBjYWxsIHdoaWNoIHVwZGF0ZXMgdGhlIGJyb3dzZXIncyBoaXN0b3J5IChjaGFuZ2luZ1xuICAgICAgLy8gdGhlIFVSTCkuXG4gICAgICBpZiAoaXNRdWVyeVVwZGF0aW5nICYmIGlzRXJyb3JSb3V0ZSkge1xuICAgICAgICByb3V0ZUluZm8gPSBhd2FpdCB0aGlzLmdldFJvdXRlSW5mbyh7XG4gICAgICAgICAgcm91dGU6IHRoaXMucGF0aG5hbWUsXG4gICAgICAgICAgcGF0aG5hbWU6IHRoaXMucGF0aG5hbWUsXG4gICAgICAgICAgcXVlcnksXG4gICAgICAgICAgYXMsXG4gICAgICAgICAgcmVzb2x2ZWRBcyxcbiAgICAgICAgICByb3V0ZVByb3BzOiB7IHNoYWxsb3c6IGZhbHNlIH0sXG4gICAgICAgICAgbG9jYWxlOiBuZXh0U3RhdGUubG9jYWxlLFxuICAgICAgICAgIGlzUHJldmlldzogbmV4dFN0YXRlLmlzUHJldmlldyxcbiAgICAgICAgICBpc1F1ZXJ5VXBkYXRpbmc6IGlzUXVlcnlVcGRhdGluZyAmJiAhdGhpcy5pc0ZhbGxiYWNrLFxuICAgICAgICB9KVxuXG4gICAgICAgIGlmICgndHlwZScgaW4gcm91dGVJbmZvKSB7XG4gICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBVbmV4cGVjdGVkIG1pZGRsZXdhcmUgZWZmZWN0IG9uICR7dGhpcy5wYXRobmFtZX1gKVxuICAgICAgICB9XG5cbiAgICAgICAgaWYgKFxuICAgICAgICAgIHRoaXMucGF0aG5hbWUgPT09ICcvX2Vycm9yJyAmJlxuICAgICAgICAgIHNlbGYuX19ORVhUX0RBVEFfXy5wcm9wcz8ucGFnZVByb3BzPy5zdGF0dXNDb2RlID09PSA1MDAgJiZcbiAgICAgICAgICByb3V0ZUluZm8ucHJvcHM/LnBhZ2VQcm9wc1xuICAgICAgICApIHtcbiAgICAgICAgICAvLyBlbnN1cmUgc3RhdHVzQ29kZSBpcyBzdGlsbCBjb3JyZWN0IGZvciBzdGF0aWMgNTAwIHBhZ2VcbiAgICAgICAgICAvLyB3aGVuIHVwZGF0aW5nIHF1ZXJ5IGluZm9ybWF0aW9uXG4gICAgICAgICAgcm91dGVJbmZvLnByb3BzLnBhZ2VQcm9wcy5zdGF0dXNDb2RlID0gNTAwXG4gICAgICAgIH1cblxuICAgICAgICB0cnkge1xuICAgICAgICAgIGF3YWl0IHRoaXMuc2V0KHVwY29taW5nUm91dGVyU3RhdGUsIHJvdXRlSW5mbywgdXBjb21pbmdTY3JvbGxTdGF0ZSlcbiAgICAgICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICAgICAgaWYgKGlzRXJyb3IoZXJyKSAmJiBlcnIuY2FuY2VsbGVkKSB7XG4gICAgICAgICAgICBSb3V0ZXIuZXZlbnRzLmVtaXQoJ3JvdXRlQ2hhbmdlRXJyb3InLCBlcnIsIGNsZWFuZWRBcywgcm91dGVQcm9wcylcbiAgICAgICAgICB9XG4gICAgICAgICAgdGhyb3cgZXJyXG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gdHJ1ZVxuICAgICAgfVxuXG4gICAgICBSb3V0ZXIuZXZlbnRzLmVtaXQoJ2JlZm9yZUhpc3RvcnlDaGFuZ2UnLCBhcywgcm91dGVQcm9wcylcbiAgICAgIHRoaXMuY2hhbmdlU3RhdGUobWV0aG9kLCB1cmwsIGFzLCBvcHRpb25zKVxuXG4gICAgICAvLyBmb3IgcXVlcnkgdXBkYXRlcyB3ZSBjYW4gc2tpcCBpdCBpZiB0aGUgc3RhdGUgaXMgdW5jaGFuZ2VkIGFuZCB3ZSBkb24ndFxuICAgICAgLy8gbmVlZCB0byBzY3JvbGxcbiAgICAgIC8vIGh0dHBzOi8vZ2l0aHViLmNvbS92ZXJjZWwvbmV4dC5qcy9pc3N1ZXMvMzcxMzlcbiAgICAgIGNvbnN0IGNhblNraXBVcGRhdGluZyA9XG4gICAgICAgIGlzUXVlcnlVcGRhdGluZyAmJlxuICAgICAgICAhdXBjb21pbmdTY3JvbGxTdGF0ZSAmJlxuICAgICAgICAhcmVhZHlTdGF0ZUNoYW5nZSAmJlxuICAgICAgICAhbG9jYWxlQ2hhbmdlICYmXG4gICAgICAgIGNvbXBhcmVSb3V0ZXJTdGF0ZXModXBjb21pbmdSb3V0ZXJTdGF0ZSwgdGhpcy5zdGF0ZSlcblxuICAgICAgaWYgKCFjYW5Ta2lwVXBkYXRpbmcpIHtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICBhd2FpdCB0aGlzLnNldCh1cGNvbWluZ1JvdXRlclN0YXRlLCByb3V0ZUluZm8sIHVwY29taW5nU2Nyb2xsU3RhdGUpXG4gICAgICAgIH0gY2F0Y2ggKGU6IGFueSkge1xuICAgICAgICAgIGlmIChlLmNhbmNlbGxlZCkgcm91dGVJbmZvLmVycm9yID0gcm91dGVJbmZvLmVycm9yIHx8IGVcbiAgICAgICAgICBlbHNlIHRocm93IGVcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChyb3V0ZUluZm8uZXJyb3IpIHtcbiAgICAgICAgICBpZiAoIWlzUXVlcnlVcGRhdGluZykge1xuICAgICAgICAgICAgUm91dGVyLmV2ZW50cy5lbWl0KFxuICAgICAgICAgICAgICAncm91dGVDaGFuZ2VFcnJvcicsXG4gICAgICAgICAgICAgIHJvdXRlSW5mby5lcnJvcixcbiAgICAgICAgICAgICAgY2xlYW5lZEFzLFxuICAgICAgICAgICAgICByb3V0ZVByb3BzXG4gICAgICAgICAgICApXG4gICAgICAgICAgfVxuXG4gICAgICAgICAgdGhyb3cgcm91dGVJbmZvLmVycm9yXG4gICAgICAgIH1cblxuICAgICAgICBpZiAocHJvY2Vzcy5lbnYuX19ORVhUX0kxOE5fU1VQUE9SVCkge1xuICAgICAgICAgIGlmIChuZXh0U3RhdGUubG9jYWxlKSB7XG4gICAgICAgICAgICBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQubGFuZyA9IG5leHRTdGF0ZS5sb2NhbGVcbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoIWlzUXVlcnlVcGRhdGluZykge1xuICAgICAgICAgIFJvdXRlci5ldmVudHMuZW1pdCgncm91dGVDaGFuZ2VDb21wbGV0ZScsIGFzLCByb3V0ZVByb3BzKVxuICAgICAgICB9XG5cbiAgICAgICAgLy8gQSBoYXNoIG1hcmsgIyBpcyB0aGUgb3B0aW9uYWwgbGFzdCBwYXJ0IG9mIGEgVVJMXG4gICAgICAgIGNvbnN0IGhhc2hSZWdleCA9IC8jLiskL1xuICAgICAgICBpZiAoc2hvdWxkU2Nyb2xsICYmIGhhc2hSZWdleC50ZXN0KGFzKSkge1xuICAgICAgICAgIHRoaXMuc2Nyb2xsVG9IYXNoKGFzKVxuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIHJldHVybiB0cnVlXG4gICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICBpZiAoaXNFcnJvcihlcnIpICYmIGVyci5jYW5jZWxsZWQpIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlXG4gICAgICB9XG4gICAgICB0aHJvdyBlcnJcbiAgICB9XG4gIH1cblxuICBjaGFuZ2VTdGF0ZShcbiAgICBtZXRob2Q6IEhpc3RvcnlNZXRob2QsXG4gICAgdXJsOiBzdHJpbmcsXG4gICAgYXM6IHN0cmluZyxcbiAgICBvcHRpb25zOiBUcmFuc2l0aW9uT3B0aW9ucyA9IHt9XG4gICk6IHZvaWQge1xuICAgIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSB7XG4gICAgICBpZiAodHlwZW9mIHdpbmRvdy5oaXN0b3J5ID09PSAndW5kZWZpbmVkJykge1xuICAgICAgICBjb25zb2xlLmVycm9yKGBXYXJuaW5nOiB3aW5kb3cuaGlzdG9yeSBpcyBub3QgYXZhaWxhYmxlLmApXG4gICAgICAgIHJldHVyblxuICAgICAgfVxuXG4gICAgICBpZiAodHlwZW9mIHdpbmRvdy5oaXN0b3J5W21ldGhvZF0gPT09ICd1bmRlZmluZWQnKSB7XG4gICAgICAgIGNvbnNvbGUuZXJyb3IoYFdhcm5pbmc6IHdpbmRvdy5oaXN0b3J5LiR7bWV0aG9kfSBpcyBub3QgYXZhaWxhYmxlYClcbiAgICAgICAgcmV0dXJuXG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKG1ldGhvZCAhPT0gJ3B1c2hTdGF0ZScgfHwgZ2V0VVJMKCkgIT09IGFzKSB7XG4gICAgICB0aGlzLl9zaGFsbG93ID0gb3B0aW9ucy5zaGFsbG93XG4gICAgICB3aW5kb3cuaGlzdG9yeVttZXRob2RdKFxuICAgICAgICB7XG4gICAgICAgICAgdXJsLFxuICAgICAgICAgIGFzLFxuICAgICAgICAgIG9wdGlvbnMsXG4gICAgICAgICAgX19OOiB0cnVlLFxuICAgICAgICAgIGtleTogKHRoaXMuX2tleSA9IG1ldGhvZCAhPT0gJ3B1c2hTdGF0ZScgPyB0aGlzLl9rZXkgOiBjcmVhdGVLZXkoKSksXG4gICAgICAgIH0gYXMgSGlzdG9yeVN0YXRlLFxuICAgICAgICAvLyBNb3N0IGJyb3dzZXJzIGN1cnJlbnRseSBpZ25vcmVzIHRoaXMgcGFyYW1ldGVyLCBhbHRob3VnaCB0aGV5IG1heSB1c2UgaXQgaW4gdGhlIGZ1dHVyZS5cbiAgICAgICAgLy8gUGFzc2luZyB0aGUgZW1wdHkgc3RyaW5nIGhlcmUgc2hvdWxkIGJlIHNhZmUgYWdhaW5zdCBmdXR1cmUgY2hhbmdlcyB0byB0aGUgbWV0aG9kLlxuICAgICAgICAvLyBodHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9kb2NzL1dlYi9BUEkvSGlzdG9yeS9yZXBsYWNlU3RhdGVcbiAgICAgICAgJycsXG4gICAgICAgIGFzXG4gICAgICApXG4gICAgfVxuICB9XG5cbiAgYXN5bmMgaGFuZGxlUm91dGVJbmZvRXJyb3IoXG4gICAgZXJyOiBFcnJvciAmIHsgY29kZT86IGFueTsgY2FuY2VsbGVkPzogYm9vbGVhbiB9LFxuICAgIHBhdGhuYW1lOiBzdHJpbmcsXG4gICAgcXVlcnk6IFBhcnNlZFVybFF1ZXJ5LFxuICAgIGFzOiBzdHJpbmcsXG4gICAgcm91dGVQcm9wczogUm91dGVQcm9wZXJ0aWVzLFxuICAgIGxvYWRFcnJvckZhaWw/OiBib29sZWFuXG4gICk6IFByb21pc2U8Q29tcGxldGVQcml2YXRlUm91dGVJbmZvPiB7XG4gICAgaWYgKGVyci5jYW5jZWxsZWQpIHtcbiAgICAgIC8vIGJ1YmJsZSB1cCBjYW5jZWxsYXRpb24gZXJyb3JzXG4gICAgICB0aHJvdyBlcnJcbiAgICB9XG5cbiAgICBpZiAoaXNBc3NldEVycm9yKGVycikgfHwgbG9hZEVycm9yRmFpbCkge1xuICAgICAgUm91dGVyLmV2ZW50cy5lbWl0KCdyb3V0ZUNoYW5nZUVycm9yJywgZXJyLCBhcywgcm91dGVQcm9wcylcblxuICAgICAgLy8gSWYgd2UgY2FuJ3QgbG9hZCB0aGUgcGFnZSBpdCBjb3VsZCBiZSBvbmUgb2YgZm9sbG93aW5nIHJlYXNvbnNcbiAgICAgIC8vICAxLiBQYWdlIGRvZXNuJ3QgZXhpc3RzXG4gICAgICAvLyAgMi4gUGFnZSBkb2VzIGV4aXN0IGluIGEgZGlmZmVyZW50IHpvbmVcbiAgICAgIC8vICAzLiBJbnRlcm5hbCBlcnJvciB3aGlsZSBsb2FkaW5nIHRoZSBwYWdlXG5cbiAgICAgIC8vIFNvLCBkb2luZyBhIGhhcmQgcmVsb2FkIGlzIHRoZSBwcm9wZXIgd2F5IHRvIGRlYWwgd2l0aCB0aGlzLlxuICAgICAgaGFuZGxlSGFyZE5hdmlnYXRpb24oe1xuICAgICAgICB1cmw6IGFzLFxuICAgICAgICByb3V0ZXI6IHRoaXMsXG4gICAgICB9KVxuXG4gICAgICAvLyBDaGFuZ2luZyB0aGUgVVJMIGRvZXNuJ3QgYmxvY2sgZXhlY3V0aW5nIHRoZSBjdXJyZW50IGNvZGUgcGF0aC5cbiAgICAgIC8vIFNvIGxldCdzIHRocm93IGEgY2FuY2VsbGF0aW9uIGVycm9yIHN0b3AgdGhlIHJvdXRpbmcgbG9naWMuXG4gICAgICB0aHJvdyBidWlsZENhbmNlbGxhdGlvbkVycm9yKClcbiAgICB9XG5cbiAgICBjb25zb2xlLmVycm9yKGVycilcblxuICAgIHRyeSB7XG4gICAgICBsZXQgcHJvcHM6IFJlY29yZDxzdHJpbmcsIGFueT4gfCB1bmRlZmluZWRcbiAgICAgIGNvbnN0IHsgcGFnZTogQ29tcG9uZW50LCBzdHlsZVNoZWV0cyB9ID1cbiAgICAgICAgYXdhaXQgdGhpcy5mZXRjaENvbXBvbmVudCgnL19lcnJvcicpXG5cbiAgICAgIGNvbnN0IHJvdXRlSW5mbzogQ29tcGxldGVQcml2YXRlUm91dGVJbmZvID0ge1xuICAgICAgICBwcm9wcyxcbiAgICAgICAgQ29tcG9uZW50LFxuICAgICAgICBzdHlsZVNoZWV0cyxcbiAgICAgICAgZXJyLFxuICAgICAgICBlcnJvcjogZXJyLFxuICAgICAgfVxuXG4gICAgICBpZiAoIXJvdXRlSW5mby5wcm9wcykge1xuICAgICAgICB0cnkge1xuICAgICAgICAgIHJvdXRlSW5mby5wcm9wcyA9IGF3YWl0IHRoaXMuZ2V0SW5pdGlhbFByb3BzKENvbXBvbmVudCwge1xuICAgICAgICAgICAgZXJyLFxuICAgICAgICAgICAgcGF0aG5hbWUsXG4gICAgICAgICAgICBxdWVyeSxcbiAgICAgICAgICB9IGFzIGFueSlcbiAgICAgICAgfSBjYXRjaCAoZ2lwRXJyKSB7XG4gICAgICAgICAgY29uc29sZS5lcnJvcignRXJyb3IgaW4gZXJyb3IgcGFnZSBgZ2V0SW5pdGlhbFByb3BzYDogJywgZ2lwRXJyKVxuICAgICAgICAgIHJvdXRlSW5mby5wcm9wcyA9IHt9XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgcmV0dXJuIHJvdXRlSW5mb1xuICAgIH0gY2F0Y2ggKHJvdXRlSW5mb0Vycikge1xuICAgICAgcmV0dXJuIHRoaXMuaGFuZGxlUm91dGVJbmZvRXJyb3IoXG4gICAgICAgIGlzRXJyb3Iocm91dGVJbmZvRXJyKSA/IHJvdXRlSW5mb0VyciA6IG5ldyBFcnJvcihyb3V0ZUluZm9FcnIgKyAnJyksXG4gICAgICAgIHBhdGhuYW1lLFxuICAgICAgICBxdWVyeSxcbiAgICAgICAgYXMsXG4gICAgICAgIHJvdXRlUHJvcHMsXG4gICAgICAgIHRydWVcbiAgICAgIClcbiAgICB9XG4gIH1cblxuICBhc3luYyBnZXRSb3V0ZUluZm8oe1xuICAgIHJvdXRlOiByZXF1ZXN0ZWRSb3V0ZSxcbiAgICBwYXRobmFtZSxcbiAgICBxdWVyeSxcbiAgICBhcyxcbiAgICByZXNvbHZlZEFzLFxuICAgIHJvdXRlUHJvcHMsXG4gICAgbG9jYWxlLFxuICAgIGhhc01pZGRsZXdhcmUsXG4gICAgaXNQcmV2aWV3LFxuICAgIHVuc3RhYmxlX3NraXBDbGllbnRDYWNoZSxcbiAgICBpc1F1ZXJ5VXBkYXRpbmcsXG4gICAgaXNNaWRkbGV3YXJlUmV3cml0ZSxcbiAgICBpc05vdEZvdW5kLFxuICB9OiB7XG4gICAgcm91dGU6IHN0cmluZ1xuICAgIHBhdGhuYW1lOiBzdHJpbmdcbiAgICBxdWVyeTogUGFyc2VkVXJsUXVlcnlcbiAgICBhczogc3RyaW5nXG4gICAgcmVzb2x2ZWRBczogc3RyaW5nXG4gICAgaGFzTWlkZGxld2FyZT86IGJvb2xlYW5cbiAgICByb3V0ZVByb3BzOiBSb3V0ZVByb3BlcnRpZXNcbiAgICBsb2NhbGU6IHN0cmluZyB8IHVuZGVmaW5lZFxuICAgIGlzUHJldmlldzogYm9vbGVhblxuICAgIHVuc3RhYmxlX3NraXBDbGllbnRDYWNoZT86IGJvb2xlYW5cbiAgICBpc1F1ZXJ5VXBkYXRpbmc/OiBib29sZWFuXG4gICAgaXNNaWRkbGV3YXJlUmV3cml0ZT86IGJvb2xlYW5cbiAgICBpc05vdEZvdW5kPzogYm9vbGVhblxuICB9KSB7XG4gICAgLyoqXG4gICAgICogVGhpcyBgcm91dGVgIGJpbmRpbmcgY2FuIGNoYW5nZSBpZiB0aGVyZSdzIGEgcmV3cml0ZVxuICAgICAqIHNvIHdlIGtlZXAgYSByZWZlcmVuY2UgdG8gdGhlIG9yaWdpbmFsIHJlcXVlc3RlZCByb3V0ZVxuICAgICAqIHNvIHdlIGNhbiBzdG9yZSB0aGUgY2FjaGUgZm9yIGl0IGFuZCBhdm9pZCByZS1yZXF1ZXN0aW5nIGV2ZXJ5IHRpbWVcbiAgICAgKiBmb3Igc2hhbGxvdyByb3V0aW5nIHB1cnBvc2VzLlxuICAgICAqL1xuICAgIGxldCByb3V0ZSA9IHJlcXVlc3RlZFJvdXRlXG5cbiAgICB0cnkge1xuICAgICAgbGV0IGV4aXN0aW5nSW5mbzogUHJpdmF0ZVJvdXRlSW5mbyB8IHVuZGVmaW5lZCA9IHRoaXMuY29tcG9uZW50c1tyb3V0ZV1cbiAgICAgIGlmIChyb3V0ZVByb3BzLnNoYWxsb3cgJiYgZXhpc3RpbmdJbmZvICYmIHRoaXMucm91dGUgPT09IHJvdXRlKSB7XG4gICAgICAgIHJldHVybiBleGlzdGluZ0luZm9cbiAgICAgIH1cblxuICAgICAgY29uc3QgaGFuZGxlQ2FuY2VsbGVkID0gZ2V0Q2FuY2VsbGVkSGFuZGxlcih7IHJvdXRlLCByb3V0ZXI6IHRoaXMgfSlcblxuICAgICAgaWYgKGhhc01pZGRsZXdhcmUpIHtcbiAgICAgICAgZXhpc3RpbmdJbmZvID0gdW5kZWZpbmVkXG4gICAgICB9XG5cbiAgICAgIGxldCBjYWNoZWRSb3V0ZUluZm8gPVxuICAgICAgICBleGlzdGluZ0luZm8gJiZcbiAgICAgICAgISgnaW5pdGlhbCcgaW4gZXhpc3RpbmdJbmZvKSAmJlxuICAgICAgICBwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ2RldmVsb3BtZW50J1xuICAgICAgICAgID8gZXhpc3RpbmdJbmZvXG4gICAgICAgICAgOiB1bmRlZmluZWRcblxuICAgICAgY29uc3QgaXNCYWNrZ3JvdW5kID0gaXNRdWVyeVVwZGF0aW5nXG4gICAgICBjb25zdCBmZXRjaE5leHREYXRhUGFyYW1zOiBGZXRjaE5leHREYXRhUGFyYW1zID0ge1xuICAgICAgICBkYXRhSHJlZjogdGhpcy5wYWdlTG9hZGVyLmdldERhdGFIcmVmKHtcbiAgICAgICAgICBocmVmOiBmb3JtYXRXaXRoVmFsaWRhdGlvbih7IHBhdGhuYW1lLCBxdWVyeSB9KSxcbiAgICAgICAgICBza2lwSW50ZXJwb2xhdGlvbjogdHJ1ZSxcbiAgICAgICAgICBhc1BhdGg6IGlzTm90Rm91bmQgPyAnLzQwNCcgOiByZXNvbHZlZEFzLFxuICAgICAgICAgIGxvY2FsZSxcbiAgICAgICAgfSksXG4gICAgICAgIGhhc01pZGRsZXdhcmU6IHRydWUsXG4gICAgICAgIGlzU2VydmVyUmVuZGVyOiB0aGlzLmlzU3NyLFxuICAgICAgICBwYXJzZUpTT046IHRydWUsXG4gICAgICAgIGluZmxpZ2h0Q2FjaGU6IGlzQmFja2dyb3VuZCA/IHRoaXMuc2JjIDogdGhpcy5zZGMsXG4gICAgICAgIHBlcnNpc3RDYWNoZTogIWlzUHJldmlldyxcbiAgICAgICAgaXNQcmVmZXRjaDogZmFsc2UsXG4gICAgICAgIHVuc3RhYmxlX3NraXBDbGllbnRDYWNoZSxcbiAgICAgICAgaXNCYWNrZ3JvdW5kLFxuICAgICAgfVxuXG4gICAgICBsZXQgZGF0YTpcbiAgICAgICAgfCBXaXRoTWlkZGxld2FyZUVmZmVjdHNPdXRwdXRcbiAgICAgICAgfCAoUGljazxXaXRoTWlkZGxld2FyZUVmZmVjdHNPdXRwdXQsICdqc29uJz4gJlxuICAgICAgICAgICAgT21pdDxQYXJ0aWFsPFdpdGhNaWRkbGV3YXJlRWZmZWN0c091dHB1dD4sICdqc29uJz4pXG4gICAgICAgIHwgbnVsbCA9XG4gICAgICAgIGlzUXVlcnlVcGRhdGluZyAmJiAhaXNNaWRkbGV3YXJlUmV3cml0ZVxuICAgICAgICAgID8gbnVsbFxuICAgICAgICAgIDogYXdhaXQgd2l0aE1pZGRsZXdhcmVFZmZlY3RzKHtcbiAgICAgICAgICAgICAgZmV0Y2hEYXRhOiAoKSA9PiBmZXRjaE5leHREYXRhKGZldGNoTmV4dERhdGFQYXJhbXMpLFxuICAgICAgICAgICAgICBhc1BhdGg6IGlzTm90Rm91bmQgPyAnLzQwNCcgOiByZXNvbHZlZEFzLFxuICAgICAgICAgICAgICBsb2NhbGU6IGxvY2FsZSxcbiAgICAgICAgICAgICAgcm91dGVyOiB0aGlzLFxuICAgICAgICAgICAgfSkuY2F0Y2goKGVycikgPT4ge1xuICAgICAgICAgICAgICAvLyB3ZSBkb24ndCBoYXJkIGVycm9yIGR1cmluZyBxdWVyeSB1cGRhdGluZ1xuICAgICAgICAgICAgICAvLyBhcyBpdCdzIHVuLW5lY2Vzc2FyeSBhbmQgZG9lc24ndCBuZWVkIHRvIGJlIGZhdGFsXG4gICAgICAgICAgICAgIC8vIHVubGVzcyBpdCBpcyBhIGZhbGxiYWNrIHJvdXRlIGFuZCB0aGUgcHJvcHMgY2FuJ3RcbiAgICAgICAgICAgICAgLy8gYmUgbG9hZGVkXG4gICAgICAgICAgICAgIGlmIChpc1F1ZXJ5VXBkYXRpbmcpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gbnVsbFxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIHRocm93IGVyclxuICAgICAgICAgICAgfSlcblxuICAgICAgLy8gd2hlbiByZW5kZXJpbmcgZXJyb3Igcm91dGVzIHdlIGRvbid0IGFwcGx5IG1pZGRsZXdhcmVcbiAgICAgIC8vIGVmZmVjdHNcbiAgICAgIGlmIChkYXRhICYmIChwYXRobmFtZSA9PT0gJy9fZXJyb3InIHx8IHBhdGhuYW1lID09PSAnLzQwNCcpKSB7XG4gICAgICAgIGRhdGEuZWZmZWN0ID0gdW5kZWZpbmVkXG4gICAgICB9XG5cbiAgICAgIGlmIChpc1F1ZXJ5VXBkYXRpbmcpIHtcbiAgICAgICAgaWYgKCFkYXRhKSB7XG4gICAgICAgICAgZGF0YSA9IHsganNvbjogc2VsZi5fX05FWFRfREFUQV9fLnByb3BzIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBkYXRhLmpzb24gPSBzZWxmLl9fTkVYVF9EQVRBX18ucHJvcHNcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBoYW5kbGVDYW5jZWxsZWQoKVxuXG4gICAgICBpZiAoXG4gICAgICAgIGRhdGE/LmVmZmVjdD8udHlwZSA9PT0gJ3JlZGlyZWN0LWludGVybmFsJyB8fFxuICAgICAgICBkYXRhPy5lZmZlY3Q/LnR5cGUgPT09ICdyZWRpcmVjdC1leHRlcm5hbCdcbiAgICAgICkge1xuICAgICAgICByZXR1cm4gZGF0YS5lZmZlY3RcbiAgICAgIH1cblxuICAgICAgaWYgKGRhdGE/LmVmZmVjdD8udHlwZSA9PT0gJ3Jld3JpdGUnKSB7XG4gICAgICAgIGNvbnN0IHJlc29sdmVkUm91dGUgPSByZW1vdmVUcmFpbGluZ1NsYXNoKGRhdGEuZWZmZWN0LnJlc29sdmVkSHJlZilcbiAgICAgICAgY29uc3QgcGFnZXMgPSBhd2FpdCB0aGlzLnBhZ2VMb2FkZXIuZ2V0UGFnZUxpc3QoKVxuXG4gICAgICAgIC8vIGR1cmluZyBxdWVyeSB1cGRhdGluZyB0aGUgcGFnZSBtdXN0IG1hdGNoIGFsdGhvdWdoIGR1cmluZ1xuICAgICAgICAvLyBjbGllbnQtdHJhbnNpdGlvbiBhIHJlZGlyZWN0IHRoYXQgZG9lc24ndCBtYXRjaCBhIHBhZ2VcbiAgICAgICAgLy8gY2FuIGJlIHJldHVybmVkIGFuZCB0aGlzIHNob3VsZCB0cmlnZ2VyIGEgaGFyZCBuYXZpZ2F0aW9uXG4gICAgICAgIC8vIHdoaWNoIGlzIHZhbGlkIGZvciBpbmNyZW1lbnRhbCBtaWdyYXRpb25cbiAgICAgICAgaWYgKCFpc1F1ZXJ5VXBkYXRpbmcgfHwgcGFnZXMuaW5jbHVkZXMocmVzb2x2ZWRSb3V0ZSkpIHtcbiAgICAgICAgICByb3V0ZSA9IHJlc29sdmVkUm91dGVcbiAgICAgICAgICBwYXRobmFtZSA9IGRhdGEuZWZmZWN0LnJlc29sdmVkSHJlZlxuICAgICAgICAgIHF1ZXJ5ID0geyAuLi5xdWVyeSwgLi4uZGF0YS5lZmZlY3QucGFyc2VkQXMucXVlcnkgfVxuICAgICAgICAgIHJlc29sdmVkQXMgPSByZW1vdmVCYXNlUGF0aChcbiAgICAgICAgICAgIG5vcm1hbGl6ZUxvY2FsZVBhdGgoZGF0YS5lZmZlY3QucGFyc2VkQXMucGF0aG5hbWUsIHRoaXMubG9jYWxlcylcbiAgICAgICAgICAgICAgLnBhdGhuYW1lXG4gICAgICAgICAgKVxuXG4gICAgICAgICAgLy8gQ2hlY2sgYWdhaW4gdGhlIGNhY2hlIHdpdGggdGhlIG5ldyBkZXN0aW5hdGlvbi5cbiAgICAgICAgICBleGlzdGluZ0luZm8gPSB0aGlzLmNvbXBvbmVudHNbcm91dGVdXG4gICAgICAgICAgaWYgKFxuICAgICAgICAgICAgcm91dGVQcm9wcy5zaGFsbG93ICYmXG4gICAgICAgICAgICBleGlzdGluZ0luZm8gJiZcbiAgICAgICAgICAgIHRoaXMucm91dGUgPT09IHJvdXRlICYmXG4gICAgICAgICAgICAhaGFzTWlkZGxld2FyZVxuICAgICAgICAgICkge1xuICAgICAgICAgICAgLy8gSWYgd2UgaGF2ZSBhIG1hdGNoIHdpdGggdGhlIGN1cnJlbnQgcm91dGUgZHVlIHRvIHJld3JpdGUsXG4gICAgICAgICAgICAvLyB3ZSBjYW4gY29weSB0aGUgZXhpc3RpbmcgaW5mb3JtYXRpb24gdG8gdGhlIHJld3JpdHRlbiBvbmUuXG4gICAgICAgICAgICAvLyBUaGVuLCB3ZSByZXR1cm4gdGhlIGluZm9ybWF0aW9uIGFsb25nIHdpdGggdGhlIG1hdGNoZWQgcm91dGUuXG4gICAgICAgICAgICByZXR1cm4geyAuLi5leGlzdGluZ0luZm8sIHJvdXRlIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgaWYgKGlzQVBJUm91dGUocm91dGUpKSB7XG4gICAgICAgIGhhbmRsZUhhcmROYXZpZ2F0aW9uKHsgdXJsOiBhcywgcm91dGVyOiB0aGlzIH0pXG4gICAgICAgIHJldHVybiBuZXcgUHJvbWlzZTxuZXZlcj4oKCkgPT4ge30pXG4gICAgICB9XG5cbiAgICAgIGNvbnN0IHJvdXRlSW5mbyA9XG4gICAgICAgIGNhY2hlZFJvdXRlSW5mbyB8fFxuICAgICAgICAoYXdhaXQgdGhpcy5mZXRjaENvbXBvbmVudChyb3V0ZSkudGhlbjxDb21wbGV0ZVByaXZhdGVSb3V0ZUluZm8+KFxuICAgICAgICAgIChyZXMpID0+ICh7XG4gICAgICAgICAgICBDb21wb25lbnQ6IHJlcy5wYWdlLFxuICAgICAgICAgICAgc3R5bGVTaGVldHM6IHJlcy5zdHlsZVNoZWV0cyxcbiAgICAgICAgICAgIF9fTl9TU0c6IHJlcy5tb2QuX19OX1NTRyxcbiAgICAgICAgICAgIF9fTl9TU1A6IHJlcy5tb2QuX19OX1NTUCxcbiAgICAgICAgICB9KVxuICAgICAgICApKVxuXG4gICAgICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJykge1xuICAgICAgICBjb25zdCB7IGlzVmFsaWRFbGVtZW50VHlwZSB9ID1cbiAgICAgICAgICByZXF1aXJlKCduZXh0L2Rpc3QvY29tcGlsZWQvcmVhY3QtaXMnKSBhcyB0eXBlb2YgaW1wb3J0KCduZXh0L2Rpc3QvY29tcGlsZWQvcmVhY3QtaXMnKVxuICAgICAgICBpZiAoIWlzVmFsaWRFbGVtZW50VHlwZShyb3V0ZUluZm8uQ29tcG9uZW50KSkge1xuICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgICAgIGBUaGUgZGVmYXVsdCBleHBvcnQgaXMgbm90IGEgUmVhY3QgQ29tcG9uZW50IGluIHBhZ2U6IFwiJHtwYXRobmFtZX1cImBcbiAgICAgICAgICApXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIGNvbnN0IHdhc0JhaWxlZFByZWZldGNoID0gZGF0YT8ucmVzcG9uc2U/LmhlYWRlcnMuZ2V0KCd4LW1pZGRsZXdhcmUtc2tpcCcpXG5cbiAgICAgIGNvbnN0IHNob3VsZEZldGNoRGF0YSA9IHJvdXRlSW5mby5fX05fU1NHIHx8IHJvdXRlSW5mby5fX05fU1NQXG5cbiAgICAgIC8vIEZvciBub24tU1NHIHByZWZldGNoZXMgdGhhdCBiYWlsZWQgYmVmb3JlIHNlbmRpbmcgZGF0YVxuICAgICAgLy8gd2UgY2xlYXIgdGhlIGNhY2hlIHRvIGZldGNoIGZ1bGwgcmVzcG9uc2VcbiAgICAgIGlmICh3YXNCYWlsZWRQcmVmZXRjaCAmJiBkYXRhPy5kYXRhSHJlZikge1xuICAgICAgICBkZWxldGUgdGhpcy5zZGNbZGF0YS5kYXRhSHJlZl1cbiAgICAgIH1cblxuICAgICAgY29uc3QgeyBwcm9wcywgY2FjaGVLZXkgfSA9IGF3YWl0IHRoaXMuX2dldERhdGEoYXN5bmMgKCkgPT4ge1xuICAgICAgICBpZiAoc2hvdWxkRmV0Y2hEYXRhKSB7XG4gICAgICAgICAgaWYgKGRhdGE/Lmpzb24gJiYgIXdhc0JhaWxlZFByZWZldGNoKSB7XG4gICAgICAgICAgICByZXR1cm4geyBjYWNoZUtleTogZGF0YS5jYWNoZUtleSwgcHJvcHM6IGRhdGEuanNvbiB9XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgY29uc3QgZGF0YUhyZWYgPSBkYXRhPy5kYXRhSHJlZlxuICAgICAgICAgICAgPyBkYXRhLmRhdGFIcmVmXG4gICAgICAgICAgICA6IHRoaXMucGFnZUxvYWRlci5nZXREYXRhSHJlZih7XG4gICAgICAgICAgICAgICAgaHJlZjogZm9ybWF0V2l0aFZhbGlkYXRpb24oeyBwYXRobmFtZSwgcXVlcnkgfSksXG4gICAgICAgICAgICAgICAgYXNQYXRoOiByZXNvbHZlZEFzLFxuICAgICAgICAgICAgICAgIGxvY2FsZSxcbiAgICAgICAgICAgICAgfSlcblxuICAgICAgICAgIGNvbnN0IGZldGNoZWQgPSBhd2FpdCBmZXRjaE5leHREYXRhKHtcbiAgICAgICAgICAgIGRhdGFIcmVmLFxuICAgICAgICAgICAgaXNTZXJ2ZXJSZW5kZXI6IHRoaXMuaXNTc3IsXG4gICAgICAgICAgICBwYXJzZUpTT046IHRydWUsXG4gICAgICAgICAgICBpbmZsaWdodENhY2hlOiB3YXNCYWlsZWRQcmVmZXRjaCA/IHt9IDogdGhpcy5zZGMsXG4gICAgICAgICAgICBwZXJzaXN0Q2FjaGU6ICFpc1ByZXZpZXcsXG4gICAgICAgICAgICBpc1ByZWZldGNoOiBmYWxzZSxcbiAgICAgICAgICAgIHVuc3RhYmxlX3NraXBDbGllbnRDYWNoZSxcbiAgICAgICAgICB9KVxuXG4gICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIGNhY2hlS2V5OiBmZXRjaGVkLmNhY2hlS2V5LFxuICAgICAgICAgICAgcHJvcHM6IGZldGNoZWQuanNvbiB8fCB7fSxcbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIGhlYWRlcnM6IHt9LFxuICAgICAgICAgIHByb3BzOiBhd2FpdCB0aGlzLmdldEluaXRpYWxQcm9wcyhcbiAgICAgICAgICAgIHJvdXRlSW5mby5Db21wb25lbnQsXG4gICAgICAgICAgICAvLyB3ZSBwcm92aWRlIEFwcFRyZWUgbGF0ZXIgc28gdGhpcyBuZWVkcyB0byBiZSBgYW55YFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICBwYXRobmFtZSxcbiAgICAgICAgICAgICAgcXVlcnksXG4gICAgICAgICAgICAgIGFzUGF0aDogYXMsXG4gICAgICAgICAgICAgIGxvY2FsZSxcbiAgICAgICAgICAgICAgbG9jYWxlczogdGhpcy5sb2NhbGVzLFxuICAgICAgICAgICAgICBkZWZhdWx0TG9jYWxlOiB0aGlzLmRlZmF1bHRMb2NhbGUsXG4gICAgICAgICAgICB9IGFzIGFueVxuICAgICAgICAgICksXG4gICAgICAgIH1cbiAgICAgIH0pXG5cbiAgICAgIC8vIE9ubHkgYnVzdCB0aGUgZGF0YSBjYWNoZSBmb3IgU1NQIHJvdXRlcyBhbHRob3VnaFxuICAgICAgLy8gbWlkZGxld2FyZSBjYW4gc2tpcCBjYWNoZSBwZXIgcmVxdWVzdCB3aXRoXG4gICAgICAvLyB4LW1pZGRsZXdhcmUtY2FjaGU6IG5vLWNhY2hlIGFzIHdlbGxcbiAgICAgIGlmIChyb3V0ZUluZm8uX19OX1NTUCAmJiBmZXRjaE5leHREYXRhUGFyYW1zLmRhdGFIcmVmICYmIGNhY2hlS2V5KSB7XG4gICAgICAgIGRlbGV0ZSB0aGlzLnNkY1tjYWNoZUtleV1cbiAgICAgIH1cblxuICAgICAgLy8gd2Uga2ljayBvZmYgYSBIRUFEIHJlcXVlc3QgaW4gdGhlIGJhY2tncm91bmRcbiAgICAgIC8vIHdoZW4gYSBub24tcHJlZmV0Y2ggcmVxdWVzdCBpcyBtYWRlIHRvIHNpZ25hbCByZXZhbGlkYXRpb25cbiAgICAgIGlmIChcbiAgICAgICAgIXRoaXMuaXNQcmV2aWV3ICYmXG4gICAgICAgIHJvdXRlSW5mby5fX05fU1NHICYmXG4gICAgICAgIHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAnZGV2ZWxvcG1lbnQnICYmXG4gICAgICAgICFpc1F1ZXJ5VXBkYXRpbmdcbiAgICAgICkge1xuICAgICAgICBmZXRjaE5leHREYXRhKFxuICAgICAgICAgIE9iamVjdC5hc3NpZ24oe30sIGZldGNoTmV4dERhdGFQYXJhbXMsIHtcbiAgICAgICAgICAgIGlzQmFja2dyb3VuZDogdHJ1ZSxcbiAgICAgICAgICAgIHBlcnNpc3RDYWNoZTogZmFsc2UsXG4gICAgICAgICAgICBpbmZsaWdodENhY2hlOiB0aGlzLnNiYyxcbiAgICAgICAgICB9KVxuICAgICAgICApLmNhdGNoKCgpID0+IHt9KVxuICAgICAgfVxuXG4gICAgICBwcm9wcy5wYWdlUHJvcHMgPSBPYmplY3QuYXNzaWduKHt9LCBwcm9wcy5wYWdlUHJvcHMpXG4gICAgICByb3V0ZUluZm8ucHJvcHMgPSBwcm9wc1xuICAgICAgcm91dGVJbmZvLnJvdXRlID0gcm91dGVcbiAgICAgIHJvdXRlSW5mby5xdWVyeSA9IHF1ZXJ5XG4gICAgICByb3V0ZUluZm8ucmVzb2x2ZWRBcyA9IHJlc29sdmVkQXNcbiAgICAgIHRoaXMuY29tcG9uZW50c1tyb3V0ZV0gPSByb3V0ZUluZm9cblxuICAgICAgcmV0dXJuIHJvdXRlSW5mb1xuICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgcmV0dXJuIHRoaXMuaGFuZGxlUm91dGVJbmZvRXJyb3IoXG4gICAgICAgIGdldFByb3BlckVycm9yKGVyciksXG4gICAgICAgIHBhdGhuYW1lLFxuICAgICAgICBxdWVyeSxcbiAgICAgICAgYXMsXG4gICAgICAgIHJvdXRlUHJvcHNcbiAgICAgIClcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHNldChcbiAgICBzdGF0ZTogdHlwZW9mIHRoaXMuc3RhdGUsXG4gICAgZGF0YTogUHJpdmF0ZVJvdXRlSW5mbyxcbiAgICByZXNldFNjcm9sbDogeyB4OiBudW1iZXI7IHk6IG51bWJlciB9IHwgbnVsbFxuICApOiBQcm9taXNlPHZvaWQ+IHtcbiAgICB0aGlzLnN0YXRlID0gc3RhdGVcblxuICAgIHJldHVybiB0aGlzLnN1YihcbiAgICAgIGRhdGEsXG4gICAgICB0aGlzLmNvbXBvbmVudHNbJy9fYXBwJ10uQ29tcG9uZW50IGFzIEFwcENvbXBvbmVudCxcbiAgICAgIHJlc2V0U2Nyb2xsXG4gICAgKVxuICB9XG5cbiAgLyoqXG4gICAqIENhbGxiYWNrIHRvIGV4ZWN1dGUgYmVmb3JlIHJlcGxhY2luZyByb3V0ZXIgc3RhdGVcbiAgICogQHBhcmFtIGNiIGNhbGxiYWNrIHRvIGJlIGV4ZWN1dGVkXG4gICAqL1xuICBiZWZvcmVQb3BTdGF0ZShjYjogQmVmb3JlUG9wU3RhdGVDYWxsYmFjaykge1xuICAgIHRoaXMuX2JwcyA9IGNiXG4gIH1cblxuICBvbmx5QUhhc2hDaGFuZ2UoYXM6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIGlmICghdGhpcy5hc1BhdGgpIHJldHVybiBmYWxzZVxuICAgIGNvbnN0IFtvbGRVcmxOb0hhc2gsIG9sZEhhc2hdID0gdGhpcy5hc1BhdGguc3BsaXQoJyMnLCAyKVxuICAgIGNvbnN0IFtuZXdVcmxOb0hhc2gsIG5ld0hhc2hdID0gYXMuc3BsaXQoJyMnLCAyKVxuXG4gICAgLy8gTWFrZXMgc3VyZSB3ZSBzY3JvbGwgdG8gdGhlIHByb3ZpZGVkIGhhc2ggaWYgdGhlIHVybC9oYXNoIGFyZSB0aGUgc2FtZVxuICAgIGlmIChuZXdIYXNoICYmIG9sZFVybE5vSGFzaCA9PT0gbmV3VXJsTm9IYXNoICYmIG9sZEhhc2ggPT09IG5ld0hhc2gpIHtcbiAgICAgIHJldHVybiB0cnVlXG4gICAgfVxuXG4gICAgLy8gSWYgdGhlIHVybHMgYXJlIGNoYW5nZSwgdGhlcmUncyBtb3JlIHRoYW4gYSBoYXNoIGNoYW5nZVxuICAgIGlmIChvbGRVcmxOb0hhc2ggIT09IG5ld1VybE5vSGFzaCkge1xuICAgICAgcmV0dXJuIGZhbHNlXG4gICAgfVxuXG4gICAgLy8gSWYgdGhlIGhhc2ggaGFzIGNoYW5nZWQsIHRoZW4gaXQncyBhIGhhc2ggb25seSBjaGFuZ2UuXG4gICAgLy8gVGhpcyBjaGVjayBpcyBuZWNlc3NhcnkgdG8gaGFuZGxlIGJvdGggdGhlIGVudGVyIGFuZFxuICAgIC8vIGxlYXZlIGhhc2ggPT09ICcnIGNhc2VzLiBUaGUgaWRlbnRpdHkgY2FzZSBmYWxscyB0aHJvdWdoXG4gICAgLy8gYW5kIGlzIHRyZWF0ZWQgYXMgYSBuZXh0IHJlbG9hZC5cbiAgICByZXR1cm4gb2xkSGFzaCAhPT0gbmV3SGFzaFxuICB9XG5cbiAgc2Nyb2xsVG9IYXNoKGFzOiBzdHJpbmcpOiB2b2lkIHtcbiAgICBjb25zdCBbLCBoYXNoID0gJyddID0gYXMuc3BsaXQoJyMnLCAyKVxuXG4gICAgZGlzYWJsZVNtb290aFNjcm9sbER1cmluZ1JvdXRlVHJhbnNpdGlvbihcbiAgICAgICgpID0+IHtcbiAgICAgICAgLy8gU2Nyb2xsIHRvIHRvcCBpZiB0aGUgaGFzaCBpcyBqdXN0IGAjYCB3aXRoIG5vIHZhbHVlIG9yIGAjdG9wYFxuICAgICAgICAvLyBUbyBtaXJyb3IgYnJvd3NlcnNcbiAgICAgICAgaWYgKGhhc2ggPT09ICcnIHx8IGhhc2ggPT09ICd0b3AnKSB7XG4gICAgICAgICAgd2luZG93LnNjcm9sbFRvKDAsIDApXG4gICAgICAgICAgcmV0dXJuXG4gICAgICAgIH1cblxuICAgICAgICAvLyBEZWNvZGUgaGFzaCB0byBtYWtlIG5vbi1sYXRpbiBhbmNob3Igd29ya3MuXG4gICAgICAgIGNvbnN0IHJhd0hhc2ggPSBkZWNvZGVVUklDb21wb25lbnQoaGFzaClcbiAgICAgICAgLy8gRmlyc3Qgd2UgY2hlY2sgaWYgdGhlIGVsZW1lbnQgYnkgaWQgaXMgZm91bmRcbiAgICAgICAgY29uc3QgaWRFbCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKHJhd0hhc2gpXG4gICAgICAgIGlmIChpZEVsKSB7XG4gICAgICAgICAgaWRFbC5zY3JvbGxJbnRvVmlldygpXG4gICAgICAgICAgcmV0dXJuXG4gICAgICAgIH1cbiAgICAgICAgLy8gSWYgdGhlcmUncyBubyBlbGVtZW50IHdpdGggdGhlIGlkLCB3ZSBjaGVjayB0aGUgYG5hbWVgIHByb3BlcnR5XG4gICAgICAgIC8vIFRvIG1pcnJvciBicm93c2Vyc1xuICAgICAgICBjb25zdCBuYW1lRWwgPSBkb2N1bWVudC5nZXRFbGVtZW50c0J5TmFtZShyYXdIYXNoKVswXVxuICAgICAgICBpZiAobmFtZUVsKSB7XG4gICAgICAgICAgbmFtZUVsLnNjcm9sbEludG9WaWV3KClcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgb25seUhhc2hDaGFuZ2U6IHRoaXMub25seUFIYXNoQ2hhbmdlKGFzKSxcbiAgICAgIH1cbiAgICApXG4gIH1cblxuICB1cmxJc05ldyhhc1BhdGg6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmFzUGF0aCAhPT0gYXNQYXRoXG4gIH1cblxuICAvKipcbiAgICogUHJlZmV0Y2ggcGFnZSBjb2RlLCB5b3UgbWF5IHdhaXQgZm9yIHRoZSBkYXRhIGR1cmluZyBwYWdlIHJlbmRlcmluZy5cbiAgICogVGhpcyBmZWF0dXJlIG9ubHkgd29ya3MgaW4gcHJvZHVjdGlvbiFcbiAgICogQHBhcmFtIHVybCB0aGUgaHJlZiBvZiBwcmVmZXRjaGVkIHBhZ2VcbiAgICogQHBhcmFtIGFzUGF0aCB0aGUgYXMgcGF0aCBvZiB0aGUgcHJlZmV0Y2hlZCBwYWdlXG4gICAqL1xuICBhc3luYyBwcmVmZXRjaChcbiAgICB1cmw6IHN0cmluZyxcbiAgICBhc1BhdGg6IHN0cmluZyA9IHVybCxcbiAgICBvcHRpb25zOiBQcmVmZXRjaE9wdGlvbnMgPSB7fVxuICApOiBQcm9taXNlPHZvaWQ+IHtcbiAgICAvLyBQcmVmZXRjaCBpcyBub3Qgc3VwcG9ydGVkIGluIGRldmVsb3BtZW50IG1vZGUgYmVjYXVzZSBpdCB3b3VsZCB0cmlnZ2VyIG9uLWRlbWFuZC1lbnRyaWVzXG4gICAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpIHtcbiAgICAgIHJldHVyblxuICAgIH1cblxuICAgIGlmICh0eXBlb2Ygd2luZG93ICE9PSAndW5kZWZpbmVkJyAmJiBpc0JvdCh3aW5kb3cubmF2aWdhdG9yLnVzZXJBZ2VudCkpIHtcbiAgICAgIC8vIE5vIHByZWZldGNoZXMgZm9yIGJvdHMgdGhhdCByZW5kZXIgdGhlIGxpbmsgc2luY2UgdGhleSBhcmUgdHlwaWNhbGx5IG5hdmlnYXRpbmdcbiAgICAgIC8vIGxpbmtzIHZpYSB0aGUgZXF1aXZhbGVudCBvZiBhIGhhcmQgbmF2aWdhdGlvbiBhbmQgaGVuY2UgbmV2ZXIgdXRpbGl6ZSB0aGVzZVxuICAgICAgLy8gcHJlZmV0Y2hlcy5cbiAgICAgIHJldHVyblxuICAgIH1cbiAgICBsZXQgcGFyc2VkID0gcGFyc2VSZWxhdGl2ZVVybCh1cmwpXG4gICAgY29uc3QgdXJsUGF0aG5hbWUgPSBwYXJzZWQucGF0aG5hbWVcblxuICAgIGxldCB7IHBhdGhuYW1lLCBxdWVyeSB9ID0gcGFyc2VkXG4gICAgY29uc3Qgb3JpZ2luYWxQYXRobmFtZSA9IHBhdGhuYW1lXG5cbiAgICBpZiAocHJvY2Vzcy5lbnYuX19ORVhUX0kxOE5fU1VQUE9SVCkge1xuICAgICAgaWYgKG9wdGlvbnMubG9jYWxlID09PSBmYWxzZSkge1xuICAgICAgICBwYXRobmFtZSA9IG5vcm1hbGl6ZUxvY2FsZVBhdGghKHBhdGhuYW1lLCB0aGlzLmxvY2FsZXMpLnBhdGhuYW1lXG4gICAgICAgIHBhcnNlZC5wYXRobmFtZSA9IHBhdGhuYW1lXG4gICAgICAgIHVybCA9IGZvcm1hdFdpdGhWYWxpZGF0aW9uKHBhcnNlZClcblxuICAgICAgICBsZXQgcGFyc2VkQXMgPSBwYXJzZVJlbGF0aXZlVXJsKGFzUGF0aClcbiAgICAgICAgY29uc3QgbG9jYWxlUGF0aFJlc3VsdCA9IG5vcm1hbGl6ZUxvY2FsZVBhdGghKFxuICAgICAgICAgIHBhcnNlZEFzLnBhdGhuYW1lLFxuICAgICAgICAgIHRoaXMubG9jYWxlc1xuICAgICAgICApXG4gICAgICAgIHBhcnNlZEFzLnBhdGhuYW1lID0gbG9jYWxlUGF0aFJlc3VsdC5wYXRobmFtZVxuICAgICAgICBvcHRpb25zLmxvY2FsZSA9IGxvY2FsZVBhdGhSZXN1bHQuZGV0ZWN0ZWRMb2NhbGUgfHwgdGhpcy5kZWZhdWx0TG9jYWxlXG4gICAgICAgIGFzUGF0aCA9IGZvcm1hdFdpdGhWYWxpZGF0aW9uKHBhcnNlZEFzKVxuICAgICAgfVxuICAgIH1cblxuICAgIGNvbnN0IHBhZ2VzID0gYXdhaXQgdGhpcy5wYWdlTG9hZGVyLmdldFBhZ2VMaXN0KClcbiAgICBsZXQgcmVzb2x2ZWRBcyA9IGFzUGF0aFxuXG4gICAgY29uc3QgbG9jYWxlID1cbiAgICAgIHR5cGVvZiBvcHRpb25zLmxvY2FsZSAhPT0gJ3VuZGVmaW5lZCdcbiAgICAgICAgPyBvcHRpb25zLmxvY2FsZSB8fCB1bmRlZmluZWRcbiAgICAgICAgOiB0aGlzLmxvY2FsZVxuXG4gICAgY29uc3QgaXNNaWRkbGV3YXJlTWF0Y2ggPSBhd2FpdCBtYXRjaGVzTWlkZGxld2FyZSh7XG4gICAgICBhc1BhdGg6IGFzUGF0aCxcbiAgICAgIGxvY2FsZTogbG9jYWxlLFxuICAgICAgcm91dGVyOiB0aGlzLFxuICAgIH0pXG5cbiAgICBpZiAocHJvY2Vzcy5lbnYuX19ORVhUX0hBU19SRVdSSVRFUyAmJiBhc1BhdGguc3RhcnRzV2l0aCgnLycpKSB7XG4gICAgICBsZXQgcmV3cml0ZXM6IGFueVxuICAgICAgOyh7IF9fcmV3cml0ZXM6IHJld3JpdGVzIH0gPSBhd2FpdCBnZXRDbGllbnRCdWlsZE1hbmlmZXN0KCkpXG5cbiAgICAgIGNvbnN0IHJld3JpdGVzUmVzdWx0ID0gcmVzb2x2ZVJld3JpdGVzKFxuICAgICAgICBhZGRCYXNlUGF0aChhZGRMb2NhbGUoYXNQYXRoLCB0aGlzLmxvY2FsZSksIHRydWUpLFxuICAgICAgICBwYWdlcyxcbiAgICAgICAgcmV3cml0ZXMsXG4gICAgICAgIHBhcnNlZC5xdWVyeSxcbiAgICAgICAgKHA6IHN0cmluZykgPT4gcmVzb2x2ZUR5bmFtaWNSb3V0ZShwLCBwYWdlcyksXG4gICAgICAgIHRoaXMubG9jYWxlc1xuICAgICAgKVxuXG4gICAgICBpZiAocmV3cml0ZXNSZXN1bHQuZXh0ZXJuYWxEZXN0KSB7XG4gICAgICAgIHJldHVyblxuICAgICAgfVxuXG4gICAgICBpZiAoIWlzTWlkZGxld2FyZU1hdGNoKSB7XG4gICAgICAgIHJlc29sdmVkQXMgPSByZW1vdmVMb2NhbGUoXG4gICAgICAgICAgcmVtb3ZlQmFzZVBhdGgocmV3cml0ZXNSZXN1bHQuYXNQYXRoKSxcbiAgICAgICAgICB0aGlzLmxvY2FsZVxuICAgICAgICApXG4gICAgICB9XG5cbiAgICAgIGlmIChyZXdyaXRlc1Jlc3VsdC5tYXRjaGVkUGFnZSAmJiByZXdyaXRlc1Jlc3VsdC5yZXNvbHZlZEhyZWYpIHtcbiAgICAgICAgLy8gaWYgdGhpcyBkaXJlY3RseSBtYXRjaGVzIGEgcGFnZSB3ZSBuZWVkIHRvIHVwZGF0ZSB0aGUgaHJlZiB0b1xuICAgICAgICAvLyBhbGxvdyB0aGUgY29ycmVjdCBwYWdlIGNodW5rIHRvIGJlIGxvYWRlZFxuICAgICAgICBwYXRobmFtZSA9IHJld3JpdGVzUmVzdWx0LnJlc29sdmVkSHJlZlxuICAgICAgICBwYXJzZWQucGF0aG5hbWUgPSBwYXRobmFtZVxuXG4gICAgICAgIGlmICghaXNNaWRkbGV3YXJlTWF0Y2gpIHtcbiAgICAgICAgICB1cmwgPSBmb3JtYXRXaXRoVmFsaWRhdGlvbihwYXJzZWQpXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gICAgcGFyc2VkLnBhdGhuYW1lID0gcmVzb2x2ZUR5bmFtaWNSb3V0ZShwYXJzZWQucGF0aG5hbWUsIHBhZ2VzKVxuXG4gICAgaWYgKGlzRHluYW1pY1JvdXRlKHBhcnNlZC5wYXRobmFtZSkpIHtcbiAgICAgIHBhdGhuYW1lID0gcGFyc2VkLnBhdGhuYW1lXG4gICAgICBwYXJzZWQucGF0aG5hbWUgPSBwYXRobmFtZVxuICAgICAgT2JqZWN0LmFzc2lnbihcbiAgICAgICAgcXVlcnksXG4gICAgICAgIGdldFJvdXRlTWF0Y2hlcihnZXRSb3V0ZVJlZ2V4KHBhcnNlZC5wYXRobmFtZSkpKFxuICAgICAgICAgIHBhcnNlUGF0aChhc1BhdGgpLnBhdGhuYW1lXG4gICAgICAgICkgfHwge31cbiAgICAgIClcblxuICAgICAgaWYgKCFpc01pZGRsZXdhcmVNYXRjaCkge1xuICAgICAgICB1cmwgPSBmb3JtYXRXaXRoVmFsaWRhdGlvbihwYXJzZWQpXG4gICAgICB9XG4gICAgfVxuXG4gICAgY29uc3QgZGF0YSA9XG4gICAgICBwcm9jZXNzLmVudi5fX05FWFRfTUlERExFV0FSRV9QUkVGRVRDSCA9PT0gJ3N0cmljdCdcbiAgICAgICAgPyBudWxsXG4gICAgICAgIDogYXdhaXQgd2l0aE1pZGRsZXdhcmVFZmZlY3RzKHtcbiAgICAgICAgICAgIGZldGNoRGF0YTogKCkgPT5cbiAgICAgICAgICAgICAgZmV0Y2hOZXh0RGF0YSh7XG4gICAgICAgICAgICAgICAgZGF0YUhyZWY6IHRoaXMucGFnZUxvYWRlci5nZXREYXRhSHJlZih7XG4gICAgICAgICAgICAgICAgICBocmVmOiBmb3JtYXRXaXRoVmFsaWRhdGlvbih7XG4gICAgICAgICAgICAgICAgICAgIHBhdGhuYW1lOiBvcmlnaW5hbFBhdGhuYW1lLFxuICAgICAgICAgICAgICAgICAgICBxdWVyeSxcbiAgICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgICAgc2tpcEludGVycG9sYXRpb246IHRydWUsXG4gICAgICAgICAgICAgICAgICBhc1BhdGg6IHJlc29sdmVkQXMsXG4gICAgICAgICAgICAgICAgICBsb2NhbGUsXG4gICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgaGFzTWlkZGxld2FyZTogdHJ1ZSxcbiAgICAgICAgICAgICAgICBpc1NlcnZlclJlbmRlcjogZmFsc2UsXG4gICAgICAgICAgICAgICAgcGFyc2VKU09OOiB0cnVlLFxuICAgICAgICAgICAgICAgIGluZmxpZ2h0Q2FjaGU6IHRoaXMuc2RjLFxuICAgICAgICAgICAgICAgIHBlcnNpc3RDYWNoZTogIXRoaXMuaXNQcmV2aWV3LFxuICAgICAgICAgICAgICAgIGlzUHJlZmV0Y2g6IHRydWUsXG4gICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgYXNQYXRoOiBhc1BhdGgsXG4gICAgICAgICAgICBsb2NhbGU6IGxvY2FsZSxcbiAgICAgICAgICAgIHJvdXRlcjogdGhpcyxcbiAgICAgICAgICB9KVxuXG4gICAgLyoqXG4gICAgICogSWYgdGhlcmUgd2FzIGEgcmV3cml0ZSB3ZSBhcHBseSB0aGUgZWZmZWN0cyBvZiB0aGUgcmV3cml0ZSBvbiB0aGVcbiAgICAgKiBjdXJyZW50IHBhcmFtZXRlcnMgZm9yIHRoZSBwcmVmZXRjaC5cbiAgICAgKi9cbiAgICBpZiAoZGF0YT8uZWZmZWN0LnR5cGUgPT09ICdyZXdyaXRlJykge1xuICAgICAgcGFyc2VkLnBhdGhuYW1lID0gZGF0YS5lZmZlY3QucmVzb2x2ZWRIcmVmXG4gICAgICBwYXRobmFtZSA9IGRhdGEuZWZmZWN0LnJlc29sdmVkSHJlZlxuICAgICAgcXVlcnkgPSB7IC4uLnF1ZXJ5LCAuLi5kYXRhLmVmZmVjdC5wYXJzZWRBcy5xdWVyeSB9XG4gICAgICByZXNvbHZlZEFzID0gZGF0YS5lZmZlY3QucGFyc2VkQXMucGF0aG5hbWVcbiAgICAgIHVybCA9IGZvcm1hdFdpdGhWYWxpZGF0aW9uKHBhcnNlZClcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBJZiB0aGVyZSBpcyBhIHJlZGlyZWN0IHRvIGFuIGV4dGVybmFsIGRlc3RpbmF0aW9uIHRoZW4gd2UgZG9uJ3QgaGF2ZVxuICAgICAqIHRvIHByZWZldGNoIGNvbnRlbnQgYXMgaXQgd2lsbCBiZSB1bnVzZWQuXG4gICAgICovXG4gICAgaWYgKGRhdGE/LmVmZmVjdC50eXBlID09PSAncmVkaXJlY3QtZXh0ZXJuYWwnKSB7XG4gICAgICByZXR1cm5cbiAgICB9XG5cbiAgICBjb25zdCByb3V0ZSA9IHJlbW92ZVRyYWlsaW5nU2xhc2gocGF0aG5hbWUpXG5cbiAgICBpZiAoYXdhaXQgdGhpcy5fYmZsKGFzUGF0aCwgcmVzb2x2ZWRBcywgb3B0aW9ucy5sb2NhbGUsIHRydWUpKSB7XG4gICAgICB0aGlzLmNvbXBvbmVudHNbdXJsUGF0aG5hbWVdID0geyBfX2FwcFJvdXRlcjogdHJ1ZSB9IGFzIGFueVxuICAgIH1cblxuICAgIGF3YWl0IFByb21pc2UuYWxsKFtcbiAgICAgIHRoaXMucGFnZUxvYWRlci5faXNTc2cocm91dGUpLnRoZW4oKGlzU3NnKSA9PiB7XG4gICAgICAgIHJldHVybiBpc1NzZ1xuICAgICAgICAgID8gZmV0Y2hOZXh0RGF0YSh7XG4gICAgICAgICAgICAgIGRhdGFIcmVmOiBkYXRhPy5qc29uXG4gICAgICAgICAgICAgICAgPyBkYXRhPy5kYXRhSHJlZlxuICAgICAgICAgICAgICAgIDogdGhpcy5wYWdlTG9hZGVyLmdldERhdGFIcmVmKHtcbiAgICAgICAgICAgICAgICAgICAgaHJlZjogdXJsLFxuICAgICAgICAgICAgICAgICAgICBhc1BhdGg6IHJlc29sdmVkQXMsXG4gICAgICAgICAgICAgICAgICAgIGxvY2FsZTogbG9jYWxlLFxuICAgICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgIGlzU2VydmVyUmVuZGVyOiBmYWxzZSxcbiAgICAgICAgICAgICAgcGFyc2VKU09OOiB0cnVlLFxuICAgICAgICAgICAgICBpbmZsaWdodENhY2hlOiB0aGlzLnNkYyxcbiAgICAgICAgICAgICAgcGVyc2lzdENhY2hlOiAhdGhpcy5pc1ByZXZpZXcsXG4gICAgICAgICAgICAgIGlzUHJlZmV0Y2g6IHRydWUsXG4gICAgICAgICAgICAgIHVuc3RhYmxlX3NraXBDbGllbnRDYWNoZTpcbiAgICAgICAgICAgICAgICBvcHRpb25zLnVuc3RhYmxlX3NraXBDbGllbnRDYWNoZSB8fFxuICAgICAgICAgICAgICAgIChvcHRpb25zLnByaW9yaXR5ICYmXG4gICAgICAgICAgICAgICAgICAhIXByb2Nlc3MuZW52Ll9fTkVYVF9PUFRJTUlTVElDX0NMSUVOVF9DQUNIRSksXG4gICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAudGhlbigoKSA9PiBmYWxzZSlcbiAgICAgICAgICAgICAgLmNhdGNoKCgpID0+IGZhbHNlKVxuICAgICAgICAgIDogZmFsc2VcbiAgICAgIH0pLFxuICAgICAgdGhpcy5wYWdlTG9hZGVyW29wdGlvbnMucHJpb3JpdHkgPyAnbG9hZFBhZ2UnIDogJ3ByZWZldGNoJ10ocm91dGUpLFxuICAgIF0pXG4gIH1cblxuICBhc3luYyBmZXRjaENvbXBvbmVudChyb3V0ZTogc3RyaW5nKSB7XG4gICAgY29uc3QgaGFuZGxlQ2FuY2VsbGVkID0gZ2V0Q2FuY2VsbGVkSGFuZGxlcih7IHJvdXRlLCByb3V0ZXI6IHRoaXMgfSlcblxuICAgIHRyeSB7XG4gICAgICBjb25zdCBjb21wb25lbnRSZXN1bHQgPSBhd2FpdCB0aGlzLnBhZ2VMb2FkZXIubG9hZFBhZ2Uocm91dGUpXG4gICAgICBoYW5kbGVDYW5jZWxsZWQoKVxuXG4gICAgICByZXR1cm4gY29tcG9uZW50UmVzdWx0XG4gICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICBoYW5kbGVDYW5jZWxsZWQoKVxuICAgICAgdGhyb3cgZXJyXG4gICAgfVxuICB9XG5cbiAgX2dldERhdGE8VD4oZm46ICgpID0+IFByb21pc2U8VD4pOiBQcm9taXNlPFQ+IHtcbiAgICBsZXQgY2FuY2VsbGVkID0gZmFsc2VcbiAgICBjb25zdCBjYW5jZWwgPSAoKSA9PiB7XG4gICAgICBjYW5jZWxsZWQgPSB0cnVlXG4gICAgfVxuICAgIHRoaXMuY2xjID0gY2FuY2VsXG4gICAgcmV0dXJuIGZuKCkudGhlbigoZGF0YSkgPT4ge1xuICAgICAgaWYgKGNhbmNlbCA9PT0gdGhpcy5jbGMpIHtcbiAgICAgICAgdGhpcy5jbGMgPSBudWxsXG4gICAgICB9XG5cbiAgICAgIGlmIChjYW5jZWxsZWQpIHtcbiAgICAgICAgY29uc3QgZXJyOiBhbnkgPSBuZXcgRXJyb3IoJ0xvYWRpbmcgaW5pdGlhbCBwcm9wcyBjYW5jZWxsZWQnKVxuICAgICAgICBlcnIuY2FuY2VsbGVkID0gdHJ1ZVxuICAgICAgICB0aHJvdyBlcnJcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIGRhdGFcbiAgICB9KVxuICB9XG5cbiAgZ2V0SW5pdGlhbFByb3BzKFxuICAgIENvbXBvbmVudDogQ29tcG9uZW50VHlwZSxcbiAgICBjdHg6IE5leHRQYWdlQ29udGV4dFxuICApOiBQcm9taXNlPFJlY29yZDxzdHJpbmcsIGFueT4+IHtcbiAgICBjb25zdCB7IENvbXBvbmVudDogQXBwIH0gPSB0aGlzLmNvbXBvbmVudHNbJy9fYXBwJ11cbiAgICBjb25zdCBBcHBUcmVlID0gdGhpcy5fd3JhcEFwcChBcHAgYXMgQXBwQ29tcG9uZW50KVxuICAgIGN0eC5BcHBUcmVlID0gQXBwVHJlZVxuICAgIHJldHVybiBsb2FkR2V0SW5pdGlhbFByb3BzPEFwcENvbnRleHRUeXBlPFJvdXRlcj4+KEFwcCwge1xuICAgICAgQXBwVHJlZSxcbiAgICAgIENvbXBvbmVudCxcbiAgICAgIHJvdXRlcjogdGhpcyxcbiAgICAgIGN0eCxcbiAgICB9KVxuICB9XG5cbiAgZ2V0IHJvdXRlKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuc3RhdGUucm91dGVcbiAgfVxuXG4gIGdldCBwYXRobmFtZSgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLnN0YXRlLnBhdGhuYW1lXG4gIH1cblxuICBnZXQgcXVlcnkoKTogUGFyc2VkVXJsUXVlcnkge1xuICAgIHJldHVybiB0aGlzLnN0YXRlLnF1ZXJ5XG4gIH1cblxuICBnZXQgYXNQYXRoKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuc3RhdGUuYXNQYXRoXG4gIH1cblxuICBnZXQgbG9jYWxlKCk6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIHRoaXMuc3RhdGUubG9jYWxlXG4gIH1cblxuICBnZXQgaXNGYWxsYmFjaygpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5zdGF0ZS5pc0ZhbGxiYWNrXG4gIH1cblxuICBnZXQgaXNQcmV2aWV3KCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLnN0YXRlLmlzUHJldmlld1xuICB9XG59XG4iXSwibmFtZXMiOlsiY3JlYXRlS2V5IiwiUm91dGVyIiwibWF0Y2hlc01pZGRsZXdhcmUiLCJyZXNvbHZlUmV3cml0ZXMiLCJwcm9jZXNzIiwiZW52IiwiX19ORVhUX0hBU19SRVdSSVRFUyIsInJlcXVpcmUiLCJkZWZhdWx0IiwiYnVpbGRDYW5jZWxsYXRpb25FcnJvciIsIk9iamVjdCIsImFzc2lnbiIsIkVycm9yIiwiY2FuY2VsbGVkIiwib3B0aW9ucyIsIm1hdGNoZXJzIiwiUHJvbWlzZSIsInJlc29sdmUiLCJyb3V0ZXIiLCJwYWdlTG9hZGVyIiwiZ2V0TWlkZGxld2FyZSIsInBhdGhuYW1lIiwiYXNQYXRobmFtZSIsInBhcnNlUGF0aCIsImFzUGF0aCIsImNsZWFuZWRBcyIsImhhc0Jhc2VQYXRoIiwicmVtb3ZlQmFzZVBhdGgiLCJhc1dpdGhCYXNlUGF0aEFuZExvY2FsZSIsImFkZEJhc2VQYXRoIiwiYWRkTG9jYWxlIiwibG9jYWxlIiwic29tZSIsIm0iLCJSZWdFeHAiLCJyZWdleHAiLCJ0ZXN0Iiwic3RyaXBPcmlnaW4iLCJ1cmwiLCJvcmlnaW4iLCJnZXRMb2NhdGlvbk9yaWdpbiIsInN0YXJ0c1dpdGgiLCJzdWJzdHJpbmciLCJsZW5ndGgiLCJwcmVwYXJlVXJsQXMiLCJhcyIsInJlc29sdmVkSHJlZiIsInJlc29sdmVkQXMiLCJyZXNvbHZlSHJlZiIsImhyZWZXYXNBYnNvbHV0ZSIsImFzV2FzQWJzb2x1dGUiLCJwcmVwYXJlZFVybCIsInByZXBhcmVkQXMiLCJyZXNvbHZlRHluYW1pY1JvdXRlIiwicGFnZXMiLCJjbGVhblBhdGhuYW1lIiwicmVtb3ZlVHJhaWxpbmdTbGFzaCIsImRlbm9ybWFsaXplUGFnZVBhdGgiLCJpbmNsdWRlcyIsInBhZ2UiLCJpc0R5bmFtaWNSb3V0ZSIsImdldFJvdXRlUmVnZXgiLCJyZSIsImdldE1pZGRsZXdhcmVEYXRhIiwic291cmNlIiwicmVzcG9uc2UiLCJuZXh0Q29uZmlnIiwiYmFzZVBhdGgiLCJpMThuIiwibG9jYWxlcyIsInRyYWlsaW5nU2xhc2giLCJCb29sZWFuIiwiX19ORVhUX1RSQUlMSU5HX1NMQVNIIiwicmV3cml0ZUhlYWRlciIsImhlYWRlcnMiLCJnZXQiLCJyZXdyaXRlVGFyZ2V0IiwibWF0Y2hlZFBhdGgiLCJNQVRDSEVEX1BBVEhfSEVBREVSIiwiX19ORVhUX0VYVEVSTkFMX01JRERMRVdBUkVfUkVXUklURV9SRVNPTFZFIiwicGFyc2VkUmV3cml0ZVRhcmdldCIsInBhcnNlUmVsYXRpdmVVcmwiLCJwYXRobmFtZUluZm8iLCJnZXROZXh0UGF0aG5hbWVJbmZvIiwicGFyc2VEYXRhIiwiZnNQYXRobmFtZSIsImFsbCIsImdldFBhZ2VMaXN0IiwiZ2V0Q2xpZW50QnVpbGRNYW5pZmVzdCIsInRoZW4iLCJfX3Jld3JpdGVzIiwicmV3cml0ZXMiLCJub3JtYWxpemVMb2NhbGVQYXRoIiwicGFyc2VkU291cmNlIiwidW5kZWZpbmVkIiwicmVzdWx0IiwicXVlcnkiLCJwYXRoIiwibWF0Y2hlZFBhZ2UiLCJwYXJzZWRBcyIsInJlc29sdmVkUGF0aG5hbWUiLCJtYXRjaGVzIiwiZ2V0Um91dGVNYXRjaGVyIiwidHlwZSIsInNyYyIsImZvcm1hdE5leHRQYXRobmFtZUluZm8iLCJkZWZhdWx0TG9jYWxlIiwiYnVpbGRJZCIsImRlc3RpbmF0aW9uIiwiaGFzaCIsInJlZGlyZWN0VGFyZ2V0IiwibmV3QXMiLCJuZXdVcmwiLCJ3aXRoTWlkZGxld2FyZUVmZmVjdHMiLCJmZXRjaERhdGEiLCJkYXRhIiwiZWZmZWN0IiwiZGF0YUhyZWYiLCJqc29uIiwidGV4dCIsImNhY2hlS2V5IiwibWFudWFsU2Nyb2xsUmVzdG9yYXRpb24iLCJfX05FWFRfU0NST0xMX1JFU1RPUkFUSU9OIiwid2luZG93IiwiaGlzdG9yeSIsInYiLCJzZXNzaW9uU3RvcmFnZSIsInNldEl0ZW0iLCJyZW1vdmVJdGVtIiwibiIsIlNTR19EQVRBX05PVF9GT1VORCIsIlN5bWJvbCIsImZldGNoUmV0cnkiLCJhdHRlbXB0cyIsImZldGNoIiwiY3JlZGVudGlhbHMiLCJtZXRob2QiLCJvayIsInN0YXR1cyIsInRyeVRvUGFyc2VBc0pTT04iLCJKU09OIiwicGFyc2UiLCJlcnJvciIsImZldGNoTmV4dERhdGEiLCJpbmZsaWdodENhY2hlIiwiaXNQcmVmZXRjaCIsImhhc01pZGRsZXdhcmUiLCJpc1NlcnZlclJlbmRlciIsInBhcnNlSlNPTiIsInBlcnNpc3RDYWNoZSIsImlzQmFja2dyb3VuZCIsInVuc3RhYmxlX3NraXBDbGllbnRDYWNoZSIsImhyZWYiLCJVUkwiLCJsb2NhdGlvbiIsImdldERhdGEiLCJwYXJhbXMiLCJwdXJwb3NlIiwiTkVYVF9ERVBMT1lNRU5UX0lEIiwibm90Rm91bmQiLCJtYXJrQXNzZXRFcnJvciIsIk5PREVfRU5WIiwiY2F0Y2giLCJlcnIiLCJtZXNzYWdlIiwiTWF0aCIsInJhbmRvbSIsInRvU3RyaW5nIiwic2xpY2UiLCJoYW5kbGVIYXJkTmF2aWdhdGlvbiIsImdldENhbmNlbGxlZEhhbmRsZXIiLCJyb3V0ZSIsImNhbmNlbCIsImNsYyIsImhhbmRsZUNhbmNlbGxlZCIsInJlbG9hZCIsImJhY2siLCJmb3J3YXJkIiwicHVzaCIsIl9rZXkiLCJzdHJpbmdpZnkiLCJ4Iiwic2VsZiIsInBhZ2VYT2Zmc2V0IiwieSIsInBhZ2VZT2Zmc2V0IiwiY2hhbmdlIiwicmVwbGFjZSIsIl9iZmwiLCJza2lwTmF2aWdhdGUiLCJfX05FWFRfQ0xJRU5UX1JPVVRFUl9GSUxURVJfRU5BQkxFRCIsIl9iZmxfcyIsIl9iZmxfZCIsIkJsb29tRmlsdGVyIiwic3RhdGljRmlsdGVyRGF0YSIsImR5bmFtaWNGaWx0ZXJEYXRhIiwiX19yb3V0ZXJGaWx0ZXJTdGF0aWMiLCJfX3JvdXRlckZpbHRlckR5bmFtaWMiLCJjb25zb2xlIiwicm91dGVyRmlsdGVyU1ZhbHVlIiwiX19ORVhUX0NMSUVOVF9ST1VURVJfU19GSUxURVIiLCJyb3V0ZXJGaWx0ZXJEVmFsdWUiLCJfX05FWFRfQ0xJRU5UX1JPVVRFUl9EX0ZJTFRFUiIsIm51bUhhc2hlcyIsIm51bUl0ZW1zIiwiZXJyb3JSYXRlIiwiaW1wb3J0IiwibWF0Y2hlc0JmbFN0YXRpYyIsIm1hdGNoZXNCZmxEeW5hbWljIiwicGF0aHNUb0NoZWNrIiwiY3VyQXMiLCJhbGxvd01hdGNoQ3VycmVudCIsImFzTm9TbGFzaCIsImFzTm9TbGFzaExvY2FsZSIsImNvbnRhaW5zIiwibm9ybWFsaXplZEFTIiwiY3VyQXNQYXJ0cyIsInNwbGl0IiwiaSIsImN1cnJlbnRQYXJ0Iiwiam9pbiIsImZvcmNlZFNjcm9sbCIsImlzTG9jYWxVUkwiLCJpc1F1ZXJ5VXBkYXRpbmciLCJfaCIsInNoYWxsb3ciLCJzaG91bGRSZXNvbHZlSHJlZiIsIl9zaG91bGRSZXNvbHZlSHJlZiIsIm5leHRTdGF0ZSIsInN0YXRlIiwicmVhZHlTdGF0ZUNoYW5nZSIsImlzUmVhZHkiLCJpc1NzciIsInByZXZMb2NhbGUiLCJfX05FWFRfSTE4Tl9TVVBQT1JUIiwibG9jYWxlUGF0aFJlc3VsdCIsImRldGVjdGVkTG9jYWxlIiwiZm9ybWF0V2l0aFZhbGlkYXRpb24iLCJkaWROYXZpZ2F0ZSIsImRldGVjdGVkRG9tYWluIiwiZGV0ZWN0RG9tYWluTG9jYWxlIiwiZG9tYWluTG9jYWxlcyIsImlzTG9jYWxlRG9tYWluIiwiaG9zdG5hbWUiLCJkb21haW4iLCJhc05vQmFzZVBhdGgiLCJodHRwIiwiU1QiLCJwZXJmb3JtYW5jZSIsIm1hcmsiLCJzY3JvbGwiLCJyb3V0ZVByb3BzIiwiX2luRmxpZ2h0Um91dGUiLCJldmVudHMiLCJlbWl0IiwicmVtb3ZlTG9jYWxlIiwibG9jYWxlQ2hhbmdlIiwib25seUFIYXNoQ2hhbmdlIiwiY2hhbmdlU3RhdGUiLCJzY3JvbGxUb0hhc2giLCJzZXQiLCJjb21wb25lbnRzIiwiaXNFcnJvciIsInBhcnNlZCIsInVybElzTmV3IiwicGFyc2VkQXNQYXRobmFtZSIsIl9fYXBwUm91dGVyIiwiaXNNaWRkbGV3YXJlUmV3cml0ZSIsImlzTWlkZGxld2FyZU1hdGNoIiwicmV3cml0ZXNSZXN1bHQiLCJwIiwiZXh0ZXJuYWxEZXN0Iiwicm91dGVNYXRjaCIsInJvdXRlUmVnZXgiLCJzaG91bGRJbnRlcnBvbGF0ZSIsImludGVycG9sYXRlZEFzIiwiaW50ZXJwb2xhdGVBcyIsIm1pc3NpbmdQYXJhbXMiLCJrZXlzIiwiZ3JvdXBzIiwiZmlsdGVyIiwicGFyYW0iLCJvcHRpb25hbCIsIndhcm4iLCJvbWl0IiwiaXNFcnJvclJvdXRlIiwicm91dGVJbmZvIiwiZ2V0Um91dGVJbmZvIiwiaXNQcmV2aWV3IiwiaXNGYWxsYmFjayIsImNsZWFuZWRQYXJzZWRQYXRobmFtZSIsImZvckVhY2giLCJrZXkiLCJwcmVmaXhlZEFzIiwicmV3cml0ZUFzIiwibG9jYWxlUmVzdWx0IiwiY3VyUm91dGVNYXRjaCIsImNvbXBvbmVudCIsIkNvbXBvbmVudCIsInVuc3RhYmxlX3NjcmlwdExvYWRlciIsInNjcmlwdHMiLCJjb25jYXQiLCJzY3JpcHQiLCJoYW5kbGVDbGllbnRTY3JpcHRMb2FkIiwicHJvcHMiLCJfX05fU1NHIiwiX19OX1NTUCIsInBhZ2VQcm9wcyIsIl9fTl9SRURJUkVDVCIsIl9fTl9SRURJUkVDVF9CQVNFX1BBVEgiLCJwYXJzZWRIcmVmIiwiX19OX1BSRVZJRVciLCJub3RGb3VuZFJvdXRlIiwiZmV0Y2hDb21wb25lbnQiLCJfIiwiaXNOb3RGb3VuZCIsIl9fTkVYVF9EQVRBX18iLCJzdGF0dXNDb2RlIiwiaXNWYWxpZFNoYWxsb3dSb3V0ZSIsInNob3VsZFNjcm9sbCIsInJlc2V0U2Nyb2xsIiwidXBjb21pbmdTY3JvbGxTdGF0ZSIsInVwY29taW5nUm91dGVyU3RhdGUiLCJjYW5Ta2lwVXBkYXRpbmciLCJjb21wYXJlUm91dGVyU3RhdGVzIiwiZSIsImRvY3VtZW50IiwiZG9jdW1lbnRFbGVtZW50IiwibGFuZyIsImhhc2hSZWdleCIsImdldFVSTCIsIl9zaGFsbG93IiwiX19OIiwiaGFuZGxlUm91dGVJbmZvRXJyb3IiLCJsb2FkRXJyb3JGYWlsIiwiaXNBc3NldEVycm9yIiwic3R5bGVTaGVldHMiLCJnZXRJbml0aWFsUHJvcHMiLCJnaXBFcnIiLCJyb3V0ZUluZm9FcnIiLCJyZXF1ZXN0ZWRSb3V0ZSIsImV4aXN0aW5nSW5mbyIsImNhY2hlZFJvdXRlSW5mbyIsImZldGNoTmV4dERhdGFQYXJhbXMiLCJnZXREYXRhSHJlZiIsInNraXBJbnRlcnBvbGF0aW9uIiwic2JjIiwic2RjIiwicmVzb2x2ZWRSb3V0ZSIsImlzQVBJUm91dGUiLCJyZXMiLCJtb2QiLCJpc1ZhbGlkRWxlbWVudFR5cGUiLCJ3YXNCYWlsZWRQcmVmZXRjaCIsInNob3VsZEZldGNoRGF0YSIsIl9nZXREYXRhIiwiZmV0Y2hlZCIsImdldFByb3BlckVycm9yIiwic3ViIiwiYmVmb3JlUG9wU3RhdGUiLCJjYiIsIl9icHMiLCJvbGRVcmxOb0hhc2giLCJvbGRIYXNoIiwibmV3VXJsTm9IYXNoIiwibmV3SGFzaCIsImRpc2FibGVTbW9vdGhTY3JvbGxEdXJpbmdSb3V0ZVRyYW5zaXRpb24iLCJzY3JvbGxUbyIsInJhd0hhc2giLCJkZWNvZGVVUklDb21wb25lbnQiLCJpZEVsIiwiZ2V0RWxlbWVudEJ5SWQiLCJzY3JvbGxJbnRvVmlldyIsIm5hbWVFbCIsImdldEVsZW1lbnRzQnlOYW1lIiwib25seUhhc2hDaGFuZ2UiLCJwcmVmZXRjaCIsImlzQm90IiwibmF2aWdhdG9yIiwidXNlckFnZW50IiwidXJsUGF0aG5hbWUiLCJvcmlnaW5hbFBhdGhuYW1lIiwiX19ORVhUX01JRERMRVdBUkVfUFJFRkVUQ0giLCJfaXNTc2ciLCJpc1NzZyIsInByaW9yaXR5IiwiX19ORVhUX09QVElNSVNUSUNfQ0xJRU5UX0NBQ0hFIiwiY29tcG9uZW50UmVzdWx0IiwibG9hZFBhZ2UiLCJmbiIsImN0eCIsIkFwcCIsIkFwcFRyZWUiLCJfd3JhcEFwcCIsImxvYWRHZXRJbml0aWFsUHJvcHMiLCJjb25zdHJ1Y3RvciIsImluaXRpYWxQcm9wcyIsIndyYXBBcHAiLCJzdWJzY3JpcHRpb24iLCJpc0ZpcnN0UG9wU3RhdGVFdmVudCIsIm9uUG9wU3RhdGUiLCJfX05BIiwiZ2V0SXRlbSIsImluaXRpYWwiLCJhdXRvRXhwb3J0RHluYW1pYyIsImF1dG9FeHBvcnQiLCJfX05FWFRfUk9VVEVSX0JBU0VQQVRIIiwiZ3NzcCIsImdpcCIsImlzRXhwZXJpbWVudGFsQ29tcGlsZSIsImFwcEdpcCIsImdzcCIsInNlYXJjaCIsIl9pbml0aWFsTWF0Y2hlc01pZGRsZXdhcmVQcm9taXNlIiwiYWRkRXZlbnRMaXN0ZW5lciIsInNjcm9sbFJlc3RvcmF0aW9uIiwibWl0dCJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(pages-dir-browser)/./node_modules/next/dist/shared/lib/router/router.js\n")); - -/***/ }), - -/***/ "(pages-dir-browser)/./node_modules/next/dist/shared/lib/router/utils/add-locale.js": -/*!**********************************************************************!*\ - !*** ./node_modules/next/dist/shared/lib/router/utils/add-locale.js ***! - \**********************************************************************/ -/***/ ((module, exports, __webpack_require__) => { - -"use strict"; -eval(__webpack_require__.ts("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"addLocale\", ({\n enumerable: true,\n get: function() {\n return addLocale;\n }\n}));\nconst _addpathprefix = __webpack_require__(/*! ./add-path-prefix */ \"(pages-dir-browser)/./node_modules/next/dist/shared/lib/router/utils/add-path-prefix.js\");\nconst _pathhasprefix = __webpack_require__(/*! ./path-has-prefix */ \"(pages-dir-browser)/./node_modules/next/dist/shared/lib/router/utils/path-has-prefix.js\");\nfunction addLocale(path, locale, defaultLocale, ignorePrefix) {\n // If no locale was given or the locale is the default locale, we don't need\n // to prefix the path.\n if (!locale || locale === defaultLocale) return path;\n const lower = path.toLowerCase();\n // If the path is an API path or the path already has the locale prefix, we\n // don't need to prefix the path.\n if (!ignorePrefix) {\n if ((0, _pathhasprefix.pathHasPrefix)(lower, '/api')) return path;\n if ((0, _pathhasprefix.pathHasPrefix)(lower, \"/\" + locale.toLowerCase())) return path;\n }\n // Add the locale prefix to the path.\n return (0, _addpathprefix.addPathPrefix)(path, \"/\" + locale);\n} //# sourceMappingURL=add-locale.js.map\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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3Qvc2hhcmVkL2xpYi9yb3V0ZXIvdXRpbHMvYWRkLWxvY2FsZS5qcyIsIm1hcHBpbmdzIjoiOzs7OzZDQVFnQkE7OztlQUFBQTs7OzJDQVJjOzJDQUNBO0FBT3ZCLFNBQVNBLFVBQ2RDLElBQVksRUFDWkMsTUFBdUIsRUFDdkJDLGFBQXNCLEVBQ3RCQyxZQUFzQjtJQUV0Qiw0RUFBNEU7SUFDNUUsc0JBQXNCO0lBQ3RCLElBQUksQ0FBQ0YsVUFBVUEsV0FBV0MsZUFBZSxPQUFPRjtJQUVoRCxNQUFNSSxRQUFRSixLQUFLSyxXQUFXO0lBRTlCLDJFQUEyRTtJQUMzRSxpQ0FBaUM7SUFDakMsSUFBSSxDQUFDRixjQUFjO1FBQ2pCLElBQUlHLENBQUFBLEdBQUFBLGVBQUFBLGFBQWEsRUFBQ0YsT0FBTyxTQUFTLE9BQU9KO1FBQ3pDLElBQUlNLENBQUFBLEdBQUFBLGVBQUFBLGFBQUFBLEVBQWNGLE9BQVEsTUFBR0gsT0FBT0ksV0FBVyxLQUFPLE9BQU9MO0lBQy9EO0lBRUEscUNBQXFDO0lBQ3JDLE9BQU9PLENBQUFBLEdBQUFBLGVBQUFBLGFBQUFBLEVBQWNQLE1BQU8sTUFBR0M7QUFDakMiLCJzb3VyY2VzIjpbIkQ6XFxzcmNcXHNoYXJlZFxcbGliXFxyb3V0ZXJcXHV0aWxzXFxhZGQtbG9jYWxlLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGFkZFBhdGhQcmVmaXggfSBmcm9tICcuL2FkZC1wYXRoLXByZWZpeCdcbmltcG9ydCB7IHBhdGhIYXNQcmVmaXggfSBmcm9tICcuL3BhdGgtaGFzLXByZWZpeCdcblxuLyoqXG4gKiBGb3IgYSBnaXZlbiBwYXRoIGFuZCBhIGxvY2FsZSwgaWYgdGhlIGxvY2FsZSBpcyBnaXZlbiwgaXQgd2lsbCBwcmVmaXggdGhlXG4gKiBsb2NhbGUuIFRoZSBwYXRoIHNob3VsZG4ndCBiZSBhbiBBUEkgcGF0aC4gSWYgYSBkZWZhdWx0IGxvY2FsZSBpcyBnaXZlbiB0aGVcbiAqIHByZWZpeCB3aWxsIGJlIG9taXR0ZWQgaWYgdGhlIGxvY2FsZSBpcyBhbHJlYWR5IHRoZSBkZWZhdWx0IGxvY2FsZS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGFkZExvY2FsZShcbiAgcGF0aDogc3RyaW5nLFxuICBsb2NhbGU/OiBzdHJpbmcgfCBmYWxzZSxcbiAgZGVmYXVsdExvY2FsZT86IHN0cmluZyxcbiAgaWdub3JlUHJlZml4PzogYm9vbGVhblxuKSB7XG4gIC8vIElmIG5vIGxvY2FsZSB3YXMgZ2l2ZW4gb3IgdGhlIGxvY2FsZSBpcyB0aGUgZGVmYXVsdCBsb2NhbGUsIHdlIGRvbid0IG5lZWRcbiAgLy8gdG8gcHJlZml4IHRoZSBwYXRoLlxuICBpZiAoIWxvY2FsZSB8fCBsb2NhbGUgPT09IGRlZmF1bHRMb2NhbGUpIHJldHVybiBwYXRoXG5cbiAgY29uc3QgbG93ZXIgPSBwYXRoLnRvTG93ZXJDYXNlKClcblxuICAvLyBJZiB0aGUgcGF0aCBpcyBhbiBBUEkgcGF0aCBvciB0aGUgcGF0aCBhbHJlYWR5IGhhcyB0aGUgbG9jYWxlIHByZWZpeCwgd2VcbiAgLy8gZG9uJ3QgbmVlZCB0byBwcmVmaXggdGhlIHBhdGguXG4gIGlmICghaWdub3JlUHJlZml4KSB7XG4gICAgaWYgKHBhdGhIYXNQcmVmaXgobG93ZXIsICcvYXBpJykpIHJldHVybiBwYXRoXG4gICAgaWYgKHBhdGhIYXNQcmVmaXgobG93ZXIsIGAvJHtsb2NhbGUudG9Mb3dlckNhc2UoKX1gKSkgcmV0dXJuIHBhdGhcbiAgfVxuXG4gIC8vIEFkZCB0aGUgbG9jYWxlIHByZWZpeCB0byB0aGUgcGF0aC5cbiAgcmV0dXJuIGFkZFBhdGhQcmVmaXgocGF0aCwgYC8ke2xvY2FsZX1gKVxufVxuIl0sIm5hbWVzIjpbImFkZExvY2FsZSIsInBhdGgiLCJsb2NhbGUiLCJkZWZhdWx0TG9jYWxlIiwiaWdub3JlUHJlZml4IiwibG93ZXIiLCJ0b0xvd2VyQ2FzZSIsInBhdGhIYXNQcmVmaXgiLCJhZGRQYXRoUHJlZml4Il0sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(pages-dir-browser)/./node_modules/next/dist/shared/lib/router/utils/add-locale.js\n")); - -/***/ }), - -/***/ "(pages-dir-browser)/./node_modules/next/dist/shared/lib/router/utils/add-path-prefix.js": -/*!***************************************************************************!*\ - !*** ./node_modules/next/dist/shared/lib/router/utils/add-path-prefix.js ***! - \***************************************************************************/ -/***/ ((module, exports, __webpack_require__) => { - -"use strict"; -eval(__webpack_require__.ts("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"addPathPrefix\", ({\n enumerable: true,\n get: function() {\n return addPathPrefix;\n }\n}));\nconst _parsepath = __webpack_require__(/*! ./parse-path */ \"(pages-dir-browser)/./node_modules/next/dist/shared/lib/router/utils/parse-path.js\");\nfunction addPathPrefix(path, prefix) {\n if (!path.startsWith('/') || !prefix) {\n return path;\n }\n const { pathname, query, hash } = (0, _parsepath.parsePath)(path);\n return \"\" + prefix + pathname + query + hash;\n} //# sourceMappingURL=add-path-prefix.js.map\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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3Qvc2hhcmVkL2xpYi9yb3V0ZXIvdXRpbHMvYWRkLXBhdGgtcHJlZml4LmpzIiwibWFwcGluZ3MiOiI7Ozs7aURBTWdCQTs7O2VBQUFBOzs7dUNBTlU7QUFNbkIsU0FBU0EsY0FBY0MsSUFBWSxFQUFFQyxNQUFlO0lBQ3pELElBQUksQ0FBQ0QsS0FBS0UsVUFBVSxDQUFDLFFBQVEsQ0FBQ0QsUUFBUTtRQUNwQyxPQUFPRDtJQUNUO0lBRUEsTUFBTSxFQUFFRyxRQUFRLEVBQUVDLEtBQUssRUFBRUMsSUFBSSxFQUFFLEdBQUdDLENBQUFBLEdBQUFBLFdBQUFBLFNBQUFBLEVBQVVOO0lBQzVDLE9BQVEsS0FBRUMsU0FBU0UsV0FBV0MsUUFBUUM7QUFDeEMiLCJzb3VyY2VzIjpbIkQ6XFxzcmNcXHNoYXJlZFxcbGliXFxyb3V0ZXJcXHV0aWxzXFxhZGQtcGF0aC1wcmVmaXgudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgcGFyc2VQYXRoIH0gZnJvbSAnLi9wYXJzZS1wYXRoJ1xuXG4vKipcbiAqIEFkZHMgdGhlIHByb3ZpZGVkIHByZWZpeCB0byB0aGUgZ2l2ZW4gcGF0aC4gSXQgZmlyc3QgZW5zdXJlcyB0aGF0IHRoZSBwYXRoXG4gKiBpcyBpbmRlZWQgc3RhcnRpbmcgd2l0aCBhIHNsYXNoLlxuICovXG5leHBvcnQgZnVuY3Rpb24gYWRkUGF0aFByZWZpeChwYXRoOiBzdHJpbmcsIHByZWZpeD86IHN0cmluZykge1xuICBpZiAoIXBhdGguc3RhcnRzV2l0aCgnLycpIHx8ICFwcmVmaXgpIHtcbiAgICByZXR1cm4gcGF0aFxuICB9XG5cbiAgY29uc3QgeyBwYXRobmFtZSwgcXVlcnksIGhhc2ggfSA9IHBhcnNlUGF0aChwYXRoKVxuICByZXR1cm4gYCR7cHJlZml4fSR7cGF0aG5hbWV9JHtxdWVyeX0ke2hhc2h9YFxufVxuIl0sIm5hbWVzIjpbImFkZFBhdGhQcmVmaXgiLCJwYXRoIiwicHJlZml4Iiwic3RhcnRzV2l0aCIsInBhdGhuYW1lIiwicXVlcnkiLCJoYXNoIiwicGFyc2VQYXRoIl0sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(pages-dir-browser)/./node_modules/next/dist/shared/lib/router/utils/add-path-prefix.js\n")); - -/***/ }), - -/***/ "(pages-dir-browser)/./node_modules/next/dist/shared/lib/router/utils/add-path-suffix.js": -/*!***************************************************************************!*\ - !*** ./node_modules/next/dist/shared/lib/router/utils/add-path-suffix.js ***! - \***************************************************************************/ -/***/ ((module, exports, __webpack_require__) => { - -"use strict"; -eval(__webpack_require__.ts("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"addPathSuffix\", ({\n enumerable: true,\n get: function() {\n return addPathSuffix;\n }\n}));\nconst _parsepath = __webpack_require__(/*! ./parse-path */ \"(pages-dir-browser)/./node_modules/next/dist/shared/lib/router/utils/parse-path.js\");\nfunction addPathSuffix(path, suffix) {\n if (!path.startsWith('/') || !suffix) {\n return path;\n }\n const { pathname, query, hash } = (0, _parsepath.parsePath)(path);\n return \"\" + pathname + suffix + query + hash;\n} //# sourceMappingURL=add-path-suffix.js.map\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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3Qvc2hhcmVkL2xpYi9yb3V0ZXIvdXRpbHMvYWRkLXBhdGgtc3VmZml4LmpzIiwibWFwcGluZ3MiOiI7Ozs7aURBT2dCQTs7O2VBQUFBOzs7dUNBUFU7QUFPbkIsU0FBU0EsY0FBY0MsSUFBWSxFQUFFQyxNQUFlO0lBQ3pELElBQUksQ0FBQ0QsS0FBS0UsVUFBVSxDQUFDLFFBQVEsQ0FBQ0QsUUFBUTtRQUNwQyxPQUFPRDtJQUNUO0lBRUEsTUFBTSxFQUFFRyxRQUFRLEVBQUVDLEtBQUssRUFBRUMsSUFBSSxFQUFFLEdBQUdDLENBQUFBLEdBQUFBLFdBQUFBLFNBQUFBLEVBQVVOO0lBQzVDLE9BQVEsS0FBRUcsV0FBV0YsU0FBU0csUUFBUUM7QUFDeEMiLCJzb3VyY2VzIjpbIkQ6XFxzcmNcXHNoYXJlZFxcbGliXFxyb3V0ZXJcXHV0aWxzXFxhZGQtcGF0aC1zdWZmaXgudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgcGFyc2VQYXRoIH0gZnJvbSAnLi9wYXJzZS1wYXRoJ1xuXG4vKipcbiAqIFNpbWlsYXJseSB0byBgYWRkUGF0aFByZWZpeGAsIHRoaXMgZnVuY3Rpb24gYWRkcyBhIHN1ZmZpeCBhdCB0aGUgZW5kIG9uIHRoZVxuICogcHJvdmlkZWQgcGF0aC4gSXQgYWxzbyB3b3JrcyBvbmx5IGZvciBwYXRocyBlbnN1cmluZyB0aGUgYXJndW1lbnQgc3RhcnRzXG4gKiB3aXRoIGEgc2xhc2guXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBhZGRQYXRoU3VmZml4KHBhdGg6IHN0cmluZywgc3VmZml4Pzogc3RyaW5nKSB7XG4gIGlmICghcGF0aC5zdGFydHNXaXRoKCcvJykgfHwgIXN1ZmZpeCkge1xuICAgIHJldHVybiBwYXRoXG4gIH1cblxuICBjb25zdCB7IHBhdGhuYW1lLCBxdWVyeSwgaGFzaCB9ID0gcGFyc2VQYXRoKHBhdGgpXG4gIHJldHVybiBgJHtwYXRobmFtZX0ke3N1ZmZpeH0ke3F1ZXJ5fSR7aGFzaH1gXG59XG4iXSwibmFtZXMiOlsiYWRkUGF0aFN1ZmZpeCIsInBhdGgiLCJzdWZmaXgiLCJzdGFydHNXaXRoIiwicGF0aG5hbWUiLCJxdWVyeSIsImhhc2giLCJwYXJzZVBhdGgiXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(pages-dir-browser)/./node_modules/next/dist/shared/lib/router/utils/add-path-suffix.js\n")); - -/***/ }), - -/***/ "(pages-dir-browser)/./node_modules/next/dist/shared/lib/router/utils/app-paths.js": -/*!*********************************************************************!*\ - !*** ./node_modules/next/dist/shared/lib/router/utils/app-paths.js ***! - \*********************************************************************/ -/***/ ((module, exports, __webpack_require__) => { - -"use strict"; -eval(__webpack_require__.ts("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n normalizeAppPath: function() {\n return normalizeAppPath;\n },\n normalizeRscURL: function() {\n return normalizeRscURL;\n }\n});\nconst _ensureleadingslash = __webpack_require__(/*! ../../page-path/ensure-leading-slash */ \"(pages-dir-browser)/./node_modules/next/dist/shared/lib/page-path/ensure-leading-slash.js\");\nconst _segment = __webpack_require__(/*! ../../segment */ \"(pages-dir-browser)/./node_modules/next/dist/shared/lib/segment.js\");\nfunction normalizeAppPath(route) {\n return (0, _ensureleadingslash.ensureLeadingSlash)(route.split('/').reduce((pathname, segment, index, segments)=>{\n // Empty segments are ignored.\n if (!segment) {\n return pathname;\n }\n // Groups are ignored.\n if ((0, _segment.isGroupSegment)(segment)) {\n return pathname;\n }\n // Parallel segments are ignored.\n if (segment[0] === '@') {\n return pathname;\n }\n // The last segment (if it's a leaf) should be ignored.\n if ((segment === 'page' || segment === 'route') && index === segments.length - 1) {\n return pathname;\n }\n return pathname + \"/\" + segment;\n }, ''));\n}\nfunction normalizeRscURL(url) {\n return url.replace(/\\.rsc($|\\?)/, '$1');\n} //# sourceMappingURL=app-paths.js.map\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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3Qvc2hhcmVkL2xpYi9yb3V0ZXIvdXRpbHMvYXBwLXBhdGhzLmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7OztJQXNCZ0JBLGdCQUFnQjtlQUFoQkE7O0lBbUNBQyxlQUFlO2VBQWZBOzs7Z0RBekRtQjtxQ0FDSjtBQXFCeEIsU0FBU0QsaUJBQWlCRSxLQUFhO0lBQzVDLE9BQU9DLENBQUFBLEdBQUFBLG9CQUFBQSxrQkFBQUEsRUFDTEQsTUFBTUUsS0FBSyxDQUFDLEtBQUtDLE1BQU0sQ0FBQyxDQUFDQyxVQUFVQyxTQUFTQyxPQUFPQztRQUNqRCw4QkFBOEI7UUFDOUIsSUFBSSxDQUFDRixTQUFTO1lBQ1osT0FBT0Q7UUFDVDtRQUVBLHNCQUFzQjtRQUN0QixJQUFJSSxDQUFBQSxHQUFBQSxTQUFBQSxjQUFBQSxFQUFlSCxVQUFVO1lBQzNCLE9BQU9EO1FBQ1Q7UUFFQSxpQ0FBaUM7UUFDakMsSUFBSUMsT0FBTyxDQUFDLEVBQUUsS0FBSyxLQUFLO1lBQ3RCLE9BQU9EO1FBQ1Q7UUFFQSx1REFBdUQ7UUFDdkQsSUFDR0MsQ0FBQUEsWUFBWSxVQUFVQSxZQUFZLFFBQU0sSUFDekNDLFVBQVVDLFNBQVNFLE1BQU0sR0FBRyxHQUM1QjtZQUNBLE9BQU9MO1FBQ1Q7UUFFQSxPQUFVQSxXQUFTLE1BQUdDO0lBQ3hCLEdBQUc7QUFFUDtBQU1PLFNBQVNOLGdCQUFnQlcsR0FBVztJQUN6QyxPQUFPQSxJQUFJQyxPQUFPLENBQ2hCLGVBQ0E7QUFHSiIsInNvdXJjZXMiOlsiRDpcXHNyY1xcc2hhcmVkXFxsaWJcXHJvdXRlclxcdXRpbHNcXGFwcC1wYXRocy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBlbnN1cmVMZWFkaW5nU2xhc2ggfSBmcm9tICcuLi8uLi9wYWdlLXBhdGgvZW5zdXJlLWxlYWRpbmctc2xhc2gnXG5pbXBvcnQgeyBpc0dyb3VwU2VnbWVudCB9IGZyb20gJy4uLy4uL3NlZ21lbnQnXG5cbi8qKlxuICogTm9ybWFsaXplcyBhbiBhcHAgcm91dGUgc28gaXQgcmVwcmVzZW50cyB0aGUgYWN0dWFsIHJlcXVlc3QgcGF0aC4gRXNzZW50aWFsbHlcbiAqIHBlcmZvcm1pbmcgdGhlIGZvbGxvd2luZyB0cmFuc2Zvcm1hdGlvbnM6XG4gKlxuICogLSBgLyhkYXNoYm9hcmQpL3VzZXIvW2lkXS9wYWdlYCB0byBgL3VzZXIvW2lkXWBcbiAqIC0gYC8oZGFzaGJvYXJkKS9hY2NvdW50L3BhZ2VgIHRvIGAvYWNjb3VudGBcbiAqIC0gYC91c2VyL1tpZF0vcGFnZWAgdG8gYC91c2VyL1tpZF1gXG4gKiAtIGAvYWNjb3VudC9wYWdlYCB0byBgL2FjY291bnRgXG4gKiAtIGAvcGFnZWAgdG8gYC9gXG4gKiAtIGAvKGRhc2hib2FyZCkvdXNlci9baWRdL3JvdXRlYCB0byBgL3VzZXIvW2lkXWBcbiAqIC0gYC8oZGFzaGJvYXJkKS9hY2NvdW50L3JvdXRlYCB0byBgL2FjY291bnRgXG4gKiAtIGAvdXNlci9baWRdL3JvdXRlYCB0byBgL3VzZXIvW2lkXWBcbiAqIC0gYC9hY2NvdW50L3JvdXRlYCB0byBgL2FjY291bnRgXG4gKiAtIGAvcm91dGVgIHRvIGAvYFxuICogLSBgL2AgdG8gYC9gXG4gKlxuICogQHBhcmFtIHJvdXRlIHRoZSBhcHAgcm91dGUgdG8gbm9ybWFsaXplXG4gKiBAcmV0dXJucyB0aGUgbm9ybWFsaXplZCBwYXRobmFtZVxuICovXG5leHBvcnQgZnVuY3Rpb24gbm9ybWFsaXplQXBwUGF0aChyb3V0ZTogc3RyaW5nKSB7XG4gIHJldHVybiBlbnN1cmVMZWFkaW5nU2xhc2goXG4gICAgcm91dGUuc3BsaXQoJy8nKS5yZWR1Y2UoKHBhdGhuYW1lLCBzZWdtZW50LCBpbmRleCwgc2VnbWVudHMpID0+IHtcbiAgICAgIC8vIEVtcHR5IHNlZ21lbnRzIGFyZSBpZ25vcmVkLlxuICAgICAgaWYgKCFzZWdtZW50KSB7XG4gICAgICAgIHJldHVybiBwYXRobmFtZVxuICAgICAgfVxuXG4gICAgICAvLyBHcm91cHMgYXJlIGlnbm9yZWQuXG4gICAgICBpZiAoaXNHcm91cFNlZ21lbnQoc2VnbWVudCkpIHtcbiAgICAgICAgcmV0dXJuIHBhdGhuYW1lXG4gICAgICB9XG5cbiAgICAgIC8vIFBhcmFsbGVsIHNlZ21lbnRzIGFyZSBpZ25vcmVkLlxuICAgICAgaWYgKHNlZ21lbnRbMF0gPT09ICdAJykge1xuICAgICAgICByZXR1cm4gcGF0aG5hbWVcbiAgICAgIH1cblxuICAgICAgLy8gVGhlIGxhc3Qgc2VnbWVudCAoaWYgaXQncyBhIGxlYWYpIHNob3VsZCBiZSBpZ25vcmVkLlxuICAgICAgaWYgKFxuICAgICAgICAoc2VnbWVudCA9PT0gJ3BhZ2UnIHx8IHNlZ21lbnQgPT09ICdyb3V0ZScpICYmXG4gICAgICAgIGluZGV4ID09PSBzZWdtZW50cy5sZW5ndGggLSAxXG4gICAgICApIHtcbiAgICAgICAgcmV0dXJuIHBhdGhuYW1lXG4gICAgICB9XG5cbiAgICAgIHJldHVybiBgJHtwYXRobmFtZX0vJHtzZWdtZW50fWBcbiAgICB9LCAnJylcbiAgKVxufVxuXG4vKipcbiAqIFN0cmlwcyB0aGUgYC5yc2NgIGV4dGVuc2lvbiBpZiBpdCdzIGluIHRoZSBwYXRobmFtZS5cbiAqIFNpbmNlIHRoaXMgZnVuY3Rpb24gaXMgdXNlZCBvbiBmdWxsIHVybHMgaXQgY2hlY2tzIGA/YCBmb3Igc2VhcmNoUGFyYW1zIGhhbmRsaW5nLlxuICovXG5leHBvcnQgZnVuY3Rpb24gbm9ybWFsaXplUnNjVVJMKHVybDogc3RyaW5nKSB7XG4gIHJldHVybiB1cmwucmVwbGFjZShcbiAgICAvXFwucnNjKCR8XFw/KS8sXG4gICAgLy8gJDEgZW5zdXJlcyBgP2AgaXMgcHJlc2VydmVkXG4gICAgJyQxJ1xuICApXG59XG4iXSwibmFtZXMiOlsibm9ybWFsaXplQXBwUGF0aCIsIm5vcm1hbGl6ZVJzY1VSTCIsInJvdXRlIiwiZW5zdXJlTGVhZGluZ1NsYXNoIiwic3BsaXQiLCJyZWR1Y2UiLCJwYXRobmFtZSIsInNlZ21lbnQiLCJpbmRleCIsInNlZ21lbnRzIiwiaXNHcm91cFNlZ21lbnQiLCJsZW5ndGgiLCJ1cmwiLCJyZXBsYWNlIl0sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(pages-dir-browser)/./node_modules/next/dist/shared/lib/router/utils/app-paths.js\n")); - -/***/ }), - -/***/ "(pages-dir-browser)/./node_modules/next/dist/shared/lib/router/utils/as-path-to-search-params.js": -/*!************************************************************************************!*\ - !*** ./node_modules/next/dist/shared/lib/router/utils/as-path-to-search-params.js ***! - \************************************************************************************/ -/***/ ((module, exports, __webpack_require__) => { - -"use strict"; -eval(__webpack_require__.ts("// Convert router.asPath to a URLSearchParams object\n// example: /dynamic/[slug]?foo=bar -> { foo: 'bar' }\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"asPathToSearchParams\", ({\n enumerable: true,\n get: function() {\n return asPathToSearchParams;\n }\n}));\nfunction asPathToSearchParams(asPath) {\n return new URL(asPath, 'http://n').searchParams;\n} //# sourceMappingURL=as-path-to-search-params.js.map\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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3Qvc2hhcmVkL2xpYi9yb3V0ZXIvdXRpbHMvYXMtcGF0aC10by1zZWFyY2gtcGFyYW1zLmpzIiwibWFwcGluZ3MiOiJBQUFBLG9EQUFvRDtBQUNwRCxxREFBcUQ7Ozs7O3dEQUNyQ0E7OztlQUFBQTs7O0FBQVQsU0FBU0EscUJBQXFCQyxNQUFjO0lBQ2pELE9BQU8sSUFBSUMsSUFBSUQsUUFBUSxZQUFZRSxZQUFZO0FBQ2pEIiwic291cmNlcyI6WyJEOlxcc3JjXFxzaGFyZWRcXGxpYlxccm91dGVyXFx1dGlsc1xcYXMtcGF0aC10by1zZWFyY2gtcGFyYW1zLnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8vIENvbnZlcnQgcm91dGVyLmFzUGF0aCB0byBhIFVSTFNlYXJjaFBhcmFtcyBvYmplY3Rcbi8vIGV4YW1wbGU6IC9keW5hbWljL1tzbHVnXT9mb289YmFyIC0+IHsgZm9vOiAnYmFyJyB9XG5leHBvcnQgZnVuY3Rpb24gYXNQYXRoVG9TZWFyY2hQYXJhbXMoYXNQYXRoOiBzdHJpbmcpOiBVUkxTZWFyY2hQYXJhbXMge1xuICByZXR1cm4gbmV3IFVSTChhc1BhdGgsICdodHRwOi8vbicpLnNlYXJjaFBhcmFtc1xufVxuIl0sIm5hbWVzIjpbImFzUGF0aFRvU2VhcmNoUGFyYW1zIiwiYXNQYXRoIiwiVVJMIiwic2VhcmNoUGFyYW1zIl0sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(pages-dir-browser)/./node_modules/next/dist/shared/lib/router/utils/as-path-to-search-params.js\n")); - -/***/ }), - -/***/ "(pages-dir-browser)/./node_modules/next/dist/shared/lib/router/utils/compare-states.js": -/*!**************************************************************************!*\ - !*** ./node_modules/next/dist/shared/lib/router/utils/compare-states.js ***! - \**************************************************************************/ -/***/ ((module, exports, __webpack_require__) => { - -"use strict"; -eval(__webpack_require__.ts("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"compareRouterStates\", ({\n enumerable: true,\n get: function() {\n return compareRouterStates;\n }\n}));\nfunction compareRouterStates(a, b) {\n const stateKeys = Object.keys(a);\n if (stateKeys.length !== Object.keys(b).length) return false;\n for(let i = stateKeys.length; i--;){\n const key = stateKeys[i];\n if (key === 'query') {\n const queryKeys = Object.keys(a.query);\n if (queryKeys.length !== Object.keys(b.query).length) {\n return false;\n }\n for(let j = queryKeys.length; j--;){\n const queryKey = queryKeys[j];\n if (!b.query.hasOwnProperty(queryKey) || a.query[queryKey] !== b.query[queryKey]) {\n return false;\n }\n }\n } else if (!b.hasOwnProperty(key) || a[key] !== b[key]) {\n return false;\n }\n }\n return true;\n} //# sourceMappingURL=compare-states.js.map\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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3Qvc2hhcmVkL2xpYi9yb3V0ZXIvdXRpbHMvY29tcGFyZS1zdGF0ZXMuanMiLCJtYXBwaW5ncyI6Ijs7Ozt1REFFZ0JBOzs7ZUFBQUE7OztBQUFULFNBQVNBLG9CQUFvQkMsQ0FBa0IsRUFBRUMsQ0FBa0I7SUFDeEUsTUFBTUMsWUFBWUMsT0FBT0MsSUFBSSxDQUFDSjtJQUM5QixJQUFJRSxVQUFVRyxNQUFNLEtBQUtGLE9BQU9DLElBQUksQ0FBQ0gsR0FBR0ksTUFBTSxFQUFFLE9BQU87SUFFdkQsSUFBSyxJQUFJQyxJQUFJSixVQUFVRyxNQUFNLEVBQUVDLEtBQU87UUFDcEMsTUFBTUMsTUFBTUwsU0FBUyxDQUFDSSxFQUFFO1FBQ3hCLElBQUlDLFFBQVEsU0FBUztZQUNuQixNQUFNQyxZQUFZTCxPQUFPQyxJQUFJLENBQUNKLEVBQUVTLEtBQUs7WUFDckMsSUFBSUQsVUFBVUgsTUFBTSxLQUFLRixPQUFPQyxJQUFJLENBQUNILEVBQUVRLEtBQUssRUFBRUosTUFBTSxFQUFFO2dCQUNwRCxPQUFPO1lBQ1Q7WUFDQSxJQUFLLElBQUlLLElBQUlGLFVBQVVILE1BQU0sRUFBRUssS0FBTztnQkFDcEMsTUFBTUMsV0FBV0gsU0FBUyxDQUFDRSxFQUFFO2dCQUM3QixJQUNFLENBQUNULEVBQUVRLEtBQUssQ0FBQ0csY0FBYyxDQUFDRCxhQUN4QlgsRUFBRVMsS0FBSyxDQUFDRSxTQUFTLEtBQUtWLEVBQUVRLEtBQUssQ0FBQ0UsU0FBUyxFQUN2QztvQkFDQSxPQUFPO2dCQUNUO1lBQ0Y7UUFDRixPQUFPLElBQ0wsQ0FBQ1YsRUFBRVcsY0FBYyxDQUFDTCxRQUNsQlAsQ0FBQyxDQUFDTyxJQUE2QixLQUFLTixDQUFDLENBQUNNLElBQTZCLEVBQ25FO1lBQ0EsT0FBTztRQUNUO0lBQ0Y7SUFFQSxPQUFPO0FBQ1QiLCJzb3VyY2VzIjpbIkQ6XFxzcmNcXHNoYXJlZFxcbGliXFxyb3V0ZXJcXHV0aWxzXFxjb21wYXJlLXN0YXRlcy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IGRlZmF1bHQgYXMgUm91dGVyIH0gZnJvbSAnLi4vcm91dGVyJ1xuXG5leHBvcnQgZnVuY3Rpb24gY29tcGFyZVJvdXRlclN0YXRlcyhhOiBSb3V0ZXJbJ3N0YXRlJ10sIGI6IFJvdXRlclsnc3RhdGUnXSkge1xuICBjb25zdCBzdGF0ZUtleXMgPSBPYmplY3Qua2V5cyhhKVxuICBpZiAoc3RhdGVLZXlzLmxlbmd0aCAhPT0gT2JqZWN0LmtleXMoYikubGVuZ3RoKSByZXR1cm4gZmFsc2VcblxuICBmb3IgKGxldCBpID0gc3RhdGVLZXlzLmxlbmd0aDsgaS0tOyApIHtcbiAgICBjb25zdCBrZXkgPSBzdGF0ZUtleXNbaV1cbiAgICBpZiAoa2V5ID09PSAncXVlcnknKSB7XG4gICAgICBjb25zdCBxdWVyeUtleXMgPSBPYmplY3Qua2V5cyhhLnF1ZXJ5KVxuICAgICAgaWYgKHF1ZXJ5S2V5cy5sZW5ndGggIT09IE9iamVjdC5rZXlzKGIucXVlcnkpLmxlbmd0aCkge1xuICAgICAgICByZXR1cm4gZmFsc2VcbiAgICAgIH1cbiAgICAgIGZvciAobGV0IGogPSBxdWVyeUtleXMubGVuZ3RoOyBqLS07ICkge1xuICAgICAgICBjb25zdCBxdWVyeUtleSA9IHF1ZXJ5S2V5c1tqXVxuICAgICAgICBpZiAoXG4gICAgICAgICAgIWIucXVlcnkuaGFzT3duUHJvcGVydHkocXVlcnlLZXkpIHx8XG4gICAgICAgICAgYS5xdWVyeVtxdWVyeUtleV0gIT09IGIucXVlcnlbcXVlcnlLZXldXG4gICAgICAgICkge1xuICAgICAgICAgIHJldHVybiBmYWxzZVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSBlbHNlIGlmIChcbiAgICAgICFiLmhhc093blByb3BlcnR5KGtleSkgfHxcbiAgICAgIGFba2V5IGFzIGtleW9mIFJvdXRlclsnc3RhdGUnXV0gIT09IGJba2V5IGFzIGtleW9mIFJvdXRlclsnc3RhdGUnXV1cbiAgICApIHtcbiAgICAgIHJldHVybiBmYWxzZVxuICAgIH1cbiAgfVxuXG4gIHJldHVybiB0cnVlXG59XG4iXSwibmFtZXMiOlsiY29tcGFyZVJvdXRlclN0YXRlcyIsImEiLCJiIiwic3RhdGVLZXlzIiwiT2JqZWN0Iiwia2V5cyIsImxlbmd0aCIsImkiLCJrZXkiLCJxdWVyeUtleXMiLCJxdWVyeSIsImoiLCJxdWVyeUtleSIsImhhc093blByb3BlcnR5Il0sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(pages-dir-browser)/./node_modules/next/dist/shared/lib/router/utils/compare-states.js\n")); - -/***/ }), - -/***/ "(pages-dir-browser)/./node_modules/next/dist/shared/lib/router/utils/disable-smooth-scroll.js": -/*!*********************************************************************************!*\ - !*** ./node_modules/next/dist/shared/lib/router/utils/disable-smooth-scroll.js ***! - \*********************************************************************************/ -/***/ ((module, exports, __webpack_require__) => { - -"use strict"; -eval(__webpack_require__.ts("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"disableSmoothScrollDuringRouteTransition\", ({\n enumerable: true,\n get: function() {\n return disableSmoothScrollDuringRouteTransition;\n }\n}));\nconst _warnonce = __webpack_require__(/*! ../../utils/warn-once */ \"(pages-dir-browser)/./node_modules/next/dist/shared/lib/utils/warn-once.js\");\nfunction disableSmoothScrollDuringRouteTransition(fn, options) {\n if (options === void 0) options = {};\n // if only the hash is changed, we don't need to disable smooth scrolling\n // we only care to prevent smooth scrolling when navigating to a new page to avoid jarring UX\n if (options.onlyHashChange) {\n fn();\n return;\n }\n const htmlElement = document.documentElement;\n const hasDataAttribute = htmlElement.dataset.scrollBehavior === 'smooth';\n // Since this is a breaking change, this is temporarily flagged\n // and will be false by default.\n // In the next major (v16), this will be automatically enabled\n if (false) {} else {\n // Old behavior: always manipulate styles, but warn about upcoming change\n // Warn if smooth scrolling is detected but no data attribute is present\n if ( true && !hasDataAttribute && getComputedStyle(htmlElement).scrollBehavior === 'smooth') {\n (0, _warnonce.warnOnce)('Detected `scroll-behavior: smooth` on the `<html>` element. In a future version, ' + 'Next.js will no longer automatically disable smooth scrolling during route transitions. ' + 'To prepare for this change, add `data-scroll-behavior=\"smooth\"` to your <html> element. ' + 'Learn more: https://nextjs.org/docs/messages/missing-data-scroll-behavior');\n }\n }\n // Proceed with temporarily disabling smooth scrolling\n const existing = htmlElement.style.scrollBehavior;\n htmlElement.style.scrollBehavior = 'auto';\n if (!options.dontForceLayout) {\n // In Chrome-based browsers we need to force reflow before calling `scrollTo`.\n // Otherwise it will not pickup the change in scrollBehavior\n // More info here: https://github.com/vercel/next.js/issues/40719#issuecomment-1336248042\n htmlElement.getClientRects();\n }\n fn();\n htmlElement.style.scrollBehavior = existing;\n} //# sourceMappingURL=disable-smooth-scroll.js.map\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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3Qvc2hhcmVkL2xpYi9yb3V0ZXIvdXRpbHMvZGlzYWJsZS1zbW9vdGgtc2Nyb2xsLmpzIiwibWFwcGluZ3MiOiI7Ozs7NEVBTWdCQTs7O2VBQUFBOzs7c0NBTlM7QUFNbEIsU0FBU0EseUNBQ2RDLEVBQWMsRUFDZEMsT0FBcUU7SUFBckVBLElBQUFBLFlBQUFBLEtBQUFBLEdBQUFBLFVBQW1FLENBQUM7SUFFcEUseUVBQXlFO0lBQ3pFLDZGQUE2RjtJQUM3RixJQUFJQSxRQUFRQyxjQUFjLEVBQUU7UUFDMUJGO1FBQ0E7SUFDRjtJQUVBLE1BQU1HLGNBQWNDLFNBQVNDLGVBQWU7SUFDNUMsTUFBTUMsbUJBQW1CSCxZQUFZSSxPQUFPLENBQUNDLGNBQWMsS0FBSztJQUVoRSwrREFBK0Q7SUFDL0QsZ0NBQWdDO0lBQ2hDLDhEQUE4RDtJQUM5RCxJQUFJQyxLQUF5QyxFQUFFLEVBTTlDLE1BQU07UUFDTCx5RUFBeUU7UUFFekUsd0VBQXdFO1FBQ3hFLElBQ0VBLEtBQW9CLElBQ3BCLENBQUNILG9CQUNETyxpQkFBaUJWLGFBQWFLLGNBQWMsS0FBSyxVQUNqRDtZQUNBTSxDQUFBQSxHQUFBQSxVQUFBQSxRQUFBQSxFQUNFLHNGQUNFLDZGQUNBLDZGQUNBO1FBRU47SUFDRjtJQUVBLHNEQUFzRDtJQUN0RCxNQUFNQyxXQUFXWixZQUFZYSxLQUFLLENBQUNSLGNBQWM7SUFDakRMLFlBQVlhLEtBQUssQ0FBQ1IsY0FBYyxHQUFHO0lBQ25DLElBQUksQ0FBQ1AsUUFBUWdCLGVBQWUsRUFBRTtRQUM1Qiw4RUFBOEU7UUFDOUUsNERBQTREO1FBQzVELHlGQUF5RjtRQUN6RmQsWUFBWWUsY0FBYztJQUM1QjtJQUNBbEI7SUFDQUcsWUFBWWEsS0FBSyxDQUFDUixjQUFjLEdBQUdPO0FBQ3JDIiwic291cmNlcyI6WyJEOlxcc3JjXFxzaGFyZWRcXGxpYlxccm91dGVyXFx1dGlsc1xcZGlzYWJsZS1zbW9vdGgtc2Nyb2xsLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHdhcm5PbmNlIH0gZnJvbSAnLi4vLi4vdXRpbHMvd2Fybi1vbmNlJ1xuXG4vKipcbiAqIFJ1biBmdW5jdGlvbiB3aXRoIGBzY3JvbGwtYmVoYXZpb3I6IGF1dG9gIGFwcGxpZWQgdG8gYDxodG1sLz5gLlxuICogVGhpcyBjc3MgY2hhbmdlIHdpbGwgYmUgcmV2ZXJ0ZWQgYWZ0ZXIgdGhlIGZ1bmN0aW9uIGZpbmlzaGVzLlxuICovXG5leHBvcnQgZnVuY3Rpb24gZGlzYWJsZVNtb290aFNjcm9sbER1cmluZ1JvdXRlVHJhbnNpdGlvbihcbiAgZm46ICgpID0+IHZvaWQsXG4gIG9wdGlvbnM6IHsgZG9udEZvcmNlTGF5b3V0PzogYm9vbGVhbjsgb25seUhhc2hDaGFuZ2U/OiBib29sZWFuIH0gPSB7fVxuKSB7XG4gIC8vIGlmIG9ubHkgdGhlIGhhc2ggaXMgY2hhbmdlZCwgd2UgZG9uJ3QgbmVlZCB0byBkaXNhYmxlIHNtb290aCBzY3JvbGxpbmdcbiAgLy8gd2Ugb25seSBjYXJlIHRvIHByZXZlbnQgc21vb3RoIHNjcm9sbGluZyB3aGVuIG5hdmlnYXRpbmcgdG8gYSBuZXcgcGFnZSB0byBhdm9pZCBqYXJyaW5nIFVYXG4gIGlmIChvcHRpb25zLm9ubHlIYXNoQ2hhbmdlKSB7XG4gICAgZm4oKVxuICAgIHJldHVyblxuICB9XG5cbiAgY29uc3QgaHRtbEVsZW1lbnQgPSBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnRcbiAgY29uc3QgaGFzRGF0YUF0dHJpYnV0ZSA9IGh0bWxFbGVtZW50LmRhdGFzZXQuc2Nyb2xsQmVoYXZpb3IgPT09ICdzbW9vdGgnXG5cbiAgLy8gU2luY2UgdGhpcyBpcyBhIGJyZWFraW5nIGNoYW5nZSwgdGhpcyBpcyB0ZW1wb3JhcmlseSBmbGFnZ2VkXG4gIC8vIGFuZCB3aWxsIGJlIGZhbHNlIGJ5IGRlZmF1bHQuXG4gIC8vIEluIHRoZSBuZXh0IG1ham9yICh2MTYpLCB0aGlzIHdpbGwgYmUgYXV0b21hdGljYWxseSBlbmFibGVkXG4gIGlmIChwcm9jZXNzLmVudi5fX05FWFRfT1BUSU1JWkVfUk9VVEVSX1NDUk9MTCkge1xuICAgIGlmICghaGFzRGF0YUF0dHJpYnV0ZSkge1xuICAgICAgLy8gTm8gc21vb3RoIHNjcm9sbGluZyBjb25maWd1cmVkLCBydW4gZGlyZWN0bHkgd2l0aG91dCBzdHlsZSBtYW5pcHVsYXRpb25cbiAgICAgIGZuKClcbiAgICAgIHJldHVyblxuICAgIH1cbiAgfSBlbHNlIHtcbiAgICAvLyBPbGQgYmVoYXZpb3I6IGFsd2F5cyBtYW5pcHVsYXRlIHN0eWxlcywgYnV0IHdhcm4gYWJvdXQgdXBjb21pbmcgY2hhbmdlXG5cbiAgICAvLyBXYXJuIGlmIHNtb290aCBzY3JvbGxpbmcgaXMgZGV0ZWN0ZWQgYnV0IG5vIGRhdGEgYXR0cmlidXRlIGlzIHByZXNlbnRcbiAgICBpZiAoXG4gICAgICBwcm9jZXNzLmVudi5OT0RFX0VOViA9PT0gJ2RldmVsb3BtZW50JyAmJlxuICAgICAgIWhhc0RhdGFBdHRyaWJ1dGUgJiZcbiAgICAgIGdldENvbXB1dGVkU3R5bGUoaHRtbEVsZW1lbnQpLnNjcm9sbEJlaGF2aW9yID09PSAnc21vb3RoJ1xuICAgICkge1xuICAgICAgd2Fybk9uY2UoXG4gICAgICAgICdEZXRlY3RlZCBgc2Nyb2xsLWJlaGF2aW9yOiBzbW9vdGhgIG9uIHRoZSBgPGh0bWw+YCBlbGVtZW50LiBJbiBhIGZ1dHVyZSB2ZXJzaW9uLCAnICtcbiAgICAgICAgICAnTmV4dC5qcyB3aWxsIG5vIGxvbmdlciBhdXRvbWF0aWNhbGx5IGRpc2FibGUgc21vb3RoIHNjcm9sbGluZyBkdXJpbmcgcm91dGUgdHJhbnNpdGlvbnMuICcgK1xuICAgICAgICAgICdUbyBwcmVwYXJlIGZvciB0aGlzIGNoYW5nZSwgYWRkIGBkYXRhLXNjcm9sbC1iZWhhdmlvcj1cInNtb290aFwiYCB0byB5b3VyIDxodG1sPiBlbGVtZW50LiAnICtcbiAgICAgICAgICAnTGVhcm4gbW9yZTogaHR0cHM6Ly9uZXh0anMub3JnL2RvY3MvbWVzc2FnZXMvbWlzc2luZy1kYXRhLXNjcm9sbC1iZWhhdmlvcidcbiAgICAgIClcbiAgICB9XG4gIH1cblxuICAvLyBQcm9jZWVkIHdpdGggdGVtcG9yYXJpbHkgZGlzYWJsaW5nIHNtb290aCBzY3JvbGxpbmdcbiAgY29uc3QgZXhpc3RpbmcgPSBodG1sRWxlbWVudC5zdHlsZS5zY3JvbGxCZWhhdmlvclxuICBodG1sRWxlbWVudC5zdHlsZS5zY3JvbGxCZWhhdmlvciA9ICdhdXRvJ1xuICBpZiAoIW9wdGlvbnMuZG9udEZvcmNlTGF5b3V0KSB7XG4gICAgLy8gSW4gQ2hyb21lLWJhc2VkIGJyb3dzZXJzIHdlIG5lZWQgdG8gZm9yY2UgcmVmbG93IGJlZm9yZSBjYWxsaW5nIGBzY3JvbGxUb2AuXG4gICAgLy8gT3RoZXJ3aXNlIGl0IHdpbGwgbm90IHBpY2t1cCB0aGUgY2hhbmdlIGluIHNjcm9sbEJlaGF2aW9yXG4gICAgLy8gTW9yZSBpbmZvIGhlcmU6IGh0dHBzOi8vZ2l0aHViLmNvbS92ZXJjZWwvbmV4dC5qcy9pc3N1ZXMvNDA3MTkjaXNzdWVjb21tZW50LTEzMzYyNDgwNDJcbiAgICBodG1sRWxlbWVudC5nZXRDbGllbnRSZWN0cygpXG4gIH1cbiAgZm4oKVxuICBodG1sRWxlbWVudC5zdHlsZS5zY3JvbGxCZWhhdmlvciA9IGV4aXN0aW5nXG59XG4iXSwibmFtZXMiOlsiZGlzYWJsZVNtb290aFNjcm9sbER1cmluZ1JvdXRlVHJhbnNpdGlvbiIsImZuIiwib3B0aW9ucyIsIm9ubHlIYXNoQ2hhbmdlIiwiaHRtbEVsZW1lbnQiLCJkb2N1bWVudCIsImRvY3VtZW50RWxlbWVudCIsImhhc0RhdGFBdHRyaWJ1dGUiLCJkYXRhc2V0Iiwic2Nyb2xsQmVoYXZpb3IiLCJwcm9jZXNzIiwiZW52IiwiX19ORVhUX09QVElNSVpFX1JPVVRFUl9TQ1JPTEwiLCJOT0RFX0VOViIsImdldENvbXB1dGVkU3R5bGUiLCJ3YXJuT25jZSIsImV4aXN0aW5nIiwic3R5bGUiLCJkb250Rm9yY2VMYXlvdXQiLCJnZXRDbGllbnRSZWN0cyJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(pages-dir-browser)/./node_modules/next/dist/shared/lib/router/utils/disable-smooth-scroll.js\n")); - -/***/ }), - -/***/ "(pages-dir-browser)/./node_modules/next/dist/shared/lib/router/utils/format-next-pathname-info.js": -/*!*************************************************************************************!*\ - !*** ./node_modules/next/dist/shared/lib/router/utils/format-next-pathname-info.js ***! - \*************************************************************************************/ -/***/ ((module, exports, __webpack_require__) => { - -"use strict"; -eval(__webpack_require__.ts("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"formatNextPathnameInfo\", ({\n enumerable: true,\n get: function() {\n return formatNextPathnameInfo;\n }\n}));\nconst _removetrailingslash = __webpack_require__(/*! ./remove-trailing-slash */ \"(pages-dir-browser)/./node_modules/next/dist/shared/lib/router/utils/remove-trailing-slash.js\");\nconst _addpathprefix = __webpack_require__(/*! ./add-path-prefix */ \"(pages-dir-browser)/./node_modules/next/dist/shared/lib/router/utils/add-path-prefix.js\");\nconst _addpathsuffix = __webpack_require__(/*! ./add-path-suffix */ \"(pages-dir-browser)/./node_modules/next/dist/shared/lib/router/utils/add-path-suffix.js\");\nconst _addlocale = __webpack_require__(/*! ./add-locale */ \"(pages-dir-browser)/./node_modules/next/dist/shared/lib/router/utils/add-locale.js\");\nfunction formatNextPathnameInfo(info) {\n let pathname = (0, _addlocale.addLocale)(info.pathname, info.locale, info.buildId ? undefined : info.defaultLocale, info.ignorePrefix);\n if (info.buildId || !info.trailingSlash) {\n pathname = (0, _removetrailingslash.removeTrailingSlash)(pathname);\n }\n if (info.buildId) {\n pathname = (0, _addpathsuffix.addPathSuffix)((0, _addpathprefix.addPathPrefix)(pathname, \"/_next/data/\" + info.buildId), info.pathname === '/' ? 'index.json' : '.json');\n }\n pathname = (0, _addpathprefix.addPathPrefix)(pathname, info.basePath);\n return !info.buildId && info.trailingSlash ? !pathname.endsWith('/') ? (0, _addpathsuffix.addPathSuffix)(pathname, '/') : pathname : (0, _removetrailingslash.removeTrailingSlash)(pathname);\n} //# sourceMappingURL=format-next-pathname-info.js.map\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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3Qvc2hhcmVkL2xpYi9yb3V0ZXIvdXRpbHMvZm9ybWF0LW5leHQtcGF0aG5hbWUtaW5mby5qcyIsIm1hcHBpbmdzIjoiOzs7OzBEQVdnQkE7OztlQUFBQTs7O2lEQVZvQjsyQ0FDTjsyQ0FDQTt1Q0FDSjtBQU9uQixTQUFTQSx1QkFBdUJDLElBQWtCO0lBQ3ZELElBQUlDLFdBQVdDLENBQUFBLEdBQUFBLFdBQUFBLFNBQUFBLEVBQ2JGLEtBQUtDLFFBQVEsRUFDYkQsS0FBS0csTUFBTSxFQUNYSCxLQUFLSSxPQUFPLEdBQUdDLFlBQVlMLEtBQUtNLGFBQWEsRUFDN0NOLEtBQUtPLFlBQVk7SUFHbkIsSUFBSVAsS0FBS0ksT0FBTyxJQUFJLENBQUNKLEtBQUtRLGFBQWEsRUFBRTtRQUN2Q1AsV0FBV1EsQ0FBQUEsR0FBQUEscUJBQUFBLG1CQUFBQSxFQUFvQlI7SUFDakM7SUFFQSxJQUFJRCxLQUFLSSxPQUFPLEVBQUU7UUFDaEJILFdBQVdTLENBQUFBLEdBQUFBLGVBQUFBLGFBQUFBLEVBQ1RDLENBQUFBLEdBQUFBLGVBQUFBLGFBQUFBLEVBQWNWLFVBQVcsaUJBQWNELEtBQUtJLE9BQU8sR0FDbkRKLEtBQUtDLFFBQVEsS0FBSyxNQUFNLGVBQWU7SUFFM0M7SUFFQUEsV0FBV1UsQ0FBQUEsR0FBQUEsZUFBQUEsYUFBQUEsRUFBY1YsVUFBVUQsS0FBS1ksUUFBUTtJQUNoRCxPQUFPLENBQUNaLEtBQUtJLE9BQU8sSUFBSUosS0FBS1EsYUFBYSxHQUN0QyxDQUFDUCxTQUFTWSxRQUFRLENBQUMsT0FDakJILENBQUFBLEdBQUFBLGVBQUFBLGFBQUFBLEVBQWNULFVBQVUsT0FDeEJBLFdBQ0ZRLENBQUFBLEdBQUFBLHFCQUFBQSxtQkFBQUEsRUFBb0JSO0FBQzFCIiwic291cmNlcyI6WyJEOlxcc3JjXFxzaGFyZWRcXGxpYlxccm91dGVyXFx1dGlsc1xcZm9ybWF0LW5leHQtcGF0aG5hbWUtaW5mby50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IE5leHRQYXRobmFtZUluZm8gfSBmcm9tICcuL2dldC1uZXh0LXBhdGhuYW1lLWluZm8nXG5pbXBvcnQgeyByZW1vdmVUcmFpbGluZ1NsYXNoIH0gZnJvbSAnLi9yZW1vdmUtdHJhaWxpbmctc2xhc2gnXG5pbXBvcnQgeyBhZGRQYXRoUHJlZml4IH0gZnJvbSAnLi9hZGQtcGF0aC1wcmVmaXgnXG5pbXBvcnQgeyBhZGRQYXRoU3VmZml4IH0gZnJvbSAnLi9hZGQtcGF0aC1zdWZmaXgnXG5pbXBvcnQgeyBhZGRMb2NhbGUgfSBmcm9tICcuL2FkZC1sb2NhbGUnXG5cbmludGVyZmFjZSBFeHRlbmRlZEluZm8gZXh0ZW5kcyBOZXh0UGF0aG5hbWVJbmZvIHtcbiAgZGVmYXVsdExvY2FsZT86IHN0cmluZ1xuICBpZ25vcmVQcmVmaXg/OiBib29sZWFuXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBmb3JtYXROZXh0UGF0aG5hbWVJbmZvKGluZm86IEV4dGVuZGVkSW5mbykge1xuICBsZXQgcGF0aG5hbWUgPSBhZGRMb2NhbGUoXG4gICAgaW5mby5wYXRobmFtZSxcbiAgICBpbmZvLmxvY2FsZSxcbiAgICBpbmZvLmJ1aWxkSWQgPyB1bmRlZmluZWQgOiBpbmZvLmRlZmF1bHRMb2NhbGUsXG4gICAgaW5mby5pZ25vcmVQcmVmaXhcbiAgKVxuXG4gIGlmIChpbmZvLmJ1aWxkSWQgfHwgIWluZm8udHJhaWxpbmdTbGFzaCkge1xuICAgIHBhdGhuYW1lID0gcmVtb3ZlVHJhaWxpbmdTbGFzaChwYXRobmFtZSlcbiAgfVxuXG4gIGlmIChpbmZvLmJ1aWxkSWQpIHtcbiAgICBwYXRobmFtZSA9IGFkZFBhdGhTdWZmaXgoXG4gICAgICBhZGRQYXRoUHJlZml4KHBhdGhuYW1lLCBgL19uZXh0L2RhdGEvJHtpbmZvLmJ1aWxkSWR9YCksXG4gICAgICBpbmZvLnBhdGhuYW1lID09PSAnLycgPyAnaW5kZXguanNvbicgOiAnLmpzb24nXG4gICAgKVxuICB9XG5cbiAgcGF0aG5hbWUgPSBhZGRQYXRoUHJlZml4KHBhdGhuYW1lLCBpbmZvLmJhc2VQYXRoKVxuICByZXR1cm4gIWluZm8uYnVpbGRJZCAmJiBpbmZvLnRyYWlsaW5nU2xhc2hcbiAgICA/ICFwYXRobmFtZS5lbmRzV2l0aCgnLycpXG4gICAgICA/IGFkZFBhdGhTdWZmaXgocGF0aG5hbWUsICcvJylcbiAgICAgIDogcGF0aG5hbWVcbiAgICA6IHJlbW92ZVRyYWlsaW5nU2xhc2gocGF0aG5hbWUpXG59XG4iXSwibmFtZXMiOlsiZm9ybWF0TmV4dFBhdGhuYW1lSW5mbyIsImluZm8iLCJwYXRobmFtZSIsImFkZExvY2FsZSIsImxvY2FsZSIsImJ1aWxkSWQiLCJ1bmRlZmluZWQiLCJkZWZhdWx0TG9jYWxlIiwiaWdub3JlUHJlZml4IiwidHJhaWxpbmdTbGFzaCIsInJlbW92ZVRyYWlsaW5nU2xhc2giLCJhZGRQYXRoU3VmZml4IiwiYWRkUGF0aFByZWZpeCIsImJhc2VQYXRoIiwiZW5kc1dpdGgiXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(pages-dir-browser)/./node_modules/next/dist/shared/lib/router/utils/format-next-pathname-info.js\n")); - -/***/ }), - -/***/ "(pages-dir-browser)/./node_modules/next/dist/shared/lib/router/utils/format-url.js": -/*!**********************************************************************!*\ - !*** ./node_modules/next/dist/shared/lib/router/utils/format-url.js ***! - \**********************************************************************/ -/***/ ((module, exports, __webpack_require__) => { - -"use strict"; -eval(__webpack_require__.ts("// Format function modified from nodejs\n// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n formatUrl: function() {\n return formatUrl;\n },\n formatWithValidation: function() {\n return formatWithValidation;\n },\n urlObjectKeys: function() {\n return urlObjectKeys;\n }\n});\nconst _interop_require_wildcard = __webpack_require__(/*! @swc/helpers/_/_interop_require_wildcard */ \"(pages-dir-browser)/./node_modules/@swc/helpers/esm/_interop_require_wildcard.js\");\nconst _querystring = /*#__PURE__*/ _interop_require_wildcard._(__webpack_require__(/*! ./querystring */ \"(pages-dir-browser)/./node_modules/next/dist/shared/lib/router/utils/querystring.js\"));\nconst slashedProtocols = /https?|ftp|gopher|file/;\nfunction formatUrl(urlObj) {\n let { auth, hostname } = urlObj;\n let protocol = urlObj.protocol || '';\n let pathname = urlObj.pathname || '';\n let hash = urlObj.hash || '';\n let query = urlObj.query || '';\n let host = false;\n auth = auth ? encodeURIComponent(auth).replace(/%3A/i, ':') + '@' : '';\n if (urlObj.host) {\n host = auth + urlObj.host;\n } else if (hostname) {\n host = auth + (~hostname.indexOf(':') ? \"[\" + hostname + \"]\" : hostname);\n if (urlObj.port) {\n host += ':' + urlObj.port;\n }\n }\n if (query && typeof query === 'object') {\n query = String(_querystring.urlQueryToSearchParams(query));\n }\n let search = urlObj.search || query && \"?\" + query || '';\n if (protocol && !protocol.endsWith(':')) protocol += ':';\n if (urlObj.slashes || (!protocol || slashedProtocols.test(protocol)) && host !== false) {\n host = '//' + (host || '');\n if (pathname && pathname[0] !== '/') pathname = '/' + pathname;\n } else if (!host) {\n host = '';\n }\n if (hash && hash[0] !== '#') hash = '#' + hash;\n if (search && search[0] !== '?') search = '?' + search;\n pathname = pathname.replace(/[?#]/g, encodeURIComponent);\n search = search.replace('#', '%23');\n return \"\" + protocol + host + pathname + search + hash;\n}\nconst urlObjectKeys = [\n 'auth',\n 'hash',\n 'host',\n 'hostname',\n 'href',\n 'path',\n 'pathname',\n 'port',\n 'protocol',\n 'query',\n 'search',\n 'slashes'\n];\nfunction formatWithValidation(url) {\n if (true) {\n if (url !== null && typeof url === 'object') {\n Object.keys(url).forEach((key)=>{\n if (!urlObjectKeys.includes(key)) {\n console.warn(\"Unknown key passed via urlObject into url.format: \" + key);\n }\n });\n }\n }\n return formatUrl(url);\n} //# sourceMappingURL=format-url.js.map\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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3Qvc2hhcmVkL2xpYi9yb3V0ZXIvdXRpbHMvZm9ybWF0LXVybC5qcyIsIm1hcHBpbmdzIjoiQUFBQSx1Q0FBdUM7QUFDdkMsc0RBQXNEO0FBQ3RELEVBQUU7QUFDRiwwRUFBMEU7QUFDMUUsZ0VBQWdFO0FBQ2hFLHNFQUFzRTtBQUN0RSxzRUFBc0U7QUFDdEUsNEVBQTRFO0FBQzVFLHFFQUFxRTtBQUNyRSx3QkFBd0I7QUFDeEIsRUFBRTtBQUNGLDBFQUEwRTtBQUMxRSx5REFBeUQ7QUFDekQsRUFBRTtBQUNGLDBFQUEwRTtBQUMxRSw2REFBNkQ7QUFDN0QsNEVBQTRFO0FBQzVFLDJFQUEyRTtBQUMzRSx3RUFBd0U7QUFDeEUsNEVBQTRFO0FBQzVFLHlDQUF5Qzs7Ozs7Ozs7Ozs7OztJQVF6QkEsU0FBUztlQUFUQTs7SUE2REFDLG9CQUFvQjtlQUFwQkE7O0lBZkhDLGFBQWE7ZUFBYkE7Ozs7bUZBbERnQjtBQUU3QixNQUFNQyxtQkFBbUI7QUFFbEIsU0FBU0gsVUFBVUksTUFBaUI7SUFDekMsSUFBSSxFQUFFQyxJQUFJLEVBQUVDLFFBQVEsRUFBRSxHQUFHRjtJQUN6QixJQUFJRyxXQUFXSCxPQUFPRyxRQUFRLElBQUk7SUFDbEMsSUFBSUMsV0FBV0osT0FBT0ksUUFBUSxJQUFJO0lBQ2xDLElBQUlDLE9BQU9MLE9BQU9LLElBQUksSUFBSTtJQUMxQixJQUFJQyxRQUFRTixPQUFPTSxLQUFLLElBQUk7SUFDNUIsSUFBSUMsT0FBdUI7SUFFM0JOLE9BQU9BLE9BQU9PLG1CQUFtQlAsTUFBTVEsT0FBTyxDQUFDLFFBQVEsT0FBTyxNQUFNO0lBRXBFLElBQUlULE9BQU9PLElBQUksRUFBRTtRQUNmQSxPQUFPTixPQUFPRCxPQUFPTyxJQUFJO0lBQzNCLE9BQU8sSUFBSUwsVUFBVTtRQUNuQkssT0FBT04sT0FBUSxFQUFDQyxTQUFTUSxPQUFPLENBQUMsT0FBUSxNQUFHUixXQUFTLE1BQUtBLFFBQUFBLENBQU87UUFDakUsSUFBSUYsT0FBT1csSUFBSSxFQUFFO1lBQ2ZKLFFBQVEsTUFBTVAsT0FBT1csSUFBSTtRQUMzQjtJQUNGO0lBRUEsSUFBSUwsU0FBUyxPQUFPQSxVQUFVLFVBQVU7UUFDdENBLFFBQVFNLE9BQU9DLGFBQVlDLHNCQUFzQixDQUFDUjtJQUNwRDtJQUVBLElBQUlTLFNBQVNmLE9BQU9lLE1BQU0sSUFBS1QsU0FBVSxNQUFHQSxTQUFZO0lBRXhELElBQUlILFlBQVksQ0FBQ0EsU0FBU2EsUUFBUSxDQUFDLE1BQU1iLFlBQVk7SUFFckQsSUFDRUgsT0FBT2lCLE9BQU8sSUFDWixFQUFDZCxZQUFZSixpQkFBaUJtQixJQUFJLENBQUNmLFNBQUFBLENBQVEsSUFBTUksU0FBUyxPQUM1RDtRQUNBQSxPQUFPLE9BQVFBLENBQUFBLFFBQVEsR0FBQztRQUN4QixJQUFJSCxZQUFZQSxRQUFRLENBQUMsRUFBRSxLQUFLLEtBQUtBLFdBQVcsTUFBTUE7SUFDeEQsT0FBTyxJQUFJLENBQUNHLE1BQU07UUFDaEJBLE9BQU87SUFDVDtJQUVBLElBQUlGLFFBQVFBLElBQUksQ0FBQyxFQUFFLEtBQUssS0FBS0EsT0FBTyxNQUFNQTtJQUMxQyxJQUFJVSxVQUFVQSxNQUFNLENBQUMsRUFBRSxLQUFLLEtBQUtBLFNBQVMsTUFBTUE7SUFFaERYLFdBQVdBLFNBQVNLLE9BQU8sQ0FBQyxTQUFTRDtJQUNyQ08sU0FBU0EsT0FBT04sT0FBTyxDQUFDLEtBQUs7SUFFN0IsT0FBUSxLQUFFTixXQUFXSSxPQUFPSCxXQUFXVyxTQUFTVjtBQUNsRDtBQUVPLE1BQU1QLGdCQUFnQjtJQUMzQjtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7Q0FDRDtBQUVNLFNBQVNELHFCQUFxQnNCLEdBQWM7SUFDakQsSUFBSUMsSUFBb0IsRUFBb0I7UUFDMUMsSUFBSUQsUUFBUSxRQUFRLE9BQU9BLFFBQVEsVUFBVTtZQUMzQ0ksT0FBT0MsSUFBSSxDQUFDTCxLQUFLTSxPQUFPLENBQUMsQ0FBQ0M7Z0JBQ3hCLElBQUksQ0FBQzVCLGNBQWM2QixRQUFRLENBQUNELE1BQU07b0JBQ2hDRSxRQUFRQyxJQUFJLENBQ1QsdURBQW9ESDtnQkFFekQ7WUFDRjtRQUNGO0lBQ0Y7SUFFQSxPQUFPOUIsVUFBVXVCO0FBQ25CIiwic291cmNlcyI6WyJEOlxcc3JjXFxzaGFyZWRcXGxpYlxccm91dGVyXFx1dGlsc1xcZm9ybWF0LXVybC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvLyBGb3JtYXQgZnVuY3Rpb24gbW9kaWZpZWQgZnJvbSBub2RlanNcbi8vIENvcHlyaWdodCBKb3llbnQsIEluYy4gYW5kIG90aGVyIE5vZGUgY29udHJpYnV0b3JzLlxuLy9cbi8vIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhXG4vLyBjb3B5IG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlXG4vLyBcIlNvZnR3YXJlXCIpLCB0byBkZWFsIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmdcbi8vIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCxcbi8vIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXRcbi8vIHBlcnNvbnMgdG8gd2hvbSB0aGUgU29mdHdhcmUgaXMgZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZVxuLy8gZm9sbG93aW5nIGNvbmRpdGlvbnM6XG4vL1xuLy8gVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWRcbi8vIGluIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLlxuLy9cbi8vIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCBcIkFTIElTXCIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1Ncbi8vIE9SIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0Zcbi8vIE1FUkNIQU5UQUJJTElUWSwgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gSU5cbi8vIE5PIEVWRU5UIFNIQUxMIFRIRSBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLFxuLy8gREFNQUdFUyBPUiBPVEhFUiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SXG4vLyBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSwgT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFXG4vLyBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU4gVEhFIFNPRlRXQVJFLlxuXG5pbXBvcnQgdHlwZSB7IFVybE9iamVjdCB9IGZyb20gJ3VybCdcbmltcG9ydCB0eXBlIHsgUGFyc2VkVXJsUXVlcnkgfSBmcm9tICdxdWVyeXN0cmluZydcbmltcG9ydCAqIGFzIHF1ZXJ5c3RyaW5nIGZyb20gJy4vcXVlcnlzdHJpbmcnXG5cbmNvbnN0IHNsYXNoZWRQcm90b2NvbHMgPSAvaHR0cHM/fGZ0cHxnb3BoZXJ8ZmlsZS9cblxuZXhwb3J0IGZ1bmN0aW9uIGZvcm1hdFVybCh1cmxPYmo6IFVybE9iamVjdCkge1xuICBsZXQgeyBhdXRoLCBob3N0bmFtZSB9ID0gdXJsT2JqXG4gIGxldCBwcm90b2NvbCA9IHVybE9iai5wcm90b2NvbCB8fCAnJ1xuICBsZXQgcGF0aG5hbWUgPSB1cmxPYmoucGF0aG5hbWUgfHwgJydcbiAgbGV0IGhhc2ggPSB1cmxPYmouaGFzaCB8fCAnJ1xuICBsZXQgcXVlcnkgPSB1cmxPYmoucXVlcnkgfHwgJydcbiAgbGV0IGhvc3Q6IHN0cmluZyB8IGZhbHNlID0gZmFsc2VcblxuICBhdXRoID0gYXV0aCA/IGVuY29kZVVSSUNvbXBvbmVudChhdXRoKS5yZXBsYWNlKC8lM0EvaSwgJzonKSArICdAJyA6ICcnXG5cbiAgaWYgKHVybE9iai5ob3N0KSB7XG4gICAgaG9zdCA9IGF1dGggKyB1cmxPYmouaG9zdFxuICB9IGVsc2UgaWYgKGhvc3RuYW1lKSB7XG4gICAgaG9zdCA9IGF1dGggKyAofmhvc3RuYW1lLmluZGV4T2YoJzonKSA/IGBbJHtob3N0bmFtZX1dYCA6IGhvc3RuYW1lKVxuICAgIGlmICh1cmxPYmoucG9ydCkge1xuICAgICAgaG9zdCArPSAnOicgKyB1cmxPYmoucG9ydFxuICAgIH1cbiAgfVxuXG4gIGlmIChxdWVyeSAmJiB0eXBlb2YgcXVlcnkgPT09ICdvYmplY3QnKSB7XG4gICAgcXVlcnkgPSBTdHJpbmcocXVlcnlzdHJpbmcudXJsUXVlcnlUb1NlYXJjaFBhcmFtcyhxdWVyeSBhcyBQYXJzZWRVcmxRdWVyeSkpXG4gIH1cblxuICBsZXQgc2VhcmNoID0gdXJsT2JqLnNlYXJjaCB8fCAocXVlcnkgJiYgYD8ke3F1ZXJ5fWApIHx8ICcnXG5cbiAgaWYgKHByb3RvY29sICYmICFwcm90b2NvbC5lbmRzV2l0aCgnOicpKSBwcm90b2NvbCArPSAnOidcblxuICBpZiAoXG4gICAgdXJsT2JqLnNsYXNoZXMgfHxcbiAgICAoKCFwcm90b2NvbCB8fCBzbGFzaGVkUHJvdG9jb2xzLnRlc3QocHJvdG9jb2wpKSAmJiBob3N0ICE9PSBmYWxzZSlcbiAgKSB7XG4gICAgaG9zdCA9ICcvLycgKyAoaG9zdCB8fCAnJylcbiAgICBpZiAocGF0aG5hbWUgJiYgcGF0aG5hbWVbMF0gIT09ICcvJykgcGF0aG5hbWUgPSAnLycgKyBwYXRobmFtZVxuICB9IGVsc2UgaWYgKCFob3N0KSB7XG4gICAgaG9zdCA9ICcnXG4gIH1cblxuICBpZiAoaGFzaCAmJiBoYXNoWzBdICE9PSAnIycpIGhhc2ggPSAnIycgKyBoYXNoXG4gIGlmIChzZWFyY2ggJiYgc2VhcmNoWzBdICE9PSAnPycpIHNlYXJjaCA9ICc/JyArIHNlYXJjaFxuXG4gIHBhdGhuYW1lID0gcGF0aG5hbWUucmVwbGFjZSgvWz8jXS9nLCBlbmNvZGVVUklDb21wb25lbnQpXG4gIHNlYXJjaCA9IHNlYXJjaC5yZXBsYWNlKCcjJywgJyUyMycpXG5cbiAgcmV0dXJuIGAke3Byb3RvY29sfSR7aG9zdH0ke3BhdGhuYW1lfSR7c2VhcmNofSR7aGFzaH1gXG59XG5cbmV4cG9ydCBjb25zdCB1cmxPYmplY3RLZXlzID0gW1xuICAnYXV0aCcsXG4gICdoYXNoJyxcbiAgJ2hvc3QnLFxuICAnaG9zdG5hbWUnLFxuICAnaHJlZicsXG4gICdwYXRoJyxcbiAgJ3BhdGhuYW1lJyxcbiAgJ3BvcnQnLFxuICAncHJvdG9jb2wnLFxuICAncXVlcnknLFxuICAnc2VhcmNoJyxcbiAgJ3NsYXNoZXMnLFxuXVxuXG5leHBvcnQgZnVuY3Rpb24gZm9ybWF0V2l0aFZhbGlkYXRpb24odXJsOiBVcmxPYmplY3QpOiBzdHJpbmcge1xuICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgPT09ICdkZXZlbG9wbWVudCcpIHtcbiAgICBpZiAodXJsICE9PSBudWxsICYmIHR5cGVvZiB1cmwgPT09ICdvYmplY3QnKSB7XG4gICAgICBPYmplY3Qua2V5cyh1cmwpLmZvckVhY2goKGtleSkgPT4ge1xuICAgICAgICBpZiAoIXVybE9iamVjdEtleXMuaW5jbHVkZXMoa2V5KSkge1xuICAgICAgICAgIGNvbnNvbGUud2FybihcbiAgICAgICAgICAgIGBVbmtub3duIGtleSBwYXNzZWQgdmlhIHVybE9iamVjdCBpbnRvIHVybC5mb3JtYXQ6ICR7a2V5fWBcbiAgICAgICAgICApXG4gICAgICAgIH1cbiAgICAgIH0pXG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIGZvcm1hdFVybCh1cmwpXG59XG4iXSwibmFtZXMiOlsiZm9ybWF0VXJsIiwiZm9ybWF0V2l0aFZhbGlkYXRpb24iLCJ1cmxPYmplY3RLZXlzIiwic2xhc2hlZFByb3RvY29scyIsInVybE9iaiIsImF1dGgiLCJob3N0bmFtZSIsInByb3RvY29sIiwicGF0aG5hbWUiLCJoYXNoIiwicXVlcnkiLCJob3N0IiwiZW5jb2RlVVJJQ29tcG9uZW50IiwicmVwbGFjZSIsImluZGV4T2YiLCJwb3J0IiwiU3RyaW5nIiwicXVlcnlzdHJpbmciLCJ1cmxRdWVyeVRvU2VhcmNoUGFyYW1zIiwic2VhcmNoIiwiZW5kc1dpdGgiLCJzbGFzaGVzIiwidGVzdCIsInVybCIsInByb2Nlc3MiLCJlbnYiLCJOT0RFX0VOViIsIk9iamVjdCIsImtleXMiLCJmb3JFYWNoIiwia2V5IiwiaW5jbHVkZXMiLCJjb25zb2xlIiwid2FybiJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(pages-dir-browser)/./node_modules/next/dist/shared/lib/router/utils/format-url.js\n")); - -/***/ }), - -/***/ "(pages-dir-browser)/./node_modules/next/dist/shared/lib/router/utils/get-asset-path-from-route.js": -/*!*************************************************************************************!*\ - !*** ./node_modules/next/dist/shared/lib/router/utils/get-asset-path-from-route.js ***! - \*************************************************************************************/ -/***/ ((module, exports, __webpack_require__) => { - -"use strict"; -eval(__webpack_require__.ts("// Translates a logical route into its pages asset path (relative from a common prefix)\n// \"asset path\" being its javascript file, data file, prerendered html,...\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"default\", ({\n enumerable: true,\n get: function() {\n return getAssetPathFromRoute;\n }\n}));\nfunction getAssetPathFromRoute(route, ext) {\n if (ext === void 0) ext = '';\n const path = route === '/' ? '/index' : /^\\/index(\\/|$)/.test(route) ? \"/index\" + route : route;\n return path + ext;\n} //# sourceMappingURL=get-asset-path-from-route.js.map\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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3Qvc2hhcmVkL2xpYi9yb3V0ZXIvdXRpbHMvZ2V0LWFzc2V0LXBhdGgtZnJvbS1yb3V0ZS5qcyIsIm1hcHBpbmdzIjoiQUFBQSx1RkFBdUY7QUFDdkYsMEVBQTBFOzs7OzsyQ0FDMUU7OztlQUF3QkE7OztBQUFULFNBQVNBLHNCQUN0QkMsS0FBYSxFQUNiQyxHQUFnQjtJQUFoQkEsSUFBQUEsUUFBQUEsS0FBQUEsR0FBQUEsTUFBYztJQUVkLE1BQU1DLE9BQ0pGLFVBQVUsTUFDTixXQUNBLGlCQUFpQkcsSUFBSSxDQUFDSCxTQUNuQixXQUFRQSxRQUNUQTtJQUNSLE9BQU9FLE9BQU9EO0FBQ2hCIiwic291cmNlcyI6WyJEOlxcc3JjXFxzaGFyZWRcXGxpYlxccm91dGVyXFx1dGlsc1xcZ2V0LWFzc2V0LXBhdGgtZnJvbS1yb3V0ZS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvLyBUcmFuc2xhdGVzIGEgbG9naWNhbCByb3V0ZSBpbnRvIGl0cyBwYWdlcyBhc3NldCBwYXRoIChyZWxhdGl2ZSBmcm9tIGEgY29tbW9uIHByZWZpeClcbi8vIFwiYXNzZXQgcGF0aFwiIGJlaW5nIGl0cyBqYXZhc2NyaXB0IGZpbGUsIGRhdGEgZmlsZSwgcHJlcmVuZGVyZWQgaHRtbCwuLi5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIGdldEFzc2V0UGF0aEZyb21Sb3V0ZShcbiAgcm91dGU6IHN0cmluZyxcbiAgZXh0OiBzdHJpbmcgPSAnJ1xuKTogc3RyaW5nIHtcbiAgY29uc3QgcGF0aCA9XG4gICAgcm91dGUgPT09ICcvJ1xuICAgICAgPyAnL2luZGV4J1xuICAgICAgOiAvXlxcL2luZGV4KFxcL3wkKS8udGVzdChyb3V0ZSlcbiAgICAgICAgPyBgL2luZGV4JHtyb3V0ZX1gXG4gICAgICAgIDogcm91dGVcbiAgcmV0dXJuIHBhdGggKyBleHRcbn1cbiJdLCJuYW1lcyI6WyJnZXRBc3NldFBhdGhGcm9tUm91dGUiLCJyb3V0ZSIsImV4dCIsInBhdGgiLCJ0ZXN0Il0sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(pages-dir-browser)/./node_modules/next/dist/shared/lib/router/utils/get-asset-path-from-route.js\n")); - -/***/ }), - -/***/ "(pages-dir-browser)/./node_modules/next/dist/shared/lib/router/utils/get-next-pathname-info.js": -/*!**********************************************************************************!*\ - !*** ./node_modules/next/dist/shared/lib/router/utils/get-next-pathname-info.js ***! - \**********************************************************************************/ -/***/ ((module, exports, __webpack_require__) => { - -"use strict"; -eval(__webpack_require__.ts("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"getNextPathnameInfo\", ({\n enumerable: true,\n get: function() {\n return getNextPathnameInfo;\n }\n}));\nconst _normalizelocalepath = __webpack_require__(/*! ../../i18n/normalize-locale-path */ \"(pages-dir-browser)/./node_modules/next/dist/shared/lib/i18n/normalize-locale-path.js\");\nconst _removepathprefix = __webpack_require__(/*! ./remove-path-prefix */ \"(pages-dir-browser)/./node_modules/next/dist/shared/lib/router/utils/remove-path-prefix.js\");\nconst _pathhasprefix = __webpack_require__(/*! ./path-has-prefix */ \"(pages-dir-browser)/./node_modules/next/dist/shared/lib/router/utils/path-has-prefix.js\");\nfunction getNextPathnameInfo(pathname, options) {\n var _options_nextConfig;\n const { basePath, i18n, trailingSlash } = (_options_nextConfig = options.nextConfig) != null ? _options_nextConfig : {};\n const info = {\n pathname,\n trailingSlash: pathname !== '/' ? pathname.endsWith('/') : trailingSlash\n };\n if (basePath && (0, _pathhasprefix.pathHasPrefix)(info.pathname, basePath)) {\n info.pathname = (0, _removepathprefix.removePathPrefix)(info.pathname, basePath);\n info.basePath = basePath;\n }\n let pathnameNoDataPrefix = info.pathname;\n if (info.pathname.startsWith('/_next/data/') && info.pathname.endsWith('.json')) {\n const paths = info.pathname.replace(/^\\/_next\\/data\\//, '').replace(/\\.json$/, '').split('/');\n const buildId = paths[0];\n info.buildId = buildId;\n pathnameNoDataPrefix = paths[1] !== 'index' ? \"/\" + paths.slice(1).join('/') : '/';\n // update pathname with normalized if enabled although\n // we use normalized to populate locale info still\n if (options.parseData === true) {\n info.pathname = pathnameNoDataPrefix;\n }\n }\n // If provided, use the locale route normalizer to detect the locale instead\n // of the function below.\n if (i18n) {\n let result = options.i18nProvider ? options.i18nProvider.analyze(info.pathname) : (0, _normalizelocalepath.normalizeLocalePath)(info.pathname, i18n.locales);\n info.locale = result.detectedLocale;\n var _result_pathname;\n info.pathname = (_result_pathname = result.pathname) != null ? _result_pathname : info.pathname;\n if (!result.detectedLocale && info.buildId) {\n result = options.i18nProvider ? options.i18nProvider.analyze(pathnameNoDataPrefix) : (0, _normalizelocalepath.normalizeLocalePath)(pathnameNoDataPrefix, i18n.locales);\n if (result.detectedLocale) {\n info.locale = result.detectedLocale;\n }\n }\n }\n return info;\n} //# sourceMappingURL=get-next-pathname-info.js.map\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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3Qvc2hhcmVkL2xpYi9yb3V0ZXIvdXRpbHMvZ2V0LW5leHQtcGF0aG5hbWUtaW5mby5qcyIsIm1hcHBpbmdzIjoiOzs7O3VEQW9EZ0JBOzs7ZUFBQUE7OztpREFwRG9COzhDQUNIOzJDQUNIO0FBa0R2QixTQUFTQSxvQkFDZEMsUUFBZ0IsRUFDaEJDLE9BQWdCO1FBRTBCQTtJQUExQyxNQUFNLEVBQUVDLFFBQVEsRUFBRUMsSUFBSSxFQUFFQyxhQUFhLEVBQUUsR0FBR0gsQ0FBQUEsc0JBQUFBLFFBQVFJLFVBQUFBLEtBQVUsT0FBbEJKLHNCQUFzQixDQUFDO0lBQ2pFLE1BQU1LLE9BQXlCO1FBQzdCTjtRQUNBSSxlQUFlSixhQUFhLE1BQU1BLFNBQVNPLFFBQVEsQ0FBQyxPQUFPSDtJQUM3RDtJQUVBLElBQUlGLFlBQVlNLENBQUFBLEdBQUFBLGVBQUFBLGFBQUFBLEVBQWNGLEtBQUtOLFFBQVEsRUFBRUUsV0FBVztRQUN0REksS0FBS04sUUFBUSxHQUFHUyxDQUFBQSxHQUFBQSxrQkFBQUEsZ0JBQUFBLEVBQWlCSCxLQUFLTixRQUFRLEVBQUVFO1FBQ2hESSxLQUFLSixRQUFRLEdBQUdBO0lBQ2xCO0lBQ0EsSUFBSVEsdUJBQXVCSixLQUFLTixRQUFRO0lBRXhDLElBQ0VNLEtBQUtOLFFBQVEsQ0FBQ1csVUFBVSxDQUFDLG1CQUN6QkwsS0FBS04sUUFBUSxDQUFDTyxRQUFRLENBQUMsVUFDdkI7UUFDQSxNQUFNSyxRQUFRTixLQUFLTixRQUFRLENBQ3hCYSxPQUFPLENBQUMsb0JBQW9CLElBQzVCQSxPQUFPLENBQUMsV0FBVyxJQUNuQkMsS0FBSyxDQUFDO1FBRVQsTUFBTUMsVUFBVUgsS0FBSyxDQUFDLEVBQUU7UUFDeEJOLEtBQUtTLE9BQU8sR0FBR0E7UUFDZkwsdUJBQ0VFLEtBQUssQ0FBQyxFQUFFLEtBQUssVUFBVyxNQUFHQSxNQUFNSSxLQUFLLENBQUMsR0FBR0MsSUFBSSxDQUFDLE9BQVM7UUFFMUQsc0RBQXNEO1FBQ3RELGtEQUFrRDtRQUNsRCxJQUFJaEIsUUFBUWlCLFNBQVMsS0FBSyxNQUFNO1lBQzlCWixLQUFLTixRQUFRLEdBQUdVO1FBQ2xCO0lBQ0Y7SUFFQSw0RUFBNEU7SUFDNUUseUJBQXlCO0lBQ3pCLElBQUlQLE1BQU07UUFDUixJQUFJZ0IsU0FBU2xCLFFBQVFtQixZQUFZLEdBQzdCbkIsUUFBUW1CLFlBQVksQ0FBQ0MsT0FBTyxDQUFDZixLQUFLTixRQUFRLElBQzFDc0IsQ0FBQUEsR0FBQUEscUJBQUFBLG1CQUFBQSxFQUFvQmhCLEtBQUtOLFFBQVEsRUFBRUcsS0FBS29CLE9BQU87UUFFbkRqQixLQUFLa0IsTUFBTSxHQUFHTCxPQUFPTSxjQUFjO1lBQ25CTjtRQUFoQmIsS0FBS04sUUFBUSxHQUFHbUIsQ0FBQUEsbUJBQUFBLE9BQU9uQixRQUFBQSxLQUFRLE9BQWZtQixtQkFBbUJiLEtBQUtOLFFBQVE7UUFFaEQsSUFBSSxDQUFDbUIsT0FBT00sY0FBYyxJQUFJbkIsS0FBS1MsT0FBTyxFQUFFO1lBQzFDSSxTQUFTbEIsUUFBUW1CLFlBQVksR0FDekJuQixRQUFRbUIsWUFBWSxDQUFDQyxPQUFPLENBQUNYLHdCQUM3QlksQ0FBQUEsR0FBQUEscUJBQUFBLG1CQUFBQSxFQUFvQlosc0JBQXNCUCxLQUFLb0IsT0FBTztZQUUxRCxJQUFJSixPQUFPTSxjQUFjLEVBQUU7Z0JBQ3pCbkIsS0FBS2tCLE1BQU0sR0FBR0wsT0FBT00sY0FBYztZQUNyQztRQUNGO0lBQ0Y7SUFDQSxPQUFPbkI7QUFDVCIsInNvdXJjZXMiOlsiRDpcXHNyY1xcc2hhcmVkXFxsaWJcXHJvdXRlclxcdXRpbHNcXGdldC1uZXh0LXBhdGhuYW1lLWluZm8udHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgbm9ybWFsaXplTG9jYWxlUGF0aCB9IGZyb20gJy4uLy4uL2kxOG4vbm9ybWFsaXplLWxvY2FsZS1wYXRoJ1xuaW1wb3J0IHsgcmVtb3ZlUGF0aFByZWZpeCB9IGZyb20gJy4vcmVtb3ZlLXBhdGgtcHJlZml4J1xuaW1wb3J0IHsgcGF0aEhhc1ByZWZpeCB9IGZyb20gJy4vcGF0aC1oYXMtcHJlZml4J1xuaW1wb3J0IHR5cGUgeyBJMThOUHJvdmlkZXIgfSBmcm9tICcuLi8uLi8uLi8uLi9zZXJ2ZXIvbGliL2kxOG4tcHJvdmlkZXInXG5cbmV4cG9ydCBpbnRlcmZhY2UgTmV4dFBhdGhuYW1lSW5mbyB7XG4gIC8qKlxuICAgKiBUaGUgYmFzZSBwYXRoIGluIGNhc2UgdGhlIHBhdGhuYW1lIGluY2x1ZGVkIGl0LlxuICAgKi9cbiAgYmFzZVBhdGg/OiBzdHJpbmdcbiAgLyoqXG4gICAqIFRoZSBidWlsZElkIGZvciB3aGVuIHRoZSBwYXJzZWQgVVJMIGlzIGEgZGF0YSBVUkwuIFBhcnNpbmcgaXQgY2FuIGJlXG4gICAqIGRpc2FibGVkIHdpdGggdGhlIGBwYXJzZURhdGFgIG9wdGlvbi5cbiAgICovXG4gIGJ1aWxkSWQ/OiBzdHJpbmdcbiAgLyoqXG4gICAqIElmIHRoZXJlIHdhcyBhIGxvY2FsZSBpbiB0aGUgcGF0aG5hbWUsIHRoaXMgd2lsbCBob2xkIGl0cyB2YWx1ZS5cbiAgICovXG4gIGxvY2FsZT86IHN0cmluZ1xuICAvKipcbiAgICogVGhlIHByb2Nlc3NlZCBwYXRobmFtZSB3aXRob3V0IGEgYmFzZSBwYXRoLCBsb2NhbGUsIG9yIGRhdGEgVVJMIGVsZW1lbnRzXG4gICAqIHdoZW4gcGFyc2luZyBpdCBpcyBlbmFibGVkLlxuICAgKi9cbiAgcGF0aG5hbWU6IHN0cmluZ1xuICAvKipcbiAgICogQSBib29sZWFuIHRlbGxpbmcgaWYgdGhlIHBhdGhuYW1lIGhhZCBhIHRyYWlsaW5nU2xhc2guIFRoaXMgY2FuIGJlIG9ubHlcbiAgICogdHJ1ZSBpZiB0cmFpbGluZ1NsYXNoIGlzIGVuYWJsZWQuXG4gICAqL1xuICB0cmFpbGluZ1NsYXNoPzogYm9vbGVhblxufVxuXG5pbnRlcmZhY2UgT3B0aW9ucyB7XG4gIC8qKlxuICAgKiBXaGVuIHBhc3NlZCB0byB0cnVlLCB0aGlzIGZ1bmN0aW9uIHdpbGwgYWxzbyBwYXJzZSBOZXh0anMgZGF0YSBVUkxzLlxuICAgKi9cbiAgcGFyc2VEYXRhPzogYm9vbGVhblxuICAvKipcbiAgICogQSBwYXJ0aWFsIG9mIHRoZSBOZXh0LmpzIGNvbmZpZ3VyYXRpb24gdG8gcGFyc2UgdGhlIFVSTC5cbiAgICovXG4gIG5leHRDb25maWc/OiB7XG4gICAgYmFzZVBhdGg/OiBzdHJpbmdcbiAgICBpMThuPzogeyBsb2NhbGVzPzogcmVhZG9ubHkgc3RyaW5nW10gfSB8IG51bGxcbiAgICB0cmFpbGluZ1NsYXNoPzogYm9vbGVhblxuICB9XG5cbiAgLyoqXG4gICAqIElmIHByb3ZpZGVkLCB0aGlzIG5vcm1hbGl6ZXIgd2lsbCBiZSB1c2VkIHRvIGRldGVjdCB0aGUgbG9jYWxlIGluc3RlYWQgb2ZcbiAgICogdGhlIGRlZmF1bHQgbG9jYWxlIGRldGVjdGlvbi5cbiAgICovXG4gIGkxOG5Qcm92aWRlcj86IEkxOE5Qcm92aWRlclxufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0TmV4dFBhdGhuYW1lSW5mbyhcbiAgcGF0aG5hbWU6IHN0cmluZyxcbiAgb3B0aW9uczogT3B0aW9uc1xuKTogTmV4dFBhdGhuYW1lSW5mbyB7XG4gIGNvbnN0IHsgYmFzZVBhdGgsIGkxOG4sIHRyYWlsaW5nU2xhc2ggfSA9IG9wdGlvbnMubmV4dENvbmZpZyA/PyB7fVxuICBjb25zdCBpbmZvOiBOZXh0UGF0aG5hbWVJbmZvID0ge1xuICAgIHBhdGhuYW1lLFxuICAgIHRyYWlsaW5nU2xhc2g6IHBhdGhuYW1lICE9PSAnLycgPyBwYXRobmFtZS5lbmRzV2l0aCgnLycpIDogdHJhaWxpbmdTbGFzaCxcbiAgfVxuXG4gIGlmIChiYXNlUGF0aCAmJiBwYXRoSGFzUHJlZml4KGluZm8ucGF0aG5hbWUsIGJhc2VQYXRoKSkge1xuICAgIGluZm8ucGF0aG5hbWUgPSByZW1vdmVQYXRoUHJlZml4KGluZm8ucGF0aG5hbWUsIGJhc2VQYXRoKVxuICAgIGluZm8uYmFzZVBhdGggPSBiYXNlUGF0aFxuICB9XG4gIGxldCBwYXRobmFtZU5vRGF0YVByZWZpeCA9IGluZm8ucGF0aG5hbWVcblxuICBpZiAoXG4gICAgaW5mby5wYXRobmFtZS5zdGFydHNXaXRoKCcvX25leHQvZGF0YS8nKSAmJlxuICAgIGluZm8ucGF0aG5hbWUuZW5kc1dpdGgoJy5qc29uJylcbiAgKSB7XG4gICAgY29uc3QgcGF0aHMgPSBpbmZvLnBhdGhuYW1lXG4gICAgICAucmVwbGFjZSgvXlxcL19uZXh0XFwvZGF0YVxcLy8sICcnKVxuICAgICAgLnJlcGxhY2UoL1xcLmpzb24kLywgJycpXG4gICAgICAuc3BsaXQoJy8nKVxuXG4gICAgY29uc3QgYnVpbGRJZCA9IHBhdGhzWzBdXG4gICAgaW5mby5idWlsZElkID0gYnVpbGRJZFxuICAgIHBhdGhuYW1lTm9EYXRhUHJlZml4ID1cbiAgICAgIHBhdGhzWzFdICE9PSAnaW5kZXgnID8gYC8ke3BhdGhzLnNsaWNlKDEpLmpvaW4oJy8nKX1gIDogJy8nXG5cbiAgICAvLyB1cGRhdGUgcGF0aG5hbWUgd2l0aCBub3JtYWxpemVkIGlmIGVuYWJsZWQgYWx0aG91Z2hcbiAgICAvLyB3ZSB1c2Ugbm9ybWFsaXplZCB0byBwb3B1bGF0ZSBsb2NhbGUgaW5mbyBzdGlsbFxuICAgIGlmIChvcHRpb25zLnBhcnNlRGF0YSA9PT0gdHJ1ZSkge1xuICAgICAgaW5mby5wYXRobmFtZSA9IHBhdGhuYW1lTm9EYXRhUHJlZml4XG4gICAgfVxuICB9XG5cbiAgLy8gSWYgcHJvdmlkZWQsIHVzZSB0aGUgbG9jYWxlIHJvdXRlIG5vcm1hbGl6ZXIgdG8gZGV0ZWN0IHRoZSBsb2NhbGUgaW5zdGVhZFxuICAvLyBvZiB0aGUgZnVuY3Rpb24gYmVsb3cuXG4gIGlmIChpMThuKSB7XG4gICAgbGV0IHJlc3VsdCA9IG9wdGlvbnMuaTE4blByb3ZpZGVyXG4gICAgICA/IG9wdGlvbnMuaTE4blByb3ZpZGVyLmFuYWx5emUoaW5mby5wYXRobmFtZSlcbiAgICAgIDogbm9ybWFsaXplTG9jYWxlUGF0aChpbmZvLnBhdGhuYW1lLCBpMThuLmxvY2FsZXMpXG5cbiAgICBpbmZvLmxvY2FsZSA9IHJlc3VsdC5kZXRlY3RlZExvY2FsZVxuICAgIGluZm8ucGF0aG5hbWUgPSByZXN1bHQucGF0aG5hbWUgPz8gaW5mby5wYXRobmFtZVxuXG4gICAgaWYgKCFyZXN1bHQuZGV0ZWN0ZWRMb2NhbGUgJiYgaW5mby5idWlsZElkKSB7XG4gICAgICByZXN1bHQgPSBvcHRpb25zLmkxOG5Qcm92aWRlclxuICAgICAgICA/IG9wdGlvbnMuaTE4blByb3ZpZGVyLmFuYWx5emUocGF0aG5hbWVOb0RhdGFQcmVmaXgpXG4gICAgICAgIDogbm9ybWFsaXplTG9jYWxlUGF0aChwYXRobmFtZU5vRGF0YVByZWZpeCwgaTE4bi5sb2NhbGVzKVxuXG4gICAgICBpZiAocmVzdWx0LmRldGVjdGVkTG9jYWxlKSB7XG4gICAgICAgIGluZm8ubG9jYWxlID0gcmVzdWx0LmRldGVjdGVkTG9jYWxlXG4gICAgICB9XG4gICAgfVxuICB9XG4gIHJldHVybiBpbmZvXG59XG4iXSwibmFtZXMiOlsiZ2V0TmV4dFBhdGhuYW1lSW5mbyIsInBhdGhuYW1lIiwib3B0aW9ucyIsImJhc2VQYXRoIiwiaTE4biIsInRyYWlsaW5nU2xhc2giLCJuZXh0Q29uZmlnIiwiaW5mbyIsImVuZHNXaXRoIiwicGF0aEhhc1ByZWZpeCIsInJlbW92ZVBhdGhQcmVmaXgiLCJwYXRobmFtZU5vRGF0YVByZWZpeCIsInN0YXJ0c1dpdGgiLCJwYXRocyIsInJlcGxhY2UiLCJzcGxpdCIsImJ1aWxkSWQiLCJzbGljZSIsImpvaW4iLCJwYXJzZURhdGEiLCJyZXN1bHQiLCJpMThuUHJvdmlkZXIiLCJhbmFseXplIiwibm9ybWFsaXplTG9jYWxlUGF0aCIsImxvY2FsZXMiLCJsb2NhbGUiLCJkZXRlY3RlZExvY2FsZSJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(pages-dir-browser)/./node_modules/next/dist/shared/lib/router/utils/get-next-pathname-info.js\n")); - -/***/ }), - -/***/ "(pages-dir-browser)/./node_modules/next/dist/shared/lib/router/utils/html-bots.js": -/*!*********************************************************************!*\ - !*** ./node_modules/next/dist/shared/lib/router/utils/html-bots.js ***! - \*********************************************************************/ -/***/ ((module, exports, __webpack_require__) => { - -"use strict"; -eval(__webpack_require__.ts("// This regex contains the bots that we need to do a blocking render for and can't safely stream the response\n// due to how they parse the DOM. For example, they might explicitly check for metadata in the `head` tag, so we can't stream metadata tags after the `head` was sent.\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"HTML_LIMITED_BOT_UA_RE\", ({\n enumerable: true,\n get: function() {\n return HTML_LIMITED_BOT_UA_RE;\n }\n}));\nconst HTML_LIMITED_BOT_UA_RE = /Mediapartners-Google|Chrome-Lighthouse|Slurp|DuckDuckBot|baiduspider|yandex|sogou|bitlybot|tumblr|vkShare|quora link preview|redditbot|ia_archiver|Bingbot|BingPreview|applebot|facebookexternalhit|facebookcatalog|Twitterbot|LinkedInBot|Slackbot|Discordbot|WhatsApp|SkypeUriPreview|Yeti/i; //# sourceMappingURL=html-bots.js.map\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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3Qvc2hhcmVkL2xpYi9yb3V0ZXIvdXRpbHMvaHRtbC1ib3RzLmpzIiwibWFwcGluZ3MiOiJBQUFBLDZHQUE2RztBQUM3RyxzS0FBc0s7Ozs7OzBEQUN6SkE7OztlQUFBQTs7O0FBQU4sTUFBTUEseUJBQ1giLCJzb3VyY2VzIjpbIkQ6XFxzcmNcXHNoYXJlZFxcbGliXFxyb3V0ZXJcXHV0aWxzXFxodG1sLWJvdHMudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLy8gVGhpcyByZWdleCBjb250YWlucyB0aGUgYm90cyB0aGF0IHdlIG5lZWQgdG8gZG8gYSBibG9ja2luZyByZW5kZXIgZm9yIGFuZCBjYW4ndCBzYWZlbHkgc3RyZWFtIHRoZSByZXNwb25zZVxuLy8gZHVlIHRvIGhvdyB0aGV5IHBhcnNlIHRoZSBET00uIEZvciBleGFtcGxlLCB0aGV5IG1pZ2h0IGV4cGxpY2l0bHkgY2hlY2sgZm9yIG1ldGFkYXRhIGluIHRoZSBgaGVhZGAgdGFnLCBzbyB3ZSBjYW4ndCBzdHJlYW0gbWV0YWRhdGEgdGFncyBhZnRlciB0aGUgYGhlYWRgIHdhcyBzZW50LlxuZXhwb3J0IGNvbnN0IEhUTUxfTElNSVRFRF9CT1RfVUFfUkUgPVxuICAvTWVkaWFwYXJ0bmVycy1Hb29nbGV8Q2hyb21lLUxpZ2h0aG91c2V8U2x1cnB8RHVja0R1Y2tCb3R8YmFpZHVzcGlkZXJ8eWFuZGV4fHNvZ291fGJpdGx5Ym90fHR1bWJscnx2a1NoYXJlfHF1b3JhIGxpbmsgcHJldmlld3xyZWRkaXRib3R8aWFfYXJjaGl2ZXJ8QmluZ2JvdHxCaW5nUHJldmlld3xhcHBsZWJvdHxmYWNlYm9va2V4dGVybmFsaGl0fGZhY2Vib29rY2F0YWxvZ3xUd2l0dGVyYm90fExpbmtlZEluQm90fFNsYWNrYm90fERpc2NvcmRib3R8V2hhdHNBcHB8U2t5cGVVcmlQcmV2aWV3fFlldGkvaVxuIl0sIm5hbWVzIjpbIkhUTUxfTElNSVRFRF9CT1RfVUFfUkUiXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(pages-dir-browser)/./node_modules/next/dist/shared/lib/router/utils/html-bots.js\n")); - -/***/ }), - -/***/ "(pages-dir-browser)/./node_modules/next/dist/shared/lib/router/utils/index.js": -/*!*****************************************************************!*\ - !*** ./node_modules/next/dist/shared/lib/router/utils/index.js ***! - \*****************************************************************/ -/***/ ((module, exports, __webpack_require__) => { - -"use strict"; -eval(__webpack_require__.ts("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n getSortedRouteObjects: function() {\n return _sortedroutes.getSortedRouteObjects;\n },\n getSortedRoutes: function() {\n return _sortedroutes.getSortedRoutes;\n },\n isDynamicRoute: function() {\n return _isdynamic.isDynamicRoute;\n }\n});\nconst _sortedroutes = __webpack_require__(/*! ./sorted-routes */ \"(pages-dir-browser)/./node_modules/next/dist/shared/lib/router/utils/sorted-routes.js\");\nconst _isdynamic = __webpack_require__(/*! ./is-dynamic */ \"(pages-dir-browser)/./node_modules/next/dist/shared/lib/router/utils/is-dynamic.js\"); //# sourceMappingURL=index.js.map\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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3Qvc2hhcmVkL2xpYi9yb3V0ZXIvdXRpbHMvaW5kZXguanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7O0lBQTBCQSxxQkFBcUI7ZUFBckJBLGNBQUFBLHFCQUFxQjs7SUFBdENDLGVBQWU7ZUFBZkEsY0FBQUEsZUFBZTs7SUFDZkMsY0FBYztlQUFkQSxXQUFBQSxjQUFjOzs7MENBRGdDO3VDQUN4QiIsInNvdXJjZXMiOlsiRDpcXHNyY1xcc2hhcmVkXFxsaWJcXHJvdXRlclxcdXRpbHNcXGluZGV4LnRzIl0sInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCB7IGdldFNvcnRlZFJvdXRlcywgZ2V0U29ydGVkUm91dGVPYmplY3RzIH0gZnJvbSAnLi9zb3J0ZWQtcm91dGVzJ1xuZXhwb3J0IHsgaXNEeW5hbWljUm91dGUgfSBmcm9tICcuL2lzLWR5bmFtaWMnXG4iXSwibmFtZXMiOlsiZ2V0U29ydGVkUm91dGVPYmplY3RzIiwiZ2V0U29ydGVkUm91dGVzIiwiaXNEeW5hbWljUm91dGUiXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(pages-dir-browser)/./node_modules/next/dist/shared/lib/router/utils/index.js\n")); - -/***/ }), - -/***/ "(pages-dir-browser)/./node_modules/next/dist/shared/lib/router/utils/interception-routes.js": -/*!*******************************************************************************!*\ - !*** ./node_modules/next/dist/shared/lib/router/utils/interception-routes.js ***! - \*******************************************************************************/ -/***/ ((module, exports, __webpack_require__) => { - -"use strict"; -eval(__webpack_require__.ts("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n INTERCEPTION_ROUTE_MARKERS: function() {\n return INTERCEPTION_ROUTE_MARKERS;\n },\n extractInterceptionRouteInformation: function() {\n return extractInterceptionRouteInformation;\n },\n isInterceptionRouteAppPath: function() {\n return isInterceptionRouteAppPath;\n }\n});\nconst _apppaths = __webpack_require__(/*! ./app-paths */ \"(pages-dir-browser)/./node_modules/next/dist/shared/lib/router/utils/app-paths.js\");\nconst INTERCEPTION_ROUTE_MARKERS = [\n '(..)(..)',\n '(.)',\n '(..)',\n '(...)'\n];\nfunction isInterceptionRouteAppPath(path) {\n // TODO-APP: add more serious validation\n return path.split('/').find((segment)=>INTERCEPTION_ROUTE_MARKERS.find((m)=>segment.startsWith(m))) !== undefined;\n}\nfunction extractInterceptionRouteInformation(path) {\n let interceptingRoute, marker, interceptedRoute;\n for (const segment of path.split('/')){\n marker = INTERCEPTION_ROUTE_MARKERS.find((m)=>segment.startsWith(m));\n if (marker) {\n ;\n [interceptingRoute, interceptedRoute] = path.split(marker, 2);\n break;\n }\n }\n if (!interceptingRoute || !marker || !interceptedRoute) {\n throw Object.defineProperty(new Error(\"Invalid interception route: \" + path + \". Must be in the format /<intercepting route>/(..|...|..)(..)/<intercepted route>\"), \"__NEXT_ERROR_CODE\", {\n value: \"E269\",\n enumerable: false,\n configurable: true\n });\n }\n interceptingRoute = (0, _apppaths.normalizeAppPath)(interceptingRoute) // normalize the path, e.g. /(blog)/feed -> /feed\n ;\n switch(marker){\n case '(.)':\n // (.) indicates that we should match with sibling routes, so we just need to append the intercepted route to the intercepting route\n if (interceptingRoute === '/') {\n interceptedRoute = \"/\" + interceptedRoute;\n } else {\n interceptedRoute = interceptingRoute + '/' + interceptedRoute;\n }\n break;\n case '(..)':\n // (..) indicates that we should match at one level up, so we need to remove the last segment of the intercepting route\n if (interceptingRoute === '/') {\n throw Object.defineProperty(new Error(\"Invalid interception route: \" + path + \". Cannot use (..) marker at the root level, use (.) instead.\"), \"__NEXT_ERROR_CODE\", {\n value: \"E207\",\n enumerable: false,\n configurable: true\n });\n }\n interceptedRoute = interceptingRoute.split('/').slice(0, -1).concat(interceptedRoute).join('/');\n break;\n case '(...)':\n // (...) will match the route segment in the root directory, so we need to use the root directory to prepend the intercepted route\n interceptedRoute = '/' + interceptedRoute;\n break;\n case '(..)(..)':\n // (..)(..) indicates that we should match at two levels up, so we need to remove the last two segments of the intercepting route\n const splitInterceptingRoute = interceptingRoute.split('/');\n if (splitInterceptingRoute.length <= 2) {\n throw Object.defineProperty(new Error(\"Invalid interception route: \" + path + \". Cannot use (..)(..) marker at the root level or one level up.\"), \"__NEXT_ERROR_CODE\", {\n value: \"E486\",\n enumerable: false,\n configurable: true\n });\n }\n interceptedRoute = splitInterceptingRoute.slice(0, -2).concat(interceptedRoute).join('/');\n break;\n default:\n throw Object.defineProperty(new Error('Invariant: unexpected marker'), \"__NEXT_ERROR_CODE\", {\n value: \"E112\",\n enumerable: false,\n configurable: true\n });\n }\n return {\n interceptingRoute,\n interceptedRoute\n };\n} //# sourceMappingURL=interception-routes.js.map\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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3Qvc2hhcmVkL2xpYi9yb3V0ZXIvdXRpbHMvaW50ZXJjZXB0aW9uLXJvdXRlcy5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7SUFHYUEsMEJBQTBCO2VBQTFCQTs7SUFrQkdDLG1DQUFtQztlQUFuQ0E7O0lBWEFDLDBCQUEwQjtlQUExQkE7OztzQ0FWaUI7QUFHMUIsTUFBTUYsNkJBQTZCO0lBQ3hDO0lBQ0E7SUFDQTtJQUNBO0NBQ0Q7QUFFTSxTQUFTRSwyQkFBMkJDLElBQVk7SUFDckQsd0NBQXdDO0lBQ3hDLE9BQ0VBLEtBQ0dDLEtBQUssQ0FBQyxLQUNOQyxJQUFJLENBQUMsQ0FBQ0MsVUFDTE4sMkJBQTJCSyxJQUFJLENBQUMsQ0FBQ0UsSUFBTUQsUUFBUUUsVUFBVSxDQUFDRCxTQUN0REU7QUFFWjtBQUVPLFNBQVNSLG9DQUFvQ0UsSUFBWTtJQUM5RCxJQUFJTyxtQkFDRkMsUUFDQUM7SUFFRixLQUFLLE1BQU1OLFdBQVdILEtBQUtDLEtBQUssQ0FBQyxLQUFNO1FBQ3JDTyxTQUFTWCwyQkFBMkJLLElBQUksQ0FBQyxDQUFDRSxJQUFNRCxRQUFRRSxVQUFVLENBQUNEO1FBQ25FLElBQUlJLFFBQVE7O1lBQ1QsQ0FBQ0QsbUJBQW1CRSxpQkFBaUIsR0FBR1QsS0FBS0MsS0FBSyxDQUFDTyxRQUFRO1lBQzVEO1FBQ0Y7SUFDRjtJQUVBLElBQUksQ0FBQ0QscUJBQXFCLENBQUNDLFVBQVUsQ0FBQ0Msa0JBQWtCO1FBQ3RELE1BQU0scUJBRUwsQ0FGSyxJQUFJQyxNQUNQLGlDQUE4QlYsT0FBSyxzRkFEaEM7bUJBQUE7d0JBQUE7MEJBQUE7UUFFTjtJQUNGO0lBRUFPLG9CQUFvQkksQ0FBQUEsR0FBQUEsVUFBQUEsZ0JBQUFBLEVBQWlCSixtQkFBbUIsaURBQWlEOztJQUV6RyxPQUFRQztRQUNOLEtBQUs7WUFDSCxvSUFBb0k7WUFDcEksSUFBSUQsc0JBQXNCLEtBQUs7Z0JBQzdCRSxtQkFBb0IsTUFBR0E7WUFDekIsT0FBTztnQkFDTEEsbUJBQW1CRixvQkFBb0IsTUFBTUU7WUFDL0M7WUFDQTtRQUNGLEtBQUs7WUFDSCx1SEFBdUg7WUFDdkgsSUFBSUYsc0JBQXNCLEtBQUs7Z0JBQzdCLE1BQU0scUJBRUwsQ0FGSyxJQUFJRyxNQUNQLGlDQUE4QlYsT0FBSyxpRUFEaEM7MkJBQUE7Z0NBQUE7a0NBQUE7Z0JBRU47WUFDRjtZQUNBUyxtQkFBbUJGLGtCQUNoQk4sS0FBSyxDQUFDLEtBQ05XLEtBQUssQ0FBQyxHQUFHLENBQUMsR0FDVkMsTUFBTSxDQUFDSixrQkFDUEssSUFBSSxDQUFDO1lBQ1I7UUFDRixLQUFLO1lBQ0gsa0lBQWtJO1lBQ2xJTCxtQkFBbUIsTUFBTUE7WUFDekI7UUFDRixLQUFLO1lBQ0gsaUlBQWlJO1lBRWpJLE1BQU1NLHlCQUF5QlIsa0JBQWtCTixLQUFLLENBQUM7WUFDdkQsSUFBSWMsdUJBQXVCQyxNQUFNLElBQUksR0FBRztnQkFDdEMsTUFBTSxxQkFFTCxDQUZLLElBQUlOLE1BQ1AsaUNBQThCVixPQUFLLG9FQURoQzsyQkFBQTtnQ0FBQTtrQ0FBQTtnQkFFTjtZQUNGO1lBRUFTLG1CQUFtQk0sdUJBQ2hCSCxLQUFLLENBQUMsR0FBRyxDQUFDLEdBQ1ZDLE1BQU0sQ0FBQ0osa0JBQ1BLLElBQUksQ0FBQztZQUNSO1FBQ0Y7WUFDRSxNQUFNLHFCQUF5QyxDQUF6QyxJQUFJSixNQUFNLGlDQUFWO3VCQUFBOzRCQUFBOzhCQUFBO1lBQXdDO0lBQ2xEO0lBRUEsT0FBTztRQUFFSDtRQUFtQkU7SUFBaUI7QUFDL0MiLCJzb3VyY2VzIjpbIkQ6XFxzcmNcXHNoYXJlZFxcbGliXFxyb3V0ZXJcXHV0aWxzXFxpbnRlcmNlcHRpb24tcm91dGVzLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IG5vcm1hbGl6ZUFwcFBhdGggfSBmcm9tICcuL2FwcC1wYXRocydcblxuLy8gb3JkZXIgbWF0dGVycyBoZXJlLCB0aGUgZmlyc3QgbWF0Y2ggd2lsbCBiZSB1c2VkXG5leHBvcnQgY29uc3QgSU5URVJDRVBUSU9OX1JPVVRFX01BUktFUlMgPSBbXG4gICcoLi4pKC4uKScsXG4gICcoLiknLFxuICAnKC4uKScsXG4gICcoLi4uKScsXG5dIGFzIGNvbnN0XG5cbmV4cG9ydCBmdW5jdGlvbiBpc0ludGVyY2VwdGlvblJvdXRlQXBwUGF0aChwYXRoOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgLy8gVE9ETy1BUFA6IGFkZCBtb3JlIHNlcmlvdXMgdmFsaWRhdGlvblxuICByZXR1cm4gKFxuICAgIHBhdGhcbiAgICAgIC5zcGxpdCgnLycpXG4gICAgICAuZmluZCgoc2VnbWVudCkgPT5cbiAgICAgICAgSU5URVJDRVBUSU9OX1JPVVRFX01BUktFUlMuZmluZCgobSkgPT4gc2VnbWVudC5zdGFydHNXaXRoKG0pKVxuICAgICAgKSAhPT0gdW5kZWZpbmVkXG4gIClcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGV4dHJhY3RJbnRlcmNlcHRpb25Sb3V0ZUluZm9ybWF0aW9uKHBhdGg6IHN0cmluZykge1xuICBsZXQgaW50ZXJjZXB0aW5nUm91dGU6IHN0cmluZyB8IHVuZGVmaW5lZCxcbiAgICBtYXJrZXI6ICh0eXBlb2YgSU5URVJDRVBUSU9OX1JPVVRFX01BUktFUlMpW251bWJlcl0gfCB1bmRlZmluZWQsXG4gICAgaW50ZXJjZXB0ZWRSb3V0ZTogc3RyaW5nIHwgdW5kZWZpbmVkXG5cbiAgZm9yIChjb25zdCBzZWdtZW50IG9mIHBhdGguc3BsaXQoJy8nKSkge1xuICAgIG1hcmtlciA9IElOVEVSQ0VQVElPTl9ST1VURV9NQVJLRVJTLmZpbmQoKG0pID0+IHNlZ21lbnQuc3RhcnRzV2l0aChtKSlcbiAgICBpZiAobWFya2VyKSB7XG4gICAgICA7W2ludGVyY2VwdGluZ1JvdXRlLCBpbnRlcmNlcHRlZFJvdXRlXSA9IHBhdGguc3BsaXQobWFya2VyLCAyKVxuICAgICAgYnJlYWtcbiAgICB9XG4gIH1cblxuICBpZiAoIWludGVyY2VwdGluZ1JvdXRlIHx8ICFtYXJrZXIgfHwgIWludGVyY2VwdGVkUm91dGUpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICBgSW52YWxpZCBpbnRlcmNlcHRpb24gcm91dGU6ICR7cGF0aH0uIE11c3QgYmUgaW4gdGhlIGZvcm1hdCAvPGludGVyY2VwdGluZyByb3V0ZT4vKC4ufC4uLnwuLikoLi4pLzxpbnRlcmNlcHRlZCByb3V0ZT5gXG4gICAgKVxuICB9XG5cbiAgaW50ZXJjZXB0aW5nUm91dGUgPSBub3JtYWxpemVBcHBQYXRoKGludGVyY2VwdGluZ1JvdXRlKSAvLyBub3JtYWxpemUgdGhlIHBhdGgsIGUuZy4gLyhibG9nKS9mZWVkIC0+IC9mZWVkXG5cbiAgc3dpdGNoIChtYXJrZXIpIHtcbiAgICBjYXNlICcoLiknOlxuICAgICAgLy8gKC4pIGluZGljYXRlcyB0aGF0IHdlIHNob3VsZCBtYXRjaCB3aXRoIHNpYmxpbmcgcm91dGVzLCBzbyB3ZSBqdXN0IG5lZWQgdG8gYXBwZW5kIHRoZSBpbnRlcmNlcHRlZCByb3V0ZSB0byB0aGUgaW50ZXJjZXB0aW5nIHJvdXRlXG4gICAgICBpZiAoaW50ZXJjZXB0aW5nUm91dGUgPT09ICcvJykge1xuICAgICAgICBpbnRlcmNlcHRlZFJvdXRlID0gYC8ke2ludGVyY2VwdGVkUm91dGV9YFxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgaW50ZXJjZXB0ZWRSb3V0ZSA9IGludGVyY2VwdGluZ1JvdXRlICsgJy8nICsgaW50ZXJjZXB0ZWRSb3V0ZVxuICAgICAgfVxuICAgICAgYnJlYWtcbiAgICBjYXNlICcoLi4pJzpcbiAgICAgIC8vICguLikgaW5kaWNhdGVzIHRoYXQgd2Ugc2hvdWxkIG1hdGNoIGF0IG9uZSBsZXZlbCB1cCwgc28gd2UgbmVlZCB0byByZW1vdmUgdGhlIGxhc3Qgc2VnbWVudCBvZiB0aGUgaW50ZXJjZXB0aW5nIHJvdXRlXG4gICAgICBpZiAoaW50ZXJjZXB0aW5nUm91dGUgPT09ICcvJykge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgICAgYEludmFsaWQgaW50ZXJjZXB0aW9uIHJvdXRlOiAke3BhdGh9LiBDYW5ub3QgdXNlICguLikgbWFya2VyIGF0IHRoZSByb290IGxldmVsLCB1c2UgKC4pIGluc3RlYWQuYFxuICAgICAgICApXG4gICAgICB9XG4gICAgICBpbnRlcmNlcHRlZFJvdXRlID0gaW50ZXJjZXB0aW5nUm91dGVcbiAgICAgICAgLnNwbGl0KCcvJylcbiAgICAgICAgLnNsaWNlKDAsIC0xKVxuICAgICAgICAuY29uY2F0KGludGVyY2VwdGVkUm91dGUpXG4gICAgICAgIC5qb2luKCcvJylcbiAgICAgIGJyZWFrXG4gICAgY2FzZSAnKC4uLiknOlxuICAgICAgLy8gKC4uLikgd2lsbCBtYXRjaCB0aGUgcm91dGUgc2VnbWVudCBpbiB0aGUgcm9vdCBkaXJlY3RvcnksIHNvIHdlIG5lZWQgdG8gdXNlIHRoZSByb290IGRpcmVjdG9yeSB0byBwcmVwZW5kIHRoZSBpbnRlcmNlcHRlZCByb3V0ZVxuICAgICAgaW50ZXJjZXB0ZWRSb3V0ZSA9ICcvJyArIGludGVyY2VwdGVkUm91dGVcbiAgICAgIGJyZWFrXG4gICAgY2FzZSAnKC4uKSguLiknOlxuICAgICAgLy8gKC4uKSguLikgaW5kaWNhdGVzIHRoYXQgd2Ugc2hvdWxkIG1hdGNoIGF0IHR3byBsZXZlbHMgdXAsIHNvIHdlIG5lZWQgdG8gcmVtb3ZlIHRoZSBsYXN0IHR3byBzZWdtZW50cyBvZiB0aGUgaW50ZXJjZXB0aW5nIHJvdXRlXG5cbiAgICAgIGNvbnN0IHNwbGl0SW50ZXJjZXB0aW5nUm91dGUgPSBpbnRlcmNlcHRpbmdSb3V0ZS5zcGxpdCgnLycpXG4gICAgICBpZiAoc3BsaXRJbnRlcmNlcHRpbmdSb3V0ZS5sZW5ndGggPD0gMikge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgICAgYEludmFsaWQgaW50ZXJjZXB0aW9uIHJvdXRlOiAke3BhdGh9LiBDYW5ub3QgdXNlICguLikoLi4pIG1hcmtlciBhdCB0aGUgcm9vdCBsZXZlbCBvciBvbmUgbGV2ZWwgdXAuYFxuICAgICAgICApXG4gICAgICB9XG5cbiAgICAgIGludGVyY2VwdGVkUm91dGUgPSBzcGxpdEludGVyY2VwdGluZ1JvdXRlXG4gICAgICAgIC5zbGljZSgwLCAtMilcbiAgICAgICAgLmNvbmNhdChpbnRlcmNlcHRlZFJvdXRlKVxuICAgICAgICAuam9pbignLycpXG4gICAgICBicmVha1xuICAgIGRlZmF1bHQ6XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ0ludmFyaWFudDogdW5leHBlY3RlZCBtYXJrZXInKVxuICB9XG5cbiAgcmV0dXJuIHsgaW50ZXJjZXB0aW5nUm91dGUsIGludGVyY2VwdGVkUm91dGUgfVxufVxuIl0sIm5hbWVzIjpbIklOVEVSQ0VQVElPTl9ST1VURV9NQVJLRVJTIiwiZXh0cmFjdEludGVyY2VwdGlvblJvdXRlSW5mb3JtYXRpb24iLCJpc0ludGVyY2VwdGlvblJvdXRlQXBwUGF0aCIsInBhdGgiLCJzcGxpdCIsImZpbmQiLCJzZWdtZW50IiwibSIsInN0YXJ0c1dpdGgiLCJ1bmRlZmluZWQiLCJpbnRlcmNlcHRpbmdSb3V0ZSIsIm1hcmtlciIsImludGVyY2VwdGVkUm91dGUiLCJFcnJvciIsIm5vcm1hbGl6ZUFwcFBhdGgiLCJzbGljZSIsImNvbmNhdCIsImpvaW4iLCJzcGxpdEludGVyY2VwdGluZ1JvdXRlIiwibGVuZ3RoIl0sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(pages-dir-browser)/./node_modules/next/dist/shared/lib/router/utils/interception-routes.js\n")); - -/***/ }), - -/***/ "(pages-dir-browser)/./node_modules/next/dist/shared/lib/router/utils/interpolate-as.js": -/*!**************************************************************************!*\ - !*** ./node_modules/next/dist/shared/lib/router/utils/interpolate-as.js ***! - \**************************************************************************/ -/***/ ((module, exports, __webpack_require__) => { - -"use strict"; -eval(__webpack_require__.ts("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"interpolateAs\", ({\n enumerable: true,\n get: function() {\n return interpolateAs;\n }\n}));\nconst _routematcher = __webpack_require__(/*! ./route-matcher */ \"(pages-dir-browser)/./node_modules/next/dist/shared/lib/router/utils/route-matcher.js\");\nconst _routeregex = __webpack_require__(/*! ./route-regex */ \"(pages-dir-browser)/./node_modules/next/dist/shared/lib/router/utils/route-regex.js\");\nfunction interpolateAs(route, asPathname, query) {\n let interpolatedRoute = '';\n const dynamicRegex = (0, _routeregex.getRouteRegex)(route);\n const dynamicGroups = dynamicRegex.groups;\n const dynamicMatches = (asPathname !== route ? (0, _routematcher.getRouteMatcher)(dynamicRegex)(asPathname) : '') || // Fall back to reading the values from the href\n // TODO: should this take priority; also need to change in the router.\n query;\n interpolatedRoute = route;\n const params = Object.keys(dynamicGroups);\n if (!params.every((param)=>{\n let value = dynamicMatches[param] || '';\n const { repeat, optional } = dynamicGroups[param];\n // support single-level catch-all\n // TODO: more robust handling for user-error (passing `/`)\n let replaced = \"[\" + (repeat ? '...' : '') + param + \"]\";\n if (optional) {\n replaced = (!value ? '/' : '') + \"[\" + replaced + \"]\";\n }\n if (repeat && !Array.isArray(value)) value = [\n value\n ];\n return (optional || param in dynamicMatches) && // Interpolate group into data URL if present\n (interpolatedRoute = interpolatedRoute.replace(replaced, repeat ? value.map(// path delimiter escaped since they are being inserted\n // into the URL and we expect URL encoded segments\n // when parsing dynamic route params\n (segment)=>encodeURIComponent(segment)).join('/') : encodeURIComponent(value)) || '/');\n })) {\n interpolatedRoute = '' // did not satisfy all requirements\n ;\n // n.b. We ignore this error because we handle warning for this case in\n // development in the `<Link>` component directly.\n }\n return {\n params,\n result: interpolatedRoute\n };\n} //# sourceMappingURL=interpolate-as.js.map\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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3Qvc2hhcmVkL2xpYi9yb3V0ZXIvdXRpbHMvaW50ZXJwb2xhdGUtYXMuanMiLCJtYXBwaW5ncyI6Ijs7OztpREFLZ0JBOzs7ZUFBQUE7OzswQ0FIZ0I7d0NBQ0Y7QUFFdkIsU0FBU0EsY0FDZEMsS0FBYSxFQUNiQyxVQUFrQixFQUNsQkMsS0FBcUI7SUFFckIsSUFBSUMsb0JBQW9CO0lBRXhCLE1BQU1DLGVBQWVDLENBQUFBLEdBQUFBLFlBQUFBLGFBQUFBLEVBQWNMO0lBQ25DLE1BQU1NLGdCQUFnQkYsYUFBYUcsTUFBTTtJQUN6QyxNQUFNQyxpQkFFSixDQUFDUCxlQUFlRCxRQUFRUyxDQUFBQSxHQUFBQSxjQUFBQSxVQUQ0QixLQUM1QkEsRUFBZ0JMLGNBQWNILGNBQWMsR0FBQyxJQUNyRSxnREFBZ0Q7SUFDaEQsc0VBQXNFO0lBQ3RFQztJQUVGQyxvQkFBb0JIO0lBQ3BCLE1BQU1VLFNBQVNDLE9BQU9DLElBQUksQ0FBQ047SUFFM0IsSUFDRSxDQUFDSSxPQUFPRyxLQUFLLENBQUMsQ0FBQ0M7UUFDYixJQUFJQyxRQUFRUCxjQUFjLENBQUNNLE1BQU0sSUFBSTtRQUNyQyxNQUFNLEVBQUVFLE1BQU0sRUFBRUMsUUFBUSxFQUFFLEdBQUdYLGFBQWEsQ0FBQ1EsTUFBTTtRQUVqRCxpQ0FBaUM7UUFDakMsMERBQTBEO1FBQzFELElBQUlJLFdBQVksTUFBR0YsQ0FBQUEsU0FBUyxRQUFRLEdBQUMsR0FBSUYsUUFBTTtRQUMvQyxJQUFJRyxVQUFVO1lBQ1pDLFdBQWMsRUFBQ0gsUUFBUSxNQUFNLEdBQUMsR0FBRSxNQUFHRyxXQUFTO1FBQzlDO1FBQ0EsSUFBSUYsVUFBVSxDQUFDRyxNQUFNQyxPQUFPLENBQUNMLFFBQVFBLFFBQVE7WUFBQ0E7U0FBTTtRQUVwRCxPQUNHRSxDQUFBQSxZQUFZSCxTQUFTTixjQUFBQSxDQUFhLElBQ25DLDZDQUE2QztTQUM1Q0wsb0JBQ0NBLGtCQUFtQmtCLE9BQU8sQ0FDeEJILFVBQ0FGLFNBQ0tELE1BQ0VPLEdBQUcsQ0FDRix1REFBdUQ7UUFFdkQsa0RBQWtEO1FBQ2xELG9DQUFvQztRQUNwQyxDQUFDQyxVQUFZQyxtQkFBbUJELFVBRWpDRSxJQUFJLENBQUMsT0FDUkQsbUJBQW1CVCxXQUNwQixJQUFFO0lBRWIsSUFDQTtRQUNBWixvQkFBb0IsR0FBRyxtQ0FBbUM7O0lBRTFELHVFQUF1RTtJQUN2RSxrREFBa0Q7SUFDcEQ7SUFDQSxPQUFPO1FBQ0xPO1FBQ0FnQixRQUFRdkI7SUFDVjtBQUNGIiwic291cmNlcyI6WyJEOlxcc3JjXFxzaGFyZWRcXGxpYlxccm91dGVyXFx1dGlsc1xcaW50ZXJwb2xhdGUtYXMudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBQYXJzZWRVcmxRdWVyeSB9IGZyb20gJ3F1ZXJ5c3RyaW5nJ1xuXG5pbXBvcnQgeyBnZXRSb3V0ZU1hdGNoZXIgfSBmcm9tICcuL3JvdXRlLW1hdGNoZXInXG5pbXBvcnQgeyBnZXRSb3V0ZVJlZ2V4IH0gZnJvbSAnLi9yb3V0ZS1yZWdleCdcblxuZXhwb3J0IGZ1bmN0aW9uIGludGVycG9sYXRlQXMoXG4gIHJvdXRlOiBzdHJpbmcsXG4gIGFzUGF0aG5hbWU6IHN0cmluZyxcbiAgcXVlcnk6IFBhcnNlZFVybFF1ZXJ5XG4pIHtcbiAgbGV0IGludGVycG9sYXRlZFJvdXRlID0gJydcblxuICBjb25zdCBkeW5hbWljUmVnZXggPSBnZXRSb3V0ZVJlZ2V4KHJvdXRlKVxuICBjb25zdCBkeW5hbWljR3JvdXBzID0gZHluYW1pY1JlZ2V4Lmdyb3Vwc1xuICBjb25zdCBkeW5hbWljTWF0Y2hlcyA9XG4gICAgLy8gVHJ5IHRvIG1hdGNoIHRoZSBkeW5hbWljIHJvdXRlIGFnYWluc3QgdGhlIGFzUGF0aFxuICAgIChhc1BhdGhuYW1lICE9PSByb3V0ZSA/IGdldFJvdXRlTWF0Y2hlcihkeW5hbWljUmVnZXgpKGFzUGF0aG5hbWUpIDogJycpIHx8XG4gICAgLy8gRmFsbCBiYWNrIHRvIHJlYWRpbmcgdGhlIHZhbHVlcyBmcm9tIHRoZSBocmVmXG4gICAgLy8gVE9ETzogc2hvdWxkIHRoaXMgdGFrZSBwcmlvcml0eTsgYWxzbyBuZWVkIHRvIGNoYW5nZSBpbiB0aGUgcm91dGVyLlxuICAgIHF1ZXJ5XG5cbiAgaW50ZXJwb2xhdGVkUm91dGUgPSByb3V0ZVxuICBjb25zdCBwYXJhbXMgPSBPYmplY3Qua2V5cyhkeW5hbWljR3JvdXBzKVxuXG4gIGlmIChcbiAgICAhcGFyYW1zLmV2ZXJ5KChwYXJhbSkgPT4ge1xuICAgICAgbGV0IHZhbHVlID0gZHluYW1pY01hdGNoZXNbcGFyYW1dIHx8ICcnXG4gICAgICBjb25zdCB7IHJlcGVhdCwgb3B0aW9uYWwgfSA9IGR5bmFtaWNHcm91cHNbcGFyYW1dXG5cbiAgICAgIC8vIHN1cHBvcnQgc2luZ2xlLWxldmVsIGNhdGNoLWFsbFxuICAgICAgLy8gVE9ETzogbW9yZSByb2J1c3QgaGFuZGxpbmcgZm9yIHVzZXItZXJyb3IgKHBhc3NpbmcgYC9gKVxuICAgICAgbGV0IHJlcGxhY2VkID0gYFske3JlcGVhdCA/ICcuLi4nIDogJyd9JHtwYXJhbX1dYFxuICAgICAgaWYgKG9wdGlvbmFsKSB7XG4gICAgICAgIHJlcGxhY2VkID0gYCR7IXZhbHVlID8gJy8nIDogJyd9WyR7cmVwbGFjZWR9XWBcbiAgICAgIH1cbiAgICAgIGlmIChyZXBlYXQgJiYgIUFycmF5LmlzQXJyYXkodmFsdWUpKSB2YWx1ZSA9IFt2YWx1ZV1cblxuICAgICAgcmV0dXJuIChcbiAgICAgICAgKG9wdGlvbmFsIHx8IHBhcmFtIGluIGR5bmFtaWNNYXRjaGVzKSAmJlxuICAgICAgICAvLyBJbnRlcnBvbGF0ZSBncm91cCBpbnRvIGRhdGEgVVJMIGlmIHByZXNlbnRcbiAgICAgICAgKGludGVycG9sYXRlZFJvdXRlID1cbiAgICAgICAgICBpbnRlcnBvbGF0ZWRSb3V0ZSEucmVwbGFjZShcbiAgICAgICAgICAgIHJlcGxhY2VkLFxuICAgICAgICAgICAgcmVwZWF0XG4gICAgICAgICAgICAgID8gKHZhbHVlIGFzIHN0cmluZ1tdKVxuICAgICAgICAgICAgICAgICAgLm1hcChcbiAgICAgICAgICAgICAgICAgICAgLy8gdGhlc2UgdmFsdWVzIHNob3VsZCBiZSBmdWxseSBlbmNvZGVkIGluc3RlYWQgb2YganVzdFxuICAgICAgICAgICAgICAgICAgICAvLyBwYXRoIGRlbGltaXRlciBlc2NhcGVkIHNpbmNlIHRoZXkgYXJlIGJlaW5nIGluc2VydGVkXG4gICAgICAgICAgICAgICAgICAgIC8vIGludG8gdGhlIFVSTCBhbmQgd2UgZXhwZWN0IFVSTCBlbmNvZGVkIHNlZ21lbnRzXG4gICAgICAgICAgICAgICAgICAgIC8vIHdoZW4gcGFyc2luZyBkeW5hbWljIHJvdXRlIHBhcmFtc1xuICAgICAgICAgICAgICAgICAgICAoc2VnbWVudCkgPT4gZW5jb2RlVVJJQ29tcG9uZW50KHNlZ21lbnQpXG4gICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgICAuam9pbignLycpXG4gICAgICAgICAgICAgIDogZW5jb2RlVVJJQ29tcG9uZW50KHZhbHVlIGFzIHN0cmluZylcbiAgICAgICAgICApIHx8ICcvJylcbiAgICAgIClcbiAgICB9KVxuICApIHtcbiAgICBpbnRlcnBvbGF0ZWRSb3V0ZSA9ICcnIC8vIGRpZCBub3Qgc2F0aXNmeSBhbGwgcmVxdWlyZW1lbnRzXG5cbiAgICAvLyBuLmIuIFdlIGlnbm9yZSB0aGlzIGVycm9yIGJlY2F1c2Ugd2UgaGFuZGxlIHdhcm5pbmcgZm9yIHRoaXMgY2FzZSBpblxuICAgIC8vIGRldmVsb3BtZW50IGluIHRoZSBgPExpbms+YCBjb21wb25lbnQgZGlyZWN0bHkuXG4gIH1cbiAgcmV0dXJuIHtcbiAgICBwYXJhbXMsXG4gICAgcmVzdWx0OiBpbnRlcnBvbGF0ZWRSb3V0ZSxcbiAgfVxufVxuIl0sIm5hbWVzIjpbImludGVycG9sYXRlQXMiLCJyb3V0ZSIsImFzUGF0aG5hbWUiLCJxdWVyeSIsImludGVycG9sYXRlZFJvdXRlIiwiZHluYW1pY1JlZ2V4IiwiZ2V0Um91dGVSZWdleCIsImR5bmFtaWNHcm91cHMiLCJncm91cHMiLCJkeW5hbWljTWF0Y2hlcyIsImdldFJvdXRlTWF0Y2hlciIsInBhcmFtcyIsIk9iamVjdCIsImtleXMiLCJldmVyeSIsInBhcmFtIiwidmFsdWUiLCJyZXBlYXQiLCJvcHRpb25hbCIsInJlcGxhY2VkIiwiQXJyYXkiLCJpc0FycmF5IiwicmVwbGFjZSIsIm1hcCIsInNlZ21lbnQiLCJlbmNvZGVVUklDb21wb25lbnQiLCJqb2luIiwicmVzdWx0Il0sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(pages-dir-browser)/./node_modules/next/dist/shared/lib/router/utils/interpolate-as.js\n")); - -/***/ }), - -/***/ "(pages-dir-browser)/./node_modules/next/dist/shared/lib/router/utils/is-bot.js": -/*!******************************************************************!*\ - !*** ./node_modules/next/dist/shared/lib/router/utils/is-bot.js ***! - \******************************************************************/ -/***/ ((module, exports, __webpack_require__) => { - -"use strict"; -eval(__webpack_require__.ts("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n HTML_LIMITED_BOT_UA_RE: function() {\n return _htmlbots.HTML_LIMITED_BOT_UA_RE;\n },\n HTML_LIMITED_BOT_UA_RE_STRING: function() {\n return HTML_LIMITED_BOT_UA_RE_STRING;\n },\n getBotType: function() {\n return getBotType;\n },\n isBot: function() {\n return isBot;\n }\n});\nconst _htmlbots = __webpack_require__(/*! ./html-bots */ \"(pages-dir-browser)/./node_modules/next/dist/shared/lib/router/utils/html-bots.js\");\n// Bot crawler that will spin up a headless browser and execute JS.\n// By default, only googlebots are considered as DOM bots. Blow is where the regex is computed from:\n// x-ref: https://developers.google.com/search/docs/crawling-indexing/google-common-crawlers\nconst HEADLESS_BROWSER_BOT_UA_RE = /google/i;\nconst HTML_LIMITED_BOT_UA_RE_STRING = _htmlbots.HTML_LIMITED_BOT_UA_RE.source;\nfunction isDomBotUA(userAgent) {\n return HEADLESS_BROWSER_BOT_UA_RE.test(userAgent);\n}\nfunction isHtmlLimitedBotUA(userAgent) {\n return _htmlbots.HTML_LIMITED_BOT_UA_RE.test(userAgent);\n}\nfunction isBot(userAgent) {\n return isDomBotUA(userAgent) || isHtmlLimitedBotUA(userAgent);\n}\nfunction getBotType(userAgent) {\n if (isDomBotUA(userAgent)) {\n return 'dom';\n }\n if (isHtmlLimitedBotUA(userAgent)) {\n return 'html';\n }\n return undefined;\n} //# sourceMappingURL=is-bot.js.map\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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3Qvc2hhcmVkL2xpYi9yb3V0ZXIvdXRpbHMvaXMtYm90LmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7OztJQVNTQSxzQkFBc0I7ZUFBdEJBLFVBQUFBLHNCQUFzQjs7SUFGbEJDLDZCQUE2QjtlQUE3QkE7O0lBZ0JHQyxVQUFVO2VBQVZBOztJQUpBQyxLQUFLO2VBQUxBOzs7c0NBbkJ1QjtBQUV2QyxtRUFBbUU7QUFDbkUsb0dBQW9HO0FBQ3BHLDRGQUE0RjtBQUM1RixNQUFNQyw2QkFBNkI7QUFFNUIsTUFBTUgsZ0NBQWdDRCxVQUFBQSxzQkFBc0IsQ0FBQ0ssTUFBTTtBQUkxRSxTQUFTQyxXQUFXQyxTQUFpQjtJQUNuQyxPQUFPSCwyQkFBMkJJLElBQUksQ0FBQ0Q7QUFDekM7QUFFQSxTQUFTRSxtQkFBbUJGLFNBQWlCO0lBQzNDLE9BQU9QLFVBQUFBLHNCQUFzQixDQUFDUSxJQUFJLENBQUNEO0FBQ3JDO0FBRU8sU0FBU0osTUFBTUksU0FBaUI7SUFDckMsT0FBT0QsV0FBV0MsY0FBY0UsbUJBQW1CRjtBQUNyRDtBQUVPLFNBQVNMLFdBQVdLLFNBQWlCO0lBQzFDLElBQUlELFdBQVdDLFlBQVk7UUFDekIsT0FBTztJQUNUO0lBQ0EsSUFBSUUsbUJBQW1CRixZQUFZO1FBQ2pDLE9BQU87SUFDVDtJQUNBLE9BQU9HO0FBQ1QiLCJzb3VyY2VzIjpbIkQ6XFxzcmNcXHNoYXJlZFxcbGliXFxyb3V0ZXJcXHV0aWxzXFxpcy1ib3QudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSFRNTF9MSU1JVEVEX0JPVF9VQV9SRSB9IGZyb20gJy4vaHRtbC1ib3RzJ1xuXG4vLyBCb3QgY3Jhd2xlciB0aGF0IHdpbGwgc3BpbiB1cCBhIGhlYWRsZXNzIGJyb3dzZXIgYW5kIGV4ZWN1dGUgSlMuXG4vLyBCeSBkZWZhdWx0LCBvbmx5IGdvb2dsZWJvdHMgYXJlIGNvbnNpZGVyZWQgYXMgRE9NIGJvdHMuIEJsb3cgaXMgd2hlcmUgdGhlIHJlZ2V4IGlzIGNvbXB1dGVkIGZyb206XG4vLyB4LXJlZjogaHR0cHM6Ly9kZXZlbG9wZXJzLmdvb2dsZS5jb20vc2VhcmNoL2RvY3MvY3Jhd2xpbmctaW5kZXhpbmcvZ29vZ2xlLWNvbW1vbi1jcmF3bGVyc1xuY29uc3QgSEVBRExFU1NfQlJPV1NFUl9CT1RfVUFfUkUgPSAvZ29vZ2xlL2lcblxuZXhwb3J0IGNvbnN0IEhUTUxfTElNSVRFRF9CT1RfVUFfUkVfU1RSSU5HID0gSFRNTF9MSU1JVEVEX0JPVF9VQV9SRS5zb3VyY2VcblxuZXhwb3J0IHsgSFRNTF9MSU1JVEVEX0JPVF9VQV9SRSB9XG5cbmZ1bmN0aW9uIGlzRG9tQm90VUEodXNlckFnZW50OiBzdHJpbmcpIHtcbiAgcmV0dXJuIEhFQURMRVNTX0JST1dTRVJfQk9UX1VBX1JFLnRlc3QodXNlckFnZW50KVxufVxuXG5mdW5jdGlvbiBpc0h0bWxMaW1pdGVkQm90VUEodXNlckFnZW50OiBzdHJpbmcpIHtcbiAgcmV0dXJuIEhUTUxfTElNSVRFRF9CT1RfVUFfUkUudGVzdCh1c2VyQWdlbnQpXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpc0JvdCh1c2VyQWdlbnQ6IHN0cmluZyk6IGJvb2xlYW4ge1xuICByZXR1cm4gaXNEb21Cb3RVQSh1c2VyQWdlbnQpIHx8IGlzSHRtbExpbWl0ZWRCb3RVQSh1c2VyQWdlbnQpXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRCb3RUeXBlKHVzZXJBZ2VudDogc3RyaW5nKTogJ2RvbScgfCAnaHRtbCcgfCB1bmRlZmluZWQge1xuICBpZiAoaXNEb21Cb3RVQSh1c2VyQWdlbnQpKSB7XG4gICAgcmV0dXJuICdkb20nXG4gIH1cbiAgaWYgKGlzSHRtbExpbWl0ZWRCb3RVQSh1c2VyQWdlbnQpKSB7XG4gICAgcmV0dXJuICdodG1sJ1xuICB9XG4gIHJldHVybiB1bmRlZmluZWRcbn1cbiJdLCJuYW1lcyI6WyJIVE1MX0xJTUlURURfQk9UX1VBX1JFIiwiSFRNTF9MSU1JVEVEX0JPVF9VQV9SRV9TVFJJTkciLCJnZXRCb3RUeXBlIiwiaXNCb3QiLCJIRUFETEVTU19CUk9XU0VSX0JPVF9VQV9SRSIsInNvdXJjZSIsImlzRG9tQm90VUEiLCJ1c2VyQWdlbnQiLCJ0ZXN0IiwiaXNIdG1sTGltaXRlZEJvdFVBIiwidW5kZWZpbmVkIl0sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(pages-dir-browser)/./node_modules/next/dist/shared/lib/router/utils/is-bot.js\n")); - -/***/ }), - -/***/ "(pages-dir-browser)/./node_modules/next/dist/shared/lib/router/utils/is-dynamic.js": -/*!**********************************************************************!*\ - !*** ./node_modules/next/dist/shared/lib/router/utils/is-dynamic.js ***! - \**********************************************************************/ -/***/ ((module, exports, __webpack_require__) => { - -"use strict"; -eval(__webpack_require__.ts("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"isDynamicRoute\", ({\n enumerable: true,\n get: function() {\n return isDynamicRoute;\n }\n}));\nconst _interceptionroutes = __webpack_require__(/*! ./interception-routes */ \"(pages-dir-browser)/./node_modules/next/dist/shared/lib/router/utils/interception-routes.js\");\n// Identify /.*[param].*/ in route string\nconst TEST_ROUTE = /\\/[^/]*\\[[^/]+\\][^/]*(?=\\/|$)/;\n// Identify /[param]/ in route string\nconst TEST_STRICT_ROUTE = /\\/\\[[^/]+\\](?=\\/|$)/;\nfunction isDynamicRoute(route, strict) {\n if (strict === void 0) strict = true;\n if ((0, _interceptionroutes.isInterceptionRouteAppPath)(route)) {\n route = (0, _interceptionroutes.extractInterceptionRouteInformation)(route).interceptedRoute;\n }\n if (strict) {\n return TEST_STRICT_ROUTE.test(route);\n }\n return TEST_ROUTE.test(route);\n} //# sourceMappingURL=is-dynamic.js.map\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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3Qvc2hhcmVkL2xpYi9yb3V0ZXIvdXRpbHMvaXMtZHluYW1pYy5qcyIsIm1hcHBpbmdzIjoiOzs7O2tEQWtCZ0JBOzs7ZUFBQUE7OztnREFmVDtBQUVQLHlDQUF5QztBQUN6QyxNQUFNQyxhQUFhO0FBRW5CLHFDQUFxQztBQUNyQyxNQUFNQyxvQkFBb0I7QUFTbkIsU0FBU0YsZUFBZUcsS0FBYSxFQUFFQyxNQUFzQjtJQUF0QkEsSUFBQUEsV0FBQUEsS0FBQUEsR0FBQUEsU0FBa0I7SUFDOUQsSUFBSUMsQ0FBQUEsR0FBQUEsb0JBQUFBLDBCQUFBQSxFQUEyQkYsUUFBUTtRQUNyQ0EsUUFBUUcsQ0FBQUEsR0FBQUEsb0JBQUFBLG1DQUFBQSxFQUFvQ0gsT0FBT0ksZ0JBQWdCO0lBQ3JFO0lBRUEsSUFBSUgsUUFBUTtRQUNWLE9BQU9GLGtCQUFrQk0sSUFBSSxDQUFDTDtJQUNoQztJQUVBLE9BQU9GLFdBQVdPLElBQUksQ0FBQ0w7QUFDekIiLCJzb3VyY2VzIjpbIkQ6XFxzcmNcXHNoYXJlZFxcbGliXFxyb3V0ZXJcXHV0aWxzXFxpcy1keW5hbWljLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIGV4dHJhY3RJbnRlcmNlcHRpb25Sb3V0ZUluZm9ybWF0aW9uLFxuICBpc0ludGVyY2VwdGlvblJvdXRlQXBwUGF0aCxcbn0gZnJvbSAnLi9pbnRlcmNlcHRpb24tcm91dGVzJ1xuXG4vLyBJZGVudGlmeSAvLipbcGFyYW1dLiovIGluIHJvdXRlIHN0cmluZ1xuY29uc3QgVEVTVF9ST1VURSA9IC9cXC9bXi9dKlxcW1teL10rXFxdW14vXSooPz1cXC98JCkvXG5cbi8vIElkZW50aWZ5IC9bcGFyYW1dLyBpbiByb3V0ZSBzdHJpbmdcbmNvbnN0IFRFU1RfU1RSSUNUX1JPVVRFID0gL1xcL1xcW1teL10rXFxdKD89XFwvfCQpL1xuXG4vKipcbiAqIENoZWNrIGlmIGEgcm91dGUgaXMgZHluYW1pYy5cbiAqXG4gKiBAcGFyYW0gcm91dGUgLSBUaGUgcm91dGUgdG8gY2hlY2suXG4gKiBAcGFyYW0gc3RyaWN0IC0gV2hldGhlciB0byB1c2Ugc3RyaWN0IG1vZGUgd2hpY2ggcHJvaGliaXRzIHNlZ21lbnRzIHdpdGggcHJlZml4ZXMvc3VmZml4ZXMgKGRlZmF1bHQ6IHRydWUpLlxuICogQHJldHVybnMgV2hldGhlciB0aGUgcm91dGUgaXMgZHluYW1pYy5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzRHluYW1pY1JvdXRlKHJvdXRlOiBzdHJpbmcsIHN0cmljdDogYm9vbGVhbiA9IHRydWUpOiBib29sZWFuIHtcbiAgaWYgKGlzSW50ZXJjZXB0aW9uUm91dGVBcHBQYXRoKHJvdXRlKSkge1xuICAgIHJvdXRlID0gZXh0cmFjdEludGVyY2VwdGlvblJvdXRlSW5mb3JtYXRpb24ocm91dGUpLmludGVyY2VwdGVkUm91dGVcbiAgfVxuXG4gIGlmIChzdHJpY3QpIHtcbiAgICByZXR1cm4gVEVTVF9TVFJJQ1RfUk9VVEUudGVzdChyb3V0ZSlcbiAgfVxuXG4gIHJldHVybiBURVNUX1JPVVRFLnRlc3Qocm91dGUpXG59XG4iXSwibmFtZXMiOlsiaXNEeW5hbWljUm91dGUiLCJURVNUX1JPVVRFIiwiVEVTVF9TVFJJQ1RfUk9VVEUiLCJyb3V0ZSIsInN0cmljdCIsImlzSW50ZXJjZXB0aW9uUm91dGVBcHBQYXRoIiwiZXh0cmFjdEludGVyY2VwdGlvblJvdXRlSW5mb3JtYXRpb24iLCJpbnRlcmNlcHRlZFJvdXRlIiwidGVzdCJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(pages-dir-browser)/./node_modules/next/dist/shared/lib/router/utils/is-dynamic.js\n")); - -/***/ }), - -/***/ "(pages-dir-browser)/./node_modules/next/dist/shared/lib/router/utils/is-local-url.js": -/*!************************************************************************!*\ - !*** ./node_modules/next/dist/shared/lib/router/utils/is-local-url.js ***! - \************************************************************************/ -/***/ ((module, exports, __webpack_require__) => { - -"use strict"; -eval(__webpack_require__.ts("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"isLocalURL\", ({\n enumerable: true,\n get: function() {\n return isLocalURL;\n }\n}));\nconst _utils = __webpack_require__(/*! ../../utils */ \"(pages-dir-browser)/./node_modules/next/dist/shared/lib/utils.js\");\nconst _hasbasepath = __webpack_require__(/*! ../../../../client/has-base-path */ \"(pages-dir-browser)/./node_modules/next/dist/client/has-base-path.js\");\nfunction isLocalURL(url) {\n // prevent a hydration mismatch on href for url with anchor refs\n if (!(0, _utils.isAbsoluteUrl)(url)) return true;\n try {\n // absolute urls can be local if they are on the same origin\n const locationOrigin = (0, _utils.getLocationOrigin)();\n const resolved = new URL(url, locationOrigin);\n return resolved.origin === locationOrigin && (0, _hasbasepath.hasBasePath)(resolved.pathname);\n } catch (_) {\n return false;\n }\n} //# sourceMappingURL=is-local-url.js.map\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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3Qvc2hhcmVkL2xpYi9yb3V0ZXIvdXRpbHMvaXMtbG9jYWwtdXJsLmpzIiwibWFwcGluZ3MiOiI7Ozs7OENBTWdCQTs7O2VBQUFBOzs7bUNBTmlDO3lDQUNyQjtBQUtyQixTQUFTQSxXQUFXQyxHQUFXO0lBQ3BDLGdFQUFnRTtJQUNoRSxJQUFJLENBQUNDLENBQUFBLEdBQUFBLE9BQUFBLGFBQUFBLEVBQWNELE1BQU0sT0FBTztJQUNoQyxJQUFJO1FBQ0YsNERBQTREO1FBQzVELE1BQU1FLGlCQUFpQkMsQ0FBQUEsR0FBQUEsT0FBQUEsaUJBQUFBO1FBQ3ZCLE1BQU1DLFdBQVcsSUFBSUMsSUFBSUwsS0FBS0U7UUFDOUIsT0FBT0UsU0FBU0UsTUFBTSxLQUFLSixrQkFBa0JLLENBQUFBLEdBQUFBLGFBQUFBLFdBQUFBLEVBQVlILFNBQVNJLFFBQVE7SUFDNUUsRUFBRSxPQUFPQyxHQUFHO1FBQ1YsT0FBTztJQUNUO0FBQ0YiLCJzb3VyY2VzIjpbIkQ6XFxzcmNcXHNoYXJlZFxcbGliXFxyb3V0ZXJcXHV0aWxzXFxpcy1sb2NhbC11cmwudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgaXNBYnNvbHV0ZVVybCwgZ2V0TG9jYXRpb25PcmlnaW4gfSBmcm9tICcuLi8uLi91dGlscydcbmltcG9ydCB7IGhhc0Jhc2VQYXRoIH0gZnJvbSAnLi4vLi4vLi4vLi4vY2xpZW50L2hhcy1iYXNlLXBhdGgnXG5cbi8qKlxuICogRGV0ZWN0cyB3aGV0aGVyIGEgZ2l2ZW4gdXJsIGlzIHJvdXRhYmxlIGJ5IHRoZSBOZXh0LmpzIHJvdXRlciAoYnJvd3NlciBvbmx5KS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzTG9jYWxVUkwodXJsOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgLy8gcHJldmVudCBhIGh5ZHJhdGlvbiBtaXNtYXRjaCBvbiBocmVmIGZvciB1cmwgd2l0aCBhbmNob3IgcmVmc1xuICBpZiAoIWlzQWJzb2x1dGVVcmwodXJsKSkgcmV0dXJuIHRydWVcbiAgdHJ5IHtcbiAgICAvLyBhYnNvbHV0ZSB1cmxzIGNhbiBiZSBsb2NhbCBpZiB0aGV5IGFyZSBvbiB0aGUgc2FtZSBvcmlnaW5cbiAgICBjb25zdCBsb2NhdGlvbk9yaWdpbiA9IGdldExvY2F0aW9uT3JpZ2luKClcbiAgICBjb25zdCByZXNvbHZlZCA9IG5ldyBVUkwodXJsLCBsb2NhdGlvbk9yaWdpbilcbiAgICByZXR1cm4gcmVzb2x2ZWQub3JpZ2luID09PSBsb2NhdGlvbk9yaWdpbiAmJiBoYXNCYXNlUGF0aChyZXNvbHZlZC5wYXRobmFtZSlcbiAgfSBjYXRjaCAoXykge1xuICAgIHJldHVybiBmYWxzZVxuICB9XG59XG4iXSwibmFtZXMiOlsiaXNMb2NhbFVSTCIsInVybCIsImlzQWJzb2x1dGVVcmwiLCJsb2NhdGlvbk9yaWdpbiIsImdldExvY2F0aW9uT3JpZ2luIiwicmVzb2x2ZWQiLCJVUkwiLCJvcmlnaW4iLCJoYXNCYXNlUGF0aCIsInBhdGhuYW1lIiwiXyJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(pages-dir-browser)/./node_modules/next/dist/shared/lib/router/utils/is-local-url.js\n")); - -/***/ }), - -/***/ "(pages-dir-browser)/./node_modules/next/dist/shared/lib/router/utils/omit.js": -/*!****************************************************************!*\ - !*** ./node_modules/next/dist/shared/lib/router/utils/omit.js ***! - \****************************************************************/ -/***/ ((module, exports, __webpack_require__) => { - -"use strict"; -eval(__webpack_require__.ts("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"omit\", ({\n enumerable: true,\n get: function() {\n return omit;\n }\n}));\nfunction omit(object, keys) {\n const omitted = {};\n Object.keys(object).forEach((key)=>{\n if (!keys.includes(key)) {\n omitted[key] = object[key];\n }\n });\n return omitted;\n} //# sourceMappingURL=omit.js.map\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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3Qvc2hhcmVkL2xpYi9yb3V0ZXIvdXRpbHMvb21pdC5qcyIsIm1hcHBpbmdzIjoiOzs7O3dDQUFnQkE7OztlQUFBQTs7O0FBQVQsU0FBU0EsS0FDZEMsTUFBUyxFQUNUQyxJQUFTO0lBRVQsTUFBTUMsVUFBc0MsQ0FBQztJQUM3Q0MsT0FBT0YsSUFBSSxDQUFDRCxRQUFRSSxPQUFPLENBQUMsQ0FBQ0M7UUFDM0IsSUFBSSxDQUFDSixLQUFLSyxRQUFRLENBQUNELE1BQVc7WUFDNUJILE9BQU8sQ0FBQ0csSUFBSSxHQUFHTCxNQUFNLENBQUNLLElBQUk7UUFDNUI7SUFDRjtJQUNBLE9BQU9IO0FBQ1QiLCJzb3VyY2VzIjpbIkQ6XFxzcmNcXHNoYXJlZFxcbGliXFxyb3V0ZXJcXHV0aWxzXFxvbWl0LnRzIl0sInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBmdW5jdGlvbiBvbWl0PFQgZXh0ZW5kcyB7IFtrZXk6IHN0cmluZ106IHVua25vd24gfSwgSyBleHRlbmRzIGtleW9mIFQ+KFxuICBvYmplY3Q6IFQsXG4gIGtleXM6IEtbXVxuKTogT21pdDxULCBLPiB7XG4gIGNvbnN0IG9taXR0ZWQ6IHsgW2tleTogc3RyaW5nXTogdW5rbm93biB9ID0ge31cbiAgT2JqZWN0LmtleXMob2JqZWN0KS5mb3JFYWNoKChrZXkpID0+IHtcbiAgICBpZiAoIWtleXMuaW5jbHVkZXMoa2V5IGFzIEspKSB7XG4gICAgICBvbWl0dGVkW2tleV0gPSBvYmplY3Rba2V5XVxuICAgIH1cbiAgfSlcbiAgcmV0dXJuIG9taXR0ZWQgYXMgT21pdDxULCBLPlxufVxuIl0sIm5hbWVzIjpbIm9taXQiLCJvYmplY3QiLCJrZXlzIiwib21pdHRlZCIsIk9iamVjdCIsImZvckVhY2giLCJrZXkiLCJpbmNsdWRlcyJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(pages-dir-browser)/./node_modules/next/dist/shared/lib/router/utils/omit.js\n")); - -/***/ }), - -/***/ "(pages-dir-browser)/./node_modules/next/dist/shared/lib/router/utils/parse-path.js": -/*!**********************************************************************!*\ - !*** ./node_modules/next/dist/shared/lib/router/utils/parse-path.js ***! - \**********************************************************************/ -/***/ ((module, exports, __webpack_require__) => { - -"use strict"; -eval(__webpack_require__.ts("/**\n * Given a path this function will find the pathname, query and hash and return\n * them. This is useful to parse full paths on the client side.\n * @param path A path to parse e.g. /foo/bar?id=1#hash\n */ \nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"parsePath\", ({\n enumerable: true,\n get: function() {\n return parsePath;\n }\n}));\nfunction parsePath(path) {\n const hashIndex = path.indexOf('#');\n const queryIndex = path.indexOf('?');\n const hasQuery = queryIndex > -1 && (hashIndex < 0 || queryIndex < hashIndex);\n if (hasQuery || hashIndex > -1) {\n return {\n pathname: path.substring(0, hasQuery ? queryIndex : hashIndex),\n query: hasQuery ? path.substring(queryIndex, hashIndex > -1 ? hashIndex : undefined) : '',\n hash: hashIndex > -1 ? path.slice(hashIndex) : ''\n };\n }\n return {\n pathname: path,\n query: '',\n hash: ''\n };\n} //# sourceMappingURL=parse-path.js.map\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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3Qvc2hhcmVkL2xpYi9yb3V0ZXIvdXRpbHMvcGFyc2UtcGF0aC5qcyIsIm1hcHBpbmdzIjoiQUFBQTs7OztDQUlDOzs7OzZDQUNlQTs7O2VBQUFBOzs7QUFBVCxTQUFTQSxVQUFVQyxJQUFZO0lBQ3BDLE1BQU1DLFlBQVlELEtBQUtFLE9BQU8sQ0FBQztJQUMvQixNQUFNQyxhQUFhSCxLQUFLRSxPQUFPLENBQUM7SUFDaEMsTUFBTUUsV0FBV0QsYUFBYSxDQUFDLEtBQU1GLENBQUFBLFlBQVksS0FBS0UsYUFBYUYsU0FBQUEsQ0FBUTtJQUUzRSxJQUFJRyxZQUFZSCxZQUFZLENBQUMsR0FBRztRQUM5QixPQUFPO1lBQ0xJLFVBQVVMLEtBQUtNLFNBQVMsQ0FBQyxHQUFHRixXQUFXRCxhQUFhRjtZQUNwRE0sT0FBT0gsV0FDSEosS0FBS00sU0FBUyxDQUFDSCxZQUFZRixZQUFZLENBQUMsSUFBSUEsWUFBWU8sYUFDeEQ7WUFDSkMsTUFBTVIsWUFBWSxDQUFDLElBQUlELEtBQUtVLEtBQUssQ0FBQ1QsYUFBYTtRQUNqRDtJQUNGO0lBRUEsT0FBTztRQUFFSSxVQUFVTDtRQUFNTyxPQUFPO1FBQUlFLE1BQU07SUFBRztBQUMvQyIsInNvdXJjZXMiOlsiRDpcXHNyY1xcc2hhcmVkXFxsaWJcXHJvdXRlclxcdXRpbHNcXHBhcnNlLXBhdGgudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHaXZlbiBhIHBhdGggdGhpcyBmdW5jdGlvbiB3aWxsIGZpbmQgdGhlIHBhdGhuYW1lLCBxdWVyeSBhbmQgaGFzaCBhbmQgcmV0dXJuXG4gKiB0aGVtLiBUaGlzIGlzIHVzZWZ1bCB0byBwYXJzZSBmdWxsIHBhdGhzIG9uIHRoZSBjbGllbnQgc2lkZS5cbiAqIEBwYXJhbSBwYXRoIEEgcGF0aCB0byBwYXJzZSBlLmcuIC9mb28vYmFyP2lkPTEjaGFzaFxuICovXG5leHBvcnQgZnVuY3Rpb24gcGFyc2VQYXRoKHBhdGg6IHN0cmluZykge1xuICBjb25zdCBoYXNoSW5kZXggPSBwYXRoLmluZGV4T2YoJyMnKVxuICBjb25zdCBxdWVyeUluZGV4ID0gcGF0aC5pbmRleE9mKCc/JylcbiAgY29uc3QgaGFzUXVlcnkgPSBxdWVyeUluZGV4ID4gLTEgJiYgKGhhc2hJbmRleCA8IDAgfHwgcXVlcnlJbmRleCA8IGhhc2hJbmRleClcblxuICBpZiAoaGFzUXVlcnkgfHwgaGFzaEluZGV4ID4gLTEpIHtcbiAgICByZXR1cm4ge1xuICAgICAgcGF0aG5hbWU6IHBhdGguc3Vic3RyaW5nKDAsIGhhc1F1ZXJ5ID8gcXVlcnlJbmRleCA6IGhhc2hJbmRleCksXG4gICAgICBxdWVyeTogaGFzUXVlcnlcbiAgICAgICAgPyBwYXRoLnN1YnN0cmluZyhxdWVyeUluZGV4LCBoYXNoSW5kZXggPiAtMSA/IGhhc2hJbmRleCA6IHVuZGVmaW5lZClcbiAgICAgICAgOiAnJyxcbiAgICAgIGhhc2g6IGhhc2hJbmRleCA+IC0xID8gcGF0aC5zbGljZShoYXNoSW5kZXgpIDogJycsXG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHsgcGF0aG5hbWU6IHBhdGgsIHF1ZXJ5OiAnJywgaGFzaDogJycgfVxufVxuIl0sIm5hbWVzIjpbInBhcnNlUGF0aCIsInBhdGgiLCJoYXNoSW5kZXgiLCJpbmRleE9mIiwicXVlcnlJbmRleCIsImhhc1F1ZXJ5IiwicGF0aG5hbWUiLCJzdWJzdHJpbmciLCJxdWVyeSIsInVuZGVmaW5lZCIsImhhc2giLCJzbGljZSJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(pages-dir-browser)/./node_modules/next/dist/shared/lib/router/utils/parse-path.js\n")); - -/***/ }), - -/***/ "(pages-dir-browser)/./node_modules/next/dist/shared/lib/router/utils/parse-relative-url.js": -/*!******************************************************************************!*\ - !*** ./node_modules/next/dist/shared/lib/router/utils/parse-relative-url.js ***! - \******************************************************************************/ -/***/ ((module, exports, __webpack_require__) => { - -"use strict"; -eval(__webpack_require__.ts("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"parseRelativeUrl\", ({\n enumerable: true,\n get: function() {\n return parseRelativeUrl;\n }\n}));\nconst _utils = __webpack_require__(/*! ../../utils */ \"(pages-dir-browser)/./node_modules/next/dist/shared/lib/utils.js\");\nconst _querystring = __webpack_require__(/*! ./querystring */ \"(pages-dir-browser)/./node_modules/next/dist/shared/lib/router/utils/querystring.js\");\nfunction parseRelativeUrl(url, base, parseQuery) {\n if (parseQuery === void 0) parseQuery = true;\n const globalBase = new URL( false ? 0 : (0, _utils.getLocationOrigin)());\n const resolvedBase = base ? new URL(base, globalBase) : url.startsWith('.') ? new URL( false ? 0 : window.location.href) : globalBase;\n const { pathname, searchParams, search, hash, href, origin } = new URL(url, resolvedBase);\n if (origin !== globalBase.origin) {\n throw Object.defineProperty(new Error(\"invariant: invalid relative URL, router received \" + url), \"__NEXT_ERROR_CODE\", {\n value: \"E159\",\n enumerable: false,\n configurable: true\n });\n }\n return {\n pathname,\n query: parseQuery ? (0, _querystring.searchParamsToUrlQuery)(searchParams) : undefined,\n search,\n hash,\n href: href.slice(origin.length),\n // We don't know for relative URLs at this point since we set a custom, internal\n // base that isn't surfaced to users.\n slashes: undefined\n };\n} //# sourceMappingURL=parse-relative-url.js.map\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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3Qvc2hhcmVkL2xpYi9yb3V0ZXIvdXRpbHMvcGFyc2UtcmVsYXRpdmUtdXJsLmpzIiwibWFwcGluZ3MiOiI7Ozs7b0RBNkJnQkE7OztlQUFBQTs7O21DQTVCa0I7eUNBQ0s7QUEyQmhDLFNBQVNBLGlCQUNkQyxHQUFXLEVBQ1hDLElBQWEsRUFDYkMsVUFBaUI7SUFBakJBLElBQUFBLGVBQUFBLEtBQUFBLEdBQUFBLGFBQWE7SUFFYixNQUFNQyxhQUFhLElBQUlDLElBQ3JCLE1BQTZCLEdBQUcsQ0FBVSxHQUFHRSxDQUFBQSxHQUFBQSxPQUFBQSxpQkFBQUE7SUFHL0MsTUFBTUMsZUFBZU4sT0FDakIsSUFBSUcsSUFBSUgsTUFBTUUsY0FDZEgsSUFBSVEsVUFBVSxDQUFDLE9BQ2IsSUFBSUosSUFDRixNQUE2QixHQUFHLENBQVUsR0FBR0MsT0FBT0ksUUFBUSxDQUFDQyxJQUFJLElBRW5FUDtJQUVOLE1BQU0sRUFBRVEsUUFBUSxFQUFFQyxZQUFZLEVBQUVDLE1BQU0sRUFBRUMsSUFBSSxFQUFFSixJQUFJLEVBQUVLLE1BQU0sRUFBRSxHQUFHLElBQUlYLElBQ2pFSixLQUNBTztJQUdGLElBQUlRLFdBQVdaLFdBQVdZLE1BQU0sRUFBRTtRQUNoQyxNQUFNLHFCQUFvRSxDQUFwRSxJQUFJQyxNQUFPLHNEQUFtRGhCLE1BQTlEO21CQUFBO3dCQUFBOzBCQUFBO1FBQW1FO0lBQzNFO0lBRUEsT0FBTztRQUNMVztRQUNBTSxPQUFPZixhQUFhZ0IsQ0FBQUEsR0FBQUEsYUFBQUEsc0JBQUFBLEVBQXVCTixnQkFBZ0JPO1FBQzNETjtRQUNBQztRQUNBSixNQUFNQSxLQUFLVSxLQUFLLENBQUNMLE9BQU9NLE1BQU07UUFDOUIsZ0ZBQWdGO1FBQ2hGLHFDQUFxQztRQUNyQ0MsU0FBU0g7SUFDWDtBQUNGIiwic291cmNlcyI6WyJEOlxcc3JjXFxzaGFyZWRcXGxpYlxccm91dGVyXFx1dGlsc1xccGFyc2UtcmVsYXRpdmUtdXJsLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgUGFyc2VkVXJsUXVlcnkgfSBmcm9tICdxdWVyeXN0cmluZydcbmltcG9ydCB7IGdldExvY2F0aW9uT3JpZ2luIH0gZnJvbSAnLi4vLi4vdXRpbHMnXG5pbXBvcnQgeyBzZWFyY2hQYXJhbXNUb1VybFF1ZXJ5IH0gZnJvbSAnLi9xdWVyeXN0cmluZydcblxuZXhwb3J0IGludGVyZmFjZSBQYXJzZWRSZWxhdGl2ZVVybCB7XG4gIGhhc2g6IHN0cmluZ1xuICBocmVmOiBzdHJpbmdcbiAgcGF0aG5hbWU6IHN0cmluZ1xuICBxdWVyeTogUGFyc2VkVXJsUXVlcnlcbiAgc2VhcmNoOiBzdHJpbmdcbiAgc2xhc2hlczogdW5kZWZpbmVkXG59XG5cbi8qKlxuICogUGFyc2VzIHBhdGgtcmVsYXRpdmUgdXJscyAoZS5nLiBgL2hlbGxvL3dvcmxkP2Zvbz1iYXJgKS4gSWYgdXJsIGlzbid0IHBhdGgtcmVsYXRpdmVcbiAqIChlLmcuIGAuL2hlbGxvYCkgdGhlbiBhdCBsZWFzdCBiYXNlIG11c3QgYmUuXG4gKiBBYnNvbHV0ZSB1cmxzIGFyZSByZWplY3RlZCB3aXRoIG9uZSBleGNlcHRpb24sIGluIHRoZSBicm93c2VyLCBhYnNvbHV0ZSB1cmxzIHRoYXQgYXJlIG9uXG4gKiB0aGUgY3VycmVudCBvcmlnaW4gd2lsbCBiZSBwYXJzZWQgYXMgcmVsYXRpdmVcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHBhcnNlUmVsYXRpdmVVcmwoXG4gIHVybDogc3RyaW5nLFxuICBiYXNlPzogc3RyaW5nLFxuICBwYXJzZVF1ZXJ5PzogdHJ1ZVxuKTogUGFyc2VkUmVsYXRpdmVVcmxcbmV4cG9ydCBmdW5jdGlvbiBwYXJzZVJlbGF0aXZlVXJsKFxuICB1cmw6IHN0cmluZyxcbiAgYmFzZTogc3RyaW5nIHwgdW5kZWZpbmVkLFxuICBwYXJzZVF1ZXJ5OiBmYWxzZVxuKTogT21pdDxQYXJzZWRSZWxhdGl2ZVVybCwgJ3F1ZXJ5Jz5cbmV4cG9ydCBmdW5jdGlvbiBwYXJzZVJlbGF0aXZlVXJsKFxuICB1cmw6IHN0cmluZyxcbiAgYmFzZT86IHN0cmluZyxcbiAgcGFyc2VRdWVyeSA9IHRydWVcbik6IFBhcnNlZFJlbGF0aXZlVXJsIHwgT21pdDxQYXJzZWRSZWxhdGl2ZVVybCwgJ3F1ZXJ5Jz4ge1xuICBjb25zdCBnbG9iYWxCYXNlID0gbmV3IFVSTChcbiAgICB0eXBlb2Ygd2luZG93ID09PSAndW5kZWZpbmVkJyA/ICdodHRwOi8vbicgOiBnZXRMb2NhdGlvbk9yaWdpbigpXG4gIClcblxuICBjb25zdCByZXNvbHZlZEJhc2UgPSBiYXNlXG4gICAgPyBuZXcgVVJMKGJhc2UsIGdsb2JhbEJhc2UpXG4gICAgOiB1cmwuc3RhcnRzV2l0aCgnLicpXG4gICAgICA/IG5ldyBVUkwoXG4gICAgICAgICAgdHlwZW9mIHdpbmRvdyA9PT0gJ3VuZGVmaW5lZCcgPyAnaHR0cDovL24nIDogd2luZG93LmxvY2F0aW9uLmhyZWZcbiAgICAgICAgKVxuICAgICAgOiBnbG9iYWxCYXNlXG5cbiAgY29uc3QgeyBwYXRobmFtZSwgc2VhcmNoUGFyYW1zLCBzZWFyY2gsIGhhc2gsIGhyZWYsIG9yaWdpbiB9ID0gbmV3IFVSTChcbiAgICB1cmwsXG4gICAgcmVzb2x2ZWRCYXNlXG4gIClcblxuICBpZiAob3JpZ2luICE9PSBnbG9iYWxCYXNlLm9yaWdpbikge1xuICAgIHRocm93IG5ldyBFcnJvcihgaW52YXJpYW50OiBpbnZhbGlkIHJlbGF0aXZlIFVSTCwgcm91dGVyIHJlY2VpdmVkICR7dXJsfWApXG4gIH1cblxuICByZXR1cm4ge1xuICAgIHBhdGhuYW1lLFxuICAgIHF1ZXJ5OiBwYXJzZVF1ZXJ5ID8gc2VhcmNoUGFyYW1zVG9VcmxRdWVyeShzZWFyY2hQYXJhbXMpIDogdW5kZWZpbmVkLFxuICAgIHNlYXJjaCxcbiAgICBoYXNoLFxuICAgIGhyZWY6IGhyZWYuc2xpY2Uob3JpZ2luLmxlbmd0aCksXG4gICAgLy8gV2UgZG9uJ3Qga25vdyBmb3IgcmVsYXRpdmUgVVJMcyBhdCB0aGlzIHBvaW50IHNpbmNlIHdlIHNldCBhIGN1c3RvbSwgaW50ZXJuYWxcbiAgICAvLyBiYXNlIHRoYXQgaXNuJ3Qgc3VyZmFjZWQgdG8gdXNlcnMuXG4gICAgc2xhc2hlczogdW5kZWZpbmVkLFxuICB9XG59XG4iXSwibmFtZXMiOlsicGFyc2VSZWxhdGl2ZVVybCIsInVybCIsImJhc2UiLCJwYXJzZVF1ZXJ5IiwiZ2xvYmFsQmFzZSIsIlVSTCIsIndpbmRvdyIsImdldExvY2F0aW9uT3JpZ2luIiwicmVzb2x2ZWRCYXNlIiwic3RhcnRzV2l0aCIsImxvY2F0aW9uIiwiaHJlZiIsInBhdGhuYW1lIiwic2VhcmNoUGFyYW1zIiwic2VhcmNoIiwiaGFzaCIsIm9yaWdpbiIsIkVycm9yIiwicXVlcnkiLCJzZWFyY2hQYXJhbXNUb1VybFF1ZXJ5IiwidW5kZWZpbmVkIiwic2xpY2UiLCJsZW5ndGgiLCJzbGFzaGVzIl0sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(pages-dir-browser)/./node_modules/next/dist/shared/lib/router/utils/parse-relative-url.js\n")); - -/***/ }), - -/***/ "(pages-dir-browser)/./node_modules/next/dist/shared/lib/router/utils/path-has-prefix.js": -/*!***************************************************************************!*\ - !*** ./node_modules/next/dist/shared/lib/router/utils/path-has-prefix.js ***! - \***************************************************************************/ -/***/ ((module, exports, __webpack_require__) => { - -"use strict"; -eval(__webpack_require__.ts("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"pathHasPrefix\", ({\n enumerable: true,\n get: function() {\n return pathHasPrefix;\n }\n}));\nconst _parsepath = __webpack_require__(/*! ./parse-path */ \"(pages-dir-browser)/./node_modules/next/dist/shared/lib/router/utils/parse-path.js\");\nfunction pathHasPrefix(path, prefix) {\n if (typeof path !== 'string') {\n return false;\n }\n const { pathname } = (0, _parsepath.parsePath)(path);\n return pathname === prefix || pathname.startsWith(prefix + '/');\n} //# sourceMappingURL=path-has-prefix.js.map\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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3Qvc2hhcmVkL2xpYi9yb3V0ZXIvdXRpbHMvcGF0aC1oYXMtcHJlZml4LmpzIiwibWFwcGluZ3MiOiI7Ozs7aURBU2dCQTs7O2VBQUFBOzs7dUNBVFU7QUFTbkIsU0FBU0EsY0FBY0MsSUFBWSxFQUFFQyxNQUFjO0lBQ3hELElBQUksT0FBT0QsU0FBUyxVQUFVO1FBQzVCLE9BQU87SUFDVDtJQUVBLE1BQU0sRUFBRUUsUUFBUSxFQUFFLEdBQUdDLENBQUFBLEdBQUFBLFdBQUFBLFNBQUFBLEVBQVVIO0lBQy9CLE9BQU9FLGFBQWFELFVBQVVDLFNBQVNFLFVBQVUsQ0FBQ0gsU0FBUztBQUM3RCIsInNvdXJjZXMiOlsiRDpcXHNyY1xcc2hhcmVkXFxsaWJcXHJvdXRlclxcdXRpbHNcXHBhdGgtaGFzLXByZWZpeC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBwYXJzZVBhdGggfSBmcm9tICcuL3BhcnNlLXBhdGgnXG5cbi8qKlxuICogQ2hlY2tzIGlmIGEgZ2l2ZW4gcGF0aCBzdGFydHMgd2l0aCBhIGdpdmVuIHByZWZpeC4gSXQgZW5zdXJlcyBpdCBtYXRjaGVzXG4gKiBleGFjdGx5IHdpdGhvdXQgY29udGFpbmluZyBleHRyYSBjaGFycy4gZS5nLiBwcmVmaXggL2RvY3Mgc2hvdWxkIHJlcGxhY2VcbiAqIGZvciAvZG9jcywgL2RvY3MvLCAvZG9jcy9hIGJ1dCBub3QgL2RvY3Nzc1xuICogQHBhcmFtIHBhdGggVGhlIHBhdGggdG8gY2hlY2suXG4gKiBAcGFyYW0gcHJlZml4IFRoZSBwcmVmaXggdG8gY2hlY2sgYWdhaW5zdC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHBhdGhIYXNQcmVmaXgocGF0aDogc3RyaW5nLCBwcmVmaXg6IHN0cmluZykge1xuICBpZiAodHlwZW9mIHBhdGggIT09ICdzdHJpbmcnKSB7XG4gICAgcmV0dXJuIGZhbHNlXG4gIH1cblxuICBjb25zdCB7IHBhdGhuYW1lIH0gPSBwYXJzZVBhdGgocGF0aClcbiAgcmV0dXJuIHBhdGhuYW1lID09PSBwcmVmaXggfHwgcGF0aG5hbWUuc3RhcnRzV2l0aChwcmVmaXggKyAnLycpXG59XG4iXSwibmFtZXMiOlsicGF0aEhhc1ByZWZpeCIsInBhdGgiLCJwcmVmaXgiLCJwYXRobmFtZSIsInBhcnNlUGF0aCIsInN0YXJ0c1dpdGgiXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(pages-dir-browser)/./node_modules/next/dist/shared/lib/router/utils/path-has-prefix.js\n")); - -/***/ }), - -/***/ "(pages-dir-browser)/./node_modules/next/dist/shared/lib/router/utils/querystring.js": -/*!***********************************************************************!*\ - !*** ./node_modules/next/dist/shared/lib/router/utils/querystring.js ***! - \***********************************************************************/ -/***/ ((module, exports, __webpack_require__) => { - -"use strict"; -eval(__webpack_require__.ts("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n assign: function() {\n return assign;\n },\n searchParamsToUrlQuery: function() {\n return searchParamsToUrlQuery;\n },\n urlQueryToSearchParams: function() {\n return urlQueryToSearchParams;\n }\n});\nfunction searchParamsToUrlQuery(searchParams) {\n const query = {};\n for (const [key, value] of searchParams.entries()){\n const existing = query[key];\n if (typeof existing === 'undefined') {\n query[key] = value;\n } else if (Array.isArray(existing)) {\n existing.push(value);\n } else {\n query[key] = [\n existing,\n value\n ];\n }\n }\n return query;\n}\nfunction stringifyUrlQueryParam(param) {\n if (typeof param === 'string') {\n return param;\n }\n if (typeof param === 'number' && !isNaN(param) || typeof param === 'boolean') {\n return String(param);\n } else {\n return '';\n }\n}\nfunction urlQueryToSearchParams(query) {\n const searchParams = new URLSearchParams();\n for (const [key, value] of Object.entries(query)){\n if (Array.isArray(value)) {\n for (const item of value){\n searchParams.append(key, stringifyUrlQueryParam(item));\n }\n } else {\n searchParams.set(key, stringifyUrlQueryParam(value));\n }\n }\n return searchParams;\n}\nfunction assign(target) {\n for(var _len = arguments.length, searchParamsList = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++){\n searchParamsList[_key - 1] = arguments[_key];\n }\n for (const searchParams of searchParamsList){\n for (const key of searchParams.keys()){\n target.delete(key);\n }\n for (const [key, value] of searchParams.entries()){\n target.append(key, value);\n }\n }\n return target;\n} //# sourceMappingURL=querystring.js.map\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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3Qvc2hhcmVkL2xpYi9yb3V0ZXIvdXRpbHMvcXVlcnlzdHJpbmcuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7O0lBZ0RnQkEsTUFBTTtlQUFOQTs7SUE5Q0FDLHNCQUFzQjtlQUF0QkE7O0lBZ0NBQyxzQkFBc0I7ZUFBdEJBOzs7QUFoQ1QsU0FBU0QsdUJBQ2RFLFlBQTZCO0lBRTdCLE1BQU1DLFFBQXdCLENBQUM7SUFDL0IsS0FBSyxNQUFNLENBQUNDLEtBQUtDLE1BQU0sSUFBSUgsYUFBYUksT0FBTyxHQUFJO1FBQ2pELE1BQU1DLFdBQVdKLEtBQUssQ0FBQ0MsSUFBSTtRQUMzQixJQUFJLE9BQU9HLGFBQWEsYUFBYTtZQUNuQ0osS0FBSyxDQUFDQyxJQUFJLEdBQUdDO1FBQ2YsT0FBTyxJQUFJRyxNQUFNQyxPQUFPLENBQUNGLFdBQVc7WUFDbENBLFNBQVNHLElBQUksQ0FBQ0w7UUFDaEIsT0FBTztZQUNMRixLQUFLLENBQUNDLElBQUksR0FBRztnQkFBQ0c7Z0JBQVVGO2FBQU07UUFDaEM7SUFDRjtJQUNBLE9BQU9GO0FBQ1Q7QUFFQSxTQUFTUSx1QkFBdUJDLEtBQWM7SUFDNUMsSUFBSSxPQUFPQSxVQUFVLFVBQVU7UUFDN0IsT0FBT0E7SUFDVDtJQUVBLElBQ0csT0FBT0EsVUFBVSxZQUFZLENBQUNDLE1BQU1ELFVBQ3JDLE9BQU9BLFVBQVUsV0FDakI7UUFDQSxPQUFPRSxPQUFPRjtJQUNoQixPQUFPO1FBQ0wsT0FBTztJQUNUO0FBQ0Y7QUFFTyxTQUFTWCx1QkFBdUJFLEtBQXFCO0lBQzFELE1BQU1ELGVBQWUsSUFBSWE7SUFDekIsS0FBSyxNQUFNLENBQUNYLEtBQUtDLE1BQU0sSUFBSVcsT0FBT1YsT0FBTyxDQUFDSCxPQUFRO1FBQ2hELElBQUlLLE1BQU1DLE9BQU8sQ0FBQ0osUUFBUTtZQUN4QixLQUFLLE1BQU1ZLFFBQVFaLE1BQU87Z0JBQ3hCSCxhQUFhZ0IsTUFBTSxDQUFDZCxLQUFLTyx1QkFBdUJNO1lBQ2xEO1FBQ0YsT0FBTztZQUNMZixhQUFhaUIsR0FBRyxDQUFDZixLQUFLTyx1QkFBdUJOO1FBQy9DO0lBQ0Y7SUFDQSxPQUFPSDtBQUNUO0FBRU8sU0FBU0gsT0FDZHFCLE1BQXVCO0lBQ3ZCLGlDQUFHQyxtQkFBSDtRQUFHQSxnQkFBQUEsQ0FBSCwyQkFBc0M7O0lBRXRDLEtBQUssTUFBTW5CLGdCQUFnQm1CLGlCQUFrQjtRQUMzQyxLQUFLLE1BQU1qQixPQUFPRixhQUFhb0IsSUFBSSxHQUFJO1lBQ3JDRixPQUFPRyxNQUFNLENBQUNuQjtRQUNoQjtRQUVBLEtBQUssTUFBTSxDQUFDQSxLQUFLQyxNQUFNLElBQUlILGFBQWFJLE9BQU8sR0FBSTtZQUNqRGMsT0FBT0YsTUFBTSxDQUFDZCxLQUFLQztRQUNyQjtJQUNGO0lBRUEsT0FBT2U7QUFDVCIsInNvdXJjZXMiOlsiRDpcXHNyY1xcc2hhcmVkXFxsaWJcXHJvdXRlclxcdXRpbHNcXHF1ZXJ5c3RyaW5nLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgUGFyc2VkVXJsUXVlcnkgfSBmcm9tICdxdWVyeXN0cmluZydcblxuZXhwb3J0IGZ1bmN0aW9uIHNlYXJjaFBhcmFtc1RvVXJsUXVlcnkoXG4gIHNlYXJjaFBhcmFtczogVVJMU2VhcmNoUGFyYW1zXG4pOiBQYXJzZWRVcmxRdWVyeSB7XG4gIGNvbnN0IHF1ZXJ5OiBQYXJzZWRVcmxRdWVyeSA9IHt9XG4gIGZvciAoY29uc3QgW2tleSwgdmFsdWVdIG9mIHNlYXJjaFBhcmFtcy5lbnRyaWVzKCkpIHtcbiAgICBjb25zdCBleGlzdGluZyA9IHF1ZXJ5W2tleV1cbiAgICBpZiAodHlwZW9mIGV4aXN0aW5nID09PSAndW5kZWZpbmVkJykge1xuICAgICAgcXVlcnlba2V5XSA9IHZhbHVlXG4gICAgfSBlbHNlIGlmIChBcnJheS5pc0FycmF5KGV4aXN0aW5nKSkge1xuICAgICAgZXhpc3RpbmcucHVzaCh2YWx1ZSlcbiAgICB9IGVsc2Uge1xuICAgICAgcXVlcnlba2V5XSA9IFtleGlzdGluZywgdmFsdWVdXG4gICAgfVxuICB9XG4gIHJldHVybiBxdWVyeVxufVxuXG5mdW5jdGlvbiBzdHJpbmdpZnlVcmxRdWVyeVBhcmFtKHBhcmFtOiB1bmtub3duKTogc3RyaW5nIHtcbiAgaWYgKHR5cGVvZiBwYXJhbSA9PT0gJ3N0cmluZycpIHtcbiAgICByZXR1cm4gcGFyYW1cbiAgfVxuXG4gIGlmIChcbiAgICAodHlwZW9mIHBhcmFtID09PSAnbnVtYmVyJyAmJiAhaXNOYU4ocGFyYW0pKSB8fFxuICAgIHR5cGVvZiBwYXJhbSA9PT0gJ2Jvb2xlYW4nXG4gICkge1xuICAgIHJldHVybiBTdHJpbmcocGFyYW0pXG4gIH0gZWxzZSB7XG4gICAgcmV0dXJuICcnXG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHVybFF1ZXJ5VG9TZWFyY2hQYXJhbXMocXVlcnk6IFBhcnNlZFVybFF1ZXJ5KTogVVJMU2VhcmNoUGFyYW1zIHtcbiAgY29uc3Qgc2VhcmNoUGFyYW1zID0gbmV3IFVSTFNlYXJjaFBhcmFtcygpXG4gIGZvciAoY29uc3QgW2tleSwgdmFsdWVdIG9mIE9iamVjdC5lbnRyaWVzKHF1ZXJ5KSkge1xuICAgIGlmIChBcnJheS5pc0FycmF5KHZhbHVlKSkge1xuICAgICAgZm9yIChjb25zdCBpdGVtIG9mIHZhbHVlKSB7XG4gICAgICAgIHNlYXJjaFBhcmFtcy5hcHBlbmQoa2V5LCBzdHJpbmdpZnlVcmxRdWVyeVBhcmFtKGl0ZW0pKVxuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICBzZWFyY2hQYXJhbXMuc2V0KGtleSwgc3RyaW5naWZ5VXJsUXVlcnlQYXJhbSh2YWx1ZSkpXG4gICAgfVxuICB9XG4gIHJldHVybiBzZWFyY2hQYXJhbXNcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGFzc2lnbihcbiAgdGFyZ2V0OiBVUkxTZWFyY2hQYXJhbXMsXG4gIC4uLnNlYXJjaFBhcmFtc0xpc3Q6IFVSTFNlYXJjaFBhcmFtc1tdXG4pOiBVUkxTZWFyY2hQYXJhbXMge1xuICBmb3IgKGNvbnN0IHNlYXJjaFBhcmFtcyBvZiBzZWFyY2hQYXJhbXNMaXN0KSB7XG4gICAgZm9yIChjb25zdCBrZXkgb2Ygc2VhcmNoUGFyYW1zLmtleXMoKSkge1xuICAgICAgdGFyZ2V0LmRlbGV0ZShrZXkpXG4gICAgfVxuXG4gICAgZm9yIChjb25zdCBba2V5LCB2YWx1ZV0gb2Ygc2VhcmNoUGFyYW1zLmVudHJpZXMoKSkge1xuICAgICAgdGFyZ2V0LmFwcGVuZChrZXksIHZhbHVlKVxuICAgIH1cbiAgfVxuXG4gIHJldHVybiB0YXJnZXRcbn1cbiJdLCJuYW1lcyI6WyJhc3NpZ24iLCJzZWFyY2hQYXJhbXNUb1VybFF1ZXJ5IiwidXJsUXVlcnlUb1NlYXJjaFBhcmFtcyIsInNlYXJjaFBhcmFtcyIsInF1ZXJ5Iiwia2V5IiwidmFsdWUiLCJlbnRyaWVzIiwiZXhpc3RpbmciLCJBcnJheSIsImlzQXJyYXkiLCJwdXNoIiwic3RyaW5naWZ5VXJsUXVlcnlQYXJhbSIsInBhcmFtIiwiaXNOYU4iLCJTdHJpbmciLCJVUkxTZWFyY2hQYXJhbXMiLCJPYmplY3QiLCJpdGVtIiwiYXBwZW5kIiwic2V0IiwidGFyZ2V0Iiwic2VhcmNoUGFyYW1zTGlzdCIsImtleXMiLCJkZWxldGUiXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(pages-dir-browser)/./node_modules/next/dist/shared/lib/router/utils/querystring.js\n")); - -/***/ }), - -/***/ "(pages-dir-browser)/./node_modules/next/dist/shared/lib/router/utils/remove-path-prefix.js": -/*!******************************************************************************!*\ - !*** ./node_modules/next/dist/shared/lib/router/utils/remove-path-prefix.js ***! - \******************************************************************************/ -/***/ ((module, exports, __webpack_require__) => { - -"use strict"; -eval(__webpack_require__.ts("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"removePathPrefix\", ({\n enumerable: true,\n get: function() {\n return removePathPrefix;\n }\n}));\nconst _pathhasprefix = __webpack_require__(/*! ./path-has-prefix */ \"(pages-dir-browser)/./node_modules/next/dist/shared/lib/router/utils/path-has-prefix.js\");\nfunction removePathPrefix(path, prefix) {\n // If the path doesn't start with the prefix we can return it as is. This\n // protects us from situations where the prefix is a substring of the path\n // prefix such as:\n //\n // For prefix: /blog\n //\n // /blog -> true\n // /blog/ -> true\n // /blog/1 -> true\n // /blogging -> false\n // /blogging/ -> false\n // /blogging/1 -> false\n if (!(0, _pathhasprefix.pathHasPrefix)(path, prefix)) {\n return path;\n }\n // Remove the prefix from the path via slicing.\n const withoutPrefix = path.slice(prefix.length);\n // If the path without the prefix starts with a `/` we can return it as is.\n if (withoutPrefix.startsWith('/')) {\n return withoutPrefix;\n }\n // If the path without the prefix doesn't start with a `/` we need to add it\n // back to the path to make sure it's a valid path.\n return \"/\" + withoutPrefix;\n} //# sourceMappingURL=remove-path-prefix.js.map\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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3Qvc2hhcmVkL2xpYi9yb3V0ZXIvdXRpbHMvcmVtb3ZlLXBhdGgtcHJlZml4LmpzIiwibWFwcGluZ3MiOiI7Ozs7b0RBVWdCQTs7O2VBQUFBOzs7MkNBVmM7QUFVdkIsU0FBU0EsaUJBQWlCQyxJQUFZLEVBQUVDLE1BQWM7SUFDM0QseUVBQXlFO0lBQ3pFLDBFQUEwRTtJQUMxRSxrQkFBa0I7SUFDbEIsRUFBRTtJQUNGLG9CQUFvQjtJQUNwQixFQUFFO0lBQ0Ysa0JBQWtCO0lBQ2xCLG1CQUFtQjtJQUNuQixvQkFBb0I7SUFDcEIsdUJBQXVCO0lBQ3ZCLHdCQUF3QjtJQUN4Qix5QkFBeUI7SUFDekIsSUFBSSxDQUFDQyxDQUFBQSxHQUFBQSxlQUFBQSxhQUFBQSxFQUFjRixNQUFNQyxTQUFTO1FBQ2hDLE9BQU9EO0lBQ1Q7SUFFQSwrQ0FBK0M7SUFDL0MsTUFBTUcsZ0JBQWdCSCxLQUFLSSxLQUFLLENBQUNILE9BQU9JLE1BQU07SUFFOUMsMkVBQTJFO0lBQzNFLElBQUlGLGNBQWNHLFVBQVUsQ0FBQyxNQUFNO1FBQ2pDLE9BQU9IO0lBQ1Q7SUFFQSw0RUFBNEU7SUFDNUUsbURBQW1EO0lBQ25ELE9BQVEsTUFBR0E7QUFDYiIsInNvdXJjZXMiOlsiRDpcXHNyY1xcc2hhcmVkXFxsaWJcXHJvdXRlclxcdXRpbHNcXHJlbW92ZS1wYXRoLXByZWZpeC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBwYXRoSGFzUHJlZml4IH0gZnJvbSAnLi9wYXRoLWhhcy1wcmVmaXgnXG5cbi8qKlxuICogR2l2ZW4gYSBwYXRoIGFuZCBhIHByZWZpeCBpdCB3aWxsIHJlbW92ZSB0aGUgcHJlZml4IHdoZW4gaXQgZXhpc3RzIGluIHRoZVxuICogZ2l2ZW4gcGF0aC4gSXQgZW5zdXJlcyBpdCBtYXRjaGVzIGV4YWN0bHkgd2l0aG91dCBjb250YWluaW5nIGV4dHJhIGNoYXJzXG4gKiBhbmQgaWYgdGhlIHByZWZpeCBpcyBub3QgdGhlcmUgaXQgd2lsbCBiZSBub29wLlxuICpcbiAqIEBwYXJhbSBwYXRoIFRoZSBwYXRoIHRvIHJlbW92ZSB0aGUgcHJlZml4IGZyb20uXG4gKiBAcGFyYW0gcHJlZml4IFRoZSBwcmVmaXggdG8gYmUgcmVtb3ZlZC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHJlbW92ZVBhdGhQcmVmaXgocGF0aDogc3RyaW5nLCBwcmVmaXg6IHN0cmluZyk6IHN0cmluZyB7XG4gIC8vIElmIHRoZSBwYXRoIGRvZXNuJ3Qgc3RhcnQgd2l0aCB0aGUgcHJlZml4IHdlIGNhbiByZXR1cm4gaXQgYXMgaXMuIFRoaXNcbiAgLy8gcHJvdGVjdHMgdXMgZnJvbSBzaXR1YXRpb25zIHdoZXJlIHRoZSBwcmVmaXggaXMgYSBzdWJzdHJpbmcgb2YgdGhlIHBhdGhcbiAgLy8gcHJlZml4IHN1Y2ggYXM6XG4gIC8vXG4gIC8vIEZvciBwcmVmaXg6IC9ibG9nXG4gIC8vXG4gIC8vICAgL2Jsb2cgLT4gdHJ1ZVxuICAvLyAgIC9ibG9nLyAtPiB0cnVlXG4gIC8vICAgL2Jsb2cvMSAtPiB0cnVlXG4gIC8vICAgL2Jsb2dnaW5nIC0+IGZhbHNlXG4gIC8vICAgL2Jsb2dnaW5nLyAtPiBmYWxzZVxuICAvLyAgIC9ibG9nZ2luZy8xIC0+IGZhbHNlXG4gIGlmICghcGF0aEhhc1ByZWZpeChwYXRoLCBwcmVmaXgpKSB7XG4gICAgcmV0dXJuIHBhdGhcbiAgfVxuXG4gIC8vIFJlbW92ZSB0aGUgcHJlZml4IGZyb20gdGhlIHBhdGggdmlhIHNsaWNpbmcuXG4gIGNvbnN0IHdpdGhvdXRQcmVmaXggPSBwYXRoLnNsaWNlKHByZWZpeC5sZW5ndGgpXG5cbiAgLy8gSWYgdGhlIHBhdGggd2l0aG91dCB0aGUgcHJlZml4IHN0YXJ0cyB3aXRoIGEgYC9gIHdlIGNhbiByZXR1cm4gaXQgYXMgaXMuXG4gIGlmICh3aXRob3V0UHJlZml4LnN0YXJ0c1dpdGgoJy8nKSkge1xuICAgIHJldHVybiB3aXRob3V0UHJlZml4XG4gIH1cblxuICAvLyBJZiB0aGUgcGF0aCB3aXRob3V0IHRoZSBwcmVmaXggZG9lc24ndCBzdGFydCB3aXRoIGEgYC9gIHdlIG5lZWQgdG8gYWRkIGl0XG4gIC8vIGJhY2sgdG8gdGhlIHBhdGggdG8gbWFrZSBzdXJlIGl0J3MgYSB2YWxpZCBwYXRoLlxuICByZXR1cm4gYC8ke3dpdGhvdXRQcmVmaXh9YFxufVxuIl0sIm5hbWVzIjpbInJlbW92ZVBhdGhQcmVmaXgiLCJwYXRoIiwicHJlZml4IiwicGF0aEhhc1ByZWZpeCIsIndpdGhvdXRQcmVmaXgiLCJzbGljZSIsImxlbmd0aCIsInN0YXJ0c1dpdGgiXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(pages-dir-browser)/./node_modules/next/dist/shared/lib/router/utils/remove-path-prefix.js\n")); - -/***/ }), - -/***/ "(pages-dir-browser)/./node_modules/next/dist/shared/lib/router/utils/remove-trailing-slash.js": -/*!*********************************************************************************!*\ - !*** ./node_modules/next/dist/shared/lib/router/utils/remove-trailing-slash.js ***! - \*********************************************************************************/ -/***/ ((module, exports, __webpack_require__) => { - -"use strict"; -eval(__webpack_require__.ts("/**\n * Removes the trailing slash for a given route or page path. Preserves the\n * root page. Examples:\n * - `/foo/bar/` -> `/foo/bar`\n * - `/foo/bar` -> `/foo/bar`\n * - `/` -> `/`\n */ \nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"removeTrailingSlash\", ({\n enumerable: true,\n get: function() {\n return removeTrailingSlash;\n }\n}));\nfunction removeTrailingSlash(route) {\n return route.replace(/\\/$/, '') || '/';\n} //# sourceMappingURL=remove-trailing-slash.js.map\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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3Qvc2hhcmVkL2xpYi9yb3V0ZXIvdXRpbHMvcmVtb3ZlLXRyYWlsaW5nLXNsYXNoLmpzIiwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Q0FNQzs7Ozt1REFDZUE7OztlQUFBQTs7O0FBQVQsU0FBU0Esb0JBQW9CQyxLQUFhO0lBQy9DLE9BQU9BLE1BQU1DLE9BQU8sQ0FBQyxPQUFPLE9BQU87QUFDckMiLCJzb3VyY2VzIjpbIkQ6XFxzcmNcXHNoYXJlZFxcbGliXFxyb3V0ZXJcXHV0aWxzXFxyZW1vdmUtdHJhaWxpbmctc2xhc2gudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBSZW1vdmVzIHRoZSB0cmFpbGluZyBzbGFzaCBmb3IgYSBnaXZlbiByb3V0ZSBvciBwYWdlIHBhdGguIFByZXNlcnZlcyB0aGVcbiAqIHJvb3QgcGFnZS4gRXhhbXBsZXM6XG4gKiAgIC0gYC9mb28vYmFyL2AgLT4gYC9mb28vYmFyYFxuICogICAtIGAvZm9vL2JhcmAgLT4gYC9mb28vYmFyYFxuICogICAtIGAvYCAtPiBgL2BcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHJlbW92ZVRyYWlsaW5nU2xhc2gocm91dGU6IHN0cmluZykge1xuICByZXR1cm4gcm91dGUucmVwbGFjZSgvXFwvJC8sICcnKSB8fCAnLydcbn1cbiJdLCJuYW1lcyI6WyJyZW1vdmVUcmFpbGluZ1NsYXNoIiwicm91dGUiLCJyZXBsYWNlIl0sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(pages-dir-browser)/./node_modules/next/dist/shared/lib/router/utils/remove-trailing-slash.js\n")); - -/***/ }), - -/***/ "(pages-dir-browser)/./node_modules/next/dist/shared/lib/router/utils/route-matcher.js": -/*!*************************************************************************!*\ - !*** ./node_modules/next/dist/shared/lib/router/utils/route-matcher.js ***! - \*************************************************************************/ -/***/ ((module, exports, __webpack_require__) => { - -"use strict"; -eval(__webpack_require__.ts("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"getRouteMatcher\", ({\n enumerable: true,\n get: function() {\n return getRouteMatcher;\n }\n}));\nconst _utils = __webpack_require__(/*! ../../utils */ \"(pages-dir-browser)/./node_modules/next/dist/shared/lib/utils.js\");\nfunction getRouteMatcher(param) {\n let { re, groups } = param;\n return (pathname)=>{\n const routeMatch = re.exec(pathname);\n if (!routeMatch) return false;\n const decode = (param)=>{\n try {\n return decodeURIComponent(param);\n } catch (e) {\n throw Object.defineProperty(new _utils.DecodeError('failed to decode param'), \"__NEXT_ERROR_CODE\", {\n value: \"E528\",\n enumerable: false,\n configurable: true\n });\n }\n };\n const params = {};\n for (const [key, group] of Object.entries(groups)){\n const match = routeMatch[group.pos];\n if (match !== undefined) {\n if (group.repeat) {\n params[key] = match.split('/').map((entry)=>decode(entry));\n } else {\n params[key] = decode(match);\n }\n }\n }\n return params;\n };\n} //# sourceMappingURL=route-matcher.js.map\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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3Qvc2hhcmVkL2xpYi9yb3V0ZXIvdXRpbHMvcm91dGUtbWF0Y2hlci5qcyIsIm1hcHBpbmdzIjoiOzs7O21EQWVnQkE7OztlQUFBQTs7O21DQWRZO0FBY3JCLFNBQVNBLGdCQUFnQixLQUdWO0lBSFUsTUFDOUJDLEVBQUUsRUFDRkMsTUFBTSxFQUNjLEdBSFU7SUFJOUIsT0FBTyxDQUFDQztRQUNOLE1BQU1DLGFBQWFILEdBQUdJLElBQUksQ0FBQ0Y7UUFDM0IsSUFBSSxDQUFDQyxZQUFZLE9BQU87UUFFeEIsTUFBTUUsU0FBUyxDQUFDQztZQUNkLElBQUk7Z0JBQ0YsT0FBT0MsbUJBQW1CRDtZQUM1QixFQUFFLFVBQU07Z0JBQ04sTUFBTSxxQkFBeUMsQ0FBekMsSUFBSUUsT0FBQUEsV0FBVyxDQUFDLDJCQUFoQjsyQkFBQTtnQ0FBQTtrQ0FBQTtnQkFBd0M7WUFDaEQ7UUFDRjtRQUVBLE1BQU1DLFNBQWlCLENBQUM7UUFDeEIsS0FBSyxNQUFNLENBQUNDLEtBQUtDLE1BQU0sSUFBSUMsT0FBT0MsT0FBTyxDQUFDWixRQUFTO1lBQ2pELE1BQU1hLFFBQVFYLFVBQVUsQ0FBQ1EsTUFBTUksR0FBRyxDQUFDO1lBQ25DLElBQUlELFVBQVVFLFdBQVc7Z0JBQ3ZCLElBQUlMLE1BQU1NLE1BQU0sRUFBRTtvQkFDaEJSLE1BQU0sQ0FBQ0MsSUFBSSxHQUFHSSxNQUFNSSxLQUFLLENBQUMsS0FBS0MsR0FBRyxDQUFDLENBQUNDLFFBQVVmLE9BQU9lO2dCQUN2RCxPQUFPO29CQUNMWCxNQUFNLENBQUNDLElBQUksR0FBR0wsT0FBT1M7Z0JBQ3ZCO1lBQ0Y7UUFDRjtRQUVBLE9BQU9MO0lBQ1Q7QUFDRiIsInNvdXJjZXMiOlsiRDpcXHNyY1xcc2hhcmVkXFxsaWJcXHJvdXRlclxcdXRpbHNcXHJvdXRlLW1hdGNoZXIudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBHcm91cCB9IGZyb20gJy4vcm91dGUtcmVnZXgnXG5pbXBvcnQgeyBEZWNvZGVFcnJvciB9IGZyb20gJy4uLy4uL3V0aWxzJ1xuaW1wb3J0IHR5cGUgeyBQYXJhbXMgfSBmcm9tICcuLi8uLi8uLi8uLi9zZXJ2ZXIvcmVxdWVzdC9wYXJhbXMnXG5cbmV4cG9ydCBpbnRlcmZhY2UgUm91dGVNYXRjaEZuIHtcbiAgKHBhdGhuYW1lOiBzdHJpbmcpOiBmYWxzZSB8IFBhcmFtc1xufVxuXG50eXBlIFJvdXRlTWF0Y2hlck9wdGlvbnMgPSB7XG4gIC8vIFdlIG9ubHkgdXNlIHRoZSBleGVjIG1ldGhvZCBvZiB0aGUgUmVnRXhwIG9iamVjdC4gVGhpcyBoZWxwcyB1cyBhdm9pZCB1c2luZ1xuICAvLyB0eXBlIGFzc2VydGlvbnMgdGhhdCB0aGUgcGFzc2VkIGluIHByb3BlcnRpZXMgYXJlIG9mIHRoZSBjb3JyZWN0IHR5cGUuXG4gIHJlOiBQaWNrPFJlZ0V4cCwgJ2V4ZWMnPlxuICBncm91cHM6IFJlY29yZDxzdHJpbmcsIEdyb3VwPlxufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0Um91dGVNYXRjaGVyKHtcbiAgcmUsXG4gIGdyb3Vwcyxcbn06IFJvdXRlTWF0Y2hlck9wdGlvbnMpOiBSb3V0ZU1hdGNoRm4ge1xuICByZXR1cm4gKHBhdGhuYW1lOiBzdHJpbmcpID0+IHtcbiAgICBjb25zdCByb3V0ZU1hdGNoID0gcmUuZXhlYyhwYXRobmFtZSlcbiAgICBpZiAoIXJvdXRlTWF0Y2gpIHJldHVybiBmYWxzZVxuXG4gICAgY29uc3QgZGVjb2RlID0gKHBhcmFtOiBzdHJpbmcpID0+IHtcbiAgICAgIHRyeSB7XG4gICAgICAgIHJldHVybiBkZWNvZGVVUklDb21wb25lbnQocGFyYW0pXG4gICAgICB9IGNhdGNoIHtcbiAgICAgICAgdGhyb3cgbmV3IERlY29kZUVycm9yKCdmYWlsZWQgdG8gZGVjb2RlIHBhcmFtJylcbiAgICAgIH1cbiAgICB9XG5cbiAgICBjb25zdCBwYXJhbXM6IFBhcmFtcyA9IHt9XG4gICAgZm9yIChjb25zdCBba2V5LCBncm91cF0gb2YgT2JqZWN0LmVudHJpZXMoZ3JvdXBzKSkge1xuICAgICAgY29uc3QgbWF0Y2ggPSByb3V0ZU1hdGNoW2dyb3VwLnBvc11cbiAgICAgIGlmIChtYXRjaCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIGlmIChncm91cC5yZXBlYXQpIHtcbiAgICAgICAgICBwYXJhbXNba2V5XSA9IG1hdGNoLnNwbGl0KCcvJykubWFwKChlbnRyeSkgPT4gZGVjb2RlKGVudHJ5KSlcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBwYXJhbXNba2V5XSA9IGRlY29kZShtYXRjaClcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBwYXJhbXNcbiAgfVxufVxuIl0sIm5hbWVzIjpbImdldFJvdXRlTWF0Y2hlciIsInJlIiwiZ3JvdXBzIiwicGF0aG5hbWUiLCJyb3V0ZU1hdGNoIiwiZXhlYyIsImRlY29kZSIsInBhcmFtIiwiZGVjb2RlVVJJQ29tcG9uZW50IiwiRGVjb2RlRXJyb3IiLCJwYXJhbXMiLCJrZXkiLCJncm91cCIsIk9iamVjdCIsImVudHJpZXMiLCJtYXRjaCIsInBvcyIsInVuZGVmaW5lZCIsInJlcGVhdCIsInNwbGl0IiwibWFwIiwiZW50cnkiXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(pages-dir-browser)/./node_modules/next/dist/shared/lib/router/utils/route-matcher.js\n")); - -/***/ }), - -/***/ "(pages-dir-browser)/./node_modules/next/dist/shared/lib/router/utils/route-regex.js": -/*!***********************************************************************!*\ - !*** ./node_modules/next/dist/shared/lib/router/utils/route-regex.js ***! - \***********************************************************************/ -/***/ ((module, exports, __webpack_require__) => { - -"use strict"; -eval(__webpack_require__.ts("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n getNamedMiddlewareRegex: function() {\n return getNamedMiddlewareRegex;\n },\n getNamedRouteRegex: function() {\n return getNamedRouteRegex;\n },\n getRouteRegex: function() {\n return getRouteRegex;\n },\n parseParameter: function() {\n return parseParameter;\n }\n});\nconst _constants = __webpack_require__(/*! ../../../../lib/constants */ \"(pages-dir-browser)/./node_modules/next/dist/lib/constants.js\");\nconst _interceptionroutes = __webpack_require__(/*! ./interception-routes */ \"(pages-dir-browser)/./node_modules/next/dist/shared/lib/router/utils/interception-routes.js\");\nconst _escaperegexp = __webpack_require__(/*! ../../escape-regexp */ \"(pages-dir-browser)/./node_modules/next/dist/shared/lib/escape-regexp.js\");\nconst _removetrailingslash = __webpack_require__(/*! ./remove-trailing-slash */ \"(pages-dir-browser)/./node_modules/next/dist/shared/lib/router/utils/remove-trailing-slash.js\");\n/**\n * Regular expression pattern used to match route parameters.\n * Matches both single parameters and parameter groups.\n * Examples:\n * - `[[...slug]]` matches parameter group with key 'slug', repeat: true, optional: true\n * - `[...slug]` matches parameter group with key 'slug', repeat: true, optional: false\n * - `[[foo]]` matches parameter with key 'foo', repeat: false, optional: true\n * - `[bar]` matches parameter with key 'bar', repeat: false, optional: false\n */ const PARAMETER_PATTERN = /^([^[]*)\\[((?:\\[[^\\]]*\\])|[^\\]]+)\\](.*)$/;\nfunction parseParameter(param) {\n const match = param.match(PARAMETER_PATTERN);\n if (!match) {\n return parseMatchedParameter(param);\n }\n return parseMatchedParameter(match[2]);\n}\n/**\n * Parses a matched parameter from the PARAMETER_PATTERN regex to a data structure that can be used\n * to generate the parametrized route.\n * Examples:\n * - `[...slug]` -> `{ key: 'slug', repeat: true, optional: true }`\n * - `...slug` -> `{ key: 'slug', repeat: true, optional: false }`\n * - `[foo]` -> `{ key: 'foo', repeat: false, optional: true }`\n * - `bar` -> `{ key: 'bar', repeat: false, optional: false }`\n * @param param - The matched parameter to parse.\n * @returns The parsed parameter as a data structure.\n */ function parseMatchedParameter(param) {\n const optional = param.startsWith('[') && param.endsWith(']');\n if (optional) {\n param = param.slice(1, -1);\n }\n const repeat = param.startsWith('...');\n if (repeat) {\n param = param.slice(3);\n }\n return {\n key: param,\n repeat,\n optional\n };\n}\nfunction getParametrizedRoute(route, includeSuffix, includePrefix) {\n const groups = {};\n let groupIndex = 1;\n const segments = [];\n for (const segment of (0, _removetrailingslash.removeTrailingSlash)(route).slice(1).split('/')){\n const markerMatch = _interceptionroutes.INTERCEPTION_ROUTE_MARKERS.find((m)=>segment.startsWith(m));\n const paramMatches = segment.match(PARAMETER_PATTERN) // Check for parameters\n ;\n if (markerMatch && paramMatches && paramMatches[2]) {\n const { key, optional, repeat } = parseMatchedParameter(paramMatches[2]);\n groups[key] = {\n pos: groupIndex++,\n repeat,\n optional\n };\n segments.push(\"/\" + (0, _escaperegexp.escapeStringRegexp)(markerMatch) + \"([^/]+?)\");\n } else if (paramMatches && paramMatches[2]) {\n const { key, repeat, optional } = parseMatchedParameter(paramMatches[2]);\n groups[key] = {\n pos: groupIndex++,\n repeat,\n optional\n };\n if (includePrefix && paramMatches[1]) {\n segments.push(\"/\" + (0, _escaperegexp.escapeStringRegexp)(paramMatches[1]));\n }\n let s = repeat ? optional ? '(?:/(.+?))?' : '/(.+?)' : '/([^/]+?)';\n // Remove the leading slash if includePrefix already added it.\n if (includePrefix && paramMatches[1]) {\n s = s.substring(1);\n }\n segments.push(s);\n } else {\n segments.push(\"/\" + (0, _escaperegexp.escapeStringRegexp)(segment));\n }\n // If there's a suffix, add it to the segments if it's enabled.\n if (includeSuffix && paramMatches && paramMatches[3]) {\n segments.push((0, _escaperegexp.escapeStringRegexp)(paramMatches[3]));\n }\n }\n return {\n parameterizedRoute: segments.join(''),\n groups\n };\n}\nfunction getRouteRegex(normalizedRoute, param) {\n let { includeSuffix = false, includePrefix = false, excludeOptionalTrailingSlash = false } = param === void 0 ? {} : param;\n const { parameterizedRoute, groups } = getParametrizedRoute(normalizedRoute, includeSuffix, includePrefix);\n let re = parameterizedRoute;\n if (!excludeOptionalTrailingSlash) {\n re += '(?:/)?';\n }\n return {\n re: new RegExp(\"^\" + re + \"$\"),\n groups: groups\n };\n}\n/**\n * Builds a function to generate a minimal routeKey using only a-z and minimal\n * number of characters.\n */ function buildGetSafeRouteKey() {\n let i = 0;\n return ()=>{\n let routeKey = '';\n let j = ++i;\n while(j > 0){\n routeKey += String.fromCharCode(97 + (j - 1) % 26);\n j = Math.floor((j - 1) / 26);\n }\n return routeKey;\n };\n}\nfunction getSafeKeyFromSegment(param) {\n let { interceptionMarker, getSafeRouteKey, segment, routeKeys, keyPrefix, backreferenceDuplicateKeys } = param;\n const { key, optional, repeat } = parseMatchedParameter(segment);\n // replace any non-word characters since they can break\n // the named regex\n let cleanedKey = key.replace(/\\W/g, '');\n if (keyPrefix) {\n cleanedKey = \"\" + keyPrefix + cleanedKey;\n }\n let invalidKey = false;\n // check if the key is still invalid and fallback to using a known\n // safe key\n if (cleanedKey.length === 0 || cleanedKey.length > 30) {\n invalidKey = true;\n }\n if (!isNaN(parseInt(cleanedKey.slice(0, 1)))) {\n invalidKey = true;\n }\n if (invalidKey) {\n cleanedKey = getSafeRouteKey();\n }\n const duplicateKey = cleanedKey in routeKeys;\n if (keyPrefix) {\n routeKeys[cleanedKey] = \"\" + keyPrefix + key;\n } else {\n routeKeys[cleanedKey] = key;\n }\n // if the segment has an interception marker, make sure that's part of the regex pattern\n // this is to ensure that the route with the interception marker doesn't incorrectly match\n // the non-intercepted route (ie /app/(.)[username] should not match /app/[username])\n const interceptionPrefix = interceptionMarker ? (0, _escaperegexp.escapeStringRegexp)(interceptionMarker) : '';\n let pattern;\n if (duplicateKey && backreferenceDuplicateKeys) {\n // Use a backreference to the key to ensure that the key is the same value\n // in each of the placeholders.\n pattern = \"\\\\k<\" + cleanedKey + \">\";\n } else if (repeat) {\n pattern = \"(?<\" + cleanedKey + \">.+?)\";\n } else {\n pattern = \"(?<\" + cleanedKey + \">[^/]+?)\";\n }\n return optional ? \"(?:/\" + interceptionPrefix + pattern + \")?\" : \"/\" + interceptionPrefix + pattern;\n}\nfunction getNamedParametrizedRoute(route, prefixRouteKeys, includeSuffix, includePrefix, backreferenceDuplicateKeys) {\n const getSafeRouteKey = buildGetSafeRouteKey();\n const routeKeys = {};\n const segments = [];\n for (const segment of (0, _removetrailingslash.removeTrailingSlash)(route).slice(1).split('/')){\n const hasInterceptionMarker = _interceptionroutes.INTERCEPTION_ROUTE_MARKERS.some((m)=>segment.startsWith(m));\n const paramMatches = segment.match(PARAMETER_PATTERN) // Check for parameters\n ;\n if (hasInterceptionMarker && paramMatches && paramMatches[2]) {\n // If there's an interception marker, add it to the segments.\n segments.push(getSafeKeyFromSegment({\n getSafeRouteKey,\n interceptionMarker: paramMatches[1],\n segment: paramMatches[2],\n routeKeys,\n keyPrefix: prefixRouteKeys ? _constants.NEXT_INTERCEPTION_MARKER_PREFIX : undefined,\n backreferenceDuplicateKeys\n }));\n } else if (paramMatches && paramMatches[2]) {\n // If there's a prefix, add it to the segments if it's enabled.\n if (includePrefix && paramMatches[1]) {\n segments.push(\"/\" + (0, _escaperegexp.escapeStringRegexp)(paramMatches[1]));\n }\n let s = getSafeKeyFromSegment({\n getSafeRouteKey,\n segment: paramMatches[2],\n routeKeys,\n keyPrefix: prefixRouteKeys ? _constants.NEXT_QUERY_PARAM_PREFIX : undefined,\n backreferenceDuplicateKeys\n });\n // Remove the leading slash if includePrefix already added it.\n if (includePrefix && paramMatches[1]) {\n s = s.substring(1);\n }\n segments.push(s);\n } else {\n segments.push(\"/\" + (0, _escaperegexp.escapeStringRegexp)(segment));\n }\n // If there's a suffix, add it to the segments if it's enabled.\n if (includeSuffix && paramMatches && paramMatches[3]) {\n segments.push((0, _escaperegexp.escapeStringRegexp)(paramMatches[3]));\n }\n }\n return {\n namedParameterizedRoute: segments.join(''),\n routeKeys\n };\n}\nfunction getNamedRouteRegex(normalizedRoute, options) {\n var _options_includeSuffix, _options_includePrefix, _options_backreferenceDuplicateKeys;\n const result = getNamedParametrizedRoute(normalizedRoute, options.prefixRouteKeys, (_options_includeSuffix = options.includeSuffix) != null ? _options_includeSuffix : false, (_options_includePrefix = options.includePrefix) != null ? _options_includePrefix : false, (_options_backreferenceDuplicateKeys = options.backreferenceDuplicateKeys) != null ? _options_backreferenceDuplicateKeys : false);\n let namedRegex = result.namedParameterizedRoute;\n if (!options.excludeOptionalTrailingSlash) {\n namedRegex += '(?:/)?';\n }\n return {\n ...getRouteRegex(normalizedRoute, options),\n namedRegex: \"^\" + namedRegex + \"$\",\n routeKeys: result.routeKeys\n };\n}\nfunction getNamedMiddlewareRegex(normalizedRoute, options) {\n const { parameterizedRoute } = getParametrizedRoute(normalizedRoute, false, false);\n const { catchAll = true } = options;\n if (parameterizedRoute === '/') {\n let catchAllRegex = catchAll ? '.*' : '';\n return {\n namedRegex: \"^/\" + catchAllRegex + \"$\"\n };\n }\n const { namedParameterizedRoute } = getNamedParametrizedRoute(normalizedRoute, false, false, false, false);\n let catchAllGroupedRegex = catchAll ? '(?:(/.*)?)' : '';\n return {\n namedRegex: \"^\" + namedParameterizedRoute + catchAllGroupedRegex + \"$\"\n };\n} //# sourceMappingURL=route-regex.js.map\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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3Qvc2hhcmVkL2xpYi9yb3V0ZXIvdXRpbHMvcm91dGUtcmVnZXguanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7O0lBd1pnQkEsdUJBQXVCO2VBQXZCQTs7SUE1QkFDLGtCQUFrQjtlQUFsQkE7O0lBN0xBQyxhQUFhO2VBQWJBOztJQXpGQUMsY0FBYztlQUFkQTs7O3VDQW5HVDtnREFDb0M7MENBQ1I7aURBQ0M7QUF5RXBDOzs7Ozs7OztDQVFDLEdBQ0QsTUFBTUMsb0JBQW9CO0FBY25CLFNBQVNELGVBQWVFLEtBQWE7SUFDMUMsTUFBTUMsUUFBUUQsTUFBTUMsS0FBSyxDQUFDRjtJQUUxQixJQUFJLENBQUNFLE9BQU87UUFDVixPQUFPQyxzQkFBc0JGO0lBQy9CO0lBRUEsT0FBT0Usc0JBQXNCRCxLQUFLLENBQUMsRUFBRTtBQUN2QztBQUVBOzs7Ozs7Ozs7O0NBVUMsR0FDRCxTQUFTQyxzQkFBc0JGLEtBQWE7SUFDMUMsTUFBTUcsV0FBV0gsTUFBTUksVUFBVSxDQUFDLFFBQVFKLE1BQU1LLFFBQVEsQ0FBQztJQUN6RCxJQUFJRixVQUFVO1FBQ1pILFFBQVFBLE1BQU1NLEtBQUssQ0FBQyxHQUFHLENBQUM7SUFDMUI7SUFDQSxNQUFNQyxTQUFTUCxNQUFNSSxVQUFVLENBQUM7SUFDaEMsSUFBSUcsUUFBUTtRQUNWUCxRQUFRQSxNQUFNTSxLQUFLLENBQUM7SUFDdEI7SUFDQSxPQUFPO1FBQUVFLEtBQUtSO1FBQU9PO1FBQVFKO0lBQVM7QUFDeEM7QUFFQSxTQUFTTSxxQkFDUEMsS0FBYSxFQUNiQyxhQUFzQixFQUN0QkMsYUFBc0I7SUFFdEIsTUFBTUMsU0FBeUMsQ0FBQztJQUNoRCxJQUFJQyxhQUFhO0lBRWpCLE1BQU1DLFdBQXFCLEVBQUU7SUFDN0IsS0FBSyxNQUFNQyxXQUFXQyxDQUFBQSxHQUFBQSxxQkFBQUEsbUJBQUFBLEVBQW9CUCxPQUFPSixLQUFLLENBQUMsR0FBR1ks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LE1BQU0sRUFBRXNDLFdBQVcsSUFBSSxFQUFFLEdBQUdIO0lBQzVCLElBQUlyQyx1QkFBdUIsS0FBSztRQUM5QixJQUFJeUMsZ0JBQWdCRCxXQUFXLE9BQU87UUFDdEMsT0FBTztZQUNMRCxZQUFhLE9BQUlFLGdCQUFjO1FBQ2pDO0lBQ0Y7SUFFQSxNQUFNLEVBQUVMLHVCQUF1QixFQUFFLEdBQUdQLDBCQUNsQzNCLGlCQUNBLE9BQ0EsT0FDQSxPQUNBO0lBRUYsSUFBSXdDLHVCQUF1QkYsV0FBVyxlQUFlO0lBQ3JELE9BQU87UUFDTEQsWUFBYSxNQUFHSCwwQkFBMEJNLHVCQUFxQjtJQUNqRTtBQUNGIiwic291cmNlcyI6WyJEOlxcc3JjXFxzaGFyZWRcXGxpYlxccm91dGVyXFx1dGlsc1xccm91dGUtcmVnZXgudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgTkVYVF9JTlRFUkNFUFRJT05fTUFSS0VSX1BSRUZJWCxcbiAgTkVYVF9RVUVSWV9QQVJBTV9QUkVGSVgsXG59IGZyb20gJy4uLy4uLy4uLy4uL2xpYi9jb25zdGFudHMnXG5pbXBvcnQgeyBJTlRFUkNFUFRJT05fUk9VVEVfTUFSS0VSUyB9IGZyb20gJy4vaW50ZXJjZXB0aW9uLXJvdXRlcydcbmltcG9ydCB7IGVzY2FwZVN0cmluZ1JlZ2V4cCB9IGZyb20gJy4uLy4uL2VzY2FwZS1yZWdleHAnXG5pbXBvcnQgeyByZW1vdmVUcmFpbGluZ1NsYXNoIH0gZnJvbSAnLi9yZW1vdmUtdHJhaWxpbmctc2xhc2gnXG5cbmV4cG9ydCBpbnRlcmZhY2UgR3JvdXAge1xuICBwb3M6IG51bWJlclxuICByZXBlYXQ6IGJvb2xlYW5cbiAgb3B0aW9uYWw6IGJvb2xlYW5cbn1cblxuZXhwb3J0IGludGVyZmFjZSBSb3V0ZVJlZ2V4IHtcbiAgZ3JvdXBzOiB7IFtncm91cE5hbWU6IHN0cmluZ106IEdyb3VwIH1cbiAgcmU6IFJlZ0V4cFxufVxuXG50eXBlIEdldE5hbWVkUm91dGVSZWdleE9wdGlvbnMgPSB7XG4gIC8qKlxuICAgKiBXaGV0aGVyIHRvIHByZWZpeCB0aGUgcm91dGUga2V5cyB3aXRoIHRoZSBORVhUX0lOVEVSQ0VQVElPTl9NQVJLRVJfUFJFRklYXG4gICAqIG9yIE5FWFRfUVVFUllfUEFSQU1fUFJFRklYLiBUaGlzIGlzIG9ubHkgcmVsZXZhbnQgd2hlbiBjcmVhdGluZyB0aGVcbiAgICogcm91dGVzLW1hbmlmZXN0IGR1cmluZyB0aGUgYnVpbGQuXG4gICAqL1xuICBwcmVmaXhSb3V0ZUtleXM6IGJvb2xlYW5cblxuICAvKipcbiAgICogV2hldGhlciB0byBpbmNsdWRlIHRoZSBzdWZmaXggaW4gdGhlIHJvdXRlIHJlZ2V4LiBUaGlzIG1lYW5zIHRoYXQgd2hlbiB5b3VcbiAgICogaGF2ZSBzb21ldGhpbmcgbGlrZSBgL1suLi5zbHVnXS5qc29uYCB0aGUgYC5qc29uYCBwYXJ0IHdpbGwgYmUgaW5jbHVkZWRcbiAgICogaW4gdGhlIHJlZ2V4LCB5aWVsZGluZyBgLyguKikuanNvbmAgYXMgdGhlIHJlZ2V4LlxuICAgKi9cbiAgaW5jbHVkZVN1ZmZpeD86IGJvb2xlYW5cblxuICAvKipcbiAgICogV2hldGhlciB0byBpbmNsdWRlIHRoZSBwcmVmaXggaW4gdGhlIHJvdXRlIHJlZ2V4LiBUaGlzIG1lYW5zIHRoYXQgd2hlbiB5b3VcbiAgICogaGF2ZSBzb21ldGhpbmcgbGlrZSBgL1suLi5zbHVnXS5qc29uYCB0aGUgYC9gIHBhcnQgd2lsbCBiZSBpbmNsdWRlZFxuICAgKiBpbiB0aGUgcmVnZXgsIHlpZWxkaW5nIGBeLyguKikuanNvbiRgIGFzIHRoZSByZWdleC5cbiAgICpcbiAgICogTm90ZSB0aGF0IGludGVyY2VwdGlvbiBtYXJrZXJzIHdpbGwgYWxyZWFkeSBiZSBpbmNsdWRlZCB3aXRob3V0IHRoZSBuZWVkXG4gICAqL1xuICBpbmNsdWRlUHJlZml4PzogYm9vbGVhblxuXG4gIC8qKlxuICAgKiBXaGV0aGVyIHRvIGV4Y2x1ZGUgdGhlIG9wdGlvbmFsIHRyYWlsaW5nIHNsYXNoIGZyb20gdGhlIHJvdXRlIHJlZ2V4LlxuICAgKi9cbiAgZXhjbHVkZU9wdGlvbmFsVHJhaWxpbmdTbGFzaD86IGJvb2xlYW5cblxuICAvKipcbiAgICogV2hldGhlciB0byBiYWNrdHJhY2sgZHVwbGljYXRlIGtleXMuIFRoaXMgaXMgb25seSByZWxldmFudCB3aGVuIGNyZWF0aW5nXG4gICAqIHRoZSByb3V0ZXMtbWFuaWZlc3QgZHVyaW5nIHRoZSBidWlsZC5cbiAgICovXG4gIGJhY2tyZWZlcmVuY2VEdXBsaWNhdGVLZXlzPzogYm9vbGVhblxufVxuXG50eXBlIEdldFJvdXRlUmVnZXhPcHRpb25zID0ge1xuICAvKipcbiAgICogV2hldGhlciB0byBpbmNsdWRlIGV4dHJhIHBhcnRzIGluIHRoZSByb3V0ZSByZWdleC4gVGhpcyBtZWFucyB0aGF0IHdoZW4geW91XG4gICAqIGhhdmUgc29tZXRoaW5nIGxpa2UgYC9bLi4uc2x1Z10uanNvbmAgdGhlIGAuanNvbmAgcGFydCB3aWxsIGJlIGluY2x1ZGVkXG4gICAqIGluIHRoZSByZWdleCwgeWllbGRpbmcgYC8oLiopLmpzb25gIGFzIHRoZSByZWdleC5cbiAgICovXG4gIGluY2x1ZGVTdWZmaXg/OiBib29sZWFuXG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgdG8gaW5jbHVkZSB0aGUgcHJlZml4IGluIHRoZSByb3V0ZSByZWdleC4gVGhpcyBtZWFucyB0aGF0IHdoZW4geW91XG4gICAqIGhhdmUgc29tZXRoaW5nIGxpa2UgYC9bLi4uc2x1Z10uanNvbmAgdGhlIGAvYCBwYXJ0IHdpbGwgYmUgaW5jbHVkZWRcbiAgICogaW4gdGhlIHJlZ2V4LCB5aWVsZGluZyBgXi8oLiopLmpzb24kYCBhcyB0aGUgcmVnZXguXG4gICAqXG4gICAqIE5vdGUgdGhhdCBpbnRlcmNlcHRpb24gbWFya2VycyB3aWxsIGFscmVhZHkgYmUgaW5jbHVkZWQgd2l0aG91dCB0aGUgbmVlZFxuICAgKiBvZiBhZGRpbmcgdGhpcyBvcHRpb24uXG4gICAqL1xuICBpbmNsdWRlUHJlZml4PzogYm9vbGVhblxuXG4gIC8qKlxuICAgKiBXaGV0aGVyIHRvIGV4Y2x1ZGUgdGhlIG9wdGlvbmFsIHRyYWlsaW5nIHNsYXNoIGZyb20gdGhlIHJvdXRlIHJlZ2V4LlxuICAgKi9cbiAgZXhjbHVkZU9wdGlvbmFsVHJhaWxpbmdTbGFzaD86IGJvb2xlYW5cbn1cblxuLyoqXG4gKiBSZWd1bGFyIGV4cHJlc3Npb24gcGF0dGVybiB1c2VkIHRvIG1hdGNoIHJvdXRlIHBhcmFtZXRlcnMuXG4gKiBNYXRjaGVzIGJvdGggc2luZ2xlIHBhcmFtZXRlcnMgYW5kIHBhcmFtZXRlciBncm91cHMuXG4gKiBFeGFtcGxlczpcbiAqICAgLSBgW1suLi5zbHVnXV1gIG1hdGNoZXMgcGFyYW1ldGVyIGdyb3VwIHdpdGgga2V5ICdzbHVnJywgcmVwZWF0OiB0cnVlLCBvcHRpb25hbDogdHJ1ZVxuICogICAtIGBbLi4uc2x1Z11gIG1hdGNoZXMgcGFyYW1ldGVyIGdyb3VwIHdpdGgga2V5ICdzbHVnJywgcmVwZWF0OiB0cnVlLCBvcHRpb25hbDogZmFsc2VcbiAqICAgLSBgW1tmb29dXWAgbWF0Y2hlcyBwYXJhbWV0ZXIgd2l0aCBrZXkgJ2ZvbycsIHJlcGVhdDogZmFsc2UsIG9wdGlvbmFsOiB0cnVlXG4gKiAgIC0gYFtiYXJdYCBtYXRjaGVzIHBhcmFtZXRlciB3aXRoIGtleSAnYmFyJywgcmVwZWF0OiBmYWxzZSwgb3B0aW9uYWw6IGZhbHNlXG4gKi9cbmNvbnN0IFBBUkFNRVRFUl9QQVRURVJOID0gL14oW15bXSopXFxbKCg/OlxcW1teXFxdXSpcXF0pfFteXFxdXSspXFxdKC4qKSQvXG5cbi8qKlxuICogUGFyc2VzIGEgZ2l2ZW4gcGFyYW1ldGVyIGZyb20gYSByb3V0ZSB0byBhIGRhdGEgc3RydWN0dXJlIHRoYXQgY2FuIGJlIHVzZWRcbiAqIHRvIGdlbmVyYXRlIHRoZSBwYXJhbWV0cml6ZWQgcm91dGUuXG4gKiBFeGFtcGxlczpcbiAqICAgLSBgW1suLi5zbHVnXV1gIC0+IGB7IGtleTogJ3NsdWcnLCByZXBlYXQ6IHRydWUsIG9wdGlvbmFsOiB0cnVlIH1gXG4gKiAgIC0gYFsuLi5zbHVnXWAgLT4gYHsga2V5OiAnc2x1ZycsIHJlcGVhdDogdHJ1ZSwgb3B0aW9uYWw6IGZhbHNlIH1gXG4gKiAgIC0gYFtbZm9vXV1gIC0+IGB7IGtleTogJ2ZvbycsIHJlcGVhdDogZmFsc2UsIG9wdGlvbmFsOiB0cnVlIH1gXG4gKiAgIC0gYFtiYXJdYCAtPiBgeyBrZXk6ICdiYXInLCByZXBlYXQ6IGZhbHNlLCBvcHRpb25hbDogZmFsc2UgfWBcbiAqICAgLSBgZml6emAgLT4gYHsga2V5OiAnZml6eicsIHJlcGVhdDogZmFsc2UsIG9wdGlvbmFsOiBmYWxzZSB9YFxuICogQHBhcmFtIHBhcmFtIC0gVGhlIHBhcmFtZXRlciB0byBwYXJzZS5cbiAqIEByZXR1cm5zIFRoZSBwYXJzZWQgcGFyYW1ldGVyIGFzIGEgZGF0YSBzdHJ1Y3R1cmUuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBwYXJzZVBhcmFtZXRlcihwYXJhbTogc3RyaW5nKSB7XG4gIGNvbnN0IG1hdGNoID0gcGFyYW0ubWF0Y2goUEFSQU1FVEVSX1BBVFRFUk4pXG5cbiAgaWYgKCFtYXRjaCkge1xuICAgIHJldHVybiBwYXJzZU1hdGNoZWRQYXJhbWV0ZXIocGFyYW0pXG4gIH1cblxuICByZXR1cm4gcGFyc2VNYXRjaGVkUGFyYW1ldGVyKG1hdGNoWzJdKVxufVxuXG4vKipcbiAqIFBhcnNlcyBhIG1hdGNoZWQgcGFyYW1ldGVyIGZyb20gdGhlIFBBUkFNRVRFUl9QQVRURVJOIHJlZ2V4IHRvIGEgZGF0YSBzdHJ1Y3R1cmUgdGhhdCBjYW4gYmUgdXNlZFxuICogdG8gZ2VuZXJhdGUgdGhlIHBhcmFtZXRyaXplZCByb3V0ZS5cbiAqIEV4YW1wbGVzOlxuICogICAtIGBbLi4uc2x1Z11gIC0+IGB7IGtleTogJ3NsdWcnLCByZXBlYXQ6IHRydWUsIG9wdGlvbmFsOiB0cnVlIH1gXG4gKiAgIC0gYC4uLnNsdWdgIC0+IGB7IGtleTogJ3NsdWcnLCByZXBlYXQ6IHRydWUsIG9wdGlvbmFsOiBmYWxzZSB9YFxuICogICAtIGBbZm9vXWAgLT4gYHsga2V5OiAnZm9vJywgcmVwZWF0OiBmYWxzZSwgb3B0aW9uYWw6IHRydWUgfWBcbiAqICAgLSBgYmFyYCAtPiBgeyBrZXk6ICdiYXInLCByZXBlYXQ6IGZhbHNlLCBvcHRpb25hbDogZmFsc2UgfWBcbiAqIEBwYXJhbSBwYXJhbSAtIFRoZSBtYXRjaGVkIHBhcmFtZXRlciB0byBwYXJzZS5cbiAqIEByZXR1cm5zIFRoZSBwYXJzZWQgcGFyYW1ldGVyIGFzIGEgZGF0YSBzdHJ1Y3R1cmUuXG4gKi9cbmZ1bmN0aW9uIHBhcnNlTWF0Y2hlZFBhcmFtZXRlcihwYXJhbTogc3RyaW5nKSB7XG4gIGNvbnN0IG9wdGlvbmFsID0gcGFyYW0uc3RhcnRzV2l0aCgnWycpICYmIHBhcmFtLmVuZHNXaXRoKCddJylcbiAgaWYgKG9wdGlvbmFsKSB7XG4gICAgcGFyYW0gPSBwYXJhbS5zbGljZSgxLCAtMSlcbiAgfVxuICBjb25zdCByZXBlYXQgPSBwYXJhbS5zdGFydHNXaXRoKCcuLi4nKVxuICBpZiAocmVwZWF0KSB7XG4gICAgcGFyYW0gPSBwYXJhbS5zbGljZSgzKVxuICB9XG4gIHJldHVybiB7IGtleTogcGFyYW0sIHJlcGVhdCwgb3B0aW9uYWwgfVxufVxuXG5mdW5jdGlvbiBnZXRQYXJhbWV0cml6ZWRSb3V0ZShcbiAgcm91dGU6IHN0cmluZyxcbiAgaW5jbHVkZVN1ZmZpeDogYm9vbGVhbixcbiAgaW5jbHVkZVByZWZpeDogYm9vbGVhblxuKSB7XG4gIGNvbnN0IGdyb3VwczogeyBbZ3JvdXBOYW1lOiBzdHJpbmddOiBHcm91cCB9ID0ge31cbiAgbGV0IGdyb3VwSW5kZXggPSAxXG5cbiAgY29uc3Qgc2VnbWVudHM6IHN0cmluZ1tdID0gW11cbiAgZm9yIChjb25zdCBzZWdtZW50IG9mIHJlbW92ZVRyYWlsaW5nU2xhc2gocm91dGUpLnNsaWNlKDEpLnNwbGl0KCcvJykpIHtcbiAgICBjb25zdCBtYXJrZXJNYXRjaCA9IElOVEVSQ0VQVElPTl9ST1VURV9NQVJLRVJTLmZpbmQoKG0pID0+XG4gICAgICBzZWdtZW50LnN0YXJ0c1dpdGgobSlcbiAgICApXG4gICAgY29uc3QgcGFyYW1NYXRjaGVzID0gc2VnbWVudC5tYXRjaChQQVJBTUVURVJfUEFUVEVSTikgLy8gQ2hlY2sgZm9yIHBhcmFtZXRlcnNcblxuICAgIGlmIChtYXJrZXJNYXRjaCAmJiBwYXJhbU1hdGNoZXMgJiYgcGFyYW1NYXRjaGVzWzJdKSB7XG4gICAgICBjb25zdCB7IGtleSwgb3B0aW9uYWwsIHJlcGVhdCB9ID0gcGFyc2VNYXRjaGVkUGFyYW1ldGVyKHBhcmFtTWF0Y2hlc1syXSlcbiAgICAgIGdyb3Vwc1trZXldID0geyBwb3M6IGdyb3VwSW5kZXgrKywgcmVwZWF0LCBvcHRpb25hbCB9XG4gICAgICBzZWdtZW50cy5wdXNoKGAvJHtlc2NhcGVTdHJpbmdSZWdleHAobWFya2VyTWF0Y2gpfShbXi9dKz8pYClcbiAgICB9IGVsc2UgaWYgKHBhcmFtTWF0Y2hlcyAmJiBwYXJhbU1hdGNoZXNbMl0pIHtcbiAgICAgIGNvbnN0IHsga2V5LCByZXBlYXQsIG9wdGlvbmFsIH0gPSBwYXJzZU1hdGNoZWRQYXJhbWV0ZXIocGFyYW1NYXRjaGVzWzJdKVxuICAgICAgZ3JvdXBzW2tleV0gPSB7IHBvczogZ3JvdXBJbmRleCsrLCByZXBlYXQsIG9wdGlvbmFsIH1cblxuICAgICAgaWYgKGluY2x1ZGVQcmVmaXggJiYgcGFyYW1NYXRjaGVzWzFdKSB7XG4gICAgICAgIHNlZ21lbnRzLnB1c2goYC8ke2VzY2FwZVN0cmluZ1JlZ2V4cChwYXJhbU1hdGNoZXNbMV0pfWApXG4gICAgICB9XG5cbiAgICAgIGxldCBzID0gcmVwZWF0ID8gKG9wdGlvbmFsID8gJyg/Oi8oLis/KSk/JyA6ICcvKC4rPyknKSA6ICcvKFteL10rPyknXG5cbiAgICAgIC8vIFJlbW92ZSB0aGUgbGVhZGluZyBzbGFzaCBpZiBpbmNsdWRlUHJlZml4IGFscmVhZHkgYWRkZWQgaXQuXG4gICAgICBpZiAoaW5jbHVkZVByZWZpeCAmJiBwYXJhbU1hdGNoZXNbMV0pIHtcbiAgICAgICAgcyA9IHMuc3Vic3RyaW5nKDEpXG4gICAgICB9XG5cbiAgICAgIHNlZ21lbnRzLnB1c2gocylcbiAgICB9IGVsc2Uge1xuICAgICAgc2VnbWVudHMucHVzaChgLyR7ZXNjYXBlU3RyaW5nUmVnZXhwKHNlZ21lbnQpfWApXG4gICAgfVxuXG4gICAgLy8gSWYgdGhlcmUncyBhIHN1ZmZpeCwgYWRkIGl0IHRvIHRoZSBzZWdtZW50cyBpZiBpdCdzIGVuYWJsZWQuXG4gICAgaWYgKGluY2x1ZGVTdWZmaXggJiYgcGFyYW1NYXRjaGVzICYmIHBhcmFtTWF0Y2hlc1szXSkge1xuICAgICAgc2VnbWVudHMucHVzaChlc2NhcGVTdHJpbmdSZWdleHAocGFyYW1NYXRjaGVzWzNdKSlcbiAgICB9XG4gIH1cblxuICByZXR1cm4ge1xuICAgIHBhcmFtZXRlcml6ZWRSb3V0ZTogc2VnbWVudHMuam9pbignJyksXG4gICAgZ3JvdXBzLFxuICB9XG59XG5cbi8qKlxuICogRnJvbSBhIG5vcm1hbGl6ZWQgcm91dGUgdGhpcyBmdW5jdGlvbiBnZW5lcmF0ZXMgYSByZWd1bGFyIGV4cHJlc3Npb24gYW5kXG4gKiBhIGNvcnJlc3BvbmRpbmcgZ3JvdXBzIG9iamVjdCBpbnRlbmRlZCB0byBiZSB1c2VkIHRvIHN0b3JlIG1hdGNoaW5nIGdyb3Vwc1xuICogZnJvbSB0aGUgcmVndWxhciBleHByZXNzaW9uLlxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0Um91dGVSZWdleChcbiAgbm9ybWFsaXplZFJvdXRlOiBzdHJpbmcsXG4gIHtcbiAgICBpbmNsdWRlU3VmZml4ID0gZmFsc2UsXG4gICAgaW5jbHVkZVByZWZpeCA9IGZhbHNlLFxuICAgIGV4Y2x1ZGVPcHRpb25hbFRyYWlsaW5nU2xhc2ggPSBmYWxzZSxcbiAgfTogR2V0Um91dGVSZWdleE9wdGlvbnMgPSB7fVxuKTogUm91dGVSZWdleCB7XG4gIGNvbnN0IHsgcGFyYW1ldGVyaXplZFJvdXRlLCBncm91cHMgfSA9IGdldFBhcmFtZXRyaXplZFJvdXRlKFxuICAgIG5vcm1hbGl6ZWRSb3V0ZSxcbiAgICBpbmNsdWRlU3VmZml4LFxuICAgIGluY2x1ZGVQcmVmaXhcbiAgKVxuXG4gIGxldCByZSA9IHBhcmFtZXRlcml6ZWRSb3V0ZVxuICBpZiAoIWV4Y2x1ZGVPcHRpb25hbFRyYWlsaW5nU2xhc2gpIHtcbiAgICByZSArPSAnKD86Lyk/J1xuICB9XG5cbiAgcmV0dXJuIHtcbiAgICByZTogbmV3IFJlZ0V4cChgXiR7cmV9JGApLFxuICAgIGdyb3VwczogZ3JvdXBzLFxuICB9XG59XG5cbi8qKlxuICogQnVpbGRzIGEgZnVuY3Rpb24gdG8gZ2VuZXJhdGUgYSBtaW5pbWFsIHJvdXRlS2V5IHVzaW5nIG9ubHkgYS16IGFuZCBtaW5pbWFsXG4gKiBudW1iZXIgb2YgY2hhcmFjdGVycy5cbiAqL1xuZnVuY3Rpb24gYnVpbGRHZXRTYWZlUm91dGVLZXkoKSB7XG4gIGxldCBpID0gMFxuXG4gIHJldHVybiAoKSA9PiB7XG4gICAgbGV0IHJvdXRlS2V5ID0gJydcbiAgICBsZXQgaiA9ICsraVxuICAgIHdoaWxlIChqID4gMCkge1xuICAgICAgcm91dGVLZXkgKz0gU3RyaW5nLmZyb21DaGFyQ29kZSg5NyArICgoaiAtIDEpICUgMjYpKVxuICAgICAgaiA9IE1hdGguZmxvb3IoKGogLSAxKSAvIDI2KVxuICAgIH1cbiAgICByZXR1cm4gcm91dGVLZXlcbiAgfVxufVxuXG5mdW5jdGlvbiBnZXRTYWZlS2V5RnJvbVNlZ21lbnQoe1xuICBpbnRlcmNlcHRpb25NYXJrZXIsXG4gIGdldFNhZmVSb3V0ZUtleSxcbiAgc2VnbWVudCxcbiAgcm91dGVLZXlzLFxuICBrZXlQcmVmaXgsXG4gIGJhY2tyZWZlcmVuY2VEdXBsaWNhdGVLZXlzLFxufToge1xuICBpbnRlcmNlcHRpb25NYXJrZXI/OiBzdHJpbmdcbiAgZ2V0U2FmZVJvdXRlS2V5OiAoKSA9PiBzdHJpbmdcbiAgc2VnbWVudDogc3RyaW5nXG4gIHJvdXRlS2V5czogUmVjb3JkPHN0cmluZywgc3RyaW5nPlxuICBrZXlQcmVmaXg/OiBzdHJpbmdcbiAgYmFja3JlZmVyZW5jZUR1cGxpY2F0ZUtleXM6IGJvb2xlYW5cbn0pIHtcbiAgY29uc3QgeyBrZXksIG9wdGlvbmFsLCByZXBlYXQgfSA9IHBhcnNlTWF0Y2hlZFBhcmFtZXRlcihzZWdtZW50KVxuXG4gIC8vIHJlcGxhY2UgYW55IG5vbi13b3JkIGNoYXJhY3RlcnMgc2luY2UgdGhleSBjYW4gYnJlYWtcbiAgLy8gdGhlIG5hbWVkIHJlZ2V4XG4gIGxldCBjbGVhbmVkS2V5ID0ga2V5LnJlcGxhY2UoL1xcVy9nLCAnJylcblxuICBpZiAoa2V5UHJlZml4KSB7XG4gICAgY2xlYW5lZEtleSA9IGAke2tleVByZWZpeH0ke2NsZWFuZWRLZXl9YFxuICB9XG4gIGxldCBpbnZhbGlkS2V5ID0gZmFsc2VcblxuICAvLyBjaGVjayBpZiB0aGUga2V5IGlzIHN0aWxsIGludmFsaWQgYW5kIGZhbGxiYWNrIHRvIHVzaW5nIGEga25vd25cbiAgLy8gc2FmZSBrZXlcbiAgaWYgKGNsZWFuZWRLZXkubGVuZ3RoID09PSAwIHx8IGNsZWFuZWRLZXkubGVuZ3RoID4gMzApIHtcbiAgICBpbnZhbGlkS2V5ID0gdHJ1ZVxuICB9XG4gIGlmICghaXNOYU4ocGFyc2VJbnQoY2xlYW5lZEtleS5zbGljZSgwLCAxKSkpKSB7XG4gICAgaW52YWxpZEtleSA9IHRydWVcbiAgfVxuXG4gIGlmIChpbnZhbGlkS2V5KSB7XG4gICAgY2xlYW5lZEtleSA9IGdldFNhZmVSb3V0ZUtleSgpXG4gIH1cblxuICBjb25zdCBkdXBsaWNhdGVLZXkgPSBjbGVhbmVkS2V5IGluIHJvdXRlS2V5c1xuXG4gIGlmIChrZXlQcmVmaXgpIHtcbiAgICByb3V0ZUtleXNbY2xlYW5lZEtleV0gPSBgJHtrZXlQcmVmaXh9JHtrZXl9YFxuICB9IGVsc2Uge1xuICAgIHJvdXRlS2V5c1tjbGVhbmVkS2V5XSA9IGtleVxuICB9XG5cbiAgLy8gaWYgdGhlIHNlZ21lbnQgaGFzIGFuIGludGVyY2VwdGlvbiBtYXJrZXIsIG1ha2Ugc3VyZSB0aGF0J3MgcGFydCBvZiB0aGUgcmVnZXggcGF0dGVyblxuICAvLyB0aGlzIGlzIHRvIGVuc3VyZSB0aGF0IHRoZSByb3V0ZSB3aXRoIHRoZSBpbnRlcmNlcHRpb24gbWFya2VyIGRvZXNuJ3QgaW5jb3JyZWN0bHkgbWF0Y2hcbiAgLy8gdGhlIG5vbi1pbnRlcmNlcHRlZCByb3V0ZSAoaWUgL2FwcC8oLilbdXNlcm5hbWVdIHNob3VsZCBub3QgbWF0Y2ggL2FwcC9bdXNlcm5hbWVdKVxuICBjb25zdCBpbnRlcmNlcHRpb25QcmVmaXggPSBpbnRlcmNlcHRpb25NYXJrZXJcbiAgICA/IGVzY2FwZVN0cmluZ1JlZ2V4cChpbnRlcmNlcHRpb25NYXJrZXIpXG4gICAgOiAnJ1xuXG4gIGxldCBwYXR0ZXJuOiBzdHJpbmdcbiAgaWYgKGR1cGxpY2F0ZUtleSAmJiBiYWNrcmVmZXJlbmNlRHVwbGljYXRlS2V5cykge1xuICAgIC8vIFVzZSBhIGJhY2tyZWZlcmVuY2UgdG8gdGhlIGtleSB0byBlbnN1cmUgdGhhdCB0aGUga2V5IGlzIHRoZSBzYW1lIHZhbHVlXG4gICAgLy8gaW4gZWFjaCBvZiB0aGUgcGxhY2Vob2xkZXJzLlxuICAgIHBhdHRlcm4gPSBgXFxcXGs8JHtjbGVhbmVkS2V5fT5gXG4gIH0gZWxzZSBpZiAocmVwZWF0KSB7XG4gICAgcGF0dGVybiA9IGAoPzwke2NsZWFuZWRLZXl9Pi4rPylgXG4gIH0gZWxzZSB7XG4gICAgcGF0dGVybiA9IGAoPzwke2NsZWFuZWRLZXl9PlteL10rPylgXG4gIH1cblxuICByZXR1cm4gb3B0aW9uYWxcbiAgICA/IGAoPzovJHtpbnRlcmNlcHRpb25QcmVmaXh9JHtwYXR0ZXJufSk/YFxuICAgIDogYC8ke2ludGVyY2VwdGlvblByZWZpeH0ke3BhdHRlcm59YFxufVxuXG5mdW5jdGlvbiBnZXROYW1lZFBhcmFtZXRyaXplZFJvdXRlKFxuICByb3V0ZTogc3RyaW5nLFxuICBwcmVmaXhSb3V0ZUtleXM6IGJvb2xlYW4sXG4gIGluY2x1ZGVTdWZmaXg6IGJvb2xlYW4sXG4gIGluY2x1ZGVQcmVmaXg6IGJvb2xlYW4sXG4gIGJhY2tyZWZlcmVuY2VEdXBsaWNhdGVLZXlzOiBib29sZWFuXG4pIHtcbiAgY29uc3QgZ2V0U2FmZVJvdXRlS2V5ID0gYnVpbGRHZXRTYWZlUm91dGVLZXkoKVxuICBjb25zdCByb3V0ZUtleXM6IHsgW25hbWVkOiBzdHJpbmddOiBzdHJpbmcgfSA9IHt9XG5cbiAgY29uc3Qgc2VnbWVudHM6IHN0cmluZ1tdID0gW11cbiAgZm9yIChjb25zdCBzZWdtZW50IG9mIHJlbW92ZVRyYWlsaW5nU2xhc2gocm91dGUpLnNsaWNlKDEpLnNwbGl0KCcvJykpIHtcbiAgICBjb25zdCBoYXNJbnRlcmNlcHRpb25NYXJrZXIgPSBJTlRFUkNFUFRJT05fUk9VVEVfTUFSS0VSUy5zb21lKChtKSA9PlxuICAgICAgc2VnbWVudC5zdGFydHNXaXRoKG0pXG4gICAgKVxuXG4gICAgY29uc3QgcGFyYW1NYXRjaGVzID0gc2VnbWVudC5tYXRjaChQQVJBTUVURVJfUEFUVEVSTikgLy8gQ2hlY2sgZm9yIHBhcmFtZXRlcnNcblxuICAgIGlmIChoYXNJbnRlcmNlcHRpb25NYXJrZXIgJiYgcGFyYW1NYXRjaGVzICYmIHBhcmFtTWF0Y2hlc1syXSkge1xuICAgICAgLy8gSWYgdGhlcmUncyBhbiBpbnRlcmNlcHRpb24gbWFya2VyLCBhZGQgaXQgdG8gdGhlIHNlZ21lbnRzLlxuICAgICAgc2VnbWVudHMucHVzaChcbiAgICAgICAgZ2V0U2FmZUtleUZyb21TZWdtZW50KHtcbiAgICAgICAgICBnZXRTYWZlUm91dGVLZXksXG4gICAgICAgICAgaW50ZXJjZXB0aW9uTWFya2VyOiBwYXJhbU1hdGNoZXNbMV0sXG4gICAgICAgICAgc2VnbWVudDogcGFyYW1NYXRjaGVzWzJdLFxuICAgICAgICAgIHJvdXRlS2V5cyxcbiAgICAgICAgICBrZXlQcmVmaXg6IHByZWZpeFJvdXRlS2V5c1xuICAgICAgICAgICAgPyBORVhUX0lOVEVSQ0VQVElPTl9NQVJLRVJfUFJFRklYXG4gICAgICAgICAgICA6IHVuZGVmaW5lZCxcbiAgICAgICAgICBiYWNrcmVmZXJlbmNlRHVwbGljYXRlS2V5cyxcbiAgICAgICAgfSlcbiAgICAgIClcbiAgICB9IGVsc2UgaWYgKHBhcmFtTWF0Y2hlcyAmJiBwYXJhbU1hdGNoZXNbMl0pIHtcbiAgICAgIC8vIElmIHRoZXJlJ3MgYSBwcmVmaXgsIGFkZCBpdCB0byB0aGUgc2VnbWVudHMgaWYgaXQncyBlbmFibGVkLlxuICAgICAgaWYgKGluY2x1ZGVQcmVmaXggJiYgcGFyYW1NYXRjaGVzWzFdKSB7XG4gICAgICAgIHNlZ21lbnRzLnB1c2goYC8ke2VzY2FwZVN0cmluZ1JlZ2V4cChwYXJhbU1hdGNoZXNbMV0pfWApXG4gICAgICB9XG5cbiAgICAgIGxldCBzID0gZ2V0U2FmZUtleUZyb21TZWdtZW50KHtcbiAgICAgICAgZ2V0U2FmZVJvdXRlS2V5LFxuICAgICAgICBzZWdtZW50OiBwYXJhbU1hdGNoZXNbMl0sXG4gICAgICAgIHJvdXRlS2V5cyxcbiAgICAgICAga2V5UHJlZml4OiBwcmVmaXhSb3V0ZUtleXMgPyBORVhUX1FVRVJZX1BBUkFNX1BSRUZJWCA6IHVuZGVmaW5lZCxcbiAgICAgICAgYmFja3JlZmVyZW5jZUR1cGxpY2F0ZUtleXMsXG4gICAgICB9KVxuXG4gICAgICAvLyBSZW1vdmUgdGhlIGxlYWRpbmcgc2xhc2ggaWYgaW5jbHVkZVByZWZpeCBhbHJlYWR5IGFkZGVkIGl0LlxuICAgICAgaWYgKGluY2x1ZGVQcmVmaXggJiYgcGFyYW1NYXRjaGVzWzFdKSB7XG4gICAgICAgIHMgPSBzLnN1YnN0cmluZygxKVxuICAgICAgfVxuXG4gICAgICBzZWdtZW50cy5wdXNoKHMpXG4gICAgfSBlbHNlIHtcbiAgICAgIHNlZ21lbnRzLnB1c2goYC8ke2VzY2FwZVN0cmluZ1JlZ2V4cChzZWdtZW50KX1gKVxuICAgIH1cblxuICAgIC8vIElmIHRoZXJlJ3MgYSBzdWZmaXgsIGFkZCBpdCB0byB0aGUgc2VnbWVudHMgaWYgaXQncyBlbmFibGVkLlxuICAgIGlmIChpbmNsdWRlU3VmZml4ICYmIHBhcmFtTWF0Y2hlcyAmJiBwYXJhbU1hdGNoZXNbM10pIHtcbiAgICAgIHNlZ21lbnRzLnB1c2goZXNjYXBlU3RyaW5nUmVnZXhwKHBhcmFtTWF0Y2hlc1szXSkpXG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHtcbiAgICBuYW1lZFBhcmFtZXRlcml6ZWRSb3V0ZTogc2VnbWVudHMuam9pbignJyksXG4gICAgcm91dGVLZXlzLFxuICB9XG59XG5cbi8qKlxuICogVGhpcyBmdW5jdGlvbiBleHRlbmRzIGBnZXRSb3V0ZVJlZ2V4YCBnZW5lcmF0aW5nIGFsc28gYSBuYW1lZCByZWdleHAgd2hlcmVcbiAqIGVhY2ggZ3JvdXAgaXMgbmFtZWQgYWxvbmcgd2l0aCBhIHJvdXRlS2V5cyBvYmplY3QgdGhhdCBpbmRleGVzIHRoZSBhc3NpZ25lZFxuICogbmFtZWQgZ3JvdXAgd2l0aCBpdHMgY29ycmVzcG9uZGluZyBrZXkuIFdoZW4gdGhlIHJvdXRlS2V5cyBuZWVkIHRvIGJlXG4gKiBwcmVmaXhlZCB0byB1bmlxdWVseSBpZGVudGlmeSBpbnRlcm5hbGx5IHRoZSBcInByZWZpeFJvdXRlS2V5XCIgYXJnIHNob3VsZFxuICogYmUgXCJ0cnVlXCIgY3VycmVudGx5IHRoaXMgaXMgb25seSB0aGUgY2FzZSB3aGVuIGNyZWF0aW5nIHRoZSByb3V0ZXMtbWFuaWZlc3RcbiAqIGR1cmluZyB0aGUgYnVpbGRcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldE5hbWVkUm91dGVSZWdleChcbiAgbm9ybWFsaXplZFJvdXRlOiBzdHJpbmcsXG4gIG9wdGlvbnM6IEdldE5hbWVkUm91dGVSZWdleE9wdGlvbnNcbikge1xuICBjb25zdCByZXN1bHQgPSBnZXROYW1lZFBhcmFtZXRyaXplZFJvdXRlKFxuICAgIG5vcm1hbGl6ZWRSb3V0ZSxcbiAgICBvcHRpb25zLnByZWZpeFJvdXRlS2V5cyxcbiAgICBvcHRpb25zLmluY2x1ZGVTdWZmaXggPz8gZmFsc2UsXG4gICAgb3B0aW9ucy5pbmNsdWRlUHJlZml4ID8/IGZhbHNlLFxuICAgIG9wdGlvbnMuYmFja3JlZmVyZW5jZUR1cGxpY2F0ZUtleXMgPz8gZmFsc2VcbiAgKVxuXG4gIGxldCBuYW1lZFJlZ2V4ID0gcmVzdWx0Lm5hbWVkUGFyYW1ldGVyaXplZFJvdXRlXG4gIGlmICghb3B0aW9ucy5leGNsdWRlT3B0aW9uYWxUcmFpbGluZ1NsYXNoKSB7XG4gICAgbmFtZWRSZWdleCArPSAnKD86Lyk/J1xuICB9XG5cbiAgcmV0dXJuIHtcbiAgICAuLi5nZXRSb3V0ZVJlZ2V4KG5vcm1hbGl6ZWRSb3V0ZSwgb3B0aW9ucyksXG4gICAgbmFtZWRSZWdleDogYF4ke25hbWVkUmVnZXh9JGAsXG4gICAgcm91dGVLZXlzOiByZXN1bHQucm91dGVLZXlzLFxuICB9XG59XG5cbi8qKlxuICogR2VuZXJhdGVzIGEgbmFtZWQgcmVnZXhwLlxuICogVGhpcyBpcyBpbnRlbmRlZCB0byBiZSB1c2luZyBmb3IgYnVpbGQgdGltZSBvbmx5LlxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0TmFtZWRNaWRkbGV3YXJlUmVnZXgoXG4gIG5vcm1hbGl6ZWRSb3V0ZTogc3RyaW5nLFxuICBvcHRpb25zOiB7XG4gICAgY2F0Y2hBbGw/OiBib29sZWFuXG4gIH1cbikge1xuICBjb25zdCB7IHBhcmFtZXRlcml6ZWRSb3V0ZSB9ID0gZ2V0UGFyYW1ldHJpemVkUm91dGUoXG4gICAgbm9ybWFsaXplZFJvdXRlLFxuICAgIGZhbHNlLFxuICAgIGZhbHNlXG4gIClcbiAgY29uc3QgeyBjYXRjaEFsbCA9IHRydWUgfSA9IG9wdGlvbnNcbiAgaWYgKHBhcmFtZXRlcml6ZWRSb3V0ZSA9PT0gJy8nKSB7XG4gICAgbGV0IGNhdGNoQWxsUmVnZXggPSBjYXRjaEFsbCA/ICcuKicgOiAnJ1xuICAgIHJldHVybiB7XG4gICAgICBuYW1lZFJlZ2V4OiBgXi8ke2NhdGNoQWxsUmVnZXh9JGAsXG4gICAgfVxuICB9XG5cbiAgY29uc3QgeyBuYW1lZFBhcmFtZXRlcml6ZWRSb3V0ZSB9ID0gZ2V0TmFtZWRQYXJhbWV0cml6ZWRSb3V0ZShcbiAgICBub3JtYWxpemVkUm91dGUsXG4gICAgZmFsc2UsXG4gICAgZmFsc2UsXG4gICAgZmFsc2UsXG4gICAgZmFsc2VcbiAgKVxuICBsZXQgY2F0Y2hBbGxHcm91cGVkUmVnZXggPSBjYXRjaEFsbCA/ICcoPzooLy4qKT8pJyA6ICcnXG4gIHJldHVybiB7XG4gICAgbmFtZWRSZWdleDogYF4ke25hbWVkUGFyYW1ldGVyaXplZFJvdXRlfSR7Y2F0Y2hBbGxHcm91cGVkUmVnZXh9JGAsXG4gIH1cbn1cbiJdLCJuYW1lcyI6WyJnZXROYW1lZE1pZGRsZXdhcmVSZWdleCIsImdldE5hbWVkUm91dGVSZWdleCIsImdldFJvdXRlUmVnZXgiLCJwYXJzZVBhcmFtZXRlciIsIlBBUkFNRVRFUl9QQVRURVJOIiwicGFyYW0iLCJtYXRjaCIsInBhcnNlTWF0Y2hlZFBhcmFtZXRlciIsIm9wdGlvbmFsIiwic3RhcnRzV2l0aCIsImVuZHNXaXRoIiwic2xpY2UiLCJyZXBlYXQiLCJrZXkiLCJnZXRQYXJhbWV0cml6ZWRSb3V0ZSIsInJvdXRlIiwiaW5jbHVkZVN1ZmZpeCIsImluY2x1ZGVQcmVmaXgiLCJncm91cHMiLCJncm91cEluZGV4Iiwic2VnbWVudHMiLCJzZWdtZW50IiwicmVtb3ZlVHJhaWxpbmdTbGFzaCIsInNwbGl0IiwibWFya2VyTWF0Y2giLCJJTlRFUkNFUFRJT05fUk9VVEVfTUFSS0VSUyIsImZpbmQiLCJtIiwicGFyYW1NYXRjaGVzIiwicG9zIiwicHVzaCIsImVzY2FwZVN0cmluZ1JlZ2V4cCIsInMiLCJzdWJzdHJpbmciLCJwYXJhbWV0ZXJpemVkUm91dGUiLCJqb2luIiwibm9ybWFsaXplZFJvdXRlIiwiZXhjbHVkZU9wdGlvbmFsVHJhaWxpbmdTbGFzaCIsInJlIiwiUmVnRXhwIiwiYnVpbGRHZXRTYWZlUm91dGVLZXkiLCJpIiwicm91dGVLZXkiLCJqIiwiU3RyaW5nIiwiZnJvbUNoYXJDb2RlIiwiTWF0aCIsImZsb29yIiwiZ2V0U2FmZUtleUZyb21TZWdtZW50IiwiaW50ZXJjZXB0aW9uTWFya2VyIiwiZ2V0U2FmZVJvdXRlS2V5Iiwicm91dGVLZXlzIiwia2V5UHJlZml4IiwiYmFja3JlZmVyZW5jZUR1cGxpY2F0ZUtleXMiLCJjbGVhbmVkS2V5IiwicmVwbGFjZSIsImludmFsaWRLZXkiLCJsZW5ndGgiLCJpc05hTiIsInBhcnNlSW50IiwiZHVwbGljYXRlS2V5IiwiaW50ZXJjZXB0aW9uUHJlZml4IiwicGF0dGVybiIsImdldE5hbWVkUGFyYW1ldHJpemVkUm91dGUiLCJwcmVmaXhSb3V0ZUtleXMiLCJoYXNJbnRlcmNlcHRpb25NYXJrZXIiLCJzb21lIiwiTkVYVF9JTlRFUkNFUFRJT05fTUFSS0VSX1BSRUZJWCIsInVuZGVmaW5lZCIsIk5FWFRfUVVFUllfUEFSQU1fUFJFRklYIiwibmFtZWRQYXJhbWV0ZXJpemVkUm91dGUiLCJvcHRpb25zIiwicmVzdWx0IiwibmFtZWRSZWdleCIsImNhdGNoQWxsIiwiY2F0Y2hBbGxSZWdleCIsImNhdGNoQWxsR3JvdXBlZFJlZ2V4Il0sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(pages-dir-browser)/./node_modules/next/dist/shared/lib/router/utils/route-regex.js\n")); - -/***/ }), - -/***/ "(pages-dir-browser)/./node_modules/next/dist/shared/lib/router/utils/sorted-routes.js": -/*!*************************************************************************!*\ - !*** ./node_modules/next/dist/shared/lib/router/utils/sorted-routes.js ***! - \*************************************************************************/ -/***/ ((module, exports, __webpack_require__) => { - -"use strict"; -eval(__webpack_require__.ts("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n getSortedRouteObjects: function() {\n return getSortedRouteObjects;\n },\n getSortedRoutes: function() {\n return getSortedRoutes;\n }\n});\nclass UrlNode {\n insert(urlPath) {\n this._insert(urlPath.split('/').filter(Boolean), [], false);\n }\n smoosh() {\n return this._smoosh();\n }\n _smoosh(prefix) {\n if (prefix === void 0) prefix = '/';\n const childrenPaths = [\n ...this.children.keys()\n ].sort();\n if (this.slugName !== null) {\n childrenPaths.splice(childrenPaths.indexOf('[]'), 1);\n }\n if (this.restSlugName !== null) {\n childrenPaths.splice(childrenPaths.indexOf('[...]'), 1);\n }\n if (this.optionalRestSlugName !== null) {\n childrenPaths.splice(childrenPaths.indexOf('[[...]]'), 1);\n }\n const routes = childrenPaths.map((c)=>this.children.get(c)._smoosh(\"\" + prefix + c + \"/\")).reduce((prev, curr)=>[\n ...prev,\n ...curr\n ], []);\n if (this.slugName !== null) {\n routes.push(...this.children.get('[]')._smoosh(prefix + \"[\" + this.slugName + \"]/\"));\n }\n if (!this.placeholder) {\n const r = prefix === '/' ? '/' : prefix.slice(0, -1);\n if (this.optionalRestSlugName != null) {\n throw Object.defineProperty(new Error('You cannot define a route with the same specificity as a optional catch-all route (\"' + r + '\" and \"' + r + \"[[...\" + this.optionalRestSlugName + ']]\").'), \"__NEXT_ERROR_CODE\", {\n value: \"E458\",\n enumerable: false,\n configurable: true\n });\n }\n routes.unshift(r);\n }\n if (this.restSlugName !== null) {\n routes.push(...this.children.get('[...]')._smoosh(prefix + \"[...\" + this.restSlugName + \"]/\"));\n }\n if (this.optionalRestSlugName !== null) {\n routes.push(...this.children.get('[[...]]')._smoosh(prefix + \"[[...\" + this.optionalRestSlugName + \"]]/\"));\n }\n return routes;\n }\n _insert(urlPaths, slugNames, isCatchAll) {\n if (urlPaths.length === 0) {\n this.placeholder = false;\n return;\n }\n if (isCatchAll) {\n throw Object.defineProperty(new Error(\"Catch-all must be the last part of the URL.\"), \"__NEXT_ERROR_CODE\", {\n value: \"E392\",\n enumerable: false,\n configurable: true\n });\n }\n // The next segment in the urlPaths list\n let nextSegment = urlPaths[0];\n // Check if the segment matches `[something]`\n if (nextSegment.startsWith('[') && nextSegment.endsWith(']')) {\n // Strip `[` and `]`, leaving only `something`\n let segmentName = nextSegment.slice(1, -1);\n let isOptional = false;\n if (segmentName.startsWith('[') && segmentName.endsWith(']')) {\n // Strip optional `[` and `]`, leaving only `something`\n segmentName = segmentName.slice(1, -1);\n isOptional = true;\n }\n if (segmentName.startsWith('…')) {\n throw Object.defineProperty(new Error(\"Detected a three-dot character ('…') at ('\" + segmentName + \"'). Did you mean ('...')?\"), \"__NEXT_ERROR_CODE\", {\n value: \"E147\",\n enumerable: false,\n configurable: true\n });\n }\n if (segmentName.startsWith('...')) {\n // Strip `...`, leaving only `something`\n segmentName = segmentName.substring(3);\n isCatchAll = true;\n }\n if (segmentName.startsWith('[') || segmentName.endsWith(']')) {\n throw Object.defineProperty(new Error(\"Segment names may not start or end with extra brackets ('\" + segmentName + \"').\"), \"__NEXT_ERROR_CODE\", {\n value: \"E421\",\n enumerable: false,\n configurable: true\n });\n }\n if (segmentName.startsWith('.')) {\n throw Object.defineProperty(new Error(\"Segment names may not start with erroneous periods ('\" + segmentName + \"').\"), \"__NEXT_ERROR_CODE\", {\n value: \"E288\",\n enumerable: false,\n configurable: true\n });\n }\n function handleSlug(previousSlug, nextSlug) {\n if (previousSlug !== null) {\n // If the specific segment already has a slug but the slug is not `something`\n // This prevents collisions like:\n // pages/[post]/index.js\n // pages/[id]/index.js\n // Because currently multiple dynamic params on the same segment level are not supported\n if (previousSlug !== nextSlug) {\n // TODO: This error seems to be confusing for users, needs an error link, the description can be based on above comment.\n throw Object.defineProperty(new Error(\"You cannot use different slug names for the same dynamic path ('\" + previousSlug + \"' !== '\" + nextSlug + \"').\"), \"__NEXT_ERROR_CODE\", {\n value: \"E337\",\n enumerable: false,\n configurable: true\n });\n }\n }\n slugNames.forEach((slug)=>{\n if (slug === nextSlug) {\n throw Object.defineProperty(new Error('You cannot have the same slug name \"' + nextSlug + '\" repeat within a single dynamic path'), \"__NEXT_ERROR_CODE\", {\n value: \"E247\",\n enumerable: false,\n configurable: true\n });\n }\n if (slug.replace(/\\W/g, '') === nextSegment.replace(/\\W/g, '')) {\n throw Object.defineProperty(new Error('You cannot have the slug names \"' + slug + '\" and \"' + nextSlug + '\" differ only by non-word symbols within a single dynamic path'), \"__NEXT_ERROR_CODE\", {\n value: \"E499\",\n enumerable: false,\n configurable: true\n });\n }\n });\n slugNames.push(nextSlug);\n }\n if (isCatchAll) {\n if (isOptional) {\n if (this.restSlugName != null) {\n throw Object.defineProperty(new Error('You cannot use both an required and optional catch-all route at the same level (\"[...' + this.restSlugName + ']\" and \"' + urlPaths[0] + '\" ).'), \"__NEXT_ERROR_CODE\", {\n value: \"E299\",\n enumerable: false,\n configurable: true\n });\n }\n handleSlug(this.optionalRestSlugName, segmentName);\n // slugName is kept as it can only be one particular slugName\n this.optionalRestSlugName = segmentName;\n // nextSegment is overwritten to [[...]] so that it can later be sorted specifically\n nextSegment = '[[...]]';\n } else {\n if (this.optionalRestSlugName != null) {\n throw Object.defineProperty(new Error('You cannot use both an optional and required catch-all route at the same level (\"[[...' + this.optionalRestSlugName + ']]\" and \"' + urlPaths[0] + '\").'), \"__NEXT_ERROR_CODE\", {\n value: \"E300\",\n enumerable: false,\n configurable: true\n });\n }\n handleSlug(this.restSlugName, segmentName);\n // slugName is kept as it can only be one particular slugName\n this.restSlugName = segmentName;\n // nextSegment is overwritten to [...] so that it can later be sorted specifically\n nextSegment = '[...]';\n }\n } else {\n if (isOptional) {\n throw Object.defineProperty(new Error('Optional route parameters are not yet supported (\"' + urlPaths[0] + '\").'), \"__NEXT_ERROR_CODE\", {\n value: \"E435\",\n enumerable: false,\n configurable: true\n });\n }\n handleSlug(this.slugName, segmentName);\n // slugName is kept as it can only be one particular slugName\n this.slugName = segmentName;\n // nextSegment is overwritten to [] so that it can later be sorted specifically\n nextSegment = '[]';\n }\n }\n // If this UrlNode doesn't have the nextSegment yet we create a new child UrlNode\n if (!this.children.has(nextSegment)) {\n this.children.set(nextSegment, new UrlNode());\n }\n this.children.get(nextSegment)._insert(urlPaths.slice(1), slugNames, isCatchAll);\n }\n constructor(){\n this.placeholder = true;\n this.children = new Map();\n this.slugName = null;\n this.restSlugName = null;\n this.optionalRestSlugName = null;\n }\n}\nfunction getSortedRoutes(normalizedPages) {\n // First the UrlNode is created, and every UrlNode can have only 1 dynamic segment\n // Eg you can't have pages/[post]/abc.js and pages/[hello]/something-else.js\n // Only 1 dynamic segment per nesting level\n // So in the case that is test/integration/dynamic-routing it'll be this:\n // pages/[post]/comments.js\n // pages/blog/[post]/comment/[id].js\n // Both are fine because `pages/[post]` and `pages/blog` are on the same level\n // So in this case `UrlNode` created here has `this.slugName === 'post'`\n // And since your PR passed through `slugName` as an array basically it'd including it in too many possibilities\n // Instead what has to be passed through is the upwards path's dynamic names\n const root = new UrlNode();\n // Here the `root` gets injected multiple paths, and insert will break them up into sublevels\n normalizedPages.forEach((pagePath)=>root.insert(pagePath));\n // Smoosh will then sort those sublevels up to the point where you get the correct route definition priority\n return root.smoosh();\n}\nfunction getSortedRouteObjects(objects, getter) {\n // We're assuming here that all the pathnames are unique, that way we can\n // sort the list and use the index as the key.\n const indexes = {};\n const pathnames = [];\n for(let i = 0; i < objects.length; i++){\n const pathname = getter(objects[i]);\n indexes[pathname] = i;\n pathnames[i] = pathname;\n }\n // Sort the pathnames.\n const sorted = getSortedRoutes(pathnames);\n // Map the sorted pathnames back to the original objects using the new sorted\n // index.\n return sorted.map((pathname)=>objects[indexes[pathname]]);\n} //# sourceMappingURL=sorted-routes.js.map\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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3Qvc2hhcmVkL2xpYi9yb3V0ZXIvdXRpbHMvc29ydGVkLXJvdXRlcy5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7SUFpT2dCQSxxQkFBcUI7ZUFBckJBOztJQXRCQUMsZUFBZTtlQUFmQTs7O0FBM01oQixNQUFNQztJQU9KQyxPQUFPQyxPQUFlLEVBQVE7UUFDNUIsSUFBSSxDQUFDQyxPQUFPLENBQUNELFFBQVFFLEtBQUssQ0FBQyxLQUFLQyxNQUFNLENBQUNDLFVBQVUsRUFBRSxFQUFFO0lBQ3ZEO0lBRUFDLFNBQW1CO1FBQ2pCLE9BQU8sSUFBSSxDQUFDQyxPQUFPO0lBQ3JCO0lBRVFBLFFBQVFDLE1BQW9CLEVBQVk7UUFBaENBLElBQUFBLFdBQUFBLEtBQUFBLEdBQUFBLFNBQWlCO1FBQy9CLE1BQU1DLGdCQUFnQjtlQUFJLElBQUksQ0FBQ0MsUUFBUSxDQUFDQyxJQUFJO1NBQUcsQ0FBQ0MsSUFBSTtRQUNwRCxJQUFJLElBQUksQ0FBQ0MsUUFBUSxLQUFLLE1BQU07WUFDMUJKLGNBQWNLLE1BQU0sQ0FBQ0wsY0FBY00sT0FBTyxDQUFDLE9BQU87UUFDcEQ7UUFDQSxJQUFJLElBQUksQ0FBQ0MsWUFBWSxLQUFLLE1BQU07WUFDOUJQLGNBQWNLLE1BQU0sQ0FBQ0wsY0FBY00sT0FBTyxDQUFDLFVBQVU7UUFDdkQ7UUFDQSxJQUFJLElBQUksQ0FBQ0Usb0JBQW9CLEtBQUssTUFBTTtZQUN0Q1IsY0FBY0ssTUFBTSxDQUFDTCxjQUFjTSxPQUFPLENBQUMsWUFBWTtRQUN6RDtRQUVBLE1BQU1HLFNBQVNULGNBQ1pVLEdBQUcsQ0FBQyxDQUFDQyxJQUFNLElBQUksQ0FBQ1YsUUFBUSxDQUFDVyxHQUFHLENBQUNELEdBQUliLE9BQU8sQ0FBRSxLQUFFQyxTQUFTWSxJQUFFLE1BQ3ZERSxNQUFNLENBQUMsQ0FBQ0MsTUFBTUMsT0FBUzttQkFBSUQ7bUJBQVNDO2FBQUssRUFBRSxFQUFFO1FBRWhELElBQUksSUFBSSxDQUFDWCxRQUFRLEtBQUssTUFBTTtZQUMxQkssT0FBT08sSUFBSSxJQUNOLElBQUksQ0FBQ2YsUUFBUSxDQUFDVyxHQUFHLENBQUMsTUFBT2QsT0FBTyxDQUFJQyxTQUFPLE1BQUcsSUFBSSxDQUFDSyxRQUFRLEdBQUM7UUFFbkU7UUFFQSxJQUFJLENBQUMsSUFBSSxDQUFDYSxXQUFXLEVBQUU7WUFDckIsTUFBTUMsSUFBSW5CLFdBQVcsTUFBTSxNQUFNQSxPQUFPb0IsS0FBSyxDQUFDLEdBQUcsQ0FBQztZQUNsRCxJQUFJLElBQUksQ0FBQ1gsb0JBQW9CLElBQUksTUFBTTtnQkFDckMsTUFBTSxxQkFFTCxDQUZLLElBQUlZLE1BQ1AseUZBQXNGRixJQUFFLFlBQVNBLElBQUUsVUFBTyxJQUFJLENBQUNWLG9CQUFvQixHQUFDLFVBRGpJOzJCQUFBO2dDQUFBO2tDQUFBO2dCQUVOO1lBQ0Y7WUFFQUMsT0FBT1ksT0FBTyxDQUFDSDtRQUNqQjtRQUVBLElBQUksSUFBSSxDQUFDWCxZQUFZLEtBQUssTUFBTTtZQUM5QkUsT0FBT08sSUFBSSxJQUNOLElBQUksQ0FBQ2YsUUFBUSxDQUNiVyxHQUFHLENBQUMsU0FDSmQsT0FBTyxDQUFJQyxTQUFPLFNBQU0sSUFBSSxDQUFDUSxZQUFZLEdBQUM7UUFFakQ7UUFFQSxJQUFJLElBQUksQ0FBQ0Msb0JBQW9CLEtBQUssTUFBTTtZQUN0Q0MsT0FBT08sSUFBSSxJQUNOLElBQUksQ0FBQ2YsUUFBUSxDQUNiVyxHQUFHLENBQUMsV0FDSmQsT0FBTyxDQUFJQyxTQUFPLFVBQU8sSUFBSSxDQUFDUyxvQkFBb0IsR0FBQztRQUUxRDtRQUVBLE9BQU9DO0lBQ1Q7SUFFUWhCLFFBQ042QixRQUFrQixFQUNsQkMsU0FBbUIsRUFDbkJDLFVBQW1CLEVBQ2I7UUFDTixJQUFJRixTQUFTRyxNQUFNLEtBQUssR0FBRztZQUN6QixJQUFJLENBQUNSLFdBQVcsR0FBRztZQUNuQjtRQUNGO1FBRUEsSUFBSU8sWUFBWTtZQUNkLE1BQU0scUJBQXdELENBQXhELElBQUlKLE1BQU8sZ0RBQVg7dUJBQUE7NEJBQUE7OEJBQUE7WUFBdUQ7UUFDL0Q7UUFFQSx3Q0FBd0M7UUFDeEMsSUFBSU0sY0FBY0osUUFBUSxDQUFDLEVBQUU7UUFFN0IsNkNBQTZDO1FBQzdDLElBQUlJLFlBQVlDLFVBQVUsQ0FBQyxRQUFRRCxZQUFZRSxRQUFRLENBQUMsTUFBTTtZQUM1RCw4Q0FBOEM7WUFDOUMsSUFBSUMsY0FBY0gsWUFBWVAsS0FBSyxDQUFDLEdBQUcsQ0FBQztZQUV4QyxJQUFJVyxhQUFhO1lBQ2pCLElBQUlELFlBQVlGLFVBQVUsQ0FBQyxRQUFRRSxZQUFZRCxRQUFRLENBQUMsTUFBTTtnQkFDNUQsdURBQXVEO2dCQUN2REMsY0FBY0EsWUFBWVYsS0FBSyxDQUFDLEdBQUcsQ0FBQztnQkFDcENXLGFBQWE7WUFDZjtZQUVBLElBQUlELFlBQVlGLFVBQVUsQ0FBQyxNQUFNO2dCQUMvQixNQUFNLHFCQUVMLENBRkssSUFBSVAsTUFDUCwrQ0FBNENTLGNBQVksOEJBRHJEOzJCQUFBO2dDQUFBO2tDQUFBO2dCQUVOO1lBQ0Y7WUFFQSxJQUFJQSxZQUFZRixVQUFVLENBQUMsUUFBUTtnQkFDakMsd0NBQXdDO2dCQUN4Q0UsY0FBY0EsWUFBWUUsU0FBUyxDQUFDO2dCQUNwQ1AsYUFBYTtZQUNmO1lBRUEsSUFBSUssWUFBWUYsVUFBVSxDQUFDLFFBQVFFLFlBQVlELFFBQVEsQ0FBQyxNQUFNO2dCQUM1RCxNQUFNLHFCQUVMLENBRkssSUFBSVIsTUFDUCw4REFBMkRTLGNBQVksUUFEcEU7MkJBQUE7Z0NBQUE7a0NBQUE7Z0JBRU47WUFDRjtZQUVBLElBQUlBLFlBQVlGLFVBQVUsQ0FBQyxNQUFNO2dCQUMvQixNQUFNLHFCQUVMLENBRkssSUFBSVAsTUFDUCwwREFBdURTLGNBQVksUUFEaEU7MkJBQUE7Z0NBQUE7a0NBQUE7Z0JBRU47WUFDRjtZQUVBLFNBQVNHLFdBQVdDLFlBQTJCLEVBQUVDLFFBQWdCO2dCQUMvRCxJQUFJRCxpQkFBaUIsTUFBTTtvQkFDekIsNkVBQTZFO29CQUM3RSxpQ0FBaUM7b0JBQ2pDLHdCQUF3QjtvQkFDeEIsc0JBQXNCO29CQUN0Qix3RkFBd0Y7b0JBQ3hGLElBQUlBLGlCQUFpQkMsVUFBVTt3QkFDN0Isd0hBQXdIO3dCQUN4SCxNQUFNLHFCQUVMLENBRkssSUFBSWQsTUFDUCxxRUFBa0VhLGVBQWEsWUFBU0MsV0FBUyxRQUQ5RjttQ0FBQTt3Q0FBQTswQ0FBQTt3QkFFTjtvQkFDRjtnQkFDRjtnQkFFQVgsVUFBVVksT0FBTyxDQUFDLENBQUNDO29CQUNqQixJQUFJQSxTQUFTRixVQUFVO3dCQUNyQixNQUFNLHFCQUVMLENBRkssSUFBSWQsTUFDUCx5Q0FBc0NjLFdBQVMsMENBRDVDO21DQUFBO3dDQUFBOzBDQUFBO3dCQUVOO29CQUNGO29CQUVBLElBQUlFLEtBQUtDLE9BQU8sQ0FBQyxPQUFPLFFBQVFYLFlBQVlXLE9BQU8sQ0FBQyxPQUFPLEtBQUs7d0JBQzlELE1BQU0scUJBRUwsQ0FGSyxJQUFJakIsTUFDUCxxQ0FBa0NnQixPQUFLLFlBQVNGLFdBQVMsbUVBRHREO21DQUFBO3dDQUFBOzBDQUFBO3dCQUVOO29CQUNGO2dCQUNGO2dCQUVBWCxVQUFVUCxJQUFJLENBQUNrQjtZQUNqQjtZQUVBLElBQUlWLFlBQVk7Z0JBQ2QsSUFBSU0sWUFBWTtvQkFDZCxJQUFJLElBQUksQ0FBQ3ZCLFlBQVksSUFBSSxNQUFNO3dCQUM3QixNQUFNLHFCQUVMLENBRkssSUFBSWEsTUFDUCwwRkFBdUYsSUFBSSxDQUFDYixZQUFZLEdBQUMsYUFBVWUsUUFBUSxDQUFDLEVBQUUsR0FBQyxTQUQ1SDttQ0FBQTt3Q0FBQTswQ0FBQTt3QkFFTjtvQkFDRjtvQkFFQVUsV0FBVyxJQUFJLENBQUN4QixvQkFBb0IsRUFBRXFCO29CQUN0Qyw2REFBNkQ7b0JBQzdELElBQUksQ0FBQ3JCLG9CQUFvQixHQUFHcUI7b0JBQzVCLG9GQUFvRjtvQkFDcEZILGNBQWM7Z0JBQ2hCLE9BQU87b0JBQ0wsSUFBSSxJQUFJLENBQUNsQixvQkFBb0IsSUFBSSxNQUFNO3dCQUNyQyxNQUFNLHFCQUVMLENBRkssSUFBSVksTUFDUCwyRkFBd0YsSUFBSSxDQUFDWixvQkFBb0IsR0FBQyxjQUFXYyxRQUFRLENBQUMsRUFBRSxHQUFDLFFBRHRJO21DQUFBO3dDQUFBOzBDQUFBO3dCQUVOO29CQUNGO29CQUVBVSxXQUFXLElBQUksQ0FBQ3pCLFlBQVksRUFBRXNCO29CQUM5Qiw2REFBNkQ7b0JBQzdELElBQUksQ0FBQ3RCLFlBQVksR0FBR3NCO29CQUNwQixrRkFBa0Y7b0JBQ2xGSCxjQUFjO2dCQUNoQjtZQUNGLE9BQU87Z0JBQ0wsSUFBSUksWUFBWTtvQkFDZCxNQUFNLHFCQUVMLENBRkssSUFBSVYsTUFDUCx1REFBb0RFLFFBQVEsQ0FBQyxFQUFFLEdBQUMsUUFEN0Q7K0JBQUE7b0NBQUE7c0NBQUE7b0JBRU47Z0JBQ0Y7Z0JBQ0FVLFdBQVcsSUFBSSxDQUFDNUIsUUFBUSxFQUFFeUI7Z0JBQzFCLDZEQUE2RDtnQkFDN0QsSUFBSSxDQUFDekIsUUFBUSxHQUFHeUI7Z0JBQ2hCLCtFQUErRTtnQkFDL0VILGNBQWM7WUFDaEI7UUFDRjtRQUVBLGlGQUFpRjtRQUNqRixJQUFJLENBQUMsSUFBSSxDQUFDekIsUUFBUSxDQUFDcUMsR0FBRyxDQUFDWixjQUFjO1lBQ25DLElBQUksQ0FBQ3pCLFFBQVEsQ0FBQ3NDLEdBQUcsQ0FBQ2IsYUFBYSxJQUFJcEM7UUFDckM7UUFFQSxJQUFJLENBQUNXLFFBQVEsQ0FDVlcsR0FBRyxDQUFDYyxhQUNKakMsT0FBTyxDQUFDNkIsU0FBU0gsS0FBSyxDQUFDLElBQUlJLFdBQVdDO0lBQzNDOzthQXZNQVAsV0FBQUEsR0FBdUI7YUFDdkJoQixRQUFBQSxHQUFpQyxJQUFJdUM7YUFDckNwQyxRQUFBQSxHQUEwQjthQUMxQkcsWUFBQUEsR0FBOEI7YUFDOUJDLG9CQUFBQSxHQUFzQzs7QUFvTXhDO0FBRU8sU0FBU25CLGdCQUNkb0QsZUFBc0M7SUFFdEMsa0ZBQWtGO0lBQ2xGLDRFQUE0RTtJQUM1RSwyQ0FBMkM7SUFFM0MseUVBQXlFO0lBQ3pFLDJCQUEyQjtJQUMzQixvQ0FBb0M7SUFDcEMsOEVBQThFO0lBQzlFLHdFQUF3RTtJQUN4RSxnSEFBZ0g7SUFDaEgsNEVBQTRFO0lBQzVFLE1BQU1DLE9BQU8sSUFBSXBEO0lBRWpCLDZGQUE2RjtJQUM3Rm1ELGdCQUFnQk4sT0FBTyxDQUFDLENBQUNRLFdBQWFELEtBQUtuRCxNQUFNLENBQUNvRDtJQUNsRCw0R0FBNEc7SUFDNUcsT0FBT0QsS0FBSzdDLE1BQU07QUFDcEI7QUFFTyxTQUFTVCxzQkFDZHdELE9BQVksRUFDWkMsTUFBMEI7SUFFMUIseUVBQXlFO0lBQ3pFLDhDQUE4QztJQUM5QyxNQUFNQyxVQUFrQyxDQUFDO0lBQ3pDLE1BQU1DLFlBQXNCLEVBQUU7SUFDOUIsSUFBSyxJQUFJQyxJQUFJLEdBQUdBLElBQUlKLFFBQVFuQixNQUFNLEVBQUV1QixJQUFLO1FBQ3ZDLE1BQU1DLFdBQVdKLE9BQU9ELE9BQU8sQ0FBQ0ksRUFBRTtRQUNsQ0YsT0FBTyxDQUFDRyxTQUFTLEdBQUdEO1FBQ3BCRCxTQUFTLENBQUNDLEVBQUUsR0FBR0M7SUFDakI7SUFFQSxzQkFBc0I7SUFDdEIsTUFBTUMsU0FBUzdELGdCQUFnQjBEO0lBRS9CLDZFQUE2RTtJQUM3RSxTQUFTO0lBQ1QsT0FBT0csT0FBT3hDLEdBQUcsQ0FBQyxDQUFDdUMsV0FBYUwsT0FBTyxDQUFDRSxPQUFPLENBQUNHLFNBQVMsQ0FBQztBQUM1RCIsInNvdXJjZXMiOlsiRDpcXHNyY1xcc2hhcmVkXFxsaWJcXHJvdXRlclxcdXRpbHNcXHNvcnRlZC1yb3V0ZXMudHMiXSwic291cmNlc0NvbnRlbnQiOlsiY2xhc3MgVXJsTm9kZSB7XG4gIHBsYWNlaG9sZGVyOiBib29sZWFuID0gdHJ1ZVxuICBjaGlsZHJlbjogTWFwPHN0cmluZywgVXJsTm9kZT4gPSBuZXcgTWFwKClcbiAgc2x1Z05hbWU6IHN0cmluZyB8IG51bGwgPSBudWxsXG4gIHJlc3RTbHVnTmFtZTogc3RyaW5nIHwgbnVsbCA9IG51bGxcbiAgb3B0aW9uYWxSZXN0U2x1Z05hbWU6IHN0cmluZyB8IG51bGwgPSBudWxsXG5cbiAgaW5zZXJ0KHVybFBhdGg6IHN0cmluZyk6IHZvaWQge1xuICAgIHRoaXMuX2luc2VydCh1cmxQYXRoLnNwbGl0KCcvJykuZmlsdGVyKEJvb2xlYW4pLCBbXSwgZmFsc2UpXG4gIH1cblxuICBzbW9vc2goKTogc3RyaW5nW10ge1xuICAgIHJldHVybiB0aGlzLl9zbW9vc2goKVxuICB9XG5cbiAgcHJpdmF0ZSBfc21vb3NoKHByZWZpeDogc3RyaW5nID0gJy8nKTogc3RyaW5nW10ge1xuICAgIGNvbnN0IGNoaWxkcmVuUGF0aHMgPSBbLi4udGhpcy5jaGlsZHJlbi5rZXlzKCldLnNvcnQoKVxuICAgIGlmICh0aGlzLnNsdWdOYW1lICE9PSBudWxsKSB7XG4gICAgICBjaGlsZHJlblBhdGhzLnNwbGljZShjaGlsZHJlblBhdGhzLmluZGV4T2YoJ1tdJyksIDEpXG4gICAgfVxuICAgIGlmICh0aGlzLnJlc3RTbHVnTmFtZSAhPT0gbnVsbCkge1xuICAgICAgY2hpbGRyZW5QYXRocy5zcGxpY2UoY2hpbGRyZW5QYXRocy5pbmRleE9mKCdbLi4uXScpLCAxKVxuICAgIH1cbiAgICBpZiAodGhpcy5vcHRpb25hbFJlc3RTbHVnTmFtZSAhPT0gbnVsbCkge1xuICAgICAgY2hpbGRyZW5QYXRocy5zcGxpY2UoY2hpbGRyZW5QYXRocy5pbmRleE9mKCdbWy4uLl1dJyksIDEpXG4gICAgfVxuXG4gICAgY29uc3Qgcm91dGVzID0gY2hpbGRyZW5QYXRoc1xuICAgICAgLm1hcCgoYykgPT4gdGhpcy5jaGlsZHJlbi5nZXQoYykhLl9zbW9vc2goYCR7cHJlZml4fSR7Y30vYCkpXG4gICAgICAucmVkdWNlKChwcmV2LCBjdXJyKSA9PiBbLi4ucHJldiwgLi4uY3Vycl0sIFtdKVxuXG4gICAgaWYgKHRoaXMuc2x1Z05hbWUgIT09IG51bGwpIHtcbiAgICAgIHJvdXRlcy5wdXNoKFxuICAgICAgICAuLi50aGlzLmNoaWxkcmVuLmdldCgnW10nKSEuX3Ntb29zaChgJHtwcmVmaXh9WyR7dGhpcy5zbHVnTmFtZX1dL2ApXG4gICAgICApXG4gICAgfVxuXG4gICAgaWYgKCF0aGlzLnBsYWNlaG9sZGVyKSB7XG4gICAgICBjb25zdCByID0gcHJlZml4ID09PSAnLycgPyAnLycgOiBwcmVmaXguc2xpY2UoMCwgLTEpXG4gICAgICBpZiAodGhpcy5vcHRpb25hbFJlc3RTbHVnTmFtZSAhPSBudWxsKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgICBgWW91IGNhbm5vdCBkZWZpbmUgYSByb3V0ZSB3aXRoIHRoZSBzYW1lIHNwZWNpZmljaXR5IGFzIGEgb3B0aW9uYWwgY2F0Y2gtYWxsIHJvdXRlIChcIiR7cn1cIiBhbmQgXCIke3J9W1suLi4ke3RoaXMub3B0aW9uYWxSZXN0U2x1Z05hbWV9XV1cIikuYFxuICAgICAgICApXG4gICAgICB9XG5cbiAgICAgIHJvdXRlcy51bnNoaWZ0KHIpXG4gICAgfVxuXG4gICAgaWYgKHRoaXMucmVzdFNsdWdOYW1lICE9PSBudWxsKSB7XG4gICAgICByb3V0ZXMucHVzaChcbiAgICAgICAgLi4udGhpcy5jaGlsZHJlblxuICAgICAgICAgIC5nZXQoJ1suLi5dJykhXG4gICAgICAgICAgLl9zbW9vc2goYCR7cHJlZml4fVsuLi4ke3RoaXMucmVzdFNsdWdOYW1lfV0vYClcbiAgICAgIClcbiAgICB9XG5cbiAgICBpZiAodGhpcy5vcHRpb25hbFJlc3RTbHVnTmFtZSAhPT0gbnVsbCkge1xuICAgICAgcm91dGVzLnB1c2goXG4gICAgICAgIC4uLnRoaXMuY2hpbGRyZW5cbiAgICAgICAgICAuZ2V0KCdbWy4uLl1dJykhXG4gICAgICAgICAgLl9zbW9vc2goYCR7cHJlZml4fVtbLi4uJHt0aGlzLm9wdGlvbmFsUmVzdFNsdWdOYW1lfV1dL2ApXG4gICAgICApXG4gICAgfVxuXG4gICAgcmV0dXJuIHJvdXRlc1xuICB9XG5cbiAgcHJpdmF0ZSBfaW5zZXJ0KFxuICAgIHVybFBhdGhzOiBzdHJpbmdbXSxcbiAgICBzbHVnTmFtZXM6IHN0cmluZ1tdLFxuICAgIGlzQ2F0Y2hBbGw6IGJvb2xlYW5cbiAgKTogdm9pZCB7XG4gICAgaWYgKHVybFBhdGhzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgdGhpcy5wbGFjZWhvbGRlciA9IGZhbHNlXG4gICAgICByZXR1cm5cbiAgICB9XG5cbiAgICBpZiAoaXNDYXRjaEFsbCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBDYXRjaC1hbGwgbXVzdCBiZSB0aGUgbGFzdCBwYXJ0IG9mIHRoZSBVUkwuYClcbiAgICB9XG5cbiAgICAvLyBUaGUgbmV4dCBzZWdtZW50IGluIHRoZSB1cmxQYXRocyBsaXN0XG4gICAgbGV0IG5leHRTZWdtZW50ID0gdXJsUGF0aHNbMF1cblxuICAgIC8vIENoZWNrIGlmIHRoZSBzZWdtZW50IG1hdGNoZXMgYFtzb21ldGhpbmddYFxuICAgIGlmIChuZXh0U2VnbWVudC5zdGFydHNXaXRoKCdbJykgJiYgbmV4dFNlZ21lbnQuZW5kc1dpdGgoJ10nKSkge1xuICAgICAgLy8gU3RyaXAgYFtgIGFuZCBgXWAsIGxlYXZpbmcgb25seSBgc29tZXRoaW5nYFxuICAgICAgbGV0IHNlZ21lbnROYW1lID0gbmV4dFNlZ21lbnQuc2xpY2UoMSwgLTEpXG5cbiAgICAgIGxldCBpc09wdGlvbmFsID0gZmFsc2VcbiAgICAgIGlmIChzZWdtZW50TmFtZS5zdGFydHNXaXRoKCdbJykgJiYgc2VnbWVudE5hbWUuZW5kc1dpdGgoJ10nKSkge1xuICAgICAgICAvLyBTdHJpcCBvcHRpb25hbCBgW2AgYW5kIGBdYCwgbGVhdmluZyBvbmx5IGBzb21ldGhpbmdgXG4gICAgICAgIHNlZ21lbnROYW1lID0gc2VnbWVudE5hbWUuc2xpY2UoMSwgLTEpXG4gICAgICAgIGlzT3B0aW9uYWwgPSB0cnVlXG4gICAgICB9XG5cbiAgICAgIGlmIChzZWdtZW50TmFtZS5zdGFydHNXaXRoKCfigKYnKSkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgICAgYERldGVjdGVkIGEgdGhyZWUtZG90IGNoYXJhY3RlciAoJ+KApicpIGF0ICgnJHtzZWdtZW50TmFtZX0nKS4gRGlkIHlvdSBtZWFuICgnLi4uJyk/YFxuICAgICAgICApXG4gICAgICB9XG5cbiAgICAgIGlmIChzZWdtZW50TmFtZS5zdGFydHNXaXRoKCcuLi4nKSkge1xuICAgICAgICAvLyBTdHJpcCBgLi4uYCwgbGVhdmluZyBvbmx5IGBzb21ldGhpbmdgXG4gICAgICAgIHNlZ21lbnROYW1lID0gc2VnbWVudE5hbWUuc3Vic3RyaW5nKDMpXG4gICAgICAgIGlzQ2F0Y2hBbGwgPSB0cnVlXG4gICAgICB9XG5cbiAgICAgIGlmIChzZWdtZW50TmFtZS5zdGFydHNXaXRoKCdbJykgfHwgc2VnbWVudE5hbWUuZW5kc1dpdGgoJ10nKSkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgICAgYFNlZ21lbnQgbmFtZXMgbWF5IG5vdCBzdGFydCBvciBlbmQgd2l0aCBleHRyYSBicmFja2V0cyAoJyR7c2VnbWVudE5hbWV9JykuYFxuICAgICAgICApXG4gICAgICB9XG5cbiAgICAgIGlmIChzZWdtZW50TmFtZS5zdGFydHNXaXRoKCcuJykpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICAgIGBTZWdtZW50IG5hbWVzIG1heSBub3Qgc3RhcnQgd2l0aCBlcnJvbmVvdXMgcGVyaW9kcyAoJyR7c2VnbWVudE5hbWV9JykuYFxuICAgICAgICApXG4gICAgICB9XG5cbiAgICAgIGZ1bmN0aW9uIGhhbmRsZVNsdWcocHJldmlvdXNTbHVnOiBzdHJpbmcgfCBudWxsLCBuZXh0U2x1Zzogc3RyaW5nKSB7XG4gICAgICAgIGlmIChwcmV2aW91c1NsdWcgIT09IG51bGwpIHtcbiAgICAgICAgICAvLyBJZiB0aGUgc3BlY2lmaWMgc2VnbWVudCBhbHJlYWR5IGhhcyBhIHNsdWcgYnV0IHRoZSBzbHVnIGlzIG5vdCBgc29tZXRoaW5nYFxuICAgICAgICAgIC8vIFRoaXMgcHJldmVudHMgY29sbGlzaW9ucyBsaWtlOlxuICAgICAgICAgIC8vIHBhZ2VzL1twb3N0XS9pbmRleC5qc1xuICAgICAgICAgIC8vIHBhZ2VzL1tpZF0vaW5kZXguanNcbiAgICAgICAgICAvLyBCZWNhdXNlIGN1cnJlbnRseSBtdWx0aXBsZSBkeW5hbWljIHBhcmFtcyBvbiB0aGUgc2FtZSBzZWdtZW50IGxldmVsIGFyZSBub3Qgc3VwcG9ydGVkXG4gICAgICAgICAgaWYgKHByZXZpb3VzU2x1ZyAhPT0gbmV4dFNsdWcpIHtcbiAgICAgICAgICAgIC8vIFRPRE86IFRoaXMgZXJyb3Igc2VlbXMgdG8gYmUgY29uZnVzaW5nIGZvciB1c2VycywgbmVlZHMgYW4gZXJyb3IgbGluaywgdGhlIGRlc2NyaXB0aW9uIGNhbiBiZSBiYXNlZCBvbiBhYm92ZSBjb21tZW50LlxuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICAgICAgICBgWW91IGNhbm5vdCB1c2UgZGlmZmVyZW50IHNsdWcgbmFtZXMgZm9yIHRoZSBzYW1lIGR5bmFtaWMgcGF0aCAoJyR7cHJldmlvdXNTbHVnfScgIT09ICcke25leHRTbHVnfScpLmBcbiAgICAgICAgICAgIClcbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBzbHVnTmFtZXMuZm9yRWFjaCgoc2x1ZykgPT4ge1xuICAgICAgICAgIGlmIChzbHVnID09PSBuZXh0U2x1Zykge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICAgICAgICBgWW91IGNhbm5vdCBoYXZlIHRoZSBzYW1lIHNsdWcgbmFtZSBcIiR7bmV4dFNsdWd9XCIgcmVwZWF0IHdpdGhpbiBhIHNpbmdsZSBkeW5hbWljIHBhdGhgXG4gICAgICAgICAgICApXG4gICAgICAgICAgfVxuXG4gICAgICAgICAgaWYgKHNsdWcucmVwbGFjZSgvXFxXL2csICcnKSA9PT0gbmV4dFNlZ21lbnQucmVwbGFjZSgvXFxXL2csICcnKSkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICAgICAgICBgWW91IGNhbm5vdCBoYXZlIHRoZSBzbHVnIG5hbWVzIFwiJHtzbHVnfVwiIGFuZCBcIiR7bmV4dFNsdWd9XCIgZGlmZmVyIG9ubHkgYnkgbm9uLXdvcmQgc3ltYm9scyB3aXRoaW4gYSBzaW5nbGUgZHluYW1pYyBwYXRoYFxuICAgICAgICAgICAgKVxuICAgICAgICAgIH1cbiAgICAgICAgfSlcblxuICAgICAgICBzbHVnTmFtZXMucHVzaChuZXh0U2x1ZylcbiAgICAgIH1cblxuICAgICAgaWYgKGlzQ2F0Y2hBbGwpIHtcbiAgICAgICAgaWYgKGlzT3B0aW9uYWwpIHtcbiAgICAgICAgICBpZiAodGhpcy5yZXN0U2x1Z05hbWUgIT0gbnVsbCkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICAgICAgICBgWW91IGNhbm5vdCB1c2UgYm90aCBhbiByZXF1aXJlZCBhbmQgb3B0aW9uYWwgY2F0Y2gtYWxsIHJvdXRlIGF0IHRoZSBzYW1lIGxldmVsIChcIlsuLi4ke3RoaXMucmVzdFNsdWdOYW1lfV1cIiBhbmQgXCIke3VybFBhdGhzWzBdfVwiICkuYFxuICAgICAgICAgICAgKVxuICAgICAgICAgIH1cblxuICAgICAgICAgIGhhbmRsZVNsdWcodGhpcy5vcHRpb25hbFJlc3RTbHVnTmFtZSwgc2VnbWVudE5hbWUpXG4gICAgICAgICAgLy8gc2x1Z05hbWUgaXMga2VwdCBhcyBpdCBjYW4gb25seSBiZSBvbmUgcGFydGljdWxhciBzbHVnTmFtZVxuICAgICAgICAgIHRoaXMub3B0aW9uYWxSZXN0U2x1Z05hbWUgPSBzZWdtZW50TmFtZVxuICAgICAgICAgIC8vIG5leHRTZWdtZW50IGlzIG92ZXJ3cml0dGVuIHRvIFtbLi4uXV0gc28gdGhhdCBpdCBjYW4gbGF0ZXIgYmUgc29ydGVkIHNwZWNpZmljYWxseVxuICAgICAgICAgIG5leHRTZWdtZW50ID0gJ1tbLi4uXV0nXG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgaWYgKHRoaXMub3B0aW9uYWxSZXN0U2x1Z05hbWUgIT0gbnVsbCkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICAgICAgICBgWW91IGNhbm5vdCB1c2UgYm90aCBhbiBvcHRpb25hbCBhbmQgcmVxdWlyZWQgY2F0Y2gtYWxsIHJvdXRlIGF0IHRoZSBzYW1lIGxldmVsIChcIltbLi4uJHt0aGlzLm9wdGlvbmFsUmVzdFNsdWdOYW1lfV1dXCIgYW5kIFwiJHt1cmxQYXRoc1swXX1cIikuYFxuICAgICAgICAgICAgKVxuICAgICAgICAgIH1cblxuICAgICAgICAgIGhhbmRsZVNsdWcodGhpcy5yZXN0U2x1Z05hbWUsIHNlZ21lbnROYW1lKVxuICAgICAgICAgIC8vIHNsdWdOYW1lIGlzIGtlcHQgYXMgaXQgY2FuIG9ubHkgYmUgb25lIHBhcnRpY3VsYXIgc2x1Z05hbWVcbiAgICAgICAgICB0aGlzLnJlc3RTbHVnTmFtZSA9IHNlZ21lbnROYW1lXG4gICAgICAgICAgLy8gbmV4dFNlZ21lbnQgaXMgb3ZlcndyaXR0ZW4gdG8gWy4uLl0gc28gdGhhdCBpdCBjYW4gbGF0ZXIgYmUgc29ydGVkIHNwZWNpZmljYWxseVxuICAgICAgICAgIG5leHRTZWdtZW50ID0gJ1suLi5dJ1xuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBpZiAoaXNPcHRpb25hbCkge1xuICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgICAgIGBPcHRpb25hbCByb3V0ZSBwYXJhbWV0ZXJzIGFyZSBub3QgeWV0IHN1cHBvcnRlZCAoXCIke3VybFBhdGhzWzBdfVwiKS5gXG4gICAgICAgICAgKVxuICAgICAgICB9XG4gICAgICAgIGhhbmRsZVNsdWcodGhpcy5zbHVnTmFtZSwgc2VnbWVudE5hbWUpXG4gICAgICAgIC8vIHNsdWdOYW1lIGlzIGtlcHQgYXMgaXQgY2FuIG9ubHkgYmUgb25lIHBhcnRpY3VsYXIgc2x1Z05hbWVcbiAgICAgICAgdGhpcy5zbHVnTmFtZSA9IHNlZ21lbnROYW1lXG4gICAgICAgIC8vIG5leHRTZWdtZW50IGlzIG92ZXJ3cml0dGVuIHRvIFtdIHNvIHRoYXQgaXQgY2FuIGxhdGVyIGJlIHNvcnRlZCBzcGVjaWZpY2FsbHlcbiAgICAgICAgbmV4dFNlZ21lbnQgPSAnW10nXG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gSWYgdGhpcyBVcmxOb2RlIGRvZXNuJ3QgaGF2ZSB0aGUgbmV4dFNlZ21lbnQgeWV0IHdlIGNyZWF0ZSBhIG5ldyBjaGlsZCBVcmxOb2RlXG4gICAgaWYgKCF0aGlzLmNoaWxkcmVuLmhhcyhuZXh0U2VnbWVudCkpIHtcbiAgICAgIHRoaXMuY2hpbGRyZW4uc2V0KG5leHRTZWdtZW50LCBuZXcgVXJsTm9kZSgpKVxuICAgIH1cblxuICAgIHRoaXMuY2hpbGRyZW5cbiAgICAgIC5nZXQobmV4dFNlZ21lbnQpIVxuICAgICAgLl9pbnNlcnQodXJsUGF0aHMuc2xpY2UoMSksIHNsdWdOYW1lcywgaXNDYXRjaEFsbClcbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0U29ydGVkUm91dGVzKFxuICBub3JtYWxpemVkUGFnZXM6IFJlYWRvbmx5QXJyYXk8c3RyaW5nPlxuKTogc3RyaW5nW10ge1xuICAvLyBGaXJzdCB0aGUgVXJsTm9kZSBpcyBjcmVhdGVkLCBhbmQgZXZlcnkgVXJsTm9kZSBjYW4gaGF2ZSBvbmx5IDEgZHluYW1pYyBzZWdtZW50XG4gIC8vIEVnIHlvdSBjYW4ndCBoYXZlIHBhZ2VzL1twb3N0XS9hYmMuanMgYW5kIHBhZ2VzL1toZWxsb10vc29tZXRoaW5nLWVsc2UuanNcbiAgLy8gT25seSAxIGR5bmFtaWMgc2VnbWVudCBwZXIgbmVzdGluZyBsZXZlbFxuXG4gIC8vIFNvIGluIHRoZSBjYXNlIHRoYXQgaXMgdGVzdC9pbnRlZ3JhdGlvbi9keW5hbWljLXJvdXRpbmcgaXQnbGwgYmUgdGhpczpcbiAgLy8gcGFnZXMvW3Bvc3RdL2NvbW1lbnRzLmpzXG4gIC8vIHBhZ2VzL2Jsb2cvW3Bvc3RdL2NvbW1lbnQvW2lkXS5qc1xuICAvLyBCb3RoIGFyZSBmaW5lIGJlY2F1c2UgYHBhZ2VzL1twb3N0XWAgYW5kIGBwYWdlcy9ibG9nYCBhcmUgb24gdGhlIHNhbWUgbGV2ZWxcbiAgLy8gU28gaW4gdGhpcyBjYXNlIGBVcmxOb2RlYCBjcmVhdGVkIGhlcmUgaGFzIGB0aGlzLnNsdWdOYW1lID09PSAncG9zdCdgXG4gIC8vIEFuZCBzaW5jZSB5b3VyIFBSIHBhc3NlZCB0aHJvdWdoIGBzbHVnTmFtZWAgYXMgYW4gYXJyYXkgYmFzaWNhbGx5IGl0J2QgaW5jbHVkaW5nIGl0IGluIHRvbyBtYW55IHBvc3NpYmlsaXRpZXNcbiAgLy8gSW5zdGVhZCB3aGF0IGhhcyB0byBiZSBwYXNzZWQgdGhyb3VnaCBpcyB0aGUgdXB3YXJkcyBwYXRoJ3MgZHluYW1pYyBuYW1lc1xuICBjb25zdCByb290ID0gbmV3IFVybE5vZGUoKVxuXG4gIC8vIEhlcmUgdGhlIGByb290YCBnZXRzIGluamVjdGVkIG11bHRpcGxlIHBhdGhzLCBhbmQgaW5zZXJ0IHdpbGwgYnJlYWsgdGhlbSB1cCBpbnRvIHN1YmxldmVsc1xuICBub3JtYWxpemVkUGFnZXMuZm9yRWFjaCgocGFnZVBhdGgpID0+IHJvb3QuaW5zZXJ0KHBhZ2VQYXRoKSlcbiAgLy8gU21vb3NoIHdpbGwgdGhlbiBzb3J0IHRob3NlIHN1YmxldmVscyB1cCB0byB0aGUgcG9pbnQgd2hlcmUgeW91IGdldCB0aGUgY29ycmVjdCByb3V0ZSBkZWZpbml0aW9uIHByaW9yaXR5XG4gIHJldHVybiByb290LnNtb29zaCgpXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRTb3J0ZWRSb3V0ZU9iamVjdHM8VD4oXG4gIG9iamVjdHM6IFRbXSxcbiAgZ2V0dGVyOiAob2JqOiBUKSA9PiBzdHJpbmdcbik6IFRbXSB7XG4gIC8vIFdlJ3JlIGFzc3VtaW5nIGhlcmUgdGhhdCBhbGwgdGhlIHBhdGhuYW1lcyBhcmUgdW5pcXVlLCB0aGF0IHdheSB3ZSBjYW5cbiAgLy8gc29ydCB0aGUgbGlzdCBhbmQgdXNlIHRoZSBpbmRleCBhcyB0aGUga2V5LlxuICBjb25zdCBpbmRleGVzOiBSZWNvcmQ8c3RyaW5nLCBudW1iZXI+ID0ge31cbiAgY29uc3QgcGF0aG5hbWVzOiBzdHJpbmdbXSA9IFtdXG4gIGZvciAobGV0IGkgPSAwOyBpIDwgb2JqZWN0cy5sZW5ndGg7IGkrKykge1xuICAgIGNvbnN0IHBhdGhuYW1lID0gZ2V0dGVyKG9iamVjdHNbaV0pXG4gICAgaW5kZXhlc1twYXRobmFtZV0gPSBpXG4gICAgcGF0aG5hbWVzW2ldID0gcGF0aG5hbWVcbiAgfVxuXG4gIC8vIFNvcnQgdGhlIHBhdGhuYW1lcy5cbiAgY29uc3Qgc29ydGVkID0gZ2V0U29ydGVkUm91dGVzKHBhdGhuYW1lcylcblxuICAvLyBNYXAgdGhlIHNvcnRlZCBwYXRobmFtZXMgYmFjayB0byB0aGUgb3JpZ2luYWwgb2JqZWN0cyB1c2luZyB0aGUgbmV3IHNvcnRlZFxuICAvLyBpbmRleC5cbiAgcmV0dXJuIHNvcnRlZC5tYXAoKHBhdGhuYW1lKSA9PiBvYmplY3RzW2luZGV4ZXNbcGF0aG5hbWVdXSlcbn1cbiJdLCJuYW1lcyI6WyJnZXRTb3J0ZWRSb3V0ZU9iamVjdHMiLCJnZXRTb3J0ZWRSb3V0ZXMiLCJVcmxOb2RlIiwiaW5zZXJ0IiwidXJsUGF0aCIsIl9pbnNlcnQiLCJzcGxpdCIsImZpbHRlciIsIkJvb2xlYW4iLCJzbW9vc2giLCJfc21vb3NoIiwicHJlZml4IiwiY2hpbGRyZW5QYXRocyIsImNoaWxkcmVuIiwia2V5cyIsInNvcnQiLCJzbHVnTmFtZSIsInNwbGljZSIsImluZGV4T2YiLCJyZXN0U2x1Z05hbWUiLCJvcHRpb25hbFJlc3RTbHVnTmFtZSIsInJvdXRlcyIsIm1hcCIsImMiLCJnZXQiLCJyZWR1Y2UiLCJwcmV2IiwiY3VyciIsInB1c2giLCJwbGFjZWhvbGRlciIsInIiLCJzbGljZSIsIkVycm9yIiwidW5zaGlmdCIsInVybFBhdGhzIiwic2x1Z05hbWVzIiwiaXNDYXRjaEFsbCIsImxlbmd0aCIsIm5leHRTZWdtZW50Iiwic3RhcnRzV2l0aCIsImVuZHNXaXRoIiwic2VnbWVudE5hbWUiLCJpc09wdGlvbmFsIiwic3Vic3RyaW5nIiwiaGFuZGxlU2x1ZyIsInByZXZpb3VzU2x1ZyIsIm5leHRTbHVnIiwiZm9yRWFjaCIsInNsdWciLCJyZXBsYWNlIiwiaGFzIiwic2V0IiwiTWFwIiwibm9ybWFsaXplZFBhZ2VzIiwicm9vdCIsInBhZ2VQYXRoIiwib2JqZWN0cyIsImdldHRlciIsImluZGV4ZXMiLCJwYXRobmFtZXMiLCJpIiwicGF0aG5hbWUiLCJzb3J0ZWQiXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(pages-dir-browser)/./node_modules/next/dist/shared/lib/router/utils/sorted-routes.js\n")); - -/***/ }), - -/***/ "(pages-dir-browser)/./node_modules/next/dist/shared/lib/runtime-config.external.js": -/*!**********************************************************************!*\ - !*** ./node_modules/next/dist/shared/lib/runtime-config.external.js ***! - \**********************************************************************/ -/***/ ((module, exports, __webpack_require__) => { - -"use strict"; -eval(__webpack_require__.ts("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n default: function() {\n return _default;\n },\n setConfig: function() {\n return setConfig;\n }\n});\nlet runtimeConfig;\nconst _default = ()=>{\n return runtimeConfig;\n};\nfunction setConfig(configValue) {\n runtimeConfig = configValue;\n} //# sourceMappingURL=runtime-config.external.js.map\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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3Qvc2hhcmVkL2xpYi9ydW50aW1lLWNvbmZpZy5leHRlcm5hbC5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7SUFFQSxPQUVDO2VBRkQ7O0lBSWdCQSxTQUFTO2VBQVRBOzs7QUFOaEIsSUFBSUM7TUFFSixXQUFlO0lBQ2IsT0FBT0E7QUFDVDtBQUVPLFNBQVNELFVBQVVFLFdBQWdCO0lBQ3hDRCxnQkFBZ0JDO0FBQ2xCIiwic291cmNlcyI6WyJEOlxcc3JjXFxzaGFyZWRcXGxpYlxccnVudGltZS1jb25maWcuZXh0ZXJuYWwudHMiXSwic291cmNlc0NvbnRlbnQiOlsibGV0IHJ1bnRpbWVDb25maWc6IGFueVxuXG5leHBvcnQgZGVmYXVsdCAoKSA9PiB7XG4gIHJldHVybiBydW50aW1lQ29uZmlnXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBzZXRDb25maWcoY29uZmlnVmFsdWU6IGFueSk6IHZvaWQge1xuICBydW50aW1lQ29uZmlnID0gY29uZmlnVmFsdWVcbn1cbiJdLCJuYW1lcyI6WyJzZXRDb25maWciLCJydW50aW1lQ29uZmlnIiwiY29uZmlnVmFsdWUiXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(pages-dir-browser)/./node_modules/next/dist/shared/lib/runtime-config.external.js\n")); - -/***/ }), - -/***/ "(pages-dir-browser)/./node_modules/next/dist/shared/lib/segment.js": -/*!******************************************************!*\ - !*** ./node_modules/next/dist/shared/lib/segment.js ***! - \******************************************************/ -/***/ ((module, exports, __webpack_require__) => { - -"use strict"; -eval(__webpack_require__.ts("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n DEFAULT_SEGMENT_KEY: function() {\n return DEFAULT_SEGMENT_KEY;\n },\n PAGE_SEGMENT_KEY: function() {\n return PAGE_SEGMENT_KEY;\n },\n addSearchParamsIfPageSegment: function() {\n return addSearchParamsIfPageSegment;\n },\n isGroupSegment: function() {\n return isGroupSegment;\n },\n isParallelRouteSegment: function() {\n return isParallelRouteSegment;\n }\n});\nfunction isGroupSegment(segment) {\n // Use array[0] for performant purpose\n return segment[0] === '(' && segment.endsWith(')');\n}\nfunction isParallelRouteSegment(segment) {\n return segment.startsWith('@') && segment !== '@children';\n}\nfunction addSearchParamsIfPageSegment(segment, searchParams) {\n const isPageSegment = segment.includes(PAGE_SEGMENT_KEY);\n if (isPageSegment) {\n const stringifiedQuery = JSON.stringify(searchParams);\n return stringifiedQuery !== '{}' ? PAGE_SEGMENT_KEY + '?' + stringifiedQuery : PAGE_SEGMENT_KEY;\n }\n return segment;\n}\nconst PAGE_SEGMENT_KEY = '__PAGE__';\nconst DEFAULT_SEGMENT_KEY = '__DEFAULT__'; //# sourceMappingURL=segment.js.map\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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3Qvc2hhcmVkL2xpYi9zZWdtZW50LmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7OztJQTRCYUEsbUJBQW1CO2VBQW5CQTs7SUFEQUMsZ0JBQWdCO2VBQWhCQTs7SUFoQkdDLDRCQUE0QjtlQUE1QkE7O0lBVEFDLGNBQWM7ZUFBZEE7O0lBS0FDLHNCQUFzQjtlQUF0QkE7OztBQUxULFNBQVNELGVBQWVFLE9BQWU7SUFDNUMsc0NBQXNDO0lBQ3RDLE9BQU9BLE9BQU8sQ0FBQyxFQUFFLEtBQUssT0FBT0EsUUFBUUMsUUFBUSxDQUFDO0FBQ2hEO0FBRU8sU0FBU0YsdUJBQXVCQyxPQUFlO0lBQ3BELE9BQU9BLFFBQVFFLFVBQVUsQ0FBQyxRQUFRRixZQUFZO0FBQ2hEO0FBRU8sU0FBU0gsNkJBQ2RHLE9BQWdCLEVBQ2hCRyxZQUEyRDtJQUUzRCxNQUFNQyxnQkFBZ0JKLFFBQVFLLFFBQVEsQ0FBQ1Q7SUFFdkMsSUFBSVEsZUFBZTtRQUNqQixNQUFNRSxtQkFBbUJDLEtBQUtDLFNBQVMsQ0FBQ0w7UUFDeEMsT0FBT0cscUJBQXFCLE9BQ3hCVixtQkFBbUIsTUFBTVUsbUJBQ3pCVjtJQUNOO0lBRUEsT0FBT0k7QUFDVDtBQUVPLE1BQU1KLG1CQUFtQjtBQUN6QixNQUFNRCxzQkFBc0IiLCJzb3VyY2VzIjpbIkQ6XFxzcmNcXHNoYXJlZFxcbGliXFxzZWdtZW50LnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgU2VnbWVudCB9IGZyb20gJy4uLy4uL3NlcnZlci9hcHAtcmVuZGVyL3R5cGVzJ1xuXG5leHBvcnQgZnVuY3Rpb24gaXNHcm91cFNlZ21lbnQoc2VnbWVudDogc3RyaW5nKSB7XG4gIC8vIFVzZSBhcnJheVswXSBmb3IgcGVyZm9ybWFudCBwdXJwb3NlXG4gIHJldHVybiBzZWdtZW50WzBdID09PSAnKCcgJiYgc2VnbWVudC5lbmRzV2l0aCgnKScpXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpc1BhcmFsbGVsUm91dGVTZWdtZW50KHNlZ21lbnQ6IHN0cmluZykge1xuICByZXR1cm4gc2VnbWVudC5zdGFydHNXaXRoKCdAJykgJiYgc2VnbWVudCAhPT0gJ0BjaGlsZHJlbidcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGFkZFNlYXJjaFBhcmFtc0lmUGFnZVNlZ21lbnQoXG4gIHNlZ21lbnQ6IFNlZ21lbnQsXG4gIHNlYXJjaFBhcmFtczogUmVjb3JkPHN0cmluZywgc3RyaW5nIHwgc3RyaW5nW10gfCB1bmRlZmluZWQ+XG4pIHtcbiAgY29uc3QgaXNQYWdlU2VnbWVudCA9IHNlZ21lbnQuaW5jbHVkZXMoUEFHRV9TRUdNRU5UX0tFWSlcblxuICBpZiAoaXNQYWdlU2VnbWVudCkge1xuICAgIGNvbnN0IHN0cmluZ2lmaWVkUXVlcnkgPSBKU09OLnN0cmluZ2lmeShzZWFyY2hQYXJhbXMpXG4gICAgcmV0dXJuIHN0cmluZ2lmaWVkUXVlcnkgIT09ICd7fSdcbiAgICAgID8gUEFHRV9TRUdNRU5UX0tFWSArICc/JyArIHN0cmluZ2lmaWVkUXVlcnlcbiAgICAgIDogUEFHRV9TRUdNRU5UX0tFWVxuICB9XG5cbiAgcmV0dXJuIHNlZ21lbnRcbn1cblxuZXhwb3J0IGNvbnN0IFBBR0VfU0VHTUVOVF9LRVkgPSAnX19QQUdFX18nXG5leHBvcnQgY29uc3QgREVGQVVMVF9TRUdNRU5UX0tFWSA9ICdfX0RFRkFVTFRfXydcbiJdLCJuYW1lcyI6WyJERUZBVUxUX1NFR01FTlRfS0VZIiwiUEFHRV9TRUdNRU5UX0tFWSIsImFkZFNlYXJjaFBhcmFtc0lmUGFnZVNlZ21lbnQiLCJpc0dyb3VwU2VnbWVudCIsImlzUGFyYWxsZWxSb3V0ZVNlZ21lbnQiLCJzZWdtZW50IiwiZW5kc1dpdGgiLCJzdGFydHNXaXRoIiwic2VhcmNoUGFyYW1zIiwiaXNQYWdlU2VnbWVudCIsImluY2x1ZGVzIiwic3RyaW5naWZpZWRRdWVyeSIsIkpTT04iLCJzdHJpbmdpZnkiXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(pages-dir-browser)/./node_modules/next/dist/shared/lib/segment.js\n")); - -/***/ }), - -/***/ "(pages-dir-browser)/./node_modules/next/dist/shared/lib/utils.js": -/*!****************************************************!*\ - !*** ./node_modules/next/dist/shared/lib/utils.js ***! - \****************************************************/ -/***/ ((module, exports, __webpack_require__) => { - -"use strict"; -eval(__webpack_require__.ts("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n DecodeError: function() {\n return DecodeError;\n },\n MiddlewareNotFoundError: function() {\n return MiddlewareNotFoundError;\n },\n MissingStaticPage: function() {\n return MissingStaticPage;\n },\n NormalizeError: function() {\n return NormalizeError;\n },\n PageNotFoundError: function() {\n return PageNotFoundError;\n },\n SP: function() {\n return SP;\n },\n ST: function() {\n return ST;\n },\n WEB_VITALS: function() {\n return WEB_VITALS;\n },\n execOnce: function() {\n return execOnce;\n },\n getDisplayName: function() {\n return getDisplayName;\n },\n getLocationOrigin: function() {\n return getLocationOrigin;\n },\n getURL: function() {\n return getURL;\n },\n isAbsoluteUrl: function() {\n return isAbsoluteUrl;\n },\n isResSent: function() {\n return isResSent;\n },\n loadGetInitialProps: function() {\n return loadGetInitialProps;\n },\n normalizeRepeatedSlashes: function() {\n return normalizeRepeatedSlashes;\n },\n stringifyError: function() {\n return stringifyError;\n }\n});\nconst WEB_VITALS = [\n 'CLS',\n 'FCP',\n 'FID',\n 'INP',\n 'LCP',\n 'TTFB'\n];\nfunction execOnce(fn) {\n let used = false;\n let result;\n return function() {\n for(var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++){\n args[_key] = arguments[_key];\n }\n if (!used) {\n used = true;\n result = fn(...args);\n }\n return result;\n };\n}\n// Scheme: https://tools.ietf.org/html/rfc3986#section-3.1\n// Absolute URL: https://tools.ietf.org/html/rfc3986#section-4.3\nconst ABSOLUTE_URL_REGEX = /^[a-zA-Z][a-zA-Z\\d+\\-.]*?:/;\nconst isAbsoluteUrl = (url)=>ABSOLUTE_URL_REGEX.test(url);\nfunction getLocationOrigin() {\n const { protocol, hostname, port } = window.location;\n return protocol + \"//\" + hostname + (port ? ':' + port : '');\n}\nfunction getURL() {\n const { href } = window.location;\n const origin = getLocationOrigin();\n return href.substring(origin.length);\n}\nfunction getDisplayName(Component) {\n return typeof Component === 'string' ? Component : Component.displayName || Component.name || 'Unknown';\n}\nfunction isResSent(res) {\n return res.finished || res.headersSent;\n}\nfunction normalizeRepeatedSlashes(url) {\n const urlParts = url.split('?');\n const urlNoQuery = urlParts[0];\n return urlNoQuery // first we replace any non-encoded backslashes with forward\n // then normalize repeated forward slashes\n .replace(/\\\\/g, '/').replace(/\\/\\/+/g, '/') + (urlParts[1] ? \"?\" + urlParts.slice(1).join('?') : '');\n}\nasync function loadGetInitialProps(App, ctx) {\n if (true) {\n var _App_prototype;\n if ((_App_prototype = App.prototype) == null ? void 0 : _App_prototype.getInitialProps) {\n const message = '\"' + getDisplayName(App) + '.getInitialProps()\" is defined as an instance method - visit https://nextjs.org/docs/messages/get-initial-props-as-an-instance-method for more information.';\n throw Object.defineProperty(new Error(message), \"__NEXT_ERROR_CODE\", {\n value: \"E394\",\n enumerable: false,\n configurable: true\n });\n }\n }\n // when called from _app `ctx` is nested in `ctx`\n const res = ctx.res || ctx.ctx && ctx.ctx.res;\n if (!App.getInitialProps) {\n if (ctx.ctx && ctx.Component) {\n // @ts-ignore pageProps default\n return {\n pageProps: await loadGetInitialProps(ctx.Component, ctx.ctx)\n };\n }\n return {};\n }\n const props = await App.getInitialProps(ctx);\n if (res && isResSent(res)) {\n return props;\n }\n if (!props) {\n const message = '\"' + getDisplayName(App) + '.getInitialProps()\" should resolve to an object. But found \"' + props + '\" instead.';\n throw Object.defineProperty(new Error(message), \"__NEXT_ERROR_CODE\", {\n value: \"E394\",\n enumerable: false,\n configurable: true\n });\n }\n if (true) {\n if (Object.keys(props).length === 0 && !ctx.ctx) {\n console.warn(\"\" + getDisplayName(App) + \" returned an empty object from `getInitialProps`. This de-optimizes and prevents automatic static optimization. https://nextjs.org/docs/messages/empty-object-getInitialProps\");\n }\n }\n return props;\n}\nconst SP = typeof performance !== 'undefined';\nconst ST = SP && [\n 'mark',\n 'measure',\n 'getEntriesByName'\n].every((method)=>typeof performance[method] === 'function');\nclass DecodeError extends Error {\n}\nclass NormalizeError extends Error {\n}\nclass PageNotFoundError extends Error {\n constructor(page){\n super();\n this.code = 'ENOENT';\n this.name = 'PageNotFoundError';\n this.message = \"Cannot find module for page: \" + page;\n }\n}\nclass MissingStaticPage extends Error {\n constructor(page, message){\n super();\n this.message = \"Failed to load static file for page: \" + page + \" \" + message;\n }\n}\nclass MiddlewareNotFoundError extends Error {\n constructor(){\n super();\n this.code = 'ENOENT';\n this.message = \"Cannot find the middleware module\";\n }\n}\nfunction stringifyError(error) {\n return JSON.stringify({\n message: error.message,\n stack: error.stack\n });\n} //# sourceMappingURL=utils.js.map\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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3Qvc2hhcmVkL2xpYi91dGlscy5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7SUFvYWFBLFdBQVc7ZUFBWEE7O0lBb0JBQyx1QkFBdUI7ZUFBdkJBOztJQVBBQyxpQkFBaUI7ZUFBakJBOztJQVpBQyxjQUFjO2VBQWRBOztJQUNBQyxpQkFBaUI7ZUFBakJBOztJQVRBQyxFQUFFO2VBQUZBOztJQUNBQyxFQUFFO2VBQUZBOztJQWxYQUMsVUFBVTtlQUFWQTs7SUFzUUdDLFFBQVE7ZUFBUkE7O0lBK0JBQyxjQUFjO2VBQWRBOztJQVhBQyxpQkFBaUI7ZUFBakJBOztJQUtBQyxNQUFNO2VBQU5BOztJQVBIQyxhQUFhO2VBQWJBOztJQW1CR0MsU0FBUztlQUFUQTs7SUFrQk1DLG1CQUFtQjtlQUFuQkE7O0lBZE5DLHdCQUF3QjtlQUF4QkE7O0lBK0dBQyxjQUFjO2VBQWRBOzs7QUE5WlQsTUFBTVQsYUFBYTtJQUFDO0lBQU87SUFBTztJQUFPO0lBQU87SUFBTztDQUFPO0FBc1E5RCxTQUFTQyxTQUNkUyxFQUFLO0lBRUwsSUFBSUMsT0FBTztJQUNYLElBQUlDO0lBRUosT0FBUTt5Q0FBSUMsT0FBQUEsSUFBQUEsTUFBQUEsT0FBQUEsT0FBQUEsR0FBQUEsT0FBQUEsTUFBQUEsT0FBQUE7WUFBQUEsSUFBQUEsQ0FBQUEsS0FBQUEsR0FBQUEsU0FBQUEsQ0FBQUEsS0FBQUE7O1FBQ1YsSUFBSSxDQUFDRixNQUFNO1lBQ1RBLE9BQU87WUFDUEMsU0FBU0YsTUFBTUc7UUFDakI7UUFDQSxPQUFPRDtJQUNUO0FBQ0Y7QUFFQSwwREFBMEQ7QUFDMUQsZ0VBQWdFO0FBQ2hFLE1BQU1FLHFCQUFxQjtBQUNwQixNQUFNVCxnQkFBZ0IsQ0FBQ1UsTUFBZ0JELG1CQUFtQkUsSUFBSSxDQUFDRDtBQUUvRCxTQUFTWjtJQUNkLE1BQU0sRUFBRWMsUUFBUSxFQUFFQyxRQUFRLEVBQUVDLElBQUksRUFBRSxH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RztRQUNaLElBQUksQ0FBQzlCLElBQUksR0FBRztRQUNaLElBQUksQ0FBQ2lCLE9BQU8sR0FBSSxrQ0FBK0JZO0lBQ2pEO0FBQ0Y7QUFFTyxNQUFNOUQsMEJBQTBCbUQ7SUFDckNVLFlBQVlDLElBQVksRUFBRVosT0FBZSxDQUFFO1FBQ3pDLEtBQUs7UUFDTCxJQUFJLENBQUNBLE9BQU8sR0FBSSwwQ0FBdUNZLE9BQUssTUFBR1o7SUFDakU7QUFDRjtBQUVPLE1BQU1uRCxnQ0FBZ0NvRDtJQUUzQ1UsYUFBYztRQUNaLEtBQUs7UUFDTCxJQUFJLENBQUNFLElBQUksR0FBRztRQUNaLElBQUksQ0FBQ2IsT0FBTyxHQUFJO0lBQ2xCO0FBQ0Y7QUFXTyxTQUFTcEMsZUFBZWtELEtBQVk7SUFDekMsT0FBT0MsS0FBS0MsU0FBUyxDQUFDO1FBQUVoQixTQUFTYyxNQUFNZCxPQUFPO1FBQUVpQixPQUFPSCxNQUFNRyxLQUFLO0lBQUM7QUFDckUiLCJzb3VyY2VzIjpbIkQ6XFxzcmNcXHNoYXJlZFxcbGliXFx1dGlscy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IEh0bWxQcm9wcyB9IGZyb20gJy4vaHRtbC1jb250ZXh0LnNoYXJlZC1ydW50aW1lJ1xuaW1wb3J0IHR5cGUgeyBDb21wb25lbnRUeXBlLCBKU1ggfSBmcm9tICdyZWFjdCdcbmltcG9ydCB0eXBlIHsgRG9tYWluTG9jYWxlIH0gZnJvbSAnLi4vLi4vc2VydmVyL2NvbmZpZydcbmltcG9ydCB0eXBlIHsgRW52IH0gZnJvbSAnQG5leHQvZW52J1xuaW1wb3J0IHR5cGUgeyBJbmNvbWluZ01lc3NhZ2UsIFNlcnZlclJlc3BvbnNlIH0gZnJvbSAnaHR0cCdcbmltcG9ydCB0eXBlIHsgTmV4dFJvdXRlciB9IGZyb20gJy4vcm91dGVyL3JvdXRlcidcbmltcG9ydCB0eXBlIHsgUGFyc2VkVXJsUXVlcnkgfSBmcm9tICdxdWVyeXN0cmluZydcbmltcG9ydCB0eXBlIHsgUHJldmlld0RhdGEgfSBmcm9tICcuLi8uLi90eXBlcydcbmltcG9ydCB0eXBlIHsgQ09NUElMRVJfTkFNRVMgfSBmcm9tICcuL2NvbnN0YW50cydcbmltcG9ydCB0eXBlIGZzIGZyb20gJ2ZzJ1xuXG5leHBvcnQgdHlwZSBOZXh0Q29tcG9uZW50VHlwZTxcbiAgQ29udGV4dCBleHRlbmRzIEJhc2VDb250ZXh0ID0gTmV4dFBhZ2VDb250ZXh0LFxuICBJbml0aWFsUHJvcHMgPSB7fSxcbiAgUHJvcHMgPSB7fSxcbj4gPSBDb21wb25lbnRUeXBlPFByb3BzPiAmIHtcbiAgLyoqXG4gICAqIFVzZWQgZm9yIGluaXRpYWwgcGFnZSBsb2FkIGRhdGEgcG9wdWxhdGlvbi4gRGF0YSByZXR1cm5lZCBmcm9tIGBnZXRJbml0aWFsUHJvcHNgIGlzIHNlcmlhbGl6ZWQgd2hlbiBzZXJ2ZXIgcmVuZGVyZWQuXG4gICAqIE1ha2Ugc3VyZSB0byByZXR1cm4gcGxhaW4gYE9iamVjdGAgd2l0aG91dCB1c2luZyBgRGF0ZWAsIGBNYXBgLCBgU2V0YC5cbiAgICogQHBhcmFtIGNvbnRleHQgQ29udGV4dCBvZiBgcGFnZWBcbiAgICovXG4gIGdldEluaXRpYWxQcm9wcz8oY29udGV4dDogQ29udGV4dCk6IEluaXRpYWxQcm9wcyB8IFByb21pc2U8SW5pdGlhbFByb3BzPlxufVxuXG5leHBvcnQgdHlwZSBEb2N1bWVudFR5cGUgPSBOZXh0Q29tcG9uZW50VHlwZTxcbiAgRG9jdW1lbnRDb250ZXh0LFxuICBEb2N1bWVudEluaXRpYWxQcm9wcyxcbiAgRG9jdW1lbnRQcm9wc1xuPlxuXG5leHBvcnQgdHlwZSBBcHBUeXBlPFAgPSB7fT4gPSBOZXh0Q29tcG9uZW50VHlwZTxcbiAgQXBwQ29udGV4dFR5cGUsXG4gIFAsXG4gIEFwcFByb3BzVHlwZTxhbnksIFA+XG4+XG5cbmV4cG9ydCB0eXBlIEFwcFRyZWVUeXBlID0gQ29tcG9uZW50VHlwZTxcbiAgQXBwSW5pdGlhbFByb3BzICYgeyBbbmFtZTogc3RyaW5nXTogYW55IH1cbj5cblxuLyoqXG4gKiBXZWIgdml0YWxzIHByb3ZpZGVkIHRvIF9hcHAucmVwb3J0V2ViVml0YWxzIGJ5IENvcmUgV2ViIFZpdGFscyBwbHVnaW4gZGV2ZWxvcGVkIGJ5IEdvb2dsZSBDaHJvbWUgdGVhbS5cbiAqIGh0dHBzOi8vbmV4dGpzLm9yZy9ibG9nL25leHQtOS00I2ludGVncmF0ZWQtd2ViLXZpdGFscy1yZXBvcnRpbmdcbiAqL1xuZXhwb3J0IGNvbnN0IFdFQl9WSVRBTFMgPSBbJ0NMUycsICdGQ1AnLCAnRklEJywgJ0lOUCcsICdMQ1AnLCAnVFRGQiddIGFzIGNvbnN0XG5leHBvcnQgdHlwZSBOZXh0V2ViVml0YWxzTWV0cmljID0ge1xuICBpZDogc3RyaW5nXG4gIHN0YXJ0VGltZTogbnVtYmVyXG4gIHZhbHVlOiBudW1iZXJcbiAgYXR0cmlidXRpb24/OiB7IFtrZXk6IHN0cmluZ106IHVua25vd24gfVxufSAmIChcbiAgfCB7XG4gICAgICBsYWJlbDogJ3dlYi12aXRhbCdcbiAgICAgIG5hbWU6ICh0eXBlb2YgV0VCX1ZJVEFMUylbbnVtYmVyXVxuICAgIH1cbiAgfCB7XG4gICAgICBsYWJlbDogJ2N1c3RvbSdcbiAgICAgIG5hbWU6XG4gICAgICAgIHwgJ05leHQuanMtaHlkcmF0aW9uJ1xuICAgICAgICB8ICdOZXh0LmpzLXJvdXRlLWNoYW5nZS10by1yZW5kZXInXG4gICAgICAgIHwgJ05leHQuanMtcmVuZGVyJ1xuICAgIH1cbilcblxuZXhwb3J0IHR5cGUgRW5oYW5jZXI8Qz4gPSAoQ29tcG9uZW50OiBDKSA9PiBDXG5cbmV4cG9ydCB0eXBlIENvbXBvbmVudHNFbmhhbmNlciA9XG4gIHwge1xuICAgICAgZW5oYW5jZUFwcD86IEVuaGFuY2VyPEFwcFR5cGU+XG4gICAgICBlbmhhbmNlQ29tcG9uZW50PzogRW5oYW5jZXI8TmV4dENvbXBvbmVudFR5cGU+XG4gICAgfVxuICB8IEVuaGFuY2VyPE5leHRDb21wb25lbnRUeXBlPlxuXG5leHBvcnQgdHlwZSBSZW5kZXJQYWdlUmVzdWx0ID0ge1xuICBodG1sOiBzdHJpbmdcbiAgaGVhZD86IEFycmF5PEpTWC5FbGVtZW50IHwgbnVsbD5cbn1cblxuZXhwb3J0IHR5cGUgUmVuZGVyUGFnZSA9IChcbiAgb3B0aW9ucz86IENvbXBvbmVudHNFbmhhbmNlclxuKSA9PiBEb2N1bWVudEluaXRpYWxQcm9wcyB8IFByb21pc2U8RG9jdW1lbnRJbml0aWFsUHJvcHM+XG5cbmV4cG9ydCB0eXBlIEJhc2VDb250ZXh0ID0ge1xuICByZXM/OiBTZXJ2ZXJSZXNwb25zZVxuICBbazogc3RyaW5nXTogYW55XG59XG5cbmV4cG9ydCB0eXBlIE5FWFRfREFUQSA9IHtcbiAgcHJvcHM6IFJlY29yZDxzdHJpbmcsIGFueT5cbiAgcGFnZTogc3RyaW5nXG4gIHF1ZXJ5OiBQYXJzZWRVcmxRdWVyeVxuICBidWlsZElkOiBzdHJpbmdcbiAgYXNzZXRQcmVmaXg/OiBzdHJpbmdcbiAgcnVudGltZUNvbmZpZz86IHsgW2tleTogc3RyaW5nXTogYW55IH1cbiAgbmV4dEV4cG9ydD86IGJvb2xlYW5cbiAgYXV0b0V4cG9ydD86IGJvb2xlYW5cbiAgaXNGYWxsYmFjaz86IGJvb2xlYW5cbiAgaXNFeHBlcmltZW50YWxDb21waWxlPzogYm9vbGVhblxuICBkeW5hbWljSWRzPzogKHN0cmluZyB8IG51bWJlcilbXVxuICBlcnI/OiBFcnJvciAmIHtcbiAgICBzdGF0dXNDb2RlPzogbnVtYmVyXG4gICAgc291cmNlPzogdHlwZW9mIENPTVBJTEVSX05BTUVTLnNlcnZlciB8IHR5cGVvZiBDT01QSUxFUl9OQU1FUy5lZGdlU2VydmVyXG4gIH1cbiAgZ3NwPzogYm9vbGVhblxuICBnc3NwPzogYm9vbGVhblxuICBjdXN0b21TZXJ2ZXI/OiBib29sZWFuXG4gIGdpcD86IGJvb2xlYW5cbiAgYXBwR2lwPzogYm9vbGVhblxuICBsb2NhbGU/OiBzdHJpbmdcbiAgbG9jYWxlcz86IHJlYWRvbmx5IHN0cmluZ1tdXG4gIGRlZmF1bHRMb2NhbGU/OiBzdHJpbmdcbiAgZG9tYWluTG9jYWxlcz86IHJlYWRvbmx5IERvbWFpbkxvY2FsZVtdXG4gIHNjcmlwdExvYWRlcj86IGFueVtdXG4gIGlzUHJldmlldz86IGJvb2xlYW5cbiAgbm90Rm91bmRTcmNQYWdlPzogc3RyaW5nXG59XG5cbi8qKlxuICogYE5leHRgIGNvbnRleHRcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBOZXh0UGFnZUNvbnRleHQge1xuICAvKipcbiAgICogRXJyb3Igb2JqZWN0IGlmIGVuY291bnRlcmVkIGR1cmluZyByZW5kZXJpbmdcbiAgICovXG4gIGVycj86IChFcnJvciAmIHsgc3RhdHVzQ29kZT86IG51bWJlciB9KSB8IG51bGxcbiAgLyoqXG4gICAqIGBIVFRQYCByZXF1ZXN0IG9iamVjdC5cbiAgICovXG4gIHJlcT86IEluY29taW5nTWVzc2FnZVxuICAvKipcbiAgICogYEhUVFBgIHJlc3BvbnNlIG9iamVjdC5cbiAgICovXG4gIHJlcz86IFNlcnZlclJlc3BvbnNlXG4gIC8qKlxuICAgKiBQYXRoIHNlY3Rpb24gb2YgYFVSTGAuXG4gICAqL1xuICBwYXRobmFtZTogc3RyaW5nXG4gIC8qKlxuICAgKiBRdWVyeSBzdHJpbmcgc2VjdGlvbiBvZiBgVVJMYCBwYXJzZWQgYXMgYW4gb2JqZWN0LlxuICAgKi9cbiAgcXVlcnk6IFBhcnNlZFVybFF1ZXJ5XG4gIC8qKlxuICAgKiBgU3RyaW5nYCBvZiB0aGUgYWN0dWFsIHBhdGggaW5jbHVkaW5nIHF1ZXJ5LlxuICAgKi9cbiAgYXNQYXRoPzogc3RyaW5nXG4gIC8qKlxuICAgKiBUaGUgY3VycmVudGx5IGFjdGl2ZSBsb2NhbGVcbiAgICovXG4gIGxvY2FsZT86IHN0cmluZ1xuICAvKipcbiAgICogQWxsIGNvbmZpZ3VyZWQgbG9jYWxlc1xuICAgKi9cbiAgbG9jYWxlcz86IHJlYWRvbmx5IHN0cmluZ1tdXG4gIC8qKlxuICAgKiBUaGUgY29uZmlndXJlZCBkZWZhdWx0IGxvY2FsZVxuICAgKi9cbiAgZGVmYXVsdExvY2FsZT86IHN0cmluZ1xuICAvKipcbiAgICogYENvbXBvbmVudGAgdGhlIHRyZWUgb2YgdGhlIEFwcCB0byB1c2UgaWYgbmVlZGluZyB0byByZW5kZXIgc2VwYXJhdGVseVxuICAgKi9cbiAgQXBwVHJlZTogQXBwVHJlZVR5cGVcbn1cblxuZXhwb3J0IHR5cGUgQXBwQ29udGV4dFR5cGU8Um91dGVyIGV4dGVuZHMgTmV4dFJvdXRlciA9IE5leHRSb3V0ZXI+ID0ge1xuICBDb21wb25lbnQ6IE5leHRDb21wb25lbnRUeXBlPE5leHRQYWdlQ29udGV4dD5cbiAgQXBwVHJlZTogQXBwVHJlZVR5cGVcbiAgY3R4OiBOZXh0UGFnZUNvbnRleHRcbiAgcm91dGVyOiBSb3V0ZXJcbn1cblxuZXhwb3J0IHR5cGUgQXBwSW5pdGlhbFByb3BzPFBhZ2VQcm9wcyA9IGFueT4gPSB7XG4gIHBhZ2VQcm9wczogUGFnZVByb3BzXG59XG5cbmV4cG9ydCB0eXBlIEFwcFByb3BzVHlwZTxcbiAgUm91dGVyIGV4dGVuZHMgTmV4dFJvdXRlciA9IE5leHRSb3V0ZXIsXG4gIFBhZ2VQcm9wcyA9IHt9LFxuPiA9IEFwcEluaXRpYWxQcm9wczxQYWdlUHJvcHM+ICYge1xuICBDb21wb25lbnQ6IE5leHRDb21wb25lbnRUeXBlPE5leHRQYWdlQ29udGV4dCwgYW55LCBhbnk+XG4gIHJvdXRlcjogUm91dGVyXG4gIF9fTl9TU0c/OiBib29sZWFuXG4gIF9fTl9TU1A/OiBib29sZWFuXG59XG5cbmV4cG9ydCB0eXBlIERvY3VtZW50Q29udGV4dCA9IE5leHRQYWdlQ29udGV4dCAmIHtcbiAgcmVuZGVyUGFnZTogUmVuZGVyUGFnZVxuICBkZWZhdWx0R2V0SW5pdGlhbFByb3BzKFxuICAgIGN0eDogRG9jdW1lbnRDb250ZXh0LFxuICAgIG9wdGlvbnM/OiB7IG5vbmNlPzogc3RyaW5nIH1cbiAgKTogUHJvbWlzZTxEb2N1bWVudEluaXRpYWxQcm9wcz5cbn1cblxuZXhwb3J0IHR5cGUgRG9jdW1lbnRJbml0aWFsUHJvcHMgPSBSZW5kZXJQYWdlUmVzdWx0ICYge1xuICBzdHlsZXM/OiBSZWFjdC5SZWFjdEVsZW1lbnRbXSB8IEl0ZXJhYmxlPFJlYWN0LlJlYWN0Tm9kZT4gfCBKU1guRWxlbWVudFxufVxuXG5leHBvcnQgdHlwZSBEb2N1bWVudFByb3BzID0gRG9jdW1lbnRJbml0aWFsUHJvcHMgJiBIdG1sUHJvcHNcblxuLyoqXG4gKiBOZXh0IGBBUElgIHJvdXRlIHJlcXVlc3RcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBOZXh0QXBpUmVxdWVzdCBleHRlbmRzIEluY29taW5nTWVzc2FnZSB7XG4gIC8qKlxuICAgKiBPYmplY3Qgb2YgYHF1ZXJ5YCB2YWx1ZXMgZnJvbSB1cmxcbiAgICovXG4gIHF1ZXJ5OiBQYXJ0aWFsPHtcbiAgICBba2V5OiBzdHJpbmddOiBzdHJpbmcgfCBzdHJpbmdbXVxuICB9PlxuICAvKipcbiAgICogT2JqZWN0IG9mIGBjb29raWVzYCBmcm9tIGhlYWRlclxuICAgKi9cbiAgY29va2llczogUGFydGlhbDx7XG4gICAgW2tleTogc3RyaW5nXTogc3RyaW5nXG4gIH0+XG5cbiAgYm9keTogYW55XG5cbiAgZW52OiBFbnZcblxuICBkcmFmdE1vZGU/OiBib29sZWFuXG5cbiAgcHJldmlldz86IGJvb2xlYW5cbiAgLyoqXG4gICAqIFByZXZpZXcgZGF0YSBzZXQgb24gdGhlIHJlcXVlc3QsIGlmIGFueVxuICAgKiAqL1xuICBwcmV2aWV3RGF0YT86IFByZXZpZXdEYXRhXG59XG5cbi8qKlxuICogU2VuZCBib2R5IG9mIHJlc3BvbnNlXG4gKi9cbnR5cGUgU2VuZDxUPiA9IChib2R5OiBUKSA9PiB2b2lkXG5cbi8qKlxuICogTmV4dCBgQVBJYCByb3V0ZSByZXNwb25zZVxuICovXG5leHBvcnQgdHlwZSBOZXh0QXBpUmVzcG9uc2U8RGF0YSA9IGFueT4gPSBTZXJ2ZXJSZXNwb25zZSAmIHtcbiAgLyoqXG4gICAqIFNlbmQgZGF0YSBgYW55YCBkYXRhIGluIHJlc3BvbnNlXG4gICAqL1xuICBzZW5kOiBTZW5kPERhdGE+XG4gIC8qKlxuICAgKiBTZW5kIGRhdGEgYGpzb25gIGRhdGEgaW4gcmVzcG9uc2VcbiAgICovXG4gIGpzb246IFNlbmQ8RGF0YT5cbiAgc3RhdHVzOiAoc3RhdHVzQ29kZTogbnVtYmVyKSA9PiBOZXh0QXBpUmVzcG9uc2U8RGF0YT5cbiAgcmVkaXJlY3QodXJsOiBzdHJpbmcpOiBOZXh0QXBpUmVzcG9uc2U8RGF0YT5cbiAgcmVkaXJlY3Qoc3RhdHVzOiBudW1iZXIsIHVybDogc3RyaW5nKTogTmV4dEFwaVJlc3BvbnNlPERhdGE+XG5cbiAgLyoqXG4gICAqIFNldCBkcmFmdCBtb2RlXG4gICAqL1xuICBzZXREcmFmdE1vZGU6IChvcHRpb25zOiB7IGVuYWJsZTogYm9vbGVhbiB9KSA9PiBOZXh0QXBpUmVzcG9uc2U8RGF0YT5cblxuICAvKipcbiAgICogU2V0IHByZXZpZXcgZGF0YSBmb3IgTmV4dC5qcycgcHJlcmVuZGVyIG1vZGVcbiAgICovXG4gIHNldFByZXZpZXdEYXRhOiAoXG4gICAgZGF0YTogb2JqZWN0IHwgc3RyaW5nLFxuICAgIG9wdGlvbnM/OiB7XG4gICAgICAvKipcbiAgICAgICAqIFNwZWNpZmllcyB0aGUgbnVtYmVyIChpbiBzZWNvbmRzKSBmb3IgdGhlIHByZXZpZXcgc2Vzc2lvbiB0byBsYXN0IGZvci5cbiAgICAgICAqIFRoZSBnaXZlbiBudW1iZXIgd2lsbCBiZSBjb252ZXJ0ZWQgdG8gYW4gaW50ZWdlciBieSByb3VuZGluZyBkb3duLlxuICAgICAgICogQnkgZGVmYXVsdCwgbm8gbWF4aW11bSBhZ2UgaXMgc2V0IGFuZCB0aGUgcHJldmlldyBzZXNzaW9uIGZpbmlzaGVzXG4gICAgICAgKiB3aGVuIHRoZSBjbGllbnQgc2h1dHMgZG93biAoYnJvd3NlciBpcyBjbG9zZWQpLlxuICAgICAgICovXG4gICAgICBtYXhBZ2U/OiBudW1iZXJcbiAgICAgIC8qKlxuICAgICAgICogU3BlY2lmaWVzIHRoZSBwYXRoIGZvciB0aGUgcHJldmlldyBzZXNzaW9uIHRvIHdvcmsgdW5kZXIuIEJ5IGRlZmF1bHQsXG4gICAgICAgKiB0aGUgcGF0aCBpcyBjb25zaWRlcmVkIHRoZSBcImRlZmF1bHQgcGF0aFwiLCBpLmUuLCBhbnkgcGFnZXMgdW5kZXIgXCIvXCIuXG4gICAgICAgKi9cbiAgICAgIHBhdGg/OiBzdHJpbmdcbiAgICB9XG4gICkgPT4gTmV4dEFwaVJlc3BvbnNlPERhdGE+XG5cbiAgLyoqXG4gICAqIENsZWFyIHByZXZpZXcgZGF0YSBmb3IgTmV4dC5qcycgcHJlcmVuZGVyIG1vZGVcbiAgICovXG4gIGNsZWFyUHJldmlld0RhdGE6IChvcHRpb25zPzogeyBwYXRoPzogc3RyaW5nIH0pID0+IE5leHRBcGlSZXNwb25zZTxEYXRhPlxuXG4gIC8qKlxuICAgKiBSZXZhbGlkYXRlIGEgc3BlY2lmaWMgcGFnZSBhbmQgcmVnZW5lcmF0ZSBpdCB1c2luZyBPbi1EZW1hbmQgSW5jcmVtZW50YWxcbiAgICogU3RhdGljIFJlZ2VuZXJhdGlvbi5cbiAgICogVGhlIHBhdGggc2hvdWxkIGJlIGFuIGFjdHVhbCBwYXRoLCBub3QgYSByZXdyaXR0ZW4gcGF0aC4gRS5nLiBmb3JcbiAgICogXCIvYmxvZy9bc2x1Z11cIiB0aGlzIHNob3VsZCBiZSBcIi9ibG9nL3Bvc3QtMVwiLlxuICAgKiBAbGluayBodHRwczovL25leHRqcy5vcmcvZG9jcy9hcHAvYnVpbGRpbmcteW91ci1hcHBsaWNhdGlvbi9kYXRhLWZldGNoaW5nL2luY3JlbWVudGFsLXN0YXRpYy1yZWdlbmVyYXRpb24jb24tZGVtYW5kLXJldmFsaWRhdGlvbi13aXRoLXJldmFsaWRhdGVwYXRoXG4gICAqL1xuICByZXZhbGlkYXRlOiAoXG4gICAgdXJsUGF0aDogc3RyaW5nLFxuICAgIG9wdHM/OiB7XG4gICAgICB1bnN0YWJsZV9vbmx5R2VuZXJhdGVkPzogYm9vbGVhblxuICAgIH1cbiAgKSA9PiBQcm9taXNlPHZvaWQ+XG59XG5cbi8qKlxuICogTmV4dCBgQVBJYCByb3V0ZSBoYW5kbGVyXG4gKi9cbmV4cG9ydCB0eXBlIE5leHRBcGlIYW5kbGVyPFQgPSBhbnk+ID0gKFxuICByZXE6IE5leHRBcGlSZXF1ZXN0LFxuICByZXM6IE5leHRBcGlSZXNwb25zZTxUPlxuKSA9PiB1bmtub3duIHwgUHJvbWlzZTx1bmtub3duPlxuXG4vKipcbiAqIFV0aWxzXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBleGVjT25jZTxUIGV4dGVuZHMgKC4uLmFyZ3M6IGFueVtdKSA9PiBSZXR1cm5UeXBlPFQ+PihcbiAgZm46IFRcbik6IFQge1xuICBsZXQgdXNlZCA9IGZhbHNlXG4gIGxldCByZXN1bHQ6IFJldHVyblR5cGU8VD5cblxuICByZXR1cm4gKCguLi5hcmdzOiBhbnlbXSkgPT4ge1xuICAgIGlmICghdXNlZCkge1xuICAgICAgdXNlZCA9IHRydWVcbiAgICAgIHJlc3VsdCA9IGZuKC4uLmFyZ3MpXG4gICAgfVxuICAgIHJldHVybiByZXN1bHRcbiAgfSkgYXMgVFxufVxuXG4vLyBTY2hlbWU6IGh0dHBzOi8vdG9vbHMuaWV0Zi5vcmcvaHRtbC9yZmMzOTg2I3NlY3Rpb24tMy4xXG4vLyBBYnNvbHV0ZSBVUkw6IGh0dHBzOi8vdG9vbHMuaWV0Zi5vcmcvaHRtbC9yZmMzOTg2I3NlY3Rpb24tNC4zXG5jb25zdCBBQlNPTFVURV9VUkxfUkVHRVggPSAvXlthLXpBLVpdW2EtekEtWlxcZCtcXC0uXSo/Oi9cbmV4cG9ydCBjb25zdCBpc0Fic29sdXRlVXJsID0gKHVybDogc3RyaW5nKSA9PiBBQlNPTFVURV9VUkxfUkVHRVgudGVzdCh1cmwpXG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRMb2NhdGlvbk9yaWdpbigpIHtcbiAgY29uc3QgeyBwcm90b2NvbCwgaG9zdG5hbWUsIHBvcnQgfSA9IHdpbmRvdy5sb2NhdGlvblxuICByZXR1cm4gYCR7cHJvdG9jb2x9Ly8ke2hvc3RuYW1lfSR7cG9ydCA/ICc6JyArIHBvcnQgOiAnJ31gXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRVUkwoKSB7XG4gIGNvbnN0IHsgaHJlZiB9ID0gd2luZG93LmxvY2F0aW9uXG4gIGNvbnN0IG9yaWdpbiA9IGdldExvY2F0aW9uT3JpZ2luKClcbiAgcmV0dXJuIGhyZWYuc3Vic3RyaW5nKG9yaWdpbi5sZW5ndGgpXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXREaXNwbGF5TmFtZTxQPihDb21wb25lbnQ6IENvbXBvbmVudFR5cGU8UD4pIHtcbiAgcmV0dXJuIHR5cGVvZiBDb21wb25lbnQgPT09ICdzdHJpbmcnXG4gICAgPyBDb21wb25lbnRcbiAgICA6IENvbXBvbmVudC5kaXNwbGF5TmFtZSB8fCBDb21wb25lbnQubmFtZSB8fCAnVW5rbm93bidcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGlzUmVzU2VudChyZXM6IFNlcnZlclJlc3BvbnNlKSB7XG4gIHJldHVybiByZXMuZmluaXNoZWQgfHwgcmVzLmhlYWRlcnNTZW50XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBub3JtYWxpemVSZXBlYXRlZFNsYXNoZXModXJsOiBzdHJpbmcpIHtcbiAgY29uc3QgdXJsUGFydHMgPSB1cmwuc3BsaXQoJz8nKVxuICBjb25zdCB1cmxOb1F1ZXJ5ID0gdXJsUGFydHNbMF1cblxuICByZXR1cm4gKFxuICAgIHVybE5vUXVlcnlcbiAgICAgIC8vIGZpcnN0IHdlIHJlcGxhY2UgYW55IG5vbi1lbmNvZGVkIGJhY2tzbGFzaGVzIHdpdGggZm9yd2FyZFxuICAgICAgLy8gdGhlbiBub3JtYWxpemUgcmVwZWF0ZWQgZm9yd2FyZCBzbGFzaGVzXG4gICAgICAucmVwbGFjZSgvXFxcXC9nLCAnLycpXG4gICAgICAucmVwbGFjZSgvXFwvXFwvKy9nLCAnLycpICtcbiAgICAodXJsUGFydHNbMV0gPyBgPyR7dXJsUGFydHMuc2xpY2UoMSkuam9pbignPycpfWAgOiAnJylcbiAgKVxufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gbG9hZEdldEluaXRpYWxQcm9wczxcbiAgQyBleHRlbmRzIEJhc2VDb250ZXh0LFxuICBJUCA9IHt9LFxuICBQID0ge30sXG4+KEFwcDogTmV4dENvbXBvbmVudFR5cGU8QywgSVAsIFA+LCBjdHg6IEMpOiBQcm9taXNlPElQPiB7XG4gIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSB7XG4gICAgaWYgKEFwcC5wcm90b3R5cGU/LmdldEluaXRpYWxQcm9wcykge1xuICAgICAgY29uc3QgbWVzc2FnZSA9IGBcIiR7Z2V0RGlzcGxheU5hbWUoXG4gICAgICAgIEFwcFxuICAgICAgKX0uZ2V0SW5pdGlhbFByb3BzKClcIiBpcyBkZWZpbmVkIGFzIGFuIGluc3RhbmNlIG1ldGhvZCAtIHZpc2l0IGh0dHBzOi8vbmV4dGpzLm9yZy9kb2NzL21lc3NhZ2VzL2dldC1pbml0aWFsLXByb3BzLWFzLWFuLWluc3RhbmNlLW1ldGhvZCBmb3IgbW9yZSBpbmZvcm1hdGlvbi5gXG4gICAgICB0aHJvdyBuZXcgRXJyb3IobWVzc2FnZSlcbiAgICB9XG4gIH1cbiAgLy8gd2hlbiBjYWxsZWQgZnJvbSBfYXBwIGBjdHhgIGlzIG5lc3RlZCBpbiBgY3R4YFxuICBjb25zdCByZXMgPSBjdHgucmVzIHx8IChjdHguY3R4ICYmIGN0eC5jdHgucmVzKVxuXG4gIGlmICghQXBwLmdldEluaXRpYWxQcm9wcykge1xuICAgIGlmIChjdHguY3R4ICYmIGN0eC5Db21wb25lbnQpIHtcbiAgICAgIC8vIEB0cy1pZ25vcmUgcGFnZVByb3BzIGRlZmF1bHRcbiAgICAgIHJldHVybiB7XG4gICAgICAgIHBhZ2VQcm9wczogYXdhaXQgbG9hZEdldEluaXRpYWxQcm9wcyhjdHguQ29tcG9uZW50LCBjdHguY3R4KSxcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHt9IGFzIElQXG4gIH1cblxuICBjb25zdCBwcm9wcyA9IGF3YWl0IEFwcC5nZXRJbml0aWFsUHJvcHMoY3R4KVxuXG4gIGlmIChyZXMgJiYgaXNSZXNTZW50KHJlcykpIHtcbiAgICByZXR1cm4gcHJvcHNcbiAgfVxuXG4gIGlmICghcHJvcHMpIHtcbiAgICBjb25zdCBtZXNzYWdlID0gYFwiJHtnZXREaXNwbGF5TmFtZShcbiAgICAgIEFwcFxuICAgICl9LmdldEluaXRpYWxQcm9wcygpXCIgc2hvdWxkIHJlc29sdmUgdG8gYW4gb2JqZWN0LiBCdXQgZm91bmQgXCIke3Byb3BzfVwiIGluc3RlYWQuYFxuICAgIHRocm93IG5ldyBFcnJvcihtZXNzYWdlKVxuICB9XG5cbiAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpIHtcbiAgICBpZiAoT2JqZWN0LmtleXMocHJvcHMpLmxlbmd0aCA9PT0gMCAmJiAhY3R4LmN0eCkge1xuICAgICAgY29uc29sZS53YXJuKFxuICAgICAgICBgJHtnZXREaXNwbGF5TmFtZShcbiAgICAgICAgICBBcHBcbiAgICAgICAgKX0gcmV0dXJuZWQgYW4gZW1wdHkgb2JqZWN0IGZyb20gXFxgZ2V0SW5pdGlhbFByb3BzXFxgLiBUaGlzIGRlLW9wdGltaXplcyBhbmQgcHJldmVudHMgYXV0b21hdGljIHN0YXRpYyBvcHRpbWl6YXRpb24uIGh0dHBzOi8vbmV4dGpzLm9yZy9kb2NzL21lc3NhZ2VzL2VtcHR5LW9iamVjdC1nZXRJbml0aWFsUHJvcHNgXG4gICAgICApXG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHByb3BzXG59XG5cbmV4cG9ydCBjb25zdCBTUCA9IHR5cGVvZiBwZXJmb3JtYW5jZSAhPT0gJ3VuZGVmaW5lZCdcbmV4cG9ydCBjb25zdCBTVCA9XG4gIFNQICYmXG4gIChbJ21hcmsnLCAnbWVhc3VyZScsICdnZXRFbnRyaWVzQnlOYW1lJ10gYXMgY29uc3QpLmV2ZXJ5KFxuICAgIChtZXRob2QpID0+IHR5cGVvZiBwZXJmb3JtYW5jZVttZXRob2RdID09PSAnZnVuY3Rpb24nXG4gIClcblxuZXhwb3J0IGNsYXNzIERlY29kZUVycm9yIGV4dGVuZHMgRXJyb3Ige31cbmV4cG9ydCBjbGFzcyBOb3JtYWxpemVFcnJvciBleHRlbmRzIEVycm9yIHt9XG5leHBvcnQgY2xhc3MgUGFnZU5vdEZvdW5kRXJyb3IgZXh0ZW5kcyBFcnJvciB7XG4gIGNvZGU6IHN0cmluZ1xuXG4gIGNvbnN0cnVjdG9yKHBhZ2U6IHN0cmluZykge1xuICAgIHN1cGVyKClcbiAgICB0aGlzLmNvZGUgPSAnRU5PRU5UJ1xuICAgIHRoaXMubmFtZSA9ICdQYWdlTm90Rm91bmRFcnJvcidcbiAgICB0aGlzLm1lc3NhZ2UgPSBgQ2Fubm90IGZpbmQgbW9kdWxlIGZvciBwYWdlOiAke3BhZ2V9YFxuICB9XG59XG5cbmV4cG9ydCBjbGFzcyBNaXNzaW5nU3RhdGljUGFnZSBleHRlbmRzIEVycm9yIHtcbiAgY29uc3RydWN0b3IocGFnZTogc3RyaW5nLCBtZXNzYWdlOiBzdHJpbmcpIHtcbiAgICBzdXBlcigpXG4gICAgdGhpcy5tZXNzYWdlID0gYEZhaWxlZCB0byBsb2FkIHN0YXRpYyBmaWxlIGZvciBwYWdlOiAke3BhZ2V9ICR7bWVzc2FnZX1gXG4gIH1cbn1cblxuZXhwb3J0IGNsYXNzIE1pZGRsZXdhcmVOb3RGb3VuZEVycm9yIGV4dGVuZHMgRXJyb3Ige1xuICBjb2RlOiBzdHJpbmdcbiAgY29uc3RydWN0b3IoKSB7XG4gICAgc3VwZXIoKVxuICAgIHRoaXMuY29kZSA9ICdFTk9FTlQnXG4gICAgdGhpcy5tZXNzYWdlID0gYENhbm5vdCBmaW5kIHRoZSBtaWRkbGV3YXJlIG1vZHVsZWBcbiAgfVxufVxuXG5leHBvcnQgaW50ZXJmYWNlIENhY2hlRnMge1xuICBleGlzdHNTeW5jOiB0eXBlb2YgZnMuZXhpc3RzU3luY1xuICByZWFkRmlsZTogdHlwZW9mIGZzLnByb21pc2VzLnJlYWRGaWxlXG4gIHJlYWRGaWxlU3luYzogdHlwZW9mIGZzLnJlYWRGaWxlU3luY1xuICB3cml0ZUZpbGUoZjogc3RyaW5nLCBkOiBhbnkpOiBQcm9taXNlPHZvaWQ+XG4gIG1rZGlyKGRpcjogc3RyaW5nKTogUHJvbWlzZTx2b2lkIHwgc3RyaW5nPlxuICBzdGF0KGY6IHN0cmluZyk6IFByb21pc2U8eyBtdGltZTogRGF0ZSB9PlxufVxuXG5leHBvcnQgZnVuY3Rpb24gc3RyaW5naWZ5RXJyb3IoZXJyb3I6IEVycm9yKSB7XG4gIHJldHVybiBKU09OLnN0cmluZ2lmeSh7IG1lc3NhZ2U6IGVycm9yLm1lc3NhZ2UsIHN0YWNrOiBlcnJvci5zdGFjayB9KVxufVxuIl0sIm5hbWVzIjpbIkRlY29kZUVycm9yIiwiTWlkZGxld2FyZU5vdEZvdW5kRXJyb3IiLCJNaXNzaW5nU3RhdGljUGFnZSIsIk5vcm1hbGl6ZUVycm9yIiwiUGFnZU5vdEZvdW5kRXJyb3IiLCJTUCIsIlNUIiwiV0VCX1ZJVEFMUyIsImV4ZWNPbmNlIiwiZ2V0RGlzcGxheU5hbWUiLCJnZXRMb2NhdGlvbk9yaWdpbiIsImdldFVSTCIsImlzQWJzb2x1dGVVcmwiLCJpc1Jlc1NlbnQiLCJsb2FkR2V0SW5pdGlhbFByb3BzIiwibm9ybWFsaXplUmVwZWF0ZWRTbGFzaGVzIiwic3RyaW5naWZ5RXJyb3IiLCJmbiIsInVzZWQiLCJyZXN1bHQiLCJhcmdzIiwiQUJTT0xVVEVfVVJMX1JFR0VYIiwidXJsIiwidGVzdCIsInByb3RvY29sIiwiaG9zdG5hbWUiLCJwb3J0Iiwid2luZG93IiwibG9jYXRpb24iLCJocmVmIiwib3JpZ2luIiwic3Vic3RyaW5nIiwibGVuZ3RoIiwiQ29tcG9uZW50IiwiZGlzcGxheU5hbWUiLCJuYW1lIiwicmVzIiwiZmluaXNoZWQiLCJoZWFkZXJzU2VudCIsInVybFBhcnRzIiwic3BsaXQiLCJ1cmxOb1F1ZXJ5IiwicmVwbGFjZSIsInNsaWNlIiwiam9pbiIsIkFwcCIsImN0eCIsInByb2Nlc3MiLCJlbnYiLCJOT0RFX0VOViIsInByb3RvdHlwZSIsImdldEluaXRpYWxQcm9wcyIsIm1lc3NhZ2UiLCJFcnJvciIsInBhZ2VQcm9wcyIsInByb3BzIiwiT2JqZWN0Iiwia2V5cyIsImNvbnNvbGUiLCJ3YXJuIiwicGVyZm9ybWFuY2UiLCJldmVyeSIsIm1ldGhvZCIsImNvbnN0cnVjdG9yIiwicGFnZSIsImNvZGUiLCJlcnJvciIsIkpTT04iLCJzdHJpbmdpZnkiLCJzdGFjayJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(pages-dir-browser)/./node_modules/next/dist/shared/lib/utils.js\n")); - -/***/ }), - -/***/ "(pages-dir-browser)/./node_modules/next/dist/shared/lib/utils/warn-once.js": -/*!**************************************************************!*\ - !*** ./node_modules/next/dist/shared/lib/utils/warn-once.js ***! - \**************************************************************/ -/***/ ((module, exports, __webpack_require__) => { - -"use strict"; -eval(__webpack_require__.ts("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"warnOnce\", ({\n enumerable: true,\n get: function() {\n return warnOnce;\n }\n}));\nlet warnOnce = (_)=>{};\nif (true) {\n const warnings = new Set();\n warnOnce = (msg)=>{\n if (!warnings.has(msg)) {\n console.warn(msg);\n }\n warnings.add(msg);\n };\n} //# sourceMappingURL=warn-once.js.map\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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3Qvc2hhcmVkL2xpYi91dGlscy93YXJuLW9uY2UuanMiLCJtYXBwaW5ncyI6Ijs7Ozs0Q0FXU0E7OztlQUFBQTs7O0FBWFQsSUFBSUEsV0FBVyxDQUFDQyxLQUFlO0FBQy9CLElBQUlDLElBQW9CLEVBQW1CO0lBQ3pDLE1BQU1HLFdBQVcsSUFBSUM7SUFDckJOLFdBQVcsQ0FBQ087UUFDVixJQUFJLENBQUNGLFNBQVNHLEdBQUcsQ0FBQ0QsTUFBTTtZQUN0QkUsUUFBUUMsSUFBSSxDQUFDSDtRQUNmO1FBQ0FGLFNBQVNNLEdBQUcsQ0FBQ0o7SUFDZjtBQUNGIiwic291cmNlcyI6WyJEOlxcc3JjXFxzaGFyZWRcXGxpYlxcdXRpbHNcXHdhcm4tb25jZS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJsZXQgd2Fybk9uY2UgPSAoXzogc3RyaW5nKSA9PiB7fVxuaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpIHtcbiAgY29uc3Qgd2FybmluZ3MgPSBuZXcgU2V0PHN0cmluZz4oKVxuICB3YXJuT25jZSA9IChtc2c6IHN0cmluZykgPT4ge1xuICAgIGlmICghd2FybmluZ3MuaGFzKG1zZykpIHtcbiAgICAgIGNvbnNvbGUud2Fybihtc2cpXG4gICAgfVxuICAgIHdhcm5pbmdzLmFkZChtc2cpXG4gIH1cbn1cblxuZXhwb3J0IHsgd2Fybk9uY2UgfVxuIl0sIm5hbWVzIjpbIndhcm5PbmNlIiwiXyIsInByb2Nlc3MiLCJlbnYiLCJOT0RFX0VOViIsIndhcm5pbmdzIiwiU2V0IiwibXNnIiwiaGFzIiwiY29uc29sZSIsIndhcm4iLCJhZGQiXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(pages-dir-browser)/./node_modules/next/dist/shared/lib/utils/warn-once.js\n")); - -/***/ }), - -/***/ "(pages-dir-browser)/./node_modules/process/browser.js": -/*!*****************************************!*\ - !*** ./node_modules/process/browser.js ***! - \*****************************************/ -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { - -eval(__webpack_require__.ts("// shim for using process in browser\nvar process = module.exports = {};\n\n// cached from whatever global is present so that test runners that stub it\n// don't break things. But we need to wrap it in a try catch in case it is\n// wrapped in strict mode code which doesn't define any globals. It's inside a\n// function because try/catches deoptimize in certain engines.\n\nvar cachedSetTimeout;\nvar cachedClearTimeout;\n\nfunction defaultSetTimout() {\n throw new Error('setTimeout has not been defined');\n}\nfunction defaultClearTimeout () {\n throw new Error('clearTimeout has not been defined');\n}\n(function () {\n try {\n if (typeof setTimeout === 'function') {\n cachedSetTimeout = setTimeout;\n } else {\n cachedSetTimeout = defaultSetTimout;\n }\n } catch (e) {\n cachedSetTimeout = defaultSetTimout;\n }\n try {\n if (typeof clearTimeout === 'function') {\n cachedClearTimeout = clearTimeout;\n } else {\n cachedClearTimeout = defaultClearTimeout;\n }\n } catch (e) {\n cachedClearTimeout = defaultClearTimeout;\n }\n} ())\nfunction runTimeout(fun) {\n if (cachedSetTimeout === setTimeout) {\n //normal enviroments in sane situations\n return setTimeout(fun, 0);\n }\n // if setTimeout wasn't available but was latter defined\n if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) {\n cachedSetTimeout = setTimeout;\n return setTimeout(fun, 0);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedSetTimeout(fun, 0);\n } catch(e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedSetTimeout.call(null, fun, 0);\n } catch(e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error\n return cachedSetTimeout.call(this, fun, 0);\n }\n }\n\n\n}\nfunction runClearTimeout(marker) {\n if (cachedClearTimeout === clearTimeout) {\n //normal enviroments in sane situations\n return clearTimeout(marker);\n }\n // if clearTimeout wasn't available but was latter defined\n if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) {\n cachedClearTimeout = clearTimeout;\n return clearTimeout(marker);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedClearTimeout(marker);\n } catch (e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedClearTimeout.call(null, marker);\n } catch (e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error.\n // Some versions of I.E. have different rules for clearTimeout vs setTimeout\n return cachedClearTimeout.call(this, marker);\n }\n }\n\n\n\n}\nvar queue = [];\nvar draining = false;\nvar currentQueue;\nvar queueIndex = -1;\n\nfunction cleanUpNextTick() {\n if (!draining || !currentQueue) {\n return;\n }\n draining = false;\n if (currentQueue.length) {\n queue = currentQueue.concat(queue);\n } else {\n queueIndex = -1;\n }\n if (queue.length) {\n drainQueue();\n }\n}\n\nfunction drainQueue() {\n if (draining) {\n return;\n }\n var timeout = runTimeout(cleanUpNextTick);\n draining = true;\n\n var len = queue.length;\n while(len) {\n currentQueue = queue;\n queue = [];\n while (++queueIndex < len) {\n if (currentQueue) {\n currentQueue[queueIndex].run();\n }\n }\n queueIndex = -1;\n len = queue.length;\n }\n currentQueue = null;\n draining = false;\n runClearTimeout(timeout);\n}\n\nprocess.nextTick = function (fun) {\n var args = new Array(arguments.length - 1);\n if (arguments.length > 1) {\n for (var i = 1; i < arguments.length; i++) {\n args[i - 1] = arguments[i];\n }\n }\n queue.push(new Item(fun, args));\n if (queue.length === 1 && !draining) {\n runTimeout(drainQueue);\n }\n};\n\n// v8 likes predictible objects\nfunction Item(fun, array) {\n this.fun = fun;\n this.array = array;\n}\nItem.prototype.run = function () {\n this.fun.apply(null, this.array);\n};\nprocess.title = 'browser';\nprocess.browser = true;\nprocess.env = {};\nprocess.argv = [];\nprocess.version = ''; // empty string to avoid regexp issues\nprocess.versions = {};\n\nfunction noop() {}\n\nprocess.on = noop;\nprocess.addListener = noop;\nprocess.once = noop;\nprocess.off = noop;\nprocess.removeListener = noop;\nprocess.removeAllListeners = noop;\nprocess.emit = noop;\nprocess.prependListener = noop;\nprocess.prependOnceListener = noop;\n\nprocess.listeners = function (name) { return [] }\n\nprocess.binding = function (name) {\n throw new Error('process.binding is not supported');\n};\n\nprocess.cwd = function () { return '/' };\nprocess.chdir = function (dir) {\n throw new Error('process.chdir is not supported');\n};\nprocess.umask = function() { return 0; };\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9wcm9jZXNzL2Jyb3dzZXIuanMiLCJtYXBwaW5ncyI6IkFBQUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsVUFBVTtBQUNWO0FBQ0E7QUFDQSxNQUFNO0FBQ047QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFVBQVU7QUFDVjtBQUNBO0FBQ0EsTUFBTTtBQUNOO0FBQ0E7QUFDQSxFQUFFO0FBQ0Y7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxNQUFNO0FBQ047QUFDQTtBQUNBO0FBQ0EsVUFBVTtBQUNWO0FBQ0E7QUFDQTtBQUNBOzs7QUFHQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsTUFBTTtBQUNOO0FBQ0E7QUFDQTtBQUNBLFVBQVU7QUFDVjtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7O0FBSUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE1BQU07QUFDTjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLHdCQUF3QixzQkFBc0I7QUFDOUM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxzQkFBc0I7QUFDdEI7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBLHNDQUFzQzs7QUFFdEM7QUFDQTtBQUNBOztBQUVBLDRCQUE0QjtBQUM1QjtBQUNBO0FBQ0E7QUFDQSw2QkFBNkIiLCJzb3VyY2VzIjpbIkQ6XFxkb25neXVuLXByb2plY3RzXFx0d29cXG5vZGVfbW9kdWxlc1xccHJvY2Vzc1xcYnJvd3Nlci5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyIvLyBzaGltIGZvciB1c2luZyBwcm9jZXNzIGluIGJyb3dzZXJcbnZhciBwcm9jZXNzID0gbW9kdWxlLmV4cG9ydHMgPSB7fTtcblxuLy8gY2FjaGVkIGZyb20gd2hhdGV2ZXIgZ2xvYmFsIGlzIHByZXNlbnQgc28gdGhhdCB0ZXN0IHJ1bm5lcnMgdGhhdCBzdHViIGl0XG4vLyBkb24ndCBicmVhayB0aGluZ3MuICBCdXQgd2UgbmVlZCB0byB3cmFwIGl0IGluIGEgdHJ5IGNhdGNoIGluIGNhc2UgaXQgaXNcbi8vIHdyYXBwZWQgaW4gc3RyaWN0IG1vZGUgY29kZSB3aGljaCBkb2Vzbid0IGRlZmluZSBhbnkgZ2xvYmFscy4gIEl0J3MgaW5zaWRlIGFcbi8vIGZ1bmN0aW9uIGJlY2F1c2UgdHJ5L2NhdGNoZXMgZGVvcHRpbWl6ZSBpbiBjZXJ0YWluIGVuZ2luZXMuXG5cbnZhciBjYWNoZWRTZXRUaW1lb3V0O1xudmFyIGNhY2hlZENsZWFyVGltZW91dDtcblxuZnVuY3Rpb24gZGVmYXVsdFNldFRpbW91dCgpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ3NldFRpbWVvdXQgaGFzIG5vdCBiZWVuIGRlZmluZWQnKTtcbn1cbmZ1bmN0aW9uIGRlZmF1bHRDbGVhclRpbWVvdXQgKCkge1xuICAgIHRocm93IG5ldyBFcnJvcignY2xlYXJUaW1lb3V0IGhhcyBub3QgYmVlbiBkZWZpbmVkJyk7XG59XG4oZnVuY3Rpb24gKCkge1xuICAgIHRyeSB7XG4gICAgICAgIGlmICh0eXBlb2Ygc2V0VGltZW91dCA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICAgICAgY2FjaGVkU2V0VGltZW91dCA9IHNldFRpbWVvdXQ7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBjYWNoZWRTZXRUaW1lb3V0ID0gZGVmYXVsdFNldFRpbW91dDtcbiAgICAgICAgfVxuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgY2FjaGVkU2V0VGltZW91dCA9IGRlZmF1bHRTZXRUaW1vdXQ7XG4gICAgfVxuICAgIHRyeSB7XG4gICAgICAgIGlmICh0eXBlb2YgY2xlYXJUaW1lb3V0ID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgICAgICBjYWNoZWRDbGVhclRpbWVvdXQgPSBjbGVhclRpbWVvdXQ7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBjYWNoZWRDbGVhclRpbWVvdXQgPSBkZWZhdWx0Q2xlYXJUaW1lb3V0O1xuICAgICAgICB9XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgICBjYWNoZWRDbGVhclRpbWVvdXQgPSBkZWZhdWx0Q2xlYXJUaW1lb3V0O1xuICAgIH1cbn0gKCkpXG5mdW5jdGlvbiBydW5UaW1lb3V0KGZ1bikge1xuICAgIGlmIChjYWNoZWRTZXRUaW1lb3V0ID09PSBzZXRUaW1lb3V0KSB7XG4gICAgICAgIC8vbm9ybWFsIGVudmlyb21lbnRzIGluIHNhbmUgc2l0dWF0aW9uc1xuICAgICAgICByZXR1cm4gc2V0VGltZW91dChmdW4sIDApO1xuICAgIH1cbiAgICAvLyBpZiBzZXRUaW1lb3V0IHdhc24ndCBhdmFpbGFibGUgYnV0IHdhcyBsYXR0ZXIgZGVmaW5lZFxuICAgIGlmICgoY2FjaGVkU2V0VGltZW91dCA9PT0gZGVmYXVsdFNldFRpbW91dCB8fCAhY2FjaGVkU2V0VGltZW91dCkgJiYgc2V0VGltZW91dCkge1xuICAgICAgICBjYWNoZWRTZXRUaW1lb3V0ID0gc2V0VGltZW91dDtcbiAgICAgICAgcmV0dXJuIHNldFRpbWVvdXQoZnVuLCAwKTtcbiAgICB9XG4gICAgdHJ5IHtcbiAgICAgICAgLy8gd2hlbiB3aGVuIHNvbWVib2R5IGhhcyBzY3Jld2VkIHdpdGggc2V0VGltZW91dCBidXQgbm8gSS5FLiBtYWRkbmVzc1xuICAgICAgICByZXR1cm4gY2FjaGVkU2V0VGltZW91dChmdW4sIDApO1xuICAgIH0gY2F0Y2goZSl7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICAvLyBXaGVuIHdlIGFyZSBpbiBJLkUuIGJ1dCB0aGUgc2NyaXB0IGhhcyBiZWVuIGV2YWxlZCBzbyBJLkUuIGRvZXNuJ3QgdHJ1c3QgdGhlIGdsb2JhbCBvYmplY3Qgd2hlbiBjYWxsZWQgbm9ybWFsbHlcbiAgICAgICAgICAgIHJldHVybiBjYWNoZWRTZXRUaW1lb3V0LmNhbGwobnVsbCwgZnVuLCAwKTtcbiAgICAgICAgfSBjYXRjaChlKXtcbiAgICAgICAgICAgIC8vIHNhbWUgYXMgYWJvdmUgYnV0IHdoZW4gaXQncyBhIHZlcnNpb24gb2YgSS5FLiB0aGF0IG11c3QgaGF2ZSB0aGUgZ2xvYmFsIG9iamVjdCBmb3IgJ3RoaXMnLCBob3BmdWxseSBvdXIgY29udGV4dCBjb3JyZWN0IG90aGVyd2lzZSBpdCB3aWxsIHRocm93IGEgZ2xvYmFsIGVycm9yXG4gICAgICAgICAgICByZXR1cm4gY2FjaGVkU2V0VGltZW91dC5jYWxsKHRoaXMsIGZ1biwgMCk7XG4gICAgICAgIH1cbiAgICB9XG5cblxufVxuZnVuY3Rpb24gcnVuQ2xlYXJUaW1lb3V0KG1hcmtlcikge1xuICAgIGlmIChjYWNoZWRDbGVhclRpbWVvdXQgPT09IGNsZWFyVGltZW91dCkge1xuICAgICAgICAvL25vcm1hbCBlbnZpcm9tZW50cyBpbiBzYW5lIHNpdHVhdGlvbnNcbiAgICAgICAgcmV0dXJuIGNsZWFyVGltZW91dChtYXJrZXIpO1xuICAgIH1cbiAgICAvLyBpZiBjbGVhclRpbWVvdXQgd2Fzbid0IGF2YWlsYWJsZSBidXQgd2FzIGxhdHRlciBkZWZpbmVkXG4gICAgaWYgKChjYWNoZWRDbGVhclRpbWVvdXQgPT09IGRlZmF1bHRDbGVhclRpbWVvdXQgfHwgIWNhY2hlZENsZWFyVGltZW91dCkgJiYgY2xlYXJUaW1lb3V0KSB7XG4gICAgICAgIGNhY2hlZENsZWFyVGltZW91dCA9IGNsZWFyVGltZW91dDtcbiAgICAgICAgcmV0dXJuIGNsZWFyVGltZW91dChtYXJrZXIpO1xuICAgIH1cbiAgICB0cnkge1xuICAgICAgICAvLyB3aGVuIHdoZW4gc29tZWJvZHkgaGFzIHNjcmV3ZWQgd2l0aCBzZXRUaW1lb3V0IGJ1dCBubyBJLkUuIG1hZGRuZXNzXG4gICAgICAgIHJldHVybiBjYWNoZWRDbGVhclRpbWVvdXQobWFya2VyKTtcbiAgICB9IGNhdGNoIChlKXtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIC8vIFdoZW4gd2UgYXJlIGluIEkuRS4gYnV0IHRoZSBzY3JpcHQgaGFzIGJlZW4gZXZhbGVkIHNvIEkuRS4gZG9lc24ndCAgdHJ1c3QgdGhlIGdsb2JhbCBvYmplY3Qgd2hlbiBjYWxsZWQgbm9ybWFsbHlcbiAgICAgICAgICAgIHJldHVybiBjYWNoZWRDbGVhclRpbWVvdXQuY2FsbChudWxsLCBtYXJrZXIpO1xuICAgICAgICB9IGNhdGNoIChlKXtcbiAgICAgICAgICAgIC8vIHNhbWUgYXMgYWJvdmUgYnV0IHdoZW4gaXQncyBhIHZlcnNpb24gb2YgSS5FLiB0aGF0IG11c3QgaGF2ZSB0aGUgZ2xvYmFsIG9iamVjdCBmb3IgJ3RoaXMnLCBob3BmdWxseSBvdXIgY29udGV4dCBjb3JyZWN0IG90aGVyd2lzZSBpdCB3aWxsIHRocm93IGEgZ2xvYmFsIGVycm9yLlxuICAgICAgICAgICAgLy8gU29tZSB2ZXJzaW9ucyBvZiBJLkUuIGhhdmUgZGlmZmVyZW50IHJ1bGVzIGZvciBjbGVhclRpbWVvdXQgdnMgc2V0VGltZW91dFxuICAgICAgICAgICAgcmV0dXJuIGNhY2hlZENsZWFyVGltZW91dC5jYWxsKHRoaXMsIG1hcmtlcik7XG4gICAgICAgIH1cbiAgICB9XG5cblxuXG59XG52YXIgcXVldWUgPSBbXTtcbnZhciBkcmFpbmluZyA9IGZhbHNlO1xudmFyIGN1cnJlbnRRdWV1ZTtcbnZhciBxdWV1ZUluZGV4ID0gLTE7XG5cbmZ1bmN0aW9uIGNsZWFuVXBOZXh0VGljaygpIHtcbiAgICBpZiAoIWRyYWluaW5nIHx8ICFjdXJyZW50UXVldWUpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBkcmFpbmluZyA9IGZhbHNlO1xuICAgIGlmIChjdXJyZW50UXVldWUubGVuZ3RoKSB7XG4gICAgICAgIHF1ZXVlID0gY3VycmVudFF1ZXVlLmNvbmNhdChxdWV1ZSk7XG4gICAgfSBlbHNlIHtcbiAgICAgICAgcXVldWVJbmRleCA9IC0xO1xuICAgIH1cbiAgICBpZiAocXVldWUubGVuZ3RoKSB7XG4gICAgICAgIGRyYWluUXVldWUoKTtcbiAgICB9XG59XG5cbmZ1bmN0aW9uIGRyYWluUXVldWUoKSB7XG4gICAgaWYgKGRyYWluaW5nKSB7XG4gICAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdmFyIHRpbWVvdXQgPSBydW5UaW1lb3V0KGNsZWFuVXBOZXh0VGljayk7XG4gICAgZHJhaW5pbmcgPSB0cnVlO1xuXG4gICAgdmFyIGxlbiA9IHF1ZXVlLmxlbmd0aDtcbiAgICB3aGlsZShsZW4pIHtcbiAgICAgICAgY3VycmVudFF1ZXVlID0gcXVldWU7XG4gICAgICAgIHF1ZXVlID0gW107XG4gICAgICAgIHdoaWxlICgrK3F1ZXVlSW5kZXggPCBsZW4pIHtcbiAgICAgICAgICAgIGlmIChjdXJyZW50UXVldWUpIHtcbiAgICAgICAgICAgICAgICBjdXJyZW50UXVldWVbcXVldWVJbmRleF0ucnVuKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcXVldWVJbmRleCA9IC0xO1xuICAgICAgICBsZW4gPSBxdWV1ZS5sZW5ndGg7XG4gICAgfVxuICAgIGN1cnJlbnRRdWV1ZSA9IG51bGw7XG4gICAgZHJhaW5pbmcgPSBmYWxzZTtcbiAgICBydW5DbGVhclRpbWVvdXQodGltZW91dCk7XG59XG5cbnByb2Nlc3MubmV4dFRpY2sgPSBmdW5jdGlvbiAoZnVuKSB7XG4gICAgdmFyIGFyZ3MgPSBuZXcgQXJyYXkoYXJndW1lbnRzLmxlbmd0aCAtIDEpO1xuICAgIGlmIChhcmd1bWVudHMubGVuZ3RoID4gMSkge1xuICAgICAgICBmb3IgKHZhciBpID0gMTsgaSA8IGFyZ3VtZW50cy5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgYXJnc1tpIC0gMV0gPSBhcmd1bWVudHNbaV07XG4gICAgICAgIH1cbiAgICB9XG4gICAgcXVldWUucHVzaChuZXcgSXRlbShmdW4sIGFyZ3MpKTtcbiAgICBpZiAocXVldWUubGVuZ3RoID09PSAxICYmICFkcmFpbmluZykge1xuICAgICAgICBydW5UaW1lb3V0KGRyYWluUXVldWUpO1xuICAgIH1cbn07XG5cbi8vIHY4IGxpa2VzIHByZWRpY3RpYmxlIG9iamVjdHNcbmZ1bmN0aW9uIEl0ZW0oZnVuLCBhcnJheSkge1xuICAgIHRoaXMuZnVuID0gZnVuO1xuICAgIHRoaXMuYXJyYXkgPSBhcnJheTtcbn1cbkl0ZW0ucHJvdG90eXBlLnJ1biA9IGZ1bmN0aW9uICgpIHtcbiAgICB0aGlzLmZ1bi5hcHBseShudWxsLCB0aGlzLmFycmF5KTtcbn07XG5wcm9jZXNzLnRpdGxlID0gJ2Jyb3dzZXInO1xucHJvY2Vzcy5icm93c2VyID0gdHJ1ZTtcbnByb2Nlc3MuZW52ID0ge307XG5wcm9jZXNzLmFyZ3YgPSBbXTtcbnByb2Nlc3MudmVyc2lvbiA9ICcnOyAvLyBlbXB0eSBzdHJpbmcgdG8gYXZvaWQgcmVnZXhwIGlzc3Vlc1xucHJvY2Vzcy52ZXJzaW9ucyA9IHt9O1xuXG5mdW5jdGlvbiBub29wKCkge31cblxucHJvY2Vzcy5vbiA9IG5vb3A7XG5wcm9jZXNzLmFkZExpc3RlbmVyID0gbm9vcDtcbnByb2Nlc3Mub25jZSA9IG5vb3A7XG5wcm9jZXNzLm9mZiA9IG5vb3A7XG5wcm9jZXNzLnJlbW92ZUxpc3RlbmVyID0gbm9vcDtcbnByb2Nlc3MucmVtb3ZlQWxsTGlzdGVuZXJzID0gbm9vcDtcbnByb2Nlc3MuZW1pdCA9IG5vb3A7XG5wcm9jZXNzLnByZXBlbmRMaXN0ZW5lciA9IG5vb3A7XG5wcm9jZXNzLnByZXBlbmRPbmNlTGlzdGVuZXIgPSBub29wO1xuXG5wcm9jZXNzLmxpc3RlbmVycyA9IGZ1bmN0aW9uIChuYW1lKSB7IHJldHVybiBbXSB9XG5cbnByb2Nlc3MuYmluZGluZyA9IGZ1bmN0aW9uIChuYW1lKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdwcm9jZXNzLmJpbmRpbmcgaXMgbm90IHN1cHBvcnRlZCcpO1xufTtcblxucHJvY2Vzcy5jd2QgPSBmdW5jdGlvbiAoKSB7IHJldHVybiAnLycgfTtcbnByb2Nlc3MuY2hkaXIgPSBmdW5jdGlvbiAoZGlyKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdwcm9jZXNzLmNoZGlyIGlzIG5vdCBzdXBwb3J0ZWQnKTtcbn07XG5wcm9jZXNzLnVtYXNrID0gZnVuY3Rpb24oKSB7IHJldHVybiAwOyB9O1xuIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(pages-dir-browser)/./node_modules/process/browser.js\n")); - -/***/ }), - -/***/ "(pages-dir-browser)/./node_modules/react-dom/cjs/react-dom-client.development.js": -/*!********************************************************************!*\ - !*** ./node_modules/react-dom/cjs/react-dom-client.development.js ***! - \********************************************************************/ -/***/ ((__unused_webpack_module, exports, __webpack_require__) => { - -"use strict"; -eval(__webpack_require__.ts("/* provided dependency */ var process = __webpack_require__(/*! process */ \"(pages-dir-browser)/./node_modules/process/browser.js\");\n/**\n * @license React\n * react-dom-client.development.js\n *\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n/*\n Modernizr 3.0.0pre (Custom Build) | MIT\n*/\n\n true &&\n (function () {\n function findHook(fiber, id) {\n for (fiber = fiber.memoizedState; null !== fiber && 0 < id; )\n (fiber = fiber.next), id--;\n return fiber;\n }\n function copyWithSetImpl(obj, path, index, value) {\n if (index >= path.length) return value;\n var key = path[index],\n updated = isArrayImpl(obj) ? obj.slice() : assign({}, obj);\n updated[key] = copyWithSetImpl(obj[key], path, index + 1, value);\n return updated;\n }\n function copyWithRename(obj, oldPath, newPath) {\n if (oldPath.length !== newPath.length)\n console.warn(\"copyWithRename() expects paths of the same length\");\n else {\n for (var i = 0; i < newPath.length - 1; i++)\n if (oldPath[i] !== newPath[i]) {\n console.warn(\n \"copyWithRename() expects paths to be the same except for the deepest key\"\n );\n return;\n }\n return copyWithRenameImpl(obj, oldPath, newPath, 0);\n }\n }\n function copyWithRenameImpl(obj, oldPath, newPath, index) {\n var oldKey = oldPath[index],\n updated = isArrayImpl(obj) ? obj.slice() : assign({}, obj);\n index + 1 === oldPath.length\n ? ((updated[newPath[index]] = updated[oldKey]),\n isArrayImpl(updated)\n ? updated.splice(oldKey, 1)\n : delete updated[oldKey])\n : (updated[oldKey] = copyWithRenameImpl(\n obj[oldKey],\n oldPath,\n newPath,\n index + 1\n ));\n return updated;\n }\n function copyWithDeleteImpl(obj, path, index) {\n var key = path[index],\n updated = isArrayImpl(obj) ? obj.slice() : assign({}, obj);\n if (index + 1 === path.length)\n return (\n isArrayImpl(updated) ? updated.splice(key, 1) : delete updated[key],\n updated\n );\n updated[key] = copyWithDeleteImpl(obj[key], path, index + 1);\n return updated;\n }\n function shouldSuspendImpl() {\n return !1;\n }\n function shouldErrorImpl() {\n return null;\n }\n function warnForMissingKey() {}\n function warnInvalidHookAccess() {\n console.error(\n \"Do not call Hooks inside useEffect(...), useMemo(...), or other built-in Hooks. You can only call Hooks at the top level of your React function. For more information, see https://react.dev/link/rules-of-hooks\"\n );\n }\n function warnInvalidContextAccess() {\n console.error(\n \"Context can only be read while React is rendering. In classes, you can read it in the render method or getDerivedStateFromProps. In function components, you can read it directly in the function body, but not inside Hooks like useReducer() or useMemo().\"\n );\n }\n function noop$2() {}\n function setToSortedString(set) {\n var array = [];\n set.forEach(function (value) {\n array.push(value);\n });\n return array.sort().join(\", \");\n }\n function createFiber(tag, pendingProps, key, mode) {\n return new FiberNode(tag, pendingProps, key, mode);\n }\n function scheduleRoot(root, element) {\n root.context === emptyContextObject &&\n (updateContainerImpl(root.current, 2, element, root, null, null),\n flushSyncWork$1());\n }\n function scheduleRefresh(root, update) {\n if (null !== resolveFamily) {\n var staleFamilies = update.staleFamilies;\n update = update.updatedFamilies;\n flushPendingEffects();\n scheduleFibersWithFamiliesRecursively(\n root.current,\n update,\n staleFamilies\n );\n flushSyncWork$1();\n }\n }\n function setRefreshHandler(handler) {\n resolveFamily = handler;\n }\n function isValidContainer(node) {\n return !(\n !node ||\n (1 !== node.nodeType && 9 !== node.nodeType && 11 !== node.nodeType)\n );\n }\n function getNearestMountedFiber(fiber) {\n var node = fiber,\n nearestMounted = fiber;\n if (fiber.alternate) for (; node.return; ) node = node.return;\n else {\n fiber = node;\n do\n (node = fiber),\n 0 !== (node.flags & 4098) && (nearestMounted = node.return),\n (fiber = node.return);\n while (fiber);\n }\n return 3 === node.tag ? nearestMounted : null;\n }\n function getSuspenseInstanceFromFiber(fiber) {\n if (13 === fiber.tag) {\n var suspenseState = fiber.memoizedState;\n null === suspenseState &&\n ((fiber = fiber.alternate),\n null !== fiber && (suspenseState = fiber.memoizedState));\n if (null !== suspenseState) return suspenseState.dehydrated;\n }\n return null;\n }\n function assertIsMounted(fiber) {\n if (getNearestMountedFiber(fiber) !== fiber)\n throw Error(\"Unable to find node on an unmounted component.\");\n }\n function findCurrentFiberUsingSlowPath(fiber) {\n var alternate = fiber.alternate;\n if (!alternate) {\n alternate = getNearestMountedFiber(fiber);\n if (null === alternate)\n throw Error(\"Unable to find node on an unmounted component.\");\n return alternate !== fiber ? null : fiber;\n }\n for (var a = fiber, b = alternate; ; ) {\n var parentA = a.return;\n if (null === parentA) break;\n var parentB = parentA.alternate;\n if (null === parentB) {\n b = parentA.return;\n if (null !== b) {\n a = b;\n continue;\n }\n break;\n }\n if (parentA.child === parentB.child) {\n for (parentB = parentA.child; parentB; ) {\n if (parentB === a) return assertIsMounted(parentA), fiber;\n if (parentB === b) return assertIsMounted(parentA), alternate;\n parentB = parentB.sibling;\n }\n throw Error(\"Unable to find node on an unmounted component.\");\n }\n if (a.return !== b.return) (a = parentA), (b = parentB);\n else {\n for (var didFindChild = !1, _child = parentA.child; _child; ) {\n if (_child === a) {\n didFindChild = !0;\n a = parentA;\n b = parentB;\n break;\n }\n if (_child === b) {\n didFindChild = !0;\n b = parentA;\n a = parentB;\n break;\n }\n _child = _child.sibling;\n }\n if (!didFindChild) {\n for (_child = parentB.child; _child; ) {\n if (_child === a) {\n didFindChild = !0;\n a = parentB;\n b = parentA;\n break;\n }\n if (_child === b) {\n didFindChild = !0;\n b = parentB;\n a = parentA;\n break;\n }\n _child = _child.sibling;\n }\n if (!didFindChild)\n throw Error(\n \"Child was not found in either parent set. This indicates a bug in React related to the return pointer. Please file an issue.\"\n );\n }\n }\n if (a.alternate !== b)\n throw Error(\n \"Return fibers should always be each others' alternates. This error is likely caused by a bug in React. Please file an issue.\"\n );\n }\n if (3 !== a.tag)\n throw Error(\"Unable to find node on an unmounted component.\");\n return a.stateNode.current === a ? fiber : alternate;\n }\n function findCurrentHostFiberImpl(node) {\n var tag = node.tag;\n if (5 === tag || 26 === tag || 27 === tag || 6 === tag) return node;\n for (node = node.child; null !== node; ) {\n tag = findCurrentHostFiberImpl(node);\n if (null !== tag) return tag;\n node = node.sibling;\n }\n return null;\n }\n function getIteratorFn(maybeIterable) {\n if (null === maybeIterable || \"object\" !== typeof maybeIterable)\n return null;\n maybeIterable =\n (MAYBE_ITERATOR_SYMBOL && maybeIterable[MAYBE_ITERATOR_SYMBOL]) ||\n maybeIterable[\"@@iterator\"];\n return \"function\" === typeof maybeIterable ? maybeIterable : null;\n }\n function getComponentNameFromType(type) {\n if (null == type) return null;\n if (\"function\" === typeof type)\n return type.$$typeof === REACT_CLIENT_REFERENCE\n ? null\n : type.displayName || type.name || null;\n if (\"string\" === typeof type) return type;\n switch (type) {\n case REACT_FRAGMENT_TYPE:\n return \"Fragment\";\n case REACT_PROFILER_TYPE:\n return \"Profiler\";\n case REACT_STRICT_MODE_TYPE:\n return \"StrictMode\";\n case REACT_SUSPENSE_TYPE:\n return \"Suspense\";\n case REACT_SUSPENSE_LIST_TYPE:\n return \"SuspenseList\";\n case REACT_ACTIVITY_TYPE:\n return \"Activity\";\n }\n if (\"object\" === typeof type)\n switch (\n (\"number\" === typeof type.tag &&\n console.error(\n \"Received an unexpected object in getComponentNameFromType(). This is likely a bug in React. Please file an issue.\"\n ),\n type.$$typeof)\n ) {\n case REACT_PORTAL_TYPE:\n return \"Portal\";\n case REACT_CONTEXT_TYPE:\n return (type.displayName || \"Context\") + \".Provider\";\n case REACT_CONSUMER_TYPE:\n return (type._context.displayName || \"Context\") + \".Consumer\";\n case REACT_FORWARD_REF_TYPE:\n var innerType = type.render;\n type = type.displayName;\n type ||\n ((type = innerType.displayName || innerType.name || \"\"),\n (type = \"\" !== type ? \"ForwardRef(\" + type + \")\" : \"ForwardRef\"));\n return type;\n case REACT_MEMO_TYPE:\n return (\n (innerType = type.displayName || null),\n null !== innerType\n ? innerType\n : getComponentNameFromType(type.type) || \"Memo\"\n );\n case REACT_LAZY_TYPE:\n innerType = type._payload;\n type = type._init;\n try {\n return getComponentNameFromType(type(innerType));\n } catch (x) {}\n }\n return null;\n }\n function getComponentNameFromOwner(owner) {\n return \"number\" === typeof owner.tag\n ? getComponentNameFromFiber(owner)\n : \"string\" === typeof owner.name\n ? owner.name\n : null;\n }\n function getComponentNameFromFiber(fiber) {\n var type = fiber.type;\n switch (fiber.tag) {\n case 31:\n return \"Activity\";\n case 24:\n return \"Cache\";\n case 9:\n return (type._context.displayName || \"Context\") + \".Consumer\";\n case 10:\n return (type.displayName || \"Context\") + \".Provider\";\n case 18:\n return \"DehydratedFragment\";\n case 11:\n return (\n (fiber = type.render),\n (fiber = fiber.displayName || fiber.name || \"\"),\n type.displayName ||\n (\"\" !== fiber ? \"ForwardRef(\" + fiber + \")\" : \"ForwardRef\")\n );\n case 7:\n return \"Fragment\";\n case 26:\n case 27:\n case 5:\n return type;\n case 4:\n return \"Portal\";\n case 3:\n return \"Root\";\n case 6:\n return \"Text\";\n case 16:\n return getComponentNameFromType(type);\n case 8:\n return type === REACT_STRICT_MODE_TYPE ? \"StrictMode\" : \"Mode\";\n case 22:\n return \"Offscreen\";\n case 12:\n return \"Profiler\";\n case 21:\n return \"Scope\";\n case 13:\n return \"Suspense\";\n case 19:\n return \"SuspenseList\";\n case 25:\n return \"TracingMarker\";\n case 1:\n case 0:\n case 14:\n case 15:\n if (\"function\" === typeof type)\n return type.displayName || type.name || null;\n if (\"string\" === typeof type) return type;\n break;\n case 29:\n type = fiber._debugInfo;\n if (null != type)\n for (var i = type.length - 1; 0 <= i; i--)\n if (\"string\" === typeof type[i].name) return type[i].name;\n if (null !== fiber.return)\n return getComponentNameFromFiber(fiber.return);\n }\n return null;\n }\n function createCursor(defaultValue) {\n return { current: defaultValue };\n }\n function pop(cursor, fiber) {\n 0 > index$jscomp$0\n ? console.error(\"Unexpected pop.\")\n : (fiber !== fiberStack[index$jscomp$0] &&\n console.error(\"Unexpected Fiber popped.\"),\n (cursor.current = valueStack[index$jscomp$0]),\n (valueStack[index$jscomp$0] = null),\n (fiberStack[index$jscomp$0] = null),\n index$jscomp$0--);\n }\n function push(cursor, value, fiber) {\n index$jscomp$0++;\n valueStack[index$jscomp$0] = cursor.current;\n fiberStack[index$jscomp$0] = fiber;\n cursor.current = value;\n }\n function requiredContext(c) {\n null === c &&\n console.error(\n \"Expected host context to exist. This error is likely caused by a bug in React. Please file an issue.\"\n );\n return c;\n }\n function pushHostContainer(fiber, nextRootInstance) {\n push(rootInstanceStackCursor, nextRootInstance, fiber);\n push(contextFiberStackCursor, fiber, fiber);\n push(contextStackCursor, null, fiber);\n var nextRootContext = nextRootInstance.nodeType;\n switch (nextRootContext) {\n case 9:\n case 11:\n nextRootContext = 9 === nextRootContext ? \"#document\" : \"#fragment\";\n nextRootInstance = (nextRootInstance =\n nextRootInstance.documentElement)\n ? (nextRootInstance = nextRootInstance.namespaceURI)\n ? getOwnHostContext(nextRootInstance)\n : HostContextNamespaceNone\n : HostContextNamespaceNone;\n break;\n default:\n if (\n ((nextRootContext = nextRootInstance.tagName),\n (nextRootInstance = nextRootInstance.namespaceURI))\n )\n (nextRootInstance = getOwnHostContext(nextRootInstance)),\n (nextRootInstance = getChildHostContextProd(\n nextRootInstance,\n nextRootContext\n ));\n else\n switch (nextRootContext) {\n case \"svg\":\n nextRootInstance = HostContextNamespaceSvg;\n break;\n case \"math\":\n nextRootInstance = HostContextNamespaceMath;\n break;\n default:\n nextRootInstance = HostContextNamespaceNone;\n }\n }\n nextRootContext = nextRootContext.toLowerCase();\n nextRootContext = updatedAncestorInfoDev(null, nextRootContext);\n nextRootContext = {\n context: nextRootInstance,\n ancestorInfo: nextRootContext\n };\n pop(contextStackCursor, fiber);\n push(contextStackCursor, nextRootContext, fiber);\n }\n function popHostContainer(fiber) {\n pop(contextStackCursor, fiber);\n pop(contextFiberStackCursor, fiber);\n pop(rootInstanceStackCursor, fiber);\n }\n function getHostContext() {\n return requiredContext(contextStackCursor.current);\n }\n function pushHostContext(fiber) {\n null !== fiber.memoizedState &&\n push(hostTransitionProviderCursor, fiber, fiber);\n var context = requiredContext(contextStackCursor.current);\n var type = fiber.type;\n var nextContext = getChildHostContextProd(context.context, type);\n type = updatedAncestorInfoDev(context.ancestorInfo, type);\n nextContext = { context: nextContext, ancestorInfo: type };\n context !== nextContext &&\n (push(contextFiberStackCursor, fiber, fiber),\n push(contextStackCursor, nextContext, fiber));\n }\n function popHostContext(fiber) {\n contextFiberStackCursor.current === fiber &&\n (pop(contextStackCursor, fiber), pop(contextFiberStackCursor, fiber));\n hostTransitionProviderCursor.current === fiber &&\n (pop(hostTransitionProviderCursor, fiber),\n (HostTransitionContext._currentValue = NotPendingTransition));\n }\n function typeName(value) {\n return (\n (\"function\" === typeof Symbol &&\n Symbol.toStringTag &&\n value[Symbol.toStringTag]) ||\n value.constructor.name ||\n \"Object\"\n );\n }\n function willCoercionThrow(value) {\n try {\n return testStringCoercion(value), !1;\n } catch (e) {\n return !0;\n }\n }\n function testStringCoercion(value) {\n return \"\" + value;\n }\n function checkAttributeStringCoercion(value, attributeName) {\n if (willCoercionThrow(value))\n return (\n console.error(\n \"The provided `%s` attribute is an unsupported type %s. This value must be coerced to a string before using it here.\",\n attributeName,\n typeName(value)\n ),\n testStringCoercion(value)\n );\n }\n function checkCSSPropertyStringCoercion(value, propName) {\n if (willCoercionThrow(value))\n return (\n console.error(\n \"The provided `%s` CSS property is an unsupported type %s. This value must be coerced to a string before using it here.\",\n propName,\n typeName(value)\n ),\n testStringCoercion(value)\n );\n }\n function checkFormFieldValueStringCoercion(value) {\n if (willCoercionThrow(value))\n return (\n console.error(\n \"Form field values (value, checked, defaultValue, or defaultChecked props) must be strings, not %s. This value must be coerced to a string before using it here.\",\n typeName(value)\n ),\n testStringCoercion(value)\n );\n }\n function injectInternals(internals) {\n if (\"undefined\" === typeof __REACT_DEVTOOLS_GLOBAL_HOOK__) return !1;\n var hook = __REACT_DEVTOOLS_GLOBAL_HOOK__;\n if (hook.isDisabled) return !0;\n if (!hook.supportsFiber)\n return (\n console.error(\n \"The installed version of React DevTools is too old and will not work with the current version of React. Please update React DevTools. https://react.dev/link/react-devtools\"\n ),\n !0\n );\n try {\n (rendererID = hook.inject(internals)), (injectedHook = hook);\n } catch (err) {\n console.error(\"React instrumentation encountered an error: %s.\", err);\n }\n return hook.checkDCE ? !0 : !1;\n }\n function setIsStrictModeForDevtools(newIsStrictMode) {\n \"function\" === typeof log$1 &&\n unstable_setDisableYieldValue(newIsStrictMode);\n if (injectedHook && \"function\" === typeof injectedHook.setStrictMode)\n try {\n injectedHook.setStrictMode(rendererID, newIsStrictMode);\n } catch (err) {\n hasLoggedError ||\n ((hasLoggedError = !0),\n console.error(\n \"React instrumentation encountered an error: %s\",\n err\n ));\n }\n }\n function injectProfilingHooks(profilingHooks) {\n injectedProfilingHooks = profilingHooks;\n }\n function markCommitStopped() {\n null !== injectedProfilingHooks &&\n \"function\" === typeof injectedProfilingHooks.markCommitStopped &&\n injectedProfilingHooks.markCommitStopped();\n }\n function markComponentRenderStarted(fiber) {\n null !== injectedProfilingHooks &&\n \"function\" ===\n typeof injectedProfilingHooks.markComponentRenderStarted &&\n injectedProfilingHooks.markComponentRenderStarted(fiber);\n }\n function markComponentRenderStopped() {\n null !== injectedProfilingHooks &&\n \"function\" ===\n typeof injectedProfilingHooks.markComponentRenderStopped &&\n injectedProfilingHooks.markComponentRenderStopped();\n }\n function markRenderStarted(lanes) {\n null !== injectedProfilingHooks &&\n \"function\" === typeof injectedProfilingHooks.markRenderStarted &&\n injectedProfilingHooks.markRenderStarted(lanes);\n }\n function markRenderStopped() {\n null !== injectedProfilingHooks &&\n \"function\" === typeof injectedProfilingHooks.markRenderStopped &&\n injectedProfilingHooks.markRenderStopped();\n }\n function markStateUpdateScheduled(fiber, lane) {\n null !== injectedProfilingHooks &&\n \"function\" === typeof injectedProfilingHooks.markStateUpdateScheduled &&\n injectedProfilingHooks.markStateUpdateScheduled(fiber, lane);\n }\n function clz32Fallback(x) {\n x >>>= 0;\n return 0 === x ? 32 : (31 - ((log(x) / LN2) | 0)) | 0;\n }\n function getLabelForLane(lane) {\n if (lane & 1) return \"SyncHydrationLane\";\n if (lane & 2) return \"Sync\";\n if (lane & 4) return \"InputContinuousHydration\";\n if (lane & 8) return \"InputContinuous\";\n if (lane & 16) return \"DefaultHydration\";\n if (lane & 32) return \"Default\";\n if (lane & 128) return \"TransitionHydration\";\n if (lane & 4194048) return \"Transition\";\n if (lane & 62914560) return \"Retry\";\n if (lane & 67108864) return \"SelectiveHydration\";\n if (lane & 134217728) return \"IdleHydration\";\n if (lane & 268435456) return \"Idle\";\n if (lane & 536870912) return \"Offscreen\";\n if (lane & 1073741824) return \"Deferred\";\n }\n function getHighestPriorityLanes(lanes) {\n var pendingSyncLanes = lanes & 42;\n if (0 !== pendingSyncLanes) return pendingSyncLanes;\n switch (lanes & -lanes) {\n case 1:\n return 1;\n case 2:\n return 2;\n case 4:\n return 4;\n case 8:\n return 8;\n case 16:\n return 16;\n case 32:\n return 32;\n case 64:\n return 64;\n case 128:\n return 128;\n case 256:\n case 512:\n case 1024:\n case 2048:\n case 4096:\n case 8192:\n case 16384:\n case 32768:\n case 65536:\n case 131072:\n case 262144:\n case 524288:\n case 1048576:\n case 2097152:\n return lanes & 4194048;\n case 4194304:\n case 8388608:\n case 16777216:\n case 33554432:\n return lanes & 62914560;\n case 67108864:\n return 67108864;\n case 134217728:\n return 134217728;\n case 268435456:\n return 268435456;\n case 536870912:\n return 536870912;\n case 1073741824:\n return 0;\n default:\n return (\n console.error(\n \"Should have found matching lanes. This is a bug in React.\"\n ),\n lanes\n );\n }\n }\n function getNextLanes(root, wipLanes, rootHasPendingCommit) {\n var pendingLanes = root.pendingLanes;\n if (0 === pendingLanes) return 0;\n var nextLanes = 0,\n suspendedLanes = root.suspendedLanes,\n pingedLanes = root.pingedLanes;\n root = root.warmLanes;\n var nonIdlePendingLanes = pendingLanes & 134217727;\n 0 !== nonIdlePendingLanes\n ? ((pendingLanes = nonIdlePendingLanes & ~suspendedLanes),\n 0 !== pendingLanes\n ? (nextLanes = getHighestPriorityLanes(pendingLanes))\n : ((pingedLanes &= nonIdlePendingLanes),\n 0 !== pingedLanes\n ? (nextLanes = getHighestPriorityLanes(pingedLanes))\n : rootHasPendingCommit ||\n ((rootHasPendingCommit = nonIdlePendingLanes & ~root),\n 0 !== rootHasPendingCommit &&\n (nextLanes =\n getHighestPriorityLanes(rootHasPendingCommit)))))\n : ((nonIdlePendingLanes = pendingLanes & ~suspendedLanes),\n 0 !== nonIdlePendingLanes\n ? (nextLanes = getHighestPriorityLanes(nonIdlePendingLanes))\n : 0 !== pingedLanes\n ? (nextLanes = getHighestPriorityLanes(pingedLanes))\n : rootHasPendingCommit ||\n ((rootHasPendingCommit = pendingLanes & ~root),\n 0 !== rootHasPendingCommit &&\n (nextLanes = getHighestPriorityLanes(rootHasPendingCommit))));\n return 0 === nextLanes\n ? 0\n : 0 !== wipLanes &&\n wipLanes !== nextLanes &&\n 0 === (wipLanes & suspendedLanes) &&\n ((suspendedLanes = nextLanes & -nextLanes),\n (rootHasPendingCommit = wipLanes & -wipLanes),\n suspendedLanes >= rootHasPendingCommit ||\n (32 === suspendedLanes && 0 !== (rootHasPendingCommit & 4194048)))\n ? wipLanes\n : nextLanes;\n }\n function checkIfRootIsPrerendering(root, renderLanes) {\n return (\n 0 ===\n (root.pendingLanes &\n ~(root.suspendedLanes & ~root.pingedLanes) &\n renderLanes)\n );\n }\n function computeExpirationTime(lane, currentTime) {\n switch (lane) {\n case 1:\n case 2:\n case 4:\n case 8:\n case 64:\n return currentTime + 250;\n case 16:\n case 32:\n case 128:\n case 256:\n case 512:\n case 1024:\n case 2048:\n case 4096:\n case 8192:\n case 16384:\n case 32768:\n case 65536:\n case 131072:\n case 262144:\n case 524288:\n case 1048576:\n case 2097152:\n return currentTime + 5e3;\n case 4194304:\n case 8388608:\n case 16777216:\n case 33554432:\n return -1;\n case 67108864:\n case 134217728:\n case 268435456:\n case 536870912:\n case 1073741824:\n return -1;\n default:\n return (\n console.error(\n \"Should have found matching lanes. This is a bug in React.\"\n ),\n -1\n );\n }\n }\n function claimNextTransitionLane() {\n var lane = nextTransitionLane;\n nextTransitionLane <<= 1;\n 0 === (nextTransitionLane & 4194048) && (nextTransitionLane = 256);\n return lane;\n }\n function claimNextRetryLane() {\n var lane = nextRetryLane;\n nextRetryLane <<= 1;\n 0 === (nextRetryLane & 62914560) && (nextRetryLane = 4194304);\n return lane;\n }\n function createLaneMap(initial) {\n for (var laneMap = [], i = 0; 31 > i; i++) laneMap.push(initial);\n return laneMap;\n }\n function markRootUpdated$1(root, updateLane) {\n root.pendingLanes |= updateLane;\n 268435456 !== updateLane &&\n ((root.suspendedLanes = 0),\n (root.pingedLanes = 0),\n (root.warmLanes = 0));\n }\n function markRootFinished(\n root,\n finishedLanes,\n remainingLanes,\n spawnedLane,\n updatedLanes,\n suspendedRetryLanes\n ) {\n var previouslyPendingLanes = root.pendingLanes;\n root.pendingLanes = remainingLanes;\n root.suspendedLanes = 0;\n root.pingedLanes = 0;\n root.warmLanes = 0;\n root.expiredLanes &= remainingLanes;\n root.entangledLanes &= remainingLanes;\n root.errorRecoveryDisabledLanes &= remainingLanes;\n root.shellSuspendCounter = 0;\n var entanglements = root.entanglements,\n expirationTimes = root.expirationTimes,\n hiddenUpdates = root.hiddenUpdates;\n for (\n remainingLanes = previouslyPendingLanes & ~remainingLanes;\n 0 < remainingLanes;\n\n ) {\n var index = 31 - clz32(remainingLanes),\n lane = 1 << index;\n entanglements[index] = 0;\n expirationTimes[index] = -1;\n var hiddenUpdatesForLane = hiddenUpdates[index];\n if (null !== hiddenUpdatesForLane)\n for (\n hiddenUpdates[index] = null, index = 0;\n index < hiddenUpdatesForLane.length;\n index++\n ) {\n var update = hiddenUpdatesForLane[index];\n null !== update && (update.lane &= -536870913);\n }\n remainingLanes &= ~lane;\n }\n 0 !== spawnedLane && markSpawnedDeferredLane(root, spawnedLane, 0);\n 0 !== suspendedRetryLanes &&\n 0 === updatedLanes &&\n 0 !== root.tag &&\n (root.suspendedLanes |=\n suspendedRetryLanes & ~(previouslyPendingLanes & ~finishedLanes));\n }\n function markSpawnedDeferredLane(root, spawnedLane, entangledLanes) {\n root.pendingLanes |= spawnedLane;\n root.suspendedLanes &= ~spawnedLane;\n var spawnedLaneIndex = 31 - clz32(spawnedLane);\n root.entangledLanes |= spawnedLane;\n root.entanglements[spawnedLaneIndex] =\n root.entanglements[spawnedLaneIndex] |\n 1073741824 |\n (entangledLanes & 4194090);\n }\n function markRootEntangled(root, entangledLanes) {\n var rootEntangledLanes = (root.entangledLanes |= entangledLanes);\n for (root = root.entanglements; rootEntangledLanes; ) {\n var index = 31 - clz32(rootEntangledLanes),\n lane = 1 << index;\n (lane & entangledLanes) | (root[index] & entangledLanes) &&\n (root[index] |= entangledLanes);\n rootEntangledLanes &= ~lane;\n }\n }\n function getBumpedLaneForHydrationByLane(lane) {\n switch (lane) {\n case 2:\n lane = 1;\n break;\n case 8:\n lane = 4;\n break;\n case 32:\n lane = 16;\n break;\n case 256:\n case 512:\n case 1024:\n case 2048:\n case 4096:\n case 8192:\n case 16384:\n case 32768:\n case 65536:\n case 131072:\n case 262144:\n case 524288:\n case 1048576:\n case 2097152:\n case 4194304:\n case 8388608:\n case 16777216:\n case 33554432:\n lane = 128;\n break;\n case 268435456:\n lane = 134217728;\n break;\n default:\n lane = 0;\n }\n return lane;\n }\n function addFiberToLanesMap(root, fiber, lanes) {\n if (isDevToolsPresent)\n for (root = root.pendingUpdatersLaneMap; 0 < lanes; ) {\n var index = 31 - clz32(lanes),\n lane = 1 << index;\n root[index].add(fiber);\n lanes &= ~lane;\n }\n }\n function movePendingFibersToMemoized(root, lanes) {\n if (isDevToolsPresent)\n for (\n var pendingUpdatersLaneMap = root.pendingUpdatersLaneMap,\n memoizedUpdaters = root.memoizedUpdaters;\n 0 < lanes;\n\n ) {\n var index = 31 - clz32(lanes);\n root = 1 << index;\n index = pendingUpdatersLaneMap[index];\n 0 < index.size &&\n (index.forEach(function (fiber) {\n var alternate = fiber.alternate;\n (null !== alternate && memoizedUpdaters.has(alternate)) ||\n memoizedUpdaters.add(fiber);\n }),\n index.clear());\n lanes &= ~root;\n }\n }\n function lanesToEventPriority(lanes) {\n lanes &= -lanes;\n return 0 !== DiscreteEventPriority && DiscreteEventPriority < lanes\n ? 0 !== ContinuousEventPriority && ContinuousEventPriority < lanes\n ? 0 !== (lanes & 134217727)\n ? DefaultEventPriority\n : IdleEventPriority\n : ContinuousEventPriority\n : DiscreteEventPriority;\n }\n function resolveUpdatePriority() {\n var updatePriority = ReactDOMSharedInternals.p;\n if (0 !== updatePriority) return updatePriority;\n updatePriority = window.event;\n return void 0 === updatePriority\n ? DefaultEventPriority\n : getEventPriority(updatePriority.type);\n }\n function runWithPriority(priority, fn) {\n var previousPriority = ReactDOMSharedInternals.p;\n try {\n return (ReactDOMSharedInternals.p = priority), fn();\n } finally {\n ReactDOMSharedInternals.p = previousPriority;\n }\n }\n function detachDeletedInstance(node) {\n delete node[internalInstanceKey];\n delete node[internalPropsKey];\n delete node[internalEventHandlersKey];\n delete node[internalEventHandlerListenersKey];\n delete node[internalEventHandlesSetKey];\n }\n function getClosestInstanceFromNode(targetNode) {\n var targetInst = targetNode[internalInstanceKey];\n if (targetInst) return targetInst;\n for (var parentNode = targetNode.parentNode; parentNode; ) {\n if (\n (targetInst =\n parentNode[internalContainerInstanceKey] ||\n parentNode[internalInstanceKey])\n ) {\n parentNode = targetInst.alternate;\n if (\n null !== targetInst.child ||\n (null !== parentNode && null !== parentNode.child)\n )\n for (\n targetNode = getParentSuspenseInstance(targetNode);\n null !== targetNode;\n\n ) {\n if ((parentNode = targetNode[internalInstanceKey]))\n return parentNode;\n targetNode = getParentSuspenseInstance(targetNode);\n }\n return targetInst;\n }\n targetNode = parentNode;\n parentNode = targetNode.parentNode;\n }\n return null;\n }\n function getInstanceFromNode(node) {\n if (\n (node = node[internalInstanceKey] || node[internalContainerInstanceKey])\n ) {\n var tag = node.tag;\n if (\n 5 === tag ||\n 6 === tag ||\n 13 === tag ||\n 26 === tag ||\n 27 === tag ||\n 3 === tag\n )\n return node;\n }\n return null;\n }\n function getNodeFromInstance(inst) {\n var tag = inst.tag;\n if (5 === tag || 26 === tag || 27 === tag || 6 === tag)\n return inst.stateNode;\n throw Error(\"getNodeFromInstance: Invalid argument.\");\n }\n function getResourcesFromRoot(root) {\n var resources = root[internalRootNodeResourcesKey];\n resources ||\n (resources = root[internalRootNodeResourcesKey] =\n { hoistableStyles: new Map(), hoistableScripts: new Map() });\n return resources;\n }\n function markNodeAsHoistable(node) {\n node[internalHoistableMarker] = !0;\n }\n function registerTwoPhaseEvent(registrationName, dependencies) {\n registerDirectEvent(registrationName, dependencies);\n registerDirectEvent(registrationName + \"Capture\", dependencies);\n }\n function registerDirectEvent(registrationName, dependencies) {\n registrationNameDependencies[registrationName] &&\n console.error(\n \"EventRegistry: More than one plugin attempted to publish the same registration name, `%s`.\",\n registrationName\n );\n registrationNameDependencies[registrationName] = dependencies;\n var lowerCasedName = registrationName.toLowerCase();\n possibleRegistrationNames[lowerCasedName] = registrationName;\n \"onDoubleClick\" === registrationName &&\n (possibleRegistrationNames.ondblclick = registrationName);\n for (\n registrationName = 0;\n registrationName < dependencies.length;\n registrationName++\n )\n allNativeEvents.add(dependencies[registrationName]);\n }\n function checkControlledValueProps(tagName, props) {\n hasReadOnlyValue[props.type] ||\n props.onChange ||\n props.onInput ||\n props.readOnly ||\n props.disabled ||\n null == props.value ||\n (\"select\" === tagName\n ? console.error(\n \"You provided a `value` prop to a form field without an `onChange` handler. This will render a read-only field. If the field should be mutable use `defaultValue`. Otherwise, set `onChange`.\"\n )\n : console.error(\n \"You provided a `value` prop to a form field without an `onChange` handler. This will render a read-only field. If the field should be mutable use `defaultValue`. Otherwise, set either `onChange` or `readOnly`.\"\n ));\n props.onChange ||\n props.readOnly ||\n props.disabled ||\n null == props.checked ||\n console.error(\n \"You provided a `checked` prop to a form field without an `onChange` handler. This will render a read-only field. If the field should be mutable use `defaultChecked`. Otherwise, set either `onChange` or `readOnly`.\"\n );\n }\n function isAttributeNameSafe(attributeName) {\n if (hasOwnProperty.call(validatedAttributeNameCache, attributeName))\n return !0;\n if (hasOwnProperty.call(illegalAttributeNameCache, attributeName))\n return !1;\n if (VALID_ATTRIBUTE_NAME_REGEX.test(attributeName))\n return (validatedAttributeNameCache[attributeName] = !0);\n illegalAttributeNameCache[attributeName] = !0;\n console.error(\"Invalid attribute name: `%s`\", attributeName);\n return !1;\n }\n function getValueForAttributeOnCustomComponent(node, name, expected) {\n if (isAttributeNameSafe(name)) {\n if (!node.hasAttribute(name)) {\n switch (typeof expected) {\n case \"symbol\":\n case \"object\":\n return expected;\n case \"function\":\n return expected;\n case \"boolean\":\n if (!1 === expected) return expected;\n }\n return void 0 === expected ? void 0 : null;\n }\n node = node.getAttribute(name);\n if (\"\" === node && !0 === expected) return !0;\n checkAttributeStringCoercion(expected, name);\n return node === \"\" + expected ? expected : node;\n }\n }\n function setValueForAttribute(node, name, value) {\n if (isAttributeNameSafe(name))\n if (null === value) node.removeAttribute(name);\n else {\n switch (typeof value) {\n case \"undefined\":\n case \"function\":\n case \"symbol\":\n node.removeAttribute(name);\n return;\n case \"boolean\":\n var prefix = name.toLowerCase().slice(0, 5);\n if (\"data-\" !== prefix && \"aria-\" !== prefix) {\n node.removeAttribute(name);\n return;\n }\n }\n checkAttributeStringCoercion(value, name);\n node.setAttribute(name, \"\" + value);\n }\n }\n function setValueForKnownAttribute(node, name, value) {\n if (null === value) node.removeAttribute(name);\n else {\n switch (typeof value) {\n case \"undefined\":\n case \"function\":\n case \"symbol\":\n case \"boolean\":\n node.removeAttribute(name);\n return;\n }\n checkAttributeStringCoercion(value, name);\n node.setAttribute(name, \"\" + value);\n }\n }\n function setValueForNamespacedAttribute(node, namespace, name, value) {\n if (null === value) node.removeAttribute(name);\n else {\n switch (typeof value) {\n case \"undefined\":\n case \"function\":\n case \"symbol\":\n case \"boolean\":\n node.removeAttribute(name);\n return;\n }\n checkAttributeStringCoercion(value, name);\n node.setAttributeNS(namespace, name, \"\" + value);\n }\n }\n function disabledLog() {}\n function disableLogs() {\n if (0 === disabledDepth) {\n prevLog = console.log;\n prevInfo = console.info;\n prevWarn = console.warn;\n prevError = console.error;\n prevGroup = console.group;\n prevGroupCollapsed = console.groupCollapsed;\n prevGroupEnd = console.groupEnd;\n var props = {\n configurable: !0,\n enumerable: !0,\n value: disabledLog,\n writable: !0\n };\n Object.defineProperties(console, {\n info: props,\n log: props,\n warn: props,\n error: props,\n group: props,\n groupCollapsed: props,\n groupEnd: props\n });\n }\n disabledDepth++;\n }\n function reenableLogs() {\n disabledDepth--;\n if (0 === disabledDepth) {\n var props = { configurable: !0, enumerable: !0, writable: !0 };\n Object.defineProperties(console, {\n log: assign({}, props, { value: prevLog }),\n info: assign({}, props, { value: prevInfo }),\n warn: assign({}, props, { value: prevWarn }),\n error: assign({}, props, { value: prevError }),\n group: assign({}, props, { value: prevGroup }),\n groupCollapsed: assign({}, props, { value: prevGroupCollapsed }),\n groupEnd: assign({}, props, { value: prevGroupEnd })\n });\n }\n 0 > disabledDepth &&\n console.error(\n \"disabledDepth fell below zero. This is a bug in React. Please file an issue.\"\n );\n }\n function describeBuiltInComponentFrame(name) {\n if (void 0 === prefix)\n try {\n throw Error();\n } catch (x) {\n var match = x.stack.trim().match(/\\n( *(at )?)/);\n prefix = (match && match[1]) || \"\";\n suffix =\n -1 < x.stack.indexOf(\"\\n at\")\n ? \" (<anonymous>)\"\n : -1 < x.stack.indexOf(\"@\")\n ? \"@unknown:0:0\"\n : \"\";\n }\n return \"\\n\" + prefix + name + suffix;\n }\n function describeNativeComponentFrame(fn, construct) {\n if (!fn || reentry) return \"\";\n var frame = componentFrameCache.get(fn);\n if (void 0 !== frame) return frame;\n reentry = !0;\n frame = Error.prepareStackTrace;\n Error.prepareStackTrace = void 0;\n var previousDispatcher = null;\n previousDispatcher = ReactSharedInternals.H;\n ReactSharedInternals.H = null;\n disableLogs();\n try {\n var RunInRootFrame = {\n DetermineComponentFrameRoot: function () {\n try {\n if (construct) {\n var Fake = function () {\n throw Error();\n };\n Object.defineProperty(Fake.prototype, \"props\", {\n set: function () {\n throw Error();\n }\n });\n if (\"object\" === typeof Reflect && Reflect.construct) {\n try {\n Reflect.construct(Fake, []);\n } catch (x) {\n var control = x;\n }\n Reflect.construct(fn, [], Fake);\n } else {\n try {\n Fake.call();\n } catch (x$0) {\n control = x$0;\n }\n fn.call(Fake.prototype);\n }\n } else {\n try {\n throw Error();\n } catch (x$1) {\n control = x$1;\n }\n (Fake = fn()) &&\n \"function\" === typeof Fake.catch &&\n Fake.catch(function () {});\n }\n } catch (sample) {\n if (sample && control && \"string\" === typeof sample.stack)\n return [sample.stack, control.stack];\n }\n return [null, null];\n }\n };\n RunInRootFrame.DetermineComponentFrameRoot.displayName =\n \"DetermineComponentFrameRoot\";\n var namePropDescriptor = Object.getOwnPropertyDescriptor(\n RunInRootFrame.DetermineComponentFrameRoot,\n \"name\"\n );\n namePropDescriptor &&\n namePropDescriptor.configurable &&\n Object.defineProperty(\n RunInRootFrame.DetermineComponentFrameRoot,\n \"name\",\n { value: \"DetermineComponentFrameRoot\" }\n );\n var _RunInRootFrame$Deter =\n RunInRootFrame.DetermineComponentFrameRoot(),\n sampleStack = _RunInRootFrame$Deter[0],\n controlStack = _RunInRootFrame$Deter[1];\n if (sampleStack && controlStack) {\n var sampleLines = sampleStack.split(\"\\n\"),\n controlLines = controlStack.split(\"\\n\");\n for (\n _RunInRootFrame$Deter = namePropDescriptor = 0;\n namePropDescriptor < sampleLines.length &&\n !sampleLines[namePropDescriptor].includes(\n \"DetermineComponentFrameRoot\"\n );\n\n )\n namePropDescriptor++;\n for (\n ;\n _RunInRootFrame$Deter < controlLines.length &&\n !controlLines[_RunInRootFrame$Deter].includes(\n \"DetermineComponentFrameRoot\"\n );\n\n )\n _RunInRootFrame$Deter++;\n if (\n namePropDescriptor === sampleLines.length ||\n _RunInRootFrame$Deter === controlLines.length\n )\n for (\n namePropDescriptor = sampleLines.length - 1,\n _RunInRootFrame$Deter = controlLines.length - 1;\n 1 <= namePropDescriptor &&\n 0 <= _RunInRootFrame$Deter &&\n sampleLines[namePropDescriptor] !==\n controlLines[_RunInRootFrame$Deter];\n\n )\n _RunInRootFrame$Deter--;\n for (\n ;\n 1 <= namePropDescriptor && 0 <= _RunInRootFrame$Deter;\n namePropDescriptor--, _RunInRootFrame$Deter--\n )\n if (\n sampleLines[namePropDescriptor] !==\n controlLines[_RunInRootFrame$Deter]\n ) {\n if (1 !== namePropDescriptor || 1 !== _RunInRootFrame$Deter) {\n do\n if (\n (namePropDescriptor--,\n _RunInRootFrame$Deter--,\n 0 > _RunInRootFrame$Deter ||\n sampleLines[namePropDescriptor] !==\n controlLines[_RunInRootFrame$Deter])\n ) {\n var _frame =\n \"\\n\" +\n sampleLines[namePropDescriptor].replace(\n \" at new \",\n \" at \"\n );\n fn.displayName &&\n _frame.includes(\"<anonymous>\") &&\n (_frame = _frame.replace(\"<anonymous>\", fn.displayName));\n \"function\" === typeof fn &&\n componentFrameCache.set(fn, _frame);\n return _frame;\n }\n while (1 <= namePropDescriptor && 0 <= _RunInRootFrame$Deter);\n }\n break;\n }\n }\n } finally {\n (reentry = !1),\n (ReactSharedInternals.H = previousDispatcher),\n reenableLogs(),\n (Error.prepareStackTrace = frame);\n }\n sampleLines = (sampleLines = fn ? fn.displayName || fn.name : \"\")\n ? describeBuiltInComponentFrame(sampleLines)\n : \"\";\n \"function\" === typeof fn && componentFrameCache.set(fn, sampleLines);\n return sampleLines;\n }\n function formatOwnerStack(error) {\n var prevPrepareStackTrace = Error.prepareStackTrace;\n Error.prepareStackTrace = void 0;\n error = error.stack;\n Error.prepareStackTrace = prevPrepareStackTrace;\n error.startsWith(\"Error: react-stack-top-frame\\n\") &&\n (error = error.slice(29));\n prevPrepareStackTrace = error.indexOf(\"\\n\");\n -1 !== prevPrepareStackTrace &&\n (error = error.slice(prevPrepareStackTrace + 1));\n prevPrepareStackTrace = error.indexOf(\"react-stack-bottom-frame\");\n -1 !== prevPrepareStackTrace &&\n (prevPrepareStackTrace = error.lastIndexOf(\n \"\\n\",\n prevPrepareStackTrace\n ));\n if (-1 !== prevPrepareStackTrace)\n error = error.slice(0, prevPrepareStackTrace);\n else return \"\";\n return error;\n }\n function describeFiber(fiber) {\n switch (fiber.tag) {\n case 26:\n case 27:\n case 5:\n return describeBuiltInComponentFrame(fiber.type);\n case 16:\n return describeBuiltInComponentFrame(\"Lazy\");\n case 13:\n return describeBuiltInComponentFrame(\"Suspense\");\n case 19:\n return describeBuiltInComponentFrame(\"SuspenseList\");\n case 0:\n case 15:\n return describeNativeComponentFrame(fiber.type, !1);\n case 11:\n return describeNativeComponentFrame(fiber.type.render, !1);\n case 1:\n return describeNativeComponentFrame(fiber.type, !0);\n case 31:\n return describeBuiltInComponentFrame(\"Activity\");\n default:\n return \"\";\n }\n }\n function getStackByFiberInDevAndProd(workInProgress) {\n try {\n var info = \"\";\n do {\n info += describeFiber(workInProgress);\n var debugInfo = workInProgress._debugInfo;\n if (debugInfo)\n for (var i = debugInfo.length - 1; 0 <= i; i--) {\n var entry = debugInfo[i];\n if (\"string\" === typeof entry.name) {\n var JSCompiler_temp_const = info,\n env = entry.env;\n var JSCompiler_inline_result = describeBuiltInComponentFrame(\n entry.name + (env ? \" [\" + env + \"]\" : \"\")\n );\n info = JSCompiler_temp_const + JSCompiler_inline_result;\n }\n }\n workInProgress = workInProgress.return;\n } while (workInProgress);\n return info;\n } catch (x) {\n return \"\\nError generating stack: \" + x.message + \"\\n\" + x.stack;\n }\n }\n function describeFunctionComponentFrameWithoutLineNumber(fn) {\n return (fn = fn ? fn.displayName || fn.name : \"\")\n ? describeBuiltInComponentFrame(fn)\n : \"\";\n }\n function getCurrentFiberOwnerNameInDevOrNull() {\n if (null === current) return null;\n var owner = current._debugOwner;\n return null != owner ? getComponentNameFromOwner(owner) : null;\n }\n function getCurrentFiberStackInDev() {\n if (null === current) return \"\";\n var workInProgress = current;\n try {\n var info = \"\";\n 6 === workInProgress.tag && (workInProgress = workInProgress.return);\n switch (workInProgress.tag) {\n case 26:\n case 27:\n case 5:\n info += describeBuiltInComponentFrame(workInProgress.type);\n break;\n case 13:\n info += describeBuiltInComponentFrame(\"Suspense\");\n break;\n case 19:\n info += describeBuiltInComponentFrame(\"SuspenseList\");\n break;\n case 31:\n info += describeBuiltInComponentFrame(\"Activity\");\n break;\n case 30:\n case 0:\n case 15:\n case 1:\n workInProgress._debugOwner ||\n \"\" !== info ||\n (info += describeFunctionComponentFrameWithoutLineNumber(\n workInProgress.type\n ));\n break;\n case 11:\n workInProgress._debugOwner ||\n \"\" !== info ||\n (info += describeFunctionComponentFrameWithoutLineNumber(\n workInProgress.type.render\n ));\n }\n for (; workInProgress; )\n if (\"number\" === typeof workInProgress.tag) {\n var fiber = workInProgress;\n workInProgress = fiber._debugOwner;\n var debugStack = fiber._debugStack;\n workInProgress &&\n debugStack &&\n (\"string\" !== typeof debugStack &&\n (fiber._debugStack = debugStack = formatOwnerStack(debugStack)),\n \"\" !== debugStack && (info += \"\\n\" + debugStack));\n } else if (null != workInProgress.debugStack) {\n var ownerStack = workInProgress.debugStack;\n (workInProgress = workInProgress.owner) &&\n ownerStack &&\n (info += \"\\n\" + formatOwnerStack(ownerStack));\n } else break;\n var JSCompiler_inline_result = info;\n } catch (x) {\n JSCompiler_inline_result =\n \"\\nError generating stack: \" + x.message + \"\\n\" + x.stack;\n }\n return JSCompiler_inline_result;\n }\n function runWithFiberInDEV(fiber, callback, arg0, arg1, arg2, arg3, arg4) {\n var previousFiber = current;\n setCurrentFiber(fiber);\n try {\n return null !== fiber && fiber._debugTask\n ? fiber._debugTask.run(\n callback.bind(null, arg0, arg1, arg2, arg3, arg4)\n )\n : callback(arg0, arg1, arg2, arg3, arg4);\n } finally {\n setCurrentFiber(previousFiber);\n }\n throw Error(\n \"runWithFiberInDEV should never be called in production. This is a bug in React.\"\n );\n }\n function setCurrentFiber(fiber) {\n ReactSharedInternals.getCurrentStack =\n null === fiber ? null : getCurrentFiberStackInDev;\n isRendering = !1;\n current = fiber;\n }\n function getToStringValue(value) {\n switch (typeof value) {\n case \"bigint\":\n case \"boolean\":\n case \"number\":\n case \"string\":\n case \"undefined\":\n return value;\n case \"object\":\n return checkFormFieldValueStringCoercion(value), value;\n default:\n return \"\";\n }\n }\n function isCheckable(elem) {\n var type = elem.type;\n return (\n (elem = elem.nodeName) &&\n \"input\" === elem.toLowerCase() &&\n (\"checkbox\" === type || \"radio\" === type)\n );\n }\n function trackValueOnNode(node) {\n var valueField = isCheckable(node) ? \"checked\" : \"value\",\n descriptor = Object.getOwnPropertyDescriptor(\n node.constructor.prototype,\n valueField\n );\n checkFormFieldValueStringCoercion(node[valueField]);\n var currentValue = \"\" + node[valueField];\n if (\n !node.hasOwnProperty(valueField) &&\n \"undefined\" !== typeof descriptor &&\n \"function\" === typeof descriptor.get &&\n \"function\" === typeof descriptor.set\n ) {\n var get = descriptor.get,\n set = descriptor.set;\n Object.defineProperty(node, valueField, {\n configurable: !0,\n get: function () {\n return get.call(this);\n },\n set: function (value) {\n checkFormFieldValueStringCoercion(value);\n currentValue = \"\" + value;\n set.call(this, value);\n }\n });\n Object.defineProperty(node, valueField, {\n enumerable: descriptor.enumerable\n });\n return {\n getValue: function () {\n return currentValue;\n },\n setValue: function (value) {\n checkFormFieldValueStringCoercion(value);\n currentValue = \"\" + value;\n },\n stopTracking: function () {\n node._valueTracker = null;\n delete node[valueField];\n }\n };\n }\n }\n function track(node) {\n node._valueTracker || (node._valueTracker = trackValueOnNode(node));\n }\n function updateValueIfChanged(node) {\n if (!node) return !1;\n var tracker = node._valueTracker;\n if (!tracker) return !0;\n var lastValue = tracker.getValue();\n var value = \"\";\n node &&\n (value = isCheckable(node)\n ? node.checked\n ? \"true\"\n : \"false\"\n : node.value);\n node = value;\n return node !== lastValue ? (tracker.setValue(node), !0) : !1;\n }\n function getActiveElement(doc) {\n doc = doc || (\"undefined\" !== typeof document ? document : void 0);\n if (\"undefined\" === typeof doc) return null;\n try {\n return doc.activeElement || doc.body;\n } catch (e) {\n return doc.body;\n }\n }\n function escapeSelectorAttributeValueInsideDoubleQuotes(value) {\n return value.replace(\n escapeSelectorAttributeValueInsideDoubleQuotesRegex,\n function (ch) {\n return \"\\\\\" + ch.charCodeAt(0).toString(16) + \" \";\n }\n );\n }\n function validateInputProps(element, props) {\n void 0 === props.checked ||\n void 0 === props.defaultChecked ||\n didWarnCheckedDefaultChecked ||\n (console.error(\n \"%s contains an input of type %s with both checked and defaultChecked props. Input elements must be either controlled or uncontrolled (specify either the checked prop, or the defaultChecked prop, but not both). Decide between using a controlled or uncontrolled input element and remove one of these props. More info: https://react.dev/link/controlled-components\",\n getCurrentFiberOwnerNameInDevOrNull() || \"A component\",\n props.type\n ),\n (didWarnCheckedDefaultChecked = !0));\n void 0 === props.value ||\n void 0 === props.defaultValue ||\n didWarnValueDefaultValue$1 ||\n (console.error(\n \"%s contains an input of type %s with both value and defaultValue props. Input elements must be either controlled or uncontrolled (specify either the value prop, or the defaultValue prop, but not both). Decide between using a controlled or uncontrolled input element and remove one of these props. More info: https://react.dev/link/controlled-components\",\n getCurrentFiberOwnerNameInDevOrNull() || \"A component\",\n props.type\n ),\n (didWarnValueDefaultValue$1 = !0));\n }\n function updateInput(\n element,\n value,\n defaultValue,\n lastDefaultValue,\n checked,\n defaultChecked,\n type,\n name\n ) {\n element.name = \"\";\n null != type &&\n \"function\" !== typeof type &&\n \"symbol\" !== typeof type &&\n \"boolean\" !== typeof type\n ? (checkAttributeStringCoercion(type, \"type\"), (element.type = type))\n : element.removeAttribute(\"type\");\n if (null != value)\n if (\"number\" === type) {\n if ((0 === value && \"\" === element.value) || element.value != value)\n element.value = \"\" + getToStringValue(value);\n } else\n element.value !== \"\" + getToStringValue(value) &&\n (element.value = \"\" + getToStringValue(value));\n else\n (\"submit\" !== type && \"reset\" !== type) ||\n element.removeAttribute(\"value\");\n null != value\n ? setDefaultValue(element, type, getToStringValue(value))\n : null != defaultValue\n ? setDefaultValue(element, type, getToStringValue(defaultValue))\n : null != lastDefaultValue && element.removeAttribute(\"value\");\n null == checked &&\n null != defaultChecked &&\n (element.defaultChecked = !!defaultChecked);\n null != checked &&\n (element.checked =\n checked &&\n \"function\" !== typeof checked &&\n \"symbol\" !== typeof checked);\n null != name &&\n \"function\" !== typeof name &&\n \"symbol\" !== typeof name &&\n \"boolean\" !== typeof name\n ? (checkAttributeStringCoercion(name, \"name\"),\n (element.name = \"\" + getToStringValue(name)))\n : element.removeAttribute(\"name\");\n }\n function initInput(\n element,\n value,\n defaultValue,\n checked,\n defaultChecked,\n type,\n name,\n isHydrating\n ) {\n null != type &&\n \"function\" !== typeof type &&\n \"symbol\" !== typeof type &&\n \"boolean\" !== typeof type &&\n (checkAttributeStringCoercion(type, \"type\"), (element.type = type));\n if (null != value || null != defaultValue) {\n if (\n !(\n (\"submit\" !== type && \"reset\" !== type) ||\n (void 0 !== value && null !== value)\n )\n )\n return;\n defaultValue =\n null != defaultValue ? \"\" + getToStringValue(defaultValue) : \"\";\n value = null != value ? \"\" + getToStringValue(value) : defaultValue;\n isHydrating || value === element.value || (element.value = value);\n element.defaultValue = value;\n }\n checked = null != checked ? checked : defaultChecked;\n checked =\n \"function\" !== typeof checked &&\n \"symbol\" !== typeof checked &&\n !!checked;\n element.checked = isHydrating ? element.checked : !!checked;\n element.defaultChecked = !!checked;\n null != name &&\n \"function\" !== typeof name &&\n \"symbol\" !== typeof name &&\n \"boolean\" !== typeof name &&\n (checkAttributeStringCoercion(name, \"name\"), (element.name = name));\n }\n function setDefaultValue(node, type, value) {\n (\"number\" === type && getActiveElement(node.ownerDocument) === node) ||\n node.defaultValue === \"\" + value ||\n (node.defaultValue = \"\" + value);\n }\n function validateOptionProps(element, props) {\n null == props.value &&\n (\"object\" === typeof props.children && null !== props.children\n ? React.Children.forEach(props.children, function (child) {\n null == child ||\n \"string\" === typeof child ||\n \"number\" === typeof child ||\n \"bigint\" === typeof child ||\n didWarnInvalidChild ||\n ((didWarnInvalidChild = !0),\n console.error(\n \"Cannot infer the option value of complex children. Pass a `value` prop or use a plain string as children to <option>.\"\n ));\n })\n : null == props.dangerouslySetInnerHTML ||\n didWarnInvalidInnerHTML ||\n ((didWarnInvalidInnerHTML = !0),\n console.error(\n \"Pass a `value` prop if you set dangerouslyInnerHTML so React knows which value should be selected.\"\n )));\n null == props.selected ||\n didWarnSelectedSetOnOption ||\n (console.error(\n \"Use the `defaultValue` or `value` props on <select> instead of setting `selected` on <option>.\"\n ),\n (didWarnSelectedSetOnOption = !0));\n }\n function getDeclarationErrorAddendum() {\n var ownerName = getCurrentFiberOwnerNameInDevOrNull();\n return ownerName\n ? \"\\n\\nCheck the render method of `\" + ownerName + \"`.\"\n : \"\";\n }\n function updateOptions(node, multiple, propValue, setDefaultSelected) {\n node = node.options;\n if (multiple) {\n multiple = {};\n for (var i = 0; i < propValue.length; i++)\n multiple[\"$\" + propValue[i]] = !0;\n for (propValue = 0; propValue < node.length; propValue++)\n (i = multiple.hasOwnProperty(\"$\" + node[propValue].value)),\n node[propValue].selected !== i && (node[propValue].selected = i),\n i && setDefaultSelected && (node[propValue].defaultSelected = !0);\n } else {\n propValue = \"\" + getToStringValue(propValue);\n multiple = null;\n for (i = 0; i < node.length; i++) {\n if (node[i].value === propValue) {\n node[i].selected = !0;\n setDefaultSelected && (node[i].defaultSelected = !0);\n return;\n }\n null !== multiple || node[i].disabled || (multiple = node[i]);\n }\n null !== multiple && (multiple.selected = !0);\n }\n }\n function validateSelectProps(element, props) {\n for (element = 0; element < valuePropNames.length; element++) {\n var propName = valuePropNames[element];\n if (null != props[propName]) {\n var propNameIsArray = isArrayImpl(props[propName]);\n props.multiple && !propNameIsArray\n ? console.error(\n \"The `%s` prop supplied to <select> must be an array if `multiple` is true.%s\",\n propName,\n getDeclarationErrorAddendum()\n )\n : !props.multiple &&\n propNameIsArray &&\n console.error(\n \"The `%s` prop supplied to <select> must be a scalar value if `multiple` is false.%s\",\n propName,\n getDeclarationErrorAddendum()\n );\n }\n }\n void 0 === props.value ||\n void 0 === props.defaultValue ||\n didWarnValueDefaultValue ||\n (console.error(\n \"Select elements must be either controlled or uncontrolled (specify either the value prop, or the defaultValue prop, but not both). Decide between using a controlled or uncontrolled select element and remove one of these props. More info: https://react.dev/link/controlled-components\"\n ),\n (didWarnValueDefaultValue = !0));\n }\n function validateTextareaProps(element, props) {\n void 0 === props.value ||\n void 0 === props.defaultValue ||\n didWarnValDefaultVal ||\n (console.error(\n \"%s contains a textarea with both value and defaultValue props. Textarea elements must be either controlled or uncontrolled (specify either the value prop, or the defaultValue prop, but not both). Decide between using a controlled or uncontrolled textarea and remove one of these props. More info: https://react.dev/link/controlled-components\",\n getCurrentFiberOwnerNameInDevOrNull() || \"A component\"\n ),\n (didWarnValDefaultVal = !0));\n null != props.children &&\n null == props.value &&\n console.error(\n \"Use the `defaultValue` or `value` props instead of setting children on <textarea>.\"\n );\n }\n function updateTextarea(element, value, defaultValue) {\n if (\n null != value &&\n ((value = \"\" + getToStringValue(value)),\n value !== element.value && (element.value = value),\n null == defaultValue)\n ) {\n element.defaultValue !== value && (element.defaultValue = value);\n return;\n }\n element.defaultValue =\n null != defaultValue ? \"\" + getToStringValue(defaultValue) : \"\";\n }\n function initTextarea(element, value, defaultValue, children) {\n if (null == value) {\n if (null != children) {\n if (null != defaultValue)\n throw Error(\n \"If you supply `defaultValue` on a <textarea>, do not pass children.\"\n );\n if (isArrayImpl(children)) {\n if (1 < children.length)\n throw Error(\"<textarea> can only have at most one child.\");\n children = children[0];\n }\n defaultValue = children;\n }\n null == defaultValue && (defaultValue = \"\");\n value = defaultValue;\n }\n defaultValue = getToStringValue(value);\n element.defaultValue = defaultValue;\n children = element.textContent;\n children === defaultValue &&\n \"\" !== children &&\n null !== children &&\n (element.value = children);\n }\n function findNotableNode(node, indent) {\n return void 0 === node.serverProps &&\n 0 === node.serverTail.length &&\n 1 === node.children.length &&\n 3 < node.distanceFromLeaf &&\n node.distanceFromLeaf > 15 - indent\n ? findNotableNode(node.children[0], indent)\n : node;\n }\n function indentation(indent) {\n return \" \" + \" \".repeat(indent);\n }\n function added(indent) {\n return \"+ \" + \" \".repeat(indent);\n }\n function removed(indent) {\n return \"- \" + \" \".repeat(indent);\n }\n function describeFiberType(fiber) {\n switch (fiber.tag) {\n case 26:\n case 27:\n case 5:\n return fiber.type;\n case 16:\n return \"Lazy\";\n case 13:\n return \"Suspense\";\n case 19:\n return \"SuspenseList\";\n case 0:\n case 15:\n return (fiber = fiber.type), fiber.displayName || fiber.name || null;\n case 11:\n return (\n (fiber = fiber.type.render), fiber.displayName || fiber.name || null\n );\n case 1:\n return (fiber = fiber.type), fiber.displayName || fiber.name || null;\n default:\n return null;\n }\n }\n function describeTextNode(content, maxLength) {\n return needsEscaping.test(content)\n ? ((content = JSON.stringify(content)),\n content.length > maxLength - 2\n ? 8 > maxLength\n ? '{\"...\"}'\n : \"{\" + content.slice(0, maxLength - 7) + '...\"}'\n : \"{\" + content + \"}\")\n : content.length > maxLength\n ? 5 > maxLength\n ? '{\"...\"}'\n : content.slice(0, maxLength - 3) + \"...\"\n : content;\n }\n function describeTextDiff(clientText, serverProps, indent) {\n var maxLength = 120 - 2 * indent;\n if (null === serverProps)\n return added(indent) + describeTextNode(clientText, maxLength) + \"\\n\";\n if (\"string\" === typeof serverProps) {\n for (\n var firstDiff = 0;\n firstDiff < serverProps.length &&\n firstDiff < clientText.length &&\n serverProps.charCodeAt(firstDiff) ===\n clientText.charCodeAt(firstDiff);\n firstDiff++\n );\n firstDiff > maxLength - 8 &&\n 10 < firstDiff &&\n ((clientText = \"...\" + clientText.slice(firstDiff - 8)),\n (serverProps = \"...\" + serverProps.slice(firstDiff - 8)));\n return (\n added(indent) +\n describeTextNode(clientText, maxLength) +\n \"\\n\" +\n removed(indent) +\n describeTextNode(serverProps, maxLength) +\n \"\\n\"\n );\n }\n return (\n indentation(indent) + describeTextNode(clientText, maxLength) + \"\\n\"\n );\n }\n function objectName(object) {\n return Object.prototype.toString\n .call(object)\n .replace(/^\\[object (.*)\\]$/, function (m, p0) {\n return p0;\n });\n }\n function describeValue(value, maxLength) {\n switch (typeof value) {\n case \"string\":\n return (\n (value = JSON.stringify(value)),\n value.length > maxLength\n ? 5 > maxLength\n ? '\"...\"'\n : value.slice(0, maxLength - 4) + '...\"'\n : value\n );\n case \"object\":\n if (null === value) return \"null\";\n if (isArrayImpl(value)) return \"[...]\";\n if (value.$$typeof === REACT_ELEMENT_TYPE)\n return (maxLength = getComponentNameFromType(value.type))\n ? \"<\" + maxLength + \">\"\n : \"<...>\";\n var name = objectName(value);\n if (\"Object\" === name) {\n name = \"\";\n maxLength -= 2;\n for (var propName in value)\n if (value.hasOwnProperty(propName)) {\n var jsonPropName = JSON.stringify(propName);\n jsonPropName !== '\"' + propName + '\"' &&\n (propName = jsonPropName);\n maxLength -= propName.length - 2;\n jsonPropName = describeValue(\n value[propName],\n 15 > maxLength ? maxLength : 15\n );\n maxLength -= jsonPropName.length;\n if (0 > maxLength) {\n name += \"\" === name ? \"...\" : \", ...\";\n break;\n }\n name +=\n (\"\" === name ? \"\" : \",\") + propName + \":\" + jsonPropName;\n }\n return \"{\" + name + \"}\";\n }\n return name;\n case \"function\":\n return (maxLength = value.displayName || value.name)\n ? \"function \" + maxLength\n : \"function\";\n default:\n return String(value);\n }\n }\n function describePropValue(value, maxLength) {\n return \"string\" !== typeof value || needsEscaping.test(value)\n ? \"{\" + describeValue(value, maxLength - 2) + \"}\"\n : value.length > maxLength - 2\n ? 5 > maxLength\n ? '\"...\"'\n : '\"' + value.slice(0, maxLength - 5) + '...\"'\n : '\"' + value + '\"';\n }\n function describeExpandedElement(type, props, rowPrefix) {\n var remainingRowLength = 120 - rowPrefix.length - type.length,\n properties = [],\n propName;\n for (propName in props)\n if (props.hasOwnProperty(propName) && \"children\" !== propName) {\n var propValue = describePropValue(\n props[propName],\n 120 - rowPrefix.length - propName.length - 1\n );\n remainingRowLength -= propName.length + propValue.length + 2;\n properties.push(propName + \"=\" + propValue);\n }\n return 0 === properties.length\n ? rowPrefix + \"<\" + type + \">\\n\"\n : 0 < remainingRowLength\n ? rowPrefix + \"<\" + type + \" \" + properties.join(\" \") + \">\\n\"\n : rowPrefix +\n \"<\" +\n type +\n \"\\n\" +\n rowPrefix +\n \" \" +\n properties.join(\"\\n\" + rowPrefix + \" \") +\n \"\\n\" +\n rowPrefix +\n \">\\n\";\n }\n function describePropertiesDiff(clientObject, serverObject, indent) {\n var properties = \"\",\n remainingServerProperties = assign({}, serverObject),\n propName;\n for (propName in clientObject)\n if (clientObject.hasOwnProperty(propName)) {\n delete remainingServerProperties[propName];\n var maxLength = 120 - 2 * indent - propName.length - 2,\n clientPropValue = describeValue(clientObject[propName], maxLength);\n serverObject.hasOwnProperty(propName)\n ? ((maxLength = describeValue(serverObject[propName], maxLength)),\n (properties +=\n added(indent) + propName + \": \" + clientPropValue + \"\\n\"),\n (properties +=\n removed(indent) + propName + \": \" + maxLength + \"\\n\"))\n : (properties +=\n added(indent) + propName + \": \" + clientPropValue + \"\\n\");\n }\n for (var _propName in remainingServerProperties)\n remainingServerProperties.hasOwnProperty(_propName) &&\n ((clientObject = describeValue(\n remainingServerProperties[_propName],\n 120 - 2 * indent - _propName.length - 2\n )),\n (properties +=\n removed(indent) + _propName + \": \" + clientObject + \"\\n\"));\n return properties;\n }\n function describeElementDiff(type, clientProps, serverProps, indent) {\n var content = \"\",\n serverPropNames = new Map();\n for (propName$jscomp$0 in serverProps)\n serverProps.hasOwnProperty(propName$jscomp$0) &&\n serverPropNames.set(\n propName$jscomp$0.toLowerCase(),\n propName$jscomp$0\n );\n if (1 === serverPropNames.size && serverPropNames.has(\"children\"))\n content += describeExpandedElement(\n type,\n clientProps,\n indentation(indent)\n );\n else {\n for (var _propName2 in clientProps)\n if (\n clientProps.hasOwnProperty(_propName2) &&\n \"children\" !== _propName2\n ) {\n var maxLength$jscomp$0 =\n 120 - 2 * (indent + 1) - _propName2.length - 1,\n serverPropName = serverPropNames.get(_propName2.toLowerCase());\n if (void 0 !== serverPropName) {\n serverPropNames.delete(_propName2.toLowerCase());\n var propName$jscomp$0 = clientProps[_propName2];\n serverPropName = serverProps[serverPropName];\n var clientPropValue = describePropValue(\n propName$jscomp$0,\n maxLength$jscomp$0\n );\n maxLength$jscomp$0 = describePropValue(\n serverPropName,\n maxLength$jscomp$0\n );\n \"object\" === typeof propName$jscomp$0 &&\n null !== propName$jscomp$0 &&\n \"object\" === typeof serverPropName &&\n null !== serverPropName &&\n \"Object\" === objectName(propName$jscomp$0) &&\n \"Object\" === objectName(serverPropName) &&\n (2 < Object.keys(propName$jscomp$0).length ||\n 2 < Object.keys(serverPropName).length ||\n -1 < clientPropValue.indexOf(\"...\") ||\n -1 < maxLength$jscomp$0.indexOf(\"...\"))\n ? (content +=\n indentation(indent + 1) +\n _propName2 +\n \"={{\\n\" +\n describePropertiesDiff(\n propName$jscomp$0,\n serverPropName,\n indent + 2\n ) +\n indentation(indent + 1) +\n \"}}\\n\")\n : ((content +=\n added(indent + 1) +\n _propName2 +\n \"=\" +\n clientPropValue +\n \"\\n\"),\n (content +=\n removed(indent + 1) +\n _propName2 +\n \"=\" +\n maxLength$jscomp$0 +\n \"\\n\"));\n } else\n content +=\n indentation(indent + 1) +\n _propName2 +\n \"=\" +\n describePropValue(clientProps[_propName2], maxLength$jscomp$0) +\n \"\\n\";\n }\n serverPropNames.forEach(function (propName) {\n if (\"children\" !== propName) {\n var maxLength = 120 - 2 * (indent + 1) - propName.length - 1;\n content +=\n removed(indent + 1) +\n propName +\n \"=\" +\n describePropValue(serverProps[propName], maxLength) +\n \"\\n\";\n }\n });\n content =\n \"\" === content\n ? indentation(indent) + \"<\" + type + \">\\n\"\n : indentation(indent) +\n \"<\" +\n type +\n \"\\n\" +\n content +\n indentation(indent) +\n \">\\n\";\n }\n type = serverProps.children;\n clientProps = clientProps.children;\n if (\n \"string\" === typeof type ||\n \"number\" === typeof type ||\n \"bigint\" === typeof type\n ) {\n serverPropNames = \"\";\n if (\n \"string\" === typeof clientProps ||\n \"number\" === typeof clientProps ||\n \"bigint\" === typeof clientProps\n )\n serverPropNames = \"\" + clientProps;\n content += describeTextDiff(serverPropNames, \"\" + type, indent + 1);\n } else if (\n \"string\" === typeof clientProps ||\n \"number\" === typeof clientProps ||\n \"bigint\" === typeof clientProps\n )\n content =\n null == type\n ? content + describeTextDiff(\"\" + clientProps, null, indent + 1)\n : content + describeTextDiff(\"\" + clientProps, void 0, indent + 1);\n return content;\n }\n function describeSiblingFiber(fiber, indent) {\n var type = describeFiberType(fiber);\n if (null === type) {\n type = \"\";\n for (fiber = fiber.child; fiber; )\n (type += describeSiblingFiber(fiber, indent)),\n (fiber = fiber.sibling);\n return type;\n }\n return indentation(indent) + \"<\" + type + \">\\n\";\n }\n function describeNode(node, indent) {\n var skipToNode = findNotableNode(node, indent);\n if (\n skipToNode !== node &&\n (1 !== node.children.length || node.children[0] !== skipToNode)\n )\n return (\n indentation(indent) + \"...\\n\" + describeNode(skipToNode, indent + 1)\n );\n skipToNode = \"\";\n var debugInfo = node.fiber._debugInfo;\n if (debugInfo)\n for (var i = 0; i < debugInfo.length; i++) {\n var serverComponentName = debugInfo[i].name;\n \"string\" === typeof serverComponentName &&\n ((skipToNode +=\n indentation(indent) + \"<\" + serverComponentName + \">\\n\"),\n indent++);\n }\n debugInfo = \"\";\n i = node.fiber.pendingProps;\n if (6 === node.fiber.tag)\n (debugInfo = describeTextDiff(i, node.serverProps, indent)), indent++;\n else if (\n ((serverComponentName = describeFiberType(node.fiber)),\n null !== serverComponentName)\n )\n if (void 0 === node.serverProps) {\n debugInfo = indent;\n var maxLength = 120 - 2 * debugInfo - serverComponentName.length - 2,\n content = \"\";\n for (propName in i)\n if (i.hasOwnProperty(propName) && \"children\" !== propName) {\n var propValue = describePropValue(i[propName], 15);\n maxLength -= propName.length + propValue.length + 2;\n if (0 > maxLength) {\n content += \" ...\";\n break;\n }\n content += \" \" + propName + \"=\" + propValue;\n }\n debugInfo =\n indentation(debugInfo) +\n \"<\" +\n serverComponentName +\n content +\n \">\\n\";\n indent++;\n } else\n null === node.serverProps\n ? ((debugInfo = describeExpandedElement(\n serverComponentName,\n i,\n added(indent)\n )),\n indent++)\n : \"string\" === typeof node.serverProps\n ? console.error(\n \"Should not have matched a non HostText fiber to a Text node. This is a bug in React.\"\n )\n : ((debugInfo = describeElementDiff(\n serverComponentName,\n i,\n node.serverProps,\n indent\n )),\n indent++);\n var propName = \"\";\n i = node.fiber.child;\n for (\n serverComponentName = 0;\n i && serverComponentName < node.children.length;\n\n )\n (maxLength = node.children[serverComponentName]),\n maxLength.fiber === i\n ? ((propName += describeNode(maxLength, indent)),\n serverComponentName++)\n : (propName += describeSiblingFiber(i, indent)),\n (i = i.sibling);\n i &&\n 0 < node.children.length &&\n (propName += indentation(indent) + \"...\\n\");\n i = node.serverTail;\n null === node.serverProps && indent--;\n for (node = 0; node < i.length; node++)\n (serverComponentName = i[node]),\n (propName =\n \"string\" === typeof serverComponentName\n ? propName +\n (removed(indent) +\n describeTextNode(serverComponentName, 120 - 2 * indent) +\n \"\\n\")\n : propName +\n describeExpandedElement(\n serverComponentName.type,\n serverComponentName.props,\n removed(indent)\n ));\n return skipToNode + debugInfo + propName;\n }\n function describeDiff(rootNode) {\n try {\n return \"\\n\\n\" + describeNode(rootNode, 0);\n } catch (x) {\n return \"\";\n }\n }\n function describeAncestors(ancestor, child, props) {\n for (var fiber = child, node = null, distanceFromLeaf = 0; fiber; )\n fiber === ancestor && (distanceFromLeaf = 0),\n (node = {\n fiber: fiber,\n children: null !== node ? [node] : [],\n serverProps:\n fiber === child ? props : fiber === ancestor ? null : void 0,\n serverTail: [],\n distanceFromLeaf: distanceFromLeaf\n }),\n distanceFromLeaf++,\n (fiber = fiber.return);\n return null !== node ? describeDiff(node).replaceAll(/^[+-]/gm, \">\") : \"\";\n }\n function updatedAncestorInfoDev(oldInfo, tag) {\n var ancestorInfo = assign({}, oldInfo || emptyAncestorInfoDev),\n info = { tag: tag };\n -1 !== inScopeTags.indexOf(tag) &&\n ((ancestorInfo.aTagInScope = null),\n (ancestorInfo.buttonTagInScope = null),\n (ancestorInfo.nobrTagInScope = null));\n -1 !== buttonScopeTags.indexOf(tag) &&\n (ancestorInfo.pTagInButtonScope = null);\n -1 !== specialTags.indexOf(tag) &&\n \"address\" !== tag &&\n \"div\" !== tag &&\n \"p\" !== tag &&\n ((ancestorInfo.listItemTagAutoclosing = null),\n (ancestorInfo.dlItemTagAutoclosing = null));\n ancestorInfo.current = info;\n \"form\" === tag && (ancestorInfo.formTag = info);\n \"a\" === tag && (ancestorInfo.aTagInScope = info);\n \"button\" === tag && (ancestorInfo.buttonTagInScope = info);\n \"nobr\" === tag && (ancestorInfo.nobrTagInScope = info);\n \"p\" === tag && (ancestorInfo.pTagInButtonScope = info);\n \"li\" === tag && (ancestorInfo.listItemTagAutoclosing = info);\n if (\"dd\" === tag || \"dt\" === tag)\n ancestorInfo.dlItemTagAutoclosing = info;\n \"#document\" === tag || \"html\" === tag\n ? (ancestorInfo.containerTagInScope = null)\n : ancestorInfo.containerTagInScope ||\n (ancestorInfo.containerTagInScope = info);\n null !== oldInfo ||\n (\"#document\" !== tag && \"html\" !== tag && \"body\" !== tag)\n ? !0 === ancestorInfo.implicitRootScope &&\n (ancestorInfo.implicitRootScope = !1)\n : (ancestorInfo.implicitRootScope = !0);\n return ancestorInfo;\n }\n function isTagValidWithParent(tag, parentTag, implicitRootScope) {\n switch (parentTag) {\n case \"select\":\n return (\n \"hr\" === tag ||\n \"option\" === tag ||\n \"optgroup\" === tag ||\n \"script\" === tag ||\n \"template\" === tag ||\n \"#text\" === tag\n );\n case \"optgroup\":\n return \"option\" === tag || \"#text\" === tag;\n case \"option\":\n return \"#text\" === tag;\n case \"tr\":\n return (\n \"th\" === tag ||\n \"td\" === tag ||\n \"style\" === tag ||\n \"script\" === tag ||\n \"template\" === tag\n );\n case \"tbody\":\n case \"thead\":\n case \"tfoot\":\n return (\n \"tr\" === tag ||\n \"style\" === tag ||\n \"script\" === tag ||\n \"template\" === tag\n );\n case \"colgroup\":\n return \"col\" === tag || \"template\" === tag;\n case \"table\":\n return (\n \"caption\" === tag ||\n \"colgroup\" === tag ||\n \"tbody\" === tag ||\n \"tfoot\" === tag ||\n \"thead\" === tag ||\n \"style\" === tag ||\n \"script\" === tag ||\n \"template\" === tag\n );\n case \"head\":\n return (\n \"base\" === tag ||\n \"basefont\" === tag ||\n \"bgsound\" === tag ||\n \"link\" === tag ||\n \"meta\" === tag ||\n \"title\" === tag ||\n \"noscript\" === tag ||\n \"noframes\" === tag ||\n \"style\" === tag ||\n \"script\" === tag ||\n \"template\" === tag\n );\n case \"html\":\n if (implicitRootScope) break;\n return \"head\" === tag || \"body\" === tag || \"frameset\" === tag;\n case \"frameset\":\n return \"frame\" === tag;\n case \"#document\":\n if (!implicitRootScope) return \"html\" === tag;\n }\n switch (tag) {\n case \"h1\":\n case \"h2\":\n case \"h3\":\n case \"h4\":\n case \"h5\":\n case \"h6\":\n return (\n \"h1\" !== parentTag &&\n \"h2\" !== parentTag &&\n \"h3\" !== parentTag &&\n \"h4\" !== parentTag &&\n \"h5\" !== parentTag &&\n \"h6\" !== parentTag\n );\n case \"rp\":\n case \"rt\":\n return -1 === impliedEndTags.indexOf(parentTag);\n case \"caption\":\n case \"col\":\n case \"colgroup\":\n case \"frameset\":\n case \"frame\":\n case \"tbody\":\n case \"td\":\n case \"tfoot\":\n case \"th\":\n case \"thead\":\n case \"tr\":\n return null == parentTag;\n case \"head\":\n return implicitRootScope || null === parentTag;\n case \"html\":\n return (\n (implicitRootScope && \"#document\" === parentTag) ||\n null === parentTag\n );\n case \"body\":\n return (\n (implicitRootScope &&\n (\"#document\" === parentTag || \"html\" === parentTag)) ||\n null === parentTag\n );\n }\n return !0;\n }\n function findInvalidAncestorForTag(tag, ancestorInfo) {\n switch (tag) {\n case \"address\":\n case \"article\":\n case \"aside\":\n case \"blockquote\":\n case \"center\":\n case \"details\":\n case \"dialog\":\n case \"dir\":\n case \"div\":\n case \"dl\":\n case \"fieldset\":\n case \"figcaption\":\n case \"figure\":\n case \"footer\":\n case \"header\":\n case \"hgroup\":\n case \"main\":\n case \"menu\":\n case \"nav\":\n case \"ol\":\n case \"p\":\n case \"section\":\n case \"summary\":\n case \"ul\":\n case \"pre\":\n case \"listing\":\n case \"table\":\n case \"hr\":\n case \"xmp\":\n case \"h1\":\n case \"h2\":\n case \"h3\":\n case \"h4\":\n case \"h5\":\n case \"h6\":\n return ancestorInfo.pTagInButtonScope;\n case \"form\":\n return ancestorInfo.formTag || ancestorInfo.pTagInButtonScope;\n case \"li\":\n return ancestorInfo.listItemTagAutoclosing;\n case \"dd\":\n case \"dt\":\n return ancestorInfo.dlItemTagAutoclosing;\n case \"button\":\n return ancestorInfo.buttonTagInScope;\n case \"a\":\n return ancestorInfo.aTagInScope;\n case \"nobr\":\n return ancestorInfo.nobrTagInScope;\n }\n return null;\n }\n function findAncestor(parent, tagName) {\n for (; parent; ) {\n switch (parent.tag) {\n case 5:\n case 26:\n case 27:\n if (parent.type === tagName) return parent;\n }\n parent = parent.return;\n }\n return null;\n }\n function validateDOMNesting(childTag, ancestorInfo) {\n ancestorInfo = ancestorInfo || emptyAncestorInfoDev;\n var parentInfo = ancestorInfo.current;\n ancestorInfo = (parentInfo = isTagValidWithParent(\n childTag,\n parentInfo && parentInfo.tag,\n ancestorInfo.implicitRootScope\n )\n ? null\n : parentInfo)\n ? null\n : findInvalidAncestorForTag(childTag, ancestorInfo);\n ancestorInfo = parentInfo || ancestorInfo;\n if (!ancestorInfo) return !0;\n var ancestorTag = ancestorInfo.tag;\n ancestorInfo = String(!!parentInfo) + \"|\" + childTag + \"|\" + ancestorTag;\n if (didWarn[ancestorInfo]) return !1;\n didWarn[ancestorInfo] = !0;\n var ancestor = (ancestorInfo = current)\n ? findAncestor(ancestorInfo.return, ancestorTag)\n : null,\n ancestorDescription =\n null !== ancestorInfo && null !== ancestor\n ? describeAncestors(ancestor, ancestorInfo, null)\n : \"\",\n tagDisplayName = \"<\" + childTag + \">\";\n parentInfo\n ? ((parentInfo = \"\"),\n \"table\" === ancestorTag &&\n \"tr\" === childTag &&\n (parentInfo +=\n \" Add a <tbody>, <thead> or <tfoot> to your code to match the DOM tree generated by the browser.\"),\n console.error(\n \"In HTML, %s cannot be a child of <%s>.%s\\nThis will cause a hydration error.%s\",\n tagDisplayName,\n ancestorTag,\n parentInfo,\n ancestorDescription\n ))\n : console.error(\n \"In HTML, %s cannot be a descendant of <%s>.\\nThis will cause a hydration error.%s\",\n tagDisplayName,\n ancestorTag,\n ancestorDescription\n );\n ancestorInfo &&\n ((childTag = ancestorInfo.return),\n null === ancestor ||\n null === childTag ||\n (ancestor === childTag &&\n childTag._debugOwner === ancestorInfo._debugOwner) ||\n runWithFiberInDEV(ancestor, function () {\n console.error(\n \"<%s> cannot contain a nested %s.\\nSee this log for the ancestor stack trace.\",\n ancestorTag,\n tagDisplayName\n );\n }));\n return !1;\n }\n function validateTextNesting(childText, parentTag, implicitRootScope) {\n if (implicitRootScope || isTagValidWithParent(\"#text\", parentTag, !1))\n return !0;\n implicitRootScope = \"#text|\" + parentTag;\n if (didWarn[implicitRootScope]) return !1;\n didWarn[implicitRootScope] = !0;\n var ancestor = (implicitRootScope = current)\n ? findAncestor(implicitRootScope, parentTag)\n : null;\n implicitRootScope =\n null !== implicitRootScope && null !== ancestor\n ? describeAncestors(\n ancestor,\n implicitRootScope,\n 6 !== implicitRootScope.tag ? { children: null } : null\n )\n : \"\";\n /\\S/.test(childText)\n ? console.error(\n \"In HTML, text nodes cannot be a child of <%s>.\\nThis will cause a hydration error.%s\",\n parentTag,\n implicitRootScope\n )\n : console.error(\n \"In HTML, whitespace text nodes cannot be a child of <%s>. Make sure you don't have any extra whitespace between tags on each line of your source code.\\nThis will cause a hydration error.%s\",\n parentTag,\n implicitRootScope\n );\n return !1;\n }\n function setTextContent(node, text) {\n if (text) {\n var firstChild = node.firstChild;\n if (\n firstChild &&\n firstChild === node.lastChild &&\n 3 === firstChild.nodeType\n ) {\n firstChild.nodeValue = text;\n return;\n }\n }\n node.textContent = text;\n }\n function camelize(string) {\n return string.replace(hyphenPattern, function (_, character) {\n return character.toUpperCase();\n });\n }\n function setValueForStyle(style, styleName, value) {\n var isCustomProperty = 0 === styleName.indexOf(\"--\");\n isCustomProperty ||\n (-1 < styleName.indexOf(\"-\")\n ? (warnedStyleNames.hasOwnProperty(styleName) &&\n warnedStyleNames[styleName]) ||\n ((warnedStyleNames[styleName] = !0),\n console.error(\n \"Unsupported style property %s. Did you mean %s?\",\n styleName,\n camelize(styleName.replace(msPattern, \"ms-\"))\n ))\n : badVendoredStyleNamePattern.test(styleName)\n ? (warnedStyleNames.hasOwnProperty(styleName) &&\n warnedStyleNames[styleName]) ||\n ((warnedStyleNames[styleName] = !0),\n console.error(\n \"Unsupported vendor-prefixed style property %s. Did you mean %s?\",\n styleName,\n styleName.charAt(0).toUpperCase() + styleName.slice(1)\n ))\n : !badStyleValueWithSemicolonPattern.test(value) ||\n (warnedStyleValues.hasOwnProperty(value) &&\n warnedStyleValues[value]) ||\n ((warnedStyleValues[value] = !0),\n console.error(\n 'Style property values shouldn\\'t contain a semicolon. Try \"%s: %s\" instead.',\n styleName,\n value.replace(badStyleValueWithSemicolonPattern, \"\")\n )),\n \"number\" === typeof value &&\n (isNaN(value)\n ? warnedForNaNValue ||\n ((warnedForNaNValue = !0),\n console.error(\n \"`NaN` is an invalid value for the `%s` css style property.\",\n styleName\n ))\n : isFinite(value) ||\n warnedForInfinityValue ||\n ((warnedForInfinityValue = !0),\n console.error(\n \"`Infinity` is an invalid value for the `%s` css style property.\",\n styleName\n ))));\n null == value || \"boolean\" === typeof value || \"\" === value\n ? isCustomProperty\n ? style.setProperty(styleName, \"\")\n : \"float\" === styleName\n ? (style.cssFloat = \"\")\n : (style[styleName] = \"\")\n : isCustomProperty\n ? style.setProperty(styleName, value)\n : \"number\" !== typeof value ||\n 0 === value ||\n unitlessNumbers.has(styleName)\n ? \"float\" === styleName\n ? (style.cssFloat = value)\n : (checkCSSPropertyStringCoercion(value, styleName),\n (style[styleName] = (\"\" + value).trim()))\n : (style[styleName] = value + \"px\");\n }\n function setValueForStyles(node, styles, prevStyles) {\n if (null != styles && \"object\" !== typeof styles)\n throw Error(\n \"The `style` prop expects a mapping from style properties to values, not a string. For example, style={{marginRight: spacing + 'em'}} when using JSX.\"\n );\n styles && Object.freeze(styles);\n node = node.style;\n if (null != prevStyles) {\n if (styles) {\n var expandedUpdates = {};\n if (prevStyles)\n for (var key in prevStyles)\n if (prevStyles.hasOwnProperty(key) && !styles.hasOwnProperty(key))\n for (\n var longhands = shorthandToLonghand[key] || [key], i = 0;\n i < longhands.length;\n i++\n )\n expandedUpdates[longhands[i]] = key;\n for (var _key in styles)\n if (\n styles.hasOwnProperty(_key) &&\n (!prevStyles || prevStyles[_key] !== styles[_key])\n )\n for (\n key = shorthandToLonghand[_key] || [_key], longhands = 0;\n longhands < key.length;\n longhands++\n )\n expandedUpdates[key[longhands]] = _key;\n _key = {};\n for (var key$jscomp$0 in styles)\n for (\n key = shorthandToLonghand[key$jscomp$0] || [key$jscomp$0],\n longhands = 0;\n longhands < key.length;\n longhands++\n )\n _key[key[longhands]] = key$jscomp$0;\n key$jscomp$0 = {};\n for (var _key2 in expandedUpdates)\n if (\n ((key = expandedUpdates[_key2]),\n (longhands = _key[_key2]) &&\n key !== longhands &&\n ((i = key + \",\" + longhands), !key$jscomp$0[i]))\n ) {\n key$jscomp$0[i] = !0;\n i = console;\n var value = styles[key];\n i.error.call(\n i,\n \"%s a style property during rerender (%s) when a conflicting property is set (%s) can lead to styling bugs. To avoid this, don't mix shorthand and non-shorthand properties for the same value; instead, replace the shorthand with separate values.\",\n null == value || \"boolean\" === typeof value || \"\" === value\n ? \"Removing\"\n : \"Updating\",\n key,\n longhands\n );\n }\n }\n for (var styleName in prevStyles)\n !prevStyles.hasOwnProperty(styleName) ||\n (null != styles && styles.hasOwnProperty(styleName)) ||\n (0 === styleName.indexOf(\"--\")\n ? node.setProperty(styleName, \"\")\n : \"float\" === styleName\n ? (node.cssFloat = \"\")\n : (node[styleName] = \"\"));\n for (var _styleName in styles)\n (_key2 = styles[_styleName]),\n styles.hasOwnProperty(_styleName) &&\n prevStyles[_styleName] !== _key2 &&\n setValueForStyle(node, _styleName, _key2);\n } else\n for (expandedUpdates in styles)\n styles.hasOwnProperty(expandedUpdates) &&\n setValueForStyle(node, expandedUpdates, styles[expandedUpdates]);\n }\n function isCustomElement(tagName) {\n if (-1 === tagName.indexOf(\"-\")) return !1;\n switch (tagName) {\n case \"annotation-xml\":\n case \"color-profile\":\n case \"font-face\":\n case \"font-face-src\":\n case \"font-face-uri\":\n case \"font-face-format\":\n case \"font-face-name\":\n case \"missing-glyph\":\n return !1;\n default:\n return !0;\n }\n }\n function getAttributeAlias(name) {\n return aliases.get(name) || name;\n }\n function validateProperty$1(tagName, name) {\n if (\n hasOwnProperty.call(warnedProperties$1, name) &&\n warnedProperties$1[name]\n )\n return !0;\n if (rARIACamel$1.test(name)) {\n tagName = \"aria-\" + name.slice(4).toLowerCase();\n tagName = ariaProperties.hasOwnProperty(tagName) ? tagName : null;\n if (null == tagName)\n return (\n console.error(\n \"Invalid ARIA attribute `%s`. ARIA attributes follow the pattern aria-* and must be lowercase.\",\n name\n ),\n (warnedProperties$1[name] = !0)\n );\n if (name !== tagName)\n return (\n console.error(\n \"Invalid ARIA attribute `%s`. Did you mean `%s`?\",\n name,\n tagName\n ),\n (warnedProperties$1[name] = !0)\n );\n }\n if (rARIA$1.test(name)) {\n tagName = name.toLowerCase();\n tagName = ariaProperties.hasOwnProperty(tagName) ? tagName : null;\n if (null == tagName) return (warnedProperties$1[name] = !0), !1;\n name !== tagName &&\n (console.error(\n \"Unknown ARIA attribute `%s`. Did you mean `%s`?\",\n name,\n tagName\n ),\n (warnedProperties$1[name] = !0));\n }\n return !0;\n }\n function validateProperties$2(type, props) {\n var invalidProps = [],\n key;\n for (key in props)\n validateProperty$1(type, key) || invalidProps.push(key);\n props = invalidProps\n .map(function (prop) {\n return \"`\" + prop + \"`\";\n })\n .join(\", \");\n 1 === invalidProps.length\n ? console.error(\n \"Invalid aria prop %s on <%s> tag. For details, see https://react.dev/link/invalid-aria-props\",\n props,\n type\n )\n : 1 < invalidProps.length &&\n console.error(\n \"Invalid aria props %s on <%s> tag. For details, see https://react.dev/link/invalid-aria-props\",\n props,\n type\n );\n }\n function validateProperty(tagName, name, value, eventRegistry) {\n if (hasOwnProperty.call(warnedProperties, name) && warnedProperties[name])\n return !0;\n var lowerCasedName = name.toLowerCase();\n if (\"onfocusin\" === lowerCasedName || \"onfocusout\" === lowerCasedName)\n return (\n console.error(\n \"React uses onFocus and onBlur instead of onFocusIn and onFocusOut. All React events are normalized to bubble, so onFocusIn and onFocusOut are not needed/supported by React.\"\n ),\n (warnedProperties[name] = !0)\n );\n if (\n \"function\" === typeof value &&\n ((\"form\" === tagName && \"action\" === name) ||\n (\"input\" === tagName && \"formAction\" === name) ||\n (\"button\" === tagName && \"formAction\" === name))\n )\n return !0;\n if (null != eventRegistry) {\n tagName = eventRegistry.possibleRegistrationNames;\n if (eventRegistry.registrationNameDependencies.hasOwnProperty(name))\n return !0;\n eventRegistry = tagName.hasOwnProperty(lowerCasedName)\n ? tagName[lowerCasedName]\n : null;\n if (null != eventRegistry)\n return (\n console.error(\n \"Invalid event handler property `%s`. Did you mean `%s`?\",\n name,\n eventRegistry\n ),\n (warnedProperties[name] = !0)\n );\n if (EVENT_NAME_REGEX.test(name))\n return (\n console.error(\n \"Unknown event handler property `%s`. It will be ignored.\",\n name\n ),\n (warnedProperties[name] = !0)\n );\n } else if (EVENT_NAME_REGEX.test(name))\n return (\n INVALID_EVENT_NAME_REGEX.test(name) &&\n console.error(\n \"Invalid event handler property `%s`. React events use the camelCase naming convention, for example `onClick`.\",\n name\n ),\n (warnedProperties[name] = !0)\n );\n if (rARIA.test(name) || rARIACamel.test(name)) return !0;\n if (\"innerhtml\" === lowerCasedName)\n return (\n console.error(\n \"Directly setting property `innerHTML` is not permitted. For more information, lookup documentation on `dangerouslySetInnerHTML`.\"\n ),\n (warnedProperties[name] = !0)\n );\n if (\"aria\" === lowerCasedName)\n return (\n console.error(\n \"The `aria` attribute is reserved for future use in React. Pass individual `aria-` attributes instead.\"\n ),\n (warnedProperties[name] = !0)\n );\n if (\n \"is\" === lowerCasedName &&\n null !== value &&\n void 0 !== value &&\n \"string\" !== typeof value\n )\n return (\n console.error(\n \"Received a `%s` for a string attribute `is`. If this is expected, cast the value to a string.\",\n typeof value\n ),\n (warnedProperties[name] = !0)\n );\n if (\"number\" === typeof value && isNaN(value))\n return (\n console.error(\n \"Received NaN for the `%s` attribute. If this is expected, cast the value to a string.\",\n name\n ),\n (warnedProperties[name] = !0)\n );\n if (possibleStandardNames.hasOwnProperty(lowerCasedName)) {\n if (\n ((lowerCasedName = possibleStandardNames[lowerCasedName]),\n lowerCasedName !== name)\n )\n return (\n console.error(\n \"Invalid DOM property `%s`. Did you mean `%s`?\",\n name,\n lowerCasedName\n ),\n (warnedProperties[name] = !0)\n );\n } else if (name !== lowerCasedName)\n return (\n console.error(\n \"React does not recognize the `%s` prop on a DOM element. If you intentionally want it to appear in the DOM as a custom attribute, spell it as lowercase `%s` instead. If you accidentally passed it from a parent component, remove it from the DOM element.\",\n name,\n lowerCasedName\n ),\n (warnedProperties[name] = !0)\n );\n switch (name) {\n case \"dangerouslySetInnerHTML\":\n case \"children\":\n case \"style\":\n case \"suppressContentEditableWarning\":\n case \"suppressHydrationWarning\":\n case \"defaultValue\":\n case \"defaultChecked\":\n case \"innerHTML\":\n case \"ref\":\n return !0;\n case \"innerText\":\n case \"textContent\":\n return !0;\n }\n switch (typeof value) {\n case \"boolean\":\n switch (name) {\n case \"autoFocus\":\n case \"checked\":\n case \"multiple\":\n case \"muted\":\n case \"selected\":\n case \"contentEditable\":\n case \"spellCheck\":\n case \"draggable\":\n case \"value\":\n case \"autoReverse\":\n case \"externalResourcesRequired\":\n case \"focusable\":\n case \"preserveAlpha\":\n case \"allowFullScreen\":\n case \"async\":\n case \"autoPlay\":\n case \"controls\":\n case \"default\":\n case \"defer\":\n case \"disabled\":\n case \"disablePictureInPicture\":\n case \"disableRemotePlayback\":\n case \"formNoValidate\":\n case \"hidden\":\n case \"loop\":\n case \"noModule\":\n case \"noValidate\":\n case \"open\":\n case \"playsInline\":\n case \"readOnly\":\n case \"required\":\n case \"reversed\":\n case \"scoped\":\n case \"seamless\":\n case \"itemScope\":\n case \"capture\":\n case \"download\":\n case \"inert\":\n return !0;\n default:\n lowerCasedName = name.toLowerCase().slice(0, 5);\n if (\"data-\" === lowerCasedName || \"aria-\" === lowerCasedName)\n return !0;\n value\n ? console.error(\n 'Received `%s` for a non-boolean attribute `%s`.\\n\\nIf you want to write it to the DOM, pass a string instead: %s=\"%s\" or %s={value.toString()}.',\n value,\n name,\n name,\n value,\n name\n )\n : console.error(\n 'Received `%s` for a non-boolean attribute `%s`.\\n\\nIf you want to write it to the DOM, pass a string instead: %s=\"%s\" or %s={value.toString()}.\\n\\nIf you used to conditionally omit it with %s={condition && value}, pass %s={condition ? value : undefined} instead.',\n value,\n name,\n name,\n value,\n name,\n name,\n name\n );\n return (warnedProperties[name] = !0);\n }\n case \"function\":\n case \"symbol\":\n return (warnedProperties[name] = !0), !1;\n case \"string\":\n if (\"false\" === value || \"true\" === value) {\n switch (name) {\n case \"checked\":\n case \"selected\":\n case \"multiple\":\n case \"muted\":\n case \"allowFullScreen\":\n case \"async\":\n case \"autoPlay\":\n case \"controls\":\n case \"default\":\n case \"defer\":\n case \"disabled\":\n case \"disablePictureInPicture\":\n case \"disableRemotePlayback\":\n case \"formNoValidate\":\n case \"hidden\":\n case \"loop\":\n case \"noModule\":\n case \"noValidate\":\n case \"open\":\n case \"playsInline\":\n case \"readOnly\":\n case \"required\":\n case \"reversed\":\n case \"scoped\":\n case \"seamless\":\n case \"itemScope\":\n case \"inert\":\n break;\n default:\n return !0;\n }\n console.error(\n \"Received the string `%s` for the boolean attribute `%s`. %s Did you mean %s={%s}?\",\n value,\n name,\n \"false\" === value\n ? \"The browser will interpret it as a truthy value.\"\n : 'Although this works, it will not work as expected if you pass the string \"false\".',\n name,\n value\n );\n warnedProperties[name] = !0;\n }\n }\n return !0;\n }\n function warnUnknownProperties(type, props, eventRegistry) {\n var unknownProps = [],\n key;\n for (key in props)\n validateProperty(type, key, props[key], eventRegistry) ||\n unknownProps.push(key);\n props = unknownProps\n .map(function (prop) {\n return \"`\" + prop + \"`\";\n })\n .join(\", \");\n 1 === unknownProps.length\n ? console.error(\n \"Invalid value for prop %s on <%s> tag. Either remove it from the element, or pass a string or number value to keep it in the DOM. For details, see https://react.dev/link/attribute-behavior \",\n props,\n type\n )\n : 1 < unknownProps.length &&\n console.error(\n \"Invalid values for props %s on <%s> tag. Either remove them from the element, or pass a string or number value to keep them in the DOM. For details, see https://react.dev/link/attribute-behavior \",\n props,\n type\n );\n }\n function sanitizeURL(url) {\n return isJavaScriptProtocol.test(\"\" + url)\n ? \"javascript:throw new Error('React has blocked a javascript: URL as a security precaution.')\"\n : url;\n }\n function getEventTarget(nativeEvent) {\n nativeEvent = nativeEvent.target || nativeEvent.srcElement || window;\n nativeEvent.correspondingUseElement &&\n (nativeEvent = nativeEvent.correspondingUseElement);\n return 3 === nativeEvent.nodeType ? nativeEvent.parentNode : nativeEvent;\n }\n function restoreStateOfTarget(target) {\n var internalInstance = getInstanceFromNode(target);\n if (internalInstance && (target = internalInstance.stateNode)) {\n var props = target[internalPropsKey] || null;\n a: switch (\n ((target = internalInstance.stateNode), internalInstance.type)\n ) {\n case \"input\":\n updateInput(\n target,\n props.value,\n props.defaultValue,\n props.defaultValue,\n props.checked,\n props.defaultChecked,\n props.type,\n props.name\n );\n internalInstance = props.name;\n if (\"radio\" === props.type && null != internalInstance) {\n for (props = target; props.parentNode; ) props = props.parentNode;\n checkAttributeStringCoercion(internalInstance, \"name\");\n props = props.querySelectorAll(\n 'input[name=\"' +\n escapeSelectorAttributeValueInsideDoubleQuotes(\n \"\" + internalInstance\n ) +\n '\"][type=\"radio\"]'\n );\n for (\n internalInstance = 0;\n internalInstance < props.length;\n internalInstance++\n ) {\n var otherNode = props[internalInstance];\n if (otherNode !== target && otherNode.form === target.form) {\n var otherProps = otherNode[internalPropsKey] || null;\n if (!otherProps)\n throw Error(\n \"ReactDOMInput: Mixing React and non-React radio inputs with the same `name` is not supported.\"\n );\n updateInput(\n otherNode,\n otherProps.value,\n otherProps.defaultValue,\n otherProps.defaultValue,\n otherProps.checked,\n otherProps.defaultChecked,\n otherProps.type,\n otherProps.name\n );\n }\n }\n for (\n internalInstance = 0;\n internalInstance < props.length;\n internalInstance++\n )\n (otherNode = props[internalInstance]),\n otherNode.form === target.form &&\n updateValueIfChanged(otherNode);\n }\n break a;\n case \"textarea\":\n updateTextarea(target, props.value, props.defaultValue);\n break a;\n case \"select\":\n (internalInstance = props.value),\n null != internalInstance &&\n updateOptions(target, !!props.multiple, internalInstance, !1);\n }\n }\n }\n function batchedUpdates$1(fn, a, b) {\n if (isInsideEventHandler) return fn(a, b);\n isInsideEventHandler = !0;\n try {\n var JSCompiler_inline_result = fn(a);\n return JSCompiler_inline_result;\n } finally {\n if (\n ((isInsideEventHandler = !1),\n null !== restoreTarget || null !== restoreQueue)\n )\n if (\n (flushSyncWork$1(),\n restoreTarget &&\n ((a = restoreTarget),\n (fn = restoreQueue),\n (restoreQueue = restoreTarget = null),\n restoreStateOfTarget(a),\n fn))\n )\n for (a = 0; a < fn.length; a++) restoreStateOfTarget(fn[a]);\n }\n }\n function getListener(inst, registrationName) {\n var stateNode = inst.stateNode;\n if (null === stateNode) return null;\n var props = stateNode[internalPropsKey] || null;\n if (null === props) return null;\n stateNode = props[registrationName];\n a: switch (registrationName) {\n case \"onClick\":\n case \"onClickCapture\":\n case \"onDoubleClick\":\n case \"onDoubleClickCapture\":\n case \"onMouseDown\":\n case \"onMouseDownCapture\":\n case \"onMouseMove\":\n case \"onMouseMoveCapture\":\n case \"onMouseUp\":\n case \"onMouseUpCapture\":\n case \"onMouseEnter\":\n (props = !props.disabled) ||\n ((inst = inst.type),\n (props = !(\n \"button\" === inst ||\n \"input\" === inst ||\n \"select\" === inst ||\n \"textarea\" === inst\n )));\n inst = !props;\n break a;\n default:\n inst = !1;\n }\n if (inst) return null;\n if (stateNode && \"function\" !== typeof stateNode)\n throw Error(\n \"Expected `\" +\n registrationName +\n \"` listener to be a function, instead got a value of `\" +\n typeof stateNode +\n \"` type.\"\n );\n return stateNode;\n }\n function getData() {\n if (fallbackText) return fallbackText;\n var start,\n startValue = startText,\n startLength = startValue.length,\n end,\n endValue = \"value\" in root ? root.value : root.textContent,\n endLength = endValue.length;\n for (\n start = 0;\n start < startLength && startValue[start] === endValue[start];\n start++\n );\n var minEnd = startLength - start;\n for (\n end = 1;\n end <= minEnd &&\n startValue[startLength - end] === endValue[endLength - end];\n end++\n );\n return (fallbackText = endValue.slice(start, 1 < end ? 1 - end : void 0));\n }\n function getEventCharCode(nativeEvent) {\n var keyCode = nativeEvent.keyCode;\n \"charCode\" in nativeEvent\n ? ((nativeEvent = nativeEvent.charCode),\n 0 === nativeEvent && 13 === keyCode && (nativeEvent = 13))\n : (nativeEvent = keyCode);\n 10 === nativeEvent && (nativeEvent = 13);\n return 32 <= nativeEvent || 13 === nativeEvent ? nativeEvent : 0;\n }\n function functionThatReturnsTrue() {\n return !0;\n }\n function functionThatReturnsFalse() {\n return !1;\n }\n function createSyntheticEvent(Interface) {\n function SyntheticBaseEvent(\n reactName,\n reactEventType,\n targetInst,\n nativeEvent,\n nativeEventTarget\n ) {\n this._reactName = reactName;\n this._targetInst = targetInst;\n this.type = reactEventType;\n this.nativeEvent = nativeEvent;\n this.target = nativeEventTarget;\n this.currentTarget = null;\n for (var propName in Interface)\n Interface.hasOwnProperty(propName) &&\n ((reactName = Interface[propName]),\n (this[propName] = reactName\n ? reactName(nativeEvent)\n : nativeEvent[propName]));\n this.isDefaultPrevented = (\n null != nativeEvent.defaultPrevented\n ? nativeEvent.defaultPrevented\n : !1 === nativeEvent.returnValue\n )\n ? functionThatReturnsTrue\n : functionThatReturnsFalse;\n this.isPropagationStopped = functionThatReturnsFalse;\n return this;\n }\n assign(SyntheticBaseEvent.prototype, {\n preventDefault: function () {\n this.defaultPrevented = !0;\n var event = this.nativeEvent;\n event &&\n (event.preventDefault\n ? event.preventDefault()\n : \"unknown\" !== typeof event.returnValue &&\n (event.returnValue = !1),\n (this.isDefaultPrevented = functionThatReturnsTrue));\n },\n stopPropagation: function () {\n var event = this.nativeEvent;\n event &&\n (event.stopPropagation\n ? event.stopPropagation()\n : \"unknown\" !== typeof event.cancelBubble &&\n (event.cancelBubble = !0),\n (this.isPropagationStopped = functionThatReturnsTrue));\n },\n persist: function () {},\n isPersistent: functionThatReturnsTrue\n });\n return SyntheticBaseEvent;\n }\n function modifierStateGetter(keyArg) {\n var nativeEvent = this.nativeEvent;\n return nativeEvent.getModifierState\n ? nativeEvent.getModifierState(keyArg)\n : (keyArg = modifierKeyToProp[keyArg])\n ? !!nativeEvent[keyArg]\n : !1;\n }\n function getEventModifierState() {\n return modifierStateGetter;\n }\n function isFallbackCompositionEnd(domEventName, nativeEvent) {\n switch (domEventName) {\n case \"keyup\":\n return -1 !== END_KEYCODES.indexOf(nativeEvent.keyCode);\n case \"keydown\":\n return nativeEvent.keyCode !== START_KEYCODE;\n case \"keypress\":\n case \"mousedown\":\n case \"focusout\":\n return !0;\n default:\n return !1;\n }\n }\n function getDataFromCustomEvent(nativeEvent) {\n nativeEvent = nativeEvent.detail;\n return \"object\" === typeof nativeEvent && \"data\" in nativeEvent\n ? nativeEvent.data\n : null;\n }\n function getNativeBeforeInputChars(domEventName, nativeEvent) {\n switch (domEventName) {\n case \"compositionend\":\n return getDataFromCustomEvent(nativeEvent);\n case \"keypress\":\n if (nativeEvent.which !== SPACEBAR_CODE) return null;\n hasSpaceKeypress = !0;\n return SPACEBAR_CHAR;\n case \"textInput\":\n return (\n (domEventName = nativeEvent.data),\n domEventName === SPACEBAR_CHAR && hasSpaceKeypress\n ? null\n : domEventName\n );\n default:\n return null;\n }\n }\n function getFallbackBeforeInputChars(domEventName, nativeEvent) {\n if (isComposing)\n return \"compositionend\" === domEventName ||\n (!canUseCompositionEvent &&\n isFallbackCompositionEnd(domEventName, nativeEvent))\n ? ((domEventName = getData()),\n (fallbackText = startText = root = null),\n (isComposing = !1),\n domEventName)\n : null;\n switch (domEventName) {\n case \"paste\":\n return null;\n case \"keypress\":\n if (\n !(\n nativeEvent.ctrlKey ||\n nativeEvent.altKey ||\n nativeEvent.metaKey\n ) ||\n (nativeEvent.ctrlKey && nativeEvent.altKey)\n ) {\n if (nativeEvent.char && 1 < nativeEvent.char.length)\n return nativeEvent.char;\n if (nativeEvent.which)\n return String.fromCharCode(nativeEvent.which);\n }\n return null;\n case \"compositionend\":\n return useFallbackCompositionData && \"ko\" !== nativeEvent.locale\n ? null\n : nativeEvent.data;\n default:\n return null;\n }\n }\n function isTextInputElement(elem) {\n var nodeName = elem && elem.nodeName && elem.nodeName.toLowerCase();\n return \"input\" === nodeName\n ? !!supportedInputTypes[elem.type]\n : \"textarea\" === nodeName\n ? !0\n : !1;\n }\n function isEventSupported(eventNameSuffix) {\n if (!canUseDOM) return !1;\n eventNameSuffix = \"on\" + eventNameSuffix;\n var isSupported = eventNameSuffix in document;\n isSupported ||\n ((isSupported = document.createElement(\"div\")),\n isSupported.setAttribute(eventNameSuffix, \"return;\"),\n (isSupported = \"function\" === typeof isSupported[eventNameSuffix]));\n return isSupported;\n }\n function createAndAccumulateChangeEvent(\n dispatchQueue,\n inst,\n nativeEvent,\n target\n ) {\n restoreTarget\n ? restoreQueue\n ? restoreQueue.push(target)\n : (restoreQueue = [target])\n : (restoreTarget = target);\n inst = accumulateTwoPhaseListeners(inst, \"onChange\");\n 0 < inst.length &&\n ((nativeEvent = new SyntheticEvent(\n \"onChange\",\n \"change\",\n null,\n nativeEvent,\n target\n )),\n dispatchQueue.push({ event: nativeEvent, listeners: inst }));\n }\n function runEventInBatch(dispatchQueue) {\n processDispatchQueue(dispatchQueue, 0);\n }\n function getInstIfValueChanged(targetInst) {\n var targetNode = getNodeFromInstance(targetInst);\n if (updateValueIfChanged(targetNode)) return targetInst;\n }\n function getTargetInstForChangeEvent(domEventName, targetInst) {\n if (\"change\" === domEventName) return targetInst;\n }\n function stopWatchingForValueChange() {\n activeElement$1 &&\n (activeElement$1.detachEvent(\"onpropertychange\", handlePropertyChange),\n (activeElementInst$1 = activeElement$1 = null));\n }\n function handlePropertyChange(nativeEvent) {\n if (\n \"value\" === nativeEvent.propertyName &&\n getInstIfValueChanged(activeElementInst$1)\n ) {\n var dispatchQueue = [];\n createAndAccumulateChangeEvent(\n dispatchQueue,\n activeElementInst$1,\n nativeEvent,\n getEventTarget(nativeEvent)\n );\n batchedUpdates$1(runEventInBatch, dispatchQueue);\n }\n }\n function handleEventsForInputEventPolyfill(\n domEventName,\n target,\n targetInst\n ) {\n \"focusin\" === domEventName\n ? (stopWatchingForValueChange(),\n (activeElement$1 = target),\n (activeElementInst$1 = targetInst),\n activeElement$1.attachEvent(\"onpropertychange\", handlePropertyChange))\n : \"focusout\" === domEventName && stopWatchingForValueChange();\n }\n function getTargetInstForInputEventPolyfill(domEventName) {\n if (\n \"selectionchange\" === domEventName ||\n \"keyup\" === domEventName ||\n \"keydown\" === domEventName\n )\n return getInstIfValueChanged(activeElementInst$1);\n }\n function getTargetInstForClickEvent(domEventName, targetInst) {\n if (\"click\" === domEventName) return getInstIfValueChanged(targetInst);\n }\n function getTargetInstForInputOrChangeEvent(domEventName, targetInst) {\n if (\"input\" === domEventName || \"change\" === domEventName)\n return getInstIfValueChanged(targetInst);\n }\n function is(x, y) {\n return (x === y && (0 !== x || 1 / x === 1 / y)) || (x !== x && y !== y);\n }\n function shallowEqual(objA, objB) {\n if (objectIs(objA, objB)) return !0;\n if (\n \"object\" !== typeof objA ||\n null === objA ||\n \"object\" !== typeof objB ||\n null === objB\n )\n return !1;\n var keysA = Object.keys(objA),\n keysB = Object.keys(objB);\n if (keysA.length !== keysB.length) return !1;\n for (keysB = 0; keysB < keysA.length; keysB++) {\n var currentKey = keysA[keysB];\n if (\n !hasOwnProperty.call(objB, currentKey) ||\n !objectIs(objA[currentKey], objB[currentKey])\n )\n return !1;\n }\n return !0;\n }\n function getLeafNode(node) {\n for (; node && node.firstChild; ) node = node.firstChild;\n return node;\n }\n function getNodeForCharacterOffset(root, offset) {\n var node = getLeafNode(root);\n root = 0;\n for (var nodeEnd; node; ) {\n if (3 === node.nodeType) {\n nodeEnd = root + node.textContent.length;\n if (root <= offset && nodeEnd >= offset)\n return { node: node, offset: offset - root };\n root = nodeEnd;\n }\n a: {\n for (; node; ) {\n if (node.nextSibling) {\n node = node.nextSibling;\n break a;\n }\n node = node.parentNode;\n }\n node = void 0;\n }\n node = getLeafNode(node);\n }\n }\n function containsNode(outerNode, innerNode) {\n return outerNode && innerNode\n ? outerNode === innerNode\n ? !0\n : outerNode && 3 === outerNode.nodeType\n ? !1\n : innerNode && 3 === innerNode.nodeType\n ? containsNode(outerNode, innerNode.parentNode)\n : \"contains\" in outerNode\n ? outerNode.contains(innerNode)\n : outerNode.compareDocumentPosition\n ? !!(outerNode.compareDocumentPosition(innerNode) & 16)\n : !1\n : !1;\n }\n function getActiveElementDeep(containerInfo) {\n containerInfo =\n null != containerInfo &&\n null != containerInfo.ownerDocument &&\n null != containerInfo.ownerDocument.defaultView\n ? containerInfo.ownerDocument.defaultView\n : window;\n for (\n var element = getActiveElement(containerInfo.document);\n element instanceof containerInfo.HTMLIFrameElement;\n\n ) {\n try {\n var JSCompiler_inline_result =\n \"string\" === typeof element.contentWindow.location.href;\n } catch (err) {\n JSCompiler_inline_result = !1;\n }\n if (JSCompiler_inline_result) containerInfo = element.contentWindow;\n else break;\n element = getActiveElement(containerInfo.document);\n }\n return element;\n }\n function hasSelectionCapabilities(elem) {\n var nodeName = elem && elem.nodeName && elem.nodeName.toLowerCase();\n return (\n nodeName &&\n ((\"input\" === nodeName &&\n (\"text\" === elem.type ||\n \"search\" === elem.type ||\n \"tel\" === elem.type ||\n \"url\" === elem.type ||\n \"password\" === elem.type)) ||\n \"textarea\" === nodeName ||\n \"true\" === elem.contentEditable)\n );\n }\n function constructSelectEvent(\n dispatchQueue,\n nativeEvent,\n nativeEventTarget\n ) {\n var doc =\n nativeEventTarget.window === nativeEventTarget\n ? nativeEventTarget.document\n : 9 === nativeEventTarget.nodeType\n ? nativeEventTarget\n : nativeEventTarget.ownerDocument;\n mouseDown ||\n null == activeElement ||\n activeElement !== getActiveElement(doc) ||\n ((doc = activeElement),\n \"selectionStart\" in doc && hasSelectionCapabilities(doc)\n ? (doc = { start: doc.selectionStart, end: doc.selectionEnd })\n : ((doc = (\n (doc.ownerDocument && doc.ownerDocument.defaultView) ||\n window\n ).getSelection()),\n (doc = {\n anchorNode: doc.anchorNode,\n anchorOffset: doc.anchorOffset,\n focusNode: doc.focusNode,\n focusOffset: doc.focusOffset\n })),\n (lastSelection && shallowEqual(lastSelection, doc)) ||\n ((lastSelection = doc),\n (doc = accumulateTwoPhaseListeners(activeElementInst, \"onSelect\")),\n 0 < doc.length &&\n ((nativeEvent = new SyntheticEvent(\n \"onSelect\",\n \"select\",\n null,\n nativeEvent,\n nativeEventTarget\n )),\n dispatchQueue.push({ event: nativeEvent, listeners: doc }),\n (nativeEvent.target = activeElement))));\n }\n function makePrefixMap(styleProp, eventName) {\n var prefixes = {};\n prefixes[styleProp.toLowerCase()] = eventName.toLowerCase();\n prefixes[\"Webkit\" + styleProp] = \"webkit\" + eventName;\n prefixes[\"Moz\" + styleProp] = \"moz\" + eventName;\n return prefixes;\n }\n function getVendorPrefixedEventName(eventName) {\n if (prefixedEventNames[eventName]) return prefixedEventNames[eventName];\n if (!vendorPrefixes[eventName]) return eventName;\n var prefixMap = vendorPrefixes[eventName],\n styleProp;\n for (styleProp in prefixMap)\n if (prefixMap.hasOwnProperty(styleProp) && styleProp in style)\n return (prefixedEventNames[eventName] = prefixMap[styleProp]);\n return eventName;\n }\n function registerSimpleEvent(domEventName, reactName) {\n topLevelEventsToReactNames.set(domEventName, reactName);\n registerTwoPhaseEvent(reactName, [domEventName]);\n }\n function createCapturedValueAtFiber(value, source) {\n if (\"object\" === typeof value && null !== value) {\n var existing = CapturedStacks.get(value);\n if (void 0 !== existing) return existing;\n source = {\n value: value,\n source: source,\n stack: getStackByFiberInDevAndProd(source)\n };\n CapturedStacks.set(value, source);\n return source;\n }\n return {\n value: value,\n source: source,\n stack: getStackByFiberInDevAndProd(source)\n };\n }\n function finishQueueingConcurrentUpdates() {\n for (\n var endIndex = concurrentQueuesIndex,\n i = (concurrentlyUpdatedLanes = concurrentQueuesIndex = 0);\n i < endIndex;\n\n ) {\n var fiber = concurrentQueues[i];\n concurrentQueues[i++] = null;\n var queue = concurrentQueues[i];\n concurrentQueues[i++] = null;\n var update = concurrentQueues[i];\n concurrentQueues[i++] = null;\n var lane = concurrentQueues[i];\n concurrentQueues[i++] = null;\n if (null !== queue && null !== update) {\n var pending = queue.pending;\n null === pending\n ? (update.next = update)\n : ((update.next = pending.next), (pending.next = update));\n queue.pending = update;\n }\n 0 !== lane && markUpdateLaneFromFiberToRoot(fiber, update, lane);\n }\n }\n function enqueueUpdate$1(fiber, queue, update, lane) {\n concurrentQueues[concurrentQueuesIndex++] = fiber;\n concurrentQueues[concurrentQueuesIndex++] = queue;\n concurrentQueues[concurrentQueuesIndex++] = update;\n concurrentQueues[concurrentQueuesIndex++] = lane;\n concurrentlyUpdatedLanes |= lane;\n fiber.lanes |= lane;\n fiber = fiber.alternate;\n null !== fiber && (fiber.lanes |= lane);\n }\n function enqueueConcurrentHookUpdate(fiber, queue, update, lane) {\n enqueueUpdate$1(fiber, queue, update, lane);\n return getRootForUpdatedFiber(fiber);\n }\n function enqueueConcurrentRenderForLane(fiber, lane) {\n enqueueUpdate$1(fiber, null, null, lane);\n return getRootForUpdatedFiber(fiber);\n }\n function markUpdateLaneFromFiberToRoot(sourceFiber, update, lane) {\n sourceFiber.lanes |= lane;\n var alternate = sourceFiber.alternate;\n null !== alternate && (alternate.lanes |= lane);\n for (var isHidden = !1, parent = sourceFiber.return; null !== parent; )\n (parent.childLanes |= lane),\n (alternate = parent.alternate),\n null !== alternate && (alternate.childLanes |= lane),\n 22 === parent.tag &&\n ((sourceFiber = parent.stateNode),\n null === sourceFiber ||\n sourceFiber._visibility & OffscreenVisible ||\n (isHidden = !0)),\n (sourceFiber = parent),\n (parent = parent.return);\n return 3 === sourceFiber.tag\n ? ((parent = sourceFiber.stateNode),\n isHidden &&\n null !== update &&\n ((isHidden = 31 - clz32(lane)),\n (sourceFiber = parent.hiddenUpdates),\n (alternate = sourceFiber[isHidden]),\n null === alternate\n ? (sourceFiber[isHidden] = [update])\n : alternate.push(update),\n (update.lane = lane | 536870912)),\n parent)\n : null;\n }\n function getRootForUpdatedFiber(sourceFiber) {\n if (nestedUpdateCount > NESTED_UPDATE_LIMIT)\n throw (\n ((nestedPassiveUpdateCount = nestedUpdateCount = 0),\n (rootWithPassiveNestedUpdates = rootWithNestedUpdates = null),\n Error(\n \"Maximum update depth exceeded. This can happen when a component repeatedly calls setState inside componentWillUpdate or componentDidUpdate. React limits the number of nested updates to prevent infinite loops.\"\n ))\n );\n nestedPassiveUpdateCount > NESTED_PASSIVE_UPDATE_LIMIT &&\n ((nestedPassiveUpdateCount = 0),\n (rootWithPassiveNestedUpdates = null),\n console.error(\n \"Maximum update depth exceeded. This can happen when a component calls setState inside useEffect, but useEffect either doesn't have a dependency array, or one of the dependencies changes on every render.\"\n ));\n null === sourceFiber.alternate &&\n 0 !== (sourceFiber.flags & 4098) &&\n warnAboutUpdateOnNotYetMountedFiberInDEV(sourceFiber);\n for (var node = sourceFiber, parent = node.return; null !== parent; )\n null === node.alternate &&\n 0 !== (node.flags & 4098) &&\n warnAboutUpdateOnNotYetMountedFiberInDEV(sourceFiber),\n (node = parent),\n (parent = node.return);\n return 3 === node.tag ? node.stateNode : null;\n }\n function resolveFunctionForHotReloading(type) {\n if (null === resolveFamily) return type;\n var family = resolveFamily(type);\n return void 0 === family ? type : family.current;\n }\n function resolveForwardRefForHotReloading(type) {\n if (null === resolveFamily) return type;\n var family = resolveFamily(type);\n return void 0 === family\n ? null !== type &&\n void 0 !== type &&\n \"function\" === typeof type.render &&\n ((family = resolveFunctionForHotReloading(type.render)),\n type.render !== family)\n ? ((family = { $$typeof: REACT_FORWARD_REF_TYPE, render: family }),\n void 0 !== type.displayName &&\n (family.displayName = type.displayName),\n family)\n : type\n : family.current;\n }\n function isCompatibleFamilyForHotReloading(fiber, element) {\n if (null === resolveFamily) return !1;\n var prevType = fiber.elementType;\n element = element.type;\n var needsCompareFamilies = !1,\n $$typeofNextType =\n \"object\" === typeof element && null !== element\n ? element.$$typeof\n : null;\n switch (fiber.tag) {\n case 1:\n \"function\" === typeof element && (needsCompareFamilies = !0);\n break;\n case 0:\n \"function\" === typeof element\n ? (needsCompareFamilies = !0)\n : $$typeofNextType === REACT_LAZY_TYPE &&\n (needsCompareFamilies = !0);\n break;\n case 11:\n $$typeofNextType === REACT_FORWARD_REF_TYPE\n ? (needsCompareFamilies = !0)\n : $$typeofNextType === REACT_LAZY_TYPE &&\n (needsCompareFamilies = !0);\n break;\n case 14:\n case 15:\n $$typeofNextType === REACT_MEMO_TYPE\n ? (needsCompareFamilies = !0)\n : $$typeofNextType === REACT_LAZY_TYPE &&\n (needsCompareFamilies = !0);\n break;\n default:\n return !1;\n }\n return needsCompareFamilies &&\n ((fiber = resolveFamily(prevType)),\n void 0 !== fiber && fiber === resolveFamily(element))\n ? !0\n : !1;\n }\n function markFailedErrorBoundaryForHotReloading(fiber) {\n null !== resolveFamily &&\n \"function\" === typeof WeakSet &&\n (null === failedBoundaries && (failedBoundaries = new WeakSet()),\n failedBoundaries.add(fiber));\n }\n function scheduleFibersWithFamiliesRecursively(\n fiber,\n updatedFamilies,\n staleFamilies\n ) {\n var alternate = fiber.alternate,\n child = fiber.child,\n sibling = fiber.sibling,\n tag = fiber.tag,\n type = fiber.type,\n candidateType = null;\n switch (tag) {\n case 0:\n case 15:\n case 1:\n candidateType = type;\n break;\n case 11:\n candidateType = type.render;\n }\n if (null === resolveFamily)\n throw Error(\"Expected resolveFamily to be set during hot reload.\");\n var needsRender = !1;\n type = !1;\n null !== candidateType &&\n ((candidateType = resolveFamily(candidateType)),\n void 0 !== candidateType &&\n (staleFamilies.has(candidateType)\n ? (type = !0)\n : updatedFamilies.has(candidateType) &&\n (1 === tag ? (type = !0) : (needsRender = !0))));\n null !== failedBoundaries &&\n (failedBoundaries.has(fiber) ||\n (null !== alternate && failedBoundaries.has(alternate))) &&\n (type = !0);\n type && (fiber._debugNeedsRemount = !0);\n if (type || needsRender)\n (alternate = enqueueConcurrentRenderForLane(fiber, 2)),\n null !== alternate && scheduleUpdateOnFiber(alternate, fiber, 2);\n null === child ||\n type ||\n scheduleFibersWithFamiliesRecursively(\n child,\n updatedFamilies,\n staleFamilies\n );\n null !== sibling &&\n scheduleFibersWithFamiliesRecursively(\n sibling,\n updatedFamilies,\n staleFamilies\n );\n }\n function FiberNode(tag, pendingProps, key, mode) {\n this.tag = tag;\n this.key = key;\n this.sibling =\n this.child =\n this.return =\n this.stateNode =\n this.type =\n this.elementType =\n null;\n this.index = 0;\n this.refCleanup = this.ref = null;\n this.pendingProps = pendingProps;\n this.dependencies =\n this.memoizedState =\n this.updateQueue =\n this.memoizedProps =\n null;\n this.mode = mode;\n this.subtreeFlags = this.flags = 0;\n this.deletions = null;\n this.childLanes = this.lanes = 0;\n this.alternate = null;\n this.actualDuration = -0;\n this.actualStartTime = -1.1;\n this.treeBaseDuration = this.selfBaseDuration = -0;\n this._debugTask =\n this._debugStack =\n this._debugOwner =\n this._debugInfo =\n null;\n this._debugNeedsRemount = !1;\n this._debugHookTypes = null;\n hasBadMapPolyfill ||\n \"function\" !== typeof Object.preventExtensions ||\n Object.preventExtensions(this);\n }\n function shouldConstruct(Component) {\n Component = Component.prototype;\n return !(!Component || !Component.isReactComponent);\n }\n function createWorkInProgress(current, pendingProps) {\n var workInProgress = current.alternate;\n null === workInProgress\n ? ((workInProgress = createFiber(\n current.tag,\n pendingProps,\n current.key,\n current.mode\n )),\n (workInProgress.elementType = current.elementType),\n (workInProgress.type = current.type),\n (workInProgress.stateNode = current.stateNode),\n (workInProgress._debugOwner = current._debugOwner),\n (workInProgress._debugStack = current._debugStack),\n (workInProgress._debugTask = current._debugTask),\n (workInProgress._debugHookTypes = current._debugHookTypes),\n (workInProgress.alternate = current),\n (current.alternate = workInProgress))\n : ((workInProgress.pendingProps = pendingProps),\n (workInProgress.type = current.type),\n (workInProgress.flags = 0),\n (workInProgress.subtreeFlags = 0),\n (workInProgress.deletions = null),\n (workInProgress.actualDuration = -0),\n (workInProgress.actualStartTime = -1.1));\n workInProgress.flags = current.flags & 65011712;\n workInProgress.childLanes = current.childLanes;\n workInProgress.lanes = current.lanes;\n workInProgress.child = current.child;\n workInProgress.memoizedProps = current.memoizedProps;\n workInProgress.memoizedState = current.memoizedState;\n workInProgress.updateQueue = current.updateQueue;\n pendingProps = current.dependencies;\n workInProgress.dependencies =\n null === pendingProps\n ? null\n : {\n lanes: pendingProps.lanes,\n firstContext: pendingProps.firstContext,\n _debugThenableState: pendingProps._debugThenableState\n };\n workInProgress.sibling = current.sibling;\n workInProgress.index = current.index;\n workInProgress.ref = current.ref;\n workInProgress.refCleanup = current.refCleanup;\n workInProgress.selfBaseDuration = current.selfBaseDuration;\n workInProgress.treeBaseDuration = current.treeBaseDuration;\n workInProgress._debugInfo = current._debugInfo;\n workInProgress._debugNeedsRemount = current._debugNeedsRemount;\n switch (workInProgress.tag) {\n case 0:\n case 15:\n workInProgress.type = resolveFunctionForHotReloading(current.type);\n break;\n case 1:\n workInProgress.type = resolveFunctionForHotReloading(current.type);\n break;\n case 11:\n workInProgress.type = resolveForwardRefForHotReloading(current.type);\n }\n return workInProgress;\n }\n function resetWorkInProgress(workInProgress, renderLanes) {\n workInProgress.flags &= 65011714;\n var current = workInProgress.alternate;\n null === current\n ? ((workInProgress.childLanes = 0),\n (workInProgress.lanes = renderLanes),\n (workInProgress.child = null),\n (workInProgress.subtreeFlags = 0),\n (workInProgress.memoizedProps = null),\n (workInProgress.memoizedState = null),\n (workInProgress.updateQueue = null),\n (workInProgress.dependencies = null),\n (workInProgress.stateNode = null),\n (workInProgress.selfBaseDuration = 0),\n (workInProgress.treeBaseDuration = 0))\n : ((workInProgress.childLanes = current.childLanes),\n (workInProgress.lanes = current.lanes),\n (workInProgress.child = current.child),\n (workInProgress.subtreeFlags = 0),\n (workInProgress.deletions = null),\n (workInProgress.memoizedProps = current.memoizedProps),\n (workInProgress.memoizedState = current.memoizedState),\n (workInProgress.updateQueue = current.updateQueue),\n (workInProgress.type = current.type),\n (renderLanes = current.dependencies),\n (workInProgress.dependencies =\n null === renderLanes\n ? null\n : {\n lanes: renderLanes.lanes,\n firstContext: renderLanes.firstContext,\n _debugThenableState: renderLanes._debugThenableState\n }),\n (workInProgress.selfBaseDuration = current.selfBaseDuration),\n (workInProgress.treeBaseDuration = current.treeBaseDuration));\n return workInProgress;\n }\n function createFiberFromTypeAndProps(\n type,\n key,\n pendingProps,\n owner,\n mode,\n lanes\n ) {\n var fiberTag = 0,\n resolvedType = type;\n if (\"function\" === typeof type)\n shouldConstruct(type) && (fiberTag = 1),\n (resolvedType = resolveFunctionForHotReloading(resolvedType));\n else if (\"string\" === typeof type)\n (fiberTag = getHostContext()),\n (fiberTag = isHostHoistableType(type, pendingProps, fiberTag)\n ? 26\n : \"html\" === type || \"head\" === type || \"body\" === type\n ? 27\n : 5);\n else\n a: switch (type) {\n case REACT_ACTIVITY_TYPE:\n return (\n (key = createFiber(31, pendingProps, key, mode)),\n (key.elementType = REACT_ACTIVITY_TYPE),\n (key.lanes = lanes),\n key\n );\n case REACT_FRAGMENT_TYPE:\n return createFiberFromFragment(\n pendingProps.children,\n mode,\n lanes,\n key\n );\n case REACT_STRICT_MODE_TYPE:\n fiberTag = 8;\n mode |= StrictLegacyMode;\n mode |= StrictEffectsMode;\n break;\n case REACT_PROFILER_TYPE:\n return (\n (type = pendingProps),\n (owner = mode),\n \"string\" !== typeof type.id &&\n console.error(\n 'Profiler must specify an \"id\" of type `string` as a prop. Received the type `%s` instead.',\n typeof type.id\n ),\n (key = createFiber(12, type, key, owner | ProfileMode)),\n (key.elementType = REACT_PROFILER_TYPE),\n (key.lanes = lanes),\n (key.stateNode = { effectDuration: 0, passiveEffectDuration: 0 }),\n key\n );\n case REACT_SUSPENSE_TYPE:\n return (\n (key = createFiber(13, pendingProps, key, mode)),\n (key.elementType = REACT_SUSPENSE_TYPE),\n (key.lanes = lanes),\n key\n );\n case REACT_SUSPENSE_LIST_TYPE:\n return (\n (key = createFiber(19, pendingProps, key, mode)),\n (key.elementType = REACT_SUSPENSE_LIST_TYPE),\n (key.lanes = lanes),\n key\n );\n default:\n if (\"object\" === typeof type && null !== type)\n switch (type.$$typeof) {\n case REACT_PROVIDER_TYPE:\n case REACT_CONTEXT_TYPE:\n fiberTag = 10;\n break a;\n case REACT_CONSUMER_TYPE:\n fiberTag = 9;\n break a;\n case REACT_FORWARD_REF_TYPE:\n fiberTag = 11;\n resolvedType = resolveForwardRefForHotReloading(resolvedType);\n break a;\n case REACT_MEMO_TYPE:\n fiberTag = 14;\n break a;\n case REACT_LAZY_TYPE:\n fiberTag = 16;\n resolvedType = null;\n break a;\n }\n resolvedType = \"\";\n if (\n void 0 === type ||\n (\"object\" === typeof type &&\n null !== type &&\n 0 === Object.keys(type).length)\n )\n resolvedType +=\n \" You likely forgot to export your component from the file it's defined in, or you might have mixed up default and named imports.\";\n null === type\n ? (pendingProps = \"null\")\n : isArrayImpl(type)\n ? (pendingProps = \"array\")\n : void 0 !== type && type.$$typeof === REACT_ELEMENT_TYPE\n ? ((pendingProps =\n \"<\" +\n (getComponentNameFromType(type.type) || \"Unknown\") +\n \" />\"),\n (resolvedType =\n \" Did you accidentally export a JSX literal instead of a component?\"))\n : (pendingProps = typeof type);\n (fiberTag = owner ? getComponentNameFromOwner(owner) : null) &&\n (resolvedType +=\n \"\\n\\nCheck the render method of `\" + fiberTag + \"`.\");\n fiberTag = 29;\n pendingProps = Error(\n \"Element type is invalid: expected a string (for built-in components) or a class/function (for composite components) but got: \" +\n (pendingProps + \".\" + resolvedType)\n );\n resolvedType = null;\n }\n key = createFiber(fiberTag, pendingProps, key, mode);\n key.elementType = type;\n key.type = resolvedType;\n key.lanes = lanes;\n key._debugOwner = owner;\n return key;\n }\n function createFiberFromElement(element, mode, lanes) {\n mode = createFiberFromTypeAndProps(\n element.type,\n element.key,\n element.props,\n element._owner,\n mode,\n lanes\n );\n mode._debugOwner = element._owner;\n mode._debugStack = element._debugStack;\n mode._debugTask = element._debugTask;\n return mode;\n }\n function createFiberFromFragment(elements, mode, lanes, key) {\n elements = createFiber(7, elements, key, mode);\n elements.lanes = lanes;\n return elements;\n }\n function createFiberFromText(content, mode, lanes) {\n content = createFiber(6, content, null, mode);\n content.lanes = lanes;\n return content;\n }\n function createFiberFromPortal(portal, mode, lanes) {\n mode = createFiber(\n 4,\n null !== portal.children ? portal.children : [],\n portal.key,\n mode\n );\n mode.lanes = lanes;\n mode.stateNode = {\n containerInfo: portal.containerInfo,\n pendingChildren: null,\n implementation: portal.implementation\n };\n return mode;\n }\n function pushTreeFork(workInProgress, totalChildren) {\n warnIfNotHydrating();\n forkStack[forkStackIndex++] = treeForkCount;\n forkStack[forkStackIndex++] = treeForkProvider;\n treeForkProvider = workInProgress;\n treeForkCount = totalChildren;\n }\n function pushTreeId(workInProgress, totalChildren, index) {\n warnIfNotHydrating();\n idStack[idStackIndex++] = treeContextId;\n idStack[idStackIndex++] = treeContextOverflow;\n idStack[idStackIndex++] = treeContextProvider;\n treeContextProvider = workInProgress;\n var baseIdWithLeadingBit = treeContextId;\n workInProgress = treeContextOverflow;\n var baseLength = 32 - clz32(baseIdWithLeadingBit) - 1;\n baseIdWithLeadingBit &= ~(1 << baseLength);\n index += 1;\n var length = 32 - clz32(totalChildren) + baseLength;\n if (30 < length) {\n var numberOfOverflowBits = baseLength - (baseLength % 5);\n length = (\n baseIdWithLeadingBit &\n ((1 << numberOfOverflowBits) - 1)\n ).toString(32);\n baseIdWithLeadingBit >>= numberOfOverflowBits;\n baseLength -= numberOfOverflowBits;\n treeContextId =\n (1 << (32 - clz32(totalChildren) + baseLength)) |\n (index << baseLength) |\n baseIdWithLeadingBit;\n treeContextOverflow = length + workInProgress;\n } else\n (treeContextId =\n (1 << length) | (index << baseLength) | baseIdWithLeadingBit),\n (treeContextOverflow = workInProgress);\n }\n function pushMaterializedTreeId(workInProgress) {\n warnIfNotHydrating();\n null !== workInProgress.return &&\n (pushTreeFork(workInProgress, 1), pushTreeId(workInProgress, 1, 0));\n }\n function popTreeContext(workInProgress) {\n for (; workInProgress === treeForkProvider; )\n (treeForkProvider = forkStack[--forkStackIndex]),\n (forkStack[forkStackIndex] = null),\n (treeForkCount = forkStack[--forkStackIndex]),\n (forkStack[forkStackIndex] = null);\n for (; workInProgress === treeContextProvider; )\n (treeContextProvider = idStack[--idStackIndex]),\n (idStack[idStackIndex] = null),\n (treeContextOverflow = idStack[--idStackIndex]),\n (idStack[idStackIndex] = null),\n (treeContextId = idStack[--idStackIndex]),\n (idStack[idStackIndex] = null);\n }\n function warnIfNotHydrating() {\n isHydrating ||\n console.error(\n \"Expected to be hydrating. This is a bug in React. Please file an issue.\"\n );\n }\n function buildHydrationDiffNode(fiber, distanceFromLeaf) {\n if (null === fiber.return) {\n if (null === hydrationDiffRootDEV)\n hydrationDiffRootDEV = {\n fiber: fiber,\n children: [],\n serverProps: void 0,\n serverTail: [],\n distanceFromLeaf: distanceFromLeaf\n };\n else {\n if (hydrationDiffRootDEV.fiber !== fiber)\n throw Error(\n \"Saw multiple hydration diff roots in a pass. This is a bug in React.\"\n );\n hydrationDiffRootDEV.distanceFromLeaf > distanceFromLeaf &&\n (hydrationDiffRootDEV.distanceFromLeaf = distanceFromLeaf);\n }\n return hydrationDiffRootDEV;\n }\n var siblings = buildHydrationDiffNode(\n fiber.return,\n distanceFromLeaf + 1\n ).children;\n if (0 < siblings.length && siblings[siblings.length - 1].fiber === fiber)\n return (\n (siblings = siblings[siblings.length - 1]),\n siblings.distanceFromLeaf > distanceFromLeaf &&\n (siblings.distanceFromLeaf = distanceFromLeaf),\n siblings\n );\n distanceFromLeaf = {\n fiber: fiber,\n children: [],\n serverProps: void 0,\n serverTail: [],\n distanceFromLeaf: distanceFromLeaf\n };\n siblings.push(distanceFromLeaf);\n return distanceFromLeaf;\n }\n function warnNonHydratedInstance(fiber, rejectedCandidate) {\n didSuspendOrErrorDEV ||\n ((fiber = buildHydrationDiffNode(fiber, 0)),\n (fiber.serverProps = null),\n null !== rejectedCandidate &&\n ((rejectedCandidate =\n describeHydratableInstanceForDevWarnings(rejectedCandidate)),\n fiber.serverTail.push(rejectedCandidate)));\n }\n function throwOnHydrationMismatch(fiber) {\n var diff = \"\",\n diffRoot = hydrationDiffRootDEV;\n null !== diffRoot &&\n ((hydrationDiffRootDEV = null), (diff = describeDiff(diffRoot)));\n queueHydrationError(\n createCapturedValueAtFiber(\n Error(\n \"Hydration failed because the server rendered HTML didn't match the client. As a result this tree will be regenerated on the client. This can happen if a SSR-ed Client Component used:\\n\\n- A server/client branch `if (typeof window !== 'undefined')`.\\n- Variable input such as `Date.now()` or `Math.random()` which changes each time it's called.\\n- Date formatting in a user's locale which doesn't match the server.\\n- External changing data without sending a snapshot of it along with the HTML.\\n- Invalid HTML tag nesting.\\n\\nIt can also happen if the client has a browser extension installed which messes with the HTML before React loaded.\\n\\nhttps://react.dev/link/hydration-mismatch\" +\n diff\n ),\n fiber\n )\n );\n throw HydrationMismatchException;\n }\n function prepareToHydrateHostInstance(fiber) {\n var didHydrate = fiber.stateNode;\n var type = fiber.type,\n props = fiber.memoizedProps;\n didHydrate[internalInstanceKey] = fiber;\n didHydrate[internalPropsKey] = props;\n validatePropertiesInDevelopment(type, props);\n switch (type) {\n case \"dialog\":\n listenToNonDelegatedEvent(\"cancel\", didHydrate);\n listenToNonDelegatedEvent(\"close\", didHydrate);\n break;\n case \"iframe\":\n case \"object\":\n case \"embed\":\n listenToNonDelegatedEvent(\"load\", didHydrate);\n break;\n case \"video\":\n case \"audio\":\n for (type = 0; type < mediaEventTypes.length; type++)\n listenToNonDelegatedEvent(mediaEventTypes[type], didHydrate);\n break;\n case \"source\":\n listenToNonDelegatedEvent(\"error\", didHydrate);\n break;\n case \"img\":\n case \"image\":\n case \"link\":\n listenToNonDelegatedEvent(\"error\", didHydrate);\n listenToNonDelegatedEvent(\"load\", didHydrate);\n break;\n case \"details\":\n listenToNonDelegatedEvent(\"toggle\", didHydrate);\n break;\n case \"input\":\n checkControlledValueProps(\"input\", props);\n listenToNonDelegatedEvent(\"invalid\", didHydrate);\n validateInputProps(didHydrate, props);\n initInput(\n didHydrate,\n props.value,\n props.defaultValue,\n props.checked,\n props.defaultChecked,\n props.type,\n props.name,\n !0\n );\n track(didHydrate);\n break;\n case \"option\":\n validateOptionProps(didHydrate, props);\n break;\n case \"select\":\n checkControlledValueProps(\"select\", props);\n listenToNonDelegatedEvent(\"invalid\", didHydrate);\n validateSelectProps(didHydrate, props);\n break;\n case \"textarea\":\n checkControlledValueProps(\"textarea\", props),\n listenToNonDelegatedEvent(\"invalid\", didHydrate),\n validateTextareaProps(didHydrate, props),\n initTextarea(\n didHydrate,\n props.value,\n props.defaultValue,\n props.children\n ),\n track(didHydrate);\n }\n type = props.children;\n (\"string\" !== typeof type &&\n \"number\" !== typeof type &&\n \"bigint\" !== typeof type) ||\n didHydrate.textContent === \"\" + type ||\n !0 === props.suppressHydrationWarning ||\n checkForUnmatchedText(didHydrate.textContent, type)\n ? (null != props.popover &&\n (listenToNonDelegatedEvent(\"beforetoggle\", didHydrate),\n listenToNonDelegatedEvent(\"toggle\", didHydrate)),\n null != props.onScroll &&\n listenToNonDelegatedEvent(\"scroll\", didHydrate),\n null != props.onScrollEnd &&\n listenToNonDelegatedEvent(\"scrollend\", didHydrate),\n null != props.onClick && (didHydrate.onclick = noop$1),\n (didHydrate = !0))\n : (didHydrate = !1);\n didHydrate || throwOnHydrationMismatch(fiber);\n }\n function popToNextHostParent(fiber) {\n for (hydrationParentFiber = fiber.return; hydrationParentFiber; )\n switch (hydrationParentFiber.tag) {\n case 5:\n case 13:\n rootOrSingletonContext = !1;\n return;\n case 27:\n case 3:\n rootOrSingletonContext = !0;\n return;\n default:\n hydrationParentFiber = hydrationParentFiber.return;\n }\n }\n function popHydrationState(fiber) {\n if (fiber !== hydrationParentFiber) return !1;\n if (!isHydrating)\n return popToNextHostParent(fiber), (isHydrating = !0), !1;\n var tag = fiber.tag,\n JSCompiler_temp;\n if ((JSCompiler_temp = 3 !== tag && 27 !== tag)) {\n if ((JSCompiler_temp = 5 === tag))\n (JSCompiler_temp = fiber.type),\n (JSCompiler_temp =\n !(\"form\" !== JSCompiler_temp && \"button\" !== JSCompiler_temp) ||\n shouldSetTextContent(fiber.type, fiber.memoizedProps));\n JSCompiler_temp = !JSCompiler_temp;\n }\n if (JSCompiler_temp && nextHydratableInstance) {\n for (JSCompiler_temp = nextHydratableInstance; JSCompiler_temp; ) {\n var diffNode = buildHydrationDiffNode(fiber, 0),\n description =\n describeHydratableInstanceForDevWarnings(JSCompiler_temp);\n diffNode.serverTail.push(description);\n JSCompiler_temp =\n \"Suspense\" === description.type\n ? getNextHydratableInstanceAfterSuspenseInstance(JSCompiler_temp)\n : getNextHydratable(JSCompiler_temp.nextSibling);\n }\n throwOnHydrationMismatch(fiber);\n }\n popToNextHostParent(fiber);\n if (13 === tag) {\n fiber = fiber.memoizedState;\n fiber = null !== fiber ? fiber.dehydrated : null;\n if (!fiber)\n throw Error(\n \"Expected to have a hydrated suspense instance. This error is likely caused by a bug in React. Please file an issue.\"\n );\n nextHydratableInstance =\n getNextHydratableInstanceAfterSuspenseInstance(fiber);\n } else\n 27 === tag\n ? ((tag = nextHydratableInstance),\n isSingletonScope(fiber.type)\n ? ((fiber = previousHydratableOnEnteringScopedSingleton),\n (previousHydratableOnEnteringScopedSingleton = null),\n (nextHydratableInstance = fiber))\n : (nextHydratableInstance = tag))\n : (nextHydratableInstance = hydrationParentFiber\n ? getNextHydratable(fiber.stateNode.nextSibling)\n : null);\n return !0;\n }\n function resetHydrationState() {\n nextHydratableInstance = hydrationParentFiber = null;\n didSuspendOrErrorDEV = isHydrating = !1;\n }\n function upgradeHydrationErrorsToRecoverable() {\n var queuedErrors = hydrationErrors;\n null !== queuedErrors &&\n (null === workInProgressRootRecoverableErrors\n ? (workInProgressRootRecoverableErrors = queuedErrors)\n : workInProgressRootRecoverableErrors.push.apply(\n workInProgressRootRecoverableErrors,\n queuedErrors\n ),\n (hydrationErrors = null));\n return queuedErrors;\n }\n function queueHydrationError(error) {\n null === hydrationErrors\n ? (hydrationErrors = [error])\n : hydrationErrors.push(error);\n }\n function emitPendingHydrationWarnings() {\n var diffRoot = hydrationDiffRootDEV;\n if (null !== diffRoot) {\n hydrationDiffRootDEV = null;\n for (var diff = describeDiff(diffRoot); 0 < diffRoot.children.length; )\n diffRoot = diffRoot.children[0];\n runWithFiberInDEV(diffRoot.fiber, function () {\n console.error(\n \"A tree hydrated but some attributes of the server rendered HTML didn't match the client properties. This won't be patched up. This can happen if a SSR-ed Client Component used:\\n\\n- A server/client branch `if (typeof window !== 'undefined')`.\\n- Variable input such as `Date.now()` or `Math.random()` which changes each time it's called.\\n- Date formatting in a user's locale which doesn't match the server.\\n- External changing data without sending a snapshot of it along with the HTML.\\n- Invalid HTML tag nesting.\\n\\nIt can also happen if the client has a browser extension installed which messes with the HTML before React loaded.\\n\\n%s%s\",\n \"https://react.dev/link/hydration-mismatch\",\n diff\n );\n });\n }\n }\n function resetContextDependencies() {\n lastContextDependency = currentlyRenderingFiber$1 = null;\n isDisallowedContextReadInDEV = !1;\n }\n function pushProvider(providerFiber, context, nextValue) {\n push(valueCursor, context._currentValue, providerFiber);\n context._currentValue = nextValue;\n push(rendererCursorDEV, context._currentRenderer, providerFiber);\n void 0 !== context._currentRenderer &&\n null !== context._currentRenderer &&\n context._currentRenderer !== rendererSigil &&\n console.error(\n \"Detected multiple renderers concurrently rendering the same context provider. This is currently unsupported.\"\n );\n context._currentRenderer = rendererSigil;\n }\n function popProvider(context, providerFiber) {\n context._currentValue = valueCursor.current;\n var currentRenderer = rendererCursorDEV.current;\n pop(rendererCursorDEV, providerFiber);\n context._currentRenderer = currentRenderer;\n pop(valueCursor, providerFiber);\n }\n function scheduleContextWorkOnParentPath(\n parent,\n renderLanes,\n propagationRoot\n ) {\n for (; null !== parent; ) {\n var alternate = parent.alternate;\n (parent.childLanes & renderLanes) !== renderLanes\n ? ((parent.childLanes |= renderLanes),\n null !== alternate && (alternate.childLanes |= renderLanes))\n : null !== alternate &&\n (alternate.childLanes & renderLanes) !== renderLanes &&\n (alternate.childLanes |= renderLanes);\n if (parent === propagationRoot) break;\n parent = parent.return;\n }\n parent !== propagationRoot &&\n console.error(\n \"Expected to find the propagation root when scheduling context work. This error is likely caused by a bug in React. Please file an issue.\"\n );\n }\n function propagateContextChanges(\n workInProgress,\n contexts,\n renderLanes,\n forcePropagateEntireTree\n ) {\n var fiber = workInProgress.child;\n null !== fiber && (fiber.return = workInProgress);\n for (; null !== fiber; ) {\n var list = fiber.dependencies;\n if (null !== list) {\n var nextFiber = fiber.child;\n list = list.firstContext;\n a: for (; null !== list; ) {\n var dependency = list;\n list = fiber;\n for (var i = 0; i < contexts.length; i++)\n if (dependency.context === contexts[i]) {\n list.lanes |= renderLanes;\n dependency = list.alternate;\n null !== dependency && (dependency.lanes |= renderLanes);\n scheduleContextWorkOnParentPath(\n list.return,\n renderLanes,\n workInProgress\n );\n forcePropagateEntireTree || (nextFiber = null);\n break a;\n }\n list = dependency.next;\n }\n } else if (18 === fiber.tag) {\n nextFiber = fiber.return;\n if (null === nextFiber)\n throw Error(\n \"We just came from a parent so we must have had a parent. This is a bug in React.\"\n );\n nextFiber.lanes |= renderLanes;\n list = nextFiber.alternate;\n null !== list && (list.lanes |= renderLanes);\n scheduleContextWorkOnParentPath(\n nextFiber,\n renderLanes,\n workInProgress\n );\n nextFiber = null;\n } else nextFiber = fiber.child;\n if (null !== nextFiber) nextFiber.return = fiber;\n else\n for (nextFiber = fiber; null !== nextFiber; ) {\n if (nextFiber === workInProgress) {\n nextFiber = null;\n break;\n }\n fiber = nextFiber.sibling;\n if (null !== fiber) {\n fiber.return = nextFiber.return;\n nextFiber = fiber;\n break;\n }\n nextFiber = nextFiber.return;\n }\n fiber = nextFiber;\n }\n }\n function propagateParentContextChanges(\n current,\n workInProgress,\n renderLanes,\n forcePropagateEntireTree\n ) {\n current = null;\n for (\n var parent = workInProgress, isInsidePropagationBailout = !1;\n null !== parent;\n\n ) {\n if (!isInsidePropagationBailout)\n if (0 !== (parent.flags & 524288)) isInsidePropagationBailout = !0;\n else if (0 !== (parent.flags & 262144)) break;\n if (10 === parent.tag) {\n var currentParent = parent.alternate;\n if (null === currentParent)\n throw Error(\"Should have a current fiber. This is a bug in React.\");\n currentParent = currentParent.memoizedProps;\n if (null !== currentParent) {\n var context = parent.type;\n objectIs(parent.pendingProps.value, currentParent.value) ||\n (null !== current\n ? current.push(context)\n : (current = [context]));\n }\n } else if (parent === hostTransitionProviderCursor.current) {\n currentParent = parent.alternate;\n if (null === currentParent)\n throw Error(\"Should have a current fiber. This is a bug in React.\");\n currentParent.memoizedState.memoizedState !==\n parent.memoizedState.memoizedState &&\n (null !== current\n ? current.push(HostTransitionContext)\n : (current = [HostTransitionContext]));\n }\n parent = parent.return;\n }\n null !== current &&\n propagateContextChanges(\n workInProgress,\n current,\n renderLanes,\n forcePropagateEntireTree\n );\n workInProgress.flags |= 262144;\n }\n function checkIfContextChanged(currentDependencies) {\n for (\n currentDependencies = currentDependencies.firstContext;\n null !== currentDependencies;\n\n ) {\n if (\n !objectIs(\n currentDependencies.context._currentValue,\n currentDependencies.memoizedValue\n )\n )\n return !0;\n currentDependencies = currentDependencies.next;\n }\n return !1;\n }\n function prepareToReadContext(workInProgress) {\n currentlyRenderingFiber$1 = workInProgress;\n lastContextDependency = null;\n workInProgress = workInProgress.dependencies;\n null !== workInProgress && (workInProgress.firstContext = null);\n }\n function readContext(context) {\n isDisallowedContextReadInDEV &&\n console.error(\n \"Context can only be read while React is rendering. In classes, you can read it in the render method or getDerivedStateFromProps. In function components, you can read it directly in the function body, but not inside Hooks like useReducer() or useMemo().\"\n );\n return readContextForConsumer(currentlyRenderingFiber$1, context);\n }\n function readContextDuringReconciliation(consumer, context) {\n null === currentlyRenderingFiber$1 && prepareToReadContext(consumer);\n return readContextForConsumer(consumer, context);\n }\n function readContextForConsumer(consumer, context) {\n var value = context._currentValue;\n context = { context: context, memoizedValue: value, next: null };\n if (null === lastContextDependency) {\n if (null === consumer)\n throw Error(\n \"Context can only be read while React is rendering. In classes, you can read it in the render method or getDerivedStateFromProps. In function components, you can read it directly in the function body, but not inside Hooks like useReducer() or useMemo().\"\n );\n lastContextDependency = context;\n consumer.dependencies = {\n lanes: 0,\n firstContext: context,\n _debugThenableState: null\n };\n consumer.flags |= 524288;\n } else lastContextDependency = lastContextDependency.next = context;\n return value;\n }\n function createCache() {\n return {\n controller: new AbortControllerLocal(),\n data: new Map(),\n refCount: 0\n };\n }\n function retainCache(cache) {\n cache.controller.signal.aborted &&\n console.warn(\n \"A cache instance was retained after it was already freed. This likely indicates a bug in React.\"\n );\n cache.refCount++;\n }\n function releaseCache(cache) {\n cache.refCount--;\n 0 > cache.refCount &&\n console.warn(\n \"A cache instance was released after it was already freed. This likely indicates a bug in React.\"\n );\n 0 === cache.refCount &&\n scheduleCallback$2(NormalPriority, function () {\n cache.controller.abort();\n });\n }\n function pushNestedEffectDurations() {\n var prevEffectDuration = profilerEffectDuration;\n profilerEffectDuration = 0;\n return prevEffectDuration;\n }\n function popNestedEffectDurations(prevEffectDuration) {\n var elapsedTime = profilerEffectDuration;\n profilerEffectDuration = prevEffectDuration;\n return elapsedTime;\n }\n function bubbleNestedEffectDurations(prevEffectDuration) {\n var elapsedTime = profilerEffectDuration;\n profilerEffectDuration += prevEffectDuration;\n return elapsedTime;\n }\n function startProfilerTimer(fiber) {\n profilerStartTime = now();\n 0 > fiber.actualStartTime && (fiber.actualStartTime = profilerStartTime);\n }\n function stopProfilerTimerIfRunningAndRecordDuration(fiber) {\n if (0 <= profilerStartTime) {\n var elapsedTime = now() - profilerStartTime;\n fiber.actualDuration += elapsedTime;\n fiber.selfBaseDuration = elapsedTime;\n profilerStartTime = -1;\n }\n }\n function stopProfilerTimerIfRunningAndRecordIncompleteDuration(fiber) {\n if (0 <= profilerStartTime) {\n var elapsedTime = now() - profilerStartTime;\n fiber.actualDuration += elapsedTime;\n profilerStartTime = -1;\n }\n }\n function recordEffectDuration() {\n if (0 <= profilerStartTime) {\n var elapsedTime = now() - profilerStartTime;\n profilerStartTime = -1;\n profilerEffectDuration += elapsedTime;\n }\n }\n function startEffectTimer() {\n profilerStartTime = now();\n }\n function transferActualDuration(fiber) {\n for (var child = fiber.child; child; )\n (fiber.actualDuration += child.actualDuration), (child = child.sibling);\n }\n function entangleAsyncAction(transition, thenable) {\n if (null === currentEntangledListeners) {\n var entangledListeners = (currentEntangledListeners = []);\n currentEntangledPendingCount = 0;\n currentEntangledLane = requestTransitionLane();\n currentEntangledActionThenable = {\n status: \"pending\",\n value: void 0,\n then: function (resolve) {\n entangledListeners.push(resolve);\n }\n };\n }\n currentEntangledPendingCount++;\n thenable.then(pingEngtangledActionScope, pingEngtangledActionScope);\n return thenable;\n }\n function pingEngtangledActionScope() {\n if (\n 0 === --currentEntangledPendingCount &&\n null !== currentEntangledListeners\n ) {\n null !== currentEntangledActionThenable &&\n (currentEntangledActionThenable.status = \"fulfilled\");\n var listeners = currentEntangledListeners;\n currentEntangledListeners = null;\n currentEntangledLane = 0;\n currentEntangledActionThenable = null;\n for (var i = 0; i < listeners.length; i++) (0, listeners[i])();\n }\n }\n function chainThenableValue(thenable, result) {\n var listeners = [],\n thenableWithOverride = {\n status: \"pending\",\n value: null,\n reason: null,\n then: function (resolve) {\n listeners.push(resolve);\n }\n };\n thenable.then(\n function () {\n thenableWithOverride.status = \"fulfilled\";\n thenableWithOverride.value = result;\n for (var i = 0; i < listeners.length; i++) (0, listeners[i])(result);\n },\n function (error) {\n thenableWithOverride.status = \"rejected\";\n thenableWithOverride.reason = error;\n for (error = 0; error < listeners.length; error++)\n (0, listeners[error])(void 0);\n }\n );\n return thenableWithOverride;\n }\n function peekCacheFromPool() {\n var cacheResumedFromPreviousRender = resumedCache.current;\n return null !== cacheResumedFromPreviousRender\n ? cacheResumedFromPreviousRender\n : workInProgressRoot.pooledCache;\n }\n function pushTransition(offscreenWorkInProgress, prevCachePool) {\n null === prevCachePool\n ? push(resumedCache, resumedCache.current, offscreenWorkInProgress)\n : push(resumedCache, prevCachePool.pool, offscreenWorkInProgress);\n }\n function getSuspendedCache() {\n var cacheFromPool = peekCacheFromPool();\n return null === cacheFromPool\n ? null\n : { parent: CacheContext._currentValue, pool: cacheFromPool };\n }\n function createThenableState() {\n return { didWarnAboutUncachedPromise: !1, thenables: [] };\n }\n function isThenableResolved(thenable) {\n thenable = thenable.status;\n return \"fulfilled\" === thenable || \"rejected\" === thenable;\n }\n function noop$3() {}\n function trackUsedThenable(thenableState, thenable, index) {\n null !== ReactSharedInternals.actQueue &&\n (ReactSharedInternals.didUsePromise = !0);\n var trackedThenables = thenableState.thenables;\n index = trackedThenables[index];\n void 0 === index\n ? trackedThenables.push(thenable)\n : index !== thenable &&\n (thenableState.didWarnAboutUncachedPromise ||\n ((thenableState.didWarnAboutUncachedPromise = !0),\n console.error(\n \"A component was suspended by an uncached promise. Creating promises inside a Client Component or hook is not yet supported, except via a Suspense-compatible library or framework.\"\n )),\n thenable.then(noop$3, noop$3),\n (thenable = index));\n switch (thenable.status) {\n case \"fulfilled\":\n return thenable.value;\n case \"rejected\":\n throw (\n ((thenableState = thenable.reason),\n checkIfUseWrappedInAsyncCatch(thenableState),\n thenableState)\n );\n default:\n if (\"string\" === typeof thenable.status)\n thenable.then(noop$3, noop$3);\n else {\n thenableState = workInProgressRoot;\n if (\n null !== thenableState &&\n 100 < thenableState.shellSuspendCounter\n )\n throw Error(\n \"An unknown Component is an async Client Component. Only Server Components can be async at the moment. This error is often caused by accidentally adding `'use client'` to a module that was originally written for the server.\"\n );\n thenableState = thenable;\n thenableState.status = \"pending\";\n thenableState.then(\n function (fulfilledValue) {\n if (\"pending\" === thenable.status) {\n var fulfilledThenable = thenable;\n fulfilledThenable.status = \"fulfilled\";\n fulfilledThenable.value = fulfilledValue;\n }\n },\n function (error) {\n if (\"pending\" === thenable.status) {\n var rejectedThenable = thenable;\n rejectedThenable.status = \"rejected\";\n rejectedThenable.reason = error;\n }\n }\n );\n }\n switch (thenable.status) {\n case \"fulfilled\":\n return thenable.value;\n case \"rejected\":\n throw (\n ((thenableState = thenable.reason),\n checkIfUseWrappedInAsyncCatch(thenableState),\n thenableState)\n );\n }\n suspendedThenable = thenable;\n needsToResetSuspendedThenableDEV = !0;\n throw SuspenseException;\n }\n }\n function getSuspendedThenable() {\n if (null === suspendedThenable)\n throw Error(\n \"Expected a suspended thenable. This is a bug in React. Please file an issue.\"\n );\n var thenable = suspendedThenable;\n suspendedThenable = null;\n needsToResetSuspendedThenableDEV = !1;\n return thenable;\n }\n function checkIfUseWrappedInAsyncCatch(rejectedReason) {\n if (\n rejectedReason === SuspenseException ||\n rejectedReason === SuspenseActionException\n )\n throw Error(\n \"Hooks are not supported inside an async component. This error is often caused by accidentally adding `'use client'` to a module that was originally written for the server.\"\n );\n }\n function initializeUpdateQueue(fiber) {\n fiber.updateQueue = {\n baseState: fiber.memoizedState,\n firstBaseUpdate: null,\n lastBaseUpdate: null,\n shared: { pending: null, lanes: 0, hiddenCallbacks: null },\n callbacks: null\n };\n }\n function cloneUpdateQueue(current, workInProgress) {\n current = current.updateQueue;\n workInProgress.updateQueue === current &&\n (workInProgress.updateQueue = {\n baseState: current.baseState,\n firstBaseUpdate: current.firstBaseUpdate,\n lastBaseUpdate: current.lastBaseUpdate,\n shared: current.shared,\n callbacks: null\n });\n }\n function createUpdate(lane) {\n return {\n lane: lane,\n tag: UpdateState,\n payload: null,\n callback: null,\n next: null\n };\n }\n function enqueueUpdate(fiber, update, lane) {\n var updateQueue = fiber.updateQueue;\n if (null === updateQueue) return null;\n updateQueue = updateQueue.shared;\n if (\n currentlyProcessingQueue === updateQueue &&\n !didWarnUpdateInsideUpdate\n ) {\n var componentName = getComponentNameFromFiber(fiber);\n console.error(\n \"An update (setState, replaceState, or forceUpdate) was scheduled from inside an update function. Update functions should be pure, with zero side-effects. Consider using componentDidUpdate or a callback.\\n\\nPlease update the following component: %s\",\n componentName\n );\n didWarnUpdateInsideUpdate = !0;\n }\n if ((executionContext & RenderContext) !== NoContext)\n return (\n (componentName = updateQueue.pending),\n null === componentName\n ? (update.next = update)\n : ((update.next = componentName.next),\n (componentName.next = update)),\n (updateQueue.pending = update),\n (update = getRootForUpdatedFiber(fiber)),\n markUpdateLaneFromFiberToRoot(fiber, null, lane),\n update\n );\n enqueueUpdate$1(fiber, updateQueue, update, lane);\n return getRootForUpdatedFiber(fiber);\n }\n function entangleTransitions(root, fiber, lane) {\n fiber = fiber.updateQueue;\n if (null !== fiber && ((fiber = fiber.shared), 0 !== (lane & 4194048))) {\n var queueLanes = fiber.lanes;\n queueLanes &= root.pendingLanes;\n lane |= queueLanes;\n fiber.lanes = lane;\n markRootEntangled(root, lane);\n }\n }\n function enqueueCapturedUpdate(workInProgress, capturedUpdate) {\n var queue = workInProgress.updateQueue,\n current = workInProgress.alternate;\n if (\n null !== current &&\n ((current = current.updateQueue), queue === current)\n ) {\n var newFirst = null,\n newLast = null;\n queue = queue.firstBaseUpdate;\n if (null !== queue) {\n do {\n var clone = {\n lane: queue.lane,\n tag: queue.tag,\n payload: queue.payload,\n callback: null,\n next: null\n };\n null === newLast\n ? (newFirst = newLast = clone)\n : (newLast = newLast.next = clone);\n queue = queue.next;\n } while (null !== queue);\n null === newLast\n ? (newFirst = newLast = capturedUpdate)\n : (newLast = newLast.next = capturedUpdate);\n } else newFirst = newLast = capturedUpdate;\n queue = {\n baseState: current.baseState,\n firstBaseUpdate: newFirst,\n lastBaseUpdate: newLast,\n shared: current.shared,\n callbacks: current.callbacks\n };\n workInProgress.updateQueue = queue;\n return;\n }\n workInProgress = queue.lastBaseUpdate;\n null === workInProgress\n ? (queue.firstBaseUpdate = capturedUpdate)\n : (workInProgress.next = capturedUpdate);\n queue.lastBaseUpdate = capturedUpdate;\n }\n function suspendIfUpdateReadFromEntangledAsyncAction() {\n if (didReadFromEntangledAsyncAction) {\n var entangledActionThenable = currentEntangledActionThenable;\n if (null !== entangledActionThenable) throw entangledActionThenable;\n }\n }\n function processUpdateQueue(\n workInProgress,\n props,\n instance$jscomp$0,\n renderLanes\n ) {\n didReadFromEntangledAsyncAction = !1;\n var queue = workInProgress.updateQueue;\n hasForceUpdate = !1;\n currentlyProcessingQueue = queue.shared;\n var firstBaseUpdate = queue.firstBaseUpdate,\n lastBaseUpdate = queue.lastBaseUpdate,\n pendingQueue = queue.shared.pending;\n if (null !== pendingQueue) {\n queue.shared.pending = null;\n var lastPendingUpdate = pendingQueue,\n firstPendingUpdate = lastPendingUpdate.next;\n lastPendingUpdate.next = null;\n null === lastBaseUpdate\n ? (firstBaseUpdate = firstPendingUpdate)\n : (lastBaseUpdate.next = firstPendingUpdate);\n lastBaseUpdate = lastPendingUpdate;\n var current = workInProgress.alternate;\n null !== current &&\n ((current = current.updateQueue),\n (pendingQueue = current.lastBaseUpdate),\n pendingQueue !== lastBaseUpdate &&\n (null === pendingQueue\n ? (current.firstBaseUpdate = firstPendingUpdate)\n : (pendingQueue.next = firstPendingUpdate),\n (current.lastBaseUpdate = lastPendingUpdate)));\n }\n if (null !== firstBaseUpdate) {\n var newState = queue.baseState;\n lastBaseUpdate = 0;\n current = firstPendingUpdate = lastPendingUpdate = null;\n pendingQueue = firstBaseUpdate;\n do {\n var updateLane = pendingQueue.lane & -536870913,\n isHiddenUpdate = updateLane !== pendingQueue.lane;\n if (\n isHiddenUpdate\n ? (workInProgressRootRenderLanes & updateLane) === updateLane\n : (renderLanes & updateLane) === updateLane\n ) {\n 0 !== updateLane &&\n updateLane === currentEntangledLane &&\n (didReadFromEntangledAsyncAction = !0);\n null !== current &&\n (current = current.next =\n {\n lane: 0,\n tag: pendingQueue.tag,\n payload: pendingQueue.payload,\n callback: null,\n next: null\n });\n a: {\n updateLane = workInProgress;\n var partialState = pendingQueue;\n var nextProps = props,\n instance = instance$jscomp$0;\n switch (partialState.tag) {\n case ReplaceState:\n partialState = partialState.payload;\n if (\"function\" === typeof partialState) {\n isDisallowedContextReadInDEV = !0;\n var nextState = partialState.call(\n instance,\n newState,\n nextProps\n );\n if (updateLane.mode & StrictLegacyMode) {\n setIsStrictModeForDevtools(!0);\n try {\n partialState.call(instance, newState, nextProps);\n } finally {\n setIsStrictModeForDevtools(!1);\n }\n }\n isDisallowedContextReadInDEV = !1;\n newState = nextState;\n break a;\n }\n newState = partialState;\n break a;\n case CaptureUpdate:\n updateLane.flags = (updateLane.flags & -65537) | 128;\n case UpdateState:\n nextState = partialState.payload;\n if (\"function\" === typeof nextState) {\n isDisallowedContextReadInDEV = !0;\n partialState = nextState.call(\n instance,\n newState,\n nextProps\n );\n if (updateLane.mode & StrictLegacyMode) {\n setIsStrictModeForDevtools(!0);\n try {\n nextState.call(instance, newState, nextProps);\n } finally {\n setIsStrictModeForDevtools(!1);\n }\n }\n isDisallowedContextReadInDEV = !1;\n } else partialState = nextState;\n if (null === partialState || void 0 === partialState) break a;\n newState = assign({}, newState, partialState);\n break a;\n case ForceUpdate:\n hasForceUpdate = !0;\n }\n }\n updateLane = pendingQueue.callback;\n null !== updateLane &&\n ((workInProgress.flags |= 64),\n isHiddenUpdate && (workInProgress.flags |= 8192),\n (isHiddenUpdate = queue.callbacks),\n null === isHiddenUpdate\n ? (queue.callbacks = [updateLane])\n : isHiddenUpdate.push(updateLane));\n } else\n (isHiddenUpdate = {\n lane: updateLane,\n tag: pendingQueue.tag,\n payload: pendingQueue.payload,\n callback: pendingQueue.callback,\n next: null\n }),\n null === current\n ? ((firstPendingUpdate = current = isHiddenUpdate),\n (lastPendingUpdate = newState))\n : (current = current.next = isHiddenUpdate),\n (lastBaseUpdate |= updateLane);\n pendingQueue = pendingQueue.next;\n if (null === pendingQueue)\n if (((pendingQueue = queue.shared.pending), null === pendingQueue))\n break;\n else\n (isHiddenUpdate = pendingQueue),\n (pendingQueue = isHiddenUpdate.next),\n (isHiddenUpdate.next = null),\n (queue.lastBaseUpdate = isHiddenUpdate),\n (queue.shared.pending = null);\n } while (1);\n null === current && (lastPendingUpdate = newState);\n queue.baseState = lastPendingUpdate;\n queue.firstBaseUpdate = firstPendingUpdate;\n queue.lastBaseUpdate = current;\n null === firstBaseUpdate && (queue.shared.lanes = 0);\n workInProgressRootSkippedLanes |= lastBaseUpdate;\n workInProgress.lanes = lastBaseUpdate;\n workInProgress.memoizedState = newState;\n }\n currentlyProcessingQueue = null;\n }\n function callCallback(callback, context) {\n if (\"function\" !== typeof callback)\n throw Error(\n \"Invalid argument passed as callback. Expected a function. Instead received: \" +\n callback\n );\n callback.call(context);\n }\n function commitHiddenCallbacks(updateQueue, context) {\n var hiddenCallbacks = updateQueue.shared.hiddenCallbacks;\n if (null !== hiddenCallbacks)\n for (\n updateQueue.shared.hiddenCallbacks = null, updateQueue = 0;\n updateQueue < hiddenCallbacks.length;\n updateQueue++\n )\n callCallback(hiddenCallbacks[updateQueue], context);\n }\n function commitCallbacks(updateQueue, context) {\n var callbacks = updateQueue.callbacks;\n if (null !== callbacks)\n for (\n updateQueue.callbacks = null, updateQueue = 0;\n updateQueue < callbacks.length;\n updateQueue++\n )\n callCallback(callbacks[updateQueue], context);\n }\n function pushHiddenContext(fiber, context) {\n var prevEntangledRenderLanes = entangledRenderLanes;\n push(prevEntangledRenderLanesCursor, prevEntangledRenderLanes, fiber);\n push(currentTreeHiddenStackCursor, context, fiber);\n entangledRenderLanes = prevEntangledRenderLanes | context.baseLanes;\n }\n function reuseHiddenContextOnStack(fiber) {\n push(prevEntangledRenderLanesCursor, entangledRenderLanes, fiber);\n push(\n currentTreeHiddenStackCursor,\n currentTreeHiddenStackCursor.current,\n fiber\n );\n }\n function popHiddenContext(fiber) {\n entangledRenderLanes = prevEntangledRenderLanesCursor.current;\n pop(currentTreeHiddenStackCursor, fiber);\n pop(prevEntangledRenderLanesCursor, fiber);\n }\n function mountHookTypesDev() {\n var hookName = currentHookNameInDev;\n null === hookTypesDev\n ? (hookTypesDev = [hookName])\n : hookTypesDev.push(hookName);\n }\n function updateHookTypesDev() {\n var hookName = currentHookNameInDev;\n if (\n null !== hookTypesDev &&\n (hookTypesUpdateIndexDev++,\n hookTypesDev[hookTypesUpdateIndexDev] !== hookName)\n ) {\n var componentName = getComponentNameFromFiber(currentlyRenderingFiber);\n if (\n !didWarnAboutMismatchedHooksForComponent.has(componentName) &&\n (didWarnAboutMismatchedHooksForComponent.add(componentName),\n null !== hookTypesDev)\n ) {\n for (var table = \"\", i = 0; i <= hookTypesUpdateIndexDev; i++) {\n var oldHookName = hookTypesDev[i],\n newHookName =\n i === hookTypesUpdateIndexDev ? hookName : oldHookName;\n for (\n oldHookName = i + 1 + \". \" + oldHookName;\n 30 > oldHookName.length;\n\n )\n oldHookName += \" \";\n oldHookName += newHookName + \"\\n\";\n table += oldHookName;\n }\n console.error(\n \"React has detected a change in the order of Hooks called by %s. This will lead to bugs and errors if not fixed. For more information, read the Rules of Hooks: https://react.dev/link/rules-of-hooks\\n\\n Previous render Next render\\n ------------------------------------------------------\\n%s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\\n\",\n componentName,\n table\n );\n }\n }\n }\n function checkDepsAreArrayDev(deps) {\n void 0 === deps ||\n null === deps ||\n isArrayImpl(deps) ||\n console.error(\n \"%s received a final argument that is not an array (instead, received `%s`). When specified, the final argument must be an array.\",\n currentHookNameInDev,\n typeof deps\n );\n }\n function warnOnUseFormStateInDev() {\n var componentName = getComponentNameFromFiber(currentlyRenderingFiber);\n didWarnAboutUseFormState.has(componentName) ||\n (didWarnAboutUseFormState.add(componentName),\n console.error(\n \"ReactDOM.useFormState has been renamed to React.useActionState. Please update %s to use React.useActionState.\",\n componentName\n ));\n }\n function throwInvalidHookError() {\n throw Error(\n \"Invalid hook call. Hooks can only be called inside of the body of a function component. This could happen for one of the following reasons:\\n1. You might have mismatching versions of React and the renderer (such as React DOM)\\n2. You might be breaking the Rules of Hooks\\n3. You might have more than one copy of React in the same app\\nSee https://react.dev/link/invalid-hook-call for tips about how to debug and fix this problem.\"\n );\n }\n function areHookInputsEqual(nextDeps, prevDeps) {\n if (ignorePreviousDependencies) return !1;\n if (null === prevDeps)\n return (\n console.error(\n \"%s received a final argument during this render, but not during the previous render. Even though the final argument is optional, its type cannot change between renders.\",\n currentHookNameInDev\n ),\n !1\n );\n nextDeps.length !== prevDeps.length &&\n console.error(\n \"The final argument passed to %s changed size between renders. The order and size of this array must remain constant.\\n\\nPrevious: %s\\nIncoming: %s\",\n currentHookNameInDev,\n \"[\" + prevDeps.join(\", \") + \"]\",\n \"[\" + nextDeps.join(\", \") + \"]\"\n );\n for (var i = 0; i < prevDeps.length && i < nextDeps.length; i++)\n if (!objectIs(nextDeps[i], prevDeps[i])) return !1;\n return !0;\n }\n function renderWithHooks(\n current,\n workInProgress,\n Component,\n props,\n secondArg,\n nextRenderLanes\n ) {\n renderLanes = nextRenderLanes;\n currentlyRenderingFiber = workInProgress;\n hookTypesDev = null !== current ? current._debugHookTypes : null;\n hookTypesUpdateIndexDev = -1;\n ignorePreviousDependencies =\n null !== current && current.type !== workInProgress.type;\n if (\n \"[object AsyncFunction]\" ===\n Object.prototype.toString.call(Component) ||\n \"[object AsyncGeneratorFunction]\" ===\n Object.prototype.toString.call(Component)\n )\n (nextRenderLanes = getComponentNameFromFiber(currentlyRenderingFiber)),\n didWarnAboutAsyncClientComponent.has(nextRenderLanes) ||\n (didWarnAboutAsyncClientComponent.add(nextRenderLanes),\n console.error(\n \"%s is an async Client Component. Only Server Components can be async at the moment. This error is often caused by accidentally adding `'use client'` to a module that was originally written for the server.\",\n null === nextRenderLanes\n ? \"An unknown Component\"\n : \"<\" + nextRenderLanes + \">\"\n ));\n workInProgress.memoizedState = null;\n workInProgress.updateQueue = null;\n workInProgress.lanes = 0;\n ReactSharedInternals.H =\n null !== current && null !== current.memoizedState\n ? HooksDispatcherOnUpdateInDEV\n : null !== hookTypesDev\n ? HooksDispatcherOnMountWithHookTypesInDEV\n : HooksDispatcherOnMountInDEV;\n shouldDoubleInvokeUserFnsInHooksDEV = nextRenderLanes =\n (workInProgress.mode & StrictLegacyMode) !== NoMode;\n var children = callComponentInDEV(Component, props, secondArg);\n shouldDoubleInvokeUserFnsInHooksDEV = !1;\n didScheduleRenderPhaseUpdateDuringThisPass &&\n (children = renderWithHooksAgain(\n workInProgress,\n Component,\n props,\n secondArg\n ));\n if (nextRenderLanes) {\n setIsStrictModeForDevtools(!0);\n try {\n children = renderWithHooksAgain(\n workInProgress,\n Component,\n props,\n secondArg\n );\n } finally {\n setIsStrictModeForDevtools(!1);\n }\n }\n finishRenderingHooks(current, workInProgress);\n return children;\n }\n function finishRenderingHooks(current, workInProgress) {\n workInProgress._debugHookTypes = hookTypesDev;\n null === workInProgress.dependencies\n ? null !== thenableState$1 &&\n (workInProgress.dependencies = {\n lanes: 0,\n firstContext: null,\n _debugThenableState: thenableState$1\n })\n : (workInProgress.dependencies._debugThenableState = thenableState$1);\n ReactSharedInternals.H = ContextOnlyDispatcher;\n var didRenderTooFewHooks =\n null !== currentHook && null !== currentHook.next;\n renderLanes = 0;\n hookTypesDev =\n currentHookNameInDev =\n workInProgressHook =\n currentHook =\n currentlyRenderingFiber =\n null;\n hookTypesUpdateIndexDev = -1;\n null !== current &&\n (current.flags & 65011712) !== (workInProgress.flags & 65011712) &&\n console.error(\n \"Internal React error: Expected static flag was missing. Please notify the React team.\"\n );\n didScheduleRenderPhaseUpdate = !1;\n thenableIndexCounter$1 = 0;\n thenableState$1 = null;\n if (didRenderTooFewHooks)\n throw Error(\n \"Rendered fewer hooks than expected. This may be caused by an accidental early return statement.\"\n );\n null === current ||\n didReceiveUpdate ||\n ((current = current.dependencies),\n null !== current &&\n checkIfContextChanged(current) &&\n (didReceiveUpdate = !0));\n needsToResetSuspendedThenableDEV\n ? ((needsToResetSuspendedThenableDEV = !1), (current = !0))\n : (current = !1);\n current &&\n ((workInProgress =\n getComponentNameFromFiber(workInProgress) || \"Unknown\"),\n didWarnAboutUseWrappedInTryCatch.has(workInProgress) ||\n didWarnAboutAsyncClientComponent.has(workInProgress) ||\n (didWarnAboutUseWrappedInTryCatch.add(workInProgress),\n console.error(\n \"`use` was called from inside a try/catch block. This is not allowed and can lead to unexpected behavior. To handle errors triggered by `use`, wrap your component in a error boundary.\"\n )));\n }\n function renderWithHooksAgain(workInProgress, Component, props, secondArg) {\n currentlyRenderingFiber = workInProgress;\n var numberOfReRenders = 0;\n do {\n didScheduleRenderPhaseUpdateDuringThisPass && (thenableState$1 = null);\n thenableIndexCounter$1 = 0;\n didScheduleRenderPhaseUpdateDuringThisPass = !1;\n if (numberOfReRenders >= RE_RENDER_LIMIT)\n throw Error(\n \"Too many re-renders. React limits the number of renders to prevent an infinite loop.\"\n );\n numberOfReRenders += 1;\n ignorePreviousDependencies = !1;\n workInProgressHook = currentHook = null;\n if (null != workInProgress.updateQueue) {\n var children = workInProgress.updateQueue;\n children.lastEffect = null;\n children.events = null;\n children.stores = null;\n null != children.memoCache && (children.memoCache.index = 0);\n }\n hookTypesUpdateIndexDev = -1;\n ReactSharedInternals.H = HooksDispatcherOnRerenderInDEV;\n children = callComponentInDEV(Component, props, secondArg);\n } while (didScheduleRenderPhaseUpdateDuringThisPass);\n return children;\n }\n function TransitionAwareHostComponent() {\n var dispatcher = ReactSharedInternals.H,\n maybeThenable = dispatcher.useState()[0];\n maybeThenable =\n \"function\" === typeof maybeThenable.then\n ? useThenable(maybeThenable)\n : maybeThenable;\n dispatcher = dispatcher.useState()[0];\n (null !== currentHook ? currentHook.memoizedState : null) !==\n dispatcher && (currentlyRenderingFiber.flags |= 1024);\n return maybeThenable;\n }\n function checkDidRenderIdHook() {\n var didRenderIdHook = 0 !== localIdCounter;\n localIdCounter = 0;\n return didRenderIdHook;\n }\n function bailoutHooks(current, workInProgress, lanes) {\n workInProgress.updateQueue = current.updateQueue;\n workInProgress.flags =\n (workInProgress.mode & StrictEffectsMode) !== NoMode\n ? workInProgress.flags & -402655237\n : workInProgress.flags & -2053;\n current.lanes &= ~lanes;\n }\n function resetHooksOnUnwind(workInProgress) {\n if (didScheduleRenderPhaseUpdate) {\n for (\n workInProgress = workInProgress.memoizedState;\n null !== workInProgress;\n\n ) {\n var queue = workInProgress.queue;\n null !== queue && (queue.pending = null);\n workInProgress = workInProgress.next;\n }\n didScheduleRenderPhaseUpdate = !1;\n }\n renderLanes = 0;\n hookTypesDev =\n workInProgressHook =\n currentHook =\n currentlyRenderingFiber =\n null;\n hookTypesUpdateIndexDev = -1;\n currentHookNameInDev = null;\n didScheduleRenderPhaseUpdateDuringThisPass = !1;\n thenableIndexCounter$1 = localIdCounter = 0;\n thenableState$1 = null;\n }\n function mountWorkInProgressHook() {\n var hook = {\n memoizedState: null,\n baseState: null,\n baseQueue: null,\n queue: null,\n next: null\n };\n null === workInProgressHook\n ? (currentlyRenderingFiber.memoizedState = workInProgressHook = hook)\n : (workInProgressHook = workInProgressHook.next = hook);\n return workInProgressHook;\n }\n function updateWorkInProgressHook() {\n if (null === currentHook) {\n var nextCurrentHook = currentlyRenderingFiber.alternate;\n nextCurrentHook =\n null !== nextCurrentHook ? nextCurrentHook.memoizedState : null;\n } else nextCurrentHook = currentHook.next;\n var nextWorkInProgressHook =\n null === workInProgressHook\n ? currentlyRenderingFiber.memoizedState\n : workInProgressHook.next;\n if (null !== nextWorkInProgressHook)\n (workInProgressHook = nextWorkInProgressHook),\n (currentHook = nextCurrentHook);\n else {\n if (null === nextCurrentHook) {\n if (null === currentlyRenderingFiber.alternate)\n throw Error(\n \"Update hook called on initial render. This is likely a bug in React. Please file an issue.\"\n );\n throw Error(\"Rendered more hooks than during the previous render.\");\n }\n currentHook = nextCurrentHook;\n nextCurrentHook = {\n memoizedState: currentHook.memoizedState,\n baseState: currentHook.baseState,\n baseQueue: currentHook.baseQueue,\n queue: currentHook.queue,\n next: null\n };\n null === workInProgressHook\n ? (currentlyRenderingFiber.memoizedState = workInProgressHook =\n nextCurrentHook)\n : (workInProgressHook = workInProgressHook.next = nextCurrentHook);\n }\n return workInProgressHook;\n }\n function createFunctionComponentUpdateQueue() {\n return { lastEffect: null, events: null, stores: null, memoCache: null };\n }\n function useThenable(thenable) {\n var index = thenableIndexCounter$1;\n thenableIndexCounter$1 += 1;\n null === thenableState$1 && (thenableState$1 = createThenableState());\n thenable = trackUsedThenable(thenableState$1, thenable, index);\n index = currentlyRenderingFiber;\n null ===\n (null === workInProgressHook\n ? index.memoizedState\n : workInProgressHook.next) &&\n ((index = index.alternate),\n (ReactSharedInternals.H =\n null !== index && null !== index.memoizedState\n ? HooksDispatcherOnUpdateInDEV\n : HooksDispatcherOnMountInDEV));\n return thenable;\n }\n function use(usable) {\n if (null !== usable && \"object\" === typeof usable) {\n if (\"function\" === typeof usable.then) return useThenable(usable);\n if (usable.$$typeof === REACT_CONTEXT_TYPE) return readContext(usable);\n }\n throw Error(\"An unsupported type was passed to use(): \" + String(usable));\n }\n function useMemoCache(size) {\n var memoCache = null,\n updateQueue = currentlyRenderingFiber.updateQueue;\n null !== updateQueue && (memoCache = updateQueue.memoCache);\n if (null == memoCache) {\n var current = currentlyRenderingFiber.alternate;\n null !== current &&\n ((current = current.updateQueue),\n null !== current &&\n ((current = current.memoCache),\n null != current &&\n (memoCache = {\n data: current.data.map(function (array) {\n return array.slice();\n }),\n index: 0\n })));\n }\n null == memoCache && (memoCache = { data: [], index: 0 });\n null === updateQueue &&\n ((updateQueue = createFunctionComponentUpdateQueue()),\n (currentlyRenderingFiber.updateQueue = updateQueue));\n updateQueue.memoCache = memoCache;\n updateQueue = memoCache.data[memoCache.index];\n if (void 0 === updateQueue || ignorePreviousDependencies)\n for (\n updateQueue = memoCache.data[memoCache.index] = Array(size),\n current = 0;\n current < size;\n current++\n )\n updateQueue[current] = REACT_MEMO_CACHE_SENTINEL;\n else\n updateQueue.length !== size &&\n console.error(\n \"Expected a constant size argument for each invocation of useMemoCache. The previous cache was allocated with size %s but size %s was requested.\",\n updateQueue.length,\n size\n );\n memoCache.index++;\n return updateQueue;\n }\n function basicStateReducer(state, action) {\n return \"function\" === typeof action ? action(state) : action;\n }\n function mountReducer(reducer, initialArg, init) {\n var hook = mountWorkInProgressHook();\n if (void 0 !== init) {\n var initialState = init(initialArg);\n if (shouldDoubleInvokeUserFnsInHooksDEV) {\n setIsStrictModeForDevtools(!0);\n try {\n init(initialArg);\n } finally {\n setIsStrictModeForDevtools(!1);\n }\n }\n } else initialState = initialArg;\n hook.memoizedState = hook.baseState = initialState;\n reducer = {\n pending: null,\n lanes: 0,\n dispatch: null,\n lastRenderedReducer: reducer,\n lastRenderedState: initialState\n };\n hook.queue = reducer;\n reducer = reducer.dispatch = dispatchReducerAction.bind(\n null,\n currentlyRenderingFiber,\n reducer\n );\n return [hook.memoizedState, reducer];\n }\n function updateReducer(reducer) {\n var hook = updateWorkInProgressHook();\n return updateReducerImpl(hook, currentHook, reducer);\n }\n function updateReducerImpl(hook, current, reducer) {\n var queue = hook.queue;\n if (null === queue)\n throw Error(\n \"Should have a queue. You are likely calling Hooks conditionally, which is not allowed. (https://react.dev/link/invalid-hook-call)\"\n );\n queue.lastRenderedReducer = reducer;\n var baseQueue = hook.baseQueue,\n pendingQueue = queue.pending;\n if (null !== pendingQueue) {\n if (null !== baseQueue) {\n var baseFirst = baseQueue.next;\n baseQueue.next = pendingQueue.next;\n pendingQueue.next = baseFirst;\n }\n current.baseQueue !== baseQueue &&\n console.error(\n \"Internal error: Expected work-in-progress queue to be a clone. This is a bug in React.\"\n );\n current.baseQueue = baseQueue = pendingQueue;\n queue.pending = null;\n }\n pendingQueue = hook.baseState;\n if (null === baseQueue) hook.memoizedState = pendingQueue;\n else {\n current = baseQueue.next;\n var newBaseQueueFirst = (baseFirst = null),\n newBaseQueueLast = null,\n update = current,\n didReadFromEntangledAsyncAction = !1;\n do {\n var updateLane = update.lane & -536870913;\n if (\n updateLane !== update.lane\n ? (workInProgressRootRenderLanes & updateLane) === updateLane\n : (renderLanes & updateLane) === updateLane\n ) {\n var revertLane = update.revertLane;\n if (0 === revertLane)\n null !== newBaseQueueLast &&\n (newBaseQueueLast = newBaseQueueLast.next =\n {\n lane: 0,\n revertLane: 0,\n action: update.action,\n hasEagerState: update.hasEagerState,\n eagerState: update.eagerState,\n next: null\n }),\n updateLane === currentEntangledLane &&\n (didReadFromEntangledAsyncAction = !0);\n else if ((renderLanes & revertLane) === revertLane) {\n update = update.next;\n revertLane === currentEntangledLane &&\n (didReadFromEntangledAsyncAction = !0);\n continue;\n } else\n (updateLane = {\n lane: 0,\n revertLane: update.revertLane,\n action: update.action,\n hasEagerState: update.hasEagerState,\n eagerState: update.eagerState,\n next: null\n }),\n null === newBaseQueueLast\n ? ((newBaseQueueFirst = newBaseQueueLast = updateLane),\n (baseFirst = pendingQueue))\n : (newBaseQueueLast = newBaseQueueLast.next = updateLane),\n (currentlyRenderingFiber.lanes |= revertLane),\n (workInProgressRootSkippedLanes |= revertLane);\n updateLane = update.action;\n shouldDoubleInvokeUserFnsInHooksDEV &&\n reducer(pendingQueue, updateLane);\n pendingQueue = update.hasEagerState\n ? update.eagerState\n : reducer(pendingQueue, updateLane);\n } else\n (revertLane = {\n lane: updateLane,\n revertLane: update.revertLane,\n action: update.action,\n hasEagerState: update.hasEagerState,\n eagerState: update.eagerState,\n next: null\n }),\n null === newBaseQueueLast\n ? ((newBaseQueueFirst = newBaseQueueLast = revertLane),\n (baseFirst = pendingQueue))\n : (newBaseQueueLast = newBaseQueueLast.next = revertLane),\n (currentlyRenderingFiber.lanes |= updateLane),\n (workInProgressRootSkippedLanes |= updateLane);\n update = update.next;\n } while (null !== update && update !== current);\n null === newBaseQueueLast\n ? (baseFirst = pendingQueue)\n : (newBaseQueueLast.next = newBaseQueueFirst);\n if (\n !objectIs(pendingQueue, hook.memoizedState) &&\n ((didReceiveUpdate = !0),\n didReadFromEntangledAsyncAction &&\n ((reducer = currentEntangledActionThenable), null !== reducer))\n )\n throw reducer;\n hook.memoizedState = pendingQueue;\n hook.baseState = baseFirst;\n hook.baseQueue = newBaseQueueLast;\n queue.lastRenderedState = pendingQueue;\n }\n null === baseQueue && (queue.lanes = 0);\n return [hook.memoizedState, queue.dispatch];\n }\n function rerenderReducer(reducer) {\n var hook = updateWorkInProgressHook(),\n queue = hook.queue;\n if (null === queue)\n throw Error(\n \"Should have a queue. You are likely calling Hooks conditionally, which is not allowed. (https://react.dev/link/invalid-hook-call)\"\n );\n queue.lastRenderedReducer = reducer;\n var dispatch = queue.dispatch,\n lastRenderPhaseUpdate = queue.pending,\n newState = hook.memoizedState;\n if (null !== lastRenderPhaseUpdate) {\n queue.pending = null;\n var update = (lastRenderPhaseUpdate = lastRenderPhaseUpdate.next);\n do\n (newState = reducer(newState, update.action)), (update = update.next);\n while (update !== lastRenderPhaseUpdate);\n objectIs(newState, hook.memoizedState) || (didReceiveUpdate = !0);\n hook.memoizedState = newState;\n null === hook.baseQueue && (hook.baseState = newState);\n queue.lastRenderedState = newState;\n }\n return [newState, dispatch];\n }\n function mountSyncExternalStore(subscribe, getSnapshot, getServerSnapshot) {\n var fiber = currentlyRenderingFiber,\n hook = mountWorkInProgressHook();\n if (isHydrating) {\n if (void 0 === getServerSnapshot)\n throw Error(\n \"Missing getServerSnapshot, which is required for server-rendered content. Will revert to client rendering.\"\n );\n var nextSnapshot = getServerSnapshot();\n didWarnUncachedGetSnapshot ||\n nextSnapshot === getServerSnapshot() ||\n (console.error(\n \"The result of getServerSnapshot should be cached to avoid an infinite loop\"\n ),\n (didWarnUncachedGetSnapshot = !0));\n } else {\n nextSnapshot = getSnapshot();\n didWarnUncachedGetSnapshot ||\n ((getServerSnapshot = getSnapshot()),\n objectIs(nextSnapshot, getServerSnapshot) ||\n (console.error(\n \"The result of getSnapshot should be cached to avoid an infinite loop\"\n ),\n (didWarnUncachedGetSnapshot = !0)));\n if (null === workInProgressRoot)\n throw Error(\n \"Expected a work-in-progress root. This is a bug in React. Please file an issue.\"\n );\n 0 !== (workInProgressRootRenderLanes & 124) ||\n pushStoreConsistencyCheck(fiber, getSnapshot, nextSnapshot);\n }\n hook.memoizedState = nextSnapshot;\n getServerSnapshot = { value: nextSnapshot, getSnapshot: getSnapshot };\n hook.queue = getServerSnapshot;\n mountEffect(\n subscribeToStore.bind(null, fiber, getServerSnapshot, subscribe),\n [subscribe]\n );\n fiber.flags |= 2048;\n pushSimpleEffect(\n HasEffect | Passive,\n createEffectInstance(),\n updateStoreInstance.bind(\n null,\n fiber,\n getServerSnapshot,\n nextSnapshot,\n getSnapshot\n ),\n null\n );\n return nextSnapshot;\n }\n function updateSyncExternalStore(\n subscribe,\n getSnapshot,\n getServerSnapshot\n ) {\n var fiber = currentlyRenderingFiber,\n hook = updateWorkInProgressHook(),\n isHydrating$jscomp$0 = isHydrating;\n if (isHydrating$jscomp$0) {\n if (void 0 === getServerSnapshot)\n throw Error(\n \"Missing getServerSnapshot, which is required for server-rendered content. Will revert to client rendering.\"\n );\n getServerSnapshot = getServerSnapshot();\n } else if (\n ((getServerSnapshot = getSnapshot()), !didWarnUncachedGetSnapshot)\n ) {\n var cachedSnapshot = getSnapshot();\n objectIs(getServerSnapshot, cachedSnapshot) ||\n (console.error(\n \"The result of getSnapshot should be cached to avoid an infinite loop\"\n ),\n (didWarnUncachedGetSnapshot = !0));\n }\n if (\n (cachedSnapshot = !objectIs(\n (currentHook || hook).memoizedState,\n getServerSnapshot\n ))\n )\n (hook.memoizedState = getServerSnapshot), (didReceiveUpdate = !0);\n hook = hook.queue;\n var create = subscribeToStore.bind(null, fiber, hook, subscribe);\n updateEffectImpl(2048, Passive, create, [subscribe]);\n if (\n hook.getSnapshot !== getSnapshot ||\n cachedSnapshot ||\n (null !== workInProgressHook &&\n workInProgressHook.memoizedState.tag & HasEffect)\n ) {\n fiber.flags |= 2048;\n pushSimpleEffect(\n HasEffect | Passive,\n createEffectInstance(),\n updateStoreInstance.bind(\n null,\n fiber,\n hook,\n getServerSnapshot,\n getSnapshot\n ),\n null\n );\n if (null === workInProgressRoot)\n throw Error(\n \"Expected a work-in-progress root. This is a bug in React. Please file an issue.\"\n );\n isHydrating$jscomp$0 ||\n 0 !== (renderLanes & 124) ||\n pushStoreConsistencyCheck(fiber, getSnapshot, getServerSnapshot);\n }\n return getServerSnapshot;\n }\n function pushStoreConsistencyCheck(fiber, getSnapshot, renderedSnapshot) {\n fiber.flags |= 16384;\n fiber = { getSnapshot: getSnapshot, value: renderedSnapshot };\n getSnapshot = currentlyRenderingFiber.updateQueue;\n null === getSnapshot\n ? ((getSnapshot = createFunctionComponentUpdateQueue()),\n (currentlyRenderingFiber.updateQueue = getSnapshot),\n (getSnapshot.stores = [fiber]))\n : ((renderedSnapshot = getSnapshot.stores),\n null === renderedSnapshot\n ? (getSnapshot.stores = [fiber])\n : renderedSnapshot.push(fiber));\n }\n function updateStoreInstance(fiber, inst, nextSnapshot, getSnapshot) {\n inst.value = nextSnapshot;\n inst.getSnapshot = getSnapshot;\n checkIfSnapshotChanged(inst) && forceStoreRerender(fiber);\n }\n function subscribeToStore(fiber, inst, subscribe) {\n return subscribe(function () {\n checkIfSnapshotChanged(inst) && forceStoreRerender(fiber);\n });\n }\n function checkIfSnapshotChanged(inst) {\n var latestGetSnapshot = inst.getSnapshot;\n inst = inst.value;\n try {\n var nextValue = latestGetSnapshot();\n return !objectIs(inst, nextValue);\n } catch (error) {\n return !0;\n }\n }\n function forceStoreRerender(fiber) {\n var root = enqueueConcurrentRenderForLane(fiber, 2);\n null !== root && scheduleUpdateOnFiber(root, fiber, 2);\n }\n function mountStateImpl(initialState) {\n var hook = mountWorkInProgressHook();\n if (\"function\" === typeof initialState) {\n var initialStateInitializer = initialState;\n initialState = initialStateInitializer();\n if (shouldDoubleInvokeUserFnsInHooksDEV) {\n setIsStrictModeForDevtools(!0);\n try {\n initialStateInitializer();\n } finally {\n setIsStrictModeForDevtools(!1);\n }\n }\n }\n hook.memoizedState = hook.baseState = initialState;\n hook.queue = {\n pending: null,\n lanes: 0,\n dispatch: null,\n lastRenderedReducer: basicStateReducer,\n lastRenderedState: initialState\n };\n return hook;\n }\n function mountState(initialState) {\n initialState = mountStateImpl(initialState);\n var queue = initialState.queue,\n dispatch = dispatchSetState.bind(null, currentlyRenderingFiber, queue);\n queue.dispatch = dispatch;\n return [initialState.memoizedState, dispatch];\n }\n function mountOptimistic(passthrough) {\n var hook = mountWorkInProgressHook();\n hook.memoizedState = hook.baseState = passthrough;\n var queue = {\n pending: null,\n lanes: 0,\n dispatch: null,\n lastRenderedReducer: null,\n lastRenderedState: null\n };\n hook.queue = queue;\n hook = dispatchOptimisticSetState.bind(\n null,\n currentlyRenderingFiber,\n !0,\n queue\n );\n queue.dispatch = hook;\n return [passthrough, hook];\n }\n function updateOptimistic(passthrough, reducer) {\n var hook = updateWorkInProgressHook();\n return updateOptimisticImpl(hook, currentHook, passthrough, reducer);\n }\n function updateOptimisticImpl(hook, current, passthrough, reducer) {\n hook.baseState = passthrough;\n return updateReducerImpl(\n hook,\n currentHook,\n \"function\" === typeof reducer ? reducer : basicStateReducer\n );\n }\n function rerenderOptimistic(passthrough, reducer) {\n var hook = updateWorkInProgressHook();\n if (null !== currentHook)\n return updateOptimisticImpl(hook, currentHook, passthrough, reducer);\n hook.baseState = passthrough;\n return [passthrough, hook.queue.dispatch];\n }\n function dispatchActionState(\n fiber,\n actionQueue,\n setPendingState,\n setState,\n payload\n ) {\n if (isRenderPhaseUpdate(fiber))\n throw Error(\"Cannot update form state while rendering.\");\n fiber = actionQueue.action;\n if (null !== fiber) {\n var actionNode = {\n payload: payload,\n action: fiber,\n next: null,\n isTransition: !0,\n status: \"pending\",\n value: null,\n reason: null,\n listeners: [],\n then: function (listener) {\n actionNode.listeners.push(listener);\n }\n };\n null !== ReactSharedInternals.T\n ? setPendingState(!0)\n : (actionNode.isTransition = !1);\n setState(actionNode);\n setPendingState = actionQueue.pending;\n null === setPendingState\n ? ((actionNode.next = actionQueue.pending = actionNode),\n runActionStateAction(actionQueue, actionNode))\n : ((actionNode.next = setPendingState.next),\n (actionQueue.pending = setPendingState.next = actionNode));\n }\n }\n function runActionStateAction(actionQueue, node) {\n var action = node.action,\n payload = node.payload,\n prevState = actionQueue.state;\n if (node.isTransition) {\n var prevTransition = ReactSharedInternals.T,\n currentTransition = {};\n ReactSharedInternals.T = currentTransition;\n ReactSharedInternals.T._updatedFibers = new Set();\n try {\n var returnValue = action(prevState, payload),\n onStartTransitionFinish = ReactSharedInternals.S;\n null !== onStartTransitionFinish &&\n onStartTransitionFinish(currentTransition, returnValue);\n handleActionReturnValue(actionQueue, node, returnValue);\n } catch (error) {\n onActionError(actionQueue, node, error);\n } finally {\n (ReactSharedInternals.T = prevTransition),\n null === prevTransition &&\n currentTransition._updatedFibers &&\n ((actionQueue = currentTransition._updatedFibers.size),\n currentTransition._updatedFibers.clear(),\n 10 < actionQueue &&\n console.warn(\n \"Detected a large number of updates inside startTransition. If this is due to a subscription please re-write it to use React provided hooks. Otherwise concurrent mode guarantees are off the table.\"\n ));\n }\n } else\n try {\n (currentTransition = action(prevState, payload)),\n handleActionReturnValue(actionQueue, node, currentTransition);\n } catch (error$4) {\n onActionError(actionQueue, node, error$4);\n }\n }\n function handleActionReturnValue(actionQueue, node, returnValue) {\n null !== returnValue &&\n \"object\" === typeof returnValue &&\n \"function\" === typeof returnValue.then\n ? (returnValue.then(\n function (nextState) {\n onActionSuccess(actionQueue, node, nextState);\n },\n function (error) {\n return onActionError(actionQueue, node, error);\n }\n ),\n node.isTransition ||\n console.error(\n \"An async function with useActionState was called outside of a transition. This is likely not what you intended (for example, isPending will not update correctly). Either call the returned function inside startTransition, or pass it to an `action` or `formAction` prop.\"\n ))\n : onActionSuccess(actionQueue, node, returnValue);\n }\n function onActionSuccess(actionQueue, actionNode, nextState) {\n actionNode.status = \"fulfilled\";\n actionNode.value = nextState;\n notifyActionListeners(actionNode);\n actionQueue.state = nextState;\n actionNode = actionQueue.pending;\n null !== actionNode &&\n ((nextState = actionNode.next),\n nextState === actionNode\n ? (actionQueue.pending = null)\n : ((nextState = nextState.next),\n (actionNode.next = nextState),\n runActionStateAction(actionQueue, nextState)));\n }\n function onActionError(actionQueue, actionNode, error) {\n var last = actionQueue.pending;\n actionQueue.pending = null;\n if (null !== last) {\n last = last.next;\n do\n (actionNode.status = \"rejected\"),\n (actionNode.reason = error),\n notifyActionListeners(actionNode),\n (actionNode = actionNode.next);\n while (actionNode !== last);\n }\n actionQueue.action = null;\n }\n function notifyActionListeners(actionNode) {\n actionNode = actionNode.listeners;\n for (var i = 0; i < actionNode.length; i++) (0, actionNode[i])();\n }\n function actionStateReducer(oldState, newState) {\n return newState;\n }\n function mountActionState(action, initialStateProp) {\n if (isHydrating) {\n var ssrFormState = workInProgressRoot.formState;\n if (null !== ssrFormState) {\n a: {\n var isMatching = currentlyRenderingFiber;\n if (isHydrating) {\n if (nextHydratableInstance) {\n b: {\n var markerInstance = nextHydratableInstance;\n for (\n var inRootOrSingleton = rootOrSingletonContext;\n 8 !== markerInstance.nodeType;\n\n ) {\n if (!inRootOrSingleton) {\n markerInstance = null;\n break b;\n }\n markerInstance = getNextHydratable(\n markerInstance.nextSibling\n );\n if (null === markerInstance) {\n markerInstance = null;\n break b;\n }\n }\n inRootOrSingleton = markerInstance.data;\n markerInstance =\n inRootOrSingleton === FORM_STATE_IS_MATCHING ||\n inRootOrSingleton === FORM_STATE_IS_NOT_MATCHING\n ? markerInstance\n : null;\n }\n if (markerInstance) {\n nextHydratableInstance = getNextHydratable(\n markerInstance.nextSibling\n );\n isMatching = markerInstance.data === FORM_STATE_IS_MATCHING;\n break a;\n }\n }\n throwOnHydrationMismatch(isMatching);\n }\n isMatching = !1;\n }\n isMatching && (initialStateProp = ssrFormState[0]);\n }\n }\n ssrFormState = mountWorkInProgressHook();\n ssrFormState.memoizedState = ssrFormState.baseState = initialStateProp;\n isMatching = {\n pending: null,\n lanes: 0,\n dispatch: null,\n lastRenderedReducer: actionStateReducer,\n lastRenderedState: initialStateProp\n };\n ssrFormState.queue = isMatching;\n ssrFormState = dispatchSetState.bind(\n null,\n currentlyRenderingFiber,\n isMatching\n );\n isMatching.dispatch = ssrFormState;\n isMatching = mountStateImpl(!1);\n inRootOrSingleton = dispatchOptimisticSetState.bind(\n null,\n currentlyRenderingFiber,\n !1,\n isMatching.queue\n );\n isMatching = mountWorkInProgressHook();\n markerInstance = {\n state: initialStateProp,\n dispatch: null,\n action: action,\n pending: null\n };\n isMatching.queue = markerInstance;\n ssrFormState = dispatchActionState.bind(\n null,\n currentlyRenderingFiber,\n markerInstance,\n inRootOrSingleton,\n ssrFormState\n );\n markerInstance.dispatch = ssrFormState;\n isMatching.memoizedState = action;\n return [initialStateProp, ssrFormState, !1];\n }\n function updateActionState(action) {\n var stateHook = updateWorkInProgressHook();\n return updateActionStateImpl(stateHook, currentHook, action);\n }\n function updateActionStateImpl(stateHook, currentStateHook, action) {\n currentStateHook = updateReducerImpl(\n stateHook,\n currentStateHook,\n actionStateReducer\n )[0];\n stateHook = updateReducer(basicStateReducer)[0];\n if (\n \"object\" === typeof currentStateHook &&\n null !== currentStateHook &&\n \"function\" === typeof currentStateHook.then\n )\n try {\n var state = useThenable(currentStateHook);\n } catch (x) {\n if (x === SuspenseException) throw SuspenseActionException;\n throw x;\n }\n else state = currentStateHook;\n currentStateHook = updateWorkInProgressHook();\n var actionQueue = currentStateHook.queue,\n dispatch = actionQueue.dispatch;\n action !== currentStateHook.memoizedState &&\n ((currentlyRenderingFiber.flags |= 2048),\n pushSimpleEffect(\n HasEffect | Passive,\n createEffectInstance(),\n actionStateActionEffect.bind(null, actionQueue, action),\n null\n ));\n return [state, dispatch, stateHook];\n }\n function actionStateActionEffect(actionQueue, action) {\n actionQueue.action = action;\n }\n function rerenderActionState(action) {\n var stateHook = updateWorkInProgressHook(),\n currentStateHook = currentHook;\n if (null !== currentStateHook)\n return updateActionStateImpl(stateHook, currentStateHook, action);\n updateWorkInProgressHook();\n stateHook = stateHook.memoizedState;\n currentStateHook = updateWorkInProgressHook();\n var dispatch = currentStateHook.queue.dispatch;\n currentStateHook.memoizedState = action;\n return [stateHook, dispatch, !1];\n }\n function pushSimpleEffect(tag, inst, create, createDeps) {\n tag = {\n tag: tag,\n create: create,\n deps: createDeps,\n inst: inst,\n next: null\n };\n inst = currentlyRenderingFiber.updateQueue;\n null === inst &&\n ((inst = createFunctionComponentUpdateQueue()),\n (currentlyRenderingFiber.updateQueue = inst));\n create = inst.lastEffect;\n null === create\n ? (inst.lastEffect = tag.next = tag)\n : ((createDeps = create.next),\n (create.next = tag),\n (tag.next = createDeps),\n (inst.lastEffect = tag));\n return tag;\n }\n function createEffectInstance() {\n return { destroy: void 0, resource: void 0 };\n }\n function mountRef(initialValue) {\n var hook = mountWorkInProgressHook();\n initialValue = { current: initialValue };\n return (hook.memoizedState = initialValue);\n }\n function mountEffectImpl(fiberFlags, hookFlags, create, createDeps) {\n var hook = mountWorkInProgressHook();\n createDeps = void 0 === createDeps ? null : createDeps;\n currentlyRenderingFiber.flags |= fiberFlags;\n hook.memoizedState = pushSimpleEffect(\n HasEffect | hookFlags,\n createEffectInstance(),\n create,\n createDeps\n );\n }\n function updateEffectImpl(fiberFlags, hookFlags, create, deps) {\n var hook = updateWorkInProgressHook();\n deps = void 0 === deps ? null : deps;\n var inst = hook.memoizedState.inst;\n null !== currentHook &&\n null !== deps &&\n areHookInputsEqual(deps, currentHook.memoizedState.deps)\n ? (hook.memoizedState = pushSimpleEffect(hookFlags, inst, create, deps))\n : ((currentlyRenderingFiber.flags |= fiberFlags),\n (hook.memoizedState = pushSimpleEffect(\n HasEffect | hookFlags,\n inst,\n create,\n deps\n )));\n }\n function mountEffect(create, createDeps) {\n (currentlyRenderingFiber.mode & StrictEffectsMode) !== NoMode &&\n (currentlyRenderingFiber.mode & NoStrictPassiveEffectsMode) === NoMode\n ? mountEffectImpl(276826112, Passive, create, createDeps)\n : mountEffectImpl(8390656, Passive, create, createDeps);\n }\n function mountLayoutEffect(create, deps) {\n var fiberFlags = 4194308;\n (currentlyRenderingFiber.mode & StrictEffectsMode) !== NoMode &&\n (fiberFlags |= 134217728);\n return mountEffectImpl(fiberFlags, Layout, create, deps);\n }\n function imperativeHandleEffect(create, ref) {\n if (\"function\" === typeof ref) {\n create = create();\n var refCleanup = ref(create);\n return function () {\n \"function\" === typeof refCleanup ? refCleanup() : ref(null);\n };\n }\n if (null !== ref && void 0 !== ref)\n return (\n ref.hasOwnProperty(\"current\") ||\n console.error(\n \"Expected useImperativeHandle() first argument to either be a ref callback or React.createRef() object. Instead received: %s.\",\n \"an object with keys {\" + Object.keys(ref).join(\", \") + \"}\"\n ),\n (create = create()),\n (ref.current = create),\n function () {\n ref.current = null;\n }\n );\n }\n function mountImperativeHandle(ref, create, deps) {\n \"function\" !== typeof create &&\n console.error(\n \"Expected useImperativeHandle() second argument to be a function that creates a handle. Instead received: %s.\",\n null !== create ? typeof create : \"null\"\n );\n deps = null !== deps && void 0 !== deps ? deps.concat([ref]) : null;\n var fiberFlags = 4194308;\n (currentlyRenderingFiber.mode & StrictEffectsMode) !== NoMode &&\n (fiberFlags |= 134217728);\n mountEffectImpl(\n fiberFlags,\n Layout,\n imperativeHandleEffect.bind(null, create, ref),\n deps\n );\n }\n function updateImperativeHandle(ref, create, deps) {\n \"function\" !== typeof create &&\n console.error(\n \"Expected useImperativeHandle() second argument to be a function that creates a handle. Instead received: %s.\",\n null !== create ? typeof create : \"null\"\n );\n deps = null !== deps && void 0 !== deps ? deps.concat([ref]) : null;\n updateEffectImpl(\n 4,\n Layout,\n imperativeHandleEffect.bind(null, create, ref),\n deps\n );\n }\n function mountCallback(callback, deps) {\n mountWorkInProgressHook().memoizedState = [\n callback,\n void 0 === deps ? null : deps\n ];\n return callback;\n }\n function updateCallback(callback, deps) {\n var hook = updateWorkInProgressHook();\n deps = void 0 === deps ? null : deps;\n var prevState = hook.memoizedState;\n if (null !== deps && areHookInputsEqual(deps, prevState[1]))\n return prevState[0];\n hook.memoizedState = [callback, deps];\n return callback;\n }\n function mountMemo(nextCreate, deps) {\n var hook = mountWorkInProgressHook();\n deps = void 0 === deps ? null : deps;\n var nextValue = nextCreate();\n if (shouldDoubleInvokeUserFnsInHooksDEV) {\n setIsStrictModeForDevtools(!0);\n try {\n nextCreate();\n } finally {\n setIsStrictModeForDevtools(!1);\n }\n }\n hook.memoizedState = [nextValue, deps];\n return nextValue;\n }\n function updateMemo(nextCreate, deps) {\n var hook = updateWorkInProgressHook();\n deps = void 0 === deps ? null : deps;\n var prevState = hook.memoizedState;\n if (null !== deps && areHookInputsEqual(deps, prevState[1]))\n return prevState[0];\n prevState = nextCreate();\n if (shouldDoubleInvokeUserFnsInHooksDEV) {\n setIsStrictModeForDevtools(!0);\n try {\n nextCreate();\n } finally {\n setIsStrictModeForDevtools(!1);\n }\n }\n hook.memoizedState = [prevState, deps];\n return prevState;\n }\n function mountDeferredValue(value, initialValue) {\n var hook = mountWorkInProgressHook();\n return mountDeferredValueImpl(hook, value, initialValue);\n }\n function updateDeferredValue(value, initialValue) {\n var hook = updateWorkInProgressHook();\n return updateDeferredValueImpl(\n hook,\n currentHook.memoizedState,\n value,\n initialValue\n );\n }\n function rerenderDeferredValue(value, initialValue) {\n var hook = updateWorkInProgressHook();\n return null === currentHook\n ? mountDeferredValueImpl(hook, value, initialValue)\n : updateDeferredValueImpl(\n hook,\n currentHook.memoizedState,\n value,\n initialValue\n );\n }\n function mountDeferredValueImpl(hook, value, initialValue) {\n if (void 0 === initialValue || 0 !== (renderLanes & 1073741824))\n return (hook.memoizedState = value);\n hook.memoizedState = initialValue;\n hook = requestDeferredLane();\n currentlyRenderingFiber.lanes |= hook;\n workInProgressRootSkippedLanes |= hook;\n return initialValue;\n }\n function updateDeferredValueImpl(hook, prevValue, value, initialValue) {\n if (objectIs(value, prevValue)) return value;\n if (null !== currentTreeHiddenStackCursor.current)\n return (\n (hook = mountDeferredValueImpl(hook, value, initialValue)),\n objectIs(hook, prevValue) || (didReceiveUpdate = !0),\n hook\n );\n if (0 === (renderLanes & 42))\n return (didReceiveUpdate = !0), (hook.memoizedState = value);\n hook = requestDeferredLane();\n currentlyRenderingFiber.lanes |= hook;\n workInProgressRootSkippedLanes |= hook;\n return prevValue;\n }\n function startTransition(\n fiber,\n queue,\n pendingState,\n finishedState,\n callback\n ) {\n var previousPriority = ReactDOMSharedInternals.p;\n ReactDOMSharedInternals.p =\n 0 !== previousPriority && previousPriority < ContinuousEventPriority\n ? previousPriority\n : ContinuousEventPriority;\n var prevTransition = ReactSharedInternals.T,\n currentTransition = {};\n ReactSharedInternals.T = currentTransition;\n dispatchOptimisticSetState(fiber, !1, queue, pendingState);\n currentTransition._updatedFibers = new Set();\n try {\n var returnValue = callback(),\n onStartTransitionFinish = ReactSharedInternals.S;\n null !== onStartTransitionFinish &&\n onStartTransitionFinish(currentTransition, returnValue);\n if (\n null !== returnValue &&\n \"object\" === typeof returnValue &&\n \"function\" === typeof returnValue.then\n ) {\n var thenableForFinishedState = chainThenableValue(\n returnValue,\n finishedState\n );\n dispatchSetStateInternal(\n fiber,\n queue,\n thenableForFinishedState,\n requestUpdateLane(fiber)\n );\n } else\n dispatchSetStateInternal(\n fiber,\n queue,\n finishedState,\n requestUpdateLane(fiber)\n );\n } catch (error) {\n dispatchSetStateInternal(\n fiber,\n queue,\n { then: function () {}, status: \"rejected\", reason: error },\n requestUpdateLane(fiber)\n );\n } finally {\n (ReactDOMSharedInternals.p = previousPriority),\n (ReactSharedInternals.T = prevTransition),\n null === prevTransition &&\n currentTransition._updatedFibers &&\n ((fiber = currentTransition._updatedFibers.size),\n currentTransition._updatedFibers.clear(),\n 10 < fiber &&\n console.warn(\n \"Detected a large number of updates inside startTransition. If this is due to a subscription please re-write it to use React provided hooks. Otherwise concurrent mode guarantees are off the table.\"\n ));\n }\n }\n function startHostTransition(formFiber, pendingState, action, formData) {\n if (5 !== formFiber.tag)\n throw Error(\n \"Expected the form instance to be a HostComponent. This is a bug in React.\"\n );\n var queue = ensureFormComponentIsStateful(formFiber).queue;\n startTransition(\n formFiber,\n queue,\n pendingState,\n NotPendingTransition,\n null === action\n ? noop$2\n : function () {\n requestFormReset$1(formFiber);\n return action(formData);\n }\n );\n }\n function ensureFormComponentIsStateful(formFiber) {\n var existingStateHook = formFiber.memoizedState;\n if (null !== existingStateHook) return existingStateHook;\n existingStateHook = {\n memoizedState: NotPendingTransition,\n baseState: NotPendingTransition,\n baseQueue: null,\n queue: {\n pending: null,\n lanes: 0,\n dispatch: null,\n lastRenderedReducer: basicStateReducer,\n lastRenderedState: NotPendingTransition\n },\n next: null\n };\n var initialResetState = {};\n existingStateHook.next = {\n memoizedState: initialResetState,\n baseState: initialResetState,\n baseQueue: null,\n queue: {\n pending: null,\n lanes: 0,\n dispatch: null,\n lastRenderedReducer: basicStateReducer,\n lastRenderedState: initialResetState\n },\n next: null\n };\n formFiber.memoizedState = existingStateHook;\n formFiber = formFiber.alternate;\n null !== formFiber && (formFiber.memoizedState = existingStateHook);\n return existingStateHook;\n }\n function requestFormReset$1(formFiber) {\n null === ReactSharedInternals.T &&\n console.error(\n \"requestFormReset was called outside a transition or action. To fix, move to an action, or wrap with startTransition.\"\n );\n var resetStateQueue = ensureFormComponentIsStateful(formFiber).next.queue;\n dispatchSetStateInternal(\n formFiber,\n resetStateQueue,\n {},\n requestUpdateLane(formFiber)\n );\n }\n function mountTransition() {\n var stateHook = mountStateImpl(!1);\n stateHook = startTransition.bind(\n null,\n currentlyRenderingFiber,\n stateHook.queue,\n !0,\n !1\n );\n mountWorkInProgressHook().memoizedState = stateHook;\n return [!1, stateHook];\n }\n function updateTransition() {\n var booleanOrThenable = updateReducer(basicStateReducer)[0],\n start = updateWorkInProgressHook().memoizedState;\n return [\n \"boolean\" === typeof booleanOrThenable\n ? booleanOrThenable\n : useThenable(booleanOrThenable),\n start\n ];\n }\n function rerenderTransition() {\n var booleanOrThenable = rerenderReducer(basicStateReducer)[0],\n start = updateWorkInProgressHook().memoizedState;\n return [\n \"boolean\" === typeof booleanOrThenable\n ? booleanOrThenable\n : useThenable(booleanOrThenable),\n start\n ];\n }\n function useHostTransitionStatus() {\n return readContext(HostTransitionContext);\n }\n function mountId() {\n var hook = mountWorkInProgressHook(),\n identifierPrefix = workInProgressRoot.identifierPrefix;\n if (isHydrating) {\n var treeId = treeContextOverflow;\n var idWithLeadingBit = treeContextId;\n treeId =\n (\n idWithLeadingBit & ~(1 << (32 - clz32(idWithLeadingBit) - 1))\n ).toString(32) + treeId;\n identifierPrefix = \"\\u00ab\" + identifierPrefix + \"R\" + treeId;\n treeId = localIdCounter++;\n 0 < treeId && (identifierPrefix += \"H\" + treeId.toString(32));\n identifierPrefix += \"\\u00bb\";\n } else\n (treeId = globalClientIdCounter++),\n (identifierPrefix =\n \"\\u00ab\" + identifierPrefix + \"r\" + treeId.toString(32) + \"\\u00bb\");\n return (hook.memoizedState = identifierPrefix);\n }\n function mountRefresh() {\n return (mountWorkInProgressHook().memoizedState = refreshCache.bind(\n null,\n currentlyRenderingFiber\n ));\n }\n function refreshCache(fiber, seedKey) {\n for (var provider = fiber.return; null !== provider; ) {\n switch (provider.tag) {\n case 24:\n case 3:\n var lane = requestUpdateLane(provider);\n fiber = createUpdate(lane);\n var root = enqueueUpdate(provider, fiber, lane);\n null !== root &&\n (scheduleUpdateOnFiber(root, provider, lane),\n entangleTransitions(root, provider, lane));\n provider = createCache();\n null !== seedKey &&\n void 0 !== seedKey &&\n null !== root &&\n console.error(\n \"The seed argument is not enabled outside experimental channels.\"\n );\n fiber.payload = { cache: provider };\n return;\n }\n provider = provider.return;\n }\n }\n function dispatchReducerAction(fiber, queue, action) {\n var args = arguments;\n \"function\" === typeof args[3] &&\n console.error(\n \"State updates from the useState() and useReducer() Hooks don't support the second callback argument. To execute a side effect after rendering, declare it in the component body with useEffect().\"\n );\n args = requestUpdateLane(fiber);\n var update = {\n lane: args,\n revertLane: 0,\n action: action,\n hasEagerState: !1,\n eagerState: null,\n next: null\n };\n isRenderPhaseUpdate(fiber)\n ? enqueueRenderPhaseUpdate(queue, update)\n : ((update = enqueueConcurrentHookUpdate(fiber, queue, update, args)),\n null !== update &&\n (scheduleUpdateOnFiber(update, fiber, args),\n entangleTransitionUpdate(update, queue, args)));\n markStateUpdateScheduled(fiber, args);\n }\n function dispatchSetState(fiber, queue, action) {\n var args = arguments;\n \"function\" === typeof args[3] &&\n console.error(\n \"State updates from the useState() and useReducer() Hooks don't support the second callback argument. To execute a side effect after rendering, declare it in the component body with useEffect().\"\n );\n args = requestUpdateLane(fiber);\n dispatchSetStateInternal(fiber, queue, action, args);\n markStateUpdateScheduled(fiber, args);\n }\n function dispatchSetStateInternal(fiber, queue, action, lane) {\n var update = {\n lane: lane,\n revertLane: 0,\n action: action,\n hasEagerState: !1,\n eagerState: null,\n next: null\n };\n if (isRenderPhaseUpdate(fiber)) enqueueRenderPhaseUpdate(queue, update);\n else {\n var alternate = fiber.alternate;\n if (\n 0 === fiber.lanes &&\n (null === alternate || 0 === alternate.lanes) &&\n ((alternate = queue.lastRenderedReducer), null !== alternate)\n ) {\n var prevDispatcher = ReactSharedInternals.H;\n ReactSharedInternals.H = InvalidNestedHooksDispatcherOnUpdateInDEV;\n try {\n var currentState = queue.lastRenderedState,\n eagerState = alternate(currentState, action);\n update.hasEagerState = !0;\n update.eagerState = eagerState;\n if (objectIs(eagerState, currentState))\n return (\n enqueueUpdate$1(fiber, queue, update, 0),\n null === workInProgressRoot &&\n finishQueueingConcurrentUpdates(),\n !1\n );\n } catch (error) {\n } finally {\n ReactSharedInternals.H = prevDispatcher;\n }\n }\n action = enqueueConcurrentHookUpdate(fiber, queue, update, lane);\n if (null !== action)\n return (\n scheduleUpdateOnFiber(action, fiber, lane),\n entangleTransitionUpdate(action, queue, lane),\n !0\n );\n }\n return !1;\n }\n function dispatchOptimisticSetState(\n fiber,\n throwIfDuringRender,\n queue,\n action\n ) {\n null === ReactSharedInternals.T &&\n 0 === currentEntangledLane &&\n console.error(\n \"An optimistic state update occurred outside a transition or action. To fix, move the update to an action, or wrap with startTransition.\"\n );\n action = {\n lane: 2,\n revertLane: requestTransitionLane(),\n action: action,\n hasEagerState: !1,\n eagerState: null,\n next: null\n };\n if (isRenderPhaseUpdate(fiber)) {\n if (throwIfDuringRender)\n throw Error(\"Cannot update optimistic state while rendering.\");\n console.error(\"Cannot call startTransition while rendering.\");\n } else\n (throwIfDuringRender = enqueueConcurrentHookUpdate(\n fiber,\n queue,\n action,\n 2\n )),\n null !== throwIfDuringRender &&\n scheduleUpdateOnFiber(throwIfDuringRender, fiber, 2);\n markStateUpdateScheduled(fiber, 2);\n }\n function isRenderPhaseUpdate(fiber) {\n var alternate = fiber.alternate;\n return (\n fiber === currentlyRenderingFiber ||\n (null !== alternate && alternate === currentlyRenderingFiber)\n );\n }\n function enqueueRenderPhaseUpdate(queue, update) {\n didScheduleRenderPhaseUpdateDuringThisPass =\n didScheduleRenderPhaseUpdate = !0;\n var pending = queue.pending;\n null === pending\n ? (update.next = update)\n : ((update.next = pending.next), (pending.next = update));\n queue.pending = update;\n }\n function entangleTransitionUpdate(root, queue, lane) {\n if (0 !== (lane & 4194048)) {\n var queueLanes = queue.lanes;\n queueLanes &= root.pendingLanes;\n lane |= queueLanes;\n queue.lanes = lane;\n markRootEntangled(root, lane);\n }\n }\n function pushDebugInfo(debugInfo) {\n var previousDebugInfo = currentDebugInfo;\n null != debugInfo &&\n (currentDebugInfo =\n null === previousDebugInfo\n ? debugInfo\n : previousDebugInfo.concat(debugInfo));\n return previousDebugInfo;\n }\n function validateFragmentProps(element, fiber, returnFiber) {\n for (var keys = Object.keys(element.props), i = 0; i < keys.length; i++) {\n var key = keys[i];\n if (\"children\" !== key && \"key\" !== key) {\n null === fiber &&\n ((fiber = createFiberFromElement(element, returnFiber.mode, 0)),\n (fiber._debugInfo = currentDebugInfo),\n (fiber.return = returnFiber));\n runWithFiberInDEV(\n fiber,\n function (erroredKey) {\n console.error(\n \"Invalid prop `%s` supplied to `React.Fragment`. React.Fragment can only have `key` and `children` props.\",\n erroredKey\n );\n },\n key\n );\n break;\n }\n }\n }\n function unwrapThenable(thenable) {\n var index = thenableIndexCounter;\n thenableIndexCounter += 1;\n null === thenableState && (thenableState = createThenableState());\n return trackUsedThenable(thenableState, thenable, index);\n }\n function coerceRef(workInProgress, element) {\n element = element.props.ref;\n workInProgress.ref = void 0 !== element ? element : null;\n }\n function throwOnInvalidObjectType(returnFiber, newChild) {\n if (newChild.$$typeof === REACT_LEGACY_ELEMENT_TYPE)\n throw Error(\n 'A React Element from an older version of React was rendered. This is not supported. It can happen if:\\n- Multiple copies of the \"react\" package is used.\\n- A library pre-bundled an old copy of \"react\" or \"react/jsx-runtime\".\\n- A compiler tries to \"inline\" JSX instead of using the runtime.'\n );\n returnFiber = Object.prototype.toString.call(newChild);\n throw Error(\n \"Objects are not valid as a React child (found: \" +\n (\"[object Object]\" === returnFiber\n ? \"object with keys {\" + Object.keys(newChild).join(\", \") + \"}\"\n : returnFiber) +\n \"). If you meant to render a collection of children, use an array instead.\"\n );\n }\n function warnOnFunctionType(returnFiber, invalidChild) {\n var parentName = getComponentNameFromFiber(returnFiber) || \"Component\";\n ownerHasFunctionTypeWarning[parentName] ||\n ((ownerHasFunctionTypeWarning[parentName] = !0),\n (invalidChild =\n invalidChild.displayName || invalidChild.name || \"Component\"),\n 3 === returnFiber.tag\n ? console.error(\n \"Functions are not valid as a React child. This may happen if you return %s instead of <%s /> from render. Or maybe you meant to call this function rather than return it.\\n root.render(%s)\",\n invalidChild,\n invalidChild,\n invalidChild\n )\n : console.error(\n \"Functions are not valid as a React child. This may happen if you return %s instead of <%s /> from render. Or maybe you meant to call this function rather than return it.\\n <%s>{%s}</%s>\",\n invalidChild,\n invalidChild,\n parentName,\n invalidChild,\n parentName\n ));\n }\n function warnOnSymbolType(returnFiber, invalidChild) {\n var parentName = getComponentNameFromFiber(returnFiber) || \"Component\";\n ownerHasSymbolTypeWarning[parentName] ||\n ((ownerHasSymbolTypeWarning[parentName] = !0),\n (invalidChild = String(invalidChild)),\n 3 === returnFiber.tag\n ? console.error(\n \"Symbols are not valid as a React child.\\n root.render(%s)\",\n invalidChild\n )\n : console.error(\n \"Symbols are not valid as a React child.\\n <%s>%s</%s>\",\n parentName,\n invalidChild,\n parentName\n ));\n }\n function createChildReconciler(shouldTrackSideEffects) {\n function deleteChild(returnFiber, childToDelete) {\n if (shouldTrackSideEffects) {\n var deletions = returnFiber.deletions;\n null === deletions\n ? ((returnFiber.deletions = [childToDelete]),\n (returnFiber.flags |= 16))\n : deletions.push(childToDelete);\n }\n }\n function deleteRemainingChildren(returnFiber, currentFirstChild) {\n if (!shouldTrackSideEffects) return null;\n for (; null !== currentFirstChild; )\n deleteChild(returnFiber, currentFirstChild),\n (currentFirstChild = currentFirstChild.sibling);\n return null;\n }\n function mapRemainingChildren(currentFirstChild) {\n for (var existingChildren = new Map(); null !== currentFirstChild; )\n null !== currentFirstChild.key\n ? existingChildren.set(currentFirstChild.key, currentFirstChild)\n : existingChildren.set(currentFirstChild.index, currentFirstChild),\n (currentFirstChild = currentFirstChild.sibling);\n return existingChildren;\n }\n function useFiber(fiber, pendingProps) {\n fiber = createWorkInProgress(fiber, pendingProps);\n fiber.index = 0;\n fiber.sibling = null;\n return fiber;\n }\n function placeChild(newFiber, lastPlacedIndex, newIndex) {\n newFiber.index = newIndex;\n if (!shouldTrackSideEffects)\n return (newFiber.flags |= 1048576), lastPlacedIndex;\n newIndex = newFiber.alternate;\n if (null !== newIndex)\n return (\n (newIndex = newIndex.index),\n newIndex < lastPlacedIndex\n ? ((newFiber.flags |= 67108866), lastPlacedIndex)\n : newIndex\n );\n newFiber.flags |= 67108866;\n return lastPlacedIndex;\n }\n function placeSingleChild(newFiber) {\n shouldTrackSideEffects &&\n null === newFiber.alternate &&\n (newFiber.flags |= 67108866);\n return newFiber;\n }\n function updateTextNode(returnFiber, current, textContent, lanes) {\n if (null === current || 6 !== current.tag)\n return (\n (current = createFiberFromText(\n textContent,\n returnFiber.mode,\n lanes\n )),\n (current.return = returnFiber),\n (current._debugOwner = returnFiber),\n (current._debugTask = returnFiber._debugTask),\n (current._debugInfo = currentDebugInfo),\n current\n );\n current = useFiber(current, textContent);\n current.return = returnFiber;\n current._debugInfo = currentDebugInfo;\n return current;\n }\n function updateElement(returnFiber, current, element, lanes) {\n var elementType = element.type;\n if (elementType === REACT_FRAGMENT_TYPE)\n return (\n (current = updateFragment(\n returnFiber,\n current,\n element.props.children,\n lanes,\n element.key\n )),\n validateFragmentProps(element, current, returnFiber),\n current\n );\n if (\n null !== current &&\n (current.elementType === elementType ||\n isCompatibleFamilyForHotReloading(current, element) ||\n (\"object\" === typeof elementType &&\n null !== elementType &&\n elementType.$$typeof === REACT_LAZY_TYPE &&\n callLazyInitInDEV(elementType) === current.type))\n )\n return (\n (current = useFiber(current, element.props)),\n coerceRef(current, element),\n (current.return = returnFiber),\n (current._debugOwner = element._owner),\n (current._debugInfo = currentDebugInfo),\n current\n );\n current = createFiberFromElement(element, returnFiber.mode, lanes);\n coerceRef(current, element);\n current.return = returnFiber;\n current._debugInfo = currentDebugInfo;\n return current;\n }\n function updatePortal(returnFiber, current, portal, lanes) {\n if (\n null === current ||\n 4 !== current.tag ||\n current.stateNode.containerInfo !== portal.containerInfo ||\n current.stateNode.implementation !== portal.implementation\n )\n return (\n (current = createFiberFromPortal(portal, returnFiber.mode, lanes)),\n (current.return = returnFiber),\n (current._debugInfo = currentDebugInfo),\n current\n );\n current = useFiber(current, portal.children || []);\n current.return = returnFiber;\n current._debugInfo = currentDebugInfo;\n return current;\n }\n function updateFragment(returnFiber, current, fragment, lanes, key) {\n if (null === current || 7 !== current.tag)\n return (\n (current = createFiberFromFragment(\n fragment,\n returnFiber.mode,\n lanes,\n key\n )),\n (current.return = returnFiber),\n (current._debugOwner = returnFiber),\n (current._debugTask = returnFiber._debugTask),\n (current._debugInfo = currentDebugInfo),\n current\n );\n current = useFiber(current, fragment);\n current.return = returnFiber;\n current._debugInfo = currentDebugInfo;\n return current;\n }\n function createChild(returnFiber, newChild, lanes) {\n if (\n (\"string\" === typeof newChild && \"\" !== newChild) ||\n \"number\" === typeof newChild ||\n \"bigint\" === typeof newChild\n )\n return (\n (newChild = createFiberFromText(\n \"\" + newChild,\n returnFiber.mode,\n lanes\n )),\n (newChild.return = returnFiber),\n (newChild._debugOwner = returnFiber),\n (newChild._debugTask = returnFiber._debugTask),\n (newChild._debugInfo = currentDebugInfo),\n newChild\n );\n if (\"object\" === typeof newChild && null !== newChild) {\n switch (newChild.$$typeof) {\n case REACT_ELEMENT_TYPE:\n return (\n (lanes = createFiberFromElement(\n newChild,\n returnFiber.mode,\n lanes\n )),\n coerceRef(lanes, newChild),\n (lanes.return = returnFiber),\n (returnFiber = pushDebugInfo(newChild._debugInfo)),\n (lanes._debugInfo = currentDebugInfo),\n (currentDebugInfo = returnFiber),\n lanes\n );\n case REACT_PORTAL_TYPE:\n return (\n (newChild = createFiberFromPortal(\n newChild,\n returnFiber.mode,\n lanes\n )),\n (newChild.return = returnFiber),\n (newChild._debugInfo = currentDebugInfo),\n newChild\n );\n case REACT_LAZY_TYPE:\n var _prevDebugInfo = pushDebugInfo(newChild._debugInfo);\n newChild = callLazyInitInDEV(newChild);\n returnFiber = createChild(returnFiber, newChild, lanes);\n currentDebugInfo = _prevDebugInfo;\n return returnFiber;\n }\n if (isArrayImpl(newChild) || getIteratorFn(newChild))\n return (\n (lanes = createFiberFromFragment(\n newChild,\n returnFiber.mode,\n lanes,\n null\n )),\n (lanes.return = returnFiber),\n (lanes._debugOwner = returnFiber),\n (lanes._debugTask = returnFiber._debugTask),\n (returnFiber = pushDebugInfo(newChild._debugInfo)),\n (lanes._debugInfo = currentDebugInfo),\n (currentDebugInfo = returnFiber),\n lanes\n );\n if (\"function\" === typeof newChild.then)\n return (\n (_prevDebugInfo = pushDebugInfo(newChild._debugInfo)),\n (returnFiber = createChild(\n returnFiber,\n unwrapThenable(newChild),\n lanes\n )),\n (currentDebugInfo = _prevDebugInfo),\n returnFiber\n );\n if (newChild.$$typeof === REACT_CONTEXT_TYPE)\n return createChild(\n returnFiber,\n readContextDuringReconciliation(returnFiber, newChild),\n lanes\n );\n throwOnInvalidObjectType(returnFiber, newChild);\n }\n \"function\" === typeof newChild &&\n warnOnFunctionType(returnFiber, newChild);\n \"symbol\" === typeof newChild && warnOnSymbolType(returnFiber, newChild);\n return null;\n }\n function updateSlot(returnFiber, oldFiber, newChild, lanes) {\n var key = null !== oldFiber ? oldFiber.key : null;\n if (\n (\"string\" === typeof newChild && \"\" !== newChild) ||\n \"number\" === typeof newChild ||\n \"bigint\" === typeof newChild\n )\n return null !== key\n ? null\n : updateTextNode(returnFiber, oldFiber, \"\" + newChild, lanes);\n if (\"object\" === typeof newChild && null !== newChild) {\n switch (newChild.$$typeof) {\n case REACT_ELEMENT_TYPE:\n return newChild.key === key\n ? ((key = pushDebugInfo(newChild._debugInfo)),\n (returnFiber = updateElement(\n returnFiber,\n oldFiber,\n newChild,\n lanes\n )),\n (currentDebugInfo = key),\n returnFiber)\n : null;\n case REACT_PORTAL_TYPE:\n return newChild.key === key\n ? updatePortal(returnFiber, oldFiber, newChild, lanes)\n : null;\n case REACT_LAZY_TYPE:\n return (\n (key = pushDebugInfo(newChild._debugInfo)),\n (newChild = callLazyInitInDEV(newChild)),\n (returnFiber = updateSlot(\n returnFiber,\n oldFiber,\n newChild,\n lanes\n )),\n (currentDebugInfo = key),\n returnFiber\n );\n }\n if (isArrayImpl(newChild) || getIteratorFn(newChild)) {\n if (null !== key) return null;\n key = pushDebugInfo(newChild._debugInfo);\n returnFiber = updateFragment(\n returnFiber,\n oldFiber,\n newChild,\n lanes,\n null\n );\n currentDebugInfo = key;\n return returnFiber;\n }\n if (\"function\" === typeof newChild.then)\n return (\n (key = pushDebugInfo(newChild._debugInfo)),\n (returnFiber = updateSlot(\n returnFiber,\n oldFiber,\n unwrapThenable(newChild),\n lanes\n )),\n (currentDebugInfo = key),\n returnFiber\n );\n if (newChild.$$typeof === REACT_CONTEXT_TYPE)\n return updateSlot(\n returnFiber,\n oldFiber,\n readContextDuringReconciliation(returnFiber, newChild),\n lanes\n );\n throwOnInvalidObjectType(returnFiber, newChild);\n }\n \"function\" === typeof newChild &&\n warnOnFunctionType(returnFiber, newChild);\n \"symbol\" === typeof newChild && warnOnSymbolType(returnFiber, newChild);\n return null;\n }\n function updateFromMap(\n existingChildren,\n returnFiber,\n newIdx,\n newChild,\n lanes\n ) {\n if (\n (\"string\" === typeof newChild && \"\" !== newChild) ||\n \"number\" === typeof newChild ||\n \"bigint\" === typeof newChild\n )\n return (\n (existingChildren = existingChildren.get(newIdx) || null),\n updateTextNode(returnFiber, existingChildren, \"\" + newChild, lanes)\n );\n if (\"object\" === typeof newChild && null !== newChild) {\n switch (newChild.$$typeof) {\n case REACT_ELEMENT_TYPE:\n return (\n (newIdx =\n existingChildren.get(\n null === newChild.key ? newIdx : newChild.key\n ) || null),\n (existingChildren = pushDebugInfo(newChild._debugInfo)),\n (returnFiber = updateElement(\n returnFiber,\n newIdx,\n newChild,\n lanes\n )),\n (currentDebugInfo = existingChildren),\n returnFiber\n );\n case REACT_PORTAL_TYPE:\n return (\n (existingChildren =\n existingChildren.get(\n null === newChild.key ? newIdx : newChild.key\n ) || null),\n updatePortal(returnFiber, existingChildren, newChild, lanes)\n );\n case REACT_LAZY_TYPE:\n var _prevDebugInfo7 = pushDebugInfo(newChild._debugInfo);\n newChild = callLazyInitInDEV(newChild);\n returnFiber = updateFromMap(\n existingChildren,\n returnFiber,\n newIdx,\n newChild,\n lanes\n );\n currentDebugInfo = _prevDebugInfo7;\n return returnFiber;\n }\n if (isArrayImpl(newChild) || getIteratorFn(newChild))\n return (\n (newIdx = existingChildren.get(newIdx) || null),\n (existingChildren = pushDebugInfo(newChild._debugInfo)),\n (returnFiber = updateFragment(\n returnFiber,\n newIdx,\n newChild,\n lanes,\n null\n )),\n (currentDebugInfo = existingChildren),\n returnFiber\n );\n if (\"function\" === typeof newChild.then)\n return (\n (_prevDebugInfo7 = pushDebugInfo(newChild._debugInfo)),\n (returnFiber = updateFromMap(\n existingChildren,\n returnFiber,\n newIdx,\n unwrapThenable(newChild),\n lanes\n )),\n (currentDebugInfo = _prevDebugInfo7),\n returnFiber\n );\n if (newChild.$$typeof === REACT_CONTEXT_TYPE)\n return updateFromMap(\n existingChildren,\n returnFiber,\n newIdx,\n readContextDuringReconciliation(returnFiber, newChild),\n lanes\n );\n throwOnInvalidObjectType(returnFiber, newChild);\n }\n \"function\" === typeof newChild &&\n warnOnFunctionType(returnFiber, newChild);\n \"symbol\" === typeof newChild && warnOnSymbolType(returnFiber, newChild);\n return null;\n }\n function warnOnInvalidKey(returnFiber, workInProgress, child, knownKeys) {\n if (\"object\" !== typeof child || null === child) return knownKeys;\n switch (child.$$typeof) {\n case REACT_ELEMENT_TYPE:\n case REACT_PORTAL_TYPE:\n warnForMissingKey(returnFiber, workInProgress, child);\n var key = child.key;\n if (\"string\" !== typeof key) break;\n if (null === knownKeys) {\n knownKeys = new Set();\n knownKeys.add(key);\n break;\n }\n if (!knownKeys.has(key)) {\n knownKeys.add(key);\n break;\n }\n runWithFiberInDEV(workInProgress, function () {\n console.error(\n \"Encountered two children with the same key, `%s`. Keys should be unique so that components maintain their identity across updates. Non-unique keys may cause children to be duplicated and/or omitted \\u2014 the behavior is unsupported and could change in a future version.\",\n key\n );\n });\n break;\n case REACT_LAZY_TYPE:\n (child = callLazyInitInDEV(child)),\n warnOnInvalidKey(returnFiber, workInProgress, child, knownKeys);\n }\n return knownKeys;\n }\n function reconcileChildrenArray(\n returnFiber,\n currentFirstChild,\n newChildren,\n lanes\n ) {\n for (\n var knownKeys = null,\n resultingFirstChild = null,\n previousNewFiber = null,\n oldFiber = currentFirstChild,\n newIdx = (currentFirstChild = 0),\n nextOldFiber = null;\n null !== oldFiber && newIdx < newChildren.length;\n newIdx++\n ) {\n oldFiber.index > newIdx\n ? ((nextOldFiber = oldFiber), (oldFiber = null))\n : (nextOldFiber = oldFiber.sibling);\n var newFiber = updateSlot(\n returnFiber,\n oldFiber,\n newChildren[newIdx],\n lanes\n );\n if (null === newFiber) {\n null === oldFiber && (oldFiber = nextOldFiber);\n break;\n }\n knownKeys = warnOnInvalidKey(\n returnFiber,\n newFiber,\n newChildren[newIdx],\n knownKeys\n );\n shouldTrackSideEffects &&\n oldFiber &&\n null === newFiber.alternate &&\n deleteChild(returnFiber, oldFiber);\n currentFirstChild = placeChild(newFiber, currentFirstChild, newIdx);\n null === previousNewFiber\n ? (resultingFirstChild = newFiber)\n : (previousNewFiber.sibling = newFiber);\n previousNewFiber = newFiber;\n oldFiber = nextOldFiber;\n }\n if (newIdx === newChildren.length)\n return (\n deleteRemainingChildren(returnFiber, oldFiber),\n isHydrating && pushTreeFork(returnFiber, newIdx),\n resultingFirstChild\n );\n if (null === oldFiber) {\n for (; newIdx < newChildren.length; newIdx++)\n (oldFiber = createChild(returnFiber, newChildren[newIdx], lanes)),\n null !== oldFiber &&\n ((knownKeys = warnOnInvalidKey(\n returnFiber,\n oldFiber,\n newChildren[newIdx],\n knownKeys\n )),\n (currentFirstChild = placeChild(\n oldFiber,\n currentFirstChild,\n newIdx\n )),\n null === previousNewFiber\n ? (resultingFirstChild = oldFiber)\n : (previousNewFiber.sibling = oldFiber),\n (previousNewFiber = oldFiber));\n isHydrating && pushTreeFork(returnFiber, newIdx);\n return resultingFirstChild;\n }\n for (\n oldFiber = mapRemainingChildren(oldFiber);\n newIdx < newChildren.length;\n newIdx++\n )\n (nextOldFiber = updateFromMap(\n oldFiber,\n returnFiber,\n newIdx,\n newChildren[newIdx],\n lanes\n )),\n null !== nextOldFiber &&\n ((knownKeys = warnOnInvalidKey(\n returnFiber,\n nextOldFiber,\n newChildren[newIdx],\n knownKeys\n )),\n shouldTrackSideEffects &&\n null !== nextOldFiber.alternate &&\n oldFiber.delete(\n null === nextOldFiber.key ? newIdx : nextOldFiber.key\n ),\n (currentFirstChild = placeChild(\n nextOldFiber,\n currentFirstChild,\n newIdx\n )),\n null === previousNewFiber\n ? (resultingFirstChild = nextOldFiber)\n : (previousNewFiber.sibling = nextOldFiber),\n (previousNewFiber = nextOldFiber));\n shouldTrackSideEffects &&\n oldFiber.forEach(function (child) {\n return deleteChild(returnFiber, child);\n });\n isHydrating && pushTreeFork(returnFiber, newIdx);\n return resultingFirstChild;\n }\n function reconcileChildrenIterator(\n returnFiber,\n currentFirstChild,\n newChildren,\n lanes\n ) {\n if (null == newChildren)\n throw Error(\"An iterable object provided no iterator.\");\n for (\n var resultingFirstChild = null,\n previousNewFiber = null,\n oldFiber = currentFirstChild,\n newIdx = (currentFirstChild = 0),\n nextOldFiber = null,\n knownKeys = null,\n step = newChildren.next();\n null !== oldFiber && !step.done;\n newIdx++, step = newChildren.next()\n ) {\n oldFiber.index > newIdx\n ? ((nextOldFiber = oldFiber), (oldFiber = null))\n : (nextOldFiber = oldFiber.sibling);\n var newFiber = updateSlot(returnFiber, oldFiber, step.value, lanes);\n if (null === newFiber) {\n null === oldFiber && (oldFiber = nextOldFiber);\n break;\n }\n knownKeys = warnOnInvalidKey(\n returnFiber,\n newFiber,\n step.value,\n knownKeys\n );\n shouldTrackSideEffects &&\n oldFiber &&\n null === newFiber.alternate &&\n deleteChild(returnFiber, oldFiber);\n currentFirstChild = placeChild(newFiber, currentFirstChild, newIdx);\n null === previousNewFiber\n ? (resultingFirstChild = newFiber)\n : (previousNewFiber.sibling = newFiber);\n previousNewFiber = newFiber;\n oldFiber = nextOldFiber;\n }\n if (step.done)\n return (\n deleteRemainingChildren(returnFiber, oldFiber),\n isHydrating && pushTreeFork(returnFiber, newIdx),\n resultingFirstChild\n );\n if (null === oldFiber) {\n for (; !step.done; newIdx++, step = newChildren.next())\n (oldFiber = createChild(returnFiber, step.value, lanes)),\n null !== oldFiber &&\n ((knownKeys = warnOnInvalidKey(\n returnFiber,\n oldFiber,\n step.value,\n knownKeys\n )),\n (currentFirstChild = placeChild(\n oldFiber,\n currentFirstChild,\n newIdx\n )),\n null === previousNewFiber\n ? (resultingFirstChild = oldFiber)\n : (previousNewFiber.sibling = oldFiber),\n (previousNewFiber = oldFiber));\n isHydrating && pushTreeFork(returnFiber, newIdx);\n return resultingFirstChild;\n }\n for (\n oldFiber = mapRemainingChildren(oldFiber);\n !step.done;\n newIdx++, step = newChildren.next()\n )\n (nextOldFiber = updateFromMap(\n oldFiber,\n returnFiber,\n newIdx,\n step.value,\n lanes\n )),\n null !== nextOldFiber &&\n ((knownKeys = warnOnInvalidKey(\n returnFiber,\n nextOldFiber,\n step.value,\n knownKeys\n )),\n shouldTrackSideEffects &&\n null !== nextOldFiber.alternate &&\n oldFiber.delete(\n null === nextOldFiber.key ? newIdx : nextOldFiber.key\n ),\n (currentFirstChild = placeChild(\n nextOldFiber,\n currentFirstChild,\n newIdx\n )),\n null === previousNewFiber\n ? (resultingFirstChild = nextOldFiber)\n : (previousNewFiber.sibling = nextOldFiber),\n (previousNewFiber = nextOldFiber));\n shouldTrackSideEffects &&\n oldFiber.forEach(function (child) {\n return deleteChild(returnFiber, child);\n });\n isHydrating && pushTreeFork(returnFiber, newIdx);\n return resultingFirstChild;\n }\n function reconcileChildFibersImpl(\n returnFiber,\n currentFirstChild,\n newChild,\n lanes\n ) {\n \"object\" === typeof newChild &&\n null !== newChild &&\n newChild.type === REACT_FRAGMENT_TYPE &&\n null === newChild.key &&\n (validateFragmentProps(newChild, null, returnFiber),\n (newChild = newChild.props.children));\n if (\"object\" === typeof newChild && null !== newChild) {\n switch (newChild.$$typeof) {\n case REACT_ELEMENT_TYPE:\n var prevDebugInfo = pushDebugInfo(newChild._debugInfo);\n a: {\n for (var key = newChild.key; null !== currentFirstChild; ) {\n if (currentFirstChild.key === key) {\n key = newChild.type;\n if (key === REACT_FRAGMENT_TYPE) {\n if (7 === currentFirstChild.tag) {\n deleteRemainingChildren(\n returnFiber,\n currentFirstChild.sibling\n );\n lanes = useFiber(\n currentFirstChild,\n newChild.props.children\n );\n lanes.return = returnFiber;\n lanes._debugOwner = newChild._owner;\n lanes._debugInfo = currentDebugInfo;\n validateFragmentProps(newChild, lanes, returnFiber);\n returnFiber = lanes;\n break a;\n }\n } else if (\n currentFirstChild.elementType === key ||\n isCompatibleFamilyForHotReloading(\n currentFirstChild,\n newChild\n ) ||\n (\"object\" === typeof key &&\n null !== key &&\n key.$$typeof === REACT_LAZY_TYPE &&\n callLazyInitInDEV(key) === currentFirstChild.type)\n ) {\n deleteRemainingChildren(\n returnFiber,\n currentFirstChild.sibling\n );\n lanes = useFiber(currentFirstChild, newChild.props);\n coerceRef(lanes, newChild);\n lanes.return = returnFiber;\n lanes._debugOwner = newChild._owner;\n lanes._debugInfo = currentDebugInfo;\n returnFiber = lanes;\n break a;\n }\n deleteRemainingChildren(returnFiber, currentFirstChild);\n break;\n } else deleteChild(returnFiber, currentFirstChild);\n currentFirstChild = currentFirstChild.sibling;\n }\n newChild.type === REACT_FRAGMENT_TYPE\n ? ((lanes = createFiberFromFragment(\n newChild.props.children,\n returnFiber.mode,\n lanes,\n newChild.key\n )),\n (lanes.return = returnFiber),\n (lanes._debugOwner = returnFiber),\n (lanes._debugTask = returnFiber._debugTask),\n (lanes._debugInfo = currentDebugInfo),\n validateFragmentProps(newChild, lanes, returnFiber),\n (returnFiber = lanes))\n : ((lanes = createFiberFromElement(\n newChild,\n returnFiber.mode,\n lanes\n )),\n coerceRef(lanes, newChild),\n (lanes.return = returnFiber),\n (lanes._debugInfo = currentDebugInfo),\n (returnFiber = lanes));\n }\n returnFiber = placeSingleChild(returnFiber);\n currentDebugInfo = prevDebugInfo;\n return returnFiber;\n case REACT_PORTAL_TYPE:\n a: {\n prevDebugInfo = newChild;\n for (\n newChild = prevDebugInfo.key;\n null !== currentFirstChild;\n\n ) {\n if (currentFirstChild.key === newChild)\n if (\n 4 === currentFirstChild.tag &&\n currentFirstChild.stateNode.containerInfo ===\n prevDebugInfo.containerInfo &&\n currentFirstChild.stateNode.implementation ===\n prevDebugInfo.implementation\n ) {\n deleteRemainingChildren(\n returnFiber,\n currentFirstChild.sibling\n );\n lanes = useFiber(\n currentFirstChild,\n prevDebugInfo.children || []\n );\n lanes.return = returnFiber;\n returnFiber = lanes;\n break a;\n } else {\n deleteRemainingChildren(returnFiber, currentFirstChild);\n break;\n }\n else deleteChild(returnFiber, currentFirstChild);\n currentFirstChild = currentFirstChild.sibling;\n }\n lanes = createFiberFromPortal(\n prevDebugInfo,\n returnFiber.mode,\n lanes\n );\n lanes.return = returnFiber;\n returnFiber = lanes;\n }\n return placeSingleChild(returnFiber);\n case REACT_LAZY_TYPE:\n return (\n (prevDebugInfo = pushDebugInfo(newChild._debugInfo)),\n (newChild = callLazyInitInDEV(newChild)),\n (returnFiber = reconcileChildFibersImpl(\n returnFiber,\n currentFirstChild,\n newChild,\n lanes\n )),\n (currentDebugInfo = prevDebugInfo),\n returnFiber\n );\n }\n if (isArrayImpl(newChild))\n return (\n (prevDebugInfo = pushDebugInfo(newChild._debugInfo)),\n (returnFiber = reconcileChildrenArray(\n returnFiber,\n currentFirstChild,\n newChild,\n lanes\n )),\n (currentDebugInfo = prevDebugInfo),\n returnFiber\n );\n if (getIteratorFn(newChild)) {\n prevDebugInfo = pushDebugInfo(newChild._debugInfo);\n key = getIteratorFn(newChild);\n if (\"function\" !== typeof key)\n throw Error(\n \"An object is not an iterable. This error is likely caused by a bug in React. Please file an issue.\"\n );\n var newChildren = key.call(newChild);\n if (newChildren === newChild) {\n if (\n 0 !== returnFiber.tag ||\n \"[object GeneratorFunction]\" !==\n Object.prototype.toString.call(returnFiber.type) ||\n \"[object Generator]\" !==\n Object.prototype.toString.call(newChildren)\n )\n didWarnAboutGenerators ||\n console.error(\n \"Using Iterators as children is unsupported and will likely yield unexpected results because enumerating a generator mutates it. You may convert it to an array with `Array.from()` or the `[...spread]` operator before rendering. You can also use an Iterable that can iterate multiple times over the same items.\"\n ),\n (didWarnAboutGenerators = !0);\n } else\n newChild.entries !== key ||\n didWarnAboutMaps ||\n (console.error(\n \"Using Maps as children is not supported. Use an array of keyed ReactElements instead.\"\n ),\n (didWarnAboutMaps = !0));\n returnFiber = reconcileChildrenIterator(\n returnFiber,\n currentFirstChild,\n newChildren,\n lanes\n );\n currentDebugInfo = prevDebugInfo;\n return returnFiber;\n }\n if (\"function\" === typeof newChild.then)\n return (\n (prevDebugInfo = pushDebugInfo(newChild._debugInfo)),\n (returnFiber = reconcileChildFibersImpl(\n returnFiber,\n currentFirstChild,\n unwrapThenable(newChild),\n lanes\n )),\n (currentDebugInfo = prevDebugInfo),\n returnFiber\n );\n if (newChild.$$typeof === REACT_CONTEXT_TYPE)\n return reconcileChildFibersImpl(\n returnFiber,\n currentFirstChild,\n readContextDuringReconciliation(returnFiber, newChild),\n lanes\n );\n throwOnInvalidObjectType(returnFiber, newChild);\n }\n if (\n (\"string\" === typeof newChild && \"\" !== newChild) ||\n \"number\" === typeof newChild ||\n \"bigint\" === typeof newChild\n )\n return (\n (prevDebugInfo = \"\" + newChild),\n null !== currentFirstChild && 6 === currentFirstChild.tag\n ? (deleteRemainingChildren(\n returnFiber,\n currentFirstChild.sibling\n ),\n (lanes = useFiber(currentFirstChild, prevDebugInfo)),\n (lanes.return = returnFiber),\n (returnFiber = lanes))\n : (deleteRemainingChildren(returnFiber, currentFirstChild),\n (lanes = createFiberFromText(\n prevDebugInfo,\n returnFiber.mode,\n lanes\n )),\n (lanes.return = returnFiber),\n (lanes._debugOwner = returnFiber),\n (lanes._debugTask = returnFiber._debugTask),\n (lanes._debugInfo = currentDebugInfo),\n (returnFiber = lanes)),\n placeSingleChild(returnFiber)\n );\n \"function\" === typeof newChild &&\n warnOnFunctionType(returnFiber, newChild);\n \"symbol\" === typeof newChild && warnOnSymbolType(returnFiber, newChild);\n return deleteRemainingChildren(returnFiber, currentFirstChild);\n }\n return function (returnFiber, currentFirstChild, newChild, lanes) {\n var prevDebugInfo = currentDebugInfo;\n currentDebugInfo = null;\n try {\n thenableIndexCounter = 0;\n var firstChildFiber = reconcileChildFibersImpl(\n returnFiber,\n currentFirstChild,\n newChild,\n lanes\n );\n thenableState = null;\n return firstChildFiber;\n } catch (x) {\n if (x === SuspenseException || x === SuspenseActionException) throw x;\n var fiber = createFiber(29, x, null, returnFiber.mode);\n fiber.lanes = lanes;\n fiber.return = returnFiber;\n var debugInfo = (fiber._debugInfo = currentDebugInfo);\n fiber._debugOwner = returnFiber._debugOwner;\n fiber._debugTask = returnFiber._debugTask;\n if (null != debugInfo)\n for (var i = debugInfo.length - 1; 0 <= i; i--)\n if (\"string\" === typeof debugInfo[i].stack) {\n fiber._debugOwner = debugInfo[i];\n fiber._debugTask = debugInfo[i].debugTask;\n break;\n }\n return fiber;\n } finally {\n currentDebugInfo = prevDebugInfo;\n }\n };\n }\n function pushPrimaryTreeSuspenseHandler(handler) {\n var current = handler.alternate;\n push(\n suspenseStackCursor,\n suspenseStackCursor.current & SubtreeSuspenseContextMask,\n handler\n );\n push(suspenseHandlerStackCursor, handler, handler);\n null === shellBoundary &&\n (null === current || null !== currentTreeHiddenStackCursor.current\n ? (shellBoundary = handler)\n : null !== current.memoizedState && (shellBoundary = handler));\n }\n function pushOffscreenSuspenseHandler(fiber) {\n if (22 === fiber.tag) {\n if (\n (push(suspenseStackCursor, suspenseStackCursor.current, fiber),\n push(suspenseHandlerStackCursor, fiber, fiber),\n null === shellBoundary)\n ) {\n var current = fiber.alternate;\n null !== current &&\n null !== current.memoizedState &&\n (shellBoundary = fiber);\n }\n } else reuseSuspenseHandlerOnStack(fiber);\n }\n function reuseSuspenseHandlerOnStack(fiber) {\n push(suspenseStackCursor, suspenseStackCursor.current, fiber);\n push(\n suspenseHandlerStackCursor,\n suspenseHandlerStackCursor.current,\n fiber\n );\n }\n function popSuspenseHandler(fiber) {\n pop(suspenseHandlerStackCursor, fiber);\n shellBoundary === fiber && (shellBoundary = null);\n pop(suspenseStackCursor, fiber);\n }\n function findFirstSuspended(row) {\n for (var node = row; null !== node; ) {\n if (13 === node.tag) {\n var state = node.memoizedState;\n if (\n null !== state &&\n ((state = state.dehydrated),\n null === state ||\n state.data === SUSPENSE_PENDING_START_DATA ||\n isSuspenseInstanceFallback(state))\n )\n return node;\n } else if (\n 19 === node.tag &&\n void 0 !== node.memoizedProps.revealOrder\n ) {\n if (0 !== (node.flags & 128)) return node;\n } else if (null !== node.child) {\n node.child.return = node;\n node = node.child;\n continue;\n }\n if (node === row) break;\n for (; null === node.sibling; ) {\n if (null === node.return || node.return === row) return null;\n node = node.return;\n }\n node.sibling.return = node.return;\n node = node.sibling;\n }\n return null;\n }\n function warnOnInvalidCallback(callback) {\n if (null !== callback && \"function\" !== typeof callback) {\n var key = String(callback);\n didWarnOnInvalidCallback.has(key) ||\n (didWarnOnInvalidCallback.add(key),\n console.error(\n \"Expected the last optional `callback` argument to be a function. Instead received: %s.\",\n callback\n ));\n }\n }\n function applyDerivedStateFromProps(\n workInProgress,\n ctor,\n getDerivedStateFromProps,\n nextProps\n ) {\n var prevState = workInProgress.memoizedState,\n partialState = getDerivedStateFromProps(nextProps, prevState);\n if (workInProgress.mode & StrictLegacyMode) {\n setIsStrictModeForDevtools(!0);\n try {\n partialState = getDerivedStateFromProps(nextProps, prevState);\n } finally {\n setIsStrictModeForDevtools(!1);\n }\n }\n void 0 === partialState &&\n ((ctor = getComponentNameFromType(ctor) || \"Component\"),\n didWarnAboutUndefinedDerivedState.has(ctor) ||\n (didWarnAboutUndefinedDerivedState.add(ctor),\n console.error(\n \"%s.getDerivedStateFromProps(): A valid state object (or null) must be returned. You have returned undefined.\",\n ctor\n )));\n prevState =\n null === partialState || void 0 === partialState\n ? prevState\n : assign({}, prevState, partialState);\n workInProgress.memoizedState = prevState;\n 0 === workInProgress.lanes &&\n (workInProgress.updateQueue.baseState = prevState);\n }\n function checkShouldComponentUpdate(\n workInProgress,\n ctor,\n oldProps,\n newProps,\n oldState,\n newState,\n nextContext\n ) {\n var instance = workInProgress.stateNode;\n if (\"function\" === typeof instance.shouldComponentUpdate) {\n oldProps = instance.shouldComponentUpdate(\n newProps,\n newState,\n nextContext\n );\n if (workInProgress.mode & StrictLegacyMode) {\n setIsStrictModeForDevtools(!0);\n try {\n oldProps = instance.shouldComponentUpdate(\n newProps,\n newState,\n nextContext\n );\n } finally {\n setIsStrictModeForDevtools(!1);\n }\n }\n void 0 === oldProps &&\n console.error(\n \"%s.shouldComponentUpdate(): Returned undefined instead of a boolean value. Make sure to return true or false.\",\n getComponentNameFromType(ctor) || \"Component\"\n );\n return oldProps;\n }\n return ctor.prototype && ctor.prototype.isPureReactComponent\n ? !shallowEqual(oldProps, newProps) || !shallowEqual(oldState, newState)\n : !0;\n }\n function callComponentWillReceiveProps(\n workInProgress,\n instance,\n newProps,\n nextContext\n ) {\n var oldState = instance.state;\n \"function\" === typeof instance.componentWillReceiveProps &&\n instance.componentWillReceiveProps(newProps, nextContext);\n \"function\" === typeof instance.UNSAFE_componentWillReceiveProps &&\n instance.UNSAFE_componentWillReceiveProps(newProps, nextContext);\n instance.state !== oldState &&\n ((workInProgress =\n getComponentNameFromFiber(workInProgress) || \"Component\"),\n didWarnAboutStateAssignmentForComponent.has(workInProgress) ||\n (didWarnAboutStateAssignmentForComponent.add(workInProgress),\n console.error(\n \"%s.componentWillReceiveProps(): Assigning directly to this.state is deprecated (except inside a component's constructor). Use setState instead.\",\n workInProgress\n )),\n classComponentUpdater.enqueueReplaceState(\n instance,\n instance.state,\n null\n ));\n }\n function resolveClassComponentProps(Component, baseProps) {\n var newProps = baseProps;\n if (\"ref\" in baseProps) {\n newProps = {};\n for (var propName in baseProps)\n \"ref\" !== propName && (newProps[propName] = baseProps[propName]);\n }\n if ((Component = Component.defaultProps)) {\n newProps === baseProps && (newProps = assign({}, newProps));\n for (var _propName in Component)\n void 0 === newProps[_propName] &&\n (newProps[_propName] = Component[_propName]);\n }\n return newProps;\n }\n function defaultOnUncaughtError(error) {\n reportGlobalError(error);\n console.warn(\n \"%s\\n\\n%s\\n\",\n componentName\n ? \"An error occurred in the <\" + componentName + \"> component.\"\n : \"An error occurred in one of your React components.\",\n \"Consider adding an error boundary to your tree to customize error handling behavior.\\nVisit https://react.dev/link/error-boundaries to learn more about error boundaries.\"\n );\n }\n function defaultOnCaughtError(error) {\n var componentNameMessage = componentName\n ? \"The above error occurred in the <\" + componentName + \"> component.\"\n : \"The above error occurred in one of your React components.\",\n recreateMessage =\n \"React will try to recreate this component tree from scratch using the error boundary you provided, \" +\n ((errorBoundaryName || \"Anonymous\") + \".\");\n if (\n \"object\" === typeof error &&\n null !== error &&\n \"string\" === typeof error.environmentName\n ) {\n var JSCompiler_inline_result = error.environmentName;\n error = [\n \"%o\\n\\n%s\\n\\n%s\\n\",\n error,\n componentNameMessage,\n recreateMessage\n ].slice(0);\n \"string\" === typeof error[0]\n ? error.splice(\n 0,\n 1,\n badgeFormat + error[0],\n badgeStyle,\n pad + JSCompiler_inline_result + pad,\n resetStyle\n )\n : error.splice(\n 0,\n 0,\n badgeFormat,\n badgeStyle,\n pad + JSCompiler_inline_result + pad,\n resetStyle\n );\n error.unshift(console);\n JSCompiler_inline_result = bind.apply(console.error, error);\n JSCompiler_inline_result();\n } else\n console.error(\n \"%o\\n\\n%s\\n\\n%s\\n\",\n error,\n componentNameMessage,\n recreateMessage\n );\n }\n function defaultOnRecoverableError(error) {\n reportGlobalError(error);\n }\n function logUncaughtError(root, errorInfo) {\n try {\n componentName = errorInfo.source\n ? getComponentNameFromFiber(errorInfo.source)\n : null;\n errorBoundaryName = null;\n var error = errorInfo.value;\n if (null !== ReactSharedInternals.actQueue)\n ReactSharedInternals.thrownErrors.push(error);\n else {\n var onUncaughtError = root.onUncaughtError;\n onUncaughtError(error, { componentStack: errorInfo.stack });\n }\n } catch (e$5) {\n setTimeout(function () {\n throw e$5;\n });\n }\n }\n function logCaughtError(root, boundary, errorInfo) {\n try {\n componentName = errorInfo.source\n ? getComponentNameFromFiber(errorInfo.source)\n : null;\n errorBoundaryName = getComponentNameFromFiber(boundary);\n var onCaughtError = root.onCaughtError;\n onCaughtError(errorInfo.value, {\n componentStack: errorInfo.stack,\n errorBoundary: 1 === boundary.tag ? boundary.stateNode : null\n });\n } catch (e$6) {\n setTimeout(function () {\n throw e$6;\n });\n }\n }\n function createRootErrorUpdate(root, errorInfo, lane) {\n lane = createUpdate(lane);\n lane.tag = CaptureUpdate;\n lane.payload = { element: null };\n lane.callback = function () {\n runWithFiberInDEV(errorInfo.source, logUncaughtError, root, errorInfo);\n };\n return lane;\n }\n function createClassErrorUpdate(lane) {\n lane = createUpdate(lane);\n lane.tag = CaptureUpdate;\n return lane;\n }\n function initializeClassErrorUpdate(update, root, fiber, errorInfo) {\n var getDerivedStateFromError = fiber.type.getDerivedStateFromError;\n if (\"function\" === typeof getDerivedStateFromError) {\n var error = errorInfo.value;\n update.payload = function () {\n return getDerivedStateFromError(error);\n };\n update.callback = function () {\n markFailedErrorBoundaryForHotReloading(fiber);\n runWithFiberInDEV(\n errorInfo.source,\n logCaughtError,\n root,\n fiber,\n errorInfo\n );\n };\n }\n var inst = fiber.stateNode;\n null !== inst &&\n \"function\" === typeof inst.componentDidCatch &&\n (update.callback = function () {\n markFailedErrorBoundaryForHotReloading(fiber);\n runWithFiberInDEV(\n errorInfo.source,\n logCaughtError,\n root,\n fiber,\n errorInfo\n );\n \"function\" !== typeof getDerivedStateFromError &&\n (null === legacyErrorBoundariesThatAlreadyFailed\n ? (legacyErrorBoundariesThatAlreadyFailed = new Set([this]))\n : legacyErrorBoundariesThatAlreadyFailed.add(this));\n callComponentDidCatchInDEV(this, errorInfo);\n \"function\" === typeof getDerivedStateFromError ||\n (0 === (fiber.lanes & 2) &&\n console.error(\n \"%s: Error boundaries should implement getDerivedStateFromError(). In that method, return a state update to display an error message or fallback UI.\",\n getComponentNameFromFiber(fiber) || \"Unknown\"\n ));\n });\n }\n function throwException(\n root,\n returnFiber,\n sourceFiber,\n value,\n rootRenderLanes\n ) {\n sourceFiber.flags |= 32768;\n isDevToolsPresent && restorePendingUpdaters(root, rootRenderLanes);\n if (\n null !== value &&\n \"object\" === typeof value &&\n \"function\" === typeof value.then\n ) {\n returnFiber = sourceFiber.alternate;\n null !== returnFiber &&\n propagateParentContextChanges(\n returnFiber,\n sourceFiber,\n rootRenderLanes,\n !0\n );\n isHydrating && (didSuspendOrErrorDEV = !0);\n sourceFiber = suspenseHandlerStackCursor.current;\n if (null !== sourceFiber) {\n switch (sourceFiber.tag) {\n case 13:\n return (\n null === shellBoundary\n ? renderDidSuspendDelayIfPossible()\n : null === sourceFiber.alternate &&\n workInProgressRootExitStatus === RootInProgress &&\n (workInProgressRootExitStatus = RootSuspended),\n (sourceFiber.flags &= -257),\n (sourceFiber.flags |= 65536),\n (sourceFiber.lanes = rootRenderLanes),\n value === noopSuspenseyCommitThenable\n ? (sourceFiber.flags |= 16384)\n : ((returnFiber = sourceFiber.updateQueue),\n null === returnFiber\n ? (sourceFiber.updateQueue = new Set([value]))\n : returnFiber.add(value),\n attachPingListener(root, value, rootRenderLanes)),\n !1\n );\n case 22:\n return (\n (sourceFiber.flags |= 65536),\n value === noopSuspenseyCommitThenable\n ? (sourceFiber.flags |= 16384)\n : ((returnFiber = sourceFiber.updateQueue),\n null === returnFiber\n ? ((returnFiber = {\n transitions: null,\n markerInstances: null,\n retryQueue: new Set([value])\n }),\n (sourceFiber.updateQueue = returnFiber))\n : ((sourceFiber = returnFiber.retryQueue),\n null === sourceFiber\n ? (returnFiber.retryQueue = new Set([value]))\n : sourceFiber.add(value)),\n attachPingListener(root, value, rootRenderLanes)),\n !1\n );\n }\n throw Error(\n \"Unexpected Suspense handler tag (\" +\n sourceFiber.tag +\n \"). This is a bug in React.\"\n );\n }\n attachPingListener(root, value, rootRenderLanes);\n renderDidSuspendDelayIfPossible();\n return !1;\n }\n if (isHydrating)\n return (\n (didSuspendOrErrorDEV = !0),\n (returnFiber = suspenseHandlerStackCursor.current),\n null !== returnFiber\n ? (0 === (returnFiber.flags & 65536) && (returnFiber.flags |= 256),\n (returnFiber.flags |= 65536),\n (returnFiber.lanes = rootRenderLanes),\n value !== HydrationMismatchException &&\n queueHydrationError(\n createCapturedValueAtFiber(\n Error(\n \"There was an error while hydrating but React was able to recover by instead client rendering from the nearest Suspense boundary.\",\n { cause: value }\n ),\n sourceFiber\n )\n ))\n : (value !== HydrationMismatchException &&\n queueHydrationError(\n createCapturedValueAtFiber(\n Error(\n \"There was an error while hydrating but React was able to recover by instead client rendering the entire root.\",\n { cause: value }\n ),\n sourceFiber\n )\n ),\n (root = root.current.alternate),\n (root.flags |= 65536),\n (rootRenderLanes &= -rootRenderLanes),\n (root.lanes |= rootRenderLanes),\n (value = createCapturedValueAtFiber(value, sourceFiber)),\n (rootRenderLanes = createRootErrorUpdate(\n root.stateNode,\n value,\n rootRenderLanes\n )),\n enqueueCapturedUpdate(root, rootRenderLanes),\n workInProgressRootExitStatus !== RootSuspendedWithDelay &&\n (workInProgressRootExitStatus = RootErrored)),\n !1\n );\n var error = createCapturedValueAtFiber(\n Error(\n \"There was an error during concurrent rendering but React was able to recover by instead synchronously rendering the entire root.\",\n { cause: value }\n ),\n sourceFiber\n );\n null === workInProgressRootConcurrentErrors\n ? (workInProgressRootConcurrentErrors = [error])\n : workInProgressRootConcurrentErrors.push(error);\n workInProgressRootExitStatus !== RootSuspendedWithDelay &&\n (workInProgressRootExitStatus = RootErrored);\n if (null === returnFiber) return !0;\n value = createCapturedValueAtFiber(value, sourceFiber);\n sourceFiber = returnFiber;\n do {\n switch (sourceFiber.tag) {\n case 3:\n return (\n (sourceFiber.flags |= 65536),\n (root = rootRenderLanes & -rootRenderLanes),\n (sourceFiber.lanes |= root),\n (root = createRootErrorUpdate(\n sourceFiber.stateNode,\n value,\n root\n )),\n enqueueCapturedUpdate(sourceFiber, root),\n !1\n );\n case 1:\n if (\n ((returnFiber = sourceFiber.type),\n (error = sourceFiber.stateNode),\n 0 === (sourceFiber.flags & 128) &&\n (\"function\" === typeof returnFiber.getDerivedStateFromError ||\n (null !== error &&\n \"function\" === typeof error.componentDidCatch &&\n (null === legacyErrorBoundariesThatAlreadyFailed ||\n !legacyErrorBoundariesThatAlreadyFailed.has(error)))))\n )\n return (\n (sourceFiber.flags |= 65536),\n (rootRenderLanes &= -rootRenderLanes),\n (sourceFiber.lanes |= rootRenderLanes),\n (rootRenderLanes = createClassErrorUpdate(rootRenderLanes)),\n initializeClassErrorUpdate(\n rootRenderLanes,\n root,\n sourceFiber,\n value\n ),\n enqueueCapturedUpdate(sourceFiber, rootRenderLanes),\n !1\n );\n }\n sourceFiber = sourceFiber.return;\n } while (null !== sourceFiber);\n return !1;\n }\n function reconcileChildren(\n current,\n workInProgress,\n nextChildren,\n renderLanes\n ) {\n workInProgress.child =\n null === current\n ? mountChildFibers(workInProgress, null, nextChildren, renderLanes)\n : reconcileChildFibers(\n workInProgress,\n current.child,\n nextChildren,\n renderLanes\n );\n }\n function updateForwardRef(\n current,\n workInProgress,\n Component,\n nextProps,\n renderLanes\n ) {\n Component = Component.render;\n var ref = workInProgress.ref;\n if (\"ref\" in nextProps) {\n var propsWithoutRef = {};\n for (var key in nextProps)\n \"ref\" !== key && (propsWithoutRef[key] = nextProps[key]);\n } else propsWithoutRef = nextProps;\n prepareToReadContext(workInProgress);\n markComponentRenderStarted(workInProgress);\n nextProps = renderWithHooks(\n current,\n workInProgress,\n Component,\n propsWithoutRef,\n ref,\n renderLanes\n );\n key = checkDidRenderIdHook();\n markComponentRenderStopped();\n if (null !== current && !didReceiveUpdate)\n return (\n bailoutHooks(current, workInProgress, renderLanes),\n bailoutOnAlreadyFinishedWork(current, workInProgress, renderLanes)\n );\n isHydrating && key && pushMaterializedTreeId(workInProgress);\n workInProgress.flags |= 1;\n reconcileChildren(current, workInProgress, nextProps, renderLanes);\n return workInProgress.child;\n }\n function updateMemoComponent(\n current,\n workInProgress,\n Component,\n nextProps,\n renderLanes\n ) {\n if (null === current) {\n var type = Component.type;\n if (\n \"function\" === typeof type &&\n !shouldConstruct(type) &&\n void 0 === type.defaultProps &&\n null === Component.compare\n )\n return (\n (Component = resolveFunctionForHotReloading(type)),\n (workInProgress.tag = 15),\n (workInProgress.type = Component),\n validateFunctionComponentInDev(workInProgress, type),\n updateSimpleMemoComponent(\n current,\n workInProgress,\n Component,\n nextProps,\n renderLanes\n )\n );\n current = createFiberFromTypeAndProps(\n Component.type,\n null,\n nextProps,\n workInProgress,\n workInProgress.mode,\n renderLanes\n );\n current.ref = workInProgress.ref;\n current.return = workInProgress;\n return (workInProgress.child = current);\n }\n type = current.child;\n if (!checkScheduledUpdateOrContext(current, renderLanes)) {\n var prevProps = type.memoizedProps;\n Component = Component.compare;\n Component = null !== Component ? Component : shallowEqual;\n if (\n Component(prevProps, nextProps) &&\n current.ref === workInProgress.ref\n )\n return bailoutOnAlreadyFinishedWork(\n current,\n workInProgress,\n renderLanes\n );\n }\n workInProgress.flags |= 1;\n current = createWorkInProgress(type, nextProps);\n current.ref = workInProgress.ref;\n current.return = workInProgress;\n return (workInProgress.child = current);\n }\n function updateSimpleMemoComponent(\n current,\n workInProgress,\n Component,\n nextProps,\n renderLanes\n ) {\n if (null !== current) {\n var prevProps = current.memoizedProps;\n if (\n shallowEqual(prevProps, nextProps) &&\n current.ref === workInProgress.ref &&\n workInProgress.type === current.type\n )\n if (\n ((didReceiveUpdate = !1),\n (workInProgress.pendingProps = nextProps = prevProps),\n checkScheduledUpdateOrContext(current, renderLanes))\n )\n 0 !== (current.flags & 131072) && (didReceiveUpdate = !0);\n else\n return (\n (workInProgress.lanes = current.lanes),\n bailoutOnAlreadyFinishedWork(current, workInProgress, renderLanes)\n );\n }\n return updateFunctionComponent(\n current,\n workInProgress,\n Component,\n nextProps,\n renderLanes\n );\n }\n function updateOffscreenComponent(current, workInProgress, renderLanes) {\n var nextProps = workInProgress.pendingProps,\n nextChildren = nextProps.children,\n prevState = null !== current ? current.memoizedState : null;\n if (\"hidden\" === nextProps.mode) {\n if (0 !== (workInProgress.flags & 128)) {\n nextProps =\n null !== prevState\n ? prevState.baseLanes | renderLanes\n : renderLanes;\n if (null !== current) {\n nextChildren = workInProgress.child = current.child;\n for (prevState = 0; null !== nextChildren; )\n (prevState =\n prevState | nextChildren.lanes | nextChildren.childLanes),\n (nextChildren = nextChildren.sibling);\n workInProgress.childLanes = prevState & ~nextProps;\n } else (workInProgress.childLanes = 0), (workInProgress.child = null);\n return deferHiddenOffscreenComponent(\n current,\n workInProgress,\n nextProps,\n renderLanes\n );\n }\n if (0 !== (renderLanes & 536870912))\n (workInProgress.memoizedState = { baseLanes: 0, cachePool: null }),\n null !== current &&\n pushTransition(\n workInProgress,\n null !== prevState ? prevState.cachePool : null\n ),\n null !== prevState\n ? pushHiddenContext(workInProgress, prevState)\n : reuseHiddenContextOnStack(workInProgress),\n pushOffscreenSuspenseHandler(workInProgress);\n else\n return (\n (workInProgress.lanes = workInProgress.childLanes = 536870912),\n deferHiddenOffscreenComponent(\n current,\n workInProgress,\n null !== prevState\n ? prevState.baseLanes | renderLanes\n : renderLanes,\n renderLanes\n )\n );\n } else\n null !== prevState\n ? (pushTransition(workInProgress, prevState.cachePool),\n pushHiddenContext(workInProgress, prevState),\n reuseSuspenseHandlerOnStack(workInProgress),\n (workInProgress.memoizedState = null))\n : (null !== current && pushTransition(workInProgress, null),\n reuseHiddenContextOnStack(workInProgress),\n reuseSuspenseHandlerOnStack(workInProgress));\n reconcileChildren(current, workInProgress, nextChildren, renderLanes);\n return workInProgress.child;\n }\n function deferHiddenOffscreenComponent(\n current,\n workInProgress,\n nextBaseLanes,\n renderLanes\n ) {\n var JSCompiler_inline_result = peekCacheFromPool();\n JSCompiler_inline_result =\n null === JSCompiler_inline_result\n ? null\n : {\n parent: CacheContext._currentValue,\n pool: JSCompiler_inline_result\n };\n workInProgress.memoizedState = {\n baseLanes: nextBaseLanes,\n cachePool: JSCompiler_inline_result\n };\n null !== current && pushTransition(workInProgress, null);\n reuseHiddenContextOnStack(workInProgress);\n pushOffscreenSuspenseHandler(workInProgress);\n null !== current &&\n propagateParentContextChanges(current, workInProgress, renderLanes, !0);\n return null;\n }\n function markRef(current, workInProgress) {\n var ref = workInProgress.ref;\n if (null === ref)\n null !== current &&\n null !== current.ref &&\n (workInProgress.flags |= 4194816);\n else {\n if (\"function\" !== typeof ref && \"object\" !== typeof ref)\n throw Error(\n \"Expected ref to be a function, an object returned by React.createRef(), or undefined/null.\"\n );\n if (null === current || current.ref !== ref)\n workInProgress.flags |= 4194816;\n }\n }\n function updateFunctionComponent(\n current,\n workInProgress,\n Component,\n nextProps,\n renderLanes\n ) {\n if (\n Component.prototype &&\n \"function\" === typeof Component.prototype.render\n ) {\n var componentName = getComponentNameFromType(Component) || \"Unknown\";\n didWarnAboutBadClass[componentName] ||\n (console.error(\n \"The <%s /> component appears to have a render method, but doesn't extend React.Component. This is likely to cause errors. Change %s to extend React.Component instead.\",\n componentName,\n componentName\n ),\n (didWarnAboutBadClass[componentName] = !0));\n }\n workInProgress.mode & StrictLegacyMode &&\n ReactStrictModeWarnings.recordLegacyContextWarning(\n workInProgress,\n null\n );\n null === current &&\n (validateFunctionComponentInDev(workInProgress, workInProgress.type),\n Component.contextTypes &&\n ((componentName = getComponentNameFromType(Component) || \"Unknown\"),\n didWarnAboutContextTypes[componentName] ||\n ((didWarnAboutContextTypes[componentName] = !0),\n console.error(\n \"%s uses the legacy contextTypes API which was removed in React 19. Use React.createContext() with React.useContext() instead. (https://react.dev/link/legacy-context)\",\n componentName\n ))));\n prepareToReadContext(workInProgress);\n markComponentRenderStarted(workInProgress);\n Component = renderWithHooks(\n current,\n workInProgress,\n Component,\n nextProps,\n void 0,\n renderLanes\n );\n nextProps = checkDidRenderIdHook();\n markComponentRenderStopped();\n if (null !== current && !didReceiveUpdate)\n return (\n bailoutHooks(current, workInProgress, renderLanes),\n bailoutOnAlreadyFinishedWork(current, workInProgress, renderLanes)\n );\n isHydrating && nextProps && pushMaterializedTreeId(workInProgress);\n workInProgress.flags |= 1;\n reconcileChildren(current, workInProgress, Component, renderLanes);\n return workInProgress.child;\n }\n function replayFunctionComponent(\n current,\n workInProgress,\n nextProps,\n Component,\n secondArg,\n renderLanes\n ) {\n prepareToReadContext(workInProgress);\n markComponentRenderStarted(workInProgress);\n hookTypesUpdateIndexDev = -1;\n ignorePreviousDependencies =\n null !== current && current.type !== workInProgress.type;\n workInProgress.updateQueue = null;\n nextProps = renderWithHooksAgain(\n workInProgress,\n Component,\n nextProps,\n secondArg\n );\n finishRenderingHooks(current, workInProgress);\n Component = checkDidRenderIdHook();\n markComponentRenderStopped();\n if (null !== current && !didReceiveUpdate)\n return (\n bailoutHooks(current, workInProgress, renderLanes),\n bailoutOnAlreadyFinishedWork(current, workInProgress, renderLanes)\n );\n isHydrating && Component && pushMaterializedTreeId(workInProgress);\n workInProgress.flags |= 1;\n reconcileChildren(current, workInProgress, nextProps, renderLanes);\n return workInProgress.child;\n }\n function updateClassComponent(\n current,\n workInProgress,\n Component,\n nextProps,\n renderLanes\n ) {\n switch (shouldErrorImpl(workInProgress)) {\n case !1:\n var _instance = workInProgress.stateNode,\n state = new workInProgress.type(\n workInProgress.memoizedProps,\n _instance.context\n ).state;\n _instance.updater.enqueueSetState(_instance, state, null);\n break;\n case !0:\n workInProgress.flags |= 128;\n workInProgress.flags |= 65536;\n _instance = Error(\"Simulated error coming from DevTools\");\n var lane = renderLanes & -renderLanes;\n workInProgress.lanes |= lane;\n state = workInProgressRoot;\n if (null === state)\n throw Error(\n \"Expected a work-in-progress root. This is a bug in React. Please file an issue.\"\n );\n lane = createClassErrorUpdate(lane);\n initializeClassErrorUpdate(\n lane,\n state,\n workInProgress,\n createCapturedValueAtFiber(_instance, workInProgress)\n );\n enqueueCapturedUpdate(workInProgress, lane);\n }\n prepareToReadContext(workInProgress);\n if (null === workInProgress.stateNode) {\n state = emptyContextObject;\n _instance = Component.contextType;\n \"contextType\" in Component &&\n null !== _instance &&\n (void 0 === _instance || _instance.$$typeof !== REACT_CONTEXT_TYPE) &&\n !didWarnAboutInvalidateContextType.has(Component) &&\n (didWarnAboutInvalidateContextType.add(Component),\n (lane =\n void 0 === _instance\n ? \" However, it is set to undefined. This can be caused by a typo or by mixing up named and default imports. This can also happen due to a circular dependency, so try moving the createContext() call to a separate file.\"\n : \"object\" !== typeof _instance\n ? \" However, it is set to a \" + typeof _instance + \".\"\n : _instance.$$typeof === REACT_CONSUMER_TYPE\n ? \" Did you accidentally pass the Context.Consumer instead?\"\n : \" However, it is set to an object with keys {\" +\n Object.keys(_instance).join(\", \") +\n \"}.\"),\n console.error(\n \"%s defines an invalid contextType. contextType should point to the Context object returned by React.createContext().%s\",\n getComponentNameFromType(Component) || \"Component\",\n lane\n ));\n \"object\" === typeof _instance &&\n null !== _instance &&\n (state = readContext(_instance));\n _instance = new Component(nextProps, state);\n if (workInProgress.mode & StrictLegacyMode) {\n setIsStrictModeForDevtools(!0);\n try {\n _instance = new Component(nextProps, state);\n } finally {\n setIsStrictModeForDevtools(!1);\n }\n }\n state = workInProgress.memoizedState =\n null !== _instance.state && void 0 !== _instance.state\n ? _instance.state\n : null;\n _instance.updater = classComponentUpdater;\n workInProgress.stateNode = _instance;\n _instance._reactInternals = workInProgress;\n _instance._reactInternalInstance = fakeInternalInstance;\n \"function\" === typeof Component.getDerivedStateFromProps &&\n null === state &&\n ((state = getComponentNameFromType(Component) || \"Component\"),\n didWarnAboutUninitializedState.has(state) ||\n (didWarnAboutUninitializedState.add(state),\n console.error(\n \"`%s` uses `getDerivedStateFromProps` but its initial state is %s. This is not recommended. Instead, define the initial state by assigning an object to `this.state` in the constructor of `%s`. This ensures that `getDerivedStateFromProps` arguments have a consistent shape.\",\n state,\n null === _instance.state ? \"null\" : \"undefined\",\n state\n )));\n if (\n \"function\" === typeof Component.getDerivedStateFromProps ||\n \"function\" === typeof _instance.getSnapshotBeforeUpdate\n ) {\n var foundWillUpdateName = (lane = state = null);\n \"function\" === typeof _instance.componentWillMount &&\n !0 !== _instance.componentWillMount.__suppressDeprecationWarning\n ? (state = \"componentWillMount\")\n : \"function\" === typeof _instance.UNSAFE_componentWillMount &&\n (state = \"UNSAFE_componentWillMount\");\n \"function\" === typeof _instance.componentWillReceiveProps &&\n !0 !==\n _instance.componentWillReceiveProps.__suppressDeprecationWarning\n ? (lane = \"componentWillReceiveProps\")\n : \"function\" ===\n typeof _instance.UNSAFE_componentWillReceiveProps &&\n (lane = \"UNSAFE_componentWillReceiveProps\");\n \"function\" === typeof _instance.componentWillUpdate &&\n !0 !== _instance.componentWillUpdate.__suppressDeprecationWarning\n ? (foundWillUpdateName = \"componentWillUpdate\")\n : \"function\" === typeof _instance.UNSAFE_componentWillUpdate &&\n (foundWillUpdateName = \"UNSAFE_componentWillUpdate\");\n if (null !== state || null !== lane || null !== foundWillUpdateName) {\n _instance = getComponentNameFromType(Component) || \"Component\";\n var newApiName =\n \"function\" === typeof Component.getDerivedStateFromProps\n ? \"getDerivedStateFromProps()\"\n : \"getSnapshotBeforeUpdate()\";\n didWarnAboutLegacyLifecyclesAndDerivedState.has(_instance) ||\n (didWarnAboutLegacyLifecyclesAndDerivedState.add(_instance),\n console.error(\n \"Unsafe legacy lifecycles will not be called for components using new component APIs.\\n\\n%s uses %s but also contains the following legacy lifecycles:%s%s%s\\n\\nThe above lifecycles should be removed. Learn more about this warning here:\\nhttps://react.dev/link/unsafe-component-lifecycles\",\n _instance,\n newApiName,\n null !== state ? \"\\n \" + state : \"\",\n null !== lane ? \"\\n \" + lane : \"\",\n null !== foundWillUpdateName ? \"\\n \" + foundWillUpdateName : \"\"\n ));\n }\n }\n _instance = workInProgress.stateNode;\n state = getComponentNameFromType(Component) || \"Component\";\n _instance.render ||\n (Component.prototype &&\n \"function\" === typeof Component.prototype.render\n ? console.error(\n \"No `render` method found on the %s instance: did you accidentally return an object from the constructor?\",\n state\n )\n : console.error(\n \"No `render` method found on the %s instance: you may have forgotten to define `render`.\",\n state\n ));\n !_instance.getInitialState ||\n _instance.getInitialState.isReactClassApproved ||\n _instance.state ||\n console.error(\n \"getInitialState was defined on %s, a plain JavaScript class. This is only supported for classes created using React.createClass. Did you mean to define a state property instead?\",\n state\n );\n _instance.getDefaultProps &&\n !_instance.getDefaultProps.isReactClassApproved &&\n console.error(\n \"getDefaultProps was defined on %s, a plain JavaScript class. This is only supported for classes created using React.createClass. Use a static property to define defaultProps instead.\",\n state\n );\n _instance.contextType &&\n console.error(\n \"contextType was defined as an instance property on %s. Use a static property to define contextType instead.\",\n state\n );\n Component.childContextTypes &&\n !didWarnAboutChildContextTypes.has(Component) &&\n (didWarnAboutChildContextTypes.add(Component),\n console.error(\n \"%s uses the legacy childContextTypes API which was removed in React 19. Use React.createContext() instead. (https://react.dev/link/legacy-context)\",\n state\n ));\n Component.contextTypes &&\n !didWarnAboutContextTypes$1.has(Component) &&\n (didWarnAboutContextTypes$1.add(Component),\n console.error(\n \"%s uses the legacy contextTypes API which was removed in React 19. Use React.createContext() with static contextType instead. (https://react.dev/link/legacy-context)\",\n state\n ));\n \"function\" === typeof _instance.componentShouldUpdate &&\n console.error(\n \"%s has a method called componentShouldUpdate(). Did you mean shouldComponentUpdate()? The name is phrased as a question because the function is expected to return a value.\",\n state\n );\n Component.prototype &&\n Component.prototype.isPureReactComponent &&\n \"undefined\" !== typeof _instance.shouldComponentUpdate &&\n console.error(\n \"%s has a method called shouldComponentUpdate(). shouldComponentUpdate should not be used when extending React.PureComponent. Please extend React.Component if shouldComponentUpdate is used.\",\n getComponentNameFromType(Component) || \"A pure component\"\n );\n \"function\" === typeof _instance.componentDidUnmount &&\n console.error(\n \"%s has a method called componentDidUnmount(). But there is no such lifecycle method. Did you mean componentWillUnmount()?\",\n state\n );\n \"function\" === typeof _instance.componentDidReceiveProps &&\n console.error(\n \"%s has a method called componentDidReceiveProps(). But there is no such lifecycle method. If you meant to update the state in response to changing props, use componentWillReceiveProps(). If you meant to fetch data or run side-effects or mutations after React has updated the UI, use componentDidUpdate().\",\n state\n );\n \"function\" === typeof _instance.componentWillRecieveProps &&\n console.error(\n \"%s has a method called componentWillRecieveProps(). Did you mean componentWillReceiveProps()?\",\n state\n );\n \"function\" === typeof _instance.UNSAFE_componentWillRecieveProps &&\n console.error(\n \"%s has a method called UNSAFE_componentWillRecieveProps(). Did you mean UNSAFE_componentWillReceiveProps()?\",\n state\n );\n lane = _instance.props !== nextProps;\n void 0 !== _instance.props &&\n lane &&\n console.error(\n \"When calling super() in `%s`, make sure to pass up the same props that your component's constructor was passed.\",\n state\n );\n _instance.defaultProps &&\n console.error(\n \"Setting defaultProps as an instance property on %s is not supported and will be ignored. Instead, define defaultProps as a static property on %s.\",\n state,\n state\n );\n \"function\" !== typeof _instance.getSnapshotBeforeUpdate ||\n \"function\" === typeof _instance.componentDidUpdate ||\n didWarnAboutGetSnapshotBeforeUpdateWithoutDidUpdate.has(Component) ||\n (didWarnAboutGetSnapshotBeforeUpdateWithoutDidUpdate.add(Component),\n console.error(\n \"%s: getSnapshotBeforeUpdate() should be used with componentDidUpdate(). This component defines getSnapshotBeforeUpdate() only.\",\n getComponentNameFromType(Component)\n ));\n \"function\" === typeof _instance.getDerivedStateFromProps &&\n console.error(\n \"%s: getDerivedStateFromProps() is defined as an instance method and will be ignored. Instead, declare it as a static method.\",\n state\n );\n \"function\" === typeof _instance.getDerivedStateFromError &&\n console.error(\n \"%s: getDerivedStateFromError() is defined as an instance method and will be ignored. Instead, declare it as a static method.\",\n state\n );\n \"function\" === typeof Component.getSnapshotBeforeUpdate &&\n console.error(\n \"%s: getSnapshotBeforeUpdate() is defined as a static method and will be ignored. Instead, declare it as an instance method.\",\n state\n );\n (lane = _instance.state) &&\n (\"object\" !== typeof lane || isArrayImpl(lane)) &&\n console.error(\"%s.state: must be set to an object or null\", state);\n \"function\" === typeof _instance.getChildContext &&\n \"object\" !== typeof Component.childContextTypes &&\n console.error(\n \"%s.getChildContext(): childContextTypes must be defined in order to use getChildContext().\",\n state\n );\n _instance = workInProgress.stateNode;\n _instance.props = nextProps;\n _instance.state = workInProgress.memoizedState;\n _instance.refs = {};\n initializeUpdateQueue(workInProgress);\n state = Component.contextType;\n _instance.context =\n \"object\" === typeof state && null !== state\n ? readContext(state)\n : emptyContextObject;\n _instance.state === nextProps &&\n ((state = getComponentNameFromType(Component) || \"Component\"),\n didWarnAboutDirectlyAssigningPropsToState.has(state) ||\n (didWarnAboutDirectlyAssigningPropsToState.add(state),\n console.error(\n \"%s: It is not recommended to assign props directly to state because updates to props won't be reflected in state. In most cases, it is better to use props directly.\",\n state\n )));\n workInProgress.mode & StrictLegacyMode &&\n ReactStrictModeWarnings.recordLegacyContextWarning(\n workInProgress,\n _instance\n );\n ReactStrictModeWarnings.recordUnsafeLifecycleWarnings(\n workInProgress,\n _instance\n );\n _instance.state = workInProgress.memoizedState;\n state = Component.getDerivedStateFromProps;\n \"function\" === typeof state &&\n (applyDerivedStateFromProps(\n workInProgress,\n Component,\n state,\n nextProps\n ),\n (_instance.state = workInProgress.memoizedState));\n \"function\" === typeof Component.getDerivedStateFromProps ||\n \"function\" === typeof _instance.getSnapshotBeforeUpdate ||\n (\"function\" !== typeof _instance.UNSAFE_componentWillMount &&\n \"function\" !== typeof _instance.componentWillMount) ||\n ((state = _instance.state),\n \"function\" === typeof _instance.componentWillMount &&\n _instance.componentWillMount(),\n \"function\" === typeof _instance.UNSAFE_componentWillMount &&\n _instance.UNSAFE_componentWillMount(),\n state !== _instance.state &&\n (console.error(\n \"%s.componentWillMount(): Assigning directly to this.state is deprecated (except inside a component's constructor). Use setState instead.\",\n getComponentNameFromFiber(workInProgress) || \"Component\"\n ),\n classComponentUpdater.enqueueReplaceState(\n _instance,\n _instance.state,\n null\n )),\n processUpdateQueue(workInProgress, nextProps, _instance, renderLanes),\n suspendIfUpdateReadFromEntangledAsyncAction(),\n (_instance.state = workInProgress.memoizedState));\n \"function\" === typeof _instance.componentDidMount &&\n (workInProgress.flags |= 4194308);\n (workInProgress.mode & StrictEffectsMode) !== NoMode &&\n (workInProgress.flags |= 134217728);\n _instance = !0;\n } else if (null === current) {\n _instance = workInProgress.stateNode;\n var unresolvedOldProps = workInProgress.memoizedProps;\n lane = resolveClassComponentProps(Component, unresolvedOldProps);\n _instance.props = lane;\n var oldContext = _instance.context;\n foundWillUpdateName = Component.contextType;\n state = emptyContextObject;\n \"object\" === typeof foundWillUpdateName &&\n null !== foundWillUpdateName &&\n (state = readContext(foundWillUpdateName));\n newApiName = Component.getDerivedStateFromProps;\n foundWillUpdateName =\n \"function\" === typeof newApiName ||\n \"function\" === typeof _instance.getSnapshotBeforeUpdate;\n unresolvedOldProps = workInProgress.pendingProps !== unresolvedOldProps;\n foundWillUpdateName ||\n (\"function\" !== typeof _instance.UNSAFE_componentWillReceiveProps &&\n \"function\" !== typeof _instance.componentWillReceiveProps) ||\n ((unresolvedOldProps || oldContext !== state) &&\n callComponentWillReceiveProps(\n workInProgress,\n _instance,\n nextProps,\n state\n ));\n hasForceUpdate = !1;\n var oldState = workInProgress.memoizedState;\n _instance.state = oldState;\n processUpdateQueue(workInProgress, nextProps, _instance, renderLanes);\n suspendIfUpdateReadFromEntangledAsyncAction();\n oldContext = workInProgress.memoizedState;\n unresolvedOldProps || oldState !== oldContext || hasForceUpdate\n ? (\"function\" === typeof newApiName &&\n (applyDerivedStateFromProps(\n workInProgress,\n Component,\n newApiName,\n nextProps\n ),\n (oldContext = workInProgress.memoizedState)),\n (lane =\n hasForceUpdate ||\n checkShouldComponentUpdate(\n workInProgress,\n Component,\n lane,\n nextProps,\n oldState,\n oldContext,\n state\n ))\n ? (foundWillUpdateName ||\n (\"function\" !== typeof _instance.UNSAFE_componentWillMount &&\n \"function\" !== typeof _instance.componentWillMount) ||\n (\"function\" === typeof _instance.componentWillMount &&\n _instance.componentWillMount(),\n \"function\" === typeof _instance.UNSAFE_componentWillMount &&\n _instance.UNSAFE_componentWillMount()),\n \"function\" === typeof _instance.componentDidMount &&\n (workInProgress.flags |= 4194308),\n (workInProgress.mode & StrictEffectsMode) !== NoMode &&\n (workInProgress.flags |= 134217728))\n : (\"function\" === typeof _instance.componentDidMount &&\n (workInProgress.flags |= 4194308),\n (workInProgress.mode & StrictEffectsMode) !== NoMode &&\n (workInProgress.flags |= 134217728),\n (workInProgress.memoizedProps = nextProps),\n (workInProgress.memoizedState = oldContext)),\n (_instance.props = nextProps),\n (_instance.state = oldContext),\n (_instance.context = state),\n (_instance = lane))\n : (\"function\" === typeof _instance.componentDidMount &&\n (workInProgress.flags |= 4194308),\n (workInProgress.mode & StrictEffectsMode) !== NoMode &&\n (workInProgress.flags |= 134217728),\n (_instance = !1));\n } else {\n _instance = workInProgress.stateNode;\n cloneUpdateQueue(current, workInProgress);\n state = workInProgress.memoizedProps;\n foundWillUpdateName = resolveClassComponentProps(Component, state);\n _instance.props = foundWillUpdateName;\n newApiName = workInProgress.pendingProps;\n oldState = _instance.context;\n oldContext = Component.contextType;\n lane = emptyContextObject;\n \"object\" === typeof oldContext &&\n null !== oldContext &&\n (lane = readContext(oldContext));\n unresolvedOldProps = Component.getDerivedStateFromProps;\n (oldContext =\n \"function\" === typeof unresolvedOldProps ||\n \"function\" === typeof _instance.getSnapshotBeforeUpdate) ||\n (\"function\" !== typeof _instance.UNSAFE_componentWillReceiveProps &&\n \"function\" !== typeof _instance.componentWillReceiveProps) ||\n ((state !== newApiName || oldState !== lane) &&\n callComponentWillReceiveProps(\n workInProgress,\n _instance,\n nextProps,\n lane\n ));\n hasForceUpdate = !1;\n oldState = workInProgress.memoizedState;\n _instance.state = oldState;\n processUpdateQueue(workInProgress, nextProps, _instance, renderLanes);\n suspendIfUpdateReadFromEntangledAsyncAction();\n var newState = workInProgress.memoizedState;\n state !== newApiName ||\n oldState !== newState ||\n hasForceUpdate ||\n (null !== current &&\n null !== current.dependencies &&\n checkIfContextChanged(current.dependencies))\n ? (\"function\" === typeof unresolvedOldProps &&\n (applyDerivedStateFromProps(\n workInProgress,\n Component,\n unresolvedOldProps,\n nextProps\n ),\n (newState = workInProgress.memoizedState)),\n (foundWillUpdateName =\n hasForceUpdate ||\n checkShouldComponentUpdate(\n workInProgress,\n Component,\n foundWillUpdateName,\n nextProps,\n oldState,\n newState,\n lane\n ) ||\n (null !== current &&\n null !== current.dependencies &&\n checkIfContextChanged(current.dependencies)))\n ? (oldContext ||\n (\"function\" !== typeof _instance.UNSAFE_componentWillUpdate &&\n \"function\" !== typeof _instance.componentWillUpdate) ||\n (\"function\" === typeof _instance.componentWillUpdate &&\n _instance.componentWillUpdate(nextProps, newState, lane),\n \"function\" === typeof _instance.UNSAFE_componentWillUpdate &&\n _instance.UNSAFE_componentWillUpdate(\n nextProps,\n newState,\n lane\n )),\n \"function\" === typeof _instance.componentDidUpdate &&\n (workInProgress.flags |= 4),\n \"function\" === typeof _instance.getSnapshotBeforeUpdate &&\n (workInProgress.flags |= 1024))\n : (\"function\" !== typeof _instance.componentDidUpdate ||\n (state === current.memoizedProps &&\n oldState === current.memoizedState) ||\n (workInProgress.flags |= 4),\n \"function\" !== typeof _instance.getSnapshotBeforeUpdate ||\n (state === current.memoizedProps &&\n oldState === current.memoizedState) ||\n (workInProgress.flags |= 1024),\n (workInProgress.memoizedProps = nextProps),\n (workInProgress.memoizedState = newState)),\n (_instance.props = nextProps),\n (_instance.state = newState),\n (_instance.context = lane),\n (_instance = foundWillUpdateName))\n : (\"function\" !== typeof _instance.componentDidUpdate ||\n (state === current.memoizedProps &&\n oldState === current.memoizedState) ||\n (workInProgress.flags |= 4),\n \"function\" !== typeof _instance.getSnapshotBeforeUpdate ||\n (state === current.memoizedProps &&\n oldState === current.memoizedState) ||\n (workInProgress.flags |= 1024),\n (_instance = !1));\n }\n lane = _instance;\n markRef(current, workInProgress);\n state = 0 !== (workInProgress.flags & 128);\n if (lane || state) {\n lane = workInProgress.stateNode;\n setCurrentFiber(workInProgress);\n if (state && \"function\" !== typeof Component.getDerivedStateFromError)\n (Component = null), (profilerStartTime = -1);\n else {\n markComponentRenderStarted(workInProgress);\n Component = callRenderInDEV(lane);\n if (workInProgress.mode & StrictLegacyMode) {\n setIsStrictModeForDevtools(!0);\n try {\n callRenderInDEV(lane);\n } finally {\n setIsStrictModeForDevtools(!1);\n }\n }\n markComponentRenderStopped();\n }\n workInProgress.flags |= 1;\n null !== current && state\n ? ((workInProgress.child = reconcileChildFibers(\n workInProgress,\n current.child,\n null,\n renderLanes\n )),\n (workInProgress.child = reconcileChildFibers(\n workInProgress,\n null,\n Component,\n renderLanes\n )))\n : reconcileChildren(current, workInProgress, Component, renderLanes);\n workInProgress.memoizedState = lane.state;\n current = workInProgress.child;\n } else\n current = bailoutOnAlreadyFinishedWork(\n current,\n workInProgress,\n renderLanes\n );\n renderLanes = workInProgress.stateNode;\n _instance &&\n renderLanes.props !== nextProps &&\n (didWarnAboutReassigningProps ||\n console.error(\n \"It looks like %s is reassigning its own `this.props` while rendering. This is not supported and can lead to confusing bugs.\",\n getComponentNameFromFiber(workInProgress) || \"a component\"\n ),\n (didWarnAboutReassigningProps = !0));\n return current;\n }\n function mountHostRootWithoutHydrating(\n current,\n workInProgress,\n nextChildren,\n renderLanes\n ) {\n resetHydrationState();\n workInProgress.flags |= 256;\n reconcileChildren(current, workInProgress, nextChildren, renderLanes);\n return workInProgress.child;\n }\n function validateFunctionComponentInDev(workInProgress, Component) {\n Component &&\n Component.childContextTypes &&\n console.error(\n \"childContextTypes cannot be defined on a function component.\\n %s.childContextTypes = ...\",\n Component.displayName || Component.name || \"Component\"\n );\n \"function\" === typeof Component.getDerivedStateFromProps &&\n ((workInProgress = getComponentNameFromType(Component) || \"Unknown\"),\n didWarnAboutGetDerivedStateOnFunctionComponent[workInProgress] ||\n (console.error(\n \"%s: Function components do not support getDerivedStateFromProps.\",\n workInProgress\n ),\n (didWarnAboutGetDerivedStateOnFunctionComponent[workInProgress] =\n !0)));\n \"object\" === typeof Component.contextType &&\n null !== Component.contextType &&\n ((Component = getComponentNameFromType(Component) || \"Unknown\"),\n didWarnAboutContextTypeOnFunctionComponent[Component] ||\n (console.error(\n \"%s: Function components do not support contextType.\",\n Component\n ),\n (didWarnAboutContextTypeOnFunctionComponent[Component] = !0)));\n }\n function mountSuspenseOffscreenState(renderLanes) {\n return { baseLanes: renderLanes, cachePool: getSuspendedCache() };\n }\n function getRemainingWorkInPrimaryTree(\n current,\n primaryTreeDidDefer,\n renderLanes\n ) {\n current = null !== current ? current.childLanes & ~renderLanes : 0;\n primaryTreeDidDefer && (current |= workInProgressDeferredLane);\n return current;\n }\n function updateSuspenseComponent(current, workInProgress, renderLanes) {\n var JSCompiler_object_inline_digest_2451;\n var JSCompiler_object_inline_stack_2452 = workInProgress.pendingProps;\n shouldSuspendImpl(workInProgress) && (workInProgress.flags |= 128);\n var JSCompiler_object_inline_componentStack_2453 = !1;\n var didSuspend = 0 !== (workInProgress.flags & 128);\n (JSCompiler_object_inline_digest_2451 = didSuspend) ||\n (JSCompiler_object_inline_digest_2451 =\n null !== current && null === current.memoizedState\n ? !1\n : 0 !== (suspenseStackCursor.current & ForceSuspenseFallback));\n JSCompiler_object_inline_digest_2451 &&\n ((JSCompiler_object_inline_componentStack_2453 = !0),\n (workInProgress.flags &= -129));\n JSCompiler_object_inline_digest_2451 = 0 !== (workInProgress.flags & 32);\n workInProgress.flags &= -33;\n if (null === current) {\n if (isHydrating) {\n JSCompiler_object_inline_componentStack_2453\n ? pushPrimaryTreeSuspenseHandler(workInProgress)\n : reuseSuspenseHandlerOnStack(workInProgress);\n if (isHydrating) {\n var JSCompiler_object_inline_message_2450 = nextHydratableInstance;\n var JSCompiler_temp;\n if (!(JSCompiler_temp = !JSCompiler_object_inline_message_2450)) {\n c: {\n var instance = JSCompiler_object_inline_message_2450;\n for (\n JSCompiler_temp = rootOrSingletonContext;\n 8 !== instance.nodeType;\n\n ) {\n if (!JSCompiler_temp) {\n JSCompiler_temp = null;\n break c;\n }\n instance = getNextHydratable(instance.nextSibling);\n if (null === instance) {\n JSCompiler_temp = null;\n break c;\n }\n }\n JSCompiler_temp = instance;\n }\n null !== JSCompiler_temp\n ? (warnIfNotHydrating(),\n (workInProgress.memoizedState = {\n dehydrated: JSCompiler_temp,\n treeContext:\n null !== treeContextProvider\n ? { id: treeContextId, overflow: treeContextOverflow }\n : null,\n retryLane: 536870912,\n hydrationErrors: null\n }),\n (instance = createFiber(18, null, null, NoMode)),\n (instance.stateNode = JSCompiler_temp),\n (instance.return = workInProgress),\n (workInProgress.child = instance),\n (hydrationParentFiber = workInProgress),\n (nextHydratableInstance = null),\n (JSCompiler_temp = !0))\n : (JSCompiler_temp = !1);\n JSCompiler_temp = !JSCompiler_temp;\n }\n JSCompiler_temp &&\n (warnNonHydratedInstance(\n workInProgress,\n JSCompiler_object_inline_message_2450\n ),\n throwOnHydrationMismatch(workInProgress));\n }\n JSCompiler_object_inline_message_2450 = workInProgress.memoizedState;\n if (\n null !== JSCompiler_object_inline_message_2450 &&\n ((JSCompiler_object_inline_message_2450 =\n JSCompiler_object_inline_message_2450.dehydrated),\n null !== JSCompiler_object_inline_message_2450)\n )\n return (\n isSuspenseInstanceFallback(JSCompiler_object_inline_message_2450)\n ? (workInProgress.lanes = 32)\n : (workInProgress.lanes = 536870912),\n null\n );\n popSuspenseHandler(workInProgress);\n }\n JSCompiler_object_inline_message_2450 =\n JSCompiler_object_inline_stack_2452.children;\n JSCompiler_object_inline_stack_2452 =\n JSCompiler_object_inline_stack_2452.fallback;\n if (JSCompiler_object_inline_componentStack_2453)\n return (\n reuseSuspenseHandlerOnStack(workInProgress),\n (JSCompiler_object_inline_componentStack_2453 =\n workInProgress.mode),\n (JSCompiler_object_inline_message_2450 =\n mountWorkInProgressOffscreenFiber(\n {\n mode: \"hidden\",\n children: JSCompiler_object_inline_message_2450\n },\n JSCompiler_object_inline_componentStack_2453\n )),\n (JSCompiler_object_inline_stack_2452 = createFiberFromFragment(\n JSCompiler_object_inline_stack_2452,\n JSCompiler_object_inline_componentStack_2453,\n renderLanes,\n null\n )),\n (JSCompiler_object_inline_message_2450.return = workInProgress),\n (JSCompiler_object_inline_stack_2452.return = workInProgress),\n (JSCompiler_object_inline_message_2450.sibling =\n JSCompiler_object_inline_stack_2452),\n (workInProgress.child = JSCompiler_object_inline_message_2450),\n (JSCompiler_object_inline_componentStack_2453 =\n workInProgress.child),\n (JSCompiler_object_inline_componentStack_2453.memoizedState =\n mountSuspenseOffscreenState(renderLanes)),\n (JSCompiler_object_inline_componentStack_2453.childLanes =\n getRemainingWorkInPrimaryTree(\n current,\n JSCompiler_object_inline_digest_2451,\n renderLanes\n )),\n (workInProgress.memoizedState = SUSPENDED_MARKER),\n JSCompiler_object_inline_stack_2452\n );\n pushPrimaryTreeSuspenseHandler(workInProgress);\n return mountSuspensePrimaryChildren(\n workInProgress,\n JSCompiler_object_inline_message_2450\n );\n }\n var prevState = current.memoizedState;\n if (\n null !== prevState &&\n ((JSCompiler_object_inline_message_2450 = prevState.dehydrated),\n null !== JSCompiler_object_inline_message_2450)\n ) {\n if (didSuspend)\n workInProgress.flags & 256\n ? (pushPrimaryTreeSuspenseHandler(workInProgress),\n (workInProgress.flags &= -257),\n (workInProgress = retrySuspenseComponentWithoutHydrating(\n current,\n workInProgress,\n renderLanes\n )))\n : null !== workInProgress.memoizedState\n ? (reuseSuspenseHandlerOnStack(workInProgress),\n (workInProgress.child = current.child),\n (workInProgress.flags |= 128),\n (workInProgress = null))\n : (reuseSuspenseHandlerOnStack(workInProgress),\n (JSCompiler_object_inline_componentStack_2453 =\n JSCompiler_object_inline_stack_2452.fallback),\n (JSCompiler_object_inline_message_2450 = workInProgress.mode),\n (JSCompiler_object_inline_stack_2452 =\n mountWorkInProgressOffscreenFiber(\n {\n mode: \"visible\",\n children: JSCompiler_object_inline_stack_2452.children\n },\n JSCompiler_object_inline_message_2450\n )),\n (JSCompiler_object_inline_componentStack_2453 =\n createFiberFromFragment(\n JSCompiler_object_inline_componentStack_2453,\n JSCompiler_object_inline_message_2450,\n renderLanes,\n null\n )),\n (JSCompiler_object_inline_componentStack_2453.flags |= 2),\n (JSCompiler_object_inline_stack_2452.return = workInProgress),\n (JSCompiler_object_inline_componentStack_2453.return =\n workInProgress),\n (JSCompiler_object_inline_stack_2452.sibling =\n JSCompiler_object_inline_componentStack_2453),\n (workInProgress.child = JSCompiler_object_inline_stack_2452),\n reconcileChildFibers(\n workInProgress,\n current.child,\n null,\n renderLanes\n ),\n (JSCompiler_object_inline_stack_2452 = workInProgress.child),\n (JSCompiler_object_inline_stack_2452.memoizedState =\n mountSuspenseOffscreenState(renderLanes)),\n (JSCompiler_object_inline_stack_2452.childLanes =\n getRemainingWorkInPrimaryTree(\n current,\n JSCompiler_object_inline_digest_2451,\n renderLanes\n )),\n (workInProgress.memoizedState = SUSPENDED_MARKER),\n (workInProgress =\n JSCompiler_object_inline_componentStack_2453));\n else if (\n (pushPrimaryTreeSuspenseHandler(workInProgress),\n isHydrating &&\n console.error(\n \"We should not be hydrating here. This is a bug in React. Please file a bug.\"\n ),\n isSuspenseInstanceFallback(JSCompiler_object_inline_message_2450))\n ) {\n JSCompiler_object_inline_digest_2451 =\n JSCompiler_object_inline_message_2450.nextSibling &&\n JSCompiler_object_inline_message_2450.nextSibling.dataset;\n if (JSCompiler_object_inline_digest_2451) {\n JSCompiler_temp = JSCompiler_object_inline_digest_2451.dgst;\n var message = JSCompiler_object_inline_digest_2451.msg;\n instance = JSCompiler_object_inline_digest_2451.stck;\n var componentStack = JSCompiler_object_inline_digest_2451.cstck;\n }\n JSCompiler_object_inline_message_2450 = message;\n JSCompiler_object_inline_digest_2451 = JSCompiler_temp;\n JSCompiler_object_inline_stack_2452 = instance;\n JSCompiler_temp = JSCompiler_object_inline_componentStack_2453 =\n componentStack;\n JSCompiler_object_inline_componentStack_2453 =\n JSCompiler_object_inline_message_2450\n ? Error(JSCompiler_object_inline_message_2450)\n : Error(\n \"The server could not finish this Suspense boundary, likely due to an error during server rendering. Switched to client rendering.\"\n );\n JSCompiler_object_inline_componentStack_2453.stack =\n JSCompiler_object_inline_stack_2452 || \"\";\n JSCompiler_object_inline_componentStack_2453.digest =\n JSCompiler_object_inline_digest_2451;\n JSCompiler_object_inline_digest_2451 =\n void 0 === JSCompiler_temp ? null : JSCompiler_temp;\n JSCompiler_object_inline_stack_2452 = {\n value: JSCompiler_object_inline_componentStack_2453,\n source: null,\n stack: JSCompiler_object_inline_digest_2451\n };\n \"string\" === typeof JSCompiler_object_inline_digest_2451 &&\n CapturedStacks.set(\n JSCompiler_object_inline_componentStack_2453,\n JSCompiler_object_inline_stack_2452\n );\n queueHydrationError(JSCompiler_object_inline_stack_2452);\n workInProgress = retrySuspenseComponentWithoutHydrating(\n current,\n workInProgress,\n renderLanes\n );\n } else if (\n (didReceiveUpdate ||\n propagateParentContextChanges(\n current,\n workInProgress,\n renderLanes,\n !1\n ),\n (JSCompiler_object_inline_digest_2451 =\n 0 !== (renderLanes & current.childLanes)),\n didReceiveUpdate || JSCompiler_object_inline_digest_2451)\n ) {\n JSCompiler_object_inline_digest_2451 = workInProgressRoot;\n if (\n null !== JSCompiler_object_inline_digest_2451 &&\n ((JSCompiler_object_inline_stack_2452 = renderLanes & -renderLanes),\n (JSCompiler_object_inline_stack_2452 =\n 0 !== (JSCompiler_object_inline_stack_2452 & 42)\n ? 1\n : getBumpedLaneForHydrationByLane(\n JSCompiler_object_inline_stack_2452\n )),\n (JSCompiler_object_inline_stack_2452 =\n 0 !==\n (JSCompiler_object_inline_stack_2452 &\n (JSCompiler_object_inline_digest_2451.suspendedLanes |\n renderLanes))\n ? 0\n : JSCompiler_object_inline_stack_2452),\n 0 !== JSCompiler_object_inline_stack_2452 &&\n JSCompiler_object_inline_stack_2452 !== prevState.retryLane)\n )\n throw (\n ((prevState.retryLane = JSCompiler_object_inline_stack_2452),\n enqueueConcurrentRenderForLane(\n current,\n JSCompiler_object_inline_stack_2452\n ),\n scheduleUpdateOnFiber(\n JSCompiler_object_inline_digest_2451,\n current,\n JSCompiler_object_inline_stack_2452\n ),\n SelectiveHydrationException)\n );\n JSCompiler_object_inline_message_2450.data ===\n SUSPENSE_PENDING_START_DATA || renderDidSuspendDelayIfPossible();\n workInProgress = retrySuspenseComponentWithoutHydrating(\n current,\n workInProgress,\n renderLanes\n );\n } else\n JSCompiler_object_inline_message_2450.data ===\n SUSPENSE_PENDING_START_DATA\n ? ((workInProgress.flags |= 192),\n (workInProgress.child = current.child),\n (workInProgress = null))\n : ((current = prevState.treeContext),\n (nextHydratableInstance = getNextHydratable(\n JSCompiler_object_inline_message_2450.nextSibling\n )),\n (hydrationParentFiber = workInProgress),\n (isHydrating = !0),\n (hydrationErrors = null),\n (didSuspendOrErrorDEV = !1),\n (hydrationDiffRootDEV = null),\n (rootOrSingletonContext = !1),\n null !== current &&\n (warnIfNotHydrating(),\n (idStack[idStackIndex++] = treeContextId),\n (idStack[idStackIndex++] = treeContextOverflow),\n (idStack[idStackIndex++] = treeContextProvider),\n (treeContextId = current.id),\n (treeContextOverflow = current.overflow),\n (treeContextProvider = workInProgress)),\n (workInProgress = mountSuspensePrimaryChildren(\n workInProgress,\n JSCompiler_object_inline_stack_2452.children\n )),\n (workInProgress.flags |= 4096));\n return workInProgress;\n }\n if (JSCompiler_object_inline_componentStack_2453)\n return (\n reuseSuspenseHandlerOnStack(workInProgress),\n (JSCompiler_object_inline_componentStack_2453 =\n JSCompiler_object_inline_stack_2452.fallback),\n (JSCompiler_object_inline_message_2450 = workInProgress.mode),\n (JSCompiler_temp = current.child),\n (instance = JSCompiler_temp.sibling),\n (JSCompiler_object_inline_stack_2452 = createWorkInProgress(\n JSCompiler_temp,\n {\n mode: \"hidden\",\n children: JSCompiler_object_inline_stack_2452.children\n }\n )),\n (JSCompiler_object_inline_stack_2452.subtreeFlags =\n JSCompiler_temp.subtreeFlags & 65011712),\n null !== instance\n ? (JSCompiler_object_inline_componentStack_2453 =\n createWorkInProgress(\n instance,\n JSCompiler_object_inline_componentStack_2453\n ))\n : ((JSCompiler_object_inline_componentStack_2453 =\n createFiberFromFragment(\n JSCompiler_object_inline_componentStack_2453,\n JSCompiler_object_inline_message_2450,\n renderLanes,\n null\n )),\n (JSCompiler_object_inline_componentStack_2453.flags |= 2)),\n (JSCompiler_object_inline_componentStack_2453.return =\n workInProgress),\n (JSCompiler_object_inline_stack_2452.return = workInProgress),\n (JSCompiler_object_inline_stack_2452.sibling =\n JSCompiler_object_inline_componentStack_2453),\n (workInProgress.child = JSCompiler_object_inline_stack_2452),\n (JSCompiler_object_inline_stack_2452 =\n JSCompiler_object_inline_componentStack_2453),\n (JSCompiler_object_inline_componentStack_2453 = workInProgress.child),\n (JSCompiler_object_inline_message_2450 = current.child.memoizedState),\n null === JSCompiler_object_inline_message_2450\n ? (JSCompiler_object_inline_message_2450 =\n mountSuspenseOffscreenState(renderLanes))\n : ((JSCompiler_temp =\n JSCompiler_object_inline_message_2450.cachePool),\n null !== JSCompiler_temp\n ? ((instance = CacheContext._currentValue),\n (JSCompiler_temp =\n JSCompiler_temp.parent !== instance\n ? { parent: instance, pool: instance }\n : JSCompiler_temp))\n : (JSCompiler_temp = getSuspendedCache()),\n (JSCompiler_object_inline_message_2450 = {\n baseLanes:\n JSCompiler_object_inline_message_2450.baseLanes | renderLanes,\n cachePool: JSCompiler_temp\n })),\n (JSCompiler_object_inline_componentStack_2453.memoizedState =\n JSCompiler_object_inline_message_2450),\n (JSCompiler_object_inline_componentStack_2453.childLanes =\n getRemainingWorkInPrimaryTree(\n current,\n JSCompiler_object_inline_digest_2451,\n renderLanes\n )),\n (workInProgress.memoizedState = SUSPENDED_MARKER),\n JSCompiler_object_inline_stack_2452\n );\n pushPrimaryTreeSuspenseHandler(workInProgress);\n renderLanes = current.child;\n current = renderLanes.sibling;\n renderLanes = createWorkInProgress(renderLanes, {\n mode: \"visible\",\n children: JSCompiler_object_inline_stack_2452.children\n });\n renderLanes.return = workInProgress;\n renderLanes.sibling = null;\n null !== current &&\n ((JSCompiler_object_inline_digest_2451 = workInProgress.deletions),\n null === JSCompiler_object_inline_digest_2451\n ? ((workInProgress.deletions = [current]),\n (workInProgress.flags |= 16))\n : JSCompiler_object_inline_digest_2451.push(current));\n workInProgress.child = renderLanes;\n workInProgress.memoizedState = null;\n return renderLanes;\n }\n function mountSuspensePrimaryChildren(workInProgress, primaryChildren) {\n primaryChildren = mountWorkInProgressOffscreenFiber(\n { mode: \"visible\", children: primaryChildren },\n workInProgress.mode\n );\n primaryChildren.return = workInProgress;\n return (workInProgress.child = primaryChildren);\n }\n function mountWorkInProgressOffscreenFiber(offscreenProps, mode) {\n offscreenProps = createFiber(22, offscreenProps, null, mode);\n offscreenProps.lanes = 0;\n offscreenProps.stateNode = {\n _visibility: OffscreenVisible,\n _pendingMarkers: null,\n _retryCache: null,\n _transitions: null\n };\n return offscreenProps;\n }\n function retrySuspenseComponentWithoutHydrating(\n current,\n workInProgress,\n renderLanes\n ) {\n reconcileChildFibers(workInProgress, current.child, null, renderLanes);\n current = mountSuspensePrimaryChildren(\n workInProgress,\n workInProgress.pendingProps.children\n );\n current.flags |= 2;\n workInProgress.memoizedState = null;\n return current;\n }\n function scheduleSuspenseWorkOnFiber(fiber, renderLanes, propagationRoot) {\n fiber.lanes |= renderLanes;\n var alternate = fiber.alternate;\n null !== alternate && (alternate.lanes |= renderLanes);\n scheduleContextWorkOnParentPath(\n fiber.return,\n renderLanes,\n propagationRoot\n );\n }\n function validateSuspenseListNestedChild(childSlot, index) {\n var isAnArray = isArrayImpl(childSlot);\n childSlot = !isAnArray && \"function\" === typeof getIteratorFn(childSlot);\n return isAnArray || childSlot\n ? ((isAnArray = isAnArray ? \"array\" : \"iterable\"),\n console.error(\n \"A nested %s was passed to row #%s in <SuspenseList />. Wrap it in an additional SuspenseList to configure its revealOrder: <SuspenseList revealOrder=...> ... <SuspenseList revealOrder=...>{%s}</SuspenseList> ... </SuspenseList>\",\n isAnArray,\n index,\n isAnArray\n ),\n !1)\n : !0;\n }\n function initSuspenseListRenderState(\n workInProgress,\n isBackwards,\n tail,\n lastContentRow,\n tailMode\n ) {\n var renderState = workInProgress.memoizedState;\n null === renderState\n ? (workInProgress.memoizedState = {\n isBackwards: isBackwards,\n rendering: null,\n renderingStartTime: 0,\n last: lastContentRow,\n tail: tail,\n tailMode: tailMode\n })\n : ((renderState.isBackwards = isBackwards),\n (renderState.rendering = null),\n (renderState.renderingStartTime = 0),\n (renderState.last = lastContentRow),\n (renderState.tail = tail),\n (renderState.tailMode = tailMode));\n }\n function updateSuspenseListComponent(current, workInProgress, renderLanes) {\n var nextProps = workInProgress.pendingProps,\n revealOrder = nextProps.revealOrder,\n tailMode = nextProps.tail;\n nextProps = nextProps.children;\n if (\n void 0 !== revealOrder &&\n \"forwards\" !== revealOrder &&\n \"backwards\" !== revealOrder &&\n \"together\" !== revealOrder &&\n !didWarnAboutRevealOrder[revealOrder]\n )\n if (\n ((didWarnAboutRevealOrder[revealOrder] = !0),\n \"string\" === typeof revealOrder)\n )\n switch (revealOrder.toLowerCase()) {\n case \"together\":\n case \"forwards\":\n case \"backwards\":\n console.error(\n '\"%s\" is not a valid value for revealOrder on <SuspenseList />. Use lowercase \"%s\" instead.',\n revealOrder,\n revealOrder.toLowerCase()\n );\n break;\n case \"forward\":\n case \"backward\":\n console.error(\n '\"%s\" is not a valid value for revealOrder on <SuspenseList />. React uses the -s suffix in the spelling. Use \"%ss\" instead.',\n revealOrder,\n revealOrder.toLowerCase()\n );\n break;\n default:\n console.error(\n '\"%s\" is not a supported revealOrder on <SuspenseList />. Did you mean \"together\", \"forwards\" or \"backwards\"?',\n revealOrder\n );\n }\n else\n console.error(\n '%s is not a supported value for revealOrder on <SuspenseList />. Did you mean \"together\", \"forwards\" or \"backwards\"?',\n revealOrder\n );\n void 0 === tailMode ||\n didWarnAboutTailOptions[tailMode] ||\n (\"collapsed\" !== tailMode && \"hidden\" !== tailMode\n ? ((didWarnAboutTailOptions[tailMode] = !0),\n console.error(\n '\"%s\" is not a supported value for tail on <SuspenseList />. Did you mean \"collapsed\" or \"hidden\"?',\n tailMode\n ))\n : \"forwards\" !== revealOrder &&\n \"backwards\" !== revealOrder &&\n ((didWarnAboutTailOptions[tailMode] = !0),\n console.error(\n '<SuspenseList tail=\"%s\" /> is only valid if revealOrder is \"forwards\" or \"backwards\". Did you mean to specify revealOrder=\"forwards\"?',\n tailMode\n )));\n a: if (\n (\"forwards\" === revealOrder || \"backwards\" === revealOrder) &&\n void 0 !== nextProps &&\n null !== nextProps &&\n !1 !== nextProps\n )\n if (isArrayImpl(nextProps))\n for (var i = 0; i < nextProps.length; i++) {\n if (!validateSuspenseListNestedChild(nextProps[i], i)) break a;\n }\n else if (((i = getIteratorFn(nextProps)), \"function\" === typeof i)) {\n if ((i = i.call(nextProps)))\n for (var step = i.next(), _i = 0; !step.done; step = i.next()) {\n if (!validateSuspenseListNestedChild(step.value, _i)) break a;\n _i++;\n }\n } else\n console.error(\n 'A single row was passed to a <SuspenseList revealOrder=\"%s\" />. This is not useful since it needs multiple rows. Did you mean to pass multiple children or an array?',\n revealOrder\n );\n reconcileChildren(current, workInProgress, nextProps, renderLanes);\n nextProps = suspenseStackCursor.current;\n if (0 !== (nextProps & ForceSuspenseFallback))\n (nextProps =\n (nextProps & SubtreeSuspenseContextMask) | ForceSuspenseFallback),\n (workInProgress.flags |= 128);\n else {\n if (null !== current && 0 !== (current.flags & 128))\n a: for (current = workInProgress.child; null !== current; ) {\n if (13 === current.tag)\n null !== current.memoizedState &&\n scheduleSuspenseWorkOnFiber(\n current,\n renderLanes,\n workInProgress\n );\n else if (19 === current.tag)\n scheduleSuspenseWorkOnFiber(current, renderLanes, workInProgress);\n else if (null !== current.child) {\n current.child.return = current;\n current = current.child;\n continue;\n }\n if (current === workInProgress) break a;\n for (; null === current.sibling; ) {\n if (null === current.return || current.return === workInProgress)\n break a;\n current = current.return;\n }\n current.sibling.return = current.return;\n current = current.sibling;\n }\n nextProps &= SubtreeSuspenseContextMask;\n }\n push(suspenseStackCursor, nextProps, workInProgress);\n switch (revealOrder) {\n case \"forwards\":\n renderLanes = workInProgress.child;\n for (revealOrder = null; null !== renderLanes; )\n (current = renderLanes.alternate),\n null !== current &&\n null === findFirstSuspended(current) &&\n (revealOrder = renderLanes),\n (renderLanes = renderLanes.sibling);\n renderLanes = revealOrder;\n null === renderLanes\n ? ((revealOrder = workInProgress.child),\n (workInProgress.child = null))\n : ((revealOrder = renderLanes.sibling),\n (renderLanes.sibling = null));\n initSuspenseListRenderState(\n workInProgress,\n !1,\n revealOrder,\n renderLanes,\n tailMode\n );\n break;\n case \"backwards\":\n renderLanes = null;\n revealOrder = workInProgress.child;\n for (workInProgress.child = null; null !== revealOrder; ) {\n current = revealOrder.alternate;\n if (null !== current && null === findFirstSuspended(current)) {\n workInProgress.child = revealOrder;\n break;\n }\n current = revealOrder.sibling;\n revealOrder.sibling = renderLanes;\n renderLanes = revealOrder;\n revealOrder = current;\n }\n initSuspenseListRenderState(\n workInProgress,\n !0,\n renderLanes,\n null,\n tailMode\n );\n break;\n case \"together\":\n initSuspenseListRenderState(workInProgress, !1, null, null, void 0);\n break;\n default:\n workInProgress.memoizedState = null;\n }\n return workInProgress.child;\n }\n function bailoutOnAlreadyFinishedWork(\n current,\n workInProgress,\n renderLanes\n ) {\n null !== current && (workInProgress.dependencies = current.dependencies);\n profilerStartTime = -1;\n workInProgressRootSkippedLanes |= workInProgress.lanes;\n if (0 === (renderLanes & workInProgress.childLanes))\n if (null !== current) {\n if (\n (propagateParentContextChanges(\n current,\n workInProgress,\n renderLanes,\n !1\n ),\n 0 === (renderLanes & workInProgress.childLanes))\n )\n return null;\n } else return null;\n if (null !== current && workInProgress.child !== current.child)\n throw Error(\"Resuming work not yet implemented.\");\n if (null !== workInProgress.child) {\n current = workInProgress.child;\n renderLanes = createWorkInProgress(current, current.pendingProps);\n workInProgress.child = renderLanes;\n for (renderLanes.return = workInProgress; null !== current.sibling; )\n (current = current.sibling),\n (renderLanes = renderLanes.sibling =\n createWorkInProgress(current, current.pendingProps)),\n (renderLanes.return = workInProgress);\n renderLanes.sibling = null;\n }\n return workInProgress.child;\n }\n function checkScheduledUpdateOrContext(current, renderLanes) {\n if (0 !== (current.lanes & renderLanes)) return !0;\n current = current.dependencies;\n return null !== current && checkIfContextChanged(current) ? !0 : !1;\n }\n function attemptEarlyBailoutIfNoScheduledUpdate(\n current,\n workInProgress,\n renderLanes\n ) {\n switch (workInProgress.tag) {\n case 3:\n pushHostContainer(\n workInProgress,\n workInProgress.stateNode.containerInfo\n );\n pushProvider(\n workInProgress,\n CacheContext,\n current.memoizedState.cache\n );\n resetHydrationState();\n break;\n case 27:\n case 5:\n pushHostContext(workInProgress);\n break;\n case 4:\n pushHostContainer(\n workInProgress,\n workInProgress.stateNode.containerInfo\n );\n break;\n case 10:\n pushProvider(\n workInProgress,\n workInProgress.type,\n workInProgress.memoizedProps.value\n );\n break;\n case 12:\n 0 !== (renderLanes & workInProgress.childLanes) &&\n (workInProgress.flags |= 4);\n workInProgress.flags |= 2048;\n var stateNode = workInProgress.stateNode;\n stateNode.effectDuration = -0;\n stateNode.passiveEffectDuration = -0;\n break;\n case 13:\n stateNode = workInProgress.memoizedState;\n if (null !== stateNode) {\n if (null !== stateNode.dehydrated)\n return (\n pushPrimaryTreeSuspenseHandler(workInProgress),\n (workInProgress.flags |= 128),\n null\n );\n if (0 !== (renderLanes & workInProgress.child.childLanes))\n return updateSuspenseComponent(\n current,\n workInProgress,\n renderLanes\n );\n pushPrimaryTreeSuspenseHandler(workInProgress);\n current = bailoutOnAlreadyFinishedWork(\n current,\n workInProgress,\n renderLanes\n );\n return null !== current ? current.sibling : null;\n }\n pushPrimaryTreeSuspenseHandler(workInProgress);\n break;\n case 19:\n var didSuspendBefore = 0 !== (current.flags & 128);\n stateNode = 0 !== (renderLanes & workInProgress.childLanes);\n stateNode ||\n (propagateParentContextChanges(\n current,\n workInProgress,\n renderLanes,\n !1\n ),\n (stateNode = 0 !== (renderLanes & workInProgress.childLanes)));\n if (didSuspendBefore) {\n if (stateNode)\n return updateSuspenseListComponent(\n current,\n workInProgress,\n renderLanes\n );\n workInProgress.flags |= 128;\n }\n didSuspendBefore = workInProgress.memoizedState;\n null !== didSuspendBefore &&\n ((didSuspendBefore.rendering = null),\n (didSuspendBefore.tail = null),\n (didSuspendBefore.lastEffect = null));\n push(\n suspenseStackCursor,\n suspenseStackCursor.current,\n workInProgress\n );\n if (stateNode) break;\n else return null;\n case 22:\n case 23:\n return (\n (workInProgress.lanes = 0),\n updateOffscreenComponent(current, workInProgress, renderLanes)\n );\n case 24:\n pushProvider(\n workInProgress,\n CacheContext,\n current.memoizedState.cache\n );\n }\n return bailoutOnAlreadyFinishedWork(current, workInProgress, renderLanes);\n }\n function beginWork(current, workInProgress, renderLanes) {\n if (workInProgress._debugNeedsRemount && null !== current) {\n renderLanes = createFiberFromTypeAndProps(\n workInProgress.type,\n workInProgress.key,\n workInProgress.pendingProps,\n workInProgress._debugOwner || null,\n workInProgress.mode,\n workInProgress.lanes\n );\n renderLanes._debugStack = workInProgress._debugStack;\n renderLanes._debugTask = workInProgress._debugTask;\n var returnFiber = workInProgress.return;\n if (null === returnFiber) throw Error(\"Cannot swap the root fiber.\");\n current.alternate = null;\n workInProgress.alternate = null;\n renderLanes.index = workInProgress.index;\n renderLanes.sibling = workInProgress.sibling;\n renderLanes.return = workInProgress.return;\n renderLanes.ref = workInProgress.ref;\n renderLanes._debugInfo = workInProgress._debugInfo;\n if (workInProgress === returnFiber.child)\n returnFiber.child = renderLanes;\n else {\n var prevSibling = returnFiber.child;\n if (null === prevSibling)\n throw Error(\"Expected parent to have a child.\");\n for (; prevSibling.sibling !== workInProgress; )\n if (((prevSibling = prevSibling.sibling), null === prevSibling))\n throw Error(\"Expected to find the previous sibling.\");\n prevSibling.sibling = renderLanes;\n }\n workInProgress = returnFiber.deletions;\n null === workInProgress\n ? ((returnFiber.deletions = [current]), (returnFiber.flags |= 16))\n : workInProgress.push(current);\n renderLanes.flags |= 2;\n return renderLanes;\n }\n if (null !== current)\n if (\n current.memoizedProps !== workInProgress.pendingProps ||\n workInProgress.type !== current.type\n )\n didReceiveUpdate = !0;\n else {\n if (\n !checkScheduledUpdateOrContext(current, renderLanes) &&\n 0 === (workInProgress.flags & 128)\n )\n return (\n (didReceiveUpdate = !1),\n attemptEarlyBailoutIfNoScheduledUpdate(\n current,\n workInProgress,\n renderLanes\n )\n );\n didReceiveUpdate = 0 !== (current.flags & 131072) ? !0 : !1;\n }\n else {\n didReceiveUpdate = !1;\n if ((returnFiber = isHydrating))\n warnIfNotHydrating(),\n (returnFiber = 0 !== (workInProgress.flags & 1048576));\n returnFiber &&\n ((returnFiber = workInProgress.index),\n warnIfNotHydrating(),\n pushTreeId(workInProgress, treeForkCount, returnFiber));\n }\n workInProgress.lanes = 0;\n switch (workInProgress.tag) {\n case 16:\n a: if (\n ((returnFiber = workInProgress.pendingProps),\n (current = callLazyInitInDEV(workInProgress.elementType)),\n (workInProgress.type = current),\n \"function\" === typeof current)\n )\n shouldConstruct(current)\n ? ((returnFiber = resolveClassComponentProps(\n current,\n returnFiber\n )),\n (workInProgress.tag = 1),\n (workInProgress.type = current =\n resolveFunctionForHotReloading(current)),\n (workInProgress = updateClassComponent(\n null,\n workInProgress,\n current,\n returnFiber,\n renderLanes\n )))\n : ((workInProgress.tag = 0),\n validateFunctionComponentInDev(workInProgress, current),\n (workInProgress.type = current =\n resolveFunctionForHotReloading(current)),\n (workInProgress = updateFunctionComponent(\n null,\n workInProgress,\n current,\n returnFiber,\n renderLanes\n )));\n else {\n if (void 0 !== current && null !== current)\n if (\n ((prevSibling = current.$$typeof),\n prevSibling === REACT_FORWARD_REF_TYPE)\n ) {\n workInProgress.tag = 11;\n workInProgress.type = current =\n resolveForwardRefForHotReloading(current);\n workInProgress = updateForwardRef(\n null,\n workInProgress,\n current,\n returnFiber,\n renderLanes\n );\n break a;\n } else if (prevSibling === REACT_MEMO_TYPE) {\n workInProgress.tag = 14;\n workInProgress = updateMemoComponent(\n null,\n workInProgress,\n current,\n returnFiber,\n renderLanes\n );\n break a;\n }\n workInProgress = \"\";\n null !== current &&\n \"object\" === typeof current &&\n current.$$typeof === REACT_LAZY_TYPE &&\n (workInProgress =\n \" Did you wrap a component in React.lazy() more than once?\");\n current = getComponentNameFromType(current) || current;\n throw Error(\n \"Element type is invalid. Received a promise that resolves to: \" +\n current +\n \". Lazy element type must resolve to a class or function.\" +\n workInProgress\n );\n }\n return workInProgress;\n case 0:\n return updateFunctionComponent(\n current,\n workInProgress,\n workInProgress.type,\n workInProgress.pendingProps,\n renderLanes\n );\n case 1:\n return (\n (returnFiber = workInProgress.type),\n (prevSibling = resolveClassComponentProps(\n returnFiber,\n workInProgress.pendingProps\n )),\n updateClassComponent(\n current,\n workInProgress,\n returnFiber,\n prevSibling,\n renderLanes\n )\n );\n case 3:\n a: {\n pushHostContainer(\n workInProgress,\n workInProgress.stateNode.containerInfo\n );\n if (null === current)\n throw Error(\n \"Should have a current fiber. This is a bug in React.\"\n );\n returnFiber = workInProgress.pendingProps;\n var prevState = workInProgress.memoizedState;\n prevSibling = prevState.element;\n cloneUpdateQueue(current, workInProgress);\n processUpdateQueue(workInProgress, returnFiber, null, renderLanes);\n var nextState = workInProgress.memoizedState;\n returnFiber = nextState.cache;\n pushProvider(workInProgress, CacheContext, returnFiber);\n returnFiber !== prevState.cache &&\n propagateContextChanges(\n workInProgress,\n [CacheContext],\n renderLanes,\n !0\n );\n suspendIfUpdateReadFromEntangledAsyncAction();\n returnFiber = nextState.element;\n if (prevState.isDehydrated)\n if (\n ((prevState = {\n element: returnFiber,\n isDehydrated: !1,\n cache: nextState.cache\n }),\n (workInProgress.updateQueue.baseState = prevState),\n (workInProgress.memoizedState = prevState),\n workInProgress.flags & 256)\n ) {\n workInProgress = mountHostRootWithoutHydrating(\n current,\n workInProgress,\n returnFiber,\n renderLanes\n );\n break a;\n } else if (returnFiber !== prevSibling) {\n prevSibling = createCapturedValueAtFiber(\n Error(\n \"This root received an early update, before anything was able hydrate. Switched the entire root to client rendering.\"\n ),\n workInProgress\n );\n queueHydrationError(prevSibling);\n workInProgress = mountHostRootWithoutHydrating(\n current,\n workInProgress,\n returnFiber,\n renderLanes\n );\n break a;\n } else {\n current = workInProgress.stateNode.containerInfo;\n switch (current.nodeType) {\n case 9:\n current = current.body;\n break;\n default:\n current =\n \"HTML\" === current.nodeName\n ? current.ownerDocument.body\n : current;\n }\n nextHydratableInstance = getNextHydratable(current.firstChild);\n hydrationParentFiber = workInProgress;\n isHydrating = !0;\n hydrationErrors = null;\n didSuspendOrErrorDEV = !1;\n hydrationDiffRootDEV = null;\n rootOrSingletonContext = !0;\n current = mountChildFibers(\n workInProgress,\n null,\n returnFiber,\n renderLanes\n );\n for (workInProgress.child = current; current; )\n (current.flags = (current.flags & -3) | 4096),\n (current = current.sibling);\n }\n else {\n resetHydrationState();\n if (returnFiber === prevSibling) {\n workInProgress = bailoutOnAlreadyFinishedWork(\n current,\n workInProgress,\n renderLanes\n );\n break a;\n }\n reconcileChildren(\n current,\n workInProgress,\n returnFiber,\n renderLanes\n );\n }\n workInProgress = workInProgress.child;\n }\n return workInProgress;\n case 26:\n return (\n markRef(current, workInProgress),\n null === current\n ? (current = getResource(\n workInProgress.type,\n null,\n workInProgress.pendingProps,\n null\n ))\n ? (workInProgress.memoizedState = current)\n : isHydrating ||\n ((current = workInProgress.type),\n (renderLanes = workInProgress.pendingProps),\n (returnFiber = requiredContext(\n rootInstanceStackCursor.current\n )),\n (returnFiber =\n getOwnerDocumentFromRootContainer(\n returnFiber\n ).createElement(current)),\n (returnFiber[internalInstanceKey] = workInProgress),\n (returnFiber[internalPropsKey] = renderLanes),\n setInitialProperties(returnFiber, current, renderLanes),\n markNodeAsHoistable(returnFiber),\n (workInProgress.stateNode = returnFiber))\n : (workInProgress.memoizedState = getResource(\n workInProgress.type,\n current.memoizedProps,\n workInProgress.pendingProps,\n current.memoizedState\n )),\n null\n );\n case 27:\n return (\n pushHostContext(workInProgress),\n null === current &&\n isHydrating &&\n ((returnFiber = requiredContext(rootInstanceStackCursor.current)),\n (prevSibling = getHostContext()),\n (returnFiber = workInProgress.stateNode =\n resolveSingletonInstance(\n workInProgress.type,\n workInProgress.pendingProps,\n returnFiber,\n prevSibling,\n !1\n )),\n didSuspendOrErrorDEV ||\n ((prevSibling = diffHydratedProperties(\n returnFiber,\n workInProgress.type,\n workInProgress.pendingProps,\n prevSibling\n )),\n null !== prevSibling &&\n (buildHydrationDiffNode(workInProgress, 0).serverProps =\n prevSibling)),\n (hydrationParentFiber = workInProgress),\n (rootOrSingletonContext = !0),\n (prevSibling = nextHydratableInstance),\n isSingletonScope(workInProgress.type)\n ? ((previousHydratableOnEnteringScopedSingleton = prevSibling),\n (nextHydratableInstance = getNextHydratable(\n returnFiber.firstChild\n )))\n : (nextHydratableInstance = prevSibling)),\n reconcileChildren(\n current,\n workInProgress,\n workInProgress.pendingProps.children,\n renderLanes\n ),\n markRef(current, workInProgress),\n null === current && (workInProgress.flags |= 4194304),\n workInProgress.child\n );\n case 5:\n return (\n null === current &&\n isHydrating &&\n ((prevState = getHostContext()),\n (returnFiber = validateDOMNesting(\n workInProgress.type,\n prevState.ancestorInfo\n )),\n (prevSibling = nextHydratableInstance),\n (nextState = !prevSibling) ||\n ((nextState = canHydrateInstance(\n prevSibling,\n workInProgress.type,\n workInProgress.pendingProps,\n rootOrSingletonContext\n )),\n null !== nextState\n ? ((workInProgress.stateNode = nextState),\n didSuspendOrErrorDEV ||\n ((prevState = diffHydratedProperties(\n nextState,\n workInProgress.type,\n workInProgress.pendingProps,\n prevState\n )),\n null !== prevState &&\n (buildHydrationDiffNode(workInProgress, 0).serverProps =\n prevState)),\n (hydrationParentFiber = workInProgress),\n (nextHydratableInstance = getNextHydratable(\n nextState.firstChild\n )),\n (rootOrSingletonContext = !1),\n (prevState = !0))\n : (prevState = !1),\n (nextState = !prevState)),\n nextState &&\n (returnFiber &&\n warnNonHydratedInstance(workInProgress, prevSibling),\n throwOnHydrationMismatch(workInProgress))),\n pushHostContext(workInProgress),\n (prevSibling = workInProgress.type),\n (prevState = workInProgress.pendingProps),\n (nextState = null !== current ? current.memoizedProps : null),\n (returnFiber = prevState.children),\n shouldSetTextContent(prevSibling, prevState)\n ? (returnFiber = null)\n : null !== nextState &&\n shouldSetTextContent(prevSibling, nextState) &&\n (workInProgress.flags |= 32),\n null !== workInProgress.memoizedState &&\n ((prevSibling = renderWithHooks(\n current,\n workInProgress,\n TransitionAwareHostComponent,\n null,\n null,\n renderLanes\n )),\n (HostTransitionContext._currentValue = prevSibling)),\n markRef(current, workInProgress),\n reconcileChildren(\n current,\n workInProgress,\n returnFiber,\n renderLanes\n ),\n workInProgress.child\n );\n case 6:\n return (\n null === current &&\n isHydrating &&\n ((current = workInProgress.pendingProps),\n (renderLanes = getHostContext()),\n (returnFiber = renderLanes.ancestorInfo.current),\n (current =\n null != returnFiber\n ? validateTextNesting(\n current,\n returnFiber.tag,\n renderLanes.ancestorInfo.implicitRootScope\n )\n : !0),\n (renderLanes = nextHydratableInstance),\n (returnFiber = !renderLanes) ||\n ((returnFiber = canHydrateTextInstance(\n renderLanes,\n workInProgress.pendingProps,\n rootOrSingletonContext\n )),\n null !== returnFiber\n ? ((workInProgress.stateNode = returnFiber),\n (hydrationParentFiber = workInProgress),\n (nextHydratableInstance = null),\n (returnFiber = !0))\n : (returnFiber = !1),\n (returnFiber = !returnFiber)),\n returnFiber &&\n (current &&\n warnNonHydratedInstance(workInProgress, renderLanes),\n throwOnHydrationMismatch(workInProgress))),\n null\n );\n case 13:\n return updateSuspenseComponent(current, workInProgress, renderLanes);\n case 4:\n return (\n pushHostContainer(\n workInProgress,\n workInProgress.stateNode.containerInfo\n ),\n (returnFiber = workInProgress.pendingProps),\n null === current\n ? (workInProgress.child = reconcileChildFibers(\n workInProgress,\n null,\n returnFiber,\n renderLanes\n ))\n : reconcileChildren(\n current,\n workInProgress,\n returnFiber,\n renderLanes\n ),\n workInProgress.child\n );\n case 11:\n return updateForwardRef(\n current,\n workInProgress,\n workInProgress.type,\n workInProgress.pendingProps,\n renderLanes\n );\n case 7:\n return (\n reconcileChildren(\n current,\n workInProgress,\n workInProgress.pendingProps,\n renderLanes\n ),\n workInProgress.child\n );\n case 8:\n return (\n reconcileChildren(\n current,\n workInProgress,\n workInProgress.pendingProps.children,\n renderLanes\n ),\n workInProgress.child\n );\n case 12:\n return (\n (workInProgress.flags |= 4),\n (workInProgress.flags |= 2048),\n (returnFiber = workInProgress.stateNode),\n (returnFiber.effectDuration = -0),\n (returnFiber.passiveEffectDuration = -0),\n reconcileChildren(\n current,\n workInProgress,\n workInProgress.pendingProps.children,\n renderLanes\n ),\n workInProgress.child\n );\n case 10:\n return (\n (returnFiber = workInProgress.type),\n (prevSibling = workInProgress.pendingProps),\n (prevState = prevSibling.value),\n \"value\" in prevSibling ||\n hasWarnedAboutUsingNoValuePropOnContextProvider ||\n ((hasWarnedAboutUsingNoValuePropOnContextProvider = !0),\n console.error(\n \"The `value` prop is required for the `<Context.Provider>`. Did you misspell it or forget to pass it?\"\n )),\n pushProvider(workInProgress, returnFiber, prevState),\n reconcileChildren(\n current,\n workInProgress,\n prevSibling.children,\n renderLanes\n ),\n workInProgress.child\n );\n case 9:\n return (\n (prevSibling = workInProgress.type._context),\n (returnFiber = workInProgress.pendingProps.children),\n \"function\" !== typeof returnFiber &&\n console.error(\n \"A context consumer was rendered with multiple children, or a child that isn't a function. A context consumer expects a single child that is a function. If you did pass a function, make sure there is no trailing or leading whitespace around it.\"\n ),\n prepareToReadContext(workInProgress),\n (prevSibling = readContext(prevSibling)),\n markComponentRenderStarted(workInProgress),\n (returnFiber = callComponentInDEV(\n returnFiber,\n prevSibling,\n void 0\n )),\n markComponentRenderStopped(),\n (workInProgress.flags |= 1),\n reconcileChildren(\n current,\n workInProgress,\n returnFiber,\n renderLanes\n ),\n workInProgress.child\n );\n case 14:\n return updateMemoComponent(\n current,\n workInProgress,\n workInProgress.type,\n workInProgress.pendingProps,\n renderLanes\n );\n case 15:\n return updateSimpleMemoComponent(\n current,\n workInProgress,\n workInProgress.type,\n workInProgress.pendingProps,\n renderLanes\n );\n case 19:\n return updateSuspenseListComponent(\n current,\n workInProgress,\n renderLanes\n );\n case 31:\n return (\n (returnFiber = workInProgress.pendingProps),\n (renderLanes = workInProgress.mode),\n (returnFiber = {\n mode: returnFiber.mode,\n children: returnFiber.children\n }),\n null === current\n ? ((current = mountWorkInProgressOffscreenFiber(\n returnFiber,\n renderLanes\n )),\n (current.ref = workInProgress.ref),\n (workInProgress.child = current),\n (current.return = workInProgress),\n (workInProgress = current))\n : ((current = createWorkInProgress(current.child, returnFiber)),\n (current.ref = workInProgress.ref),\n (workInProgress.child = current),\n (current.return = workInProgress),\n (workInProgress = current)),\n workInProgress\n );\n case 22:\n return updateOffscreenComponent(current, workInProgress, renderLanes);\n case 24:\n return (\n prepareToReadContext(workInProgress),\n (returnFiber = readContext(CacheContext)),\n null === current\n ? ((prevSibling = peekCacheFromPool()),\n null === prevSibling &&\n ((prevSibling = workInProgressRoot),\n (prevState = createCache()),\n (prevSibling.pooledCache = prevState),\n retainCache(prevState),\n null !== prevState &&\n (prevSibling.pooledCacheLanes |= renderLanes),\n (prevSibling = prevState)),\n (workInProgress.memoizedState = {\n parent: returnFiber,\n cache: prevSibling\n }),\n initializeUpdateQueue(workInProgress),\n pushProvider(workInProgress, CacheContext, prevSibling))\n : (0 !== (current.lanes & renderLanes) &&\n (cloneUpdateQueue(current, workInProgress),\n processUpdateQueue(workInProgress, null, null, renderLanes),\n suspendIfUpdateReadFromEntangledAsyncAction()),\n (prevSibling = current.memoizedState),\n (prevState = workInProgress.memoizedState),\n prevSibling.parent !== returnFiber\n ? ((prevSibling = {\n parent: returnFiber,\n cache: returnFiber\n }),\n (workInProgress.memoizedState = prevSibling),\n 0 === workInProgress.lanes &&\n (workInProgress.memoizedState =\n workInProgress.updateQueue.baseState =\n prevSibling),\n pushProvider(workInProgress, CacheContext, returnFiber))\n : ((returnFiber = prevState.cache),\n pushProvider(workInProgress, CacheContext, returnFiber),\n returnFiber !== prevSibling.cache &&\n propagateContextChanges(\n workInProgress,\n [CacheContext],\n renderLanes,\n !0\n ))),\n reconcileChildren(\n current,\n workInProgress,\n workInProgress.pendingProps.children,\n renderLanes\n ),\n workInProgress.child\n );\n case 29:\n throw workInProgress.pendingProps;\n }\n throw Error(\n \"Unknown unit of work tag (\" +\n workInProgress.tag +\n \"). This error is likely caused by a bug in React. Please file an issue.\"\n );\n }\n function markUpdate(workInProgress) {\n workInProgress.flags |= 4;\n }\n function preloadResourceAndSuspendIfNeeded(workInProgress, resource) {\n if (\n \"stylesheet\" !== resource.type ||\n (resource.state.loading & Inserted) !== NotLoaded\n )\n workInProgress.flags &= -16777217;\n else if (\n ((workInProgress.flags |= 16777216), !preloadResource(resource))\n ) {\n resource = suspenseHandlerStackCursor.current;\n if (\n null !== resource &&\n ((workInProgressRootRenderLanes & 4194048) ===\n workInProgressRootRenderLanes\n ? null !== shellBoundary\n : ((workInProgressRootRenderLanes & 62914560) !==\n workInProgressRootRenderLanes &&\n 0 === (workInProgressRootRenderLanes & 536870912)) ||\n resource !== shellBoundary)\n )\n throw (\n ((suspendedThenable = noopSuspenseyCommitThenable),\n SuspenseyCommitException)\n );\n workInProgress.flags |= 8192;\n }\n }\n function scheduleRetryEffect(workInProgress, retryQueue) {\n null !== retryQueue && (workInProgress.flags |= 4);\n workInProgress.flags & 16384 &&\n ((retryQueue =\n 22 !== workInProgress.tag ? claimNextRetryLane() : 536870912),\n (workInProgress.lanes |= retryQueue),\n (workInProgressSuspendedRetryLanes |= retryQueue));\n }\n function cutOffTailIfNeeded(renderState, hasRenderedATailFallback) {\n if (!isHydrating)\n switch (renderState.tailMode) {\n case \"hidden\":\n hasRenderedATailFallback = renderState.tail;\n for (var lastTailNode = null; null !== hasRenderedATailFallback; )\n null !== hasRenderedATailFallback.alternate &&\n (lastTailNode = hasRenderedATailFallback),\n (hasRenderedATailFallback = hasRenderedATailFallback.sibling);\n null === lastTailNode\n ? (renderState.tail = null)\n : (lastTailNode.sibling = null);\n break;\n case \"collapsed\":\n lastTailNode = renderState.tail;\n for (var _lastTailNode = null; null !== lastTailNode; )\n null !== lastTailNode.alternate && (_lastTailNode = lastTailNode),\n (lastTailNode = lastTailNode.sibling);\n null === _lastTailNode\n ? hasRenderedATailFallback || null === renderState.tail\n ? (renderState.tail = null)\n : (renderState.tail.sibling = null)\n : (_lastTailNode.sibling = null);\n }\n }\n function bubbleProperties(completedWork) {\n var didBailout =\n null !== completedWork.alternate &&\n completedWork.alternate.child === completedWork.child,\n newChildLanes = 0,\n subtreeFlags = 0;\n if (didBailout)\n if ((completedWork.mode & ProfileMode) !== NoMode) {\n for (\n var _treeBaseDuration = completedWork.selfBaseDuration,\n _child2 = completedWork.child;\n null !== _child2;\n\n )\n (newChildLanes |= _child2.lanes | _child2.childLanes),\n (subtreeFlags |= _child2.subtreeFlags & 65011712),\n (subtreeFlags |= _child2.flags & 65011712),\n (_treeBaseDuration += _child2.treeBaseDuration),\n (_child2 = _child2.sibling);\n completedWork.treeBaseDuration = _treeBaseDuration;\n } else\n for (\n _treeBaseDuration = completedWork.child;\n null !== _treeBaseDuration;\n\n )\n (newChildLanes |=\n _treeBaseDuration.lanes | _treeBaseDuration.childLanes),\n (subtreeFlags |= _treeBaseDuration.subtreeFlags & 65011712),\n (subtreeFlags |= _treeBaseDuration.flags & 65011712),\n (_treeBaseDuration.return = completedWork),\n (_treeBaseDuration = _treeBaseDuration.sibling);\n else if ((completedWork.mode & ProfileMode) !== NoMode) {\n _treeBaseDuration = completedWork.actualDuration;\n _child2 = completedWork.selfBaseDuration;\n for (var child = completedWork.child; null !== child; )\n (newChildLanes |= child.lanes | child.childLanes),\n (subtreeFlags |= child.subtreeFlags),\n (subtreeFlags |= child.flags),\n (_treeBaseDuration += child.actualDuration),\n (_child2 += child.treeBaseDuration),\n (child = child.sibling);\n completedWork.actualDuration = _treeBaseDuration;\n completedWork.treeBaseDuration = _child2;\n } else\n for (\n _treeBaseDuration = completedWork.child;\n null !== _treeBaseDuration;\n\n )\n (newChildLanes |=\n _treeBaseDuration.lanes | _treeBaseDuration.childLanes),\n (subtreeFlags |= _treeBaseDuration.subtreeFlags),\n (subtreeFlags |= _treeBaseDuration.flags),\n (_treeBaseDuration.return = completedWork),\n (_treeBaseDuration = _treeBaseDuration.sibling);\n completedWork.subtreeFlags |= subtreeFlags;\n completedWork.childLanes = newChildLanes;\n return didBailout;\n }\n function completeWork(current, workInProgress, renderLanes) {\n var newProps = workInProgress.pendingProps;\n popTreeContext(workInProgress);\n switch (workInProgress.tag) {\n case 31:\n case 16:\n case 15:\n case 0:\n case 11:\n case 7:\n case 8:\n case 12:\n case 9:\n case 14:\n return bubbleProperties(workInProgress), null;\n case 1:\n return bubbleProperties(workInProgress), null;\n case 3:\n renderLanes = workInProgress.stateNode;\n newProps = null;\n null !== current && (newProps = current.memoizedState.cache);\n workInProgress.memoizedState.cache !== newProps &&\n (workInProgress.flags |= 2048);\n popProvider(CacheContext, workInProgress);\n popHostContainer(workInProgress);\n renderLanes.pendingContext &&\n ((renderLanes.context = renderLanes.pendingContext),\n (renderLanes.pendingContext = null));\n if (null === current || null === current.child)\n popHydrationState(workInProgress)\n ? (emitPendingHydrationWarnings(), markUpdate(workInProgress))\n : null === current ||\n (current.memoizedState.isDehydrated &&\n 0 === (workInProgress.flags & 256)) ||\n ((workInProgress.flags |= 1024),\n upgradeHydrationErrorsToRecoverable());\n bubbleProperties(workInProgress);\n return null;\n case 26:\n return (\n (renderLanes = workInProgress.memoizedState),\n null === current\n ? (markUpdate(workInProgress),\n null !== renderLanes\n ? (bubbleProperties(workInProgress),\n preloadResourceAndSuspendIfNeeded(\n workInProgress,\n renderLanes\n ))\n : (bubbleProperties(workInProgress),\n (workInProgress.flags &= -16777217)))\n : renderLanes\n ? renderLanes !== current.memoizedState\n ? (markUpdate(workInProgress),\n bubbleProperties(workInProgress),\n preloadResourceAndSuspendIfNeeded(\n workInProgress,\n renderLanes\n ))\n : (bubbleProperties(workInProgress),\n (workInProgress.flags &= -16777217))\n : (current.memoizedProps !== newProps &&\n markUpdate(workInProgress),\n bubbleProperties(workInProgress),\n (workInProgress.flags &= -16777217)),\n null\n );\n case 27:\n popHostContext(workInProgress);\n renderLanes = requiredContext(rootInstanceStackCursor.current);\n var _type = workInProgress.type;\n if (null !== current && null != workInProgress.stateNode)\n current.memoizedProps !== newProps && markUpdate(workInProgress);\n else {\n if (!newProps) {\n if (null === workInProgress.stateNode)\n throw Error(\n \"We must have new props for new mounts. This error is likely caused by a bug in React. Please file an issue.\"\n );\n bubbleProperties(workInProgress);\n return null;\n }\n current = getHostContext();\n popHydrationState(workInProgress)\n ? prepareToHydrateHostInstance(workInProgress, current)\n : ((current = resolveSingletonInstance(\n _type,\n newProps,\n renderLanes,\n current,\n !0\n )),\n (workInProgress.stateNode = current),\n markUpdate(workInProgress));\n }\n bubbleProperties(workInProgress);\n return null;\n case 5:\n popHostContext(workInProgress);\n renderLanes = workInProgress.type;\n if (null !== current && null != workInProgress.stateNode)\n current.memoizedProps !== newProps && markUpdate(workInProgress);\n else {\n if (!newProps) {\n if (null === workInProgress.stateNode)\n throw Error(\n \"We must have new props for new mounts. This error is likely caused by a bug in React. Please file an issue.\"\n );\n bubbleProperties(workInProgress);\n return null;\n }\n _type = getHostContext();\n if (popHydrationState(workInProgress))\n prepareToHydrateHostInstance(workInProgress, _type);\n else {\n current = requiredContext(rootInstanceStackCursor.current);\n validateDOMNesting(renderLanes, _type.ancestorInfo);\n _type = _type.context;\n current = getOwnerDocumentFromRootContainer(current);\n switch (_type) {\n case HostContextNamespaceSvg:\n current = current.createElementNS(SVG_NAMESPACE, renderLanes);\n break;\n case HostContextNamespaceMath:\n current = current.createElementNS(\n MATH_NAMESPACE,\n renderLanes\n );\n break;\n default:\n switch (renderLanes) {\n case \"svg\":\n current = current.createElementNS(\n SVG_NAMESPACE,\n renderLanes\n );\n break;\n case \"math\":\n current = current.createElementNS(\n MATH_NAMESPACE,\n renderLanes\n );\n break;\n case \"script\":\n current = current.createElement(\"div\");\n current.innerHTML = \"<script>\\x3c/script>\";\n current = current.removeChild(current.firstChild);\n break;\n case \"select\":\n current =\n \"string\" === typeof newProps.is\n ? current.createElement(\"select\", { is: newProps.is })\n : current.createElement(\"select\");\n newProps.multiple\n ? (current.multiple = !0)\n : newProps.size && (current.size = newProps.size);\n break;\n default:\n (current =\n \"string\" === typeof newProps.is\n ? current.createElement(renderLanes, {\n is: newProps.is\n })\n : current.createElement(renderLanes)),\n -1 === renderLanes.indexOf(\"-\") &&\n (renderLanes !== renderLanes.toLowerCase() &&\n console.error(\n \"<%s /> is using incorrect casing. Use PascalCase for React components, or lowercase for HTML elements.\",\n renderLanes\n ),\n \"[object HTMLUnknownElement]\" !==\n Object.prototype.toString.call(current) ||\n hasOwnProperty.call(\n warnedUnknownTags,\n renderLanes\n ) ||\n ((warnedUnknownTags[renderLanes] = !0),\n console.error(\n \"The tag <%s> is unrecognized in this browser. If you meant to render a React component, start its name with an uppercase letter.\",\n renderLanes\n )));\n }\n }\n current[internalInstanceKey] = workInProgress;\n current[internalPropsKey] = newProps;\n a: for (_type = workInProgress.child; null !== _type; ) {\n if (5 === _type.tag || 6 === _type.tag)\n current.appendChild(_type.stateNode);\n else if (\n 4 !== _type.tag &&\n 27 !== _type.tag &&\n null !== _type.child\n ) {\n _type.child.return = _type;\n _type = _type.child;\n continue;\n }\n if (_type === workInProgress) break a;\n for (; null === _type.sibling; ) {\n if (null === _type.return || _type.return === workInProgress)\n break a;\n _type = _type.return;\n }\n _type.sibling.return = _type.return;\n _type = _type.sibling;\n }\n workInProgress.stateNode = current;\n a: switch (\n (setInitialProperties(current, renderLanes, newProps),\n renderLanes)\n ) {\n case \"button\":\n case \"input\":\n case \"select\":\n case \"textarea\":\n current = !!newProps.autoFocus;\n break a;\n case \"img\":\n current = !0;\n break a;\n default:\n current = !1;\n }\n current && markUpdate(workInProgress);\n }\n }\n bubbleProperties(workInProgress);\n workInProgress.flags &= -16777217;\n return null;\n case 6:\n if (current && null != workInProgress.stateNode)\n current.memoizedProps !== newProps && markUpdate(workInProgress);\n else {\n if (\n \"string\" !== typeof newProps &&\n null === workInProgress.stateNode\n )\n throw Error(\n \"We must have new props for new mounts. This error is likely caused by a bug in React. Please file an issue.\"\n );\n current = requiredContext(rootInstanceStackCursor.current);\n renderLanes = getHostContext();\n if (popHydrationState(workInProgress)) {\n current = workInProgress.stateNode;\n renderLanes = workInProgress.memoizedProps;\n _type = !didSuspendOrErrorDEV;\n newProps = null;\n var returnFiber = hydrationParentFiber;\n if (null !== returnFiber)\n switch (returnFiber.tag) {\n case 3:\n _type &&\n ((_type = diffHydratedTextForDevWarnings(\n current,\n renderLanes,\n newProps\n )),\n null !== _type &&\n (buildHydrationDiffNode(workInProgress, 0).serverProps =\n _type));\n break;\n case 27:\n case 5:\n (newProps = returnFiber.memoizedProps),\n _type &&\n ((_type = diffHydratedTextForDevWarnings(\n current,\n renderLanes,\n newProps\n )),\n null !== _type &&\n (buildHydrationDiffNode(\n workInProgress,\n 0\n ).serverProps = _type));\n }\n current[internalInstanceKey] = workInProgress;\n current =\n current.nodeValue === renderLanes ||\n (null !== newProps &&\n !0 === newProps.suppressHydrationWarning) ||\n checkForUnmatchedText(current.nodeValue, renderLanes)\n ? !0\n : !1;\n current || throwOnHydrationMismatch(workInProgress);\n } else\n (_type = renderLanes.ancestorInfo.current),\n null != _type &&\n validateTextNesting(\n newProps,\n _type.tag,\n renderLanes.ancestorInfo.implicitRootScope\n ),\n (current =\n getOwnerDocumentFromRootContainer(current).createTextNode(\n newProps\n )),\n (current[internalInstanceKey] = workInProgress),\n (workInProgress.stateNode = current);\n }\n bubbleProperties(workInProgress);\n return null;\n case 13:\n newProps = workInProgress.memoizedState;\n if (\n null === current ||\n (null !== current.memoizedState &&\n null !== current.memoizedState.dehydrated)\n ) {\n _type = popHydrationState(workInProgress);\n if (null !== newProps && null !== newProps.dehydrated) {\n if (null === current) {\n if (!_type)\n throw Error(\n \"A dehydrated suspense component was completed without a hydrated node. This is probably a bug in React.\"\n );\n _type = workInProgress.memoizedState;\n _type = null !== _type ? _type.dehydrated : null;\n if (!_type)\n throw Error(\n \"Expected to have a hydrated suspense instance. This error is likely caused by a bug in React. Please file an issue.\"\n );\n _type[internalInstanceKey] = workInProgress;\n bubbleProperties(workInProgress);\n (workInProgress.mode & ProfileMode) !== NoMode &&\n null !== newProps &&\n ((_type = workInProgress.child),\n null !== _type &&\n (workInProgress.treeBaseDuration -=\n _type.treeBaseDuration));\n } else\n emitPendingHydrationWarnings(),\n resetHydrationState(),\n 0 === (workInProgress.flags & 128) &&\n (workInProgress.memoizedState = null),\n (workInProgress.flags |= 4),\n bubbleProperties(workInProgress),\n (workInProgress.mode & ProfileMode) !== NoMode &&\n null !== newProps &&\n ((_type = workInProgress.child),\n null !== _type &&\n (workInProgress.treeBaseDuration -=\n _type.treeBaseDuration));\n _type = !1;\n } else\n (_type = upgradeHydrationErrorsToRecoverable()),\n null !== current &&\n null !== current.memoizedState &&\n (current.memoizedState.hydrationErrors = _type),\n (_type = !0);\n if (!_type) {\n if (workInProgress.flags & 256)\n return popSuspenseHandler(workInProgress), workInProgress;\n popSuspenseHandler(workInProgress);\n return null;\n }\n }\n popSuspenseHandler(workInProgress);\n if (0 !== (workInProgress.flags & 128))\n return (\n (workInProgress.lanes = renderLanes),\n (workInProgress.mode & ProfileMode) !== NoMode &&\n transferActualDuration(workInProgress),\n workInProgress\n );\n renderLanes = null !== newProps;\n current = null !== current && null !== current.memoizedState;\n renderLanes &&\n ((newProps = workInProgress.child),\n (_type = null),\n null !== newProps.alternate &&\n null !== newProps.alternate.memoizedState &&\n null !== newProps.alternate.memoizedState.cachePool &&\n (_type = newProps.alternate.memoizedState.cachePool.pool),\n (returnFiber = null),\n null !== newProps.memoizedState &&\n null !== newProps.memoizedState.cachePool &&\n (returnFiber = newProps.memoizedState.cachePool.pool),\n returnFiber !== _type && (newProps.flags |= 2048));\n renderLanes !== current &&\n renderLanes &&\n (workInProgress.child.flags |= 8192);\n scheduleRetryEffect(workInProgress, workInProgress.updateQueue);\n bubbleProperties(workInProgress);\n (workInProgress.mode & ProfileMode) !== NoMode &&\n renderLanes &&\n ((current = workInProgress.child),\n null !== current &&\n (workInProgress.treeBaseDuration -= current.treeBaseDuration));\n return null;\n case 4:\n return (\n popHostContainer(workInProgress),\n null === current &&\n listenToAllSupportedEvents(\n workInProgress.stateNode.containerInfo\n ),\n bubbleProperties(workInProgress),\n null\n );\n case 10:\n return (\n popProvider(workInProgress.type, workInProgress),\n bubbleProperties(workInProgress),\n null\n );\n case 19:\n pop(suspenseStackCursor, workInProgress);\n _type = workInProgress.memoizedState;\n if (null === _type) return bubbleProperties(workInProgress), null;\n newProps = 0 !== (workInProgress.flags & 128);\n returnFiber = _type.rendering;\n if (null === returnFiber)\n if (newProps) cutOffTailIfNeeded(_type, !1);\n else {\n if (\n workInProgressRootExitStatus !== RootInProgress ||\n (null !== current && 0 !== (current.flags & 128))\n )\n for (current = workInProgress.child; null !== current; ) {\n returnFiber = findFirstSuspended(current);\n if (null !== returnFiber) {\n workInProgress.flags |= 128;\n cutOffTailIfNeeded(_type, !1);\n current = returnFiber.updateQueue;\n workInProgress.updateQueue = current;\n scheduleRetryEffect(workInProgress, current);\n workInProgress.subtreeFlags = 0;\n current = renderLanes;\n for (\n renderLanes = workInProgress.child;\n null !== renderLanes;\n\n )\n resetWorkInProgress(renderLanes, current),\n (renderLanes = renderLanes.sibling);\n push(\n suspenseStackCursor,\n (suspenseStackCursor.current &\n SubtreeSuspenseContextMask) |\n ForceSuspenseFallback,\n workInProgress\n );\n return workInProgress.child;\n }\n current = current.sibling;\n }\n null !== _type.tail &&\n now$1() > workInProgressRootRenderTargetTime &&\n ((workInProgress.flags |= 128),\n (newProps = !0),\n cutOffTailIfNeeded(_type, !1),\n (workInProgress.lanes = 4194304));\n }\n else {\n if (!newProps)\n if (\n ((current = findFirstSuspended(returnFiber)), null !== current)\n ) {\n if (\n ((workInProgress.flags |= 128),\n (newProps = !0),\n (current = current.updateQueue),\n (workInProgress.updateQueue = current),\n scheduleRetryEffect(workInProgress, current),\n cutOffTailIfNeeded(_type, !0),\n null === _type.tail &&\n \"hidden\" === _type.tailMode &&\n !returnFiber.alternate &&\n !isHydrating)\n )\n return bubbleProperties(workInProgress), null;\n } else\n 2 * now$1() - _type.renderingStartTime >\n workInProgressRootRenderTargetTime &&\n 536870912 !== renderLanes &&\n ((workInProgress.flags |= 128),\n (newProps = !0),\n cutOffTailIfNeeded(_type, !1),\n (workInProgress.lanes = 4194304));\n _type.isBackwards\n ? ((returnFiber.sibling = workInProgress.child),\n (workInProgress.child = returnFiber))\n : ((current = _type.last),\n null !== current\n ? (current.sibling = returnFiber)\n : (workInProgress.child = returnFiber),\n (_type.last = returnFiber));\n }\n if (null !== _type.tail)\n return (\n (current = _type.tail),\n (_type.rendering = current),\n (_type.tail = current.sibling),\n (_type.renderingStartTime = now$1()),\n (current.sibling = null),\n (renderLanes = suspenseStackCursor.current),\n (renderLanes = newProps\n ? (renderLanes & SubtreeSuspenseContextMask) |\n ForceSuspenseFallback\n : renderLanes & SubtreeSuspenseContextMask),\n push(suspenseStackCursor, renderLanes, workInProgress),\n current\n );\n bubbleProperties(workInProgress);\n return null;\n case 22:\n case 23:\n return (\n popSuspenseHandler(workInProgress),\n popHiddenContext(workInProgress),\n (newProps = null !== workInProgress.memoizedState),\n null !== current\n ? (null !== current.memoizedState) !== newProps &&\n (workInProgress.flags |= 8192)\n : newProps && (workInProgress.flags |= 8192),\n newProps\n ? 0 !== (renderLanes & 536870912) &&\n 0 === (workInProgress.flags & 128) &&\n (bubbleProperties(workInProgress),\n workInProgress.subtreeFlags & 6 &&\n (workInProgress.flags |= 8192))\n : bubbleProperties(workInProgress),\n (renderLanes = workInProgress.updateQueue),\n null !== renderLanes &&\n scheduleRetryEffect(workInProgress, renderLanes.retryQueue),\n (renderLanes = null),\n null !== current &&\n null !== current.memoizedState &&\n null !== current.memoizedState.cachePool &&\n (renderLanes = current.memoizedState.cachePool.pool),\n (newProps = null),\n null !== workInProgress.memoizedState &&\n null !== workInProgress.memoizedState.cachePool &&\n (newProps = workInProgress.memoizedState.cachePool.pool),\n newProps !== renderLanes && (workInProgress.flags |= 2048),\n null !== current && pop(resumedCache, workInProgress),\n null\n );\n case 24:\n return (\n (renderLanes = null),\n null !== current && (renderLanes = current.memoizedState.cache),\n workInProgress.memoizedState.cache !== renderLanes &&\n (workInProgress.flags |= 2048),\n popProvider(CacheContext, workInProgress),\n bubbleProperties(workInProgress),\n null\n );\n case 25:\n return null;\n case 30:\n return null;\n }\n throw Error(\n \"Unknown unit of work tag (\" +\n workInProgress.tag +\n \"). This error is likely caused by a bug in React. Please file an issue.\"\n );\n }\n function unwindWork(current, workInProgress) {\n popTreeContext(workInProgress);\n switch (workInProgress.tag) {\n case 1:\n return (\n (current = workInProgress.flags),\n current & 65536\n ? ((workInProgress.flags = (current & -65537) | 128),\n (workInProgress.mode & ProfileMode) !== NoMode &&\n transferActualDuration(workInProgress),\n workInProgress)\n : null\n );\n case 3:\n return (\n popProvider(CacheContext, workInProgress),\n popHostContainer(workInProgress),\n (current = workInProgress.flags),\n 0 !== (current & 65536) && 0 === (current & 128)\n ? ((workInProgress.flags = (current & -65537) | 128),\n workInProgress)\n : null\n );\n case 26:\n case 27:\n case 5:\n return popHostContext(workInProgress), null;\n case 13:\n popSuspenseHandler(workInProgress);\n current = workInProgress.memoizedState;\n if (null !== current && null !== current.dehydrated) {\n if (null === workInProgress.alternate)\n throw Error(\n \"Threw in newly mounted dehydrated component. This is likely a bug in React. Please file an issue.\"\n );\n resetHydrationState();\n }\n current = workInProgress.flags;\n return current & 65536\n ? ((workInProgress.flags = (current & -65537) | 128),\n (workInProgress.mode & ProfileMode) !== NoMode &&\n transferActualDuration(workInProgress),\n workInProgress)\n : null;\n case 19:\n return pop(suspenseStackCursor, workInProgress), null;\n case 4:\n return popHostContainer(workInProgress), null;\n case 10:\n return popProvider(workInProgress.type, workInProgress), null;\n case 22:\n case 23:\n return (\n popSuspenseHandler(workInProgress),\n popHiddenContext(workInProgress),\n null !== current && pop(resumedCache, workInProgress),\n (current = workInProgress.flags),\n current & 65536\n ? ((workInProgress.flags = (current & -65537) | 128),\n (workInProgress.mode & ProfileMode) !== NoMode &&\n transferActualDuration(workInProgress),\n workInProgress)\n : null\n );\n case 24:\n return popProvider(CacheContext, workInProgress), null;\n case 25:\n return null;\n default:\n return null;\n }\n }\n function unwindInterruptedWork(current, interruptedWork) {\n popTreeContext(interruptedWork);\n switch (interruptedWork.tag) {\n case 3:\n popProvider(CacheContext, interruptedWork);\n popHostContainer(interruptedWork);\n break;\n case 26:\n case 27:\n case 5:\n popHostContext(interruptedWork);\n break;\n case 4:\n popHostContainer(interruptedWork);\n break;\n case 13:\n popSuspenseHandler(interruptedWork);\n break;\n case 19:\n pop(suspenseStackCursor, interruptedWork);\n break;\n case 10:\n popProvider(interruptedWork.type, interruptedWork);\n break;\n case 22:\n case 23:\n popSuspenseHandler(interruptedWork);\n popHiddenContext(interruptedWork);\n null !== current && pop(resumedCache, interruptedWork);\n break;\n case 24:\n popProvider(CacheContext, interruptedWork);\n }\n }\n function shouldProfile(current) {\n return (current.mode & ProfileMode) !== NoMode;\n }\n function commitHookLayoutEffects(finishedWork, hookFlags) {\n shouldProfile(finishedWork)\n ? (startEffectTimer(),\n commitHookEffectListMount(hookFlags, finishedWork),\n recordEffectDuration())\n : commitHookEffectListMount(hookFlags, finishedWork);\n }\n function commitHookLayoutUnmountEffects(\n finishedWork,\n nearestMountedAncestor,\n hookFlags\n ) {\n shouldProfile(finishedWork)\n ? (startEffectTimer(),\n commitHookEffectListUnmount(\n hookFlags,\n finishedWork,\n nearestMountedAncestor\n ),\n recordEffectDuration())\n : commitHookEffectListUnmount(\n hookFlags,\n finishedWork,\n nearestMountedAncestor\n );\n }\n function commitHookEffectListMount(flags, finishedWork) {\n try {\n var updateQueue = finishedWork.updateQueue,\n lastEffect = null !== updateQueue ? updateQueue.lastEffect : null;\n if (null !== lastEffect) {\n var firstEffect = lastEffect.next;\n updateQueue = firstEffect;\n do {\n if (\n (updateQueue.tag & flags) === flags &&\n ((flags & Passive) !== NoFlags\n ? null !== injectedProfilingHooks &&\n \"function\" ===\n typeof injectedProfilingHooks.markComponentPassiveEffectMountStarted &&\n injectedProfilingHooks.markComponentPassiveEffectMountStarted(\n finishedWork\n )\n : (flags & Layout) !== NoFlags &&\n null !== injectedProfilingHooks &&\n \"function\" ===\n typeof injectedProfilingHooks.markComponentLayoutEffectMountStarted &&\n injectedProfilingHooks.markComponentLayoutEffectMountStarted(\n finishedWork\n ),\n (lastEffect = void 0),\n (flags & Insertion) !== NoFlags &&\n (isRunningInsertionEffect = !0),\n (lastEffect = runWithFiberInDEV(\n finishedWork,\n callCreateInDEV,\n updateQueue\n )),\n (flags & Insertion) !== NoFlags &&\n (isRunningInsertionEffect = !1),\n (flags & Passive) !== NoFlags\n ? null !== injectedProfilingHooks &&\n \"function\" ===\n typeof injectedProfilingHooks.markComponentPassiveEffectMountStopped &&\n injectedProfilingHooks.markComponentPassiveEffectMountStopped()\n : (flags & Layout) !== NoFlags &&\n null !== injectedProfilingHooks &&\n \"function\" ===\n typeof injectedProfilingHooks.markComponentLayoutEffectMountStopped &&\n injectedProfilingHooks.markComponentLayoutEffectMountStopped(),\n void 0 !== lastEffect && \"function\" !== typeof lastEffect)\n ) {\n var hookName = void 0;\n hookName =\n 0 !== (updateQueue.tag & Layout)\n ? \"useLayoutEffect\"\n : 0 !== (updateQueue.tag & Insertion)\n ? \"useInsertionEffect\"\n : \"useEffect\";\n var addendum = void 0;\n addendum =\n null === lastEffect\n ? \" You returned null. If your effect does not require clean up, return undefined (or nothing).\"\n : \"function\" === typeof lastEffect.then\n ? \"\\n\\nIt looks like you wrote \" +\n hookName +\n \"(async () => ...) or returned a Promise. Instead, write the async function inside your effect and call it immediately:\\n\\n\" +\n hookName +\n \"(() => {\\n async function fetchData() {\\n // You can await here\\n const response = await MyAPI.getData(someId);\\n // ...\\n }\\n fetchData();\\n}, [someId]); // Or [] if effect doesn't need props or state\\n\\nLearn more about data fetching with Hooks: https://react.dev/link/hooks-data-fetching\"\n : \" You returned: \" + lastEffect;\n runWithFiberInDEV(\n finishedWork,\n function (n, a) {\n console.error(\n \"%s must not return anything besides a function, which is used for clean-up.%s\",\n n,\n a\n );\n },\n hookName,\n addendum\n );\n }\n updateQueue = updateQueue.next;\n } while (updateQueue !== firstEffect);\n }\n } catch (error) {\n captureCommitPhaseError(finishedWork, finishedWork.return, error);\n }\n }\n function commitHookEffectListUnmount(\n flags,\n finishedWork,\n nearestMountedAncestor\n ) {\n try {\n var updateQueue = finishedWork.updateQueue,\n lastEffect = null !== updateQueue ? updateQueue.lastEffect : null;\n if (null !== lastEffect) {\n var firstEffect = lastEffect.next;\n updateQueue = firstEffect;\n do {\n if ((updateQueue.tag & flags) === flags) {\n var inst = updateQueue.inst,\n destroy = inst.destroy;\n void 0 !== destroy &&\n ((inst.destroy = void 0),\n (flags & Passive) !== NoFlags\n ? null !== injectedProfilingHooks &&\n \"function\" ===\n typeof injectedProfilingHooks.markComponentPassiveEffectUnmountStarted &&\n injectedProfilingHooks.markComponentPassiveEffectUnmountStarted(\n finishedWork\n )\n : (flags & Layout) !== NoFlags &&\n null !== injectedProfilingHooks &&\n \"function\" ===\n typeof injectedProfilingHooks.markComponentLayoutEffectUnmountStarted &&\n injectedProfilingHooks.markComponentLayoutEffectUnmountStarted(\n finishedWork\n ),\n (flags & Insertion) !== NoFlags &&\n (isRunningInsertionEffect = !0),\n (lastEffect = finishedWork),\n runWithFiberInDEV(\n lastEffect,\n callDestroyInDEV,\n lastEffect,\n nearestMountedAncestor,\n destroy\n ),\n (flags & Insertion) !== NoFlags &&\n (isRunningInsertionEffect = !1),\n (flags & Passive) !== NoFlags\n ? null !== injectedProfilingHooks &&\n \"function\" ===\n typeof injectedProfilingHooks.markComponentPassiveEffectUnmountStopped &&\n injectedProfilingHooks.markComponentPassiveEffectUnmountStopped()\n : (flags & Layout) !== NoFlags &&\n null !== injectedProfilingHooks &&\n \"function\" ===\n typeof injectedProfilingHooks.markComponentLayoutEffectUnmountStopped &&\n injectedProfilingHooks.markComponentLayoutEffectUnmountStopped());\n }\n updateQueue = updateQueue.next;\n } while (updateQueue !== firstEffect);\n }\n } catch (error) {\n captureCommitPhaseError(finishedWork, finishedWork.return, error);\n }\n }\n function commitHookPassiveMountEffects(finishedWork, hookFlags) {\n shouldProfile(finishedWork)\n ? (startEffectTimer(),\n commitHookEffectListMount(hookFlags, finishedWork),\n recordEffectDuration())\n : commitHookEffectListMount(hookFlags, finishedWork);\n }\n function commitHookPassiveUnmountEffects(\n finishedWork,\n nearestMountedAncestor,\n hookFlags\n ) {\n shouldProfile(finishedWork)\n ? (startEffectTimer(),\n commitHookEffectListUnmount(\n hookFlags,\n finishedWork,\n nearestMountedAncestor\n ),\n recordEffectDuration())\n : commitHookEffectListUnmount(\n hookFlags,\n finishedWork,\n nearestMountedAncestor\n );\n }\n function commitClassCallbacks(finishedWork) {\n var updateQueue = finishedWork.updateQueue;\n if (null !== updateQueue) {\n var instance = finishedWork.stateNode;\n finishedWork.type.defaultProps ||\n \"ref\" in finishedWork.memoizedProps ||\n didWarnAboutReassigningProps ||\n (instance.props !== finishedWork.memoizedProps &&\n console.error(\n \"Expected %s props to match memoized props before processing the update queue. This might either be because of a bug in React, or because a component reassigns its own `this.props`. Please file an issue.\",\n getComponentNameFromFiber(finishedWork) || \"instance\"\n ),\n instance.state !== finishedWork.memoizedState &&\n console.error(\n \"Expected %s state to match memoized state before processing the update queue. This might either be because of a bug in React, or because a component reassigns its own `this.state`. Please file an issue.\",\n getComponentNameFromFiber(finishedWork) || \"instance\"\n ));\n try {\n runWithFiberInDEV(\n finishedWork,\n commitCallbacks,\n updateQueue,\n instance\n );\n } catch (error) {\n captureCommitPhaseError(finishedWork, finishedWork.return, error);\n }\n }\n }\n function callGetSnapshotBeforeUpdates(instance, prevProps, prevState) {\n return instance.getSnapshotBeforeUpdate(prevProps, prevState);\n }\n function commitClassSnapshot(finishedWork, current) {\n var prevProps = current.memoizedProps,\n prevState = current.memoizedState;\n current = finishedWork.stateNode;\n finishedWork.type.defaultProps ||\n \"ref\" in finishedWork.memoizedProps ||\n didWarnAboutReassigningProps ||\n (current.props !== finishedWork.memoizedProps &&\n console.error(\n \"Expected %s props to match memoized props before getSnapshotBeforeUpdate. This might either be because of a bug in React, or because a component reassigns its own `this.props`. Please file an issue.\",\n getComponentNameFromFiber(finishedWork) || \"instance\"\n ),\n current.state !== finishedWork.memoizedState &&\n console.error(\n \"Expected %s state to match memoized state before getSnapshotBeforeUpdate. This might either be because of a bug in React, or because a component reassigns its own `this.state`. Please file an issue.\",\n getComponentNameFromFiber(finishedWork) || \"instance\"\n ));\n try {\n var resolvedPrevProps = resolveClassComponentProps(\n finishedWork.type,\n prevProps,\n finishedWork.elementType === finishedWork.type\n );\n var snapshot = runWithFiberInDEV(\n finishedWork,\n callGetSnapshotBeforeUpdates,\n current,\n resolvedPrevProps,\n prevState\n );\n prevProps = didWarnAboutUndefinedSnapshotBeforeUpdate;\n void 0 !== snapshot ||\n prevProps.has(finishedWork.type) ||\n (prevProps.add(finishedWork.type),\n runWithFiberInDEV(finishedWork, function () {\n console.error(\n \"%s.getSnapshotBeforeUpdate(): A snapshot value (or null) must be returned. You have returned undefined.\",\n getComponentNameFromFiber(finishedWork)\n );\n }));\n current.__reactInternalSnapshotBeforeUpdate = snapshot;\n } catch (error) {\n captureCommitPhaseError(finishedWork, finishedWork.return, error);\n }\n }\n function safelyCallComponentWillUnmount(\n current,\n nearestMountedAncestor,\n instance\n ) {\n instance.props = resolveClassComponentProps(\n current.type,\n current.memoizedProps\n );\n instance.state = current.memoizedState;\n shouldProfile(current)\n ? (startEffectTimer(),\n runWithFiberInDEV(\n current,\n callComponentWillUnmountInDEV,\n current,\n nearestMountedAncestor,\n instance\n ),\n recordEffectDuration())\n : runWithFiberInDEV(\n current,\n callComponentWillUnmountInDEV,\n current,\n nearestMountedAncestor,\n instance\n );\n }\n function commitAttachRef(finishedWork) {\n var ref = finishedWork.ref;\n if (null !== ref) {\n switch (finishedWork.tag) {\n case 26:\n case 27:\n case 5:\n var instanceToUse = finishedWork.stateNode;\n break;\n case 30:\n instanceToUse = finishedWork.stateNode;\n break;\n default:\n instanceToUse = finishedWork.stateNode;\n }\n if (\"function\" === typeof ref)\n if (shouldProfile(finishedWork))\n try {\n startEffectTimer(),\n (finishedWork.refCleanup = ref(instanceToUse));\n } finally {\n recordEffectDuration();\n }\n else finishedWork.refCleanup = ref(instanceToUse);\n else\n \"string\" === typeof ref\n ? console.error(\"String refs are no longer supported.\")\n : ref.hasOwnProperty(\"current\") ||\n console.error(\n \"Unexpected ref object provided for %s. Use either a ref-setter function or React.createRef().\",\n getComponentNameFromFiber(finishedWork)\n ),\n (ref.current = instanceToUse);\n }\n }\n function safelyAttachRef(current, nearestMountedAncestor) {\n try {\n runWithFiberInDEV(current, commitAttachRef, current);\n } catch (error) {\n captureCommitPhaseError(current, nearestMountedAncestor, error);\n }\n }\n function safelyDetachRef(current, nearestMountedAncestor) {\n var ref = current.ref,\n refCleanup = current.refCleanup;\n if (null !== ref)\n if (\"function\" === typeof refCleanup)\n try {\n if (shouldProfile(current))\n try {\n startEffectTimer(), runWithFiberInDEV(current, refCleanup);\n } finally {\n recordEffectDuration(current);\n }\n else runWithFiberInDEV(current, refCleanup);\n } catch (error) {\n captureCommitPhaseError(current, nearestMountedAncestor, error);\n } finally {\n (current.refCleanup = null),\n (current = current.alternate),\n null != current && (current.refCleanup = null);\n }\n else if (\"function\" === typeof ref)\n try {\n if (shouldProfile(current))\n try {\n startEffectTimer(), runWithFiberInDEV(current, ref, null);\n } finally {\n recordEffectDuration(current);\n }\n else runWithFiberInDEV(current, ref, null);\n } catch (error$7) {\n captureCommitPhaseError(current, nearestMountedAncestor, error$7);\n }\n else ref.current = null;\n }\n function commitProfiler(\n finishedWork,\n current,\n commitStartTime,\n effectDuration\n ) {\n var _finishedWork$memoize = finishedWork.memoizedProps,\n id = _finishedWork$memoize.id,\n onCommit = _finishedWork$memoize.onCommit;\n _finishedWork$memoize = _finishedWork$memoize.onRender;\n current = null === current ? \"mount\" : \"update\";\n currentUpdateIsNested && (current = \"nested-update\");\n \"function\" === typeof _finishedWork$memoize &&\n _finishedWork$memoize(\n id,\n current,\n finishedWork.actualDuration,\n finishedWork.treeBaseDuration,\n finishedWork.actualStartTime,\n commitStartTime\n );\n \"function\" === typeof onCommit &&\n onCommit(\n finishedWork.memoizedProps.id,\n current,\n effectDuration,\n commitStartTime\n );\n }\n function commitProfilerPostCommitImpl(\n finishedWork,\n current,\n commitStartTime,\n passiveEffectDuration\n ) {\n var _finishedWork$memoize2 = finishedWork.memoizedProps;\n finishedWork = _finishedWork$memoize2.id;\n _finishedWork$memoize2 = _finishedWork$memoize2.onPostCommit;\n current = null === current ? \"mount\" : \"update\";\n currentUpdateIsNested && (current = \"nested-update\");\n \"function\" === typeof _finishedWork$memoize2 &&\n _finishedWork$memoize2(\n finishedWork,\n current,\n passiveEffectDuration,\n commitStartTime\n );\n }\n function commitHostMount(finishedWork) {\n var type = finishedWork.type,\n props = finishedWork.memoizedProps,\n instance = finishedWork.stateNode;\n try {\n runWithFiberInDEV(\n finishedWork,\n commitMount,\n instance,\n type,\n props,\n finishedWork\n );\n } catch (error) {\n captureCommitPhaseError(finishedWork, finishedWork.return, error);\n }\n }\n function commitHostUpdate(finishedWork, newProps, oldProps) {\n try {\n runWithFiberInDEV(\n finishedWork,\n commitUpdate,\n finishedWork.stateNode,\n finishedWork.type,\n oldProps,\n newProps,\n finishedWork\n );\n } catch (error) {\n captureCommitPhaseError(finishedWork, finishedWork.return, error);\n }\n }\n function isHostParent(fiber) {\n return (\n 5 === fiber.tag ||\n 3 === fiber.tag ||\n 26 === fiber.tag ||\n (27 === fiber.tag && isSingletonScope(fiber.type)) ||\n 4 === fiber.tag\n );\n }\n function getHostSibling(fiber) {\n a: for (;;) {\n for (; null === fiber.sibling; ) {\n if (null === fiber.return || isHostParent(fiber.return)) return null;\n fiber = fiber.return;\n }\n fiber.sibling.return = fiber.return;\n for (\n fiber = fiber.sibling;\n 5 !== fiber.tag && 6 !== fiber.tag && 18 !== fiber.tag;\n\n ) {\n if (27 === fiber.tag && isSingletonScope(fiber.type)) continue a;\n if (fiber.flags & 2) continue a;\n if (null === fiber.child || 4 === fiber.tag) continue a;\n else (fiber.child.return = fiber), (fiber = fiber.child);\n }\n if (!(fiber.flags & 2)) return fiber.stateNode;\n }\n }\n function insertOrAppendPlacementNodeIntoContainer(node, before, parent) {\n var tag = node.tag;\n if (5 === tag || 6 === tag)\n (node = node.stateNode),\n before\n ? (9 === parent.nodeType\n ? parent.body\n : \"HTML\" === parent.nodeName\n ? parent.ownerDocument.body\n : parent\n ).insertBefore(node, before)\n : ((before =\n 9 === parent.nodeType\n ? parent.body\n : \"HTML\" === parent.nodeName\n ? parent.ownerDocument.body\n : parent),\n before.appendChild(node),\n (parent = parent._reactRootContainer),\n (null !== parent && void 0 !== parent) ||\n null !== before.onclick ||\n (before.onclick = noop$1));\n else if (\n 4 !== tag &&\n (27 === tag &&\n isSingletonScope(node.type) &&\n ((parent = node.stateNode), (before = null)),\n (node = node.child),\n null !== node)\n )\n for (\n insertOrAppendPlacementNodeIntoContainer(node, before, parent),\n node = node.sibling;\n null !== node;\n\n )\n insertOrAppendPlacementNodeIntoContainer(node, before, parent),\n (node = node.sibling);\n }\n function insertOrAppendPlacementNode(node, before, parent) {\n var tag = node.tag;\n if (5 === tag || 6 === tag)\n (node = node.stateNode),\n before ? parent.insertBefore(node, before) : parent.appendChild(node);\n else if (\n 4 !== tag &&\n (27 === tag && isSingletonScope(node.type) && (parent = node.stateNode),\n (node = node.child),\n null !== node)\n )\n for (\n insertOrAppendPlacementNode(node, before, parent),\n node = node.sibling;\n null !== node;\n\n )\n insertOrAppendPlacementNode(node, before, parent),\n (node = node.sibling);\n }\n function commitPlacement(finishedWork) {\n for (\n var hostParentFiber, parentFiber = finishedWork.return;\n null !== parentFiber;\n\n ) {\n if (isHostParent(parentFiber)) {\n hostParentFiber = parentFiber;\n break;\n }\n parentFiber = parentFiber.return;\n }\n if (null == hostParentFiber)\n throw Error(\n \"Expected to find a host parent. This error is likely caused by a bug in React. Please file an issue.\"\n );\n switch (hostParentFiber.tag) {\n case 27:\n hostParentFiber = hostParentFiber.stateNode;\n parentFiber = getHostSibling(finishedWork);\n insertOrAppendPlacementNode(\n finishedWork,\n parentFiber,\n hostParentFiber\n );\n break;\n case 5:\n parentFiber = hostParentFiber.stateNode;\n hostParentFiber.flags & 32 &&\n (resetTextContent(parentFiber), (hostParentFiber.flags &= -33));\n hostParentFiber = getHostSibling(finishedWork);\n insertOrAppendPlacementNode(\n finishedWork,\n hostParentFiber,\n parentFiber\n );\n break;\n case 3:\n case 4:\n hostParentFiber = hostParentFiber.stateNode.containerInfo;\n parentFiber = getHostSibling(finishedWork);\n insertOrAppendPlacementNodeIntoContainer(\n finishedWork,\n parentFiber,\n hostParentFiber\n );\n break;\n default:\n throw Error(\n \"Invalid host parent fiber. This error is likely caused by a bug in React. Please file an issue.\"\n );\n }\n }\n function commitHostSingletonAcquisition(finishedWork) {\n var singleton = finishedWork.stateNode,\n props = finishedWork.memoizedProps;\n try {\n runWithFiberInDEV(\n finishedWork,\n acquireSingletonInstance,\n finishedWork.type,\n props,\n singleton,\n finishedWork\n );\n } catch (error) {\n captureCommitPhaseError(finishedWork, finishedWork.return, error);\n }\n }\n function commitBeforeMutationEffects(root, firstChild) {\n root = root.containerInfo;\n eventsEnabled = _enabled;\n root = getActiveElementDeep(root);\n if (hasSelectionCapabilities(root)) {\n if (\"selectionStart\" in root)\n var JSCompiler_temp = {\n start: root.selectionStart,\n end: root.selectionEnd\n };\n else\n a: {\n JSCompiler_temp =\n ((JSCompiler_temp = root.ownerDocument) &&\n JSCompiler_temp.defaultView) ||\n window;\n var selection =\n JSCompiler_temp.getSelection && JSCompiler_temp.getSelection();\n if (selection && 0 !== selection.rangeCount) {\n JSCompiler_temp = selection.anchorNode;\n var anchorOffset = selection.anchorOffset,\n focusNode = selection.focusNode;\n selection = selection.focusOffset;\n try {\n JSCompiler_temp.nodeType, focusNode.nodeType;\n } catch (e$2) {\n JSCompiler_temp = null;\n break a;\n }\n var length = 0,\n start = -1,\n end = -1,\n indexWithinAnchor = 0,\n indexWithinFocus = 0,\n node = root,\n parentNode = null;\n b: for (;;) {\n for (var next; ; ) {\n node !== JSCompiler_temp ||\n (0 !== anchorOffset && 3 !== node.nodeType) ||\n (start = length + anchorOffset);\n node !== focusNode ||\n (0 !== selection && 3 !== node.nodeType) ||\n (end = length + selection);\n 3 === node.nodeType && (length += node.nodeValue.length);\n if (null === (next = node.firstChild)) break;\n parentNode = node;\n node = next;\n }\n for (;;) {\n if (node === root) break b;\n parentNode === JSCompiler_temp &&\n ++indexWithinAnchor === anchorOffset &&\n (start = length);\n parentNode === focusNode &&\n ++indexWithinFocus === selection &&\n (end = length);\n if (null !== (next = node.nextSibling)) break;\n node = parentNode;\n parentNode = node.parentNode;\n }\n node = next;\n }\n JSCompiler_temp =\n -1 === start || -1 === end ? null : { start: start, end: end };\n } else JSCompiler_temp = null;\n }\n JSCompiler_temp = JSCompiler_temp || { start: 0, end: 0 };\n } else JSCompiler_temp = null;\n selectionInformation = {\n focusedElem: root,\n selectionRange: JSCompiler_temp\n };\n _enabled = !1;\n for (nextEffect = firstChild; null !== nextEffect; )\n if (\n ((firstChild = nextEffect),\n (root = firstChild.child),\n 0 !== (firstChild.subtreeFlags & 1024) && null !== root)\n )\n (root.return = firstChild), (nextEffect = root);\n else\n for (; null !== nextEffect; ) {\n root = firstChild = nextEffect;\n JSCompiler_temp = root.alternate;\n anchorOffset = root.flags;\n switch (root.tag) {\n case 0:\n break;\n case 11:\n case 15:\n break;\n case 1:\n 0 !== (anchorOffset & 1024) &&\n null !== JSCompiler_temp &&\n commitClassSnapshot(root, JSCompiler_temp);\n break;\n case 3:\n if (0 !== (anchorOffset & 1024))\n if (\n ((root = root.stateNode.containerInfo),\n (JSCompiler_temp = root.nodeType),\n 9 === JSCompiler_temp)\n )\n clearContainerSparingly(root);\n else if (1 === JSCompiler_temp)\n switch (root.nodeName) {\n case \"HEAD\":\n case \"HTML\":\n case \"BODY\":\n clearContainerSparingly(root);\n break;\n default:\n root.textContent = \"\";\n }\n break;\n case 5:\n case 26:\n case 27:\n case 6:\n case 4:\n case 17:\n break;\n default:\n if (0 !== (anchorOffset & 1024))\n throw Error(\n \"This unit of work tag should not have side-effects. This error is likely caused by a bug in React. Please file an issue.\"\n );\n }\n root = firstChild.sibling;\n if (null !== root) {\n root.return = firstChild.return;\n nextEffect = root;\n break;\n }\n nextEffect = firstChild.return;\n }\n }\n function commitLayoutEffectOnFiber(finishedRoot, current, finishedWork) {\n var flags = finishedWork.flags;\n switch (finishedWork.tag) {\n case 0:\n case 11:\n case 15:\n recursivelyTraverseLayoutEffects(finishedRoot, finishedWork);\n flags & 4 &&\n commitHookLayoutEffects(finishedWork, Layout | HasEffect);\n break;\n case 1:\n recursivelyTraverseLayoutEffects(finishedRoot, finishedWork);\n if (flags & 4)\n if (((finishedRoot = finishedWork.stateNode), null === current))\n finishedWork.type.defaultProps ||\n \"ref\" in finishedWork.memoizedProps ||\n didWarnAboutReassigningProps ||\n (finishedRoot.props !== finishedWork.memoizedProps &&\n console.error(\n \"Expected %s props to match memoized props before componentDidMount. This might either be because of a bug in React, or because a component reassigns its own `this.props`. Please file an issue.\",\n getComponentNameFromFiber(finishedWork) || \"instance\"\n ),\n finishedRoot.state !== finishedWork.memoizedState &&\n console.error(\n \"Expected %s state to match memoized state before componentDidMount. This might either be because of a bug in React, or because a component reassigns its own `this.state`. Please file an issue.\",\n getComponentNameFromFiber(finishedWork) || \"instance\"\n )),\n shouldProfile(finishedWork)\n ? (startEffectTimer(),\n runWithFiberInDEV(\n finishedWork,\n callComponentDidMountInDEV,\n finishedWork,\n finishedRoot\n ),\n recordEffectDuration())\n : runWithFiberInDEV(\n finishedWork,\n callComponentDidMountInDEV,\n finishedWork,\n finishedRoot\n );\n else {\n var prevProps = resolveClassComponentProps(\n finishedWork.type,\n current.memoizedProps\n );\n current = current.memoizedState;\n finishedWork.type.defaultProps ||\n \"ref\" in finishedWork.memoizedProps ||\n didWarnAboutReassigningProps ||\n (finishedRoot.props !== finishedWork.memoizedProps &&\n console.error(\n \"Expected %s props to match memoized props before componentDidUpdate. This might either be because of a bug in React, or because a component reassigns its own `this.props`. Please file an issue.\",\n getComponentNameFromFiber(finishedWork) || \"instance\"\n ),\n finishedRoot.state !== finishedWork.memoizedState &&\n console.error(\n \"Expected %s state to match memoized state before componentDidUpdate. This might either be because of a bug in React, or because a component reassigns its own `this.state`. Please file an issue.\",\n getComponentNameFromFiber(finishedWork) || \"instance\"\n ));\n shouldProfile(finishedWork)\n ? (startEffectTimer(),\n runWithFiberInDEV(\n finishedWork,\n callComponentDidUpdateInDEV,\n finishedWork,\n finishedRoot,\n prevProps,\n current,\n finishedRoot.__reactInternalSnapshotBeforeUpdate\n ),\n recordEffectDuration())\n : runWithFiberInDEV(\n finishedWork,\n callComponentDidUpdateInDEV,\n finishedWork,\n finishedRoot,\n prevProps,\n current,\n finishedRoot.__reactInternalSnapshotBeforeUpdate\n );\n }\n flags & 64 && commitClassCallbacks(finishedWork);\n flags & 512 && safelyAttachRef(finishedWork, finishedWork.return);\n break;\n case 3:\n current = pushNestedEffectDurations();\n recursivelyTraverseLayoutEffects(finishedRoot, finishedWork);\n if (\n flags & 64 &&\n ((flags = finishedWork.updateQueue), null !== flags)\n ) {\n prevProps = null;\n if (null !== finishedWork.child)\n switch (finishedWork.child.tag) {\n case 27:\n case 5:\n prevProps = finishedWork.child.stateNode;\n break;\n case 1:\n prevProps = finishedWork.child.stateNode;\n }\n try {\n runWithFiberInDEV(\n finishedWork,\n commitCallbacks,\n flags,\n prevProps\n );\n } catch (error) {\n captureCommitPhaseError(finishedWork, finishedWork.return, error);\n }\n }\n finishedRoot.effectDuration += popNestedEffectDurations(current);\n break;\n case 27:\n null === current &&\n flags & 4 &&\n commitHostSingletonAcquisition(finishedWork);\n case 26:\n case 5:\n recursivelyTraverseLayoutEffects(finishedRoot, finishedWork);\n null === current && flags & 4 && commitHostMount(finishedWork);\n flags & 512 && safelyAttachRef(finishedWork, finishedWork.return);\n break;\n case 12:\n if (flags & 4) {\n flags = pushNestedEffectDurations();\n recursivelyTraverseLayoutEffects(finishedRoot, finishedWork);\n finishedRoot = finishedWork.stateNode;\n finishedRoot.effectDuration += bubbleNestedEffectDurations(flags);\n try {\n runWithFiberInDEV(\n finishedWork,\n commitProfiler,\n finishedWork,\n current,\n commitStartTime,\n finishedRoot.effectDuration\n );\n } catch (error) {\n captureCommitPhaseError(finishedWork, finishedWork.return, error);\n }\n } else recursivelyTraverseLayoutEffects(finishedRoot, finishedWork);\n break;\n case 13:\n recursivelyTraverseLayoutEffects(finishedRoot, finishedWork);\n flags & 4 &&\n commitSuspenseHydrationCallbacks(finishedRoot, finishedWork);\n flags & 64 &&\n ((finishedRoot = finishedWork.memoizedState),\n null !== finishedRoot &&\n ((finishedRoot = finishedRoot.dehydrated),\n null !== finishedRoot &&\n ((finishedWork = retryDehydratedSuspenseBoundary.bind(\n null,\n finishedWork\n )),\n registerSuspenseInstanceRetry(finishedRoot, finishedWork))));\n break;\n case 22:\n flags =\n null !== finishedWork.memoizedState || offscreenSubtreeIsHidden;\n if (!flags) {\n current =\n (null !== current && null !== current.memoizedState) ||\n offscreenSubtreeWasHidden;\n prevProps = offscreenSubtreeIsHidden;\n var prevOffscreenSubtreeWasHidden = offscreenSubtreeWasHidden;\n offscreenSubtreeIsHidden = flags;\n (offscreenSubtreeWasHidden = current) &&\n !prevOffscreenSubtreeWasHidden\n ? recursivelyTraverseReappearLayoutEffects(\n finishedRoot,\n finishedWork,\n 0 !== (finishedWork.subtreeFlags & 8772)\n )\n : recursivelyTraverseLayoutEffects(finishedRoot, finishedWork);\n offscreenSubtreeIsHidden = prevProps;\n offscreenSubtreeWasHidden = prevOffscreenSubtreeWasHidden;\n }\n break;\n case 30:\n break;\n default:\n recursivelyTraverseLayoutEffects(finishedRoot, finishedWork);\n }\n }\n function detachFiberAfterEffects(fiber) {\n var alternate = fiber.alternate;\n null !== alternate &&\n ((fiber.alternate = null), detachFiberAfterEffects(alternate));\n fiber.child = null;\n fiber.deletions = null;\n fiber.sibling = null;\n 5 === fiber.tag &&\n ((alternate = fiber.stateNode),\n null !== alternate && detachDeletedInstance(alternate));\n fiber.stateNode = null;\n fiber._debugOwner = null;\n fiber.return = null;\n fiber.dependencies = null;\n fiber.memoizedProps = null;\n fiber.memoizedState = null;\n fiber.pendingProps = null;\n fiber.stateNode = null;\n fiber.updateQueue = null;\n }\n function recursivelyTraverseDeletionEffects(\n finishedRoot,\n nearestMountedAncestor,\n parent\n ) {\n for (parent = parent.child; null !== parent; )\n commitDeletionEffectsOnFiber(\n finishedRoot,\n nearestMountedAncestor,\n parent\n ),\n (parent = parent.sibling);\n }\n function commitDeletionEffectsOnFiber(\n finishedRoot,\n nearestMountedAncestor,\n deletedFiber\n ) {\n if (\n injectedHook &&\n \"function\" === typeof injectedHook.onCommitFiberUnmount\n )\n try {\n injectedHook.onCommitFiberUnmount(rendererID, deletedFiber);\n } catch (err) {\n hasLoggedError ||\n ((hasLoggedError = !0),\n console.error(\n \"React instrumentation encountered an error: %s\",\n err\n ));\n }\n switch (deletedFiber.tag) {\n case 26:\n offscreenSubtreeWasHidden ||\n safelyDetachRef(deletedFiber, nearestMountedAncestor);\n recursivelyTraverseDeletionEffects(\n finishedRoot,\n nearestMountedAncestor,\n deletedFiber\n );\n deletedFiber.memoizedState\n ? deletedFiber.memoizedState.count--\n : deletedFiber.stateNode &&\n ((deletedFiber = deletedFiber.stateNode),\n deletedFiber.parentNode.removeChild(deletedFiber));\n break;\n case 27:\n offscreenSubtreeWasHidden ||\n safelyDetachRef(deletedFiber, nearestMountedAncestor);\n var prevHostParent = hostParent,\n prevHostParentIsContainer = hostParentIsContainer;\n isSingletonScope(deletedFiber.type) &&\n ((hostParent = deletedFiber.stateNode),\n (hostParentIsContainer = !1));\n recursivelyTraverseDeletionEffects(\n finishedRoot,\n nearestMountedAncestor,\n deletedFiber\n );\n runWithFiberInDEV(\n deletedFiber,\n releaseSingletonInstance,\n deletedFiber.stateNode\n );\n hostParent = prevHostParent;\n hostParentIsContainer = prevHostParentIsContainer;\n break;\n case 5:\n offscreenSubtreeWasHidden ||\n safelyDetachRef(deletedFiber, nearestMountedAncestor);\n case 6:\n prevHostParent = hostParent;\n prevHostParentIsContainer = hostParentIsContainer;\n hostParent = null;\n recursivelyTraverseDeletionEffects(\n finishedRoot,\n nearestMountedAncestor,\n deletedFiber\n );\n hostParent = prevHostParent;\n hostParentIsContainer = prevHostParentIsContainer;\n if (null !== hostParent)\n if (hostParentIsContainer)\n try {\n runWithFiberInDEV(\n deletedFiber,\n removeChildFromContainer,\n hostParent,\n deletedFiber.stateNode\n );\n } catch (error) {\n captureCommitPhaseError(\n deletedFiber,\n nearestMountedAncestor,\n error\n );\n }\n else\n try {\n runWithFiberInDEV(\n deletedFiber,\n removeChild,\n hostParent,\n deletedFiber.stateNode\n );\n } catch (error) {\n captureCommitPhaseError(\n deletedFiber,\n nearestMountedAncestor,\n error\n );\n }\n break;\n case 18:\n null !== hostParent &&\n (hostParentIsContainer\n ? ((finishedRoot = hostParent),\n clearSuspenseBoundary(\n 9 === finishedRoot.nodeType\n ? finishedRoot.body\n : \"HTML\" === finishedRoot.nodeName\n ? finishedRoot.ownerDocument.body\n : finishedRoot,\n deletedFiber.stateNode\n ),\n retryIfBlockedOn(finishedRoot))\n : clearSuspenseBoundary(hostParent, deletedFiber.stateNode));\n break;\n case 4:\n prevHostParent = hostParent;\n prevHostParentIsContainer = hostParentIsContainer;\n hostParent = deletedFiber.stateNode.containerInfo;\n hostParentIsContainer = !0;\n recursivelyTraverseDeletionEffects(\n finishedRoot,\n nearestMountedAncestor,\n deletedFiber\n );\n hostParent = prevHostParent;\n hostParentIsContainer = prevHostParentIsContainer;\n break;\n case 0:\n case 11:\n case 14:\n case 15:\n offscreenSubtreeWasHidden ||\n commitHookEffectListUnmount(\n Insertion,\n deletedFiber,\n nearestMountedAncestor\n );\n offscreenSubtreeWasHidden ||\n commitHookLayoutUnmountEffects(\n deletedFiber,\n nearestMountedAncestor,\n Layout\n );\n recursivelyTraverseDeletionEffects(\n finishedRoot,\n nearestMountedAncestor,\n deletedFiber\n );\n break;\n case 1:\n offscreenSubtreeWasHidden ||\n (safelyDetachRef(deletedFiber, nearestMountedAncestor),\n (prevHostParent = deletedFiber.stateNode),\n \"function\" === typeof prevHostParent.componentWillUnmount &&\n safelyCallComponentWillUnmount(\n deletedFiber,\n nearestMountedAncestor,\n prevHostParent\n ));\n recursivelyTraverseDeletionEffects(\n finishedRoot,\n nearestMountedAncestor,\n deletedFiber\n );\n break;\n case 21:\n recursivelyTraverseDeletionEffects(\n finishedRoot,\n nearestMountedAncestor,\n deletedFiber\n );\n break;\n case 22:\n offscreenSubtreeWasHidden =\n (prevHostParent = offscreenSubtreeWasHidden) ||\n null !== deletedFiber.memoizedState;\n recursivelyTraverseDeletionEffects(\n finishedRoot,\n nearestMountedAncestor,\n deletedFiber\n );\n offscreenSubtreeWasHidden = prevHostParent;\n break;\n default:\n recursivelyTraverseDeletionEffects(\n finishedRoot,\n nearestMountedAncestor,\n deletedFiber\n );\n }\n }\n function commitSuspenseHydrationCallbacks(finishedRoot, finishedWork) {\n if (\n null === finishedWork.memoizedState &&\n ((finishedRoot = finishedWork.alternate),\n null !== finishedRoot &&\n ((finishedRoot = finishedRoot.memoizedState),\n null !== finishedRoot &&\n ((finishedRoot = finishedRoot.dehydrated), null !== finishedRoot)))\n )\n try {\n runWithFiberInDEV(\n finishedWork,\n commitHydratedSuspenseInstance,\n finishedRoot\n );\n } catch (error) {\n captureCommitPhaseError(finishedWork, finishedWork.return, error);\n }\n }\n function getRetryCache(finishedWork) {\n switch (finishedWork.tag) {\n case 13:\n case 19:\n var retryCache = finishedWork.stateNode;\n null === retryCache &&\n (retryCache = finishedWork.stateNode = new PossiblyWeakSet());\n return retryCache;\n case 22:\n return (\n (finishedWork = finishedWork.stateNode),\n (retryCache = finishedWork._retryCache),\n null === retryCache &&\n (retryCache = finishedWork._retryCache = new PossiblyWeakSet()),\n retryCache\n );\n default:\n throw Error(\n \"Unexpected Suspense handler tag (\" +\n finishedWork.tag +\n \"). This is a bug in React.\"\n );\n }\n }\n function attachSuspenseRetryListeners(finishedWork, wakeables) {\n var retryCache = getRetryCache(finishedWork);\n wakeables.forEach(function (wakeable) {\n var retry = resolveRetryWakeable.bind(null, finishedWork, wakeable);\n if (!retryCache.has(wakeable)) {\n retryCache.add(wakeable);\n if (isDevToolsPresent)\n if (null !== inProgressLanes && null !== inProgressRoot)\n restorePendingUpdaters(inProgressRoot, inProgressLanes);\n else\n throw Error(\n \"Expected finished root and lanes to be set. This is a bug in React.\"\n );\n wakeable.then(retry, retry);\n }\n });\n }\n function recursivelyTraverseMutationEffects(root$jscomp$0, parentFiber) {\n var deletions = parentFiber.deletions;\n if (null !== deletions)\n for (var i = 0; i < deletions.length; i++) {\n var root = root$jscomp$0,\n returnFiber = parentFiber,\n deletedFiber = deletions[i],\n parent = returnFiber;\n a: for (; null !== parent; ) {\n switch (parent.tag) {\n case 27:\n if (isSingletonScope(parent.type)) {\n hostParent = parent.stateNode;\n hostParentIsContainer = !1;\n break a;\n }\n break;\n case 5:\n hostParent = parent.stateNode;\n hostParentIsContainer = !1;\n break a;\n case 3:\n case 4:\n hostParent = parent.stateNode.containerInfo;\n hostParentIsContainer = !0;\n break a;\n }\n parent = parent.return;\n }\n if (null === hostParent)\n throw Error(\n \"Expected to find a host parent. This error is likely caused by a bug in React. Please file an issue.\"\n );\n commitDeletionEffectsOnFiber(root, returnFiber, deletedFiber);\n hostParent = null;\n hostParentIsContainer = !1;\n root = deletedFiber;\n returnFiber = root.alternate;\n null !== returnFiber && (returnFiber.return = null);\n root.return = null;\n }\n if (parentFiber.subtreeFlags & 13878)\n for (parentFiber = parentFiber.child; null !== parentFiber; )\n commitMutationEffectsOnFiber(parentFiber, root$jscomp$0),\n (parentFiber = parentFiber.sibling);\n }\n function commitMutationEffectsOnFiber(finishedWork, root) {\n var current = finishedWork.alternate,\n flags = finishedWork.flags;\n switch (finishedWork.tag) {\n case 0:\n case 11:\n case 14:\n case 15:\n recursivelyTraverseMutationEffects(root, finishedWork);\n commitReconciliationEffects(finishedWork);\n flags & 4 &&\n (commitHookEffectListUnmount(\n Insertion | HasEffect,\n finishedWork,\n finishedWork.return\n ),\n commitHookEffectListMount(Insertion | HasEffect, finishedWork),\n commitHookLayoutUnmountEffects(\n finishedWork,\n finishedWork.return,\n Layout | HasEffect\n ));\n break;\n case 1:\n recursivelyTraverseMutationEffects(root, finishedWork);\n commitReconciliationEffects(finishedWork);\n flags & 512 &&\n (offscreenSubtreeWasHidden ||\n null === current ||\n safelyDetachRef(current, current.return));\n flags & 64 &&\n offscreenSubtreeIsHidden &&\n ((finishedWork = finishedWork.updateQueue),\n null !== finishedWork &&\n ((flags = finishedWork.callbacks),\n null !== flags &&\n ((current = finishedWork.shared.hiddenCallbacks),\n (finishedWork.shared.hiddenCallbacks =\n null === current ? flags : current.concat(flags)))));\n break;\n case 26:\n var hoistableRoot = currentHoistableRoot;\n recursivelyTraverseMutationEffects(root, finishedWork);\n commitReconciliationEffects(finishedWork);\n flags & 512 &&\n (offscreenSubtreeWasHidden ||\n null === current ||\n safelyDetachRef(current, current.return));\n if (flags & 4)\n if (\n ((root = null !== current ? current.memoizedState : null),\n (flags = finishedWork.memoizedState),\n null === current)\n )\n if (null === flags)\n if (null === finishedWork.stateNode) {\n a: {\n flags = finishedWork.type;\n current = finishedWork.memoizedProps;\n root = hoistableRoot.ownerDocument || hoistableRoot;\n b: switch (flags) {\n case \"title\":\n hoistableRoot = root.getElementsByTagName(\"title\")[0];\n if (\n !hoistableRoot ||\n hoistableRoot[internalHoistableMarker] ||\n hoistableRoot[internalInstanceKey] ||\n hoistableRoot.namespaceURI === SVG_NAMESPACE ||\n hoistableRoot.hasAttribute(\"itemprop\")\n )\n (hoistableRoot = root.createElement(flags)),\n root.head.insertBefore(\n hoistableRoot,\n root.querySelector(\"head > title\")\n );\n setInitialProperties(hoistableRoot, flags, current);\n hoistableRoot[internalInstanceKey] = finishedWork;\n markNodeAsHoistable(hoistableRoot);\n flags = hoistableRoot;\n break a;\n case \"link\":\n var maybeNodes = getHydratableHoistableCache(\n \"link\",\n \"href\",\n root\n ).get(flags + (current.href || \"\"));\n if (maybeNodes)\n for (var i = 0; i < maybeNodes.length; i++)\n if (\n ((hoistableRoot = maybeNodes[i]),\n hoistableRoot.getAttribute(\"href\") ===\n (null == current.href || \"\" === current.href\n ? null\n : current.href) &&\n hoistableRoot.getAttribute(\"rel\") ===\n (null == current.rel ? null : current.rel) &&\n hoistableRoot.getAttribute(\"title\") ===\n (null == current.title\n ? null\n : current.title) &&\n hoistableRoot.getAttribute(\"crossorigin\") ===\n (null == current.crossOrigin\n ? null\n : current.crossOrigin))\n ) {\n maybeNodes.splice(i, 1);\n break b;\n }\n hoistableRoot = root.createElement(flags);\n setInitialProperties(hoistableRoot, flags, current);\n root.head.appendChild(hoistableRoot);\n break;\n case \"meta\":\n if (\n (maybeNodes = getHydratableHoistableCache(\n \"meta\",\n \"content\",\n root\n ).get(flags + (current.content || \"\")))\n )\n for (i = 0; i < maybeNodes.length; i++)\n if (\n ((hoistableRoot = maybeNodes[i]),\n checkAttributeStringCoercion(\n current.content,\n \"content\"\n ),\n hoistableRoot.getAttribute(\"content\") ===\n (null == current.content\n ? null\n : \"\" + current.content) &&\n hoistableRoot.getAttribute(\"name\") ===\n (null == current.name\n ? null\n : current.name) &&\n hoistableRoot.getAttribute(\"property\") ===\n (null == current.property\n ? null\n : current.property) &&\n hoistableRoot.getAttribute(\"http-equiv\") ===\n (null == current.httpEquiv\n ? null\n : current.httpEquiv) &&\n hoistableRoot.getAttribute(\"charset\") ===\n (null == current.charSet\n ? null\n : current.charSet))\n ) {\n maybeNodes.splice(i, 1);\n break b;\n }\n hoistableRoot = root.createElement(flags);\n setInitialProperties(hoistableRoot, flags, current);\n root.head.appendChild(hoistableRoot);\n break;\n default:\n throw Error(\n 'getNodesForType encountered a type it did not expect: \"' +\n flags +\n '\". This is a bug in React.'\n );\n }\n hoistableRoot[internalInstanceKey] = finishedWork;\n markNodeAsHoistable(hoistableRoot);\n flags = hoistableRoot;\n }\n finishedWork.stateNode = flags;\n } else\n mountHoistable(\n hoistableRoot,\n finishedWork.type,\n finishedWork.stateNode\n );\n else\n finishedWork.stateNode = acquireResource(\n hoistableRoot,\n flags,\n finishedWork.memoizedProps\n );\n else\n root !== flags\n ? (null === root\n ? null !== current.stateNode &&\n ((current = current.stateNode),\n current.parentNode.removeChild(current))\n : root.count--,\n null === flags\n ? mountHoistable(\n hoistableRoot,\n finishedWork.type,\n finishedWork.stateNode\n )\n : acquireResource(\n hoistableRoot,\n flags,\n finishedWork.memoizedProps\n ))\n : null === flags &&\n null !== finishedWork.stateNode &&\n commitHostUpdate(\n finishedWork,\n finishedWork.memoizedProps,\n current.memoizedProps\n );\n break;\n case 27:\n recursivelyTraverseMutationEffects(root, finishedWork);\n commitReconciliationEffects(finishedWork);\n flags & 512 &&\n (offscreenSubtreeWasHidden ||\n null === current ||\n safelyDetachRef(current, current.return));\n null !== current &&\n flags & 4 &&\n commitHostUpdate(\n finishedWork,\n finishedWork.memoizedProps,\n current.memoizedProps\n );\n break;\n case 5:\n recursivelyTraverseMutationEffects(root, finishedWork);\n commitReconciliationEffects(finishedWork);\n flags & 512 &&\n (offscreenSubtreeWasHidden ||\n null === current ||\n safelyDetachRef(current, current.return));\n if (finishedWork.flags & 32) {\n root = finishedWork.stateNode;\n try {\n runWithFiberInDEV(finishedWork, resetTextContent, root);\n } catch (error) {\n captureCommitPhaseError(finishedWork, finishedWork.return, error);\n }\n }\n flags & 4 &&\n null != finishedWork.stateNode &&\n ((root = finishedWork.memoizedProps),\n commitHostUpdate(\n finishedWork,\n root,\n null !== current ? current.memoizedProps : root\n ));\n flags & 1024 &&\n ((needsFormReset = !0),\n \"form\" !== finishedWork.type &&\n console.error(\n \"Unexpected host component type. Expected a form. This is a bug in React.\"\n ));\n break;\n case 6:\n recursivelyTraverseMutationEffects(root, finishedWork);\n commitReconciliationEffects(finishedWork);\n if (flags & 4) {\n if (null === finishedWork.stateNode)\n throw Error(\n \"This should have a text node initialized. This error is likely caused by a bug in React. Please file an issue.\"\n );\n flags = finishedWork.memoizedProps;\n current = null !== current ? current.memoizedProps : flags;\n root = finishedWork.stateNode;\n try {\n runWithFiberInDEV(\n finishedWork,\n commitTextUpdate,\n root,\n current,\n flags\n );\n } catch (error) {\n captureCommitPhaseError(finishedWork, finishedWork.return, error);\n }\n }\n break;\n case 3:\n hoistableRoot = pushNestedEffectDurations();\n tagCaches = null;\n maybeNodes = currentHoistableRoot;\n currentHoistableRoot = getHoistableRoot(root.containerInfo);\n recursivelyTraverseMutationEffects(root, finishedWork);\n currentHoistableRoot = maybeNodes;\n commitReconciliationEffects(finishedWork);\n if (\n flags & 4 &&\n null !== current &&\n current.memoizedState.isDehydrated\n )\n try {\n runWithFiberInDEV(\n finishedWork,\n commitHydratedContainer,\n root.containerInfo\n );\n } catch (error) {\n captureCommitPhaseError(finishedWork, finishedWork.return, error);\n }\n needsFormReset &&\n ((needsFormReset = !1), recursivelyResetForms(finishedWork));\n root.effectDuration += popNestedEffectDurations(hoistableRoot);\n break;\n case 4:\n flags = currentHoistableRoot;\n currentHoistableRoot = getHoistableRoot(\n finishedWork.stateNode.containerInfo\n );\n recursivelyTraverseMutationEffects(root, finishedWork);\n commitReconciliationEffects(finishedWork);\n currentHoistableRoot = flags;\n break;\n case 12:\n flags = pushNestedEffectDurations();\n recursivelyTraverseMutationEffects(root, finishedWork);\n commitReconciliationEffects(finishedWork);\n finishedWork.stateNode.effectDuration +=\n bubbleNestedEffectDurations(flags);\n break;\n case 13:\n recursivelyTraverseMutationEffects(root, finishedWork);\n commitReconciliationEffects(finishedWork);\n finishedWork.child.flags & 8192 &&\n (null !== finishedWork.memoizedState) !==\n (null !== current && null !== current.memoizedState) &&\n (globalMostRecentFallbackTime = now$1());\n flags & 4 &&\n ((flags = finishedWork.updateQueue),\n null !== flags &&\n ((finishedWork.updateQueue = null),\n attachSuspenseRetryListeners(finishedWork, flags)));\n break;\n case 22:\n hoistableRoot = null !== finishedWork.memoizedState;\n var wasHidden = null !== current && null !== current.memoizedState,\n prevOffscreenSubtreeIsHidden = offscreenSubtreeIsHidden,\n prevOffscreenSubtreeWasHidden = offscreenSubtreeWasHidden;\n offscreenSubtreeIsHidden =\n prevOffscreenSubtreeIsHidden || hoistableRoot;\n offscreenSubtreeWasHidden =\n prevOffscreenSubtreeWasHidden || wasHidden;\n recursivelyTraverseMutationEffects(root, finishedWork);\n offscreenSubtreeWasHidden = prevOffscreenSubtreeWasHidden;\n offscreenSubtreeIsHidden = prevOffscreenSubtreeIsHidden;\n commitReconciliationEffects(finishedWork);\n if (flags & 8192)\n a: for (\n root = finishedWork.stateNode,\n root._visibility = hoistableRoot\n ? root._visibility & ~OffscreenVisible\n : root._visibility | OffscreenVisible,\n hoistableRoot &&\n (null === current ||\n wasHidden ||\n offscreenSubtreeIsHidden ||\n offscreenSubtreeWasHidden ||\n recursivelyTraverseDisappearLayoutEffects(finishedWork)),\n current = null,\n root = finishedWork;\n ;\n\n ) {\n if (5 === root.tag || 26 === root.tag) {\n if (null === current) {\n wasHidden = current = root;\n try {\n (maybeNodes = wasHidden.stateNode),\n hoistableRoot\n ? runWithFiberInDEV(wasHidden, hideInstance, maybeNodes)\n : runWithFiberInDEV(\n wasHidden,\n unhideInstance,\n wasHidden.stateNode,\n wasHidden.memoizedProps\n );\n } catch (error) {\n captureCommitPhaseError(wasHidden, wasHidden.return, error);\n }\n }\n } else if (6 === root.tag) {\n if (null === current) {\n wasHidden = root;\n try {\n (i = wasHidden.stateNode),\n hoistableRoot\n ? runWithFiberInDEV(wasHidden, hideTextInstance, i)\n : runWithFiberInDEV(\n wasHidden,\n unhideTextInstance,\n i,\n wasHidden.memoizedProps\n );\n } catch (error) {\n captureCommitPhaseError(wasHidden, wasHidden.return, error);\n }\n }\n } else if (\n ((22 !== root.tag && 23 !== root.tag) ||\n null === root.memoizedState ||\n root === finishedWork) &&\n null !== root.child\n ) {\n root.child.return = root;\n root = root.child;\n continue;\n }\n if (root === finishedWork) break a;\n for (; null === root.sibling; ) {\n if (null === root.return || root.return === finishedWork)\n break a;\n current === root && (current = null);\n root = root.return;\n }\n current === root && (current = null);\n root.sibling.return = root.return;\n root = root.sibling;\n }\n flags & 4 &&\n ((flags = finishedWork.updateQueue),\n null !== flags &&\n ((current = flags.retryQueue),\n null !== current &&\n ((flags.retryQueue = null),\n attachSuspenseRetryListeners(finishedWork, current))));\n break;\n case 19:\n recursivelyTraverseMutationEffects(root, finishedWork);\n commitReconciliationEffects(finishedWork);\n flags & 4 &&\n ((flags = finishedWork.updateQueue),\n null !== flags &&\n ((finishedWork.updateQueue = null),\n attachSuspenseRetryListeners(finishedWork, flags)));\n break;\n case 30:\n break;\n case 21:\n break;\n default:\n recursivelyTraverseMutationEffects(root, finishedWork),\n commitReconciliationEffects(finishedWork);\n }\n }\n function commitReconciliationEffects(finishedWork) {\n var flags = finishedWork.flags;\n if (flags & 2) {\n try {\n runWithFiberInDEV(finishedWork, commitPlacement, finishedWork);\n } catch (error) {\n captureCommitPhaseError(finishedWork, finishedWork.return, error);\n }\n finishedWork.flags &= -3;\n }\n flags & 4096 && (finishedWork.flags &= -4097);\n }\n function recursivelyResetForms(parentFiber) {\n if (parentFiber.subtreeFlags & 1024)\n for (parentFiber = parentFiber.child; null !== parentFiber; ) {\n var fiber = parentFiber;\n recursivelyResetForms(fiber);\n 5 === fiber.tag && fiber.flags & 1024 && fiber.stateNode.reset();\n parentFiber = parentFiber.sibling;\n }\n }\n function recursivelyTraverseLayoutEffects(root, parentFiber) {\n if (parentFiber.subtreeFlags & 8772)\n for (parentFiber = parentFiber.child; null !== parentFiber; )\n commitLayoutEffectOnFiber(root, parentFiber.alternate, parentFiber),\n (parentFiber = parentFiber.sibling);\n }\n function disappearLayoutEffects(finishedWork) {\n switch (finishedWork.tag) {\n case 0:\n case 11:\n case 14:\n case 15:\n commitHookLayoutUnmountEffects(\n finishedWork,\n finishedWork.return,\n Layout\n );\n recursivelyTraverseDisappearLayoutEffects(finishedWork);\n break;\n case 1:\n safelyDetachRef(finishedWork, finishedWork.return);\n var instance = finishedWork.stateNode;\n \"function\" === typeof instance.componentWillUnmount &&\n safelyCallComponentWillUnmount(\n finishedWork,\n finishedWork.return,\n instance\n );\n recursivelyTraverseDisappearLayoutEffects(finishedWork);\n break;\n case 27:\n runWithFiberInDEV(\n finishedWork,\n releaseSingletonInstance,\n finishedWork.stateNode\n );\n case 26:\n case 5:\n safelyDetachRef(finishedWork, finishedWork.return);\n recursivelyTraverseDisappearLayoutEffects(finishedWork);\n break;\n case 22:\n null === finishedWork.memoizedState &&\n recursivelyTraverseDisappearLayoutEffects(finishedWork);\n break;\n case 30:\n recursivelyTraverseDisappearLayoutEffects(finishedWork);\n break;\n default:\n recursivelyTraverseDisappearLayoutEffects(finishedWork);\n }\n }\n function recursivelyTraverseDisappearLayoutEffects(parentFiber) {\n for (parentFiber = parentFiber.child; null !== parentFiber; )\n disappearLayoutEffects(parentFiber),\n (parentFiber = parentFiber.sibling);\n }\n function reappearLayoutEffects(\n finishedRoot,\n current,\n finishedWork,\n includeWorkInProgressEffects\n ) {\n var flags = finishedWork.flags;\n switch (finishedWork.tag) {\n case 0:\n case 11:\n case 15:\n recursivelyTraverseReappearLayoutEffects(\n finishedRoot,\n finishedWork,\n includeWorkInProgressEffects\n );\n commitHookLayoutEffects(finishedWork, Layout);\n break;\n case 1:\n recursivelyTraverseReappearLayoutEffects(\n finishedRoot,\n finishedWork,\n includeWorkInProgressEffects\n );\n current = finishedWork.stateNode;\n \"function\" === typeof current.componentDidMount &&\n runWithFiberInDEV(\n finishedWork,\n callComponentDidMountInDEV,\n finishedWork,\n current\n );\n current = finishedWork.updateQueue;\n if (null !== current) {\n finishedRoot = finishedWork.stateNode;\n try {\n runWithFiberInDEV(\n finishedWork,\n commitHiddenCallbacks,\n current,\n finishedRoot\n );\n } catch (error) {\n captureCommitPhaseError(finishedWork, finishedWork.return, error);\n }\n }\n includeWorkInProgressEffects &&\n flags & 64 &&\n commitClassCallbacks(finishedWork);\n safelyAttachRef(finishedWork, finishedWork.return);\n break;\n case 27:\n commitHostSingletonAcquisition(finishedWork);\n case 26:\n case 5:\n recursivelyTraverseReappearLayoutEffects(\n finishedRoot,\n finishedWork,\n includeWorkInProgressEffects\n );\n includeWorkInProgressEffects &&\n null === current &&\n flags & 4 &&\n commitHostMount(finishedWork);\n safelyAttachRef(finishedWork, finishedWork.return);\n break;\n case 12:\n if (includeWorkInProgressEffects && flags & 4) {\n flags = pushNestedEffectDurations();\n recursivelyTraverseReappearLayoutEffects(\n finishedRoot,\n finishedWork,\n includeWorkInProgressEffects\n );\n includeWorkInProgressEffects = finishedWork.stateNode;\n includeWorkInProgressEffects.effectDuration +=\n bubbleNestedEffectDurations(flags);\n try {\n runWithFiberInDEV(\n finishedWork,\n commitProfiler,\n finishedWork,\n current,\n commitStartTime,\n includeWorkInProgressEffects.effectDuration\n );\n } catch (error) {\n captureCommitPhaseError(finishedWork, finishedWork.return, error);\n }\n } else\n recursivelyTraverseReappearLayoutEffects(\n finishedRoot,\n finishedWork,\n includeWorkInProgressEffects\n );\n break;\n case 13:\n recursivelyTraverseReappearLayoutEffects(\n finishedRoot,\n finishedWork,\n includeWorkInProgressEffects\n );\n includeWorkInProgressEffects &&\n flags & 4 &&\n commitSuspenseHydrationCallbacks(finishedRoot, finishedWork);\n break;\n case 22:\n null === finishedWork.memoizedState &&\n recursivelyTraverseReappearLayoutEffects(\n finishedRoot,\n finishedWork,\n includeWorkInProgressEffects\n );\n safelyAttachRef(finishedWork, finishedWork.return);\n break;\n case 30:\n break;\n default:\n recursivelyTraverseReappearLayoutEffects(\n finishedRoot,\n finishedWork,\n includeWorkInProgressEffects\n );\n }\n }\n function recursivelyTraverseReappearLayoutEffects(\n finishedRoot,\n parentFiber,\n includeWorkInProgressEffects\n ) {\n includeWorkInProgressEffects =\n includeWorkInProgressEffects && 0 !== (parentFiber.subtreeFlags & 8772);\n for (parentFiber = parentFiber.child; null !== parentFiber; )\n reappearLayoutEffects(\n finishedRoot,\n parentFiber.alternate,\n parentFiber,\n includeWorkInProgressEffects\n ),\n (parentFiber = parentFiber.sibling);\n }\n function commitOffscreenPassiveMountEffects(current, finishedWork) {\n var previousCache = null;\n null !== current &&\n null !== current.memoizedState &&\n null !== current.memoizedState.cachePool &&\n (previousCache = current.memoizedState.cachePool.pool);\n current = null;\n null !== finishedWork.memoizedState &&\n null !== finishedWork.memoizedState.cachePool &&\n (current = finishedWork.memoizedState.cachePool.pool);\n current !== previousCache &&\n (null != current && retainCache(current),\n null != previousCache && releaseCache(previousCache));\n }\n function commitCachePassiveMountEffect(current, finishedWork) {\n current = null;\n null !== finishedWork.alternate &&\n (current = finishedWork.alternate.memoizedState.cache);\n finishedWork = finishedWork.memoizedState.cache;\n finishedWork !== current &&\n (retainCache(finishedWork), null != current && releaseCache(current));\n }\n function recursivelyTraversePassiveMountEffects(\n root,\n parentFiber,\n committedLanes,\n committedTransitions\n ) {\n if (parentFiber.subtreeFlags & 10256)\n for (parentFiber = parentFiber.child; null !== parentFiber; )\n commitPassiveMountOnFiber(\n root,\n parentFiber,\n committedLanes,\n committedTransitions\n ),\n (parentFiber = parentFiber.sibling);\n }\n function commitPassiveMountOnFiber(\n finishedRoot,\n finishedWork,\n committedLanes,\n committedTransitions\n ) {\n var flags = finishedWork.flags;\n switch (finishedWork.tag) {\n case 0:\n case 11:\n case 15:\n recursivelyTraversePassiveMountEffects(\n finishedRoot,\n finishedWork,\n committedLanes,\n committedTransitions\n );\n flags & 2048 &&\n commitHookPassiveMountEffects(finishedWork, Passive | HasEffect);\n break;\n case 1:\n recursivelyTraversePassiveMountEffects(\n finishedRoot,\n finishedWork,\n committedLanes,\n committedTransitions\n );\n break;\n case 3:\n var prevEffectDuration = pushNestedEffectDurations();\n recursivelyTraversePassiveMountEffects(\n finishedRoot,\n finishedWork,\n committedLanes,\n committedTransitions\n );\n flags & 2048 &&\n ((committedLanes = null),\n null !== finishedWork.alternate &&\n (committedLanes = finishedWork.alternate.memoizedState.cache),\n (finishedWork = finishedWork.memoizedState.cache),\n finishedWork !== committedLanes &&\n (retainCache(finishedWork),\n null != committedLanes && releaseCache(committedLanes)));\n finishedRoot.passiveEffectDuration +=\n popNestedEffectDurations(prevEffectDuration);\n break;\n case 12:\n if (flags & 2048) {\n flags = pushNestedEffectDurations();\n recursivelyTraversePassiveMountEffects(\n finishedRoot,\n finishedWork,\n committedLanes,\n committedTransitions\n );\n finishedRoot = finishedWork.stateNode;\n finishedRoot.passiveEffectDuration +=\n bubbleNestedEffectDurations(flags);\n try {\n runWithFiberInDEV(\n finishedWork,\n commitProfilerPostCommitImpl,\n finishedWork,\n finishedWork.alternate,\n commitStartTime,\n finishedRoot.passiveEffectDuration\n );\n } catch (error) {\n captureCommitPhaseError(finishedWork, finishedWork.return, error);\n }\n } else\n recursivelyTraversePassiveMountEffects(\n finishedRoot,\n finishedWork,\n committedLanes,\n committedTransitions\n );\n break;\n case 13:\n recursivelyTraversePassiveMountEffects(\n finishedRoot,\n finishedWork,\n committedLanes,\n committedTransitions\n );\n break;\n case 23:\n break;\n case 22:\n prevEffectDuration = finishedWork.stateNode;\n var _current = finishedWork.alternate;\n null !== finishedWork.memoizedState\n ? prevEffectDuration._visibility & OffscreenPassiveEffectsConnected\n ? recursivelyTraversePassiveMountEffects(\n finishedRoot,\n finishedWork,\n committedLanes,\n committedTransitions\n )\n : recursivelyTraverseAtomicPassiveEffects(\n finishedRoot,\n finishedWork\n )\n : prevEffectDuration._visibility & OffscreenPassiveEffectsConnected\n ? recursivelyTraversePassiveMountEffects(\n finishedRoot,\n finishedWork,\n committedLanes,\n committedTransitions\n )\n : ((prevEffectDuration._visibility |=\n OffscreenPassiveEffectsConnected),\n recursivelyTraverseReconnectPassiveEffects(\n finishedRoot,\n finishedWork,\n committedLanes,\n committedTransitions,\n 0 !== (finishedWork.subtreeFlags & 10256)\n ));\n flags & 2048 &&\n commitOffscreenPassiveMountEffects(_current, finishedWork);\n break;\n case 24:\n recursivelyTraversePassiveMountEffects(\n finishedRoot,\n finishedWork,\n committedLanes,\n committedTransitions\n );\n flags & 2048 &&\n commitCachePassiveMountEffect(finishedWork.alternate, finishedWork);\n break;\n default:\n recursivelyTraversePassiveMountEffects(\n finishedRoot,\n finishedWork,\n committedLanes,\n committedTransitions\n );\n }\n }\n function recursivelyTraverseReconnectPassiveEffects(\n finishedRoot,\n parentFiber,\n committedLanes,\n committedTransitions,\n includeWorkInProgressEffects\n ) {\n includeWorkInProgressEffects =\n includeWorkInProgressEffects &&\n 0 !== (parentFiber.subtreeFlags & 10256);\n for (parentFiber = parentFiber.child; null !== parentFiber; )\n reconnectPassiveEffects(\n finishedRoot,\n parentFiber,\n committedLanes,\n committedTransitions,\n includeWorkInProgressEffects\n ),\n (parentFiber = parentFiber.sibling);\n }\n function reconnectPassiveEffects(\n finishedRoot,\n finishedWork,\n committedLanes,\n committedTransitions,\n includeWorkInProgressEffects\n ) {\n var flags = finishedWork.flags;\n switch (finishedWork.tag) {\n case 0:\n case 11:\n case 15:\n recursivelyTraverseReconnectPassiveEffects(\n finishedRoot,\n finishedWork,\n committedLanes,\n committedTransitions,\n includeWorkInProgressEffects\n );\n commitHookPassiveMountEffects(finishedWork, Passive);\n break;\n case 23:\n break;\n case 22:\n var _instance2 = finishedWork.stateNode;\n null !== finishedWork.memoizedState\n ? _instance2._visibility & OffscreenPassiveEffectsConnected\n ? recursivelyTraverseReconnectPassiveEffects(\n finishedRoot,\n finishedWork,\n committedLanes,\n committedTransitions,\n includeWorkInProgressEffects\n )\n : recursivelyTraverseAtomicPassiveEffects(\n finishedRoot,\n finishedWork\n )\n : ((_instance2._visibility |= OffscreenPassiveEffectsConnected),\n recursivelyTraverseReconnectPassiveEffects(\n finishedRoot,\n finishedWork,\n committedLanes,\n committedTransitions,\n includeWorkInProgressEffects\n ));\n includeWorkInProgressEffects &&\n flags & 2048 &&\n commitOffscreenPassiveMountEffects(\n finishedWork.alternate,\n finishedWork\n );\n break;\n case 24:\n recursivelyTraverseReconnectPassiveEffects(\n finishedRoot,\n finishedWork,\n committedLanes,\n committedTransitions,\n includeWorkInProgressEffects\n );\n includeWorkInProgressEffects &&\n flags & 2048 &&\n commitCachePassiveMountEffect(finishedWork.alternate, finishedWork);\n break;\n default:\n recursivelyTraverseReconnectPassiveEffects(\n finishedRoot,\n finishedWork,\n committedLanes,\n committedTransitions,\n includeWorkInProgressEffects\n );\n }\n }\n function recursivelyTraverseAtomicPassiveEffects(\n finishedRoot$jscomp$0,\n parentFiber\n ) {\n if (parentFiber.subtreeFlags & 10256)\n for (parentFiber = parentFiber.child; null !== parentFiber; ) {\n var finishedRoot = finishedRoot$jscomp$0,\n finishedWork = parentFiber,\n flags = finishedWork.flags;\n switch (finishedWork.tag) {\n case 22:\n recursivelyTraverseAtomicPassiveEffects(\n finishedRoot,\n finishedWork\n );\n flags & 2048 &&\n commitOffscreenPassiveMountEffects(\n finishedWork.alternate,\n finishedWork\n );\n break;\n case 24:\n recursivelyTraverseAtomicPassiveEffects(\n finishedRoot,\n finishedWork\n );\n flags & 2048 &&\n commitCachePassiveMountEffect(\n finishedWork.alternate,\n finishedWork\n );\n break;\n default:\n recursivelyTraverseAtomicPassiveEffects(\n finishedRoot,\n finishedWork\n );\n }\n parentFiber = parentFiber.sibling;\n }\n }\n function recursivelyAccumulateSuspenseyCommit(parentFiber) {\n if (parentFiber.subtreeFlags & suspenseyCommitFlag)\n for (parentFiber = parentFiber.child; null !== parentFiber; )\n accumulateSuspenseyCommitOnFiber(parentFiber),\n (parentFiber = parentFiber.sibling);\n }\n function accumulateSuspenseyCommitOnFiber(fiber) {\n switch (fiber.tag) {\n case 26:\n recursivelyAccumulateSuspenseyCommit(fiber);\n fiber.flags & suspenseyCommitFlag &&\n null !== fiber.memoizedState &&\n suspendResource(\n currentHoistableRoot,\n fiber.memoizedState,\n fiber.memoizedProps\n );\n break;\n case 5:\n recursivelyAccumulateSuspenseyCommit(fiber);\n break;\n case 3:\n case 4:\n var previousHoistableRoot = currentHoistableRoot;\n currentHoistableRoot = getHoistableRoot(\n fiber.stateNode.containerInfo\n );\n recursivelyAccumulateSuspenseyCommit(fiber);\n currentHoistableRoot = previousHoistableRoot;\n break;\n case 22:\n null === fiber.memoizedState &&\n ((previousHoistableRoot = fiber.alternate),\n null !== previousHoistableRoot &&\n null !== previousHoistableRoot.memoizedState\n ? ((previousHoistableRoot = suspenseyCommitFlag),\n (suspenseyCommitFlag = 16777216),\n recursivelyAccumulateSuspenseyCommit(fiber),\n (suspenseyCommitFlag = previousHoistableRoot))\n : recursivelyAccumulateSuspenseyCommit(fiber));\n break;\n default:\n recursivelyAccumulateSuspenseyCommit(fiber);\n }\n }\n function detachAlternateSiblings(parentFiber) {\n var previousFiber = parentFiber.alternate;\n if (\n null !== previousFiber &&\n ((parentFiber = previousFiber.child), null !== parentFiber)\n ) {\n previousFiber.child = null;\n do\n (previousFiber = parentFiber.sibling),\n (parentFiber.sibling = null),\n (parentFiber = previousFiber);\n while (null !== parentFiber);\n }\n }\n function recursivelyTraversePassiveUnmountEffects(parentFiber) {\n var deletions = parentFiber.deletions;\n if (0 !== (parentFiber.flags & 16)) {\n if (null !== deletions)\n for (var i = 0; i < deletions.length; i++) {\n var childToDelete = deletions[i];\n nextEffect = childToDelete;\n commitPassiveUnmountEffectsInsideOfDeletedTree_begin(\n childToDelete,\n parentFiber\n );\n }\n detachAlternateSiblings(parentFiber);\n }\n if (parentFiber.subtreeFlags & 10256)\n for (parentFiber = parentFiber.child; null !== parentFiber; )\n commitPassiveUnmountOnFiber(parentFiber),\n (parentFiber = parentFiber.sibling);\n }\n function commitPassiveUnmountOnFiber(finishedWork) {\n switch (finishedWork.tag) {\n case 0:\n case 11:\n case 15:\n recursivelyTraversePassiveUnmountEffects(finishedWork);\n finishedWork.flags & 2048 &&\n commitHookPassiveUnmountEffects(\n finishedWork,\n finishedWork.return,\n Passive | HasEffect\n );\n break;\n case 3:\n var prevEffectDuration = pushNestedEffectDurations();\n recursivelyTraversePassiveUnmountEffects(finishedWork);\n finishedWork.stateNode.passiveEffectDuration +=\n popNestedEffectDurations(prevEffectDuration);\n break;\n case 12:\n prevEffectDuration = pushNestedEffectDurations();\n recursivelyTraversePassiveUnmountEffects(finishedWork);\n finishedWork.stateNode.passiveEffectDuration +=\n bubbleNestedEffectDurations(prevEffectDuration);\n break;\n case 22:\n prevEffectDuration = finishedWork.stateNode;\n null !== finishedWork.memoizedState &&\n prevEffectDuration._visibility & OffscreenPassiveEffectsConnected &&\n (null === finishedWork.return || 13 !== finishedWork.return.tag)\n ? ((prevEffectDuration._visibility &=\n ~OffscreenPassiveEffectsConnected),\n recursivelyTraverseDisconnectPassiveEffects(finishedWork))\n : recursivelyTraversePassiveUnmountEffects(finishedWork);\n break;\n default:\n recursivelyTraversePassiveUnmountEffects(finishedWork);\n }\n }\n function recursivelyTraverseDisconnectPassiveEffects(parentFiber) {\n var deletions = parentFiber.deletions;\n if (0 !== (parentFiber.flags & 16)) {\n if (null !== deletions)\n for (var i = 0; i < deletions.length; i++) {\n var childToDelete = deletions[i];\n nextEffect = childToDelete;\n commitPassiveUnmountEffectsInsideOfDeletedTree_begin(\n childToDelete,\n parentFiber\n );\n }\n detachAlternateSiblings(parentFiber);\n }\n for (parentFiber = parentFiber.child; null !== parentFiber; )\n disconnectPassiveEffect(parentFiber),\n (parentFiber = parentFiber.sibling);\n }\n function disconnectPassiveEffect(finishedWork) {\n switch (finishedWork.tag) {\n case 0:\n case 11:\n case 15:\n commitHookPassiveUnmountEffects(\n finishedWork,\n finishedWork.return,\n Passive\n );\n recursivelyTraverseDisconnectPassiveEffects(finishedWork);\n break;\n case 22:\n var instance = finishedWork.stateNode;\n instance._visibility & OffscreenPassiveEffectsConnected &&\n ((instance._visibility &= ~OffscreenPassiveEffectsConnected),\n recursivelyTraverseDisconnectPassiveEffects(finishedWork));\n break;\n default:\n recursivelyTraverseDisconnectPassiveEffects(finishedWork);\n }\n }\n function commitPassiveUnmountEffectsInsideOfDeletedTree_begin(\n deletedSubtreeRoot,\n nearestMountedAncestor\n ) {\n for (; null !== nextEffect; ) {\n var fiber = nextEffect,\n current = fiber;\n switch (current.tag) {\n case 0:\n case 11:\n case 15:\n commitHookPassiveUnmountEffects(\n current,\n nearestMountedAncestor,\n Passive\n );\n break;\n case 23:\n case 22:\n null !== current.memoizedState &&\n null !== current.memoizedState.cachePool &&\n ((current = current.memoizedState.cachePool.pool),\n null != current && retainCache(current));\n break;\n case 24:\n releaseCache(current.memoizedState.cache);\n }\n current = fiber.child;\n if (null !== current) (current.return = fiber), (nextEffect = current);\n else\n a: for (fiber = deletedSubtreeRoot; null !== nextEffect; ) {\n current = nextEffect;\n var sibling = current.sibling,\n returnFiber = current.return;\n detachFiberAfterEffects(current);\n if (current === fiber) {\n nextEffect = null;\n break a;\n }\n if (null !== sibling) {\n sibling.return = returnFiber;\n nextEffect = sibling;\n break a;\n }\n nextEffect = returnFiber;\n }\n }\n }\n function onCommitRoot() {\n commitHooks.forEach(function (commitHook) {\n return commitHook();\n });\n }\n function isConcurrentActEnvironment() {\n var isReactActEnvironmentGlobal =\n \"undefined\" !== typeof IS_REACT_ACT_ENVIRONMENT\n ? IS_REACT_ACT_ENVIRONMENT\n : void 0;\n isReactActEnvironmentGlobal ||\n null === ReactSharedInternals.actQueue ||\n console.error(\n \"The current testing environment is not configured to support act(...)\"\n );\n return isReactActEnvironmentGlobal;\n }\n function requestUpdateLane(fiber) {\n if (\n (executionContext & RenderContext) !== NoContext &&\n 0 !== workInProgressRootRenderLanes\n )\n return workInProgressRootRenderLanes & -workInProgressRootRenderLanes;\n var transition = ReactSharedInternals.T;\n return null !== transition\n ? (transition._updatedFibers || (transition._updatedFibers = new Set()),\n transition._updatedFibers.add(fiber),\n (fiber = currentEntangledLane),\n 0 !== fiber ? fiber : requestTransitionLane())\n : resolveUpdatePriority();\n }\n function requestDeferredLane() {\n 0 === workInProgressDeferredLane &&\n (workInProgressDeferredLane =\n 0 === (workInProgressRootRenderLanes & 536870912) || isHydrating\n ? claimNextTransitionLane()\n : 536870912);\n var suspenseHandler = suspenseHandlerStackCursor.current;\n null !== suspenseHandler && (suspenseHandler.flags |= 32);\n return workInProgressDeferredLane;\n }\n function scheduleUpdateOnFiber(root, fiber, lane) {\n isRunningInsertionEffect &&\n console.error(\"useInsertionEffect must not schedule updates.\");\n isFlushingPassiveEffects && (didScheduleUpdateDuringPassiveEffects = !0);\n if (\n (root === workInProgressRoot &&\n (workInProgressSuspendedReason === SuspendedOnData ||\n workInProgressSuspendedReason === SuspendedOnAction)) ||\n null !== root.cancelPendingCommit\n )\n prepareFreshStack(root, 0),\n markRootSuspended(\n root,\n workInProgressRootRenderLanes,\n workInProgressDeferredLane,\n !1\n );\n markRootUpdated$1(root, lane);\n if (\n 0 !== (executionContext & RenderContext) &&\n root === workInProgressRoot\n ) {\n if (isRendering)\n switch (fiber.tag) {\n case 0:\n case 11:\n case 15:\n root =\n (workInProgress && getComponentNameFromFiber(workInProgress)) ||\n \"Unknown\";\n didWarnAboutUpdateInRenderForAnotherComponent.has(root) ||\n (didWarnAboutUpdateInRenderForAnotherComponent.add(root),\n (fiber = getComponentNameFromFiber(fiber) || \"Unknown\"),\n console.error(\n \"Cannot update a component (`%s`) while rendering a different component (`%s`). To locate the bad setState() call inside `%s`, follow the stack trace as described in https://react.dev/link/setstate-in-render\",\n fiber,\n root,\n root\n ));\n break;\n case 1:\n didWarnAboutUpdateInRender ||\n (console.error(\n \"Cannot update during an existing state transition (such as within `render`). Render methods should be a pure function of props and state.\"\n ),\n (didWarnAboutUpdateInRender = !0));\n }\n } else\n isDevToolsPresent && addFiberToLanesMap(root, fiber, lane),\n warnIfUpdatesNotWrappedWithActDEV(fiber),\n root === workInProgressRoot &&\n ((executionContext & RenderContext) === NoContext &&\n (workInProgressRootInterleavedUpdatedLanes |= lane),\n workInProgressRootExitStatus === RootSuspendedWithDelay &&\n markRootSuspended(\n root,\n workInProgressRootRenderLanes,\n workInProgressDeferredLane,\n !1\n )),\n ensureRootIsScheduled(root);\n }\n function performWorkOnRoot(root, lanes, forceSync) {\n if ((executionContext & (RenderContext | CommitContext)) !== NoContext)\n throw Error(\"Should not already be working.\");\n var shouldTimeSlice =\n (!forceSync &&\n 0 === (lanes & 124) &&\n 0 === (lanes & root.expiredLanes)) ||\n checkIfRootIsPrerendering(root, lanes),\n exitStatus = shouldTimeSlice\n ? renderRootConcurrent(root, lanes)\n : renderRootSync(root, lanes, !0),\n renderWasConcurrent = shouldTimeSlice;\n do {\n if (exitStatus === RootInProgress) {\n workInProgressRootIsPrerendering &&\n !shouldTimeSlice &&\n markRootSuspended(root, lanes, 0, !1);\n break;\n } else {\n forceSync = root.current.alternate;\n if (\n renderWasConcurrent &&\n !isRenderConsistentWithExternalStores(forceSync)\n ) {\n exitStatus = renderRootSync(root, lanes, !1);\n renderWasConcurrent = !1;\n continue;\n }\n if (exitStatus === RootErrored) {\n renderWasConcurrent = lanes;\n if (root.errorRecoveryDisabledLanes & renderWasConcurrent)\n var errorRetryLanes = 0;\n else\n (errorRetryLanes = root.pendingLanes & -536870913),\n (errorRetryLanes =\n 0 !== errorRetryLanes\n ? errorRetryLanes\n : errorRetryLanes & 536870912\n ? 536870912\n : 0);\n if (0 !== errorRetryLanes) {\n lanes = errorRetryLanes;\n a: {\n exitStatus = root;\n var errorRetryLanes$jscomp$0 = errorRetryLanes;\n errorRetryLanes = workInProgressRootConcurrentErrors;\n var wasRootDehydrated =\n exitStatus.current.memoizedState.isDehydrated;\n wasRootDehydrated &&\n (prepareFreshStack(\n exitStatus,\n errorRetryLanes$jscomp$0\n ).flags |= 256);\n errorRetryLanes$jscomp$0 = renderRootSync(\n exitStatus,\n errorRetryLanes$jscomp$0,\n !1\n );\n if (errorRetryLanes$jscomp$0 !== RootErrored) {\n if (\n workInProgressRootDidAttachPingListener &&\n !wasRootDehydrated\n ) {\n exitStatus.errorRecoveryDisabledLanes |=\n renderWasConcurrent;\n workInProgressRootInterleavedUpdatedLanes |=\n renderWasConcurrent;\n exitStatus = RootSuspendedWithDelay;\n break a;\n }\n exitStatus = workInProgressRootRecoverableErrors;\n workInProgressRootRecoverableErrors = errorRetryLanes;\n null !== exitStatus &&\n (null === workInProgressRootRecoverableErrors\n ? (workInProgressRootRecoverableErrors = exitStatus)\n : workInProgressRootRecoverableErrors.push.apply(\n workInProgressRootRecoverableErrors,\n exitStatus\n ));\n }\n exitStatus = errorRetryLanes$jscomp$0;\n }\n renderWasConcurrent = !1;\n if (exitStatus !== RootErrored) continue;\n }\n }\n if (exitStatus === RootFatalErrored) {\n prepareFreshStack(root, 0);\n markRootSuspended(root, lanes, 0, !0);\n break;\n }\n a: {\n shouldTimeSlice = root;\n switch (exitStatus) {\n case RootInProgress:\n case RootFatalErrored:\n throw Error(\"Root did not complete. This is a bug in React.\");\n case RootSuspendedWithDelay:\n if ((lanes & 4194048) !== lanes) break;\n case RootSuspendedAtTheShell:\n markRootSuspended(\n shouldTimeSlice,\n lanes,\n workInProgressDeferredLane,\n !workInProgressRootDidSkipSuspendedSiblings\n );\n break a;\n case RootErrored:\n workInProgressRootRecoverableErrors = null;\n break;\n case RootSuspended:\n case RootCompleted:\n break;\n default:\n throw Error(\"Unknown root exit status.\");\n }\n if (null !== ReactSharedInternals.actQueue)\n commitRoot(\n shouldTimeSlice,\n forceSync,\n lanes,\n workInProgressRootRecoverableErrors,\n workInProgressTransitions,\n workInProgressRootDidIncludeRecursiveRenderUpdate,\n workInProgressDeferredLane,\n workInProgressRootInterleavedUpdatedLanes,\n workInProgressSuspendedRetryLanes\n );\n else {\n if (\n (lanes & 62914560) === lanes &&\n ((renderWasConcurrent =\n globalMostRecentFallbackTime +\n FALLBACK_THROTTLE_MS -\n now$1()),\n 10 < renderWasConcurrent)\n ) {\n markRootSuspended(\n shouldTimeSlice,\n lanes,\n workInProgressDeferredLane,\n !workInProgressRootDidSkipSuspendedSiblings\n );\n if (0 !== getNextLanes(shouldTimeSlice, 0, !0)) break a;\n shouldTimeSlice.timeoutHandle = scheduleTimeout(\n commitRootWhenReady.bind(\n null,\n shouldTimeSlice,\n forceSync,\n workInProgressRootRecoverableErrors,\n workInProgressTransitions,\n workInProgressRootDidIncludeRecursiveRenderUpdate,\n lanes,\n workInProgressDeferredLane,\n workInProgressRootInterleavedUpdatedLanes,\n workInProgressSuspendedRetryLanes,\n workInProgressRootDidSkipSuspendedSiblings,\n exitStatus,\n THROTTLED_COMMIT,\n renderStartTime,\n 0\n ),\n renderWasConcurrent\n );\n break a;\n }\n commitRootWhenReady(\n shouldTimeSlice,\n forceSync,\n workInProgressRootRecoverableErrors,\n workInProgressTransitions,\n workInProgressRootDidIncludeRecursiveRenderUpdate,\n lanes,\n workInProgressDeferredLane,\n workInProgressRootInterleavedUpdatedLanes,\n workInProgressSuspendedRetryLanes,\n workInProgressRootDidSkipSuspendedSiblings,\n exitStatus,\n IMMEDIATE_COMMIT,\n renderStartTime,\n 0\n );\n }\n }\n }\n break;\n } while (1);\n ensureRootIsScheduled(root);\n }\n function commitRootWhenReady(\n root,\n finishedWork,\n recoverableErrors,\n transitions,\n didIncludeRenderPhaseUpdate,\n lanes,\n spawnedLane,\n updatedLanes,\n suspendedRetryLanes,\n didSkipSuspendedSiblings,\n exitStatus,\n suspendedCommitReason,\n completedRenderStartTime,\n completedRenderEndTime\n ) {\n root.timeoutHandle = noTimeout;\n suspendedCommitReason = finishedWork.subtreeFlags;\n if (\n suspendedCommitReason & 8192 ||\n 16785408 === (suspendedCommitReason & 16785408)\n )\n if (\n ((suspendedState = { stylesheets: null, count: 0, unsuspend: noop }),\n accumulateSuspenseyCommitOnFiber(finishedWork),\n (suspendedCommitReason = waitForCommitToBeReady()),\n null !== suspendedCommitReason)\n ) {\n root.cancelPendingCommit = suspendedCommitReason(\n commitRoot.bind(\n null,\n root,\n finishedWork,\n lanes,\n recoverableErrors,\n transitions,\n didIncludeRenderPhaseUpdate,\n spawnedLane,\n updatedLanes,\n suspendedRetryLanes,\n exitStatus,\n SUSPENDED_COMMIT,\n completedRenderStartTime,\n completedRenderEndTime\n )\n );\n markRootSuspended(\n root,\n lanes,\n spawnedLane,\n !didSkipSuspendedSiblings\n );\n return;\n }\n commitRoot(\n root,\n finishedWork,\n lanes,\n recoverableErrors,\n transitions,\n didIncludeRenderPhaseUpdate,\n spawnedLane,\n updatedLanes,\n suspendedRetryLanes\n );\n }\n function isRenderConsistentWithExternalStores(finishedWork) {\n for (var node = finishedWork; ; ) {\n var tag = node.tag;\n if (\n (0 === tag || 11 === tag || 15 === tag) &&\n node.flags & 16384 &&\n ((tag = node.updateQueue),\n null !== tag && ((tag = tag.stores), null !== tag))\n )\n for (var i = 0; i < tag.length; i++) {\n var check = tag[i],\n getSnapshot = check.getSnapshot;\n check = check.value;\n try {\n if (!objectIs(getSnapshot(), check)) return !1;\n } catch (error) {\n return !1;\n }\n }\n tag = node.child;\n if (node.subtreeFlags & 16384 && null !== tag)\n (tag.return = node), (node = tag);\n else {\n if (node === finishedWork) break;\n for (; null === node.sibling; ) {\n if (null === node.return || node.return === finishedWork) return !0;\n node = node.return;\n }\n node.sibling.return = node.return;\n node = node.sibling;\n }\n }\n return !0;\n }\n function markRootSuspended(\n root,\n suspendedLanes,\n spawnedLane,\n didAttemptEntireTree\n ) {\n suspendedLanes &= ~workInProgressRootPingedLanes;\n suspendedLanes &= ~workInProgressRootInterleavedUpdatedLanes;\n root.suspendedLanes |= suspendedLanes;\n root.pingedLanes &= ~suspendedLanes;\n didAttemptEntireTree && (root.warmLanes |= suspendedLanes);\n didAttemptEntireTree = root.expirationTimes;\n for (var lanes = suspendedLanes; 0 < lanes; ) {\n var index = 31 - clz32(lanes),\n lane = 1 << index;\n didAttemptEntireTree[index] = -1;\n lanes &= ~lane;\n }\n 0 !== spawnedLane &&\n markSpawnedDeferredLane(root, spawnedLane, suspendedLanes);\n }\n function flushSyncWork$1() {\n return (executionContext & (RenderContext | CommitContext)) === NoContext\n ? (flushSyncWorkAcrossRoots_impl(0, !1), !1)\n : !0;\n }\n function resetWorkInProgressStack() {\n if (null !== workInProgress) {\n if (workInProgressSuspendedReason === NotSuspended)\n var interruptedWork = workInProgress.return;\n else\n (interruptedWork = workInProgress),\n resetContextDependencies(),\n resetHooksOnUnwind(interruptedWork),\n (thenableState = null),\n (thenableIndexCounter = 0),\n (interruptedWork = workInProgress);\n for (; null !== interruptedWork; )\n unwindInterruptedWork(interruptedWork.alternate, interruptedWork),\n (interruptedWork = interruptedWork.return);\n workInProgress = null;\n }\n }\n function prepareFreshStack(root, lanes) {\n var timeoutHandle = root.timeoutHandle;\n timeoutHandle !== noTimeout &&\n ((root.timeoutHandle = noTimeout), cancelTimeout(timeoutHandle));\n timeoutHandle = root.cancelPendingCommit;\n null !== timeoutHandle &&\n ((root.cancelPendingCommit = null), timeoutHandle());\n resetWorkInProgressStack();\n workInProgressRoot = root;\n workInProgress = timeoutHandle = createWorkInProgress(root.current, null);\n workInProgressRootRenderLanes = lanes;\n workInProgressSuspendedReason = NotSuspended;\n workInProgressThrownValue = null;\n workInProgressRootDidSkipSuspendedSiblings = !1;\n workInProgressRootIsPrerendering = checkIfRootIsPrerendering(root, lanes);\n workInProgressRootDidAttachPingListener = !1;\n workInProgressRootExitStatus = RootInProgress;\n workInProgressSuspendedRetryLanes =\n workInProgressDeferredLane =\n workInProgressRootPingedLanes =\n workInProgressRootInterleavedUpdatedLanes =\n workInProgressRootSkippedLanes =\n 0;\n workInProgressRootRecoverableErrors = workInProgressRootConcurrentErrors =\n null;\n workInProgressRootDidIncludeRecursiveRenderUpdate = !1;\n 0 !== (lanes & 8) && (lanes |= lanes & 32);\n var allEntangledLanes = root.entangledLanes;\n if (0 !== allEntangledLanes)\n for (\n root = root.entanglements, allEntangledLanes &= lanes;\n 0 < allEntangledLanes;\n\n ) {\n var index = 31 - clz32(allEntangledLanes),\n lane = 1 << index;\n lanes |= root[index];\n allEntangledLanes &= ~lane;\n }\n entangledRenderLanes = lanes;\n finishQueueingConcurrentUpdates();\n lanes = getCurrentTime();\n 1e3 < lanes - lastResetTime &&\n ((ReactSharedInternals.recentlyCreatedOwnerStacks = 0),\n (lastResetTime = lanes));\n ReactStrictModeWarnings.discardPendingWarnings();\n return timeoutHandle;\n }\n function handleThrow(root, thrownValue) {\n currentlyRenderingFiber = null;\n ReactSharedInternals.H = ContextOnlyDispatcher;\n ReactSharedInternals.getCurrentStack = null;\n isRendering = !1;\n current = null;\n thrownValue === SuspenseException ||\n thrownValue === SuspenseActionException\n ? ((thrownValue = getSuspendedThenable()),\n (workInProgressSuspendedReason = SuspendedOnImmediate))\n : thrownValue === SuspenseyCommitException\n ? ((thrownValue = getSuspendedThenable()),\n (workInProgressSuspendedReason = SuspendedOnInstance))\n : (workInProgressSuspendedReason =\n thrownValue === SelectiveHydrationException\n ? SuspendedOnHydration\n : null !== thrownValue &&\n \"object\" === typeof thrownValue &&\n \"function\" === typeof thrownValue.then\n ? SuspendedOnDeprecatedThrowPromise\n : SuspendedOnError);\n workInProgressThrownValue = thrownValue;\n var erroredWork = workInProgress;\n if (null === erroredWork)\n (workInProgressRootExitStatus = RootFatalErrored),\n logUncaughtError(\n root,\n createCapturedValueAtFiber(thrownValue, root.current)\n );\n else\n switch (\n (erroredWork.mode & ProfileMode &&\n stopProfilerTimerIfRunningAndRecordDuration(erroredWork),\n markComponentRenderStopped(),\n workInProgressSuspendedReason)\n ) {\n case SuspendedOnError:\n null !== injectedProfilingHooks &&\n \"function\" ===\n typeof injectedProfilingHooks.markComponentErrored &&\n injectedProfilingHooks.markComponentErrored(\n erroredWork,\n thrownValue,\n workInProgressRootRenderLanes\n );\n break;\n case SuspendedOnData:\n case SuspendedOnAction:\n case SuspendedOnImmediate:\n case SuspendedOnDeprecatedThrowPromise:\n case SuspendedAndReadyToContinue:\n null !== injectedProfilingHooks &&\n \"function\" ===\n typeof injectedProfilingHooks.markComponentSuspended &&\n injectedProfilingHooks.markComponentSuspended(\n erroredWork,\n thrownValue,\n workInProgressRootRenderLanes\n );\n }\n }\n function pushDispatcher() {\n var prevDispatcher = ReactSharedInternals.H;\n ReactSharedInternals.H = ContextOnlyDispatcher;\n return null === prevDispatcher ? ContextOnlyDispatcher : prevDispatcher;\n }\n function pushAsyncDispatcher() {\n var prevAsyncDispatcher = ReactSharedInternals.A;\n ReactSharedInternals.A = DefaultAsyncDispatcher;\n return prevAsyncDispatcher;\n }\n function renderDidSuspendDelayIfPossible() {\n workInProgressRootExitStatus = RootSuspendedWithDelay;\n workInProgressRootDidSkipSuspendedSiblings ||\n ((workInProgressRootRenderLanes & 4194048) !==\n workInProgressRootRenderLanes &&\n null !== suspenseHandlerStackCursor.current) ||\n (workInProgressRootIsPrerendering = !0);\n (0 === (workInProgressRootSkippedLanes & 134217727) &&\n 0 === (workInProgressRootInterleavedUpdatedLanes & 134217727)) ||\n null === workInProgressRoot ||\n markRootSuspended(\n workInProgressRoot,\n workInProgressRootRenderLanes,\n workInProgressDeferredLane,\n !1\n );\n }\n function renderRootSync(root, lanes, shouldYieldForPrerendering) {\n var prevExecutionContext = executionContext;\n executionContext |= RenderContext;\n var prevDispatcher = pushDispatcher(),\n prevAsyncDispatcher = pushAsyncDispatcher();\n if (\n workInProgressRoot !== root ||\n workInProgressRootRenderLanes !== lanes\n ) {\n if (isDevToolsPresent) {\n var memoizedUpdaters = root.memoizedUpdaters;\n 0 < memoizedUpdaters.size &&\n (restorePendingUpdaters(root, workInProgressRootRenderLanes),\n memoizedUpdaters.clear());\n movePendingFibersToMemoized(root, lanes);\n }\n workInProgressTransitions = null;\n prepareFreshStack(root, lanes);\n }\n markRenderStarted(lanes);\n lanes = !1;\n memoizedUpdaters = workInProgressRootExitStatus;\n a: do\n try {\n if (\n workInProgressSuspendedReason !== NotSuspended &&\n null !== workInProgress\n ) {\n var unitOfWork = workInProgress,\n thrownValue = workInProgressThrownValue;\n switch (workInProgressSuspendedReason) {\n case SuspendedOnHydration:\n resetWorkInProgressStack();\n memoizedUpdaters = RootSuspendedAtTheShell;\n break a;\n case SuspendedOnImmediate:\n case SuspendedOnData:\n case SuspendedOnAction:\n case SuspendedOnDeprecatedThrowPromise:\n null === suspenseHandlerStackCursor.current && (lanes = !0);\n var reason = workInProgressSuspendedReason;\n workInProgressSuspendedReason = NotSuspended;\n workInProgressThrownValue = null;\n throwAndUnwindWorkLoop(root, unitOfWork, thrownValue, reason);\n if (\n shouldYieldForPrerendering &&\n workInProgressRootIsPrerendering\n ) {\n memoizedUpdaters = RootInProgress;\n break a;\n }\n break;\n default:\n (reason = workInProgressSuspendedReason),\n (workInProgressSuspendedReason = NotSuspended),\n (workInProgressThrownValue = null),\n throwAndUnwindWorkLoop(root, unitOfWork, thrownValue, reason);\n }\n }\n workLoopSync();\n memoizedUpdaters = workInProgressRootExitStatus;\n break;\n } catch (thrownValue$8) {\n handleThrow(root, thrownValue$8);\n }\n while (1);\n lanes && root.shellSuspendCounter++;\n resetContextDependencies();\n executionContext = prevExecutionContext;\n ReactSharedInternals.H = prevDispatcher;\n ReactSharedInternals.A = prevAsyncDispatcher;\n markRenderStopped();\n null === workInProgress &&\n ((workInProgressRoot = null),\n (workInProgressRootRenderLanes = 0),\n finishQueueingConcurrentUpdates());\n return memoizedUpdaters;\n }\n function workLoopSync() {\n for (; null !== workInProgress; ) performUnitOfWork(workInProgress);\n }\n function renderRootConcurrent(root, lanes) {\n var prevExecutionContext = executionContext;\n executionContext |= RenderContext;\n var prevDispatcher = pushDispatcher(),\n prevAsyncDispatcher = pushAsyncDispatcher();\n if (\n workInProgressRoot !== root ||\n workInProgressRootRenderLanes !== lanes\n ) {\n if (isDevToolsPresent) {\n var memoizedUpdaters = root.memoizedUpdaters;\n 0 < memoizedUpdaters.size &&\n (restorePendingUpdaters(root, workInProgressRootRenderLanes),\n memoizedUpdaters.clear());\n movePendingFibersToMemoized(root, lanes);\n }\n workInProgressTransitions = null;\n workInProgressRootRenderTargetTime = now$1() + RENDER_TIMEOUT_MS;\n prepareFreshStack(root, lanes);\n } else\n workInProgressRootIsPrerendering = checkIfRootIsPrerendering(\n root,\n lanes\n );\n markRenderStarted(lanes);\n a: do\n try {\n if (\n workInProgressSuspendedReason !== NotSuspended &&\n null !== workInProgress\n )\n b: switch (\n ((lanes = workInProgress),\n (memoizedUpdaters = workInProgressThrownValue),\n workInProgressSuspendedReason)\n ) {\n case SuspendedOnError:\n workInProgressSuspendedReason = NotSuspended;\n workInProgressThrownValue = null;\n throwAndUnwindWorkLoop(\n root,\n lanes,\n memoizedUpdaters,\n SuspendedOnError\n );\n break;\n case SuspendedOnData:\n case SuspendedOnAction:\n if (isThenableResolved(memoizedUpdaters)) {\n workInProgressSuspendedReason = NotSuspended;\n workInProgressThrownValue = null;\n replaySuspendedUnitOfWork(lanes);\n break;\n }\n lanes = function () {\n (workInProgressSuspendedReason !== SuspendedOnData &&\n workInProgressSuspendedReason !== SuspendedOnAction) ||\n workInProgressRoot !== root ||\n (workInProgressSuspendedReason =\n SuspendedAndReadyToContinue);\n ensureRootIsScheduled(root);\n };\n memoizedUpdaters.then(lanes, lanes);\n break a;\n case SuspendedOnImmediate:\n workInProgressSuspendedReason = SuspendedAndReadyToContinue;\n break a;\n case SuspendedOnInstance:\n workInProgressSuspendedReason =\n SuspendedOnInstanceAndReadyToContinue;\n break a;\n case SuspendedAndReadyToContinue:\n isThenableResolved(memoizedUpdaters)\n ? ((workInProgressSuspendedReason = NotSuspended),\n (workInProgressThrownValue = null),\n replaySuspendedUnitOfWork(lanes))\n : ((workInProgressSuspendedReason = NotSuspended),\n (workInProgressThrownValue = null),\n throwAndUnwindWorkLoop(\n root,\n lanes,\n memoizedUpdaters,\n SuspendedAndReadyToContinue\n ));\n break;\n case SuspendedOnInstanceAndReadyToContinue:\n var resource = null;\n switch (workInProgress.tag) {\n case 26:\n resource = workInProgress.memoizedState;\n case 5:\n case 27:\n var hostFiber = workInProgress;\n if (resource ? preloadResource(resource) : 1) {\n workInProgressSuspendedReason = NotSuspended;\n workInProgressThrownValue = null;\n var sibling = hostFiber.sibling;\n if (null !== sibling) workInProgress = sibling;\n else {\n var returnFiber = hostFiber.return;\n null !== returnFiber\n ? ((workInProgress = returnFiber),\n completeUnitOfWork(returnFiber))\n : (workInProgress = null);\n }\n break b;\n }\n break;\n default:\n console.error(\n \"Unexpected type of fiber triggered a suspensey commit. This is a bug in React.\"\n );\n }\n workInProgressSuspendedReason = NotSuspended;\n workInProgressThrownValue = null;\n throwAndUnwindWorkLoop(\n root,\n lanes,\n memoizedUpdaters,\n SuspendedOnInstanceAndReadyToContinue\n );\n break;\n case SuspendedOnDeprecatedThrowPromise:\n workInProgressSuspendedReason = NotSuspended;\n workInProgressThrownValue = null;\n throwAndUnwindWorkLoop(\n root,\n lanes,\n memoizedUpdaters,\n SuspendedOnDeprecatedThrowPromise\n );\n break;\n case SuspendedOnHydration:\n resetWorkInProgressStack();\n workInProgressRootExitStatus = RootSuspendedAtTheShell;\n break a;\n default:\n throw Error(\n \"Unexpected SuspendedReason. This is a bug in React.\"\n );\n }\n null !== ReactSharedInternals.actQueue\n ? workLoopSync()\n : workLoopConcurrentByScheduler();\n break;\n } catch (thrownValue$9) {\n handleThrow(root, thrownValue$9);\n }\n while (1);\n resetContextDependencies();\n ReactSharedInternals.H = prevDispatcher;\n ReactSharedInternals.A = prevAsyncDispatcher;\n executionContext = prevExecutionContext;\n if (null !== workInProgress)\n return (\n null !== injectedProfilingHooks &&\n \"function\" === typeof injectedProfilingHooks.markRenderYielded &&\n injectedProfilingHooks.markRenderYielded(),\n RootInProgress\n );\n markRenderStopped();\n workInProgressRoot = null;\n workInProgressRootRenderLanes = 0;\n finishQueueingConcurrentUpdates();\n return workInProgressRootExitStatus;\n }\n function workLoopConcurrentByScheduler() {\n for (; null !== workInProgress && !shouldYield(); )\n performUnitOfWork(workInProgress);\n }\n function performUnitOfWork(unitOfWork) {\n var current = unitOfWork.alternate;\n (unitOfWork.mode & ProfileMode) !== NoMode\n ? (startProfilerTimer(unitOfWork),\n (current = runWithFiberInDEV(\n unitOfWork,\n beginWork,\n current,\n unitOfWork,\n entangledRenderLanes\n )),\n stopProfilerTimerIfRunningAndRecordDuration(unitOfWork))\n : (current = runWithFiberInDEV(\n unitOfWork,\n beginWork,\n current,\n unitOfWork,\n entangledRenderLanes\n ));\n unitOfWork.memoizedProps = unitOfWork.pendingProps;\n null === current\n ? completeUnitOfWork(unitOfWork)\n : (workInProgress = current);\n }\n function replaySuspendedUnitOfWork(unitOfWork) {\n var next = runWithFiberInDEV(unitOfWork, replayBeginWork, unitOfWork);\n unitOfWork.memoizedProps = unitOfWork.pendingProps;\n null === next ? completeUnitOfWork(unitOfWork) : (workInProgress = next);\n }\n function replayBeginWork(unitOfWork) {\n var current = unitOfWork.alternate,\n isProfilingMode = (unitOfWork.mode & ProfileMode) !== NoMode;\n isProfilingMode && startProfilerTimer(unitOfWork);\n switch (unitOfWork.tag) {\n case 15:\n case 0:\n current = replayFunctionComponent(\n current,\n unitOfWork,\n unitOfWork.pendingProps,\n unitOfWork.type,\n void 0,\n workInProgressRootRenderLanes\n );\n break;\n case 11:\n current = replayFunctionComponent(\n current,\n unitOfWork,\n unitOfWork.pendingProps,\n unitOfWork.type.render,\n unitOfWork.ref,\n workInProgressRootRenderLanes\n );\n break;\n case 5:\n resetHooksOnUnwind(unitOfWork);\n default:\n unwindInterruptedWork(current, unitOfWork),\n (unitOfWork = workInProgress =\n resetWorkInProgress(unitOfWork, entangledRenderLanes)),\n (current = beginWork(current, unitOfWork, entangledRenderLanes));\n }\n isProfilingMode &&\n stopProfilerTimerIfRunningAndRecordDuration(unitOfWork);\n return current;\n }\n function throwAndUnwindWorkLoop(\n root,\n unitOfWork,\n thrownValue,\n suspendedReason\n ) {\n resetContextDependencies();\n resetHooksOnUnwind(unitOfWork);\n thenableState = null;\n thenableIndexCounter = 0;\n var returnFiber = unitOfWork.return;\n try {\n if (\n throwException(\n root,\n returnFiber,\n unitOfWork,\n thrownValue,\n workInProgressRootRenderLanes\n )\n ) {\n workInProgressRootExitStatus = RootFatalErrored;\n logUncaughtError(\n root,\n createCapturedValueAtFiber(thrownValue, root.current)\n );\n workInProgress = null;\n return;\n }\n } catch (error) {\n if (null !== returnFiber) throw ((workInProgress = returnFiber), error);\n workInProgressRootExitStatus = RootFatalErrored;\n logUncaughtError(\n root,\n createCapturedValueAtFiber(thrownValue, root.current)\n );\n workInProgress = null;\n return;\n }\n if (unitOfWork.flags & 32768) {\n if (isHydrating || suspendedReason === SuspendedOnError) root = !0;\n else if (\n workInProgressRootIsPrerendering ||\n 0 !== (workInProgressRootRenderLanes & 536870912)\n )\n root = !1;\n else if (\n ((workInProgressRootDidSkipSuspendedSiblings = root = !0),\n suspendedReason === SuspendedOnData ||\n suspendedReason === SuspendedOnAction ||\n suspendedReason === SuspendedOnImmediate ||\n suspendedReason === SuspendedOnDeprecatedThrowPromise)\n )\n (suspendedReason = suspenseHandlerStackCursor.current),\n null !== suspendedReason &&\n 13 === suspendedReason.tag &&\n (suspendedReason.flags |= 16384);\n unwindUnitOfWork(unitOfWork, root);\n } else completeUnitOfWork(unitOfWork);\n }\n function completeUnitOfWork(unitOfWork) {\n var completedWork = unitOfWork;\n do {\n if (0 !== (completedWork.flags & 32768)) {\n unwindUnitOfWork(\n completedWork,\n workInProgressRootDidSkipSuspendedSiblings\n );\n return;\n }\n var current = completedWork.alternate;\n unitOfWork = completedWork.return;\n startProfilerTimer(completedWork);\n current = runWithFiberInDEV(\n completedWork,\n completeWork,\n current,\n completedWork,\n entangledRenderLanes\n );\n (completedWork.mode & ProfileMode) !== NoMode &&\n stopProfilerTimerIfRunningAndRecordIncompleteDuration(completedWork);\n if (null !== current) {\n workInProgress = current;\n return;\n }\n completedWork = completedWork.sibling;\n if (null !== completedWork) {\n workInProgress = completedWork;\n return;\n }\n workInProgress = completedWork = unitOfWork;\n } while (null !== completedWork);\n workInProgressRootExitStatus === RootInProgress &&\n (workInProgressRootExitStatus = RootCompleted);\n }\n function unwindUnitOfWork(unitOfWork, skipSiblings) {\n do {\n var next = unwindWork(unitOfWork.alternate, unitOfWork);\n if (null !== next) {\n next.flags &= 32767;\n workInProgress = next;\n return;\n }\n if ((unitOfWork.mode & ProfileMode) !== NoMode) {\n stopProfilerTimerIfRunningAndRecordIncompleteDuration(unitOfWork);\n next = unitOfWork.actualDuration;\n for (var child = unitOfWork.child; null !== child; )\n (next += child.actualDuration), (child = child.sibling);\n unitOfWork.actualDuration = next;\n }\n next = unitOfWork.return;\n null !== next &&\n ((next.flags |= 32768),\n (next.subtreeFlags = 0),\n (next.deletions = null));\n if (\n !skipSiblings &&\n ((unitOfWork = unitOfWork.sibling), null !== unitOfWork)\n ) {\n workInProgress = unitOfWork;\n return;\n }\n workInProgress = unitOfWork = next;\n } while (null !== unitOfWork);\n workInProgressRootExitStatus = RootSuspendedAtTheShell;\n workInProgress = null;\n }\n function commitRoot(\n root,\n finishedWork,\n lanes,\n recoverableErrors,\n transitions,\n didIncludeRenderPhaseUpdate,\n spawnedLane,\n updatedLanes,\n suspendedRetryLanes\n ) {\n root.cancelPendingCommit = null;\n do flushPendingEffects();\n while (pendingEffectsStatus !== NO_PENDING_EFFECTS);\n ReactStrictModeWarnings.flushLegacyContextWarning();\n ReactStrictModeWarnings.flushPendingUnsafeLifecycleWarnings();\n if ((executionContext & (RenderContext | CommitContext)) !== NoContext)\n throw Error(\"Should not already be working.\");\n null !== injectedProfilingHooks &&\n \"function\" === typeof injectedProfilingHooks.markCommitStarted &&\n injectedProfilingHooks.markCommitStarted(lanes);\n if (null === finishedWork) markCommitStopped();\n else {\n 0 === lanes &&\n console.error(\n \"finishedLanes should not be empty during a commit. This is a bug in React.\"\n );\n if (finishedWork === root.current)\n throw Error(\n \"Cannot commit the same tree as before. This error is likely caused by a bug in React. Please file an issue.\"\n );\n didIncludeRenderPhaseUpdate =\n finishedWork.lanes | finishedWork.childLanes;\n didIncludeRenderPhaseUpdate |= concurrentlyUpdatedLanes;\n markRootFinished(\n root,\n lanes,\n didIncludeRenderPhaseUpdate,\n spawnedLane,\n updatedLanes,\n suspendedRetryLanes\n );\n root === workInProgressRoot &&\n ((workInProgress = workInProgressRoot = null),\n (workInProgressRootRenderLanes = 0));\n pendingFinishedWork = finishedWork;\n pendingEffectsRoot = root;\n pendingEffectsLanes = lanes;\n pendingEffectsRemainingLanes = didIncludeRenderPhaseUpdate;\n pendingPassiveTransitions = transitions;\n pendingRecoverableErrors = recoverableErrors;\n 0 !== (finishedWork.subtreeFlags & 10256) ||\n 0 !== (finishedWork.flags & 10256)\n ? ((root.callbackNode = null),\n (root.callbackPriority = 0),\n scheduleCallback$1(NormalPriority$1, function () {\n flushPassiveEffects(!0);\n return null;\n }))\n : ((root.callbackNode = null), (root.callbackPriority = 0));\n commitStartTime = now();\n recoverableErrors = 0 !== (finishedWork.flags & 13878);\n if (0 !== (finishedWork.subtreeFlags & 13878) || recoverableErrors) {\n recoverableErrors = ReactSharedInternals.T;\n ReactSharedInternals.T = null;\n transitions = ReactDOMSharedInternals.p;\n ReactDOMSharedInternals.p = DiscreteEventPriority;\n spawnedLane = executionContext;\n executionContext |= CommitContext;\n try {\n commitBeforeMutationEffects(root, finishedWork, lanes);\n } finally {\n (executionContext = spawnedLane),\n (ReactDOMSharedInternals.p = transitions),\n (ReactSharedInternals.T = recoverableErrors);\n }\n }\n pendingEffectsStatus = PENDING_MUTATION_PHASE;\n flushMutationEffects();\n flushLayoutEffects();\n flushSpawnedWork();\n }\n }\n function flushMutationEffects() {\n if (pendingEffectsStatus === PENDING_MUTATION_PHASE) {\n pendingEffectsStatus = NO_PENDING_EFFECTS;\n var root = pendingEffectsRoot,\n finishedWork = pendingFinishedWork,\n lanes = pendingEffectsLanes,\n rootMutationHasEffect = 0 !== (finishedWork.flags & 13878);\n if (\n 0 !== (finishedWork.subtreeFlags & 13878) ||\n rootMutationHasEffect\n ) {\n rootMutationHasEffect = ReactSharedInternals.T;\n ReactSharedInternals.T = null;\n var previousPriority = ReactDOMSharedInternals.p;\n ReactDOMSharedInternals.p = DiscreteEventPriority;\n var prevExecutionContext = executionContext;\n executionContext |= CommitContext;\n try {\n inProgressLanes = lanes;\n inProgressRoot = root;\n commitMutationEffectsOnFiber(finishedWork, root);\n inProgressRoot = inProgressLanes = null;\n lanes = selectionInformation;\n var curFocusedElem = getActiveElementDeep(root.containerInfo),\n priorFocusedElem = lanes.focusedElem,\n priorSelectionRange = lanes.selectionRange;\n if (\n curFocusedElem !== priorFocusedElem &&\n priorFocusedElem &&\n priorFocusedElem.ownerDocument &&\n containsNode(\n priorFocusedElem.ownerDocument.documentElement,\n priorFocusedElem\n )\n ) {\n if (\n null !== priorSelectionRange &&\n hasSelectionCapabilities(priorFocusedElem)\n ) {\n var start = priorSelectionRange.start,\n end = priorSelectionRange.end;\n void 0 === end && (end = start);\n if (\"selectionStart\" in priorFocusedElem)\n (priorFocusedElem.selectionStart = start),\n (priorFocusedElem.selectionEnd = Math.min(\n end,\n priorFocusedElem.value.length\n ));\n else {\n var doc = priorFocusedElem.ownerDocument || document,\n win = (doc && doc.defaultView) || window;\n if (win.getSelection) {\n var selection = win.getSelection(),\n length = priorFocusedElem.textContent.length,\n start$jscomp$0 = Math.min(\n priorSelectionRange.start,\n length\n ),\n end$jscomp$0 =\n void 0 === priorSelectionRange.end\n ? start$jscomp$0\n : Math.min(priorSelectionRange.end, length);\n !selection.extend &&\n start$jscomp$0 > end$jscomp$0 &&\n ((curFocusedElem = end$jscomp$0),\n (end$jscomp$0 = start$jscomp$0),\n (start$jscomp$0 = curFocusedElem));\n var startMarker = getNodeForCharacterOffset(\n priorFocusedElem,\n start$jscomp$0\n ),\n endMarker = getNodeForCharacterOffset(\n priorFocusedElem,\n end$jscomp$0\n );\n if (\n startMarker &&\n endMarker &&\n (1 !== selection.rangeCount ||\n selection.anchorNode !== startMarker.node ||\n selection.anchorOffset !== startMarker.offset ||\n selection.focusNode !== endMarker.node ||\n selection.focusOffset !== endMarker.offset)\n ) {\n var range = doc.createRange();\n range.setStart(startMarker.node, startMarker.offset);\n selection.removeAllRanges();\n start$jscomp$0 > end$jscomp$0\n ? (selection.addRange(range),\n selection.extend(endMarker.node, endMarker.offset))\n : (range.setEnd(endMarker.node, endMarker.offset),\n selection.addRange(range));\n }\n }\n }\n }\n doc = [];\n for (\n selection = priorFocusedElem;\n (selection = selection.parentNode);\n\n )\n 1 === selection.nodeType &&\n doc.push({\n element: selection,\n left: selection.scrollLeft,\n top: selection.scrollTop\n });\n \"function\" === typeof priorFocusedElem.focus &&\n priorFocusedElem.focus();\n for (\n priorFocusedElem = 0;\n priorFocusedElem < doc.length;\n priorFocusedElem++\n ) {\n var info = doc[priorFocusedElem];\n info.element.scrollLeft = info.left;\n info.element.scrollTop = info.top;\n }\n }\n _enabled = !!eventsEnabled;\n selectionInformation = eventsEnabled = null;\n } finally {\n (executionContext = prevExecutionContext),\n (ReactDOMSharedInternals.p = previousPriority),\n (ReactSharedInternals.T = rootMutationHasEffect);\n }\n }\n root.current = finishedWork;\n pendingEffectsStatus = PENDING_LAYOUT_PHASE;\n }\n }\n function flushLayoutEffects() {\n if (pendingEffectsStatus === PENDING_LAYOUT_PHASE) {\n pendingEffectsStatus = NO_PENDING_EFFECTS;\n var root = pendingEffectsRoot,\n finishedWork = pendingFinishedWork,\n lanes = pendingEffectsLanes,\n rootHasLayoutEffect = 0 !== (finishedWork.flags & 8772);\n if (0 !== (finishedWork.subtreeFlags & 8772) || rootHasLayoutEffect) {\n rootHasLayoutEffect = ReactSharedInternals.T;\n ReactSharedInternals.T = null;\n var previousPriority = ReactDOMSharedInternals.p;\n ReactDOMSharedInternals.p = DiscreteEventPriority;\n var prevExecutionContext = executionContext;\n executionContext |= CommitContext;\n try {\n null !== injectedProfilingHooks &&\n \"function\" ===\n typeof injectedProfilingHooks.markLayoutEffectsStarted &&\n injectedProfilingHooks.markLayoutEffectsStarted(lanes),\n (inProgressLanes = lanes),\n (inProgressRoot = root),\n commitLayoutEffectOnFiber(\n root,\n finishedWork.alternate,\n finishedWork\n ),\n (inProgressRoot = inProgressLanes = null),\n null !== injectedProfilingHooks &&\n \"function\" ===\n typeof injectedProfilingHooks.markLayoutEffectsStopped &&\n injectedProfilingHooks.markLayoutEffectsStopped();\n } finally {\n (executionContext = prevExecutionContext),\n (ReactDOMSharedInternals.p = previousPriority),\n (ReactSharedInternals.T = rootHasLayoutEffect);\n }\n }\n pendingEffectsStatus = PENDING_AFTER_MUTATION_PHASE;\n }\n }\n function flushSpawnedWork() {\n if (\n pendingEffectsStatus === PENDING_SPAWNED_WORK ||\n pendingEffectsStatus === PENDING_AFTER_MUTATION_PHASE\n ) {\n pendingEffectsStatus = NO_PENDING_EFFECTS;\n requestPaint();\n var root = pendingEffectsRoot,\n finishedWork = pendingFinishedWork,\n lanes = pendingEffectsLanes,\n recoverableErrors = pendingRecoverableErrors,\n rootDidHavePassiveEffects =\n 0 !== (finishedWork.subtreeFlags & 10256) ||\n 0 !== (finishedWork.flags & 10256);\n rootDidHavePassiveEffects\n ? (pendingEffectsStatus = PENDING_PASSIVE_PHASE)\n : ((pendingEffectsStatus = NO_PENDING_EFFECTS),\n (pendingFinishedWork = pendingEffectsRoot = null),\n releaseRootPooledCache(root, root.pendingLanes),\n (nestedPassiveUpdateCount = 0),\n (rootWithPassiveNestedUpdates = null));\n var remainingLanes = root.pendingLanes;\n 0 === remainingLanes && (legacyErrorBoundariesThatAlreadyFailed = null);\n rootDidHavePassiveEffects || commitDoubleInvokeEffectsInDEV(root);\n rootDidHavePassiveEffects = lanesToEventPriority(lanes);\n finishedWork = finishedWork.stateNode;\n if (\n injectedHook &&\n \"function\" === typeof injectedHook.onCommitFiberRoot\n )\n try {\n var didError = 128 === (finishedWork.current.flags & 128);\n switch (rootDidHavePassiveEffects) {\n case DiscreteEventPriority:\n var schedulerPriority = ImmediatePriority;\n break;\n case ContinuousEventPriority:\n schedulerPriority = UserBlockingPriority;\n break;\n case DefaultEventPriority:\n schedulerPriority = NormalPriority$1;\n break;\n case IdleEventPriority:\n schedulerPriority = IdlePriority;\n break;\n default:\n schedulerPriority = NormalPriority$1;\n }\n injectedHook.onCommitFiberRoot(\n rendererID,\n finishedWork,\n schedulerPriority,\n didError\n );\n } catch (err) {\n hasLoggedError ||\n ((hasLoggedError = !0),\n console.error(\n \"React instrumentation encountered an error: %s\",\n err\n ));\n }\n isDevToolsPresent && root.memoizedUpdaters.clear();\n onCommitRoot();\n if (null !== recoverableErrors) {\n didError = ReactSharedInternals.T;\n schedulerPriority = ReactDOMSharedInternals.p;\n ReactDOMSharedInternals.p = DiscreteEventPriority;\n ReactSharedInternals.T = null;\n try {\n var onRecoverableError = root.onRecoverableError;\n for (\n finishedWork = 0;\n finishedWork < recoverableErrors.length;\n finishedWork++\n ) {\n var recoverableError = recoverableErrors[finishedWork],\n errorInfo = makeErrorInfo(recoverableError.stack);\n runWithFiberInDEV(\n recoverableError.source,\n onRecoverableError,\n recoverableError.value,\n errorInfo\n );\n }\n } finally {\n (ReactSharedInternals.T = didError),\n (ReactDOMSharedInternals.p = schedulerPriority);\n }\n }\n 0 !== (pendingEffectsLanes & 3) && flushPendingEffects();\n ensureRootIsScheduled(root);\n remainingLanes = root.pendingLanes;\n 0 !== (lanes & 4194090) && 0 !== (remainingLanes & 42)\n ? ((nestedUpdateScheduled = !0),\n root === rootWithNestedUpdates\n ? nestedUpdateCount++\n : ((nestedUpdateCount = 0), (rootWithNestedUpdates = root)))\n : (nestedUpdateCount = 0);\n flushSyncWorkAcrossRoots_impl(0, !1);\n markCommitStopped();\n }\n }\n function makeErrorInfo(componentStack) {\n componentStack = { componentStack: componentStack };\n Object.defineProperty(componentStack, \"digest\", {\n get: function () {\n console.error(\n 'You are accessing \"digest\" from the errorInfo object passed to onRecoverableError. This property is no longer provided as part of errorInfo but can be accessed as a property of the Error instance itself.'\n );\n }\n });\n return componentStack;\n }\n function releaseRootPooledCache(root, remainingLanes) {\n 0 === (root.pooledCacheLanes &= remainingLanes) &&\n ((remainingLanes = root.pooledCache),\n null != remainingLanes &&\n ((root.pooledCache = null), releaseCache(remainingLanes)));\n }\n function flushPendingEffects(wasDelayedCommit) {\n flushMutationEffects();\n flushLayoutEffects();\n flushSpawnedWork();\n return flushPassiveEffects(wasDelayedCommit);\n }\n function flushPassiveEffects() {\n if (pendingEffectsStatus !== PENDING_PASSIVE_PHASE) return !1;\n var root = pendingEffectsRoot,\n remainingLanes = pendingEffectsRemainingLanes;\n pendingEffectsRemainingLanes = 0;\n var renderPriority = lanesToEventPriority(pendingEffectsLanes),\n priority =\n 0 === DefaultEventPriority || DefaultEventPriority > renderPriority\n ? DefaultEventPriority\n : renderPriority;\n renderPriority = ReactSharedInternals.T;\n var previousPriority = ReactDOMSharedInternals.p;\n try {\n ReactDOMSharedInternals.p = priority;\n ReactSharedInternals.T = null;\n priority = pendingPassiveTransitions;\n pendingPassiveTransitions = null;\n var root$jscomp$0 = pendingEffectsRoot,\n lanes = pendingEffectsLanes;\n pendingEffectsStatus = NO_PENDING_EFFECTS;\n pendingFinishedWork = pendingEffectsRoot = null;\n pendingEffectsLanes = 0;\n if ((executionContext & (RenderContext | CommitContext)) !== NoContext)\n throw Error(\"Cannot flush passive effects while already rendering.\");\n isFlushingPassiveEffects = !0;\n didScheduleUpdateDuringPassiveEffects = !1;\n null !== injectedProfilingHooks &&\n \"function\" ===\n typeof injectedProfilingHooks.markPassiveEffectsStarted &&\n injectedProfilingHooks.markPassiveEffectsStarted(lanes);\n var prevExecutionContext = executionContext;\n executionContext |= CommitContext;\n commitPassiveUnmountOnFiber(root$jscomp$0.current);\n commitPassiveMountOnFiber(\n root$jscomp$0,\n root$jscomp$0.current,\n lanes,\n priority\n );\n null !== injectedProfilingHooks &&\n \"function\" ===\n typeof injectedProfilingHooks.markPassiveEffectsStopped &&\n injectedProfilingHooks.markPassiveEffectsStopped();\n commitDoubleInvokeEffectsInDEV(root$jscomp$0);\n executionContext = prevExecutionContext;\n flushSyncWorkAcrossRoots_impl(0, !1);\n didScheduleUpdateDuringPassiveEffects\n ? root$jscomp$0 === rootWithPassiveNestedUpdates\n ? nestedPassiveUpdateCount++\n : ((nestedPassiveUpdateCount = 0),\n (rootWithPassiveNestedUpdates = root$jscomp$0))\n : (nestedPassiveUpdateCount = 0);\n didScheduleUpdateDuringPassiveEffects = isFlushingPassiveEffects = !1;\n if (\n injectedHook &&\n \"function\" === typeof injectedHook.onPostCommitFiberRoot\n )\n try {\n injectedHook.onPostCommitFiberRoot(rendererID, root$jscomp$0);\n } catch (err) {\n hasLoggedError ||\n ((hasLoggedError = !0),\n console.error(\n \"React instrumentation encountered an error: %s\",\n err\n ));\n }\n var stateNode = root$jscomp$0.current.stateNode;\n stateNode.effectDuration = 0;\n stateNode.passiveEffectDuration = 0;\n return !0;\n } finally {\n (ReactDOMSharedInternals.p = previousPriority),\n (ReactSharedInternals.T = renderPriority),\n releaseRootPooledCache(root, remainingLanes);\n }\n }\n function captureCommitPhaseErrorOnRoot(rootFiber, sourceFiber, error) {\n sourceFiber = createCapturedValueAtFiber(error, sourceFiber);\n sourceFiber = createRootErrorUpdate(rootFiber.stateNode, sourceFiber, 2);\n rootFiber = enqueueUpdate(rootFiber, sourceFiber, 2);\n null !== rootFiber &&\n (markRootUpdated$1(rootFiber, 2), ensureRootIsScheduled(rootFiber));\n }\n function captureCommitPhaseError(\n sourceFiber,\n nearestMountedAncestor,\n error\n ) {\n isRunningInsertionEffect = !1;\n if (3 === sourceFiber.tag)\n captureCommitPhaseErrorOnRoot(sourceFiber, sourceFiber, error);\n else {\n for (; null !== nearestMountedAncestor; ) {\n if (3 === nearestMountedAncestor.tag) {\n captureCommitPhaseErrorOnRoot(\n nearestMountedAncestor,\n sourceFiber,\n error\n );\n return;\n }\n if (1 === nearestMountedAncestor.tag) {\n var instance = nearestMountedAncestor.stateNode;\n if (\n \"function\" ===\n typeof nearestMountedAncestor.type.getDerivedStateFromError ||\n (\"function\" === typeof instance.componentDidCatch &&\n (null === legacyErrorBoundariesThatAlreadyFailed ||\n !legacyErrorBoundariesThatAlreadyFailed.has(instance)))\n ) {\n sourceFiber = createCapturedValueAtFiber(error, sourceFiber);\n error = createClassErrorUpdate(2);\n instance = enqueueUpdate(nearestMountedAncestor, error, 2);\n null !== instance &&\n (initializeClassErrorUpdate(\n error,\n instance,\n nearestMountedAncestor,\n sourceFiber\n ),\n markRootUpdated$1(instance, 2),\n ensureRootIsScheduled(instance));\n return;\n }\n }\n nearestMountedAncestor = nearestMountedAncestor.return;\n }\n console.error(\n \"Internal React error: Attempted to capture a commit phase error inside a detached tree. This indicates a bug in React. Potential causes include deleting the same fiber more than once, committing an already-finished tree, or an inconsistent return pointer.\\n\\nError message:\\n\\n%s\",\n error\n );\n }\n }\n function attachPingListener(root, wakeable, lanes) {\n var pingCache = root.pingCache;\n if (null === pingCache) {\n pingCache = root.pingCache = new PossiblyWeakMap();\n var threadIDs = new Set();\n pingCache.set(wakeable, threadIDs);\n } else\n (threadIDs = pingCache.get(wakeable)),\n void 0 === threadIDs &&\n ((threadIDs = new Set()), pingCache.set(wakeable, threadIDs));\n threadIDs.has(lanes) ||\n ((workInProgressRootDidAttachPingListener = !0),\n threadIDs.add(lanes),\n (pingCache = pingSuspendedRoot.bind(null, root, wakeable, lanes)),\n isDevToolsPresent && restorePendingUpdaters(root, lanes),\n wakeable.then(pingCache, pingCache));\n }\n function pingSuspendedRoot(root, wakeable, pingedLanes) {\n var pingCache = root.pingCache;\n null !== pingCache && pingCache.delete(wakeable);\n root.pingedLanes |= root.suspendedLanes & pingedLanes;\n root.warmLanes &= ~pingedLanes;\n isConcurrentActEnvironment() &&\n null === ReactSharedInternals.actQueue &&\n console.error(\n \"A suspended resource finished loading inside a test, but the event was not wrapped in act(...).\\n\\nWhen testing, code that resolves suspended data should be wrapped into act(...):\\n\\nact(() => {\\n /* finish loading suspended data */\\n});\\n/* assert on the output */\\n\\nThis ensures that you're testing the behavior the user would see in the browser. Learn more at https://react.dev/link/wrap-tests-with-act\"\n );\n workInProgressRoot === root &&\n (workInProgressRootRenderLanes & pingedLanes) === pingedLanes &&\n (workInProgressRootExitStatus === RootSuspendedWithDelay ||\n (workInProgressRootExitStatus === RootSuspended &&\n (workInProgressRootRenderLanes & 62914560) ===\n workInProgressRootRenderLanes &&\n now$1() - globalMostRecentFallbackTime < FALLBACK_THROTTLE_MS)\n ? (executionContext & RenderContext) === NoContext &&\n prepareFreshStack(root, 0)\n : (workInProgressRootPingedLanes |= pingedLanes),\n workInProgressSuspendedRetryLanes === workInProgressRootRenderLanes &&\n (workInProgressSuspendedRetryLanes = 0));\n ensureRootIsScheduled(root);\n }\n function retryTimedOutBoundary(boundaryFiber, retryLane) {\n 0 === retryLane && (retryLane = claimNextRetryLane());\n boundaryFiber = enqueueConcurrentRenderForLane(boundaryFiber, retryLane);\n null !== boundaryFiber &&\n (markRootUpdated$1(boundaryFiber, retryLane),\n ensureRootIsScheduled(boundaryFiber));\n }\n function retryDehydratedSuspenseBoundary(boundaryFiber) {\n var suspenseState = boundaryFiber.memoizedState,\n retryLane = 0;\n null !== suspenseState && (retryLane = suspenseState.retryLane);\n retryTimedOutBoundary(boundaryFiber, retryLane);\n }\n function resolveRetryWakeable(boundaryFiber, wakeable) {\n var retryLane = 0;\n switch (boundaryFiber.tag) {\n case 13:\n var retryCache = boundaryFiber.stateNode;\n var suspenseState = boundaryFiber.memoizedState;\n null !== suspenseState && (retryLane = suspenseState.retryLane);\n break;\n case 19:\n retryCache = boundaryFiber.stateNode;\n break;\n case 22:\n retryCache = boundaryFiber.stateNode._retryCache;\n break;\n default:\n throw Error(\n \"Pinged unknown suspense boundary type. This is probably a bug in React.\"\n );\n }\n null !== retryCache && retryCache.delete(wakeable);\n retryTimedOutBoundary(boundaryFiber, retryLane);\n }\n function recursivelyTraverseAndDoubleInvokeEffectsInDEV(\n root$jscomp$0,\n parentFiber,\n isInStrictMode\n ) {\n if (0 !== (parentFiber.subtreeFlags & 67117056))\n for (parentFiber = parentFiber.child; null !== parentFiber; ) {\n var root = root$jscomp$0,\n fiber = parentFiber,\n isStrictModeFiber = fiber.type === REACT_STRICT_MODE_TYPE;\n isStrictModeFiber = isInStrictMode || isStrictModeFiber;\n 22 !== fiber.tag\n ? fiber.flags & 67108864\n ? isStrictModeFiber &&\n runWithFiberInDEV(\n fiber,\n doubleInvokeEffectsOnFiber,\n root,\n fiber,\n (fiber.mode & NoStrictPassiveEffectsMode) === NoMode\n )\n : recursivelyTraverseAndDoubleInvokeEffectsInDEV(\n root,\n fiber,\n isStrictModeFiber\n )\n : null === fiber.memoizedState &&\n (isStrictModeFiber && fiber.flags & 8192\n ? runWithFiberInDEV(\n fiber,\n doubleInvokeEffectsOnFiber,\n root,\n fiber\n )\n : fiber.subtreeFlags & 67108864 &&\n runWithFiberInDEV(\n fiber,\n recursivelyTraverseAndDoubleInvokeEffectsInDEV,\n root,\n fiber,\n isStrictModeFiber\n ));\n parentFiber = parentFiber.sibling;\n }\n }\n function doubleInvokeEffectsOnFiber(root, fiber) {\n var shouldDoubleInvokePassiveEffects =\n 2 < arguments.length && void 0 !== arguments[2] ? arguments[2] : !0;\n setIsStrictModeForDevtools(!0);\n try {\n disappearLayoutEffects(fiber),\n shouldDoubleInvokePassiveEffects && disconnectPassiveEffect(fiber),\n reappearLayoutEffects(root, fiber.alternate, fiber, !1),\n shouldDoubleInvokePassiveEffects &&\n reconnectPassiveEffects(root, fiber, 0, null, !1, 0);\n } finally {\n setIsStrictModeForDevtools(!1);\n }\n }\n function commitDoubleInvokeEffectsInDEV(root) {\n var doubleInvokeEffects = !0;\n root.current.mode & (StrictLegacyMode | StrictEffectsMode) ||\n (doubleInvokeEffects = !1);\n recursivelyTraverseAndDoubleInvokeEffectsInDEV(\n root,\n root.current,\n doubleInvokeEffects\n );\n }\n function warnAboutUpdateOnNotYetMountedFiberInDEV(fiber) {\n if ((executionContext & RenderContext) === NoContext) {\n var tag = fiber.tag;\n if (\n 3 === tag ||\n 1 === tag ||\n 0 === tag ||\n 11 === tag ||\n 14 === tag ||\n 15 === tag\n ) {\n tag = getComponentNameFromFiber(fiber) || \"ReactComponent\";\n if (null !== didWarnStateUpdateForNotYetMountedComponent) {\n if (didWarnStateUpdateForNotYetMountedComponent.has(tag)) return;\n didWarnStateUpdateForNotYetMountedComponent.add(tag);\n } else didWarnStateUpdateForNotYetMountedComponent = new Set([tag]);\n runWithFiberInDEV(fiber, function () {\n console.error(\n \"Can't perform a React state update on a component that hasn't mounted yet. This indicates that you have a side-effect in your render function that asynchronously later calls tries to update the component. Move this work to useEffect instead.\"\n );\n });\n }\n }\n }\n function restorePendingUpdaters(root, lanes) {\n isDevToolsPresent &&\n root.memoizedUpdaters.forEach(function (schedulingFiber) {\n addFiberToLanesMap(root, schedulingFiber, lanes);\n });\n }\n function scheduleCallback$1(priorityLevel, callback) {\n var actQueue = ReactSharedInternals.actQueue;\n return null !== actQueue\n ? (actQueue.push(callback), fakeActCallbackNode$1)\n : scheduleCallback$3(priorityLevel, callback);\n }\n function warnIfUpdatesNotWrappedWithActDEV(fiber) {\n isConcurrentActEnvironment() &&\n null === ReactSharedInternals.actQueue &&\n runWithFiberInDEV(fiber, function () {\n console.error(\n \"An update to %s inside a test was not wrapped in act(...).\\n\\nWhen testing, code that causes React state updates should be wrapped into act(...):\\n\\nact(() => {\\n /* fire events that update state */\\n});\\n/* assert on the output */\\n\\nThis ensures that you're testing the behavior the user would see in the browser. Learn more at https://react.dev/link/wrap-tests-with-act\",\n getComponentNameFromFiber(fiber)\n );\n });\n }\n function ensureRootIsScheduled(root) {\n root !== lastScheduledRoot &&\n null === root.next &&\n (null === lastScheduledRoot\n ? (firstScheduledRoot = lastScheduledRoot = root)\n : (lastScheduledRoot = lastScheduledRoot.next = root));\n mightHavePendingSyncWork = !0;\n null !== ReactSharedInternals.actQueue\n ? didScheduleMicrotask_act ||\n ((didScheduleMicrotask_act = !0), scheduleImmediateRootScheduleTask())\n : didScheduleMicrotask ||\n ((didScheduleMicrotask = !0), scheduleImmediateRootScheduleTask());\n }\n function flushSyncWorkAcrossRoots_impl(syncTransitionLanes, onlyLegacy) {\n if (!isFlushingWork && mightHavePendingSyncWork) {\n isFlushingWork = !0;\n do {\n var didPerformSomeWork = !1;\n for (var root = firstScheduledRoot; null !== root; ) {\n if (!onlyLegacy)\n if (0 !== syncTransitionLanes) {\n var pendingLanes = root.pendingLanes;\n if (0 === pendingLanes) var nextLanes = 0;\n else {\n var suspendedLanes = root.suspendedLanes,\n pingedLanes = root.pingedLanes;\n nextLanes =\n (1 << (31 - clz32(42 | syncTransitionLanes) + 1)) - 1;\n nextLanes &= pendingLanes & ~(suspendedLanes & ~pingedLanes);\n nextLanes =\n nextLanes & 201326741\n ? (nextLanes & 201326741) | 1\n : nextLanes\n ? nextLanes | 2\n : 0;\n }\n 0 !== nextLanes &&\n ((didPerformSomeWork = !0),\n performSyncWorkOnRoot(root, nextLanes));\n } else\n (nextLanes = workInProgressRootRenderLanes),\n (nextLanes = getNextLanes(\n root,\n root === workInProgressRoot ? nextLanes : 0,\n null !== root.cancelPendingCommit ||\n root.timeoutHandle !== noTimeout\n )),\n 0 === (nextLanes & 3) ||\n checkIfRootIsPrerendering(root, nextLanes) ||\n ((didPerformSomeWork = !0),\n performSyncWorkOnRoot(root, nextLanes));\n root = root.next;\n }\n } while (didPerformSomeWork);\n isFlushingWork = !1;\n }\n }\n function processRootScheduleInImmediateTask() {\n processRootScheduleInMicrotask();\n }\n function processRootScheduleInMicrotask() {\n mightHavePendingSyncWork =\n didScheduleMicrotask_act =\n didScheduleMicrotask =\n !1;\n var syncTransitionLanes = 0;\n 0 !== currentEventTransitionLane &&\n (shouldAttemptEagerTransition() &&\n (syncTransitionLanes = currentEventTransitionLane),\n (currentEventTransitionLane = 0));\n for (\n var currentTime = now$1(), prev = null, root = firstScheduledRoot;\n null !== root;\n\n ) {\n var next = root.next,\n nextLanes = scheduleTaskForRootDuringMicrotask(root, currentTime);\n if (0 === nextLanes)\n (root.next = null),\n null === prev ? (firstScheduledRoot = next) : (prev.next = next),\n null === next && (lastScheduledRoot = prev);\n else if (\n ((prev = root), 0 !== syncTransitionLanes || 0 !== (nextLanes & 3))\n )\n mightHavePendingSyncWork = !0;\n root = next;\n }\n flushSyncWorkAcrossRoots_impl(syncTransitionLanes, !1);\n }\n function scheduleTaskForRootDuringMicrotask(root, currentTime) {\n for (\n var suspendedLanes = root.suspendedLanes,\n pingedLanes = root.pingedLanes,\n expirationTimes = root.expirationTimes,\n lanes = root.pendingLanes & -62914561;\n 0 < lanes;\n\n ) {\n var index = 31 - clz32(lanes),\n lane = 1 << index,\n expirationTime = expirationTimes[index];\n if (-1 === expirationTime) {\n if (0 === (lane & suspendedLanes) || 0 !== (lane & pingedLanes))\n expirationTimes[index] = computeExpirationTime(lane, currentTime);\n } else expirationTime <= currentTime && (root.expiredLanes |= lane);\n lanes &= ~lane;\n }\n currentTime = workInProgressRoot;\n suspendedLanes = workInProgressRootRenderLanes;\n suspendedLanes = getNextLanes(\n root,\n root === currentTime ? suspendedLanes : 0,\n null !== root.cancelPendingCommit || root.timeoutHandle !== noTimeout\n );\n pingedLanes = root.callbackNode;\n if (\n 0 === suspendedLanes ||\n (root === currentTime &&\n (workInProgressSuspendedReason === SuspendedOnData ||\n workInProgressSuspendedReason === SuspendedOnAction)) ||\n null !== root.cancelPendingCommit\n )\n return (\n null !== pingedLanes && cancelCallback(pingedLanes),\n (root.callbackNode = null),\n (root.callbackPriority = 0)\n );\n if (\n 0 === (suspendedLanes & 3) ||\n checkIfRootIsPrerendering(root, suspendedLanes)\n ) {\n currentTime = suspendedLanes & -suspendedLanes;\n if (\n currentTime !== root.callbackPriority ||\n (null !== ReactSharedInternals.actQueue &&\n pingedLanes !== fakeActCallbackNode)\n )\n cancelCallback(pingedLanes);\n else return currentTime;\n switch (lanesToEventPriority(suspendedLanes)) {\n case DiscreteEventPriority:\n case ContinuousEventPriority:\n suspendedLanes = UserBlockingPriority;\n break;\n case DefaultEventPriority:\n suspendedLanes = NormalPriority$1;\n break;\n case IdleEventPriority:\n suspendedLanes = IdlePriority;\n break;\n default:\n suspendedLanes = NormalPriority$1;\n }\n pingedLanes = performWorkOnRootViaSchedulerTask.bind(null, root);\n null !== ReactSharedInternals.actQueue\n ? (ReactSharedInternals.actQueue.push(pingedLanes),\n (suspendedLanes = fakeActCallbackNode))\n : (suspendedLanes = scheduleCallback$3(suspendedLanes, pingedLanes));\n root.callbackPriority = currentTime;\n root.callbackNode = suspendedLanes;\n return currentTime;\n }\n null !== pingedLanes && cancelCallback(pingedLanes);\n root.callbackPriority = 2;\n root.callbackNode = null;\n return 2;\n }\n function performWorkOnRootViaSchedulerTask(root, didTimeout) {\n nestedUpdateScheduled = currentUpdateIsNested = !1;\n if (\n pendingEffectsStatus !== NO_PENDING_EFFECTS &&\n pendingEffectsStatus !== PENDING_PASSIVE_PHASE\n )\n return (root.callbackNode = null), (root.callbackPriority = 0), null;\n var originalCallbackNode = root.callbackNode;\n if (flushPendingEffects(!0) && root.callbackNode !== originalCallbackNode)\n return null;\n var workInProgressRootRenderLanes$jscomp$0 =\n workInProgressRootRenderLanes;\n workInProgressRootRenderLanes$jscomp$0 = getNextLanes(\n root,\n root === workInProgressRoot\n ? workInProgressRootRenderLanes$jscomp$0\n : 0,\n null !== root.cancelPendingCommit || root.timeoutHandle !== noTimeout\n );\n if (0 === workInProgressRootRenderLanes$jscomp$0) return null;\n performWorkOnRoot(\n root,\n workInProgressRootRenderLanes$jscomp$0,\n didTimeout\n );\n scheduleTaskForRootDuringMicrotask(root, now$1());\n return null != root.callbackNode &&\n root.callbackNode === originalCallbackNode\n ? performWorkOnRootViaSchedulerTask.bind(null, root)\n : null;\n }\n function performSyncWorkOnRoot(root, lanes) {\n if (flushPendingEffects()) return null;\n currentUpdateIsNested = nestedUpdateScheduled;\n nestedUpdateScheduled = !1;\n performWorkOnRoot(root, lanes, !0);\n }\n function cancelCallback(callbackNode) {\n callbackNode !== fakeActCallbackNode &&\n null !== callbackNode &&\n cancelCallback$1(callbackNode);\n }\n function scheduleImmediateRootScheduleTask() {\n null !== ReactSharedInternals.actQueue &&\n ReactSharedInternals.actQueue.push(function () {\n processRootScheduleInMicrotask();\n return null;\n });\n scheduleMicrotask(function () {\n (executionContext & (RenderContext | CommitContext)) !== NoContext\n ? scheduleCallback$3(\n ImmediatePriority,\n processRootScheduleInImmediateTask\n )\n : processRootScheduleInMicrotask();\n });\n }\n function requestTransitionLane() {\n 0 === currentEventTransitionLane &&\n (currentEventTransitionLane = claimNextTransitionLane());\n return currentEventTransitionLane;\n }\n function coerceFormActionProp(actionProp) {\n if (\n null == actionProp ||\n \"symbol\" === typeof actionProp ||\n \"boolean\" === typeof actionProp\n )\n return null;\n if (\"function\" === typeof actionProp) return actionProp;\n checkAttributeStringCoercion(actionProp, \"action\");\n return sanitizeURL(\"\" + actionProp);\n }\n function createFormDataWithSubmitter(form, submitter) {\n var temp = submitter.ownerDocument.createElement(\"input\");\n temp.name = submitter.name;\n temp.value = submitter.value;\n form.id && temp.setAttribute(\"form\", form.id);\n submitter.parentNode.insertBefore(temp, submitter);\n form = new FormData(form);\n temp.parentNode.removeChild(temp);\n return form;\n }\n function extractEvents$1(\n dispatchQueue,\n domEventName,\n maybeTargetInst,\n nativeEvent,\n nativeEventTarget\n ) {\n if (\n \"submit\" === domEventName &&\n maybeTargetInst &&\n maybeTargetInst.stateNode === nativeEventTarget\n ) {\n var action = coerceFormActionProp(\n (nativeEventTarget[internalPropsKey] || null).action\n ),\n submitter = nativeEvent.submitter;\n submitter &&\n ((domEventName = (domEventName = submitter[internalPropsKey] || null)\n ? coerceFormActionProp(domEventName.formAction)\n : submitter.getAttribute(\"formAction\")),\n null !== domEventName &&\n ((action = domEventName), (submitter = null)));\n var event = new SyntheticEvent(\n \"action\",\n \"action\",\n null,\n nativeEvent,\n nativeEventTarget\n );\n dispatchQueue.push({\n event: event,\n listeners: [\n {\n instance: null,\n listener: function () {\n if (nativeEvent.defaultPrevented) {\n if (0 !== currentEventTransitionLane) {\n var formData = submitter\n ? createFormDataWithSubmitter(\n nativeEventTarget,\n submitter\n )\n : new FormData(nativeEventTarget),\n pendingState = {\n pending: !0,\n data: formData,\n method: nativeEventTarget.method,\n action: action\n };\n Object.freeze(pendingState);\n startHostTransition(\n maybeTargetInst,\n pendingState,\n null,\n formData\n );\n }\n } else\n \"function\" === typeof action &&\n (event.preventDefault(),\n (formData = submitter\n ? createFormDataWithSubmitter(\n nativeEventTarget,\n submitter\n )\n : new FormData(nativeEventTarget)),\n (pendingState = {\n pending: !0,\n data: formData,\n method: nativeEventTarget.method,\n action: action\n }),\n Object.freeze(pendingState),\n startHostTransition(\n maybeTargetInst,\n pendingState,\n action,\n formData\n ));\n },\n currentTarget: nativeEventTarget\n }\n ]\n });\n }\n }\n function executeDispatch(event, listener, currentTarget) {\n event.currentTarget = currentTarget;\n try {\n listener(event);\n } catch (error) {\n reportGlobalError(error);\n }\n event.currentTarget = null;\n }\n function processDispatchQueue(dispatchQueue, eventSystemFlags) {\n eventSystemFlags = 0 !== (eventSystemFlags & 4);\n for (var i = 0; i < dispatchQueue.length; i++) {\n var _dispatchQueue$i = dispatchQueue[i];\n a: {\n var previousInstance = void 0,\n event = _dispatchQueue$i.event;\n _dispatchQueue$i = _dispatchQueue$i.listeners;\n if (eventSystemFlags)\n for (\n var i$jscomp$0 = _dispatchQueue$i.length - 1;\n 0 <= i$jscomp$0;\n i$jscomp$0--\n ) {\n var _dispatchListeners$i = _dispatchQueue$i[i$jscomp$0],\n instance = _dispatchListeners$i.instance,\n currentTarget = _dispatchListeners$i.currentTarget;\n _dispatchListeners$i = _dispatchListeners$i.listener;\n if (instance !== previousInstance && event.isPropagationStopped())\n break a;\n null !== instance\n ? runWithFiberInDEV(\n instance,\n executeDispatch,\n event,\n _dispatchListeners$i,\n currentTarget\n )\n : executeDispatch(event, _dispatchListeners$i, currentTarget);\n previousInstance = instance;\n }\n else\n for (\n i$jscomp$0 = 0;\n i$jscomp$0 < _dispatchQueue$i.length;\n i$jscomp$0++\n ) {\n _dispatchListeners$i = _dispatchQueue$i[i$jscomp$0];\n instance = _dispatchListeners$i.instance;\n currentTarget = _dispatchListeners$i.currentTarget;\n _dispatchListeners$i = _dispatchListeners$i.listener;\n if (instance !== previousInstance && event.isPropagationStopped())\n break a;\n null !== instance\n ? runWithFiberInDEV(\n instance,\n executeDispatch,\n event,\n _dispatchListeners$i,\n currentTarget\n )\n : executeDispatch(event, _dispatchListeners$i, currentTarget);\n previousInstance = instance;\n }\n }\n }\n }\n function listenToNonDelegatedEvent(domEventName, targetElement) {\n nonDelegatedEvents.has(domEventName) ||\n console.error(\n 'Did not expect a listenToNonDelegatedEvent() call for \"%s\". This is a bug in React. Please file an issue.',\n domEventName\n );\n var listenerSet = targetElement[internalEventHandlersKey];\n void 0 === listenerSet &&\n (listenerSet = targetElement[internalEventHandlersKey] = new Set());\n var listenerSetKey = domEventName + \"__bubble\";\n listenerSet.has(listenerSetKey) ||\n (addTrappedEventListener(targetElement, domEventName, 2, !1),\n listenerSet.add(listenerSetKey));\n }\n function listenToNativeEvent(domEventName, isCapturePhaseListener, target) {\n nonDelegatedEvents.has(domEventName) &&\n !isCapturePhaseListener &&\n console.error(\n 'Did not expect a listenToNativeEvent() call for \"%s\" in the bubble phase. This is a bug in React. Please file an issue.',\n domEventName\n );\n var eventSystemFlags = 0;\n isCapturePhaseListener && (eventSystemFlags |= 4);\n addTrappedEventListener(\n target,\n domEventName,\n eventSystemFlags,\n isCapturePhaseListener\n );\n }\n function listenToAllSupportedEvents(rootContainerElement) {\n if (!rootContainerElement[listeningMarker]) {\n rootContainerElement[listeningMarker] = !0;\n allNativeEvents.forEach(function (domEventName) {\n \"selectionchange\" !== domEventName &&\n (nonDelegatedEvents.has(domEventName) ||\n listenToNativeEvent(domEventName, !1, rootContainerElement),\n listenToNativeEvent(domEventName, !0, rootContainerElement));\n });\n var ownerDocument =\n 9 === rootContainerElement.nodeType\n ? rootContainerElement\n : rootContainerElement.ownerDocument;\n null === ownerDocument ||\n ownerDocument[listeningMarker] ||\n ((ownerDocument[listeningMarker] = !0),\n listenToNativeEvent(\"selectionchange\", !1, ownerDocument));\n }\n }\n function addTrappedEventListener(\n targetContainer,\n domEventName,\n eventSystemFlags,\n isCapturePhaseListener\n ) {\n switch (getEventPriority(domEventName)) {\n case DiscreteEventPriority:\n var listenerWrapper = dispatchDiscreteEvent;\n break;\n case ContinuousEventPriority:\n listenerWrapper = dispatchContinuousEvent;\n break;\n default:\n listenerWrapper = dispatchEvent;\n }\n eventSystemFlags = listenerWrapper.bind(\n null,\n domEventName,\n eventSystemFlags,\n targetContainer\n );\n listenerWrapper = void 0;\n !passiveBrowserEventsSupported ||\n (\"touchstart\" !== domEventName &&\n \"touchmove\" !== domEventName &&\n \"wheel\" !== domEventName) ||\n (listenerWrapper = !0);\n isCapturePhaseListener\n ? void 0 !== listenerWrapper\n ? targetContainer.addEventListener(domEventName, eventSystemFlags, {\n capture: !0,\n passive: listenerWrapper\n })\n : targetContainer.addEventListener(domEventName, eventSystemFlags, !0)\n : void 0 !== listenerWrapper\n ? targetContainer.addEventListener(domEventName, eventSystemFlags, {\n passive: listenerWrapper\n })\n : targetContainer.addEventListener(\n domEventName,\n eventSystemFlags,\n !1\n );\n }\n function dispatchEventForPluginEventSystem(\n domEventName,\n eventSystemFlags,\n nativeEvent,\n targetInst$jscomp$0,\n targetContainer\n ) {\n var ancestorInst = targetInst$jscomp$0;\n if (\n 0 === (eventSystemFlags & 1) &&\n 0 === (eventSystemFlags & 2) &&\n null !== targetInst$jscomp$0\n )\n a: for (;;) {\n if (null === targetInst$jscomp$0) return;\n var nodeTag = targetInst$jscomp$0.tag;\n if (3 === nodeTag || 4 === nodeTag) {\n var container = targetInst$jscomp$0.stateNode.containerInfo;\n if (container === targetContainer) break;\n if (4 === nodeTag)\n for (nodeTag = targetInst$jscomp$0.return; null !== nodeTag; ) {\n var grandTag = nodeTag.tag;\n if (\n (3 === grandTag || 4 === grandTag) &&\n nodeTag.stateNode.containerInfo === targetContainer\n )\n return;\n nodeTag = nodeTag.return;\n }\n for (; null !== container; ) {\n nodeTag = getClosestInstanceFromNode(container);\n if (null === nodeTag) return;\n grandTag = nodeTag.tag;\n if (\n 5 === grandTag ||\n 6 === grandTag ||\n 26 === grandTag ||\n 27 === grandTag\n ) {\n targetInst$jscomp$0 = ancestorInst = nodeTag;\n continue a;\n }\n container = container.parentNode;\n }\n }\n targetInst$jscomp$0 = targetInst$jscomp$0.return;\n }\n batchedUpdates$1(function () {\n var targetInst = ancestorInst,\n nativeEventTarget = getEventTarget(nativeEvent),\n dispatchQueue = [];\n a: {\n var reactName = topLevelEventsToReactNames.get(domEventName);\n if (void 0 !== reactName) {\n var SyntheticEventCtor = SyntheticEvent,\n reactEventType = domEventName;\n switch (domEventName) {\n case \"keypress\":\n if (0 === getEventCharCode(nativeEvent)) break a;\n case \"keydown\":\n case \"keyup\":\n SyntheticEventCtor = SyntheticKeyboardEvent;\n break;\n case \"focusin\":\n reactEventType = \"focus\";\n SyntheticEventCtor = SyntheticFocusEvent;\n break;\n case \"focusout\":\n reactEventType = \"blur\";\n SyntheticEventCtor = SyntheticFocusEvent;\n break;\n case \"beforeblur\":\n case \"afterblur\":\n SyntheticEventCtor = SyntheticFocusEvent;\n break;\n case \"click\":\n if (2 === nativeEvent.button) break a;\n case \"auxclick\":\n case \"dblclick\":\n case \"mousedown\":\n case \"mousemove\":\n case \"mouseup\":\n case \"mouseout\":\n case \"mouseover\":\n case \"contextmenu\":\n SyntheticEventCtor = SyntheticMouseEvent;\n break;\n case \"drag\":\n case \"dragend\":\n case \"dragenter\":\n case \"dragexit\":\n case \"dragleave\":\n case \"dragover\":\n case \"dragstart\":\n case \"drop\":\n SyntheticEventCtor = SyntheticDragEvent;\n break;\n case \"touchcancel\":\n case \"touchend\":\n case \"touchmove\":\n case \"touchstart\":\n SyntheticEventCtor = SyntheticTouchEvent;\n break;\n case ANIMATION_END:\n case ANIMATION_ITERATION:\n case ANIMATION_START:\n SyntheticEventCtor = SyntheticAnimationEvent;\n break;\n case TRANSITION_END:\n SyntheticEventCtor = SyntheticTransitionEvent;\n break;\n case \"scroll\":\n case \"scrollend\":\n SyntheticEventCtor = SyntheticUIEvent;\n break;\n case \"wheel\":\n SyntheticEventCtor = SyntheticWheelEvent;\n break;\n case \"copy\":\n case \"cut\":\n case \"paste\":\n SyntheticEventCtor = SyntheticClipboardEvent;\n break;\n case \"gotpointercapture\":\n case \"lostpointercapture\":\n case \"pointercancel\":\n case \"pointerdown\":\n case \"pointermove\":\n case \"pointerout\":\n case \"pointerover\":\n case \"pointerup\":\n SyntheticEventCtor = SyntheticPointerEvent;\n break;\n case \"toggle\":\n case \"beforetoggle\":\n SyntheticEventCtor = SyntheticToggleEvent;\n }\n var inCapturePhase = 0 !== (eventSystemFlags & 4),\n accumulateTargetOnly =\n !inCapturePhase &&\n (\"scroll\" === domEventName || \"scrollend\" === domEventName),\n reactEventName = inCapturePhase\n ? null !== reactName\n ? reactName + \"Capture\"\n : null\n : reactName;\n inCapturePhase = [];\n for (\n var instance = targetInst, lastHostComponent;\n null !== instance;\n\n ) {\n var _instance2 = instance;\n lastHostComponent = _instance2.stateNode;\n _instance2 = _instance2.tag;\n (5 !== _instance2 && 26 !== _instance2 && 27 !== _instance2) ||\n null === lastHostComponent ||\n null === reactEventName ||\n ((_instance2 = getListener(instance, reactEventName)),\n null != _instance2 &&\n inCapturePhase.push(\n createDispatchListener(\n instance,\n _instance2,\n lastHostComponent\n )\n ));\n if (accumulateTargetOnly) break;\n instance = instance.return;\n }\n 0 < inCapturePhase.length &&\n ((reactName = new SyntheticEventCtor(\n reactName,\n reactEventType,\n null,\n nativeEvent,\n nativeEventTarget\n )),\n dispatchQueue.push({\n event: reactName,\n listeners: inCapturePhase\n }));\n }\n }\n if (0 === (eventSystemFlags & 7)) {\n a: {\n reactName =\n \"mouseover\" === domEventName || \"pointerover\" === domEventName;\n SyntheticEventCtor =\n \"mouseout\" === domEventName || \"pointerout\" === domEventName;\n if (\n reactName &&\n nativeEvent !== currentReplayingEvent &&\n (reactEventType =\n nativeEvent.relatedTarget || nativeEvent.fromElement) &&\n (getClosestInstanceFromNode(reactEventType) ||\n reactEventType[internalContainerInstanceKey])\n )\n break a;\n if (SyntheticEventCtor || reactName) {\n reactName =\n nativeEventTarget.window === nativeEventTarget\n ? nativeEventTarget\n : (reactName = nativeEventTarget.ownerDocument)\n ? reactName.defaultView || reactName.parentWindow\n : window;\n if (SyntheticEventCtor) {\n if (\n ((reactEventType =\n nativeEvent.relatedTarget || nativeEvent.toElement),\n (SyntheticEventCtor = targetInst),\n (reactEventType = reactEventType\n ? getClosestInstanceFromNode(reactEventType)\n : null),\n null !== reactEventType &&\n ((accumulateTargetOnly =\n getNearestMountedFiber(reactEventType)),\n (inCapturePhase = reactEventType.tag),\n reactEventType !== accumulateTargetOnly ||\n (5 !== inCapturePhase &&\n 27 !== inCapturePhase &&\n 6 !== inCapturePhase)))\n )\n reactEventType = null;\n } else (SyntheticEventCtor = null), (reactEventType = targetInst);\n if (SyntheticEventCtor !== reactEventType) {\n inCapturePhase = SyntheticMouseEvent;\n _instance2 = \"onMouseLeave\";\n reactEventName = \"onMouseEnter\";\n instance = \"mouse\";\n if (\n \"pointerout\" === domEventName ||\n \"pointerover\" === domEventName\n )\n (inCapturePhase = SyntheticPointerEvent),\n (_instance2 = \"onPointerLeave\"),\n (reactEventName = \"onPointerEnter\"),\n (instance = \"pointer\");\n accumulateTargetOnly =\n null == SyntheticEventCtor\n ? reactName\n : getNodeFromInstance(SyntheticEventCtor);\n lastHostComponent =\n null == reactEventType\n ? reactName\n : getNodeFromInstance(reactEventType);\n reactName = new inCapturePhase(\n _instance2,\n instance + \"leave\",\n SyntheticEventCtor,\n nativeEvent,\n nativeEventTarget\n );\n reactName.target = accumulateTargetOnly;\n reactName.relatedTarget = lastHostComponent;\n _instance2 = null;\n getClosestInstanceFromNode(nativeEventTarget) === targetInst &&\n ((inCapturePhase = new inCapturePhase(\n reactEventName,\n instance + \"enter\",\n reactEventType,\n nativeEvent,\n nativeEventTarget\n )),\n (inCapturePhase.target = lastHostComponent),\n (inCapturePhase.relatedTarget = accumulateTargetOnly),\n (_instance2 = inCapturePhase));\n accumulateTargetOnly = _instance2;\n if (SyntheticEventCtor && reactEventType)\n b: {\n inCapturePhase = SyntheticEventCtor;\n reactEventName = reactEventType;\n instance = 0;\n for (\n lastHostComponent = inCapturePhase;\n lastHostComponent;\n lastHostComponent = getParent(lastHostComponent)\n )\n instance++;\n lastHostComponent = 0;\n for (\n _instance2 = reactEventName;\n _instance2;\n _instance2 = getParent(_instance2)\n )\n lastHostComponent++;\n for (; 0 < instance - lastHostComponent; )\n (inCapturePhase = getParent(inCapturePhase)), instance--;\n for (; 0 < lastHostComponent - instance; )\n (reactEventName = getParent(reactEventName)),\n lastHostComponent--;\n for (; instance--; ) {\n if (\n inCapturePhase === reactEventName ||\n (null !== reactEventName &&\n inCapturePhase === reactEventName.alternate)\n )\n break b;\n inCapturePhase = getParent(inCapturePhase);\n reactEventName = getParent(reactEventName);\n }\n inCapturePhase = null;\n }\n else inCapturePhase = null;\n null !== SyntheticEventCtor &&\n accumulateEnterLeaveListenersForEvent(\n dispatchQueue,\n reactName,\n SyntheticEventCtor,\n inCapturePhase,\n !1\n );\n null !== reactEventType &&\n null !== accumulateTargetOnly &&\n accumulateEnterLeaveListenersForEvent(\n dispatchQueue,\n accumulateTargetOnly,\n reactEventType,\n inCapturePhase,\n !0\n );\n }\n }\n }\n a: {\n reactName = targetInst ? getNodeFromInstance(targetInst) : window;\n SyntheticEventCtor =\n reactName.nodeName && reactName.nodeName.toLowerCase();\n if (\n \"select\" === SyntheticEventCtor ||\n (\"input\" === SyntheticEventCtor && \"file\" === reactName.type)\n )\n var getTargetInstFunc = getTargetInstForChangeEvent;\n else if (isTextInputElement(reactName))\n if (isInputEventSupported)\n getTargetInstFunc = getTargetInstForInputOrChangeEvent;\n else {\n getTargetInstFunc = getTargetInstForInputEventPolyfill;\n var handleEventFunc = handleEventsForInputEventPolyfill;\n }\n else\n (SyntheticEventCtor = reactName.nodeName),\n !SyntheticEventCtor ||\n \"input\" !== SyntheticEventCtor.toLowerCase() ||\n (\"checkbox\" !== reactName.type && \"radio\" !== reactName.type)\n ? targetInst &&\n isCustomElement(targetInst.elementType) &&\n (getTargetInstFunc = getTargetInstForChangeEvent)\n : (getTargetInstFunc = getTargetInstForClickEvent);\n if (\n getTargetInstFunc &&\n (getTargetInstFunc = getTargetInstFunc(domEventName, targetInst))\n ) {\n createAndAccumulateChangeEvent(\n dispatchQueue,\n getTargetInstFunc,\n nativeEvent,\n nativeEventTarget\n );\n break a;\n }\n handleEventFunc &&\n handleEventFunc(domEventName, reactName, targetInst);\n \"focusout\" === domEventName &&\n targetInst &&\n \"number\" === reactName.type &&\n null != targetInst.memoizedProps.value &&\n setDefaultValue(reactName, \"number\", reactName.value);\n }\n handleEventFunc = targetInst\n ? getNodeFromInstance(targetInst)\n : window;\n switch (domEventName) {\n case \"focusin\":\n if (\n isTextInputElement(handleEventFunc) ||\n \"true\" === handleEventFunc.contentEditable\n )\n (activeElement = handleEventFunc),\n (activeElementInst = targetInst),\n (lastSelection = null);\n break;\n case \"focusout\":\n lastSelection = activeElementInst = activeElement = null;\n break;\n case \"mousedown\":\n mouseDown = !0;\n break;\n case \"contextmenu\":\n case \"mouseup\":\n case \"dragend\":\n mouseDown = !1;\n constructSelectEvent(\n dispatchQueue,\n nativeEvent,\n nativeEventTarget\n );\n break;\n case \"selectionchange\":\n if (skipSelectionChangeEvent) break;\n case \"keydown\":\n case \"keyup\":\n constructSelectEvent(\n dispatchQueue,\n nativeEvent,\n nativeEventTarget\n );\n }\n var fallbackData;\n if (canUseCompositionEvent)\n b: {\n switch (domEventName) {\n case \"compositionstart\":\n var eventType = \"onCompositionStart\";\n break b;\n case \"compositionend\":\n eventType = \"onCompositionEnd\";\n break b;\n case \"compositionupdate\":\n eventType = \"onCompositionUpdate\";\n break b;\n }\n eventType = void 0;\n }\n else\n isComposing\n ? isFallbackCompositionEnd(domEventName, nativeEvent) &&\n (eventType = \"onCompositionEnd\")\n : \"keydown\" === domEventName &&\n nativeEvent.keyCode === START_KEYCODE &&\n (eventType = \"onCompositionStart\");\n eventType &&\n (useFallbackCompositionData &&\n \"ko\" !== nativeEvent.locale &&\n (isComposing || \"onCompositionStart\" !== eventType\n ? \"onCompositionEnd\" === eventType &&\n isComposing &&\n (fallbackData = getData())\n : ((root = nativeEventTarget),\n (startText = \"value\" in root ? root.value : root.textContent),\n (isComposing = !0))),\n (handleEventFunc = accumulateTwoPhaseListeners(\n targetInst,\n eventType\n )),\n 0 < handleEventFunc.length &&\n ((eventType = new SyntheticCompositionEvent(\n eventType,\n domEventName,\n null,\n nativeEvent,\n nativeEventTarget\n )),\n dispatchQueue.push({\n event: eventType,\n listeners: handleEventFunc\n }),\n fallbackData\n ? (eventType.data = fallbackData)\n : ((fallbackData = getDataFromCustomEvent(nativeEvent)),\n null !== fallbackData && (eventType.data = fallbackData))));\n if (\n (fallbackData = canUseTextInputEvent\n ? getNativeBeforeInputChars(domEventName, nativeEvent)\n : getFallbackBeforeInputChars(domEventName, nativeEvent))\n )\n (eventType = accumulateTwoPhaseListeners(\n targetInst,\n \"onBeforeInput\"\n )),\n 0 < eventType.length &&\n ((handleEventFunc = new SyntheticInputEvent(\n \"onBeforeInput\",\n \"beforeinput\",\n null,\n nativeEvent,\n nativeEventTarget\n )),\n dispatchQueue.push({\n event: handleEventFunc,\n listeners: eventType\n }),\n (handleEventFunc.data = fallbackData));\n extractEvents$1(\n dispatchQueue,\n domEventName,\n targetInst,\n nativeEvent,\n nativeEventTarget\n );\n }\n processDispatchQueue(dispatchQueue, eventSystemFlags);\n });\n }\n function createDispatchListener(instance, listener, currentTarget) {\n return {\n instance: instance,\n listener: listener,\n currentTarget: currentTarget\n };\n }\n function accumulateTwoPhaseListeners(targetFiber, reactName) {\n for (\n var captureName = reactName + \"Capture\", listeners = [];\n null !== targetFiber;\n\n ) {\n var _instance3 = targetFiber,\n stateNode = _instance3.stateNode;\n _instance3 = _instance3.tag;\n (5 !== _instance3 && 26 !== _instance3 && 27 !== _instance3) ||\n null === stateNode ||\n ((_instance3 = getListener(targetFiber, captureName)),\n null != _instance3 &&\n listeners.unshift(\n createDispatchListener(targetFiber, _instance3, stateNode)\n ),\n (_instance3 = getListener(targetFiber, reactName)),\n null != _instance3 &&\n listeners.push(\n createDispatchListener(targetFiber, _instance3, stateNode)\n ));\n if (3 === targetFiber.tag) return listeners;\n targetFiber = targetFiber.return;\n }\n return [];\n }\n function getParent(inst) {\n if (null === inst) return null;\n do inst = inst.return;\n while (inst && 5 !== inst.tag && 27 !== inst.tag);\n return inst ? inst : null;\n }\n function accumulateEnterLeaveListenersForEvent(\n dispatchQueue,\n event,\n target,\n common,\n inCapturePhase\n ) {\n for (\n var registrationName = event._reactName, listeners = [];\n null !== target && target !== common;\n\n ) {\n var _instance4 = target,\n alternate = _instance4.alternate,\n stateNode = _instance4.stateNode;\n _instance4 = _instance4.tag;\n if (null !== alternate && alternate === common) break;\n (5 !== _instance4 && 26 !== _instance4 && 27 !== _instance4) ||\n null === stateNode ||\n ((alternate = stateNode),\n inCapturePhase\n ? ((stateNode = getListener(target, registrationName)),\n null != stateNode &&\n listeners.unshift(\n createDispatchListener(target, stateNode, alternate)\n ))\n : inCapturePhase ||\n ((stateNode = getListener(target, registrationName)),\n null != stateNode &&\n listeners.push(\n createDispatchListener(target, stateNode, alternate)\n )));\n target = target.return;\n }\n 0 !== listeners.length &&\n dispatchQueue.push({ event: event, listeners: listeners });\n }\n function validatePropertiesInDevelopment(type, props) {\n validateProperties$2(type, props);\n (\"input\" !== type && \"textarea\" !== type && \"select\" !== type) ||\n null == props ||\n null !== props.value ||\n didWarnValueNull ||\n ((didWarnValueNull = !0),\n \"select\" === type && props.multiple\n ? console.error(\n \"`value` prop on `%s` should not be null. Consider using an empty array when `multiple` is set to `true` to clear the component or `undefined` for uncontrolled components.\",\n type\n )\n : console.error(\n \"`value` prop on `%s` should not be null. Consider using an empty string to clear the component or `undefined` for uncontrolled components.\",\n type\n ));\n var eventRegistry = {\n registrationNameDependencies: registrationNameDependencies,\n possibleRegistrationNames: possibleRegistrationNames\n };\n isCustomElement(type) ||\n \"string\" === typeof props.is ||\n warnUnknownProperties(type, props, eventRegistry);\n props.contentEditable &&\n !props.suppressContentEditableWarning &&\n null != props.children &&\n console.error(\n \"A component is `contentEditable` and contains `children` managed by React. It is now your responsibility to guarantee that none of those nodes are unexpectedly modified or duplicated. This is probably not intentional.\"\n );\n }\n function warnForPropDifference(\n propName,\n serverValue,\n clientValue,\n serverDifferences\n ) {\n serverValue !== clientValue &&\n ((clientValue = normalizeMarkupForTextOrAttribute(clientValue)),\n normalizeMarkupForTextOrAttribute(serverValue) !== clientValue &&\n (serverDifferences[propName] = serverValue));\n }\n function warnForExtraAttributes(\n domElement,\n attributeNames,\n serverDifferences\n ) {\n attributeNames.forEach(function (attributeName) {\n serverDifferences[getPropNameFromAttributeName(attributeName)] =\n \"style\" === attributeName\n ? getStylesObjectFromElement(domElement)\n : domElement.getAttribute(attributeName);\n });\n }\n function warnForInvalidEventListener(registrationName, listener) {\n !1 === listener\n ? console.error(\n \"Expected `%s` listener to be a function, instead got `false`.\\n\\nIf you used to conditionally omit it with %s={condition && value}, pass %s={condition ? value : undefined} instead.\",\n registrationName,\n registrationName,\n registrationName\n )\n : console.error(\n \"Expected `%s` listener to be a function, instead got a value of `%s` type.\",\n registrationName,\n typeof listener\n );\n }\n function normalizeHTML(parent, html) {\n parent =\n parent.namespaceURI === MATH_NAMESPACE ||\n parent.namespaceURI === SVG_NAMESPACE\n ? parent.ownerDocument.createElementNS(\n parent.namespaceURI,\n parent.tagName\n )\n : parent.ownerDocument.createElement(parent.tagName);\n parent.innerHTML = html;\n return parent.innerHTML;\n }\n function normalizeMarkupForTextOrAttribute(markup) {\n willCoercionThrow(markup) &&\n (console.error(\n \"The provided HTML markup uses a value of unsupported type %s. This value must be coerced to a string before using it here.\",\n typeName(markup)\n ),\n testStringCoercion(markup));\n return (\"string\" === typeof markup ? markup : \"\" + markup)\n .replace(NORMALIZE_NEWLINES_REGEX, \"\\n\")\n .replace(NORMALIZE_NULL_AND_REPLACEMENT_REGEX, \"\");\n }\n function checkForUnmatchedText(serverText, clientText) {\n clientText = normalizeMarkupForTextOrAttribute(clientText);\n return normalizeMarkupForTextOrAttribute(serverText) === clientText\n ? !0\n : !1;\n }\n function noop$1() {}\n function setProp(domElement, tag, key, value, props, prevValue) {\n switch (key) {\n case \"children\":\n if (\"string\" === typeof value)\n validateTextNesting(value, tag, !1),\n \"body\" === tag ||\n (\"textarea\" === tag && \"\" === value) ||\n setTextContent(domElement, value);\n else if (\"number\" === typeof value || \"bigint\" === typeof value)\n validateTextNesting(\"\" + value, tag, !1),\n \"body\" !== tag && setTextContent(domElement, \"\" + value);\n break;\n case \"className\":\n setValueForKnownAttribute(domElement, \"class\", value);\n break;\n case \"tabIndex\":\n setValueForKnownAttribute(domElement, \"tabindex\", value);\n break;\n case \"dir\":\n case \"role\":\n case \"viewBox\":\n case \"width\":\n case \"height\":\n setValueForKnownAttribute(domElement, key, value);\n break;\n case \"style\":\n setValueForStyles(domElement, value, prevValue);\n break;\n case \"data\":\n if (\"object\" !== tag) {\n setValueForKnownAttribute(domElement, \"data\", value);\n break;\n }\n case \"src\":\n case \"href\":\n if (\"\" === value && (\"a\" !== tag || \"href\" !== key)) {\n \"src\" === key\n ? console.error(\n 'An empty string (\"\") was passed to the %s attribute. This may cause the browser to download the whole page again over the network. To fix this, either do not render the element at all or pass null to %s instead of an empty string.',\n key,\n key\n )\n : console.error(\n 'An empty string (\"\") was passed to the %s attribute. To fix this, either do not render the element at all or pass null to %s instead of an empty string.',\n key,\n key\n );\n domElement.removeAttribute(key);\n break;\n }\n if (\n null == value ||\n \"function\" === typeof value ||\n \"symbol\" === typeof value ||\n \"boolean\" === typeof value\n ) {\n domElement.removeAttribute(key);\n break;\n }\n checkAttributeStringCoercion(value, key);\n value = sanitizeURL(\"\" + value);\n domElement.setAttribute(key, value);\n break;\n case \"action\":\n case \"formAction\":\n null != value &&\n (\"form\" === tag\n ? \"formAction\" === key\n ? console.error(\n \"You can only pass the formAction prop to <input> or <button>. Use the action prop on <form>.\"\n )\n : \"function\" === typeof value &&\n ((null == props.encType && null == props.method) ||\n didWarnFormActionMethod ||\n ((didWarnFormActionMethod = !0),\n console.error(\n \"Cannot specify a encType or method for a form that specifies a function as the action. React provides those automatically. They will get overridden.\"\n )),\n null == props.target ||\n didWarnFormActionTarget ||\n ((didWarnFormActionTarget = !0),\n console.error(\n \"Cannot specify a target for a form that specifies a function as the action. The function will always be executed in the same window.\"\n )))\n : \"input\" === tag || \"button\" === tag\n ? \"action\" === key\n ? console.error(\n \"You can only pass the action prop to <form>. Use the formAction prop on <input> or <button>.\"\n )\n : \"input\" !== tag ||\n \"submit\" === props.type ||\n \"image\" === props.type ||\n didWarnFormActionType\n ? \"button\" !== tag ||\n null == props.type ||\n \"submit\" === props.type ||\n didWarnFormActionType\n ? \"function\" === typeof value &&\n (null == props.name ||\n didWarnFormActionName ||\n ((didWarnFormActionName = !0),\n console.error(\n 'Cannot specify a \"name\" prop for a button that specifies a function as a formAction. React needs it to encode which action should be invoked. It will get overridden.'\n )),\n (null == props.formEncType &&\n null == props.formMethod) ||\n didWarnFormActionMethod ||\n ((didWarnFormActionMethod = !0),\n console.error(\n \"Cannot specify a formEncType or formMethod for a button that specifies a function as a formAction. React provides those automatically. They will get overridden.\"\n )),\n null == props.formTarget ||\n didWarnFormActionTarget ||\n ((didWarnFormActionTarget = !0),\n console.error(\n \"Cannot specify a formTarget for a button that specifies a function as a formAction. The function will always be executed in the same window.\"\n )))\n : ((didWarnFormActionType = !0),\n console.error(\n 'A button can only specify a formAction along with type=\"submit\" or no type.'\n ))\n : ((didWarnFormActionType = !0),\n console.error(\n 'An input can only specify a formAction along with type=\"submit\" or type=\"image\".'\n ))\n : \"action\" === key\n ? console.error(\n \"You can only pass the action prop to <form>.\"\n )\n : console.error(\n \"You can only pass the formAction prop to <input> or <button>.\"\n ));\n if (\"function\" === typeof value) {\n domElement.setAttribute(\n key,\n \"javascript:throw new Error('A React form was unexpectedly submitted. If you called form.submit() manually, consider using form.requestSubmit() instead. If you\\\\'re trying to use event.stopPropagation() in a submit event handler, consider also calling event.preventDefault().')\"\n );\n break;\n } else\n \"function\" === typeof prevValue &&\n (\"formAction\" === key\n ? (\"input\" !== tag &&\n setProp(domElement, tag, \"name\", props.name, props, null),\n setProp(\n domElement,\n tag,\n \"formEncType\",\n props.formEncType,\n props,\n null\n ),\n setProp(\n domElement,\n tag,\n \"formMethod\",\n props.formMethod,\n props,\n null\n ),\n setProp(\n domElement,\n tag,\n \"formTarget\",\n props.formTarget,\n props,\n null\n ))\n : (setProp(\n domElement,\n tag,\n \"encType\",\n props.encType,\n props,\n null\n ),\n setProp(domElement, tag, \"method\", props.method, props, null),\n setProp(\n domElement,\n tag,\n \"target\",\n props.target,\n props,\n null\n )));\n if (\n null == value ||\n \"symbol\" === typeof value ||\n \"boolean\" === typeof value\n ) {\n domElement.removeAttribute(key);\n break;\n }\n checkAttributeStringCoercion(value, key);\n value = sanitizeURL(\"\" + value);\n domElement.setAttribute(key, value);\n break;\n case \"onClick\":\n null != value &&\n (\"function\" !== typeof value &&\n warnForInvalidEventListener(key, value),\n (domElement.onclick = noop$1));\n break;\n case \"onScroll\":\n null != value &&\n (\"function\" !== typeof value &&\n warnForInvalidEventListener(key, value),\n listenToNonDelegatedEvent(\"scroll\", domElement));\n break;\n case \"onScrollEnd\":\n null != value &&\n (\"function\" !== typeof value &&\n warnForInvalidEventListener(key, value),\n listenToNonDelegatedEvent(\"scrollend\", domElement));\n break;\n case \"dangerouslySetInnerHTML\":\n if (null != value) {\n if (\"object\" !== typeof value || !(\"__html\" in value))\n throw Error(\n \"`props.dangerouslySetInnerHTML` must be in the form `{__html: ...}`. Please visit https://react.dev/link/dangerously-set-inner-html for more information.\"\n );\n key = value.__html;\n if (null != key) {\n if (null != props.children)\n throw Error(\n \"Can only set one of `children` or `props.dangerouslySetInnerHTML`.\"\n );\n domElement.innerHTML = key;\n }\n }\n break;\n case \"multiple\":\n domElement.multiple =\n value && \"function\" !== typeof value && \"symbol\" !== typeof value;\n break;\n case \"muted\":\n domElement.muted =\n value && \"function\" !== typeof value && \"symbol\" !== typeof value;\n break;\n case \"suppressContentEditableWarning\":\n case \"suppressHydrationWarning\":\n case \"defaultValue\":\n case \"defaultChecked\":\n case \"innerHTML\":\n case \"ref\":\n break;\n case \"autoFocus\":\n break;\n case \"xlinkHref\":\n if (\n null == value ||\n \"function\" === typeof value ||\n \"boolean\" === typeof value ||\n \"symbol\" === typeof value\n ) {\n domElement.removeAttribute(\"xlink:href\");\n break;\n }\n checkAttributeStringCoercion(value, key);\n key = sanitizeURL(\"\" + value);\n domElement.setAttributeNS(xlinkNamespace, \"xlink:href\", key);\n break;\n case \"contentEditable\":\n case \"spellCheck\":\n case \"draggable\":\n case \"value\":\n case \"autoReverse\":\n case \"externalResourcesRequired\":\n case \"focusable\":\n case \"preserveAlpha\":\n null != value &&\n \"function\" !== typeof value &&\n \"symbol\" !== typeof value\n ? (checkAttributeStringCoercion(value, key),\n domElement.setAttribute(key, \"\" + value))\n : domElement.removeAttribute(key);\n break;\n case \"inert\":\n \"\" !== value ||\n didWarnForNewBooleanPropsWithEmptyValue[key] ||\n ((didWarnForNewBooleanPropsWithEmptyValue[key] = !0),\n console.error(\n \"Received an empty string for a boolean attribute `%s`. This will treat the attribute as if it were false. Either pass `false` to silence this warning, or pass `true` if you used an empty string in earlier versions of React to indicate this attribute is true.\",\n key\n ));\n case \"allowFullScreen\":\n case \"async\":\n case \"autoPlay\":\n case \"controls\":\n case \"default\":\n case \"defer\":\n case \"disabled\":\n case \"disablePictureInPicture\":\n case \"disableRemotePlayback\":\n case \"formNoValidate\":\n case \"hidden\":\n case \"loop\":\n case \"noModule\":\n case \"noValidate\":\n case \"open\":\n case \"playsInline\":\n case \"readOnly\":\n case \"required\":\n case \"reversed\":\n case \"scoped\":\n case \"seamless\":\n case \"itemScope\":\n value && \"function\" !== typeof value && \"symbol\" !== typeof value\n ? domElement.setAttribute(key, \"\")\n : domElement.removeAttribute(key);\n break;\n case \"capture\":\n case \"download\":\n !0 === value\n ? domElement.setAttribute(key, \"\")\n : !1 !== value &&\n null != value &&\n \"function\" !== typeof value &&\n \"symbol\" !== typeof value\n ? (checkAttributeStringCoercion(value, key),\n domElement.setAttribute(key, value))\n : domElement.removeAttribute(key);\n break;\n case \"cols\":\n case \"rows\":\n case \"size\":\n case \"span\":\n null != value &&\n \"function\" !== typeof value &&\n \"symbol\" !== typeof value &&\n !isNaN(value) &&\n 1 <= value\n ? (checkAttributeStringCoercion(value, key),\n domElement.setAttribute(key, value))\n : domElement.removeAttribute(key);\n break;\n case \"rowSpan\":\n case \"start\":\n null == value ||\n \"function\" === typeof value ||\n \"symbol\" === typeof value ||\n isNaN(value)\n ? domElement.removeAttribute(key)\n : (checkAttributeStringCoercion(value, key),\n domElement.setAttribute(key, value));\n break;\n case \"popover\":\n listenToNonDelegatedEvent(\"beforetoggle\", domElement);\n listenToNonDelegatedEvent(\"toggle\", domElement);\n setValueForAttribute(domElement, \"popover\", value);\n break;\n case \"xlinkActuate\":\n setValueForNamespacedAttribute(\n domElement,\n xlinkNamespace,\n \"xlink:actuate\",\n value\n );\n break;\n case \"xlinkArcrole\":\n setValueForNamespacedAttribute(\n domElement,\n xlinkNamespace,\n \"xlink:arcrole\",\n value\n );\n break;\n case \"xlinkRole\":\n setValueForNamespacedAttribute(\n domElement,\n xlinkNamespace,\n \"xlink:role\",\n value\n );\n break;\n case \"xlinkShow\":\n setValueForNamespacedAttribute(\n domElement,\n xlinkNamespace,\n \"xlink:show\",\n value\n );\n break;\n case \"xlinkTitle\":\n setValueForNamespacedAttribute(\n domElement,\n xlinkNamespace,\n \"xlink:title\",\n value\n );\n break;\n case \"xlinkType\":\n setValueForNamespacedAttribute(\n domElement,\n xlinkNamespace,\n \"xlink:type\",\n value\n );\n break;\n case \"xmlBase\":\n setValueForNamespacedAttribute(\n domElement,\n xmlNamespace,\n \"xml:base\",\n value\n );\n break;\n case \"xmlLang\":\n setValueForNamespacedAttribute(\n domElement,\n xmlNamespace,\n \"xml:lang\",\n value\n );\n break;\n case \"xmlSpace\":\n setValueForNamespacedAttribute(\n domElement,\n xmlNamespace,\n \"xml:space\",\n value\n );\n break;\n case \"is\":\n null != prevValue &&\n console.error(\n 'Cannot update the \"is\" prop after it has been initialized.'\n );\n setValueForAttribute(domElement, \"is\", value);\n break;\n case \"innerText\":\n case \"textContent\":\n break;\n case \"popoverTarget\":\n didWarnPopoverTargetObject ||\n null == value ||\n \"object\" !== typeof value ||\n ((didWarnPopoverTargetObject = !0),\n console.error(\n \"The `popoverTarget` prop expects the ID of an Element as a string. Received %s instead.\",\n value\n ));\n default:\n !(2 < key.length) ||\n (\"o\" !== key[0] && \"O\" !== key[0]) ||\n (\"n\" !== key[1] && \"N\" !== key[1])\n ? ((key = getAttributeAlias(key)),\n setValueForAttribute(domElement, key, value))\n : registrationNameDependencies.hasOwnProperty(key) &&\n null != value &&\n \"function\" !== typeof value &&\n warnForInvalidEventListener(key, value);\n }\n }\n function setPropOnCustomElement(\n domElement,\n tag,\n key,\n value,\n props,\n prevValue\n ) {\n switch (key) {\n case \"style\":\n setValueForStyles(domElement, value, prevValue);\n break;\n case \"dangerouslySetInnerHTML\":\n if (null != value) {\n if (\"object\" !== typeof value || !(\"__html\" in value))\n throw Error(\n \"`props.dangerouslySetInnerHTML` must be in the form `{__html: ...}`. Please visit https://react.dev/link/dangerously-set-inner-html for more information.\"\n );\n key = value.__html;\n if (null != key) {\n if (null != props.children)\n throw Error(\n \"Can only set one of `children` or `props.dangerouslySetInnerHTML`.\"\n );\n domElement.innerHTML = key;\n }\n }\n break;\n case \"children\":\n \"string\" === typeof value\n ? setTextContent(domElement, value)\n : (\"number\" === typeof value || \"bigint\" === typeof value) &&\n setTextContent(domElement, \"\" + value);\n break;\n case \"onScroll\":\n null != value &&\n (\"function\" !== typeof value &&\n warnForInvalidEventListener(key, value),\n listenToNonDelegatedEvent(\"scroll\", domElement));\n break;\n case \"onScrollEnd\":\n null != value &&\n (\"function\" !== typeof value &&\n warnForInvalidEventListener(key, value),\n listenToNonDelegatedEvent(\"scrollend\", domElement));\n break;\n case \"onClick\":\n null != value &&\n (\"function\" !== typeof value &&\n warnForInvalidEventListener(key, value),\n (domElement.onclick = noop$1));\n break;\n case \"suppressContentEditableWarning\":\n case \"suppressHydrationWarning\":\n case \"innerHTML\":\n case \"ref\":\n break;\n case \"innerText\":\n case \"textContent\":\n break;\n default:\n if (registrationNameDependencies.hasOwnProperty(key))\n null != value &&\n \"function\" !== typeof value &&\n warnForInvalidEventListener(key, value);\n else\n a: {\n if (\n \"o\" === key[0] &&\n \"n\" === key[1] &&\n ((props = key.endsWith(\"Capture\")),\n (tag = key.slice(2, props ? key.length - 7 : void 0)),\n (prevValue = domElement[internalPropsKey] || null),\n (prevValue = null != prevValue ? prevValue[key] : null),\n \"function\" === typeof prevValue &&\n domElement.removeEventListener(tag, prevValue, props),\n \"function\" === typeof value)\n ) {\n \"function\" !== typeof prevValue &&\n null !== prevValue &&\n (key in domElement\n ? (domElement[key] = null)\n : domElement.hasAttribute(key) &&\n domElement.removeAttribute(key));\n domElement.addEventListener(tag, value, props);\n break a;\n }\n key in domElement\n ? (domElement[key] = value)\n : !0 === value\n ? domElement.setAttribute(key, \"\")\n : setValueForAttribute(domElement, key, value);\n }\n }\n }\n function setInitialProperties(domElement, tag, props) {\n validatePropertiesInDevelopment(tag, props);\n switch (tag) {\n case \"div\":\n case \"span\":\n case \"svg\":\n case \"path\":\n case \"a\":\n case \"g\":\n case \"p\":\n case \"li\":\n break;\n case \"img\":\n listenToNonDelegatedEvent(\"error\", domElement);\n listenToNonDelegatedEvent(\"load\", domElement);\n var hasSrc = !1,\n hasSrcSet = !1,\n propKey;\n for (propKey in props)\n if (props.hasOwnProperty(propKey)) {\n var propValue = props[propKey];\n if (null != propValue)\n switch (propKey) {\n case \"src\":\n hasSrc = !0;\n break;\n case \"srcSet\":\n hasSrcSet = !0;\n break;\n case \"children\":\n case \"dangerouslySetInnerHTML\":\n throw Error(\n tag +\n \" is a void element tag and must neither have `children` nor use `dangerouslySetInnerHTML`.\"\n );\n default:\n setProp(domElement, tag, propKey, propValue, props, null);\n }\n }\n hasSrcSet &&\n setProp(domElement, tag, \"srcSet\", props.srcSet, props, null);\n hasSrc && setProp(domElement, tag, \"src\", props.src, props, null);\n return;\n case \"input\":\n checkControlledValueProps(\"input\", props);\n listenToNonDelegatedEvent(\"invalid\", domElement);\n var defaultValue = (propKey = propValue = hasSrcSet = null),\n checked = null,\n defaultChecked = null;\n for (hasSrc in props)\n if (props.hasOwnProperty(hasSrc)) {\n var _propValue = props[hasSrc];\n if (null != _propValue)\n switch (hasSrc) {\n case \"name\":\n hasSrcSet = _propValue;\n break;\n case \"type\":\n propValue = _propValue;\n break;\n case \"checked\":\n checked = _propValue;\n break;\n case \"defaultChecked\":\n defaultChecked = _propValue;\n break;\n case \"value\":\n propKey = _propValue;\n break;\n case \"defaultValue\":\n defaultValue = _propValue;\n break;\n case \"children\":\n case \"dangerouslySetInnerHTML\":\n if (null != _propValue)\n throw Error(\n tag +\n \" is a void element tag and must neither have `children` nor use `dangerouslySetInnerHTML`.\"\n );\n break;\n default:\n setProp(domElement, tag, hasSrc, _propValue, props, null);\n }\n }\n validateInputProps(domElement, props);\n initInput(\n domElement,\n propKey,\n defaultValue,\n checked,\n defaultChecked,\n propValue,\n hasSrcSet,\n !1\n );\n track(domElement);\n return;\n case \"select\":\n checkControlledValueProps(\"select\", props);\n listenToNonDelegatedEvent(\"invalid\", domElement);\n hasSrc = propValue = propKey = null;\n for (hasSrcSet in props)\n if (\n props.hasOwnProperty(hasSrcSet) &&\n ((defaultValue = props[hasSrcSet]), null != defaultValue)\n )\n switch (hasSrcSet) {\n case \"value\":\n propKey = defaultValue;\n break;\n case \"defaultValue\":\n propValue = defaultValue;\n break;\n case \"multiple\":\n hasSrc = defaultValue;\n default:\n setProp(\n domElement,\n tag,\n hasSrcSet,\n defaultValue,\n props,\n null\n );\n }\n validateSelectProps(domElement, props);\n tag = propKey;\n props = propValue;\n domElement.multiple = !!hasSrc;\n null != tag\n ? updateOptions(domElement, !!hasSrc, tag, !1)\n : null != props && updateOptions(domElement, !!hasSrc, props, !0);\n return;\n case \"textarea\":\n checkControlledValueProps(\"textarea\", props);\n listenToNonDelegatedEvent(\"invalid\", domElement);\n propKey = hasSrcSet = hasSrc = null;\n for (propValue in props)\n if (\n props.hasOwnProperty(propValue) &&\n ((defaultValue = props[propValue]), null != defaultValue)\n )\n switch (propValue) {\n case \"value\":\n hasSrc = defaultValue;\n break;\n case \"defaultValue\":\n hasSrcSet = defaultValue;\n break;\n case \"children\":\n propKey = defaultValue;\n break;\n case \"dangerouslySetInnerHTML\":\n if (null != defaultValue)\n throw Error(\n \"`dangerouslySetInnerHTML` does not make sense on <textarea>.\"\n );\n break;\n default:\n setProp(\n domElement,\n tag,\n propValue,\n defaultValue,\n props,\n null\n );\n }\n validateTextareaProps(domElement, props);\n initTextarea(domElement, hasSrc, hasSrcSet, propKey);\n track(domElement);\n return;\n case \"option\":\n validateOptionProps(domElement, props);\n for (checked in props)\n if (\n props.hasOwnProperty(checked) &&\n ((hasSrc = props[checked]), null != hasSrc)\n )\n switch (checked) {\n case \"selected\":\n domElement.selected =\n hasSrc &&\n \"function\" !== typeof hasSrc &&\n \"symbol\" !== typeof hasSrc;\n break;\n default:\n setProp(domElement, tag, checked, hasSrc, props, null);\n }\n return;\n case \"dialog\":\n listenToNonDelegatedEvent(\"beforetoggle\", domElement);\n listenToNonDelegatedEvent(\"toggle\", domElement);\n listenToNonDelegatedEvent(\"cancel\", domElement);\n listenToNonDelegatedEvent(\"close\", domElement);\n break;\n case \"iframe\":\n case \"object\":\n listenToNonDelegatedEvent(\"load\", domElement);\n break;\n case \"video\":\n case \"audio\":\n for (hasSrc = 0; hasSrc < mediaEventTypes.length; hasSrc++)\n listenToNonDelegatedEvent(mediaEventTypes[hasSrc], domElement);\n break;\n case \"image\":\n listenToNonDelegatedEvent(\"error\", domElement);\n listenToNonDelegatedEvent(\"load\", domElement);\n break;\n case \"details\":\n listenToNonDelegatedEvent(\"toggle\", domElement);\n break;\n case \"embed\":\n case \"source\":\n case \"link\":\n listenToNonDelegatedEvent(\"error\", domElement),\n listenToNonDelegatedEvent(\"load\", domElement);\n case \"area\":\n case \"base\":\n case \"br\":\n case \"col\":\n case \"hr\":\n case \"keygen\":\n case \"meta\":\n case \"param\":\n case \"track\":\n case \"wbr\":\n case \"menuitem\":\n for (defaultChecked in props)\n if (\n props.hasOwnProperty(defaultChecked) &&\n ((hasSrc = props[defaultChecked]), null != hasSrc)\n )\n switch (defaultChecked) {\n case \"children\":\n case \"dangerouslySetInnerHTML\":\n throw Error(\n tag +\n \" is a void element tag and must neither have `children` nor use `dangerouslySetInnerHTML`.\"\n );\n default:\n setProp(domElement, tag, defaultChecked, hasSrc, props, null);\n }\n return;\n default:\n if (isCustomElement(tag)) {\n for (_propValue in props)\n props.hasOwnProperty(_propValue) &&\n ((hasSrc = props[_propValue]),\n void 0 !== hasSrc &&\n setPropOnCustomElement(\n domElement,\n tag,\n _propValue,\n hasSrc,\n props,\n void 0\n ));\n return;\n }\n }\n for (defaultValue in props)\n props.hasOwnProperty(defaultValue) &&\n ((hasSrc = props[defaultValue]),\n null != hasSrc &&\n setProp(domElement, tag, defaultValue, hasSrc, props, null));\n }\n function updateProperties(domElement, tag, lastProps, nextProps) {\n validatePropertiesInDevelopment(tag, nextProps);\n switch (tag) {\n case \"div\":\n case \"span\":\n case \"svg\":\n case \"path\":\n case \"a\":\n case \"g\":\n case \"p\":\n case \"li\":\n break;\n case \"input\":\n var name = null,\n type = null,\n value = null,\n defaultValue = null,\n lastDefaultValue = null,\n checked = null,\n defaultChecked = null;\n for (propKey in lastProps) {\n var lastProp = lastProps[propKey];\n if (lastProps.hasOwnProperty(propKey) && null != lastProp)\n switch (propKey) {\n case \"checked\":\n break;\n case \"value\":\n break;\n case \"defaultValue\":\n lastDefaultValue = lastProp;\n default:\n nextProps.hasOwnProperty(propKey) ||\n setProp(\n domElement,\n tag,\n propKey,\n null,\n nextProps,\n lastProp\n );\n }\n }\n for (var _propKey8 in nextProps) {\n var propKey = nextProps[_propKey8];\n lastProp = lastProps[_propKey8];\n if (\n nextProps.hasOwnProperty(_propKey8) &&\n (null != propKey || null != lastProp)\n )\n switch (_propKey8) {\n case \"type\":\n type = propKey;\n break;\n case \"name\":\n name = propKey;\n break;\n case \"checked\":\n checked = propKey;\n break;\n case \"defaultChecked\":\n defaultChecked = propKey;\n break;\n case \"value\":\n value = propKey;\n break;\n case \"defaultValue\":\n defaultValue = propKey;\n break;\n case \"children\":\n case \"dangerouslySetInnerHTML\":\n if (null != propKey)\n throw Error(\n tag +\n \" is a void element tag and must neither have `children` nor use `dangerouslySetInnerHTML`.\"\n );\n break;\n default:\n propKey !== lastProp &&\n setProp(\n domElement,\n tag,\n _propKey8,\n propKey,\n nextProps,\n lastProp\n );\n }\n }\n tag =\n \"checkbox\" === lastProps.type || \"radio\" === lastProps.type\n ? null != lastProps.checked\n : null != lastProps.value;\n nextProps =\n \"checkbox\" === nextProps.type || \"radio\" === nextProps.type\n ? null != nextProps.checked\n : null != nextProps.value;\n tag ||\n !nextProps ||\n didWarnUncontrolledToControlled ||\n (console.error(\n \"A component is changing an uncontrolled input to be controlled. This is likely caused by the value changing from undefined to a defined value, which should not happen. Decide between using a controlled or uncontrolled input element for the lifetime of the component. More info: https://react.dev/link/controlled-components\"\n ),\n (didWarnUncontrolledToControlled = !0));\n !tag ||\n nextProps ||\n didWarnControlledToUncontrolled ||\n (console.error(\n \"A component is changing a controlled input to be uncontrolled. This is likely caused by the value changing from a defined to undefined, which should not happen. Decide between using a controlled or uncontrolled input element for the lifetime of the component. More info: https://react.dev/link/controlled-components\"\n ),\n (didWarnControlledToUncontrolled = !0));\n updateInput(\n domElement,\n value,\n defaultValue,\n lastDefaultValue,\n checked,\n defaultChecked,\n type,\n name\n );\n return;\n case \"select\":\n propKey = value = defaultValue = _propKey8 = null;\n for (type in lastProps)\n if (\n ((lastDefaultValue = lastProps[type]),\n lastProps.hasOwnProperty(type) && null != lastDefaultValue)\n )\n switch (type) {\n case \"value\":\n break;\n case \"multiple\":\n propKey = lastDefaultValue;\n default:\n nextProps.hasOwnProperty(type) ||\n setProp(\n domElement,\n tag,\n type,\n null,\n nextProps,\n lastDefaultValue\n );\n }\n for (name in nextProps)\n if (\n ((type = nextProps[name]),\n (lastDefaultValue = lastProps[name]),\n nextProps.hasOwnProperty(name) &&\n (null != type || null != lastDefaultValue))\n )\n switch (name) {\n case \"value\":\n _propKey8 = type;\n break;\n case \"defaultValue\":\n defaultValue = type;\n break;\n case \"multiple\":\n value = type;\n default:\n type !== lastDefaultValue &&\n setProp(\n domElement,\n tag,\n name,\n type,\n nextProps,\n lastDefaultValue\n );\n }\n nextProps = defaultValue;\n tag = value;\n lastProps = propKey;\n null != _propKey8\n ? updateOptions(domElement, !!tag, _propKey8, !1)\n : !!lastProps !== !!tag &&\n (null != nextProps\n ? updateOptions(domElement, !!tag, nextProps, !0)\n : updateOptions(domElement, !!tag, tag ? [] : \"\", !1));\n return;\n case \"textarea\":\n propKey = _propKey8 = null;\n for (defaultValue in lastProps)\n if (\n ((name = lastProps[defaultValue]),\n lastProps.hasOwnProperty(defaultValue) &&\n null != name &&\n !nextProps.hasOwnProperty(defaultValue))\n )\n switch (defaultValue) {\n case \"value\":\n break;\n case \"children\":\n break;\n default:\n setProp(domElement, tag, defaultValue, null, nextProps, name);\n }\n for (value in nextProps)\n if (\n ((name = nextProps[value]),\n (type = lastProps[value]),\n nextProps.hasOwnProperty(value) && (null != name || null != type))\n )\n switch (value) {\n case \"value\":\n _propKey8 = name;\n break;\n case \"defaultValue\":\n propKey = name;\n break;\n case \"children\":\n break;\n case \"dangerouslySetInnerHTML\":\n if (null != name)\n throw Error(\n \"`dangerouslySetInnerHTML` does not make sense on <textarea>.\"\n );\n break;\n default:\n name !== type &&\n setProp(domElement, tag, value, name, nextProps, type);\n }\n updateTextarea(domElement, _propKey8, propKey);\n return;\n case \"option\":\n for (var _propKey13 in lastProps)\n if (\n ((_propKey8 = lastProps[_propKey13]),\n lastProps.hasOwnProperty(_propKey13) &&\n null != _propKey8 &&\n !nextProps.hasOwnProperty(_propKey13))\n )\n switch (_propKey13) {\n case \"selected\":\n domElement.selected = !1;\n break;\n default:\n setProp(\n domElement,\n tag,\n _propKey13,\n null,\n nextProps,\n _propKey8\n );\n }\n for (lastDefaultValue in nextProps)\n if (\n ((_propKey8 = nextProps[lastDefaultValue]),\n (propKey = lastProps[lastDefaultValue]),\n nextProps.hasOwnProperty(lastDefaultValue) &&\n _propKey8 !== propKey &&\n (null != _propKey8 || null != propKey))\n )\n switch (lastDefaultValue) {\n case \"selected\":\n domElement.selected =\n _propKey8 &&\n \"function\" !== typeof _propKey8 &&\n \"symbol\" !== typeof _propKey8;\n break;\n default:\n setProp(\n domElement,\n tag,\n lastDefaultValue,\n _propKey8,\n nextProps,\n propKey\n );\n }\n return;\n case \"img\":\n case \"link\":\n case \"area\":\n case \"base\":\n case \"br\":\n case \"col\":\n case \"embed\":\n case \"hr\":\n case \"keygen\":\n case \"meta\":\n case \"param\":\n case \"source\":\n case \"track\":\n case \"wbr\":\n case \"menuitem\":\n for (var _propKey15 in lastProps)\n (_propKey8 = lastProps[_propKey15]),\n lastProps.hasOwnProperty(_propKey15) &&\n null != _propKey8 &&\n !nextProps.hasOwnProperty(_propKey15) &&\n setProp(\n domElement,\n tag,\n _propKey15,\n null,\n nextProps,\n _propKey8\n );\n for (checked in nextProps)\n if (\n ((_propKey8 = nextProps[checked]),\n (propKey = lastProps[checked]),\n nextProps.hasOwnProperty(checked) &&\n _propKey8 !== propKey &&\n (null != _propKey8 || null != propKey))\n )\n switch (checked) {\n case \"children\":\n case \"dangerouslySetInnerHTML\":\n if (null != _propKey8)\n throw Error(\n tag +\n \" is a void element tag and must neither have `children` nor use `dangerouslySetInnerHTML`.\"\n );\n break;\n default:\n setProp(\n domElement,\n tag,\n checked,\n _propKey8,\n nextProps,\n propKey\n );\n }\n return;\n default:\n if (isCustomElement(tag)) {\n for (var _propKey17 in lastProps)\n (_propKey8 = lastProps[_propKey17]),\n lastProps.hasOwnProperty(_propKey17) &&\n void 0 !== _propKey8 &&\n !nextProps.hasOwnProperty(_propKey17) &&\n setPropOnCustomElement(\n domElement,\n tag,\n _propKey17,\n void 0,\n nextProps,\n _propKey8\n );\n for (defaultChecked in nextProps)\n (_propKey8 = nextProps[defaultChecked]),\n (propKey = lastProps[defaultChecked]),\n !nextProps.hasOwnProperty(defaultChecked) ||\n _propKey8 === propKey ||\n (void 0 === _propKey8 && void 0 === propKey) ||\n setPropOnCustomElement(\n domElement,\n tag,\n defaultChecked,\n _propKey8,\n nextProps,\n propKey\n );\n return;\n }\n }\n for (var _propKey19 in lastProps)\n (_propKey8 = lastProps[_propKey19]),\n lastProps.hasOwnProperty(_propKey19) &&\n null != _propKey8 &&\n !nextProps.hasOwnProperty(_propKey19) &&\n setProp(domElement, tag, _propKey19, null, nextProps, _propKey8);\n for (lastProp in nextProps)\n (_propKey8 = nextProps[lastProp]),\n (propKey = lastProps[lastProp]),\n !nextProps.hasOwnProperty(lastProp) ||\n _propKey8 === propKey ||\n (null == _propKey8 && null == propKey) ||\n setProp(domElement, tag, lastProp, _propKey8, nextProps, propKey);\n }\n function getPropNameFromAttributeName(attrName) {\n switch (attrName) {\n case \"class\":\n return \"className\";\n case \"for\":\n return \"htmlFor\";\n default:\n return attrName;\n }\n }\n function getStylesObjectFromElement(domElement) {\n var serverValueInObjectForm = {};\n domElement = domElement.style;\n for (var i = 0; i < domElement.length; i++) {\n var styleName = domElement[i];\n serverValueInObjectForm[styleName] =\n domElement.getPropertyValue(styleName);\n }\n return serverValueInObjectForm;\n }\n function diffHydratedStyles(domElement, value$jscomp$0, serverDifferences) {\n if (null != value$jscomp$0 && \"object\" !== typeof value$jscomp$0)\n console.error(\n \"The `style` prop expects a mapping from style properties to values, not a string. For example, style={{marginRight: spacing + 'em'}} when using JSX.\"\n );\n else {\n var clientValue;\n var delimiter = (clientValue = \"\"),\n styleName;\n for (styleName in value$jscomp$0)\n if (value$jscomp$0.hasOwnProperty(styleName)) {\n var value = value$jscomp$0[styleName];\n null != value &&\n \"boolean\" !== typeof value &&\n \"\" !== value &&\n (0 === styleName.indexOf(\"--\")\n ? (checkCSSPropertyStringCoercion(value, styleName),\n (clientValue +=\n delimiter + styleName + \":\" + (\"\" + value).trim()))\n : \"number\" !== typeof value ||\n 0 === value ||\n unitlessNumbers.has(styleName)\n ? (checkCSSPropertyStringCoercion(value, styleName),\n (clientValue +=\n delimiter +\n styleName\n .replace(uppercasePattern, \"-$1\")\n .toLowerCase()\n .replace(msPattern$1, \"-ms-\") +\n \":\" +\n (\"\" + value).trim()))\n : (clientValue +=\n delimiter +\n styleName\n .replace(uppercasePattern, \"-$1\")\n .toLowerCase()\n .replace(msPattern$1, \"-ms-\") +\n \":\" +\n value +\n \"px\"),\n (delimiter = \";\"));\n }\n clientValue = clientValue || null;\n value$jscomp$0 = domElement.getAttribute(\"style\");\n value$jscomp$0 !== clientValue &&\n ((clientValue = normalizeMarkupForTextOrAttribute(clientValue)),\n normalizeMarkupForTextOrAttribute(value$jscomp$0) !== clientValue &&\n (serverDifferences.style = getStylesObjectFromElement(domElement)));\n }\n }\n function hydrateAttribute(\n domElement,\n propKey,\n attributeName,\n value,\n extraAttributes,\n serverDifferences\n ) {\n extraAttributes.delete(attributeName);\n domElement = domElement.getAttribute(attributeName);\n if (null === domElement)\n switch (typeof value) {\n case \"undefined\":\n case \"function\":\n case \"symbol\":\n case \"boolean\":\n return;\n }\n else if (null != value)\n switch (typeof value) {\n case \"function\":\n case \"symbol\":\n case \"boolean\":\n break;\n default:\n if (\n (checkAttributeStringCoercion(value, propKey),\n domElement === \"\" + value)\n )\n return;\n }\n warnForPropDifference(propKey, domElement, value, serverDifferences);\n }\n function hydrateBooleanAttribute(\n domElement,\n propKey,\n attributeName,\n value,\n extraAttributes,\n serverDifferences\n ) {\n extraAttributes.delete(attributeName);\n domElement = domElement.getAttribute(attributeName);\n if (null === domElement) {\n switch (typeof value) {\n case \"function\":\n case \"symbol\":\n return;\n }\n if (!value) return;\n } else\n switch (typeof value) {\n case \"function\":\n case \"symbol\":\n break;\n default:\n if (value) return;\n }\n warnForPropDifference(propKey, domElement, value, serverDifferences);\n }\n function hydrateBooleanishAttribute(\n domElement,\n propKey,\n attributeName,\n value,\n extraAttributes,\n serverDifferences\n ) {\n extraAttributes.delete(attributeName);\n domElement = domElement.getAttribute(attributeName);\n if (null === domElement)\n switch (typeof value) {\n case \"undefined\":\n case \"function\":\n case \"symbol\":\n return;\n }\n else if (null != value)\n switch (typeof value) {\n case \"function\":\n case \"symbol\":\n break;\n default:\n if (\n (checkAttributeStringCoercion(value, attributeName),\n domElement === \"\" + value)\n )\n return;\n }\n warnForPropDifference(propKey, domElement, value, serverDifferences);\n }\n function hydrateNumericAttribute(\n domElement,\n propKey,\n attributeName,\n value,\n extraAttributes,\n serverDifferences\n ) {\n extraAttributes.delete(attributeName);\n domElement = domElement.getAttribute(attributeName);\n if (null === domElement)\n switch (typeof value) {\n case \"undefined\":\n case \"function\":\n case \"symbol\":\n case \"boolean\":\n return;\n default:\n if (isNaN(value)) return;\n }\n else if (null != value)\n switch (typeof value) {\n case \"function\":\n case \"symbol\":\n case \"boolean\":\n break;\n default:\n if (\n !isNaN(value) &&\n (checkAttributeStringCoercion(value, propKey),\n domElement === \"\" + value)\n )\n return;\n }\n warnForPropDifference(propKey, domElement, value, serverDifferences);\n }\n function hydrateSanitizedAttribute(\n domElement,\n propKey,\n attributeName,\n value,\n extraAttributes,\n serverDifferences\n ) {\n extraAttributes.delete(attributeName);\n domElement = domElement.getAttribute(attributeName);\n if (null === domElement)\n switch (typeof value) {\n case \"undefined\":\n case \"function\":\n case \"symbol\":\n case \"boolean\":\n return;\n }\n else if (null != value)\n switch (typeof value) {\n case \"function\":\n case \"symbol\":\n case \"boolean\":\n break;\n default:\n if (\n (checkAttributeStringCoercion(value, propKey),\n (attributeName = sanitizeURL(\"\" + value)),\n domElement === attributeName)\n )\n return;\n }\n warnForPropDifference(propKey, domElement, value, serverDifferences);\n }\n function diffHydratedProperties(domElement, tag, props, hostContext) {\n for (\n var serverDifferences = {},\n extraAttributes = new Set(),\n attributes = domElement.attributes,\n i = 0;\n i < attributes.length;\n i++\n )\n switch (attributes[i].name.toLowerCase()) {\n case \"value\":\n break;\n case \"checked\":\n break;\n case \"selected\":\n break;\n default:\n extraAttributes.add(attributes[i].name);\n }\n if (isCustomElement(tag))\n for (var propKey in props) {\n if (props.hasOwnProperty(propKey)) {\n var value = props[propKey];\n if (null != value)\n if (registrationNameDependencies.hasOwnProperty(propKey))\n \"function\" !== typeof value &&\n warnForInvalidEventListener(propKey, value);\n else if (!0 !== props.suppressHydrationWarning)\n switch (propKey) {\n case \"children\":\n (\"string\" !== typeof value && \"number\" !== typeof value) ||\n warnForPropDifference(\n \"children\",\n domElement.textContent,\n value,\n serverDifferences\n );\n continue;\n case \"suppressContentEditableWarning\":\n case \"suppressHydrationWarning\":\n case \"defaultValue\":\n case \"defaultChecked\":\n case \"innerHTML\":\n case \"ref\":\n continue;\n case \"dangerouslySetInnerHTML\":\n attributes = domElement.innerHTML;\n value = value ? value.__html : void 0;\n null != value &&\n ((value = normalizeHTML(domElement, value)),\n warnForPropDifference(\n propKey,\n attributes,\n value,\n serverDifferences\n ));\n continue;\n case \"style\":\n extraAttributes.delete(propKey);\n diffHydratedStyles(domElement, value, serverDifferences);\n continue;\n case \"offsetParent\":\n case \"offsetTop\":\n case \"offsetLeft\":\n case \"offsetWidth\":\n case \"offsetHeight\":\n case \"isContentEditable\":\n case \"outerText\":\n case \"outerHTML\":\n extraAttributes.delete(propKey.toLowerCase());\n console.error(\n \"Assignment to read-only property will result in a no-op: `%s`\",\n propKey\n );\n continue;\n case \"className\":\n extraAttributes.delete(\"class\");\n attributes = getValueForAttributeOnCustomComponent(\n domElement,\n \"class\",\n value\n );\n warnForPropDifference(\n \"className\",\n attributes,\n value,\n serverDifferences\n );\n continue;\n default:\n hostContext.context === HostContextNamespaceNone &&\n \"svg\" !== tag &&\n \"math\" !== tag\n ? extraAttributes.delete(propKey.toLowerCase())\n : extraAttributes.delete(propKey),\n (attributes = getValueForAttributeOnCustomComponent(\n domElement,\n propKey,\n value\n )),\n warnForPropDifference(\n propKey,\n attributes,\n value,\n serverDifferences\n );\n }\n }\n }\n else\n for (value in props)\n if (\n props.hasOwnProperty(value) &&\n ((propKey = props[value]), null != propKey)\n )\n if (registrationNameDependencies.hasOwnProperty(value))\n \"function\" !== typeof propKey &&\n warnForInvalidEventListener(value, propKey);\n else if (!0 !== props.suppressHydrationWarning)\n switch (value) {\n case \"children\":\n (\"string\" !== typeof propKey &&\n \"number\" !== typeof propKey) ||\n warnForPropDifference(\n \"children\",\n domElement.textContent,\n propKey,\n serverDifferences\n );\n continue;\n case \"suppressContentEditableWarning\":\n case \"suppressHydrationWarning\":\n case \"value\":\n case \"checked\":\n case \"selected\":\n case \"defaultValue\":\n case \"defaultChecked\":\n case \"innerHTML\":\n case \"ref\":\n continue;\n case \"dangerouslySetInnerHTML\":\n attributes = domElement.innerHTML;\n propKey = propKey ? propKey.__html : void 0;\n null != propKey &&\n ((propKey = normalizeHTML(domElement, propKey)),\n attributes !== propKey &&\n (serverDifferences[value] = { __html: attributes }));\n continue;\n case \"className\":\n hydrateAttribute(\n domElement,\n value,\n \"class\",\n propKey,\n extraAttributes,\n serverDifferences\n );\n continue;\n case \"tabIndex\":\n hydrateAttribute(\n domElement,\n value,\n \"tabindex\",\n propKey,\n extraAttributes,\n serverDifferences\n );\n continue;\n case \"style\":\n extraAttributes.delete(value);\n diffHydratedStyles(domElement, propKey, serverDifferences);\n continue;\n case \"multiple\":\n extraAttributes.delete(value);\n warnForPropDifference(\n value,\n domElement.multiple,\n propKey,\n serverDifferences\n );\n continue;\n case \"muted\":\n extraAttributes.delete(value);\n warnForPropDifference(\n value,\n domElement.muted,\n propKey,\n serverDifferences\n );\n continue;\n case \"autoFocus\":\n extraAttributes.delete(\"autofocus\");\n warnForPropDifference(\n value,\n domElement.autofocus,\n propKey,\n serverDifferences\n );\n continue;\n case \"data\":\n if (\"object\" !== tag) {\n extraAttributes.delete(value);\n attributes = domElement.getAttribute(\"data\");\n warnForPropDifference(\n value,\n attributes,\n propKey,\n serverDifferences\n );\n continue;\n }\n case \"src\":\n case \"href\":\n if (\n !(\n \"\" !== propKey ||\n (\"a\" === tag && \"href\" === value) ||\n (\"object\" === tag && \"data\" === value)\n )\n ) {\n \"src\" === value\n ? console.error(\n 'An empty string (\"\") was passed to the %s attribute. This may cause the browser to download the whole page again over the network. To fix this, either do not render the element at all or pass null to %s instead of an empty string.',\n value,\n value\n )\n : console.error(\n 'An empty string (\"\") was passed to the %s attribute. To fix this, either do not render the element at all or pass null to %s instead of an empty string.',\n value,\n value\n );\n continue;\n }\n hydrateSanitizedAttribute(\n domElement,\n value,\n value,\n propKey,\n extraAttributes,\n serverDifferences\n );\n continue;\n case \"action\":\n case \"formAction\":\n attributes = domElement.getAttribute(value);\n if (\"function\" === typeof propKey) {\n extraAttributes.delete(value.toLowerCase());\n \"formAction\" === value\n ? (extraAttributes.delete(\"name\"),\n extraAttributes.delete(\"formenctype\"),\n extraAttributes.delete(\"formmethod\"),\n extraAttributes.delete(\"formtarget\"))\n : (extraAttributes.delete(\"enctype\"),\n extraAttributes.delete(\"method\"),\n extraAttributes.delete(\"target\"));\n continue;\n } else if (attributes === EXPECTED_FORM_ACTION_URL) {\n extraAttributes.delete(value.toLowerCase());\n warnForPropDifference(\n value,\n \"function\",\n propKey,\n serverDifferences\n );\n continue;\n }\n hydrateSanitizedAttribute(\n domElement,\n value,\n value.toLowerCase(),\n propKey,\n extraAttributes,\n serverDifferences\n );\n continue;\n case \"xlinkHref\":\n hydrateSanitizedAttribute(\n domElement,\n value,\n \"xlink:href\",\n propKey,\n extraAttributes,\n serverDifferences\n );\n continue;\n case \"contentEditable\":\n hydrateBooleanishAttribute(\n domElement,\n value,\n \"contenteditable\",\n propKey,\n extraAttributes,\n serverDifferences\n );\n continue;\n case \"spellCheck\":\n hydrateBooleanishAttribute(\n domElement,\n value,\n \"spellcheck\",\n propKey,\n extraAttributes,\n serverDifferences\n );\n continue;\n case \"draggable\":\n case \"autoReverse\":\n case \"externalResourcesRequired\":\n case \"focusable\":\n case \"preserveAlpha\":\n hydrateBooleanishAttribute(\n domElement,\n value,\n value,\n propKey,\n extraAttributes,\n serverDifferences\n );\n continue;\n case \"allowFullScreen\":\n case \"async\":\n case \"autoPlay\":\n case \"controls\":\n case \"default\":\n case \"defer\":\n case \"disabled\":\n case \"disablePictureInPicture\":\n case \"disableRemotePlayback\":\n case \"formNoValidate\":\n case \"hidden\":\n case \"loop\":\n case \"noModule\":\n case \"noValidate\":\n case \"open\":\n case \"playsInline\":\n case \"readOnly\":\n case \"required\":\n case \"reversed\":\n case \"scoped\":\n case \"seamless\":\n case \"itemScope\":\n hydrateBooleanAttribute(\n domElement,\n value,\n value.toLowerCase(),\n propKey,\n extraAttributes,\n serverDifferences\n );\n continue;\n case \"capture\":\n case \"download\":\n a: {\n i = domElement;\n var attributeName = (attributes = value),\n serverDifferences$jscomp$0 = serverDifferences;\n extraAttributes.delete(attributeName);\n i = i.getAttribute(attributeName);\n if (null === i)\n switch (typeof propKey) {\n case \"undefined\":\n case \"function\":\n case \"symbol\":\n break a;\n default:\n if (!1 === propKey) break a;\n }\n else if (null != propKey)\n switch (typeof propKey) {\n case \"function\":\n case \"symbol\":\n break;\n case \"boolean\":\n if (!0 === propKey && \"\" === i) break a;\n break;\n default:\n if (\n (checkAttributeStringCoercion(propKey, attributes),\n i === \"\" + propKey)\n )\n break a;\n }\n warnForPropDifference(\n attributes,\n i,\n propKey,\n serverDifferences$jscomp$0\n );\n }\n continue;\n case \"cols\":\n case \"rows\":\n case \"size\":\n case \"span\":\n a: {\n i = domElement;\n attributeName = attributes = value;\n serverDifferences$jscomp$0 = serverDifferences;\n extraAttributes.delete(attributeName);\n i = i.getAttribute(attributeName);\n if (null === i)\n switch (typeof propKey) {\n case \"undefined\":\n case \"function\":\n case \"symbol\":\n case \"boolean\":\n break a;\n default:\n if (isNaN(propKey) || 1 > propKey) break a;\n }\n else if (null != propKey)\n switch (typeof propKey) {\n case \"function\":\n case \"symbol\":\n case \"boolean\":\n break;\n default:\n if (\n !(isNaN(propKey) || 1 > propKey) &&\n (checkAttributeStringCoercion(propKey, attributes),\n i === \"\" + propKey)\n )\n break a;\n }\n warnForPropDifference(\n attributes,\n i,\n propKey,\n serverDifferences$jscomp$0\n );\n }\n continue;\n case \"rowSpan\":\n hydrateNumericAttribute(\n domElement,\n value,\n \"rowspan\",\n propKey,\n extraAttributes,\n serverDifferences\n );\n continue;\n case \"start\":\n hydrateNumericAttribute(\n domElement,\n value,\n value,\n propKey,\n extraAttributes,\n serverDifferences\n );\n continue;\n case \"xHeight\":\n hydrateAttribute(\n domElement,\n value,\n \"x-height\",\n propKey,\n extraAttributes,\n serverDifferences\n );\n continue;\n case \"xlinkActuate\":\n hydrateAttribute(\n domElement,\n value,\n \"xlink:actuate\",\n propKey,\n extraAttributes,\n serverDifferences\n );\n continue;\n case \"xlinkArcrole\":\n hydrateAttribute(\n domElement,\n value,\n \"xlink:arcrole\",\n propKey,\n extraAttributes,\n serverDifferences\n );\n continue;\n case \"xlinkRole\":\n hydrateAttribute(\n domElement,\n value,\n \"xlink:role\",\n propKey,\n extraAttributes,\n serverDifferences\n );\n continue;\n case \"xlinkShow\":\n hydrateAttribute(\n domElement,\n value,\n \"xlink:show\",\n propKey,\n extraAttributes,\n serverDifferences\n );\n continue;\n case \"xlinkTitle\":\n hydrateAttribute(\n domElement,\n value,\n \"xlink:title\",\n propKey,\n extraAttributes,\n serverDifferences\n );\n continue;\n case \"xlinkType\":\n hydrateAttribute(\n domElement,\n value,\n \"xlink:type\",\n propKey,\n extraAttributes,\n serverDifferences\n );\n continue;\n case \"xmlBase\":\n hydrateAttribute(\n domElement,\n value,\n \"xml:base\",\n propKey,\n extraAttributes,\n serverDifferences\n );\n continue;\n case \"xmlLang\":\n hydrateAttribute(\n domElement,\n value,\n \"xml:lang\",\n propKey,\n extraAttributes,\n serverDifferences\n );\n continue;\n case \"xmlSpace\":\n hydrateAttribute(\n domElement,\n value,\n \"xml:space\",\n propKey,\n extraAttributes,\n serverDifferences\n );\n continue;\n case \"inert\":\n \"\" !== propKey ||\n didWarnForNewBooleanPropsWithEmptyValue[value] ||\n ((didWarnForNewBooleanPropsWithEmptyValue[value] = !0),\n console.error(\n \"Received an empty string for a boolean attribute `%s`. This will treat the attribute as if it were false. Either pass `false` to silence this warning, or pass `true` if you used an empty string in earlier versions of React to indicate this attribute is true.\",\n value\n ));\n hydrateBooleanAttribute(\n domElement,\n value,\n value,\n propKey,\n extraAttributes,\n serverDifferences\n );\n continue;\n default:\n if (\n !(2 < value.length) ||\n (\"o\" !== value[0] && \"O\" !== value[0]) ||\n (\"n\" !== value[1] && \"N\" !== value[1])\n ) {\n i = getAttributeAlias(value);\n attributes = !1;\n hostContext.context === HostContextNamespaceNone &&\n \"svg\" !== tag &&\n \"math\" !== tag\n ? extraAttributes.delete(i.toLowerCase())\n : ((attributeName = value.toLowerCase()),\n (attributeName = possibleStandardNames.hasOwnProperty(\n attributeName\n )\n ? possibleStandardNames[attributeName] || null\n : null),\n null !== attributeName &&\n attributeName !== value &&\n ((attributes = !0),\n extraAttributes.delete(attributeName)),\n extraAttributes.delete(i));\n a: if (\n ((attributeName = domElement),\n (serverDifferences$jscomp$0 = i),\n (i = propKey),\n isAttributeNameSafe(serverDifferences$jscomp$0))\n )\n if (\n attributeName.hasAttribute(serverDifferences$jscomp$0)\n )\n (attributeName = attributeName.getAttribute(\n serverDifferences$jscomp$0\n )),\n checkAttributeStringCoercion(\n i,\n serverDifferences$jscomp$0\n ),\n (i = attributeName === \"\" + i ? i : attributeName);\n else {\n switch (typeof i) {\n case \"function\":\n case \"symbol\":\n break a;\n case \"boolean\":\n if (\n ((attributeName = serverDifferences$jscomp$0\n .toLowerCase()\n .slice(0, 5)),\n \"data-\" !== attributeName &&\n \"aria-\" !== attributeName)\n )\n break a;\n }\n i = void 0 === i ? void 0 : null;\n }\n else i = void 0;\n attributes ||\n warnForPropDifference(\n value,\n i,\n propKey,\n serverDifferences\n );\n }\n }\n 0 < extraAttributes.size &&\n !0 !== props.suppressHydrationWarning &&\n warnForExtraAttributes(domElement, extraAttributes, serverDifferences);\n return 0 === Object.keys(serverDifferences).length\n ? null\n : serverDifferences;\n }\n function propNamesListJoin(list, combinator) {\n switch (list.length) {\n case 0:\n return \"\";\n case 1:\n return list[0];\n case 2:\n return list[0] + \" \" + combinator + \" \" + list[1];\n default:\n return (\n list.slice(0, -1).join(\", \") +\n \", \" +\n combinator +\n \" \" +\n list[list.length - 1]\n );\n }\n }\n function getOwnerDocumentFromRootContainer(rootContainerElement) {\n return 9 === rootContainerElement.nodeType\n ? rootContainerElement\n : rootContainerElement.ownerDocument;\n }\n function getOwnHostContext(namespaceURI) {\n switch (namespaceURI) {\n case SVG_NAMESPACE:\n return HostContextNamespaceSvg;\n case MATH_NAMESPACE:\n return HostContextNamespaceMath;\n default:\n return HostContextNamespaceNone;\n }\n }\n function getChildHostContextProd(parentNamespace, type) {\n if (parentNamespace === HostContextNamespaceNone)\n switch (type) {\n case \"svg\":\n return HostContextNamespaceSvg;\n case \"math\":\n return HostContextNamespaceMath;\n default:\n return HostContextNamespaceNone;\n }\n return parentNamespace === HostContextNamespaceSvg &&\n \"foreignObject\" === type\n ? HostContextNamespaceNone\n : parentNamespace;\n }\n function shouldSetTextContent(type, props) {\n return (\n \"textarea\" === type ||\n \"noscript\" === type ||\n \"string\" === typeof props.children ||\n \"number\" === typeof props.children ||\n \"bigint\" === typeof props.children ||\n (\"object\" === typeof props.dangerouslySetInnerHTML &&\n null !== props.dangerouslySetInnerHTML &&\n null != props.dangerouslySetInnerHTML.__html)\n );\n }\n function shouldAttemptEagerTransition() {\n var event = window.event;\n if (event && \"popstate\" === event.type) {\n if (event === currentPopstateTransitionEvent) return !1;\n currentPopstateTransitionEvent = event;\n return !0;\n }\n currentPopstateTransitionEvent = null;\n return !1;\n }\n function handleErrorInNextTick(error) {\n setTimeout(function () {\n throw error;\n });\n }\n function commitMount(domElement, type, newProps) {\n switch (type) {\n case \"button\":\n case \"input\":\n case \"select\":\n case \"textarea\":\n newProps.autoFocus && domElement.focus();\n break;\n case \"img\":\n newProps.src\n ? (domElement.src = newProps.src)\n : newProps.srcSet && (domElement.srcset = newProps.srcSet);\n }\n }\n function commitUpdate(domElement, type, oldProps, newProps) {\n updateProperties(domElement, type, oldProps, newProps);\n domElement[internalPropsKey] = newProps;\n }\n function resetTextContent(domElement) {\n setTextContent(domElement, \"\");\n }\n function commitTextUpdate(textInstance, oldText, newText) {\n textInstance.nodeValue = newText;\n }\n function isSingletonScope(type) {\n return \"head\" === type;\n }\n function removeChild(parentInstance, child) {\n parentInstance.removeChild(child);\n }\n function removeChildFromContainer(container, child) {\n (9 === container.nodeType\n ? container.body\n : \"HTML\" === container.nodeName\n ? container.ownerDocument.body\n : container\n ).removeChild(child);\n }\n function clearSuspenseBoundary(parentInstance, suspenseInstance) {\n var node = suspenseInstance,\n possiblePreambleContribution = 0,\n depth = 0;\n do {\n var nextNode = node.nextSibling;\n parentInstance.removeChild(node);\n if (nextNode && 8 === nextNode.nodeType)\n if (((node = nextNode.data), node === SUSPENSE_END_DATA)) {\n if (\n 0 < possiblePreambleContribution &&\n 8 > possiblePreambleContribution\n ) {\n node = possiblePreambleContribution;\n var ownerDocument = parentInstance.ownerDocument;\n node & PREAMBLE_CONTRIBUTION_HTML &&\n releaseSingletonInstance(ownerDocument.documentElement);\n node & PREAMBLE_CONTRIBUTION_BODY &&\n releaseSingletonInstance(ownerDocument.body);\n if (node & PREAMBLE_CONTRIBUTION_HEAD)\n for (\n node = ownerDocument.head,\n releaseSingletonInstance(node),\n ownerDocument = node.firstChild;\n ownerDocument;\n\n ) {\n var nextNode$jscomp$0 = ownerDocument.nextSibling,\n nodeName = ownerDocument.nodeName;\n ownerDocument[internalHoistableMarker] ||\n \"SCRIPT\" === nodeName ||\n \"STYLE\" === nodeName ||\n (\"LINK\" === nodeName &&\n \"stylesheet\" === ownerDocument.rel.toLowerCase()) ||\n node.removeChild(ownerDocument);\n ownerDocument = nextNode$jscomp$0;\n }\n }\n if (0 === depth) {\n parentInstance.removeChild(nextNode);\n retryIfBlockedOn(suspenseInstance);\n return;\n }\n depth--;\n } else\n node === SUSPENSE_START_DATA ||\n node === SUSPENSE_PENDING_START_DATA ||\n node === SUSPENSE_FALLBACK_START_DATA\n ? depth++\n : (possiblePreambleContribution = node.charCodeAt(0) - 48);\n else possiblePreambleContribution = 0;\n node = nextNode;\n } while (node);\n retryIfBlockedOn(suspenseInstance);\n }\n function hideInstance(instance) {\n instance = instance.style;\n \"function\" === typeof instance.setProperty\n ? instance.setProperty(\"display\", \"none\", \"important\")\n : (instance.display = \"none\");\n }\n function hideTextInstance(textInstance) {\n textInstance.nodeValue = \"\";\n }\n function unhideInstance(instance, props) {\n props = props[STYLE];\n props =\n void 0 !== props && null !== props && props.hasOwnProperty(\"display\")\n ? props.display\n : null;\n instance.style.display =\n null == props || \"boolean\" === typeof props ? \"\" : (\"\" + props).trim();\n }\n function unhideTextInstance(textInstance, text) {\n textInstance.nodeValue = text;\n }\n function clearContainerSparingly(container) {\n var nextNode = container.firstChild;\n nextNode && 10 === nextNode.nodeType && (nextNode = nextNode.nextSibling);\n for (; nextNode; ) {\n var node = nextNode;\n nextNode = nextNode.nextSibling;\n switch (node.nodeName) {\n case \"HTML\":\n case \"HEAD\":\n case \"BODY\":\n clearContainerSparingly(node);\n detachDeletedInstance(node);\n continue;\n case \"SCRIPT\":\n case \"STYLE\":\n continue;\n case \"LINK\":\n if (\"stylesheet\" === node.rel.toLowerCase()) continue;\n }\n container.removeChild(node);\n }\n }\n function canHydrateInstance(instance, type, props, inRootOrSingleton) {\n for (; 1 === instance.nodeType; ) {\n var anyProps = props;\n if (instance.nodeName.toLowerCase() !== type.toLowerCase()) {\n if (\n !inRootOrSingleton &&\n (\"INPUT\" !== instance.nodeName || \"hidden\" !== instance.type)\n )\n break;\n } else if (!inRootOrSingleton)\n if (\"input\" === type && \"hidden\" === instance.type) {\n checkAttributeStringCoercion(anyProps.name, \"name\");\n var name = null == anyProps.name ? null : \"\" + anyProps.name;\n if (\n \"hidden\" === anyProps.type &&\n instance.getAttribute(\"name\") === name\n )\n return instance;\n } else return instance;\n else if (!instance[internalHoistableMarker])\n switch (type) {\n case \"meta\":\n if (!instance.hasAttribute(\"itemprop\")) break;\n return instance;\n case \"link\":\n name = instance.getAttribute(\"rel\");\n if (\n \"stylesheet\" === name &&\n instance.hasAttribute(\"data-precedence\")\n )\n break;\n else if (\n name !== anyProps.rel ||\n instance.getAttribute(\"href\") !==\n (null == anyProps.href || \"\" === anyProps.href\n ? null\n : anyProps.href) ||\n instance.getAttribute(\"crossorigin\") !==\n (null == anyProps.crossOrigin\n ? null\n : anyProps.crossOrigin) ||\n instance.getAttribute(\"title\") !==\n (null == anyProps.title ? null : anyProps.title)\n )\n break;\n return instance;\n case \"style\":\n if (instance.hasAttribute(\"data-precedence\")) break;\n return instance;\n case \"script\":\n name = instance.getAttribute(\"src\");\n if (\n (name !== (null == anyProps.src ? null : anyProps.src) ||\n instance.getAttribute(\"type\") !==\n (null == anyProps.type ? null : anyProps.type) ||\n instance.getAttribute(\"crossorigin\") !==\n (null == anyProps.crossOrigin\n ? null\n : anyProps.crossOrigin)) &&\n name &&\n instance.hasAttribute(\"async\") &&\n !instance.hasAttribute(\"itemprop\")\n )\n break;\n return instance;\n default:\n return instance;\n }\n instance = getNextHydratable(instance.nextSibling);\n if (null === instance) break;\n }\n return null;\n }\n function canHydrateTextInstance(instance, text, inRootOrSingleton) {\n if (\"\" === text) return null;\n for (; 3 !== instance.nodeType; ) {\n if (\n (1 !== instance.nodeType ||\n \"INPUT\" !== instance.nodeName ||\n \"hidden\" !== instance.type) &&\n !inRootOrSingleton\n )\n return null;\n instance = getNextHydratable(instance.nextSibling);\n if (null === instance) return null;\n }\n return instance;\n }\n function isSuspenseInstanceFallback(instance) {\n return (\n instance.data === SUSPENSE_FALLBACK_START_DATA ||\n (instance.data === SUSPENSE_PENDING_START_DATA &&\n instance.ownerDocument.readyState === DOCUMENT_READY_STATE_COMPLETE)\n );\n }\n function registerSuspenseInstanceRetry(instance, callback) {\n var ownerDocument = instance.ownerDocument;\n if (\n instance.data !== SUSPENSE_PENDING_START_DATA ||\n ownerDocument.readyState === DOCUMENT_READY_STATE_COMPLETE\n )\n callback();\n else {\n var listener = function () {\n callback();\n ownerDocument.removeEventListener(\"DOMContentLoaded\", listener);\n };\n ownerDocument.addEventListener(\"DOMContentLoaded\", listener);\n instance._reactRetry = listener;\n }\n }\n function getNextHydratable(node) {\n for (; null != node; node = node.nextSibling) {\n var nodeType = node.nodeType;\n if (1 === nodeType || 3 === nodeType) break;\n if (8 === nodeType) {\n nodeType = node.data;\n if (\n nodeType === SUSPENSE_START_DATA ||\n nodeType === SUSPENSE_FALLBACK_START_DATA ||\n nodeType === SUSPENSE_PENDING_START_DATA ||\n nodeType === FORM_STATE_IS_MATCHING ||\n nodeType === FORM_STATE_IS_NOT_MATCHING\n )\n break;\n if (nodeType === SUSPENSE_END_DATA) return null;\n }\n }\n return node;\n }\n function describeHydratableInstanceForDevWarnings(instance) {\n if (1 === instance.nodeType) {\n for (\n var JSCompiler_temp_const = instance.nodeName.toLowerCase(),\n serverDifferences = {},\n attributes = instance.attributes,\n i = 0;\n i < attributes.length;\n i++\n ) {\n var attr = attributes[i];\n serverDifferences[getPropNameFromAttributeName(attr.name)] =\n \"style\" === attr.name.toLowerCase()\n ? getStylesObjectFromElement(instance)\n : attr.value;\n }\n return { type: JSCompiler_temp_const, props: serverDifferences };\n }\n return 8 === instance.nodeType\n ? { type: \"Suspense\", props: {} }\n : instance.nodeValue;\n }\n function diffHydratedTextForDevWarnings(textInstance, text, parentProps) {\n return null === parentProps ||\n !0 !== parentProps[SUPPRESS_HYDRATION_WARNING]\n ? (textInstance.nodeValue === text\n ? (textInstance = null)\n : ((text = normalizeMarkupForTextOrAttribute(text)),\n (textInstance =\n normalizeMarkupForTextOrAttribute(textInstance.nodeValue) ===\n text\n ? null\n : textInstance.nodeValue)),\n textInstance)\n : null;\n }\n function getNextHydratableInstanceAfterSuspenseInstance(suspenseInstance) {\n suspenseInstance = suspenseInstance.nextSibling;\n for (var depth = 0; suspenseInstance; ) {\n if (8 === suspenseInstance.nodeType) {\n var data = suspenseInstance.data;\n if (data === SUSPENSE_END_DATA) {\n if (0 === depth)\n return getNextHydratable(suspenseInstance.nextSibling);\n depth--;\n } else\n (data !== SUSPENSE_START_DATA &&\n data !== SUSPENSE_FALLBACK_START_DATA &&\n data !== SUSPENSE_PENDING_START_DATA) ||\n depth++;\n }\n suspenseInstance = suspenseInstance.nextSibling;\n }\n return null;\n }\n function getParentSuspenseInstance(targetInstance) {\n targetInstance = targetInstance.previousSibling;\n for (var depth = 0; targetInstance; ) {\n if (8 === targetInstance.nodeType) {\n var data = targetInstance.data;\n if (\n data === SUSPENSE_START_DATA ||\n data === SUSPENSE_FALLBACK_START_DATA ||\n data === SUSPENSE_PENDING_START_DATA\n ) {\n if (0 === depth) return targetInstance;\n depth--;\n } else data === SUSPENSE_END_DATA && depth++;\n }\n targetInstance = targetInstance.previousSibling;\n }\n return null;\n }\n function commitHydratedContainer(container) {\n retryIfBlockedOn(container);\n }\n function commitHydratedSuspenseInstance(suspenseInstance) {\n retryIfBlockedOn(suspenseInstance);\n }\n function resolveSingletonInstance(\n type,\n props,\n rootContainerInstance,\n hostContext,\n validateDOMNestingDev\n ) {\n validateDOMNestingDev &&\n validateDOMNesting(type, hostContext.ancestorInfo);\n props = getOwnerDocumentFromRootContainer(rootContainerInstance);\n switch (type) {\n case \"html\":\n type = props.documentElement;\n if (!type)\n throw Error(\n \"React expected an <html> element (document.documentElement) to exist in the Document but one was not found. React never removes the documentElement for any Document it renders into so the cause is likely in some other script running on this page.\"\n );\n return type;\n case \"head\":\n type = props.head;\n if (!type)\n throw Error(\n \"React expected a <head> element (document.head) to exist in the Document but one was not found. React never removes the head for any Document it renders into so the cause is likely in some other script running on this page.\"\n );\n return type;\n case \"body\":\n type = props.body;\n if (!type)\n throw Error(\n \"React expected a <body> element (document.body) to exist in the Document but one was not found. React never removes the body for any Document it renders into so the cause is likely in some other script running on this page.\"\n );\n return type;\n default:\n throw Error(\n \"resolveSingletonInstance was called with an element type that is not supported. This is a bug in React.\"\n );\n }\n }\n function acquireSingletonInstance(\n type,\n props,\n instance,\n internalInstanceHandle\n ) {\n if (\n !instance[internalContainerInstanceKey] &&\n getInstanceFromNode(instance)\n ) {\n var tagName = instance.tagName.toLowerCase();\n console.error(\n \"You are mounting a new %s component when a previous one has not first unmounted. It is an error to render more than one %s component at a time and attributes and children of these components will likely fail in unpredictable ways. Please only render a single instance of <%s> and if you need to mount a new one, ensure any previous ones have unmounted first.\",\n tagName,\n tagName,\n tagName\n );\n }\n switch (type) {\n case \"html\":\n case \"head\":\n case \"body\":\n break;\n default:\n console.error(\n \"acquireSingletonInstance was called with an element type that is not supported. This is a bug in React.\"\n );\n }\n for (tagName = instance.attributes; tagName.length; )\n instance.removeAttributeNode(tagName[0]);\n setInitialProperties(instance, type, props);\n instance[internalInstanceKey] = internalInstanceHandle;\n instance[internalPropsKey] = props;\n }\n function releaseSingletonInstance(instance) {\n for (var attributes = instance.attributes; attributes.length; )\n instance.removeAttributeNode(attributes[0]);\n detachDeletedInstance(instance);\n }\n function getHoistableRoot(container) {\n return \"function\" === typeof container.getRootNode\n ? container.getRootNode()\n : 9 === container.nodeType\n ? container\n : container.ownerDocument;\n }\n function preconnectAs(rel, href, crossOrigin) {\n var ownerDocument = globalDocument;\n if (ownerDocument && \"string\" === typeof href && href) {\n var limitedEscapedHref =\n escapeSelectorAttributeValueInsideDoubleQuotes(href);\n limitedEscapedHref =\n 'link[rel=\"' + rel + '\"][href=\"' + limitedEscapedHref + '\"]';\n \"string\" === typeof crossOrigin &&\n (limitedEscapedHref += '[crossorigin=\"' + crossOrigin + '\"]');\n preconnectsSet.has(limitedEscapedHref) ||\n (preconnectsSet.add(limitedEscapedHref),\n (rel = { rel: rel, crossOrigin: crossOrigin, href: href }),\n null === ownerDocument.querySelector(limitedEscapedHref) &&\n ((href = ownerDocument.createElement(\"link\")),\n setInitialProperties(href, \"link\", rel),\n markNodeAsHoistable(href),\n ownerDocument.head.appendChild(href)));\n }\n }\n function getResource(type, currentProps, pendingProps, currentResource) {\n var resourceRoot = (resourceRoot = rootInstanceStackCursor.current)\n ? getHoistableRoot(resourceRoot)\n : null;\n if (!resourceRoot)\n throw Error(\n '\"resourceRoot\" was expected to exist. This is a bug in React.'\n );\n switch (type) {\n case \"meta\":\n case \"title\":\n return null;\n case \"style\":\n return \"string\" === typeof pendingProps.precedence &&\n \"string\" === typeof pendingProps.href\n ? ((pendingProps = getStyleKey(pendingProps.href)),\n (currentProps =\n getResourcesFromRoot(resourceRoot).hoistableStyles),\n (currentResource = currentProps.get(pendingProps)),\n currentResource ||\n ((currentResource = {\n type: \"style\",\n instance: null,\n count: 0,\n state: null\n }),\n currentProps.set(pendingProps, currentResource)),\n currentResource)\n : { type: \"void\", instance: null, count: 0, state: null };\n case \"link\":\n if (\n \"stylesheet\" === pendingProps.rel &&\n \"string\" === typeof pendingProps.href &&\n \"string\" === typeof pendingProps.precedence\n ) {\n type = getStyleKey(pendingProps.href);\n var _styles = getResourcesFromRoot(resourceRoot).hoistableStyles,\n _resource = _styles.get(type);\n if (\n !_resource &&\n ((resourceRoot = resourceRoot.ownerDocument || resourceRoot),\n (_resource = {\n type: \"stylesheet\",\n instance: null,\n count: 0,\n state: { loading: NotLoaded, preload: null }\n }),\n _styles.set(type, _resource),\n (_styles = resourceRoot.querySelector(\n getStylesheetSelectorFromKey(type)\n )) &&\n !_styles._p &&\n ((_resource.instance = _styles),\n (_resource.state.loading = Loaded | Inserted)),\n !preloadPropsMap.has(type))\n ) {\n var preloadProps = {\n rel: \"preload\",\n as: \"style\",\n href: pendingProps.href,\n crossOrigin: pendingProps.crossOrigin,\n integrity: pendingProps.integrity,\n media: pendingProps.media,\n hrefLang: pendingProps.hrefLang,\n referrerPolicy: pendingProps.referrerPolicy\n };\n preloadPropsMap.set(type, preloadProps);\n _styles ||\n preloadStylesheet(\n resourceRoot,\n type,\n preloadProps,\n _resource.state\n );\n }\n if (currentProps && null === currentResource)\n throw (\n ((pendingProps =\n \"\\n\\n - \" +\n describeLinkForResourceErrorDEV(currentProps) +\n \"\\n + \" +\n describeLinkForResourceErrorDEV(pendingProps)),\n Error(\n \"Expected <link> not to update to be updated to a stylesheet with precedence. Check the `rel`, `href`, and `precedence` props of this component. Alternatively, check whether two different <link> components render in the same slot or share the same key.\" +\n pendingProps\n ))\n );\n return _resource;\n }\n if (currentProps && null !== currentResource)\n throw (\n ((pendingProps =\n \"\\n\\n - \" +\n describeLinkForResourceErrorDEV(currentProps) +\n \"\\n + \" +\n describeLinkForResourceErrorDEV(pendingProps)),\n Error(\n \"Expected stylesheet with precedence to not be updated to a different kind of <link>. Check the `rel`, `href`, and `precedence` props of this component. Alternatively, check whether two different <link> components render in the same slot or share the same key.\" +\n pendingProps\n ))\n );\n return null;\n case \"script\":\n return (\n (currentProps = pendingProps.async),\n (pendingProps = pendingProps.src),\n \"string\" === typeof pendingProps &&\n currentProps &&\n \"function\" !== typeof currentProps &&\n \"symbol\" !== typeof currentProps\n ? ((pendingProps = getScriptKey(pendingProps)),\n (currentProps =\n getResourcesFromRoot(resourceRoot).hoistableScripts),\n (currentResource = currentProps.get(pendingProps)),\n currentResource ||\n ((currentResource = {\n type: \"script\",\n instance: null,\n count: 0,\n state: null\n }),\n currentProps.set(pendingProps, currentResource)),\n currentResource)\n : { type: \"void\", instance: null, count: 0, state: null }\n );\n default:\n throw Error(\n 'getResource encountered a type it did not expect: \"' +\n type +\n '\". this is a bug in React.'\n );\n }\n }\n function describeLinkForResourceErrorDEV(props) {\n var describedProps = 0,\n description = \"<link\";\n \"string\" === typeof props.rel\n ? (describedProps++, (description += ' rel=\"' + props.rel + '\"'))\n : hasOwnProperty.call(props, \"rel\") &&\n (describedProps++,\n (description +=\n ' rel=\"' +\n (null === props.rel ? \"null\" : \"invalid type \" + typeof props.rel) +\n '\"'));\n \"string\" === typeof props.href\n ? (describedProps++, (description += ' href=\"' + props.href + '\"'))\n : hasOwnProperty.call(props, \"href\") &&\n (describedProps++,\n (description +=\n ' href=\"' +\n (null === props.href\n ? \"null\"\n : \"invalid type \" + typeof props.href) +\n '\"'));\n \"string\" === typeof props.precedence\n ? (describedProps++,\n (description += ' precedence=\"' + props.precedence + '\"'))\n : hasOwnProperty.call(props, \"precedence\") &&\n (describedProps++,\n (description +=\n \" precedence={\" +\n (null === props.precedence\n ? \"null\"\n : \"invalid type \" + typeof props.precedence) +\n \"}\"));\n Object.getOwnPropertyNames(props).length > describedProps &&\n (description += \" ...\");\n return description + \" />\";\n }\n function getStyleKey(href) {\n return (\n 'href=\"' + escapeSelectorAttributeValueInsideDoubleQuotes(href) + '\"'\n );\n }\n function getStylesheetSelectorFromKey(key) {\n return 'link[rel=\"stylesheet\"][' + key + \"]\";\n }\n function stylesheetPropsFromRawProps(rawProps) {\n return assign({}, rawProps, {\n \"data-precedence\": rawProps.precedence,\n precedence: null\n });\n }\n function preloadStylesheet(ownerDocument, key, preloadProps, state) {\n ownerDocument.querySelector(\n 'link[rel=\"preload\"][as=\"style\"][' + key + \"]\"\n )\n ? (state.loading = Loaded)\n : ((key = ownerDocument.createElement(\"link\")),\n (state.preload = key),\n key.addEventListener(\"load\", function () {\n return (state.loading |= Loaded);\n }),\n key.addEventListener(\"error\", function () {\n return (state.loading |= Errored);\n }),\n setInitialProperties(key, \"link\", preloadProps),\n markNodeAsHoistable(key),\n ownerDocument.head.appendChild(key));\n }\n function getScriptKey(src) {\n return (\n '[src=\"' + escapeSelectorAttributeValueInsideDoubleQuotes(src) + '\"]'\n );\n }\n function getScriptSelectorFromKey(key) {\n return \"script[async]\" + key;\n }\n function acquireResource(hoistableRoot, resource, props) {\n resource.count++;\n if (null === resource.instance)\n switch (resource.type) {\n case \"style\":\n var instance = hoistableRoot.querySelector(\n 'style[data-href~=\"' +\n escapeSelectorAttributeValueInsideDoubleQuotes(props.href) +\n '\"]'\n );\n if (instance)\n return (\n (resource.instance = instance),\n markNodeAsHoistable(instance),\n instance\n );\n var styleProps = assign({}, props, {\n \"data-href\": props.href,\n \"data-precedence\": props.precedence,\n href: null,\n precedence: null\n });\n instance = (\n hoistableRoot.ownerDocument || hoistableRoot\n ).createElement(\"style\");\n markNodeAsHoistable(instance);\n setInitialProperties(instance, \"style\", styleProps);\n insertStylesheet(instance, props.precedence, hoistableRoot);\n return (resource.instance = instance);\n case \"stylesheet\":\n styleProps = getStyleKey(props.href);\n var _instance = hoistableRoot.querySelector(\n getStylesheetSelectorFromKey(styleProps)\n );\n if (_instance)\n return (\n (resource.state.loading |= Inserted),\n (resource.instance = _instance),\n markNodeAsHoistable(_instance),\n _instance\n );\n instance = stylesheetPropsFromRawProps(props);\n (styleProps = preloadPropsMap.get(styleProps)) &&\n adoptPreloadPropsForStylesheet(instance, styleProps);\n _instance = (\n hoistableRoot.ownerDocument || hoistableRoot\n ).createElement(\"link\");\n markNodeAsHoistable(_instance);\n var linkInstance = _instance;\n linkInstance._p = new Promise(function (resolve, reject) {\n linkInstance.onload = resolve;\n linkInstance.onerror = reject;\n });\n setInitialProperties(_instance, \"link\", instance);\n resource.state.loading |= Inserted;\n insertStylesheet(_instance, props.precedence, hoistableRoot);\n return (resource.instance = _instance);\n case \"script\":\n _instance = getScriptKey(props.src);\n if (\n (styleProps = hoistableRoot.querySelector(\n getScriptSelectorFromKey(_instance)\n ))\n )\n return (\n (resource.instance = styleProps),\n markNodeAsHoistable(styleProps),\n styleProps\n );\n instance = props;\n if ((styleProps = preloadPropsMap.get(_instance)))\n (instance = assign({}, props)),\n adoptPreloadPropsForScript(instance, styleProps);\n hoistableRoot = hoistableRoot.ownerDocument || hoistableRoot;\n styleProps = hoistableRoot.createElement(\"script\");\n markNodeAsHoistable(styleProps);\n setInitialProperties(styleProps, \"link\", instance);\n hoistableRoot.head.appendChild(styleProps);\n return (resource.instance = styleProps);\n case \"void\":\n return null;\n default:\n throw Error(\n 'acquireResource encountered a resource type it did not expect: \"' +\n resource.type +\n '\". this is a bug in React.'\n );\n }\n else\n \"stylesheet\" === resource.type &&\n (resource.state.loading & Inserted) === NotLoaded &&\n ((instance = resource.instance),\n (resource.state.loading |= Inserted),\n insertStylesheet(instance, props.precedence, hoistableRoot));\n return resource.instance;\n }\n function insertStylesheet(instance, precedence, root) {\n for (\n var nodes = root.querySelectorAll(\n 'link[rel=\"stylesheet\"][data-precedence],style[data-precedence]'\n ),\n last = nodes.length ? nodes[nodes.length - 1] : null,\n prior = last,\n i = 0;\n i < nodes.length;\n i++\n ) {\n var node = nodes[i];\n if (node.dataset.precedence === precedence) prior = node;\n else if (prior !== last) break;\n }\n prior\n ? prior.parentNode.insertBefore(instance, prior.nextSibling)\n : ((precedence = 9 === root.nodeType ? root.head : root),\n precedence.insertBefore(instance, precedence.firstChild));\n }\n function adoptPreloadPropsForStylesheet(stylesheetProps, preloadProps) {\n null == stylesheetProps.crossOrigin &&\n (stylesheetProps.crossOrigin = preloadProps.crossOrigin);\n null == stylesheetProps.referrerPolicy &&\n (stylesheetProps.referrerPolicy = preloadProps.referrerPolicy);\n null == stylesheetProps.title &&\n (stylesheetProps.title = preloadProps.title);\n }\n function adoptPreloadPropsForScript(scriptProps, preloadProps) {\n null == scriptProps.crossOrigin &&\n (scriptProps.crossOrigin = preloadProps.crossOrigin);\n null == scriptProps.referrerPolicy &&\n (scriptProps.referrerPolicy = preloadProps.referrerPolicy);\n null == scriptProps.integrity &&\n (scriptProps.integrity = preloadProps.integrity);\n }\n function getHydratableHoistableCache(type, keyAttribute, ownerDocument) {\n if (null === tagCaches) {\n var cache = new Map();\n var caches = (tagCaches = new Map());\n caches.set(ownerDocument, cache);\n } else\n (caches = tagCaches),\n (cache = caches.get(ownerDocument)),\n cache || ((cache = new Map()), caches.set(ownerDocument, cache));\n if (cache.has(type)) return cache;\n cache.set(type, null);\n ownerDocument = ownerDocument.getElementsByTagName(type);\n for (caches = 0; caches < ownerDocument.length; caches++) {\n var node = ownerDocument[caches];\n if (\n !(\n node[internalHoistableMarker] ||\n node[internalInstanceKey] ||\n (\"link\" === type && \"stylesheet\" === node.getAttribute(\"rel\"))\n ) &&\n node.namespaceURI !== SVG_NAMESPACE\n ) {\n var nodeKey = node.getAttribute(keyAttribute) || \"\";\n nodeKey = type + nodeKey;\n var existing = cache.get(nodeKey);\n existing ? existing.push(node) : cache.set(nodeKey, [node]);\n }\n }\n return cache;\n }\n function mountHoistable(hoistableRoot, type, instance) {\n hoistableRoot = hoistableRoot.ownerDocument || hoistableRoot;\n hoistableRoot.head.insertBefore(\n instance,\n \"title\" === type ? hoistableRoot.querySelector(\"head > title\") : null\n );\n }\n function isHostHoistableType(type, props, hostContext) {\n var outsideHostContainerContext =\n !hostContext.ancestorInfo.containerTagInScope;\n if (\n hostContext.context === HostContextNamespaceSvg ||\n null != props.itemProp\n )\n return (\n !outsideHostContainerContext ||\n null == props.itemProp ||\n (\"meta\" !== type &&\n \"title\" !== type &&\n \"style\" !== type &&\n \"link\" !== type &&\n \"script\" !== type) ||\n console.error(\n \"Cannot render a <%s> outside the main document if it has an `itemProp` prop. `itemProp` suggests the tag belongs to an `itemScope` which can appear anywhere in the DOM. If you were intending for React to hoist this <%s> remove the `itemProp` prop. Otherwise, try moving this tag into the <head> or <body> of the Document.\",\n type,\n type\n ),\n !1\n );\n switch (type) {\n case \"meta\":\n case \"title\":\n return !0;\n case \"style\":\n if (\n \"string\" !== typeof props.precedence ||\n \"string\" !== typeof props.href ||\n \"\" === props.href\n ) {\n outsideHostContainerContext &&\n console.error(\n 'Cannot render a <style> outside the main document without knowing its precedence and a unique href key. React can hoist and deduplicate <style> tags if you provide a `precedence` prop along with an `href` prop that does not conflict with the `href` values used in any other hoisted <style> or <link rel=\"stylesheet\" ...> tags. Note that hoisting <style> tags is considered an advanced feature that most will not use directly. Consider moving the <style> tag to the <head> or consider adding a `precedence=\"default\"` and `href=\"some unique resource identifier\"`.'\n );\n break;\n }\n return !0;\n case \"link\":\n if (\n \"string\" !== typeof props.rel ||\n \"string\" !== typeof props.href ||\n \"\" === props.href ||\n props.onLoad ||\n props.onError\n ) {\n if (\n \"stylesheet\" === props.rel &&\n \"string\" === typeof props.precedence\n ) {\n type = props.href;\n var onError = props.onError,\n disabled = props.disabled;\n hostContext = [];\n props.onLoad && hostContext.push(\"`onLoad`\");\n onError && hostContext.push(\"`onError`\");\n null != disabled && hostContext.push(\"`disabled`\");\n onError = propNamesListJoin(hostContext, \"and\");\n onError += 1 === hostContext.length ? \" prop\" : \" props\";\n disabled =\n 1 === hostContext.length ? \"an \" + onError : \"the \" + onError;\n hostContext.length &&\n console.error(\n 'React encountered a <link rel=\"stylesheet\" href=\"%s\" ... /> with a `precedence` prop that also included %s. The presence of loading and error handlers indicates an intent to manage the stylesheet loading state from your from your Component code and React will not hoist or deduplicate this stylesheet. If your intent was to have React hoist and deduplciate this stylesheet using the `precedence` prop remove the %s, otherwise remove the `precedence` prop.',\n type,\n disabled,\n onError\n );\n }\n outsideHostContainerContext &&\n (\"string\" !== typeof props.rel ||\n \"string\" !== typeof props.href ||\n \"\" === props.href\n ? console.error(\n \"Cannot render a <link> outside the main document without a `rel` and `href` prop. Try adding a `rel` and/or `href` prop to this <link> or moving the link into the <head> tag\"\n )\n : (props.onError || props.onLoad) &&\n console.error(\n \"Cannot render a <link> with onLoad or onError listeners outside the main document. Try removing onLoad={...} and onError={...} or moving it into the root <head> tag or somewhere in the <body>.\"\n ));\n break;\n }\n switch (props.rel) {\n case \"stylesheet\":\n return (\n (type = props.precedence),\n (props = props.disabled),\n \"string\" !== typeof type &&\n outsideHostContainerContext &&\n console.error(\n 'Cannot render a <link rel=\"stylesheet\" /> outside the main document without knowing its precedence. Consider adding precedence=\"default\" or moving it into the root <head> tag.'\n ),\n \"string\" === typeof type && null == props\n );\n default:\n return !0;\n }\n case \"script\":\n type =\n props.async &&\n \"function\" !== typeof props.async &&\n \"symbol\" !== typeof props.async;\n if (\n !type ||\n props.onLoad ||\n props.onError ||\n !props.src ||\n \"string\" !== typeof props.src\n ) {\n outsideHostContainerContext &&\n (type\n ? props.onLoad || props.onError\n ? console.error(\n \"Cannot render a <script> with onLoad or onError listeners outside the main document. Try removing onLoad={...} and onError={...} or moving it into the root <head> tag or somewhere in the <body>.\"\n )\n : console.error(\n \"Cannot render a <script> outside the main document without `async={true}` and a non-empty `src` prop. Ensure there is a valid `src` and either make the script async or move it into the root <head> tag or somewhere in the <body>.\"\n )\n : console.error(\n 'Cannot render a sync or defer <script> outside the main document without knowing its order. Try adding async=\"\" or moving it into the root <head> tag.'\n ));\n break;\n }\n return !0;\n case \"noscript\":\n case \"template\":\n outsideHostContainerContext &&\n console.error(\n \"Cannot render <%s> outside the main document. Try moving it into the root <head> tag.\",\n type\n );\n }\n return !1;\n }\n function preloadResource(resource) {\n return \"stylesheet\" === resource.type &&\n (resource.state.loading & Settled) === NotLoaded\n ? !1\n : !0;\n }\n function noop() {}\n function suspendResource(hoistableRoot, resource, props) {\n if (null === suspendedState)\n throw Error(\n \"Internal React Error: suspendedState null when it was expected to exists. Please report this as a React bug.\"\n );\n var state = suspendedState;\n if (\n \"stylesheet\" === resource.type &&\n (\"string\" !== typeof props.media ||\n !1 !== matchMedia(props.media).matches) &&\n (resource.state.loading & Inserted) === NotLoaded\n ) {\n if (null === resource.instance) {\n var key = getStyleKey(props.href),\n instance = hoistableRoot.querySelector(\n getStylesheetSelectorFromKey(key)\n );\n if (instance) {\n hoistableRoot = instance._p;\n null !== hoistableRoot &&\n \"object\" === typeof hoistableRoot &&\n \"function\" === typeof hoistableRoot.then &&\n (state.count++,\n (state = onUnsuspend.bind(state)),\n hoistableRoot.then(state, state));\n resource.state.loading |= Inserted;\n resource.instance = instance;\n markNodeAsHoistable(instance);\n return;\n }\n instance = hoistableRoot.ownerDocument || hoistableRoot;\n props = stylesheetPropsFromRawProps(props);\n (key = preloadPropsMap.get(key)) &&\n adoptPreloadPropsForStylesheet(props, key);\n instance = instance.createElement(\"link\");\n markNodeAsHoistable(instance);\n var linkInstance = instance;\n linkInstance._p = new Promise(function (resolve, reject) {\n linkInstance.onload = resolve;\n linkInstance.onerror = reject;\n });\n setInitialProperties(instance, \"link\", props);\n resource.instance = instance;\n }\n null === state.stylesheets && (state.stylesheets = new Map());\n state.stylesheets.set(resource, hoistableRoot);\n (hoistableRoot = resource.state.preload) &&\n (resource.state.loading & Settled) === NotLoaded &&\n (state.count++,\n (resource = onUnsuspend.bind(state)),\n hoistableRoot.addEventListener(\"load\", resource),\n hoistableRoot.addEventListener(\"error\", resource));\n }\n }\n function waitForCommitToBeReady() {\n if (null === suspendedState)\n throw Error(\n \"Internal React Error: suspendedState null when it was expected to exists. Please report this as a React bug.\"\n );\n var state = suspendedState;\n state.stylesheets &&\n 0 === state.count &&\n insertSuspendedStylesheets(state, state.stylesheets);\n return 0 < state.count\n ? function (commit) {\n var stylesheetTimer = setTimeout(function () {\n state.stylesheets &&\n insertSuspendedStylesheets(state, state.stylesheets);\n if (state.unsuspend) {\n var unsuspend = state.unsuspend;\n state.unsuspend = null;\n unsuspend();\n }\n }, 6e4);\n state.unsuspend = commit;\n return function () {\n state.unsuspend = null;\n clearTimeout(stylesheetTimer);\n };\n }\n : null;\n }\n function onUnsuspend() {\n this.count--;\n if (0 === this.count)\n if (this.stylesheets)\n insertSuspendedStylesheets(this, this.stylesheets);\n else if (this.unsuspend) {\n var unsuspend = this.unsuspend;\n this.unsuspend = null;\n unsuspend();\n }\n }\n function insertSuspendedStylesheets(state, resources) {\n state.stylesheets = null;\n null !== state.unsuspend &&\n (state.count++,\n (precedencesByRoot = new Map()),\n resources.forEach(insertStylesheetIntoRoot, state),\n (precedencesByRoot = null),\n onUnsuspend.call(state));\n }\n function insertStylesheetIntoRoot(root, resource) {\n if (!(resource.state.loading & Inserted)) {\n var precedences = precedencesByRoot.get(root);\n if (precedences) var last = precedences.get(LAST_PRECEDENCE);\n else {\n precedences = new Map();\n precedencesByRoot.set(root, precedences);\n for (\n var nodes = root.querySelectorAll(\n \"link[data-precedence],style[data-precedence]\"\n ),\n i = 0;\n i < nodes.length;\n i++\n ) {\n var node = nodes[i];\n if (\n \"LINK\" === node.nodeName ||\n \"not all\" !== node.getAttribute(\"media\")\n )\n precedences.set(node.dataset.precedence, node), (last = node);\n }\n last && precedences.set(LAST_PRECEDENCE, last);\n }\n nodes = resource.instance;\n node = nodes.getAttribute(\"data-precedence\");\n i = precedences.get(node) || last;\n i === last && precedences.set(LAST_PRECEDENCE, nodes);\n precedences.set(node, nodes);\n this.count++;\n last = onUnsuspend.bind(this);\n nodes.addEventListener(\"load\", last);\n nodes.addEventListener(\"error\", last);\n i\n ? i.parentNode.insertBefore(nodes, i.nextSibling)\n : ((root = 9 === root.nodeType ? root.head : root),\n root.insertBefore(nodes, root.firstChild));\n resource.state.loading |= Inserted;\n }\n }\n function FiberRootNode(\n containerInfo,\n tag,\n hydrate,\n identifierPrefix,\n onUncaughtError,\n onCaughtError,\n onRecoverableError,\n formState\n ) {\n this.tag = 1;\n this.containerInfo = containerInfo;\n this.pingCache = this.current = this.pendingChildren = null;\n this.timeoutHandle = noTimeout;\n this.callbackNode =\n this.next =\n this.pendingContext =\n this.context =\n this.cancelPendingCommit =\n null;\n this.callbackPriority = 0;\n this.expirationTimes = createLaneMap(-1);\n this.entangledLanes =\n this.shellSuspendCounter =\n this.errorRecoveryDisabledLanes =\n this.expiredLanes =\n this.warmLanes =\n this.pingedLanes =\n this.suspendedLanes =\n this.pendingLanes =\n 0;\n this.entanglements = createLaneMap(0);\n this.hiddenUpdates = createLaneMap(null);\n this.identifierPrefix = identifierPrefix;\n this.onUncaughtError = onUncaughtError;\n this.onCaughtError = onCaughtError;\n this.onRecoverableError = onRecoverableError;\n this.pooledCache = null;\n this.pooledCacheLanes = 0;\n this.formState = formState;\n this.incompleteTransitions = new Map();\n this.passiveEffectDuration = this.effectDuration = -0;\n this.memoizedUpdaters = new Set();\n containerInfo = this.pendingUpdatersLaneMap = [];\n for (tag = 0; 31 > tag; tag++) containerInfo.push(new Set());\n this._debugRootType = hydrate ? \"hydrateRoot()\" : \"createRoot()\";\n }\n function createFiberRoot(\n containerInfo,\n tag,\n hydrate,\n initialChildren,\n hydrationCallbacks,\n isStrictMode,\n identifierPrefix,\n onUncaughtError,\n onCaughtError,\n onRecoverableError,\n transitionCallbacks,\n formState\n ) {\n containerInfo = new FiberRootNode(\n containerInfo,\n tag,\n hydrate,\n identifierPrefix,\n onUncaughtError,\n onCaughtError,\n onRecoverableError,\n formState\n );\n tag = ConcurrentMode;\n !0 === isStrictMode && (tag |= StrictLegacyMode | StrictEffectsMode);\n isDevToolsPresent && (tag |= ProfileMode);\n isStrictMode = createFiber(3, null, null, tag);\n containerInfo.current = isStrictMode;\n isStrictMode.stateNode = containerInfo;\n tag = createCache();\n retainCache(tag);\n containerInfo.pooledCache = tag;\n retainCache(tag);\n isStrictMode.memoizedState = {\n element: initialChildren,\n isDehydrated: hydrate,\n cache: tag\n };\n initializeUpdateQueue(isStrictMode);\n return containerInfo;\n }\n function getContextForSubtree(parentComponent) {\n if (!parentComponent) return emptyContextObject;\n parentComponent = emptyContextObject;\n return parentComponent;\n }\n function updateContainerImpl(\n rootFiber,\n lane,\n element,\n container,\n parentComponent,\n callback\n ) {\n if (\n injectedHook &&\n \"function\" === typeof injectedHook.onScheduleFiberRoot\n )\n try {\n injectedHook.onScheduleFiberRoot(rendererID, container, element);\n } catch (err) {\n hasLoggedError ||\n ((hasLoggedError = !0),\n console.error(\n \"React instrumentation encountered an error: %s\",\n err\n ));\n }\n null !== injectedProfilingHooks &&\n \"function\" === typeof injectedProfilingHooks.markRenderScheduled &&\n injectedProfilingHooks.markRenderScheduled(lane);\n parentComponent = getContextForSubtree(parentComponent);\n null === container.context\n ? (container.context = parentComponent)\n : (container.pendingContext = parentComponent);\n isRendering &&\n null !== current &&\n !didWarnAboutNestedUpdates &&\n ((didWarnAboutNestedUpdates = !0),\n console.error(\n \"Render methods should be a pure function of props and state; triggering nested component updates from render is not allowed. If necessary, trigger nested updates in componentDidUpdate.\\n\\nCheck the render method of %s.\",\n getComponentNameFromFiber(current) || \"Unknown\"\n ));\n container = createUpdate(lane);\n container.payload = { element: element };\n callback = void 0 === callback ? null : callback;\n null !== callback &&\n (\"function\" !== typeof callback &&\n console.error(\n \"Expected the last optional `callback` argument to be a function. Instead received: %s.\",\n callback\n ),\n (container.callback = callback));\n element = enqueueUpdate(rootFiber, container, lane);\n null !== element &&\n (scheduleUpdateOnFiber(element, rootFiber, lane),\n entangleTransitions(element, rootFiber, lane));\n }\n function markRetryLaneImpl(fiber, retryLane) {\n fiber = fiber.memoizedState;\n if (null !== fiber && null !== fiber.dehydrated) {\n var a = fiber.retryLane;\n fiber.retryLane = 0 !== a && a < retryLane ? a : retryLane;\n }\n }\n function markRetryLaneIfNotHydrated(fiber, retryLane) {\n markRetryLaneImpl(fiber, retryLane);\n (fiber = fiber.alternate) && markRetryLaneImpl(fiber, retryLane);\n }\n function attemptContinuousHydration(fiber) {\n if (13 === fiber.tag) {\n var root = enqueueConcurrentRenderForLane(fiber, 67108864);\n null !== root && scheduleUpdateOnFiber(root, fiber, 67108864);\n markRetryLaneIfNotHydrated(fiber, 67108864);\n }\n }\n function getCurrentFiberForDevTools() {\n return current;\n }\n function getLaneLabelMap() {\n for (var map = new Map(), lane = 1, index = 0; 31 > index; index++) {\n var label = getLabelForLane(lane);\n map.set(lane, label);\n lane *= 2;\n }\n return map;\n }\n function dispatchDiscreteEvent(\n domEventName,\n eventSystemFlags,\n container,\n nativeEvent\n ) {\n var prevTransition = ReactSharedInternals.T;\n ReactSharedInternals.T = null;\n var previousPriority = ReactDOMSharedInternals.p;\n try {\n (ReactDOMSharedInternals.p = DiscreteEventPriority),\n dispatchEvent(domEventName, eventSystemFlags, container, nativeEvent);\n } finally {\n (ReactDOMSharedInternals.p = previousPriority),\n (ReactSharedInternals.T = prevTransition);\n }\n }\n function dispatchContinuousEvent(\n domEventName,\n eventSystemFlags,\n container,\n nativeEvent\n ) {\n var prevTransition = ReactSharedInternals.T;\n ReactSharedInternals.T = null;\n var previousPriority = ReactDOMSharedInternals.p;\n try {\n (ReactDOMSharedInternals.p = ContinuousEventPriority),\n dispatchEvent(domEventName, eventSystemFlags, container, nativeEvent);\n } finally {\n (ReactDOMSharedInternals.p = previousPriority),\n (ReactSharedInternals.T = prevTransition);\n }\n }\n function dispatchEvent(\n domEventName,\n eventSystemFlags,\n targetContainer,\n nativeEvent\n ) {\n if (_enabled) {\n var blockedOn = findInstanceBlockingEvent(nativeEvent);\n if (null === blockedOn)\n dispatchEventForPluginEventSystem(\n domEventName,\n eventSystemFlags,\n nativeEvent,\n return_targetInst,\n targetContainer\n ),\n clearIfContinuousEvent(domEventName, nativeEvent);\n else if (\n queueIfContinuousEvent(\n blockedOn,\n domEventName,\n eventSystemFlags,\n targetContainer,\n nativeEvent\n )\n )\n nativeEvent.stopPropagation();\n else if (\n (clearIfContinuousEvent(domEventName, nativeEvent),\n eventSystemFlags & 4 &&\n -1 < discreteReplayableEvents.indexOf(domEventName))\n ) {\n for (; null !== blockedOn; ) {\n var fiber = getInstanceFromNode(blockedOn);\n if (null !== fiber)\n switch (fiber.tag) {\n case 3:\n fiber = fiber.stateNode;\n if (fiber.current.memoizedState.isDehydrated) {\n var lanes = getHighestPriorityLanes(fiber.pendingLanes);\n if (0 !== lanes) {\n var root = fiber;\n root.pendingLanes |= 2;\n for (root.entangledLanes |= 2; lanes; ) {\n var lane = 1 << (31 - clz32(lanes));\n root.entanglements[1] |= lane;\n lanes &= ~lane;\n }\n ensureRootIsScheduled(fiber);\n (executionContext & (RenderContext | CommitContext)) ===\n NoContext &&\n ((workInProgressRootRenderTargetTime =\n now$1() + RENDER_TIMEOUT_MS),\n flushSyncWorkAcrossRoots_impl(0, !1));\n }\n }\n break;\n case 13:\n (root = enqueueConcurrentRenderForLane(fiber, 2)),\n null !== root && scheduleUpdateOnFiber(root, fiber, 2),\n flushSyncWork$1(),\n markRetryLaneIfNotHydrated(fiber, 2);\n }\n fiber = findInstanceBlockingEvent(nativeEvent);\n null === fiber &&\n dispatchEventForPluginEventSystem(\n domEventName,\n eventSystemFlags,\n nativeEvent,\n return_targetInst,\n targetContainer\n );\n if (fiber === blockedOn) break;\n blockedOn = fiber;\n }\n null !== blockedOn && nativeEvent.stopPropagation();\n } else\n dispatchEventForPluginEventSystem(\n domEventName,\n eventSystemFlags,\n nativeEvent,\n null,\n targetContainer\n );\n }\n }\n function findInstanceBlockingEvent(nativeEvent) {\n nativeEvent = getEventTarget(nativeEvent);\n return findInstanceBlockingTarget(nativeEvent);\n }\n function findInstanceBlockingTarget(targetNode) {\n return_targetInst = null;\n targetNode = getClosestInstanceFromNode(targetNode);\n if (null !== targetNode) {\n var nearestMounted = getNearestMountedFiber(targetNode);\n if (null === nearestMounted) targetNode = null;\n else {\n var tag = nearestMounted.tag;\n if (13 === tag) {\n targetNode = getSuspenseInstanceFromFiber(nearestMounted);\n if (null !== targetNode) return targetNode;\n targetNode = null;\n } else if (3 === tag) {\n if (nearestMounted.stateNode.current.memoizedState.isDehydrated)\n return 3 === nearestMounted.tag\n ? nearestMounted.stateNode.containerInfo\n : null;\n targetNode = null;\n } else nearestMounted !== targetNode && (targetNode = null);\n }\n }\n return_targetInst = targetNode;\n return null;\n }\n function getEventPriority(domEventName) {\n switch (domEventName) {\n case \"beforetoggle\":\n case \"cancel\":\n case \"click\":\n case \"close\":\n case \"contextmenu\":\n case \"copy\":\n case \"cut\":\n case \"auxclick\":\n case \"dblclick\":\n case \"dragend\":\n case \"dragstart\":\n case \"drop\":\n case \"focusin\":\n case \"focusout\":\n case \"input\":\n case \"invalid\":\n case \"keydown\":\n case \"keypress\":\n case \"keyup\":\n case \"mousedown\":\n case \"mouseup\":\n case \"paste\":\n case \"pause\":\n case \"play\":\n case \"pointercancel\":\n case \"pointerdown\":\n case \"pointerup\":\n case \"ratechange\":\n case \"reset\":\n case \"resize\":\n case \"seeked\":\n case \"submit\":\n case \"toggle\":\n case \"touchcancel\":\n case \"touchend\":\n case \"touchstart\":\n case \"volumechange\":\n case \"change\":\n case \"selectionchange\":\n case \"textInput\":\n case \"compositionstart\":\n case \"compositionend\":\n case \"compositionupdate\":\n case \"beforeblur\":\n case \"afterblur\":\n case \"beforeinput\":\n case \"blur\":\n case \"fullscreenchange\":\n case \"focus\":\n case \"hashchange\":\n case \"popstate\":\n case \"select\":\n case \"selectstart\":\n return DiscreteEventPriority;\n case \"drag\":\n case \"dragenter\":\n case \"dragexit\":\n case \"dragleave\":\n case \"dragover\":\n case \"mousemove\":\n case \"mouseout\":\n case \"mouseover\":\n case \"pointermove\":\n case \"pointerout\":\n case \"pointerover\":\n case \"scroll\":\n case \"touchmove\":\n case \"wheel\":\n case \"mouseenter\":\n case \"mouseleave\":\n case \"pointerenter\":\n case \"pointerleave\":\n return ContinuousEventPriority;\n case \"message\":\n switch (getCurrentPriorityLevel()) {\n case ImmediatePriority:\n return DiscreteEventPriority;\n case UserBlockingPriority:\n return ContinuousEventPriority;\n case NormalPriority$1:\n case LowPriority:\n return DefaultEventPriority;\n case IdlePriority:\n return IdleEventPriority;\n default:\n return DefaultEventPriority;\n }\n default:\n return DefaultEventPriority;\n }\n }\n function clearIfContinuousEvent(domEventName, nativeEvent) {\n switch (domEventName) {\n case \"focusin\":\n case \"focusout\":\n queuedFocus = null;\n break;\n case \"dragenter\":\n case \"dragleave\":\n queuedDrag = null;\n break;\n case \"mouseover\":\n case \"mouseout\":\n queuedMouse = null;\n break;\n case \"pointerover\":\n case \"pointerout\":\n queuedPointers.delete(nativeEvent.pointerId);\n break;\n case \"gotpointercapture\":\n case \"lostpointercapture\":\n queuedPointerCaptures.delete(nativeEvent.pointerId);\n }\n }\n function accumulateOrCreateContinuousQueuedReplayableEvent(\n existingQueuedEvent,\n blockedOn,\n domEventName,\n eventSystemFlags,\n targetContainer,\n nativeEvent\n ) {\n if (\n null === existingQueuedEvent ||\n existingQueuedEvent.nativeEvent !== nativeEvent\n )\n return (\n (existingQueuedEvent = {\n blockedOn: blockedOn,\n domEventName: domEventName,\n eventSystemFlags: eventSystemFlags,\n nativeEvent: nativeEvent,\n targetContainers: [targetContainer]\n }),\n null !== blockedOn &&\n ((blockedOn = getInstanceFromNode(blockedOn)),\n null !== blockedOn && attemptContinuousHydration(blockedOn)),\n existingQueuedEvent\n );\n existingQueuedEvent.eventSystemFlags |= eventSystemFlags;\n blockedOn = existingQueuedEvent.targetContainers;\n null !== targetContainer &&\n -1 === blockedOn.indexOf(targetContainer) &&\n blockedOn.push(targetContainer);\n return existingQueuedEvent;\n }\n function queueIfContinuousEvent(\n blockedOn,\n domEventName,\n eventSystemFlags,\n targetContainer,\n nativeEvent\n ) {\n switch (domEventName) {\n case \"focusin\":\n return (\n (queuedFocus = accumulateOrCreateContinuousQueuedReplayableEvent(\n queuedFocus,\n blockedOn,\n domEventName,\n eventSystemFlags,\n targetContainer,\n nativeEvent\n )),\n !0\n );\n case \"dragenter\":\n return (\n (queuedDrag = accumulateOrCreateContinuousQueuedReplayableEvent(\n queuedDrag,\n blockedOn,\n domEventName,\n eventSystemFlags,\n targetContainer,\n nativeEvent\n )),\n !0\n );\n case \"mouseover\":\n return (\n (queuedMouse = accumulateOrCreateContinuousQueuedReplayableEvent(\n queuedMouse,\n blockedOn,\n domEventName,\n eventSystemFlags,\n targetContainer,\n nativeEvent\n )),\n !0\n );\n case \"pointerover\":\n var pointerId = nativeEvent.pointerId;\n queuedPointers.set(\n pointerId,\n accumulateOrCreateContinuousQueuedReplayableEvent(\n queuedPointers.get(pointerId) || null,\n blockedOn,\n domEventName,\n eventSystemFlags,\n targetContainer,\n nativeEvent\n )\n );\n return !0;\n case \"gotpointercapture\":\n return (\n (pointerId = nativeEvent.pointerId),\n queuedPointerCaptures.set(\n pointerId,\n accumulateOrCreateContinuousQueuedReplayableEvent(\n queuedPointerCaptures.get(pointerId) || null,\n blockedOn,\n domEventName,\n eventSystemFlags,\n targetContainer,\n nativeEvent\n )\n ),\n !0\n );\n }\n return !1;\n }\n function attemptExplicitHydrationTarget(queuedTarget) {\n var targetInst = getClosestInstanceFromNode(queuedTarget.target);\n if (null !== targetInst) {\n var nearestMounted = getNearestMountedFiber(targetInst);\n if (null !== nearestMounted)\n if (((targetInst = nearestMounted.tag), 13 === targetInst)) {\n if (\n ((targetInst = getSuspenseInstanceFromFiber(nearestMounted)),\n null !== targetInst)\n ) {\n queuedTarget.blockedOn = targetInst;\n runWithPriority(queuedTarget.priority, function () {\n if (13 === nearestMounted.tag) {\n var lane = requestUpdateLane(nearestMounted);\n lane = getBumpedLaneForHydrationByLane(lane);\n var root = enqueueConcurrentRenderForLane(\n nearestMounted,\n lane\n );\n null !== root &&\n scheduleUpdateOnFiber(root, nearestMounted, lane);\n markRetryLaneIfNotHydrated(nearestMounted, lane);\n }\n });\n return;\n }\n } else if (\n 3 === targetInst &&\n nearestMounted.stateNode.current.memoizedState.isDehydrated\n ) {\n queuedTarget.blockedOn =\n 3 === nearestMounted.tag\n ? nearestMounted.stateNode.containerInfo\n : null;\n return;\n }\n }\n queuedTarget.blockedOn = null;\n }\n function attemptReplayContinuousQueuedEvent(queuedEvent) {\n if (null !== queuedEvent.blockedOn) return !1;\n for (\n var targetContainers = queuedEvent.targetContainers;\n 0 < targetContainers.length;\n\n ) {\n var nextBlockedOn = findInstanceBlockingEvent(queuedEvent.nativeEvent);\n if (null === nextBlockedOn) {\n nextBlockedOn = queuedEvent.nativeEvent;\n var nativeEventClone = new nextBlockedOn.constructor(\n nextBlockedOn.type,\n nextBlockedOn\n ),\n event = nativeEventClone;\n null !== currentReplayingEvent &&\n console.error(\n \"Expected currently replaying event to be null. This error is likely caused by a bug in React. Please file an issue.\"\n );\n currentReplayingEvent = event;\n nextBlockedOn.target.dispatchEvent(nativeEventClone);\n null === currentReplayingEvent &&\n console.error(\n \"Expected currently replaying event to not be null. This error is likely caused by a bug in React. Please file an issue.\"\n );\n currentReplayingEvent = null;\n } else\n return (\n (targetContainers = getInstanceFromNode(nextBlockedOn)),\n null !== targetContainers &&\n attemptContinuousHydration(targetContainers),\n (queuedEvent.blockedOn = nextBlockedOn),\n !1\n );\n targetContainers.shift();\n }\n return !0;\n }\n function attemptReplayContinuousQueuedEventInMap(queuedEvent, key, map) {\n attemptReplayContinuousQueuedEvent(queuedEvent) && map.delete(key);\n }\n function replayUnblockedEvents() {\n hasScheduledReplayAttempt = !1;\n null !== queuedFocus &&\n attemptReplayContinuousQueuedEvent(queuedFocus) &&\n (queuedFocus = null);\n null !== queuedDrag &&\n attemptReplayContinuousQueuedEvent(queuedDrag) &&\n (queuedDrag = null);\n null !== queuedMouse &&\n attemptReplayContinuousQueuedEvent(queuedMouse) &&\n (queuedMouse = null);\n queuedPointers.forEach(attemptReplayContinuousQueuedEventInMap);\n queuedPointerCaptures.forEach(attemptReplayContinuousQueuedEventInMap);\n }\n function scheduleCallbackIfUnblocked(queuedEvent, unblocked) {\n queuedEvent.blockedOn === unblocked &&\n ((queuedEvent.blockedOn = null),\n hasScheduledReplayAttempt ||\n ((hasScheduledReplayAttempt = !0),\n Scheduler.unstable_scheduleCallback(\n Scheduler.unstable_NormalPriority,\n replayUnblockedEvents\n )));\n }\n function scheduleReplayQueueIfNeeded(formReplayingQueue) {\n lastScheduledReplayQueue !== formReplayingQueue &&\n ((lastScheduledReplayQueue = formReplayingQueue),\n Scheduler.unstable_scheduleCallback(\n Scheduler.unstable_NormalPriority,\n function () {\n lastScheduledReplayQueue === formReplayingQueue &&\n (lastScheduledReplayQueue = null);\n for (var i = 0; i < formReplayingQueue.length; i += 3) {\n var form = formReplayingQueue[i],\n submitterOrAction = formReplayingQueue[i + 1],\n formData = formReplayingQueue[i + 2];\n if (\"function\" !== typeof submitterOrAction)\n if (\n null === findInstanceBlockingTarget(submitterOrAction || form)\n )\n continue;\n else break;\n var formInst = getInstanceFromNode(form);\n null !== formInst &&\n (formReplayingQueue.splice(i, 3),\n (i -= 3),\n (form = {\n pending: !0,\n data: formData,\n method: form.method,\n action: submitterOrAction\n }),\n Object.freeze(form),\n startHostTransition(\n formInst,\n form,\n submitterOrAction,\n formData\n ));\n }\n }\n ));\n }\n function retryIfBlockedOn(unblocked) {\n function unblock(queuedEvent) {\n return scheduleCallbackIfUnblocked(queuedEvent, unblocked);\n }\n null !== queuedFocus &&\n scheduleCallbackIfUnblocked(queuedFocus, unblocked);\n null !== queuedDrag && scheduleCallbackIfUnblocked(queuedDrag, unblocked);\n null !== queuedMouse &&\n scheduleCallbackIfUnblocked(queuedMouse, unblocked);\n queuedPointers.forEach(unblock);\n queuedPointerCaptures.forEach(unblock);\n for (var i = 0; i < queuedExplicitHydrationTargets.length; i++) {\n var queuedTarget = queuedExplicitHydrationTargets[i];\n queuedTarget.blockedOn === unblocked && (queuedTarget.blockedOn = null);\n }\n for (\n ;\n 0 < queuedExplicitHydrationTargets.length &&\n ((i = queuedExplicitHydrationTargets[0]), null === i.blockedOn);\n\n )\n attemptExplicitHydrationTarget(i),\n null === i.blockedOn && queuedExplicitHydrationTargets.shift();\n i = (unblocked.ownerDocument || unblocked).$$reactFormReplay;\n if (null != i)\n for (queuedTarget = 0; queuedTarget < i.length; queuedTarget += 3) {\n var form = i[queuedTarget],\n submitterOrAction = i[queuedTarget + 1],\n formProps = form[internalPropsKey] || null;\n if (\"function\" === typeof submitterOrAction)\n formProps || scheduleReplayQueueIfNeeded(i);\n else if (formProps) {\n var action = null;\n if (\n submitterOrAction &&\n submitterOrAction.hasAttribute(\"formAction\")\n )\n if (\n ((form = submitterOrAction),\n (formProps = submitterOrAction[internalPropsKey] || null))\n )\n action = formProps.formAction;\n else {\n if (null !== findInstanceBlockingTarget(form)) continue;\n }\n else action = formProps.action;\n \"function\" === typeof action\n ? (i[queuedTarget + 1] = action)\n : (i.splice(queuedTarget, 3), (queuedTarget -= 3));\n scheduleReplayQueueIfNeeded(i);\n }\n }\n }\n function ReactDOMRoot(internalRoot) {\n this._internalRoot = internalRoot;\n }\n function ReactDOMHydrationRoot(internalRoot) {\n this._internalRoot = internalRoot;\n }\n function warnIfReactDOMContainerInDEV(container) {\n container[internalContainerInstanceKey] &&\n (container._reactRootContainer\n ? console.error(\n \"You are calling ReactDOMClient.createRoot() on a container that was previously passed to ReactDOM.render(). This is not supported.\"\n )\n : console.error(\n \"You are calling ReactDOMClient.createRoot() on a container that has already been passed to createRoot() before. Instead, call root.render() on the existing root instead if you want to update it.\"\n ));\n }\n \"undefined\" !== typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ &&\n \"function\" ===\n typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStart &&\n __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStart(Error());\n var Scheduler = __webpack_require__(/*! scheduler */ \"(pages-dir-browser)/./node_modules/scheduler/index.js\"),\n React = __webpack_require__(/*! react */ \"(pages-dir-browser)/./node_modules/react/index.js\"),\n ReactDOM = __webpack_require__(/*! react-dom */ \"(pages-dir-browser)/./node_modules/react-dom/index.js\"),\n assign = Object.assign,\n REACT_LEGACY_ELEMENT_TYPE = Symbol.for(\"react.element\"),\n REACT_ELEMENT_TYPE = Symbol.for(\"react.transitional.element\"),\n REACT_PORTAL_TYPE = Symbol.for(\"react.portal\"),\n REACT_FRAGMENT_TYPE = Symbol.for(\"react.fragment\"),\n REACT_STRICT_MODE_TYPE = Symbol.for(\"react.strict_mode\"),\n REACT_PROFILER_TYPE = Symbol.for(\"react.profiler\"),\n REACT_PROVIDER_TYPE = Symbol.for(\"react.provider\"),\n REACT_CONSUMER_TYPE = Symbol.for(\"react.consumer\"),\n REACT_CONTEXT_TYPE = Symbol.for(\"react.context\"),\n REACT_FORWARD_REF_TYPE = Symbol.for(\"react.forward_ref\"),\n REACT_SUSPENSE_TYPE = Symbol.for(\"react.suspense\"),\n REACT_SUSPENSE_LIST_TYPE = Symbol.for(\"react.suspense_list\"),\n REACT_MEMO_TYPE = Symbol.for(\"react.memo\"),\n REACT_LAZY_TYPE = Symbol.for(\"react.lazy\");\n Symbol.for(\"react.scope\");\n var REACT_ACTIVITY_TYPE = Symbol.for(\"react.activity\");\n Symbol.for(\"react.legacy_hidden\");\n Symbol.for(\"react.tracing_marker\");\n var REACT_MEMO_CACHE_SENTINEL = Symbol.for(\"react.memo_cache_sentinel\");\n Symbol.for(\"react.view_transition\");\n var MAYBE_ITERATOR_SYMBOL = Symbol.iterator,\n REACT_CLIENT_REFERENCE = Symbol.for(\"react.client.reference\"),\n isArrayImpl = Array.isArray,\n ReactSharedInternals =\n React.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,\n ReactDOMSharedInternals =\n ReactDOM.__DOM_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,\n NotPending = Object.freeze({\n pending: !1,\n data: null,\n method: null,\n action: null\n }),\n valueStack = [];\n var fiberStack = [];\n var index$jscomp$0 = -1,\n contextStackCursor = createCursor(null),\n contextFiberStackCursor = createCursor(null),\n rootInstanceStackCursor = createCursor(null),\n hostTransitionProviderCursor = createCursor(null),\n hasOwnProperty = Object.prototype.hasOwnProperty,\n scheduleCallback$3 = Scheduler.unstable_scheduleCallback,\n cancelCallback$1 = Scheduler.unstable_cancelCallback,\n shouldYield = Scheduler.unstable_shouldYield,\n requestPaint = Scheduler.unstable_requestPaint,\n now$1 = Scheduler.unstable_now,\n getCurrentPriorityLevel = Scheduler.unstable_getCurrentPriorityLevel,\n ImmediatePriority = Scheduler.unstable_ImmediatePriority,\n UserBlockingPriority = Scheduler.unstable_UserBlockingPriority,\n NormalPriority$1 = Scheduler.unstable_NormalPriority,\n LowPriority = Scheduler.unstable_LowPriority,\n IdlePriority = Scheduler.unstable_IdlePriority,\n log$1 = Scheduler.log,\n unstable_setDisableYieldValue = Scheduler.unstable_setDisableYieldValue,\n rendererID = null,\n injectedHook = null,\n injectedProfilingHooks = null,\n hasLoggedError = !1,\n isDevToolsPresent = \"undefined\" !== typeof __REACT_DEVTOOLS_GLOBAL_HOOK__,\n clz32 = Math.clz32 ? Math.clz32 : clz32Fallback,\n log = Math.log,\n LN2 = Math.LN2,\n nextTransitionLane = 256,\n nextRetryLane = 4194304,\n DiscreteEventPriority = 2,\n ContinuousEventPriority = 8,\n DefaultEventPriority = 32,\n IdleEventPriority = 268435456,\n randomKey = Math.random().toString(36).slice(2),\n internalInstanceKey = \"__reactFiber$\" + randomKey,\n internalPropsKey = \"__reactProps$\" + randomKey,\n internalContainerInstanceKey = \"__reactContainer$\" + randomKey,\n internalEventHandlersKey = \"__reactEvents$\" + randomKey,\n internalEventHandlerListenersKey = \"__reactListeners$\" + randomKey,\n internalEventHandlesSetKey = \"__reactHandles$\" + randomKey,\n internalRootNodeResourcesKey = \"__reactResources$\" + randomKey,\n internalHoistableMarker = \"__reactMarker$\" + randomKey,\n allNativeEvents = new Set(),\n registrationNameDependencies = {},\n possibleRegistrationNames = {},\n hasReadOnlyValue = {\n button: !0,\n checkbox: !0,\n image: !0,\n hidden: !0,\n radio: !0,\n reset: !0,\n submit: !0\n },\n VALID_ATTRIBUTE_NAME_REGEX = RegExp(\n \"^[:A-Z_a-z\\\\u00C0-\\\\u00D6\\\\u00D8-\\\\u00F6\\\\u00F8-\\\\u02FF\\\\u0370-\\\\u037D\\\\u037F-\\\\u1FFF\\\\u200C-\\\\u200D\\\\u2070-\\\\u218F\\\\u2C00-\\\\u2FEF\\\\u3001-\\\\uD7FF\\\\uF900-\\\\uFDCF\\\\uFDF0-\\\\uFFFD][:A-Z_a-z\\\\u00C0-\\\\u00D6\\\\u00D8-\\\\u00F6\\\\u00F8-\\\\u02FF\\\\u0370-\\\\u037D\\\\u037F-\\\\u1FFF\\\\u200C-\\\\u200D\\\\u2070-\\\\u218F\\\\u2C00-\\\\u2FEF\\\\u3001-\\\\uD7FF\\\\uF900-\\\\uFDCF\\\\uFDF0-\\\\uFFFD\\\\-.0-9\\\\u00B7\\\\u0300-\\\\u036F\\\\u203F-\\\\u2040]*$\"\n ),\n illegalAttributeNameCache = {},\n validatedAttributeNameCache = {},\n disabledDepth = 0,\n prevLog,\n prevInfo,\n prevWarn,\n prevError,\n prevGroup,\n prevGroupCollapsed,\n prevGroupEnd;\n disabledLog.__reactDisabledLog = !0;\n var prefix,\n suffix,\n reentry = !1;\n var componentFrameCache = new (\n \"function\" === typeof WeakMap ? WeakMap : Map\n )();\n var current = null,\n isRendering = !1,\n escapeSelectorAttributeValueInsideDoubleQuotesRegex = /[\\n\"\\\\]/g,\n didWarnValueDefaultValue$1 = !1,\n didWarnCheckedDefaultChecked = !1,\n didWarnSelectedSetOnOption = !1,\n didWarnInvalidChild = !1,\n didWarnInvalidInnerHTML = !1;\n var didWarnValueDefaultValue = !1;\n var valuePropNames = [\"value\", \"defaultValue\"],\n didWarnValDefaultVal = !1,\n needsEscaping = /[\"'&<>\\n\\t]|^\\s|\\s$/,\n specialTags =\n \"address applet area article aside base basefont bgsound blockquote body br button caption center col colgroup dd details dir div dl dt embed fieldset figcaption figure footer form frame frameset h1 h2 h3 h4 h5 h6 head header hgroup hr html iframe img input isindex li link listing main marquee menu menuitem meta nav noembed noframes noscript object ol p param plaintext pre script section select source style summary table tbody td template textarea tfoot th thead title tr track ul wbr xmp\".split(\n \" \"\n ),\n inScopeTags =\n \"applet caption html table td th marquee object template foreignObject desc title\".split(\n \" \"\n ),\n buttonScopeTags = inScopeTags.concat([\"button\"]),\n impliedEndTags = \"dd dt li option optgroup p rp rt\".split(\" \"),\n emptyAncestorInfoDev = {\n current: null,\n formTag: null,\n aTagInScope: null,\n buttonTagInScope: null,\n nobrTagInScope: null,\n pTagInButtonScope: null,\n listItemTagAutoclosing: null,\n dlItemTagAutoclosing: null,\n containerTagInScope: null,\n implicitRootScope: !1\n },\n didWarn = {},\n shorthandToLonghand = {\n animation:\n \"animationDelay animationDirection animationDuration animationFillMode animationIterationCount animationName animationPlayState animationTimingFunction\".split(\n \" \"\n ),\n background:\n \"backgroundAttachment backgroundClip backgroundColor backgroundImage backgroundOrigin backgroundPositionX backgroundPositionY backgroundRepeat backgroundSize\".split(\n \" \"\n ),\n backgroundPosition: [\"backgroundPositionX\", \"backgroundPositionY\"],\n border:\n \"borderBottomColor borderBottomStyle borderBottomWidth borderImageOutset borderImageRepeat borderImageSlice borderImageSource borderImageWidth borderLeftColor borderLeftStyle borderLeftWidth borderRightColor borderRightStyle borderRightWidth borderTopColor borderTopStyle borderTopWidth\".split(\n \" \"\n ),\n borderBlockEnd: [\n \"borderBlockEndColor\",\n \"borderBlockEndStyle\",\n \"borderBlockEndWidth\"\n ],\n borderBlockStart: [\n \"borderBlockStartColor\",\n \"borderBlockStartStyle\",\n \"borderBlockStartWidth\"\n ],\n borderBottom: [\n \"borderBottomColor\",\n \"borderBottomStyle\",\n \"borderBottomWidth\"\n ],\n borderColor: [\n \"borderBottomColor\",\n \"borderLeftColor\",\n \"borderRightColor\",\n \"borderTopColor\"\n ],\n borderImage: [\n \"borderImageOutset\",\n \"borderImageRepeat\",\n \"borderImageSlice\",\n \"borderImageSource\",\n \"borderImageWidth\"\n ],\n borderInlineEnd: [\n \"borderInlineEndColor\",\n \"borderInlineEndStyle\",\n \"borderInlineEndWidth\"\n ],\n borderInlineStart: [\n \"borderInlineStartColor\",\n \"borderInlineStartStyle\",\n \"borderInlineStartWidth\"\n ],\n borderLeft: [\"borderLeftColor\", \"borderLeftStyle\", \"borderLeftWidth\"],\n borderRadius: [\n \"borderBottomLeftRadius\",\n \"borderBottomRightRadius\",\n \"borderTopLeftRadius\",\n \"borderTopRightRadius\"\n ],\n borderRight: [\n \"borderRightColor\",\n \"borderRightStyle\",\n \"borderRightWidth\"\n ],\n borderStyle: [\n \"borderBottomStyle\",\n \"borderLeftStyle\",\n \"borderRightStyle\",\n \"borderTopStyle\"\n ],\n borderTop: [\"borderTopColor\", \"borderTopStyle\", \"borderTopWidth\"],\n borderWidth: [\n \"borderBottomWidth\",\n \"borderLeftWidth\",\n \"borderRightWidth\",\n \"borderTopWidth\"\n ],\n columnRule: [\"columnRuleColor\", \"columnRuleStyle\", \"columnRuleWidth\"],\n columns: [\"columnCount\", \"columnWidth\"],\n flex: [\"flexBasis\", \"flexGrow\", \"flexShrink\"],\n flexFlow: [\"flexDirection\", \"flexWrap\"],\n font: \"fontFamily fontFeatureSettings fontKerning fontLanguageOverride fontSize fontSizeAdjust fontStretch fontStyle fontVariant fontVariantAlternates fontVariantCaps fontVariantEastAsian fontVariantLigatures fontVariantNumeric fontVariantPosition fontWeight lineHeight\".split(\n \" \"\n ),\n fontVariant:\n \"fontVariantAlternates fontVariantCaps fontVariantEastAsian fontVariantLigatures fontVariantNumeric fontVariantPosition\".split(\n \" \"\n ),\n gap: [\"columnGap\", \"rowGap\"],\n grid: \"gridAutoColumns gridAutoFlow gridAutoRows gridTemplateAreas gridTemplateColumns gridTemplateRows\".split(\n \" \"\n ),\n gridArea: [\n \"gridColumnEnd\",\n \"gridColumnStart\",\n \"gridRowEnd\",\n \"gridRowStart\"\n ],\n gridColumn: [\"gridColumnEnd\", \"gridColumnStart\"],\n gridColumnGap: [\"columnGap\"],\n gridGap: [\"columnGap\", \"rowGap\"],\n gridRow: [\"gridRowEnd\", \"gridRowStart\"],\n gridRowGap: [\"rowGap\"],\n gridTemplate: [\n \"gridTemplateAreas\",\n \"gridTemplateColumns\",\n \"gridTemplateRows\"\n ],\n listStyle: [\"listStyleImage\", \"listStylePosition\", \"listStyleType\"],\n margin: [\"marginBottom\", \"marginLeft\", \"marginRight\", \"marginTop\"],\n marker: [\"markerEnd\", \"markerMid\", \"markerStart\"],\n mask: \"maskClip maskComposite maskImage maskMode maskOrigin maskPositionX maskPositionY maskRepeat maskSize\".split(\n \" \"\n ),\n maskPosition: [\"maskPositionX\", \"maskPositionY\"],\n outline: [\"outlineColor\", \"outlineStyle\", \"outlineWidth\"],\n overflow: [\"overflowX\", \"overflowY\"],\n padding: [\"paddingBottom\", \"paddingLeft\", \"paddingRight\", \"paddingTop\"],\n placeContent: [\"alignContent\", \"justifyContent\"],\n placeItems: [\"alignItems\", \"justifyItems\"],\n placeSelf: [\"alignSelf\", \"justifySelf\"],\n textDecoration: [\n \"textDecorationColor\",\n \"textDecorationLine\",\n \"textDecorationStyle\"\n ],\n textEmphasis: [\"textEmphasisColor\", \"textEmphasisStyle\"],\n transition: [\n \"transitionDelay\",\n \"transitionDuration\",\n \"transitionProperty\",\n \"transitionTimingFunction\"\n ],\n wordWrap: [\"overflowWrap\"]\n },\n uppercasePattern = /([A-Z])/g,\n msPattern$1 = /^ms-/,\n badVendoredStyleNamePattern = /^(?:webkit|moz|o)[A-Z]/,\n msPattern = /^-ms-/,\n hyphenPattern = /-(.)/g,\n badStyleValueWithSemicolonPattern = /;\\s*$/,\n warnedStyleNames = {},\n warnedStyleValues = {},\n warnedForNaNValue = !1,\n warnedForInfinityValue = !1,\n unitlessNumbers = new Set(\n \"animationIterationCount aspectRatio borderImageOutset borderImageSlice borderImageWidth boxFlex boxFlexGroup boxOrdinalGroup columnCount columns flex flexGrow flexPositive flexShrink flexNegative flexOrder gridArea gridRow gridRowEnd gridRowSpan gridRowStart gridColumn gridColumnEnd gridColumnSpan gridColumnStart fontWeight lineClamp lineHeight opacity order orphans scale tabSize widows zIndex zoom fillOpacity floodOpacity stopOpacity strokeDasharray strokeDashoffset strokeMiterlimit strokeOpacity strokeWidth MozAnimationIterationCount MozBoxFlex MozBoxFlexGroup MozLineClamp msAnimationIterationCount msFlex msZoom msFlexGrow msFlexNegative msFlexOrder msFlexPositive msFlexShrink msGridColumn msGridColumnSpan msGridRow msGridRowSpan WebkitAnimationIterationCount WebkitBoxFlex WebKitBoxFlexGroup WebkitBoxOrdinalGroup WebkitColumnCount WebkitColumns WebkitFlex WebkitFlexGrow WebkitFlexPositive WebkitFlexShrink WebkitLineClamp\".split(\n \" \"\n )\n ),\n MATH_NAMESPACE = \"http://www.w3.org/1998/Math/MathML\",\n SVG_NAMESPACE = \"http://www.w3.org/2000/svg\",\n aliases = new Map([\n [\"acceptCharset\", \"accept-charset\"],\n [\"htmlFor\", \"for\"],\n [\"httpEquiv\", \"http-equiv\"],\n [\"crossOrigin\", \"crossorigin\"],\n [\"accentHeight\", \"accent-height\"],\n [\"alignmentBaseline\", \"alignment-baseline\"],\n [\"arabicForm\", \"arabic-form\"],\n [\"baselineShift\", \"baseline-shift\"],\n [\"capHeight\", \"cap-height\"],\n [\"clipPath\", \"clip-path\"],\n [\"clipRule\", \"clip-rule\"],\n [\"colorInterpolation\", \"color-interpolation\"],\n [\"colorInterpolationFilters\", \"color-interpolation-filters\"],\n [\"colorProfile\", \"color-profile\"],\n [\"colorRendering\", \"color-rendering\"],\n [\"dominantBaseline\", \"dominant-baseline\"],\n [\"enableBackground\", \"enable-background\"],\n [\"fillOpacity\", \"fill-opacity\"],\n [\"fillRule\", \"fill-rule\"],\n [\"floodColor\", \"flood-color\"],\n [\"floodOpacity\", \"flood-opacity\"],\n [\"fontFamily\", \"font-family\"],\n [\"fontSize\", \"font-size\"],\n [\"fontSizeAdjust\", \"font-size-adjust\"],\n [\"fontStretch\", \"font-stretch\"],\n [\"fontStyle\", \"font-style\"],\n [\"fontVariant\", \"font-variant\"],\n [\"fontWeight\", \"font-weight\"],\n [\"glyphName\", \"glyph-name\"],\n [\"glyphOrientationHorizontal\", \"glyph-orientation-horizontal\"],\n [\"glyphOrientationVertical\", \"glyph-orientation-vertical\"],\n [\"horizAdvX\", \"horiz-adv-x\"],\n [\"horizOriginX\", \"horiz-origin-x\"],\n [\"imageRendering\", \"image-rendering\"],\n [\"letterSpacing\", \"letter-spacing\"],\n [\"lightingColor\", \"lighting-color\"],\n [\"markerEnd\", \"marker-end\"],\n [\"markerMid\", \"marker-mid\"],\n [\"markerStart\", \"marker-start\"],\n [\"overlinePosition\", \"overline-position\"],\n [\"overlineThickness\", \"overline-thickness\"],\n [\"paintOrder\", \"paint-order\"],\n [\"panose-1\", \"panose-1\"],\n [\"pointerEvents\", \"pointer-events\"],\n [\"renderingIntent\", \"rendering-intent\"],\n [\"shapeRendering\", \"shape-rendering\"],\n [\"stopColor\", \"stop-color\"],\n [\"stopOpacity\", \"stop-opacity\"],\n [\"strikethroughPosition\", \"strikethrough-position\"],\n [\"strikethroughThickness\", \"strikethrough-thickness\"],\n [\"strokeDasharray\", \"stroke-dasharray\"],\n [\"strokeDashoffset\", \"stroke-dashoffset\"],\n [\"strokeLinecap\", \"stroke-linecap\"],\n [\"strokeLinejoin\", \"stroke-linejoin\"],\n [\"strokeMiterlimit\", \"stroke-miterlimit\"],\n [\"strokeOpacity\", \"stroke-opacity\"],\n [\"strokeWidth\", \"stroke-width\"],\n [\"textAnchor\", \"text-anchor\"],\n [\"textDecoration\", \"text-decoration\"],\n [\"textRendering\", \"text-rendering\"],\n [\"transformOrigin\", \"transform-origin\"],\n [\"underlinePosition\", \"underline-position\"],\n [\"underlineThickness\", \"underline-thickness\"],\n [\"unicodeBidi\", \"unicode-bidi\"],\n [\"unicodeRange\", \"unicode-range\"],\n [\"unitsPerEm\", \"units-per-em\"],\n [\"vAlphabetic\", \"v-alphabetic\"],\n [\"vHanging\", \"v-hanging\"],\n [\"vIdeographic\", \"v-ideographic\"],\n [\"vMathematical\", \"v-mathematical\"],\n [\"vectorEffect\", \"vector-effect\"],\n [\"vertAdvY\", \"vert-adv-y\"],\n [\"vertOriginX\", \"vert-origin-x\"],\n [\"vertOriginY\", \"vert-origin-y\"],\n [\"wordSpacing\", \"word-spacing\"],\n [\"writingMode\", \"writing-mode\"],\n [\"xmlnsXlink\", \"xmlns:xlink\"],\n [\"xHeight\", \"x-height\"]\n ]),\n possibleStandardNames = {\n accept: \"accept\",\n acceptcharset: \"acceptCharset\",\n \"accept-charset\": \"acceptCharset\",\n accesskey: \"accessKey\",\n action: \"action\",\n allowfullscreen: \"allowFullScreen\",\n alt: \"alt\",\n as: \"as\",\n async: \"async\",\n autocapitalize: \"autoCapitalize\",\n autocomplete: \"autoComplete\",\n autocorrect: \"autoCorrect\",\n autofocus: \"autoFocus\",\n autoplay: \"autoPlay\",\n autosave: \"autoSave\",\n capture: \"capture\",\n cellpadding: \"cellPadding\",\n cellspacing: \"cellSpacing\",\n challenge: \"challenge\",\n charset: \"charSet\",\n checked: \"checked\",\n children: \"children\",\n cite: \"cite\",\n class: \"className\",\n classid: \"classID\",\n classname: \"className\",\n cols: \"cols\",\n colspan: \"colSpan\",\n content: \"content\",\n contenteditable: \"contentEditable\",\n contextmenu: \"contextMenu\",\n controls: \"controls\",\n controlslist: \"controlsList\",\n coords: \"coords\",\n crossorigin: \"crossOrigin\",\n dangerouslysetinnerhtml: \"dangerouslySetInnerHTML\",\n data: \"data\",\n datetime: \"dateTime\",\n default: \"default\",\n defaultchecked: \"defaultChecked\",\n defaultvalue: \"defaultValue\",\n defer: \"defer\",\n dir: \"dir\",\n disabled: \"disabled\",\n disablepictureinpicture: \"disablePictureInPicture\",\n disableremoteplayback: \"disableRemotePlayback\",\n download: \"download\",\n draggable: \"draggable\",\n enctype: \"encType\",\n enterkeyhint: \"enterKeyHint\",\n fetchpriority: \"fetchPriority\",\n for: \"htmlFor\",\n form: \"form\",\n formmethod: \"formMethod\",\n formaction: \"formAction\",\n formenctype: \"formEncType\",\n formnovalidate: \"formNoValidate\",\n formtarget: \"formTarget\",\n frameborder: \"frameBorder\",\n headers: \"headers\",\n height: \"height\",\n hidden: \"hidden\",\n high: \"high\",\n href: \"href\",\n hreflang: \"hrefLang\",\n htmlfor: \"htmlFor\",\n httpequiv: \"httpEquiv\",\n \"http-equiv\": \"httpEquiv\",\n icon: \"icon\",\n id: \"id\",\n imagesizes: \"imageSizes\",\n imagesrcset: \"imageSrcSet\",\n inert: \"inert\",\n innerhtml: \"innerHTML\",\n inputmode: \"inputMode\",\n integrity: \"integrity\",\n is: \"is\",\n itemid: \"itemID\",\n itemprop: \"itemProp\",\n itemref: \"itemRef\",\n itemscope: \"itemScope\",\n itemtype: \"itemType\",\n keyparams: \"keyParams\",\n keytype: \"keyType\",\n kind: \"kind\",\n label: \"label\",\n lang: \"lang\",\n list: \"list\",\n loop: \"loop\",\n low: \"low\",\n manifest: \"manifest\",\n marginwidth: \"marginWidth\",\n marginheight: \"marginHeight\",\n max: \"max\",\n maxlength: \"maxLength\",\n media: \"media\",\n mediagroup: \"mediaGroup\",\n method: \"method\",\n min: \"min\",\n minlength: \"minLength\",\n multiple: \"multiple\",\n muted: \"muted\",\n name: \"name\",\n nomodule: \"noModule\",\n nonce: \"nonce\",\n novalidate: \"noValidate\",\n open: \"open\",\n optimum: \"optimum\",\n pattern: \"pattern\",\n placeholder: \"placeholder\",\n playsinline: \"playsInline\",\n poster: \"poster\",\n preload: \"preload\",\n profile: \"profile\",\n radiogroup: \"radioGroup\",\n readonly: \"readOnly\",\n referrerpolicy: \"referrerPolicy\",\n rel: \"rel\",\n required: \"required\",\n reversed: \"reversed\",\n role: \"role\",\n rows: \"rows\",\n rowspan: \"rowSpan\",\n sandbox: \"sandbox\",\n scope: \"scope\",\n scoped: \"scoped\",\n scrolling: \"scrolling\",\n seamless: \"seamless\",\n selected: \"selected\",\n shape: \"shape\",\n size: \"size\",\n sizes: \"sizes\",\n span: \"span\",\n spellcheck: \"spellCheck\",\n src: \"src\",\n srcdoc: \"srcDoc\",\n srclang: \"srcLang\",\n srcset: \"srcSet\",\n start: \"start\",\n step: \"step\",\n style: \"style\",\n summary: \"summary\",\n tabindex: \"tabIndex\",\n target: \"target\",\n title: \"title\",\n type: \"type\",\n usemap: \"useMap\",\n value: \"value\",\n width: \"width\",\n wmode: \"wmode\",\n wrap: \"wrap\",\n about: \"about\",\n accentheight: \"accentHeight\",\n \"accent-height\": \"accentHeight\",\n accumulate: \"accumulate\",\n additive: \"additive\",\n alignmentbaseline: \"alignmentBaseline\",\n \"alignment-baseline\": \"alignmentBaseline\",\n allowreorder: \"allowReorder\",\n alphabetic: \"alphabetic\",\n amplitude: \"amplitude\",\n arabicform: \"arabicForm\",\n \"arabic-form\": \"arabicForm\",\n ascent: \"ascent\",\n attributename: \"attributeName\",\n attributetype: \"attributeType\",\n autoreverse: \"autoReverse\",\n azimuth: \"azimuth\",\n basefrequency: \"baseFrequency\",\n baselineshift: \"baselineShift\",\n \"baseline-shift\": \"baselineShift\",\n baseprofile: \"baseProfile\",\n bbox: \"bbox\",\n begin: \"begin\",\n bias: \"bias\",\n by: \"by\",\n calcmode: \"calcMode\",\n capheight: \"capHeight\",\n \"cap-height\": \"capHeight\",\n clip: \"clip\",\n clippath: \"clipPath\",\n \"clip-path\": \"clipPath\",\n clippathunits: \"clipPathUnits\",\n cliprule: \"clipRule\",\n \"clip-rule\": \"clipRule\",\n color: \"color\",\n colorinterpolation: \"colorInterpolation\",\n \"color-interpolation\": \"colorInterpolation\",\n colorinterpolationfilters: \"colorInterpolationFilters\",\n \"color-interpolation-filters\": \"colorInterpolationFilters\",\n colorprofile: \"colorProfile\",\n \"color-profile\": \"colorProfile\",\n colorrendering: \"colorRendering\",\n \"color-rendering\": \"colorRendering\",\n contentscripttype: \"contentScriptType\",\n contentstyletype: \"contentStyleType\",\n cursor: \"cursor\",\n cx: \"cx\",\n cy: \"cy\",\n d: \"d\",\n datatype: \"datatype\",\n decelerate: \"decelerate\",\n descent: \"descent\",\n diffuseconstant: \"diffuseConstant\",\n direction: \"direction\",\n display: \"display\",\n divisor: \"divisor\",\n dominantbaseline: \"dominantBaseline\",\n \"dominant-baseline\": \"dominantBaseline\",\n dur: \"dur\",\n dx: \"dx\",\n dy: \"dy\",\n edgemode: \"edgeMode\",\n elevation: \"elevation\",\n enablebackground: \"enableBackground\",\n \"enable-background\": \"enableBackground\",\n end: \"end\",\n exponent: \"exponent\",\n externalresourcesrequired: \"externalResourcesRequired\",\n fill: \"fill\",\n fillopacity: \"fillOpacity\",\n \"fill-opacity\": \"fillOpacity\",\n fillrule: \"fillRule\",\n \"fill-rule\": \"fillRule\",\n filter: \"filter\",\n filterres: \"filterRes\",\n filterunits: \"filterUnits\",\n floodopacity: \"floodOpacity\",\n \"flood-opacity\": \"floodOpacity\",\n floodcolor: \"floodColor\",\n \"flood-color\": \"floodColor\",\n focusable: \"focusable\",\n fontfamily: \"fontFamily\",\n \"font-family\": \"fontFamily\",\n fontsize: \"fontSize\",\n \"font-size\": \"fontSize\",\n fontsizeadjust: \"fontSizeAdjust\",\n \"font-size-adjust\": \"fontSizeAdjust\",\n fontstretch: \"fontStretch\",\n \"font-stretch\": \"fontStretch\",\n fontstyle: \"fontStyle\",\n \"font-style\": \"fontStyle\",\n fontvariant: \"fontVariant\",\n \"font-variant\": \"fontVariant\",\n fontweight: \"fontWeight\",\n \"font-weight\": \"fontWeight\",\n format: \"format\",\n from: \"from\",\n fx: \"fx\",\n fy: \"fy\",\n g1: \"g1\",\n g2: \"g2\",\n glyphname: \"glyphName\",\n \"glyph-name\": \"glyphName\",\n glyphorientationhorizontal: \"glyphOrientationHorizontal\",\n \"glyph-orientation-horizontal\": \"glyphOrientationHorizontal\",\n glyphorientationvertical: \"glyphOrientationVertical\",\n \"glyph-orientation-vertical\": \"glyphOrientationVertical\",\n glyphref: \"glyphRef\",\n gradienttransform: \"gradientTransform\",\n gradientunits: \"gradientUnits\",\n hanging: \"hanging\",\n horizadvx: \"horizAdvX\",\n \"horiz-adv-x\": \"horizAdvX\",\n horizoriginx: \"horizOriginX\",\n \"horiz-origin-x\": \"horizOriginX\",\n ideographic: \"ideographic\",\n imagerendering: \"imageRendering\",\n \"image-rendering\": \"imageRendering\",\n in2: \"in2\",\n in: \"in\",\n inlist: \"inlist\",\n intercept: \"intercept\",\n k1: \"k1\",\n k2: \"k2\",\n k3: \"k3\",\n k4: \"k4\",\n k: \"k\",\n kernelmatrix: \"kernelMatrix\",\n kernelunitlength: \"kernelUnitLength\",\n kerning: \"kerning\",\n keypoints: \"keyPoints\",\n keysplines: \"keySplines\",\n keytimes: \"keyTimes\",\n lengthadjust: \"lengthAdjust\",\n letterspacing: \"letterSpacing\",\n \"letter-spacing\": \"letterSpacing\",\n lightingcolor: \"lightingColor\",\n \"lighting-color\": \"lightingColor\",\n limitingconeangle: \"limitingConeAngle\",\n local: \"local\",\n markerend: \"markerEnd\",\n \"marker-end\": \"markerEnd\",\n markerheight: \"markerHeight\",\n markermid: \"markerMid\",\n \"marker-mid\": \"markerMid\",\n markerstart: \"markerStart\",\n \"marker-start\": \"markerStart\",\n markerunits: \"markerUnits\",\n markerwidth: \"markerWidth\",\n mask: \"mask\",\n maskcontentunits: \"maskContentUnits\",\n maskunits: \"maskUnits\",\n mathematical: \"mathematical\",\n mode: \"mode\",\n numoctaves: \"numOctaves\",\n offset: \"offset\",\n opacity: \"opacity\",\n operator: \"operator\",\n order: \"order\",\n orient: \"orient\",\n orientation: \"orientation\",\n origin: \"origin\",\n overflow: \"overflow\",\n overlineposition: \"overlinePosition\",\n \"overline-position\": \"overlinePosition\",\n overlinethickness: \"overlineThickness\",\n \"overline-thickness\": \"overlineThickness\",\n paintorder: \"paintOrder\",\n \"paint-order\": \"paintOrder\",\n panose1: \"panose1\",\n \"panose-1\": \"panose1\",\n pathlength: \"pathLength\",\n patterncontentunits: \"patternContentUnits\",\n patterntransform: \"patternTransform\",\n patternunits: \"patternUnits\",\n pointerevents: \"pointerEvents\",\n \"pointer-events\": \"pointerEvents\",\n points: \"points\",\n pointsatx: \"pointsAtX\",\n pointsaty: \"pointsAtY\",\n pointsatz: \"pointsAtZ\",\n popover: \"popover\",\n popovertarget: \"popoverTarget\",\n popovertargetaction: \"popoverTargetAction\",\n prefix: \"prefix\",\n preservealpha: \"preserveAlpha\",\n preserveaspectratio: \"preserveAspectRatio\",\n primitiveunits: \"primitiveUnits\",\n property: \"property\",\n r: \"r\",\n radius: \"radius\",\n refx: \"refX\",\n refy: \"refY\",\n renderingintent: \"renderingIntent\",\n \"rendering-intent\": \"renderingIntent\",\n repeatcount: \"repeatCount\",\n repeatdur: \"repeatDur\",\n requiredextensions: \"requiredExtensions\",\n requiredfeatures: \"requiredFeatures\",\n resource: \"resource\",\n restart: \"restart\",\n result: \"result\",\n results: \"results\",\n rotate: \"rotate\",\n rx: \"rx\",\n ry: \"ry\",\n scale: \"scale\",\n security: \"security\",\n seed: \"seed\",\n shaperendering: \"shapeRendering\",\n \"shape-rendering\": \"shapeRendering\",\n slope: \"slope\",\n spacing: \"spacing\",\n specularconstant: \"specularConstant\",\n specularexponent: \"specularExponent\",\n speed: \"speed\",\n spreadmethod: \"spreadMethod\",\n startoffset: \"startOffset\",\n stddeviation: \"stdDeviation\",\n stemh: \"stemh\",\n stemv: \"stemv\",\n stitchtiles: \"stitchTiles\",\n stopcolor: \"stopColor\",\n \"stop-color\": \"stopColor\",\n stopopacity: \"stopOpacity\",\n \"stop-opacity\": \"stopOpacity\",\n strikethroughposition: \"strikethroughPosition\",\n \"strikethrough-position\": \"strikethroughPosition\",\n strikethroughthickness: \"strikethroughThickness\",\n \"strikethrough-thickness\": \"strikethroughThickness\",\n string: \"string\",\n stroke: \"stroke\",\n strokedasharray: \"strokeDasharray\",\n \"stroke-dasharray\": \"strokeDasharray\",\n strokedashoffset: \"strokeDashoffset\",\n \"stroke-dashoffset\": \"strokeDashoffset\",\n strokelinecap: \"strokeLinecap\",\n \"stroke-linecap\": \"strokeLinecap\",\n strokelinejoin: \"strokeLinejoin\",\n \"stroke-linejoin\": \"strokeLinejoin\",\n strokemiterlimit: \"strokeMiterlimit\",\n \"stroke-miterlimit\": \"strokeMiterlimit\",\n strokewidth: \"strokeWidth\",\n \"stroke-width\": \"strokeWidth\",\n strokeopacity: \"strokeOpacity\",\n \"stroke-opacity\": \"strokeOpacity\",\n suppresscontenteditablewarning: \"suppressContentEditableWarning\",\n suppresshydrationwarning: \"suppressHydrationWarning\",\n surfacescale: \"surfaceScale\",\n systemlanguage: \"systemLanguage\",\n tablevalues: \"tableValues\",\n targetx: \"targetX\",\n targety: \"targetY\",\n textanchor: \"textAnchor\",\n \"text-anchor\": \"textAnchor\",\n textdecoration: \"textDecoration\",\n \"text-decoration\": \"textDecoration\",\n textlength: \"textLength\",\n textrendering: \"textRendering\",\n \"text-rendering\": \"textRendering\",\n to: \"to\",\n transform: \"transform\",\n transformorigin: \"transformOrigin\",\n \"transform-origin\": \"transformOrigin\",\n typeof: \"typeof\",\n u1: \"u1\",\n u2: \"u2\",\n underlineposition: \"underlinePosition\",\n \"underline-position\": \"underlinePosition\",\n underlinethickness: \"underlineThickness\",\n \"underline-thickness\": \"underlineThickness\",\n unicode: \"unicode\",\n unicodebidi: \"unicodeBidi\",\n \"unicode-bidi\": \"unicodeBidi\",\n unicoderange: \"unicodeRange\",\n \"unicode-range\": \"unicodeRange\",\n unitsperem: \"unitsPerEm\",\n \"units-per-em\": \"unitsPerEm\",\n unselectable: \"unselectable\",\n valphabetic: \"vAlphabetic\",\n \"v-alphabetic\": \"vAlphabetic\",\n values: \"values\",\n vectoreffect: \"vectorEffect\",\n \"vector-effect\": \"vectorEffect\",\n version: \"version\",\n vertadvy: \"vertAdvY\",\n \"vert-adv-y\": \"vertAdvY\",\n vertoriginx: \"vertOriginX\",\n \"vert-origin-x\": \"vertOriginX\",\n vertoriginy: \"vertOriginY\",\n \"vert-origin-y\": \"vertOriginY\",\n vhanging: \"vHanging\",\n \"v-hanging\": \"vHanging\",\n videographic: \"vIdeographic\",\n \"v-ideographic\": \"vIdeographic\",\n viewbox: \"viewBox\",\n viewtarget: \"viewTarget\",\n visibility: \"visibility\",\n vmathematical: \"vMathematical\",\n \"v-mathematical\": \"vMathematical\",\n vocab: \"vocab\",\n widths: \"widths\",\n wordspacing: \"wordSpacing\",\n \"word-spacing\": \"wordSpacing\",\n writingmode: \"writingMode\",\n \"writing-mode\": \"writingMode\",\n x1: \"x1\",\n x2: \"x2\",\n x: \"x\",\n xchannelselector: \"xChannelSelector\",\n xheight: \"xHeight\",\n \"x-height\": \"xHeight\",\n xlinkactuate: \"xlinkActuate\",\n \"xlink:actuate\": \"xlinkActuate\",\n xlinkarcrole: \"xlinkArcrole\",\n \"xlink:arcrole\": \"xlinkArcrole\",\n xlinkhref: \"xlinkHref\",\n \"xlink:href\": \"xlinkHref\",\n xlinkrole: \"xlinkRole\",\n \"xlink:role\": \"xlinkRole\",\n xlinkshow: \"xlinkShow\",\n \"xlink:show\": \"xlinkShow\",\n xlinktitle: \"xlinkTitle\",\n \"xlink:title\": \"xlinkTitle\",\n xlinktype: \"xlinkType\",\n \"xlink:type\": \"xlinkType\",\n xmlbase: \"xmlBase\",\n \"xml:base\": \"xmlBase\",\n xmllang: \"xmlLang\",\n \"xml:lang\": \"xmlLang\",\n xmlns: \"xmlns\",\n \"xml:space\": \"xmlSpace\",\n xmlnsxlink: \"xmlnsXlink\",\n \"xmlns:xlink\": \"xmlnsXlink\",\n xmlspace: \"xmlSpace\",\n y1: \"y1\",\n y2: \"y2\",\n y: \"y\",\n ychannelselector: \"yChannelSelector\",\n z: \"z\",\n zoomandpan: \"zoomAndPan\"\n },\n ariaProperties = {\n \"aria-current\": 0,\n \"aria-description\": 0,\n \"aria-details\": 0,\n \"aria-disabled\": 0,\n \"aria-hidden\": 0,\n \"aria-invalid\": 0,\n \"aria-keyshortcuts\": 0,\n \"aria-label\": 0,\n \"aria-roledescription\": 0,\n \"aria-autocomplete\": 0,\n \"aria-checked\": 0,\n \"aria-expanded\": 0,\n \"aria-haspopup\": 0,\n \"aria-level\": 0,\n \"aria-modal\": 0,\n \"aria-multiline\": 0,\n \"aria-multiselectable\": 0,\n \"aria-orientation\": 0,\n \"aria-placeholder\": 0,\n \"aria-pressed\": 0,\n \"aria-readonly\": 0,\n \"aria-required\": 0,\n \"aria-selected\": 0,\n \"aria-sort\": 0,\n \"aria-valuemax\": 0,\n \"aria-valuemin\": 0,\n \"aria-valuenow\": 0,\n \"aria-valuetext\": 0,\n \"aria-atomic\": 0,\n \"aria-busy\": 0,\n \"aria-live\": 0,\n \"aria-relevant\": 0,\n \"aria-dropeffect\": 0,\n \"aria-grabbed\": 0,\n \"aria-activedescendant\": 0,\n \"aria-colcount\": 0,\n \"aria-colindex\": 0,\n \"aria-colspan\": 0,\n \"aria-controls\": 0,\n \"aria-describedby\": 0,\n \"aria-errormessage\": 0,\n \"aria-flowto\": 0,\n \"aria-labelledby\": 0,\n \"aria-owns\": 0,\n \"aria-posinset\": 0,\n \"aria-rowcount\": 0,\n \"aria-rowindex\": 0,\n \"aria-rowspan\": 0,\n \"aria-setsize\": 0\n },\n warnedProperties$1 = {},\n rARIA$1 = RegExp(\n \"^(aria)-[:A-Z_a-z\\\\u00C0-\\\\u00D6\\\\u00D8-\\\\u00F6\\\\u00F8-\\\\u02FF\\\\u0370-\\\\u037D\\\\u037F-\\\\u1FFF\\\\u200C-\\\\u200D\\\\u2070-\\\\u218F\\\\u2C00-\\\\u2FEF\\\\u3001-\\\\uD7FF\\\\uF900-\\\\uFDCF\\\\uFDF0-\\\\uFFFD\\\\-.0-9\\\\u00B7\\\\u0300-\\\\u036F\\\\u203F-\\\\u2040]*$\"\n ),\n rARIACamel$1 = RegExp(\n \"^(aria)[A-Z][:A-Z_a-z\\\\u00C0-\\\\u00D6\\\\u00D8-\\\\u00F6\\\\u00F8-\\\\u02FF\\\\u0370-\\\\u037D\\\\u037F-\\\\u1FFF\\\\u200C-\\\\u200D\\\\u2070-\\\\u218F\\\\u2C00-\\\\u2FEF\\\\u3001-\\\\uD7FF\\\\uF900-\\\\uFDCF\\\\uFDF0-\\\\uFFFD\\\\-.0-9\\\\u00B7\\\\u0300-\\\\u036F\\\\u203F-\\\\u2040]*$\"\n ),\n didWarnValueNull = !1,\n warnedProperties = {},\n EVENT_NAME_REGEX = /^on./,\n INVALID_EVENT_NAME_REGEX = /^on[^A-Z]/,\n rARIA = RegExp(\n \"^(aria)-[:A-Z_a-z\\\\u00C0-\\\\u00D6\\\\u00D8-\\\\u00F6\\\\u00F8-\\\\u02FF\\\\u0370-\\\\u037D\\\\u037F-\\\\u1FFF\\\\u200C-\\\\u200D\\\\u2070-\\\\u218F\\\\u2C00-\\\\u2FEF\\\\u3001-\\\\uD7FF\\\\uF900-\\\\uFDCF\\\\uFDF0-\\\\uFFFD\\\\-.0-9\\\\u00B7\\\\u0300-\\\\u036F\\\\u203F-\\\\u2040]*$\"\n ),\n rARIACamel = RegExp(\n \"^(aria)[A-Z][:A-Z_a-z\\\\u00C0-\\\\u00D6\\\\u00D8-\\\\u00F6\\\\u00F8-\\\\u02FF\\\\u0370-\\\\u037D\\\\u037F-\\\\u1FFF\\\\u200C-\\\\u200D\\\\u2070-\\\\u218F\\\\u2C00-\\\\u2FEF\\\\u3001-\\\\uD7FF\\\\uF900-\\\\uFDCF\\\\uFDF0-\\\\uFFFD\\\\-.0-9\\\\u00B7\\\\u0300-\\\\u036F\\\\u203F-\\\\u2040]*$\"\n ),\n isJavaScriptProtocol =\n /^[\\u0000-\\u001F ]*j[\\r\\n\\t]*a[\\r\\n\\t]*v[\\r\\n\\t]*a[\\r\\n\\t]*s[\\r\\n\\t]*c[\\r\\n\\t]*r[\\r\\n\\t]*i[\\r\\n\\t]*p[\\r\\n\\t]*t[\\r\\n\\t]*:/i,\n currentReplayingEvent = null,\n restoreTarget = null,\n restoreQueue = null,\n isInsideEventHandler = !1,\n canUseDOM = !(\n \"undefined\" === typeof window ||\n \"undefined\" === typeof window.document ||\n \"undefined\" === typeof window.document.createElement\n ),\n passiveBrowserEventsSupported = !1;\n if (canUseDOM)\n try {\n var options$jscomp$0 = {};\n Object.defineProperty(options$jscomp$0, \"passive\", {\n get: function () {\n passiveBrowserEventsSupported = !0;\n }\n });\n window.addEventListener(\"test\", options$jscomp$0, options$jscomp$0);\n window.removeEventListener(\"test\", options$jscomp$0, options$jscomp$0);\n } catch (e) {\n passiveBrowserEventsSupported = !1;\n }\n var root = null,\n startText = null,\n fallbackText = null,\n EventInterface = {\n eventPhase: 0,\n bubbles: 0,\n cancelable: 0,\n timeStamp: function (event) {\n return event.timeStamp || Date.now();\n },\n defaultPrevented: 0,\n isTrusted: 0\n },\n SyntheticEvent = createSyntheticEvent(EventInterface),\n UIEventInterface = assign({}, EventInterface, { view: 0, detail: 0 }),\n SyntheticUIEvent = createSyntheticEvent(UIEventInterface),\n lastMovementX,\n lastMovementY,\n lastMouseEvent,\n MouseEventInterface = assign({}, UIEventInterface, {\n screenX: 0,\n screenY: 0,\n clientX: 0,\n clientY: 0,\n pageX: 0,\n pageY: 0,\n ctrlKey: 0,\n shiftKey: 0,\n altKey: 0,\n metaKey: 0,\n getModifierState: getEventModifierState,\n button: 0,\n buttons: 0,\n relatedTarget: function (event) {\n return void 0 === event.relatedTarget\n ? event.fromElement === event.srcElement\n ? event.toElement\n : event.fromElement\n : event.relatedTarget;\n },\n movementX: function (event) {\n if (\"movementX\" in event) return event.movementX;\n event !== lastMouseEvent &&\n (lastMouseEvent && \"mousemove\" === event.type\n ? ((lastMovementX = event.screenX - lastMouseEvent.screenX),\n (lastMovementY = event.screenY - lastMouseEvent.screenY))\n : (lastMovementY = lastMovementX = 0),\n (lastMouseEvent = event));\n return lastMovementX;\n },\n movementY: function (event) {\n return \"movementY\" in event ? event.movementY : lastMovementY;\n }\n }),\n SyntheticMouseEvent = createSyntheticEvent(MouseEventInterface),\n DragEventInterface = assign({}, MouseEventInterface, { dataTransfer: 0 }),\n SyntheticDragEvent = createSyntheticEvent(DragEventInterface),\n FocusEventInterface = assign({}, UIEventInterface, { relatedTarget: 0 }),\n SyntheticFocusEvent = createSyntheticEvent(FocusEventInterface),\n AnimationEventInterface = assign({}, EventInterface, {\n animationName: 0,\n elapsedTime: 0,\n pseudoElement: 0\n }),\n SyntheticAnimationEvent = createSyntheticEvent(AnimationEventInterface),\n ClipboardEventInterface = assign({}, EventInterface, {\n clipboardData: function (event) {\n return \"clipboardData\" in event\n ? event.clipboardData\n : window.clipboardData;\n }\n }),\n SyntheticClipboardEvent = createSyntheticEvent(ClipboardEventInterface),\n CompositionEventInterface = assign({}, EventInterface, { data: 0 }),\n SyntheticCompositionEvent = createSyntheticEvent(\n CompositionEventInterface\n ),\n SyntheticInputEvent = SyntheticCompositionEvent,\n normalizeKey = {\n Esc: \"Escape\",\n Spacebar: \" \",\n Left: \"ArrowLeft\",\n Up: \"ArrowUp\",\n Right: \"ArrowRight\",\n Down: \"ArrowDown\",\n Del: \"Delete\",\n Win: \"OS\",\n Menu: \"ContextMenu\",\n Apps: \"ContextMenu\",\n Scroll: \"ScrollLock\",\n MozPrintableKey: \"Unidentified\"\n },\n translateToKey = {\n 8: \"Backspace\",\n 9: \"Tab\",\n 12: \"Clear\",\n 13: \"Enter\",\n 16: \"Shift\",\n 17: \"Control\",\n 18: \"Alt\",\n 19: \"Pause\",\n 20: \"CapsLock\",\n 27: \"Escape\",\n 32: \" \",\n 33: \"PageUp\",\n 34: \"PageDown\",\n 35: \"End\",\n 36: \"Home\",\n 37: \"ArrowLeft\",\n 38: \"ArrowUp\",\n 39: \"ArrowRight\",\n 40: \"ArrowDown\",\n 45: \"Insert\",\n 46: \"Delete\",\n 112: \"F1\",\n 113: \"F2\",\n 114: \"F3\",\n 115: \"F4\",\n 116: \"F5\",\n 117: \"F6\",\n 118: \"F7\",\n 119: \"F8\",\n 120: \"F9\",\n 121: \"F10\",\n 122: \"F11\",\n 123: \"F12\",\n 144: \"NumLock\",\n 145: \"ScrollLock\",\n 224: \"Meta\"\n },\n modifierKeyToProp = {\n Alt: \"altKey\",\n Control: \"ctrlKey\",\n Meta: \"metaKey\",\n Shift: \"shiftKey\"\n },\n KeyboardEventInterface = assign({}, UIEventInterface, {\n key: function (nativeEvent) {\n if (nativeEvent.key) {\n var key = normalizeKey[nativeEvent.key] || nativeEvent.key;\n if (\"Unidentified\" !== key) return key;\n }\n return \"keypress\" === nativeEvent.type\n ? ((nativeEvent = getEventCharCode(nativeEvent)),\n 13 === nativeEvent ? \"Enter\" : String.fromCharCode(nativeEvent))\n : \"keydown\" === nativeEvent.type || \"keyup\" === nativeEvent.type\n ? translateToKey[nativeEvent.keyCode] || \"Unidentified\"\n : \"\";\n },\n code: 0,\n location: 0,\n ctrlKey: 0,\n shiftKey: 0,\n altKey: 0,\n metaKey: 0,\n repeat: 0,\n locale: 0,\n getModifierState: getEventModifierState,\n charCode: function (event) {\n return \"keypress\" === event.type ? getEventCharCode(event) : 0;\n },\n keyCode: function (event) {\n return \"keydown\" === event.type || \"keyup\" === event.type\n ? event.keyCode\n : 0;\n },\n which: function (event) {\n return \"keypress\" === event.type\n ? getEventCharCode(event)\n : \"keydown\" === event.type || \"keyup\" === event.type\n ? event.keyCode\n : 0;\n }\n }),\n SyntheticKeyboardEvent = createSyntheticEvent(KeyboardEventInterface),\n PointerEventInterface = assign({}, MouseEventInterface, {\n pointerId: 0,\n width: 0,\n height: 0,\n pressure: 0,\n tangentialPressure: 0,\n tiltX: 0,\n tiltY: 0,\n twist: 0,\n pointerType: 0,\n isPrimary: 0\n }),\n SyntheticPointerEvent = createSyntheticEvent(PointerEventInterface),\n TouchEventInterface = assign({}, UIEventInterface, {\n touches: 0,\n targetTouches: 0,\n changedTouches: 0,\n altKey: 0,\n metaKey: 0,\n ctrlKey: 0,\n shiftKey: 0,\n getModifierState: getEventModifierState\n }),\n SyntheticTouchEvent = createSyntheticEvent(TouchEventInterface),\n TransitionEventInterface = assign({}, EventInterface, {\n propertyName: 0,\n elapsedTime: 0,\n pseudoElement: 0\n }),\n SyntheticTransitionEvent = createSyntheticEvent(TransitionEventInterface),\n WheelEventInterface = assign({}, MouseEventInterface, {\n deltaX: function (event) {\n return \"deltaX\" in event\n ? event.deltaX\n : \"wheelDeltaX\" in event\n ? -event.wheelDeltaX\n : 0;\n },\n deltaY: function (event) {\n return \"deltaY\" in event\n ? event.deltaY\n : \"wheelDeltaY\" in event\n ? -event.wheelDeltaY\n : \"wheelDelta\" in event\n ? -event.wheelDelta\n : 0;\n },\n deltaZ: 0,\n deltaMode: 0\n }),\n SyntheticWheelEvent = createSyntheticEvent(WheelEventInterface),\n ToggleEventInterface = assign({}, EventInterface, {\n newState: 0,\n oldState: 0\n }),\n SyntheticToggleEvent = createSyntheticEvent(ToggleEventInterface),\n END_KEYCODES = [9, 13, 27, 32],\n START_KEYCODE = 229,\n canUseCompositionEvent = canUseDOM && \"CompositionEvent\" in window,\n documentMode = null;\n canUseDOM &&\n \"documentMode\" in document &&\n (documentMode = document.documentMode);\n var canUseTextInputEvent =\n canUseDOM && \"TextEvent\" in window && !documentMode,\n useFallbackCompositionData =\n canUseDOM &&\n (!canUseCompositionEvent ||\n (documentMode && 8 < documentMode && 11 >= documentMode)),\n SPACEBAR_CODE = 32,\n SPACEBAR_CHAR = String.fromCharCode(SPACEBAR_CODE),\n hasSpaceKeypress = !1,\n isComposing = !1,\n supportedInputTypes = {\n color: !0,\n date: !0,\n datetime: !0,\n \"datetime-local\": !0,\n email: !0,\n month: !0,\n number: !0,\n password: !0,\n range: !0,\n search: !0,\n tel: !0,\n text: !0,\n time: !0,\n url: !0,\n week: !0\n },\n activeElement$1 = null,\n activeElementInst$1 = null,\n isInputEventSupported = !1;\n canUseDOM &&\n (isInputEventSupported =\n isEventSupported(\"input\") &&\n (!document.documentMode || 9 < document.documentMode));\n var objectIs = \"function\" === typeof Object.is ? Object.is : is,\n skipSelectionChangeEvent =\n canUseDOM && \"documentMode\" in document && 11 >= document.documentMode,\n activeElement = null,\n activeElementInst = null,\n lastSelection = null,\n mouseDown = !1,\n vendorPrefixes = {\n animationend: makePrefixMap(\"Animation\", \"AnimationEnd\"),\n animationiteration: makePrefixMap(\"Animation\", \"AnimationIteration\"),\n animationstart: makePrefixMap(\"Animation\", \"AnimationStart\"),\n transitionrun: makePrefixMap(\"Transition\", \"TransitionRun\"),\n transitionstart: makePrefixMap(\"Transition\", \"TransitionStart\"),\n transitioncancel: makePrefixMap(\"Transition\", \"TransitionCancel\"),\n transitionend: makePrefixMap(\"Transition\", \"TransitionEnd\")\n },\n prefixedEventNames = {},\n style = {};\n canUseDOM &&\n ((style = document.createElement(\"div\").style),\n \"AnimationEvent\" in window ||\n (delete vendorPrefixes.animationend.animation,\n delete vendorPrefixes.animationiteration.animation,\n delete vendorPrefixes.animationstart.animation),\n \"TransitionEvent\" in window ||\n delete vendorPrefixes.transitionend.transition);\n var ANIMATION_END = getVendorPrefixedEventName(\"animationend\"),\n ANIMATION_ITERATION = getVendorPrefixedEventName(\"animationiteration\"),\n ANIMATION_START = getVendorPrefixedEventName(\"animationstart\"),\n TRANSITION_RUN = getVendorPrefixedEventName(\"transitionrun\"),\n TRANSITION_START = getVendorPrefixedEventName(\"transitionstart\"),\n TRANSITION_CANCEL = getVendorPrefixedEventName(\"transitioncancel\"),\n TRANSITION_END = getVendorPrefixedEventName(\"transitionend\"),\n topLevelEventsToReactNames = new Map(),\n simpleEventPluginEvents =\n \"abort auxClick beforeToggle cancel canPlay canPlayThrough click close contextMenu copy cut drag dragEnd dragEnter dragExit dragLeave dragOver dragStart drop durationChange emptied encrypted ended error gotPointerCapture input invalid keyDown keyPress keyUp load loadedData loadedMetadata loadStart lostPointerCapture mouseDown mouseMove mouseOut mouseOver mouseUp paste pause play playing pointerCancel pointerDown pointerMove pointerOut pointerOver pointerUp progress rateChange reset resize seeked seeking stalled submit suspend timeUpdate touchCancel touchEnd touchStart volumeChange scroll toggle touchMove waiting wheel\".split(\n \" \"\n );\n simpleEventPluginEvents.push(\"scrollEnd\");\n var CapturedStacks = new WeakMap(),\n OffscreenVisible = 1,\n OffscreenPassiveEffectsConnected = 2,\n concurrentQueues = [],\n concurrentQueuesIndex = 0,\n concurrentlyUpdatedLanes = 0,\n emptyContextObject = {};\n Object.freeze(emptyContextObject);\n var resolveFamily = null,\n failedBoundaries = null,\n NoMode = 0,\n ConcurrentMode = 1,\n ProfileMode = 2,\n StrictLegacyMode = 8,\n StrictEffectsMode = 16,\n NoStrictPassiveEffectsMode = 64;\n var hasBadMapPolyfill = !1;\n try {\n var nonExtensibleObject = Object.preventExtensions({});\n new Map([[nonExtensibleObject, null]]);\n new Set([nonExtensibleObject]);\n } catch (e$3) {\n hasBadMapPolyfill = !0;\n }\n var forkStack = [],\n forkStackIndex = 0,\n treeForkProvider = null,\n treeForkCount = 0,\n idStack = [],\n idStackIndex = 0,\n treeContextProvider = null,\n treeContextId = 1,\n treeContextOverflow = \"\",\n hydrationParentFiber = null,\n nextHydratableInstance = null,\n isHydrating = !1,\n didSuspendOrErrorDEV = !1,\n hydrationDiffRootDEV = null,\n hydrationErrors = null,\n rootOrSingletonContext = !1,\n HydrationMismatchException = Error(\n \"Hydration Mismatch Exception: This is not a real error, and should not leak into userspace. If you're seeing this, it's likely a bug in React.\"\n ),\n lastResetTime = 0;\n if (\n \"object\" === typeof performance &&\n \"function\" === typeof performance.now\n ) {\n var localPerformance = performance;\n var getCurrentTime = function () {\n return localPerformance.now();\n };\n } else {\n var localDate = Date;\n getCurrentTime = function () {\n return localDate.now();\n };\n }\n var valueCursor = createCursor(null);\n var rendererCursorDEV = createCursor(null);\n var rendererSigil = {};\n var currentlyRenderingFiber$1 = null,\n lastContextDependency = null,\n isDisallowedContextReadInDEV = !1,\n AbortControllerLocal =\n \"undefined\" !== typeof AbortController\n ? AbortController\n : function () {\n var listeners = [],\n signal = (this.signal = {\n aborted: !1,\n addEventListener: function (type, listener) {\n listeners.push(listener);\n }\n });\n this.abort = function () {\n signal.aborted = !0;\n listeners.forEach(function (listener) {\n return listener();\n });\n };\n },\n scheduleCallback$2 = Scheduler.unstable_scheduleCallback,\n NormalPriority = Scheduler.unstable_NormalPriority,\n CacheContext = {\n $$typeof: REACT_CONTEXT_TYPE,\n Consumer: null,\n Provider: null,\n _currentValue: null,\n _currentValue2: null,\n _threadCount: 0,\n _currentRenderer: null,\n _currentRenderer2: null\n },\n now = Scheduler.unstable_now,\n renderStartTime = -0,\n commitStartTime = -0,\n profilerStartTime = -1.1,\n profilerEffectDuration = -0,\n currentUpdateIsNested = !1,\n nestedUpdateScheduled = !1,\n currentEntangledListeners = null,\n currentEntangledPendingCount = 0,\n currentEntangledLane = 0,\n currentEntangledActionThenable = null,\n prevOnStartTransitionFinish = ReactSharedInternals.S;\n ReactSharedInternals.S = function (transition, returnValue) {\n \"object\" === typeof returnValue &&\n null !== returnValue &&\n \"function\" === typeof returnValue.then &&\n entangleAsyncAction(transition, returnValue);\n null !== prevOnStartTransitionFinish &&\n prevOnStartTransitionFinish(transition, returnValue);\n };\n var resumedCache = createCursor(null),\n ReactStrictModeWarnings = {\n recordUnsafeLifecycleWarnings: function () {},\n flushPendingUnsafeLifecycleWarnings: function () {},\n recordLegacyContextWarning: function () {},\n flushLegacyContextWarning: function () {},\n discardPendingWarnings: function () {}\n },\n pendingComponentWillMountWarnings = [],\n pendingUNSAFE_ComponentWillMountWarnings = [],\n pendingComponentWillReceivePropsWarnings = [],\n pendingUNSAFE_ComponentWillReceivePropsWarnings = [],\n pendingComponentWillUpdateWarnings = [],\n pendingUNSAFE_ComponentWillUpdateWarnings = [],\n didWarnAboutUnsafeLifecycles = new Set();\n ReactStrictModeWarnings.recordUnsafeLifecycleWarnings = function (\n fiber,\n instance\n ) {\n didWarnAboutUnsafeLifecycles.has(fiber.type) ||\n (\"function\" === typeof instance.componentWillMount &&\n !0 !== instance.componentWillMount.__suppressDeprecationWarning &&\n pendingComponentWillMountWarnings.push(fiber),\n fiber.mode & StrictLegacyMode &&\n \"function\" === typeof instance.UNSAFE_componentWillMount &&\n pendingUNSAFE_ComponentWillMountWarnings.push(fiber),\n \"function\" === typeof instance.componentWillReceiveProps &&\n !0 !==\n instance.componentWillReceiveProps.__suppressDeprecationWarning &&\n pendingComponentWillReceivePropsWarnings.push(fiber),\n fiber.mode & StrictLegacyMode &&\n \"function\" === typeof instance.UNSAFE_componentWillReceiveProps &&\n pendingUNSAFE_ComponentWillReceivePropsWarnings.push(fiber),\n \"function\" === typeof instance.componentWillUpdate &&\n !0 !== instance.componentWillUpdate.__suppressDeprecationWarning &&\n pendingComponentWillUpdateWarnings.push(fiber),\n fiber.mode & StrictLegacyMode &&\n \"function\" === typeof instance.UNSAFE_componentWillUpdate &&\n pendingUNSAFE_ComponentWillUpdateWarnings.push(fiber));\n };\n ReactStrictModeWarnings.flushPendingUnsafeLifecycleWarnings = function () {\n var componentWillMountUniqueNames = new Set();\n 0 < pendingComponentWillMountWarnings.length &&\n (pendingComponentWillMountWarnings.forEach(function (fiber) {\n componentWillMountUniqueNames.add(\n getComponentNameFromFiber(fiber) || \"Component\"\n );\n didWarnAboutUnsafeLifecycles.add(fiber.type);\n }),\n (pendingComponentWillMountWarnings = []));\n var UNSAFE_componentWillMountUniqueNames = new Set();\n 0 < pendingUNSAFE_ComponentWillMountWarnings.length &&\n (pendingUNSAFE_ComponentWillMountWarnings.forEach(function (fiber) {\n UNSAFE_componentWillMountUniqueNames.add(\n getComponentNameFromFiber(fiber) || \"Component\"\n );\n didWarnAboutUnsafeLifecycles.add(fiber.type);\n }),\n (pendingUNSAFE_ComponentWillMountWarnings = []));\n var componentWillReceivePropsUniqueNames = new Set();\n 0 < pendingComponentWillReceivePropsWarnings.length &&\n (pendingComponentWillReceivePropsWarnings.forEach(function (fiber) {\n componentWillReceivePropsUniqueNames.add(\n getComponentNameFromFiber(fiber) || \"Component\"\n );\n didWarnAboutUnsafeLifecycles.add(fiber.type);\n }),\n (pendingComponentWillReceivePropsWarnings = []));\n var UNSAFE_componentWillReceivePropsUniqueNames = new Set();\n 0 < pendingUNSAFE_ComponentWillReceivePropsWarnings.length &&\n (pendingUNSAFE_ComponentWillReceivePropsWarnings.forEach(\n function (fiber) {\n UNSAFE_componentWillReceivePropsUniqueNames.add(\n getComponentNameFromFiber(fiber) || \"Component\"\n );\n didWarnAboutUnsafeLifecycles.add(fiber.type);\n }\n ),\n (pendingUNSAFE_ComponentWillReceivePropsWarnings = []));\n var componentWillUpdateUniqueNames = new Set();\n 0 < pendingComponentWillUpdateWarnings.length &&\n (pendingComponentWillUpdateWarnings.forEach(function (fiber) {\n componentWillUpdateUniqueNames.add(\n getComponentNameFromFiber(fiber) || \"Component\"\n );\n didWarnAboutUnsafeLifecycles.add(fiber.type);\n }),\n (pendingComponentWillUpdateWarnings = []));\n var UNSAFE_componentWillUpdateUniqueNames = new Set();\n 0 < pendingUNSAFE_ComponentWillUpdateWarnings.length &&\n (pendingUNSAFE_ComponentWillUpdateWarnings.forEach(function (fiber) {\n UNSAFE_componentWillUpdateUniqueNames.add(\n getComponentNameFromFiber(fiber) || \"Component\"\n );\n didWarnAboutUnsafeLifecycles.add(fiber.type);\n }),\n (pendingUNSAFE_ComponentWillUpdateWarnings = []));\n if (0 < UNSAFE_componentWillMountUniqueNames.size) {\n var sortedNames = setToSortedString(\n UNSAFE_componentWillMountUniqueNames\n );\n console.error(\n \"Using UNSAFE_componentWillMount in strict mode is not recommended and may indicate bugs in your code. See https://react.dev/link/unsafe-component-lifecycles for details.\\n\\n* Move code with side effects to componentDidMount, and set initial state in the constructor.\\n\\nPlease update the following components: %s\",\n sortedNames\n );\n }\n 0 < UNSAFE_componentWillReceivePropsUniqueNames.size &&\n ((sortedNames = setToSortedString(\n UNSAFE_componentWillReceivePropsUniqueNames\n )),\n console.error(\n \"Using UNSAFE_componentWillReceiveProps in strict mode is not recommended and may indicate bugs in your code. See https://react.dev/link/unsafe-component-lifecycles for details.\\n\\n* Move data fetching code or side effects to componentDidUpdate.\\n* If you're updating state whenever props change, refactor your code to use memoization techniques or move it to static getDerivedStateFromProps. Learn more at: https://react.dev/link/derived-state\\n\\nPlease update the following components: %s\",\n sortedNames\n ));\n 0 < UNSAFE_componentWillUpdateUniqueNames.size &&\n ((sortedNames = setToSortedString(\n UNSAFE_componentWillUpdateUniqueNames\n )),\n console.error(\n \"Using UNSAFE_componentWillUpdate in strict mode is not recommended and may indicate bugs in your code. See https://react.dev/link/unsafe-component-lifecycles for details.\\n\\n* Move data fetching code or side effects to componentDidUpdate.\\n\\nPlease update the following components: %s\",\n sortedNames\n ));\n 0 < componentWillMountUniqueNames.size &&\n ((sortedNames = setToSortedString(componentWillMountUniqueNames)),\n console.warn(\n \"componentWillMount has been renamed, and is not recommended for use. See https://react.dev/link/unsafe-component-lifecycles for details.\\n\\n* Move code with side effects to componentDidMount, and set initial state in the constructor.\\n* Rename componentWillMount to UNSAFE_componentWillMount to suppress this warning in non-strict mode. In React 18.x, only the UNSAFE_ name will work. To rename all deprecated lifecycles to their new names, you can run `npx react-codemod rename-unsafe-lifecycles` in your project source folder.\\n\\nPlease update the following components: %s\",\n sortedNames\n ));\n 0 < componentWillReceivePropsUniqueNames.size &&\n ((sortedNames = setToSortedString(\n componentWillReceivePropsUniqueNames\n )),\n console.warn(\n \"componentWillReceiveProps has been renamed, and is not recommended for use. See https://react.dev/link/unsafe-component-lifecycles for details.\\n\\n* Move data fetching code or side effects to componentDidUpdate.\\n* If you're updating state whenever props change, refactor your code to use memoization techniques or move it to static getDerivedStateFromProps. Learn more at: https://react.dev/link/derived-state\\n* Rename componentWillReceiveProps to UNSAFE_componentWillReceiveProps to suppress this warning in non-strict mode. In React 18.x, only the UNSAFE_ name will work. To rename all deprecated lifecycles to their new names, you can run `npx react-codemod rename-unsafe-lifecycles` in your project source folder.\\n\\nPlease update the following components: %s\",\n sortedNames\n ));\n 0 < componentWillUpdateUniqueNames.size &&\n ((sortedNames = setToSortedString(componentWillUpdateUniqueNames)),\n console.warn(\n \"componentWillUpdate has been renamed, and is not recommended for use. See https://react.dev/link/unsafe-component-lifecycles for details.\\n\\n* Move data fetching code or side effects to componentDidUpdate.\\n* Rename componentWillUpdate to UNSAFE_componentWillUpdate to suppress this warning in non-strict mode. In React 18.x, only the UNSAFE_ name will work. To rename all deprecated lifecycles to their new names, you can run `npx react-codemod rename-unsafe-lifecycles` in your project source folder.\\n\\nPlease update the following components: %s\",\n sortedNames\n ));\n };\n var pendingLegacyContextWarning = new Map(),\n didWarnAboutLegacyContext = new Set();\n ReactStrictModeWarnings.recordLegacyContextWarning = function (\n fiber,\n instance\n ) {\n var strictRoot = null;\n for (var node = fiber; null !== node; )\n node.mode & StrictLegacyMode && (strictRoot = node),\n (node = node.return);\n null === strictRoot\n ? console.error(\n \"Expected to find a StrictMode component in a strict mode tree. This error is likely caused by a bug in React. Please file an issue.\"\n )\n : !didWarnAboutLegacyContext.has(fiber.type) &&\n ((node = pendingLegacyContextWarning.get(strictRoot)),\n null != fiber.type.contextTypes ||\n null != fiber.type.childContextTypes ||\n (null !== instance &&\n \"function\" === typeof instance.getChildContext)) &&\n (void 0 === node &&\n ((node = []), pendingLegacyContextWarning.set(strictRoot, node)),\n node.push(fiber));\n };\n ReactStrictModeWarnings.flushLegacyContextWarning = function () {\n pendingLegacyContextWarning.forEach(function (fiberArray) {\n if (0 !== fiberArray.length) {\n var firstFiber = fiberArray[0],\n uniqueNames = new Set();\n fiberArray.forEach(function (fiber) {\n uniqueNames.add(getComponentNameFromFiber(fiber) || \"Component\");\n didWarnAboutLegacyContext.add(fiber.type);\n });\n var sortedNames = setToSortedString(uniqueNames);\n runWithFiberInDEV(firstFiber, function () {\n console.error(\n \"Legacy context API has been detected within a strict-mode tree.\\n\\nThe old API will be supported in all 16.x releases, but applications using it should migrate to the new version.\\n\\nPlease update the following components: %s\\n\\nLearn more about this warning here: https://react.dev/link/legacy-context\",\n sortedNames\n );\n });\n }\n });\n };\n ReactStrictModeWarnings.discardPendingWarnings = function () {\n pendingComponentWillMountWarnings = [];\n pendingUNSAFE_ComponentWillMountWarnings = [];\n pendingComponentWillReceivePropsWarnings = [];\n pendingUNSAFE_ComponentWillReceivePropsWarnings = [];\n pendingComponentWillUpdateWarnings = [];\n pendingUNSAFE_ComponentWillUpdateWarnings = [];\n pendingLegacyContextWarning = new Map();\n };\n var SuspenseException = Error(\n \"Suspense Exception: This is not a real error! It's an implementation detail of `use` to interrupt the current render. You must either rethrow it immediately, or move the `use` call outside of the `try/catch` block. Capturing without rethrowing will lead to unexpected behavior.\\n\\nTo handle async errors, wrap your component in an error boundary, or call the promise's `.catch` method and pass the result to `use`.\"\n ),\n SuspenseyCommitException = Error(\n \"Suspense Exception: This is not a real error, and should not leak into userspace. If you're seeing this, it's likely a bug in React.\"\n ),\n SuspenseActionException = Error(\n \"Suspense Exception: This is not a real error! It's an implementation detail of `useActionState` to interrupt the current render. You must either rethrow it immediately, or move the `useActionState` call outside of the `try/catch` block. Capturing without rethrowing will lead to unexpected behavior.\\n\\nTo handle async errors, wrap your component in an error boundary.\"\n ),\n noopSuspenseyCommitThenable = {\n then: function () {\n console.error(\n 'Internal React error: A listener was unexpectedly attached to a \"noop\" thenable. This is a bug in React. Please file an issue.'\n );\n }\n },\n suspendedThenable = null,\n needsToResetSuspendedThenableDEV = !1,\n NoFlags = 0,\n HasEffect = 1,\n Insertion = 2,\n Layout = 4,\n Passive = 8,\n UpdateState = 0,\n ReplaceState = 1,\n ForceUpdate = 2,\n CaptureUpdate = 3,\n hasForceUpdate = !1;\n var didWarnUpdateInsideUpdate = !1;\n var currentlyProcessingQueue = null;\n var didReadFromEntangledAsyncAction = !1,\n currentTreeHiddenStackCursor = createCursor(null),\n prevEntangledRenderLanesCursor = createCursor(0),\n didWarnUncachedGetSnapshot;\n var didWarnAboutMismatchedHooksForComponent = new Set();\n var didWarnAboutUseWrappedInTryCatch = new Set();\n var didWarnAboutAsyncClientComponent = new Set();\n var didWarnAboutUseFormState = new Set();\n var renderLanes = 0,\n currentlyRenderingFiber = null,\n currentHook = null,\n workInProgressHook = null,\n didScheduleRenderPhaseUpdate = !1,\n didScheduleRenderPhaseUpdateDuringThisPass = !1,\n shouldDoubleInvokeUserFnsInHooksDEV = !1,\n localIdCounter = 0,\n thenableIndexCounter$1 = 0,\n thenableState$1 = null,\n globalClientIdCounter = 0,\n RE_RENDER_LIMIT = 25,\n currentHookNameInDev = null,\n hookTypesDev = null,\n hookTypesUpdateIndexDev = -1,\n ignorePreviousDependencies = !1,\n ContextOnlyDispatcher = {\n readContext: readContext,\n use: use,\n useCallback: throwInvalidHookError,\n useContext: throwInvalidHookError,\n useEffect: throwInvalidHookError,\n useImperativeHandle: throwInvalidHookError,\n useLayoutEffect: throwInvalidHookError,\n useInsertionEffect: throwInvalidHookError,\n useMemo: throwInvalidHookError,\n useReducer: throwInvalidHookError,\n useRef: throwInvalidHookError,\n useState: throwInvalidHookError,\n useDebugValue: throwInvalidHookError,\n useDeferredValue: throwInvalidHookError,\n useTransition: throwInvalidHookError,\n useSyncExternalStore: throwInvalidHookError,\n useId: throwInvalidHookError,\n useHostTransitionStatus: throwInvalidHookError,\n useFormState: throwInvalidHookError,\n useActionState: throwInvalidHookError,\n useOptimistic: throwInvalidHookError,\n useMemoCache: throwInvalidHookError,\n useCacheRefresh: throwInvalidHookError\n },\n HooksDispatcherOnMountInDEV = null,\n HooksDispatcherOnMountWithHookTypesInDEV = null,\n HooksDispatcherOnUpdateInDEV = null,\n HooksDispatcherOnRerenderInDEV = null,\n InvalidNestedHooksDispatcherOnMountInDEV = null,\n InvalidNestedHooksDispatcherOnUpdateInDEV = null,\n InvalidNestedHooksDispatcherOnRerenderInDEV = null;\n HooksDispatcherOnMountInDEV = {\n readContext: function (context) {\n return readContext(context);\n },\n use: use,\n useCallback: function (callback, deps) {\n currentHookNameInDev = \"useCallback\";\n mountHookTypesDev();\n checkDepsAreArrayDev(deps);\n return mountCallback(callback, deps);\n },\n useContext: function (context) {\n currentHookNameInDev = \"useContext\";\n mountHookTypesDev();\n return readContext(context);\n },\n useEffect: function (create, createDeps) {\n currentHookNameInDev = \"useEffect\";\n mountHookTypesDev();\n checkDepsAreArrayDev(createDeps);\n return mountEffect(create, createDeps);\n },\n useImperativeHandle: function (ref, create, deps) {\n currentHookNameInDev = \"useImperativeHandle\";\n mountHookTypesDev();\n checkDepsAreArrayDev(deps);\n return mountImperativeHandle(ref, create, deps);\n },\n useInsertionEffect: function (create, deps) {\n currentHookNameInDev = \"useInsertionEffect\";\n mountHookTypesDev();\n checkDepsAreArrayDev(deps);\n mountEffectImpl(4, Insertion, create, deps);\n },\n useLayoutEffect: function (create, deps) {\n currentHookNameInDev = \"useLayoutEffect\";\n mountHookTypesDev();\n checkDepsAreArrayDev(deps);\n return mountLayoutEffect(create, deps);\n },\n useMemo: function (create, deps) {\n currentHookNameInDev = \"useMemo\";\n mountHookTypesDev();\n checkDepsAreArrayDev(deps);\n var prevDispatcher = ReactSharedInternals.H;\n ReactSharedInternals.H = InvalidNestedHooksDispatcherOnMountInDEV;\n try {\n return mountMemo(create, deps);\n } finally {\n ReactSharedInternals.H = prevDispatcher;\n }\n },\n useReducer: function (reducer, initialArg, init) {\n currentHookNameInDev = \"useReducer\";\n mountHookTypesDev();\n var prevDispatcher = ReactSharedInternals.H;\n ReactSharedInternals.H = InvalidNestedHooksDispatcherOnMountInDEV;\n try {\n return mountReducer(reducer, initialArg, init);\n } finally {\n ReactSharedInternals.H = prevDispatcher;\n }\n },\n useRef: function (initialValue) {\n currentHookNameInDev = \"useRef\";\n mountHookTypesDev();\n return mountRef(initialValue);\n },\n useState: function (initialState) {\n currentHookNameInDev = \"useState\";\n mountHookTypesDev();\n var prevDispatcher = ReactSharedInternals.H;\n ReactSharedInternals.H = InvalidNestedHooksDispatcherOnMountInDEV;\n try {\n return mountState(initialState);\n } finally {\n ReactSharedInternals.H = prevDispatcher;\n }\n },\n useDebugValue: function () {\n currentHookNameInDev = \"useDebugValue\";\n mountHookTypesDev();\n },\n useDeferredValue: function (value, initialValue) {\n currentHookNameInDev = \"useDeferredValue\";\n mountHookTypesDev();\n return mountDeferredValue(value, initialValue);\n },\n useTransition: function () {\n currentHookNameInDev = \"useTransition\";\n mountHookTypesDev();\n return mountTransition();\n },\n useSyncExternalStore: function (\n subscribe,\n getSnapshot,\n getServerSnapshot\n ) {\n currentHookNameInDev = \"useSyncExternalStore\";\n mountHookTypesDev();\n return mountSyncExternalStore(\n subscribe,\n getSnapshot,\n getServerSnapshot\n );\n },\n useId: function () {\n currentHookNameInDev = \"useId\";\n mountHookTypesDev();\n return mountId();\n },\n useFormState: function (action, initialState) {\n currentHookNameInDev = \"useFormState\";\n mountHookTypesDev();\n warnOnUseFormStateInDev();\n return mountActionState(action, initialState);\n },\n useActionState: function (action, initialState) {\n currentHookNameInDev = \"useActionState\";\n mountHookTypesDev();\n return mountActionState(action, initialState);\n },\n useOptimistic: function (passthrough) {\n currentHookNameInDev = \"useOptimistic\";\n mountHookTypesDev();\n return mountOptimistic(passthrough);\n },\n useHostTransitionStatus: useHostTransitionStatus,\n useMemoCache: useMemoCache,\n useCacheRefresh: function () {\n currentHookNameInDev = \"useCacheRefresh\";\n mountHookTypesDev();\n return mountRefresh();\n }\n };\n HooksDispatcherOnMountWithHookTypesInDEV = {\n readContext: function (context) {\n return readContext(context);\n },\n use: use,\n useCallback: function (callback, deps) {\n currentHookNameInDev = \"useCallback\";\n updateHookTypesDev();\n return mountCallback(callback, deps);\n },\n useContext: function (context) {\n currentHookNameInDev = \"useContext\";\n updateHookTypesDev();\n return readContext(context);\n },\n useEffect: function (create, createDeps) {\n currentHookNameInDev = \"useEffect\";\n updateHookTypesDev();\n return mountEffect(create, createDeps);\n },\n useImperativeHandle: function (ref, create, deps) {\n currentHookNameInDev = \"useImperativeHandle\";\n updateHookTypesDev();\n return mountImperativeHandle(ref, create, deps);\n },\n useInsertionEffect: function (create, deps) {\n currentHookNameInDev = \"useInsertionEffect\";\n updateHookTypesDev();\n mountEffectImpl(4, Insertion, create, deps);\n },\n useLayoutEffect: function (create, deps) {\n currentHookNameInDev = \"useLayoutEffect\";\n updateHookTypesDev();\n return mountLayoutEffect(create, deps);\n },\n useMemo: function (create, deps) {\n currentHookNameInDev = \"useMemo\";\n updateHookTypesDev();\n var prevDispatcher = ReactSharedInternals.H;\n ReactSharedInternals.H = InvalidNestedHooksDispatcherOnMountInDEV;\n try {\n return mountMemo(create, deps);\n } finally {\n ReactSharedInternals.H = prevDispatcher;\n }\n },\n useReducer: function (reducer, initialArg, init) {\n currentHookNameInDev = \"useReducer\";\n updateHookTypesDev();\n var prevDispatcher = ReactSharedInternals.H;\n ReactSharedInternals.H = InvalidNestedHooksDispatcherOnMountInDEV;\n try {\n return mountReducer(reducer, initialArg, init);\n } finally {\n ReactSharedInternals.H = prevDispatcher;\n }\n },\n useRef: function (initialValue) {\n currentHookNameInDev = \"useRef\";\n updateHookTypesDev();\n return mountRef(initialValue);\n },\n useState: function (initialState) {\n currentHookNameInDev = \"useState\";\n updateHookTypesDev();\n var prevDispatcher = ReactSharedInternals.H;\n ReactSharedInternals.H = InvalidNestedHooksDispatcherOnMountInDEV;\n try {\n return mountState(initialState);\n } finally {\n ReactSharedInternals.H = prevDispatcher;\n }\n },\n useDebugValue: function () {\n currentHookNameInDev = \"useDebugValue\";\n updateHookTypesDev();\n },\n useDeferredValue: function (value, initialValue) {\n currentHookNameInDev = \"useDeferredValue\";\n updateHookTypesDev();\n return mountDeferredValue(value, initialValue);\n },\n useTransition: function () {\n currentHookNameInDev = \"useTransition\";\n updateHookTypesDev();\n return mountTransition();\n },\n useSyncExternalStore: function (\n subscribe,\n getSnapshot,\n getServerSnapshot\n ) {\n currentHookNameInDev = \"useSyncExternalStore\";\n updateHookTypesDev();\n return mountSyncExternalStore(\n subscribe,\n getSnapshot,\n getServerSnapshot\n );\n },\n useId: function () {\n currentHookNameInDev = \"useId\";\n updateHookTypesDev();\n return mountId();\n },\n useActionState: function (action, initialState) {\n currentHookNameInDev = \"useActionState\";\n updateHookTypesDev();\n return mountActionState(action, initialState);\n },\n useFormState: function (action, initialState) {\n currentHookNameInDev = \"useFormState\";\n updateHookTypesDev();\n warnOnUseFormStateInDev();\n return mountActionState(action, initialState);\n },\n useOptimistic: function (passthrough) {\n currentHookNameInDev = \"useOptimistic\";\n updateHookTypesDev();\n return mountOptimistic(passthrough);\n },\n useHostTransitionStatus: useHostTransitionStatus,\n useMemoCache: useMemoCache,\n useCacheRefresh: function () {\n currentHookNameInDev = \"useCacheRefresh\";\n updateHookTypesDev();\n return mountRefresh();\n }\n };\n HooksDispatcherOnUpdateInDEV = {\n readContext: function (context) {\n return readContext(context);\n },\n use: use,\n useCallback: function (callback, deps) {\n currentHookNameInDev = \"useCallback\";\n updateHookTypesDev();\n return updateCallback(callback, deps);\n },\n useContext: function (context) {\n currentHookNameInDev = \"useContext\";\n updateHookTypesDev();\n return readContext(context);\n },\n useEffect: function (create, createDeps) {\n currentHookNameInDev = \"useEffect\";\n updateHookTypesDev();\n updateEffectImpl(2048, Passive, create, createDeps);\n },\n useImperativeHandle: function (ref, create, deps) {\n currentHookNameInDev = \"useImperativeHandle\";\n updateHookTypesDev();\n return updateImperativeHandle(ref, create, deps);\n },\n useInsertionEffect: function (create, deps) {\n currentHookNameInDev = \"useInsertionEffect\";\n updateHookTypesDev();\n return updateEffectImpl(4, Insertion, create, deps);\n },\n useLayoutEffect: function (create, deps) {\n currentHookNameInDev = \"useLayoutEffect\";\n updateHookTypesDev();\n return updateEffectImpl(4, Layout, create, deps);\n },\n useMemo: function (create, deps) {\n currentHookNameInDev = \"useMemo\";\n updateHookTypesDev();\n var prevDispatcher = ReactSharedInternals.H;\n ReactSharedInternals.H = InvalidNestedHooksDispatcherOnUpdateInDEV;\n try {\n return updateMemo(create, deps);\n } finally {\n ReactSharedInternals.H = prevDispatcher;\n }\n },\n useReducer: function (reducer, initialArg, init) {\n currentHookNameInDev = \"useReducer\";\n updateHookTypesDev();\n var prevDispatcher = ReactSharedInternals.H;\n ReactSharedInternals.H = InvalidNestedHooksDispatcherOnUpdateInDEV;\n try {\n return updateReducer(reducer, initialArg, init);\n } finally {\n ReactSharedInternals.H = prevDispatcher;\n }\n },\n useRef: function () {\n currentHookNameInDev = \"useRef\";\n updateHookTypesDev();\n return updateWorkInProgressHook().memoizedState;\n },\n useState: function () {\n currentHookNameInDev = \"useState\";\n updateHookTypesDev();\n var prevDispatcher = ReactSharedInternals.H;\n ReactSharedInternals.H = InvalidNestedHooksDispatcherOnUpdateInDEV;\n try {\n return updateReducer(basicStateReducer);\n } finally {\n ReactSharedInternals.H = prevDispatcher;\n }\n },\n useDebugValue: function () {\n currentHookNameInDev = \"useDebugValue\";\n updateHookTypesDev();\n },\n useDeferredValue: function (value, initialValue) {\n currentHookNameInDev = \"useDeferredValue\";\n updateHookTypesDev();\n return updateDeferredValue(value, initialValue);\n },\n useTransition: function () {\n currentHookNameInDev = \"useTransition\";\n updateHookTypesDev();\n return updateTransition();\n },\n useSyncExternalStore: function (\n subscribe,\n getSnapshot,\n getServerSnapshot\n ) {\n currentHookNameInDev = \"useSyncExternalStore\";\n updateHookTypesDev();\n return updateSyncExternalStore(\n subscribe,\n getSnapshot,\n getServerSnapshot\n );\n },\n useId: function () {\n currentHookNameInDev = \"useId\";\n updateHookTypesDev();\n return updateWorkInProgressHook().memoizedState;\n },\n useFormState: function (action) {\n currentHookNameInDev = \"useFormState\";\n updateHookTypesDev();\n warnOnUseFormStateInDev();\n return updateActionState(action);\n },\n useActionState: function (action) {\n currentHookNameInDev = \"useActionState\";\n updateHookTypesDev();\n return updateActionState(action);\n },\n useOptimistic: function (passthrough, reducer) {\n currentHookNameInDev = \"useOptimistic\";\n updateHookTypesDev();\n return updateOptimistic(passthrough, reducer);\n },\n useHostTransitionStatus: useHostTransitionStatus,\n useMemoCache: useMemoCache,\n useCacheRefresh: function () {\n currentHookNameInDev = \"useCacheRefresh\";\n updateHookTypesDev();\n return updateWorkInProgressHook().memoizedState;\n }\n };\n HooksDispatcherOnRerenderInDEV = {\n readContext: function (context) {\n return readContext(context);\n },\n use: use,\n useCallback: function (callback, deps) {\n currentHookNameInDev = \"useCallback\";\n updateHookTypesDev();\n return updateCallback(callback, deps);\n },\n useContext: function (context) {\n currentHookNameInDev = \"useContext\";\n updateHookTypesDev();\n return readContext(context);\n },\n useEffect: function (create, createDeps) {\n currentHookNameInDev = \"useEffect\";\n updateHookTypesDev();\n updateEffectImpl(2048, Passive, create, createDeps);\n },\n useImperativeHandle: function (ref, create, deps) {\n currentHookNameInDev = \"useImperativeHandle\";\n updateHookTypesDev();\n return updateImperativeHandle(ref, create, deps);\n },\n useInsertionEffect: function (create, deps) {\n currentHookNameInDev = \"useInsertionEffect\";\n updateHookTypesDev();\n return updateEffectImpl(4, Insertion, create, deps);\n },\n useLayoutEffect: function (create, deps) {\n currentHookNameInDev = \"useLayoutEffect\";\n updateHookTypesDev();\n return updateEffectImpl(4, Layout, create, deps);\n },\n useMemo: function (create, deps) {\n currentHookNameInDev = \"useMemo\";\n updateHookTypesDev();\n var prevDispatcher = ReactSharedInternals.H;\n ReactSharedInternals.H = InvalidNestedHooksDispatcherOnRerenderInDEV;\n try {\n return updateMemo(create, deps);\n } finally {\n ReactSharedInternals.H = prevDispatcher;\n }\n },\n useReducer: function (reducer, initialArg, init) {\n currentHookNameInDev = \"useReducer\";\n updateHookTypesDev();\n var prevDispatcher = ReactSharedInternals.H;\n ReactSharedInternals.H = InvalidNestedHooksDispatcherOnRerenderInDEV;\n try {\n return rerenderReducer(reducer, initialArg, init);\n } finally {\n ReactSharedInternals.H = prevDispatcher;\n }\n },\n useRef: function () {\n currentHookNameInDev = \"useRef\";\n updateHookTypesDev();\n return updateWorkInProgressHook().memoizedState;\n },\n useState: function () {\n currentHookNameInDev = \"useState\";\n updateHookTypesDev();\n var prevDispatcher = ReactSharedInternals.H;\n ReactSharedInternals.H = InvalidNestedHooksDispatcherOnRerenderInDEV;\n try {\n return rerenderReducer(basicStateReducer);\n } finally {\n ReactSharedInternals.H = prevDispatcher;\n }\n },\n useDebugValue: function () {\n currentHookNameInDev = \"useDebugValue\";\n updateHookTypesDev();\n },\n useDeferredValue: function (value, initialValue) {\n currentHookNameInDev = \"useDeferredValue\";\n updateHookTypesDev();\n return rerenderDeferredValue(value, initialValue);\n },\n useTransition: function () {\n currentHookNameInDev = \"useTransition\";\n updateHookTypesDev();\n return rerenderTransition();\n },\n useSyncExternalStore: function (\n subscribe,\n getSnapshot,\n getServerSnapshot\n ) {\n currentHookNameInDev = \"useSyncExternalStore\";\n updateHookTypesDev();\n return updateSyncExternalStore(\n subscribe,\n getSnapshot,\n getServerSnapshot\n );\n },\n useId: function () {\n currentHookNameInDev = \"useId\";\n updateHookTypesDev();\n return updateWorkInProgressHook().memoizedState;\n },\n useFormState: function (action) {\n currentHookNameInDev = \"useFormState\";\n updateHookTypesDev();\n warnOnUseFormStateInDev();\n return rerenderActionState(action);\n },\n useActionState: function (action) {\n currentHookNameInDev = \"useActionState\";\n updateHookTypesDev();\n return rerenderActionState(action);\n },\n useOptimistic: function (passthrough, reducer) {\n currentHookNameInDev = \"useOptimistic\";\n updateHookTypesDev();\n return rerenderOptimistic(passthrough, reducer);\n },\n useHostTransitionStatus: useHostTransitionStatus,\n useMemoCache: useMemoCache,\n useCacheRefresh: function () {\n currentHookNameInDev = \"useCacheRefresh\";\n updateHookTypesDev();\n return updateWorkInProgressHook().memoizedState;\n }\n };\n InvalidNestedHooksDispatcherOnMountInDEV = {\n readContext: function (context) {\n warnInvalidContextAccess();\n return readContext(context);\n },\n use: function (usable) {\n warnInvalidHookAccess();\n return use(usable);\n },\n useCallback: function (callback, deps) {\n currentHookNameInDev = \"useCallback\";\n warnInvalidHookAccess();\n mountHookTypesDev();\n return mountCallback(callback, deps);\n },\n useContext: function (context) {\n currentHookNameInDev = \"useContext\";\n warnInvalidHookAccess();\n mountHookTypesDev();\n return readContext(context);\n },\n useEffect: function (create, createDeps) {\n currentHookNameInDev = \"useEffect\";\n warnInvalidHookAccess();\n mountHookTypesDev();\n return mountEffect(create, createDeps);\n },\n useImperativeHandle: function (ref, create, deps) {\n currentHookNameInDev = \"useImperativeHandle\";\n warnInvalidHookAccess();\n mountHookTypesDev();\n return mountImperativeHandle(ref, create, deps);\n },\n useInsertionEffect: function (create, deps) {\n currentHookNameInDev = \"useInsertionEffect\";\n warnInvalidHookAccess();\n mountHookTypesDev();\n mountEffectImpl(4, Insertion, create, deps);\n },\n useLayoutEffect: function (create, deps) {\n currentHookNameInDev = \"useLayoutEffect\";\n warnInvalidHookAccess();\n mountHookTypesDev();\n return mountLayoutEffect(create, deps);\n },\n useMemo: function (create, deps) {\n currentHookNameInDev = \"useMemo\";\n warnInvalidHookAccess();\n mountHookTypesDev();\n var prevDispatcher = ReactSharedInternals.H;\n ReactSharedInternals.H = InvalidNestedHooksDispatcherOnMountInDEV;\n try {\n return mountMemo(create, deps);\n } finally {\n ReactSharedInternals.H = prevDispatcher;\n }\n },\n useReducer: function (reducer, initialArg, init) {\n currentHookNameInDev = \"useReducer\";\n warnInvalidHookAccess();\n mountHookTypesDev();\n var prevDispatcher = ReactSharedInternals.H;\n ReactSharedInternals.H = InvalidNestedHooksDispatcherOnMountInDEV;\n try {\n return mountReducer(reducer, initialArg, init);\n } finally {\n ReactSharedInternals.H = prevDispatcher;\n }\n },\n useRef: function (initialValue) {\n currentHookNameInDev = \"useRef\";\n warnInvalidHookAccess();\n mountHookTypesDev();\n return mountRef(initialValue);\n },\n useState: function (initialState) {\n currentHookNameInDev = \"useState\";\n warnInvalidHookAccess();\n mountHookTypesDev();\n var prevDispatcher = ReactSharedInternals.H;\n ReactSharedInternals.H = InvalidNestedHooksDispatcherOnMountInDEV;\n try {\n return mountState(initialState);\n } finally {\n ReactSharedInternals.H = prevDispatcher;\n }\n },\n useDebugValue: function () {\n currentHookNameInDev = \"useDebugValue\";\n warnInvalidHookAccess();\n mountHookTypesDev();\n },\n useDeferredValue: function (value, initialValue) {\n currentHookNameInDev = \"useDeferredValue\";\n warnInvalidHookAccess();\n mountHookTypesDev();\n return mountDeferredValue(value, initialValue);\n },\n useTransition: function () {\n currentHookNameInDev = \"useTransition\";\n warnInvalidHookAccess();\n mountHookTypesDev();\n return mountTransition();\n },\n useSyncExternalStore: function (\n subscribe,\n getSnapshot,\n getServerSnapshot\n ) {\n currentHookNameInDev = \"useSyncExternalStore\";\n warnInvalidHookAccess();\n mountHookTypesDev();\n return mountSyncExternalStore(\n subscribe,\n getSnapshot,\n getServerSnapshot\n );\n },\n useId: function () {\n currentHookNameInDev = \"useId\";\n warnInvalidHookAccess();\n mountHookTypesDev();\n return mountId();\n },\n useFormState: function (action, initialState) {\n currentHookNameInDev = \"useFormState\";\n warnInvalidHookAccess();\n mountHookTypesDev();\n return mountActionState(action, initialState);\n },\n useActionState: function (action, initialState) {\n currentHookNameInDev = \"useActionState\";\n warnInvalidHookAccess();\n mountHookTypesDev();\n return mountActionState(action, initialState);\n },\n useOptimistic: function (passthrough) {\n currentHookNameInDev = \"useOptimistic\";\n warnInvalidHookAccess();\n mountHookTypesDev();\n return mountOptimistic(passthrough);\n },\n useMemoCache: function (size) {\n warnInvalidHookAccess();\n return useMemoCache(size);\n },\n useHostTransitionStatus: useHostTransitionStatus,\n useCacheRefresh: function () {\n currentHookNameInDev = \"useCacheRefresh\";\n mountHookTypesDev();\n return mountRefresh();\n }\n };\n InvalidNestedHooksDispatcherOnUpdateInDEV = {\n readContext: function (context) {\n warnInvalidContextAccess();\n return readContext(context);\n },\n use: function (usable) {\n warnInvalidHookAccess();\n return use(usable);\n },\n useCallback: function (callback, deps) {\n currentHookNameInDev = \"useCallback\";\n warnInvalidHookAccess();\n updateHookTypesDev();\n return updateCallback(callback, deps);\n },\n useContext: function (context) {\n currentHookNameInDev = \"useContext\";\n warnInvalidHookAccess();\n updateHookTypesDev();\n return readContext(context);\n },\n useEffect: function (create, createDeps) {\n currentHookNameInDev = \"useEffect\";\n warnInvalidHookAccess();\n updateHookTypesDev();\n updateEffectImpl(2048, Passive, create, createDeps);\n },\n useImperativeHandle: function (ref, create, deps) {\n currentHookNameInDev = \"useImperativeHandle\";\n warnInvalidHookAccess();\n updateHookTypesDev();\n return updateImperativeHandle(ref, create, deps);\n },\n useInsertionEffect: function (create, deps) {\n currentHookNameInDev = \"useInsertionEffect\";\n warnInvalidHookAccess();\n updateHookTypesDev();\n return updateEffectImpl(4, Insertion, create, deps);\n },\n useLayoutEffect: function (create, deps) {\n currentHookNameInDev = \"useLayoutEffect\";\n warnInvalidHookAccess();\n updateHookTypesDev();\n return updateEffectImpl(4, Layout, create, deps);\n },\n useMemo: function (create, deps) {\n currentHookNameInDev = \"useMemo\";\n warnInvalidHookAccess();\n updateHookTypesDev();\n var prevDispatcher = ReactSharedInternals.H;\n ReactSharedInternals.H = InvalidNestedHooksDispatcherOnUpdateInDEV;\n try {\n return updateMemo(create, deps);\n } finally {\n ReactSharedInternals.H = prevDispatcher;\n }\n },\n useReducer: function (reducer, initialArg, init) {\n currentHookNameInDev = \"useReducer\";\n warnInvalidHookAccess();\n updateHookTypesDev();\n var prevDispatcher = ReactSharedInternals.H;\n ReactSharedInternals.H = InvalidNestedHooksDispatcherOnUpdateInDEV;\n try {\n return updateReducer(reducer, initialArg, init);\n } finally {\n ReactSharedInternals.H = prevDispatcher;\n }\n },\n useRef: function () {\n currentHookNameInDev = \"useRef\";\n warnInvalidHookAccess();\n updateHookTypesDev();\n return updateWorkInProgressHook().memoizedState;\n },\n useState: function () {\n currentHookNameInDev = \"useState\";\n warnInvalidHookAccess();\n updateHookTypesDev();\n var prevDispatcher = ReactSharedInternals.H;\n ReactSharedInternals.H = InvalidNestedHooksDispatcherOnUpdateInDEV;\n try {\n return updateReducer(basicStateReducer);\n } finally {\n ReactSharedInternals.H = prevDispatcher;\n }\n },\n useDebugValue: function () {\n currentHookNameInDev = \"useDebugValue\";\n warnInvalidHookAccess();\n updateHookTypesDev();\n },\n useDeferredValue: function (value, initialValue) {\n currentHookNameInDev = \"useDeferredValue\";\n warnInvalidHookAccess();\n updateHookTypesDev();\n return updateDeferredValue(value, initialValue);\n },\n useTransition: function () {\n currentHookNameInDev = \"useTransition\";\n warnInvalidHookAccess();\n updateHookTypesDev();\n return updateTransition();\n },\n useSyncExternalStore: function (\n subscribe,\n getSnapshot,\n getServerSnapshot\n ) {\n currentHookNameInDev = \"useSyncExternalStore\";\n warnInvalidHookAccess();\n updateHookTypesDev();\n return updateSyncExternalStore(\n subscribe,\n getSnapshot,\n getServerSnapshot\n );\n },\n useId: function () {\n currentHookNameInDev = \"useId\";\n warnInvalidHookAccess();\n updateHookTypesDev();\n return updateWorkInProgressHook().memoizedState;\n },\n useFormState: function (action) {\n currentHookNameInDev = \"useFormState\";\n warnInvalidHookAccess();\n updateHookTypesDev();\n return updateActionState(action);\n },\n useActionState: function (action) {\n currentHookNameInDev = \"useActionState\";\n warnInvalidHookAccess();\n updateHookTypesDev();\n return updateActionState(action);\n },\n useOptimistic: function (passthrough, reducer) {\n currentHookNameInDev = \"useOptimistic\";\n warnInvalidHookAccess();\n updateHookTypesDev();\n return updateOptimistic(passthrough, reducer);\n },\n useMemoCache: function (size) {\n warnInvalidHookAccess();\n return useMemoCache(size);\n },\n useHostTransitionStatus: useHostTransitionStatus,\n useCacheRefresh: function () {\n currentHookNameInDev = \"useCacheRefresh\";\n updateHookTypesDev();\n return updateWorkInProgressHook().memoizedState;\n }\n };\n InvalidNestedHooksDispatcherOnRerenderInDEV = {\n readContext: function (context) {\n warnInvalidContextAccess();\n return readContext(context);\n },\n use: function (usable) {\n warnInvalidHookAccess();\n return use(usable);\n },\n useCallback: function (callback, deps) {\n currentHookNameInDev = \"useCallback\";\n warnInvalidHookAccess();\n updateHookTypesDev();\n return updateCallback(callback, deps);\n },\n useContext: function (context) {\n currentHookNameInDev = \"useContext\";\n warnInvalidHookAccess();\n updateHookTypesDev();\n return readContext(context);\n },\n useEffect: function (create, createDeps) {\n currentHookNameInDev = \"useEffect\";\n warnInvalidHookAccess();\n updateHookTypesDev();\n updateEffectImpl(2048, Passive, create, createDeps);\n },\n useImperativeHandle: function (ref, create, deps) {\n currentHookNameInDev = \"useImperativeHandle\";\n warnInvalidHookAccess();\n updateHookTypesDev();\n return updateImperativeHandle(ref, create, deps);\n },\n useInsertionEffect: function (create, deps) {\n currentHookNameInDev = \"useInsertionEffect\";\n warnInvalidHookAccess();\n updateHookTypesDev();\n return updateEffectImpl(4, Insertion, create, deps);\n },\n useLayoutEffect: function (create, deps) {\n currentHookNameInDev = \"useLayoutEffect\";\n warnInvalidHookAccess();\n updateHookTypesDev();\n return updateEffectImpl(4, Layout, create, deps);\n },\n useMemo: function (create, deps) {\n currentHookNameInDev = \"useMemo\";\n warnInvalidHookAccess();\n updateHookTypesDev();\n var prevDispatcher = ReactSharedInternals.H;\n ReactSharedInternals.H = InvalidNestedHooksDispatcherOnUpdateInDEV;\n try {\n return updateMemo(create, deps);\n } finally {\n ReactSharedInternals.H = prevDispatcher;\n }\n },\n useReducer: function (reducer, initialArg, init) {\n currentHookNameInDev = \"useReducer\";\n warnInvalidHookAccess();\n updateHookTypesDev();\n var prevDispatcher = ReactSharedInternals.H;\n ReactSharedInternals.H = InvalidNestedHooksDispatcherOnUpdateInDEV;\n try {\n return rerenderReducer(reducer, initialArg, init);\n } finally {\n ReactSharedInternals.H = prevDispatcher;\n }\n },\n useRef: function () {\n currentHookNameInDev = \"useRef\";\n warnInvalidHookAccess();\n updateHookTypesDev();\n return updateWorkInProgressHook().memoizedState;\n },\n useState: function () {\n currentHookNameInDev = \"useState\";\n warnInvalidHookAccess();\n updateHookTypesDev();\n var prevDispatcher = ReactSharedInternals.H;\n ReactSharedInternals.H = InvalidNestedHooksDispatcherOnUpdateInDEV;\n try {\n return rerenderReducer(basicStateReducer);\n } finally {\n ReactSharedInternals.H = prevDispatcher;\n }\n },\n useDebugValue: function () {\n currentHookNameInDev = \"useDebugValue\";\n warnInvalidHookAccess();\n updateHookTypesDev();\n },\n useDeferredValue: function (value, initialValue) {\n currentHookNameInDev = \"useDeferredValue\";\n warnInvalidHookAccess();\n updateHookTypesDev();\n return rerenderDeferredValue(value, initialValue);\n },\n useTransition: function () {\n currentHookNameInDev = \"useTransition\";\n warnInvalidHookAccess();\n updateHookTypesDev();\n return rerenderTransition();\n },\n useSyncExternalStore: function (\n subscribe,\n getSnapshot,\n getServerSnapshot\n ) {\n currentHookNameInDev = \"useSyncExternalStore\";\n warnInvalidHookAccess();\n updateHookTypesDev();\n return updateSyncExternalStore(\n subscribe,\n getSnapshot,\n getServerSnapshot\n );\n },\n useId: function () {\n currentHookNameInDev = \"useId\";\n warnInvalidHookAccess();\n updateHookTypesDev();\n return updateWorkInProgressHook().memoizedState;\n },\n useFormState: function (action) {\n currentHookNameInDev = \"useFormState\";\n warnInvalidHookAccess();\n updateHookTypesDev();\n return rerenderActionState(action);\n },\n useActionState: function (action) {\n currentHookNameInDev = \"useActionState\";\n warnInvalidHookAccess();\n updateHookTypesDev();\n return rerenderActionState(action);\n },\n useOptimistic: function (passthrough, reducer) {\n currentHookNameInDev = \"useOptimistic\";\n warnInvalidHookAccess();\n updateHookTypesDev();\n return rerenderOptimistic(passthrough, reducer);\n },\n useMemoCache: function (size) {\n warnInvalidHookAccess();\n return useMemoCache(size);\n },\n useHostTransitionStatus: useHostTransitionStatus,\n useCacheRefresh: function () {\n currentHookNameInDev = \"useCacheRefresh\";\n updateHookTypesDev();\n return updateWorkInProgressHook().memoizedState;\n }\n };\n var callComponent = {\n \"react-stack-bottom-frame\": function (Component, props, secondArg) {\n var wasRendering = isRendering;\n isRendering = !0;\n try {\n return Component(props, secondArg);\n } finally {\n isRendering = wasRendering;\n }\n }\n },\n callComponentInDEV =\n callComponent[\"react-stack-bottom-frame\"].bind(callComponent),\n callRender = {\n \"react-stack-bottom-frame\": function (instance) {\n var wasRendering = isRendering;\n isRendering = !0;\n try {\n return instance.render();\n } finally {\n isRendering = wasRendering;\n }\n }\n },\n callRenderInDEV = callRender[\"react-stack-bottom-frame\"].bind(callRender),\n callComponentDidMount = {\n \"react-stack-bottom-frame\": function (finishedWork, instance) {\n try {\n instance.componentDidMount();\n } catch (error) {\n captureCommitPhaseError(finishedWork, finishedWork.return, error);\n }\n }\n },\n callComponentDidMountInDEV = callComponentDidMount[\n \"react-stack-bottom-frame\"\n ].bind(callComponentDidMount),\n callComponentDidUpdate = {\n \"react-stack-bottom-frame\": function (\n finishedWork,\n instance,\n prevProps,\n prevState,\n snapshot\n ) {\n try {\n instance.componentDidUpdate(prevProps, prevState, snapshot);\n } catch (error) {\n captureCommitPhaseError(finishedWork, finishedWork.return, error);\n }\n }\n },\n callComponentDidUpdateInDEV = callComponentDidUpdate[\n \"react-stack-bottom-frame\"\n ].bind(callComponentDidUpdate),\n callComponentDidCatch = {\n \"react-stack-bottom-frame\": function (instance, errorInfo) {\n var stack = errorInfo.stack;\n instance.componentDidCatch(errorInfo.value, {\n componentStack: null !== stack ? stack : \"\"\n });\n }\n },\n callComponentDidCatchInDEV = callComponentDidCatch[\n \"react-stack-bottom-frame\"\n ].bind(callComponentDidCatch),\n callComponentWillUnmount = {\n \"react-stack-bottom-frame\": function (\n current,\n nearestMountedAncestor,\n instance\n ) {\n try {\n instance.componentWillUnmount();\n } catch (error) {\n captureCommitPhaseError(current, nearestMountedAncestor, error);\n }\n }\n },\n callComponentWillUnmountInDEV = callComponentWillUnmount[\n \"react-stack-bottom-frame\"\n ].bind(callComponentWillUnmount),\n callCreate = {\n \"react-stack-bottom-frame\": function (effect) {\n null != effect.resourceKind &&\n console.error(\n \"Expected only SimpleEffects when enableUseEffectCRUDOverload is disabled, got %s\",\n effect.resourceKind\n );\n var create = effect.create;\n effect = effect.inst;\n create = create();\n return (effect.destroy = create);\n }\n },\n callCreateInDEV = callCreate[\"react-stack-bottom-frame\"].bind(callCreate),\n callDestroy = {\n \"react-stack-bottom-frame\": function (\n current,\n nearestMountedAncestor,\n destroy\n ) {\n try {\n destroy();\n } catch (error) {\n captureCommitPhaseError(current, nearestMountedAncestor, error);\n }\n }\n },\n callDestroyInDEV =\n callDestroy[\"react-stack-bottom-frame\"].bind(callDestroy),\n callLazyInit = {\n \"react-stack-bottom-frame\": function (lazy) {\n var init = lazy._init;\n return init(lazy._payload);\n }\n },\n callLazyInitInDEV =\n callLazyInit[\"react-stack-bottom-frame\"].bind(callLazyInit),\n thenableState = null,\n thenableIndexCounter = 0,\n currentDebugInfo = null,\n didWarnAboutMaps;\n var didWarnAboutGenerators = (didWarnAboutMaps = !1);\n var ownerHasKeyUseWarning = {};\n var ownerHasFunctionTypeWarning = {};\n var ownerHasSymbolTypeWarning = {};\n warnForMissingKey = function (returnFiber, workInProgress, child) {\n if (\n null !== child &&\n \"object\" === typeof child &&\n child._store &&\n ((!child._store.validated && null == child.key) ||\n 2 === child._store.validated)\n ) {\n if (\"object\" !== typeof child._store)\n throw Error(\n \"React Component in warnForMissingKey should have a _store. This error is likely caused by a bug in React. Please file an issue.\"\n );\n child._store.validated = 1;\n var componentName = getComponentNameFromFiber(returnFiber),\n componentKey = componentName || \"null\";\n if (!ownerHasKeyUseWarning[componentKey]) {\n ownerHasKeyUseWarning[componentKey] = !0;\n child = child._owner;\n returnFiber = returnFiber._debugOwner;\n var currentComponentErrorInfo = \"\";\n returnFiber &&\n \"number\" === typeof returnFiber.tag &&\n (componentKey = getComponentNameFromFiber(returnFiber)) &&\n (currentComponentErrorInfo =\n \"\\n\\nCheck the render method of `\" + componentKey + \"`.\");\n currentComponentErrorInfo ||\n (componentName &&\n (currentComponentErrorInfo =\n \"\\n\\nCheck the top-level render call using <\" +\n componentName +\n \">.\"));\n var childOwnerAppendix = \"\";\n null != child &&\n returnFiber !== child &&\n ((componentName = null),\n \"number\" === typeof child.tag\n ? (componentName = getComponentNameFromFiber(child))\n : \"string\" === typeof child.name && (componentName = child.name),\n componentName &&\n (childOwnerAppendix =\n \" It was passed a child from \" + componentName + \".\"));\n runWithFiberInDEV(workInProgress, function () {\n console.error(\n 'Each child in a list should have a unique \"key\" prop.%s%s See https://react.dev/link/warning-keys for more information.',\n currentComponentErrorInfo,\n childOwnerAppendix\n );\n });\n }\n }\n };\n var reconcileChildFibers = createChildReconciler(!0),\n mountChildFibers = createChildReconciler(!1),\n suspenseHandlerStackCursor = createCursor(null),\n shellBoundary = null,\n SubtreeSuspenseContextMask = 1,\n ForceSuspenseFallback = 2,\n suspenseStackCursor = createCursor(0),\n fakeInternalInstance = {};\n var didWarnAboutStateAssignmentForComponent = new Set();\n var didWarnAboutUninitializedState = new Set();\n var didWarnAboutGetSnapshotBeforeUpdateWithoutDidUpdate = new Set();\n var didWarnAboutLegacyLifecyclesAndDerivedState = new Set();\n var didWarnAboutDirectlyAssigningPropsToState = new Set();\n var didWarnAboutUndefinedDerivedState = new Set();\n var didWarnAboutContextTypes$1 = new Set();\n var didWarnAboutChildContextTypes = new Set();\n var didWarnAboutInvalidateContextType = new Set();\n var didWarnOnInvalidCallback = new Set();\n Object.freeze(fakeInternalInstance);\n var classComponentUpdater = {\n enqueueSetState: function (inst, payload, callback) {\n inst = inst._reactInternals;\n var lane = requestUpdateLane(inst),\n update = createUpdate(lane);\n update.payload = payload;\n void 0 !== callback &&\n null !== callback &&\n (warnOnInvalidCallback(callback), (update.callback = callback));\n payload = enqueueUpdate(inst, update, lane);\n null !== payload &&\n (scheduleUpdateOnFiber(payload, inst, lane),\n entangleTransitions(payload, inst, lane));\n markStateUpdateScheduled(inst, lane);\n },\n enqueueReplaceState: function (inst, payload, callback) {\n inst = inst._reactInternals;\n var lane = requestUpdateLane(inst),\n update = createUpdate(lane);\n update.tag = ReplaceState;\n update.payload = payload;\n void 0 !== callback &&\n null !== callback &&\n (warnOnInvalidCallback(callback), (update.callback = callback));\n payload = enqueueUpdate(inst, update, lane);\n null !== payload &&\n (scheduleUpdateOnFiber(payload, inst, lane),\n entangleTransitions(payload, inst, lane));\n markStateUpdateScheduled(inst, lane);\n },\n enqueueForceUpdate: function (inst, callback) {\n inst = inst._reactInternals;\n var lane = requestUpdateLane(inst),\n update = createUpdate(lane);\n update.tag = ForceUpdate;\n void 0 !== callback &&\n null !== callback &&\n (warnOnInvalidCallback(callback), (update.callback = callback));\n callback = enqueueUpdate(inst, update, lane);\n null !== callback &&\n (scheduleUpdateOnFiber(callback, inst, lane),\n entangleTransitions(callback, inst, lane));\n null !== injectedProfilingHooks &&\n \"function\" ===\n typeof injectedProfilingHooks.markForceUpdateScheduled &&\n injectedProfilingHooks.markForceUpdateScheduled(inst, lane);\n }\n },\n reportGlobalError =\n \"function\" === typeof reportError\n ? reportError\n : function (error) {\n if (\n \"object\" === typeof window &&\n \"function\" === typeof window.ErrorEvent\n ) {\n var event = new window.ErrorEvent(\"error\", {\n bubbles: !0,\n cancelable: !0,\n message:\n \"object\" === typeof error &&\n null !== error &&\n \"string\" === typeof error.message\n ? String(error.message)\n : String(error),\n error: error\n });\n if (!window.dispatchEvent(event)) return;\n } else if (\n \"object\" === typeof process &&\n \"function\" === typeof process.emit\n ) {\n process.emit(\"uncaughtException\", error);\n return;\n }\n console.error(error);\n },\n componentName = null,\n errorBoundaryName = null,\n SelectiveHydrationException = Error(\n \"This is not a real error. It's an implementation detail of React's selective hydration feature. If this leaks into userspace, it's a bug in React. Please file an issue.\"\n ),\n didReceiveUpdate = !1;\n var didWarnAboutBadClass = {};\n var didWarnAboutContextTypeOnFunctionComponent = {};\n var didWarnAboutContextTypes = {};\n var didWarnAboutGetDerivedStateOnFunctionComponent = {};\n var didWarnAboutReassigningProps = !1;\n var didWarnAboutRevealOrder = {};\n var didWarnAboutTailOptions = {};\n var SUSPENDED_MARKER = {\n dehydrated: null,\n treeContext: null,\n retryLane: 0,\n hydrationErrors: null\n },\n hasWarnedAboutUsingNoValuePropOnContextProvider = !1,\n didWarnAboutUndefinedSnapshotBeforeUpdate = null;\n didWarnAboutUndefinedSnapshotBeforeUpdate = new Set();\n var offscreenSubtreeIsHidden = !1,\n offscreenSubtreeWasHidden = !1,\n needsFormReset = !1,\n PossiblyWeakSet = \"function\" === typeof WeakSet ? WeakSet : Set,\n nextEffect = null,\n inProgressLanes = null,\n inProgressRoot = null,\n hostParent = null,\n hostParentIsContainer = !1,\n currentHoistableRoot = null,\n suspenseyCommitFlag = 8192,\n DefaultAsyncDispatcher = {\n getCacheForType: function (resourceType) {\n var cache = readContext(CacheContext),\n cacheForType = cache.data.get(resourceType);\n void 0 === cacheForType &&\n ((cacheForType = resourceType()),\n cache.data.set(resourceType, cacheForType));\n return cacheForType;\n },\n getOwner: function () {\n return current;\n }\n };\n if (\"function\" === typeof Symbol && Symbol.for) {\n var symbolFor = Symbol.for;\n symbolFor(\"selector.component\");\n symbolFor(\"selector.has_pseudo_class\");\n symbolFor(\"selector.role\");\n symbolFor(\"selector.test_id\");\n symbolFor(\"selector.text\");\n }\n var commitHooks = [],\n PossiblyWeakMap = \"function\" === typeof WeakMap ? WeakMap : Map,\n NoContext = 0,\n RenderContext = 2,\n CommitContext = 4,\n RootInProgress = 0,\n RootFatalErrored = 1,\n RootErrored = 2,\n RootSuspended = 3,\n RootSuspendedWithDelay = 4,\n RootSuspendedAtTheShell = 6,\n RootCompleted = 5,\n executionContext = NoContext,\n workInProgressRoot = null,\n workInProgress = null,\n workInProgressRootRenderLanes = 0,\n NotSuspended = 0,\n SuspendedOnError = 1,\n SuspendedOnData = 2,\n SuspendedOnImmediate = 3,\n SuspendedOnInstance = 4,\n SuspendedOnInstanceAndReadyToContinue = 5,\n SuspendedOnDeprecatedThrowPromise = 6,\n SuspendedAndReadyToContinue = 7,\n SuspendedOnHydration = 8,\n SuspendedOnAction = 9,\n workInProgressSuspendedReason = NotSuspended,\n workInProgressThrownValue = null,\n workInProgressRootDidSkipSuspendedSiblings = !1,\n workInProgressRootIsPrerendering = !1,\n workInProgressRootDidAttachPingListener = !1,\n entangledRenderLanes = 0,\n workInProgressRootExitStatus = RootInProgress,\n workInProgressRootSkippedLanes = 0,\n workInProgressRootInterleavedUpdatedLanes = 0,\n workInProgressRootPingedLanes = 0,\n workInProgressDeferredLane = 0,\n workInProgressSuspendedRetryLanes = 0,\n workInProgressRootConcurrentErrors = null,\n workInProgressRootRecoverableErrors = null,\n workInProgressRootDidIncludeRecursiveRenderUpdate = !1,\n globalMostRecentFallbackTime = 0,\n FALLBACK_THROTTLE_MS = 300,\n workInProgressRootRenderTargetTime = Infinity,\n RENDER_TIMEOUT_MS = 500,\n workInProgressTransitions = null,\n legacyErrorBoundariesThatAlreadyFailed = null,\n IMMEDIATE_COMMIT = 0,\n SUSPENDED_COMMIT = 1,\n THROTTLED_COMMIT = 2,\n NO_PENDING_EFFECTS = 0,\n PENDING_MUTATION_PHASE = 1,\n PENDING_LAYOUT_PHASE = 2,\n PENDING_AFTER_MUTATION_PHASE = 3,\n PENDING_SPAWNED_WORK = 4,\n PENDING_PASSIVE_PHASE = 5,\n pendingEffectsStatus = 0,\n pendingEffectsRoot = null,\n pendingFinishedWork = null,\n pendingEffectsLanes = 0,\n pendingEffectsRemainingLanes = 0,\n pendingPassiveTransitions = null,\n pendingRecoverableErrors = null,\n NESTED_UPDATE_LIMIT = 50,\n nestedUpdateCount = 0,\n rootWithNestedUpdates = null,\n isFlushingPassiveEffects = !1,\n didScheduleUpdateDuringPassiveEffects = !1,\n NESTED_PASSIVE_UPDATE_LIMIT = 50,\n nestedPassiveUpdateCount = 0,\n rootWithPassiveNestedUpdates = null,\n isRunningInsertionEffect = !1,\n didWarnStateUpdateForNotYetMountedComponent = null,\n didWarnAboutUpdateInRender = !1;\n var didWarnAboutUpdateInRenderForAnotherComponent = new Set();\n var fakeActCallbackNode$1 = {},\n firstScheduledRoot = null,\n lastScheduledRoot = null,\n didScheduleMicrotask = !1,\n didScheduleMicrotask_act = !1,\n mightHavePendingSyncWork = !1,\n isFlushingWork = !1,\n currentEventTransitionLane = 0,\n fakeActCallbackNode = {};\n (function () {\n for (var i = 0; i < simpleEventPluginEvents.length; i++) {\n var eventName = simpleEventPluginEvents[i],\n domEventName = eventName.toLowerCase();\n eventName = eventName[0].toUpperCase() + eventName.slice(1);\n registerSimpleEvent(domEventName, \"on\" + eventName);\n }\n registerSimpleEvent(ANIMATION_END, \"onAnimationEnd\");\n registerSimpleEvent(ANIMATION_ITERATION, \"onAnimationIteration\");\n registerSimpleEvent(ANIMATION_START, \"onAnimationStart\");\n registerSimpleEvent(\"dblclick\", \"onDoubleClick\");\n registerSimpleEvent(\"focusin\", \"onFocus\");\n registerSimpleEvent(\"focusout\", \"onBlur\");\n registerSimpleEvent(TRANSITION_RUN, \"onTransitionRun\");\n registerSimpleEvent(TRANSITION_START, \"onTransitionStart\");\n registerSimpleEvent(TRANSITION_CANCEL, \"onTransitionCancel\");\n registerSimpleEvent(TRANSITION_END, \"onTransitionEnd\");\n })();\n registerDirectEvent(\"onMouseEnter\", [\"mouseout\", \"mouseover\"]);\n registerDirectEvent(\"onMouseLeave\", [\"mouseout\", \"mouseover\"]);\n registerDirectEvent(\"onPointerEnter\", [\"pointerout\", \"pointerover\"]);\n registerDirectEvent(\"onPointerLeave\", [\"pointerout\", \"pointerover\"]);\n registerTwoPhaseEvent(\n \"onChange\",\n \"change click focusin focusout input keydown keyup selectionchange\".split(\n \" \"\n )\n );\n registerTwoPhaseEvent(\n \"onSelect\",\n \"focusout contextmenu dragend focusin keydown keyup mousedown mouseup selectionchange\".split(\n \" \"\n )\n );\n registerTwoPhaseEvent(\"onBeforeInput\", [\n \"compositionend\",\n \"keypress\",\n \"textInput\",\n \"paste\"\n ]);\n registerTwoPhaseEvent(\n \"onCompositionEnd\",\n \"compositionend focusout keydown keypress keyup mousedown\".split(\" \")\n );\n registerTwoPhaseEvent(\n \"onCompositionStart\",\n \"compositionstart focusout keydown keypress keyup mousedown\".split(\" \")\n );\n registerTwoPhaseEvent(\n \"onCompositionUpdate\",\n \"compositionupdate focusout keydown keypress keyup mousedown\".split(\" \")\n );\n var mediaEventTypes =\n \"abort canplay canplaythrough durationchange emptied encrypted ended error loadeddata loadedmetadata loadstart pause play playing progress ratechange resize seeked seeking stalled suspend timeupdate volumechange waiting\".split(\n \" \"\n ),\n nonDelegatedEvents = new Set(\n \"beforetoggle cancel close invalid load scroll scrollend toggle\"\n .split(\" \")\n .concat(mediaEventTypes)\n ),\n listeningMarker = \"_reactListening\" + Math.random().toString(36).slice(2),\n didWarnControlledToUncontrolled = !1,\n didWarnUncontrolledToControlled = !1,\n didWarnFormActionType = !1,\n didWarnFormActionName = !1,\n didWarnFormActionTarget = !1,\n didWarnFormActionMethod = !1,\n didWarnPopoverTargetObject = !1;\n var didWarnForNewBooleanPropsWithEmptyValue = {};\n var NORMALIZE_NEWLINES_REGEX = /\\r\\n?/g,\n NORMALIZE_NULL_AND_REPLACEMENT_REGEX = /\\u0000|\\uFFFD/g,\n xlinkNamespace = \"http://www.w3.org/1999/xlink\",\n xmlNamespace = \"http://www.w3.org/XML/1998/namespace\",\n EXPECTED_FORM_ACTION_URL =\n \"javascript:throw new Error('React form unexpectedly submitted.')\",\n SUPPRESS_HYDRATION_WARNING = \"suppressHydrationWarning\",\n SUSPENSE_START_DATA = \"$\",\n SUSPENSE_END_DATA = \"/$\",\n SUSPENSE_PENDING_START_DATA = \"$?\",\n SUSPENSE_FALLBACK_START_DATA = \"$!\",\n PREAMBLE_CONTRIBUTION_HTML = 1,\n PREAMBLE_CONTRIBUTION_BODY = 2,\n PREAMBLE_CONTRIBUTION_HEAD = 4,\n FORM_STATE_IS_MATCHING = \"F!\",\n FORM_STATE_IS_NOT_MATCHING = \"F\",\n DOCUMENT_READY_STATE_COMPLETE = \"complete\",\n STYLE = \"style\",\n HostContextNamespaceNone = 0,\n HostContextNamespaceSvg = 1,\n HostContextNamespaceMath = 2,\n eventsEnabled = null,\n selectionInformation = null,\n warnedUnknownTags = { dialog: !0, webview: !0 },\n currentPopstateTransitionEvent = null,\n scheduleTimeout = \"function\" === typeof setTimeout ? setTimeout : void 0,\n cancelTimeout =\n \"function\" === typeof clearTimeout ? clearTimeout : void 0,\n noTimeout = -1,\n localPromise = \"function\" === typeof Promise ? Promise : void 0,\n scheduleMicrotask =\n \"function\" === typeof queueMicrotask\n ? queueMicrotask\n : \"undefined\" !== typeof localPromise\n ? function (callback) {\n return localPromise\n .resolve(null)\n .then(callback)\n .catch(handleErrorInNextTick);\n }\n : scheduleTimeout,\n previousHydratableOnEnteringScopedSingleton = null,\n NotLoaded = 0,\n Loaded = 1,\n Errored = 2,\n Settled = 3,\n Inserted = 4,\n preloadPropsMap = new Map(),\n preconnectsSet = new Set(),\n previousDispatcher = ReactDOMSharedInternals.d;\n ReactDOMSharedInternals.d = {\n f: function () {\n var previousWasRendering = previousDispatcher.f(),\n wasRendering = flushSyncWork$1();\n return previousWasRendering || wasRendering;\n },\n r: function (form) {\n var formInst = getInstanceFromNode(form);\n null !== formInst && 5 === formInst.tag && \"form\" === formInst.type\n ? requestFormReset$1(formInst)\n : previousDispatcher.r(form);\n },\n D: function (href) {\n previousDispatcher.D(href);\n preconnectAs(\"dns-prefetch\", href, null);\n },\n C: function (href, crossOrigin) {\n previousDispatcher.C(href, crossOrigin);\n preconnectAs(\"preconnect\", href, crossOrigin);\n },\n L: function (href, as, options) {\n previousDispatcher.L(href, as, options);\n var ownerDocument = globalDocument;\n if (ownerDocument && href && as) {\n var preloadSelector =\n 'link[rel=\"preload\"][as=\"' +\n escapeSelectorAttributeValueInsideDoubleQuotes(as) +\n '\"]';\n \"image\" === as\n ? options && options.imageSrcSet\n ? ((preloadSelector +=\n '[imagesrcset=\"' +\n escapeSelectorAttributeValueInsideDoubleQuotes(\n options.imageSrcSet\n ) +\n '\"]'),\n \"string\" === typeof options.imageSizes &&\n (preloadSelector +=\n '[imagesizes=\"' +\n escapeSelectorAttributeValueInsideDoubleQuotes(\n options.imageSizes\n ) +\n '\"]'))\n : (preloadSelector +=\n '[href=\"' +\n escapeSelectorAttributeValueInsideDoubleQuotes(href) +\n '\"]')\n : (preloadSelector +=\n '[href=\"' +\n escapeSelectorAttributeValueInsideDoubleQuotes(href) +\n '\"]');\n var key = preloadSelector;\n switch (as) {\n case \"style\":\n key = getStyleKey(href);\n break;\n case \"script\":\n key = getScriptKey(href);\n }\n preloadPropsMap.has(key) ||\n ((href = assign(\n {\n rel: \"preload\",\n href:\n \"image\" === as && options && options.imageSrcSet\n ? void 0\n : href,\n as: as\n },\n options\n )),\n preloadPropsMap.set(key, href),\n null !== ownerDocument.querySelector(preloadSelector) ||\n (\"style\" === as &&\n ownerDocument.querySelector(\n getStylesheetSelectorFromKey(key)\n )) ||\n (\"script\" === as &&\n ownerDocument.querySelector(getScriptSelectorFromKey(key))) ||\n ((as = ownerDocument.createElement(\"link\")),\n setInitialProperties(as, \"link\", href),\n markNodeAsHoistable(as),\n ownerDocument.head.appendChild(as)));\n }\n },\n m: function (href, options) {\n previousDispatcher.m(href, options);\n var ownerDocument = globalDocument;\n if (ownerDocument && href) {\n var as =\n options && \"string\" === typeof options.as ? options.as : \"script\",\n preloadSelector =\n 'link[rel=\"modulepreload\"][as=\"' +\n escapeSelectorAttributeValueInsideDoubleQuotes(as) +\n '\"][href=\"' +\n escapeSelectorAttributeValueInsideDoubleQuotes(href) +\n '\"]',\n key = preloadSelector;\n switch (as) {\n case \"audioworklet\":\n case \"paintworklet\":\n case \"serviceworker\":\n case \"sharedworker\":\n case \"worker\":\n case \"script\":\n key = getScriptKey(href);\n }\n if (\n !preloadPropsMap.has(key) &&\n ((href = assign({ rel: \"modulepreload\", href: href }, options)),\n preloadPropsMap.set(key, href),\n null === ownerDocument.querySelector(preloadSelector))\n ) {\n switch (as) {\n case \"audioworklet\":\n case \"paintworklet\":\n case \"serviceworker\":\n case \"sharedworker\":\n case \"worker\":\n case \"script\":\n if (ownerDocument.querySelector(getScriptSelectorFromKey(key)))\n return;\n }\n as = ownerDocument.createElement(\"link\");\n setInitialProperties(as, \"link\", href);\n markNodeAsHoistable(as);\n ownerDocument.head.appendChild(as);\n }\n }\n },\n X: function (src, options) {\n previousDispatcher.X(src, options);\n var ownerDocument = globalDocument;\n if (ownerDocument && src) {\n var scripts = getResourcesFromRoot(ownerDocument).hoistableScripts,\n key = getScriptKey(src),\n resource = scripts.get(key);\n resource ||\n ((resource = ownerDocument.querySelector(\n getScriptSelectorFromKey(key)\n )),\n resource ||\n ((src = assign({ src: src, async: !0 }, options)),\n (options = preloadPropsMap.get(key)) &&\n adoptPreloadPropsForScript(src, options),\n (resource = ownerDocument.createElement(\"script\")),\n markNodeAsHoistable(resource),\n setInitialProperties(resource, \"link\", src),\n ownerDocument.head.appendChild(resource)),\n (resource = {\n type: \"script\",\n instance: resource,\n count: 1,\n state: null\n }),\n scripts.set(key, resource));\n }\n },\n S: function (href, precedence, options) {\n previousDispatcher.S(href, precedence, options);\n var ownerDocument = globalDocument;\n if (ownerDocument && href) {\n var styles = getResourcesFromRoot(ownerDocument).hoistableStyles,\n key = getStyleKey(href);\n precedence = precedence || \"default\";\n var resource = styles.get(key);\n if (!resource) {\n var state = { loading: NotLoaded, preload: null };\n if (\n (resource = ownerDocument.querySelector(\n getStylesheetSelectorFromKey(key)\n ))\n )\n state.loading = Loaded | Inserted;\n else {\n href = assign(\n {\n rel: \"stylesheet\",\n href: href,\n \"data-precedence\": precedence\n },\n options\n );\n (options = preloadPropsMap.get(key)) &&\n adoptPreloadPropsForStylesheet(href, options);\n var link = (resource = ownerDocument.createElement(\"link\"));\n markNodeAsHoistable(link);\n setInitialProperties(link, \"link\", href);\n link._p = new Promise(function (resolve, reject) {\n link.onload = resolve;\n link.onerror = reject;\n });\n link.addEventListener(\"load\", function () {\n state.loading |= Loaded;\n });\n link.addEventListener(\"error\", function () {\n state.loading |= Errored;\n });\n state.loading |= Inserted;\n insertStylesheet(resource, precedence, ownerDocument);\n }\n resource = {\n type: \"stylesheet\",\n instance: resource,\n count: 1,\n state: state\n };\n styles.set(key, resource);\n }\n }\n },\n M: function (src, options) {\n previousDispatcher.M(src, options);\n var ownerDocument = globalDocument;\n if (ownerDocument && src) {\n var scripts = getResourcesFromRoot(ownerDocument).hoistableScripts,\n key = getScriptKey(src),\n resource = scripts.get(key);\n resource ||\n ((resource = ownerDocument.querySelector(\n getScriptSelectorFromKey(key)\n )),\n resource ||\n ((src = assign({ src: src, async: !0, type: \"module\" }, options)),\n (options = preloadPropsMap.get(key)) &&\n adoptPreloadPropsForScript(src, options),\n (resource = ownerDocument.createElement(\"script\")),\n markNodeAsHoistable(resource),\n setInitialProperties(resource, \"link\", src),\n ownerDocument.head.appendChild(resource)),\n (resource = {\n type: \"script\",\n instance: resource,\n count: 1,\n state: null\n }),\n scripts.set(key, resource));\n }\n }\n };\n var globalDocument = \"undefined\" === typeof document ? null : document,\n tagCaches = null,\n suspendedState = null,\n LAST_PRECEDENCE = null,\n precedencesByRoot = null,\n NotPendingTransition = NotPending,\n HostTransitionContext = {\n $$typeof: REACT_CONTEXT_TYPE,\n Provider: null,\n Consumer: null,\n _currentValue: NotPendingTransition,\n _currentValue2: NotPendingTransition,\n _threadCount: 0\n },\n badgeFormat = \"%c%s%c \",\n badgeStyle =\n \"background: #e6e6e6;background: light-dark(rgba(0,0,0,0.1), rgba(255,255,255,0.25));color: #000000;color: light-dark(#000000, #ffffff);border-radius: 2px\",\n resetStyle = \"\",\n pad = \" \",\n bind = Function.prototype.bind;\n var didWarnAboutNestedUpdates = !1;\n var overrideHookState = null,\n overrideHookStateDeletePath = null,\n overrideHookStateRenamePath = null,\n overrideProps = null,\n overridePropsDeletePath = null,\n overridePropsRenamePath = null,\n scheduleUpdate = null,\n setErrorHandler = null,\n setSuspenseHandler = null;\n overrideHookState = function (fiber, id, path, value) {\n id = findHook(fiber, id);\n null !== id &&\n ((path = copyWithSetImpl(id.memoizedState, path, 0, value)),\n (id.memoizedState = path),\n (id.baseState = path),\n (fiber.memoizedProps = assign({}, fiber.memoizedProps)),\n (path = enqueueConcurrentRenderForLane(fiber, 2)),\n null !== path && scheduleUpdateOnFiber(path, fiber, 2));\n };\n overrideHookStateDeletePath = function (fiber, id, path) {\n id = findHook(fiber, id);\n null !== id &&\n ((path = copyWithDeleteImpl(id.memoizedState, path, 0)),\n (id.memoizedState = path),\n (id.baseState = path),\n (fiber.memoizedProps = assign({}, fiber.memoizedProps)),\n (path = enqueueConcurrentRenderForLane(fiber, 2)),\n null !== path && scheduleUpdateOnFiber(path, fiber, 2));\n };\n overrideHookStateRenamePath = function (fiber, id, oldPath, newPath) {\n id = findHook(fiber, id);\n null !== id &&\n ((oldPath = copyWithRename(id.memoizedState, oldPath, newPath)),\n (id.memoizedState = oldPath),\n (id.baseState = oldPath),\n (fiber.memoizedProps = assign({}, fiber.memoizedProps)),\n (oldPath = enqueueConcurrentRenderForLane(fiber, 2)),\n null !== oldPath && scheduleUpdateOnFiber(oldPath, fiber, 2));\n };\n overrideProps = function (fiber, path, value) {\n fiber.pendingProps = copyWithSetImpl(fiber.memoizedProps, path, 0, value);\n fiber.alternate && (fiber.alternate.pendingProps = fiber.pendingProps);\n path = enqueueConcurrentRenderForLane(fiber, 2);\n null !== path && scheduleUpdateOnFiber(path, fiber, 2);\n };\n overridePropsDeletePath = function (fiber, path) {\n fiber.pendingProps = copyWithDeleteImpl(fiber.memoizedProps, path, 0);\n fiber.alternate && (fiber.alternate.pendingProps = fiber.pendingProps);\n path = enqueueConcurrentRenderForLane(fiber, 2);\n null !== path && scheduleUpdateOnFiber(path, fiber, 2);\n };\n overridePropsRenamePath = function (fiber, oldPath, newPath) {\n fiber.pendingProps = copyWithRename(\n fiber.memoizedProps,\n oldPath,\n newPath\n );\n fiber.alternate && (fiber.alternate.pendingProps = fiber.pendingProps);\n oldPath = enqueueConcurrentRenderForLane(fiber, 2);\n null !== oldPath && scheduleUpdateOnFiber(oldPath, fiber, 2);\n };\n scheduleUpdate = function (fiber) {\n var root = enqueueConcurrentRenderForLane(fiber, 2);\n null !== root && scheduleUpdateOnFiber(root, fiber, 2);\n };\n setErrorHandler = function (newShouldErrorImpl) {\n shouldErrorImpl = newShouldErrorImpl;\n };\n setSuspenseHandler = function (newShouldSuspendImpl) {\n shouldSuspendImpl = newShouldSuspendImpl;\n };\n var _enabled = !0,\n return_targetInst = null,\n hasScheduledReplayAttempt = !1,\n queuedFocus = null,\n queuedDrag = null,\n queuedMouse = null,\n queuedPointers = new Map(),\n queuedPointerCaptures = new Map(),\n queuedExplicitHydrationTargets = [],\n discreteReplayableEvents =\n \"mousedown mouseup touchcancel touchend touchstart auxclick dblclick pointercancel pointerdown pointerup dragend dragstart drop compositionend compositionstart keydown keypress keyup input textInput copy cut paste click change contextmenu reset\".split(\n \" \"\n ),\n lastScheduledReplayQueue = null;\n ReactDOMHydrationRoot.prototype.render = ReactDOMRoot.prototype.render =\n function (children) {\n var root = this._internalRoot;\n if (null === root) throw Error(\"Cannot update an unmounted root.\");\n var args = arguments;\n \"function\" === typeof args[1]\n ? console.error(\n \"does not support the second callback argument. To execute a side effect after rendering, declare it in a component body with useEffect().\"\n )\n : isValidContainer(args[1])\n ? console.error(\n \"You passed a container to the second argument of root.render(...). You don't need to pass it again since you already passed it to create the root.\"\n )\n : \"undefined\" !== typeof args[1] &&\n console.error(\n \"You passed a second argument to root.render(...) but it only accepts one argument.\"\n );\n args = children;\n var current = root.current,\n lane = requestUpdateLane(current);\n updateContainerImpl(current, lane, args, root, null, null);\n };\n ReactDOMHydrationRoot.prototype.unmount = ReactDOMRoot.prototype.unmount =\n function () {\n var args = arguments;\n \"function\" === typeof args[0] &&\n console.error(\n \"does not support a callback argument. To execute a side effect after rendering, declare it in a component body with useEffect().\"\n );\n args = this._internalRoot;\n if (null !== args) {\n this._internalRoot = null;\n var container = args.containerInfo;\n (executionContext & (RenderContext | CommitContext)) !== NoContext &&\n console.error(\n \"Attempted to synchronously unmount a root while React was already rendering. React cannot finish unmounting the root until the current render has completed, which may lead to a race condition.\"\n );\n updateContainerImpl(args.current, 2, null, args, null, null);\n flushSyncWork$1();\n container[internalContainerInstanceKey] = null;\n }\n };\n ReactDOMHydrationRoot.prototype.unstable_scheduleHydration = function (\n target\n ) {\n if (target) {\n var updatePriority = resolveUpdatePriority();\n target = { blockedOn: null, target: target, priority: updatePriority };\n for (\n var i = 0;\n i < queuedExplicitHydrationTargets.length &&\n 0 !== updatePriority &&\n updatePriority < queuedExplicitHydrationTargets[i].priority;\n i++\n );\n queuedExplicitHydrationTargets.splice(i, 0, target);\n 0 === i && attemptExplicitHydrationTarget(target);\n }\n };\n (function () {\n var isomorphicReactPackageVersion = React.version;\n if (\"19.1.0\" !== isomorphicReactPackageVersion)\n throw Error(\n 'Incompatible React versions: The \"react\" and \"react-dom\" packages must have the exact same version. Instead got:\\n - react: ' +\n (isomorphicReactPackageVersion +\n \"\\n - react-dom: 19.1.0\\nLearn more: https://react.dev/warnings/version-mismatch\")\n );\n })();\n (\"function\" === typeof Map &&\n null != Map.prototype &&\n \"function\" === typeof Map.prototype.forEach &&\n \"function\" === typeof Set &&\n null != Set.prototype &&\n \"function\" === typeof Set.prototype.clear &&\n \"function\" === typeof Set.prototype.forEach) ||\n console.error(\n \"React depends on Map and Set built-in types. Make sure that you load a polyfill in older browsers. https://react.dev/link/react-polyfills\"\n );\n ReactDOMSharedInternals.findDOMNode = function (componentOrElement) {\n var fiber = componentOrElement._reactInternals;\n if (void 0 === fiber) {\n if (\"function\" === typeof componentOrElement.render)\n throw Error(\"Unable to find node on an unmounted component.\");\n componentOrElement = Object.keys(componentOrElement).join(\",\");\n throw Error(\n \"Argument appears to not be a ReactComponent. Keys: \" +\n componentOrElement\n );\n }\n componentOrElement = findCurrentFiberUsingSlowPath(fiber);\n componentOrElement =\n null !== componentOrElement\n ? findCurrentHostFiberImpl(componentOrElement)\n : null;\n componentOrElement =\n null === componentOrElement ? null : componentOrElement.stateNode;\n return componentOrElement;\n };\n if (\n !(function () {\n var internals = {\n bundleType: 1,\n version: \"19.1.0\",\n rendererPackageName: \"react-dom\",\n currentDispatcherRef: ReactSharedInternals,\n reconcilerVersion: \"19.1.0\"\n };\n internals.overrideHookState = overrideHookState;\n internals.overrideHookStateDeletePath = overrideHookStateDeletePath;\n internals.overrideHookStateRenamePath = overrideHookStateRenamePath;\n internals.overrideProps = overrideProps;\n internals.overridePropsDeletePath = overridePropsDeletePath;\n internals.overridePropsRenamePath = overridePropsRenamePath;\n internals.scheduleUpdate = scheduleUpdate;\n internals.setErrorHandler = setErrorHandler;\n internals.setSuspenseHandler = setSuspenseHandler;\n internals.scheduleRefresh = scheduleRefresh;\n internals.scheduleRoot = scheduleRoot;\n internals.setRefreshHandler = setRefreshHandler;\n internals.getCurrentFiber = getCurrentFiberForDevTools;\n internals.getLaneLabelMap = getLaneLabelMap;\n internals.injectProfilingHooks = injectProfilingHooks;\n return injectInternals(internals);\n })() &&\n canUseDOM &&\n window.top === window.self &&\n ((-1 < navigator.userAgent.indexOf(\"Chrome\") &&\n -1 === navigator.userAgent.indexOf(\"Edge\")) ||\n -1 < navigator.userAgent.indexOf(\"Firefox\"))\n ) {\n var protocol = window.location.protocol;\n /^(https?|file):$/.test(protocol) &&\n console.info(\n \"%cDownload the React DevTools for a better development experience: https://react.dev/link/react-devtools\" +\n (\"file:\" === protocol\n ? \"\\nYou might need to use a local HTTP server (instead of file://): https://react.dev/link/react-devtools-faq\"\n : \"\"),\n \"font-weight:bold\"\n );\n }\n exports.createRoot = function (container, options) {\n if (!isValidContainer(container))\n throw Error(\"Target container is not a DOM element.\");\n warnIfReactDOMContainerInDEV(container);\n var isStrictMode = !1,\n identifierPrefix = \"\",\n onUncaughtError = defaultOnUncaughtError,\n onCaughtError = defaultOnCaughtError,\n onRecoverableError = defaultOnRecoverableError,\n transitionCallbacks = null;\n null !== options &&\n void 0 !== options &&\n (options.hydrate\n ? console.warn(\n \"hydrate through createRoot is deprecated. Use ReactDOMClient.hydrateRoot(container, <App />) instead.\"\n )\n : \"object\" === typeof options &&\n null !== options &&\n options.$$typeof === REACT_ELEMENT_TYPE &&\n console.error(\n \"You passed a JSX element to createRoot. You probably meant to call root.render instead. Example usage:\\n\\n let root = createRoot(domContainer);\\n root.render(<App />);\"\n ),\n !0 === options.unstable_strictMode && (isStrictMode = !0),\n void 0 !== options.identifierPrefix &&\n (identifierPrefix = options.identifierPrefix),\n void 0 !== options.onUncaughtError &&\n (onUncaughtError = options.onUncaughtError),\n void 0 !== options.onCaughtError &&\n (onCaughtError = options.onCaughtError),\n void 0 !== options.onRecoverableError &&\n (onRecoverableError = options.onRecoverableError),\n void 0 !== options.unstable_transitionCallbacks &&\n (transitionCallbacks = options.unstable_transitionCallbacks));\n options = createFiberRoot(\n container,\n 1,\n !1,\n null,\n null,\n isStrictMode,\n identifierPrefix,\n onUncaughtError,\n onCaughtError,\n onRecoverableError,\n transitionCallbacks,\n null\n );\n container[internalContainerInstanceKey] = options.current;\n listenToAllSupportedEvents(container);\n return new ReactDOMRoot(options);\n };\n exports.hydrateRoot = function (container, initialChildren, options) {\n if (!isValidContainer(container))\n throw Error(\"Target container is not a DOM element.\");\n warnIfReactDOMContainerInDEV(container);\n void 0 === initialChildren &&\n console.error(\n \"Must provide initial children as second argument to hydrateRoot. Example usage: hydrateRoot(domContainer, <App />)\"\n );\n var isStrictMode = !1,\n identifierPrefix = \"\",\n onUncaughtError = defaultOnUncaughtError,\n onCaughtError = defaultOnCaughtError,\n onRecoverableError = defaultOnRecoverableError,\n transitionCallbacks = null,\n formState = null;\n null !== options &&\n void 0 !== options &&\n (!0 === options.unstable_strictMode && (isStrictMode = !0),\n void 0 !== options.identifierPrefix &&\n (identifierPrefix = options.identifierPrefix),\n void 0 !== options.onUncaughtError &&\n (onUncaughtError = options.onUncaughtError),\n void 0 !== options.onCaughtError &&\n (onCaughtError = options.onCaughtError),\n void 0 !== options.onRecoverableError &&\n (onRecoverableError = options.onRecoverableError),\n void 0 !== options.unstable_transitionCallbacks &&\n (transitionCallbacks = options.unstable_transitionCallbacks),\n void 0 !== options.formState && (formState = options.formState));\n initialChildren = createFiberRoot(\n container,\n 1,\n !0,\n initialChildren,\n null != options ? options : null,\n isStrictMode,\n identifierPrefix,\n onUncaughtError,\n onCaughtError,\n onRecoverableError,\n transitionCallbacks,\n formState\n );\n initialChildren.context = getContextForSubtree(null);\n options = initialChildren.current;\n isStrictMode = requestUpdateLane(options);\n isStrictMode = getBumpedLaneForHydrationByLane(isStrictMode);\n identifierPrefix = createUpdate(isStrictMode);\n identifierPrefix.callback = null;\n enqueueUpdate(options, identifierPrefix, isStrictMode);\n options = isStrictMode;\n initialChildren.current.lanes = options;\n markRootUpdated$1(initialChildren, options);\n ensureRootIsScheduled(initialChildren);\n container[internalContainerInstanceKey] = initialChildren.current;\n listenToAllSupportedEvents(container);\n return new ReactDOMHydrationRoot(initialChildren);\n };\n exports.version = \"19.1.0\";\n \"undefined\" !== typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ &&\n \"function\" ===\n typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop &&\n __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop(Error());\n })();\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9yZWFjdC1kb20vY2pzL3JlYWN0LWRvbS1jbGllbnQuZGV2ZWxvcG1lbnQuanMiLCJtYXBwaW5ncyI6IjtBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDYTtBQUNiLEtBQXFDO0FBQ3JDO0FBQ0E7QUFDQSx3Q0FBd0MsMEJBQTBCO0FBQ2xFO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLDREQUE0RDtBQUM1RDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHdCQUF3Qix3QkFBd0I7QUFDaEQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLDREQUE0RDtBQUM1RDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSw0REFBNEQ7QUFDNUQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxrQ0FBa0MsYUFBYTtBQUMvQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsMkNBQTJDO0FBQzNDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHdDQUF3QyxTQUFTO0FBQ2pEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSw4REFBOEQsUUFBUTtBQUN0RTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSx5Q0FBeUMsUUFBUTtBQUNqRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsOEJBQThCLGVBQWU7QUFDN0M7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGNBQWM7QUFDZDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSwwQ0FBMEMsUUFBUTtBQUNsRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGVBQWU7QUFDZjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esc0JBQXNCO0FBQ3RCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxRQUFRO0FBQ1I7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsUUFBUTtBQUNSO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsVUFBVTtBQUNWO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxvQ0FBb0MsUUFBUTtBQUM1QztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHNDQUFzQyxvQkFBb0I7QUFDMUQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsaURBQWlELFdBQVc7QUFDNUQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGFBQWE7QUFDYjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsUUFBUTtBQUNSO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsbURBQW1ELFlBQVk7QUFDL0Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsWUFBWSx5REFBeUQ7QUFDckU7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxzQkFBc0I7QUFDdEI7QUFDQSx3QkFBd0IsV0FBVyxnQkFBZ0I7QUFDbkQseUJBQXlCLFdBQVcsaUJBQWlCO0FBQ3JELHlCQUF5QixXQUFXLGlCQUFpQjtBQUNyRCwwQkFBMEIsV0FBVyxrQkFBa0I7QUFDdkQsMEJBQTBCLFdBQVcsa0JBQWtCO0FBQ3ZELG1DQUFtQyxXQUFXLDJCQUEyQjtBQUN6RSw2QkFBNkIsV0FBVyxxQkFBcUI7QUFDN0QsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsVUFBVTtBQUNWO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsaUJBQWlCO0FBQ2pCO0FBQ0E7QUFDQTtBQUNBLG9CQUFvQjtBQUNwQjtBQUNBO0FBQ0E7QUFDQSxrQkFBa0I7QUFDbEI7QUFDQTtBQUNBLG9CQUFvQjtBQUNwQjtBQUNBO0FBQ0E7QUFDQTtBQUNBLGdCQUFnQjtBQUNoQjtBQUNBO0FBQ0Esa0JBQWtCO0FBQ2xCO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsMkNBQTJDO0FBQzNDO0FBQ0EsY0FBYztBQUNkO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxjQUFjO0FBQ2Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxRQUFRO0FBQ1I7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSwrQ0FBK0MsUUFBUTtBQUN2RDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsVUFBVTtBQUNWO0FBQ0EsUUFBUTtBQUNSO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGVBQWUsZ0JBQWdCO0FBQy9CO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFlBQVk7QUFDWjtBQUNBO0FBQ0E7QUFDQTtBQUNBLFlBQVk7QUFDWjtBQUNBLFFBQVE7QUFDUjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsUUFBUTtBQUNSO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFdBQVc7QUFDWDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0EsV0FBVztBQUNYO0FBQ0E7QUFDQTtBQUNBLFdBQVc7QUFDWDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxRQUFRO0FBQ1I7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxVQUFVO0FBQ1Y7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGFBQWE7QUFDYjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esd0JBQXdCLHNCQUFzQjtBQUM5QztBQUNBLDRCQUE0Qix5QkFBeUI7QUFDckQ7QUFDQTtBQUNBO0FBQ0EsUUFBUTtBQUNSO0FBQ0E7QUFDQSxvQkFBb0IsaUJBQWlCO0FBQ3JDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSx3QkFBd0IsaUNBQWlDO0FBQ3pEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esa0JBQWtCLE1BQU07QUFDeEIsa0JBQWtCLDRDQUE0QztBQUM5RCxnQkFBZ0IsZ0JBQWdCO0FBQ2hDO0FBQ0E7QUFDQSxnQkFBZ0IsTUFBTTtBQUN0QjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxxQkFBcUIsYUFBYTtBQUNsQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxZQUFZLDRDQUE0QztBQUN4RDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSw2Q0FBNkM7QUFDN0M7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHdCQUF3QjtBQUN4QjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSx1QkFBdUI7QUFDdkI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsY0FBYztBQUNkO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFFBQVE7QUFDUjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esa0NBQWtDLE9BQU87QUFDekM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esd0JBQXdCLHNCQUFzQjtBQUM5QztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsVUFBVTtBQUNWO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EscUJBQXFCLGlCQUFpQjtBQUN0QztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxRQUFRO0FBQ1I7QUFDQTtBQUNBO0FBQ0E7QUFDQSxpRUFBaUUsT0FBTztBQUN4RTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsV0FBVztBQUNYO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxrQ0FBa0M7QUFDbEMsaUJBQWlCO0FBQ2pCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxhQUFhLFFBQVE7QUFDckI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxXQUFXO0FBQ1g7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSw4Q0FBOEMsaUJBQWlCO0FBQy9EO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esa0hBQWtILDhCQUE4QjtBQUNoSjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxnTkFBZ047QUFDaE47QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsUUFBUTtBQUNSO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsUUFBUTtBQUNSO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFFBQVE7QUFDUjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esa0pBQWtKLGlCQUFpQjtBQUNuSztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGtKQUFrSixpQkFBaUIsbURBQW1ELG1CQUFtQixXQUFXLCtCQUErQjtBQUNuUjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSw0RkFBNEYsR0FBRztBQUMvRjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxtQ0FBbUMsa0JBQWtCO0FBQ3JEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsUUFBUTtBQUNSO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esd0JBQXdCLGVBQWU7QUFDdkM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVCwrQkFBK0I7QUFDL0I7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsMERBQTBEO0FBQzFEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSw2QkFBNkIscUNBQXFDO0FBQ2xFO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esc0JBQXNCLHNCQUFzQjtBQUM1QztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGFBQWEseUJBQXlCO0FBQ3RDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSx3QkFBd0IsTUFBTTtBQUM5QjtBQUNBO0FBQ0E7QUFDQSxxQkFBcUI7QUFDckI7QUFDQTtBQUNBO0FBQ0EsaUJBQWlCLE1BQU07QUFDdkI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsVUFBVTtBQUNWO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxxQkFBcUIsa0RBQWtEO0FBQ3ZFO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGFBQWE7QUFDYjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsaUNBQWlDLG9DQUFvQztBQUNyRTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsMkRBQTJELGlCQUFpQjtBQUM1RTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSx5REFBeUQsaUJBQWlCO0FBQzFFO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHlCQUF5QixrREFBa0Q7QUFDM0U7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxpQkFBaUI7QUFDakI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsaUNBQWlDLDZDQUE2QztBQUM5RTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxRQUFRO0FBQ1I7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxhQUFhLHFDQUFxQztBQUNsRDtBQUNBO0FBQ0E7QUFDQTtBQUNBLGFBQWEsd0NBQXdDO0FBQ3JEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSx5QkFBeUIsK0JBQStCO0FBQ3hEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsZ0RBQWdELHNCQUFzQjtBQUN0RTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHVEQUF1RCxpQkFBaUI7QUFDeEU7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsUUFBUTtBQUNSO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsZ0RBQWdELDhCQUE4QjtBQUM5RTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxhQUFhLGlCQUFpQjtBQUM5QjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsYUFBYSxnQkFBZ0I7QUFDN0I7QUFDQTtBQUNBO0FBQ0E7QUFDQSxvQkFBb0IsZUFBZTtBQUNuQztBQUNBO0FBQ0EsNEJBQTRCLHFCQUFxQjtBQUNqRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsVUFBVTtBQUNWO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxVQUFVO0FBQ1Y7QUFDQTtBQUNBLGtDQUFrQyxvQkFBb0I7QUFDdEQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxVQUFVO0FBQ1Y7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esa0JBQWtCO0FBQ2xCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFFBQVE7QUFDUjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLG9DQUFvQyxPQUFPO0FBQzNDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHdCQUF3QixzQkFBc0I7QUFDOUM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSwwQkFBMEIsc0JBQXNCO0FBQ2hELFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQSwwQkFBMEIsMEJBQTBCO0FBQ3BEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxZQUFZO0FBQ1o7QUFDQTtBQUNBLGVBQWU7QUFDZjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxlQUFlO0FBQ2Y7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esa0JBQWtCLGdEQUFnRDtBQUNsRTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxZQUFZO0FBQ1o7QUFDQTtBQUNBO0FBQ0EsVUFBVTtBQUNWO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGlCQUFpQjtBQUNqQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHdCQUF3QjtBQUN4QjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSx3QkFBd0I7QUFDeEI7QUFDQTtBQUNBO0FBQ0E7QUFDQSxvQkFBb0I7QUFDcEI7QUFDQSxzQ0FBc0M7QUFDdEM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxZQUFZO0FBQ1o7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsYUFBYTtBQUNiO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFVBQVU7QUFDVjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esc0NBQXNDLDhCQUE4QjtBQUNwRTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esc0JBQXNCLDRDQUE0QztBQUNsRTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFVBQVU7QUFDVjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsV0FBVztBQUNYO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsUUFBUTtBQUNSO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxRQUFRO0FBQ1I7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxlQUFlO0FBQ2Y7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsaUJBQWlCO0FBQ2pCO0FBQ0EsZUFBZTtBQUNmO0FBQ0EsMENBQTBDLG9CQUFvQjtBQUM5RDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFlBQVk7QUFDWjtBQUNBO0FBQ0E7QUFDQSxRQUFRO0FBQ1I7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLG1CQUFtQjtBQUNuQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGNBQWM7QUFDZDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGVBQWU7QUFDZjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxZQUFZO0FBQ1o7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxhQUFhO0FBQ2I7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxVQUFVO0FBQ1Y7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsUUFBUTtBQUNSO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsNEJBQTRCO0FBQzVCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsUUFBUTtBQUNSO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxnQkFBZ0I7QUFDaEI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsUUFBUTtBQUNSO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsWUFBWTtBQUNaO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFVBQVU7QUFDVjtBQUNBLFVBQVU7QUFDVjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFFBQVE7QUFDUjtBQUNBO0FBQ0E7QUFDQSxVQUFVO0FBQ1Y7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxhQUFhO0FBQ2I7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxzQkFBc0IsdUJBQXVCO0FBQzdDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFVBQVU7QUFDVjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxlQUFlO0FBQ2Y7QUFDQTtBQUNBO0FBQ0EsdUJBQXVCO0FBQ3ZCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLG9DQUFvQyxvQ0FBb0M7QUFDeEU7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsVUFBVTtBQUNWO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxVQUFVO0FBQ1Y7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxVQUFVO0FBQ1Y7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsUUFBUTtBQUNSO0FBQ0E7QUFDQTtBQUNBLFlBQVksb0JBQW9CLHFDQUFxQztBQUNyRTtBQUNBO0FBQ0EsUUFBUTtBQUNSO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxVQUFVO0FBQ1Y7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxRQUFRO0FBQ1I7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esd0NBQXdDLG1CQUFtQjtBQUMzRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLDhCQUE4QjtBQUM5QjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxZQUFZO0FBQ1osWUFBWTtBQUNaO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFFBQVE7QUFDUjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSx5REFBeUQsaUJBQWlCO0FBQzFFO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsYUFBYTtBQUNiO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsaUNBQWlDLHlDQUF5QztBQUMxRTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxpTUFBaU0sR0FBRztBQUNwTTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxlQUFlLDRCQUE0QjtBQUMzQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsK0NBQStDLDRCQUE0QjtBQUMzRTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsYUFBYTtBQUNiO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGlCQUFpQiw2QkFBNkI7QUFDOUM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFdBQVc7QUFDWDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxpQkFBaUIsWUFBWTtBQUM3QjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsV0FBVztBQUNYO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSw2Q0FBNkMsNEJBQTRCO0FBQ3pFO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esc0JBQXNCO0FBQ3RCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLG9CQUFvQjtBQUNwQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esc0JBQXNCO0FBQ3RCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxjQUFjO0FBQ2Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxVQUFVO0FBQ1Y7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLCtDQUErQyxRQUFRO0FBQ3ZEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFVBQVU7QUFDVjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsUUFBUTtBQUNSO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLDJCQUEyQixlQUFlO0FBQzFDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsVUFBVTtBQUNWO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsVUFBVTtBQUNWO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxlQUFlLHVCQUF1QjtBQUN0QztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFVBQVU7QUFDVjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EscUJBQXFCO0FBQ3JCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsWUFBWTtBQUNaO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHVEQUF1RDtBQUN2RDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFFBQVE7QUFDUjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxtQ0FBbUMsaUNBQWlDO0FBQ3BFO0FBQ0EsUUFBUTtBQUNSO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNULFFBQVE7QUFDUjtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSx1QkFBdUI7QUFDdkI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHlCQUF5QjtBQUN6QjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esd0JBQXdCO0FBQ3hCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHdCQUF3QjtBQUN4QjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFlBQVk7QUFDWjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsUUFBUTtBQUNSO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsUUFBUTtBQUNSO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGdDQUFnQyx1QkFBdUI7QUFDdkQ7QUFDQTtBQUNBO0FBQ0E7QUFDQSxZQUFZO0FBQ1o7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLDRDQUE0QywrQkFBK0I7QUFDM0U7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsUUFBUTtBQUNSO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsaUVBQWlFO0FBQ2pFO0FBQ0Esc0JBQXNCO0FBQ3RCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsWUFBWTtBQUNaO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxRQUFRO0FBQ1I7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFFBQVE7QUFDUjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsY0FBYztBQUNkO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsUUFBUTtBQUNSO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGVBQWU7QUFDZjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLDRCQUE0QjtBQUM1QjtBQUNBO0FBQ0E7QUFDQSxtQkFBbUI7QUFDbkI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxpQkFBaUI7QUFDakI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxxQkFBcUI7QUFDckI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsVUFBVTtBQUNWO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFVBQVU7QUFDVjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsMEJBQTBCO0FBQzFCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGVBQWU7QUFDZjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxVQUFVLDRDQUE0QztBQUN0RDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLDBNQUEwTSxHQUFHO0FBQzdNO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxXQUFXO0FBQ1g7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLDBCQUEwQixzQkFBc0I7QUFDaEQ7QUFDQTtBQUNBO0FBQ0E7QUFDQSw4Q0FBOEMsWUFBWTtBQUMxRDtBQUNBO0FBQ0E7QUFDQSxVQUFVO0FBQ1Y7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esa0RBQWtELGtCQUFrQjtBQUNwRTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxtQkFBbUIsMEJBQTBCO0FBQzdDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsbUNBQW1DLHNCQUFzQjtBQUN6RDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLDRDQUE0QyxzQkFBc0I7QUFDbEU7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxVQUFVO0FBQ1Y7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esa0RBQWtELDBCQUEwQjtBQUM1RTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsaUJBQWlCLHdDQUF3QztBQUN6RDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGdCQUFnQjtBQUNoQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxpQkFBaUI7QUFDakI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGdCQUFnQjtBQUNoQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsZ0JBQWdCO0FBQ2hCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHFEQUFxRCxTQUFTO0FBQzlEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGFBQWE7QUFDYjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsaUJBQWlCO0FBQ2pCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHFCQUFxQjtBQUNyQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSwwQ0FBMEMsbUNBQW1DO0FBQzdFO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLDJDQUEyQyx1QkFBdUI7QUFDbEU7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsVUFBVTtBQUNWO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLDhDQUE4QyxnQkFBZ0I7QUFDOUQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFFBQVE7QUFDUjtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsOERBQThELGlCQUFpQjtBQUMvRTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLDZCQUE2QjtBQUM3QjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLG9EQUFvRCxnQkFBZ0I7QUFDcEU7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsdUJBQXVCLHdCQUF3QjtBQUMvQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsY0FBYztBQUNkO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxnQkFBZ0I7QUFDaEI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxjQUFjO0FBQ2Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHFEQUFxRCxrQkFBa0I7QUFDdkU7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGdCQUFnQjtBQUNoQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsK0JBQStCLGdDQUFnQyw4RUFBOEUsaUJBQWlCLGdCQUFnQixHQUFHLGFBQWE7QUFDOUw7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsaUJBQWlCO0FBQ2pCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxZQUFZO0FBQ1o7QUFDQSxRQUFRO0FBQ1I7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxZQUFZO0FBQ1o7QUFDQSxRQUFRO0FBQ1I7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFVBQVU7QUFDVjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFdBQVc7QUFDWDtBQUNBLFFBQVE7QUFDUjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxjQUFjO0FBQ2Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFFBQVE7QUFDUjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxnQkFBZ0I7QUFDaEI7QUFDQTtBQUNBO0FBQ0EsWUFBWTtBQUNaO0FBQ0EsWUFBWTtBQUNaO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGdCQUFnQjtBQUNoQjtBQUNBO0FBQ0E7QUFDQSxZQUFZO0FBQ1o7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFFBQVE7QUFDUjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsUUFBUTtBQUNSO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsZ0JBQWdCO0FBQ2hCLGVBQWUsd0JBQXdCO0FBQ3ZDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsUUFBUTtBQUNSO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsZ0JBQWdCO0FBQ2hCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esd0JBQXdCO0FBQ3hCLGlDQUFpQztBQUNqQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsdUJBQXVCO0FBQ3ZCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxzREFBc0Q7QUFDdEQsY0FBYztBQUNkO0FBQ0EsK0NBQStDO0FBQy9DLFFBQVE7QUFDUjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esb0NBQW9DLHFCQUFxQjtBQUN6RDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGlCQUFpQixxQkFBcUI7QUFDdEM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsY0FBYztBQUNkO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGNBQWM7QUFDZDtBQUNBO0FBQ0EsWUFBWTtBQUNaO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGtDQUFrQyxpQkFBaUI7QUFDbkQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsVUFBVTtBQUNWO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGdCQUFnQjtBQUNoQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsZ0JBQWdCO0FBQ2hCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFVBQVU7QUFDVjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQSx3QkFBd0Isc0JBQXNCO0FBQzlDO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esb0JBQW9CLGlCQUFpQjtBQUNyQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSw4Q0FBOEMsc0JBQXNCO0FBQ3BFO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLDBDQUEwQyx1QkFBdUI7QUFDakU7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHNDQUFzQyx1QkFBdUI7QUFDN0Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxrQkFBa0I7QUFDbEI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsY0FBYztBQUNkO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsY0FBYztBQUNkO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxjQUFjO0FBQ2Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxvQkFBb0I7QUFDcEI7QUFDQTtBQUNBO0FBQ0EsZ0JBQWdCO0FBQ2hCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLG9CQUFvQjtBQUNwQjtBQUNBO0FBQ0E7QUFDQSxnQkFBZ0I7QUFDaEI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxxQkFBcUIsdUJBQXVCO0FBQzVDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsVUFBVTtBQUNWO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSw4Q0FBOEMsc0JBQXNCO0FBQ3BFO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSw4Q0FBOEMsc0JBQXNCO0FBQ3BFO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSw0Q0FBNEMsc0JBQXNCO0FBQ2xFO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGNBQWM7QUFDZDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGNBQWM7QUFDZDtBQUNBO0FBQ0EsWUFBWTtBQUNaO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLDRDQUE0QyxzQkFBc0I7QUFDbEU7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSw4Q0FBOEMsc0JBQXNCO0FBQ3BFO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsY0FBYztBQUNkO0FBQ0E7QUFDQSxZQUFZO0FBQ1o7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLDRDQUE0QyxzQkFBc0I7QUFDbEU7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLDhDQUE4QyxzQkFBc0I7QUFDcEU7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSw4Q0FBOEMsc0JBQXNCO0FBQ3BFO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLDBCQUEwQixzQkFBc0I7QUFDaEQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSw4Q0FBOEMsc0JBQXNCO0FBQ3BFO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsMEJBQTBCLHNCQUFzQjtBQUNoRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSw0Q0FBNEMsc0JBQXNCO0FBQ2xFO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxhQUFhLHFCQUFxQjtBQUNsQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLDhDQUE4QyxxQkFBcUI7QUFDbkU7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxRQUFRO0FBQ1I7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFVBQVU7QUFDVjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsUUFBUTtBQUNSO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsK0JBQStCLDhDQUE4QztBQUM3RTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHNDQUFzQztBQUN0QztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLDBCQUEwQixnQkFBZ0I7QUFDMUM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGNBQWM7QUFDZDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsaUJBQWlCLHVCQUF1QjtBQUN4QztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSx1Q0FBdUMsV0FBVztBQUNsRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxlQUFlLDBCQUEwQjtBQUN6QztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxVQUFVO0FBQ1Y7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxhQUFhLHlCQUF5QjtBQUN0QztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsUUFBUTtBQUNSO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxVQUFVO0FBQ1Y7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsYUFBYSwyQ0FBMkM7QUFDeEQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFFBQVE7QUFDUjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFFBQVE7QUFDUjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxRQUFRO0FBQ1I7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLDZDQUE2QyxnQkFBZ0I7QUFDN0Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxRQUFRO0FBQ1I7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxhQUFhO0FBQ2I7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsWUFBWTtBQUNaO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxtQkFBbUI7QUFDbkI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFlBQVk7QUFDWjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFlBQVk7QUFDWjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsWUFBWTtBQUNaO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFlBQVk7QUFDWjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSx5QkFBeUI7QUFDekI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsWUFBWTtBQUNaO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxRQUFRO0FBQ1I7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsZUFBZSxpQ0FBaUM7QUFDaEQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxRQUFRO0FBQ1I7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsNk1BQTZNLDBDQUEwQyxFQUFFO0FBQ3pQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSw4Q0FBOEMsc0JBQXNCO0FBQ3BFO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFFBQVE7QUFDUjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFlBQVk7QUFDWjtBQUNBO0FBQ0E7QUFDQTtBQUNBLFdBQVc7QUFDWDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSw2S0FBNkssMENBQTBDLEVBQUU7QUFDek47QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLDhDQUE4QyxlQUFlO0FBQzdEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxnQkFBZ0I7QUFDaEI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxVQUFVO0FBQ1Y7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxVQUFVO0FBQ1Y7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esa0JBQWtCO0FBQ2xCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EscUJBQXFCO0FBQ3JCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsZUFBZTtBQUNmO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxRQUFRO0FBQ1I7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esc0JBQXNCLDBCQUEwQjtBQUNoRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsYUFBYTtBQUNiO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsYUFBYTtBQUNiO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esa0JBQWtCO0FBQ2xCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHlEQUF5RCxrQkFBa0I7QUFDM0U7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLG1CQUFtQixvQkFBb0I7QUFDdkM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGVBQWU7QUFDZjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxnQkFBZ0I7QUFDaEI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSwyQkFBMkIsa0NBQWtDO0FBQzdEO0FBQ0EsMkJBQTJCLGtDQUFrQztBQUM3RDtBQUNBO0FBQ0EsMkJBQTJCLFlBQVk7QUFDdkM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGVBQWU7QUFDZjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxpQkFBaUI7QUFDakI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLDZCQUE2QixvQ0FBb0M7QUFDakU7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQSw0SEFBNEgsbUJBQW1CLFdBQVcsK0JBQStCO0FBQ3pMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsWUFBWTtBQUNaO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsdUVBQXVFLFlBQVk7QUFDbkY7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSx1RUFBdUUsWUFBWTtBQUNuRjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLDJCQUEyQixpQ0FBaUM7QUFDNUQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHNCQUFzQix1QkFBdUI7QUFDN0M7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esa0hBQWtILDhCQUE4QjtBQUNoSjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSw2QkFBNkI7QUFDN0I7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFFBQVE7QUFDUjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGtDQUFrQztBQUNsQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esb0RBQW9ELG9CQUFvQjtBQUN4RTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLG9CQUFvQjtBQUNwQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsWUFBWTtBQUNaO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsUUFBUTtBQUNSO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxhQUFhLFVBQVU7QUFDdkI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxhQUFhLHlCQUF5QjtBQUN0QztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFVBQVU7QUFDVjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsWUFBWTtBQUNaO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxhQUFhLHlCQUF5QjtBQUN0QztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxhQUFhLGNBQWM7QUFDM0I7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esa0NBQWtDO0FBQ2xDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxpQkFBaUI7QUFDakI7QUFDQTtBQUNBLFlBQVk7QUFDWjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSwwQkFBMEIsa0JBQWtCO0FBQzVDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFlBQVk7QUFDWjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsMEJBQTBCLGdCQUFnQjtBQUMxQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxZQUFZO0FBQ1o7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLDBDQUEwQyxnQkFBZ0I7QUFDMUQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsaURBQWlELG1CQUFtQjtBQUNwRTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxtQkFBbUIsZ0RBQWdEO0FBQ25FO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxpQkFBaUI7QUFDakI7QUFDQTtBQUNBLGdCQUFnQjtBQUNoQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHlCQUF5QjtBQUN6QixlQUFlO0FBQ2Y7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxtQkFBbUI7QUFDbkI7QUFDQTtBQUNBLGtCQUFrQjtBQUNsQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSwwQkFBMEI7QUFDMUI7QUFDQTtBQUNBO0FBQ0EsY0FBYztBQUNkO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esc0JBQXNCO0FBQ3RCO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxXQUFXO0FBQ1g7QUFDQTtBQUNBLFdBQVc7QUFDWDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHNDQUFzQztBQUN0QztBQUNBO0FBQ0E7QUFDQTtBQUNBLGFBQWE7QUFDYjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxhQUFhO0FBQ2I7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsbUNBQW1DO0FBQ25DO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxRQUFRO0FBQ1I7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsdUJBQXVCLCtCQUErQjtBQUN0RDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLDZIQUE2SCxLQUFLLGFBQWEsS0FBSztBQUNwSjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGlJQUFpSSxLQUFLLGFBQWEsS0FBSztBQUN4SjtBQUNBO0FBQ0EsMEZBQTBGLEtBQUs7QUFDL0Y7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxXQUFXO0FBQ1g7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGFBQWE7QUFDYjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLG9CQUFvQixVQUFVO0FBQzlCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFVBQVU7QUFDVjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHdFQUF3RTtBQUN4RTtBQUNBO0FBQ0E7QUFDQSw0QkFBNEI7QUFDNUI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHFEQUFxRCxZQUFZO0FBQ2pFO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFFBQVE7QUFDUjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFFBQVE7QUFDUjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxpQkFBaUIsb0JBQW9CO0FBQ3JDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EscURBQXFELE9BQU87QUFDNUQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFVBQVU7QUFDVjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFlBQVk7QUFDWjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsWUFBWTtBQUNaO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxXQUFXO0FBQ1g7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxlQUFlO0FBQ2Y7QUFDQTtBQUNBLFlBQVk7QUFDWjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxVQUFVO0FBQ1Y7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSw0QkFBNEIsK0JBQStCO0FBQzNEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGlCQUFpQjtBQUNqQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHNCQUFzQiwyQ0FBMkM7QUFDakU7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLCtCQUErQix5QkFBeUI7QUFDeEQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLG9CQUFvQixtQkFBTyxDQUFDLHdFQUFXO0FBQ3ZDLGNBQWMsbUJBQU8sQ0FBQyxnRUFBTztBQUM3QixpQkFBaUIsbUJBQU8sQ0FBQyx3RUFBVztBQUNwQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsdUNBQXVDO0FBQ3ZDLG9DQUFvQztBQUNwQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBLG9DQUFvQztBQUNwQyxzQ0FBc0M7QUFDdEM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQLGtCQUFrQjtBQUNsQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSw0Q0FBNEM7QUFDNUMsMkJBQTJCO0FBQzNCLDRCQUE0QjtBQUM1QjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUCw2QkFBNkI7QUFDN0I7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSwyQkFBMkI7QUFDM0I7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQSxRQUFRO0FBQ1I7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0Esa0NBQWtDLG9CQUFvQixvQkFBb0I7QUFDMUU7QUFDQTtBQUNBO0FBQ0E7QUFDQSxxQ0FBcUM7QUFDckM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBLG9DQUFvQyx5QkFBeUIsaUJBQWlCO0FBQzlFO0FBQ0EscUNBQXFDLHNCQUFzQixrQkFBa0I7QUFDN0U7QUFDQSx5Q0FBeUM7QUFDekM7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0EseUNBQXlDO0FBQ3pDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQSwyQ0FBMkMsb0JBQW9CLFNBQVM7QUFDeEU7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQLHdDQUF3QztBQUN4QztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQSx1Q0FBdUM7QUFDdkM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQSxxQ0FBcUM7QUFDckM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBLDBDQUEwQztBQUMxQztBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQSxxQ0FBcUM7QUFDckM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBLHNDQUFzQztBQUN0QztBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQLDZCQUE2QjtBQUM3QjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLDJEQUEyRDtBQUMzRDtBQUNBO0FBQ0EsTUFBTTtBQUNOO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE1BQU07QUFDTjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxpQkFBaUI7QUFDakI7QUFDQTtBQUNBO0FBQ0E7QUFDQSxpQkFBaUI7QUFDakI7QUFDQSxhQUFhO0FBQ2I7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHFEQUFxRDtBQUNyRCwyREFBMkQ7QUFDM0Qsa0RBQWtEO0FBQ2xELGlEQUFpRDtBQUNqRDtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSw2QkFBNkIsZUFBZTtBQUM1QztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxXQUFXO0FBQ1g7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsV0FBVztBQUNYO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFVBQVU7QUFDVjtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsVUFBVTtBQUNWO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxVQUFVO0FBQ1Y7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsVUFBVTtBQUNWO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxVQUFVO0FBQ1Y7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFVBQVU7QUFDVjtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxVQUFVO0FBQ1Y7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFVBQVU7QUFDVjtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsVUFBVTtBQUNWO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFVBQVU7QUFDVjtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsVUFBVTtBQUNWO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxVQUFVO0FBQ1Y7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsVUFBVTtBQUNWO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFVBQVU7QUFDVjtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFVBQVU7QUFDVjtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsVUFBVTtBQUNWO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFVBQVU7QUFDVjtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFVBQVU7QUFDVjtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsVUFBVTtBQUNWO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFVBQVU7QUFDVjtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFVBQVU7QUFDVjtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFlBQVk7QUFDWjtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFlBQVk7QUFDWjtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFlBQVk7QUFDWjtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxZQUFZO0FBQ1o7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxXQUFXO0FBQ1g7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFlBQVk7QUFDWjtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFlBQVk7QUFDWjtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsV0FBVztBQUNYO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsaUJBQWlCO0FBQ2pCO0FBQ0EsZ0JBQWdCO0FBQ2hCLG9DQUFvQyxPQUFPO0FBQzNDLHNDQUFzQyxPQUFPO0FBQzdDO0FBQ0EsZ0JBQWdCLE9BQU87QUFDdkI7QUFDQTtBQUNBO0FBQ0EsYUFBYTtBQUNiO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxrQ0FBa0M7QUFDbEM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esc0JBQXNCLG9DQUFvQztBQUMxRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsNEJBQTRCLHlCQUF5QjtBQUNyRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7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QTtBQUNBO0FBQ0E7QUFDQTtBQUNBLG1CQUFtQjtBQUNuQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLElBQUksa0JBQWtCO0FBQ3RCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsK0pBQStKLHlCQUF5QjtBQUN4TDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxJQUFJLG1CQUFtQjtBQUN2QjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxJQUFJLGVBQWU7QUFDbkI7QUFDQTtBQUNBO0FBQ0E7QUFDQSxHQUFHIiwic291cmNlcyI6WyJEOlxcZG9uZ3l1bi1wcm9qZWN0c1xcdHdvXFxub2RlX21vZHVsZXNcXHJlYWN0LWRvbVxcY2pzXFxyZWFjdC1kb20tY2xpZW50LmRldmVsb3BtZW50LmpzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGxpY2Vuc2UgUmVhY3RcbiAqIHJlYWN0LWRvbS1jbGllbnQuZGV2ZWxvcG1lbnQuanNcbiAqXG4gKiBDb3B5cmlnaHQgKGMpIE1ldGEgUGxhdGZvcm1zLCBJbmMuIGFuZCBhZmZpbGlhdGVzLlxuICpcbiAqIFRoaXMgc291cmNlIGNvZGUgaXMgbGljZW5zZWQgdW5kZXIgdGhlIE1JVCBsaWNlbnNlIGZvdW5kIGluIHRoZVxuICogTElDRU5TRSBmaWxlIGluIHRoZSByb290IGRpcmVjdG9yeSBvZiB0aGlzIHNvdXJjZSB0cmVlLlxuICovXG5cbi8qXG4gTW9kZXJuaXpyIDMuMC4wcHJlIChDdXN0b20gQnVpbGQpIHwgTUlUXG4qL1xuXCJ1c2Ugc3RyaWN0XCI7XG5cInByb2R1Y3Rpb25cIiAhPT0gcHJvY2Vzcy5lbnYuTk9ERV9FTlYgJiZcbiAgKGZ1bmN0aW9uICgpIHtcbiAgICBmdW5jdGlvbiBmaW5kSG9vayhmaWJlciwgaWQpIHtcbiAgICAgIGZvciAoZmliZXIgPSBmaWJlci5tZW1vaXplZFN0YXRlOyBudWxsICE9PSBmaWJlciAmJiAwIDwgaWQ7IClcbiAgICAgICAgKGZpYmVyID0gZmliZXIubmV4dCksIGlkLS07XG4gICAgICByZXR1cm4gZmliZXI7XG4gICAgfVxuICAgIGZ1bmN0aW9uIGNvcHlXaXRoU2V0SW1wbChvYmosIHBhdGgsIGluZGV4LCB2YWx1ZSkge1xuICAgICAgaWYgKGluZGV4ID49IHBhdGgubGVuZ3RoKSByZXR1cm4gdmFsdWU7XG4gICAgICB2YXIga2V5ID0gcGF0aFtpbmRleF0sXG4gICAgICAgIHVwZGF0ZWQgPSBpc0FycmF5SW1wbChvYmopID8gb2JqLnNsaWNlKCkgOiBhc3NpZ24oe30sIG9iaik7XG4gICAgICB1cGRhdGVkW2tleV0gPSBjb3B5V2l0aFNldEltcGwob2JqW2tleV0sIHBhdGgsIGluZGV4ICsgMSwgdmFsdWUpO1xuICAgICAgcmV0dXJuIHVwZGF0ZWQ7XG4gICAgfVxuICAgIGZ1bmN0aW9uIGNvcHlXaXRoUmVuYW1lKG9iaiwgb2xkUGF0aCwgbmV3UGF0aCkge1xuICAgICAgaWYgKG9sZFBhdGgubGVuZ3RoICE9PSBuZXdQYXRoLmxlbmd0aClcbiAgICAgICAgY29uc29sZS53YXJuKFwiY29weVdpdGhSZW5hbWUoKSBleHBlY3RzIHBhdGhzIG9mIHRoZSBzYW1lIGxlbmd0aFwiKTtcbiAgICAgIGVsc2Uge1xuICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IG5ld1BhdGgubGVuZ3RoIC0gMTsgaSsrKVxuICAgICAgICAgIGlmIChvbGRQYXRoW2ldICE9PSBuZXdQYXRoW2ldKSB7XG4gICAgICAgICAgICBjb25zb2xlLndhcm4oXG4gICAgICAgICAgICAgIFwiY29weVdpdGhSZW5hbWUoKSBleHBlY3RzIHBhdGhzIHRvIGJlIHRoZSBzYW1lIGV4Y2VwdCBmb3IgdGhlIGRlZXBlc3Qga2V5XCJcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgfVxuICAgICAgICByZXR1cm4gY29weVdpdGhSZW5hbWVJbXBsKG9iaiwgb2xkUGF0aCwgbmV3UGF0aCwgMCk7XG4gICAgICB9XG4gICAgfVxuICAgIGZ1bmN0aW9uIGNvcHlXaXRoUmVuYW1lSW1wbChvYmosIG9sZFBhdGgsIG5ld1BhdGgsIGluZGV4KSB7XG4gICAgICB2YXIgb2xkS2V5ID0gb2xkUGF0aFtpbmRleF0sXG4gICAgICAgIHVwZGF0ZWQgPSBpc0FycmF5SW1wbChvYmopID8gb2JqLnNsaWNlKCkgOiBhc3NpZ24oe30sIG9iaik7XG4gICAgICBpbmRleCArIDEgPT09IG9sZFBhdGgubGVuZ3RoXG4gICAgICAgID8gKCh1cGRhdGVkW25ld1BhdGhbaW5kZXhdXSA9IHVwZGF0ZWRbb2xkS2V5XSksXG4gICAgICAgICAgaXNBcnJheUltcGwodXBkYXRlZClcbiAgICAgICAgICAgID8gdXBkYXRlZC5zcGxpY2Uob2xkS2V5LCAxKVxuICAgICAgICAgICAgOiBkZWxldGUgdXBkYXRlZFtvbGRLZXldKVxuICAgICAgICA6ICh1cGRhdGVkW29sZEtleV0gPSBjb3B5V2l0aFJlbmFtZUltcGwoXG4gICAgICAgICAgICBvYmpbb2xkS2V5XSxcbiAgICAgICAgICAgIG9sZFBhdGgsXG4gICAgICAgICAgICBuZXdQYXRoLFxuICAgICAgICAgICAgaW5kZXggKyAxXG4gICAgICAgICAgKSk7XG4gICAgICByZXR1cm4gdXBkYXRlZDtcbiAgICB9XG4gICAgZnVuY3Rpb24gY29weVdpdGhEZWxldGVJbXBsKG9iaiwgcGF0aCwgaW5kZXgpIHtcbiAgICAgIHZhciBrZXkgPSBwYXRoW2luZGV4XSxcbiAgICAgICAgdXBkYXRlZCA9IGlzQXJyYXlJbXBsKG9iaikgPyBvYmouc2xpY2UoKSA6IGFzc2lnbih7fSwgb2JqKTtcbiAgICAgIGlmIChpbmRleCArIDEgPT09IHBhdGgubGVuZ3RoKVxuICAgICAgICByZXR1cm4gKFxuICAgICAgICAgIGlzQXJyYXlJbXBsKHVwZGF0ZWQpID8gdXBkYXRlZC5zcGxpY2Uoa2V5LCAxKSA6IGRlbGV0ZSB1cGRhdGVkW2tleV0sXG4gICAgICAgICAgdXBkYXRlZFxuICAgICAgICApO1xuICAgICAgdXBkYXRlZFtrZXldID0gY29weVdpdGhEZWxldGVJbXBsKG9ialtrZXldLCBwYXRoLCBpbmRleCArIDEpO1xuICAgICAgcmV0dXJuIHVwZGF0ZWQ7XG4gICAgfVxuICAgIGZ1bmN0aW9uIHNob3VsZFN1c3BlbmRJbXBsKCkge1xuICAgICAgcmV0dXJuICExO1xuICAgIH1cbiAgICBmdW5jdGlvbiBzaG91bGRFcnJvckltcGwoKSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG4gICAgZnVuY3Rpb24gd2FybkZvck1pc3NpbmdLZXkoKSB7fVxuICAgIGZ1bmN0aW9uIHdhcm5JbnZhbGlkSG9va0FjY2VzcygpIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoXG4gICAgICAgIFwiRG8gbm90IGNhbGwgSG9va3MgaW5zaWRlIHVzZUVmZmVjdCguLi4pLCB1c2VNZW1vKC4uLiksIG9yIG90aGVyIGJ1aWx0LWluIEhvb2tzLiBZb3UgY2FuIG9ubHkgY2FsbCBIb29rcyBhdCB0aGUgdG9wIGxldmVsIG9mIHlvdXIgUmVhY3QgZnVuY3Rpb24uIEZvciBtb3JlIGluZm9ybWF0aW9uLCBzZWUgaHR0cHM6Ly9yZWFjdC5kZXYvbGluay9ydWxlcy1vZi1ob29rc1wiXG4gICAgICApO1xuICAgIH1cbiAgICBmdW5jdGlvbiB3YXJuSW52YWxpZENvbnRleHRBY2Nlc3MoKSB7XG4gICAgICBjb25zb2xlLmVycm9yKFxuICAgICAgICBcIkNvbnRleHQgY2FuIG9ubHkgYmUgcmVhZCB3aGlsZSBSZWFjdCBpcyByZW5kZXJpbmcuIEluIGNsYXNzZXMsIHlvdSBjYW4gcmVhZCBpdCBpbiB0aGUgcmVuZGVyIG1ldGhvZCBvciBnZXREZXJpdmVkU3RhdGVGcm9tUHJvcHMuIEluIGZ1bmN0aW9uIGNvbXBvbmVudHMsIHlvdSBjYW4gcmVhZCBpdCBkaXJlY3RseSBpbiB0aGUgZnVuY3Rpb24gYm9keSwgYnV0IG5vdCBpbnNpZGUgSG9va3MgbGlrZSB1c2VSZWR1Y2VyKCkgb3IgdXNlTWVtbygpLlwiXG4gICAgICApO1xuICAgIH1cbiAgICBmdW5jdGlvbiBub29wJDIoKSB7fVxuICAgIGZ1bmN0aW9uIHNldFRvU29ydGVkU3RyaW5nKHNldCkge1xuICAgICAgdmFyIGFycmF5ID0gW107XG4gICAgICBzZXQuZm9yRWFjaChmdW5jdGlvbiAodmFsdWUpIHtcbiAgICAgICAgYXJyYXkucHVzaCh2YWx1ZSk7XG4gICAgICB9KTtcbiAgICAgIHJldHVybiBhcnJheS5zb3J0KCkuam9pbihcIiwgXCIpO1xuICAgIH1cbiAgICBmdW5jdGlvbiBjcmVhdGVGaWJlcih0YWcsIHBlbmRpbmdQcm9wcywga2V5LCBtb2RlKSB7XG4gICAgICByZXR1cm4gbmV3IEZpYmVyTm9kZSh0YWcsIHBlbmRpbmdQcm9wcywga2V5LCBtb2RlKTtcbiAgICB9XG4gICAgZnVuY3Rpb24gc2NoZWR1bGVSb290KHJvb3QsIGVsZW1lbnQpIHtcbiAgICAgIHJvb3QuY29udGV4dCA9PT0gZW1wdHlDb250ZXh0T2JqZWN0ICYmXG4gICAgICAgICh1cGRhdGVDb250YWluZXJJbXBsKHJvb3QuY3VycmVudCwgMiwgZWxlbWVudCwgcm9vdCwgbnVsbCwgbnVsbCksXG4gICAgICAgIGZsdXNoU3luY1dvcmskMSgpKTtcbiAgICB9XG4gICAgZnVuY3Rpb24gc2NoZWR1bGVSZWZyZXNoKHJvb3QsIHVwZGF0ZSkge1xuICAgICAgaWYgKG51bGwgIT09IHJlc29sdmVGYW1pbHkpIHtcbiAgICAgICAgdmFyIHN0YWxlRmFtaWxpZXMgPSB1cGRhdGUuc3RhbGVGYW1pbGllcztcbiAgICAgICAgdXBkYXRlID0gdXBkYXRlLnVwZGF0ZWRGYW1pbGllcztcbiAgICAgICAgZmx1c2hQZW5kaW5nRWZmZWN0cygpO1xuICAgICAgICBzY2hlZHVsZUZpYmVyc1dpdGhGYW1pbGllc1JlY3Vyc2l2ZWx5KFxuICAgICAgICAgIHJvb3QuY3VycmVudCxcbiAgICAgICAgICB1cGRhdGUsXG4gICAgICAgICAgc3RhbGVGYW1pbGllc1xuICAgICAgICApO1xuICAgICAgICBmbHVzaFN5bmNXb3JrJDEoKTtcbiAgICAgIH1cbiAgICB9XG4gICAgZnVuY3Rpb24gc2V0UmVmcmVzaEhhbmRsZXIoaGFuZGxlcikge1xuICAgICAgcmVzb2x2ZUZhbWlseSA9IGhhbmRsZXI7XG4gICAgfVxuICAgIGZ1bmN0aW9uIGlzVmFsaWRDb250YWluZXIobm9kZSkge1xuICAgICAgcmV0dXJuICEoXG4gICAgICAgICFub2RlIHx8XG4gICAgICAgICgxICE9PSBub2RlLm5vZGVUeXBlICYmIDkgIT09IG5vZGUubm9kZVR5cGUgJiYgMTEgIT09IG5vZGUubm9kZVR5cGUpXG4gICAgICApO1xuICAgIH1cbiAgICBmdW5jdGlvbiBnZXROZWFyZXN0TW91bnRlZEZpYmVyKGZpYmVyKSB7XG4gICAgICB2YXIgbm9kZSA9IGZpYmVyLFxuICAgICAgICBuZWFyZXN0TW91bnRlZCA9IGZpYmVyO1xuICAgICAgaWYgKGZpYmVyLmFsdGVybmF0ZSkgZm9yICg7IG5vZGUucmV0dXJuOyApIG5vZGUgPSBub2RlLnJldHVybjtcbiAgICAgIGVsc2Uge1xuICAgICAgICBmaWJlciA9IG5vZGU7XG4gICAgICAgIGRvXG4gICAgICAgICAgKG5vZGUgPSBmaWJlciksXG4gICAgICAgICAgICAwICE9PSAobm9kZS5mbGFncyAmIDQwOTgpICYmIChuZWFyZXN0TW91bnRlZCA9IG5vZGUucmV0dXJuKSxcbiAgICAgICAgICAgIChmaWJlciA9IG5vZGUucmV0dXJuKTtcbiAgICAgICAgd2hpbGUgKGZpYmVyKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiAzID09PSBub2RlLnRhZyA/IG5lYXJlc3RNb3VudGVkIDogbnVsbDtcbiAgICB9XG4gICAgZnVuY3Rpb24gZ2V0U3VzcGVuc2VJbnN0YW5jZUZyb21GaWJlcihmaWJlcikge1xuICAgICAgaWYgKDEzID09PSBmaWJlci50YWcpIHtcbiAgICAgICAgdmFyIHN1c3BlbnNlU3RhdGUgPSBmaWJlci5tZW1vaXplZFN0YXRlO1xuICAgICAgICBudWxsID09PSBzdXNwZW5zZVN0YXRlICYmXG4gICAgICAgICAgKChmaWJlciA9IGZpYmVyLmFsdGVybmF0ZSksXG4gICAgICAgICAgbnVsbCAhPT0gZmliZXIgJiYgKHN1c3BlbnNlU3RhdGUgPSBmaWJlci5tZW1vaXplZFN0YXRlKSk7XG4gICAgICAgIGlmIChudWxsICE9PSBzdXNwZW5zZVN0YXRlKSByZXR1cm4gc3VzcGVuc2VTdGF0ZS5kZWh5ZHJhdGVkO1xuICAgICAgfVxuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuICAgIGZ1bmN0aW9uIGFzc2VydElzTW91bnRlZChmaWJlcikge1xuICAgICAgaWYgKGdldE5lYXJlc3RNb3VudGVkRmliZXIoZmliZXIpICE9PSBmaWJlcilcbiAgICAgICAgdGhyb3cgRXJyb3IoXCJVbmFibGUgdG8gZmluZCBub2RlIG9uIGFuIHVubW91bnRlZCBjb21wb25lbnQuXCIpO1xuICAgIH1cbiAgICBmdW5jdGlvbiBmaW5kQ3VycmVudEZpYmVyVXNpbmdTbG93UGF0aChmaWJlcikge1xuICAgICAgdmFyIGFsdGVybmF0ZSA9IGZpYmVyLmFsdGVybmF0ZTtcbiAgICAgIGlmICghYWx0ZXJuYXRlKSB7XG4gICAgICAgIGFsdGVybmF0ZSA9IGdldE5lYXJlc3RNb3VudGVkRmliZXIoZmliZXIpO1xuICAgICAgICBpZiAobnVsbCA9PT0gYWx0ZXJuYXRlKVxuICAgICAgICAgIHRocm93IEVycm9yKFwiVW5hYmxlIHRvIGZpbmQgbm9kZSBvbiBhbiB1bm1vdW50ZWQgY29tcG9uZW50LlwiKTtcbiAgICAgICAgcmV0dXJuIGFsdGVybmF0ZSAhPT0gZmliZXIgPyBudWxsIDogZmliZXI7XG4gICAgICB9XG4gICAgICBmb3IgKHZhciBhID0gZmliZXIsIGIgPSBhbHRlcm5hdGU7IDsgKSB7XG4gICAgICAgIHZhciBwYXJlbnRBID0gYS5yZXR1cm47XG4gICAgICAgIGlmIChudWxsID09PSBwYXJlbnRBKSBicmVhaztcbiAgICAgICAgdmFyIHBhcmVudEIgPSBwYXJlbnRBLmFsdGVybmF0ZTtcbiAgICAgICAgaWYgKG51bGwgPT09IHBhcmVudEIpIHtcbiAgICAgICAgICBiID0gcGFyZW50QS5yZXR1cm47XG4gICAgICAgICAgaWYgKG51bGwgIT09IGIpIHtcbiAgICAgICAgICAgIGEgPSBiO1xuICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgICAgfVxuICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGlmIChwYXJlbnRBLmNoaWxkID09PSBwYXJlbnRCLmNoaWxkKSB7XG4gICAgICAgICAgZm9yIChwYXJlbnRCID0gcGFyZW50QS5jaGlsZDsgcGFyZW50QjsgKSB7XG4gICAgICAgICAgICBpZiAocGFyZW50QiA9PT0gYSkgcmV0dXJuIGFzc2VydElzTW91bnRlZChwYXJlbnRBKSwgZmliZXI7XG4gICAgICAgICAgICBpZiAocGFyZW50QiA9PT0gYikgcmV0dXJuIGFzc2VydElzTW91bnRlZChwYXJlbnRBKSwgYWx0ZXJuYXRlO1xuICAgICAgICAgICAgcGFyZW50QiA9IHBhcmVudEIuc2libGluZztcbiAgICAgICAgICB9XG4gICAgICAgICAgdGhyb3cgRXJyb3IoXCJVbmFibGUgdG8gZmluZCBub2RlIG9uIGFuIHVubW91bnRlZCBjb21wb25lbnQuXCIpO1xuICAgICAgICB9XG4gICAgICAgIGlmIChhLnJldHVybiAhPT0gYi5yZXR1cm4pIChhID0gcGFyZW50QSksIChiID0gcGFyZW50Qik7XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgIGZvciAodmFyIGRpZEZpbmRDaGlsZCA9ICExLCBfY2hpbGQgPSBwYXJlbnRBLmNoaWxkOyBfY2hpbGQ7ICkge1xuICAgICAgICAgICAgaWYgKF9jaGlsZCA9PT0gYSkge1xuICAgICAgICAgICAgICBkaWRGaW5kQ2hpbGQgPSAhMDtcbiAgICAgICAgICAgICAgYSA9IHBhcmVudEE7XG4gICAgICAgICAgICAgIGIgPSBwYXJlbnRCO1xuICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChfY2hpbGQgPT09IGIpIHtcbiAgICAgICAgICAgICAgZGlkRmluZENoaWxkID0gITA7XG4gICAgICAgICAgICAgIGIgPSBwYXJlbnRBO1xuICAgICAgICAgICAgICBhID0gcGFyZW50QjtcbiAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBfY2hpbGQgPSBfY2hpbGQuc2libGluZztcbiAgICAgICAgICB9XG4gICAgICAgICAgaWYgKCFkaWRGaW5kQ2hpbGQpIHtcbiAgICAgICAgICAgIGZvciAoX2NoaWxkID0gcGFyZW50Qi5jaGlsZDsgX2NoaWxkOyApIHtcbiAgICAgICAgICAgICAgaWYgKF9jaGlsZCA9PT0gYSkge1xuICAgICAgICAgICAgICAgIGRpZEZpbmRDaGlsZCA9ICEwO1xuICAgICAgICAgICAgICAgIGEgPSBwYXJlbnRCO1xuICAgICAgICAgICAgICAgIGIgPSBwYXJlbnRBO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIGlmIChfY2hpbGQgPT09IGIpIHtcbiAgICAgICAgICAgICAgICBkaWRGaW5kQ2hpbGQgPSAhMDtcbiAgICAgICAgICAgICAgICBiID0gcGFyZW50QjtcbiAgICAgICAgICAgICAgICBhID0gcGFyZW50QTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICBfY2hpbGQgPSBfY2hpbGQuc2libGluZztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmICghZGlkRmluZENoaWxkKVxuICAgICAgICAgICAgICB0aHJvdyBFcnJvcihcbiAgICAgICAgICAgICAgICBcIkNoaWxkIHdhcyBub3QgZm91bmQgaW4gZWl0aGVyIHBhcmVudCBzZXQuIFRoaXMgaW5kaWNhdGVzIGEgYnVnIGluIFJlYWN0IHJlbGF0ZWQgdG8gdGhlIHJldHVybiBwb2ludGVyLiBQbGVhc2UgZmlsZSBhbiBpc3N1ZS5cIlxuICAgICAgICAgICAgICApO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBpZiAoYS5hbHRlcm5hdGUgIT09IGIpXG4gICAgICAgICAgdGhyb3cgRXJyb3IoXG4gICAgICAgICAgICBcIlJldHVybiBmaWJlcnMgc2hvdWxkIGFsd2F5cyBiZSBlYWNoIG90aGVycycgYWx0ZXJuYXRlcy4gVGhpcyBlcnJvciBpcyBsaWtlbHkgY2F1c2VkIGJ5IGEgYnVnIGluIFJlYWN0LiBQbGVhc2UgZmlsZSBhbiBpc3N1ZS5cIlxuICAgICAgICAgICk7XG4gICAgICB9XG4gICAgICBpZiAoMyAhPT0gYS50YWcpXG4gICAgICAgIHRocm93IEVycm9yKFwiVW5hYmxlIHRvIGZpbmQgbm9kZSBvbiBhbiB1bm1vdW50ZWQgY29tcG9uZW50LlwiKTtcbiAgICAgIHJldHVybiBhLnN0YXRlTm9kZS5jdXJyZW50ID09PSBhID8gZmliZXIgOiBhbHRlcm5hdGU7XG4gICAgfVxuICAgIGZ1bmN0aW9uIGZpbmRDdXJyZW50SG9zdEZpYmVySW1wbChub2RlKSB7XG4gICAgICB2YXIgdGFnID0gbm9kZS50YWc7XG4gICAgICBpZiAoNSA9PT0gdGFnIHx8IDI2ID09PSB0YWcgfHwgMjcgPT09IHRhZyB8fCA2ID09PSB0YWcpIHJldHVybiBub2RlO1xuICAgICAgZm9yIChub2RlID0gbm9kZS5jaGlsZDsgbnVsbCAhPT0gbm9kZTsgKSB7XG4gICAgICAgIHRhZyA9IGZpbmRDdXJyZW50SG9zdEZpYmVySW1wbChub2RlKTtcbiAgICAgICAgaWYgKG51bGwgIT09IHRhZykgcmV0dXJuIHRhZztcbiAgICAgICAgbm9kZSA9IG5vZGUuc2libGluZztcbiAgICAgIH1cbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbiAgICBmdW5jdGlvbiBnZXRJdGVyYXRvckZuKG1heWJlSXRlcmFibGUpIHtcbiAgICAgIGlmIChudWxsID09PSBtYXliZUl0ZXJhYmxlIHx8IFwib2JqZWN0XCIgIT09IHR5cGVvZiBtYXliZUl0ZXJhYmxlKVxuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgIG1heWJlSXRlcmFibGUgPVxuICAgICAgICAoTUFZQkVfSVRFUkFUT1JfU1lNQk9MICYmIG1heWJlSXRlcmFibGVbTUFZQkVfSVRFUkFUT1JfU1lNQk9MXSkgfHxcbiAgICAgICAgbWF5YmVJdGVyYWJsZVtcIkBAaXRlcmF0b3JcIl07XG4gICAgICByZXR1cm4gXCJmdW5jdGlvblwiID09PSB0eXBlb2YgbWF5YmVJdGVyYWJsZSA/IG1heWJlSXRlcmFibGUgOiBudWxsO1xuICAgIH1cbiAgICBmdW5jdGlvbiBnZXRDb21wb25lbnROYW1lRnJvbVR5cGUodHlwZSkge1xuICAgICAgaWYgKG51bGwgPT0gdHlwZSkgcmV0dXJuIG51bGw7XG4gICAgICBpZiAoXCJmdW5jdGlvblwiID09PSB0eXBlb2YgdHlwZSlcbiAgICAgICAgcmV0dXJuIHR5cGUuJCR0eXBlb2YgPT09IFJFQUNUX0NMSUVOVF9SRUZFUkVOQ0VcbiAgICAgICAgICA/IG51bGxcbiAgICAgICAgICA6IHR5cGUuZGlzcGxheU5hbWUgfHwgdHlwZS5uYW1lIHx8IG51bGw7XG4gICAgICBpZiAoXCJzdHJpbmdcIiA9PT0gdHlwZW9mIHR5cGUpIHJldHVybiB0eXBlO1xuICAgICAgc3dpdGNoICh0eXBlKSB7XG4gICAgICAgIGNhc2UgUkVBQ1RfRlJBR01FTlRfVFlQRTpcbiAgICAgICAgICByZXR1cm4gXCJGcmFnbWVudFwiO1xuICAgICAgICBjYXNlIFJFQUNUX1BST0ZJTEVSX1RZUEU6XG4gICAgICAgICAgcmV0dXJuIFwiUHJvZmlsZXJcIjtcbiAgICAgICAgY2FzZSBSRUFDVF9TVFJJQ1RfTU9ERV9UWVBFOlxuICAgICAgICAgIHJldHVybiBcIlN0cmljdE1vZGVcIjtcbiAgICAgICAgY2FzZSBSRUFDVF9TVVNQRU5TRV9UWVBFOlxuICAgICAgICAgIHJldHVybiBcIlN1c3BlbnNlXCI7XG4gICAgICAgIGNhc2UgUkVBQ1RfU1VTUEVOU0VfTElTVF9UWVBFOlxuICAgICAgICAgIHJldHVybiBcIlN1c3BlbnNlTGlzdFwiO1xuICAgICAgICBjYXNlIFJFQUNUX0FDVElWSVRZX1RZUEU6XG4gICAgICAgICAgcmV0dXJuIFwiQWN0aXZpdHlcIjtcbiAgICAgIH1cbiAgICAgIGlmIChcIm9iamVjdFwiID09PSB0eXBlb2YgdHlwZSlcbiAgICAgICAgc3dpdGNoIChcbiAgICAgICAgICAoXCJudW1iZXJcIiA9PT0gdHlwZW9mIHR5cGUudGFnICYmXG4gICAgICAgICAgICBjb25zb2xlLmVycm9yKFxuICAgICAgICAgICAgICBcIlJlY2VpdmVkIGFuIHVuZXhwZWN0ZWQgb2JqZWN0IGluIGdldENvbXBvbmVudE5hbWVGcm9tVHlwZSgpLiBUaGlzIGlzIGxpa2VseSBhIGJ1ZyBpbiBSZWFjdC4gUGxlYXNlIGZpbGUgYW4gaXNzdWUuXCJcbiAgICAgICAgICAgICksXG4gICAgICAgICAgdHlwZS4kJHR5cGVvZilcbiAgICAgICAgKSB7XG4gICAgICAgICAgY2FzZSBSRUFDVF9QT1JUQUxfVFlQRTpcbiAgICAgICAgICAgIHJldHVybiBcIlBvcnRhbFwiO1xuICAgICAgICAgIGNhc2UgUkVBQ1RfQ09OVEVYVF9UWVBFOlxuICAgICAgICAgICAgcmV0dXJuICh0eXBlLmRpc3BsYXlOYW1lIHx8IFwiQ29udGV4dFwiKSArIFwiLlByb3ZpZGVyXCI7XG4gICAgICAgICAgY2FzZSBSRUFDVF9DT05TVU1FUl9UWVBFOlxuICAgICAgICAgICAgcmV0dXJuICh0eXBlLl9jb250ZXh0LmRpc3BsYXlOYW1lIHx8IFwiQ29udGV4dFwiKSArIFwiLkNvbnN1bWVyXCI7XG4gICAgICAgICAgY2FzZSBSRUFDVF9GT1JXQVJEX1JFRl9UWVBFOlxuICAgICAgICAgICAgdmFyIGlubmVyVHlwZSA9IHR5cGUucmVuZGVyO1xuICAgICAgICAgICAgdHlwZSA9IHR5cGUuZGlzcGxheU5hbWU7XG4gICAgICAgICAgICB0eXBlIHx8XG4gICAgICAgICAgICAgICgodHlwZSA9IGlubmVyVHlwZS5kaXNwbGF5TmFtZSB8fCBpbm5lclR5cGUubmFtZSB8fCBcIlwiKSxcbiAgICAgICAgICAgICAgKHR5cGUgPSBcIlwiICE9PSB0eXBlID8gXCJGb3J3YXJkUmVmKFwiICsgdHlwZSArIFwiKVwiIDogXCJGb3J3YXJkUmVmXCIpKTtcbiAgICAgICAgICAgIHJldHVybiB0eXBlO1xuICAgICAgICAgIGNhc2UgUkVBQ1RfTUVNT19UWVBFOlxuICAgICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgICAgKGlubmVyVHlwZSA9IHR5cGUuZGlzcGxheU5hbWUgfHwgbnVsbCksXG4gICAgICAgICAgICAgIG51bGwgIT09IGlubmVyVHlwZVxuICAgICAgICAgICAgICAgID8gaW5uZXJUeXBlXG4gICAgICAgICAgICAgICAgOiBnZXRDb21wb25lbnROYW1lRnJvbVR5cGUodHlwZS50eXBlKSB8fCBcIk1lbW9cIlxuICAgICAgICAgICAgKTtcbiAgICAgICAgICBjYXNlIFJFQUNUX0xBWllfVFlQRTpcbiAgICAgICAgICAgIGlubmVyVHlwZSA9IHR5cGUuX3BheWxvYWQ7XG4gICAgICAgICAgICB0eXBlID0gdHlwZS5faW5pdDtcbiAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgIHJldHVybiBnZXRDb21wb25lbnROYW1lRnJvbVR5cGUodHlwZShpbm5lclR5cGUpKTtcbiAgICAgICAgICAgIH0gY2F0Y2ggKHgpIHt9XG4gICAgICAgIH1cbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbiAgICBmdW5jdGlvbiBnZXRDb21wb25lbnROYW1lRnJvbU93bmVyKG93bmVyKSB7XG4gICAgICByZXR1cm4gXCJudW1iZXJcIiA9PT0gdHlwZW9mIG93bmVyLnRhZ1xuICAgICAgICA/IGdldENvbXBvbmVudE5hbWVGcm9tRmliZXIob3duZXIpXG4gICAgICAgIDogXCJzdHJpbmdcIiA9PT0gdHlwZW9mIG93bmVyLm5hbWVcbiAgICAgICAgICA/IG93bmVyLm5hbWVcbiAgICAgICAgICA6IG51bGw7XG4gICAgfVxuICAgIGZ1bmN0aW9uIGdldENvbXBvbmVudE5hbWVGcm9tRmliZXIoZmliZXIpIHtcbiAgICAgIHZhciB0eXBlID0gZmliZXIudHlwZTtcbiAgICAgIHN3aXRjaCAoZmliZXIudGFnKSB7XG4gICAgICAgIGNhc2UgMzE6XG4gICAgICAgICAgcmV0dXJuIFwiQWN0aXZpdHlcIjtcbiAgICAgICAgY2FzZSAyNDpcbiAgICAgICAgICByZXR1cm4gXCJDYWNoZVwiO1xuICAgICAgICBjYXNlIDk6XG4gICAgICAgICAgcmV0dXJuICh0eXBlLl9jb250ZXh0LmRpc3BsYXlOYW1lIHx8IFwiQ29udGV4dFwiKSArIFwiLkNvbnN1bWVyXCI7XG4gICAgICAgIGNhc2UgMTA6XG4gICAgICAgICAgcmV0dXJuICh0eXBlLmRpc3BsYXlOYW1lIHx8IFwiQ29udGV4dFwiKSArIFwiLlByb3ZpZGVyXCI7XG4gICAgICAgIGNhc2UgMTg6XG4gICAgICAgICAgcmV0dXJuIFwiRGVoeWRyYXRlZEZyYWdtZW50XCI7XG4gICAgICAgIGNhc2UgMTE6XG4gICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgIChmaWJlciA9IHR5cGUucmVuZGVyKSxcbiAgICAgICAgICAgIChmaWJlciA9IGZpYmVyLmRpc3BsYXlOYW1lIHx8IGZpYmVyLm5hbWUgfHwgXCJcIiksXG4gICAgICAgICAgICB0eXBlLmRpc3BsYXlOYW1lIHx8XG4gICAgICAgICAgICAgIChcIlwiICE9PSBmaWJlciA/IFwiRm9yd2FyZFJlZihcIiArIGZpYmVyICsgXCIpXCIgOiBcIkZvcndhcmRSZWZcIilcbiAgICAgICAgICApO1xuICAgICAgICBjYXNlIDc6XG4gICAgICAgICAgcmV0dXJuIFwiRnJhZ21lbnRcIjtcbiAgICAgICAgY2FzZSAyNjpcbiAgICAgICAgY2FzZSAyNzpcbiAgICAgICAgY2FzZSA1OlxuICAgICAgICAgIHJldHVybiB0eXBlO1xuICAgICAgICBjYXNlIDQ6XG4gICAgICAgICAgcmV0dXJuIFwiUG9ydGFsXCI7XG4gICAgICAgIGNhc2UgMzpcbiAgICAgICAgICByZXR1cm4gXCJSb290XCI7XG4gICAgICAgIGNhc2UgNjpcbiAgICAgICAgICByZXR1cm4gXCJUZXh0XCI7XG4gICAgICAgIGNhc2UgMTY6XG4gICAgICAgICAgcmV0dXJuIGdldENvbXBvbmVudE5hbWVGcm9tVHlwZSh0eXBlKTtcbiAgICAgICAgY2FzZSA4OlxuICAgICAgICAgIHJldHVybiB0eXBlID09PSBSRUFDVF9TVFJJQ1RfTU9ERV9UWVBFID8gXCJTdHJpY3RNb2RlXCIgOiBcIk1vZGVcIjtcbiAgICAgICAgY2FzZSAyMjpcbiAgICAgICAgICByZXR1cm4gXCJPZmZzY3JlZW5cIjtcbiAgICAgICAgY2FzZSAxMjpcbiAgICAgICAgICByZXR1cm4gXCJQcm9maWxlclwiO1xuICAgICAgICBjYXNlIDIxOlxuICAgICAgICAgIHJldHVybiBcIlNjb3BlXCI7XG4gICAgICAgIGNhc2UgMTM6XG4gICAgICAgICAgcmV0dXJuIFwiU3VzcGVuc2VcIjtcbiAgICAgICAgY2FzZSAxOTpcbiAgICAgICAgICByZXR1cm4gXCJTdXNwZW5zZUxpc3RcIjtcbiAgICAgICAgY2FzZSAyNTpcbiAgICAgICAgICByZXR1cm4gXCJUcmFjaW5nTWFya2VyXCI7XG4gICAgICAgIGNhc2UgMTpcbiAgICAgICAgY2FzZSAwOlxuICAgICAgICBjYXNlIDE0OlxuICAgICAgICBjYXNlIDE1OlxuICAgICAgICAgIGlmIChcImZ1bmN0aW9uXCIgPT09IHR5cGVvZiB0eXBlKVxuICAgICAgICAgICAgcmV0dXJuIHR5cGUuZGlzcGxheU5hbWUgfHwgdHlwZS5uYW1lIHx8IG51bGw7XG4gICAgICAgICAgaWYgKFwic3RyaW5nXCIgPT09IHR5cGVvZiB0eXBlKSByZXR1cm4gdHlwZTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAyOTpcbiAgICAgICAgICB0eXBlID0gZmliZXIuX2RlYnVnSW5mbztcbiAgICAgICAgICBpZiAobnVsbCAhPSB0eXBlKVxuICAgICAgICAgICAgZm9yICh2YXIgaSA9IHR5cGUubGVuZ3RoIC0gMTsgMCA8PSBpOyBpLS0pXG4gICAgICAgICAgICAgIGlmIChcInN0cmluZ1wiID09PSB0eXBlb2YgdHlwZVtpXS5uYW1lKSByZXR1cm4gdHlwZVtpXS5uYW1lO1xuICAgICAgICAgIGlmIChudWxsICE9PSBmaWJlci5yZXR1cm4pXG4gICAgICAgICAgICByZXR1cm4gZ2V0Q29tcG9uZW50TmFtZUZyb21GaWJlcihmaWJlci5yZXR1cm4pO1xuICAgICAgfVxuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuICAgIGZ1bmN0aW9uIGNyZWF0ZUN1cnNvcihkZWZhdWx0VmFsdWUpIHtcbiAgICAgIHJldHVybiB7IGN1cnJlbnQ6IGRlZmF1bHRWYWx1ZSB9O1xuICAgIH1cbiAgICBmdW5jdGlvbiBwb3AoY3Vyc29yLCBmaWJlcikge1xuICAgICAgMCA+IGluZGV4JGpzY29tcCQwXG4gICAgICAgID8gY29uc29sZS5lcnJvcihcIlVuZXhwZWN0ZWQgcG9wLlwiKVxuICAgICAgICA6IChmaWJlciAhPT0gZmliZXJTdGFja1tpbmRleCRqc2NvbXAkMF0gJiZcbiAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoXCJVbmV4cGVjdGVkIEZpYmVyIHBvcHBlZC5cIiksXG4gICAgICAgICAgKGN1cnNvci5jdXJyZW50ID0gdmFsdWVTdGFja1tpbmRleCRqc2NvbXAkMF0pLFxuICAgICAgICAgICh2YWx1ZVN0YWNrW2luZGV4JGpzY29tcCQwXSA9IG51bGwpLFxuICAgICAgICAgIChmaWJlclN0YWNrW2luZGV4JGpzY29tcCQwXSA9IG51bGwpLFxuICAgICAgICAgIGluZGV4JGpzY29tcCQwLS0pO1xuICAgIH1cbiAgICBmdW5jdGlvbiBwdXNoKGN1cnNvciwgdmFsdWUsIGZpYmVyKSB7XG4gICAgICBpbmRleCRqc2NvbXAkMCsrO1xuICAgICAgdmFsdWVTdGFja1tpbmRleCRqc2NvbXAkMF0gPSBjdXJzb3IuY3VycmVudDtcbiAgICAgIGZpYmVyU3RhY2tbaW5kZXgkanNjb21wJDBdID0gZmliZXI7XG4gICAgICBjdXJzb3IuY3VycmVudCA9IHZhbHVlO1xuICAgIH1cbiAgICBmdW5jdGlvbiByZXF1aXJlZENvbnRleHQoYykge1xuICAgICAgbnVsbCA9PT0gYyAmJlxuICAgICAgICBjb25zb2xlLmVycm9yKFxuICAgICAgICAgIFwiRXhwZWN0ZWQgaG9zdCBjb250ZXh0IHRvIGV4aXN0LiBUaGlzIGVycm9yIGlzIGxpa2VseSBjYXVzZWQgYnkgYSBidWcgaW4gUmVhY3QuIFBsZWFzZSBmaWxlIGFuIGlzc3VlLlwiXG4gICAgICAgICk7XG4gICAgICByZXR1cm4gYztcbiAgICB9XG4gICAgZnVuY3Rpb24gcHVzaEhvc3RDb250YWluZXIoZmliZXIsIG5leHRSb290SW5zdGFuY2UpIHtcbiAgICAgIHB1c2gocm9vdEluc3RhbmNlU3RhY2tDdXJzb3IsIG5leHRSb290SW5zdGFuY2UsIGZpYmVyKTtcbiAgICAgIHB1c2goY29udGV4dEZpYmVyU3RhY2tDdXJzb3IsIGZpYmVyLCBmaWJlcik7XG4gICAgICBwdXNoKGNvbnRleHRTdGFja0N1cnNvciwgbnVsbCwgZmliZXIpO1xuICAgICAgdmFyIG5leHRSb290Q29udGV4dCA9IG5leHRSb290SW5zdGFuY2Uubm9kZVR5cGU7XG4gICAgICBzd2l0Y2ggKG5leHRSb290Q29udGV4dCkge1xuICAgICAgICBjYXNlIDk6XG4gICAgICAgIGNhc2UgMTE6XG4gICAgICAgICAgbmV4dFJvb3RDb250ZXh0ID0gOSA9PT0gbmV4dFJvb3RDb250ZXh0ID8gXCIjZG9jdW1lbnRcIiA6IFwiI2ZyYWdtZW50XCI7XG4gICAgICAgICAgbmV4dFJvb3RJbnN0YW5jZSA9IChuZXh0Um9vdEluc3RhbmNlID1cbiAgICAgICAgICAgIG5leHRSb290SW5zdGFuY2UuZG9jdW1lbnRFbGVtZW50KVxuICAgICAgICAgICAgPyAobmV4dFJvb3RJbnN0YW5jZSA9IG5leHRSb290SW5zdGFuY2UubmFtZXNwYWNlVVJJKVxuICAgICAgICAgICAgICA/IGdldE93bkhvc3RDb250ZXh0KG5leHRSb290SW5zdGFuY2UpXG4gICAgICAgICAgICAgIDogSG9zdENvbnRleHROYW1lc3BhY2VOb25lXG4gICAgICAgICAgICA6IEhvc3RDb250ZXh0TmFtZXNwYWNlTm9uZTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICBpZiAoXG4gICAgICAgICAgICAoKG5leHRSb290Q29udGV4dCA9IG5leHRSb290SW5zdGFuY2UudGFnTmFtZSksXG4gICAgICAgICAgICAobmV4dFJvb3RJbnN0YW5jZSA9IG5leHRSb290SW5zdGFuY2UubmFtZXNwYWNlVVJJKSlcbiAgICAgICAgICApXG4gICAgICAgICAgICAobmV4dFJvb3RJbnN0YW5jZSA9IGdldE93bkhvc3RDb250ZXh0KG5leHRSb290SW5zdGFuY2UpKSxcbiAgICAgICAgICAgICAgKG5leHRSb290SW5zdGFuY2UgPSBnZXRDaGlsZEhvc3RDb250ZXh0UHJvZChcbiAgICAgICAgICAgICAgICBuZXh0Um9vdEluc3RhbmNlLFxuICAgICAgICAgICAgICAgIG5leHRSb290Q29udGV4dFxuICAgICAgICAgICAgICApKTtcbiAgICAgICAgICBlbHNlXG4gICAgICAgICAgICBzd2l0Y2ggKG5leHRSb290Q29udGV4dCkge1xuICAgICAgICAgICAgICBjYXNlIFwic3ZnXCI6XG4gICAgICAgICAgICAgICAgbmV4dFJvb3RJbnN0YW5jZSA9IEhvc3RDb250ZXh0TmFtZXNwYWNlU3ZnO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICBjYXNlIFwibWF0aFwiOlxuICAgICAgICAgICAgICAgIG5leHRSb290SW5zdGFuY2UgPSBIb3N0Q29udGV4dE5hbWVzcGFjZU1hdGg7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgbmV4dFJvb3RJbnN0YW5jZSA9IEhvc3RDb250ZXh0TmFtZXNwYWNlTm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgIH1cbiAgICAgIG5leHRSb290Q29udGV4dCA9IG5leHRSb290Q29udGV4dC50b0xvd2VyQ2FzZSgpO1xuICAgICAgbmV4dFJvb3RDb250ZXh0ID0gdXBkYXRlZEFuY2VzdG9ySW5mb0RldihudWxsLCBuZXh0Um9vdENvbnRleHQpO1xuICAgICAgbmV4dFJvb3RDb250ZXh0ID0ge1xuICAgICAgICBjb250ZXh0OiBuZXh0Um9vdEluc3RhbmNlLFxuICAgICAgICBhbmNlc3RvckluZm86IG5leHRSb290Q29udGV4dFxuICAgICAgfTtcbiAgICAgIHBvcChjb250ZXh0U3RhY2tDdXJzb3IsIGZpYmVyKTtcbiAgICAgIHB1c2goY29udGV4dFN0YWNrQ3Vyc29yLCBuZXh0Um9vdENvbnRleHQsIGZpYmVyKTtcbiAgICB9XG4gICAgZnVuY3Rpb24gcG9wSG9zdENvbnRhaW5lcihmaWJlcikge1xuICAgICAgcG9wKGNvbnRleHRTdGFja0N1cnNvciwgZmliZXIpO1xuICAgICAgcG9wKGNvbnRleHRGaWJlclN0YWNrQ3Vyc29yLCBmaWJlcik7XG4gICAgICBwb3Aocm9vdEluc3RhbmNlU3RhY2tDdXJzb3IsIGZpYmVyKTtcbiAgICB9XG4gICAgZnVuY3Rpb24gZ2V0SG9zdENvbnRleHQoKSB7XG4gICAgICByZXR1cm4gcmVxdWlyZWRDb250ZXh0KGNvbnRleHRTdGFja0N1cnNvci5jdXJyZW50KTtcbiAgICB9XG4gICAgZnVuY3Rpb24gcHVzaEhvc3RDb250ZXh0KGZpYmVyKSB7XG4gICAgICBudWxsICE9PSBmaWJlci5tZW1vaXplZFN0YXRlICYmXG4gICAgICAgIHB1c2goaG9zdFRyYW5zaXRpb25Qcm92aWRlckN1cnNvciwgZmliZXIsIGZpYmVyKTtcbiAgICAgIHZhciBjb250ZXh0ID0gcmVxdWlyZWRDb250ZXh0KGNvbnRleHRTdGFja0N1cnNvci5jdXJyZW50KTtcbiAgICAgIHZhciB0eXBlID0gZmliZXIudHlwZTtcbiAgICAgIHZhciBuZXh0Q29udGV4dCA9IGdldENoaWxkSG9zdENvbnRleHRQcm9kKGNvbnRleHQuY29udGV4dCwgdHlwZSk7XG4gICAgICB0eXBlID0gdXBkYXRlZEFuY2VzdG9ySW5mb0Rldihjb250ZXh0LmFuY2VzdG9ySW5mbywgdHlwZSk7XG4gICAgICBuZXh0Q29udGV4dCA9IHsgY29udGV4dDogbmV4dENvbnRleHQsIGFuY2VzdG9ySW5mbzogdHlwZSB9O1xuICAgICAgY29udGV4dCAhPT0gbmV4dENvbnRleHQgJiZcbiAgICAgICAgKHB1c2goY29udGV4dEZpYmVyU3RhY2tDdXJzb3IsIGZpYmVyLCBmaWJlciksXG4gICAgICAgIHB1c2goY29udGV4dFN0YWNrQ3Vyc29yLCBuZXh0Q29udGV4dCwgZmliZXIpKTtcbiAgICB9XG4gICAgZnVuY3Rpb24gcG9wSG9zdENvbnRleHQoZmliZXIpIHtcbiAgICAgIGNvbnRleHRGaWJlclN0YWNrQ3Vyc29yLmN1cnJlbnQgPT09IGZpYmVyICYmXG4gICAgICAgIChwb3AoY29udGV4dFN0YWNrQ3Vyc29yLCBmaWJlciksIHBvcChjb250ZXh0RmliZXJTdGFja0N1cnNvciwgZmliZXIpKTtcbiAgICAgIGhvc3RUcmFuc2l0aW9uUHJvdmlkZXJDdXJzb3IuY3VycmVudCA9PT0gZmliZXIgJiZcbiAgICAgICAgKHBvcChob3N0VHJhbnNpdGlvblByb3ZpZGVyQ3Vyc29yLCBmaWJlciksXG4gICAgICAgIChIb3N0VHJhbnNpdGlvbkNvbnRleHQuX2N1cnJlbnRWYWx1ZSA9IE5vdFBlbmRpbmdUcmFuc2l0aW9uKSk7XG4gICAgfVxuICAgIGZ1bmN0aW9uIHR5cGVOYW1lKHZhbHVlKSB7XG4gICAgICByZXR1cm4gKFxuICAgICAgICAoXCJmdW5jdGlvblwiID09PSB0eXBlb2YgU3ltYm9sICYmXG4gICAgICAgICAgU3ltYm9sLnRvU3RyaW5nVGFnICYmXG4gICAgICAgICAgdmFsdWVbU3ltYm9sLnRvU3RyaW5nVGFnXSkgfHxcbiAgICAgICAgdmFsdWUuY29uc3RydWN0b3IubmFtZSB8fFxuICAgICAgICBcIk9iamVjdFwiXG4gICAgICApO1xuICAgIH1cbiAgICBmdW5jdGlvbiB3aWxsQ29lcmNpb25UaHJvdyh2YWx1ZSkge1xuICAgICAgdHJ5IHtcbiAgICAgICAgcmV0dXJuIHRlc3RTdHJpbmdDb2VyY2lvbih2YWx1ZSksICExO1xuICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICByZXR1cm4gITA7XG4gICAgICB9XG4gICAgfVxuICAgIGZ1bmN0aW9uIHRlc3RTdHJpbmdDb2VyY2lvbih2YWx1ZSkge1xuICAgICAgcmV0dXJuIFwiXCIgKyB2YWx1ZTtcbiAgICB9XG4gICAgZnVuY3Rpb24gY2hlY2tBdHRyaWJ1dGVTdHJpbmdDb2VyY2lvbih2YWx1ZSwgYXR0cmlidXRlTmFtZSkge1xuICAgICAgaWYgKHdpbGxDb2VyY2lvblRocm93KHZhbHVlKSlcbiAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICBjb25zb2xlLmVycm9yKFxuICAgICAgICAgICAgXCJUaGUgcHJvdmlkZWQgYCVzYCBhdHRyaWJ1dGUgaXMgYW4gdW5zdXBwb3J0ZWQgdHlwZSAlcy4gVGhpcyB2YWx1ZSBtdXN0IGJlIGNvZXJjZWQgdG8gYSBzdHJpbmcgYmVmb3JlIHVzaW5nIGl0IGhlcmUuXCIsXG4gICAgICAgICAgICBhdHRyaWJ1dGVOYW1lLFxuICAgICAgICAgICAgdHlwZU5hbWUodmFsdWUpXG4gICAgICAgICAgKSxcbiAgICAgICAgICB0ZXN0U3RyaW5nQ29lcmNpb24odmFsdWUpXG4gICAgICAgICk7XG4gICAgfVxuICAgIGZ1bmN0aW9uIGNoZWNrQ1NTUHJvcGVydHlTdHJpbmdDb2VyY2lvbih2YWx1ZSwgcHJvcE5hbWUpIHtcbiAgICAgIGlmICh3aWxsQ29lcmNpb25UaHJvdyh2YWx1ZSkpXG4gICAgICAgIHJldHVybiAoXG4gICAgICAgICAgY29uc29sZS5lcnJvcihcbiAgICAgICAgICAgIFwiVGhlIHByb3ZpZGVkIGAlc2AgQ1NTIHByb3BlcnR5IGlzIGFuIHVuc3VwcG9ydGVkIHR5cGUgJXMuIFRoaXMgdmFsdWUgbXVzdCBiZSBjb2VyY2VkIHRvIGEgc3RyaW5nIGJlZm9yZSB1c2luZyBpdCBoZXJlLlwiLFxuICAgICAgICAgICAgcHJvcE5hbWUsXG4gICAgICAgICAgICB0eXBlTmFtZSh2YWx1ZSlcbiAgICAgICAgICApLFxuICAgICAgICAgIHRlc3RTdHJpbmdDb2VyY2lvbih2YWx1ZSlcbiAgICAgICAgKTtcbiAgICB9XG4gICAgZnVuY3Rpb24gY2hlY2tGb3JtRmllbGRWYWx1ZVN0cmluZ0NvZXJjaW9uKHZhbHVlKSB7XG4gICAgICBpZiAod2lsbENvZXJjaW9uVGhyb3codmFsdWUpKVxuICAgICAgICByZXR1cm4gKFxuICAgICAgICAgIGNvbnNvbGUuZXJyb3IoXG4gICAgICAgICAgICBcIkZvcm0gZmllbGQgdmFsdWVzICh2YWx1ZSwgY2hlY2tlZCwgZGVmYXVsdFZhbHVlLCBvciBkZWZhdWx0Q2hlY2tlZCBwcm9wcykgbXVzdCBiZSBzdHJpbmdzLCBub3QgJXMuIFRoaXMgdmFsdWUgbXVzdCBiZSBjb2VyY2VkIHRvIGEgc3RyaW5nIGJlZm9yZSB1c2luZyBpdCBoZXJlLlwiLFxuICAgICAgICAgICAgdHlwZU5hbWUodmFsdWUpXG4gICAgICAgICAgKSxcbiAgICAgICAgICB0ZXN0U3RyaW5nQ29lcmNpb24odmFsdWUpXG4gICAgICAgICk7XG4gICAgfVxuICAgIGZ1bmN0aW9uIGluamVjdEludGVybmFscyhpbnRlcm5hbHMpIHtcbiAgICAgIGlmIChcInVuZGVmaW5lZFwiID09PSB0eXBlb2YgX19SRUFDVF9ERVZUT09MU19HTE9CQUxfSE9PS19fKSByZXR1cm4gITE7XG4gICAgICB2YXIgaG9vayA9IF9fUkVBQ1RfREVWVE9PTFNfR0xPQkFMX0hPT0tfXztcbiAgICAgIGlmIChob29rLmlzRGlzYWJsZWQpIHJldHVybiAhMDtcbiAgICAgIGlmICghaG9vay5zdXBwb3J0c0ZpYmVyKVxuICAgICAgICByZXR1cm4gKFxuICAgICAgICAgIGNvbnNvbGUuZXJyb3IoXG4gICAgICAgICAgICBcIlRoZSBpbnN0YWxsZWQgdmVyc2lvbiBvZiBSZWFjdCBEZXZUb29scyBpcyB0b28gb2xkIGFuZCB3aWxsIG5vdCB3b3JrIHdpdGggdGhlIGN1cnJlbnQgdmVyc2lvbiBvZiBSZWFjdC4gUGxlYXNlIHVwZGF0ZSBSZWFjdCBEZXZUb29scy4gaHR0cHM6Ly9yZWFjdC5kZXYvbGluay9yZWFjdC1kZXZ0b29sc1wiXG4gICAgICAgICAgKSxcbiAgICAgICAgICAhMFxuICAgICAgICApO1xuICAgICAgdHJ5IHtcbiAgICAgICAgKHJlbmRlcmVySUQgPSBob29rLmluamVjdChpbnRlcm5hbHMpKSwgKGluamVjdGVkSG9vayA9IGhvb2spO1xuICAgICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICAgIGNvbnNvbGUuZXJyb3IoXCJSZWFjdCBpbnN0cnVtZW50YXRpb24gZW5jb3VudGVyZWQgYW4gZXJyb3I6ICVzLlwiLCBlcnIpO1xuICAgICAgfVxuICAgICAgcmV0dXJuIGhvb2suY2hlY2tEQ0UgPyAhMCA6ICExO1xuICAgIH1cbiAgICBmdW5jdGlvbiBzZXRJc1N0cmljdE1vZGVGb3JEZXZ0b29scyhuZXdJc1N0cmljdE1vZGUpIHtcbiAgICAgIFwiZnVuY3Rpb25cIiA9PT0gdHlwZW9mIGxvZyQxICYmXG4gICAgICAgIHVuc3RhYmxlX3NldERpc2FibGVZaWVsZFZhbHVlKG5ld0lzU3RyaWN0TW9kZSk7XG4gICAgICBpZiAoaW5qZWN0ZWRIb29rICYmIFwiZnVuY3Rpb25cIiA9PT0gdHlwZW9mIGluamVjdGVkSG9vay5zZXRTdHJpY3RNb2RlKVxuICAgICAgICB0cnkge1xuICAgICAgICAgIGluamVjdGVkSG9vay5zZXRTdHJpY3RNb2RlKHJlbmRlcmVySUQsIG5ld0lzU3RyaWN0TW9kZSk7XG4gICAgICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgICAgIGhhc0xvZ2dlZEVycm9yIHx8XG4gICAgICAgICAgICAoKGhhc0xvZ2dlZEVycm9yID0gITApLFxuICAgICAgICAgICAgY29uc29sZS5lcnJvcihcbiAgICAgICAgICAgICAgXCJSZWFjdCBpbnN0cnVtZW50YXRpb24gZW5jb3VudGVyZWQgYW4gZXJyb3I6ICVzXCIsXG4gICAgICAgICAgICAgIGVyclxuICAgICAgICAgICAgKSk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgZnVuY3Rpb24gaW5qZWN0UHJvZmlsaW5nSG9va3MocHJvZmlsaW5nSG9va3MpIHtcbiAgICAgIGluamVjdGVkUHJvZmlsaW5nSG9va3MgPSBwcm9maWxpbmdIb29rcztcbiAgICB9XG4gICAgZnVuY3Rpb24gbWFya0NvbW1pdFN0b3BwZWQoKSB7XG4gICAgICBudWxsICE9PSBpbmplY3RlZFByb2ZpbGluZ0hvb2tzICYmXG4gICAgICAgIFwiZnVuY3Rpb25cIiA9PT0gdHlwZW9mIGluamVjdGVkUHJvZmlsaW5nSG9va3MubWFya0NvbW1pdFN0b3BwZWQgJiZcbiAgICAgICAgaW5qZWN0ZWRQcm9maWxpbmdIb29rcy5tYXJrQ29tbWl0U3RvcHBlZCgpO1xuICAgIH1cbiAgICBmdW5jdGlvbiBtYXJrQ29tcG9uZW50UmVuZGVyU3RhcnRlZChmaWJlcikge1xuICAgICAgbnVsbCAhPT0gaW5qZWN0ZWRQcm9maWxpbmdIb29rcyAmJlxuICAgICAgICBcImZ1bmN0aW9uXCIgPT09XG4gICAgICAgICAgdHlwZW9mIGluamVjdGVkUHJvZmlsaW5nSG9va3MubWFya0NvbXBvbmVudFJlbmRlclN0YXJ0ZWQgJiZcbiAgICAgICAgaW5qZWN0ZWRQcm9maWxpbmdIb29rcy5tYXJrQ29tcG9uZW50UmVuZGVyU3RhcnRlZChmaWJlcik7XG4gICAgfVxuICAgIGZ1bmN0aW9uIG1hcmtDb21wb25lbnRSZW5kZXJTdG9wcGVkKCkge1xuICAgICAgbnVsbCAhPT0gaW5qZWN0ZWRQcm9maWxpbmdIb29rcyAmJlxuICAgICAgICBcImZ1bmN0aW9uXCIgPT09XG4gICAgICAgICAgdHlwZW9mIGluamVjdGVkUHJvZmlsaW5nSG9va3MubWFya0NvbXBvbmVudFJlbmRlclN0b3BwZWQgJiZcbiAgICAgICAgaW5qZWN0ZWRQcm9maWxpbmdIb29rcy5tYXJrQ29tcG9uZW50UmVuZGVyU3RvcHBlZCgpO1xuICAgIH1cbiAgICBmdW5jdGlvbiBtYXJrUmVuZGVyU3RhcnRlZChsYW5lcykge1xuICAgICAgbnVsbCAhPT0gaW5qZWN0ZWRQcm9maWxpbmdIb29rcyAmJlxuICAgICAgICBcImZ1bmN0aW9uXCIgPT09IHR5cGVvZiBpbmplY3RlZFByb2ZpbGluZ0hvb2tzLm1hcmtSZW5kZXJTdGFydGVkICYmXG4gICAgICAgIGluamVjdGVkUHJvZmlsaW5nSG9va3MubWFya1JlbmRlclN0YXJ0ZWQobGFuZXMpO1xuICAgIH1cbiAgICBmdW5jdGlvbiBtYXJrUmVuZGVyU3RvcHBlZCgpIHtcbiAgICAgIG51bGwgIT09IGluamVjdGVkUHJvZmlsaW5nSG9va3MgJiZcbiAgICAgICAgXCJmdW5jdGlvblwiID09PSB0eXBlb2YgaW5qZWN0ZWRQcm9maWxpbmdIb29rcy5tYXJrUmVuZGVyU3RvcHBlZCAmJlxuICAgICAgICBpbmplY3RlZFByb2ZpbGluZ0hvb2tzLm1hcmtSZW5kZXJTdG9wcGVkKCk7XG4gICAgfVxuICAgIGZ1bmN0aW9uIG1hcmtTdGF0ZVVwZGF0ZVNjaGVkdWxlZChmaWJlciwgbGFuZSkge1xuICAgICAgbnVsbCAhPT0gaW5qZWN0ZWRQcm9maWxpbmdIb29rcyAmJlxuICAgICAgICBcImZ1bmN0aW9uXCIgPT09IHR5cGVvZiBpbmplY3RlZFByb2ZpbGluZ0hvb2tzLm1hcmtTdGF0ZVVwZGF0ZVNjaGVkdWxlZCAmJlxuICAgICAgICBpbmplY3RlZFByb2ZpbGluZ0hvb2tzLm1hcmtTdGF0ZVVwZGF0ZVNjaGVkdWxlZChmaWJlciwgbGFuZSk7XG4gICAgfVxuICAgIGZ1bmN0aW9uIGNsejMyRmFsbGJhY2soeCkge1xuICAgICAgeCA+Pj49IDA7XG4gICAgICByZXR1cm4gMCA9PT0geCA/IDMyIDogKDMxIC0gKChsb2coeCkgLyBMTjIpIHwgMCkpIHwgMDtcbiAgICB9XG4gICAgZnVuY3Rpb24gZ2V0TGFiZWxGb3JMYW5lKGxhbmUpIHtcbiAgICAgIGlmIChsYW5lICYgMSkgcmV0dXJuIFwiU3luY0h5ZHJhdGlvbkxhbmVcIjtcbiAgICAgIGlmIChsYW5lICYgMikgcmV0dXJuIFwiU3luY1wiO1xuICAgICAgaWYgKGxhbmUgJiA0KSByZXR1cm4gXCJJbnB1dENvbnRpbnVvdXNIeWRyYXRpb25cIjtcbiAgICAgIGlmIChsYW5lICYgOCkgcmV0dXJuIFwiSW5wdXRDb250aW51b3VzXCI7XG4gICAgICBpZiAobGFuZSAmIDE2KSByZXR1cm4gXCJEZWZhdWx0SHlkcmF0aW9uXCI7XG4gICAgICBpZiAobGFuZSAmIDMyKSByZXR1cm4gXCJEZWZhdWx0XCI7XG4gICAgICBpZiAobGFuZSAmIDEyOCkgcmV0dXJuIFwiVHJhbnNpdGlvbkh5ZHJhdGlvblwiO1xuICAgICAgaWYgKGxhbmUgJiA0MTk0MDQ4KSByZXR1cm4gXCJUcmFuc2l0aW9uXCI7XG4gICAgICBpZiAobGFuZSAmIDYyOTE0NTYwKSByZXR1cm4gXCJSZXRyeVwiO1xuICAgICAgaWYgKGxhbmUgJiA2NzEwODg2NCkgcmV0dXJuIFwiU2VsZWN0aXZlSHlkcmF0aW9uXCI7XG4gICAgICBpZiAobGFuZSAmIDEzNDIxNzcyOCkgcmV0dXJuIFwiSWRsZUh5ZHJhdGlvblwiO1xuICAgICAgaWYgKGxhbmUgJiAyNjg0MzU0NTYpIHJldHVybiBcIklkbGVcIjtcbiAgICAgIGlmIChsYW5lICYgNTM2ODcwOTEyKSByZXR1cm4gXCJPZmZzY3JlZW5cIjtcbiAgICAgIGlmIChsYW5lICYgMTA3Mzc0MTgyNCkgcmV0dXJuIFwiRGVmZXJyZWRcIjtcbiAgICB9XG4gICAgZnVuY3Rpb24gZ2V0SGlnaGVzdFByaW9yaXR5TGFuZXMobGFuZXMpIHtcbiAgICAgIHZhciBwZW5kaW5nU3luY0xhbmVzID0gbGFuZXMgJiA0MjtcbiAgICAgIGlmICgwICE9PSBwZW5kaW5nU3luY0xhbmVzKSByZXR1cm4gcGVuZGluZ1N5bmNMYW5lcztcbiAgICAgIHN3aXRjaCAobGFuZXMgJiAtbGFuZXMpIHtcbiAgICAgICAgY2FzZSAxOlxuICAgICAgICAgIHJldHVybiAxO1xuICAgICAgICBjYXNlIDI6XG4gICAgICAgICAgcmV0dXJuIDI7XG4gICAgICAgIGNhc2UgNDpcbiAgICAgICAgICByZXR1cm4gNDtcbiAgICAgICAgY2FzZSA4OlxuICAgICAgICAgIHJldHVybiA4O1xuICAgICAgICBjYXNlIDE2OlxuICAgICAgICAgIHJldHVybiAxNjtcbiAgICAgICAgY2FzZSAzMjpcbiAgICAgICAgICByZXR1cm4gMzI7XG4gICAgICAgIGNhc2UgNjQ6XG4gICAgICAgICAgcmV0dXJuIDY0O1xuICAgICAgICBjYXNlIDEyODpcbiAgICAgICAgICByZXR1cm4gMTI4O1xuICAgICAgICBjYXNlIDI1NjpcbiAgICAgICAgY2FzZSA1MTI6XG4gICAgICAgIGNhc2UgMTAyNDpcbiAgICAgICAgY2FzZSAyMDQ4OlxuICAgICAgICBjYXNlIDQwOTY6XG4gICAgICAgIGNhc2UgODE5MjpcbiAgICAgICAgY2FzZSAxNjM4NDpcbiAgICAgICAgY2FzZSAzMjc2ODpcbiAgICAgICAgY2FzZSA2NTUzNjpcbiAgICAgICAgY2FzZSAxMzEwNzI6XG4gICAgICAgIGNhc2UgMjYyMTQ0OlxuICAgICAgICBjYXNlIDUyNDI4ODpcbiAgICAgICAgY2FzZSAxMDQ4NTc2OlxuICAgICAgICBjYXNlIDIwOTcxNTI6XG4gICAgICAgICAgcmV0dXJuIGxhbmVzICYgNDE5NDA0ODtcbiAgICAgICAgY2FzZSA0MTk0MzA0OlxuICAgICAgICBjYXNlIDgzODg2MDg6XG4gICAgICAgIGNhc2UgMTY3NzcyMTY6XG4gICAgICAgIGNhc2UgMzM1NTQ0MzI6XG4gICAgICAgICAgcmV0dXJuIGxhbmVzICYgNjI5MTQ1NjA7XG4gICAgICAgIGNhc2UgNjcxMDg4NjQ6XG4gICAgICAgICAgcmV0dXJuIDY3MTA4ODY0O1xuICAgICAgICBjYXNlIDEzNDIxNzcyODpcbiAgICAgICAgICByZXR1cm4gMTM0MjE3NzI4O1xuICAgICAgICBjYXNlIDI2ODQzNTQ1NjpcbiAgICAgICAgICByZXR1cm4gMjY4NDM1NDU2O1xuICAgICAgICBjYXNlIDUzNjg3MDkxMjpcbiAgICAgICAgICByZXR1cm4gNTM2ODcwOTEyO1xuICAgICAgICBjYXNlIDEwNzM3NDE4MjQ6XG4gICAgICAgICAgcmV0dXJuIDA7XG4gICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoXG4gICAgICAgICAgICAgIFwiU2hvdWxkIGhhdmUgZm91bmQgbWF0Y2hpbmcgbGFuZXMuIFRoaXMgaXMgYSBidWcgaW4gUmVhY3QuXCJcbiAgICAgICAgICAgICksXG4gICAgICAgICAgICBsYW5lc1xuICAgICAgICAgICk7XG4gICAgICB9XG4gICAgfVxuICAgIGZ1bmN0aW9uIGdldE5leHRMYW5lcyhyb290LCB3aXBMYW5lcywgcm9vdEhhc1BlbmRpbmdDb21taXQpIHtcbiAgICAgIHZhciBwZW5kaW5nTGFuZXMgPSByb290LnBlbmRpbmdMYW5lcztcbiAgICAgIGlmICgwID09PSBwZW5kaW5nTGFuZXMpIHJldHVybiAwO1xuICAgICAgdmFyIG5leHRMYW5lcyA9IDAsXG4gICAgICAgIHN1c3BlbmRlZExhbmVzID0gcm9vdC5zdXNwZW5kZWRMYW5lcyxcbiAgICAgICAgcGluZ2VkTGFuZXMgPSByb290LnBpbmdlZExhbmVzO1xuICAgICAgcm9vdCA9IHJvb3Qud2FybUxhbmVzO1xuICAgICAgdmFyIG5vbklkbGVQZW5kaW5nTGFuZXMgPSBwZW5kaW5nTGFuZXMgJiAxMzQyMTc3Mjc7XG4gICAgICAwICE9PSBub25JZGxlUGVuZGluZ0xhbmVzXG4gICAgICAgID8gKChwZW5kaW5nTGFuZXMgPSBub25JZGxlUGVuZGluZ0xhbmVzICYgfnN1c3BlbmRlZExhbmVzKSxcbiAgICAgICAgICAwICE9PSBwZW5kaW5nTGFuZXNcbiAgICAgICAgICAgID8gKG5leHRMYW5lcyA9IGdldEhpZ2hlc3RQcmlvcml0eUxhbmVzKHBlbmRpbmdMYW5lcykpXG4gICAgICAgICAgICA6ICgocGluZ2VkTGFuZXMgJj0gbm9uSWRsZVBlbmRpbmdMYW5lcyksXG4gICAgICAgICAgICAgIDAgIT09IHBpbmdlZExhbmVzXG4gICAgICAgICAgICAgICAgPyAobmV4dExhbmVzID0gZ2V0SGlnaGVzdFByaW9yaXR5TGFuZXMocGluZ2VkTGFuZXMpKVxuICAgICAgICAgICAgICAgIDogcm9vdEhhc1BlbmRpbmdDb21taXQgfHxcbiAgICAgICAgICAgICAgICAgICgocm9vdEhhc1BlbmRpbmdDb21taXQgPSBub25JZGxlUGVuZGluZ0xhbmVzICYgfnJvb3QpLFxuICAgICAgICAgICAgICAgICAgMCAhPT0gcm9vdEhhc1BlbmRpbmdDb21taXQgJiZcbiAgICAgICAgICAgICAgICAgICAgKG5leHRMYW5lcyA9XG4gICAgICAgICAgICAgICAgICAgICAgZ2V0SGlnaGVzdFByaW9yaXR5TGFuZXMocm9vdEhhc1BlbmRpbmdDb21taXQpKSkpKVxuICAgICAgICA6ICgobm9uSWRsZVBlbmRpbmdMYW5lcyA9IHBlbmRpbmdMYW5lcyAmIH5zdXNwZW5kZWRMYW5lcyksXG4gICAgICAgICAgMCAhPT0gbm9uSWRsZVBlbmRpbmdMYW5lc1xuICAgICAgICAgICAgPyAobmV4dExhbmVzID0gZ2V0SGlnaGVzdFByaW9yaXR5TGFuZXMobm9uSWRsZVBlbmRpbmdMYW5lcykpXG4gICAgICAgICAgICA6IDAgIT09IHBpbmdlZExhbmVzXG4gICAgICAgICAgICAgID8gKG5leHRMYW5lcyA9IGdldEhpZ2hlc3RQcmlvcml0eUxhbmVzKHBpbmdlZExhbmVzKSlcbiAgICAgICAgICAgICAgOiByb290SGFzUGVuZGluZ0NvbW1pdCB8fFxuICAgICAgICAgICAgICAgICgocm9vdEhhc1BlbmRpbmdDb21taXQgPSBwZW5kaW5nTGFuZXMgJiB+cm9vdCksXG4gICAgICAgICAgICAgICAgMCAhPT0gcm9vdEhhc1BlbmRpbmdDb21taXQgJiZcbiAgICAgICAgICAgICAgICAgIChuZXh0TGFuZXMgPSBnZXRIaWdoZXN0UHJpb3JpdHlMYW5lcyhyb290SGFzUGVuZGluZ0NvbW1pdCkpKSk7XG4gICAgICByZXR1cm4gMCA9PT0gbmV4dExhbmVzXG4gICAgICAgID8gMFxuICAgICAgICA6IDAgIT09IHdpcExhbmVzICYmXG4gICAgICAgICAgICB3aXBMYW5lcyAhPT0gbmV4dExhbmVzICYmXG4gICAgICAgICAgICAwID09PSAod2lwTGFuZXMgJiBzdXNwZW5kZWRMYW5lcykgJiZcbiAgICAgICAgICAgICgoc3VzcGVuZGVkTGFuZXMgPSBuZXh0TGFuZXMgJiAtbmV4dExhbmVzKSxcbiAgICAgICAgICAgIChyb290SGFzUGVuZGluZ0NvbW1pdCA9IHdpcExhbmVzICYgLXdpcExhbmVzKSxcbiAgICAgICAgICAgIHN1c3BlbmRlZExhbmVzID49IHJvb3RIYXNQZW5kaW5nQ29tbWl0IHx8XG4gICAgICAgICAgICAgICgzMiA9PT0gc3VzcGVuZGVkTGFuZXMgJiYgMCAhPT0gKHJvb3RIYXNQZW5kaW5nQ29tbWl0ICYgNDE5NDA0OCkpKVxuICAgICAgICAgID8gd2lwTGFuZXNcbiAgICAgICAgICA6IG5leHRMYW5lcztcbiAgICB9XG4gICAgZnVuY3Rpb24gY2hlY2tJZlJvb3RJc1ByZXJlbmRlcmluZyhyb290LCByZW5kZXJMYW5lcykge1xuICAgICAgcmV0dXJuIChcbiAgICAgICAgMCA9PT1cbiAgICAgICAgKHJvb3QucGVuZGluZ0xhbmVzICZcbiAgICAgICAgICB+KHJvb3Quc3VzcGVuZGVkTGFuZXMgJiB+cm9vdC5waW5nZWRMYW5lcykgJlxuICAgICAgICAgIHJlbmRlckxhbmVzKVxuICAgICAgKTtcbiAgICB9XG4gICAgZnVuY3Rpb24gY29tcHV0ZUV4cGlyYXRpb25UaW1lKGxhbmUsIGN1cnJlbnRUaW1lKSB7XG4gICAgICBzd2l0Y2ggKGxhbmUpIHtcbiAgICAgICAgY2FzZSAxOlxuICAgICAgICBjYXNlIDI6XG4gICAgICAgIGNhc2UgNDpcbiAgICAgICAgY2FzZSA4OlxuICAgICAgICBjYXNlIDY0OlxuICAgICAgICAgIHJldHVybiBjdXJyZW50VGltZSArIDI1MDtcbiAgICAgICAgY2FzZSAxNjpcbiAgICAgICAgY2FzZSAzMjpcbiAgICAgICAgY2FzZSAxMjg6XG4gICAgICAgIGNhc2UgMjU2OlxuICAgICAgICBjYXNlIDUxMjpcbiAgICAgICAgY2FzZSAxMDI0OlxuICAgICAgICBjYXNlIDIwNDg6XG4gICAgICAgIGNhc2UgNDA5NjpcbiAgICAgICAgY2FzZSA4MTkyOlxuICAgICAgICBjYXNlIDE2Mzg0OlxuICAgICAgICBjYXNlIDMyNzY4OlxuICAgICAgICBjYXNlIDY1NTM2OlxuICAgICAgICBjYXNlIDEzMTA3MjpcbiAgICAgICAgY2FzZSAyNjIxNDQ6XG4gICAgICAgIGNhc2UgNTI0Mjg4OlxuICAgICAgICBjYXNlIDEwNDg1NzY6XG4gICAgICAgIGNhc2UgMjA5NzE1MjpcbiAgICAgICAgICByZXR1cm4gY3VycmVudFRpbWUgKyA1ZTM7XG4gICAgICAgIGNhc2UgNDE5NDMwNDpcbiAgICAgICAgY2FzZSA4Mzg4NjA4OlxuICAgICAgICBjYXNlIDE2Nzc3MjE2OlxuICAgICAgICBjYXNlIDMzNTU0NDMyOlxuICAgICAgICAgIHJldHVybiAtMTtcbiAgICAgICAgY2FzZSA2NzEwODg2NDpcbiAgICAgICAgY2FzZSAxMzQyMTc3Mjg6XG4gICAgICAgIGNhc2UgMjY4NDM1NDU2OlxuICAgICAgICBjYXNlIDUzNjg3MDkxMjpcbiAgICAgICAgY2FzZSAxMDczNzQxODI0OlxuICAgICAgICAgIHJldHVybiAtMTtcbiAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgY29uc29sZS5lcnJvcihcbiAgICAgICAgICAgICAgXCJTaG91bGQgaGF2ZSBmb3VuZCBtYXRjaGluZyBsYW5lcy4gVGhpcyBpcyBhIGJ1ZyBpbiBSZWFjdC5cIlxuICAgICAgICAgICAgKSxcbiAgICAgICAgICAgIC0xXG4gICAgICAgICAgKTtcbiAgICAgIH1cbiAgICB9XG4gICAgZnVuY3Rpb24gY2xhaW1OZXh0VHJhbnNpdGlvbkxhbmUoKSB7XG4gICAgICB2YXIgbGFuZSA9IG5leHRUcmFuc2l0aW9uTGFuZTtcbiAgICAgIG5leHRUcmFuc2l0aW9uTGFuZSA8PD0gMTtcbiAgICAgIDAgPT09IChuZXh0VHJhbnNpdGlvbkxhbmUgJiA0MTk0MDQ4KSAmJiAobmV4dFRyYW5zaXRpb25MYW5lID0gMjU2KTtcbiAgICAgIHJldHVybiBsYW5lO1xuICAgIH1cbiAgICBmdW5jdGlvbiBjbGFpbU5leHRSZXRyeUxhbmUoKSB7XG4gICAgICB2YXIgbGFuZSA9IG5leHRSZXRyeUxhbmU7XG4gICAgICBuZXh0UmV0cnlMYW5lIDw8PSAxO1xuICAgICAgMCA9PT0gKG5leHRSZXRyeUxhbmUgJiA2MjkxNDU2MCkgJiYgKG5leHRSZXRyeUxhbmUgPSA0MTk0MzA0KTtcbiAgICAgIHJldHVybiBsYW5lO1xuICAgIH1cbiAgICBmdW5jdGlvbiBjcmVhdGVMYW5lTWFwKGluaXRpYWwpIHtcbiAgICAgIGZvciAodmFyIGxhbmVNYXAgPSBbXSwgaSA9IDA7IDMxID4gaTsgaSsrKSBsYW5lTWFwLnB1c2goaW5pdGlhbCk7XG4gICAgICByZXR1cm4gbGFuZU1hcDtcbiAgICB9XG4gICAgZnVuY3Rpb24gbWFya1Jvb3RVcGRhdGVkJDEocm9vdCwgdXBkYXRlTGFuZSkge1xuICAgICAgcm9vdC5wZW5kaW5nTGFuZXMgfD0gdXBkYXRlTGFuZTtcbiAgICAgIDI2ODQzNTQ1NiAhPT0gdXBkYXRlTGFuZSAmJlxuICAgICAgICAoKHJvb3Quc3VzcGVuZGVkTGFuZXMgPSAwKSxcbiAgICAgICAgKHJvb3QucGluZ2VkTGFuZXMgPSAwKSxcbiAgICAgICAgKHJvb3Qud2FybUxhbmVzID0gMCkpO1xuICAgIH1cbiAgICBmdW5jdGlvbiBtYXJrUm9vdEZpbmlzaGVkKFxuICAgICAgcm9vdCxcbiAgICAgIGZpbmlzaGVkTGFuZXMsXG4gICAgICByZW1haW5pbmdMYW5lcyxcbiAgICAgIHNwYXduZWRMYW5lLFxuICAgICAgdXBkYXRlZExhbmVzLFxuICAgICAgc3VzcGVuZGVkUmV0cnlMYW5lc1xuICAgICkge1xuICAgICAgdmFyIHByZXZpb3VzbHlQZW5kaW5nTGFuZXMgPSByb290LnBlbmRpbmdMYW5lcztcbiAgICAgIHJvb3QucGVuZGluZ0xhbmVzID0gcmVtYWluaW5nTGFuZXM7XG4gICAgICByb290LnN1c3BlbmRlZExhbmVzID0gMDtcbiAgICAgIHJvb3QucGluZ2VkTGFuZXMgPSAwO1xuICAgICAgcm9vdC53YXJtTGFuZXMgPSAwO1xuICAgICAgcm9vdC5leHBpcmVkTGFuZXMgJj0gcmVtYWluaW5nTGFuZXM7XG4gICAgICByb290LmVudGFuZ2xlZExhbmVzICY9IHJlbWFpbmluZ0xhbmVzO1xuICAgICAgcm9vdC5lcnJvclJlY292ZXJ5RGlzYWJsZWRMYW5lcyAmPSByZW1haW5pbmdMYW5lcztcbiAgICAgIHJvb3Quc2hlbGxTdXNwZW5kQ291bnRlciA9IDA7XG4gICAgICB2YXIgZW50YW5nbGVtZW50cyA9IHJvb3QuZW50YW5nbGVtZW50cyxcbiAgICAgICAgZXhwaXJhdGlvblRpbWVzID0gcm9vdC5leHBpcmF0aW9uVGltZXMsXG4gICAgICAgIGhpZGRlblVwZGF0ZXMgPSByb290LmhpZGRlblVwZGF0ZXM7XG4gICAgICBmb3IgKFxuICAgICAgICByZW1haW5pbmdMYW5lcyA9IHByZXZpb3VzbHlQZW5kaW5nTGFuZXMgJiB+cmVtYWluaW5nTGFuZXM7XG4gICAgICAgIDAgPCByZW1haW5pbmdMYW5lcztcblxuICAgICAgKSB7XG4gICAgICAgIHZhciBpbmRleCA9IDMxIC0gY2x6MzIocmVtYWluaW5nTGFuZXMpLFxuICAgICAgICAgIGxhbmUgPSAxIDw8IGluZGV4O1xuICAgICAgICBlbnRhbmdsZW1lbnRzW2luZGV4XSA9IDA7XG4gICAgICAgIGV4cGlyYXRpb25UaW1lc1tpbmRleF0gPSAtMTtcbiAgICAgICAgdmFyIGhpZGRlblVwZGF0ZXNGb3JMYW5lID0gaGlkZGVuVXBkYXRlc1tpbmRleF07XG4gICAgICAgIGlmIChudWxsICE9PSBoaWRkZW5VcGRhdGVzRm9yTGFuZSlcbiAgICAgICAgICBmb3IgKFxuICAgICAgICAgICAgaGlkZGVuVXBkYXRlc1tpbmRleF0gPSBudWxsLCBpbmRleCA9IDA7XG4gICAgICAgICAgICBpbmRleCA8IGhpZGRlblVwZGF0ZXNGb3JMYW5lLmxlbmd0aDtcbiAgICAgICAgICAgIGluZGV4KytcbiAgICAgICAgICApIHtcbiAgICAgICAgICAgIHZhciB1cGRhdGUgPSBoaWRkZW5VcGRhdGVzRm9yTGFuZVtpbmRleF07XG4gICAgICAgICAgICBudWxsICE9PSB1cGRhdGUgJiYgKHVwZGF0ZS5sYW5lICY9IC01MzY4NzA5MTMpO1xuICAgICAgICAgIH1cbiAgICAgICAgcmVtYWluaW5nTGFuZXMgJj0gfmxhbmU7XG4gICAgICB9XG4gICAgICAwICE9PSBzcGF3bmVkTGFuZSAmJiBtYXJrU3Bhd25lZERlZmVycmVkTGFuZShyb290LCBzcGF3bmVkTGFuZSwgMCk7XG4gICAgICAwICE9PSBzdXNwZW5kZWRSZXRyeUxhbmVzICYmXG4gICAgICAgIDAgPT09IHVwZGF0ZWRMYW5lcyAmJlxuICAgICAgICAwICE9PSByb290LnRhZyAmJlxuICAgICAgICAocm9vdC5zdXNwZW5kZWRMYW5lcyB8PVxuICAgICAgICAgIHN1c3BlbmRlZFJldHJ5TGFuZXMgJiB+KHByZXZpb3VzbHlQZW5kaW5nTGFuZXMgJiB+ZmluaXNoZWRMYW5lcykpO1xuICAgIH1cbiAgICBmdW5jdGlvbiBtYXJrU3Bhd25lZERlZmVycmVkTGFuZShyb290LCBzcGF3bmVkTGFuZSwgZW50YW5nbGVkTGFuZXMpIHtcbiAgICAgIHJvb3QucGVuZGluZ0xhbmVzIHw9IHNwYXduZWRMYW5lO1xuICAgICAgcm9vdC5zdXNwZW5kZWRMYW5lcyAmPSB+c3Bhd25lZExhbmU7XG4gICAgICB2YXIgc3Bhd25lZExhbmVJbmRleCA9IDMxIC0gY2x6MzIoc3Bhd25lZExhbmUpO1xuICAgICAgcm9vdC5lbnRhbmdsZWRMYW5lcyB8PSBzcGF3bmVkTGFuZTtcbiAgICAgIHJvb3QuZW50YW5nbGVtZW50c1tzcGF3bmVkTGFuZUluZGV4XSA9XG4gICAgICAgIHJvb3QuZW50YW5nbGVtZW50c1tzcGF3bmVkTGFuZUluZGV4XSB8XG4gICAgICAgIDEwNzM3NDE4MjQgfFxuICAgICAgICAoZW50YW5nbGVkTGFuZXMgJiA0MTk0MDkwKTtcbiAgICB9XG4gICAgZnVuY3Rpb24gbWFya1Jvb3RFbnRhbmdsZWQocm9vdCwgZW50YW5nbGVkTGFuZXMpIHtcbiAgICAgIHZhciByb290RW50YW5nbGVkTGFuZXMgPSAocm9vdC5lbnRhbmdsZWRMYW5lcyB8PSBlbnRhbmdsZWRMYW5lcyk7XG4gICAgICBmb3IgKHJvb3QgPSByb290LmVudGFuZ2xlbWVudHM7IHJvb3RFbnRhbmdsZWRMYW5lczsgKSB7XG4gICAgICAgIHZhciBpbmRleCA9IDMxIC0gY2x6MzIocm9vdEVudGFuZ2xlZExhbmVzKSxcbiAgICAgICAgICBsYW5lID0gMSA8PCBpbmRleDtcbiAgICAgICAgKGxhbmUgJiBlbnRhbmdsZWRMYW5lcykgfCAocm9vdFtpbmRleF0gJiBlbnRhbmdsZWRMYW5lcykgJiZcbiAgICAgICAgICAocm9vdFtpbmRleF0gfD0gZW50YW5nbGVkTGFuZXMpO1xuICAgICAgICByb290RW50YW5nbGVkTGFuZXMgJj0gfmxhbmU7XG4gICAgICB9XG4gICAgfVxuICAgIGZ1bmN0aW9uIGdldEJ1bXBlZExhbmVGb3JIeWRyYXRpb25CeUxhbmUobGFuZSkge1xuICAgICAgc3dpdGNoIChsYW5lKSB7XG4gICAgICAgIGNhc2UgMjpcbiAgICAgICAgICBsYW5lID0gMTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSA4OlxuICAgICAgICAgIGxhbmUgPSA0O1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIDMyOlxuICAgICAgICAgIGxhbmUgPSAxNjtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAyNTY6XG4gICAgICAgIGNhc2UgNTEyOlxuICAgICAgICBjYXNlIDEwMjQ6XG4gICAgICAgIGNhc2UgMjA0ODpcbiAgICAgICAgY2FzZSA0MDk2OlxuICAgICAgICBjYXNlIDgxOTI6XG4gICAgICAgIGNhc2UgMTYzODQ6XG4gICAgICAgIGNhc2UgMzI3Njg6XG4gICAgICAgIGNhc2UgNjU1MzY6XG4gICAgICAgIGNhc2UgMTMxMDcyOlxuICAgICAgICBjYXNlIDI2MjE0NDpcbiAgICAgICAgY2FzZSA1MjQyODg6XG4gICAgICAgIGNhc2UgMTA0ODU3NjpcbiAgICAgICAgY2FzZSAyMDk3MTUyOlxuICAgICAgICBjYXNlIDQxOTQzMDQ6XG4gICAgICAgIGNhc2UgODM4ODYwODpcbiAgICAgICAgY2FzZSAxNjc3NzIxNjpcbiAgICAgICAgY2FzZSAzMzU1NDQzMjpcbiAgICAgICAgICBsYW5lID0gMTI4O1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIDI2ODQzNTQ1NjpcbiAgICAgICAgICBsYW5lID0gMTM0MjE3NzI4O1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgIGxhbmUgPSAwO1xuICAgICAgfVxuICAgICAgcmV0dXJuIGxhbmU7XG4gICAgfVxuICAgIGZ1bmN0aW9uIGFkZEZpYmVyVG9MYW5lc01hcChyb290LCBmaWJlciwgbGFuZXMpIHtcbiAgICAgIGlmIChpc0RldlRvb2xzUHJlc2VudClcbiAgICAgICAgZm9yIChyb290ID0gcm9vdC5wZW5kaW5nVXBkYXRlcnNMYW5lTWFwOyAwIDwgbGFuZXM7ICkge1xuICAgICAgICAgIHZhciBpbmRleCA9IDMxIC0gY2x6MzIobGFuZXMpLFxuICAgICAgICAgICAgbGFuZSA9IDEgPDwgaW5kZXg7XG4gICAgICAgICAgcm9vdFtpbmRleF0uYWRkKGZpYmVyKTtcbiAgICAgICAgICBsYW5lcyAmPSB+bGFuZTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBmdW5jdGlvbiBtb3ZlUGVuZGluZ0ZpYmVyc1RvTWVtb2l6ZWQocm9vdCwgbGFuZXMpIHtcbiAgICAgIGlmIChpc0RldlRvb2xzUHJlc2VudClcbiAgICAgICAgZm9yIChcbiAgICAgICAgICB2YXIgcGVuZGluZ1VwZGF0ZXJzTGFuZU1hcCA9IHJvb3QucGVuZGluZ1VwZGF0ZXJzTGFuZU1hcCxcbiAgICAgICAgICAgIG1lbW9pemVkVXBkYXRlcnMgPSByb290Lm1lbW9pemVkVXBkYXRlcnM7XG4gICAgICAgICAgMCA8IGxhbmVzO1xuXG4gICAgICAgICkge1xuICAgICAgICAgIHZhciBpbmRleCA9IDMxIC0gY2x6MzIobGFuZXMpO1xuICAgICAgICAgIHJvb3QgPSAxIDw8IGluZGV4O1xuICAgICAgICAgIGluZGV4ID0gcGVuZGluZ1VwZGF0ZXJzTGFuZU1hcFtpbmRleF07XG4gICAgICAgICAgMCA8IGluZGV4LnNpemUgJiZcbiAgICAgICAgICAgIChpbmRleC5mb3JFYWNoKGZ1bmN0aW9uIChmaWJlcikge1xuICAgICAgICAgICAgICB2YXIgYWx0ZXJuYXRlID0gZmliZXIuYWx0ZXJuYXRlO1xuICAgICAgICAgICAgICAobnVsbCAhPT0gYWx0ZXJuYXRlICYmIG1lbW9pemVkVXBkYXRlcnMuaGFzKGFsdGVybmF0ZSkpIHx8XG4gICAgICAgICAgICAgICAgbWVtb2l6ZWRVcGRhdGVycy5hZGQoZmliZXIpO1xuICAgICAgICAgICAgfSksXG4gICAgICAgICAgICBpbmRleC5jbGVhcigpKTtcbiAgICAgICAgICBsYW5lcyAmPSB+cm9vdDtcbiAgICAgICAgfVxuICAgIH1cbiAgICBmdW5jdGlvbiBsYW5lc1RvRXZlbnRQcmlvcml0eShsYW5lcykge1xuICAgICAgbGFuZXMgJj0gLWxhbmVzO1xuICAgICAgcmV0dXJuIDAgIT09IERpc2NyZXRlRXZlbnRQcmlvcml0eSAmJiBEaXNjcmV0ZUV2ZW50UHJpb3JpdHkgPCBsYW5lc1xuICAgICAgICA/IDAgIT09IENvbnRpbnVvdXNFdmVudFByaW9yaXR5ICYmIENvbnRpbnVvdXNFdmVudFByaW9yaXR5IDwgbGFuZXNcbiAgICAgICAgICA/IDAgIT09IChsYW5lcyAmIDEzNDIxNzcyNylcbiAgICAgICAgICAgID8gRGVmYXVsdEV2ZW50UHJpb3JpdHlcbiAgICAgICAgICAgIDogSWRsZUV2ZW50UHJpb3JpdHlcbiAgICAgICAgICA6IENvbnRpbnVvdXNFdmVudFByaW9yaXR5XG4gICAgICAgIDogRGlzY3JldGVFdmVudFByaW9yaXR5O1xuICAgIH1cbiAgICBmdW5jdGlvbiByZXNvbHZlVXBkYXRlUHJpb3JpdHkoKSB7XG4gICAgICB2YXIgdXBkYXRlUHJpb3JpdHkgPSBSZWFjdERPTVNoYXJlZEludGVybmFscy5wO1xuICAgICAgaWYgKDAgIT09IHVwZGF0ZVByaW9yaXR5KSByZXR1cm4gdXBkYXRlUHJpb3JpdHk7XG4gICAgICB1cGRhdGVQcmlvcml0eSA9IHdpbmRvdy5ldmVudDtcbiAgICAgIHJldHVybiB2b2lkIDAgPT09IHVwZGF0ZVByaW9yaXR5XG4gICAgICAgID8gRGVmYXVsdEV2ZW50UHJpb3JpdHlcbiAgICAgICAgOiBnZXRFdmVudFByaW9yaXR5KHVwZGF0ZVByaW9yaXR5LnR5cGUpO1xuICAgIH1cbiAgICBmdW5jdGlvbiBydW5XaXRoUHJpb3JpdHkocHJpb3JpdHksIGZuKSB7XG4gICAgICB2YXIgcHJldmlvdXNQcmlvcml0eSA9IFJlYWN0RE9NU2hhcmVkSW50ZXJuYWxzLnA7XG4gICAgICB0cnkge1xuICAgICAgICByZXR1cm4gKFJlYWN0RE9NU2hhcmVkSW50ZXJuYWxzLnAgPSBwcmlvcml0eSksIGZuKCk7XG4gICAgICB9IGZpbmFsbHkge1xuICAgICAgICBSZWFjdERPTVNoYXJlZEludGVybmFscy5wID0gcHJldmlvdXNQcmlvcml0eTtcbiAgICAgIH1cbiAgICB9XG4gICAgZnVuY3Rpb24gZGV0YWNoRGVsZXRlZEluc3RhbmNlKG5vZGUpIHtcbiAgICAgIGRlbGV0ZSBub2RlW2ludGVybmFsSW5zdGFuY2VLZXldO1xuICAgICAgZGVsZXRlIG5vZGVbaW50ZXJuYWxQcm9wc0tleV07XG4gICAgICBkZWxldGUgbm9kZVtpbnRlcm5hbEV2ZW50SGFuZGxlcnNLZXldO1xuICAgICAgZGVsZXRlIG5vZGVbaW50ZXJuYWxFdmVudEhhbmRsZXJMaXN0ZW5lcnNLZXldO1xuICAgICAgZGVsZXRlIG5vZGVbaW50ZXJuYWxFdmVudEhhbmRsZXNTZXRLZXldO1xuICAgIH1cbiAgICBmdW5jdGlvbiBnZXRDbG9zZXN0SW5zdGFuY2VGcm9tTm9kZSh0YXJnZXROb2RlKSB7XG4gICAgICB2YXIgdGFyZ2V0SW5zdCA9IHRhcmdldE5vZGVbaW50ZXJuYWxJbnN0YW5jZUtleV07XG4gICAgICBpZiAodGFyZ2V0SW5zdCkgcmV0dXJuIHRhcmdldEluc3Q7XG4gICAgICBmb3IgKHZhciBwYXJlbnROb2RlID0gdGFyZ2V0Tm9kZS5wYXJlbnROb2RlOyBwYXJlbnROb2RlOyApIHtcbiAgICAgICAgaWYgKFxuICAgICAgICAgICh0YXJnZXRJbnN0ID1cbiAgICAgICAgICAgIHBhcmVudE5vZGVbaW50ZXJuYWxDb250YWluZXJJbnN0YW5jZUtleV0gfHxcbiAgICAgICAgICAgIHBhcmVudE5vZGVbaW50ZXJuYWxJbnN0YW5jZUtleV0pXG4gICAgICAgICkge1xuICAgICAgICAgIHBhcmVudE5vZGUgPSB0YXJnZXRJbnN0LmFsdGVybmF0ZTtcbiAgICAgICAgICBpZiAoXG4gICAgICAgICAgICBudWxsICE9PSB0YXJnZXRJbnN0LmNoaWxkIHx8XG4gICAgICAgICAgICAobnVsbCAhPT0gcGFyZW50Tm9kZSAmJiBudWxsICE9PSBwYXJlbnROb2RlLmNoaWxkKVxuICAgICAgICAgIClcbiAgICAgICAgICAgIGZvciAoXG4gICAgICAgICAgICAgIHRhcmdldE5vZGUgPSBnZXRQYXJlbnRTdXNwZW5zZUluc3RhbmNlKHRhcmdldE5vZGUpO1xuICAgICAgICAgICAgICBudWxsICE9PSB0YXJnZXROb2RlO1xuXG4gICAgICAgICAgICApIHtcbiAgICAgICAgICAgICAgaWYgKChwYXJlbnROb2RlID0gdGFyZ2V0Tm9kZVtpbnRlcm5hbEluc3RhbmNlS2V5XSkpXG4gICAgICAgICAgICAgICAgcmV0dXJuIHBhcmVudE5vZGU7XG4gICAgICAgICAgICAgIHRhcmdldE5vZGUgPSBnZXRQYXJlbnRTdXNwZW5zZUluc3RhbmNlKHRhcmdldE5vZGUpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIHJldHVybiB0YXJnZXRJbnN0O1xuICAgICAgICB9XG4gICAgICAgIHRhcmdldE5vZGUgPSBwYXJlbnROb2RlO1xuICAgICAgICBwYXJlbnROb2RlID0gdGFyZ2V0Tm9kZS5wYXJlbnROb2RlO1xuICAgICAgfVxuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuICAgIGZ1bmN0aW9uIGdldEluc3RhbmNlRnJvbU5vZGUobm9kZSkge1xuICAgICAgaWYgKFxuICAgICAgICAobm9kZSA9IG5vZGVbaW50ZXJuYWxJbnN0YW5jZUtleV0gfHwgbm9kZVtpbnRlcm5hbENvbnRhaW5lckluc3RhbmNlS2V5XSlcbiAgICAgICkge1xuICAgICAgICB2YXIgdGFnID0gbm9kZS50YWc7XG4gICAgICAgIGlmIChcbiAgICAgICAgICA1ID09PSB0YWcgfHxcbiAgICAgICAgICA2ID09PSB0YWcgfHxcbiAgICAgICAgICAxMyA9PT0gdGFnIHx8XG4gICAgICAgICAgMjYgPT09IHRhZyB8fFxuICAgICAgICAgIDI3ID09PSB0YWcgfHxcbiAgICAgICAgICAzID09PSB0YWdcbiAgICAgICAgKVxuICAgICAgICAgIHJldHVybiBub2RlO1xuICAgICAgfVxuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuICAgIGZ1bmN0aW9uIGdldE5vZGVGcm9tSW5zdGFuY2UoaW5zdCkge1xuICAgICAgdmFyIHRhZyA9IGluc3QudGFnO1xuICAgICAgaWYgKDUgPT09IHRhZyB8fCAyNiA9PT0gdGFnIHx8IDI3ID09PSB0YWcgfHwgNiA9PT0gdGFnKVxuICAgICAgICByZXR1cm4gaW5zdC5zdGF0ZU5vZGU7XG4gICAgICB0aHJvdyBFcnJvcihcImdldE5vZGVGcm9tSW5zdGFuY2U6IEludmFsaWQgYXJndW1lbnQuXCIpO1xuICAgIH1cbiAgICBmdW5jdGlvbiBnZXRSZXNvdXJjZXNGcm9tUm9vdChyb290KSB7XG4gICAgICB2YXIgcmVzb3VyY2VzID0gcm9vdFtpbnRlcm5hbFJvb3ROb2RlUmVzb3VyY2VzS2V5XTtcbiAgICAgIHJlc291cmNlcyB8fFxuICAgICAgICAocmVzb3VyY2VzID0gcm9vdFtpbnRlcm5hbFJvb3ROb2RlUmVzb3VyY2VzS2V5XSA9XG4gICAgICAgICAgeyBob2lzdGFibGVTdHlsZXM6IG5ldyBNYXAoKSwgaG9pc3RhYmxlU2NyaXB0czogbmV3IE1hcCgpIH0pO1xuICAgICAgcmV0dXJuIHJlc291cmNlcztcbiAgICB9XG4gICAgZnVuY3Rpb24gbWFya05vZGVBc0hvaXN0YWJsZShub2RlKSB7XG4gICAgICBub2RlW2ludGVybmFsSG9pc3RhYmxlTWFya2VyXSA9ICEwO1xuICAgIH1cbiAgICBmdW5jdGlvbiByZWdpc3RlclR3b1BoYXNlRXZlbnQocmVnaXN0cmF0aW9uTmFtZSwgZGVwZW5kZW5jaWVzKSB7XG4gICAgICByZWdpc3RlckRpcmVjdEV2ZW50KHJlZ2lzdHJhdGlvbk5hbWUsIGRlcGVuZGVuY2llcyk7XG4gICAgICByZWdpc3RlckRpcmVjdEV2ZW50KHJlZ2lzdHJhdGlvbk5hbWUgKyBcIkNhcHR1cmVcIiwgZGVwZW5kZW5jaWVzKTtcbiAgICB9XG4gICAgZnVuY3Rpb24gcmVnaXN0ZXJEaXJlY3RFdmVudChyZWdpc3RyYXRpb25OYW1lLCBkZXBlbmRlbmNpZXMpIHtcbiAgICAgIHJlZ2lzdHJhdGlvbk5hbWVEZXBlbmRlbmNpZXNbcmVnaXN0cmF0aW9uTmFtZV0gJiZcbiAgICAgICAgY29uc29sZS5lcnJvcihcbiAgICAgICAgICBcIkV2ZW50UmVnaXN0cnk6IE1vcmUgdGhhbiBvbmUgcGx1Z2luIGF0dGVtcHRlZCB0byBwdWJsaXNoIHRoZSBzYW1lIHJlZ2lzdHJhdGlvbiBuYW1lLCBgJXNgLlwiLFxuICAgICAgICAgIHJlZ2lzdHJhdGlvbk5hbWVcbiAgICAgICAgKTtcbiAgICAgIHJlZ2lzdHJhdGlvbk5hbWVEZXBlbmRlbmNpZXNbcmVnaXN0cmF0aW9uTmFtZV0gPSBkZXBlbmRlbmNpZXM7XG4gICAgICB2YXIgbG93ZXJDYXNlZE5hbWUgPSByZWdpc3RyYXRpb25OYW1lLnRvTG93ZXJDYXNlKCk7XG4gICAgICBwb3NzaWJsZVJlZ2lzdHJhdGlvbk5hbWVzW2xvd2VyQ2FzZWROYW1lXSA9IHJlZ2lzdHJhdGlvbk5hbWU7XG4gICAgICBcIm9uRG91YmxlQ2xpY2tcIiA9PT0gcmVnaXN0cmF0aW9uTmFtZSAmJlxuICAgICAgICAocG9zc2libGVSZWdpc3RyYXRpb25OYW1lcy5vbmRibGNsaWNrID0gcmVnaXN0cmF0aW9uTmFtZSk7XG4gICAgICBmb3IgKFxuICAgICAgICByZWdpc3RyYXRpb25OYW1lID0gMDtcbiAgICAgICAgcmVnaXN0cmF0aW9uTmFtZSA8IGRlcGVuZGVuY2llcy5sZW5ndGg7XG4gICAgICAgIHJlZ2lzdHJhdGlvbk5hbWUrK1xuICAgICAgKVxuICAgICAgICBhbGxOYXRpdmVFdmVudHMuYWRkKGRlcGVuZGVuY2llc1tyZWdpc3RyYXRpb25OYW1lXSk7XG4gICAgfVxuICAgIGZ1bmN0aW9uIGNoZWNrQ29udHJvbGxlZFZhbHVlUHJvcHModGFnTmFtZSwgcHJvcHMpIHtcbiAgICAgIGhhc1JlYWRPbmx5VmFsdWVbcHJvcHMudHlwZV0gfHxcbiAgICAgICAgcHJvcHMub25DaGFuZ2UgfHxcbiAgICAgICAgcHJvcHMub25JbnB1dCB8fFxuICAgICAgICBwcm9wcy5yZWFkT25seSB8fFxuICAgICAgICBwcm9wcy5kaXNhYmxlZCB8fFxuICAgICAgICBudWxsID09IHByb3BzLnZhbHVlIHx8XG4gICAgICAgIChcInNlbGVjdFwiID09PSB0YWdOYW1lXG4gICAgICAgICAgPyBjb25zb2xlLmVycm9yKFxuICAgICAgICAgICAgICBcIllvdSBwcm92aWRlZCBhIGB2YWx1ZWAgcHJvcCB0byBhIGZvcm0gZmllbGQgd2l0aG91dCBhbiBgb25DaGFuZ2VgIGhhbmRsZXIuIFRoaXMgd2lsbCByZW5kZXIgYSByZWFkLW9ubHkgZmllbGQuIElmIHRoZSBmaWVsZCBzaG91bGQgYmUgbXV0YWJsZSB1c2UgYGRlZmF1bHRWYWx1ZWAuIE90aGVyd2lzZSwgc2V0IGBvbkNoYW5nZWAuXCJcbiAgICAgICAgICAgIClcbiAgICAgICAgICA6IGNvbnNvbGUuZXJyb3IoXG4gICAgICAgICAgICAgIFwiWW91IHByb3ZpZGVkIGEgYHZhbHVlYCBwcm9wIHRvIGEgZm9ybSBmaWVsZCB3aXRob3V0IGFuIGBvbkNoYW5nZWAgaGFuZGxlci4gVGhpcyB3aWxsIHJlbmRlciBhIHJlYWQtb25seSBmaWVsZC4gSWYgdGhlIGZpZWxkIHNob3VsZCBiZSBtdXRhYmxlIHVzZSBgZGVmYXVsdFZhbHVlYC4gT3RoZXJ3aXNlLCBzZXQgZWl0aGVyIGBvbkNoYW5nZWAgb3IgYHJlYWRPbmx5YC5cIlxuICAgICAgICAgICAgKSk7XG4gICAgICBwcm9wcy5vbkNoYW5nZSB8fFxuICAgICAgICBwcm9wcy5yZWFkT25seSB8fFxuICAgICAgICBwcm9wcy5kaXNhYmxlZCB8fFxuICAgICAgICBudWxsID09IHByb3BzLmNoZWNrZWQgfHxcbiAgICAgICAgY29uc29sZS5lcnJvcihcbiAgICAgICAgICBcIllvdSBwcm92aWRlZCBhIGBjaGVja2VkYCBwcm9wIHRvIGEgZm9ybSBmaWVsZCB3aXRob3V0IGFuIGBvbkNoYW5nZWAgaGFuZGxlci4gVGhpcyB3aWxsIHJlbmRlciBhIHJlYWQtb25seSBmaWVsZC4gSWYgdGhlIGZpZWxkIHNob3VsZCBiZSBtdXRhYmxlIHVzZSBgZGVmYXVsdENoZWNrZWRgLiBPdGhlcndpc2UsIHNldCBlaXRoZXIgYG9uQ2hhbmdlYCBvciBgcmVhZE9ubHlgLlwiXG4gICAgICAgICk7XG4gICAgfVxuICAgIGZ1bmN0aW9uIGlzQXR0cmlidXRlTmFtZVNhZmUoYXR0cmlidXRlTmFtZSkge1xuICAgICAgaWYgKGhhc093blByb3BlcnR5LmNhbGwodmFsaWRhdGVkQXR0cmlidXRlTmFtZUNhY2hlLCBhdHRyaWJ1dGVOYW1lKSlcbiAgICAgICAgcmV0dXJuICEwO1xuICAgICAgaWYgKGhhc093blByb3BlcnR5LmNhbGwoaWxsZWdhbEF0dHJpYnV0ZU5hbWVDYWNoZSwgYXR0cmlidXRlTmFtZSkpXG4gICAgICAgIHJldHVybiAhMTtcbiAgICAgIGlmIChWQUxJRF9BVFRSSUJVVEVfTkFNRV9SRUdFWC50ZXN0KGF0dHJpYnV0ZU5hbWUpKVxuICAgICAgICByZXR1cm4gKHZhbGlkYXRlZEF0dHJpYnV0ZU5hbWVDYWNoZVthdHRyaWJ1dGVOYW1lXSA9ICEwKTtcbiAgICAgIGlsbGVnYWxBdHRyaWJ1dGVOYW1lQ2FjaGVbYXR0cmlidXRlTmFtZV0gPSAhMDtcbiAgICAgIGNvbnNvbGUuZXJyb3IoXCJJbnZhbGlkIGF0dHJpYnV0ZSBuYW1lOiBgJXNgXCIsIGF0dHJpYnV0ZU5hbWUpO1xuICAgICAgcmV0dXJuICExO1xuICAgIH1cbiAgICBmdW5jdGlvbiBnZXRWYWx1ZUZvckF0dHJpYnV0ZU9uQ3VzdG9tQ29tcG9uZW50KG5vZGUsIG5hbWUsIGV4cGVjdGVkKSB7XG4gICAgICBpZiAoaXNBdHRyaWJ1dGVOYW1lU2FmZShuYW1lKSkge1xuICAgICAgICBpZiAoIW5vZGUuaGFzQXR0cmlidXRlKG5hbWUpKSB7XG4gICAgICAgICAgc3dpdGNoICh0eXBlb2YgZXhwZWN0ZWQpIHtcbiAgICAgICAgICAgIGNhc2UgXCJzeW1ib2xcIjpcbiAgICAgICAgICAgIGNhc2UgXCJvYmplY3RcIjpcbiAgICAgICAgICAgICAgcmV0dXJuIGV4cGVjdGVkO1xuICAgICAgICAgICAgY2FzZSBcImZ1bmN0aW9uXCI6XG4gICAgICAgICAgICAgIHJldHVybiBleHBlY3RlZDtcbiAgICAgICAgICAgIGNhc2UgXCJib29sZWFuXCI6XG4gICAgICAgICAgICAgIGlmICghMSA9PT0gZXhwZWN0ZWQpIHJldHVybiBleHBlY3RlZDtcbiAgICAgICAgICB9XG4gICAgICAgICAgcmV0dXJuIHZvaWQgMCA9PT0gZXhwZWN0ZWQgPyB2b2lkIDAgOiBudWxsO1xuICAgICAgICB9XG4gICAgICAgIG5vZGUgPSBub2RlLmdldEF0dHJpYnV0ZShuYW1lKTtcbiAgICAgICAgaWYgKFwiXCIgPT09IG5vZGUgJiYgITAgPT09IGV4cGVjdGVkKSByZXR1cm4gITA7XG4gICAgICAgIGNoZWNrQXR0cmlidXRlU3RyaW5nQ29lcmNpb24oZXhwZWN0ZWQsIG5hbWUpO1xuICAgICAgICByZXR1cm4gbm9kZSA9PT0gXCJcIiArIGV4cGVjdGVkID8gZXhwZWN0ZWQgOiBub2RlO1xuICAgICAgfVxuICAgIH1cbiAgICBmdW5jdGlvbiBzZXRWYWx1ZUZvckF0dHJpYnV0ZShub2RlLCBuYW1lLCB2YWx1ZSkge1xuICAgICAgaWYgKGlzQXR0cmlidXRlTmFtZVNhZmUobmFtZSkpXG4gICAgICAgIGlmIChudWxsID09PSB2YWx1ZSkgbm9kZS5yZW1vdmVBdHRyaWJ1dGUobmFtZSk7XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgIHN3aXRjaCAodHlwZW9mIHZhbHVlKSB7XG4gICAgICAgICAgICBjYXNlIFwidW5kZWZpbmVkXCI6XG4gICAgICAgICAgICBjYXNlIFwiZnVuY3Rpb25cIjpcbiAgICAgICAgICAgIGNhc2UgXCJzeW1ib2xcIjpcbiAgICAgICAgICAgICAgbm9kZS5yZW1vdmVBdHRyaWJ1dGUobmFtZSk7XG4gICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIGNhc2UgXCJib29sZWFuXCI6XG4gICAgICAgICAgICAgIHZhciBwcmVmaXggPSBuYW1lLnRvTG93ZXJDYXNlKCkuc2xpY2UoMCwgNSk7XG4gICAgICAgICAgICAgIGlmIChcImRhdGEtXCIgIT09IHByZWZpeCAmJiBcImFyaWEtXCIgIT09IHByZWZpeCkge1xuICAgICAgICAgICAgICAgIG5vZGUucmVtb3ZlQXR0cmlidXRlKG5hbWUpO1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgICBjaGVja0F0dHJpYnV0ZVN0cmluZ0NvZXJjaW9uKHZhbHVlLCBuYW1lKTtcbiAgICAgICAgICBub2RlLnNldEF0dHJpYnV0ZShuYW1lLCBcIlwiICsgdmFsdWUpO1xuICAgICAgICB9XG4gICAgfVxuICAgIGZ1bmN0aW9uIHNldFZhbHVlRm9yS25vd25BdHRyaWJ1dGUobm9kZSwgbmFtZSwgdmFsdWUpIHtcbiAgICAgIGlmIChudWxsID09PSB2YWx1ZSkgbm9kZS5yZW1vdmVBdHRyaWJ1dGUobmFtZSk7XG4gICAgICBlbHNlIHtcbiAgICAgICAgc3dpdGNoICh0eXBlb2YgdmFsdWUpIHtcbiAgICAgICAgICBjYXNlIFwidW5kZWZpbmVkXCI6XG4gICAgICAgICAgY2FzZSBcImZ1bmN0aW9uXCI6XG4gICAgICAgICAgY2FzZSBcInN5bWJvbFwiOlxuICAgICAgICAgIGNhc2UgXCJib29sZWFuXCI6XG4gICAgICAgICAgICBub2RlLnJlbW92ZUF0dHJpYnV0ZShuYW1lKTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBjaGVja0F0dHJpYnV0ZVN0cmluZ0NvZXJjaW9uKHZhbHVlLCBuYW1lKTtcbiAgICAgICAgbm9kZS5zZXRBdHRyaWJ1dGUobmFtZSwgXCJcIiArIHZhbHVlKTtcbiAgICAgIH1cbiAgICB9XG4gICAgZnVuY3Rpb24gc2V0VmFsdWVGb3JOYW1lc3BhY2VkQXR0cmlidXRlKG5vZGUsIG5hbWVzcGFjZSwgbmFtZSwgdmFsdWUpIHtcbiAgICAgIGlmIChudWxsID09PSB2YWx1ZSkgbm9kZS5yZW1vdmVBdHRyaWJ1dGUobmFtZSk7XG4gICAgICBlbHNlIHtcbiAgICAgICAgc3dpdGNoICh0eXBlb2YgdmFsdWUpIHtcbiAgICAgICAgICBjYXNlIFwidW5kZWZpbmVkXCI6XG4gICAgICAgICAgY2FzZSBcImZ1bmN0aW9uXCI6XG4gICAgICAgICAgY2FzZSBcInN5bWJvbFwiOlxuICAgICAgICAgIGNhc2UgXCJib29sZWFuXCI6XG4gICAgICAgICAgICBub2RlLnJlbW92ZUF0dHJpYnV0ZShuYW1lKTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBjaGVja0F0dHJpYnV0ZVN0cmluZ0NvZXJjaW9uKHZhbHVlLCBuYW1lKTtcbiAgICAgICAgbm9kZS5zZXRBdHRyaWJ1dGVOUyhuYW1lc3BhY2UsIG5hbWUsIFwiXCIgKyB2YWx1ZSk7XG4gICAgICB9XG4gICAgfVxuICAgIGZ1bmN0aW9uIGRpc2FibGVkTG9nKCkge31cbiAgICBmdW5jdGlvbiBkaXNhYmxlTG9ncygpIHtcbiAgICAgIGlmICgwID09PSBkaXNhYmxlZERlcHRoKSB7XG4gICAgICAgIHByZXZMb2cgPSBjb25zb2xlLmxvZztcbiAgICAgICAgcHJldkluZm8gPSBjb25zb2xlLmluZm87XG4gICAgICAgIHByZXZXYXJuID0gY29uc29sZS53YXJuO1xuICAgICAgICBwcmV2RXJyb3IgPSBjb25zb2xlLmVycm9yO1xuICAgICAgICBwcmV2R3JvdXAgPSBjb25zb2xlLmdyb3VwO1xuICAgICAgICBwcmV2R3JvdXBDb2xsYXBzZWQgPSBjb25zb2xlLmdyb3VwQ29sbGFwc2VkO1xuICAgICAgICBwcmV2R3JvdXBFbmQgPSBjb25zb2xlLmdyb3VwRW5kO1xuICAgICAgICB2YXIgcHJvcHMgPSB7XG4gICAgICAgICAgY29uZmlndXJhYmxlOiAhMCxcbiAgICAgICAgICBlbnVtZXJhYmxlOiAhMCxcbiAgICAgICAgICB2YWx1ZTogZGlzYWJsZWRMb2csXG4gICAgICAgICAgd3JpdGFibGU6ICEwXG4gICAgICAgIH07XG4gICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKGNvbnNvbGUsIHtcbiAgICAgICAgICBpbmZvOiBwcm9wcyxcbiAgICAgICAgICBsb2c6IHByb3BzLFxuICAgICAgICAgIHdhcm46IHByb3BzLFxuICAgICAgICAgIGVycm9yOiBwcm9wcyxcbiAgICAgICAgICBncm91cDogcHJvcHMsXG4gICAgICAgICAgZ3JvdXBDb2xsYXBzZWQ6IHByb3BzLFxuICAgICAgICAgIGdyb3VwRW5kOiBwcm9wc1xuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICAgIGRpc2FibGVkRGVwdGgrKztcbiAgICB9XG4gICAgZnVuY3Rpb24gcmVlbmFibGVMb2dzKCkge1xuICAgICAgZGlzYWJsZWREZXB0aC0tO1xuICAgICAgaWYgKDAgPT09IGRpc2FibGVkRGVwdGgpIHtcbiAgICAgICAgdmFyIHByb3BzID0geyBjb25maWd1cmFibGU6ICEwLCBlbnVtZXJhYmxlOiAhMCwgd3JpdGFibGU6ICEwIH07XG4gICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKGNvbnNvbGUsIHtcbiAgICAgICAgICBsb2c6IGFzc2lnbih7fSwgcHJvcHMsIHsgdmFsdWU6IHByZXZMb2cgfSksXG4gICAgICAgICAgaW5mbzogYXNzaWduKHt9LCBwcm9wcywgeyB2YWx1ZTogcHJldkluZm8gfSksXG4gICAgICAgICAgd2FybjogYXNzaWduKHt9LCBwcm9wcywgeyB2YWx1ZTogcHJldldhcm4gfSksXG4gICAgICAgICAgZXJyb3I6IGFzc2lnbih7fSwgcHJvcHMsIHsgdmFsdWU6IHByZXZFcnJvciB9KSxcbiAgICAgICAgICBncm91cDogYXNzaWduKHt9LCBwcm9wcywgeyB2YWx1ZTogcHJldkdyb3VwIH0pLFxuICAgICAgICAgIGdyb3VwQ29sbGFwc2VkOiBhc3NpZ24oe30sIHByb3BzLCB7IHZhbHVlOiBwcmV2R3JvdXBDb2xsYXBzZWQgfSksXG4gICAgICAgICAgZ3JvdXBFbmQ6IGFzc2lnbih7fSwgcHJvcHMsIHsgdmFsdWU6IHByZXZHcm91cEVuZCB9KVxuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICAgIDAgPiBkaXNhYmxlZERlcHRoICYmXG4gICAgICAgIGNvbnNvbGUuZXJyb3IoXG4gICAgICAgICAgXCJkaXNhYmxlZERlcHRoIGZlbGwgYmVsb3cgemVyby4gVGhpcyBpcyBhIGJ1ZyBpbiBSZWFjdC4gUGxlYXNlIGZpbGUgYW4gaXNzdWUuXCJcbiAgICAgICAgKTtcbiAgICB9XG4gICAgZnVuY3Rpb24gZGVzY3JpYmVCdWlsdEluQ29tcG9uZW50RnJhbWUobmFtZSkge1xuICAgICAgaWYgKHZvaWQgMCA9PT0gcHJlZml4KVxuICAgICAgICB0cnkge1xuICAgICAgICAgIHRocm93IEVycm9yKCk7XG4gICAgICAgIH0gY2F0Y2ggKHgpIHtcbiAgICAgICAgICB2YXIgbWF0Y2ggPSB4LnN0YWNrLnRyaW0oKS5tYXRjaCgvXFxuKCAqKGF0ICk/KS8pO1xuICAgICAgICAgIHByZWZpeCA9IChtYXRjaCAmJiBtYXRjaFsxXSkgfHwgXCJcIjtcbiAgICAgICAgICBzdWZmaXggPVxuICAgICAgICAgICAgLTEgPCB4LnN0YWNrLmluZGV4T2YoXCJcXG4gICAgYXRcIilcbiAgICAgICAgICAgICAgPyBcIiAoPGFub255bW91cz4pXCJcbiAgICAgICAgICAgICAgOiAtMSA8IHguc3RhY2suaW5kZXhPZihcIkBcIilcbiAgICAgICAgICAgICAgICA/IFwiQHVua25vd246MDowXCJcbiAgICAgICAgICAgICAgICA6IFwiXCI7XG4gICAgICAgIH1cbiAgICAgIHJldHVybiBcIlxcblwiICsgcHJlZml4ICsgbmFtZSArIHN1ZmZpeDtcbiAgICB9XG4gICAgZnVuY3Rpb24gZGVzY3JpYmVOYXRpdmVDb21wb25lbnRGcmFtZShmbiwgY29uc3RydWN0KSB7XG4gICAgICBpZiAoIWZuIHx8IHJlZW50cnkpIHJldHVybiBcIlwiO1xuICAgICAgdmFyIGZyYW1lID0gY29tcG9uZW50RnJhbWVDYWNoZS5nZXQoZm4pO1xuICAgICAgaWYgKHZvaWQgMCAhPT0gZnJhbWUpIHJldHVybiBmcmFtZTtcbiAgICAgIHJlZW50cnkgPSAhMDtcbiAgICAgIGZyYW1lID0gRXJyb3IucHJlcGFyZVN0YWNrVHJhY2U7XG4gICAgICBFcnJvci5wcmVwYXJlU3RhY2tUcmFjZSA9IHZvaWQgMDtcbiAgICAgIHZhciBwcmV2aW91c0Rpc3BhdGNoZXIgPSBudWxsO1xuICAgICAgcHJldmlvdXNEaXNwYXRjaGVyID0gUmVhY3RTaGFyZWRJbnRlcm5hbHMuSDtcbiAgICAgIFJlYWN0U2hhcmVkSW50ZXJuYWxzLkggPSBudWxsO1xuICAgICAgZGlzYWJsZUxvZ3MoKTtcbiAgICAgIHRyeSB7XG4gICAgICAgIHZhciBSdW5JblJvb3RGcmFtZSA9IHtcbiAgICAgICAgICBEZXRlcm1pbmVDb21wb25lbnRGcmFtZVJvb3Q6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgIGlmIChjb25zdHJ1Y3QpIHtcbiAgICAgICAgICAgICAgICB2YXIgRmFrZSA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICAgIHRocm93IEVycm9yKCk7XG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoRmFrZS5wcm90b3R5cGUsIFwicHJvcHNcIiwge1xuICAgICAgICAgICAgICAgICAgc2V0OiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgICAgIHRocm93IEVycm9yKCk7XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgaWYgKFwib2JqZWN0XCIgPT09IHR5cGVvZiBSZWZsZWN0ICYmIFJlZmxlY3QuY29uc3RydWN0KSB7XG4gICAgICAgICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgICAgICBSZWZsZWN0LmNvbnN0cnVjdChGYWtlLCBbXSk7XG4gICAgICAgICAgICAgICAgICB9IGNhdGNoICh4KSB7XG4gICAgICAgICAgICAgICAgICAgIHZhciBjb250cm9sID0geDtcbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgIFJlZmxlY3QuY29uc3RydWN0KGZuLCBbXSwgRmFrZSk7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgICAgIEZha2UuY2FsbCgpO1xuICAgICAgICAgICAgICAgICAgfSBjYXRjaCAoeCQwKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRyb2wgPSB4JDA7XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICBmbi5jYWxsKEZha2UucHJvdG90eXBlKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICAgIHRocm93IEVycm9yKCk7XG4gICAgICAgICAgICAgICAgfSBjYXRjaCAoeCQxKSB7XG4gICAgICAgICAgICAgICAgICBjb250cm9sID0geCQxO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAoRmFrZSA9IGZuKCkpICYmXG4gICAgICAgICAgICAgICAgICBcImZ1bmN0aW9uXCIgPT09IHR5cGVvZiBGYWtlLmNhdGNoICYmXG4gICAgICAgICAgICAgICAgICBGYWtlLmNhdGNoKGZ1bmN0aW9uICgpIHt9KTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBjYXRjaCAoc2FtcGxlKSB7XG4gICAgICAgICAgICAgIGlmIChzYW1wbGUgJiYgY29udHJvbCAmJiBcInN0cmluZ1wiID09PSB0eXBlb2Ygc2FtcGxlLnN0YWNrKVxuICAgICAgICAgICAgICAgIHJldHVybiBbc2FtcGxlLnN0YWNrLCBjb250cm9sLnN0YWNrXTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiBbbnVsbCwgbnVsbF07XG4gICAgICAgICAgfVxuICAgICAgICB9O1xuICAgICAgICBSdW5JblJvb3RGcmFtZS5EZXRlcm1pbmVDb21wb25lbnRGcmFtZVJvb3QuZGlzcGxheU5hbWUgPVxuICAgICAgICAgIFwiRGV0ZXJtaW5lQ29tcG9uZW50RnJhbWVSb290XCI7XG4gICAgICAgIHZhciBuYW1lUHJvcERlc2NyaXB0b3IgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKFxuICAgICAgICAgIFJ1bkluUm9vdEZyYW1lLkRldGVybWluZUNvbXBvbmVudEZyYW1lUm9vdCxcbiAgICAgICAgICBcIm5hbWVcIlxuICAgICAgICApO1xuICAgICAgICBuYW1lUHJvcERlc2NyaXB0b3IgJiZcbiAgICAgICAgICBuYW1lUHJvcERlc2NyaXB0b3IuY29uZmlndXJhYmxlICYmXG4gICAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KFxuICAgICAgICAgICAgUnVuSW5Sb290RnJhbWUuRGV0ZXJtaW5lQ29tcG9uZW50RnJhbWVSb290LFxuICAgICAgICAgICAgXCJuYW1lXCIsXG4gICAgICAgICAgICB7IHZhbHVlOiBcIkRldGVybWluZUNvbXBvbmVudEZyYW1lUm9vdFwiIH1cbiAgICAgICAgICApO1xuICAgICAgICB2YXIgX1J1bkluUm9vdEZyYW1lJERldGVyID1cbiAgICAgICAgICAgIFJ1bkluUm9vdEZyYW1lLkRldGVybWluZUNvbXBvbmVudEZyYW1lUm9vdCgpLFxuICAgICAgICAgIHNhbXBsZVN0YWNrID0gX1J1bkluUm9vdEZyYW1lJERldGVyWzBdLFxuICAgICAgICAgIGNvbnRyb2xTdGFjayA9IF9SdW5JblJvb3RGcmFtZSREZXRlclsxXTtcbiAgICAgICAgaWYgKHNhbXBsZVN0YWNrICYmIGNvbnRyb2xTdGFjaykge1xuICAgICAgICAgIHZhciBzYW1wbGVMaW5lcyA9IHNhbXBsZVN0YWNrLnNwbGl0KFwiXFxuXCIpLFxuICAgICAgICAgICAgY29udHJvbExpbmVzID0gY29udHJvbFN0YWNrLnNwbGl0KFwiXFxuXCIpO1xuICAgICAgICAgIGZvciAoXG4gICAgICAgICAgICBfUnVuSW5Sb290RnJhbWUkRGV0ZXIgPSBuYW1lUHJvcERlc2NyaXB0b3IgPSAwO1xuICAgICAgICAgICAgbmFtZVByb3BEZXNjcmlwdG9yIDwgc2FtcGxlTGluZXMubGVuZ3RoICYmXG4gICAgICAgICAgICAhc2FtcGxlTGluZXNbbmFtZVByb3BEZXNjcmlwdG9yXS5pbmNsdWRlcyhcbiAgICAgICAgICAgICAgXCJEZXRlcm1pbmVDb21wb25lbnRGcmFtZVJvb3RcIlxuICAgICAgICAgICAgKTtcblxuICAgICAgICAgIClcbiAgICAgICAgICAgIG5hbWVQcm9wRGVzY3JpcHRvcisrO1xuICAgICAgICAgIGZvciAoXG4gICAgICAgICAgICA7XG4gICAgICAgICAgICBfUnVuSW5Sb290RnJhbWUkRGV0ZXIgPCBjb250cm9sTGluZXMubGVuZ3RoICYmXG4gICAgICAgICAgICAhY29udHJvbExpbmVzW19SdW5JblJvb3RGcmFtZSREZXRlcl0uaW5jbHVkZXMoXG4gICAgICAgICAgICAgIFwiRGV0ZXJtaW5lQ29tcG9uZW50RnJhbWVSb290XCJcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICApXG4gICAgICAgICAgICBfUnVuSW5Sb290RnJhbWUkRGV0ZXIrKztcbiAgICAgICAgICBpZiAoXG4gICAgICAgICAgICBuYW1lUHJvcERlc2NyaXB0b3IgPT09IHNhbXBsZUxpbmVzLmxlbmd0aCB8fFxuICAgICAgICAgICAgX1J1bkluUm9vdEZyYW1lJERldGVyID09PSBjb250cm9sTGluZXMubGVuZ3RoXG4gICAgICAgICAgKVxuICAgICAgICAgICAgZm9yIChcbiAgICAgICAgICAgICAgbmFtZVByb3BEZXNjcmlwdG9yID0gc2FtcGxlTGluZXMubGVuZ3RoIC0gMSxcbiAgICAgICAgICAgICAgICBfUnVuSW5Sb290RnJhbWUkRGV0ZXIgPSBjb250cm9sTGluZXMubGVuZ3RoIC0gMTtcbiAgICAgICAgICAgICAgMSA8PSBuYW1lUHJvcERlc2NyaXB0b3IgJiZcbiAgICAgICAgICAgICAgMCA8PSBfUnVuSW5Sb290RnJhbWUkRGV0ZXIgJiZcbiAgICAgICAgICAgICAgc2FtcGxlTGluZXNbbmFtZVByb3BEZXNjcmlwdG9yXSAhPT1cbiAgICAgICAgICAgICAgICBjb250cm9sTGluZXNbX1J1bkluUm9vdEZyYW1lJERldGVyXTtcblxuICAgICAgICAgICAgKVxuICAgICAgICAgICAgICBfUnVuSW5Sb290RnJhbWUkRGV0ZXItLTtcbiAgICAgICAgICBmb3IgKFxuICAgICAgICAgICAgO1xuICAgICAgICAgICAgMSA8PSBuYW1lUHJvcERlc2NyaXB0b3IgJiYgMCA8PSBfUnVuSW5Sb290RnJhbWUkRGV0ZXI7XG4gICAgICAgICAgICBuYW1lUHJvcERlc2NyaXB0b3ItLSwgX1J1bkluUm9vdEZyYW1lJERldGVyLS1cbiAgICAgICAgICApXG4gICAgICAgICAgICBpZiAoXG4gICAgICAgICAgICAgIHNhbXBsZUxpbmVzW25hbWVQcm9wRGVzY3JpcHRvcl0gIT09XG4gICAgICAgICAgICAgIGNvbnRyb2xMaW5lc1tfUnVuSW5Sb290RnJhbWUkRGV0ZXJdXG4gICAgICAgICAgICApIHtcbiAgICAgICAgICAgICAgaWYgKDEgIT09IG5hbWVQcm9wRGVzY3JpcHRvciB8fCAxICE9PSBfUnVuSW5Sb290RnJhbWUkRGV0ZXIpIHtcbiAgICAgICAgICAgICAgICBkb1xuICAgICAgICAgICAgICAgICAgaWYgKFxuICAgICAgICAgICAgICAgICAgICAobmFtZVByb3BEZXNjcmlwdG9yLS0sXG4gICAgICAgICAgICAgICAgICAgIF9SdW5JblJvb3RGcmFtZSREZXRlci0tLFxuICAgICAgICAgICAgICAgICAgICAwID4gX1J1bkluUm9vdEZyYW1lJERldGVyIHx8XG4gICAgICAgICAgICAgICAgICAgICAgc2FtcGxlTGluZXNbbmFtZVByb3BEZXNjcmlwdG9yXSAhPT1cbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRyb2xMaW5lc1tfUnVuSW5Sb290RnJhbWUkRGV0ZXJdKVxuICAgICAgICAgICAgICAgICAgKSB7XG4gICAgICAgICAgICAgICAgICAgIHZhciBfZnJhbWUgPVxuICAgICAgICAgICAgICAgICAgICAgIFwiXFxuXCIgK1xuICAgICAgICAgICAgICAgICAgICAgIHNhbXBsZUxpbmVzW25hbWVQcm9wRGVzY3JpcHRvcl0ucmVwbGFjZShcbiAgICAgICAgICAgICAgICAgICAgICAgIFwiIGF0IG5ldyBcIixcbiAgICAgICAgICAgICAgICAgICAgICAgIFwiIGF0IFwiXG4gICAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICAgICAgZm4uZGlzcGxheU5hbWUgJiZcbiAgICAgICAgICAgICAgICAgICAgICBfZnJhbWUuaW5jbHVkZXMoXCI8YW5vbnltb3VzPlwiKSAmJlxuICAgICAgICAgICAgICAgICAgICAgIChfZnJhbWUgPSBfZnJhbWUucmVwbGFjZShcIjxhbm9ueW1vdXM+XCIsIGZuLmRpc3BsYXlOYW1lKSk7XG4gICAgICAgICAgICAgICAgICAgIFwiZnVuY3Rpb25cIiA9PT0gdHlwZW9mIGZuICYmXG4gICAgICAgICAgICAgICAgICAgICAgY29tcG9uZW50RnJhbWVDYWNoZS5zZXQoZm4sIF9mcmFtZSk7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBfZnJhbWU7XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgd2hpbGUgKDEgPD0gbmFtZVByb3BEZXNjcmlwdG9yICYmIDAgPD0gX1J1bkluUm9vdEZyYW1lJERldGVyKTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSBmaW5hbGx5IHtcbiAgICAgICAgKHJlZW50cnkgPSAhMSksXG4gICAgICAgICAgKFJlYWN0U2hhcmVkSW50ZXJuYWxzLkggPSBwcmV2aW91c0Rpc3BhdGNoZXIpLFxuICAgICAgICAgIHJlZW5hYmxlTG9ncygpLFxuICAgICAgICAgIChFcnJvci5wcmVwYXJlU3RhY2tUcmFjZSA9IGZyYW1lKTtcbiAgICAgIH1cbiAgICAgIHNhbXBsZUxpbmVzID0gKHNhbXBsZUxpbmVzID0gZm4gPyBmbi5kaXNwbGF5TmFtZSB8fCBmbi5uYW1lIDogXCJcIilcbiAgICAgICAgPyBkZXNjcmliZUJ1aWx0SW5Db21wb25lbnRGcmFtZShzYW1wbGVMaW5lcylcbiAgICAgICAgOiBcIlwiO1xuICAgICAgXCJmdW5jdGlvblwiID09PSB0eXBlb2YgZm4gJiYgY29tcG9uZW50RnJhbWVDYWNoZS5zZXQoZm4sIHNhbXBsZUxpbmVzKTtcbiAgICAgIHJldHVybiBzYW1wbGVMaW5lcztcbiAgICB9XG4gICAgZnVuY3Rpb24gZm9ybWF0T3duZXJTdGFjayhlcnJvcikge1xuICAgICAgdmFyIHByZXZQcmVwYXJlU3RhY2tUcmFjZSA9IEVycm9yLnByZXBhcmVTdGFja1RyYWNlO1xuICAgICAgRXJyb3IucHJlcGFyZVN0YWNrVHJhY2UgPSB2b2lkIDA7XG4gICAgICBlcnJvciA9IGVycm9yLnN0YWNrO1xuICAgICAgRXJyb3IucHJlcGFyZVN0YWNrVHJhY2UgPSBwcmV2UHJlcGFyZVN0YWNrVHJhY2U7XG4gICAgICBlcnJvci5zdGFydHNXaXRoKFwiRXJyb3I6IHJlYWN0LXN0YWNrLXRvcC1mcmFtZVxcblwiKSAmJlxuICAgICAgICAoZXJyb3IgPSBlcnJvci5zbGljZSgyOSkpO1xuICAgICAgcHJldlByZXBhcmVTdGFja1RyYWNlID0gZXJyb3IuaW5kZXhPZihcIlxcblwiKTtcbiAgICAgIC0xICE9PSBwcmV2UHJlcGFyZVN0YWNrVHJhY2UgJiZcbiAgICAgICAgKGVycm9yID0gZXJyb3Iuc2xpY2UocHJldlByZXBhcmVTdGFja1RyYWNlICsgMSkpO1xuICAgICAgcHJldlByZXBhcmVTdGFja1RyYWNlID0gZXJyb3IuaW5kZXhPZihcInJlYWN0LXN0YWNrLWJvdHRvbS1mcmFtZVwiKTtcbiAgICAgIC0xICE9PSBwcmV2UHJlcGFyZVN0YWNrVHJhY2UgJiZcbiAgICAgICAgKHByZXZQcmVwYXJlU3RhY2tUcmFjZSA9IGVycm9yLmxhc3RJbmRleE9mKFxuICAgICAgICAgIFwiXFxuXCIsXG4gICAgICAgICAgcHJldlByZXBhcmVTdGFja1RyYWNlXG4gICAgICAgICkpO1xuICAgICAgaWYgKC0xICE9PSBwcmV2UHJlcGFyZVN0YWNrVHJhY2UpXG4gICAgICAgIGVycm9yID0gZXJyb3Iuc2xpY2UoMCwgcHJldlByZXBhcmVTdGFja1RyYWNlKTtcbiAgICAgIGVsc2UgcmV0dXJuIFwiXCI7XG4gICAgICByZXR1cm4gZXJyb3I7XG4gICAgfVxuICAgIGZ1bmN0aW9uIGRlc2NyaWJlRmliZXIoZmliZXIpIHtcbiAgICAgIHN3aXRjaCAoZmliZXIudGFnKSB7XG4gICAgICAgIGNhc2UgMjY6XG4gICAgICAgIGNhc2UgMjc6XG4gICAgICAgIGNhc2UgNTpcbiAgICAgICAgICByZXR1cm4gZGVzY3JpYmVCdWlsdEluQ29tcG9uZW50RnJhbWUoZmliZXIudHlwZSk7XG4gICAgICAgIGNhc2UgMTY6XG4gICAgICAgICAgcmV0dXJuIGRlc2NyaWJlQnVpbHRJbkNvbXBvbmVudEZyYW1lKFwiTGF6eVwiKTtcbiAgICAgICAgY2FzZSAxMzpcbiAgICAgICAgICByZXR1cm4gZGVzY3JpYmVCdWlsdEluQ29tcG9uZW50RnJhbWUoXCJTdXNwZW5zZVwiKTtcbiAgICAgICAgY2FzZSAxOTpcbiAgICAgICAgICByZXR1cm4gZGVzY3JpYmVCdWlsdEluQ29tcG9uZW50RnJhbWUoXCJTdXNwZW5zZUxpc3RcIik7XG4gICAgICAgIGNhc2UgMDpcbiAgICAgICAgY2FzZSAxNTpcbiAgICAgICAgICByZXR1cm4gZGVzY3JpYmVOYXRpdmVDb21wb25lbnRGcmFtZShmaWJlci50eXBlLCAhMSk7XG4gICAgICAgIGNhc2UgMTE6XG4gICAgICAgICAgcmV0dXJuIGRlc2NyaWJlTmF0aXZlQ29tcG9uZW50RnJhbWUoZmliZXIudHlwZS5yZW5kZXIsICExKTtcbiAgICAgICAgY2FzZSAxOlxuICAgICAgICAgIHJldHVybiBkZXNjcmliZU5hdGl2ZUNvbXBvbmVudEZyYW1lKGZpYmVyLnR5cGUsICEwKTtcbiAgICAgICAgY2FzZSAzMTpcbiAgICAgICAgICByZXR1cm4gZGVzY3JpYmVCdWlsdEluQ29tcG9uZW50RnJhbWUoXCJBY3Rpdml0eVwiKTtcbiAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICByZXR1cm4gXCJcIjtcbiAgICAgIH1cbiAgICB9XG4gICAgZnVuY3Rpb24gZ2V0U3RhY2tCeUZpYmVySW5EZXZBbmRQcm9kKHdvcmtJblByb2dyZXNzKSB7XG4gICAgICB0cnkge1xuICAgICAgICB2YXIgaW5mbyA9IFwiXCI7XG4gICAgICAgIGRvIHtcbiAgICAgICAgICBpbmZvICs9IGRlc2NyaWJlRmliZXIod29ya0luUHJvZ3Jlc3MpO1xuICAgICAgICAgIHZhciBkZWJ1Z0luZm8gPSB3b3JrSW5Qcm9ncmVzcy5fZGVidWdJbmZvO1xuICAgICAgICAgIGlmIChkZWJ1Z0luZm8pXG4gICAgICAgICAgICBmb3IgKHZhciBpID0gZGVidWdJbmZvLmxlbmd0aCAtIDE7IDAgPD0gaTsgaS0tKSB7XG4gICAgICAgICAgICAgIHZhciBlbnRyeSA9IGRlYnVnSW5mb1tpXTtcbiAgICAgICAgICAgICAgaWYgKFwic3RyaW5nXCIgPT09IHR5cGVvZiBlbnRyeS5uYW1lKSB7XG4gICAgICAgICAgICAgICAgdmFyIEpTQ29tcGlsZXJfdGVtcF9jb25zdCA9IGluZm8sXG4gICAgICAgICAgICAgICAgICBlbnYgPSBlbnRyeS5lbnY7XG4gICAgICAgICAgICAgICAgdmFyIEpTQ29tcGlsZXJfaW5saW5lX3Jlc3VsdCA9IGRlc2NyaWJlQnVpbHRJbkNvbXBvbmVudEZyYW1lKFxuICAgICAgICAgICAgICAgICAgZW50cnkubmFtZSArIChlbnYgPyBcIiBbXCIgKyBlbnYgKyBcIl1cIiA6IFwiXCIpXG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICBpbmZvID0gSlNDb21waWxlcl90ZW1wX2NvbnN0ICsgSlNDb21waWxlcl9pbmxpbmVfcmVzdWx0O1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgd29ya0luUHJvZ3Jlc3MgPSB3b3JrSW5Qcm9ncmVzcy5yZXR1cm47XG4gICAgICAgIH0gd2hpbGUgKHdvcmtJblByb2dyZXNzKTtcbiAgICAgICAgcmV0dXJuIGluZm87XG4gICAgICB9IGNhdGNoICh4KSB7XG4gICAgICAgIHJldHVybiBcIlxcbkVycm9yIGdlbmVyYXRpbmcgc3RhY2s6IFwiICsgeC5tZXNzYWdlICsgXCJcXG5cIiArIHguc3RhY2s7XG4gICAgICB9XG4gICAgfVxuICAgIGZ1bmN0aW9uIGRlc2NyaWJlRnVuY3Rpb25Db21wb25lbnRGcmFtZVdpdGhvdXRMaW5lTnVtYmVyKGZuKSB7XG4gICAgICByZXR1cm4gKGZuID0gZm4gPyBmbi5kaXNwbGF5TmFtZSB8fCBmbi5uYW1lIDogXCJcIilcbiAgICAgICAgPyBkZXNjcmliZUJ1aWx0SW5Db21wb25lbnRGcmFtZShmbilcbiAgICAgICAgOiBcIlwiO1xuICAgIH1cbiAgICBmdW5jdGlvbiBnZXRDdXJyZW50RmliZXJPd25lck5hbWVJbkRldk9yTnVsbCgpIHtcbiAgICAgIGlmIChudWxsID09PSBjdXJyZW50KSByZXR1cm4gbnVsbDtcbiAgICAgIHZhciBvd25lciA9IGN1cnJlbnQuX2RlYnVnT3duZXI7XG4gICAgICByZXR1cm4gbnVsbCAhPSBvd25lciA/IGdldENvbXBvbmVudE5hbWVGcm9tT3duZXIob3duZXIpIDogbnVsbDtcbiAgICB9XG4gICAgZnVuY3Rpb24gZ2V0Q3VycmVudEZpYmVyU3RhY2tJbkRldigpIHtcbiAgICAgIGlmIChudWxsID09PSBjdXJyZW50KSByZXR1cm4gXCJcIjtcbiAgICAgIHZhciB3b3JrSW5Qcm9ncmVzcyA9IGN1cnJlbnQ7XG4gICAgICB0cnkge1xuICAgICAgICB2YXIgaW5mbyA9IFwiXCI7XG4gICAgICAgIDYgPT09IHdvcmtJblByb2dyZXNzLnRhZyAmJiAod29ya0luUHJvZ3Jlc3MgPSB3b3JrSW5Qcm9ncmVzcy5yZXR1cm4pO1xuICAgICAgICBzd2l0Y2ggKHdvcmtJblByb2dyZXNzLnRhZykge1xuICAgICAgICAgIGNhc2UgMjY6XG4gICAgICAgICAgY2FzZSAyNzpcbiAgICAgICAgICBjYXNlIDU6XG4gICAgICAgICAgICBpbmZvICs9IGRlc2NyaWJlQnVpbHRJbkNvbXBvbmVudEZyYW1lKHdvcmtJblByb2dyZXNzLnR5cGUpO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgY2FzZSAxMzpcbiAgICAgICAgICAgIGluZm8gKz0gZGVzY3JpYmVCdWlsdEluQ29tcG9uZW50RnJhbWUoXCJTdXNwZW5zZVwiKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIGNhc2UgMTk6XG4gICAgICAgICAgICBpbmZvICs9IGRlc2NyaWJlQnVpbHRJbkNvbXBvbmVudEZyYW1lKFwiU3VzcGVuc2VMaXN0XCIpO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgY2FzZSAzMTpcbiAgICAgICAgICAgIGluZm8gKz0gZGVzY3JpYmVCdWlsdEluQ29tcG9uZW50RnJhbWUoXCJBY3Rpdml0eVwiKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIGNhc2UgMzA6XG4gICAgICAgICAgY2FzZSAwOlxuICAgICAgICAgIGNhc2UgMTU6XG4gICAgICAgICAgY2FzZSAxOlxuICAgICAgICAgICAgd29ya0luUHJvZ3Jlc3MuX2RlYnVnT3duZXIgfHxcbiAgICAgICAgICAgICAgXCJcIiAhPT0gaW5mbyB8fFxuICAgICAgICAgICAgICAoaW5mbyArPSBkZXNjcmliZUZ1bmN0aW9uQ29tcG9uZW50RnJhbWVXaXRob3V0TGluZU51bWJlcihcbiAgICAgICAgICAgICAgICB3b3JrSW5Qcm9ncmVzcy50eXBlXG4gICAgICAgICAgICAgICkpO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgY2FzZSAxMTpcbiAgICAgICAgICAgIHdvcmtJblByb2dyZXNzLl9kZWJ1Z093bmVyIHx8XG4gICAgICAgICAgICAgIFwiXCIgIT09IGluZm8gfHxcbiAgICAgICAgICAgICAgKGluZm8gKz0gZGVzY3JpYmVGdW5jdGlvbkNvbXBvbmVudEZyYW1lV2l0aG91dExpbmVOdW1iZXIoXG4gICAgICAgICAgICAgICAgd29ya0luUHJvZ3Jlc3MudHlwZS5yZW5kZXJcbiAgICAgICAgICAgICAgKSk7XG4gICAgICAgIH1cbiAgICAgICAgZm9yICg7IHdvcmtJblByb2dyZXNzOyApXG4gICAgICAgICAgaWYgKFwibnVtYmVyXCIgPT09IHR5cGVvZiB3b3JrSW5Qcm9ncmVzcy50YWcpIHtcbiAgICAgICAgICAgIHZhciBmaWJlciA9IHdvcmtJblByb2dyZXNzO1xuICAgICAgICAgICAgd29ya0luUHJvZ3Jlc3MgPSBmaWJlci5fZGVidWdPd25lcjtcbiAgICAgICAgICAgIHZhciBkZWJ1Z1N0YWNrID0gZmliZXIuX2RlYnVnU3RhY2s7XG4gICAgICAgICAgICB3b3JrSW5Qcm9ncmVzcyAmJlxuICAgICAgICAgICAgICBkZWJ1Z1N0YWNrICYmXG4gICAgICAgICAgICAgIChcInN0cmluZ1wiICE9PSB0eXBlb2YgZGVidWdTdGFjayAmJlxuICAgICAgICAgICAgICAgIChmaWJlci5fZGVidWdTdGFjayA9IGRlYnVnU3RhY2sgPSBmb3JtYXRPd25lclN0YWNrKGRlYnVnU3RhY2spKSxcbiAgICAgICAgICAgICAgXCJcIiAhPT0gZGVidWdTdGFjayAmJiAoaW5mbyArPSBcIlxcblwiICsgZGVidWdTdGFjaykpO1xuICAgICAgICAgIH0gZWxzZSBpZiAobnVsbCAhPSB3b3JrSW5Qcm9ncmVzcy5kZWJ1Z1N0YWNrKSB7XG4gICAgICAgICAgICB2YXIgb3duZXJTdGFjayA9IHdvcmtJblByb2dyZXNzLmRlYnVnU3RhY2s7XG4gICAgICAgICAgICAod29ya0luUHJvZ3Jlc3MgPSB3b3JrSW5Qcm9ncmVzcy5vd25lcikgJiZcbiAgICAgICAgICAgICAgb3duZXJTdGFjayAmJlxuICAgICAgICAgICAgICAoaW5mbyArPSBcIlxcblwiICsgZm9ybWF0T3duZXJTdGFjayhvd25lclN0YWNrKSk7XG4gICAgICAgICAgfSBlbHNlIGJyZWFrO1xuICAgICAgICB2YXIgSlNDb21waWxlcl9pbmxpbmVfcmVzdWx0ID0gaW5mbztcbiAgICAgIH0gY2F0Y2ggKHgpIHtcbiAgICAgICAgSlNDb21waWxlcl9pbmxpbmVfcmVzdWx0ID1cbiAgICAgICAgICBcIlxcbkVycm9yIGdlbmVyYXRpbmcgc3RhY2s6IFwiICsgeC5tZXNzYWdlICsgXCJcXG5cIiArIHguc3RhY2s7XG4gICAgICB9XG4gICAgICByZXR1cm4gSlNDb21waWxlcl9pbmxpbmVfcmVzdWx0O1xuICAgIH1cbiAgICBmdW5jdGlvbiBydW5XaXRoRmliZXJJbkRFVihmaWJlciwgY2FsbGJhY2ssIGFyZzAsIGFyZzEsIGFyZzIsIGFyZzMsIGFyZzQpIHtcbiAgICAgIHZhciBwcmV2aW91c0ZpYmVyID0gY3VycmVudDtcbiAgICAgIHNldEN1cnJlbnRGaWJlcihmaWJlcik7XG4gICAgICB0cnkge1xuICAgICAgICByZXR1cm4gbnVsbCAhPT0gZmliZXIgJiYgZmliZXIuX2RlYnVnVGFza1xuICAgICAgICAgID8gZmliZXIuX2RlYnVnVGFzay5ydW4oXG4gICAgICAgICAgICAgIGNhbGxiYWNrLmJpbmQobnVsbCwgYXJnMCwgYXJnMSwgYXJnMiwgYXJnMywgYXJnNClcbiAgICAgICAgICAgIClcbiAgICAgICAgICA6IGNhbGxiYWNrKGFyZzAsIGFyZzEsIGFyZzIsIGFyZzMsIGFyZzQpO1xuICAgICAgfSBmaW5hbGx5IHtcbiAgICAgICAgc2V0Q3VycmVudEZpYmVyKHByZXZpb3VzRmliZXIpO1xuICAgICAgfVxuICAgICAgdGhyb3cgRXJyb3IoXG4gICAgICAgIFwicnVuV2l0aEZpYmVySW5ERVYgc2hvdWxkIG5ldmVyIGJlIGNhbGxlZCBpbiBwcm9kdWN0aW9uLiBUaGlzIGlzIGEgYnVnIGluIFJlYWN0LlwiXG4gICAgICApO1xuICAgIH1cbiAgICBmdW5jdGlvbiBzZXRDdXJyZW50RmliZXIoZmliZXIpIHtcbiAgICAgIFJlYWN0U2hhcmVkSW50ZXJuYWxzLmdldEN1cnJlbnRTdGFjayA9XG4gICAgICAgIG51bGwgPT09IGZpYmVyID8gbnVsbCA6IGdldEN1cnJlbnRGaWJlclN0YWNrSW5EZXY7XG4gICAgICBpc1JlbmRlcmluZyA9ICExO1xuICAgICAgY3VycmVudCA9IGZpYmVyO1xuICAgIH1cbiAgICBmdW5jdGlvbiBnZXRUb1N0cmluZ1ZhbHVlKHZhbHVlKSB7XG4gICAgICBzd2l0Y2ggKHR5cGVvZiB2YWx1ZSkge1xuICAgICAgICBjYXNlIFwiYmlnaW50XCI6XG4gICAgICAgIGNhc2UgXCJib29sZWFuXCI6XG4gICAgICAgIGNhc2UgXCJudW1iZXJcIjpcbiAgICAgICAgY2FzZSBcInN0cmluZ1wiOlxuICAgICAgICBjYXNlIFwidW5kZWZpbmVkXCI6XG4gICAgICAgICAgcmV0dXJuIHZhbHVlO1xuICAgICAgICBjYXNlIFwib2JqZWN0XCI6XG4gICAgICAgICAgcmV0dXJuIGNoZWNrRm9ybUZpZWxkVmFsdWVTdHJpbmdDb2VyY2lvbih2YWx1ZSksIHZhbHVlO1xuICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgIHJldHVybiBcIlwiO1xuICAgICAgfVxuICAgIH1cbiAgICBmdW5jdGlvbiBpc0NoZWNrYWJsZShlbGVtKSB7XG4gICAgICB2YXIgdHlwZSA9IGVsZW0udHlwZTtcbiAgICAgIHJldHVybiAoXG4gICAgICAgIChlbGVtID0gZWxlbS5ub2RlTmFtZSkgJiZcbiAgICAgICAgXCJpbnB1dFwiID09PSBlbGVtLnRvTG93ZXJDYXNlKCkgJiZcbiAgICAgICAgKFwiY2hlY2tib3hcIiA9PT0gdHlwZSB8fCBcInJhZGlvXCIgPT09IHR5cGUpXG4gICAgICApO1xuICAgIH1cbiAgICBmdW5jdGlvbiB0cmFja1ZhbHVlT25Ob2RlKG5vZGUpIHtcbiAgICAgIHZhciB2YWx1ZUZpZWxkID0gaXNDaGVja2FibGUobm9kZSkgPyBcImNoZWNrZWRcIiA6IFwidmFsdWVcIixcbiAgICAgICAgZGVzY3JpcHRvciA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoXG4gICAgICAgICAgbm9kZS5jb25zdHJ1Y3Rvci5wcm90b3R5cGUsXG4gICAgICAgICAgdmFsdWVGaWVsZFxuICAgICAgICApO1xuICAgICAgY2hlY2tGb3JtRmllbGRWYWx1ZVN0cmluZ0NvZXJjaW9uKG5vZGVbdmFsdWVGaWVsZF0pO1xuICAgICAgdmFyIGN1cnJlbnRWYWx1ZSA9IFwiXCIgKyBub2RlW3ZhbHVlRmllbGRdO1xuICAgICAgaWYgKFxuICAgICAgICAhbm9kZS5oYXNPd25Qcm9wZXJ0eSh2YWx1ZUZpZWxkKSAmJlxuICAgICAgICBcInVuZGVmaW5lZFwiICE9PSB0eXBlb2YgZGVzY3JpcHRvciAmJlxuICAgICAgICBcImZ1bmN0aW9uXCIgPT09IHR5cGVvZiBkZXNjcmlwdG9yLmdldCAmJlxuICAgICAgICBcImZ1bmN0aW9uXCIgPT09IHR5cGVvZiBkZXNjcmlwdG9yLnNldFxuICAgICAgKSB7XG4gICAgICAgIHZhciBnZXQgPSBkZXNjcmlwdG9yLmdldCxcbiAgICAgICAgICBzZXQgPSBkZXNjcmlwdG9yLnNldDtcbiAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KG5vZGUsIHZhbHVlRmllbGQsIHtcbiAgICAgICAgICBjb25maWd1cmFibGU6ICEwLFxuICAgICAgICAgIGdldDogZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgcmV0dXJuIGdldC5jYWxsKHRoaXMpO1xuICAgICAgICAgIH0sXG4gICAgICAgICAgc2V0OiBmdW5jdGlvbiAodmFsdWUpIHtcbiAgICAgICAgICAgIGNoZWNrRm9ybUZpZWxkVmFsdWVTdHJpbmdDb2VyY2lvbih2YWx1ZSk7XG4gICAgICAgICAgICBjdXJyZW50VmFsdWUgPSBcIlwiICsgdmFsdWU7XG4gICAgICAgICAgICBzZXQuY2FsbCh0aGlzLCB2YWx1ZSk7XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KG5vZGUsIHZhbHVlRmllbGQsIHtcbiAgICAgICAgICBlbnVtZXJhYmxlOiBkZXNjcmlwdG9yLmVudW1lcmFibGVcbiAgICAgICAgfSk7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgZ2V0VmFsdWU6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIHJldHVybiBjdXJyZW50VmFsdWU7XG4gICAgICAgICAgfSxcbiAgICAgICAgICBzZXRWYWx1ZTogZnVuY3Rpb24gKHZhbHVlKSB7XG4gICAgICAgICAgICBjaGVja0Zvcm1GaWVsZFZhbHVlU3RyaW5nQ29lcmNpb24odmFsdWUpO1xuICAgICAgICAgICAgY3VycmVudFZhbHVlID0gXCJcIiArIHZhbHVlO1xuICAgICAgICAgIH0sXG4gICAgICAgICAgc3RvcFRyYWNraW5nOiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICBub2RlLl92YWx1ZVRyYWNrZXIgPSBudWxsO1xuICAgICAgICAgICAgZGVsZXRlIG5vZGVbdmFsdWVGaWVsZF07XG4gICAgICAgICAgfVxuICAgICAgICB9O1xuICAgICAgfVxuICAgIH1cbiAgICBmdW5jdGlvbiB0cmFjayhub2RlKSB7XG4gICAgICBub2RlLl92YWx1ZVRyYWNrZXIgfHwgKG5vZGUuX3ZhbHVlVHJhY2tlciA9IHRyYWNrVmFsdWVPbk5vZGUobm9kZSkpO1xuICAgIH1cbiAgICBmdW5jdGlvbiB1cGRhdGVWYWx1ZUlmQ2hhbmdlZChub2RlKSB7XG4gICAgICBpZiAoIW5vZGUpIHJldHVybiAhMTtcbiAgICAgIHZhciB0cmFja2VyID0gbm9kZS5fdmFsdWVUcmFja2VyO1xuICAgICAgaWYgKCF0cmFja2VyKSByZXR1cm4gITA7XG4gICAgICB2YXIgbGFzdFZhbHVlID0gdHJhY2tlci5nZXRWYWx1ZSgpO1xuICAgICAgdmFyIHZhbHVlID0gXCJcIjtcbiAgICAgIG5vZGUgJiZcbiAgICAgICAgKHZhbHVlID0gaXNDaGVja2FibGUobm9kZSlcbiAgICAgICAgICA/IG5vZGUuY2hlY2tlZFxuICAgICAgICAgICAgPyBcInRydWVcIlxuICAgICAgICAgICAgOiBcImZhbHNlXCJcbiAgICAgICAgICA6IG5vZGUudmFsdWUpO1xuICAgICAgbm9kZSA9IHZhbHVlO1xuICAgICAgcmV0dXJuIG5vZGUgIT09IGxhc3RWYWx1ZSA/ICh0cmFja2VyLnNldFZhbHVlKG5vZGUpLCAhMCkgOiAhMTtcbiAgICB9XG4gICAgZnVuY3Rpb24gZ2V0QWN0aXZlRWxlbWVudChkb2MpIHtcbiAgICAgIGRvYyA9IGRvYyB8fCAoXCJ1bmRlZmluZWRcIiAhPT0gdHlwZW9mIGRvY3VtZW50ID8gZG9jdW1lbnQgOiB2b2lkIDApO1xuICAgICAgaWYgKFwidW5kZWZpbmVkXCIgPT09IHR5cGVvZiBkb2MpIHJldHVybiBudWxsO1xuICAgICAgdHJ5IHtcbiAgICAgICAgcmV0dXJuIGRvYy5hY3RpdmVFbGVtZW50IHx8IGRvYy5ib2R5O1xuICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICByZXR1cm4gZG9jLmJvZHk7XG4gICAgICB9XG4gICAgfVxuICAgIGZ1bmN0aW9uIGVzY2FwZVNlbGVjdG9yQXR0cmlidXRlVmFsdWVJbnNpZGVEb3VibGVRdW90ZXModmFsdWUpIHtcbiAgICAgIHJldHVybiB2YWx1ZS5yZXBsYWNlKFxuICAgICAgICBlc2NhcGVTZWxlY3RvckF0dHJpYnV0ZVZhbHVlSW5zaWRlRG91YmxlUXVvdGVzUmVnZXgsXG4gICAgICAgIGZ1bmN0aW9uIChjaCkge1xuICAgICAgICAgIHJldHVybiBcIlxcXFxcIiArIGNoLmNoYXJDb2RlQXQoMCkudG9TdHJpbmcoMTYpICsgXCIgXCI7XG4gICAgICAgIH1cbiAgICAgICk7XG4gICAgfVxuICAgIGZ1bmN0aW9uIHZhbGlkYXRlSW5wdXRQcm9wcyhlbGVtZW50LCBwcm9wcykge1xuICAgICAgdm9pZCAwID09PSBwcm9wcy5jaGVja2VkIHx8XG4gICAgICAgIHZvaWQgMCA9PT0gcHJvcHMuZGVmYXVsdENoZWNrZWQgfHxcbiAgICAgICAgZGlkV2FybkNoZWNrZWREZWZhdWx0Q2hlY2tlZCB8fFxuICAgICAgICAoY29uc29sZS5lcnJvcihcbiAgICAgICAgICBcIiVzIGNvbnRhaW5zIGFuIGlucHV0IG9mIHR5cGUgJXMgd2l0aCBib3RoIGNoZWNrZWQgYW5kIGRlZmF1bHRDaGVja2VkIHByb3BzLiBJbnB1dCBlbGVtZW50cyBtdXN0IGJlIGVpdGhlciBjb250cm9sbGVkIG9yIHVuY29udHJvbGxlZCAoc3BlY2lmeSBlaXRoZXIgdGhlIGNoZWNrZWQgcHJvcCwgb3IgdGhlIGRlZmF1bHRDaGVja2VkIHByb3AsIGJ1dCBub3QgYm90aCkuIERlY2lkZSBiZXR3ZWVuIHVzaW5nIGEgY29udHJvbGxlZCBvciB1bmNvbnRyb2xsZWQgaW5wdXQgZWxlbWVudCBhbmQgcmVtb3ZlIG9uZSBvZiB0aGVzZSBwcm9wcy4gTW9yZSBpbmZvOiBodHRwczovL3JlYWN0LmRldi9saW5rL2NvbnRyb2xsZWQtY29tcG9uZW50c1wiLFxuICAgICAgICAgIGdldEN1cnJlbnRGaWJlck93bmVyTmFtZUluRGV2T3JOdWxsKCkgfHwgXCJBIGNvbXBvbmVudFwiLFxuICAgICAgICAgIHByb3BzLnR5cGVcbiAgICAgICAgKSxcbiAgICAgICAgKGRpZFdhcm5DaGVja2VkRGVmYXVsdENoZWNrZWQgPSAhMCkpO1xuICAgICAgdm9pZCAwID09PSBwcm9wcy52YWx1ZSB8fFxuICAgICAgICB2b2lkIDAgPT09IHByb3BzLmRlZmF1bHRWYWx1ZSB8fFxuICAgICAgICBkaWRXYXJuVmFsdWVEZWZhdWx0VmFsdWUkMSB8fFxuICAgICAgICAoY29uc29sZS5lcnJvcihcbiAgICAgICAgICBcIiVzIGNvbnRhaW5zIGFuIGlucHV0IG9mIHR5cGUgJXMgd2l0aCBib3RoIHZhbHVlIGFuZCBkZWZhdWx0VmFsdWUgcHJvcHMuIElucHV0IGVsZW1lbnRzIG11c3QgYmUgZWl0aGVyIGNvbnRyb2xsZWQgb3IgdW5jb250cm9sbGVkIChzcGVjaWZ5IGVpdGhlciB0aGUgdmFsdWUgcHJvcCwgb3IgdGhlIGRlZmF1bHRWYWx1ZSBwcm9wLCBidXQgbm90IGJvdGgpLiBEZWNpZGUgYmV0d2VlbiB1c2luZyBhIGNvbnRyb2xsZWQgb3IgdW5jb250cm9sbGVkIGlucHV0IGVsZW1lbnQgYW5kIHJlbW92ZSBvbmUgb2YgdGhlc2UgcHJvcHMuIE1vcmUgaW5mbzogaHR0cHM6Ly9yZWFjdC5kZXYvbGluay9jb250cm9sbGVkLWNvbXBvbmVudHNcIixcbiAgICAgICAgICBnZXRDdXJyZW50RmliZXJPd25lck5hbWVJbkRldk9yTnVsbCgpIHx8IFwiQSBjb21wb25lbnRcIixcbiAgICAgICAgICBwcm9wcy50eXBlXG4gICAgICAgICksXG4gICAgICAgIChkaWRXYXJuVmFsdWVEZWZhdWx0VmFsdWUkMSA9ICEwKSk7XG4gICAgfVxuICAgIGZ1bmN0aW9uIHVwZGF0ZUlucHV0KFxuICAgICAgZWxlbWVudCxcbiAgICAgIHZhbHVlLFxuICAgICAgZGVmYXVsdFZhbHVlLFxuICAgICAgbGFzdERlZmF1bHRWYWx1ZSxcbiAgICAgIGNoZWNrZWQsXG4gICAgICBkZWZhdWx0Q2hlY2tlZCxcbiAgICAgIHR5cGUsXG4gICAgICBuYW1lXG4gICAgKSB7XG4gICAgICBlbGVtZW50Lm5hbWUgPSBcIlwiO1xuICAgICAgbnVsbCAhPSB0eXBlICYmXG4gICAgICBcImZ1bmN0aW9uXCIgIT09IHR5cGVvZiB0eXBlICYmXG4gICAgICBcInN5bWJvbFwiICE9PSB0eXBlb2YgdHlwZSAmJlxuICAgICAgXCJib29sZWFuXCIgIT09IHR5cGVvZiB0eXBlXG4gICAgICAgID8gKGNoZWNrQXR0cmlidXRlU3RyaW5nQ29lcmNpb24odHlwZSwgXCJ0eXBlXCIpLCAoZWxlbWVudC50eXBlID0gdHlwZSkpXG4gICAgICAgIDogZWxlbWVudC5yZW1vdmVBdHRyaWJ1dGUoXCJ0eXBlXCIpO1xuICAgICAgaWYgKG51bGwgIT0gdmFsdWUpXG4gICAgICAgIGlmIChcIm51bWJlclwiID09PSB0eXBlKSB7XG4gICAgICAgICAgaWYgKCgwID09PSB2YWx1ZSAmJiBcIlwiID09PSBlbGVtZW50LnZhbHVlKSB8fCBlbGVtZW50LnZhbHVlICE9IHZhbHVlKVxuICAgICAgICAgICAgZWxlbWVudC52YWx1ZSA9IFwiXCIgKyBnZXRUb1N0cmluZ1ZhbHVlKHZhbHVlKTtcbiAgICAgICAgfSBlbHNlXG4gICAgICAgICAgZWxlbWVudC52YWx1ZSAhPT0gXCJcIiArIGdldFRvU3RyaW5nVmFsdWUodmFsdWUpICYmXG4gICAgICAgICAgICAoZWxlbWVudC52YWx1ZSA9IFwiXCIgKyBnZXRUb1N0cmluZ1ZhbHVlKHZhbHVlKSk7XG4gICAgICBlbHNlXG4gICAgICAgIChcInN1Ym1pdFwiICE9PSB0eXBlICYmIFwicmVzZXRcIiAhPT0gdHlwZSkgfHxcbiAgICAgICAgICBlbGVtZW50LnJlbW92ZUF0dHJpYnV0ZShcInZhbHVlXCIpO1xuICAgICAgbnVsbCAhPSB2YWx1ZVxuICAgICAgICA/IHNldERlZmF1bHRWYWx1ZShlbGVtZW50LCB0eXBlLCBnZXRUb1N0cmluZ1ZhbHVlKHZhbHVlKSlcbiAgICAgICAgOiBudWxsICE9IGRlZmF1bHRWYWx1ZVxuICAgICAgICAgID8gc2V0RGVmYXVsdFZhbHVlKGVsZW1lbnQsIHR5cGUsIGdldFRvU3RyaW5nVmFsdWUoZGVmYXVsdFZhbHVlKSlcbiAgICAgICAgICA6IG51bGwgIT0gbGFzdERlZmF1bHRWYWx1ZSAmJiBlbGVtZW50LnJlbW92ZUF0dHJpYnV0ZShcInZhbHVlXCIpO1xuICAgICAgbnVsbCA9PSBjaGVja2VkICYmXG4gICAgICAgIG51bGwgIT0gZGVmYXVsdENoZWNrZWQgJiZcbiAgICAgICAgKGVsZW1lbnQuZGVmYXVsdENoZWNrZWQgPSAhIWRlZmF1bHRDaGVja2VkKTtcbiAgICAgIG51bGwgIT0gY2hlY2tlZCAmJlxuICAgICAgICAoZWxlbWVudC5jaGVja2VkID1cbiAgICAgICAgICBjaGVja2VkICYmXG4gICAgICAgICAgXCJmdW5jdGlvblwiICE9PSB0eXBlb2YgY2hlY2tlZCAmJlxuICAgICAgICAgIFwic3ltYm9sXCIgIT09IHR5cGVvZiBjaGVja2VkKTtcbiAgICAgIG51bGwgIT0gbmFtZSAmJlxuICAgICAgXCJmdW5jdGlvblwiICE9PSB0eXBlb2YgbmFtZSAmJlxuICAgICAgXCJzeW1ib2xcIiAhPT0gdHlwZW9mIG5hbWUgJiZcbiAgICAgIFwiYm9vbGVhblwiICE9PSB0eXBlb2YgbmFtZVxuICAgICAgICA/IChjaGVja0F0dHJpYnV0ZVN0cmluZ0NvZXJjaW9uKG5hbWUsIFwibmFtZVwiKSxcbiAgICAgICAgICAoZWxlbWVudC5uYW1lID0gXCJcIiArIGdldFRvU3RyaW5nVmFsdWUobmFtZSkpKVxuICAgICAgICA6IGVsZW1lbnQucmVtb3ZlQXR0cmlidXRlKFwibmFtZVwiKTtcbiAgICB9XG4gICAgZnVuY3Rpb24gaW5pdElucHV0KFxuICAgICAgZWxlbWVudCxcbiAgICAgIHZhbHVlLFxuICAgICAgZGVmYXVsdFZhbHVlLFxuICAgICAgY2hlY2tlZCxcbiAgICAgIGRlZmF1bHRDaGVja2VkLFxuICAgICAgdHlwZSxcbiAgICAgIG5hbWUsXG4gICAgICBpc0h5ZHJhdGluZ1xuICAgICkge1xuICAgICAgbnVsbCAhPSB0eXBlICYmXG4gICAgICAgIFwiZnVuY3Rpb25cIiAhPT0gdHlwZW9mIHR5cGUgJiZcbiAgICAgICAgXCJzeW1ib2xcIiAhPT0gdHlwZW9mIHR5cGUgJiZcbiAgICAgICAgXCJib29sZWFuXCIgIT09IHR5cGVvZiB0eXBlICYmXG4gICAgICAgIChjaGVja0F0dHJpYnV0ZVN0cmluZ0NvZXJjaW9uKHR5cGUsIFwidHlwZVwiKSwgKGVsZW1lbnQudHlwZSA9IHR5cGUpKTtcbiAgICAgIGlmIChudWxsICE9IHZhbHVlIHx8IG51bGwgIT0gZGVmYXVsdFZhbHVlKSB7XG4gICAgICAgIGlmIChcbiAgICAgICAgICAhKFxuICAgICAgICAgICAgKFwic3VibWl0XCIgIT09IHR5cGUgJiYgXCJyZXNldFwiICE9PSB0eXBlKSB8fFxuICAgICAgICAgICAgKHZvaWQgMCAhPT0gdmFsdWUgJiYgbnVsbCAhPT0gdmFsdWUpXG4gICAgICAgICAgKVxuICAgICAgICApXG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICBkZWZhdWx0VmFsdWUgPVxuICAgICAgICAgIG51bGwgIT0gZGVmYXVsdFZhbHVlID8gXCJcIiArIGdldFRvU3RyaW5nVmFsdWUoZGVmYXVsdFZhbHVlKSA6IFwiXCI7XG4gICAgICAgIHZhbHVlID0gbnVsbCAhPSB2YWx1ZSA/IFwiXCIgKyBnZXRUb1N0cmluZ1ZhbHVlKHZhbHVlKSA6IGRlZmF1bHRWYWx1ZTtcbiAgICAgICAgaXNIeWRyYXRpbmcgfHwgdmFsdWUgPT09IGVsZW1lbnQudmFsdWUgfHwgKGVsZW1lbnQudmFsdWUgPSB2YWx1ZSk7XG4gICAgICAgIGVsZW1lbnQuZGVmYXVsdFZhbHVlID0gdmFsdWU7XG4gICAgICB9XG4gICAgICBjaGVja2VkID0gbnVsbCAhPSBjaGVja2VkID8gY2hlY2tlZCA6IGRlZmF1bHRDaGVja2VkO1xuICAgICAgY2hlY2tlZCA9XG4gICAgICAgIFwiZnVuY3Rpb25cIiAhPT0gdHlwZW9mIGNoZWNrZWQgJiZcbiAgICAgICAgXCJzeW1ib2xcIiAhPT0gdHlwZW9mIGNoZWNrZWQgJiZcbiAgICAgICAgISFjaGVja2VkO1xuICAgICAgZWxlbWVudC5jaGVja2VkID0gaXNIeWRyYXRpbmcgPyBlbGVtZW50LmNoZWNrZWQgOiAhIWNoZWNrZWQ7XG4gICAgICBlbGVtZW50LmRlZmF1bHRDaGVja2VkID0gISFjaGVja2VkO1xuICAgICAgbnVsbCAhPSBuYW1lICYmXG4gICAgICAgIFwiZnVuY3Rpb25cIiAhPT0gdHlwZW9mIG5hbWUgJiZcbiAgICAgICAgXCJzeW1ib2xcIiAhPT0gdHlwZW9mIG5hbWUgJiZcbiAgICAgICAgXCJib29sZWFuXCIgIT09IHR5cGVvZiBuYW1lICYmXG4gICAgICAgIChjaGVja0F0dHJpYnV0ZVN0cmluZ0NvZXJjaW9uKG5hbWUsIFwibmFtZVwiKSwgKGVsZW1lbnQubmFtZSA9IG5hbWUpKTtcbiAgICB9XG4gICAgZnVuY3Rpb24gc2V0RGVmYXVsdFZhbHVlKG5vZGUsIHR5cGUsIHZhbHVlKSB7XG4gICAgICAoXCJudW1iZXJcIiA9PT0gdHlwZSAmJiBnZXRBY3RpdmVFbGVtZW50KG5vZGUub3duZXJEb2N1bWVudCkgPT09IG5vZGUpIHx8XG4gICAgICAgIG5vZGUuZGVmYXVsdFZhbHVlID09PSBcIlwiICsgdmFsdWUgfHxcbiAgICAgICAgKG5vZGUuZGVmYXVsdFZhbHVlID0gXCJcIiArIHZhbHVlKTtcbiAgICB9XG4gICAgZnVuY3Rpb24gdmFsaWRhdGVPcHRpb25Qcm9wcyhlbGVtZW50LCBwcm9wcykge1xuICAgICAgbnVsbCA9PSBwcm9wcy52YWx1ZSAmJlxuICAgICAgICAoXCJvYmplY3RcIiA9PT0gdHlwZW9mIHByb3BzLmNoaWxkcmVuICYmIG51bGwgIT09IHByb3BzLmNoaWxkcmVuXG4gICAgICAgICAgPyBSZWFjdC5DaGlsZHJlbi5mb3JFYWNoKHByb3BzLmNoaWxkcmVuLCBmdW5jdGlvbiAoY2hpbGQpIHtcbiAgICAgICAgICAgICAgbnVsbCA9PSBjaGlsZCB8fFxuICAgICAgICAgICAgICAgIFwic3RyaW5nXCIgPT09IHR5cGVvZiBjaGlsZCB8fFxuICAgICAgICAgICAgICAgIFwibnVtYmVyXCIgPT09IHR5cGVvZiBjaGlsZCB8fFxuICAgICAgICAgICAgICAgIFwiYmlnaW50XCIgPT09IHR5cGVvZiBjaGlsZCB8fFxuICAgICAgICAgICAgICAgIGRpZFdhcm5JbnZhbGlkQ2hpbGQgfHxcbiAgICAgICAgICAgICAgICAoKGRpZFdhcm5JbnZhbGlkQ2hpbGQgPSAhMCksXG4gICAgICAgICAgICAgICAgY29uc29sZS5lcnJvcihcbiAgICAgICAgICAgICAgICAgIFwiQ2Fubm90IGluZmVyIHRoZSBvcHRpb24gdmFsdWUgb2YgY29tcGxleCBjaGlsZHJlbi4gUGFzcyBhIGB2YWx1ZWAgcHJvcCBvciB1c2UgYSBwbGFpbiBzdHJpbmcgYXMgY2hpbGRyZW4gdG8gPG9wdGlvbj4uXCJcbiAgICAgICAgICAgICAgICApKTtcbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgOiBudWxsID09IHByb3BzLmRhbmdlcm91c2x5U2V0SW5uZXJIVE1MIHx8XG4gICAgICAgICAgICBkaWRXYXJuSW52YWxpZElubmVySFRNTCB8fFxuICAgICAgICAgICAgKChkaWRXYXJuSW52YWxpZElubmVySFRNTCA9ICEwKSxcbiAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoXG4gICAgICAgICAgICAgIFwiUGFzcyBhIGB2YWx1ZWAgcHJvcCBpZiB5b3Ugc2V0IGRhbmdlcm91c2x5SW5uZXJIVE1MIHNvIFJlYWN0IGtub3dzIHdoaWNoIHZhbHVlIHNob3VsZCBiZSBzZWxlY3RlZC5cIlxuICAgICAgICAgICAgKSkpO1xuICAgICAgbnVsbCA9PSBwcm9wcy5zZWxlY3RlZCB8fFxuICAgICAgICBkaWRXYXJuU2VsZWN0ZWRTZXRPbk9wdGlvbiB8fFxuICAgICAgICAoY29uc29sZS5lcnJvcihcbiAgICAgICAgICBcIlVzZSB0aGUgYGRlZmF1bHRWYWx1ZWAgb3IgYHZhbHVlYCBwcm9wcyBvbiA8c2VsZWN0PiBpbnN0ZWFkIG9mIHNldHRpbmcgYHNlbGVjdGVkYCBvbiA8b3B0aW9uPi5cIlxuICAgICAgICApLFxuICAgICAgICAoZGlkV2FyblNlbGVjdGVkU2V0T25PcHRpb24gPSAhMCkpO1xuICAgIH1cbiAgICBmdW5jdGlvbiBnZXREZWNsYXJhdGlvbkVycm9yQWRkZW5kdW0oKSB7XG4gICAgICB2YXIgb3duZXJOYW1lID0gZ2V0Q3VycmVudEZpYmVyT3duZXJOYW1lSW5EZXZPck51bGwoKTtcbiAgICAgIHJldHVybiBvd25lck5hbWVcbiAgICAgICAgPyBcIlxcblxcbkNoZWNrIHRoZSByZW5kZXIgbWV0aG9kIG9mIGBcIiArIG93bmVyTmFtZSArIFwiYC5cIlxuICAgICAgICA6IFwiXCI7XG4gICAgfVxuICAgIGZ1bmN0aW9uIHVwZGF0ZU9wdGlvbnMobm9kZSwgbXVsdGlwbGUsIHByb3BWYWx1ZSwgc2V0RGVmYXVsdFNlbGVjdGVkKSB7XG4gICAgICBub2RlID0gbm9kZS5vcHRpb25zO1xuICAgICAgaWYgKG11bHRpcGxlKSB7XG4gICAgICAgIG11bHRpcGxlID0ge307XG4gICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgcHJvcFZhbHVlLmxlbmd0aDsgaSsrKVxuICAgICAgICAgIG11bHRpcGxlW1wiJFwiICsgcHJvcFZhbHVlW2ldXSA9ICEwO1xuICAgICAgICBmb3IgKHByb3BWYWx1ZSA9IDA7IHByb3BWYWx1ZSA8IG5vZGUubGVuZ3RoOyBwcm9wVmFsdWUrKylcbiAgICAgICAgICAoaSA9IG11bHRpcGxlLmhhc093blByb3BlcnR5KFwiJFwiICsgbm9kZVtwcm9wVmFsdWVdLnZhbHVlKSksXG4gICAgICAgICAgICBub2RlW3Byb3BWYWx1ZV0uc2VsZWN0ZWQgIT09IGkgJiYgKG5vZGVbcHJvcFZhbHVlXS5zZWxlY3RlZCA9IGkpLFxuICAgICAgICAgICAgaSAmJiBzZXREZWZhdWx0U2VsZWN0ZWQgJiYgKG5vZGVbcHJvcFZhbHVlXS5kZWZhdWx0U2VsZWN0ZWQgPSAhMCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBwcm9wVmFsdWUgPSBcIlwiICsgZ2V0VG9TdHJpbmdWYWx1ZShwcm9wVmFsdWUpO1xuICAgICAgICBtdWx0aXBsZSA9IG51bGw7XG4gICAgICAgIGZvciAoaSA9IDA7IGkgPCBub2RlLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgaWYgKG5vZGVbaV0udmFsdWUgPT09IHByb3BWYWx1ZSkge1xuICAgICAgICAgICAgbm9kZVtpXS5zZWxlY3RlZCA9ICEwO1xuICAgICAgICAgICAgc2V0RGVmYXVsdFNlbGVjdGVkICYmIChub2RlW2ldLmRlZmF1bHRTZWxlY3RlZCA9ICEwKTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICB9XG4gICAgICAgICAgbnVsbCAhPT0gbXVsdGlwbGUgfHwgbm9kZVtpXS5kaXNhYmxlZCB8fCAobXVsdGlwbGUgPSBub2RlW2ldKTtcbiAgICAgICAgfVxuICAgICAgICBudWxsICE9PSBtdWx0aXBsZSAmJiAobXVsdGlwbGUuc2VsZWN0ZWQgPSAhMCk7XG4gICAgICB9XG4gICAgfVxuICAgIGZ1bmN0aW9uIHZhbGlkYXRlU2VsZWN0UHJvcHMoZWxlbWVudCwgcHJvcHMpIHtcbiAgICAgIGZvciAoZWxlbWVudCA9IDA7IGVsZW1lbnQgPCB2YWx1ZVByb3BOYW1lcy5sZW5ndGg7IGVsZW1lbnQrKykge1xuICAgICAgICB2YXIgcHJvcE5hbWUgPSB2YWx1ZVByb3BOYW1lc1tlbGVtZW50XTtcbiAgICAgICAgaWYgKG51bGwgIT0gcHJvcHNbcHJvcE5hbWVdKSB7XG4gICAgICAgICAgdmFyIHByb3BOYW1lSXNBcnJheSA9IGlzQXJyYXlJbXBsKHByb3BzW3Byb3BOYW1lXSk7XG4gICAgICAgICAgcHJvcHMubXVsdGlwbGUgJiYgIXByb3BOYW1lSXNBcnJheVxuICAgICAgICAgICAgPyBjb25zb2xlLmVycm9yKFxuICAgICAgICAgICAgICAgIFwiVGhlIGAlc2AgcHJvcCBzdXBwbGllZCB0byA8c2VsZWN0PiBtdXN0IGJlIGFuIGFycmF5IGlmIGBtdWx0aXBsZWAgaXMgdHJ1ZS4lc1wiLFxuICAgICAgICAgICAgICAgIHByb3BOYW1lLFxuICAgICAgICAgICAgICAgIGdldERlY2xhcmF0aW9uRXJyb3JBZGRlbmR1bSgpXG4gICAgICAgICAgICAgIClcbiAgICAgICAgICAgIDogIXByb3BzLm11bHRpcGxlICYmXG4gICAgICAgICAgICAgIHByb3BOYW1lSXNBcnJheSAmJlxuICAgICAgICAgICAgICBjb25zb2xlLmVycm9yKFxuICAgICAgICAgICAgICAgIFwiVGhlIGAlc2AgcHJvcCBzdXBwbGllZCB0byA8c2VsZWN0PiBtdXN0IGJlIGEgc2NhbGFyIHZhbHVlIGlmIGBtdWx0aXBsZWAgaXMgZmFsc2UuJXNcIixcbiAgICAgICAgICAgICAgICBwcm9wTmFtZSxcbiAgICAgICAgICAgICAgICBnZXREZWNsYXJhdGlvbkVycm9yQWRkZW5kdW0oKVxuICAgICAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICB2b2lkIDAgPT09IHByb3BzLnZhbHVlIHx8XG4gICAgICAgIHZvaWQgMCA9PT0gcHJvcHMuZGVmYXVsdFZhbHVlIHx8XG4gICAgICAgIGRpZFdhcm5WYWx1ZURlZmF1bHRWYWx1ZSB8fFxuICAgICAgICAoY29uc29sZS5lcnJvcihcbiAgICAgICAgICBcIlNlbGVjdCBlbGVtZW50cyBtdXN0IGJlIGVpdGhlciBjb250cm9sbGVkIG9yIHVuY29udHJvbGxlZCAoc3BlY2lmeSBlaXRoZXIgdGhlIHZhbHVlIHByb3AsIG9yIHRoZSBkZWZhdWx0VmFsdWUgcHJvcCwgYnV0IG5vdCBib3RoKS4gRGVjaWRlIGJldHdlZW4gdXNpbmcgYSBjb250cm9sbGVkIG9yIHVuY29udHJvbGxlZCBzZWxlY3QgZWxlbWVudCBhbmQgcmVtb3ZlIG9uZSBvZiB0aGVzZSBwcm9wcy4gTW9yZSBpbmZvOiBodHRwczovL3JlYWN0LmRldi9saW5rL2NvbnRyb2xsZWQtY29tcG9uZW50c1wiXG4gICAgICAgICksXG4gICAgICAgIChkaWRXYXJuVmFsdWVEZWZhdWx0VmFsdWUgPSAhMCkpO1xuICAgIH1cbiAgICBmdW5jdGlvbiB2YWxpZGF0ZVRleHRhcmVhUHJvcHMoZWxlbWVudCwgcHJvcHMpIHtcbiAgICAgIHZvaWQgMCA9PT0gcHJvcHMudmFsdWUgfHxcbiAgICAgICAgdm9pZCAwID09PSBwcm9wcy5kZWZhdWx0VmFsdWUgfHxcbiAgICAgICAgZGlkV2FyblZhbERlZmF1bHRWYWwgfHxcbiAgICAgICAgKGNvbnNvbGUuZXJyb3IoXG4gICAgICAgICAgXCIlcyBjb250YWlucyBhIHRleHRhcmVhIHdpdGggYm90aCB2YWx1ZSBhbmQgZGVmYXVsdFZhbHVlIHByb3BzLiBUZXh0YXJlYSBlbGVtZW50cyBtdXN0IGJlIGVpdGhlciBjb250cm9sbGVkIG9yIHVuY29udHJvbGxlZCAoc3BlY2lmeSBlaXRoZXIgdGhlIHZhbHVlIHByb3AsIG9yIHRoZSBkZWZhdWx0VmFsdWUgcHJvcCwgYnV0IG5vdCBib3RoKS4gRGVjaWRlIGJldHdlZW4gdXNpbmcgYSBjb250cm9sbGVkIG9yIHVuY29udHJvbGxlZCB0ZXh0YXJlYSBhbmQgcmVtb3ZlIG9uZSBvZiB0aGVzZSBwcm9wcy4gTW9yZSBpbmZvOiBodHRwczovL3JlYWN0LmRldi9saW5rL2NvbnRyb2xsZWQtY29tcG9uZW50c1wiLFxuICAgICAgICAgIGdldEN1cnJlbnRGaWJlck93bmVyTmFtZUluRGV2T3JOdWxsKCkgfHwgXCJBIGNvbXBvbmVudFwiXG4gICAgICAgICksXG4gICAgICAgIChkaWRXYXJuVmFsRGVmYXVsdFZhbCA9ICEwKSk7XG4gICAgICBudWxsICE9IHByb3BzLmNoaWxkcmVuICYmXG4gICAgICAgIG51bGwgPT0gcHJvcHMudmFsdWUgJiZcbiAgICAgICAgY29uc29sZS5lcnJvcihcbiAgICAgICAgICBcIlVzZSB0aGUgYGRlZmF1bHRWYWx1ZWAgb3IgYHZhbHVlYCBwcm9wcyBpbnN0ZWFkIG9mIHNldHRpbmcgY2hpbGRyZW4gb24gPHRleHRhcmVhPi5cIlxuICAgICAgICApO1xuICAgIH1cbiAgICBmdW5jdGlvbiB1cGRhdGVUZXh0YXJlYShlbGVtZW50LCB2YWx1ZSwgZGVmYXVsdFZhbHVlKSB7XG4gICAgICBpZiAoXG4gICAgICAgIG51bGwgIT0gdmFsdWUgJiZcbiAgICAgICAgKCh2YWx1ZSA9IFwiXCIgKyBnZXRUb1N0cmluZ1ZhbHVlKHZhbHVlKSksXG4gICAgICAgIHZhbHVlICE9PSBlbGVtZW50LnZhbHVlICYmIChlbGVtZW50LnZhbHVlID0gdmFsdWUpLFxuICAgICAgICBudWxsID09IGRlZmF1bHRWYWx1ZSlcbiAgICAgICkge1xuICAgICAgICBlbGVtZW50LmRlZmF1bHRWYWx1ZSAhPT0gdmFsdWUgJiYgKGVsZW1lbnQuZGVmYXVsdFZhbHVlID0gdmFsdWUpO1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgICBlbGVtZW50LmRlZmF1bHRWYWx1ZSA9XG4gICAgICAgIG51bGwgIT0gZGVmYXVsdFZhbHVlID8gXCJcIiArIGdldFRvU3RyaW5nVmFsdWUoZGVmYXVsdFZhbHVlKSA6IFwiXCI7XG4gICAgfVxuICAgIGZ1bmN0aW9uIGluaXRUZXh0YXJlYShlbGVtZW50LCB2YWx1ZSwgZGVmYXVsdFZhbHVlLCBjaGlsZHJlbikge1xuICAgICAgaWYgKG51bGwgPT0gdmFsdWUpIHtcbiAgICAgICAgaWYgKG51bGwgIT0gY2hpbGRyZW4pIHtcbiAgICAgICAgICBpZiAobnVsbCAhPSBkZWZhdWx0VmFsdWUpXG4gICAgICAgICAgICB0aHJvdyBFcnJvcihcbiAgICAgICAgICAgICAgXCJJZiB5b3Ugc3VwcGx5IGBkZWZhdWx0VmFsdWVgIG9uIGEgPHRleHRhcmVhPiwgZG8gbm90IHBhc3MgY2hpbGRyZW4uXCJcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgaWYgKGlzQXJyYXlJbXBsKGNoaWxkcmVuKSkge1xuICAgICAgICAgICAgaWYgKDEgPCBjaGlsZHJlbi5sZW5ndGgpXG4gICAgICAgICAgICAgIHRocm93IEVycm9yKFwiPHRleHRhcmVhPiBjYW4gb25seSBoYXZlIGF0IG1vc3Qgb25lIGNoaWxkLlwiKTtcbiAgICAgICAgICAgIGNoaWxkcmVuID0gY2hpbGRyZW5bMF07XG4gICAgICAgICAgfVxuICAgICAgICAgIGRlZmF1bHRWYWx1ZSA9IGNoaWxkcmVuO1xuICAgICAgICB9XG4gICAgICAgIG51bGwgPT0gZGVmYXVsdFZhbHVlICYmIChkZWZhdWx0VmFsdWUgPSBcIlwiKTtcbiAgICAgICAgdmFsdWUgPSBkZWZhdWx0VmFsdWU7XG4gICAgICB9XG4gICAgICBkZWZhdWx0VmFsdWUgPSBnZXRUb1N0cmluZ1ZhbHVlKHZhbHVlKTtcbiAgICAgIGVsZW1lbnQuZGVmYXVsdFZhbHVlID0gZGVmYXVsdFZhbHVlO1xuICAgICAgY2hpbGRyZW4gPSBlbGVtZW50LnRleHRDb250ZW50O1xuICAgICAgY2hpbGRyZW4gPT09IGRlZmF1bHRWYWx1ZSAmJlxuICAgICAgICBcIlwiICE9PSBjaGlsZHJlbiAmJlxuICAgICAgICBudWxsICE9PSBjaGlsZHJlbiAmJlxuICAgICAgICAoZWxlbWVudC52YWx1ZSA9IGNoaWxkcmVuKTtcbiAgICB9XG4gICAgZnVuY3Rpb24gZmluZE5vdGFibGVOb2RlKG5vZGUsIGluZGVudCkge1xuICAgICAgcmV0dXJuIHZvaWQgMCA9PT0gbm9kZS5zZXJ2ZXJQcm9wcyAmJlxuICAgICAgICAwID09PSBub2RlLnNlcnZlclRhaWwubGVuZ3RoICYmXG4gICAgICAgIDEgPT09IG5vZGUuY2hpbGRyZW4ubGVuZ3RoICYmXG4gICAgICAgIDMgPCBub2RlLmRpc3RhbmNlRnJvbUxlYWYgJiZcbiAgICAgICAgbm9kZS5kaXN0YW5jZUZyb21MZWFmID4gMTUgLSBpbmRlbnRcbiAgICAgICAgPyBmaW5kTm90YWJsZU5vZGUobm9kZS5jaGlsZHJlblswXSwgaW5kZW50KVxuICAgICAgICA6IG5vZGU7XG4gICAgfVxuICAgIGZ1bmN0aW9uIGluZGVudGF0aW9uKGluZGVudCkge1xuICAgICAgcmV0dXJuIFwiICBcIiArIFwiICBcIi5yZXBlYXQoaW5kZW50KTtcbiAgICB9XG4gICAgZnVuY3Rpb24gYWRkZWQoaW5kZW50KSB7XG4gICAgICByZXR1cm4gXCIrIFwiICsgXCIgIFwiLnJlcGVhdChpbmRlbnQpO1xuICAgIH1cbiAgICBmdW5jdGlvbiByZW1vdmVkKGluZGVudCkge1xuICAgICAgcmV0dXJuIFwiLSBcIiArIFwiICBcIi5yZXBlYXQoaW5kZW50KTtcbiAgICB9XG4gICAgZnVuY3Rpb24gZGVzY3JpYmVGaWJlclR5cGUoZmliZXIpIHtcbiAgICAgIHN3aXRjaCAoZmliZXIudGFnKSB7XG4gICAgICAgIGNhc2UgMjY6XG4gICAgICAgIGNhc2UgMjc6XG4gICAgICAgIGNhc2UgNTpcbiAgICAgICAgICByZXR1cm4gZmliZXIudHlwZTtcbiAgICAgICAgY2FzZSAxNjpcbiAgICAgICAgICByZXR1cm4gXCJMYXp5XCI7XG4gICAgICAgIGNhc2UgMTM6XG4gICAgICAgICAgcmV0dXJuIFwiU3VzcGVuc2VcIjtcbiAgICAgICAgY2FzZSAxOTpcbiAgICAgICAgICByZXR1cm4gXCJTdXNwZW5zZUxpc3RcIjtcbiAgICAgICAgY2FzZSAwOlxuICAgICAgICBjYXNlIDE1OlxuICAgICAgICAgIHJldHVybiAoZmliZXIgPSBmaWJlci50eXBlKSwgZmliZXIuZGlzcGxheU5hbWUgfHwgZmliZXIubmFtZSB8fCBudWxsO1xuICAgICAgICBjYXNlIDExOlxuICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAoZmliZXIgPSBmaWJlci50eXBlLnJlbmRlciksIGZpYmVyLmRpc3BsYXlOYW1lIHx8IGZpYmVyLm5hbWUgfHwgbnVsbFxuICAgICAgICAgICk7XG4gICAgICAgIGNhc2UgMTpcbiAgICAgICAgICByZXR1cm4gKGZpYmVyID0gZmliZXIudHlwZSksIGZpYmVyLmRpc3BsYXlOYW1lIHx8IGZpYmVyLm5hbWUgfHwgbnVsbDtcbiAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgIH1cbiAgICB9XG4gICAgZnVuY3Rpb24gZGVzY3JpYmVUZXh0Tm9kZShjb250ZW50LCBtYXhMZW5ndGgpIHtcbiAgICAgIHJldHVybiBuZWVkc0VzY2FwaW5nLnRlc3QoY29udGVudClcbiAgICAgICAgPyAoKGNvbnRlbnQgPSBKU09OLnN0cmluZ2lmeShjb250ZW50KSksXG4gICAgICAgICAgY29udGVudC5sZW5ndGggPiBtYXhMZW5ndGggLSAyXG4gICAgICAgICAgICA/IDggPiBtYXhMZW5ndGhcbiAgICAgICAgICAgICAgPyAne1wiLi4uXCJ9J1xuICAgICAgICAgICAgICA6IFwie1wiICsgY29udGVudC5zbGljZSgwLCBtYXhMZW5ndGggLSA3KSArICcuLi5cIn0nXG4gICAgICAgICAgICA6IFwie1wiICsgY29udGVudCArIFwifVwiKVxuICAgICAgICA6IGNvbnRlbnQubGVuZ3RoID4gbWF4TGVuZ3RoXG4gICAgICAgICAgPyA1ID4gbWF4TGVuZ3RoXG4gICAgICAgICAgICA/ICd7XCIuLi5cIn0nXG4gICAgICAgICAgICA6IGNvbnRlbnQuc2xpY2UoMCwgbWF4TGVuZ3RoIC0gMykgKyBcIi4uLlwiXG4gICAgICAgICAgOiBjb250ZW50O1xuICAgIH1cbiAgICBmdW5jdGlvbiBkZXNjcmliZVRleHREaWZmKGNsaWVudFRleHQsIHNlcnZlclByb3BzLCBpbmRlbnQpIHtcbiAgICAgIHZhciBtYXhMZW5ndGggPSAxMjAgLSAyICogaW5kZW50O1xuICAgICAgaWYgKG51bGwgPT09IHNlcnZlclByb3BzKVxuICAgICAgICByZXR1cm4gYWRkZWQoaW5kZW50KSArIGRlc2NyaWJlVGV4dE5vZGUoY2xpZW50VGV4dCwgbWF4TGVuZ3RoKSArIFwiXFxuXCI7XG4gICAgICBpZiAoXCJzdHJpbmdcIiA9PT0gdHlwZW9mIHNlcnZlclByb3BzKSB7XG4gICAgICAgIGZvciAoXG4gICAgICAgICAgdmFyIGZpcnN0RGlmZiA9IDA7XG4gICAgICAgICAgZmlyc3REaWZmIDwgc2VydmVyUHJvcHMubGVuZ3RoICYmXG4gICAgICAgICAgZmlyc3REaWZmIDwgY2xpZW50VGV4dC5sZW5ndGggJiZcbiAgICAgICAgICBzZXJ2ZXJQcm9wcy5jaGFyQ29kZUF0KGZpcnN0RGlmZikgPT09XG4gICAgICAgICAgICBjbGllbnRUZXh0LmNoYXJDb2RlQXQoZmlyc3REaWZmKTtcbiAgICAgICAgICBmaXJzdERpZmYrK1xuICAgICAgICApO1xuICAgICAgICBmaXJzdERpZmYgPiBtYXhMZW5ndGggLSA4ICYmXG4gICAgICAgICAgMTAgPCBmaXJzdERpZmYgJiZcbiAgICAgICAgICAoKGNsaWVudFRleHQgPSBcIi4uLlwiICsgY2xpZW50VGV4dC5zbGljZShmaXJzdERpZmYgLSA4KSksXG4gICAgICAgICAgKHNlcnZlclByb3BzID0gXCIuLi5cIiArIHNlcnZlclByb3BzLnNsaWNlKGZpcnN0RGlmZiAtIDgpKSk7XG4gICAgICAgIHJldHVybiAoXG4gICAgICAgICAgYWRkZWQoaW5kZW50KSArXG4gICAgICAgICAgZGVzY3JpYmVUZXh0Tm9kZShjbGllbnRUZXh0LCBtYXhMZW5ndGgpICtcbiAgICAgICAgICBcIlxcblwiICtcbiAgICAgICAgICByZW1vdmVkKGluZGVudCkgK1xuICAgICAgICAgIGRlc2NyaWJlVGV4dE5vZGUoc2VydmVyUHJvcHMsIG1heExlbmd0aCkgK1xuICAgICAgICAgIFwiXFxuXCJcbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiAoXG4gICAgICAgIGluZGVudGF0aW9uKGluZGVudCkgKyBkZXNjcmliZVRleHROb2RlKGNsaWVudFRleHQsIG1heExlbmd0aCkgKyBcIlxcblwiXG4gICAgICApO1xuICAgIH1cbiAgICBmdW5jdGlvbiBvYmplY3ROYW1lKG9iamVjdCkge1xuICAgICAgcmV0dXJuIE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmdcbiAgICAgICAgLmNhbGwob2JqZWN0KVxuICAgICAgICAucmVwbGFjZSgvXlxcW29iamVjdCAoLiopXFxdJC8sIGZ1bmN0aW9uIChtLCBwMCkge1xuICAgICAgICAgIHJldHVybiBwMDtcbiAgICAgICAgfSk7XG4gICAgfVxuICAgIGZ1bmN0aW9uIGRlc2NyaWJlVmFsdWUodmFsdWUsIG1heExlbmd0aCkge1xuICAgICAgc3dpdGNoICh0eXBlb2YgdmFsdWUpIHtcbiAgICAgICAgY2FzZSBcInN0cmluZ1wiOlxuICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAodmFsdWUgPSBKU09OLnN0cmluZ2lmeSh2YWx1ZSkpLFxuICAgICAgICAgICAgdmFsdWUubGVuZ3RoID4gbWF4TGVuZ3RoXG4gICAgICAgICAgICAgID8gNSA+IG1heExlbmd0aFxuICAgICAgICAgICAgICAgID8gJ1wiLi4uXCInXG4gICAgICAgICAgICAgICAgOiB2YWx1ZS5zbGljZSgwLCBtYXhMZW5ndGggLSA0KSArICcuLi5cIidcbiAgICAgICAgICAgICAgOiB2YWx1ZVxuICAgICAgICAgICk7XG4gICAgICAgIGNhc2UgXCJvYmplY3RcIjpcbiAgICAgICAgICBpZiAobnVsbCA9PT0gdmFsdWUpIHJldHVybiBcIm51bGxcIjtcbiAgICAgICAgICBpZiAoaXNBcnJheUltcGwodmFsdWUpKSByZXR1cm4gXCJbLi4uXVwiO1xuICAgICAgICAgIGlmICh2YWx1ZS4kJHR5cGVvZiA9PT0gUkVBQ1RfRUxFTUVOVF9UWVBFKVxuICAgICAgICAgICAgcmV0dXJuIChtYXhMZW5ndGggPSBnZXRDb21wb25lbnROYW1lRnJvbVR5cGUodmFsdWUudHlwZSkpXG4gICAgICAgICAgICAgID8gXCI8XCIgKyBtYXhMZW5ndGggKyBcIj5cIlxuICAgICAgICAgICAgICA6IFwiPC4uLj5cIjtcbiAgICAgICAgICB2YXIgbmFtZSA9IG9iamVjdE5hbWUodmFsdWUpO1xuICAgICAgICAgIGlmIChcIk9iamVjdFwiID09PSBuYW1lKSB7XG4gICAgICAgICAgICBuYW1lID0gXCJcIjtcbiAgICAgICAgICAgIG1heExlbmd0aCAtPSAyO1xuICAgICAgICAgICAgZm9yICh2YXIgcHJvcE5hbWUgaW4gdmFsdWUpXG4gICAgICAgICAgICAgIGlmICh2YWx1ZS5oYXNPd25Qcm9wZXJ0eShwcm9wTmFtZSkpIHtcbiAgICAgICAgICAgICAgICB2YXIganNvblByb3BOYW1lID0gSlNPTi5zdHJpbmdpZnkocHJvcE5hbWUpO1xuICAgICAgICAgICAgICAgIGpzb25Qcm9wTmFtZSAhPT0gJ1wiJyArIHByb3BOYW1lICsgJ1wiJyAmJlxuICAgICAgICAgICAgICAgICAgKHByb3BOYW1lID0ganNvblByb3BOYW1lKTtcbiAgICAgICAgICAgICAgICBtYXhMZW5ndGggLT0gcHJvcE5hbWUubGVuZ3RoIC0gMjtcbiAgICAgICAgICAgICAgICBqc29uUHJvcE5hbWUgPSBkZXNjcmliZVZhbHVlKFxuICAgICAgICAgICAgICAgICAgdmFsdWVbcHJvcE5hbWVdLFxuICAgICAgICAgICAgICAgICAgMTUgPiBtYXhMZW5ndGggPyBtYXhMZW5ndGggOiAxNVxuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgbWF4TGVuZ3RoIC09IGpzb25Qcm9wTmFtZS5sZW5ndGg7XG4gICAgICAgICAgICAgICAgaWYgKDAgPiBtYXhMZW5ndGgpIHtcbiAgICAgICAgICAgICAgICAgIG5hbWUgKz0gXCJcIiA9PT0gbmFtZSA/IFwiLi4uXCIgOiBcIiwgLi4uXCI7XG4gICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgbmFtZSArPVxuICAgICAgICAgICAgICAgICAgKFwiXCIgPT09IG5hbWUgPyBcIlwiIDogXCIsXCIpICsgcHJvcE5hbWUgKyBcIjpcIiArIGpzb25Qcm9wTmFtZTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIFwie1wiICsgbmFtZSArIFwifVwiO1xuICAgICAgICAgIH1cbiAgICAgICAgICByZXR1cm4gbmFtZTtcbiAgICAgICAgY2FzZSBcImZ1bmN0aW9uXCI6XG4gICAgICAgICAgcmV0dXJuIChtYXhMZW5ndGggPSB2YWx1ZS5kaXNwbGF5TmFtZSB8fCB2YWx1ZS5uYW1lKVxuICAgICAgICAgICAgPyBcImZ1bmN0aW9uIFwiICsgbWF4TGVuZ3RoXG4gICAgICAgICAgICA6IFwiZnVuY3Rpb25cIjtcbiAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICByZXR1cm4gU3RyaW5nKHZhbHVlKTtcbiAgICAgIH1cbiAgICB9XG4gICAgZnVuY3Rpb24gZGVzY3JpYmVQcm9wVmFsdWUodmFsdWUsIG1heExlbmd0aCkge1xuICAgICAgcmV0dXJuIFwic3RyaW5nXCIgIT09IHR5cGVvZiB2YWx1ZSB8fCBuZWVkc0VzY2FwaW5nLnRlc3QodmFsdWUpXG4gICAgICAgID8gXCJ7XCIgKyBkZXNjcmliZVZhbHVlKHZhbHVlLCBtYXhMZW5ndGggLSAyKSArIFwifVwiXG4gICAgICAgIDogdmFsdWUubGVuZ3RoID4gbWF4TGVuZ3RoIC0gMlxuICAgICAgICAgID8gNSA+IG1heExlbmd0aFxuICAgICAgICAgICAgPyAnXCIuLi5cIidcbiAgICAgICAgICAgIDogJ1wiJyArIHZhbHVlLnNsaWNlKDAsIG1heExlbmd0aCAtIDUpICsgJy4uLlwiJ1xuICAgICAgICAgIDogJ1wiJyArIHZhbHVlICsgJ1wiJztcbiAgICB9XG4gICAgZnVuY3Rpb24gZGVzY3JpYmVFeHBhbmRlZEVsZW1lbnQodHlwZSwgcHJvcHMsIHJvd1ByZWZpeCkge1xuICAgICAgdmFyIHJlbWFpbmluZ1Jvd0xlbmd0aCA9IDEyMCAtIHJvd1ByZWZpeC5sZW5ndGggLSB0eXBlLmxlbmd0aCxcbiAgICAgICAgcHJvcGVydGllcyA9IFtdLFxuICAgICAgICBwcm9wTmFtZTtcbiAgICAgIGZvciAocHJvcE5hbWUgaW4gcHJvcHMpXG4gICAgICAgIGlmIChwcm9wcy5oYXNPd25Qcm9wZXJ0eShwcm9wTmFtZSkgJiYgXCJjaGlsZHJlblwiICE9PSBwcm9wTmFtZSkge1xuICAgICAgICAgIHZhciBwcm9wVmFsdWUgPSBkZXNjcmliZVByb3BWYWx1ZShcbiAgICAgICAgICAgIHByb3BzW3Byb3BOYW1lXSxcbiAgICAgICAgICAgIDEyMCAtIHJvd1ByZWZpeC5sZW5ndGggLSBwcm9wTmFtZS5sZW5ndGggLSAxXG4gICAgICAgICAgKTtcbiAgICAgICAgICByZW1haW5pbmdSb3dMZW5ndGggLT0gcHJvcE5hbWUubGVuZ3RoICsgcHJvcFZhbHVlLmxlbmd0aCArIDI7XG4gICAgICAgICAgcHJvcGVydGllcy5wdXNoKHByb3BOYW1lICsgXCI9XCIgKyBwcm9wVmFsdWUpO1xuICAgICAgICB9XG4gICAgICByZXR1cm4gMCA9PT0gcHJvcGVydGllcy5sZW5ndGhcbiAgICAgICAgPyByb3dQcmVmaXggKyBcIjxcIiArIHR5cGUgKyBcIj5cXG5cIlxuICAgICAgICA6IDAgPCByZW1haW5pbmdSb3dMZW5ndGhcbiAgICAgICAgICA/IHJvd1ByZWZpeCArIFwiPFwiICsgdHlwZSArIFwiIFwiICsgcHJvcGVydGllcy5qb2luKFwiIFwiKSArIFwiPlxcblwiXG4gICAgICAgICAgOiByb3dQcmVmaXggK1xuICAgICAgICAgICAgXCI8XCIgK1xuICAgICAgICAgICAgdHlwZSArXG4gICAgICAgICAgICBcIlxcblwiICtcbiAgICAgICAgICAgIHJvd1ByZWZpeCArXG4gICAgICAgICAgICBcIiAgXCIgK1xuICAgICAgICAgICAgcHJvcGVydGllcy5qb2luKFwiXFxuXCIgKyByb3dQcmVmaXggKyBcIiAgXCIpICtcbiAgICAgICAgICAgIFwiXFxuXCIgK1xuICAgICAgICAgICAgcm93UHJlZml4ICtcbiAgICAgICAgICAgIFwiPlxcblwiO1xuICAgIH1cbiAgICBmdW5jdGlvbiBkZXNjcmliZVByb3BlcnRpZXNEaWZmKGNsaWVudE9iamVjdCwgc2VydmVyT2JqZWN0LCBpbmRlbnQpIHtcbiAgICAgIHZhciBwcm9wZXJ0aWVzID0gXCJcIixcbiAgICAgICAgcmVtYWluaW5nU2VydmVyUHJvcGVydGllcyA9IGFzc2lnbih7fSwgc2VydmVyT2JqZWN0KSxcbiAgICAgICAgcHJvcE5hbWU7XG4gICAgICBmb3IgKHByb3BOYW1lIGluIGNsaWVudE9iamVjdClcbiAgICAgICAgaWYgKGNsaWVudE9iamVjdC5oYXNPd25Qcm9wZXJ0eShwcm9wTmFtZSkpIHtcbiAgICAgICAgICBkZWxldGUgcmVtYWluaW5nU2VydmVyUHJvcGVydGllc1twcm9wTmFtZV07XG4gICAgICAgICAgdmFyIG1heExlbmd0aCA9IDEyMCAtIDIgKiBpbmRlbnQgLSBwcm9wTmFtZS5sZW5ndGggLSAyLFxuICAgICAgICAgICAgY2xpZW50UHJvcFZhbHVlID0gZGVzY3JpYmVWYWx1ZShjbGllbnRPYmplY3RbcHJvcE5hbWVdLCBtYXhMZW5ndGgpO1xuICAgICAgICAgIHNlcnZlck9iamVjdC5oYXNPd25Qcm9wZXJ0eShwcm9wTmFtZSlcbiAgICAgICAgICAgID8gKChtYXhMZW5ndGggPSBkZXNjcmliZVZhbHVlKHNlcnZlck9iamVjdFtwcm9wTmFtZV0sIG1heExlbmd0aCkpLFxuICAgICAgICAgICAgICAocHJvcGVydGllcyArPVxuICAgICAgICAgICAgICAgIGFkZGVkKGluZGVudCkgKyBwcm9wTmFtZSArIFwiOiBcIiArIGNsaWVudFByb3BWYWx1ZSArIFwiXFxuXCIpLFxuICAgICAgICAgICAgICAocHJvcGVydGllcyArPVxuICAgICAgICAgICAgICAgIHJlbW92ZWQoaW5kZW50KSArIHByb3BOYW1lICsgXCI6IFwiICsgbWF4TGVuZ3RoICsgXCJcXG5cIikpXG4gICAgICAgICAgICA6IChwcm9wZXJ0aWVzICs9XG4gICAgICAgICAgICAgICAgYWRkZWQoaW5kZW50KSArIHByb3BOYW1lICsgXCI6IFwiICsgY2xpZW50UHJvcFZhbHVlICsgXCJcXG5cIik7XG4gICAgICAgIH1cbiAgICAgIGZvciAodmFyIF9wcm9wTmFtZSBpbiByZW1haW5pbmdTZXJ2ZXJQcm9wZXJ0aWVzKVxuICAgICAgICByZW1haW5pbmdTZXJ2ZXJQcm9wZXJ0aWVzLmhhc093blByb3BlcnR5KF9wcm9wTmFtZSkgJiZcbiAgICAgICAgICAoKGNsaWVudE9iamVjdCA9IGRlc2NyaWJlVmFsdWUoXG4gICAgICAgICAgICByZW1haW5pbmdTZXJ2ZXJQcm9wZXJ0aWVzW19wcm9wTmFtZV0sXG4gICAgICAgICAgICAxMjAgLSAyICogaW5kZW50IC0gX3Byb3BOYW1lLmxlbmd0aCAtIDJcbiAgICAgICAgICApKSxcbiAgICAgICAgICAocHJvcGVydGllcyArPVxuICAgICAgICAgICAgcmVtb3ZlZChpbmRlbnQpICsgX3Byb3BOYW1lICsgXCI6IFwiICsgY2xpZW50T2JqZWN0ICsgXCJcXG5cIikpO1xuICAgICAgcmV0dXJuIHByb3BlcnRpZXM7XG4gICAgfVxuICAgIGZ1bmN0aW9uIGRlc2NyaWJlRWxlbWVudERpZmYodHlwZSwgY2xpZW50UHJvcHMsIHNlcnZlclByb3BzLCBpbmRlbnQpIHtcbiAgICAgIHZhciBjb250ZW50ID0gXCJcIixcbiAgICAgICAgc2VydmVyUHJvcE5hbWVzID0gbmV3IE1hcCgpO1xuICAgICAgZm9yIChwcm9wTmFtZSRqc2NvbXAkMCBpbiBzZXJ2ZXJQcm9wcylcbiAgICAgICAgc2VydmVyUHJvcHMuaGFzT3duUHJvcGVydHkocHJvcE5hbWUkanNjb21wJDApICYmXG4gICAgICAgICAgc2VydmVyUHJvcE5hbWVzLnNldChcbiAgICAgICAgICAgIHByb3BOYW1lJGpzY29tcCQwLnRvTG93ZXJDYXNlKCksXG4gICAgICAgICAgICBwcm9wTmFtZSRqc2NvbXAkMFxuICAgICAgICAgICk7XG4gICAgICBpZiAoMSA9PT0gc2VydmVyUHJvcE5hbWVzLnNpemUgJiYgc2VydmVyUHJvcE5hbWVzLmhhcyhcImNoaWxkcmVuXCIpKVxuICAgICAgICBjb250ZW50ICs9IGRlc2NyaWJlRXhwYW5kZWRFbGVtZW50KFxuICAgICAgICAgIHR5cGUsXG4gICAgICAgICAgY2xpZW50UHJvcHMsXG4gICAgICAgICAgaW5kZW50YXRpb24oaW5kZW50KVxuICAgICAgICApO1xuICAgICAgZWxzZSB7XG4gICAgICAgIGZvciAodmFyIF9wcm9wTmFtZTIgaW4gY2xpZW50UHJvcHMpXG4gICAgICAgICAgaWYgKFxuICAgICAgICAgICAgY2xpZW50UHJvcHMuaGFzT3duUHJvcGVydHkoX3Byb3BOYW1lMikgJiZcbiAgICAgICAgICAgIFwiY2hpbGRyZW5cIiAhPT0gX3Byb3BOYW1lMlxuICAgICAgICAgICkge1xuICAgICAgICAgICAgdmFyIG1heExlbmd0aCRqc2NvbXAkMCA9XG4gICAgICAgICAgICAgICAgMTIwIC0gMiAqIChpbmRlbnQgKyAxKSAtIF9wcm9wTmFtZTIubGVuZ3RoIC0gMSxcbiAgICAgICAgICAgICAgc2VydmVyUHJvcE5hbWUgPSBzZXJ2ZXJQcm9wTmFtZXMuZ2V0KF9wcm9wTmFtZTIudG9Mb3dlckNhc2UoKSk7XG4gICAgICAgICAgICBpZiAodm9pZCAwICE9PSBzZXJ2ZXJQcm9wTmFtZSkge1xuICAgICAgICAgICAgICBzZXJ2ZXJQcm9wTmFtZXMuZGVsZXRlKF9wcm9wTmFtZTIudG9Mb3dlckNhc2UoKSk7XG4gICAgICAgICAgICAgIHZhciBwcm9wTmFtZSRqc2NvbXAkMCA9IGNsaWVudFByb3BzW19wcm9wTmFtZTJdO1xuICAgICAgICAgICAgICBzZXJ2ZXJQcm9wTmFtZSA9IHNlcnZlclByb3BzW3NlcnZlclByb3BOYW1lXTtcbiAgICAgICAgICAgICAgdmFyIGNsaWVudFByb3BWYWx1ZSA9IGRlc2NyaWJlUHJvcFZhbHVlKFxuICAgICAgICAgICAgICAgIHByb3BOYW1lJGpzY29tcCQwLFxuICAgICAgICAgICAgICAgIG1heExlbmd0aCRqc2NvbXAkMFxuICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICBtYXhMZW5ndGgkanNjb21wJDAgPSBkZXNjcmliZVByb3BWYWx1ZShcbiAgICAgICAgICAgICAgICBzZXJ2ZXJQcm9wTmFtZSxcbiAgICAgICAgICAgICAgICBtYXhMZW5ndGgkanNjb21wJDBcbiAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgXCJvYmplY3RcIiA9PT0gdHlwZW9mIHByb3BOYW1lJGpzY29tcCQwICYmXG4gICAgICAgICAgICAgIG51bGwgIT09IHByb3BOYW1lJGpzY29tcCQwICYmXG4gICAgICAgICAgICAgIFwib2JqZWN0XCIgPT09IHR5cGVvZiBzZXJ2ZXJQcm9wTmFtZSAmJlxuICAgICAgICAgICAgICBudWxsICE9PSBzZXJ2ZXJQcm9wTmFtZSAmJlxuICAgICAgICAgICAgICBcIk9iamVjdFwiID09PSBvYmplY3ROYW1lKHByb3BOYW1lJGpzY29tcCQwKSAmJlxuICAgICAgICAgICAgICBcIk9iamVjdFwiID09PSBvYmplY3ROYW1lKHNlcnZlclByb3BOYW1lKSAmJlxuICAgICAgICAgICAgICAoMiA8IE9iamVjdC5rZXlzKHByb3BOYW1lJGpzY29tcCQwKS5sZW5ndGggfHxcbiAgICAgICAgICAgICAgICAyIDwgT2JqZWN0LmtleXMoc2VydmVyUHJvcE5hbWUpLmxlbmd0aCB8fFxuICAgICAgICAgICAgICAgIC0xIDwgY2xpZW50UHJvcFZhbHVlLmluZGV4T2YoXCIuLi5cIikgfHxcbiAgICAgICAgICAgICAgICAtMSA8IG1heExlbmd0aCRqc2NvbXAkMC5pbmRleE9mKFwiLi4uXCIpKVxuICAgICAgICAgICAgICAgID8gKGNvbnRlbnQgKz1cbiAgICAgICAgICAgICAgICAgICAgaW5kZW50YXRpb24oaW5kZW50ICsgMSkgK1xuICAgICAgICAgICAgICAgICAgICBfcHJvcE5hbWUyICtcbiAgICAgICAgICAgICAgICAgICAgXCI9e3tcXG5cIiArXG4gICAgICAgICAgICAgICAgICAgIGRlc2NyaWJlUHJvcGVydGllc0RpZmYoXG4gICAgICAgICAgICAgICAgICAgICAgcHJvcE5hbWUkanNjb21wJDAsXG4gICAgICAgICAgICAgICAgICAgICAgc2VydmVyUHJvcE5hbWUsXG4gICAgICAgICAgICAgICAgICAgICAgaW5kZW50ICsgMlxuICAgICAgICAgICAgICAgICAgICApICtcbiAgICAgICAgICAgICAgICAgICAgaW5kZW50YXRpb24oaW5kZW50ICsgMSkgK1xuICAgICAgICAgICAgICAgICAgICBcIn19XFxuXCIpXG4gICAgICAgICAgICAgICAgOiAoKGNvbnRlbnQgKz1cbiAgICAgICAgICAgICAgICAgICAgYWRkZWQoaW5kZW50ICsgMSkgK1xuICAgICAgICAgICAgICAgICAgICBfcHJvcE5hbWUyICtcbiAgICAgICAgICAgICAgICAgICAgXCI9XCIgK1xuICAgICAgICAgICAgICAgICAgICBjbGllbnRQcm9wVmFsdWUgK1xuICAgICAgICAgICAgICAgICAgICBcIlxcblwiKSxcbiAgICAgICAgICAgICAgICAgIChjb250ZW50ICs9XG4gICAgICAgICAgICAgICAgICAgIHJlbW92ZWQoaW5kZW50ICsgMSkgK1xuICAgICAgICAgICAgICAgICAgICBfcHJvcE5hbWUyICtcbiAgICAgICAgICAgICAgICAgICAgXCI9XCIgK1xuICAgICAgICAgICAgICAgICAgICBtYXhMZW5ndGgkanNjb21wJDAgK1xuICAgICAgICAgICAgICAgICAgICBcIlxcblwiKSk7XG4gICAgICAgICAgICB9IGVsc2VcbiAgICAgICAgICAgICAgY29udGVudCArPVxuICAgICAgICAgICAgICAgIGluZGVudGF0aW9uKGluZGVudCArIDEpICtcbiAgICAgICAgICAgICAgICBfcHJvcE5hbWUyICtcbiAgICAgICAgICAgICAgICBcIj1cIiArXG4gICAgICAgICAgICAgICAgZGVzY3JpYmVQcm9wVmFsdWUoY2xpZW50UHJvcHNbX3Byb3BOYW1lMl0sIG1heExlbmd0aCRqc2NvbXAkMCkgK1xuICAgICAgICAgICAgICAgIFwiXFxuXCI7XG4gICAgICAgICAgfVxuICAgICAgICBzZXJ2ZXJQcm9wTmFtZXMuZm9yRWFjaChmdW5jdGlvbiAocHJvcE5hbWUpIHtcbiAgICAgICAgICBpZiAoXCJjaGlsZHJlblwiICE9PSBwcm9wTmFtZSkge1xuICAgICAgICAgICAgdmFyIG1heExlbmd0aCA9IDEyMCAtIDIgKiAoaW5kZW50ICsgMSkgLSBwcm9wTmFtZS5sZW5ndGggLSAxO1xuICAgICAgICAgICAgY29udGVudCArPVxuICAgICAgICAgICAgICByZW1vdmVkKGluZGVudCArIDEpICtcbiAgICAgICAgICAgICAgcHJvcE5hbWUgK1xuICAgICAgICAgICAgICBcIj1cIiArXG4gICAgICAgICAgICAgIGRlc2NyaWJlUHJvcFZhbHVlKHNlcnZlclByb3BzW3Byb3BOYW1lXSwgbWF4TGVuZ3RoKSArXG4gICAgICAgICAgICAgIFwiXFxuXCI7XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgICAgY29udGVudCA9XG4gICAgICAgICAgXCJcIiA9PT0gY29udGVudFxuICAgICAgICAgICAgPyBpbmRlbnRhdGlvbihpbmRlbnQpICsgXCI8XCIgKyB0eXBlICsgXCI+XFxuXCJcbiAgICAgICAgICAgIDogaW5kZW50YXRpb24oaW5kZW50KSArXG4gICAgICAgICAgICAgIFwiPFwiICtcbiAgICAgICAgICAgICAgdHlwZSArXG4gICAgICAgICAgICAgIFwiXFxuXCIgK1xuICAgICAgICAgICAgICBjb250ZW50ICtcbiAgICAgICAgICAgICAgaW5kZW50YXRpb24oaW5kZW50KSArXG4gICAgICAgICAgICAgIFwiPlxcblwiO1xuICAgICAgfVxuICAgICAgdHlwZSA9IHNlcnZlclByb3BzLmNoaWxkcmVuO1xuICAgICAgY2xpZW50UHJvcHMgPSBjbGllbnRQcm9wcy5jaGlsZHJlbjtcbiAgICAgIGlmIChcbiAgICAgICAgXCJzdHJpbmdcIiA9PT0gdHlwZW9mIHR5cGUgfHxcbiAgICAgICAgXCJudW1iZXJcIiA9PT0gdHlwZW9mIHR5cGUgfHxcbiAgICAgICAgXCJiaWdpbnRcIiA9PT0gdHlwZW9mIHR5cGVcbiAgICAgICkge1xuICAgICAgICBzZXJ2ZXJQcm9wTmFtZXMgPSBcIlwiO1xuICAgICAgICBpZiAoXG4gICAgICAgICAgXCJzdHJpbmdcIiA9PT0gdHlwZW9mIGNsaWVudFByb3BzIHx8XG4gICAgICAgICAgXCJudW1iZXJcIiA9PT0gdHlwZW9mIGNsaWVudFByb3BzIHx8XG4gICAgICAgICAgXCJiaWdpbnRcIiA9PT0gdHlwZW9mIGNsaWVudFByb3BzXG4gICAgICAgIClcbiAgICAgICAgICBzZXJ2ZXJQcm9wTmFtZXMgPSBcIlwiICsgY2xpZW50UHJvcHM7XG4gICAgICAgIGNvbnRlbnQgKz0gZGVzY3JpYmVUZXh0RGlmZihzZXJ2ZXJQcm9wTmFtZXMsIFwiXCIgKyB0eXBlLCBpbmRlbnQgKyAxKTtcbiAgICAgIH0gZWxzZSBpZiAoXG4gICAgICAgIFwic3RyaW5nXCIgPT09IHR5cGVvZiBjbGllbnRQcm9wcyB8fFxuICAgICAgICBcIm51bWJlclwiID09PSB0eXBlb2YgY2xpZW50UHJvcHMgfHxcbiAgICAgICAgXCJiaWdpbnRcIiA9PT0gdHlwZW9mIGNsaWVudFByb3BzXG4gICAgICApXG4gICAgICAgIGNvbnRlbnQgPVxuICAgICAgICAgIG51bGwgPT0gdHlwZVxuICAgICAgICAgICAgPyBjb250ZW50ICsgZGVzY3JpYmVUZXh0RGlmZihcIlwiICsgY2xpZW50UHJvcHMsIG51bGwsIGluZGVudCArIDEpXG4gICAgICAgICAgICA6IGNvbnRlbnQgKyBkZXNjcmliZVRleHREaWZmKFwiXCIgKyBjbGllbnRQcm9wcywgdm9pZCAwLCBpbmRlbnQgKyAxKTtcbiAgICAgIHJldHVybiBjb250ZW50O1xuICAgIH1cbiAgICBmdW5jdGlvbiBkZXNjcmliZVNpYmxpbmdGaWJlcihmaWJlciwgaW5kZW50KSB7XG4gICAgICB2YXIgdHlwZSA9IGRlc2NyaWJlRmliZXJUeXBlKGZpYmVyKTtcbiAgICAgIGlmIChudWxsID09PSB0eXBlKSB7XG4gICAgICAgIHR5cGUgPSBcIlwiO1xuICAgICAgICBmb3IgKGZpYmVyID0gZmliZXIuY2hpbGQ7IGZpYmVyOyApXG4gICAgICAgICAgKHR5cGUgKz0gZGVzY3JpYmVTaWJsaW5nRmliZXIoZmliZXIsIGluZGVudCkpLFxuICAgICAgICAgICAgKGZpYmVyID0gZmliZXIuc2libGluZyk7XG4gICAgICAgIHJldHVybiB0eXBlO1xuICAgICAgfVxuICAgICAgcmV0dXJuIGluZGVudGF0aW9uKGluZGVudCkgKyBcIjxcIiArIHR5cGUgKyBcIj5cXG5cIjtcbiAgICB9XG4gICAgZnVuY3Rpb24gZGVzY3JpYmVOb2RlKG5vZGUsIGluZGVudCkge1xuICAgICAgdmFyIHNraXBUb05vZGUgPSBmaW5kTm90YWJsZU5vZGUobm9kZSwgaW5kZW50KTtcbiAgICAgIGlmIChcbiAgICAgICAgc2tpcFRvTm9kZSAhPT0gbm9kZSAmJlxuICAgICAgICAoMSAhPT0gbm9kZS5jaGlsZHJlbi5sZW5ndGggfHwgbm9kZS5jaGlsZHJlblswXSAhPT0gc2tpcFRvTm9kZSlcbiAgICAgIClcbiAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICBpbmRlbnRhdGlvbihpbmRlbnQpICsgXCIuLi5cXG5cIiArIGRlc2NyaWJlTm9kZShza2lwVG9Ob2RlLCBpbmRlbnQgKyAxKVxuICAgICAgICApO1xuICAgICAgc2tpcFRvTm9kZSA9IFwiXCI7XG4gICAgICB2YXIgZGVidWdJbmZvID0gbm9kZS5maWJlci5fZGVidWdJbmZvO1xuICAgICAgaWYgKGRlYnVnSW5mbylcbiAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBkZWJ1Z0luZm8ubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICB2YXIgc2VydmVyQ29tcG9uZW50TmFtZSA9IGRlYnVnSW5mb1tpXS5uYW1lO1xuICAgICAgICAgIFwic3RyaW5nXCIgPT09IHR5cGVvZiBzZXJ2ZXJDb21wb25lbnROYW1lICYmXG4gICAgICAgICAgICAoKHNraXBUb05vZGUgKz1cbiAgICAgICAgICAgICAgaW5kZW50YXRpb24oaW5kZW50KSArIFwiPFwiICsgc2VydmVyQ29tcG9uZW50TmFtZSArIFwiPlxcblwiKSxcbiAgICAgICAgICAgIGluZGVudCsrKTtcbiAgICAgICAgfVxuICAgICAgZGVidWdJbmZvID0gXCJcIjtcbiAgICAgIGkgPSBub2RlLmZpYmVyLnBlbmRpbmdQcm9wcztcbiAgICAgIGlmICg2ID09PSBub2RlLmZpYmVyLnRhZylcbiAgICAgICAgKGRlYnVnSW5mbyA9IGRlc2NyaWJlVGV4dERpZmYoaSwgbm9kZS5zZXJ2ZXJQcm9wcywgaW5kZW50KSksIGluZGVudCsrO1xuICAgICAgZWxzZSBpZiAoXG4gICAgICAgICgoc2VydmVyQ29tcG9uZW50TmFtZSA9IGRlc2NyaWJlRmliZXJUeXBlKG5vZGUuZmliZXIpKSxcbiAgICAgICAgbnVsbCAhPT0gc2VydmVyQ29tcG9uZW50TmFtZSlcbiAgICAgIClcbiAgICAgICAgaWYgKHZvaWQgMCA9PT0gbm9kZS5zZXJ2ZXJQcm9wcykge1xuICAgICAgICAgIGRlYnVnSW5mbyA9IGluZGVudDtcbiAgICAgICAgICB2YXIgbWF4TGVuZ3RoID0gMTIwIC0gMiAqIGRlYnVnSW5mbyAtIHNlcnZlckNvbXBvbmVudE5hbWUubGVuZ3RoIC0gMixcbiAgICAgICAgICAgIGNvbnRlbnQgPSBcIlwiO1xuICAgICAgICAgIGZvciAocHJvcE5hbWUgaW4gaSlcbiAgICAgICAgICAgIGlmIChpLmhhc093blByb3BlcnR5KHByb3BOYW1lKSAmJiBcImNoaWxkcmVuXCIgIT09IHByb3BOYW1lKSB7XG4gICAgICAgICAgICAgIHZhciBwcm9wVmFsdWUgPSBkZXNjcmliZVByb3BWYWx1ZShpW3Byb3BOYW1lXSwgMTUpO1xuICAgICAgICAgICAgICBtYXhMZW5ndGggLT0gcHJvcE5hbWUubGVuZ3RoICsgcHJvcFZhbHVlLmxlbmd0aCArIDI7XG4gICAgICAgICAgICAgIGlmICgwID4gbWF4TGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgY29udGVudCArPSBcIiAuLi5cIjtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICBjb250ZW50ICs9IFwiIFwiICsgcHJvcE5hbWUgKyBcIj1cIiArIHByb3BWYWx1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICBkZWJ1Z0luZm8gPVxuICAgICAgICAgICAgaW5kZW50YXRpb24oZGVidWdJbmZvKSArXG4gICAgICAgICAgICBcIjxcIiArXG4gICAgICAgICAgICBzZXJ2ZXJDb21wb25lbnROYW1lICtcbiAgICAgICAgICAgIGNvbnRlbnQgK1xuICAgICAgICAgICAgXCI+XFxuXCI7XG4gICAgICAgICAgaW5kZW50Kys7XG4gICAgICAgIH0gZWxzZVxuICAgICAgICAgIG51bGwgPT09IG5vZGUuc2VydmVyUHJvcHNcbiAgICAgICAgICAgID8gKChkZWJ1Z0luZm8gPSBkZXNjcmliZUV4cGFuZGVkRWxlbWVudChcbiAgICAgICAgICAgICAgICBzZXJ2ZXJDb21wb25lbnROYW1lLFxuICAgICAgICAgICAgICAgIGksXG4gICAgICAgICAgICAgICAgYWRkZWQoaW5kZW50KVxuICAgICAgICAgICAgICApKSxcbiAgICAgICAgICAgICAgaW5kZW50KyspXG4gICAgICAgICAgICA6IFwic3RyaW5nXCIgPT09IHR5cGVvZiBub2RlLnNlcnZlclByb3BzXG4gICAgICAgICAgICAgID8gY29uc29sZS5lcnJvcihcbiAgICAgICAgICAgICAgICAgIFwiU2hvdWxkIG5vdCBoYXZlIG1hdGNoZWQgYSBub24gSG9zdFRleHQgZmliZXIgdG8gYSBUZXh0IG5vZGUuIFRoaXMgaXMgYSBidWcgaW4gUmVhY3QuXCJcbiAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgIDogKChkZWJ1Z0luZm8gPSBkZXNjcmliZUVsZW1lbnREaWZmKFxuICAgICAgICAgICAgICAgICAgc2VydmVyQ29tcG9uZW50TmFtZSxcbiAgICAgICAgICAgICAgICAgIGksXG4gICAgICAgICAgICAgICAgICBub2RlLnNlcnZlclByb3BzLFxuICAgICAgICAgICAgICAgICAgaW5kZW50XG4gICAgICAgICAgICAgICAgKSksXG4gICAgICAgICAgICAgICAgaW5kZW50KyspO1xuICAgICAgdmFyIHByb3BOYW1lID0gXCJcIjtcbiAgICAgIGkgPSBub2RlLmZpYmVyLmNoaWxkO1xuICAgICAgZm9yIChcbiAgICAgICAgc2VydmVyQ29tcG9uZW50TmFtZSA9IDA7XG4gICAgICAgIGkgJiYgc2VydmVyQ29tcG9uZW50TmFtZSA8IG5vZGUuY2hpbGRyZW4ubGVuZ3RoO1xuXG4gICAgICApXG4gICAgICAgIChtYXhMZW5ndGggPSBub2RlLmNoaWxkcmVuW3NlcnZlckNvbXBvbmVudE5hbWVdKSxcbiAgICAgICAgICBtYXhMZW5ndGguZmliZXIgPT09IGlcbiAgICAgICAgICAgID8gKChwcm9wTmFtZSArPSBkZXNjcmliZU5vZGUobWF4TGVuZ3RoLCBpbmRlbnQpKSxcbiAgICAgICAgICAgICAgc2VydmVyQ29tcG9uZW50TmFtZSsrKVxuICAgICAgICAgICAgOiAocHJvcE5hbWUgKz0gZGVzY3JpYmVTaWJsaW5nRmliZXIoaSwgaW5kZW50KSksXG4gICAgICAgICAgKGkgPSBpLnNpYmxpbmcpO1xuICAgICAgaSAmJlxuICAgICAgICAwIDwgbm9kZS5jaGlsZHJlbi5sZW5ndGggJiZcbiAgICAgICAgKHByb3BOYW1lICs9IGluZGVudGF0aW9uKGluZGVudCkgKyBcIi4uLlxcblwiKTtcbiAgICAgIGkgPSBub2RlLnNlcnZlclRhaWw7XG4gICAgICBudWxsID09PSBub2RlLnNlcnZlclByb3BzICYmIGluZGVudC0tO1xuICAgICAgZm9yIChub2RlID0gMDsgbm9kZSA8IGkubGVuZ3RoOyBub2RlKyspXG4gICAgICAgIChzZXJ2ZXJDb21wb25lbnROYW1lID0gaVtub2RlXSksXG4gICAgICAgICAgKHByb3BOYW1lID1cbiAgICAgICAgICAgIFwic3RyaW5nXCIgPT09IHR5cGVvZiBzZXJ2ZXJDb21wb25lbnROYW1lXG4gICAgICAgICAgICAgID8gcHJvcE5hbWUgK1xuICAgICAgICAgICAgICAgIChyZW1vdmVkKGluZGVudCkgK1xuICAgICAgICAgICAgICAgICAgZGVzY3JpYmVUZXh0Tm9kZShzZXJ2ZXJDb21wb25lbnROYW1lLCAxMjAgLSAyICogaW5kZW50KSArXG4gICAgICAgICAgICAgICAgICBcIlxcblwiKVxuICAgICAgICAgICAgICA6IHByb3BOYW1lICtcbiAgICAgICAgICAgICAgICBkZXNjcmliZUV4cGFuZGVkRWxlbWVudChcbiAgICAgICAgICAgICAgICAgIHNlcnZlckNvbXBvbmVudE5hbWUudHlwZSxcbiAgICAgICAgICAgICAgICAgIHNlcnZlckNvbXBvbmVudE5hbWUucHJvcHMsXG4gICAgICAgICAgICAgICAgICByZW1vdmVkKGluZGVudClcbiAgICAgICAgICAgICAgICApKTtcbiAgICAgIHJldHVybiBza2lwVG9Ob2RlICsgZGVidWdJbmZvICsgcHJvcE5hbWU7XG4gICAgfVxuICAgIGZ1bmN0aW9uIGRlc2NyaWJlRGlmZihyb290Tm9kZSkge1xuICAgICAgdHJ5IHtcbiAgICAgICAgcmV0dXJuIFwiXFxuXFxuXCIgKyBkZXNjcmliZU5vZGUocm9vdE5vZGUsIDApO1xuICAgICAgfSBjYXRjaCAoeCkge1xuICAgICAgICByZXR1cm4gXCJcIjtcbiAgICAgIH1cbiAgICB9XG4gICAgZnVuY3Rpb24gZGVzY3JpYmVBbmNlc3RvcnMoYW5jZXN0b3IsIGNoaWxkLCBwcm9wcykge1xuICAgICAgZm9yICh2YXIgZmliZXIgPSBjaGlsZCwgbm9kZSA9IG51bGwsIGRpc3RhbmNlRnJvbUxlYWYgPSAwOyBmaWJlcjsgKVxuICAgICAgICBmaWJlciA9PT0gYW5jZXN0b3IgJiYgKGRpc3RhbmNlRnJvbUxlYWYgPSAwKSxcbiAgICAgICAgICAobm9kZSA9IHtcbiAgICAgICAgICAgIGZpYmVyOiBmaWJlcixcbiAgICAgICAgICAgIGNoaWxkcmVuOiBudWxsICE9PSBub2RlID8gW25vZGVdIDogW10sXG4gICAgICAgICAgICBzZXJ2ZXJQcm9wczpcbiAgICAgICAgICAgICAgZmliZXIgPT09IGNoaWxkID8gcHJvcHMgOiBmaWJlciA9PT0gYW5jZXN0b3IgPyBudWxsIDogdm9pZCAwLFxuICAgICAgICAgICAgc2VydmVyVGFpbDogW10sXG4gICAgICAgICAgICBkaXN0YW5jZUZyb21MZWFmOiBkaXN0YW5jZUZyb21MZWFmXG4gICAgICAgICAgfSksXG4gICAgICAgICAgZGlzdGFuY2VGcm9tTGVhZisrLFxuICAgICAgICAgIChmaWJlciA9IGZpYmVyLnJldHVybik7XG4gICAgICByZXR1cm4gbnVsbCAhPT0gbm9kZSA/IGRlc2NyaWJlRGlmZihub2RlKS5yZXBsYWNlQWxsKC9eWystXS9nbSwgXCI+XCIpIDogXCJcIjtcbiAgICB9XG4gICAgZnVuY3Rpb24gdXBkYXRlZEFuY2VzdG9ySW5mb0RldihvbGRJbmZvLCB0YWcpIHtcbiAgICAgIHZhciBhbmNlc3RvckluZm8gPSBhc3NpZ24oe30sIG9sZEluZm8gfHwgZW1wdHlBbmNlc3RvckluZm9EZXYpLFxuICAgICAgICBpbmZvID0geyB0YWc6IHRhZyB9O1xuICAgICAgLTEgIT09IGluU2NvcGVUYWdzLmluZGV4T2YodGFnKSAmJlxuICAgICAgICAoKGFuY2VzdG9ySW5mby5hVGFnSW5TY29wZSA9IG51bGwpLFxuICAgICAgICAoYW5jZXN0b3JJbmZvLmJ1dHRvblRhZ0luU2NvcGUgPSBudWxsKSxcbiAgICAgICAgKGFuY2VzdG9ySW5mby5ub2JyVGFnSW5TY29wZSA9IG51bGwpKTtcbiAgICAgIC0xICE9PSBidXR0b25TY29wZVRhZ3MuaW5kZXhPZih0YWcpICYmXG4gICAgICAgIChhbmNlc3RvckluZm8ucFRhZ0luQnV0dG9uU2NvcGUgPSBudWxsKTtcbiAgICAgIC0xICE9PSBzcGVjaWFsVGFncy5pbmRleE9mKHRhZykgJiZcbiAgICAgICAgXCJhZGRyZXNzXCIgIT09IHRhZyAmJlxuICAgICAgICBcImRpdlwiICE9PSB0YWcgJiZcbiAgICAgICAgXCJwXCIgIT09IHRhZyAmJlxuICAgICAgICAoKGFuY2VzdG9ySW5mby5saXN0SXRlbVRhZ0F1dG9jbG9zaW5nID0gbnVsbCksXG4gICAgICAgIChhbmNlc3RvckluZm8uZGxJdGVtVGFnQXV0b2Nsb3NpbmcgPSBudWxsKSk7XG4gICAgICBhbmNlc3RvckluZm8uY3VycmVudCA9IGluZm87XG4gICAgICBcImZvcm1cIiA9PT0gdGFnICYmIChhbmNlc3RvckluZm8uZm9ybVRhZyA9IGluZm8pO1xuICAgICAgXCJhXCIgPT09IHRhZyAmJiAoYW5jZXN0b3JJbmZvLmFUYWdJblNjb3BlID0gaW5mbyk7XG4gICAgICBcImJ1dHRvblwiID09PSB0YWcgJiYgKGFuY2VzdG9ySW5mby5idXR0b25UYWdJblNjb3BlID0gaW5mbyk7XG4gICAgICBcIm5vYnJcIiA9PT0gdGFnICYmIChhbmNlc3RvckluZm8ubm9iclRhZ0luU2NvcGUgPSBpbmZvKTtcbiAgICAgIFwicFwiID09PSB0YWcgJiYgKGFuY2VzdG9ySW5mby5wVGFnSW5CdXR0b25TY29wZSA9IGluZm8pO1xuICAgICAgXCJsaVwiID09PSB0YWcgJiYgKGFuY2VzdG9ySW5mby5saXN0SXRlbVRhZ0F1dG9jbG9zaW5nID0gaW5mbyk7XG4gICAgICBpZiAoXCJkZFwiID09PSB0YWcgfHwgXCJkdFwiID09PSB0YWcpXG4gICAgICAgIGFuY2VzdG9ySW5mby5kbEl0ZW1UYWdBdXRvY2xvc2luZyA9IGluZm87XG4gICAgICBcIiNkb2N1bWVudFwiID09PSB0YWcgfHwgXCJodG1sXCIgPT09IHRhZ1xuICAgICAgICA/IChhbmNlc3RvckluZm8uY29udGFpbmVyVGFnSW5TY29wZSA9IG51bGwpXG4gICAgICAgIDogYW5jZXN0b3JJbmZvLmNvbnRhaW5lclRhZ0luU2NvcGUgfHxcbiAgICAgICAgICAoYW5jZXN0b3JJbmZvLmNvbnRhaW5lclRhZ0luU2NvcGUgPSBpbmZvKTtcbiAgICAgIG51bGwgIT09IG9sZEluZm8gfHxcbiAgICAgIChcIiNkb2N1bWVudFwiICE9PSB0YWcgJiYgXCJodG1sXCIgIT09IHRhZyAmJiBcImJvZHlcIiAhPT0gdGFnKVxuICAgICAgICA/ICEwID09PSBhbmNlc3RvckluZm8uaW1wbGljaXRSb290U2NvcGUgJiZcbiAgICAgICAgICAoYW5jZXN0b3JJbmZvLmltcGxpY2l0Um9vdFNjb3BlID0gITEpXG4gICAgICAgIDogKGFuY2VzdG9ySW5mby5pbXBsaWNpdFJvb3RTY29wZSA9ICEwKTtcbiAgICAgIHJldHVybiBhbmNlc3RvckluZm87XG4gICAgfVxuICAgIGZ1bmN0aW9uIGlzVGFnVmFsaWRXaXRoUGFyZW50KHRhZywgcGFyZW50VGFnLCBpbXBsaWNpdFJvb3RTY29wZSkge1xuICAgICAgc3dpdGNoIChwYXJlbnRUYWcpIHtcbiAgICAgICAgY2FzZSBcInNlbGVjdFwiOlxuICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICBcImhyXCIgPT09IHRhZyB8fFxuICAgICAgICAgICAgXCJvcHRpb25cIiA9PT0gdGFnIHx8XG4gICAgICAgICAgICBcIm9wdGdyb3VwXCIgPT09IHRhZyB8fFxuICAgICAgICAgICAgXCJzY3JpcHRcIiA9PT0gdGFnIHx8XG4gICAgICAgICAgICBcInRlbXBsYXRlXCIgPT09IHRhZyB8fFxuICAgICAgICAgICAgXCIjdGV4dFwiID09PSB0YWdcbiAgICAgICAgICApO1xuICAgICAgICBjYXNlIFwib3B0Z3JvdXBcIjpcbiAgICAgICAgICByZXR1cm4gXCJvcHRpb25cIiA9PT0gdGFnIHx8IFwiI3RleHRcIiA9PT0gdGFnO1xuICAgICAgICBjYXNlIFwib3B0aW9uXCI6XG4gICAgICAgICAgcmV0dXJuIFwiI3RleHRcIiA9PT0gdGFnO1xuICAgICAgICBjYXNlIFwidHJcIjpcbiAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgXCJ0aFwiID09PSB0YWcgfHxcbiAgICAgICAgICAgIFwidGRcIiA9PT0gdGFnIHx8XG4gICAgICAgICAgICBcInN0eWxlXCIgPT09IHRhZyB8fFxuICAgICAgICAgICAgXCJzY3JpcHRcIiA9PT0gdGFnIHx8XG4gICAgICAgICAgICBcInRlbXBsYXRlXCIgPT09IHRhZ1xuICAgICAgICAgICk7XG4gICAgICAgIGNhc2UgXCJ0Ym9keVwiOlxuICAgICAgICBjYXNlIFwidGhlYWRcIjpcbiAgICAgICAgY2FzZSBcInRmb290XCI6XG4gICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgIFwidHJcIiA9PT0gdGFnIHx8XG4gICAgICAgICAgICBcInN0eWxlXCIgPT09IHRhZyB8fFxuICAgICAgICAgICAgXCJzY3JpcHRcIiA9PT0gdGFnIHx8XG4gICAgICAgICAgICBcInRlbXBsYXRlXCIgPT09IHRhZ1xuICAgICAgICAgICk7XG4gICAgICAgIGNhc2UgXCJjb2xncm91cFwiOlxuICAgICAgICAgIHJldHVybiBcImNvbFwiID09PSB0YWcgfHwgXCJ0ZW1wbGF0ZVwiID09PSB0YWc7XG4gICAgICAgIGNhc2UgXCJ0YWJsZVwiOlxuICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICBcImNhcHRpb25cIiA9PT0gdGFnIHx8XG4gICAgICAgICAgICBcImNvbGdyb3VwXCIgPT09IHRhZyB8fFxuICAgICAgICAgICAgXCJ0Ym9keVwiID09PSB0YWcgfHxcbiAgICAgICAgICAgIFwidGZvb3RcIiA9PT0gdGFnIHx8XG4gICAgICAgICAgICBcInRoZWFkXCIgPT09IHRhZyB8fFxuICAgICAgICAgICAgXCJzdHlsZVwiID09PSB0YWcgfHxcbiAgICAgICAgICAgIFwic2NyaXB0XCIgPT09IHRhZyB8fFxuICAgICAgICAgICAgXCJ0ZW1wbGF0ZVwiID09PSB0YWdcbiAgICAgICAgICApO1xuICAgICAgICBjYXNlIFwiaGVhZFwiOlxuICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICBcImJhc2VcIiA9PT0gdGFnIHx8XG4gICAgICAgICAgICBcImJhc2Vmb250XCIgPT09IHRhZyB8fFxuICAgICAgICAgICAgXCJiZ3NvdW5kXCIgPT09IHRhZyB8fFxuICAgICAgICAgICAgXCJsaW5rXCIgPT09IHRhZyB8fFxuICAgICAgICAgICAgXCJtZXRhXCIgPT09IHRhZyB8fFxuICAgICAgICAgICAgXCJ0aXRsZVwiID09PSB0YWcgfHxcbiAgICAgICAgICAgIFwibm9zY3JpcHRcIiA9PT0gdGFnIHx8XG4gICAgICAgICAgICBcIm5vZnJhbWVzXCIgPT09IHRhZyB8fFxuICAgICAgICAgICAgXCJzdHlsZVwiID09PSB0YWcgfHxcbiAgICAgICAgICAgIFwic2NyaXB0XCIgPT09IHRhZyB8fFxuICAgICAgICAgICAgXCJ0ZW1wbGF0ZVwiID09PSB0YWdcbiAgICAgICAgICApO1xuICAgICAgICBjYXNlIFwiaHRtbFwiOlxuICAgICAgICAgIGlmIChpbXBsaWNpdFJvb3RTY29wZSkgYnJlYWs7XG4gICAgICAgICAgcmV0dXJuIFwiaGVhZFwiID09PSB0YWcgfHwgXCJib2R5XCIgPT09IHRhZyB8fCBcImZyYW1lc2V0XCIgPT09IHRhZztcbiAgICAgICAgY2FzZSBcImZyYW1lc2V0XCI6XG4gICAgICAgICAgcmV0dXJuIFwiZnJhbWVcIiA9PT0gdGFnO1xuICAgICAgICBjYXNlIFwiI2RvY3VtZW50XCI6XG4gICAgICAgICAgaWYgKCFpbXBsaWNpdFJvb3RTY29wZSkgcmV0dXJuIFwiaHRtbFwiID09PSB0YWc7XG4gICAgICB9XG4gICAgICBzd2l0Y2ggKHRhZykge1xuICAgICAgICBjYXNlIFwiaDFcIjpcbiAgICAgICAgY2FzZSBcImgyXCI6XG4gICAgICAgIGNhc2UgXCJoM1wiOlxuICAgICAgICBjYXNlIFwiaDRcIjpcbiAgICAgICAgY2FzZSBcImg1XCI6XG4gICAgICAgIGNhc2UgXCJoNlwiOlxuICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICBcImgxXCIgIT09IHBhcmVudFRhZyAmJlxuICAgICAgICAgICAgXCJoMlwiICE9PSBwYXJlbnRUYWcgJiZcbiAgICAgICAgICAgIFwiaDNcIiAhPT0gcGFyZW50VGFnICYmXG4gICAgICAgICAgICBcImg0XCIgIT09IHBhcmVudFRhZyAmJlxuICAgICAgICAgICAgXCJoNVwiICE9PSBwYXJlbnRUYWcgJiZcbiAgICAgICAgICAgIFwiaDZcIiAhPT0gcGFyZW50VGFnXG4gICAgICAgICAgKTtcbiAgICAgICAgY2FzZSBcInJwXCI6XG4gICAgICAgIGNhc2UgXCJydFwiOlxuICAgICAgICAgIHJldHVybiAtMSA9PT0gaW1wbGllZEVuZFRhZ3MuaW5kZXhPZihwYXJlbnRUYWcpO1xuICAgICAgICBjYXNlIFwiY2FwdGlvblwiOlxuICAgICAgICBjYXNlIFwiY29sXCI6XG4gICAgICAgIGNhc2UgXCJjb2xncm91cFwiOlxuICAgICAgICBjYXNlIFwiZnJhbWVzZXRcIjpcbiAgICAgICAgY2FzZSBcImZyYW1lXCI6XG4gICAgICAgIGNhc2UgXCJ0Ym9keVwiOlxuICAgICAgICBjYXNlIFwidGRcIjpcbiAgICAgICAgY2FzZSBcInRmb290XCI6XG4gICAgICAgIGNhc2UgXCJ0aFwiOlxuICAgICAgICBjYXNlIFwidGhlYWRcIjpcbiAgICAgICAgY2FzZSBcInRyXCI6XG4gICAgICAgICAgcmV0dXJuIG51bGwgPT0gcGFyZW50VGFnO1xuICAgICAgICBjYXNlIFwiaGVhZFwiOlxuICAgICAgICAgIHJldHVybiBpbXBsaWNpdFJvb3RTY29wZSB8fCBudWxsID09PSBwYXJlbnRUYWc7XG4gICAgICAgIGNhc2UgXCJodG1sXCI6XG4gICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgIChpbXBsaWNpdFJvb3RTY29wZSAmJiBcIiNkb2N1bWVudFwiID09PSBwYXJlbnRUYWcpIHx8XG4gICAgICAgICAgICBudWxsID09PSBwYXJlbnRUYWdcbiAgICAgICAgICApO1xuICAgICAgICBjYXNlIFwiYm9keVwiOlxuICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAoaW1wbGljaXRSb290U2NvcGUgJiZcbiAgICAgICAgICAgICAgKFwiI2RvY3VtZW50XCIgPT09IHBhcmVudFRhZyB8fCBcImh0bWxcIiA9PT0gcGFyZW50VGFnKSkgfHxcbiAgICAgICAgICAgIG51bGwgPT09IHBhcmVudFRhZ1xuICAgICAgICAgICk7XG4gICAgICB9XG4gICAgICByZXR1cm4gITA7XG4gICAgfVxuICAgIGZ1bmN0aW9uIGZpbmRJbnZhbGlkQW5jZXN0b3JGb3JUYWcodGFnLCBhbmNlc3RvckluZm8pIHtcbiAgICAgIHN3aXRjaCAodGFnKSB7XG4gICAgICAgIGNhc2UgXCJhZGRyZXNzXCI6XG4gICAgICAgIGNhc2UgXCJhcnRpY2xlXCI6XG4gICAgICAgIGNhc2UgXCJhc2lkZVwiOlxuICAgICAgICBjYXNlIFwiYmxvY2txdW90ZVwiOlxuICAgICAgICBjYXNlIFwiY2VudGVyXCI6XG4gICAgICAgIGNhc2UgXCJkZXRhaWxzXCI6XG4gICAgICAgIGNhc2UgXCJkaWFsb2dcIjpcbiAgICAgICAgY2FzZSBcImRpclwiOlxuICAgICAgICBjYXNlIFwiZGl2XCI6XG4gICAgICAgIGNhc2UgXCJkbFwiOlxuICAgICAgICBjYXNlIFwiZmllbGRzZXRcIjpcbiAgICAgICAgY2FzZSBcImZpZ2NhcHRpb25cIjpcbiAgICAgICAgY2FzZSBcImZpZ3VyZVwiOlxuICAgICAgICBjYXNlIFwiZm9vdGVyXCI6XG4gICAgICAgIGNhc2UgXCJoZWFkZXJcIjpcbiAgICAgICAgY2FzZSBcImhncm91cFwiOlxuICAgICAgICBjYXNlIFwibWFpblwiOlxuICAgICAgICBjYXNlIFwibWVudVwiOlxuICAgICAgICBjYXNlIFwibmF2XCI6XG4gICAgICAgIGNhc2UgXCJvbFwiOlxuICAgICAgICBjYXNlIFwicFwiOlxuICAgICAgICBjYXNlIFwic2VjdGlvblwiOlxuICAgICAgICBjYXNlIFwic3VtbWFyeVwiOlxuICAgICAgICBjYXNlIFwidWxcIjpcbiAgICAgICAgY2FzZSBcInByZVwiOlxuICAgICAgICBjYXNlIFwibGlzdGluZ1wiOlxuICAgICAgICBjYXNlIFwidGFibGVcIjpcbiAgICAgICAgY2FzZSBcImhyXCI6XG4gICAgICAgIGNhc2UgXCJ4bXBcIjpcbiAgICAgICAgY2FzZSBcImgxXCI6XG4gICAgICAgIGNhc2UgXCJoMlwiOlxuICAgICAgICBjYXNlIFwiaDNcIjpcbiAgICAgICAgY2FzZSBcImg0XCI6XG4gICAgICAgIGNhc2UgXCJoNVwiOlxuICAgICAgICBjYXNlIFwiaDZcIjpcbiAgICAgICAgICByZXR1cm4gYW5jZXN0b3JJbmZvLnBUYWdJbkJ1dHRvblNjb3BlO1xuICAgICAgICBjYXNlIFwiZm9ybVwiOlxuICAgICAgICAgIHJldHVybiBhbmNlc3RvckluZm8uZm9ybVRhZyB8fCBhbmNlc3RvckluZm8ucFRhZ0luQnV0dG9uU2NvcGU7XG4gICAgICAgIGNhc2UgXCJsaVwiOlxuICAgICAgICAgIHJldHVybiBhbmNlc3RvckluZm8ubGlzdEl0ZW1UYWdBdXRvY2xvc2luZztcbiAgICAgICAgY2FzZSBcImRkXCI6XG4gICAgICAgIGNhc2UgXCJkdFwiOlxuICAgICAgICAgIHJldHVybiBhbmNlc3RvckluZm8uZGxJdGVtVGFnQXV0b2Nsb3Npbmc7XG4gICAgICAgIGNhc2UgXCJidXR0b25cIjpcbiAgICAgICAgICByZXR1cm4gYW5jZXN0b3JJbmZvLmJ1dHRvblRhZ0luU2NvcGU7XG4gICAgICAgIGNhc2UgXCJhXCI6XG4gICAgICAgICAgcmV0dXJuIGFuY2VzdG9ySW5mby5hVGFnSW5TY29wZTtcbiAgICAgICAgY2FzZSBcIm5vYnJcIjpcbiAgICAgICAgICByZXR1cm4gYW5jZXN0b3JJbmZvLm5vYnJUYWdJblNjb3BlO1xuICAgICAgfVxuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuICAgIGZ1bmN0aW9uIGZpbmRBbmNlc3RvcihwYXJlbnQsIHRhZ05hbWUpIHtcbiAgICAgIGZvciAoOyBwYXJlbnQ7ICkge1xuICAgICAgICBzd2l0Y2ggKHBhcmVudC50YWcpIHtcbiAgICAgICAgICBjYXNlIDU6XG4gICAgICAgICAgY2FzZSAyNjpcbiAgICAgICAgICBjYXNlIDI3OlxuICAgICAgICAgICAgaWYgKHBhcmVudC50eXBlID09PSB0YWdOYW1lKSByZXR1cm4gcGFyZW50O1xuICAgICAgICB9XG4gICAgICAgIHBhcmVudCA9IHBhcmVudC5yZXR1cm47XG4gICAgICB9XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG4gICAgZnVuY3Rpb24gdmFsaWRhdGVET01OZXN0aW5nKGNoaWxkVGFnLCBhbmNlc3RvckluZm8pIHtcbiAgICAgIGFuY2VzdG9ySW5mbyA9IGFuY2VzdG9ySW5mbyB8fCBlbXB0eUFuY2VzdG9ySW5mb0RldjtcbiAgICAgIHZhciBwYXJlbnRJbmZvID0gYW5jZXN0b3JJbmZvLmN1cnJlbnQ7XG4gICAgICBhbmNlc3RvckluZm8gPSAocGFyZW50SW5mbyA9IGlzVGFnVmFsaWRXaXRoUGFyZW50KFxuICAgICAgICBjaGlsZFRhZyxcbiAgICAgICAgcGFyZW50SW5mbyAmJiBwYXJlbnRJbmZvLnRhZyxcbiAgICAgICAgYW5jZXN0b3JJbmZvLmltcGxpY2l0Um9vdFNjb3BlXG4gICAgICApXG4gICAgICAgID8gbnVsbFxuICAgICAgICA6IHBhcmVudEluZm8pXG4gICAgICAgID8gbnVsbFxuICAgICAgICA6IGZpbmRJbnZhbGlkQW5jZXN0b3JGb3JUYWcoY2hpbGRUYWcsIGFuY2VzdG9ySW5mbyk7XG4gICAgICBhbmNlc3RvckluZm8gPSBwYXJlbnRJbmZvIHx8IGFuY2VzdG9ySW5mbztcbiAgICAgIGlmICghYW5jZXN0b3JJbmZvKSByZXR1cm4gITA7XG4gICAgICB2YXIgYW5jZXN0b3JUYWcgPSBhbmNlc3RvckluZm8udGFnO1xuICAgICAgYW5jZXN0b3JJbmZvID0gU3RyaW5nKCEhcGFyZW50SW5mbykgKyBcInxcIiArIGNoaWxkVGFnICsgXCJ8XCIgKyBhbmNlc3RvclRhZztcbiAgICAgIGlmIChkaWRXYXJuW2FuY2VzdG9ySW5mb10pIHJldHVybiAhMTtcbiAgICAgIGRpZFdhcm5bYW5jZXN0b3JJbmZvXSA9ICEwO1xuICAgICAgdmFyIGFuY2VzdG9yID0gKGFuY2VzdG9ySW5mbyA9IGN1cnJlbnQpXG4gICAgICAgICAgPyBmaW5kQW5jZXN0b3IoYW5jZXN0b3JJbmZvLnJldHVybiwgYW5jZXN0b3JUYWcpXG4gICAgICAgICAgOiBudWxsLFxuICAgICAgICBhbmNlc3RvckRlc2NyaXB0aW9uID1cbiAgICAgICAgICBudWxsICE9PSBhbmNlc3RvckluZm8gJiYgbnVsbCAhPT0gYW5jZXN0b3JcbiAgICAgICAgICAgID8gZGVzY3JpYmVBbmNlc3RvcnMoYW5jZXN0b3IsIGFuY2VzdG9ySW5mbywgbnVsbClcbiAgICAgICAgICAgIDogXCJcIixcbiAgICAgICAgdGFnRGlzcGxheU5hbWUgPSBcIjxcIiArIGNoaWxkVGFnICsgXCI+XCI7XG4gICAgICBwYXJlbnRJbmZvXG4gICAgICAgID8gKChwYXJlbnRJbmZvID0gXCJcIiksXG4gICAgICAgICAgXCJ0YWJsZVwiID09PSBhbmNlc3RvclRhZyAmJlxuICAgICAgICAgICAgXCJ0clwiID09PSBjaGlsZFRhZyAmJlxuICAgICAgICAgICAgKHBhcmVudEluZm8gKz1cbiAgICAgICAgICAgICAgXCIgQWRkIGEgPHRib2R5PiwgPHRoZWFkPiBvciA8dGZvb3Q+IHRvIHlvdXIgY29kZSB0byBtYXRjaCB0aGUgRE9NIHRyZWUgZ2VuZXJhdGVkIGJ5IHRoZSBicm93c2VyLlwiKSxcbiAgICAgICAgICBjb25zb2xlLmVycm9yKFxuICAgICAgICAgICAgXCJJbiBIVE1MLCAlcyBjYW5ub3QgYmUgYSBjaGlsZCBvZiA8JXM+LiVzXFxuVGhpcyB3aWxsIGNhdXNlIGEgaHlkcmF0aW9uIGVycm9yLiVzXCIsXG4gICAgICAgICAgICB0YWdEaXNwbGF5TmFtZSxcbiAgICAgICAgICAgIGFuY2VzdG9yVGFnLFxuICAgICAgICAgICAgcGFyZW50SW5mbyxcbiAgICAgICAgICAgIGFuY2VzdG9yRGVzY3JpcHRpb25cbiAgICAgICAgICApKVxuICAgICAgICA6IGNvbnNvbGUuZXJyb3IoXG4gICAgICAgICAgICBcIkluIEhUTUwsICVzIGNhbm5vdCBiZSBhIGRlc2NlbmRhbnQgb2YgPCVzPi5cXG5UaGlzIHdpbGwgY2F1c2UgYSBoeWRyYXRpb24gZXJyb3IuJXNcIixcbiAgICAgICAgICAgIHRhZ0Rpc3BsYXlOYW1lLFxuICAgICAgICAgICAgYW5jZXN0b3JUYWcsXG4gICAgICAgICAgICBhbmNlc3RvckRlc2NyaXB0aW9uXG4gICAgICAgICAgKTtcbiAgICAgIGFuY2VzdG9ySW5mbyAmJlxuICAgICAgICAoKGNoaWxkVGFnID0gYW5jZXN0b3JJbmZvLnJldHVybiksXG4gICAgICAgIG51bGwgPT09IGFuY2VzdG9yIHx8XG4gICAgICAgICAgbnVsbCA9PT0gY2hpbGRUYWcgfHxcbiAgICAgICAgICAoYW5jZXN0b3IgPT09IGNoaWxkVGFnICYmXG4gICAgICAgICAgICBjaGlsZFRhZy5fZGVidWdPd25lciA9PT0gYW5jZXN0b3JJbmZvLl9kZWJ1Z093bmVyKSB8fFxuICAgICAgICAgIHJ1bldpdGhGaWJlckluREVWKGFuY2VzdG9yLCBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICBjb25zb2xlLmVycm9yKFxuICAgICAgICAgICAgICBcIjwlcz4gY2Fubm90IGNvbnRhaW4gYSBuZXN0ZWQgJXMuXFxuU2VlIHRoaXMgbG9nIGZvciB0aGUgYW5jZXN0b3Igc3RhY2sgdHJhY2UuXCIsXG4gICAgICAgICAgICAgIGFuY2VzdG9yVGFnLFxuICAgICAgICAgICAgICB0YWdEaXNwbGF5TmFtZVxuICAgICAgICAgICAgKTtcbiAgICAgICAgICB9KSk7XG4gICAgICByZXR1cm4gITE7XG4gICAgfVxuICAgIGZ1bmN0aW9uIHZhbGlkYXRlVGV4dE5lc3RpbmcoY2hpbGRUZXh0LCBwYXJlbnRUYWcsIGltcGxpY2l0Um9vdFNjb3BlKSB7XG4gICAgICBpZiAoaW1wbGljaXRSb290U2NvcGUgfHwgaXNUYWdWYWxpZFdpdGhQYXJlbnQoXCIjdGV4dFwiLCBwYXJlbnRUYWcsICExKSlcbiAgICAgICAgcmV0dXJuICEwO1xuICAgICAgaW1wbGljaXRSb290U2NvcGUgPSBcIiN0ZXh0fFwiICsgcGFyZW50VGFnO1xuICAgICAgaWYgKGRpZFdhcm5baW1wbGljaXRSb290U2NvcGVdKSByZXR1cm4gITE7XG4gICAgICBkaWRXYXJuW2ltcGxpY2l0Um9vdFNjb3BlXSA9ICEwO1xuICAgICAgdmFyIGFuY2VzdG9yID0gKGltcGxpY2l0Um9vdFNjb3BlID0gY3VycmVudClcbiAgICAgICAgPyBmaW5kQW5jZXN0b3IoaW1wbGljaXRSb290U2NvcGUsIHBhcmVudFRhZylcbiAgICAgICAgOiBudWxsO1xuICAgICAgaW1wbGljaXRSb290U2NvcGUgPVxuICAgICAgICBudWxsICE9PSBpbXBsaWNpdFJvb3RTY29wZSAmJiBudWxsICE9PSBhbmNlc3RvclxuICAgICAgICAgID8gZGVzY3JpYmVBbmNlc3RvcnMoXG4gICAgICAgICAgICAgIGFuY2VzdG9yLFxuICAgICAgICAgICAgICBpbXBsaWNpdFJvb3RTY29wZSxcbiAgICAgICAgICAgICAgNiAhPT0gaW1wbGljaXRSb290U2NvcGUudGFnID8geyBjaGlsZHJlbjogbnVsbCB9IDogbnVsbFxuICAgICAgICAgICAgKVxuICAgICAgICAgIDogXCJcIjtcbiAgICAgIC9cXFMvLnRlc3QoY2hpbGRUZXh0KVxuICAgICAgICA/IGNvbnNvbGUuZXJyb3IoXG4gICAgICAgICAgICBcIkluIEhUTUwsIHRleHQgbm9kZXMgY2Fubm90IGJlIGEgY2hpbGQgb2YgPCVzPi5cXG5UaGlzIHdpbGwgY2F1c2UgYSBoeWRyYXRpb24gZXJyb3IuJXNcIixcbiAgICAgICAgICAgIHBhcmVudFRhZyxcbiAgICAgICAgICAgIGltcGxpY2l0Um9vdFNjb3BlXG4gICAgICAgICAgKVxuICAgICAgICA6IGNvbnNvbGUuZXJyb3IoXG4gICAgICAgICAgICBcIkluIEhUTUwsIHdoaXRlc3BhY2UgdGV4dCBub2RlcyBjYW5ub3QgYmUgYSBjaGlsZCBvZiA8JXM+LiBNYWtlIHN1cmUgeW91IGRvbid0IGhhdmUgYW55IGV4dHJhIHdoaXRlc3BhY2UgYmV0d2VlbiB0YWdzIG9uIGVhY2ggbGluZSBvZiB5b3VyIHNvdXJjZSBjb2RlLlxcblRoaXMgd2lsbCBjYXVzZSBhIGh5ZHJhdGlvbiBlcnJvci4lc1wiLFxuICAgICAgICAgICAgcGFyZW50VGFnLFxuICAgICAgICAgICAgaW1wbGljaXRSb290U2NvcGVcbiAgICAgICAgICApO1xuICAgICAgcmV0dXJuICExO1xuICAgIH1cbiAgICBmdW5jdGlvbiBzZXRUZXh0Q29udGVudChub2RlLCB0ZXh0KSB7XG4gICAgICBpZiAodGV4dCkge1xuICAgICAgICB2YXIgZmlyc3RDaGlsZCA9IG5vZGUuZmlyc3RDaGlsZDtcbiAgICAgICAgaWYgKFxuICAgICAgICAgIGZpcnN0Q2hpbGQgJiZcbiAgICAgICAgICBmaXJzdENoaWxkID09PSBub2RlLmxhc3RDaGlsZCAmJlxuICAgICAgICAgIDMgPT09IGZpcnN0Q2hpbGQubm9kZVR5cGVcbiAgICAgICAgKSB7XG4gICAgICAgICAgZmlyc3RDaGlsZC5ub2RlVmFsdWUgPSB0ZXh0O1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgbm9kZS50ZXh0Q29udGVudCA9IHRleHQ7XG4gICAgfVxuICAgIGZ1bmN0aW9uIGNhbWVsaXplKHN0cmluZykge1xuICAgICAgcmV0dXJuIHN0cmluZy5yZXBsYWNlKGh5cGhlblBhdHRlcm4sIGZ1bmN0aW9uIChfLCBjaGFyYWN0ZXIpIHtcbiAgICAgICAgcmV0dXJuIGNoYXJhY3Rlci50b1VwcGVyQ2FzZSgpO1xuICAgICAgfSk7XG4gICAgfVxuICAgIGZ1bmN0aW9uIHNldFZhbHVlRm9yU3R5bGUoc3R5bGUsIHN0eWxlTmFtZSwgdmFsdWUpIHtcbiAgICAgIHZhciBpc0N1c3RvbVByb3BlcnR5ID0gMCA9PT0gc3R5bGVOYW1lLmluZGV4T2YoXCItLVwiKTtcbiAgICAgIGlzQ3VzdG9tUHJvcGVydHkgfHxcbiAgICAgICAgKC0xIDwgc3R5bGVOYW1lLmluZGV4T2YoXCItXCIpXG4gICAgICAgICAgPyAod2FybmVkU3R5bGVOYW1lcy5oYXNPd25Qcm9wZXJ0eShzdHlsZU5hbWUpICYmXG4gICAgICAgICAgICAgIHdhcm5lZFN0eWxlTmFtZXNbc3R5bGVOYW1lXSkgfHxcbiAgICAgICAgICAgICgod2FybmVkU3R5bGVOYW1lc1tzdHlsZU5hbWVdID0gITApLFxuICAgICAgICAgICAgY29uc29sZS5lcnJvcihcbiAgICAgICAgICAgICAgXCJVbnN1cHBvcnRlZCBzdHlsZSBwcm9wZXJ0eSAlcy4gRGlkIHlvdSBtZWFuICVzP1wiLFxuICAgICAgICAgICAgICBzdHlsZU5hbWUsXG4gICAgICAgICAgICAgIGNhbWVsaXplKHN0eWxlTmFtZS5yZXBsYWNlKG1zUGF0dGVybiwgXCJtcy1cIikpXG4gICAgICAgICAgICApKVxuICAgICAgICAgIDogYmFkVmVuZG9yZWRTdHlsZU5hbWVQYXR0ZXJuLnRlc3Qoc3R5bGVOYW1lKVxuICAgICAgICAgICAgPyAod2FybmVkU3R5bGVOYW1lcy5oYXNPd25Qcm9wZXJ0eShzdHlsZU5hbWUpICYmXG4gICAgICAgICAgICAgICAgd2FybmVkU3R5bGVOYW1lc1tzdHlsZU5hbWVdKSB8fFxuICAgICAgICAgICAgICAoKHdhcm5lZFN0eWxlTmFtZXNbc3R5bGVOYW1lXSA9ICEwKSxcbiAgICAgICAgICAgICAgY29uc29sZS5lcnJvcihcbiAgICAgICAgICAgICAgICBcIlVuc3VwcG9ydGVkIHZlbmRvci1wcmVmaXhlZCBzdHlsZSBwcm9wZXJ0eSAlcy4gRGlkIHlvdSBtZWFuICVzP1wiLFxuICAgICAgICAgICAgICAgIHN0eWxlTmFtZSxcbiAgICAgICAgICAgICAgICBzdHlsZU5hbWUuY2hhckF0KDApLnRvVXBwZXJDYXNlKCkgKyBzdHlsZU5hbWUuc2xpY2UoMSlcbiAgICAgICAgICAgICAgKSlcbiAgICAgICAgICAgIDogIWJhZFN0eWxlVmFsdWVXaXRoU2VtaWNvbG9uUGF0dGVybi50ZXN0KHZhbHVlKSB8fFxuICAgICAgICAgICAgICAod2FybmVkU3R5bGVWYWx1ZXMuaGFzT3duUHJvcGVydHkodmFsdWUpICYmXG4gICAgICAgICAgICAgICAgd2FybmVkU3R5bGVWYWx1ZXNbdmFsdWVdKSB8fFxuICAgICAgICAgICAgICAoKHdhcm5lZFN0eWxlVmFsdWVzW3ZhbHVlXSA9ICEwKSxcbiAgICAgICAgICAgICAgY29uc29sZS5lcnJvcihcbiAgICAgICAgICAgICAgICAnU3R5bGUgcHJvcGVydHkgdmFsdWVzIHNob3VsZG5cXCd0IGNvbnRhaW4gYSBzZW1pY29sb24uIFRyeSBcIiVzOiAlc1wiIGluc3RlYWQuJyxcbiAgICAgICAgICAgICAgICBzdHlsZU5hbWUsXG4gICAgICAgICAgICAgICAgdmFsdWUucmVwbGFjZShiYWRTdHlsZVZhbHVlV2l0aFNlbWljb2xvblBhdHRlcm4sIFwiXCIpXG4gICAgICAgICAgICAgICkpLFxuICAgICAgICBcIm51bWJlclwiID09PSB0eXBlb2YgdmFsdWUgJiZcbiAgICAgICAgICAoaXNOYU4odmFsdWUpXG4gICAgICAgICAgICA/IHdhcm5lZEZvck5hTlZhbHVlIHx8XG4gICAgICAgICAgICAgICgod2FybmVkRm9yTmFOVmFsdWUgPSAhMCksXG4gICAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoXG4gICAgICAgICAgICAgICAgXCJgTmFOYCBpcyBhbiBpbnZhbGlkIHZhbHVlIGZvciB0aGUgYCVzYCBjc3Mgc3R5bGUgcHJvcGVydHkuXCIsXG4gICAgICAgICAgICAgICAgc3R5bGVOYW1lXG4gICAgICAgICAgICAgICkpXG4gICAgICAgICAgICA6IGlzRmluaXRlKHZhbHVlKSB8fFxuICAgICAgICAgICAgICB3YXJuZWRGb3JJbmZpbml0eVZhbHVlIHx8XG4gICAgICAgICAgICAgICgod2FybmVkRm9ySW5maW5pdHlWYWx1ZSA9ICEwKSxcbiAgICAgICAgICAgICAgY29uc29sZS5lcnJvcihcbiAgICAgICAgICAgICAgICBcImBJbmZpbml0eWAgaXMgYW4gaW52YWxpZCB2YWx1ZSBmb3IgdGhlIGAlc2AgY3NzIHN0eWxlIHByb3BlcnR5LlwiLFxuICAgICAgICAgICAgICAgIHN0eWxlTmFtZVxuICAgICAgICAgICAgICApKSkpO1xuICAgICAgbnVsbCA9PSB2YWx1ZSB8fCBcImJvb2xlYW5cIiA9PT0gdHlwZW9mIHZhbHVlIHx8IFwiXCIgPT09IHZhbHVlXG4gICAgICAgID8gaXNDdXN0b21Qcm9wZXJ0eVxuICAgICAgICAgID8gc3R5bGUuc2V0UHJvcGVydHkoc3R5bGVOYW1lLCBcIlwiKVxuICAgICAgICAgIDogXCJmbG9hdFwiID09PSBzdHlsZU5hbWVcbiAgICAgICAgICAgID8gKHN0eWxlLmNzc0Zsb2F0ID0gXCJcIilcbiAgICAgICAgICAgIDogKHN0eWxlW3N0eWxlTmFtZV0gPSBcIlwiKVxuICAgICAgICA6IGlzQ3VzdG9tUHJvcGVydHlcbiAgICAgICAgICA/IHN0eWxlLnNldFByb3BlcnR5KHN0eWxlTmFtZSwgdmFsdWUpXG4gICAgICAgICAgOiBcIm51bWJlclwiICE9PSB0eXBlb2YgdmFsdWUgfHxcbiAgICAgICAgICAgICAgMCA9PT0gdmFsdWUgfHxcbiAgICAgICAgICAgICAgdW5pdGxlc3NOdW1iZXJzLmhhcyhzdHlsZU5hbWUpXG4gICAgICAgICAgICA/IFwiZmxvYXRcIiA9PT0gc3R5bGVOYW1lXG4gICAgICAgICAgICAgID8gKHN0eWxlLmNzc0Zsb2F0ID0gdmFsdWUpXG4gICAgICAgICAgICAgIDogKGNoZWNrQ1NTUHJvcGVydHlTdHJpbmdDb2VyY2lvbih2YWx1ZSwgc3R5bGVOYW1lKSxcbiAgICAgICAgICAgICAgICAoc3R5bGVbc3R5bGVOYW1lXSA9IChcIlwiICsgdmFsdWUpLnRyaW0oKSkpXG4gICAgICAgICAgICA6IChzdHlsZVtzdHlsZU5hbWVdID0gdmFsdWUgKyBcInB4XCIpO1xuICAgIH1cbiAgICBmdW5jdGlvbiBzZXRWYWx1ZUZvclN0eWxlcyhub2RlLCBzdHlsZXMsIHByZXZTdHlsZXMpIHtcbiAgICAgIGlmIChudWxsICE9IHN0eWxlcyAmJiBcIm9iamVjdFwiICE9PSB0eXBlb2Ygc3R5bGVzKVxuICAgICAgICB0aHJvdyBFcnJvcihcbiAgICAgICAgICBcIlRoZSBgc3R5bGVgIHByb3AgZXhwZWN0cyBhIG1hcHBpbmcgZnJvbSBzdHlsZSBwcm9wZXJ0aWVzIHRvIHZhbHVlcywgbm90IGEgc3RyaW5nLiBGb3IgZXhhbXBsZSwgc3R5bGU9e3ttYXJnaW5SaWdodDogc3BhY2luZyArICdlbSd9fSB3aGVuIHVzaW5nIEpTWC5cIlxuICAgICAgICApO1xuICAgICAgc3R5bGVzICYmIE9iamVjdC5mcmVlemUoc3R5bGVzKTtcbiAgICAgIG5vZGUgPSBub2RlLnN0eWxlO1xuICAgICAgaWYgKG51bGwgIT0gcHJldlN0eWxlcykge1xuICAgICAgICBpZiAoc3R5bGVzKSB7XG4gICAgICAgICAgdmFyIGV4cGFuZGVkVXBkYXRlcyA9IHt9O1xuICAgICAgICAgIGlmIChwcmV2U3R5bGVzKVxuICAgICAgICAgICAgZm9yICh2YXIga2V5IGluIHByZXZTdHlsZXMpXG4gICAgICAgICAgICAgIGlmIChwcmV2U3R5bGVzLmhhc093blByb3BlcnR5KGtleSkgJiYgIXN0eWxlcy5oYXNPd25Qcm9wZXJ0eShrZXkpKVxuICAgICAgICAgICAgICAgIGZvciAoXG4gICAgICAgICAgICAgICAgICB2YXIgbG9uZ2hhbmRzID0gc2hvcnRoYW5kVG9Mb25naGFuZFtrZXldIHx8IFtrZXldLCBpID0gMDtcbiAgICAgICAgICAgICAgICAgIGkgPCBsb25naGFuZHMubGVuZ3RoO1xuICAgICAgICAgICAgICAgICAgaSsrXG4gICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgICAgZXhwYW5kZWRVcGRhdGVzW2xvbmdoYW5kc1tpXV0gPSBrZXk7XG4gICAgICAgICAgZm9yICh2YXIgX2tleSBpbiBzdHlsZXMpXG4gICAgICAgICAgICBpZiAoXG4gICAgICAgICAgICAgIHN0eWxlcy5oYXNPd25Qcm9wZXJ0eShfa2V5KSAmJlxuICAgICAgICAgICAgICAoIXByZXZTdHlsZXMgfHwgcHJldlN0eWxlc1tfa2V5XSAhPT0gc3R5bGVzW19rZXldKVxuICAgICAgICAgICAgKVxuICAgICAgICAgICAgICBmb3IgKFxuICAgICAgICAgICAgICAgIGtleSA9IHNob3J0aGFuZFRvTG9uZ2hhbmRbX2tleV0gfHwgW19rZXldLCBsb25naGFuZHMgPSAwO1xuICAgICAgICAgICAgICAgIGxvbmdoYW5kcyA8IGtleS5sZW5ndGg7XG4gICAgICAgICAgICAgICAgbG9uZ2hhbmRzKytcbiAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgIGV4cGFuZGVkVXBkYXRlc1trZXlbbG9uZ2hhbmRzXV0gPSBfa2V5O1xuICAgICAgICAgIF9rZXkgPSB7fTtcbiAgICAgICAgICBmb3IgKHZhciBrZXkkanNjb21wJDAgaW4gc3R5bGVzKVxuICAgICAgICAgICAgZm9yIChcbiAgICAgICAgICAgICAga2V5ID0gc2hvcnRoYW5kVG9Mb25naGFuZFtrZXkkanNjb21wJDBdIHx8IFtrZXkkanNjb21wJDBdLFxuICAgICAgICAgICAgICAgIGxvbmdoYW5kcyA9IDA7XG4gICAgICAgICAgICAgIGxvbmdoYW5kcyA8IGtleS5sZW5ndGg7XG4gICAgICAgICAgICAgIGxvbmdoYW5kcysrXG4gICAgICAgICAgICApXG4gICAgICAgICAgICAgIF9rZXlba2V5W2xvbmdoYW5kc11dID0ga2V5JGpzY29tcCQwO1xuICAgICAgICAgIGtleSRqc2NvbXAkMCA9IHt9O1xuICAgICAgICAgIGZvciAodmFyIF9rZXkyIGluIGV4cGFuZGVkVXBkYXRlcylcbiAgICAgICAgICAgIGlmIChcbiAgICAgICAgICAgICAgKChrZXkgPSBleHBhbmRlZFVwZGF0ZXNbX2tleTJdKSxcbiAgICAgICAgICAgICAgKGxvbmdoYW5kcyA9IF9rZXlbX2tleTJdKSAmJlxuICAgICAgICAgICAgICAgIGtleSAhPT0gbG9uZ2hhbmRzICYmXG4gICAgICAgICAgICAgICAgKChpID0ga2V5ICsgXCIsXCIgKyBsb25naGFuZHMpLCAha2V5JGpzY29tcCQwW2ldKSlcbiAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICBrZXkkanNjb21wJDBbaV0gPSAhMDtcbiAgICAgICAgICAgICAgaSA9IGNvbnNvbGU7XG4gICAgICAgICAgICAgIHZhciB2YWx1ZSA9IHN0eWxlc1trZXldO1xuICAgICAgICAgICAgICBpLmVycm9yLmNhbGwoXG4gICAgICAgICAgICAgICAgaSxcbiAgICAgICAgICAgICAgICBcIiVzIGEgc3R5bGUgcHJvcGVydHkgZHVyaW5nIHJlcmVuZGVyICglcykgd2hlbiBhIGNvbmZsaWN0aW5nIHByb3BlcnR5IGlzIHNldCAoJXMpIGNhbiBsZWFkIHRvIHN0eWxpbmcgYnVncy4gVG8gYXZvaWQgdGhpcywgZG9uJ3QgbWl4IHNob3J0aGFuZCBhbmQgbm9uLXNob3J0aGFuZCBwcm9wZXJ0aWVzIGZvciB0aGUgc2FtZSB2YWx1ZTsgaW5zdGVhZCwgcmVwbGFjZSB0aGUgc2hvcnRoYW5kIHdpdGggc2VwYXJhdGUgdmFsdWVzLlwiLFxuICAgICAgICAgICAgICAgIG51bGwgPT0gdmFsdWUgfHwgXCJib29sZWFuXCIgPT09IHR5cGVvZiB2YWx1ZSB8fCBcIlwiID09PSB2YWx1ZVxuICAgICAgICAgICAgICAgICAgPyBcIlJlbW92aW5nXCJcbiAgICAgICAgICAgICAgICAgIDogXCJVcGRhdGluZ1wiLFxuICAgICAgICAgICAgICAgIGtleSxcbiAgICAgICAgICAgICAgICBsb25naGFuZHNcbiAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBmb3IgKHZhciBzdHlsZU5hbWUgaW4gcHJldlN0eWxlcylcbiAgICAgICAgICAhcHJldlN0eWxlcy5oYXNPd25Qcm9wZXJ0eShzdHlsZU5hbWUpIHx8XG4gICAgICAgICAgICAobnVsbCAhPSBzdHlsZXMgJiYgc3R5bGVzLmhhc093blByb3BlcnR5KHN0eWxlTmFtZSkpIHx8XG4gICAgICAgICAgICAoMCA9PT0gc3R5bGVOYW1lLmluZGV4T2YoXCItLVwiKVxuICAgICAgICAgICAgICA/IG5vZGUuc2V0UHJvcGVydHkoc3R5bGVOYW1lLCBcIlwiKVxuICAgICAgICAgICAgICA6IFwiZmxvYXRcIiA9PT0gc3R5bGVOYW1lXG4gICAgICAgICAgICAgICAgPyAobm9kZS5jc3NGbG9hdCA9IFwiXCIpXG4gICAgICAgICAgICAgICAgOiAobm9kZVtzdHlsZU5hbWVdID0gXCJcIikpO1xuICAgICAgICBmb3IgKHZhciBfc3R5bGVOYW1lIGluIHN0eWxlcylcbiAgICAgICAgICAoX2tleTIgPSBzdHlsZXNbX3N0eWxlTmFtZV0pLFxuICAgICAgICAgICAgc3R5bGVzLmhhc093blByb3BlcnR5KF9zdHlsZU5hbWUpICYmXG4gICAgICAgICAgICAgIHByZXZTdHlsZXNbX3N0eWxlTmFtZV0gIT09IF9rZXkyICYmXG4gICAgICAgICAgICAgIHNldFZhbHVlRm9yU3R5bGUobm9kZSwgX3N0eWxlTmFtZSwgX2tleTIpO1xuICAgICAgfSBlbHNlXG4gICAgICAgIGZvciAoZXhwYW5kZWRVcGRhdGVzIGluIHN0eWxlcylcbiAgICAgICAgICBzdHlsZXMuaGFzT3duUHJvcGVydHkoZXhwYW5kZWRVcGRhdGVzKSAmJlxuICAgICAgICAgICAgc2V0VmFsdWVGb3JTdHlsZShub2RlLCBleHBhbmRlZFVwZGF0ZXMsIHN0eWxlc1tleHBhbmRlZFVwZGF0ZXNdKTtcbiAgICB9XG4gICAgZnVuY3Rpb24gaXNDdXN0b21FbGVtZW50KHRhZ05hbWUpIHtcbiAgICAgIGlmICgtMSA9PT0gdGFnTmFtZS5pbmRleE9mKFwiLVwiKSkgcmV0dXJuICExO1xuICAgICAgc3dpdGNoICh0YWdOYW1lKSB7XG4gICAgICAgIGNhc2UgXCJhbm5vdGF0aW9uLXhtbFwiOlxuICAgICAgICBjYXNlIFwiY29sb3ItcHJvZmlsZVwiOlxuICAgICAgICBjYXNlIFwiZm9udC1mYWNlXCI6XG4gICAgICAgIGNhc2UgXCJmb250LWZhY2Utc3JjXCI6XG4gICAgICAgIGNhc2UgXCJmb250LWZhY2UtdXJpXCI6XG4gICAgICAgIGNhc2UgXCJmb250LWZhY2UtZm9ybWF0XCI6XG4gICAgICAgIGNhc2UgXCJmb250LWZhY2UtbmFtZVwiOlxuICAgICAgICBjYXNlIFwibWlzc2luZy1nbHlwaFwiOlxuICAgICAgICAgIHJldHVybiAhMTtcbiAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICByZXR1cm4gITA7XG4gICAgICB9XG4gICAgfVxuICAgIGZ1bmN0aW9uIGdldEF0dHJpYnV0ZUFsaWFzKG5hbWUpIHtcbiAgICAgIHJldHVybiBhbGlhc2VzLmdldChuYW1lKSB8fCBuYW1lO1xuICAgIH1cbiAgICBmdW5jdGlvbiB2YWxpZGF0ZVByb3BlcnR5JDEodGFnTmFtZSwgbmFtZSkge1xuICAgICAgaWYgKFxuICAgICAgICBoYXNPd25Qcm9wZXJ0eS5jYWxsKHdhcm5lZFByb3BlcnRpZXMkMSwgbmFtZSkgJiZcbiAgICAgICAgd2FybmVkUHJvcGVydGllcyQxW25hbWVdXG4gICAgICApXG4gICAgICAgIHJldHVybiAhMDtcbiAgICAgIGlmIChyQVJJQUNhbWVsJDEudGVzdChuYW1lKSkge1xuICAgICAgICB0YWdOYW1lID0gXCJhcmlhLVwiICsgbmFtZS5zbGljZSg0KS50b0xvd2VyQ2FzZSgpO1xuICAgICAgICB0YWdOYW1lID0gYXJpYVByb3BlcnRpZXMuaGFzT3duUHJvcGVydHkodGFnTmFtZSkgPyB0YWdOYW1lIDogbnVsbDtcbiAgICAgICAgaWYgKG51bGwgPT0gdGFnTmFtZSlcbiAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgY29uc29sZS5lcnJvcihcbiAgICAgICAgICAgICAgXCJJbnZhbGlkIEFSSUEgYXR0cmlidXRlIGAlc2AuIEFSSUEgYXR0cmlidXRlcyBmb2xsb3cgdGhlIHBhdHRlcm4gYXJpYS0qIGFuZCBtdXN0IGJlIGxvd2VyY2FzZS5cIixcbiAgICAgICAgICAgICAgbmFtZVxuICAgICAgICAgICAgKSxcbiAgICAgICAgICAgICh3YXJuZWRQcm9wZXJ0aWVzJDFbbmFtZV0gPSAhMClcbiAgICAgICAgICApO1xuICAgICAgICBpZiAobmFtZSAhPT0gdGFnTmFtZSlcbiAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgY29uc29sZS5lcnJvcihcbiAgICAgICAgICAgICAgXCJJbnZhbGlkIEFSSUEgYXR0cmlidXRlIGAlc2AuIERpZCB5b3UgbWVhbiBgJXNgP1wiLFxuICAgICAgICAgICAgICBuYW1lLFxuICAgICAgICAgICAgICB0YWdOYW1lXG4gICAgICAgICAgICApLFxuICAgICAgICAgICAgKHdhcm5lZFByb3BlcnRpZXMkMVtuYW1lXSA9ICEwKVxuICAgICAgICAgICk7XG4gICAgICB9XG4gICAgICBpZiAockFSSUEkMS50ZXN0KG5hbWUpKSB7XG4gICAgICAgIHRhZ05hbWUgPSBuYW1lLnRvTG93ZXJDYXNlKCk7XG4gICAgICAgIHRhZ05hbWUgPSBhcmlhUHJvcGVydGllcy5oYXNPd25Qcm9wZXJ0eSh0YWdOYW1lKSA/IHRhZ05hbWUgOiBudWxsO1xuICAgICAgICBpZiAobnVsbCA9PSB0YWdOYW1lKSByZXR1cm4gKHdhcm5lZFByb3BlcnRpZXMkMVtuYW1lXSA9ICEwKSwgITE7XG4gICAgICAgIG5hbWUgIT09IHRhZ05hbWUgJiZcbiAgICAgICAgICAoY29uc29sZS5lcnJvcihcbiAgICAgICAgICAgIFwiVW5rbm93biBBUklBIGF0dHJpYnV0ZSBgJXNgLiBEaWQgeW91IG1lYW4gYCVzYD9cIixcbiAgICAgICAgICAgIG5hbWUsXG4gICAgICAgICAgICB0YWdOYW1lXG4gICAgICAgICAgKSxcbiAgICAgICAgICAod2FybmVkUHJvcGVydGllcyQxW25hbWVdID0gITApKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiAhMDtcbiAgICB9XG4gICAgZnVuY3Rpb24gdmFsaWRhdGVQcm9wZXJ0aWVzJDIodHlwZSwgcHJvcHMpIHtcbiAgICAgIHZhciBpbnZhbGlkUHJvcHMgPSBbXSxcbiAgICAgICAga2V5O1xuICAgICAgZm9yIChrZXkgaW4gcHJvcHMpXG4gICAgICAgIHZhbGlkYXRlUHJvcGVydHkkMSh0eXBlLCBrZXkpIHx8IGludmFsaWRQcm9wcy5wdXNoKGtleSk7XG4gICAgICBwcm9wcyA9IGludmFsaWRQcm9wc1xuICAgICAgICAubWFwKGZ1bmN0aW9uIChwcm9wKSB7XG4gICAgICAgICAgcmV0dXJuIFwiYFwiICsgcHJvcCArIFwiYFwiO1xuICAgICAgICB9KVxuICAgICAgICAuam9pbihcIiwgXCIpO1xuICAgICAgMSA9PT0gaW52YWxpZFByb3BzLmxlbmd0aFxuICAgICAgICA/IGNvbnNvbGUuZXJyb3IoXG4gICAgICAgICAgICBcIkludmFsaWQgYXJpYSBwcm9wICVzIG9uIDwlcz4gdGFnLiBGb3IgZGV0YWlscywgc2VlIGh0dHBzOi8vcmVhY3QuZGV2L2xpbmsvaW52YWxpZC1hcmlhLXByb3BzXCIsXG4gICAgICAgICAgICBwcm9wcyxcbiAgICAgICAgICAgIHR5cGVcbiAgICAgICAgICApXG4gICAgICAgIDogMSA8IGludmFsaWRQcm9wcy5sZW5ndGggJiZcbiAgICAgICAgICBjb25zb2xlLmVycm9yKFxuICAgICAgICAgICAgXCJJbnZhbGlkIGFyaWEgcHJvcHMgJXMgb24gPCVzPiB0YWcuIEZvciBkZXRhaWxzLCBzZWUgaHR0cHM6Ly9yZWFjdC5kZXYvbGluay9pbnZhbGlkLWFyaWEtcHJvcHNcIixcbiAgICAgICAgICAgIHByb3BzLFxuICAgICAgICAgICAgdHlwZVxuICAgICAgICAgICk7XG4gICAgfVxuICAgIGZ1bmN0aW9uIHZhbGlkYXRlUHJvcGVydHkodGFnTmFtZSwgbmFtZSwgdmFsdWUsIGV2ZW50UmVnaXN0cnkpIHtcbiAgICAgIGlmIChoYXNPd25Qcm9wZXJ0eS5jYWxsKHdhcm5lZFByb3BlcnRpZXMsIG5hbWUpICYmIHdhcm5lZFByb3BlcnRpZXNbbmFtZV0pXG4gICAgICAgIHJldHVybiAhMDtcbiAgICAgIHZhciBsb3dlckNhc2VkTmFtZSA9IG5hbWUudG9Mb3dlckNhc2UoKTtcbiAgICAgIGlmIChcIm9uZm9jdXNpblwiID09PSBsb3dlckNhc2VkTmFtZSB8fCBcIm9uZm9jdXNvdXRcIiA9PT0gbG93ZXJDYXNlZE5hbWUpXG4gICAgICAgIHJldHVybiAoXG4gICAgICAgICAgY29uc29sZS5lcnJvcihcbiAgICAgICAgICAgIFwiUmVhY3QgdXNlcyBvbkZvY3VzIGFuZCBvbkJsdXIgaW5zdGVhZCBvZiBvbkZvY3VzSW4gYW5kIG9uRm9jdXNPdXQuIEFsbCBSZWFjdCBldmVudHMgYXJlIG5vcm1hbGl6ZWQgdG8gYnViYmxlLCBzbyBvbkZvY3VzSW4gYW5kIG9uRm9jdXNPdXQgYXJlIG5vdCBuZWVkZWQvc3VwcG9ydGVkIGJ5IFJlYWN0LlwiXG4gICAgICAgICAgKSxcbiAgICAgICAgICAod2FybmVkUHJvcGVydGllc1tuYW1lXSA9ICEwKVxuICAgICAgICApO1xuICAgICAgaWYgKFxuICAgICAgICBcImZ1bmN0aW9uXCIgPT09IHR5cGVvZiB2YWx1ZSAmJlxuICAgICAgICAoKFwiZm9ybVwiID09PSB0YWdOYW1lICYmIFwiYWN0aW9uXCIgPT09IG5hbWUpIHx8XG4gICAgICAgICAgKFwiaW5wdXRcIiA9PT0gdGFnTmFtZSAmJiBcImZvcm1BY3Rpb25cIiA9PT0gbmFtZSkgfHxcbiAgICAgICAgICAoXCJidXR0b25cIiA9PT0gdGFnTmFtZSAmJiBcImZvcm1BY3Rpb25cIiA9PT0gbmFtZSkpXG4gICAgICApXG4gICAgICAgIHJldHVybiAhMDtcbiAgICAgIGlmIChudWxsICE9IGV2ZW50UmVnaXN0cnkpIHtcbiAgICAgICAgdGFnTmFtZSA9IGV2ZW50UmVnaXN0cnkucG9zc2libGVSZWdpc3RyYXRpb25OYW1lcztcbiAgICAgICAgaWYgKGV2ZW50UmVnaXN0cnkucmVnaXN0cmF0aW9uTmFtZURlcGVuZGVuY2llcy5oYXNPd25Qcm9wZXJ0eShuYW1lKSlcbiAgICAgICAgICByZXR1cm4gITA7XG4gICAgICAgIGV2ZW50UmVnaXN0cnkgPSB0YWdOYW1lLmhhc093blByb3BlcnR5KGxvd2VyQ2FzZWROYW1lKVxuICAgICAgICAgID8gdGFnTmFtZVtsb3dlckNhc2VkTmFtZV1cbiAgICAgICAgICA6IG51bGw7XG4gICAgICAgIGlmIChudWxsICE9IGV2ZW50UmVnaXN0cnkpXG4gICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoXG4gICAgICAgICAgICAgIFwiSW52YWxpZCBldmVudCBoYW5kbGVyIHByb3BlcnR5IGAlc2AuIERpZCB5b3UgbWVhbiBgJXNgP1wiLFxuICAgICAgICAgICAgICBuYW1lLFxuICAgICAgICAgICAgICBldmVudFJlZ2lzdHJ5XG4gICAgICAgICAgICApLFxuICAgICAgICAgICAgKHdhcm5lZFByb3BlcnRpZXNbbmFtZV0gPSAhMClcbiAgICAgICAgICApO1xuICAgICAgICBpZiAoRVZFTlRfTkFNRV9SRUdFWC50ZXN0KG5hbWUpKVxuICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICBjb25zb2xlLmVycm9yKFxuICAgICAgICAgICAgICBcIlVua25vd24gZXZlbnQgaGFuZGxlciBwcm9wZXJ0eSBgJXNgLiBJdCB3aWxsIGJlIGlnbm9yZWQuXCIsXG4gICAgICAgICAgICAgIG5hbWVcbiAgICAgICAgICAgICksXG4gICAgICAgICAgICAod2FybmVkUHJvcGVydGllc1tuYW1lXSA9ICEwKVxuICAgICAgICAgICk7XG4gICAgICB9IGVsc2UgaWYgKEVWRU5UX05BTUVfUkVHRVgudGVzdChuYW1lKSlcbiAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICBJTlZBTElEX0VWRU5UX05BTUVfUkVHRVgudGVzdChuYW1lKSAmJlxuICAgICAgICAgICAgY29uc29sZS5lcnJvcihcbiAgICAgICAgICAgICAgXCJJbnZhbGlkIGV2ZW50IGhhbmRsZXIgcHJvcGVydHkgYCVzYC4gUmVhY3QgZXZlbnRzIHVzZSB0aGUgY2FtZWxDYXNlIG5hbWluZyBjb252ZW50aW9uLCBmb3IgZXhhbXBsZSBgb25DbGlja2AuXCIsXG4gICAgICAgICAgICAgIG5hbWVcbiAgICAgICAgICAgICksXG4gICAgICAgICAgKHdhcm5lZFByb3BlcnRpZXNbbmFtZV0gPSAhMClcbiAgICAgICAgKTtcbiAgICAgIGlmIChyQVJJQS50ZXN0KG5hbWUpIHx8IHJBUklBQ2FtZWwudGVzdChuYW1lKSkgcmV0dXJuICEwO1xuICAgICAgaWYgKFwiaW5uZXJodG1sXCIgPT09IGxvd2VyQ2FzZWROYW1lKVxuICAgICAgICByZXR1cm4gKFxuICAgICAgICAgIGNvbnNvbGUuZXJyb3IoXG4gICAgICAgICAgICBcIkRpcmVjdGx5IHNldHRpbmcgcHJvcGVydHkgYGlubmVySFRNTGAgaXMgbm90IHBlcm1pdHRlZC4gRm9yIG1vcmUgaW5mb3JtYXRpb24sIGxvb2t1cCBkb2N1bWVudGF0aW9uIG9uIGBkYW5nZXJvdXNseVNldElubmVySFRNTGAuXCJcbiAgICAgICAgICApLFxuICAgICAgICAgICh3YXJuZWRQcm9wZXJ0aWVzW25hbWVdID0gITApXG4gICAgICAgICk7XG4gICAgICBpZiAoXCJhcmlhXCIgPT09IGxvd2VyQ2FzZWROYW1lKVxuICAgICAgICByZXR1cm4gKFxuICAgICAgICAgIGNvbnNvbGUuZXJyb3IoXG4gICAgICAgICAgICBcIlRoZSBgYXJpYWAgYXR0cmlidXRlIGlzIHJlc2VydmVkIGZvciBmdXR1cmUgdXNlIGluIFJlYWN0LiBQYXNzIGluZGl2aWR1YWwgYGFyaWEtYCBhdHRyaWJ1dGVzIGluc3RlYWQuXCJcbiAgICAgICAgICApLFxuICAgICAgICAgICh3YXJuZWRQcm9wZXJ0aWVzW25hbWVdID0gITApXG4gICAgICAgICk7XG4gICAgICBpZiAoXG4gICAgICAgIFwiaXNcIiA9PT0gbG93ZXJDYXNlZE5hbWUgJiZcbiAgICAgICAgbnVsbCAhPT0gdmFsdWUgJiZcbiAgICAgICAgdm9pZCAwICE9PSB2YWx1ZSAmJlxuICAgICAgICBcInN0cmluZ1wiICE9PSB0eXBlb2YgdmFsdWVcbiAgICAgIClcbiAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICBjb25zb2xlLmVycm9yKFxuICAgICAgICAgICAgXCJSZWNlaXZlZCBhIGAlc2AgZm9yIGEgc3RyaW5nIGF0dHJpYnV0ZSBgaXNgLiBJZiB0aGlzIGlzIGV4cGVjdGVkLCBjYXN0IHRoZSB2YWx1ZSB0byBhIHN0cmluZy5cIixcbiAgICAgICAgICAgIHR5cGVvZiB2YWx1ZVxuICAgICAgICAgICksXG4gICAgICAgICAgKHdhcm5lZFByb3BlcnRpZXNbbmFtZV0gPSAhMClcbiAgICAgICAgKTtcbiAgICAgIGlmIChcIm51bWJlclwiID09PSB0eXBlb2YgdmFsdWUgJiYgaXNOYU4odmFsdWUpKVxuICAgICAgICByZXR1cm4gKFxuICAgICAgICAgIGNvbnNvbGUuZXJyb3IoXG4gICAgICAgICAgICBcIlJlY2VpdmVkIE5hTiBmb3IgdGhlIGAlc2AgYXR0cmlidXRlLiBJZiB0aGlzIGlzIGV4cGVjdGVkLCBjYXN0IHRoZSB2YWx1ZSB0byBhIHN0cmluZy5cIixcbiAgICAgICAgICAgIG5hbWVcbiAgICAgICAgICApLFxuICAgICAgICAgICh3YXJuZWRQcm9wZXJ0aWVzW25hbWVdID0gITApXG4gICAgICAgICk7XG4gICAgICBpZiAocG9zc2libGVTdGFuZGFyZE5hbWVzLmhhc093blByb3BlcnR5KGxvd2VyQ2FzZWROYW1lKSkge1xuICAgICAgICBpZiAoXG4gICAgICAgICAgKChsb3dlckNhc2VkTmFtZSA9IHBvc3NpYmxlU3RhbmRhcmROYW1lc1tsb3dlckNhc2VkTmFtZV0pLFxuICAgICAgICAgIGxvd2VyQ2FzZWROYW1lICE9PSBuYW1lKVxuICAgICAgICApXG4gICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoXG4gICAgICAgICAgICAgIFwiSW52YWxpZCBET00gcHJvcGVydHkgYCVzYC4gRGlkIHlvdSBtZWFuIGAlc2A/XCIsXG4gICAgICAgICAgICAgIG5hbWUsXG4gICAgICAgICAgICAgIGxvd2VyQ2FzZWROYW1lXG4gICAgICAgICAgICApLFxuICAgICAgICAgICAgKHdhcm5lZFByb3BlcnRpZXNbbmFtZV0gPSAhMClcbiAgICAgICAgICApO1xuICAgICAgfSBlbHNlIGlmIChuYW1lICE9PSBsb3dlckNhc2VkTmFtZSlcbiAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICBjb25zb2xlLmVycm9yKFxuICAgICAgICAgICAgXCJSZWFjdCBkb2VzIG5vdCByZWNvZ25pemUgdGhlIGAlc2AgcHJvcCBvbiBhIERPTSBlbGVtZW50LiBJZiB5b3UgaW50ZW50aW9uYWxseSB3YW50IGl0IHRvIGFwcGVhciBpbiB0aGUgRE9NIGFzIGEgY3VzdG9tIGF0dHJpYnV0ZSwgc3BlbGwgaXQgYXMgbG93ZXJjYXNlIGAlc2AgaW5zdGVhZC4gSWYgeW91IGFjY2lkZW50YWxseSBwYXNzZWQgaXQgZnJvbSBhIHBhcmVudCBjb21wb25lbnQsIHJlbW92ZSBpdCBmcm9tIHRoZSBET00gZWxlbWVudC5cIixcbiAgICAgICAgICAgIG5hbWUsXG4gICAgICAgICAgICBsb3dlckNhc2VkTmFtZVxuICAgICAgICAgICksXG4gICAgICAgICAgKHdhcm5lZFByb3BlcnRpZXNbbmFtZV0gPSAhMClcbiAgICAgICAgKTtcbiAgICAgIHN3aXRjaCAobmFtZSkge1xuICAgICAgICBjYXNlIFwiZGFuZ2Vyb3VzbHlTZXRJbm5lckhUTUxcIjpcbiAgICAgICAgY2FzZSBcImNoaWxkcmVuXCI6XG4gICAgICAgIGNhc2UgXCJzdHlsZVwiOlxuICAgICAgICBjYXNlIFwic3VwcHJlc3NDb250ZW50RWRpdGFibGVXYXJuaW5nXCI6XG4gICAgICAgIGNhc2UgXCJzdXBwcmVzc0h5ZHJhdGlvbldhcm5pbmdcIjpcbiAgICAgICAgY2FzZSBcImRlZmF1bHRWYWx1ZVwiOlxuICAgICAgICBjYXNlIFwiZGVmYXVsdENoZWNrZWRcIjpcbiAgICAgICAgY2FzZSBcImlubmVySFRNTFwiOlxuICAgICAgICBjYXNlIFwicmVmXCI6XG4gICAgICAgICAgcmV0dXJuICEwO1xuICAgICAgICBjYXNlIFwiaW5uZXJUZXh0XCI6XG4gICAgICAgIGNhc2UgXCJ0ZXh0Q29udGVudFwiOlxuICAgICAgICAgIHJldHVybiAhMDtcbiAgICAgIH1cbiAgICAgIHN3aXRjaCAodHlwZW9mIHZhbHVlKSB7XG4gICAgICAgIGNhc2UgXCJib29sZWFuXCI6XG4gICAgICAgICAgc3dpdGNoIChuYW1lKSB7XG4gICAgICAgICAgICBjYXNlIFwiYXV0b0ZvY3VzXCI6XG4gICAgICAgICAgICBjYXNlIFwiY2hlY2tlZFwiOlxuICAgICAgICAgICAgY2FzZSBcIm11bHRpcGxlXCI6XG4gICAgICAgICAgICBjYXNlIFwibXV0ZWRcIjpcbiAgICAgICAgICAgIGNhc2UgXCJzZWxlY3RlZFwiOlxuICAgICAgICAgICAgY2FzZSBcImNvbnRlbnRFZGl0YWJsZVwiOlxuICAgICAgICAgICAgY2FzZSBcInNwZWxsQ2hlY2tcIjpcbiAgICAgICAgICAgIGNhc2UgXCJkcmFnZ2FibGVcIjpcbiAgICAgICAgICAgIGNhc2UgXCJ2YWx1ZVwiOlxuICAgICAgICAgICAgY2FzZSBcImF1dG9SZXZlcnNlXCI6XG4gICAgICAgICAgICBjYXNlIFwiZXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZFwiOlxuICAgICAgICAgICAgY2FzZSBcImZvY3VzYWJsZVwiOlxuICAgICAgICAgICAgY2FzZSBcInByZXNlcnZlQWxwaGFcIjpcbiAgICAgICAgICAgIGNhc2UgXCJhbGxvd0Z1bGxTY3JlZW5cIjpcbiAgICAgICAgICAgIGNhc2UgXCJhc3luY1wiOlxuICAgICAgICAgICAgY2FzZSBcImF1dG9QbGF5XCI6XG4gICAgICAgICAgICBjYXNlIFwiY29udHJvbHNcIjpcbiAgICAgICAgICAgIGNhc2UgXCJkZWZhdWx0XCI6XG4gICAgICAgICAgICBjYXNlIFwiZGVmZXJcIjpcbiAgICAgICAgICAgIGNhc2UgXCJkaXNhYmxlZFwiOlxuICAgICAgICAgICAgY2FzZSBcImRpc2FibGVQaWN0dXJlSW5QaWN0dXJlXCI6XG4gICAgICAgICAgICBjYXNlIFwiZGlzYWJsZVJlbW90ZVBsYXliYWNrXCI6XG4gICAgICAgICAgICBjYXNlIFwiZm9ybU5vVmFsaWRhdGVcIjpcbiAgICAgICAgICAgIGNhc2UgXCJoaWRkZW5cIjpcbiAgICAgICAgICAgIGNhc2UgXCJsb29wXCI6XG4gICAgICAgICAgICBjYXNlIFwibm9Nb2R1bGVcIjpcbiAgICAgICAgICAgIGNhc2UgXCJub1ZhbGlkYXRlXCI6XG4gICAgICAgICAgICBjYXNlIFwib3BlblwiOlxuICAgICAgICAgICAgY2FzZSBcInBsYXlzSW5saW5lXCI6XG4gICAgICAgICAgICBjYXNlIFwicmVhZE9ubHlcIjpcbiAgICAgICAgICAgIGNhc2UgXCJyZXF1aXJlZFwiOlxuICAgICAgICAgICAgY2FzZSBcInJldmVyc2VkXCI6XG4gICAgICAgICAgICBjYXNlIFwic2NvcGVkXCI6XG4gICAgICAgICAgICBjYXNlIFwic2VhbWxlc3NcIjpcbiAgICAgICAgICAgIGNhc2UgXCJpdGVtU2NvcGVcIjpcbiAgICAgICAgICAgIGNhc2UgXCJjYXB0dXJlXCI6XG4gICAgICAgICAgICBjYXNlIFwiZG93bmxvYWRcIjpcbiAgICAgICAgICAgIGNhc2UgXCJpbmVydFwiOlxuICAgICAgICAgICAgICByZXR1cm4gITA7XG4gICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICBsb3dlckNhc2VkTmFtZSA9IG5hbWUudG9Mb3dlckNhc2UoKS5zbGljZSgwLCA1KTtcbiAgICAgICAgICAgICAgaWYgKFwiZGF0YS1cIiA9PT0gbG93ZXJDYXNlZE5hbWUgfHwgXCJhcmlhLVwiID09PSBsb3dlckNhc2VkTmFtZSlcbiAgICAgICAgICAgICAgICByZXR1cm4gITA7XG4gICAgICAgICAgICAgIHZhbHVlXG4gICAgICAgICAgICAgICAgPyBjb25zb2xlLmVycm9yKFxuICAgICAgICAgICAgICAgICAgICAnUmVjZWl2ZWQgYCVzYCBmb3IgYSBub24tYm9vbGVhbiBhdHRyaWJ1dGUgYCVzYC5cXG5cXG5JZiB5b3Ugd2FudCB0byB3cml0ZSBpdCB0byB0aGUgRE9NLCBwYXNzIGEgc3RyaW5nIGluc3RlYWQ6ICVzPVwiJXNcIiBvciAlcz17dmFsdWUudG9TdHJpbmcoKX0uJyxcbiAgICAgICAgICAgICAgICAgICAgdmFsdWUsXG4gICAgICAgICAgICAgICAgICAgIG5hbWUsXG4gICAgICAgICAgICAgICAgICAgIG5hbWUsXG4gICAgICAgICAgICAgICAgICAgIHZhbHVlLFxuICAgICAgICAgICAgICAgICAgICBuYW1lXG4gICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgOiBjb25zb2xlLmVycm9yKFxuICAgICAgICAgICAgICAgICAgICAnUmVjZWl2ZWQgYCVzYCBmb3IgYSBub24tYm9vbGVhbiBhdHRyaWJ1dGUgYCVzYC5cXG5cXG5JZiB5b3Ugd2FudCB0byB3cml0ZSBpdCB0byB0aGUgRE9NLCBwYXNzIGEgc3RyaW5nIGluc3RlYWQ6ICVzPVwiJXNcIiBvciAlcz17dmFsdWUudG9TdHJpbmcoKX0uXFxuXFxuSWYgeW91IHVzZWQgdG8gY29uZGl0aW9uYWxseSBvbWl0IGl0IHdpdGggJXM9e2NvbmRpdGlvbiAmJiB2YWx1ZX0sIHBhc3MgJXM9e2NvbmRpdGlvbiA/IHZhbHVlIDogdW5kZWZpbmVkfSBpbnN0ZWFkLicsXG4gICAgICAgICAgICAgICAgICAgIHZhbHVlLFxuICAgICAgICAgICAgICAgICAgICBuYW1lLFxuICAgICAgICAgICAgICAgICAgICBuYW1lLFxuICAgICAgICAgICAgICAgICAgICB2YWx1ZSxcbiAgICAgICAgICAgICAgICAgICAgbmFtZSxcbiAgICAgICAgICAgICAgICAgICAgbmFtZSxcbiAgICAgICAgICAgICAgICAgICAgbmFtZVxuICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgcmV0dXJuICh3YXJuZWRQcm9wZXJ0aWVzW25hbWVdID0gITApO1xuICAgICAgICAgIH1cbiAgICAgICAgY2FzZSBcImZ1bmN0aW9uXCI6XG4gICAgICAgIGNhc2UgXCJzeW1ib2xcIjpcbiAgICAgICAgICByZXR1cm4gKHdhcm5lZFByb3BlcnRpZXNbbmFtZV0gPSAhMCksICExO1xuICAgICAgICBjYXNlIFwic3RyaW5nXCI6XG4gICAgICAgICAgaWYgKFwiZmFsc2VcIiA9PT0gdmFsdWUgfHwgXCJ0cnVlXCIgPT09IHZhbHVlKSB7XG4gICAgICAgICAgICBzd2l0Y2ggKG5hbWUpIHtcbiAgICAgICAgICAgICAgY2FzZSBcImNoZWNrZWRcIjpcbiAgICAgICAgICAgICAgY2FzZSBcInNlbGVjdGVkXCI6XG4gICAgICAgICAgICAgIGNhc2UgXCJtdWx0aXBsZVwiOlxuICAgICAgICAgICAgICBjYXNlIFwibXV0ZWRcIjpcbiAgICAgICAgICAgICAgY2FzZSBcImFsbG93RnVsbFNjcmVlblwiOlxuICAgICAgICAgICAgICBjYXNlIFwiYXN5bmNcIjpcbiAgICAgICAgICAgICAgY2FzZSBcImF1dG9QbGF5XCI6XG4gICAgICAgICAgICAgIGNhc2UgXCJjb250cm9sc1wiOlxuICAgICAgICAgICAgICBjYXNlIFwiZGVmYXVsdFwiOlxuICAgICAgICAgICAgICBjYXNlIFwiZGVmZXJcIjpcbiAgICAgICAgICAgICAgY2FzZSBcImRpc2FibGVkXCI6XG4gICAgICAgICAgICAgIGNhc2UgXCJkaXNhYmxlUGljdHVyZUluUGljdHVyZVwiOlxuICAgICAgICAgICAgICBjYXNlIFwiZGlzYWJsZVJlbW90ZVBsYXliYWNrXCI6XG4gICAgICAgICAgICAgIGNhc2UgXCJmb3JtTm9WYWxpZGF0ZVwiOlxuICAgICAgICAgICAgICBjYXNlIFwiaGlkZGVuXCI6XG4gICAgICAgICAgICAgIGNhc2UgXCJsb29wXCI6XG4gICAgICAgICAgICAgIGNhc2UgXCJub01vZHVsZVwiOlxuICAgICAgICAgICAgICBjYXNlIFwibm9WYWxpZGF0ZVwiOlxuICAgICAgICAgICAgICBjYXNlIFwib3BlblwiOlxuICAgICAgICAgICAgICBjYXNlIFwicGxheXNJbmxpbmVcIjpcbiAgICAgICAgICAgICAgY2FzZSBcInJlYWRPbmx5XCI6XG4gICAgICAgICAgICAgIGNhc2UgXCJyZXF1aXJlZFwiOlxuICAgICAgICAgICAgICBjYXNlIFwicmV2ZXJzZWRcIjpcbiAgICAgICAgICAgICAgY2FzZSBcInNjb3BlZFwiOlxuICAgICAgICAgICAgICBjYXNlIFwic2VhbWxlc3NcIjpcbiAgICAgICAgICAgICAgY2FzZSBcIml0ZW1TY29wZVwiOlxuICAgICAgICAgICAgICBjYXNlIFwiaW5lcnRcIjpcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICByZXR1cm4gITA7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjb25zb2xlLmVycm9yKFxuICAgICAgICAgICAgICBcIlJlY2VpdmVkIHRoZSBzdHJpbmcgYCVzYCBmb3IgdGhlIGJvb2xlYW4gYXR0cmlidXRlIGAlc2AuICVzIERpZCB5b3UgbWVhbiAlcz17JXN9P1wiLFxuICAgICAgICAgICAgICB2YWx1ZSxcbiAgICAgICAgICAgICAgbmFtZSxcbiAgICAgICAgICAgICAgXCJmYWxzZVwiID09PSB2YWx1ZVxuICAgICAgICAgICAgICAgID8gXCJUaGUgYnJvd3NlciB3aWxsIGludGVycHJldCBpdCBhcyBhIHRydXRoeSB2YWx1ZS5cIlxuICAgICAgICAgICAgICAgIDogJ0FsdGhvdWdoIHRoaXMgd29ya3MsIGl0IHdpbGwgbm90IHdvcmsgYXMgZXhwZWN0ZWQgaWYgeW91IHBhc3MgdGhlIHN0cmluZyBcImZhbHNlXCIuJyxcbiAgICAgICAgICAgICAgbmFtZSxcbiAgICAgICAgICAgICAgdmFsdWVcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgICB3YXJuZWRQcm9wZXJ0aWVzW25hbWVdID0gITA7XG4gICAgICAgICAgfVxuICAgICAgfVxuICAgICAgcmV0dXJuICEwO1xuICAgIH1cbiAgICBmdW5jdGlvbiB3YXJuVW5rbm93blByb3BlcnRpZXModHlwZSwgcHJvcHMsIGV2ZW50UmVnaXN0cnkpIHtcbiAgICAgIHZhciB1bmtub3duUHJvcHMgPSBbXSxcbiAgICAgICAga2V5O1xuICAgICAgZm9yIChrZXkgaW4gcHJvcHMpXG4gICAgICAgIHZhbGlkYXRlUHJvcGVydHkodHlwZSwga2V5LCBwcm9wc1trZXldLCBldmVudFJlZ2lzdHJ5KSB8fFxuICAgICAgICAgIHVua25vd25Qcm9wcy5wdXNoKGtleSk7XG4gICAgICBwcm9wcyA9IHVua25vd25Qcm9wc1xuICAgICAgICAubWFwKGZ1bmN0aW9uIChwcm9wKSB7XG4gICAgICAgICAgcmV0dXJuIFwiYFwiICsgcHJvcCArIFwiYFwiO1xuICAgICAgICB9KVxuICAgICAgICAuam9pbihcIiwgXCIpO1xuICAgICAgMSA9PT0gdW5rbm93blByb3BzLmxlbmd0aFxuICAgICAgICA/IGNvbnNvbGUuZXJyb3IoXG4gICAgICAgICAgICBcIkludmFsaWQgdmFsdWUgZm9yIHByb3AgJXMgb24gPCVzPiB0YWcuIEVpdGhlciByZW1vdmUgaXQgZnJvbSB0aGUgZWxlbWVudCwgb3IgcGFzcyBhIHN0cmluZyBvciBudW1iZXIgdmFsdWUgdG8ga2VlcCBpdCBpbiB0aGUgRE9NLiBGb3IgZGV0YWlscywgc2VlIGh0dHBzOi8vcmVhY3QuZGV2L2xpbmsvYXR0cmlidXRlLWJlaGF2aW9yIFwiLFxuICAgICAgICAgICAgcHJvcHMsXG4gICAgICAgICAgICB0eXBlXG4gICAgICAgICAgKVxuICAgICAgICA6IDEgPCB1bmtub3duUHJvcHMubGVuZ3RoICYmXG4gICAgICAgICAgY29uc29sZS5lcnJvcihcbiAgICAgICAgICAgIFwiSW52YWxpZCB2YWx1ZXMgZm9yIHByb3BzICVzIG9uIDwlcz4gdGFnLiBFaXRoZXIgcmVtb3ZlIHRoZW0gZnJvbSB0aGUgZWxlbWVudCwgb3IgcGFzcyBhIHN0cmluZyBvciBudW1iZXIgdmFsdWUgdG8ga2VlcCB0aGVtIGluIHRoZSBET00uIEZvciBkZXRhaWxzLCBzZWUgaHR0cHM6Ly9yZWFjdC5kZXYvbGluay9hdHRyaWJ1dGUtYmVoYXZpb3IgXCIsXG4gICAgICAgICAgICBwcm9wcyxcbiAgICAgICAgICAgIHR5cGVcbiAgICAgICAgICApO1xuICAgIH1cbiAgICBmdW5jdGlvbiBzYW5pdGl6ZVVSTCh1cmwpIHtcbiAgICAgIHJldHVybiBpc0phdmFTY3JpcHRQcm90b2NvbC50ZXN0KFwiXCIgKyB1cmwpXG4gICAgICAgID8gXCJqYXZhc2NyaXB0OnRocm93IG5ldyBFcnJvcignUmVhY3QgaGFzIGJsb2NrZWQgYSBqYXZhc2NyaXB0OiBVUkwgYXMgYSBzZWN1cml0eSBwcmVjYXV0aW9uLicpXCJcbiAgICAgICAgOiB1cmw7XG4gICAgfVxuICAgIGZ1bmN0aW9uIGdldEV2ZW50VGFyZ2V0KG5hdGl2ZUV2ZW50KSB7XG4gICAgICBuYXRpdmVFdmVudCA9IG5hdGl2ZUV2ZW50LnRhcmdldCB8fCBuYXRpdmVFdmVudC5zcmNFbGVtZW50IHx8IHdpbmRvdztcbiAgICAgIG5hdGl2ZUV2ZW50LmNvcnJlc3BvbmRpbmdVc2VFbGVtZW50ICYmXG4gICAgICAgIChuYXRpdmVFdmVudCA9IG5hdGl2ZUV2ZW50LmNvcnJlc3BvbmRpbmdVc2VFbGVtZW50KTtcbiAgICAgIHJldHVybiAzID09PSBuYXRpdmVFdmVudC5ub2RlVHlwZSA/IG5hdGl2ZUV2ZW50LnBhcmVudE5vZGUgOiBuYXRpdmVFdmVudDtcbiAgICB9XG4gICAgZnVuY3Rpb24gcmVzdG9yZVN0YXRlT2ZUYXJnZXQodGFyZ2V0KSB7XG4gICAgICB2YXIgaW50ZXJuYWxJbnN0YW5jZSA9IGdldEluc3RhbmNlRnJvbU5vZGUodGFyZ2V0KTtcbiAgICAgIGlmIChpbnRlcm5hbEluc3RhbmNlICYmICh0YXJnZXQgPSBpbnRlcm5hbEluc3RhbmNlLnN0YXRlTm9kZSkpIHtcbiAgICAgICAgdmFyIHByb3BzID0gdGFyZ2V0W2ludGVybmFsUHJvcHNLZXldIHx8IG51bGw7XG4gICAgICAgIGE6IHN3aXRjaCAoXG4gICAgICAgICAgKCh0YXJnZXQgPSBpbnRlcm5hbEluc3RhbmNlLnN0YXRlTm9kZSksIGludGVybmFsSW5zdGFuY2UudHlwZSlcbiAgICAgICAgKSB7XG4gICAgICAgICAgY2FzZSBcImlucHV0XCI6XG4gICAgICAgICAgICB1cGRhdGVJbnB1dChcbiAgICAgICAgICAgICAgdGFyZ2V0LFxuICAgICAgICAgICAgICBwcm9wcy52YWx1ZSxcbiAgICAgICAgICAgICAgcHJvcHMuZGVmYXVsdFZhbHVlLFxuICAgICAgICAgICAgICBwcm9wcy5kZWZhdWx0VmFsdWUsXG4gICAgICAgICAgICAgIHByb3BzLmNoZWNrZWQsXG4gICAgICAgICAgICAgIHByb3BzLmRlZmF1bHRDaGVja2VkLFxuICAgICAgICAgICAgICBwcm9wcy50eXBlLFxuICAgICAgICAgICAgICBwcm9wcy5uYW1lXG4gICAgICAgICAgICApO1xuICAgICAgICAgICAgaW50ZXJuYWxJbnN0YW5jZSA9IHByb3BzLm5hbWU7XG4gICAgICAgICAgICBpZiAoXCJyYWRpb1wiID09PSBwcm9wcy50eXBlICYmIG51bGwgIT0gaW50ZXJuYWxJbnN0YW5jZSkge1xuICAgICAgICAgICAgICBmb3IgKHByb3BzID0gdGFyZ2V0OyBwcm9wcy5wYXJlbnROb2RlOyApIHByb3BzID0gcHJvcHMucGFyZW50Tm9kZTtcbiAgICAgICAgICAgICAgY2hlY2tBdHRyaWJ1dGVTdHJpbmdDb2VyY2lvbihpbnRlcm5hbEluc3RhbmNlLCBcIm5hbWVcIik7XG4gICAgICAgICAgICAgIHByb3BzID0gcHJvcHMucXVlcnlTZWxlY3RvckFsbChcbiAgICAgICAgICAgICAgICAnaW5wdXRbbmFtZT1cIicgK1xuICAgICAgICAgICAgICAgICAgZXNjYXBlU2VsZWN0b3JBdHRyaWJ1dGVWYWx1ZUluc2lkZURvdWJsZVF1b3RlcyhcbiAgICAgICAgICAgICAgICAgICAgXCJcIiArIGludGVybmFsSW5zdGFuY2VcbiAgICAgICAgICAgICAgICAgICkgK1xuICAgICAgICAgICAgICAgICAgJ1wiXVt0eXBlPVwicmFkaW9cIl0nXG4gICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgIGZvciAoXG4gICAgICAgICAgICAgICAgaW50ZXJuYWxJbnN0YW5jZSA9IDA7XG4gICAgICAgICAgICAgICAgaW50ZXJuYWxJbnN0YW5jZSA8IHByb3BzLmxlbmd0aDtcbiAgICAgICAgICAgICAgICBpbnRlcm5hbEluc3RhbmNlKytcbiAgICAgICAgICAgICAgKSB7XG4gICAgICAgICAgICAgICAgdmFyIG90aGVyTm9kZSA9IHByb3BzW2ludGVybmFsSW5zdGFuY2VdO1xuICAgICAgICAgICAgICAgIGlmIChvdGhlck5vZGUgIT09IHRhcmdldCAmJiBvdGhlck5vZGUuZm9ybSA9PT0gdGFyZ2V0LmZvcm0pIHtcbiAgICAgICAgICAgICAgICAgIHZhciBvdGhlclByb3BzID0gb3RoZXJOb2RlW2ludGVybmFsUHJvcHNLZXldIHx8IG51bGw7XG4gICAgICAgICAgICAgICAgICBpZiAoIW90aGVyUHJvcHMpXG4gICAgICAgICAgICAgICAgICAgIHRocm93IEVycm9yKFxuICAgICAgICAgICAgICAgICAgICAgIFwiUmVhY3RET01JbnB1dDogTWl4aW5nIFJlYWN0IGFuZCBub24tUmVhY3QgcmFkaW8gaW5wdXRzIHdpdGggdGhlIHNhbWUgYG5hbWVgIGlzIG5vdCBzdXBwb3J0ZWQuXCJcbiAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICAgIHVwZGF0ZUlucHV0KFxuICAgICAgICAgICAgICAgICAgICBvdGhlck5vZGUsXG4gICAgICAgICAgICAgICAgICAgIG90aGVyUHJvcHMudmFsdWUsXG4gICAgICAgICAgICAgICAgICAgIG90aGVyUHJvcHMuZGVmYXVsdFZhbHVlLFxuICAgICAgICAgICAgICAgICAgICBvdGhlclByb3BzLmRlZmF1bHRWYWx1ZSxcbiAgICAgICAgICAgICAgICAgICAgb3RoZXJQcm9wcy5jaGVja2VkLFxuICAgICAgICAgICAgICAgICAgICBvdGhlclByb3BzLmRlZmF1bHRDaGVja2VkLFxuICAgICAgICAgICAgICAgICAgICBvdGhlclByb3BzLnR5cGUsXG4gICAgICAgICAgICAgICAgICAgIG90aGVyUHJvcHMubmFtZVxuICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgZm9yIChcbiAgICAgICAgICAgICAgICBpbnRlcm5hbEluc3RhbmNlID0gMDtcbiAgICAgICAgICAgICAgICBpbnRlcm5hbEluc3RhbmNlIDwgcHJvcHMubGVuZ3RoO1xuICAgICAgICAgICAgICAgIGludGVybmFsSW5zdGFuY2UrK1xuICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgKG90aGVyTm9kZSA9IHByb3BzW2ludGVybmFsSW5zdGFuY2VdKSxcbiAgICAgICAgICAgICAgICAgIG90aGVyTm9kZS5mb3JtID09PSB0YXJnZXQuZm9ybSAmJlxuICAgICAgICAgICAgICAgICAgICB1cGRhdGVWYWx1ZUlmQ2hhbmdlZChvdGhlck5vZGUpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgYnJlYWsgYTtcbiAgICAgICAgICBjYXNlIFwidGV4dGFyZWFcIjpcbiAgICAgICAgICAgIHVwZGF0ZVRleHRhcmVhKHRhcmdldCwgcHJvcHMudmFsdWUsIHByb3BzLmRlZmF1bHRWYWx1ZSk7XG4gICAgICAgICAgICBicmVhayBhO1xuICAgICAgICAgIGNhc2UgXCJzZWxlY3RcIjpcbiAgICAgICAgICAgIChpbnRlcm5hbEluc3RhbmNlID0gcHJvcHMudmFsdWUpLFxuICAgICAgICAgICAgICBudWxsICE9IGludGVybmFsSW5zdGFuY2UgJiZcbiAgICAgICAgICAgICAgICB1cGRhdGVPcHRpb25zKHRhcmdldCwgISFwcm9wcy5tdWx0aXBsZSwgaW50ZXJuYWxJbnN0YW5jZSwgITEpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgIGZ1bmN0aW9uIGJhdGNoZWRVcGRhdGVzJDEoZm4sIGEsIGIpIHtcbiAgICAgIGlmIChpc0luc2lkZUV2ZW50SGFuZGxlcikgcmV0dXJuIGZuKGEsIGIpO1xuICAgICAgaXNJbnNpZGVFdmVudEhhbmRsZXIgPSAhMDtcbiAgICAgIHRyeSB7XG4gICAgICAgIHZhciBKU0NvbXBpbGVyX2lubGluZV9yZXN1bHQgPSBmbihhKTtcbiAgICAgICAgcmV0dXJuIEpTQ29tcGlsZXJfaW5saW5lX3Jlc3VsdDtcbiAgICAgIH0gZmluYWxseSB7XG4gICAgICAgIGlmIChcbiAgICAgICAgICAoKGlzSW5zaWRlRXZlbnRIYW5kbGVyID0gITEpLFxuICAgICAgICAgIG51bGwgIT09IHJlc3RvcmVUYXJnZXQgfHwgbnVsbCAhPT0gcmVzdG9yZVF1ZXVlKVxuICAgICAgICApXG4gICAgICAgICAgaWYgKFxuICAgICAgICAgICAgKGZsdXNoU3luY1dvcmskMSgpLFxuICAgICAgICAgICAgcmVzdG9yZVRhcmdldCAmJlxuICAgICAgICAgICAgICAoKGEgPSByZXN0b3JlVGFyZ2V0KSxcbiAgICAgICAgICAgICAgKGZuID0gcmVzdG9yZVF1ZXVlKSxcbiAgICAgICAgICAgICAgKHJlc3RvcmVRdWV1ZSA9IHJlc3RvcmVUYXJnZXQgPSBudWxsKSxcbiAgICAgICAgICAgICAgcmVzdG9yZVN0YXRlT2ZUYXJnZXQoYSksXG4gICAgICAgICAgICAgIGZuKSlcbiAgICAgICAgICApXG4gICAgICAgICAgICBmb3IgKGEgPSAwOyBhIDwgZm4ubGVuZ3RoOyBhKyspIHJlc3RvcmVTdGF0ZU9mVGFyZ2V0KGZuW2FdKTtcbiAgICAgIH1cbiAgICB9XG4gICAgZnVuY3Rpb24gZ2V0TGlzdGVuZXIoaW5zdCwgcmVnaXN0cmF0aW9uTmFtZSkge1xuICAgICAgdmFyIHN0YXRlTm9kZSA9IGluc3Quc3RhdGVOb2RlO1xuICAgICAgaWYgKG51bGwgPT09IHN0YXRlTm9kZSkgcmV0dXJuIG51bGw7XG4gICAgICB2YXIgcHJvcHMgPSBzdGF0ZU5vZGVbaW50ZXJuYWxQcm9wc0tleV0gfHwgbnVsbDtcbiAgICAgIGlmIChudWxsID09PSBwcm9wcykgcmV0dXJuIG51bGw7XG4gICAgICBzdGF0ZU5vZGUgPSBwcm9wc1tyZWdpc3RyYXRpb25OYW1lXTtcbiAgICAgIGE6IHN3aXRjaCAocmVnaXN0cmF0aW9uTmFtZSkge1xuICAgICAgICBjYXNlIFwib25DbGlja1wiOlxuICAgICAgICBjYXNlIFwib25DbGlja0NhcHR1cmVcIjpcbiAgICAgICAgY2FzZSBcIm9uRG91YmxlQ2xpY2tcIjpcbiAgICAgICAgY2FzZSBcIm9uRG91YmxlQ2xpY2tDYXB0dXJlXCI6XG4gICAgICAgIGNhc2UgXCJvbk1vdXNlRG93blwiOlxuICAgICAgICBjYXNlIFwib25Nb3VzZURvd25DYXB0dXJlXCI6XG4gICAgICAgIGNhc2UgXCJvbk1vdXNlTW92ZVwiOlxuICAgICAgICBjYXNlIFwib25Nb3VzZU1vdmVDYXB0dXJlXCI6XG4gICAgICAgIGNhc2UgXCJvbk1vdXNlVXBcIjpcbiAgICAgICAgY2FzZSBcIm9uTW91c2VVcENhcHR1cmVcIjpcbiAgICAgICAgY2FzZSBcIm9uTW91c2VFbnRlclwiOlxuICAgICAgICAgIChwcm9wcyA9ICFwcm9wcy5kaXNhYmxlZCkgfHxcbiAgICAgICAgICAgICgoaW5zdCA9IGluc3QudHlwZSksXG4gICAgICAgICAgICAocHJvcHMgPSAhKFxuICAgICAgICAgICAgICBcImJ1dHRvblwiID09PSBpbnN0IHx8XG4gICAgICAgICAgICAgIFwiaW5wdXRcIiA9PT0gaW5zdCB8fFxuICAgICAgICAgICAgICBcInNlbGVjdFwiID09PSBpbnN0IHx8XG4gICAgICAgICAgICAgIFwidGV4dGFyZWFcIiA9PT0gaW5zdFxuICAgICAgICAgICAgKSkpO1xuICAgICAgICAgIGluc3QgPSAhcHJvcHM7XG4gICAgICAgICAgYnJlYWsgYTtcbiAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICBpbnN0ID0gITE7XG4gICAgICB9XG4gICAgICBpZiAoaW5zdCkgcmV0dXJuIG51bGw7XG4gICAgICBpZiAoc3RhdGVOb2RlICYmIFwiZnVuY3Rpb25cIiAhPT0gdHlwZW9mIHN0YXRlTm9kZSlcbiAgICAgICAgdGhyb3cgRXJyb3IoXG4gICAgICAgICAgXCJFeHBlY3RlZCBgXCIgK1xuICAgICAgICAgICAgcmVnaXN0cmF0aW9uTmFtZSArXG4gICAgICAgICAgICBcImAgbGlzdGVuZXIgdG8gYmUgYSBmdW5jdGlvbiwgaW5zdGVhZCBnb3QgYSB2YWx1ZSBvZiBgXCIgK1xuICAgICAgICAgICAgdHlwZW9mIHN0YXRlTm9kZSArXG4gICAgICAgICAgICBcImAgdHlwZS5cIlxuICAgICAgICApO1xuICAgICAgcmV0dXJuIHN0YXRlTm9kZTtcbiAgICB9XG4gICAgZnVuY3Rpb24gZ2V0RGF0YSgpIHtcbiAgICAgIGlmIChmYWxsYmFja1RleHQpIHJldHVybiBmYWxsYmFja1RleHQ7XG4gICAgICB2YXIgc3RhcnQsXG4gICAgICAgIHN0YXJ0VmFsdWUgPSBzdGFydFRleHQsXG4gICAgICAgIHN0YXJ0TGVuZ3RoID0gc3RhcnRWYWx1ZS5sZW5ndGgsXG4gICAgICAgIGVuZCxcbiAgICAgICAgZW5kVmFsdWUgPSBcInZhbHVlXCIgaW4gcm9vdCA/IHJvb3QudmFsdWUgOiByb290LnRleHRDb250ZW50LFxuICAgICAgICBlbmRMZW5ndGggPSBlbmRWYWx1ZS5sZW5ndGg7XG4gICAgICBmb3IgKFxuICAgICAgICBzdGFydCA9IDA7XG4gICAgICAgIHN0YXJ0IDwgc3RhcnRMZW5ndGggJiYgc3RhcnRWYWx1ZVtzdGFydF0gPT09IGVuZFZhbHVlW3N0YXJ0XTtcbiAgICAgICAgc3RhcnQrK1xuICAgICAgKTtcbiAgICAgIHZhciBtaW5FbmQgPSBzdGFydExlbmd0aCAtIHN0YXJ0O1xuICAgICAgZm9yIChcbiAgICAgICAgZW5kID0gMTtcbiAgICAgICAgZW5kIDw9IG1pbkVuZCAmJlxuICAgICAgICBzdGFydFZhbHVlW3N0YXJ0TGVuZ3RoIC0gZW5kXSA9PT0gZW5kVmFsdWVbZW5kTGVuZ3RoIC0gZW5kXTtcbiAgICAgICAgZW5kKytcbiAgICAgICk7XG4gICAgICByZXR1cm4gKGZhbGxiYWNrVGV4dCA9IGVuZFZhbHVlLnNsaWNlKHN0YXJ0LCAxIDwgZW5kID8gMSAtIGVuZCA6IHZvaWQgMCkpO1xuICAgIH1cbiAgICBmdW5jdGlvbiBnZXRFdmVudENoYXJDb2RlKG5hdGl2ZUV2ZW50KSB7XG4gICAgICB2YXIga2V5Q29kZSA9IG5hdGl2ZUV2ZW50LmtleUNvZGU7XG4gICAgICBcImNoYXJDb2RlXCIgaW4gbmF0aXZlRXZlbnRcbiAgICAgICAgPyAoKG5hdGl2ZUV2ZW50ID0gbmF0aXZlRXZlbnQuY2hhckNvZGUpLFxuICAgICAgICAgIDAgPT09IG5hdGl2ZUV2ZW50ICYmIDEzID09PSBrZXlDb2RlICYmIChuYXRpdmVFdmVudCA9IDEzKSlcbiAgICAgICAgOiAobmF0aXZlRXZlbnQgPSBrZXlDb2RlKTtcbiAgICAgIDEwID09PSBuYXRpdmVFdmVudCAmJiAobmF0aXZlRXZlbnQgPSAxMyk7XG4gICAgICByZXR1cm4gMzIgPD0gbmF0aXZlRXZlbnQgfHwgMTMgPT09IG5hdGl2ZUV2ZW50ID8gbmF0aXZlRXZlbnQgOiAwO1xuICAgIH1cbiAgICBmdW5jdGlvbiBmdW5jdGlvblRoYXRSZXR1cm5zVHJ1ZSgpIHtcbiAgICAgIHJldHVybiAhMDtcbiAgICB9XG4gICAgZnVuY3Rpb24gZnVuY3Rpb25UaGF0UmV0dXJuc0ZhbHNlKCkge1xuICAgICAgcmV0dXJuICExO1xuICAgIH1cbiAgICBmdW5jdGlvbiBjcmVhdGVTeW50aGV0aWNFdmVudChJbnRlcmZhY2UpIHtcbiAgICAgIGZ1bmN0aW9uIFN5bnRoZXRpY0Jhc2VFdmVudChcbiAgICAgICAgcmVhY3ROYW1lLFxuICAgICAgICByZWFjdEV2ZW50VHlwZSxcbiAgICAgICAgdGFyZ2V0SW5zdCxcbiAgICAgICAgbmF0aXZlRXZlbnQsXG4gICAgICAgIG5hdGl2ZUV2ZW50VGFyZ2V0XG4gICAgICApIHtcbiAgICAgICAgdGhpcy5fcmVhY3ROYW1lID0gcmVhY3ROYW1lO1xuICAgICAgICB0aGlzLl90YXJnZXRJbnN0ID0gdGFyZ2V0SW5zdDtcbiAgICAgICAgdGhpcy50eXBlID0gcmVhY3RFdmVudFR5cGU7XG4gICAgICAgIHRoaXMubmF0aXZlRXZlbnQgPSBuYXRpdmVFdmVudDtcbiAgICAgICAgdGhpcy50YXJnZXQgPSBuYXRpdmVFdmVudFRhcmdldDtcbiAgICAgICAgdGhpcy5jdXJyZW50VGFyZ2V0ID0gbnVsbDtcbiAgICAgICAgZm9yICh2YXIgcHJvcE5hbWUgaW4gSW50ZXJmYWNlKVxuICAgICAgICAgIEludGVyZmFjZS5oYXNPd25Qcm9wZXJ0eShwcm9wTmFtZSkgJiZcbiAgICAgICAgICAgICgocmVhY3ROYW1lID0gSW50ZXJmYWNlW3Byb3BOYW1lXSksXG4gICAgICAgICAgICAodGhpc1twcm9wTmFtZV0gPSByZWFjdE5hbWVcbiAgICAgICAgICAgICAgPyByZWFjdE5hbWUobmF0aXZlRXZlbnQpXG4gICAgICAgICAgICAgIDogbmF0aXZlRXZlbnRbcHJvcE5hbWVdKSk7XG4gICAgICAgIHRoaXMuaXNEZWZhdWx0UHJldmVudGVkID0gKFxuICAgICAgICAgIG51bGwgIT0gbmF0aXZlRXZlbnQuZGVmYXVsdFByZXZlbnRlZFxuICAgICAgICAgICAgPyBuYXRpdmVFdmVudC5kZWZhdWx0UHJldmVudGVkXG4gICAgICAgICAgICA6ICExID09PSBuYXRpdmVFdmVudC5yZXR1cm5WYWx1ZVxuICAgICAgICApXG4gICAgICAgICAgPyBmdW5jdGlvblRoYXRSZXR1cm5zVHJ1ZVxuICAgICAgICAgIDogZnVuY3Rpb25UaGF0UmV0dXJuc0ZhbHNlO1xuICAgICAgICB0aGlzLmlzUHJvcGFnYXRpb25TdG9wcGVkID0gZnVuY3Rpb25UaGF0UmV0dXJuc0ZhbHNlO1xuICAgICAgICByZXR1cm4gdGhpcztcbiAgICAgIH1cbiAgICAgIGFzc2lnbihTeW50aGV0aWNCYXNlRXZlbnQucHJvdG90eXBlLCB7XG4gICAgICAgIHByZXZlbnREZWZhdWx0OiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgdGhpcy5kZWZhdWx0UHJldmVudGVkID0gITA7XG4gICAgICAgICAgdmFyIGV2ZW50ID0gdGhpcy5uYXRpdmVFdmVudDtcbiAgICAgICAgICBldmVudCAmJlxuICAgICAgICAgICAgKGV2ZW50LnByZXZlbnREZWZhdWx0XG4gICAgICAgICAgICAgID8gZXZlbnQucHJldmVudERlZmF1bHQoKVxuICAgICAgICAgICAgICA6IFwidW5rbm93blwiICE9PSB0eXBlb2YgZXZlbnQucmV0dXJuVmFsdWUgJiZcbiAgICAgICAgICAgICAgICAoZXZlbnQucmV0dXJuVmFsdWUgPSAhMSksXG4gICAgICAgICAgICAodGhpcy5pc0RlZmF1bHRQcmV2ZW50ZWQgPSBmdW5jdGlvblRoYXRSZXR1cm5zVHJ1ZSkpO1xuICAgICAgICB9LFxuICAgICAgICBzdG9wUHJvcGFnYXRpb246IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICB2YXIgZXZlbnQgPSB0aGlzLm5hdGl2ZUV2ZW50O1xuICAgICAgICAgIGV2ZW50ICYmXG4gICAgICAgICAgICAoZXZlbnQuc3RvcFByb3BhZ2F0aW9uXG4gICAgICAgICAgICAgID8gZXZlbnQuc3RvcFByb3BhZ2F0aW9uKClcbiAgICAgICAgICAgICAgOiBcInVua25vd25cIiAhPT0gdHlwZW9mIGV2ZW50LmNhbmNlbEJ1YmJsZSAmJlxuICAgICAgICAgICAgICAgIChldmVudC5jYW5jZWxCdWJibGUgPSAhMCksXG4gICAgICAgICAgICAodGhpcy5pc1Byb3BhZ2F0aW9uU3RvcHBlZCA9IGZ1bmN0aW9uVGhhdFJldHVybnNUcnVlKSk7XG4gICAgICAgIH0sXG4gICAgICAgIHBlcnNpc3Q6IGZ1bmN0aW9uICgpIHt9LFxuICAgICAgICBpc1BlcnNpc3RlbnQ6IGZ1bmN0aW9uVGhhdFJldHVybnNUcnVlXG4gICAgICB9KTtcbiAgICAgIHJldHVybiBTeW50aGV0aWNCYXNlRXZlbnQ7XG4gICAgfVxuICAgIGZ1bmN0aW9uIG1vZGlmaWVyU3RhdGVHZXR0ZXIoa2V5QXJnKSB7XG4gICAgICB2YXIgbmF0aXZlRXZlbnQgPSB0aGlzLm5hdGl2ZUV2ZW50O1xuICAgICAgcmV0dXJuIG5hdGl2ZUV2ZW50LmdldE1vZGlmaWVyU3RhdGVcbiAgICAgICAgPyBuYXRpdmVFdmVudC5nZXRNb2RpZmllclN0YXRlKGtleUFyZylcbiAgICAgICAgOiAoa2V5QXJnID0gbW9kaWZpZXJLZXlUb1Byb3Bba2V5QXJnXSlcbiAgICAgICAgICA/ICEhbmF0aXZlRXZlbnRba2V5QXJnXVxuICAgICAgICAgIDogITE7XG4gICAgfVxuICAgIGZ1bmN0aW9uIGdldEV2ZW50TW9kaWZpZXJTdGF0ZSgpIHtcbiAgICAgIHJldHVybiBtb2RpZmllclN0YXRlR2V0dGVyO1xuICAgIH1cbiAgICBmdW5jdGlvbiBpc0ZhbGxiYWNrQ29tcG9zaXRpb25FbmQoZG9tRXZlbnROYW1lLCBuYXRpdmVFdmVudCkge1xuICAgICAgc3dpdGNoIChkb21FdmVudE5hbWUpIHtcbiAgICAgICAgY2FzZSBcImtleXVwXCI6XG4gICAgICAgICAgcmV0dXJuIC0xICE9PSBFTkRfS0VZQ09ERVMuaW5kZXhPZihuYXRpdmVFdmVudC5rZXlDb2RlKTtcbiAgICAgICAgY2FzZSBcImtleWRvd25cIjpcbiAgICAgICAgICByZXR1cm4gbmF0aXZlRXZlbnQua2V5Q29kZSAhPT0gU1RBUlRfS0VZQ09ERTtcbiAgICAgICAgY2FzZSBcImtleXByZXNzXCI6XG4gICAgICAgIGNhc2UgXCJtb3VzZWRvd25cIjpcbiAgICAgICAgY2FzZSBcImZvY3Vzb3V0XCI6XG4gICAgICAgICAgcmV0dXJuICEwO1xuICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgIHJldHVybiAhMTtcbiAgICAgIH1cbiAgICB9XG4gICAgZnVuY3Rpb24gZ2V0RGF0YUZyb21DdXN0b21FdmVudChuYXRpdmVFdmVudCkge1xuICAgICAgbmF0aXZlRXZlbnQgPSBuYXRpdmVFdmVudC5kZXRhaWw7XG4gICAgICByZXR1cm4gXCJvYmplY3RcIiA9PT0gdHlwZW9mIG5hdGl2ZUV2ZW50ICYmIFwiZGF0YVwiIGluIG5hdGl2ZUV2ZW50XG4gICAgICAgID8gbmF0aXZlRXZlbnQuZGF0YVxuICAgICAgICA6IG51bGw7XG4gICAgfVxuICAgIGZ1bmN0aW9uIGdldE5hdGl2ZUJlZm9yZUlucHV0Q2hhcnMoZG9tRXZlbnROYW1lLCBuYXRpdmVFdmVudCkge1xuICAgICAgc3dpdGNoIChkb21FdmVudE5hbWUpIHtcbiAgICAgICAgY2FzZSBcImNvbXBvc2l0aW9uZW5kXCI6XG4gICAgICAgICAgcmV0dXJuIGdldERhdGFGcm9tQ3VzdG9tRXZlbnQobmF0aXZlRXZlbnQpO1xuICAgICAgICBjYXNlIFwia2V5cHJlc3NcIjpcbiAgICAgICAgICBpZiAobmF0aXZlRXZlbnQud2hpY2ggIT09IFNQQUNFQkFSX0NPREUpIHJldHVybiBudWxsO1xuICAgICAgICAgIGhhc1NwYWNlS2V5cHJlc3MgPSAhMDtcbiAgICAgICAgICByZXR1cm4gU1BBQ0VCQVJfQ0hBUjtcbiAgICAgICAgY2FzZSBcInRleHRJbnB1dFwiOlxuICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAoZG9tRXZlbnROYW1lID0gbmF0aXZlRXZlbnQuZGF0YSksXG4gICAgICAgICAgICBkb21FdmVudE5hbWUgPT09IFNQQUNFQkFSX0NIQVIgJiYgaGFzU3BhY2VLZXlwcmVzc1xuICAgICAgICAgICAgICA/IG51bGxcbiAgICAgICAgICAgICAgOiBkb21FdmVudE5hbWVcbiAgICAgICAgICApO1xuICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgfVxuICAgIH1cbiAgICBmdW5jdGlvbiBnZXRGYWxsYmFja0JlZm9yZUlucHV0Q2hhcnMoZG9tRXZlbnROYW1lLCBuYXRpdmVFdmVudCkge1xuICAgICAgaWYgKGlzQ29tcG9zaW5nKVxuICAgICAgICByZXR1cm4gXCJjb21wb3NpdGlvbmVuZFwiID09PSBkb21FdmVudE5hbWUgfHxcbiAgICAgICAgICAoIWNhblVzZUNvbXBvc2l0aW9uRXZlbnQgJiZcbiAgICAgICAgICAgIGlzRmFsbGJhY2tDb21wb3NpdGlvbkVuZChkb21FdmVudE5hbWUsIG5hdGl2ZUV2ZW50KSlcbiAgICAgICAgICA/ICgoZG9tRXZlbnROYW1lID0gZ2V0RGF0YSgpKSxcbiAgICAgICAgICAgIChmYWxsYmFja1RleHQgPSBzdGFydFRleHQgPSByb290ID0gbnVsbCksXG4gICAgICAgICAgICAoaXNDb21wb3NpbmcgPSAhMSksXG4gICAgICAgICAgICBkb21FdmVudE5hbWUpXG4gICAgICAgICAgOiBudWxsO1xuICAgICAgc3dpdGNoIChkb21FdmVudE5hbWUpIHtcbiAgICAgICAgY2FzZSBcInBhc3RlXCI6XG4gICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgIGNhc2UgXCJrZXlwcmVzc1wiOlxuICAgICAgICAgIGlmIChcbiAgICAgICAgICAgICEoXG4gICAgICAgICAgICAgIG5hdGl2ZUV2ZW50LmN0cmxLZXkgfHxcbiAgICAgICAgICAgICAgbmF0aXZlRXZlbnQuYWx0S2V5IHx8XG4gICAgICAgICAgICAgIG5hdGl2ZUV2ZW50Lm1ldGFLZXlcbiAgICAgICAgICAgICkgfHxcbiAgICAgICAgICAgIChuYXRpdmVFdmVudC5jdHJsS2V5ICYmIG5hdGl2ZUV2ZW50LmFsdEtleSlcbiAgICAgICAgICApIHtcbiAgICAgICAgICAgIGlmIChuYXRpdmVFdmVudC5jaGFyICYmIDEgPCBuYXRpdmVFdmVudC5jaGFyLmxlbmd0aClcbiAgICAgICAgICAgICAgcmV0dXJuIG5hdGl2ZUV2ZW50LmNoYXI7XG4gICAgICAgICAgICBpZiAobmF0aXZlRXZlbnQud2hpY2gpXG4gICAgICAgICAgICAgIHJldHVybiBTdHJpbmcuZnJvbUNoYXJDb2RlKG5hdGl2ZUV2ZW50LndoaWNoKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgIGNhc2UgXCJjb21wb3NpdGlvbmVuZFwiOlxuICAgICAgICAgIHJldHVybiB1c2VGYWxsYmFja0NvbXBvc2l0aW9uRGF0YSAmJiBcImtvXCIgIT09IG5hdGl2ZUV2ZW50LmxvY2FsZVxuICAgICAgICAgICAgPyBudWxsXG4gICAgICAgICAgICA6IG5hdGl2ZUV2ZW50LmRhdGE7XG4gICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICB9XG4gICAgfVxuICAgIGZ1bmN0aW9uIGlzVGV4dElucHV0RWxlbWVudChlbGVtKSB7XG4gICAgICB2YXIgbm9kZU5hbWUgPSBlbGVtICYmIGVsZW0ubm9kZU5hbWUgJiYgZWxlbS5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpO1xuICAgICAgcmV0dXJuIFwiaW5wdXRcIiA9PT0gbm9kZU5hbWVcbiAgICAgICAgPyAhIXN1cHBvcnRlZElucHV0VHlwZXNbZWxlbS50eXBlXVxuICAgICAgICA6IFwidGV4dGFyZWFcIiA9PT0gbm9kZU5hbWVcbiAgICAgICAgICA/ICEwXG4gICAgICAgICAgOiAhMTtcbiAgICB9XG4gICAgZnVuY3Rpb24gaXNFdmVudFN1cHBvcnRlZChldmVudE5hbWVTdWZmaXgpIHtcbiAgICAgIGlmICghY2FuVXNlRE9NKSByZXR1cm4gITE7XG4gICAgICBldmVudE5hbWVTdWZmaXggPSBcIm9uXCIgKyBldmVudE5hbWVTdWZmaXg7XG4gICAgICB2YXIgaXNTdXBwb3J0ZWQgPSBldmVudE5hbWVTdWZmaXggaW4gZG9jdW1lbnQ7XG4gICAgICBpc1N1cHBvcnRlZCB8fFxuICAgICAgICAoKGlzU3VwcG9ydGVkID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudChcImRpdlwiKSksXG4gICAgICAgIGlzU3VwcG9ydGVkLnNldEF0dHJpYnV0ZShldmVudE5hbWVTdWZmaXgsIFwicmV0dXJuO1wiKSxcbiAgICAgICAgKGlzU3VwcG9ydGVkID0gXCJmdW5jdGlvblwiID09PSB0eXBlb2YgaXNTdXBwb3J0ZWRbZXZlbnROYW1lU3VmZml4XSkpO1xuICAgICAgcmV0dXJuIGlzU3VwcG9ydGVkO1xuICAgIH1cbiAgICBmdW5jdGlvbiBjcmVhdGVBbmRBY2N1bXVsYXRlQ2hhbmdlRXZlbnQoXG4gICAgICBkaXNwYXRjaFF1ZXVlLFxuICAgICAgaW5zdCxcbiAgICAgIG5hdGl2ZUV2ZW50LFxuICAgICAgdGFyZ2V0XG4gICAgKSB7XG4gICAgICByZXN0b3JlVGFyZ2V0XG4gICAgICAgID8gcmVzdG9yZVF1ZXVlXG4gICAgICAgICAgPyByZXN0b3JlUXVldWUucHVzaCh0YXJnZXQpXG4gICAgICAgICAgOiAocmVzdG9yZVF1ZXVlID0gW3RhcmdldF0pXG4gICAgICAgIDogKHJlc3RvcmVUYXJnZXQgPSB0YXJnZXQpO1xuICAgICAgaW5zdCA9IGFjY3VtdWxhdGVUd29QaGFzZUxpc3RlbmVycyhpbnN0LCBcIm9uQ2hhbmdlXCIpO1xuICAgICAgMCA8IGluc3QubGVuZ3RoICYmXG4gICAgICAgICgobmF0aXZlRXZlbnQgPSBuZXcgU3ludGhldGljRXZlbnQoXG4gICAgICAgICAgXCJvbkNoYW5nZVwiLFxuICAgICAgICAgIFwiY2hhbmdlXCIsXG4gICAgICAgICAgbnVsbCxcbiAgICAgICAgICBuYXRpdmVFdmVudCxcbiAgICAgICAgICB0YXJnZXRcbiAgICAgICAgKSksXG4gICAgICAgIGRpc3BhdGNoUXVldWUucHVzaCh7IGV2ZW50OiBuYXRpdmVFdmVudCwgbGlzdGVuZXJzOiBpbnN0IH0pKTtcbiAgICB9XG4gICAgZnVuY3Rpb24gcnVuRXZlbnRJbkJhdGNoKGRpc3BhdGNoUXVldWUpIHtcbiAgICAgIHByb2Nlc3NEaXNwYXRjaFF1ZXVlKGRpc3BhdGNoUXVldWUsIDApO1xuICAgIH1cbiAgICBmdW5jdGlvbiBnZXRJbnN0SWZWYWx1ZUNoYW5nZWQodGFyZ2V0SW5zdCkge1xuICAgICAgdmFyIHRhcmdldE5vZGUgPSBnZXROb2RlRnJvbUluc3RhbmNlKHRhcmdldEluc3QpO1xuICAgICAgaWYgKHVwZGF0ZVZhbHVlSWZDaGFuZ2VkKHRhcmdldE5vZGUpKSByZXR1cm4gdGFyZ2V0SW5zdDtcbiAgICB9XG4gICAgZnVuY3Rpb24gZ2V0VGFyZ2V0SW5zdEZvckNoYW5nZUV2ZW50KGRvbUV2ZW50TmFtZSwgdGFyZ2V0SW5zdCkge1xuICAgICAgaWYgKFwiY2hhbmdlXCIgPT09IGRvbUV2ZW50TmFtZSkgcmV0dXJuIHRhcmdldEluc3Q7XG4gICAgfVxuICAgIGZ1bmN0aW9uIHN0b3BXYXRjaGluZ0ZvclZhbHVlQ2hhbmdlKCkge1xuICAgICAgYWN0aXZlRWxlbWVudCQxICYmXG4gICAgICAgIChhY3RpdmVFbGVtZW50JDEuZGV0YWNoRXZlbnQoXCJvbnByb3BlcnR5Y2hhbmdlXCIsIGhhbmRsZVByb3BlcnR5Q2hhbmdlKSxcbiAgICAgICAgKGFjdGl2ZUVsZW1lbnRJbnN0JDEgPSBhY3RpdmVFbGVtZW50JDEgPSBudWxsKSk7XG4gICAgfVxuICAgIGZ1bmN0aW9uIGhhbmRsZVByb3BlcnR5Q2hhbmdlKG5hdGl2ZUV2ZW50KSB7XG4gICAgICBpZiAoXG4gICAgICAgIFwidmFsdWVcIiA9PT0gbmF0aXZlRXZlbnQucHJvcGVydHlOYW1lICYmXG4gICAgICAgIGdldEluc3RJZlZhbHVlQ2hhbmdlZChhY3RpdmVFbGVtZW50SW5zdCQxKVxuICAgICAgKSB7XG4gICAgICAgIHZhciBkaXNwYXRjaFF1ZXVlID0gW107XG4gICAgICAgIGNyZWF0ZUFuZEFjY3VtdWxhdGVDaGFuZ2VFdmVudChcbiAgICAgICAgICBkaXNwYXRjaFF1ZXVlLFxuICAgICAgICAgIGFjdGl2ZUVsZW1lbnRJbnN0JDEsXG4gICAgICAgICAgbmF0aXZlRXZlbnQsXG4gICAgICAgICAgZ2V0RXZlbnRUYXJnZXQobmF0aXZlRXZlbnQpXG4gICAgICAgICk7XG4gICAgICAgIGJhdGNoZWRVcGRhdGVzJDEocnVuRXZlbnRJbkJhdGNoLCBkaXNwYXRjaFF1ZXVlKTtcbiAgICAgIH1cbiAgICB9XG4gICAgZnVuY3Rpb24gaGFuZGxlRXZlbnRzRm9ySW5wdXRFdmVudFBvbHlmaWxsKFxuICAgICAgZG9tRXZlbnROYW1lLFxuICAgICAgdGFyZ2V0LFxuICAgICAgdGFyZ2V0SW5zdFxuICAgICkge1xuICAgICAgXCJmb2N1c2luXCIgPT09IGRvbUV2ZW50TmFtZVxuICAgICAgICA/IChzdG9wV2F0Y2hpbmdGb3JWYWx1ZUNoYW5nZSgpLFxuICAgICAgICAgIChhY3RpdmVFbGVtZW50JDEgPSB0YXJnZXQpLFxuICAgICAgICAgIChhY3RpdmVFbGVtZW50SW5zdCQxID0gdGFyZ2V0SW5zdCksXG4gICAgICAgICAgYWN0aXZlRWxlbWVudCQxLmF0dGFjaEV2ZW50KFwib25wcm9wZXJ0eWNoYW5nZVwiLCBoYW5kbGVQcm9wZXJ0eUNoYW5nZSkpXG4gICAgICAgIDogXCJmb2N1c291dFwiID09PSBkb21FdmVudE5hbWUgJiYgc3RvcFdhdGNoaW5nRm9yVmFsdWVDaGFuZ2UoKTtcbiAgICB9XG4gICAgZnVuY3Rpb24gZ2V0VGFyZ2V0SW5zdEZvcklucHV0RXZlbnRQb2x5ZmlsbChkb21FdmVudE5hbWUpIHtcbiAgICAgIGlmIChcbiAgICAgICAgXCJzZWxlY3Rpb25jaGFuZ2VcIiA9PT0gZG9tRXZlbnROYW1lIHx8XG4gICAgICAgIFwia2V5dXBcIiA9PT0gZG9tRXZlbnROYW1lIHx8XG4gICAgICAgIFwia2V5ZG93blwiID09PSBkb21FdmVudE5hbWVcbiAgICAgIClcbiAgICAgICAgcmV0dXJuIGdldEluc3RJZlZhbHVlQ2hhbmdlZChhY3RpdmVFbGVtZW50SW5zdCQxKTtcbiAgICB9XG4gICAgZnVuY3Rpb24gZ2V0VGFyZ2V0SW5zdEZvckNsaWNrRXZlbnQoZG9tRXZlbnROYW1lLCB0YXJnZXRJbnN0KSB7XG4gICAgICBpZiAoXCJjbGlja1wiID09PSBkb21FdmVudE5hbWUpIHJldHVybiBnZXRJbnN0SWZWYWx1ZUNoYW5nZWQodGFyZ2V0SW5zdCk7XG4gICAgfVxuICAgIGZ1bmN0aW9uIGdldFRhcmdldEluc3RGb3JJbnB1dE9yQ2hhbmdlRXZlbnQoZG9tRXZlbnROYW1lLCB0YXJnZXRJbnN0KSB7XG4gICAgICBpZiAoXCJpbnB1dFwiID09PSBkb21FdmVudE5hbWUgfHwgXCJjaGFuZ2VcIiA9PT0gZG9tRXZlbnROYW1lKVxuICAgICAgICByZXR1cm4gZ2V0SW5zdElmVmFsdWVDaGFuZ2VkKHRhcmdldEluc3QpO1xuICAgIH1cbiAgICBmdW5jdGlvbiBpcyh4LCB5KSB7XG4gICAgICByZXR1cm4gKHggPT09IHkgJiYgKDAgIT09IHggfHwgMSAvIHggPT09IDEgLyB5KSkgfHwgKHggIT09IHggJiYgeSAhPT0geSk7XG4gICAgfVxuICAgIGZ1bmN0aW9uIHNoYWxsb3dFcXVhbChvYmpBLCBvYmpCKSB7XG4gICAgICBpZiAob2JqZWN0SXMob2JqQSwgb2JqQikpIHJldHVybiAhMDtcbiAgICAgIGlmIChcbiAgICAgICAgXCJvYmplY3RcIiAhPT0gdHlwZW9mIG9iakEgfHxcbiAgICAgICAgbnVsbCA9PT0gb2JqQSB8fFxuICAgICAgICBcIm9iamVjdFwiICE9PSB0eXBlb2Ygb2JqQiB8fFxuICAgICAgICBudWxsID09PSBvYmpCXG4gICAgICApXG4gICAgICAgIHJldHVybiAhMTtcbiAgICAgIHZhciBrZXlzQSA9IE9iamVjdC5rZXlzKG9iakEpLFxuICAgICAgICBrZXlzQiA9IE9iamVjdC5rZXlzKG9iakIpO1xuICAgICAgaWYgKGtleXNBLmxlbmd0aCAhPT0ga2V5c0IubGVuZ3RoKSByZXR1cm4gITE7XG4gICAgICBmb3IgKGtleXNCID0gMDsga2V5c0IgPCBrZXlzQS5sZW5ndGg7IGtleXNCKyspIHtcbiAgICAgICAgdmFyIGN1cnJlbnRLZXkgPSBrZXlzQVtrZXlzQl07XG4gICAgICAgIGlmIChcbiAgICAgICAgICAhaGFzT3duUHJvcGVydHkuY2FsbChvYmpCLCBjdXJyZW50S2V5KSB8fFxuICAgICAgICAgICFvYmplY3RJcyhvYmpBW2N1cnJlbnRLZXldLCBvYmpCW2N1cnJlbnRLZXldKVxuICAgICAgICApXG4gICAgICAgICAgcmV0dXJuICExO1xuICAgICAgfVxuICAgICAgcmV0dXJuICEwO1xuICAgIH1cbiAgICBmdW5jdGlvbiBnZXRMZWFmTm9kZShub2RlKSB7XG4gICAgICBmb3IgKDsgbm9kZSAmJiBub2RlLmZpcnN0Q2hpbGQ7ICkgbm9kZSA9IG5vZGUuZmlyc3RDaGlsZDtcbiAgICAgIHJldHVybiBub2RlO1xuICAgIH1cbiAgICBmdW5jdGlvbiBnZXROb2RlRm9yQ2hhcmFjdGVyT2Zmc2V0KHJvb3QsIG9mZnNldCkge1xuICAgICAgdmFyIG5vZGUgPSBnZXRMZWFmTm9kZShyb290KTtcbiAgICAgIHJvb3QgPSAwO1xuICAgICAgZm9yICh2YXIgbm9kZUVuZDsgbm9kZTsgKSB7XG4gICAgICAgIGlmICgzID09PSBub2RlLm5vZGVUeXBlKSB7XG4gICAgICAgICAgbm9kZUVuZCA9IHJvb3QgKyBub2RlLnRleHRDb250ZW50Lmxlbmd0aDtcbiAgICAgICAgICBpZiAocm9vdCA8PSBvZmZzZXQgJiYgbm9kZUVuZCA+PSBvZmZzZXQpXG4gICAgICAgICAgICByZXR1cm4geyBub2RlOiBub2RlLCBvZmZzZXQ6IG9mZnNldCAtIHJvb3QgfTtcbiAgICAgICAgICByb290ID0gbm9kZUVuZDtcbiAgICAgICAgfVxuICAgICAgICBhOiB7XG4gICAgICAgICAgZm9yICg7IG5vZGU7ICkge1xuICAgICAgICAgICAgaWYgKG5vZGUubmV4dFNpYmxpbmcpIHtcbiAgICAgICAgICAgICAgbm9kZSA9IG5vZGUubmV4dFNpYmxpbmc7XG4gICAgICAgICAgICAgIGJyZWFrIGE7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBub2RlID0gbm9kZS5wYXJlbnROb2RlO1xuICAgICAgICAgIH1cbiAgICAgICAgICBub2RlID0gdm9pZCAwO1xuICAgICAgICB9XG4gICAgICAgIG5vZGUgPSBnZXRMZWFmTm9kZShub2RlKTtcbiAgICAgIH1cbiAgICB9XG4gICAgZnVuY3Rpb24gY29udGFpbnNOb2RlKG91dGVyTm9kZSwgaW5uZXJOb2RlKSB7XG4gICAgICByZXR1cm4gb3V0ZXJOb2RlICYmIGlubmVyTm9kZVxuICAgICAgICA/IG91dGVyTm9kZSA9PT0gaW5uZXJOb2RlXG4gICAgICAgICAgPyAhMFxuICAgICAgICAgIDogb3V0ZXJOb2RlICYmIDMgPT09IG91dGVyTm9kZS5ub2RlVHlwZVxuICAgICAgICAgICAgPyAhMVxuICAgICAgICAgICAgOiBpbm5lck5vZGUgJiYgMyA9PT0gaW5uZXJOb2RlLm5vZGVUeXBlXG4gICAgICAgICAgICAgID8gY29udGFpbnNOb2RlKG91dGVyTm9kZSwgaW5uZXJOb2RlLnBhcmVudE5vZGUpXG4gICAgICAgICAgICAgIDogXCJjb250YWluc1wiIGluIG91dGVyTm9kZVxuICAgICAgICAgICAgICAgID8gb3V0ZXJOb2RlLmNvbnRhaW5zKGlubmVyTm9kZSlcbiAgICAgICAgICAgICAgICA6IG91dGVyTm9kZS5jb21wYXJlRG9jdW1lbnRQb3NpdGlvblxuICAgICAgICAgICAgICAgICAgPyAhIShvdXRlck5vZGUuY29tcGFyZURvY3VtZW50UG9zaXRpb24oaW5uZXJOb2RlKSAmIDE2KVxuICAgICAgICAgICAgICAgICAgOiAhMVxuICAgICAgICA6ICExO1xuICAgIH1cbiAgICBmdW5jdGlvbiBnZXRBY3RpdmVFbGVtZW50RGVlcChjb250YWluZXJJbmZvKSB7XG4gICAgICBjb250YWluZXJJbmZvID1cbiAgICAgICAgbnVsbCAhPSBjb250YWluZXJJbmZvICYmXG4gICAgICAgIG51bGwgIT0gY29udGFpbmVySW5mby5vd25lckRvY3VtZW50ICYmXG4gICAgICAgIG51bGwgIT0gY29udGFpbmVySW5mby5vd25lckRvY3VtZW50LmRlZmF1bHRWaWV3XG4gICAgICAgICAgPyBjb250YWluZXJJbmZvLm93bmVyRG9jdW1lbnQuZGVmYXVsdFZpZXdcbiAgICAgICAgICA6IHdpbmRvdztcbiAgICAgIGZvciAoXG4gICAgICAgIHZhciBlbGVtZW50ID0gZ2V0QWN0aXZlRWxlbWVudChjb250YWluZXJJbmZvLmRvY3VtZW50KTtcbiAgICAgICAgZWxlbWVudCBpbnN0YW5jZW9mIGNvbnRhaW5lckluZm8uSFRNTElGcmFtZUVsZW1lbnQ7XG5cbiAgICAgICkge1xuICAgICAgICB0cnkge1xuICAgICAgICAgIHZhciBKU0NvbXBpbGVyX2lubGluZV9yZXN1bHQgPVxuICAgICAgICAgICAgXCJzdHJpbmdcIiA9PT0gdHlwZW9mIGVsZW1lbnQuY29udGVudFdpbmRvdy5sb2NhdGlvbi5ocmVmO1xuICAgICAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgICAgICBKU0NvbXBpbGVyX2lubGluZV9yZXN1bHQgPSAhMTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoSlNDb21waWxlcl9pbmxpbmVfcmVzdWx0KSBjb250YWluZXJJbmZvID0gZWxlbWVudC5jb250ZW50V2luZG93O1xuICAgICAgICBlbHNlIGJyZWFrO1xuICAgICAgICBlbGVtZW50ID0gZ2V0QWN0aXZlRWxlbWVudChjb250YWluZXJJbmZvLmRvY3VtZW50KTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBlbGVtZW50O1xuICAgIH1cbiAgICBmdW5jdGlvbiBoYXNTZWxlY3Rpb25DYXBhYmlsaXRpZXMoZWxlbSkge1xuICAgICAgdmFyIG5vZGVOYW1lID0gZWxlbSAmJiBlbGVtLm5vZGVOYW1lICYmIGVsZW0ubm9kZU5hbWUudG9Mb3dlckNhc2UoKTtcbiAgICAgIHJldHVybiAoXG4gICAgICAgIG5vZGVOYW1lICYmXG4gICAgICAgICgoXCJpbnB1dFwiID09PSBub2RlTmFtZSAmJlxuICAgICAgICAgIChcInRleHRcIiA9PT0gZWxlbS50eXBlIHx8XG4gICAgICAgICAgICBcInNlYXJjaFwiID09PSBlbGVtLnR5cGUgfHxcbiAgICAgICAgICAgIFwidGVsXCIgPT09IGVsZW0udHlwZSB8fFxuICAgICAgICAgICAgXCJ1cmxcIiA9PT0gZWxlbS50eXBlIHx8XG4gICAgICAgICAgICBcInBhc3N3b3JkXCIgPT09IGVsZW0udHlwZSkpIHx8XG4gICAgICAgICAgXCJ0ZXh0YXJlYVwiID09PSBub2RlTmFtZSB8fFxuICAgICAgICAgIFwidHJ1ZVwiID09PSBlbGVtLmNvbnRlbnRFZGl0YWJsZSlcbiAgICAgICk7XG4gICAgfVxuICAgIGZ1bmN0aW9uIGNvbnN0cnVjdFNlbGVjdEV2ZW50KFxuICAgICAgZGlzcGF0Y2hRdWV1ZSxcbiAgICAgIG5hdGl2ZUV2ZW50LFxuICAgICAgbmF0aXZlRXZlbnRUYXJnZXRcbiAgICApIHtcbiAgICAgIHZhciBkb2MgPVxuICAgICAgICBuYXRpdmVFdmVudFRhcmdldC53aW5kb3cgPT09IG5hdGl2ZUV2ZW50VGFyZ2V0XG4gICAgICAgICAgPyBuYXRpdmVFdmVudFRhcmdldC5kb2N1bWVudFxuICAgICAgICAgIDogOSA9PT0gbmF0aXZlRXZlbnRUYXJnZXQubm9kZVR5cGVcbiAgICAgICAgICAgID8gbmF0aXZlRXZlbnRUYXJnZXRcbiAgICAgICAgICAgIDogbmF0aXZlRXZlbnRUYXJnZXQub3duZXJEb2N1bWVudDtcbiAgICAgIG1vdXNlRG93biB8fFxuICAgICAgICBudWxsID09IGFjdGl2ZUVsZW1lbnQgfHxcbiAgICAgICAgYWN0aXZlRWxlbWVudCAhPT0gZ2V0QWN0aXZlRWxlbWVudChkb2MpIHx8XG4gICAgICAgICgoZG9jID0gYWN0aXZlRWxlbWVudCksXG4gICAgICAgIFwic2VsZWN0aW9uU3RhcnRcIiBpbiBkb2MgJiYgaGFzU2VsZWN0aW9uQ2FwYWJpbGl0aWVzKGRvYylcbiAgICAgICAgICA/IChkb2MgPSB7IHN0YXJ0OiBkb2Muc2VsZWN0aW9uU3RhcnQsIGVuZDogZG9jLnNlbGVjdGlvbkVuZCB9KVxuICAgICAgICAgIDogKChkb2MgPSAoXG4gICAgICAgICAgICAgIChkb2Mub3duZXJEb2N1bWVudCAmJiBkb2Mub3duZXJEb2N1bWVudC5kZWZhdWx0VmlldykgfHxcbiAgICAgICAgICAgICAgd2luZG93XG4gICAgICAgICAgICApLmdldFNlbGVjdGlvbigpKSxcbiAgICAgICAgICAgIChkb2MgPSB7XG4gICAgICAgICAgICAgIGFuY2hvck5vZGU6IGRvYy5hbmNob3JOb2RlLFxuICAgICAgICAgICAgICBhbmNob3JPZmZzZXQ6IGRvYy5hbmNob3JPZmZzZXQsXG4gICAgICAgICAgICAgIGZvY3VzTm9kZTogZG9jLmZvY3VzTm9kZSxcbiAgICAgICAgICAgICAgZm9jdXNPZmZzZXQ6IGRvYy5mb2N1c09mZnNldFxuICAgICAgICAgICAgfSkpLFxuICAgICAgICAobGFzdFNlbGVjdGlvbiAmJiBzaGFsbG93RXF1YWwobGFzdFNlbGVjdGlvbiwgZG9jKSkgfHxcbiAgICAgICAgICAoKGxhc3RTZWxlY3Rpb24gPSBkb2MpLFxuICAgICAgICAgIChkb2MgPSBhY2N1bXVsYXRlVHdvUGhhc2VMaXN0ZW5lcnMoYWN0aXZlRWxlbWVudEluc3QsIFwib25TZWxlY3RcIikpLFxuICAgICAgICAgIDAgPCBkb2MubGVuZ3RoICYmXG4gICAgICAgICAgICAoKG5hdGl2ZUV2ZW50ID0gbmV3IFN5bnRoZXRpY0V2ZW50KFxuICAgICAgICAgICAgICBcIm9uU2VsZWN0XCIsXG4gICAgICAgICAgICAgIFwic2VsZWN0XCIsXG4gICAgICAgICAgICAgIG51bGwsXG4gICAgICAgICAgICAgIG5hdGl2ZUV2ZW50LFxuICAgICAgICAgICAgICBuYXRpdmVFdmVudFRhcmdldFxuICAgICAgICAgICAgKSksXG4gICAgICAgICAgICBkaXNwYXRjaFF1ZXVlLnB1c2goeyBldmVudDogbmF0aXZlRXZlbnQsIGxpc3RlbmVyczogZG9jIH0pLFxuICAgICAgICAgICAgKG5hdGl2ZUV2ZW50LnRhcmdldCA9IGFjdGl2ZUVsZW1lbnQpKSkpO1xuICAgIH1cbiAgICBmdW5jdGlvbiBtYWtlUHJlZml4TWFwKHN0eWxlUHJvcCwgZXZlbnROYW1lKSB7XG4gICAgICB2YXIgcHJlZml4ZXMgPSB7fTtcbiAgICAgIHByZWZpeGVzW3N0eWxlUHJvcC50b0xvd2VyQ2FzZSgpXSA9IGV2ZW50TmFtZS50b0xvd2VyQ2FzZSgpO1xuICAgICAgcHJlZml4ZXNbXCJXZWJraXRcIiArIHN0eWxlUHJvcF0gPSBcIndlYmtpdFwiICsgZXZlbnROYW1lO1xuICAgICAgcHJlZml4ZXNbXCJNb3pcIiArIHN0eWxlUHJvcF0gPSBcIm1velwiICsgZXZlbnROYW1lO1xuICAgICAgcmV0dXJuIHByZWZpeGVzO1xuICAgIH1cbiAgICBmdW5jdGlvbiBnZXRWZW5kb3JQcmVmaXhlZEV2ZW50TmFtZShldmVudE5hbWUpIHtcbiAgICAgIGlmIChwcmVmaXhlZEV2ZW50TmFtZXNbZXZlbnROYW1lXSkgcmV0dXJuIHByZWZpeGVkRXZlbnROYW1lc1tldmVudE5hbWVdO1xuICAgICAgaWYgKCF2ZW5kb3JQcmVmaXhlc1tldmVudE5hbWVdKSByZXR1cm4gZXZlbnROYW1lO1xuICAgICAgdmFyIHByZWZpeE1hcCA9IHZlbmRvclByZWZpeGVzW2V2ZW50TmFtZV0sXG4gICAgICAgIHN0eWxlUHJvcDtcbiAgICAgIGZvciAoc3R5bGVQcm9wIGluIHByZWZpeE1hcClcbiAgICAgICAgaWYgKHByZWZpeE1hcC5oYXNPd25Qcm9wZXJ0eShzdHlsZVByb3ApICYmIHN0eWxlUHJvcCBpbiBzdHlsZSlcbiAgICAgICAgICByZXR1cm4gKHByZWZpeGVkRXZlbnROYW1lc1tldmVudE5hbWVdID0gcHJlZml4TWFwW3N0eWxlUHJvcF0pO1xuICAgICAgcmV0dXJuIGV2ZW50TmFtZTtcbiAgICB9XG4gICAgZnVuY3Rpb24gcmVnaXN0ZXJTaW1wbGVFdmVudChkb21FdmVudE5hbWUsIHJlYWN0TmFtZSkge1xuICAgICAgdG9wTGV2ZWxFdmVudHNUb1JlYWN0TmFtZXMuc2V0KGRvbUV2ZW50TmFtZSwgcmVhY3ROYW1lKTtcbiAgICAgIHJlZ2lzdGVyVHdvUGhhc2VFdmVudChyZWFjdE5hbWUsIFtkb21FdmVudE5hbWVdKTtcbiAgICB9XG4gICAgZnVuY3Rpb24gY3JlYXRlQ2FwdHVyZWRWYWx1ZUF0RmliZXIodmFsdWUsIHNvdXJjZSkge1xuICAgICAgaWYgKFwib2JqZWN0XCIgPT09IHR5cGVvZiB2YWx1ZSAmJiBudWxsICE9PSB2YWx1ZSkge1xuICAgICAgICB2YXIgZXhpc3RpbmcgPSBDYXB0dXJlZFN0YWNrcy5nZXQodmFsdWUpO1xuICAgICAgICBpZiAodm9pZCAwICE9PSBleGlzdGluZykgcmV0dXJuIGV4aXN0aW5nO1xuICAgICAgICBzb3VyY2UgPSB7XG4gICAgICAgICAgdmFsdWU6IHZhbHVlLFxuICAgICAgICAgIHNvdXJjZTogc291cmNlLFxuICAgICAgICAgIHN0YWNrOiBnZXRTdGFja0J5RmliZXJJbkRldkFuZFByb2Qoc291cmNlKVxuICAgICAgICB9O1xuICAgICAgICBDYXB0dXJlZFN0YWNrcy5zZXQodmFsdWUsIHNvdXJjZSk7XG4gICAgICAgIHJldHVybiBzb3VyY2U7XG4gICAgICB9XG4gICAgICByZXR1cm4ge1xuICAgICAgICB2YWx1ZTogdmFsdWUsXG4gICAgICAgIHNvdXJjZTogc291cmNlLFxuICAgICAgICBzdGFjazogZ2V0U3RhY2tCeUZpYmVySW5EZXZBbmRQcm9kKHNvdXJjZSlcbiAgICAgIH07XG4gICAgfVxuICAgIGZ1bmN0aW9uIGZpbmlzaFF1ZXVlaW5nQ29uY3VycmVudFVwZGF0ZXMoKSB7XG4gICAgICBmb3IgKFxuICAgICAgICB2YXIgZW5kSW5kZXggPSBjb25jdXJyZW50UXVldWVzSW5kZXgsXG4gICAgICAgICAgaSA9IChjb25jdXJyZW50bHlVcGRhdGVkTGFuZXMgPSBjb25jdXJyZW50UXVldWVzSW5kZXggPSAwKTtcbiAgICAgICAgaSA8IGVuZEluZGV4O1xuXG4gICAgICApIHtcbiAgICAgICAgdmFyIGZpYmVyID0gY29uY3VycmVudFF1ZXVlc1tpXTtcbiAgICAgICAgY29uY3VycmVudFF1ZXVlc1tpKytdID0gbnVsbDtcbiAgICAgICAgdmFyIHF1ZXVlID0gY29uY3VycmVudFF1ZXVlc1tpXTtcbiAgICAgICAgY29uY3VycmVudFF1ZXVlc1tpKytdID0gbnVsbDtcbiAgICAgICAgdmFyIHVwZGF0ZSA9IGNvbmN1cnJlbnRRdWV1ZXNbaV07XG4gICAgICAgIGNvbmN1cnJlbnRRdWV1ZXNbaSsrXSA9IG51bGw7XG4gICAgICAgIHZhciBsYW5lID0gY29uY3VycmVudFF1ZXVlc1tpXTtcbiAgICAgICAgY29uY3VycmVudFF1ZXVlc1tpKytdID0gbnVsbDtcbiAgICAgICAgaWYgKG51bGwgIT09IHF1ZXVlICYmIG51bGwgIT09IHVwZGF0ZSkge1xuICAgICAgICAgIHZhciBwZW5kaW5nID0gcXVldWUucGVuZGluZztcbiAgICAgICAgICBudWxsID09PSBwZW5kaW5nXG4gICAgICAgICAgICA/ICh1cGRhdGUubmV4dCA9IHVwZGF0ZSlcbiAgICAgICAgICAgIDogKCh1cGRhdGUubmV4dCA9IHBlbmRpbmcubmV4dCksIChwZW5kaW5nLm5leHQgPSB1cGRhdGUpKTtcbiAgICAgICAgICBxdWV1ZS5wZW5kaW5nID0gdXBkYXRlO1xuICAgICAgICB9XG4gICAgICAgIDAgIT09IGxhbmUgJiYgbWFya1VwZGF0ZUxhbmVGcm9tRmliZXJUb1Jvb3QoZmliZXIsIHVwZGF0ZSwgbGFuZSk7XG4gICAgICB9XG4gICAgfVxuICAgIGZ1bmN0aW9uIGVucXVldWVVcGRhdGUkMShmaWJlciwgcXVldWUsIHVwZGF0ZSwgbGFuZSkge1xuICAgICAgY29uY3VycmVudFF1ZXVlc1tjb25jdXJyZW50UXVldWVzSW5kZXgrK10gPSBmaWJlcjtcbiAgICAgIGNvbmN1cnJlbnRRdWV1ZXNbY29uY3VycmVudFF1ZXVlc0luZGV4KytdID0gcXVldWU7XG4gICAgICBjb25jdXJyZW50UXVldWVzW2NvbmN1cnJlbnRRdWV1ZXNJbmRleCsrXSA9IHVwZGF0ZTtcbiAgICAgIGNvbmN1cnJlbnRRdWV1ZXNbY29uY3VycmVudFF1ZXVlc0luZGV4KytdID0gbGFuZTtcbiAgICAgIGNvbmN1cnJlbnRseVVwZGF0ZWRMYW5lcyB8PSBsYW5lO1xuICAgICAgZmliZXIubGFuZXMgfD0gbGFuZTtcbiAgICAgIGZpYmVyID0gZmliZXIuYWx0ZXJuYXRlO1xuICAgICAgbnVsbCAhPT0gZmliZXIgJiYgKGZpYmVyLmxhbmVzIHw9IGxhbmUpO1xuICAgIH1cbiAgICBmdW5jdGlvbiBlbnF1ZXVlQ29uY3VycmVudEhvb2tVcGRhdGUoZmliZXIsIHF1ZXVlLCB1cGRhdGUsIGxhbmUpIHtcbiAgICAgIGVucXVldWVVcGRhdGUkMShmaWJlciwgcXVldWUsIHVwZGF0ZSwgbGFuZSk7XG4gICAgICByZXR1cm4gZ2V0Um9vdEZvclVwZGF0ZWRGaWJlcihmaWJlcik7XG4gICAgfVxuICAgIGZ1bmN0aW9uIGVucXVldWVDb25jdXJyZW50UmVuZGVyRm9yTGFuZShmaWJlciwgbGFuZSkge1xuICAgICAgZW5xdWV1ZVVwZGF0ZSQxKGZpYmVyLCBudWxsLCBudWxsLCBsYW5lKTtcbiAgICAgIHJldHVybiBnZXRSb290Rm9yVXBkYXRlZEZpYmVyKGZpYmVyKTtcbiAgICB9XG4gICAgZnVuY3Rpb24gbWFya1VwZGF0ZUxhbmVGcm9tRmliZXJUb1Jvb3Qoc291cmNlRmliZXIsIHVwZGF0ZSwgbGFuZSkge1xuICAgICAgc291cmNlRmliZXIubGFuZXMgfD0gbGFuZTtcbiAgICAgIHZhciBhbHRlcm5hdGUgPSBzb3VyY2VGaWJlci5hbHRlcm5hdGU7XG4gICAgICBudWxsICE9PSBhbHRlcm5hdGUgJiYgKGFsdGVybmF0ZS5sYW5lcyB8PSBsYW5lKTtcbiAgICAgIGZvciAodmFyIGlzSGlkZGVuID0gITEsIHBhcmVudCA9IHNvdXJjZUZpYmVyLnJldHVybjsgbnVsbCAhPT0gcGFyZW50OyApXG4gICAgICAgIChwYXJlbnQuY2hpbGRMYW5lcyB8PSBsYW5lKSxcbiAgICAgICAgICAoYWx0ZXJuYXRlID0gcGFyZW50LmFsdGVybmF0ZSksXG4gICAgICAgICAgbnVsbCAhPT0gYWx0ZXJuYXRlICYmIChhbHRlcm5hdGUuY2hpbGRMYW5lcyB8PSBsYW5lKSxcbiAgICAgICAgICAyMiA9PT0gcGFyZW50LnRhZyAmJlxuICAgICAgICAgICAgKChzb3VyY2VGaWJlciA9IHBhcmVudC5zdGF0ZU5vZGUpLFxuICAgICAgICAgICAgbnVsbCA9PT0gc291cmNlRmliZXIgfHxcbiAgICAgICAgICAgICAgc291cmNlRmliZXIuX3Zpc2liaWxpdHkgJiBPZmZzY3JlZW5WaXNpYmxlIHx8XG4gICAgICAgICAgICAgIChpc0hpZGRlbiA9ICEwKSksXG4gICAgICAgICAgKHNvdXJjZUZpYmVyID0gcGFyZW50KSxcbiAgICAgICAgICAocGFyZW50ID0gcGFyZW50LnJldHVybik7XG4gICAgICByZXR1cm4gMyA9PT0gc291cmNlRmliZXIudGFnXG4gICAgICAgID8gKChwYXJlbnQgPSBzb3VyY2VGaWJlci5zdGF0ZU5vZGUpLFxuICAgICAgICAgIGlzSGlkZGVuICYmXG4gICAgICAgICAgICBudWxsICE9PSB1cGRhdGUgJiZcbiAgICAgICAgICAgICgoaXNIaWRkZW4gPSAzMSAtIGNsejMyKGxhbmUpKSxcbiAgICAgICAgICAgIChzb3VyY2VGaWJlciA9IHBhcmVudC5oaWRkZW5VcGRhdGVzKSxcbiAgICAgICAgICAgIChhbHRlcm5hdGUgPSBzb3VyY2VGaWJlcltpc0hpZGRlbl0pLFxuICAgICAgICAgICAgbnVsbCA9PT0gYWx0ZXJuYXRlXG4gICAgICAgICAgICAgID8gKHNvdXJjZUZpYmVyW2lzSGlkZGVuXSA9IFt1cGRhdGVdKVxuICAgICAgICAgICAgICA6IGFsdGVybmF0ZS5wdXNoKHVwZGF0ZSksXG4gICAgICAgICAgICAodXBkYXRlLmxhbmUgPSBsYW5lIHwgNTM2ODcwOTEyKSksXG4gICAgICAgICAgcGFyZW50KVxuICAgICAgICA6IG51bGw7XG4gICAgfVxuICAgIGZ1bmN0aW9uIGdldFJvb3RGb3JVcGRhdGVkRmliZXIoc291cmNlRmliZXIpIHtcbiAgICAgIGlmIChuZXN0ZWRVcGRhdGVDb3VudCA+IE5FU1RFRF9VUERBVEVfTElNSVQpXG4gICAgICAgIHRocm93IChcbiAgICAgICAgICAoKG5lc3RlZFBhc3NpdmVVcGRhdGVDb3VudCA9IG5lc3RlZFVwZGF0ZUNvdW50ID0gMCksXG4gICAgICAgICAgKHJvb3RXaXRoUGFzc2l2ZU5lc3RlZFVwZGF0ZXMgPSByb290V2l0aE5lc3RlZFVwZGF0ZXMgPSBudWxsKSxcbiAgICAgICAgICBFcnJvcihcbiAgICAgICAgICAgIFwiTWF4aW11bSB1cGRhdGUgZGVwdGggZXhjZWVkZWQuIFRoaXMgY2FuIGhhcHBlbiB3aGVuIGEgY29tcG9uZW50IHJlcGVhdGVkbHkgY2FsbHMgc2V0U3RhdGUgaW5zaWRlIGNvbXBvbmVudFdpbGxVcGRhdGUgb3IgY29tcG9uZW50RGlkVXBkYXRlLiBSZWFjdCBsaW1pdHMgdGhlIG51bWJlciBvZiBuZXN0ZWQgdXBkYXRlcyB0byBwcmV2ZW50IGluZmluaXRlIGxvb3BzLlwiXG4gICAgICAgICAgKSlcbiAgICAgICAgKTtcbiAgICAgIG5lc3RlZFBhc3NpdmVVcGRhdGVDb3VudCA+IE5FU1RFRF9QQVNTSVZFX1VQREFURV9MSU1JVCAmJlxuICAgICAgICAoKG5lc3RlZFBhc3NpdmVVcGRhdGVDb3VudCA9IDApLFxuICAgICAgICAocm9vdFdpdGhQYXNzaXZlTmVzdGVkVXBkYXRlcyA9IG51bGwpLFxuICAgICAgICBjb25zb2xlLmVycm9yKFxuICAgICAgICAgIFwiTWF4aW11bSB1cGRhdGUgZGVwdGggZXhjZWVkZWQuIFRoaXMgY2FuIGhhcHBlbiB3aGVuIGEgY29tcG9uZW50IGNhbGxzIHNldFN0YXRlIGluc2lkZSB1c2VFZmZlY3QsIGJ1dCB1c2VFZmZlY3QgZWl0aGVyIGRvZXNuJ3QgaGF2ZSBhIGRlcGVuZGVuY3kgYXJyYXksIG9yIG9uZSBvZiB0aGUgZGVwZW5kZW5jaWVzIGNoYW5nZXMgb24gZXZlcnkgcmVuZGVyLlwiXG4gICAgICAgICkpO1xuICAgICAgbnVsbCA9PT0gc291cmNlRmliZXIuYWx0ZXJuYXRlICYmXG4gICAgICAgIDAgIT09IChzb3VyY2VGaWJlci5mbGFncyAmIDQwOTgpICYmXG4gICAgICAgIHdhcm5BYm91dFVwZGF0ZU9uTm90WWV0TW91bnRlZEZpYmVySW5ERVYoc291cmNlRmliZXIpO1xuICAgICAgZm9yICh2YXIgbm9kZSA9IHNvdXJjZUZpYmVyLCBwYXJlbnQgPSBub2RlLnJldHVybjsgbnVsbCAhPT0gcGFyZW50OyApXG4gICAgICAgIG51bGwgPT09IG5vZGUuYWx0ZXJuYXRlICYmXG4gICAgICAgICAgMCAhPT0gKG5vZGUuZmxhZ3MgJiA0MDk4KSAmJlxuICAgICAgICAgIHdhcm5BYm91dFVwZGF0ZU9uTm90WWV0TW91bnRlZEZpYmVySW5ERVYoc291cmNlRmliZXIpLFxuICAgICAgICAgIChub2RlID0gcGFyZW50KSxcbiAgICAgICAgICAocGFyZW50ID0gbm9kZS5yZXR1cm4pO1xuICAgICAgcmV0dXJuIDMgPT09IG5vZGUudGFnID8gbm9kZS5zdGF0ZU5vZGUgOiBudWxsO1xuICAgIH1cbiAgICBmdW5jdGlvbiByZXNvbHZlRnVuY3Rpb25Gb3JIb3RSZWxvYWRpbmcodHlwZSkge1xuICAgICAgaWYgKG51bGwgPT09IHJlc29sdmVGYW1pbHkpIHJldHVybiB0eXBlO1xuICAgICAgdmFyIGZhbWlseSA9IHJlc29sdmVGYW1pbHkodHlwZSk7XG4gICAgICByZXR1cm4gdm9pZCAwID09PSBmYW1pbHkgPyB0eXBlIDogZmFtaWx5LmN1cnJlbnQ7XG4gICAgfVxuICAgIGZ1bmN0aW9uIHJlc29sdmVGb3J3YXJkUmVmRm9ySG90UmVsb2FkaW5nKHR5cGUpIHtcbiAgICAgIGlmIChudWxsID09PSByZXNvbHZlRmFtaWx5KSByZXR1cm4gdHlwZTtcbiAgICAgIHZhciBmYW1pbHkgPSByZXNvbHZlRmFtaWx5KHR5cGUpO1xuICAgICAgcmV0dXJuIHZvaWQgMCA9PT0gZmFtaWx5XG4gICAgICAgID8gbnVsbCAhPT0gdHlwZSAmJlxuICAgICAgICAgIHZvaWQgMCAhPT0gdHlwZSAmJlxuICAgICAgICAgIFwiZnVuY3Rpb25cIiA9PT0gdHlwZW9mIHR5cGUucmVuZGVyICYmXG4gICAgICAgICAgKChmYW1pbHkgPSByZXNvbHZlRnVuY3Rpb25Gb3JIb3RSZWxvYWRpbmcodHlwZS5yZW5kZXIpKSxcbiAgICAgICAgICB0eXBlLnJlbmRlciAhPT0gZmFtaWx5KVxuICAgICAgICAgID8gKChmYW1pbHkgPSB7ICQkdHlwZW9mOiBSRUFDVF9GT1JXQVJEX1JFRl9UWVBFLCByZW5kZXI6IGZhbWlseSB9KSxcbiAgICAgICAgICAgIHZvaWQgMCAhPT0gdHlwZS5kaXNwbGF5TmFtZSAmJlxuICAgICAgICAgICAgICAoZmFtaWx5LmRpc3BsYXlOYW1lID0gdHlwZS5kaXNwbGF5TmFtZSksXG4gICAgICAgICAgICBmYW1pbHkpXG4gICAgICAgICAgOiB0eXBlXG4gICAgICAgIDogZmFtaWx5LmN1cnJlbnQ7XG4gICAgfVxuICAgIGZ1bmN0aW9uIGlzQ29tcGF0aWJsZUZhbWlseUZvckhvdFJlbG9hZGluZyhmaWJlciwgZWxlbWVudCkge1xuICAgICAgaWYgKG51bGwgPT09IHJlc29sdmVGYW1pbHkpIHJldHVybiAhMTtcbiAgICAgIHZhciBwcmV2VHlwZSA9IGZpYmVyLmVsZW1lbnRUeXBlO1xuICAgICAgZWxlbWVudCA9IGVsZW1lbnQudHlwZTtcbiAgICAgIHZhciBuZWVkc0NvbXBhcmVGYW1pbGllcyA9ICExLFxuICAgICAgICAkJHR5cGVvZk5leHRUeXBlID1cbiAgICAgICAgICBcIm9iamVjdFwiID09PSB0eXBlb2YgZWxlbWVudCAmJiBudWxsICE9PSBlbGVtZW50XG4gICAgICAgICAgICA/IGVsZW1lbnQuJCR0eXBlb2ZcbiAgICAgICAgICAgIDogbnVsbDtcbiAgICAgIHN3aXRjaCAoZmliZXIudGFnKSB7XG4gICAgICAgIGNhc2UgMTpcbiAgICAgICAgICBcImZ1bmN0aW9uXCIgPT09IHR5cGVvZiBlbGVtZW50ICYmIChuZWVkc0NvbXBhcmVGYW1pbGllcyA9ICEwKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAwOlxuICAgICAgICAgIFwiZnVuY3Rpb25cIiA9PT0gdHlwZW9mIGVsZW1lbnRcbiAgICAgICAgICAgID8gKG5lZWRzQ29tcGFyZUZhbWlsaWVzID0gITApXG4gICAgICAgICAgICA6ICQkdHlwZW9mTmV4dFR5cGUgPT09IFJFQUNUX0xBWllfVFlQRSAmJlxuICAgICAgICAgICAgICAobmVlZHNDb21wYXJlRmFtaWxpZXMgPSAhMCk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgMTE6XG4gICAgICAgICAgJCR0eXBlb2ZOZXh0VHlwZSA9PT0gUkVBQ1RfRk9SV0FSRF9SRUZfVFlQRVxuICAgICAgICAgICAgPyAobmVlZHNDb21wYXJlRmFtaWxpZXMgPSAhMClcbiAgICAgICAgICAgIDogJCR0eXBlb2ZOZXh0VHlwZSA9PT0gUkVBQ1RfTEFaWV9UWVBFICYmXG4gICAgICAgICAgICAgIChuZWVkc0NvbXBhcmVGYW1pbGllcyA9ICEwKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAxNDpcbiAgICAgICAgY2FzZSAxNTpcbiAgICAgICAgICAkJHR5cGVvZk5leHRUeXBlID09PSBSRUFDVF9NRU1PX1RZUEVcbiAgICAgICAgICAgID8gKG5lZWRzQ29tcGFyZUZhbWlsaWVzID0gITApXG4gICAgICAgICAgICA6ICQkdHlwZW9mTmV4dFR5cGUgPT09IFJFQUNUX0xBWllfVFlQRSAmJlxuICAgICAgICAgICAgICAobmVlZHNDb21wYXJlRmFtaWxpZXMgPSAhMCk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgcmV0dXJuICExO1xuICAgICAgfVxuICAgICAgcmV0dXJuIG5lZWRzQ29tcGFyZUZhbWlsaWVzICYmXG4gICAgICAgICgoZmliZXIgPSByZXNvbHZlRmFtaWx5KHByZXZUeXBlKSksXG4gICAgICAgIHZvaWQgMCAhPT0gZmliZXIgJiYgZmliZXIgPT09IHJlc29sdmVGYW1pbHkoZWxlbWVudCkpXG4gICAgICAgID8gITBcbiAgICAgICAgOiAhMTtcbiAgICB9XG4gICAgZnVuY3Rpb24gbWFya0ZhaWxlZEVycm9yQm91bmRhcnlGb3JIb3RSZWxvYWRpbmcoZmliZXIpIHtcbiAgICAgIG51bGwgIT09IHJlc29sdmVGYW1pbHkgJiZcbiAgICAgICAgXCJmdW5jdGlvblwiID09PSB0eXBlb2YgV2Vha1NldCAmJlxuICAgICAgICAobnVsbCA9PT0gZmFpbGVkQm91bmRhcmllcyAmJiAoZmFpbGVkQm91bmRhcmllcyA9IG5ldyBXZWFrU2V0KCkpLFxuICAgICAgICBmYWlsZWRCb3VuZGFyaWVzLmFkZChmaWJlcikpO1xuICAgIH1cbiAgICBmdW5jdGlvbiBzY2hlZHVsZUZpYmVyc1dpdGhGYW1pbGllc1JlY3Vyc2l2ZWx5KFxuICAgICAgZmliZXIsXG4gICAgICB1cGRhdGVkRmFtaWxpZXMsXG4gICAgICBzdGFsZUZhbWlsaWVzXG4gICAgKSB7XG4gICAgICB2YXIgYWx0ZXJuYXRlID0gZmliZXIuYWx0ZXJuYXRlLFxuICAgICAgICBjaGlsZCA9IGZpYmVyLmNoaWxkLFxuICAgICAgICBzaWJsaW5nID0gZmliZXIuc2libGluZyxcbiAgICAgICAgdGFnID0gZmliZXIudGFnLFxuICAgICAgICB0eXBlID0gZmliZXIudHlwZSxcbiAgICAgICAgY2FuZGlkYXRlVHlwZSA9IG51bGw7XG4gICAgICBzd2l0Y2ggKHRhZykge1xuICAgICAgICBjYXNlIDA6XG4gICAgICAgIGNhc2UgMTU6XG4gICAgICAgIGNhc2UgMTpcbiAgICAgICAgICBjYW5kaWRhdGVUeXBlID0gdHlwZTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAxMTpcbiAgICAgICAgICBjYW5kaWRhdGVUeXBlID0gdHlwZS5yZW5kZXI7XG4gICAgICB9XG4gICAgICBpZiAobnVsbCA9PT0gcmVzb2x2ZUZhbWlseSlcbiAgICAgICAgdGhyb3cgRXJyb3IoXCJFeHBlY3RlZCByZXNvbHZlRmFtaWx5IHRvIGJlIHNldCBkdXJpbmcgaG90IHJlbG9hZC5cIik7XG4gICAgICB2YXIgbmVlZHNSZW5kZXIgPSAhMTtcbiAgICAgIHR5cGUgPSAhMTtcbiAgICAgIG51bGwgIT09IGNhbmRpZGF0ZVR5cGUgJiZcbiAgICAgICAgKChjYW5kaWRhdGVUeXBlID0gcmVzb2x2ZUZhbWlseShjYW5kaWRhdGVUeXBlKSksXG4gICAgICAgIHZvaWQgMCAhPT0gY2FuZGlkYXRlVHlwZSAmJlxuICAgICAgICAgIChzdGFsZUZhbWlsaWVzLmhhcyhjYW5kaWRhdGVUeXBlKVxuICAgICAgICAgICAgPyAodHlwZSA9ICEwKVxuICAgICAgICAgICAgOiB1cGRhdGVkRmFtaWxpZXMuaGFzKGNhbmRpZGF0ZVR5cGUpICYmXG4gICAgICAgICAgICAgICgxID09PSB0YWcgPyAodHlwZSA9ICEwKSA6IChuZWVkc1JlbmRlciA9ICEwKSkpKTtcbiAgICAgIG51bGwgIT09IGZhaWxlZEJvdW5kYXJpZXMgJiZcbiAgICAgICAgKGZhaWxlZEJvdW5kYXJpZXMuaGFzKGZpYmVyKSB8fFxuICAgICAgICAgIChudWxsICE9PSBhbHRlcm5hdGUgJiYgZmFpbGVkQm91bmRhcmllcy5oYXMoYWx0ZXJuYXRlKSkpICYmXG4gICAgICAgICh0eXBlID0gITApO1xuICAgICAgdHlwZSAmJiAoZmliZXIuX2RlYnVnTmVlZHNSZW1vdW50ID0gITApO1xuICAgICAgaWYgKHR5cGUgfHwgbmVlZHNSZW5kZXIpXG4gICAgICAgIChhbHRlcm5hdGUgPSBlbnF1ZXVlQ29uY3VycmVudFJlbmRlckZvckxhbmUoZmliZXIsIDIpKSxcbiAgICAgICAgICBudWxsICE9PSBhbHRlcm5hdGUgJiYgc2NoZWR1bGVVcGRhdGVPbkZpYmVyKGFsdGVybmF0ZSwgZmliZXIsIDIpO1xuICAgICAgbnVsbCA9PT0gY2hpbGQgfHxcbiAgICAgICAgdHlwZSB8fFxuICAgICAgICBzY2hlZHVsZUZpYmVyc1dpdGhGYW1pbGllc1JlY3Vyc2l2ZWx5KFxuICAgICAgICAgIGNoaWxkLFxuICAgICAgICAgIHVwZGF0ZWRGYW1pbGllcyxcbiAgICAgICAgICBzdGFsZUZhbWlsaWVzXG4gICAgICAgICk7XG4gICAgICBudWxsICE9PSBzaWJsaW5nICYmXG4gICAgICAgIHNjaGVkdWxlRmliZXJzV2l0aEZhbWlsaWVzUmVjdXJzaXZlbHkoXG4gICAgICAgICAgc2libGluZyxcbiAgICAgICAgICB1cGRhdGVkRmFtaWxpZXMsXG4gICAgICAgICAgc3RhbGVGYW1pbGllc1xuICAgICAgICApO1xuICAgIH1cbiAgICBmdW5jdGlvbiBGaWJlck5vZGUodGFnLCBwZW5kaW5nUHJvcHMsIGtleSwgbW9kZSkge1xuICAgICAgdGhpcy50YWcgPSB0YWc7XG4gICAgICB0aGlzLmtleSA9IGtleTtcbiAgICAgIHRoaXMuc2libGluZyA9XG4gICAgICAgIHRoaXMuY2hpbGQgPVxuICAgICAgICB0aGlzLnJldHVybiA9XG4gICAgICAgIHRoaXMuc3RhdGVOb2RlID1cbiAgICAgICAgdGhpcy50eXBlID1cbiAgICAgICAgdGhpcy5lbGVtZW50VHlwZSA9XG4gICAgICAgICAgbnVsbDtcbiAgICAgIHRoaXMuaW5kZXggPSAwO1xuICAgICAgdGhpcy5yZWZDbGVhbnVwID0gdGhpcy5yZWYgPSBudWxsO1xuICAgICAgdGhpcy5wZW5kaW5nUHJvcHMgPSBwZW5kaW5nUHJvcHM7XG4gICAgICB0aGlzLmRlcGVuZGVuY2llcyA9XG4gICAgICAgIHRoaXMubWVtb2l6ZWRTdGF0ZSA9XG4gICAgICAgIHRoaXMudXBkYXRlUXVldWUgPVxuICAgICAgICB0aGlzLm1lbW9pemVkUHJvcHMgPVxuICAgICAgICAgIG51bGw7XG4gICAgICB0aGlzLm1vZGUgPSBtb2RlO1xuICAgICAgdGhpcy5zdWJ0cmVlRmxhZ3MgPSB0aGlzLmZsYWdzID0gMDtcbiAgICAgIHRoaXMuZGVsZXRpb25zID0gbnVsbDtcbiAgICAgIHRoaXMuY2hpbGRMYW5lcyA9IHRoaXMubGFuZXMgPSAwO1xuICAgICAgdGhpcy5hbHRlcm5hdGUgPSBudWxsO1xuICAgICAgdGhpcy5hY3R1YWxEdXJhdGlvbiA9IC0wO1xuICAgICAgdGhpcy5hY3R1YWxTdGFydFRpbWUgPSAtMS4xO1xuICAgICAgdGhpcy50cmVlQmFzZUR1cmF0aW9uID0gdGhpcy5zZWxmQmFzZUR1cmF0aW9uID0gLTA7XG4gICAgICB0aGlzLl9kZWJ1Z1Rhc2sgPVxuICAgICAgICB0aGlzLl9kZWJ1Z1N0YWNrID1cbiAgICAgICAgdGhpcy5fZGVidWdPd25lciA9XG4gICAgICAgIHRoaXMuX2RlYnVnSW5mbyA9XG4gICAgICAgICAgbnVsbDtcbiAgICAgIHRoaXMuX2RlYnVnTmVlZHNSZW1vdW50ID0gITE7XG4gICAgICB0aGlzLl9kZWJ1Z0hvb2tUeXBlcyA9IG51bGw7XG4gICAgICBoYXNCYWRNYXBQb2x5ZmlsbCB8fFxuICAgICAgICBcImZ1bmN0aW9uXCIgIT09IHR5cGVvZiBPYmplY3QucHJldmVudEV4dGVuc2lvbnMgfHxcbiAgICAgICAgT2JqZWN0LnByZXZlbnRFeHRlbnNpb25zKHRoaXMpO1xuICAgIH1cbiAgICBmdW5jdGlvbiBzaG91bGRDb25zdHJ1Y3QoQ29tcG9uZW50KSB7XG4gICAgICBDb21wb25lbnQgPSBDb21wb25lbnQucHJvdG90eXBlO1xuICAgICAgcmV0dXJuICEoIUNvbXBvbmVudCB8fCAhQ29tcG9uZW50LmlzUmVhY3RDb21wb25lbnQpO1xuICAgIH1cbiAgICBmdW5jdGlvbiBjcmVhdGVXb3JrSW5Qcm9ncmVzcyhjdXJyZW50LCBwZW5kaW5nUHJvcHMpIHtcbiAgICAgIHZhciB3b3JrSW5Qcm9ncmVzcyA9IGN1cnJlbnQuYWx0ZXJuYXRlO1xuICAgICAgbnVsbCA9PT0gd29ya0luUHJvZ3Jlc3NcbiAgICAgICAgPyAoKHdvcmtJblByb2dyZXNzID0gY3JlYXRlRmliZXIoXG4gICAgICAgICAgICBjdXJyZW50LnRhZyxcbiAgICAgICAgICAgIHBlbmRpbmdQcm9wcyxcbiAgICAgICAgICAgIGN1cnJlbnQua2V5LFxuICAgICAgICAgICAgY3VycmVudC5tb2RlXG4gICAgICAgICAgKSksXG4gICAgICAgICAgKHdvcmtJblByb2dyZXNzLmVsZW1lbnRUeXBlID0gY3VycmVudC5lbGVtZW50VHlwZSksXG4gICAgICAgICAgKHdvcmtJblByb2dyZXNzLnR5cGUgPSBjdXJyZW50LnR5cGUpLFxuICAgICAgICAgICh3b3JrSW5Qcm9ncmVzcy5zdGF0ZU5vZGUgPSBjdXJyZW50LnN0YXRlTm9kZSksXG4gICAgICAgICAgKHdvcmtJblByb2dyZXNzLl9kZWJ1Z093bmVyID0gY3VycmVudC5fZGVidWdPd25lciksXG4gICAgICAgICAgKHdvcmtJblByb2dyZXNzLl9kZWJ1Z1N0YWNrID0gY3VycmVudC5fZGVidWdTdGFjayksXG4gICAgICAgICAgKHdvcmtJblByb2dyZXNzLl9kZWJ1Z1Rhc2sgPSBjdXJyZW50Ll9kZWJ1Z1Rhc2spLFxuICAgICAgICAgICh3b3JrSW5Qcm9ncmVzcy5fZGVidWdIb29rVHlwZXMgPSBjdXJyZW50Ll9kZWJ1Z0hvb2tUeXBlcyksXG4gICAgICAgICAgKHdvcmtJblByb2dyZXNzLmFsdGVybmF0ZSA9IGN1cnJlbnQpLFxuICAgICAgICAgIChjdXJyZW50LmFsdGVybmF0ZSA9IHdvcmtJblByb2dyZXNzKSlcbiAgICAgICAgOiAoKHdvcmtJblByb2dyZXNzLnBlbmRpbmdQcm9wcyA9IHBlbmRpbmdQcm9wcyksXG4gICAgICAgICAgKHdvcmtJblByb2dyZXNzLnR5cGUgPSBjdXJyZW50LnR5cGUpLFxuICAgICAgICAgICh3b3JrSW5Qcm9ncmVzcy5mbGFncyA9IDApLFxuICAgICAgICAgICh3b3JrSW5Qcm9ncmVzcy5zdWJ0cmVlRmxhZ3MgPSAwKSxcbiAgICAgICAgICAod29ya0luUHJvZ3Jlc3MuZGVsZXRpb25zID0gbnVsbCksXG4gICAgICAgICAgKHdvcmtJblByb2dyZXNzLmFjdHVhbER1cmF0aW9uID0gLTApLFxuICAgICAgICAgICh3b3JrSW5Qcm9ncmVzcy5hY3R1YWxTdGFydFRpbWUgPSAtMS4xKSk7XG4gICAgICB3b3JrSW5Qcm9ncmVzcy5mbGFncyA9IGN1cnJlbnQuZmxhZ3MgJiA2NTAxMTcxMjtcbiAgICAgIHdvcmtJblByb2dyZXNzLmNoaWxkTGFuZXMgPSBjdXJyZW50LmNoaWxkTGFuZXM7XG4gICAgICB3b3JrSW5Qcm9ncmVzcy5sYW5lcyA9IGN1cnJlbnQubGFuZXM7XG4gICAgICB3b3JrSW5Qcm9ncmVzcy5jaGlsZCA9IGN1cnJlbnQuY2hpbGQ7XG4gICAgICB3b3JrSW5Qcm9ncmVzcy5tZW1vaXplZFByb3BzID0gY3VycmVudC5tZW1vaXplZFByb3BzO1xuICAgICAgd29ya0luUHJvZ3Jlc3MubWVtb2l6ZWRTdGF0ZSA9IGN1cnJlbnQubWVtb2l6ZWRTdGF0ZTtcbiAgICAgIHdvcmtJblByb2dyZXNzLnVwZGF0ZVF1ZXVlID0gY3VycmVudC51cGRhdGVRdWV1ZTtcbiAgICAgIHBlbmRpbmdQcm9wcyA9IGN1cnJlbnQuZGVwZW5kZW5jaWVzO1xuICAgICAgd29ya0luUHJvZ3Jlc3MuZGVwZW5kZW5jaWVzID1cbiAgICAgICAgbnVsbCA9PT0gcGVuZGluZ1Byb3BzXG4gICAgICAgICAgPyBudWxsXG4gICAgICAgICAgOiB7XG4gICAgICAgICAgICAgIGxhbmVzOiBwZW5kaW5nUHJvcHMubGFuZXMsXG4gICAgICAgICAgICAgIGZpcnN0Q29udGV4dDogcGVuZGluZ1Byb3BzLmZpcnN0Q29udGV4dCxcbiAgICAgICAgICAgICAgX2RlYnVnVGhlbmFibGVTdGF0ZTogcGVuZGluZ1Byb3BzLl9kZWJ1Z1RoZW5hYmxlU3RhdGVcbiAgICAgICAgICAgIH07XG4gICAgICB3b3JrSW5Qcm9ncmVzcy5zaWJsaW5nID0gY3VycmVudC5zaWJsaW5nO1xuICAgICAgd29ya0luUHJvZ3Jlc3MuaW5kZXggPSBjdXJyZW50LmluZGV4O1xuICAgICAgd29ya0luUHJvZ3Jlc3MucmVmID0gY3VycmVudC5yZWY7XG4gICAgICB3b3JrSW5Qcm9ncmVzcy5yZWZDbGVhbnVwID0gY3VycmVudC5yZWZDbGVhbnVwO1xuICAgICAgd29ya0luUHJvZ3Jlc3Muc2VsZkJhc2VEdXJhdGlvbiA9IGN1cnJlbnQuc2VsZkJhc2VEdXJhdGlvbjtcbiAgICAgIHdvcmtJblByb2dyZXNzLnRyZWVCYXNlRHVyYXRpb24gPSBjdXJyZW50LnRyZWVCYXNlRHVyYXRpb247XG4gICAgICB3b3JrSW5Qcm9ncmVzcy5fZGVidWdJbmZvID0gY3VycmVudC5fZGVidWdJbmZvO1xuICAgICAgd29ya0luUHJvZ3Jlc3MuX2RlYnVnTmVlZHNSZW1vdW50ID0gY3VycmVudC5fZGVidWdOZWVkc1JlbW91bnQ7XG4gICAgICBzd2l0Y2ggKHdvcmtJblByb2dyZXNzLnRhZykge1xuICAgICAgICBjYXNlIDA6XG4gICAgICAgIGNhc2UgMTU6XG4gICAgICAgICAgd29ya0luUHJvZ3Jlc3MudHlwZSA9IHJlc29sdmVGdW5jdGlvbkZvckhvdFJlbG9hZGluZyhjdXJyZW50LnR5cGUpO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIDE6XG4gICAgICAgICAgd29ya0luUHJvZ3Jlc3MudHlwZSA9IHJlc29sdmVGdW5jdGlvbkZvckhvdFJlbG9hZGluZyhjdXJyZW50LnR5cGUpO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIDExOlxuICAgICAgICAgIHdvcmtJblByb2dyZXNzLnR5cGUgPSByZXNvbHZlRm9yd2FyZFJlZkZvckhvdFJlbG9hZGluZyhjdXJyZW50LnR5cGUpO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHdvcmtJblByb2dyZXNzO1xuICAgIH1cbiAgICBmdW5jdGlvbiByZXNldFdvcmtJblByb2dyZXNzKHdvcmtJblByb2dyZXNzLCByZW5kZXJMYW5lcykge1xuICAgICAgd29ya0luUHJvZ3Jlc3MuZmxhZ3MgJj0gNjUwMTE3MTQ7XG4gICAgICB2YXIgY3VycmVudCA9IHdvcmtJblByb2dyZXNzLmFsdGVybmF0ZTtcbiAgICAgIG51bGwgPT09IGN1cnJlbnRcbiAgICAgICAgPyAoKHdvcmtJblByb2dyZXNzLmNoaWxkTGFuZXMgPSAwKSxcbiAgICAgICAgICAod29ya0luUHJvZ3Jlc3MubGFuZXMgPSByZW5kZXJMYW5lcyksXG4gICAgICAgICAgKHdvcmtJblByb2dyZXNzLmNoaWxkID0gbnVsbCksXG4gICAgICAgICAgKHdvcmtJblByb2dyZXNzLnN1YnRyZWVGbGFncyA9IDApLFxuICAgICAgICAgICh3b3JrSW5Qcm9ncmVzcy5tZW1vaXplZFByb3BzID0gbnVsbCksXG4gICAgICAgICAgKHdvcmtJblByb2dyZXNzLm1lbW9pemVkU3RhdGUgPSBudWxsKSxcbiAgICAgICAgICAod29ya0luUHJvZ3Jlc3MudXBkYXRlUXVldWUgPSBudWxsKSxcbiAgICAgICAgICAod29ya0luUHJvZ3Jlc3MuZGVwZW5kZW5jaWVzID0gbnVsbCksXG4gICAgICAgICAgKHdvcmtJblByb2dyZXNzLnN0YXRlTm9kZSA9IG51bGwpLFxuICAgICAgICAgICh3b3JrSW5Qcm9ncmVzcy5zZWxmQmFzZUR1cmF0aW9uID0gMCksXG4gICAgICAgICAgKHdvcmtJblByb2dyZXNzLnRyZWVCYXNlRHVyYXRpb24gPSAwKSlcbiAgICAgICAgOiAoKHdvcmtJblByb2dyZXNzLmNoaWxkTGFuZXMgPSBjdXJyZW50LmNoaWxkTGFuZXMpLFxuICAgICAgICAgICh3b3JrSW5Qcm9ncmVzcy5sYW5lcyA9IGN1cnJlbnQubGFuZXMpLFxuICAgICAgICAgICh3b3JrSW5Qcm9ncmVzcy5jaGlsZCA9IGN1cnJlbnQuY2hpbGQpLFxuICAgICAgICAgICh3b3JrSW5Qcm9ncmVzcy5zdWJ0cmVlRmxhZ3MgPSAwKSxcbiAgICAgICAgICAod29ya0luUHJvZ3Jlc3MuZGVsZXRpb25zID0gbnVsbCksXG4gICAgICAgICAgKHdvcmtJblByb2dyZXNzLm1lbW9pemVkUHJvcHMgPSBjdXJyZW50Lm1lbW9pemVkUHJvcHMpLFxuICAgICAgICAgICh3b3JrSW5Qcm9ncmVzcy5tZW1vaXplZFN0YXRlID0gY3VycmVudC5tZW1vaXplZFN0YXRlKSxcbiAgICAgICAgICAod29ya0luUHJvZ3Jlc3MudXBkYXRlUXVldWUgPSBjdXJyZW50LnVwZGF0ZVF1ZXVlKSxcbiAgICAgICAgICAod29ya0luUHJvZ3Jlc3MudHlwZSA9IGN1cnJlbnQudHlwZSksXG4gICAgICAgICAgKHJlbmRlckxhbmVzID0gY3VycmVudC5kZXBlbmRlbmNpZXMpLFxuICAgICAgICAgICh3b3JrSW5Qcm9ncmVzcy5kZXBlbmRlbmNpZXMgPVxuICAgICAgICAgICAgbnVsbCA9PT0gcmVuZGVyTGFuZXNcbiAgICAgICAgICAgICAgPyBudWxsXG4gICAgICAgICAgICAgIDoge1xuICAgICAgICAgICAgICAgICAgbGFuZXM6IHJlbmRlckxhbmVzLmxhbmVzLFxuICAgICAgICAgICAgICAgICAgZmlyc3RDb250ZXh0OiByZW5kZXJMYW5lcy5maXJzdENvbnRleHQsXG4gICAgICAgICAgICAgICAgICBfZGVidWdUaGVuYWJsZVN0YXRlOiByZW5kZXJMYW5lcy5fZGVidWdUaGVuYWJsZVN0YXRlXG4gICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgKHdvcmtJblByb2dyZXNzLnNlbGZCYXNlRHVyYXRpb24gPSBjdXJyZW50LnNlbGZCYXNlRHVyYXRpb24pLFxuICAgICAgICAgICh3b3JrSW5Qcm9ncmVzcy50cmVlQmFzZUR1cmF0aW9uID0gY3VycmVudC50cmVlQmFzZUR1cmF0aW9uKSk7XG4gICAgICByZXR1cm4gd29ya0luUHJvZ3Jlc3M7XG4gICAgfVxuICAgIGZ1bmN0aW9uIGNyZWF0ZUZpYmVyRnJvbVR5cGVBbmRQcm9wcyhcbiAgICAgIHR5cGUsXG4gICAgICBrZXksXG4gICAgICBwZW5kaW5nUHJvcHMsXG4gICAgICBvd25lcixcbiAgICAgIG1vZGUsXG4gICAgICBsYW5lc1xuICAgICkge1xuICAgICAgdmFyIGZpYmVyVGFnID0gMCxcbiAgICAgICAgcmVzb2x2ZWRUeXBlID0gdHlwZTtcbiAgICAgIGlmIChcImZ1bmN0aW9uXCIgPT09IHR5cGVvZiB0eXBlKVxuICAgICAgICBzaG91bGRDb25zdHJ1Y3QodHlwZSkgJiYgKGZpYmVyVGFnID0gMSksXG4gICAgICAgICAgKHJlc29sdmVkVHlwZSA9IHJlc29sdmVGdW5jdGlvbkZvckhvdFJlbG9hZGluZyhyZXNvbHZlZFR5cGUpKTtcbiAgICAgIGVsc2UgaWYgKFwic3RyaW5nXCIgPT09IHR5cGVvZiB0eXBlKVxuICAgICAgICAoZmliZXJUYWcgPSBnZXRIb3N0Q29udGV4dCgpKSxcbiAgICAgICAgICAoZmliZXJUYWcgPSBpc0hvc3RIb2lzdGFibGVUeXBlKHR5cGUsIHBlbmRpbmdQcm9wcywgZmliZXJUYWcpXG4gICAgICAgICAgICA/IDI2XG4gICAgICAgICAgICA6IFwiaHRtbFwiID09PSB0eXBlIHx8IFwiaGVhZFwiID09PSB0eXBlIHx8IFwiYm9keVwiID09PSB0eXBlXG4gICAgICAgICAgICAgID8gMjdcbiAgICAgICAgICAgICAgOiA1KTtcbiAgICAgIGVsc2VcbiAgICAgICAgYTogc3dpdGNoICh0eXBlKSB7XG4gICAgICAgICAgY2FzZSBSRUFDVF9BQ1RJVklUWV9UWVBFOlxuICAgICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgICAgKGtleSA9IGNyZWF0ZUZpYmVyKDMxLCBwZW5kaW5nUHJvcHMsIGtleSwgbW9kZSkpLFxuICAgICAgICAgICAgICAoa2V5LmVsZW1lbnRUeXBlID0gUkVBQ1RfQUNUSVZJVFlfVFlQRSksXG4gICAgICAgICAgICAgIChrZXkubGFuZXMgPSBsYW5lcyksXG4gICAgICAgICAgICAgIGtleVxuICAgICAgICAgICAgKTtcbiAgICAgICAgICBjYXNlIFJFQUNUX0ZSQUdNRU5UX1RZUEU6XG4gICAgICAgICAgICByZXR1cm4gY3JlYXRlRmliZXJGcm9tRnJhZ21lbnQoXG4gICAgICAgICAgICAgIHBlbmRpbmdQcm9wcy5jaGlsZHJlbixcbiAgICAgICAgICAgICAgbW9kZSxcbiAgICAgICAgICAgICAgbGFuZXMsXG4gICAgICAgICAgICAgIGtleVxuICAgICAgICAgICAgKTtcbiAgICAgICAgICBjYXNlIFJFQUNUX1NUUklDVF9NT0RFX1RZUEU6XG4gICAgICAgICAgICBmaWJlclRhZyA9IDg7XG4gICAgICAgICAgICBtb2RlIHw9IFN0cmljdExlZ2FjeU1vZGU7XG4gICAgICAgICAgICBtb2RlIHw9IFN0cmljdEVmZmVjdHNNb2RlO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgY2FzZSBSRUFDVF9QUk9GSUxFUl9UWVBFOlxuICAgICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgICAgKHR5cGUgPSBwZW5kaW5nUHJvcHMpLFxuICAgICAgICAgICAgICAob3duZXIgPSBtb2RlKSxcbiAgICAgICAgICAgICAgXCJzdHJpbmdcIiAhPT0gdHlwZW9mIHR5cGUuaWQgJiZcbiAgICAgICAgICAgICAgICBjb25zb2xlLmVycm9yKFxuICAgICAgICAgICAgICAgICAgJ1Byb2ZpbGVyIG11c3Qgc3BlY2lmeSBhbiBcImlkXCIgb2YgdHlwZSBgc3RyaW5nYCBhcyBhIHByb3AuIFJlY2VpdmVkIHRoZSB0eXBlIGAlc2AgaW5zdGVhZC4nLFxuICAgICAgICAgICAgICAgICAgdHlwZW9mIHR5cGUuaWRcbiAgICAgICAgICAgICAgICApLFxuICAgICAgICAgICAgICAoa2V5ID0gY3JlYXRlRmliZXIoMTIsIHR5cGUsIGtleSwgb3duZXIgfCBQcm9maWxlTW9kZSkpLFxuICAgICAgICAgICAgICAoa2V5LmVsZW1lbnRUeXBlID0gUkVBQ1RfUFJPRklMRVJfVFlQRSksXG4gICAgICAgICAgICAgIChrZXkubGFuZXMgPSBsYW5lcyksXG4gICAgICAgICAgICAgIChrZXkuc3RhdGVOb2RlID0geyBlZmZlY3REdXJhdGlvbjogMCwgcGFzc2l2ZUVmZmVjdER1cmF0aW9uOiAwIH0pLFxuICAgICAgICAgICAgICBrZXlcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgY2FzZSBSRUFDVF9TVVNQRU5TRV9UWVBFOlxuICAgICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgICAgKGtleSA9IGNyZWF0ZUZpYmVyKDEzLCBwZW5kaW5nUHJvcHMsIGtleSwgbW9kZSkpLFxuICAgICAgICAgICAgICAoa2V5LmVsZW1lbnRUeXBlID0gUkVBQ1RfU1VTUEVOU0VfVFlQRSksXG4gICAgICAgICAgICAgIChrZXkubGFuZXMgPSBsYW5lcyksXG4gICAgICAgICAgICAgIGtleVxuICAgICAgICAgICAgKTtcbiAgICAgICAgICBjYXNlIFJFQUNUX1NVU1BFTlNFX0xJU1RfVFlQRTpcbiAgICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAgIChrZXkgPSBjcmVhdGVGaWJlcigxOSwgcGVuZGluZ1Byb3BzLCBrZXksIG1vZGUpKSxcbiAgICAgICAgICAgICAgKGtleS5lbGVtZW50VHlwZSA9IFJFQUNUX1NVU1BFTlNFX0xJU1RfVFlQRSksXG4gICAgICAgICAgICAgIChrZXkubGFuZXMgPSBsYW5lcyksXG4gICAgICAgICAgICAgIGtleVxuICAgICAgICAgICAgKTtcbiAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgaWYgKFwib2JqZWN0XCIgPT09IHR5cGVvZiB0eXBlICYmIG51bGwgIT09IHR5cGUpXG4gICAgICAgICAgICAgIHN3aXRjaCAodHlwZS4kJHR5cGVvZikge1xuICAgICAgICAgICAgICAgIGNhc2UgUkVBQ1RfUFJPVklERVJfVFlQRTpcbiAgICAgICAgICAgICAgICBjYXNlIFJFQUNUX0NPTlRFWFRfVFlQRTpcbiAgICAgICAgICAgICAgICAgIGZpYmVyVGFnID0gMTA7XG4gICAgICAgICAgICAgICAgICBicmVhayBhO1xuICAgICAgICAgICAgICAgIGNhc2UgUkVBQ1RfQ09OU1VNRVJfVFlQRTpcbiAgICAgICAgICAgICAgICAgIGZpYmVyVGFnID0gOTtcbiAgICAgICAgICAgICAgICAgIGJyZWFrIGE7XG4gICAgICAgICAgICAgICAgY2FzZSBSRUFDVF9GT1JXQVJEX1JFRl9UWVBFOlxuICAgICAgICAgICAgICAgICAgZmliZXJUYWcgPSAxMTtcbiAgICAgICAgICAgICAgICAgIHJlc29sdmVkVHlwZSA9IHJlc29sdmVGb3J3YXJkUmVmRm9ySG90UmVsb2FkaW5nKHJlc29sdmVkVHlwZSk7XG4gICAgICAgICAgICAgICAgICBicmVhayBhO1xuICAgICAgICAgICAgICAgIGNhc2UgUkVBQ1RfTUVNT19UWVBFOlxuICAgICAgICAgICAgICAgICAgZmliZXJUYWcgPSAxNDtcbiAgICAgICAgICAgICAgICAgIGJyZWFrIGE7XG4gICAgICAgICAgICAgICAgY2FzZSBSRUFDVF9MQVpZX1RZUEU6XG4gICAgICAgICAgICAgICAgICBmaWJlclRhZyA9IDE2O1xuICAgICAgICAgICAgICAgICAgcmVzb2x2ZWRUeXBlID0gbnVsbDtcbiAgICAgICAgICAgICAgICAgIGJyZWFrIGE7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJlc29sdmVkVHlwZSA9IFwiXCI7XG4gICAgICAgICAgICBpZiAoXG4gICAgICAgICAgICAgIHZvaWQgMCA9PT0gdHlwZSB8fFxuICAgICAgICAgICAgICAoXCJvYmplY3RcIiA9PT0gdHlwZW9mIHR5cGUgJiZcbiAgICAgICAgICAgICAgICBudWxsICE9PSB0eXBlICYmXG4gICAgICAgICAgICAgICAgMCA9PT0gT2JqZWN0LmtleXModHlwZSkubGVuZ3RoKVxuICAgICAgICAgICAgKVxuICAgICAgICAgICAgICByZXNvbHZlZFR5cGUgKz1cbiAgICAgICAgICAgICAgICBcIiBZb3UgbGlrZWx5IGZvcmdvdCB0byBleHBvcnQgeW91ciBjb21wb25lbnQgZnJvbSB0aGUgZmlsZSBpdCdzIGRlZmluZWQgaW4sIG9yIHlvdSBtaWdodCBoYXZlIG1peGVkIHVwIGRlZmF1bHQgYW5kIG5hbWVkIGltcG9ydHMuXCI7XG4gICAgICAgICAgICBudWxsID09PSB0eXBlXG4gICAgICAgICAgICAgID8gKHBlbmRpbmdQcm9wcyA9IFwibnVsbFwiKVxuICAgICAgICAgICAgICA6IGlzQXJyYXlJbXBsKHR5cGUpXG4gICAgICAgICAgICAgICAgPyAocGVuZGluZ1Byb3BzID0gXCJhcnJheVwiKVxuICAgICAgICAgICAgICAgIDogdm9pZCAwICE9PSB0eXBlICYmIHR5cGUuJCR0eXBlb2YgPT09IFJFQUNUX0VMRU1FTlRfVFlQRVxuICAgICAgICAgICAgICAgICAgPyAoKHBlbmRpbmdQcm9wcyA9XG4gICAgICAgICAgICAgICAgICAgICAgXCI8XCIgK1xuICAgICAgICAgICAgICAgICAgICAgIChnZXRDb21wb25lbnROYW1lRnJvbVR5cGUodHlwZS50eXBlKSB8fCBcIlVua25vd25cIikgK1xuICAgICAgICAgICAgICAgICAgICAgIFwiIC8+XCIpLFxuICAgICAgICAgICAgICAgICAgICAocmVzb2x2ZWRUeXBlID1cbiAgICAgICAgICAgICAgICAgICAgICBcIiBEaWQgeW91IGFjY2lkZW50YWxseSBleHBvcnQgYSBKU1ggbGl0ZXJhbCBpbnN0ZWFkIG9mIGEgY29tcG9uZW50P1wiKSlcbiAgICAgICAgICAgICAgICAgIDogKHBlbmRpbmdQcm9wcyA9IHR5cGVvZiB0eXBlKTtcbiAgICAgICAgICAgIChmaWJlclRhZyA9IG93bmVyID8gZ2V0Q29tcG9uZW50TmFtZUZyb21Pd25lcihvd25lcikgOiBudWxsKSAmJlxuICAgICAgICAgICAgICAocmVzb2x2ZWRUeXBlICs9XG4gICAgICAgICAgICAgICAgXCJcXG5cXG5DaGVjayB0aGUgcmVuZGVyIG1ldGhvZCBvZiBgXCIgKyBmaWJlclRhZyArIFwiYC5cIik7XG4gICAgICAgICAgICBmaWJlclRhZyA9IDI5O1xuICAgICAgICAgICAgcGVuZGluZ1Byb3BzID0gRXJyb3IoXG4gICAgICAgICAgICAgIFwiRWxlbWVudCB0eXBlIGlzIGludmFsaWQ6IGV4cGVjdGVkIGEgc3RyaW5nIChmb3IgYnVpbHQtaW4gY29tcG9uZW50cykgb3IgYSBjbGFzcy9mdW5jdGlvbiAoZm9yIGNvbXBvc2l0ZSBjb21wb25lbnRzKSBidXQgZ290OiBcIiArXG4gICAgICAgICAgICAgICAgKHBlbmRpbmdQcm9wcyArIFwiLlwiICsgcmVzb2x2ZWRUeXBlKVxuICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIHJlc29sdmVkVHlwZSA9IG51bGw7XG4gICAgICAgIH1cbiAgICAgIGtleSA9IGNyZWF0ZUZpYmVyKGZpYmVyVGFnLCBwZW5kaW5nUHJvcHMsIGtleSwgbW9kZSk7XG4gICAgICBrZXkuZWxlbWVudFR5cGUgPSB0eXBlO1xuICAgICAga2V5LnR5cGUgPSByZXNvbHZlZFR5cGU7XG4gICAgICBrZXkubGFuZXMgPSBsYW5lcztcbiAgICAgIGtleS5fZGVidWdPd25lciA9IG93bmVyO1xuICAgICAgcmV0dXJuIGtleTtcbiAgICB9XG4gICAgZnVuY3Rpb24gY3JlYXRlRmliZXJGcm9tRWxlbWVudChlbGVtZW50LCBtb2RlLCBsYW5lcykge1xuICAgICAgbW9kZSA9IGNyZWF0ZUZpYmVyRnJvbVR5cGVBbmRQcm9wcyhcbiAgICAgICAgZWxlbWVudC50eXBlLFxuICAgICAgICBlbGVtZW50LmtleSxcbiAgICAgICAgZWxlbWVudC5wcm9wcyxcbiAgICAgICAgZWxlbWVudC5fb3duZXIsXG4gICAgICAgIG1vZGUsXG4gICAgICAgIGxhbmVzXG4gICAgICApO1xuICAgICAgbW9kZS5fZGVidWdPd25lciA9IGVsZW1lbnQuX293bmVyO1xuICAgICAgbW9kZS5fZGVidWdTdGFjayA9IGVsZW1lbnQuX2RlYnVnU3RhY2s7XG4gICAgICBtb2RlLl9kZWJ1Z1Rhc2sgPSBlbGVtZW50Ll9kZWJ1Z1Rhc2s7XG4gICAgICByZXR1cm4gbW9kZTtcbiAgICB9XG4gICAgZnVuY3Rpb24gY3JlYXRlRmliZXJGcm9tRnJhZ21lbnQoZWxlbWVudHMsIG1vZGUsIGxhbmVzLCBrZXkpIHtcbiAgICAgIGVsZW1lbnRzID0gY3JlYXRlRmliZXIoNywgZWxlbWVudHMsIGtleSwgbW9kZSk7XG4gICAgICBlbGVtZW50cy5sYW5lcyA9IGxhbmVzO1xuICAgICAgcmV0dXJuIGVsZW1lbnRzO1xuICAgIH1cbiAgICBmdW5jdGlvbiBjcmVhdGVGaWJlckZyb21UZXh0KGNvbnRlbnQsIG1vZGUsIGxhbmVzKSB7XG4gICAgICBjb250ZW50ID0gY3JlYXRlRmliZXIoNiwgY29udGVudCwgbnVsbCwgbW9kZSk7XG4gICAgICBjb250ZW50LmxhbmVzID0gbGFuZXM7XG4gICAgICByZXR1cm4gY29udGVudDtcbiAgICB9XG4gICAgZnVuY3Rpb24gY3JlYXRlRmliZXJGcm9tUG9ydGFsKHBvcnRhbCwgbW9kZSwgbGFuZXMpIHtcbiAgICAgIG1vZGUgPSBjcmVhdGVGaWJlcihcbiAgICAgICAgNCxcbiAgICAgICAgbnVsbCAhPT0gcG9ydGFsLmNoaWxkcmVuID8gcG9ydGFsLmNoaWxkcmVuIDogW10sXG4gICAgICAgIHBvcnRhbC5rZXksXG4gICAgICAgIG1vZGVcbiAgICAgICk7XG4gICAgICBtb2RlLmxhbmVzID0gbGFuZXM7XG4gICAgICBtb2RlLnN0YXRlTm9kZSA9IHtcbiAgICAgICAgY29udGFpbmVySW5mbzogcG9ydGFsLmNvbnRhaW5lckluZm8sXG4gICAgICAgIHBlbmRpbmdDaGlsZHJlbjogbnVsbCxcbiAgICAgICAgaW1wbGVtZW50YXRpb246IHBvcnRhbC5pbXBsZW1lbnRhdGlvblxuICAgICAgfTtcbiAgICAgIHJldHVybiBtb2RlO1xuICAgIH1cbiAgICBmdW5jdGlvbiBwdXNoVHJlZUZvcmsod29ya0luUHJvZ3Jlc3MsIHRvdGFsQ2hpbGRyZW4pIHtcbiAgICAgIHdhcm5JZk5vdEh5ZHJhdGluZygpO1xuICAgICAgZm9ya1N0YWNrW2ZvcmtTdGFja0luZGV4KytdID0gdHJlZUZvcmtDb3VudDtcbiAgICAgIGZvcmtTdGFja1tmb3JrU3RhY2tJbmRleCsrXSA9IHRyZWVGb3JrUHJvdmlkZXI7XG4gICAgICB0cmVlRm9ya1Byb3ZpZGVyID0gd29ya0luUHJvZ3Jlc3M7XG4gICAgICB0cmVlRm9ya0NvdW50ID0gdG90YWxDaGlsZHJlbjtcbiAgICB9XG4gICAgZnVuY3Rpb24gcHVzaFRyZWVJZCh3b3JrSW5Qcm9ncmVzcywgdG90YWxDaGlsZHJlbiwgaW5kZXgpIHtcbiAgICAgIHdhcm5JZk5vdEh5ZHJhdGluZygpO1xuICAgICAgaWRTdGFja1tpZFN0YWNrSW5kZXgrK10gPSB0cmVlQ29udGV4dElkO1xuICAgICAgaWRTdGFja1tpZFN0YWNrSW5kZXgrK10gPSB0cmVlQ29udGV4dE92ZXJmbG93O1xuICAgICAgaWRTdGFja1tpZFN0YWNrSW5kZXgrK10gPSB0cmVlQ29udGV4dFByb3ZpZGVyO1xuICAgICAgdHJlZUNvbnRleHRQcm92aWRlciA9IHdvcmtJblByb2dyZXNzO1xuICAgICAgdmFyIGJhc2VJZFdpdGhMZWFkaW5nQml0ID0gdHJlZUNvbnRleHRJZDtcbiAgICAgIHdvcmtJblByb2dyZXNzID0gdHJlZUNvbnRleHRPdmVyZmxvdztcbiAgICAgIHZhciBiYXNlTGVuZ3RoID0gMzIgLSBjbHozMihiYXNlSWRXaXRoTGVhZGluZ0JpdCkgLSAxO1xuICAgICAgYmFzZUlkV2l0aExlYWRpbmdCaXQgJj0gfigxIDw8IGJhc2VMZW5ndGgpO1xuICAgICAgaW5kZXggKz0gMTtcbiAgICAgIHZhciBsZW5ndGggPSAzMiAtIGNsejMyKHRvdGFsQ2hpbGRyZW4pICsgYmFzZUxlbmd0aDtcbiAgICAgIGlmICgzMCA8IGxlbmd0aCkge1xuICAgICAgICB2YXIgbnVtYmVyT2ZPdmVyZmxvd0JpdHMgPSBiYXNlTGVuZ3RoIC0gKGJhc2VMZW5ndGggJSA1KTtcbiAgICAgICAgbGVuZ3RoID0gKFxuICAgICAgICAgIGJhc2VJZFdpdGhMZWFkaW5nQml0ICZcbiAgICAgICAgICAoKDEgPDwgbnVtYmVyT2ZPdmVyZmxvd0JpdHMpIC0gMSlcbiAgICAgICAgKS50b1N0cmluZygzMik7XG4gICAgICAgIGJhc2VJZFdpdGhMZWFkaW5nQml0ID4+PSBudW1iZXJPZk92ZXJmbG93Qml0cztcbiAgICAgICAgYmFzZUxlbmd0aCAtPSBudW1iZXJPZk92ZXJmbG93Qml0cztcbiAgICAgICAgdHJlZUNvbnRleHRJZCA9XG4gICAgICAgICAgKDEgPDwgKDMyIC0gY2x6MzIodG90YWxDaGlsZHJlbikgKyBiYXNlTGVuZ3RoKSkgfFxuICAgICAgICAgIChpbmRleCA8PCBiYXNlTGVuZ3RoKSB8XG4gICAgICAgICAgYmFzZUlkV2l0aExlYWRpbmdCaXQ7XG4gICAgICAgIHRyZWVDb250ZXh0T3ZlcmZsb3cgPSBsZW5ndGggKyB3b3JrSW5Qcm9ncmVzcztcbiAgICAgIH0gZWxzZVxuICAgICAgICAodHJlZUNvbnRleHRJZCA9XG4gICAgICAgICAgKDEgPDwgbGVuZ3RoKSB8IChpbmRleCA8PCBiYXNlTGVuZ3RoKSB8IGJhc2VJZFdpdGhMZWFkaW5nQml0KSxcbiAgICAgICAgICAodHJlZUNvbnRleHRPdmVyZmxvdyA9IHdvcmtJblByb2dyZXNzKTtcbiAgICB9XG4gICAgZnVuY3Rpb24gcHVzaE1hdGVyaWFsaXplZFRyZWVJZCh3b3JrSW5Qcm9ncmVzcykge1xuICAgICAgd2FybklmTm90SHlkcmF0aW5nKCk7XG4gICAgICBudWxsICE9PSB3b3JrSW5Qcm9ncmVzcy5yZXR1cm4gJiZcbiAgICAgICAgKHB1c2hUcmVlRm9yayh3b3JrSW5Qcm9ncmVzcywgMSksIHB1c2hUcmVlSWQod29ya0luUHJvZ3Jlc3MsIDEsIDApKTtcbiAgICB9XG4gICAgZnVuY3Rpb24gcG9wVHJlZUNvbnRleHQod29ya0luUHJvZ3Jlc3MpIHtcbiAgICAgIGZvciAoOyB3b3JrSW5Qcm9ncmVzcyA9PT0gdHJlZUZvcmtQcm92aWRlcjsgKVxuICAgICAgICAodHJlZUZvcmtQcm92aWRlciA9IGZvcmtTdGFja1stLWZvcmtTdGFja0luZGV4XSksXG4gICAgICAgICAgKGZvcmtTdGFja1tmb3JrU3RhY2tJbmRleF0gPSBudWxsKSxcbiAgICAgICAgICAodHJlZUZvcmtDb3VudCA9IGZvcmtTdGFja1stLWZvcmtTdGFja0luZGV4XSksXG4gICAgICAgICAgKGZvcmtTdGFja1tmb3JrU3RhY2tJbmRleF0gPSBudWxsKTtcbiAgICAgIGZvciAoOyB3b3JrSW5Qcm9ncmVzcyA9PT0gdHJlZUNvbnRleHRQcm92aWRlcjsgKVxuICAgICAgICAodHJlZUNvbnRleHRQcm92aWRlciA9IGlkU3RhY2tbLS1pZFN0YWNrSW5kZXhdKSxcbiAgICAgICAgICAoaWRTdGFja1tpZFN0YWNrSW5kZXhdID0gbnVsbCksXG4gICAgICAgICAgKHRyZWVDb250ZXh0T3ZlcmZsb3cgPSBpZFN0YWNrWy0taWRTdGFja0luZGV4XSksXG4gICAgICAgICAgKGlkU3RhY2tbaWRTdGFja0luZGV4XSA9IG51bGwpLFxuICAgICAgICAgICh0cmVlQ29udGV4dElkID0gaWRTdGFja1stLWlkU3RhY2tJbmRleF0pLFxuICAgICAgICAgIChpZFN0YWNrW2lkU3RhY2tJbmRleF0gPSBudWxsKTtcbiAgICB9XG4gICAgZnVuY3Rpb24gd2FybklmTm90SHlkcmF0aW5nKCkge1xuICAgICAgaXNIeWRyYXRpbmcgfHxcbiAgICAgICAgY29uc29sZS5lcnJvcihcbiAgICAgICAgICBcIkV4cGVjdGVkIHRvIGJlIGh5ZHJhdGluZy4gVGhpcyBpcyBhIGJ1ZyBpbiBSZWFjdC4gUGxlYXNlIGZpbGUgYW4gaXNzdWUuXCJcbiAgICAgICAgKTtcbiAgICB9XG4gICAgZnVuY3Rpb24gYnVpbGRIeWRyYXRpb25EaWZmTm9kZShmaWJlciwgZGlzdGFuY2VGcm9tTGVhZikge1xuICAgICAgaWYgKG51bGwgPT09IGZpYmVyLnJldHVybikge1xuICAgICAgICBpZiAobnVsbCA9PT0gaHlkcmF0aW9uRGlmZlJvb3RERVYpXG4gICAgICAgICAgaHlkcmF0aW9uRGlmZlJvb3RERVYgPSB7XG4gICAgICAgICAgICBmaWJlcjogZmliZXIsXG4gICAgICAgICAgICBjaGlsZHJlbjogW10sXG4gICAgICAgICAgICBzZXJ2ZXJQcm9wczogdm9pZCAwLFxuICAgICAgICAgICAgc2VydmVyVGFpbDogW10sXG4gICAgICAgICAgICBkaXN0YW5jZUZyb21MZWFmOiBkaXN0YW5jZUZyb21MZWFmXG4gICAgICAgICAgfTtcbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgaWYgKGh5ZHJhdGlvbkRpZmZSb290REVWLmZpYmVyICE9PSBmaWJlcilcbiAgICAgICAgICAgIHRocm93IEVycm9yKFxuICAgICAgICAgICAgICBcIlNhdyBtdWx0aXBsZSBoeWRyYXRpb24gZGlmZiByb290cyBpbiBhIHBhc3MuIFRoaXMgaXMgYSBidWcgaW4gUmVhY3QuXCJcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgaHlkcmF0aW9uRGlmZlJvb3RERVYuZGlzdGFuY2VGcm9tTGVhZiA+IGRpc3RhbmNlRnJvbUxlYWYgJiZcbiAgICAgICAgICAgIChoeWRyYXRpb25EaWZmUm9vdERFVi5kaXN0YW5jZUZyb21MZWFmID0gZGlzdGFuY2VGcm9tTGVhZik7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGh5ZHJhdGlvbkRpZmZSb290REVWO1xuICAgICAgfVxuICAgICAgdmFyIHNpYmxpbmdzID0gYnVpbGRIeWRyYXRpb25EaWZmTm9kZShcbiAgICAgICAgZmliZXIucmV0dXJuLFxuICAgICAgICBkaXN0YW5jZUZyb21MZWFmICsgMVxuICAgICAgKS5jaGlsZHJlbjtcbiAgICAgIGlmICgwIDwgc2libGluZ3MubGVuZ3RoICYmIHNpYmxpbmdzW3NpYmxpbmdzLmxlbmd0aCAtIDFdLmZpYmVyID09PSBmaWJlcilcbiAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAoc2libGluZ3MgPSBzaWJsaW5nc1tzaWJsaW5ncy5sZW5ndGggLSAxXSksXG4gICAgICAgICAgc2libGluZ3MuZGlzdGFuY2VGcm9tTGVhZiA+IGRpc3RhbmNlRnJvbUxlYWYgJiZcbiAgICAgICAgICAgIChzaWJsaW5ncy5kaXN0YW5jZUZyb21MZWFmID0gZGlzdGFuY2VGcm9tTGVhZiksXG4gICAgICAgICAgc2libGluZ3NcbiAgICAgICAgKTtcbiAgICAgIGRpc3RhbmNlRnJvbUxlYWYgPSB7XG4gICAgICAgIGZpYmVyOiBmaWJlcixcbiAgICAgICAgY2hpbGRyZW46IFtdLFxuICAgICAgICBzZXJ2ZXJQcm9wczogdm9pZCAwLFxuICAgICAgICBzZXJ2ZXJUYWlsOiBbXSxcbiAgICAgICAgZGlzdGFuY2VGcm9tTGVhZjogZGlzdGFuY2VGcm9tTGVhZlxuICAgICAgfTtcbiAgICAgIHNpYmxpbmdzLnB1c2goZGlzdGFuY2VGcm9tTGVhZik7XG4gICAgICByZXR1cm4gZGlzdGFuY2VGcm9tTGVhZjtcbiAgICB9XG4gICAgZnVuY3Rpb24gd2Fybk5vbkh5ZHJhdGVkSW5zdGFuY2UoZmliZXIsIHJlamVjdGVkQ2FuZGlkYXRlKSB7XG4gICAgICBkaWRTdXNwZW5kT3JFcnJvckRFViB8fFxuICAgICAgICAoKGZpYmVyID0gYnVpbGRIeWRyYXRpb25EaWZmTm9kZShmaWJlciwgMCkpLFxuICAgICAgICAoZmliZXIuc2VydmVyUHJvcHMgPSBudWxsKSxcbiAgICAgICAgbnVsbCAhPT0gcmVqZWN0ZWRDYW5kaWRhdGUgJiZcbiAgICAgICAgICAoKHJlamVjdGVkQ2FuZGlkYXRlID1cbiAgICAgICAgICAgIGRlc2NyaWJlSHlkcmF0YWJsZUluc3RhbmNlRm9yRGV2V2FybmluZ3MocmVqZWN0ZWRDYW5kaWRhdGUpKSxcbiAgICAgICAgICBmaWJlci5zZXJ2ZXJUYWlsLnB1c2gocmVqZWN0ZWRDYW5kaWRhdGUpKSk7XG4gICAgfVxuICAgIGZ1bmN0aW9uIHRocm93T25IeWRyYXRpb25NaXNtYXRjaChmaWJlcikge1xuICAgICAgdmFyIGRpZmYgPSBcIlwiLFxuICAgICAgICBkaWZmUm9vdCA9IGh5ZHJhdGlvbkRpZmZSb290REVWO1xuICAgICAgbnVsbCAhPT0gZGlmZlJvb3QgJiZcbiAgICAgICAgKChoeWRyYXRpb25EaWZmUm9vdERFViA9IG51bGwpLCAoZGlmZiA9IGRlc2NyaWJlRGlmZihkaWZmUm9vdCkpKTtcbiAgICAgIHF1ZXVlSHlkcmF0aW9uRXJyb3IoXG4gICAgICAgIGNyZWF0ZUNhcHR1cmVkVmFsdWVBdEZpYmVyKFxuICAgICAgICAgIEVycm9yKFxuICAgICAgICAgICAgXCJIeWRyYXRpb24gZmFpbGVkIGJlY2F1c2UgdGhlIHNlcnZlciByZW5kZXJlZCBIVE1MIGRpZG4ndCBtYXRjaCB0aGUgY2xpZW50LiBBcyBhIHJlc3VsdCB0aGlzIHRyZWUgd2lsbCBiZSByZWdlbmVyYXRlZCBvbiB0aGUgY2xpZW50LiBUaGlzIGNhbiBoYXBwZW4gaWYgYSBTU1ItZWQgQ2xpZW50IENvbXBvbmVudCB1c2VkOlxcblxcbi0gQSBzZXJ2ZXIvY2xpZW50IGJyYW5jaCBgaWYgKHR5cGVvZiB3aW5kb3cgIT09ICd1bmRlZmluZWQnKWAuXFxuLSBWYXJpYWJsZSBpbnB1dCBzdWNoIGFzIGBEYXRlLm5vdygpYCBvciBgTWF0aC5yYW5kb20oKWAgd2hpY2ggY2hhbmdlcyBlYWNoIHRpbWUgaXQncyBjYWxsZWQuXFxuLSBEYXRlIGZvcm1hdHRpbmcgaW4gYSB1c2VyJ3MgbG9jYWxlIHdoaWNoIGRvZXNuJ3QgbWF0Y2ggdGhlIHNlcnZlci5cXG4tIEV4dGVybmFsIGNoYW5naW5nIGRhdGEgd2l0aG91dCBzZW5kaW5nIGEgc25hcHNob3Qgb2YgaXQgYWxvbmcgd2l0aCB0aGUgSFRNTC5cXG4tIEludmFsaWQgSFRNTCB0YWcgbmVzdGluZy5cXG5cXG5JdCBjYW4gYWxzbyBoYXBwZW4gaWYgdGhlIGNsaWVudCBoYXMgYSBicm93c2VyIGV4dGVuc2lvbiBpbnN0YWxsZWQgd2hpY2ggbWVzc2VzIHdpdGggdGhlIEhUTUwgYmVmb3JlIFJlYWN0IGxvYWRlZC5cXG5cXG5odHRwczovL3JlYWN0LmRldi9saW5rL2h5ZHJhdGlvbi1taXNtYXRjaFwiICtcbiAgICAgICAgICAgICAgZGlmZlxuICAgICAgICAgICksXG4gICAgICAgICAgZmliZXJcbiAgICAgICAgKVxuICAgICAgKTtcbiAgICAgIHRocm93IEh5ZHJhdGlvbk1pc21hdGNoRXhjZXB0aW9uO1xuICAgIH1cbiAgICBmdW5jdGlvbiBwcmVwYXJlVG9IeWRyYXRlSG9zdEluc3RhbmNlKGZpYmVyKSB7XG4gICAgICB2YXIgZGlkSHlkcmF0ZSA9IGZpYmVyLnN0YXRlTm9kZTtcbiAgICAgIHZhciB0eXBlID0gZmliZXIudHlwZSxcbiAgICAgICAgcHJvcHMgPSBmaWJlci5tZW1vaXplZFByb3BzO1xuICAgICAgZGlkSHlkcmF0ZVtpbnRlcm5hbEluc3RhbmNlS2V5XSA9IGZpYmVyO1xuICAgICAgZGlkSHlkcmF0ZVtpbnRlcm5hbFByb3BzS2V5XSA9IHByb3BzO1xuICAgICAgdmFsaWRhdGVQcm9wZXJ0aWVzSW5EZXZlbG9wbWVudCh0eXBlLCBwcm9wcyk7XG4gICAgICBzd2l0Y2ggKHR5cGUpIHtcbiAgICAgICAgY2FzZSBcImRpYWxvZ1wiOlxuICAgICAgICAgIGxpc3RlblRvTm9uRGVsZWdhdGVkRXZlbnQoXCJjYW5jZWxcIiwgZGlkSHlkcmF0ZSk7XG4gICAgICAgICAgbGlzdGVuVG9Ob25EZWxlZ2F0ZWRFdmVudChcImNsb3NlXCIsIGRpZEh5ZHJhdGUpO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIFwiaWZyYW1lXCI6XG4gICAgICAgIGNhc2UgXCJvYmplY3RcIjpcbiAgICAgICAgY2FzZSBcImVtYmVkXCI6XG4gICAgICAgICAgbGlzdGVuVG9Ob25EZWxlZ2F0ZWRFdmVudChcImxvYWRcIiwgZGlkSHlkcmF0ZSk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgXCJ2aWRlb1wiOlxuICAgICAgICBjYXNlIFwiYXVkaW9cIjpcbiAgICAgICAgICBmb3IgKHR5cGUgPSAwOyB0eXBlIDwgbWVkaWFFdmVudFR5cGVzLmxlbmd0aDsgdHlwZSsrKVxuICAgICAgICAgICAgbGlzdGVuVG9Ob25EZWxlZ2F0ZWRFdmVudChtZWRpYUV2ZW50VHlwZXNbdHlwZV0sIGRpZEh5ZHJhdGUpO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIFwic291cmNlXCI6XG4gICAgICAgICAgbGlzdGVuVG9Ob25EZWxlZ2F0ZWRFdmVudChcImVycm9yXCIsIGRpZEh5ZHJhdGUpO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIFwiaW1nXCI6XG4gICAgICAgIGNhc2UgXCJpbWFnZVwiOlxuICAgICAgICBjYXNlIFwibGlua1wiOlxuICAgICAgICAgIGxpc3RlblRvTm9uRGVsZWdhdGVkRXZlbnQoXCJlcnJvclwiLCBkaWRIeWRyYXRlKTtcbiAgICAgICAgICBsaXN0ZW5Ub05vbkRlbGVnYXRlZEV2ZW50KFwibG9hZFwiLCBkaWRIeWRyYXRlKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSBcImRldGFpbHNcIjpcbiAgICAgICAgICBsaXN0ZW5Ub05vbkRlbGVnYXRlZEV2ZW50KFwidG9nZ2xlXCIsIGRpZEh5ZHJhdGUpO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIFwiaW5wdXRcIjpcbiAgICAgICAgICBjaGVja0NvbnRyb2xsZWRWYWx1ZVByb3BzKFwiaW5wdXRcIiwgcHJvcHMpO1xuICAgICAgICAgIGxpc3RlblRvTm9uRGVsZWdhdGVkRXZlbnQoXCJpbnZhbGlkXCIsIGRpZEh5ZHJhdGUpO1xuICAgICAgICAgIHZhbGlkYXRlSW5wdXRQcm9wcyhkaWRIeWRyYXRlLCBwcm9wcyk7XG4gICAgICAgICAgaW5pdElucHV0KFxuICAgICAgICAgICAgZGlkSHlkcmF0ZSxcbiAgICAgICAgICAgIHByb3BzLnZhbHVlLFxuICAgICAgICAgICAgcHJvcHMuZGVmYXVsdFZhbHVlLFxuICAgICAgICAgICAgcHJvcHMuY2hlY2tlZCxcbiAgICAgICAgICAgIHByb3BzLmRlZmF1bHRDaGVja2VkLFxuICAgICAgICAgICAgcHJvcHMudHlwZSxcbiAgICAgICAgICAgIHByb3BzLm5hbWUsXG4gICAgICAgICAgICAhMFxuICAgICAgICAgICk7XG4gICAgICAgICAgdHJhY2soZGlkSHlkcmF0ZSk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgXCJvcHRpb25cIjpcbiAgICAgICAgICB2YWxpZGF0ZU9wdGlvblByb3BzKGRpZEh5ZHJhdGUsIHByb3BzKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSBcInNlbGVjdFwiOlxuICAgICAgICAgIGNoZWNrQ29udHJvbGxlZFZhbHVlUHJvcHMoXCJzZWxlY3RcIiwgcHJvcHMpO1xuICAgICAgICAgIGxpc3RlblRvTm9uRGVsZWdhdGVkRXZlbnQoXCJpbnZhbGlkXCIsIGRpZEh5ZHJhdGUpO1xuICAgICAgICAgIHZhbGlkYXRlU2VsZWN0UHJvcHMoZGlkSHlkcmF0ZSwgcHJvcHMpO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIFwidGV4dGFyZWFcIjpcbiAgICAgICAgICBjaGVja0NvbnRyb2xsZWRWYWx1ZVByb3BzKFwidGV4dGFyZWFcIiwgcHJvcHMpLFxuICAgICAgICAgICAgbGlzdGVuVG9Ob25EZWxlZ2F0ZWRFdmVudChcImludmFsaWRcIiwgZGlkSHlkcmF0ZSksXG4gICAgICAgICAgICB2YWxpZGF0ZVRleHRhcmVhUHJvcHMoZGlkSHlkcmF0ZSwgcHJvcHMpLFxuICAgICAgICAgICAgaW5pdFRleHRhcmVhKFxuICAgICAgICAgICAgICBkaWRIeWRyYXRlLFxuICAgICAgICAgICAgICBwcm9wcy52YWx1ZSxcbiAgICAgICAgICAgICAgcHJvcHMuZGVmYXVsdFZhbHVlLFxuICAgICAgICAgICAgICBwcm9wcy5jaGlsZHJlblxuICAgICAgICAgICAgKSxcbiAgICAgICAgICAgIHRyYWNrKGRpZEh5ZHJhdGUpO1xuICAgICAgfVxuICAgICAgdHlwZSA9IHByb3BzLmNoaWxkcmVuO1xuICAgICAgKFwic3RyaW5nXCIgIT09IHR5cGVvZiB0eXBlICYmXG4gICAgICAgIFwibnVtYmVyXCIgIT09IHR5cGVvZiB0eXBlICYmXG4gICAgICAgIFwiYmlnaW50XCIgIT09IHR5cGVvZiB0eXBlKSB8fFxuICAgICAgZGlkSHlkcmF0ZS50ZXh0Q29udGVudCA9PT0gXCJcIiArIHR5cGUgfHxcbiAgICAgICEwID09PSBwcm9wcy5zdXBwcmVzc0h5ZHJhdGlvbldhcm5pbmcgfHxcbiAgICAgIGNoZWNrRm9yVW5tYXRjaGVkVGV4dChkaWRIeWRyYXRlLnRleHRDb250ZW50LCB0eXBlKVxuICAgICAgICA/IChudWxsICE9IHByb3BzLnBvcG92ZXIgJiZcbiAgICAgICAgICAgIChsaXN0ZW5Ub05vbkRlbGVnYXRlZEV2ZW50KFwiYmVmb3JldG9nZ2xlXCIsIGRpZEh5ZHJhdGUpLFxuICAgICAgICAgICAgbGlzdGVuVG9Ob25EZWxlZ2F0ZWRFdmVudChcInRvZ2dsZVwiLCBkaWRIeWRyYXRlKSksXG4gICAgICAgICAgbnVsbCAhPSBwcm9wcy5vblNjcm9sbCAmJlxuICAgICAgICAgICAgbGlzdGVuVG9Ob25EZWxlZ2F0ZWRFdmVudChcInNjcm9sbFwiLCBkaWRIeWRyYXRlKSxcbiAgICAgICAgICBudWxsICE9IHByb3BzLm9uU2Nyb2xsRW5kICYmXG4gICAgICAgICAgICBsaXN0ZW5Ub05vbkRlbGVnYXRlZEV2ZW50KFwic2Nyb2xsZW5kXCIsIGRpZEh5ZHJhdGUpLFxuICAgICAgICAgIG51bGwgIT0gcHJvcHMub25DbGljayAmJiAoZGlkSHlkcmF0ZS5vbmNsaWNrID0gbm9vcCQxKSxcbiAgICAgICAgICAoZGlkSHlkcmF0ZSA9ICEwKSlcbiAgICAgICAgOiAoZGlkSHlkcmF0ZSA9ICExKTtcbiAgICAgIGRpZEh5ZHJhdGUgfHwgdGhyb3dPbkh5ZHJhdGlvbk1pc21hdGNoKGZpYmVyKTtcbiAgICB9XG4gICAgZnVuY3Rpb24gcG9wVG9OZXh0SG9zdFBhcmVudChmaWJlcikge1xuICAgICAgZm9yIChoeWRyYXRpb25QYXJlbnRGaWJlciA9IGZpYmVyLnJldHVybjsgaHlkcmF0aW9uUGFyZW50RmliZXI7IClcbiAgICAgICAgc3dpdGNoIChoeWRyYXRpb25QYXJlbnRGaWJlci50YWcpIHtcbiAgICAgICAgICBjYXNlIDU6XG4gICAgICAgICAgY2FzZSAxMzpcbiAgICAgICAgICAgIHJvb3RPclNpbmdsZXRvbkNvbnRleHQgPSAhMTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICBjYXNlIDI3OlxuICAgICAgICAgIGNhc2UgMzpcbiAgICAgICAgICAgIHJvb3RPclNpbmdsZXRvbkNvbnRleHQgPSAhMDtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgaHlkcmF0aW9uUGFyZW50RmliZXIgPSBoeWRyYXRpb25QYXJlbnRGaWJlci5yZXR1cm47XG4gICAgICAgIH1cbiAgICB9XG4gICAgZnVuY3Rpb24gcG9wSHlkcmF0aW9uU3RhdGUoZmliZXIpIHtcbiAgICAgIGlmIChmaWJlciAhPT0gaHlkcmF0aW9uUGFyZW50RmliZXIpIHJldHVybiAhMTtcbiAgICAgIGlmICghaXNIeWRyYXRpbmcpXG4gICAgICAgIHJldHVybiBwb3BUb05leHRIb3N0UGFyZW50KGZpYmVyKSwgKGlzSHlkcmF0aW5nID0gITApLCAhMTtcbiAgICAgIHZhciB0YWcgPSBmaWJlci50YWcsXG4gICAgICAgIEpTQ29tcGlsZXJfdGVtcDtcbiAgICAgIGlmICgoSlNDb21waWxlcl90ZW1wID0gMyAhPT0gdGFnICYmIDI3ICE9PSB0YWcpKSB7XG4gICAgICAgIGlmICgoSlNDb21waWxlcl90ZW1wID0gNSA9PT0gdGFnKSlcbiAgICAgICAgICAoSlNDb21waWxlcl90ZW1wID0gZmliZXIudHlwZSksXG4gICAgICAgICAgICAoSlNDb21waWxlcl90ZW1wID1cbiAgICAgICAgICAgICAgIShcImZvcm1cIiAhPT0gSlNDb21waWxlcl90ZW1wICYmIFwiYnV0dG9uXCIgIT09IEpTQ29tcGlsZXJfdGVtcCkgfHxcbiAgICAgICAgICAgICAgc2hvdWxkU2V0VGV4dENvbnRlbnQoZmliZXIudHlwZSwgZmliZXIubWVtb2l6ZWRQcm9wcykpO1xuICAgICAgICBKU0NvbXBpbGVyX3RlbXAgPSAhSlNDb21waWxlcl90ZW1wO1xuICAgICAgfVxuICAgICAgaWYgKEpTQ29tcGlsZXJfdGVtcCAmJiBuZXh0SHlkcmF0YWJsZUluc3RhbmNlKSB7XG4gICAgICAgIGZvciAoSlNDb21waWxlcl90ZW1wID0gbmV4dEh5ZHJhdGFibGVJbnN0YW5jZTsgSlNDb21waWxlcl90ZW1wOyApIHtcbiAgICAgICAgICB2YXIgZGlmZk5vZGUgPSBidWlsZEh5ZHJhdGlvbkRpZmZOb2RlKGZpYmVyLCAwKSxcbiAgICAgICAgICAgIGRlc2NyaXB0aW9uID1cbiAgICAgICAgICAgICAgZGVzY3JpYmVIeWRyYXRhYmxlSW5zdGFuY2VGb3JEZXZXYXJuaW5ncyhKU0NvbXBpbGVyX3RlbXApO1xuICAgICAgICAgIGRpZmZOb2RlLnNlcnZlclRhaWwucHVzaChkZXNjcmlwdGlvbik7XG4gICAgICAgICAgSlNDb21waWxlcl90ZW1wID1cbiAgICAgICAgICAgIFwiU3VzcGVuc2VcIiA9PT0gZGVzY3JpcHRpb24udHlwZVxuICAgICAgICAgICAgICA/IGdldE5leHRIeWRyYXRhYmxlSW5zdGFuY2VBZnRlclN1c3BlbnNlSW5zdGFuY2UoSlNDb21waWxlcl90ZW1wKVxuICAgICAgICAgICAgICA6IGdldE5leHRIeWRyYXRhYmxlKEpTQ29tcGlsZXJfdGVtcC5uZXh0U2libGluZyk7XG4gICAgICAgIH1cbiAgICAgICAgdGhyb3dPbkh5ZHJhdGlvbk1pc21hdGNoKGZpYmVyKTtcbiAgICAgIH1cbiAgICAgIHBvcFRvTmV4dEhvc3RQYXJlbnQoZmliZXIpO1xuICAgICAgaWYgKDEzID09PSB0YWcpIHtcbiAgICAgICAgZmliZXIgPSBmaWJlci5tZW1vaXplZFN0YXRlO1xuICAgICAgICBmaWJlciA9IG51bGwgIT09IGZpYmVyID8gZmliZXIuZGVoeWRyYXRlZCA6IG51bGw7XG4gICAgICAgIGlmICghZmliZXIpXG4gICAgICAgICAgdGhyb3cgRXJyb3IoXG4gICAgICAgICAgICBcIkV4cGVjdGVkIHRvIGhhdmUgYSBoeWRyYXRlZCBzdXNwZW5zZSBpbnN0YW5jZS4gVGhpcyBlcnJvciBpcyBsaWtlbHkgY2F1c2VkIGJ5IGEgYnVnIGluIFJlYWN0LiBQbGVhc2UgZmlsZSBhbiBpc3N1ZS5cIlxuICAgICAgICAgICk7XG4gICAgICAgIG5leHRIeWRyYXRhYmxlSW5zdGFuY2UgPVxuICAgICAgICAgIGdldE5leHRIeWRyYXRhYmxlSW5zdGFuY2VBZnRlclN1c3BlbnNlSW5zdGFuY2UoZmliZXIpO1xuICAgICAgfSBlbHNlXG4gICAgICAgIDI3ID09PSB0YWdcbiAgICAgICAgICA/ICgodGFnID0gbmV4dEh5ZHJhdGFibGVJbnN0YW5jZSksXG4gICAgICAgICAgICBpc1NpbmdsZXRvblNjb3BlKGZpYmVyLnR5cGUpXG4gICAgICAgICAgICAgID8gKChmaWJlciA9IHByZXZpb3VzSHlkcmF0YWJsZU9uRW50ZXJpbmdTY29wZWRTaW5nbGV0b24pLFxuICAgICAgICAgICAgICAgIChwcmV2aW91c0h5ZHJhdGFibGVPbkVudGVyaW5nU2NvcGVkU2luZ2xldG9uID0gbnVsbCksXG4gICAgICAgICAgICAgICAgKG5leHRIeWRyYXRhYmxlSW5zdGFuY2UgPSBmaWJlcikpXG4gICAgICAgICAgICAgIDogKG5leHRIeWRyYXRhYmxlSW5zdGFuY2UgPSB0YWcpKVxuICAgICAgICAgIDogKG5leHRIeWRyYXRhYmxlSW5zdGFuY2UgPSBoeWRyYXRpb25QYXJlbnRGaWJlclxuICAgICAgICAgICAgICA/IGdldE5leHRIeWRyYXRhYmxlKGZpYmVyLnN0YXRlTm9kZS5uZXh0U2libGluZylcbiAgICAgICAgICAgICAgOiBudWxsKTtcbiAgICAgIHJldHVybiAhMDtcbiAgICB9XG4gICAgZnVuY3Rpb24gcmVzZXRIeWRyYXRpb25TdGF0ZSgpIHtcbiAgICAgIG5leHRIeWRyYXRhYmxlSW5zdGFuY2UgPSBoeWRyYXRpb25QYXJlbnRGaWJlciA9IG51bGw7XG4gICAgICBkaWRTdXNwZW5kT3JFcnJvckRFViA9IGlzSHlkcmF0aW5nID0gITE7XG4gICAgfVxuICAgIGZ1bmN0aW9uIHVwZ3JhZGVIeWRyYXRpb25FcnJvcnNUb1JlY292ZXJhYmxlKCkge1xuICAgICAgdmFyIHF1ZXVlZEVycm9ycyA9IGh5ZHJhdGlvbkVycm9ycztcbiAgICAgIG51bGwgIT09IHF1ZXVlZEVycm9ycyAmJlxuICAgICAgICAobnVsbCA9PT0gd29ya0luUHJvZ3Jlc3NSb290UmVjb3ZlcmFibGVFcnJvcnNcbiAgICAgICAgICA/ICh3b3JrSW5Qcm9ncmVzc1Jvb3RSZWNvdmVyYWJsZUVycm9ycyA9IHF1ZXVlZEVycm9ycylcbiAgICAgICAgICA6IHdvcmtJblByb2dyZXNzUm9vdFJlY292ZXJhYmxlRXJyb3JzLnB1c2guYXBwbHkoXG4gICAgICAgICAgICAgIHdvcmtJblByb2dyZXNzUm9vdFJlY292ZXJhYmxlRXJyb3JzLFxuICAgICAgICAgICAgICBxdWV1ZWRFcnJvcnNcbiAgICAgICAgICAgICksXG4gICAgICAgIChoeWRyYXRpb25FcnJvcnMgPSBudWxsKSk7XG4gICAgICByZXR1cm4gcXVldWVkRXJyb3JzO1xuICAgIH1cbiAgICBmdW5jdGlvbiBxdWV1ZUh5ZHJhdGlvbkVycm9yKGVycm9yKSB7XG4gICAgICBudWxsID09PSBoeWRyYXRpb25FcnJvcnNcbiAgICAgICAgPyAoaHlkcmF0aW9uRXJyb3JzID0gW2Vycm9yXSlcbiAgICAgICAgOiBoeWRyYXRpb25FcnJvcnMucHVzaChlcnJvcik7XG4gICAgfVxuICAgIGZ1bmN0aW9uIGVtaXRQZW5kaW5nSHlkcmF0aW9uV2FybmluZ3MoKSB7XG4gICAgICB2YXIgZGlmZlJvb3QgPSBoeWRyYXRpb25EaWZmUm9vdERFVjtcbiAgICAgIGlmIChudWxsICE9PSBkaWZmUm9vdCkge1xuICAgICAgICBoeWRyYXRpb25EaWZmUm9vdERFViA9IG51bGw7XG4gICAgICAgIGZvciAodmFyIGRpZmYgPSBkZXNjcmliZURpZmYoZGlmZlJvb3QpOyAwIDwgZGlmZlJvb3QuY2hpbGRyZW4ubGVuZ3RoOyApXG4gICAgICAgICAgZGlmZlJvb3QgPSBkaWZmUm9vdC5jaGlsZHJlblswXTtcbiAgICAgICAgcnVuV2l0aEZpYmVySW5ERVYoZGlmZlJvb3QuZmliZXIsIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICBjb25zb2xlLmVycm9yKFxuICAgICAgICAgICAgXCJBIHRyZWUgaHlkcmF0ZWQgYnV0IHNvbWUgYXR0cmlidXRlcyBvZiB0aGUgc2VydmVyIHJlbmRlcmVkIEhUTUwgZGlkbid0IG1hdGNoIHRoZSBjbGllbnQgcHJvcGVydGllcy4gVGhpcyB3b24ndCBiZSBwYXRjaGVkIHVwLiBUaGlzIGNhbiBoYXBwZW4gaWYgYSBTU1ItZWQgQ2xpZW50IENvbXBvbmVudCB1c2VkOlxcblxcbi0gQSBzZXJ2ZXIvY2xpZW50IGJyYW5jaCBgaWYgKHR5cGVvZiB3aW5kb3cgIT09ICd1bmRlZmluZWQnKWAuXFxuLSBWYXJpYWJsZSBpbnB1dCBzdWNoIGFzIGBEYXRlLm5vdygpYCBvciBgTWF0aC5yYW5kb20oKWAgd2hpY2ggY2hhbmdlcyBlYWNoIHRpbWUgaXQncyBjYWxsZWQuXFxuLSBEYXRlIGZvcm1hdHRpbmcgaW4gYSB1c2VyJ3MgbG9jYWxlIHdoaWNoIGRvZXNuJ3QgbWF0Y2ggdGhlIHNlcnZlci5cXG4tIEV4dGVybmFsIGNoYW5naW5nIGRhdGEgd2l0aG91dCBzZW5kaW5nIGEgc25hcHNob3Qgb2YgaXQgYWxvbmcgd2l0aCB0aGUgSFRNTC5cXG4tIEludmFsaWQgSFRNTCB0YWcgbmVzdGluZy5cXG5cXG5JdCBjYW4gYWxzbyBoYXBwZW4gaWYgdGhlIGNsaWVudCBoYXMgYSBicm93c2VyIGV4dGVuc2lvbiBpbnN0YWxsZWQgd2hpY2ggbWVzc2VzIHdpdGggdGhlIEhUTUwgYmVmb3JlIFJlYWN0IGxvYWRlZC5cXG5cXG4lcyVzXCIsXG4gICAgICAgICAgICBcImh0dHBzOi8vcmVhY3QuZGV2L2xpbmsvaHlkcmF0aW9uLW1pc21hdGNoXCIsXG4gICAgICAgICAgICBkaWZmXG4gICAgICAgICAgKTtcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfVxuICAgIGZ1bmN0aW9uIHJlc2V0Q29udGV4dERlcGVuZGVuY2llcygpIHtcbiAgICAgIGxhc3RDb250ZXh0RGVwZW5kZW5jeSA9IGN1cnJlbnRseVJlbmRlcmluZ0ZpYmVyJDEgPSBudWxsO1xuICAgICAgaXNEaXNhbGxvd2VkQ29udGV4dFJlYWRJbkRFViA9ICExO1xuICAgIH1cbiAgICBmdW5jdGlvbiBwdXNoUHJvdmlkZXIocHJvdmlkZXJGaWJlciwgY29udGV4dCwgbmV4dFZhbHVlKSB7XG4gICAgICBwdXNoKHZhbHVlQ3Vyc29yLCBjb250ZXh0Ll9jdXJyZW50VmFsdWUsIHByb3ZpZGVyRmliZXIpO1xuICAgICAgY29udGV4dC5fY3VycmVudFZhbHVlID0gbmV4dFZhbHVlO1xuICAgICAgcHVzaChyZW5kZXJlckN1cnNvckRFViwgY29udGV4dC5fY3VycmVudFJlbmRlcmVyLCBwcm92aWRlckZpYmVyKTtcbiAgICAgIHZvaWQgMCAhPT0gY29udGV4dC5fY3VycmVudFJlbmRlcmVyICYmXG4gICAgICAgIG51bGwgIT09IGNvbnRleHQuX2N1cnJlbnRSZW5kZXJlciAmJlxuICAgICAgICBjb250ZXh0Ll9jdXJyZW50UmVuZGVyZXIgIT09IHJlbmRlcmVyU2lnaWwgJiZcbiAgICAgICAgY29uc29sZS5lcnJvcihcbiAgICAgICAgICBcIkRldGVjdGVkIG11bHRpcGxlIHJlbmRlcmVycyBjb25jdXJyZW50bHkgcmVuZGVyaW5nIHRoZSBzYW1lIGNvbnRleHQgcHJvdmlkZXIuIFRoaXMgaXMgY3VycmVudGx5IHVuc3VwcG9ydGVkLlwiXG4gICAgICAgICk7XG4gICAgICBjb250ZXh0Ll9jdXJyZW50UmVuZGVyZXIgPSByZW5kZXJlclNpZ2lsO1xuICAgIH1cbiAgICBmdW5jdGlvbiBwb3BQcm92aWRlcihjb250ZXh0LCBwcm92aWRlckZpYmVyKSB7XG4gICAgICBjb250ZXh0Ll9jdXJyZW50VmFsdWUgPSB2YWx1ZUN1cnNvci5jdXJyZW50O1xuICAgICAgdmFyIGN1cnJlbnRSZW5kZXJlciA9IHJlbmRlcmVyQ3Vyc29yREVWLmN1cnJlbnQ7XG4gICAgICBwb3AocmVuZGVyZXJDdXJzb3JERVYsIHByb3ZpZGVyRmliZXIpO1xuICAgICAgY29udGV4dC5fY3VycmVudFJlbmRlcmVyID0gY3VycmVudFJlbmRlcmVyO1xuICAgICAgcG9wKHZhbHVlQ3Vyc29yLCBwcm92aWRlckZpYmVyKTtcbiAgICB9XG4gICAgZnVuY3Rpb24gc2NoZWR1bGVDb250ZXh0V29ya09uUGFyZW50UGF0aChcbiAgICAgIHBhcmVudCxcbiAgICAgIHJlbmRlckxhbmVzLFxuICAgICAgcHJvcGFnYXRpb25Sb290XG4gICAgKSB7XG4gICAgICBmb3IgKDsgbnVsbCAhPT0gcGFyZW50OyApIHtcbiAgICAgICAgdmFyIGFsdGVybmF0ZSA9IHBhcmVudC5hbHRlcm5hdGU7XG4gICAgICAgIChwYXJlbnQuY2hpbGRMYW5lcyAmIHJlbmRlckxhbmVzKSAhPT0gcmVuZGVyTGFuZXNcbiAgICAgICAgICA/ICgocGFyZW50LmNoaWxkTGFuZXMgfD0gcmVuZGVyTGFuZXMpLFxuICAgICAgICAgICAgbnVsbCAhPT0gYWx0ZXJuYXRlICYmIChhbHRlcm5hdGUuY2hpbGRMYW5lcyB8PSByZW5kZXJMYW5lcykpXG4gICAgICAgICAgOiBudWxsICE9PSBhbHRlcm5hdGUgJiZcbiAgICAgICAgICAgIChhbHRlcm5hdGUuY2hpbGRMYW5lcyAmIHJlbmRlckxhbmVzKSAhPT0gcmVuZGVyTGFuZXMgJiZcbiAgICAgICAgICAgIChhbHRlcm5hdGUuY2hpbGRMYW5lcyB8PSByZW5kZXJMYW5lcyk7XG4gICAgICAgIGlmIChwYXJlbnQgPT09IHByb3BhZ2F0aW9uUm9vdCkgYnJlYWs7XG4gICAgICAgIHBhcmVudCA9IHBhcmVudC5yZXR1cm47XG4gICAgICB9XG4gICAgICBwYXJlbnQgIT09IHByb3BhZ2F0aW9uUm9vdCAmJlxuICAgICAgICBjb25zb2xlLmVycm9yKFxuICAgICAgICAgIFwiRXhwZWN0ZWQgdG8gZmluZCB0aGUgcHJvcGFnYXRpb24gcm9vdCB3aGVuIHNjaGVkdWxpbmcgY29udGV4dCB3b3JrLiBUaGlzIGVycm9yIGlzIGxpa2VseSBjYXVzZWQgYnkgYSBidWcgaW4gUmVhY3QuIFBsZWFzZSBmaWxlIGFuIGlzc3VlLlwiXG4gICAgICAgICk7XG4gICAgfVxuICAgIGZ1bmN0aW9uIHByb3BhZ2F0ZUNvbnRleHRDaGFuZ2VzKFxuICAgICAgd29ya0luUHJvZ3Jlc3MsXG4gICAgICBjb250ZXh0cyxcbiAgICAgIHJlbmRlckxhbmVzLFxuICAgICAgZm9yY2VQcm9wYWdhdGVFbnRpcmVUcmVlXG4gICAgKSB7XG4gICAgICB2YXIgZmliZXIgPSB3b3JrSW5Qcm9ncmVzcy5jaGlsZDtcbiAgICAgIG51bGwgIT09IGZpYmVyICYmIChmaWJlci5yZXR1cm4gPSB3b3JrSW5Qcm9ncmVzcyk7XG4gICAgICBmb3IgKDsgbnVsbCAhPT0gZmliZXI7ICkge1xuICAgICAgICB2YXIgbGlzdCA9IGZpYmVyLmRlcGVuZGVuY2llcztcbiAgICAgICAgaWYgKG51bGwgIT09IGxpc3QpIHtcbiAgICAgICAgICB2YXIgbmV4dEZpYmVyID0gZmliZXIuY2hpbGQ7XG4gICAgICAgICAgbGlzdCA9IGxpc3QuZmlyc3RDb250ZXh0O1xuICAgICAgICAgIGE6IGZvciAoOyBudWxsICE9PSBsaXN0OyApIHtcbiAgICAgICAgICAgIHZhciBkZXBlbmRlbmN5ID0gbGlzdDtcbiAgICAgICAgICAgIGxpc3QgPSBmaWJlcjtcbiAgICAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgY29udGV4dHMubGVuZ3RoOyBpKyspXG4gICAgICAgICAgICAgIGlmIChkZXBlbmRlbmN5LmNvbnRleHQgPT09IGNvbnRleHRzW2ldKSB7XG4gICAgICAgICAgICAgICAgbGlzdC5sYW5lcyB8PSByZW5kZXJMYW5lcztcbiAgICAgICAgICAgICAgICBkZXBlbmRlbmN5ID0gbGlzdC5hbHRlcm5hdGU7XG4gICAgICAgICAgICAgICAgbnVsbCAhPT0gZGVwZW5kZW5jeSAmJiAoZGVwZW5kZW5jeS5sYW5lcyB8PSByZW5kZXJMYW5lcyk7XG4gICAgICAgICAgICAgICAgc2NoZWR1bGVDb250ZXh0V29ya09uUGFyZW50UGF0aChcbiAgICAgICAgICAgICAgICAgIGxpc3QucmV0dXJuLFxuICAgICAgICAgICAgICAgICAgcmVuZGVyTGFuZXMsXG4gICAgICAgICAgICAgICAgICB3b3JrSW5Qcm9ncmVzc1xuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgZm9yY2VQcm9wYWdhdGVFbnRpcmVUcmVlIHx8IChuZXh0RmliZXIgPSBudWxsKTtcbiAgICAgICAgICAgICAgICBicmVhayBhO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICBsaXN0ID0gZGVwZW5kZW5jeS5uZXh0O1xuICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIGlmICgxOCA9PT0gZmliZXIudGFnKSB7XG4gICAgICAgICAgbmV4dEZpYmVyID0gZmliZXIucmV0dXJuO1xuICAgICAgICAgIGlmIChudWxsID09PSBuZXh0RmliZXIpXG4gICAgICAgICAgICB0aHJvdyBFcnJvcihcbiAgICAgICAgICAgICAgXCJXZSBqdXN0IGNhbWUgZnJvbSBhIHBhcmVudCBzbyB3ZSBtdXN0IGhhdmUgaGFkIGEgcGFyZW50LiBUaGlzIGlzIGEgYnVnIGluIFJlYWN0LlwiXG4gICAgICAgICAgICApO1xuICAgICAgICAgIG5leHRGaWJlci5sYW5lcyB8PSByZW5kZXJMYW5lcztcbiAgICAgICAgICBsaXN0ID0gbmV4dEZpYmVyLmFsdGVybmF0ZTtcbiAgICAgICAgICBudWxsICE9PSBsaXN0ICYmIChsaXN0LmxhbmVzIHw9IHJlbmRlckxhbmVzKTtcbiAgICAgICAgICBzY2hlZHVsZUNvbnRleHRXb3JrT25QYXJlbnRQYXRoKFxuICAgICAgICAgICAgbmV4dEZpYmVyLFxuICAgICAgICAgICAgcmVuZGVyTGFuZXMsXG4gICAgICAgICAgICB3b3JrSW5Qcm9ncmVzc1xuICAgICAgICAgICk7XG4gICAgICAgICAgbmV4dEZpYmVyID0gbnVsbDtcbiAgICAgICAgfSBlbHNlIG5leHRGaWJlciA9IGZpYmVyLmNoaWxkO1xuICAgICAgICBpZiAobnVsbCAhPT0gbmV4dEZpYmVyKSBuZXh0RmliZXIucmV0dXJuID0gZmliZXI7XG4gICAgICAgIGVsc2VcbiAgICAgICAgICBmb3IgKG5leHRGaWJlciA9IGZpYmVyOyBudWxsICE9PSBuZXh0RmliZXI7ICkge1xuICAgICAgICAgICAgaWYgKG5leHRGaWJlciA9PT0gd29ya0luUHJvZ3Jlc3MpIHtcbiAgICAgICAgICAgICAgbmV4dEZpYmVyID0gbnVsbDtcbiAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBmaWJlciA9IG5leHRGaWJlci5zaWJsaW5nO1xuICAgICAgICAgICAgaWYgKG51bGwgIT09IGZpYmVyKSB7XG4gICAgICAgICAgICAgIGZpYmVyLnJldHVybiA9IG5leHRGaWJlci5yZXR1cm47XG4gICAgICAgICAgICAgIG5leHRGaWJlciA9IGZpYmVyO1xuICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIG5leHRGaWJlciA9IG5leHRGaWJlci5yZXR1cm47XG4gICAgICAgICAgfVxuICAgICAgICBmaWJlciA9IG5leHRGaWJlcjtcbiAgICAgIH1cbiAgICB9XG4gICAgZnVuY3Rpb24gcHJvcGFnYXRlUGFyZW50Q29udGV4dENoYW5nZXMoXG4gICAgICBjdXJyZW50LFxuICAgICAgd29ya0luUHJvZ3Jlc3MsXG4gICAgICByZW5kZXJMYW5lcyxcbiAgICAgIGZvcmNlUHJvcGFnYXRlRW50aXJlVHJlZVxuICAgICkge1xuICAgICAgY3VycmVudCA9IG51bGw7XG4gICAgICBmb3IgKFxuICAgICAgICB2YXIgcGFyZW50ID0gd29ya0luUHJvZ3Jlc3MsIGlzSW5zaWRlUHJvcGFnYXRpb25CYWlsb3V0ID0gITE7XG4gICAgICAgIG51bGwgIT09IHBhcmVudDtcblxuICAgICAgKSB7XG4gICAgICAgIGlmICghaXNJbnNpZGVQcm9wYWdhdGlvbkJhaWxvdXQpXG4gICAgICAgICAgaWYgKDAgIT09IChwYXJlbnQuZmxhZ3MgJiA1MjQyODgpKSBpc0luc2lkZVByb3BhZ2F0aW9uQmFpbG91dCA9ICEwO1xuICAgICAgICAgIGVsc2UgaWYgKDAgIT09IChwYXJlbnQuZmxhZ3MgJiAyNjIxNDQpKSBicmVhaztcbiAgICAgICAgaWYgKDEwID09PSBwYXJlbnQudGFnKSB7XG4gICAgICAgICAgdmFyIGN1cnJlbnRQYXJlbnQgPSBwYXJlbnQuYWx0ZXJuYXRlO1xuICAgICAgICAgIGlmIChudWxsID09PSBjdXJyZW50UGFyZW50KVxuICAgICAgICAgICAgdGhyb3cgRXJyb3IoXCJTaG91bGQgaGF2ZSBhIGN1cnJlbnQgZmliZXIuIFRoaXMgaXMgYSBidWcgaW4gUmVhY3QuXCIpO1xuICAgICAgICAgIGN1cnJlbnRQYXJlbnQgPSBjdXJyZW50UGFyZW50Lm1lbW9pemVkUHJvcHM7XG4gICAgICAgICAgaWYgKG51bGwgIT09IGN1cnJlbnRQYXJlbnQpIHtcbiAgICAgICAgICAgIHZhciBjb250ZXh0ID0gcGFyZW50LnR5cGU7XG4gICAgICAgICAgICBvYmplY3RJcyhwYXJlbnQucGVuZGluZ1Byb3BzLnZhbHVlLCBjdXJyZW50UGFyZW50LnZhbHVlKSB8fFxuICAgICAgICAgICAgICAobnVsbCAhPT0gY3VycmVudFxuICAgICAgICAgICAgICAgID8gY3VycmVudC5wdXNoKGNvbnRleHQpXG4gICAgICAgICAgICAgICAgOiAoY3VycmVudCA9IFtjb250ZXh0XSkpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIGlmIChwYXJlbnQgPT09IGhvc3RUcmFuc2l0aW9uUHJvdmlkZXJDdXJzb3IuY3VycmVudCkge1xuICAgICAgICAgIGN1cnJlbnRQYXJlbnQgPSBwYXJlbnQuYWx0ZXJuYXRlO1xuICAgICAgICAgIGlmIChudWxsID09PSBjdXJyZW50UGFyZW50KVxuICAgICAgICAgICAgdGhyb3cgRXJyb3IoXCJTaG91bGQgaGF2ZSBhIGN1cnJlbnQgZmliZXIuIFRoaXMgaXMgYSBidWcgaW4gUmVhY3QuXCIpO1xuICAgICAgICAgIGN1cnJlbnRQYXJlbnQubWVtb2l6ZWRTdGF0ZS5tZW1vaXplZFN0YXRlICE9PVxuICAgICAgICAgICAgcGFyZW50Lm1lbW9pemVkU3RhdGUubWVtb2l6ZWRTdGF0ZSAmJlxuICAgICAgICAgICAgKG51bGwgIT09IGN1cnJlbnRcbiAgICAgICAgICAgICAgPyBjdXJyZW50LnB1c2goSG9zdFRyYW5zaXRpb25Db250ZXh0KVxuICAgICAgICAgICAgICA6IChjdXJyZW50ID0gW0hvc3RUcmFuc2l0aW9uQ29udGV4dF0pKTtcbiAgICAgICAgfVxuICAgICAgICBwYXJlbnQgPSBwYXJlbnQucmV0dXJuO1xuICAgICAgfVxuICAgICAgbnVsbCAhPT0gY3VycmVudCAmJlxuICAgICAgICBwcm9wYWdhdGVDb250ZXh0Q2hhbmdlcyhcbiAgICAgICAgICB3b3JrSW5Qcm9ncmVzcyxcbiAgICAgICAgICBjdXJyZW50LFxuICAgICAgICAgIHJlbmRlckxhbmVzLFxuICAgICAgICAgIGZvcmNlUHJvcGFnYXRlRW50aXJlVHJlZVxuICAgICAgICApO1xuICAgICAgd29ya0luUHJvZ3Jlc3MuZmxhZ3MgfD0gMjYyMTQ0O1xuICAgIH1cbiAgICBmdW5jdGlvbiBjaGVja0lmQ29udGV4dENoYW5nZWQoY3VycmVudERlcGVuZGVuY2llcykge1xuICAgICAgZm9yIChcbiAgICAgICAgY3VycmVudERlcGVuZGVuY2llcyA9IGN1cnJlbnREZXBlbmRlbmNpZXMuZmlyc3RDb250ZXh0O1xuICAgICAgICBudWxsICE9PSBjdXJyZW50RGVwZW5kZW5jaWVzO1xuXG4gICAgICApIHtcbiAgICAgICAgaWYgKFxuICAgICAgICAgICFvYmplY3RJcyhcbiAgICAgICAgICAgIGN1cnJlbnREZXBlbmRlbmNpZXMuY29udGV4dC5fY3VycmVudFZhbHVlLFxuICAgICAgICAgICAgY3VycmVudERlcGVuZGVuY2llcy5tZW1vaXplZFZhbHVlXG4gICAgICAgICAgKVxuICAgICAgICApXG4gICAgICAgICAgcmV0dXJuICEwO1xuICAgICAgICBjdXJyZW50RGVwZW5kZW5jaWVzID0gY3VycmVudERlcGVuZGVuY2llcy5uZXh0O1xuICAgICAgfVxuICAgICAgcmV0dXJuICExO1xuICAgIH1cbiAgICBmdW5jdGlvbiBwcmVwYXJlVG9SZWFkQ29udGV4dCh3b3JrSW5Qcm9ncmVzcykge1xuICAgICAgY3VycmVudGx5UmVuZGVyaW5nRmliZXIkMSA9IHdvcmtJblByb2dyZXNzO1xuICAgICAgbGFzdENvbnRleHREZXBlbmRlbmN5ID0gbnVsbDtcbiAgICAgIHdvcmtJblByb2dyZXNzID0gd29ya0luUHJvZ3Jlc3MuZGVwZW5kZW5jaWVzO1xuICAgICAgbnVsbCAhPT0gd29ya0luUHJvZ3Jlc3MgJiYgKHdvcmtJblByb2dyZXNzLmZpcnN0Q29udGV4dCA9IG51bGwpO1xuICAgIH1cbiAgICBmdW5jdGlvbiByZWFkQ29udGV4dChjb250ZXh0KSB7XG4gICAgICBpc0Rpc2FsbG93ZWRDb250ZXh0UmVhZEluREVWICYmXG4gICAgICAgIGNvbnNvbGUuZXJyb3IoXG4gICAgICAgICAgXCJDb250ZXh0IGNhbiBvbmx5IGJlIHJlYWQgd2hpbGUgUmVhY3QgaXMgcmVuZGVyaW5nLiBJbiBjbGFzc2VzLCB5b3UgY2FuIHJlYWQgaXQgaW4gdGhlIHJlbmRlciBtZXRob2Qgb3IgZ2V0RGVyaXZlZFN0YXRlRnJvbVByb3BzLiBJbiBmdW5jdGlvbiBjb21wb25lbnRzLCB5b3UgY2FuIHJlYWQgaXQgZGlyZWN0bHkgaW4gdGhlIGZ1bmN0aW9uIGJvZHksIGJ1dCBub3QgaW5zaWRlIEhvb2tzIGxpa2UgdXNlUmVkdWNlcigpIG9yIHVzZU1lbW8oKS5cIlxuICAgICAgICApO1xuICAgICAgcmV0dXJuIHJlYWRDb250ZXh0Rm9yQ29uc3VtZXIoY3VycmVudGx5UmVuZGVyaW5nRmliZXIkMSwgY29udGV4dCk7XG4gICAgfVxuICAgIGZ1bmN0aW9uIHJlYWRDb250ZXh0RHVyaW5nUmVjb25jaWxpYXRpb24oY29uc3VtZXIsIGNvbnRleHQpIHtcbiAgICAgIG51bGwgPT09IGN1cnJlbnRseVJlbmRlcmluZ0ZpYmVyJDEgJiYgcHJlcGFyZVRvUmVhZENvbnRleHQoY29uc3VtZXIpO1xuICAgICAgcmV0dXJuIHJlYWRDb250ZXh0Rm9yQ29uc3VtZXIoY29uc3VtZXIsIGNvbnRleHQpO1xuICAgIH1cbiAgICBmdW5jdGlvbiByZWFkQ29udGV4dEZvckNvbnN1bWVyKGNvbnN1bWVyLCBjb250ZXh0KSB7XG4gICAgICB2YXIgdmFsdWUgPSBjb250ZXh0Ll9jdXJyZW50VmFsdWU7XG4gICAgICBjb250ZXh0ID0geyBjb250ZXh0OiBjb250ZXh0LCBtZW1vaXplZFZhbHVlOiB2YWx1ZSwgbmV4dDogbnVsbCB9O1xuICAgICAgaWYgKG51bGwgPT09IGxhc3RDb250ZXh0RGVwZW5kZW5jeSkge1xuICAgICAgICBpZiAobnVsbCA9PT0gY29uc3VtZXIpXG4gICAgICAgICAgdGhyb3cgRXJyb3IoXG4gICAgICAgICAgICBcIkNvbnRleHQgY2FuIG9ubHkgYmUgcmVhZCB3aGlsZSBSZWFjdCBpcyByZW5kZXJpbmcuIEluIGNsYXNzZXMsIHlvdSBjYW4gcmVhZCBpdCBpbiB0aGUgcmVuZGVyIG1ldGhvZCBvciBnZXREZXJpdmVkU3RhdGVGcm9tUHJvcHMuIEluIGZ1bmN0aW9uIGNvbXBvbmVudHMsIHlvdSBjYW4gcmVhZCBpdCBkaXJlY3RseSBpbiB0aGUgZnVuY3Rpb24gYm9keSwgYnV0IG5vdCBpbnNpZGUgSG9va3MgbGlrZSB1c2VSZWR1Y2VyKCkgb3IgdXNlTWVtbygpLlwiXG4gICAgICAgICAgKTtcbiAgICAgICAgbGFzdENvbnRleHREZXBlbmRlbmN5ID0gY29udGV4dDtcbiAgICAgICAgY29uc3VtZXIuZGVwZW5kZW5jaWVzID0ge1xuICAgICAgICAgIGxhbmVzOiAwLFxuICAgICAgICAgIGZpcnN0Q29udGV4dDogY29udGV4dCxcbiAgICAgICAgICBfZGVidWdUaGVuYWJsZVN0YXRlOiBudWxsXG4gICAgICAgIH07XG4gICAgICAgIGNvbnN1bWVyLmZsYWdzIHw9IDUyNDI4ODtcbiAgICAgIH0gZWxzZSBsYXN0Q29udGV4dERlcGVuZGVuY3kgPSBsYXN0Q29udGV4dERlcGVuZGVuY3kubmV4dCA9IGNvbnRleHQ7XG4gICAgICByZXR1cm4gdmFsdWU7XG4gICAgfVxuICAgIGZ1bmN0aW9uIGNyZWF0ZUNhY2hlKCkge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgY29udHJvbGxlcjogbmV3IEFib3J0Q29udHJvbGxlckxvY2FsKCksXG4gICAgICAgIGRhdGE6IG5ldyBNYXAoKSxcbiAgICAgICAgcmVmQ291bnQ6IDBcbiAgICAgIH07XG4gICAgfVxuICAgIGZ1bmN0aW9uIHJldGFpbkNhY2hlKGNhY2hlKSB7XG4gICAgICBjYWNoZS5jb250cm9sbGVyLnNpZ25hbC5hYm9ydGVkICYmXG4gICAgICAgIGNvbnNvbGUud2FybihcbiAgICAgICAgICBcIkEgY2FjaGUgaW5zdGFuY2Ugd2FzIHJldGFpbmVkIGFmdGVyIGl0IHdhcyBhbHJlYWR5IGZyZWVkLiBUaGlzIGxpa2VseSBpbmRpY2F0ZXMgYSBidWcgaW4gUmVhY3QuXCJcbiAgICAgICAgKTtcbiAgICAgIGNhY2hlLnJlZkNvdW50Kys7XG4gICAgfVxuICAgIGZ1bmN0aW9uIHJlbGVhc2VDYWNoZShjYWNoZSkge1xuICAgICAgY2FjaGUucmVmQ291bnQtLTtcbiAgICAgIDAgPiBjYWNoZS5yZWZDb3VudCAmJlxuICAgICAgICBjb25zb2xlLndhcm4oXG4gICAgICAgICAgXCJBIGNhY2hlIGluc3RhbmNlIHdhcyByZWxlYXNlZCBhZnRlciBpdCB3YXMgYWxyZWFkeSBmcmVlZC4gVGhpcyBsaWtlbHkgaW5kaWNhdGVzIGEgYnVnIGluIFJlYWN0LlwiXG4gICAgICAgICk7XG4gICAgICAwID09PSBjYWNoZS5yZWZDb3VudCAmJlxuICAgICAgICBzY2hlZHVsZUNhbGxiYWNrJDIoTm9ybWFsUHJpb3JpdHksIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICBjYWNoZS5jb250cm9sbGVyLmFib3J0KCk7XG4gICAgICAgIH0pO1xuICAgIH1cbiAgICBmdW5jdGlvbiBwdXNoTmVzdGVkRWZmZWN0RHVyYXRpb25zKCkge1xuICAgICAgdmFyIHByZXZFZmZlY3REdXJhdGlvbiA9IHByb2ZpbGVyRWZmZWN0RHVyYXRpb247XG4gICAgICBwcm9maWxlckVmZmVjdER1cmF0aW9uID0gMDtcbiAgICAgIHJldHVybiBwcmV2RWZmZWN0RHVyYXRpb247XG4gICAgfVxuICAgIGZ1bmN0aW9uIHBvcE5lc3RlZEVmZmVjdER1cmF0aW9ucyhwcmV2RWZmZWN0RHVyYXRpb24pIHtcbiAgICAgIHZhciBlbGFwc2VkVGltZSA9IHByb2ZpbGVyRWZmZWN0RHVyYXRpb247XG4gICAgICBwcm9maWxlckVmZmVjdER1cmF0aW9uID0gcHJldkVmZmVjdER1cmF0aW9uO1xuICAgICAgcmV0dXJuIGVsYXBzZWRUaW1lO1xuICAgIH1cbiAgICBmdW5jdGlvbiBidWJibGVOZXN0ZWRFZmZlY3REdXJhdGlvbnMocHJldkVmZmVjdER1cmF0aW9uKSB7XG4gICAgICB2YXIgZWxhcHNlZFRpbWUgPSBwcm9maWxlckVmZmVjdER1cmF0aW9uO1xuICAgICAgcHJvZmlsZXJFZmZlY3REdXJhdGlvbiArPSBwcmV2RWZmZWN0RHVyYXRpb247XG4gICAgICByZXR1cm4gZWxhcHNlZFRpbWU7XG4gICAgfVxuICAgIGZ1bmN0aW9uIHN0YXJ0UHJvZmlsZXJUaW1lcihmaWJlcikge1xuICAgICAgcHJvZmlsZXJTdGFydFRpbWUgPSBub3coKTtcbiAgICAgIDAgPiBmaWJlci5hY3R1YWxTdGFydFRpbWUgJiYgKGZpYmVyLmFjdHVhbFN0YXJ0VGltZSA9IHByb2ZpbGVyU3RhcnRUaW1lKTtcbiAgICB9XG4gICAgZnVuY3Rpb24gc3RvcFByb2ZpbGVyVGltZXJJZlJ1bm5pbmdBbmRSZWNvcmREdXJhdGlvbihmaWJlcikge1xuICAgICAgaWYgKDAgPD0gcHJvZmlsZXJTdGFydFRpbWUpIHtcbiAgICAgICAgdmFyIGVsYXBzZWRUaW1lID0gbm93KCkgLSBwcm9maWxlclN0YXJ0VGltZTtcbiAgICAgICAgZmliZXIuYWN0dWFsRHVyYXRpb24gKz0gZWxhcHNlZFRpbWU7XG4gICAgICAgIGZpYmVyLnNlbGZCYXNlRHVyYXRpb24gPSBlbGFwc2VkVGltZTtcbiAgICAgICAgcHJvZmlsZXJTdGFydFRpbWUgPSAtMTtcbiAgICAgIH1cbiAgICB9XG4gICAgZnVuY3Rpb24gc3RvcFByb2ZpbGVyVGltZXJJZlJ1bm5pbmdBbmRSZWNvcmRJbmNvbXBsZXRlRHVyYXRpb24oZmliZXIpIHtcbiAgICAgIGlmICgwIDw9IHByb2ZpbGVyU3RhcnRUaW1lKSB7XG4gICAgICAgIHZhciBlbGFwc2VkVGltZSA9IG5vdygpIC0gcHJvZmlsZXJTdGFydFRpbWU7XG4gICAgICAgIGZpYmVyLmFjdHVhbER1cmF0aW9uICs9IGVsYXBzZWRUaW1lO1xuICAgICAgICBwcm9maWxlclN0YXJ0VGltZSA9IC0xO1xuICAgICAgfVxuICAgIH1cbiAgICBmdW5jdGlvbiByZWNvcmRFZmZlY3REdXJhdGlvbigpIHtcbiAgICAgIGlmICgwIDw9IHByb2ZpbGVyU3RhcnRUaW1lKSB7XG4gICAgICAgIHZhciBlbGFwc2VkVGltZSA9IG5vdygpIC0gcHJvZmlsZXJTdGFydFRpbWU7XG4gICAgICAgIHByb2ZpbGVyU3RhcnRUaW1lID0gLTE7XG4gICAgICAgIHByb2ZpbGVyRWZmZWN0RHVyYXRpb24gKz0gZWxhcHNlZFRpbWU7XG4gICAgICB9XG4gICAgfVxuICAgIGZ1bmN0aW9uIHN0YXJ0RWZmZWN0VGltZXIoKSB7XG4gICAgICBwcm9maWxlclN0YXJ0VGltZSA9IG5vdygpO1xuICAgIH1cbiAgICBmdW5jdGlvbiB0cmFuc2ZlckFjdHVhbER1cmF0aW9uKGZpYmVyKSB7XG4gICAgICBmb3IgKHZhciBjaGlsZCA9IGZpYmVyLmNoaWxkOyBjaGlsZDsgKVxuICAgICAgICAoZmliZXIuYWN0dWFsRHVyYXRpb24gKz0gY2hpbGQuYWN0dWFsRHVyYXRpb24pLCAoY2hpbGQgPSBjaGlsZC5zaWJsaW5nKTtcbiAgICB9XG4gICAgZnVuY3Rpb24gZW50YW5nbGVBc3luY0FjdGlvbih0cmFuc2l0aW9uLCB0aGVuYWJsZSkge1xuICAgICAgaWYgKG51bGwgPT09IGN1cnJlbnRFbnRhbmdsZWRMaXN0ZW5lcnMpIHtcbiAgICAgICAgdmFyIGVudGFuZ2xlZExpc3RlbmVycyA9IChjdXJyZW50RW50YW5nbGVkTGlzdGVuZXJzID0gW10pO1xuICAgICAgICBjdXJyZW50RW50YW5nbGVkUGVuZGluZ0NvdW50ID0gMDtcbiAgICAgICAgY3VycmVudEVudGFuZ2xlZExhbmUgPSByZXF1ZXN0VHJhbnNpdGlvbkxhbmUoKTtcbiAgICAgICAgY3VycmVudEVudGFuZ2xlZEFjdGlvblRoZW5hYmxlID0ge1xuICAgICAgICAgIHN0YXR1czogXCJwZW5kaW5nXCIsXG4gICAgICAgICAgdmFsdWU6IHZvaWQgMCxcbiAgICAgICAgICB0aGVuOiBmdW5jdGlvbiAocmVzb2x2ZSkge1xuICAgICAgICAgICAgZW50YW5nbGVkTGlzdGVuZXJzLnB1c2gocmVzb2x2ZSk7XG4gICAgICAgICAgfVxuICAgICAgICB9O1xuICAgICAgfVxuICAgICAgY3VycmVudEVudGFuZ2xlZFBlbmRpbmdDb3VudCsrO1xuICAgICAgdGhlbmFibGUudGhlbihwaW5nRW5ndGFuZ2xlZEFjdGlvblNjb3BlLCBwaW5nRW5ndGFuZ2xlZEFjdGlvblNjb3BlKTtcbiAgICAgIHJldHVybiB0aGVuYWJsZTtcbiAgICB9XG4gICAgZnVuY3Rpb24gcGluZ0VuZ3RhbmdsZWRBY3Rpb25TY29wZSgpIHtcbiAgICAgIGlmIChcbiAgICAgICAgMCA9PT0gLS1jdXJyZW50RW50YW5nbGVkUGVuZGluZ0NvdW50ICYmXG4gICAgICAgIG51bGwgIT09IGN1cnJlbnRFbnRhbmdsZWRMaXN0ZW5lcnNcbiAgICAgICkge1xuICAgICAgICBudWxsICE9PSBjdXJyZW50RW50YW5nbGVkQWN0aW9uVGhlbmFibGUgJiZcbiAgICAgICAgICAoY3VycmVudEVudGFuZ2xlZEFjdGlvblRoZW5hYmxlLnN0YXR1cyA9IFwiZnVsZmlsbGVkXCIpO1xuICAgICAgICB2YXIgbGlzdGVuZXJzID0gY3VycmVudEVudGFuZ2xlZExpc3RlbmVycztcbiAgICAgICAgY3VycmVudEVudGFuZ2xlZExpc3RlbmVycyA9IG51bGw7XG4gICAgICAgIGN1cnJlbnRFbnRhbmdsZWRMYW5lID0gMDtcbiAgICAgICAgY3VycmVudEVudGFuZ2xlZEFjdGlvblRoZW5hYmxlID0gbnVsbDtcbiAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBsaXN0ZW5lcnMubGVuZ3RoOyBpKyspICgwLCBsaXN0ZW5lcnNbaV0pKCk7XG4gICAgICB9XG4gICAgfVxuICAgIGZ1bmN0aW9uIGNoYWluVGhlbmFibGVWYWx1ZSh0aGVuYWJsZSwgcmVzdWx0KSB7XG4gICAgICB2YXIgbGlzdGVuZXJzID0gW10sXG4gICAgICAgIHRoZW5hYmxlV2l0aE92ZXJyaWRlID0ge1xuICAgICAgICAgIHN0YXR1czogXCJwZW5kaW5nXCIsXG4gICAgICAgICAgdmFsdWU6IG51bGwsXG4gICAgICAgICAgcmVhc29uOiBudWxsLFxuICAgICAgICAgIHRoZW46IGZ1bmN0aW9uIChyZXNvbHZlKSB7XG4gICAgICAgICAgICBsaXN0ZW5lcnMucHVzaChyZXNvbHZlKTtcbiAgICAgICAgICB9XG4gICAgICAgIH07XG4gICAgICB0aGVuYWJsZS50aGVuKFxuICAgICAgICBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgdGhlbmFibGVXaXRoT3ZlcnJpZGUuc3RhdHVzID0gXCJmdWxmaWxsZWRcIjtcbiAgICAgICAgICB0aGVuYWJsZVdpdGhPdmVycmlkZS52YWx1ZSA9IHJlc3VsdDtcbiAgICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGxpc3RlbmVycy5sZW5ndGg7IGkrKykgKDAsIGxpc3RlbmVyc1tpXSkocmVzdWx0KTtcbiAgICAgICAgfSxcbiAgICAgICAgZnVuY3Rpb24gKGVycm9yKSB7XG4gICAgICAgICAgdGhlbmFibGVXaXRoT3ZlcnJpZGUuc3RhdHVzID0gXCJyZWplY3RlZFwiO1xuICAgICAgICAgIHRoZW5hYmxlV2l0aE92ZXJyaWRlLnJlYXNvbiA9IGVycm9yO1xuICAgICAgICAgIGZvciAoZXJyb3IgPSAwOyBlcnJvciA8IGxpc3RlbmVycy5sZW5ndGg7IGVycm9yKyspXG4gICAgICAgICAgICAoMCwgbGlzdGVuZXJzW2Vycm9yXSkodm9pZCAwKTtcbiAgICAgICAgfVxuICAgICAgKTtcbiAgICAgIHJldHVybiB0aGVuYWJsZVdpdGhPdmVycmlkZTtcbiAgICB9XG4gICAgZnVuY3Rpb24gcGVla0NhY2hlRnJvbVBvb2woKSB7XG4gICAgICB2YXIgY2FjaGVSZXN1bWVkRnJvbVByZXZpb3VzUmVuZGVyID0gcmVzdW1lZENhY2hlLmN1cnJlbnQ7XG4gICAgICByZXR1cm4gbnVsbCAhPT0gY2FjaGVSZXN1bWVkRnJvbVByZXZpb3VzUmVuZGVyXG4gICAgICAgID8gY2FjaGVSZXN1bWVkRnJvbVByZXZpb3VzUmVuZGVyXG4gICAgICAgIDogd29ya0luUHJvZ3Jlc3NSb290LnBvb2xlZENhY2hlO1xuICAgIH1cbiAgICBmdW5jdGlvbiBwdXNoVHJhbnNpdGlvbihvZmZzY3JlZW5Xb3JrSW5Qcm9ncmVzcywgcHJldkNhY2hlUG9vbCkge1xuICAgICAgbnVsbCA9PT0gcHJldkNhY2hlUG9vbFxuICAgICAgICA/IHB1c2gocmVzdW1lZENhY2hlLCByZXN1bWVkQ2FjaGUuY3VycmVudCwgb2Zmc2NyZWVuV29ya0luUHJvZ3Jlc3MpXG4gICAgICAgIDogcHVzaChyZXN1bWVkQ2FjaGUsIHByZXZDYWNoZVBvb2wucG9vbCwgb2Zmc2NyZWVuV29ya0luUHJvZ3Jlc3MpO1xuICAgIH1cbiAgICBmdW5jdGlvbiBnZXRTdXNwZW5kZWRDYWNoZSgpIHtcbiAgICAgIHZhciBjYWNoZUZyb21Qb29sID0gcGVla0NhY2hlRnJvbVBvb2woKTtcbiAgICAgIHJldHVybiBudWxsID09PSBjYWNoZUZyb21Qb29sXG4gICAgICAgID8gbnVsbFxuICAgICAgICA6IHsgcGFyZW50OiBDYWNoZUNvbnRleHQuX2N1cnJlbnRWYWx1ZSwgcG9vbDogY2FjaGVGcm9tUG9vbCB9O1xuICAgIH1cbiAgICBmdW5jdGlvbiBjcmVhdGVUaGVuYWJsZVN0YXRlKCkge1xuICAgICAgcmV0dXJuIHsgZGlkV2FybkFib3V0VW5jYWNoZWRQcm9taXNlOiAhMSwgdGhlbmFibGVzOiBbXSB9O1xuICAgIH1cbiAgICBmdW5jdGlvbiBpc1RoZW5hYmxlUmVzb2x2ZWQodGhlbmFibGUpIHtcbiAgICAgIHRoZW5hYmxlID0gdGhlbmFibGUuc3RhdHVzO1xuICAgICAgcmV0dXJuIFwiZnVsZmlsbGVkXCIgPT09IHRoZW5hYmxlIHx8IFwicmVqZWN0ZWRcIiA9PT0gdGhlbmFibGU7XG4gICAgfVxuICAgIGZ1bmN0aW9uIG5vb3AkMygpIHt9XG4gICAgZnVuY3Rpb24gdHJhY2tVc2VkVGhlbmFibGUodGhlbmFibGVTdGF0ZSwgdGhlbmFibGUsIGluZGV4KSB7XG4gICAgICBudWxsICE9PSBSZWFjdFNoYXJlZEludGVybmFscy5hY3RRdWV1ZSAmJlxuICAgICAgICAoUmVhY3RTaGFyZWRJbnRlcm5hbHMuZGlkVXNlUHJvbWlzZSA9ICEwKTtcbiAgICAgIHZhciB0cmFja2VkVGhlbmFibGVzID0gdGhlbmFibGVTdGF0ZS50aGVuYWJsZXM7XG4gICAgICBpbmRleCA9IHRyYWNrZWRUaGVuYWJsZXNbaW5kZXhdO1xuICAgICAgdm9pZCAwID09PSBpbmRleFxuICAgICAgICA/IHRyYWNrZWRUaGVuYWJsZXMucHVzaCh0aGVuYWJsZSlcbiAgICAgICAgOiBpbmRleCAhPT0gdGhlbmFibGUgJiZcbiAgICAgICAgICAodGhlbmFibGVTdGF0ZS5kaWRXYXJuQWJvdXRVbmNhY2hlZFByb21pc2UgfHxcbiAgICAgICAgICAgICgodGhlbmFibGVTdGF0ZS5kaWRXYXJuQWJvdXRVbmNhY2hlZFByb21pc2UgPSAhMCksXG4gICAgICAgICAgICBjb25zb2xlLmVycm9yKFxuICAgICAgICAgICAgICBcIkEgY29tcG9uZW50IHdhcyBzdXNwZW5kZWQgYnkgYW4gdW5jYWNoZWQgcHJvbWlzZS4gQ3JlYXRpbmcgcHJvbWlzZXMgaW5zaWRlIGEgQ2xpZW50IENvbXBvbmVudCBvciBob29rIGlzIG5vdCB5ZXQgc3VwcG9ydGVkLCBleGNlcHQgdmlhIGEgU3VzcGVuc2UtY29tcGF0aWJsZSBsaWJyYXJ5IG9yIGZyYW1ld29yay5cIlxuICAgICAgICAgICAgKSksXG4gICAgICAgICAgdGhlbmFibGUudGhlbihub29wJDMsIG5vb3AkMyksXG4gICAgICAgICAgKHRoZW5hYmxlID0gaW5kZXgpKTtcbiAgICAgIHN3aXRjaCAodGhlbmFibGUuc3RhdHVzKSB7XG4gICAgICAgIGNhc2UgXCJmdWxmaWxsZWRcIjpcbiAgICAgICAgICByZXR1cm4gdGhlbmFibGUudmFsdWU7XG4gICAgICAgIGNhc2UgXCJyZWplY3RlZFwiOlxuICAgICAgICAgIHRocm93IChcbiAgICAgICAgICAgICgodGhlbmFibGVTdGF0ZSA9IHRoZW5hYmxlLnJlYXNvbiksXG4gICAgICAgICAgICBjaGVja0lmVXNlV3JhcHBlZEluQXN5bmNDYXRjaCh0aGVuYWJsZVN0YXRlKSxcbiAgICAgICAgICAgIHRoZW5hYmxlU3RhdGUpXG4gICAgICAgICAgKTtcbiAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICBpZiAoXCJzdHJpbmdcIiA9PT0gdHlwZW9mIHRoZW5hYmxlLnN0YXR1cylcbiAgICAgICAgICAgIHRoZW5hYmxlLnRoZW4obm9vcCQzLCBub29wJDMpO1xuICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgdGhlbmFibGVTdGF0ZSA9IHdvcmtJblByb2dyZXNzUm9vdDtcbiAgICAgICAgICAgIGlmIChcbiAgICAgICAgICAgICAgbnVsbCAhPT0gdGhlbmFibGVTdGF0ZSAmJlxuICAgICAgICAgICAgICAxMDAgPCB0aGVuYWJsZVN0YXRlLnNoZWxsU3VzcGVuZENvdW50ZXJcbiAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgdGhyb3cgRXJyb3IoXG4gICAgICAgICAgICAgICAgXCJBbiB1bmtub3duIENvbXBvbmVudCBpcyBhbiBhc3luYyBDbGllbnQgQ29tcG9uZW50LiBPbmx5IFNlcnZlciBDb21wb25lbnRzIGNhbiBiZSBhc3luYyBhdCB0aGUgbW9tZW50LiBUaGlzIGVycm9yIGlzIG9mdGVuIGNhdXNlZCBieSBhY2NpZGVudGFsbHkgYWRkaW5nIGAndXNlIGNsaWVudCdgIHRvIGEgbW9kdWxlIHRoYXQgd2FzIG9yaWdpbmFsbHkgd3JpdHRlbiBmb3IgdGhlIHNlcnZlci5cIlxuICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgdGhlbmFibGVTdGF0ZSA9IHRoZW5hYmxlO1xuICAgICAgICAgICAgdGhlbmFibGVTdGF0ZS5zdGF0dXMgPSBcInBlbmRpbmdcIjtcbiAgICAgICAgICAgIHRoZW5hYmxlU3RhdGUudGhlbihcbiAgICAgICAgICAgICAgZnVuY3Rpb24gKGZ1bGZpbGxlZFZhbHVlKSB7XG4gICAgICAgICAgICAgICAgaWYgKFwicGVuZGluZ1wiID09PSB0aGVuYWJsZS5zdGF0dXMpIHtcbiAgICAgICAgICAgICAgICAgIHZhciBmdWxmaWxsZWRUaGVuYWJsZSA9IHRoZW5hYmxlO1xuICAgICAgICAgICAgICAgICAgZnVsZmlsbGVkVGhlbmFibGUuc3RhdHVzID0gXCJmdWxmaWxsZWRcIjtcbiAgICAgICAgICAgICAgICAgIGZ1bGZpbGxlZFRoZW5hYmxlLnZhbHVlID0gZnVsZmlsbGVkVmFsdWU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBmdW5jdGlvbiAoZXJyb3IpIHtcbiAgICAgICAgICAgICAgICBpZiAoXCJwZW5kaW5nXCIgPT09IHRoZW5hYmxlLnN0YXR1cykge1xuICAgICAgICAgICAgICAgICAgdmFyIHJlamVjdGVkVGhlbmFibGUgPSB0aGVuYWJsZTtcbiAgICAgICAgICAgICAgICAgIHJlamVjdGVkVGhlbmFibGUuc3RhdHVzID0gXCJyZWplY3RlZFwiO1xuICAgICAgICAgICAgICAgICAgcmVqZWN0ZWRUaGVuYWJsZS5yZWFzb24gPSBlcnJvcjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICk7XG4gICAgICAgICAgfVxuICAgICAgICAgIHN3aXRjaCAodGhlbmFibGUuc3RhdHVzKSB7XG4gICAgICAgICAgICBjYXNlIFwiZnVsZmlsbGVkXCI6XG4gICAgICAgICAgICAgIHJldHVybiB0aGVuYWJsZS52YWx1ZTtcbiAgICAgICAgICAgIGNhc2UgXCJyZWplY3RlZFwiOlxuICAgICAgICAgICAgICB0aHJvdyAoXG4gICAgICAgICAgICAgICAgKCh0aGVuYWJsZVN0YXRlID0gdGhlbmFibGUucmVhc29uKSxcbiAgICAgICAgICAgICAgICBjaGVja0lmVXNlV3JhcHBlZEluQXN5bmNDYXRjaCh0aGVuYWJsZVN0YXRlKSxcbiAgICAgICAgICAgICAgICB0aGVuYWJsZVN0YXRlKVxuICAgICAgICAgICAgICApO1xuICAgICAgICAgIH1cbiAgICAgICAgICBzdXNwZW5kZWRUaGVuYWJsZSA9IHRoZW5hYmxlO1xuICAgICAgICAgIG5lZWRzVG9SZXNldFN1c3BlbmRlZFRoZW5hYmxlREVWID0gITA7XG4gICAgICAgICAgdGhyb3cgU3VzcGVuc2VFeGNlcHRpb247XG4gICAgICB9XG4gICAgfVxuICAgIGZ1bmN0aW9uIGdldFN1c3BlbmRlZFRoZW5hYmxlKCkge1xuICAgICAgaWYgKG51bGwgPT09IHN1c3BlbmRlZFRoZW5hYmxlKVxuICAgICAgICB0aHJvdyBFcnJvcihcbiAgICAgICAgICBcIkV4cGVjdGVkIGEgc3VzcGVuZGVkIHRoZW5hYmxlLiBUaGlzIGlzIGEgYnVnIGluIFJlYWN0LiBQbGVhc2UgZmlsZSBhbiBpc3N1ZS5cIlxuICAgICAgICApO1xuICAgICAgdmFyIHRoZW5hYmxlID0gc3VzcGVuZGVkVGhlbmFibGU7XG4gICAgICBzdXNwZW5kZWRUaGVuYWJsZSA9IG51bGw7XG4gICAgICBuZWVkc1RvUmVzZXRTdXNwZW5kZWRUaGVuYWJsZURFViA9ICExO1xuICAgICAgcmV0dXJuIHRoZW5hYmxlO1xuICAgIH1cbiAgICBmdW5jdGlvbiBjaGVja0lmVXNlV3JhcHBlZEluQXN5bmNDYXRjaChyZWplY3RlZFJlYXNvbikge1xuICAgICAgaWYgKFxuICAgICAgICByZWplY3RlZFJlYXNvbiA9PT0gU3VzcGVuc2VFeGNlcHRpb24gfHxcbiAgICAgICAgcmVqZWN0ZWRSZWFzb24gPT09IFN1c3BlbnNlQWN0aW9uRXhjZXB0aW9uXG4gICAgICApXG4gICAgICAgIHRocm93IEVycm9yKFxuICAgICAgICAgIFwiSG9va3MgYXJlIG5vdCBzdXBwb3J0ZWQgaW5zaWRlIGFuIGFzeW5jIGNvbXBvbmVudC4gVGhpcyBlcnJvciBpcyBvZnRlbiBjYXVzZWQgYnkgYWNjaWRlbnRhbGx5IGFkZGluZyBgJ3VzZSBjbGllbnQnYCB0byBhIG1vZHVsZSB0aGF0IHdhcyBvcmlnaW5hbGx5IHdyaXR0ZW4gZm9yIHRoZSBzZXJ2ZXIuXCJcbiAgICAgICAgKTtcbiAgICB9XG4gICAgZnVuY3Rpb24gaW5pdGlhbGl6ZVVwZGF0ZVF1ZXVlKGZpYmVyKSB7XG4gICAgICBmaWJlci51cGRhdGVRdWV1ZSA9IHtcbiAgICAgICAgYmFzZVN0YXRlOiBmaWJlci5tZW1vaXplZFN0YXRlLFxuICAgICAgICBmaXJzdEJhc2VVcGRhdGU6IG51bGwsXG4gICAgICAgIGxhc3RCYXNlVXBkYXRlOiBudWxsLFxuICAgICAgICBzaGFyZWQ6IHsgcGVuZGluZzogbnVsbCwgbGFuZXM6IDAsIGhpZGRlbkNhbGxiYWNrczogbnVsbCB9LFxuICAgICAgICBjYWxsYmFja3M6IG51bGxcbiAgICAgIH07XG4gICAgfVxuICAgIGZ1bmN0aW9uIGNsb25lVXBkYXRlUXVldWUoY3VycmVudCwgd29ya0luUHJvZ3Jlc3MpIHtcbiAgICAgIGN1cnJlbnQgPSBjdXJyZW50LnVwZGF0ZVF1ZXVlO1xuICAgICAgd29ya0luUHJvZ3Jlc3MudXBkYXRlUXVldWUgPT09IGN1cnJlbnQgJiZcbiAgICAgICAgKHdvcmtJblByb2dyZXNzLnVwZGF0ZVF1ZXVlID0ge1xuICAgICAgICAgIGJhc2VTdGF0ZTogY3VycmVudC5iYXNlU3RhdGUsXG4gICAgICAgICAgZmlyc3RCYXNlVXBkYXRlOiBjdXJyZW50LmZpcnN0QmFzZVVwZGF0ZSxcbiAgICAgICAgICBsYXN0QmFzZVVwZGF0ZTogY3VycmVudC5sYXN0QmFzZVVwZGF0ZSxcbiAgICAgICAgICBzaGFyZWQ6IGN1cnJlbnQuc2hhcmVkLFxuICAgICAgICAgIGNhbGxiYWNrczogbnVsbFxuICAgICAgICB9KTtcbiAgICB9XG4gICAgZnVuY3Rpb24gY3JlYXRlVXBkYXRlKGxhbmUpIHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIGxhbmU6IGxhbmUsXG4gICAgICAgIHRhZzogVXBkYXRlU3RhdGUsXG4gICAgICAgIHBheWxvYWQ6IG51bGwsXG4gICAgICAgIGNhbGxiYWNrOiBudWxsLFxuICAgICAgICBuZXh0OiBudWxsXG4gICAgICB9O1xuICAgIH1cbiAgICBmdW5jdGlvbiBlbnF1ZXVlVXBkYXRlKGZpYmVyLCB1cGRhdGUsIGxhbmUpIHtcbiAgICAgIHZhciB1cGRhdGVRdWV1ZSA9IGZpYmVyLnVwZGF0ZVF1ZXVlO1xuICAgICAgaWYgKG51bGwgPT09IHVwZGF0ZVF1ZXVlKSByZXR1cm4gbnVsbDtcbiAgICAgIHVwZGF0ZVF1ZXVlID0gdXBkYXRlUXVldWUuc2hhcmVkO1xuICAgICAgaWYgKFxuICAgICAgICBjdXJyZW50bHlQcm9jZXNzaW5nUXVldWUgPT09IHVwZGF0ZVF1ZXVlICYmXG4gICAgICAgICFkaWRXYXJuVXBkYXRlSW5zaWRlVXBkYXRlXG4gICAgICApIHtcbiAgICAgICAgdmFyIGNvbXBvbmVudE5hbWUgPSBnZXRDb21wb25lbnROYW1lRnJvbUZpYmVyKGZpYmVyKTtcbiAgICAgICAgY29uc29sZS5lcnJvcihcbiAgICAgICAgICBcIkFuIHVwZGF0ZSAoc2V0U3RhdGUsIHJlcGxhY2VTdGF0ZSwgb3IgZm9yY2VVcGRhdGUpIHdhcyBzY2hlZHVsZWQgZnJvbSBpbnNpZGUgYW4gdXBkYXRlIGZ1bmN0aW9uLiBVcGRhdGUgZnVuY3Rpb25zIHNob3VsZCBiZSBwdXJlLCB3aXRoIHplcm8gc2lkZS1lZmZlY3RzLiBDb25zaWRlciB1c2luZyBjb21wb25lbnREaWRVcGRhdGUgb3IgYSBjYWxsYmFjay5cXG5cXG5QbGVhc2UgdXBkYXRlIHRoZSBmb2xsb3dpbmcgY29tcG9uZW50OiAlc1wiLFxuICAgICAgICAgIGNvbXBvbmVudE5hbWVcbiAgICAgICAgKTtcbiAgICAgICAgZGlkV2FyblVwZGF0ZUluc2lkZVVwZGF0ZSA9ICEwO1xuICAgICAgfVxuICAgICAgaWYgKChleGVjdXRpb25Db250ZXh0ICYgUmVuZGVyQ29udGV4dCkgIT09IE5vQ29udGV4dClcbiAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAoY29tcG9uZW50TmFtZSA9IHVwZGF0ZVF1ZXVlLnBlbmRpbmcpLFxuICAgICAgICAgIG51bGwgPT09IGNvbXBvbmVudE5hbWVcbiAgICAgICAgICAgID8gKHVwZGF0ZS5uZXh0ID0gdXBkYXRlKVxuICAgICAgICAgICAgOiAoKHVwZGF0ZS5uZXh0ID0gY29tcG9uZW50TmFtZS5uZXh0KSxcbiAgICAgICAgICAgICAgKGNvbXBvbmVudE5hbWUubmV4dCA9IHVwZGF0ZSkpLFxuICAgICAgICAgICh1cGRhdGVRdWV1ZS5wZW5kaW5nID0gdXBkYXRlKSxcbiAgICAgICAgICAodXBkYXRlID0gZ2V0Um9vdEZvclVwZGF0ZWRGaWJlcihmaWJlcikpLFxuICAgICAgICAgIG1hcmtVcGRhdGVMYW5lRnJvbUZpYmVyVG9Sb290KGZpYmVyLCBudWxsLCBsYW5lKSxcbiAgICAgICAgICB1cGRhdGVcbiAgICAgICAgKTtcbiAgICAgIGVucXVldWVVcGRhdGUkMShmaWJlciwgdXBkYXRlUXVldWUsIHVwZGF0ZSwgbGFuZSk7XG4gICAgICByZXR1cm4gZ2V0Um9vdEZvclVwZGF0ZWRGaWJlcihmaWJlcik7XG4gICAgfVxuICAgIGZ1bmN0aW9uIGVudGFuZ2xlVHJhbnNpdGlvbnMocm9vdCwgZmliZXIsIGxhbmUpIHtcbiAgICAgIGZpYmVyID0gZmliZXIudXBkYXRlUXVldWU7XG4gICAgICBpZiAobnVsbCAhPT0gZmliZXIgJiYgKChmaWJlciA9IGZpYmVyLnNoYXJlZCksIDAgIT09IChsYW5lICYgNDE5NDA0OCkpKSB7XG4gICAgICAgIHZhciBxdWV1ZUxhbmVzID0gZmliZXIubGFuZXM7XG4gICAgICAgIHF1ZXVlTGFuZXMgJj0gcm9vdC5wZW5kaW5nTGFuZXM7XG4gICAgICAgIGxhbmUgfD0gcXVldWVMYW5lcztcbiAgICAgICAgZmliZXIubGFuZXMgPSBsYW5lO1xuICAgICAgICBtYXJrUm9vdEVudGFuZ2xlZChyb290LCBsYW5lKTtcbiAgICAgIH1cbiAgICB9XG4gICAgZnVuY3Rpb24gZW5xdWV1ZUNhcHR1cmVkVXBkYXRlKHdvcmtJblByb2dyZXNzLCBjYXB0dXJlZFVwZGF0ZSkge1xuICAgICAgdmFyIHF1ZXVlID0gd29ya0luUHJvZ3Jlc3MudXBkYXRlUXVldWUsXG4gICAgICAgIGN1cnJlbnQgPSB3b3JrSW5Qcm9ncmVzcy5hbHRlcm5hdGU7XG4gICAgICBpZiAoXG4gICAgICAgIG51bGwgIT09IGN1cnJlbnQgJiZcbiAgICAgICAgKChjdXJyZW50ID0gY3VycmVudC51cGRhdGVRdWV1ZSksIHF1ZXVlID09PSBjdXJyZW50KVxuICAgICAgKSB7XG4gICAgICAgIHZhciBuZXdGaXJzdCA9IG51bGwsXG4gICAgICAgICAgbmV3TGFzdCA9IG51bGw7XG4gICAgICAgIHF1ZXVlID0gcXVldWUuZmlyc3RCYXNlVXBkYXRlO1xuICAgICAgICBpZiAobnVsbCAhPT0gcXVldWUpIHtcbiAgICAgICAgICBkbyB7XG4gICAgICAgICAgICB2YXIgY2xvbmUgPSB7XG4gICAgICAgICAgICAgIGxhbmU6IHF1ZXVlLmxhbmUsXG4gICAgICAgICAgICAgIHRhZzogcXVldWUudGFnLFxuICAgICAgICAgICAgICBwYXlsb2FkOiBxdWV1ZS5wYXlsb2FkLFxuICAgICAgICAgICAgICBjYWxsYmFjazogbnVsbCxcbiAgICAgICAgICAgICAgbmV4dDogbnVsbFxuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIG51bGwgPT09IG5ld0xhc3RcbiAgICAgICAgICAgICAgPyAobmV3Rmlyc3QgPSBuZXdMYXN0ID0gY2xvbmUpXG4gICAgICAgICAgICAgIDogKG5ld0xhc3QgPSBuZXdMYXN0Lm5leHQgPSBjbG9uZSk7XG4gICAgICAgICAgICBxdWV1ZSA9IHF1ZXVlLm5leHQ7XG4gICAgICAgICAgfSB3aGlsZSAobnVsbCAhPT0gcXVldWUpO1xuICAgICAgICAgIG51bGwgPT09IG5ld0xhc3RcbiAgICAgICAgICAgID8gKG5ld0ZpcnN0ID0gbmV3TGFzdCA9IGNhcHR1cmVkVXBkYXRlKVxuICAgICAgICAgICAgOiAobmV3TGFzdCA9IG5ld0xhc3QubmV4dCA9IGNhcHR1cmVkVXBkYXRlKTtcbiAgICAgICAgfSBlbHNlIG5ld0ZpcnN0ID0gbmV3TGFzdCA9IGNhcHR1cmVkVXBkYXRlO1xuICAgICAgICBxdWV1ZSA9IHtcbiAgICAgICAgICBiYXNlU3RhdGU6IGN1cnJlbnQuYmFzZVN0YXRlLFxuICAgICAgICAgIGZpcnN0QmFzZVVwZGF0ZTogbmV3Rmlyc3QsXG4gICAgICAgICAgbGFzdEJhc2VVcGRhdGU6IG5ld0xhc3QsXG4gICAgICAgICAgc2hhcmVkOiBjdXJyZW50LnNoYXJlZCxcbiAgICAgICAgICBjYWxsYmFja3M6IGN1cnJlbnQuY2FsbGJhY2tzXG4gICAgICAgIH07XG4gICAgICAgIHdvcmtJblByb2dyZXNzLnVwZGF0ZVF1ZXVlID0gcXVldWU7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICAgIHdvcmtJblByb2dyZXNzID0gcXVldWUubGFzdEJhc2VVcGRhdGU7XG4gICAgICBudWxsID09PSB3b3JrSW5Qcm9ncmVzc1xuICAgICAgICA/IChxdWV1ZS5maXJzdEJhc2VVcGRhdGUgPSBjYXB0dXJlZFVwZGF0ZSlcbiAgICAgICAgOiAod29ya0luUHJvZ3Jlc3MubmV4dCA9IGNhcHR1cmVkVXBkYXRlKTtcbiAgICAgIHF1ZXVlLmxhc3RCYXNlVXBkYXRlID0gY2FwdHVyZWRVcGRhdGU7XG4gICAgfVxuICAgIGZ1bmN0aW9uIHN1c3BlbmRJZlVwZGF0ZVJlYWRGcm9tRW50YW5nbGVkQXN5bmNBY3Rpb24oKSB7XG4gICAgICBpZiAoZGlkUmVhZEZyb21FbnRhbmdsZWRBc3luY0FjdGlvbikge1xuICAgICAgICB2YXIgZW50YW5nbGVkQWN0aW9uVGhlbmFibGUgPSBjdXJyZW50RW50YW5nbGVkQWN0aW9uVGhlbmFibGU7XG4gICAgICAgIGlmIChudWxsICE9PSBlbnRhbmdsZWRBY3Rpb25UaGVuYWJsZSkgdGhyb3cgZW50YW5nbGVkQWN0aW9uVGhlbmFibGU7XG4gICAgICB9XG4gICAgfVxuICAgIGZ1bmN0aW9uIHByb2Nlc3NVcGRhdGVRdWV1ZShcbiAgICAgIHdvcmtJblByb2dyZXNzLFxuICAgICAgcHJvcHMsXG4gICAgICBpbnN0YW5jZSRqc2NvbXAkMCxcbiAgICAgIHJlbmRlckxhbmVzXG4gICAgKSB7XG4gICAgICBkaWRSZWFkRnJvbUVudGFuZ2xlZEFzeW5jQWN0aW9uID0gITE7XG4gICAgICB2YXIgcXVldWUgPSB3b3JrSW5Qcm9ncmVzcy51cGRhdGVRdWV1ZTtcbiAgICAgIGhhc0ZvcmNlVXBkYXRlID0gITE7XG4gICAgICBjdXJyZW50bHlQcm9jZXNzaW5nUXVldWUgPSBxdWV1ZS5zaGFyZWQ7XG4gICAgICB2YXIgZmlyc3RCYXNlVXBkYXRlID0gcXVldWUuZmlyc3RCYXNlVXBkYXRlLFxuICAgICAgICBsYXN0QmFzZVVwZGF0ZSA9IHF1ZXVlLmxhc3RCYXNlVXBkYXRlLFxuICAgICAgICBwZW5kaW5nUXVldWUgPSBxdWV1ZS5zaGFyZWQucGVuZGluZztcbiAgICAgIGlmIChudWxsICE9PSBwZW5kaW5nUXVldWUpIHtcbiAgICAgICAgcXVldWUuc2hhcmVkLnBlbmRpbmcgPSBudWxsO1xuICAgICAgICB2YXIgbGFzdFBlbmRpbmdVcGRhdGUgPSBwZW5kaW5nUXVldWUsXG4gICAgICAgICAgZmlyc3RQZW5kaW5nVXBkYXRlID0gbGFzdFBlbmRpbmdVcGRhdGUubmV4dDtcbiAgICAgICAgbGFzdFBlbmRpbmdVcGRhdGUubmV4dCA9IG51bGw7XG4gICAgICAgIG51bGwgPT09IGxhc3RCYXNlVXBkYXRlXG4gICAgICAgICAgPyAoZmlyc3RCYXNlVXBkYXRlID0gZmlyc3RQZW5kaW5nVXBkYXRlKVxuICAgICAgICAgIDogKGxhc3RCYXNlVXBkYXRlLm5leHQgPSBmaXJzdFBlbmRpbmdVcGRhdGUpO1xuICAgICAgICBsYXN0QmFzZVVwZGF0ZSA9IGxhc3RQZW5kaW5nVXBkYXRlO1xuICAgICAgICB2YXIgY3VycmVudCA9IHdvcmtJblByb2dyZXNzLmFsdGVybmF0ZTtcbiAgICAgICAgbnVsbCAhPT0gY3VycmVudCAmJlxuICAgICAgICAgICgoY3VycmVudCA9IGN1cnJlbnQudXBkYXRlUXVldWUpLFxuICAgICAgICAgIChwZW5kaW5nUXVldWUgPSBjdXJyZW50Lmxhc3RCYXNlVXBkYXRlKSxcbiAgICAgICAgICBwZW5kaW5nUXVldWUgIT09IGxhc3RCYXNlVXBkYXRlICYmXG4gICAgICAgICAgICAobnVsbCA9PT0gcGVuZGluZ1F1ZXVlXG4gICAgICAgICAgICAgID8gKGN1cnJlbnQuZmlyc3RCYXNlVXBkYXRlID0gZmlyc3RQZW5kaW5nVXBkYXRlKVxuICAgICAgICAgICAgICA6IChwZW5kaW5nUXVldWUubmV4dCA9IGZpcnN0UGVuZGluZ1VwZGF0ZSksXG4gICAgICAgICAgICAoY3VycmVudC5sYXN0QmFzZVVwZGF0ZSA9IGxhc3RQZW5kaW5nVXBkYXRlKSkpO1xuICAgICAgfVxuICAgICAgaWYgKG51bGwgIT09IGZpcnN0QmFzZVVwZGF0ZSkge1xuICAgICAgICB2YXIgbmV3U3RhdGUgPSBxdWV1ZS5iYXNlU3RhdGU7XG4gICAgICAgIGxhc3RCYXNlVXBkYXRlID0gMDtcbiAgICAgICAgY3VycmVudCA9IGZpcnN0UGVuZGluZ1VwZGF0ZSA9IGxhc3RQZW5kaW5nVXBkYXRlID0gbnVsbDtcbiAgICAgICAgcGVuZGluZ1F1ZXVlID0gZmlyc3RCYXNlVXBkYXRlO1xuICAgICAgICBkbyB7XG4gICAgICAgICAgdmFyIHVwZGF0ZUxhbmUgPSBwZW5kaW5nUXVldWUubGFuZSAmIC01MzY4NzA5MTMsXG4gICAgICAgICAgICBpc0hpZGRlblVwZGF0ZSA9IHVwZGF0ZUxhbmUgIT09IHBlbmRpbmdRdWV1ZS5sYW5lO1xuICAgICAgICAgIGlmIChcbiAgICAgICAgICAgIGlzSGlkZGVuVXBkYXRlXG4gICAgICAgICAgICAgID8gKHdvcmtJblByb2dyZXNzUm9vdFJlbmRlckxhbmVzICYgdXBkYXRlTGFuZSkgPT09IHVwZGF0ZUxhbmVcbiAgICAgICAgICAgICAgOiAocmVuZGVyTGFuZXMgJiB1cGRhdGVMYW5lKSA9PT0gdXBkYXRlTGFuZVxuICAgICAgICAgICkge1xuICAgICAgICAgICAgMCAhPT0gdXBkYXRlTGFuZSAmJlxuICAgICAgICAgICAgICB1cGRhdGVMYW5lID09PSBjdXJyZW50RW50YW5nbGVkTGFuZSAmJlxuICAgICAgICAgICAgICAoZGlkUmVhZEZyb21FbnRhbmdsZWRBc3luY0FjdGlvbiA9ICEwKTtcbiAgICAgICAgICAgIG51bGwgIT09IGN1cnJlbnQgJiZcbiAgICAgICAgICAgICAgKGN1cnJlbnQgPSBjdXJyZW50Lm5leHQgPVxuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgIGxhbmU6IDAsXG4gICAgICAgICAgICAgICAgICB0YWc6IHBlbmRpbmdRdWV1ZS50YWcsXG4gICAgICAgICAgICAgICAgICBwYXlsb2FkOiBwZW5kaW5nUXVldWUucGF5bG9hZCxcbiAgICAgICAgICAgICAgICAgIGNhbGxiYWNrOiBudWxsLFxuICAgICAgICAgICAgICAgICAgbmV4dDogbnVsbFxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgYToge1xuICAgICAgICAgICAgICB1cGRhdGVMYW5lID0gd29ya0luUHJvZ3Jlc3M7XG4gICAgICAgICAgICAgIHZhciBwYXJ0aWFsU3RhdGUgPSBwZW5kaW5nUXVldWU7XG4gICAgICAgICAgICAgIHZhciBuZXh0UHJvcHMgPSBwcm9wcyxcbiAgICAgICAgICAgICAgICBpbnN0YW5jZSA9IGluc3RhbmNlJGpzY29tcCQwO1xuICAgICAgICAgICAgICBzd2l0Y2ggKHBhcnRpYWxTdGF0ZS50YWcpIHtcbiAgICAgICAgICAgICAgICBjYXNlIFJlcGxhY2VTdGF0ZTpcbiAgICAgICAgICAgICAgICAgIHBhcnRpYWxTdGF0ZSA9IHBhcnRpYWxTdGF0ZS5wYXlsb2FkO1xuICAgICAgICAgICAgICAgICAgaWYgKFwiZnVuY3Rpb25cIiA9PT0gdHlwZW9mIHBhcnRpYWxTdGF0ZSkge1xuICAgICAgICAgICAgICAgICAgICBpc0Rpc2FsbG93ZWRDb250ZXh0UmVhZEluREVWID0gITA7XG4gICAgICAgICAgICAgICAgICAgIHZhciBuZXh0U3RhdGUgPSBwYXJ0aWFsU3RhdGUuY2FsbChcbiAgICAgICAgICAgICAgICAgICAgICBpbnN0YW5jZSxcbiAgICAgICAgICAgICAgICAgICAgICBuZXdTdGF0ZSxcbiAgICAgICAgICAgICAgICAgICAgICBuZXh0UHJvcHNcbiAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHVwZGF0ZUxhbmUubW9kZSAmIFN0cmljdExlZ2FjeU1vZGUpIHtcbiAgICAgICAgICAgICAgICAgICAgICBzZXRJc1N0cmljdE1vZGVGb3JEZXZ0b29scyghMCk7XG4gICAgICAgICAgICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHBhcnRpYWxTdGF0ZS5jYWxsKGluc3RhbmNlLCBuZXdTdGF0ZSwgbmV4dFByb3BzKTtcbiAgICAgICAgICAgICAgICAgICAgICB9IGZpbmFsbHkge1xuICAgICAgICAgICAgICAgICAgICAgICAgc2V0SXNTdHJpY3RNb2RlRm9yRGV2dG9vbHMoITEpO1xuICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBpc0Rpc2FsbG93ZWRDb250ZXh0UmVhZEluREVWID0gITE7XG4gICAgICAgICAgICAgICAgICAgIG5ld1N0YXRlID0gbmV4dFN0YXRlO1xuICAgICAgICAgICAgICAgICAgICBicmVhayBhO1xuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgbmV3U3RhdGUgPSBwYXJ0aWFsU3RhdGU7XG4gICAgICAgICAgICAgICAgICBicmVhayBhO1xuICAgICAgICAgICAgICAgIGNhc2UgQ2FwdHVyZVVwZGF0ZTpcbiAgICAgICAgICAgICAgICAgIHVwZGF0ZUxhbmUuZmxhZ3MgPSAodXBkYXRlTGFuZS5mbGFncyAmIC02NTUzNykgfCAxMjg7XG4gICAgICAgICAgICAgICAgY2FzZSBVcGRhdGVTdGF0ZTpcbiAgICAgICAgICAgICAgICAgIG5leHRTdGF0ZSA9IHBhcnRpYWxTdGF0ZS5wYXlsb2FkO1xuICAgICAgICAgICAgICAgICAgaWYgKFwiZnVuY3Rpb25cIiA9PT0gdHlwZW9mIG5leHRTdGF0ZSkge1xuICAgICAgICAgICAgICAgICAgICBpc0Rpc2FsbG93ZWRDb250ZXh0UmVhZEluREVWID0gITA7XG4gICAgICAgICAgICAgICAgICAgIHBhcnRpYWxTdGF0ZSA9IG5leHRTdGF0ZS5jYWxsKFxuICAgICAgICAgICAgICAgICAgICAgIGluc3RhbmNlLFxuICAgICAgICAgICAgICAgICAgICAgIG5ld1N0YXRlLFxuICAgICAgICAgICAgICAgICAgICAgIG5leHRQcm9wc1xuICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgICAgICBpZiAodXBkYXRlTGFuZS5tb2RlICYgU3RyaWN0TGVnYWN5TW9kZSkge1xuICAgICAgICAgICAgICAgICAgICAgIHNldElzU3RyaWN0TW9kZUZvckRldnRvb2xzKCEwKTtcbiAgICAgICAgICAgICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgICAgICAgICAgbmV4dFN0YXRlLmNhbGwoaW5zdGFuY2UsIG5ld1N0YXRlLCBuZXh0UHJvcHMpO1xuICAgICAgICAgICAgICAgICAgICAgIH0gZmluYWxseSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBzZXRJc1N0cmljdE1vZGVGb3JEZXZ0b29scyghMSk7XG4gICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGlzRGlzYWxsb3dlZENvbnRleHRSZWFkSW5ERVYgPSAhMTtcbiAgICAgICAgICAgICAgICAgIH0gZWxzZSBwYXJ0aWFsU3RhdGUgPSBuZXh0U3RhdGU7XG4gICAgICAgICAgICAgICAgICBpZiAobnVsbCA9PT0gcGFydGlhbFN0YXRlIHx8IHZvaWQgMCA9PT0gcGFydGlhbFN0YXRlKSBicmVhayBhO1xuICAgICAgICAgICAgICAgICAgbmV3U3RhdGUgPSBhc3NpZ24oe30sIG5ld1N0YXRlLCBwYXJ0aWFsU3RhdGUpO1xuICAgICAgICAgICAgICAgICAgYnJlYWsgYTtcbiAgICAgICAgICAgICAgICBjYXNlIEZvcmNlVXBkYXRlOlxuICAgICAgICAgICAgICAgICAgaGFzRm9yY2VVcGRhdGUgPSAhMDtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdXBkYXRlTGFuZSA9IHBlbmRpbmdRdWV1ZS5jYWxsYmFjaztcbiAgICAgICAgICAgIG51bGwgIT09IHVwZGF0ZUxhbmUgJiZcbiAgICAgICAgICAgICAgKCh3b3JrSW5Qcm9ncmVzcy5mbGFncyB8PSA2NCksXG4gICAgICAgICAgICAgIGlzSGlkZGVuVXBkYXRlICYmICh3b3JrSW5Qcm9ncmVzcy5mbGFncyB8PSA4MTkyKSxcbiAgICAgICAgICAgICAgKGlzSGlkZGVuVXBkYXRlID0gcXVldWUuY2FsbGJhY2tzKSxcbiAgICAgICAgICAgICAgbnVsbCA9PT0gaXNIaWRkZW5VcGRhdGVcbiAgICAgICAgICAgICAgICA/IChxdWV1ZS5jYWxsYmFja3MgPSBbdXBkYXRlTGFuZV0pXG4gICAgICAgICAgICAgICAgOiBpc0hpZGRlblVwZGF0ZS5wdXNoKHVwZGF0ZUxhbmUpKTtcbiAgICAgICAgICB9IGVsc2VcbiAgICAgICAgICAgIChpc0hpZGRlblVwZGF0ZSA9IHtcbiAgICAgICAgICAgICAgbGFuZTogdXBkYXRlTGFuZSxcbiAgICAgICAgICAgICAgdGFnOiBwZW5kaW5nUXVldWUudGFnLFxuICAgICAgICAgICAgICBwYXlsb2FkOiBwZW5kaW5nUXVldWUucGF5bG9hZCxcbiAgICAgICAgICAgICAgY2FsbGJhY2s6IHBlbmRpbmdRdWV1ZS5jYWxsYmFjayxcbiAgICAgICAgICAgICAgbmV4dDogbnVsbFxuICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgIG51bGwgPT09IGN1cnJlbnRcbiAgICAgICAgICAgICAgICA/ICgoZmlyc3RQZW5kaW5nVXBkYXRlID0gY3VycmVudCA9IGlzSGlkZGVuVXBkYXRlKSxcbiAgICAgICAgICAgICAgICAgIChsYXN0UGVuZGluZ1VwZGF0ZSA9IG5ld1N0YXRlKSlcbiAgICAgICAgICAgICAgICA6IChjdXJyZW50ID0gY3VycmVudC5uZXh0ID0gaXNIaWRkZW5VcGRhdGUpLFxuICAgICAgICAgICAgICAobGFzdEJhc2VVcGRhdGUgfD0gdXBkYXRlTGFuZSk7XG4gICAgICAgICAgcGVuZGluZ1F1ZXVlID0gcGVuZGluZ1F1ZXVlLm5leHQ7XG4gICAgICAgICAgaWYgKG51bGwgPT09IHBlbmRpbmdRdWV1ZSlcbiAgICAgICAgICAgIGlmICgoKHBlbmRpbmdRdWV1ZSA9IHF1ZXVlLnNoYXJlZC5wZW5kaW5nKSwgbnVsbCA9PT0gcGVuZGluZ1F1ZXVlKSlcbiAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBlbHNlXG4gICAgICAgICAgICAgIChpc0hpZGRlblVwZGF0ZSA9IHBlbmRpbmdRdWV1ZSksXG4gICAgICAgICAgICAgICAgKHBlbmRpbmdRdWV1ZSA9IGlzSGlkZGVuVXBkYXRlLm5leHQpLFxuICAgICAgICAgICAgICAgIChpc0hpZGRlblVwZGF0ZS5uZXh0ID0gbnVsbCksXG4gICAgICAgICAgICAgICAgKHF1ZXVlLmxhc3RCYXNlVXBkYXRlID0gaXNIaWRkZW5VcGRhdGUpLFxuICAgICAgICAgICAgICAgIChxdWV1ZS5zaGFyZWQucGVuZGluZyA9IG51bGwpO1xuICAgICAgICB9IHdoaWxlICgxKTtcbiAgICAgICAgbnVsbCA9PT0gY3VycmVudCAmJiAobGFzdFBlbmRpbmdVcGRhdGUgPSBuZXdTdGF0ZSk7XG4gICAgICAgIHF1ZXVlLmJhc2VTdGF0ZSA9IGxhc3RQZW5kaW5nVXBkYXRlO1xuICAgICAgICBxdWV1ZS5maXJzdEJhc2VVcGRhdGUgPSBmaXJzdFBlbmRpbmdVcGRhdGU7XG4gICAgICAgIHF1ZXVlLmxhc3RCYXNlVXBkYXRlID0gY3VycmVudDtcbiAgICAgICAgbnVsbCA9PT0gZmlyc3RCYXNlVXBkYXRlICYmIChxdWV1ZS5zaGFyZWQubGFuZXMgPSAwKTtcbiAgICAgICAgd29ya0luUHJvZ3Jlc3NSb290U2tpcHBlZExhbmVzIHw9IGxhc3RCYXNlVXBkYXRlO1xuICAgICAgICB3b3JrSW5Qcm9ncmVzcy5sYW5lcyA9IGxhc3RCYXNlVXBkYXRlO1xuICAgICAgICB3b3JrSW5Qcm9ncmVzcy5tZW1vaXplZFN0YXRlID0gbmV3U3RhdGU7XG4gICAgICB9XG4gICAgICBjdXJyZW50bHlQcm9jZXNzaW5nUXVldWUgPSBudWxsO1xuICAgIH1cbiAgICBmdW5jdGlvbiBjYWxsQ2FsbGJhY2soY2FsbGJhY2ssIGNvbnRleHQpIHtcbiAgICAgIGlmIChcImZ1bmN0aW9uXCIgIT09IHR5cGVvZiBjYWxsYmFjaylcbiAgICAgICAgdGhyb3cgRXJyb3IoXG4gICAgICAgICAgXCJJbnZhbGlkIGFyZ3VtZW50IHBhc3NlZCBhcyBjYWxsYmFjay4gRXhwZWN0ZWQgYSBmdW5jdGlvbi4gSW5zdGVhZCByZWNlaXZlZDogXCIgK1xuICAgICAgICAgICAgY2FsbGJhY2tcbiAgICAgICAgKTtcbiAgICAgIGNhbGxiYWNrLmNhbGwoY29udGV4dCk7XG4gICAgfVxuICAgIGZ1bmN0aW9uIGNvbW1pdEhpZGRlbkNhbGxiYWNrcyh1cGRhdGVRdWV1ZSwgY29udGV4dCkge1xuICAgICAgdmFyIGhpZGRlbkNhbGxiYWNrcyA9IHVwZGF0ZVF1ZXVlLnNoYXJlZC5oaWRkZW5DYWxsYmFja3M7XG4gICAgICBpZiAobnVsbCAhPT0gaGlkZGVuQ2FsbGJhY2tzKVxuICAgICAgICBmb3IgKFxuICAgICAgICAgIHVwZGF0ZVF1ZXVlLnNoYXJlZC5oaWRkZW5DYWxsYmFja3MgPSBudWxsLCB1cGRhdGVRdWV1ZSA9IDA7XG4gICAgICAgICAgdXBkYXRlUXVldWUgPCBoaWRkZW5DYWxsYmFja3MubGVuZ3RoO1xuICAgICAgICAgIHVwZGF0ZVF1ZXVlKytcbiAgICAgICAgKVxuICAgICAgICAgIGNhbGxDYWxsYmFjayhoaWRkZW5DYWxsYmFja3NbdXBkYXRlUXVldWVdLCBjb250ZXh0KTtcbiAgICB9XG4gICAgZnVuY3Rpb24gY29tbWl0Q2FsbGJhY2tzKHVwZGF0ZVF1ZXVlLCBjb250ZXh0KSB7XG4gICAgICB2YXIgY2FsbGJhY2tzID0gdXBkYXRlUXVldWUuY2FsbGJhY2tzO1xuICAgICAgaWYgKG51bGwgIT09IGNhbGxiYWNrcylcbiAgICAgICAgZm9yIChcbiAgICAgICAgICB1cGRhdGVRdWV1ZS5jYWxsYmFja3MgPSBudWxsLCB1cGRhdGVRdWV1ZSA9IDA7XG4gICAgICAgICAgdXBkYXRlUXVldWUgPCBjYWxsYmFja3MubGVuZ3RoO1xuICAgICAgICAgIHVwZGF0ZVF1ZXVlKytcbiAgICAgICAgKVxuICAgICAgICAgIGNhbGxDYWxsYmFjayhjYWxsYmFja3NbdXBkYXRlUXVldWVdLCBjb250ZXh0KTtcbiAgICB9XG4gICAgZnVuY3Rpb24gcHVzaEhpZGRlbkNvbnRleHQoZmliZXIsIGNvbnRleHQpIHtcbiAgICAgIHZhciBwcmV2RW50YW5nbGVkUmVuZGVyTGFuZXMgPSBlbnRhbmdsZWRSZW5kZXJMYW5lcztcbiAgICAgIHB1c2gocHJldkVudGFuZ2xlZFJlbmRlckxhbmVzQ3Vyc29yLCBwcmV2RW50YW5nbGVkUmVuZGVyTGFuZXMsIGZpYmVyKTtcbiAgICAgIHB1c2goY3VycmVudFRyZWVIaWRkZW5TdGFja0N1cnNvciwgY29udGV4dCwgZmliZXIpO1xuICAgICAgZW50YW5nbGVkUmVuZGVyTGFuZXMgPSBwcmV2RW50YW5nbGVkUmVuZGVyTGFuZXMgfCBjb250ZXh0LmJhc2VMYW5lcztcbiAgICB9XG4gICAgZnVuY3Rpb24gcmV1c2VIaWRkZW5Db250ZXh0T25TdGFjayhmaWJlcikge1xuICAgICAgcHVzaChwcmV2RW50YW5nbGVkUmVuZGVyTGFuZXNDdXJzb3IsIGVudGFuZ2xlZFJlbmRlckxhbmVzLCBmaWJlcik7XG4gICAgICBwdXNoKFxuICAgICAgICBjdXJyZW50VHJlZUhpZGRlblN0YWNrQ3Vyc29yLFxuICAgICAgICBjdXJyZW50VHJlZUhpZGRlblN0YWNrQ3Vyc29yLmN1cnJlbnQsXG4gICAgICAgIGZpYmVyXG4gICAgICApO1xuICAgIH1cbiAgICBmdW5jdGlvbiBwb3BIaWRkZW5Db250ZXh0KGZpYmVyKSB7XG4gICAgICBlbnRhbmdsZWRSZW5kZXJMYW5lcyA9IHByZXZFbnRhbmdsZWRSZW5kZXJMYW5lc0N1cnNvci5jdXJyZW50O1xuICAgICAgcG9wKGN1cnJlbnRUcmVlSGlkZGVuU3RhY2tDdXJzb3IsIGZpYmVyKTtcbiAgICAgIHBvcChwcmV2RW50YW5nbGVkUmVuZGVyTGFuZXNDdXJzb3IsIGZpYmVyKTtcbiAgICB9XG4gICAgZnVuY3Rpb24gbW91bnRIb29rVHlwZXNEZXYoKSB7XG4gICAgICB2YXIgaG9va05hbWUgPSBjdXJyZW50SG9va05hbWVJbkRldjtcbiAgICAgIG51bGwgPT09IGhvb2tUeXBlc0RldlxuICAgICAgICA/IChob29rVHlwZXNEZXYgPSBbaG9va05hbWVdKVxuICAgICAgICA6IGhvb2tUeXBlc0Rldi5wdXNoKGhvb2tOYW1lKTtcbiAgICB9XG4gICAgZnVuY3Rpb24gdXBkYXRlSG9va1R5cGVzRGV2KCkge1xuICAgICAgdmFyIGhvb2tOYW1lID0gY3VycmVudEhvb2tOYW1lSW5EZXY7XG4gICAgICBpZiAoXG4gICAgICAgIG51bGwgIT09IGhvb2tUeXBlc0RldiAmJlxuICAgICAgICAoaG9va1R5cGVzVXBkYXRlSW5kZXhEZXYrKyxcbiAgICAgICAgaG9va1R5cGVzRGV2W2hvb2tUeXBlc1VwZGF0ZUluZGV4RGV2XSAhPT0gaG9va05hbWUpXG4gICAgICApIHtcbiAgICAgICAgdmFyIGNvbXBvbmVudE5hbWUgPSBnZXRDb21wb25lbnROYW1lRnJvbUZpYmVyKGN1cnJlbnRseVJlbmRlcmluZ0ZpYmVyKTtcbiAgICAgICAgaWYgKFxuICAgICAgICAgICFkaWRXYXJuQWJvdXRNaXNtYXRjaGVkSG9va3NGb3JDb21wb25lbnQuaGFzKGNvbXBvbmVudE5hbWUpICYmXG4gICAgICAgICAgKGRpZFdhcm5BYm91dE1pc21hdGNoZWRIb29rc0ZvckNvbXBvbmVudC5hZGQoY29tcG9uZW50TmFtZSksXG4gICAgICAgICAgbnVsbCAhPT0gaG9va1R5cGVzRGV2KVxuICAgICAgICApIHtcbiAgICAgICAgICBmb3IgKHZhciB0YWJsZSA9IFwiXCIsIGkgPSAwOyBpIDw9IGhvb2tUeXBlc1VwZGF0ZUluZGV4RGV2OyBpKyspIHtcbiAgICAgICAgICAgIHZhciBvbGRIb29rTmFtZSA9IGhvb2tUeXBlc0RldltpXSxcbiAgICAgICAgICAgICAgbmV3SG9va05hbWUgPVxuICAgICAgICAgICAgICAgIGkgPT09IGhvb2tUeXBlc1VwZGF0ZUluZGV4RGV2ID8gaG9va05hbWUgOiBvbGRIb29rTmFtZTtcbiAgICAgICAgICAgIGZvciAoXG4gICAgICAgICAgICAgIG9sZEhvb2tOYW1lID0gaSArIDEgKyBcIi4gXCIgKyBvbGRIb29rTmFtZTtcbiAgICAgICAgICAgICAgMzAgPiBvbGRIb29rTmFtZS5sZW5ndGg7XG5cbiAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgb2xkSG9va05hbWUgKz0gXCIgXCI7XG4gICAgICAgICAgICBvbGRIb29rTmFtZSArPSBuZXdIb29rTmFtZSArIFwiXFxuXCI7XG4gICAgICAgICAgICB0YWJsZSArPSBvbGRIb29rTmFtZTtcbiAgICAgICAgICB9XG4gICAgICAgICAgY29uc29sZS5lcnJvcihcbiAgICAgICAgICAgIFwiUmVhY3QgaGFzIGRldGVjdGVkIGEgY2hhbmdlIGluIHRoZSBvcmRlciBvZiBIb29rcyBjYWxsZWQgYnkgJXMuIFRoaXMgd2lsbCBsZWFkIHRvIGJ1Z3MgYW5kIGVycm9ycyBpZiBub3QgZml4ZWQuIEZvciBtb3JlIGluZm9ybWF0aW9uLCByZWFkIHRoZSBSdWxlcyBvZiBIb29rczogaHR0cHM6Ly9yZWFjdC5kZXYvbGluay9ydWxlcy1vZi1ob29rc1xcblxcbiAgIFByZXZpb3VzIHJlbmRlciAgICAgICAgICAgIE5leHQgcmVuZGVyXFxuICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXFxuJXMgICBeXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5cXG5cIixcbiAgICAgICAgICAgIGNvbXBvbmVudE5hbWUsXG4gICAgICAgICAgICB0YWJsZVxuICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gICAgZnVuY3Rpb24gY2hlY2tEZXBzQXJlQXJyYXlEZXYoZGVwcykge1xuICAgICAgdm9pZCAwID09PSBkZXBzIHx8XG4gICAgICAgIG51bGwgPT09IGRlcHMgfHxcbiAgICAgICAgaXNBcnJheUltcGwoZGVwcykgfHxcbiAgICAgICAgY29uc29sZS5lcnJvcihcbiAgICAgICAgICBcIiVzIHJlY2VpdmVkIGEgZmluYWwgYXJndW1lbnQgdGhhdCBpcyBub3QgYW4gYXJyYXkgKGluc3RlYWQsIHJlY2VpdmVkIGAlc2ApLiBXaGVuIHNwZWNpZmllZCwgdGhlIGZpbmFsIGFyZ3VtZW50IG11c3QgYmUgYW4gYXJyYXkuXCIsXG4gICAgICAgICAgY3VycmVudEhvb2tOYW1lSW5EZXYsXG4gICAgICAgICAgdHlwZW9mIGRlcHNcbiAgICAgICAgKTtcbiAgICB9XG4gICAgZnVuY3Rpb24gd2Fybk9uVXNlRm9ybVN0YXRlSW5EZXYoKSB7XG4gICAgICB2YXIgY29tcG9uZW50TmFtZSA9IGdldENvbXBvbmVudE5hbWVGcm9tRmliZXIoY3VycmVudGx5UmVuZGVyaW5nRmliZXIpO1xuICAgICAgZGlkV2FybkFib3V0VXNlRm9ybVN0YXRlLmhhcyhjb21wb25lbnROYW1lKSB8fFxuICAgICAgICAoZGlkV2FybkFib3V0VXNlRm9ybVN0YXRlLmFkZChjb21wb25lbnROYW1lKSxcbiAgICAgICAgY29uc29sZS5lcnJvcihcbiAgICAgICAgICBcIlJlYWN0RE9NLnVzZUZvcm1TdGF0ZSBoYXMgYmVlbiByZW5hbWVkIHRvIFJlYWN0LnVzZUFjdGlvblN0YXRlLiBQbGVhc2UgdXBkYXRlICVzIHRvIHVzZSBSZWFjdC51c2VBY3Rpb25TdGF0ZS5cIixcbiAgICAgICAgICBjb21wb25lbnROYW1lXG4gICAgICAgICkpO1xuICAgIH1cbiAgICBmdW5jdGlvbiB0aHJvd0ludmFsaWRIb29rRXJyb3IoKSB7XG4gICAgICB0aHJvdyBFcnJvcihcbiAgICAgICAgXCJJbnZhbGlkIGhvb2sgY2FsbC4gSG9va3MgY2FuIG9ubHkgYmUgY2FsbGVkIGluc2lkZSBvZiB0aGUgYm9keSBvZiBhIGZ1bmN0aW9uIGNvbXBvbmVudC4gVGhpcyBjb3VsZCBoYXBwZW4gZm9yIG9uZSBvZiB0aGUgZm9sbG93aW5nIHJlYXNvbnM6XFxuMS4gWW91IG1pZ2h0IGhhdmUgbWlzbWF0Y2hpbmcgdmVyc2lvbnMgb2YgUmVhY3QgYW5kIHRoZSByZW5kZXJlciAoc3VjaCBhcyBSZWFjdCBET00pXFxuMi4gWW91IG1pZ2h0IGJlIGJyZWFraW5nIHRoZSBSdWxlcyBvZiBIb29rc1xcbjMuIFlvdSBtaWdodCBoYXZlIG1vcmUgdGhhbiBvbmUgY29weSBvZiBSZWFjdCBpbiB0aGUgc2FtZSBhcHBcXG5TZWUgaHR0cHM6Ly9yZWFjdC5kZXYvbGluay9pbnZhbGlkLWhvb2stY2FsbCBmb3IgdGlwcyBhYm91dCBob3cgdG8gZGVidWcgYW5kIGZpeCB0aGlzIHByb2JsZW0uXCJcbiAgICAgICk7XG4gICAgfVxuICAgIGZ1bmN0aW9uIGFyZUhvb2tJbnB1dHNFcXVhbChuZXh0RGVwcywgcHJldkRlcHMpIHtcbiAgICAgIGlmIChpZ25vcmVQcmV2aW91c0RlcGVuZGVuY2llcykgcmV0dXJuICExO1xuICAgICAgaWYgKG51bGwgPT09IHByZXZEZXBzKVxuICAgICAgICByZXR1cm4gKFxuICAgICAgICAgIGNvbnNvbGUuZXJyb3IoXG4gICAgICAgICAgICBcIiVzIHJlY2VpdmVkIGEgZmluYWwgYXJndW1lbnQgZHVyaW5nIHRoaXMgcmVuZGVyLCBidXQgbm90IGR1cmluZyB0aGUgcHJldmlvdXMgcmVuZGVyLiBFdmVuIHRob3VnaCB0aGUgZmluYWwgYXJndW1lbnQgaXMgb3B0aW9uYWwsIGl0cyB0eXBlIGNhbm5vdCBjaGFuZ2UgYmV0d2VlbiByZW5kZXJzLlwiLFxuICAgICAgICAgICAgY3VycmVudEhvb2tOYW1lSW5EZXZcbiAgICAgICAgICApLFxuICAgICAgICAgICExXG4gICAgICAgICk7XG4gICAgICBuZXh0RGVwcy5sZW5ndGggIT09IHByZXZEZXBzLmxlbmd0aCAmJlxuICAgICAgICBjb25zb2xlLmVycm9yKFxuICAgICAgICAgIFwiVGhlIGZpbmFsIGFyZ3VtZW50IHBhc3NlZCB0byAlcyBjaGFuZ2VkIHNpemUgYmV0d2VlbiByZW5kZXJzLiBUaGUgb3JkZXIgYW5kIHNpemUgb2YgdGhpcyBhcnJheSBtdXN0IHJlbWFpbiBjb25zdGFudC5cXG5cXG5QcmV2aW91czogJXNcXG5JbmNvbWluZzogJXNcIixcbiAgICAgICAgICBjdXJyZW50SG9va05hbWVJbkRldixcbiAgICAgICAgICBcIltcIiArIHByZXZEZXBzLmpvaW4oXCIsIFwiKSArIFwiXVwiLFxuICAgICAgICAgIFwiW1wiICsgbmV4dERlcHMuam9pbihcIiwgXCIpICsgXCJdXCJcbiAgICAgICAgKTtcbiAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgcHJldkRlcHMubGVuZ3RoICYmIGkgPCBuZXh0RGVwcy5sZW5ndGg7IGkrKylcbiAgICAgICAgaWYgKCFvYmplY3RJcyhuZXh0RGVwc1tpXSwgcHJldkRlcHNbaV0pKSByZXR1cm4gITE7XG4gICAgICByZXR1cm4gITA7XG4gICAgfVxuICAgIGZ1bmN0aW9uIHJlbmRlcldpdGhIb29rcyhcbiAgICAgIGN1cnJlbnQsXG4gICAgICB3b3JrSW5Qcm9ncmVzcyxcbiAgICAgIENvbXBvbmVudCxcbiAgICAgIHByb3BzLFxuICAgICAgc2Vjb25kQXJnLFxuICAgICAgbmV4dFJlbmRlckxhbmVzXG4gICAgKSB7XG4gICAgICByZW5kZXJMYW5lcyA9IG5leHRSZW5kZXJMYW5lcztcbiAgICAgIGN1cnJlbnRseVJlbmRlcmluZ0ZpYmVyID0gd29ya0luUHJvZ3Jlc3M7XG4gICAgICBob29rVHlwZXNEZXYgPSBudWxsICE9PSBjdXJyZW50ID8gY3VycmVudC5fZGVidWdIb29rVHlwZXMgOiBudWxsO1xuICAgICAgaG9va1R5cGVzVXBkYXRlSW5kZXhEZXYgPSAtMTtcbiAgICAgIGlnbm9yZVByZXZpb3VzRGVwZW5kZW5jaWVzID1cbiAgICAgICAgbnVsbCAhPT0gY3VycmVudCAmJiBjdXJyZW50LnR5cGUgIT09IHdvcmtJblByb2dyZXNzLnR5cGU7XG4gICAgICBpZiAoXG4gICAgICAgIFwiW29iamVjdCBBc3luY0Z1bmN0aW9uXVwiID09PVxuICAgICAgICAgIE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChDb21wb25lbnQpIHx8XG4gICAgICAgIFwiW29iamVjdCBBc3luY0dlbmVyYXRvckZ1bmN0aW9uXVwiID09PVxuICAgICAgICAgIE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChDb21wb25lbnQpXG4gICAgICApXG4gICAgICAgIChuZXh0UmVuZGVyTGFuZXMgPSBnZXRDb21wb25lbnROYW1lRnJvbUZpYmVyKGN1cnJlbnRseVJlbmRlcmluZ0ZpYmVyKSksXG4gICAgICAgICAgZGlkV2FybkFib3V0QXN5bmNDbGllbnRDb21wb25lbnQuaGFzKG5leHRSZW5kZXJMYW5lcykgfHxcbiAgICAgICAgICAgIChkaWRXYXJuQWJvdXRBc3luY0NsaWVudENvbXBvbmVudC5hZGQobmV4dFJlbmRlckxhbmVzKSxcbiAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoXG4gICAgICAgICAgICAgIFwiJXMgaXMgYW4gYXN5bmMgQ2xpZW50IENvbXBvbmVudC4gT25seSBTZXJ2ZXIgQ29tcG9uZW50cyBjYW4gYmUgYXN5bmMgYXQgdGhlIG1vbWVudC4gVGhpcyBlcnJvciBpcyBvZnRlbiBjYXVzZWQgYnkgYWNjaWRlbnRhbGx5IGFkZGluZyBgJ3VzZSBjbGllbnQnYCB0byBhIG1vZHVsZSB0aGF0IHdhcyBvcmlnaW5hbGx5IHdyaXR0ZW4gZm9yIHRoZSBzZXJ2ZXIuXCIsXG4gICAgICAgICAgICAgIG51bGwgPT09IG5leHRSZW5kZXJMYW5lc1xuICAgICAgICAgICAgICAgID8gXCJBbiB1bmtub3duIENvbXBvbmVudFwiXG4gICAgICAgICAgICAgICAgOiBcIjxcIiArIG5leHRSZW5kZXJMYW5lcyArIFwiPlwiXG4gICAgICAgICAgICApKTtcbiAgICAgIHdvcmtJblByb2dyZXNzLm1lbW9pemVkU3RhdGUgPSBudWxsO1xuICAgICAgd29ya0luUHJvZ3Jlc3MudXBkYXRlUXVldWUgPSBudWxsO1xuICAgICAgd29ya0luUHJvZ3Jlc3MubGFuZXMgPSAwO1xuICAgICAgUmVhY3RTaGFyZWRJbnRlcm5hbHMuSCA9XG4gICAgICAgIG51bGwgIT09IGN1cnJlbnQgJiYgbnVsbCAhPT0gY3VycmVudC5tZW1vaXplZFN0YXRlXG4gICAgICAgICAgPyBIb29rc0Rpc3BhdGNoZXJPblVwZGF0ZUluREVWXG4gICAgICAgICAgOiBudWxsICE9PSBob29rVHlwZXNEZXZcbiAgICAgICAgICAgID8gSG9va3NEaXNwYXRjaGVyT25Nb3VudFdpdGhIb29rVHlwZXNJbkRFVlxuICAgICAgICAgICAgOiBIb29rc0Rpc3BhdGNoZXJPbk1vdW50SW5ERVY7XG4gICAgICBzaG91bGREb3VibGVJbnZva2VVc2VyRm5zSW5Ib29rc0RFViA9IG5leHRSZW5kZXJMYW5lcyA9XG4gICAgICAgICh3b3JrSW5Qcm9ncmVzcy5tb2RlICYgU3RyaWN0TGVnYWN5TW9kZSkgIT09IE5vTW9kZTtcbiAgICAgIHZhciBjaGlsZHJlbiA9IGNhbGxDb21wb25lbnRJbkRFVihDb21wb25lbnQsIHByb3BzLCBzZWNvbmRBcmcpO1xuICAgICAgc2hvdWxkRG91YmxlSW52b2tlVXNlckZuc0luSG9va3NERVYgPSAhMTtcbiAgICAgIGRpZFNjaGVkdWxlUmVuZGVyUGhhc2VVcGRhdGVEdXJpbmdUaGlzUGFzcyAmJlxuICAgICAgICAoY2hpbGRyZW4gPSByZW5kZXJXaXRoSG9va3NBZ2FpbihcbiAgICAgICAgICB3b3JrSW5Qcm9ncmVzcyxcbiAgICAgICAgICBDb21wb25lbnQsXG4gICAgICAgICAgcHJvcHMsXG4gICAgICAgICAgc2Vjb25kQXJnXG4gICAgICAgICkpO1xuICAgICAgaWYgKG5leHRSZW5kZXJMYW5lcykge1xuICAgICAgICBzZXRJc1N0cmljdE1vZGVGb3JEZXZ0b29scyghMCk7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgY2hpbGRyZW4gPSByZW5kZXJXaXRoSG9va3NBZ2FpbihcbiAgICAgICAgICAgIHdvcmtJblByb2dyZXNzLFxuICAgICAgICAgICAgQ29tcG9uZW50LFxuICAgICAgICAgICAgcHJvcHMsXG4gICAgICAgICAgICBzZWNvbmRBcmdcbiAgICAgICAgICApO1xuICAgICAgICB9IGZpbmFsbHkge1xuICAgICAgICAgIHNldElzU3RyaWN0TW9kZUZvckRldnRvb2xzKCExKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgZmluaXNoUmVuZGVyaW5nSG9va3MoY3VycmVudCwgd29ya0luUHJvZ3Jlc3MpO1xuICAgICAgcmV0dXJuIGNoaWxkcmVuO1xuICAgIH1cbiAgICBmdW5jdGlvbiBmaW5pc2hSZW5kZXJpbmdIb29rcyhjdXJyZW50LCB3b3JrSW5Qcm9ncmVzcykge1xuICAgICAgd29ya0luUHJvZ3Jlc3MuX2RlYnVnSG9va1R5cGVzID0gaG9va1R5cGVzRGV2O1xuICAgICAgbnVsbCA9PT0gd29ya0luUHJvZ3Jlc3MuZGVwZW5kZW5jaWVzXG4gICAgICAgID8gbnVsbCAhPT0gdGhlbmFibGVTdGF0ZSQxICYmXG4gICAgICAgICAgKHdvcmtJblByb2dyZXNzLmRlcGVuZGVuY2llcyA9IHtcbiAgICAgICAgICAgIGxhbmVzOiAwLFxuICAgICAgICAgICAgZmlyc3RDb250ZXh0OiBudWxsLFxuICAgICAgICAgICAgX2RlYnVnVGhlbmFibGVTdGF0ZTogdGhlbmFibGVTdGF0ZSQxXG4gICAgICAgICAgfSlcbiAgICAgICAgOiAod29ya0luUHJvZ3Jlc3MuZGVwZW5kZW5jaWVzLl9kZWJ1Z1RoZW5hYmxlU3RhdGUgPSB0aGVuYWJsZVN0YXRlJDEpO1xuICAgICAgUmVhY3RTaGFyZWRJbnRlcm5hbHMuSCA9IENvbnRleHRPbmx5RGlzcGF0Y2hlcjtcbiAgICAgIHZhciBkaWRSZW5kZXJUb29GZXdIb29rcyA9XG4gICAgICAgIG51bGwgIT09IGN1cnJlbnRIb29rICYmIG51bGwgIT09IGN1cnJlbnRIb29rLm5leHQ7XG4gICAgICByZW5kZXJMYW5lcyA9IDA7XG4gICAgICBob29rVHlwZXNEZXYgPVxuICAgICAgICBjdXJyZW50SG9va05hbWVJbkRldiA9XG4gICAgICAgIHdvcmtJblByb2dyZXNzSG9vayA9XG4gICAgICAgIGN1cnJlbnRIb29rID1cbiAgICAgICAgY3VycmVudGx5UmVuZGVyaW5nRmliZXIgPVxuICAgICAgICAgIG51bGw7XG4gICAgICBob29rVHlwZXNVcGRhdGVJbmRleERldiA9IC0xO1xuICAgICAgbnVsbCAhPT0gY3VycmVudCAmJlxuICAgICAgICAoY3VycmVudC5mbGFncyAmIDY1MDExNzEyKSAhPT0gKHdvcmtJblByb2dyZXNzLmZsYWdzICYgNjUwMTE3MTIpICYmXG4gICAgICAgIGNvbnNvbGUuZXJyb3IoXG4gICAgICAgICAgXCJJbnRlcm5hbCBSZWFjdCBlcnJvcjogRXhwZWN0ZWQgc3RhdGljIGZsYWcgd2FzIG1pc3NpbmcuIFBsZWFzZSBub3RpZnkgdGhlIFJlYWN0IHRlYW0uXCJcbiAgICAgICAgKTtcbiAgICAgIGRpZFNjaGVkdWxlUmVuZGVyUGhhc2VVcGRhdGUgPSAhMTtcbiAgICAgIHRoZW5hYmxlSW5kZXhDb3VudGVyJDEgPSAwO1xuICAgICAgdGhlbmFibGVTdGF0ZSQxID0gbnVsbDtcbiAgICAgIGlmIChkaWRSZW5kZXJUb29GZXdIb29rcylcbiAgICAgICAgdGhyb3cgRXJyb3IoXG4gICAgICAgICAgXCJSZW5kZXJlZCBmZXdlciBob29rcyB0aGFuIGV4cGVjdGVkLiBUaGlzIG1heSBiZSBjYXVzZWQgYnkgYW4gYWNjaWRlbnRhbCBlYXJseSByZXR1cm4gc3RhdGVtZW50LlwiXG4gICAgICAgICk7XG4gICAgICBudWxsID09PSBjdXJyZW50IHx8XG4gICAgICAgIGRpZFJlY2VpdmVVcGRhdGUgfHxcbiAgICAgICAgKChjdXJyZW50ID0gY3VycmVudC5kZXBlbmRlbmNpZXMpLFxuICAgICAgICBudWxsICE9PSBjdXJyZW50ICYmXG4gICAgICAgICAgY2hlY2tJZkNvbnRleHRDaGFuZ2VkKGN1cnJlbnQpICYmXG4gICAgICAgICAgKGRpZFJlY2VpdmVVcGRhdGUgPSAhMCkpO1xuICAgICAgbmVlZHNUb1Jlc2V0U3VzcGVuZGVkVGhlbmFibGVERVZcbiAgICAgICAgPyAoKG5lZWRzVG9SZXNldFN1c3BlbmRlZFRoZW5hYmxlREVWID0gITEpLCAoY3VycmVudCA9ICEwKSlcbiAgICAgICAgOiAoY3VycmVudCA9ICExKTtcbiAgICAgIGN1cnJlbnQgJiZcbiAgICAgICAgKCh3b3JrSW5Qcm9ncmVzcyA9XG4gICAgICAgICAgZ2V0Q29tcG9uZW50TmFtZUZyb21GaWJlcih3b3JrSW5Qcm9ncmVzcykgfHwgXCJVbmtub3duXCIpLFxuICAgICAgICBkaWRXYXJuQWJvdXRVc2VXcmFwcGVkSW5UcnlDYXRjaC5oYXMod29ya0luUHJvZ3Jlc3MpIHx8XG4gICAgICAgICAgZGlkV2FybkFib3V0QXN5bmNDbGllbnRDb21wb25lbnQuaGFzKHdvcmtJblByb2dyZXNzKSB8fFxuICAgICAgICAgIChkaWRXYXJuQWJvdXRVc2VXcmFwcGVkSW5UcnlDYXRjaC5hZGQod29ya0luUHJvZ3Jlc3MpLFxuICAgICAgICAgIGNvbnNvbGUuZXJyb3IoXG4gICAgICAgICAgICBcImB1c2VgIHdhcyBjYWxsZWQgZnJvbSBpbnNpZGUgYSB0cnkvY2F0Y2ggYmxvY2suIFRoaXMgaXMgbm90IGFsbG93ZWQgYW5kIGNhbiBsZWFkIHRvIHVuZXhwZWN0ZWQgYmVoYXZpb3IuIFRvIGhhbmRsZSBlcnJvcnMgdHJpZ2dlcmVkIGJ5IGB1c2VgLCB3cmFwIHlvdXIgY29tcG9uZW50IGluIGEgZXJyb3IgYm91bmRhcnkuXCJcbiAgICAgICAgICApKSk7XG4gICAgfVxuICAgIGZ1bmN0aW9uIHJlbmRlcldpdGhIb29rc0FnYWluKHdvcmtJblByb2dyZXNzLCBDb21wb25lbnQsIHByb3BzLCBzZWNvbmRBcmcpIHtcbiAgICAgIGN1cnJlbnRseVJlbmRlcmluZ0ZpYmVyID0gd29ya0luUHJvZ3Jlc3M7XG4gICAgICB2YXIgbnVtYmVyT2ZSZVJlbmRlcnMgPSAwO1xuICAgICAgZG8ge1xuICAgICAgICBkaWRTY2hlZHVsZVJlbmRlclBoYXNlVXBkYXRlRHVyaW5nVGhpc1Bhc3MgJiYgKHRoZW5hYmxlU3RhdGUkMSA9IG51bGwpO1xuICAgICAgICB0aGVuYWJsZUluZGV4Q291bnRlciQxID0gMDtcbiAgICAgICAgZGlkU2NoZWR1bGVSZW5kZXJQaGFzZVVwZGF0ZUR1cmluZ1RoaXNQYXNzID0gITE7XG4gICAgICAgIGlmIChudW1iZXJPZlJlUmVuZGVycyA+PSBSRV9SRU5ERVJfTElNSVQpXG4gICAgICAgICAgdGhyb3cgRXJyb3IoXG4gICAgICAgICAgICBcIlRvbyBtYW55IHJlLXJlbmRlcnMuIFJlYWN0IGxpbWl0cyB0aGUgbnVtYmVyIG9mIHJlbmRlcnMgdG8gcHJldmVudCBhbiBpbmZpbml0ZSBsb29wLlwiXG4gICAgICAgICAgKTtcbiAgICAgICAgbnVtYmVyT2ZSZVJlbmRlcnMgKz0gMTtcbiAgICAgICAgaWdub3JlUHJldmlvdXNEZXBlbmRlbmNpZXMgPSAhMTtcbiAgICAgICAgd29ya0luUHJvZ3Jlc3NIb29rID0gY3VycmVudEhvb2sgPSBudWxsO1xuICAgICAgICBpZiAobnVsbCAhPSB3b3JrSW5Qcm9ncmVzcy51cGRhdGVRdWV1ZSkge1xuICAgICAgICAgIHZhciBjaGlsZHJlbiA9IHdvcmtJblByb2dyZXNzLnVwZGF0ZVF1ZXVlO1xuICAgICAgICAgIGNoaWxkcmVuLmxhc3RFZmZlY3QgPSBudWxsO1xuICAgICAgICAgIGNoaWxkcmVuLmV2ZW50cyA9IG51bGw7XG4gICAgICAgICAgY2hpbGRyZW4uc3RvcmVzID0gbnVsbDtcbiAgICAgICAgICBudWxsICE9IGNoaWxkcmVuLm1lbW9DYWNoZSAmJiAoY2hpbGRyZW4ubWVtb0NhY2hlLmluZGV4ID0gMCk7XG4gICAgICAgIH1cbiAgICAgICAgaG9va1R5cGVzVXBkYXRlSW5kZXhEZXYgPSAtMTtcbiAgICAgICAgUmVhY3RTaGFyZWRJbnRlcm5hbHMuSCA9IEhvb2tzRGlzcGF0Y2hlck9uUmVyZW5kZXJJbkRFVjtcbiAgICAgICAgY2hpbGRyZW4gPSBjYWxsQ29tcG9uZW50SW5ERVYoQ29tcG9uZW50LCBwcm9wcywgc2Vjb25kQXJnKTtcbiAgICAgIH0gd2hpbGUgKGRpZFNjaGVkdWxlUmVuZGVyUGhhc2VVcGRhdGVEdXJpbmdUaGlzUGFzcyk7XG4gICAgICByZXR1cm4gY2hpbGRyZW47XG4gICAgfVxuICAgIGZ1bmN0aW9uIFRyYW5zaXRpb25Bd2FyZUhvc3RDb21wb25lbnQoKSB7XG4gICAgICB2YXIgZGlzcGF0Y2hlciA9IFJlYWN0U2hhcmVkSW50ZXJuYWxzLkgsXG4gICAgICAgIG1heWJlVGhlbmFibGUgPSBkaXNwYXRjaGVyLnVzZVN0YXRlKClbMF07XG4gICAgICBtYXliZVRoZW5hYmxlID1cbiAgICAgICAgXCJmdW5jdGlvblwiID09PSB0eXBlb2YgbWF5YmVUaGVuYWJsZS50aGVuXG4gICAgICAgICAgPyB1c2VUaGVuYWJsZShtYXliZVRoZW5hYmxlKVxuICAgICAgICAgIDogbWF5YmVUaGVuYWJsZTtcbiAgICAgIGRpc3BhdGNoZXIgPSBkaXNwYXRjaGVyLnVzZVN0YXRlKClbMF07XG4gICAgICAobnVsbCAhPT0gY3VycmVudEhvb2sgPyBjdXJyZW50SG9vay5tZW1vaXplZFN0YXRlIDogbnVsbCkgIT09XG4gICAgICAgIGRpc3BhdGNoZXIgJiYgKGN1cnJlbnRseVJlbmRlcmluZ0ZpYmVyLmZsYWdzIHw9IDEwMjQpO1xuICAgICAgcmV0dXJuIG1heWJlVGhlbmFibGU7XG4gICAgfVxuICAgIGZ1bmN0aW9uIGNoZWNrRGlkUmVuZGVySWRIb29rKCkge1xuICAgICAgdmFyIGRpZFJlbmRlcklkSG9vayA9IDAgIT09IGxvY2FsSWRDb3VudGVyO1xuICAgICAgbG9jYWxJZENvdW50ZXIgPSAwO1xuICAgICAgcmV0dXJuIGRpZFJlbmRlcklkSG9vaztcbiAgICB9XG4gICAgZnVuY3Rpb24gYmFpbG91dEhvb2tzKGN1cnJlbnQsIHdvcmtJblByb2dyZXNzLCBsYW5lcykge1xuICAgICAgd29ya0luUHJvZ3Jlc3MudXBkYXRlUXVldWUgPSBjdXJyZW50LnVwZGF0ZVF1ZXVlO1xuICAgICAgd29ya0luUHJvZ3Jlc3MuZmxhZ3MgPVxuICAgICAgICAod29ya0luUHJvZ3Jlc3MubW9kZSAmIFN0cmljdEVmZmVjdHNNb2RlKSAhPT0gTm9Nb2RlXG4gICAgICAgICAgPyB3b3JrSW5Qcm9ncmVzcy5mbGFncyAmIC00MDI2NTUyMzdcbiAgICAgICAgICA6IHdvcmtJblByb2dyZXNzLmZsYWdzICYgLTIwNTM7XG4gICAgICBjdXJyZW50LmxhbmVzICY9IH5sYW5lcztcbiAgICB9XG4gICAgZnVuY3Rpb24gcmVzZXRIb29rc09uVW53aW5kKHdvcmtJblByb2dyZXNzKSB7XG4gICAgICBpZiAoZGlkU2NoZWR1bGVSZW5kZXJQaGFzZVVwZGF0ZSkge1xuICAgICAgICBmb3IgKFxuICAgICAgICAgIHdvcmtJblByb2dyZXNzID0gd29ya0luUHJvZ3Jlc3MubWVtb2l6ZWRTdGF0ZTtcbiAgICAgICAgICBudWxsICE9PSB3b3JrSW5Qcm9ncmVzcztcblxuICAgICAgICApIHtcbiAgICAgICAgICB2YXIgcXVldWUgPSB3b3JrSW5Qcm9ncmVzcy5xdWV1ZTtcbiAgICAgICAgICBudWxsICE9PSBxdWV1ZSAmJiAocXVldWUucGVuZGluZyA9IG51bGwpO1xuICAgICAgICAgIHdvcmtJblByb2dyZXNzID0gd29ya0luUHJvZ3Jlc3MubmV4dDtcbiAgICAgICAgfVxuICAgICAgICBkaWRTY2hlZHVsZVJlbmRlclBoYXNlVXBkYXRlID0gITE7XG4gICAgICB9XG4gICAgICByZW5kZXJMYW5lcyA9IDA7XG4gICAgICBob29rVHlwZXNEZXYgPVxuICAgICAgICB3b3JrSW5Qcm9ncmVzc0hvb2sgPVxuICAgICAgICBjdXJyZW50SG9vayA9XG4gICAgICAgIGN1cnJlbnRseVJlbmRlcmluZ0ZpYmVyID1cbiAgICAgICAgICBudWxsO1xuICAgICAgaG9va1R5cGVzVXBkYXRlSW5kZXhEZXYgPSAtMTtcbiAgICAgIGN1cnJlbnRIb29rTmFtZUluRGV2ID0gbnVsbDtcbiAgICAgIGRpZFNjaGVkdWxlUmVuZGVyUGhhc2VVcGRhdGVEdXJpbmdUaGlzUGFzcyA9ICExO1xuICAgICAgdGhlbmFibGVJbmRleENvdW50ZXIkMSA9IGxvY2FsSWRDb3VudGVyID0gMDtcbiAgICAgIHRoZW5hYmxlU3RhdGUkMSA9IG51bGw7XG4gICAgfVxuICAgIGZ1bmN0aW9uIG1vdW50V29ya0luUHJvZ3Jlc3NIb29rKCkge1xuICAgICAgdmFyIGhvb2sgPSB7XG4gICAgICAgIG1lbW9pemVkU3RhdGU6IG51bGwsXG4gICAgICAgIGJhc2VTdGF0ZTogbnVsbCxcbiAgICAgICAgYmFzZVF1ZXVlOiBudWxsLFxuICAgICAgICBxdWV1ZTogbnVsbCxcbiAgICAgICAgbmV4dDogbnVsbFxuICAgICAgfTtcbiAgICAgIG51bGwgPT09IHdvcmtJblByb2dyZXNzSG9va1xuICAgICAgICA/IChjdXJyZW50bHlSZW5kZXJpbmdGaWJlci5tZW1vaXplZFN0YXRlID0gd29ya0luUHJvZ3Jlc3NIb29rID0gaG9vaylcbiAgICAgICAgOiAod29ya0luUHJvZ3Jlc3NIb29rID0gd29ya0luUHJvZ3Jlc3NIb29rLm5leHQgPSBob29rKTtcbiAgICAgIHJldHVybiB3b3JrSW5Qcm9ncmVzc0hvb2s7XG4gICAgfVxuICAgIGZ1bmN0aW9uIHVwZGF0ZVdvcmtJblByb2dyZXNzSG9vaygpIHtcbiAgICAgIGlmIChudWxsID09PSBjdXJyZW50SG9vaykge1xuICAgICAgICB2YXIgbmV4dEN1cnJlbnRIb29rID0gY3VycmVudGx5UmVuZGVyaW5nRmliZXIuYWx0ZXJuYXRlO1xuICAgICAgICBuZXh0Q3VycmVudEhvb2sgPVxuICAgICAgICAgIG51bGwgIT09IG5leHRDdXJyZW50SG9vayA/IG5leHRDdXJyZW50SG9vay5tZW1vaXplZFN0YXRlIDogbnVsbDtcbiAgICAgIH0gZWxzZSBuZXh0Q3VycmVudEhvb2sgPSBjdXJyZW50SG9vay5uZXh0O1xuICAgICAgdmFyIG5leHRXb3JrSW5Qcm9ncmVzc0hvb2sgPVxuICAgICAgICBudWxsID09PSB3b3JrSW5Qcm9ncmVzc0hvb2tcbiAgICAgICAgICA/IGN1cnJlbnRseVJlbmRlcmluZ0ZpYmVyLm1lbW9pemVkU3RhdGVcbiAgICAgICAgICA6IHdvcmtJblByb2dyZXNzSG9vay5uZXh0O1xuICAgICAgaWYgKG51bGwgIT09IG5leHRXb3JrSW5Qcm9ncmVzc0hvb2spXG4gICAgICAgICh3b3JrSW5Qcm9ncmVzc0hvb2sgPSBuZXh0V29ya0luUHJvZ3Jlc3NIb29rKSxcbiAgICAgICAgICAoY3VycmVudEhvb2sgPSBuZXh0Q3VycmVudEhvb2spO1xuICAgICAgZWxzZSB7XG4gICAgICAgIGlmIChudWxsID09PSBuZXh0Q3VycmVudEhvb2spIHtcbiAgICAgICAgICBpZiAobnVsbCA9PT0gY3VycmVudGx5UmVuZGVyaW5nRmliZXIuYWx0ZXJuYXRlKVxuICAgICAgICAgICAgdGhyb3cgRXJyb3IoXG4gICAgICAgICAgICAgIFwiVXBkYXRlIGhvb2sgY2FsbGVkIG9uIGluaXRpYWwgcmVuZGVyLiBUaGlzIGlzIGxpa2VseSBhIGJ1ZyBpbiBSZWFjdC4gUGxlYXNlIGZpbGUgYW4gaXNzdWUuXCJcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgdGhyb3cgRXJyb3IoXCJSZW5kZXJlZCBtb3JlIGhvb2tzIHRoYW4gZHVyaW5nIHRoZSBwcmV2aW91cyByZW5kZXIuXCIpO1xuICAgICAgICB9XG4gICAgICAgIGN1cnJlbnRIb29rID0gbmV4dEN1cnJlbnRIb29rO1xuICAgICAgICBuZXh0Q3VycmVudEhvb2sgPSB7XG4gICAgICAgICAgbWVtb2l6ZWRTdGF0ZTogY3VycmVudEhvb2subWVtb2l6ZWRTdGF0ZSxcbiAgICAgICAgICBiYXNlU3RhdGU6IGN1cnJlbnRIb29rLmJhc2VTdGF0ZSxcbiAgICAgICAgICBiYXNlUXVldWU6IGN1cnJlbnRIb29rLmJhc2VRdWV1ZSxcbiAgICAgICAgICBxdWV1ZTogY3VycmVudEhvb2sucXVldWUsXG4gICAgICAgICAgbmV4dDogbnVsbFxuICAgICAgICB9O1xuICAgICAgICBudWxsID09PSB3b3JrSW5Qcm9ncmVzc0hvb2tcbiAgICAgICAgICA/IChjdXJyZW50bHlSZW5kZXJpbmdGaWJlci5tZW1vaXplZFN0YXRlID0gd29ya0luUHJvZ3Jlc3NIb29rID1cbiAgICAgICAgICAgICAgbmV4dEN1cnJlbnRIb29rKVxuICAgICAgICAgIDogKHdvcmtJblByb2dyZXNzSG9vayA9IHdvcmtJblByb2dyZXNzSG9vay5uZXh0ID0gbmV4dEN1cnJlbnRIb29rKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiB3b3JrSW5Qcm9ncmVzc0hvb2s7XG4gICAgfVxuICAgIGZ1bmN0aW9uIGNyZWF0ZUZ1bmN0aW9uQ29tcG9uZW50VXBkYXRlUXVldWUoKSB7XG4gICAgICByZXR1cm4geyBsYXN0RWZmZWN0OiBudWxsLCBldmVudHM6IG51bGwsIHN0b3JlczogbnVsbCwgbWVtb0NhY2hlOiBudWxsIH07XG4gICAgfVxuICAgIGZ1bmN0aW9uIHVzZVRoZW5hYmxlKHRoZW5hYmxlKSB7XG4gICAgICB2YXIgaW5kZXggPSB0aGVuYWJsZUluZGV4Q291bnRlciQxO1xuICAgICAgdGhlbmFibGVJbmRleENvdW50ZXIkMSArPSAxO1xuICAgICAgbnVsbCA9PT0gdGhlbmFibGVTdGF0ZSQxICYmICh0aGVuYWJsZVN0YXRlJDEgPSBjcmVhdGVUaGVuYWJsZVN0YXRlKCkpO1xuICAgICAgdGhlbmFibGUgPSB0cmFja1VzZWRUaGVuYWJsZSh0aGVuYWJsZVN0YXRlJDEsIHRoZW5hYmxlLCBpbmRleCk7XG4gICAgICBpbmRleCA9IGN1cnJlbnRseVJlbmRlcmluZ0ZpYmVyO1xuICAgICAgbnVsbCA9PT1cbiAgICAgICAgKG51bGwgPT09IHdvcmtJblByb2dyZXNzSG9va1xuICAgICAgICAgID8gaW5kZXgubWVtb2l6ZWRTdGF0ZVxuICAgICAgICAgIDogd29ya0luUHJvZ3Jlc3NIb29rLm5leHQpICYmXG4gICAgICAgICgoaW5kZXggPSBpbmRleC5hbHRlcm5hdGUpLFxuICAgICAgICAoUmVhY3RTaGFyZWRJbnRlcm5hbHMuSCA9XG4gICAgICAgICAgbnVsbCAhPT0gaW5kZXggJiYgbnVsbCAhPT0gaW5kZXgubWVtb2l6ZWRTdGF0ZVxuICAgICAgICAgICAgPyBIb29rc0Rpc3BhdGNoZXJPblVwZGF0ZUluREVWXG4gICAgICAgICAgICA6IEhvb2tzRGlzcGF0Y2hlck9uTW91bnRJbkRFVikpO1xuICAgICAgcmV0dXJuIHRoZW5hYmxlO1xuICAgIH1cbiAgICBmdW5jdGlvbiB1c2UodXNhYmxlKSB7XG4gICAgICBpZiAobnVsbCAhPT0gdXNhYmxlICYmIFwib2JqZWN0XCIgPT09IHR5cGVvZiB1c2FibGUpIHtcbiAgICAgICAgaWYgKFwiZnVuY3Rpb25cIiA9PT0gdHlwZW9mIHVzYWJsZS50aGVuKSByZXR1cm4gdXNlVGhlbmFibGUodXNhYmxlKTtcbiAgICAgICAgaWYgKHVzYWJsZS4kJHR5cGVvZiA9PT0gUkVBQ1RfQ09OVEVYVF9UWVBFKSByZXR1cm4gcmVhZENvbnRleHQodXNhYmxlKTtcbiAgICAgIH1cbiAgICAgIHRocm93IEVycm9yKFwiQW4gdW5zdXBwb3J0ZWQgdHlwZSB3YXMgcGFzc2VkIHRvIHVzZSgpOiBcIiArIFN0cmluZyh1c2FibGUpKTtcbiAgICB9XG4gICAgZnVuY3Rpb24gdXNlTWVtb0NhY2hlKHNpemUpIHtcbiAgICAgIHZhciBtZW1vQ2FjaGUgPSBudWxsLFxuICAgICAgICB1cGRhdGVRdWV1ZSA9IGN1cnJlbnRseVJlbmRlcmluZ0ZpYmVyLnVwZGF0ZVF1ZXVlO1xuICAgICAgbnVsbCAhPT0gdXBkYXRlUXVldWUgJiYgKG1lbW9DYWNoZSA9IHVwZGF0ZVF1ZXVlLm1lbW9DYWNoZSk7XG4gICAgICBpZiAobnVsbCA9PSBtZW1vQ2FjaGUpIHtcbiAgICAgICAgdmFyIGN1cnJlbnQgPSBjdXJyZW50bHlSZW5kZXJpbmdGaWJlci5hbHRlcm5hdGU7XG4gICAgICAgIG51bGwgIT09IGN1cnJlbnQgJiZcbiAgICAgICAgICAoKGN1cnJlbnQgPSBjdXJyZW50LnVwZGF0ZVF1ZXVlKSxcbiAgICAgICAgICBudWxsICE9PSBjdXJyZW50ICYmXG4gICAgICAgICAgICAoKGN1cnJlbnQgPSBjdXJyZW50Lm1lbW9DYWNoZSksXG4gICAgICAgICAgICBudWxsICE9IGN1cnJlbnQgJiZcbiAgICAgICAgICAgICAgKG1lbW9DYWNoZSA9IHtcbiAgICAgICAgICAgICAgICBkYXRhOiBjdXJyZW50LmRhdGEubWFwKGZ1bmN0aW9uIChhcnJheSkge1xuICAgICAgICAgICAgICAgICAgcmV0dXJuIGFycmF5LnNsaWNlKCk7XG4gICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgaW5kZXg6IDBcbiAgICAgICAgICAgICAgfSkpKTtcbiAgICAgIH1cbiAgICAgIG51bGwgPT0gbWVtb0NhY2hlICYmIChtZW1vQ2FjaGUgPSB7IGRhdGE6IFtdLCBpbmRleDogMCB9KTtcbiAgICAgIG51bGwgPT09IHVwZGF0ZVF1ZXVlICYmXG4gICAgICAgICgodXBkYXRlUXVldWUgPSBjcmVhdGVGdW5jdGlvbkNvbXBvbmVudFVwZGF0ZVF1ZXVlKCkpLFxuICAgICAgICAoY3VycmVudGx5UmVuZGVyaW5nRmliZXIudXBkYXRlUXVldWUgPSB1cGRhdGVRdWV1ZSkpO1xuICAgICAgdXBkYXRlUXVldWUubWVtb0NhY2hlID0gbWVtb0NhY2hlO1xuICAgICAgdXBkYXRlUXVldWUgPSBtZW1vQ2FjaGUuZGF0YVttZW1vQ2FjaGUuaW5kZXhdO1xuICAgICAgaWYgKHZvaWQgMCA9PT0gdXBkYXRlUXVldWUgfHwgaWdub3JlUHJldmlvdXNEZXBlbmRlbmNpZXMpXG4gICAgICAgIGZvciAoXG4gICAgICAgICAgdXBkYXRlUXVldWUgPSBtZW1vQ2FjaGUuZGF0YVttZW1vQ2FjaGUuaW5kZXhdID0gQXJyYXkoc2l6ZSksXG4gICAgICAgICAgICBjdXJyZW50ID0gMDtcbiAgICAgICAgICBjdXJyZW50IDwgc2l6ZTtcbiAgICAgICAgICBjdXJyZW50KytcbiAgICAgICAgKVxuICAgICAgICAgIHVwZGF0ZVF1ZXVlW2N1cnJlbnRdID0gUkVBQ1RfTUVNT19DQUNIRV9TRU5USU5FTDtcbiAgICAgIGVsc2VcbiAgICAgICAgdXBkYXRlUXVldWUubGVuZ3RoICE9PSBzaXplICYmXG4gICAgICAgICAgY29uc29sZS5lcnJvcihcbiAgICAgICAgICAgIFwiRXhwZWN0ZWQgYSBjb25zdGFudCBzaXplIGFyZ3VtZW50IGZvciBlYWNoIGludm9jYXRpb24gb2YgdXNlTWVtb0NhY2hlLiBUaGUgcHJldmlvdXMgY2FjaGUgd2FzIGFsbG9jYXRlZCB3aXRoIHNpemUgJXMgYnV0IHNpemUgJXMgd2FzIHJlcXVlc3RlZC5cIixcbiAgICAgICAgICAgIHVwZGF0ZVF1ZXVlLmxlbmd0aCxcbiAgICAgICAgICAgIHNpemVcbiAgICAgICAgICApO1xuICAgICAgbWVtb0NhY2hlLmluZGV4Kys7XG4gICAgICByZXR1cm4gdXBkYXRlUXVldWU7XG4gICAgfVxuICAgIGZ1bmN0aW9uIGJhc2ljU3RhdGVSZWR1Y2VyKHN0YXRlLCBhY3Rpb24pIHtcbiAgICAgIHJldHVybiBcImZ1bmN0aW9uXCIgPT09IHR5cGVvZiBhY3Rpb24gPyBhY3Rpb24oc3RhdGUpIDogYWN0aW9uO1xuICAgIH1cbiAgICBmdW5jdGlvbiBtb3VudFJlZHVjZXIocmVkdWNlciwgaW5pdGlhbEFyZywgaW5pdCkge1xuICAgICAgdmFyIGhvb2sgPSBtb3VudFdvcmtJblByb2dyZXNzSG9vaygpO1xuICAgICAgaWYgKHZvaWQgMCAhPT0gaW5pdCkge1xuICAgICAgICB2YXIgaW5pdGlhbFN0YXRlID0gaW5pdChpbml0aWFsQXJnKTtcbiAgICAgICAgaWYgKHNob3VsZERvdWJsZUludm9rZVVzZXJGbnNJbkhvb2tzREVWKSB7XG4gICAgICAgICAgc2V0SXNTdHJpY3RNb2RlRm9yRGV2dG9vbHMoITApO1xuICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICBpbml0KGluaXRpYWxBcmcpO1xuICAgICAgICAgIH0gZmluYWxseSB7XG4gICAgICAgICAgICBzZXRJc1N0cmljdE1vZGVGb3JEZXZ0b29scyghMSk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9IGVsc2UgaW5pdGlhbFN0YXRlID0gaW5pdGlhbEFyZztcbiAgICAgIGhvb2subWVtb2l6ZWRTdGF0ZSA9IGhvb2suYmFzZVN0YXRlID0gaW5pdGlhbFN0YXRlO1xuICAgICAgcmVkdWNlciA9IHtcbiAgICAgICAgcGVuZGluZzogbnVsbCxcbiAgICAgICAgbGFuZXM6IDAsXG4gICAgICAgIGRpc3BhdGNoOiBudWxsLFxuICAgICAgICBsYXN0UmVuZGVyZWRSZWR1Y2VyOiByZWR1Y2VyLFxuICAgICAgICBsYXN0UmVuZGVyZWRTdGF0ZTogaW5pdGlhbFN0YXRlXG4gICAgICB9O1xuICAgICAgaG9vay5xdWV1ZSA9IHJlZHVjZXI7XG4gICAgICByZWR1Y2VyID0gcmVkdWNlci5kaXNwYXRjaCA9IGRpc3BhdGNoUmVkdWNlckFjdGlvbi5iaW5kKFxuICAgICAgICBudWxsLFxuICAgICAgICBjdXJyZW50bHlSZW5kZXJpbmdGaWJlcixcbiAgICAgICAgcmVkdWNlclxuICAgICAgKTtcbiAgICAgIHJldHVybiBbaG9vay5tZW1vaXplZFN0YXRlLCByZWR1Y2VyXTtcbiAgICB9XG4gICAgZnVuY3Rpb24gdXBkYXRlUmVkdWNlcihyZWR1Y2VyKSB7XG4gICAgICB2YXIgaG9vayA9IHVwZGF0ZVdvcmtJblByb2dyZXNzSG9vaygpO1xuICAgICAgcmV0dXJuIHVwZGF0ZVJlZHVjZXJJbXBsKGhvb2ssIGN1cnJlbnRIb29rLCByZWR1Y2VyKTtcbiAgICB9XG4gICAgZnVuY3Rpb24gdXBkYXRlUmVkdWNlckltcGwoaG9vaywgY3VycmVudCwgcmVkdWNlcikge1xuICAgICAgdmFyIHF1ZXVlID0gaG9vay5xdWV1ZTtcbiAgICAgIGlmIChudWxsID09PSBxdWV1ZSlcbiAgICAgICAgdGhyb3cgRXJyb3IoXG4gICAgICAgICAgXCJTaG91bGQgaGF2ZSBhIHF1ZXVlLiBZb3UgYXJlIGxpa2VseSBjYWxsaW5nIEhvb2tzIGNvbmRpdGlvbmFsbHksIHdoaWNoIGlzIG5vdCBhbGxvd2VkLiAoaHR0cHM6Ly9yZWFjdC5kZXYvbGluay9pbnZhbGlkLWhvb2stY2FsbClcIlxuICAgICAgICApO1xuICAgICAgcXVldWUubGFzdFJlbmRlcmVkUmVkdWNlciA9IHJlZHVjZXI7XG4gICAgICB2YXIgYmFzZVF1ZXVlID0gaG9vay5iYXNlUXVldWUsXG4gICAgICAgIHBlbmRpbmdRdWV1ZSA9IHF1ZXVlLnBlbmRpbmc7XG4gICAgICBpZiAobnVsbCAhPT0gcGVuZGluZ1F1ZXVlKSB7XG4gICAgICAgIGlmIChudWxsICE9PSBiYXNlUXVldWUpIHtcbiAgICAgICAgICB2YXIgYmFzZUZpcnN0ID0gYmFzZVF1ZXVlLm5leHQ7XG4gICAgICAgICAgYmFzZVF1ZXVlLm5leHQgPSBwZW5kaW5nUXVldWUubmV4dDtcbiAgICAgICAgICBwZW5kaW5nUXVldWUubmV4dCA9IGJhc2VGaXJzdDtcbiAgICAgICAgfVxuICAgICAgICBjdXJyZW50LmJhc2VRdWV1ZSAhPT0gYmFzZVF1ZXVlICYmXG4gICAgICAgICAgY29uc29sZS5lcnJvcihcbiAgICAgICAgICAgIFwiSW50ZXJuYWwgZXJyb3I6IEV4cGVjdGVkIHdvcmstaW4tcHJvZ3Jlc3MgcXVldWUgdG8gYmUgYSBjbG9uZS4gVGhpcyBpcyBhIGJ1ZyBpbiBSZWFjdC5cIlxuICAgICAgICAgICk7XG4gICAgICAgIGN1cnJlbnQuYmFzZVF1ZXVlID0gYmFzZVF1ZXVlID0gcGVuZGluZ1F1ZXVlO1xuICAgICAgICBxdWV1ZS5wZW5kaW5nID0gbnVsbDtcbiAgICAgIH1cbiAgICAgIHBlbmRpbmdRdWV1ZSA9IGhvb2suYmFzZVN0YXRlO1xuICAgICAgaWYgKG51bGwgPT09IGJhc2VRdWV1ZSkgaG9vay5tZW1vaXplZFN0YXRlID0gcGVuZGluZ1F1ZXVlO1xuICAgICAgZWxzZSB7XG4gICAgICAgIGN1cnJlbnQgPSBiYXNlUXVldWUubmV4dDtcbiAgICAgICAgdmFyIG5ld0Jhc2VRdWV1ZUZpcnN0ID0gKGJhc2VGaXJzdCA9IG51bGwpLFxuICAgICAgICAgIG5ld0Jhc2VRdWV1ZUxhc3QgPSBudWxsLFxuICAgICAgICAgIHVwZGF0ZSA9IGN1cnJlbnQsXG4gICAgICAgICAgZGlkUmVhZEZyb21FbnRhbmdsZWRBc3luY0FjdGlvbiA9ICExO1xuICAgICAgICBkbyB7XG4gICAgICAgICAgdmFyIHVwZGF0ZUxhbmUgPSB1cGRhdGUubGFuZSAmIC01MzY4NzA5MTM7XG4gICAgICAgICAgaWYgKFxuICAgICAgICAgICAgdXBkYXRlTGFuZSAhPT0gdXBkYXRlLmxhbmVcbiAgICAgICAgICAgICAgPyAod29ya0luUHJvZ3Jlc3NSb290UmVuZGVyTGFuZXMgJiB1cGRhdGVMYW5lKSA9PT0gdXBkYXRlTGFuZVxuICAgICAgICAgICAgICA6IChyZW5kZXJMYW5lcyAmIHVwZGF0ZUxhbmUpID09PSB1cGRhdGVMYW5lXG4gICAgICAgICAgKSB7XG4gICAgICAgICAgICB2YXIgcmV2ZXJ0TGFuZSA9IHVwZGF0ZS5yZXZlcnRMYW5lO1xuICAgICAgICAgICAgaWYgKDAgPT09IHJldmVydExhbmUpXG4gICAgICAgICAgICAgIG51bGwgIT09IG5ld0Jhc2VRdWV1ZUxhc3QgJiZcbiAgICAgICAgICAgICAgICAobmV3QmFzZVF1ZXVlTGFzdCA9IG5ld0Jhc2VRdWV1ZUxhc3QubmV4dCA9XG4gICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIGxhbmU6IDAsXG4gICAgICAgICAgICAgICAgICAgIHJldmVydExhbmU6IDAsXG4gICAgICAgICAgICAgICAgICAgIGFjdGlvbjogdXBkYXRlLmFjdGlvbixcbiAgICAgICAgICAgICAgICAgICAgaGFzRWFnZXJTdGF0ZTogdXBkYXRlLmhhc0VhZ2VyU3RhdGUsXG4gICAgICAgICAgICAgICAgICAgIGVhZ2VyU3RhdGU6IHVwZGF0ZS5lYWdlclN0YXRlLFxuICAgICAgICAgICAgICAgICAgICBuZXh0OiBudWxsXG4gICAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgICB1cGRhdGVMYW5lID09PSBjdXJyZW50RW50YW5nbGVkTGFuZSAmJlxuICAgICAgICAgICAgICAgICAgKGRpZFJlYWRGcm9tRW50YW5nbGVkQXN5bmNBY3Rpb24gPSAhMCk7XG4gICAgICAgICAgICBlbHNlIGlmICgocmVuZGVyTGFuZXMgJiByZXZlcnRMYW5lKSA9PT0gcmV2ZXJ0TGFuZSkge1xuICAgICAgICAgICAgICB1cGRhdGUgPSB1cGRhdGUubmV4dDtcbiAgICAgICAgICAgICAgcmV2ZXJ0TGFuZSA9PT0gY3VycmVudEVudGFuZ2xlZExhbmUgJiZcbiAgICAgICAgICAgICAgICAoZGlkUmVhZEZyb21FbnRhbmdsZWRBc3luY0FjdGlvbiA9ICEwKTtcbiAgICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgICAgICB9IGVsc2VcbiAgICAgICAgICAgICAgKHVwZGF0ZUxhbmUgPSB7XG4gICAgICAgICAgICAgICAgbGFuZTogMCxcbiAgICAgICAgICAgICAgICByZXZlcnRMYW5lOiB1cGRhdGUucmV2ZXJ0TGFuZSxcbiAgICAgICAgICAgICAgICBhY3Rpb246IHVwZGF0ZS5hY3Rpb24sXG4gICAgICAgICAgICAgICAgaGFzRWFnZXJTdGF0ZTogdXBkYXRlLmhhc0VhZ2VyU3RhdGUsXG4gICAgICAgICAgICAgICAgZWFnZXJTdGF0ZTogdXBkYXRlLmVhZ2VyU3RhdGUsXG4gICAgICAgICAgICAgICAgbmV4dDogbnVsbFxuICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgICBudWxsID09PSBuZXdCYXNlUXVldWVMYXN0XG4gICAgICAgICAgICAgICAgICA/ICgobmV3QmFzZVF1ZXVlRmlyc3QgPSBuZXdCYXNlUXVldWVMYXN0ID0gdXBkYXRlTGFuZSksXG4gICAgICAgICAgICAgICAgICAgIChiYXNlRmlyc3QgPSBwZW5kaW5nUXVldWUpKVxuICAgICAgICAgICAgICAgICAgOiAobmV3QmFzZVF1ZXVlTGFzdCA9IG5ld0Jhc2VRdWV1ZUxhc3QubmV4dCA9IHVwZGF0ZUxhbmUpLFxuICAgICAgICAgICAgICAgIChjdXJyZW50bHlSZW5kZXJpbmdGaWJlci5sYW5lcyB8PSByZXZlcnRMYW5lKSxcbiAgICAgICAgICAgICAgICAod29ya0luUHJvZ3Jlc3NSb290U2tpcHBlZExhbmVzIHw9IHJldmVydExhbmUpO1xuICAgICAgICAgICAgdXBkYXRlTGFuZSA9IHVwZGF0ZS5hY3Rpb247XG4gICAgICAgICAgICBzaG91bGREb3VibGVJbnZva2VVc2VyRm5zSW5Ib29rc0RFViAmJlxuICAgICAgICAgICAgICByZWR1Y2VyKHBlbmRpbmdRdWV1ZSwgdXBkYXRlTGFuZSk7XG4gICAgICAgICAgICBwZW5kaW5nUXVldWUgPSB1cGRhdGUuaGFzRWFnZXJTdGF0ZVxuICAgICAgICAgICAgICA/IHVwZGF0ZS5lYWdlclN0YXRlXG4gICAgICAgICAgICAgIDogcmVkdWNlcihwZW5kaW5nUXVldWUsIHVwZGF0ZUxhbmUpO1xuICAgICAgICAgIH0gZWxzZVxuICAgICAgICAgICAgKHJldmVydExhbmUgPSB7XG4gICAgICAgICAgICAgIGxhbmU6IHVwZGF0ZUxhbmUsXG4gICAgICAgICAgICAgIHJldmVydExhbmU6IHVwZGF0ZS5yZXZlcnRMYW5lLFxuICAgICAgICAgICAgICBhY3Rpb246IHVwZGF0ZS5hY3Rpb24sXG4gICAgICAgICAgICAgIGhhc0VhZ2VyU3RhdGU6IHVwZGF0ZS5oYXNFYWdlclN0YXRlLFxuICAgICAgICAgICAgICBlYWdlclN0YXRlOiB1cGRhdGUuZWFnZXJTdGF0ZSxcbiAgICAgICAgICAgICAgbmV4dDogbnVsbFxuICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgIG51bGwgPT09IG5ld0Jhc2VRdWV1ZUxhc3RcbiAgICAgICAgICAgICAgICA/ICgobmV3QmFzZVF1ZXVlRmlyc3QgPSBuZXdCYXNlUXVldWVMYXN0ID0gcmV2ZXJ0TGFuZSksXG4gICAgICAgICAgICAgICAgICAoYmFzZUZpcnN0ID0gcGVuZGluZ1F1ZXVlKSlcbiAgICAgICAgICAgICAgICA6IChuZXdCYXNlUXVldWVMYXN0ID0gbmV3QmFzZVF1ZXVlTGFzdC5uZXh0ID0gcmV2ZXJ0TGFuZSksXG4gICAgICAgICAgICAgIChjdXJyZW50bHlSZW5kZXJpbmdGaWJlci5sYW5lcyB8PSB1cGRhdGVMYW5lKSxcbiAgICAgICAgICAgICAgKHdvcmtJblByb2dyZXNzUm9vdFNraXBwZWRMYW5lcyB8PSB1cGRhdGVMYW5lKTtcbiAgICAgICAgICB1cGRhdGUgPSB1cGRhdGUubmV4dDtcbiAgICAgICAgfSB3aGlsZSAobnVsbCAhPT0gdXBkYXRlICYmIHVwZGF0ZSAhPT0gY3VycmVudCk7XG4gICAgICAgIG51bGwgPT09IG5ld0Jhc2VRdWV1ZUxhc3RcbiAgICAgICAgICA/IChiYXNlRmlyc3QgPSBwZW5kaW5nUXVldWUpXG4gICAgICAgICAgOiAobmV3QmFzZVF1ZXVlTGFzdC5uZXh0ID0gbmV3QmFzZVF1ZXVlRmlyc3QpO1xuICAgICAgICBpZiAoXG4gICAgICAgICAgIW9iamVjdElzKHBlbmRpbmdRdWV1ZSwgaG9vay5tZW1vaXplZFN0YXRlKSAmJlxuICAgICAgICAgICgoZGlkUmVjZWl2ZVVwZGF0ZSA9ICEwKSxcbiAgICAgICAgICBkaWRSZWFkRnJvbUVudGFuZ2xlZEFzeW5jQWN0aW9uICYmXG4gICAgICAgICAgICAoKHJlZHVjZXIgPSBjdXJyZW50RW50YW5nbGVkQWN0aW9uVGhlbmFibGUpLCBudWxsICE9PSByZWR1Y2VyKSlcbiAgICAgICAgKVxuICAgICAgICAgIHRocm93IHJlZHVjZXI7XG4gICAgICAgIGhvb2subWVtb2l6ZWRTdGF0ZSA9IHBlbmRpbmdRdWV1ZTtcbiAgICAgICAgaG9vay5iYXNlU3RhdGUgPSBiYXNlRmlyc3Q7XG4gICAgICAgIGhvb2suYmFzZVF1ZXVlID0gbmV3QmFzZVF1ZXVlTGFzdDtcbiAgICAgICAgcXVldWUubGFzdFJlbmRlcmVkU3RhdGUgPSBwZW5kaW5nUXVldWU7XG4gICAgICB9XG4gICAgICBudWxsID09PSBiYXNlUXVldWUgJiYgKHF1ZXVlLmxhbmVzID0gMCk7XG4gICAgICByZXR1cm4gW2hvb2subWVtb2l6ZWRTdGF0ZSwgcXVldWUuZGlzcGF0Y2hdO1xuICAgIH1cbiAgICBmdW5jdGlvbiByZXJlbmRlclJlZHVjZXIocmVkdWNlcikge1xuICAgICAgdmFyIGhvb2sgPSB1cGRhdGVXb3JrSW5Qcm9ncmVzc0hvb2soKSxcbiAgICAgICAgcXVldWUgPSBob29rLnF1ZXVlO1xuICAgICAgaWYgKG51bGwgPT09IHF1ZXVlKVxuICAgICAgICB0aHJvdyBFcnJvcihcbiAgICAgICAgICBcIlNob3VsZCBoYXZlIGEgcXVldWUuIFlvdSBhcmUgbGlrZWx5IGNhbGxpbmcgSG9va3MgY29uZGl0aW9uYWxseSwgd2hpY2ggaXMgbm90IGFsbG93ZWQuIChodHRwczovL3JlYWN0LmRldi9saW5rL2ludmFsaWQtaG9vay1jYWxsKVwiXG4gICAgICAgICk7XG4gICAgICBxdWV1ZS5sYXN0UmVuZGVyZWRSZWR1Y2VyID0gcmVkdWNlcjtcbiAgICAgIHZhciBkaXNwYXRjaCA9IHF1ZXVlLmRpc3BhdGNoLFxuICAgICAgICBsYXN0UmVuZGVyUGhhc2VVcGRhdGUgPSBxdWV1ZS5wZW5kaW5nLFxuICAgICAgICBuZXdTdGF0ZSA9IGhvb2subWVtb2l6ZWRTdGF0ZTtcbiAgICAgIGlmIChudWxsICE9PSBsYXN0UmVuZGVyUGhhc2VVcGRhdGUpIHtcbiAgICAgICAgcXVldWUucGVuZGluZyA9IG51bGw7XG4gICAgICAgIHZhciB1cGRhdGUgPSAobGFzdFJlbmRlclBoYXNlVXBkYXRlID0gbGFzdFJlbmRlclBoYXNlVXBkYXRlLm5leHQpO1xuICAgICAgICBkb1xuICAgICAgICAgIChuZXdTdGF0ZSA9IHJlZHVjZXIobmV3U3RhdGUsIHVwZGF0ZS5hY3Rpb24pKSwgKHVwZGF0ZSA9IHVwZGF0ZS5uZXh0KTtcbiAgICAgICAgd2hpbGUgKHVwZGF0ZSAhPT0gbGFzdFJlbmRlclBoYXNlVXBkYXRlKTtcbiAgICAgICAgb2JqZWN0SXMobmV3U3RhdGUsIGhvb2subWVtb2l6ZWRTdGF0ZSkgfHwgKGRpZFJlY2VpdmVVcGRhdGUgPSAhMCk7XG4gICAgICAgIGhvb2subWVtb2l6ZWRTdGF0ZSA9IG5ld1N0YXRlO1xuICAgICAgICBudWxsID09PSBob29rLmJhc2VRdWV1ZSAmJiAoaG9vay5iYXNlU3RhdGUgPSBuZXdTdGF0ZSk7XG4gICAgICAgIHF1ZXVlLmxhc3RSZW5kZXJlZFN0YXRlID0gbmV3U3RhdGU7XG4gICAgICB9XG4gICAgICByZXR1cm4gW25ld1N0YXRlLCBkaXNwYXRjaF07XG4gICAgfVxuICAgIGZ1bmN0aW9uIG1vdW50U3luY0V4dGVybmFsU3RvcmUoc3Vic2NyaWJlLCBnZXRTbmFwc2hvdCwgZ2V0U2VydmVyU25hcHNob3QpIHtcbiAgICAgIHZhciBmaWJlciA9IGN1cnJlbnRseVJlbmRlcmluZ0ZpYmVyLFxuICAgICAgICBob29rID0gbW91bnRXb3JrSW5Qcm9ncmVzc0hvb2soKTtcbiAgICAgIGlmIChpc0h5ZHJhdGluZykge1xuICAgICAgICBpZiAodm9pZCAwID09PSBnZXRTZXJ2ZXJTbmFwc2hvdClcbiAgICAgICAgICB0aHJvdyBFcnJvcihcbiAgICAgICAgICAgIFwiTWlzc2luZyBnZXRTZXJ2ZXJTbmFwc2hvdCwgd2hpY2ggaXMgcmVxdWlyZWQgZm9yIHNlcnZlci1yZW5kZXJlZCBjb250ZW50LiBXaWxsIHJldmVydCB0byBjbGllbnQgcmVuZGVyaW5nLlwiXG4gICAgICAgICAgKTtcbiAgICAgICAgdmFyIG5leHRTbmFwc2hvdCA9IGdldFNlcnZlclNuYXBzaG90KCk7XG4gICAgICAgIGRpZFdhcm5VbmNhY2hlZEdldFNuYXBzaG90IHx8XG4gICAgICAgICAgbmV4dFNuYXBzaG90ID09PSBnZXRTZXJ2ZXJTbmFwc2hvdCgpIHx8XG4gICAgICAgICAgKGNvbnNvbGUuZXJyb3IoXG4gICAgICAgICAgICBcIlRoZSByZXN1bHQgb2YgZ2V0U2VydmVyU25hcHNob3Qgc2hvdWxkIGJlIGNhY2hlZCB0byBhdm9pZCBhbiBpbmZpbml0ZSBsb29wXCJcbiAgICAgICAgICApLFxuICAgICAgICAgIChkaWRXYXJuVW5jYWNoZWRHZXRTbmFwc2hvdCA9ICEwKSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBuZXh0U25hcHNob3QgPSBnZXRTbmFwc2hvdCgpO1xuICAgICAgICBkaWRXYXJuVW5jYWNoZWRHZXRTbmFwc2hvdCB8fFxuICAgICAgICAgICgoZ2V0U2VydmVyU25hcHNob3QgPSBnZXRTbmFwc2hvdCgpKSxcbiAgICAgICAgICBvYmplY3RJcyhuZXh0U25hcHNob3QsIGdldFNlcnZlclNuYXBzaG90KSB8fFxuICAgICAgICAgICAgKGNvbnNvbGUuZXJyb3IoXG4gICAgICAgICAgICAgIFwiVGhlIHJlc3VsdCBvZiBnZXRTbmFwc2hvdCBzaG91bGQgYmUgY2FjaGVkIHRvIGF2b2lkIGFuIGluZmluaXRlIGxvb3BcIlxuICAgICAgICAgICAgKSxcbiAgICAgICAgICAgIChkaWRXYXJuVW5jYWNoZWRHZXRTbmFwc2hvdCA9ICEwKSkpO1xuICAgICAgICBpZiAobnVsbCA9PT0gd29ya0luUHJvZ3Jlc3NSb290KVxuICAgICAgICAgIHRocm93IEVycm9yKFxuICAgICAgICAgICAgXCJFeHBlY3RlZCBhIHdvcmstaW4tcHJvZ3Jlc3Mgcm9vdC4gVGhpcyBpcyBhIGJ1ZyBpbiBSZWFjdC4gUGxlYXNlIGZpbGUgYW4gaXNzdWUuXCJcbiAgICAgICAgICApO1xuICAgICAgICAwICE9PSAod29ya0luUHJvZ3Jlc3NSb290UmVuZGVyTGFuZXMgJiAxMjQpIHx8XG4gICAgICAgICAgcHVzaFN0b3JlQ29uc2lzdGVuY3lDaGVjayhmaWJlciwgZ2V0U25hcHNob3QsIG5leHRTbmFwc2hvdCk7XG4gICAgICB9XG4gICAgICBob29rLm1lbW9pemVkU3RhdGUgPSBuZXh0U25hcHNob3Q7XG4gICAgICBnZXRTZXJ2ZXJTbmFwc2hvdCA9IHsgdmFsdWU6IG5leHRTbmFwc2hvdCwgZ2V0U25hcHNob3Q6IGdldFNuYXBzaG90IH07XG4gICAgICBob29rLnF1ZXVlID0gZ2V0U2VydmVyU25hcHNob3Q7XG4gICAgICBtb3VudEVmZmVjdChcbiAgICAgICAgc3Vic2NyaWJlVG9TdG9yZS5iaW5kKG51bGwsIGZpYmVyLCBnZXRTZXJ2ZXJTbmFwc2hvdCwgc3Vic2NyaWJlKSxcbiAgICAgICAgW3N1YnNjcmliZV1cbiAgICAgICk7XG4gICAgICBmaWJlci5mbGFncyB8PSAyMDQ4O1xuICAgICAgcHVzaFNpbXBsZUVmZmVjdChcbiAgICAgICAgSGFzRWZmZWN0IHwgUGFzc2l2ZSxcbiAgICAgICAgY3JlYXRlRWZmZWN0SW5zdGFuY2UoKSxcbiAgICAgICAgdXBkYXRlU3RvcmVJbnN0YW5jZS5iaW5kKFxuICAgICAgICAgIG51bGwsXG4gICAgICAgICAgZmliZXIsXG4gICAgICAgICAgZ2V0U2VydmVyU25hcHNob3QsXG4gICAgICAgICAgbmV4dFNuYXBzaG90LFxuICAgICAgICAgIGdldFNuYXBzaG90XG4gICAgICAgICksXG4gICAgICAgIG51bGxcbiAgICAgICk7XG4gICAgICByZXR1cm4gbmV4dFNuYXBzaG90O1xuICAgIH1cbiAgICBmdW5jdGlvbiB1cGRhdGVTeW5jRXh0ZXJuYWxTdG9yZShcbiAgICAgIHN1YnNjcmliZSxcbiAgICAgIGdldFNuYXBzaG90LFxuICAgICAgZ2V0U2VydmVyU25hcHNob3RcbiAgICApIHtcbiAgICAgIHZhciBmaWJlciA9IGN1cnJlbnRseVJlbmRlcmluZ0ZpYmVyLFxuICAgICAgICBob29rID0gdXBkYXRlV29ya0luUHJvZ3Jlc3NIb29rKCksXG4gICAgICAgIGlzSHlkcmF0aW5nJGpzY29tcCQwID0gaXNIeWRyYXRpbmc7XG4gICAgICBpZiAoaXNIeWRyYXRpbmckanNjb21wJDApIHtcbiAgICAgICAgaWYgKHZvaWQgMCA9PT0gZ2V0U2VydmVyU25hcHNob3QpXG4gICAgICAgICAgdGhyb3cgRXJyb3IoXG4gICAgICAgICAgICBcIk1pc3NpbmcgZ2V0U2VydmVyU25hcHNob3QsIHdoaWNoIGlzIHJlcXVpcmVkIGZvciBzZXJ2ZXItcmVuZGVyZWQgY29udGVudC4gV2lsbCByZXZlcnQgdG8gY2xpZW50IHJlbmRlcmluZy5cIlxuICAgICAgICAgICk7XG4gICAgICAgIGdldFNlcnZlclNuYXBzaG90ID0gZ2V0U2VydmVyU25hcHNob3QoKTtcbiAgICAgIH0gZWxzZSBpZiAoXG4gICAgICAgICgoZ2V0U2VydmVyU25hcHNob3QgPSBnZXRTbmFwc2hvdCgpKSwgIWRpZFdhcm5VbmNhY2hlZEdldFNuYXBzaG90KVxuICAgICAgKSB7XG4gICAgICAgIHZhciBjYWNoZWRTbmFwc2hvdCA9IGdldFNuYXBzaG90KCk7XG4gICAgICAgIG9iamVjdElzKGdldFNlcnZlclNuYXBzaG90LCBjYWNoZWRTbmFwc2hvdCkgfHxcbiAgICAgICAgICAoY29uc29sZS5lcnJvcihcbiAgICAgICAgICAgIFwiVGhlIHJlc3VsdCBvZiBnZXRTbmFwc2hvdCBzaG91bGQgYmUgY2FjaGVkIHRvIGF2b2lkIGFuIGluZmluaXRlIGxvb3BcIlxuICAgICAgICAgICksXG4gICAgICAgICAgKGRpZFdhcm5VbmNhY2hlZEdldFNuYXBzaG90ID0gITApKTtcbiAgICAgIH1cbiAgICAgIGlmIChcbiAgICAgICAgKGNhY2hlZFNuYXBzaG90ID0gIW9iamVjdElzKFxuICAgICAgICAgIChjdXJyZW50SG9vayB8fCBob29rKS5tZW1vaXplZFN0YXRlLFxuICAgICAgICAgIGdldFNlcnZlclNuYXBzaG90XG4gICAgICAgICkpXG4gICAgICApXG4gICAgICAgIChob29rLm1lbW9pemVkU3RhdGUgPSBnZXRTZXJ2ZXJTbmFwc2hvdCksIChkaWRSZWNlaXZlVXBkYXRlID0gITApO1xuICAgICAgaG9vayA9IGhvb2sucXVldWU7XG4gICAgICB2YXIgY3JlYXRlID0gc3Vic2NyaWJlVG9TdG9yZS5iaW5kKG51bGwsIGZpYmVyLCBob29rLCBzdWJzY3JpYmUpO1xuICAgICAgdXBkYXRlRWZmZWN0SW1wbCgyMDQ4LCBQYXNzaXZlLCBjcmVhdGUsIFtzdWJzY3JpYmVdKTtcbiAgICAgIGlmIChcbiAgICAgICAgaG9vay5nZXRTbmFwc2hvdCAhPT0gZ2V0U25hcHNob3QgfHxcbiAgICAgICAgY2FjaGVkU25hcHNob3QgfHxcbiAgICAgICAgKG51bGwgIT09IHdvcmtJblByb2dyZXNzSG9vayAmJlxuICAgICAgICAgIHdvcmtJblByb2dyZXNzSG9vay5tZW1vaXplZFN0YXRlLnRhZyAmIEhhc0VmZmVjdClcbiAgICAgICkge1xuICAgICAgICBmaWJlci5mbGFncyB8PSAyMDQ4O1xuICAgICAgICBwdXNoU2ltcGxlRWZmZWN0KFxuICAgICAgICAgIEhhc0VmZmVjdCB8IFBhc3NpdmUsXG4gICAgICAgICAgY3JlYXRlRWZmZWN0SW5zdGFuY2UoKSxcbiAgICAgICAgICB1cGRhdGVTdG9yZUluc3RhbmNlLmJpbmQoXG4gICAgICAgICAgICBudWxsLFxuICAgICAgICAgICAgZmliZXIsXG4gICAgICAgICAgICBob29rLFxuICAgICAgICAgICAgZ2V0U2VydmVyU25hcHNob3QsXG4gICAgICAgICAgICBnZXRTbmFwc2hvdFxuICAgICAgICAgICksXG4gICAgICAgICAgbnVsbFxuICAgICAgICApO1xuICAgICAgICBpZiAobnVsbCA9PT0gd29ya0luUHJvZ3Jlc3NSb290KVxuICAgICAgICAgIHRocm93IEVycm9yKFxuICAgICAgICAgICAgXCJFeHBlY3RlZCBhIHdvcmstaW4tcHJvZ3Jlc3Mgcm9vdC4gVGhpcyBpcyBhIGJ1ZyBpbiBSZWFjdC4gUGxlYXNlIGZpbGUgYW4gaXNzdWUuXCJcbiAgICAgICAgICApO1xuICAgICAgICBpc0h5ZHJhdGluZyRqc2NvbXAkMCB8fFxuICAgICAgICAgIDAgIT09IChyZW5kZXJMYW5lcyAmIDEyNCkgfHxcbiAgICAgICAgICBwdXNoU3RvcmVDb25zaXN0ZW5jeUNoZWNrKGZpYmVyLCBnZXRTbmFwc2hvdCwgZ2V0U2VydmVyU25hcHNob3QpO1xuICAgICAgfVxuICAgICAgcmV0dXJuIGdldFNlcnZlclNuYXBzaG90O1xuICAgIH1cbiAgICBmdW5jdGlvbiBwdXNoU3RvcmVDb25zaXN0ZW5jeUNoZWNrKGZpYmVyLCBnZXRTbmFwc2hvdCwgcmVuZGVyZWRTbmFwc2hvdCkge1xuICAgICAgZmliZXIuZmxhZ3MgfD0gMTYzODQ7XG4gICAgICBmaWJlciA9IHsgZ2V0U25hcHNob3Q6IGdldFNuYXBzaG90LCB2YWx1ZTogcmVuZGVyZWRTbmFwc2hvdCB9O1xuICAgICAgZ2V0U25hcHNob3QgPSBjdXJyZW50bHlSZW5kZXJpbmdGaWJlci51cGRhdGVRdWV1ZTtcbiAgICAgIG51bGwgPT09IGdldFNuYXBzaG90XG4gICAgICAgID8gKChnZXRTbmFwc2hvdCA9IGNyZWF0ZUZ1bmN0aW9uQ29tcG9uZW50VXBkYXRlUXVldWUoKSksXG4gICAgICAgICAgKGN1cnJlbnRseVJlbmRlcmluZ0ZpYmVyLnVwZGF0ZVF1ZXVlID0gZ2V0U25hcHNob3QpLFxuICAgICAgICAgIChnZXRTbmFwc2hvdC5zdG9yZXMgPSBbZmliZXJdKSlcbiAgICAgICAgOiAoKHJlbmRlcmVkU25hcHNob3QgPSBnZXRTbmFwc2hvdC5zdG9yZXMpLFxuICAgICAgICAgIG51bGwgPT09IHJlbmRlcmVkU25hcHNob3RcbiAgICAgICAgICAgID8gKGdldFNuYXBzaG90LnN0b3JlcyA9IFtmaWJlcl0pXG4gICAgICAgICAgICA6IHJlbmRlcmVkU25hcHNob3QucHVzaChmaWJlcikpO1xuICAgIH1cbiAgICBmdW5jdGlvbiB1cGRhdGVTdG9yZUluc3RhbmNlKGZpYmVyLCBpbnN0LCBuZXh0U25hcHNob3QsIGdldFNuYXBzaG90KSB7XG4gICAgICBpbnN0LnZhbHVlID0gbmV4dFNuYXBzaG90O1xuICAgICAgaW5zdC5nZXRTbmFwc2hvdCA9IGdldFNuYXBzaG90O1xuICAgICAgY2hlY2tJZlNuYXBzaG90Q2hhbmdlZChpbnN0KSAmJiBmb3JjZVN0b3JlUmVyZW5kZXIoZmliZXIpO1xuICAgIH1cbiAgICBmdW5jdGlvbiBzdWJzY3JpYmVUb1N0b3JlKGZpYmVyLCBpbnN0LCBzdWJzY3JpYmUpIHtcbiAgICAgIHJldHVybiBzdWJzY3JpYmUoZnVuY3Rpb24gKCkge1xuICAgICAgICBjaGVja0lmU25hcHNob3RDaGFuZ2VkKGluc3QpICYmIGZvcmNlU3RvcmVSZXJlbmRlcihmaWJlcik7XG4gICAgICB9KTtcbiAgICB9XG4gICAgZnVuY3Rpb24gY2hlY2tJZlNuYXBzaG90Q2hhbmdlZChpbnN0KSB7XG4gICAgICB2YXIgbGF0ZXN0R2V0U25hcHNob3QgPSBpbnN0LmdldFNuYXBzaG90O1xuICAgICAgaW5zdCA9IGluc3QudmFsdWU7XG4gICAgICB0cnkge1xuICAgICAgICB2YXIgbmV4dFZhbHVlID0gbGF0ZXN0R2V0U25hcHNob3QoKTtcbiAgICAgICAgcmV0dXJuICFvYmplY3RJcyhpbnN0LCBuZXh0VmFsdWUpO1xuICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgcmV0dXJuICEwO1xuICAgICAgfVxuICAgIH1cbiAgICBmdW5jdGlvbiBmb3JjZVN0b3JlUmVyZW5kZXIoZmliZXIpIHtcbiAgICAgIHZhciByb290ID0gZW5xdWV1ZUNvbmN1cnJlbnRSZW5kZXJGb3JMYW5lKGZpYmVyLCAyKTtcbiAgICAgIG51bGwgIT09IHJvb3QgJiYgc2NoZWR1bGVVcGRhdGVPbkZpYmVyKHJvb3QsIGZpYmVyLCAyKTtcbiAgICB9XG4gICAgZnVuY3Rpb24gbW91bnRTdGF0ZUltcGwoaW5pdGlhbFN0YXRlKSB7XG4gICAgICB2YXIgaG9vayA9IG1vdW50V29ya0luUHJvZ3Jlc3NIb29rKCk7XG4gICAgICBpZiAoXCJmdW5jdGlvblwiID09PSB0eXBlb2YgaW5pdGlhbFN0YXRlKSB7XG4gICAgICAgIHZhciBpbml0aWFsU3RhdGVJbml0aWFsaXplciA9IGluaXRpYWxTdGF0ZTtcbiAgICAgICAgaW5pdGlhbFN0YXRlID0gaW5pdGlhbFN0YXRlSW5pdGlhbGl6ZXIoKTtcbiAgICAgICAgaWYgKHNob3VsZERvdWJsZUludm9rZVVzZXJGbnNJbkhvb2tzREVWKSB7XG4gICAgICAgICAgc2V0SXNTdHJpY3RNb2RlRm9yRGV2dG9vbHMoITApO1xuICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICBpbml0aWFsU3RhdGVJbml0aWFsaXplcigpO1xuICAgICAgICAgIH0gZmluYWxseSB7XG4gICAgICAgICAgICBzZXRJc1N0cmljdE1vZGVGb3JEZXZ0b29scyghMSk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgICBob29rLm1lbW9pemVkU3RhdGUgPSBob29rLmJhc2VTdGF0ZSA9IGluaXRpYWxTdGF0ZTtcbiAgICAgIGhvb2sucXVldWUgPSB7XG4gICAgICAgIHBlbmRpbmc6IG51bGwsXG4gICAgICAgIGxhbmVzOiAwLFxuICAgICAgICBkaXNwYXRjaDogbnVsbCxcbiAgICAgICAgbGFzdFJlbmRlcmVkUmVkdWNlcjogYmFzaWNTdGF0ZVJlZHVjZXIsXG4gICAgICAgIGxhc3RSZW5kZXJlZFN0YXRlOiBpbml0aWFsU3RhdGVcbiAgICAgIH07XG4gICAgICByZXR1cm4gaG9vaztcbiAgICB9XG4gICAgZnVuY3Rpb24gbW91bnRTdGF0ZShpbml0aWFsU3RhdGUpIHtcbiAgICAgIGluaXRpYWxTdGF0ZSA9IG1vdW50U3RhdGVJbXBsKGluaXRpYWxTdGF0ZSk7XG4gICAgICB2YXIgcXVldWUgPSBpbml0aWFsU3RhdGUucXVldWUsXG4gICAgICAgIGRpc3BhdGNoID0gZGlzcGF0Y2hTZXRTdGF0ZS5iaW5kKG51bGwsIGN1cnJlbnRseVJlbmRlcmluZ0ZpYmVyLCBxdWV1ZSk7XG4gICAgICBxdWV1ZS5kaXNwYXRjaCA9IGRpc3BhdGNoO1xuICAgICAgcmV0dXJuIFtpbml0aWFsU3RhdGUubWVtb2l6ZWRTdGF0ZSwgZGlzcGF0Y2hdO1xuICAgIH1cbiAgICBmdW5jdGlvbiBtb3VudE9wdGltaXN0aWMocGFzc3Rocm91Z2gpIHtcbiAgICAgIHZhciBob29rID0gbW91bnRXb3JrSW5Qcm9ncmVzc0hvb2soKTtcbiAgICAgIGhvb2subWVtb2l6ZWRTdGF0ZSA9IGhvb2suYmFzZVN0YXRlID0gcGFzc3Rocm91Z2g7XG4gICAgICB2YXIgcXVldWUgPSB7XG4gICAgICAgIHBlbmRpbmc6IG51bGwsXG4gICAgICAgIGxhbmVzOiAwLFxuICAgICAgICBkaXNwYXRjaDogbnVsbCxcbiAgICAgICAgbGFzdFJlbmRlcmVkUmVkdWNlcjogbnVsbCxcbiAgICAgICAgbGFzdFJlbmRlcmVkU3RhdGU6IG51bGxcbiAgICAgIH07XG4gICAgICBob29rLnF1ZXVlID0gcXVldWU7XG4gICAgICBob29rID0gZGlzcGF0Y2hPcHRpbWlzdGljU2V0U3RhdGUuYmluZChcbiAgICAgICAgbnVsbCxcbiAgICAgICAgY3VycmVudGx5UmVuZGVyaW5nRmliZXIsXG4gICAgICAgICEwLFxuICAgICAgICBxdWV1ZVxuICAgICAgKTtcbiAgICAgIHF1ZXVlLmRpc3BhdGNoID0gaG9vaztcbiAgICAgIHJldHVybiBbcGFzc3Rocm91Z2gsIGhvb2tdO1xuICAgIH1cbiAgICBmdW5jdGlvbiB1cGRhdGVPcHRpbWlzdGljKHBhc3N0aHJvdWdoLCByZWR1Y2VyKSB7XG4gICAgICB2YXIgaG9vayA9IHVwZGF0ZVdvcmtJblByb2dyZXNzSG9vaygpO1xuICAgICAgcmV0dXJuIHVwZGF0ZU9wdGltaXN0aWNJbXBsKGhvb2ssIGN1cnJlbnRIb29rLCBwYXNzdGhyb3VnaCwgcmVkdWNlcik7XG4gICAgfVxuICAgIGZ1bmN0aW9uIHVwZGF0ZU9wdGltaXN0aWNJbXBsKGhvb2ssIGN1cnJlbnQsIHBhc3N0aHJvdWdoLCByZWR1Y2VyKSB7XG4gICAgICBob29rLmJhc2VTdGF0ZSA9IHBhc3N0aHJvdWdoO1xuICAgICAgcmV0dXJuIHVwZGF0ZVJlZHVjZXJJbXBsKFxuICAgICAgICBob29rLFxuICAgICAgICBjdXJyZW50SG9vayxcbiAgICAgICAgXCJmdW5jdGlvblwiID09PSB0eXBlb2YgcmVkdWNlciA/IHJlZHVjZXIgOiBiYXNpY1N0YXRlUmVkdWNlclxuICAgICAgKTtcbiAgICB9XG4gICAgZnVuY3Rpb24gcmVyZW5kZXJPcHRpbWlzdGljKHBhc3N0aHJvdWdoLCByZWR1Y2VyKSB7XG4gICAgICB2YXIgaG9vayA9IHVwZGF0ZVdvcmtJblByb2dyZXNzSG9vaygpO1xuICAgICAgaWYgKG51bGwgIT09IGN1cnJlbnRIb29rKVxuICAgICAgICByZXR1cm4gdXBkYXRlT3B0aW1pc3RpY0ltcGwoaG9vaywgY3VycmVudEhvb2ssIHBhc3N0aHJvdWdoLCByZWR1Y2VyKTtcbiAgICAgIGhvb2suYmFzZVN0YXRlID0gcGFzc3Rocm91Z2g7XG4gICAgICByZXR1cm4gW3Bhc3N0aHJvdWdoLCBob29rLnF1ZXVlLmRpc3BhdGNoXTtcbiAgICB9XG4gICAgZnVuY3Rpb24gZGlzcGF0Y2hBY3Rpb25TdGF0ZShcbiAgICAgIGZpYmVyLFxuICAgICAgYWN0aW9uUXVldWUsXG4gICAgICBzZXRQZW5kaW5nU3RhdGUsXG4gICAgICBzZXRTdGF0ZSxcbiAgICAgIHBheWxvYWRcbiAgICApIHtcbiAgICAgIGlmIChpc1JlbmRlclBoYXNlVXBkYXRlKGZpYmVyKSlcbiAgICAgICAgdGhyb3cgRXJyb3IoXCJDYW5ub3QgdXBkYXRlIGZvcm0gc3RhdGUgd2hpbGUgcmVuZGVyaW5nLlwiKTtcbiAgICAgIGZpYmVyID0gYWN0aW9uUXVldWUuYWN0aW9uO1xuICAgICAgaWYgKG51bGwgIT09IGZpYmVyKSB7XG4gICAgICAgIHZhciBhY3Rpb25Ob2RlID0ge1xuICAgICAgICAgIHBheWxvYWQ6IHBheWxvYWQsXG4gICAgICAgICAgYWN0aW9uOiBmaWJlcixcbiAgICAgICAgICBuZXh0OiBudWxsLFxuICAgICAgICAgIGlzVHJhbnNpdGlvbjogITAsXG4gICAgICAgICAgc3RhdHVzOiBcInBlbmRpbmdcIixcbiAgICAgICAgICB2YWx1ZTogbnVsbCxcbiAgICAgICAgICByZWFzb246IG51bGwsXG4gICAgICAgICAgbGlzdGVuZXJzOiBbXSxcbiAgICAgICAgICB0aGVuOiBmdW5jdGlvbiAobGlzdGVuZXIpIHtcbiAgICAgICAgICAgIGFjdGlvbk5vZGUubGlzdGVuZXJzLnB1c2gobGlzdGVuZXIpO1xuICAgICAgICAgIH1cbiAgICAgICAgfTtcbiAgICAgICAgbnVsbCAhPT0gUmVhY3RTaGFyZWRJbnRlcm5hbHMuVFxuICAgICAgICAgID8gc2V0UGVuZGluZ1N0YXRlKCEwKVxuICAgICAgICAgIDogKGFjdGlvbk5vZGUuaXNUcmFuc2l0aW9uID0gITEpO1xuICAgICAgICBzZXRTdGF0ZShhY3Rpb25Ob2RlKTtcbiAgICAgICAgc2V0UGVuZGluZ1N0YXRlID0gYWN0aW9uUXVldWUucGVuZGluZztcbiAgICAgICAgbnVsbCA9PT0gc2V0UGVuZGluZ1N0YXRlXG4gICAgICAgICAgPyAoKGFjdGlvbk5vZGUubmV4dCA9IGFjdGlvblF1ZXVlLnBlbmRpbmcgPSBhY3Rpb25Ob2RlKSxcbiAgICAgICAgICAgIHJ1bkFjdGlvblN0YXRlQWN0aW9uKGFjdGlvblF1ZXVlLCBhY3Rpb25Ob2RlKSlcbiAgICAgICAgICA6ICgoYWN0aW9uTm9kZS5uZXh0ID0gc2V0UGVuZGluZ1N0YXRlLm5leHQpLFxuICAgICAgICAgICAgKGFjdGlvblF1ZXVlLnBlbmRpbmcgPSBzZXRQZW5kaW5nU3RhdGUubmV4dCA9IGFjdGlvbk5vZGUpKTtcbiAgICAgIH1cbiAgICB9XG4gICAgZnVuY3Rpb24gcnVuQWN0aW9uU3RhdGVBY3Rpb24oYWN0aW9uUXVldWUsIG5vZGUpIHtcbiAgICAgIHZhciBhY3Rpb24gPSBub2RlLmFjdGlvbixcbiAgICAgICAgcGF5bG9hZCA9IG5vZGUucGF5bG9hZCxcbiAgICAgICAgcHJldlN0YXRlID0gYWN0aW9uUXVldWUuc3RhdGU7XG4gICAgICBpZiAobm9kZS5pc1RyYW5zaXRpb24pIHtcbiAgICAgICAgdmFyIHByZXZUcmFuc2l0aW9uID0gUmVhY3RTaGFyZWRJbnRlcm5hbHMuVCxcbiAgICAgICAgICBjdXJyZW50VHJhbnNpdGlvbiA9IHt9O1xuICAgICAgICBSZWFjdFNoYXJlZEludGVybmFscy5UID0gY3VycmVudFRyYW5zaXRpb247XG4gICAgICAgIFJlYWN0U2hhcmVkSW50ZXJuYWxzLlQuX3VwZGF0ZWRGaWJlcnMgPSBuZXcgU2V0KCk7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgdmFyIHJldHVyblZhbHVlID0gYWN0aW9uKHByZXZTdGF0ZSwgcGF5bG9hZCksXG4gICAgICAgICAgICBvblN0YXJ0VHJhbnNpdGlvbkZpbmlzaCA9IFJlYWN0U2hhcmVkSW50ZXJuYWxzLlM7XG4gICAgICAgICAgbnVsbCAhPT0gb25TdGFydFRyYW5zaXRpb25GaW5pc2ggJiZcbiAgICAgICAgICAgIG9uU3RhcnRUcmFuc2l0aW9uRmluaXNoKGN1cnJlbnRUcmFuc2l0aW9uLCByZXR1cm5WYWx1ZSk7XG4gICAgICAgICAgaGFuZGxlQWN0aW9uUmV0dXJuVmFsdWUoYWN0aW9uUXVldWUsIG5vZGUsIHJldHVyblZhbHVlKTtcbiAgICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgICBvbkFjdGlvbkVycm9yKGFjdGlvblF1ZXVlLCBub2RlLCBlcnJvcik7XG4gICAgICAgIH0gZmluYWxseSB7XG4gICAgICAgICAgKFJlYWN0U2hhcmVkSW50ZXJuYWxzLlQgPSBwcmV2VHJhbnNpdGlvbiksXG4gICAgICAgICAgICBudWxsID09PSBwcmV2VHJhbnNpdGlvbiAmJlxuICAgICAgICAgICAgICBjdXJyZW50VHJhbnNpdGlvbi5fdXBkYXRlZEZpYmVycyAmJlxuICAgICAgICAgICAgICAoKGFjdGlvblF1ZXVlID0gY3VycmVudFRyYW5zaXRpb24uX3VwZGF0ZWRGaWJlcnMuc2l6ZSksXG4gICAgICAgICAgICAgIGN1cnJlbnRUcmFuc2l0aW9uLl91cGRhdGVkRmliZXJzLmNsZWFyKCksXG4gICAgICAgICAgICAgIDEwIDwgYWN0aW9uUXVldWUgJiZcbiAgICAgICAgICAgICAgICBjb25zb2xlLndhcm4oXG4gICAgICAgICAgICAgICAgICBcIkRldGVjdGVkIGEgbGFyZ2UgbnVtYmVyIG9mIHVwZGF0ZXMgaW5zaWRlIHN0YXJ0VHJhbnNpdGlvbi4gSWYgdGhpcyBpcyBkdWUgdG8gYSBzdWJzY3JpcHRpb24gcGxlYXNlIHJlLXdyaXRlIGl0IHRvIHVzZSBSZWFjdCBwcm92aWRlZCBob29rcy4gT3RoZXJ3aXNlIGNvbmN1cnJlbnQgbW9kZSBndWFyYW50ZWVzIGFyZSBvZmYgdGhlIHRhYmxlLlwiXG4gICAgICAgICAgICAgICAgKSk7XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZVxuICAgICAgICB0cnkge1xuICAgICAgICAgIChjdXJyZW50VHJhbnNpdGlvbiA9IGFjdGlvbihwcmV2U3RhdGUsIHBheWxvYWQpKSxcbiAgICAgICAgICAgIGhhbmRsZUFjdGlvblJldHVyblZhbHVlKGFjdGlvblF1ZXVlLCBub2RlLCBjdXJyZW50VHJhbnNpdGlvbik7XG4gICAgICAgIH0gY2F0Y2ggKGVycm9yJDQpIHtcbiAgICAgICAgICBvbkFjdGlvbkVycm9yKGFjdGlvblF1ZXVlLCBub2RlLCBlcnJvciQ0KTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBmdW5jdGlvbiBoYW5kbGVBY3Rpb25SZXR1cm5WYWx1ZShhY3Rpb25RdWV1ZSwgbm9kZSwgcmV0dXJuVmFsdWUpIHtcbiAgICAgIG51bGwgIT09IHJldHVyblZhbHVlICYmXG4gICAgICBcIm9iamVjdFwiID09PSB0eXBlb2YgcmV0dXJuVmFsdWUgJiZcbiAgICAgIFwiZnVuY3Rpb25cIiA9PT0gdHlwZW9mIHJldHVyblZhbHVlLnRoZW5cbiAgICAgICAgPyAocmV0dXJuVmFsdWUudGhlbihcbiAgICAgICAgICAgIGZ1bmN0aW9uIChuZXh0U3RhdGUpIHtcbiAgICAgICAgICAgICAgb25BY3Rpb25TdWNjZXNzKGFjdGlvblF1ZXVlLCBub2RlLCBuZXh0U3RhdGUpO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGZ1bmN0aW9uIChlcnJvcikge1xuICAgICAgICAgICAgICByZXR1cm4gb25BY3Rpb25FcnJvcihhY3Rpb25RdWV1ZSwgbm9kZSwgZXJyb3IpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICksXG4gICAgICAgICAgbm9kZS5pc1RyYW5zaXRpb24gfHxcbiAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoXG4gICAgICAgICAgICAgIFwiQW4gYXN5bmMgZnVuY3Rpb24gd2l0aCB1c2VBY3Rpb25TdGF0ZSB3YXMgY2FsbGVkIG91dHNpZGUgb2YgYSB0cmFuc2l0aW9uLiBUaGlzIGlzIGxpa2VseSBub3Qgd2hhdCB5b3UgaW50ZW5kZWQgKGZvciBleGFtcGxlLCBpc1BlbmRpbmcgd2lsbCBub3QgdXBkYXRlIGNvcnJlY3RseSkuIEVpdGhlciBjYWxsIHRoZSByZXR1cm5lZCBmdW5jdGlvbiBpbnNpZGUgc3RhcnRUcmFuc2l0aW9uLCBvciBwYXNzIGl0IHRvIGFuIGBhY3Rpb25gIG9yIGBmb3JtQWN0aW9uYCBwcm9wLlwiXG4gICAgICAgICAgICApKVxuICAgICAgICA6IG9uQWN0aW9uU3VjY2VzcyhhY3Rpb25RdWV1ZSwgbm9kZSwgcmV0dXJuVmFsdWUpO1xuICAgIH1cbiAgICBmdW5jdGlvbiBvbkFjdGlvblN1Y2Nlc3MoYWN0aW9uUXVldWUsIGFjdGlvbk5vZGUsIG5leHRTdGF0ZSkge1xuICAgICAgYWN0aW9uTm9kZS5zdGF0dXMgPSBcImZ1bGZpbGxlZFwiO1xuICAgICAgYWN0aW9uTm9kZS52YWx1ZSA9IG5leHRTdGF0ZTtcbiAgICAgIG5vdGlmeUFjdGlvbkxpc3RlbmVycyhhY3Rpb25Ob2RlKTtcbiAgICAgIGFjdGlvblF1ZXVlLnN0YXRlID0gbmV4dFN0YXRlO1xuICAgICAgYWN0aW9uTm9kZSA9IGFjdGlvblF1ZXVlLnBlbmRpbmc7XG4gICAgICBudWxsICE9PSBhY3Rpb25Ob2RlICYmXG4gICAgICAgICgobmV4dFN0YXRlID0gYWN0aW9uTm9kZS5uZXh0KSxcbiAgICAgICAgbmV4dFN0YXRlID09PSBhY3Rpb25Ob2RlXG4gICAgICAgICAgPyAoYWN0aW9uUXVldWUucGVuZGluZyA9IG51bGwpXG4gICAgICAgICAgOiAoKG5leHRTdGF0ZSA9IG5leHRTdGF0ZS5uZXh0KSxcbiAgICAgICAgICAgIChhY3Rpb25Ob2RlLm5leHQgPSBuZXh0U3RhdGUpLFxuICAgICAgICAgICAgcnVuQWN0aW9uU3RhdGVBY3Rpb24oYWN0aW9uUXVldWUsIG5leHRTdGF0ZSkpKTtcbiAgICB9XG4gICAgZnVuY3Rpb24gb25BY3Rpb25FcnJvcihhY3Rpb25RdWV1ZSwgYWN0aW9uTm9kZSwgZXJyb3IpIHtcbiAgICAgIHZhciBsYXN0ID0gYWN0aW9uUXVldWUucGVuZGluZztcbiAgICAgIGFjdGlvblF1ZXVlLnBlbmRpbmcgPSBudWxsO1xuICAgICAgaWYgKG51bGwgIT09IGxhc3QpIHtcbiAgICAgICAgbGFzdCA9IGxhc3QubmV4dDtcbiAgICAgICAgZG9cbiAgICAgICAgICAoYWN0aW9uTm9kZS5zdGF0dXMgPSBcInJlamVjdGVkXCIpLFxuICAgICAgICAgICAgKGFjdGlvbk5vZGUucmVhc29uID0gZXJyb3IpLFxuICAgICAgICAgICAgbm90aWZ5QWN0aW9uTGlzdGVuZXJzKGFjdGlvbk5vZGUpLFxuICAgICAgICAgICAgKGFjdGlvbk5vZGUgPSBhY3Rpb25Ob2RlLm5leHQpO1xuICAgICAgICB3aGlsZSAoYWN0aW9uTm9kZSAhPT0gbGFzdCk7XG4gICAgICB9XG4gICAgICBhY3Rpb25RdWV1ZS5hY3Rpb24gPSBudWxsO1xuICAgIH1cbiAgICBmdW5jdGlvbiBub3RpZnlBY3Rpb25MaXN0ZW5lcnMoYWN0aW9uTm9kZSkge1xuICAgICAgYWN0aW9uTm9kZSA9IGFjdGlvbk5vZGUubGlzdGVuZXJzO1xuICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBhY3Rpb25Ob2RlLmxlbmd0aDsgaSsrKSAoMCwgYWN0aW9uTm9kZVtpXSkoKTtcbiAgICB9XG4gICAgZnVuY3Rpb24gYWN0aW9uU3RhdGVSZWR1Y2VyKG9sZFN0YXRlLCBuZXdTdGF0ZSkge1xuICAgICAgcmV0dXJuIG5ld1N0YXRlO1xuICAgIH1cbiAgICBmdW5jdGlvbiBtb3VudEFjdGlvblN0YXRlKGFjdGlvbiwgaW5pdGlhbFN0YXRlUHJvcCkge1xuICAgICAgaWYgKGlzSHlkcmF0aW5nKSB7XG4gICAgICAgIHZhciBzc3JGb3JtU3RhdGUgPSB3b3JrSW5Qcm9ncmVzc1Jvb3QuZm9ybVN0YXRlO1xuICAgICAgICBpZiAobnVsbCAhPT0gc3NyRm9ybVN0YXRlKSB7XG4gICAgICAgICAgYToge1xuICAgICAgICAgICAgdmFyIGlzTWF0Y2hpbmcgPSBjdXJyZW50bHlSZW5kZXJpbmdGaWJlcjtcbiAgICAgICAgICAgIGlmIChpc0h5ZHJhdGluZykge1xuICAgICAgICAgICAgICBpZiAobmV4dEh5ZHJhdGFibGVJbnN0YW5jZSkge1xuICAgICAgICAgICAgICAgIGI6IHtcbiAgICAgICAgICAgICAgICAgIHZhciBtYXJrZXJJbnN0YW5jZSA9IG5leHRIeWRyYXRhYmxlSW5zdGFuY2U7XG4gICAgICAgICAgICAgICAgICBmb3IgKFxuICAgICAgICAgICAgICAgICAgICB2YXIgaW5Sb290T3JTaW5nbGV0b24gPSByb290T3JTaW5nbGV0b25Db250ZXh0O1xuICAgICAgICAgICAgICAgICAgICA4ICE9PSBtYXJrZXJJbnN0YW5jZS5ub2RlVHlwZTtcblxuICAgICAgICAgICAgICAgICAgKSB7XG4gICAgICAgICAgICAgICAgICAgIGlmICghaW5Sb290T3JTaW5nbGV0b24pIHtcbiAgICAgICAgICAgICAgICAgICAgICBtYXJrZXJJbnN0YW5jZSA9IG51bGw7XG4gICAgICAgICAgICAgICAgICAgICAgYnJlYWsgYjtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBtYXJrZXJJbnN0YW5jZSA9IGdldE5leHRIeWRyYXRhYmxlKFxuICAgICAgICAgICAgICAgICAgICAgIG1hcmtlckluc3RhbmNlLm5leHRTaWJsaW5nXG4gICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgICAgIGlmIChudWxsID09PSBtYXJrZXJJbnN0YW5jZSkge1xuICAgICAgICAgICAgICAgICAgICAgIG1hcmtlckluc3RhbmNlID0gbnVsbDtcbiAgICAgICAgICAgICAgICAgICAgICBicmVhayBiO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICBpblJvb3RPclNpbmdsZXRvbiA9IG1hcmtlckluc3RhbmNlLmRhdGE7XG4gICAgICAgICAgICAgICAgICBtYXJrZXJJbnN0YW5jZSA9XG4gICAgICAgICAgICAgICAgICAgIGluUm9vdE9yU2luZ2xldG9uID09PSBGT1JNX1NUQVRFX0lTX01BVENISU5HIHx8XG4gICAgICAgICAgICAgICAgICAgIGluUm9vdE9yU2luZ2xldG9uID09PSBGT1JNX1NUQVRFX0lTX05PVF9NQVRDSElOR1xuICAgICAgICAgICAgICAgICAgICAgID8gbWFya2VySW5zdGFuY2VcbiAgICAgICAgICAgICAgICAgICAgICA6IG51bGw7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGlmIChtYXJrZXJJbnN0YW5jZSkge1xuICAgICAgICAgICAgICAgICAgbmV4dEh5ZHJhdGFibGVJbnN0YW5jZSA9IGdldE5leHRIeWRyYXRhYmxlKFxuICAgICAgICAgICAgICAgICAgICBtYXJrZXJJbnN0YW5jZS5uZXh0U2libGluZ1xuICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICAgIGlzTWF0Y2hpbmcgPSBtYXJrZXJJbnN0YW5jZS5kYXRhID09PSBGT1JNX1NUQVRFX0lTX01BVENISU5HO1xuICAgICAgICAgICAgICAgICAgYnJlYWsgYTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgdGhyb3dPbkh5ZHJhdGlvbk1pc21hdGNoKGlzTWF0Y2hpbmcpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaXNNYXRjaGluZyA9ICExO1xuICAgICAgICAgIH1cbiAgICAgICAgICBpc01hdGNoaW5nICYmIChpbml0aWFsU3RhdGVQcm9wID0gc3NyRm9ybVN0YXRlWzBdKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgc3NyRm9ybVN0YXRlID0gbW91bnRXb3JrSW5Qcm9ncmVzc0hvb2soKTtcbiAgICAgIHNzckZvcm1TdGF0ZS5tZW1vaXplZFN0YXRlID0gc3NyRm9ybVN0YXRlLmJhc2VTdGF0ZSA9IGluaXRpYWxTdGF0ZVByb3A7XG4gICAgICBpc01hdGNoaW5nID0ge1xuICAgICAgICBwZW5kaW5nOiBudWxsLFxuICAgICAgICBsYW5lczogMCxcbiAgICAgICAgZGlzcGF0Y2g6IG51bGwsXG4gICAgICAgIGxhc3RSZW5kZXJlZFJlZHVjZXI6IGFjdGlvblN0YXRlUmVkdWNlcixcbiAgICAgICAgbGFzdFJlbmRlcmVkU3RhdGU6IGluaXRpYWxTdGF0ZVByb3BcbiAgICAgIH07XG4gICAgICBzc3JGb3JtU3RhdGUucXVldWUgPSBpc01hdGNoaW5nO1xuICAgICAgc3NyRm9ybVN0YXRlID0gZGlzcGF0Y2hTZXRTdGF0ZS5iaW5kKFxuICAgICAgICBudWxsLFxuICAgICAgICBjdXJyZW50bHlSZW5kZXJpbmdGaWJlcixcbiAgICAgICAgaXNNYXRjaGluZ1xuICAgICAgKTtcbiAgICAgIGlzTWF0Y2hpbmcuZGlzcGF0Y2ggPSBzc3JGb3JtU3RhdGU7XG4gICAgICBpc01hdGNoaW5nID0gbW91bnRTdGF0ZUltcGwoITEpO1xuICAgICAgaW5Sb290T3JTaW5nbGV0b24gPSBkaXNwYXRjaE9wdGltaXN0aWNTZXRTdGF0ZS5iaW5kKFxuICAgICAgICBudWxsLFxuICAgICAgICBjdXJyZW50bHlSZW5kZXJpbmdGaWJlcixcbiAgICAgICAgITEsXG4gICAgICAgIGlzTWF0Y2hpbmcucXVldWVcbiAgICAgICk7XG4gICAgICBpc01hdGNoaW5nID0gbW91bnRXb3JrSW5Qcm9ncmVzc0hvb2soKTtcbiAgICAgIG1hcmtlckluc3RhbmNlID0ge1xuICAgICAgICBzdGF0ZTogaW5pdGlhbFN0YXRlUHJvcCxcbiAgICAgICAgZGlzcGF0Y2g6IG51bGwsXG4gICAgICAgIGFjdGlvbjogYWN0aW9uLFxuICAgICAgICBwZW5kaW5nOiBudWxsXG4gICAgICB9O1xuICAgICAgaXNNYXRjaGluZy5xdWV1ZSA9IG1hcmtlckluc3RhbmNlO1xuICAgICAgc3NyRm9ybVN0YXRlID0gZGlzcGF0Y2hBY3Rpb25TdGF0ZS5iaW5kKFxuICAgICAgICBudWxsLFxuICAgICAgICBjdXJyZW50bHlSZW5kZXJpbmdGaWJlcixcbiAgICAgICAgbWFya2VySW5zdGFuY2UsXG4gICAgICAgIGluUm9vdE9yU2luZ2xldG9uLFxuICAgICAgICBzc3JGb3JtU3RhdGVcbiAgICAgICk7XG4gICAgICBtYXJrZXJJbnN0YW5jZS5kaXNwYXRjaCA9IHNzckZvcm1TdGF0ZTtcbiAgICAgIGlzTWF0Y2hpbmcubWVtb2l6ZWRTdGF0ZSA9IGFjdGlvbjtcbiAgICAgIHJldHVybiBbaW5pdGlhbFN0YXRlUHJvcCwgc3NyRm9ybVN0YXRlLCAhMV07XG4gICAgfVxuICAgIGZ1bmN0aW9uIHVwZGF0ZUFjdGlvblN0YXRlKGFjdGlvbikge1xuICAgICAgdmFyIHN0YXRlSG9vayA9IHVwZGF0ZVdvcmtJblByb2dyZXNzSG9vaygpO1xuICAgICAgcmV0dXJuIHVwZGF0ZUFjdGlvblN0YXRlSW1wbChzdGF0ZUhvb2ssIGN1cnJlbnRIb29rLCBhY3Rpb24pO1xuICAgIH1cbiAgICBmdW5jdGlvbiB1cGRhdGVBY3Rpb25TdGF0ZUltcGwoc3RhdGVIb29rLCBjdXJyZW50U3RhdGVIb29rLCBhY3Rpb24pIHtcbiAgICAgIGN1cnJlbnRTdGF0ZUhvb2sgPSB1cGRhdGVSZWR1Y2VySW1wbChcbiAgICAgICAgc3RhdGVIb29rLFxuICAgICAgICBjdXJyZW50U3RhdGVIb29rLFxuICAgICAgICBhY3Rpb25TdGF0ZVJlZHVjZXJcbiAgICAgIClbMF07XG4gICAgICBzdGF0ZUhvb2sgPSB1cGRhdGVSZWR1Y2VyKGJhc2ljU3RhdGVSZWR1Y2VyKVswXTtcbiAgICAgIGlmIChcbiAgICAgICAgXCJvYmplY3RcIiA9PT0gdHlwZW9mIGN1cnJlbnRTdGF0ZUhvb2sgJiZcbiAgICAgICAgbnVsbCAhPT0gY3VycmVudFN0YXRlSG9vayAmJlxuICAgICAgICBcImZ1bmN0aW9uXCIgPT09IHR5cGVvZiBjdXJyZW50U3RhdGVIb29rLnRoZW5cbiAgICAgIClcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICB2YXIgc3RhdGUgPSB1c2VUaGVuYWJsZShjdXJyZW50U3RhdGVIb29rKTtcbiAgICAgICAgfSBjYXRjaCAoeCkge1xuICAgICAgICAgIGlmICh4ID09PSBTdXNwZW5zZUV4Y2VwdGlvbikgdGhyb3cgU3VzcGVuc2VBY3Rpb25FeGNlcHRpb247XG4gICAgICAgICAgdGhyb3cgeDtcbiAgICAgICAgfVxuICAgICAgZWxzZSBzdGF0ZSA9IGN1cnJlbnRTdGF0ZUhvb2s7XG4gICAgICBjdXJyZW50U3RhdGVIb29rID0gdXBkYXRlV29ya0luUHJvZ3Jlc3NIb29rKCk7XG4gICAgICB2YXIgYWN0aW9uUXVldWUgPSBjdXJyZW50U3RhdGVIb29rLnF1ZXVlLFxuICAgICAgICBkaXNwYXRjaCA9IGFjdGlvblF1ZXVlLmRpc3BhdGNoO1xuICAgICAgYWN0aW9uICE9PSBjdXJyZW50U3RhdGVIb29rLm1lbW9pemVkU3RhdGUgJiZcbiAgICAgICAgKChjdXJyZW50bHlSZW5kZXJpbmdGaWJlci5mbGFncyB8PSAyMDQ4KSxcbiAgICAgICAgcHVzaFNpbXBsZUVmZmVjdChcbiAgICAgICAgICBIYXNFZmZlY3QgfCBQYXNzaXZlLFxuICAgICAgICAgIGNyZWF0ZUVmZmVjdEluc3RhbmNlKCksXG4gICAgICAgICAgYWN0aW9uU3RhdGVBY3Rpb25FZmZlY3QuYmluZChudWxsLCBhY3Rpb25RdWV1ZSwgYWN0aW9uKSxcbiAgICAgICAgICBudWxsXG4gICAgICAgICkpO1xuICAgICAgcmV0dXJuIFtzdGF0ZSwgZGlzcGF0Y2gsIHN0YXRlSG9va107XG4gICAgfVxuICAgIGZ1bmN0aW9uIGFjdGlvblN0YXRlQWN0aW9uRWZmZWN0KGFjdGlvblF1ZXVlLCBhY3Rpb24pIHtcbiAgICAgIGFjdGlvblF1ZXVlLmFjdGlvbiA9IGFjdGlvbjtcbiAgICB9XG4gICAgZnVuY3Rpb24gcmVyZW5kZXJBY3Rpb25TdGF0ZShhY3Rpb24pIHtcbiAgICAgIHZhciBzdGF0ZUhvb2sgPSB1cGRhdGVXb3JrSW5Qcm9ncmVzc0hvb2soKSxcbiAgICAgICAgY3VycmVudFN0YXRlSG9vayA9IGN1cnJlbnRIb29rO1xuICAgICAgaWYgKG51bGwgIT09IGN1cnJlbnRTdGF0ZUhvb2spXG4gICAgICAgIHJldHVybiB1cGRhdGVBY3Rpb25TdGF0ZUltcGwoc3RhdGVIb29rLCBjdXJyZW50U3RhdGVIb29rLCBhY3Rpb24pO1xuICAgICAgdXBkYXRlV29ya0luUHJvZ3Jlc3NIb29rKCk7XG4gICAgICBzdGF0ZUhvb2sgPSBzdGF0ZUhvb2subWVtb2l6ZWRTdGF0ZTtcbiAgICAgIGN1cnJlbnRTdGF0ZUhvb2sgPSB1cGRhdGVXb3JrSW5Qcm9ncmVzc0hvb2soKTtcbiAgICAgIHZhciBkaXNwYXRjaCA9IGN1cnJlbnRTdGF0ZUhvb2sucXVldWUuZGlzcGF0Y2g7XG4gICAgICBjdXJyZW50U3RhdGVIb29rLm1lbW9pemVkU3RhdGUgPSBhY3Rpb247XG4gICAgICByZXR1cm4gW3N0YXRlSG9vaywgZGlzcGF0Y2gsICExXTtcbiAgICB9XG4gICAgZnVuY3Rpb24gcHVzaFNpbXBsZUVmZmVjdCh0YWcsIGluc3QsIGNyZWF0ZSwgY3JlYXRlRGVwcykge1xuICAgICAgdGFnID0ge1xuICAgICAgICB0YWc6IHRhZyxcbiAgICAgICAgY3JlYXRlOiBjcmVhdGUsXG4gICAgICAgIGRlcHM6IGNyZWF0ZURlcHMsXG4gICAgICAgIGluc3Q6IGluc3QsXG4gICAgICAgIG5leHQ6IG51bGxcbiAgICAgIH07XG4gICAgICBpbnN0ID0gY3VycmVudGx5UmVuZGVyaW5nRmliZXIudXBkYXRlUXVldWU7XG4gICAgICBudWxsID09PSBpbnN0ICYmXG4gICAgICAgICgoaW5zdCA9IGNyZWF0ZUZ1bmN0aW9uQ29tcG9uZW50VXBkYXRlUXVldWUoKSksXG4gICAgICAgIChjdXJyZW50bHlSZW5kZXJpbmdGaWJlci51cGRhdGVRdWV1ZSA9IGluc3QpKTtcbiAgICAgIGNyZWF0ZSA9IGluc3QubGFzdEVmZmVjdDtcbiAgICAgIG51bGwgPT09IGNyZWF0ZVxuICAgICAgICA/IChpbnN0Lmxhc3RFZmZlY3QgPSB0YWcubmV4dCA9IHRhZylcbiAgICAgICAgOiAoKGNyZWF0ZURlcHMgPSBjcmVhdGUubmV4dCksXG4gICAgICAgICAgKGNyZWF0ZS5uZXh0ID0gdGFnKSxcbiAgICAgICAgICAodGFnLm5leHQgPSBjcmVhdGVEZXBzKSxcbiAgICAgICAgICAoaW5zdC5sYXN0RWZmZWN0ID0gdGFnKSk7XG4gICAgICByZXR1cm4gdGFnO1xuICAgIH1cbiAgICBmdW5jdGlvbiBjcmVhdGVFZmZlY3RJbnN0YW5jZSgpIHtcbiAgICAgIHJldHVybiB7IGRlc3Ryb3k6IHZvaWQgMCwgcmVzb3VyY2U6IHZvaWQgMCB9O1xuICAgIH1cbiAgICBmdW5jdGlvbiBtb3VudFJlZihpbml0aWFsVmFsdWUpIHtcbiAgICAgIHZhciBob29rID0gbW91bnRXb3JrSW5Qcm9ncmVzc0hvb2soKTtcbiAgICAgIGluaXRpYWxWYWx1ZSA9IHsgY3VycmVudDogaW5pdGlhbFZhbHVlIH07XG4gICAgICByZXR1cm4gKGhvb2subWVtb2l6ZWRTdGF0ZSA9IGluaXRpYWxWYWx1ZSk7XG4gICAgfVxuICAgIGZ1bmN0aW9uIG1vdW50RWZmZWN0SW1wbChmaWJlckZsYWdzLCBob29rRmxhZ3MsIGNyZWF0ZSwgY3JlYXRlRGVwcykge1xuICAgICAgdmFyIGhvb2sgPSBtb3VudFdvcmtJblByb2dyZXNzSG9vaygpO1xuICAgICAgY3JlYXRlRGVwcyA9IHZvaWQgMCA9PT0gY3JlYXRlRGVwcyA/IG51bGwgOiBjcmVhdGVEZXBzO1xuICAgICAgY3VycmVudGx5UmVuZGVyaW5nRmliZXIuZmxhZ3MgfD0gZmliZXJGbGFncztcbiAgICAgIGhvb2subWVtb2l6ZWRTdGF0ZSA9IHB1c2hTaW1wbGVFZmZlY3QoXG4gICAgICAgIEhhc0VmZmVjdCB8IGhvb2tGbGFncyxcbiAgICAgICAgY3JlYXRlRWZmZWN0SW5zdGFuY2UoKSxcbiAgICAgICAgY3JlYXRlLFxuICAgICAgICBjcmVhdGVEZXBzXG4gICAgICApO1xuICAgIH1cbiAgICBmdW5jdGlvbiB1cGRhdGVFZmZlY3RJbXBsKGZpYmVyRmxhZ3MsIGhvb2tGbGFncywgY3JlYXRlLCBkZXBzKSB7XG4gICAgICB2YXIgaG9vayA9IHVwZGF0ZVdvcmtJblByb2dyZXNzSG9vaygpO1xuICAgICAgZGVwcyA9IHZvaWQgMCA9PT0gZGVwcyA/IG51bGwgOiBkZXBzO1xuICAgICAgdmFyIGluc3QgPSBob29rLm1lbW9pemVkU3RhdGUuaW5zdDtcbiAgICAgIG51bGwgIT09IGN1cnJlbnRIb29rICYmXG4gICAgICBudWxsICE9PSBkZXBzICYmXG4gICAgICBhcmVIb29rSW5wdXRzRXF1YWwoZGVwcywgY3VycmVudEhvb2subWVtb2l6ZWRTdGF0ZS5kZXBzKVxuICAgICAgICA/IChob29rLm1lbW9pemVkU3RhdGUgPSBwdXNoU2ltcGxlRWZmZWN0KGhvb2tGbGFncywgaW5zdCwgY3JlYXRlLCBkZXBzKSlcbiAgICAgICAgOiAoKGN1cnJlbnRseVJlbmRlcmluZ0ZpYmVyLmZsYWdzIHw9IGZpYmVyRmxhZ3MpLFxuICAgICAgICAgIChob29rLm1lbW9pemVkU3RhdGUgPSBwdXNoU2ltcGxlRWZmZWN0KFxuICAgICAgICAgICAgSGFzRWZmZWN0IHwgaG9va0ZsYWdzLFxuICAgICAgICAgICAgaW5zdCxcbiAgICAgICAgICAgIGNyZWF0ZSxcbiAgICAgICAgICAgIGRlcHNcbiAgICAgICAgICApKSk7XG4gICAgfVxuICAgIGZ1bmN0aW9uIG1vdW50RWZmZWN0KGNyZWF0ZSwgY3JlYXRlRGVwcykge1xuICAgICAgKGN1cnJlbnRseVJlbmRlcmluZ0ZpYmVyLm1vZGUgJiBTdHJpY3RFZmZlY3RzTW9kZSkgIT09IE5vTW9kZSAmJlxuICAgICAgKGN1cnJlbnRseVJlbmRlcmluZ0ZpYmVyLm1vZGUgJiBOb1N0cmljdFBhc3NpdmVFZmZlY3RzTW9kZSkgPT09IE5vTW9kZVxuICAgICAgICA/IG1vdW50RWZmZWN0SW1wbCgyNzY4MjYxMTIsIFBhc3NpdmUsIGNyZWF0ZSwgY3JlYXRlRGVwcylcbiAgICAgICAgOiBtb3VudEVmZmVjdEltcGwoODM5MDY1NiwgUGFzc2l2ZSwgY3JlYXRlLCBjcmVhdGVEZXBzKTtcbiAgICB9XG4gICAgZnVuY3Rpb24gbW91bnRMYXlvdXRFZmZlY3QoY3JlYXRlLCBkZXBzKSB7XG4gICAgICB2YXIgZmliZXJGbGFncyA9IDQxOTQzMDg7XG4gICAgICAoY3VycmVudGx5UmVuZGVyaW5nRmliZXIubW9kZSAmIFN0cmljdEVmZmVjdHNNb2RlKSAhPT0gTm9Nb2RlICYmXG4gICAgICAgIChmaWJlckZsYWdzIHw9IDEzNDIxNzcyOCk7XG4gICAgICByZXR1cm4gbW91bnRFZmZlY3RJbXBsKGZpYmVyRmxhZ3MsIExheW91dCwgY3JlYXRlLCBkZXBzKTtcbiAgICB9XG4gICAgZnVuY3Rpb24gaW1wZXJhdGl2ZUhhbmRsZUVmZmVjdChjcmVhdGUsIHJlZikge1xuICAgICAgaWYgKFwiZnVuY3Rpb25cIiA9PT0gdHlwZW9mIHJlZikge1xuICAgICAgICBjcmVhdGUgPSBjcmVhdGUoKTtcbiAgICAgICAgdmFyIHJlZkNsZWFudXAgPSByZWYoY3JlYXRlKTtcbiAgICAgICAgcmV0dXJuIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICBcImZ1bmN0aW9uXCIgPT09IHR5cGVvZiByZWZDbGVhbnVwID8gcmVmQ2xlYW51cCgpIDogcmVmKG51bGwpO1xuICAgICAgICB9O1xuICAgICAgfVxuICAgICAgaWYgKG51bGwgIT09IHJlZiAmJiB2b2lkIDAgIT09IHJlZilcbiAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICByZWYuaGFzT3duUHJvcGVydHkoXCJjdXJyZW50XCIpIHx8XG4gICAgICAgICAgICBjb25zb2xlLmVycm9yKFxuICAgICAgICAgICAgICBcIkV4cGVjdGVkIHVzZUltcGVyYXRpdmVIYW5kbGUoKSBmaXJzdCBhcmd1bWVudCB0byBlaXRoZXIgYmUgYSByZWYgY2FsbGJhY2sgb3IgUmVhY3QuY3JlYXRlUmVmKCkgb2JqZWN0LiBJbnN0ZWFkIHJlY2VpdmVkOiAlcy5cIixcbiAgICAgICAgICAgICAgXCJhbiBvYmplY3Qgd2l0aCBrZXlzIHtcIiArIE9iamVjdC5rZXlzKHJlZikuam9pbihcIiwgXCIpICsgXCJ9XCJcbiAgICAgICAgICAgICksXG4gICAgICAgICAgKGNyZWF0ZSA9IGNyZWF0ZSgpKSxcbiAgICAgICAgICAocmVmLmN1cnJlbnQgPSBjcmVhdGUpLFxuICAgICAgICAgIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIHJlZi5jdXJyZW50ID0gbnVsbDtcbiAgICAgICAgICB9XG4gICAgICAgICk7XG4gICAgfVxuICAgIGZ1bmN0aW9uIG1vdW50SW1wZXJhdGl2ZUhhbmRsZShyZWYsIGNyZWF0ZSwgZGVwcykge1xuICAgICAgXCJmdW5jdGlvblwiICE9PSB0eXBlb2YgY3JlYXRlICYmXG4gICAgICAgIGNvbnNvbGUuZXJyb3IoXG4gICAgICAgICAgXCJFeHBlY3RlZCB1c2VJbXBlcmF0aXZlSGFuZGxlKCkgc2Vjb25kIGFyZ3VtZW50IHRvIGJlIGEgZnVuY3Rpb24gdGhhdCBjcmVhdGVzIGEgaGFuZGxlLiBJbnN0ZWFkIHJlY2VpdmVkOiAlcy5cIixcbiAgICAgICAgICBudWxsICE9PSBjcmVhdGUgPyB0eXBlb2YgY3JlYXRlIDogXCJudWxsXCJcbiAgICAgICAgKTtcbiAgICAgIGRlcHMgPSBudWxsICE9PSBkZXBzICYmIHZvaWQgMCAhPT0gZGVwcyA/IGRlcHMuY29uY2F0KFtyZWZdKSA6IG51bGw7XG4gICAgICB2YXIgZmliZXJGbGFncyA9IDQxOTQzMDg7XG4gICAgICAoY3VycmVudGx5UmVuZGVyaW5nRmliZXIubW9kZSAmIFN0cmljdEVmZmVjdHNNb2RlKSAhPT0gTm9Nb2RlICYmXG4gICAgICAgIChmaWJlckZsYWdzIHw9IDEzNDIxNzcyOCk7XG4gICAgICBtb3VudEVmZmVjdEltcGwoXG4gICAgICAgIGZpYmVyRmxhZ3MsXG4gICAgICAgIExheW91dCxcbiAgICAgICAgaW1wZXJhdGl2ZUhhbmRsZUVmZmVjdC5iaW5kKG51bGwsIGNyZWF0ZSwgcmVmKSxcbiAgICAgICAgZGVwc1xuICAgICAgKTtcbiAgICB9XG4gICAgZnVuY3Rpb24gdXBkYXRlSW1wZXJhdGl2ZUhhbmRsZShyZWYsIGNyZWF0ZSwgZGVwcykge1xuICAgICAgXCJmdW5jdGlvblwiICE9PSB0eXBlb2YgY3JlYXRlICYmXG4gICAgICAgIGNvbnNvbGUuZXJyb3IoXG4gICAgICAgICAgXCJFeHBlY3RlZCB1c2VJbXBlcmF0aXZlSGFuZGxlKCkgc2Vjb25kIGFyZ3VtZW50IHRvIGJlIGEgZnVuY3Rpb24gdGhhdCBjcmVhdGVzIGEgaGFuZGxlLiBJbnN0ZWFkIHJlY2VpdmVkOiAlcy5cIixcbiAgICAgICAgICBudWxsICE9PSBjcmVhdGUgPyB0eXBlb2YgY3JlYXRlIDogXCJudWxsXCJcbiAgICAgICAgKTtcbiAgICAgIGRlcHMgPSBudWxsICE9PSBkZXBzICYmIHZvaWQgMCAhPT0gZGVwcyA/IGRlcHMuY29uY2F0KFtyZWZdKSA6IG51bGw7XG4gICAgICB1cGRhdGVFZmZlY3RJbXBsKFxuICAgICAgICA0LFxuICAgICAgICBMYXlvdXQsXG4gICAgICAgIGltcGVyYXRpdmVIYW5kbGVFZmZlY3QuYmluZChudWxsLCBjcmVhdGUsIHJlZiksXG4gICAgICAgIGRlcHNcbiAgICAgICk7XG4gICAgfVxuICAgIGZ1bmN0aW9uIG1vdW50Q2FsbGJhY2soY2FsbGJhY2ssIGRlcHMpIHtcbiAgICAgIG1vdW50V29ya0luUHJvZ3Jlc3NIb29rKCkubWVtb2l6ZWRTdGF0ZSA9IFtcbiAgICAgICAgY2FsbGJhY2ssXG4gICAgICAgIHZvaWQgMCA9PT0gZGVwcyA/IG51bGwgOiBkZXBzXG4gICAgICBdO1xuICAgICAgcmV0dXJuIGNhbGxiYWNrO1xuICAgIH1cbiAgICBmdW5jdGlvbiB1cGRhdGVDYWxsYmFjayhjYWxsYmFjaywgZGVwcykge1xuICAgICAgdmFyIGhvb2sgPSB1cGRhdGVXb3JrSW5Qcm9ncmVzc0hvb2soKTtcbiAgICAgIGRlcHMgPSB2b2lkIDAgPT09IGRlcHMgPyBudWxsIDogZGVwcztcbiAgICAgIHZhciBwcmV2U3RhdGUgPSBob29rLm1lbW9pemVkU3RhdGU7XG4gICAgICBpZiAobnVsbCAhPT0gZGVwcyAmJiBhcmVIb29rSW5wdXRzRXF1YWwoZGVwcywgcHJldlN0YXRlWzFdKSlcbiAgICAgICAgcmV0dXJuIHByZXZTdGF0ZVswXTtcbiAgICAgIGhvb2subWVtb2l6ZWRTdGF0ZSA9IFtjYWxsYmFjaywgZGVwc107XG4gICAgICByZXR1cm4gY2FsbGJhY2s7XG4gICAgfVxuICAgIGZ1bmN0aW9uIG1vdW50TWVtbyhuZXh0Q3JlYXRlLCBkZXBzKSB7XG4gICAgICB2YXIgaG9vayA9IG1vdW50V29ya0luUHJvZ3Jlc3NIb29rKCk7XG4gICAgICBkZXBzID0gdm9pZCAwID09PSBkZXBzID8gbnVsbCA6IGRlcHM7XG4gICAgICB2YXIgbmV4dFZhbHVlID0gbmV4dENyZWF0ZSgpO1xuICAgICAgaWYgKHNob3VsZERvdWJsZUludm9rZVVzZXJGbnNJbkhvb2tzREVWKSB7XG4gICAgICAgIHNldElzU3RyaWN0TW9kZUZvckRldnRvb2xzKCEwKTtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICBuZXh0Q3JlYXRlKCk7XG4gICAgICAgIH0gZmluYWxseSB7XG4gICAgICAgICAgc2V0SXNTdHJpY3RNb2RlRm9yRGV2dG9vbHMoITEpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBob29rLm1lbW9pemVkU3RhdGUgPSBbbmV4dFZhbHVlLCBkZXBzXTtcbiAgICAgIHJldHVybiBuZXh0VmFsdWU7XG4gICAgfVxuICAgIGZ1bmN0aW9uIHVwZGF0ZU1lbW8obmV4dENyZWF0ZSwgZGVwcykge1xuICAgICAgdmFyIGhvb2sgPSB1cGRhdGVXb3JrSW5Qcm9ncmVzc0hvb2soKTtcbiAgICAgIGRlcHMgPSB2b2lkIDAgPT09IGRlcHMgPyBudWxsIDogZGVwcztcbiAgICAgIHZhciBwcmV2U3RhdGUgPSBob29rLm1lbW9pemVkU3RhdGU7XG4gICAgICBpZiAobnVsbCAhPT0gZGVwcyAmJiBhcmVIb29rSW5wdXRzRXF1YWwoZGVwcywgcHJldlN0YXRlWzFdKSlcbiAgICAgICAgcmV0dXJuIHByZXZTdGF0ZVswXTtcbiAgICAgIHByZXZTdGF0ZSA9IG5leHRDcmVhdGUoKTtcbiAgICAgIGlmIChzaG91bGREb3VibGVJbnZva2VVc2VyRm5zSW5Ib29rc0RFVikge1xuICAgICAgICBzZXRJc1N0cmljdE1vZGVGb3JEZXZ0b29scyghMCk7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgbmV4dENyZWF0ZSgpO1xuICAgICAgICB9IGZpbmFsbHkge1xuICAgICAgICAgIHNldElzU3RyaWN0TW9kZUZvckRldnRvb2xzKCExKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgaG9vay5tZW1vaXplZFN0YXRlID0gW3ByZXZTdGF0ZSwgZGVwc107XG4gICAgICByZXR1cm4gcHJldlN0YXRlO1xuICAgIH1cbiAgICBmdW5jdGlvbiBtb3VudERlZmVycmVkVmFsdWUodmFsdWUsIGluaXRpYWxWYWx1ZSkge1xuICAgICAgdmFyIGhvb2sgPSBtb3VudFdvcmtJblByb2dyZXNzSG9vaygpO1xuICAgICAgcmV0dXJuIG1vdW50RGVmZXJyZWRWYWx1ZUltcGwoaG9vaywgdmFsdWUsIGluaXRpYWxWYWx1ZSk7XG4gICAgfVxuICAgIGZ1bmN0aW9uIHVwZGF0ZURlZmVycmVkVmFsdWUodmFsdWUsIGluaXRpYWxWYWx1ZSkge1xuICAgICAgdmFyIGhvb2sgPSB1cGRhdGVXb3JrSW5Qcm9ncmVzc0hvb2soKTtcbiAgICAgIHJldHVybiB1cGRhdGVEZWZlcnJlZFZhbHVlSW1wbChcbiAgICAgICAgaG9vayxcbiAgICAgICAgY3VycmVudEhvb2subWVtb2l6ZWRTdGF0ZSxcbiAgICAgICAgdmFsdWUsXG4gICAgICAgIGluaXRpYWxWYWx1ZVxuICAgICAgKTtcbiAgICB9XG4gICAgZnVuY3Rpb24gcmVyZW5kZXJEZWZlcnJlZFZhbHVlKHZhbHVlLCBpbml0aWFsVmFsdWUpIHtcbiAgICAgIHZhciBob29rID0gdXBkYXRlV29ya0luUHJvZ3Jlc3NIb29rKCk7XG4gICAgICByZXR1cm4gbnVsbCA9PT0gY3VycmVudEhvb2tcbiAgICAgICAgPyBtb3VudERlZmVycmVkVmFsdWVJbXBsKGhvb2ssIHZhbHVlLCBpbml0aWFsVmFsdWUpXG4gICAgICAgIDogdXBkYXRlRGVmZXJyZWRWYWx1ZUltcGwoXG4gICAgICAgICAgICBob29rLFxuICAgICAgICAgICAgY3VycmVudEhvb2subWVtb2l6ZWRTdGF0ZSxcbiAgICAgICAgICAgIHZhbHVlLFxuICAgICAgICAgICAgaW5pdGlhbFZhbHVlXG4gICAgICAgICAgKTtcbiAgICB9XG4gICAgZnVuY3Rpb24gbW91bnREZWZlcnJlZFZhbHVlSW1wbChob29rLCB2YWx1ZSwgaW5pdGlhbFZhbHVlKSB7XG4gICAgICBpZiAodm9pZCAwID09PSBpbml0aWFsVmFsdWUgfHwgMCAhPT0gKHJlbmRlckxhbmVzICYgMTA3Mzc0MTgyNCkpXG4gICAgICAgIHJldHVybiAoaG9vay5tZW1vaXplZFN0YXRlID0gdmFsdWUpO1xuICAgICAgaG9vay5tZW1vaXplZFN0YXRlID0gaW5pdGlhbFZhbHVlO1xuICAgICAgaG9vayA9IHJlcXVlc3REZWZlcnJlZExhbmUoKTtcbiAgICAgIGN1cnJlbnRseVJlbmRlcmluZ0ZpYmVyLmxhbmVzIHw9IGhvb2s7XG4gICAgICB3b3JrSW5Qcm9ncmVzc1Jvb3RTa2lwcGVkTGFuZXMgfD0gaG9vaztcbiAgICAgIHJldHVybiBpbml0aWFsVmFsdWU7XG4gICAgfVxuICAgIGZ1bmN0aW9uIHVwZGF0ZURlZmVycmVkVmFsdWVJbXBsKGhvb2ssIHByZXZWYWx1ZSwgdmFsdWUsIGluaXRpYWxWYWx1ZSkge1xuICAgICAgaWYgKG9iamVjdElzKHZhbHVlLCBwcmV2VmFsdWUpKSByZXR1cm4gdmFsdWU7XG4gICAgICBpZiAobnVsbCAhPT0gY3VycmVudFRyZWVIaWRkZW5TdGFja0N1cnNvci5jdXJyZW50KVxuICAgICAgICByZXR1cm4gKFxuICAgICAgICAgIChob29rID0gbW91bnREZWZlcnJlZFZhbHVlSW1wbChob29rLCB2YWx1ZSwgaW5pdGlhbFZhbHVlKSksXG4gICAgICAgICAgb2JqZWN0SXMoaG9vaywgcHJldlZhbHVlKSB8fCAoZGlkUmVjZWl2ZVVwZGF0ZSA9ICEwKSxcbiAgICAgICAgICBob29rXG4gICAgICAgICk7XG4gICAgICBpZiAoMCA9PT0gKHJlbmRlckxhbmVzICYgNDIpKVxuICAgICAgICByZXR1cm4gKGRpZFJlY2VpdmVVcGRhdGUgPSAhMCksIChob29rLm1lbW9pemVkU3RhdGUgPSB2YWx1ZSk7XG4gICAgICBob29rID0gcmVxdWVzdERlZmVycmVkTGFuZSgpO1xuICAgICAgY3VycmVudGx5UmVuZGVyaW5nRmliZXIubGFuZXMgfD0gaG9vaztcbiAgICAgIHdvcmtJblByb2dyZXNzUm9vdFNraXBwZWRMYW5lcyB8PSBob29rO1xuICAgICAgcmV0dXJuIHByZXZWYWx1ZTtcbiAgICB9XG4gICAgZnVuY3Rpb24gc3RhcnRUcmFuc2l0aW9uKFxuICAgICAgZmliZXIsXG4gICAgICBxdWV1ZSxcbiAgICAgIHBlbmRpbmdTdGF0ZSxcbiAgICAgIGZpbmlzaGVkU3RhdGUsXG4gICAgICBjYWxsYmFja1xuICAgICkge1xuICAgICAgdmFyIHByZXZpb3VzUHJpb3JpdHkgPSBSZWFjdERPTVNoYXJlZEludGVybmFscy5wO1xuICAgICAgUmVhY3RET01TaGFyZWRJbnRlcm5hbHMucCA9XG4gICAgICAgIDAgIT09IHByZXZpb3VzUHJpb3JpdHkgJiYgcHJldmlvdXNQcmlvcml0eSA8IENvbnRpbnVvdXNFdmVudFByaW9yaXR5XG4gICAgICAgICAgPyBwcmV2aW91c1ByaW9yaXR5XG4gICAgICAgICAgOiBDb250aW51b3VzRXZlbnRQcmlvcml0eTtcbiAgICAgIHZhciBwcmV2VHJhbnNpdGlvbiA9IFJlYWN0U2hhcmVkSW50ZXJuYWxzLlQsXG4gICAgICAgIGN1cnJlbnRUcmFuc2l0aW9uID0ge307XG4gICAgICBSZWFjdFNoYXJlZEludGVybmFscy5UID0gY3VycmVudFRyYW5zaXRpb247XG4gICAgICBkaXNwYXRjaE9wdGltaXN0aWNTZXRTdGF0ZShmaWJlciwgITEsIHF1ZXVlLCBwZW5kaW5nU3RhdGUpO1xuICAgICAgY3VycmVudFRyYW5zaXRpb24uX3VwZGF0ZWRGaWJlcnMgPSBuZXcgU2V0KCk7XG4gICAgICB0cnkge1xuICAgICAgICB2YXIgcmV0dXJuVmFsdWUgPSBjYWxsYmFjaygpLFxuICAgICAgICAgIG9uU3RhcnRUcmFuc2l0aW9uRmluaXNoID0gUmVhY3RTaGFyZWRJbnRlcm5hbHMuUztcbiAgICAgICAgbnVsbCAhPT0gb25TdGFydFRyYW5zaXRpb25GaW5pc2ggJiZcbiAgICAgICAgICBvblN0YXJ0VHJhbnNpdGlvbkZpbmlzaChjdXJyZW50VHJhbnNpdGlvbiwgcmV0dXJuVmFsdWUpO1xuICAgICAgICBpZiAoXG4gICAgICAgICAgbnVsbCAhPT0gcmV0dXJuVmFsdWUgJiZcbiAgICAgICAgICBcIm9iamVjdFwiID09PSB0eXBlb2YgcmV0dXJuVmFsdWUgJiZcbiAgICAgICAgICBcImZ1bmN0aW9uXCIgPT09IHR5cGVvZiByZXR1cm5WYWx1ZS50aGVuXG4gICAgICAgICkge1xuICAgICAgICAgIHZhciB0aGVuYWJsZUZvckZpbmlzaGVkU3RhdGUgPSBjaGFpblRoZW5hYmxlVmFsdWUoXG4gICAgICAgICAgICByZXR1cm5WYWx1ZSxcbiAgICAgICAgICAgIGZpbmlzaGVkU3RhdGVcbiAgICAgICAgICApO1xuICAgICAgICAgIGRpc3BhdGNoU2V0U3RhdGVJbnRlcm5hbChcbiAgICAgICAgICAgIGZpYmVyLFxuICAgICAgICAgICAgcXVldWUsXG4gICAgICAgICAgICB0aGVuYWJsZUZvckZpbmlzaGVkU3RhdGUsXG4gICAgICAgICAgICByZXF1ZXN0VXBkYXRlTGFuZShmaWJlcilcbiAgICAgICAgICApO1xuICAgICAgICB9IGVsc2VcbiAgICAgICAgICBkaXNwYXRjaFNldFN0YXRlSW50ZXJuYWwoXG4gICAgICAgICAgICBmaWJlcixcbiAgICAgICAgICAgIHF1ZXVlLFxuICAgICAgICAgICAgZmluaXNoZWRTdGF0ZSxcbiAgICAgICAgICAgIHJlcXVlc3RVcGRhdGVMYW5lKGZpYmVyKVxuICAgICAgICAgICk7XG4gICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICBkaXNwYXRjaFNldFN0YXRlSW50ZXJuYWwoXG4gICAgICAgICAgZmliZXIsXG4gICAgICAgICAgcXVldWUsXG4gICAgICAgICAgeyB0aGVuOiBmdW5jdGlvbiAoKSB7fSwgc3RhdHVzOiBcInJlamVjdGVkXCIsIHJlYXNvbjogZXJyb3IgfSxcbiAgICAgICAgICByZXF1ZXN0VXBkYXRlTGFuZShmaWJlcilcbiAgICAgICAgKTtcbiAgICAgIH0gZmluYWxseSB7XG4gICAgICAgIChSZWFjdERPTVNoYXJlZEludGVybmFscy5wID0gcHJldmlvdXNQcmlvcml0eSksXG4gICAgICAgICAgKFJlYWN0U2hhcmVkSW50ZXJuYWxzLlQgPSBwcmV2VHJhbnNpdGlvbiksXG4gICAgICAgICAgbnVsbCA9PT0gcHJldlRyYW5zaXRpb24gJiZcbiAgICAgICAgICAgIGN1cnJlbnRUcmFuc2l0aW9uLl91cGRhdGVkRmliZXJzICYmXG4gICAgICAgICAgICAoKGZpYmVyID0gY3VycmVudFRyYW5zaXRpb24uX3VwZGF0ZWRGaWJlcnMuc2l6ZSksXG4gICAgICAgICAgICBjdXJyZW50VHJhbnNpdGlvbi5fdXBkYXRlZEZpYmVycy5jbGVhcigpLFxuICAgICAgICAgICAgMTAgPCBmaWJlciAmJlxuICAgICAgICAgICAgICBjb25zb2xlLndhcm4oXG4gICAgICAgICAgICAgICAgXCJEZXRlY3RlZCBhIGxhcmdlIG51bWJlciBvZiB1cGRhdGVzIGluc2lkZSBzdGFydFRyYW5zaXRpb24uIElmIHRoaXMgaXMgZHVlIHRvIGEgc3Vic2NyaXB0aW9uIHBsZWFzZSByZS13cml0ZSBpdCB0byB1c2UgUmVhY3QgcHJvdmlkZWQgaG9va3MuIE90aGVyd2lzZSBjb25jdXJyZW50IG1vZGUgZ3VhcmFudGVlcyBhcmUgb2ZmIHRoZSB0YWJsZS5cIlxuICAgICAgICAgICAgICApKTtcbiAgICAgIH1cbiAgICB9XG4gICAgZnVuY3Rpb24gc3RhcnRIb3N0VHJhbnNpdGlvbihmb3JtRmliZXIsIHBlbmRpbmdTdGF0ZSwgYWN0aW9uLCBmb3JtRGF0YSkge1xuICAgICAgaWYgKDUgIT09IGZvcm1GaWJlci50YWcpXG4gICAgICAgIHRocm93IEVycm9yKFxuICAgICAgICAgIFwiRXhwZWN0ZWQgdGhlIGZvcm0gaW5zdGFuY2UgdG8gYmUgYSBIb3N0Q29tcG9uZW50LiBUaGlzIGlzIGEgYnVnIGluIFJlYWN0LlwiXG4gICAgICAgICk7XG4gICAgICB2YXIgcXVldWUgPSBlbnN1cmVGb3JtQ29tcG9uZW50SXNTdGF0ZWZ1bChmb3JtRmliZXIpLnF1ZXVlO1xuICAgICAgc3RhcnRUcmFuc2l0aW9uKFxuICAgICAgICBmb3JtRmliZXIsXG4gICAgICAgIHF1ZXVlLFxuICAgICAgICBwZW5kaW5nU3RhdGUsXG4gICAgICAgIE5vdFBlbmRpbmdUcmFuc2l0aW9uLFxuICAgICAgICBudWxsID09PSBhY3Rpb25cbiAgICAgICAgICA/IG5vb3AkMlxuICAgICAgICAgIDogZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICByZXF1ZXN0Rm9ybVJlc2V0JDEoZm9ybUZpYmVyKTtcbiAgICAgICAgICAgICAgcmV0dXJuIGFjdGlvbihmb3JtRGF0YSk7XG4gICAgICAgICAgICB9XG4gICAgICApO1xuICAgIH1cbiAgICBmdW5jdGlvbiBlbnN1cmVGb3JtQ29tcG9uZW50SXNTdGF0ZWZ1bChmb3JtRmliZXIpIHtcbiAgICAgIHZhciBleGlzdGluZ1N0YXRlSG9vayA9IGZvcm1GaWJlci5tZW1vaXplZFN0YXRlO1xuICAgICAgaWYgKG51bGwgIT09IGV4aXN0aW5nU3RhdGVIb29rKSByZXR1cm4gZXhpc3RpbmdTdGF0ZUhvb2s7XG4gICAgICBleGlzdGluZ1N0YXRlSG9vayA9IHtcbiAgICAgICAgbWVtb2l6ZWRTdGF0ZTogTm90UGVuZGluZ1RyYW5zaXRpb24sXG4gICAgICAgIGJhc2VTdGF0ZTogTm90UGVuZGluZ1RyYW5zaXRpb24sXG4gICAgICAgIGJhc2VRdWV1ZTogbnVsbCxcbiAgICAgICAgcXVldWU6IHtcbiAgICAgICAgICBwZW5kaW5nOiBudWxsLFxuICAgICAgICAgIGxhbmVzOiAwLFxuICAgICAgICAgIGRpc3BhdGNoOiBudWxsLFxuICAgICAgICAgIGxhc3RSZW5kZXJlZFJlZHVjZXI6IGJhc2ljU3RhdGVSZWR1Y2VyLFxuICAgICAgICAgIGxhc3RSZW5kZXJlZFN0YXRlOiBOb3RQZW5kaW5nVHJhbnNpdGlvblxuICAgICAgICB9LFxuICAgICAgICBuZXh0OiBudWxsXG4gICAgICB9O1xuICAgICAgdmFyIGluaXRpYWxSZXNldFN0YXRlID0ge307XG4gICAgICBleGlzdGluZ1N0YXRlSG9vay5uZXh0ID0ge1xuICAgICAgICBtZW1vaXplZFN0YXRlOiBpbml0aWFsUmVzZXRTdGF0ZSxcbiAgICAgICAgYmFzZVN0YXRlOiBpbml0aWFsUmVzZXRTdGF0ZSxcbiAgICAgICAgYmFzZVF1ZXVlOiBudWxsLFxuICAgICAgICBxdWV1ZToge1xuICAgICAgICAgIHBlbmRpbmc6IG51bGwsXG4gICAgICAgICAgbGFuZXM6IDAsXG4gICAgICAgICAgZGlzcGF0Y2g6IG51bGwsXG4gICAgICAgICAgbGFzdFJlbmRlcmVkUmVkdWNlcjogYmFzaWNTdGF0ZVJlZHVjZXIsXG4gICAgICAgICAgbGFzdFJlbmRlcmVkU3RhdGU6IGluaXRpYWxSZXNldFN0YXRlXG4gICAgICAgIH0sXG4gICAgICAgIG5leHQ6IG51bGxcbiAgICAgIH07XG4gICAgICBmb3JtRmliZXIubWVtb2l6ZWRTdGF0ZSA9IGV4aXN0aW5nU3RhdGVIb29rO1xuICAgICAgZm9ybUZpYmVyID0gZm9ybUZpYmVyLmFsdGVybmF0ZTtcbiAgICAgIG51bGwgIT09IGZvcm1GaWJlciAmJiAoZm9ybUZpYmVyLm1lbW9pemVkU3RhdGUgPSBleGlzdGluZ1N0YXRlSG9vayk7XG4gICAgICByZXR1cm4gZXhpc3RpbmdTdGF0ZUhvb2s7XG4gICAgfVxuICAgIGZ1bmN0aW9uIHJlcXVlc3RGb3JtUmVzZXQkMShmb3JtRmliZXIpIHtcbiAgICAgIG51bGwgPT09IFJlYWN0U2hhcmVkSW50ZXJuYWxzLlQgJiZcbiAgICAgICAgY29uc29sZS5lcnJvcihcbiAgICAgICAgICBcInJlcXVlc3RGb3JtUmVzZXQgd2FzIGNhbGxlZCBvdXRzaWRlIGEgdHJhbnNpdGlvbiBvciBhY3Rpb24uIFRvIGZpeCwgbW92ZSB0byBhbiBhY3Rpb24sIG9yIHdyYXAgd2l0aCBzdGFydFRyYW5zaXRpb24uXCJcbiAgICAgICAgKTtcbiAgICAgIHZhciByZXNldFN0YXRlUXVldWUgPSBlbnN1cmVGb3JtQ29tcG9uZW50SXNTdGF0ZWZ1bChmb3JtRmliZXIpLm5leHQucXVldWU7XG4gICAgICBkaXNwYXRjaFNldFN0YXRlSW50ZXJuYWwoXG4gICAgICAgIGZvcm1GaWJlcixcbiAgICAgICAgcmVzZXRTdGF0ZVF1ZXVlLFxuICAgICAgICB7fSxcbiAgICAgICAgcmVxdWVzdFVwZGF0ZUxhbmUoZm9ybUZpYmVyKVxuICAgICAgKTtcbiAgICB9XG4gICAgZnVuY3Rpb24gbW91bnRUcmFuc2l0aW9uKCkge1xuICAgICAgdmFyIHN0YXRlSG9vayA9IG1vdW50U3RhdGVJbXBsKCExKTtcbiAgICAgIHN0YXRlSG9vayA9IHN0YXJ0VHJhbnNpdGlvbi5iaW5kKFxuICAgICAgICBudWxsLFxuICAgICAgICBjdXJyZW50bHlSZW5kZXJpbmdGaWJlcixcbiAgICAgICAgc3RhdGVIb29rLnF1ZXVlLFxuICAgICAgICAhMCxcbiAgICAgICAgITFcbiAgICAgICk7XG4gICAgICBtb3VudFdvcmtJblByb2dyZXNzSG9vaygpLm1lbW9pemVkU3RhdGUgPSBzdGF0ZUhvb2s7XG4gICAgICByZXR1cm4gWyExLCBzdGF0ZUhvb2tdO1xuICAgIH1cbiAgICBmdW5jdGlvbiB1cGRhdGVUcmFuc2l0aW9uKCkge1xuICAgICAgdmFyIGJvb2xlYW5PclRoZW5hYmxlID0gdXBkYXRlUmVkdWNlcihiYXNpY1N0YXRlUmVkdWNlcilbMF0sXG4gICAgICAgIHN0YXJ0ID0gdXBkYXRlV29ya0luUHJvZ3Jlc3NIb29rKCkubWVtb2l6ZWRTdGF0ZTtcbiAgICAgIHJldHVybiBbXG4gICAgICAgIFwiYm9vbGVhblwiID09PSB0eXBlb2YgYm9vbGVhbk9yVGhlbmFibGVcbiAgICAgICAgICA/IGJvb2xlYW5PclRoZW5hYmxlXG4gICAgICAgICAgOiB1c2VUaGVuYWJsZShib29sZWFuT3JUaGVuYWJsZSksXG4gICAgICAgIHN0YXJ0XG4gICAgICBdO1xuICAgIH1cbiAgICBmdW5jdGlvbiByZXJlbmRlclRyYW5zaXRpb24oKSB7XG4gICAgICB2YXIgYm9vbGVhbk9yVGhlbmFibGUgPSByZXJlbmRlclJlZHVjZXIoYmFzaWNTdGF0ZVJlZHVjZXIpWzBdLFxuICAgICAgICBzdGFydCA9IHVwZGF0ZVdvcmtJblByb2dyZXNzSG9vaygpLm1lbW9pemVkU3RhdGU7XG4gICAgICByZXR1cm4gW1xuICAgICAgICBcImJvb2xlYW5cIiA9PT0gdHlwZW9mIGJvb2xlYW5PclRoZW5hYmxlXG4gICAgICAgICAgPyBib29sZWFuT3JUaGVuYWJsZVxuICAgICAgICAgIDogdXNlVGhlbmFibGUoYm9vbGVhbk9yVGhlbmFibGUpLFxuICAgICAgICBzdGFydFxuICAgICAgXTtcbiAgICB9XG4gICAgZnVuY3Rpb24gdXNlSG9zdFRyYW5zaXRpb25TdGF0dXMoKSB7XG4gICAgICByZXR1cm4gcmVhZENvbnRleHQoSG9zdFRyYW5zaXRpb25Db250ZXh0KTtcbiAgICB9XG4gICAgZnVuY3Rpb24gbW91bnRJZCgpIHtcbiAgICAgIHZhciBob29rID0gbW91bnRXb3JrSW5Qcm9ncmVzc0hvb2soKSxcbiAgICAgICAgaWRlbnRpZmllclByZWZpeCA9IHdvcmtJblByb2dyZXNzUm9vdC5pZGVudGlmaWVyUHJlZml4O1xuICAgICAgaWYgKGlzSHlkcmF0aW5nKSB7XG4gICAgICAgIHZhciB0cmVlSWQgPSB0cmVlQ29udGV4dE92ZXJmbG93O1xuICAgICAgICB2YXIgaWRXaXRoTGVhZGluZ0JpdCA9IHRyZWVDb250ZXh0SWQ7XG4gICAgICAgIHRyZWVJZCA9XG4gICAgICAgICAgKFxuICAgICAgICAgICAgaWRXaXRoTGVhZGluZ0JpdCAmIH4oMSA8PCAoMzIgLSBjbHozMihpZFdpdGhMZWFkaW5nQml0KSAtIDEpKVxuICAgICAgICAgICkudG9TdHJpbmcoMzIpICsgdHJlZUlkO1xuICAgICAgICBpZGVudGlmaWVyUHJlZml4ID0gXCJcXHUwMGFiXCIgKyBpZGVudGlmaWVyUHJlZml4ICsgXCJSXCIgKyB0cmVlSWQ7XG4gICAgICAgIHRyZWVJZCA9IGxvY2FsSWRDb3VudGVyKys7XG4gICAgICAgIDAgPCB0cmVlSWQgJiYgKGlkZW50aWZpZXJQcmVmaXggKz0gXCJIXCIgKyB0cmVlSWQudG9TdHJpbmcoMzIpKTtcbiAgICAgICAgaWRlbnRpZmllclByZWZpeCArPSBcIlxcdTAwYmJcIjtcbiAgICAgIH0gZWxzZVxuICAgICAgICAodHJlZUlkID0gZ2xvYmFsQ2xpZW50SWRDb3VudGVyKyspLFxuICAgICAgICAgIChpZGVudGlmaWVyUHJlZml4ID1cbiAgICAgICAgICAgIFwiXFx1MDBhYlwiICsgaWRlbnRpZmllclByZWZpeCArIFwiclwiICsgdHJlZUlkLnRvU3RyaW5nKDMyKSArIFwiXFx1MDBiYlwiKTtcbiAgICAgIHJldHVybiAoaG9vay5tZW1vaXplZFN0YXRlID0gaWRlbnRpZmllclByZWZpeCk7XG4gICAgfVxuICAgIGZ1bmN0aW9uIG1vdW50UmVmcmVzaCgpIHtcbiAgICAgIHJldHVybiAobW91bnRXb3JrSW5Qcm9ncmVzc0hvb2soKS5tZW1vaXplZFN0YXRlID0gcmVmcmVzaENhY2hlLmJpbmQoXG4gICAgICAgIG51bGwsXG4gICAgICAgIGN1cnJlbnRseVJlbmRlcmluZ0ZpYmVyXG4gICAgICApKTtcbiAgICB9XG4gICAgZnVuY3Rpb24gcmVmcmVzaENhY2hlKGZpYmVyLCBzZWVkS2V5KSB7XG4gICAgICBmb3IgKHZhciBwcm92aWRlciA9IGZpYmVyLnJldHVybjsgbnVsbCAhPT0gcHJvdmlkZXI7ICkge1xuICAgICAgICBzd2l0Y2ggKHByb3ZpZGVyLnRhZykge1xuICAgICAgICAgIGNhc2UgMjQ6XG4gICAgICAgICAgY2FzZSAzOlxuICAgICAgICAgICAgdmFyIGxhbmUgPSByZXF1ZXN0VXBkYXRlTGFuZShwcm92aWRlcik7XG4gICAgICAgICAgICBmaWJlciA9IGNyZWF0ZVVwZGF0ZShsYW5lKTtcbiAgICAgICAgICAgIHZhciByb290ID0gZW5xdWV1ZVVwZGF0ZShwcm92aWRlciwgZmliZXIsIGxhbmUpO1xuICAgICAgICAgICAgbnVsbCAhPT0gcm9vdCAmJlxuICAgICAgICAgICAgICAoc2NoZWR1bGVVcGRhdGVPbkZpYmVyKHJvb3QsIHByb3ZpZGVyLCBsYW5lKSxcbiAgICAgICAgICAgICAgZW50YW5nbGVUcmFuc2l0aW9ucyhyb290LCBwcm92aWRlciwgbGFuZSkpO1xuICAgICAgICAgICAgcHJvdmlkZXIgPSBjcmVhdGVDYWNoZSgpO1xuICAgICAgICAgICAgbnVsbCAhPT0gc2VlZEtleSAmJlxuICAgICAgICAgICAgICB2b2lkIDAgIT09IHNlZWRLZXkgJiZcbiAgICAgICAgICAgICAgbnVsbCAhPT0gcm9vdCAmJlxuICAgICAgICAgICAgICBjb25zb2xlLmVycm9yKFxuICAgICAgICAgICAgICAgIFwiVGhlIHNlZWQgYXJndW1lbnQgaXMgbm90IGVuYWJsZWQgb3V0c2lkZSBleHBlcmltZW50YWwgY2hhbm5lbHMuXCJcbiAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIGZpYmVyLnBheWxvYWQgPSB7IGNhY2hlOiBwcm92aWRlciB9O1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHByb3ZpZGVyID0gcHJvdmlkZXIucmV0dXJuO1xuICAgICAgfVxuICAgIH1cbiAgICBmdW5jdGlvbiBkaXNwYXRjaFJlZHVjZXJBY3Rpb24oZmliZXIsIHF1ZXVlLCBhY3Rpb24pIHtcbiAgICAgIHZhciBhcmdzID0gYXJndW1lbnRzO1xuICAgICAgXCJmdW5jdGlvblwiID09PSB0eXBlb2YgYXJnc1szXSAmJlxuICAgICAgICBjb25zb2xlLmVycm9yKFxuICAgICAgICAgIFwiU3RhdGUgdXBkYXRlcyBmcm9tIHRoZSB1c2VTdGF0ZSgpIGFuZCB1c2VSZWR1Y2VyKCkgSG9va3MgZG9uJ3Qgc3VwcG9ydCB0aGUgc2Vjb25kIGNhbGxiYWNrIGFyZ3VtZW50LiBUbyBleGVjdXRlIGEgc2lkZSBlZmZlY3QgYWZ0ZXIgcmVuZGVyaW5nLCBkZWNsYXJlIGl0IGluIHRoZSBjb21wb25lbnQgYm9keSB3aXRoIHVzZUVmZmVjdCgpLlwiXG4gICAgICAgICk7XG4gICAgICBhcmdzID0gcmVxdWVzdFVwZGF0ZUxhbmUoZmliZXIpO1xuICAgICAgdmFyIHVwZGF0ZSA9IHtcbiAgICAgICAgbGFuZTogYXJncyxcbiAgICAgICAgcmV2ZXJ0TGFuZTogMCxcbiAgICAgICAgYWN0aW9uOiBhY3Rpb24sXG4gICAgICAgIGhhc0VhZ2VyU3RhdGU6ICExLFxuICAgICAgICBlYWdlclN0YXRlOiBudWxsLFxuICAgICAgICBuZXh0OiBudWxsXG4gICAgICB9O1xuICAgICAgaXNSZW5kZXJQaGFzZVVwZGF0ZShmaWJlcilcbiAgICAgICAgPyBlbnF1ZXVlUmVuZGVyUGhhc2VVcGRhdGUocXVldWUsIHVwZGF0ZSlcbiAgICAgICAgOiAoKHVwZGF0ZSA9IGVucXVldWVDb25jdXJyZW50SG9va1VwZGF0ZShmaWJlciwgcXVldWUsIHVwZGF0ZSwgYXJncykpLFxuICAgICAgICAgIG51bGwgIT09IHVwZGF0ZSAmJlxuICAgICAgICAgICAgKHNjaGVkdWxlVXBkYXRlT25GaWJlcih1cGRhdGUsIGZpYmVyLCBhcmdzKSxcbiAgICAgICAgICAgIGVudGFuZ2xlVHJhbnNpdGlvblVwZGF0ZSh1cGRhdGUsIHF1ZXVlLCBhcmdzKSkpO1xuICAgICAgbWFya1N0YXRlVXBkYXRlU2NoZWR1bGVkKGZpYmVyLCBhcmdzKTtcbiAgICB9XG4gICAgZnVuY3Rpb24gZGlzcGF0Y2hTZXRTdGF0ZShmaWJlciwgcXVldWUsIGFjdGlvbikge1xuICAgICAgdmFyIGFyZ3MgPSBhcmd1bWVudHM7XG4gICAgICBcImZ1bmN0aW9uXCIgPT09IHR5cGVvZiBhcmdzWzNdICYmXG4gICAgICAgIGNvbnNvbGUuZXJyb3IoXG4gICAgICAgICAgXCJTdGF0ZSB1cGRhdGVzIGZyb20gdGhlIHVzZVN0YXRlKCkgYW5kIHVzZVJlZHVjZXIoKSBIb29rcyBkb24ndCBzdXBwb3J0IHRoZSBzZWNvbmQgY2FsbGJhY2sgYXJndW1lbnQuIFRvIGV4ZWN1dGUgYSBzaWRlIGVmZmVjdCBhZnRlciByZW5kZXJpbmcsIGRlY2xhcmUgaXQgaW4gdGhlIGNvbXBvbmVudCBib2R5IHdpdGggdXNlRWZmZWN0KCkuXCJcbiAgICAgICAgKTtcbiAgICAgIGFyZ3MgPSByZXF1ZXN0VXBkYXRlTGFuZShmaWJlcik7XG4gICAgICBkaXNwYXRjaFNldFN0YXRlSW50ZXJuYWwoZmliZXIsIHF1ZXVlLCBhY3Rpb24sIGFyZ3MpO1xuICAgICAgbWFya1N0YXRlVXBkYXRlU2NoZWR1bGVkKGZpYmVyLCBhcmdzKTtcbiAgICB9XG4gICAgZnVuY3Rpb24gZGlzcGF0Y2hTZXRTdGF0ZUludGVybmFsKGZpYmVyLCBxdWV1ZSwgYWN0aW9uLCBsYW5lKSB7XG4gICAgICB2YXIgdXBkYXRlID0ge1xuICAgICAgICBsYW5lOiBsYW5lLFxuICAgICAgICByZXZlcnRMYW5lOiAwLFxuICAgICAgICBhY3Rpb246IGFjdGlvbixcbiAgICAgICAgaGFzRWFnZXJTdGF0ZTogITEsXG4gICAgICAgIGVhZ2VyU3RhdGU6IG51bGwsXG4gICAgICAgIG5leHQ6IG51bGxcbiAgICAgIH07XG4gICAgICBpZiAoaXNSZW5kZXJQaGFzZVVwZGF0ZShmaWJlcikpIGVucXVldWVSZW5kZXJQaGFzZVVwZGF0ZShxdWV1ZSwgdXBkYXRlKTtcbiAgICAgIGVsc2Uge1xuICAgICAgICB2YXIgYWx0ZXJuYXRlID0gZmliZXIuYWx0ZXJuYXRlO1xuICAgICAgICBpZiAoXG4gICAgICAgICAgMCA9PT0gZmliZXIubGFuZXMgJiZcbiAgICAgICAgICAobnVsbCA9PT0gYWx0ZXJuYXRlIHx8IDAgPT09IGFsdGVybmF0ZS5sYW5lcykgJiZcbiAgICAgICAgICAoKGFsdGVybmF0ZSA9IHF1ZXVlLmxhc3RSZW5kZXJlZFJlZHVjZXIpLCBudWxsICE9PSBhbHRlcm5hdGUpXG4gICAgICAgICkge1xuICAgICAgICAgIHZhciBwcmV2RGlzcGF0Y2hlciA9IFJlYWN0U2hhcmVkSW50ZXJuYWxzLkg7XG4gICAgICAgICAgUmVhY3RTaGFyZWRJbnRlcm5hbHMuSCA9IEludmFsaWROZXN0ZWRIb29rc0Rpc3BhdGNoZXJPblVwZGF0ZUluREVWO1xuICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICB2YXIgY3VycmVudFN0YXRlID0gcXVldWUubGFzdFJlbmRlcmVkU3RhdGUsXG4gICAgICAgICAgICAgIGVhZ2VyU3RhdGUgPSBhbHRlcm5hdGUoY3VycmVudFN0YXRlLCBhY3Rpb24pO1xuICAgICAgICAgICAgdXBkYXRlLmhhc0VhZ2VyU3RhdGUgPSAhMDtcbiAgICAgICAgICAgIHVwZGF0ZS5lYWdlclN0YXRlID0gZWFnZXJTdGF0ZTtcbiAgICAgICAgICAgIGlmIChvYmplY3RJcyhlYWdlclN0YXRlLCBjdXJyZW50U3RhdGUpKVxuICAgICAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgICAgIGVucXVldWVVcGRhdGUkMShmaWJlciwgcXVldWUsIHVwZGF0ZSwgMCksXG4gICAgICAgICAgICAgICAgbnVsbCA9PT0gd29ya0luUHJvZ3Jlc3NSb290ICYmXG4gICAgICAgICAgICAgICAgICBmaW5pc2hRdWV1ZWluZ0NvbmN1cnJlbnRVcGRhdGVzKCksXG4gICAgICAgICAgICAgICAgITFcbiAgICAgICAgICAgICAgKTtcbiAgICAgICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICAgIH0gZmluYWxseSB7XG4gICAgICAgICAgICBSZWFjdFNoYXJlZEludGVybmFscy5IID0gcHJldkRpc3BhdGNoZXI7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGFjdGlvbiA9IGVucXVldWVDb25jdXJyZW50SG9va1VwZGF0ZShmaWJlciwgcXVldWUsIHVwZGF0ZSwgbGFuZSk7XG4gICAgICAgIGlmIChudWxsICE9PSBhY3Rpb24pXG4gICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgIHNjaGVkdWxlVXBkYXRlT25GaWJlcihhY3Rpb24sIGZpYmVyLCBsYW5lKSxcbiAgICAgICAgICAgIGVudGFuZ2xlVHJhbnNpdGlvblVwZGF0ZShhY3Rpb24sIHF1ZXVlLCBsYW5lKSxcbiAgICAgICAgICAgICEwXG4gICAgICAgICAgKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiAhMTtcbiAgICB9XG4gICAgZnVuY3Rpb24gZGlzcGF0Y2hPcHRpbWlzdGljU2V0U3RhdGUoXG4gICAgICBmaWJlcixcbiAgICAgIHRocm93SWZEdXJpbmdSZW5kZXIsXG4gICAgICBxdWV1ZSxcbiAgICAgIGFjdGlvblxuICAgICkge1xuICAgICAgbnVsbCA9PT0gUmVhY3RTaGFyZWRJbnRlcm5hbHMuVCAmJlxuICAgICAgICAwID09PSBjdXJyZW50RW50YW5nbGVkTGFuZSAmJlxuICAgICAgICBjb25zb2xlLmVycm9yKFxuICAgICAgICAgIFwiQW4gb3B0aW1pc3RpYyBzdGF0ZSB1cGRhdGUgb2NjdXJyZWQgb3V0c2lkZSBhIHRyYW5zaXRpb24gb3IgYWN0aW9uLiBUbyBmaXgsIG1vdmUgdGhlIHVwZGF0ZSB0byBhbiBhY3Rpb24sIG9yIHdyYXAgd2l0aCBzdGFydFRyYW5zaXRpb24uXCJcbiAgICAgICAgKTtcbiAgICAgIGFjdGlvbiA9IHtcbiAgICAgICAgbGFuZTogMixcbiAgICAgICAgcmV2ZXJ0TGFuZTogcmVxdWVzdFRyYW5zaXRpb25MYW5lKCksXG4gICAgICAgIGFjdGlvbjogYWN0aW9uLFxuICAgICAgICBoYXNFYWdlclN0YXRlOiAhMSxcbiAgICAgICAgZWFnZXJTdGF0ZTogbnVsbCxcbiAgICAgICAgbmV4dDogbnVsbFxuICAgICAgfTtcbiAgICAgIGlmIChpc1JlbmRlclBoYXNlVXBkYXRlKGZpYmVyKSkge1xuICAgICAgICBpZiAodGhyb3dJZkR1cmluZ1JlbmRlcilcbiAgICAgICAgICB0aHJvdyBFcnJvcihcIkNhbm5vdCB1cGRhdGUgb3B0aW1pc3RpYyBzdGF0ZSB3aGlsZSByZW5kZXJpbmcuXCIpO1xuICAgICAgICBjb25zb2xlLmVycm9yKFwiQ2Fubm90IGNhbGwgc3RhcnRUcmFuc2l0aW9uIHdoaWxlIHJlbmRlcmluZy5cIik7XG4gICAgICB9IGVsc2VcbiAgICAgICAgKHRocm93SWZEdXJpbmdSZW5kZXIgPSBlbnF1ZXVlQ29uY3VycmVudEhvb2tVcGRhdGUoXG4gICAgICAgICAgZmliZXIsXG4gICAgICAgICAgcXVldWUsXG4gICAgICAgICAgYWN0aW9uLFxuICAgICAgICAgIDJcbiAgICAgICAgKSksXG4gICAgICAgICAgbnVsbCAhPT0gdGhyb3dJZkR1cmluZ1JlbmRlciAmJlxuICAgICAgICAgICAgc2NoZWR1bGVVcGRhdGVPbkZpYmVyKHRocm93SWZEdXJpbmdSZW5kZXIsIGZpYmVyLCAyKTtcbiAgICAgIG1hcmtTdGF0ZVVwZGF0ZVNjaGVkdWxlZChmaWJlciwgMik7XG4gICAgfVxuICAgIGZ1bmN0aW9uIGlzUmVuZGVyUGhhc2VVcGRhdGUoZmliZXIpIHtcbiAgICAgIHZhciBhbHRlcm5hdGUgPSBmaWJlci5hbHRlcm5hdGU7XG4gICAgICByZXR1cm4gKFxuICAgICAgICBmaWJlciA9PT0gY3VycmVudGx5UmVuZGVyaW5nRmliZXIgfHxcbiAgICAgICAgKG51bGwgIT09IGFsdGVybmF0ZSAmJiBhbHRlcm5hdGUgPT09IGN1cnJlbnRseVJlbmRlcmluZ0ZpYmVyKVxuICAgICAgKTtcbiAgICB9XG4gICAgZnVuY3Rpb24gZW5xdWV1ZVJlbmRlclBoYXNlVXBkYXRlKHF1ZXVlLCB1cGRhdGUpIHtcbiAgICAgIGRpZFNjaGVkdWxlUmVuZGVyUGhhc2VVcGRhdGVEdXJpbmdUaGlzUGFzcyA9XG4gICAgICAgIGRpZFNjaGVkdWxlUmVuZGVyUGhhc2VVcGRhdGUgPSAhMDtcbiAgICAgIHZhciBwZW5kaW5nID0gcXVldWUucGVuZGluZztcbiAgICAgIG51bGwgPT09IHBlbmRpbmdcbiAgICAgICAgPyAodXBkYXRlLm5leHQgPSB1cGRhdGUpXG4gICAgICAgIDogKCh1cGRhdGUubmV4dCA9IHBlbmRpbmcubmV4dCksIChwZW5kaW5nLm5leHQgPSB1cGRhdGUpKTtcbiAgICAgIHF1ZXVlLnBlbmRpbmcgPSB1cGRhdGU7XG4gICAgfVxuICAgIGZ1bmN0aW9uIGVudGFuZ2xlVHJhbnNpdGlvblVwZGF0ZShyb290LCBxdWV1ZSwgbGFuZSkge1xuICAgICAgaWYgKDAgIT09IChsYW5lICYgNDE5NDA0OCkpIHtcbiAgICAgICAgdmFyIHF1ZXVlTGFuZXMgPSBxdWV1ZS5sYW5lcztcbiAgICAgICAgcXVldWVMYW5lcyAmPSByb290LnBlbmRpbmdMYW5lcztcbiAgICAgICAgbGFuZSB8PSBxdWV1ZUxhbmVzO1xuICAgICAgICBxdWV1ZS5sYW5lcyA9IGxhbmU7XG4gICAgICAgIG1hcmtSb290RW50YW5nbGVkKHJvb3QsIGxhbmUpO1xuICAgICAgfVxuICAgIH1cbiAgICBmdW5jdGlvbiBwdXNoRGVidWdJbmZvKGRlYnVnSW5mbykge1xuICAgICAgdmFyIHByZXZpb3VzRGVidWdJbmZvID0gY3VycmVudERlYnVnSW5mbztcbiAgICAgIG51bGwgIT0gZGVidWdJbmZvICYmXG4gICAgICAgIChjdXJyZW50RGVidWdJbmZvID1cbiAgICAgICAgICBudWxsID09PSBwcmV2aW91c0RlYnVnSW5mb1xuICAgICAgICAgICAgPyBkZWJ1Z0luZm9cbiAgICAgICAgICAgIDogcHJldmlvdXNEZWJ1Z0luZm8uY29uY2F0KGRlYnVnSW5mbykpO1xuICAgICAgcmV0dXJuIHByZXZpb3VzRGVidWdJbmZvO1xuICAgIH1cbiAgICBmdW5jdGlvbiB2YWxpZGF0ZUZyYWdtZW50UHJvcHMoZWxlbWVudCwgZmliZXIsIHJldHVybkZpYmVyKSB7XG4gICAgICBmb3IgKHZhciBrZXlzID0gT2JqZWN0LmtleXMoZWxlbWVudC5wcm9wcyksIGkgPSAwOyBpIDwga2V5cy5sZW5ndGg7IGkrKykge1xuICAgICAgICB2YXIga2V5ID0ga2V5c1tpXTtcbiAgICAgICAgaWYgKFwiY2hpbGRyZW5cIiAhPT0ga2V5ICYmIFwia2V5XCIgIT09IGtleSkge1xuICAgICAgICAgIG51bGwgPT09IGZpYmVyICYmXG4gICAgICAgICAgICAoKGZpYmVyID0gY3JlYXRlRmliZXJGcm9tRWxlbWVudChlbGVtZW50LCByZXR1cm5GaWJlci5tb2RlLCAwKSksXG4gICAgICAgICAgICAoZmliZXIuX2RlYnVnSW5mbyA9IGN1cnJlbnREZWJ1Z0luZm8pLFxuICAgICAgICAgICAgKGZpYmVyLnJldHVybiA9IHJldHVybkZpYmVyKSk7XG4gICAgICAgICAgcnVuV2l0aEZpYmVySW5ERVYoXG4gICAgICAgICAgICBmaWJlcixcbiAgICAgICAgICAgIGZ1bmN0aW9uIChlcnJvcmVkS2V5KSB7XG4gICAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoXG4gICAgICAgICAgICAgICAgXCJJbnZhbGlkIHByb3AgYCVzYCBzdXBwbGllZCB0byBgUmVhY3QuRnJhZ21lbnRgLiBSZWFjdC5GcmFnbWVudCBjYW4gb25seSBoYXZlIGBrZXlgIGFuZCBgY2hpbGRyZW5gIHByb3BzLlwiLFxuICAgICAgICAgICAgICAgIGVycm9yZWRLZXlcbiAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBrZXlcbiAgICAgICAgICApO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgIGZ1bmN0aW9uIHVud3JhcFRoZW5hYmxlKHRoZW5hYmxlKSB7XG4gICAgICB2YXIgaW5kZXggPSB0aGVuYWJsZUluZGV4Q291bnRlcjtcbiAgICAgIHRoZW5hYmxlSW5kZXhDb3VudGVyICs9IDE7XG4gICAgICBudWxsID09PSB0aGVuYWJsZVN0YXRlICYmICh0aGVuYWJsZVN0YXRlID0gY3JlYXRlVGhlbmFibGVTdGF0ZSgpKTtcbiAgICAgIHJldHVybiB0cmFja1VzZWRUaGVuYWJsZSh0aGVuYWJsZVN0YXRlLCB0aGVuYWJsZSwgaW5kZXgpO1xuICAgIH1cbiAgICBmdW5jdGlvbiBjb2VyY2VSZWYod29ya0luUHJvZ3Jlc3MsIGVsZW1lbnQpIHtcbiAgICAgIGVsZW1lbnQgPSBlbGVtZW50LnByb3BzLnJlZjtcbiAgICAgIHdvcmtJblByb2dyZXNzLnJlZiA9IHZvaWQgMCAhPT0gZWxlbWVudCA/IGVsZW1lbnQgOiBudWxsO1xuICAgIH1cbiAgICBmdW5jdGlvbiB0aHJvd09uSW52YWxpZE9iamVjdFR5cGUocmV0dXJuRmliZXIsIG5ld0NoaWxkKSB7XG4gICAgICBpZiAobmV3Q2hpbGQuJCR0eXBlb2YgPT09IFJFQUNUX0xFR0FDWV9FTEVNRU5UX1RZUEUpXG4gICAgICAgIHRocm93IEVycm9yKFxuICAgICAgICAgICdBIFJlYWN0IEVsZW1lbnQgZnJvbSBhbiBvbGRlciB2ZXJzaW9uIG9mIFJlYWN0IHdhcyByZW5kZXJlZC4gVGhpcyBpcyBub3Qgc3VwcG9ydGVkLiBJdCBjYW4gaGFwcGVuIGlmOlxcbi0gTXVsdGlwbGUgY29waWVzIG9mIHRoZSBcInJlYWN0XCIgcGFja2FnZSBpcyB1c2VkLlxcbi0gQSBsaWJyYXJ5IHByZS1idW5kbGVkIGFuIG9sZCBjb3B5IG9mIFwicmVhY3RcIiBvciBcInJlYWN0L2pzeC1ydW50aW1lXCIuXFxuLSBBIGNvbXBpbGVyIHRyaWVzIHRvIFwiaW5saW5lXCIgSlNYIGluc3RlYWQgb2YgdXNpbmcgdGhlIHJ1bnRpbWUuJ1xuICAgICAgICApO1xuICAgICAgcmV0dXJuRmliZXIgPSBPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwobmV3Q2hpbGQpO1xuICAgICAgdGhyb3cgRXJyb3IoXG4gICAgICAgIFwiT2JqZWN0cyBhcmUgbm90IHZhbGlkIGFzIGEgUmVhY3QgY2hpbGQgKGZvdW5kOiBcIiArXG4gICAgICAgICAgKFwiW29iamVjdCBPYmplY3RdXCIgPT09IHJldHVybkZpYmVyXG4gICAgICAgICAgICA/IFwib2JqZWN0IHdpdGgga2V5cyB7XCIgKyBPYmplY3Qua2V5cyhuZXdDaGlsZCkuam9pbihcIiwgXCIpICsgXCJ9XCJcbiAgICAgICAgICAgIDogcmV0dXJuRmliZXIpICtcbiAgICAgICAgICBcIikuIElmIHlvdSBtZWFudCB0byByZW5kZXIgYSBjb2xsZWN0aW9uIG9mIGNoaWxkcmVuLCB1c2UgYW4gYXJyYXkgaW5zdGVhZC5cIlxuICAgICAgKTtcbiAgICB9XG4gICAgZnVuY3Rpb24gd2Fybk9uRnVuY3Rpb25UeXBlKHJldHVybkZpYmVyLCBpbnZhbGlkQ2hpbGQpIHtcbiAgICAgIHZhciBwYXJlbnROYW1lID0gZ2V0Q29tcG9uZW50TmFtZUZyb21GaWJlcihyZXR1cm5GaWJlcikgfHwgXCJDb21wb25lbnRcIjtcbiAgICAgIG93bmVySGFzRnVuY3Rpb25UeXBlV2FybmluZ1twYXJlbnROYW1lXSB8fFxuICAgICAgICAoKG93bmVySGFzRnVuY3Rpb25UeXBlV2FybmluZ1twYXJlbnROYW1lXSA9ICEwKSxcbiAgICAgICAgKGludmFsaWRDaGlsZCA9XG4gICAgICAgICAgaW52YWxpZENoaWxkLmRpc3BsYXlOYW1lIHx8IGludmFsaWRDaGlsZC5uYW1lIHx8IFwiQ29tcG9uZW50XCIpLFxuICAgICAgICAzID09PSByZXR1cm5GaWJlci50YWdcbiAgICAgICAgICA/IGNvbnNvbGUuZXJyb3IoXG4gICAgICAgICAgICAgIFwiRnVuY3Rpb25zIGFyZSBub3QgdmFsaWQgYXMgYSBSZWFjdCBjaGlsZC4gVGhpcyBtYXkgaGFwcGVuIGlmIHlvdSByZXR1cm4gJXMgaW5zdGVhZCBvZiA8JXMgLz4gZnJvbSByZW5kZXIuIE9yIG1heWJlIHlvdSBtZWFudCB0byBjYWxsIHRoaXMgZnVuY3Rpb24gcmF0aGVyIHRoYW4gcmV0dXJuIGl0LlxcbiAgcm9vdC5yZW5kZXIoJXMpXCIsXG4gICAgICAgICAgICAgIGludmFsaWRDaGlsZCxcbiAgICAgICAgICAgICAgaW52YWxpZENoaWxkLFxuICAgICAgICAgICAgICBpbnZhbGlkQ2hpbGRcbiAgICAgICAgICAgIClcbiAgICAgICAgICA6IGNvbnNvbGUuZXJyb3IoXG4gICAgICAgICAgICAgIFwiRnVuY3Rpb25zIGFyZSBub3QgdmFsaWQgYXMgYSBSZWFjdCBjaGlsZC4gVGhpcyBtYXkgaGFwcGVuIGlmIHlvdSByZXR1cm4gJXMgaW5zdGVhZCBvZiA8JXMgLz4gZnJvbSByZW5kZXIuIE9yIG1heWJlIHlvdSBtZWFudCB0byBjYWxsIHRoaXMgZnVuY3Rpb24gcmF0aGVyIHRoYW4gcmV0dXJuIGl0LlxcbiAgPCVzPnslc308LyVzPlwiLFxuICAgICAgICAgICAgICBpbnZhbGlkQ2hpbGQsXG4gICAgICAgICAgICAgIGludmFsaWRDaGlsZCxcbiAgICAgICAgICAgICAgcGFyZW50TmFtZSxcbiAgICAgICAgICAgICAgaW52YWxpZENoaWxkLFxuICAgICAgICAgICAgICBwYXJlbnROYW1lXG4gICAgICAgICAgICApKTtcbiAgICB9XG4gICAgZnVuY3Rpb24gd2Fybk9uU3ltYm9sVHlwZShyZXR1cm5GaWJlciwgaW52YWxpZENoaWxkKSB7XG4gICAgICB2YXIgcGFyZW50TmFtZSA9IGdldENvbXBvbmVudE5hbWVGcm9tRmliZXIocmV0dXJuRmliZXIpIHx8IFwiQ29tcG9uZW50XCI7XG4gICAgICBvd25lckhhc1N5bWJvbFR5cGVXYXJuaW5nW3BhcmVudE5hbWVdIHx8XG4gICAgICAgICgob3duZXJIYXNTeW1ib2xUeXBlV2FybmluZ1twYXJlbnROYW1lXSA9ICEwKSxcbiAgICAgICAgKGludmFsaWRDaGlsZCA9IFN0cmluZyhpbnZhbGlkQ2hpbGQpKSxcbiAgICAgICAgMyA9PT0gcmV0dXJuRmliZXIudGFnXG4gICAgICAgICAgPyBjb25zb2xlLmVycm9yKFxuICAgICAgICAgICAgICBcIlN5bWJvbHMgYXJlIG5vdCB2YWxpZCBhcyBhIFJlYWN0IGNoaWxkLlxcbiAgcm9vdC5yZW5kZXIoJXMpXCIsXG4gICAgICAgICAgICAgIGludmFsaWRDaGlsZFxuICAgICAgICAgICAgKVxuICAgICAgICAgIDogY29uc29sZS5lcnJvcihcbiAgICAgICAgICAgICAgXCJTeW1ib2xzIGFyZSBub3QgdmFsaWQgYXMgYSBSZWFjdCBjaGlsZC5cXG4gIDwlcz4lczwvJXM+XCIsXG4gICAgICAgICAgICAgIHBhcmVudE5hbWUsXG4gICAgICAgICAgICAgIGludmFsaWRDaGlsZCxcbiAgICAgICAgICAgICAgcGFyZW50TmFtZVxuICAgICAgICAgICAgKSk7XG4gICAgfVxuICAgIGZ1bmN0aW9uIGNyZWF0ZUNoaWxkUmVjb25jaWxlcihzaG91bGRUcmFja1NpZGVFZmZlY3RzKSB7XG4gICAgICBmdW5jdGlvbiBkZWxldGVDaGlsZChyZXR1cm5GaWJlciwgY2hpbGRUb0RlbGV0ZSkge1xuICAgICAgICBpZiAoc2hvdWxkVHJhY2tTaWRlRWZmZWN0cykge1xuICAgICAgICAgIHZhciBkZWxldGlvbnMgPSByZXR1cm5GaWJlci5kZWxldGlvbnM7XG4gICAgICAgICAgbnVsbCA9PT0gZGVsZXRpb25zXG4gICAgICAgICAgICA/ICgocmV0dXJuRmliZXIuZGVsZXRpb25zID0gW2NoaWxkVG9EZWxldGVdKSxcbiAgICAgICAgICAgICAgKHJldHVybkZpYmVyLmZsYWdzIHw9IDE2KSlcbiAgICAgICAgICAgIDogZGVsZXRpb25zLnB1c2goY2hpbGRUb0RlbGV0ZSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIGZ1bmN0aW9uIGRlbGV0ZVJlbWFpbmluZ0NoaWxkcmVuKHJldHVybkZpYmVyLCBjdXJyZW50Rmlyc3RDaGlsZCkge1xuICAgICAgICBpZiAoIXNob3VsZFRyYWNrU2lkZUVmZmVjdHMpIHJldHVybiBudWxsO1xuICAgICAgICBmb3IgKDsgbnVsbCAhPT0gY3VycmVudEZpcnN0Q2hpbGQ7IClcbiAgICAgICAgICBkZWxldGVDaGlsZChyZXR1cm5GaWJlciwgY3VycmVudEZpcnN0Q2hpbGQpLFxuICAgICAgICAgICAgKGN1cnJlbnRGaXJzdENoaWxkID0gY3VycmVudEZpcnN0Q2hpbGQuc2libGluZyk7XG4gICAgICAgIHJldHVybiBudWxsO1xuICAgICAgfVxuICAgICAgZnVuY3Rpb24gbWFwUmVtYWluaW5nQ2hpbGRyZW4oY3VycmVudEZpcnN0Q2hpbGQpIHtcbiAgICAgICAgZm9yICh2YXIgZXhpc3RpbmdDaGlsZHJlbiA9IG5ldyBNYXAoKTsgbnVsbCAhPT0gY3VycmVudEZpcnN0Q2hpbGQ7IClcbiAgICAgICAgICBudWxsICE9PSBjdXJyZW50Rmlyc3RDaGlsZC5rZXlcbiAgICAgICAgICAgID8gZXhpc3RpbmdDaGlsZHJlbi5zZXQoY3VycmVudEZpcnN0Q2hpbGQua2V5LCBjdXJyZW50Rmlyc3RDaGlsZClcbiAgICAgICAgICAgIDogZXhpc3RpbmdDaGlsZHJlbi5zZXQoY3VycmVudEZpcnN0Q2hpbGQuaW5kZXgsIGN1cnJlbnRGaXJzdENoaWxkKSxcbiAgICAgICAgICAgIChjdXJyZW50Rmlyc3RDaGlsZCA9IGN1cnJlbnRGaXJzdENoaWxkLnNpYmxpbmcpO1xuICAgICAgICByZXR1cm4gZXhpc3RpbmdDaGlsZHJlbjtcbiAgICAgIH1cbiAgICAgIGZ1bmN0aW9uIHVzZUZpYmVyKGZpYmVyLCBwZW5kaW5nUHJvcHMpIHtcbiAgICAgICAgZmliZXIgPSBjcmVhdGVXb3JrSW5Qcm9ncmVzcyhmaWJlciwgcGVuZGluZ1Byb3BzKTtcbiAgICAgICAgZmliZXIuaW5kZXggPSAwO1xuICAgICAgICBmaWJlci5zaWJsaW5nID0gbnVsbDtcbiAgICAgICAgcmV0dXJuIGZpYmVyO1xuICAgICAgfVxuICAgICAgZnVuY3Rpb24gcGxhY2VDaGlsZChuZXdGaWJlciwgbGFzdFBsYWNlZEluZGV4LCBuZXdJbmRleCkge1xuICAgICAgICBuZXdGaWJlci5pbmRleCA9IG5ld0luZGV4O1xuICAgICAgICBpZiAoIXNob3VsZFRyYWNrU2lkZUVmZmVjdHMpXG4gICAgICAgICAgcmV0dXJuIChuZXdGaWJlci5mbGFncyB8PSAxMDQ4NTc2KSwgbGFzdFBsYWNlZEluZGV4O1xuICAgICAgICBuZXdJbmRleCA9IG5ld0ZpYmVyLmFsdGVybmF0ZTtcbiAgICAgICAgaWYgKG51bGwgIT09IG5ld0luZGV4KVxuICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAobmV3SW5kZXggPSBuZXdJbmRleC5pbmRleCksXG4gICAgICAgICAgICBuZXdJbmRleCA8IGxhc3RQbGFjZWRJbmRleFxuICAgICAgICAgICAgICA/ICgobmV3RmliZXIuZmxhZ3MgfD0gNjcxMDg4NjYpLCBsYXN0UGxhY2VkSW5kZXgpXG4gICAgICAgICAgICAgIDogbmV3SW5kZXhcbiAgICAgICAgICApO1xuICAgICAgICBuZXdGaWJlci5mbGFncyB8PSA2NzEwODg2NjtcbiAgICAgICAgcmV0dXJuIGxhc3RQbGFjZWRJbmRleDtcbiAgICAgIH1cbiAgICAgIGZ1bmN0aW9uIHBsYWNlU2luZ2xlQ2hpbGQobmV3RmliZXIpIHtcbiAgICAgICAgc2hvdWxkVHJhY2tTaWRlRWZmZWN0cyAmJlxuICAgICAgICAgIG51bGwgPT09IG5ld0ZpYmVyLmFsdGVybmF0ZSAmJlxuICAgICAgICAgIChuZXdGaWJlci5mbGFncyB8PSA2NzEwODg2Nik7XG4gICAgICAgIHJldHVybiBuZXdGaWJlcjtcbiAgICAgIH1cbiAgICAgIGZ1bmN0aW9uIHVwZGF0ZVRleHROb2RlKHJldHVybkZpYmVyLCBjdXJyZW50LCB0ZXh0Q29udGVudCwgbGFuZXMpIHtcbiAgICAgICAgaWYgKG51bGwgPT09IGN1cnJlbnQgfHwgNiAhPT0gY3VycmVudC50YWcpXG4gICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgIChjdXJyZW50ID0gY3JlYXRlRmliZXJGcm9tVGV4dChcbiAgICAgICAgICAgICAgdGV4dENvbnRlbnQsXG4gICAgICAgICAgICAgIHJldHVybkZpYmVyLm1vZGUsXG4gICAgICAgICAgICAgIGxhbmVzXG4gICAgICAgICAgICApKSxcbiAgICAgICAgICAgIChjdXJyZW50LnJldHVybiA9IHJldHVybkZpYmVyKSxcbiAgICAgICAgICAgIChjdXJyZW50Ll9kZWJ1Z093bmVyID0gcmV0dXJuRmliZXIpLFxuICAgICAgICAgICAgKGN1cnJlbnQuX2RlYnVnVGFzayA9IHJldHVybkZpYmVyLl9kZWJ1Z1Rhc2spLFxuICAgICAgICAgICAgKGN1cnJlbnQuX2RlYnVnSW5mbyA9IGN1cnJlbnREZWJ1Z0luZm8pLFxuICAgICAgICAgICAgY3VycmVudFxuICAgICAgICAgICk7XG4gICAgICAgIGN1cnJlbnQgPSB1c2VGaWJlcihjdXJyZW50LCB0ZXh0Q29udGVudCk7XG4gICAgICAgIGN1cnJlbnQucmV0dXJuID0gcmV0dXJuRmliZXI7XG4gICAgICAgIGN1cnJlbnQuX2RlYnVnSW5mbyA9IGN1cnJlbnREZWJ1Z0luZm87XG4gICAgICAgIHJldHVybiBjdXJyZW50O1xuICAgICAgfVxuICAgICAgZnVuY3Rpb24gdXBkYXRlRWxlbWVudChyZXR1cm5GaWJlciwgY3VycmVudCwgZWxlbWVudCwgbGFuZXMpIHtcbiAgICAgICAgdmFyIGVsZW1lbnRUeXBlID0gZWxlbWVudC50eXBlO1xuICAgICAgICBpZiAoZWxlbWVudFR5cGUgPT09IFJFQUNUX0ZSQUdNRU5UX1RZUEUpXG4gICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgIChjdXJyZW50ID0gdXBkYXRlRnJhZ21lbnQoXG4gICAgICAgICAgICAgIHJldHVybkZpYmVyLFxuICAgICAgICAgICAgICBjdXJyZW50LFxuICAgICAgICAgICAgICBlbGVtZW50LnByb3BzLmNoaWxkcmVuLFxuICAgICAgICAgICAgICBsYW5lcyxcbiAgICAgICAgICAgICAgZWxlbWVudC5rZXlcbiAgICAgICAgICAgICkpLFxuICAgICAgICAgICAgdmFsaWRhdGVGcmFnbWVudFByb3BzKGVsZW1lbnQsIGN1cnJlbnQsIHJldHVybkZpYmVyKSxcbiAgICAgICAgICAgIGN1cnJlbnRcbiAgICAgICAgICApO1xuICAgICAgICBpZiAoXG4gICAgICAgICAgbnVsbCAhPT0gY3VycmVudCAmJlxuICAgICAgICAgIChjdXJyZW50LmVsZW1lbnRUeXBlID09PSBlbGVtZW50VHlwZSB8fFxuICAgICAgICAgICAgaXNDb21wYXRpYmxlRmFtaWx5Rm9ySG90UmVsb2FkaW5nKGN1cnJlbnQsIGVsZW1lbnQpIHx8XG4gICAgICAgICAgICAoXCJvYmplY3RcIiA9PT0gdHlwZW9mIGVsZW1lbnRUeXBlICYmXG4gICAgICAgICAgICAgIG51bGwgIT09IGVsZW1lbnRUeXBlICYmXG4gICAgICAgICAgICAgIGVsZW1lbnRUeXBlLiQkdHlwZW9mID09PSBSRUFDVF9MQVpZX1RZUEUgJiZcbiAgICAgICAgICAgICAgY2FsbExhenlJbml0SW5ERVYoZWxlbWVudFR5cGUpID09PSBjdXJyZW50LnR5cGUpKVxuICAgICAgICApXG4gICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgIChjdXJyZW50ID0gdXNlRmliZXIoY3VycmVudCwgZWxlbWVudC5wcm9wcykpLFxuICAgICAgICAgICAgY29lcmNlUmVmKGN1cnJlbnQsIGVsZW1lbnQpLFxuICAgICAgICAgICAgKGN1cnJlbnQucmV0dXJuID0gcmV0dXJuRmliZXIpLFxuICAgICAgICAgICAgKGN1cnJlbnQuX2RlYnVnT3duZXIgPSBlbGVtZW50Ll9vd25lciksXG4gICAgICAgICAgICAoY3VycmVudC5fZGVidWdJbmZvID0gY3VycmVudERlYnVnSW5mbyksXG4gICAgICAgICAgICBjdXJyZW50XG4gICAgICAgICAgKTtcbiAgICAgICAgY3VycmVudCA9IGNyZWF0ZUZpYmVyRnJvbUVsZW1lbnQoZWxlbWVudCwgcmV0dXJuRmliZXIubW9kZSwgbGFuZXMpO1xuICAgICAgICBjb2VyY2VSZWYoY3VycmVudCwgZWxlbWVudCk7XG4gICAgICAgIGN1cnJlbnQucmV0dXJuID0gcmV0dXJuRmliZXI7XG4gICAgICAgIGN1cnJlbnQuX2RlYnVnSW5mbyA9IGN1cnJlbnREZWJ1Z0luZm87XG4gICAgICAgIHJldHVybiBjdXJyZW50O1xuICAgICAgfVxuICAgICAgZnVuY3Rpb24gdXBkYXRlUG9ydGFsKHJldHVybkZpYmVyLCBjdXJyZW50LCBwb3J0YWwsIGxhbmVzKSB7XG4gICAgICAgIGlmIChcbiAgICAgICAgICBudWxsID09PSBjdXJyZW50IHx8XG4gICAgICAgICAgNCAhPT0gY3VycmVudC50YWcgfHxcbiAgICAgICAgICBjdXJyZW50LnN0YXRlTm9kZS5jb250YWluZXJJbmZvICE9PSBwb3J0YWwuY29udGFpbmVySW5mbyB8fFxuICAgICAgICAgIGN1cnJlbnQuc3RhdGVOb2RlLmltcGxlbWVudGF0aW9uICE9PSBwb3J0YWwuaW1wbGVtZW50YXRpb25cbiAgICAgICAgKVxuICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAoY3VycmVudCA9IGNyZWF0ZUZpYmVyRnJvbVBvcnRhbChwb3J0YWwsIHJldHVybkZpYmVyLm1vZGUsIGxhbmVzKSksXG4gICAgICAgICAgICAoY3VycmVudC5yZXR1cm4gPSByZXR1cm5GaWJlciksXG4gICAgICAgICAgICAoY3VycmVudC5fZGVidWdJbmZvID0gY3VycmVudERlYnVnSW5mbyksXG4gICAgICAgICAgICBjdXJyZW50XG4gICAgICAgICAgKTtcbiAgICAgICAgY3VycmVudCA9IHVzZUZpYmVyKGN1cnJlbnQsIHBvcnRhbC5jaGlsZHJlbiB8fCBbXSk7XG4gICAgICAgIGN1cnJlbnQucmV0dXJuID0gcmV0dXJuRmliZXI7XG4gICAgICAgIGN1cnJlbnQuX2RlYnVnSW5mbyA9IGN1cnJlbnREZWJ1Z0luZm87XG4gICAgICAgIHJldHVybiBjdXJyZW50O1xuICAgICAgfVxuICAgICAgZnVuY3Rpb24gdXBkYXRlRnJhZ21lbnQocmV0dXJuRmliZXIsIGN1cnJlbnQsIGZyYWdtZW50LCBsYW5lcywga2V5KSB7XG4gICAgICAgIGlmIChudWxsID09PSBjdXJyZW50IHx8IDcgIT09IGN1cnJlbnQudGFnKVxuICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAoY3VycmVudCA9IGNyZWF0ZUZpYmVyRnJvbUZyYWdtZW50KFxuICAgICAgICAgICAgICBmcmFnbWVudCxcbiAgICAgICAgICAgICAgcmV0dXJuRmliZXIubW9kZSxcbiAgICAgICAgICAgICAgbGFuZXMsXG4gICAgICAgICAgICAgIGtleVxuICAgICAgICAgICAgKSksXG4gICAgICAgICAgICAoY3VycmVudC5yZXR1cm4gPSByZXR1cm5GaWJlciksXG4gICAgICAgICAgICAoY3VycmVudC5fZGVidWdPd25lciA9IHJldHVybkZpYmVyKSxcbiAgICAgICAgICAgIChjdXJyZW50Ll9kZWJ1Z1Rhc2sgPSByZXR1cm5GaWJlci5fZGVidWdUYXNrKSxcbiAgICAgICAgICAgIChjdXJyZW50Ll9kZWJ1Z0luZm8gPSBjdXJyZW50RGVidWdJbmZvKSxcbiAgICAgICAgICAgIGN1cnJlbnRcbiAgICAgICAgICApO1xuICAgICAgICBjdXJyZW50ID0gdXNlRmliZXIoY3VycmVudCwgZnJhZ21lbnQpO1xuICAgICAgICBjdXJyZW50LnJldHVybiA9IHJldHVybkZpYmVyO1xuICAgICAgICBjdXJyZW50Ll9kZWJ1Z0luZm8gPSBjdXJyZW50RGVidWdJbmZvO1xuICAgICAgICByZXR1cm4gY3VycmVudDtcbiAgICAgIH1cbiAgICAgIGZ1bmN0aW9uIGNyZWF0ZUNoaWxkKHJldHVybkZpYmVyLCBuZXdDaGlsZCwgbGFuZXMpIHtcbiAgICAgICAgaWYgKFxuICAgICAgICAgIChcInN0cmluZ1wiID09PSB0eXBlb2YgbmV3Q2hpbGQgJiYgXCJcIiAhPT0gbmV3Q2hpbGQpIHx8XG4gICAgICAgICAgXCJudW1iZXJcIiA9PT0gdHlwZW9mIG5ld0NoaWxkIHx8XG4gICAgICAgICAgXCJiaWdpbnRcIiA9PT0gdHlwZW9mIG5ld0NoaWxkXG4gICAgICAgIClcbiAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgKG5ld0NoaWxkID0gY3JlYXRlRmliZXJGcm9tVGV4dChcbiAgICAgICAgICAgICAgXCJcIiArIG5ld0NoaWxkLFxuICAgICAgICAgICAgICByZXR1cm5GaWJlci5tb2RlLFxuICAgICAgICAgICAgICBsYW5lc1xuICAgICAgICAgICAgKSksXG4gICAgICAgICAgICAobmV3Q2hpbGQucmV0dXJuID0gcmV0dXJuRmliZXIpLFxuICAgICAgICAgICAgKG5ld0NoaWxkLl9kZWJ1Z093bmVyID0gcmV0dXJuRmliZXIpLFxuICAgICAgICAgICAgKG5ld0NoaWxkLl9kZWJ1Z1Rhc2sgPSByZXR1cm5GaWJlci5fZGVidWdUYXNrKSxcbiAgICAgICAgICAgIChuZXdDaGlsZC5fZGVidWdJbmZvID0gY3VycmVudERlYnVnSW5mbyksXG4gICAgICAgICAgICBuZXdDaGlsZFxuICAgICAgICAgICk7XG4gICAgICAgIGlmIChcIm9iamVjdFwiID09PSB0eXBlb2YgbmV3Q2hpbGQgJiYgbnVsbCAhPT0gbmV3Q2hpbGQpIHtcbiAgICAgICAgICBzd2l0Y2ggKG5ld0NoaWxkLiQkdHlwZW9mKSB7XG4gICAgICAgICAgICBjYXNlIFJFQUNUX0VMRU1FTlRfVFlQRTpcbiAgICAgICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgICAgICAobGFuZXMgPSBjcmVhdGVGaWJlckZyb21FbGVtZW50KFxuICAgICAgICAgICAgICAgICAgbmV3Q2hpbGQsXG4gICAgICAgICAgICAgICAgICByZXR1cm5GaWJlci5tb2RlLFxuICAgICAgICAgICAgICAgICAgbGFuZXNcbiAgICAgICAgICAgICAgICApKSxcbiAgICAgICAgICAgICAgICBjb2VyY2VSZWYobGFuZXMsIG5ld0NoaWxkKSxcbiAgICAgICAgICAgICAgICAobGFuZXMucmV0dXJuID0gcmV0dXJuRmliZXIpLFxuICAgICAgICAgICAgICAgIChyZXR1cm5GaWJlciA9IHB1c2hEZWJ1Z0luZm8obmV3Q2hpbGQuX2RlYnVnSW5mbykpLFxuICAgICAgICAgICAgICAgIChsYW5lcy5fZGVidWdJbmZvID0gY3VycmVudERlYnVnSW5mbyksXG4gICAgICAgICAgICAgICAgKGN1cnJlbnREZWJ1Z0luZm8gPSByZXR1cm5GaWJlciksXG4gICAgICAgICAgICAgICAgbGFuZXNcbiAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIGNhc2UgUkVBQ1RfUE9SVEFMX1RZUEU6XG4gICAgICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAgICAgKG5ld0NoaWxkID0gY3JlYXRlRmliZXJGcm9tUG9ydGFsKFxuICAgICAgICAgICAgICAgICAgbmV3Q2hpbGQsXG4gICAgICAgICAgICAgICAgICByZXR1cm5GaWJlci5tb2RlLFxuICAgICAgICAgICAgICAgICAgbGFuZXNcbiAgICAgICAgICAgICAgICApKSxcbiAgICAgICAgICAgICAgICAobmV3Q2hpbGQucmV0dXJuID0gcmV0dXJuRmliZXIpLFxuICAgICAgICAgICAgICAgIChuZXdDaGlsZC5fZGVidWdJbmZvID0gY3VycmVudERlYnVnSW5mbyksXG4gICAgICAgICAgICAgICAgbmV3Q2hpbGRcbiAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIGNhc2UgUkVBQ1RfTEFaWV9UWVBFOlxuICAgICAgICAgICAgICB2YXIgX3ByZXZEZWJ1Z0luZm8gPSBwdXNoRGVidWdJbmZvKG5ld0NoaWxkLl9kZWJ1Z0luZm8pO1xuICAgICAgICAgICAgICBuZXdDaGlsZCA9IGNhbGxMYXp5SW5pdEluREVWKG5ld0NoaWxkKTtcbiAgICAgICAgICAgICAgcmV0dXJuRmliZXIgPSBjcmVhdGVDaGlsZChyZXR1cm5GaWJlciwgbmV3Q2hpbGQsIGxhbmVzKTtcbiAgICAgICAgICAgICAgY3VycmVudERlYnVnSW5mbyA9IF9wcmV2RGVidWdJbmZvO1xuICAgICAgICAgICAgICByZXR1cm4gcmV0dXJuRmliZXI7XG4gICAgICAgICAgfVxuICAgICAgICAgIGlmIChpc0FycmF5SW1wbChuZXdDaGlsZCkgfHwgZ2V0SXRlcmF0b3JGbihuZXdDaGlsZCkpXG4gICAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgICAobGFuZXMgPSBjcmVhdGVGaWJlckZyb21GcmFnbWVudChcbiAgICAgICAgICAgICAgICBuZXdDaGlsZCxcbiAgICAgICAgICAgICAgICByZXR1cm5GaWJlci5tb2RlLFxuICAgICAgICAgICAgICAgIGxhbmVzLFxuICAgICAgICAgICAgICAgIG51bGxcbiAgICAgICAgICAgICAgKSksXG4gICAgICAgICAgICAgIChsYW5lcy5yZXR1cm4gPSByZXR1cm5GaWJlciksXG4gICAgICAgICAgICAgIChsYW5lcy5fZGVidWdPd25lciA9IHJldHVybkZpYmVyKSxcbiAgICAgICAgICAgICAgKGxhbmVzLl9kZWJ1Z1Rhc2sgPSByZXR1cm5GaWJlci5fZGVidWdUYXNrKSxcbiAgICAgICAgICAgICAgKHJldHVybkZpYmVyID0gcHVzaERlYnVnSW5mbyhuZXdDaGlsZC5fZGVidWdJbmZvKSksXG4gICAgICAgICAgICAgIChsYW5lcy5fZGVidWdJbmZvID0gY3VycmVudERlYnVnSW5mbyksXG4gICAgICAgICAgICAgIChjdXJyZW50RGVidWdJbmZvID0gcmV0dXJuRmliZXIpLFxuICAgICAgICAgICAgICBsYW5lc1xuICAgICAgICAgICAgKTtcbiAgICAgICAgICBpZiAoXCJmdW5jdGlvblwiID09PSB0eXBlb2YgbmV3Q2hpbGQudGhlbilcbiAgICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAgIChfcHJldkRlYnVnSW5mbyA9IHB1c2hEZWJ1Z0luZm8obmV3Q2hpbGQuX2RlYnVnSW5mbykpLFxuICAgICAgICAgICAgICAocmV0dXJuRmliZXIgPSBjcmVhdGVDaGlsZChcbiAgICAgICAgICAgICAgICByZXR1cm5GaWJlcixcbiAgICAgICAgICAgICAgICB1bndyYXBUaGVuYWJsZShuZXdDaGlsZCksXG4gICAgICAgICAgICAgICAgbGFuZXNcbiAgICAgICAgICAgICAgKSksXG4gICAgICAgICAgICAgIChjdXJyZW50RGVidWdJbmZvID0gX3ByZXZEZWJ1Z0luZm8pLFxuICAgICAgICAgICAgICByZXR1cm5GaWJlclxuICAgICAgICAgICAgKTtcbiAgICAgICAgICBpZiAobmV3Q2hpbGQuJCR0eXBlb2YgPT09IFJFQUNUX0NPTlRFWFRfVFlQRSlcbiAgICAgICAgICAgIHJldHVybiBjcmVhdGVDaGlsZChcbiAgICAgICAgICAgICAgcmV0dXJuRmliZXIsXG4gICAgICAgICAgICAgIHJlYWRDb250ZXh0RHVyaW5nUmVjb25jaWxpYXRpb24ocmV0dXJuRmliZXIsIG5ld0NoaWxkKSxcbiAgICAgICAgICAgICAgbGFuZXNcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgdGhyb3dPbkludmFsaWRPYmplY3RUeXBlKHJldHVybkZpYmVyLCBuZXdDaGlsZCk7XG4gICAgICAgIH1cbiAgICAgICAgXCJmdW5jdGlvblwiID09PSB0eXBlb2YgbmV3Q2hpbGQgJiZcbiAgICAgICAgICB3YXJuT25GdW5jdGlvblR5cGUocmV0dXJuRmliZXIsIG5ld0NoaWxkKTtcbiAgICAgICAgXCJzeW1ib2xcIiA9PT0gdHlwZW9mIG5ld0NoaWxkICYmIHdhcm5PblN5bWJvbFR5cGUocmV0dXJuRmliZXIsIG5ld0NoaWxkKTtcbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICB9XG4gICAgICBmdW5jdGlvbiB1cGRhdGVTbG90KHJldHVybkZpYmVyLCBvbGRGaWJlciwgbmV3Q2hpbGQsIGxhbmVzKSB7XG4gICAgICAgIHZhciBrZXkgPSBudWxsICE9PSBvbGRGaWJlciA/IG9sZEZpYmVyLmtleSA6IG51bGw7XG4gICAgICAgIGlmIChcbiAgICAgICAgICAoXCJzdHJpbmdcIiA9PT0gdHlwZW9mIG5ld0NoaWxkICYmIFwiXCIgIT09IG5ld0NoaWxkKSB8fFxuICAgICAgICAgIFwibnVtYmVyXCIgPT09IHR5cGVvZiBuZXdDaGlsZCB8fFxuICAgICAgICAgIFwiYmlnaW50XCIgPT09IHR5cGVvZiBuZXdDaGlsZFxuICAgICAgICApXG4gICAgICAgICAgcmV0dXJuIG51bGwgIT09IGtleVxuICAgICAgICAgICAgPyBudWxsXG4gICAgICAgICAgICA6IHVwZGF0ZVRleHROb2RlKHJldHVybkZpYmVyLCBvbGRGaWJlciwgXCJcIiArIG5ld0NoaWxkLCBsYW5lcyk7XG4gICAgICAgIGlmIChcIm9iamVjdFwiID09PSB0eXBlb2YgbmV3Q2hpbGQgJiYgbnVsbCAhPT0gbmV3Q2hpbGQpIHtcbiAgICAgICAgICBzd2l0Y2ggKG5ld0NoaWxkLiQkdHlwZW9mKSB7XG4gICAgICAgICAgICBjYXNlIFJFQUNUX0VMRU1FTlRfVFlQRTpcbiAgICAgICAgICAgICAgcmV0dXJuIG5ld0NoaWxkLmtleSA9PT0ga2V5XG4gICAgICAgICAgICAgICAgPyAoKGtleSA9IHB1c2hEZWJ1Z0luZm8obmV3Q2hpbGQuX2RlYnVnSW5mbykpLFxuICAgICAgICAgICAgICAgICAgKHJldHVybkZpYmVyID0gdXBkYXRlRWxlbWVudChcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuRmliZXIsXG4gICAgICAgICAgICAgICAgICAgIG9sZEZpYmVyLFxuICAgICAgICAgICAgICAgICAgICBuZXdDaGlsZCxcbiAgICAgICAgICAgICAgICAgICAgbGFuZXNcbiAgICAgICAgICAgICAgICAgICkpLFxuICAgICAgICAgICAgICAgICAgKGN1cnJlbnREZWJ1Z0luZm8gPSBrZXkpLFxuICAgICAgICAgICAgICAgICAgcmV0dXJuRmliZXIpXG4gICAgICAgICAgICAgICAgOiBudWxsO1xuICAgICAgICAgICAgY2FzZSBSRUFDVF9QT1JUQUxfVFlQRTpcbiAgICAgICAgICAgICAgcmV0dXJuIG5ld0NoaWxkLmtleSA9PT0ga2V5XG4gICAgICAgICAgICAgICAgPyB1cGRhdGVQb3J0YWwocmV0dXJuRmliZXIsIG9sZEZpYmVyLCBuZXdDaGlsZCwgbGFuZXMpXG4gICAgICAgICAgICAgICAgOiBudWxsO1xuICAgICAgICAgICAgY2FzZSBSRUFDVF9MQVpZX1RZUEU6XG4gICAgICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAgICAgKGtleSA9IHB1c2hEZWJ1Z0luZm8obmV3Q2hpbGQuX2RlYnVnSW5mbykpLFxuICAgICAgICAgICAgICAgIChuZXdDaGlsZCA9IGNhbGxMYXp5SW5pdEluREVWKG5ld0NoaWxkKSksXG4gICAgICAgICAgICAgICAgKHJldHVybkZpYmVyID0gdXBkYXRlU2xvdChcbiAgICAgICAgICAgICAgICAgIHJldHVybkZpYmVyLFxuICAgICAgICAgICAgICAgICAgb2xkRmliZXIsXG4gICAgICAgICAgICAgICAgICBuZXdDaGlsZCxcbiAgICAgICAgICAgICAgICAgIGxhbmVzXG4gICAgICAgICAgICAgICAgKSksXG4gICAgICAgICAgICAgICAgKGN1cnJlbnREZWJ1Z0luZm8gPSBrZXkpLFxuICAgICAgICAgICAgICAgIHJldHVybkZpYmVyXG4gICAgICAgICAgICAgICk7XG4gICAgICAgICAgfVxuICAgICAgICAgIGlmIChpc0FycmF5SW1wbChuZXdDaGlsZCkgfHwgZ2V0SXRlcmF0b3JGbihuZXdDaGlsZCkpIHtcbiAgICAgICAgICAgIGlmIChudWxsICE9PSBrZXkpIHJldHVybiBudWxsO1xuICAgICAgICAgICAga2V5ID0gcHVzaERlYnVnSW5mbyhuZXdDaGlsZC5fZGVidWdJbmZvKTtcbiAgICAgICAgICAgIHJldHVybkZpYmVyID0gdXBkYXRlRnJhZ21lbnQoXG4gICAgICAgICAgICAgIHJldHVybkZpYmVyLFxuICAgICAgICAgICAgICBvbGRGaWJlcixcbiAgICAgICAgICAgICAgbmV3Q2hpbGQsXG4gICAgICAgICAgICAgIGxhbmVzLFxuICAgICAgICAgICAgICBudWxsXG4gICAgICAgICAgICApO1xuICAgICAgICAgICAgY3VycmVudERlYnVnSW5mbyA9IGtleTtcbiAgICAgICAgICAgIHJldHVybiByZXR1cm5GaWJlcjtcbiAgICAgICAgICB9XG4gICAgICAgICAgaWYgKFwiZnVuY3Rpb25cIiA9PT0gdHlwZW9mIG5ld0NoaWxkLnRoZW4pXG4gICAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgICAoa2V5ID0gcHVzaERlYnVnSW5mbyhuZXdDaGlsZC5fZGVidWdJbmZvKSksXG4gICAgICAgICAgICAgIChyZXR1cm5GaWJlciA9IHVwZGF0ZVNsb3QoXG4gICAgICAgICAgICAgICAgcmV0dXJuRmliZXIsXG4gICAgICAgICAgICAgICAgb2xkRmliZXIsXG4gICAgICAgICAgICAgICAgdW53cmFwVGhlbmFibGUobmV3Q2hpbGQpLFxuICAgICAgICAgICAgICAgIGxhbmVzXG4gICAgICAgICAgICAgICkpLFxuICAgICAgICAgICAgICAoY3VycmVudERlYnVnSW5mbyA9IGtleSksXG4gICAgICAgICAgICAgIHJldHVybkZpYmVyXG4gICAgICAgICAgICApO1xuICAgICAgICAgIGlmIChuZXdDaGlsZC4kJHR5cGVvZiA9PT0gUkVBQ1RfQ09OVEVYVF9UWVBFKVxuICAgICAgICAgICAgcmV0dXJuIHVwZGF0ZVNsb3QoXG4gICAgICAgICAgICAgIHJldHVybkZpYmVyLFxuICAgICAgICAgICAgICBvbGRGaWJlcixcbiAgICAgICAgICAgICAgcmVhZENvbnRleHREdXJpbmdSZWNvbmNpbGlhdGlvbihyZXR1cm5GaWJlciwgbmV3Q2hpbGQpLFxuICAgICAgICAgICAgICBsYW5lc1xuICAgICAgICAgICAgKTtcbiAgICAgICAgICB0aHJvd09uSW52YWxpZE9iamVjdFR5cGUocmV0dXJuRmliZXIsIG5ld0NoaWxkKTtcbiAgICAgICAgfVxuICAgICAgICBcImZ1bmN0aW9uXCIgPT09IHR5cGVvZiBuZXdDaGlsZCAmJlxuICAgICAgICAgIHdhcm5PbkZ1bmN0aW9uVHlwZShyZXR1cm5GaWJlciwgbmV3Q2hpbGQpO1xuICAgICAgICBcInN5bWJvbFwiID09PSB0eXBlb2YgbmV3Q2hpbGQgJiYgd2Fybk9uU3ltYm9sVHlwZShyZXR1cm5GaWJlciwgbmV3Q2hpbGQpO1xuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgIH1cbiAgICAgIGZ1bmN0aW9uIHVwZGF0ZUZyb21NYXAoXG4gICAgICAgIGV4aXN0aW5nQ2hpbGRyZW4sXG4gICAgICAgIHJldHVybkZpYmVyLFxuICAgICAgICBuZXdJZHgsXG4gICAgICAgIG5ld0NoaWxkLFxuICAgICAgICBsYW5lc1xuICAgICAgKSB7XG4gICAgICAgIGlmIChcbiAgICAgICAgICAoXCJzdHJpbmdcIiA9PT0gdHlwZW9mIG5ld0NoaWxkICYmIFwiXCIgIT09IG5ld0NoaWxkKSB8fFxuICAgICAgICAgIFwibnVtYmVyXCIgPT09IHR5cGVvZiBuZXdDaGlsZCB8fFxuICAgICAgICAgIFwiYmlnaW50XCIgPT09IHR5cGVvZiBuZXdDaGlsZFxuICAgICAgICApXG4gICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgIChleGlzdGluZ0NoaWxkcmVuID0gZXhpc3RpbmdDaGlsZHJlbi5nZXQobmV3SWR4KSB8fCBudWxsKSxcbiAgICAgICAgICAgIHVwZGF0ZVRleHROb2RlKHJldHVybkZpYmVyLCBleGlzdGluZ0NoaWxkcmVuLCBcIlwiICsgbmV3Q2hpbGQsIGxhbmVzKVxuICAgICAgICAgICk7XG4gICAgICAgIGlmIChcIm9iamVjdFwiID09PSB0eXBlb2YgbmV3Q2hpbGQgJiYgbnVsbCAhPT0gbmV3Q2hpbGQpIHtcbiAgICAgICAgICBzd2l0Y2ggKG5ld0NoaWxkLiQkdHlwZW9mKSB7XG4gICAgICAgICAgICBjYXNlIFJFQUNUX0VMRU1FTlRfVFlQRTpcbiAgICAgICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgICAgICAobmV3SWR4ID1cbiAgICAgICAgICAgICAgICAgIGV4aXN0aW5nQ2hpbGRyZW4uZ2V0KFxuICAgICAgICAgICAgICAgICAgICBudWxsID09PSBuZXdDaGlsZC5rZXkgPyBuZXdJZHggOiBuZXdDaGlsZC5rZXlcbiAgICAgICAgICAgICAgICAgICkgfHwgbnVsbCksXG4gICAgICAgICAgICAgICAgKGV4aXN0aW5nQ2hpbGRyZW4gPSBwdXNoRGVidWdJbmZvKG5ld0NoaWxkLl9kZWJ1Z0luZm8pKSxcbiAgICAgICAgICAgICAgICAocmV0dXJuRmliZXIgPSB1cGRhdGVFbGVtZW50KFxuICAgICAgICAgICAgICAgICAgcmV0dXJuRmliZXIsXG4gICAgICAgICAgICAgICAgICBuZXdJZHgsXG4gICAgICAgICAgICAgICAgICBuZXdDaGlsZCxcbiAgICAgICAgICAgICAgICAgIGxhbmVzXG4gICAgICAgICAgICAgICAgKSksXG4gICAgICAgICAgICAgICAgKGN1cnJlbnREZWJ1Z0luZm8gPSBleGlzdGluZ0NoaWxkcmVuKSxcbiAgICAgICAgICAgICAgICByZXR1cm5GaWJlclxuICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgY2FzZSBSRUFDVF9QT1JUQUxfVFlQRTpcbiAgICAgICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgICAgICAoZXhpc3RpbmdDaGlsZHJlbiA9XG4gICAgICAgICAgICAgICAgICBleGlzdGluZ0NoaWxkcmVuLmdldChcbiAgICAgICAgICAgICAgICAgICAgbnVsbCA9PT0gbmV3Q2hpbGQua2V5ID8gbmV3SWR4IDogbmV3Q2hpbGQua2V5XG4gICAgICAgICAgICAgICAgICApIHx8IG51bGwpLFxuICAgICAgICAgICAgICAgIHVwZGF0ZVBvcnRhbChyZXR1cm5GaWJlciwgZXhpc3RpbmdDaGlsZHJlbiwgbmV3Q2hpbGQsIGxhbmVzKVxuICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgY2FzZSBSRUFDVF9MQVpZX1RZUEU6XG4gICAgICAgICAgICAgIHZhciBfcHJldkRlYnVnSW5mbzcgPSBwdXNoRGVidWdJbmZvKG5ld0NoaWxkLl9kZWJ1Z0luZm8pO1xuICAgICAgICAgICAgICBuZXdDaGlsZCA9IGNhbGxMYXp5SW5pdEluREVWKG5ld0NoaWxkKTtcbiAgICAgICAgICAgICAgcmV0dXJuRmliZXIgPSB1cGRhdGVGcm9tTWFwKFxuICAgICAgICAgICAgICAgIGV4aXN0aW5nQ2hpbGRyZW4sXG4gICAgICAgICAgICAgICAgcmV0dXJuRmliZXIsXG4gICAgICAgICAgICAgICAgbmV3SWR4LFxuICAgICAgICAgICAgICAgIG5ld0NoaWxkLFxuICAgICAgICAgICAgICAgIGxhbmVzXG4gICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgIGN1cnJlbnREZWJ1Z0luZm8gPSBfcHJldkRlYnVnSW5mbzc7XG4gICAgICAgICAgICAgIHJldHVybiByZXR1cm5GaWJlcjtcbiAgICAgICAgICB9XG4gICAgICAgICAgaWYgKGlzQXJyYXlJbXBsKG5ld0NoaWxkKSB8fCBnZXRJdGVyYXRvckZuKG5ld0NoaWxkKSlcbiAgICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAgIChuZXdJZHggPSBleGlzdGluZ0NoaWxkcmVuLmdldChuZXdJZHgpIHx8IG51bGwpLFxuICAgICAgICAgICAgICAoZXhpc3RpbmdDaGlsZHJlbiA9IHB1c2hEZWJ1Z0luZm8obmV3Q2hpbGQuX2RlYnVnSW5mbykpLFxuICAgICAgICAgICAgICAocmV0dXJuRmliZXIgPSB1cGRhdGVGcmFnbWVudChcbiAgICAgICAgICAgICAgICByZXR1cm5GaWJlcixcbiAgICAgICAgICAgICAgICBuZXdJZHgsXG4gICAgICAgICAgICAgICAgbmV3Q2hpbGQsXG4gICAgICAgICAgICAgICAgbGFuZXMsXG4gICAgICAgICAgICAgICAgbnVsbFxuICAgICAgICAgICAgICApKSxcbiAgICAgICAgICAgICAgKGN1cnJlbnREZWJ1Z0luZm8gPSBleGlzdGluZ0NoaWxkcmVuKSxcbiAgICAgICAgICAgICAgcmV0dXJuRmliZXJcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgaWYgKFwiZnVuY3Rpb25cIiA9PT0gdHlwZW9mIG5ld0NoaWxkLnRoZW4pXG4gICAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgICAoX3ByZXZEZWJ1Z0luZm83ID0gcHVzaERlYnVnSW5mbyhuZXdDaGlsZC5fZGVidWdJbmZvKSksXG4gICAgICAgICAgICAgIChyZXR1cm5GaWJlciA9IHVwZGF0ZUZyb21NYXAoXG4gICAgICAgICAgICAgICAgZXhpc3RpbmdDaGlsZHJlbixcbiAgICAgICAgICAgICAgICByZXR1cm5GaWJlcixcbiAgICAgICAgICAgICAgICBuZXdJZHgsXG4gICAgICAgICAgICAgICAgdW53cmFwVGhlbmFibGUobmV3Q2hpbGQpLFxuICAgICAgICAgICAgICAgIGxhbmVzXG4gICAgICAgICAgICAgICkpLFxuICAgICAgICAgICAgICAoY3VycmVudERlYnVnSW5mbyA9IF9wcmV2RGVidWdJbmZvNyksXG4gICAgICAgICAgICAgIHJldHVybkZpYmVyXG4gICAgICAgICAgICApO1xuICAgICAgICAgIGlmIChuZXdDaGlsZC4kJHR5cGVvZiA9PT0gUkVBQ1RfQ09OVEVYVF9UWVBFKVxuICAgICAgICAgICAgcmV0dXJuIHVwZGF0ZUZyb21NYXAoXG4gICAgICAgICAgICAgIGV4aXN0aW5nQ2hpbGRyZW4sXG4gICAgICAgICAgICAgIHJldHVybkZpYmVyLFxuICAgICAgICAgICAgICBuZXdJZHgsXG4gICAgICAgICAgICAgIHJlYWRDb250ZXh0RHVyaW5nUmVjb25jaWxpYXRpb24ocmV0dXJuRmliZXIsIG5ld0NoaWxkKSxcbiAgICAgICAgICAgICAgbGFuZXNcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgdGhyb3dPbkludmFsaWRPYmplY3RUeXBlKHJldHVybkZpYmVyLCBuZXdDaGlsZCk7XG4gICAgICAgIH1cbiAgICAgICAgXCJmdW5jdGlvblwiID09PSB0eXBlb2YgbmV3Q2hpbGQgJiZcbiAgICAgICAgICB3YXJuT25GdW5jdGlvblR5cGUocmV0dXJuRmliZXIsIG5ld0NoaWxkKTtcbiAgICAgICAgXCJzeW1ib2xcIiA9PT0gdHlwZW9mIG5ld0NoaWxkICYmIHdhcm5PblN5bWJvbFR5cGUocmV0dXJuRmliZXIsIG5ld0NoaWxkKTtcbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICB9XG4gICAgICBmdW5jdGlvbiB3YXJuT25JbnZhbGlkS2V5KHJldHVybkZpYmVyLCB3b3JrSW5Qcm9ncmVzcywgY2hpbGQsIGtub3duS2V5cykge1xuICAgICAgICBpZiAoXCJvYmplY3RcIiAhPT0gdHlwZW9mIGNoaWxkIHx8IG51bGwgPT09IGNoaWxkKSByZXR1cm4ga25vd25LZXlzO1xuICAgICAgICBzd2l0Y2ggKGNoaWxkLiQkdHlwZW9mKSB7XG4gICAgICAgICAgY2FzZSBSRUFDVF9FTEVNRU5UX1RZUEU6XG4gICAgICAgICAgY2FzZSBSRUFDVF9QT1JUQUxfVFlQRTpcbiAgICAgICAgICAgIHdhcm5Gb3JNaXNzaW5nS2V5KHJldHVybkZpYmVyLCB3b3JrSW5Qcm9ncmVzcywgY2hpbGQpO1xuICAgICAgICAgICAgdmFyIGtleSA9IGNoaWxkLmtleTtcbiAgICAgICAgICAgIGlmIChcInN0cmluZ1wiICE9PSB0eXBlb2Yga2V5KSBicmVhaztcbiAgICAgICAgICAgIGlmIChudWxsID09PSBrbm93bktleXMpIHtcbiAgICAgICAgICAgICAga25vd25LZXlzID0gbmV3IFNldCgpO1xuICAgICAgICAgICAgICBrbm93bktleXMuYWRkKGtleSk7XG4gICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKCFrbm93bktleXMuaGFzKGtleSkpIHtcbiAgICAgICAgICAgICAga25vd25LZXlzLmFkZChrZXkpO1xuICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJ1bldpdGhGaWJlckluREVWKHdvcmtJblByb2dyZXNzLCBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoXG4gICAgICAgICAgICAgICAgXCJFbmNvdW50ZXJlZCB0d28gY2hpbGRyZW4gd2l0aCB0aGUgc2FtZSBrZXksIGAlc2AuIEtleXMgc2hvdWxkIGJlIHVuaXF1ZSBzbyB0aGF0IGNvbXBvbmVudHMgbWFpbnRhaW4gdGhlaXIgaWRlbnRpdHkgYWNyb3NzIHVwZGF0ZXMuIE5vbi11bmlxdWUga2V5cyBtYXkgY2F1c2UgY2hpbGRyZW4gdG8gYmUgZHVwbGljYXRlZCBhbmQvb3Igb21pdHRlZCBcXHUyMDE0IHRoZSBiZWhhdmlvciBpcyB1bnN1cHBvcnRlZCBhbmQgY291bGQgY2hhbmdlIGluIGEgZnV0dXJlIHZlcnNpb24uXCIsXG4gICAgICAgICAgICAgICAga2V5XG4gICAgICAgICAgICAgICk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIGNhc2UgUkVBQ1RfTEFaWV9UWVBFOlxuICAgICAgICAgICAgKGNoaWxkID0gY2FsbExhenlJbml0SW5ERVYoY2hpbGQpKSxcbiAgICAgICAgICAgICAgd2Fybk9uSW52YWxpZEtleShyZXR1cm5GaWJlciwgd29ya0luUHJvZ3Jlc3MsIGNoaWxkLCBrbm93bktleXMpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBrbm93bktleXM7XG4gICAgICB9XG4gICAgICBmdW5jdGlvbiByZWNvbmNpbGVDaGlsZHJlbkFycmF5KFxuICAgICAgICByZXR1cm5GaWJlcixcbiAgICAgICAgY3VycmVudEZpcnN0Q2hpbGQsXG4gICAgICAgIG5ld0NoaWxkcmVuLFxuICAgICAgICBsYW5lc1xuICAgICAgKSB7XG4gICAgICAgIGZvciAoXG4gICAgICAgICAgdmFyIGtub3duS2V5cyA9IG51bGwsXG4gICAgICAgICAgICByZXN1bHRpbmdGaXJzdENoaWxkID0gbnVsbCxcbiAgICAgICAgICAgIHByZXZpb3VzTmV3RmliZXIgPSBudWxsLFxuICAgICAgICAgICAgb2xkRmliZXIgPSBjdXJyZW50Rmlyc3RDaGlsZCxcbiAgICAgICAgICAgIG5ld0lkeCA9IChjdXJyZW50Rmlyc3RDaGlsZCA9IDApLFxuICAgICAgICAgICAgbmV4dE9sZEZpYmVyID0gbnVsbDtcbiAgICAgICAgICBudWxsICE9PSBvbGRGaWJlciAmJiBuZXdJZHggPCBuZXdDaGlsZHJlbi5sZW5ndGg7XG4gICAgICAgICAgbmV3SWR4KytcbiAgICAgICAgKSB7XG4gICAgICAgICAgb2xkRmliZXIuaW5kZXggPiBuZXdJZHhcbiAgICAgICAgICAgID8gKChuZXh0T2xkRmliZXIgPSBvbGRGaWJlciksIChvbGRGaWJlciA9IG51bGwpKVxuICAgICAgICAgICAgOiAobmV4dE9sZEZpYmVyID0gb2xkRmliZXIuc2libGluZyk7XG4gICAgICAgICAgdmFyIG5ld0ZpYmVyID0gdXBkYXRlU2xvdChcbiAgICAgICAgICAgIHJldHVybkZpYmVyLFxuICAgICAgICAgICAgb2xkRmliZXIsXG4gICAgICAgICAgICBuZXdDaGlsZHJlbltuZXdJZHhdLFxuICAgICAgICAgICAgbGFuZXNcbiAgICAgICAgICApO1xuICAgICAgICAgIGlmIChudWxsID09PSBuZXdGaWJlcikge1xuICAgICAgICAgICAgbnVsbCA9PT0gb2xkRmliZXIgJiYgKG9sZEZpYmVyID0gbmV4dE9sZEZpYmVyKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIH1cbiAgICAgICAgICBrbm93bktleXMgPSB3YXJuT25JbnZhbGlkS2V5KFxuICAgICAgICAgICAgcmV0dXJuRmliZXIsXG4gICAgICAgICAgICBuZXdGaWJlcixcbiAgICAgICAgICAgIG5ld0NoaWxkcmVuW25ld0lkeF0sXG4gICAgICAgICAgICBrbm93bktleXNcbiAgICAgICAgICApO1xuICAgICAgICAgIHNob3VsZFRyYWNrU2lkZUVmZmVjdHMgJiZcbiAgICAgICAgICAgIG9sZEZpYmVyICYmXG4gICAgICAgICAgICBudWxsID09PSBuZXdGaWJlci5hbHRlcm5hdGUgJiZcbiAgICAgICAgICAgIGRlbGV0ZUNoaWxkKHJldHVybkZpYmVyLCBvbGRGaWJlcik7XG4gICAgICAgICAgY3VycmVudEZpcnN0Q2hpbGQgPSBwbGFjZUNoaWxkKG5ld0ZpYmVyLCBjdXJyZW50Rmlyc3RDaGlsZCwgbmV3SWR4KTtcbiAgICAgICAgICBudWxsID09PSBwcmV2aW91c05ld0ZpYmVyXG4gICAgICAgICAgICA/IChyZXN1bHRpbmdGaXJzdENoaWxkID0gbmV3RmliZXIpXG4gICAgICAgICAgICA6IChwcmV2aW91c05ld0ZpYmVyLnNpYmxpbmcgPSBuZXdGaWJlcik7XG4gICAgICAgICAgcHJldmlvdXNOZXdGaWJlciA9IG5ld0ZpYmVyO1xuICAgICAgICAgIG9sZEZpYmVyID0gbmV4dE9sZEZpYmVyO1xuICAgICAgICB9XG4gICAgICAgIGlmIChuZXdJZHggPT09IG5ld0NoaWxkcmVuLmxlbmd0aClcbiAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgZGVsZXRlUmVtYWluaW5nQ2hpbGRyZW4ocmV0dXJuRmliZXIsIG9sZEZpYmVyKSxcbiAgICAgICAgICAgIGlzSHlkcmF0aW5nICYmIHB1c2hUcmVlRm9yayhyZXR1cm5GaWJlciwgbmV3SWR4KSxcbiAgICAgICAgICAgIHJlc3VsdGluZ0ZpcnN0Q2hpbGRcbiAgICAgICAgICApO1xuICAgICAgICBpZiAobnVsbCA9PT0gb2xkRmliZXIpIHtcbiAgICAgICAgICBmb3IgKDsgbmV3SWR4IDwgbmV3Q2hpbGRyZW4ubGVuZ3RoOyBuZXdJZHgrKylcbiAgICAgICAgICAgIChvbGRGaWJlciA9IGNyZWF0ZUNoaWxkKHJldHVybkZpYmVyLCBuZXdDaGlsZHJlbltuZXdJZHhdLCBsYW5lcykpLFxuICAgICAgICAgICAgICBudWxsICE9PSBvbGRGaWJlciAmJlxuICAgICAgICAgICAgICAgICgoa25vd25LZXlzID0gd2Fybk9uSW52YWxpZEtleShcbiAgICAgICAgICAgICAgICAgIHJldHVybkZpYmVyLFxuICAgICAgICAgICAgICAgICAgb2xkRmliZXIsXG4gICAgICAgICAgICAgICAgICBuZXdDaGlsZHJlbltuZXdJZHhdLFxuICAgICAgICAgICAgICAgICAga25vd25LZXlzXG4gICAgICAgICAgICAgICAgKSksXG4gICAgICAgICAgICAgICAgKGN1cnJlbnRGaXJzdENoaWxkID0gcGxhY2VDaGlsZChcbiAgICAgICAgICAgICAgICAgIG9sZEZpYmVyLFxuICAgICAgICAgICAgICAgICAgY3VycmVudEZpcnN0Q2hpbGQsXG4gICAgICAgICAgICAgICAgICBuZXdJZHhcbiAgICAgICAgICAgICAgICApKSxcbiAgICAgICAgICAgICAgICBudWxsID09PSBwcmV2aW91c05ld0ZpYmVyXG4gICAgICAgICAgICAgICAgICA/IChyZXN1bHRpbmdGaXJzdENoaWxkID0gb2xkRmliZXIpXG4gICAgICAgICAgICAgICAgICA6IChwcmV2aW91c05ld0ZpYmVyLnNpYmxpbmcgPSBvbGRGaWJlciksXG4gICAgICAgICAgICAgICAgKHByZXZpb3VzTmV3RmliZXIgPSBvbGRGaWJlcikpO1xuICAgICAgICAgIGlzSHlkcmF0aW5nICYmIHB1c2hUcmVlRm9yayhyZXR1cm5GaWJlciwgbmV3SWR4KTtcbiAgICAgICAgICByZXR1cm4gcmVzdWx0aW5nRmlyc3RDaGlsZDtcbiAgICAgICAgfVxuICAgICAgICBmb3IgKFxuICAgICAgICAgIG9sZEZpYmVyID0gbWFwUmVtYWluaW5nQ2hpbGRyZW4ob2xkRmliZXIpO1xuICAgICAgICAgIG5ld0lkeCA8IG5ld0NoaWxkcmVuLmxlbmd0aDtcbiAgICAgICAgICBuZXdJZHgrK1xuICAgICAgICApXG4gICAgICAgICAgKG5leHRPbGRGaWJlciA9IHVwZGF0ZUZyb21NYXAoXG4gICAgICAgICAgICBvbGRGaWJlcixcbiAgICAgICAgICAgIHJldHVybkZpYmVyLFxuICAgICAgICAgICAgbmV3SWR4LFxuICAgICAgICAgICAgbmV3Q2hpbGRyZW5bbmV3SWR4XSxcbiAgICAgICAgICAgIGxhbmVzXG4gICAgICAgICAgKSksXG4gICAgICAgICAgICBudWxsICE9PSBuZXh0T2xkRmliZXIgJiZcbiAgICAgICAgICAgICAgKChrbm93bktleXMgPSB3YXJuT25JbnZhbGlkS2V5KFxuICAgICAgICAgICAgICAgIHJldHVybkZpYmVyLFxuICAgICAgICAgICAgICAgIG5leHRPbGRGaWJlcixcbiAgICAgICAgICAgICAgICBuZXdDaGlsZHJlbltuZXdJZHhdLFxuICAgICAgICAgICAgICAgIGtub3duS2V5c1xuICAgICAgICAgICAgICApKSxcbiAgICAgICAgICAgICAgc2hvdWxkVHJhY2tTaWRlRWZmZWN0cyAmJlxuICAgICAgICAgICAgICAgIG51bGwgIT09IG5leHRPbGRGaWJlci5hbHRlcm5hdGUgJiZcbiAgICAgICAgICAgICAgICBvbGRGaWJlci5kZWxldGUoXG4gICAgICAgICAgICAgICAgICBudWxsID09PSBuZXh0T2xkRmliZXIua2V5ID8gbmV3SWR4IDogbmV4dE9sZEZpYmVyLmtleVxuICAgICAgICAgICAgICAgICksXG4gICAgICAgICAgICAgIChjdXJyZW50Rmlyc3RDaGlsZCA9IHBsYWNlQ2hpbGQoXG4gICAgICAgICAgICAgICAgbmV4dE9sZEZpYmVyLFxuICAgICAgICAgICAgICAgIGN1cnJlbnRGaXJzdENoaWxkLFxuICAgICAgICAgICAgICAgIG5ld0lkeFxuICAgICAgICAgICAgICApKSxcbiAgICAgICAgICAgICAgbnVsbCA9PT0gcHJldmlvdXNOZXdGaWJlclxuICAgICAgICAgICAgICAgID8gKHJlc3VsdGluZ0ZpcnN0Q2hpbGQgPSBuZXh0T2xkRmliZXIpXG4gICAgICAgICAgICAgICAgOiAocHJldmlvdXNOZXdGaWJlci5zaWJsaW5nID0gbmV4dE9sZEZpYmVyKSxcbiAgICAgICAgICAgICAgKHByZXZpb3VzTmV3RmliZXIgPSBuZXh0T2xkRmliZXIpKTtcbiAgICAgICAgc2hvdWxkVHJhY2tTaWRlRWZmZWN0cyAmJlxuICAgICAgICAgIG9sZEZpYmVyLmZvckVhY2goZnVuY3Rpb24gKGNoaWxkKSB7XG4gICAgICAgICAgICByZXR1cm4gZGVsZXRlQ2hpbGQocmV0dXJuRmliZXIsIGNoaWxkKTtcbiAgICAgICAgICB9KTtcbiAgICAgICAgaXNIeWRyYXRpbmcgJiYgcHVzaFRyZWVGb3JrKHJldHVybkZpYmVyLCBuZXdJZHgpO1xuICAgICAgICByZXR1cm4gcmVzdWx0aW5nRmlyc3RDaGlsZDtcbiAgICAgIH1cbiAgICAgIGZ1bmN0aW9uIHJlY29uY2lsZUNoaWxkcmVuSXRlcmF0b3IoXG4gICAgICAgIHJldHVybkZpYmVyLFxuICAgICAgICBjdXJyZW50Rmlyc3RDaGlsZCxcbiAgICAgICAgbmV3Q2hpbGRyZW4sXG4gICAgICAgIGxhbmVzXG4gICAgICApIHtcbiAgICAgICAgaWYgKG51bGwgPT0gbmV3Q2hpbGRyZW4pXG4gICAgICAgICAgdGhyb3cgRXJyb3IoXCJBbiBpdGVyYWJsZSBvYmplY3QgcHJvdmlkZWQgbm8gaXRlcmF0b3IuXCIpO1xuICAgICAgICBmb3IgKFxuICAgICAgICAgIHZhciByZXN1bHRpbmdGaXJzdENoaWxkID0gbnVsbCxcbiAgICAgICAgICAgIHByZXZpb3VzTmV3RmliZXIgPSBudWxsLFxuICAgICAgICAgICAgb2xkRmliZXIgPSBjdXJyZW50Rmlyc3RDaGlsZCxcbiAgICAgICAgICAgIG5ld0lkeCA9IChjdXJyZW50Rmlyc3RDaGlsZCA9IDApLFxuICAgICAgICAgICAgbmV4dE9sZEZpYmVyID0gbnVsbCxcbiAgICAgICAgICAgIGtub3duS2V5cyA9IG51bGwsXG4gICAgICAgICAgICBzdGVwID0gbmV3Q2hpbGRyZW4ubmV4dCgpO1xuICAgICAgICAgIG51bGwgIT09IG9sZEZpYmVyICYmICFzdGVwLmRvbmU7XG4gICAgICAgICAgbmV3SWR4KyssIHN0ZXAgPSBuZXdDaGlsZHJlbi5uZXh0KClcbiAgICAgICAgKSB7XG4gICAgICAgICAgb2xkRmliZXIuaW5kZXggPiBuZXdJZHhcbiAgICAgICAgICAgID8gKChuZXh0T2xkRmliZXIgPSBvbGRGaWJlciksIChvbGRGaWJlciA9IG51bGwpKVxuICAgICAgICAgICAgOiAobmV4dE9sZEZpYmVyID0gb2xkRmliZXIuc2libGluZyk7XG4gICAgICAgICAgdmFyIG5ld0ZpYmVyID0gdXBkYXRlU2xvdChyZXR1cm5GaWJlciwgb2xkRmliZXIsIHN0ZXAudmFsdWUsIGxhbmVzKTtcbiAgICAgICAgICBpZiAobnVsbCA9PT0gbmV3RmliZXIpIHtcbiAgICAgICAgICAgIG51bGwgPT09IG9sZEZpYmVyICYmIChvbGRGaWJlciA9IG5leHRPbGRGaWJlcik7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICB9XG4gICAgICAgICAga25vd25LZXlzID0gd2Fybk9uSW52YWxpZEtleShcbiAgICAgICAgICAgIHJldHVybkZpYmVyLFxuICAgICAgICAgICAgbmV3RmliZXIsXG4gICAgICAgICAgICBzdGVwLnZhbHVlLFxuICAgICAgICAgICAga25vd25LZXlzXG4gICAgICAgICAgKTtcbiAgICAgICAgICBzaG91bGRUcmFja1NpZGVFZmZlY3RzICYmXG4gICAgICAgICAgICBvbGRGaWJlciAmJlxuICAgICAgICAgICAgbnVsbCA9PT0gbmV3RmliZXIuYWx0ZXJuYXRlICYmXG4gICAgICAgICAgICBkZWxldGVDaGlsZChyZXR1cm5GaWJlciwgb2xkRmliZXIpO1xuICAgICAgICAgIGN1cnJlbnRGaXJzdENoaWxkID0gcGxhY2VDaGlsZChuZXdGaWJlciwgY3VycmVudEZpcnN0Q2hpbGQsIG5ld0lkeCk7XG4gICAgICAgICAgbnVsbCA9PT0gcHJldmlvdXNOZXdGaWJlclxuICAgICAgICAgICAgPyAocmVzdWx0aW5nRmlyc3RDaGlsZCA9IG5ld0ZpYmVyKVxuICAgICAgICAgICAgOiAocHJldmlvdXNOZXdGaWJlci5zaWJsaW5nID0gbmV3RmliZXIpO1xuICAgICAgICAgIHByZXZpb3VzTmV3RmliZXIgPSBuZXdGaWJlcjtcbiAgICAgICAgICBvbGRGaWJlciA9IG5leHRPbGRGaWJlcjtcbiAgICAgICAgfVxuICAgICAgICBpZiAoc3RlcC5kb25lKVxuICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICBkZWxldGVSZW1haW5pbmdDaGlsZHJlbihyZXR1cm5GaWJlciwgb2xkRmliZXIpLFxuICAgICAgICAgICAgaXNIeWRyYXRpbmcgJiYgcHVzaFRyZWVGb3JrKHJldHVybkZpYmVyLCBuZXdJZHgpLFxuICAgICAgICAgICAgcmVzdWx0aW5nRmlyc3RDaGlsZFxuICAgICAgICAgICk7XG4gICAgICAgIGlmIChudWxsID09PSBvbGRGaWJlcikge1xuICAgICAgICAgIGZvciAoOyAhc3RlcC5kb25lOyBuZXdJZHgrKywgc3RlcCA9IG5ld0NoaWxkcmVuLm5leHQoKSlcbiAgICAgICAgICAgIChvbGRGaWJlciA9IGNyZWF0ZUNoaWxkKHJldHVybkZpYmVyLCBzdGVwLnZhbHVlLCBsYW5lcykpLFxuICAgICAgICAgICAgICBudWxsICE9PSBvbGRGaWJlciAmJlxuICAgICAgICAgICAgICAgICgoa25vd25LZXlzID0gd2Fybk9uSW52YWxpZEtleShcbiAgICAgICAgICAgICAgICAgIHJldHVybkZpYmVyLFxuICAgICAgICAgICAgICAgICAgb2xkRmliZXIsXG4gICAgICAgICAgICAgICAgICBzdGVwLnZhbHVlLFxuICAgICAgICAgICAgICAgICAga25vd25LZXlzXG4gICAgICAgICAgICAgICAgKSksXG4gICAgICAgICAgICAgICAgKGN1cnJlbnRGaXJzdENoaWxkID0gcGxhY2VDaGlsZChcbiAgICAgICAgICAgICAgICAgIG9sZEZpYmVyLFxuICAgICAgICAgICAgICAgICAgY3VycmVudEZpcnN0Q2hpbGQsXG4gICAgICAgICAgICAgICAgICBuZXdJZHhcbiAgICAgICAgICAgICAgICApKSxcbiAgICAgICAgICAgICAgICBudWxsID09PSBwcmV2aW91c05ld0ZpYmVyXG4gICAgICAgICAgICAgICAgICA/IChyZXN1bHRpbmdGaXJzdENoaWxkID0gb2xkRmliZXIpXG4gICAgICAgICAgICAgICAgICA6IChwcmV2aW91c05ld0ZpYmVyLnNpYmxpbmcgPSBvbGRGaWJlciksXG4gICAgICAgICAgICAgICAgKHByZXZpb3VzTmV3RmliZXIgPSBvbGRGaWJlcikpO1xuICAgICAgICAgIGlzSHlkcmF0aW5nICYmIHB1c2hUcmVlRm9yayhyZXR1cm5GaWJlciwgbmV3SWR4KTtcbiAgICAgICAgICByZXR1cm4gcmVzdWx0aW5nRmlyc3RDaGlsZDtcbiAgICAgICAgfVxuICAgICAgICBmb3IgKFxuICAgICAgICAgIG9sZEZpYmVyID0gbWFwUmVtYWluaW5nQ2hpbGRyZW4ob2xkRmliZXIpO1xuICAgICAgICAgICFzdGVwLmRvbmU7XG4gICAgICAgICAgbmV3SWR4KyssIHN0ZXAgPSBuZXdDaGlsZHJlbi5uZXh0KClcbiAgICAgICAgKVxuICAgICAgICAgIChuZXh0T2xkRmliZXIgPSB1cGRhdGVGcm9tTWFwKFxuICAgICAgICAgICAgb2xkRmliZXIsXG4gICAgICAgICAgICByZXR1cm5GaWJlcixcbiAgICAgICAgICAgIG5ld0lkeCxcbiAgICAgICAgICAgIHN0ZXAudmFsdWUsXG4gICAgICAgICAgICBsYW5lc1xuICAgICAgICAgICkpLFxuICAgICAgICAgICAgbnVsbCAhPT0gbmV4dE9sZEZpYmVyICYmXG4gICAgICAgICAgICAgICgoa25vd25LZXlzID0gd2Fybk9uSW52YWxpZEtleShcbiAgICAgICAgICAgICAgICByZXR1cm5GaWJlcixcbiAgICAgICAgICAgICAgICBuZXh0T2xkRmliZXIsXG4gICAgICAgICAgICAgICAgc3RlcC52YWx1ZSxcbiAgICAgICAgICAgICAgICBrbm93bktleXNcbiAgICAgICAgICAgICAgKSksXG4gICAgICAgICAgICAgIHNob3VsZFRyYWNrU2lkZUVmZmVjdHMgJiZcbiAgICAgICAgICAgICAgICBudWxsICE9PSBuZXh0T2xkRmliZXIuYWx0ZXJuYXRlICYmXG4gICAgICAgICAgICAgICAgb2xkRmliZXIuZGVsZXRlKFxuICAgICAgICAgICAgICAgICAgbnVsbCA9PT0gbmV4dE9sZEZpYmVyLmtleSA/IG5ld0lkeCA6IG5leHRPbGRGaWJlci5rZXlcbiAgICAgICAgICAgICAgICApLFxuICAgICAgICAgICAgICAoY3VycmVudEZpcnN0Q2hpbGQgPSBwbGFjZUNoaWxkKFxuICAgICAgICAgICAgICAgIG5leHRPbGRGaWJlcixcbiAgICAgICAgICAgICAgICBjdXJyZW50Rmlyc3RDaGlsZCxcbiAgICAgICAgICAgICAgICBuZXdJZHhcbiAgICAgICAgICAgICAgKSksXG4gICAgICAgICAgICAgIG51bGwgPT09IHByZXZpb3VzTmV3RmliZXJcbiAgICAgICAgICAgICAgICA/IChyZXN1bHRpbmdGaXJzdENoaWxkID0gbmV4dE9sZEZpYmVyKVxuICAgICAgICAgICAgICAgIDogKHByZXZpb3VzTmV3RmliZXIuc2libGluZyA9IG5leHRPbGRGaWJlciksXG4gICAgICAgICAgICAgIChwcmV2aW91c05ld0ZpYmVyID0gbmV4dE9sZEZpYmVyKSk7XG4gICAgICAgIHNob3VsZFRyYWNrU2lkZUVmZmVjdHMgJiZcbiAgICAgICAgICBvbGRGaWJlci5mb3JFYWNoKGZ1bmN0aW9uIChjaGlsZCkge1xuICAgICAgICAgICAgcmV0dXJuIGRlbGV0ZUNoaWxkKHJldHVybkZpYmVyLCBjaGlsZCk7XG4gICAgICAgICAgfSk7XG4gICAgICAgIGlzSHlkcmF0aW5nICYmIHB1c2hUcmVlRm9yayhyZXR1cm5GaWJlciwgbmV3SWR4KTtcbiAgICAgICAgcmV0dXJuIHJlc3VsdGluZ0ZpcnN0Q2hpbGQ7XG4gICAgICB9XG4gICAgICBmdW5jdGlvbiByZWNvbmNpbGVDaGlsZEZpYmVyc0ltcGwoXG4gICAgICAgIHJldHVybkZpYmVyLFxuICAgICAgICBjdXJyZW50Rmlyc3RDaGlsZCxcbiAgICAgICAgbmV3Q2hpbGQsXG4gICAgICAgIGxhbmVzXG4gICAgICApIHtcbiAgICAgICAgXCJvYmplY3RcIiA9PT0gdHlwZW9mIG5ld0NoaWxkICYmXG4gICAgICAgICAgbnVsbCAhPT0gbmV3Q2hpbGQgJiZcbiAgICAgICAgICBuZXdDaGlsZC50eXBlID09PSBSRUFDVF9GUkFHTUVOVF9UWVBFICYmXG4gICAgICAgICAgbnVsbCA9PT0gbmV3Q2hpbGQua2V5ICYmXG4gICAgICAgICAgKHZhbGlkYXRlRnJhZ21lbnRQcm9wcyhuZXdDaGlsZCwgbnVsbCwgcmV0dXJuRmliZXIpLFxuICAgICAgICAgIChuZXdDaGlsZCA9IG5ld0NoaWxkLnByb3BzLmNoaWxkcmVuKSk7XG4gICAgICAgIGlmIChcIm9iamVjdFwiID09PSB0eXBlb2YgbmV3Q2hpbGQgJiYgbnVsbCAhPT0gbmV3Q2hpbGQpIHtcbiAgICAgICAgICBzd2l0Y2ggKG5ld0NoaWxkLiQkdHlwZW9mKSB7XG4gICAgICAgICAgICBjYXNlIFJFQUNUX0VMRU1FTlRfVFlQRTpcbiAgICAgICAgICAgICAgdmFyIHByZXZEZWJ1Z0luZm8gPSBwdXNoRGVidWdJbmZvKG5ld0NoaWxkLl9kZWJ1Z0luZm8pO1xuICAgICAgICAgICAgICBhOiB7XG4gICAgICAgICAgICAgICAgZm9yICh2YXIga2V5ID0gbmV3Q2hpbGQua2V5OyBudWxsICE9PSBjdXJyZW50Rmlyc3RDaGlsZDsgKSB7XG4gICAgICAgICAgICAgICAgICBpZiAoY3VycmVudEZpcnN0Q2hpbGQua2V5ID09PSBrZXkpIHtcbiAgICAgICAgICAgICAgICAgICAga2V5ID0gbmV3Q2hpbGQudHlwZTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGtleSA9PT0gUkVBQ1RfRlJBR01FTlRfVFlQRSkge1xuICAgICAgICAgICAgICAgICAgICAgIGlmICg3ID09PSBjdXJyZW50Rmlyc3RDaGlsZC50YWcpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGRlbGV0ZVJlbWFpbmluZ0NoaWxkcmVuKFxuICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm5GaWJlcixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgY3VycmVudEZpcnN0Q2hpbGQuc2libGluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGxhbmVzID0gdXNlRmliZXIoXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGN1cnJlbnRGaXJzdENoaWxkLFxuICAgICAgICAgICAgICAgICAgICAgICAgICBuZXdDaGlsZC5wcm9wcy5jaGlsZHJlblxuICAgICAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGxhbmVzLnJldHVybiA9IHJldHVybkZpYmVyO1xuICAgICAgICAgICAgICAgICAgICAgICAgbGFuZXMuX2RlYnVnT3duZXIgPSBuZXdDaGlsZC5fb3duZXI7XG4gICAgICAgICAgICAgICAgICAgICAgICBsYW5lcy5fZGVidWdJbmZvID0gY3VycmVudERlYnVnSW5mbztcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhbGlkYXRlRnJhZ21lbnRQcm9wcyhuZXdDaGlsZCwgbGFuZXMsIHJldHVybkZpYmVyKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybkZpYmVyID0gbGFuZXM7XG4gICAgICAgICAgICAgICAgICAgICAgICBicmVhayBhO1xuICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChcbiAgICAgICAgICAgICAgICAgICAgICBjdXJyZW50Rmlyc3RDaGlsZC5lbGVtZW50VHlwZSA9PT0ga2V5IHx8XG4gICAgICAgICAgICAgICAgICAgICAgaXNDb21wYXRpYmxlRmFtaWx5Rm9ySG90UmVsb2FkaW5nKFxuICAgICAgICAgICAgICAgICAgICAgICAgY3VycmVudEZpcnN0Q2hpbGQsXG4gICAgICAgICAgICAgICAgICAgICAgICBuZXdDaGlsZFxuICAgICAgICAgICAgICAgICAgICAgICkgfHxcbiAgICAgICAgICAgICAgICAgICAgICAoXCJvYmplY3RcIiA9PT0gdHlwZW9mIGtleSAmJlxuICAgICAgICAgICAgICAgICAgICAgICAgbnVsbCAhPT0ga2V5ICYmXG4gICAgICAgICAgICAgICAgICAgICAgICBrZXkuJCR0eXBlb2YgPT09IFJFQUNUX0xBWllfVFlQRSAmJlxuICAgICAgICAgICAgICAgICAgICAgICAgY2FsbExhenlJbml0SW5ERVYoa2V5KSA9PT0gY3VycmVudEZpcnN0Q2hpbGQudHlwZSlcbiAgICAgICAgICAgICAgICAgICAgKSB7XG4gICAgICAgICAgICAgICAgICAgICAgZGVsZXRlUmVtYWluaW5nQ2hpbGRyZW4oXG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm5GaWJlcixcbiAgICAgICAgICAgICAgICAgICAgICAgIGN1cnJlbnRGaXJzdENoaWxkLnNpYmxpbmdcbiAgICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgICAgICAgIGxhbmVzID0gdXNlRmliZXIoY3VycmVudEZpcnN0Q2hpbGQsIG5ld0NoaWxkLnByb3BzKTtcbiAgICAgICAgICAgICAgICAgICAgICBjb2VyY2VSZWYobGFuZXMsIG5ld0NoaWxkKTtcbiAgICAgICAgICAgICAgICAgICAgICBsYW5lcy5yZXR1cm4gPSByZXR1cm5GaWJlcjtcbiAgICAgICAgICAgICAgICAgICAgICBsYW5lcy5fZGVidWdPd25lciA9IG5ld0NoaWxkLl9vd25lcjtcbiAgICAgICAgICAgICAgICAgICAgICBsYW5lcy5fZGVidWdJbmZvID0gY3VycmVudERlYnVnSW5mbztcbiAgICAgICAgICAgICAgICAgICAgICByZXR1cm5GaWJlciA9IGxhbmVzO1xuICAgICAgICAgICAgICAgICAgICAgIGJyZWFrIGE7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgZGVsZXRlUmVtYWluaW5nQ2hpbGRyZW4ocmV0dXJuRmliZXIsIGN1cnJlbnRGaXJzdENoaWxkKTtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgICB9IGVsc2UgZGVsZXRlQ2hpbGQocmV0dXJuRmliZXIsIGN1cnJlbnRGaXJzdENoaWxkKTtcbiAgICAgICAgICAgICAgICAgIGN1cnJlbnRGaXJzdENoaWxkID0gY3VycmVudEZpcnN0Q2hpbGQuc2libGluZztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgbmV3Q2hpbGQudHlwZSA9PT0gUkVBQ1RfRlJBR01FTlRfVFlQRVxuICAgICAgICAgICAgICAgICAgPyAoKGxhbmVzID0gY3JlYXRlRmliZXJGcm9tRnJhZ21lbnQoXG4gICAgICAgICAgICAgICAgICAgICAgbmV3Q2hpbGQucHJvcHMuY2hpbGRyZW4sXG4gICAgICAgICAgICAgICAgICAgICAgcmV0dXJuRmliZXIubW9kZSxcbiAgICAgICAgICAgICAgICAgICAgICBsYW5lcyxcbiAgICAgICAgICAgICAgICAgICAgICBuZXdDaGlsZC5rZXlcbiAgICAgICAgICAgICAgICAgICAgKSksXG4gICAgICAgICAgICAgICAgICAgIChsYW5lcy5yZXR1cm4gPSByZXR1cm5GaWJlciksXG4gICAgICAgICAgICAgICAgICAgIChsYW5lcy5fZGVidWdPd25lciA9IHJldHVybkZpYmVyKSxcbiAgICAgICAgICAgICAgICAgICAgKGxhbmVzLl9kZWJ1Z1Rhc2sgPSByZXR1cm5GaWJlci5fZGVidWdUYXNrKSxcbiAgICAgICAgICAgICAgICAgICAgKGxhbmVzLl9kZWJ1Z0luZm8gPSBjdXJyZW50RGVidWdJbmZvKSxcbiAgICAgICAgICAgICAgICAgICAgdmFsaWRhdGVGcmFnbWVudFByb3BzKG5ld0NoaWxkLCBsYW5lcywgcmV0dXJuRmliZXIpLFxuICAgICAgICAgICAgICAgICAgICAocmV0dXJuRmliZXIgPSBsYW5lcykpXG4gICAgICAgICAgICAgICAgICA6ICgobGFuZXMgPSBjcmVhdGVGaWJlckZyb21FbGVtZW50KFxuICAgICAgICAgICAgICAgICAgICAgIG5ld0NoaWxkLFxuICAgICAgICAgICAgICAgICAgICAgIHJldHVybkZpYmVyLm1vZGUsXG4gICAgICAgICAgICAgICAgICAgICAgbGFuZXNcbiAgICAgICAgICAgICAgICAgICAgKSksXG4gICAgICAgICAgICAgICAgICAgIGNvZXJjZVJlZihsYW5lcywgbmV3Q2hpbGQpLFxuICAgICAgICAgICAgICAgICAgICAobGFuZXMucmV0dXJuID0gcmV0dXJuRmliZXIpLFxuICAgICAgICAgICAgICAgICAgICAobGFuZXMuX2RlYnVnSW5mbyA9IGN1cnJlbnREZWJ1Z0luZm8pLFxuICAgICAgICAgICAgICAgICAgICAocmV0dXJuRmliZXIgPSBsYW5lcykpO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIHJldHVybkZpYmVyID0gcGxhY2VTaW5nbGVDaGlsZChyZXR1cm5GaWJlcik7XG4gICAgICAgICAgICAgIGN1cnJlbnREZWJ1Z0luZm8gPSBwcmV2RGVidWdJbmZvO1xuICAgICAgICAgICAgICByZXR1cm4gcmV0dXJuRmliZXI7XG4gICAgICAgICAgICBjYXNlIFJFQUNUX1BPUlRBTF9UWVBFOlxuICAgICAgICAgICAgICBhOiB7XG4gICAgICAgICAgICAgICAgcHJldkRlYnVnSW5mbyA9IG5ld0NoaWxkO1xuICAgICAgICAgICAgICAgIGZvciAoXG4gICAgICAgICAgICAgICAgICBuZXdDaGlsZCA9IHByZXZEZWJ1Z0luZm8ua2V5O1xuICAgICAgICAgICAgICAgICAgbnVsbCAhPT0gY3VycmVudEZpcnN0Q2hpbGQ7XG5cbiAgICAgICAgICAgICAgICApIHtcbiAgICAgICAgICAgICAgICAgIGlmIChjdXJyZW50Rmlyc3RDaGlsZC5rZXkgPT09IG5ld0NoaWxkKVxuICAgICAgICAgICAgICAgICAgICBpZiAoXG4gICAgICAgICAgICAgICAgICAgICAgNCA9PT0gY3VycmVudEZpcnN0Q2hpbGQudGFnICYmXG4gICAgICAgICAgICAgICAgICAgICAgY3VycmVudEZpcnN0Q2hpbGQuc3RhdGVOb2RlLmNvbnRhaW5lckluZm8gPT09XG4gICAgICAgICAgICAgICAgICAgICAgICBwcmV2RGVidWdJbmZvLmNvbnRhaW5lckluZm8gJiZcbiAgICAgICAgICAgICAgICAgICAgICBjdXJyZW50Rmlyc3RDaGlsZC5zdGF0ZU5vZGUuaW1wbGVtZW50YXRpb24gPT09XG4gICAgICAgICAgICAgICAgICAgICAgICBwcmV2RGVidWdJbmZvLmltcGxlbWVudGF0aW9uXG4gICAgICAgICAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICAgICAgICAgIGRlbGV0ZVJlbWFpbmluZ0NoaWxkcmVuKFxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuRmliZXIsXG4gICAgICAgICAgICAgICAgICAgICAgICBjdXJyZW50Rmlyc3RDaGlsZC5zaWJsaW5nXG4gICAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICAgICAgICBsYW5lcyA9IHVzZUZpYmVyKFxuICAgICAgICAgICAgICAgICAgICAgICAgY3VycmVudEZpcnN0Q2hpbGQsXG4gICAgICAgICAgICAgICAgICAgICAgICBwcmV2RGVidWdJbmZvLmNoaWxkcmVuIHx8IFtdXG4gICAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICAgICAgICBsYW5lcy5yZXR1cm4gPSByZXR1cm5GaWJlcjtcbiAgICAgICAgICAgICAgICAgICAgICByZXR1cm5GaWJlciA9IGxhbmVzO1xuICAgICAgICAgICAgICAgICAgICAgIGJyZWFrIGE7XG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgZGVsZXRlUmVtYWluaW5nQ2hpbGRyZW4ocmV0dXJuRmliZXIsIGN1cnJlbnRGaXJzdENoaWxkKTtcbiAgICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgZWxzZSBkZWxldGVDaGlsZChyZXR1cm5GaWJlciwgY3VycmVudEZpcnN0Q2hpbGQpO1xuICAgICAgICAgICAgICAgICAgY3VycmVudEZpcnN0Q2hpbGQgPSBjdXJyZW50Rmlyc3RDaGlsZC5zaWJsaW5nO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBsYW5lcyA9IGNyZWF0ZUZpYmVyRnJvbVBvcnRhbChcbiAgICAgICAgICAgICAgICAgIHByZXZEZWJ1Z0luZm8sXG4gICAgICAgICAgICAgICAgICByZXR1cm5GaWJlci5tb2RlLFxuICAgICAgICAgICAgICAgICAgbGFuZXNcbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgIGxhbmVzLnJldHVybiA9IHJldHVybkZpYmVyO1xuICAgICAgICAgICAgICAgIHJldHVybkZpYmVyID0gbGFuZXM7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgcmV0dXJuIHBsYWNlU2luZ2xlQ2hpbGQocmV0dXJuRmliZXIpO1xuICAgICAgICAgICAgY2FzZSBSRUFDVF9MQVpZX1RZUEU6XG4gICAgICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAgICAgKHByZXZEZWJ1Z0luZm8gPSBwdXNoRGVidWdJbmZvKG5ld0NoaWxkLl9kZWJ1Z0luZm8pKSxcbiAgICAgICAgICAgICAgICAobmV3Q2hpbGQgPSBjYWxsTGF6eUluaXRJbkRFVihuZXdDaGlsZCkpLFxuICAgICAgICAgICAgICAgIChyZXR1cm5GaWJlciA9IHJlY29uY2lsZUNoaWxkRmliZXJzSW1wbChcbiAgICAgICAgICAgICAgICAgIHJldHVybkZpYmVyLFxuICAgICAgICAgICAgICAgICAgY3VycmVudEZpcnN0Q2hpbGQsXG4gICAgICAgICAgICAgICAgICBuZXdDaGlsZCxcbiAgICAgICAgICAgICAgICAgIGxhbmVzXG4gICAgICAgICAgICAgICAgKSksXG4gICAgICAgICAgICAgICAgKGN1cnJlbnREZWJ1Z0luZm8gPSBwcmV2RGVidWdJbmZvKSxcbiAgICAgICAgICAgICAgICByZXR1cm5GaWJlclxuICAgICAgICAgICAgICApO1xuICAgICAgICAgIH1cbiAgICAgICAgICBpZiAoaXNBcnJheUltcGwobmV3Q2hpbGQpKVxuICAgICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgICAgKHByZXZEZWJ1Z0luZm8gPSBwdXNoRGVidWdJbmZvKG5ld0NoaWxkLl9kZWJ1Z0luZm8pKSxcbiAgICAgICAgICAgICAgKHJldHVybkZpYmVyID0gcmVjb25jaWxlQ2hpbGRyZW5BcnJheShcbiAgICAgICAgICAgICAgICByZXR1cm5GaWJlcixcbiAgICAgICAgICAgICAgICBjdXJyZW50Rmlyc3RDaGlsZCxcbiAgICAgICAgICAgICAgICBuZXdDaGlsZCxcbiAgICAgICAgICAgICAgICBsYW5lc1xuICAgICAgICAgICAgICApKSxcbiAgICAgICAgICAgICAgKGN1cnJlbnREZWJ1Z0luZm8gPSBwcmV2RGVidWdJbmZvKSxcbiAgICAgICAgICAgICAgcmV0dXJuRmliZXJcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgaWYgKGdldEl0ZXJhdG9yRm4obmV3Q2hpbGQpKSB7XG4gICAgICAgICAgICBwcmV2RGVidWdJbmZvID0gcHVzaERlYnVnSW5mbyhuZXdDaGlsZC5fZGVidWdJbmZvKTtcbiAgICAgICAgICAgIGtleSA9IGdldEl0ZXJhdG9yRm4obmV3Q2hpbGQpO1xuICAgICAgICAgICAgaWYgKFwiZnVuY3Rpb25cIiAhPT0gdHlwZW9mIGtleSlcbiAgICAgICAgICAgICAgdGhyb3cgRXJyb3IoXG4gICAgICAgICAgICAgICAgXCJBbiBvYmplY3QgaXMgbm90IGFuIGl0ZXJhYmxlLiBUaGlzIGVycm9yIGlzIGxpa2VseSBjYXVzZWQgYnkgYSBidWcgaW4gUmVhY3QuIFBsZWFzZSBmaWxlIGFuIGlzc3VlLlwiXG4gICAgICAgICAgICAgICk7XG4gICAgICAgICAgICB2YXIgbmV3Q2hpbGRyZW4gPSBrZXkuY2FsbChuZXdDaGlsZCk7XG4gICAgICAgICAgICBpZiAobmV3Q2hpbGRyZW4gPT09IG5ld0NoaWxkKSB7XG4gICAgICAgICAgICAgIGlmIChcbiAgICAgICAgICAgICAgICAwICE9PSByZXR1cm5GaWJlci50YWcgfHxcbiAgICAgICAgICAgICAgICBcIltvYmplY3QgR2VuZXJhdG9yRnVuY3Rpb25dXCIgIT09XG4gICAgICAgICAgICAgICAgICBPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwocmV0dXJuRmliZXIudHlwZSkgfHxcbiAgICAgICAgICAgICAgICBcIltvYmplY3QgR2VuZXJhdG9yXVwiICE9PVxuICAgICAgICAgICAgICAgICAgT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKG5ld0NoaWxkcmVuKVxuICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgZGlkV2FybkFib3V0R2VuZXJhdG9ycyB8fFxuICAgICAgICAgICAgICAgICAgY29uc29sZS5lcnJvcihcbiAgICAgICAgICAgICAgICAgICAgXCJVc2luZyBJdGVyYXRvcnMgYXMgY2hpbGRyZW4gaXMgdW5zdXBwb3J0ZWQgYW5kIHdpbGwgbGlrZWx5IHlpZWxkIHVuZXhwZWN0ZWQgcmVzdWx0cyBiZWNhdXNlIGVudW1lcmF0aW5nIGEgZ2VuZXJhdG9yIG11dGF0ZXMgaXQuIFlvdSBtYXkgY29udmVydCBpdCB0byBhbiBhcnJheSB3aXRoIGBBcnJheS5mcm9tKClgIG9yIHRoZSBgWy4uLnNwcmVhZF1gIG9wZXJhdG9yIGJlZm9yZSByZW5kZXJpbmcuIFlvdSBjYW4gYWxzbyB1c2UgYW4gSXRlcmFibGUgdGhhdCBjYW4gaXRlcmF0ZSBtdWx0aXBsZSB0aW1lcyBvdmVyIHRoZSBzYW1lIGl0ZW1zLlwiXG4gICAgICAgICAgICAgICAgICApLFxuICAgICAgICAgICAgICAgICAgKGRpZFdhcm5BYm91dEdlbmVyYXRvcnMgPSAhMCk7XG4gICAgICAgICAgICB9IGVsc2VcbiAgICAgICAgICAgICAgbmV3Q2hpbGQuZW50cmllcyAhPT0ga2V5IHx8XG4gICAgICAgICAgICAgICAgZGlkV2FybkFib3V0TWFwcyB8fFxuICAgICAgICAgICAgICAgIChjb25zb2xlLmVycm9yKFxuICAgICAgICAgICAgICAgICAgXCJVc2luZyBNYXBzIGFzIGNoaWxkcmVuIGlzIG5vdCBzdXBwb3J0ZWQuIFVzZSBhbiBhcnJheSBvZiBrZXllZCBSZWFjdEVsZW1lbnRzIGluc3RlYWQuXCJcbiAgICAgICAgICAgICAgICApLFxuICAgICAgICAgICAgICAgIChkaWRXYXJuQWJvdXRNYXBzID0gITApKTtcbiAgICAgICAgICAgIHJldHVybkZpYmVyID0gcmVjb25jaWxlQ2hpbGRyZW5JdGVyYXRvcihcbiAgICAgICAgICAgICAgcmV0dXJuRmliZXIsXG4gICAgICAgICAgICAgIGN1cnJlbnRGaXJzdENoaWxkLFxuICAgICAgICAgICAgICBuZXdDaGlsZHJlbixcbiAgICAgICAgICAgICAgbGFuZXNcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgICBjdXJyZW50RGVidWdJbmZvID0gcHJldkRlYnVnSW5mbztcbiAgICAgICAgICAgIHJldHVybiByZXR1cm5GaWJlcjtcbiAgICAgICAgICB9XG4gICAgICAgICAgaWYgKFwiZnVuY3Rpb25cIiA9PT0gdHlwZW9mIG5ld0NoaWxkLnRoZW4pXG4gICAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgICAocHJldkRlYnVnSW5mbyA9IHB1c2hEZWJ1Z0luZm8obmV3Q2hpbGQuX2RlYnVnSW5mbykpLFxuICAgICAgICAgICAgICAocmV0dXJuRmliZXIgPSByZWNvbmNpbGVDaGlsZEZpYmVyc0ltcGwoXG4gICAgICAgICAgICAgICAgcmV0dXJuRmliZXIsXG4gICAgICAgICAgICAgICAgY3VycmVudEZpcnN0Q2hpbGQsXG4gICAgICAgICAgICAgICAgdW53cmFwVGhlbmFibGUobmV3Q2hpbGQpLFxuICAgICAgICAgICAgICAgIGxhbmVzXG4gICAgICAgICAgICAgICkpLFxuICAgICAgICAgICAgICAoY3VycmVudERlYnVnSW5mbyA9IHByZXZEZWJ1Z0luZm8pLFxuICAgICAgICAgICAgICByZXR1cm5GaWJlclxuICAgICAgICAgICAgKTtcbiAgICAgICAgICBpZiAobmV3Q2hpbGQuJCR0eXBlb2YgPT09IFJFQUNUX0NPTlRFWFRfVFlQRSlcbiAgICAgICAgICAgIHJldHVybiByZWNvbmNpbGVDaGlsZEZpYmVyc0ltcGwoXG4gICAgICAgICAgICAgIHJldHVybkZpYmVyLFxuICAgICAgICAgICAgICBjdXJyZW50Rmlyc3RDaGlsZCxcbiAgICAgICAgICAgICAgcmVhZENvbnRleHREdXJpbmdSZWNvbmNpbGlhdGlvbihyZXR1cm5GaWJlciwgbmV3Q2hpbGQpLFxuICAgICAgICAgICAgICBsYW5lc1xuICAgICAgICAgICAgKTtcbiAgICAgICAgICB0aHJvd09uSW52YWxpZE9iamVjdFR5cGUocmV0dXJuRmliZXIsIG5ld0NoaWxkKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoXG4gICAgICAgICAgKFwic3RyaW5nXCIgPT09IHR5cGVvZiBuZXdDaGlsZCAmJiBcIlwiICE9PSBuZXdDaGlsZCkgfHxcbiAgICAgICAgICBcIm51bWJlclwiID09PSB0eXBlb2YgbmV3Q2hpbGQgfHxcbiAgICAgICAgICBcImJpZ2ludFwiID09PSB0eXBlb2YgbmV3Q2hpbGRcbiAgICAgICAgKVxuICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAocHJldkRlYnVnSW5mbyA9IFwiXCIgKyBuZXdDaGlsZCksXG4gICAgICAgICAgICBudWxsICE9PSBjdXJyZW50Rmlyc3RDaGlsZCAmJiA2ID09PSBjdXJyZW50Rmlyc3RDaGlsZC50YWdcbiAgICAgICAgICAgICAgPyAoZGVsZXRlUmVtYWluaW5nQ2hpbGRyZW4oXG4gICAgICAgICAgICAgICAgICByZXR1cm5GaWJlcixcbiAgICAgICAgICAgICAgICAgIGN1cnJlbnRGaXJzdENoaWxkLnNpYmxpbmdcbiAgICAgICAgICAgICAgICApLFxuICAgICAgICAgICAgICAgIChsYW5lcyA9IHVzZUZpYmVyKGN1cnJlbnRGaXJzdENoaWxkLCBwcmV2RGVidWdJbmZvKSksXG4gICAgICAgICAgICAgICAgKGxhbmVzLnJldHVybiA9IHJldHVybkZpYmVyKSxcbiAgICAgICAgICAgICAgICAocmV0dXJuRmliZXIgPSBsYW5lcykpXG4gICAgICAgICAgICAgIDogKGRlbGV0ZVJlbWFpbmluZ0NoaWxkcmVuKHJldHVybkZpYmVyLCBjdXJyZW50Rmlyc3RDaGlsZCksXG4gICAgICAgICAgICAgICAgKGxhbmVzID0gY3JlYXRlRmliZXJGcm9tVGV4dChcbiAgICAgICAgICAgICAgICAgIHByZXZEZWJ1Z0luZm8sXG4gICAgICAgICAgICAgICAgICByZXR1cm5GaWJlci5tb2RlLFxuICAgICAgICAgICAgICAgICAgbGFuZXNcbiAgICAgICAgICAgICAgICApKSxcbiAgICAgICAgICAgICAgICAobGFuZXMucmV0dXJuID0gcmV0dXJuRmliZXIpLFxuICAgICAgICAgICAgICAgIChsYW5lcy5fZGVidWdPd25lciA9IHJldHVybkZpYmVyKSxcbiAgICAgICAgICAgICAgICAobGFuZXMuX2RlYnVnVGFzayA9IHJldHVybkZpYmVyLl9kZWJ1Z1Rhc2spLFxuICAgICAgICAgICAgICAgIChsYW5lcy5fZGVidWdJbmZvID0gY3VycmVudERlYnVnSW5mbyksXG4gICAgICAgICAgICAgICAgKHJldHVybkZpYmVyID0gbGFuZXMpKSxcbiAgICAgICAgICAgIHBsYWNlU2luZ2xlQ2hpbGQocmV0dXJuRmliZXIpXG4gICAgICAgICAgKTtcbiAgICAgICAgXCJmdW5jdGlvblwiID09PSB0eXBlb2YgbmV3Q2hpbGQgJiZcbiAgICAgICAgICB3YXJuT25GdW5jdGlvblR5cGUocmV0dXJuRmliZXIsIG5ld0NoaWxkKTtcbiAgICAgICAgXCJzeW1ib2xcIiA9PT0gdHlwZW9mIG5ld0NoaWxkICYmIHdhcm5PblN5bWJvbFR5cGUocmV0dXJuRmliZXIsIG5ld0NoaWxkKTtcbiAgICAgICAgcmV0dXJuIGRlbGV0ZVJlbWFpbmluZ0NoaWxkcmVuKHJldHVybkZpYmVyLCBjdXJyZW50Rmlyc3RDaGlsZCk7XG4gICAgICB9XG4gICAgICByZXR1cm4gZnVuY3Rpb24gKHJldHVybkZpYmVyLCBjdXJyZW50Rmlyc3RDaGlsZCwgbmV3Q2hpbGQsIGxhbmVzKSB7XG4gICAgICAgIHZhciBwcmV2RGVidWdJbmZvID0gY3VycmVudERlYnVnSW5mbztcbiAgICAgICAgY3VycmVudERlYnVnSW5mbyA9IG51bGw7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgdGhlbmFibGVJbmRleENvdW50ZXIgPSAwO1xuICAgICAgICAgIHZhciBmaXJzdENoaWxkRmliZXIgPSByZWNvbmNpbGVDaGlsZEZpYmVyc0ltcGwoXG4gICAgICAgICAgICByZXR1cm5GaWJlcixcbiAgICAgICAgICAgIGN1cnJlbnRGaXJzdENoaWxkLFxuICAgICAgICAgICAgbmV3Q2hpbGQsXG4gICAgICAgICAgICBsYW5lc1xuICAgICAgICAgICk7XG4gICAgICAgICAgdGhlbmFibGVTdGF0ZSA9IG51bGw7XG4gICAgICAgICAgcmV0dXJuIGZpcnN0Q2hpbGRGaWJlcjtcbiAgICAgICAgfSBjYXRjaCAoeCkge1xuICAgICAgICAgIGlmICh4ID09PSBTdXNwZW5zZUV4Y2VwdGlvbiB8fCB4ID09PSBTdXNwZW5zZUFjdGlvbkV4Y2VwdGlvbikgdGhyb3cgeDtcbiAgICAgICAgICB2YXIgZmliZXIgPSBjcmVhdGVGaWJlcigyOSwgeCwgbnVsbCwgcmV0dXJuRmliZXIubW9kZSk7XG4gICAgICAgICAgZmliZXIubGFuZXMgPSBsYW5lcztcbiAgICAgICAgICBmaWJlci5yZXR1cm4gPSByZXR1cm5GaWJlcjtcbiAgICAgICAgICB2YXIgZGVidWdJbmZvID0gKGZpYmVyLl9kZWJ1Z0luZm8gPSBjdXJyZW50RGVidWdJbmZvKTtcbiAgICAgICAgICBmaWJlci5fZGVidWdPd25lciA9IHJldHVybkZpYmVyLl9kZWJ1Z093bmVyO1xuICAgICAgICAgIGZpYmVyLl9kZWJ1Z1Rhc2sgPSByZXR1cm5GaWJlci5fZGVidWdUYXNrO1xuICAgICAgICAgIGlmIChudWxsICE9IGRlYnVnSW5mbylcbiAgICAgICAgICAgIGZvciAodmFyIGkgPSBkZWJ1Z0luZm8ubGVuZ3RoIC0gMTsgMCA8PSBpOyBpLS0pXG4gICAgICAgICAgICAgIGlmIChcInN0cmluZ1wiID09PSB0eXBlb2YgZGVidWdJbmZvW2ldLnN0YWNrKSB7XG4gICAgICAgICAgICAgICAgZmliZXIuX2RlYnVnT3duZXIgPSBkZWJ1Z0luZm9baV07XG4gICAgICAgICAgICAgICAgZmliZXIuX2RlYnVnVGFzayA9IGRlYnVnSW5mb1tpXS5kZWJ1Z1Rhc2s7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICByZXR1cm4gZmliZXI7XG4gICAgICAgIH0gZmluYWxseSB7XG4gICAgICAgICAgY3VycmVudERlYnVnSW5mbyA9IHByZXZEZWJ1Z0luZm87XG4gICAgICAgIH1cbiAgICAgIH07XG4gICAgfVxuICAgIGZ1bmN0aW9uIHB1c2hQcmltYXJ5VHJlZVN1c3BlbnNlSGFuZGxlcihoYW5kbGVyKSB7XG4gICAgICB2YXIgY3VycmVudCA9IGhhbmRsZXIuYWx0ZXJuYXRlO1xuICAgICAgcHVzaChcbiAgICAgICAgc3VzcGVuc2VTdGFja0N1cnNvcixcbiAgICAgICAgc3VzcGVuc2VTdGFja0N1cnNvci5jdXJyZW50ICYgU3VidHJlZVN1c3BlbnNlQ29udGV4dE1hc2ssXG4gICAgICAgIGhhbmRsZXJcbiAgICAgICk7XG4gICAgICBwdXNoKHN1c3BlbnNlSGFuZGxlclN0YWNrQ3Vyc29yLCBoYW5kbGVyLCBoYW5kbGVyKTtcbiAgICAgIG51bGwgPT09IHNoZWxsQm91bmRhcnkgJiZcbiAgICAgICAgKG51bGwgPT09IGN1cnJlbnQgfHwgbnVsbCAhPT0gY3VycmVudFRyZWVIaWRkZW5TdGFja0N1cnNvci5jdXJyZW50XG4gICAgICAgICAgPyAoc2hlbGxCb3VuZGFyeSA9IGhhbmRsZXIpXG4gICAgICAgICAgOiBudWxsICE9PSBjdXJyZW50Lm1lbW9pemVkU3RhdGUgJiYgKHNoZWxsQm91bmRhcnkgPSBoYW5kbGVyKSk7XG4gICAgfVxuICAgIGZ1bmN0aW9uIHB1c2hPZmZzY3JlZW5TdXNwZW5zZUhhbmRsZXIoZmliZXIpIHtcbiAgICAgIGlmICgyMiA9PT0gZmliZXIudGFnKSB7XG4gICAgICAgIGlmIChcbiAgICAgICAgICAocHVzaChzdXNwZW5zZVN0YWNrQ3Vyc29yLCBzdXNwZW5zZVN0YWNrQ3Vyc29yLmN1cnJlbnQsIGZpYmVyKSxcbiAgICAgICAgICBwdXNoKHN1c3BlbnNlSGFuZGxlclN0YWNrQ3Vyc29yLCBmaWJlciwgZmliZXIpLFxuICAgICAgICAgIG51bGwgPT09IHNoZWxsQm91bmRhcnkpXG4gICAgICAgICkge1xuICAgICAgICAgIHZhciBjdXJyZW50ID0gZmliZXIuYWx0ZXJuYXRlO1xuICAgICAgICAgIG51bGwgIT09IGN1cnJlbnQgJiZcbiAgICAgICAgICAgIG51bGwgIT09IGN1cnJlbnQubWVtb2l6ZWRTdGF0ZSAmJlxuICAgICAgICAgICAgKHNoZWxsQm91bmRhcnkgPSBmaWJlcik7XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSByZXVzZVN1c3BlbnNlSGFuZGxlck9uU3RhY2soZmliZXIpO1xuICAgIH1cbiAgICBmdW5jdGlvbiByZXVzZVN1c3BlbnNlSGFuZGxlck9uU3RhY2soZmliZXIpIHtcbiAgICAgIHB1c2goc3VzcGVuc2VTdGFja0N1cnNvciwgc3VzcGVuc2VTdGFja0N1cnNvci5jdXJyZW50LCBmaWJlcik7XG4gICAgICBwdXNoKFxuICAgICAgICBzdXNwZW5zZUhhbmRsZXJTdGFja0N1cnNvcixcbiAgICAgICAgc3VzcGVuc2VIYW5kbGVyU3RhY2tDdXJzb3IuY3VycmVudCxcbiAgICAgICAgZmliZXJcbiAgICAgICk7XG4gICAgfVxuICAgIGZ1bmN0aW9uIHBvcFN1c3BlbnNlSGFuZGxlcihmaWJlcikge1xuICAgICAgcG9wKHN1c3BlbnNlSGFuZGxlclN0YWNrQ3Vyc29yLCBmaWJlcik7XG4gICAgICBzaGVsbEJvdW5kYXJ5ID09PSBmaWJlciAmJiAoc2hlbGxCb3VuZGFyeSA9IG51bGwpO1xuICAgICAgcG9wKHN1c3BlbnNlU3RhY2tDdXJzb3IsIGZpYmVyKTtcbiAgICB9XG4gICAgZnVuY3Rpb24gZmluZEZpcnN0U3VzcGVuZGVkKHJvdykge1xuICAgICAgZm9yICh2YXIgbm9kZSA9IHJvdzsgbnVsbCAhPT0gbm9kZTsgKSB7XG4gICAgICAgIGlmICgxMyA9PT0gbm9kZS50YWcpIHtcbiAgICAgICAgICB2YXIgc3RhdGUgPSBub2RlLm1lbW9pemVkU3RhdGU7XG4gICAgICAgICAgaWYgKFxuICAgICAgICAgICAgbnVsbCAhPT0gc3RhdGUgJiZcbiAgICAgICAgICAgICgoc3RhdGUgPSBzdGF0ZS5kZWh5ZHJhdGVkKSxcbiAgICAgICAgICAgIG51bGwgPT09IHN0YXRlIHx8XG4gICAgICAgICAgICAgIHN0YXRlLmRhdGEgPT09IFNVU1BFTlNFX1BFTkRJTkdfU1RBUlRfREFUQSB8fFxuICAgICAgICAgICAgICBpc1N1c3BlbnNlSW5zdGFuY2VGYWxsYmFjayhzdGF0ZSkpXG4gICAgICAgICAgKVxuICAgICAgICAgICAgcmV0dXJuIG5vZGU7XG4gICAgICAgIH0gZWxzZSBpZiAoXG4gICAgICAgICAgMTkgPT09IG5vZGUudGFnICYmXG4gICAgICAgICAgdm9pZCAwICE9PSBub2RlLm1lbW9pemVkUHJvcHMucmV2ZWFsT3JkZXJcbiAgICAgICAgKSB7XG4gICAgICAgICAgaWYgKDAgIT09IChub2RlLmZsYWdzICYgMTI4KSkgcmV0dXJuIG5vZGU7XG4gICAgICAgIH0gZWxzZSBpZiAobnVsbCAhPT0gbm9kZS5jaGlsZCkge1xuICAgICAgICAgIG5vZGUuY2hpbGQucmV0dXJuID0gbm9kZTtcbiAgICAgICAgICBub2RlID0gbm9kZS5jaGlsZDtcbiAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgfVxuICAgICAgICBpZiAobm9kZSA9PT0gcm93KSBicmVhaztcbiAgICAgICAgZm9yICg7IG51bGwgPT09IG5vZGUuc2libGluZzsgKSB7XG4gICAgICAgICAgaWYgKG51bGwgPT09IG5vZGUucmV0dXJuIHx8IG5vZGUucmV0dXJuID09PSByb3cpIHJldHVybiBudWxsO1xuICAgICAgICAgIG5vZGUgPSBub2RlLnJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBub2RlLnNpYmxpbmcucmV0dXJuID0gbm9kZS5yZXR1cm47XG4gICAgICAgIG5vZGUgPSBub2RlLnNpYmxpbmc7XG4gICAgICB9XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG4gICAgZnVuY3Rpb24gd2Fybk9uSW52YWxpZENhbGxiYWNrKGNhbGxiYWNrKSB7XG4gICAgICBpZiAobnVsbCAhPT0gY2FsbGJhY2sgJiYgXCJmdW5jdGlvblwiICE9PSB0eXBlb2YgY2FsbGJhY2spIHtcbiAgICAgICAgdmFyIGtleSA9IFN0cmluZyhjYWxsYmFjayk7XG4gICAgICAgIGRpZFdhcm5PbkludmFsaWRDYWxsYmFjay5oYXMoa2V5KSB8fFxuICAgICAgICAgIChkaWRXYXJuT25JbnZhbGlkQ2FsbGJhY2suYWRkKGtleSksXG4gICAgICAgICAgY29uc29sZS5lcnJvcihcbiAgICAgICAgICAgIFwiRXhwZWN0ZWQgdGhlIGxhc3Qgb3B0aW9uYWwgYGNhbGxiYWNrYCBhcmd1bWVudCB0byBiZSBhIGZ1bmN0aW9uLiBJbnN0ZWFkIHJlY2VpdmVkOiAlcy5cIixcbiAgICAgICAgICAgIGNhbGxiYWNrXG4gICAgICAgICAgKSk7XG4gICAgICB9XG4gICAgfVxuICAgIGZ1bmN0aW9uIGFwcGx5RGVyaXZlZFN0YXRlRnJvbVByb3BzKFxuICAgICAgd29ya0luUHJvZ3Jlc3MsXG4gICAgICBjdG9yLFxuICAgICAgZ2V0RGVyaXZlZFN0YXRlRnJvbVByb3BzLFxuICAgICAgbmV4dFByb3BzXG4gICAgKSB7XG4gICAgICB2YXIgcHJldlN0YXRlID0gd29ya0luUHJvZ3Jlc3MubWVtb2l6ZWRTdGF0ZSxcbiAgICAgICAgcGFydGlhbFN0YXRlID0gZ2V0RGVyaXZlZFN0YXRlRnJvbVByb3BzKG5leHRQcm9wcywgcHJldlN0YXRlKTtcbiAgICAgIGlmICh3b3JrSW5Qcm9ncmVzcy5tb2RlICYgU3RyaWN0TGVnYWN5TW9kZSkge1xuICAgICAgICBzZXRJc1N0cmljdE1vZGVGb3JEZXZ0b29scyghMCk7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgcGFydGlhbFN0YXRlID0gZ2V0RGVyaXZlZFN0YXRlRnJvbVByb3BzKG5leHRQcm9wcywgcHJldlN0YXRlKTtcbiAgICAgICAgfSBmaW5hbGx5IHtcbiAgICAgICAgICBzZXRJc1N0cmljdE1vZGVGb3JEZXZ0b29scyghMSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIHZvaWQgMCA9PT0gcGFydGlhbFN0YXRlICYmXG4gICAgICAgICgoY3RvciA9IGdldENvbXBvbmVudE5hbWVGcm9tVHlwZShjdG9yKSB8fCBcIkNvbXBvbmVudFwiKSxcbiAgICAgICAgZGlkV2FybkFib3V0VW5kZWZpbmVkRGVyaXZlZFN0YXRlLmhhcyhjdG9yKSB8fFxuICAgICAgICAgIChkaWRXYXJuQWJvdXRVbmRlZmluZWREZXJpdmVkU3RhdGUuYWRkKGN0b3IpLFxuICAgICAgICAgIGNvbnNvbGUuZXJyb3IoXG4gICAgICAgICAgICBcIiVzLmdldERlcml2ZWRTdGF0ZUZyb21Qcm9wcygpOiBBIHZhbGlkIHN0YXRlIG9iamVjdCAob3IgbnVsbCkgbXVzdCBiZSByZXR1cm5lZC4gWW91IGhhdmUgcmV0dXJuZWQgdW5kZWZpbmVkLlwiLFxuICAgICAgICAgICAgY3RvclxuICAgICAgICAgICkpKTtcbiAgICAgIHByZXZTdGF0ZSA9XG4gICAgICAgIG51bGwgPT09IHBhcnRpYWxTdGF0ZSB8fCB2b2lkIDAgPT09IHBhcnRpYWxTdGF0ZVxuICAgICAgICAgID8gcHJldlN0YXRlXG4gICAgICAgICAgOiBhc3NpZ24oe30sIHByZXZTdGF0ZSwgcGFydGlhbFN0YXRlKTtcbiAgICAgIHdvcmtJblByb2dyZXNzLm1lbW9pemVkU3RhdGUgPSBwcmV2U3RhdGU7XG4gICAgICAwID09PSB3b3JrSW5Qcm9ncmVzcy5sYW5lcyAmJlxuICAgICAgICAod29ya0luUHJvZ3Jlc3MudXBkYXRlUXVldWUuYmFzZVN0YXRlID0gcHJldlN0YXRlKTtcbiAgICB9XG4gICAgZnVuY3Rpb24gY2hlY2tTaG91bGRDb21wb25lbnRVcGRhdGUoXG4gICAgICB3b3JrSW5Qcm9ncmVzcyxcbiAgICAgIGN0b3IsXG4gICAgICBvbGRQcm9wcyxcbiAgICAgIG5ld1Byb3BzLFxuICAgICAgb2xkU3RhdGUsXG4gICAgICBuZXdTdGF0ZSxcbiAgICAgIG5leHRDb250ZXh0XG4gICAgKSB7XG4gICAgICB2YXIgaW5zdGFuY2UgPSB3b3JrSW5Qcm9ncmVzcy5zdGF0ZU5vZGU7XG4gICAgICBpZiAoXCJmdW5jdGlvblwiID09PSB0eXBlb2YgaW5zdGFuY2Uuc2hvdWxkQ29tcG9uZW50VXBkYXRlKSB7XG4gICAgICAgIG9sZFByb3BzID0gaW5zdGFuY2Uuc2hvdWxkQ29tcG9uZW50VXBkYXRlKFxuICAgICAgICAgIG5ld1Byb3BzLFxuICAgICAgICAgIG5ld1N0YXRlLFxuICAgICAgICAgIG5leHRDb250ZXh0XG4gICAgICAgICk7XG4gICAgICAgIGlmICh3b3JrSW5Qcm9ncmVzcy5tb2RlICYgU3RyaWN0TGVnYWN5TW9kZSkge1xuICAgICAgICAgIHNldElzU3RyaWN0TW9kZUZvckRldnRvb2xzKCEwKTtcbiAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgb2xkUHJvcHMgPSBpbnN0YW5jZS5zaG91bGRDb21wb25lbnRVcGRhdGUoXG4gICAgICAgICAgICAgIG5ld1Byb3BzLFxuICAgICAgICAgICAgICBuZXdTdGF0ZSxcbiAgICAgICAgICAgICAgbmV4dENvbnRleHRcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgfSBmaW5hbGx5IHtcbiAgICAgICAgICAgIHNldElzU3RyaWN0TW9kZUZvckRldnRvb2xzKCExKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgdm9pZCAwID09PSBvbGRQcm9wcyAmJlxuICAgICAgICAgIGNvbnNvbGUuZXJyb3IoXG4gICAgICAgICAgICBcIiVzLnNob3VsZENvbXBvbmVudFVwZGF0ZSgpOiBSZXR1cm5lZCB1bmRlZmluZWQgaW5zdGVhZCBvZiBhIGJvb2xlYW4gdmFsdWUuIE1ha2Ugc3VyZSB0byByZXR1cm4gdHJ1ZSBvciBmYWxzZS5cIixcbiAgICAgICAgICAgIGdldENvbXBvbmVudE5hbWVGcm9tVHlwZShjdG9yKSB8fCBcIkNvbXBvbmVudFwiXG4gICAgICAgICAgKTtcbiAgICAgICAgcmV0dXJuIG9sZFByb3BzO1xuICAgICAgfVxuICAgICAgcmV0dXJuIGN0b3IucHJvdG90eXBlICYmIGN0b3IucHJvdG90eXBlLmlzUHVyZVJlYWN0Q29tcG9uZW50XG4gICAgICAgID8gIXNoYWxsb3dFcXVhbChvbGRQcm9wcywgbmV3UHJvcHMpIHx8ICFzaGFsbG93RXF1YWwob2xkU3RhdGUsIG5ld1N0YXRlKVxuICAgICAgICA6ICEwO1xuICAgIH1cbiAgICBmdW5jdGlvbiBjYWxsQ29tcG9uZW50V2lsbFJlY2VpdmVQcm9wcyhcbiAgICAgIHdvcmtJblByb2dyZXNzLFxuICAgICAgaW5zdGFuY2UsXG4gICAgICBuZXdQcm9wcyxcbiAgICAgIG5leHRDb250ZXh0XG4gICAgKSB7XG4gICAgICB2YXIgb2xkU3RhdGUgPSBpbnN0YW5jZS5zdGF0ZTtcbiAgICAgIFwiZnVuY3Rpb25cIiA9PT0gdHlwZW9mIGluc3RhbmNlLmNvbXBvbmVudFdpbGxSZWNlaXZlUHJvcHMgJiZcbiAgICAgICAgaW5zdGFuY2UuY29tcG9uZW50V2lsbFJlY2VpdmVQcm9wcyhuZXdQcm9wcywgbmV4dENvbnRleHQpO1xuICAgICAgXCJmdW5jdGlvblwiID09PSB0eXBlb2YgaW5zdGFuY2UuVU5TQUZFX2NvbXBvbmVudFdpbGxSZWNlaXZlUHJvcHMgJiZcbiAgICAgICAgaW5zdGFuY2UuVU5TQUZFX2NvbXBvbmVudFdpbGxSZWNlaXZlUHJvcHMobmV3UHJvcHMsIG5leHRDb250ZXh0KTtcbiAgICAgIGluc3RhbmNlLnN0YXRlICE9PSBvbGRTdGF0ZSAmJlxuICAgICAgICAoKHdvcmtJblByb2dyZXNzID1cbiAgICAgICAgICBnZXRDb21wb25lbnROYW1lRnJvbUZpYmVyKHdvcmtJblByb2dyZXNzKSB8fCBcIkNvbXBvbmVudFwiKSxcbiAgICAgICAgZGlkV2FybkFib3V0U3RhdGVBc3NpZ25tZW50Rm9yQ29tcG9uZW50Lmhhcyh3b3JrSW5Qcm9ncmVzcykgfHxcbiAgICAgICAgICAoZGlkV2FybkFib3V0U3RhdGVBc3NpZ25tZW50Rm9yQ29tcG9uZW50LmFkZCh3b3JrSW5Qcm9ncmVzcyksXG4gICAgICAgICAgY29uc29sZS5lcnJvcihcbiAgICAgICAgICAgIFwiJXMuY29tcG9uZW50V2lsbFJlY2VpdmVQcm9wcygpOiBBc3NpZ25pbmcgZGlyZWN0bHkgdG8gdGhpcy5zdGF0ZSBpcyBkZXByZWNhdGVkIChleGNlcHQgaW5zaWRlIGEgY29tcG9uZW50J3MgY29uc3RydWN0b3IpLiBVc2Ugc2V0U3RhdGUgaW5zdGVhZC5cIixcbiAgICAgICAgICAgIHdvcmtJblByb2dyZXNzXG4gICAgICAgICAgKSksXG4gICAgICAgIGNsYXNzQ29tcG9uZW50VXBkYXRlci5lbnF1ZXVlUmVwbGFjZVN0YXRlKFxuICAgICAgICAgIGluc3RhbmNlLFxuICAgICAgICAgIGluc3RhbmNlLnN0YXRlLFxuICAgICAgICAgIG51bGxcbiAgICAgICAgKSk7XG4gICAgfVxuICAgIGZ1bmN0aW9uIHJlc29sdmVDbGFzc0NvbXBvbmVudFByb3BzKENvbXBvbmVudCwgYmFzZVByb3BzKSB7XG4gICAgICB2YXIgbmV3UHJvcHMgPSBiYXNlUHJvcHM7XG4gICAgICBpZiAoXCJyZWZcIiBpbiBiYXNlUHJvcHMpIHtcbiAgICAgICAgbmV3UHJvcHMgPSB7fTtcbiAgICAgICAgZm9yICh2YXIgcHJvcE5hbWUgaW4gYmFzZVByb3BzKVxuICAgICAgICAgIFwicmVmXCIgIT09IHByb3BOYW1lICYmIChuZXdQcm9wc1twcm9wTmFtZV0gPSBiYXNlUHJvcHNbcHJvcE5hbWVdKTtcbiAgICAgIH1cbiAgICAgIGlmICgoQ29tcG9uZW50ID0gQ29tcG9uZW50LmRlZmF1bHRQcm9wcykpIHtcbiAgICAgICAgbmV3UHJvcHMgPT09IGJhc2VQcm9wcyAmJiAobmV3UHJvcHMgPSBhc3NpZ24oe30sIG5ld1Byb3BzKSk7XG4gICAgICAgIGZvciAodmFyIF9wcm9wTmFtZSBpbiBDb21wb25lbnQpXG4gICAgICAgICAgdm9pZCAwID09PSBuZXdQcm9wc1tfcHJvcE5hbWVdICYmXG4gICAgICAgICAgICAobmV3UHJvcHNbX3Byb3BOYW1lXSA9IENvbXBvbmVudFtfcHJvcE5hbWVdKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBuZXdQcm9wcztcbiAgICB9XG4gICAgZnVuY3Rpb24gZGVmYXVsdE9uVW5jYXVnaHRFcnJvcihlcnJvcikge1xuICAgICAgcmVwb3J0R2xvYmFsRXJyb3IoZXJyb3IpO1xuICAgICAgY29uc29sZS53YXJuKFxuICAgICAgICBcIiVzXFxuXFxuJXNcXG5cIixcbiAgICAgICAgY29tcG9uZW50TmFtZVxuICAgICAgICAgID8gXCJBbiBlcnJvciBvY2N1cnJlZCBpbiB0aGUgPFwiICsgY29tcG9uZW50TmFtZSArIFwiPiBjb21wb25lbnQuXCJcbiAgICAgICAgICA6IFwiQW4gZXJyb3Igb2NjdXJyZWQgaW4gb25lIG9mIHlvdXIgUmVhY3QgY29tcG9uZW50cy5cIixcbiAgICAgICAgXCJDb25zaWRlciBhZGRpbmcgYW4gZXJyb3IgYm91bmRhcnkgdG8geW91ciB0cmVlIHRvIGN1c3RvbWl6ZSBlcnJvciBoYW5kbGluZyBiZWhhdmlvci5cXG5WaXNpdCBodHRwczovL3JlYWN0LmRldi9saW5rL2Vycm9yLWJvdW5kYXJpZXMgdG8gbGVhcm4gbW9yZSBhYm91dCBlcnJvciBib3VuZGFyaWVzLlwiXG4gICAgICApO1xuICAgIH1cbiAgICBmdW5jdGlvbiBkZWZhdWx0T25DYXVnaHRFcnJvcihlcnJvcikge1xuICAgICAgdmFyIGNvbXBvbmVudE5hbWVNZXNzYWdlID0gY29tcG9uZW50TmFtZVxuICAgICAgICAgID8gXCJUaGUgYWJvdmUgZXJyb3Igb2NjdXJyZWQgaW4gdGhlIDxcIiArIGNvbXBvbmVudE5hbWUgKyBcIj4gY29tcG9uZW50LlwiXG4gICAgICAgICAgOiBcIlRoZSBhYm92ZSBlcnJvciBvY2N1cnJlZCBpbiBvbmUgb2YgeW91ciBSZWFjdCBjb21wb25lbnRzLlwiLFxuICAgICAgICByZWNyZWF0ZU1lc3NhZ2UgPVxuICAgICAgICAgIFwiUmVhY3Qgd2lsbCB0cnkgdG8gcmVjcmVhdGUgdGhpcyBjb21wb25lbnQgdHJlZSBmcm9tIHNjcmF0Y2ggdXNpbmcgdGhlIGVycm9yIGJvdW5kYXJ5IHlvdSBwcm92aWRlZCwgXCIgK1xuICAgICAgICAgICgoZXJyb3JCb3VuZGFyeU5hbWUgfHwgXCJBbm9ueW1vdXNcIikgKyBcIi5cIik7XG4gICAgICBpZiAoXG4gICAgICAgIFwib2JqZWN0XCIgPT09IHR5cGVvZiBlcnJvciAmJlxuICAgICAgICBudWxsICE9PSBlcnJvciAmJlxuICAgICAgICBcInN0cmluZ1wiID09PSB0eXBlb2YgZXJyb3IuZW52aXJvbm1lbnROYW1lXG4gICAgICApIHtcbiAgICAgICAgdmFyIEpTQ29tcGlsZXJfaW5saW5lX3Jlc3VsdCA9IGVycm9yLmVudmlyb25tZW50TmFtZTtcbiAgICAgICAgZXJyb3IgPSBbXG4gICAgICAgICAgXCIlb1xcblxcbiVzXFxuXFxuJXNcXG5cIixcbiAgICAgICAgICBlcnJvcixcbiAgICAgICAgICBjb21wb25lbnROYW1lTWVzc2FnZSxcbiAgICAgICAgICByZWNyZWF0ZU1lc3NhZ2VcbiAgICAgICAgXS5zbGljZSgwKTtcbiAgICAgICAgXCJzdHJpbmdcIiA9PT0gdHlwZW9mIGVycm9yWzBdXG4gICAgICAgICAgPyBlcnJvci5zcGxpY2UoXG4gICAgICAgICAgICAgIDAsXG4gICAgICAgICAgICAgIDEsXG4gICAgICAgICAgICAgIGJhZGdlRm9ybWF0ICsgZXJyb3JbMF0sXG4gICAgICAgICAgICAgIGJhZGdlU3R5bGUsXG4gICAgICAgICAgICAgIHBhZCArIEpTQ29tcGlsZXJfaW5saW5lX3Jlc3VsdCArIHBhZCxcbiAgICAgICAgICAgICAgcmVzZXRTdHlsZVxuICAgICAgICAgICAgKVxuICAgICAgICAgIDogZXJyb3Iuc3BsaWNlKFxuICAgICAgICAgICAgICAwLFxuICAgICAgICAgICAgICAwLFxuICAgICAgICAgICAgICBiYWRnZUZvcm1hdCxcbiAgICAgICAgICAgICAgYmFkZ2VTdHlsZSxcbiAgICAgICAgICAgICAgcGFkICsgSlNDb21waWxlcl9pbmxpbmVfcmVzdWx0ICsgcGFkLFxuICAgICAgICAgICAgICByZXNldFN0eWxlXG4gICAgICAgICAgICApO1xuICAgICAgICBlcnJvci51bnNoaWZ0KGNvbnNvbGUpO1xuICAgICAgICBKU0NvbXBpbGVyX2lubGluZV9yZXN1bHQgPSBiaW5kLmFwcGx5KGNvbnNvbGUuZXJyb3IsIGVycm9yKTtcbiAgICAgICAgSlNDb21waWxlcl9pbmxpbmVfcmVzdWx0KCk7XG4gICAgICB9IGVsc2VcbiAgICAgICAgY29uc29sZS5lcnJvcihcbiAgICAgICAgICBcIiVvXFxuXFxuJXNcXG5cXG4lc1xcblwiLFxuICAgICAgICAgIGVycm9yLFxuICAgICAgICAgIGNvbXBvbmVudE5hbWVNZXNzYWdlLFxuICAgICAgICAgIHJlY3JlYXRlTWVzc2FnZVxuICAgICAgICApO1xuICAgIH1cbiAgICBmdW5jdGlvbiBkZWZhdWx0T25SZWNvdmVyYWJsZUVycm9yKGVycm9yKSB7XG4gICAgICByZXBvcnRHbG9iYWxFcnJvcihlcnJvcik7XG4gICAgfVxuICAgIGZ1bmN0aW9uIGxvZ1VuY2F1Z2h0RXJyb3Iocm9vdCwgZXJyb3JJbmZvKSB7XG4gICAgICB0cnkge1xuICAgICAgICBjb21wb25lbnROYW1lID0gZXJyb3JJbmZvLnNvdXJjZVxuICAgICAgICAgID8gZ2V0Q29tcG9uZW50TmFtZUZyb21GaWJlcihlcnJvckluZm8uc291cmNlKVxuICAgICAgICAgIDogbnVsbDtcbiAgICAgICAgZXJyb3JCb3VuZGFyeU5hbWUgPSBudWxsO1xuICAgICAgICB2YXIgZXJyb3IgPSBlcnJvckluZm8udmFsdWU7XG4gICAgICAgIGlmIChudWxsICE9PSBSZWFjdFNoYXJlZEludGVybmFscy5hY3RRdWV1ZSlcbiAgICAgICAgICBSZWFjdFNoYXJlZEludGVybmFscy50aHJvd25FcnJvcnMucHVzaChlcnJvcik7XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgIHZhciBvblVuY2F1Z2h0RXJyb3IgPSByb290Lm9uVW5jYXVnaHRFcnJvcjtcbiAgICAgICAgICBvblVuY2F1Z2h0RXJyb3IoZXJyb3IsIHsgY29tcG9uZW50U3RhY2s6IGVycm9ySW5mby5zdGFjayB9KTtcbiAgICAgICAgfVxuICAgICAgfSBjYXRjaCAoZSQ1KSB7XG4gICAgICAgIHNldFRpbWVvdXQoZnVuY3Rpb24gKCkge1xuICAgICAgICAgIHRocm93IGUkNTtcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfVxuICAgIGZ1bmN0aW9uIGxvZ0NhdWdodEVycm9yKHJvb3QsIGJvdW5kYXJ5LCBlcnJvckluZm8pIHtcbiAgICAgIHRyeSB7XG4gICAgICAgIGNvbXBvbmVudE5hbWUgPSBlcnJvckluZm8uc291cmNlXG4gICAgICAgICAgPyBnZXRDb21wb25lbnROYW1lRnJvbUZpYmVyKGVycm9ySW5mby5zb3VyY2UpXG4gICAgICAgICAgOiBudWxsO1xuICAgICAgICBlcnJvckJvdW5kYXJ5TmFtZSA9IGdldENvbXBvbmVudE5hbWVGcm9tRmliZXIoYm91bmRhcnkpO1xuICAgICAgICB2YXIgb25DYXVnaHRFcnJvciA9IHJvb3Qub25DYXVnaHRFcnJvcjtcbiAgICAgICAgb25DYXVnaHRFcnJvcihlcnJvckluZm8udmFsdWUsIHtcbiAgICAgICAgICBjb21wb25lbnRTdGFjazogZXJyb3JJbmZvLnN0YWNrLFxuICAgICAgICAgIGVycm9yQm91bmRhcnk6IDEgPT09IGJvdW5kYXJ5LnRhZyA/IGJvdW5kYXJ5LnN0YXRlTm9kZSA6IG51bGxcbiAgICAgICAgfSk7XG4gICAgICB9IGNhdGNoIChlJDYpIHtcbiAgICAgICAgc2V0VGltZW91dChmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgdGhyb3cgZSQ2O1xuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9XG4gICAgZnVuY3Rpb24gY3JlYXRlUm9vdEVycm9yVXBkYXRlKHJvb3QsIGVycm9ySW5mbywgbGFuZSkge1xuICAgICAgbGFuZSA9IGNyZWF0ZVVwZGF0ZShsYW5lKTtcbiAgICAgIGxhbmUudGFnID0gQ2FwdHVyZVVwZGF0ZTtcbiAgICAgIGxhbmUucGF5bG9hZCA9IHsgZWxlbWVudDogbnVsbCB9O1xuICAgICAgbGFuZS5jYWxsYmFjayA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgcnVuV2l0aEZpYmVySW5ERVYoZXJyb3JJbmZvLnNvdXJjZSwgbG9nVW5jYXVnaHRFcnJvciwgcm9vdCwgZXJyb3JJbmZvKTtcbiAgICAgIH07XG4gICAgICByZXR1cm4gbGFuZTtcbiAgICB9XG4gICAgZnVuY3Rpb24gY3JlYXRlQ2xhc3NFcnJvclVwZGF0ZShsYW5lKSB7XG4gICAgICBsYW5lID0gY3JlYXRlVXBkYXRlKGxhbmUpO1xuICAgICAgbGFuZS50YWcgPSBDYXB0dXJlVXBkYXRlO1xuICAgICAgcmV0dXJuIGxhbmU7XG4gICAgfVxuICAgIGZ1bmN0aW9uIGluaXRpYWxpemVDbGFzc0Vycm9yVXBkYXRlKHVwZGF0ZSwgcm9vdCwgZmliZXIsIGVycm9ySW5mbykge1xuICAgICAgdmFyIGdldERlcml2ZWRTdGF0ZUZyb21FcnJvciA9IGZpYmVyLnR5cGUuZ2V0RGVyaXZlZFN0YXRlRnJvbUVycm9yO1xuICAgICAgaWYgKFwiZnVuY3Rpb25cIiA9PT0gdHlwZW9mIGdldERlcml2ZWRTdGF0ZUZyb21FcnJvcikge1xuICAgICAgICB2YXIgZXJyb3IgPSBlcnJvckluZm8udmFsdWU7XG4gICAgICAgIHVwZGF0ZS5wYXlsb2FkID0gZnVuY3Rpb24gKCkge1xuICAgICAgICAgIHJldHVybiBnZXREZXJpdmVkU3RhdGVGcm9tRXJyb3IoZXJyb3IpO1xuICAgICAgICB9O1xuICAgICAgICB1cGRhdGUuY2FsbGJhY2sgPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgbWFya0ZhaWxlZEVycm9yQm91bmRhcnlGb3JIb3RSZWxvYWRpbmcoZmliZXIpO1xuICAgICAgICAgIHJ1bldpdGhGaWJlckluREVWKFxuICAgICAgICAgICAgZXJyb3JJbmZvLnNvdXJjZSxcbiAgICAgICAgICAgIGxvZ0NhdWdodEVycm9yLFxuICAgICAgICAgICAgcm9vdCxcbiAgICAgICAgICAgIGZpYmVyLFxuICAgICAgICAgICAgZXJyb3JJbmZvXG4gICAgICAgICAgKTtcbiAgICAgICAgfTtcbiAgICAgIH1cbiAgICAgIHZhciBpbnN0ID0gZmliZXIuc3RhdGVOb2RlO1xuICAgICAgbnVsbCAhPT0gaW5zdCAmJlxuICAgICAgICBcImZ1bmN0aW9uXCIgPT09IHR5cGVvZiBpbnN0LmNvbXBvbmVudERpZENhdGNoICYmXG4gICAgICAgICh1cGRhdGUuY2FsbGJhY2sgPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgbWFya0ZhaWxlZEVycm9yQm91bmRhcnlGb3JIb3RSZWxvYWRpbmcoZmliZXIpO1xuICAgICAgICAgIHJ1bldpdGhGaWJlckluREVWKFxuICAgICAgICAgICAgZXJyb3JJbmZvLnNvdXJjZSxcbiAgICAgICAgICAgIGxvZ0NhdWdodEVycm9yLFxuICAgICAgICAgICAgcm9vdCxcbiAgICAgICAgICAgIGZpYmVyLFxuICAgICAgICAgICAgZXJyb3JJbmZvXG4gICAgICAgICAgKTtcbiAgICAgICAgICBcImZ1bmN0aW9uXCIgIT09IHR5cGVvZiBnZXREZXJpdmVkU3RhdGVGcm9tRXJyb3IgJiZcbiAgICAgICAgICAgIChudWxsID09PSBsZWdhY3lFcnJvckJvdW5kYXJpZXNUaGF0QWxyZWFkeUZhaWxlZFxuICAgICAgICAgICAgICA/IChsZWdhY3lFcnJvckJvdW5kYXJpZXNUaGF0QWxyZWFkeUZhaWxlZCA9IG5ldyBTZXQoW3RoaXNdKSlcbiAgICAgICAgICAgICAgOiBsZWdhY3lFcnJvckJvdW5kYXJpZXNUaGF0QWxyZWFkeUZhaWxlZC5hZGQodGhpcykpO1xuICAgICAgICAgIGNhbGxDb21wb25lbnREaWRDYXRjaEluREVWKHRoaXMsIGVycm9ySW5mbyk7XG4gICAgICAgICAgXCJmdW5jdGlvblwiID09PSB0eXBlb2YgZ2V0RGVyaXZlZFN0YXRlRnJvbUVycm9yIHx8XG4gICAgICAgICAgICAoMCA9PT0gKGZpYmVyLmxhbmVzICYgMikgJiZcbiAgICAgICAgICAgICAgY29uc29sZS5lcnJvcihcbiAgICAgICAgICAgICAgICBcIiVzOiBFcnJvciBib3VuZGFyaWVzIHNob3VsZCBpbXBsZW1lbnQgZ2V0RGVyaXZlZFN0YXRlRnJvbUVycm9yKCkuIEluIHRoYXQgbWV0aG9kLCByZXR1cm4gYSBzdGF0ZSB1cGRhdGUgdG8gZGlzcGxheSBhbiBlcnJvciBtZXNzYWdlIG9yIGZhbGxiYWNrIFVJLlwiLFxuICAgICAgICAgICAgICAgIGdldENvbXBvbmVudE5hbWVGcm9tRmliZXIoZmliZXIpIHx8IFwiVW5rbm93blwiXG4gICAgICAgICAgICAgICkpO1xuICAgICAgICB9KTtcbiAgICB9XG4gICAgZnVuY3Rpb24gdGhyb3dFeGNlcHRpb24oXG4gICAgICByb290LFxuICAgICAgcmV0dXJuRmliZXIsXG4gICAgICBzb3VyY2VGaWJlcixcbiAgICAgIHZhbHVlLFxuICAgICAgcm9vdFJlbmRlckxhbmVzXG4gICAgKSB7XG4gICAgICBzb3VyY2VGaWJlci5mbGFncyB8PSAzMjc2ODtcbiAgICAgIGlzRGV2VG9vbHNQcmVzZW50ICYmIHJlc3RvcmVQZW5kaW5nVXBkYXRlcnMocm9vdCwgcm9vdFJlbmRlckxhbmVzKTtcbiAgICAgIGlmIChcbiAgICAgICAgbnVsbCAhPT0gdmFsdWUgJiZcbiAgICAgICAgXCJvYmplY3RcIiA9PT0gdHlwZW9mIHZhbHVlICYmXG4gICAgICAgIFwiZnVuY3Rpb25cIiA9PT0gdHlwZW9mIHZhbHVlLnRoZW5cbiAgICAgICkge1xuICAgICAgICByZXR1cm5GaWJlciA9IHNvdXJjZUZpYmVyLmFsdGVybmF0ZTtcbiAgICAgICAgbnVsbCAhPT0gcmV0dXJuRmliZXIgJiZcbiAgICAgICAgICBwcm9wYWdhdGVQYXJlbnRDb250ZXh0Q2hhbmdlcyhcbiAgICAgICAgICAgIHJldHVybkZpYmVyLFxuICAgICAgICAgICAgc291cmNlRmliZXIsXG4gICAgICAgICAgICByb290UmVuZGVyTGFuZXMsXG4gICAgICAgICAgICAhMFxuICAgICAgICAgICk7XG4gICAgICAgIGlzSHlkcmF0aW5nICYmIChkaWRTdXNwZW5kT3JFcnJvckRFViA9ICEwKTtcbiAgICAgICAgc291cmNlRmliZXIgPSBzdXNwZW5zZUhhbmRsZXJTdGFja0N1cnNvci5jdXJyZW50O1xuICAgICAgICBpZiAobnVsbCAhPT0gc291cmNlRmliZXIpIHtcbiAgICAgICAgICBzd2l0Y2ggKHNvdXJjZUZpYmVyLnRhZykge1xuICAgICAgICAgICAgY2FzZSAxMzpcbiAgICAgICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgICAgICBudWxsID09PSBzaGVsbEJvdW5kYXJ5XG4gICAgICAgICAgICAgICAgICA/IHJlbmRlckRpZFN1c3BlbmREZWxheUlmUG9zc2libGUoKVxuICAgICAgICAgICAgICAgICAgOiBudWxsID09PSBzb3VyY2VGaWJlci5hbHRlcm5hdGUgJiZcbiAgICAgICAgICAgICAgICAgICAgd29ya0luUHJvZ3Jlc3NSb290RXhpdFN0YXR1cyA9PT0gUm9vdEluUHJvZ3Jlc3MgJiZcbiAgICAgICAgICAgICAgICAgICAgKHdvcmtJblByb2dyZXNzUm9vdEV4aXRTdGF0dXMgPSBSb290U3VzcGVuZGVkKSxcbiAgICAgICAgICAgICAgICAoc291cmNlRmliZXIuZmxhZ3MgJj0gLTI1NyksXG4gICAgICAgICAgICAgICAgKHNvdXJjZUZpYmVyLmZsYWdzIHw9IDY1NTM2KSxcbiAgICAgICAgICAgICAgICAoc291cmNlRmliZXIubGFuZXMgPSByb290UmVuZGVyTGFuZXMpLFxuICAgICAgICAgICAgICAgIHZhbHVlID09PSBub29wU3VzcGVuc2V5Q29tbWl0VGhlbmFibGVcbiAgICAgICAgICAgICAgICAgID8gKHNvdXJjZUZpYmVyLmZsYWdzIHw9IDE2Mzg0KVxuICAgICAgICAgICAgICAgICAgOiAoKHJldHVybkZpYmVyID0gc291cmNlRmliZXIudXBkYXRlUXVldWUpLFxuICAgICAgICAgICAgICAgICAgICBudWxsID09PSByZXR1cm5GaWJlclxuICAgICAgICAgICAgICAgICAgICAgID8gKHNvdXJjZUZpYmVyLnVwZGF0ZVF1ZXVlID0gbmV3IFNldChbdmFsdWVdKSlcbiAgICAgICAgICAgICAgICAgICAgICA6IHJldHVybkZpYmVyLmFkZCh2YWx1ZSksXG4gICAgICAgICAgICAgICAgICAgIGF0dGFjaFBpbmdMaXN0ZW5lcihyb290LCB2YWx1ZSwgcm9vdFJlbmRlckxhbmVzKSksXG4gICAgICAgICAgICAgICAgITFcbiAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIGNhc2UgMjI6XG4gICAgICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAgICAgKHNvdXJjZUZpYmVyLmZsYWdzIHw9IDY1NTM2KSxcbiAgICAgICAgICAgICAgICB2YWx1ZSA9PT0gbm9vcFN1c3BlbnNleUNvbW1pdFRoZW5hYmxlXG4gICAgICAgICAgICAgICAgICA/IChzb3VyY2VGaWJlci5mbGFncyB8PSAxNjM4NClcbiAgICAgICAgICAgICAgICAgIDogKChyZXR1cm5GaWJlciA9IHNvdXJjZUZpYmVyLnVwZGF0ZVF1ZXVlKSxcbiAgICAgICAgICAgICAgICAgICAgbnVsbCA9PT0gcmV0dXJuRmliZXJcbiAgICAgICAgICAgICAgICAgICAgICA/ICgocmV0dXJuRmliZXIgPSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIHRyYW5zaXRpb25zOiBudWxsLFxuICAgICAgICAgICAgICAgICAgICAgICAgICBtYXJrZXJJbnN0YW5jZXM6IG51bGwsXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHJldHJ5UXVldWU6IG5ldyBTZXQoW3ZhbHVlXSlcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgICAgICAgICAgKHNvdXJjZUZpYmVyLnVwZGF0ZVF1ZXVlID0gcmV0dXJuRmliZXIpKVxuICAgICAgICAgICAgICAgICAgICAgIDogKChzb3VyY2VGaWJlciA9IHJldHVybkZpYmVyLnJldHJ5UXVldWUpLFxuICAgICAgICAgICAgICAgICAgICAgICAgbnVsbCA9PT0gc291cmNlRmliZXJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPyAocmV0dXJuRmliZXIucmV0cnlRdWV1ZSA9IG5ldyBTZXQoW3ZhbHVlXSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDogc291cmNlRmliZXIuYWRkKHZhbHVlKSksXG4gICAgICAgICAgICAgICAgICAgIGF0dGFjaFBpbmdMaXN0ZW5lcihyb290LCB2YWx1ZSwgcm9vdFJlbmRlckxhbmVzKSksXG4gICAgICAgICAgICAgICAgITFcbiAgICAgICAgICAgICAgKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgdGhyb3cgRXJyb3IoXG4gICAgICAgICAgICBcIlVuZXhwZWN0ZWQgU3VzcGVuc2UgaGFuZGxlciB0YWcgKFwiICtcbiAgICAgICAgICAgICAgc291cmNlRmliZXIudGFnICtcbiAgICAgICAgICAgICAgXCIpLiBUaGlzIGlzIGEgYnVnIGluIFJlYWN0LlwiXG4gICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgICAgICBhdHRhY2hQaW5nTGlzdGVuZXIocm9vdCwgdmFsdWUsIHJvb3RSZW5kZXJMYW5lcyk7XG4gICAgICAgIHJlbmRlckRpZFN1c3BlbmREZWxheUlmUG9zc2libGUoKTtcbiAgICAgICAgcmV0dXJuICExO1xuICAgICAgfVxuICAgICAgaWYgKGlzSHlkcmF0aW5nKVxuICAgICAgICByZXR1cm4gKFxuICAgICAgICAgIChkaWRTdXNwZW5kT3JFcnJvckRFViA9ICEwKSxcbiAgICAgICAgICAocmV0dXJuRmliZXIgPSBzdXNwZW5zZUhhbmRsZXJTdGFja0N1cnNvci5jdXJyZW50KSxcbiAgICAgICAgICBudWxsICE9PSByZXR1cm5GaWJlclxuICAgICAgICAgICAgPyAoMCA9PT0gKHJldHVybkZpYmVyLmZsYWdzICYgNjU1MzYpICYmIChyZXR1cm5GaWJlci5mbGFncyB8PSAyNTYpLFxuICAgICAgICAgICAgICAocmV0dXJuRmliZXIuZmxhZ3MgfD0gNjU1MzYpLFxuICAgICAgICAgICAgICAocmV0dXJuRmliZXIubGFuZXMgPSByb290UmVuZGVyTGFuZXMpLFxuICAgICAgICAgICAgICB2YWx1ZSAhPT0gSHlkcmF0aW9uTWlzbWF0Y2hFeGNlcHRpb24gJiZcbiAgICAgICAgICAgICAgICBxdWV1ZUh5ZHJhdGlvbkVycm9yKFxuICAgICAgICAgICAgICAgICAgY3JlYXRlQ2FwdHVyZWRWYWx1ZUF0RmliZXIoXG4gICAgICAgICAgICAgICAgICAgIEVycm9yKFxuICAgICAgICAgICAgICAgICAgICAgIFwiVGhlcmUgd2FzIGFuIGVycm9yIHdoaWxlIGh5ZHJhdGluZyBidXQgUmVhY3Qgd2FzIGFibGUgdG8gcmVjb3ZlciBieSBpbnN0ZWFkIGNsaWVudCByZW5kZXJpbmcgZnJvbSB0aGUgbmVhcmVzdCBTdXNwZW5zZSBib3VuZGFyeS5cIixcbiAgICAgICAgICAgICAgICAgICAgICB7IGNhdXNlOiB2YWx1ZSB9XG4gICAgICAgICAgICAgICAgICAgICksXG4gICAgICAgICAgICAgICAgICAgIHNvdXJjZUZpYmVyXG4gICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgKSlcbiAgICAgICAgICAgIDogKHZhbHVlICE9PSBIeWRyYXRpb25NaXNtYXRjaEV4Y2VwdGlvbiAmJlxuICAgICAgICAgICAgICAgIHF1ZXVlSHlkcmF0aW9uRXJyb3IoXG4gICAgICAgICAgICAgICAgICBjcmVhdGVDYXB0dXJlZFZhbHVlQXRGaWJlcihcbiAgICAgICAgICAgICAgICAgICAgRXJyb3IoXG4gICAgICAgICAgICAgICAgICAgICAgXCJUaGVyZSB3YXMgYW4gZXJyb3Igd2hpbGUgaHlkcmF0aW5nIGJ1dCBSZWFjdCB3YXMgYWJsZSB0byByZWNvdmVyIGJ5IGluc3RlYWQgY2xpZW50IHJlbmRlcmluZyB0aGUgZW50aXJlIHJvb3QuXCIsXG4gICAgICAgICAgICAgICAgICAgICAgeyBjYXVzZTogdmFsdWUgfVxuICAgICAgICAgICAgICAgICAgICApLFxuICAgICAgICAgICAgICAgICAgICBzb3VyY2VGaWJlclxuICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgICksXG4gICAgICAgICAgICAgIChyb290ID0gcm9vdC5jdXJyZW50LmFsdGVybmF0ZSksXG4gICAgICAgICAgICAgIChyb290LmZsYWdzIHw9IDY1NTM2KSxcbiAgICAgICAgICAgICAgKHJvb3RSZW5kZXJMYW5lcyAmPSAtcm9vdFJlbmRlckxhbmVzKSxcbiAgICAgICAgICAgICAgKHJvb3QubGFuZXMgfD0gcm9vdFJlbmRlckxhbmVzKSxcbiAgICAgICAgICAgICAgKHZhbHVlID0gY3JlYXRlQ2FwdHVyZWRWYWx1ZUF0RmliZXIodmFsdWUsIHNvdXJjZUZpYmVyKSksXG4gICAgICAgICAgICAgIChyb290UmVuZGVyTGFuZXMgPSBjcmVhdGVSb290RXJyb3JVcGRhdGUoXG4gICAgICAgICAgICAgICAgcm9vdC5zdGF0ZU5vZGUsXG4gICAgICAgICAgICAgICAgdmFsdWUsXG4gICAgICAgICAgICAgICAgcm9vdFJlbmRlckxhbmVzXG4gICAgICAgICAgICAgICkpLFxuICAgICAgICAgICAgICBlbnF1ZXVlQ2FwdHVyZWRVcGRhdGUocm9vdCwgcm9vdFJlbmRlckxhbmVzKSxcbiAgICAgICAgICAgICAgd29ya0luUHJvZ3Jlc3NSb290RXhpdFN0YXR1cyAhPT0gUm9vdFN1c3BlbmRlZFdpdGhEZWxheSAmJlxuICAgICAgICAgICAgICAgICh3b3JrSW5Qcm9ncmVzc1Jvb3RFeGl0U3RhdHVzID0gUm9vdEVycm9yZWQpKSxcbiAgICAgICAgICAhMVxuICAgICAgICApO1xuICAgICAgdmFyIGVycm9yID0gY3JlYXRlQ2FwdHVyZWRWYWx1ZUF0RmliZXIoXG4gICAgICAgIEVycm9yKFxuICAgICAgICAgIFwiVGhlcmUgd2FzIGFuIGVycm9yIGR1cmluZyBjb25jdXJyZW50IHJlbmRlcmluZyBidXQgUmVhY3Qgd2FzIGFibGUgdG8gcmVjb3ZlciBieSBpbnN0ZWFkIHN5bmNocm9ub3VzbHkgcmVuZGVyaW5nIHRoZSBlbnRpcmUgcm9vdC5cIixcbiAgICAgICAgICB7IGNhdXNlOiB2YWx1ZSB9XG4gICAgICAgICksXG4gICAgICAgIHNvdXJjZUZpYmVyXG4gICAgICApO1xuICAgICAgbnVsbCA9PT0gd29ya0luUHJvZ3Jlc3NSb290Q29uY3VycmVudEVycm9yc1xuICAgICAgICA/ICh3b3JrSW5Qcm9ncmVzc1Jvb3RDb25jdXJyZW50RXJyb3JzID0gW2Vycm9yXSlcbiAgICAgICAgOiB3b3JrSW5Qcm9ncmVzc1Jvb3RDb25jdXJyZW50RXJyb3JzLnB1c2goZXJyb3IpO1xuICAgICAgd29ya0luUHJvZ3Jlc3NSb290RXhpdFN0YXR1cyAhPT0gUm9vdFN1c3BlbmRlZFdpdGhEZWxheSAmJlxuICAgICAgICAod29ya0luUHJvZ3Jlc3NSb290RXhpdFN0YXR1cyA9IFJvb3RFcnJvcmVkKTtcbiAgICAgIGlmIChudWxsID09PSByZXR1cm5GaWJlcikgcmV0dXJuICEwO1xuICAgICAgdmFsdWUgPSBjcmVhdGVDYXB0dXJlZFZhbHVlQXRGaWJlcih2YWx1ZSwgc291cmNlRmliZXIpO1xuICAgICAgc291cmNlRmliZXIgPSByZXR1cm5GaWJlcjtcbiAgICAgIGRvIHtcbiAgICAgICAgc3dpdGNoIChzb3VyY2VGaWJlci50YWcpIHtcbiAgICAgICAgICBjYXNlIDM6XG4gICAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgICAoc291cmNlRmliZXIuZmxhZ3MgfD0gNjU1MzYpLFxuICAgICAgICAgICAgICAocm9vdCA9IHJvb3RSZW5kZXJMYW5lcyAmIC1yb290UmVuZGVyTGFuZXMpLFxuICAgICAgICAgICAgICAoc291cmNlRmliZXIubGFuZXMgfD0gcm9vdCksXG4gICAgICAgICAgICAgIChyb290ID0gY3JlYXRlUm9vdEVycm9yVXBkYXRlKFxuICAgICAgICAgICAgICAgIHNvdXJjZUZpYmVyLnN0YXRlTm9kZSxcbiAgICAgICAgICAgICAgICB2YWx1ZSxcbiAgICAgICAgICAgICAgICByb290XG4gICAgICAgICAgICAgICkpLFxuICAgICAgICAgICAgICBlbnF1ZXVlQ2FwdHVyZWRVcGRhdGUoc291cmNlRmliZXIsIHJvb3QpLFxuICAgICAgICAgICAgICAhMVxuICAgICAgICAgICAgKTtcbiAgICAgICAgICBjYXNlIDE6XG4gICAgICAgICAgICBpZiAoXG4gICAgICAgICAgICAgICgocmV0dXJuRmliZXIgPSBzb3VyY2VGaWJlci50eXBlKSxcbiAgICAgICAgICAgICAgKGVycm9yID0gc291cmNlRmliZXIuc3RhdGVOb2RlKSxcbiAgICAgICAgICAgICAgMCA9PT0gKHNvdXJjZUZpYmVyLmZsYWdzICYgMTI4KSAmJlxuICAgICAgICAgICAgICAgIChcImZ1bmN0aW9uXCIgPT09IHR5cGVvZiByZXR1cm5GaWJlci5nZXREZXJpdmVkU3RhdGVGcm9tRXJyb3IgfHxcbiAgICAgICAgICAgICAgICAgIChudWxsICE9PSBlcnJvciAmJlxuICAgICAgICAgICAgICAgICAgICBcImZ1bmN0aW9uXCIgPT09IHR5cGVvZiBlcnJvci5jb21wb25lbnREaWRDYXRjaCAmJlxuICAgICAgICAgICAgICAgICAgICAobnVsbCA9PT0gbGVnYWN5RXJyb3JCb3VuZGFyaWVzVGhhdEFscmVhZHlGYWlsZWQgfHxcbiAgICAgICAgICAgICAgICAgICAgICAhbGVnYWN5RXJyb3JCb3VuZGFyaWVzVGhhdEFscmVhZHlGYWlsZWQuaGFzKGVycm9yKSkpKSlcbiAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgICAgICAoc291cmNlRmliZXIuZmxhZ3MgfD0gNjU1MzYpLFxuICAgICAgICAgICAgICAgIChyb290UmVuZGVyTGFuZXMgJj0gLXJvb3RSZW5kZXJMYW5lcyksXG4gICAgICAgICAgICAgICAgKHNvdXJjZUZpYmVyLmxhbmVzIHw9IHJvb3RSZW5kZXJMYW5lcyksXG4gICAgICAgICAgICAgICAgKHJvb3RSZW5kZXJMYW5lcyA9IGNyZWF0ZUNsYXNzRXJyb3JVcGRhdGUocm9vdFJlbmRlckxhbmVzKSksXG4gICAgICAgICAgICAgICAgaW5pdGlhbGl6ZUNsYXNzRXJyb3JVcGRhdGUoXG4gICAgICAgICAgICAgICAgICByb290UmVuZGVyTGFuZXMsXG4gICAgICAgICAgICAgICAgICByb290LFxuICAgICAgICAgICAgICAgICAgc291cmNlRmliZXIsXG4gICAgICAgICAgICAgICAgICB2YWx1ZVxuICAgICAgICAgICAgICAgICksXG4gICAgICAgICAgICAgICAgZW5xdWV1ZUNhcHR1cmVkVXBkYXRlKHNvdXJjZUZpYmVyLCByb290UmVuZGVyTGFuZXMpLFxuICAgICAgICAgICAgICAgICExXG4gICAgICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICAgICAgc291cmNlRmliZXIgPSBzb3VyY2VGaWJlci5yZXR1cm47XG4gICAgICB9IHdoaWxlIChudWxsICE9PSBzb3VyY2VGaWJlcik7XG4gICAgICByZXR1cm4gITE7XG4gICAgfVxuICAgIGZ1bmN0aW9uIHJlY29uY2lsZUNoaWxkcmVuKFxuICAgICAgY3VycmVudCxcbiAgICAgIHdvcmtJblByb2dyZXNzLFxuICAgICAgbmV4dENoaWxkcmVuLFxuICAgICAgcmVuZGVyTGFuZXNcbiAgICApIHtcbiAgICAgIHdvcmtJblByb2dyZXNzLmNoaWxkID1cbiAgICAgICAgbnVsbCA9PT0gY3VycmVudFxuICAgICAgICAgID8gbW91bnRDaGlsZEZpYmVycyh3b3JrSW5Qcm9ncmVzcywgbnVsbCwgbmV4dENoaWxkcmVuLCByZW5kZXJMYW5lcylcbiAgICAgICAgICA6IHJlY29uY2lsZUNoaWxkRmliZXJzKFxuICAgICAgICAgICAgICB3b3JrSW5Qcm9ncmVzcyxcbiAgICAgICAgICAgICAgY3VycmVudC5jaGlsZCxcbiAgICAgICAgICAgICAgbmV4dENoaWxkcmVuLFxuICAgICAgICAgICAgICByZW5kZXJMYW5lc1xuICAgICAgICAgICAgKTtcbiAgICB9XG4gICAgZnVuY3Rpb24gdXBkYXRlRm9yd2FyZFJlZihcbiAgICAgIGN1cnJlbnQsXG4gICAgICB3b3JrSW5Qcm9ncmVzcyxcbiAgICAgIENvbXBvbmVudCxcbiAgICAgIG5leHRQcm9wcyxcbiAgICAgIHJlbmRlckxhbmVzXG4gICAgKSB7XG4gICAgICBDb21wb25lbnQgPSBDb21wb25lbnQucmVuZGVyO1xuICAgICAgdmFyIHJlZiA9IHdvcmtJblByb2dyZXNzLnJlZjtcbiAgICAgIGlmIChcInJlZlwiIGluIG5leHRQcm9wcykge1xuICAgICAgICB2YXIgcHJvcHNXaXRob3V0UmVmID0ge307XG4gICAgICAgIGZvciAodmFyIGtleSBpbiBuZXh0UHJvcHMpXG4gICAgICAgICAgXCJyZWZcIiAhPT0ga2V5ICYmIChwcm9wc1dpdGhvdXRSZWZba2V5XSA9IG5leHRQcm9wc1trZXldKTtcbiAgICAgIH0gZWxzZSBwcm9wc1dpdGhvdXRSZWYgPSBuZXh0UHJvcHM7XG4gICAgICBwcmVwYXJlVG9SZWFkQ29udGV4dCh3b3JrSW5Qcm9ncmVzcyk7XG4gICAgICBtYXJrQ29tcG9uZW50UmVuZGVyU3RhcnRlZCh3b3JrSW5Qcm9ncmVzcyk7XG4gICAgICBuZXh0UHJvcHMgPSByZW5kZXJXaXRoSG9va3MoXG4gICAgICAgIGN1cnJlbnQsXG4gICAgICAgIHdvcmtJblByb2dyZXNzLFxuICAgICAgICBDb21wb25lbnQsXG4gICAgICAgIHByb3BzV2l0aG91dFJlZixcbiAgICAgICAgcmVmLFxuICAgICAgICByZW5kZXJMYW5lc1xuICAgICAgKTtcbiAgICAgIGtleSA9IGNoZWNrRGlkUmVuZGVySWRIb29rKCk7XG4gICAgICBtYXJrQ29tcG9uZW50UmVuZGVyU3RvcHBlZCgpO1xuICAgICAgaWYgKG51bGwgIT09IGN1cnJlbnQgJiYgIWRpZFJlY2VpdmVVcGRhdGUpXG4gICAgICAgIHJldHVybiAoXG4gICAgICAgICAgYmFpbG91dEhvb2tzKGN1cnJlbnQsIHdvcmtJblByb2dyZXNzLCByZW5kZXJMYW5lcyksXG4gICAgICAgICAgYmFpbG91dE9uQWxyZWFkeUZpbmlzaGVkV29yayhjdXJyZW50LCB3b3JrSW5Qcm9ncmVzcywgcmVuZGVyTGFuZXMpXG4gICAgICAgICk7XG4gICAgICBpc0h5ZHJhdGluZyAmJiBrZXkgJiYgcHVzaE1hdGVyaWFsaXplZFRyZWVJZCh3b3JrSW5Qcm9ncmVzcyk7XG4gICAgICB3b3JrSW5Qcm9ncmVzcy5mbGFncyB8PSAxO1xuICAgICAgcmVjb25jaWxlQ2hpbGRyZW4oY3VycmVudCwgd29ya0luUHJvZ3Jlc3MsIG5leHRQcm9wcywgcmVuZGVyTGFuZXMpO1xuICAgICAgcmV0dXJuIHdvcmtJblByb2dyZXNzLmNoaWxkO1xuICAgIH1cbiAgICBmdW5jdGlvbiB1cGRhdGVNZW1vQ29tcG9uZW50KFxuICAgICAgY3VycmVudCxcbiAgICAgIHdvcmtJblByb2dyZXNzLFxuICAgICAgQ29tcG9uZW50LFxuICAgICAgbmV4dFByb3BzLFxuICAgICAgcmVuZGVyTGFuZXNcbiAgICApIHtcbiAgICAgIGlmIChudWxsID09PSBjdXJyZW50KSB7XG4gICAgICAgIHZhciB0eXBlID0gQ29tcG9uZW50LnR5cGU7XG4gICAgICAgIGlmIChcbiAgICAgICAgICBcImZ1bmN0aW9uXCIgPT09IHR5cGVvZiB0eXBlICYmXG4gICAgICAgICAgIXNob3VsZENvbnN0cnVjdCh0eXBlKSAmJlxuICAgICAgICAgIHZvaWQgMCA9PT0gdHlwZS5kZWZhdWx0UHJvcHMgJiZcbiAgICAgICAgICBudWxsID09PSBDb21wb25lbnQuY29tcGFyZVxuICAgICAgICApXG4gICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgIChDb21wb25lbnQgPSByZXNvbHZlRnVuY3Rpb25Gb3JIb3RSZWxvYWRpbmcodHlwZSkpLFxuICAgICAgICAgICAgKHdvcmtJblByb2dyZXNzLnRhZyA9IDE1KSxcbiAgICAgICAgICAgICh3b3JrSW5Qcm9ncmVzcy50eXBlID0gQ29tcG9uZW50KSxcbiAgICAgICAgICAgIHZhbGlkYXRlRnVuY3Rpb25Db21wb25lbnRJbkRldih3b3JrSW5Qcm9ncmVzcywgdHlwZSksXG4gICAgICAgICAgICB1cGRhdGVTaW1wbGVNZW1vQ29tcG9uZW50KFxuICAgICAgICAgICAgICBjdXJyZW50LFxuICAgICAgICAgICAgICB3b3JrSW5Qcm9ncmVzcyxcbiAgICAgICAgICAgICAgQ29tcG9uZW50LFxuICAgICAgICAgICAgICBuZXh0UHJvcHMsXG4gICAgICAgICAgICAgIHJlbmRlckxhbmVzXG4gICAgICAgICAgICApXG4gICAgICAgICAgKTtcbiAgICAgICAgY3VycmVudCA9IGNyZWF0ZUZpYmVyRnJvbVR5cGVBbmRQcm9wcyhcbiAgICAgICAgICBDb21wb25lbnQudHlwZSxcbiAgICAgICAgICBudWxsLFxuICAgICAgICAgIG5leHRQcm9wcyxcbiAgICAgICAgICB3b3JrSW5Qcm9ncmVzcyxcbiAgICAgICAgICB3b3JrSW5Qcm9ncmVzcy5tb2RlLFxuICAgICAgICAgIHJlbmRlckxhbmVzXG4gICAgICAgICk7XG4gICAgICAgIGN1cnJlbnQucmVmID0gd29ya0luUHJvZ3Jlc3MucmVmO1xuICAgICAgICBjdXJyZW50LnJldHVybiA9IHdvcmtJblByb2dyZXNzO1xuICAgICAgICByZXR1cm4gKHdvcmtJblByb2dyZXNzLmNoaWxkID0gY3VycmVudCk7XG4gICAgICB9XG4gICAgICB0eXBlID0gY3VycmVudC5jaGlsZDtcbiAgICAgIGlmICghY2hlY2tTY2hlZHVsZWRVcGRhdGVPckNvbnRleHQoY3VycmVudCwgcmVuZGVyTGFuZXMpKSB7XG4gICAgICAgIHZhciBwcmV2UHJvcHMgPSB0eXBlLm1lbW9pemVkUHJvcHM7XG4gICAgICAgIENvbXBvbmVudCA9IENvbXBvbmVudC5jb21wYXJlO1xuICAgICAgICBDb21wb25lbnQgPSBudWxsICE9PSBDb21wb25lbnQgPyBDb21wb25lbnQgOiBzaGFsbG93RXF1YWw7XG4gICAgICAgIGlmIChcbiAgICAgICAgICBDb21wb25lbnQocHJldlByb3BzLCBuZXh0UHJvcHMpICYmXG4gICAgICAgICAgY3VycmVudC5yZWYgPT09IHdvcmtJblByb2dyZXNzLnJlZlxuICAgICAgICApXG4gICAgICAgICAgcmV0dXJuIGJhaWxvdXRPbkFscmVhZHlGaW5pc2hlZFdvcmsoXG4gICAgICAgICAgICBjdXJyZW50LFxuICAgICAgICAgICAgd29ya0luUHJvZ3Jlc3MsXG4gICAgICAgICAgICByZW5kZXJMYW5lc1xuICAgICAgICAgICk7XG4gICAgICB9XG4gICAgICB3b3JrSW5Qcm9ncmVzcy5mbGFncyB8PSAxO1xuICAgICAgY3VycmVudCA9IGNyZWF0ZVdvcmtJblByb2dyZXNzKHR5cGUsIG5leHRQcm9wcyk7XG4gICAgICBjdXJyZW50LnJlZiA9IHdvcmtJblByb2dyZXNzLnJlZjtcbiAgICAgIGN1cnJlbnQucmV0dXJuID0gd29ya0luUHJvZ3Jlc3M7XG4gICAgICByZXR1cm4gKHdvcmtJblByb2dyZXNzLmNoaWxkID0gY3VycmVudCk7XG4gICAgfVxuICAgIGZ1bmN0aW9uIHVwZGF0ZVNpbXBsZU1lbW9Db21wb25lbnQoXG4gICAgICBjdXJyZW50LFxuICAgICAgd29ya0luUHJvZ3Jlc3MsXG4gICAgICBDb21wb25lbnQsXG4gICAgICBuZXh0UHJvcHMsXG4gICAgICByZW5kZXJMYW5lc1xuICAgICkge1xuICAgICAgaWYgKG51bGwgIT09IGN1cnJlbnQpIHtcbiAgICAgICAgdmFyIHByZXZQcm9wcyA9IGN1cnJlbnQubWVtb2l6ZWRQcm9wcztcbiAgICAgICAgaWYgKFxuICAgICAgICAgIHNoYWxsb3dFcXVhbChwcmV2UHJvcHMsIG5leHRQcm9wcykgJiZcbiAgICAgICAgICBjdXJyZW50LnJlZiA9PT0gd29ya0luUHJvZ3Jlc3MucmVmICYmXG4gICAgICAgICAgd29ya0luUHJvZ3Jlc3MudHlwZSA9PT0gY3VycmVudC50eXBlXG4gICAgICAgIClcbiAgICAgICAgICBpZiAoXG4gICAgICAgICAgICAoKGRpZFJlY2VpdmVVcGRhdGUgPSAhMSksXG4gICAgICAgICAgICAod29ya0luUHJvZ3Jlc3MucGVuZGluZ1Byb3BzID0gbmV4dFByb3BzID0gcHJldlByb3BzKSxcbiAgICAgICAgICAgIGNoZWNrU2NoZWR1bGVkVXBkYXRlT3JDb250ZXh0KGN1cnJlbnQsIHJlbmRlckxhbmVzKSlcbiAgICAgICAgICApXG4gICAgICAgICAgICAwICE9PSAoY3VycmVudC5mbGFncyAmIDEzMTA3MikgJiYgKGRpZFJlY2VpdmVVcGRhdGUgPSAhMCk7XG4gICAgICAgICAgZWxzZVxuICAgICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgICAgKHdvcmtJblByb2dyZXNzLmxhbmVzID0gY3VycmVudC5sYW5lcyksXG4gICAgICAgICAgICAgIGJhaWxvdXRPbkFscmVhZHlGaW5pc2hlZFdvcmsoY3VycmVudCwgd29ya0luUHJvZ3Jlc3MsIHJlbmRlckxhbmVzKVxuICAgICAgICAgICAgKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiB1cGRhdGVGdW5jdGlvbkNvbXBvbmVudChcbiAgICAgICAgY3VycmVudCxcbiAgICAgICAgd29ya0luUHJvZ3Jlc3MsXG4gICAgICAgIENvbXBvbmVudCxcbiAgICAgICAgbmV4dFByb3BzLFxuICAgICAgICByZW5kZXJMYW5lc1xuICAgICAgKTtcbiAgICB9XG4gICAgZnVuY3Rpb24gdXBkYXRlT2Zmc2NyZWVuQ29tcG9uZW50KGN1cnJlbnQsIHdvcmtJblByb2dyZXNzLCByZW5kZXJMYW5lcykge1xuICAgICAgdmFyIG5leHRQcm9wcyA9IHdvcmtJblByb2dyZXNzLnBlbmRpbmdQcm9wcyxcbiAgICAgICAgbmV4dENoaWxkcmVuID0gbmV4dFByb3BzLmNoaWxkcmVuLFxuICAgICAgICBwcmV2U3RhdGUgPSBudWxsICE9PSBjdXJyZW50ID8gY3VycmVudC5tZW1vaXplZFN0YXRlIDogbnVsbDtcbiAgICAgIGlmIChcImhpZGRlblwiID09PSBuZXh0UHJvcHMubW9kZSkge1xuICAgICAgICBpZiAoMCAhPT0gKHdvcmtJblByb2dyZXNzLmZsYWdzICYgMTI4KSkge1xuICAgICAgICAgIG5leHRQcm9wcyA9XG4gICAgICAgICAgICBudWxsICE9PSBwcmV2U3RhdGVcbiAgICAgICAgICAgICAgPyBwcmV2U3RhdGUuYmFzZUxhbmVzIHwgcmVuZGVyTGFuZXNcbiAgICAgICAgICAgICAgOiByZW5kZXJMYW5lcztcbiAgICAgICAgICBpZiAobnVsbCAhPT0gY3VycmVudCkge1xuICAgICAgICAgICAgbmV4dENoaWxkcmVuID0gd29ya0luUHJvZ3Jlc3MuY2hpbGQgPSBjdXJyZW50LmNoaWxkO1xuICAgICAgICAgICAgZm9yIChwcmV2U3RhdGUgPSAwOyBudWxsICE9PSBuZXh0Q2hpbGRyZW47IClcbiAgICAgICAgICAgICAgKHByZXZTdGF0ZSA9XG4gICAgICAgICAgICAgICAgcHJldlN0YXRlIHwgbmV4dENoaWxkcmVuLmxhbmVzIHwgbmV4dENoaWxkcmVuLmNoaWxkTGFuZXMpLFxuICAgICAgICAgICAgICAgIChuZXh0Q2hpbGRyZW4gPSBuZXh0Q2hpbGRyZW4uc2libGluZyk7XG4gICAgICAgICAgICB3b3JrSW5Qcm9ncmVzcy5jaGlsZExhbmVzID0gcHJldlN0YXRlICYgfm5leHRQcm9wcztcbiAgICAgICAgICB9IGVsc2UgKHdvcmtJblByb2dyZXNzLmNoaWxkTGFuZXMgPSAwKSwgKHdvcmtJblByb2dyZXNzLmNoaWxkID0gbnVsbCk7XG4gICAgICAgICAgcmV0dXJuIGRlZmVySGlkZGVuT2Zmc2NyZWVuQ29tcG9uZW50KFxuICAgICAgICAgICAgY3VycmVudCxcbiAgICAgICAgICAgIHdvcmtJblByb2dyZXNzLFxuICAgICAgICAgICAgbmV4dFByb3BzLFxuICAgICAgICAgICAgcmVuZGVyTGFuZXNcbiAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgICAgIGlmICgwICE9PSAocmVuZGVyTGFuZXMgJiA1MzY4NzA5MTIpKVxuICAgICAgICAgICh3b3JrSW5Qcm9ncmVzcy5tZW1vaXplZFN0YXRlID0geyBiYXNlTGFuZXM6IDAsIGNhY2hlUG9vbDogbnVsbCB9KSxcbiAgICAgICAgICAgIG51bGwgIT09IGN1cnJlbnQgJiZcbiAgICAgICAgICAgICAgcHVzaFRyYW5zaXRpb24oXG4gICAgICAgICAgICAgICAgd29ya0luUHJvZ3Jlc3MsXG4gICAgICAgICAgICAgICAgbnVsbCAhPT0gcHJldlN0YXRlID8gcHJldlN0YXRlLmNhY2hlUG9vbCA6IG51bGxcbiAgICAgICAgICAgICAgKSxcbiAgICAgICAgICAgIG51bGwgIT09IHByZXZTdGF0ZVxuICAgICAgICAgICAgICA/IHB1c2hIaWRkZW5Db250ZXh0KHdvcmtJblByb2dyZXNzLCBwcmV2U3RhdGUpXG4gICAgICAgICAgICAgIDogcmV1c2VIaWRkZW5Db250ZXh0T25TdGFjayh3b3JrSW5Qcm9ncmVzcyksXG4gICAgICAgICAgICBwdXNoT2Zmc2NyZWVuU3VzcGVuc2VIYW5kbGVyKHdvcmtJblByb2dyZXNzKTtcbiAgICAgICAgZWxzZVxuICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAod29ya0luUHJvZ3Jlc3MubGFuZXMgPSB3b3JrSW5Qcm9ncmVzcy5jaGlsZExhbmVzID0gNTM2ODcwOTEyKSxcbiAgICAgICAgICAgIGRlZmVySGlkZGVuT2Zmc2NyZWVuQ29tcG9uZW50KFxuICAgICAgICAgICAgICBjdXJyZW50LFxuICAgICAgICAgICAgICB3b3JrSW5Qcm9ncmVzcyxcbiAgICAgICAgICAgICAgbnVsbCAhPT0gcHJldlN0YXRlXG4gICAgICAgICAgICAgICAgPyBwcmV2U3RhdGUuYmFzZUxhbmVzIHwgcmVuZGVyTGFuZXNcbiAgICAgICAgICAgICAgICA6IHJlbmRlckxhbmVzLFxuICAgICAgICAgICAgICByZW5kZXJMYW5lc1xuICAgICAgICAgICAgKVxuICAgICAgICAgICk7XG4gICAgICB9IGVsc2VcbiAgICAgICAgbnVsbCAhPT0gcHJldlN0YXRlXG4gICAgICAgICAgPyAocHVzaFRyYW5zaXRpb24od29ya0luUHJvZ3Jlc3MsIHByZXZTdGF0ZS5jYWNoZVBvb2wpLFxuICAgICAgICAgICAgcHVzaEhpZGRlbkNvbnRleHQod29ya0luUHJvZ3Jlc3MsIHByZXZTdGF0ZSksXG4gICAgICAgICAgICByZXVzZVN1c3BlbnNlSGFuZGxlck9uU3RhY2sod29ya0luUHJvZ3Jlc3MpLFxuICAgICAgICAgICAgKHdvcmtJblByb2dyZXNzLm1lbW9pemVkU3RhdGUgPSBudWxsKSlcbiAgICAgICAgICA6IChudWxsICE9PSBjdXJyZW50ICYmIHB1c2hUcmFuc2l0aW9uKHdvcmtJblByb2dyZXNzLCBudWxsKSxcbiAgICAgICAgICAgIHJldXNlSGlkZGVuQ29udGV4dE9uU3RhY2sod29ya0luUHJvZ3Jlc3MpLFxuICAgICAgICAgICAgcmV1c2VTdXNwZW5zZUhhbmRsZXJPblN0YWNrKHdvcmtJblByb2dyZXNzKSk7XG4gICAgICByZWNvbmNpbGVDaGlsZHJlbihjdXJyZW50LCB3b3JrSW5Qcm9ncmVzcywgbmV4dENoaWxkcmVuLCByZW5kZXJMYW5lcyk7XG4gICAgICByZXR1cm4gd29ya0luUHJvZ3Jlc3MuY2hpbGQ7XG4gICAgfVxuICAgIGZ1bmN0aW9uIGRlZmVySGlkZGVuT2Zmc2NyZWVuQ29tcG9uZW50KFxuICAgICAgY3VycmVudCxcbiAgICAgIHdvcmtJblByb2dyZXNzLFxuICAgICAgbmV4dEJhc2VMYW5lcyxcbiAgICAgIHJlbmRlckxhbmVzXG4gICAgKSB7XG4gICAgICB2YXIgSlNDb21waWxlcl9pbmxpbmVfcmVzdWx0ID0gcGVla0NhY2hlRnJvbVBvb2woKTtcbiAgICAgIEpTQ29tcGlsZXJfaW5saW5lX3Jlc3VsdCA9XG4gICAgICAgIG51bGwgPT09IEpTQ29tcGlsZXJfaW5saW5lX3Jlc3VsdFxuICAgICAgICAgID8gbnVsbFxuICAgICAgICAgIDoge1xuICAgICAgICAgICAgICBwYXJlbnQ6IENhY2hlQ29udGV4dC5fY3VycmVudFZhbHVlLFxuICAgICAgICAgICAgICBwb29sOiBKU0NvbXBpbGVyX2lubGluZV9yZXN1bHRcbiAgICAgICAgICAgIH07XG4gICAgICB3b3JrSW5Qcm9ncmVzcy5tZW1vaXplZFN0YXRlID0ge1xuICAgICAgICBiYXNlTGFuZXM6IG5leHRCYXNlTGFuZXMsXG4gICAgICAgIGNhY2hlUG9vbDogSlNDb21waWxlcl9pbmxpbmVfcmVzdWx0XG4gICAgICB9O1xuICAgICAgbnVsbCAhPT0gY3VycmVudCAmJiBwdXNoVHJhbnNpdGlvbih3b3JrSW5Qcm9ncmVzcywgbnVsbCk7XG4gICAgICByZXVzZUhpZGRlbkNvbnRleHRPblN0YWNrKHdvcmtJblByb2dyZXNzKTtcbiAgICAgIHB1c2hPZmZzY3JlZW5TdXNwZW5zZUhhbmRsZXIod29ya0luUHJvZ3Jlc3MpO1xuICAgICAgbnVsbCAhPT0gY3VycmVudCAmJlxuICAgICAgICBwcm9wYWdhdGVQYXJlbnRDb250ZXh0Q2hhbmdlcyhjdXJyZW50LCB3b3JrSW5Qcm9ncmVzcywgcmVuZGVyTGFuZXMsICEwKTtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbiAgICBmdW5jdGlvbiBtYXJrUmVmKGN1cnJlbnQsIHdvcmtJblByb2dyZXNzKSB7XG4gICAgICB2YXIgcmVmID0gd29ya0luUHJvZ3Jlc3MucmVmO1xuICAgICAgaWYgKG51bGwgPT09IHJlZilcbiAgICAgICAgbnVsbCAhPT0gY3VycmVudCAmJlxuICAgICAgICAgIG51bGwgIT09IGN1cnJlbnQucmVmICYmXG4gICAgICAgICAgKHdvcmtJblByb2dyZXNzLmZsYWdzIHw9IDQxOTQ4MTYpO1xuICAgICAgZWxzZSB7XG4gICAgICAgIGlmIChcImZ1bmN0aW9uXCIgIT09IHR5cGVvZiByZWYgJiYgXCJvYmplY3RcIiAhPT0gdHlwZW9mIHJlZilcbiAgICAgICAgICB0aHJvdyBFcnJvcihcbiAgICAgICAgICAgIFwiRXhwZWN0ZWQgcmVmIHRvIGJlIGEgZnVuY3Rpb24sIGFuIG9iamVjdCByZXR1cm5lZCBieSBSZWFjdC5jcmVhdGVSZWYoKSwgb3IgdW5kZWZpbmVkL251bGwuXCJcbiAgICAgICAgICApO1xuICAgICAgICBpZiAobnVsbCA9PT0gY3VycmVudCB8fCBjdXJyZW50LnJlZiAhPT0gcmVmKVxuICAgICAgICAgIHdvcmtJblByb2dyZXNzLmZsYWdzIHw9IDQxOTQ4MTY7XG4gICAgICB9XG4gICAgfVxuICAgIGZ1bmN0aW9uIHVwZGF0ZUZ1bmN0aW9uQ29tcG9uZW50KFxuICAgICAgY3VycmVudCxcbiAgICAgIHdvcmtJblByb2dyZXNzLFxuICAgICAgQ29tcG9uZW50LFxuICAgICAgbmV4dFByb3BzLFxuICAgICAgcmVuZGVyTGFuZXNcbiAgICApIHtcbiAgICAgIGlmIChcbiAgICAgICAgQ29tcG9uZW50LnByb3RvdHlwZSAmJlxuICAgICAgICBcImZ1bmN0aW9uXCIgPT09IHR5cGVvZiBDb21wb25lbnQucHJvdG90eXBlLnJlbmRlclxuICAgICAgKSB7XG4gICAgICAgIHZhciBjb21wb25lbnROYW1lID0gZ2V0Q29tcG9uZW50TmFtZUZyb21UeXBlKENvbXBvbmVudCkgfHwgXCJVbmtub3duXCI7XG4gICAgICAgIGRpZFdhcm5BYm91dEJhZENsYXNzW2NvbXBvbmVudE5hbWVdIHx8XG4gICAgICAgICAgKGNvbnNvbGUuZXJyb3IoXG4gICAgICAgICAgICBcIlRoZSA8JXMgLz4gY29tcG9uZW50IGFwcGVhcnMgdG8gaGF2ZSBhIHJlbmRlciBtZXRob2QsIGJ1dCBkb2Vzbid0IGV4dGVuZCBSZWFjdC5Db21wb25lbnQuIFRoaXMgaXMgbGlrZWx5IHRvIGNhdXNlIGVycm9ycy4gQ2hhbmdlICVzIHRvIGV4dGVuZCBSZWFjdC5Db21wb25lbnQgaW5zdGVhZC5cIixcbiAgICAgICAgICAgIGNvbXBvbmVudE5hbWUsXG4gICAgICAgICAgICBjb21wb25lbnROYW1lXG4gICAgICAgICAgKSxcbiAgICAgICAgICAoZGlkV2FybkFib3V0QmFkQ2xhc3NbY29tcG9uZW50TmFtZV0gPSAhMCkpO1xuICAgICAgfVxuICAgICAgd29ya0luUHJvZ3Jlc3MubW9kZSAmIFN0cmljdExlZ2FjeU1vZGUgJiZcbiAgICAgICAgUmVhY3RTdHJpY3RNb2RlV2FybmluZ3MucmVjb3JkTGVnYWN5Q29udGV4dFdhcm5pbmcoXG4gICAgICAgICAgd29ya0luUHJvZ3Jlc3MsXG4gICAgICAgICAgbnVsbFxuICAgICAgICApO1xuICAgICAgbnVsbCA9PT0gY3VycmVudCAmJlxuICAgICAgICAodmFsaWRhdGVGdW5jdGlvbkNvbXBvbmVudEluRGV2KHdvcmtJblByb2dyZXNzLCB3b3JrSW5Qcm9ncmVzcy50eXBlKSxcbiAgICAgICAgQ29tcG9uZW50LmNvbnRleHRUeXBlcyAmJlxuICAgICAgICAgICgoY29tcG9uZW50TmFtZSA9IGdldENvbXBvbmVudE5hbWVGcm9tVHlwZShDb21wb25lbnQpIHx8IFwiVW5rbm93blwiKSxcbiAgICAgICAgICBkaWRXYXJuQWJvdXRDb250ZXh0VHlwZXNbY29tcG9uZW50TmFtZV0gfHxcbiAgICAgICAgICAgICgoZGlkV2FybkFib3V0Q29udGV4dFR5cGVzW2NvbXBvbmVudE5hbWVdID0gITApLFxuICAgICAgICAgICAgY29uc29sZS5lcnJvcihcbiAgICAgICAgICAgICAgXCIlcyB1c2VzIHRoZSBsZWdhY3kgY29udGV4dFR5cGVzIEFQSSB3aGljaCB3YXMgcmVtb3ZlZCBpbiBSZWFjdCAxOS4gVXNlIFJlYWN0LmNyZWF0ZUNvbnRleHQoKSB3aXRoIFJlYWN0LnVzZUNvbnRleHQoKSBpbnN0ZWFkLiAoaHR0cHM6Ly9yZWFjdC5kZXYvbGluay9sZWdhY3ktY29udGV4dClcIixcbiAgICAgICAgICAgICAgY29tcG9uZW50TmFtZVxuICAgICAgICAgICAgKSkpKTtcbiAgICAgIHByZXBhcmVUb1JlYWRDb250ZXh0KHdvcmtJblByb2dyZXNzKTtcbiAgICAgIG1hcmtDb21wb25lbnRSZW5kZXJTdGFydGVkKHdvcmtJblByb2dyZXNzKTtcbiAgICAgIENvbXBvbmVudCA9IHJlbmRlcldpdGhIb29rcyhcbiAgICAgICAgY3VycmVudCxcbiAgICAgICAgd29ya0luUHJvZ3Jlc3MsXG4gICAgICAgIENvbXBvbmVudCxcbiAgICAgICAgbmV4dFByb3BzLFxuICAgICAgICB2b2lkIDAsXG4gICAgICAgIHJlbmRlckxhbmVzXG4gICAgICApO1xuICAgICAgbmV4dFByb3BzID0gY2hlY2tEaWRSZW5kZXJJZEhvb2soKTtcbiAgICAgIG1hcmtDb21wb25lbnRSZW5kZXJTdG9wcGVkKCk7XG4gICAgICBpZiAobnVsbCAhPT0gY3VycmVudCAmJiAhZGlkUmVjZWl2ZVVwZGF0ZSlcbiAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICBiYWlsb3V0SG9va3MoY3VycmVudCwgd29ya0luUHJvZ3Jlc3MsIHJlbmRlckxhbmVzKSxcbiAgICAgICAgICBiYWlsb3V0T25BbHJlYWR5RmluaXNoZWRXb3JrKGN1cnJlbnQsIHdvcmtJblByb2dyZXNzLCByZW5kZXJMYW5lcylcbiAgICAgICAgKTtcbiAgICAgIGlzSHlkcmF0aW5nICYmIG5leHRQcm9wcyAmJiBwdXNoTWF0ZXJpYWxpemVkVHJlZUlkKHdvcmtJblByb2dyZXNzKTtcbiAgICAgIHdvcmtJblByb2dyZXNzLmZsYWdzIHw9IDE7XG4gICAgICByZWNvbmNpbGVDaGlsZHJlbihjdXJyZW50LCB3b3JrSW5Qcm9ncmVzcywgQ29tcG9uZW50LCByZW5kZXJMYW5lcyk7XG4gICAgICByZXR1cm4gd29ya0luUHJvZ3Jlc3MuY2hpbGQ7XG4gICAgfVxuICAgIGZ1bmN0aW9uIHJlcGxheUZ1bmN0aW9uQ29tcG9uZW50KFxuICAgICAgY3VycmVudCxcbiAgICAgIHdvcmtJblByb2dyZXNzLFxuICAgICAgbmV4dFByb3BzLFxuICAgICAgQ29tcG9uZW50LFxuICAgICAgc2Vjb25kQXJnLFxuICAgICAgcmVuZGVyTGFuZXNcbiAgICApIHtcbiAgICAgIHByZXBhcmVUb1JlYWRDb250ZXh0KHdvcmtJblByb2dyZXNzKTtcbiAgICAgIG1hcmtDb21wb25lbnRSZW5kZXJTdGFydGVkKHdvcmtJblByb2dyZXNzKTtcbiAgICAgIGhvb2tUeXBlc1VwZGF0ZUluZGV4RGV2ID0gLTE7XG4gICAgICBpZ25vcmVQcmV2aW91c0RlcGVuZGVuY2llcyA9XG4gICAgICAgIG51bGwgIT09IGN1cnJlbnQgJiYgY3VycmVudC50eXBlICE9PSB3b3JrSW5Qcm9ncmVzcy50eXBlO1xuICAgICAgd29ya0luUHJvZ3Jlc3MudXBkYXRlUXVldWUgPSBudWxsO1xuICAgICAgbmV4dFByb3BzID0gcmVuZGVyV2l0aEhvb2tzQWdhaW4oXG4gICAgICAgIHdvcmtJblByb2dyZXNzLFxuICAgICAgICBDb21wb25lbnQsXG4gICAgICAgIG5leHRQcm9wcyxcbiAgICAgICAgc2Vjb25kQXJnXG4gICAgICApO1xuICAgICAgZmluaXNoUmVuZGVyaW5nSG9va3MoY3VycmVudCwgd29ya0luUHJvZ3Jlc3MpO1xuICAgICAgQ29tcG9uZW50ID0gY2hlY2tEaWRSZW5kZXJJZEhvb2soKTtcbiAgICAgIG1hcmtDb21wb25lbnRSZW5kZXJTdG9wcGVkKCk7XG4gICAgICBpZiAobnVsbCAhPT0gY3VycmVudCAmJiAhZGlkUmVjZWl2ZVVwZGF0ZSlcbiAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICBiYWlsb3V0SG9va3MoY3VycmVudCwgd29ya0luUHJvZ3Jlc3MsIHJlbmRlckxhbmVzKSxcbiAgICAgICAgICBiYWlsb3V0T25BbHJlYWR5RmluaXNoZWRXb3JrKGN1cnJlbnQsIHdvcmtJblByb2dyZXNzLCByZW5kZXJMYW5lcylcbiAgICAgICAgKTtcbiAgICAgIGlzSHlkcmF0aW5nICYmIENvbXBvbmVudCAmJiBwdXNoTWF0ZXJpYWxpemVkVHJlZUlkKHdvcmtJblByb2dyZXNzKTtcbiAgICAgIHdvcmtJblByb2dyZXNzLmZsYWdzIHw9IDE7XG4gICAgICByZWNvbmNpbGVDaGlsZHJlbihjdXJyZW50LCB3b3JrSW5Qcm9ncmVzcywgbmV4dFByb3BzLCByZW5kZXJMYW5lcyk7XG4gICAgICByZXR1cm4gd29ya0luUHJvZ3Jlc3MuY2hpbGQ7XG4gICAgfVxuICAgIGZ1bmN0aW9uIHVwZGF0ZUNsYXNzQ29tcG9uZW50KFxuICAgICAgY3VycmVudCxcbiAgICAgIHdvcmtJblByb2dyZXNzLFxuICAgICAgQ29tcG9uZW50LFxuICAgICAgbmV4dFByb3BzLFxuICAgICAgcmVuZGVyTGFuZXNcbiAgICApIHtcbiAgICAgIHN3aXRjaCAoc2hvdWxkRXJyb3JJbXBsKHdvcmtJblByb2dyZXNzKSkge1xuICAgICAgICBjYXNlICExOlxuICAgICAgICAgIHZhciBfaW5zdGFuY2UgPSB3b3JrSW5Qcm9ncmVzcy5zdGF0ZU5vZGUsXG4gICAgICAgICAgICBzdGF0ZSA9IG5ldyB3b3JrSW5Qcm9ncmVzcy50eXBlKFxuICAgICAgICAgICAgICB3b3JrSW5Qcm9ncmVzcy5tZW1vaXplZFByb3BzLFxuICAgICAgICAgICAgICBfaW5zdGFuY2UuY29udGV4dFxuICAgICAgICAgICAgKS5zdGF0ZTtcbiAgICAgICAgICBfaW5zdGFuY2UudXBkYXRlci5lbnF1ZXVlU2V0U3RhdGUoX2luc3RhbmNlLCBzdGF0ZSwgbnVsbCk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgITA6XG4gICAgICAgICAgd29ya0luUHJvZ3Jlc3MuZmxhZ3MgfD0gMTI4O1xuICAgICAgICAgIHdvcmtJblByb2dyZXNzLmZsYWdzIHw9IDY1NTM2O1xuICAgICAgICAgIF9pbnN0YW5jZSA9IEVycm9yKFwiU2ltdWxhdGVkIGVycm9yIGNvbWluZyBmcm9tIERldlRvb2xzXCIpO1xuICAgICAgICAgIHZhciBsYW5lID0gcmVuZGVyTGFuZXMgJiAtcmVuZGVyTGFuZXM7XG4gICAgICAgICAgd29ya0luUHJvZ3Jlc3MubGFuZXMgfD0gbGFuZTtcbiAgICAgICAgICBzdGF0ZSA9IHdvcmtJblByb2dyZXNzUm9vdDtcbiAgICAgICAgICBpZiAobnVsbCA9PT0gc3RhdGUpXG4gICAgICAgICAgICB0aHJvdyBFcnJvcihcbiAgICAgICAgICAgICAgXCJFeHBlY3RlZCBhIHdvcmstaW4tcHJvZ3Jlc3Mgcm9vdC4gVGhpcyBpcyBhIGJ1ZyBpbiBSZWFjdC4gUGxlYXNlIGZpbGUgYW4gaXNzdWUuXCJcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgbGFuZSA9IGNyZWF0ZUNsYXNzRXJyb3JVcGRhdGUobGFuZSk7XG4gICAgICAgICAgaW5pdGlhbGl6ZUNsYXNzRXJyb3JVcGRhdGUoXG4gICAgICAgICAgICBsYW5lLFxuICAgICAgICAgICAgc3RhdGUsXG4gICAgICAgICAgICB3b3JrSW5Qcm9ncmVzcyxcbiAgICAgICAgICAgIGNyZWF0ZUNhcHR1cmVkVmFsdWVBdEZpYmVyKF9pbnN0YW5jZSwgd29ya0luUHJvZ3Jlc3MpXG4gICAgICAgICAgKTtcbiAgICAgICAgICBlbnF1ZXVlQ2FwdHVyZWRVcGRhdGUod29ya0luUHJvZ3Jlc3MsIGxhbmUpO1xuICAgICAgfVxuICAgICAgcHJlcGFyZVRvUmVhZENvbnRleHQod29ya0luUHJvZ3Jlc3MpO1xuICAgICAgaWYgKG51bGwgPT09IHdvcmtJblByb2dyZXNzLnN0YXRlTm9kZSkge1xuICAgICAgICBzdGF0ZSA9IGVtcHR5Q29udGV4dE9iamVjdDtcbiAgICAgICAgX2luc3RhbmNlID0gQ29tcG9uZW50LmNvbnRleHRUeXBlO1xuICAgICAgICBcImNvbnRleHRUeXBlXCIgaW4gQ29tcG9uZW50ICYmXG4gICAgICAgICAgbnVsbCAhPT0gX2luc3RhbmNlICYmXG4gICAgICAgICAgKHZvaWQgMCA9PT0gX2luc3RhbmNlIHx8IF9pbnN0YW5jZS4kJHR5cGVvZiAhPT0gUkVBQ1RfQ09OVEVYVF9UWVBFKSAmJlxuICAgICAgICAgICFkaWRXYXJuQWJvdXRJbnZhbGlkYXRlQ29udGV4dFR5cGUuaGFzKENvbXBvbmVudCkgJiZcbiAgICAgICAgICAoZGlkV2FybkFib3V0SW52YWxpZGF0ZUNvbnRleHRUeXBlLmFkZChDb21wb25lbnQpLFxuICAgICAgICAgIChsYW5lID1cbiAgICAgICAgICAgIHZvaWQgMCA9PT0gX2luc3RhbmNlXG4gICAgICAgICAgICAgID8gXCIgSG93ZXZlciwgaXQgaXMgc2V0IHRvIHVuZGVmaW5lZC4gVGhpcyBjYW4gYmUgY2F1c2VkIGJ5IGEgdHlwbyBvciBieSBtaXhpbmcgdXAgbmFtZWQgYW5kIGRlZmF1bHQgaW1wb3J0cy4gVGhpcyBjYW4gYWxzbyBoYXBwZW4gZHVlIHRvIGEgY2lyY3VsYXIgZGVwZW5kZW5jeSwgc28gdHJ5IG1vdmluZyB0aGUgY3JlYXRlQ29udGV4dCgpIGNhbGwgdG8gYSBzZXBhcmF0ZSBmaWxlLlwiXG4gICAgICAgICAgICAgIDogXCJvYmplY3RcIiAhPT0gdHlwZW9mIF9pbnN0YW5jZVxuICAgICAgICAgICAgICAgID8gXCIgSG93ZXZlciwgaXQgaXMgc2V0IHRvIGEgXCIgKyB0eXBlb2YgX2luc3RhbmNlICsgXCIuXCJcbiAgICAgICAgICAgICAgICA6IF9pbnN0YW5jZS4kJHR5cGVvZiA9PT0gUkVBQ1RfQ09OU1VNRVJfVFlQRVxuICAgICAgICAgICAgICAgICAgPyBcIiBEaWQgeW91IGFjY2lkZW50YWxseSBwYXNzIHRoZSBDb250ZXh0LkNvbnN1bWVyIGluc3RlYWQ/XCJcbiAgICAgICAgICAgICAgICAgIDogXCIgSG93ZXZlciwgaXQgaXMgc2V0IHRvIGFuIG9iamVjdCB3aXRoIGtleXMge1wiICtcbiAgICAgICAgICAgICAgICAgICAgT2JqZWN0LmtleXMoX2luc3RhbmNlKS5qb2luKFwiLCBcIikgK1xuICAgICAgICAgICAgICAgICAgICBcIn0uXCIpLFxuICAgICAgICAgIGNvbnNvbGUuZXJyb3IoXG4gICAgICAgICAgICBcIiVzIGRlZmluZXMgYW4gaW52YWxpZCBjb250ZXh0VHlwZS4gY29udGV4dFR5cGUgc2hvdWxkIHBvaW50IHRvIHRoZSBDb250ZXh0IG9iamVjdCByZXR1cm5lZCBieSBSZWFjdC5jcmVhdGVDb250ZXh0KCkuJXNcIixcbiAgICAgICAgICAgIGdldENvbXBvbmVudE5hbWVGcm9tVHlwZShDb21wb25lbnQpIHx8IFwiQ29tcG9uZW50XCIsXG4gICAgICAgICAgICBsYW5lXG4gICAgICAgICAgKSk7XG4gICAgICAgIFwib2JqZWN0XCIgPT09IHR5cGVvZiBfaW5zdGFuY2UgJiZcbiAgICAgICAgICBudWxsICE9PSBfaW5zdGFuY2UgJiZcbiAgICAgICAgICAoc3RhdGUgPSByZWFkQ29udGV4dChfaW5zdGFuY2UpKTtcbiAgICAgICAgX2luc3RhbmNlID0gbmV3IENvbXBvbmVudChuZXh0UHJvcHMsIHN0YXRlKTtcbiAgICAgICAgaWYgKHdvcmtJblByb2dyZXNzLm1vZGUgJiBTdHJpY3RMZWdhY3lNb2RlKSB7XG4gICAgICAgICAgc2V0SXNTdHJpY3RNb2RlRm9yRGV2dG9vbHMoITApO1xuICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICBfaW5zdGFuY2UgPSBuZXcgQ29tcG9uZW50KG5leHRQcm9wcywgc3RhdGUpO1xuICAgICAgICAgIH0gZmluYWxseSB7XG4gICAgICAgICAgICBzZXRJc1N0cmljdE1vZGVGb3JEZXZ0b29scyghMSk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHN0YXRlID0gd29ya0luUHJvZ3Jlc3MubWVtb2l6ZWRTdGF0ZSA9XG4gICAgICAgICAgbnVsbCAhPT0gX2luc3RhbmNlLnN0YXRlICYmIHZvaWQgMCAhPT0gX2luc3RhbmNlLnN0YXRlXG4gICAgICAgICAgICA/IF9pbnN0YW5jZS5zdGF0ZVxuICAgICAgICAgICAgOiBudWxsO1xuICAgICAgICBfaW5zdGFuY2UudXBkYXRlciA9IGNsYXNzQ29tcG9uZW50VXBkYXRlcjtcbiAgICAgICAgd29ya0luUHJvZ3Jlc3Muc3RhdGVOb2RlID0gX2luc3RhbmNlO1xuICAgICAgICBfaW5zdGFuY2UuX3JlYWN0SW50ZXJuYWxzID0gd29ya0luUHJvZ3Jlc3M7XG4gICAgICAgIF9pbnN0YW5jZS5fcmVhY3RJbnRlcm5hbEluc3RhbmNlID0gZmFrZUludGVybmFsSW5zdGFuY2U7XG4gICAgICAgIFwiZnVuY3Rpb25cIiA9PT0gdHlwZW9mIENvbXBvbmVudC5nZXREZXJpdmVkU3RhdGVGcm9tUHJvcHMgJiZcbiAgICAgICAgICBudWxsID09PSBzdGF0ZSAmJlxuICAgICAgICAgICgoc3RhdGUgPSBnZXRDb21wb25lbnROYW1lRnJvbVR5cGUoQ29tcG9uZW50KSB8fCBcIkNvbXBvbmVudFwiKSxcbiAgICAgICAgICBkaWRXYXJuQWJvdXRVbmluaXRpYWxpemVkU3RhdGUuaGFzKHN0YXRlKSB8fFxuICAgICAgICAgICAgKGRpZFdhcm5BYm91dFVuaW5pdGlhbGl6ZWRTdGF0ZS5hZGQoc3RhdGUpLFxuICAgICAgICAgICAgY29uc29sZS5lcnJvcihcbiAgICAgICAgICAgICAgXCJgJXNgIHVzZXMgYGdldERlcml2ZWRTdGF0ZUZyb21Qcm9wc2AgYnV0IGl0cyBpbml0aWFsIHN0YXRlIGlzICVzLiBUaGlzIGlzIG5vdCByZWNvbW1lbmRlZC4gSW5zdGVhZCwgZGVmaW5lIHRoZSBpbml0aWFsIHN0YXRlIGJ5IGFzc2lnbmluZyBhbiBvYmplY3QgdG8gYHRoaXMuc3RhdGVgIGluIHRoZSBjb25zdHJ1Y3RvciBvZiBgJXNgLiBUaGlzIGVuc3VyZXMgdGhhdCBgZ2V0RGVyaXZlZFN0YXRlRnJvbVByb3BzYCBhcmd1bWVudHMgaGF2ZSBhIGNvbnNpc3RlbnQgc2hhcGUuXCIsXG4gICAgICAgICAgICAgIHN0YXRlLFxuICAgICAgICAgICAgICBudWxsID09PSBfaW5zdGFuY2Uuc3RhdGUgPyBcIm51bGxcIiA6IFwidW5kZWZpbmVkXCIsXG4gICAgICAgICAgICAgIHN0YXRlXG4gICAgICAgICAgICApKSk7XG4gICAgICAgIGlmIChcbiAgICAgICAgICBcImZ1bmN0aW9uXCIgPT09IHR5cGVvZiBDb21wb25lbnQuZ2V0RGVyaXZlZFN0YXRlRnJvbVByb3BzIHx8XG4gICAgICAgICAgXCJmdW5jdGlvblwiID09PSB0eXBlb2YgX2luc3RhbmNlLmdldFNuYXBzaG90QmVmb3JlVXBkYXRlXG4gICAgICAgICkge1xuICAgICAgICAgIHZhciBmb3VuZFdpbGxVcGRhdGVOYW1lID0gKGxhbmUgPSBzdGF0ZSA9IG51bGwpO1xuICAgICAgICAgIFwiZnVuY3Rpb25cIiA9PT0gdHlwZW9mIF9pbnN0YW5jZS5jb21wb25lbnRXaWxsTW91bnQgJiZcbiAgICAgICAgICAhMCAhPT0gX2luc3RhbmNlLmNvbXBvbmVudFdpbGxNb3VudC5fX3N1cHByZXNzRGVwcmVjYXRpb25XYXJuaW5nXG4gICAgICAgICAgICA/IChzdGF0ZSA9IFwiY29tcG9uZW50V2lsbE1vdW50XCIpXG4gICAgICAgICAgICA6IFwiZnVuY3Rpb25cIiA9PT0gdHlwZW9mIF9pbnN0YW5jZS5VTlNBRkVfY29tcG9uZW50V2lsbE1vdW50ICYmXG4gICAgICAgICAgICAgIChzdGF0ZSA9IFwiVU5TQUZFX2NvbXBvbmVudFdpbGxNb3VudFwiKTtcbiAgICAgICAgICBcImZ1bmN0aW9uXCIgPT09IHR5cGVvZiBfaW5zdGFuY2UuY29tcG9uZW50V2lsbFJlY2VpdmVQcm9wcyAmJlxuICAgICAgICAgICEwICE9PVxuICAgICAgICAgICAgX2luc3RhbmNlLmNvbXBvbmVudFdpbGxSZWNlaXZlUHJvcHMuX19zdXBwcmVzc0RlcHJlY2F0aW9uV2FybmluZ1xuICAgICAgICAgICAgPyAobGFuZSA9IFwiY29tcG9uZW50V2lsbFJlY2VpdmVQcm9wc1wiKVxuICAgICAgICAgICAgOiBcImZ1bmN0aW9uXCIgPT09XG4gICAgICAgICAgICAgICAgdHlwZW9mIF9pbnN0YW5jZS5VTlNBRkVfY29tcG9uZW50V2lsbFJlY2VpdmVQcm9wcyAmJlxuICAgICAgICAgICAgICAobGFuZSA9IFwiVU5TQUZFX2NvbXBvbmVudFdpbGxSZWNlaXZlUHJvcHNcIik7XG4gICAgICAgICAgXCJmdW5jdGlvblwiID09PSB0eXBlb2YgX2luc3RhbmNlLmNvbXBvbmVudFdpbGxVcGRhdGUgJiZcbiAgICAgICAgICAhMCAhPT0gX2luc3RhbmNlLmNvbXBvbmVudFdpbGxVcGRhdGUuX19zdXBwcmVzc0RlcHJlY2F0aW9uV2FybmluZ1xuICAgICAgICAgICAgPyAoZm91bmRXaWxsVXBkYXRlTmFtZSA9IFwiY29tcG9uZW50V2lsbFVwZGF0ZVwiKVxuICAgICAgICAgICAgOiBcImZ1bmN0aW9uXCIgPT09IHR5cGVvZiBfaW5zdGFuY2UuVU5TQUZFX2NvbXBvbmVudFdpbGxVcGRhdGUgJiZcbiAgICAgICAgICAgICAgKGZvdW5kV2lsbFVwZGF0ZU5hbWUgPSBcIlVOU0FGRV9jb21wb25lbnRXaWxsVXBkYXRlXCIpO1xuICAgICAgICAgIGlmIChudWxsICE9PSBzdGF0ZSB8fCBudWxsICE9PSBsYW5lIHx8IG51bGwgIT09IGZvdW5kV2lsbFVwZGF0ZU5hbWUpIHtcbiAgICAgICAgICAgIF9pbnN0YW5jZSA9IGdldENvbXBvbmVudE5hbWVGcm9tVHlwZShDb21wb25lbnQpIHx8IFwiQ29tcG9uZW50XCI7XG4gICAgICAgICAgICB2YXIgbmV3QXBpTmFtZSA9XG4gICAgICAgICAgICAgIFwiZnVuY3Rpb25cIiA9PT0gdHlwZW9mIENvbXBvbmVudC5nZXREZXJpdmVkU3RhdGVGcm9tUHJvcHNcbiAgICAgICAgICAgICAgICA/IFwiZ2V0RGVyaXZlZFN0YXRlRnJvbVByb3BzKClcIlxuICAgICAgICAgICAgICAgIDogXCJnZXRTbmFwc2hvdEJlZm9yZVVwZGF0ZSgpXCI7XG4gICAgICAgICAgICBkaWRXYXJuQWJvdXRMZWdhY3lMaWZlY3ljbGVzQW5kRGVyaXZlZFN0YXRlLmhhcyhfaW5zdGFuY2UpIHx8XG4gICAgICAgICAgICAgIChkaWRXYXJuQWJvdXRMZWdhY3lMaWZlY3ljbGVzQW5kRGVyaXZlZFN0YXRlLmFkZChfaW5zdGFuY2UpLFxuICAgICAgICAgICAgICBjb25zb2xlLmVycm9yKFxuICAgICAgICAgICAgICAgIFwiVW5zYWZlIGxlZ2FjeSBsaWZlY3ljbGVzIHdpbGwgbm90IGJlIGNhbGxlZCBmb3IgY29tcG9uZW50cyB1c2luZyBuZXcgY29tcG9uZW50IEFQSXMuXFxuXFxuJXMgdXNlcyAlcyBidXQgYWxzbyBjb250YWlucyB0aGUgZm9sbG93aW5nIGxlZ2FjeSBsaWZlY3ljbGVzOiVzJXMlc1xcblxcblRoZSBhYm92ZSBsaWZlY3ljbGVzIHNob3VsZCBiZSByZW1vdmVkLiBMZWFybiBtb3JlIGFib3V0IHRoaXMgd2FybmluZyBoZXJlOlxcbmh0dHBzOi8vcmVhY3QuZGV2L2xpbmsvdW5zYWZlLWNvbXBvbmVudC1saWZlY3ljbGVzXCIsXG4gICAgICAgICAgICAgICAgX2luc3RhbmNlLFxuICAgICAgICAgICAgICAgIG5ld0FwaU5hbWUsXG4gICAgICAgICAgICAgICAgbnVsbCAhPT0gc3RhdGUgPyBcIlxcbiAgXCIgKyBzdGF0ZSA6IFwiXCIsXG4gICAgICAgICAgICAgICAgbnVsbCAhPT0gbGFuZSA/IFwiXFxuICBcIiArIGxhbmUgOiBcIlwiLFxuICAgICAgICAgICAgICAgIG51bGwgIT09IGZvdW5kV2lsbFVwZGF0ZU5hbWUgPyBcIlxcbiAgXCIgKyBmb3VuZFdpbGxVcGRhdGVOYW1lIDogXCJcIlxuICAgICAgICAgICAgICApKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgX2luc3RhbmNlID0gd29ya0luUHJvZ3Jlc3Muc3RhdGVOb2RlO1xuICAgICAgICBzdGF0ZSA9IGdldENvbXBvbmVudE5hbWVGcm9tVHlwZShDb21wb25lbnQpIHx8IFwiQ29tcG9uZW50XCI7XG4gICAgICAgIF9pbnN0YW5jZS5yZW5kZXIgfHxcbiAgICAgICAgICAoQ29tcG9uZW50LnByb3RvdHlwZSAmJlxuICAgICAgICAgIFwiZnVuY3Rpb25cIiA9PT0gdHlwZW9mIENvbXBvbmVudC5wcm90b3R5cGUucmVuZGVyXG4gICAgICAgICAgICA/IGNvbnNvbGUuZXJyb3IoXG4gICAgICAgICAgICAgICAgXCJObyBgcmVuZGVyYCBtZXRob2QgZm91bmQgb24gdGhlICVzIGluc3RhbmNlOiBkaWQgeW91IGFjY2lkZW50YWxseSByZXR1cm4gYW4gb2JqZWN0IGZyb20gdGhlIGNvbnN0cnVjdG9yP1wiLFxuICAgICAgICAgICAgICAgIHN0YXRlXG4gICAgICAgICAgICAgIClcbiAgICAgICAgICAgIDogY29uc29sZS5lcnJvcihcbiAgICAgICAgICAgICAgICBcIk5vIGByZW5kZXJgIG1ldGhvZCBmb3VuZCBvbiB0aGUgJXMgaW5zdGFuY2U6IHlvdSBtYXkgaGF2ZSBmb3Jnb3R0ZW4gdG8gZGVmaW5lIGByZW5kZXJgLlwiLFxuICAgICAgICAgICAgICAgIHN0YXRlXG4gICAgICAgICAgICAgICkpO1xuICAgICAgICAhX2luc3RhbmNlLmdldEluaXRpYWxTdGF0ZSB8fFxuICAgICAgICAgIF9pbnN0YW5jZS5nZXRJbml0aWFsU3RhdGUuaXNSZWFjdENsYXNzQXBwcm92ZWQgfHxcbiAgICAgICAgICBfaW5zdGFuY2Uuc3RhdGUgfHxcbiAgICAgICAgICBjb25zb2xlLmVycm9yKFxuICAgICAgICAgICAgXCJnZXRJbml0aWFsU3RhdGUgd2FzIGRlZmluZWQgb24gJXMsIGEgcGxhaW4gSmF2YVNjcmlwdCBjbGFzcy4gVGhpcyBpcyBvbmx5IHN1cHBvcnRlZCBmb3IgY2xhc3NlcyBjcmVhdGVkIHVzaW5nIFJlYWN0LmNyZWF0ZUNsYXNzLiBEaWQgeW91IG1lYW4gdG8gZGVmaW5lIGEgc3RhdGUgcHJvcGVydHkgaW5zdGVhZD9cIixcbiAgICAgICAgICAgIHN0YXRlXG4gICAgICAgICAgKTtcbiAgICAgICAgX2luc3RhbmNlLmdldERlZmF1bHRQcm9wcyAmJlxuICAgICAgICAgICFfaW5zdGFuY2UuZ2V0RGVmYXVsdFByb3BzLmlzUmVhY3RDbGFzc0FwcHJvdmVkICYmXG4gICAgICAgICAgY29uc29sZS5lcnJvcihcbiAgICAgICAgICAgIFwiZ2V0RGVmYXVsdFByb3BzIHdhcyBkZWZpbmVkIG9uICVzLCBhIHBsYWluIEphdmFTY3JpcHQgY2xhc3MuIFRoaXMgaXMgb25seSBzdXBwb3J0ZWQgZm9yIGNsYXNzZXMgY3JlYXRlZCB1c2luZyBSZWFjdC5jcmVhdGVDbGFzcy4gVXNlIGEgc3RhdGljIHByb3BlcnR5IHRvIGRlZmluZSBkZWZhdWx0UHJvcHMgaW5zdGVhZC5cIixcbiAgICAgICAgICAgIHN0YXRlXG4gICAgICAgICAgKTtcbiAgICAgICAgX2luc3RhbmNlLmNvbnRleHRUeXBlICYmXG4gICAgICAgICAgY29uc29sZS5lcnJvcihcbiAgICAgICAgICAgIFwiY29udGV4dFR5cGUgd2FzIGRlZmluZWQgYXMgYW4gaW5zdGFuY2UgcHJvcGVydHkgb24gJXMuIFVzZSBhIHN0YXRpYyBwcm9wZXJ0eSB0byBkZWZpbmUgY29udGV4dFR5cGUgaW5zdGVhZC5cIixcbiAgICAgICAgICAgIHN0YXRlXG4gICAgICAgICAgKTtcbiAgICAgICAgQ29tcG9uZW50LmNoaWxkQ29udGV4dFR5cGVzICYmXG4gICAgICAgICAgIWRpZFdhcm5BYm91dENoaWxkQ29udGV4dFR5cGVzLmhhcyhDb21wb25lbnQpICYmXG4gICAgICAgICAgKGRpZFdhcm5BYm91dENoaWxkQ29udGV4dFR5cGVzLmFkZChDb21wb25lbnQpLFxuICAgICAgICAgIGNvbnNvbGUuZXJyb3IoXG4gICAgICAgICAgICBcIiVzIHVzZXMgdGhlIGxlZ2FjeSBjaGlsZENvbnRleHRUeXBlcyBBUEkgd2hpY2ggd2FzIHJlbW92ZWQgaW4gUmVhY3QgMTkuIFVzZSBSZWFjdC5jcmVhdGVDb250ZXh0KCkgaW5zdGVhZC4gKGh0dHBzOi8vcmVhY3QuZGV2L2xpbmsvbGVnYWN5LWNvbnRleHQpXCIsXG4gICAgICAgICAgICBzdGF0ZVxuICAgICAgICAgICkpO1xuICAgICAgICBDb21wb25lbnQuY29udGV4dFR5cGVzICYmXG4gICAgICAgICAgIWRpZFdhcm5BYm91dENvbnRleHRUeXBlcyQxLmhhcyhDb21wb25lbnQpICYmXG4gICAgICAgICAgKGRpZFdhcm5BYm91dENvbnRleHRUeXBlcyQxLmFkZChDb21wb25lbnQpLFxuICAgICAgICAgIGNvbnNvbGUuZXJyb3IoXG4gICAgICAgICAgICBcIiVzIHVzZXMgdGhlIGxlZ2FjeSBjb250ZXh0VHlwZXMgQVBJIHdoaWNoIHdhcyByZW1vdmVkIGluIFJlYWN0IDE5LiBVc2UgUmVhY3QuY3JlYXRlQ29udGV4dCgpIHdpdGggc3RhdGljIGNvbnRleHRUeXBlIGluc3RlYWQuIChodHRwczovL3JlYWN0LmRldi9saW5rL2xlZ2FjeS1jb250ZXh0KVwiLFxuICAgICAgICAgICAgc3RhdGVcbiAgICAgICAgICApKTtcbiAgICAgICAgXCJmdW5jdGlvblwiID09PSB0eXBlb2YgX2luc3RhbmNlLmNvbXBvbmVudFNob3VsZFVwZGF0ZSAmJlxuICAgICAgICAgIGNvbnNvbGUuZXJyb3IoXG4gICAgICAgICAgICBcIiVzIGhhcyBhIG1ldGhvZCBjYWxsZWQgY29tcG9uZW50U2hvdWxkVXBkYXRlKCkuIERpZCB5b3UgbWVhbiBzaG91bGRDb21wb25lbnRVcGRhdGUoKT8gVGhlIG5hbWUgaXMgcGhyYXNlZCBhcyBhIHF1ZXN0aW9uIGJlY2F1c2UgdGhlIGZ1bmN0aW9uIGlzIGV4cGVjdGVkIHRvIHJldHVybiBhIHZhbHVlLlwiLFxuICAgICAgICAgICAgc3RhdGVcbiAgICAgICAgICApO1xuICAgICAgICBDb21wb25lbnQucHJvdG90eXBlICYmXG4gICAgICAgICAgQ29tcG9uZW50LnByb3RvdHlwZS5pc1B1cmVSZWFjdENvbXBvbmVudCAmJlxuICAgICAgICAgIFwidW5kZWZpbmVkXCIgIT09IHR5cGVvZiBfaW5zdGFuY2Uuc2hvdWxkQ29tcG9uZW50VXBkYXRlICYmXG4gICAgICAgICAgY29uc29sZS5lcnJvcihcbiAgICAgICAgICAgIFwiJXMgaGFzIGEgbWV0aG9kIGNhbGxlZCBzaG91bGRDb21wb25lbnRVcGRhdGUoKS4gc2hvdWxkQ29tcG9uZW50VXBkYXRlIHNob3VsZCBub3QgYmUgdXNlZCB3aGVuIGV4dGVuZGluZyBSZWFjdC5QdXJlQ29tcG9uZW50LiBQbGVhc2UgZXh0ZW5kIFJlYWN0LkNvbXBvbmVudCBpZiBzaG91bGRDb21wb25lbnRVcGRhdGUgaXMgdXNlZC5cIixcbiAgICAgICAgICAgIGdldENvbXBvbmVudE5hbWVGcm9tVHlwZShDb21wb25lbnQpIHx8IFwiQSBwdXJlIGNvbXBvbmVudFwiXG4gICAgICAgICAgKTtcbiAgICAgICAgXCJmdW5jdGlvblwiID09PSB0eXBlb2YgX2luc3RhbmNlLmNvbXBvbmVudERpZFVubW91bnQgJiZcbiAgICAgICAgICBjb25zb2xlLmVycm9yKFxuICAgICAgICAgICAgXCIlcyBoYXMgYSBtZXRob2QgY2FsbGVkIGNvbXBvbmVudERpZFVubW91bnQoKS4gQnV0IHRoZXJlIGlzIG5vIHN1Y2ggbGlmZWN5Y2xlIG1ldGhvZC4gRGlkIHlvdSBtZWFuIGNvbXBvbmVudFdpbGxVbm1vdW50KCk/XCIsXG4gICAgICAgICAgICBzdGF0ZVxuICAgICAgICAgICk7XG4gICAgICAgIFwiZnVuY3Rpb25cIiA9PT0gdHlwZW9mIF9pbnN0YW5jZS5jb21wb25lbnREaWRSZWNlaXZlUHJvcHMgJiZcbiAgICAgICAgICBjb25zb2xlLmVycm9yKFxuICAgICAgICAgICAgXCIlcyBoYXMgYSBtZXRob2QgY2FsbGVkIGNvbXBvbmVudERpZFJlY2VpdmVQcm9wcygpLiBCdXQgdGhlcmUgaXMgbm8gc3VjaCBsaWZlY3ljbGUgbWV0aG9kLiBJZiB5b3UgbWVhbnQgdG8gdXBkYXRlIHRoZSBzdGF0ZSBpbiByZXNwb25zZSB0byBjaGFuZ2luZyBwcm9wcywgdXNlIGNvbXBvbmVudFdpbGxSZWNlaXZlUHJvcHMoKS4gSWYgeW91IG1lYW50IHRvIGZldGNoIGRhdGEgb3IgcnVuIHNpZGUtZWZmZWN0cyBvciBtdXRhdGlvbnMgYWZ0ZXIgUmVhY3QgaGFzIHVwZGF0ZWQgdGhlIFVJLCB1c2UgY29tcG9uZW50RGlkVXBkYXRlKCkuXCIsXG4gICAgICAgICAgICBzdGF0ZVxuICAgICAgICAgICk7XG4gICAgICAgIFwiZnVuY3Rpb25cIiA9PT0gdHlwZW9mIF9pbnN0YW5jZS5jb21wb25lbnRXaWxsUmVjaWV2ZVByb3BzICYmXG4gICAgICAgICAgY29uc29sZS5lcnJvcihcbiAgICAgICAgICAgIFwiJXMgaGFzIGEgbWV0aG9kIGNhbGxlZCBjb21wb25lbnRXaWxsUmVjaWV2ZVByb3BzKCkuIERpZCB5b3UgbWVhbiBjb21wb25lbnRXaWxsUmVjZWl2ZVByb3BzKCk/XCIsXG4gICAgICAgICAgICBzdGF0ZVxuICAgICAgICAgICk7XG4gICAgICAgIFwiZnVuY3Rpb25cIiA9PT0gdHlwZW9mIF9pbnN0YW5jZS5VTlNBRkVfY29tcG9uZW50V2lsbFJlY2lldmVQcm9wcyAmJlxuICAgICAgICAgIGNvbnNvbGUuZXJyb3IoXG4gICAgICAgICAgICBcIiVzIGhhcyBhIG1ldGhvZCBjYWxsZWQgVU5TQUZFX2NvbXBvbmVudFdpbGxSZWNpZXZlUHJvcHMoKS4gRGlkIHlvdSBtZWFuIFVOU0FGRV9jb21wb25lbnRXaWxsUmVjZWl2ZVByb3BzKCk/XCIsXG4gICAgICAgICAgICBzdGF0ZVxuICAgICAgICAgICk7XG4gICAgICAgIGxhbmUgPSBfaW5zdGFuY2UucHJvcHMgIT09IG5leHRQcm9wcztcbiAgICAgICAgdm9pZCAwICE9PSBfaW5zdGFuY2UucHJvcHMgJiZcbiAgICAgICAgICBsYW5lICYmXG4gICAgICAgICAgY29uc29sZS5lcnJvcihcbiAgICAgICAgICAgIFwiV2hlbiBjYWxsaW5nIHN1cGVyKCkgaW4gYCVzYCwgbWFrZSBzdXJlIHRvIHBhc3MgdXAgdGhlIHNhbWUgcHJvcHMgdGhhdCB5b3VyIGNvbXBvbmVudCdzIGNvbnN0cnVjdG9yIHdhcyBwYXNzZWQuXCIsXG4gICAgICAgICAgICBzdGF0ZVxuICAgICAgICAgICk7XG4gICAgICAgIF9pbnN0YW5jZS5kZWZhdWx0UHJvcHMgJiZcbiAgICAgICAgICBjb25zb2xlLmVycm9yKFxuICAgICAgICAgICAgXCJTZXR0aW5nIGRlZmF1bHRQcm9wcyBhcyBhbiBpbnN0YW5jZSBwcm9wZXJ0eSBvbiAlcyBpcyBub3Qgc3VwcG9ydGVkIGFuZCB3aWxsIGJlIGlnbm9yZWQuIEluc3RlYWQsIGRlZmluZSBkZWZhdWx0UHJvcHMgYXMgYSBzdGF0aWMgcHJvcGVydHkgb24gJXMuXCIsXG4gICAgICAgICAgICBzdGF0ZSxcbiAgICAgICAgICAgIHN0YXRlXG4gICAgICAgICAgKTtcbiAgICAgICAgXCJmdW5jdGlvblwiICE9PSB0eXBlb2YgX2luc3RhbmNlLmdldFNuYXBzaG90QmVmb3JlVXBkYXRlIHx8XG4gICAgICAgICAgXCJmdW5jdGlvblwiID09PSB0eXBlb2YgX2luc3RhbmNlLmNvbXBvbmVudERpZFVwZGF0ZSB8fFxuICAgICAgICAgIGRpZFdhcm5BYm91dEdldFNuYXBzaG90QmVmb3JlVXBkYXRlV2l0aG91dERpZFVwZGF0ZS5oYXMoQ29tcG9uZW50KSB8fFxuICAgICAgICAgIChkaWRXYXJuQWJvdXRHZXRTbmFwc2hvdEJlZm9yZVVwZGF0ZVdpdGhvdXREaWRVcGRhdGUuYWRkKENvbXBvbmVudCksXG4gICAgICAgICAgY29uc29sZS5lcnJvcihcbiAgICAgICAgICAgIFwiJXM6IGdldFNuYXBzaG90QmVmb3JlVXBkYXRlKCkgc2hvdWxkIGJlIHVzZWQgd2l0aCBjb21wb25lbnREaWRVcGRhdGUoKS4gVGhpcyBjb21wb25lbnQgZGVmaW5lcyBnZXRTbmFwc2hvdEJlZm9yZVVwZGF0ZSgpIG9ubHkuXCIsXG4gICAgICAgICAgICBnZXRDb21wb25lbnROYW1lRnJvbVR5cGUoQ29tcG9uZW50KVxuICAgICAgICAgICkpO1xuICAgICAgICBcImZ1bmN0aW9uXCIgPT09IHR5cGVvZiBfaW5zdGFuY2UuZ2V0RGVyaXZlZFN0YXRlRnJvbVByb3BzICYmXG4gICAgICAgICAgY29uc29sZS5lcnJvcihcbiAgICAgICAgICAgIFwiJXM6IGdldERlcml2ZWRTdGF0ZUZyb21Qcm9wcygpIGlzIGRlZmluZWQgYXMgYW4gaW5zdGFuY2UgbWV0aG9kIGFuZCB3aWxsIGJlIGlnbm9yZWQuIEluc3RlYWQsIGRlY2xhcmUgaXQgYXMgYSBzdGF0aWMgbWV0aG9kLlwiLFxuICAgICAgICAgICAgc3RhdGVcbiAgICAgICAgICApO1xuICAgICAgICBcImZ1bmN0aW9uXCIgPT09IHR5cGVvZiBfaW5zdGFuY2UuZ2V0RGVyaXZlZFN0YXRlRnJvbUVycm9yICYmXG4gICAgICAgICAgY29uc29sZS5lcnJvcihcbiAgICAgICAgICAgIFwiJXM6IGdldERlcml2ZWRTdGF0ZUZyb21FcnJvcigpIGlzIGRlZmluZWQgYXMgYW4gaW5zdGFuY2UgbWV0aG9kIGFuZCB3aWxsIGJlIGlnbm9yZWQuIEluc3RlYWQsIGRlY2xhcmUgaXQgYXMgYSBzdGF0aWMgbWV0aG9kLlwiLFxuICAgICAgICAgICAgc3RhdGVcbiAgICAgICAgICApO1xuICAgICAgICBcImZ1bmN0aW9uXCIgPT09IHR5cGVvZiBDb21wb25lbnQuZ2V0U25hcHNob3RCZWZvcmVVcGRhdGUgJiZcbiAgICAgICAgICBjb25zb2xlLmVycm9yKFxuICAgICAgICAgICAgXCIlczogZ2V0U25hcHNob3RCZWZvcmVVcGRhdGUoKSBpcyBkZWZpbmVkIGFzIGEgc3RhdGljIG1ldGhvZCBhbmQgd2lsbCBiZSBpZ25vcmVkLiBJbnN0ZWFkLCBkZWNsYXJlIGl0IGFzIGFuIGluc3RhbmNlIG1ldGhvZC5cIixcbiAgICAgICAgICAgIHN0YXRlXG4gICAgICAgICAgKTtcbiAgICAgICAgKGxhbmUgPSBfaW5zdGFuY2Uuc3RhdGUpICYmXG4gICAgICAgICAgKFwib2JqZWN0XCIgIT09IHR5cGVvZiBsYW5lIHx8IGlzQXJyYXlJbXBsKGxhbmUpKSAmJlxuICAgICAgICAgIGNvbnNvbGUuZXJyb3IoXCIlcy5zdGF0ZTogbXVzdCBiZSBzZXQgdG8gYW4gb2JqZWN0IG9yIG51bGxcIiwgc3RhdGUpO1xuICAgICAgICBcImZ1bmN0aW9uXCIgPT09IHR5cGVvZiBfaW5zdGFuY2UuZ2V0Q2hpbGRDb250ZXh0ICYmXG4gICAgICAgICAgXCJvYmplY3RcIiAhPT0gdHlwZW9mIENvbXBvbmVudC5jaGlsZENvbnRleHRUeXBlcyAmJlxuICAgICAgICAgIGNvbnNvbGUuZXJyb3IoXG4gICAgICAgICAgICBcIiVzLmdldENoaWxkQ29udGV4dCgpOiBjaGlsZENvbnRleHRUeXBlcyBtdXN0IGJlIGRlZmluZWQgaW4gb3JkZXIgdG8gdXNlIGdldENoaWxkQ29udGV4dCgpLlwiLFxuICAgICAgICAgICAgc3RhdGVcbiAgICAgICAgICApO1xuICAgICAgICBfaW5zdGFuY2UgPSB3b3JrSW5Qcm9ncmVzcy5zdGF0ZU5vZGU7XG4gICAgICAgIF9pbnN0YW5jZS5wcm9wcyA9IG5leHRQcm9wcztcbiAgICAgICAgX2luc3RhbmNlLnN0YXRlID0gd29ya0luUHJvZ3Jlc3MubWVtb2l6ZWRTdGF0ZTtcbiAgICAgICAgX2luc3RhbmNlLnJlZnMgPSB7fTtcbiAgICAgICAgaW5pdGlhbGl6ZVVwZGF0ZVF1ZXVlKHdvcmtJblByb2dyZXNzKTtcbiAgICAgICAgc3RhdGUgPSBDb21wb25lbnQuY29udGV4dFR5cGU7XG4gICAgICAgIF9pbnN0YW5jZS5jb250ZXh0ID1cbiAgICAgICAgICBcIm9iamVjdFwiID09PSB0eXBlb2Ygc3RhdGUgJiYgbnVsbCAhPT0gc3RhdGVcbiAgICAgICAgICAgID8gcmVhZENvbnRleHQoc3RhdGUpXG4gICAgICAgICAgICA6IGVtcHR5Q29udGV4dE9iamVjdDtcbiAgICAgICAgX2luc3RhbmNlLnN0YXRlID09PSBuZXh0UHJvcHMgJiZcbiAgICAgICAgICAoKHN0YXRlID0gZ2V0Q29tcG9uZW50TmFtZUZyb21UeXBlKENvbXBvbmVudCkgfHwgXCJDb21wb25lbnRcIiksXG4gICAgICAgICAgZGlkV2FybkFib3V0RGlyZWN0bHlBc3NpZ25pbmdQcm9wc1RvU3RhdGUuaGFzKHN0YXRlKSB8fFxuICAgICAgICAgICAgKGRpZFdhcm5BYm91dERpcmVjdGx5QXNzaWduaW5nUHJvcHNUb1N0YXRlLmFkZChzdGF0ZSksXG4gICAgICAgICAgICBjb25zb2xlLmVycm9yKFxuICAgICAgICAgICAgICBcIiVzOiBJdCBpcyBub3QgcmVjb21tZW5kZWQgdG8gYXNzaWduIHByb3BzIGRpcmVjdGx5IHRvIHN0YXRlIGJlY2F1c2UgdXBkYXRlcyB0byBwcm9wcyB3b24ndCBiZSByZWZsZWN0ZWQgaW4gc3RhdGUuIEluIG1vc3QgY2FzZXMsIGl0IGlzIGJldHRlciB0byB1c2UgcHJvcHMgZGlyZWN0bHkuXCIsXG4gICAgICAgICAgICAgIHN0YXRlXG4gICAgICAgICAgICApKSk7XG4gICAgICAgIHdvcmtJblByb2dyZXNzLm1vZGUgJiBTdHJpY3RMZWdhY3lNb2RlICYmXG4gICAgICAgICAgUmVhY3RTdHJpY3RNb2RlV2FybmluZ3MucmVjb3JkTGVnYWN5Q29udGV4dFdhcm5pbmcoXG4gICAgICAgICAgICB3b3JrSW5Qcm9ncmVzcyxcbiAgICAgICAgICAgIF9pbnN0YW5jZVxuICAgICAgICAgICk7XG4gICAgICAgIFJlYWN0U3RyaWN0TW9kZVdhcm5pbmdzLnJlY29yZFVuc2FmZUxpZmVjeWNsZVdhcm5pbmdzKFxuICAgICAgICAgIHdvcmtJblByb2dyZXNzLFxuICAgICAgICAgIF9pbnN0YW5jZVxuICAgICAgICApO1xuICAgICAgICBfaW5zdGFuY2Uuc3RhdGUgPSB3b3JrSW5Qcm9ncmVzcy5tZW1vaXplZFN0YXRlO1xuICAgICAgICBzdGF0ZSA9IENvbXBvbmVudC5nZXREZXJpdmVkU3RhdGVGcm9tUHJvcHM7XG4gICAgICAgIFwiZnVuY3Rpb25cIiA9PT0gdHlwZW9mIHN0YXRlICYmXG4gICAgICAgICAgKGFwcGx5RGVyaXZlZFN0YXRlRnJvbVByb3BzKFxuICAgICAgICAgICAgd29ya0luUHJvZ3Jlc3MsXG4gICAgICAgICAgICBDb21wb25lbnQsXG4gICAgICAgICAgICBzdGF0ZSxcbiAgICAgICAgICAgIG5leHRQcm9wc1xuICAgICAgICAgICksXG4gICAgICAgICAgKF9pbnN0YW5jZS5zdGF0ZSA9IHdvcmtJblByb2dyZXNzLm1lbW9pemVkU3RhdGUpKTtcbiAgICAgICAgXCJmdW5jdGlvblwiID09PSB0eXBlb2YgQ29tcG9uZW50LmdldERlcml2ZWRTdGF0ZUZyb21Qcm9wcyB8fFxuICAgICAgICAgIFwiZnVuY3Rpb25cIiA9PT0gdHlwZW9mIF9pbnN0YW5jZS5nZXRTbmFwc2hvdEJlZm9yZVVwZGF0ZSB8fFxuICAgICAgICAgIChcImZ1bmN0aW9uXCIgIT09IHR5cGVvZiBfaW5zdGFuY2UuVU5TQUZFX2NvbXBvbmVudFdpbGxNb3VudCAmJlxuICAgICAgICAgICAgXCJmdW5jdGlvblwiICE9PSB0eXBlb2YgX2luc3RhbmNlLmNvbXBvbmVudFdpbGxNb3VudCkgfHxcbiAgICAgICAgICAoKHN0YXRlID0gX2luc3RhbmNlLnN0YXRlKSxcbiAgICAgICAgICBcImZ1bmN0aW9uXCIgPT09IHR5cGVvZiBfaW5zdGFuY2UuY29tcG9uZW50V2lsbE1vdW50ICYmXG4gICAgICAgICAgICBfaW5zdGFuY2UuY29tcG9uZW50V2lsbE1vdW50KCksXG4gICAgICAgICAgXCJmdW5jdGlvblwiID09PSB0eXBlb2YgX2luc3RhbmNlLlVOU0FGRV9jb21wb25lbnRXaWxsTW91bnQgJiZcbiAgICAgICAgICAgIF9pbnN0YW5jZS5VTlNBRkVfY29tcG9uZW50V2lsbE1vdW50KCksXG4gICAgICAgICAgc3RhdGUgIT09IF9pbnN0YW5jZS5zdGF0ZSAmJlxuICAgICAgICAgICAgKGNvbnNvbGUuZXJyb3IoXG4gICAgICAgICAgICAgIFwiJXMuY29tcG9uZW50V2lsbE1vdW50KCk6IEFzc2lnbmluZyBkaXJlY3RseSB0byB0aGlzLnN0YXRlIGlzIGRlcHJlY2F0ZWQgKGV4Y2VwdCBpbnNpZGUgYSBjb21wb25lbnQncyBjb25zdHJ1Y3RvcikuIFVzZSBzZXRTdGF0ZSBpbnN0ZWFkLlwiLFxuICAgICAgICAgICAgICBnZXRDb21wb25lbnROYW1lRnJvbUZpYmVyKHdvcmtJblByb2dyZXNzKSB8fCBcIkNvbXBvbmVudFwiXG4gICAgICAgICAgICApLFxuICAgICAgICAgICAgY2xhc3NDb21wb25lbnRVcGRhdGVyLmVucXVldWVSZXBsYWNlU3RhdGUoXG4gICAgICAgICAgICAgIF9pbnN0YW5jZSxcbiAgICAgICAgICAgICAgX2luc3RhbmNlLnN0YXRlLFxuICAgICAgICAgICAgICBudWxsXG4gICAgICAgICAgICApKSxcbiAgICAgICAgICBwcm9jZXNzVXBkYXRlUXVldWUod29ya0luUHJvZ3Jlc3MsIG5leHRQcm9wcywgX2luc3RhbmNlLCByZW5kZXJMYW5lcyksXG4gICAgICAgICAgc3VzcGVuZElmVXBkYXRlUmVhZEZyb21FbnRhbmdsZWRBc3luY0FjdGlvbigpLFxuICAgICAgICAgIChfaW5zdGFuY2Uuc3RhdGUgPSB3b3JrSW5Qcm9ncmVzcy5tZW1vaXplZFN0YXRlKSk7XG4gICAgICAgIFwiZnVuY3Rpb25cIiA9PT0gdHlwZW9mIF9pbnN0YW5jZS5jb21wb25lbnREaWRNb3VudCAmJlxuICAgICAgICAgICh3b3JrSW5Qcm9ncmVzcy5mbGFncyB8PSA0MTk0MzA4KTtcbiAgICAgICAgKHdvcmtJblByb2dyZXNzLm1vZGUgJiBTdHJpY3RFZmZlY3RzTW9kZSkgIT09IE5vTW9kZSAmJlxuICAgICAgICAgICh3b3JrSW5Qcm9ncmVzcy5mbGFncyB8PSAxMzQyMTc3MjgpO1xuICAgICAgICBfaW5zdGFuY2UgPSAhMDtcbiAgICAgIH0gZWxzZSBpZiAobnVsbCA9PT0gY3VycmVudCkge1xuICAgICAgICBfaW5zdGFuY2UgPSB3b3JrSW5Qcm9ncmVzcy5zdGF0ZU5vZGU7XG4gICAgICAgIHZhciB1bnJlc29sdmVkT2xkUHJvcHMgPSB3b3JrSW5Qcm9ncmVzcy5tZW1vaXplZFByb3BzO1xuICAgICAgICBsYW5lID0gcmVzb2x2ZUNsYXNzQ29tcG9uZW50UHJvcHMoQ29tcG9uZW50LCB1bnJlc29sdmVkT2xkUHJvcHMpO1xuICAgICAgICBfaW5zdGFuY2UucHJvcHMgPSBsYW5lO1xuICAgICAgICB2YXIgb2xkQ29udGV4dCA9IF9pbnN0YW5jZS5jb250ZXh0O1xuICAgICAgICBmb3VuZFdpbGxVcGRhdGVOYW1lID0gQ29tcG9uZW50LmNvbnRleHRUeXBlO1xuICAgICAgICBzdGF0ZSA9IGVtcHR5Q29udGV4dE9iamVjdDtcbiAgICAgICAgXCJvYmplY3RcIiA9PT0gdHlwZW9mIGZvdW5kV2lsbFVwZGF0ZU5hbWUgJiZcbiAgICAgICAgICBudWxsICE9PSBmb3VuZFdpbGxVcGRhdGVOYW1lICYmXG4gICAgICAgICAgKHN0YXRlID0gcmVhZENvbnRleHQoZm91bmRXaWxsVXBkYXRlTmFtZSkpO1xuICAgICAgICBuZXdBcGlOYW1lID0gQ29tcG9uZW50LmdldERlcml2ZWRTdGF0ZUZyb21Qcm9wcztcbiAgICAgICAgZm91bmRXaWxsVXBkYXRlTmFtZSA9XG4gICAgICAgICAgXCJmdW5jdGlvblwiID09PSB0eXBlb2YgbmV3QXBpTmFtZSB8fFxuICAgICAgICAgIFwiZnVuY3Rpb25cIiA9PT0gdHlwZW9mIF9pbnN0YW5jZS5nZXRTbmFwc2hvdEJlZm9yZVVwZGF0ZTtcbiAgICAgICAgdW5yZXNvbHZlZE9sZFByb3BzID0gd29ya0luUHJvZ3Jlc3MucGVuZGluZ1Byb3BzICE9PSB1bnJlc29sdmVkT2xkUHJvcHM7XG4gICAgICAgIGZvdW5kV2lsbFVwZGF0ZU5hbWUgfHxcbiAgICAgICAgICAoXCJmdW5jdGlvblwiICE9PSB0eXBlb2YgX2luc3RhbmNlLlVOU0FGRV9jb21wb25lbnRXaWxsUmVjZWl2ZVByb3BzICYmXG4gICAgICAgICAgICBcImZ1bmN0aW9uXCIgIT09IHR5cGVvZiBfaW5zdGFuY2UuY29tcG9uZW50V2lsbFJlY2VpdmVQcm9wcykgfHxcbiAgICAgICAgICAoKHVucmVzb2x2ZWRPbGRQcm9wcyB8fCBvbGRDb250ZXh0ICE9PSBzdGF0ZSkgJiZcbiAgICAgICAgICAgIGNhbGxDb21wb25lbnRXaWxsUmVjZWl2ZVByb3BzKFxuICAgICAgICAgICAgICB3b3JrSW5Qcm9ncmVzcyxcbiAgICAgICAgICAgICAgX2luc3RhbmNlLFxuICAgICAgICAgICAgICBuZXh0UHJvcHMsXG4gICAgICAgICAgICAgIHN0YXRlXG4gICAgICAgICAgICApKTtcbiAgICAgICAgaGFzRm9yY2VVcGRhdGUgPSAhMTtcbiAgICAgICAgdmFyIG9sZFN0YXRlID0gd29ya0luUHJvZ3Jlc3MubWVtb2l6ZWRTdGF0ZTtcbiAgICAgICAgX2luc3RhbmNlLnN0YXRlID0gb2xkU3RhdGU7XG4gICAgICAgIHByb2Nlc3NVcGRhdGVRdWV1ZSh3b3JrSW5Qcm9ncmVzcywgbmV4dFByb3BzLCBfaW5zdGFuY2UsIHJlbmRlckxhbmVzKTtcbiAgICAgICAgc3VzcGVuZElmVXBkYXRlUmVhZEZyb21FbnRhbmdsZWRBc3luY0FjdGlvbigpO1xuICAgICAgICBvbGRDb250ZXh0ID0gd29ya0luUHJvZ3Jlc3MubWVtb2l6ZWRTdGF0ZTtcbiAgICAgICAgdW5yZXNvbHZlZE9sZFByb3BzIHx8IG9sZFN0YXRlICE9PSBvbGRDb250ZXh0IHx8IGhhc0ZvcmNlVXBkYXRlXG4gICAgICAgICAgPyAoXCJmdW5jdGlvblwiID09PSB0eXBlb2YgbmV3QXBpTmFtZSAmJlxuICAgICAgICAgICAgICAoYXBwbHlEZXJpdmVkU3RhdGVGcm9tUHJvcHMoXG4gICAgICAgICAgICAgICAgd29ya0luUHJvZ3Jlc3MsXG4gICAgICAgICAgICAgICAgQ29tcG9uZW50LFxuICAgICAgICAgICAgICAgIG5ld0FwaU5hbWUsXG4gICAgICAgICAgICAgICAgbmV4dFByb3BzXG4gICAgICAgICAgICAgICksXG4gICAgICAgICAgICAgIChvbGRDb250ZXh0ID0gd29ya0luUHJvZ3Jlc3MubWVtb2l6ZWRTdGF0ZSkpLFxuICAgICAgICAgICAgKGxhbmUgPVxuICAgICAgICAgICAgICBoYXNGb3JjZVVwZGF0ZSB8fFxuICAgICAgICAgICAgICBjaGVja1Nob3VsZENvbXBvbmVudFVwZGF0ZShcbiAgICAgICAgICAgICAgICB3b3JrSW5Qcm9ncmVzcyxcbiAgICAgICAgICAgICAgICBDb21wb25lbnQsXG4gICAgICAgICAgICAgICAgbGFuZSxcbiAgICAgICAgICAgICAgICBuZXh0UHJvcHMsXG4gICAgICAgICAgICAgICAgb2xkU3RhdGUsXG4gICAgICAgICAgICAgICAgb2xkQ29udGV4dCxcbiAgICAgICAgICAgICAgICBzdGF0ZVxuICAgICAgICAgICAgICApKVxuICAgICAgICAgICAgICA/IChmb3VuZFdpbGxVcGRhdGVOYW1lIHx8XG4gICAgICAgICAgICAgICAgICAoXCJmdW5jdGlvblwiICE9PSB0eXBlb2YgX2luc3RhbmNlLlVOU0FGRV9jb21wb25lbnRXaWxsTW91bnQgJiZcbiAgICAgICAgICAgICAgICAgICAgXCJmdW5jdGlvblwiICE9PSB0eXBlb2YgX2luc3RhbmNlLmNvbXBvbmVudFdpbGxNb3VudCkgfHxcbiAgICAgICAgICAgICAgICAgIChcImZ1bmN0aW9uXCIgPT09IHR5cGVvZiBfaW5zdGFuY2UuY29tcG9uZW50V2lsbE1vdW50ICYmXG4gICAgICAgICAgICAgICAgICAgIF9pbnN0YW5jZS5jb21wb25lbnRXaWxsTW91bnQoKSxcbiAgICAgICAgICAgICAgICAgIFwiZnVuY3Rpb25cIiA9PT0gdHlwZW9mIF9pbnN0YW5jZS5VTlNBRkVfY29tcG9uZW50V2lsbE1vdW50ICYmXG4gICAgICAgICAgICAgICAgICAgIF9pbnN0YW5jZS5VTlNBRkVfY29tcG9uZW50V2lsbE1vdW50KCkpLFxuICAgICAgICAgICAgICAgIFwiZnVuY3Rpb25cIiA9PT0gdHlwZW9mIF9pbnN0YW5jZS5jb21wb25lbnREaWRNb3VudCAmJlxuICAgICAgICAgICAgICAgICAgKHdvcmtJblByb2dyZXNzLmZsYWdzIHw9IDQxOTQzMDgpLFxuICAgICAgICAgICAgICAgICh3b3JrSW5Qcm9ncmVzcy5tb2RlICYgU3RyaWN0RWZmZWN0c01vZGUpICE9PSBOb01vZGUgJiZcbiAgICAgICAgICAgICAgICAgICh3b3JrSW5Qcm9ncmVzcy5mbGFncyB8PSAxMzQyMTc3MjgpKVxuICAgICAgICAgICAgICA6IChcImZ1bmN0aW9uXCIgPT09IHR5cGVvZiBfaW5zdGFuY2UuY29tcG9uZW50RGlkTW91bnQgJiZcbiAgICAgICAgICAgICAgICAgICh3b3JrSW5Qcm9ncmVzcy5mbGFncyB8PSA0MTk0MzA4KSxcbiAgICAgICAgICAgICAgICAod29ya0luUHJvZ3Jlc3MubW9kZSAmIFN0cmljdEVmZmVjdHNNb2RlKSAhPT0gTm9Nb2RlICYmXG4gICAgICAgICAgICAgICAgICAod29ya0luUHJvZ3Jlc3MuZmxhZ3MgfD0gMTM0MjE3NzI4KSxcbiAgICAgICAgICAgICAgICAod29ya0luUHJvZ3Jlc3MubWVtb2l6ZWRQcm9wcyA9IG5leHRQcm9wcyksXG4gICAgICAgICAgICAgICAgKHdvcmtJblByb2dyZXNzLm1lbW9pemVkU3RhdGUgPSBvbGRDb250ZXh0KSksXG4gICAgICAgICAgICAoX2luc3RhbmNlLnByb3BzID0gbmV4dFByb3BzKSxcbiAgICAgICAgICAgIChfaW5zdGFuY2Uuc3RhdGUgPSBvbGRDb250ZXh0KSxcbiAgICAgICAgICAgIChfaW5zdGFuY2UuY29udGV4dCA9IHN0YXRlKSxcbiAgICAgICAgICAgIChfaW5zdGFuY2UgPSBsYW5lKSlcbiAgICAgICAgICA6IChcImZ1bmN0aW9uXCIgPT09IHR5cGVvZiBfaW5zdGFuY2UuY29tcG9uZW50RGlkTW91bnQgJiZcbiAgICAgICAgICAgICAgKHdvcmtJblByb2dyZXNzLmZsYWdzIHw9IDQxOTQzMDgpLFxuICAgICAgICAgICAgKHdvcmtJblByb2dyZXNzLm1vZGUgJiBTdHJpY3RFZmZlY3RzTW9kZSkgIT09IE5vTW9kZSAmJlxuICAgICAgICAgICAgICAod29ya0luUHJvZ3Jlc3MuZmxhZ3MgfD0gMTM0MjE3NzI4KSxcbiAgICAgICAgICAgIChfaW5zdGFuY2UgPSAhMSkpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgX2luc3RhbmNlID0gd29ya0luUHJvZ3Jlc3Muc3RhdGVOb2RlO1xuICAgICAgICBjbG9uZVVwZGF0ZVF1ZXVlKGN1cnJlbnQsIHdvcmtJblByb2dyZXNzKTtcbiAgICAgICAgc3RhdGUgPSB3b3JrSW5Qcm9ncmVzcy5tZW1vaXplZFByb3BzO1xuICAgICAgICBmb3VuZFdpbGxVcGRhdGVOYW1lID0gcmVzb2x2ZUNsYXNzQ29tcG9uZW50UHJvcHMoQ29tcG9uZW50LCBzdGF0ZSk7XG4gICAgICAgIF9pbnN0YW5jZS5wcm9wcyA9IGZvdW5kV2lsbFVwZGF0ZU5hbWU7XG4gICAgICAgIG5ld0FwaU5hbWUgPSB3b3JrSW5Qcm9ncmVzcy5wZW5kaW5nUHJvcHM7XG4gICAgICAgIG9sZFN0YXRlID0gX2luc3RhbmNlLmNvbnRleHQ7XG4gICAgICAgIG9sZENvbnRleHQgPSBDb21wb25lbnQuY29udGV4dFR5cGU7XG4gICAgICAgIGxhbmUgPSBlbXB0eUNvbnRleHRPYmplY3Q7XG4gICAgICAgIFwib2JqZWN0XCIgPT09IHR5cGVvZiBvbGRDb250ZXh0ICYmXG4gICAgICAgICAgbnVsbCAhPT0gb2xkQ29udGV4dCAmJlxuICAgICAgICAgIChsYW5lID0gcmVhZENvbnRleHQob2xkQ29udGV4dCkpO1xuICAgICAgICB1bnJlc29sdmVkT2xkUHJvcHMgPSBDb21wb25lbnQuZ2V0RGVyaXZlZFN0YXRlRnJvbVByb3BzO1xuICAgICAgICAob2xkQ29udGV4dCA9XG4gICAgICAgICAgXCJmdW5jdGlvblwiID09PSB0eXBlb2YgdW5yZXNvbHZlZE9sZFByb3BzIHx8XG4gICAgICAgICAgXCJmdW5jdGlvblwiID09PSB0eXBlb2YgX2luc3RhbmNlLmdldFNuYXBzaG90QmVmb3JlVXBkYXRlKSB8fFxuICAgICAgICAgIChcImZ1bmN0aW9uXCIgIT09IHR5cGVvZiBfaW5zdGFuY2UuVU5TQUZFX2NvbXBvbmVudFdpbGxSZWNlaXZlUHJvcHMgJiZcbiAgICAgICAgICAgIFwiZnVuY3Rpb25cIiAhPT0gdHlwZW9mIF9pbnN0YW5jZS5jb21wb25lbnRXaWxsUmVjZWl2ZVByb3BzKSB8fFxuICAgICAgICAgICgoc3RhdGUgIT09IG5ld0FwaU5hbWUgfHwgb2xkU3RhdGUgIT09IGxhbmUpICYmXG4gICAgICAgICAgICBjYWxsQ29tcG9uZW50V2lsbFJlY2VpdmVQcm9wcyhcbiAgICAgICAgICAgICAgd29ya0luUHJvZ3Jlc3MsXG4gICAgICAgICAgICAgIF9pbnN0YW5jZSxcbiAgICAgICAgICAgICAgbmV4dFByb3BzLFxuICAgICAgICAgICAgICBsYW5lXG4gICAgICAgICAgICApKTtcbiAgICAgICAgaGFzRm9yY2VVcGRhdGUgPSAhMTtcbiAgICAgICAgb2xkU3RhdGUgPSB3b3JrSW5Qcm9ncmVzcy5tZW1vaXplZFN0YXRlO1xuICAgICAgICBfaW5zdGFuY2Uuc3RhdGUgPSBvbGRTdGF0ZTtcbiAgICAgICAgcHJvY2Vzc1VwZGF0ZVF1ZXVlKHdvcmtJblByb2dyZXNzLCBuZXh0UHJvcHMsIF9pbnN0YW5jZSwgcmVuZGVyTGFuZXMpO1xuICAgICAgICBzdXNwZW5kSWZVcGRhdGVSZWFkRnJvbUVudGFuZ2xlZEFzeW5jQWN0aW9uKCk7XG4gICAgICAgIHZhciBuZXdTdGF0ZSA9IHdvcmtJblByb2dyZXNzLm1lbW9pemVkU3RhdGU7XG4gICAgICAgIHN0YXRlICE9PSBuZXdBcGlOYW1lIHx8XG4gICAgICAgIG9sZFN0YXRlICE9PSBuZXdTdGF0ZSB8fFxuICAgICAgICBoYXNGb3JjZVVwZGF0ZSB8fFxuICAgICAgICAobnVsbCAhPT0gY3VycmVudCAmJlxuICAgICAgICAgIG51bGwgIT09IGN1cnJlbnQuZGVwZW5kZW5jaWVzICYmXG4gICAgICAgICAgY2hlY2tJZkNvbnRleHRDaGFuZ2VkKGN1cnJlbnQuZGVwZW5kZW5jaWVzKSlcbiAgICAgICAgICA/IChcImZ1bmN0aW9uXCIgPT09IHR5cGVvZiB1bnJlc29sdmVkT2xkUHJvcHMgJiZcbiAgICAgICAgICAgICAgKGFwcGx5RGVyaXZlZFN0YXRlRnJvbVByb3BzKFxuICAgICAgICAgICAgICAgIHdvcmtJblByb2dyZXNzLFxuICAgICAgICAgICAgICAgIENvbXBvbmVudCxcbiAgICAgICAgICAgICAgICB1bnJlc29sdmVkT2xkUHJvcHMsXG4gICAgICAgICAgICAgICAgbmV4dFByb3BzXG4gICAgICAgICAgICAgICksXG4gICAgICAgICAgICAgIChuZXdTdGF0ZSA9IHdvcmtJblByb2dyZXNzLm1lbW9pemVkU3RhdGUpKSxcbiAgICAgICAgICAgIChmb3VuZFdpbGxVcGRhdGVOYW1lID1cbiAgICAgICAgICAgICAgaGFzRm9yY2VVcGRhdGUgfHxcbiAgICAgICAgICAgICAgY2hlY2tTaG91bGRDb21wb25lbnRVcGRhdGUoXG4gICAgICAgICAgICAgICAgd29ya0luUHJvZ3Jlc3MsXG4gICAgICAgICAgICAgICAgQ29tcG9uZW50LFxuICAgICAgICAgICAgICAgIGZvdW5kV2lsbFVwZGF0ZU5hbWUsXG4gICAgICAgICAgICAgICAgbmV4dFByb3BzLFxuICAgICAgICAgICAgICAgIG9sZFN0YXRlLFxuICAgICAgICAgICAgICAgIG5ld1N0YXRlLFxuICAgICAgICAgICAgICAgIGxhbmVcbiAgICAgICAgICAgICAgKSB8fFxuICAgICAgICAgICAgICAobnVsbCAhPT0gY3VycmVudCAmJlxuICAgICAgICAgICAgICAgIG51bGwgIT09IGN1cnJlbnQuZGVwZW5kZW5jaWVzICYmXG4gICAgICAgICAgICAgICAgY2hlY2tJZkNvbnRleHRDaGFuZ2VkKGN1cnJlbnQuZGVwZW5kZW5jaWVzKSkpXG4gICAgICAgICAgICAgID8gKG9sZENvbnRleHQgfHxcbiAgICAgICAgICAgICAgICAgIChcImZ1bmN0aW9uXCIgIT09IHR5cGVvZiBfaW5zdGFuY2UuVU5TQUZFX2NvbXBvbmVudFdpbGxVcGRhdGUgJiZcbiAgICAgICAgICAgICAgICAgICAgXCJmdW5jdGlvblwiICE9PSB0eXBlb2YgX2luc3RhbmNlLmNvbXBvbmVudFdpbGxVcGRhdGUpIHx8XG4gICAgICAgICAgICAgICAgICAoXCJmdW5jdGlvblwiID09PSB0eXBlb2YgX2luc3RhbmNlLmNvbXBvbmVudFdpbGxVcGRhdGUgJiZcbiAgICAgICAgICAgICAgICAgICAgX2luc3RhbmNlLmNvbXBvbmVudFdpbGxVcGRhdGUobmV4dFByb3BzLCBuZXdTdGF0ZSwgbGFuZSksXG4gICAgICAgICAgICAgICAgICBcImZ1bmN0aW9uXCIgPT09IHR5cGVvZiBfaW5zdGFuY2UuVU5TQUZFX2NvbXBvbmVudFdpbGxVcGRhdGUgJiZcbiAgICAgICAgICAgICAgICAgICAgX2luc3RhbmNlLlVOU0FGRV9jb21wb25lbnRXaWxsVXBkYXRlKFxuICAgICAgICAgICAgICAgICAgICAgIG5leHRQcm9wcyxcbiAgICAgICAgICAgICAgICAgICAgICBuZXdTdGF0ZSxcbiAgICAgICAgICAgICAgICAgICAgICBsYW5lXG4gICAgICAgICAgICAgICAgICAgICkpLFxuICAgICAgICAgICAgICAgIFwiZnVuY3Rpb25cIiA9PT0gdHlwZW9mIF9pbnN0YW5jZS5jb21wb25lbnREaWRVcGRhdGUgJiZcbiAgICAgICAgICAgICAgICAgICh3b3JrSW5Qcm9ncmVzcy5mbGFncyB8PSA0KSxcbiAgICAgICAgICAgICAgICBcImZ1bmN0aW9uXCIgPT09IHR5cGVvZiBfaW5zdGFuY2UuZ2V0U25hcHNob3RCZWZvcmVVcGRhdGUgJiZcbiAgICAgICAgICAgICAgICAgICh3b3JrSW5Qcm9ncmVzcy5mbGFncyB8PSAxMDI0KSlcbiAgICAgICAgICAgICAgOiAoXCJmdW5jdGlvblwiICE9PSB0eXBlb2YgX2luc3RhbmNlLmNvbXBvbmVudERpZFVwZGF0ZSB8fFxuICAgICAgICAgICAgICAgICAgKHN0YXRlID09PSBjdXJyZW50Lm1lbW9pemVkUHJvcHMgJiZcbiAgICAgICAgICAgICAgICAgICAgb2xkU3RhdGUgPT09IGN1cnJlbnQubWVtb2l6ZWRTdGF0ZSkgfHxcbiAgICAgICAgICAgICAgICAgICh3b3JrSW5Qcm9ncmVzcy5mbGFncyB8PSA0KSxcbiAgICAgICAgICAgICAgICBcImZ1bmN0aW9uXCIgIT09IHR5cGVvZiBfaW5zdGFuY2UuZ2V0U25hcHNob3RCZWZvcmVVcGRhdGUgfHxcbiAgICAgICAgICAgICAgICAgIChzdGF0ZSA9PT0gY3VycmVudC5tZW1vaXplZFByb3BzICYmXG4gICAgICAgICAgICAgICAgICAgIG9sZFN0YXRlID09PSBjdXJyZW50Lm1lbW9pemVkU3RhdGUpIHx8XG4gICAgICAgICAgICAgICAgICAod29ya0luUHJvZ3Jlc3MuZmxhZ3MgfD0gMTAyNCksXG4gICAgICAgICAgICAgICAgKHdvcmtJblByb2dyZXNzLm1lbW9pemVkUHJvcHMgPSBuZXh0UHJvcHMpLFxuICAgICAgICAgICAgICAgICh3b3JrSW5Qcm9ncmVzcy5tZW1vaXplZFN0YXRlID0gbmV3U3RhdGUpKSxcbiAgICAgICAgICAgIChfaW5zdGFuY2UucHJvcHMgPSBuZXh0UHJvcHMpLFxuICAgICAgICAgICAgKF9pbnN0YW5jZS5zdGF0ZSA9IG5ld1N0YXRlKSxcbiAgICAgICAgICAgIChfaW5zdGFuY2UuY29udGV4dCA9IGxhbmUpLFxuICAgICAgICAgICAgKF9pbnN0YW5jZSA9IGZvdW5kV2lsbFVwZGF0ZU5hbWUpKVxuICAgICAgICAgIDogKFwiZnVuY3Rpb25cIiAhPT0gdHlwZW9mIF9pbnN0YW5jZS5jb21wb25lbnREaWRVcGRhdGUgfHxcbiAgICAgICAgICAgICAgKHN0YXRlID09PSBjdXJyZW50Lm1lbW9pemVkUHJvcHMgJiZcbiAgICAgICAgICAgICAgICBvbGRTdGF0ZSA9PT0gY3VycmVudC5tZW1vaXplZFN0YXRlKSB8fFxuICAgICAgICAgICAgICAod29ya0luUHJvZ3Jlc3MuZmxhZ3MgfD0gNCksXG4gICAgICAgICAgICBcImZ1bmN0aW9uXCIgIT09IHR5cGVvZiBfaW5zdGFuY2UuZ2V0U25hcHNob3RCZWZvcmVVcGRhdGUgfHxcbiAgICAgICAgICAgICAgKHN0YXRlID09PSBjdXJyZW50Lm1lbW9pemVkUHJvcHMgJiZcbiAgICAgICAgICAgICAgICBvbGRTdGF0ZSA9PT0gY3VycmVudC5tZW1vaXplZFN0YXRlKSB8fFxuICAgICAgICAgICAgICAod29ya0luUHJvZ3Jlc3MuZmxhZ3MgfD0gMTAyNCksXG4gICAgICAgICAgICAoX2luc3RhbmNlID0gITEpKTtcbiAgICAgIH1cbiAgICAgIGxhbmUgPSBfaW5zdGFuY2U7XG4gICAgICBtYXJrUmVmKGN1cnJlbnQsIHdvcmtJblByb2dyZXNzKTtcbiAgICAgIHN0YXRlID0gMCAhPT0gKHdvcmtJblByb2dyZXNzLmZsYWdzICYgMTI4KTtcbiAgICAgIGlmIChsYW5lIHx8IHN0YXRlKSB7XG4gICAgICAgIGxhbmUgPSB3b3JrSW5Qcm9ncmVzcy5zdGF0ZU5vZGU7XG4gICAgICAgIHNldEN1cnJlbnRGaWJlcih3b3JrSW5Qcm9ncmVzcyk7XG4gICAgICAgIGlmIChzdGF0ZSAmJiBcImZ1bmN0aW9uXCIgIT09IHR5cGVvZiBDb21wb25lbnQuZ2V0RGVyaXZlZFN0YXRlRnJvbUVycm9yKVxuICAgICAgICAgIChDb21wb25lbnQgPSBudWxsKSwgKHByb2ZpbGVyU3RhcnRUaW1lID0gLTEpO1xuICAgICAgICBlbHNlIHtcbiAgICAgICAgICBtYXJrQ29tcG9uZW50UmVuZGVyU3RhcnRlZCh3b3JrSW5Qcm9ncmVzcyk7XG4gICAgICAgICAgQ29tcG9uZW50ID0gY2FsbFJlbmRlckluREVWKGxhbmUpO1xuICAgICAgICAgIGlmICh3b3JrSW5Qcm9ncmVzcy5tb2RlICYgU3RyaWN0TGVnYWN5TW9kZSkge1xuICAgICAgICAgICAgc2V0SXNTdHJpY3RNb2RlRm9yRGV2dG9vbHMoITApO1xuICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgY2FsbFJlbmRlckluREVWKGxhbmUpO1xuICAgICAgICAgICAgfSBmaW5hbGx5IHtcbiAgICAgICAgICAgICAgc2V0SXNTdHJpY3RNb2RlRm9yRGV2dG9vbHMoITEpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgICBtYXJrQ29tcG9uZW50UmVuZGVyU3RvcHBlZCgpO1xuICAgICAgICB9XG4gICAgICAgIHdvcmtJblByb2dyZXNzLmZsYWdzIHw9IDE7XG4gICAgICAgIG51bGwgIT09IGN1cnJlbnQgJiYgc3RhdGVcbiAgICAgICAgICA/ICgod29ya0luUHJvZ3Jlc3MuY2hpbGQgPSByZWNvbmNpbGVDaGlsZEZpYmVycyhcbiAgICAgICAgICAgICAgd29ya0luUHJvZ3Jlc3MsXG4gICAgICAgICAgICAgIGN1cnJlbnQuY2hpbGQsXG4gICAgICAgICAgICAgIG51bGwsXG4gICAgICAgICAgICAgIHJlbmRlckxhbmVzXG4gICAgICAgICAgICApKSxcbiAgICAgICAgICAgICh3b3JrSW5Qcm9ncmVzcy5jaGlsZCA9IHJlY29uY2lsZUNoaWxkRmliZXJzKFxuICAgICAgICAgICAgICB3b3JrSW5Qcm9ncmVzcyxcbiAgICAgICAgICAgICAgbnVsbCxcbiAgICAgICAgICAgICAgQ29tcG9uZW50LFxuICAgICAgICAgICAgICByZW5kZXJMYW5lc1xuICAgICAgICAgICAgKSkpXG4gICAgICAgICAgOiByZWNvbmNpbGVDaGlsZHJlbihjdXJyZW50LCB3b3JrSW5Qcm9ncmVzcywgQ29tcG9uZW50LCByZW5kZXJMYW5lcyk7XG4gICAgICAgIHdvcmtJblByb2dyZXNzLm1lbW9pemVkU3RhdGUgPSBsYW5lLnN0YXRlO1xuICAgICAgICBjdXJyZW50ID0gd29ya0luUHJvZ3Jlc3MuY2hpbGQ7XG4gICAgICB9IGVsc2VcbiAgICAgICAgY3VycmVudCA9IGJhaWxvdXRPbkFscmVhZHlGaW5pc2hlZFdvcmsoXG4gICAgICAgICAgY3VycmVudCxcbiAgICAgICAgICB3b3JrSW5Qcm9ncmVzcyxcbiAgICAgICAgICByZW5kZXJMYW5lc1xuICAgICAgICApO1xuICAgICAgcmVuZGVyTGFuZXMgPSB3b3JrSW5Qcm9ncmVzcy5zdGF0ZU5vZGU7XG4gICAgICBfaW5zdGFuY2UgJiZcbiAgICAgICAgcmVuZGVyTGFuZXMucHJvcHMgIT09IG5leHRQcm9wcyAmJlxuICAgICAgICAoZGlkV2FybkFib3V0UmVhc3NpZ25pbmdQcm9wcyB8fFxuICAgICAgICAgIGNvbnNvbGUuZXJyb3IoXG4gICAgICAgICAgICBcIkl0IGxvb2tzIGxpa2UgJXMgaXMgcmVhc3NpZ25pbmcgaXRzIG93biBgdGhpcy5wcm9wc2Agd2hpbGUgcmVuZGVyaW5nLiBUaGlzIGlzIG5vdCBzdXBwb3J0ZWQgYW5kIGNhbiBsZWFkIHRvIGNvbmZ1c2luZyBidWdzLlwiLFxuICAgICAgICAgICAgZ2V0Q29tcG9uZW50TmFtZUZyb21GaWJlcih3b3JrSW5Qcm9ncmVzcykgfHwgXCJhIGNvbXBvbmVudFwiXG4gICAgICAgICAgKSxcbiAgICAgICAgKGRpZFdhcm5BYm91dFJlYXNzaWduaW5nUHJvcHMgPSAhMCkpO1xuICAgICAgcmV0dXJuIGN1cnJlbnQ7XG4gICAgfVxuICAgIGZ1bmN0aW9uIG1vdW50SG9zdFJvb3RXaXRob3V0SHlkcmF0aW5nKFxuICAgICAgY3VycmVudCxcbiAgICAgIHdvcmtJblByb2dyZXNzLFxuICAgICAgbmV4dENoaWxkcmVuLFxuICAgICAgcmVuZGVyTGFuZXNcbiAgICApIHtcbiAgICAgIHJlc2V0SHlkcmF0aW9uU3RhdGUoKTtcbiAgICAgIHdvcmtJblByb2dyZXNzLmZsYWdzIHw9IDI1NjtcbiAgICAgIHJlY29uY2lsZUNoaWxkcmVuKGN1cnJlbnQsIHdvcmtJblByb2dyZXNzLCBuZXh0Q2hpbGRyZW4sIHJlbmRlckxhbmVzKTtcbiAgICAgIHJldHVybiB3b3JrSW5Qcm9ncmVzcy5jaGlsZDtcbiAgICB9XG4gICAgZnVuY3Rpb24gdmFsaWRhdGVGdW5jdGlvbkNvbXBvbmVudEluRGV2KHdvcmtJblByb2dyZXNzLCBDb21wb25lbnQpIHtcbiAgICAgIENvbXBvbmVudCAmJlxuICAgICAgICBDb21wb25lbnQuY2hpbGRDb250ZXh0VHlwZXMgJiZcbiAgICAgICAgY29uc29sZS5lcnJvcihcbiAgICAgICAgICBcImNoaWxkQ29udGV4dFR5cGVzIGNhbm5vdCBiZSBkZWZpbmVkIG9uIGEgZnVuY3Rpb24gY29tcG9uZW50LlxcbiAgJXMuY2hpbGRDb250ZXh0VHlwZXMgPSAuLi5cIixcbiAgICAgICAgICBDb21wb25lbnQuZGlzcGxheU5hbWUgfHwgQ29tcG9uZW50Lm5hbWUgfHwgXCJDb21wb25lbnRcIlxuICAgICAgICApO1xuICAgICAgXCJmdW5jdGlvblwiID09PSB0eXBlb2YgQ29tcG9uZW50LmdldERlcml2ZWRTdGF0ZUZyb21Qcm9wcyAmJlxuICAgICAgICAoKHdvcmtJblByb2dyZXNzID0gZ2V0Q29tcG9uZW50TmFtZUZyb21UeXBlKENvbXBvbmVudCkgfHwgXCJVbmtub3duXCIpLFxuICAgICAgICBkaWRXYXJuQWJvdXRHZXREZXJpdmVkU3RhdGVPbkZ1bmN0aW9uQ29tcG9uZW50W3dvcmtJblByb2dyZXNzXSB8fFxuICAgICAgICAgIChjb25zb2xlLmVycm9yKFxuICAgICAgICAgICAgXCIlczogRnVuY3Rpb24gY29tcG9uZW50cyBkbyBub3Qgc3VwcG9ydCBnZXREZXJpdmVkU3RhdGVGcm9tUHJvcHMuXCIsXG4gICAgICAgICAgICB3b3JrSW5Qcm9ncmVzc1xuICAgICAgICAgICksXG4gICAgICAgICAgKGRpZFdhcm5BYm91dEdldERlcml2ZWRTdGF0ZU9uRnVuY3Rpb25Db21wb25lbnRbd29ya0luUHJvZ3Jlc3NdID1cbiAgICAgICAgICAgICEwKSkpO1xuICAgICAgXCJvYmplY3RcIiA9PT0gdHlwZW9mIENvbXBvbmVudC5jb250ZXh0VHlwZSAmJlxuICAgICAgICBudWxsICE9PSBDb21wb25lbnQuY29udGV4dFR5cGUgJiZcbiAgICAgICAgKChDb21wb25lbnQgPSBnZXRDb21wb25lbnROYW1lRnJvbVR5cGUoQ29tcG9uZW50KSB8fCBcIlVua25vd25cIiksXG4gICAgICAgIGRpZFdhcm5BYm91dENvbnRleHRUeXBlT25GdW5jdGlvbkNvbXBvbmVudFtDb21wb25lbnRdIHx8XG4gICAgICAgICAgKGNvbnNvbGUuZXJyb3IoXG4gICAgICAgICAgICBcIiVzOiBGdW5jdGlvbiBjb21wb25lbnRzIGRvIG5vdCBzdXBwb3J0IGNvbnRleHRUeXBlLlwiLFxuICAgICAgICAgICAgQ29tcG9uZW50XG4gICAgICAgICAgKSxcbiAgICAgICAgICAoZGlkV2FybkFib3V0Q29udGV4dFR5cGVPbkZ1bmN0aW9uQ29tcG9uZW50W0NvbXBvbmVudF0gPSAhMCkpKTtcbiAgICB9XG4gICAgZnVuY3Rpb24gbW91bnRTdXNwZW5zZU9mZnNjcmVlblN0YXRlKHJlbmRlckxhbmVzKSB7XG4gICAgICByZXR1cm4geyBiYXNlTGFuZXM6IHJlbmRlckxhbmVzLCBjYWNoZVBvb2w6IGdldFN1c3BlbmRlZENhY2hlKCkgfTtcbiAgICB9XG4gICAgZnVuY3Rpb24gZ2V0UmVtYWluaW5nV29ya0luUHJpbWFyeVRyZWUoXG4gICAgICBjdXJyZW50LFxuICAgICAgcHJpbWFyeVRyZWVEaWREZWZlcixcbiAgICAgIHJlbmRlckxhbmVzXG4gICAgKSB7XG4gICAgICBjdXJyZW50ID0gbnVsbCAhPT0gY3VycmVudCA/IGN1cnJlbnQuY2hpbGRMYW5lcyAmIH5yZW5kZXJMYW5lcyA6IDA7XG4gICAgICBwcmltYXJ5VHJlZURpZERlZmVyICYmIChjdXJyZW50IHw9IHdvcmtJblByb2dyZXNzRGVmZXJyZWRMYW5lKTtcbiAgICAgIHJldHVybiBjdXJyZW50O1xuICAgIH1cbiAgICBmdW5jdGlvbiB1cGRhdGVTdXNwZW5zZUNvbXBvbmVudChjdXJyZW50LCB3b3JrSW5Qcm9ncmVzcywgcmVuZGVyTGFuZXMpIHtcbiAgICAgIHZhciBKU0NvbXBpbGVyX29iamVjdF9pbmxpbmVfZGlnZXN0XzI0NTE7XG4gICAgICB2YXIgSlNDb21waWxlcl9vYmplY3RfaW5saW5lX3N0YWNrXzI0NTIgPSB3b3JrSW5Qcm9ncmVzcy5wZW5kaW5nUHJvcHM7XG4gICAgICBzaG91bGRTdXNwZW5kSW1wbCh3b3JrSW5Qcm9ncmVzcykgJiYgKHdvcmtJblByb2dyZXNzLmZsYWdzIHw9IDEyOCk7XG4gICAgICB2YXIgSlNDb21waWxlcl9vYmplY3RfaW5saW5lX2NvbXBvbmVudFN0YWNrXzI0NTMgPSAhMTtcbiAgICAgIHZhciBkaWRTdXNwZW5kID0gMCAhPT0gKHdvcmtJblByb2dyZXNzLmZsYWdzICYgMTI4KTtcbiAgICAgIChKU0NvbXBpbGVyX29iamVjdF9pbmxpbmVfZGlnZXN0XzI0NTEgPSBkaWRTdXNwZW5kKSB8fFxuICAgICAgICAoSlNDb21waWxlcl9vYmplY3RfaW5saW5lX2RpZ2VzdF8yNDUxID1cbiAgICAgICAgICBudWxsICE9PSBjdXJyZW50ICYmIG51bGwgPT09IGN1cnJlbnQubWVtb2l6ZWRTdGF0ZVxuICAgICAgICAgICAgPyAhMVxuICAgICAgICAgICAgOiAwICE9PSAoc3VzcGVuc2VTdGFja0N1cnNvci5jdXJyZW50ICYgRm9yY2VTdXNwZW5zZUZhbGxiYWNrKSk7XG4gICAgICBKU0NvbXBpbGVyX29iamVjdF9pbmxpbmVfZGlnZXN0XzI0NTEgJiZcbiAgICAgICAgKChKU0NvbXBpbGVyX29iamVjdF9pbmxpbmVfY29tcG9uZW50U3RhY2tfMjQ1MyA9ICEwKSxcbiAgICAgICAgKHdvcmtJblByb2dyZXNzLmZsYWdzICY9IC0xMjkpKTtcbiAgICAgIEpTQ29tcGlsZXJfb2JqZWN0X2lubGluZV9kaWdlc3RfMjQ1MSA9IDAgIT09ICh3b3JrSW5Qcm9ncmVzcy5mbGFncyAmIDMyKTtcbiAgICAgIHdvcmtJblByb2dyZXNzLmZsYWdzICY9IC0zMztcbiAgICAgIGlmIChudWxsID09PSBjdXJyZW50KSB7XG4gICAgICAgIGlmIChpc0h5ZHJhdGluZykge1xuICAgICAgICAgIEpTQ29tcGlsZXJfb2JqZWN0X2lubGluZV9jb21wb25lbnRTdGFja18yNDUzXG4gICAgICAgICAgICA/IHB1c2hQcmltYXJ5VHJlZVN1c3BlbnNlSGFuZGxlcih3b3JrSW5Qcm9ncmVzcylcbiAgICAgICAgICAgIDogcmV1c2VTdXNwZW5zZUhhbmRsZXJPblN0YWNrKHdvcmtJblByb2dyZXNzKTtcbiAgICAgICAgICBpZiAoaXNIeWRyYXRpbmcpIHtcbiAgICAgICAgICAgIHZhciBKU0NvbXBpbGVyX29iamVjdF9pbmxpbmVfbWVzc2FnZV8yNDUwID0gbmV4dEh5ZHJhdGFibGVJbnN0YW5jZTtcbiAgICAgICAgICAgIHZhciBKU0NvbXBpbGVyX3RlbXA7XG4gICAgICAgICAgICBpZiAoIShKU0NvbXBpbGVyX3RlbXAgPSAhSlNDb21waWxlcl9vYmplY3RfaW5saW5lX21lc3NhZ2VfMjQ1MCkpIHtcbiAgICAgICAgICAgICAgYzoge1xuICAgICAgICAgICAgICAgIHZhciBpbnN0YW5jZSA9IEpTQ29tcGlsZXJfb2JqZWN0X2lubGluZV9tZXNzYWdlXzI0NTA7XG4gICAgICAgICAgICAgICAgZm9yIChcbiAgICAgICAgICAgICAgICAgIEpTQ29tcGlsZXJfdGVtcCA9IHJvb3RPclNpbmdsZXRvbkNvbnRleHQ7XG4gICAgICAgICAgICAgICAgICA4ICE9PSBpbnN0YW5jZS5ub2RlVHlwZTtcblxuICAgICAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICAgICAgaWYgKCFKU0NvbXBpbGVyX3RlbXApIHtcbiAgICAgICAgICAgICAgICAgICAgSlNDb21waWxlcl90ZW1wID0gbnVsbDtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWsgYztcbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgIGluc3RhbmNlID0gZ2V0TmV4dEh5ZHJhdGFibGUoaW5zdGFuY2UubmV4dFNpYmxpbmcpO1xuICAgICAgICAgICAgICAgICAgaWYgKG51bGwgPT09IGluc3RhbmNlKSB7XG4gICAgICAgICAgICAgICAgICAgIEpTQ29tcGlsZXJfdGVtcCA9IG51bGw7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrIGM7XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIEpTQ29tcGlsZXJfdGVtcCA9IGluc3RhbmNlO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIG51bGwgIT09IEpTQ29tcGlsZXJfdGVtcFxuICAgICAgICAgICAgICAgID8gKHdhcm5JZk5vdEh5ZHJhdGluZygpLFxuICAgICAgICAgICAgICAgICAgKHdvcmtJblByb2dyZXNzLm1lbW9pemVkU3RhdGUgPSB7XG4gICAgICAgICAgICAgICAgICAgIGRlaHlkcmF0ZWQ6IEpTQ29tcGlsZXJfdGVtcCxcbiAgICAgICAgICAgICAgICAgICAgdHJlZUNvbnRleHQ6XG4gICAgICAgICAgICAgICAgICAgICAgbnVsbCAhPT0gdHJlZUNvbnRleHRQcm92aWRlclxuICAgICAgICAgICAgICAgICAgICAgICAgPyB7IGlkOiB0cmVlQ29udGV4dElkLCBvdmVyZmxvdzogdHJlZUNvbnRleHRPdmVyZmxvdyB9XG4gICAgICAgICAgICAgICAgICAgICAgICA6IG51bGwsXG4gICAgICAgICAgICAgICAgICAgIHJldHJ5TGFuZTogNTM2ODcwOTEyLFxuICAgICAgICAgICAgICAgICAgICBoeWRyYXRpb25FcnJvcnM6IG51bGxcbiAgICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgICAgKGluc3RhbmNlID0gY3JlYXRlRmliZXIoMTgsIG51bGwsIG51bGwsIE5vTW9kZSkpLFxuICAgICAgICAgICAgICAgICAgKGluc3RhbmNlLnN0YXRlTm9kZSA9IEpTQ29tcGlsZXJfdGVtcCksXG4gICAgICAgICAgICAgICAgICAoaW5zdGFuY2UucmV0dXJuID0gd29ya0luUHJvZ3Jlc3MpLFxuICAgICAgICAgICAgICAgICAgKHdvcmtJblByb2dyZXNzLmNoaWxkID0gaW5zdGFuY2UpLFxuICAgICAgICAgICAgICAgICAgKGh5ZHJhdGlvblBhcmVudEZpYmVyID0gd29ya0luUHJvZ3Jlc3MpLFxuICAgICAgICAgICAgICAgICAgKG5leHRIeWRyYXRhYmxlSW5zdGFuY2UgPSBudWxsKSxcbiAgICAgICAgICAgICAgICAgIChKU0NvbXBpbGVyX3RlbXAgPSAhMCkpXG4gICAgICAgICAgICAgICAgOiAoSlNDb21waWxlcl90ZW1wID0gITEpO1xuICAgICAgICAgICAgICBKU0NvbXBpbGVyX3RlbXAgPSAhSlNDb21waWxlcl90ZW1wO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgSlNDb21waWxlcl90ZW1wICYmXG4gICAgICAgICAgICAgICh3YXJuTm9uSHlkcmF0ZWRJbnN0YW5jZShcbiAgICAgICAgICAgICAgICB3b3JrSW5Qcm9ncmVzcyxcbiAgICAgICAgICAgICAgICBKU0NvbXBpbGVyX29iamVjdF9pbmxpbmVfbWVzc2FnZV8yNDUwXG4gICAgICAgICAgICAgICksXG4gICAgICAgICAgICAgIHRocm93T25IeWRyYXRpb25NaXNtYXRjaCh3b3JrSW5Qcm9ncmVzcykpO1xuICAgICAgICAgIH1cbiAgICAgICAgICBKU0NvbXBpbGVyX29iamVjdF9pbmxpbmVfbWVzc2FnZV8yNDUwID0gd29ya0luUHJvZ3Jlc3MubWVtb2l6ZWRTdGF0ZTtcbiAgICAgICAgICBpZiAoXG4gICAgICAgICAgICBudWxsICE9PSBKU0NvbXBpbGVyX29iamVjdF9pbmxpbmVfbWVzc2FnZV8yNDUwICYmXG4gICAgICAgICAgICAoKEpTQ29tcGlsZXJfb2JqZWN0X2lubGluZV9tZXNzYWdlXzI0NTAgPVxuICAgICAgICAgICAgICBKU0NvbXBpbGVyX29iamVjdF9pbmxpbmVfbWVzc2FnZV8yNDUwLmRlaHlkcmF0ZWQpLFxuICAgICAgICAgICAgbnVsbCAhPT0gSlNDb21waWxlcl9vYmplY3RfaW5saW5lX21lc3NhZ2VfMjQ1MClcbiAgICAgICAgICApXG4gICAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgICBpc1N1c3BlbnNlSW5zdGFuY2VGYWxsYmFjayhKU0NvbXBpbGVyX29iamVjdF9pbmxpbmVfbWVzc2FnZV8yNDUwKVxuICAgICAgICAgICAgICAgID8gKHdvcmtJblByb2dyZXNzLmxhbmVzID0gMzIpXG4gICAgICAgICAgICAgICAgOiAod29ya0luUHJvZ3Jlc3MubGFuZXMgPSA1MzY4NzA5MTIpLFxuICAgICAgICAgICAgICBudWxsXG4gICAgICAgICAgICApO1xuICAgICAgICAgIHBvcFN1c3BlbnNlSGFuZGxlcih3b3JrSW5Qcm9ncmVzcyk7XG4gICAgICAgIH1cbiAgICAgICAgSlNDb21waWxlcl9vYmplY3RfaW5saW5lX21lc3NhZ2VfMjQ1MCA9XG4gICAgICAgICAgSlNDb21waWxlcl9vYmplY3RfaW5saW5lX3N0YWNrXzI0NTIuY2hpbGRyZW47XG4gICAgICAgIEpTQ29tcGlsZXJfb2JqZWN0X2lubGluZV9zdGFja18yNDUyID1cbiAgICAgICAgICBKU0NvbXBpbGVyX29iamVjdF9pbmxpbmVfc3RhY2tfMjQ1Mi5mYWxsYmFjaztcbiAgICAgICAgaWYgKEpTQ29tcGlsZXJfb2JqZWN0X2lubGluZV9jb21wb25lbnRTdGFja18yNDUzKVxuICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICByZXVzZVN1c3BlbnNlSGFuZGxlck9uU3RhY2sod29ya0luUHJvZ3Jlc3MpLFxuICAgICAgICAgICAgKEpTQ29tcGlsZXJfb2JqZWN0X2lubGluZV9jb21wb25lbnRTdGFja18yNDUzID1cbiAgICAgICAgICAgICAgd29ya0luUHJvZ3Jlc3MubW9kZSksXG4gICAgICAgICAgICAoSlNDb21waWxlcl9vYmplY3RfaW5saW5lX21lc3NhZ2VfMjQ1MCA9XG4gICAgICAgICAgICAgIG1vdW50V29ya0luUHJvZ3Jlc3NPZmZzY3JlZW5GaWJlcihcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICBtb2RlOiBcImhpZGRlblwiLFxuICAgICAgICAgICAgICAgICAgY2hpbGRyZW46IEpTQ29tcGlsZXJfb2JqZWN0X2lubGluZV9tZXNzYWdlXzI0NTBcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIEpTQ29tcGlsZXJfb2JqZWN0X2lubGluZV9jb21wb25lbnRTdGFja18yNDUzXG4gICAgICAgICAgICAgICkpLFxuICAgICAgICAgICAgKEpTQ29tcGlsZXJfb2JqZWN0X2lubGluZV9zdGFja18yNDUyID0gY3JlYXRlRmliZXJGcm9tRnJhZ21lbnQoXG4gICAgICAgICAgICAgIEpTQ29tcGlsZXJfb2JqZWN0X2lubGluZV9zdGFja18yNDUyLFxuICAgICAgICAgICAgICBKU0NvbXBpbGVyX29iamVjdF9pbmxpbmVfY29tcG9uZW50U3RhY2tfMjQ1MyxcbiAgICAgICAgICAgICAgcmVuZGVyTGFuZXMsXG4gICAgICAgICAgICAgIG51bGxcbiAgICAgICAgICAgICkpLFxuICAgICAgICAgICAgKEpTQ29tcGlsZXJfb2JqZWN0X2lubGluZV9tZXNzYWdlXzI0NTAucmV0dXJuID0gd29ya0luUHJvZ3Jlc3MpLFxuICAgICAgICAgICAgKEpTQ29tcGlsZXJfb2JqZWN0X2lubGluZV9zdGFja18yNDUyLnJldHVybiA9IHdvcmtJblByb2dyZXNzKSxcbiAgICAgICAgICAgIChKU0NvbXBpbGVyX29iamVjdF9pbmxpbmVfbWVzc2FnZV8yNDUwLnNpYmxpbmcgPVxuICAgICAgICAgICAgICBKU0NvbXBpbGVyX29iamVjdF9pbmxpbmVfc3RhY2tfMjQ1MiksXG4gICAgICAgICAgICAod29ya0luUHJvZ3Jlc3MuY2hpbGQgPSBKU0NvbXBpbGVyX29iamVjdF9pbmxpbmVfbWVzc2FnZV8yNDUwKSxcbiAgICAgICAgICAgIChKU0NvbXBpbGVyX29iamVjdF9pbmxpbmVfY29tcG9uZW50U3RhY2tfMjQ1MyA9XG4gICAgICAgICAgICAgIHdvcmtJblByb2dyZXNzLmNoaWxkKSxcbiAgICAgICAgICAgIChKU0NvbXBpbGVyX29iamVjdF9pbmxpbmVfY29tcG9uZW50U3RhY2tfMjQ1My5tZW1vaXplZFN0YXRlID1cbiAgICAgICAgICAgICAgbW91bnRTdXNwZW5zZU9mZnNjcmVlblN0YXRlKHJlbmRlckxhbmVzKSksXG4gICAgICAgICAgICAoSlNDb21waWxlcl9vYmplY3RfaW5saW5lX2NvbXBvbmVudFN0YWNrXzI0NTMuY2hpbGRMYW5lcyA9XG4gICAgICAgICAgICAgIGdldFJlbWFpbmluZ1dvcmtJblByaW1hcnlUcmVlKFxuICAgICAgICAgICAgICAgIGN1cnJlbnQsXG4gICAgICAgICAgICAgICAgSlNDb21waWxlcl9vYmplY3RfaW5saW5lX2RpZ2VzdF8yNDUxLFxuICAgICAgICAgICAgICAgIHJlbmRlckxhbmVzXG4gICAgICAgICAgICAgICkpLFxuICAgICAgICAgICAgKHdvcmtJblByb2dyZXNzLm1lbW9pemVkU3RhdGUgPSBTVVNQRU5ERURfTUFSS0VSKSxcbiAgICAgICAgICAgIEpTQ29tcGlsZXJfb2JqZWN0X2lubGluZV9zdGFja18yNDUyXG4gICAgICAgICAgKTtcbiAgICAgICAgcHVzaFByaW1hcnlUcmVlU3VzcGVuc2VIYW5kbGVyKHdvcmtJblByb2dyZXNzKTtcbiAgICAgICAgcmV0dXJuIG1vdW50U3VzcGVuc2VQcmltYXJ5Q2hpbGRyZW4oXG4gICAgICAgICAgd29ya0luUHJvZ3Jlc3MsXG4gICAgICAgICAgSlNDb21waWxlcl9vYmplY3RfaW5saW5lX21lc3NhZ2VfMjQ1MFxuICAgICAgICApO1xuICAgICAgfVxuICAgICAgdmFyIHByZXZTdGF0ZSA9IGN1cnJlbnQubWVtb2l6ZWRTdGF0ZTtcbiAgICAgIGlmIChcbiAgICAgICAgbnVsbCAhPT0gcHJldlN0YXRlICYmXG4gICAgICAgICgoSlNDb21waWxlcl9vYmplY3RfaW5saW5lX21lc3NhZ2VfMjQ1MCA9IHByZXZTdGF0ZS5kZWh5ZHJhdGVkKSxcbiAgICAgICAgbnVsbCAhPT0gSlNDb21waWxlcl9vYmplY3RfaW5saW5lX21lc3NhZ2VfMjQ1MClcbiAgICAgICkge1xuICAgICAgICBpZiAoZGlkU3VzcGVuZClcbiAgICAgICAgICB3b3JrSW5Qcm9ncmVzcy5mbGFncyAmIDI1NlxuICAgICAgICAgICAgPyAocHVzaFByaW1hcnlUcmVlU3VzcGVuc2VIYW5kbGVyKHdvcmtJblByb2dyZXNzKSxcbiAgICAgICAgICAgICAgKHdvcmtJblByb2dyZXNzLmZsYWdzICY9IC0yNTcpLFxuICAgICAgICAgICAgICAod29ya0luUHJvZ3Jlc3MgPSByZXRyeVN1c3BlbnNlQ29tcG9uZW50V2l0aG91dEh5ZHJhdGluZyhcbiAgICAgICAgICAgICAgICBjdXJyZW50LFxuICAgICAgICAgICAgICAgIHdvcmtJblByb2dyZXNzLFxuICAgICAgICAgICAgICAgIHJlbmRlckxhbmVzXG4gICAgICAgICAgICAgICkpKVxuICAgICAgICAgICAgOiBudWxsICE9PSB3b3JrSW5Qcm9ncmVzcy5tZW1vaXplZFN0YXRlXG4gICAgICAgICAgICAgID8gKHJldXNlU3VzcGVuc2VIYW5kbGVyT25TdGFjayh3b3JrSW5Qcm9ncmVzcyksXG4gICAgICAgICAgICAgICAgKHdvcmtJblByb2dyZXNzLmNoaWxkID0gY3VycmVudC5jaGlsZCksXG4gICAgICAgICAgICAgICAgKHdvcmtJblByb2dyZXNzLmZsYWdzIHw9IDEyOCksXG4gICAgICAgICAgICAgICAgKHdvcmtJblByb2dyZXNzID0gbnVsbCkpXG4gICAgICAgICAgICAgIDogKHJldXNlU3VzcGVuc2VIYW5kbGVyT25TdGFjayh3b3JrSW5Qcm9ncmVzcyksXG4gICAgICAgICAgICAgICAgKEpTQ29tcGlsZXJfb2JqZWN0X2lubGluZV9jb21wb25lbnRTdGFja18yNDUzID1cbiAgICAgICAgICAgICAgICAgIEpTQ29tcGlsZXJfb2JqZWN0X2lubGluZV9zdGFja18yNDUyLmZhbGxiYWNrKSxcbiAgICAgICAgICAgICAgICAoSlNDb21waWxlcl9vYmplY3RfaW5saW5lX21lc3NhZ2VfMjQ1MCA9IHdvcmtJblByb2dyZXNzLm1vZGUpLFxuICAgICAgICAgICAgICAgIChKU0NvbXBpbGVyX29iamVjdF9pbmxpbmVfc3RhY2tfMjQ1MiA9XG4gICAgICAgICAgICAgICAgICBtb3VudFdvcmtJblByb2dyZXNzT2Zmc2NyZWVuRmliZXIoXG4gICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICBtb2RlOiBcInZpc2libGVcIixcbiAgICAgICAgICAgICAgICAgICAgICBjaGlsZHJlbjogSlNDb21waWxlcl9vYmplY3RfaW5saW5lX3N0YWNrXzI0NTIuY2hpbGRyZW5cbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgSlNDb21waWxlcl9vYmplY3RfaW5saW5lX21lc3NhZ2VfMjQ1MFxuICAgICAgICAgICAgICAgICAgKSksXG4gICAgICAgICAgICAgICAgKEpTQ29tcGlsZXJfb2JqZWN0X2lubGluZV9jb21wb25lbnRTdGFja18yNDUzID1cbiAgICAgICAgICAgICAgICAgIGNyZWF0ZUZpYmVyRnJvbUZyYWdtZW50KFxuICAgICAgICAgICAgICAgICAgICBKU0NvbXBpbGVyX29iamVjdF9pbmxpbmVfY29tcG9uZW50U3RhY2tfMjQ1MyxcbiAgICAgICAgICAgICAgICAgICAgSlNDb21waWxlcl9vYmplY3RfaW5saW5lX21lc3NhZ2VfMjQ1MCxcbiAgICAgICAgICAgICAgICAgICAgcmVuZGVyTGFuZXMsXG4gICAgICAgICAgICAgICAgICAgIG51bGxcbiAgICAgICAgICAgICAgICAgICkpLFxuICAgICAgICAgICAgICAgIChKU0NvbXBpbGVyX29iamVjdF9pbmxpbmVfY29tcG9uZW50U3RhY2tfMjQ1My5mbGFncyB8PSAyKSxcbiAgICAgICAgICAgICAgICAoSlNDb21waWxlcl9vYmplY3RfaW5saW5lX3N0YWNrXzI0NTIucmV0dXJuID0gd29ya0luUHJvZ3Jlc3MpLFxuICAgICAgICAgICAgICAgIChKU0NvbXBpbGVyX29iamVjdF9pbmxpbmVfY29tcG9uZW50U3RhY2tfMjQ1My5yZXR1cm4gPVxuICAgICAgICAgICAgICAgICAgd29ya0luUHJvZ3Jlc3MpLFxuICAgICAgICAgICAgICAgIChKU0NvbXBpbGVyX29iamVjdF9pbmxpbmVfc3RhY2tfMjQ1Mi5zaWJsaW5nID1cbiAgICAgICAgICAgICAgICAgIEpTQ29tcGlsZXJfb2JqZWN0X2lubGluZV9jb21wb25lbnRTdGFja18yNDUzKSxcbiAgICAgICAgICAgICAgICAod29ya0luUHJvZ3Jlc3MuY2hpbGQgPSBKU0NvbXBpbGVyX29iamVjdF9pbmxpbmVfc3RhY2tfMjQ1MiksXG4gICAgICAgICAgICAgICAgcmVjb25jaWxlQ2hpbGRGaWJlcnMoXG4gICAgICAgICAgICAgICAgICB3b3JrSW5Qcm9ncmVzcyxcbiAgICAgICAgICAgICAgICAgIGN1cnJlbnQuY2hpbGQsXG4gICAgICAgICAgICAgICAgICBudWxsLFxuICAgICAgICAgICAgICAgICAgcmVuZGVyTGFuZXNcbiAgICAgICAgICAgICAgICApLFxuICAgICAgICAgICAgICAgIChKU0NvbXBpbGVyX29iamVjdF9pbmxpbmVfc3RhY2tfMjQ1MiA9IHdvcmtJblByb2dyZXNzLmNoaWxkKSxcbiAgICAgICAgICAgICAgICAoSlNDb21waWxlcl9vYmplY3RfaW5saW5lX3N0YWNrXzI0NTIubWVtb2l6ZWRTdGF0ZSA9XG4gICAgICAgICAgICAgICAgICBtb3VudFN1c3BlbnNlT2Zmc2NyZWVuU3RhdGUocmVuZGVyTGFuZXMpKSxcbiAgICAgICAgICAgICAgICAoSlNDb21waWxlcl9vYmplY3RfaW5saW5lX3N0YWNrXzI0NTIuY2hpbGRMYW5lcyA9XG4gICAgICAgICAgICAgICAgICBnZXRSZW1haW5pbmdXb3JrSW5QcmltYXJ5VHJlZShcbiAgICAgICAgICAgICAgICAgICAgY3VycmVudCxcbiAgICAgICAgICAgICAgICAgICAgSlNDb21waWxlcl9vYmplY3RfaW5saW5lX2RpZ2VzdF8yNDUxLFxuICAgICAgICAgICAgICAgICAgICByZW5kZXJMYW5lc1xuICAgICAgICAgICAgICAgICAgKSksXG4gICAgICAgICAgICAgICAgKHdvcmtJblByb2dyZXNzLm1lbW9pemVkU3RhdGUgPSBTVVNQRU5ERURfTUFSS0VSKSxcbiAgICAgICAgICAgICAgICAod29ya0luUHJvZ3Jlc3MgPVxuICAgICAgICAgICAgICAgICAgSlNDb21waWxlcl9vYmplY3RfaW5saW5lX2NvbXBvbmVudFN0YWNrXzI0NTMpKTtcbiAgICAgICAgZWxzZSBpZiAoXG4gICAgICAgICAgKHB1c2hQcmltYXJ5VHJlZVN1c3BlbnNlSGFuZGxlcih3b3JrSW5Qcm9ncmVzcyksXG4gICAgICAgICAgaXNIeWRyYXRpbmcgJiZcbiAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoXG4gICAgICAgICAgICAgIFwiV2Ugc2hvdWxkIG5vdCBiZSBoeWRyYXRpbmcgaGVyZS4gVGhpcyBpcyBhIGJ1ZyBpbiBSZWFjdC4gUGxlYXNlIGZpbGUgYSBidWcuXCJcbiAgICAgICAgICAgICksXG4gICAgICAgICAgaXNTdXNwZW5zZUluc3RhbmNlRmFsbGJhY2soSlNDb21waWxlcl9vYmplY3RfaW5saW5lX21lc3NhZ2VfMjQ1MCkpXG4gICAgICAgICkge1xuICAgICAgICAgIEpTQ29tcGlsZXJfb2JqZWN0X2lubGluZV9kaWdlc3RfMjQ1MSA9XG4gICAgICAgICAgICBKU0NvbXBpbGVyX29iamVjdF9pbmxpbmVfbWVzc2FnZV8yNDUwLm5leHRTaWJsaW5nICYmXG4gICAgICAgICAgICBKU0NvbXBpbGVyX29iamVjdF9pbmxpbmVfbWVzc2FnZV8yNDUwLm5leHRTaWJsaW5nLmRhdGFzZXQ7XG4gICAgICAgICAgaWYgKEpTQ29tcGlsZXJfb2JqZWN0X2lubGluZV9kaWdlc3RfMjQ1MSkge1xuICAgICAgICAgICAgSlNDb21waWxlcl90ZW1wID0gSlNDb21waWxlcl9vYmplY3RfaW5saW5lX2RpZ2VzdF8yNDUxLmRnc3Q7XG4gICAgICAgICAgICB2YXIgbWVzc2FnZSA9IEpTQ29tcGlsZXJfb2JqZWN0X2lubGluZV9kaWdlc3RfMjQ1MS5tc2c7XG4gICAgICAgICAgICBpbnN0YW5jZSA9IEpTQ29tcGlsZXJfb2JqZWN0X2lubGluZV9kaWdlc3RfMjQ1MS5zdGNrO1xuICAgICAgICAgICAgdmFyIGNvbXBvbmVudFN0YWNrID0gSlNDb21waWxlcl9vYmplY3RfaW5saW5lX2RpZ2VzdF8yNDUxLmNzdGNrO1xuICAgICAgICAgIH1cbiAgICAgICAgICBKU0NvbXBpbGVyX29iamVjdF9pbmxpbmVfbWVzc2FnZV8yNDUwID0gbWVzc2FnZTtcbiAgICAgICAgICBKU0NvbXBpbGVyX29iamVjdF9pbmxpbmVfZGlnZXN0XzI0NTEgPSBKU0NvbXBpbGVyX3RlbXA7XG4gICAgICAgICAgSlNDb21waWxlcl9vYmplY3RfaW5saW5lX3N0YWNrXzI0NTIgPSBpbnN0YW5jZTtcbiAgICAgICAgICBKU0NvbXBpbGVyX3RlbXAgPSBKU0NvbXBpbGVyX29iamVjdF9pbmxpbmVfY29tcG9uZW50U3RhY2tfMjQ1MyA9XG4gICAgICAgICAgICBjb21wb25lbnRTdGFjaztcbiAgICAgICAgICBKU0NvbXBpbGVyX29iamVjdF9pbmxpbmVfY29tcG9uZW50U3RhY2tfMjQ1MyA9XG4gICAgICAgICAgICBKU0NvbXBpbGVyX29iamVjdF9pbmxpbmVfbWVzc2FnZV8yNDUwXG4gICAgICAgICAgICAgID8gRXJyb3IoSlNDb21waWxlcl9vYmplY3RfaW5saW5lX21lc3NhZ2VfMjQ1MClcbiAgICAgICAgICAgICAgOiBFcnJvcihcbiAgICAgICAgICAgICAgICAgIFwiVGhlIHNlcnZlciBjb3VsZCBub3QgZmluaXNoIHRoaXMgU3VzcGVuc2UgYm91bmRhcnksIGxpa2VseSBkdWUgdG8gYW4gZXJyb3IgZHVyaW5nIHNlcnZlciByZW5kZXJpbmcuIFN3aXRjaGVkIHRvIGNsaWVudCByZW5kZXJpbmcuXCJcbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgIEpTQ29tcGlsZXJfb2JqZWN0X2lubGluZV9jb21wb25lbnRTdGFja18yNDUzLnN0YWNrID1cbiAgICAgICAgICAgIEpTQ29tcGlsZXJfb2JqZWN0X2lubGluZV9zdGFja18yNDUyIHx8IFwiXCI7XG4gICAgICAgICAgSlNDb21waWxlcl9vYmplY3RfaW5saW5lX2NvbXBvbmVudFN0YWNrXzI0NTMuZGlnZXN0ID1cbiAgICAgICAgICAgIEpTQ29tcGlsZXJfb2JqZWN0X2lubGluZV9kaWdlc3RfMjQ1MTtcbiAgICAgICAgICBKU0NvbXBpbGVyX29iamVjdF9pbmxpbmVfZGlnZXN0XzI0NTEgPVxuICAgICAgICAgICAgdm9pZCAwID09PSBKU0NvbXBpbGVyX3RlbXAgPyBudWxsIDogSlNDb21waWxlcl90ZW1wO1xuICAgICAgICAgIEpTQ29tcGlsZXJfb2JqZWN0X2lubGluZV9zdGFja18yNDUyID0ge1xuICAgICAgICAgICAgdmFsdWU6IEpTQ29tcGlsZXJfb2JqZWN0X2lubGluZV9jb21wb25lbnRTdGFja18yNDUzLFxuICAgICAgICAgICAgc291cmNlOiBudWxsLFxuICAgICAgICAgICAgc3RhY2s6IEpTQ29tcGlsZXJfb2JqZWN0X2lubGluZV9kaWdlc3RfMjQ1MVxuICAgICAgICAgIH07XG4gICAgICAgICAgXCJzdHJpbmdcIiA9PT0gdHlwZW9mIEpTQ29tcGlsZXJfb2JqZWN0X2lubGluZV9kaWdlc3RfMjQ1MSAmJlxuICAgICAgICAgICAgQ2FwdHVyZWRTdGFja3Muc2V0KFxuICAgICAgICAgICAgICBKU0NvbXBpbGVyX29iamVjdF9pbmxpbmVfY29tcG9uZW50U3RhY2tfMjQ1MyxcbiAgICAgICAgICAgICAgSlNDb21waWxlcl9vYmplY3RfaW5saW5lX3N0YWNrXzI0NTJcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgcXVldWVIeWRyYXRpb25FcnJvcihKU0NvbXBpbGVyX29iamVjdF9pbmxpbmVfc3RhY2tfMjQ1Mik7XG4gICAgICAgICAgd29ya0luUHJvZ3Jlc3MgPSByZXRyeVN1c3BlbnNlQ29tcG9uZW50V2l0aG91dEh5ZHJhdGluZyhcbiAgICAgICAgICAgIGN1cnJlbnQsXG4gICAgICAgICAgICB3b3JrSW5Qcm9ncmVzcyxcbiAgICAgICAgICAgIHJlbmRlckxhbmVzXG4gICAgICAgICAgKTtcbiAgICAgICAgfSBlbHNlIGlmIChcbiAgICAgICAgICAoZGlkUmVjZWl2ZVVwZGF0ZSB8fFxuICAgICAgICAgICAgcHJvcGFnYXRlUGFyZW50Q29udGV4dENoYW5nZXMoXG4gICAgICAgICAgICAgIGN1cnJlbnQsXG4gICAgICAgICAgICAgIHdvcmtJblByb2dyZXNzLFxuICAgICAgICAgICAgICByZW5kZXJMYW5lcyxcbiAgICAgICAgICAgICAgITFcbiAgICAgICAgICAgICksXG4gICAgICAgICAgKEpTQ29tcGlsZXJfb2JqZWN0X2lubGluZV9kaWdlc3RfMjQ1MSA9XG4gICAgICAgICAgICAwICE9PSAocmVuZGVyTGFuZXMgJiBjdXJyZW50LmNoaWxkTGFuZXMpKSxcbiAgICAgICAgICBkaWRSZWNlaXZlVXBkYXRlIHx8IEpTQ29tcGlsZXJfb2JqZWN0X2lubGluZV9kaWdlc3RfMjQ1MSlcbiAgICAgICAgKSB7XG4gICAgICAgICAgSlNDb21waWxlcl9vYmplY3RfaW5saW5lX2RpZ2VzdF8yNDUxID0gd29ya0luUHJvZ3Jlc3NSb290O1xuICAgICAgICAgIGlmIChcbiAgICAgICAgICAgIG51bGwgIT09IEpTQ29tcGlsZXJfb2JqZWN0X2lubGluZV9kaWdlc3RfMjQ1MSAmJlxuICAgICAgICAgICAgKChKU0NvbXBpbGVyX29iamVjdF9pbmxpbmVfc3RhY2tfMjQ1MiA9IHJlbmRlckxhbmVzICYgLXJlbmRlckxhbmVzKSxcbiAgICAgICAgICAgIChKU0NvbXBpbGVyX29iamVjdF9pbmxpbmVfc3RhY2tfMjQ1MiA9XG4gICAgICAgICAgICAgIDAgIT09IChKU0NvbXBpbGVyX29iamVjdF9pbmxpbmVfc3RhY2tfMjQ1MiAmIDQyKVxuICAgICAgICAgICAgICAgID8gMVxuICAgICAgICAgICAgICAgIDogZ2V0QnVtcGVkTGFuZUZvckh5ZHJhdGlvbkJ5TGFuZShcbiAgICAgICAgICAgICAgICAgICAgSlNDb21waWxlcl9vYmplY3RfaW5saW5lX3N0YWNrXzI0NTJcbiAgICAgICAgICAgICAgICAgICkpLFxuICAgICAgICAgICAgKEpTQ29tcGlsZXJfb2JqZWN0X2lubGluZV9zdGFja18yNDUyID1cbiAgICAgICAgICAgICAgMCAhPT1cbiAgICAgICAgICAgICAgKEpTQ29tcGlsZXJfb2JqZWN0X2lubGluZV9zdGFja18yNDUyICZcbiAgICAgICAgICAgICAgICAoSlNDb21waWxlcl9vYmplY3RfaW5saW5lX2RpZ2VzdF8yNDUxLnN1c3BlbmRlZExhbmVzIHxcbiAgICAgICAgICAgICAgICAgIHJlbmRlckxhbmVzKSlcbiAgICAgICAgICAgICAgICA/IDBcbiAgICAgICAgICAgICAgICA6IEpTQ29tcGlsZXJfb2JqZWN0X2lubGluZV9zdGFja18yNDUyKSxcbiAgICAgICAgICAgIDAgIT09IEpTQ29tcGlsZXJfb2JqZWN0X2lubGluZV9zdGFja18yNDUyICYmXG4gICAgICAgICAgICAgIEpTQ29tcGlsZXJfb2JqZWN0X2lubGluZV9zdGFja18yNDUyICE9PSBwcmV2U3RhdGUucmV0cnlMYW5lKVxuICAgICAgICAgIClcbiAgICAgICAgICAgIHRocm93IChcbiAgICAgICAgICAgICAgKChwcmV2U3RhdGUucmV0cnlMYW5lID0gSlNDb21waWxlcl9vYmplY3RfaW5saW5lX3N0YWNrXzI0NTIpLFxuICAgICAgICAgICAgICBlbnF1ZXVlQ29uY3VycmVudFJlbmRlckZvckxhbmUoXG4gICAgICAgICAgICAgICAgY3VycmVudCxcbiAgICAgICAgICAgICAgICBKU0NvbXBpbGVyX29iamVjdF9pbmxpbmVfc3RhY2tfMjQ1MlxuICAgICAgICAgICAgICApLFxuICAgICAgICAgICAgICBzY2hlZHVsZVVwZGF0ZU9uRmliZXIoXG4gICAgICAgICAgICAgICAgSlNDb21waWxlcl9vYmplY3RfaW5saW5lX2RpZ2VzdF8yNDUxLFxuICAgICAgICAgICAgICAgIGN1cnJlbnQsXG4gICAgICAgICAgICAgICAgSlNDb21waWxlcl9vYmplY3RfaW5saW5lX3N0YWNrXzI0NTJcbiAgICAgICAgICAgICAgKSxcbiAgICAgICAgICAgICAgU2VsZWN0aXZlSHlkcmF0aW9uRXhjZXB0aW9uKVxuICAgICAgICAgICAgKTtcbiAgICAgICAgICBKU0NvbXBpbGVyX29iamVjdF9pbmxpbmVfbWVzc2FnZV8yNDUwLmRhdGEgPT09XG4gICAgICAgICAgICBTVVNQRU5TRV9QRU5ESU5HX1NUQVJUX0RBVEEgfHwgcmVuZGVyRGlkU3VzcGVuZERlbGF5SWZQb3NzaWJsZSgpO1xuICAgICAgICAgIHdvcmtJblByb2dyZXNzID0gcmV0cnlTdXNwZW5zZUNvbXBvbmVudFdpdGhvdXRIeWRyYXRpbmcoXG4gICAgICAgICAgICBjdXJyZW50LFxuICAgICAgICAgICAgd29ya0luUHJvZ3Jlc3MsXG4gICAgICAgICAgICByZW5kZXJMYW5lc1xuICAgICAgICAgICk7XG4gICAgICAgIH0gZWxzZVxuICAgICAgICAgIEpTQ29tcGlsZXJfb2JqZWN0X2lubGluZV9tZXNzYWdlXzI0NTAuZGF0YSA9PT1cbiAgICAgICAgICBTVVNQRU5TRV9QRU5ESU5HX1NUQVJUX0RBVEFcbiAgICAgICAgICAgID8gKCh3b3JrSW5Qcm9ncmVzcy5mbGFncyB8PSAxOTIpLFxuICAgICAgICAgICAgICAod29ya0luUHJvZ3Jlc3MuY2hpbGQgPSBjdXJyZW50LmNoaWxkKSxcbiAgICAgICAgICAgICAgKHdvcmtJblByb2dyZXNzID0gbnVsbCkpXG4gICAgICAgICAgICA6ICgoY3VycmVudCA9IHByZXZTdGF0ZS50cmVlQ29udGV4dCksXG4gICAgICAgICAgICAgIChuZXh0SHlkcmF0YWJsZUluc3RhbmNlID0gZ2V0TmV4dEh5ZHJhdGFibGUoXG4gICAgICAgICAgICAgICAgSlNDb21waWxlcl9vYmplY3RfaW5saW5lX21lc3NhZ2VfMjQ1MC5uZXh0U2libGluZ1xuICAgICAgICAgICAgICApKSxcbiAgICAgICAgICAgICAgKGh5ZHJhdGlvblBhcmVudEZpYmVyID0gd29ya0luUHJvZ3Jlc3MpLFxuICAgICAgICAgICAgICAoaXNIeWRyYXRpbmcgPSAhMCksXG4gICAgICAgICAgICAgIChoeWRyYXRpb25FcnJvcnMgPSBudWxsKSxcbiAgICAgICAgICAgICAgKGRpZFN1c3BlbmRPckVycm9yREVWID0gITEpLFxuICAgICAgICAgICAgICAoaHlkcmF0aW9uRGlmZlJvb3RERVYgPSBudWxsKSxcbiAgICAgICAgICAgICAgKHJvb3RPclNpbmdsZXRvbkNvbnRleHQgPSAhMSksXG4gICAgICAgICAgICAgIG51bGwgIT09IGN1cnJlbnQgJiZcbiAgICAgICAgICAgICAgICAod2FybklmTm90SHlkcmF0aW5nKCksXG4gICAgICAgICAgICAgICAgKGlkU3RhY2tbaWRTdGFja0luZGV4KytdID0gdHJlZUNvbnRleHRJZCksXG4gICAgICAgICAgICAgICAgKGlkU3RhY2tbaWRTdGFja0luZGV4KytdID0gdHJlZUNvbnRleHRPdmVyZmxvdyksXG4gICAgICAgICAgICAgICAgKGlkU3RhY2tbaWRTdGFja0luZGV4KytdID0gdHJlZUNvbnRleHRQcm92aWRlciksXG4gICAgICAgICAgICAgICAgKHRyZWVDb250ZXh0SWQgPSBjdXJyZW50LmlkKSxcbiAgICAgICAgICAgICAgICAodHJlZUNvbnRleHRPdmVyZmxvdyA9IGN1cnJlbnQub3ZlcmZsb3cpLFxuICAgICAgICAgICAgICAgICh0cmVlQ29udGV4dFByb3ZpZGVyID0gd29ya0luUHJvZ3Jlc3MpKSxcbiAgICAgICAgICAgICAgKHdvcmtJblByb2dyZXNzID0gbW91bnRTdXNwZW5zZVByaW1hcnlDaGlsZHJlbihcbiAgICAgICAgICAgICAgICB3b3JrSW5Qcm9ncmVzcyxcbiAgICAgICAgICAgICAgICBKU0NvbXBpbGVyX29iamVjdF9pbmxpbmVfc3RhY2tfMjQ1Mi5jaGlsZHJlblxuICAgICAgICAgICAgICApKSxcbiAgICAgICAgICAgICAgKHdvcmtJblByb2dyZXNzLmZsYWdzIHw9IDQwOTYpKTtcbiAgICAgICAgcmV0dXJuIHdvcmtJblByb2dyZXNzO1xuICAgICAgfVxuICAgICAgaWYgKEpTQ29tcGlsZXJfb2JqZWN0X2lubGluZV9jb21wb25lbnRTdGFja18yNDUzKVxuICAgICAgICByZXR1cm4gKFxuICAgICAgICAgIHJldXNlU3VzcGVuc2VIYW5kbGVyT25TdGFjayh3b3JrSW5Qcm9ncmVzcyksXG4gICAgICAgICAgKEpTQ29tcGlsZXJfb2JqZWN0X2lubGluZV9jb21wb25lbnRTdGFja18yNDUzID1cbiAgICAgICAgICAgIEpTQ29tcGlsZXJfb2JqZWN0X2lubGluZV9zdGFja18yNDUyLmZhbGxiYWNrKSxcbiAgICAgICAgICAoSlNDb21waWxlcl9vYmplY3RfaW5saW5lX21lc3NhZ2VfMjQ1MCA9IHdvcmtJblByb2dyZXNzLm1vZGUpLFxuICAgICAgICAgIChKU0NvbXBpbGVyX3RlbXAgPSBjdXJyZW50LmNoaWxkKSxcbiAgICAgICAgICAoaW5zdGFuY2UgPSBKU0NvbXBpbGVyX3RlbXAuc2libGluZyksXG4gICAgICAgICAgKEpTQ29tcGlsZXJfb2JqZWN0X2lubGluZV9zdGFja18yNDUyID0gY3JlYXRlV29ya0luUHJvZ3Jlc3MoXG4gICAgICAgICAgICBKU0NvbXBpbGVyX3RlbXAsXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIG1vZGU6IFwiaGlkZGVuXCIsXG4gICAgICAgICAgICAgIGNoaWxkcmVuOiBKU0NvbXBpbGVyX29iamVjdF9pbmxpbmVfc3RhY2tfMjQ1Mi5jaGlsZHJlblxuICAgICAgICAgICAgfVxuICAgICAgICAgICkpLFxuICAgICAgICAgIChKU0NvbXBpbGVyX29iamVjdF9pbmxpbmVfc3RhY2tfMjQ1Mi5zdWJ0cmVlRmxhZ3MgPVxuICAgICAgICAgICAgSlNDb21waWxlcl90ZW1wLnN1YnRyZWVGbGFncyAmIDY1MDExNzEyKSxcbiAgICAgICAgICBudWxsICE9PSBpbnN0YW5jZVxuICAgICAgICAgICAgPyAoSlNDb21waWxlcl9vYmplY3RfaW5saW5lX2NvbXBvbmVudFN0YWNrXzI0NTMgPVxuICAgICAgICAgICAgICAgIGNyZWF0ZVdvcmtJblByb2dyZXNzKFxuICAgICAgICAgICAgICAgICAgaW5zdGFuY2UsXG4gICAgICAgICAgICAgICAgICBKU0NvbXBpbGVyX29iamVjdF9pbmxpbmVfY29tcG9uZW50U3RhY2tfMjQ1M1xuICAgICAgICAgICAgICAgICkpXG4gICAgICAgICAgICA6ICgoSlNDb21waWxlcl9vYmplY3RfaW5saW5lX2NvbXBvbmVudFN0YWNrXzI0NTMgPVxuICAgICAgICAgICAgICAgIGNyZWF0ZUZpYmVyRnJvbUZyYWdtZW50KFxuICAgICAgICAgICAgICAgICAgSlNDb21waWxlcl9vYmplY3RfaW5saW5lX2NvbXBvbmVudFN0YWNrXzI0NTMsXG4gICAgICAgICAgICAgICAgICBKU0NvbXBpbGVyX29iamVjdF9pbmxpbmVfbWVzc2FnZV8yNDUwLFxuICAgICAgICAgICAgICAgICAgcmVuZGVyTGFuZXMsXG4gICAgICAgICAgICAgICAgICBudWxsXG4gICAgICAgICAgICAgICAgKSksXG4gICAgICAgICAgICAgIChKU0NvbXBpbGVyX29iamVjdF9pbmxpbmVfY29tcG9uZW50U3RhY2tfMjQ1My5mbGFncyB8PSAyKSksXG4gICAgICAgICAgKEpTQ29tcGlsZXJfb2JqZWN0X2lubGluZV9jb21wb25lbnRTdGFja18yNDUzLnJldHVybiA9XG4gICAgICAgICAgICB3b3JrSW5Qcm9ncmVzcyksXG4gICAgICAgICAgKEpTQ29tcGlsZXJfb2JqZWN0X2lubGluZV9zdGFja18yNDUyLnJldHVybiA9IHdvcmtJblByb2dyZXNzKSxcbiAgICAgICAgICAoSlNDb21waWxlcl9vYmplY3RfaW5saW5lX3N0YWNrXzI0NTIuc2libGluZyA9XG4gICAgICAgICAgICBKU0NvbXBpbGVyX29iamVjdF9pbmxpbmVfY29tcG9uZW50U3RhY2tfMjQ1MyksXG4gICAgICAgICAgKHdvcmtJblByb2dyZXNzLmNoaWxkID0gSlNDb21waWxlcl9vYmplY3RfaW5saW5lX3N0YWNrXzI0NTIpLFxuICAgICAgICAgIChKU0NvbXBpbGVyX29iamVjdF9pbmxpbmVfc3RhY2tfMjQ1MiA9XG4gICAgICAgICAgICBKU0NvbXBpbGVyX29iamVjdF9pbmxpbmVfY29tcG9uZW50U3RhY2tfMjQ1MyksXG4gICAgICAgICAgKEpTQ29tcGlsZXJfb2JqZWN0X2lubGluZV9jb21wb25lbnRTdGFja18yNDUzID0gd29ya0luUHJvZ3Jlc3MuY2hpbGQpLFxuICAgICAgICAgIChKU0NvbXBpbGVyX29iamVjdF9pbmxpbmVfbWVzc2FnZV8yNDUwID0gY3VycmVudC5jaGlsZC5tZW1vaXplZFN0YXRlKSxcbiAgICAgICAgICBudWxsID09PSBKU0NvbXBpbGVyX29iamVjdF9pbmxpbmVfbWVzc2FnZV8yNDUwXG4gICAgICAgICAgICA/IChKU0NvbXBpbGVyX29iamVjdF9pbmxpbmVfbWVzc2FnZV8yNDUwID1cbiAgICAgICAgICAgICAgICBtb3VudFN1c3BlbnNlT2Zmc2NyZWVuU3RhdGUocmVuZGVyTGFuZXMpKVxuICAgICAgICAgICAgOiAoKEpTQ29tcGlsZXJfdGVtcCA9XG4gICAgICAgICAgICAgICAgSlNDb21waWxlcl9vYmplY3RfaW5saW5lX21lc3NhZ2VfMjQ1MC5jYWNoZVBvb2wpLFxuICAgICAgICAgICAgICBudWxsICE9PSBKU0NvbXBpbGVyX3RlbXBcbiAgICAgICAgICAgICAgICA/ICgoaW5zdGFuY2UgPSBDYWNoZUNvbnRleHQuX2N1cnJlbnRWYWx1ZSksXG4gICAgICAgICAgICAgICAgICAoSlNDb21waWxlcl90ZW1wID1cbiAgICAgICAgICAgICAgICAgICAgSlNDb21waWxlcl90ZW1wLnBhcmVudCAhPT0gaW5zdGFuY2VcbiAgICAgICAgICAgICAgICAgICAgICA/IHsgcGFyZW50OiBpbnN0YW5jZSwgcG9vbDogaW5zdGFuY2UgfVxuICAgICAgICAgICAgICAgICAgICAgIDogSlNDb21waWxlcl90ZW1wKSlcbiAgICAgICAgICAgICAgICA6IChKU0NvbXBpbGVyX3RlbXAgPSBnZXRTdXNwZW5kZWRDYWNoZSgpKSxcbiAgICAgICAgICAgICAgKEpTQ29tcGlsZXJfb2JqZWN0X2lubGluZV9tZXNzYWdlXzI0NTAgPSB7XG4gICAgICAgICAgICAgICAgYmFzZUxhbmVzOlxuICAgICAgICAgICAgICAgICAgSlNDb21waWxlcl9vYmplY3RfaW5saW5lX21lc3NhZ2VfMjQ1MC5iYXNlTGFuZXMgfCByZW5kZXJMYW5lcyxcbiAgICAgICAgICAgICAgICBjYWNoZVBvb2w6IEpTQ29tcGlsZXJfdGVtcFxuICAgICAgICAgICAgICB9KSksXG4gICAgICAgICAgKEpTQ29tcGlsZXJfb2JqZWN0X2lubGluZV9jb21wb25lbnRTdGFja18yNDUzLm1lbW9pemVkU3RhdGUgPVxuICAgICAgICAgICAgSlNDb21waWxlcl9vYmplY3RfaW5saW5lX21lc3NhZ2VfMjQ1MCksXG4gICAgICAgICAgKEpTQ29tcGlsZXJfb2JqZWN0X2lubGluZV9jb21wb25lbnRTdGFja18yNDUzLmNoaWxkTGFuZXMgPVxuICAgICAgICAgICAgZ2V0UmVtYWluaW5nV29ya0luUHJpbWFyeVRyZWUoXG4gICAgICAgICAgICAgIGN1cnJlbnQsXG4gICAgICAgICAgICAgIEpTQ29tcGlsZXJfb2JqZWN0X2lubGluZV9kaWdlc3RfMjQ1MSxcbiAgICAgICAgICAgICAgcmVuZGVyTGFuZXNcbiAgICAgICAgICAgICkpLFxuICAgICAgICAgICh3b3JrSW5Qcm9ncmVzcy5tZW1vaXplZFN0YXRlID0gU1VTUEVOREVEX01BUktFUiksXG4gICAgICAgICAgSlNDb21waWxlcl9vYmplY3RfaW5saW5lX3N0YWNrXzI0NTJcbiAgICAgICAgKTtcbiAgICAgIHB1c2hQcmltYXJ5VHJlZVN1c3BlbnNlSGFuZGxlcih3b3JrSW5Qcm9ncmVzcyk7XG4gICAgICByZW5kZXJMYW5lcyA9IGN1cnJlbnQuY2hpbGQ7XG4gICAgICBjdXJyZW50ID0gcmVuZGVyTGFuZXMuc2libGluZztcbiAgICAgIHJlbmRlckxhbmVzID0gY3JlYXRlV29ya0luUHJvZ3Jlc3MocmVuZGVyTGFuZXMsIHtcbiAgICAgICAgbW9kZTogXCJ2aXNpYmxlXCIsXG4gICAgICAgIGNoaWxkcmVuOiBKU0NvbXBpbGVyX29iamVjdF9pbmxpbmVfc3RhY2tfMjQ1Mi5jaGlsZHJlblxuICAgICAgfSk7XG4gICAgICByZW5kZXJMYW5lcy5yZXR1cm4gPSB3b3JrSW5Qcm9ncmVzcztcbiAgICAgIHJlbmRlckxhbmVzLnNpYmxpbmcgPSBudWxsO1xuICAgICAgbnVsbCAhPT0gY3VycmVudCAmJlxuICAgICAgICAoKEpTQ29tcGlsZXJfb2JqZWN0X2lubGluZV9kaWdlc3RfMjQ1MSA9IHdvcmtJblByb2dyZXNzLmRlbGV0aW9ucyksXG4gICAgICAgIG51bGwgPT09IEpTQ29tcGlsZXJfb2JqZWN0X2lubGluZV9kaWdlc3RfMjQ1MVxuICAgICAgICAgID8gKCh3b3JrSW5Qcm9ncmVzcy5kZWxldGlvbnMgPSBbY3VycmVudF0pLFxuICAgICAgICAgICAgKHdvcmtJblByb2dyZXNzLmZsYWdzIHw9IDE2KSlcbiAgICAgICAgICA6IEpTQ29tcGlsZXJfb2JqZWN0X2lubGluZV9kaWdlc3RfMjQ1MS5wdXNoKGN1cnJlbnQpKTtcbiAgICAgIHdvcmtJblByb2dyZXNzLmNoaWxkID0gcmVuZGVyTGFuZXM7XG4gICAgICB3b3JrSW5Qcm9ncmVzcy5tZW1vaXplZFN0YXRlID0gbnVsbDtcbiAgICAgIHJldHVybiByZW5kZXJMYW5lcztcbiAgICB9XG4gICAgZnVuY3Rpb24gbW91bnRTdXNwZW5zZVByaW1hcnlDaGlsZHJlbih3b3JrSW5Qcm9ncmVzcywgcHJpbWFyeUNoaWxkcmVuKSB7XG4gICAgICBwcmltYXJ5Q2hpbGRyZW4gPSBtb3VudFdvcmtJblByb2dyZXNzT2Zmc2NyZWVuRmliZXIoXG4gICAgICAgIHsgbW9kZTogXCJ2aXNpYmxlXCIsIGNoaWxkcmVuOiBwcmltYXJ5Q2hpbGRyZW4gfSxcbiAgICAgICAgd29ya0luUHJvZ3Jlc3MubW9kZVxuICAgICAgKTtcbiAgICAgIHByaW1hcnlDaGlsZHJlbi5yZXR1cm4gPSB3b3JrSW5Qcm9ncmVzcztcbiAgICAgIHJldHVybiAod29ya0luUHJvZ3Jlc3MuY2hpbGQgPSBwcmltYXJ5Q2hpbGRyZW4pO1xuICAgIH1cbiAgICBmdW5jdGlvbiBtb3VudFdvcmtJblByb2dyZXNzT2Zmc2NyZWVuRmliZXIob2Zmc2NyZWVuUHJvcHMsIG1vZGUpIHtcbiAgICAgIG9mZnNjcmVlblByb3BzID0gY3JlYXRlRmliZXIoMjIsIG9mZnNjcmVlblByb3BzLCBudWxsLCBtb2RlKTtcbiAgICAgIG9mZnNjcmVlblByb3BzLmxhbmVzID0gMDtcbiAgICAgIG9mZnNjcmVlblByb3BzLnN0YXRlTm9kZSA9IHtcbiAgICAgICAgX3Zpc2liaWxpdHk6IE9mZnNjcmVlblZpc2libGUsXG4gICAgICAgIF9wZW5kaW5nTWFya2VyczogbnVsbCxcbiAgICAgICAgX3JldHJ5Q2FjaGU6IG51bGwsXG4gICAgICAgIF90cmFuc2l0aW9uczogbnVsbFxuICAgICAgfTtcbiAgICAgIHJldHVybiBvZmZzY3JlZW5Qcm9wcztcbiAgICB9XG4gICAgZnVuY3Rpb24gcmV0cnlTdXNwZW5zZUNvbXBvbmVudFdpdGhvdXRIeWRyYXRpbmcoXG4gICAgICBjdXJyZW50LFxuICAgICAgd29ya0luUHJvZ3Jlc3MsXG4gICAgICByZW5kZXJMYW5lc1xuICAgICkge1xuICAgICAgcmVjb25jaWxlQ2hpbGRGaWJlcnMod29ya0luUHJvZ3Jlc3MsIGN1cnJlbnQuY2hpbGQsIG51bGwsIHJlbmRlckxhbmVzKTtcbiAgICAgIGN1cnJlbnQgPSBtb3VudFN1c3BlbnNlUHJpbWFyeUNoaWxkcmVuKFxuICAgICAgICB3b3JrSW5Qcm9ncmVzcyxcbiAgICAgICAgd29ya0luUHJvZ3Jlc3MucGVuZGluZ1Byb3BzLmNoaWxkcmVuXG4gICAgICApO1xuICAgICAgY3VycmVudC5mbGFncyB8PSAyO1xuICAgICAgd29ya0luUHJvZ3Jlc3MubWVtb2l6ZWRTdGF0ZSA9IG51bGw7XG4gICAgICByZXR1cm4gY3VycmVudDtcbiAgICB9XG4gICAgZnVuY3Rpb24gc2NoZWR1bGVTdXNwZW5zZVdvcmtPbkZpYmVyKGZpYmVyLCByZW5kZXJMYW5lcywgcHJvcGFnYXRpb25Sb290KSB7XG4gICAgICBmaWJlci5sYW5lcyB8PSByZW5kZXJMYW5lcztcbiAgICAgIHZhciBhbHRlcm5hdGUgPSBmaWJlci5hbHRlcm5hdGU7XG4gICAgICBudWxsICE9PSBhbHRlcm5hdGUgJiYgKGFsdGVybmF0ZS5sYW5lcyB8PSByZW5kZXJMYW5lcyk7XG4gICAgICBzY2hlZHVsZUNvbnRleHRXb3JrT25QYXJlbnRQYXRoKFxuICAgICAgICBmaWJlci5yZXR1cm4sXG4gICAgICAgIHJlbmRlckxhbmVzLFxuICAgICAgICBwcm9wYWdhdGlvblJvb3RcbiAgICAgICk7XG4gICAgfVxuICAgIGZ1bmN0aW9uIHZhbGlkYXRlU3VzcGVuc2VMaXN0TmVzdGVkQ2hpbGQoY2hpbGRTbG90LCBpbmRleCkge1xuICAgICAgdmFyIGlzQW5BcnJheSA9IGlzQXJyYXlJbXBsKGNoaWxkU2xvdCk7XG4gICAgICBjaGlsZFNsb3QgPSAhaXNBbkFycmF5ICYmIFwiZnVuY3Rpb25cIiA9PT0gdHlwZW9mIGdldEl0ZXJhdG9yRm4oY2hpbGRTbG90KTtcbiAgICAgIHJldHVybiBpc0FuQXJyYXkgfHwgY2hpbGRTbG90XG4gICAgICAgID8gKChpc0FuQXJyYXkgPSBpc0FuQXJyYXkgPyBcImFycmF5XCIgOiBcIml0ZXJhYmxlXCIpLFxuICAgICAgICAgIGNvbnNvbGUuZXJyb3IoXG4gICAgICAgICAgICBcIkEgbmVzdGVkICVzIHdhcyBwYXNzZWQgdG8gcm93ICMlcyBpbiA8U3VzcGVuc2VMaXN0IC8+LiBXcmFwIGl0IGluIGFuIGFkZGl0aW9uYWwgU3VzcGVuc2VMaXN0IHRvIGNvbmZpZ3VyZSBpdHMgcmV2ZWFsT3JkZXI6IDxTdXNwZW5zZUxpc3QgcmV2ZWFsT3JkZXI9Li4uPiAuLi4gPFN1c3BlbnNlTGlzdCByZXZlYWxPcmRlcj0uLi4+eyVzfTwvU3VzcGVuc2VMaXN0PiAuLi4gPC9TdXNwZW5zZUxpc3Q+XCIsXG4gICAgICAgICAgICBpc0FuQXJyYXksXG4gICAgICAgICAgICBpbmRleCxcbiAgICAgICAgICAgIGlzQW5BcnJheVxuICAgICAgICAgICksXG4gICAgICAgICAgITEpXG4gICAgICAgIDogITA7XG4gICAgfVxuICAgIGZ1bmN0aW9uIGluaXRTdXNwZW5zZUxpc3RSZW5kZXJTdGF0ZShcbiAgICAgIHdvcmtJblByb2dyZXNzLFxuICAgICAgaXNCYWNrd2FyZHMsXG4gICAgICB0YWlsLFxuICAgICAgbGFzdENvbnRlbnRSb3csXG4gICAgICB0YWlsTW9kZVxuICAgICkge1xuICAgICAgdmFyIHJlbmRlclN0YXRlID0gd29ya0luUHJvZ3Jlc3MubWVtb2l6ZWRTdGF0ZTtcbiAgICAgIG51bGwgPT09IHJlbmRlclN0YXRlXG4gICAgICAgID8gKHdvcmtJblByb2dyZXNzLm1lbW9pemVkU3RhdGUgPSB7XG4gICAgICAgICAgICBpc0JhY2t3YXJkczogaXNCYWNrd2FyZHMsXG4gICAgICAgICAgICByZW5kZXJpbmc6IG51bGwsXG4gICAgICAgICAgICByZW5kZXJpbmdTdGFydFRpbWU6IDAsXG4gICAgICAgICAgICBsYXN0OiBsYXN0Q29udGVudFJvdyxcbiAgICAgICAgICAgIHRhaWw6IHRhaWwsXG4gICAgICAgICAgICB0YWlsTW9kZTogdGFpbE1vZGVcbiAgICAgICAgICB9KVxuICAgICAgICA6ICgocmVuZGVyU3RhdGUuaXNCYWNrd2FyZHMgPSBpc0JhY2t3YXJkcyksXG4gICAgICAgICAgKHJlbmRlclN0YXRlLnJlbmRlcmluZyA9IG51bGwpLFxuICAgICAgICAgIChyZW5kZXJTdGF0ZS5yZW5kZXJpbmdTdGFydFRpbWUgPSAwKSxcbiAgICAgICAgICAocmVuZGVyU3RhdGUubGFzdCA9IGxhc3RDb250ZW50Um93KSxcbiAgICAgICAgICAocmVuZGVyU3RhdGUudGFpbCA9IHRhaWwpLFxuICAgICAgICAgIChyZW5kZXJTdGF0ZS50YWlsTW9kZSA9IHRhaWxNb2RlKSk7XG4gICAgfVxuICAgIGZ1bmN0aW9uIHVwZGF0ZVN1c3BlbnNlTGlzdENvbXBvbmVudChjdXJyZW50LCB3b3JrSW5Qcm9ncmVzcywgcmVuZGVyTGFuZXMpIHtcbiAgICAgIHZhciBuZXh0UHJvcHMgPSB3b3JrSW5Qcm9ncmVzcy5wZW5kaW5nUHJvcHMsXG4gICAgICAgIHJldmVhbE9yZGVyID0gbmV4dFByb3BzLnJldmVhbE9yZGVyLFxuICAgICAgICB0YWlsTW9kZSA9IG5leHRQcm9wcy50YWlsO1xuICAgICAgbmV4dFByb3BzID0gbmV4dFByb3BzLmNoaWxkcmVuO1xuICAgICAgaWYgKFxuICAgICAgICB2b2lkIDAgIT09IHJldmVhbE9yZGVyICYmXG4gICAgICAgIFwiZm9yd2FyZHNcIiAhPT0gcmV2ZWFsT3JkZXIgJiZcbiAgICAgICAgXCJiYWNrd2FyZHNcIiAhPT0gcmV2ZWFsT3JkZXIgJiZcbiAgICAgICAgXCJ0b2dldGhlclwiICE9PSByZXZlYWxPcmRlciAmJlxuICAgICAgICAhZGlkV2FybkFib3V0UmV2ZWFsT3JkZXJbcmV2ZWFsT3JkZXJdXG4gICAgICApXG4gICAgICAgIGlmIChcbiAgICAgICAgICAoKGRpZFdhcm5BYm91dFJldmVhbE9yZGVyW3JldmVhbE9yZGVyXSA9ICEwKSxcbiAgICAgICAgICBcInN0cmluZ1wiID09PSB0eXBlb2YgcmV2ZWFsT3JkZXIpXG4gICAgICAgIClcbiAgICAgICAgICBzd2l0Y2ggKHJldmVhbE9yZGVyLnRvTG93ZXJDYXNlKCkpIHtcbiAgICAgICAgICAgIGNhc2UgXCJ0b2dldGhlclwiOlxuICAgICAgICAgICAgY2FzZSBcImZvcndhcmRzXCI6XG4gICAgICAgICAgICBjYXNlIFwiYmFja3dhcmRzXCI6XG4gICAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoXG4gICAgICAgICAgICAgICAgJ1wiJXNcIiBpcyBub3QgYSB2YWxpZCB2YWx1ZSBmb3IgcmV2ZWFsT3JkZXIgb24gPFN1c3BlbnNlTGlzdCAvPi4gVXNlIGxvd2VyY2FzZSBcIiVzXCIgaW5zdGVhZC4nLFxuICAgICAgICAgICAgICAgIHJldmVhbE9yZGVyLFxuICAgICAgICAgICAgICAgIHJldmVhbE9yZGVyLnRvTG93ZXJDYXNlKClcbiAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlIFwiZm9yd2FyZFwiOlxuICAgICAgICAgICAgY2FzZSBcImJhY2t3YXJkXCI6XG4gICAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoXG4gICAgICAgICAgICAgICAgJ1wiJXNcIiBpcyBub3QgYSB2YWxpZCB2YWx1ZSBmb3IgcmV2ZWFsT3JkZXIgb24gPFN1c3BlbnNlTGlzdCAvPi4gUmVhY3QgdXNlcyB0aGUgLXMgc3VmZml4IGluIHRoZSBzcGVsbGluZy4gVXNlIFwiJXNzXCIgaW5zdGVhZC4nLFxuICAgICAgICAgICAgICAgIHJldmVhbE9yZGVyLFxuICAgICAgICAgICAgICAgIHJldmVhbE9yZGVyLnRvTG93ZXJDYXNlKClcbiAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICBjb25zb2xlLmVycm9yKFxuICAgICAgICAgICAgICAgICdcIiVzXCIgaXMgbm90IGEgc3VwcG9ydGVkIHJldmVhbE9yZGVyIG9uIDxTdXNwZW5zZUxpc3QgLz4uIERpZCB5b3UgbWVhbiBcInRvZ2V0aGVyXCIsIFwiZm9yd2FyZHNcIiBvciBcImJhY2t3YXJkc1wiPycsXG4gICAgICAgICAgICAgICAgcmV2ZWFsT3JkZXJcbiAgICAgICAgICAgICAgKTtcbiAgICAgICAgICB9XG4gICAgICAgIGVsc2VcbiAgICAgICAgICBjb25zb2xlLmVycm9yKFxuICAgICAgICAgICAgJyVzIGlzIG5vdCBhIHN1cHBvcnRlZCB2YWx1ZSBmb3IgcmV2ZWFsT3JkZXIgb24gPFN1c3BlbnNlTGlzdCAvPi4gRGlkIHlvdSBtZWFuIFwidG9nZXRoZXJcIiwgXCJmb3J3YXJkc1wiIG9yIFwiYmFja3dhcmRzXCI/JyxcbiAgICAgICAgICAgIHJldmVhbE9yZGVyXG4gICAgICAgICAgKTtcbiAgICAgIHZvaWQgMCA9PT0gdGFpbE1vZGUgfHxcbiAgICAgICAgZGlkV2FybkFib3V0VGFpbE9wdGlvbnNbdGFpbE1vZGVdIHx8XG4gICAgICAgIChcImNvbGxhcHNlZFwiICE9PSB0YWlsTW9kZSAmJiBcImhpZGRlblwiICE9PSB0YWlsTW9kZVxuICAgICAgICAgID8gKChkaWRXYXJuQWJvdXRUYWlsT3B0aW9uc1t0YWlsTW9kZV0gPSAhMCksXG4gICAgICAgICAgICBjb25zb2xlLmVycm9yKFxuICAgICAgICAgICAgICAnXCIlc1wiIGlzIG5vdCBhIHN1cHBvcnRlZCB2YWx1ZSBmb3IgdGFpbCBvbiA8U3VzcGVuc2VMaXN0IC8+LiBEaWQgeW91IG1lYW4gXCJjb2xsYXBzZWRcIiBvciBcImhpZGRlblwiPycsXG4gICAgICAgICAgICAgIHRhaWxNb2RlXG4gICAgICAgICAgICApKVxuICAgICAgICAgIDogXCJmb3J3YXJkc1wiICE9PSByZXZlYWxPcmRlciAmJlxuICAgICAgICAgICAgXCJiYWNrd2FyZHNcIiAhPT0gcmV2ZWFsT3JkZXIgJiZcbiAgICAgICAgICAgICgoZGlkV2FybkFib3V0VGFpbE9wdGlvbnNbdGFpbE1vZGVdID0gITApLFxuICAgICAgICAgICAgY29uc29sZS5lcnJvcihcbiAgICAgICAgICAgICAgJzxTdXNwZW5zZUxpc3QgdGFpbD1cIiVzXCIgLz4gaXMgb25seSB2YWxpZCBpZiByZXZlYWxPcmRlciBpcyBcImZvcndhcmRzXCIgb3IgXCJiYWNrd2FyZHNcIi4gRGlkIHlvdSBtZWFuIHRvIHNwZWNpZnkgcmV2ZWFsT3JkZXI9XCJmb3J3YXJkc1wiPycsXG4gICAgICAgICAgICAgIHRhaWxNb2RlXG4gICAgICAgICAgICApKSk7XG4gICAgICBhOiBpZiAoXG4gICAgICAgIChcImZvcndhcmRzXCIgPT09IHJldmVhbE9yZGVyIHx8IFwiYmFja3dhcmRzXCIgPT09IHJldmVhbE9yZGVyKSAmJlxuICAgICAgICB2b2lkIDAgIT09IG5leHRQcm9wcyAmJlxuICAgICAgICBudWxsICE9PSBuZXh0UHJvcHMgJiZcbiAgICAgICAgITEgIT09IG5leHRQcm9wc1xuICAgICAgKVxuICAgICAgICBpZiAoaXNBcnJheUltcGwobmV4dFByb3BzKSlcbiAgICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IG5leHRQcm9wcy5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgaWYgKCF2YWxpZGF0ZVN1c3BlbnNlTGlzdE5lc3RlZENoaWxkKG5leHRQcm9wc1tpXSwgaSkpIGJyZWFrIGE7XG4gICAgICAgICAgfVxuICAgICAgICBlbHNlIGlmICgoKGkgPSBnZXRJdGVyYXRvckZuKG5leHRQcm9wcykpLCBcImZ1bmN0aW9uXCIgPT09IHR5cGVvZiBpKSkge1xuICAgICAgICAgIGlmICgoaSA9IGkuY2FsbChuZXh0UHJvcHMpKSlcbiAgICAgICAgICAgIGZvciAodmFyIHN0ZXAgPSBpLm5leHQoKSwgX2kgPSAwOyAhc3RlcC5kb25lOyBzdGVwID0gaS5uZXh0KCkpIHtcbiAgICAgICAgICAgICAgaWYgKCF2YWxpZGF0ZVN1c3BlbnNlTGlzdE5lc3RlZENoaWxkKHN0ZXAudmFsdWUsIF9pKSkgYnJlYWsgYTtcbiAgICAgICAgICAgICAgX2krKztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlXG4gICAgICAgICAgY29uc29sZS5lcnJvcihcbiAgICAgICAgICAgICdBIHNpbmdsZSByb3cgd2FzIHBhc3NlZCB0byBhIDxTdXNwZW5zZUxpc3QgcmV2ZWFsT3JkZXI9XCIlc1wiIC8+LiBUaGlzIGlzIG5vdCB1c2VmdWwgc2luY2UgaXQgbmVlZHMgbXVsdGlwbGUgcm93cy4gRGlkIHlvdSBtZWFuIHRvIHBhc3MgbXVsdGlwbGUgY2hpbGRyZW4gb3IgYW4gYXJyYXk/JyxcbiAgICAgICAgICAgIHJldmVhbE9yZGVyXG4gICAgICAgICAgKTtcbiAgICAgIHJlY29uY2lsZUNoaWxkcmVuKGN1cnJlbnQsIHdvcmtJblByb2dyZXNzLCBuZXh0UHJvcHMsIHJlbmRlckxhbmVzKTtcbiAgICAgIG5leHRQcm9wcyA9IHN1c3BlbnNlU3RhY2tDdXJzb3IuY3VycmVudDtcbiAgICAgIGlmICgwICE9PSAobmV4dFByb3BzICYgRm9yY2VTdXNwZW5zZUZhbGxiYWNrKSlcbiAgICAgICAgKG5leHRQcm9wcyA9XG4gICAgICAgICAgKG5leHRQcm9wcyAmIFN1YnRyZWVTdXNwZW5zZUNvbnRleHRNYXNrKSB8IEZvcmNlU3VzcGVuc2VGYWxsYmFjayksXG4gICAgICAgICAgKHdvcmtJblByb2dyZXNzLmZsYWdzIHw9IDEyOCk7XG4gICAgICBlbHNlIHtcbiAgICAgICAgaWYgKG51bGwgIT09IGN1cnJlbnQgJiYgMCAhPT0gKGN1cnJlbnQuZmxhZ3MgJiAxMjgpKVxuICAgICAgICAgIGE6IGZvciAoY3VycmVudCA9IHdvcmtJblByb2dyZXNzLmNoaWxkOyBudWxsICE9PSBjdXJyZW50OyApIHtcbiAgICAgICAgICAgIGlmICgxMyA9PT0gY3VycmVudC50YWcpXG4gICAgICAgICAgICAgIG51bGwgIT09IGN1cnJlbnQubWVtb2l6ZWRTdGF0ZSAmJlxuICAgICAgICAgICAgICAgIHNjaGVkdWxlU3VzcGVuc2VXb3JrT25GaWJlcihcbiAgICAgICAgICAgICAgICAgIGN1cnJlbnQsXG4gICAgICAgICAgICAgICAgICByZW5kZXJMYW5lcyxcbiAgICAgICAgICAgICAgICAgIHdvcmtJblByb2dyZXNzXG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIGVsc2UgaWYgKDE5ID09PSBjdXJyZW50LnRhZylcbiAgICAgICAgICAgICAgc2NoZWR1bGVTdXNwZW5zZVdvcmtPbkZpYmVyKGN1cnJlbnQsIHJlbmRlckxhbmVzLCB3b3JrSW5Qcm9ncmVzcyk7XG4gICAgICAgICAgICBlbHNlIGlmIChudWxsICE9PSBjdXJyZW50LmNoaWxkKSB7XG4gICAgICAgICAgICAgIGN1cnJlbnQuY2hpbGQucmV0dXJuID0gY3VycmVudDtcbiAgICAgICAgICAgICAgY3VycmVudCA9IGN1cnJlbnQuY2hpbGQ7XG4gICAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGN1cnJlbnQgPT09IHdvcmtJblByb2dyZXNzKSBicmVhayBhO1xuICAgICAgICAgICAgZm9yICg7IG51bGwgPT09IGN1cnJlbnQuc2libGluZzsgKSB7XG4gICAgICAgICAgICAgIGlmIChudWxsID09PSBjdXJyZW50LnJldHVybiB8fCBjdXJyZW50LnJldHVybiA9PT0gd29ya0luUHJvZ3Jlc3MpXG4gICAgICAgICAgICAgICAgYnJlYWsgYTtcbiAgICAgICAgICAgICAgY3VycmVudCA9IGN1cnJlbnQucmV0dXJuO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY3VycmVudC5zaWJsaW5nLnJldHVybiA9IGN1cnJlbnQucmV0dXJuO1xuICAgICAgICAgICAgY3VycmVudCA9IGN1cnJlbnQuc2libGluZztcbiAgICAgICAgICB9XG4gICAgICAgIG5leHRQcm9wcyAmPSBTdWJ0cmVlU3VzcGVuc2VDb250ZXh0TWFzaztcbiAgICAgIH1cbiAgICAgIHB1c2goc3VzcGVuc2VTdGFja0N1cnNvciwgbmV4dFByb3BzLCB3b3JrSW5Qcm9ncmVzcyk7XG4gICAgICBzd2l0Y2ggKHJldmVhbE9yZGVyKSB7XG4gICAgICAgIGNhc2UgXCJmb3J3YXJkc1wiOlxuICAgICAgICAgIHJlbmRlckxhbmVzID0gd29ya0luUHJvZ3Jlc3MuY2hpbGQ7XG4gICAgICAgICAgZm9yIChyZXZlYWxPcmRlciA9IG51bGw7IG51bGwgIT09IHJlbmRlckxhbmVzOyApXG4gICAgICAgICAgICAoY3VycmVudCA9IHJlbmRlckxhbmVzLmFsdGVybmF0ZSksXG4gICAgICAgICAgICAgIG51bGwgIT09IGN1cnJlbnQgJiZcbiAgICAgICAgICAgICAgICBudWxsID09PSBmaW5kRmlyc3RTdXNwZW5kZWQoY3VycmVudCkgJiZcbiAgICAgICAgICAgICAgICAocmV2ZWFsT3JkZXIgPSByZW5kZXJMYW5lcyksXG4gICAgICAgICAgICAgIChyZW5kZXJMYW5lcyA9IHJlbmRlckxhbmVzLnNpYmxpbmcpO1xuICAgICAgICAgIHJlbmRlckxhbmVzID0gcmV2ZWFsT3JkZXI7XG4gICAgICAgICAgbnVsbCA9PT0gcmVuZGVyTGFuZXNcbiAgICAgICAgICAgID8gKChyZXZlYWxPcmRlciA9IHdvcmtJblByb2dyZXNzLmNoaWxkKSxcbiAgICAgICAgICAgICAgKHdvcmtJblByb2dyZXNzLmNoaWxkID0gbnVsbCkpXG4gICAgICAgICAgICA6ICgocmV2ZWFsT3JkZXIgPSByZW5kZXJMYW5lcy5zaWJsaW5nKSxcbiAgICAgICAgICAgICAgKHJlbmRlckxhbmVzLnNpYmxpbmcgPSBudWxsKSk7XG4gICAgICAgICAgaW5pdFN1c3BlbnNlTGlzdFJlbmRlclN0YXRlKFxuICAgICAgICAgICAgd29ya0luUHJvZ3Jlc3MsXG4gICAgICAgICAgICAhMSxcbiAgICAgICAgICAgIHJldmVhbE9yZGVyLFxuICAgICAgICAgICAgcmVuZGVyTGFuZXMsXG4gICAgICAgICAgICB0YWlsTW9kZVxuICAgICAgICAgICk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgXCJiYWNrd2FyZHNcIjpcbiAgICAgICAgICByZW5kZXJMYW5lcyA9IG51bGw7XG4gICAgICAgICAgcmV2ZWFsT3JkZXIgPSB3b3JrSW5Qcm9ncmVzcy5jaGlsZDtcbiAgICAgICAgICBmb3IgKHdvcmtJblByb2dyZXNzLmNoaWxkID0gbnVsbDsgbnVsbCAhPT0gcmV2ZWFsT3JkZXI7ICkge1xuICAgICAgICAgICAgY3VycmVudCA9IHJldmVhbE9yZGVyLmFsdGVybmF0ZTtcbiAgICAgICAgICAgIGlmIChudWxsICE9PSBjdXJyZW50ICYmIG51bGwgPT09IGZpbmRGaXJzdFN1c3BlbmRlZChjdXJyZW50KSkge1xuICAgICAgICAgICAgICB3b3JrSW5Qcm9ncmVzcy5jaGlsZCA9IHJldmVhbE9yZGVyO1xuICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGN1cnJlbnQgPSByZXZlYWxPcmRlci5zaWJsaW5nO1xuICAgICAgICAgICAgcmV2ZWFsT3JkZXIuc2libGluZyA9IHJlbmRlckxhbmVzO1xuICAgICAgICAgICAgcmVuZGVyTGFuZXMgPSByZXZlYWxPcmRlcjtcbiAgICAgICAgICAgIHJldmVhbE9yZGVyID0gY3VycmVudDtcbiAgICAgICAgICB9XG4gICAgICAgICAgaW5pdFN1c3BlbnNlTGlzdFJlbmRlclN0YXRlKFxuICAgICAgICAgICAgd29ya0luUHJvZ3Jlc3MsXG4gICAgICAgICAgICAhMCxcbiAgICAgICAgICAgIHJlbmRlckxhbmVzLFxuICAgICAgICAgICAgbnVsbCxcbiAgICAgICAgICAgIHRhaWxNb2RlXG4gICAgICAgICAgKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSBcInRvZ2V0aGVyXCI6XG4gICAgICAgICAgaW5pdFN1c3BlbnNlTGlzdFJlbmRlclN0YXRlKHdvcmtJblByb2dyZXNzLCAhMSwgbnVsbCwgbnVsbCwgdm9pZCAwKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICB3b3JrSW5Qcm9ncmVzcy5tZW1vaXplZFN0YXRlID0gbnVsbDtcbiAgICAgIH1cbiAgICAgIHJldHVybiB3b3JrSW5Qcm9ncmVzcy5jaGlsZDtcbiAgICB9XG4gICAgZnVuY3Rpb24gYmFpbG91dE9uQWxyZWFkeUZpbmlzaGVkV29yayhcbiAgICAgIGN1cnJlbnQsXG4gICAgICB3b3JrSW5Qcm9ncmVzcyxcbiAgICAgIHJlbmRlckxhbmVzXG4gICAgKSB7XG4gICAgICBudWxsICE9PSBjdXJyZW50ICYmICh3b3JrSW5Qcm9ncmVzcy5kZXBlbmRlbmNpZXMgPSBjdXJyZW50LmRlcGVuZGVuY2llcyk7XG4gICAgICBwcm9maWxlclN0YXJ0VGltZSA9IC0xO1xuICAgICAgd29ya0luUHJvZ3Jlc3NSb290U2tpcHBlZExhbmVzIHw9IHdvcmtJblByb2dyZXNzLmxhbmVzO1xuICAgICAgaWYgKDAgPT09IChyZW5kZXJMYW5lcyAmIHdvcmtJblByb2dyZXNzLmNoaWxkTGFuZXMpKVxuICAgICAgICBpZiAobnVsbCAhPT0gY3VycmVudCkge1xuICAgICAgICAgIGlmIChcbiAgICAgICAgICAgIChwcm9wYWdhdGVQYXJlbnRDb250ZXh0Q2hhbmdlcyhcbiAgICAgICAgICAgICAgY3VycmVudCxcbiAgICAgICAgICAgICAgd29ya0luUHJvZ3Jlc3MsXG4gICAgICAgICAgICAgIHJlbmRlckxhbmVzLFxuICAgICAgICAgICAgICAhMVxuICAgICAgICAgICAgKSxcbiAgICAgICAgICAgIDAgPT09IChyZW5kZXJMYW5lcyAmIHdvcmtJblByb2dyZXNzLmNoaWxkTGFuZXMpKVxuICAgICAgICAgIClcbiAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICB9IGVsc2UgcmV0dXJuIG51bGw7XG4gICAgICBpZiAobnVsbCAhPT0gY3VycmVudCAmJiB3b3JrSW5Qcm9ncmVzcy5jaGlsZCAhPT0gY3VycmVudC5jaGlsZClcbiAgICAgICAgdGhyb3cgRXJyb3IoXCJSZXN1bWluZyB3b3JrIG5vdCB5ZXQgaW1wbGVtZW50ZWQuXCIpO1xuICAgICAgaWYgKG51bGwgIT09IHdvcmtJblByb2dyZXNzLmNoaWxkKSB7XG4gICAgICAgIGN1cnJlbnQgPSB3b3JrSW5Qcm9ncmVzcy5jaGlsZDtcbiAgICAgICAgcmVuZGVyTGFuZXMgPSBjcmVhdGVXb3JrSW5Qcm9ncmVzcyhjdXJyZW50LCBjdXJyZW50LnBlbmRpbmdQcm9wcyk7XG4gICAgICAgIHdvcmtJblByb2dyZXNzLmNoaWxkID0gcmVuZGVyTGFuZXM7XG4gICAgICAgIGZvciAocmVuZGVyTGFuZXMucmV0dXJuID0gd29ya0luUHJvZ3Jlc3M7IG51bGwgIT09IGN1cnJlbnQuc2libGluZzsgKVxuICAgICAgICAgIChjdXJyZW50ID0gY3VycmVudC5zaWJsaW5nKSxcbiAgICAgICAgICAgIChyZW5kZXJMYW5lcyA9IHJlbmRlckxhbmVzLnNpYmxpbmcgPVxuICAgICAgICAgICAgICBjcmVhdGVXb3JrSW5Qcm9ncmVzcyhjdXJyZW50LCBjdXJyZW50LnBlbmRpbmdQcm9wcykpLFxuICAgICAgICAgICAgKHJlbmRlckxhbmVzLnJldHVybiA9IHdvcmtJblByb2dyZXNzKTtcbiAgICAgICAgcmVuZGVyTGFuZXMuc2libGluZyA9IG51bGw7XG4gICAgICB9XG4gICAgICByZXR1cm4gd29ya0luUHJvZ3Jlc3MuY2hpbGQ7XG4gICAgfVxuICAgIGZ1bmN0aW9uIGNoZWNrU2NoZWR1bGVkVXBkYXRlT3JDb250ZXh0KGN1cnJlbnQsIHJlbmRlckxhbmVzKSB7XG4gICAgICBpZiAoMCAhPT0gKGN1cnJlbnQubGFuZXMgJiByZW5kZXJMYW5lcykpIHJldHVybiAhMDtcbiAgICAgIGN1cnJlbnQgPSBjdXJyZW50LmRlcGVuZGVuY2llcztcbiAgICAgIHJldHVybiBudWxsICE9PSBjdXJyZW50ICYmIGNoZWNrSWZDb250ZXh0Q2hhbmdlZChjdXJyZW50KSA/ICEwIDogITE7XG4gICAgfVxuICAgIGZ1bmN0aW9uIGF0dGVtcHRFYXJseUJhaWxvdXRJZk5vU2NoZWR1bGVkVXBkYXRlKFxuICAgICAgY3VycmVudCxcbiAgICAgIHdvcmtJblByb2dyZXNzLFxuICAgICAgcmVuZGVyTGFuZXNcbiAgICApIHtcbiAgICAgIHN3aXRjaCAod29ya0luUHJvZ3Jlc3MudGFnKSB7XG4gICAgICAgIGNhc2UgMzpcbiAgICAgICAgICBwdXNoSG9zdENvbnRhaW5lcihcbiAgICAgICAgICAgIHdvcmtJblByb2dyZXNzLFxuICAgICAgICAgICAgd29ya0luUHJvZ3Jlc3Muc3RhdGVOb2RlLmNvbnRhaW5lckluZm9cbiAgICAgICAgICApO1xuICAgICAgICAgIHB1c2hQcm92aWRlcihcbiAgICAgICAgICAgIHdvcmtJblByb2dyZXNzLFxuICAgICAgICAgICAgQ2FjaGVDb250ZXh0LFxuICAgICAgICAgICAgY3VycmVudC5tZW1vaXplZFN0YXRlLmNhY2hlXG4gICAgICAgICAgKTtcbiAgICAgICAgICByZXNldEh5ZHJhdGlvblN0YXRlKCk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgMjc6XG4gICAgICAgIGNhc2UgNTpcbiAgICAgICAgICBwdXNoSG9zdENvbnRleHQod29ya0luUHJvZ3Jlc3MpO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIDQ6XG4gICAgICAgICAgcHVzaEhvc3RDb250YWluZXIoXG4gICAgICAgICAgICB3b3JrSW5Qcm9ncmVzcyxcbiAgICAgICAgICAgIHdvcmtJblByb2dyZXNzLnN0YXRlTm9kZS5jb250YWluZXJJbmZvXG4gICAgICAgICAgKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAxMDpcbiAgICAgICAgICBwdXNoUHJvdmlkZXIoXG4gICAgICAgICAgICB3b3JrSW5Qcm9ncmVzcyxcbiAgICAgICAgICAgIHdvcmtJblByb2dyZXNzLnR5cGUsXG4gICAgICAgICAgICB3b3JrSW5Qcm9ncmVzcy5tZW1vaXplZFByb3BzLnZhbHVlXG4gICAgICAgICAgKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAxMjpcbiAgICAgICAgICAwICE9PSAocmVuZGVyTGFuZXMgJiB3b3JrSW5Qcm9ncmVzcy5jaGlsZExhbmVzKSAmJlxuICAgICAgICAgICAgKHdvcmtJblByb2dyZXNzLmZsYWdzIHw9IDQpO1xuICAgICAgICAgIHdvcmtJblByb2dyZXNzLmZsYWdzIHw9IDIwNDg7XG4gICAgICAgICAgdmFyIHN0YXRlTm9kZSA9IHdvcmtJblByb2dyZXNzLnN0YXRlTm9kZTtcbiAgICAgICAgICBzdGF0ZU5vZGUuZWZmZWN0RHVyYXRpb24gPSAtMDtcbiAgICAgICAgICBzdGF0ZU5vZGUucGFzc2l2ZUVmZmVjdER1cmF0aW9uID0gLTA7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgMTM6XG4gICAgICAgICAgc3RhdGVOb2RlID0gd29ya0luUHJvZ3Jlc3MubWVtb2l6ZWRTdGF0ZTtcbiAgICAgICAgICBpZiAobnVsbCAhPT0gc3RhdGVOb2RlKSB7XG4gICAgICAgICAgICBpZiAobnVsbCAhPT0gc3RhdGVOb2RlLmRlaHlkcmF0ZWQpXG4gICAgICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAgICAgcHVzaFByaW1hcnlUcmVlU3VzcGVuc2VIYW5kbGVyKHdvcmtJblByb2dyZXNzKSxcbiAgICAgICAgICAgICAgICAod29ya0luUHJvZ3Jlc3MuZmxhZ3MgfD0gMTI4KSxcbiAgICAgICAgICAgICAgICBudWxsXG4gICAgICAgICAgICAgICk7XG4gICAgICAgICAgICBpZiAoMCAhPT0gKHJlbmRlckxhbmVzICYgd29ya0luUHJvZ3Jlc3MuY2hpbGQuY2hpbGRMYW5lcykpXG4gICAgICAgICAgICAgIHJldHVybiB1cGRhdGVTdXNwZW5zZUNvbXBvbmVudChcbiAgICAgICAgICAgICAgICBjdXJyZW50LFxuICAgICAgICAgICAgICAgIHdvcmtJblByb2dyZXNzLFxuICAgICAgICAgICAgICAgIHJlbmRlckxhbmVzXG4gICAgICAgICAgICAgICk7XG4gICAgICAgICAgICBwdXNoUHJpbWFyeVRyZWVTdXNwZW5zZUhhbmRsZXIod29ya0luUHJvZ3Jlc3MpO1xuICAgICAgICAgICAgY3VycmVudCA9IGJhaWxvdXRPbkFscmVhZHlGaW5pc2hlZFdvcmsoXG4gICAgICAgICAgICAgIGN1cnJlbnQsXG4gICAgICAgICAgICAgIHdvcmtJblByb2dyZXNzLFxuICAgICAgICAgICAgICByZW5kZXJMYW5lc1xuICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIHJldHVybiBudWxsICE9PSBjdXJyZW50ID8gY3VycmVudC5zaWJsaW5nIDogbnVsbDtcbiAgICAgICAgICB9XG4gICAgICAgICAgcHVzaFByaW1hcnlUcmVlU3VzcGVuc2VIYW5kbGVyKHdvcmtJblByb2dyZXNzKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAxOTpcbiAgICAgICAgICB2YXIgZGlkU3VzcGVuZEJlZm9yZSA9IDAgIT09IChjdXJyZW50LmZsYWdzICYgMTI4KTtcbiAgICAgICAgICBzdGF0ZU5vZGUgPSAwICE9PSAocmVuZGVyTGFuZXMgJiB3b3JrSW5Qcm9ncmVzcy5jaGlsZExhbmVzKTtcbiAgICAgICAgICBzdGF0ZU5vZGUgfHxcbiAgICAgICAgICAgIChwcm9wYWdhdGVQYXJlbnRDb250ZXh0Q2hhbmdlcyhcbiAgICAgICAgICAgICAgY3VycmVudCxcbiAgICAgICAgICAgICAgd29ya0luUHJvZ3Jlc3MsXG4gICAgICAgICAgICAgIHJlbmRlckxhbmVzLFxuICAgICAgICAgICAgICAhMVxuICAgICAgICAgICAgKSxcbiAgICAgICAgICAgIChzdGF0ZU5vZGUgPSAwICE9PSAocmVuZGVyTGFuZXMgJiB3b3JrSW5Qcm9ncmVzcy5jaGlsZExhbmVzKSkpO1xuICAgICAgICAgIGlmIChkaWRTdXNwZW5kQmVmb3JlKSB7XG4gICAgICAgICAgICBpZiAoc3RhdGVOb2RlKVxuICAgICAgICAgICAgICByZXR1cm4gdXBkYXRlU3VzcGVuc2VMaXN0Q29tcG9uZW50KFxuICAgICAgICAgICAgICAgIGN1cnJlbnQsXG4gICAgICAgICAgICAgICAgd29ya0luUHJvZ3Jlc3MsXG4gICAgICAgICAgICAgICAgcmVuZGVyTGFuZXNcbiAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIHdvcmtJblByb2dyZXNzLmZsYWdzIHw9IDEyODtcbiAgICAgICAgICB9XG4gICAgICAgICAgZGlkU3VzcGVuZEJlZm9yZSA9IHdvcmtJblByb2dyZXNzLm1lbW9pemVkU3RhdGU7XG4gICAgICAgICAgbnVsbCAhPT0gZGlkU3VzcGVuZEJlZm9yZSAmJlxuICAgICAgICAgICAgKChkaWRTdXNwZW5kQmVmb3JlLnJlbmRlcmluZyA9IG51bGwpLFxuICAgICAgICAgICAgKGRpZFN1c3BlbmRCZWZvcmUudGFpbCA9IG51bGwpLFxuICAgICAgICAgICAgKGRpZFN1c3BlbmRCZWZvcmUubGFzdEVmZmVjdCA9IG51bGwpKTtcbiAgICAgICAgICBwdXNoKFxuICAgICAgICAgICAgc3VzcGVuc2VTdGFja0N1cnNvcixcbiAgICAgICAgICAgIHN1c3BlbnNlU3RhY2tDdXJzb3IuY3VycmVudCxcbiAgICAgICAgICAgIHdvcmtJblByb2dyZXNzXG4gICAgICAgICAgKTtcbiAgICAgICAgICBpZiAoc3RhdGVOb2RlKSBicmVhaztcbiAgICAgICAgICBlbHNlIHJldHVybiBudWxsO1xuICAgICAgICBjYXNlIDIyOlxuICAgICAgICBjYXNlIDIzOlxuICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAod29ya0luUHJvZ3Jlc3MubGFuZXMgPSAwKSxcbiAgICAgICAgICAgIHVwZGF0ZU9mZnNjcmVlbkNvbXBvbmVudChjdXJyZW50LCB3b3JrSW5Qcm9ncmVzcywgcmVuZGVyTGFuZXMpXG4gICAgICAgICAgKTtcbiAgICAgICAgY2FzZSAyNDpcbiAgICAgICAgICBwdXNoUHJvdmlkZXIoXG4gICAgICAgICAgICB3b3JrSW5Qcm9ncmVzcyxcbiAgICAgICAgICAgIENhY2hlQ29udGV4dCxcbiAgICAgICAgICAgIGN1cnJlbnQubWVtb2l6ZWRTdGF0ZS5jYWNoZVxuICAgICAgICAgICk7XG4gICAgICB9XG4gICAgICByZXR1cm4gYmFpbG91dE9uQWxyZWFkeUZpbmlzaGVkV29yayhjdXJyZW50LCB3b3JrSW5Qcm9ncmVzcywgcmVuZGVyTGFuZXMpO1xuICAgIH1cbiAgICBmdW5jdGlvbiBiZWdpbldvcmsoY3VycmVudCwgd29ya0luUHJvZ3Jlc3MsIHJlbmRlckxhbmVzKSB7XG4gICAgICBpZiAod29ya0luUHJvZ3Jlc3MuX2RlYnVnTmVlZHNSZW1vdW50ICYmIG51bGwgIT09IGN1cnJlbnQpIHtcbiAgICAgICAgcmVuZGVyTGFuZXMgPSBjcmVhdGVGaWJlckZyb21UeXBlQW5kUHJvcHMoXG4gICAgICAgICAgd29ya0luUHJvZ3Jlc3MudHlwZSxcbiAgICAgICAgICB3b3JrSW5Qcm9ncmVzcy5rZXksXG4gICAgICAgICAgd29ya0luUHJvZ3Jlc3MucGVuZGluZ1Byb3BzLFxuICAgICAgICAgIHdvcmtJblByb2dyZXNzLl9kZWJ1Z093bmVyIHx8IG51bGwsXG4gICAgICAgICAgd29ya0luUHJvZ3Jlc3MubW9kZSxcbiAgICAgICAgICB3b3JrSW5Qcm9ncmVzcy5sYW5lc1xuICAgICAgICApO1xuICAgICAgICByZW5kZXJMYW5lcy5fZGVidWdTdGFjayA9IHdvcmtJblByb2dyZXNzLl9kZWJ1Z1N0YWNrO1xuICAgICAgICByZW5kZXJMYW5lcy5fZGVidWdUYXNrID0gd29ya0luUHJvZ3Jlc3MuX2RlYnVnVGFzaztcbiAgICAgICAgdmFyIHJldHVybkZpYmVyID0gd29ya0luUHJvZ3Jlc3MucmV0dXJuO1xuICAgICAgICBpZiAobnVsbCA9PT0gcmV0dXJuRmliZXIpIHRocm93IEVycm9yKFwiQ2Fubm90IHN3YXAgdGhlIHJvb3QgZmliZXIuXCIpO1xuICAgICAgICBjdXJyZW50LmFsdGVybmF0ZSA9IG51bGw7XG4gICAgICAgIHdvcmtJblByb2dyZXNzLmFsdGVybmF0ZSA9IG51bGw7XG4gICAgICAgIHJlbmRlckxhbmVzLmluZGV4ID0gd29ya0luUHJvZ3Jlc3MuaW5kZXg7XG4gICAgICAgIHJlbmRlckxhbmVzLnNpYmxpbmcgPSB3b3JrSW5Qcm9ncmVzcy5zaWJsaW5nO1xuICAgICAgICByZW5kZXJMYW5lcy5yZXR1cm4gPSB3b3JrSW5Qcm9ncmVzcy5yZXR1cm47XG4gICAgICAgIHJlbmRlckxhbmVzLnJlZiA9IHdvcmtJblByb2dyZXNzLnJlZjtcbiAgICAgICAgcmVuZGVyTGFuZXMuX2RlYnVnSW5mbyA9IHdvcmtJblByb2dyZXNzLl9kZWJ1Z0luZm87XG4gICAgICAgIGlmICh3b3JrSW5Qcm9ncmVzcyA9PT0gcmV0dXJuRmliZXIuY2hpbGQpXG4gICAgICAgICAgcmV0dXJuRmliZXIuY2hpbGQgPSByZW5kZXJMYW5lcztcbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgdmFyIHByZXZTaWJsaW5nID0gcmV0dXJuRmliZXIuY2hpbGQ7XG4gICAgICAgICAgaWYgKG51bGwgPT09IHByZXZTaWJsaW5nKVxuICAgICAgICAgICAgdGhyb3cgRXJyb3IoXCJFeHBlY3RlZCBwYXJlbnQgdG8gaGF2ZSBhIGNoaWxkLlwiKTtcbiAgICAgICAgICBmb3IgKDsgcHJldlNpYmxpbmcuc2libGluZyAhPT0gd29ya0luUHJvZ3Jlc3M7IClcbiAgICAgICAgICAgIGlmICgoKHByZXZTaWJsaW5nID0gcHJldlNpYmxpbmcuc2libGluZyksIG51bGwgPT09IHByZXZTaWJsaW5nKSlcbiAgICAgICAgICAgICAgdGhyb3cgRXJyb3IoXCJFeHBlY3RlZCB0byBmaW5kIHRoZSBwcmV2aW91cyBzaWJsaW5nLlwiKTtcbiAgICAgICAgICBwcmV2U2libGluZy5zaWJsaW5nID0gcmVuZGVyTGFuZXM7XG4gICAgICAgIH1cbiAgICAgICAgd29ya0luUHJvZ3Jlc3MgPSByZXR1cm5GaWJlci5kZWxldGlvbnM7XG4gICAgICAgIG51bGwgPT09IHdvcmtJblByb2dyZXNzXG4gICAgICAgICAgPyAoKHJldHVybkZpYmVyLmRlbGV0aW9ucyA9IFtjdXJyZW50XSksIChyZXR1cm5GaWJlci5mbGFncyB8PSAxNikpXG4gICAgICAgICAgOiB3b3JrSW5Qcm9ncmVzcy5wdXNoKGN1cnJlbnQpO1xuICAgICAgICByZW5kZXJMYW5lcy5mbGFncyB8PSAyO1xuICAgICAgICByZXR1cm4gcmVuZGVyTGFuZXM7XG4gICAgICB9XG4gICAgICBpZiAobnVsbCAhPT0gY3VycmVudClcbiAgICAgICAgaWYgKFxuICAgICAgICAgIGN1cnJlbnQubWVtb2l6ZWRQcm9wcyAhPT0gd29ya0luUHJvZ3Jlc3MucGVuZGluZ1Byb3BzIHx8XG4gICAgICAgICAgd29ya0luUHJvZ3Jlc3MudHlwZSAhPT0gY3VycmVudC50eXBlXG4gICAgICAgIClcbiAgICAgICAgICBkaWRSZWNlaXZlVXBkYXRlID0gITA7XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgIGlmIChcbiAgICAgICAgICAgICFjaGVja1NjaGVkdWxlZFVwZGF0ZU9yQ29udGV4dChjdXJyZW50LCByZW5kZXJMYW5lcykgJiZcbiAgICAgICAgICAgIDAgPT09ICh3b3JrSW5Qcm9ncmVzcy5mbGFncyAmIDEyOClcbiAgICAgICAgICApXG4gICAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgICAoZGlkUmVjZWl2ZVVwZGF0ZSA9ICExKSxcbiAgICAgICAgICAgICAgYXR0ZW1wdEVhcmx5QmFpbG91dElmTm9TY2hlZHVsZWRVcGRhdGUoXG4gICAgICAgICAgICAgICAgY3VycmVudCxcbiAgICAgICAgICAgICAgICB3b3JrSW5Qcm9ncmVzcyxcbiAgICAgICAgICAgICAgICByZW5kZXJMYW5lc1xuICAgICAgICAgICAgICApXG4gICAgICAgICAgICApO1xuICAgICAgICAgIGRpZFJlY2VpdmVVcGRhdGUgPSAwICE9PSAoY3VycmVudC5mbGFncyAmIDEzMTA3MikgPyAhMCA6ICExO1xuICAgICAgICB9XG4gICAgICBlbHNlIHtcbiAgICAgICAgZGlkUmVjZWl2ZVVwZGF0ZSA9ICExO1xuICAgICAgICBpZiAoKHJldHVybkZpYmVyID0gaXNIeWRyYXRpbmcpKVxuICAgICAgICAgIHdhcm5JZk5vdEh5ZHJhdGluZygpLFxuICAgICAgICAgICAgKHJldHVybkZpYmVyID0gMCAhPT0gKHdvcmtJblByb2dyZXNzLmZsYWdzICYgMTA0ODU3NikpO1xuICAgICAgICByZXR1cm5GaWJlciAmJlxuICAgICAgICAgICgocmV0dXJuRmliZXIgPSB3b3JrSW5Qcm9ncmVzcy5pbmRleCksXG4gICAgICAgICAgd2FybklmTm90SHlkcmF0aW5nKCksXG4gICAgICAgICAgcHVzaFRyZWVJZCh3b3JrSW5Qcm9ncmVzcywgdHJlZUZvcmtDb3VudCwgcmV0dXJuRmliZXIpKTtcbiAgICAgIH1cbiAgICAgIHdvcmtJblByb2dyZXNzLmxhbmVzID0gMDtcbiAgICAgIHN3aXRjaCAod29ya0luUHJvZ3Jlc3MudGFnKSB7XG4gICAgICAgIGNhc2UgMTY6XG4gICAgICAgICAgYTogaWYgKFxuICAgICAgICAgICAgKChyZXR1cm5GaWJlciA9IHdvcmtJblByb2dyZXNzLnBlbmRpbmdQcm9wcyksXG4gICAgICAgICAgICAoY3VycmVudCA9IGNhbGxMYXp5SW5pdEluREVWKHdvcmtJblByb2dyZXNzLmVsZW1lbnRUeXBlKSksXG4gICAgICAgICAgICAod29ya0luUHJvZ3Jlc3MudHlwZSA9IGN1cnJlbnQpLFxuICAgICAgICAgICAgXCJmdW5jdGlvblwiID09PSB0eXBlb2YgY3VycmVudClcbiAgICAgICAgICApXG4gICAgICAgICAgICBzaG91bGRDb25zdHJ1Y3QoY3VycmVudClcbiAgICAgICAgICAgICAgPyAoKHJldHVybkZpYmVyID0gcmVzb2x2ZUNsYXNzQ29tcG9uZW50UHJvcHMoXG4gICAgICAgICAgICAgICAgICBjdXJyZW50LFxuICAgICAgICAgICAgICAgICAgcmV0dXJuRmliZXJcbiAgICAgICAgICAgICAgICApKSxcbiAgICAgICAgICAgICAgICAod29ya0luUHJvZ3Jlc3MudGFnID0gMSksXG4gICAgICAgICAgICAgICAgKHdvcmtJblByb2dyZXNzLnR5cGUgPSBjdXJyZW50ID1cbiAgICAgICAgICAgICAgICAgIHJlc29sdmVGdW5jdGlvbkZvckhvdFJlbG9hZGluZyhjdXJyZW50KSksXG4gICAgICAgICAgICAgICAgKHdvcmtJblByb2dyZXNzID0gdXBkYXRlQ2xhc3NDb21wb25lbnQoXG4gICAgICAgICAgICAgICAgICBudWxsLFxuICAgICAgICAgICAgICAgICAgd29ya0luUHJvZ3Jlc3MsXG4gICAgICAgICAgICAgICAgICBjdXJyZW50LFxuICAgICAgICAgICAgICAgICAgcmV0dXJuRmliZXIsXG4gICAgICAgICAgICAgICAgICByZW5kZXJMYW5lc1xuICAgICAgICAgICAgICAgICkpKVxuICAgICAgICAgICAgICA6ICgod29ya0luUHJvZ3Jlc3MudGFnID0gMCksXG4gICAgICAgICAgICAgICAgdmFsaWRhdGVGdW5jdGlvbkNvbXBvbmVudEluRGV2KHdvcmtJblByb2dyZXNzLCBjdXJyZW50KSxcbiAgICAgICAgICAgICAgICAod29ya0luUHJvZ3Jlc3MudHlwZSA9IGN1cnJlbnQgPVxuICAgICAgICAgICAgICAgICAgcmVzb2x2ZUZ1bmN0aW9uRm9ySG90UmVsb2FkaW5nKGN1cnJlbnQpKSxcbiAgICAgICAgICAgICAgICAod29ya0luUHJvZ3Jlc3MgPSB1cGRhdGVGdW5jdGlvbkNvbXBvbmVudChcbiAgICAgICAgICAgICAgICAgIG51bGwsXG4gICAgICAgICAgICAgICAgICB3b3JrSW5Qcm9ncmVzcyxcbiAgICAgICAgICAgICAgICAgIGN1cnJlbnQsXG4gICAgICAgICAgICAgICAgICByZXR1cm5GaWJlcixcbiAgICAgICAgICAgICAgICAgIHJlbmRlckxhbmVzXG4gICAgICAgICAgICAgICAgKSkpO1xuICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgaWYgKHZvaWQgMCAhPT0gY3VycmVudCAmJiBudWxsICE9PSBjdXJyZW50KVxuICAgICAgICAgICAgICBpZiAoXG4gICAgICAgICAgICAgICAgKChwcmV2U2libGluZyA9IGN1cnJlbnQuJCR0eXBlb2YpLFxuICAgICAgICAgICAgICAgIHByZXZTaWJsaW5nID09PSBSRUFDVF9GT1JXQVJEX1JFRl9UWVBFKVxuICAgICAgICAgICAgICApIHtcbiAgICAgICAgICAgICAgICB3b3JrSW5Qcm9ncmVzcy50YWcgPSAxMTtcbiAgICAgICAgICAgICAgICB3b3JrSW5Qcm9ncmVzcy50eXBlID0gY3VycmVudCA9XG4gICAgICAgICAgICAgICAgICByZXNvbHZlRm9yd2FyZFJlZkZvckhvdFJlbG9hZGluZyhjdXJyZW50KTtcbiAgICAgICAgICAgICAgICB3b3JrSW5Qcm9ncmVzcyA9IHVwZGF0ZUZvcndhcmRSZWYoXG4gICAgICAgICAgICAgICAgICBudWxsLFxuICAgICAgICAgICAgICAgICAgd29ya0luUHJvZ3Jlc3MsXG4gICAgICAgICAgICAgICAgICBjdXJyZW50LFxuICAgICAgICAgICAgICAgICAgcmV0dXJuRmliZXIsXG4gICAgICAgICAgICAgICAgICByZW5kZXJMYW5lc1xuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgYnJlYWsgYTtcbiAgICAgICAgICAgICAgfSBlbHNlIGlmIChwcmV2U2libGluZyA9PT0gUkVBQ1RfTUVNT19UWVBFKSB7XG4gICAgICAgICAgICAgICAgd29ya0luUHJvZ3Jlc3MudGFnID0gMTQ7XG4gICAgICAgICAgICAgICAgd29ya0luUHJvZ3Jlc3MgPSB1cGRhdGVNZW1vQ29tcG9uZW50KFxuICAgICAgICAgICAgICAgICAgbnVsbCxcbiAgICAgICAgICAgICAgICAgIHdvcmtJblByb2dyZXNzLFxuICAgICAgICAgICAgICAgICAgY3VycmVudCxcbiAgICAgICAgICAgICAgICAgIHJldHVybkZpYmVyLFxuICAgICAgICAgICAgICAgICAgcmVuZGVyTGFuZXNcbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgIGJyZWFrIGE7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHdvcmtJblByb2dyZXNzID0gXCJcIjtcbiAgICAgICAgICAgIG51bGwgIT09IGN1cnJlbnQgJiZcbiAgICAgICAgICAgICAgXCJvYmplY3RcIiA9PT0gdHlwZW9mIGN1cnJlbnQgJiZcbiAgICAgICAgICAgICAgY3VycmVudC4kJHR5cGVvZiA9PT0gUkVBQ1RfTEFaWV9UWVBFICYmXG4gICAgICAgICAgICAgICh3b3JrSW5Qcm9ncmVzcyA9XG4gICAgICAgICAgICAgICAgXCIgRGlkIHlvdSB3cmFwIGEgY29tcG9uZW50IGluIFJlYWN0LmxhenkoKSBtb3JlIHRoYW4gb25jZT9cIik7XG4gICAgICAgICAgICBjdXJyZW50ID0gZ2V0Q29tcG9uZW50TmFtZUZyb21UeXBlKGN1cnJlbnQpIHx8IGN1cnJlbnQ7XG4gICAgICAgICAgICB0aHJvdyBFcnJvcihcbiAgICAgICAgICAgICAgXCJFbGVtZW50IHR5cGUgaXMgaW52YWxpZC4gUmVjZWl2ZWQgYSBwcm9taXNlIHRoYXQgcmVzb2x2ZXMgdG86IFwiICtcbiAgICAgICAgICAgICAgICBjdXJyZW50ICtcbiAgICAgICAgICAgICAgICBcIi4gTGF6eSBlbGVtZW50IHR5cGUgbXVzdCByZXNvbHZlIHRvIGEgY2xhc3Mgb3IgZnVuY3Rpb24uXCIgK1xuICAgICAgICAgICAgICAgIHdvcmtJblByb2dyZXNzXG4gICAgICAgICAgICApO1xuICAgICAgICAgIH1cbiAgICAgICAgICByZXR1cm4gd29ya0luUHJvZ3Jlc3M7XG4gICAgICAgIGNhc2UgMDpcbiAgICAgICAgICByZXR1cm4gdXBkYXRlRnVuY3Rpb25Db21wb25lbnQoXG4gICAgICAgICAgICBjdXJyZW50LFxuICAgICAgICAgICAgd29ya0luUHJvZ3Jlc3MsXG4gICAgICAgICAgICB3b3JrSW5Qcm9ncmVzcy50eXBlLFxuICAgICAgICAgICAgd29ya0luUHJvZ3Jlc3MucGVuZGluZ1Byb3BzLFxuICAgICAgICAgICAgcmVuZGVyTGFuZXNcbiAgICAgICAgICApO1xuICAgICAgICBjYXNlIDE6XG4gICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgIChyZXR1cm5GaWJlciA9IHdvcmtJblByb2dyZXNzLnR5cGUpLFxuICAgICAgICAgICAgKHByZXZTaWJsaW5nID0gcmVzb2x2ZUNsYXNzQ29tcG9uZW50UHJvcHMoXG4gICAgICAgICAgICAgIHJldHVybkZpYmVyLFxuICAgICAgICAgICAgICB3b3JrSW5Qcm9ncmVzcy5wZW5kaW5nUHJvcHNcbiAgICAgICAgICAgICkpLFxuICAgICAgICAgICAgdXBkYXRlQ2xhc3NDb21wb25lbnQoXG4gICAgICAgICAgICAgIGN1cnJlbnQsXG4gICAgICAgICAgICAgIHdvcmtJblByb2dyZXNzLFxuICAgICAgICAgICAgICByZXR1cm5GaWJlcixcbiAgICAgICAgICAgICAgcHJldlNpYmxpbmcsXG4gICAgICAgICAgICAgIHJlbmRlckxhbmVzXG4gICAgICAgICAgICApXG4gICAgICAgICAgKTtcbiAgICAgICAgY2FzZSAzOlxuICAgICAgICAgIGE6IHtcbiAgICAgICAgICAgIHB1c2hIb3N0Q29udGFpbmVyKFxuICAgICAgICAgICAgICB3b3JrSW5Qcm9ncmVzcyxcbiAgICAgICAgICAgICAgd29ya0luUHJvZ3Jlc3Muc3RhdGVOb2RlLmNvbnRhaW5lckluZm9cbiAgICAgICAgICAgICk7XG4gICAgICAgICAgICBpZiAobnVsbCA9PT0gY3VycmVudClcbiAgICAgICAgICAgICAgdGhyb3cgRXJyb3IoXG4gICAgICAgICAgICAgICAgXCJTaG91bGQgaGF2ZSBhIGN1cnJlbnQgZmliZXIuIFRoaXMgaXMgYSBidWcgaW4gUmVhY3QuXCJcbiAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIHJldHVybkZpYmVyID0gd29ya0luUHJvZ3Jlc3MucGVuZGluZ1Byb3BzO1xuICAgICAgICAgICAgdmFyIHByZXZTdGF0ZSA9IHdvcmtJblByb2dyZXNzLm1lbW9pemVkU3RhdGU7XG4gICAgICAgICAgICBwcmV2U2libGluZyA9IHByZXZTdGF0ZS5lbGVtZW50O1xuICAgICAgICAgICAgY2xvbmVVcGRhdGVRdWV1ZShjdXJyZW50LCB3b3JrSW5Qcm9ncmVzcyk7XG4gICAgICAgICAgICBwcm9jZXNzVXBkYXRlUXVldWUod29ya0luUHJvZ3Jlc3MsIHJldHVybkZpYmVyLCBudWxsLCByZW5kZXJMYW5lcyk7XG4gICAgICAgICAgICB2YXIgbmV4dFN0YXRlID0gd29ya0luUHJvZ3Jlc3MubWVtb2l6ZWRTdGF0ZTtcbiAgICAgICAgICAgIHJldHVybkZpYmVyID0gbmV4dFN0YXRlLmNhY2hlO1xuICAgICAgICAgICAgcHVzaFByb3ZpZGVyKHdvcmtJblByb2dyZXNzLCBDYWNoZUNvbnRleHQsIHJldHVybkZpYmVyKTtcbiAgICAgICAgICAgIHJldHVybkZpYmVyICE9PSBwcmV2U3RhdGUuY2FjaGUgJiZcbiAgICAgICAgICAgICAgcHJvcGFnYXRlQ29udGV4dENoYW5nZXMoXG4gICAgICAgICAgICAgICAgd29ya0luUHJvZ3Jlc3MsXG4gICAgICAgICAgICAgICAgW0NhY2hlQ29udGV4dF0sXG4gICAgICAgICAgICAgICAgcmVuZGVyTGFuZXMsXG4gICAgICAgICAgICAgICAgITBcbiAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIHN1c3BlbmRJZlVwZGF0ZVJlYWRGcm9tRW50YW5nbGVkQXN5bmNBY3Rpb24oKTtcbiAgICAgICAgICAgIHJldHVybkZpYmVyID0gbmV4dFN0YXRlLmVsZW1lbnQ7XG4gICAgICAgICAgICBpZiAocHJldlN0YXRlLmlzRGVoeWRyYXRlZClcbiAgICAgICAgICAgICAgaWYgKFxuICAgICAgICAgICAgICAgICgocHJldlN0YXRlID0ge1xuICAgICAgICAgICAgICAgICAgZWxlbWVudDogcmV0dXJuRmliZXIsXG4gICAgICAgICAgICAgICAgICBpc0RlaHlkcmF0ZWQ6ICExLFxuICAgICAgICAgICAgICAgICAgY2FjaGU6IG5leHRTdGF0ZS5jYWNoZVxuICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgICh3b3JrSW5Qcm9ncmVzcy51cGRhdGVRdWV1ZS5iYXNlU3RhdGUgPSBwcmV2U3RhdGUpLFxuICAgICAgICAgICAgICAgICh3b3JrSW5Qcm9ncmVzcy5tZW1vaXplZFN0YXRlID0gcHJldlN0YXRlKSxcbiAgICAgICAgICAgICAgICB3b3JrSW5Qcm9ncmVzcy5mbGFncyAmIDI1NilcbiAgICAgICAgICAgICAgKSB7XG4gICAgICAgICAgICAgICAgd29ya0luUHJvZ3Jlc3MgPSBtb3VudEhvc3RSb290V2l0aG91dEh5ZHJhdGluZyhcbiAgICAgICAgICAgICAgICAgIGN1cnJlbnQsXG4gICAgICAgICAgICAgICAgICB3b3JrSW5Qcm9ncmVzcyxcbiAgICAgICAgICAgICAgICAgIHJldHVybkZpYmVyLFxuICAgICAgICAgICAgICAgICAgcmVuZGVyTGFuZXNcbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgIGJyZWFrIGE7XG4gICAgICAgICAgICAgIH0gZWxzZSBpZiAocmV0dXJuRmliZXIgIT09IHByZXZTaWJsaW5nKSB7XG4gICAgICAgICAgICAgICAgcHJldlNpYmxpbmcgPSBjcmVhdGVDYXB0dXJlZFZhbHVlQXRGaWJlcihcbiAgICAgICAgICAgICAgICAgIEVycm9yKFxuICAgICAgICAgICAgICAgICAgICBcIlRoaXMgcm9vdCByZWNlaXZlZCBhbiBlYXJseSB1cGRhdGUsIGJlZm9yZSBhbnl0aGluZyB3YXMgYWJsZSBoeWRyYXRlLiBTd2l0Y2hlZCB0aGUgZW50aXJlIHJvb3QgdG8gY2xpZW50IHJlbmRlcmluZy5cIlxuICAgICAgICAgICAgICAgICAgKSxcbiAgICAgICAgICAgICAgICAgIHdvcmtJblByb2dyZXNzXG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICBxdWV1ZUh5ZHJhdGlvbkVycm9yKHByZXZTaWJsaW5nKTtcbiAgICAgICAgICAgICAgICB3b3JrSW5Qcm9ncmVzcyA9IG1vdW50SG9zdFJvb3RXaXRob3V0SHlkcmF0aW5nKFxuICAgICAgICAgICAgICAgICAgY3VycmVudCxcbiAgICAgICAgICAgICAgICAgIHdvcmtJblByb2dyZXNzLFxuICAgICAgICAgICAgICAgICAgcmV0dXJuRmliZXIsXG4gICAgICAgICAgICAgICAgICByZW5kZXJMYW5lc1xuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgYnJlYWsgYTtcbiAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBjdXJyZW50ID0gd29ya0luUHJvZ3Jlc3Muc3RhdGVOb2RlLmNvbnRhaW5lckluZm87XG4gICAgICAgICAgICAgICAgc3dpdGNoIChjdXJyZW50Lm5vZGVUeXBlKSB7XG4gICAgICAgICAgICAgICAgICBjYXNlIDk6XG4gICAgICAgICAgICAgICAgICAgIGN1cnJlbnQgPSBjdXJyZW50LmJvZHk7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICAgICAgY3VycmVudCA9XG4gICAgICAgICAgICAgICAgICAgICAgXCJIVE1MXCIgPT09IGN1cnJlbnQubm9kZU5hbWVcbiAgICAgICAgICAgICAgICAgICAgICAgID8gY3VycmVudC5vd25lckRvY3VtZW50LmJvZHlcbiAgICAgICAgICAgICAgICAgICAgICAgIDogY3VycmVudDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgbmV4dEh5ZHJhdGFibGVJbnN0YW5jZSA9IGdldE5leHRIeWRyYXRhYmxlKGN1cnJlbnQuZmlyc3RDaGlsZCk7XG4gICAgICAgICAgICAgICAgaHlkcmF0aW9uUGFyZW50RmliZXIgPSB3b3JrSW5Qcm9ncmVzcztcbiAgICAgICAgICAgICAgICBpc0h5ZHJhdGluZyA9ICEwO1xuICAgICAgICAgICAgICAgIGh5ZHJhdGlvbkVycm9ycyA9IG51bGw7XG4gICAgICAgICAgICAgICAgZGlkU3VzcGVuZE9yRXJyb3JERVYgPSAhMTtcbiAgICAgICAgICAgICAgICBoeWRyYXRpb25EaWZmUm9vdERFViA9IG51bGw7XG4gICAgICAgICAgICAgICAgcm9vdE9yU2luZ2xldG9uQ29udGV4dCA9ICEwO1xuICAgICAgICAgICAgICAgIGN1cnJlbnQgPSBtb3VudENoaWxkRmliZXJzKFxuICAgICAgICAgICAgICAgICAgd29ya0luUHJvZ3Jlc3MsXG4gICAgICAgICAgICAgICAgICBudWxsLFxuICAgICAgICAgICAgICAgICAgcmV0dXJuRmliZXIsXG4gICAgICAgICAgICAgICAgICByZW5kZXJMYW5lc1xuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgZm9yICh3b3JrSW5Qcm9ncmVzcy5jaGlsZCA9IGN1cnJlbnQ7IGN1cnJlbnQ7IClcbiAgICAgICAgICAgICAgICAgIChjdXJyZW50LmZsYWdzID0gKGN1cnJlbnQuZmxhZ3MgJiAtMykgfCA0MDk2KSxcbiAgICAgICAgICAgICAgICAgICAgKGN1cnJlbnQgPSBjdXJyZW50LnNpYmxpbmcpO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgcmVzZXRIeWRyYXRpb25TdGF0ZSgpO1xuICAgICAgICAgICAgICBpZiAocmV0dXJuRmliZXIgPT09IHByZXZTaWJsaW5nKSB7XG4gICAgICAgICAgICAgICAgd29ya0luUHJvZ3Jlc3MgPSBiYWlsb3V0T25BbHJlYWR5RmluaXNoZWRXb3JrKFxuICAgICAgICAgICAgICAgICAgY3VycmVudCxcbiAgICAgICAgICAgICAgICAgIHdvcmtJblByb2dyZXNzLFxuICAgICAgICAgICAgICAgICAgcmVuZGVyTGFuZXNcbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgIGJyZWFrIGE7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgcmVjb25jaWxlQ2hpbGRyZW4oXG4gICAgICAgICAgICAgICAgY3VycmVudCxcbiAgICAgICAgICAgICAgICB3b3JrSW5Qcm9ncmVzcyxcbiAgICAgICAgICAgICAgICByZXR1cm5GaWJlcixcbiAgICAgICAgICAgICAgICByZW5kZXJMYW5lc1xuICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgd29ya0luUHJvZ3Jlc3MgPSB3b3JrSW5Qcm9ncmVzcy5jaGlsZDtcbiAgICAgICAgICB9XG4gICAgICAgICAgcmV0dXJuIHdvcmtJblByb2dyZXNzO1xuICAgICAgICBjYXNlIDI2OlxuICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICBtYXJrUmVmKGN1cnJlbnQsIHdvcmtJblByb2dyZXNzKSxcbiAgICAgICAgICAgIG51bGwgPT09IGN1cnJlbnRcbiAgICAgICAgICAgICAgPyAoY3VycmVudCA9IGdldFJlc291cmNlKFxuICAgICAgICAgICAgICAgICAgd29ya0luUHJvZ3Jlc3MudHlwZSxcbiAgICAgICAgICAgICAgICAgIG51bGwsXG4gICAgICAgICAgICAgICAgICB3b3JrSW5Qcm9ncmVzcy5wZW5kaW5nUHJvcHMsXG4gICAgICAgICAgICAgICAgICBudWxsXG4gICAgICAgICAgICAgICAgKSlcbiAgICAgICAgICAgICAgICA/ICh3b3JrSW5Qcm9ncmVzcy5tZW1vaXplZFN0YXRlID0gY3VycmVudClcbiAgICAgICAgICAgICAgICA6IGlzSHlkcmF0aW5nIHx8XG4gICAgICAgICAgICAgICAgICAoKGN1cnJlbnQgPSB3b3JrSW5Qcm9ncmVzcy50eXBlKSxcbiAgICAgICAgICAgICAgICAgIChyZW5kZXJMYW5lcyA9IHdvcmtJblByb2dyZXNzLnBlbmRpbmdQcm9wcyksXG4gICAgICAgICAgICAgICAgICAocmV0dXJuRmliZXIgPSByZXF1aXJlZENvbnRleHQoXG4gICAgICAgICAgICAgICAgICAgIHJvb3RJbnN0YW5jZVN0YWNrQ3Vyc29yLmN1cnJlbnRcbiAgICAgICAgICAgICAgICAgICkpLFxuICAgICAgICAgICAgICAgICAgKHJldHVybkZpYmVyID1cbiAgICAgICAgICAgICAgICAgICAgZ2V0T3duZXJEb2N1bWVudEZyb21Sb290Q29udGFpbmVyKFxuICAgICAgICAgICAgICAgICAgICAgIHJldHVybkZpYmVyXG4gICAgICAgICAgICAgICAgICAgICkuY3JlYXRlRWxlbWVudChjdXJyZW50KSksXG4gICAgICAgICAgICAgICAgICAocmV0dXJuRmliZXJbaW50ZXJuYWxJbnN0YW5jZUtleV0gPSB3b3JrSW5Qcm9ncmVzcyksXG4gICAgICAgICAgICAgICAgICAocmV0dXJuRmliZXJbaW50ZXJuYWxQcm9wc0tleV0gPSByZW5kZXJMYW5lcyksXG4gICAgICAgICAgICAgICAgICBzZXRJbml0aWFsUHJvcGVydGllcyhyZXR1cm5GaWJlciwgY3VycmVudCwgcmVuZGVyTGFuZXMpLFxuICAgICAgICAgICAgICAgICAgbWFya05vZGVBc0hvaXN0YWJsZShyZXR1cm5GaWJlciksXG4gICAgICAgICAgICAgICAgICAod29ya0luUHJvZ3Jlc3Muc3RhdGVOb2RlID0gcmV0dXJuRmliZXIpKVxuICAgICAgICAgICAgICA6ICh3b3JrSW5Qcm9ncmVzcy5tZW1vaXplZFN0YXRlID0gZ2V0UmVzb3VyY2UoXG4gICAgICAgICAgICAgICAgICB3b3JrSW5Qcm9ncmVzcy50eXBlLFxuICAgICAgICAgICAgICAgICAgY3VycmVudC5tZW1vaXplZFByb3BzLFxuICAgICAgICAgICAgICAgICAgd29ya0luUHJvZ3Jlc3MucGVuZGluZ1Byb3BzLFxuICAgICAgICAgICAgICAgICAgY3VycmVudC5tZW1vaXplZFN0YXRlXG4gICAgICAgICAgICAgICAgKSksXG4gICAgICAgICAgICBudWxsXG4gICAgICAgICAgKTtcbiAgICAgICAgY2FzZSAyNzpcbiAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgcHVzaEhvc3RDb250ZXh0KHdvcmtJblByb2dyZXNzKSxcbiAgICAgICAgICAgIG51bGwgPT09IGN1cnJlbnQgJiZcbiAgICAgICAgICAgICAgaXNIeWRyYXRpbmcgJiZcbiAgICAgICAgICAgICAgKChyZXR1cm5GaWJlciA9IHJlcXVpcmVkQ29udGV4dChyb290SW5zdGFuY2VTdGFja0N1cnNvci5jdXJyZW50KSksXG4gICAgICAgICAgICAgIChwcmV2U2libGluZyA9IGdldEhvc3RDb250ZXh0KCkpLFxuICAgICAgICAgICAgICAocmV0dXJuRmliZXIgPSB3b3JrSW5Qcm9ncmVzcy5zdGF0ZU5vZGUgPVxuICAgICAgICAgICAgICAgIHJlc29sdmVTaW5nbGV0b25JbnN0YW5jZShcbiAgICAgICAgICAgICAgICAgIHdvcmtJblByb2dyZXNzLnR5cGUsXG4gICAgICAgICAgICAgICAgICB3b3JrSW5Qcm9ncmVzcy5wZW5kaW5nUHJvcHMsXG4gICAgICAgICAgICAgICAgICByZXR1cm5GaWJlcixcbiAgICAgICAgICAgICAgICAgIHByZXZTaWJsaW5nLFxuICAgICAgICAgICAgICAgICAgITFcbiAgICAgICAgICAgICAgICApKSxcbiAgICAgICAgICAgICAgZGlkU3VzcGVuZE9yRXJyb3JERVYgfHxcbiAgICAgICAgICAgICAgICAoKHByZXZTaWJsaW5nID0gZGlmZkh5ZHJhdGVkUHJvcGVydGllcyhcbiAgICAgICAgICAgICAgICAgIHJldHVybkZpYmVyLFxuICAgICAgICAgICAgICAgICAgd29ya0luUHJvZ3Jlc3MudHlwZSxcbiAgICAgICAgICAgICAgICAgIHdvcmtJblByb2dyZXNzLnBlbmRpbmdQcm9wcyxcbiAgICAgICAgICAgICAgICAgIHByZXZTaWJsaW5nXG4gICAgICAgICAgICAgICAgKSksXG4gICAgICAgICAgICAgICAgbnVsbCAhPT0gcHJldlNpYmxpbmcgJiZcbiAgICAgICAgICAgICAgICAgIChidWlsZEh5ZHJhdGlvbkRpZmZOb2RlKHdvcmtJblByb2dyZXNzLCAwKS5zZXJ2ZXJQcm9wcyA9XG4gICAgICAgICAgICAgICAgICAgIHByZXZTaWJsaW5nKSksXG4gICAgICAgICAgICAgIChoeWRyYXRpb25QYXJlbnRGaWJlciA9IHdvcmtJblByb2dyZXNzKSxcbiAgICAgICAgICAgICAgKHJvb3RPclNpbmdsZXRvbkNvbnRleHQgPSAhMCksXG4gICAgICAgICAgICAgIChwcmV2U2libGluZyA9IG5leHRIeWRyYXRhYmxlSW5zdGFuY2UpLFxuICAgICAgICAgICAgICBpc1NpbmdsZXRvblNjb3BlKHdvcmtJblByb2dyZXNzLnR5cGUpXG4gICAgICAgICAgICAgICAgPyAoKHByZXZpb3VzSHlkcmF0YWJsZU9uRW50ZXJpbmdTY29wZWRTaW5nbGV0b24gPSBwcmV2U2libGluZyksXG4gICAgICAgICAgICAgICAgICAobmV4dEh5ZHJhdGFibGVJbnN0YW5jZSA9IGdldE5leHRIeWRyYXRhYmxlKFxuICAgICAgICAgICAgICAgICAgICByZXR1cm5GaWJlci5maXJzdENoaWxkXG4gICAgICAgICAgICAgICAgICApKSlcbiAgICAgICAgICAgICAgICA6IChuZXh0SHlkcmF0YWJsZUluc3RhbmNlID0gcHJldlNpYmxpbmcpKSxcbiAgICAgICAgICAgIHJlY29uY2lsZUNoaWxkcmVuKFxuICAgICAgICAgICAgICBjdXJyZW50LFxuICAgICAgICAgICAgICB3b3JrSW5Qcm9ncmVzcyxcbiAgICAgICAgICAgICAgd29ya0luUHJvZ3Jlc3MucGVuZGluZ1Byb3BzLmNoaWxkcmVuLFxuICAgICAgICAgICAgICByZW5kZXJMYW5lc1xuICAgICAgICAgICAgKSxcbiAgICAgICAgICAgIG1hcmtSZWYoY3VycmVudCwgd29ya0luUHJvZ3Jlc3MpLFxuICAgICAgICAgICAgbnVsbCA9PT0gY3VycmVudCAmJiAod29ya0luUHJvZ3Jlc3MuZmxhZ3MgfD0gNDE5NDMwNCksXG4gICAgICAgICAgICB3b3JrSW5Qcm9ncmVzcy5jaGlsZFxuICAgICAgICAgICk7XG4gICAgICAgIGNhc2UgNTpcbiAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgbnVsbCA9PT0gY3VycmVudCAmJlxuICAgICAgICAgICAgICBpc0h5ZHJhdGluZyAmJlxuICAgICAgICAgICAgICAoKHByZXZTdGF0ZSA9IGdldEhvc3RDb250ZXh0KCkpLFxuICAgICAgICAgICAgICAocmV0dXJuRmliZXIgPSB2YWxpZGF0ZURPTU5lc3RpbmcoXG4gICAgICAgICAgICAgICAgd29ya0luUHJvZ3Jlc3MudHlwZSxcbiAgICAgICAgICAgICAgICBwcmV2U3RhdGUuYW5jZXN0b3JJbmZvXG4gICAgICAgICAgICAgICkpLFxuICAgICAgICAgICAgICAocHJldlNpYmxpbmcgPSBuZXh0SHlkcmF0YWJsZUluc3RhbmNlKSxcbiAgICAgICAgICAgICAgKG5leHRTdGF0ZSA9ICFwcmV2U2libGluZykgfHxcbiAgICAgICAgICAgICAgICAoKG5leHRTdGF0ZSA9IGNhbkh5ZHJhdGVJbnN0YW5jZShcbiAgICAgICAgICAgICAgICAgIHByZXZTaWJsaW5nLFxuICAgICAgICAgICAgICAgICAgd29ya0luUHJvZ3Jlc3MudHlwZSxcbiAgICAgICAgICAgICAgICAgIHdvcmtJblByb2dyZXNzLnBlbmRpbmdQcm9wcyxcbiAgICAgICAgICAgICAgICAgIHJvb3RPclNpbmdsZXRvbkNvbnRleHRcbiAgICAgICAgICAgICAgICApKSxcbiAgICAgICAgICAgICAgICBudWxsICE9PSBuZXh0U3RhdGVcbiAgICAgICAgICAgICAgICAgID8gKCh3b3JrSW5Qcm9ncmVzcy5zdGF0ZU5vZGUgPSBuZXh0U3RhdGUpLFxuICAgICAgICAgICAgICAgICAgICBkaWRTdXNwZW5kT3JFcnJvckRFViB8fFxuICAgICAgICAgICAgICAgICAgICAgICgocHJldlN0YXRlID0gZGlmZkh5ZHJhdGVkUHJvcGVydGllcyhcbiAgICAgICAgICAgICAgICAgICAgICAgIG5leHRTdGF0ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHdvcmtJblByb2dyZXNzLnR5cGUsXG4gICAgICAgICAgICAgICAgICAgICAgICB3b3JrSW5Qcm9ncmVzcy5wZW5kaW5nUHJvcHMsXG4gICAgICAgICAgICAgICAgICAgICAgICBwcmV2U3RhdGVcbiAgICAgICAgICAgICAgICAgICAgICApKSxcbiAgICAgICAgICAgICAgICAgICAgICBudWxsICE9PSBwcmV2U3RhdGUgJiZcbiAgICAgICAgICAgICAgICAgICAgICAgIChidWlsZEh5ZHJhdGlvbkRpZmZOb2RlKHdvcmtJblByb2dyZXNzLCAwKS5zZXJ2ZXJQcm9wcyA9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIHByZXZTdGF0ZSkpLFxuICAgICAgICAgICAgICAgICAgICAoaHlkcmF0aW9uUGFyZW50RmliZXIgPSB3b3JrSW5Qcm9ncmVzcyksXG4gICAgICAgICAgICAgICAgICAgIChuZXh0SHlkcmF0YWJsZUluc3RhbmNlID0gZ2V0TmV4dEh5ZHJhdGFibGUoXG4gICAgICAgICAgICAgICAgICAgICAgbmV4dFN0YXRlLmZpcnN0Q2hpbGRcbiAgICAgICAgICAgICAgICAgICAgKSksXG4gICAgICAgICAgICAgICAgICAgIChyb290T3JTaW5nbGV0b25Db250ZXh0ID0gITEpLFxuICAgICAgICAgICAgICAgICAgICAocHJldlN0YXRlID0gITApKVxuICAgICAgICAgICAgICAgICAgOiAocHJldlN0YXRlID0gITEpLFxuICAgICAgICAgICAgICAgIChuZXh0U3RhdGUgPSAhcHJldlN0YXRlKSksXG4gICAgICAgICAgICAgIG5leHRTdGF0ZSAmJlxuICAgICAgICAgICAgICAgIChyZXR1cm5GaWJlciAmJlxuICAgICAgICAgICAgICAgICAgd2Fybk5vbkh5ZHJhdGVkSW5zdGFuY2Uod29ya0luUHJvZ3Jlc3MsIHByZXZTaWJsaW5nKSxcbiAgICAgICAgICAgICAgICB0aHJvd09uSHlkcmF0aW9uTWlzbWF0Y2god29ya0luUHJvZ3Jlc3MpKSksXG4gICAgICAgICAgICBwdXNoSG9zdENvbnRleHQod29ya0luUHJvZ3Jlc3MpLFxuICAgICAgICAgICAgKHByZXZTaWJsaW5nID0gd29ya0luUHJvZ3Jlc3MudHlwZSksXG4gICAgICAgICAgICAocHJldlN0YXRlID0gd29ya0luUHJvZ3Jlc3MucGVuZGluZ1Byb3BzKSxcbiAgICAgICAgICAgIChuZXh0U3RhdGUgPSBudWxsICE9PSBjdXJyZW50ID8gY3VycmVudC5tZW1vaXplZFByb3BzIDogbnVsbCksXG4gICAgICAgICAgICAocmV0dXJuRmliZXIgPSBwcmV2U3RhdGUuY2hpbGRyZW4pLFxuICAgICAgICAgICAgc2hvdWxkU2V0VGV4dENvbnRlbnQocHJldlNpYmxpbmcsIHByZXZTdGF0ZSlcbiAgICAgICAgICAgICAgPyAocmV0dXJuRmliZXIgPSBudWxsKVxuICAgICAgICAgICAgICA6IG51bGwgIT09IG5leHRTdGF0ZSAmJlxuICAgICAgICAgICAgICAgIHNob3VsZFNldFRleHRDb250ZW50KHByZXZTaWJsaW5nLCBuZXh0U3RhdGUpICYmXG4gICAgICAgICAgICAgICAgKHdvcmtJblByb2dyZXNzLmZsYWdzIHw9IDMyKSxcbiAgICAgICAgICAgIG51bGwgIT09IHdvcmtJblByb2dyZXNzLm1lbW9pemVkU3RhdGUgJiZcbiAgICAgICAgICAgICAgKChwcmV2U2libGluZyA9IHJlbmRlcldpdGhIb29rcyhcbiAgICAgICAgICAgICAgICBjdXJyZW50LFxuICAgICAgICAgICAgICAgIHdvcmtJblByb2dyZXNzLFxuICAgICAgICAgICAgICAgIFRyYW5zaXRpb25Bd2FyZUhvc3RDb21wb25lbnQsXG4gICAgICAgICAgICAgICAgbnVsbCxcbiAgICAgICAgICAgICAgICBudWxsLFxuICAgICAgICAgICAgICAgIHJlbmRlckxhbmVzXG4gICAgICAgICAgICAgICkpLFxuICAgICAgICAgICAgICAoSG9zdFRyYW5zaXRpb25Db250ZXh0Ll9jdXJyZW50VmFsdWUgPSBwcmV2U2libGluZykpLFxuICAgICAgICAgICAgbWFya1JlZihjdXJyZW50LCB3b3JrSW5Qcm9ncmVzcyksXG4gICAgICAgICAgICByZWNvbmNpbGVDaGlsZHJlbihcbiAgICAgICAgICAgICAgY3VycmVudCxcbiAgICAgICAgICAgICAgd29ya0luUHJvZ3Jlc3MsXG4gICAgICAgICAgICAgIHJldHVybkZpYmVyLFxuICAgICAgICAgICAgICByZW5kZXJMYW5lc1xuICAgICAgICAgICAgKSxcbiAgICAgICAgICAgIHdvcmtJblByb2dyZXNzLmNoaWxkXG4gICAgICAgICAgKTtcbiAgICAgICAgY2FzZSA2OlxuICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICBudWxsID09PSBjdXJyZW50ICYmXG4gICAgICAgICAgICAgIGlzSHlkcmF0aW5nICYmXG4gICAgICAgICAgICAgICgoY3VycmVudCA9IHdvcmtJblByb2dyZXNzLnBlbmRpbmdQcm9wcyksXG4gICAgICAgICAgICAgIChyZW5kZXJMYW5lcyA9IGdldEhvc3RDb250ZXh0KCkpLFxuICAgICAgICAgICAgICAocmV0dXJuRmliZXIgPSByZW5kZXJMYW5lcy5hbmNlc3RvckluZm8uY3VycmVudCksXG4gICAgICAgICAgICAgIChjdXJyZW50ID1cbiAgICAgICAgICAgICAgICBudWxsICE9IHJldHVybkZpYmVyXG4gICAgICAgICAgICAgICAgICA/IHZhbGlkYXRlVGV4dE5lc3RpbmcoXG4gICAgICAgICAgICAgICAgICAgICAgY3VycmVudCxcbiAgICAgICAgICAgICAgICAgICAgICByZXR1cm5GaWJlci50YWcsXG4gICAgICAgICAgICAgICAgICAgICAgcmVuZGVyTGFuZXMuYW5jZXN0b3JJbmZvLmltcGxpY2l0Um9vdFNjb3BlXG4gICAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICAgIDogITApLFxuICAgICAgICAgICAgICAocmVuZGVyTGFuZXMgPSBuZXh0SHlkcmF0YWJsZUluc3RhbmNlKSxcbiAgICAgICAgICAgICAgKHJldHVybkZpYmVyID0gIXJlbmRlckxhbmVzKSB8fFxuICAgICAgICAgICAgICAgICgocmV0dXJuRmliZXIgPSBjYW5IeWRyYXRlVGV4dEluc3RhbmNlKFxuICAgICAgICAgICAgICAgICAgcmVuZGVyTGFuZXMsXG4gICAgICAgICAgICAgICAgICB3b3JrSW5Qcm9ncmVzcy5wZW5kaW5nUHJvcHMsXG4gICAgICAgICAgICAgICAgICByb290T3JTaW5nbGV0b25Db250ZXh0XG4gICAgICAgICAgICAgICAgKSksXG4gICAgICAgICAgICAgICAgbnVsbCAhPT0gcmV0dXJuRmliZXJcbiAgICAgICAgICAgICAgICAgID8gKCh3b3JrSW5Qcm9ncmVzcy5zdGF0ZU5vZGUgPSByZXR1cm5GaWJlciksXG4gICAgICAgICAgICAgICAgICAgIChoeWRyYXRpb25QYXJlbnRGaWJlciA9IHdvcmtJblByb2dyZXNzKSxcbiAgICAgICAgICAgICAgICAgICAgKG5leHRIeWRyYXRhYmxlSW5zdGFuY2UgPSBudWxsKSxcbiAgICAgICAgICAgICAgICAgICAgKHJldHVybkZpYmVyID0gITApKVxuICAgICAgICAgICAgICAgICAgOiAocmV0dXJuRmliZXIgPSAhMSksXG4gICAgICAgICAgICAgICAgKHJldHVybkZpYmVyID0gIXJldHVybkZpYmVyKSksXG4gICAgICAgICAgICAgIHJldHVybkZpYmVyICYmXG4gICAgICAgICAgICAgICAgKGN1cnJlbnQgJiZcbiAgICAgICAgICAgICAgICAgIHdhcm5Ob25IeWRyYXRlZEluc3RhbmNlKHdvcmtJblByb2dyZXNzLCByZW5kZXJMYW5lcyksXG4gICAgICAgICAgICAgICAgdGhyb3dPbkh5ZHJhdGlvbk1pc21hdGNoKHdvcmtJblByb2dyZXNzKSkpLFxuICAgICAgICAgICAgbnVsbFxuICAgICAgICAgICk7XG4gICAgICAgIGNhc2UgMTM6XG4gICAgICAgICAgcmV0dXJuIHVwZGF0ZVN1c3BlbnNlQ29tcG9uZW50KGN1cnJlbnQsIHdvcmtJblByb2dyZXNzLCByZW5kZXJMYW5lcyk7XG4gICAgICAgIGNhc2UgNDpcbiAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgcHVzaEhvc3RDb250YWluZXIoXG4gICAgICAgICAgICAgIHdvcmtJblByb2dyZXNzLFxuICAgICAgICAgICAgICB3b3JrSW5Qcm9ncmVzcy5zdGF0ZU5vZGUuY29udGFpbmVySW5mb1xuICAgICAgICAgICAgKSxcbiAgICAgICAgICAgIChyZXR1cm5GaWJlciA9IHdvcmtJblByb2dyZXNzLnBlbmRpbmdQcm9wcyksXG4gICAgICAgICAgICBudWxsID09PSBjdXJyZW50XG4gICAgICAgICAgICAgID8gKHdvcmtJblByb2dyZXNzLmNoaWxkID0gcmVjb25jaWxlQ2hpbGRGaWJlcnMoXG4gICAgICAgICAgICAgICAgICB3b3JrSW5Qcm9ncmVzcyxcbiAgICAgICAgICAgICAgICAgIG51bGwsXG4gICAgICAgICAgICAgICAgICByZXR1cm5GaWJlcixcbiAgICAgICAgICAgICAgICAgIHJlbmRlckxhbmVzXG4gICAgICAgICAgICAgICAgKSlcbiAgICAgICAgICAgICAgOiByZWNvbmNpbGVDaGlsZHJlbihcbiAgICAgICAgICAgICAgICAgIGN1cnJlbnQsXG4gICAgICAgICAgICAgICAgICB3b3JrSW5Qcm9ncmVzcyxcbiAgICAgICAgICAgICAgICAgIHJldHVybkZpYmVyLFxuICAgICAgICAgICAgICAgICAgcmVuZGVyTGFuZXNcbiAgICAgICAgICAgICAgICApLFxuICAgICAgICAgICAgd29ya0luUHJvZ3Jlc3MuY2hpbGRcbiAgICAgICAgICApO1xuICAgICAgICBjYXNlIDExOlxuICAgICAgICAgIHJldHVybiB1cGRhdGVGb3J3YXJkUmVmKFxuICAgICAgICAgICAgY3VycmVudCxcbiAgICAgICAgICAgIHdvcmtJblByb2dyZXNzLFxuICAgICAgICAgICAgd29ya0luUHJvZ3Jlc3MudHlwZSxcbiAgICAgICAgICAgIHdvcmtJblByb2dyZXNzLnBlbmRpbmdQcm9wcyxcbiAgICAgICAgICAgIHJlbmRlckxhbmVzXG4gICAgICAgICAgKTtcbiAgICAgICAgY2FzZSA3OlxuICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICByZWNvbmNpbGVDaGlsZHJlbihcbiAgICAgICAgICAgICAgY3VycmVudCxcbiAgICAgICAgICAgICAgd29ya0luUHJvZ3Jlc3MsXG4gICAgICAgICAgICAgIHdvcmtJblByb2dyZXNzLnBlbmRpbmdQcm9wcyxcbiAgICAgICAgICAgICAgcmVuZGVyTGFuZXNcbiAgICAgICAgICAgICksXG4gICAgICAgICAgICB3b3JrSW5Qcm9ncmVzcy5jaGlsZFxuICAgICAgICAgICk7XG4gICAgICAgIGNhc2UgODpcbiAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgcmVjb25jaWxlQ2hpbGRyZW4oXG4gICAgICAgICAgICAgIGN1cnJlbnQsXG4gICAgICAgICAgICAgIHdvcmtJblByb2dyZXNzLFxuICAgICAgICAgICAgICB3b3JrSW5Qcm9ncmVzcy5wZW5kaW5nUHJvcHMuY2hpbGRyZW4sXG4gICAgICAgICAgICAgIHJlbmRlckxhbmVzXG4gICAgICAgICAgICApLFxuICAgICAgICAgICAgd29ya0luUHJvZ3Jlc3MuY2hpbGRcbiAgICAgICAgICApO1xuICAgICAgICBjYXNlIDEyOlxuICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAod29ya0luUHJvZ3Jlc3MuZmxhZ3MgfD0gNCksXG4gICAgICAgICAgICAod29ya0luUHJvZ3Jlc3MuZmxhZ3MgfD0gMjA0OCksXG4gICAgICAgICAgICAocmV0dXJuRmliZXIgPSB3b3JrSW5Qcm9ncmVzcy5zdGF0ZU5vZGUpLFxuICAgICAgICAgICAgKHJldHVybkZpYmVyLmVmZmVjdER1cmF0aW9uID0gLTApLFxuICAgICAgICAgICAgKHJldHVybkZpYmVyLnBhc3NpdmVFZmZlY3REdXJhdGlvbiA9IC0wKSxcbiAgICAgICAgICAgIHJlY29uY2lsZUNoaWxkcmVuKFxuICAgICAgICAgICAgICBjdXJyZW50LFxuICAgICAgICAgICAgICB3b3JrSW5Qcm9ncmVzcyxcbiAgICAgICAgICAgICAgd29ya0luUHJvZ3Jlc3MucGVuZGluZ1Byb3BzLmNoaWxkcmVuLFxuICAgICAgICAgICAgICByZW5kZXJMYW5lc1xuICAgICAgICAgICAgKSxcbiAgICAgICAgICAgIHdvcmtJblByb2dyZXNzLmNoaWxkXG4gICAgICAgICAgKTtcbiAgICAgICAgY2FzZSAxMDpcbiAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgKHJldHVybkZpYmVyID0gd29ya0luUHJvZ3Jlc3MudHlwZSksXG4gICAgICAgICAgICAocHJldlNpYmxpbmcgPSB3b3JrSW5Qcm9ncmVzcy5wZW5kaW5nUHJvcHMpLFxuICAgICAgICAgICAgKHByZXZTdGF0ZSA9IHByZXZTaWJsaW5nLnZhbHVlKSxcbiAgICAgICAgICAgIFwidmFsdWVcIiBpbiBwcmV2U2libGluZyB8fFxuICAgICAgICAgICAgICBoYXNXYXJuZWRBYm91dFVzaW5nTm9WYWx1ZVByb3BPbkNvbnRleHRQcm92aWRlciB8fFxuICAgICAgICAgICAgICAoKGhhc1dhcm5lZEFib3V0VXNpbmdOb1ZhbHVlUHJvcE9uQ29udGV4dFByb3ZpZGVyID0gITApLFxuICAgICAgICAgICAgICBjb25zb2xlLmVycm9yKFxuICAgICAgICAgICAgICAgIFwiVGhlIGB2YWx1ZWAgcHJvcCBpcyByZXF1aXJlZCBmb3IgdGhlIGA8Q29udGV4dC5Qcm92aWRlcj5gLiBEaWQgeW91IG1pc3NwZWxsIGl0IG9yIGZvcmdldCB0byBwYXNzIGl0P1wiXG4gICAgICAgICAgICAgICkpLFxuICAgICAgICAgICAgcHVzaFByb3ZpZGVyKHdvcmtJblByb2dyZXNzLCByZXR1cm5GaWJlciwgcHJldlN0YXRlKSxcbiAgICAgICAgICAgIHJlY29uY2lsZUNoaWxkcmVuKFxuICAgICAgICAgICAgICBjdXJyZW50LFxuICAgICAgICAgICAgICB3b3JrSW5Qcm9ncmVzcyxcbiAgICAgICAgICAgICAgcHJldlNpYmxpbmcuY2hpbGRyZW4sXG4gICAgICAgICAgICAgIHJlbmRlckxhbmVzXG4gICAgICAgICAgICApLFxuICAgICAgICAgICAgd29ya0luUHJvZ3Jlc3MuY2hpbGRcbiAgICAgICAgICApO1xuICAgICAgICBjYXNlIDk6XG4gICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgIChwcmV2U2libGluZyA9IHdvcmtJblByb2dyZXNzLnR5cGUuX2NvbnRleHQpLFxuICAgICAgICAgICAgKHJldHVybkZpYmVyID0gd29ya0luUHJvZ3Jlc3MucGVuZGluZ1Byb3BzLmNoaWxkcmVuKSxcbiAgICAgICAgICAgIFwiZnVuY3Rpb25cIiAhPT0gdHlwZW9mIHJldHVybkZpYmVyICYmXG4gICAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoXG4gICAgICAgICAgICAgICAgXCJBIGNvbnRleHQgY29uc3VtZXIgd2FzIHJlbmRlcmVkIHdpdGggbXVsdGlwbGUgY2hpbGRyZW4sIG9yIGEgY2hpbGQgdGhhdCBpc24ndCBhIGZ1bmN0aW9uLiBBIGNvbnRleHQgY29uc3VtZXIgZXhwZWN0cyBhIHNpbmdsZSBjaGlsZCB0aGF0IGlzIGEgZnVuY3Rpb24uIElmIHlvdSBkaWQgcGFzcyBhIGZ1bmN0aW9uLCBtYWtlIHN1cmUgdGhlcmUgaXMgbm8gdHJhaWxpbmcgb3IgbGVhZGluZyB3aGl0ZXNwYWNlIGFyb3VuZCBpdC5cIlxuICAgICAgICAgICAgICApLFxuICAgICAgICAgICAgcHJlcGFyZVRvUmVhZENvbnRleHQod29ya0luUHJvZ3Jlc3MpLFxuICAgICAgICAgICAgKHByZXZTaWJsaW5nID0gcmVhZENvbnRleHQocHJldlNpYmxpbmcpKSxcbiAgICAgICAgICAgIG1hcmtDb21wb25lbnRSZW5kZXJTdGFydGVkKHdvcmtJblByb2dyZXNzKSxcbiAgICAgICAgICAgIChyZXR1cm5GaWJlciA9IGNhbGxDb21wb25lbnRJbkRFVihcbiAgICAgICAgICAgICAgcmV0dXJuRmliZXIsXG4gICAgICAgICAgICAgIHByZXZTaWJsaW5nLFxuICAgICAgICAgICAgICB2b2lkIDBcbiAgICAgICAgICAgICkpLFxuICAgICAgICAgICAgbWFya0NvbXBvbmVudFJlbmRlclN0b3BwZWQoKSxcbiAgICAgICAgICAgICh3b3JrSW5Qcm9ncmVzcy5mbGFncyB8PSAxKSxcbiAgICAgICAgICAgIHJlY29uY2lsZUNoaWxkcmVuKFxuICAgICAgICAgICAgICBjdXJyZW50LFxuICAgICAgICAgICAgICB3b3JrSW5Qcm9ncmVzcyxcbiAgICAgICAgICAgICAgcmV0dXJuRmliZXIsXG4gICAgICAgICAgICAgIHJlbmRlckxhbmVzXG4gICAgICAgICAgICApLFxuICAgICAgICAgICAgd29ya0luUHJvZ3Jlc3MuY2hpbGRcbiAgICAgICAgICApO1xuICAgICAgICBjYXNlIDE0OlxuICAgICAgICAgIHJldHVybiB1cGRhdGVNZW1vQ29tcG9uZW50KFxuICAgICAgICAgICAgY3VycmVudCxcbiAgICAgICAgICAgIHdvcmtJblByb2dyZXNzLFxuICAgICAgICAgICAgd29ya0luUHJvZ3Jlc3MudHlwZSxcbiAgICAgICAgICAgIHdvcmtJblByb2dyZXNzLnBlbmRpbmdQcm9wcyxcbiAgICAgICAgICAgIHJlbmRlckxhbmVzXG4gICAgICAgICAgKTtcbiAgICAgICAgY2FzZSAxNTpcbiAgICAgICAgICByZXR1cm4gdXBkYXRlU2ltcGxlTWVtb0NvbXBvbmVudChcbiAgICAgICAgICAgIGN1cnJlbnQsXG4gICAgICAgICAgICB3b3JrSW5Qcm9ncmVzcyxcbiAgICAgICAgICAgIHdvcmtJblByb2dyZXNzLnR5cGUsXG4gICAgICAgICAgICB3b3JrSW5Qcm9ncmVzcy5wZW5kaW5nUHJvcHMsXG4gICAgICAgICAgICByZW5kZXJMYW5lc1xuICAgICAgICAgICk7XG4gICAgICAgIGNhc2UgMTk6XG4gICAgICAgICAgcmV0dXJuIHVwZGF0ZVN1c3BlbnNlTGlzdENvbXBvbmVudChcbiAgICAgICAgICAgIGN1cnJlbnQsXG4gICAgICAgICAgICB3b3JrSW5Qcm9ncmVzcyxcbiAgICAgICAgICAgIHJlbmRlckxhbmVzXG4gICAgICAgICAgKTtcbiAgICAgICAgY2FzZSAzMTpcbiAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgKHJldHVybkZpYmVyID0gd29ya0luUHJvZ3Jlc3MucGVuZGluZ1Byb3BzKSxcbiAgICAgICAgICAgIChyZW5kZXJMYW5lcyA9IHdvcmtJblByb2dyZXNzLm1vZGUpLFxuICAgICAgICAgICAgKHJldHVybkZpYmVyID0ge1xuICAgICAgICAgICAgICBtb2RlOiByZXR1cm5GaWJlci5tb2RlLFxuICAgICAgICAgICAgICBjaGlsZHJlbjogcmV0dXJuRmliZXIuY2hpbGRyZW5cbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgbnVsbCA9PT0gY3VycmVudFxuICAgICAgICAgICAgICA/ICgoY3VycmVudCA9IG1vdW50V29ya0luUHJvZ3Jlc3NPZmZzY3JlZW5GaWJlcihcbiAgICAgICAgICAgICAgICAgIHJldHVybkZpYmVyLFxuICAgICAgICAgICAgICAgICAgcmVuZGVyTGFuZXNcbiAgICAgICAgICAgICAgICApKSxcbiAgICAgICAgICAgICAgICAoY3VycmVudC5yZWYgPSB3b3JrSW5Qcm9ncmVzcy5yZWYpLFxuICAgICAgICAgICAgICAgICh3b3JrSW5Qcm9ncmVzcy5jaGlsZCA9IGN1cnJlbnQpLFxuICAgICAgICAgICAgICAgIChjdXJyZW50LnJldHVybiA9IHdvcmtJblByb2dyZXNzKSxcbiAgICAgICAgICAgICAgICAod29ya0luUHJvZ3Jlc3MgPSBjdXJyZW50KSlcbiAgICAgICAgICAgICAgOiAoKGN1cnJlbnQgPSBjcmVhdGVXb3JrSW5Qcm9ncmVzcyhjdXJyZW50LmNoaWxkLCByZXR1cm5GaWJlcikpLFxuICAgICAgICAgICAgICAgIChjdXJyZW50LnJlZiA9IHdvcmtJblByb2dyZXNzLnJlZiksXG4gICAgICAgICAgICAgICAgKHdvcmtJblByb2dyZXNzLmNoaWxkID0gY3VycmVudCksXG4gICAgICAgICAgICAgICAgKGN1cnJlbnQucmV0dXJuID0gd29ya0luUHJvZ3Jlc3MpLFxuICAgICAgICAgICAgICAgICh3b3JrSW5Qcm9ncmVzcyA9IGN1cnJlbnQpKSxcbiAgICAgICAgICAgIHdvcmtJblByb2dyZXNzXG4gICAgICAgICAgKTtcbiAgICAgICAgY2FzZSAyMjpcbiAgICAgICAgICByZXR1cm4gdXBkYXRlT2Zmc2NyZWVuQ29tcG9uZW50KGN1cnJlbnQsIHdvcmtJblByb2dyZXNzLCByZW5kZXJMYW5lcyk7XG4gICAgICAgIGNhc2UgMjQ6XG4gICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgIHByZXBhcmVUb1JlYWRDb250ZXh0KHdvcmtJblByb2dyZXNzKSxcbiAgICAgICAgICAgIChyZXR1cm5GaWJlciA9IHJlYWRDb250ZXh0KENhY2hlQ29udGV4dCkpLFxuICAgICAgICAgICAgbnVsbCA9PT0gY3VycmVudFxuICAgICAgICAgICAgICA/ICgocHJldlNpYmxpbmcgPSBwZWVrQ2FjaGVGcm9tUG9vbCgpKSxcbiAgICAgICAgICAgICAgICBudWxsID09PSBwcmV2U2libGluZyAmJlxuICAgICAgICAgICAgICAgICAgKChwcmV2U2libGluZyA9IHdvcmtJblByb2dyZXNzUm9vdCksXG4gICAgICAgICAgICAgICAgICAocHJldlN0YXRlID0gY3JlYXRlQ2FjaGUoKSksXG4gICAgICAgICAgICAgICAgICAocHJldlNpYmxpbmcucG9vbGVkQ2FjaGUgPSBwcmV2U3RhdGUpLFxuICAgICAgICAgICAgICAgICAgcmV0YWluQ2FjaGUocHJldlN0YXRlKSxcbiAgICAgICAgICAgICAgICAgIG51bGwgIT09IHByZXZTdGF0ZSAmJlxuICAgICAgICAgICAgICAgICAgICAocHJldlNpYmxpbmcucG9vbGVkQ2FjaGVMYW5lcyB8PSByZW5kZXJMYW5lcyksXG4gICAgICAgICAgICAgICAgICAocHJldlNpYmxpbmcgPSBwcmV2U3RhdGUpKSxcbiAgICAgICAgICAgICAgICAod29ya0luUHJvZ3Jlc3MubWVtb2l6ZWRTdGF0ZSA9IHtcbiAgICAgICAgICAgICAgICAgIHBhcmVudDogcmV0dXJuRmliZXIsXG4gICAgICAgICAgICAgICAgICBjYWNoZTogcHJldlNpYmxpbmdcbiAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgICBpbml0aWFsaXplVXBkYXRlUXVldWUod29ya0luUHJvZ3Jlc3MpLFxuICAgICAgICAgICAgICAgIHB1c2hQcm92aWRlcih3b3JrSW5Qcm9ncmVzcywgQ2FjaGVDb250ZXh0LCBwcmV2U2libGluZykpXG4gICAgICAgICAgICAgIDogKDAgIT09IChjdXJyZW50LmxhbmVzICYgcmVuZGVyTGFuZXMpICYmXG4gICAgICAgICAgICAgICAgICAoY2xvbmVVcGRhdGVRdWV1ZShjdXJyZW50LCB3b3JrSW5Qcm9ncmVzcyksXG4gICAgICAgICAgICAgICAgICBwcm9jZXNzVXBkYXRlUXVldWUod29ya0luUHJvZ3Jlc3MsIG51bGwsIG51bGwsIHJlbmRlckxhbmVzKSxcbiAgICAgICAgICAgICAgICAgIHN1c3BlbmRJZlVwZGF0ZVJlYWRGcm9tRW50YW5nbGVkQXN5bmNBY3Rpb24oKSksXG4gICAgICAgICAgICAgICAgKHByZXZTaWJsaW5nID0gY3VycmVudC5tZW1vaXplZFN0YXRlKSxcbiAgICAgICAgICAgICAgICAocHJldlN0YXRlID0gd29ya0luUHJvZ3Jlc3MubWVtb2l6ZWRTdGF0ZSksXG4gICAgICAgICAgICAgICAgcHJldlNpYmxpbmcucGFyZW50ICE9PSByZXR1cm5GaWJlclxuICAgICAgICAgICAgICAgICAgPyAoKHByZXZTaWJsaW5nID0ge1xuICAgICAgICAgICAgICAgICAgICAgIHBhcmVudDogcmV0dXJuRmliZXIsXG4gICAgICAgICAgICAgICAgICAgICAgY2FjaGU6IHJldHVybkZpYmVyXG4gICAgICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgICAgICAod29ya0luUHJvZ3Jlc3MubWVtb2l6ZWRTdGF0ZSA9IHByZXZTaWJsaW5nKSxcbiAgICAgICAgICAgICAgICAgICAgMCA9PT0gd29ya0luUHJvZ3Jlc3MubGFuZXMgJiZcbiAgICAgICAgICAgICAgICAgICAgICAod29ya0luUHJvZ3Jlc3MubWVtb2l6ZWRTdGF0ZSA9XG4gICAgICAgICAgICAgICAgICAgICAgICB3b3JrSW5Qcm9ncmVzcy51cGRhdGVRdWV1ZS5iYXNlU3RhdGUgPVxuICAgICAgICAgICAgICAgICAgICAgICAgICBwcmV2U2libGluZyksXG4gICAgICAgICAgICAgICAgICAgIHB1c2hQcm92aWRlcih3b3JrSW5Qcm9ncmVzcywgQ2FjaGVDb250ZXh0LCByZXR1cm5GaWJlcikpXG4gICAgICAgICAgICAgICAgICA6ICgocmV0dXJuRmliZXIgPSBwcmV2U3RhdGUuY2FjaGUpLFxuICAgICAgICAgICAgICAgICAgICBwdXNoUHJvdmlkZXIod29ya0luUHJvZ3Jlc3MsIENhY2hlQ29udGV4dCwgcmV0dXJuRmliZXIpLFxuICAgICAgICAgICAgICAgICAgICByZXR1cm5GaWJlciAhPT0gcHJldlNpYmxpbmcuY2FjaGUgJiZcbiAgICAgICAgICAgICAgICAgICAgICBwcm9wYWdhdGVDb250ZXh0Q2hhbmdlcyhcbiAgICAgICAgICAgICAgICAgICAgICAgIHdvcmtJblByb2dyZXNzLFxuICAgICAgICAgICAgICAgICAgICAgICAgW0NhY2hlQ29udGV4dF0sXG4gICAgICAgICAgICAgICAgICAgICAgICByZW5kZXJMYW5lcyxcbiAgICAgICAgICAgICAgICAgICAgICAgICEwXG4gICAgICAgICAgICAgICAgICAgICAgKSkpLFxuICAgICAgICAgICAgcmVjb25jaWxlQ2hpbGRyZW4oXG4gICAgICAgICAgICAgIGN1cnJlbnQsXG4gICAgICAgICAgICAgIHdvcmtJblByb2dyZXNzLFxuICAgICAgICAgICAgICB3b3JrSW5Qcm9ncmVzcy5wZW5kaW5nUHJvcHMuY2hpbGRyZW4sXG4gICAgICAgICAgICAgIHJlbmRlckxhbmVzXG4gICAgICAgICAgICApLFxuICAgICAgICAgICAgd29ya0luUHJvZ3Jlc3MuY2hpbGRcbiAgICAgICAgICApO1xuICAgICAgICBjYXNlIDI5OlxuICAgICAgICAgIHRocm93IHdvcmtJblByb2dyZXNzLnBlbmRpbmdQcm9wcztcbiAgICAgIH1cbiAgICAgIHRocm93IEVycm9yKFxuICAgICAgICBcIlVua25vd24gdW5pdCBvZiB3b3JrIHRhZyAoXCIgK1xuICAgICAgICAgIHdvcmtJblByb2dyZXNzLnRhZyArXG4gICAgICAgICAgXCIpLiBUaGlzIGVycm9yIGlzIGxpa2VseSBjYXVzZWQgYnkgYSBidWcgaW4gUmVhY3QuIFBsZWFzZSBmaWxlIGFuIGlzc3VlLlwiXG4gICAgICApO1xuICAgIH1cbiAgICBmdW5jdGlvbiBtYXJrVXBkYXRlKHdvcmtJblByb2dyZXNzKSB7XG4gICAgICB3b3JrSW5Qcm9ncmVzcy5mbGFncyB8PSA0O1xuICAgIH1cbiAgICBmdW5jdGlvbiBwcmVsb2FkUmVzb3VyY2VBbmRTdXNwZW5kSWZOZWVkZWQod29ya0luUHJvZ3Jlc3MsIHJlc291cmNlKSB7XG4gICAgICBpZiAoXG4gICAgICAgIFwic3R5bGVzaGVldFwiICE9PSByZXNvdXJjZS50eXBlIHx8XG4gICAgICAgIChyZXNvdXJjZS5zdGF0ZS5sb2FkaW5nICYgSW5zZXJ0ZWQpICE9PSBOb3RMb2FkZWRcbiAgICAgIClcbiAgICAgICAgd29ya0luUHJvZ3Jlc3MuZmxhZ3MgJj0gLTE2Nzc3MjE3O1xuICAgICAgZWxzZSBpZiAoXG4gICAgICAgICgod29ya0luUHJvZ3Jlc3MuZmxhZ3MgfD0gMTY3NzcyMTYpLCAhcHJlbG9hZFJlc291cmNlKHJlc291cmNlKSlcbiAgICAgICkge1xuICAgICAgICByZXNvdXJjZSA9IHN1c3BlbnNlSGFuZGxlclN0YWNrQ3Vyc29yLmN1cnJlbnQ7XG4gICAgICAgIGlmIChcbiAgICAgICAgICBudWxsICE9PSByZXNvdXJjZSAmJlxuICAgICAgICAgICgod29ya0luUHJvZ3Jlc3NSb290UmVuZGVyTGFuZXMgJiA0MTk0MDQ4KSA9PT1cbiAgICAgICAgICB3b3JrSW5Qcm9ncmVzc1Jvb3RSZW5kZXJMYW5lc1xuICAgICAgICAgICAgPyBudWxsICE9PSBzaGVsbEJvdW5kYXJ5XG4gICAgICAgICAgICA6ICgod29ya0luUHJvZ3Jlc3NSb290UmVuZGVyTGFuZXMgJiA2MjkxNDU2MCkgIT09XG4gICAgICAgICAgICAgICAgd29ya0luUHJvZ3Jlc3NSb290UmVuZGVyTGFuZXMgJiZcbiAgICAgICAgICAgICAgICAwID09PSAod29ya0luUHJvZ3Jlc3NSb290UmVuZGVyTGFuZXMgJiA1MzY4NzA5MTIpKSB8fFxuICAgICAgICAgICAgICByZXNvdXJjZSAhPT0gc2hlbGxCb3VuZGFyeSlcbiAgICAgICAgKVxuICAgICAgICAgIHRocm93IChcbiAgICAgICAgICAgICgoc3VzcGVuZGVkVGhlbmFibGUgPSBub29wU3VzcGVuc2V5Q29tbWl0VGhlbmFibGUpLFxuICAgICAgICAgICAgU3VzcGVuc2V5Q29tbWl0RXhjZXB0aW9uKVxuICAgICAgICAgICk7XG4gICAgICAgIHdvcmtJblByb2dyZXNzLmZsYWdzIHw9IDgxOTI7XG4gICAgICB9XG4gICAgfVxuICAgIGZ1bmN0aW9uIHNjaGVkdWxlUmV0cnlFZmZlY3Qod29ya0luUHJvZ3Jlc3MsIHJldHJ5UXVldWUpIHtcbiAgICAgIG51bGwgIT09IHJldHJ5UXVldWUgJiYgKHdvcmtJblByb2dyZXNzLmZsYWdzIHw9IDQpO1xuICAgICAgd29ya0luUHJvZ3Jlc3MuZmxhZ3MgJiAxNjM4NCAmJlxuICAgICAgICAoKHJldHJ5UXVldWUgPVxuICAgICAgICAgIDIyICE9PSB3b3JrSW5Qcm9ncmVzcy50YWcgPyBjbGFpbU5leHRSZXRyeUxhbmUoKSA6IDUzNjg3MDkxMiksXG4gICAgICAgICh3b3JrSW5Qcm9ncmVzcy5sYW5lcyB8PSByZXRyeVF1ZXVlKSxcbiAgICAgICAgKHdvcmtJblByb2dyZXNzU3VzcGVuZGVkUmV0cnlMYW5lcyB8PSByZXRyeVF1ZXVlKSk7XG4gICAgfVxuICAgIGZ1bmN0aW9uIGN1dE9mZlRhaWxJZk5lZWRlZChyZW5kZXJTdGF0ZSwgaGFzUmVuZGVyZWRBVGFpbEZhbGxiYWNrKSB7XG4gICAgICBpZiAoIWlzSHlkcmF0aW5nKVxuICAgICAgICBzd2l0Y2ggKHJlbmRlclN0YXRlLnRhaWxNb2RlKSB7XG4gICAgICAgICAgY2FzZSBcImhpZGRlblwiOlxuICAgICAgICAgICAgaGFzUmVuZGVyZWRBVGFpbEZhbGxiYWNrID0gcmVuZGVyU3RhdGUudGFpbDtcbiAgICAgICAgICAgIGZvciAodmFyIGxhc3RUYWlsTm9kZSA9IG51bGw7IG51bGwgIT09IGhhc1JlbmRlcmVkQVRhaWxGYWxsYmFjazsgKVxuICAgICAgICAgICAgICBudWxsICE9PSBoYXNSZW5kZXJlZEFUYWlsRmFsbGJhY2suYWx0ZXJuYXRlICYmXG4gICAgICAgICAgICAgICAgKGxhc3RUYWlsTm9kZSA9IGhhc1JlbmRlcmVkQVRhaWxGYWxsYmFjayksXG4gICAgICAgICAgICAgICAgKGhhc1JlbmRlcmVkQVRhaWxGYWxsYmFjayA9IGhhc1JlbmRlcmVkQVRhaWxGYWxsYmFjay5zaWJsaW5nKTtcbiAgICAgICAgICAgIG51bGwgPT09IGxhc3RUYWlsTm9kZVxuICAgICAgICAgICAgICA/IChyZW5kZXJTdGF0ZS50YWlsID0gbnVsbClcbiAgICAgICAgICAgICAgOiAobGFzdFRhaWxOb2RlLnNpYmxpbmcgPSBudWxsKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIGNhc2UgXCJjb2xsYXBzZWRcIjpcbiAgICAgICAgICAgIGxhc3RUYWlsTm9kZSA9IHJlbmRlclN0YXRlLnRhaWw7XG4gICAgICAgICAgICBmb3IgKHZhciBfbGFzdFRhaWxOb2RlID0gbnVsbDsgbnVsbCAhPT0gbGFzdFRhaWxOb2RlOyApXG4gICAgICAgICAgICAgIG51bGwgIT09IGxhc3RUYWlsTm9kZS5hbHRlcm5hdGUgJiYgKF9sYXN0VGFpbE5vZGUgPSBsYXN0VGFpbE5vZGUpLFxuICAgICAgICAgICAgICAgIChsYXN0VGFpbE5vZGUgPSBsYXN0VGFpbE5vZGUuc2libGluZyk7XG4gICAgICAgICAgICBudWxsID09PSBfbGFzdFRhaWxOb2RlXG4gICAgICAgICAgICAgID8gaGFzUmVuZGVyZWRBVGFpbEZhbGxiYWNrIHx8IG51bGwgPT09IHJlbmRlclN0YXRlLnRhaWxcbiAgICAgICAgICAgICAgICA/IChyZW5kZXJTdGF0ZS50YWlsID0gbnVsbClcbiAgICAgICAgICAgICAgICA6IChyZW5kZXJTdGF0ZS50YWlsLnNpYmxpbmcgPSBudWxsKVxuICAgICAgICAgICAgICA6IChfbGFzdFRhaWxOb2RlLnNpYmxpbmcgPSBudWxsKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBmdW5jdGlvbiBidWJibGVQcm9wZXJ0aWVzKGNvbXBsZXRlZFdvcmspIHtcbiAgICAgIHZhciBkaWRCYWlsb3V0ID1cbiAgICAgICAgICBudWxsICE9PSBjb21wbGV0ZWRXb3JrLmFsdGVybmF0ZSAmJlxuICAgICAgICAgIGNvbXBsZXRlZFdvcmsuYWx0ZXJuYXRlLmNoaWxkID09PSBjb21wbGV0ZWRXb3JrLmNoaWxkLFxuICAgICAgICBuZXdDaGlsZExhbmVzID0gMCxcbiAgICAgICAgc3VidHJlZUZsYWdzID0gMDtcbiAgICAgIGlmIChkaWRCYWlsb3V0KVxuICAgICAgICBpZiAoKGNvbXBsZXRlZFdvcmsubW9kZSAmIFByb2ZpbGVNb2RlKSAhPT0gTm9Nb2RlKSB7XG4gICAgICAgICAgZm9yIChcbiAgICAgICAgICAgIHZhciBfdHJlZUJhc2VEdXJhdGlvbiA9IGNvbXBsZXRlZFdvcmsuc2VsZkJhc2VEdXJhdGlvbixcbiAgICAgICAgICAgICAgX2NoaWxkMiA9IGNvbXBsZXRlZFdvcmsuY2hpbGQ7XG4gICAgICAgICAgICBudWxsICE9PSBfY2hpbGQyO1xuXG4gICAgICAgICAgKVxuICAgICAgICAgICAgKG5ld0NoaWxkTGFuZXMgfD0gX2NoaWxkMi5sYW5lcyB8IF9jaGlsZDIuY2hpbGRMYW5lcyksXG4gICAgICAgICAgICAgIChzdWJ0cmVlRmxhZ3MgfD0gX2NoaWxkMi5zdWJ0cmVlRmxhZ3MgJiA2NTAxMTcxMiksXG4gICAgICAgICAgICAgIChzdWJ0cmVlRmxhZ3MgfD0gX2NoaWxkMi5mbGFncyAmIDY1MDExNzEyKSxcbiAgICAgICAgICAgICAgKF90cmVlQmFzZUR1cmF0aW9uICs9IF9jaGlsZDIudHJlZUJhc2VEdXJhdGlvbiksXG4gICAgICAgICAgICAgIChfY2hpbGQyID0gX2NoaWxkMi5zaWJsaW5nKTtcbiAgICAgICAgICBjb21wbGV0ZWRXb3JrLnRyZWVCYXNlRHVyYXRpb24gPSBfdHJlZUJhc2VEdXJhdGlvbjtcbiAgICAgICAgfSBlbHNlXG4gICAgICAgICAgZm9yIChcbiAgICAgICAgICAgIF90cmVlQmFzZUR1cmF0aW9uID0gY29tcGxldGVkV29yay5jaGlsZDtcbiAgICAgICAgICAgIG51bGwgIT09IF90cmVlQmFzZUR1cmF0aW9uO1xuXG4gICAgICAgICAgKVxuICAgICAgICAgICAgKG5ld0NoaWxkTGFuZXMgfD1cbiAgICAgICAgICAgICAgX3RyZWVCYXNlRHVyYXRpb24ubGFuZXMgfCBfdHJlZUJhc2VEdXJhdGlvbi5jaGlsZExhbmVzKSxcbiAgICAgICAgICAgICAgKHN1YnRyZWVGbGFncyB8PSBfdHJlZUJhc2VEdXJhdGlvbi5zdWJ0cmVlRmxhZ3MgJiA2NTAxMTcxMiksXG4gICAgICAgICAgICAgIChzdWJ0cmVlRmxhZ3MgfD0gX3RyZWVCYXNlRHVyYXRpb24uZmxhZ3MgJiA2NTAxMTcxMiksXG4gICAgICAgICAgICAgIChfdHJlZUJhc2VEdXJhdGlvbi5yZXR1cm4gPSBjb21wbGV0ZWRXb3JrKSxcbiAgICAgICAgICAgICAgKF90cmVlQmFzZUR1cmF0aW9uID0gX3RyZWVCYXNlRHVyYXRpb24uc2libGluZyk7XG4gICAgICBlbHNlIGlmICgoY29tcGxldGVkV29yay5tb2RlICYgUHJvZmlsZU1vZGUpICE9PSBOb01vZGUpIHtcbiAgICAgICAgX3RyZWVCYXNlRHVyYXRpb24gPSBjb21wbGV0ZWRXb3JrLmFjdHVhbER1cmF0aW9uO1xuICAgICAgICBfY2hpbGQyID0gY29tcGxldGVkV29yay5zZWxmQmFzZUR1cmF0aW9uO1xuICAgICAgICBmb3IgKHZhciBjaGlsZCA9IGNvbXBsZXRlZFdvcmsuY2hpbGQ7IG51bGwgIT09IGNoaWxkOyApXG4gICAgICAgICAgKG5ld0NoaWxkTGFuZXMgfD0gY2hpbGQubGFuZXMgfCBjaGlsZC5jaGlsZExhbmVzKSxcbiAgICAgICAgICAgIChzdWJ0cmVlRmxhZ3MgfD0gY2hpbGQuc3VidHJlZUZsYWdzKSxcbiAgICAgICAgICAgIChzdWJ0cmVlRmxhZ3MgfD0gY2hpbGQuZmxhZ3MpLFxuICAgICAgICAgICAgKF90cmVlQmFzZUR1cmF0aW9uICs9IGNoaWxkLmFjdHVhbER1cmF0aW9uKSxcbiAgICAgICAgICAgIChfY2hpbGQyICs9IGNoaWxkLnRyZWVCYXNlRHVyYXRpb24pLFxuICAgICAgICAgICAgKGNoaWxkID0gY2hpbGQuc2libGluZyk7XG4gICAgICAgIGNvbXBsZXRlZFdvcmsuYWN0dWFsRHVyYXRpb24gPSBfdHJlZUJhc2VEdXJhdGlvbjtcbiAgICAgICAgY29tcGxldGVkV29yay50cmVlQmFzZUR1cmF0aW9uID0gX2NoaWxkMjtcbiAgICAgIH0gZWxzZVxuICAgICAgICBmb3IgKFxuICAgICAgICAgIF90cmVlQmFzZUR1cmF0aW9uID0gY29tcGxldGVkV29yay5jaGlsZDtcbiAgICAgICAgICBudWxsICE9PSBfdHJlZUJhc2VEdXJhdGlvbjtcblxuICAgICAgICApXG4gICAgICAgICAgKG5ld0NoaWxkTGFuZXMgfD1cbiAgICAgICAgICAgIF90cmVlQmFzZUR1cmF0aW9uLmxhbmVzIHwgX3RyZWVCYXNlRHVyYXRpb24uY2hpbGRMYW5lcyksXG4gICAgICAgICAgICAoc3VidHJlZUZsYWdzIHw9IF90cmVlQmFzZUR1cmF0aW9uLnN1YnRyZWVGbGFncyksXG4gICAgICAgICAgICAoc3VidHJlZUZsYWdzIHw9IF90cmVlQmFzZUR1cmF0aW9uLmZsYWdzKSxcbiAgICAgICAgICAgIChfdHJlZUJhc2VEdXJhdGlvbi5yZXR1cm4gPSBjb21wbGV0ZWRXb3JrKSxcbiAgICAgICAgICAgIChfdHJlZUJhc2VEdXJhdGlvbiA9IF90cmVlQmFzZUR1cmF0aW9uLnNpYmxpbmcpO1xuICAgICAgY29tcGxldGVkV29yay5zdWJ0cmVlRmxhZ3MgfD0gc3VidHJlZUZsYWdzO1xuICAgICAgY29tcGxldGVkV29yay5jaGlsZExhbmVzID0gbmV3Q2hpbGRMYW5lcztcbiAgICAgIHJldHVybiBkaWRCYWlsb3V0O1xuICAgIH1cbiAgICBmdW5jdGlvbiBjb21wbGV0ZVdvcmsoY3VycmVudCwgd29ya0luUHJvZ3Jlc3MsIHJlbmRlckxhbmVzKSB7XG4gICAgICB2YXIgbmV3UHJvcHMgPSB3b3JrSW5Qcm9ncmVzcy5wZW5kaW5nUHJvcHM7XG4gICAgICBwb3BUcmVlQ29udGV4dCh3b3JrSW5Qcm9ncmVzcyk7XG4gICAgICBzd2l0Y2ggKHdvcmtJblByb2dyZXNzLnRhZykge1xuICAgICAgICBjYXNlIDMxOlxuICAgICAgICBjYXNlIDE2OlxuICAgICAgICBjYXNlIDE1OlxuICAgICAgICBjYXNlIDA6XG4gICAgICAgIGNhc2UgMTE6XG4gICAgICAgIGNhc2UgNzpcbiAgICAgICAgY2FzZSA4OlxuICAgICAgICBjYXNlIDEyOlxuICAgICAgICBjYXNlIDk6XG4gICAgICAgIGNhc2UgMTQ6XG4gICAgICAgICAgcmV0dXJuIGJ1YmJsZVByb3BlcnRpZXMod29ya0luUHJvZ3Jlc3MpLCBudWxsO1xuICAgICAgICBjYXNlIDE6XG4gICAgICAgICAgcmV0dXJuIGJ1YmJsZVByb3BlcnRpZXMod29ya0luUHJvZ3Jlc3MpLCBudWxsO1xuICAgICAgICBjYXNlIDM6XG4gICAgICAgICAgcmVuZGVyTGFuZXMgPSB3b3JrSW5Qcm9ncmVzcy5zdGF0ZU5vZGU7XG4gICAgICAgICAgbmV3UHJvcHMgPSBudWxsO1xuICAgICAgICAgIG51bGwgIT09IGN1cnJlbnQgJiYgKG5ld1Byb3BzID0gY3VycmVudC5tZW1vaXplZFN0YXRlLmNhY2hlKTtcbiAgICAgICAgICB3b3JrSW5Qcm9ncmVzcy5tZW1vaXplZFN0YXRlLmNhY2hlICE9PSBuZXdQcm9wcyAmJlxuICAgICAgICAgICAgKHdvcmtJblByb2dyZXNzLmZsYWdzIHw9IDIwNDgpO1xuICAgICAgICAgIHBvcFByb3ZpZGVyKENhY2hlQ29udGV4dCwgd29ya0luUHJvZ3Jlc3MpO1xuICAgICAgICAgIHBvcEhvc3RDb250YWluZXIod29ya0luUHJvZ3Jlc3MpO1xuICAgICAgICAgIHJlbmRlckxhbmVzLnBlbmRpbmdDb250ZXh0ICYmXG4gICAgICAgICAgICAoKHJlbmRlckxhbmVzLmNvbnRleHQgPSByZW5kZXJMYW5lcy5wZW5kaW5nQ29udGV4dCksXG4gICAgICAgICAgICAocmVuZGVyTGFuZXMucGVuZGluZ0NvbnRleHQgPSBudWxsKSk7XG4gICAgICAgICAgaWYgKG51bGwgPT09IGN1cnJlbnQgfHwgbnVsbCA9PT0gY3VycmVudC5jaGlsZClcbiAgICAgICAgICAgIHBvcEh5ZHJhdGlvblN0YXRlKHdvcmtJblByb2dyZXNzKVxuICAgICAgICAgICAgICA/IChlbWl0UGVuZGluZ0h5ZHJhdGlvbldhcm5pbmdzKCksIG1hcmtVcGRhdGUod29ya0luUHJvZ3Jlc3MpKVxuICAgICAgICAgICAgICA6IG51bGwgPT09IGN1cnJlbnQgfHxcbiAgICAgICAgICAgICAgICAoY3VycmVudC5tZW1vaXplZFN0YXRlLmlzRGVoeWRyYXRlZCAmJlxuICAgICAgICAgICAgICAgICAgMCA9PT0gKHdvcmtJblByb2dyZXNzLmZsYWdzICYgMjU2KSkgfHxcbiAgICAgICAgICAgICAgICAoKHdvcmtJblByb2dyZXNzLmZsYWdzIHw9IDEwMjQpLFxuICAgICAgICAgICAgICAgIHVwZ3JhZGVIeWRyYXRpb25FcnJvcnNUb1JlY292ZXJhYmxlKCkpO1xuICAgICAgICAgIGJ1YmJsZVByb3BlcnRpZXMod29ya0luUHJvZ3Jlc3MpO1xuICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICBjYXNlIDI2OlxuICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAocmVuZGVyTGFuZXMgPSB3b3JrSW5Qcm9ncmVzcy5tZW1vaXplZFN0YXRlKSxcbiAgICAgICAgICAgIG51bGwgPT09IGN1cnJlbnRcbiAgICAgICAgICAgICAgPyAobWFya1VwZGF0ZSh3b3JrSW5Qcm9ncmVzcyksXG4gICAgICAgICAgICAgICAgbnVsbCAhPT0gcmVuZGVyTGFuZXNcbiAgICAgICAgICAgICAgICAgID8gKGJ1YmJsZVByb3BlcnRpZXMod29ya0luUHJvZ3Jlc3MpLFxuICAgICAgICAgICAgICAgICAgICBwcmVsb2FkUmVzb3VyY2VBbmRTdXNwZW5kSWZOZWVkZWQoXG4gICAgICAgICAgICAgICAgICAgICAgd29ya0luUHJvZ3Jlc3MsXG4gICAgICAgICAgICAgICAgICAgICAgcmVuZGVyTGFuZXNcbiAgICAgICAgICAgICAgICAgICAgKSlcbiAgICAgICAgICAgICAgICAgIDogKGJ1YmJsZVByb3BlcnRpZXMod29ya0luUHJvZ3Jlc3MpLFxuICAgICAgICAgICAgICAgICAgICAod29ya0luUHJvZ3Jlc3MuZmxhZ3MgJj0gLTE2Nzc3MjE3KSkpXG4gICAgICAgICAgICAgIDogcmVuZGVyTGFuZXNcbiAgICAgICAgICAgICAgICA/IHJlbmRlckxhbmVzICE9PSBjdXJyZW50Lm1lbW9pemVkU3RhdGVcbiAgICAgICAgICAgICAgICAgID8gKG1hcmtVcGRhdGUod29ya0luUHJvZ3Jlc3MpLFxuICAgICAgICAgICAgICAgICAgICBidWJibGVQcm9wZXJ0aWVzKHdvcmtJblByb2dyZXNzKSxcbiAgICAgICAgICAgICAgICAgICAgcHJlbG9hZFJlc291cmNlQW5kU3VzcGVuZElmTmVlZGVkKFxuICAgICAgICAgICAgICAgICAgICAgIHdvcmtJblByb2dyZXNzLFxuICAgICAgICAgICAgICAgICAgICAgIHJlbmRlckxhbmVzXG4gICAgICAgICAgICAgICAgICAgICkpXG4gICAgICAgICAgICAgICAgICA6IChidWJibGVQcm9wZXJ0aWVzKHdvcmtJblByb2dyZXNzKSxcbiAgICAgICAgICAgICAgICAgICAgKHdvcmtJblByb2dyZXNzLmZsYWdzICY9IC0xNjc3NzIxNykpXG4gICAgICAgICAgICAgICAgOiAoY3VycmVudC5tZW1vaXplZFByb3BzICE9PSBuZXdQcm9wcyAmJlxuICAgICAgICAgICAgICAgICAgICBtYXJrVXBkYXRlKHdvcmtJblByb2dyZXNzKSxcbiAgICAgICAgICAgICAgICAgIGJ1YmJsZVByb3BlcnRpZXMod29ya0luUHJvZ3Jlc3MpLFxuICAgICAgICAgICAgICAgICAgKHdvcmtJblByb2dyZXNzLmZsYWdzICY9IC0xNjc3NzIxNykpLFxuICAgICAgICAgICAgbnVsbFxuICAgICAgICAgICk7XG4gICAgICAgIGNhc2UgMjc6XG4gICAgICAgICAgcG9wSG9zdENvbnRleHQod29ya0luUHJvZ3Jlc3MpO1xuICAgICAgICAgIHJlbmRlckxhbmVzID0gcmVxdWlyZWRDb250ZXh0KHJvb3RJbnN0YW5jZVN0YWNrQ3Vyc29yLmN1cnJlbnQpO1xuICAgICAgICAgIHZhciBfdHlwZSA9IHdvcmtJblByb2dyZXNzLnR5cGU7XG4gICAgICAgICAgaWYgKG51bGwgIT09IGN1cnJlbnQgJiYgbnVsbCAhPSB3b3JrSW5Qcm9ncmVzcy5zdGF0ZU5vZGUpXG4gICAgICAgICAgICBjdXJyZW50Lm1lbW9pemVkUHJvcHMgIT09IG5ld1Byb3BzICYmIG1hcmtVcGRhdGUod29ya0luUHJvZ3Jlc3MpO1xuICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgaWYgKCFuZXdQcm9wcykge1xuICAgICAgICAgICAgICBpZiAobnVsbCA9PT0gd29ya0luUHJvZ3Jlc3Muc3RhdGVOb2RlKVxuICAgICAgICAgICAgICAgIHRocm93IEVycm9yKFxuICAgICAgICAgICAgICAgICAgXCJXZSBtdXN0IGhhdmUgbmV3IHByb3BzIGZvciBuZXcgbW91bnRzLiBUaGlzIGVycm9yIGlzIGxpa2VseSBjYXVzZWQgYnkgYSBidWcgaW4gUmVhY3QuIFBsZWFzZSBmaWxlIGFuIGlzc3VlLlwiXG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgYnViYmxlUHJvcGVydGllcyh3b3JrSW5Qcm9ncmVzcyk7XG4gICAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY3VycmVudCA9IGdldEhvc3RDb250ZXh0KCk7XG4gICAgICAgICAgICBwb3BIeWRyYXRpb25TdGF0ZSh3b3JrSW5Qcm9ncmVzcylcbiAgICAgICAgICAgICAgPyBwcmVwYXJlVG9IeWRyYXRlSG9zdEluc3RhbmNlKHdvcmtJblByb2dyZXNzLCBjdXJyZW50KVxuICAgICAgICAgICAgICA6ICgoY3VycmVudCA9IHJlc29sdmVTaW5nbGV0b25JbnN0YW5jZShcbiAgICAgICAgICAgICAgICAgIF90eXBlLFxuICAgICAgICAgICAgICAgICAgbmV3UHJvcHMsXG4gICAgICAgICAgICAgICAgICByZW5kZXJMYW5lcyxcbiAgICAgICAgICAgICAgICAgIGN1cnJlbnQsXG4gICAgICAgICAgICAgICAgICAhMFxuICAgICAgICAgICAgICAgICkpLFxuICAgICAgICAgICAgICAgICh3b3JrSW5Qcm9ncmVzcy5zdGF0ZU5vZGUgPSBjdXJyZW50KSxcbiAgICAgICAgICAgICAgICBtYXJrVXBkYXRlKHdvcmtJblByb2dyZXNzKSk7XG4gICAgICAgICAgfVxuICAgICAgICAgIGJ1YmJsZVByb3BlcnRpZXMod29ya0luUHJvZ3Jlc3MpO1xuICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICBjYXNlIDU6XG4gICAgICAgICAgcG9wSG9zdENvbnRleHQod29ya0luUHJvZ3Jlc3MpO1xuICAgICAgICAgIHJlbmRlckxhbmVzID0gd29ya0luUHJvZ3Jlc3MudHlwZTtcbiAgICAgICAgICBpZiAobnVsbCAhPT0gY3VycmVudCAmJiBudWxsICE9IHdvcmtJblByb2dyZXNzLnN0YXRlTm9kZSlcbiAgICAgICAgICAgIGN1cnJlbnQubWVtb2l6ZWRQcm9wcyAhPT0gbmV3UHJvcHMgJiYgbWFya1VwZGF0ZSh3b3JrSW5Qcm9ncmVzcyk7XG4gICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICBpZiAoIW5ld1Byb3BzKSB7XG4gICAgICAgICAgICAgIGlmIChudWxsID09PSB3b3JrSW5Qcm9ncmVzcy5zdGF0ZU5vZGUpXG4gICAgICAgICAgICAgICAgdGhyb3cgRXJyb3IoXG4gICAgICAgICAgICAgICAgICBcIldlIG11c3QgaGF2ZSBuZXcgcHJvcHMgZm9yIG5ldyBtb3VudHMuIFRoaXMgZXJyb3IgaXMgbGlrZWx5IGNhdXNlZCBieSBhIGJ1ZyBpbiBSZWFjdC4gUGxlYXNlIGZpbGUgYW4gaXNzdWUuXCJcbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICBidWJibGVQcm9wZXJ0aWVzKHdvcmtJblByb2dyZXNzKTtcbiAgICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBfdHlwZSA9IGdldEhvc3RDb250ZXh0KCk7XG4gICAgICAgICAgICBpZiAocG9wSHlkcmF0aW9uU3RhdGUod29ya0luUHJvZ3Jlc3MpKVxuICAgICAgICAgICAgICBwcmVwYXJlVG9IeWRyYXRlSG9zdEluc3RhbmNlKHdvcmtJblByb2dyZXNzLCBfdHlwZSk7XG4gICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgY3VycmVudCA9IHJlcXVpcmVkQ29udGV4dChyb290SW5zdGFuY2VTdGFja0N1cnNvci5jdXJyZW50KTtcbiAgICAgICAgICAgICAgdmFsaWRhdGVET01OZXN0aW5nKHJlbmRlckxhbmVzLCBfdHlwZS5hbmNlc3RvckluZm8pO1xuICAgICAgICAgICAgICBfdHlwZSA9IF90eXBlLmNvbnRleHQ7XG4gICAgICAgICAgICAgIGN1cnJlbnQgPSBnZXRPd25lckRvY3VtZW50RnJvbVJvb3RDb250YWluZXIoY3VycmVudCk7XG4gICAgICAgICAgICAgIHN3aXRjaCAoX3R5cGUpIHtcbiAgICAgICAgICAgICAgICBjYXNlIEhvc3RDb250ZXh0TmFtZXNwYWNlU3ZnOlxuICAgICAgICAgICAgICAgICAgY3VycmVudCA9IGN1cnJlbnQuY3JlYXRlRWxlbWVudE5TKFNWR19OQU1FU1BBQ0UsIHJlbmRlckxhbmVzKTtcbiAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIGNhc2UgSG9zdENvbnRleHROYW1lc3BhY2VNYXRoOlxuICAgICAgICAgICAgICAgICAgY3VycmVudCA9IGN1cnJlbnQuY3JlYXRlRWxlbWVudE5TKFxuICAgICAgICAgICAgICAgICAgICBNQVRIX05BTUVTUEFDRSxcbiAgICAgICAgICAgICAgICAgICAgcmVuZGVyTGFuZXNcbiAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgICAgc3dpdGNoIChyZW5kZXJMYW5lcykge1xuICAgICAgICAgICAgICAgICAgICBjYXNlIFwic3ZnXCI6XG4gICAgICAgICAgICAgICAgICAgICAgY3VycmVudCA9IGN1cnJlbnQuY3JlYXRlRWxlbWVudE5TKFxuICAgICAgICAgICAgICAgICAgICAgICAgU1ZHX05BTUVTUEFDRSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlbmRlckxhbmVzXG4gICAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICAgICAgY2FzZSBcIm1hdGhcIjpcbiAgICAgICAgICAgICAgICAgICAgICBjdXJyZW50ID0gY3VycmVudC5jcmVhdGVFbGVtZW50TlMoXG4gICAgICAgICAgICAgICAgICAgICAgICBNQVRIX05BTUVTUEFDRSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlbmRlckxhbmVzXG4gICAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICAgICAgY2FzZSBcInNjcmlwdFwiOlxuICAgICAgICAgICAgICAgICAgICAgIGN1cnJlbnQgPSBjdXJyZW50LmNyZWF0ZUVsZW1lbnQoXCJkaXZcIik7XG4gICAgICAgICAgICAgICAgICAgICAgY3VycmVudC5pbm5lckhUTUwgPSBcIjxzY3JpcHQ+XFx4M2Mvc2NyaXB0PlwiO1xuICAgICAgICAgICAgICAgICAgICAgIGN1cnJlbnQgPSBjdXJyZW50LnJlbW92ZUNoaWxkKGN1cnJlbnQuZmlyc3RDaGlsZCk7XG4gICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgXCJzZWxlY3RcIjpcbiAgICAgICAgICAgICAgICAgICAgICBjdXJyZW50ID1cbiAgICAgICAgICAgICAgICAgICAgICAgIFwic3RyaW5nXCIgPT09IHR5cGVvZiBuZXdQcm9wcy5pc1xuICAgICAgICAgICAgICAgICAgICAgICAgICA/IGN1cnJlbnQuY3JlYXRlRWxlbWVudChcInNlbGVjdFwiLCB7IGlzOiBuZXdQcm9wcy5pcyB9KVxuICAgICAgICAgICAgICAgICAgICAgICAgICA6IGN1cnJlbnQuY3JlYXRlRWxlbWVudChcInNlbGVjdFwiKTtcbiAgICAgICAgICAgICAgICAgICAgICBuZXdQcm9wcy5tdWx0aXBsZVxuICAgICAgICAgICAgICAgICAgICAgICAgPyAoY3VycmVudC5tdWx0aXBsZSA9ICEwKVxuICAgICAgICAgICAgICAgICAgICAgICAgOiBuZXdQcm9wcy5zaXplICYmIChjdXJyZW50LnNpemUgPSBuZXdQcm9wcy5zaXplKTtcbiAgICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICAgICAgICAoY3VycmVudCA9XG4gICAgICAgICAgICAgICAgICAgICAgICBcInN0cmluZ1wiID09PSB0eXBlb2YgbmV3UHJvcHMuaXNcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPyBjdXJyZW50LmNyZWF0ZUVsZW1lbnQocmVuZGVyTGFuZXMsIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlzOiBuZXdQcm9wcy5pc1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDogY3VycmVudC5jcmVhdGVFbGVtZW50KHJlbmRlckxhbmVzKSksXG4gICAgICAgICAgICAgICAgICAgICAgICAtMSA9PT0gcmVuZGVyTGFuZXMuaW5kZXhPZihcIi1cIikgJiZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgKHJlbmRlckxhbmVzICE9PSByZW5kZXJMYW5lcy50b0xvd2VyQ2FzZSgpICYmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc29sZS5lcnJvcihcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiPCVzIC8+IGlzIHVzaW5nIGluY29ycmVjdCBjYXNpbmcuIFVzZSBQYXNjYWxDYXNlIGZvciBSZWFjdCBjb21wb25lbnRzLCBvciBsb3dlcmNhc2UgZm9yIEhUTUwgZWxlbWVudHMuXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZW5kZXJMYW5lc1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICksXG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiW29iamVjdCBIVE1MVW5rbm93bkVsZW1lbnRdXCIgIT09XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKGN1cnJlbnQpIHx8XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaGFzT3duUHJvcGVydHkuY2FsbChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdhcm5lZFVua25vd25UYWdzLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVuZGVyTGFuZXNcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICApIHx8XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKCh3YXJuZWRVbmtub3duVGFnc1tyZW5kZXJMYW5lc10gPSAhMCksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc29sZS5lcnJvcihcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiVGhlIHRhZyA8JXM+IGlzIHVucmVjb2duaXplZCBpbiB0aGlzIGJyb3dzZXIuIElmIHlvdSBtZWFudCB0byByZW5kZXIgYSBSZWFjdCBjb21wb25lbnQsIHN0YXJ0IGl0cyBuYW1lIHdpdGggYW4gdXBwZXJjYXNlIGxldHRlci5cIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlbmRlckxhbmVzXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKSkpO1xuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIGN1cnJlbnRbaW50ZXJuYWxJbnN0YW5jZUtleV0gPSB3b3JrSW5Qcm9ncmVzcztcbiAgICAgICAgICAgICAgY3VycmVudFtpbnRlcm5hbFByb3BzS2V5XSA9IG5ld1Byb3BzO1xuICAgICAgICAgICAgICBhOiBmb3IgKF90eXBlID0gd29ya0luUHJvZ3Jlc3MuY2hpbGQ7IG51bGwgIT09IF90eXBlOyApIHtcbiAgICAgICAgICAgICAgICBpZiAoNSA9PT0gX3R5cGUudGFnIHx8IDYgPT09IF90eXBlLnRhZylcbiAgICAgICAgICAgICAgICAgIGN1cnJlbnQuYXBwZW5kQ2hpbGQoX3R5cGUuc3RhdGVOb2RlKTtcbiAgICAgICAgICAgICAgICBlbHNlIGlmIChcbiAgICAgICAgICAgICAgICAgIDQgIT09IF90eXBlLnRhZyAmJlxuICAgICAgICAgICAgICAgICAgMjcgIT09IF90eXBlLnRhZyAmJlxuICAgICAgICAgICAgICAgICAgbnVsbCAhPT0gX3R5cGUuY2hpbGRcbiAgICAgICAgICAgICAgICApIHtcbiAgICAgICAgICAgICAgICAgIF90eXBlLmNoaWxkLnJldHVybiA9IF90eXBlO1xuICAgICAgICAgICAgICAgICAgX3R5cGUgPSBfdHlwZS5jaGlsZDtcbiAgICAgICAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBpZiAoX3R5cGUgPT09IHdvcmtJblByb2dyZXNzKSBicmVhayBhO1xuICAgICAgICAgICAgICAgIGZvciAoOyBudWxsID09PSBfdHlwZS5zaWJsaW5nOyApIHtcbiAgICAgICAgICAgICAgICAgIGlmIChudWxsID09PSBfdHlwZS5yZXR1cm4gfHwgX3R5cGUucmV0dXJuID09PSB3b3JrSW5Qcm9ncmVzcylcbiAgICAgICAgICAgICAgICAgICAgYnJlYWsgYTtcbiAgICAgICAgICAgICAgICAgIF90eXBlID0gX3R5cGUucmV0dXJuO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBfdHlwZS5zaWJsaW5nLnJldHVybiA9IF90eXBlLnJldHVybjtcbiAgICAgICAgICAgICAgICBfdHlwZSA9IF90eXBlLnNpYmxpbmc7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgd29ya0luUHJvZ3Jlc3Muc3RhdGVOb2RlID0gY3VycmVudDtcbiAgICAgICAgICAgICAgYTogc3dpdGNoIChcbiAgICAgICAgICAgICAgICAoc2V0SW5pdGlhbFByb3BlcnRpZXMoY3VycmVudCwgcmVuZGVyTGFuZXMsIG5ld1Byb3BzKSxcbiAgICAgICAgICAgICAgICByZW5kZXJMYW5lcylcbiAgICAgICAgICAgICAgKSB7XG4gICAgICAgICAgICAgICAgY2FzZSBcImJ1dHRvblwiOlxuICAgICAgICAgICAgICAgIGNhc2UgXCJpbnB1dFwiOlxuICAgICAgICAgICAgICAgIGNhc2UgXCJzZWxlY3RcIjpcbiAgICAgICAgICAgICAgICBjYXNlIFwidGV4dGFyZWFcIjpcbiAgICAgICAgICAgICAgICAgIGN1cnJlbnQgPSAhIW5ld1Byb3BzLmF1dG9Gb2N1cztcbiAgICAgICAgICAgICAgICAgIGJyZWFrIGE7XG4gICAgICAgICAgICAgICAgY2FzZSBcImltZ1wiOlxuICAgICAgICAgICAgICAgICAgY3VycmVudCA9ICEwO1xuICAgICAgICAgICAgICAgICAgYnJlYWsgYTtcbiAgICAgICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgICAgY3VycmVudCA9ICExO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIGN1cnJlbnQgJiYgbWFya1VwZGF0ZSh3b3JrSW5Qcm9ncmVzcyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICAgIGJ1YmJsZVByb3BlcnRpZXMod29ya0luUHJvZ3Jlc3MpO1xuICAgICAgICAgIHdvcmtJblByb2dyZXNzLmZsYWdzICY9IC0xNjc3NzIxNztcbiAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgY2FzZSA2OlxuICAgICAgICAgIGlmIChjdXJyZW50ICYmIG51bGwgIT0gd29ya0luUHJvZ3Jlc3Muc3RhdGVOb2RlKVxuICAgICAgICAgICAgY3VycmVudC5tZW1vaXplZFByb3BzICE9PSBuZXdQcm9wcyAmJiBtYXJrVXBkYXRlKHdvcmtJblByb2dyZXNzKTtcbiAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIGlmIChcbiAgICAgICAgICAgICAgXCJzdHJpbmdcIiAhPT0gdHlwZW9mIG5ld1Byb3BzICYmXG4gICAgICAgICAgICAgIG51bGwgPT09IHdvcmtJblByb2dyZXNzLnN0YXRlTm9kZVxuICAgICAgICAgICAgKVxuICAgICAgICAgICAgICB0aHJvdyBFcnJvcihcbiAgICAgICAgICAgICAgICBcIldlIG11c3QgaGF2ZSBuZXcgcHJvcHMgZm9yIG5ldyBtb3VudHMuIFRoaXMgZXJyb3IgaXMgbGlrZWx5IGNhdXNlZCBieSBhIGJ1ZyBpbiBSZWFjdC4gUGxlYXNlIGZpbGUgYW4gaXNzdWUuXCJcbiAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIGN1cnJlbnQgPSByZXF1aXJlZENvbnRleHQocm9vdEluc3RhbmNlU3RhY2tDdXJzb3IuY3VycmVudCk7XG4gICAgICAgICAgICByZW5kZXJMYW5lcyA9IGdldEhvc3RDb250ZXh0KCk7XG4gICAgICAgICAgICBpZiAocG9wSHlkcmF0aW9uU3RhdGUod29ya0luUHJvZ3Jlc3MpKSB7XG4gICAgICAgICAgICAgIGN1cnJlbnQgPSB3b3JrSW5Qcm9ncmVzcy5zdGF0ZU5vZGU7XG4gICAgICAgICAgICAgIHJlbmRlckxhbmVzID0gd29ya0luUHJvZ3Jlc3MubWVtb2l6ZWRQcm9wcztcbiAgICAgICAgICAgICAgX3R5cGUgPSAhZGlkU3VzcGVuZE9yRXJyb3JERVY7XG4gICAgICAgICAgICAgIG5ld1Byb3BzID0gbnVsbDtcbiAgICAgICAgICAgICAgdmFyIHJldHVybkZpYmVyID0gaHlkcmF0aW9uUGFyZW50RmliZXI7XG4gICAgICAgICAgICAgIGlmIChudWxsICE9PSByZXR1cm5GaWJlcilcbiAgICAgICAgICAgICAgICBzd2l0Y2ggKHJldHVybkZpYmVyLnRhZykge1xuICAgICAgICAgICAgICAgICAgY2FzZSAzOlxuICAgICAgICAgICAgICAgICAgICBfdHlwZSAmJlxuICAgICAgICAgICAgICAgICAgICAgICgoX3R5cGUgPSBkaWZmSHlkcmF0ZWRUZXh0Rm9yRGV2V2FybmluZ3MoXG4gICAgICAgICAgICAgICAgICAgICAgICBjdXJyZW50LFxuICAgICAgICAgICAgICAgICAgICAgICAgcmVuZGVyTGFuZXMsXG4gICAgICAgICAgICAgICAgICAgICAgICBuZXdQcm9wc1xuICAgICAgICAgICAgICAgICAgICAgICkpLFxuICAgICAgICAgICAgICAgICAgICAgIG51bGwgIT09IF90eXBlICYmXG4gICAgICAgICAgICAgICAgICAgICAgICAoYnVpbGRIeWRyYXRpb25EaWZmTm9kZSh3b3JrSW5Qcm9ncmVzcywgMCkuc2VydmVyUHJvcHMgPVxuICAgICAgICAgICAgICAgICAgICAgICAgICBfdHlwZSkpO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICAgIGNhc2UgMjc6XG4gICAgICAgICAgICAgICAgICBjYXNlIDU6XG4gICAgICAgICAgICAgICAgICAgIChuZXdQcm9wcyA9IHJldHVybkZpYmVyLm1lbW9pemVkUHJvcHMpLFxuICAgICAgICAgICAgICAgICAgICAgIF90eXBlICYmXG4gICAgICAgICAgICAgICAgICAgICAgICAoKF90eXBlID0gZGlmZkh5ZHJhdGVkVGV4dEZvckRldldhcm5pbmdzKFxuICAgICAgICAgICAgICAgICAgICAgICAgICBjdXJyZW50LFxuICAgICAgICAgICAgICAgICAgICAgICAgICByZW5kZXJMYW5lcyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3UHJvcHNcbiAgICAgICAgICAgICAgICAgICAgICAgICkpLFxuICAgICAgICAgICAgICAgICAgICAgICAgbnVsbCAhPT0gX3R5cGUgJiZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgKGJ1aWxkSHlkcmF0aW9uRGlmZk5vZGUoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgd29ya0luUHJvZ3Jlc3MsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgMFxuICAgICAgICAgICAgICAgICAgICAgICAgICApLnNlcnZlclByb3BzID0gX3R5cGUpKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIGN1cnJlbnRbaW50ZXJuYWxJbnN0YW5jZUtleV0gPSB3b3JrSW5Qcm9ncmVzcztcbiAgICAgICAgICAgICAgY3VycmVudCA9XG4gICAgICAgICAgICAgICAgY3VycmVudC5ub2RlVmFsdWUgPT09IHJlbmRlckxhbmVzIHx8XG4gICAgICAgICAgICAgICAgKG51bGwgIT09IG5ld1Byb3BzICYmXG4gICAgICAgICAgICAgICAgICAhMCA9PT0gbmV3UHJvcHMuc3VwcHJlc3NIeWRyYXRpb25XYXJuaW5nKSB8fFxuICAgICAgICAgICAgICAgIGNoZWNrRm9yVW5tYXRjaGVkVGV4dChjdXJyZW50Lm5vZGVWYWx1ZSwgcmVuZGVyTGFuZXMpXG4gICAgICAgICAgICAgICAgICA/ICEwXG4gICAgICAgICAgICAgICAgICA6ICExO1xuICAgICAgICAgICAgICBjdXJyZW50IHx8IHRocm93T25IeWRyYXRpb25NaXNtYXRjaCh3b3JrSW5Qcm9ncmVzcyk7XG4gICAgICAgICAgICB9IGVsc2VcbiAgICAgICAgICAgICAgKF90eXBlID0gcmVuZGVyTGFuZXMuYW5jZXN0b3JJbmZvLmN1cnJlbnQpLFxuICAgICAgICAgICAgICAgIG51bGwgIT0gX3R5cGUgJiZcbiAgICAgICAgICAgICAgICAgIHZhbGlkYXRlVGV4dE5lc3RpbmcoXG4gICAgICAgICAgICAgICAgICAgIG5ld1Byb3BzLFxuICAgICAgICAgICAgICAgICAgICBfdHlwZS50YWcsXG4gICAgICAgICAgICAgICAgICAgIHJlbmRlckxhbmVzLmFuY2VzdG9ySW5mby5pbXBsaWNpdFJvb3RTY29wZVxuICAgICAgICAgICAgICAgICAgKSxcbiAgICAgICAgICAgICAgICAoY3VycmVudCA9XG4gICAgICAgICAgICAgICAgICBnZXRPd25lckRvY3VtZW50RnJvbVJvb3RDb250YWluZXIoY3VycmVudCkuY3JlYXRlVGV4dE5vZGUoXG4gICAgICAgICAgICAgICAgICAgIG5ld1Byb3BzXG4gICAgICAgICAgICAgICAgICApKSxcbiAgICAgICAgICAgICAgICAoY3VycmVudFtpbnRlcm5hbEluc3RhbmNlS2V5XSA9IHdvcmtJblByb2dyZXNzKSxcbiAgICAgICAgICAgICAgICAod29ya0luUHJvZ3Jlc3Muc3RhdGVOb2RlID0gY3VycmVudCk7XG4gICAgICAgICAgfVxuICAgICAgICAgIGJ1YmJsZVByb3BlcnRpZXMod29ya0luUHJvZ3Jlc3MpO1xuICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICBjYXNlIDEzOlxuICAgICAgICAgIG5ld1Byb3BzID0gd29ya0luUHJvZ3Jlc3MubWVtb2l6ZWRTdGF0ZTtcbiAgICAgICAgICBpZiAoXG4gICAgICAgICAgICBudWxsID09PSBjdXJyZW50IHx8XG4gICAgICAgICAgICAobnVsbCAhPT0gY3VycmVudC5tZW1vaXplZFN0YXRlICYmXG4gICAgICAgICAgICAgIG51bGwgIT09IGN1cnJlbnQubWVtb2l6ZWRTdGF0ZS5kZWh5ZHJhdGVkKVxuICAgICAgICAgICkge1xuICAgICAgICAgICAgX3R5cGUgPSBwb3BIeWRyYXRpb25TdGF0ZSh3b3JrSW5Qcm9ncmVzcyk7XG4gICAgICAgICAgICBpZiAobnVsbCAhPT0gbmV3UHJvcHMgJiYgbnVsbCAhPT0gbmV3UHJvcHMuZGVoeWRyYXRlZCkge1xuICAgICAgICAgICAgICBpZiAobnVsbCA9PT0gY3VycmVudCkge1xuICAgICAgICAgICAgICAgIGlmICghX3R5cGUpXG4gICAgICAgICAgICAgICAgICB0aHJvdyBFcnJvcihcbiAgICAgICAgICAgICAgICAgICAgXCJBIGRlaHlkcmF0ZWQgc3VzcGVuc2UgY29tcG9uZW50IHdhcyBjb21wbGV0ZWQgd2l0aG91dCBhIGh5ZHJhdGVkIG5vZGUuIFRoaXMgaXMgcHJvYmFibHkgYSBidWcgaW4gUmVhY3QuXCJcbiAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgX3R5cGUgPSB3b3JrSW5Qcm9ncmVzcy5tZW1vaXplZFN0YXRlO1xuICAgICAgICAgICAgICAgIF90eXBlID0gbnVsbCAhPT0gX3R5cGUgPyBfdHlwZS5kZWh5ZHJhdGVkIDogbnVsbDtcbiAgICAgICAgICAgICAgICBpZiAoIV90eXBlKVxuICAgICAgICAgICAgICAgICAgdGhyb3cgRXJyb3IoXG4gICAgICAgICAgICAgICAgICAgIFwiRXhwZWN0ZWQgdG8gaGF2ZSBhIGh5ZHJhdGVkIHN1c3BlbnNlIGluc3RhbmNlLiBUaGlzIGVycm9yIGlzIGxpa2VseSBjYXVzZWQgYnkgYSBidWcgaW4gUmVhY3QuIFBsZWFzZSBmaWxlIGFuIGlzc3VlLlwiXG4gICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgIF90eXBlW2ludGVybmFsSW5zdGFuY2VLZXldID0gd29ya0luUHJvZ3Jlc3M7XG4gICAgICAgICAgICAgICAgYnViYmxlUHJvcGVydGllcyh3b3JrSW5Qcm9ncmVzcyk7XG4gICAgICAgICAgICAgICAgKHdvcmtJblByb2dyZXNzLm1vZGUgJiBQcm9maWxlTW9kZSkgIT09IE5vTW9kZSAmJlxuICAgICAgICAgICAgICAgICAgbnVsbCAhPT0gbmV3UHJvcHMgJiZcbiAgICAgICAgICAgICAgICAgICgoX3R5cGUgPSB3b3JrSW5Qcm9ncmVzcy5jaGlsZCksXG4gICAgICAgICAgICAgICAgICBudWxsICE9PSBfdHlwZSAmJlxuICAgICAgICAgICAgICAgICAgICAod29ya0luUHJvZ3Jlc3MudHJlZUJhc2VEdXJhdGlvbiAtPVxuICAgICAgICAgICAgICAgICAgICAgIF90eXBlLnRyZWVCYXNlRHVyYXRpb24pKTtcbiAgICAgICAgICAgICAgfSBlbHNlXG4gICAgICAgICAgICAgICAgZW1pdFBlbmRpbmdIeWRyYXRpb25XYXJuaW5ncygpLFxuICAgICAgICAgICAgICAgICAgcmVzZXRIeWRyYXRpb25TdGF0ZSgpLFxuICAgICAgICAgICAgICAgICAgMCA9PT0gKHdvcmtJblByb2dyZXNzLmZsYWdzICYgMTI4KSAmJlxuICAgICAgICAgICAgICAgICAgICAod29ya0luUHJvZ3Jlc3MubWVtb2l6ZWRTdGF0ZSA9IG51bGwpLFxuICAgICAgICAgICAgICAgICAgKHdvcmtJblByb2dyZXNzLmZsYWdzIHw9IDQpLFxuICAgICAgICAgICAgICAgICAgYnViYmxlUHJvcGVydGllcyh3b3JrSW5Qcm9ncmVzcyksXG4gICAgICAgICAgICAgICAgICAod29ya0luUHJvZ3Jlc3MubW9kZSAmIFByb2ZpbGVNb2RlKSAhPT0gTm9Nb2RlICYmXG4gICAgICAgICAgICAgICAgICAgIG51bGwgIT09IG5ld1Byb3BzICYmXG4gICAgICAgICAgICAgICAgICAgICgoX3R5cGUgPSB3b3JrSW5Qcm9ncmVzcy5jaGlsZCksXG4gICAgICAgICAgICAgICAgICAgIG51bGwgIT09IF90eXBlICYmXG4gICAgICAgICAgICAgICAgICAgICAgKHdvcmtJblByb2dyZXNzLnRyZWVCYXNlRHVyYXRpb24gLT1cbiAgICAgICAgICAgICAgICAgICAgICAgIF90eXBlLnRyZWVCYXNlRHVyYXRpb24pKTtcbiAgICAgICAgICAgICAgX3R5cGUgPSAhMTtcbiAgICAgICAgICAgIH0gZWxzZVxuICAgICAgICAgICAgICAoX3R5cGUgPSB1cGdyYWRlSHlkcmF0aW9uRXJyb3JzVG9SZWNvdmVyYWJsZSgpKSxcbiAgICAgICAgICAgICAgICBudWxsICE9PSBjdXJyZW50ICYmXG4gICAgICAgICAgICAgICAgICBudWxsICE9PSBjdXJyZW50Lm1lbW9pemVkU3RhdGUgJiZcbiAgICAgICAgICAgICAgICAgIChjdXJyZW50Lm1lbW9pemVkU3RhdGUuaHlkcmF0aW9uRXJyb3JzID0gX3R5cGUpLFxuICAgICAgICAgICAgICAgIChfdHlwZSA9ICEwKTtcbiAgICAgICAgICAgIGlmICghX3R5cGUpIHtcbiAgICAgICAgICAgICAgaWYgKHdvcmtJblByb2dyZXNzLmZsYWdzICYgMjU2KVxuICAgICAgICAgICAgICAgIHJldHVybiBwb3BTdXNwZW5zZUhhbmRsZXIod29ya0luUHJvZ3Jlc3MpLCB3b3JrSW5Qcm9ncmVzcztcbiAgICAgICAgICAgICAgcG9wU3VzcGVuc2VIYW5kbGVyKHdvcmtJblByb2dyZXNzKTtcbiAgICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICAgIHBvcFN1c3BlbnNlSGFuZGxlcih3b3JrSW5Qcm9ncmVzcyk7XG4gICAgICAgICAgaWYgKDAgIT09ICh3b3JrSW5Qcm9ncmVzcy5mbGFncyAmIDEyOCkpXG4gICAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgICAod29ya0luUHJvZ3Jlc3MubGFuZXMgPSByZW5kZXJMYW5lcyksXG4gICAgICAgICAgICAgICh3b3JrSW5Qcm9ncmVzcy5tb2RlICYgUHJvZmlsZU1vZGUpICE9PSBOb01vZGUgJiZcbiAgICAgICAgICAgICAgICB0cmFuc2ZlckFjdHVhbER1cmF0aW9uKHdvcmtJblByb2dyZXNzKSxcbiAgICAgICAgICAgICAgd29ya0luUHJvZ3Jlc3NcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgcmVuZGVyTGFuZXMgPSBudWxsICE9PSBuZXdQcm9wcztcbiAgICAgICAgICBjdXJyZW50ID0gbnVsbCAhPT0gY3VycmVudCAmJiBudWxsICE9PSBjdXJyZW50Lm1lbW9pemVkU3RhdGU7XG4gICAgICAgICAgcmVuZGVyTGFuZXMgJiZcbiAgICAgICAgICAgICgobmV3UHJvcHMgPSB3b3JrSW5Qcm9ncmVzcy5jaGlsZCksXG4gICAgICAgICAgICAoX3R5cGUgPSBudWxsKSxcbiAgICAgICAgICAgIG51bGwgIT09IG5ld1Byb3BzLmFsdGVybmF0ZSAmJlxuICAgICAgICAgICAgICBudWxsICE9PSBuZXdQcm9wcy5hbHRlcm5hdGUubWVtb2l6ZWRTdGF0ZSAmJlxuICAgICAgICAgICAgICBudWxsICE9PSBuZXdQcm9wcy5hbHRlcm5hdGUubWVtb2l6ZWRTdGF0ZS5jYWNoZVBvb2wgJiZcbiAgICAgICAgICAgICAgKF90eXBlID0gbmV3UHJvcHMuYWx0ZXJuYXRlLm1lbW9pemVkU3RhdGUuY2FjaGVQb29sLnBvb2wpLFxuICAgICAgICAgICAgKHJldHVybkZpYmVyID0gbnVsbCksXG4gICAgICAgICAgICBudWxsICE9PSBuZXdQcm9wcy5tZW1vaXplZFN0YXRlICYmXG4gICAgICAgICAgICAgIG51bGwgIT09IG5ld1Byb3BzLm1lbW9pemVkU3RhdGUuY2FjaGVQb29sICYmXG4gICAgICAgICAgICAgIChyZXR1cm5GaWJlciA9IG5ld1Byb3BzLm1lbW9pemVkU3RhdGUuY2FjaGVQb29sLnBvb2wpLFxuICAgICAgICAgICAgcmV0dXJuRmliZXIgIT09IF90eXBlICYmIChuZXdQcm9wcy5mbGFncyB8PSAyMDQ4KSk7XG4gICAgICAgICAgcmVuZGVyTGFuZXMgIT09IGN1cnJlbnQgJiZcbiAgICAgICAgICAgIHJlbmRlckxhbmVzICYmXG4gICAgICAgICAgICAod29ya0luUHJvZ3Jlc3MuY2hpbGQuZmxhZ3MgfD0gODE5Mik7XG4gICAgICAgICAgc2NoZWR1bGVSZXRyeUVmZmVjdCh3b3JrSW5Qcm9ncmVzcywgd29ya0luUHJvZ3Jlc3MudXBkYXRlUXVldWUpO1xuICAgICAgICAgIGJ1YmJsZVByb3BlcnRpZXMod29ya0luUHJvZ3Jlc3MpO1xuICAgICAgICAgICh3b3JrSW5Qcm9ncmVzcy5tb2RlICYgUHJvZmlsZU1vZGUpICE9PSBOb01vZGUgJiZcbiAgICAgICAgICAgIHJlbmRlckxhbmVzICYmXG4gICAgICAgICAgICAoKGN1cnJlbnQgPSB3b3JrSW5Qcm9ncmVzcy5jaGlsZCksXG4gICAgICAgICAgICBudWxsICE9PSBjdXJyZW50ICYmXG4gICAgICAgICAgICAgICh3b3JrSW5Qcm9ncmVzcy50cmVlQmFzZUR1cmF0aW9uIC09IGN1cnJlbnQudHJlZUJhc2VEdXJhdGlvbikpO1xuICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICBjYXNlIDQ6XG4gICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgIHBvcEhvc3RDb250YWluZXIod29ya0luUHJvZ3Jlc3MpLFxuICAgICAgICAgICAgbnVsbCA9PT0gY3VycmVudCAmJlxuICAgICAgICAgICAgICBsaXN0ZW5Ub0FsbFN1cHBvcnRlZEV2ZW50cyhcbiAgICAgICAgICAgICAgICB3b3JrSW5Qcm9ncmVzcy5zdGF0ZU5vZGUuY29udGFpbmVySW5mb1xuICAgICAgICAgICAgICApLFxuICAgICAgICAgICAgYnViYmxlUHJvcGVydGllcyh3b3JrSW5Qcm9ncmVzcyksXG4gICAgICAgICAgICBudWxsXG4gICAgICAgICAgKTtcbiAgICAgICAgY2FzZSAxMDpcbiAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgcG9wUHJvdmlkZXIod29ya0luUHJvZ3Jlc3MudHlwZSwgd29ya0luUHJvZ3Jlc3MpLFxuICAgICAgICAgICAgYnViYmxlUHJvcGVydGllcyh3b3JrSW5Qcm9ncmVzcyksXG4gICAgICAgICAgICBudWxsXG4gICAgICAgICAgKTtcbiAgICAgICAgY2FzZSAxOTpcbiAgICAgICAgICBwb3Aoc3VzcGVuc2VTdGFja0N1cnNvciwgd29ya0luUHJvZ3Jlc3MpO1xuICAgICAgICAgIF90eXBlID0gd29ya0luUHJvZ3Jlc3MubWVtb2l6ZWRTdGF0ZTtcbiAgICAgICAgICBpZiAobnVsbCA9PT0gX3R5cGUpIHJldHVybiBidWJibGVQcm9wZXJ0aWVzKHdvcmtJblByb2dyZXNzKSwgbnVsbDtcbiAgICAgICAgICBuZXdQcm9wcyA9IDAgIT09ICh3b3JrSW5Qcm9ncmVzcy5mbGFncyAmIDEyOCk7XG4gICAgICAgICAgcmV0dXJuRmliZXIgPSBfdHlwZS5yZW5kZXJpbmc7XG4gICAgICAgICAgaWYgKG51bGwgPT09IHJldHVybkZpYmVyKVxuICAgICAgICAgICAgaWYgKG5ld1Byb3BzKSBjdXRPZmZUYWlsSWZOZWVkZWQoX3R5cGUsICExKTtcbiAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICBpZiAoXG4gICAgICAgICAgICAgICAgd29ya0luUHJvZ3Jlc3NSb290RXhpdFN0YXR1cyAhPT0gUm9vdEluUHJvZ3Jlc3MgfHxcbiAgICAgICAgICAgICAgICAobnVsbCAhPT0gY3VycmVudCAmJiAwICE9PSAoY3VycmVudC5mbGFncyAmIDEyOCkpXG4gICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICBmb3IgKGN1cnJlbnQgPSB3b3JrSW5Qcm9ncmVzcy5jaGlsZDsgbnVsbCAhPT0gY3VycmVudDsgKSB7XG4gICAgICAgICAgICAgICAgICByZXR1cm5GaWJlciA9IGZpbmRGaXJzdFN1c3BlbmRlZChjdXJyZW50KTtcbiAgICAgICAgICAgICAgICAgIGlmIChudWxsICE9PSByZXR1cm5GaWJlcikge1xuICAgICAgICAgICAgICAgICAgICB3b3JrSW5Qcm9ncmVzcy5mbGFncyB8PSAxMjg7XG4gICAgICAgICAgICAgICAgICAgIGN1dE9mZlRhaWxJZk5lZWRlZChfdHlwZSwgITEpO1xuICAgICAgICAgICAgICAgICAgICBjdXJyZW50ID0gcmV0dXJuRmliZXIudXBkYXRlUXVldWU7XG4gICAgICAgICAgICAgICAgICAgIHdvcmtJblByb2dyZXNzLnVwZGF0ZVF1ZXVlID0gY3VycmVudDtcbiAgICAgICAgICAgICAgICAgICAgc2NoZWR1bGVSZXRyeUVmZmVjdCh3b3JrSW5Qcm9ncmVzcywgY3VycmVudCk7XG4gICAgICAgICAgICAgICAgICAgIHdvcmtJblByb2dyZXNzLnN1YnRyZWVGbGFncyA9IDA7XG4gICAgICAgICAgICAgICAgICAgIGN1cnJlbnQgPSByZW5kZXJMYW5lcztcbiAgICAgICAgICAgICAgICAgICAgZm9yIChcbiAgICAgICAgICAgICAgICAgICAgICByZW5kZXJMYW5lcyA9IHdvcmtJblByb2dyZXNzLmNoaWxkO1xuICAgICAgICAgICAgICAgICAgICAgIG51bGwgIT09IHJlbmRlckxhbmVzO1xuXG4gICAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICAgICAgICByZXNldFdvcmtJblByb2dyZXNzKHJlbmRlckxhbmVzLCBjdXJyZW50KSxcbiAgICAgICAgICAgICAgICAgICAgICAgIChyZW5kZXJMYW5lcyA9IHJlbmRlckxhbmVzLnNpYmxpbmcpO1xuICAgICAgICAgICAgICAgICAgICBwdXNoKFxuICAgICAgICAgICAgICAgICAgICAgIHN1c3BlbnNlU3RhY2tDdXJzb3IsXG4gICAgICAgICAgICAgICAgICAgICAgKHN1c3BlbnNlU3RhY2tDdXJzb3IuY3VycmVudCAmXG4gICAgICAgICAgICAgICAgICAgICAgICBTdWJ0cmVlU3VzcGVuc2VDb250ZXh0TWFzaykgfFxuICAgICAgICAgICAgICAgICAgICAgICAgRm9yY2VTdXNwZW5zZUZhbGxiYWNrLFxuICAgICAgICAgICAgICAgICAgICAgIHdvcmtJblByb2dyZXNzXG4gICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB3b3JrSW5Qcm9ncmVzcy5jaGlsZDtcbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgIGN1cnJlbnQgPSBjdXJyZW50LnNpYmxpbmc7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICBudWxsICE9PSBfdHlwZS50YWlsICYmXG4gICAgICAgICAgICAgICAgbm93JDEoKSA+IHdvcmtJblByb2dyZXNzUm9vdFJlbmRlclRhcmdldFRpbWUgJiZcbiAgICAgICAgICAgICAgICAoKHdvcmtJblByb2dyZXNzLmZsYWdzIHw9IDEyOCksXG4gICAgICAgICAgICAgICAgKG5ld1Byb3BzID0gITApLFxuICAgICAgICAgICAgICAgIGN1dE9mZlRhaWxJZk5lZWRlZChfdHlwZSwgITEpLFxuICAgICAgICAgICAgICAgICh3b3JrSW5Qcm9ncmVzcy5sYW5lcyA9IDQxOTQzMDQpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIGlmICghbmV3UHJvcHMpXG4gICAgICAgICAgICAgIGlmIChcbiAgICAgICAgICAgICAgICAoKGN1cnJlbnQgPSBmaW5kRmlyc3RTdXNwZW5kZWQocmV0dXJuRmliZXIpKSwgbnVsbCAhPT0gY3VycmVudClcbiAgICAgICAgICAgICAgKSB7XG4gICAgICAgICAgICAgICAgaWYgKFxuICAgICAgICAgICAgICAgICAgKCh3b3JrSW5Qcm9ncmVzcy5mbGFncyB8PSAxMjgpLFxuICAgICAgICAgICAgICAgICAgKG5ld1Byb3BzID0gITApLFxuICAgICAgICAgICAgICAgICAgKGN1cnJlbnQgPSBjdXJyZW50LnVwZGF0ZVF1ZXVlKSxcbiAgICAgICAgICAgICAgICAgICh3b3JrSW5Qcm9ncmVzcy51cGRhdGVRdWV1ZSA9IGN1cnJlbnQpLFxuICAgICAgICAgICAgICAgICAgc2NoZWR1bGVSZXRyeUVmZmVjdCh3b3JrSW5Qcm9ncmVzcywgY3VycmVudCksXG4gICAgICAgICAgICAgICAgICBjdXRPZmZUYWlsSWZOZWVkZWQoX3R5cGUsICEwKSxcbiAgICAgICAgICAgICAgICAgIG51bGwgPT09IF90eXBlLnRhaWwgJiZcbiAgICAgICAgICAgICAgICAgICAgXCJoaWRkZW5cIiA9PT0gX3R5cGUudGFpbE1vZGUgJiZcbiAgICAgICAgICAgICAgICAgICAgIXJldHVybkZpYmVyLmFsdGVybmF0ZSAmJlxuICAgICAgICAgICAgICAgICAgICAhaXNIeWRyYXRpbmcpXG4gICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgICAgcmV0dXJuIGJ1YmJsZVByb3BlcnRpZXMod29ya0luUHJvZ3Jlc3MpLCBudWxsO1xuICAgICAgICAgICAgICB9IGVsc2VcbiAgICAgICAgICAgICAgICAyICogbm93JDEoKSAtIF90eXBlLnJlbmRlcmluZ1N0YXJ0VGltZSA+XG4gICAgICAgICAgICAgICAgICB3b3JrSW5Qcm9ncmVzc1Jvb3RSZW5kZXJUYXJnZXRUaW1lICYmXG4gICAgICAgICAgICAgICAgICA1MzY4NzA5MTIgIT09IHJlbmRlckxhbmVzICYmXG4gICAgICAgICAgICAgICAgICAoKHdvcmtJblByb2dyZXNzLmZsYWdzIHw9IDEyOCksXG4gICAgICAgICAgICAgICAgICAobmV3UHJvcHMgPSAhMCksXG4gICAgICAgICAgICAgICAgICBjdXRPZmZUYWlsSWZOZWVkZWQoX3R5cGUsICExKSxcbiAgICAgICAgICAgICAgICAgICh3b3JrSW5Qcm9ncmVzcy5sYW5lcyA9IDQxOTQzMDQpKTtcbiAgICAgICAgICAgIF90eXBlLmlzQmFja3dhcmRzXG4gICAgICAgICAgICAgID8gKChyZXR1cm5GaWJlci5zaWJsaW5nID0gd29ya0luUHJvZ3Jlc3MuY2hpbGQpLFxuICAgICAgICAgICAgICAgICh3b3JrSW5Qcm9ncmVzcy5jaGlsZCA9IHJldHVybkZpYmVyKSlcbiAgICAgICAgICAgICAgOiAoKGN1cnJlbnQgPSBfdHlwZS5sYXN0KSxcbiAgICAgICAgICAgICAgICBudWxsICE9PSBjdXJyZW50XG4gICAgICAgICAgICAgICAgICA/IChjdXJyZW50LnNpYmxpbmcgPSByZXR1cm5GaWJlcilcbiAgICAgICAgICAgICAgICAgIDogKHdvcmtJblByb2dyZXNzLmNoaWxkID0gcmV0dXJuRmliZXIpLFxuICAgICAgICAgICAgICAgIChfdHlwZS5sYXN0ID0gcmV0dXJuRmliZXIpKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgaWYgKG51bGwgIT09IF90eXBlLnRhaWwpXG4gICAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgICAoY3VycmVudCA9IF90eXBlLnRhaWwpLFxuICAgICAgICAgICAgICAoX3R5cGUucmVuZGVyaW5nID0gY3VycmVudCksXG4gICAgICAgICAgICAgIChfdHlwZS50YWlsID0gY3VycmVudC5zaWJsaW5nKSxcbiAgICAgICAgICAgICAgKF90eXBlLnJlbmRlcmluZ1N0YXJ0VGltZSA9IG5vdyQxKCkpLFxuICAgICAgICAgICAgICAoY3VycmVudC5zaWJsaW5nID0gbnVsbCksXG4gICAgICAgICAgICAgIChyZW5kZXJMYW5lcyA9IHN1c3BlbnNlU3RhY2tDdXJzb3IuY3VycmVudCksXG4gICAgICAgICAgICAgIChyZW5kZXJMYW5lcyA9IG5ld1Byb3BzXG4gICAgICAgICAgICAgICAgPyAocmVuZGVyTGFuZXMgJiBTdWJ0cmVlU3VzcGVuc2VDb250ZXh0TWFzaykgfFxuICAgICAgICAgICAgICAgICAgRm9yY2VTdXNwZW5zZUZhbGxiYWNrXG4gICAgICAgICAgICAgICAgOiByZW5kZXJMYW5lcyAmIFN1YnRyZWVTdXNwZW5zZUNvbnRleHRNYXNrKSxcbiAgICAgICAgICAgICAgcHVzaChzdXNwZW5zZVN0YWNrQ3Vyc29yLCByZW5kZXJMYW5lcywgd29ya0luUHJvZ3Jlc3MpLFxuICAgICAgICAgICAgICBjdXJyZW50XG4gICAgICAgICAgICApO1xuICAgICAgICAgIGJ1YmJsZVByb3BlcnRpZXMod29ya0luUHJvZ3Jlc3MpO1xuICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICBjYXNlIDIyOlxuICAgICAgICBjYXNlIDIzOlxuICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICBwb3BTdXNwZW5zZUhhbmRsZXIod29ya0luUHJvZ3Jlc3MpLFxuICAgICAgICAgICAgcG9wSGlkZGVuQ29udGV4dCh3b3JrSW5Qcm9ncmVzcyksXG4gICAgICAgICAgICAobmV3UHJvcHMgPSBudWxsICE9PSB3b3JrSW5Qcm9ncmVzcy5tZW1vaXplZFN0YXRlKSxcbiAgICAgICAgICAgIG51bGwgIT09IGN1cnJlbnRcbiAgICAgICAgICAgICAgPyAobnVsbCAhPT0gY3VycmVudC5tZW1vaXplZFN0YXRlKSAhPT0gbmV3UHJvcHMgJiZcbiAgICAgICAgICAgICAgICAod29ya0luUHJvZ3Jlc3MuZmxhZ3MgfD0gODE5MilcbiAgICAgICAgICAgICAgOiBuZXdQcm9wcyAmJiAod29ya0luUHJvZ3Jlc3MuZmxhZ3MgfD0gODE5MiksXG4gICAgICAgICAgICBuZXdQcm9wc1xuICAgICAgICAgICAgICA/IDAgIT09IChyZW5kZXJMYW5lcyAmIDUzNjg3MDkxMikgJiZcbiAgICAgICAgICAgICAgICAwID09PSAod29ya0luUHJvZ3Jlc3MuZmxhZ3MgJiAxMjgpICYmXG4gICAgICAgICAgICAgICAgKGJ1YmJsZVByb3BlcnRpZXMod29ya0luUHJvZ3Jlc3MpLFxuICAgICAgICAgICAgICAgIHdvcmtJblByb2dyZXNzLnN1YnRyZWVGbGFncyAmIDYgJiZcbiAgICAgICAgICAgICAgICAgICh3b3JrSW5Qcm9ncmVzcy5mbGFncyB8PSA4MTkyKSlcbiAgICAgICAgICAgICAgOiBidWJibGVQcm9wZXJ0aWVzKHdvcmtJblByb2dyZXNzKSxcbiAgICAgICAgICAgIChyZW5kZXJMYW5lcyA9IHdvcmtJblByb2dyZXNzLnVwZGF0ZVF1ZXVlKSxcbiAgICAgICAgICAgIG51bGwgIT09IHJlbmRlckxhbmVzICYmXG4gICAgICAgICAgICAgIHNjaGVkdWxlUmV0cnlFZmZlY3Qod29ya0luUHJvZ3Jlc3MsIHJlbmRlckxhbmVzLnJldHJ5UXVldWUpLFxuICAgICAgICAgICAgKHJlbmRlckxhbmVzID0gbnVsbCksXG4gICAgICAgICAgICBudWxsICE9PSBjdXJyZW50ICYmXG4gICAgICAgICAgICAgIG51bGwgIT09IGN1cnJlbnQubWVtb2l6ZWRTdGF0ZSAmJlxuICAgICAgICAgICAgICBudWxsICE9PSBjdXJyZW50Lm1lbW9pemVkU3RhdGUuY2FjaGVQb29sICYmXG4gICAgICAgICAgICAgIChyZW5kZXJMYW5lcyA9IGN1cnJlbnQubWVtb2l6ZWRTdGF0ZS5jYWNoZVBvb2wucG9vbCksXG4gICAgICAgICAgICAobmV3UHJvcHMgPSBudWxsKSxcbiAgICAgICAgICAgIG51bGwgIT09IHdvcmtJblByb2dyZXNzLm1lbW9pemVkU3RhdGUgJiZcbiAgICAgICAgICAgICAgbnVsbCAhPT0gd29ya0luUHJvZ3Jlc3MubWVtb2l6ZWRTdGF0ZS5jYWNoZVBvb2wgJiZcbiAgICAgICAgICAgICAgKG5ld1Byb3BzID0gd29ya0luUHJvZ3Jlc3MubWVtb2l6ZWRTdGF0ZS5jYWNoZVBvb2wucG9vbCksXG4gICAgICAgICAgICBuZXdQcm9wcyAhPT0gcmVuZGVyTGFuZXMgJiYgKHdvcmtJblByb2dyZXNzLmZsYWdzIHw9IDIwNDgpLFxuICAgICAgICAgICAgbnVsbCAhPT0gY3VycmVudCAmJiBwb3AocmVzdW1lZENhY2hlLCB3b3JrSW5Qcm9ncmVzcyksXG4gICAgICAgICAgICBudWxsXG4gICAgICAgICAgKTtcbiAgICAgICAgY2FzZSAyNDpcbiAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgKHJlbmRlckxhbmVzID0gbnVsbCksXG4gICAgICAgICAgICBudWxsICE9PSBjdXJyZW50ICYmIChyZW5kZXJMYW5lcyA9IGN1cnJlbnQubWVtb2l6ZWRTdGF0ZS5jYWNoZSksXG4gICAgICAgICAgICB3b3JrSW5Qcm9ncmVzcy5tZW1vaXplZFN0YXRlLmNhY2hlICE9PSByZW5kZXJMYW5lcyAmJlxuICAgICAgICAgICAgICAod29ya0luUHJvZ3Jlc3MuZmxhZ3MgfD0gMjA0OCksXG4gICAgICAgICAgICBwb3BQcm92aWRlcihDYWNoZUNvbnRleHQsIHdvcmtJblByb2dyZXNzKSxcbiAgICAgICAgICAgIGJ1YmJsZVByb3BlcnRpZXMod29ya0luUHJvZ3Jlc3MpLFxuICAgICAgICAgICAgbnVsbFxuICAgICAgICAgICk7XG4gICAgICAgIGNhc2UgMjU6XG4gICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgIGNhc2UgMzA6XG4gICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICB9XG4gICAgICB0aHJvdyBFcnJvcihcbiAgICAgICAgXCJVbmtub3duIHVuaXQgb2Ygd29yayB0YWcgKFwiICtcbiAgICAgICAgICB3b3JrSW5Qcm9ncmVzcy50YWcgK1xuICAgICAgICAgIFwiKS4gVGhpcyBlcnJvciBpcyBsaWtlbHkgY2F1c2VkIGJ5IGEgYnVnIGluIFJlYWN0LiBQbGVhc2UgZmlsZSBhbiBpc3N1ZS5cIlxuICAgICAgKTtcbiAgICB9XG4gICAgZnVuY3Rpb24gdW53aW5kV29yayhjdXJyZW50LCB3b3JrSW5Qcm9ncmVzcykge1xuICAgICAgcG9wVHJlZUNvbnRleHQod29ya0luUHJvZ3Jlc3MpO1xuICAgICAgc3dpdGNoICh3b3JrSW5Qcm9ncmVzcy50YWcpIHtcbiAgICAgICAgY2FzZSAxOlxuICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAoY3VycmVudCA9IHdvcmtJblByb2dyZXNzLmZsYWdzKSxcbiAgICAgICAgICAgIGN1cnJlbnQgJiA2NTUzNlxuICAgICAgICAgICAgICA/ICgod29ya0luUHJvZ3Jlc3MuZmxhZ3MgPSAoY3VycmVudCAmIC02NTUzNykgfCAxMjgpLFxuICAgICAgICAgICAgICAgICh3b3JrSW5Qcm9ncmVzcy5tb2RlICYgUHJvZmlsZU1vZGUpICE9PSBOb01vZGUgJiZcbiAgICAgICAgICAgICAgICAgIHRyYW5zZmVyQWN0dWFsRHVyYXRpb24od29ya0luUHJvZ3Jlc3MpLFxuICAgICAgICAgICAgICAgIHdvcmtJblByb2dyZXNzKVxuICAgICAgICAgICAgICA6IG51bGxcbiAgICAgICAgICApO1xuICAgICAgICBjYXNlIDM6XG4gICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgIHBvcFByb3ZpZGVyKENhY2hlQ29udGV4dCwgd29ya0luUHJvZ3Jlc3MpLFxuICAgICAgICAgICAgcG9wSG9zdENvbnRhaW5lcih3b3JrSW5Qcm9ncmVzcyksXG4gICAgICAgICAgICAoY3VycmVudCA9IHdvcmtJblByb2dyZXNzLmZsYWdzKSxcbiAgICAgICAgICAgIDAgIT09IChjdXJyZW50ICYgNjU1MzYpICYmIDAgPT09IChjdXJyZW50ICYgMTI4KVxuICAgICAgICAgICAgICA/ICgod29ya0luUHJvZ3Jlc3MuZmxhZ3MgPSAoY3VycmVudCAmIC02NTUzNykgfCAxMjgpLFxuICAgICAgICAgICAgICAgIHdvcmtJblByb2dyZXNzKVxuICAgICAgICAgICAgICA6IG51bGxcbiAgICAgICAgICApO1xuICAgICAgICBjYXNlIDI2OlxuICAgICAgICBjYXNlIDI3OlxuICAgICAgICBjYXNlIDU6XG4gICAgICAgICAgcmV0dXJuIHBvcEhvc3RDb250ZXh0KHdvcmtJblByb2dyZXNzKSwgbnVsbDtcbiAgICAgICAgY2FzZSAxMzpcbiAgICAgICAgICBwb3BTdXNwZW5zZUhhbmRsZXIod29ya0luUHJvZ3Jlc3MpO1xuICAgICAgICAgIGN1cnJlbnQgPSB3b3JrSW5Qcm9ncmVzcy5tZW1vaXplZFN0YXRlO1xuICAgICAgICAgIGlmIChudWxsICE9PSBjdXJyZW50ICYmIG51bGwgIT09IGN1cnJlbnQuZGVoeWRyYXRlZCkge1xuICAgICAgICAgICAgaWYgKG51bGwgPT09IHdvcmtJblByb2dyZXNzLmFsdGVybmF0ZSlcbiAgICAgICAgICAgICAgdGhyb3cgRXJyb3IoXG4gICAgICAgICAgICAgICAgXCJUaHJldyBpbiBuZXdseSBtb3VudGVkIGRlaHlkcmF0ZWQgY29tcG9uZW50LiBUaGlzIGlzIGxpa2VseSBhIGJ1ZyBpbiBSZWFjdC4gUGxlYXNlIGZpbGUgYW4gaXNzdWUuXCJcbiAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIHJlc2V0SHlkcmF0aW9uU3RhdGUoKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgY3VycmVudCA9IHdvcmtJblByb2dyZXNzLmZsYWdzO1xuICAgICAgICAgIHJldHVybiBjdXJyZW50ICYgNjU1MzZcbiAgICAgICAgICAgID8gKCh3b3JrSW5Qcm9ncmVzcy5mbGFncyA9IChjdXJyZW50ICYgLTY1NTM3KSB8IDEyOCksXG4gICAgICAgICAgICAgICh3b3JrSW5Qcm9ncmVzcy5tb2RlICYgUHJvZmlsZU1vZGUpICE9PSBOb01vZGUgJiZcbiAgICAgICAgICAgICAgICB0cmFuc2ZlckFjdHVhbER1cmF0aW9uKHdvcmtJblByb2dyZXNzKSxcbiAgICAgICAgICAgICAgd29ya0luUHJvZ3Jlc3MpXG4gICAgICAgICAgICA6IG51bGw7XG4gICAgICAgIGNhc2UgMTk6XG4gICAgICAgICAgcmV0dXJuIHBvcChzdXNwZW5zZVN0YWNrQ3Vyc29yLCB3b3JrSW5Qcm9ncmVzcyksIG51bGw7XG4gICAgICAgIGNhc2UgNDpcbiAgICAgICAgICByZXR1cm4gcG9wSG9zdENvbnRhaW5lcih3b3JrSW5Qcm9ncmVzcyksIG51bGw7XG4gICAgICAgIGNhc2UgMTA6XG4gICAgICAgICAgcmV0dXJuIHBvcFByb3ZpZGVyKHdvcmtJblByb2dyZXNzLnR5cGUsIHdvcmtJblByb2dyZXNzKSwgbnVsbDtcbiAgICAgICAgY2FzZSAyMjpcbiAgICAgICAgY2FzZSAyMzpcbiAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgcG9wU3VzcGVuc2VIYW5kbGVyKHdvcmtJblByb2dyZXNzKSxcbiAgICAgICAgICAgIHBvcEhpZGRlbkNvbnRleHQod29ya0luUHJvZ3Jlc3MpLFxuICAgICAgICAgICAgbnVsbCAhPT0gY3VycmVudCAmJiBwb3AocmVzdW1lZENhY2hlLCB3b3JrSW5Qcm9ncmVzcyksXG4gICAgICAgICAgICAoY3VycmVudCA9IHdvcmtJblByb2dyZXNzLmZsYWdzKSxcbiAgICAgICAgICAgIGN1cnJlbnQgJiA2NTUzNlxuICAgICAgICAgICAgICA/ICgod29ya0luUHJvZ3Jlc3MuZmxhZ3MgPSAoY3VycmVudCAmIC02NTUzNykgfCAxMjgpLFxuICAgICAgICAgICAgICAgICh3b3JrSW5Qcm9ncmVzcy5tb2RlICYgUHJvZmlsZU1vZGUpICE9PSBOb01vZGUgJiZcbiAgICAgICAgICAgICAgICAgIHRyYW5zZmVyQWN0dWFsRHVyYXRpb24od29ya0luUHJvZ3Jlc3MpLFxuICAgICAgICAgICAgICAgIHdvcmtJblByb2dyZXNzKVxuICAgICAgICAgICAgICA6IG51bGxcbiAgICAgICAgICApO1xuICAgICAgICBjYXNlIDI0OlxuICAgICAgICAgIHJldHVybiBwb3BQcm92aWRlcihDYWNoZUNvbnRleHQsIHdvcmtJblByb2dyZXNzKSwgbnVsbDtcbiAgICAgICAgY2FzZSAyNTpcbiAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgIH1cbiAgICB9XG4gICAgZnVuY3Rpb24gdW53aW5kSW50ZXJydXB0ZWRXb3JrKGN1cnJlbnQsIGludGVycnVwdGVkV29yaykge1xuICAgICAgcG9wVHJlZUNvbnRleHQoaW50ZXJydXB0ZWRXb3JrKTtcbiAgICAgIHN3aXRjaCAoaW50ZXJydXB0ZWRXb3JrLnRhZykge1xuICAgICAgICBjYXNlIDM6XG4gICAgICAgICAgcG9wUHJvdmlkZXIoQ2FjaGVDb250ZXh0LCBpbnRlcnJ1cHRlZFdvcmspO1xuICAgICAgICAgIHBvcEhvc3RDb250YWluZXIoaW50ZXJydXB0ZWRXb3JrKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAyNjpcbiAgICAgICAgY2FzZSAyNzpcbiAgICAgICAgY2FzZSA1OlxuICAgICAgICAgIHBvcEhvc3RDb250ZXh0KGludGVycnVwdGVkV29yayk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgNDpcbiAgICAgICAgICBwb3BIb3N0Q29udGFpbmVyKGludGVycnVwdGVkV29yayk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgMTM6XG4gICAgICAgICAgcG9wU3VzcGVuc2VIYW5kbGVyKGludGVycnVwdGVkV29yayk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgMTk6XG4gICAgICAgICAgcG9wKHN1c3BlbnNlU3RhY2tDdXJzb3IsIGludGVycnVwdGVkV29yayk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgMTA6XG4gICAgICAgICAgcG9wUHJvdmlkZXIoaW50ZXJydXB0ZWRXb3JrLnR5cGUsIGludGVycnVwdGVkV29yayk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgMjI6XG4gICAgICAgIGNhc2UgMjM6XG4gICAgICAgICAgcG9wU3VzcGVuc2VIYW5kbGVyKGludGVycnVwdGVkV29yayk7XG4gICAgICAgICAgcG9wSGlkZGVuQ29udGV4dChpbnRlcnJ1cHRlZFdvcmspO1xuICAgICAgICAgIG51bGwgIT09IGN1cnJlbnQgJiYgcG9wKHJlc3VtZWRDYWNoZSwgaW50ZXJydXB0ZWRXb3JrKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAyNDpcbiAgICAgICAgICBwb3BQcm92aWRlcihDYWNoZUNvbnRleHQsIGludGVycnVwdGVkV29yayk7XG4gICAgICB9XG4gICAgfVxuICAgIGZ1bmN0aW9uIHNob3VsZFByb2ZpbGUoY3VycmVudCkge1xuICAgICAgcmV0dXJuIChjdXJyZW50Lm1vZGUgJiBQcm9maWxlTW9kZSkgIT09IE5vTW9kZTtcbiAgICB9XG4gICAgZnVuY3Rpb24gY29tbWl0SG9va0xheW91dEVmZmVjdHMoZmluaXNoZWRXb3JrLCBob29rRmxhZ3MpIHtcbiAgICAgIHNob3VsZFByb2ZpbGUoZmluaXNoZWRXb3JrKVxuICAgICAgICA/IChzdGFydEVmZmVjdFRpbWVyKCksXG4gICAgICAgICAgY29tbWl0SG9va0VmZmVjdExpc3RNb3VudChob29rRmxhZ3MsIGZpbmlzaGVkV29yayksXG4gICAgICAgICAgcmVjb3JkRWZmZWN0RHVyYXRpb24oKSlcbiAgICAgICAgOiBjb21taXRIb29rRWZmZWN0TGlzdE1vdW50KGhvb2tGbGFncywgZmluaXNoZWRXb3JrKTtcbiAgICB9XG4gICAgZnVuY3Rpb24gY29tbWl0SG9va0xheW91dFVubW91bnRFZmZlY3RzKFxuICAgICAgZmluaXNoZWRXb3JrLFxuICAgICAgbmVhcmVzdE1vdW50ZWRBbmNlc3RvcixcbiAgICAgIGhvb2tGbGFnc1xuICAgICkge1xuICAgICAgc2hvdWxkUHJvZmlsZShmaW5pc2hlZFdvcmspXG4gICAgICAgID8gKHN0YXJ0RWZmZWN0VGltZXIoKSxcbiAgICAgICAgICBjb21taXRIb29rRWZmZWN0TGlzdFVubW91bnQoXG4gICAgICAgICAgICBob29rRmxhZ3MsXG4gICAgICAgICAgICBmaW5pc2hlZFdvcmssXG4gICAgICAgICAgICBuZWFyZXN0TW91bnRlZEFuY2VzdG9yXG4gICAgICAgICAgKSxcbiAgICAgICAgICByZWNvcmRFZmZlY3REdXJhdGlvbigpKVxuICAgICAgICA6IGNvbW1pdEhvb2tFZmZlY3RMaXN0VW5tb3VudChcbiAgICAgICAgICAgIGhvb2tGbGFncyxcbiAgICAgICAgICAgIGZpbmlzaGVkV29yayxcbiAgICAgICAgICAgIG5lYXJlc3RNb3VudGVkQW5jZXN0b3JcbiAgICAgICAgICApO1xuICAgIH1cbiAgICBmdW5jdGlvbiBjb21taXRIb29rRWZmZWN0TGlzdE1vdW50KGZsYWdzLCBmaW5pc2hlZFdvcmspIHtcbiAgICAgIHRyeSB7XG4gICAgICAgIHZhciB1cGRhdGVRdWV1ZSA9IGZpbmlzaGVkV29yay51cGRhdGVRdWV1ZSxcbiAgICAgICAgICBsYXN0RWZmZWN0ID0gbnVsbCAhPT0gdXBkYXRlUXVldWUgPyB1cGRhdGVRdWV1ZS5sYXN0RWZmZWN0IDogbnVsbDtcbiAgICAgICAgaWYgKG51bGwgIT09IGxhc3RFZmZlY3QpIHtcbiAgICAgICAgICB2YXIgZmlyc3RFZmZlY3QgPSBsYXN0RWZmZWN0Lm5leHQ7XG4gICAgICAgICAgdXBkYXRlUXVldWUgPSBmaXJzdEVmZmVjdDtcbiAgICAgICAgICBkbyB7XG4gICAgICAgICAgICBpZiAoXG4gICAgICAgICAgICAgICh1cGRhdGVRdWV1ZS50YWcgJiBmbGFncykgPT09IGZsYWdzICYmXG4gICAgICAgICAgICAgICgoZmxhZ3MgJiBQYXNzaXZlKSAhPT0gTm9GbGFnc1xuICAgICAgICAgICAgICAgID8gbnVsbCAhPT0gaW5qZWN0ZWRQcm9maWxpbmdIb29rcyAmJlxuICAgICAgICAgICAgICAgICAgXCJmdW5jdGlvblwiID09PVxuICAgICAgICAgICAgICAgICAgICB0eXBlb2YgaW5qZWN0ZWRQcm9maWxpbmdIb29rcy5tYXJrQ29tcG9uZW50UGFzc2l2ZUVmZmVjdE1vdW50U3RhcnRlZCAmJlxuICAgICAgICAgICAgICAgICAgaW5qZWN0ZWRQcm9maWxpbmdIb29rcy5tYXJrQ29tcG9uZW50UGFzc2l2ZUVmZmVjdE1vdW50U3RhcnRlZChcbiAgICAgICAgICAgICAgICAgICAgZmluaXNoZWRXb3JrXG4gICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgOiAoZmxhZ3MgJiBMYXlvdXQpICE9PSBOb0ZsYWdzICYmXG4gICAgICAgICAgICAgICAgICBudWxsICE9PSBpbmplY3RlZFByb2ZpbGluZ0hvb2tzICYmXG4gICAgICAgICAgICAgICAgICBcImZ1bmN0aW9uXCIgPT09XG4gICAgICAgICAgICAgICAgICAgIHR5cGVvZiBpbmplY3RlZFByb2ZpbGluZ0hvb2tzLm1hcmtDb21wb25lbnRMYXlvdXRFZmZlY3RNb3VudFN0YXJ0ZWQgJiZcbiAgICAgICAgICAgICAgICAgIGluamVjdGVkUHJvZmlsaW5nSG9va3MubWFya0NvbXBvbmVudExheW91dEVmZmVjdE1vdW50U3RhcnRlZChcbiAgICAgICAgICAgICAgICAgICAgZmluaXNoZWRXb3JrXG4gICAgICAgICAgICAgICAgICApLFxuICAgICAgICAgICAgICAobGFzdEVmZmVjdCA9IHZvaWQgMCksXG4gICAgICAgICAgICAgIChmbGFncyAmIEluc2VydGlvbikgIT09IE5vRmxhZ3MgJiZcbiAgICAgICAgICAgICAgICAoaXNSdW5uaW5nSW5zZXJ0aW9uRWZmZWN0ID0gITApLFxuICAgICAgICAgICAgICAobGFzdEVmZmVjdCA9IHJ1bldpdGhGaWJlckluREVWKFxuICAgICAgICAgICAgICAgIGZpbmlzaGVkV29yayxcbiAgICAgICAgICAgICAgICBjYWxsQ3JlYXRlSW5ERVYsXG4gICAgICAgICAgICAgICAgdXBkYXRlUXVldWVcbiAgICAgICAgICAgICAgKSksXG4gICAgICAgICAgICAgIChmbGFncyAmIEluc2VydGlvbikgIT09IE5vRmxhZ3MgJiZcbiAgICAgICAgICAgICAgICAoaXNSdW5uaW5nSW5zZXJ0aW9uRWZmZWN0ID0gITEpLFxuICAgICAgICAgICAgICAoZmxhZ3MgJiBQYXNzaXZlKSAhPT0gTm9GbGFnc1xuICAgICAgICAgICAgICAgID8gbnVsbCAhPT0gaW5qZWN0ZWRQcm9maWxpbmdIb29rcyAmJlxuICAgICAgICAgICAgICAgICAgXCJmdW5jdGlvblwiID09PVxuICAgICAgICAgICAgICAgICAgICB0eXBlb2YgaW5qZWN0ZWRQcm9maWxpbmdIb29rcy5tYXJrQ29tcG9uZW50UGFzc2l2ZUVmZmVjdE1vdW50U3RvcHBlZCAmJlxuICAgICAgICAgICAgICAgICAgaW5qZWN0ZWRQcm9maWxpbmdIb29rcy5tYXJrQ29tcG9uZW50UGFzc2l2ZUVmZmVjdE1vdW50U3RvcHBlZCgpXG4gICAgICAgICAgICAgICAgOiAoZmxhZ3MgJiBMYXlvdXQpICE9PSBOb0ZsYWdzICYmXG4gICAgICAgICAgICAgICAgICBudWxsICE9PSBpbmplY3RlZFByb2ZpbGluZ0hvb2tzICYmXG4gICAgICAgICAgICAgICAgICBcImZ1bmN0aW9uXCIgPT09XG4gICAgICAgICAgICAgICAgICAgIHR5cGVvZiBpbmplY3RlZFByb2ZpbGluZ0hvb2tzLm1hcmtDb21wb25lbnRMYXlvdXRFZmZlY3RNb3VudFN0b3BwZWQgJiZcbiAgICAgICAgICAgICAgICAgIGluamVjdGVkUHJvZmlsaW5nSG9va3MubWFya0NvbXBvbmVudExheW91dEVmZmVjdE1vdW50U3RvcHBlZCgpLFxuICAgICAgICAgICAgICB2b2lkIDAgIT09IGxhc3RFZmZlY3QgJiYgXCJmdW5jdGlvblwiICE9PSB0eXBlb2YgbGFzdEVmZmVjdClcbiAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICB2YXIgaG9va05hbWUgPSB2b2lkIDA7XG4gICAgICAgICAgICAgIGhvb2tOYW1lID1cbiAgICAgICAgICAgICAgICAwICE9PSAodXBkYXRlUXVldWUudGFnICYgTGF5b3V0KVxuICAgICAgICAgICAgICAgICAgPyBcInVzZUxheW91dEVmZmVjdFwiXG4gICAgICAgICAgICAgICAgICA6IDAgIT09ICh1cGRhdGVRdWV1ZS50YWcgJiBJbnNlcnRpb24pXG4gICAgICAgICAgICAgICAgICAgID8gXCJ1c2VJbnNlcnRpb25FZmZlY3RcIlxuICAgICAgICAgICAgICAgICAgICA6IFwidXNlRWZmZWN0XCI7XG4gICAgICAgICAgICAgIHZhciBhZGRlbmR1bSA9IHZvaWQgMDtcbiAgICAgICAgICAgICAgYWRkZW5kdW0gPVxuICAgICAgICAgICAgICAgIG51bGwgPT09IGxhc3RFZmZlY3RcbiAgICAgICAgICAgICAgICAgID8gXCIgWW91IHJldHVybmVkIG51bGwuIElmIHlvdXIgZWZmZWN0IGRvZXMgbm90IHJlcXVpcmUgY2xlYW4gdXAsIHJldHVybiB1bmRlZmluZWQgKG9yIG5vdGhpbmcpLlwiXG4gICAgICAgICAgICAgICAgICA6IFwiZnVuY3Rpb25cIiA9PT0gdHlwZW9mIGxhc3RFZmZlY3QudGhlblxuICAgICAgICAgICAgICAgICAgICA/IFwiXFxuXFxuSXQgbG9va3MgbGlrZSB5b3Ugd3JvdGUgXCIgK1xuICAgICAgICAgICAgICAgICAgICAgIGhvb2tOYW1lICtcbiAgICAgICAgICAgICAgICAgICAgICBcIihhc3luYyAoKSA9PiAuLi4pIG9yIHJldHVybmVkIGEgUHJvbWlzZS4gSW5zdGVhZCwgd3JpdGUgdGhlIGFzeW5jIGZ1bmN0aW9uIGluc2lkZSB5b3VyIGVmZmVjdCBhbmQgY2FsbCBpdCBpbW1lZGlhdGVseTpcXG5cXG5cIiArXG4gICAgICAgICAgICAgICAgICAgICAgaG9va05hbWUgK1xuICAgICAgICAgICAgICAgICAgICAgIFwiKCgpID0+IHtcXG4gIGFzeW5jIGZ1bmN0aW9uIGZldGNoRGF0YSgpIHtcXG4gICAgLy8gWW91IGNhbiBhd2FpdCBoZXJlXFxuICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgTXlBUEkuZ2V0RGF0YShzb21lSWQpO1xcbiAgICAvLyAuLi5cXG4gIH1cXG4gIGZldGNoRGF0YSgpO1xcbn0sIFtzb21lSWRdKTsgLy8gT3IgW10gaWYgZWZmZWN0IGRvZXNuJ3QgbmVlZCBwcm9wcyBvciBzdGF0ZVxcblxcbkxlYXJuIG1vcmUgYWJvdXQgZGF0YSBmZXRjaGluZyB3aXRoIEhvb2tzOiBodHRwczovL3JlYWN0LmRldi9saW5rL2hvb2tzLWRhdGEtZmV0Y2hpbmdcIlxuICAgICAgICAgICAgICAgICAgICA6IFwiIFlvdSByZXR1cm5lZDogXCIgKyBsYXN0RWZmZWN0O1xuICAgICAgICAgICAgICBydW5XaXRoRmliZXJJbkRFVihcbiAgICAgICAgICAgICAgICBmaW5pc2hlZFdvcmssXG4gICAgICAgICAgICAgICAgZnVuY3Rpb24gKG4sIGEpIHtcbiAgICAgICAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoXG4gICAgICAgICAgICAgICAgICAgIFwiJXMgbXVzdCBub3QgcmV0dXJuIGFueXRoaW5nIGJlc2lkZXMgYSBmdW5jdGlvbiwgd2hpY2ggaXMgdXNlZCBmb3IgY2xlYW4tdXAuJXNcIixcbiAgICAgICAgICAgICAgICAgICAgbixcbiAgICAgICAgICAgICAgICAgICAgYVxuICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIGhvb2tOYW1lLFxuICAgICAgICAgICAgICAgIGFkZGVuZHVtXG4gICAgICAgICAgICAgICk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB1cGRhdGVRdWV1ZSA9IHVwZGF0ZVF1ZXVlLm5leHQ7XG4gICAgICAgICAgfSB3aGlsZSAodXBkYXRlUXVldWUgIT09IGZpcnN0RWZmZWN0KTtcbiAgICAgICAgfVxuICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgY2FwdHVyZUNvbW1pdFBoYXNlRXJyb3IoZmluaXNoZWRXb3JrLCBmaW5pc2hlZFdvcmsucmV0dXJuLCBlcnJvcik7XG4gICAgICB9XG4gICAgfVxuICAgIGZ1bmN0aW9uIGNvbW1pdEhvb2tFZmZlY3RMaXN0VW5tb3VudChcbiAgICAgIGZsYWdzLFxuICAgICAgZmluaXNoZWRXb3JrLFxuICAgICAgbmVhcmVzdE1vdW50ZWRBbmNlc3RvclxuICAgICkge1xuICAgICAgdHJ5IHtcbiAgICAgICAgdmFyIHVwZGF0ZVF1ZXVlID0gZmluaXNoZWRXb3JrLnVwZGF0ZVF1ZXVlLFxuICAgICAgICAgIGxhc3RFZmZlY3QgPSBudWxsICE9PSB1cGRhdGVRdWV1ZSA/IHVwZGF0ZVF1ZXVlLmxhc3RFZmZlY3QgOiBudWxsO1xuICAgICAgICBpZiAobnVsbCAhPT0gbGFzdEVmZmVjdCkge1xuICAgICAgICAgIHZhciBmaXJzdEVmZmVjdCA9IGxhc3RFZmZlY3QubmV4dDtcbiAgICAgICAgICB1cGRhdGVRdWV1ZSA9IGZpcnN0RWZmZWN0O1xuICAgICAgICAgIGRvIHtcbiAgICAgICAgICAgIGlmICgodXBkYXRlUXVldWUudGFnICYgZmxhZ3MpID09PSBmbGFncykge1xuICAgICAgICAgICAgICB2YXIgaW5zdCA9IHVwZGF0ZVF1ZXVlLmluc3QsXG4gICAgICAgICAgICAgICAgZGVzdHJveSA9IGluc3QuZGVzdHJveTtcbiAgICAgICAgICAgICAgdm9pZCAwICE9PSBkZXN0cm95ICYmXG4gICAgICAgICAgICAgICAgKChpbnN0LmRlc3Ryb3kgPSB2b2lkIDApLFxuICAgICAgICAgICAgICAgIChmbGFncyAmIFBhc3NpdmUpICE9PSBOb0ZsYWdzXG4gICAgICAgICAgICAgICAgICA/IG51bGwgIT09IGluamVjdGVkUHJvZmlsaW5nSG9va3MgJiZcbiAgICAgICAgICAgICAgICAgICAgXCJmdW5jdGlvblwiID09PVxuICAgICAgICAgICAgICAgICAgICAgIHR5cGVvZiBpbmplY3RlZFByb2ZpbGluZ0hvb2tzLm1hcmtDb21wb25lbnRQYXNzaXZlRWZmZWN0VW5tb3VudFN0YXJ0ZWQgJiZcbiAgICAgICAgICAgICAgICAgICAgaW5qZWN0ZWRQcm9maWxpbmdIb29rcy5tYXJrQ29tcG9uZW50UGFzc2l2ZUVmZmVjdFVubW91bnRTdGFydGVkKFxuICAgICAgICAgICAgICAgICAgICAgIGZpbmlzaGVkV29ya1xuICAgICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgICA6IChmbGFncyAmIExheW91dCkgIT09IE5vRmxhZ3MgJiZcbiAgICAgICAgICAgICAgICAgICAgbnVsbCAhPT0gaW5qZWN0ZWRQcm9maWxpbmdIb29rcyAmJlxuICAgICAgICAgICAgICAgICAgICBcImZ1bmN0aW9uXCIgPT09XG4gICAgICAgICAgICAgICAgICAgICAgdHlwZW9mIGluamVjdGVkUHJvZmlsaW5nSG9va3MubWFya0NvbXBvbmVudExheW91dEVmZmVjdFVubW91bnRTdGFydGVkICYmXG4gICAgICAgICAgICAgICAgICAgIGluamVjdGVkUHJvZmlsaW5nSG9va3MubWFya0NvbXBvbmVudExheW91dEVmZmVjdFVubW91bnRTdGFydGVkKFxuICAgICAgICAgICAgICAgICAgICAgIGZpbmlzaGVkV29ya1xuICAgICAgICAgICAgICAgICAgICApLFxuICAgICAgICAgICAgICAgIChmbGFncyAmIEluc2VydGlvbikgIT09IE5vRmxhZ3MgJiZcbiAgICAgICAgICAgICAgICAgIChpc1J1bm5pbmdJbnNlcnRpb25FZmZlY3QgPSAhMCksXG4gICAgICAgICAgICAgICAgKGxhc3RFZmZlY3QgPSBmaW5pc2hlZFdvcmspLFxuICAgICAgICAgICAgICAgIHJ1bldpdGhGaWJlckluREVWKFxuICAgICAgICAgICAgICAgICAgbGFzdEVmZmVjdCxcbiAgICAgICAgICAgICAgICAgIGNhbGxEZXN0cm95SW5ERVYsXG4gICAgICAgICAgICAgICAgICBsYXN0RWZmZWN0LFxuICAgICAgICAgICAgICAgICAgbmVhcmVzdE1vdW50ZWRBbmNlc3RvcixcbiAgICAgICAgICAgICAgICAgIGRlc3Ryb3lcbiAgICAgICAgICAgICAgICApLFxuICAgICAgICAgICAgICAgIChmbGFncyAmIEluc2VydGlvbikgIT09IE5vRmxhZ3MgJiZcbiAgICAgICAgICAgICAgICAgIChpc1J1bm5pbmdJbnNlcnRpb25FZmZlY3QgPSAhMSksXG4gICAgICAgICAgICAgICAgKGZsYWdzICYgUGFzc2l2ZSkgIT09IE5vRmxhZ3NcbiAgICAgICAgICAgICAgICAgID8gbnVsbCAhPT0gaW5qZWN0ZWRQcm9maWxpbmdIb29rcyAmJlxuICAgICAgICAgICAgICAgICAgICBcImZ1bmN0aW9uXCIgPT09XG4gICAgICAgICAgICAgICAgICAgICAgdHlwZW9mIGluamVjdGVkUHJvZmlsaW5nSG9va3MubWFya0NvbXBvbmVudFBhc3NpdmVFZmZlY3RVbm1vdW50U3RvcHBlZCAmJlxuICAgICAgICAgICAgICAgICAgICBpbmplY3RlZFByb2ZpbGluZ0hvb2tzLm1hcmtDb21wb25lbnRQYXNzaXZlRWZmZWN0VW5tb3VudFN0b3BwZWQoKVxuICAgICAgICAgICAgICAgICAgOiAoZmxhZ3MgJiBMYXlvdXQpICE9PSBOb0ZsYWdzICYmXG4gICAgICAgICAgICAgICAgICAgIG51bGwgIT09IGluamVjdGVkUHJvZmlsaW5nSG9va3MgJiZcbiAgICAgICAgICAgICAgICAgICAgXCJmdW5jdGlvblwiID09PVxuICAgICAgICAgICAgICAgICAgICAgIHR5cGVvZiBpbmplY3RlZFByb2ZpbGluZ0hvb2tzLm1hcmtDb21wb25lbnRMYXlvdXRFZmZlY3RVbm1vdW50U3RvcHBlZCAmJlxuICAgICAgICAgICAgICAgICAgICBpbmplY3RlZFByb2ZpbGluZ0hvb2tzLm1hcmtDb21wb25lbnRMYXlvdXRFZmZlY3RVbm1vdW50U3RvcHBlZCgpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHVwZGF0ZVF1ZXVlID0gdXBkYXRlUXVldWUubmV4dDtcbiAgICAgICAgICB9IHdoaWxlICh1cGRhdGVRdWV1ZSAhPT0gZmlyc3RFZmZlY3QpO1xuICAgICAgICB9XG4gICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICBjYXB0dXJlQ29tbWl0UGhhc2VFcnJvcihmaW5pc2hlZFdvcmssIGZpbmlzaGVkV29yay5yZXR1cm4sIGVycm9yKTtcbiAgICAgIH1cbiAgICB9XG4gICAgZnVuY3Rpb24gY29tbWl0SG9va1Bhc3NpdmVNb3VudEVmZmVjdHMoZmluaXNoZWRXb3JrLCBob29rRmxhZ3MpIHtcbiAgICAgIHNob3VsZFByb2ZpbGUoZmluaXNoZWRXb3JrKVxuICAgICAgICA/IChzdGFydEVmZmVjdFRpbWVyKCksXG4gICAgICAgICAgY29tbWl0SG9va0VmZmVjdExpc3RNb3VudChob29rRmxhZ3MsIGZpbmlzaGVkV29yayksXG4gICAgICAgICAgcmVjb3JkRWZmZWN0RHVyYXRpb24oKSlcbiAgICAgICAgOiBjb21taXRIb29rRWZmZWN0TGlzdE1vdW50KGhvb2tGbGFncywgZmluaXNoZWRXb3JrKTtcbiAgICB9XG4gICAgZnVuY3Rpb24gY29tbWl0SG9va1Bhc3NpdmVVbm1vdW50RWZmZWN0cyhcbiAgICAgIGZpbmlzaGVkV29yayxcbiAgICAgIG5lYXJlc3RNb3VudGVkQW5jZXN0b3IsXG4gICAgICBob29rRmxhZ3NcbiAgICApIHtcbiAgICAgIHNob3VsZFByb2ZpbGUoZmluaXNoZWRXb3JrKVxuICAgICAgICA/IChzdGFydEVmZmVjdFRpbWVyKCksXG4gICAgICAgICAgY29tbWl0SG9va0VmZmVjdExpc3RVbm1vdW50KFxuICAgICAgICAgICAgaG9va0ZsYWdzLFxuICAgICAgICAgICAgZmluaXNoZWRXb3JrLFxuICAgICAgICAgICAgbmVhcmVzdE1vdW50ZWRBbmNlc3RvclxuICAgICAgICAgICksXG4gICAgICAgICAgcmVjb3JkRWZmZWN0RHVyYXRpb24oKSlcbiAgICAgICAgOiBjb21taXRIb29rRWZmZWN0TGlzdFVubW91bnQoXG4gICAgICAgICAgICBob29rRmxhZ3MsXG4gICAgICAgICAgICBmaW5pc2hlZFdvcmssXG4gICAgICAgICAgICBuZWFyZXN0TW91bnRlZEFuY2VzdG9yXG4gICAgICAgICAgKTtcbiAgICB9XG4gICAgZnVuY3Rpb24gY29tbWl0Q2xhc3NDYWxsYmFja3MoZmluaXNoZWRXb3JrKSB7XG4gICAgICB2YXIgdXBkYXRlUXVldWUgPSBmaW5pc2hlZFdvcmsudXBkYXRlUXVldWU7XG4gICAgICBpZiAobnVsbCAhPT0gdXBkYXRlUXVldWUpIHtcbiAgICAgICAgdmFyIGluc3RhbmNlID0gZmluaXNoZWRXb3JrLnN0YXRlTm9kZTtcbiAgICAgICAgZmluaXNoZWRXb3JrLnR5cGUuZGVmYXVsdFByb3BzIHx8XG4gICAgICAgICAgXCJyZWZcIiBpbiBmaW5pc2hlZFdvcmsubWVtb2l6ZWRQcm9wcyB8fFxuICAgICAgICAgIGRpZFdhcm5BYm91dFJlYXNzaWduaW5nUHJvcHMgfHxcbiAgICAgICAgICAoaW5zdGFuY2UucHJvcHMgIT09IGZpbmlzaGVkV29yay5tZW1vaXplZFByb3BzICYmXG4gICAgICAgICAgICBjb25zb2xlLmVycm9yKFxuICAgICAgICAgICAgICBcIkV4cGVjdGVkICVzIHByb3BzIHRvIG1hdGNoIG1lbW9pemVkIHByb3BzIGJlZm9yZSBwcm9jZXNzaW5nIHRoZSB1cGRhdGUgcXVldWUuIFRoaXMgbWlnaHQgZWl0aGVyIGJlIGJlY2F1c2Ugb2YgYSBidWcgaW4gUmVhY3QsIG9yIGJlY2F1c2UgYSBjb21wb25lbnQgcmVhc3NpZ25zIGl0cyBvd24gYHRoaXMucHJvcHNgLiBQbGVhc2UgZmlsZSBhbiBpc3N1ZS5cIixcbiAgICAgICAgICAgICAgZ2V0Q29tcG9uZW50TmFtZUZyb21GaWJlcihmaW5pc2hlZFdvcmspIHx8IFwiaW5zdGFuY2VcIlxuICAgICAgICAgICAgKSxcbiAgICAgICAgICBpbnN0YW5jZS5zdGF0ZSAhPT0gZmluaXNoZWRXb3JrLm1lbW9pemVkU3RhdGUgJiZcbiAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoXG4gICAgICAgICAgICAgIFwiRXhwZWN0ZWQgJXMgc3RhdGUgdG8gbWF0Y2ggbWVtb2l6ZWQgc3RhdGUgYmVmb3JlIHByb2Nlc3NpbmcgdGhlIHVwZGF0ZSBxdWV1ZS4gVGhpcyBtaWdodCBlaXRoZXIgYmUgYmVjYXVzZSBvZiBhIGJ1ZyBpbiBSZWFjdCwgb3IgYmVjYXVzZSBhIGNvbXBvbmVudCByZWFzc2lnbnMgaXRzIG93biBgdGhpcy5zdGF0ZWAuIFBsZWFzZSBmaWxlIGFuIGlzc3VlLlwiLFxuICAgICAgICAgICAgICBnZXRDb21wb25lbnROYW1lRnJvbUZpYmVyKGZpbmlzaGVkV29yaykgfHwgXCJpbnN0YW5jZVwiXG4gICAgICAgICAgICApKTtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICBydW5XaXRoRmliZXJJbkRFVihcbiAgICAgICAgICAgIGZpbmlzaGVkV29yayxcbiAgICAgICAgICAgIGNvbW1pdENhbGxiYWNrcyxcbiAgICAgICAgICAgIHVwZGF0ZVF1ZXVlLFxuICAgICAgICAgICAgaW5zdGFuY2VcbiAgICAgICAgICApO1xuICAgICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICAgIGNhcHR1cmVDb21taXRQaGFzZUVycm9yKGZpbmlzaGVkV29yaywgZmluaXNoZWRXb3JrLnJldHVybiwgZXJyb3IpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgIGZ1bmN0aW9uIGNhbGxHZXRTbmFwc2hvdEJlZm9yZVVwZGF0ZXMoaW5zdGFuY2UsIHByZXZQcm9wcywgcHJldlN0YXRlKSB7XG4gICAgICByZXR1cm4gaW5zdGFuY2UuZ2V0U25hcHNob3RCZWZvcmVVcGRhdGUocHJldlByb3BzLCBwcmV2U3RhdGUpO1xuICAgIH1cbiAgICBmdW5jdGlvbiBjb21taXRDbGFzc1NuYXBzaG90KGZpbmlzaGVkV29yaywgY3VycmVudCkge1xuICAgICAgdmFyIHByZXZQcm9wcyA9IGN1cnJlbnQubWVtb2l6ZWRQcm9wcyxcbiAgICAgICAgcHJldlN0YXRlID0gY3VycmVudC5tZW1vaXplZFN0YXRlO1xuICAgICAgY3VycmVudCA9IGZpbmlzaGVkV29yay5zdGF0ZU5vZGU7XG4gICAgICBmaW5pc2hlZFdvcmsudHlwZS5kZWZhdWx0UHJvcHMgfHxcbiAgICAgICAgXCJyZWZcIiBpbiBmaW5pc2hlZFdvcmsubWVtb2l6ZWRQcm9wcyB8fFxuICAgICAgICBkaWRXYXJuQWJvdXRSZWFzc2lnbmluZ1Byb3BzIHx8XG4gICAgICAgIChjdXJyZW50LnByb3BzICE9PSBmaW5pc2hlZFdvcmsubWVtb2l6ZWRQcm9wcyAmJlxuICAgICAgICAgIGNvbnNvbGUuZXJyb3IoXG4gICAgICAgICAgICBcIkV4cGVjdGVkICVzIHByb3BzIHRvIG1hdGNoIG1lbW9pemVkIHByb3BzIGJlZm9yZSBnZXRTbmFwc2hvdEJlZm9yZVVwZGF0ZS4gVGhpcyBtaWdodCBlaXRoZXIgYmUgYmVjYXVzZSBvZiBhIGJ1ZyBpbiBSZWFjdCwgb3IgYmVjYXVzZSBhIGNvbXBvbmVudCByZWFzc2lnbnMgaXRzIG93biBgdGhpcy5wcm9wc2AuIFBsZWFzZSBmaWxlIGFuIGlzc3VlLlwiLFxuICAgICAgICAgICAgZ2V0Q29tcG9uZW50TmFtZUZyb21GaWJlcihmaW5pc2hlZFdvcmspIHx8IFwiaW5zdGFuY2VcIlxuICAgICAgICAgICksXG4gICAgICAgIGN1cnJlbnQuc3RhdGUgIT09IGZpbmlzaGVkV29yay5tZW1vaXplZFN0YXRlICYmXG4gICAgICAgICAgY29uc29sZS5lcnJvcihcbiAgICAgICAgICAgIFwiRXhwZWN0ZWQgJXMgc3RhdGUgdG8gbWF0Y2ggbWVtb2l6ZWQgc3RhdGUgYmVmb3JlIGdldFNuYXBzaG90QmVmb3JlVXBkYXRlLiBUaGlzIG1pZ2h0IGVpdGhlciBiZSBiZWNhdXNlIG9mIGEgYnVnIGluIFJlYWN0LCBvciBiZWNhdXNlIGEgY29tcG9uZW50IHJlYXNzaWducyBpdHMgb3duIGB0aGlzLnN0YXRlYC4gUGxlYXNlIGZpbGUgYW4gaXNzdWUuXCIsXG4gICAgICAgICAgICBnZXRDb21wb25lbnROYW1lRnJvbUZpYmVyKGZpbmlzaGVkV29yaykgfHwgXCJpbnN0YW5jZVwiXG4gICAgICAgICAgKSk7XG4gICAgICB0cnkge1xuICAgICAgICB2YXIgcmVzb2x2ZWRQcmV2UHJvcHMgPSByZXNvbHZlQ2xhc3NDb21wb25lbnRQcm9wcyhcbiAgICAgICAgICBmaW5pc2hlZFdvcmsudHlwZSxcbiAgICAgICAgICBwcmV2UHJvcHMsXG4gICAgICAgICAgZmluaXNoZWRXb3JrLmVsZW1lbnRUeXBlID09PSBmaW5pc2hlZFdvcmsudHlwZVxuICAgICAgICApO1xuICAgICAgICB2YXIgc25hcHNob3QgPSBydW5XaXRoRmliZXJJbkRFVihcbiAgICAgICAgICBmaW5pc2hlZFdvcmssXG4gICAgICAgICAgY2FsbEdldFNuYXBzaG90QmVmb3JlVXBkYXRlcyxcbiAgICAgICAgICBjdXJyZW50LFxuICAgICAgICAgIHJlc29sdmVkUHJldlByb3BzLFxuICAgICAgICAgIHByZXZTdGF0ZVxuICAgICAgICApO1xuICAgICAgICBwcmV2UHJvcHMgPSBkaWRXYXJuQWJvdXRVbmRlZmluZWRTbmFwc2hvdEJlZm9yZVVwZGF0ZTtcbiAgICAgICAgdm9pZCAwICE9PSBzbmFwc2hvdCB8fFxuICAgICAgICAgIHByZXZQcm9wcy5oYXMoZmluaXNoZWRXb3JrLnR5cGUpIHx8XG4gICAgICAgICAgKHByZXZQcm9wcy5hZGQoZmluaXNoZWRXb3JrLnR5cGUpLFxuICAgICAgICAgIHJ1bldpdGhGaWJlckluREVWKGZpbmlzaGVkV29yaywgZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgY29uc29sZS5lcnJvcihcbiAgICAgICAgICAgICAgXCIlcy5nZXRTbmFwc2hvdEJlZm9yZVVwZGF0ZSgpOiBBIHNuYXBzaG90IHZhbHVlIChvciBudWxsKSBtdXN0IGJlIHJldHVybmVkLiBZb3UgaGF2ZSByZXR1cm5lZCB1bmRlZmluZWQuXCIsXG4gICAgICAgICAgICAgIGdldENvbXBvbmVudE5hbWVGcm9tRmliZXIoZmluaXNoZWRXb3JrKVxuICAgICAgICAgICAgKTtcbiAgICAgICAgICB9KSk7XG4gICAgICAgIGN1cnJlbnQuX19yZWFjdEludGVybmFsU25hcHNob3RCZWZvcmVVcGRhdGUgPSBzbmFwc2hvdDtcbiAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgIGNhcHR1cmVDb21taXRQaGFzZUVycm9yKGZpbmlzaGVkV29yaywgZmluaXNoZWRXb3JrLnJldHVybiwgZXJyb3IpO1xuICAgICAgfVxuICAgIH1cbiAgICBmdW5jdGlvbiBzYWZlbHlDYWxsQ29tcG9uZW50V2lsbFVubW91bnQoXG4gICAgICBjdXJyZW50LFxuICAgICAgbmVhcmVzdE1vdW50ZWRBbmNlc3RvcixcbiAgICAgIGluc3RhbmNlXG4gICAgKSB7XG4gICAgICBpbnN0YW5jZS5wcm9wcyA9IHJlc29sdmVDbGFzc0NvbXBvbmVudFByb3BzKFxuICAgICAgICBjdXJyZW50LnR5cGUsXG4gICAgICAgIGN1cnJlbnQubWVtb2l6ZWRQcm9wc1xuICAgICAgKTtcbiAgICAgIGluc3RhbmNlLnN0YXRlID0gY3VycmVudC5tZW1vaXplZFN0YXRlO1xuICAgICAgc2hvdWxkUHJvZmlsZShjdXJyZW50KVxuICAgICAgICA/IChzdGFydEVmZmVjdFRpbWVyKCksXG4gICAgICAgICAgcnVuV2l0aEZpYmVySW5ERVYoXG4gICAgICAgICAgICBjdXJyZW50LFxuICAgICAgICAgICAgY2FsbENvbXBvbmVudFdpbGxVbm1vdW50SW5ERVYsXG4gICAgICAgICAgICBjdXJyZW50LFxuICAgICAgICAgICAgbmVhcmVzdE1vdW50ZWRBbmNlc3RvcixcbiAgICAgICAgICAgIGluc3RhbmNlXG4gICAgICAgICAgKSxcbiAgICAgICAgICByZWNvcmRFZmZlY3REdXJhdGlvbigpKVxuICAgICAgICA6IHJ1bldpdGhGaWJlckluREVWKFxuICAgICAgICAgICAgY3VycmVudCxcbiAgICAgICAgICAgIGNhbGxDb21wb25lbnRXaWxsVW5tb3VudEluREVWLFxuICAgICAgICAgICAgY3VycmVudCxcbiAgICAgICAgICAgIG5lYXJlc3RNb3VudGVkQW5jZXN0b3IsXG4gICAgICAgICAgICBpbnN0YW5jZVxuICAgICAgICAgICk7XG4gICAgfVxuICAgIGZ1bmN0aW9uIGNvbW1pdEF0dGFjaFJlZihmaW5pc2hlZFdvcmspIHtcbiAgICAgIHZhciByZWYgPSBmaW5pc2hlZFdvcmsucmVmO1xuICAgICAgaWYgKG51bGwgIT09IHJlZikge1xuICAgICAgICBzd2l0Y2ggKGZpbmlzaGVkV29yay50YWcpIHtcbiAgICAgICAgICBjYXNlIDI2OlxuICAgICAgICAgIGNhc2UgMjc6XG4gICAgICAgICAgY2FzZSA1OlxuICAgICAgICAgICAgdmFyIGluc3RhbmNlVG9Vc2UgPSBmaW5pc2hlZFdvcmsuc3RhdGVOb2RlO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgY2FzZSAzMDpcbiAgICAgICAgICAgIGluc3RhbmNlVG9Vc2UgPSBmaW5pc2hlZFdvcmsuc3RhdGVOb2RlO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgIGluc3RhbmNlVG9Vc2UgPSBmaW5pc2hlZFdvcmsuc3RhdGVOb2RlO1xuICAgICAgICB9XG4gICAgICAgIGlmIChcImZ1bmN0aW9uXCIgPT09IHR5cGVvZiByZWYpXG4gICAgICAgICAgaWYgKHNob3VsZFByb2ZpbGUoZmluaXNoZWRXb3JrKSlcbiAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgIHN0YXJ0RWZmZWN0VGltZXIoKSxcbiAgICAgICAgICAgICAgICAoZmluaXNoZWRXb3JrLnJlZkNsZWFudXAgPSByZWYoaW5zdGFuY2VUb1VzZSkpO1xuICAgICAgICAgICAgfSBmaW5hbGx5IHtcbiAgICAgICAgICAgICAgcmVjb3JkRWZmZWN0RHVyYXRpb24oKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICBlbHNlIGZpbmlzaGVkV29yay5yZWZDbGVhbnVwID0gcmVmKGluc3RhbmNlVG9Vc2UpO1xuICAgICAgICBlbHNlXG4gICAgICAgICAgXCJzdHJpbmdcIiA9PT0gdHlwZW9mIHJlZlxuICAgICAgICAgICAgPyBjb25zb2xlLmVycm9yKFwiU3RyaW5nIHJlZnMgYXJlIG5vIGxvbmdlciBzdXBwb3J0ZWQuXCIpXG4gICAgICAgICAgICA6IHJlZi5oYXNPd25Qcm9wZXJ0eShcImN1cnJlbnRcIikgfHxcbiAgICAgICAgICAgICAgY29uc29sZS5lcnJvcihcbiAgICAgICAgICAgICAgICBcIlVuZXhwZWN0ZWQgcmVmIG9iamVjdCBwcm92aWRlZCBmb3IgJXMuIFVzZSBlaXRoZXIgYSByZWYtc2V0dGVyIGZ1bmN0aW9uIG9yIFJlYWN0LmNyZWF0ZVJlZigpLlwiLFxuICAgICAgICAgICAgICAgIGdldENvbXBvbmVudE5hbWVGcm9tRmliZXIoZmluaXNoZWRXb3JrKVxuICAgICAgICAgICAgICApLFxuICAgICAgICAgICAgKHJlZi5jdXJyZW50ID0gaW5zdGFuY2VUb1VzZSk7XG4gICAgICB9XG4gICAgfVxuICAgIGZ1bmN0aW9uIHNhZmVseUF0dGFjaFJlZihjdXJyZW50LCBuZWFyZXN0TW91bnRlZEFuY2VzdG9yKSB7XG4gICAgICB0cnkge1xuICAgICAgICBydW5XaXRoRmliZXJJbkRFVihjdXJyZW50LCBjb21taXRBdHRhY2hSZWYsIGN1cnJlbnQpO1xuICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgY2FwdHVyZUNvbW1pdFBoYXNlRXJyb3IoY3VycmVudCwgbmVhcmVzdE1vdW50ZWRBbmNlc3RvciwgZXJyb3IpO1xuICAgICAgfVxuICAgIH1cbiAgICBmdW5jdGlvbiBzYWZlbHlEZXRhY2hSZWYoY3VycmVudCwgbmVhcmVzdE1vdW50ZWRBbmNlc3Rvcikge1xuICAgICAgdmFyIHJlZiA9IGN1cnJlbnQucmVmLFxuICAgICAgICByZWZDbGVhbnVwID0gY3VycmVudC5yZWZDbGVhbnVwO1xuICAgICAgaWYgKG51bGwgIT09IHJlZilcbiAgICAgICAgaWYgKFwiZnVuY3Rpb25cIiA9PT0gdHlwZW9mIHJlZkNsZWFudXApXG4gICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIGlmIChzaG91bGRQcm9maWxlKGN1cnJlbnQpKVxuICAgICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgIHN0YXJ0RWZmZWN0VGltZXIoKSwgcnVuV2l0aEZpYmVySW5ERVYoY3VycmVudCwgcmVmQ2xlYW51cCk7XG4gICAgICAgICAgICAgIH0gZmluYWxseSB7XG4gICAgICAgICAgICAgICAgcmVjb3JkRWZmZWN0RHVyYXRpb24oY3VycmVudCk7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2UgcnVuV2l0aEZpYmVySW5ERVYoY3VycmVudCwgcmVmQ2xlYW51cCk7XG4gICAgICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgICAgIGNhcHR1cmVDb21taXRQaGFzZUVycm9yKGN1cnJlbnQsIG5lYXJlc3RNb3VudGVkQW5jZXN0b3IsIGVycm9yKTtcbiAgICAgICAgICB9IGZpbmFsbHkge1xuICAgICAgICAgICAgKGN1cnJlbnQucmVmQ2xlYW51cCA9IG51bGwpLFxuICAgICAgICAgICAgICAoY3VycmVudCA9IGN1cnJlbnQuYWx0ZXJuYXRlKSxcbiAgICAgICAgICAgICAgbnVsbCAhPSBjdXJyZW50ICYmIChjdXJyZW50LnJlZkNsZWFudXAgPSBudWxsKTtcbiAgICAgICAgICB9XG4gICAgICAgIGVsc2UgaWYgKFwiZnVuY3Rpb25cIiA9PT0gdHlwZW9mIHJlZilcbiAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgaWYgKHNob3VsZFByb2ZpbGUoY3VycmVudCkpXG4gICAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgc3RhcnRFZmZlY3RUaW1lcigpLCBydW5XaXRoRmliZXJJbkRFVihjdXJyZW50LCByZWYsIG51bGwpO1xuICAgICAgICAgICAgICB9IGZpbmFsbHkge1xuICAgICAgICAgICAgICAgIHJlY29yZEVmZmVjdER1cmF0aW9uKGN1cnJlbnQpO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIHJ1bldpdGhGaWJlckluREVWKGN1cnJlbnQsIHJlZiwgbnVsbCk7XG4gICAgICAgICAgfSBjYXRjaCAoZXJyb3IkNykge1xuICAgICAgICAgICAgY2FwdHVyZUNvbW1pdFBoYXNlRXJyb3IoY3VycmVudCwgbmVhcmVzdE1vdW50ZWRBbmNlc3RvciwgZXJyb3IkNyk7XG4gICAgICAgICAgfVxuICAgICAgICBlbHNlIHJlZi5jdXJyZW50ID0gbnVsbDtcbiAgICB9XG4gICAgZnVuY3Rpb24gY29tbWl0UHJvZmlsZXIoXG4gICAgICBmaW5pc2hlZFdvcmssXG4gICAgICBjdXJyZW50LFxuICAgICAgY29tbWl0U3RhcnRUaW1lLFxuICAgICAgZWZmZWN0RHVyYXRpb25cbiAgICApIHtcbiAgICAgIHZhciBfZmluaXNoZWRXb3JrJG1lbW9pemUgPSBmaW5pc2hlZFdvcmsubWVtb2l6ZWRQcm9wcyxcbiAgICAgICAgaWQgPSBfZmluaXNoZWRXb3JrJG1lbW9pemUuaWQsXG4gICAgICAgIG9uQ29tbWl0ID0gX2ZpbmlzaGVkV29yayRtZW1vaXplLm9uQ29tbWl0O1xuICAgICAgX2ZpbmlzaGVkV29yayRtZW1vaXplID0gX2ZpbmlzaGVkV29yayRtZW1vaXplLm9uUmVuZGVyO1xuICAgICAgY3VycmVudCA9IG51bGwgPT09IGN1cnJlbnQgPyBcIm1vdW50XCIgOiBcInVwZGF0ZVwiO1xuICAgICAgY3VycmVudFVwZGF0ZUlzTmVzdGVkICYmIChjdXJyZW50ID0gXCJuZXN0ZWQtdXBkYXRlXCIpO1xuICAgICAgXCJmdW5jdGlvblwiID09PSB0eXBlb2YgX2ZpbmlzaGVkV29yayRtZW1vaXplICYmXG4gICAgICAgIF9maW5pc2hlZFdvcmskbWVtb2l6ZShcbiAgICAgICAgICBpZCxcbiAgICAgICAgICBjdXJyZW50LFxuICAgICAgICAgIGZpbmlzaGVkV29yay5hY3R1YWxEdXJhdGlvbixcbiAgICAgICAgICBmaW5pc2hlZFdvcmsudHJlZUJhc2VEdXJhdGlvbixcbiAgICAgICAgICBmaW5pc2hlZFdvcmsuYWN0dWFsU3RhcnRUaW1lLFxuICAgICAgICAgIGNvbW1pdFN0YXJ0VGltZVxuICAgICAgICApO1xuICAgICAgXCJmdW5jdGlvblwiID09PSB0eXBlb2Ygb25Db21taXQgJiZcbiAgICAgICAgb25Db21taXQoXG4gICAgICAgICAgZmluaXNoZWRXb3JrLm1lbW9pemVkUHJvcHMuaWQsXG4gICAgICAgICAgY3VycmVudCxcbiAgICAgICAgICBlZmZlY3REdXJhdGlvbixcbiAgICAgICAgICBjb21taXRTdGFydFRpbWVcbiAgICAgICAgKTtcbiAgICB9XG4gICAgZnVuY3Rpb24gY29tbWl0UHJvZmlsZXJQb3N0Q29tbWl0SW1wbChcbiAgICAgIGZpbmlzaGVkV29yayxcbiAgICAgIGN1cnJlbnQsXG4gICAgICBjb21taXRTdGFydFRpbWUsXG4gICAgICBwYXNzaXZlRWZmZWN0RHVyYXRpb25cbiAgICApIHtcbiAgICAgIHZhciBfZmluaXNoZWRXb3JrJG1lbW9pemUyID0gZmluaXNoZWRXb3JrLm1lbW9pemVkUHJvcHM7XG4gICAgICBmaW5pc2hlZFdvcmsgPSBfZmluaXNoZWRXb3JrJG1lbW9pemUyLmlkO1xuICAgICAgX2ZpbmlzaGVkV29yayRtZW1vaXplMiA9IF9maW5pc2hlZFdvcmskbWVtb2l6ZTIub25Qb3N0Q29tbWl0O1xuICAgICAgY3VycmVudCA9IG51bGwgPT09IGN1cnJlbnQgPyBcIm1vdW50XCIgOiBcInVwZGF0ZVwiO1xuICAgICAgY3VycmVudFVwZGF0ZUlzTmVzdGVkICYmIChjdXJyZW50ID0gXCJuZXN0ZWQtdXBkYXRlXCIpO1xuICAgICAgXCJmdW5jdGlvblwiID09PSB0eXBlb2YgX2ZpbmlzaGVkV29yayRtZW1vaXplMiAmJlxuICAgICAgICBfZmluaXNoZWRXb3JrJG1lbW9pemUyKFxuICAgICAgICAgIGZpbmlzaGVkV29yayxcbiAgICAgICAgICBjdXJyZW50LFxuICAgICAgICAgIHBhc3NpdmVFZmZlY3REdXJhdGlvbixcbiAgICAgICAgICBjb21taXRTdGFydFRpbWVcbiAgICAgICAgKTtcbiAgICB9XG4gICAgZnVuY3Rpb24gY29tbWl0SG9zdE1vdW50KGZpbmlzaGVkV29yaykge1xuICAgICAgdmFyIHR5cGUgPSBmaW5pc2hlZFdvcmsudHlwZSxcbiAgICAgICAgcHJvcHMgPSBmaW5pc2hlZFdvcmsubWVtb2l6ZWRQcm9wcyxcbiAgICAgICAgaW5zdGFuY2UgPSBmaW5pc2hlZFdvcmsuc3RhdGVOb2RlO1xuICAgICAgdHJ5IHtcbiAgICAgICAgcnVuV2l0aEZpYmVySW5ERVYoXG4gICAgICAgICAgZmluaXNoZWRXb3JrLFxuICAgICAgICAgIGNvbW1pdE1vdW50LFxuICAgICAgICAgIGluc3RhbmNlLFxuICAgICAgICAgIHR5cGUsXG4gICAgICAgICAgcHJvcHMsXG4gICAgICAgICAgZmluaXNoZWRXb3JrXG4gICAgICAgICk7XG4gICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICBjYXB0dXJlQ29tbWl0UGhhc2VFcnJvcihmaW5pc2hlZFdvcmssIGZpbmlzaGVkV29yay5yZXR1cm4sIGVycm9yKTtcbiAgICAgIH1cbiAgICB9XG4gICAgZnVuY3Rpb24gY29tbWl0SG9zdFVwZGF0ZShmaW5pc2hlZFdvcmssIG5ld1Byb3BzLCBvbGRQcm9wcykge1xuICAgICAgdHJ5IHtcbiAgICAgICAgcnVuV2l0aEZpYmVySW5ERVYoXG4gICAgICAgICAgZmluaXNoZWRXb3JrLFxuICAgICAgICAgIGNvbW1pdFVwZGF0ZSxcbiAgICAgICAgICBmaW5pc2hlZFdvcmsuc3RhdGVOb2RlLFxuICAgICAgICAgIGZpbmlzaGVkV29yay50eXBlLFxuICAgICAgICAgIG9sZFByb3BzLFxuICAgICAgICAgIG5ld1Byb3BzLFxuICAgICAgICAgIGZpbmlzaGVkV29ya1xuICAgICAgICApO1xuICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgY2FwdHVyZUNvbW1pdFBoYXNlRXJyb3IoZmluaXNoZWRXb3JrLCBmaW5pc2hlZFdvcmsucmV0dXJuLCBlcnJvcik7XG4gICAgICB9XG4gICAgfVxuICAgIGZ1bmN0aW9uIGlzSG9zdFBhcmVudChmaWJlcikge1xuICAgICAgcmV0dXJuIChcbiAgICAgICAgNSA9PT0gZmliZXIudGFnIHx8XG4gICAgICAgIDMgPT09IGZpYmVyLnRhZyB8fFxuICAgICAgICAyNiA9PT0gZmliZXIudGFnIHx8XG4gICAgICAgICgyNyA9PT0gZmliZXIudGFnICYmIGlzU2luZ2xldG9uU2NvcGUoZmliZXIudHlwZSkpIHx8XG4gICAgICAgIDQgPT09IGZpYmVyLnRhZ1xuICAgICAgKTtcbiAgICB9XG4gICAgZnVuY3Rpb24gZ2V0SG9zdFNpYmxpbmcoZmliZXIpIHtcbiAgICAgIGE6IGZvciAoOzspIHtcbiAgICAgICAgZm9yICg7IG51bGwgPT09IGZpYmVyLnNpYmxpbmc7ICkge1xuICAgICAgICAgIGlmIChudWxsID09PSBmaWJlci5yZXR1cm4gfHwgaXNIb3N0UGFyZW50KGZpYmVyLnJldHVybikpIHJldHVybiBudWxsO1xuICAgICAgICAgIGZpYmVyID0gZmliZXIucmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGZpYmVyLnNpYmxpbmcucmV0dXJuID0gZmliZXIucmV0dXJuO1xuICAgICAgICBmb3IgKFxuICAgICAgICAgIGZpYmVyID0gZmliZXIuc2libGluZztcbiAgICAgICAgICA1ICE9PSBmaWJlci50YWcgJiYgNiAhPT0gZmliZXIudGFnICYmIDE4ICE9PSBmaWJlci50YWc7XG5cbiAgICAgICAgKSB7XG4gICAgICAgICAgaWYgKDI3ID09PSBmaWJlci50YWcgJiYgaXNTaW5nbGV0b25TY29wZShmaWJlci50eXBlKSkgY29udGludWUgYTtcbiAgICAgICAgICBpZiAoZmliZXIuZmxhZ3MgJiAyKSBjb250aW51ZSBhO1xuICAgICAgICAgIGlmIChudWxsID09PSBmaWJlci5jaGlsZCB8fCA0ID09PSBmaWJlci50YWcpIGNvbnRpbnVlIGE7XG4gICAgICAgICAgZWxzZSAoZmliZXIuY2hpbGQucmV0dXJuID0gZmliZXIpLCAoZmliZXIgPSBmaWJlci5jaGlsZCk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKCEoZmliZXIuZmxhZ3MgJiAyKSkgcmV0dXJuIGZpYmVyLnN0YXRlTm9kZTtcbiAgICAgIH1cbiAgICB9XG4gICAgZnVuY3Rpb24gaW5zZXJ0T3JBcHBlbmRQbGFjZW1lbnROb2RlSW50b0NvbnRhaW5lcihub2RlLCBiZWZvcmUsIHBhcmVudCkge1xuICAgICAgdmFyIHRhZyA9IG5vZGUudGFnO1xuICAgICAgaWYgKDUgPT09IHRhZyB8fCA2ID09PSB0YWcpXG4gICAgICAgIChub2RlID0gbm9kZS5zdGF0ZU5vZGUpLFxuICAgICAgICAgIGJlZm9yZVxuICAgICAgICAgICAgPyAoOSA9PT0gcGFyZW50Lm5vZGVUeXBlXG4gICAgICAgICAgICAgICAgPyBwYXJlbnQuYm9keVxuICAgICAgICAgICAgICAgIDogXCJIVE1MXCIgPT09IHBhcmVudC5ub2RlTmFtZVxuICAgICAgICAgICAgICAgICAgPyBwYXJlbnQub3duZXJEb2N1bWVudC5ib2R5XG4gICAgICAgICAgICAgICAgICA6IHBhcmVudFxuICAgICAgICAgICAgICApLmluc2VydEJlZm9yZShub2RlLCBiZWZvcmUpXG4gICAgICAgICAgICA6ICgoYmVmb3JlID1cbiAgICAgICAgICAgICAgICA5ID09PSBwYXJlbnQubm9kZVR5cGVcbiAgICAgICAgICAgICAgICAgID8gcGFyZW50LmJvZHlcbiAgICAgICAgICAgICAgICAgIDogXCJIVE1MXCIgPT09IHBhcmVudC5ub2RlTmFtZVxuICAgICAgICAgICAgICAgICAgICA/IHBhcmVudC5vd25lckRvY3VtZW50LmJvZHlcbiAgICAgICAgICAgICAgICAgICAgOiBwYXJlbnQpLFxuICAgICAgICAgICAgICBiZWZvcmUuYXBwZW5kQ2hpbGQobm9kZSksXG4gICAgICAgICAgICAgIChwYXJlbnQgPSBwYXJlbnQuX3JlYWN0Um9vdENvbnRhaW5lciksXG4gICAgICAgICAgICAgIChudWxsICE9PSBwYXJlbnQgJiYgdm9pZCAwICE9PSBwYXJlbnQpIHx8XG4gICAgICAgICAgICAgICAgbnVsbCAhPT0gYmVmb3JlLm9uY2xpY2sgfHxcbiAgICAgICAgICAgICAgICAoYmVmb3JlLm9uY2xpY2sgPSBub29wJDEpKTtcbiAgICAgIGVsc2UgaWYgKFxuICAgICAgICA0ICE9PSB0YWcgJiZcbiAgICAgICAgKDI3ID09PSB0YWcgJiZcbiAgICAgICAgICBpc1NpbmdsZXRvblNjb3BlKG5vZGUudHlwZSkgJiZcbiAgICAgICAgICAoKHBhcmVudCA9IG5vZGUuc3RhdGVOb2RlKSwgKGJlZm9yZSA9IG51bGwpKSxcbiAgICAgICAgKG5vZGUgPSBub2RlLmNoaWxkKSxcbiAgICAgICAgbnVsbCAhPT0gbm9kZSlcbiAgICAgIClcbiAgICAgICAgZm9yIChcbiAgICAgICAgICBpbnNlcnRPckFwcGVuZFBsYWNlbWVudE5vZGVJbnRvQ29udGFpbmVyKG5vZGUsIGJlZm9yZSwgcGFyZW50KSxcbiAgICAgICAgICAgIG5vZGUgPSBub2RlLnNpYmxpbmc7XG4gICAgICAgICAgbnVsbCAhPT0gbm9kZTtcblxuICAgICAgICApXG4gICAgICAgICAgaW5zZXJ0T3JBcHBlbmRQbGFjZW1lbnROb2RlSW50b0NvbnRhaW5lcihub2RlLCBiZWZvcmUsIHBhcmVudCksXG4gICAgICAgICAgICAobm9kZSA9IG5vZGUuc2libGluZyk7XG4gICAgfVxuICAgIGZ1bmN0aW9uIGluc2VydE9yQXBwZW5kUGxhY2VtZW50Tm9kZShub2RlLCBiZWZvcmUsIHBhcmVudCkge1xuICAgICAgdmFyIHRhZyA9IG5vZGUudGFnO1xuICAgICAgaWYgKDUgPT09IHRhZyB8fCA2ID09PSB0YWcpXG4gICAgICAgIChub2RlID0gbm9kZS5zdGF0ZU5vZGUpLFxuICAgICAgICAgIGJlZm9yZSA/IHBhcmVudC5pbnNlcnRCZWZvcmUobm9kZSwgYmVmb3JlKSA6IHBhcmVudC5hcHBlbmRDaGlsZChub2RlKTtcbiAgICAgIGVsc2UgaWYgKFxuICAgICAgICA0ICE9PSB0YWcgJiZcbiAgICAgICAgKDI3ID09PSB0YWcgJiYgaXNTaW5nbGV0b25TY29wZShub2RlLnR5cGUpICYmIChwYXJlbnQgPSBub2RlLnN0YXRlTm9kZSksXG4gICAgICAgIChub2RlID0gbm9kZS5jaGlsZCksXG4gICAgICAgIG51bGwgIT09IG5vZGUpXG4gICAgICApXG4gICAgICAgIGZvciAoXG4gICAgICAgICAgaW5zZXJ0T3JBcHBlbmRQbGFjZW1lbnROb2RlKG5vZGUsIGJlZm9yZSwgcGFyZW50KSxcbiAgICAgICAgICAgIG5vZGUgPSBub2RlLnNpYmxpbmc7XG4gICAgICAgICAgbnVsbCAhPT0gbm9kZTtcblxuICAgICAgICApXG4gICAgICAgICAgaW5zZXJ0T3JBcHBlbmRQbGFjZW1lbnROb2RlKG5vZGUsIGJlZm9yZSwgcGFyZW50KSxcbiAgICAgICAgICAgIChub2RlID0gbm9kZS5zaWJsaW5nKTtcbiAgICB9XG4gICAgZnVuY3Rpb24gY29tbWl0UGxhY2VtZW50KGZpbmlzaGVkV29yaykge1xuICAgICAgZm9yIChcbiAgICAgICAgdmFyIGhvc3RQYXJlbnRGaWJlciwgcGFyZW50RmliZXIgPSBmaW5pc2hlZFdvcmsucmV0dXJuO1xuICAgICAgICBudWxsICE9PSBwYXJlbnRGaWJlcjtcblxuICAgICAgKSB7XG4gICAgICAgIGlmIChpc0hvc3RQYXJlbnQocGFyZW50RmliZXIpKSB7XG4gICAgICAgICAgaG9zdFBhcmVudEZpYmVyID0gcGFyZW50RmliZXI7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgcGFyZW50RmliZXIgPSBwYXJlbnRGaWJlci5yZXR1cm47XG4gICAgICB9XG4gICAgICBpZiAobnVsbCA9PSBob3N0UGFyZW50RmliZXIpXG4gICAgICAgIHRocm93IEVycm9yKFxuICAgICAgICAgIFwiRXhwZWN0ZWQgdG8gZmluZCBhIGhvc3QgcGFyZW50LiBUaGlzIGVycm9yIGlzIGxpa2VseSBjYXVzZWQgYnkgYSBidWcgaW4gUmVhY3QuIFBsZWFzZSBmaWxlIGFuIGlzc3VlLlwiXG4gICAgICAgICk7XG4gICAgICBzd2l0Y2ggKGhvc3RQYXJlbnRGaWJlci50YWcpIHtcbiAgICAgICAgY2FzZSAyNzpcbiAgICAgICAgICBob3N0UGFyZW50RmliZXIgPSBob3N0UGFyZW50RmliZXIuc3RhdGVOb2RlO1xuICAgICAgICAgIHBhcmVudEZpYmVyID0gZ2V0SG9zdFNpYmxpbmcoZmluaXNoZWRXb3JrKTtcbiAgICAgICAgICBpbnNlcnRPckFwcGVuZFBsYWNlbWVudE5vZGUoXG4gICAgICAgICAgICBmaW5pc2hlZFdvcmssXG4gICAgICAgICAgICBwYXJlbnRGaWJlcixcbiAgICAgICAgICAgIGhvc3RQYXJlbnRGaWJlclxuICAgICAgICAgICk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgNTpcbiAgICAgICAgICBwYXJlbnRGaWJlciA9IGhvc3RQYXJlbnRGaWJlci5zdGF0ZU5vZGU7XG4gICAgICAgICAgaG9zdFBhcmVudEZpYmVyLmZsYWdzICYgMzIgJiZcbiAgICAgICAgICAgIChyZXNldFRleHRDb250ZW50KHBhcmVudEZpYmVyKSwgKGhvc3RQYXJlbnRGaWJlci5mbGFncyAmPSAtMzMpKTtcbiAgICAgICAgICBob3N0UGFyZW50RmliZXIgPSBnZXRIb3N0U2libGluZyhmaW5pc2hlZFdvcmspO1xuICAgICAgICAgIGluc2VydE9yQXBwZW5kUGxhY2VtZW50Tm9kZShcbiAgICAgICAgICAgIGZpbmlzaGVkV29yayxcbiAgICAgICAgICAgIGhvc3RQYXJlbnRGaWJlcixcbiAgICAgICAgICAgIHBhcmVudEZpYmVyXG4gICAgICAgICAgKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAzOlxuICAgICAgICBjYXNlIDQ6XG4gICAgICAgICAgaG9zdFBhcmVudEZpYmVyID0gaG9zdFBhcmVudEZpYmVyLnN0YXRlTm9kZS5jb250YWluZXJJbmZvO1xuICAgICAgICAgIHBhcmVudEZpYmVyID0gZ2V0SG9zdFNpYmxpbmcoZmluaXNoZWRXb3JrKTtcbiAgICAgICAgICBpbnNlcnRPckFwcGVuZFBsYWNlbWVudE5vZGVJbnRvQ29udGFpbmVyKFxuICAgICAgICAgICAgZmluaXNoZWRXb3JrLFxuICAgICAgICAgICAgcGFyZW50RmliZXIsXG4gICAgICAgICAgICBob3N0UGFyZW50RmliZXJcbiAgICAgICAgICApO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgIHRocm93IEVycm9yKFxuICAgICAgICAgICAgXCJJbnZhbGlkIGhvc3QgcGFyZW50IGZpYmVyLiBUaGlzIGVycm9yIGlzIGxpa2VseSBjYXVzZWQgYnkgYSBidWcgaW4gUmVhY3QuIFBsZWFzZSBmaWxlIGFuIGlzc3VlLlwiXG4gICAgICAgICAgKTtcbiAgICAgIH1cbiAgICB9XG4gICAgZnVuY3Rpb24gY29tbWl0SG9zdFNpbmdsZXRvbkFjcXVpc2l0aW9uKGZpbmlzaGVkV29yaykge1xuICAgICAgdmFyIHNpbmdsZXRvbiA9IGZpbmlzaGVkV29yay5zdGF0ZU5vZGUsXG4gICAgICAgIHByb3BzID0gZmluaXNoZWRXb3JrLm1lbW9pemVkUHJvcHM7XG4gICAgICB0cnkge1xuICAgICAgICBydW5XaXRoRmliZXJJbkRFVihcbiAgICAgICAgICBmaW5pc2hlZFdvcmssXG4gICAgICAgICAgYWNxdWlyZVNpbmdsZXRvbkluc3RhbmNlLFxuICAgICAgICAgIGZpbmlzaGVkV29yay50eXBlLFxuICAgICAgICAgIHByb3BzLFxuICAgICAgICAgIHNpbmdsZXRvbixcbiAgICAgICAgICBmaW5pc2hlZFdvcmtcbiAgICAgICAgKTtcbiAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgIGNhcHR1cmVDb21taXRQaGFzZUVycm9yKGZpbmlzaGVkV29yaywgZmluaXNoZWRXb3JrLnJldHVybiwgZXJyb3IpO1xuICAgICAgfVxuICAgIH1cbiAgICBmdW5jdGlvbiBjb21taXRCZWZvcmVNdXRhdGlvbkVmZmVjdHMocm9vdCwgZmlyc3RDaGlsZCkge1xuICAgICAgcm9vdCA9IHJvb3QuY29udGFpbmVySW5mbztcbiAgICAgIGV2ZW50c0VuYWJsZWQgPSBfZW5hYmxlZDtcbiAgICAgIHJvb3QgPSBnZXRBY3RpdmVFbGVtZW50RGVlcChyb290KTtcbiAgICAgIGlmIChoYXNTZWxlY3Rpb25DYXBhYmlsaXRpZXMocm9vdCkpIHtcbiAgICAgICAgaWYgKFwic2VsZWN0aW9uU3RhcnRcIiBpbiByb290KVxuICAgICAgICAgIHZhciBKU0NvbXBpbGVyX3RlbXAgPSB7XG4gICAgICAgICAgICBzdGFydDogcm9vdC5zZWxlY3Rpb25TdGFydCxcbiAgICAgICAgICAgIGVuZDogcm9vdC5zZWxlY3Rpb25FbmRcbiAgICAgICAgICB9O1xuICAgICAgICBlbHNlXG4gICAgICAgICAgYToge1xuICAgICAgICAgICAgSlNDb21waWxlcl90ZW1wID1cbiAgICAgICAgICAgICAgKChKU0NvbXBpbGVyX3RlbXAgPSByb290Lm93bmVyRG9jdW1lbnQpICYmXG4gICAgICAgICAgICAgICAgSlNDb21waWxlcl90ZW1wLmRlZmF1bHRWaWV3KSB8fFxuICAgICAgICAgICAgICB3aW5kb3c7XG4gICAgICAgICAgICB2YXIgc2VsZWN0aW9uID1cbiAgICAgICAgICAgICAgSlNDb21waWxlcl90ZW1wLmdldFNlbGVjdGlvbiAmJiBKU0NvbXBpbGVyX3RlbXAuZ2V0U2VsZWN0aW9uKCk7XG4gICAgICAgICAgICBpZiAoc2VsZWN0aW9uICYmIDAgIT09IHNlbGVjdGlvbi5yYW5nZUNvdW50KSB7XG4gICAgICAgICAgICAgIEpTQ29tcGlsZXJfdGVtcCA9IHNlbGVjdGlvbi5hbmNob3JOb2RlO1xuICAgICAgICAgICAgICB2YXIgYW5jaG9yT2Zmc2V0ID0gc2VsZWN0aW9uLmFuY2hvck9mZnNldCxcbiAgICAgICAgICAgICAgICBmb2N1c05vZGUgPSBzZWxlY3Rpb24uZm9jdXNOb2RlO1xuICAgICAgICAgICAgICBzZWxlY3Rpb24gPSBzZWxlY3Rpb24uZm9jdXNPZmZzZXQ7XG4gICAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgSlNDb21waWxlcl90ZW1wLm5vZGVUeXBlLCBmb2N1c05vZGUubm9kZVR5cGU7XG4gICAgICAgICAgICAgIH0gY2F0Y2ggKGUkMikge1xuICAgICAgICAgICAgICAgIEpTQ29tcGlsZXJfdGVtcCA9IG51bGw7XG4gICAgICAgICAgICAgICAgYnJlYWsgYTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB2YXIgbGVuZ3RoID0gMCxcbiAgICAgICAgICAgICAgICBzdGFydCA9IC0xLFxuICAgICAgICAgICAgICAgIGVuZCA9IC0xLFxuICAgICAgICAgICAgICAgIGluZGV4V2l0aGluQW5jaG9yID0gMCxcbiAgICAgICAgICAgICAgICBpbmRleFdpdGhpbkZvY3VzID0gMCxcbiAgICAgICAgICAgICAgICBub2RlID0gcm9vdCxcbiAgICAgICAgICAgICAgICBwYXJlbnROb2RlID0gbnVsbDtcbiAgICAgICAgICAgICAgYjogZm9yICg7Oykge1xuICAgICAgICAgICAgICAgIGZvciAodmFyIG5leHQ7IDsgKSB7XG4gICAgICAgICAgICAgICAgICBub2RlICE9PSBKU0NvbXBpbGVyX3RlbXAgfHxcbiAgICAgICAgICAgICAgICAgICAgKDAgIT09IGFuY2hvck9mZnNldCAmJiAzICE9PSBub2RlLm5vZGVUeXBlKSB8fFxuICAgICAgICAgICAgICAgICAgICAoc3RhcnQgPSBsZW5ndGggKyBhbmNob3JPZmZzZXQpO1xuICAgICAgICAgICAgICAgICAgbm9kZSAhPT0gZm9jdXNOb2RlIHx8XG4gICAgICAgICAgICAgICAgICAgICgwICE9PSBzZWxlY3Rpb24gJiYgMyAhPT0gbm9kZS5ub2RlVHlwZSkgfHxcbiAgICAgICAgICAgICAgICAgICAgKGVuZCA9IGxlbmd0aCArIHNlbGVjdGlvbik7XG4gICAgICAgICAgICAgICAgICAzID09PSBub2RlLm5vZGVUeXBlICYmIChsZW5ndGggKz0gbm9kZS5ub2RlVmFsdWUubGVuZ3RoKTtcbiAgICAgICAgICAgICAgICAgIGlmIChudWxsID09PSAobmV4dCA9IG5vZGUuZmlyc3RDaGlsZCkpIGJyZWFrO1xuICAgICAgICAgICAgICAgICAgcGFyZW50Tm9kZSA9IG5vZGU7XG4gICAgICAgICAgICAgICAgICBub2RlID0gbmV4dDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZm9yICg7Oykge1xuICAgICAgICAgICAgICAgICAgaWYgKG5vZGUgPT09IHJvb3QpIGJyZWFrIGI7XG4gICAgICAgICAgICAgICAgICBwYXJlbnROb2RlID09PSBKU0NvbXBpbGVyX3RlbXAgJiZcbiAgICAgICAgICAgICAgICAgICAgKytpbmRleFdpdGhpbkFuY2hvciA9PT0gYW5jaG9yT2Zmc2V0ICYmXG4gICAgICAgICAgICAgICAgICAgIChzdGFydCA9IGxlbmd0aCk7XG4gICAgICAgICAgICAgICAgICBwYXJlbnROb2RlID09PSBmb2N1c05vZGUgJiZcbiAgICAgICAgICAgICAgICAgICAgKytpbmRleFdpdGhpbkZvY3VzID09PSBzZWxlY3Rpb24gJiZcbiAgICAgICAgICAgICAgICAgICAgKGVuZCA9IGxlbmd0aCk7XG4gICAgICAgICAgICAgICAgICBpZiAobnVsbCAhPT0gKG5leHQgPSBub2RlLm5leHRTaWJsaW5nKSkgYnJlYWs7XG4gICAgICAgICAgICAgICAgICBub2RlID0gcGFyZW50Tm9kZTtcbiAgICAgICAgICAgICAgICAgIHBhcmVudE5vZGUgPSBub2RlLnBhcmVudE5vZGU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIG5vZGUgPSBuZXh0O1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIEpTQ29tcGlsZXJfdGVtcCA9XG4gICAgICAgICAgICAgICAgLTEgPT09IHN0YXJ0IHx8IC0xID09PSBlbmQgPyBudWxsIDogeyBzdGFydDogc3RhcnQsIGVuZDogZW5kIH07XG4gICAgICAgICAgICB9IGVsc2UgSlNDb21waWxlcl90ZW1wID0gbnVsbDtcbiAgICAgICAgICB9XG4gICAgICAgIEpTQ29tcGlsZXJfdGVtcCA9IEpTQ29tcGlsZXJfdGVtcCB8fCB7IHN0YXJ0OiAwLCBlbmQ6IDAgfTtcbiAgICAgIH0gZWxzZSBKU0NvbXBpbGVyX3RlbXAgPSBudWxsO1xuICAgICAgc2VsZWN0aW9uSW5mb3JtYXRpb24gPSB7XG4gICAgICAgIGZvY3VzZWRFbGVtOiByb290LFxuICAgICAgICBzZWxlY3Rpb25SYW5nZTogSlNDb21waWxlcl90ZW1wXG4gICAgICB9O1xuICAgICAgX2VuYWJsZWQgPSAhMTtcbiAgICAgIGZvciAobmV4dEVmZmVjdCA9IGZpcnN0Q2hpbGQ7IG51bGwgIT09IG5leHRFZmZlY3Q7IClcbiAgICAgICAgaWYgKFxuICAgICAgICAgICgoZmlyc3RDaGlsZCA9IG5leHRFZmZlY3QpLFxuICAgICAgICAgIChyb290ID0gZmlyc3RDaGlsZC5jaGlsZCksXG4gICAgICAgICAgMCAhPT0gKGZpcnN0Q2hpbGQuc3VidHJlZUZsYWdzICYgMTAyNCkgJiYgbnVsbCAhPT0gcm9vdClcbiAgICAgICAgKVxuICAgICAgICAgIChyb290LnJldHVybiA9IGZpcnN0Q2hpbGQpLCAobmV4dEVmZmVjdCA9IHJvb3QpO1xuICAgICAgICBlbHNlXG4gICAgICAgICAgZm9yICg7IG51bGwgIT09IG5leHRFZmZlY3Q7ICkge1xuICAgICAgICAgICAgcm9vdCA9IGZpcnN0Q2hpbGQgPSBuZXh0RWZmZWN0O1xuICAgICAgICAgICAgSlNDb21waWxlcl90ZW1wID0gcm9vdC5hbHRlcm5hdGU7XG4gICAgICAgICAgICBhbmNob3JPZmZzZXQgPSByb290LmZsYWdzO1xuICAgICAgICAgICAgc3dpdGNoIChyb290LnRhZykge1xuICAgICAgICAgICAgICBjYXNlIDA6XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgIGNhc2UgMTE6XG4gICAgICAgICAgICAgIGNhc2UgMTU6XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgIGNhc2UgMTpcbiAgICAgICAgICAgICAgICAwICE9PSAoYW5jaG9yT2Zmc2V0ICYgMTAyNCkgJiZcbiAgICAgICAgICAgICAgICAgIG51bGwgIT09IEpTQ29tcGlsZXJfdGVtcCAmJlxuICAgICAgICAgICAgICAgICAgY29tbWl0Q2xhc3NTbmFwc2hvdChyb290LCBKU0NvbXBpbGVyX3RlbXApO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICBjYXNlIDM6XG4gICAgICAgICAgICAgICAgaWYgKDAgIT09IChhbmNob3JPZmZzZXQgJiAxMDI0KSlcbiAgICAgICAgICAgICAgICAgIGlmIChcbiAgICAgICAgICAgICAgICAgICAgKChyb290ID0gcm9vdC5zdGF0ZU5vZGUuY29udGFpbmVySW5mbyksXG4gICAgICAgICAgICAgICAgICAgIChKU0NvbXBpbGVyX3RlbXAgPSByb290Lm5vZGVUeXBlKSxcbiAgICAgICAgICAgICAgICAgICAgOSA9PT0gSlNDb21waWxlcl90ZW1wKVxuICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgICAgICBjbGVhckNvbnRhaW5lclNwYXJpbmdseShyb290KTtcbiAgICAgICAgICAgICAgICAgIGVsc2UgaWYgKDEgPT09IEpTQ29tcGlsZXJfdGVtcClcbiAgICAgICAgICAgICAgICAgICAgc3dpdGNoIChyb290Lm5vZGVOYW1lKSB7XG4gICAgICAgICAgICAgICAgICAgICAgY2FzZSBcIkhFQURcIjpcbiAgICAgICAgICAgICAgICAgICAgICBjYXNlIFwiSFRNTFwiOlxuICAgICAgICAgICAgICAgICAgICAgIGNhc2UgXCJCT0RZXCI6XG4gICAgICAgICAgICAgICAgICAgICAgICBjbGVhckNvbnRhaW5lclNwYXJpbmdseShyb290KTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgICAgICAgICByb290LnRleHRDb250ZW50ID0gXCJcIjtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICBjYXNlIDU6XG4gICAgICAgICAgICAgIGNhc2UgMjY6XG4gICAgICAgICAgICAgIGNhc2UgMjc6XG4gICAgICAgICAgICAgIGNhc2UgNjpcbiAgICAgICAgICAgICAgY2FzZSA0OlxuICAgICAgICAgICAgICBjYXNlIDE3OlxuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgIGlmICgwICE9PSAoYW5jaG9yT2Zmc2V0ICYgMTAyNCkpXG4gICAgICAgICAgICAgICAgICB0aHJvdyBFcnJvcihcbiAgICAgICAgICAgICAgICAgICAgXCJUaGlzIHVuaXQgb2Ygd29yayB0YWcgc2hvdWxkIG5vdCBoYXZlIHNpZGUtZWZmZWN0cy4gVGhpcyBlcnJvciBpcyBsaWtlbHkgY2F1c2VkIGJ5IGEgYnVnIGluIFJlYWN0LiBQbGVhc2UgZmlsZSBhbiBpc3N1ZS5cIlxuICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJvb3QgPSBmaXJzdENoaWxkLnNpYmxpbmc7XG4gICAgICAgICAgICBpZiAobnVsbCAhPT0gcm9vdCkge1xuICAgICAgICAgICAgICByb290LnJldHVybiA9IGZpcnN0Q2hpbGQucmV0dXJuO1xuICAgICAgICAgICAgICBuZXh0RWZmZWN0ID0gcm9vdDtcbiAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBuZXh0RWZmZWN0ID0gZmlyc3RDaGlsZC5yZXR1cm47XG4gICAgICAgICAgfVxuICAgIH1cbiAgICBmdW5jdGlvbiBjb21taXRMYXlvdXRFZmZlY3RPbkZpYmVyKGZpbmlzaGVkUm9vdCwgY3VycmVudCwgZmluaXNoZWRXb3JrKSB7XG4gICAgICB2YXIgZmxhZ3MgPSBmaW5pc2hlZFdvcmsuZmxhZ3M7XG4gICAgICBzd2l0Y2ggKGZpbmlzaGVkV29yay50YWcpIHtcbiAgICAgICAgY2FzZSAwOlxuICAgICAgICBjYXNlIDExOlxuICAgICAgICBjYXNlIDE1OlxuICAgICAgICAgIHJlY3Vyc2l2ZWx5VHJhdmVyc2VMYXlvdXRFZmZlY3RzKGZpbmlzaGVkUm9vdCwgZmluaXNoZWRXb3JrKTtcbiAgICAgICAgICBmbGFncyAmIDQgJiZcbiAgICAgICAgICAgIGNvbW1pdEhvb2tMYXlvdXRFZmZlY3RzKGZpbmlzaGVkV29yaywgTGF5b3V0IHwgSGFzRWZmZWN0KTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAxOlxuICAgICAgICAgIHJlY3Vyc2l2ZWx5VHJhdmVyc2VMYXlvdXRFZmZlY3RzKGZpbmlzaGVkUm9vdCwgZmluaXNoZWRXb3JrKTtcbiAgICAgICAgICBpZiAoZmxhZ3MgJiA0KVxuICAgICAgICAgICAgaWYgKCgoZmluaXNoZWRSb290ID0gZmluaXNoZWRXb3JrLnN0YXRlTm9kZSksIG51bGwgPT09IGN1cnJlbnQpKVxuICAgICAgICAgICAgICBmaW5pc2hlZFdvcmsudHlwZS5kZWZhdWx0UHJvcHMgfHxcbiAgICAgICAgICAgICAgICBcInJlZlwiIGluIGZpbmlzaGVkV29yay5tZW1vaXplZFByb3BzIHx8XG4gICAgICAgICAgICAgICAgZGlkV2FybkFib3V0UmVhc3NpZ25pbmdQcm9wcyB8fFxuICAgICAgICAgICAgICAgIChmaW5pc2hlZFJvb3QucHJvcHMgIT09IGZpbmlzaGVkV29yay5tZW1vaXplZFByb3BzICYmXG4gICAgICAgICAgICAgICAgICBjb25zb2xlLmVycm9yKFxuICAgICAgICAgICAgICAgICAgICBcIkV4cGVjdGVkICVzIHByb3BzIHRvIG1hdGNoIG1lbW9pemVkIHByb3BzIGJlZm9yZSBjb21wb25lbnREaWRNb3VudC4gVGhpcyBtaWdodCBlaXRoZXIgYmUgYmVjYXVzZSBvZiBhIGJ1ZyBpbiBSZWFjdCwgb3IgYmVjYXVzZSBhIGNvbXBvbmVudCByZWFzc2lnbnMgaXRzIG93biBgdGhpcy5wcm9wc2AuIFBsZWFzZSBmaWxlIGFuIGlzc3VlLlwiLFxuICAgICAgICAgICAgICAgICAgICBnZXRDb21wb25lbnROYW1lRnJvbUZpYmVyKGZpbmlzaGVkV29yaykgfHwgXCJpbnN0YW5jZVwiXG4gICAgICAgICAgICAgICAgICApLFxuICAgICAgICAgICAgICAgIGZpbmlzaGVkUm9vdC5zdGF0ZSAhPT0gZmluaXNoZWRXb3JrLm1lbW9pemVkU3RhdGUgJiZcbiAgICAgICAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoXG4gICAgICAgICAgICAgICAgICAgIFwiRXhwZWN0ZWQgJXMgc3RhdGUgdG8gbWF0Y2ggbWVtb2l6ZWQgc3RhdGUgYmVmb3JlIGNvbXBvbmVudERpZE1vdW50LiBUaGlzIG1pZ2h0IGVpdGhlciBiZSBiZWNhdXNlIG9mIGEgYnVnIGluIFJlYWN0LCBvciBiZWNhdXNlIGEgY29tcG9uZW50IHJlYXNzaWducyBpdHMgb3duIGB0aGlzLnN0YXRlYC4gUGxlYXNlIGZpbGUgYW4gaXNzdWUuXCIsXG4gICAgICAgICAgICAgICAgICAgIGdldENvbXBvbmVudE5hbWVGcm9tRmliZXIoZmluaXNoZWRXb3JrKSB8fCBcImluc3RhbmNlXCJcbiAgICAgICAgICAgICAgICAgICkpLFxuICAgICAgICAgICAgICAgIHNob3VsZFByb2ZpbGUoZmluaXNoZWRXb3JrKVxuICAgICAgICAgICAgICAgICAgPyAoc3RhcnRFZmZlY3RUaW1lcigpLFxuICAgICAgICAgICAgICAgICAgICBydW5XaXRoRmliZXJJbkRFVihcbiAgICAgICAgICAgICAgICAgICAgICBmaW5pc2hlZFdvcmssXG4gICAgICAgICAgICAgICAgICAgICAgY2FsbENvbXBvbmVudERpZE1vdW50SW5ERVYsXG4gICAgICAgICAgICAgICAgICAgICAgZmluaXNoZWRXb3JrLFxuICAgICAgICAgICAgICAgICAgICAgIGZpbmlzaGVkUm9vdFxuICAgICAgICAgICAgICAgICAgICApLFxuICAgICAgICAgICAgICAgICAgICByZWNvcmRFZmZlY3REdXJhdGlvbigpKVxuICAgICAgICAgICAgICAgICAgOiBydW5XaXRoRmliZXJJbkRFVihcbiAgICAgICAgICAgICAgICAgICAgICBmaW5pc2hlZFdvcmssXG4gICAgICAgICAgICAgICAgICAgICAgY2FsbENvbXBvbmVudERpZE1vdW50SW5ERVYsXG4gICAgICAgICAgICAgICAgICAgICAgZmluaXNoZWRXb3JrLFxuICAgICAgICAgICAgICAgICAgICAgIGZpbmlzaGVkUm9vdFxuICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgIHZhciBwcmV2UHJvcHMgPSByZXNvbHZlQ2xhc3NDb21wb25lbnRQcm9wcyhcbiAgICAgICAgICAgICAgICBmaW5pc2hlZFdvcmsudHlwZSxcbiAgICAgICAgICAgICAgICBjdXJyZW50Lm1lbW9pemVkUHJvcHNcbiAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgY3VycmVudCA9IGN1cnJlbnQubWVtb2l6ZWRTdGF0ZTtcbiAgICAgICAgICAgICAgZmluaXNoZWRXb3JrLnR5cGUuZGVmYXVsdFByb3BzIHx8XG4gICAgICAgICAgICAgICAgXCJyZWZcIiBpbiBmaW5pc2hlZFdvcmsubWVtb2l6ZWRQcm9wcyB8fFxuICAgICAgICAgICAgICAgIGRpZFdhcm5BYm91dFJlYXNzaWduaW5nUHJvcHMgfHxcbiAgICAgICAgICAgICAgICAoZmluaXNoZWRSb290LnByb3BzICE9PSBmaW5pc2hlZFdvcmsubWVtb2l6ZWRQcm9wcyAmJlxuICAgICAgICAgICAgICAgICAgY29uc29sZS5lcnJvcihcbiAgICAgICAgICAgICAgICAgICAgXCJFeHBlY3RlZCAlcyBwcm9wcyB0byBtYXRjaCBtZW1vaXplZCBwcm9wcyBiZWZvcmUgY29tcG9uZW50RGlkVXBkYXRlLiBUaGlzIG1pZ2h0IGVpdGhlciBiZSBiZWNhdXNlIG9mIGEgYnVnIGluIFJlYWN0LCBvciBiZWNhdXNlIGEgY29tcG9uZW50IHJlYXNzaWducyBpdHMgb3duIGB0aGlzLnByb3BzYC4gUGxlYXNlIGZpbGUgYW4gaXNzdWUuXCIsXG4gICAgICAgICAgICAgICAgICAgIGdldENvbXBvbmVudE5hbWVGcm9tRmliZXIoZmluaXNoZWRXb3JrKSB8fCBcImluc3RhbmNlXCJcbiAgICAgICAgICAgICAgICAgICksXG4gICAgICAgICAgICAgICAgZmluaXNoZWRSb290LnN0YXRlICE9PSBmaW5pc2hlZFdvcmsubWVtb2l6ZWRTdGF0ZSAmJlxuICAgICAgICAgICAgICAgICAgY29uc29sZS5lcnJvcihcbiAgICAgICAgICAgICAgICAgICAgXCJFeHBlY3RlZCAlcyBzdGF0ZSB0byBtYXRjaCBtZW1vaXplZCBzdGF0ZSBiZWZvcmUgY29tcG9uZW50RGlkVXBkYXRlLiBUaGlzIG1pZ2h0IGVpdGhlciBiZSBiZWNhdXNlIG9mIGEgYnVnIGluIFJlYWN0LCBvciBiZWNhdXNlIGEgY29tcG9uZW50IHJlYXNzaWducyBpdHMgb3duIGB0aGlzLnN0YXRlYC4gUGxlYXNlIGZpbGUgYW4gaXNzdWUuXCIsXG4gICAgICAgICAgICAgICAgICAgIGdldENvbXBvbmVudE5hbWVGcm9tRmliZXIoZmluaXNoZWRXb3JrKSB8fCBcImluc3RhbmNlXCJcbiAgICAgICAgICAgICAgICAgICkpO1xuICAgICAgICAgICAgICBzaG91bGRQcm9maWxlKGZpbmlzaGVkV29yaylcbiAgICAgICAgICAgICAgICA/IChzdGFydEVmZmVjdFRpbWVyKCksXG4gICAgICAgICAgICAgICAgICBydW5XaXRoRmliZXJJbkRFVihcbiAgICAgICAgICAgICAgICAgICAgZmluaXNoZWRXb3JrLFxuICAgICAgICAgICAgICAgICAgICBjYWxsQ29tcG9uZW50RGlkVXBkYXRlSW5ERVYsXG4gICAgICAgICAgICAgICAgICAgIGZpbmlzaGVkV29yayxcbiAgICAgICAgICAgICAgICAgICAgZmluaXNoZWRSb290LFxuICAgICAgICAgICAgICAgICAgICBwcmV2UHJvcHMsXG4gICAgICAgICAgICAgICAgICAgIGN1cnJlbnQsXG4gICAgICAgICAgICAgICAgICAgIGZpbmlzaGVkUm9vdC5fX3JlYWN0SW50ZXJuYWxTbmFwc2hvdEJlZm9yZVVwZGF0ZVxuICAgICAgICAgICAgICAgICAgKSxcbiAgICAgICAgICAgICAgICAgIHJlY29yZEVmZmVjdER1cmF0aW9uKCkpXG4gICAgICAgICAgICAgICAgOiBydW5XaXRoRmliZXJJbkRFVihcbiAgICAgICAgICAgICAgICAgICAgZmluaXNoZWRXb3JrLFxuICAgICAgICAgICAgICAgICAgICBjYWxsQ29tcG9uZW50RGlkVXBkYXRlSW5ERVYsXG4gICAgICAgICAgICAgICAgICAgIGZpbmlzaGVkV29yayxcbiAgICAgICAgICAgICAgICAgICAgZmluaXNoZWRSb290LFxuICAgICAgICAgICAgICAgICAgICBwcmV2UHJvcHMsXG4gICAgICAgICAgICAgICAgICAgIGN1cnJlbnQsXG4gICAgICAgICAgICAgICAgICAgIGZpbmlzaGVkUm9vdC5fX3JlYWN0SW50ZXJuYWxTbmFwc2hvdEJlZm9yZVVwZGF0ZVxuICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICBmbGFncyAmIDY0ICYmIGNvbW1pdENsYXNzQ2FsbGJhY2tzKGZpbmlzaGVkV29yayk7XG4gICAgICAgICAgZmxhZ3MgJiA1MTIgJiYgc2FmZWx5QXR0YWNoUmVmKGZpbmlzaGVkV29yaywgZmluaXNoZWRXb3JrLnJldHVybik7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgMzpcbiAgICAgICAgICBjdXJyZW50ID0gcHVzaE5lc3RlZEVmZmVjdER1cmF0aW9ucygpO1xuICAgICAgICAgIHJlY3Vyc2l2ZWx5VHJhdmVyc2VMYXlvdXRFZmZlY3RzKGZpbmlzaGVkUm9vdCwgZmluaXNoZWRXb3JrKTtcbiAgICAgICAgICBpZiAoXG4gICAgICAgICAgICBmbGFncyAmIDY0ICYmXG4gICAgICAgICAgICAoKGZsYWdzID0gZmluaXNoZWRXb3JrLnVwZGF0ZVF1ZXVlKSwgbnVsbCAhPT0gZmxhZ3MpXG4gICAgICAgICAgKSB7XG4gICAgICAgICAgICBwcmV2UHJvcHMgPSBudWxsO1xuICAgICAgICAgICAgaWYgKG51bGwgIT09IGZpbmlzaGVkV29yay5jaGlsZClcbiAgICAgICAgICAgICAgc3dpdGNoIChmaW5pc2hlZFdvcmsuY2hpbGQudGFnKSB7XG4gICAgICAgICAgICAgICAgY2FzZSAyNzpcbiAgICAgICAgICAgICAgICBjYXNlIDU6XG4gICAgICAgICAgICAgICAgICBwcmV2UHJvcHMgPSBmaW5pc2hlZFdvcmsuY2hpbGQuc3RhdGVOb2RlO1xuICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgY2FzZSAxOlxuICAgICAgICAgICAgICAgICAgcHJldlByb3BzID0gZmluaXNoZWRXb3JrLmNoaWxkLnN0YXRlTm9kZTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgcnVuV2l0aEZpYmVySW5ERVYoXG4gICAgICAgICAgICAgICAgZmluaXNoZWRXb3JrLFxuICAgICAgICAgICAgICAgIGNvbW1pdENhbGxiYWNrcyxcbiAgICAgICAgICAgICAgICBmbGFncyxcbiAgICAgICAgICAgICAgICBwcmV2UHJvcHNcbiAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgICAgICAgIGNhcHR1cmVDb21taXRQaGFzZUVycm9yKGZpbmlzaGVkV29yaywgZmluaXNoZWRXb3JrLnJldHVybiwgZXJyb3IpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgICBmaW5pc2hlZFJvb3QuZWZmZWN0RHVyYXRpb24gKz0gcG9wTmVzdGVkRWZmZWN0RHVyYXRpb25zKGN1cnJlbnQpO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIDI3OlxuICAgICAgICAgIG51bGwgPT09IGN1cnJlbnQgJiZcbiAgICAgICAgICAgIGZsYWdzICYgNCAmJlxuICAgICAgICAgICAgY29tbWl0SG9zdFNpbmdsZXRvbkFjcXVpc2l0aW9uKGZpbmlzaGVkV29yayk7XG4gICAgICAgIGNhc2UgMjY6XG4gICAgICAgIGNhc2UgNTpcbiAgICAgICAgICByZWN1cnNpdmVseVRyYXZlcnNlTGF5b3V0RWZmZWN0cyhmaW5pc2hlZFJvb3QsIGZpbmlzaGVkV29yayk7XG4gICAgICAgICAgbnVsbCA9PT0gY3VycmVudCAmJiBmbGFncyAmIDQgJiYgY29tbWl0SG9zdE1vdW50KGZpbmlzaGVkV29yayk7XG4gICAgICAgICAgZmxhZ3MgJiA1MTIgJiYgc2FmZWx5QXR0YWNoUmVmKGZpbmlzaGVkV29yaywgZmluaXNoZWRXb3JrLnJldHVybik7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgMTI6XG4gICAgICAgICAgaWYgKGZsYWdzICYgNCkge1xuICAgICAgICAgICAgZmxhZ3MgPSBwdXNoTmVzdGVkRWZmZWN0RHVyYXRpb25zKCk7XG4gICAgICAgICAgICByZWN1cnNpdmVseVRyYXZlcnNlTGF5b3V0RWZmZWN0cyhmaW5pc2hlZFJvb3QsIGZpbmlzaGVkV29yayk7XG4gICAgICAgICAgICBmaW5pc2hlZFJvb3QgPSBmaW5pc2hlZFdvcmsuc3RhdGVOb2RlO1xuICAgICAgICAgICAgZmluaXNoZWRSb290LmVmZmVjdER1cmF0aW9uICs9IGJ1YmJsZU5lc3RlZEVmZmVjdER1cmF0aW9ucyhmbGFncyk7XG4gICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICBydW5XaXRoRmliZXJJbkRFVihcbiAgICAgICAgICAgICAgICBmaW5pc2hlZFdvcmssXG4gICAgICAgICAgICAgICAgY29tbWl0UHJvZmlsZXIsXG4gICAgICAgICAgICAgICAgZmluaXNoZWRXb3JrLFxuICAgICAgICAgICAgICAgIGN1cnJlbnQsXG4gICAgICAgICAgICAgICAgY29tbWl0U3RhcnRUaW1lLFxuICAgICAgICAgICAgICAgIGZpbmlzaGVkUm9vdC5lZmZlY3REdXJhdGlvblxuICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgICAgICAgY2FwdHVyZUNvbW1pdFBoYXNlRXJyb3IoZmluaXNoZWRXb3JrLCBmaW5pc2hlZFdvcmsucmV0dXJuLCBlcnJvcik7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSBlbHNlIHJlY3Vyc2l2ZWx5VHJhdmVyc2VMYXlvdXRFZmZlY3RzKGZpbmlzaGVkUm9vdCwgZmluaXNoZWRXb3JrKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAxMzpcbiAgICAgICAgICByZWN1cnNpdmVseVRyYXZlcnNlTGF5b3V0RWZmZWN0cyhmaW5pc2hlZFJvb3QsIGZpbmlzaGVkV29yayk7XG4gICAgICAgICAgZmxhZ3MgJiA0ICYmXG4gICAgICAgICAgICBjb21taXRTdXNwZW5zZUh5ZHJhdGlvbkNhbGxiYWNrcyhmaW5pc2hlZFJvb3QsIGZpbmlzaGVkV29yayk7XG4gICAgICAgICAgZmxhZ3MgJiA2NCAmJlxuICAgICAgICAgICAgKChmaW5pc2hlZFJvb3QgPSBmaW5pc2hlZFdvcmsubWVtb2l6ZWRTdGF0ZSksXG4gICAgICAgICAgICBudWxsICE9PSBmaW5pc2hlZFJvb3QgJiZcbiAgICAgICAgICAgICAgKChmaW5pc2hlZFJvb3QgPSBmaW5pc2hlZFJvb3QuZGVoeWRyYXRlZCksXG4gICAgICAgICAgICAgIG51bGwgIT09IGZpbmlzaGVkUm9vdCAmJlxuICAgICAgICAgICAgICAgICgoZmluaXNoZWRXb3JrID0gcmV0cnlEZWh5ZHJhdGVkU3VzcGVuc2VCb3VuZGFyeS5iaW5kKFxuICAgICAgICAgICAgICAgICAgbnVsbCxcbiAgICAgICAgICAgICAgICAgIGZpbmlzaGVkV29ya1xuICAgICAgICAgICAgICAgICkpLFxuICAgICAgICAgICAgICAgIHJlZ2lzdGVyU3VzcGVuc2VJbnN0YW5jZVJldHJ5KGZpbmlzaGVkUm9vdCwgZmluaXNoZWRXb3JrKSkpKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAyMjpcbiAgICAgICAgICBmbGFncyA9XG4gICAgICAgICAgICBudWxsICE9PSBmaW5pc2hlZFdvcmsubWVtb2l6ZWRTdGF0ZSB8fCBvZmZzY3JlZW5TdWJ0cmVlSXNIaWRkZW47XG4gICAgICAgICAgaWYgKCFmbGFncykge1xuICAgICAgICAgICAgY3VycmVudCA9XG4gICAgICAgICAgICAgIChudWxsICE9PSBjdXJyZW50ICYmIG51bGwgIT09IGN1cnJlbnQubWVtb2l6ZWRTdGF0ZSkgfHxcbiAgICAgICAgICAgICAgb2Zmc2NyZWVuU3VidHJlZVdhc0hpZGRlbjtcbiAgICAgICAgICAgIHByZXZQcm9wcyA9IG9mZnNjcmVlblN1YnRyZWVJc0hpZGRlbjtcbiAgICAgICAgICAgIHZhciBwcmV2T2Zmc2NyZWVuU3VidHJlZVdhc0hpZGRlbiA9IG9mZnNjcmVlblN1YnRyZWVXYXNIaWRkZW47XG4gICAgICAgICAgICBvZmZzY3JlZW5TdWJ0cmVlSXNIaWRkZW4gPSBmbGFncztcbiAgICAgICAgICAgIChvZmZzY3JlZW5TdWJ0cmVlV2FzSGlkZGVuID0gY3VycmVudCkgJiZcbiAgICAgICAgICAgICFwcmV2T2Zmc2NyZWVuU3VidHJlZVdhc0hpZGRlblxuICAgICAgICAgICAgICA/IHJlY3Vyc2l2ZWx5VHJhdmVyc2VSZWFwcGVhckxheW91dEVmZmVjdHMoXG4gICAgICAgICAgICAgICAgICBmaW5pc2hlZFJvb3QsXG4gICAgICAgICAgICAgICAgICBmaW5pc2hlZFdvcmssXG4gICAgICAgICAgICAgICAgICAwICE9PSAoZmluaXNoZWRXb3JrLnN1YnRyZWVGbGFncyAmIDg3NzIpXG4gICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICA6IHJlY3Vyc2l2ZWx5VHJhdmVyc2VMYXlvdXRFZmZlY3RzKGZpbmlzaGVkUm9vdCwgZmluaXNoZWRXb3JrKTtcbiAgICAgICAgICAgIG9mZnNjcmVlblN1YnRyZWVJc0hpZGRlbiA9IHByZXZQcm9wcztcbiAgICAgICAgICAgIG9mZnNjcmVlblN1YnRyZWVXYXNIaWRkZW4gPSBwcmV2T2Zmc2NyZWVuU3VidHJlZVdhc0hpZGRlbjtcbiAgICAgICAgICB9XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgMzA6XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgcmVjdXJzaXZlbHlUcmF2ZXJzZUxheW91dEVmZmVjdHMoZmluaXNoZWRSb290LCBmaW5pc2hlZFdvcmspO1xuICAgICAgfVxuICAgIH1cbiAgICBmdW5jdGlvbiBkZXRhY2hGaWJlckFmdGVyRWZmZWN0cyhmaWJlcikge1xuICAgICAgdmFyIGFsdGVybmF0ZSA9IGZpYmVyLmFsdGVybmF0ZTtcbiAgICAgIG51bGwgIT09IGFsdGVybmF0ZSAmJlxuICAgICAgICAoKGZpYmVyLmFsdGVybmF0ZSA9IG51bGwpLCBkZXRhY2hGaWJlckFmdGVyRWZmZWN0cyhhbHRlcm5hdGUpKTtcbiAgICAgIGZpYmVyLmNoaWxkID0gbnVsbDtcbiAgICAgIGZpYmVyLmRlbGV0aW9ucyA9IG51bGw7XG4gICAgICBmaWJlci5zaWJsaW5nID0gbnVsbDtcbiAgICAgIDUgPT09IGZpYmVyLnRhZyAmJlxuICAgICAgICAoKGFsdGVybmF0ZSA9IGZpYmVyLnN0YXRlTm9kZSksXG4gICAgICAgIG51bGwgIT09IGFsdGVybmF0ZSAmJiBkZXRhY2hEZWxldGVkSW5zdGFuY2UoYWx0ZXJuYXRlKSk7XG4gICAgICBmaWJlci5zdGF0ZU5vZGUgPSBudWxsO1xuICAgICAgZmliZXIuX2RlYnVnT3duZXIgPSBudWxsO1xuICAgICAgZmliZXIucmV0dXJuID0gbnVsbDtcbiAgICAgIGZpYmVyLmRlcGVuZGVuY2llcyA9IG51bGw7XG4gICAgICBmaWJlci5tZW1vaXplZFByb3BzID0gbnVsbDtcbiAgICAgIGZpYmVyLm1lbW9pemVkU3RhdGUgPSBudWxsO1xuICAgICAgZmliZXIucGVuZGluZ1Byb3BzID0gbnVsbDtcbiAgICAgIGZpYmVyLnN0YXRlTm9kZSA9IG51bGw7XG4gICAgICBmaWJlci51cGRhdGVRdWV1ZSA9IG51bGw7XG4gICAgfVxuICAgIGZ1bmN0aW9uIHJlY3Vyc2l2ZWx5VHJhdmVyc2VEZWxldGlvbkVmZmVjdHMoXG4gICAgICBmaW5pc2hlZFJvb3QsXG4gICAgICBuZWFyZXN0TW91bnRlZEFuY2VzdG9yLFxuICAgICAgcGFyZW50XG4gICAgKSB7XG4gICAgICBmb3IgKHBhcmVudCA9IHBhcmVudC5jaGlsZDsgbnVsbCAhPT0gcGFyZW50OyApXG4gICAgICAgIGNvbW1pdERlbGV0aW9uRWZmZWN0c09uRmliZXIoXG4gICAgICAgICAgZmluaXNoZWRSb290LFxuICAgICAgICAgIG5lYXJlc3RNb3VudGVkQW5jZXN0b3IsXG4gICAgICAgICAgcGFyZW50XG4gICAgICAgICksXG4gICAgICAgICAgKHBhcmVudCA9IHBhcmVudC5zaWJsaW5nKTtcbiAgICB9XG4gICAgZnVuY3Rpb24gY29tbWl0RGVsZXRpb25FZmZlY3RzT25GaWJlcihcbiAgICAgIGZpbmlzaGVkUm9vdCxcbiAgICAgIG5lYXJlc3RNb3VudGVkQW5jZXN0b3IsXG4gICAgICBkZWxldGVkRmliZXJcbiAgICApIHtcbiAgICAgIGlmIChcbiAgICAgICAgaW5qZWN0ZWRIb29rICYmXG4gICAgICAgIFwiZnVuY3Rpb25cIiA9PT0gdHlwZW9mIGluamVjdGVkSG9vay5vbkNvbW1pdEZpYmVyVW5tb3VudFxuICAgICAgKVxuICAgICAgICB0cnkge1xuICAgICAgICAgIGluamVjdGVkSG9vay5vbkNvbW1pdEZpYmVyVW5tb3VudChyZW5kZXJlcklELCBkZWxldGVkRmliZXIpO1xuICAgICAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgICAgICBoYXNMb2dnZWRFcnJvciB8fFxuICAgICAgICAgICAgKChoYXNMb2dnZWRFcnJvciA9ICEwKSxcbiAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoXG4gICAgICAgICAgICAgIFwiUmVhY3QgaW5zdHJ1bWVudGF0aW9uIGVuY291bnRlcmVkIGFuIGVycm9yOiAlc1wiLFxuICAgICAgICAgICAgICBlcnJcbiAgICAgICAgICAgICkpO1xuICAgICAgICB9XG4gICAgICBzd2l0Y2ggKGRlbGV0ZWRGaWJlci50YWcpIHtcbiAgICAgICAgY2FzZSAyNjpcbiAgICAgICAgICBvZmZzY3JlZW5TdWJ0cmVlV2FzSGlkZGVuIHx8XG4gICAgICAgICAgICBzYWZlbHlEZXRhY2hSZWYoZGVsZXRlZEZpYmVyLCBuZWFyZXN0TW91bnRlZEFuY2VzdG9yKTtcbiAgICAgICAgICByZWN1cnNpdmVseVRyYXZlcnNlRGVsZXRpb25FZmZlY3RzKFxuICAgICAgICAgICAgZmluaXNoZWRSb290LFxuICAgICAgICAgICAgbmVhcmVzdE1vdW50ZWRBbmNlc3RvcixcbiAgICAgICAgICAgIGRlbGV0ZWRGaWJlclxuICAgICAgICAgICk7XG4gICAgICAgICAgZGVsZXRlZEZpYmVyLm1lbW9pemVkU3RhdGVcbiAgICAgICAgICAgID8gZGVsZXRlZEZpYmVyLm1lbW9pemVkU3RhdGUuY291bnQtLVxuICAgICAgICAgICAgOiBkZWxldGVkRmliZXIuc3RhdGVOb2RlICYmXG4gICAgICAgICAgICAgICgoZGVsZXRlZEZpYmVyID0gZGVsZXRlZEZpYmVyLnN0YXRlTm9kZSksXG4gICAgICAgICAgICAgIGRlbGV0ZWRGaWJlci5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKGRlbGV0ZWRGaWJlcikpO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIDI3OlxuICAgICAgICAgIG9mZnNjcmVlblN1YnRyZWVXYXNIaWRkZW4gfHxcbiAgICAgICAgICAgIHNhZmVseURldGFjaFJlZihkZWxldGVkRmliZXIsIG5lYXJlc3RNb3VudGVkQW5jZXN0b3IpO1xuICAgICAgICAgIHZhciBwcmV2SG9zdFBhcmVudCA9IGhvc3RQYXJlbnQsXG4gICAgICAgICAgICBwcmV2SG9zdFBhcmVudElzQ29udGFpbmVyID0gaG9zdFBhcmVudElzQ29udGFpbmVyO1xuICAgICAgICAgIGlzU2luZ2xldG9uU2NvcGUoZGVsZXRlZEZpYmVyLnR5cGUpICYmXG4gICAgICAgICAgICAoKGhvc3RQYXJlbnQgPSBkZWxldGVkRmliZXIuc3RhdGVOb2RlKSxcbiAgICAgICAgICAgIChob3N0UGFyZW50SXNDb250YWluZXIgPSAhMSkpO1xuICAgICAgICAgIHJlY3Vyc2l2ZWx5VHJhdmVyc2VEZWxldGlvbkVmZmVjdHMoXG4gICAgICAgICAgICBmaW5pc2hlZFJvb3QsXG4gICAgICAgICAgICBuZWFyZXN0TW91bnRlZEFuY2VzdG9yLFxuICAgICAgICAgICAgZGVsZXRlZEZpYmVyXG4gICAgICAgICAgKTtcbiAgICAgICAgICBydW5XaXRoRmliZXJJbkRFVihcbiAgICAgICAgICAgIGRlbGV0ZWRGaWJlcixcbiAgICAgICAgICAgIHJlbGVhc2VTaW5nbGV0b25JbnN0YW5jZSxcbiAgICAgICAgICAgIGRlbGV0ZWRGaWJlci5zdGF0ZU5vZGVcbiAgICAgICAgICApO1xuICAgICAgICAgIGhvc3RQYXJlbnQgPSBwcmV2SG9zdFBhcmVudDtcbiAgICAgICAgICBob3N0UGFyZW50SXNDb250YWluZXIgPSBwcmV2SG9zdFBhcmVudElzQ29udGFpbmVyO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIDU6XG4gICAgICAgICAgb2Zmc2NyZWVuU3VidHJlZVdhc0hpZGRlbiB8fFxuICAgICAgICAgICAgc2FmZWx5RGV0YWNoUmVmKGRlbGV0ZWRGaWJlciwgbmVhcmVzdE1vdW50ZWRBbmNlc3Rvcik7XG4gICAgICAgIGNhc2UgNjpcbiAgICAgICAgICBwcmV2SG9zdFBhcmVudCA9IGhvc3RQYXJlbnQ7XG4gICAgICAgICAgcHJldkhvc3RQYXJlbnRJc0NvbnRhaW5lciA9IGhvc3RQYXJlbnRJc0NvbnRhaW5lcjtcbiAgICAgICAgICBob3N0UGFyZW50ID0gbnVsbDtcbiAgICAgICAgICByZWN1cnNpdmVseVRyYXZlcnNlRGVsZXRpb25FZmZlY3RzKFxuICAgICAgICAgICAgZmluaXNoZWRSb290LFxuICAgICAgICAgICAgbmVhcmVzdE1vdW50ZWRBbmNlc3RvcixcbiAgICAgICAgICAgIGRlbGV0ZWRGaWJlclxuICAgICAgICAgICk7XG4gICAgICAgICAgaG9zdFBhcmVudCA9IHByZXZIb3N0UGFyZW50O1xuICAgICAgICAgIGhvc3RQYXJlbnRJc0NvbnRhaW5lciA9IHByZXZIb3N0UGFyZW50SXNDb250YWluZXI7XG4gICAgICAgICAgaWYgKG51bGwgIT09IGhvc3RQYXJlbnQpXG4gICAgICAgICAgICBpZiAoaG9zdFBhcmVudElzQ29udGFpbmVyKVxuICAgICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgIHJ1bldpdGhGaWJlckluREVWKFxuICAgICAgICAgICAgICAgICAgZGVsZXRlZEZpYmVyLFxuICAgICAgICAgICAgICAgICAgcmVtb3ZlQ2hpbGRGcm9tQ29udGFpbmVyLFxuICAgICAgICAgICAgICAgICAgaG9zdFBhcmVudCxcbiAgICAgICAgICAgICAgICAgIGRlbGV0ZWRGaWJlci5zdGF0ZU5vZGVcbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICAgICAgICAgIGNhcHR1cmVDb21taXRQaGFzZUVycm9yKFxuICAgICAgICAgICAgICAgICAgZGVsZXRlZEZpYmVyLFxuICAgICAgICAgICAgICAgICAgbmVhcmVzdE1vdW50ZWRBbmNlc3RvcixcbiAgICAgICAgICAgICAgICAgIGVycm9yXG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZVxuICAgICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgIHJ1bldpdGhGaWJlckluREVWKFxuICAgICAgICAgICAgICAgICAgZGVsZXRlZEZpYmVyLFxuICAgICAgICAgICAgICAgICAgcmVtb3ZlQ2hpbGQsXG4gICAgICAgICAgICAgICAgICBob3N0UGFyZW50LFxuICAgICAgICAgICAgICAgICAgZGVsZXRlZEZpYmVyLnN0YXRlTm9kZVxuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgICAgICAgICAgY2FwdHVyZUNvbW1pdFBoYXNlRXJyb3IoXG4gICAgICAgICAgICAgICAgICBkZWxldGVkRmliZXIsXG4gICAgICAgICAgICAgICAgICBuZWFyZXN0TW91bnRlZEFuY2VzdG9yLFxuICAgICAgICAgICAgICAgICAgZXJyb3JcbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgMTg6XG4gICAgICAgICAgbnVsbCAhPT0gaG9zdFBhcmVudCAmJlxuICAgICAgICAgICAgKGhvc3RQYXJlbnRJc0NvbnRhaW5lclxuICAgICAgICAgICAgICA/ICgoZmluaXNoZWRSb290ID0gaG9zdFBhcmVudCksXG4gICAgICAgICAgICAgICAgY2xlYXJTdXNwZW5zZUJvdW5kYXJ5KFxuICAgICAgICAgICAgICAgICAgOSA9PT0gZmluaXNoZWRSb290Lm5vZGVUeXBlXG4gICAgICAgICAgICAgICAgICAgID8gZmluaXNoZWRSb290LmJvZHlcbiAgICAgICAgICAgICAgICAgICAgOiBcIkhUTUxcIiA9PT0gZmluaXNoZWRSb290Lm5vZGVOYW1lXG4gICAgICAgICAgICAgICAgICAgICAgPyBmaW5pc2hlZFJvb3Qub3duZXJEb2N1bWVudC5ib2R5XG4gICAgICAgICAgICAgICAgICAgICAgOiBmaW5pc2hlZFJvb3QsXG4gICAgICAgICAgICAgICAgICBkZWxldGVkRmliZXIuc3RhdGVOb2RlXG4gICAgICAgICAgICAgICAgKSxcbiAgICAgICAgICAgICAgICByZXRyeUlmQmxvY2tlZE9uKGZpbmlzaGVkUm9vdCkpXG4gICAgICAgICAgICAgIDogY2xlYXJTdXNwZW5zZUJvdW5kYXJ5KGhvc3RQYXJlbnQsIGRlbGV0ZWRGaWJlci5zdGF0ZU5vZGUpKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSA0OlxuICAgICAgICAgIHByZXZIb3N0UGFyZW50ID0gaG9zdFBhcmVudDtcbiAgICAgICAgICBwcmV2SG9zdFBhcmVudElzQ29udGFpbmVyID0gaG9zdFBhcmVudElzQ29udGFpbmVyO1xuICAgICAgICAgIGhvc3RQYXJlbnQgPSBkZWxldGVkRmliZXIuc3RhdGVOb2RlLmNvbnRhaW5lckluZm87XG4gICAgICAgICAgaG9zdFBhcmVudElzQ29udGFpbmVyID0gITA7XG4gICAgICAgICAgcmVjdXJzaXZlbHlUcmF2ZXJzZURlbGV0aW9uRWZmZWN0cyhcbiAgICAgICAgICAgIGZpbmlzaGVkUm9vdCxcbiAgICAgICAgICAgIG5lYXJlc3RNb3VudGVkQW5jZXN0b3IsXG4gICAgICAgICAgICBkZWxldGVkRmliZXJcbiAgICAgICAgICApO1xuICAgICAgICAgIGhvc3RQYXJlbnQgPSBwcmV2SG9zdFBhcmVudDtcbiAgICAgICAgICBob3N0UGFyZW50SXNDb250YWluZXIgPSBwcmV2SG9zdFBhcmVudElzQ29udGFpbmVyO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIDA6XG4gICAgICAgIGNhc2UgMTE6XG4gICAgICAgIGNhc2UgMTQ6XG4gICAgICAgIGNhc2UgMTU6XG4gICAgICAgICAgb2Zmc2NyZWVuU3VidHJlZVdhc0hpZGRlbiB8fFxuICAgICAgICAgICAgY29tbWl0SG9va0VmZmVjdExpc3RVbm1vdW50KFxuICAgICAgICAgICAgICBJbnNlcnRpb24sXG4gICAgICAgICAgICAgIGRlbGV0ZWRGaWJlcixcbiAgICAgICAgICAgICAgbmVhcmVzdE1vdW50ZWRBbmNlc3RvclxuICAgICAgICAgICAgKTtcbiAgICAgICAgICBvZmZzY3JlZW5TdWJ0cmVlV2FzSGlkZGVuIHx8XG4gICAgICAgICAgICBjb21taXRIb29rTGF5b3V0VW5tb3VudEVmZmVjdHMoXG4gICAgICAgICAgICAgIGRlbGV0ZWRGaWJlcixcbiAgICAgICAgICAgICAgbmVhcmVzdE1vdW50ZWRBbmNlc3RvcixcbiAgICAgICAgICAgICAgTGF5b3V0XG4gICAgICAgICAgICApO1xuICAgICAgICAgIHJlY3Vyc2l2ZWx5VHJhdmVyc2VEZWxldGlvbkVmZmVjdHMoXG4gICAgICAgICAgICBmaW5pc2hlZFJvb3QsXG4gICAgICAgICAgICBuZWFyZXN0TW91bnRlZEFuY2VzdG9yLFxuICAgICAgICAgICAgZGVsZXRlZEZpYmVyXG4gICAgICAgICAgKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAxOlxuICAgICAgICAgIG9mZnNjcmVlblN1YnRyZWVXYXNIaWRkZW4gfHxcbiAgICAgICAgICAgIChzYWZlbHlEZXRhY2hSZWYoZGVsZXRlZEZpYmVyLCBuZWFyZXN0TW91bnRlZEFuY2VzdG9yKSxcbiAgICAgICAgICAgIChwcmV2SG9zdFBhcmVudCA9IGRlbGV0ZWRGaWJlci5zdGF0ZU5vZGUpLFxuICAgICAgICAgICAgXCJmdW5jdGlvblwiID09PSB0eXBlb2YgcHJldkhvc3RQYXJlbnQuY29tcG9uZW50V2lsbFVubW91bnQgJiZcbiAgICAgICAgICAgICAgc2FmZWx5Q2FsbENvbXBvbmVudFdpbGxVbm1vdW50KFxuICAgICAgICAgICAgICAgIGRlbGV0ZWRGaWJlcixcbiAgICAgICAgICAgICAgICBuZWFyZXN0TW91bnRlZEFuY2VzdG9yLFxuICAgICAgICAgICAgICAgIHByZXZIb3N0UGFyZW50XG4gICAgICAgICAgICAgICkpO1xuICAgICAgICAgIHJlY3Vyc2l2ZWx5VHJhdmVyc2VEZWxldGlvbkVmZmVjdHMoXG4gICAgICAgICAgICBmaW5pc2hlZFJvb3QsXG4gICAgICAgICAgICBuZWFyZXN0TW91bnRlZEFuY2VzdG9yLFxuICAgICAgICAgICAgZGVsZXRlZEZpYmVyXG4gICAgICAgICAgKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAyMTpcbiAgICAgICAgICByZWN1cnNpdmVseVRyYXZlcnNlRGVsZXRpb25FZmZlY3RzKFxuICAgICAgICAgICAgZmluaXNoZWRSb290LFxuICAgICAgICAgICAgbmVhcmVzdE1vdW50ZWRBbmNlc3RvcixcbiAgICAgICAgICAgIGRlbGV0ZWRGaWJlclxuICAgICAgICAgICk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgMjI6XG4gICAgICAgICAgb2Zmc2NyZWVuU3VidHJlZVdhc0hpZGRlbiA9XG4gICAgICAgICAgICAocHJldkhvc3RQYXJlbnQgPSBvZmZzY3JlZW5TdWJ0cmVlV2FzSGlkZGVuKSB8fFxuICAgICAgICAgICAgbnVsbCAhPT0gZGVsZXRlZEZpYmVyLm1lbW9pemVkU3RhdGU7XG4gICAgICAgICAgcmVjdXJzaXZlbHlUcmF2ZXJzZURlbGV0aW9uRWZmZWN0cyhcbiAgICAgICAgICAgIGZpbmlzaGVkUm9vdCxcbiAgICAgICAgICAgIG5lYXJlc3RNb3VudGVkQW5jZXN0b3IsXG4gICAgICAgICAgICBkZWxldGVkRmliZXJcbiAgICAgICAgICApO1xuICAgICAgICAgIG9mZnNjcmVlblN1YnRyZWVXYXNIaWRkZW4gPSBwcmV2SG9zdFBhcmVudDtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICByZWN1cnNpdmVseVRyYXZlcnNlRGVsZXRpb25FZmZlY3RzKFxuICAgICAgICAgICAgZmluaXNoZWRSb290LFxuICAgICAgICAgICAgbmVhcmVzdE1vdW50ZWRBbmNlc3RvcixcbiAgICAgICAgICAgIGRlbGV0ZWRGaWJlclxuICAgICAgICAgICk7XG4gICAgICB9XG4gICAgfVxuICAgIGZ1bmN0aW9uIGNvbW1pdFN1c3BlbnNlSHlkcmF0aW9uQ2FsbGJhY2tzKGZpbmlzaGVkUm9vdCwgZmluaXNoZWRXb3JrKSB7XG4gICAgICBpZiAoXG4gICAgICAgIG51bGwgPT09IGZpbmlzaGVkV29yay5tZW1vaXplZFN0YXRlICYmXG4gICAgICAgICgoZmluaXNoZWRSb290ID0gZmluaXNoZWRXb3JrLmFsdGVybmF0ZSksXG4gICAgICAgIG51bGwgIT09IGZpbmlzaGVkUm9vdCAmJlxuICAgICAgICAgICgoZmluaXNoZWRSb290ID0gZmluaXNoZWRSb290Lm1lbW9pemVkU3RhdGUpLFxuICAgICAgICAgIG51bGwgIT09IGZpbmlzaGVkUm9vdCAmJlxuICAgICAgICAgICAgKChmaW5pc2hlZFJvb3QgPSBmaW5pc2hlZFJvb3QuZGVoeWRyYXRlZCksIG51bGwgIT09IGZpbmlzaGVkUm9vdCkpKVxuICAgICAgKVxuICAgICAgICB0cnkge1xuICAgICAgICAgIHJ1bldpdGhGaWJlckluREVWKFxuICAgICAgICAgICAgZmluaXNoZWRXb3JrLFxuICAgICAgICAgICAgY29tbWl0SHlkcmF0ZWRTdXNwZW5zZUluc3RhbmNlLFxuICAgICAgICAgICAgZmluaXNoZWRSb290XG4gICAgICAgICAgKTtcbiAgICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgICBjYXB0dXJlQ29tbWl0UGhhc2VFcnJvcihmaW5pc2hlZFdvcmssIGZpbmlzaGVkV29yay5yZXR1cm4sIGVycm9yKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBmdW5jdGlvbiBnZXRSZXRyeUNhY2hlKGZpbmlzaGVkV29yaykge1xuICAgICAgc3dpdGNoIChmaW5pc2hlZFdvcmsudGFnKSB7XG4gICAgICAgIGNhc2UgMTM6XG4gICAgICAgIGNhc2UgMTk6XG4gICAgICAgICAgdmFyIHJldHJ5Q2FjaGUgPSBmaW5pc2hlZFdvcmsuc3RhdGVOb2RlO1xuICAgICAgICAgIG51bGwgPT09IHJldHJ5Q2FjaGUgJiZcbiAgICAgICAgICAgIChyZXRyeUNhY2hlID0gZmluaXNoZWRXb3JrLnN0YXRlTm9kZSA9IG5ldyBQb3NzaWJseVdlYWtTZXQoKSk7XG4gICAgICAgICAgcmV0dXJuIHJldHJ5Q2FjaGU7XG4gICAgICAgIGNhc2UgMjI6XG4gICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgIChmaW5pc2hlZFdvcmsgPSBmaW5pc2hlZFdvcmsuc3RhdGVOb2RlKSxcbiAgICAgICAgICAgIChyZXRyeUNhY2hlID0gZmluaXNoZWRXb3JrLl9yZXRyeUNhY2hlKSxcbiAgICAgICAgICAgIG51bGwgPT09IHJldHJ5Q2FjaGUgJiZcbiAgICAgICAgICAgICAgKHJldHJ5Q2FjaGUgPSBmaW5pc2hlZFdvcmsuX3JldHJ5Q2FjaGUgPSBuZXcgUG9zc2libHlXZWFrU2V0KCkpLFxuICAgICAgICAgICAgcmV0cnlDYWNoZVxuICAgICAgICAgICk7XG4gICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgdGhyb3cgRXJyb3IoXG4gICAgICAgICAgICBcIlVuZXhwZWN0ZWQgU3VzcGVuc2UgaGFuZGxlciB0YWcgKFwiICtcbiAgICAgICAgICAgICAgZmluaXNoZWRXb3JrLnRhZyArXG4gICAgICAgICAgICAgIFwiKS4gVGhpcyBpcyBhIGJ1ZyBpbiBSZWFjdC5cIlxuICAgICAgICAgICk7XG4gICAgICB9XG4gICAgfVxuICAgIGZ1bmN0aW9uIGF0dGFjaFN1c3BlbnNlUmV0cnlMaXN0ZW5lcnMoZmluaXNoZWRXb3JrLCB3YWtlYWJsZXMpIHtcbiAgICAgIHZhciByZXRyeUNhY2hlID0gZ2V0UmV0cnlDYWNoZShmaW5pc2hlZFdvcmspO1xuICAgICAgd2FrZWFibGVzLmZvckVhY2goZnVuY3Rpb24gKHdha2VhYmxlKSB7XG4gICAgICAgIHZhciByZXRyeSA9IHJlc29sdmVSZXRyeVdha2VhYmxlLmJpbmQobnVsbCwgZmluaXNoZWRXb3JrLCB3YWtlYWJsZSk7XG4gICAgICAgIGlmICghcmV0cnlDYWNoZS5oYXMod2FrZWFibGUpKSB7XG4gICAgICAgICAgcmV0cnlDYWNoZS5hZGQod2FrZWFibGUpO1xuICAgICAgICAgIGlmIChpc0RldlRvb2xzUHJlc2VudClcbiAgICAgICAgICAgIGlmIChudWxsICE9PSBpblByb2dyZXNzTGFuZXMgJiYgbnVsbCAhPT0gaW5Qcm9ncmVzc1Jvb3QpXG4gICAgICAgICAgICAgIHJlc3RvcmVQZW5kaW5nVXBkYXRlcnMoaW5Qcm9ncmVzc1Jvb3QsIGluUHJvZ3Jlc3NMYW5lcyk7XG4gICAgICAgICAgICBlbHNlXG4gICAgICAgICAgICAgIHRocm93IEVycm9yKFxuICAgICAgICAgICAgICAgIFwiRXhwZWN0ZWQgZmluaXNoZWQgcm9vdCBhbmQgbGFuZXMgdG8gYmUgc2V0LiBUaGlzIGlzIGEgYnVnIGluIFJlYWN0LlwiXG4gICAgICAgICAgICAgICk7XG4gICAgICAgICAgd2FrZWFibGUudGhlbihyZXRyeSwgcmV0cnkpO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9XG4gICAgZnVuY3Rpb24gcmVjdXJzaXZlbHlUcmF2ZXJzZU11dGF0aW9uRWZmZWN0cyhyb290JGpzY29tcCQwLCBwYXJlbnRGaWJlcikge1xuICAgICAgdmFyIGRlbGV0aW9ucyA9IHBhcmVudEZpYmVyLmRlbGV0aW9ucztcbiAgICAgIGlmIChudWxsICE9PSBkZWxldGlvbnMpXG4gICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgZGVsZXRpb25zLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgdmFyIHJvb3QgPSByb290JGpzY29tcCQwLFxuICAgICAgICAgICAgcmV0dXJuRmliZXIgPSBwYXJlbnRGaWJlcixcbiAgICAgICAgICAgIGRlbGV0ZWRGaWJlciA9IGRlbGV0aW9uc1tpXSxcbiAgICAgICAgICAgIHBhcmVudCA9IHJldHVybkZpYmVyO1xuICAgICAgICAgIGE6IGZvciAoOyBudWxsICE9PSBwYXJlbnQ7ICkge1xuICAgICAgICAgICAgc3dpdGNoIChwYXJlbnQudGFnKSB7XG4gICAgICAgICAgICAgIGNhc2UgMjc6XG4gICAgICAgICAgICAgICAgaWYgKGlzU2luZ2xldG9uU2NvcGUocGFyZW50LnR5cGUpKSB7XG4gICAgICAgICAgICAgICAgICBob3N0UGFyZW50ID0gcGFyZW50LnN0YXRlTm9kZTtcbiAgICAgICAgICAgICAgICAgIGhvc3RQYXJlbnRJc0NvbnRhaW5lciA9ICExO1xuICAgICAgICAgICAgICAgICAgYnJlYWsgYTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgIGNhc2UgNTpcbiAgICAgICAgICAgICAgICBob3N0UGFyZW50ID0gcGFyZW50LnN0YXRlTm9kZTtcbiAgICAgICAgICAgICAgICBob3N0UGFyZW50SXNDb250YWluZXIgPSAhMTtcbiAgICAgICAgICAgICAgICBicmVhayBhO1xuICAgICAgICAgICAgICBjYXNlIDM6XG4gICAgICAgICAgICAgIGNhc2UgNDpcbiAgICAgICAgICAgICAgICBob3N0UGFyZW50ID0gcGFyZW50LnN0YXRlTm9kZS5jb250YWluZXJJbmZvO1xuICAgICAgICAgICAgICAgIGhvc3RQYXJlbnRJc0NvbnRhaW5lciA9ICEwO1xuICAgICAgICAgICAgICAgIGJyZWFrIGE7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBwYXJlbnQgPSBwYXJlbnQucmV0dXJuO1xuICAgICAgICAgIH1cbiAgICAgICAgICBpZiAobnVsbCA9PT0gaG9zdFBhcmVudClcbiAgICAgICAgICAgIHRocm93IEVycm9yKFxuICAgICAgICAgICAgICBcIkV4cGVjdGVkIHRvIGZpbmQgYSBob3N0IHBhcmVudC4gVGhpcyBlcnJvciBpcyBsaWtlbHkgY2F1c2VkIGJ5IGEgYnVnIGluIFJlYWN0LiBQbGVhc2UgZmlsZSBhbiBpc3N1ZS5cIlxuICAgICAgICAgICAgKTtcbiAgICAgICAgICBjb21taXREZWxldGlvbkVmZmVjdHNPbkZpYmVyKHJvb3QsIHJldHVybkZpYmVyLCBkZWxldGVkRmliZXIpO1xuICAgICAgICAgIGhvc3RQYXJlbnQgPSBudWxsO1xuICAgICAgICAgIGhvc3RQYXJlbnRJc0NvbnRhaW5lciA9ICExO1xuICAgICAgICAgIHJvb3QgPSBkZWxldGVkRmliZXI7XG4gICAgICAgICAgcmV0dXJuRmliZXIgPSByb290LmFsdGVybmF0ZTtcbiAgICAgICAgICBudWxsICE9PSByZXR1cm5GaWJlciAmJiAocmV0dXJuRmliZXIucmV0dXJuID0gbnVsbCk7XG4gICAgICAgICAgcm9vdC5yZXR1cm4gPSBudWxsO1xuICAgICAgICB9XG4gICAgICBpZiAocGFyZW50RmliZXIuc3VidHJlZUZsYWdzICYgMTM4NzgpXG4gICAgICAgIGZvciAocGFyZW50RmliZXIgPSBwYXJlbnRGaWJlci5jaGlsZDsgbnVsbCAhPT0gcGFyZW50RmliZXI7IClcbiAgICAgICAgICBjb21taXRNdXRhdGlvbkVmZmVjdHNPbkZpYmVyKHBhcmVudEZpYmVyLCByb290JGpzY29tcCQwKSxcbiAgICAgICAgICAgIChwYXJlbnRGaWJlciA9IHBhcmVudEZpYmVyLnNpYmxpbmcpO1xuICAgIH1cbiAgICBmdW5jdGlvbiBjb21taXRNdXRhdGlvbkVmZmVjdHNPbkZpYmVyKGZpbmlzaGVkV29yaywgcm9vdCkge1xuICAgICAgdmFyIGN1cnJlbnQgPSBmaW5pc2hlZFdvcmsuYWx0ZXJuYXRlLFxuICAgICAgICBmbGFncyA9IGZpbmlzaGVkV29yay5mbGFncztcbiAgICAgIHN3aXRjaCAoZmluaXNoZWRXb3JrLnRhZykge1xuICAgICAgICBjYXNlIDA6XG4gICAgICAgIGNhc2UgMTE6XG4gICAgICAgIGNhc2UgMTQ6XG4gICAgICAgIGNhc2UgMTU6XG4gICAgICAgICAgcmVjdXJzaXZlbHlUcmF2ZXJzZU11dGF0aW9uRWZmZWN0cyhyb290LCBmaW5pc2hlZFdvcmspO1xuICAgICAgICAgIGNvbW1pdFJlY29uY2lsaWF0aW9uRWZmZWN0cyhmaW5pc2hlZFdvcmspO1xuICAgICAgICAgIGZsYWdzICYgNCAmJlxuICAgICAgICAgICAgKGNvbW1pdEhvb2tFZmZlY3RMaXN0VW5tb3VudChcbiAgICAgICAgICAgICAgSW5zZXJ0aW9uIHwgSGFzRWZmZWN0LFxuICAgICAgICAgICAgICBmaW5pc2hlZFdvcmssXG4gICAgICAgICAgICAgIGZpbmlzaGVkV29yay5yZXR1cm5cbiAgICAgICAgICAgICksXG4gICAgICAgICAgICBjb21taXRIb29rRWZmZWN0TGlzdE1vdW50KEluc2VydGlvbiB8IEhhc0VmZmVjdCwgZmluaXNoZWRXb3JrKSxcbiAgICAgICAgICAgIGNvbW1pdEhvb2tMYXlvdXRVbm1vdW50RWZmZWN0cyhcbiAgICAgICAgICAgICAgZmluaXNoZWRXb3JrLFxuICAgICAgICAgICAgICBmaW5pc2hlZFdvcmsucmV0dXJuLFxuICAgICAgICAgICAgICBMYXlvdXQgfCBIYXNFZmZlY3RcbiAgICAgICAgICAgICkpO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIDE6XG4gICAgICAgICAgcmVjdXJzaXZlbHlUcmF2ZXJzZU11dGF0aW9uRWZmZWN0cyhyb290LCBmaW5pc2hlZFdvcmspO1xuICAgICAgICAgIGNvbW1pdFJlY29uY2lsaWF0aW9uRWZmZWN0cyhmaW5pc2hlZFdvcmspO1xuICAgICAgICAgIGZsYWdzICYgNTEyICYmXG4gICAgICAgICAgICAob2Zmc2NyZWVuU3VidHJlZVdhc0hpZGRlbiB8fFxuICAgICAgICAgICAgICBudWxsID09PSBjdXJyZW50IHx8XG4gICAgICAgICAgICAgIHNhZmVseURldGFjaFJlZihjdXJyZW50LCBjdXJyZW50LnJldHVybikpO1xuICAgICAgICAgIGZsYWdzICYgNjQgJiZcbiAgICAgICAgICAgIG9mZnNjcmVlblN1YnRyZWVJc0hpZGRlbiAmJlxuICAgICAgICAgICAgKChmaW5pc2hlZFdvcmsgPSBmaW5pc2hlZFdvcmsudXBkYXRlUXVldWUpLFxuICAgICAgICAgICAgbnVsbCAhPT0gZmluaXNoZWRXb3JrICYmXG4gICAgICAgICAgICAgICgoZmxhZ3MgPSBmaW5pc2hlZFdvcmsuY2FsbGJhY2tzKSxcbiAgICAgICAgICAgICAgbnVsbCAhPT0gZmxhZ3MgJiZcbiAgICAgICAgICAgICAgICAoKGN1cnJlbnQgPSBmaW5pc2hlZFdvcmsuc2hhcmVkLmhpZGRlbkNhbGxiYWNrcyksXG4gICAgICAgICAgICAgICAgKGZpbmlzaGVkV29yay5zaGFyZWQuaGlkZGVuQ2FsbGJhY2tzID1cbiAgICAgICAgICAgICAgICAgIG51bGwgPT09IGN1cnJlbnQgPyBmbGFncyA6IGN1cnJlbnQuY29uY2F0KGZsYWdzKSkpKSk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgMjY6XG4gICAgICAgICAgdmFyIGhvaXN0YWJsZVJvb3QgPSBjdXJyZW50SG9pc3RhYmxlUm9vdDtcbiAgICAgICAgICByZWN1cnNpdmVseVRyYXZlcnNlTXV0YXRpb25FZmZlY3RzKHJvb3QsIGZpbmlzaGVkV29yayk7XG4gICAgICAgICAgY29tbWl0UmVjb25jaWxpYXRpb25FZmZlY3RzKGZpbmlzaGVkV29yayk7XG4gICAgICAgICAgZmxhZ3MgJiA1MTIgJiZcbiAgICAgICAgICAgIChvZmZzY3JlZW5TdWJ0cmVlV2FzSGlkZGVuIHx8XG4gICAgICAgICAgICAgIG51bGwgPT09IGN1cnJlbnQgfHxcbiAgICAgICAgICAgICAgc2FmZWx5RGV0YWNoUmVmKGN1cnJlbnQsIGN1cnJlbnQucmV0dXJuKSk7XG4gICAgICAgICAgaWYgKGZsYWdzICYgNClcbiAgICAgICAgICAgIGlmIChcbiAgICAgICAgICAgICAgKChyb290ID0gbnVsbCAhPT0gY3VycmVudCA/IGN1cnJlbnQubWVtb2l6ZWRTdGF0ZSA6IG51bGwpLFxuICAgICAgICAgICAgICAoZmxhZ3MgPSBmaW5pc2hlZFdvcmsubWVtb2l6ZWRTdGF0ZSksXG4gICAgICAgICAgICAgIG51bGwgPT09IGN1cnJlbnQpXG4gICAgICAgICAgICApXG4gICAgICAgICAgICAgIGlmIChudWxsID09PSBmbGFncylcbiAgICAgICAgICAgICAgICBpZiAobnVsbCA9PT0gZmluaXNoZWRXb3JrLnN0YXRlTm9kZSkge1xuICAgICAgICAgICAgICAgICAgYToge1xuICAgICAgICAgICAgICAgICAgICBmbGFncyA9IGZpbmlzaGVkV29yay50eXBlO1xuICAgICAgICAgICAgICAgICAgICBjdXJyZW50ID0gZmluaXNoZWRXb3JrLm1lbW9pemVkUHJvcHM7XG4gICAgICAgICAgICAgICAgICAgIHJvb3QgPSBob2lzdGFibGVSb290Lm93bmVyRG9jdW1lbnQgfHwgaG9pc3RhYmxlUm9vdDtcbiAgICAgICAgICAgICAgICAgICAgYjogc3dpdGNoIChmbGFncykge1xuICAgICAgICAgICAgICAgICAgICAgIGNhc2UgXCJ0aXRsZVwiOlxuICAgICAgICAgICAgICAgICAgICAgICAgaG9pc3RhYmxlUm9vdCA9IHJvb3QuZ2V0RWxlbWVudHNCeVRhZ05hbWUoXCJ0aXRsZVwiKVswXTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIWhvaXN0YWJsZVJvb3QgfHxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgaG9pc3RhYmxlUm9vdFtpbnRlcm5hbEhvaXN0YWJsZU1hcmtlcl0gfHxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgaG9pc3RhYmxlUm9vdFtpbnRlcm5hbEluc3RhbmNlS2V5XSB8fFxuICAgICAgICAgICAgICAgICAgICAgICAgICBob2lzdGFibGVSb290Lm5hbWVzcGFjZVVSSSA9PT0gU1ZHX05BTUVTUEFDRSB8fFxuICAgICAgICAgICAgICAgICAgICAgICAgICBob2lzdGFibGVSb290Lmhhc0F0dHJpYnV0ZShcIml0ZW1wcm9wXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgICAgICAgICAgIChob2lzdGFibGVSb290ID0gcm9vdC5jcmVhdGVFbGVtZW50KGZsYWdzKSksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcm9vdC5oZWFkLmluc2VydEJlZm9yZShcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhvaXN0YWJsZVJvb3QsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICByb290LnF1ZXJ5U2VsZWN0b3IoXCJoZWFkID4gdGl0bGVcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgICAgICAgICAgc2V0SW5pdGlhbFByb3BlcnRpZXMoaG9pc3RhYmxlUm9vdCwgZmxhZ3MsIGN1cnJlbnQpO1xuICAgICAgICAgICAgICAgICAgICAgICAgaG9pc3RhYmxlUm9vdFtpbnRlcm5hbEluc3RhbmNlS2V5XSA9IGZpbmlzaGVkV29yaztcbiAgICAgICAgICAgICAgICAgICAgICAgIG1hcmtOb2RlQXNIb2lzdGFibGUoaG9pc3RhYmxlUm9vdCk7XG4gICAgICAgICAgICAgICAgICAgICAgICBmbGFncyA9IGhvaXN0YWJsZVJvb3Q7XG4gICAgICAgICAgICAgICAgICAgICAgICBicmVhayBhO1xuICAgICAgICAgICAgICAgICAgICAgIGNhc2UgXCJsaW5rXCI6XG4gICAgICAgICAgICAgICAgICAgICAgICB2YXIgbWF5YmVOb2RlcyA9IGdldEh5ZHJhdGFibGVIb2lzdGFibGVDYWNoZShcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJsaW5rXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiaHJlZlwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICByb290XG4gICAgICAgICAgICAgICAgICAgICAgICApLmdldChmbGFncyArIChjdXJyZW50LmhyZWYgfHwgXCJcIikpO1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKG1heWJlTm9kZXMpXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgbWF5YmVOb2Rlcy5sZW5ndGg7IGkrKylcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKGhvaXN0YWJsZVJvb3QgPSBtYXliZU5vZGVzW2ldKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhvaXN0YWJsZVJvb3QuZ2V0QXR0cmlidXRlKFwiaHJlZlwiKSA9PT1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG51bGwgPT0gY3VycmVudC5ocmVmIHx8IFwiXCIgPT09IGN1cnJlbnQuaHJlZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID8gbnVsbFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogY3VycmVudC5ocmVmKSAmJlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBob2lzdGFibGVSb290LmdldEF0dHJpYnV0ZShcInJlbFwiKSA9PT1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobnVsbCA9PSBjdXJyZW50LnJlbCA/IG51bGwgOiBjdXJyZW50LnJlbCkgJiZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaG9pc3RhYmxlUm9vdC5nZXRBdHRyaWJ1dGUoXCJ0aXRsZVwiKSA9PT1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobnVsbCA9PSBjdXJyZW50LnRpdGxlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA/IG51bGxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogY3VycmVudC50aXRsZSkgJiZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaG9pc3RhYmxlUm9vdC5nZXRBdHRyaWJ1dGUoXCJjcm9zc29yaWdpblwiKSA9PT1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobnVsbCA9PSBjdXJyZW50LmNyb3NzT3JpZ2luXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA/IG51bGxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogY3VycmVudC5jcm9zc09yaWdpbikpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXliZU5vZGVzLnNwbGljZShpLCAxKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrIGI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgaG9pc3RhYmxlUm9vdCA9IHJvb3QuY3JlYXRlRWxlbWVudChmbGFncyk7XG4gICAgICAgICAgICAgICAgICAgICAgICBzZXRJbml0aWFsUHJvcGVydGllcyhob2lzdGFibGVSb290LCBmbGFncywgY3VycmVudCk7XG4gICAgICAgICAgICAgICAgICAgICAgICByb290LmhlYWQuYXBwZW5kQ2hpbGQoaG9pc3RhYmxlUm9vdCk7XG4gICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICAgICAgICBjYXNlIFwibWV0YVwiOlxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAobWF5YmVOb2RlcyA9IGdldEh5ZHJhdGFibGVIb2lzdGFibGVDYWNoZShcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIm1ldGFcIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcImNvbnRlbnRcIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByb290XG4gICAgICAgICAgICAgICAgICAgICAgICAgICkuZ2V0KGZsYWdzICsgKGN1cnJlbnQuY29udGVudCB8fCBcIlwiKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGZvciAoaSA9IDA7IGkgPCBtYXliZU5vZGVzLmxlbmd0aDsgaSsrKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgoaG9pc3RhYmxlUm9vdCA9IG1heWJlTm9kZXNbaV0pLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2hlY2tBdHRyaWJ1dGVTdHJpbmdDb2VyY2lvbihcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3VycmVudC5jb250ZW50LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcImNvbnRlbnRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhvaXN0YWJsZVJvb3QuZ2V0QXR0cmlidXRlKFwiY29udGVudFwiKSA9PT1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG51bGwgPT0gY3VycmVudC5jb250ZW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPyBudWxsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiBcIlwiICsgY3VycmVudC5jb250ZW50KSAmJlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBob2lzdGFibGVSb290LmdldEF0dHJpYnV0ZShcIm5hbWVcIikgPT09XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG51bGwgPT0gY3VycmVudC5uYW1lXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA/IG51bGxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogY3VycmVudC5uYW1lKSAmJlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBob2lzdGFibGVSb290LmdldEF0dHJpYnV0ZShcInByb3BlcnR5XCIpID09PVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChudWxsID09IGN1cnJlbnQucHJvcGVydHlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID8gbnVsbFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiBjdXJyZW50LnByb3BlcnR5KSAmJlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBob2lzdGFibGVSb290LmdldEF0dHJpYnV0ZShcImh0dHAtZXF1aXZcIikgPT09XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG51bGwgPT0gY3VycmVudC5odHRwRXF1aXZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID8gbnVsbFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiBjdXJyZW50Lmh0dHBFcXVpdikgJiZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaG9pc3RhYmxlUm9vdC5nZXRBdHRyaWJ1dGUoXCJjaGFyc2V0XCIpID09PVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChudWxsID09IGN1cnJlbnQuY2hhclNldFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPyBudWxsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IGN1cnJlbnQuY2hhclNldCkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXliZU5vZGVzLnNwbGljZShpLCAxKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrIGI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgaG9pc3RhYmxlUm9vdCA9IHJvb3QuY3JlYXRlRWxlbWVudChmbGFncyk7XG4gICAgICAgICAgICAgICAgICAgICAgICBzZXRJbml0aWFsUHJvcGVydGllcyhob2lzdGFibGVSb290LCBmbGFncywgY3VycmVudCk7XG4gICAgICAgICAgICAgICAgICAgICAgICByb290LmhlYWQuYXBwZW5kQ2hpbGQoaG9pc3RhYmxlUm9vdCk7XG4gICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3cgRXJyb3IoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICdnZXROb2Rlc0ZvclR5cGUgZW5jb3VudGVyZWQgYSB0eXBlIGl0IGRpZCBub3QgZXhwZWN0OiBcIicgK1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZsYWdzICtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAnXCIuIFRoaXMgaXMgYSBidWcgaW4gUmVhY3QuJ1xuICAgICAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBob2lzdGFibGVSb290W2ludGVybmFsSW5zdGFuY2VLZXldID0gZmluaXNoZWRXb3JrO1xuICAgICAgICAgICAgICAgICAgICBtYXJrTm9kZUFzSG9pc3RhYmxlKGhvaXN0YWJsZVJvb3QpO1xuICAgICAgICAgICAgICAgICAgICBmbGFncyA9IGhvaXN0YWJsZVJvb3Q7XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICBmaW5pc2hlZFdvcmsuc3RhdGVOb2RlID0gZmxhZ3M7XG4gICAgICAgICAgICAgICAgfSBlbHNlXG4gICAgICAgICAgICAgICAgICBtb3VudEhvaXN0YWJsZShcbiAgICAgICAgICAgICAgICAgICAgaG9pc3RhYmxlUm9vdCxcbiAgICAgICAgICAgICAgICAgICAgZmluaXNoZWRXb3JrLnR5cGUsXG4gICAgICAgICAgICAgICAgICAgIGZpbmlzaGVkV29yay5zdGF0ZU5vZGVcbiAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgIGVsc2VcbiAgICAgICAgICAgICAgICBmaW5pc2hlZFdvcmsuc3RhdGVOb2RlID0gYWNxdWlyZVJlc291cmNlKFxuICAgICAgICAgICAgICAgICAgaG9pc3RhYmxlUm9vdCxcbiAgICAgICAgICAgICAgICAgIGZsYWdzLFxuICAgICAgICAgICAgICAgICAgZmluaXNoZWRXb3JrLm1lbW9pemVkUHJvcHNcbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgZWxzZVxuICAgICAgICAgICAgICByb290ICE9PSBmbGFnc1xuICAgICAgICAgICAgICAgID8gKG51bGwgPT09IHJvb3RcbiAgICAgICAgICAgICAgICAgICAgPyBudWxsICE9PSBjdXJyZW50LnN0YXRlTm9kZSAmJlxuICAgICAgICAgICAgICAgICAgICAgICgoY3VycmVudCA9IGN1cnJlbnQuc3RhdGVOb2RlKSxcbiAgICAgICAgICAgICAgICAgICAgICBjdXJyZW50LnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQoY3VycmVudCkpXG4gICAgICAgICAgICAgICAgICAgIDogcm9vdC5jb3VudC0tLFxuICAgICAgICAgICAgICAgICAgbnVsbCA9PT0gZmxhZ3NcbiAgICAgICAgICAgICAgICAgICAgPyBtb3VudEhvaXN0YWJsZShcbiAgICAgICAgICAgICAgICAgICAgICAgIGhvaXN0YWJsZVJvb3QsXG4gICAgICAgICAgICAgICAgICAgICAgICBmaW5pc2hlZFdvcmsudHlwZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGZpbmlzaGVkV29yay5zdGF0ZU5vZGVcbiAgICAgICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgICAgIDogYWNxdWlyZVJlc291cmNlKFxuICAgICAgICAgICAgICAgICAgICAgICAgaG9pc3RhYmxlUm9vdCxcbiAgICAgICAgICAgICAgICAgICAgICAgIGZsYWdzLFxuICAgICAgICAgICAgICAgICAgICAgICAgZmluaXNoZWRXb3JrLm1lbW9pemVkUHJvcHNcbiAgICAgICAgICAgICAgICAgICAgICApKVxuICAgICAgICAgICAgICAgIDogbnVsbCA9PT0gZmxhZ3MgJiZcbiAgICAgICAgICAgICAgICAgIG51bGwgIT09IGZpbmlzaGVkV29yay5zdGF0ZU5vZGUgJiZcbiAgICAgICAgICAgICAgICAgIGNvbW1pdEhvc3RVcGRhdGUoXG4gICAgICAgICAgICAgICAgICAgIGZpbmlzaGVkV29yayxcbiAgICAgICAgICAgICAgICAgICAgZmluaXNoZWRXb3JrLm1lbW9pemVkUHJvcHMsXG4gICAgICAgICAgICAgICAgICAgIGN1cnJlbnQubWVtb2l6ZWRQcm9wc1xuICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAyNzpcbiAgICAgICAgICByZWN1cnNpdmVseVRyYXZlcnNlTXV0YXRpb25FZmZlY3RzKHJvb3QsIGZpbmlzaGVkV29yayk7XG4gICAgICAgICAgY29tbWl0UmVjb25jaWxpYXRpb25FZmZlY3RzKGZpbmlzaGVkV29yayk7XG4gICAgICAgICAgZmxhZ3MgJiA1MTIgJiZcbiAgICAgICAgICAgIChvZmZzY3JlZW5TdWJ0cmVlV2FzSGlkZGVuIHx8XG4gICAgICAgICAgICAgIG51bGwgPT09IGN1cnJlbnQgfHxcbiAgICAgICAgICAgICAgc2FmZWx5RGV0YWNoUmVmKGN1cnJlbnQsIGN1cnJlbnQucmV0dXJuKSk7XG4gICAgICAgICAgbnVsbCAhPT0gY3VycmVudCAmJlxuICAgICAgICAgICAgZmxhZ3MgJiA0ICYmXG4gICAgICAgICAgICBjb21taXRIb3N0VXBkYXRlKFxuICAgICAgICAgICAgICBmaW5pc2hlZFdvcmssXG4gICAgICAgICAgICAgIGZpbmlzaGVkV29yay5tZW1vaXplZFByb3BzLFxuICAgICAgICAgICAgICBjdXJyZW50Lm1lbW9pemVkUHJvcHNcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgNTpcbiAgICAgICAgICByZWN1cnNpdmVseVRyYXZlcnNlTXV0YXRpb25FZmZlY3RzKHJvb3QsIGZpbmlzaGVkV29yayk7XG4gICAgICAgICAgY29tbWl0UmVjb25jaWxpYXRpb25FZmZlY3RzKGZpbmlzaGVkV29yayk7XG4gICAgICAgICAgZmxhZ3MgJiA1MTIgJiZcbiAgICAgICAgICAgIChvZmZzY3JlZW5TdWJ0cmVlV2FzSGlkZGVuIHx8XG4gICAgICAgICAgICAgIG51bGwgPT09IGN1cnJlbnQgfHxcbiAgICAgICAgICAgICAgc2FmZWx5RGV0YWNoUmVmKGN1cnJlbnQsIGN1cnJlbnQucmV0dXJuKSk7XG4gICAgICAgICAgaWYgKGZpbmlzaGVkV29yay5mbGFncyAmIDMyKSB7XG4gICAgICAgICAgICByb290ID0gZmluaXNoZWRXb3JrLnN0YXRlTm9kZTtcbiAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgIHJ1bldpdGhGaWJlckluREVWKGZpbmlzaGVkV29yaywgcmVzZXRUZXh0Q29udGVudCwgcm9vdCk7XG4gICAgICAgICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICAgICAgICBjYXB0dXJlQ29tbWl0UGhhc2VFcnJvcihmaW5pc2hlZFdvcmssIGZpbmlzaGVkV29yay5yZXR1cm4sIGVycm9yKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgICAgZmxhZ3MgJiA0ICYmXG4gICAgICAgICAgICBudWxsICE9IGZpbmlzaGVkV29yay5zdGF0ZU5vZGUgJiZcbiAgICAgICAgICAgICgocm9vdCA9IGZpbmlzaGVkV29yay5tZW1vaXplZFByb3BzKSxcbiAgICAgICAgICAgIGNvbW1pdEhvc3RVcGRhdGUoXG4gICAgICAgICAgICAgIGZpbmlzaGVkV29yayxcbiAgICAgICAgICAgICAgcm9vdCxcbiAgICAgICAgICAgICAgbnVsbCAhPT0gY3VycmVudCA/IGN1cnJlbnQubWVtb2l6ZWRQcm9wcyA6IHJvb3RcbiAgICAgICAgICAgICkpO1xuICAgICAgICAgIGZsYWdzICYgMTAyNCAmJlxuICAgICAgICAgICAgKChuZWVkc0Zvcm1SZXNldCA9ICEwKSxcbiAgICAgICAgICAgIFwiZm9ybVwiICE9PSBmaW5pc2hlZFdvcmsudHlwZSAmJlxuICAgICAgICAgICAgICBjb25zb2xlLmVycm9yKFxuICAgICAgICAgICAgICAgIFwiVW5leHBlY3RlZCBob3N0IGNvbXBvbmVudCB0eXBlLiBFeHBlY3RlZCBhIGZvcm0uIFRoaXMgaXMgYSBidWcgaW4gUmVhY3QuXCJcbiAgICAgICAgICAgICAgKSk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgNjpcbiAgICAgICAgICByZWN1cnNpdmVseVRyYXZlcnNlTXV0YXRpb25FZmZlY3RzKHJvb3QsIGZpbmlzaGVkV29yayk7XG4gICAgICAgICAgY29tbWl0UmVjb25jaWxpYXRpb25FZmZlY3RzKGZpbmlzaGVkV29yayk7XG4gICAgICAgICAgaWYgKGZsYWdzICYgNCkge1xuICAgICAgICAgICAgaWYgKG51bGwgPT09IGZpbmlzaGVkV29yay5zdGF0ZU5vZGUpXG4gICAgICAgICAgICAgIHRocm93IEVycm9yKFxuICAgICAgICAgICAgICAgIFwiVGhpcyBzaG91bGQgaGF2ZSBhIHRleHQgbm9kZSBpbml0aWFsaXplZC4gVGhpcyBlcnJvciBpcyBsaWtlbHkgY2F1c2VkIGJ5IGEgYnVnIGluIFJlYWN0LiBQbGVhc2UgZmlsZSBhbiBpc3N1ZS5cIlxuICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgZmxhZ3MgPSBmaW5pc2hlZFdvcmsubWVtb2l6ZWRQcm9wcztcbiAgICAgICAgICAgIGN1cnJlbnQgPSBudWxsICE9PSBjdXJyZW50ID8gY3VycmVudC5tZW1vaXplZFByb3BzIDogZmxhZ3M7XG4gICAgICAgICAgICByb290ID0gZmluaXNoZWRXb3JrLnN0YXRlTm9kZTtcbiAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgIHJ1bldpdGhGaWJlckluREVWKFxuICAgICAgICAgICAgICAgIGZpbmlzaGVkV29yayxcbiAgICAgICAgICAgICAgICBjb21taXRUZXh0VXBkYXRlLFxuICAgICAgICAgICAgICAgIHJvb3QsXG4gICAgICAgICAgICAgICAgY3VycmVudCxcbiAgICAgICAgICAgICAgICBmbGFnc1xuICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgICAgICAgY2FwdHVyZUNvbW1pdFBoYXNlRXJyb3IoZmluaXNoZWRXb3JrLCBmaW5pc2hlZFdvcmsucmV0dXJuLCBlcnJvcik7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIDM6XG4gICAgICAgICAgaG9pc3RhYmxlUm9vdCA9IHB1c2hOZXN0ZWRFZmZlY3REdXJhdGlvbnMoKTtcbiAgICAgICAgICB0YWdDYWNoZXMgPSBudWxsO1xuICAgICAgICAgIG1heWJlTm9kZXMgPSBjdXJyZW50SG9pc3RhYmxlUm9vdDtcbiAgICAgICAgICBjdXJyZW50SG9pc3RhYmxlUm9vdCA9IGdldEhvaXN0YWJsZVJvb3Qocm9vdC5jb250YWluZXJJbmZvKTtcbiAgICAgICAgICByZWN1cnNpdmVseVRyYXZlcnNlTXV0YXRpb25FZmZlY3RzKHJvb3QsIGZpbmlzaGVkV29yayk7XG4gICAgICAgICAgY3VycmVudEhvaXN0YWJsZVJvb3QgPSBtYXliZU5vZGVzO1xuICAgICAgICAgIGNvbW1pdFJlY29uY2lsaWF0aW9uRWZmZWN0cyhmaW5pc2hlZFdvcmspO1xuICAgICAgICAgIGlmIChcbiAgICAgICAgICAgIGZsYWdzICYgNCAmJlxuICAgICAgICAgICAgbnVsbCAhPT0gY3VycmVudCAmJlxuICAgICAgICAgICAgY3VycmVudC5tZW1vaXplZFN0YXRlLmlzRGVoeWRyYXRlZFxuICAgICAgICAgIClcbiAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgIHJ1bldpdGhGaWJlckluREVWKFxuICAgICAgICAgICAgICAgIGZpbmlzaGVkV29yayxcbiAgICAgICAgICAgICAgICBjb21taXRIeWRyYXRlZENvbnRhaW5lcixcbiAgICAgICAgICAgICAgICByb290LmNvbnRhaW5lckluZm9cbiAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgICAgICAgIGNhcHR1cmVDb21taXRQaGFzZUVycm9yKGZpbmlzaGVkV29yaywgZmluaXNoZWRXb3JrLnJldHVybiwgZXJyb3IpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIG5lZWRzRm9ybVJlc2V0ICYmXG4gICAgICAgICAgICAoKG5lZWRzRm9ybVJlc2V0ID0gITEpLCByZWN1cnNpdmVseVJlc2V0Rm9ybXMoZmluaXNoZWRXb3JrKSk7XG4gICAgICAgICAgcm9vdC5lZmZlY3REdXJhdGlvbiArPSBwb3BOZXN0ZWRFZmZlY3REdXJhdGlvbnMoaG9pc3RhYmxlUm9vdCk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgNDpcbiAgICAgICAgICBmbGFncyA9IGN1cnJlbnRIb2lzdGFibGVSb290O1xuICAgICAgICAgIGN1cnJlbnRIb2lzdGFibGVSb290ID0gZ2V0SG9pc3RhYmxlUm9vdChcbiAgICAgICAgICAgIGZpbmlzaGVkV29yay5zdGF0ZU5vZGUuY29udGFpbmVySW5mb1xuICAgICAgICAgICk7XG4gICAgICAgICAgcmVjdXJzaXZlbHlUcmF2ZXJzZU11dGF0aW9uRWZmZWN0cyhyb290LCBmaW5pc2hlZFdvcmspO1xuICAgICAgICAgIGNvbW1pdFJlY29uY2lsaWF0aW9uRWZmZWN0cyhmaW5pc2hlZFdvcmspO1xuICAgICAgICAgIGN1cnJlbnRIb2lzdGFibGVSb290ID0gZmxhZ3M7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgMTI6XG4gICAgICAgICAgZmxhZ3MgPSBwdXNoTmVzdGVkRWZmZWN0RHVyYXRpb25zKCk7XG4gICAgICAgICAgcmVjdXJzaXZlbHlUcmF2ZXJzZU11dGF0aW9uRWZmZWN0cyhyb290LCBmaW5pc2hlZFdvcmspO1xuICAgICAgICAgIGNvbW1pdFJlY29uY2lsaWF0aW9uRWZmZWN0cyhmaW5pc2hlZFdvcmspO1xuICAgICAgICAgIGZpbmlzaGVkV29yay5zdGF0ZU5vZGUuZWZmZWN0RHVyYXRpb24gKz1cbiAgICAgICAgICAgIGJ1YmJsZU5lc3RlZEVmZmVjdER1cmF0aW9ucyhmbGFncyk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgMTM6XG4gICAgICAgICAgcmVjdXJzaXZlbHlUcmF2ZXJzZU11dGF0aW9uRWZmZWN0cyhyb290LCBmaW5pc2hlZFdvcmspO1xuICAgICAgICAgIGNvbW1pdFJlY29uY2lsaWF0aW9uRWZmZWN0cyhmaW5pc2hlZFdvcmspO1xuICAgICAgICAgIGZpbmlzaGVkV29yay5jaGlsZC5mbGFncyAmIDgxOTIgJiZcbiAgICAgICAgICAgIChudWxsICE9PSBmaW5pc2hlZFdvcmsubWVtb2l6ZWRTdGF0ZSkgIT09XG4gICAgICAgICAgICAgIChudWxsICE9PSBjdXJyZW50ICYmIG51bGwgIT09IGN1cnJlbnQubWVtb2l6ZWRTdGF0ZSkgJiZcbiAgICAgICAgICAgIChnbG9iYWxNb3N0UmVjZW50RmFsbGJhY2tUaW1lID0gbm93JDEoKSk7XG4gICAgICAgICAgZmxhZ3MgJiA0ICYmXG4gICAgICAgICAgICAoKGZsYWdzID0gZmluaXNoZWRXb3JrLnVwZGF0ZVF1ZXVlKSxcbiAgICAgICAgICAgIG51bGwgIT09IGZsYWdzICYmXG4gICAgICAgICAgICAgICgoZmluaXNoZWRXb3JrLnVwZGF0ZVF1ZXVlID0gbnVsbCksXG4gICAgICAgICAgICAgIGF0dGFjaFN1c3BlbnNlUmV0cnlMaXN0ZW5lcnMoZmluaXNoZWRXb3JrLCBmbGFncykpKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAyMjpcbiAgICAgICAgICBob2lzdGFibGVSb290ID0gbnVsbCAhPT0gZmluaXNoZWRXb3JrLm1lbW9pemVkU3RhdGU7XG4gICAgICAgICAgdmFyIHdhc0hpZGRlbiA9IG51bGwgIT09IGN1cnJlbnQgJiYgbnVsbCAhPT0gY3VycmVudC5tZW1vaXplZFN0YXRlLFxuICAgICAgICAgICAgcHJldk9mZnNjcmVlblN1YnRyZWVJc0hpZGRlbiA9IG9mZnNjcmVlblN1YnRyZWVJc0hpZGRlbixcbiAgICAgICAgICAgIHByZXZPZmZzY3JlZW5TdWJ0cmVlV2FzSGlkZGVuID0gb2Zmc2NyZWVuU3VidHJlZVdhc0hpZGRlbjtcbiAgICAgICAgICBvZmZzY3JlZW5TdWJ0cmVlSXNIaWRkZW4gPVxuICAgICAgICAgICAgcHJldk9mZnNjcmVlblN1YnRyZWVJc0hpZGRlbiB8fCBob2lzdGFibGVSb290O1xuICAgICAgICAgIG9mZnNjcmVlblN1YnRyZWVXYXNIaWRkZW4gPVxuICAgICAgICAgICAgcHJldk9mZnNjcmVlblN1YnRyZWVXYXNIaWRkZW4gfHwgd2FzSGlkZGVuO1xuICAgICAgICAgIHJlY3Vyc2l2ZWx5VHJhdmVyc2VNdXRhdGlvbkVmZmVjdHMocm9vdCwgZmluaXNoZWRXb3JrKTtcbiAgICAgICAgICBvZmZzY3JlZW5TdWJ0cmVlV2FzSGlkZGVuID0gcHJldk9mZnNjcmVlblN1YnRyZWVXYXNIaWRkZW47XG4gICAgICAgICAgb2Zmc2NyZWVuU3VidHJlZUlzSGlkZGVuID0gcHJldk9mZnNjcmVlblN1YnRyZWVJc0hpZGRlbjtcbiAgICAgICAgICBjb21taXRSZWNvbmNpbGlhdGlvbkVmZmVjdHMoZmluaXNoZWRXb3JrKTtcbiAgICAgICAgICBpZiAoZmxhZ3MgJiA4MTkyKVxuICAgICAgICAgICAgYTogZm9yIChcbiAgICAgICAgICAgICAgcm9vdCA9IGZpbmlzaGVkV29yay5zdGF0ZU5vZGUsXG4gICAgICAgICAgICAgICAgcm9vdC5fdmlzaWJpbGl0eSA9IGhvaXN0YWJsZVJvb3RcbiAgICAgICAgICAgICAgICAgID8gcm9vdC5fdmlzaWJpbGl0eSAmIH5PZmZzY3JlZW5WaXNpYmxlXG4gICAgICAgICAgICAgICAgICA6IHJvb3QuX3Zpc2liaWxpdHkgfCBPZmZzY3JlZW5WaXNpYmxlLFxuICAgICAgICAgICAgICAgIGhvaXN0YWJsZVJvb3QgJiZcbiAgICAgICAgICAgICAgICAgIChudWxsID09PSBjdXJyZW50IHx8XG4gICAgICAgICAgICAgICAgICAgIHdhc0hpZGRlbiB8fFxuICAgICAgICAgICAgICAgICAgICBvZmZzY3JlZW5TdWJ0cmVlSXNIaWRkZW4gfHxcbiAgICAgICAgICAgICAgICAgICAgb2Zmc2NyZWVuU3VidHJlZVdhc0hpZGRlbiB8fFxuICAgICAgICAgICAgICAgICAgICByZWN1cnNpdmVseVRyYXZlcnNlRGlzYXBwZWFyTGF5b3V0RWZmZWN0cyhmaW5pc2hlZFdvcmspKSxcbiAgICAgICAgICAgICAgICBjdXJyZW50ID0gbnVsbCxcbiAgICAgICAgICAgICAgICByb290ID0gZmluaXNoZWRXb3JrO1xuICAgICAgICAgICAgICA7XG5cbiAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICBpZiAoNSA9PT0gcm9vdC50YWcgfHwgMjYgPT09IHJvb3QudGFnKSB7XG4gICAgICAgICAgICAgICAgaWYgKG51bGwgPT09IGN1cnJlbnQpIHtcbiAgICAgICAgICAgICAgICAgIHdhc0hpZGRlbiA9IGN1cnJlbnQgPSByb290O1xuICAgICAgICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICAgICAgKG1heWJlTm9kZXMgPSB3YXNIaWRkZW4uc3RhdGVOb2RlKSxcbiAgICAgICAgICAgICAgICAgICAgICBob2lzdGFibGVSb290XG4gICAgICAgICAgICAgICAgICAgICAgICA/IHJ1bldpdGhGaWJlckluREVWKHdhc0hpZGRlbiwgaGlkZUluc3RhbmNlLCBtYXliZU5vZGVzKVxuICAgICAgICAgICAgICAgICAgICAgICAgOiBydW5XaXRoRmliZXJJbkRFVihcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB3YXNIaWRkZW4sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5oaWRlSW5zdGFuY2UsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgd2FzSGlkZGVuLnN0YXRlTm9kZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB3YXNIaWRkZW4ubWVtb2l6ZWRQcm9wc1xuICAgICAgICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgICAgICAgICAgICAgY2FwdHVyZUNvbW1pdFBoYXNlRXJyb3Iod2FzSGlkZGVuLCB3YXNIaWRkZW4ucmV0dXJuLCBlcnJvcik7XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9IGVsc2UgaWYgKDYgPT09IHJvb3QudGFnKSB7XG4gICAgICAgICAgICAgICAgaWYgKG51bGwgPT09IGN1cnJlbnQpIHtcbiAgICAgICAgICAgICAgICAgIHdhc0hpZGRlbiA9IHJvb3Q7XG4gICAgICAgICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgICAgICAoaSA9IHdhc0hpZGRlbi5zdGF0ZU5vZGUpLFxuICAgICAgICAgICAgICAgICAgICAgIGhvaXN0YWJsZVJvb3RcbiAgICAgICAgICAgICAgICAgICAgICAgID8gcnVuV2l0aEZpYmVySW5ERVYod2FzSGlkZGVuLCBoaWRlVGV4dEluc3RhbmNlLCBpKVxuICAgICAgICAgICAgICAgICAgICAgICAgOiBydW5XaXRoRmliZXJJbkRFVihcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB3YXNIaWRkZW4sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5oaWRlVGV4dEluc3RhbmNlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgd2FzSGlkZGVuLm1lbW9pemVkUHJvcHNcbiAgICAgICAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgICAgICAgICAgICAgIGNhcHR1cmVDb21taXRQaGFzZUVycm9yKHdhc0hpZGRlbiwgd2FzSGlkZGVuLnJldHVybiwgZXJyb3IpO1xuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfSBlbHNlIGlmIChcbiAgICAgICAgICAgICAgICAoKDIyICE9PSByb290LnRhZyAmJiAyMyAhPT0gcm9vdC50YWcpIHx8XG4gICAgICAgICAgICAgICAgICBudWxsID09PSByb290Lm1lbW9pemVkU3RhdGUgfHxcbiAgICAgICAgICAgICAgICAgIHJvb3QgPT09IGZpbmlzaGVkV29yaykgJiZcbiAgICAgICAgICAgICAgICBudWxsICE9PSByb290LmNoaWxkXG4gICAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICAgIHJvb3QuY2hpbGQucmV0dXJuID0gcm9vdDtcbiAgICAgICAgICAgICAgICByb290ID0gcm9vdC5jaGlsZDtcbiAgICAgICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICBpZiAocm9vdCA9PT0gZmluaXNoZWRXb3JrKSBicmVhayBhO1xuICAgICAgICAgICAgICBmb3IgKDsgbnVsbCA9PT0gcm9vdC5zaWJsaW5nOyApIHtcbiAgICAgICAgICAgICAgICBpZiAobnVsbCA9PT0gcm9vdC5yZXR1cm4gfHwgcm9vdC5yZXR1cm4gPT09IGZpbmlzaGVkV29yaylcbiAgICAgICAgICAgICAgICAgIGJyZWFrIGE7XG4gICAgICAgICAgICAgICAgY3VycmVudCA9PT0gcm9vdCAmJiAoY3VycmVudCA9IG51bGwpO1xuICAgICAgICAgICAgICAgIHJvb3QgPSByb290LnJldHVybjtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICBjdXJyZW50ID09PSByb290ICYmIChjdXJyZW50ID0gbnVsbCk7XG4gICAgICAgICAgICAgIHJvb3Quc2libGluZy5yZXR1cm4gPSByb290LnJldHVybjtcbiAgICAgICAgICAgICAgcm9vdCA9IHJvb3Quc2libGluZztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICBmbGFncyAmIDQgJiZcbiAgICAgICAgICAgICgoZmxhZ3MgPSBmaW5pc2hlZFdvcmsudXBkYXRlUXVldWUpLFxuICAgICAgICAgICAgbnVsbCAhPT0gZmxhZ3MgJiZcbiAgICAgICAgICAgICAgKChjdXJyZW50ID0gZmxhZ3MucmV0cnlRdWV1ZSksXG4gICAgICAgICAgICAgIG51bGwgIT09IGN1cnJlbnQgJiZcbiAgICAgICAgICAgICAgICAoKGZsYWdzLnJldHJ5UXVldWUgPSBudWxsKSxcbiAgICAgICAgICAgICAgICBhdHRhY2hTdXNwZW5zZVJldHJ5TGlzdGVuZXJzKGZpbmlzaGVkV29yaywgY3VycmVudCkpKSk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgMTk6XG4gICAgICAgICAgcmVjdXJzaXZlbHlUcmF2ZXJzZU11dGF0aW9uRWZmZWN0cyhyb290LCBmaW5pc2hlZFdvcmspO1xuICAgICAgICAgIGNvbW1pdFJlY29uY2lsaWF0aW9uRWZmZWN0cyhmaW5pc2hlZFdvcmspO1xuICAgICAgICAgIGZsYWdzICYgNCAmJlxuICAgICAgICAgICAgKChmbGFncyA9IGZpbmlzaGVkV29yay51cGRhdGVRdWV1ZSksXG4gICAgICAgICAgICBudWxsICE9PSBmbGFncyAmJlxuICAgICAgICAgICAgICAoKGZpbmlzaGVkV29yay51cGRhdGVRdWV1ZSA9IG51bGwpLFxuICAgICAgICAgICAgICBhdHRhY2hTdXNwZW5zZVJldHJ5TGlzdGVuZXJzKGZpbmlzaGVkV29yaywgZmxhZ3MpKSk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgMzA6XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgMjE6XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgcmVjdXJzaXZlbHlUcmF2ZXJzZU11dGF0aW9uRWZmZWN0cyhyb290LCBmaW5pc2hlZFdvcmspLFxuICAgICAgICAgICAgY29tbWl0UmVjb25jaWxpYXRpb25FZmZlY3RzKGZpbmlzaGVkV29yayk7XG4gICAgICB9XG4gICAgfVxuICAgIGZ1bmN0aW9uIGNvbW1pdFJlY29uY2lsaWF0aW9uRWZmZWN0cyhmaW5pc2hlZFdvcmspIHtcbiAgICAgIHZhciBmbGFncyA9IGZpbmlzaGVkV29yay5mbGFncztcbiAgICAgIGlmIChmbGFncyAmIDIpIHtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICBydW5XaXRoRmliZXJJbkRFVihmaW5pc2hlZFdvcmssIGNvbW1pdFBsYWNlbWVudCwgZmluaXNoZWRXb3JrKTtcbiAgICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgICBjYXB0dXJlQ29tbWl0UGhhc2VFcnJvcihmaW5pc2hlZFdvcmssIGZpbmlzaGVkV29yay5yZXR1cm4sIGVycm9yKTtcbiAgICAgICAgfVxuICAgICAgICBmaW5pc2hlZFdvcmsuZmxhZ3MgJj0gLTM7XG4gICAgICB9XG4gICAgICBmbGFncyAmIDQwOTYgJiYgKGZpbmlzaGVkV29yay5mbGFncyAmPSAtNDA5Nyk7XG4gICAgfVxuICAgIGZ1bmN0aW9uIHJlY3Vyc2l2ZWx5UmVzZXRGb3JtcyhwYXJlbnRGaWJlcikge1xuICAgICAgaWYgKHBhcmVudEZpYmVyLnN1YnRyZWVGbGFncyAmIDEwMjQpXG4gICAgICAgIGZvciAocGFyZW50RmliZXIgPSBwYXJlbnRGaWJlci5jaGlsZDsgbnVsbCAhPT0gcGFyZW50RmliZXI7ICkge1xuICAgICAgICAgIHZhciBmaWJlciA9IHBhcmVudEZpYmVyO1xuICAgICAgICAgIHJlY3Vyc2l2ZWx5UmVzZXRGb3JtcyhmaWJlcik7XG4gICAgICAgICAgNSA9PT0gZmliZXIudGFnICYmIGZpYmVyLmZsYWdzICYgMTAyNCAmJiBmaWJlci5zdGF0ZU5vZGUucmVzZXQoKTtcbiAgICAgICAgICBwYXJlbnRGaWJlciA9IHBhcmVudEZpYmVyLnNpYmxpbmc7XG4gICAgICAgIH1cbiAgICB9XG4gICAgZnVuY3Rpb24gcmVjdXJzaXZlbHlUcmF2ZXJzZUxheW91dEVmZmVjdHMocm9vdCwgcGFyZW50RmliZXIpIHtcbiAgICAgIGlmIChwYXJlbnRGaWJlci5zdWJ0cmVlRmxhZ3MgJiA4NzcyKVxuICAgICAgICBmb3IgKHBhcmVudEZpYmVyID0gcGFyZW50RmliZXIuY2hpbGQ7IG51bGwgIT09IHBhcmVudEZpYmVyOyApXG4gICAgICAgICAgY29tbWl0TGF5b3V0RWZmZWN0T25GaWJlcihyb290LCBwYXJlbnRGaWJlci5hbHRlcm5hdGUsIHBhcmVudEZpYmVyKSxcbiAgICAgICAgICAgIChwYXJlbnRGaWJlciA9IHBhcmVudEZpYmVyLnNpYmxpbmcpO1xuICAgIH1cbiAgICBmdW5jdGlvbiBkaXNhcHBlYXJMYXlvdXRFZmZlY3RzKGZpbmlzaGVkV29yaykge1xuICAgICAgc3dpdGNoIChmaW5pc2hlZFdvcmsudGFnKSB7XG4gICAgICAgIGNhc2UgMDpcbiAgICAgICAgY2FzZSAxMTpcbiAgICAgICAgY2FzZSAxNDpcbiAgICAgICAgY2FzZSAxNTpcbiAgICAgICAgICBjb21taXRIb29rTGF5b3V0VW5tb3VudEVmZmVjdHMoXG4gICAgICAgICAgICBmaW5pc2hlZFdvcmssXG4gICAgICAgICAgICBmaW5pc2hlZFdvcmsucmV0dXJuLFxuICAgICAgICAgICAgTGF5b3V0XG4gICAgICAgICAgKTtcbiAgICAgICAgICByZWN1cnNpdmVseVRyYXZlcnNlRGlzYXBwZWFyTGF5b3V0RWZmZWN0cyhmaW5pc2hlZFdvcmspO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIDE6XG4gICAgICAgICAgc2FmZWx5RGV0YWNoUmVmKGZpbmlzaGVkV29yaywgZmluaXNoZWRXb3JrLnJldHVybik7XG4gICAgICAgICAgdmFyIGluc3RhbmNlID0gZmluaXNoZWRXb3JrLnN0YXRlTm9kZTtcbiAgICAgICAgICBcImZ1bmN0aW9uXCIgPT09IHR5cGVvZiBpbnN0YW5jZS5jb21wb25lbnRXaWxsVW5tb3VudCAmJlxuICAgICAgICAgICAgc2FmZWx5Q2FsbENvbXBvbmVudFdpbGxVbm1vdW50KFxuICAgICAgICAgICAgICBmaW5pc2hlZFdvcmssXG4gICAgICAgICAgICAgIGZpbmlzaGVkV29yay5yZXR1cm4sXG4gICAgICAgICAgICAgIGluc3RhbmNlXG4gICAgICAgICAgICApO1xuICAgICAgICAgIHJlY3Vyc2l2ZWx5VHJhdmVyc2VEaXNhcHBlYXJMYXlvdXRFZmZlY3RzKGZpbmlzaGVkV29yayk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgMjc6XG4gICAgICAgICAgcnVuV2l0aEZpYmVySW5ERVYoXG4gICAgICAgICAgICBmaW5pc2hlZFdvcmssXG4gICAgICAgICAgICByZWxlYXNlU2luZ2xldG9uSW5zdGFuY2UsXG4gICAgICAgICAgICBmaW5pc2hlZFdvcmsuc3RhdGVOb2RlXG4gICAgICAgICAgKTtcbiAgICAgICAgY2FzZSAyNjpcbiAgICAgICAgY2FzZSA1OlxuICAgICAgICAgIHNhZmVseURldGFjaFJlZihmaW5pc2hlZFdvcmssIGZpbmlzaGVkV29yay5yZXR1cm4pO1xuICAgICAgICAgIHJlY3Vyc2l2ZWx5VHJhdmVyc2VEaXNhcHBlYXJMYXlvdXRFZmZlY3RzKGZpbmlzaGVkV29yayk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgMjI6XG4gICAgICAgICAgbnVsbCA9PT0gZmluaXNoZWRXb3JrLm1lbW9pemVkU3RhdGUgJiZcbiAgICAgICAgICAgIHJlY3Vyc2l2ZWx5VHJhdmVyc2VEaXNhcHBlYXJMYXlvdXRFZmZlY3RzKGZpbmlzaGVkV29yayk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgMzA6XG4gICAgICAgICAgcmVjdXJzaXZlbHlUcmF2ZXJzZURpc2FwcGVhckxheW91dEVmZmVjdHMoZmluaXNoZWRXb3JrKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICByZWN1cnNpdmVseVRyYXZlcnNlRGlzYXBwZWFyTGF5b3V0RWZmZWN0cyhmaW5pc2hlZFdvcmspO1xuICAgICAgfVxuICAgIH1cbiAgICBmdW5jdGlvbiByZWN1cnNpdmVseVRyYXZlcnNlRGlzYXBwZWFyTGF5b3V0RWZmZWN0cyhwYXJlbnRGaWJlcikge1xuICAgICAgZm9yIChwYXJlbnRGaWJlciA9IHBhcmVudEZpYmVyLmNoaWxkOyBudWxsICE9PSBwYXJlbnRGaWJlcjsgKVxuICAgICAgICBkaXNhcHBlYXJMYXlvdXRFZmZlY3RzKHBhcmVudEZpYmVyKSxcbiAgICAgICAgICAocGFyZW50RmliZXIgPSBwYXJlbnRGaWJlci5zaWJsaW5nKTtcbiAgICB9XG4gICAgZnVuY3Rpb24gcmVhcHBlYXJMYXlvdXRFZmZlY3RzKFxuICAgICAgZmluaXNoZWRSb290LFxuICAgICAgY3VycmVudCxcbiAgICAgIGZpbmlzaGVkV29yayxcbiAgICAgIGluY2x1ZGVXb3JrSW5Qcm9ncmVzc0VmZmVjdHNcbiAgICApIHtcbiAgICAgIHZhciBmbGFncyA9IGZpbmlzaGVkV29yay5mbGFncztcbiAgICAgIHN3aXRjaCAoZmluaXNoZWRXb3JrLnRhZykge1xuICAgICAgICBjYXNlIDA6XG4gICAgICAgIGNhc2UgMTE6XG4gICAgICAgIGNhc2UgMTU6XG4gICAgICAgICAgcmVjdXJzaXZlbHlUcmF2ZXJzZVJlYXBwZWFyTGF5b3V0RWZmZWN0cyhcbiAgICAgICAgICAgIGZpbmlzaGVkUm9vdCxcbiAgICAgICAgICAgIGZpbmlzaGVkV29yayxcbiAgICAgICAgICAgIGluY2x1ZGVXb3JrSW5Qcm9ncmVzc0VmZmVjdHNcbiAgICAgICAgICApO1xuICAgICAgICAgIGNvbW1pdEhvb2tMYXlvdXRFZmZlY3RzKGZpbmlzaGVkV29yaywgTGF5b3V0KTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAxOlxuICAgICAgICAgIHJlY3Vyc2l2ZWx5VHJhdmVyc2VSZWFwcGVhckxheW91dEVmZmVjdHMoXG4gICAgICAgICAgICBmaW5pc2hlZFJvb3QsXG4gICAgICAgICAgICBmaW5pc2hlZFdvcmssXG4gICAgICAgICAgICBpbmNsdWRlV29ya0luUHJvZ3Jlc3NFZmZlY3RzXG4gICAgICAgICAgKTtcbiAgICAgICAgICBjdXJyZW50ID0gZmluaXNoZWRXb3JrLnN0YXRlTm9kZTtcbiAgICAgICAgICBcImZ1bmN0aW9uXCIgPT09IHR5cGVvZiBjdXJyZW50LmNvbXBvbmVudERpZE1vdW50ICYmXG4gICAgICAgICAgICBydW5XaXRoRmliZXJJbkRFVihcbiAgICAgICAgICAgICAgZmluaXNoZWRXb3JrLFxuICAgICAgICAgICAgICBjYWxsQ29tcG9uZW50RGlkTW91bnRJbkRFVixcbiAgICAgICAgICAgICAgZmluaXNoZWRXb3JrLFxuICAgICAgICAgICAgICBjdXJyZW50XG4gICAgICAgICAgICApO1xuICAgICAgICAgIGN1cnJlbnQgPSBmaW5pc2hlZFdvcmsudXBkYXRlUXVldWU7XG4gICAgICAgICAgaWYgKG51bGwgIT09IGN1cnJlbnQpIHtcbiAgICAgICAgICAgIGZpbmlzaGVkUm9vdCA9IGZpbmlzaGVkV29yay5zdGF0ZU5vZGU7XG4gICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICBydW5XaXRoRmliZXJJbkRFVihcbiAgICAgICAgICAgICAgICBmaW5pc2hlZFdvcmssXG4gICAgICAgICAgICAgICAgY29tbWl0SGlkZGVuQ2FsbGJhY2tzLFxuICAgICAgICAgICAgICAgIGN1cnJlbnQsXG4gICAgICAgICAgICAgICAgZmluaXNoZWRSb290XG4gICAgICAgICAgICAgICk7XG4gICAgICAgICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICAgICAgICBjYXB0dXJlQ29tbWl0UGhhc2VFcnJvcihmaW5pc2hlZFdvcmssIGZpbmlzaGVkV29yay5yZXR1cm4sIGVycm9yKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgICAgaW5jbHVkZVdvcmtJblByb2dyZXNzRWZmZWN0cyAmJlxuICAgICAgICAgICAgZmxhZ3MgJiA2NCAmJlxuICAgICAgICAgICAgY29tbWl0Q2xhc3NDYWxsYmFja3MoZmluaXNoZWRXb3JrKTtcbiAgICAgICAgICBzYWZlbHlBdHRhY2hSZWYoZmluaXNoZWRXb3JrLCBmaW5pc2hlZFdvcmsucmV0dXJuKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAyNzpcbiAgICAgICAgICBjb21taXRIb3N0U2luZ2xldG9uQWNxdWlzaXRpb24oZmluaXNoZWRXb3JrKTtcbiAgICAgICAgY2FzZSAyNjpcbiAgICAgICAgY2FzZSA1OlxuICAgICAgICAgIHJlY3Vyc2l2ZWx5VHJhdmVyc2VSZWFwcGVhckxheW91dEVmZmVjdHMoXG4gICAgICAgICAgICBmaW5pc2hlZFJvb3QsXG4gICAgICAgICAgICBmaW5pc2hlZFdvcmssXG4gICAgICAgICAgICBpbmNsdWRlV29ya0luUHJvZ3Jlc3NFZmZlY3RzXG4gICAgICAgICAgKTtcbiAgICAgICAgICBpbmNsdWRlV29ya0luUHJvZ3Jlc3NFZmZlY3RzICYmXG4gICAgICAgICAgICBudWxsID09PSBjdXJyZW50ICYmXG4gICAgICAgICAgICBmbGFncyAmIDQgJiZcbiAgICAgICAgICAgIGNvbW1pdEhvc3RNb3VudChmaW5pc2hlZFdvcmspO1xuICAgICAgICAgIHNhZmVseUF0dGFjaFJlZihmaW5pc2hlZFdvcmssIGZpbmlzaGVkV29yay5yZXR1cm4pO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIDEyOlxuICAgICAgICAgIGlmIChpbmNsdWRlV29ya0luUHJvZ3Jlc3NFZmZlY3RzICYmIGZsYWdzICYgNCkge1xuICAgICAgICAgICAgZmxhZ3MgPSBwdXNoTmVzdGVkRWZmZWN0RHVyYXRpb25zKCk7XG4gICAgICAgICAgICByZWN1cnNpdmVseVRyYXZlcnNlUmVhcHBlYXJMYXlvdXRFZmZlY3RzKFxuICAgICAgICAgICAgICBmaW5pc2hlZFJvb3QsXG4gICAgICAgICAgICAgIGZpbmlzaGVkV29yayxcbiAgICAgICAgICAgICAgaW5jbHVkZVdvcmtJblByb2dyZXNzRWZmZWN0c1xuICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIGluY2x1ZGVXb3JrSW5Qcm9ncmVzc0VmZmVjdHMgPSBmaW5pc2hlZFdvcmsuc3RhdGVOb2RlO1xuICAgICAgICAgICAgaW5jbHVkZVdvcmtJblByb2dyZXNzRWZmZWN0cy5lZmZlY3REdXJhdGlvbiArPVxuICAgICAgICAgICAgICBidWJibGVOZXN0ZWRFZmZlY3REdXJhdGlvbnMoZmxhZ3MpO1xuICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgcnVuV2l0aEZpYmVySW5ERVYoXG4gICAgICAgICAgICAgICAgZmluaXNoZWRXb3JrLFxuICAgICAgICAgICAgICAgIGNvbW1pdFByb2ZpbGVyLFxuICAgICAgICAgICAgICAgIGZpbmlzaGVkV29yayxcbiAgICAgICAgICAgICAgICBjdXJyZW50LFxuICAgICAgICAgICAgICAgIGNvbW1pdFN0YXJ0VGltZSxcbiAgICAgICAgICAgICAgICBpbmNsdWRlV29ya0luUHJvZ3Jlc3NFZmZlY3RzLmVmZmVjdER1cmF0aW9uXG4gICAgICAgICAgICAgICk7XG4gICAgICAgICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICAgICAgICBjYXB0dXJlQ29tbWl0UGhhc2VFcnJvcihmaW5pc2hlZFdvcmssIGZpbmlzaGVkV29yay5yZXR1cm4sIGVycm9yKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9IGVsc2VcbiAgICAgICAgICAgIHJlY3Vyc2l2ZWx5VHJhdmVyc2VSZWFwcGVhckxheW91dEVmZmVjdHMoXG4gICAgICAgICAgICAgIGZpbmlzaGVkUm9vdCxcbiAgICAgICAgICAgICAgZmluaXNoZWRXb3JrLFxuICAgICAgICAgICAgICBpbmNsdWRlV29ya0luUHJvZ3Jlc3NFZmZlY3RzXG4gICAgICAgICAgICApO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIDEzOlxuICAgICAgICAgIHJlY3Vyc2l2ZWx5VHJhdmVyc2VSZWFwcGVhckxheW91dEVmZmVjdHMoXG4gICAgICAgICAgICBmaW5pc2hlZFJvb3QsXG4gICAgICAgICAgICBmaW5pc2hlZFdvcmssXG4gICAgICAgICAgICBpbmNsdWRlV29ya0luUHJvZ3Jlc3NFZmZlY3RzXG4gICAgICAgICAgKTtcbiAgICAgICAgICBpbmNsdWRlV29ya0luUHJvZ3Jlc3NFZmZlY3RzICYmXG4gICAgICAgICAgICBmbGFncyAmIDQgJiZcbiAgICAgICAgICAgIGNvbW1pdFN1c3BlbnNlSHlkcmF0aW9uQ2FsbGJhY2tzKGZpbmlzaGVkUm9vdCwgZmluaXNoZWRXb3JrKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAyMjpcbiAgICAgICAgICBudWxsID09PSBmaW5pc2hlZFdvcmsubWVtb2l6ZWRTdGF0ZSAmJlxuICAgICAgICAgICAgcmVjdXJzaXZlbHlUcmF2ZXJzZVJlYXBwZWFyTGF5b3V0RWZmZWN0cyhcbiAgICAgICAgICAgICAgZmluaXNoZWRSb290LFxuICAgICAgICAgICAgICBmaW5pc2hlZFdvcmssXG4gICAgICAgICAgICAgIGluY2x1ZGVXb3JrSW5Qcm9ncmVzc0VmZmVjdHNcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgc2FmZWx5QXR0YWNoUmVmKGZpbmlzaGVkV29yaywgZmluaXNoZWRXb3JrLnJldHVybik7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgMzA6XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgcmVjdXJzaXZlbHlUcmF2ZXJzZVJlYXBwZWFyTGF5b3V0RWZmZWN0cyhcbiAgICAgICAgICAgIGZpbmlzaGVkUm9vdCxcbiAgICAgICAgICAgIGZpbmlzaGVkV29yayxcbiAgICAgICAgICAgIGluY2x1ZGVXb3JrSW5Qcm9ncmVzc0VmZmVjdHNcbiAgICAgICAgICApO1xuICAgICAgfVxuICAgIH1cbiAgICBmdW5jdGlvbiByZWN1cnNpdmVseVRyYXZlcnNlUmVhcHBlYXJMYXlvdXRFZmZlY3RzKFxuICAgICAgZmluaXNoZWRSb290LFxuICAgICAgcGFyZW50RmliZXIsXG4gICAgICBpbmNsdWRlV29ya0luUHJvZ3Jlc3NFZmZlY3RzXG4gICAgKSB7XG4gICAgICBpbmNsdWRlV29ya0luUHJvZ3Jlc3NFZmZlY3RzID1cbiAgICAgICAgaW5jbHVkZVdvcmtJblByb2dyZXNzRWZmZWN0cyAmJiAwICE9PSAocGFyZW50RmliZXIuc3VidHJlZUZsYWdzICYgODc3Mik7XG4gICAgICBmb3IgKHBhcmVudEZpYmVyID0gcGFyZW50RmliZXIuY2hpbGQ7IG51bGwgIT09IHBhcmVudEZpYmVyOyApXG4gICAgICAgIHJlYXBwZWFyTGF5b3V0RWZmZWN0cyhcbiAgICAgICAgICBmaW5pc2hlZFJvb3QsXG4gICAgICAgICAgcGFyZW50RmliZXIuYWx0ZXJuYXRlLFxuICAgICAgICAgIHBhcmVudEZpYmVyLFxuICAgICAgICAgIGluY2x1ZGVXb3JrSW5Qcm9ncmVzc0VmZmVjdHNcbiAgICAgICAgKSxcbiAgICAgICAgICAocGFyZW50RmliZXIgPSBwYXJlbnRGaWJlci5zaWJsaW5nKTtcbiAgICB9XG4gICAgZnVuY3Rpb24gY29tbWl0T2Zmc2NyZWVuUGFzc2l2ZU1vdW50RWZmZWN0cyhjdXJyZW50LCBmaW5pc2hlZFdvcmspIHtcbiAgICAgIHZhciBwcmV2aW91c0NhY2hlID0gbnVsbDtcbiAgICAgIG51bGwgIT09IGN1cnJlbnQgJiZcbiAgICAgICAgbnVsbCAhPT0gY3VycmVudC5tZW1vaXplZFN0YXRlICYmXG4gICAgICAgIG51bGwgIT09IGN1cnJlbnQubWVtb2l6ZWRTdGF0ZS5jYWNoZVBvb2wgJiZcbiAgICAgICAgKHByZXZpb3VzQ2FjaGUgPSBjdXJyZW50Lm1lbW9pemVkU3RhdGUuY2FjaGVQb29sLnBvb2wpO1xuICAgICAgY3VycmVudCA9IG51bGw7XG4gICAgICBudWxsICE9PSBmaW5pc2hlZFdvcmsubWVtb2l6ZWRTdGF0ZSAmJlxuICAgICAgICBudWxsICE9PSBmaW5pc2hlZFdvcmsubWVtb2l6ZWRTdGF0ZS5jYWNoZVBvb2wgJiZcbiAgICAgICAgKGN1cnJlbnQgPSBmaW5pc2hlZFdvcmsubWVtb2l6ZWRTdGF0ZS5jYWNoZVBvb2wucG9vbCk7XG4gICAgICBjdXJyZW50ICE9PSBwcmV2aW91c0NhY2hlICYmXG4gICAgICAgIChudWxsICE9IGN1cnJlbnQgJiYgcmV0YWluQ2FjaGUoY3VycmVudCksXG4gICAgICAgIG51bGwgIT0gcHJldmlvdXNDYWNoZSAmJiByZWxlYXNlQ2FjaGUocHJldmlvdXNDYWNoZSkpO1xuICAgIH1cbiAgICBmdW5jdGlvbiBjb21taXRDYWNoZVBhc3NpdmVNb3VudEVmZmVjdChjdXJyZW50LCBmaW5pc2hlZFdvcmspIHtcbiAgICAgIGN1cnJlbnQgPSBudWxsO1xuICAgICAgbnVsbCAhPT0gZmluaXNoZWRXb3JrLmFsdGVybmF0ZSAmJlxuICAgICAgICAoY3VycmVudCA9IGZpbmlzaGVkV29yay5hbHRlcm5hdGUubWVtb2l6ZWRTdGF0ZS5jYWNoZSk7XG4gICAgICBmaW5pc2hlZFdvcmsgPSBmaW5pc2hlZFdvcmsubWVtb2l6ZWRTdGF0ZS5jYWNoZTtcbiAgICAgIGZpbmlzaGVkV29yayAhPT0gY3VycmVudCAmJlxuICAgICAgICAocmV0YWluQ2FjaGUoZmluaXNoZWRXb3JrKSwgbnVsbCAhPSBjdXJyZW50ICYmIHJlbGVhc2VDYWNoZShjdXJyZW50KSk7XG4gICAgfVxuICAgIGZ1bmN0aW9uIHJlY3Vyc2l2ZWx5VHJhdmVyc2VQYXNzaXZlTW91bnRFZmZlY3RzKFxuICAgICAgcm9vdCxcbiAgICAgIHBhcmVudEZpYmVyLFxuICAgICAgY29tbWl0dGVkTGFuZXMsXG4gICAgICBjb21taXR0ZWRUcmFuc2l0aW9uc1xuICAgICkge1xuICAgICAgaWYgKHBhcmVudEZpYmVyLnN1YnRyZWVGbGFncyAmIDEwMjU2KVxuICAgICAgICBmb3IgKHBhcmVudEZpYmVyID0gcGFyZW50RmliZXIuY2hpbGQ7IG51bGwgIT09IHBhcmVudEZpYmVyOyApXG4gICAgICAgICAgY29tbWl0UGFzc2l2ZU1vdW50T25GaWJlcihcbiAgICAgICAgICAgIHJvb3QsXG4gICAgICAgICAgICBwYXJlbnRGaWJlcixcbiAgICAgICAgICAgIGNvbW1pdHRlZExhbmVzLFxuICAgICAgICAgICAgY29tbWl0dGVkVHJhbnNpdGlvbnNcbiAgICAgICAgICApLFxuICAgICAgICAgICAgKHBhcmVudEZpYmVyID0gcGFyZW50RmliZXIuc2libGluZyk7XG4gICAgfVxuICAgIGZ1bmN0aW9uIGNvbW1pdFBhc3NpdmVNb3VudE9uRmliZXIoXG4gICAgICBmaW5pc2hlZFJvb3QsXG4gICAgICBmaW5pc2hlZFdvcmssXG4gICAgICBjb21taXR0ZWRMYW5lcyxcbiAgICAgIGNvbW1pdHRlZFRyYW5zaXRpb25zXG4gICAgKSB7XG4gICAgICB2YXIgZmxhZ3MgPSBmaW5pc2hlZFdvcmsuZmxhZ3M7XG4gICAgICBzd2l0Y2ggKGZpbmlzaGVkV29yay50YWcpIHtcbiAgICAgICAgY2FzZSAwOlxuICAgICAgICBjYXNlIDExOlxuICAgICAgICBjYXNlIDE1OlxuICAgICAgICAgIHJlY3Vyc2l2ZWx5VHJhdmVyc2VQYXNzaXZlTW91bnRFZmZlY3RzKFxuICAgICAgICAgICAgZmluaXNoZWRSb290LFxuICAgICAgICAgICAgZmluaXNoZWRXb3JrLFxuICAgICAgICAgICAgY29tbWl0dGVkTGFuZXMsXG4gICAgICAgICAgICBjb21taXR0ZWRUcmFuc2l0aW9uc1xuICAgICAgICAgICk7XG4gICAgICAgICAgZmxhZ3MgJiAyMDQ4ICYmXG4gICAgICAgICAgICBjb21taXRIb29rUGFzc2l2ZU1vdW50RWZmZWN0cyhmaW5pc2hlZFdvcmssIFBhc3NpdmUgfCBIYXNFZmZlY3QpO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIDE6XG4gICAgICAgICAgcmVjdXJzaXZlbHlUcmF2ZXJzZVBhc3NpdmVNb3VudEVmZmVjdHMoXG4gICAgICAgICAgICBmaW5pc2hlZFJvb3QsXG4gICAgICAgICAgICBmaW5pc2hlZFdvcmssXG4gICAgICAgICAgICBjb21taXR0ZWRMYW5lcyxcbiAgICAgICAgICAgIGNvbW1pdHRlZFRyYW5zaXRpb25zXG4gICAgICAgICAgKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAzOlxuICAgICAgICAgIHZhciBwcmV2RWZmZWN0RHVyYXRpb24gPSBwdXNoTmVzdGVkRWZmZWN0RHVyYXRpb25zKCk7XG4gICAgICAgICAgcmVjdXJzaXZlbHlUcmF2ZXJzZVBhc3NpdmVNb3VudEVmZmVjdHMoXG4gICAgICAgICAgICBmaW5pc2hlZFJvb3QsXG4gICAgICAgICAgICBmaW5pc2hlZFdvcmssXG4gICAgICAgICAgICBjb21taXR0ZWRMYW5lcyxcbiAgICAgICAgICAgIGNvbW1pdHRlZFRyYW5zaXRpb25zXG4gICAgICAgICAgKTtcbiAgICAgICAgICBmbGFncyAmIDIwNDggJiZcbiAgICAgICAgICAgICgoY29tbWl0dGVkTGFuZXMgPSBudWxsKSxcbiAgICAgICAgICAgIG51bGwgIT09IGZpbmlzaGVkV29yay5hbHRlcm5hdGUgJiZcbiAgICAgICAgICAgICAgKGNvbW1pdHRlZExhbmVzID0gZmluaXNoZWRXb3JrLmFsdGVybmF0ZS5tZW1vaXplZFN0YXRlLmNhY2hlKSxcbiAgICAgICAgICAgIChmaW5pc2hlZFdvcmsgPSBmaW5pc2hlZFdvcmsubWVtb2l6ZWRTdGF0ZS5jYWNoZSksXG4gICAgICAgICAgICBmaW5pc2hlZFdvcmsgIT09IGNvbW1pdHRlZExhbmVzICYmXG4gICAgICAgICAgICAgIChyZXRhaW5DYWNoZShmaW5pc2hlZFdvcmspLFxuICAgICAgICAgICAgICBudWxsICE9IGNvbW1pdHRlZExhbmVzICYmIHJlbGVhc2VDYWNoZShjb21taXR0ZWRMYW5lcykpKTtcbiAgICAgICAgICBmaW5pc2hlZFJvb3QucGFzc2l2ZUVmZmVjdER1cmF0aW9uICs9XG4gICAgICAgICAgICBwb3BOZXN0ZWRFZmZlY3REdXJhdGlvbnMocHJldkVmZmVjdER1cmF0aW9uKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAxMjpcbiAgICAgICAgICBpZiAoZmxhZ3MgJiAyMDQ4KSB7XG4gICAgICAgICAgICBmbGFncyA9IHB1c2hOZXN0ZWRFZmZlY3REdXJhdGlvbnMoKTtcbiAgICAgICAgICAgIHJlY3Vyc2l2ZWx5VHJhdmVyc2VQYXNzaXZlTW91bnRFZmZlY3RzKFxuICAgICAgICAgICAgICBmaW5pc2hlZFJvb3QsXG4gICAgICAgICAgICAgIGZpbmlzaGVkV29yayxcbiAgICAgICAgICAgICAgY29tbWl0dGVkTGFuZXMsXG4gICAgICAgICAgICAgIGNvbW1pdHRlZFRyYW5zaXRpb25zXG4gICAgICAgICAgICApO1xuICAgICAgICAgICAgZmluaXNoZWRSb290ID0gZmluaXNoZWRXb3JrLnN0YXRlTm9kZTtcbiAgICAgICAgICAgIGZpbmlzaGVkUm9vdC5wYXNzaXZlRWZmZWN0RHVyYXRpb24gKz1cbiAgICAgICAgICAgICAgYnViYmxlTmVzdGVkRWZmZWN0RHVyYXRpb25zKGZsYWdzKTtcbiAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgIHJ1bldpdGhGaWJlckluREVWKFxuICAgICAgICAgICAgICAgIGZpbmlzaGVkV29yayxcbiAgICAgICAgICAgICAgICBjb21taXRQcm9maWxlclBvc3RDb21taXRJbXBsLFxuICAgICAgICAgICAgICAgIGZpbmlzaGVkV29yayxcbiAgICAgICAgICAgICAgICBmaW5pc2hlZFdvcmsuYWx0ZXJuYXRlLFxuICAgICAgICAgICAgICAgIGNvbW1pdFN0YXJ0VGltZSxcbiAgICAgICAgICAgICAgICBmaW5pc2hlZFJvb3QucGFzc2l2ZUVmZmVjdER1cmF0aW9uXG4gICAgICAgICAgICAgICk7XG4gICAgICAgICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICAgICAgICBjYXB0dXJlQ29tbWl0UGhhc2VFcnJvcihmaW5pc2hlZFdvcmssIGZpbmlzaGVkV29yay5yZXR1cm4sIGVycm9yKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9IGVsc2VcbiAgICAgICAgICAgIHJlY3Vyc2l2ZWx5VHJhdmVyc2VQYXNzaXZlTW91bnRFZmZlY3RzKFxuICAgICAgICAgICAgICBmaW5pc2hlZFJvb3QsXG4gICAgICAgICAgICAgIGZpbmlzaGVkV29yayxcbiAgICAgICAgICAgICAgY29tbWl0dGVkTGFuZXMsXG4gICAgICAgICAgICAgIGNvbW1pdHRlZFRyYW5zaXRpb25zXG4gICAgICAgICAgICApO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIDEzOlxuICAgICAgICAgIHJlY3Vyc2l2ZWx5VHJhdmVyc2VQYXNzaXZlTW91bnRFZmZlY3RzKFxuICAgICAgICAgICAgZmluaXNoZWRSb290LFxuICAgICAgICAgICAgZmluaXNoZWRXb3JrLFxuICAgICAgICAgICAgY29tbWl0dGVkTGFuZXMsXG4gICAgICAgICAgICBjb21taXR0ZWRUcmFuc2l0aW9uc1xuICAgICAgICAgICk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgMjM6XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgMjI6XG4gICAgICAgICAgcHJldkVmZmVjdER1cmF0aW9uID0gZmluaXNoZWRXb3JrLnN0YXRlTm9kZTtcbiAgICAgICAgICB2YXIgX2N1cnJlbnQgPSBmaW5pc2hlZFdvcmsuYWx0ZXJuYXRlO1xuICAgICAgICAgIG51bGwgIT09IGZpbmlzaGVkV29yay5tZW1vaXplZFN0YXRlXG4gICAgICAgICAgICA/IHByZXZFZmZlY3REdXJhdGlvbi5fdmlzaWJpbGl0eSAmIE9mZnNjcmVlblBhc3NpdmVFZmZlY3RzQ29ubmVjdGVkXG4gICAgICAgICAgICAgID8gcmVjdXJzaXZlbHlUcmF2ZXJzZVBhc3NpdmVNb3VudEVmZmVjdHMoXG4gICAgICAgICAgICAgICAgICBmaW5pc2hlZFJvb3QsXG4gICAgICAgICAgICAgICAgICBmaW5pc2hlZFdvcmssXG4gICAgICAgICAgICAgICAgICBjb21taXR0ZWRMYW5lcyxcbiAgICAgICAgICAgICAgICAgIGNvbW1pdHRlZFRyYW5zaXRpb25zXG4gICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICA6IHJlY3Vyc2l2ZWx5VHJhdmVyc2VBdG9taWNQYXNzaXZlRWZmZWN0cyhcbiAgICAgICAgICAgICAgICAgIGZpbmlzaGVkUm9vdCxcbiAgICAgICAgICAgICAgICAgIGZpbmlzaGVkV29ya1xuICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgIDogcHJldkVmZmVjdER1cmF0aW9uLl92aXNpYmlsaXR5ICYgT2Zmc2NyZWVuUGFzc2l2ZUVmZmVjdHNDb25uZWN0ZWRcbiAgICAgICAgICAgICAgPyByZWN1cnNpdmVseVRyYXZlcnNlUGFzc2l2ZU1vdW50RWZmZWN0cyhcbiAgICAgICAgICAgICAgICAgIGZpbmlzaGVkUm9vdCxcbiAgICAgICAgICAgICAgICAgIGZpbmlzaGVkV29yayxcbiAgICAgICAgICAgICAgICAgIGNvbW1pdHRlZExhbmVzLFxuICAgICAgICAgICAgICAgICAgY29tbWl0dGVkVHJhbnNpdGlvbnNcbiAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgIDogKChwcmV2RWZmZWN0RHVyYXRpb24uX3Zpc2liaWxpdHkgfD1cbiAgICAgICAgICAgICAgICAgIE9mZnNjcmVlblBhc3NpdmVFZmZlY3RzQ29ubmVjdGVkKSxcbiAgICAgICAgICAgICAgICByZWN1cnNpdmVseVRyYXZlcnNlUmVjb25uZWN0UGFzc2l2ZUVmZmVjdHMoXG4gICAgICAgICAgICAgICAgICBmaW5pc2hlZFJvb3QsXG4gICAgICAgICAgICAgICAgICBmaW5pc2hlZFdvcmssXG4gICAgICAgICAgICAgICAgICBjb21taXR0ZWRMYW5lcyxcbiAgICAgICAgICAgICAgICAgIGNvbW1pdHRlZFRyYW5zaXRpb25zLFxuICAgICAgICAgICAgICAgICAgMCAhPT0gKGZpbmlzaGVkV29yay5zdWJ0cmVlRmxhZ3MgJiAxMDI1NilcbiAgICAgICAgICAgICAgICApKTtcbiAgICAgICAgICBmbGFncyAmIDIwNDggJiZcbiAgICAgICAgICAgIGNvbW1pdE9mZnNjcmVlblBhc3NpdmVNb3VudEVmZmVjdHMoX2N1cnJlbnQsIGZpbmlzaGVkV29yayk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgMjQ6XG4gICAgICAgICAgcmVjdXJzaXZlbHlUcmF2ZXJzZVBhc3NpdmVNb3VudEVmZmVjdHMoXG4gICAgICAgICAgICBmaW5pc2hlZFJvb3QsXG4gICAgICAgICAgICBmaW5pc2hlZFdvcmssXG4gICAgICAgICAgICBjb21taXR0ZWRMYW5lcyxcbiAgICAgICAgICAgIGNvbW1pdHRlZFRyYW5zaXRpb25zXG4gICAgICAgICAgKTtcbiAgICAgICAgICBmbGFncyAmIDIwNDggJiZcbiAgICAgICAgICAgIGNvbW1pdENhY2hlUGFzc2l2ZU1vdW50RWZmZWN0KGZpbmlzaGVkV29yay5hbHRlcm5hdGUsIGZpbmlzaGVkV29yayk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgcmVjdXJzaXZlbHlUcmF2ZXJzZVBhc3NpdmVNb3VudEVmZmVjdHMoXG4gICAgICAgICAgICBmaW5pc2hlZFJvb3QsXG4gICAgICAgICAgICBmaW5pc2hlZFdvcmssXG4gICAgICAgICAgICBjb21taXR0ZWRMYW5lcyxcbiAgICAgICAgICAgIGNvbW1pdHRlZFRyYW5zaXRpb25zXG4gICAgICAgICAgKTtcbiAgICAgIH1cbiAgICB9XG4gICAgZnVuY3Rpb24gcmVjdXJzaXZlbHlUcmF2ZXJzZVJlY29ubmVjdFBhc3NpdmVFZmZlY3RzKFxuICAgICAgZmluaXNoZWRSb290LFxuICAgICAgcGFyZW50RmliZXIsXG4gICAgICBjb21taXR0ZWRMYW5lcyxcbiAgICAgIGNvbW1pdHRlZFRyYW5zaXRpb25zLFxuICAgICAgaW5jbHVkZVdvcmtJblByb2dyZXNzRWZmZWN0c1xuICAgICkge1xuICAgICAgaW5jbHVkZVdvcmtJblByb2dyZXNzRWZmZWN0cyA9XG4gICAgICAgIGluY2x1ZGVXb3JrSW5Qcm9ncmVzc0VmZmVjdHMgJiZcbiAgICAgICAgMCAhPT0gKHBhcmVudEZpYmVyLnN1YnRyZWVGbGFncyAmIDEwMjU2KTtcbiAgICAgIGZvciAocGFyZW50RmliZXIgPSBwYXJlbnRGaWJlci5jaGlsZDsgbnVsbCAhPT0gcGFyZW50RmliZXI7IClcbiAgICAgICAgcmVjb25uZWN0UGFzc2l2ZUVmZmVjdHMoXG4gICAgICAgICAgZmluaXNoZWRSb290LFxuICAgICAgICAgIHBhcmVudEZpYmVyLFxuICAgICAgICAgIGNvbW1pdHRlZExhbmVzLFxuICAgICAgICAgIGNvbW1pdHRlZFRyYW5zaXRpb25zLFxuICAgICAgICAgIGluY2x1ZGVXb3JrSW5Qcm9ncmVzc0VmZmVjdHNcbiAgICAgICAgKSxcbiAgICAgICAgICAocGFyZW50RmliZXIgPSBwYXJlbnRGaWJlci5zaWJsaW5nKTtcbiAgICB9XG4gICAgZnVuY3Rpb24gcmVjb25uZWN0UGFzc2l2ZUVmZmVjdHMoXG4gICAgICBmaW5pc2hlZFJvb3QsXG4gICAgICBmaW5pc2hlZFdvcmssXG4gICAgICBjb21taXR0ZWRMYW5lcyxcbiAgICAgIGNvbW1pdHRlZFRyYW5zaXRpb25zLFxuICAgICAgaW5jbHVkZVdvcmtJblByb2dyZXNzRWZmZWN0c1xuICAgICkge1xuICAgICAgdmFyIGZsYWdzID0gZmluaXNoZWRXb3JrLmZsYWdzO1xuICAgICAgc3dpdGNoIChmaW5pc2hlZFdvcmsudGFnKSB7XG4gICAgICAgIGNhc2UgMDpcbiAgICAgICAgY2FzZSAxMTpcbiAgICAgICAgY2FzZSAxNTpcbiAgICAgICAgICByZWN1cnNpdmVseVRyYXZlcnNlUmVjb25uZWN0UGFzc2l2ZUVmZmVjdHMoXG4gICAgICAgICAgICBmaW5pc2hlZFJvb3QsXG4gICAgICAgICAgICBmaW5pc2hlZFdvcmssXG4gICAgICAgICAgICBjb21taXR0ZWRMYW5lcyxcbiAgICAgICAgICAgIGNvbW1pdHRlZFRyYW5zaXRpb25zLFxuICAgICAgICAgICAgaW5jbHVkZVdvcmtJblByb2dyZXNzRWZmZWN0c1xuICAgICAgICAgICk7XG4gICAgICAgICAgY29tbWl0SG9va1Bhc3NpdmVNb3VudEVmZmVjdHMoZmluaXNoZWRXb3JrLCBQYXNzaXZlKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAyMzpcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAyMjpcbiAgICAgICAgICB2YXIgX2luc3RhbmNlMiA9IGZpbmlzaGVkV29yay5zdGF0ZU5vZGU7XG4gICAgICAgICAgbnVsbCAhPT0gZmluaXNoZWRXb3JrLm1lbW9pemVkU3RhdGVcbiAgICAgICAgICAgID8gX2luc3RhbmNlMi5fdmlzaWJpbGl0eSAmIE9mZnNjcmVlblBhc3NpdmVFZmZlY3RzQ29ubmVjdGVkXG4gICAgICAgICAgICAgID8gcmVjdXJzaXZlbHlUcmF2ZXJzZVJlY29ubmVjdFBhc3NpdmVFZmZlY3RzKFxuICAgICAgICAgICAgICAgICAgZmluaXNoZWRSb290LFxuICAgICAgICAgICAgICAgICAgZmluaXNoZWRXb3JrLFxuICAgICAgICAgICAgICAgICAgY29tbWl0dGVkTGFuZXMsXG4gICAgICAgICAgICAgICAgICBjb21taXR0ZWRUcmFuc2l0aW9ucyxcbiAgICAgICAgICAgICAgICAgIGluY2x1ZGVXb3JrSW5Qcm9ncmVzc0VmZmVjdHNcbiAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgIDogcmVjdXJzaXZlbHlUcmF2ZXJzZUF0b21pY1Bhc3NpdmVFZmZlY3RzKFxuICAgICAgICAgICAgICAgICAgZmluaXNoZWRSb290LFxuICAgICAgICAgICAgICAgICAgZmluaXNoZWRXb3JrXG4gICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgOiAoKF9pbnN0YW5jZTIuX3Zpc2liaWxpdHkgfD0gT2Zmc2NyZWVuUGFzc2l2ZUVmZmVjdHNDb25uZWN0ZWQpLFxuICAgICAgICAgICAgICByZWN1cnNpdmVseVRyYXZlcnNlUmVjb25uZWN0UGFzc2l2ZUVmZmVjdHMoXG4gICAgICAgICAgICAgICAgZmluaXNoZWRSb290LFxuICAgICAgICAgICAgICAgIGZpbmlzaGVkV29yayxcbiAgICAgICAgICAgICAgICBjb21taXR0ZWRMYW5lcyxcbiAgICAgICAgICAgICAgICBjb21taXR0ZWRUcmFuc2l0aW9ucyxcbiAgICAgICAgICAgICAgICBpbmNsdWRlV29ya0luUHJvZ3Jlc3NFZmZlY3RzXG4gICAgICAgICAgICAgICkpO1xuICAgICAgICAgIGluY2x1ZGVXb3JrSW5Qcm9ncmVzc0VmZmVjdHMgJiZcbiAgICAgICAgICAgIGZsYWdzICYgMjA0OCAmJlxuICAgICAgICAgICAgY29tbWl0T2Zmc2NyZWVuUGFzc2l2ZU1vdW50RWZmZWN0cyhcbiAgICAgICAgICAgICAgZmluaXNoZWRXb3JrLmFsdGVybmF0ZSxcbiAgICAgICAgICAgICAgZmluaXNoZWRXb3JrXG4gICAgICAgICAgICApO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIDI0OlxuICAgICAgICAgIHJlY3Vyc2l2ZWx5VHJhdmVyc2VSZWNvbm5lY3RQYXNzaXZlRWZmZWN0cyhcbiAgICAgICAgICAgIGZpbmlzaGVkUm9vdCxcbiAgICAgICAgICAgIGZpbmlzaGVkV29yayxcbiAgICAgICAgICAgIGNvbW1pdHRlZExhbmVzLFxuICAgICAgICAgICAgY29tbWl0dGVkVHJhbnNpdGlvbnMsXG4gICAgICAgICAgICBpbmNsdWRlV29ya0luUHJvZ3Jlc3NFZmZlY3RzXG4gICAgICAgICAgKTtcbiAgICAgICAgICBpbmNsdWRlV29ya0luUHJvZ3Jlc3NFZmZlY3RzICYmXG4gICAgICAgICAgICBmbGFncyAmIDIwNDggJiZcbiAgICAgICAgICAgIGNvbW1pdENhY2hlUGFzc2l2ZU1vdW50RWZmZWN0KGZpbmlzaGVkV29yay5hbHRlcm5hdGUsIGZpbmlzaGVkV29yayk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgcmVjdXJzaXZlbHlUcmF2ZXJzZVJlY29ubmVjdFBhc3NpdmVFZmZlY3RzKFxuICAgICAgICAgICAgZmluaXNoZWRSb290LFxuICAgICAgICAgICAgZmluaXNoZWRXb3JrLFxuICAgICAgICAgICAgY29tbWl0dGVkTGFuZXMsXG4gICAgICAgICAgICBjb21taXR0ZWRUcmFuc2l0aW9ucyxcbiAgICAgICAgICAgIGluY2x1ZGVXb3JrSW5Qcm9ncmVzc0VmZmVjdHNcbiAgICAgICAgICApO1xuICAgICAgfVxuICAgIH1cbiAgICBmdW5jdGlvbiByZWN1cnNpdmVseVRyYXZlcnNlQXRvbWljUGFzc2l2ZUVmZmVjdHMoXG4gICAgICBmaW5pc2hlZFJvb3QkanNjb21wJDAsXG4gICAgICBwYXJlbnRGaWJlclxuICAgICkge1xuICAgICAgaWYgKHBhcmVudEZpYmVyLnN1YnRyZWVGbGFncyAmIDEwMjU2KVxuICAgICAgICBmb3IgKHBhcmVudEZpYmVyID0gcGFyZW50RmliZXIuY2hpbGQ7IG51bGwgIT09IHBhcmVudEZpYmVyOyApIHtcbiAgICAgICAgICB2YXIgZmluaXNoZWRSb290ID0gZmluaXNoZWRSb290JGpzY29tcCQwLFxuICAgICAgICAgICAgZmluaXNoZWRXb3JrID0gcGFyZW50RmliZXIsXG4gICAgICAgICAgICBmbGFncyA9IGZpbmlzaGVkV29yay5mbGFncztcbiAgICAgICAgICBzd2l0Y2ggKGZpbmlzaGVkV29yay50YWcpIHtcbiAgICAgICAgICAgIGNhc2UgMjI6XG4gICAgICAgICAgICAgIHJlY3Vyc2l2ZWx5VHJhdmVyc2VBdG9taWNQYXNzaXZlRWZmZWN0cyhcbiAgICAgICAgICAgICAgICBmaW5pc2hlZFJvb3QsXG4gICAgICAgICAgICAgICAgZmluaXNoZWRXb3JrXG4gICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgIGZsYWdzICYgMjA0OCAmJlxuICAgICAgICAgICAgICAgIGNvbW1pdE9mZnNjcmVlblBhc3NpdmVNb3VudEVmZmVjdHMoXG4gICAgICAgICAgICAgICAgICBmaW5pc2hlZFdvcmsuYWx0ZXJuYXRlLFxuICAgICAgICAgICAgICAgICAgZmluaXNoZWRXb3JrXG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlIDI0OlxuICAgICAgICAgICAgICByZWN1cnNpdmVseVRyYXZlcnNlQXRvbWljUGFzc2l2ZUVmZmVjdHMoXG4gICAgICAgICAgICAgICAgZmluaXNoZWRSb290LFxuICAgICAgICAgICAgICAgIGZpbmlzaGVkV29ya1xuICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICBmbGFncyAmIDIwNDggJiZcbiAgICAgICAgICAgICAgICBjb21taXRDYWNoZVBhc3NpdmVNb3VudEVmZmVjdChcbiAgICAgICAgICAgICAgICAgIGZpbmlzaGVkV29yay5hbHRlcm5hdGUsXG4gICAgICAgICAgICAgICAgICBmaW5pc2hlZFdvcmtcbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgIHJlY3Vyc2l2ZWx5VHJhdmVyc2VBdG9taWNQYXNzaXZlRWZmZWN0cyhcbiAgICAgICAgICAgICAgICBmaW5pc2hlZFJvb3QsXG4gICAgICAgICAgICAgICAgZmluaXNoZWRXb3JrXG4gICAgICAgICAgICAgICk7XG4gICAgICAgICAgfVxuICAgICAgICAgIHBhcmVudEZpYmVyID0gcGFyZW50RmliZXIuc2libGluZztcbiAgICAgICAgfVxuICAgIH1cbiAgICBmdW5jdGlvbiByZWN1cnNpdmVseUFjY3VtdWxhdGVTdXNwZW5zZXlDb21taXQocGFyZW50RmliZXIpIHtcbiAgICAgIGlmIChwYXJlbnRGaWJlci5zdWJ0cmVlRmxhZ3MgJiBzdXNwZW5zZXlDb21taXRGbGFnKVxuICAgICAgICBmb3IgKHBhcmVudEZpYmVyID0gcGFyZW50RmliZXIuY2hpbGQ7IG51bGwgIT09IHBhcmVudEZpYmVyOyApXG4gICAgICAgICAgYWNjdW11bGF0ZVN1c3BlbnNleUNvbW1pdE9uRmliZXIocGFyZW50RmliZXIpLFxuICAgICAgICAgICAgKHBhcmVudEZpYmVyID0gcGFyZW50RmliZXIuc2libGluZyk7XG4gICAgfVxuICAgIGZ1bmN0aW9uIGFjY3VtdWxhdGVTdXNwZW5zZXlDb21taXRPbkZpYmVyKGZpYmVyKSB7XG4gICAgICBzd2l0Y2ggKGZpYmVyLnRhZykge1xuICAgICAgICBjYXNlIDI2OlxuICAgICAgICAgIHJlY3Vyc2l2ZWx5QWNjdW11bGF0ZVN1c3BlbnNleUNvbW1pdChmaWJlcik7XG4gICAgICAgICAgZmliZXIuZmxhZ3MgJiBzdXNwZW5zZXlDb21taXRGbGFnICYmXG4gICAgICAgICAgICBudWxsICE9PSBmaWJlci5tZW1vaXplZFN0YXRlICYmXG4gICAgICAgICAgICBzdXNwZW5kUmVzb3VyY2UoXG4gICAgICAgICAgICAgIGN1cnJlbnRIb2lzdGFibGVSb290LFxuICAgICAgICAgICAgICBmaWJlci5tZW1vaXplZFN0YXRlLFxuICAgICAgICAgICAgICBmaWJlci5tZW1vaXplZFByb3BzXG4gICAgICAgICAgICApO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIDU6XG4gICAgICAgICAgcmVjdXJzaXZlbHlBY2N1bXVsYXRlU3VzcGVuc2V5Q29tbWl0KGZpYmVyKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAzOlxuICAgICAgICBjYXNlIDQ6XG4gICAgICAgICAgdmFyIHByZXZpb3VzSG9pc3RhYmxlUm9vdCA9IGN1cnJlbnRIb2lzdGFibGVSb290O1xuICAgICAgICAgIGN1cnJlbnRIb2lzdGFibGVSb290ID0gZ2V0SG9pc3RhYmxlUm9vdChcbiAgICAgICAgICAgIGZpYmVyLnN0YXRlTm9kZS5jb250YWluZXJJbmZvXG4gICAgICAgICAgKTtcbiAgICAgICAgICByZWN1cnNpdmVseUFjY3VtdWxhdGVTdXNwZW5zZXlDb21taXQoZmliZXIpO1xuICAgICAgICAgIGN1cnJlbnRIb2lzdGFibGVSb290ID0gcHJldmlvdXNIb2lzdGFibGVSb290O1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIDIyOlxuICAgICAgICAgIG51bGwgPT09IGZpYmVyLm1lbW9pemVkU3RhdGUgJiZcbiAgICAgICAgICAgICgocHJldmlvdXNIb2lzdGFibGVSb290ID0gZmliZXIuYWx0ZXJuYXRlKSxcbiAgICAgICAgICAgIG51bGwgIT09IHByZXZpb3VzSG9pc3RhYmxlUm9vdCAmJlxuICAgICAgICAgICAgbnVsbCAhPT0gcHJldmlvdXNIb2lzdGFibGVSb290Lm1lbW9pemVkU3RhdGVcbiAgICAgICAgICAgICAgPyAoKHByZXZpb3VzSG9pc3RhYmxlUm9vdCA9IHN1c3BlbnNleUNvbW1pdEZsYWcpLFxuICAgICAgICAgICAgICAgIChzdXNwZW5zZXlDb21taXRGbGFnID0gMTY3NzcyMTYpLFxuICAgICAgICAgICAgICAgIHJlY3Vyc2l2ZWx5QWNjdW11bGF0ZVN1c3BlbnNleUNvbW1pdChmaWJlciksXG4gICAgICAgICAgICAgICAgKHN1c3BlbnNleUNvbW1pdEZsYWcgPSBwcmV2aW91c0hvaXN0YWJsZVJvb3QpKVxuICAgICAgICAgICAgICA6IHJlY3Vyc2l2ZWx5QWNjdW11bGF0ZVN1c3BlbnNleUNvbW1pdChmaWJlcikpO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgIHJlY3Vyc2l2ZWx5QWNjdW11bGF0ZVN1c3BlbnNleUNvbW1pdChmaWJlcik7XG4gICAgICB9XG4gICAgfVxuICAgIGZ1bmN0aW9uIGRldGFjaEFsdGVybmF0ZVNpYmxpbmdzKHBhcmVudEZpYmVyKSB7XG4gICAgICB2YXIgcHJldmlvdXNGaWJlciA9IHBhcmVudEZpYmVyLmFsdGVybmF0ZTtcbiAgICAgIGlmIChcbiAgICAgICAgbnVsbCAhPT0gcHJldmlvdXNGaWJlciAmJlxuICAgICAgICAoKHBhcmVudEZpYmVyID0gcHJldmlvdXNGaWJlci5jaGlsZCksIG51bGwgIT09IHBhcmVudEZpYmVyKVxuICAgICAgKSB7XG4gICAgICAgIHByZXZpb3VzRmliZXIuY2hpbGQgPSBudWxsO1xuICAgICAgICBkb1xuICAgICAgICAgIChwcmV2aW91c0ZpYmVyID0gcGFyZW50RmliZXIuc2libGluZyksXG4gICAgICAgICAgICAocGFyZW50RmliZXIuc2libGluZyA9IG51bGwpLFxuICAgICAgICAgICAgKHBhcmVudEZpYmVyID0gcHJldmlvdXNGaWJlcik7XG4gICAgICAgIHdoaWxlIChudWxsICE9PSBwYXJlbnRGaWJlcik7XG4gICAgICB9XG4gICAgfVxuICAgIGZ1bmN0aW9uIHJlY3Vyc2l2ZWx5VHJhdmVyc2VQYXNzaXZlVW5tb3VudEVmZmVjdHMocGFyZW50RmliZXIpIHtcbiAgICAgIHZhciBkZWxldGlvbnMgPSBwYXJlbnRGaWJlci5kZWxldGlvbnM7XG4gICAgICBpZiAoMCAhPT0gKHBhcmVudEZpYmVyLmZsYWdzICYgMTYpKSB7XG4gICAgICAgIGlmIChudWxsICE9PSBkZWxldGlvbnMpXG4gICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBkZWxldGlvbnMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgIHZhciBjaGlsZFRvRGVsZXRlID0gZGVsZXRpb25zW2ldO1xuICAgICAgICAgICAgbmV4dEVmZmVjdCA9IGNoaWxkVG9EZWxldGU7XG4gICAgICAgICAgICBjb21taXRQYXNzaXZlVW5tb3VudEVmZmVjdHNJbnNpZGVPZkRlbGV0ZWRUcmVlX2JlZ2luKFxuICAgICAgICAgICAgICBjaGlsZFRvRGVsZXRlLFxuICAgICAgICAgICAgICBwYXJlbnRGaWJlclxuICAgICAgICAgICAgKTtcbiAgICAgICAgICB9XG4gICAgICAgIGRldGFjaEFsdGVybmF0ZVNpYmxpbmdzKHBhcmVudEZpYmVyKTtcbiAgICAgIH1cbiAgICAgIGlmIChwYXJlbnRGaWJlci5zdWJ0cmVlRmxhZ3MgJiAxMDI1NilcbiAgICAgICAgZm9yIChwYXJlbnRGaWJlciA9IHBhcmVudEZpYmVyLmNoaWxkOyBudWxsICE9PSBwYXJlbnRGaWJlcjsgKVxuICAgICAgICAgIGNvbW1pdFBhc3NpdmVVbm1vdW50T25GaWJlcihwYXJlbnRGaWJlciksXG4gICAgICAgICAgICAocGFyZW50RmliZXIgPSBwYXJlbnRGaWJlci5zaWJsaW5nKTtcbiAgICB9XG4gICAgZnVuY3Rpb24gY29tbWl0UGFzc2l2ZVVubW91bnRPbkZpYmVyKGZpbmlzaGVkV29yaykge1xuICAgICAgc3dpdGNoIChmaW5pc2hlZFdvcmsudGFnKSB7XG4gICAgICAgIGNhc2UgMDpcbiAgICAgICAgY2FzZSAxMTpcbiAgICAgICAgY2FzZSAxNTpcbiAgICAgICAgICByZWN1cnNpdmVseVRyYXZlcnNlUGFzc2l2ZVVubW91bnRFZmZlY3RzKGZpbmlzaGVkV29yayk7XG4gICAgICAgICAgZmluaXNoZWRXb3JrLmZsYWdzICYgMjA0OCAmJlxuICAgICAgICAgICAgY29tbWl0SG9va1Bhc3NpdmVVbm1vdW50RWZmZWN0cyhcbiAgICAgICAgICAgICAgZmluaXNoZWRXb3JrLFxuICAgICAgICAgICAgICBmaW5pc2hlZFdvcmsucmV0dXJuLFxuICAgICAgICAgICAgICBQYXNzaXZlIHwgSGFzRWZmZWN0XG4gICAgICAgICAgICApO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIDM6XG4gICAgICAgICAgdmFyIHByZXZFZmZlY3REdXJhdGlvbiA9IHB1c2hOZXN0ZWRFZmZlY3REdXJhdGlvbnMoKTtcbiAgICAgICAgICByZWN1cnNpdmVseVRyYXZlcnNlUGFzc2l2ZVVubW91bnRFZmZlY3RzKGZpbmlzaGVkV29yayk7XG4gICAgICAgICAgZmluaXNoZWRXb3JrLnN0YXRlTm9kZS5wYXNzaXZlRWZmZWN0RHVyYXRpb24gKz1cbiAgICAgICAgICAgIHBvcE5lc3RlZEVmZmVjdER1cmF0aW9ucyhwcmV2RWZmZWN0RHVyYXRpb24pO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIDEyOlxuICAgICAgICAgIHByZXZFZmZlY3REdXJhdGlvbiA9IHB1c2hOZXN0ZWRFZmZlY3REdXJhdGlvbnMoKTtcbiAgICAgICAgICByZWN1cnNpdmVseVRyYXZlcnNlUGFzc2l2ZVVubW91bnRFZmZlY3RzKGZpbmlzaGVkV29yayk7XG4gICAgICAgICAgZmluaXNoZWRXb3JrLnN0YXRlTm9kZS5wYXNzaXZlRWZmZWN0RHVyYXRpb24gKz1cbiAgICAgICAgICAgIGJ1YmJsZU5lc3RlZEVmZmVjdER1cmF0aW9ucyhwcmV2RWZmZWN0RHVyYXRpb24pO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIDIyOlxuICAgICAgICAgIHByZXZFZmZlY3REdXJhdGlvbiA9IGZpbmlzaGVkV29yay5zdGF0ZU5vZGU7XG4gICAgICAgICAgbnVsbCAhPT0gZmluaXNoZWRXb3JrLm1lbW9pemVkU3RhdGUgJiZcbiAgICAgICAgICBwcmV2RWZmZWN0RHVyYXRpb24uX3Zpc2liaWxpdHkgJiBPZmZzY3JlZW5QYXNzaXZlRWZmZWN0c0Nvbm5lY3RlZCAmJlxuICAgICAgICAgIChudWxsID09PSBmaW5pc2hlZFdvcmsucmV0dXJuIHx8IDEzICE9PSBmaW5pc2hlZFdvcmsucmV0dXJuLnRhZylcbiAgICAgICAgICAgID8gKChwcmV2RWZmZWN0RHVyYXRpb24uX3Zpc2liaWxpdHkgJj1cbiAgICAgICAgICAgICAgICB+T2Zmc2NyZWVuUGFzc2l2ZUVmZmVjdHNDb25uZWN0ZWQpLFxuICAgICAgICAgICAgICByZWN1cnNpdmVseVRyYXZlcnNlRGlzY29ubmVjdFBhc3NpdmVFZmZlY3RzKGZpbmlzaGVkV29yaykpXG4gICAgICAgICAgICA6IHJlY3Vyc2l2ZWx5VHJhdmVyc2VQYXNzaXZlVW5tb3VudEVmZmVjdHMoZmluaXNoZWRXb3JrKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICByZWN1cnNpdmVseVRyYXZlcnNlUGFzc2l2ZVVubW91bnRFZmZlY3RzKGZpbmlzaGVkV29yayk7XG4gICAgICB9XG4gICAgfVxuICAgIGZ1bmN0aW9uIHJlY3Vyc2l2ZWx5VHJhdmVyc2VEaXNjb25uZWN0UGFzc2l2ZUVmZmVjdHMocGFyZW50RmliZXIpIHtcbiAgICAgIHZhciBkZWxldGlvbnMgPSBwYXJlbnRGaWJlci5kZWxldGlvbnM7XG4gICAgICBpZiAoMCAhPT0gKHBhcmVudEZpYmVyLmZsYWdzICYgMTYpKSB7XG4gICAgICAgIGlmIChudWxsICE9PSBkZWxldGlvbnMpXG4gICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBkZWxldGlvbnMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgIHZhciBjaGlsZFRvRGVsZXRlID0gZGVsZXRpb25zW2ldO1xuICAgICAgICAgICAgbmV4dEVmZmVjdCA9IGNoaWxkVG9EZWxldGU7XG4gICAgICAgICAgICBjb21taXRQYXNzaXZlVW5tb3VudEVmZmVjdHNJbnNpZGVPZkRlbGV0ZWRUcmVlX2JlZ2luKFxuICAgICAgICAgICAgICBjaGlsZFRvRGVsZXRlLFxuICAgICAgICAgICAgICBwYXJlbnRGaWJlclxuICAgICAgICAgICAgKTtcbiAgICAgICAgICB9XG4gICAgICAgIGRldGFjaEFsdGVybmF0ZVNpYmxpbmdzKHBhcmVudEZpYmVyKTtcbiAgICAgIH1cbiAgICAgIGZvciAocGFyZW50RmliZXIgPSBwYXJlbnRGaWJlci5jaGlsZDsgbnVsbCAhPT0gcGFyZW50RmliZXI7IClcbiAgICAgICAgZGlzY29ubmVjdFBhc3NpdmVFZmZlY3QocGFyZW50RmliZXIpLFxuICAgICAgICAgIChwYXJlbnRGaWJlciA9IHBhcmVudEZpYmVyLnNpYmxpbmcpO1xuICAgIH1cbiAgICBmdW5jdGlvbiBkaXNjb25uZWN0UGFzc2l2ZUVmZmVjdChmaW5pc2hlZFdvcmspIHtcbiAgICAgIHN3aXRjaCAoZmluaXNoZWRXb3JrLnRhZykge1xuICAgICAgICBjYXNlIDA6XG4gICAgICAgIGNhc2UgMTE6XG4gICAgICAgIGNhc2UgMTU6XG4gICAgICAgICAgY29tbWl0SG9va1Bhc3NpdmVVbm1vdW50RWZmZWN0cyhcbiAgICAgICAgICAgIGZpbmlzaGVkV29yayxcbiAgICAgICAgICAgIGZpbmlzaGVkV29yay5yZXR1cm4sXG4gICAgICAgICAgICBQYXNzaXZlXG4gICAgICAgICAgKTtcbiAgICAgICAgICByZWN1cnNpdmVseVRyYXZlcnNlRGlzY29ubmVjdFBhc3NpdmVFZmZlY3RzKGZpbmlzaGVkV29yayk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgMjI6XG4gICAgICAgICAgdmFyIGluc3RhbmNlID0gZmluaXNoZWRXb3JrLnN0YXRlTm9kZTtcbiAgICAgICAgICBpbnN0YW5jZS5fdmlzaWJpbGl0eSAmIE9mZnNjcmVlblBhc3NpdmVFZmZlY3RzQ29ubmVjdGVkICYmXG4gICAgICAgICAgICAoKGluc3RhbmNlLl92aXNpYmlsaXR5ICY9IH5PZmZzY3JlZW5QYXNzaXZlRWZmZWN0c0Nvbm5lY3RlZCksXG4gICAgICAgICAgICByZWN1cnNpdmVseVRyYXZlcnNlRGlzY29ubmVjdFBhc3NpdmVFZmZlY3RzKGZpbmlzaGVkV29yaykpO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgIHJlY3Vyc2l2ZWx5VHJhdmVyc2VEaXNjb25uZWN0UGFzc2l2ZUVmZmVjdHMoZmluaXNoZWRXb3JrKTtcbiAgICAgIH1cbiAgICB9XG4gICAgZnVuY3Rpb24gY29tbWl0UGFzc2l2ZVVubW91bnRFZmZlY3RzSW5zaWRlT2ZEZWxldGVkVHJlZV9iZWdpbihcbiAgICAgIGRlbGV0ZWRTdWJ0cmVlUm9vdCxcbiAgICAgIG5lYXJlc3RNb3VudGVkQW5jZXN0b3JcbiAgICApIHtcbiAgICAgIGZvciAoOyBudWxsICE9PSBuZXh0RWZmZWN0OyApIHtcbiAgICAgICAgdmFyIGZpYmVyID0gbmV4dEVmZmVjdCxcbiAgICAgICAgICBjdXJyZW50ID0gZmliZXI7XG4gICAgICAgIHN3aXRjaCAoY3VycmVudC50YWcpIHtcbiAgICAgICAgICBjYXNlIDA6XG4gICAgICAgICAgY2FzZSAxMTpcbiAgICAgICAgICBjYXNlIDE1OlxuICAgICAgICAgICAgY29tbWl0SG9va1Bhc3NpdmVVbm1vdW50RWZmZWN0cyhcbiAgICAgICAgICAgICAgY3VycmVudCxcbiAgICAgICAgICAgICAgbmVhcmVzdE1vdW50ZWRBbmNlc3RvcixcbiAgICAgICAgICAgICAgUGFzc2l2ZVxuICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIGNhc2UgMjM6XG4gICAgICAgICAgY2FzZSAyMjpcbiAgICAgICAgICAgIG51bGwgIT09IGN1cnJlbnQubWVtb2l6ZWRTdGF0ZSAmJlxuICAgICAgICAgICAgICBudWxsICE9PSBjdXJyZW50Lm1lbW9pemVkU3RhdGUuY2FjaGVQb29sICYmXG4gICAgICAgICAgICAgICgoY3VycmVudCA9IGN1cnJlbnQubWVtb2l6ZWRTdGF0ZS5jYWNoZVBvb2wucG9vbCksXG4gICAgICAgICAgICAgIG51bGwgIT0gY3VycmVudCAmJiByZXRhaW5DYWNoZShjdXJyZW50KSk7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICBjYXNlIDI0OlxuICAgICAgICAgICAgcmVsZWFzZUNhY2hlKGN1cnJlbnQubWVtb2l6ZWRTdGF0ZS5jYWNoZSk7XG4gICAgICAgIH1cbiAgICAgICAgY3VycmVudCA9IGZpYmVyLmNoaWxkO1xuICAgICAgICBpZiAobnVsbCAhPT0gY3VycmVudCkgKGN1cnJlbnQucmV0dXJuID0gZmliZXIpLCAobmV4dEVmZmVjdCA9IGN1cnJlbnQpO1xuICAgICAgICBlbHNlXG4gICAgICAgICAgYTogZm9yIChmaWJlciA9IGRlbGV0ZWRTdWJ0cmVlUm9vdDsgbnVsbCAhPT0gbmV4dEVmZmVjdDsgKSB7XG4gICAgICAgICAgICBjdXJyZW50ID0gbmV4dEVmZmVjdDtcbiAgICAgICAgICAgIHZhciBzaWJsaW5nID0gY3VycmVudC5zaWJsaW5nLFxuICAgICAgICAgICAgICByZXR1cm5GaWJlciA9IGN1cnJlbnQucmV0dXJuO1xuICAgICAgICAgICAgZGV0YWNoRmliZXJBZnRlckVmZmVjdHMoY3VycmVudCk7XG4gICAgICAgICAgICBpZiAoY3VycmVudCA9PT0gZmliZXIpIHtcbiAgICAgICAgICAgICAgbmV4dEVmZmVjdCA9IG51bGw7XG4gICAgICAgICAgICAgIGJyZWFrIGE7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAobnVsbCAhPT0gc2libGluZykge1xuICAgICAgICAgICAgICBzaWJsaW5nLnJldHVybiA9IHJldHVybkZpYmVyO1xuICAgICAgICAgICAgICBuZXh0RWZmZWN0ID0gc2libGluZztcbiAgICAgICAgICAgICAgYnJlYWsgYTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIG5leHRFZmZlY3QgPSByZXR1cm5GaWJlcjtcbiAgICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgIGZ1bmN0aW9uIG9uQ29tbWl0Um9vdCgpIHtcbiAgICAgIGNvbW1pdEhvb2tzLmZvckVhY2goZnVuY3Rpb24gKGNvbW1pdEhvb2spIHtcbiAgICAgICAgcmV0dXJuIGNvbW1pdEhvb2soKTtcbiAgICAgIH0pO1xuICAgIH1cbiAgICBmdW5jdGlvbiBpc0NvbmN1cnJlbnRBY3RFbnZpcm9ubWVudCgpIHtcbiAgICAgIHZhciBpc1JlYWN0QWN0RW52aXJvbm1lbnRHbG9iYWwgPVxuICAgICAgICBcInVuZGVmaW5lZFwiICE9PSB0eXBlb2YgSVNfUkVBQ1RfQUNUX0VOVklST05NRU5UXG4gICAgICAgICAgPyBJU19SRUFDVF9BQ1RfRU5WSVJPTk1FTlRcbiAgICAgICAgICA6IHZvaWQgMDtcbiAgICAgIGlzUmVhY3RBY3RFbnZpcm9ubWVudEdsb2JhbCB8fFxuICAgICAgICBudWxsID09PSBSZWFjdFNoYXJlZEludGVybmFscy5hY3RRdWV1ZSB8fFxuICAgICAgICBjb25zb2xlLmVycm9yKFxuICAgICAgICAgIFwiVGhlIGN1cnJlbnQgdGVzdGluZyBlbnZpcm9ubWVudCBpcyBub3QgY29uZmlndXJlZCB0byBzdXBwb3J0IGFjdCguLi4pXCJcbiAgICAgICAgKTtcbiAgICAgIHJldHVybiBpc1JlYWN0QWN0RW52aXJvbm1lbnRHbG9iYWw7XG4gICAgfVxuICAgIGZ1bmN0aW9uIHJlcXVlc3RVcGRhdGVMYW5lKGZpYmVyKSB7XG4gICAgICBpZiAoXG4gICAgICAgIChleGVjdXRpb25Db250ZXh0ICYgUmVuZGVyQ29udGV4dCkgIT09IE5vQ29udGV4dCAmJlxuICAgICAgICAwICE9PSB3b3JrSW5Qcm9ncmVzc1Jvb3RSZW5kZXJMYW5lc1xuICAgICAgKVxuICAgICAgICByZXR1cm4gd29ya0luUHJvZ3Jlc3NSb290UmVuZGVyTGFuZXMgJiAtd29ya0luUHJvZ3Jlc3NSb290UmVuZGVyTGFuZXM7XG4gICAgICB2YXIgdHJhbnNpdGlvbiA9IFJlYWN0U2hhcmVkSW50ZXJuYWxzLlQ7XG4gICAgICByZXR1cm4gbnVsbCAhPT0gdHJhbnNpdGlvblxuICAgICAgICA/ICh0cmFuc2l0aW9uLl91cGRhdGVkRmliZXJzIHx8ICh0cmFuc2l0aW9uLl91cGRhdGVkRmliZXJzID0gbmV3IFNldCgpKSxcbiAgICAgICAgICB0cmFuc2l0aW9uLl91cGRhdGVkRmliZXJzLmFkZChmaWJlciksXG4gICAgICAgICAgKGZpYmVyID0gY3VycmVudEVudGFuZ2xlZExhbmUpLFxuICAgICAgICAgIDAgIT09IGZpYmVyID8gZmliZXIgOiByZXF1ZXN0VHJhbnNpdGlvbkxhbmUoKSlcbiAgICAgICAgOiByZXNvbHZlVXBkYXRlUHJpb3JpdHkoKTtcbiAgICB9XG4gICAgZnVuY3Rpb24gcmVxdWVzdERlZmVycmVkTGFuZSgpIHtcbiAgICAgIDAgPT09IHdvcmtJblByb2dyZXNzRGVmZXJyZWRMYW5lICYmXG4gICAgICAgICh3b3JrSW5Qcm9ncmVzc0RlZmVycmVkTGFuZSA9XG4gICAgICAgICAgMCA9PT0gKHdvcmtJblByb2dyZXNzUm9vdFJlbmRlckxhbmVzICYgNTM2ODcwOTEyKSB8fCBpc0h5ZHJhdGluZ1xuICAgICAgICAgICAgPyBjbGFpbU5leHRUcmFuc2l0aW9uTGFuZSgpXG4gICAgICAgICAgICA6IDUzNjg3MDkxMik7XG4gICAgICB2YXIgc3VzcGVuc2VIYW5kbGVyID0gc3VzcGVuc2VIYW5kbGVyU3RhY2tDdXJzb3IuY3VycmVudDtcbiAgICAgIG51bGwgIT09IHN1c3BlbnNlSGFuZGxlciAmJiAoc3VzcGVuc2VIYW5kbGVyLmZsYWdzIHw9IDMyKTtcbiAgICAgIHJldHVybiB3b3JrSW5Qcm9ncmVzc0RlZmVycmVkTGFuZTtcbiAgICB9XG4gICAgZnVuY3Rpb24gc2NoZWR1bGVVcGRhdGVPbkZpYmVyKHJvb3QsIGZpYmVyLCBsYW5lKSB7XG4gICAgICBpc1J1bm5pbmdJbnNlcnRpb25FZmZlY3QgJiZcbiAgICAgICAgY29uc29sZS5lcnJvcihcInVzZUluc2VydGlvbkVmZmVjdCBtdXN0IG5vdCBzY2hlZHVsZSB1cGRhdGVzLlwiKTtcbiAgICAgIGlzRmx1c2hpbmdQYXNzaXZlRWZmZWN0cyAmJiAoZGlkU2NoZWR1bGVVcGRhdGVEdXJpbmdQYXNzaXZlRWZmZWN0cyA9ICEwKTtcbiAgICAgIGlmIChcbiAgICAgICAgKHJvb3QgPT09IHdvcmtJblByb2dyZXNzUm9vdCAmJlxuICAgICAgICAgICh3b3JrSW5Qcm9ncmVzc1N1c3BlbmRlZFJlYXNvbiA9PT0gU3VzcGVuZGVkT25EYXRhIHx8XG4gICAgICAgICAgICB3b3JrSW5Qcm9ncmVzc1N1c3BlbmRlZFJlYXNvbiA9PT0gU3VzcGVuZGVkT25BY3Rpb24pKSB8fFxuICAgICAgICBudWxsICE9PSByb290LmNhbmNlbFBlbmRpbmdDb21taXRcbiAgICAgIClcbiAgICAgICAgcHJlcGFyZUZyZXNoU3RhY2socm9vdCwgMCksXG4gICAgICAgICAgbWFya1Jvb3RTdXNwZW5kZWQoXG4gICAgICAgICAgICByb290LFxuICAgICAgICAgICAgd29ya0luUHJvZ3Jlc3NSb290UmVuZGVyTGFuZXMsXG4gICAgICAgICAgICB3b3JrSW5Qcm9ncmVzc0RlZmVycmVkTGFuZSxcbiAgICAgICAgICAgICExXG4gICAgICAgICAgKTtcbiAgICAgIG1hcmtSb290VXBkYXRlZCQxKHJvb3QsIGxhbmUpO1xuICAgICAgaWYgKFxuICAgICAgICAwICE9PSAoZXhlY3V0aW9uQ29udGV4dCAmIFJlbmRlckNvbnRleHQpICYmXG4gICAgICAgIHJvb3QgPT09IHdvcmtJblByb2dyZXNzUm9vdFxuICAgICAgKSB7XG4gICAgICAgIGlmIChpc1JlbmRlcmluZylcbiAgICAgICAgICBzd2l0Y2ggKGZpYmVyLnRhZykge1xuICAgICAgICAgICAgY2FzZSAwOlxuICAgICAgICAgICAgY2FzZSAxMTpcbiAgICAgICAgICAgIGNhc2UgMTU6XG4gICAgICAgICAgICAgIHJvb3QgPVxuICAgICAgICAgICAgICAgICh3b3JrSW5Qcm9ncmVzcyAmJiBnZXRDb21wb25lbnROYW1lRnJvbUZpYmVyKHdvcmtJblByb2dyZXNzKSkgfHxcbiAgICAgICAgICAgICAgICBcIlVua25vd25cIjtcbiAgICAgICAgICAgICAgZGlkV2FybkFib3V0VXBkYXRlSW5SZW5kZXJGb3JBbm90aGVyQ29tcG9uZW50Lmhhcyhyb290KSB8fFxuICAgICAgICAgICAgICAgIChkaWRXYXJuQWJvdXRVcGRhdGVJblJlbmRlckZvckFub3RoZXJDb21wb25lbnQuYWRkKHJvb3QpLFxuICAgICAgICAgICAgICAgIChmaWJlciA9IGdldENvbXBvbmVudE5hbWVGcm9tRmliZXIoZmliZXIpIHx8IFwiVW5rbm93blwiKSxcbiAgICAgICAgICAgICAgICBjb25zb2xlLmVycm9yKFxuICAgICAgICAgICAgICAgICAgXCJDYW5ub3QgdXBkYXRlIGEgY29tcG9uZW50IChgJXNgKSB3aGlsZSByZW5kZXJpbmcgYSBkaWZmZXJlbnQgY29tcG9uZW50IChgJXNgKS4gVG8gbG9jYXRlIHRoZSBiYWQgc2V0U3RhdGUoKSBjYWxsIGluc2lkZSBgJXNgLCBmb2xsb3cgdGhlIHN0YWNrIHRyYWNlIGFzIGRlc2NyaWJlZCBpbiBodHRwczovL3JlYWN0LmRldi9saW5rL3NldHN0YXRlLWluLXJlbmRlclwiLFxuICAgICAgICAgICAgICAgICAgZmliZXIsXG4gICAgICAgICAgICAgICAgICByb290LFxuICAgICAgICAgICAgICAgICAgcm9vdFxuICAgICAgICAgICAgICAgICkpO1xuICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgMTpcbiAgICAgICAgICAgICAgZGlkV2FybkFib3V0VXBkYXRlSW5SZW5kZXIgfHxcbiAgICAgICAgICAgICAgICAoY29uc29sZS5lcnJvcihcbiAgICAgICAgICAgICAgICAgIFwiQ2Fubm90IHVwZGF0ZSBkdXJpbmcgYW4gZXhpc3Rpbmcgc3RhdGUgdHJhbnNpdGlvbiAoc3VjaCBhcyB3aXRoaW4gYHJlbmRlcmApLiBSZW5kZXIgbWV0aG9kcyBzaG91bGQgYmUgYSBwdXJlIGZ1bmN0aW9uIG9mIHByb3BzIGFuZCBzdGF0ZS5cIlxuICAgICAgICAgICAgICAgICksXG4gICAgICAgICAgICAgICAgKGRpZFdhcm5BYm91dFVwZGF0ZUluUmVuZGVyID0gITApKTtcbiAgICAgICAgICB9XG4gICAgICB9IGVsc2VcbiAgICAgICAgaXNEZXZUb29sc1ByZXNlbnQgJiYgYWRkRmliZXJUb0xhbmVzTWFwKHJvb3QsIGZpYmVyLCBsYW5lKSxcbiAgICAgICAgICB3YXJuSWZVcGRhdGVzTm90V3JhcHBlZFdpdGhBY3RERVYoZmliZXIpLFxuICAgICAgICAgIHJvb3QgPT09IHdvcmtJblByb2dyZXNzUm9vdCAmJlxuICAgICAgICAgICAgKChleGVjdXRpb25Db250ZXh0ICYgUmVuZGVyQ29udGV4dCkgPT09IE5vQ29udGV4dCAmJlxuICAgICAgICAgICAgICAod29ya0luUHJvZ3Jlc3NSb290SW50ZXJsZWF2ZWRVcGRhdGVkTGFuZXMgfD0gbGFuZSksXG4gICAgICAgICAgICB3b3JrSW5Qcm9ncmVzc1Jvb3RFeGl0U3RhdHVzID09PSBSb290U3VzcGVuZGVkV2l0aERlbGF5ICYmXG4gICAgICAgICAgICAgIG1hcmtSb290U3VzcGVuZGVkKFxuICAgICAgICAgICAgICAgIHJvb3QsXG4gICAgICAgICAgICAgICAgd29ya0luUHJvZ3Jlc3NSb290UmVuZGVyTGFuZXMsXG4gICAgICAgICAgICAgICAgd29ya0luUHJvZ3Jlc3NEZWZlcnJlZExhbmUsXG4gICAgICAgICAgICAgICAgITFcbiAgICAgICAgICAgICAgKSksXG4gICAgICAgICAgZW5zdXJlUm9vdElzU2NoZWR1bGVkKHJvb3QpO1xuICAgIH1cbiAgICBmdW5jdGlvbiBwZXJmb3JtV29ya09uUm9vdChyb290LCBsYW5lcywgZm9yY2VTeW5jKSB7XG4gICAgICBpZiAoKGV4ZWN1dGlvbkNvbnRleHQgJiAoUmVuZGVyQ29udGV4dCB8IENvbW1pdENvbnRleHQpKSAhPT0gTm9Db250ZXh0KVxuICAgICAgICB0aHJvdyBFcnJvcihcIlNob3VsZCBub3QgYWxyZWFkeSBiZSB3b3JraW5nLlwiKTtcbiAgICAgIHZhciBzaG91bGRUaW1lU2xpY2UgPVxuICAgICAgICAgICghZm9yY2VTeW5jICYmXG4gICAgICAgICAgICAwID09PSAobGFuZXMgJiAxMjQpICYmXG4gICAgICAgICAgICAwID09PSAobGFuZXMgJiByb290LmV4cGlyZWRMYW5lcykpIHx8XG4gICAgICAgICAgY2hlY2tJZlJvb3RJc1ByZXJlbmRlcmluZyhyb290LCBsYW5lcyksXG4gICAgICAgIGV4aXRTdGF0dXMgPSBzaG91bGRUaW1lU2xpY2VcbiAgICAgICAgICA/IHJlbmRlclJvb3RDb25jdXJyZW50KHJvb3QsIGxhbmVzKVxuICAgICAgICAgIDogcmVuZGVyUm9vdFN5bmMocm9vdCwgbGFuZXMsICEwKSxcbiAgICAgICAgcmVuZGVyV2FzQ29uY3VycmVudCA9IHNob3VsZFRpbWVTbGljZTtcbiAgICAgIGRvIHtcbiAgICAgICAgaWYgKGV4aXRTdGF0dXMgPT09IFJvb3RJblByb2dyZXNzKSB7XG4gICAgICAgICAgd29ya0luUHJvZ3Jlc3NSb290SXNQcmVyZW5kZXJpbmcgJiZcbiAgICAgICAgICAgICFzaG91bGRUaW1lU2xpY2UgJiZcbiAgICAgICAgICAgIG1hcmtSb290U3VzcGVuZGVkKHJvb3QsIGxhbmVzLCAwLCAhMSk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgZm9yY2VTeW5jID0gcm9vdC5jdXJyZW50LmFsdGVybmF0ZTtcbiAgICAgICAgICBpZiAoXG4gICAgICAgICAgICByZW5kZXJXYXNDb25jdXJyZW50ICYmXG4gICAgICAgICAgICAhaXNSZW5kZXJDb25zaXN0ZW50V2l0aEV4dGVybmFsU3RvcmVzKGZvcmNlU3luYylcbiAgICAgICAgICApIHtcbiAgICAgICAgICAgIGV4aXRTdGF0dXMgPSByZW5kZXJSb290U3luYyhyb290LCBsYW5lcywgITEpO1xuICAgICAgICAgICAgcmVuZGVyV2FzQ29uY3VycmVudCA9ICExO1xuICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgICAgfVxuICAgICAgICAgIGlmIChleGl0U3RhdHVzID09PSBSb290RXJyb3JlZCkge1xuICAgICAgICAgICAgcmVuZGVyV2FzQ29uY3VycmVudCA9IGxhbmVzO1xuICAgICAgICAgICAgaWYgKHJvb3QuZXJyb3JSZWNvdmVyeURpc2FibGVkTGFuZXMgJiByZW5kZXJXYXNDb25jdXJyZW50KVxuICAgICAgICAgICAgICB2YXIgZXJyb3JSZXRyeUxhbmVzID0gMDtcbiAgICAgICAgICAgIGVsc2VcbiAgICAgICAgICAgICAgKGVycm9yUmV0cnlMYW5lcyA9IHJvb3QucGVuZGluZ0xhbmVzICYgLTUzNjg3MDkxMyksXG4gICAgICAgICAgICAgICAgKGVycm9yUmV0cnlMYW5lcyA9XG4gICAgICAgICAgICAgICAgICAwICE9PSBlcnJvclJldHJ5TGFuZXNcbiAgICAgICAgICAgICAgICAgICAgPyBlcnJvclJldHJ5TGFuZXNcbiAgICAgICAgICAgICAgICAgICAgOiBlcnJvclJldHJ5TGFuZXMgJiA1MzY4NzA5MTJcbiAgICAgICAgICAgICAgICAgICAgICA/IDUzNjg3MDkxMlxuICAgICAgICAgICAgICAgICAgICAgIDogMCk7XG4gICAgICAgICAgICBpZiAoMCAhPT0gZXJyb3JSZXRyeUxhbmVzKSB7XG4gICAgICAgICAgICAgIGxhbmVzID0gZXJyb3JSZXRyeUxhbmVzO1xuICAgICAgICAgICAgICBhOiB7XG4gICAgICAgICAgICAgICAgZXhpdFN0YXR1cyA9IHJvb3Q7XG4gICAgICAgICAgICAgICAgdmFyIGVycm9yUmV0cnlMYW5lcyRqc2NvbXAkMCA9IGVycm9yUmV0cnlMYW5lcztcbiAgICAgICAgICAgICAgICBlcnJvclJldHJ5TGFuZXMgPSB3b3JrSW5Qcm9ncmVzc1Jvb3RDb25jdXJyZW50RXJyb3JzO1xuICAgICAgICAgICAgICAgIHZhciB3YXNSb290RGVoeWRyYXRlZCA9XG4gICAgICAgICAgICAgICAgICBleGl0U3RhdHVzLmN1cnJlbnQubWVtb2l6ZWRTdGF0ZS5pc0RlaHlkcmF0ZWQ7XG4gICAgICAgICAgICAgICAgd2FzUm9vdERlaHlkcmF0ZWQgJiZcbiAgICAgICAgICAgICAgICAgIChwcmVwYXJlRnJlc2hTdGFjayhcbiAgICAgICAgICAgICAgICAgICAgZXhpdFN0YXR1cyxcbiAgICAgICAgICAgICAgICAgICAgZXJyb3JSZXRyeUxhbmVzJGpzY29tcCQwXG4gICAgICAgICAgICAgICAgICApLmZsYWdzIHw9IDI1Nik7XG4gICAgICAgICAgICAgICAgZXJyb3JSZXRyeUxhbmVzJGpzY29tcCQwID0gcmVuZGVyUm9vdFN5bmMoXG4gICAgICAgICAgICAgICAgICBleGl0U3RhdHVzLFxuICAgICAgICAgICAgICAgICAgZXJyb3JSZXRyeUxhbmVzJGpzY29tcCQwLFxuICAgICAgICAgICAgICAgICAgITFcbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgIGlmIChlcnJvclJldHJ5TGFuZXMkanNjb21wJDAgIT09IFJvb3RFcnJvcmVkKSB7XG4gICAgICAgICAgICAgICAgICBpZiAoXG4gICAgICAgICAgICAgICAgICAgIHdvcmtJblByb2dyZXNzUm9vdERpZEF0dGFjaFBpbmdMaXN0ZW5lciAmJlxuICAgICAgICAgICAgICAgICAgICAhd2FzUm9vdERlaHlkcmF0ZWRcbiAgICAgICAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICAgICAgICBleGl0U3RhdHVzLmVycm9yUmVjb3ZlcnlEaXNhYmxlZExhbmVzIHw9XG4gICAgICAgICAgICAgICAgICAgICAgcmVuZGVyV2FzQ29uY3VycmVudDtcbiAgICAgICAgICAgICAgICAgICAgd29ya0luUHJvZ3Jlc3NSb290SW50ZXJsZWF2ZWRVcGRhdGVkTGFuZXMgfD1cbiAgICAgICAgICAgICAgICAgICAgICByZW5kZXJXYXNDb25jdXJyZW50O1xuICAgICAgICAgICAgICAgICAgICBleGl0U3RhdHVzID0gUm9vdFN1c3BlbmRlZFdpdGhEZWxheTtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWsgYTtcbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgIGV4aXRTdGF0dXMgPSB3b3JrSW5Qcm9ncmVzc1Jvb3RSZWNvdmVyYWJsZUVycm9ycztcbiAgICAgICAgICAgICAgICAgIHdvcmtJblByb2dyZXNzUm9vdFJlY292ZXJhYmxlRXJyb3JzID0gZXJyb3JSZXRyeUxhbmVzO1xuICAgICAgICAgICAgICAgICAgbnVsbCAhPT0gZXhpdFN0YXR1cyAmJlxuICAgICAgICAgICAgICAgICAgICAobnVsbCA9PT0gd29ya0luUHJvZ3Jlc3NSb290UmVjb3ZlcmFibGVFcnJvcnNcbiAgICAgICAgICAgICAgICAgICAgICA/ICh3b3JrSW5Qcm9ncmVzc1Jvb3RSZWNvdmVyYWJsZUVycm9ycyA9IGV4aXRTdGF0dXMpXG4gICAgICAgICAgICAgICAgICAgICAgOiB3b3JrSW5Qcm9ncmVzc1Jvb3RSZWNvdmVyYWJsZUVycm9ycy5wdXNoLmFwcGx5KFxuICAgICAgICAgICAgICAgICAgICAgICAgICB3b3JrSW5Qcm9ncmVzc1Jvb3RSZWNvdmVyYWJsZUVycm9ycyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgZXhpdFN0YXR1c1xuICAgICAgICAgICAgICAgICAgICAgICAgKSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGV4aXRTdGF0dXMgPSBlcnJvclJldHJ5TGFuZXMkanNjb21wJDA7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgcmVuZGVyV2FzQ29uY3VycmVudCA9ICExO1xuICAgICAgICAgICAgICBpZiAoZXhpdFN0YXR1cyAhPT0gUm9vdEVycm9yZWQpIGNvbnRpbnVlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgICBpZiAoZXhpdFN0YXR1cyA9PT0gUm9vdEZhdGFsRXJyb3JlZCkge1xuICAgICAgICAgICAgcHJlcGFyZUZyZXNoU3RhY2socm9vdCwgMCk7XG4gICAgICAgICAgICBtYXJrUm9vdFN1c3BlbmRlZChyb290LCBsYW5lcywgMCwgITApO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgfVxuICAgICAgICAgIGE6IHtcbiAgICAgICAgICAgIHNob3VsZFRpbWVTbGljZSA9IHJvb3Q7XG4gICAgICAgICAgICBzd2l0Y2ggKGV4aXRTdGF0dXMpIHtcbiAgICAgICAgICAgICAgY2FzZSBSb290SW5Qcm9ncmVzczpcbiAgICAgICAgICAgICAgY2FzZSBSb290RmF0YWxFcnJvcmVkOlxuICAgICAgICAgICAgICAgIHRocm93IEVycm9yKFwiUm9vdCBkaWQgbm90IGNvbXBsZXRlLiBUaGlzIGlzIGEgYnVnIGluIFJlYWN0LlwiKTtcbiAgICAgICAgICAgICAgY2FzZSBSb290U3VzcGVuZGVkV2l0aERlbGF5OlxuICAgICAgICAgICAgICAgIGlmICgobGFuZXMgJiA0MTk0MDQ4KSAhPT0gbGFuZXMpIGJyZWFrO1xuICAgICAgICAgICAgICBjYXNlIFJvb3RTdXNwZW5kZWRBdFRoZVNoZWxsOlxuICAgICAgICAgICAgICAgIG1hcmtSb290U3VzcGVuZGVkKFxuICAgICAgICAgICAgICAgICAgc2hvdWxkVGltZVNsaWNlLFxuICAgICAgICAgICAgICAgICAgbGFuZXMsXG4gICAgICAgICAgICAgICAgICB3b3JrSW5Qcm9ncmVzc0RlZmVycmVkTGFuZSxcbiAgICAgICAgICAgICAgICAgICF3b3JrSW5Qcm9ncmVzc1Jvb3REaWRTa2lwU3VzcGVuZGVkU2libGluZ3NcbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgIGJyZWFrIGE7XG4gICAgICAgICAgICAgIGNhc2UgUm9vdEVycm9yZWQ6XG4gICAgICAgICAgICAgICAgd29ya0luUHJvZ3Jlc3NSb290UmVjb3ZlcmFibGVFcnJvcnMgPSBudWxsO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICBjYXNlIFJvb3RTdXNwZW5kZWQ6XG4gICAgICAgICAgICAgIGNhc2UgUm9vdENvbXBsZXRlZDpcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICB0aHJvdyBFcnJvcihcIlVua25vd24gcm9vdCBleGl0IHN0YXR1cy5cIik7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAobnVsbCAhPT0gUmVhY3RTaGFyZWRJbnRlcm5hbHMuYWN0UXVldWUpXG4gICAgICAgICAgICAgIGNvbW1pdFJvb3QoXG4gICAgICAgICAgICAgICAgc2hvdWxkVGltZVNsaWNlLFxuICAgICAgICAgICAgICAgIGZvcmNlU3luYyxcbiAgICAgICAgICAgICAgICBsYW5lcyxcbiAgICAgICAgICAgICAgICB3b3JrSW5Qcm9ncmVzc1Jvb3RSZWNvdmVyYWJsZUVycm9ycyxcbiAgICAgICAgICAgICAgICB3b3JrSW5Qcm9ncmVzc1RyYW5zaXRpb25zLFxuICAgICAgICAgICAgICAgIHdvcmtJblByb2dyZXNzUm9vdERpZEluY2x1ZGVSZWN1cnNpdmVSZW5kZXJVcGRhdGUsXG4gICAgICAgICAgICAgICAgd29ya0luUHJvZ3Jlc3NEZWZlcnJlZExhbmUsXG4gICAgICAgICAgICAgICAgd29ya0luUHJvZ3Jlc3NSb290SW50ZXJsZWF2ZWRVcGRhdGVkTGFuZXMsXG4gICAgICAgICAgICAgICAgd29ya0luUHJvZ3Jlc3NTdXNwZW5kZWRSZXRyeUxhbmVzXG4gICAgICAgICAgICAgICk7XG4gICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgaWYgKFxuICAgICAgICAgICAgICAgIChsYW5lcyAmIDYyOTE0NTYwKSA9PT0gbGFuZXMgJiZcbiAgICAgICAgICAgICAgICAoKHJlbmRlcldhc0NvbmN1cnJlbnQgPVxuICAgICAgICAgICAgICAgICAgZ2xvYmFsTW9zdFJlY2VudEZhbGxiYWNrVGltZSArXG4gICAgICAgICAgICAgICAgICBGQUxMQkFDS19USFJPVFRMRV9NUyAtXG4gICAgICAgICAgICAgICAgICBub3ckMSgpKSxcbiAgICAgICAgICAgICAgICAxMCA8IHJlbmRlcldhc0NvbmN1cnJlbnQpXG4gICAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICAgIG1hcmtSb290U3VzcGVuZGVkKFxuICAgICAgICAgICAgICAgICAgc2hvdWxkVGltZVNsaWNlLFxuICAgICAgICAgICAgICAgICAgbGFuZXMsXG4gICAgICAgICAgICAgICAgICB3b3JrSW5Qcm9ncmVzc0RlZmVycmVkTGFuZSxcbiAgICAgICAgICAgICAgICAgICF3b3JrSW5Qcm9ncmVzc1Jvb3REaWRTa2lwU3VzcGVuZGVkU2libGluZ3NcbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgIGlmICgwICE9PSBnZXROZXh0TGFuZXMoc2hvdWxkVGltZVNsaWNlLCAwLCAhMCkpIGJyZWFrIGE7XG4gICAgICAgICAgICAgICAgc2hvdWxkVGltZVNsaWNlLnRpbWVvdXRIYW5kbGUgPSBzY2hlZHVsZVRpbWVvdXQoXG4gICAgICAgICAgICAgICAgICBjb21taXRSb290V2hlblJlYWR5LmJpbmQoXG4gICAgICAgICAgICAgICAgICAgIG51bGwsXG4gICAgICAgICAgICAgICAgICAgIHNob3VsZFRpbWVTbGljZSxcbiAgICAgICAgICAgICAgICAgICAgZm9yY2VTeW5jLFxuICAgICAgICAgICAgICAgICAgICB3b3JrSW5Qcm9ncmVzc1Jvb3RSZWNvdmVyYWJsZUVycm9ycyxcbiAgICAgICAgICAgICAgICAgICAgd29ya0luUHJvZ3Jlc3NUcmFuc2l0aW9ucyxcbiAgICAgICAgICAgICAgICAgICAgd29ya0luUHJvZ3Jlc3NSb290RGlkSW5jbHVkZVJlY3Vyc2l2ZVJlbmRlclVwZGF0ZSxcbiAgICAgICAgICAgICAgICAgICAgbGFuZXMsXG4gICAgICAgICAgICAgICAgICAgIHdvcmtJblByb2dyZXNzRGVmZXJyZWRMYW5lLFxuICAgICAgICAgICAgICAgICAgICB3b3JrSW5Qcm9ncmVzc1Jvb3RJbnRlcmxlYXZlZFVwZGF0ZWRMYW5lcyxcbiAgICAgICAgICAgICAgICAgICAgd29ya0luUHJvZ3Jlc3NTdXNwZW5kZWRSZXRyeUxhbmVzLFxuICAgICAgICAgICAgICAgICAgICB3b3JrSW5Qcm9ncmVzc1Jvb3REaWRTa2lwU3VzcGVuZGVkU2libGluZ3MsXG4gICAgICAgICAgICAgICAgICAgIGV4aXRTdGF0dXMsXG4gICAgICAgICAgICAgICAgICAgIFRIUk9UVExFRF9DT01NSVQsXG4gICAgICAgICAgICAgICAgICAgIHJlbmRlclN0YXJ0VGltZSxcbiAgICAgICAgICAgICAgICAgICAgMFxuICAgICAgICAgICAgICAgICAgKSxcbiAgICAgICAgICAgICAgICAgIHJlbmRlcldhc0NvbmN1cnJlbnRcbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgIGJyZWFrIGE7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgY29tbWl0Um9vdFdoZW5SZWFkeShcbiAgICAgICAgICAgICAgICBzaG91bGRUaW1lU2xpY2UsXG4gICAgICAgICAgICAgICAgZm9yY2VTeW5jLFxuICAgICAgICAgICAgICAgIHdvcmtJblByb2dyZXNzUm9vdFJlY292ZXJhYmxlRXJyb3JzLFxuICAgICAgICAgICAgICAgIHdvcmtJblByb2dyZXNzVHJhbnNpdGlvbnMsXG4gICAgICAgICAgICAgICAgd29ya0luUHJvZ3Jlc3NSb290RGlkSW5jbHVkZVJlY3Vyc2l2ZVJlbmRlclVwZGF0ZSxcbiAgICAgICAgICAgICAgICBsYW5lcyxcbiAgICAgICAgICAgICAgICB3b3JrSW5Qcm9ncmVzc0RlZmVycmVkTGFuZSxcbiAgICAgICAgICAgICAgICB3b3JrSW5Qcm9ncmVzc1Jvb3RJbnRlcmxlYXZlZFVwZGF0ZWRMYW5lcyxcbiAgICAgICAgICAgICAgICB3b3JrSW5Qcm9ncmVzc1N1c3BlbmRlZFJldHJ5TGFuZXMsXG4gICAgICAgICAgICAgICAgd29ya0luUHJvZ3Jlc3NSb290RGlkU2tpcFN1c3BlbmRlZFNpYmxpbmdzLFxuICAgICAgICAgICAgICAgIGV4aXRTdGF0dXMsXG4gICAgICAgICAgICAgICAgSU1NRURJQVRFX0NPTU1JVCxcbiAgICAgICAgICAgICAgICByZW5kZXJTdGFydFRpbWUsXG4gICAgICAgICAgICAgICAgMFxuICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBicmVhaztcbiAgICAgIH0gd2hpbGUgKDEpO1xuICAgICAgZW5zdXJlUm9vdElzU2NoZWR1bGVkKHJvb3QpO1xuICAgIH1cbiAgICBmdW5jdGlvbiBjb21taXRSb290V2hlblJlYWR5KFxuICAgICAgcm9vdCxcbiAgICAgIGZpbmlzaGVkV29yayxcbiAgICAgIHJlY292ZXJhYmxlRXJyb3JzLFxuICAgICAgdHJhbnNpdGlvbnMsXG4gICAgICBkaWRJbmNsdWRlUmVuZGVyUGhhc2VVcGRhdGUsXG4gICAgICBsYW5lcyxcbiAgICAgIHNwYXduZWRMYW5lLFxuICAgICAgdXBkYXRlZExhbmVzLFxuICAgICAgc3VzcGVuZGVkUmV0cnlMYW5lcyxcbiAgICAgIGRpZFNraXBTdXNwZW5kZWRTaWJsaW5ncyxcbiAgICAgIGV4aXRTdGF0dXMsXG4gICAgICBzdXNwZW5kZWRDb21taXRSZWFzb24sXG4gICAgICBjb21wbGV0ZWRSZW5kZXJTdGFydFRpbWUsXG4gICAgICBjb21wbGV0ZWRSZW5kZXJFbmRUaW1lXG4gICAgKSB7XG4gICAgICByb290LnRpbWVvdXRIYW5kbGUgPSBub1RpbWVvdXQ7XG4gICAgICBzdXNwZW5kZWRDb21taXRSZWFzb24gPSBmaW5pc2hlZFdvcmsuc3VidHJlZUZsYWdzO1xuICAgICAgaWYgKFxuICAgICAgICBzdXNwZW5kZWRDb21taXRSZWFzb24gJiA4MTkyIHx8XG4gICAgICAgIDE2Nzg1NDA4ID09PSAoc3VzcGVuZGVkQ29tbWl0UmVhc29uICYgMTY3ODU0MDgpXG4gICAgICApXG4gICAgICAgIGlmIChcbiAgICAgICAgICAoKHN1c3BlbmRlZFN0YXRlID0geyBzdHlsZXNoZWV0czogbnVsbCwgY291bnQ6IDAsIHVuc3VzcGVuZDogbm9vcCB9KSxcbiAgICAgICAgICBhY2N1bXVsYXRlU3VzcGVuc2V5Q29tbWl0T25GaWJlcihmaW5pc2hlZFdvcmspLFxuICAgICAgICAgIChzdXNwZW5kZWRDb21taXRSZWFzb24gPSB3YWl0Rm9yQ29tbWl0VG9CZVJlYWR5KCkpLFxuICAgICAgICAgIG51bGwgIT09IHN1c3BlbmRlZENvbW1pdFJlYXNvbilcbiAgICAgICAgKSB7XG4gICAgICAgICAgcm9vdC5jYW5jZWxQZW5kaW5nQ29tbWl0ID0gc3VzcGVuZGVkQ29tbWl0UmVhc29uKFxuICAgICAgICAgICAgY29tbWl0Um9vdC5iaW5kKFxuICAgICAgICAgICAgICBudWxsLFxuICAgICAgICAgICAgICByb290LFxuICAgICAgICAgICAgICBmaW5pc2hlZFdvcmssXG4gICAgICAgICAgICAgIGxhbmVzLFxuICAgICAgICAgICAgICByZWNvdmVyYWJsZUVycm9ycyxcbiAgICAgICAgICAgICAgdHJhbnNpdGlvbnMsXG4gICAgICAgICAgICAgIGRpZEluY2x1ZGVSZW5kZXJQaGFzZVVwZGF0ZSxcbiAgICAgICAgICAgICAgc3Bhd25lZExhbmUsXG4gICAgICAgICAgICAgIHVwZGF0ZWRMYW5lcyxcbiAgICAgICAgICAgICAgc3VzcGVuZGVkUmV0cnlMYW5lcyxcbiAgICAgICAgICAgICAgZXhpdFN0YXR1cyxcbiAgICAgICAgICAgICAgU1VTUEVOREVEX0NPTU1JVCxcbiAgICAgICAgICAgICAgY29tcGxldGVkUmVuZGVyU3RhcnRUaW1lLFxuICAgICAgICAgICAgICBjb21wbGV0ZWRSZW5kZXJFbmRUaW1lXG4gICAgICAgICAgICApXG4gICAgICAgICAgKTtcbiAgICAgICAgICBtYXJrUm9vdFN1c3BlbmRlZChcbiAgICAgICAgICAgIHJvb3QsXG4gICAgICAgICAgICBsYW5lcyxcbiAgICAgICAgICAgIHNwYXduZWRMYW5lLFxuICAgICAgICAgICAgIWRpZFNraXBTdXNwZW5kZWRTaWJsaW5nc1xuICAgICAgICAgICk7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICBjb21taXRSb290KFxuICAgICAgICByb290LFxuICAgICAgICBmaW5pc2hlZFdvcmssXG4gICAgICAgIGxhbmVzLFxuICAgICAgICByZWNvdmVyYWJsZUVycm9ycyxcbiAgICAgICAgdHJhbnNpdGlvbnMsXG4gICAgICAgIGRpZEluY2x1ZGVSZW5kZXJQaGFzZVVwZGF0ZSxcbiAgICAgICAgc3Bhd25lZExhbmUsXG4gICAgICAgIHVwZGF0ZWRMYW5lcyxcbiAgICAgICAgc3VzcGVuZGVkUmV0cnlMYW5lc1xuICAgICAgKTtcbiAgICB9XG4gICAgZnVuY3Rpb24gaXNSZW5kZXJDb25zaXN0ZW50V2l0aEV4dGVybmFsU3RvcmVzKGZpbmlzaGVkV29yaykge1xuICAgICAgZm9yICh2YXIgbm9kZSA9IGZpbmlzaGVkV29yazsgOyApIHtcbiAgICAgICAgdmFyIHRhZyA9IG5vZGUudGFnO1xuICAgICAgICBpZiAoXG4gICAgICAgICAgKDAgPT09IHRhZyB8fCAxMSA9PT0gdGFnIHx8IDE1ID09PSB0YWcpICYmXG4gICAgICAgICAgbm9kZS5mbGFncyAmIDE2Mzg0ICYmXG4gICAgICAgICAgKCh0YWcgPSBub2RlLnVwZGF0ZVF1ZXVlKSxcbiAgICAgICAgICBudWxsICE9PSB0YWcgJiYgKCh0YWcgPSB0YWcuc3RvcmVzKSwgbnVsbCAhPT0gdGFnKSlcbiAgICAgICAgKVxuICAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdGFnLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICB2YXIgY2hlY2sgPSB0YWdbaV0sXG4gICAgICAgICAgICAgIGdldFNuYXBzaG90ID0gY2hlY2suZ2V0U25hcHNob3Q7XG4gICAgICAgICAgICBjaGVjayA9IGNoZWNrLnZhbHVlO1xuICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgaWYgKCFvYmplY3RJcyhnZXRTbmFwc2hvdCgpLCBjaGVjaykpIHJldHVybiAhMTtcbiAgICAgICAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgICAgICAgIHJldHVybiAhMTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIHRhZyA9IG5vZGUuY2hpbGQ7XG4gICAgICAgIGlmIChub2RlLnN1YnRyZWVGbGFncyAmIDE2Mzg0ICYmIG51bGwgIT09IHRhZylcbiAgICAgICAgICAodGFnLnJldHVybiA9IG5vZGUpLCAobm9kZSA9IHRhZyk7XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgIGlmIChub2RlID09PSBmaW5pc2hlZFdvcmspIGJyZWFrO1xuICAgICAgICAgIGZvciAoOyBudWxsID09PSBub2RlLnNpYmxpbmc7ICkge1xuICAgICAgICAgICAgaWYgKG51bGwgPT09IG5vZGUucmV0dXJuIHx8IG5vZGUucmV0dXJuID09PSBmaW5pc2hlZFdvcmspIHJldHVybiAhMDtcbiAgICAgICAgICAgIG5vZGUgPSBub2RlLnJldHVybjtcbiAgICAgICAgICB9XG4gICAgICAgICAgbm9kZS5zaWJsaW5nLnJldHVybiA9IG5vZGUucmV0dXJuO1xuICAgICAgICAgIG5vZGUgPSBub2RlLnNpYmxpbmc7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIHJldHVybiAhMDtcbiAgICB9XG4gICAgZnVuY3Rpb24gbWFya1Jvb3RTdXNwZW5kZWQoXG4gICAgICByb290LFxuICAgICAgc3VzcGVuZGVkTGFuZXMsXG4gICAgICBzcGF3bmVkTGFuZSxcbiAgICAgIGRpZEF0dGVtcHRFbnRpcmVUcmVlXG4gICAgKSB7XG4gICAgICBzdXNwZW5kZWRMYW5lcyAmPSB+d29ya0luUHJvZ3Jlc3NSb290UGluZ2VkTGFuZXM7XG4gICAgICBzdXNwZW5kZWRMYW5lcyAmPSB+d29ya0luUHJvZ3Jlc3NSb290SW50ZXJsZWF2ZWRVcGRhdGVkTGFuZXM7XG4gICAgICByb290LnN1c3BlbmRlZExhbmVzIHw9IHN1c3BlbmRlZExhbmVzO1xuICAgICAgcm9vdC5waW5nZWRMYW5lcyAmPSB+c3VzcGVuZGVkTGFuZXM7XG4gICAgICBkaWRBdHRlbXB0RW50aXJlVHJlZSAmJiAocm9vdC53YXJtTGFuZXMgfD0gc3VzcGVuZGVkTGFuZXMpO1xuICAgICAgZGlkQXR0ZW1wdEVudGlyZVRyZWUgPSByb290LmV4cGlyYXRpb25UaW1lcztcbiAgICAgIGZvciAodmFyIGxhbmVzID0gc3VzcGVuZGVkTGFuZXM7IDAgPCBsYW5lczsgKSB7XG4gICAgICAgIHZhciBpbmRleCA9IDMxIC0gY2x6MzIobGFuZXMpLFxuICAgICAgICAgIGxhbmUgPSAxIDw8IGluZGV4O1xuICAgICAgICBkaWRBdHRlbXB0RW50aXJlVHJlZVtpbmRleF0gPSAtMTtcbiAgICAgICAgbGFuZXMgJj0gfmxhbmU7XG4gICAgICB9XG4gICAgICAwICE9PSBzcGF3bmVkTGFuZSAmJlxuICAgICAgICBtYXJrU3Bhd25lZERlZmVycmVkTGFuZShyb290LCBzcGF3bmVkTGFuZSwgc3VzcGVuZGVkTGFuZXMpO1xuICAgIH1cbiAgICBmdW5jdGlvbiBmbHVzaFN5bmNXb3JrJDEoKSB7XG4gICAgICByZXR1cm4gKGV4ZWN1dGlvbkNvbnRleHQgJiAoUmVuZGVyQ29udGV4dCB8IENvbW1pdENvbnRleHQpKSA9PT0gTm9Db250ZXh0XG4gICAgICAgID8gKGZsdXNoU3luY1dvcmtBY3Jvc3NSb290c19pbXBsKDAsICExKSwgITEpXG4gICAgICAgIDogITA7XG4gICAgfVxuICAgIGZ1bmN0aW9uIHJlc2V0V29ya0luUHJvZ3Jlc3NTdGFjaygpIHtcbiAgICAgIGlmIChudWxsICE9PSB3b3JrSW5Qcm9ncmVzcykge1xuICAgICAgICBpZiAod29ya0luUHJvZ3Jlc3NTdXNwZW5kZWRSZWFzb24gPT09IE5vdFN1c3BlbmRlZClcbiAgICAgICAgICB2YXIgaW50ZXJydXB0ZWRXb3JrID0gd29ya0luUHJvZ3Jlc3MucmV0dXJuO1xuICAgICAgICBlbHNlXG4gICAgICAgICAgKGludGVycnVwdGVkV29yayA9IHdvcmtJblByb2dyZXNzKSxcbiAgICAgICAgICAgIHJlc2V0Q29udGV4dERlcGVuZGVuY2llcygpLFxuICAgICAgICAgICAgcmVzZXRIb29rc09uVW53aW5kKGludGVycnVwdGVkV29yayksXG4gICAgICAgICAgICAodGhlbmFibGVTdGF0ZSA9IG51bGwpLFxuICAgICAgICAgICAgKHRoZW5hYmxlSW5kZXhDb3VudGVyID0gMCksXG4gICAgICAgICAgICAoaW50ZXJydXB0ZWRXb3JrID0gd29ya0luUHJvZ3Jlc3MpO1xuICAgICAgICBmb3IgKDsgbnVsbCAhPT0gaW50ZXJydXB0ZWRXb3JrOyApXG4gICAgICAgICAgdW53aW5kSW50ZXJydXB0ZWRXb3JrKGludGVycnVwdGVkV29yay5hbHRlcm5hdGUsIGludGVycnVwdGVkV29yayksXG4gICAgICAgICAgICAoaW50ZXJydXB0ZWRXb3JrID0gaW50ZXJydXB0ZWRXb3JrLnJldHVybik7XG4gICAgICAgIHdvcmtJblByb2dyZXNzID0gbnVsbDtcbiAgICAgIH1cbiAgICB9XG4gICAgZnVuY3Rpb24gcHJlcGFyZUZyZXNoU3RhY2socm9vdCwgbGFuZXMpIHtcbiAgICAgIHZhciB0aW1lb3V0SGFuZGxlID0gcm9vdC50aW1lb3V0SGFuZGxlO1xuICAgICAgdGltZW91dEhhbmRsZSAhPT0gbm9UaW1lb3V0ICYmXG4gICAgICAgICgocm9vdC50aW1lb3V0SGFuZGxlID0gbm9UaW1lb3V0KSwgY2FuY2VsVGltZW91dCh0aW1lb3V0SGFuZGxlKSk7XG4gICAgICB0aW1lb3V0SGFuZGxlID0gcm9vdC5jYW5jZWxQZW5kaW5nQ29tbWl0O1xuICAgICAgbnVsbCAhPT0gdGltZW91dEhhbmRsZSAmJlxuICAgICAgICAoKHJvb3QuY2FuY2VsUGVuZGluZ0NvbW1pdCA9IG51bGwpLCB0aW1lb3V0SGFuZGxlKCkpO1xuICAgICAgcmVzZXRXb3JrSW5Qcm9ncmVzc1N0YWNrKCk7XG4gICAgICB3b3JrSW5Qcm9ncmVzc1Jvb3QgPSByb290O1xuICAgICAgd29ya0luUHJvZ3Jlc3MgPSB0aW1lb3V0SGFuZGxlID0gY3JlYXRlV29ya0luUHJvZ3Jlc3Mocm9vdC5jdXJyZW50LCBudWxsKTtcbiAgICAgIHdvcmtJblByb2dyZXNzUm9vdFJlbmRlckxhbmVzID0gbGFuZXM7XG4gICAgICB3b3JrSW5Qcm9ncmVzc1N1c3BlbmRlZFJlYXNvbiA9IE5vdFN1c3BlbmRlZDtcbiAgICAgIHdvcmtJblByb2dyZXNzVGhyb3duVmFsdWUgPSBudWxsO1xuICAgICAgd29ya0luUHJvZ3Jlc3NSb290RGlkU2tpcFN1c3BlbmRlZFNpYmxpbmdzID0gITE7XG4gICAgICB3b3JrSW5Qcm9ncmVzc1Jvb3RJc1ByZXJlbmRlcmluZyA9IGNoZWNrSWZSb290SXNQcmVyZW5kZXJpbmcocm9vdCwgbGFuZXMpO1xuICAgICAgd29ya0luUHJvZ3Jlc3NSb290RGlkQXR0YWNoUGluZ0xpc3RlbmVyID0gITE7XG4gICAgICB3b3JrSW5Qcm9ncmVzc1Jvb3RFeGl0U3RhdHVzID0gUm9vdEluUHJvZ3Jlc3M7XG4gICAgICB3b3JrSW5Qcm9ncmVzc1N1c3BlbmRlZFJldHJ5TGFuZXMgPVxuICAgICAgICB3b3JrSW5Qcm9ncmVzc0RlZmVycmVkTGFuZSA9XG4gICAgICAgIHdvcmtJblByb2dyZXNzUm9vdFBpbmdlZExhbmVzID1cbiAgICAgICAgd29ya0luUHJvZ3Jlc3NSb290SW50ZXJsZWF2ZWRVcGRhdGVkTGFuZXMgPVxuICAgICAgICB3b3JrSW5Qcm9ncmVzc1Jvb3RTa2lwcGVkTGFuZXMgPVxuICAgICAgICAgIDA7XG4gICAgICB3b3JrSW5Qcm9ncmVzc1Jvb3RSZWNvdmVyYWJsZUVycm9ycyA9IHdvcmtJblByb2dyZXNzUm9vdENvbmN1cnJlbnRFcnJvcnMgPVxuICAgICAgICBudWxsO1xuICAgICAgd29ya0luUHJvZ3Jlc3NSb290RGlkSW5jbHVkZVJlY3Vyc2l2ZVJlbmRlclVwZGF0ZSA9ICExO1xuICAgICAgMCAhPT0gKGxhbmVzICYgOCkgJiYgKGxhbmVzIHw9IGxhbmVzICYgMzIpO1xuICAgICAgdmFyIGFsbEVudGFuZ2xlZExhbmVzID0gcm9vdC5lbnRhbmdsZWRMYW5lcztcbiAgICAgIGlmICgwICE9PSBhbGxFbnRhbmdsZWRMYW5lcylcbiAgICAgICAgZm9yIChcbiAgICAgICAgICByb290ID0gcm9vdC5lbnRhbmdsZW1lbnRzLCBhbGxFbnRhbmdsZWRMYW5lcyAmPSBsYW5lcztcbiAgICAgICAgICAwIDwgYWxsRW50YW5nbGVkTGFuZXM7XG5cbiAgICAgICAgKSB7XG4gICAgICAgICAgdmFyIGluZGV4ID0gMzEgLSBjbHozMihhbGxFbnRhbmdsZWRMYW5lcyksXG4gICAgICAgICAgICBsYW5lID0gMSA8PCBpbmRleDtcbiAgICAgICAgICBsYW5lcyB8PSByb290W2luZGV4XTtcbiAgICAgICAgICBhbGxFbnRhbmdsZWRMYW5lcyAmPSB+bGFuZTtcbiAgICAgICAgfVxuICAgICAgZW50YW5nbGVkUmVuZGVyTGFuZXMgPSBsYW5lcztcbiAgICAgIGZpbmlzaFF1ZXVlaW5nQ29uY3VycmVudFVwZGF0ZXMoKTtcbiAgICAgIGxhbmVzID0gZ2V0Q3VycmVudFRpbWUoKTtcbiAgICAgIDFlMyA8IGxhbmVzIC0gbGFzdFJlc2V0VGltZSAmJlxuICAgICAgICAoKFJlYWN0U2hhcmVkSW50ZXJuYWxzLnJlY2VudGx5Q3JlYXRlZE93bmVyU3RhY2tzID0gMCksXG4gICAgICAgIChsYXN0UmVzZXRUaW1lID0gbGFuZXMpKTtcbiAgICAgIFJlYWN0U3RyaWN0TW9kZVdhcm5pbmdzLmRpc2NhcmRQZW5kaW5nV2FybmluZ3MoKTtcbiAgICAgIHJldHVybiB0aW1lb3V0SGFuZGxlO1xuICAgIH1cbiAgICBmdW5jdGlvbiBoYW5kbGVUaHJvdyhyb290LCB0aHJvd25WYWx1ZSkge1xuICAgICAgY3VycmVudGx5UmVuZGVyaW5nRmliZXIgPSBudWxsO1xuICAgICAgUmVhY3RTaGFyZWRJbnRlcm5hbHMuSCA9IENvbnRleHRPbmx5RGlzcGF0Y2hlcjtcbiAgICAgIFJlYWN0U2hhcmVkSW50ZXJuYWxzLmdldEN1cnJlbnRTdGFjayA9IG51bGw7XG4gICAgICBpc1JlbmRlcmluZyA9ICExO1xuICAgICAgY3VycmVudCA9IG51bGw7XG4gICAgICB0aHJvd25WYWx1ZSA9PT0gU3VzcGVuc2VFeGNlcHRpb24gfHxcbiAgICAgIHRocm93blZhbHVlID09PSBTdXNwZW5zZUFjdGlvbkV4Y2VwdGlvblxuICAgICAgICA/ICgodGhyb3duVmFsdWUgPSBnZXRTdXNwZW5kZWRUaGVuYWJsZSgpKSxcbiAgICAgICAgICAod29ya0luUHJvZ3Jlc3NTdXNwZW5kZWRSZWFzb24gPSBTdXNwZW5kZWRPbkltbWVkaWF0ZSkpXG4gICAgICAgIDogdGhyb3duVmFsdWUgPT09IFN1c3BlbnNleUNvbW1pdEV4Y2VwdGlvblxuICAgICAgICAgID8gKCh0aHJvd25WYWx1ZSA9IGdldFN1c3BlbmRlZFRoZW5hYmxlKCkpLFxuICAgICAgICAgICAgKHdvcmtJblByb2dyZXNzU3VzcGVuZGVkUmVhc29uID0gU3VzcGVuZGVkT25JbnN0YW5jZSkpXG4gICAgICAgICAgOiAod29ya0luUHJvZ3Jlc3NTdXNwZW5kZWRSZWFzb24gPVxuICAgICAgICAgICAgICB0aHJvd25WYWx1ZSA9PT0gU2VsZWN0aXZlSHlkcmF0aW9uRXhjZXB0aW9uXG4gICAgICAgICAgICAgICAgPyBTdXNwZW5kZWRPbkh5ZHJhdGlvblxuICAgICAgICAgICAgICAgIDogbnVsbCAhPT0gdGhyb3duVmFsdWUgJiZcbiAgICAgICAgICAgICAgICAgICAgXCJvYmplY3RcIiA9PT0gdHlwZW9mIHRocm93blZhbHVlICYmXG4gICAgICAgICAgICAgICAgICAgIFwiZnVuY3Rpb25cIiA9PT0gdHlwZW9mIHRocm93blZhbHVlLnRoZW5cbiAgICAgICAgICAgICAgICAgID8gU3VzcGVuZGVkT25EZXByZWNhdGVkVGhyb3dQcm9taXNlXG4gICAgICAgICAgICAgICAgICA6IFN1c3BlbmRlZE9uRXJyb3IpO1xuICAgICAgd29ya0luUHJvZ3Jlc3NUaHJvd25WYWx1ZSA9IHRocm93blZhbHVlO1xuICAgICAgdmFyIGVycm9yZWRXb3JrID0gd29ya0luUHJvZ3Jlc3M7XG4gICAgICBpZiAobnVsbCA9PT0gZXJyb3JlZFdvcmspXG4gICAgICAgICh3b3JrSW5Qcm9ncmVzc1Jvb3RFeGl0U3RhdHVzID0gUm9vdEZhdGFsRXJyb3JlZCksXG4gICAgICAgICAgbG9nVW5jYXVnaHRFcnJvcihcbiAgICAgICAgICAgIHJvb3QsXG4gICAgICAgICAgICBjcmVhdGVDYXB0dXJlZFZhbHVlQXRGaWJlcih0aHJvd25WYWx1ZSwgcm9vdC5jdXJyZW50KVxuICAgICAgICAgICk7XG4gICAgICBlbHNlXG4gICAgICAgIHN3aXRjaCAoXG4gICAgICAgICAgKGVycm9yZWRXb3JrLm1vZGUgJiBQcm9maWxlTW9kZSAmJlxuICAgICAgICAgICAgc3RvcFByb2ZpbGVyVGltZXJJZlJ1bm5pbmdBbmRSZWNvcmREdXJhdGlvbihlcnJvcmVkV29yayksXG4gICAgICAgICAgbWFya0NvbXBvbmVudFJlbmRlclN0b3BwZWQoKSxcbiAgICAgICAgICB3b3JrSW5Qcm9ncmVzc1N1c3BlbmRlZFJlYXNvbilcbiAgICAgICAgKSB7XG4gICAgICAgICAgY2FzZSBTdXNwZW5kZWRPbkVycm9yOlxuICAgICAgICAgICAgbnVsbCAhPT0gaW5qZWN0ZWRQcm9maWxpbmdIb29rcyAmJlxuICAgICAgICAgICAgICBcImZ1bmN0aW9uXCIgPT09XG4gICAgICAgICAgICAgICAgdHlwZW9mIGluamVjdGVkUHJvZmlsaW5nSG9va3MubWFya0NvbXBvbmVudEVycm9yZWQgJiZcbiAgICAgICAgICAgICAgaW5qZWN0ZWRQcm9maWxpbmdIb29rcy5tYXJrQ29tcG9uZW50RXJyb3JlZChcbiAgICAgICAgICAgICAgICBlcnJvcmVkV29yayxcbiAgICAgICAgICAgICAgICB0aHJvd25WYWx1ZSxcbiAgICAgICAgICAgICAgICB3b3JrSW5Qcm9ncmVzc1Jvb3RSZW5kZXJMYW5lc1xuICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgY2FzZSBTdXNwZW5kZWRPbkRhdGE6XG4gICAgICAgICAgY2FzZSBTdXNwZW5kZWRPbkFjdGlvbjpcbiAgICAgICAgICBjYXNlIFN1c3BlbmRlZE9uSW1tZWRpYXRlOlxuICAgICAgICAgIGNhc2UgU3VzcGVuZGVkT25EZXByZWNhdGVkVGhyb3dQcm9taXNlOlxuICAgICAgICAgIGNhc2UgU3VzcGVuZGVkQW5kUmVhZHlUb0NvbnRpbnVlOlxuICAgICAgICAgICAgbnVsbCAhPT0gaW5qZWN0ZWRQcm9maWxpbmdIb29rcyAmJlxuICAgICAgICAgICAgICBcImZ1bmN0aW9uXCIgPT09XG4gICAgICAgICAgICAgICAgdHlwZW9mIGluamVjdGVkUHJvZmlsaW5nSG9va3MubWFya0NvbXBvbmVudFN1c3BlbmRlZCAmJlxuICAgICAgICAgICAgICBpbmplY3RlZFByb2ZpbGluZ0hvb2tzLm1hcmtDb21wb25lbnRTdXNwZW5kZWQoXG4gICAgICAgICAgICAgICAgZXJyb3JlZFdvcmssXG4gICAgICAgICAgICAgICAgdGhyb3duVmFsdWUsXG4gICAgICAgICAgICAgICAgd29ya0luUHJvZ3Jlc3NSb290UmVuZGVyTGFuZXNcbiAgICAgICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBmdW5jdGlvbiBwdXNoRGlzcGF0Y2hlcigpIHtcbiAgICAgIHZhciBwcmV2RGlzcGF0Y2hlciA9IFJlYWN0U2hhcmVkSW50ZXJuYWxzLkg7XG4gICAgICBSZWFjdFNoYXJlZEludGVybmFscy5IID0gQ29udGV4dE9ubHlEaXNwYXRjaGVyO1xuICAgICAgcmV0dXJuIG51bGwgPT09IHByZXZEaXNwYXRjaGVyID8gQ29udGV4dE9ubHlEaXNwYXRjaGVyIDogcHJldkRpc3BhdGNoZXI7XG4gICAgfVxuICAgIGZ1bmN0aW9uIHB1c2hBc3luY0Rpc3BhdGNoZXIoKSB7XG4gICAgICB2YXIgcHJldkFzeW5jRGlzcGF0Y2hlciA9IFJlYWN0U2hhcmVkSW50ZXJuYWxzLkE7XG4gICAgICBSZWFjdFNoYXJlZEludGVybmFscy5BID0gRGVmYXVsdEFzeW5jRGlzcGF0Y2hlcjtcbiAgICAgIHJldHVybiBwcmV2QXN5bmNEaXNwYXRjaGVyO1xuICAgIH1cbiAgICBmdW5jdGlvbiByZW5kZXJEaWRTdXNwZW5kRGVsYXlJZlBvc3NpYmxlKCkge1xuICAgICAgd29ya0luUHJvZ3Jlc3NSb290RXhpdFN0YXR1cyA9IFJvb3RTdXNwZW5kZWRXaXRoRGVsYXk7XG4gICAgICB3b3JrSW5Qcm9ncmVzc1Jvb3REaWRTa2lwU3VzcGVuZGVkU2libGluZ3MgfHxcbiAgICAgICAgKCh3b3JrSW5Qcm9ncmVzc1Jvb3RSZW5kZXJMYW5lcyAmIDQxOTQwNDgpICE9PVxuICAgICAgICAgIHdvcmtJblByb2dyZXNzUm9vdFJlbmRlckxhbmVzICYmXG4gICAgICAgICAgbnVsbCAhPT0gc3VzcGVuc2VIYW5kbGVyU3RhY2tDdXJzb3IuY3VycmVudCkgfHxcbiAgICAgICAgKHdvcmtJblByb2dyZXNzUm9vdElzUHJlcmVuZGVyaW5nID0gITApO1xuICAgICAgKDAgPT09ICh3b3JrSW5Qcm9ncmVzc1Jvb3RTa2lwcGVkTGFuZXMgJiAxMzQyMTc3MjcpICYmXG4gICAgICAgIDAgPT09ICh3b3JrSW5Qcm9ncmVzc1Jvb3RJbnRlcmxlYXZlZFVwZGF0ZWRMYW5lcyAmIDEzNDIxNzcyNykpIHx8XG4gICAgICAgIG51bGwgPT09IHdvcmtJblByb2dyZXNzUm9vdCB8fFxuICAgICAgICBtYXJrUm9vdFN1c3BlbmRlZChcbiAgICAgICAgICB3b3JrSW5Qcm9ncmVzc1Jvb3QsXG4gICAgICAgICAgd29ya0luUHJvZ3Jlc3NSb290UmVuZGVyTGFuZXMsXG4gICAgICAgICAgd29ya0luUHJvZ3Jlc3NEZWZlcnJlZExhbmUsXG4gICAgICAgICAgITFcbiAgICAgICAgKTtcbiAgICB9XG4gICAgZnVuY3Rpb24gcmVuZGVyUm9vdFN5bmMocm9vdCwgbGFuZXMsIHNob3VsZFlpZWxkRm9yUHJlcmVuZGVyaW5nKSB7XG4gICAgICB2YXIgcHJldkV4ZWN1dGlvbkNvbnRleHQgPSBleGVjdXRpb25Db250ZXh0O1xuICAgICAgZXhlY3V0aW9uQ29udGV4dCB8PSBSZW5kZXJDb250ZXh0O1xuICAgICAgdmFyIHByZXZEaXNwYXRjaGVyID0gcHVzaERpc3BhdGNoZXIoKSxcbiAgICAgICAgcHJldkFzeW5jRGlzcGF0Y2hlciA9IHB1c2hBc3luY0Rpc3BhdGNoZXIoKTtcbiAgICAgIGlmIChcbiAgICAgICAgd29ya0luUHJvZ3Jlc3NSb290ICE9PSByb290IHx8XG4gICAgICAgIHdvcmtJblByb2dyZXNzUm9vdFJlbmRlckxhbmVzICE9PSBsYW5lc1xuICAgICAgKSB7XG4gICAgICAgIGlmIChpc0RldlRvb2xzUHJlc2VudCkge1xuICAgICAgICAgIHZhciBtZW1vaXplZFVwZGF0ZXJzID0gcm9vdC5tZW1vaXplZFVwZGF0ZXJzO1xuICAgICAgICAgIDAgPCBtZW1vaXplZFVwZGF0ZXJzLnNpemUgJiZcbiAgICAgICAgICAgIChyZXN0b3JlUGVuZGluZ1VwZGF0ZXJzKHJvb3QsIHdvcmtJblByb2dyZXNzUm9vdFJlbmRlckxhbmVzKSxcbiAgICAgICAgICAgIG1lbW9pemVkVXBkYXRlcnMuY2xlYXIoKSk7XG4gICAgICAgICAgbW92ZVBlbmRpbmdGaWJlcnNUb01lbW9pemVkKHJvb3QsIGxhbmVzKTtcbiAgICAgICAgfVxuICAgICAgICB3b3JrSW5Qcm9ncmVzc1RyYW5zaXRpb25zID0gbnVsbDtcbiAgICAgICAgcHJlcGFyZUZyZXNoU3RhY2socm9vdCwgbGFuZXMpO1xuICAgICAgfVxuICAgICAgbWFya1JlbmRlclN0YXJ0ZWQobGFuZXMpO1xuICAgICAgbGFuZXMgPSAhMTtcbiAgICAgIG1lbW9pemVkVXBkYXRlcnMgPSB3b3JrSW5Qcm9ncmVzc1Jvb3RFeGl0U3RhdHVzO1xuICAgICAgYTogZG9cbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICBpZiAoXG4gICAgICAgICAgICB3b3JrSW5Qcm9ncmVzc1N1c3BlbmRlZFJlYXNvbiAhPT0gTm90U3VzcGVuZGVkICYmXG4gICAgICAgICAgICBudWxsICE9PSB3b3JrSW5Qcm9ncmVzc1xuICAgICAgICAgICkge1xuICAgICAgICAgICAgdmFyIHVuaXRPZldvcmsgPSB3b3JrSW5Qcm9ncmVzcyxcbiAgICAgICAgICAgICAgdGhyb3duVmFsdWUgPSB3b3JrSW5Qcm9ncmVzc1Rocm93blZhbHVlO1xuICAgICAgICAgICAgc3dpdGNoICh3b3JrSW5Qcm9ncmVzc1N1c3BlbmRlZFJlYXNvbikge1xuICAgICAgICAgICAgICBjYXNlIFN1c3BlbmRlZE9uSHlkcmF0aW9uOlxuICAgICAgICAgICAgICAgIHJlc2V0V29ya0luUHJvZ3Jlc3NTdGFjaygpO1xuICAgICAgICAgICAgICAgIG1lbW9pemVkVXBkYXRlcnMgPSBSb290U3VzcGVuZGVkQXRUaGVTaGVsbDtcbiAgICAgICAgICAgICAgICBicmVhayBhO1xuICAgICAgICAgICAgICBjYXNlIFN1c3BlbmRlZE9uSW1tZWRpYXRlOlxuICAgICAgICAgICAgICBjYXNlIFN1c3BlbmRlZE9uRGF0YTpcbiAgICAgICAgICAgICAgY2FzZSBTdXNwZW5kZWRPbkFjdGlvbjpcbiAgICAgICAgICAgICAgY2FzZSBTdXNwZW5kZWRPbkRlcHJlY2F0ZWRUaHJvd1Byb21pc2U6XG4gICAgICAgICAgICAgICAgbnVsbCA9PT0gc3VzcGVuc2VIYW5kbGVyU3RhY2tDdXJzb3IuY3VycmVudCAmJiAobGFuZXMgPSAhMCk7XG4gICAgICAgICAgICAgICAgdmFyIHJlYXNvbiA9IHdvcmtJblByb2dyZXNzU3VzcGVuZGVkUmVhc29uO1xuICAgICAgICAgICAgICAgIHdvcmtJblByb2dyZXNzU3VzcGVuZGVkUmVhc29uID0gTm90U3VzcGVuZGVkO1xuICAgICAgICAgICAgICAgIHdvcmtJblByb2dyZXNzVGhyb3duVmFsdWUgPSBudWxsO1xuICAgICAgICAgICAgICAgIHRocm93QW5kVW53aW5kV29ya0xvb3Aocm9vdCwgdW5pdE9mV29yaywgdGhyb3duVmFsdWUsIHJlYXNvbik7XG4gICAgICAgICAgICAgICAgaWYgKFxuICAgICAgICAgICAgICAgICAgc2hvdWxkWWllbGRGb3JQcmVyZW5kZXJpbmcgJiZcbiAgICAgICAgICAgICAgICAgIHdvcmtJblByb2dyZXNzUm9vdElzUHJlcmVuZGVyaW5nXG4gICAgICAgICAgICAgICAgKSB7XG4gICAgICAgICAgICAgICAgICBtZW1vaXplZFVwZGF0ZXJzID0gUm9vdEluUHJvZ3Jlc3M7XG4gICAgICAgICAgICAgICAgICBicmVhayBhO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICAocmVhc29uID0gd29ya0luUHJvZ3Jlc3NTdXNwZW5kZWRSZWFzb24pLFxuICAgICAgICAgICAgICAgICAgKHdvcmtJblByb2dyZXNzU3VzcGVuZGVkUmVhc29uID0gTm90U3VzcGVuZGVkKSxcbiAgICAgICAgICAgICAgICAgICh3b3JrSW5Qcm9ncmVzc1Rocm93blZhbHVlID0gbnVsbCksXG4gICAgICAgICAgICAgICAgICB0aHJvd0FuZFVud2luZFdvcmtMb29wKHJvb3QsIHVuaXRPZldvcmssIHRocm93blZhbHVlLCByZWFzb24pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgICB3b3JrTG9vcFN5bmMoKTtcbiAgICAgICAgICBtZW1vaXplZFVwZGF0ZXJzID0gd29ya0luUHJvZ3Jlc3NSb290RXhpdFN0YXR1cztcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgfSBjYXRjaCAodGhyb3duVmFsdWUkOCkge1xuICAgICAgICAgIGhhbmRsZVRocm93KHJvb3QsIHRocm93blZhbHVlJDgpO1xuICAgICAgICB9XG4gICAgICB3aGlsZSAoMSk7XG4gICAgICBsYW5lcyAmJiByb290LnNoZWxsU3VzcGVuZENvdW50ZXIrKztcbiAgICAgIHJlc2V0Q29udGV4dERlcGVuZGVuY2llcygpO1xuICAgICAgZXhlY3V0aW9uQ29udGV4dCA9IHByZXZFeGVjdXRpb25Db250ZXh0O1xuICAgICAgUmVhY3RTaGFyZWRJbnRlcm5hbHMuSCA9IHByZXZEaXNwYXRjaGVyO1xuICAgICAgUmVhY3RTaGFyZWRJbnRlcm5hbHMuQSA9IHByZXZBc3luY0Rpc3BhdGNoZXI7XG4gICAgICBtYXJrUmVuZGVyU3RvcHBlZCgpO1xuICAgICAgbnVsbCA9PT0gd29ya0luUHJvZ3Jlc3MgJiZcbiAgICAgICAgKCh3b3JrSW5Qcm9ncmVzc1Jvb3QgPSBudWxsKSxcbiAgICAgICAgKHdvcmtJblByb2dyZXNzUm9vdFJlbmRlckxhbmVzID0gMCksXG4gICAgICAgIGZpbmlzaFF1ZXVlaW5nQ29uY3VycmVudFVwZGF0ZXMoKSk7XG4gICAgICByZXR1cm4gbWVtb2l6ZWRVcGRhdGVycztcbiAgICB9XG4gICAgZnVuY3Rpb24gd29ya0xvb3BTeW5jKCkge1xuICAgICAgZm9yICg7IG51bGwgIT09IHdvcmtJblByb2dyZXNzOyApIHBlcmZvcm1Vbml0T2ZXb3JrKHdvcmtJblByb2dyZXNzKTtcbiAgICB9XG4gICAgZnVuY3Rpb24gcmVuZGVyUm9vdENvbmN1cnJlbnQocm9vdCwgbGFuZXMpIHtcbiAgICAgIHZhciBwcmV2RXhlY3V0aW9uQ29udGV4dCA9IGV4ZWN1dGlvbkNvbnRleHQ7XG4gICAgICBleGVjdXRpb25Db250ZXh0IHw9IFJlbmRlckNvbnRleHQ7XG4gICAgICB2YXIgcHJldkRpc3BhdGNoZXIgPSBwdXNoRGlzcGF0Y2hlcigpLFxuICAgICAgICBwcmV2QXN5bmNEaXNwYXRjaGVyID0gcHVzaEFzeW5jRGlzcGF0Y2hlcigpO1xuICAgICAgaWYgKFxuICAgICAgICB3b3JrSW5Qcm9ncmVzc1Jvb3QgIT09IHJvb3QgfHxcbiAgICAgICAgd29ya0luUHJvZ3Jlc3NSb290UmVuZGVyTGFuZXMgIT09IGxhbmVzXG4gICAgICApIHtcbiAgICAgICAgaWYgKGlzRGV2VG9vbHNQcmVzZW50KSB7XG4gICAgICAgICAgdmFyIG1lbW9pemVkVXBkYXRlcnMgPSByb290Lm1lbW9pemVkVXBkYXRlcnM7XG4gICAgICAgICAgMCA8IG1lbW9pemVkVXBkYXRlcnMuc2l6ZSAmJlxuICAgICAgICAgICAgKHJlc3RvcmVQZW5kaW5nVXBkYXRlcnMocm9vdCwgd29ya0luUHJvZ3Jlc3NSb290UmVuZGVyTGFuZXMpLFxuICAgICAgICAgICAgbWVtb2l6ZWRVcGRhdGVycy5jbGVhcigpKTtcbiAgICAgICAgICBtb3ZlUGVuZGluZ0ZpYmVyc1RvTWVtb2l6ZWQocm9vdCwgbGFuZXMpO1xuICAgICAgICB9XG4gICAgICAgIHdvcmtJblByb2dyZXNzVHJhbnNpdGlvbnMgPSBudWxsO1xuICAgICAgICB3b3JrSW5Qcm9ncmVzc1Jvb3RSZW5kZXJUYXJnZXRUaW1lID0gbm93JDEoKSArIFJFTkRFUl9USU1FT1VUX01TO1xuICAgICAgICBwcmVwYXJlRnJlc2hTdGFjayhyb290LCBsYW5lcyk7XG4gICAgICB9IGVsc2VcbiAgICAgICAgd29ya0luUHJvZ3Jlc3NSb290SXNQcmVyZW5kZXJpbmcgPSBjaGVja0lmUm9vdElzUHJlcmVuZGVyaW5nKFxuICAgICAgICAgIHJvb3QsXG4gICAgICAgICAgbGFuZXNcbiAgICAgICAgKTtcbiAgICAgIG1hcmtSZW5kZXJTdGFydGVkKGxhbmVzKTtcbiAgICAgIGE6IGRvXG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgaWYgKFxuICAgICAgICAgICAgd29ya0luUHJvZ3Jlc3NTdXNwZW5kZWRSZWFzb24gIT09IE5vdFN1c3BlbmRlZCAmJlxuICAgICAgICAgICAgbnVsbCAhPT0gd29ya0luUHJvZ3Jlc3NcbiAgICAgICAgICApXG4gICAgICAgICAgICBiOiBzd2l0Y2ggKFxuICAgICAgICAgICAgICAoKGxhbmVzID0gd29ya0luUHJvZ3Jlc3MpLFxuICAgICAgICAgICAgICAobWVtb2l6ZWRVcGRhdGVycyA9IHdvcmtJblByb2dyZXNzVGhyb3duVmFsdWUpLFxuICAgICAgICAgICAgICB3b3JrSW5Qcm9ncmVzc1N1c3BlbmRlZFJlYXNvbilcbiAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICBjYXNlIFN1c3BlbmRlZE9uRXJyb3I6XG4gICAgICAgICAgICAgICAgd29ya0luUHJvZ3Jlc3NTdXNwZW5kZWRSZWFzb24gPSBOb3RTdXNwZW5kZWQ7XG4gICAgICAgICAgICAgICAgd29ya0luUHJvZ3Jlc3NUaHJvd25WYWx1ZSA9IG51bGw7XG4gICAgICAgICAgICAgICAgdGhyb3dBbmRVbndpbmRXb3JrTG9vcChcbiAgICAgICAgICAgICAgICAgIHJvb3QsXG4gICAgICAgICAgICAgICAgICBsYW5lcyxcbiAgICAgICAgICAgICAgICAgIG1lbW9pemVkVXBkYXRlcnMsXG4gICAgICAgICAgICAgICAgICBTdXNwZW5kZWRPbkVycm9yXG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgY2FzZSBTdXNwZW5kZWRPbkRhdGE6XG4gICAgICAgICAgICAgIGNhc2UgU3VzcGVuZGVkT25BY3Rpb246XG4gICAgICAgICAgICAgICAgaWYgKGlzVGhlbmFibGVSZXNvbHZlZChtZW1vaXplZFVwZGF0ZXJzKSkge1xuICAgICAgICAgICAgICAgICAgd29ya0luUHJvZ3Jlc3NTdXNwZW5kZWRSZWFzb24gPSBOb3RTdXNwZW5kZWQ7XG4gICAgICAgICAgICAgICAgICB3b3JrSW5Qcm9ncmVzc1Rocm93blZhbHVlID0gbnVsbDtcbiAgICAgICAgICAgICAgICAgIHJlcGxheVN1c3BlbmRlZFVuaXRPZldvcmsobGFuZXMpO1xuICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGxhbmVzID0gZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgICAgKHdvcmtJblByb2dyZXNzU3VzcGVuZGVkUmVhc29uICE9PSBTdXNwZW5kZWRPbkRhdGEgJiZcbiAgICAgICAgICAgICAgICAgICAgd29ya0luUHJvZ3Jlc3NTdXNwZW5kZWRSZWFzb24gIT09IFN1c3BlbmRlZE9uQWN0aW9uKSB8fFxuICAgICAgICAgICAgICAgICAgICB3b3JrSW5Qcm9ncmVzc1Jvb3QgIT09IHJvb3QgfHxcbiAgICAgICAgICAgICAgICAgICAgKHdvcmtJblByb2dyZXNzU3VzcGVuZGVkUmVhc29uID1cbiAgICAgICAgICAgICAgICAgICAgICBTdXNwZW5kZWRBbmRSZWFkeVRvQ29udGludWUpO1xuICAgICAgICAgICAgICAgICAgZW5zdXJlUm9vdElzU2NoZWR1bGVkKHJvb3QpO1xuICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgbWVtb2l6ZWRVcGRhdGVycy50aGVuKGxhbmVzLCBsYW5lcyk7XG4gICAgICAgICAgICAgICAgYnJlYWsgYTtcbiAgICAgICAgICAgICAgY2FzZSBTdXNwZW5kZWRPbkltbWVkaWF0ZTpcbiAgICAgICAgICAgICAgICB3b3JrSW5Qcm9ncmVzc1N1c3BlbmRlZFJlYXNvbiA9IFN1c3BlbmRlZEFuZFJlYWR5VG9Db250aW51ZTtcbiAgICAgICAgICAgICAgICBicmVhayBhO1xuICAgICAgICAgICAgICBjYXNlIFN1c3BlbmRlZE9uSW5zdGFuY2U6XG4gICAgICAgICAgICAgICAgd29ya0luUHJvZ3Jlc3NTdXNwZW5kZWRSZWFzb24gPVxuICAgICAgICAgICAgICAgICAgU3VzcGVuZGVkT25JbnN0YW5jZUFuZFJlYWR5VG9Db250aW51ZTtcbiAgICAgICAgICAgICAgICBicmVhayBhO1xuICAgICAgICAgICAgICBjYXNlIFN1c3BlbmRlZEFuZFJlYWR5VG9Db250aW51ZTpcbiAgICAgICAgICAgICAgICBpc1RoZW5hYmxlUmVzb2x2ZWQobWVtb2l6ZWRVcGRhdGVycylcbiAgICAgICAgICAgICAgICAgID8gKCh3b3JrSW5Qcm9ncmVzc1N1c3BlbmRlZFJlYXNvbiA9IE5vdFN1c3BlbmRlZCksXG4gICAgICAgICAgICAgICAgICAgICh3b3JrSW5Qcm9ncmVzc1Rocm93blZhbHVlID0gbnVsbCksXG4gICAgICAgICAgICAgICAgICAgIHJlcGxheVN1c3BlbmRlZFVuaXRPZldvcmsobGFuZXMpKVxuICAgICAgICAgICAgICAgICAgOiAoKHdvcmtJblByb2dyZXNzU3VzcGVuZGVkUmVhc29uID0gTm90U3VzcGVuZGVkKSxcbiAgICAgICAgICAgICAgICAgICAgKHdvcmtJblByb2dyZXNzVGhyb3duVmFsdWUgPSBudWxsKSxcbiAgICAgICAgICAgICAgICAgICAgdGhyb3dBbmRVbndpbmRXb3JrTG9vcChcbiAgICAgICAgICAgICAgICAgICAgICByb290LFxuICAgICAgICAgICAgICAgICAgICAgIGxhbmVzLFxuICAgICAgICAgICAgICAgICAgICAgIG1lbW9pemVkVXBkYXRlcnMsXG4gICAgICAgICAgICAgICAgICAgICAgU3VzcGVuZGVkQW5kUmVhZHlUb0NvbnRpbnVlXG4gICAgICAgICAgICAgICAgICAgICkpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICBjYXNlIFN1c3BlbmRlZE9uSW5zdGFuY2VBbmRSZWFkeVRvQ29udGludWU6XG4gICAgICAgICAgICAgICAgdmFyIHJlc291cmNlID0gbnVsbDtcbiAgICAgICAgICAgICAgICBzd2l0Y2ggKHdvcmtJblByb2dyZXNzLnRhZykge1xuICAgICAgICAgICAgICAgICAgY2FzZSAyNjpcbiAgICAgICAgICAgICAgICAgICAgcmVzb3VyY2UgPSB3b3JrSW5Qcm9ncmVzcy5tZW1vaXplZFN0YXRlO1xuICAgICAgICAgICAgICAgICAgY2FzZSA1OlxuICAgICAgICAgICAgICAgICAgY2FzZSAyNzpcbiAgICAgICAgICAgICAgICAgICAgdmFyIGhvc3RGaWJlciA9IHdvcmtJblByb2dyZXNzO1xuICAgICAgICAgICAgICAgICAgICBpZiAocmVzb3VyY2UgPyBwcmVsb2FkUmVzb3VyY2UocmVzb3VyY2UpIDogMSkge1xuICAgICAgICAgICAgICAgICAgICAgIHdvcmtJblByb2dyZXNzU3VzcGVuZGVkUmVhc29uID0gTm90U3VzcGVuZGVkO1xuICAgICAgICAgICAgICAgICAgICAgIHdvcmtJblByb2dyZXNzVGhyb3duVmFsdWUgPSBudWxsO1xuICAgICAgICAgICAgICAgICAgICAgIHZhciBzaWJsaW5nID0gaG9zdEZpYmVyLnNpYmxpbmc7XG4gICAgICAgICAgICAgICAgICAgICAgaWYgKG51bGwgIT09IHNpYmxpbmcpIHdvcmtJblByb2dyZXNzID0gc2libGluZztcbiAgICAgICAgICAgICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhciByZXR1cm5GaWJlciA9IGhvc3RGaWJlci5yZXR1cm47XG4gICAgICAgICAgICAgICAgICAgICAgICBudWxsICE9PSByZXR1cm5GaWJlclxuICAgICAgICAgICAgICAgICAgICAgICAgICA/ICgod29ya0luUHJvZ3Jlc3MgPSByZXR1cm5GaWJlciksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29tcGxldGVVbml0T2ZXb3JrKHJldHVybkZpYmVyKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgOiAod29ya0luUHJvZ3Jlc3MgPSBudWxsKTtcbiAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgYnJlYWsgYjtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoXG4gICAgICAgICAgICAgICAgICAgICAgXCJVbmV4cGVjdGVkIHR5cGUgb2YgZmliZXIgdHJpZ2dlcmVkIGEgc3VzcGVuc2V5IGNvbW1pdC4gVGhpcyBpcyBhIGJ1ZyBpbiBSZWFjdC5cIlxuICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB3b3JrSW5Qcm9ncmVzc1N1c3BlbmRlZFJlYXNvbiA9IE5vdFN1c3BlbmRlZDtcbiAgICAgICAgICAgICAgICB3b3JrSW5Qcm9ncmVzc1Rocm93blZhbHVlID0gbnVsbDtcbiAgICAgICAgICAgICAgICB0aHJvd0FuZFVud2luZFdvcmtMb29wKFxuICAgICAgICAgICAgICAgICAgcm9vdCxcbiAgICAgICAgICAgICAgICAgIGxhbmVzLFxuICAgICAgICAgICAgICAgICAgbWVtb2l6ZWRVcGRhdGVycyxcbiAgICAgICAgICAgICAgICAgIFN1c3BlbmRlZE9uSW5zdGFuY2VBbmRSZWFkeVRvQ29udGludWVcbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICBjYXNlIFN1c3BlbmRlZE9uRGVwcmVjYXRlZFRocm93UHJvbWlzZTpcbiAgICAgICAgICAgICAgICB3b3JrSW5Qcm9ncmVzc1N1c3BlbmRlZFJlYXNvbiA9IE5vdFN1c3BlbmRlZDtcbiAgICAgICAgICAgICAgICB3b3JrSW5Qcm9ncmVzc1Rocm93blZhbHVlID0gbnVsbDtcbiAgICAgICAgICAgICAgICB0aHJvd0FuZFVud2luZFdvcmtMb29wKFxuICAgICAgICAgICAgICAgICAgcm9vdCxcbiAgICAgICAgICAgICAgICAgIGxhbmVzLFxuICAgICAgICAgICAgICAgICAgbWVtb2l6ZWRVcGRhdGVycyxcbiAgICAgICAgICAgICAgICAgIFN1c3BlbmRlZE9uRGVwcmVjYXRlZFRocm93UHJvbWlzZVxuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgIGNhc2UgU3VzcGVuZGVkT25IeWRyYXRpb246XG4gICAgICAgICAgICAgICAgcmVzZXRXb3JrSW5Qcm9ncmVzc1N0YWNrKCk7XG4gICAgICAgICAgICAgICAgd29ya0luUHJvZ3Jlc3NSb290RXhpdFN0YXR1cyA9IFJvb3RTdXNwZW5kZWRBdFRoZVNoZWxsO1xuICAgICAgICAgICAgICAgIGJyZWFrIGE7XG4gICAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgdGhyb3cgRXJyb3IoXG4gICAgICAgICAgICAgICAgICBcIlVuZXhwZWN0ZWQgU3VzcGVuZGVkUmVhc29uLiBUaGlzIGlzIGEgYnVnIGluIFJlYWN0LlwiXG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICBudWxsICE9PSBSZWFjdFNoYXJlZEludGVybmFscy5hY3RRdWV1ZVxuICAgICAgICAgICAgPyB3b3JrTG9vcFN5bmMoKVxuICAgICAgICAgICAgOiB3b3JrTG9vcENvbmN1cnJlbnRCeVNjaGVkdWxlcigpO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9IGNhdGNoICh0aHJvd25WYWx1ZSQ5KSB7XG4gICAgICAgICAgaGFuZGxlVGhyb3cocm9vdCwgdGhyb3duVmFsdWUkOSk7XG4gICAgICAgIH1cbiAgICAgIHdoaWxlICgxKTtcbiAgICAgIHJlc2V0Q29udGV4dERlcGVuZGVuY2llcygpO1xuICAgICAgUmVhY3RTaGFyZWRJbnRlcm5hbHMuSCA9IHByZXZEaXNwYXRjaGVyO1xuICAgICAgUmVhY3RTaGFyZWRJbnRlcm5hbHMuQSA9IHByZXZBc3luY0Rpc3BhdGNoZXI7XG4gICAgICBleGVjdXRpb25Db250ZXh0ID0gcHJldkV4ZWN1dGlvbkNvbnRleHQ7XG4gICAgICBpZiAobnVsbCAhPT0gd29ya0luUHJvZ3Jlc3MpXG4gICAgICAgIHJldHVybiAoXG4gICAgICAgICAgbnVsbCAhPT0gaW5qZWN0ZWRQcm9maWxpbmdIb29rcyAmJlxuICAgICAgICAgICAgXCJmdW5jdGlvblwiID09PSB0eXBlb2YgaW5qZWN0ZWRQcm9maWxpbmdIb29rcy5tYXJrUmVuZGVyWWllbGRlZCAmJlxuICAgICAgICAgICAgaW5qZWN0ZWRQcm9maWxpbmdIb29rcy5tYXJrUmVuZGVyWWllbGRlZCgpLFxuICAgICAgICAgIFJvb3RJblByb2dyZXNzXG4gICAgICAgICk7XG4gICAgICBtYXJrUmVuZGVyU3RvcHBlZCgpO1xuICAgICAgd29ya0luUHJvZ3Jlc3NSb290ID0gbnVsbDtcbiAgICAgIHdvcmtJblByb2dyZXNzUm9vdFJlbmRlckxhbmVzID0gMDtcbiAgICAgIGZpbmlzaFF1ZXVlaW5nQ29uY3VycmVudFVwZGF0ZXMoKTtcbiAgICAgIHJldHVybiB3b3JrSW5Qcm9ncmVzc1Jvb3RFeGl0U3RhdHVzO1xuICAgIH1cbiAgICBmdW5jdGlvbiB3b3JrTG9vcENvbmN1cnJlbnRCeVNjaGVkdWxlcigpIHtcbiAgICAgIGZvciAoOyBudWxsICE9PSB3b3JrSW5Qcm9ncmVzcyAmJiAhc2hvdWxkWWllbGQoKTsgKVxuICAgICAgICBwZXJmb3JtVW5pdE9mV29yayh3b3JrSW5Qcm9ncmVzcyk7XG4gICAgfVxuICAgIGZ1bmN0aW9uIHBlcmZvcm1Vbml0T2ZXb3JrKHVuaXRPZldvcmspIHtcbiAgICAgIHZhciBjdXJyZW50ID0gdW5pdE9mV29yay5hbHRlcm5hdGU7XG4gICAgICAodW5pdE9mV29yay5tb2RlICYgUHJvZmlsZU1vZGUpICE9PSBOb01vZGVcbiAgICAgICAgPyAoc3RhcnRQcm9maWxlclRpbWVyKHVuaXRPZldvcmspLFxuICAgICAgICAgIChjdXJyZW50ID0gcnVuV2l0aEZpYmVySW5ERVYoXG4gICAgICAgICAgICB1bml0T2ZXb3JrLFxuICAgICAgICAgICAgYmVnaW5Xb3JrLFxuICAgICAgICAgICAgY3VycmVudCxcbiAgICAgICAgICAgIHVuaXRPZldvcmssXG4gICAgICAgICAgICBlbnRhbmdsZWRSZW5kZXJMYW5lc1xuICAgICAgICAgICkpLFxuICAgICAgICAgIHN0b3BQcm9maWxlclRpbWVySWZSdW5uaW5nQW5kUmVjb3JkRHVyYXRpb24odW5pdE9mV29yaykpXG4gICAgICAgIDogKGN1cnJlbnQgPSBydW5XaXRoRmliZXJJbkRFVihcbiAgICAgICAgICAgIHVuaXRPZldvcmssXG4gICAgICAgICAgICBiZWdpbldvcmssXG4gICAgICAgICAgICBjdXJyZW50LFxuICAgICAgICAgICAgdW5pdE9mV29yayxcbiAgICAgICAgICAgIGVudGFuZ2xlZFJlbmRlckxhbmVzXG4gICAgICAgICAgKSk7XG4gICAgICB1bml0T2ZXb3JrLm1lbW9pemVkUHJvcHMgPSB1bml0T2ZXb3JrLnBlbmRpbmdQcm9wcztcbiAgICAgIG51bGwgPT09IGN1cnJlbnRcbiAgICAgICAgPyBjb21wbGV0ZVVuaXRPZldvcmsodW5pdE9mV29yaylcbiAgICAgICAgOiAod29ya0luUHJvZ3Jlc3MgPSBjdXJyZW50KTtcbiAgICB9XG4gICAgZnVuY3Rpb24gcmVwbGF5U3VzcGVuZGVkVW5pdE9mV29yayh1bml0T2ZXb3JrKSB7XG4gICAgICB2YXIgbmV4dCA9IHJ1bldpdGhGaWJlckluREVWKHVuaXRPZldvcmssIHJlcGxheUJlZ2luV29yaywgdW5pdE9mV29yayk7XG4gICAgICB1bml0T2ZXb3JrLm1lbW9pemVkUHJvcHMgPSB1bml0T2ZXb3JrLnBlbmRpbmdQcm9wcztcbiAgICAgIG51bGwgPT09IG5leHQgPyBjb21wbGV0ZVVuaXRPZldvcmsodW5pdE9mV29yaykgOiAod29ya0luUHJvZ3Jlc3MgPSBuZXh0KTtcbiAgICB9XG4gICAgZnVuY3Rpb24gcmVwbGF5QmVnaW5Xb3JrKHVuaXRPZldvcmspIHtcbiAgICAgIHZhciBjdXJyZW50ID0gdW5pdE9mV29yay5hbHRlcm5hdGUsXG4gICAgICAgIGlzUHJvZmlsaW5nTW9kZSA9ICh1bml0T2ZXb3JrLm1vZGUgJiBQcm9maWxlTW9kZSkgIT09IE5vTW9kZTtcbiAgICAgIGlzUHJvZmlsaW5nTW9kZSAmJiBzdGFydFByb2ZpbGVyVGltZXIodW5pdE9mV29yayk7XG4gICAgICBzd2l0Y2ggKHVuaXRPZldvcmsudGFnKSB7XG4gICAgICAgIGNhc2UgMTU6XG4gICAgICAgIGNhc2UgMDpcbiAgICAgICAgICBjdXJyZW50ID0gcmVwbGF5RnVuY3Rpb25Db21wb25lbnQoXG4gICAgICAgICAgICBjdXJyZW50LFxuICAgICAgICAgICAgdW5pdE9mV29yayxcbiAgICAgICAgICAgIHVuaXRPZldvcmsucGVuZGluZ1Byb3BzLFxuICAgICAgICAgICAgdW5pdE9mV29yay50eXBlLFxuICAgICAgICAgICAgdm9pZCAwLFxuICAgICAgICAgICAgd29ya0luUHJvZ3Jlc3NSb290UmVuZGVyTGFuZXNcbiAgICAgICAgICApO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIDExOlxuICAgICAgICAgIGN1cnJlbnQgPSByZXBsYXlGdW5jdGlvbkNvbXBvbmVudChcbiAgICAgICAgICAgIGN1cnJlbnQsXG4gICAgICAgICAgICB1bml0T2ZXb3JrLFxuICAgICAgICAgICAgdW5pdE9mV29yay5wZW5kaW5nUHJvcHMsXG4gICAgICAgICAgICB1bml0T2ZXb3JrLnR5cGUucmVuZGVyLFxuICAgICAgICAgICAgdW5pdE9mV29yay5yZWYsXG4gICAgICAgICAgICB3b3JrSW5Qcm9ncmVzc1Jvb3RSZW5kZXJMYW5lc1xuICAgICAgICAgICk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgNTpcbiAgICAgICAgICByZXNldEhvb2tzT25VbndpbmQodW5pdE9mV29yayk7XG4gICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgdW53aW5kSW50ZXJydXB0ZWRXb3JrKGN1cnJlbnQsIHVuaXRPZldvcmspLFxuICAgICAgICAgICAgKHVuaXRPZldvcmsgPSB3b3JrSW5Qcm9ncmVzcyA9XG4gICAgICAgICAgICAgIHJlc2V0V29ya0luUHJvZ3Jlc3ModW5pdE9mV29yaywgZW50YW5nbGVkUmVuZGVyTGFuZXMpKSxcbiAgICAgICAgICAgIChjdXJyZW50ID0gYmVnaW5Xb3JrKGN1cnJlbnQsIHVuaXRPZldvcmssIGVudGFuZ2xlZFJlbmRlckxhbmVzKSk7XG4gICAgICB9XG4gICAgICBpc1Byb2ZpbGluZ01vZGUgJiZcbiAgICAgICAgc3RvcFByb2ZpbGVyVGltZXJJZlJ1bm5pbmdBbmRSZWNvcmREdXJhdGlvbih1bml0T2ZXb3JrKTtcbiAgICAgIHJldHVybiBjdXJyZW50O1xuICAgIH1cbiAgICBmdW5jdGlvbiB0aHJvd0FuZFVud2luZFdvcmtMb29wKFxuICAgICAgcm9vdCxcbiAgICAgIHVuaXRPZldvcmssXG4gICAgICB0aHJvd25WYWx1ZSxcbiAgICAgIHN1c3BlbmRlZFJlYXNvblxuICAgICkge1xuICAgICAgcmVzZXRDb250ZXh0RGVwZW5kZW5jaWVzKCk7XG4gICAgICByZXNldEhvb2tzT25VbndpbmQodW5pdE9mV29yayk7XG4gICAgICB0aGVuYWJsZVN0YXRlID0gbnVsbDtcbiAgICAgIHRoZW5hYmxlSW5kZXhDb3VudGVyID0gMDtcbiAgICAgIHZhciByZXR1cm5GaWJlciA9IHVuaXRPZldvcmsucmV0dXJuO1xuICAgICAgdHJ5IHtcbiAgICAgICAgaWYgKFxuICAgICAgICAgIHRocm93RXhjZXB0aW9uKFxuICAgICAgICAgICAgcm9vdCxcbiAgICAgICAgICAgIHJldHVybkZpYmVyLFxuICAgICAgICAgICAgdW5pdE9mV29yayxcbiAgICAgICAgICAgIHRocm93blZhbHVlLFxuICAgICAgICAgICAgd29ya0luUHJvZ3Jlc3NSb290UmVuZGVyTGFuZXNcbiAgICAgICAgICApXG4gICAgICAgICkge1xuICAgICAgICAgIHdvcmtJblByb2dyZXNzUm9vdEV4aXRTdGF0dXMgPSBSb290RmF0YWxFcnJvcmVkO1xuICAgICAgICAgIGxvZ1VuY2F1Z2h0RXJyb3IoXG4gICAgICAgICAgICByb290LFxuICAgICAgICAgICAgY3JlYXRlQ2FwdHVyZWRWYWx1ZUF0RmliZXIodGhyb3duVmFsdWUsIHJvb3QuY3VycmVudClcbiAgICAgICAgICApO1xuICAgICAgICAgIHdvcmtJblByb2dyZXNzID0gbnVsbDtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgIGlmIChudWxsICE9PSByZXR1cm5GaWJlcikgdGhyb3cgKCh3b3JrSW5Qcm9ncmVzcyA9IHJldHVybkZpYmVyKSwgZXJyb3IpO1xuICAgICAgICB3b3JrSW5Qcm9ncmVzc1Jvb3RFeGl0U3RhdHVzID0gUm9vdEZhdGFsRXJyb3JlZDtcbiAgICAgICAgbG9nVW5jYXVnaHRFcnJvcihcbiAgICAgICAgICByb290LFxuICAgICAgICAgIGNyZWF0ZUNhcHR1cmVkVmFsdWVBdEZpYmVyKHRocm93blZhbHVlLCByb290LmN1cnJlbnQpXG4gICAgICAgICk7XG4gICAgICAgIHdvcmtJblByb2dyZXNzID0gbnVsbDtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgICAgaWYgKHVuaXRPZldvcmsuZmxhZ3MgJiAzMjc2OCkge1xuICAgICAgICBpZiAoaXNIeWRyYXRpbmcgfHwgc3VzcGVuZGVkUmVhc29uID09PSBTdXNwZW5kZWRPbkVycm9yKSByb290ID0gITA7XG4gICAgICAgIGVsc2UgaWYgKFxuICAgICAgICAgIHdvcmtJblByb2dyZXNzUm9vdElzUHJlcmVuZGVyaW5nIHx8XG4gICAgICAgICAgMCAhPT0gKHdvcmtJblByb2dyZXNzUm9vdFJlbmRlckxhbmVzICYgNTM2ODcwOTEyKVxuICAgICAgICApXG4gICAgICAgICAgcm9vdCA9ICExO1xuICAgICAgICBlbHNlIGlmIChcbiAgICAgICAgICAoKHdvcmtJblByb2dyZXNzUm9vdERpZFNraXBTdXNwZW5kZWRTaWJsaW5ncyA9IHJvb3QgPSAhMCksXG4gICAgICAgICAgc3VzcGVuZGVkUmVhc29uID09PSBTdXNwZW5kZWRPbkRhdGEgfHxcbiAgICAgICAgICAgIHN1c3BlbmRlZFJlYXNvbiA9PT0gU3VzcGVuZGVkT25BY3Rpb24gfHxcbiAgICAgICAgICAgIHN1c3BlbmRlZFJlYXNvbiA9PT0gU3VzcGVuZGVkT25JbW1lZGlhdGUgfHxcbiAgICAgICAgICAgIHN1c3BlbmRlZFJlYXNvbiA9PT0gU3VzcGVuZGVkT25EZXByZWNhdGVkVGhyb3dQcm9taXNlKVxuICAgICAgICApXG4gICAgICAgICAgKHN1c3BlbmRlZFJlYXNvbiA9IHN1c3BlbnNlSGFuZGxlclN0YWNrQ3Vyc29yLmN1cnJlbnQpLFxuICAgICAgICAgICAgbnVsbCAhPT0gc3VzcGVuZGVkUmVhc29uICYmXG4gICAgICAgICAgICAgIDEzID09PSBzdXNwZW5kZWRSZWFzb24udGFnICYmXG4gICAgICAgICAgICAgIChzdXNwZW5kZWRSZWFzb24uZmxhZ3MgfD0gMTYzODQpO1xuICAgICAgICB1bndpbmRVbml0T2ZXb3JrKHVuaXRPZldvcmssIHJvb3QpO1xuICAgICAgfSBlbHNlIGNvbXBsZXRlVW5pdE9mV29yayh1bml0T2ZXb3JrKTtcbiAgICB9XG4gICAgZnVuY3Rpb24gY29tcGxldGVVbml0T2ZXb3JrKHVuaXRPZldvcmspIHtcbiAgICAgIHZhciBjb21wbGV0ZWRXb3JrID0gdW5pdE9mV29yaztcbiAgICAgIGRvIHtcbiAgICAgICAgaWYgKDAgIT09IChjb21wbGV0ZWRXb3JrLmZsYWdzICYgMzI3NjgpKSB7XG4gICAgICAgICAgdW53aW5kVW5pdE9mV29yayhcbiAgICAgICAgICAgIGNvbXBsZXRlZFdvcmssXG4gICAgICAgICAgICB3b3JrSW5Qcm9ncmVzc1Jvb3REaWRTa2lwU3VzcGVuZGVkU2libGluZ3NcbiAgICAgICAgICApO1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICB2YXIgY3VycmVudCA9IGNvbXBsZXRlZFdvcmsuYWx0ZXJuYXRlO1xuICAgICAgICB1bml0T2ZXb3JrID0gY29tcGxldGVkV29yay5yZXR1cm47XG4gICAgICAgIHN0YXJ0UHJvZmlsZXJUaW1lcihjb21wbGV0ZWRXb3JrKTtcbiAgICAgICAgY3VycmVudCA9IHJ1bldpdGhGaWJlckluREVWKFxuICAgICAgICAgIGNvbXBsZXRlZFdvcmssXG4gICAgICAgICAgY29tcGxldGVXb3JrLFxuICAgICAgICAgIGN1cnJlbnQsXG4gICAgICAgICAgY29tcGxldGVkV29yayxcbiAgICAgICAgICBlbnRhbmdsZWRSZW5kZXJMYW5lc1xuICAgICAgICApO1xuICAgICAgICAoY29tcGxldGVkV29yay5tb2RlICYgUHJvZmlsZU1vZGUpICE9PSBOb01vZGUgJiZcbiAgICAgICAgICBzdG9wUHJvZmlsZXJUaW1lcklmUnVubmluZ0FuZFJlY29yZEluY29tcGxldGVEdXJhdGlvbihjb21wbGV0ZWRXb3JrKTtcbiAgICAgICAgaWYgKG51bGwgIT09IGN1cnJlbnQpIHtcbiAgICAgICAgICB3b3JrSW5Qcm9ncmVzcyA9IGN1cnJlbnQ7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGNvbXBsZXRlZFdvcmsgPSBjb21wbGV0ZWRXb3JrLnNpYmxpbmc7XG4gICAgICAgIGlmIChudWxsICE9PSBjb21wbGV0ZWRXb3JrKSB7XG4gICAgICAgICAgd29ya0luUHJvZ3Jlc3MgPSBjb21wbGV0ZWRXb3JrO1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICB3b3JrSW5Qcm9ncmVzcyA9IGNvbXBsZXRlZFdvcmsgPSB1bml0T2ZXb3JrO1xuICAgICAgfSB3aGlsZSAobnVsbCAhPT0gY29tcGxldGVkV29yayk7XG4gICAgICB3b3JrSW5Qcm9ncmVzc1Jvb3RFeGl0U3RhdHVzID09PSBSb290SW5Qcm9ncmVzcyAmJlxuICAgICAgICAod29ya0luUHJvZ3Jlc3NSb290RXhpdFN0YXR1cyA9IFJvb3RDb21wbGV0ZWQpO1xuICAgIH1cbiAgICBmdW5jdGlvbiB1bndpbmRVbml0T2ZXb3JrKHVuaXRPZldvcmssIHNraXBTaWJsaW5ncykge1xuICAgICAgZG8ge1xuICAgICAgICB2YXIgbmV4dCA9IHVud2luZFdvcmsodW5pdE9mV29yay5hbHRlcm5hdGUsIHVuaXRPZldvcmspO1xuICAgICAgICBpZiAobnVsbCAhPT0gbmV4dCkge1xuICAgICAgICAgIG5leHQuZmxhZ3MgJj0gMzI3Njc7XG4gICAgICAgICAgd29ya0luUHJvZ3Jlc3MgPSBuZXh0O1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBpZiAoKHVuaXRPZldvcmsubW9kZSAmIFByb2ZpbGVNb2RlKSAhPT0gTm9Nb2RlKSB7XG4gICAgICAgICAgc3RvcFByb2ZpbGVyVGltZXJJZlJ1bm5pbmdBbmRSZWNvcmRJbmNvbXBsZXRlRHVyYXRpb24odW5pdE9mV29yayk7XG4gICAgICAgICAgbmV4dCA9IHVuaXRPZldvcmsuYWN0dWFsRHVyYXRpb247XG4gICAgICAgICAgZm9yICh2YXIgY2hpbGQgPSB1bml0T2ZXb3JrLmNoaWxkOyBudWxsICE9PSBjaGlsZDsgKVxuICAgICAgICAgICAgKG5leHQgKz0gY2hpbGQuYWN0dWFsRHVyYXRpb24pLCAoY2hpbGQgPSBjaGlsZC5zaWJsaW5nKTtcbiAgICAgICAgICB1bml0T2ZXb3JrLmFjdHVhbER1cmF0aW9uID0gbmV4dDtcbiAgICAgICAgfVxuICAgICAgICBuZXh0ID0gdW5pdE9mV29yay5yZXR1cm47XG4gICAgICAgIG51bGwgIT09IG5leHQgJiZcbiAgICAgICAgICAoKG5leHQuZmxhZ3MgfD0gMzI3NjgpLFxuICAgICAgICAgIChuZXh0LnN1YnRyZWVGbGFncyA9IDApLFxuICAgICAgICAgIChuZXh0LmRlbGV0aW9ucyA9IG51bGwpKTtcbiAgICAgICAgaWYgKFxuICAgICAgICAgICFza2lwU2libGluZ3MgJiZcbiAgICAgICAgICAoKHVuaXRPZldvcmsgPSB1bml0T2ZXb3JrLnNpYmxpbmcpLCBudWxsICE9PSB1bml0T2ZXb3JrKVxuICAgICAgICApIHtcbiAgICAgICAgICB3b3JrSW5Qcm9ncmVzcyA9IHVuaXRPZldvcms7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHdvcmtJblByb2dyZXNzID0gdW5pdE9mV29yayA9IG5leHQ7XG4gICAgICB9IHdoaWxlIChudWxsICE9PSB1bml0T2ZXb3JrKTtcbiAgICAgIHdvcmtJblByb2dyZXNzUm9vdEV4aXRTdGF0dXMgPSBSb290U3VzcGVuZGVkQXRUaGVTaGVsbDtcbiAgICAgIHdvcmtJblByb2dyZXNzID0gbnVsbDtcbiAgICB9XG4gICAgZnVuY3Rpb24gY29tbWl0Um9vdChcbiAgICAgIHJvb3QsXG4gICAgICBmaW5pc2hlZFdvcmssXG4gICAgICBsYW5lcyxcbiAgICAgIHJlY292ZXJhYmxlRXJyb3JzLFxuICAgICAgdHJhbnNpdGlvbnMsXG4gICAgICBkaWRJbmNsdWRlUmVuZGVyUGhhc2VVcGRhdGUsXG4gICAgICBzcGF3bmVkTGFuZSxcbiAgICAgIHVwZGF0ZWRMYW5lcyxcbiAgICAgIHN1c3BlbmRlZFJldHJ5TGFuZXNcbiAgICApIHtcbiAgICAgIHJvb3QuY2FuY2VsUGVuZGluZ0NvbW1pdCA9IG51bGw7XG4gICAgICBkbyBmbHVzaFBlbmRpbmdFZmZlY3RzKCk7XG4gICAgICB3aGlsZSAocGVuZGluZ0VmZmVjdHNTdGF0dXMgIT09IE5PX1BFTkRJTkdfRUZGRUNUUyk7XG4gICAgICBSZWFjdFN0cmljdE1vZGVXYXJuaW5ncy5mbHVzaExlZ2FjeUNvbnRleHRXYXJuaW5nKCk7XG4gICAgICBSZWFjdFN0cmljdE1vZGVXYXJuaW5ncy5mbHVzaFBlbmRpbmdVbnNhZmVMaWZlY3ljbGVXYXJuaW5ncygpO1xuICAgICAgaWYgKChleGVjdXRpb25Db250ZXh0ICYgKFJlbmRlckNvbnRleHQgfCBDb21taXRDb250ZXh0KSkgIT09IE5vQ29udGV4dClcbiAgICAgICAgdGhyb3cgRXJyb3IoXCJTaG91bGQgbm90IGFscmVhZHkgYmUgd29ya2luZy5cIik7XG4gICAgICBudWxsICE9PSBpbmplY3RlZFByb2ZpbGluZ0hvb2tzICYmXG4gICAgICAgIFwiZnVuY3Rpb25cIiA9PT0gdHlwZW9mIGluamVjdGVkUHJvZmlsaW5nSG9va3MubWFya0NvbW1pdFN0YXJ0ZWQgJiZcbiAgICAgICAgaW5qZWN0ZWRQcm9maWxpbmdIb29rcy5tYXJrQ29tbWl0U3RhcnRlZChsYW5lcyk7XG4gICAgICBpZiAobnVsbCA9PT0gZmluaXNoZWRXb3JrKSBtYXJrQ29tbWl0U3RvcHBlZCgpO1xuICAgICAgZWxzZSB7XG4gICAgICAgIDAgPT09IGxhbmVzICYmXG4gICAgICAgICAgY29uc29sZS5lcnJvcihcbiAgICAgICAgICAgIFwiZmluaXNoZWRMYW5lcyBzaG91bGQgbm90IGJlIGVtcHR5IGR1cmluZyBhIGNvbW1pdC4gVGhpcyBpcyBhIGJ1ZyBpbiBSZWFjdC5cIlxuICAgICAgICAgICk7XG4gICAgICAgIGlmIChmaW5pc2hlZFdvcmsgPT09IHJvb3QuY3VycmVudClcbiAgICAgICAgICB0aHJvdyBFcnJvcihcbiAgICAgICAgICAgIFwiQ2Fubm90IGNvbW1pdCB0aGUgc2FtZSB0cmVlIGFzIGJlZm9yZS4gVGhpcyBlcnJvciBpcyBsaWtlbHkgY2F1c2VkIGJ5IGEgYnVnIGluIFJlYWN0LiBQbGVhc2UgZmlsZSBhbiBpc3N1ZS5cIlxuICAgICAgICAgICk7XG4gICAgICAgIGRpZEluY2x1ZGVSZW5kZXJQaGFzZVVwZGF0ZSA9XG4gICAgICAgICAgZmluaXNoZWRXb3JrLmxhbmVzIHwgZmluaXNoZWRXb3JrLmNoaWxkTGFuZXM7XG4gICAgICAgIGRpZEluY2x1ZGVSZW5kZXJQaGFzZVVwZGF0ZSB8PSBjb25jdXJyZW50bHlVcGRhdGVkTGFuZXM7XG4gICAgICAgIG1hcmtSb290RmluaXNoZWQoXG4gICAgICAgICAgcm9vdCxcbiAgICAgICAgICBsYW5lcyxcbiAgICAgICAgICBkaWRJbmNsdWRlUmVuZGVyUGhhc2VVcGRhdGUsXG4gICAgICAgICAgc3Bhd25lZExhbmUsXG4gICAgICAgICAgdXBkYXRlZExhbmVzLFxuICAgICAgICAgIHN1c3BlbmRlZFJldHJ5TGFuZXNcbiAgICAgICAgKTtcbiAgICAgICAgcm9vdCA9PT0gd29ya0luUHJvZ3Jlc3NSb290ICYmXG4gICAgICAgICAgKCh3b3JrSW5Qcm9ncmVzcyA9IHdvcmtJblByb2dyZXNzUm9vdCA9IG51bGwpLFxuICAgICAgICAgICh3b3JrSW5Qcm9ncmVzc1Jvb3RSZW5kZXJMYW5lcyA9IDApKTtcbiAgICAgICAgcGVuZGluZ0ZpbmlzaGVkV29yayA9IGZpbmlzaGVkV29yaztcbiAgICAgICAgcGVuZGluZ0VmZmVjdHNSb290ID0gcm9vdDtcbiAgICAgICAgcGVuZGluZ0VmZmVjdHNMYW5lcyA9IGxhbmVzO1xuICAgICAgICBwZW5kaW5nRWZmZWN0c1JlbWFpbmluZ0xhbmVzID0gZGlkSW5jbHVkZVJlbmRlclBoYXNlVXBkYXRlO1xuICAgICAgICBwZW5kaW5nUGFzc2l2ZVRyYW5zaXRpb25zID0gdHJhbnNpdGlvbnM7XG4gICAgICAgIHBlbmRpbmdSZWNvdmVyYWJsZUVycm9ycyA9IHJlY292ZXJhYmxlRXJyb3JzO1xuICAgICAgICAwICE9PSAoZmluaXNoZWRXb3JrLnN1YnRyZWVGbGFncyAmIDEwMjU2KSB8fFxuICAgICAgICAwICE9PSAoZmluaXNoZWRXb3JrLmZsYWdzICYgMTAyNTYpXG4gICAgICAgICAgPyAoKHJvb3QuY2FsbGJhY2tOb2RlID0gbnVsbCksXG4gICAgICAgICAgICAocm9vdC5jYWxsYmFja1ByaW9yaXR5ID0gMCksXG4gICAgICAgICAgICBzY2hlZHVsZUNhbGxiYWNrJDEoTm9ybWFsUHJpb3JpdHkkMSwgZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICBmbHVzaFBhc3NpdmVFZmZlY3RzKCEwKTtcbiAgICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgICAgICB9KSlcbiAgICAgICAgICA6ICgocm9vdC5jYWxsYmFja05vZGUgPSBudWxsKSwgKHJvb3QuY2FsbGJhY2tQcmlvcml0eSA9IDApKTtcbiAgICAgICAgY29tbWl0U3RhcnRUaW1lID0gbm93KCk7XG4gICAgICAgIHJlY292ZXJhYmxlRXJyb3JzID0gMCAhPT0gKGZpbmlzaGVkV29yay5mbGFncyAmIDEzODc4KTtcbiAgICAgICAgaWYgKDAgIT09IChmaW5pc2hlZFdvcmsuc3VidHJlZUZsYWdzICYgMTM4NzgpIHx8IHJlY292ZXJhYmxlRXJyb3JzKSB7XG4gICAgICAgICAgcmVjb3ZlcmFibGVFcnJvcnMgPSBSZWFjdFNoYXJlZEludGVybmFscy5UO1xuICAgICAgICAgIFJlYWN0U2hhcmVkSW50ZXJuYWxzLlQgPSBudWxsO1xuICAgICAgICAgIHRyYW5zaXRpb25zID0gUmVhY3RET01TaGFyZWRJbnRlcm5hbHMucDtcbiAgICAgICAgICBSZWFjdERPTVNoYXJlZEludGVybmFscy5wID0gRGlzY3JldGVFdmVudFByaW9yaXR5O1xuICAgICAgICAgIHNwYXduZWRMYW5lID0gZXhlY3V0aW9uQ29udGV4dDtcbiAgICAgICAgICBleGVjdXRpb25Db250ZXh0IHw9IENvbW1pdENvbnRleHQ7XG4gICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIGNvbW1pdEJlZm9yZU11dGF0aW9uRWZmZWN0cyhyb290LCBmaW5pc2hlZFdvcmssIGxhbmVzKTtcbiAgICAgICAgICB9IGZpbmFsbHkge1xuICAgICAgICAgICAgKGV4ZWN1dGlvbkNvbnRleHQgPSBzcGF3bmVkTGFuZSksXG4gICAgICAgICAgICAgIChSZWFjdERPTVNoYXJlZEludGVybmFscy5wID0gdHJhbnNpdGlvbnMpLFxuICAgICAgICAgICAgICAoUmVhY3RTaGFyZWRJbnRlcm5hbHMuVCA9IHJlY292ZXJhYmxlRXJyb3JzKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcGVuZGluZ0VmZmVjdHNTdGF0dXMgPSBQRU5ESU5HX01VVEFUSU9OX1BIQVNFO1xuICAgICAgICBmbHVzaE11dGF0aW9uRWZmZWN0cygpO1xuICAgICAgICBmbHVzaExheW91dEVmZmVjdHMoKTtcbiAgICAgICAgZmx1c2hTcGF3bmVkV29yaygpO1xuICAgICAgfVxuICAgIH1cbiAgICBmdW5jdGlvbiBmbHVzaE11dGF0aW9uRWZmZWN0cygpIHtcbiAgICAgIGlmIChwZW5kaW5nRWZmZWN0c1N0YXR1cyA9PT0gUEVORElOR19NVVRBVElPTl9QSEFTRSkge1xuICAgICAgICBwZW5kaW5nRWZmZWN0c1N0YXR1cyA9IE5PX1BFTkRJTkdfRUZGRUNUUztcbiAgICAgICAgdmFyIHJvb3QgPSBwZW5kaW5nRWZmZWN0c1Jvb3QsXG4gICAgICAgICAgZmluaXNoZWRXb3JrID0gcGVuZGluZ0ZpbmlzaGVkV29yayxcbiAgICAgICAgICBsYW5lcyA9IHBlbmRpbmdFZmZlY3RzTGFuZXMsXG4gICAgICAgICAgcm9vdE11dGF0aW9uSGFzRWZmZWN0ID0gMCAhPT0gKGZpbmlzaGVkV29yay5mbGFncyAmIDEzODc4KTtcbiAgICAgICAgaWYgKFxuICAgICAgICAgIDAgIT09IChmaW5pc2hlZFdvcmsuc3VidHJlZUZsYWdzICYgMTM4NzgpIHx8XG4gICAgICAgICAgcm9vdE11dGF0aW9uSGFzRWZmZWN0XG4gICAgICAgICkge1xuICAgICAgICAgIHJvb3RNdXRhdGlvbkhhc0VmZmVjdCA9IFJlYWN0U2hhcmVkSW50ZXJuYWxzLlQ7XG4gICAgICAgICAgUmVhY3RTaGFyZWRJbnRlcm5hbHMuVCA9IG51bGw7XG4gICAgICAgICAgdmFyIHByZXZpb3VzUHJpb3JpdHkgPSBSZWFjdERPTVNoYXJlZEludGVybmFscy5wO1xuICAgICAgICAgIFJlYWN0RE9NU2hhcmVkSW50ZXJuYWxzLnAgPSBEaXNjcmV0ZUV2ZW50UHJpb3JpdHk7XG4gICAgICAgICAgdmFyIHByZXZFeGVjdXRpb25Db250ZXh0ID0gZXhlY3V0aW9uQ29udGV4dDtcbiAgICAgICAgICBleGVjdXRpb25Db250ZXh0IHw9IENvbW1pdENvbnRleHQ7XG4gICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIGluUHJvZ3Jlc3NMYW5lcyA9IGxhbmVzO1xuICAgICAgICAgICAgaW5Qcm9ncmVzc1Jvb3QgPSByb290O1xuICAgICAgICAgICAgY29tbWl0TXV0YXRpb25FZmZlY3RzT25GaWJlcihmaW5pc2hlZFdvcmssIHJvb3QpO1xuICAgICAgICAgICAgaW5Qcm9ncmVzc1Jvb3QgPSBpblByb2dyZXNzTGFuZXMgPSBudWxsO1xuICAgICAgICAgICAgbGFuZXMgPSBzZWxlY3Rpb25JbmZvcm1hdGlvbjtcbiAgICAgICAgICAgIHZhciBjdXJGb2N1c2VkRWxlbSA9IGdldEFjdGl2ZUVsZW1lbnREZWVwKHJvb3QuY29udGFpbmVySW5mbyksXG4gICAgICAgICAgICAgIHByaW9yRm9jdXNlZEVsZW0gPSBsYW5lcy5mb2N1c2VkRWxlbSxcbiAgICAgICAgICAgICAgcHJpb3JTZWxlY3Rpb25SYW5nZSA9IGxhbmVzLnNlbGVjdGlvblJhbmdlO1xuICAgICAgICAgICAgaWYgKFxuICAgICAgICAgICAgICBjdXJGb2N1c2VkRWxlbSAhPT0gcHJpb3JGb2N1c2VkRWxlbSAmJlxuICAgICAgICAgICAgICBwcmlvckZvY3VzZWRFbGVtICYmXG4gICAgICAgICAgICAgIHByaW9yRm9jdXNlZEVsZW0ub3duZXJEb2N1bWVudCAmJlxuICAgICAgICAgICAgICBjb250YWluc05vZGUoXG4gICAgICAgICAgICAgICAgcHJpb3JGb2N1c2VkRWxlbS5vd25lckRvY3VtZW50LmRvY3VtZW50RWxlbWVudCxcbiAgICAgICAgICAgICAgICBwcmlvckZvY3VzZWRFbGVtXG4gICAgICAgICAgICAgIClcbiAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICBpZiAoXG4gICAgICAgICAgICAgICAgbnVsbCAhPT0gcHJpb3JTZWxlY3Rpb25SYW5nZSAmJlxuICAgICAgICAgICAgICAgIGhhc1NlbGVjdGlvbkNhcGFiaWxpdGllcyhwcmlvckZvY3VzZWRFbGVtKVxuICAgICAgICAgICAgICApIHtcbiAgICAgICAgICAgICAgICB2YXIgc3RhcnQgPSBwcmlvclNlbGVjdGlvblJhbmdlLnN0YXJ0LFxuICAgICAgICAgICAgICAgICAgZW5kID0gcHJpb3JTZWxlY3Rpb25SYW5nZS5lbmQ7XG4gICAgICAgICAgICAgICAgdm9pZCAwID09PSBlbmQgJiYgKGVuZCA9IHN0YXJ0KTtcbiAgICAgICAgICAgICAgICBpZiAoXCJzZWxlY3Rpb25TdGFydFwiIGluIHByaW9yRm9jdXNlZEVsZW0pXG4gICAgICAgICAgICAgICAgICAocHJpb3JGb2N1c2VkRWxlbS5zZWxlY3Rpb25TdGFydCA9IHN0YXJ0KSxcbiAgICAgICAgICAgICAgICAgICAgKHByaW9yRm9jdXNlZEVsZW0uc2VsZWN0aW9uRW5kID0gTWF0aC5taW4oXG4gICAgICAgICAgICAgICAgICAgICAgZW5kLFxuICAgICAgICAgICAgICAgICAgICAgIHByaW9yRm9jdXNlZEVsZW0udmFsdWUubGVuZ3RoXG4gICAgICAgICAgICAgICAgICAgICkpO1xuICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgdmFyIGRvYyA9IHByaW9yRm9jdXNlZEVsZW0ub3duZXJEb2N1bWVudCB8fCBkb2N1bWVudCxcbiAgICAgICAgICAgICAgICAgICAgd2luID0gKGRvYyAmJiBkb2MuZGVmYXVsdFZpZXcpIHx8IHdpbmRvdztcbiAgICAgICAgICAgICAgICAgIGlmICh3aW4uZ2V0U2VsZWN0aW9uKSB7XG4gICAgICAgICAgICAgICAgICAgIHZhciBzZWxlY3Rpb24gPSB3aW4uZ2V0U2VsZWN0aW9uKCksXG4gICAgICAgICAgICAgICAgICAgICAgbGVuZ3RoID0gcHJpb3JGb2N1c2VkRWxlbS50ZXh0Q29udGVudC5sZW5ndGgsXG4gICAgICAgICAgICAgICAgICAgICAgc3RhcnQkanNjb21wJDAgPSBNYXRoLm1pbihcbiAgICAgICAgICAgICAgICAgICAgICAgIHByaW9yU2VsZWN0aW9uUmFuZ2Uuc3RhcnQsXG4gICAgICAgICAgICAgICAgICAgICAgICBsZW5ndGhcbiAgICAgICAgICAgICAgICAgICAgICApLFxuICAgICAgICAgICAgICAgICAgICAgIGVuZCRqc2NvbXAkMCA9XG4gICAgICAgICAgICAgICAgICAgICAgICB2b2lkIDAgPT09IHByaW9yU2VsZWN0aW9uUmFuZ2UuZW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgID8gc3RhcnQkanNjb21wJDBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgOiBNYXRoLm1pbihwcmlvclNlbGVjdGlvblJhbmdlLmVuZCwgbGVuZ3RoKTtcbiAgICAgICAgICAgICAgICAgICAgIXNlbGVjdGlvbi5leHRlbmQgJiZcbiAgICAgICAgICAgICAgICAgICAgICBzdGFydCRqc2NvbXAkMCA+IGVuZCRqc2NvbXAkMCAmJlxuICAgICAgICAgICAgICAgICAgICAgICgoY3VyRm9jdXNlZEVsZW0gPSBlbmQkanNjb21wJDApLFxuICAgICAgICAgICAgICAgICAgICAgIChlbmQkanNjb21wJDAgPSBzdGFydCRqc2NvbXAkMCksXG4gICAgICAgICAgICAgICAgICAgICAgKHN0YXJ0JGpzY29tcCQwID0gY3VyRm9jdXNlZEVsZW0pKTtcbiAgICAgICAgICAgICAgICAgICAgdmFyIHN0YXJ0TWFya2VyID0gZ2V0Tm9kZUZvckNoYXJhY3Rlck9mZnNldChcbiAgICAgICAgICAgICAgICAgICAgICAgIHByaW9yRm9jdXNlZEVsZW0sXG4gICAgICAgICAgICAgICAgICAgICAgICBzdGFydCRqc2NvbXAkMFxuICAgICAgICAgICAgICAgICAgICAgICksXG4gICAgICAgICAgICAgICAgICAgICAgZW5kTWFya2VyID0gZ2V0Tm9kZUZvckNoYXJhY3Rlck9mZnNldChcbiAgICAgICAgICAgICAgICAgICAgICAgIHByaW9yRm9jdXNlZEVsZW0sXG4gICAgICAgICAgICAgICAgICAgICAgICBlbmQkanNjb21wJDBcbiAgICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgICAgICBpZiAoXG4gICAgICAgICAgICAgICAgICAgICAgc3RhcnRNYXJrZXIgJiZcbiAgICAgICAgICAgICAgICAgICAgICBlbmRNYXJrZXIgJiZcbiAgICAgICAgICAgICAgICAgICAgICAoMSAhPT0gc2VsZWN0aW9uLnJhbmdlQ291bnQgfHxcbiAgICAgICAgICAgICAgICAgICAgICAgIHNlbGVjdGlvbi5hbmNob3JOb2RlICE9PSBzdGFydE1hcmtlci5ub2RlIHx8XG4gICAgICAgICAgICAgICAgICAgICAgICBzZWxlY3Rpb24uYW5jaG9yT2Zmc2V0ICE9PSBzdGFydE1hcmtlci5vZmZzZXQgfHxcbiAgICAgICAgICAgICAgICAgICAgICAgIHNlbGVjdGlvbi5mb2N1c05vZGUgIT09IGVuZE1hcmtlci5ub2RlIHx8XG4gICAgICAgICAgICAgICAgICAgICAgICBzZWxlY3Rpb24uZm9jdXNPZmZzZXQgIT09IGVuZE1hcmtlci5vZmZzZXQpXG4gICAgICAgICAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICAgICAgICAgIHZhciByYW5nZSA9IGRvYy5jcmVhdGVSYW5nZSgpO1xuICAgICAgICAgICAgICAgICAgICAgIHJhbmdlLnNldFN0YXJ0KHN0YXJ0TWFya2VyLm5vZGUsIHN0YXJ0TWFya2VyLm9mZnNldCk7XG4gICAgICAgICAgICAgICAgICAgICAgc2VsZWN0aW9uLnJlbW92ZUFsbFJhbmdlcygpO1xuICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0JGpzY29tcCQwID4gZW5kJGpzY29tcCQwXG4gICAgICAgICAgICAgICAgICAgICAgICA/IChzZWxlY3Rpb24uYWRkUmFuZ2UocmFuZ2UpLFxuICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxlY3Rpb24uZXh0ZW5kKGVuZE1hcmtlci5ub2RlLCBlbmRNYXJrZXIub2Zmc2V0KSlcbiAgICAgICAgICAgICAgICAgICAgICAgIDogKHJhbmdlLnNldEVuZChlbmRNYXJrZXIubm9kZSwgZW5kTWFya2VyLm9mZnNldCksXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGVjdGlvbi5hZGRSYW5nZShyYW5nZSkpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIGRvYyA9IFtdO1xuICAgICAgICAgICAgICBmb3IgKFxuICAgICAgICAgICAgICAgIHNlbGVjdGlvbiA9IHByaW9yRm9jdXNlZEVsZW07XG4gICAgICAgICAgICAgICAgKHNlbGVjdGlvbiA9IHNlbGVjdGlvbi5wYXJlbnROb2RlKTtcblxuICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgMSA9PT0gc2VsZWN0aW9uLm5vZGVUeXBlICYmXG4gICAgICAgICAgICAgICAgICBkb2MucHVzaCh7XG4gICAgICAgICAgICAgICAgICAgIGVsZW1lbnQ6IHNlbGVjdGlvbixcbiAgICAgICAgICAgICAgICAgICAgbGVmdDogc2VsZWN0aW9uLnNjcm9sbExlZnQsXG4gICAgICAgICAgICAgICAgICAgIHRvcDogc2VsZWN0aW9uLnNjcm9sbFRvcFxuICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgIFwiZnVuY3Rpb25cIiA9PT0gdHlwZW9mIHByaW9yRm9jdXNlZEVsZW0uZm9jdXMgJiZcbiAgICAgICAgICAgICAgICBwcmlvckZvY3VzZWRFbGVtLmZvY3VzKCk7XG4gICAgICAgICAgICAgIGZvciAoXG4gICAgICAgICAgICAgICAgcHJpb3JGb2N1c2VkRWxlbSA9IDA7XG4gICAgICAgICAgICAgICAgcHJpb3JGb2N1c2VkRWxlbSA8IGRvYy5sZW5ndGg7XG4gICAgICAgICAgICAgICAgcHJpb3JGb2N1c2VkRWxlbSsrXG4gICAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICAgIHZhciBpbmZvID0gZG9jW3ByaW9yRm9jdXNlZEVsZW1dO1xuICAgICAgICAgICAgICAgIGluZm8uZWxlbWVudC5zY3JvbGxMZWZ0ID0gaW5mby5sZWZ0O1xuICAgICAgICAgICAgICAgIGluZm8uZWxlbWVudC5zY3JvbGxUb3AgPSBpbmZvLnRvcDtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgX2VuYWJsZWQgPSAhIWV2ZW50c0VuYWJsZWQ7XG4gICAgICAgICAgICBzZWxlY3Rpb25JbmZvcm1hdGlvbiA9IGV2ZW50c0VuYWJsZWQgPSBudWxsO1xuICAgICAgICAgIH0gZmluYWxseSB7XG4gICAgICAgICAgICAoZXhlY3V0aW9uQ29udGV4dCA9IHByZXZFeGVjdXRpb25Db250ZXh0KSxcbiAgICAgICAgICAgICAgKFJlYWN0RE9NU2hhcmVkSW50ZXJuYWxzLnAgPSBwcmV2aW91c1ByaW9yaXR5KSxcbiAgICAgICAgICAgICAgKFJlYWN0U2hhcmVkSW50ZXJuYWxzLlQgPSByb290TXV0YXRpb25IYXNFZmZlY3QpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByb290LmN1cnJlbnQgPSBmaW5pc2hlZFdvcms7XG4gICAgICAgIHBlbmRpbmdFZmZlY3RzU3RhdHVzID0gUEVORElOR19MQVlPVVRfUEhBU0U7XG4gICAgICB9XG4gICAgfVxuICAgIGZ1bmN0aW9uIGZsdXNoTGF5b3V0RWZmZWN0cygpIHtcbiAgICAgIGlmIChwZW5kaW5nRWZmZWN0c1N0YXR1cyA9PT0gUEVORElOR19MQVlPVVRfUEhBU0UpIHtcbiAgICAgICAgcGVuZGluZ0VmZmVjdHNTdGF0dXMgPSBOT19QRU5ESU5HX0VGRkVDVFM7XG4gICAgICAgIHZhciByb290ID0gcGVuZGluZ0VmZmVjdHNSb290LFxuICAgICAgICAgIGZpbmlzaGVkV29yayA9IHBlbmRpbmdGaW5pc2hlZFdvcmssXG4gICAgICAgICAgbGFuZXMgPSBwZW5kaW5nRWZmZWN0c0xhbmVzLFxuICAgICAgICAgIHJvb3RIYXNMYXlvdXRFZmZlY3QgPSAwICE9PSAoZmluaXNoZWRXb3JrLmZsYWdzICYgODc3Mik7XG4gICAgICAgIGlmICgwICE9PSAoZmluaXNoZWRXb3JrLnN1YnRyZWVGbGFncyAmIDg3NzIpIHx8IHJvb3RIYXNMYXlvdXRFZmZlY3QpIHtcbiAgICAgICAgICByb290SGFzTGF5b3V0RWZmZWN0ID0gUmVhY3RTaGFyZWRJbnRlcm5hbHMuVDtcbiAgICAgICAgICBSZWFjdFNoYXJlZEludGVybmFscy5UID0gbnVsbDtcbiAgICAgICAgICB2YXIgcHJldmlvdXNQcmlvcml0eSA9IFJlYWN0RE9NU2hhcmVkSW50ZXJuYWxzLnA7XG4gICAgICAgICAgUmVhY3RET01TaGFyZWRJbnRlcm5hbHMucCA9IERpc2NyZXRlRXZlbnRQcmlvcml0eTtcbiAgICAgICAgICB2YXIgcHJldkV4ZWN1dGlvbkNvbnRleHQgPSBleGVjdXRpb25Db250ZXh0O1xuICAgICAgICAgIGV4ZWN1dGlvbkNvbnRleHQgfD0gQ29tbWl0Q29udGV4dDtcbiAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgbnVsbCAhPT0gaW5qZWN0ZWRQcm9maWxpbmdIb29rcyAmJlxuICAgICAgICAgICAgICBcImZ1bmN0aW9uXCIgPT09XG4gICAgICAgICAgICAgICAgdHlwZW9mIGluamVjdGVkUHJvZmlsaW5nSG9va3MubWFya0xheW91dEVmZmVjdHNTdGFydGVkICYmXG4gICAgICAgICAgICAgIGluamVjdGVkUHJvZmlsaW5nSG9va3MubWFya0xheW91dEVmZmVjdHNTdGFydGVkKGxhbmVzKSxcbiAgICAgICAgICAgICAgKGluUHJvZ3Jlc3NMYW5lcyA9IGxhbmVzKSxcbiAgICAgICAgICAgICAgKGluUHJvZ3Jlc3NSb290ID0gcm9vdCksXG4gICAgICAgICAgICAgIGNvbW1pdExheW91dEVmZmVjdE9uRmliZXIoXG4gICAgICAgICAgICAgICAgcm9vdCxcbiAgICAgICAgICAgICAgICBmaW5pc2hlZFdvcmsuYWx0ZXJuYXRlLFxuICAgICAgICAgICAgICAgIGZpbmlzaGVkV29ya1xuICAgICAgICAgICAgICApLFxuICAgICAgICAgICAgICAoaW5Qcm9ncmVzc1Jvb3QgPSBpblByb2dyZXNzTGFuZXMgPSBudWxsKSxcbiAgICAgICAgICAgICAgbnVsbCAhPT0gaW5qZWN0ZWRQcm9maWxpbmdIb29rcyAmJlxuICAgICAgICAgICAgICAgIFwiZnVuY3Rpb25cIiA9PT1cbiAgICAgICAgICAgICAgICAgIHR5cGVvZiBpbmplY3RlZFByb2ZpbGluZ0hvb2tzLm1hcmtMYXlvdXRFZmZlY3RzU3RvcHBlZCAmJlxuICAgICAgICAgICAgICAgIGluamVjdGVkUHJvZmlsaW5nSG9va3MubWFya0xheW91dEVmZmVjdHNTdG9wcGVkKCk7XG4gICAgICAgICAgfSBmaW5hbGx5IHtcbiAgICAgICAgICAgIChleGVjdXRpb25Db250ZXh0ID0gcHJldkV4ZWN1dGlvbkNvbnRleHQpLFxuICAgICAgICAgICAgICAoUmVhY3RET01TaGFyZWRJbnRlcm5hbHMucCA9IHByZXZpb3VzUHJpb3JpdHkpLFxuICAgICAgICAgICAgICAoUmVhY3RTaGFyZWRJbnRlcm5hbHMuVCA9IHJvb3RIYXNMYXlvdXRFZmZlY3QpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBwZW5kaW5nRWZmZWN0c1N0YXR1cyA9IFBFTkRJTkdfQUZURVJfTVVUQVRJT05fUEhBU0U7XG4gICAgICB9XG4gICAgfVxuICAgIGZ1bmN0aW9uIGZsdXNoU3Bhd25lZFdvcmsoKSB7XG4gICAgICBpZiAoXG4gICAgICAgIHBlbmRpbmdFZmZlY3RzU3RhdHVzID09PSBQRU5ESU5HX1NQQVdORURfV09SSyB8fFxuICAgICAgICBwZW5kaW5nRWZmZWN0c1N0YXR1cyA9PT0gUEVORElOR19BRlRFUl9NVVRBVElPTl9QSEFTRVxuICAgICAgKSB7XG4gICAgICAgIHBlbmRpbmdFZmZlY3RzU3RhdHVzID0gTk9fUEVORElOR19FRkZFQ1RTO1xuICAgICAgICByZXF1ZXN0UGFpbnQoKTtcbiAgICAgICAgdmFyIHJvb3QgPSBwZW5kaW5nRWZmZWN0c1Jvb3QsXG4gICAgICAgICAgZmluaXNoZWRXb3JrID0gcGVuZGluZ0ZpbmlzaGVkV29yayxcbiAgICAgICAgICBsYW5lcyA9IHBlbmRpbmdFZmZlY3RzTGFuZXMsXG4gICAgICAgICAgcmVjb3ZlcmFibGVFcnJvcnMgPSBwZW5kaW5nUmVjb3ZlcmFibGVFcnJvcnMsXG4gICAgICAgICAgcm9vdERpZEhhdmVQYXNzaXZlRWZmZWN0cyA9XG4gICAgICAgICAgICAwICE9PSAoZmluaXNoZWRXb3JrLnN1YnRyZWVGbGFncyAmIDEwMjU2KSB8fFxuICAgICAgICAgICAgMCAhPT0gKGZpbmlzaGVkV29yay5mbGFncyAmIDEwMjU2KTtcbiAgICAgICAgcm9vdERpZEhhdmVQYXNzaXZlRWZmZWN0c1xuICAgICAgICAgID8gKHBlbmRpbmdFZmZlY3RzU3RhdHVzID0gUEVORElOR19QQVNTSVZFX1BIQVNFKVxuICAgICAgICAgIDogKChwZW5kaW5nRWZmZWN0c1N0YXR1cyA9IE5PX1BFTkRJTkdfRUZGRUNUUyksXG4gICAgICAgICAgICAocGVuZGluZ0ZpbmlzaGVkV29yayA9IHBlbmRpbmdFZmZlY3RzUm9vdCA9IG51bGwpLFxuICAgICAgICAgICAgcmVsZWFzZVJvb3RQb29sZWRDYWNoZShyb290LCByb290LnBlbmRpbmdMYW5lcyksXG4gICAgICAgICAgICAobmVzdGVkUGFzc2l2ZVVwZGF0ZUNvdW50ID0gMCksXG4gICAgICAgICAgICAocm9vdFdpdGhQYXNzaXZlTmVzdGVkVXBkYXRlcyA9IG51bGwpKTtcbiAgICAgICAgdmFyIHJlbWFpbmluZ0xhbmVzID0gcm9vdC5wZW5kaW5nTGFuZXM7XG4gICAgICAgIDAgPT09IHJlbWFpbmluZ0xhbmVzICYmIChsZWdhY3lFcnJvckJvdW5kYXJpZXNUaGF0QWxyZWFkeUZhaWxlZCA9IG51bGwpO1xuICAgICAgICByb290RGlkSGF2ZVBhc3NpdmVFZmZlY3RzIHx8IGNvbW1pdERvdWJsZUludm9rZUVmZmVjdHNJbkRFVihyb290KTtcbiAgICAgICAgcm9vdERpZEhhdmVQYXNzaXZlRWZmZWN0cyA9IGxhbmVzVG9FdmVudFByaW9yaXR5KGxhbmVzKTtcbiAgICAgICAgZmluaXNoZWRXb3JrID0gZmluaXNoZWRXb3JrLnN0YXRlTm9kZTtcbiAgICAgICAgaWYgKFxuICAgICAgICAgIGluamVjdGVkSG9vayAmJlxuICAgICAgICAgIFwiZnVuY3Rpb25cIiA9PT0gdHlwZW9mIGluamVjdGVkSG9vay5vbkNvbW1pdEZpYmVyUm9vdFxuICAgICAgICApXG4gICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIHZhciBkaWRFcnJvciA9IDEyOCA9PT0gKGZpbmlzaGVkV29yay5jdXJyZW50LmZsYWdzICYgMTI4KTtcbiAgICAgICAgICAgIHN3aXRjaCAocm9vdERpZEhhdmVQYXNzaXZlRWZmZWN0cykge1xuICAgICAgICAgICAgICBjYXNlIERpc2NyZXRlRXZlbnRQcmlvcml0eTpcbiAgICAgICAgICAgICAgICB2YXIgc2NoZWR1bGVyUHJpb3JpdHkgPSBJbW1lZGlhdGVQcmlvcml0eTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgY2FzZSBDb250aW51b3VzRXZlbnRQcmlvcml0eTpcbiAgICAgICAgICAgICAgICBzY2hlZHVsZXJQcmlvcml0eSA9IFVzZXJCbG9ja2luZ1ByaW9yaXR5O1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICBjYXNlIERlZmF1bHRFdmVudFByaW9yaXR5OlxuICAgICAgICAgICAgICAgIHNjaGVkdWxlclByaW9yaXR5ID0gTm9ybWFsUHJpb3JpdHkkMTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgY2FzZSBJZGxlRXZlbnRQcmlvcml0eTpcbiAgICAgICAgICAgICAgICBzY2hlZHVsZXJQcmlvcml0eSA9IElkbGVQcmlvcml0eTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICBzY2hlZHVsZXJQcmlvcml0eSA9IE5vcm1hbFByaW9yaXR5JDE7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpbmplY3RlZEhvb2sub25Db21taXRGaWJlclJvb3QoXG4gICAgICAgICAgICAgIHJlbmRlcmVySUQsXG4gICAgICAgICAgICAgIGZpbmlzaGVkV29yayxcbiAgICAgICAgICAgICAgc2NoZWR1bGVyUHJpb3JpdHksXG4gICAgICAgICAgICAgIGRpZEVycm9yXG4gICAgICAgICAgICApO1xuICAgICAgICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgICAgICAgaGFzTG9nZ2VkRXJyb3IgfHxcbiAgICAgICAgICAgICAgKChoYXNMb2dnZWRFcnJvciA9ICEwKSxcbiAgICAgICAgICAgICAgY29uc29sZS5lcnJvcihcbiAgICAgICAgICAgICAgICBcIlJlYWN0IGluc3RydW1lbnRhdGlvbiBlbmNvdW50ZXJlZCBhbiBlcnJvcjogJXNcIixcbiAgICAgICAgICAgICAgICBlcnJcbiAgICAgICAgICAgICAgKSk7XG4gICAgICAgICAgfVxuICAgICAgICBpc0RldlRvb2xzUHJlc2VudCAmJiByb290Lm1lbW9pemVkVXBkYXRlcnMuY2xlYXIoKTtcbiAgICAgICAgb25Db21taXRSb290KCk7XG4gICAgICAgIGlmIChudWxsICE9PSByZWNvdmVyYWJsZUVycm9ycykge1xuICAgICAgICAgIGRpZEVycm9yID0gUmVhY3RTaGFyZWRJbnRlcm5hbHMuVDtcbiAgICAgICAgICBzY2hlZHVsZXJQcmlvcml0eSA9IFJlYWN0RE9NU2hhcmVkSW50ZXJuYWxzLnA7XG4gICAgICAgICAgUmVhY3RET01TaGFyZWRJbnRlcm5hbHMucCA9IERpc2NyZXRlRXZlbnRQcmlvcml0eTtcbiAgICAgICAgICBSZWFjdFNoYXJlZEludGVybmFscy5UID0gbnVsbDtcbiAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgdmFyIG9uUmVjb3ZlcmFibGVFcnJvciA9IHJvb3Qub25SZWNvdmVyYWJsZUVycm9yO1xuICAgICAgICAgICAgZm9yIChcbiAgICAgICAgICAgICAgZmluaXNoZWRXb3JrID0gMDtcbiAgICAgICAgICAgICAgZmluaXNoZWRXb3JrIDwgcmVjb3ZlcmFibGVFcnJvcnMubGVuZ3RoO1xuICAgICAgICAgICAgICBmaW5pc2hlZFdvcmsrK1xuICAgICAgICAgICAgKSB7XG4gICAgICAgICAgICAgIHZhciByZWNvdmVyYWJsZUVycm9yID0gcmVjb3ZlcmFibGVFcnJvcnNbZmluaXNoZWRXb3JrXSxcbiAgICAgICAgICAgICAgICBlcnJvckluZm8gPSBtYWtlRXJyb3JJbmZvKHJlY292ZXJhYmxlRXJyb3Iuc3RhY2spO1xuICAgICAgICAgICAgICBydW5XaXRoRmliZXJJbkRFVihcbiAgICAgICAgICAgICAgICByZWNvdmVyYWJsZUVycm9yLnNvdXJjZSxcbiAgICAgICAgICAgICAgICBvblJlY292ZXJhYmxlRXJyb3IsXG4gICAgICAgICAgICAgICAgcmVjb3ZlcmFibGVFcnJvci52YWx1ZSxcbiAgICAgICAgICAgICAgICBlcnJvckluZm9cbiAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9IGZpbmFsbHkge1xuICAgICAgICAgICAgKFJlYWN0U2hhcmVkSW50ZXJuYWxzLlQgPSBkaWRFcnJvciksXG4gICAgICAgICAgICAgIChSZWFjdERPTVNoYXJlZEludGVybmFscy5wID0gc2NoZWR1bGVyUHJpb3JpdHkpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICAwICE9PSAocGVuZGluZ0VmZmVjdHNMYW5lcyAmIDMpICYmIGZsdXNoUGVuZGluZ0VmZmVjdHMoKTtcbiAgICAgICAgZW5zdXJlUm9vdElzU2NoZWR1bGVkKHJvb3QpO1xuICAgICAgICByZW1haW5pbmdMYW5lcyA9IHJvb3QucGVuZGluZ0xhbmVzO1xuICAgICAgICAwICE9PSAobGFuZXMgJiA0MTk0MDkwKSAmJiAwICE9PSAocmVtYWluaW5nTGFuZXMgJiA0MilcbiAgICAgICAgICA/ICgobmVzdGVkVXBkYXRlU2NoZWR1bGVkID0gITApLFxuICAgICAgICAgICAgcm9vdCA9PT0gcm9vdFdpdGhOZXN0ZWRVcGRhdGVzXG4gICAgICAgICAgICAgID8gbmVzdGVkVXBkYXRlQ291bnQrK1xuICAgICAgICAgICAgICA6ICgobmVzdGVkVXBkYXRlQ291bnQgPSAwKSwgKHJvb3RXaXRoTmVzdGVkVXBkYXRlcyA9IHJvb3QpKSlcbiAgICAgICAgICA6IChuZXN0ZWRVcGRhdGVDb3VudCA9IDApO1xuICAgICAgICBmbHVzaFN5bmNXb3JrQWNyb3NzUm9vdHNfaW1wbCgwLCAhMSk7XG4gICAgICAgIG1hcmtDb21taXRTdG9wcGVkKCk7XG4gICAgICB9XG4gICAgfVxuICAgIGZ1bmN0aW9uIG1ha2VFcnJvckluZm8oY29tcG9uZW50U3RhY2spIHtcbiAgICAgIGNvbXBvbmVudFN0YWNrID0geyBjb21wb25lbnRTdGFjazogY29tcG9uZW50U3RhY2sgfTtcbiAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShjb21wb25lbnRTdGFjaywgXCJkaWdlc3RcIiwge1xuICAgICAgICBnZXQ6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICBjb25zb2xlLmVycm9yKFxuICAgICAgICAgICAgJ1lvdSBhcmUgYWNjZXNzaW5nIFwiZGlnZXN0XCIgZnJvbSB0aGUgZXJyb3JJbmZvIG9iamVjdCBwYXNzZWQgdG8gb25SZWNvdmVyYWJsZUVycm9yLiBUaGlzIHByb3BlcnR5IGlzIG5vIGxvbmdlciBwcm92aWRlZCBhcyBwYXJ0IG9mIGVycm9ySW5mbyBidXQgY2FuIGJlIGFjY2Vzc2VkIGFzIGEgcHJvcGVydHkgb2YgdGhlIEVycm9yIGluc3RhbmNlIGl0c2VsZi4nXG4gICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgICByZXR1cm4gY29tcG9uZW50U3RhY2s7XG4gICAgfVxuICAgIGZ1bmN0aW9uIHJlbGVhc2VSb290UG9vbGVkQ2FjaGUocm9vdCwgcmVtYWluaW5nTGFuZXMpIHtcbiAgICAgIDAgPT09IChyb290LnBvb2xlZENhY2hlTGFuZXMgJj0gcmVtYWluaW5nTGFuZXMpICYmXG4gICAgICAgICgocmVtYWluaW5nTGFuZXMgPSByb290LnBvb2xlZENhY2hlKSxcbiAgICAgICAgbnVsbCAhPSByZW1haW5pbmdMYW5lcyAmJlxuICAgICAgICAgICgocm9vdC5wb29sZWRDYWNoZSA9IG51bGwpLCByZWxlYXNlQ2FjaGUocmVtYWluaW5nTGFuZXMpKSk7XG4gICAgfVxuICAgIGZ1bmN0aW9uIGZsdXNoUGVuZGluZ0VmZmVjdHMod2FzRGVsYXllZENvbW1pdCkge1xuICAgICAgZmx1c2hNdXRhdGlvbkVmZmVjdHMoKTtcbiAgICAgIGZsdXNoTGF5b3V0RWZmZWN0cygpO1xuICAgICAgZmx1c2hTcGF3bmVkV29yaygpO1xuICAgICAgcmV0dXJuIGZsdXNoUGFzc2l2ZUVmZmVjdHMod2FzRGVsYXllZENvbW1pdCk7XG4gICAgfVxuICAgIGZ1bmN0aW9uIGZsdXNoUGFzc2l2ZUVmZmVjdHMoKSB7XG4gICAgICBpZiAocGVuZGluZ0VmZmVjdHNTdGF0dXMgIT09IFBFTkRJTkdfUEFTU0lWRV9QSEFTRSkgcmV0dXJuICExO1xuICAgICAgdmFyIHJvb3QgPSBwZW5kaW5nRWZmZWN0c1Jvb3QsXG4gICAgICAgIHJlbWFpbmluZ0xhbmVzID0gcGVuZGluZ0VmZmVjdHNSZW1haW5pbmdMYW5lcztcbiAgICAgIHBlbmRpbmdFZmZlY3RzUmVtYWluaW5nTGFuZXMgPSAwO1xuICAgICAgdmFyIHJlbmRlclByaW9yaXR5ID0gbGFuZXNUb0V2ZW50UHJpb3JpdHkocGVuZGluZ0VmZmVjdHNMYW5lcyksXG4gICAgICAgIHByaW9yaXR5ID1cbiAgICAgICAgICAwID09PSBEZWZhdWx0RXZlbnRQcmlvcml0eSB8fCBEZWZhdWx0RXZlbnRQcmlvcml0eSA+IHJlbmRlclByaW9yaXR5XG4gICAgICAgICAgICA/IERlZmF1bHRFdmVudFByaW9yaXR5XG4gICAgICAgICAgICA6IHJlbmRlclByaW9yaXR5O1xuICAgICAgcmVuZGVyUHJpb3JpdHkgPSBSZWFjdFNoYXJlZEludGVybmFscy5UO1xuICAgICAgdmFyIHByZXZpb3VzUHJpb3JpdHkgPSBSZWFjdERPTVNoYXJlZEludGVybmFscy5wO1xuICAgICAgdHJ5IHtcbiAgICAgICAgUmVhY3RET01TaGFyZWRJbnRlcm5hbHMucCA9IHByaW9yaXR5O1xuICAgICAgICBSZWFjdFNoYXJlZEludGVybmFscy5UID0gbnVsbDtcbiAgICAgICAgcHJpb3JpdHkgPSBwZW5kaW5nUGFzc2l2ZVRyYW5zaXRpb25zO1xuICAgICAgICBwZW5kaW5nUGFzc2l2ZVRyYW5zaXRpb25zID0gbnVsbDtcbiAgICAgICAgdmFyIHJvb3QkanNjb21wJDAgPSBwZW5kaW5nRWZmZWN0c1Jvb3QsXG4gICAgICAgICAgbGFuZXMgPSBwZW5kaW5nRWZmZWN0c0xhbmVzO1xuICAgICAgICBwZW5kaW5nRWZmZWN0c1N0YXR1cyA9IE5PX1BFTkRJTkdfRUZGRUNUUztcbiAgICAgICAgcGVuZGluZ0ZpbmlzaGVkV29yayA9IHBlbmRpbmdFZmZlY3RzUm9vdCA9IG51bGw7XG4gICAgICAgIHBlbmRpbmdFZmZlY3RzTGFuZXMgPSAwO1xuICAgICAgICBpZiAoKGV4ZWN1dGlvbkNvbnRleHQgJiAoUmVuZGVyQ29udGV4dCB8IENvbW1pdENvbnRleHQpKSAhPT0gTm9Db250ZXh0KVxuICAgICAgICAgIHRocm93IEVycm9yKFwiQ2Fubm90IGZsdXNoIHBhc3NpdmUgZWZmZWN0cyB3aGlsZSBhbHJlYWR5IHJlbmRlcmluZy5cIik7XG4gICAgICAgIGlzRmx1c2hpbmdQYXNzaXZlRWZmZWN0cyA9ICEwO1xuICAgICAgICBkaWRTY2hlZHVsZVVwZGF0ZUR1cmluZ1Bhc3NpdmVFZmZlY3RzID0gITE7XG4gICAgICAgIG51bGwgIT09IGluamVjdGVkUHJvZmlsaW5nSG9va3MgJiZcbiAgICAgICAgICBcImZ1bmN0aW9uXCIgPT09XG4gICAgICAgICAgICB0eXBlb2YgaW5qZWN0ZWRQcm9maWxpbmdIb29rcy5tYXJrUGFzc2l2ZUVmZmVjdHNTdGFydGVkICYmXG4gICAgICAgICAgaW5qZWN0ZWRQcm9maWxpbmdIb29rcy5tYXJrUGFzc2l2ZUVmZmVjdHNTdGFydGVkKGxhbmVzKTtcbiAgICAgICAgdmFyIHByZXZFeGVjdXRpb25Db250ZXh0ID0gZXhlY3V0aW9uQ29udGV4dDtcbiAgICAgICAgZXhlY3V0aW9uQ29udGV4dCB8PSBDb21taXRDb250ZXh0O1xuICAgICAgICBjb21taXRQYXNzaXZlVW5tb3VudE9uRmliZXIocm9vdCRqc2NvbXAkMC5jdXJyZW50KTtcbiAgICAgICAgY29tbWl0UGFzc2l2ZU1vdW50T25GaWJlcihcbiAgICAgICAgICByb290JGpzY29tcCQwLFxuICAgICAgICAgIHJvb3QkanNjb21wJDAuY3VycmVudCxcbiAgICAgICAgICBsYW5lcyxcbiAgICAgICAgICBwcmlvcml0eVxuICAgICAgICApO1xuICAgICAgICBudWxsICE9PSBpbmplY3RlZFByb2ZpbGluZ0hvb2tzICYmXG4gICAgICAgICAgXCJmdW5jdGlvblwiID09PVxuICAgICAgICAgICAgdHlwZW9mIGluamVjdGVkUHJvZmlsaW5nSG9va3MubWFya1Bhc3NpdmVFZmZlY3RzU3RvcHBlZCAmJlxuICAgICAgICAgIGluamVjdGVkUHJvZmlsaW5nSG9va3MubWFya1Bhc3NpdmVFZmZlY3RzU3RvcHBlZCgpO1xuICAgICAgICBjb21taXREb3VibGVJbnZva2VFZmZlY3RzSW5ERVYocm9vdCRqc2NvbXAkMCk7XG4gICAgICAgIGV4ZWN1dGlvbkNvbnRleHQgPSBwcmV2RXhlY3V0aW9uQ29udGV4dDtcbiAgICAgICAgZmx1c2hTeW5jV29ya0Fjcm9zc1Jvb3RzX2ltcGwoMCwgITEpO1xuICAgICAgICBkaWRTY2hlZHVsZVVwZGF0ZUR1cmluZ1Bhc3NpdmVFZmZlY3RzXG4gICAgICAgICAgPyByb290JGpzY29tcCQwID09PSByb290V2l0aFBhc3NpdmVOZXN0ZWRVcGRhdGVzXG4gICAgICAgICAgICA/IG5lc3RlZFBhc3NpdmVVcGRhdGVDb3VudCsrXG4gICAgICAgICAgICA6ICgobmVzdGVkUGFzc2l2ZVVwZGF0ZUNvdW50ID0gMCksXG4gICAgICAgICAgICAgIChyb290V2l0aFBhc3NpdmVOZXN0ZWRVcGRhdGVzID0gcm9vdCRqc2NvbXAkMCkpXG4gICAgICAgICAgOiAobmVzdGVkUGFzc2l2ZVVwZGF0ZUNvdW50ID0gMCk7XG4gICAgICAgIGRpZFNjaGVkdWxlVXBkYXRlRHVyaW5nUGFzc2l2ZUVmZmVjdHMgPSBpc0ZsdXNoaW5nUGFzc2l2ZUVmZmVjdHMgPSAhMTtcbiAgICAgICAgaWYgKFxuICAgICAgICAgIGluamVjdGVkSG9vayAmJlxuICAgICAgICAgIFwiZnVuY3Rpb25cIiA9PT0gdHlwZW9mIGluamVjdGVkSG9vay5vblBvc3RDb21taXRGaWJlclJvb3RcbiAgICAgICAgKVxuICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICBpbmplY3RlZEhvb2sub25Qb3N0Q29tbWl0RmliZXJSb290KHJlbmRlcmVySUQsIHJvb3QkanNjb21wJDApO1xuICAgICAgICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgICAgICAgaGFzTG9nZ2VkRXJyb3IgfHxcbiAgICAgICAgICAgICAgKChoYXNMb2dnZWRFcnJvciA9ICEwKSxcbiAgICAgICAgICAgICAgY29uc29sZS5lcnJvcihcbiAgICAgICAgICAgICAgICBcIlJlYWN0IGluc3RydW1lbnRhdGlvbiBlbmNvdW50ZXJlZCBhbiBlcnJvcjogJXNcIixcbiAgICAgICAgICAgICAgICBlcnJcbiAgICAgICAgICAgICAgKSk7XG4gICAgICAgICAgfVxuICAgICAgICB2YXIgc3RhdGVOb2RlID0gcm9vdCRqc2NvbXAkMC5jdXJyZW50LnN0YXRlTm9kZTtcbiAgICAgICAgc3RhdGVOb2RlLmVmZmVjdER1cmF0aW9uID0gMDtcbiAgICAgICAgc3RhdGVOb2RlLnBhc3NpdmVFZmZlY3REdXJhdGlvbiA9IDA7XG4gICAgICAgIHJldHVybiAhMDtcbiAgICAgIH0gZmluYWxseSB7XG4gICAgICAgIChSZWFjdERPTVNoYXJlZEludGVybmFscy5wID0gcHJldmlvdXNQcmlvcml0eSksXG4gICAgICAgICAgKFJlYWN0U2hhcmVkSW50ZXJuYWxzLlQgPSByZW5kZXJQcmlvcml0eSksXG4gICAgICAgICAgcmVsZWFzZVJvb3RQb29sZWRDYWNoZShyb290LCByZW1haW5pbmdMYW5lcyk7XG4gICAgICB9XG4gICAgfVxuICAgIGZ1bmN0aW9uIGNhcHR1cmVDb21taXRQaGFzZUVycm9yT25Sb290KHJvb3RGaWJlciwgc291cmNlRmliZXIsIGVycm9yKSB7XG4gICAgICBzb3VyY2VGaWJlciA9IGNyZWF0ZUNhcHR1cmVkVmFsdWVBdEZpYmVyKGVycm9yLCBzb3VyY2VGaWJlcik7XG4gICAgICBzb3VyY2VGaWJlciA9IGNyZWF0ZVJvb3RFcnJvclVwZGF0ZShyb290RmliZXIuc3RhdGVOb2RlLCBzb3VyY2VGaWJlciwgMik7XG4gICAgICByb290RmliZXIgPSBlbnF1ZXVlVXBkYXRlKHJvb3RGaWJlciwgc291cmNlRmliZXIsIDIpO1xuICAgICAgbnVsbCAhPT0gcm9vdEZpYmVyICYmXG4gICAgICAgIChtYXJrUm9vdFVwZGF0ZWQkMShyb290RmliZXIsIDIpLCBlbnN1cmVSb290SXNTY2hlZHVsZWQocm9vdEZpYmVyKSk7XG4gICAgfVxuICAgIGZ1bmN0aW9uIGNhcHR1cmVDb21taXRQaGFzZUVycm9yKFxuICAgICAgc291cmNlRmliZXIsXG4gICAgICBuZWFyZXN0TW91bnRlZEFuY2VzdG9yLFxuICAgICAgZXJyb3JcbiAgICApIHtcbiAgICAgIGlzUnVubmluZ0luc2VydGlvbkVmZmVjdCA9ICExO1xuICAgICAgaWYgKDMgPT09IHNvdXJjZUZpYmVyLnRhZylcbiAgICAgICAgY2FwdHVyZUNvbW1pdFBoYXNlRXJyb3JPblJvb3Qoc291cmNlRmliZXIsIHNvdXJjZUZpYmVyLCBlcnJvcik7XG4gICAgICBlbHNlIHtcbiAgICAgICAgZm9yICg7IG51bGwgIT09IG5lYXJlc3RNb3VudGVkQW5jZXN0b3I7ICkge1xuICAgICAgICAgIGlmICgzID09PSBuZWFyZXN0TW91bnRlZEFuY2VzdG9yLnRhZykge1xuICAgICAgICAgICAgY2FwdHVyZUNvbW1pdFBoYXNlRXJyb3JPblJvb3QoXG4gICAgICAgICAgICAgIG5lYXJlc3RNb3VudGVkQW5jZXN0b3IsXG4gICAgICAgICAgICAgIHNvdXJjZUZpYmVyLFxuICAgICAgICAgICAgICBlcnJvclxuICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICB9XG4gICAgICAgICAgaWYgKDEgPT09IG5lYXJlc3RNb3VudGVkQW5jZXN0b3IudGFnKSB7XG4gICAgICAgICAgICB2YXIgaW5zdGFuY2UgPSBuZWFyZXN0TW91bnRlZEFuY2VzdG9yLnN0YXRlTm9kZTtcbiAgICAgICAgICAgIGlmIChcbiAgICAgICAgICAgICAgXCJmdW5jdGlvblwiID09PVxuICAgICAgICAgICAgICAgIHR5cGVvZiBuZWFyZXN0TW91bnRlZEFuY2VzdG9yLnR5cGUuZ2V0RGVyaXZlZFN0YXRlRnJvbUVycm9yIHx8XG4gICAgICAgICAgICAgIChcImZ1bmN0aW9uXCIgPT09IHR5cGVvZiBpbnN0YW5jZS5jb21wb25lbnREaWRDYXRjaCAmJlxuICAgICAgICAgICAgICAgIChudWxsID09PSBsZWdhY3lFcnJvckJvdW5kYXJpZXNUaGF0QWxyZWFkeUZhaWxlZCB8fFxuICAgICAgICAgICAgICAgICAgIWxlZ2FjeUVycm9yQm91bmRhcmllc1RoYXRBbHJlYWR5RmFpbGVkLmhhcyhpbnN0YW5jZSkpKVxuICAgICAgICAgICAgKSB7XG4gICAgICAgICAgICAgIHNvdXJjZUZpYmVyID0gY3JlYXRlQ2FwdHVyZWRWYWx1ZUF0RmliZXIoZXJyb3IsIHNvdXJjZUZpYmVyKTtcbiAgICAgICAgICAgICAgZXJyb3IgPSBjcmVhdGVDbGFzc0Vycm9yVXBkYXRlKDIpO1xuICAgICAgICAgICAgICBpbnN0YW5jZSA9IGVucXVldWVVcGRhdGUobmVhcmVzdE1vdW50ZWRBbmNlc3RvciwgZXJyb3IsIDIpO1xuICAgICAgICAgICAgICBudWxsICE9PSBpbnN0YW5jZSAmJlxuICAgICAgICAgICAgICAgIChpbml0aWFsaXplQ2xhc3NFcnJvclVwZGF0ZShcbiAgICAgICAgICAgICAgICAgIGVycm9yLFxuICAgICAgICAgICAgICAgICAgaW5zdGFuY2UsXG4gICAgICAgICAgICAgICAgICBuZWFyZXN0TW91bnRlZEFuY2VzdG9yLFxuICAgICAgICAgICAgICAgICAgc291cmNlRmliZXJcbiAgICAgICAgICAgICAgICApLFxuICAgICAgICAgICAgICAgIG1hcmtSb290VXBkYXRlZCQxKGluc3RhbmNlLCAyKSxcbiAgICAgICAgICAgICAgICBlbnN1cmVSb290SXNTY2hlZHVsZWQoaW5zdGFuY2UpKTtcbiAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgICBuZWFyZXN0TW91bnRlZEFuY2VzdG9yID0gbmVhcmVzdE1vdW50ZWRBbmNlc3Rvci5yZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgY29uc29sZS5lcnJvcihcbiAgICAgICAgICBcIkludGVybmFsIFJlYWN0IGVycm9yOiBBdHRlbXB0ZWQgdG8gY2FwdHVyZSBhIGNvbW1pdCBwaGFzZSBlcnJvciBpbnNpZGUgYSBkZXRhY2hlZCB0cmVlLiBUaGlzIGluZGljYXRlcyBhIGJ1ZyBpbiBSZWFjdC4gUG90ZW50aWFsIGNhdXNlcyBpbmNsdWRlIGRlbGV0aW5nIHRoZSBzYW1lIGZpYmVyIG1vcmUgdGhhbiBvbmNlLCBjb21taXR0aW5nIGFuIGFscmVhZHktZmluaXNoZWQgdHJlZSwgb3IgYW4gaW5jb25zaXN0ZW50IHJldHVybiBwb2ludGVyLlxcblxcbkVycm9yIG1lc3NhZ2U6XFxuXFxuJXNcIixcbiAgICAgICAgICBlcnJvclxuICAgICAgICApO1xuICAgICAgfVxuICAgIH1cbiAgICBmdW5jdGlvbiBhdHRhY2hQaW5nTGlzdGVuZXIocm9vdCwgd2FrZWFibGUsIGxhbmVzKSB7XG4gICAgICB2YXIgcGluZ0NhY2hlID0gcm9vdC5waW5nQ2FjaGU7XG4gICAgICBpZiAobnVsbCA9PT0gcGluZ0NhY2hlKSB7XG4gICAgICAgIHBpbmdDYWNoZSA9IHJvb3QucGluZ0NhY2hlID0gbmV3IFBvc3NpYmx5V2Vha01hcCgpO1xuICAgICAgICB2YXIgdGhyZWFkSURzID0gbmV3IFNldCgpO1xuICAgICAgICBwaW5nQ2FjaGUuc2V0KHdha2VhYmxlLCB0aHJlYWRJRHMpO1xuICAgICAgfSBlbHNlXG4gICAgICAgICh0aHJlYWRJRHMgPSBwaW5nQ2FjaGUuZ2V0KHdha2VhYmxlKSksXG4gICAgICAgICAgdm9pZCAwID09PSB0aHJlYWRJRHMgJiZcbiAgICAgICAgICAgICgodGhyZWFkSURzID0gbmV3IFNldCgpKSwgcGluZ0NhY2hlLnNldCh3YWtlYWJsZSwgdGhyZWFkSURzKSk7XG4gICAgICB0aHJlYWRJRHMuaGFzKGxhbmVzKSB8fFxuICAgICAgICAoKHdvcmtJblByb2dyZXNzUm9vdERpZEF0dGFjaFBpbmdMaXN0ZW5lciA9ICEwKSxcbiAgICAgICAgdGhyZWFkSURzLmFkZChsYW5lcyksXG4gICAgICAgIChwaW5nQ2FjaGUgPSBwaW5nU3VzcGVuZGVkUm9vdC5iaW5kKG51bGwsIHJvb3QsIHdha2VhYmxlLCBsYW5lcykpLFxuICAgICAgICBpc0RldlRvb2xzUHJlc2VudCAmJiByZXN0b3JlUGVuZGluZ1VwZGF0ZXJzKHJvb3QsIGxhbmVzKSxcbiAgICAgICAgd2FrZWFibGUudGhlbihwaW5nQ2FjaGUsIHBpbmdDYWNoZSkpO1xuICAgIH1cbiAgICBmdW5jdGlvbiBwaW5nU3VzcGVuZGVkUm9vdChyb290LCB3YWtlYWJsZSwgcGluZ2VkTGFuZXMpIHtcbiAgICAgIHZhciBwaW5nQ2FjaGUgPSByb290LnBpbmdDYWNoZTtcbiAgICAgIG51bGwgIT09IHBpbmdDYWNoZSAmJiBwaW5nQ2FjaGUuZGVsZXRlKHdha2VhYmxlKTtcbiAgICAgIHJvb3QucGluZ2VkTGFuZXMgfD0gcm9vdC5zdXNwZW5kZWRMYW5lcyAmIHBpbmdlZExhbmVzO1xuICAgICAgcm9vdC53YXJtTGFuZXMgJj0gfnBpbmdlZExhbmVzO1xuICAgICAgaXNDb25jdXJyZW50QWN0RW52aXJvbm1lbnQoKSAmJlxuICAgICAgICBudWxsID09PSBSZWFjdFNoYXJlZEludGVybmFscy5hY3RRdWV1ZSAmJlxuICAgICAgICBjb25zb2xlLmVycm9yKFxuICAgICAgICAgIFwiQSBzdXNwZW5kZWQgcmVzb3VyY2UgZmluaXNoZWQgbG9hZGluZyBpbnNpZGUgYSB0ZXN0LCBidXQgdGhlIGV2ZW50IHdhcyBub3Qgd3JhcHBlZCBpbiBhY3QoLi4uKS5cXG5cXG5XaGVuIHRlc3RpbmcsIGNvZGUgdGhhdCByZXNvbHZlcyBzdXNwZW5kZWQgZGF0YSBzaG91bGQgYmUgd3JhcHBlZCBpbnRvIGFjdCguLi4pOlxcblxcbmFjdCgoKSA9PiB7XFxuICAvKiBmaW5pc2ggbG9hZGluZyBzdXNwZW5kZWQgZGF0YSAqL1xcbn0pO1xcbi8qIGFzc2VydCBvbiB0aGUgb3V0cHV0ICovXFxuXFxuVGhpcyBlbnN1cmVzIHRoYXQgeW91J3JlIHRlc3RpbmcgdGhlIGJlaGF2aW9yIHRoZSB1c2VyIHdvdWxkIHNlZSBpbiB0aGUgYnJvd3Nlci4gTGVhcm4gbW9yZSBhdCBodHRwczovL3JlYWN0LmRldi9saW5rL3dyYXAtdGVzdHMtd2l0aC1hY3RcIlxuICAgICAgICApO1xuICAgICAgd29ya0luUHJvZ3Jlc3NSb290ID09PSByb290ICYmXG4gICAgICAgICh3b3JrSW5Qcm9ncmVzc1Jvb3RSZW5kZXJMYW5lcyAmIHBpbmdlZExhbmVzKSA9PT0gcGluZ2VkTGFuZXMgJiZcbiAgICAgICAgKHdvcmtJblByb2dyZXNzUm9vdEV4aXRTdGF0dXMgPT09IFJvb3RTdXNwZW5kZWRXaXRoRGVsYXkgfHxcbiAgICAgICAgKHdvcmtJblByb2dyZXNzUm9vdEV4aXRTdGF0dXMgPT09IFJvb3RTdXNwZW5kZWQgJiZcbiAgICAgICAgICAod29ya0luUHJvZ3Jlc3NSb290UmVuZGVyTGFuZXMgJiA2MjkxNDU2MCkgPT09XG4gICAgICAgICAgICB3b3JrSW5Qcm9ncmVzc1Jvb3RSZW5kZXJMYW5lcyAmJlxuICAgICAgICAgIG5vdyQxKCkgLSBnbG9iYWxNb3N0UmVjZW50RmFsbGJhY2tUaW1lIDwgRkFMTEJBQ0tfVEhST1RUTEVfTVMpXG4gICAgICAgICAgPyAoZXhlY3V0aW9uQ29udGV4dCAmIFJlbmRlckNvbnRleHQpID09PSBOb0NvbnRleHQgJiZcbiAgICAgICAgICAgIHByZXBhcmVGcmVzaFN0YWNrKHJvb3QsIDApXG4gICAgICAgICAgOiAod29ya0luUHJvZ3Jlc3NSb290UGluZ2VkTGFuZXMgfD0gcGluZ2VkTGFuZXMpLFxuICAgICAgICB3b3JrSW5Qcm9ncmVzc1N1c3BlbmRlZFJldHJ5TGFuZXMgPT09IHdvcmtJblByb2dyZXNzUm9vdFJlbmRlckxhbmVzICYmXG4gICAgICAgICAgKHdvcmtJblByb2dyZXNzU3VzcGVuZGVkUmV0cnlMYW5lcyA9IDApKTtcbiAgICAgIGVuc3VyZVJvb3RJc1NjaGVkdWxlZChyb290KTtcbiAgICB9XG4gICAgZnVuY3Rpb24gcmV0cnlUaW1lZE91dEJvdW5kYXJ5KGJvdW5kYXJ5RmliZXIsIHJldHJ5TGFuZSkge1xuICAgICAgMCA9PT0gcmV0cnlMYW5lICYmIChyZXRyeUxhbmUgPSBjbGFpbU5leHRSZXRyeUxhbmUoKSk7XG4gICAgICBib3VuZGFyeUZpYmVyID0gZW5xdWV1ZUNvbmN1cnJlbnRSZW5kZXJGb3JMYW5lKGJvdW5kYXJ5RmliZXIsIHJldHJ5TGFuZSk7XG4gICAgICBudWxsICE9PSBib3VuZGFyeUZpYmVyICYmXG4gICAgICAgIChtYXJrUm9vdFVwZGF0ZWQkMShib3VuZGFyeUZpYmVyLCByZXRyeUxhbmUpLFxuICAgICAgICBlbnN1cmVSb290SXNTY2hlZHVsZWQoYm91bmRhcnlGaWJlcikpO1xuICAgIH1cbiAgICBmdW5jdGlvbiByZXRyeURlaHlkcmF0ZWRTdXNwZW5zZUJvdW5kYXJ5KGJvdW5kYXJ5RmliZXIpIHtcbiAgICAgIHZhciBzdXNwZW5zZVN0YXRlID0gYm91bmRhcnlGaWJlci5tZW1vaXplZFN0YXRlLFxuICAgICAgICByZXRyeUxhbmUgPSAwO1xuICAgICAgbnVsbCAhPT0gc3VzcGVuc2VTdGF0ZSAmJiAocmV0cnlMYW5lID0gc3VzcGVuc2VTdGF0ZS5yZXRyeUxhbmUpO1xuICAgICAgcmV0cnlUaW1lZE91dEJvdW5kYXJ5KGJvdW5kYXJ5RmliZXIsIHJldHJ5TGFuZSk7XG4gICAgfVxuICAgIGZ1bmN0aW9uIHJlc29sdmVSZXRyeVdha2VhYmxlKGJvdW5kYXJ5RmliZXIsIHdha2VhYmxlKSB7XG4gICAgICB2YXIgcmV0cnlMYW5lID0gMDtcbiAgICAgIHN3aXRjaCAoYm91bmRhcnlGaWJlci50YWcpIHtcbiAgICAgICAgY2FzZSAxMzpcbiAgICAgICAgICB2YXIgcmV0cnlDYWNoZSA9IGJvdW5kYXJ5RmliZXIuc3RhdGVOb2RlO1xuICAgICAgICAgIHZhciBzdXNwZW5zZVN0YXRlID0gYm91bmRhcnlGaWJlci5tZW1vaXplZFN0YXRlO1xuICAgICAgICAgIG51bGwgIT09IHN1c3BlbnNlU3RhdGUgJiYgKHJldHJ5TGFuZSA9IHN1c3BlbnNlU3RhdGUucmV0cnlMYW5lKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAxOTpcbiAgICAgICAgICByZXRyeUNhY2hlID0gYm91bmRhcnlGaWJlci5zdGF0ZU5vZGU7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgMjI6XG4gICAgICAgICAgcmV0cnlDYWNoZSA9IGJvdW5kYXJ5RmliZXIuc3RhdGVOb2RlLl9yZXRyeUNhY2hlO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgIHRocm93IEVycm9yKFxuICAgICAgICAgICAgXCJQaW5nZWQgdW5rbm93biBzdXNwZW5zZSBib3VuZGFyeSB0eXBlLiBUaGlzIGlzIHByb2JhYmx5IGEgYnVnIGluIFJlYWN0LlwiXG4gICAgICAgICAgKTtcbiAgICAgIH1cbiAgICAgIG51bGwgIT09IHJldHJ5Q2FjaGUgJiYgcmV0cnlDYWNoZS5kZWxldGUod2FrZWFibGUpO1xuICAgICAgcmV0cnlUaW1lZE91dEJvdW5kYXJ5KGJvdW5kYXJ5RmliZXIsIHJldHJ5TGFuZSk7XG4gICAgfVxuICAgIGZ1bmN0aW9uIHJlY3Vyc2l2ZWx5VHJhdmVyc2VBbmREb3VibGVJbnZva2VFZmZlY3RzSW5ERVYoXG4gICAgICByb290JGpzY29tcCQwLFxuICAgICAgcGFyZW50RmliZXIsXG4gICAgICBpc0luU3RyaWN0TW9kZVxuICAgICkge1xuICAgICAgaWYgKDAgIT09IChwYXJlbnRGaWJlci5zdWJ0cmVlRmxhZ3MgJiA2NzExNzA1NikpXG4gICAgICAgIGZvciAocGFyZW50RmliZXIgPSBwYXJlbnRGaWJlci5jaGlsZDsgbnVsbCAhPT0gcGFyZW50RmliZXI7ICkge1xuICAgICAgICAgIHZhciByb290ID0gcm9vdCRqc2NvbXAkMCxcbiAgICAgICAgICAgIGZpYmVyID0gcGFyZW50RmliZXIsXG4gICAgICAgICAgICBpc1N0cmljdE1vZGVGaWJlciA9IGZpYmVyLnR5cGUgPT09IFJFQUNUX1NUUklDVF9NT0RFX1RZUEU7XG4gICAgICAgICAgaXNTdHJpY3RNb2RlRmliZXIgPSBpc0luU3RyaWN0TW9kZSB8fCBpc1N0cmljdE1vZGVGaWJlcjtcbiAgICAgICAgICAyMiAhPT0gZmliZXIudGFnXG4gICAgICAgICAgICA/IGZpYmVyLmZsYWdzICYgNjcxMDg4NjRcbiAgICAgICAgICAgICAgPyBpc1N0cmljdE1vZGVGaWJlciAmJlxuICAgICAgICAgICAgICAgIHJ1bldpdGhGaWJlckluREVWKFxuICAgICAgICAgICAgICAgICAgZmliZXIsXG4gICAgICAgICAgICAgICAgICBkb3VibGVJbnZva2VFZmZlY3RzT25GaWJlcixcbiAgICAgICAgICAgICAgICAgIHJvb3QsXG4gICAgICAgICAgICAgICAgICBmaWJlcixcbiAgICAgICAgICAgICAgICAgIChmaWJlci5tb2RlICYgTm9TdHJpY3RQYXNzaXZlRWZmZWN0c01vZGUpID09PSBOb01vZGVcbiAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgIDogcmVjdXJzaXZlbHlUcmF2ZXJzZUFuZERvdWJsZUludm9rZUVmZmVjdHNJbkRFVihcbiAgICAgICAgICAgICAgICAgIHJvb3QsXG4gICAgICAgICAgICAgICAgICBmaWJlcixcbiAgICAgICAgICAgICAgICAgIGlzU3RyaWN0TW9kZUZpYmVyXG4gICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgOiBudWxsID09PSBmaWJlci5tZW1vaXplZFN0YXRlICYmXG4gICAgICAgICAgICAgIChpc1N0cmljdE1vZGVGaWJlciAmJiBmaWJlci5mbGFncyAmIDgxOTJcbiAgICAgICAgICAgICAgICA/IHJ1bldpdGhGaWJlckluREVWKFxuICAgICAgICAgICAgICAgICAgICBmaWJlcixcbiAgICAgICAgICAgICAgICAgICAgZG91YmxlSW52b2tlRWZmZWN0c09uRmliZXIsXG4gICAgICAgICAgICAgICAgICAgIHJvb3QsXG4gICAgICAgICAgICAgICAgICAgIGZpYmVyXG4gICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgOiBmaWJlci5zdWJ0cmVlRmxhZ3MgJiA2NzEwODg2NCAmJlxuICAgICAgICAgICAgICAgICAgcnVuV2l0aEZpYmVySW5ERVYoXG4gICAgICAgICAgICAgICAgICAgIGZpYmVyLFxuICAgICAgICAgICAgICAgICAgICByZWN1cnNpdmVseVRyYXZlcnNlQW5kRG91YmxlSW52b2tlRWZmZWN0c0luREVWLFxuICAgICAgICAgICAgICAgICAgICByb290LFxuICAgICAgICAgICAgICAgICAgICBmaWJlcixcbiAgICAgICAgICAgICAgICAgICAgaXNTdHJpY3RNb2RlRmliZXJcbiAgICAgICAgICAgICAgICAgICkpO1xuICAgICAgICAgIHBhcmVudEZpYmVyID0gcGFyZW50RmliZXIuc2libGluZztcbiAgICAgICAgfVxuICAgIH1cbiAgICBmdW5jdGlvbiBkb3VibGVJbnZva2VFZmZlY3RzT25GaWJlcihyb290LCBmaWJlcikge1xuICAgICAgdmFyIHNob3VsZERvdWJsZUludm9rZVBhc3NpdmVFZmZlY3RzID1cbiAgICAgICAgMiA8IGFyZ3VtZW50cy5sZW5ndGggJiYgdm9pZCAwICE9PSBhcmd1bWVudHNbMl0gPyBhcmd1bWVudHNbMl0gOiAhMDtcbiAgICAgIHNldElzU3RyaWN0TW9kZUZvckRldnRvb2xzKCEwKTtcbiAgICAgIHRyeSB7XG4gICAgICAgIGRpc2FwcGVhckxheW91dEVmZmVjdHMoZmliZXIpLFxuICAgICAgICAgIHNob3VsZERvdWJsZUludm9rZVBhc3NpdmVFZmZlY3RzICYmIGRpc2Nvbm5lY3RQYXNzaXZlRWZmZWN0KGZpYmVyKSxcbiAgICAgICAgICByZWFwcGVhckxheW91dEVmZmVjdHMocm9vdCwgZmliZXIuYWx0ZXJuYXRlLCBmaWJlciwgITEpLFxuICAgICAgICAgIHNob3VsZERvdWJsZUludm9rZVBhc3NpdmVFZmZlY3RzICYmXG4gICAgICAgICAgICByZWNvbm5lY3RQYXNzaXZlRWZmZWN0cyhyb290LCBmaWJlciwgMCwgbnVsbCwgITEsIDApO1xuICAgICAgfSBmaW5hbGx5IHtcbiAgICAgICAgc2V0SXNTdHJpY3RNb2RlRm9yRGV2dG9vbHMoITEpO1xuICAgICAgfVxuICAgIH1cbiAgICBmdW5jdGlvbiBjb21taXREb3VibGVJbnZva2VFZmZlY3RzSW5ERVYocm9vdCkge1xuICAgICAgdmFyIGRvdWJsZUludm9rZUVmZmVjdHMgPSAhMDtcbiAgICAgIHJvb3QuY3VycmVudC5tb2RlICYgKFN0cmljdExlZ2FjeU1vZGUgfCBTdHJpY3RFZmZlY3RzTW9kZSkgfHxcbiAgICAgICAgKGRvdWJsZUludm9rZUVmZmVjdHMgPSAhMSk7XG4gICAgICByZWN1cnNpdmVseVRyYXZlcnNlQW5kRG91YmxlSW52b2tlRWZmZWN0c0luREVWKFxuICAgICAgICByb290LFxuICAgICAgICByb290LmN1cnJlbnQsXG4gICAgICAgIGRvdWJsZUludm9rZUVmZmVjdHNcbiAgICAgICk7XG4gICAgfVxuICAgIGZ1bmN0aW9uIHdhcm5BYm91dFVwZGF0ZU9uTm90WWV0TW91bnRlZEZpYmVySW5ERVYoZmliZXIpIHtcbiAgICAgIGlmICgoZXhlY3V0aW9uQ29udGV4dCAmIFJlbmRlckNvbnRleHQpID09PSBOb0NvbnRleHQpIHtcbiAgICAgICAgdmFyIHRhZyA9IGZpYmVyLnRhZztcbiAgICAgICAgaWYgKFxuICAgICAgICAgIDMgPT09IHRhZyB8fFxuICAgICAgICAgIDEgPT09IHRhZyB8fFxuICAgICAgICAgIDAgPT09IHRhZyB8fFxuICAgICAgICAgIDExID09PSB0YWcgfHxcbiAgICAgICAgICAxNCA9PT0gdGFnIHx8XG4gICAgICAgICAgMTUgPT09IHRhZ1xuICAgICAgICApIHtcbiAgICAgICAgICB0YWcgPSBnZXRDb21wb25lbnROYW1lRnJvbUZpYmVyKGZpYmVyKSB8fCBcIlJlYWN0Q29tcG9uZW50XCI7XG4gICAgICAgICAgaWYgKG51bGwgIT09IGRpZFdhcm5TdGF0ZVVwZGF0ZUZvck5vdFlldE1vdW50ZWRDb21wb25lbnQpIHtcbiAgICAgICAgICAgIGlmIChkaWRXYXJuU3RhdGVVcGRhdGVGb3JOb3RZZXRNb3VudGVkQ29tcG9uZW50Lmhhcyh0YWcpKSByZXR1cm47XG4gICAgICAgICAgICBkaWRXYXJuU3RhdGVVcGRhdGVGb3JOb3RZZXRNb3VudGVkQ29tcG9uZW50LmFkZCh0YWcpO1xuICAgICAgICAgIH0gZWxzZSBkaWRXYXJuU3RhdGVVcGRhdGVGb3JOb3RZZXRNb3VudGVkQ29tcG9uZW50ID0gbmV3IFNldChbdGFnXSk7XG4gICAgICAgICAgcnVuV2l0aEZpYmVySW5ERVYoZmliZXIsIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoXG4gICAgICAgICAgICAgIFwiQ2FuJ3QgcGVyZm9ybSBhIFJlYWN0IHN0YXRlIHVwZGF0ZSBvbiBhIGNvbXBvbmVudCB0aGF0IGhhc24ndCBtb3VudGVkIHlldC4gVGhpcyBpbmRpY2F0ZXMgdGhhdCB5b3UgaGF2ZSBhIHNpZGUtZWZmZWN0IGluIHlvdXIgcmVuZGVyIGZ1bmN0aW9uIHRoYXQgYXN5bmNocm9ub3VzbHkgbGF0ZXIgY2FsbHMgdHJpZXMgdG8gdXBkYXRlIHRoZSBjb21wb25lbnQuIE1vdmUgdGhpcyB3b3JrIHRvIHVzZUVmZmVjdCBpbnN0ZWFkLlwiXG4gICAgICAgICAgICApO1xuICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgIGZ1bmN0aW9uIHJlc3RvcmVQZW5kaW5nVXBkYXRlcnMocm9vdCwgbGFuZXMpIHtcbiAgICAgIGlzRGV2VG9vbHNQcmVzZW50ICYmXG4gICAgICAgIHJvb3QubWVtb2l6ZWRVcGRhdGVycy5mb3JFYWNoKGZ1bmN0aW9uIChzY2hlZHVsaW5nRmliZXIpIHtcbiAgICAgICAgICBhZGRGaWJlclRvTGFuZXNNYXAocm9vdCwgc2NoZWR1bGluZ0ZpYmVyLCBsYW5lcyk7XG4gICAgICAgIH0pO1xuICAgIH1cbiAgICBmdW5jdGlvbiBzY2hlZHVsZUNhbGxiYWNrJDEocHJpb3JpdHlMZXZlbCwgY2FsbGJhY2spIHtcbiAgICAgIHZhciBhY3RRdWV1ZSA9IFJlYWN0U2hhcmVkSW50ZXJuYWxzLmFjdFF1ZXVlO1xuICAgICAgcmV0dXJuIG51bGwgIT09IGFjdFF1ZXVlXG4gICAgICAgID8gKGFjdFF1ZXVlLnB1c2goY2FsbGJhY2spLCBmYWtlQWN0Q2FsbGJhY2tOb2RlJDEpXG4gICAgICAgIDogc2NoZWR1bGVDYWxsYmFjayQzKHByaW9yaXR5TGV2ZWwsIGNhbGxiYWNrKTtcbiAgICB9XG4gICAgZnVuY3Rpb24gd2FybklmVXBkYXRlc05vdFdyYXBwZWRXaXRoQWN0REVWKGZpYmVyKSB7XG4gICAgICBpc0NvbmN1cnJlbnRBY3RFbnZpcm9ubWVudCgpICYmXG4gICAgICAgIG51bGwgPT09IFJlYWN0U2hhcmVkSW50ZXJuYWxzLmFjdFF1ZXVlICYmXG4gICAgICAgIHJ1bldpdGhGaWJlckluREVWKGZpYmVyLCBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgY29uc29sZS5lcnJvcihcbiAgICAgICAgICAgIFwiQW4gdXBkYXRlIHRvICVzIGluc2lkZSBhIHRlc3Qgd2FzIG5vdCB3cmFwcGVkIGluIGFjdCguLi4pLlxcblxcbldoZW4gdGVzdGluZywgY29kZSB0aGF0IGNhdXNlcyBSZWFjdCBzdGF0ZSB1cGRhdGVzIHNob3VsZCBiZSB3cmFwcGVkIGludG8gYWN0KC4uLik6XFxuXFxuYWN0KCgpID0+IHtcXG4gIC8qIGZpcmUgZXZlbnRzIHRoYXQgdXBkYXRlIHN0YXRlICovXFxufSk7XFxuLyogYXNzZXJ0IG9uIHRoZSBvdXRwdXQgKi9cXG5cXG5UaGlzIGVuc3VyZXMgdGhhdCB5b3UncmUgdGVzdGluZyB0aGUgYmVoYXZpb3IgdGhlIHVzZXIgd291bGQgc2VlIGluIHRoZSBicm93c2VyLiBMZWFybiBtb3JlIGF0IGh0dHBzOi8vcmVhY3QuZGV2L2xpbmsvd3JhcC10ZXN0cy13aXRoLWFjdFwiLFxuICAgICAgICAgICAgZ2V0Q29tcG9uZW50TmFtZUZyb21GaWJlcihmaWJlcilcbiAgICAgICAgICApO1xuICAgICAgICB9KTtcbiAgICB9XG4gICAgZnVuY3Rpb24gZW5zdXJlUm9vdElzU2NoZWR1bGVkKHJvb3QpIHtcbiAgICAgIHJvb3QgIT09IGxhc3RTY2hlZHVsZWRSb290ICYmXG4gICAgICAgIG51bGwgPT09IHJvb3QubmV4dCAmJlxuICAgICAgICAobnVsbCA9PT0gbGFzdFNjaGVkdWxlZFJvb3RcbiAgICAgICAgICA/IChmaXJzdFNjaGVkdWxlZFJvb3QgPSBsYXN0U2NoZWR1bGVkUm9vdCA9IHJvb3QpXG4gICAgICAgICAgOiAobGFzdFNjaGVkdWxlZFJvb3QgPSBsYXN0U2NoZWR1bGVkUm9vdC5uZXh0ID0gcm9vdCkpO1xuICAgICAgbWlnaHRIYXZlUGVuZGluZ1N5bmNXb3JrID0gITA7XG4gICAgICBudWxsICE9PSBSZWFjdFNoYXJlZEludGVybmFscy5hY3RRdWV1ZVxuICAgICAgICA/IGRpZFNjaGVkdWxlTWljcm90YXNrX2FjdCB8fFxuICAgICAgICAgICgoZGlkU2NoZWR1bGVNaWNyb3Rhc2tfYWN0ID0gITApLCBzY2hlZHVsZUltbWVkaWF0ZVJvb3RTY2hlZHVsZVRhc2soKSlcbiAgICAgICAgOiBkaWRTY2hlZHVsZU1pY3JvdGFzayB8fFxuICAgICAgICAgICgoZGlkU2NoZWR1bGVNaWNyb3Rhc2sgPSAhMCksIHNjaGVkdWxlSW1tZWRpYXRlUm9vdFNjaGVkdWxlVGFzaygpKTtcbiAgICB9XG4gICAgZnVuY3Rpb24gZmx1c2hTeW5jV29ya0Fjcm9zc1Jvb3RzX2ltcGwoc3luY1RyYW5zaXRpb25MYW5lcywgb25seUxlZ2FjeSkge1xuICAgICAgaWYgKCFpc0ZsdXNoaW5nV29yayAmJiBtaWdodEhhdmVQZW5kaW5nU3luY1dvcmspIHtcbiAgICAgICAgaXNGbHVzaGluZ1dvcmsgPSAhMDtcbiAgICAgICAgZG8ge1xuICAgICAgICAgIHZhciBkaWRQZXJmb3JtU29tZVdvcmsgPSAhMTtcbiAgICAgICAgICBmb3IgKHZhciByb290ID0gZmlyc3RTY2hlZHVsZWRSb290OyBudWxsICE9PSByb290OyApIHtcbiAgICAgICAgICAgIGlmICghb25seUxlZ2FjeSlcbiAgICAgICAgICAgICAgaWYgKDAgIT09IHN5bmNUcmFuc2l0aW9uTGFuZXMpIHtcbiAgICAgICAgICAgICAgICB2YXIgcGVuZGluZ0xhbmVzID0gcm9vdC5wZW5kaW5nTGFuZXM7XG4gICAgICAgICAgICAgICAgaWYgKDAgPT09IHBlbmRpbmdMYW5lcykgdmFyIG5leHRMYW5lcyA9IDA7XG4gICAgICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgICB2YXIgc3VzcGVuZGVkTGFuZXMgPSByb290LnN1c3BlbmRlZExhbmVzLFxuICAgICAgICAgICAgICAgICAgICBwaW5nZWRMYW5lcyA9IHJvb3QucGluZ2VkTGFuZXM7XG4gICAgICAgICAgICAgICAgICBuZXh0TGFuZXMgPVxuICAgICAgICAgICAgICAgICAgICAoMSA8PCAoMzEgLSBjbHozMig0MiB8IHN5bmNUcmFuc2l0aW9uTGFuZXMpICsgMSkpIC0gMTtcbiAgICAgICAgICAgICAgICAgIG5leHRMYW5lcyAmPSBwZW5kaW5nTGFuZXMgJiB+KHN1c3BlbmRlZExhbmVzICYgfnBpbmdlZExhbmVzKTtcbiAgICAgICAgICAgICAgICAgIG5leHRMYW5lcyA9XG4gICAgICAgICAgICAgICAgICAgIG5leHRMYW5lcyAmIDIwMTMyNjc0MVxuICAgICAgICAgICAgICAgICAgICAgID8gKG5leHRMYW5lcyAmIDIwMTMyNjc0MSkgfCAxXG4gICAgICAgICAgICAgICAgICAgICAgOiBuZXh0TGFuZXNcbiAgICAgICAgICAgICAgICAgICAgICAgID8gbmV4dExhbmVzIHwgMlxuICAgICAgICAgICAgICAgICAgICAgICAgOiAwO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAwICE9PSBuZXh0TGFuZXMgJiZcbiAgICAgICAgICAgICAgICAgICgoZGlkUGVyZm9ybVNvbWVXb3JrID0gITApLFxuICAgICAgICAgICAgICAgICAgcGVyZm9ybVN5bmNXb3JrT25Sb290KHJvb3QsIG5leHRMYW5lcykpO1xuICAgICAgICAgICAgICB9IGVsc2VcbiAgICAgICAgICAgICAgICAobmV4dExhbmVzID0gd29ya0luUHJvZ3Jlc3NSb290UmVuZGVyTGFuZXMpLFxuICAgICAgICAgICAgICAgICAgKG5leHRMYW5lcyA9IGdldE5leHRMYW5lcyhcbiAgICAgICAgICAgICAgICAgICAgcm9vdCxcbiAgICAgICAgICAgICAgICAgICAgcm9vdCA9PT0gd29ya0luUHJvZ3Jlc3NSb290ID8gbmV4dExhbmVzIDogMCxcbiAgICAgICAgICAgICAgICAgICAgbnVsbCAhPT0gcm9vdC5jYW5jZWxQZW5kaW5nQ29tbWl0IHx8XG4gICAgICAgICAgICAgICAgICAgICAgcm9vdC50aW1lb3V0SGFuZGxlICE9PSBub1RpbWVvdXRcbiAgICAgICAgICAgICAgICAgICkpLFxuICAgICAgICAgICAgICAgICAgMCA9PT0gKG5leHRMYW5lcyAmIDMpIHx8XG4gICAgICAgICAgICAgICAgICAgIGNoZWNrSWZSb290SXNQcmVyZW5kZXJpbmcocm9vdCwgbmV4dExhbmVzKSB8fFxuICAgICAgICAgICAgICAgICAgICAoKGRpZFBlcmZvcm1Tb21lV29yayA9ICEwKSxcbiAgICAgICAgICAgICAgICAgICAgcGVyZm9ybVN5bmNXb3JrT25Sb290KHJvb3QsIG5leHRMYW5lcykpO1xuICAgICAgICAgICAgcm9vdCA9IHJvb3QubmV4dDtcbiAgICAgICAgICB9XG4gICAgICAgIH0gd2hpbGUgKGRpZFBlcmZvcm1Tb21lV29yayk7XG4gICAgICAgIGlzRmx1c2hpbmdXb3JrID0gITE7XG4gICAgICB9XG4gICAgfVxuICAgIGZ1bmN0aW9uIHByb2Nlc3NSb290U2NoZWR1bGVJbkltbWVkaWF0ZVRhc2soKSB7XG4gICAgICBwcm9jZXNzUm9vdFNjaGVkdWxlSW5NaWNyb3Rhc2soKTtcbiAgICB9XG4gICAgZnVuY3Rpb24gcHJvY2Vzc1Jvb3RTY2hlZHVsZUluTWljcm90YXNrKCkge1xuICAgICAgbWlnaHRIYXZlUGVuZGluZ1N5bmNXb3JrID1cbiAgICAgICAgZGlkU2NoZWR1bGVNaWNyb3Rhc2tfYWN0ID1cbiAgICAgICAgZGlkU2NoZWR1bGVNaWNyb3Rhc2sgPVxuICAgICAgICAgICExO1xuICAgICAgdmFyIHN5bmNUcmFuc2l0aW9uTGFuZXMgPSAwO1xuICAgICAgMCAhPT0gY3VycmVudEV2ZW50VHJhbnNpdGlvbkxhbmUgJiZcbiAgICAgICAgKHNob3VsZEF0dGVtcHRFYWdlclRyYW5zaXRpb24oKSAmJlxuICAgICAgICAgIChzeW5jVHJhbnNpdGlvbkxhbmVzID0gY3VycmVudEV2ZW50VHJhbnNpdGlvbkxhbmUpLFxuICAgICAgICAoY3VycmVudEV2ZW50VHJhbnNpdGlvbkxhbmUgPSAwKSk7XG4gICAgICBmb3IgKFxuICAgICAgICB2YXIgY3VycmVudFRpbWUgPSBub3ckMSgpLCBwcmV2ID0gbnVsbCwgcm9vdCA9IGZpcnN0U2NoZWR1bGVkUm9vdDtcbiAgICAgICAgbnVsbCAhPT0gcm9vdDtcblxuICAgICAgKSB7XG4gICAgICAgIHZhciBuZXh0ID0gcm9vdC5uZXh0LFxuICAgICAgICAgIG5leHRMYW5lcyA9IHNjaGVkdWxlVGFza0ZvclJvb3REdXJpbmdNaWNyb3Rhc2socm9vdCwgY3VycmVudFRpbWUpO1xuICAgICAgICBpZiAoMCA9PT0gbmV4dExhbmVzKVxuICAgICAgICAgIChyb290Lm5leHQgPSBudWxsKSxcbiAgICAgICAgICAgIG51bGwgPT09IHByZXYgPyAoZmlyc3RTY2hlZHVsZWRSb290ID0gbmV4dCkgOiAocHJldi5uZXh0ID0gbmV4dCksXG4gICAgICAgICAgICBudWxsID09PSBuZXh0ICYmIChsYXN0U2NoZWR1bGVkUm9vdCA9IHByZXYpO1xuICAgICAgICBlbHNlIGlmIChcbiAgICAgICAgICAoKHByZXYgPSByb290KSwgMCAhPT0gc3luY1RyYW5zaXRpb25MYW5lcyB8fCAwICE9PSAobmV4dExhbmVzICYgMykpXG4gICAgICAgIClcbiAgICAgICAgICBtaWdodEhhdmVQZW5kaW5nU3luY1dvcmsgPSAhMDtcbiAgICAgICAgcm9vdCA9IG5leHQ7XG4gICAgICB9XG4gICAgICBmbHVzaFN5bmNXb3JrQWNyb3NzUm9vdHNfaW1wbChzeW5jVHJhbnNpdGlvbkxhbmVzLCAhMSk7XG4gICAgfVxuICAgIGZ1bmN0aW9uIHNjaGVkdWxlVGFza0ZvclJvb3REdXJpbmdNaWNyb3Rhc2socm9vdCwgY3VycmVudFRpbWUpIHtcbiAgICAgIGZvciAoXG4gICAgICAgIHZhciBzdXNwZW5kZWRMYW5lcyA9IHJvb3Quc3VzcGVuZGVkTGFuZXMsXG4gICAgICAgICAgcGluZ2VkTGFuZXMgPSByb290LnBpbmdlZExhbmVzLFxuICAgICAgICAgIGV4cGlyYXRpb25UaW1lcyA9IHJvb3QuZXhwaXJhdGlvblRpbWVzLFxuICAgICAgICAgIGxhbmVzID0gcm9vdC5wZW5kaW5nTGFuZXMgJiAtNjI5MTQ1NjE7XG4gICAgICAgIDAgPCBsYW5lcztcblxuICAgICAgKSB7XG4gICAgICAgIHZhciBpbmRleCA9IDMxIC0gY2x6MzIobGFuZXMpLFxuICAgICAgICAgIGxhbmUgPSAxIDw8IGluZGV4LFxuICAgICAgICAgIGV4cGlyYXRpb25UaW1lID0gZXhwaXJhdGlvblRpbWVzW2luZGV4XTtcbiAgICAgICAgaWYgKC0xID09PSBleHBpcmF0aW9uVGltZSkge1xuICAgICAgICAgIGlmICgwID09PSAobGFuZSAmIHN1c3BlbmRlZExhbmVzKSB8fCAwICE9PSAobGFuZSAmIHBpbmdlZExhbmVzKSlcbiAgICAgICAgICAgIGV4cGlyYXRpb25UaW1lc1tpbmRleF0gPSBjb21wdXRlRXhwaXJhdGlvblRpbWUobGFuZSwgY3VycmVudFRpbWUpO1xuICAgICAgICB9IGVsc2UgZXhwaXJhdGlvblRpbWUgPD0gY3VycmVudFRpbWUgJiYgKHJvb3QuZXhwaXJlZExhbmVzIHw9IGxhbmUpO1xuICAgICAgICBsYW5lcyAmPSB+bGFuZTtcbiAgICAgIH1cbiAgICAgIGN1cnJlbnRUaW1lID0gd29ya0luUHJvZ3Jlc3NSb290O1xuICAgICAgc3VzcGVuZGVkTGFuZXMgPSB3b3JrSW5Qcm9ncmVzc1Jvb3RSZW5kZXJMYW5lcztcbiAgICAgIHN1c3BlbmRlZExhbmVzID0gZ2V0TmV4dExhbmVzKFxuICAgICAgICByb290LFxuICAgICAgICByb290ID09PSBjdXJyZW50VGltZSA/IHN1c3BlbmRlZExhbmVzIDogMCxcbiAgICAgICAgbnVsbCAhPT0gcm9vdC5jYW5jZWxQZW5kaW5nQ29tbWl0IHx8IHJvb3QudGltZW91dEhhbmRsZSAhPT0gbm9UaW1lb3V0XG4gICAgICApO1xuICAgICAgcGluZ2VkTGFuZXMgPSByb290LmNhbGxiYWNrTm9kZTtcbiAgICAgIGlmIChcbiAgICAgICAgMCA9PT0gc3VzcGVuZGVkTGFuZXMgfHxcbiAgICAgICAgKHJvb3QgPT09IGN1cnJlbnRUaW1lICYmXG4gICAgICAgICAgKHdvcmtJblByb2dyZXNzU3VzcGVuZGVkUmVhc29uID09PSBTdXNwZW5kZWRPbkRhdGEgfHxcbiAgICAgICAgICAgIHdvcmtJblByb2dyZXNzU3VzcGVuZGVkUmVhc29uID09PSBTdXNwZW5kZWRPbkFjdGlvbikpIHx8XG4gICAgICAgIG51bGwgIT09IHJvb3QuY2FuY2VsUGVuZGluZ0NvbW1pdFxuICAgICAgKVxuICAgICAgICByZXR1cm4gKFxuICAgICAgICAgIG51bGwgIT09IHBpbmdlZExhbmVzICYmIGNhbmNlbENhbGxiYWNrKHBpbmdlZExhbmVzKSxcbiAgICAgICAgICAocm9vdC5jYWxsYmFja05vZGUgPSBudWxsKSxcbiAgICAgICAgICAocm9vdC5jYWxsYmFja1ByaW9yaXR5ID0gMClcbiAgICAgICAgKTtcbiAgICAgIGlmIChcbiAgICAgICAgMCA9PT0gKHN1c3BlbmRlZExhbmVzICYgMykgfHxcbiAgICAgICAgY2hlY2tJZlJvb3RJc1ByZXJlbmRlcmluZyhyb290LCBzdXNwZW5kZWRMYW5lcylcbiAgICAgICkge1xuICAgICAgICBjdXJyZW50VGltZSA9IHN1c3BlbmRlZExhbmVzICYgLXN1c3BlbmRlZExhbmVzO1xuICAgICAgICBpZiAoXG4gICAgICAgICAgY3VycmVudFRpbWUgIT09IHJvb3QuY2FsbGJhY2tQcmlvcml0eSB8fFxuICAgICAgICAgIChudWxsICE9PSBSZWFjdFNoYXJlZEludGVybmFscy5hY3RRdWV1ZSAmJlxuICAgICAgICAgICAgcGluZ2VkTGFuZXMgIT09IGZha2VBY3RDYWxsYmFja05vZGUpXG4gICAgICAgIClcbiAgICAgICAgICBjYW5jZWxDYWxsYmFjayhwaW5nZWRMYW5lcyk7XG4gICAgICAgIGVsc2UgcmV0dXJuIGN1cnJlbnRUaW1lO1xuICAgICAgICBzd2l0Y2ggKGxhbmVzVG9FdmVudFByaW9yaXR5KHN1c3BlbmRlZExhbmVzKSkge1xuICAgICAgICAgIGNhc2UgRGlzY3JldGVFdmVudFByaW9yaXR5OlxuICAgICAgICAgIGNhc2UgQ29udGludW91c0V2ZW50UHJpb3JpdHk6XG4gICAgICAgICAgICBzdXNwZW5kZWRMYW5lcyA9IFVzZXJCbG9ja2luZ1ByaW9yaXR5O1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgY2FzZSBEZWZhdWx0RXZlbnRQcmlvcml0eTpcbiAgICAgICAgICAgIHN1c3BlbmRlZExhbmVzID0gTm9ybWFsUHJpb3JpdHkkMTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIGNhc2UgSWRsZUV2ZW50UHJpb3JpdHk6XG4gICAgICAgICAgICBzdXNwZW5kZWRMYW5lcyA9IElkbGVQcmlvcml0eTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICBzdXNwZW5kZWRMYW5lcyA9IE5vcm1hbFByaW9yaXR5JDE7XG4gICAgICAgIH1cbiAgICAgICAgcGluZ2VkTGFuZXMgPSBwZXJmb3JtV29ya09uUm9vdFZpYVNjaGVkdWxlclRhc2suYmluZChudWxsLCByb290KTtcbiAgICAgICAgbnVsbCAhPT0gUmVhY3RTaGFyZWRJbnRlcm5hbHMuYWN0UXVldWVcbiAgICAgICAgICA/IChSZWFjdFNoYXJlZEludGVybmFscy5hY3RRdWV1ZS5wdXNoKHBpbmdlZExhbmVzKSxcbiAgICAgICAgICAgIChzdXNwZW5kZWRMYW5lcyA9IGZha2VBY3RDYWxsYmFja05vZGUpKVxuICAgICAgICAgIDogKHN1c3BlbmRlZExhbmVzID0gc2NoZWR1bGVDYWxsYmFjayQzKHN1c3BlbmRlZExhbmVzLCBwaW5nZWRMYW5lcykpO1xuICAgICAgICByb290LmNhbGxiYWNrUHJpb3JpdHkgPSBjdXJyZW50VGltZTtcbiAgICAgICAgcm9vdC5jYWxsYmFja05vZGUgPSBzdXNwZW5kZWRMYW5lcztcbiAgICAgICAgcmV0dXJuIGN1cnJlbnRUaW1lO1xuICAgICAgfVxuICAgICAgbnVsbCAhPT0gcGluZ2VkTGFuZXMgJiYgY2FuY2VsQ2FsbGJhY2socGluZ2VkTGFuZXMpO1xuICAgICAgcm9vdC5jYWxsYmFja1ByaW9yaXR5ID0gMjtcbiAgICAgIHJvb3QuY2FsbGJhY2tOb2RlID0gbnVsbDtcbiAgICAgIHJldHVybiAyO1xuICAgIH1cbiAgICBmdW5jdGlvbiBwZXJmb3JtV29ya09uUm9vdFZpYVNjaGVkdWxlclRhc2socm9vdCwgZGlkVGltZW91dCkge1xuICAgICAgbmVzdGVkVXBkYXRlU2NoZWR1bGVkID0gY3VycmVudFVwZGF0ZUlzTmVzdGVkID0gITE7XG4gICAgICBpZiAoXG4gICAgICAgIHBlbmRpbmdFZmZlY3RzU3RhdHVzICE9PSBOT19QRU5ESU5HX0VGRkVDVFMgJiZcbiAgICAgICAgcGVuZGluZ0VmZmVjdHNTdGF0dXMgIT09IFBFTkRJTkdfUEFTU0lWRV9QSEFTRVxuICAgICAgKVxuICAgICAgICByZXR1cm4gKHJvb3QuY2FsbGJhY2tOb2RlID0gbnVsbCksIChyb290LmNhbGxiYWNrUHJpb3JpdHkgPSAwKSwgbnVsbDtcbiAgICAgIHZhciBvcmlnaW5hbENhbGxiYWNrTm9kZSA9IHJvb3QuY2FsbGJhY2tOb2RlO1xuICAgICAgaWYgKGZsdXNoUGVuZGluZ0VmZmVjdHMoITApICYmIHJvb3QuY2FsbGJhY2tOb2RlICE9PSBvcmlnaW5hbENhbGxiYWNrTm9kZSlcbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICB2YXIgd29ya0luUHJvZ3Jlc3NSb290UmVuZGVyTGFuZXMkanNjb21wJDAgPVxuICAgICAgICB3b3JrSW5Qcm9ncmVzc1Jvb3RSZW5kZXJMYW5lcztcbiAgICAgIHdvcmtJblByb2dyZXNzUm9vdFJlbmRlckxhbmVzJGpzY29tcCQwID0gZ2V0TmV4dExhbmVzKFxuICAgICAgICByb290LFxuICAgICAgICByb290ID09PSB3b3JrSW5Qcm9ncmVzc1Jvb3RcbiAgICAgICAgICA/IHdvcmtJblByb2dyZXNzUm9vdFJlbmRlckxhbmVzJGpzY29tcCQwXG4gICAgICAgICAgOiAwLFxuICAgICAgICBudWxsICE9PSByb290LmNhbmNlbFBlbmRpbmdDb21taXQgfHwgcm9vdC50aW1lb3V0SGFuZGxlICE9PSBub1RpbWVvdXRcbiAgICAgICk7XG4gICAgICBpZiAoMCA9PT0gd29ya0luUHJvZ3Jlc3NSb290UmVuZGVyTGFuZXMkanNjb21wJDApIHJldHVybiBudWxsO1xuICAgICAgcGVyZm9ybVdvcmtPblJvb3QoXG4gICAgICAgIHJvb3QsXG4gICAgICAgIHdvcmtJblByb2dyZXNzUm9vdFJlbmRlckxhbmVzJGpzY29tcCQwLFxuICAgICAgICBkaWRUaW1lb3V0XG4gICAgICApO1xuICAgICAgc2NoZWR1bGVUYXNrRm9yUm9vdER1cmluZ01pY3JvdGFzayhyb290LCBub3ckMSgpKTtcbiAgICAgIHJldHVybiBudWxsICE9IHJvb3QuY2FsbGJhY2tOb2RlICYmXG4gICAgICAgIHJvb3QuY2FsbGJhY2tOb2RlID09PSBvcmlnaW5hbENhbGxiYWNrTm9kZVxuICAgICAgICA/IHBlcmZvcm1Xb3JrT25Sb290VmlhU2NoZWR1bGVyVGFzay5iaW5kKG51bGwsIHJvb3QpXG4gICAgICAgIDogbnVsbDtcbiAgICB9XG4gICAgZnVuY3Rpb24gcGVyZm9ybVN5bmNXb3JrT25Sb290KHJvb3QsIGxhbmVzKSB7XG4gICAgICBpZiAoZmx1c2hQZW5kaW5nRWZmZWN0cygpKSByZXR1cm4gbnVsbDtcbiAgICAgIGN1cnJlbnRVcGRhdGVJc05lc3RlZCA9IG5lc3RlZFVwZGF0ZVNjaGVkdWxlZDtcbiAgICAgIG5lc3RlZFVwZGF0ZVNjaGVkdWxlZCA9ICExO1xuICAgICAgcGVyZm9ybVdvcmtPblJvb3Qocm9vdCwgbGFuZXMsICEwKTtcbiAgICB9XG4gICAgZnVuY3Rpb24gY2FuY2VsQ2FsbGJhY2soY2FsbGJhY2tOb2RlKSB7XG4gICAgICBjYWxsYmFja05vZGUgIT09IGZha2VBY3RDYWxsYmFja05vZGUgJiZcbiAgICAgICAgbnVsbCAhPT0gY2FsbGJhY2tOb2RlICYmXG4gICAgICAgIGNhbmNlbENhbGxiYWNrJDEoY2FsbGJhY2tOb2RlKTtcbiAgICB9XG4gICAgZnVuY3Rpb24gc2NoZWR1bGVJbW1lZGlhdGVSb290U2NoZWR1bGVUYXNrKCkge1xuICAgICAgbnVsbCAhPT0gUmVhY3RTaGFyZWRJbnRlcm5hbHMuYWN0UXVldWUgJiZcbiAgICAgICAgUmVhY3RTaGFyZWRJbnRlcm5hbHMuYWN0UXVldWUucHVzaChmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgcHJvY2Vzc1Jvb3RTY2hlZHVsZUluTWljcm90YXNrKCk7XG4gICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgIH0pO1xuICAgICAgc2NoZWR1bGVNaWNyb3Rhc2soZnVuY3Rpb24gKCkge1xuICAgICAgICAoZXhlY3V0aW9uQ29udGV4dCAmIChSZW5kZXJDb250ZXh0IHwgQ29tbWl0Q29udGV4dCkpICE9PSBOb0NvbnRleHRcbiAgICAgICAgICA/IHNjaGVkdWxlQ2FsbGJhY2skMyhcbiAgICAgICAgICAgICAgSW1tZWRpYXRlUHJpb3JpdHksXG4gICAgICAgICAgICAgIHByb2Nlc3NSb290U2NoZWR1bGVJbkltbWVkaWF0ZVRhc2tcbiAgICAgICAgICAgIClcbiAgICAgICAgICA6IHByb2Nlc3NSb290U2NoZWR1bGVJbk1pY3JvdGFzaygpO1xuICAgICAgfSk7XG4gICAgfVxuICAgIGZ1bmN0aW9uIHJlcXVlc3RUcmFuc2l0aW9uTGFuZSgpIHtcbiAgICAgIDAgPT09IGN1cnJlbnRFdmVudFRyYW5zaXRpb25MYW5lICYmXG4gICAgICAgIChjdXJyZW50RXZlbnRUcmFuc2l0aW9uTGFuZSA9IGNsYWltTmV4dFRyYW5zaXRpb25MYW5lKCkpO1xuICAgICAgcmV0dXJuIGN1cnJlbnRFdmVudFRyYW5zaXRpb25MYW5lO1xuICAgIH1cbiAgICBmdW5jdGlvbiBjb2VyY2VGb3JtQWN0aW9uUHJvcChhY3Rpb25Qcm9wKSB7XG4gICAgICBpZiAoXG4gICAgICAgIG51bGwgPT0gYWN0aW9uUHJvcCB8fFxuICAgICAgICBcInN5bWJvbFwiID09PSB0eXBlb2YgYWN0aW9uUHJvcCB8fFxuICAgICAgICBcImJvb2xlYW5cIiA9PT0gdHlwZW9mIGFjdGlvblByb3BcbiAgICAgIClcbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICBpZiAoXCJmdW5jdGlvblwiID09PSB0eXBlb2YgYWN0aW9uUHJvcCkgcmV0dXJuIGFjdGlvblByb3A7XG4gICAgICBjaGVja0F0dHJpYnV0ZVN0cmluZ0NvZXJjaW9uKGFjdGlvblByb3AsIFwiYWN0aW9uXCIpO1xuICAgICAgcmV0dXJuIHNhbml0aXplVVJMKFwiXCIgKyBhY3Rpb25Qcm9wKTtcbiAgICB9XG4gICAgZnVuY3Rpb24gY3JlYXRlRm9ybURhdGFXaXRoU3VibWl0dGVyKGZvcm0sIHN1Ym1pdHRlcikge1xuICAgICAgdmFyIHRlbXAgPSBzdWJtaXR0ZXIub3duZXJEb2N1bWVudC5jcmVhdGVFbGVtZW50KFwiaW5wdXRcIik7XG4gICAgICB0ZW1wLm5hbWUgPSBzdWJtaXR0ZXIubmFtZTtcbiAgICAgIHRlbXAudmFsdWUgPSBzdWJtaXR0ZXIudmFsdWU7XG4gICAgICBmb3JtLmlkICYmIHRlbXAuc2V0QXR0cmlidXRlKFwiZm9ybVwiLCBmb3JtLmlkKTtcbiAgICAgIHN1Ym1pdHRlci5wYXJlbnROb2RlLmluc2VydEJlZm9yZSh0ZW1wLCBzdWJtaXR0ZXIpO1xuICAgICAgZm9ybSA9IG5ldyBGb3JtRGF0YShmb3JtKTtcbiAgICAgIHRlbXAucGFyZW50Tm9kZS5yZW1vdmVDaGlsZCh0ZW1wKTtcbiAgICAgIHJldHVybiBmb3JtO1xuICAgIH1cbiAgICBmdW5jdGlvbiBleHRyYWN0RXZlbnRzJDEoXG4gICAgICBkaXNwYXRjaFF1ZXVlLFxuICAgICAgZG9tRXZlbnROYW1lLFxuICAgICAgbWF5YmVUYXJnZXRJbnN0LFxuICAgICAgbmF0aXZlRXZlbnQsXG4gICAgICBuYXRpdmVFdmVudFRhcmdldFxuICAgICkge1xuICAgICAgaWYgKFxuICAgICAgICBcInN1Ym1pdFwiID09PSBkb21FdmVudE5hbWUgJiZcbiAgICAgICAgbWF5YmVUYXJnZXRJbnN0ICYmXG4gICAgICAgIG1heWJlVGFyZ2V0SW5zdC5zdGF0ZU5vZGUgPT09IG5hdGl2ZUV2ZW50VGFyZ2V0XG4gICAgICApIHtcbiAgICAgICAgdmFyIGFjdGlvbiA9IGNvZXJjZUZvcm1BY3Rpb25Qcm9wKFxuICAgICAgICAgICAgKG5hdGl2ZUV2ZW50VGFyZ2V0W2ludGVybmFsUHJvcHNLZXldIHx8IG51bGwpLmFjdGlvblxuICAgICAgICAgICksXG4gICAgICAgICAgc3VibWl0dGVyID0gbmF0aXZlRXZlbnQuc3VibWl0dGVyO1xuICAgICAgICBzdWJtaXR0ZXIgJiZcbiAgICAgICAgICAoKGRvbUV2ZW50TmFtZSA9IChkb21FdmVudE5hbWUgPSBzdWJtaXR0ZXJbaW50ZXJuYWxQcm9wc0tleV0gfHwgbnVsbClcbiAgICAgICAgICAgID8gY29lcmNlRm9ybUFjdGlvblByb3AoZG9tRXZlbnROYW1lLmZvcm1BY3Rpb24pXG4gICAgICAgICAgICA6IHN1Ym1pdHRlci5nZXRBdHRyaWJ1dGUoXCJmb3JtQWN0aW9uXCIpKSxcbiAgICAgICAgICBudWxsICE9PSBkb21FdmVudE5hbWUgJiZcbiAgICAgICAgICAgICgoYWN0aW9uID0gZG9tRXZlbnROYW1lKSwgKHN1Ym1pdHRlciA9IG51bGwpKSk7XG4gICAgICAgIHZhciBldmVudCA9IG5ldyBTeW50aGV0aWNFdmVudChcbiAgICAgICAgICBcImFjdGlvblwiLFxuICAgICAgICAgIFwiYWN0aW9uXCIsXG4gICAgICAgICAgbnVsbCxcbiAgICAgICAgICBuYXRpdmVFdmVudCxcbiAgICAgICAgICBuYXRpdmVFdmVudFRhcmdldFxuICAgICAgICApO1xuICAgICAgICBkaXNwYXRjaFF1ZXVlLnB1c2goe1xuICAgICAgICAgIGV2ZW50OiBldmVudCxcbiAgICAgICAgICBsaXN0ZW5lcnM6IFtcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgaW5zdGFuY2U6IG51bGwsXG4gICAgICAgICAgICAgIGxpc3RlbmVyOiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgaWYgKG5hdGl2ZUV2ZW50LmRlZmF1bHRQcmV2ZW50ZWQpIHtcbiAgICAgICAgICAgICAgICAgIGlmICgwICE9PSBjdXJyZW50RXZlbnRUcmFuc2l0aW9uTGFuZSkge1xuICAgICAgICAgICAgICAgICAgICB2YXIgZm9ybURhdGEgPSBzdWJtaXR0ZXJcbiAgICAgICAgICAgICAgICAgICAgICAgID8gY3JlYXRlRm9ybURhdGFXaXRoU3VibWl0dGVyKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hdGl2ZUV2ZW50VGFyZ2V0LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN1Ym1pdHRlclxuICAgICAgICAgICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgICAgICAgICA6IG5ldyBGb3JtRGF0YShuYXRpdmVFdmVudFRhcmdldCksXG4gICAgICAgICAgICAgICAgICAgICAgcGVuZGluZ1N0YXRlID0ge1xuICAgICAgICAgICAgICAgICAgICAgICAgcGVuZGluZzogITAsXG4gICAgICAgICAgICAgICAgICAgICAgICBkYXRhOiBmb3JtRGF0YSxcbiAgICAgICAgICAgICAgICAgICAgICAgIG1ldGhvZDogbmF0aXZlRXZlbnRUYXJnZXQubWV0aG9kLFxuICAgICAgICAgICAgICAgICAgICAgICAgYWN0aW9uOiBhY3Rpb25cbiAgICAgICAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgICAgICBPYmplY3QuZnJlZXplKHBlbmRpbmdTdGF0ZSk7XG4gICAgICAgICAgICAgICAgICAgIHN0YXJ0SG9zdFRyYW5zaXRpb24oXG4gICAgICAgICAgICAgICAgICAgICAgbWF5YmVUYXJnZXRJbnN0LFxuICAgICAgICAgICAgICAgICAgICAgIHBlbmRpbmdTdGF0ZSxcbiAgICAgICAgICAgICAgICAgICAgICBudWxsLFxuICAgICAgICAgICAgICAgICAgICAgIGZvcm1EYXRhXG4gICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSBlbHNlXG4gICAgICAgICAgICAgICAgICBcImZ1bmN0aW9uXCIgPT09IHR5cGVvZiBhY3Rpb24gJiZcbiAgICAgICAgICAgICAgICAgICAgKGV2ZW50LnByZXZlbnREZWZhdWx0KCksXG4gICAgICAgICAgICAgICAgICAgIChmb3JtRGF0YSA9IHN1Ym1pdHRlclxuICAgICAgICAgICAgICAgICAgICAgID8gY3JlYXRlRm9ybURhdGFXaXRoU3VibWl0dGVyKFxuICAgICAgICAgICAgICAgICAgICAgICAgICBuYXRpdmVFdmVudFRhcmdldCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgc3VibWl0dGVyXG4gICAgICAgICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgICAgICAgOiBuZXcgRm9ybURhdGEobmF0aXZlRXZlbnRUYXJnZXQpKSxcbiAgICAgICAgICAgICAgICAgICAgKHBlbmRpbmdTdGF0ZSA9IHtcbiAgICAgICAgICAgICAgICAgICAgICBwZW5kaW5nOiAhMCxcbiAgICAgICAgICAgICAgICAgICAgICBkYXRhOiBmb3JtRGF0YSxcbiAgICAgICAgICAgICAgICAgICAgICBtZXRob2Q6IG5hdGl2ZUV2ZW50VGFyZ2V0Lm1ldGhvZCxcbiAgICAgICAgICAgICAgICAgICAgICBhY3Rpb246IGFjdGlvblxuICAgICAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgICAgICAgT2JqZWN0LmZyZWV6ZShwZW5kaW5nU3RhdGUpLFxuICAgICAgICAgICAgICAgICAgICBzdGFydEhvc3RUcmFuc2l0aW9uKFxuICAgICAgICAgICAgICAgICAgICAgIG1heWJlVGFyZ2V0SW5zdCxcbiAgICAgICAgICAgICAgICAgICAgICBwZW5kaW5nU3RhdGUsXG4gICAgICAgICAgICAgICAgICAgICAgYWN0aW9uLFxuICAgICAgICAgICAgICAgICAgICAgIGZvcm1EYXRhXG4gICAgICAgICAgICAgICAgICAgICkpO1xuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBjdXJyZW50VGFyZ2V0OiBuYXRpdmVFdmVudFRhcmdldFxuICAgICAgICAgICAgfVxuICAgICAgICAgIF1cbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfVxuICAgIGZ1bmN0aW9uIGV4ZWN1dGVEaXNwYXRjaChldmVudCwgbGlzdGVuZXIsIGN1cnJlbnRUYXJnZXQpIHtcbiAgICAgIGV2ZW50LmN1cnJlbnRUYXJnZXQgPSBjdXJyZW50VGFyZ2V0O1xuICAgICAgdHJ5IHtcbiAgICAgICAgbGlzdGVuZXIoZXZlbnQpO1xuICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgcmVwb3J0R2xvYmFsRXJyb3IoZXJyb3IpO1xuICAgICAgfVxuICAgICAgZXZlbnQuY3VycmVudFRhcmdldCA9IG51bGw7XG4gICAgfVxuICAgIGZ1bmN0aW9uIHByb2Nlc3NEaXNwYXRjaFF1ZXVlKGRpc3BhdGNoUXVldWUsIGV2ZW50U3lzdGVtRmxhZ3MpIHtcbiAgICAgIGV2ZW50U3lzdGVtRmxhZ3MgPSAwICE9PSAoZXZlbnRTeXN0ZW1GbGFncyAmIDQpO1xuICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBkaXNwYXRjaFF1ZXVlLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgIHZhciBfZGlzcGF0Y2hRdWV1ZSRpID0gZGlzcGF0Y2hRdWV1ZVtpXTtcbiAgICAgICAgYToge1xuICAgICAgICAgIHZhciBwcmV2aW91c0luc3RhbmNlID0gdm9pZCAwLFxuICAgICAgICAgICAgZXZlbnQgPSBfZGlzcGF0Y2hRdWV1ZSRpLmV2ZW50O1xuICAgICAgICAgIF9kaXNwYXRjaFF1ZXVlJGkgPSBfZGlzcGF0Y2hRdWV1ZSRpLmxpc3RlbmVycztcbiAgICAgICAgICBpZiAoZXZlbnRTeXN0ZW1GbGFncylcbiAgICAgICAgICAgIGZvciAoXG4gICAgICAgICAgICAgIHZhciBpJGpzY29tcCQwID0gX2Rpc3BhdGNoUXVldWUkaS5sZW5ndGggLSAxO1xuICAgICAgICAgICAgICAwIDw9IGkkanNjb21wJDA7XG4gICAgICAgICAgICAgIGkkanNjb21wJDAtLVxuICAgICAgICAgICAgKSB7XG4gICAgICAgICAgICAgIHZhciBfZGlzcGF0Y2hMaXN0ZW5lcnMkaSA9IF9kaXNwYXRjaFF1ZXVlJGlbaSRqc2NvbXAkMF0sXG4gICAgICAgICAgICAgICAgaW5zdGFuY2UgPSBfZGlzcGF0Y2hMaXN0ZW5lcnMkaS5pbnN0YW5jZSxcbiAgICAgICAgICAgICAgICBjdXJyZW50VGFyZ2V0ID0gX2Rpc3BhdGNoTGlzdGVuZXJzJGkuY3VycmVudFRhcmdldDtcbiAgICAgICAgICAgICAgX2Rpc3BhdGNoTGlzdGVuZXJzJGkgPSBfZGlzcGF0Y2hMaXN0ZW5lcnMkaS5saXN0ZW5lcjtcbiAgICAgICAgICAgICAgaWYgKGluc3RhbmNlICE9PSBwcmV2aW91c0luc3RhbmNlICYmIGV2ZW50LmlzUHJvcGFnYXRpb25TdG9wcGVkKCkpXG4gICAgICAgICAgICAgICAgYnJlYWsgYTtcbiAgICAgICAgICAgICAgbnVsbCAhPT0gaW5zdGFuY2VcbiAgICAgICAgICAgICAgICA/IHJ1bldpdGhGaWJlckluREVWKFxuICAgICAgICAgICAgICAgICAgICBpbnN0YW5jZSxcbiAgICAgICAgICAgICAgICAgICAgZXhlY3V0ZURpc3BhdGNoLFxuICAgICAgICAgICAgICAgICAgICBldmVudCxcbiAgICAgICAgICAgICAgICAgICAgX2Rpc3BhdGNoTGlzdGVuZXJzJGksXG4gICAgICAgICAgICAgICAgICAgIGN1cnJlbnRUYXJnZXRcbiAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICA6IGV4ZWN1dGVEaXNwYXRjaChldmVudCwgX2Rpc3BhdGNoTGlzdGVuZXJzJGksIGN1cnJlbnRUYXJnZXQpO1xuICAgICAgICAgICAgICBwcmV2aW91c0luc3RhbmNlID0gaW5zdGFuY2U7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgZWxzZVxuICAgICAgICAgICAgZm9yIChcbiAgICAgICAgICAgICAgaSRqc2NvbXAkMCA9IDA7XG4gICAgICAgICAgICAgIGkkanNjb21wJDAgPCBfZGlzcGF0Y2hRdWV1ZSRpLmxlbmd0aDtcbiAgICAgICAgICAgICAgaSRqc2NvbXAkMCsrXG4gICAgICAgICAgICApIHtcbiAgICAgICAgICAgICAgX2Rpc3BhdGNoTGlzdGVuZXJzJGkgPSBfZGlzcGF0Y2hRdWV1ZSRpW2kkanNjb21wJDBdO1xuICAgICAgICAgICAgICBpbnN0YW5jZSA9IF9kaXNwYXRjaExpc3RlbmVycyRpLmluc3RhbmNlO1xuICAgICAgICAgICAgICBjdXJyZW50VGFyZ2V0ID0gX2Rpc3BhdGNoTGlzdGVuZXJzJGkuY3VycmVudFRhcmdldDtcbiAgICAgICAgICAgICAgX2Rpc3BhdGNoTGlzdGVuZXJzJGkgPSBfZGlzcGF0Y2hMaXN0ZW5lcnMkaS5saXN0ZW5lcjtcbiAgICAgICAgICAgICAgaWYgKGluc3RhbmNlICE9PSBwcmV2aW91c0luc3RhbmNlICYmIGV2ZW50LmlzUHJvcGFnYXRpb25TdG9wcGVkKCkpXG4gICAgICAgICAgICAgICAgYnJlYWsgYTtcbiAgICAgICAgICAgICAgbnVsbCAhPT0gaW5zdGFuY2VcbiAgICAgICAgICAgICAgICA/IHJ1bldpdGhGaWJlckluREVWKFxuICAgICAgICAgICAgICAgICAgICBpbnN0YW5jZSxcbiAgICAgICAgICAgICAgICAgICAgZXhlY3V0ZURpc3BhdGNoLFxuICAgICAgICAgICAgICAgICAgICBldmVudCxcbiAgICAgICAgICAgICAgICAgICAgX2Rpc3BhdGNoTGlzdGVuZXJzJGksXG4gICAgICAgICAgICAgICAgICAgIGN1cnJlbnRUYXJnZXRcbiAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICA6IGV4ZWN1dGVEaXNwYXRjaChldmVudCwgX2Rpc3BhdGNoTGlzdGVuZXJzJGksIGN1cnJlbnRUYXJnZXQpO1xuICAgICAgICAgICAgICBwcmV2aW91c0luc3RhbmNlID0gaW5zdGFuY2U7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gICAgZnVuY3Rpb24gbGlzdGVuVG9Ob25EZWxlZ2F0ZWRFdmVudChkb21FdmVudE5hbWUsIHRhcmdldEVsZW1lbnQpIHtcbiAgICAgIG5vbkRlbGVnYXRlZEV2ZW50cy5oYXMoZG9tRXZlbnROYW1lKSB8fFxuICAgICAgICBjb25zb2xlLmVycm9yKFxuICAgICAgICAgICdEaWQgbm90IGV4cGVjdCBhIGxpc3RlblRvTm9uRGVsZWdhdGVkRXZlbnQoKSBjYWxsIGZvciBcIiVzXCIuIFRoaXMgaXMgYSBidWcgaW4gUmVhY3QuIFBsZWFzZSBmaWxlIGFuIGlzc3VlLicsXG4gICAgICAgICAgZG9tRXZlbnROYW1lXG4gICAgICAgICk7XG4gICAgICB2YXIgbGlzdGVuZXJTZXQgPSB0YXJnZXRFbGVtZW50W2ludGVybmFsRXZlbnRIYW5kbGVyc0tleV07XG4gICAgICB2b2lkIDAgPT09IGxpc3RlbmVyU2V0ICYmXG4gICAgICAgIChsaXN0ZW5lclNldCA9IHRhcmdldEVsZW1lbnRbaW50ZXJuYWxFdmVudEhhbmRsZXJzS2V5XSA9IG5ldyBTZXQoKSk7XG4gICAgICB2YXIgbGlzdGVuZXJTZXRLZXkgPSBkb21FdmVudE5hbWUgKyBcIl9fYnViYmxlXCI7XG4gICAgICBsaXN0ZW5lclNldC5oYXMobGlzdGVuZXJTZXRLZXkpIHx8XG4gICAgICAgIChhZGRUcmFwcGVkRXZlbnRMaXN0ZW5lcih0YXJnZXRFbGVtZW50LCBkb21FdmVudE5hbWUsIDIsICExKSxcbiAgICAgICAgbGlzdGVuZXJTZXQuYWRkKGxpc3RlbmVyU2V0S2V5KSk7XG4gICAgfVxuICAgIGZ1bmN0aW9uIGxpc3RlblRvTmF0aXZlRXZlbnQoZG9tRXZlbnROYW1lLCBpc0NhcHR1cmVQaGFzZUxpc3RlbmVyLCB0YXJnZXQpIHtcbiAgICAgIG5vbkRlbGVnYXRlZEV2ZW50cy5oYXMoZG9tRXZlbnROYW1lKSAmJlxuICAgICAgICAhaXNDYXB0dXJlUGhhc2VMaXN0ZW5lciAmJlxuICAgICAgICBjb25zb2xlLmVycm9yKFxuICAgICAgICAgICdEaWQgbm90IGV4cGVjdCBhIGxpc3RlblRvTmF0aXZlRXZlbnQoKSBjYWxsIGZvciBcIiVzXCIgaW4gdGhlIGJ1YmJsZSBwaGFzZS4gVGhpcyBpcyBhIGJ1ZyBpbiBSZWFjdC4gUGxlYXNlIGZpbGUgYW4gaXNzdWUuJyxcbiAgICAgICAgICBkb21FdmVudE5hbWVcbiAgICAgICAgKTtcbiAgICAgIHZhciBldmVudFN5c3RlbUZsYWdzID0gMDtcbiAgICAgIGlzQ2FwdHVyZVBoYXNlTGlzdGVuZXIgJiYgKGV2ZW50U3lzdGVtRmxhZ3MgfD0gNCk7XG4gICAgICBhZGRUcmFwcGVkRXZlbnRMaXN0ZW5lcihcbiAgICAgICAgdGFyZ2V0LFxuICAgICAgICBkb21FdmVudE5hbWUsXG4gICAgICAgIGV2ZW50U3lzdGVtRmxhZ3MsXG4gICAgICAgIGlzQ2FwdHVyZVBoYXNlTGlzdGVuZXJcbiAgICAgICk7XG4gICAgfVxuICAgIGZ1bmN0aW9uIGxpc3RlblRvQWxsU3VwcG9ydGVkRXZlbnRzKHJvb3RDb250YWluZXJFbGVtZW50KSB7XG4gICAgICBpZiAoIXJvb3RDb250YWluZXJFbGVtZW50W2xpc3RlbmluZ01hcmtlcl0pIHtcbiAgICAgICAgcm9vdENvbnRhaW5lckVsZW1lbnRbbGlzdGVuaW5nTWFya2VyXSA9ICEwO1xuICAgICAgICBhbGxOYXRpdmVFdmVudHMuZm9yRWFjaChmdW5jdGlvbiAoZG9tRXZlbnROYW1lKSB7XG4gICAgICAgICAgXCJzZWxlY3Rpb25jaGFuZ2VcIiAhPT0gZG9tRXZlbnROYW1lICYmXG4gICAgICAgICAgICAobm9uRGVsZWdhdGVkRXZlbnRzLmhhcyhkb21FdmVudE5hbWUpIHx8XG4gICAgICAgICAgICAgIGxpc3RlblRvTmF0aXZlRXZlbnQoZG9tRXZlbnROYW1lLCAhMSwgcm9vdENvbnRhaW5lckVsZW1lbnQpLFxuICAgICAgICAgICAgbGlzdGVuVG9OYXRpdmVFdmVudChkb21FdmVudE5hbWUsICEwLCByb290Q29udGFpbmVyRWxlbWVudCkpO1xuICAgICAgICB9KTtcbiAgICAgICAgdmFyIG93bmVyRG9jdW1lbnQgPVxuICAgICAgICAgIDkgPT09IHJvb3RDb250YWluZXJFbGVtZW50Lm5vZGVUeXBlXG4gICAgICAgICAgICA/IHJvb3RDb250YWluZXJFbGVtZW50XG4gICAgICAgICAgICA6IHJvb3RDb250YWluZXJFbGVtZW50Lm93bmVyRG9jdW1lbnQ7XG4gICAgICAgIG51bGwgPT09IG93bmVyRG9jdW1lbnQgfHxcbiAgICAgICAgICBvd25lckRvY3VtZW50W2xpc3RlbmluZ01hcmtlcl0gfHxcbiAgICAgICAgICAoKG93bmVyRG9jdW1lbnRbbGlzdGVuaW5nTWFya2VyXSA9ICEwKSxcbiAgICAgICAgICBsaXN0ZW5Ub05hdGl2ZUV2ZW50KFwic2VsZWN0aW9uY2hhbmdlXCIsICExLCBvd25lckRvY3VtZW50KSk7XG4gICAgICB9XG4gICAgfVxuICAgIGZ1bmN0aW9uIGFkZFRyYXBwZWRFdmVudExpc3RlbmVyKFxuICAgICAgdGFyZ2V0Q29udGFpbmVyLFxuICAgICAgZG9tRXZlbnROYW1lLFxuICAgICAgZXZlbnRTeXN0ZW1GbGFncyxcbiAgICAgIGlzQ2FwdHVyZVBoYXNlTGlzdGVuZXJcbiAgICApIHtcbiAgICAgIHN3aXRjaCAoZ2V0RXZlbnRQcmlvcml0eShkb21FdmVudE5hbWUpKSB7XG4gICAgICAgIGNhc2UgRGlzY3JldGVFdmVudFByaW9yaXR5OlxuICAgICAgICAgIHZhciBsaXN0ZW5lcldyYXBwZXIgPSBkaXNwYXRjaERpc2NyZXRlRXZlbnQ7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgQ29udGludW91c0V2ZW50UHJpb3JpdHk6XG4gICAgICAgICAgbGlzdGVuZXJXcmFwcGVyID0gZGlzcGF0Y2hDb250aW51b3VzRXZlbnQ7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgbGlzdGVuZXJXcmFwcGVyID0gZGlzcGF0Y2hFdmVudDtcbiAgICAgIH1cbiAgICAgIGV2ZW50U3lzdGVtRmxhZ3MgPSBsaXN0ZW5lcldyYXBwZXIuYmluZChcbiAgICAgICAgbnVsbCxcbiAgICAgICAgZG9tRXZlbnROYW1lLFxuICAgICAgICBldmVudFN5c3RlbUZsYWdzLFxuICAgICAgICB0YXJnZXRDb250YWluZXJcbiAgICAgICk7XG4gICAgICBsaXN0ZW5lcldyYXBwZXIgPSB2b2lkIDA7XG4gICAgICAhcGFzc2l2ZUJyb3dzZXJFdmVudHNTdXBwb3J0ZWQgfHxcbiAgICAgICAgKFwidG91Y2hzdGFydFwiICE9PSBkb21FdmVudE5hbWUgJiZcbiAgICAgICAgICBcInRvdWNobW92ZVwiICE9PSBkb21FdmVudE5hbWUgJiZcbiAgICAgICAgICBcIndoZWVsXCIgIT09IGRvbUV2ZW50TmFtZSkgfHxcbiAgICAgICAgKGxpc3RlbmVyV3JhcHBlciA9ICEwKTtcbiAgICAgIGlzQ2FwdHVyZVBoYXNlTGlzdGVuZXJcbiAgICAgICAgPyB2b2lkIDAgIT09IGxpc3RlbmVyV3JhcHBlclxuICAgICAgICAgID8gdGFyZ2V0Q29udGFpbmVyLmFkZEV2ZW50TGlzdGVuZXIoZG9tRXZlbnROYW1lLCBldmVudFN5c3RlbUZsYWdzLCB7XG4gICAgICAgICAgICAgIGNhcHR1cmU6ICEwLFxuICAgICAgICAgICAgICBwYXNzaXZlOiBsaXN0ZW5lcldyYXBwZXJcbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgOiB0YXJnZXRDb250YWluZXIuYWRkRXZlbnRMaXN0ZW5lcihkb21FdmVudE5hbWUsIGV2ZW50U3lzdGVtRmxhZ3MsICEwKVxuICAgICAgICA6IHZvaWQgMCAhPT0gbGlzdGVuZXJXcmFwcGVyXG4gICAgICAgICAgPyB0YXJnZXRDb250YWluZXIuYWRkRXZlbnRMaXN0ZW5lcihkb21FdmVudE5hbWUsIGV2ZW50U3lzdGVtRmxhZ3MsIHtcbiAgICAgICAgICAgICAgcGFzc2l2ZTogbGlzdGVuZXJXcmFwcGVyXG4gICAgICAgICAgICB9KVxuICAgICAgICAgIDogdGFyZ2V0Q29udGFpbmVyLmFkZEV2ZW50TGlzdGVuZXIoXG4gICAgICAgICAgICAgIGRvbUV2ZW50TmFtZSxcbiAgICAgICAgICAgICAgZXZlbnRTeXN0ZW1GbGFncyxcbiAgICAgICAgICAgICAgITFcbiAgICAgICAgICAgICk7XG4gICAgfVxuICAgIGZ1bmN0aW9uIGRpc3BhdGNoRXZlbnRGb3JQbHVnaW5FdmVudFN5c3RlbShcbiAgICAgIGRvbUV2ZW50TmFtZSxcbiAgICAgIGV2ZW50U3lzdGVtRmxhZ3MsXG4gICAgICBuYXRpdmVFdmVudCxcbiAgICAgIHRhcmdldEluc3QkanNjb21wJDAsXG4gICAgICB0YXJnZXRDb250YWluZXJcbiAgICApIHtcbiAgICAgIHZhciBhbmNlc3Rvckluc3QgPSB0YXJnZXRJbnN0JGpzY29tcCQwO1xuICAgICAgaWYgKFxuICAgICAgICAwID09PSAoZXZlbnRTeXN0ZW1GbGFncyAmIDEpICYmXG4gICAgICAgIDAgPT09IChldmVudFN5c3RlbUZsYWdzICYgMikgJiZcbiAgICAgICAgbnVsbCAhPT0gdGFyZ2V0SW5zdCRqc2NvbXAkMFxuICAgICAgKVxuICAgICAgICBhOiBmb3IgKDs7KSB7XG4gICAgICAgICAgaWYgKG51bGwgPT09IHRhcmdldEluc3QkanNjb21wJDApIHJldHVybjtcbiAgICAgICAgICB2YXIgbm9kZVRhZyA9IHRhcmdldEluc3QkanNjb21wJDAudGFnO1xuICAgICAgICAgIGlmICgzID09PSBub2RlVGFnIHx8IDQgPT09IG5vZGVUYWcpIHtcbiAgICAgICAgICAgIHZhciBjb250YWluZXIgPSB0YXJnZXRJbnN0JGpzY29tcCQwLnN0YXRlTm9kZS5jb250YWluZXJJbmZvO1xuICAgICAgICAgICAgaWYgKGNvbnRhaW5lciA9PT0gdGFyZ2V0Q29udGFpbmVyKSBicmVhaztcbiAgICAgICAgICAgIGlmICg0ID09PSBub2RlVGFnKVxuICAgICAgICAgICAgICBmb3IgKG5vZGVUYWcgPSB0YXJnZXRJbnN0JGpzY29tcCQwLnJldHVybjsgbnVsbCAhPT0gbm9kZVRhZzsgKSB7XG4gICAgICAgICAgICAgICAgdmFyIGdyYW5kVGFnID0gbm9kZVRhZy50YWc7XG4gICAgICAgICAgICAgICAgaWYgKFxuICAgICAgICAgICAgICAgICAgKDMgPT09IGdyYW5kVGFnIHx8IDQgPT09IGdyYW5kVGFnKSAmJlxuICAgICAgICAgICAgICAgICAgbm9kZVRhZy5zdGF0ZU5vZGUuY29udGFpbmVySW5mbyA9PT0gdGFyZ2V0Q29udGFpbmVyXG4gICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgIG5vZGVUYWcgPSBub2RlVGFnLnJldHVybjtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgZm9yICg7IG51bGwgIT09IGNvbnRhaW5lcjsgKSB7XG4gICAgICAgICAgICAgIG5vZGVUYWcgPSBnZXRDbG9zZXN0SW5zdGFuY2VGcm9tTm9kZShjb250YWluZXIpO1xuICAgICAgICAgICAgICBpZiAobnVsbCA9PT0gbm9kZVRhZykgcmV0dXJuO1xuICAgICAgICAgICAgICBncmFuZFRhZyA9IG5vZGVUYWcudGFnO1xuICAgICAgICAgICAgICBpZiAoXG4gICAgICAgICAgICAgICAgNSA9PT0gZ3JhbmRUYWcgfHxcbiAgICAgICAgICAgICAgICA2ID09PSBncmFuZFRhZyB8fFxuICAgICAgICAgICAgICAgIDI2ID09PSBncmFuZFRhZyB8fFxuICAgICAgICAgICAgICAgIDI3ID09PSBncmFuZFRhZ1xuICAgICAgICAgICAgICApIHtcbiAgICAgICAgICAgICAgICB0YXJnZXRJbnN0JGpzY29tcCQwID0gYW5jZXN0b3JJbnN0ID0gbm9kZVRhZztcbiAgICAgICAgICAgICAgICBjb250aW51ZSBhO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIGNvbnRhaW5lciA9IGNvbnRhaW5lci5wYXJlbnROb2RlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgICB0YXJnZXRJbnN0JGpzY29tcCQwID0gdGFyZ2V0SW5zdCRqc2NvbXAkMC5yZXR1cm47XG4gICAgICAgIH1cbiAgICAgIGJhdGNoZWRVcGRhdGVzJDEoZnVuY3Rpb24gKCkge1xuICAgICAgICB2YXIgdGFyZ2V0SW5zdCA9IGFuY2VzdG9ySW5zdCxcbiAgICAgICAgICBuYXRpdmVFdmVudFRhcmdldCA9IGdldEV2ZW50VGFyZ2V0KG5hdGl2ZUV2ZW50KSxcbiAgICAgICAgICBkaXNwYXRjaFF1ZXVlID0gW107XG4gICAgICAgIGE6IHtcbiAgICAgICAgICB2YXIgcmVhY3ROYW1lID0gdG9wTGV2ZWxFdmVudHNUb1JlYWN0TmFtZXMuZ2V0KGRvbUV2ZW50TmFtZSk7XG4gICAgICAgICAgaWYgKHZvaWQgMCAhPT0gcmVhY3ROYW1lKSB7XG4gICAgICAgICAgICB2YXIgU3ludGhldGljRXZlbnRDdG9yID0gU3ludGhldGljRXZlbnQsXG4gICAgICAgICAgICAgIHJlYWN0RXZlbnRUeXBlID0gZG9tRXZlbnROYW1lO1xuICAgICAgICAgICAgc3dpdGNoIChkb21FdmVudE5hbWUpIHtcbiAgICAgICAgICAgICAgY2FzZSBcImtleXByZXNzXCI6XG4gICAgICAgICAgICAgICAgaWYgKDAgPT09IGdldEV2ZW50Q2hhckNvZGUobmF0aXZlRXZlbnQpKSBicmVhayBhO1xuICAgICAgICAgICAgICBjYXNlIFwia2V5ZG93blwiOlxuICAgICAgICAgICAgICBjYXNlIFwia2V5dXBcIjpcbiAgICAgICAgICAgICAgICBTeW50aGV0aWNFdmVudEN0b3IgPSBTeW50aGV0aWNLZXlib2FyZEV2ZW50O1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICBjYXNlIFwiZm9jdXNpblwiOlxuICAgICAgICAgICAgICAgIHJlYWN0RXZlbnRUeXBlID0gXCJmb2N1c1wiO1xuICAgICAgICAgICAgICAgIFN5bnRoZXRpY0V2ZW50Q3RvciA9IFN5bnRoZXRpY0ZvY3VzRXZlbnQ7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgIGNhc2UgXCJmb2N1c291dFwiOlxuICAgICAgICAgICAgICAgIHJlYWN0RXZlbnRUeXBlID0gXCJibHVyXCI7XG4gICAgICAgICAgICAgICAgU3ludGhldGljRXZlbnRDdG9yID0gU3ludGhldGljRm9jdXNFdmVudDtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgY2FzZSBcImJlZm9yZWJsdXJcIjpcbiAgICAgICAgICAgICAgY2FzZSBcImFmdGVyYmx1clwiOlxuICAgICAgICAgICAgICAgIFN5bnRoZXRpY0V2ZW50Q3RvciA9IFN5bnRoZXRpY0ZvY3VzRXZlbnQ7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgIGNhc2UgXCJjbGlja1wiOlxuICAgICAgICAgICAgICAgIGlmICgyID09PSBuYXRpdmVFdmVudC5idXR0b24pIGJyZWFrIGE7XG4gICAgICAgICAgICAgIGNhc2UgXCJhdXhjbGlja1wiOlxuICAgICAgICAgICAgICBjYXNlIFwiZGJsY2xpY2tcIjpcbiAgICAgICAgICAgICAgY2FzZSBcIm1vdXNlZG93blwiOlxuICAgICAgICAgICAgICBjYXNlIFwibW91c2Vtb3ZlXCI6XG4gICAgICAgICAgICAgIGNhc2UgXCJtb3VzZXVwXCI6XG4gICAgICAgICAgICAgIGNhc2UgXCJtb3VzZW91dFwiOlxuICAgICAgICAgICAgICBjYXNlIFwibW91c2VvdmVyXCI6XG4gICAgICAgICAgICAgIGNhc2UgXCJjb250ZXh0bWVudVwiOlxuICAgICAgICAgICAgICAgIFN5bnRoZXRpY0V2ZW50Q3RvciA9IFN5bnRoZXRpY01vdXNlRXZlbnQ7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgIGNhc2UgXCJkcmFnXCI6XG4gICAgICAgICAgICAgIGNhc2UgXCJkcmFnZW5kXCI6XG4gICAgICAgICAgICAgIGNhc2UgXCJkcmFnZW50ZXJcIjpcbiAgICAgICAgICAgICAgY2FzZSBcImRyYWdleGl0XCI6XG4gICAgICAgICAgICAgIGNhc2UgXCJkcmFnbGVhdmVcIjpcbiAgICAgICAgICAgICAgY2FzZSBcImRyYWdvdmVyXCI6XG4gICAgICAgICAgICAgIGNhc2UgXCJkcmFnc3RhcnRcIjpcbiAgICAgICAgICAgICAgY2FzZSBcImRyb3BcIjpcbiAgICAgICAgICAgICAgICBTeW50aGV0aWNFdmVudEN0b3IgPSBTeW50aGV0aWNEcmFnRXZlbnQ7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgIGNhc2UgXCJ0b3VjaGNhbmNlbFwiOlxuICAgICAgICAgICAgICBjYXNlIFwidG91Y2hlbmRcIjpcbiAgICAgICAgICAgICAgY2FzZSBcInRvdWNobW92ZVwiOlxuICAgICAgICAgICAgICBjYXNlIFwidG91Y2hzdGFydFwiOlxuICAgICAgICAgICAgICAgIFN5bnRoZXRpY0V2ZW50Q3RvciA9IFN5bnRoZXRpY1RvdWNoRXZlbnQ7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgIGNhc2UgQU5JTUFUSU9OX0VORDpcbiAgICAgICAgICAgICAgY2FzZSBBTklNQVRJT05fSVRFUkFUSU9OOlxuICAgICAgICAgICAgICBjYXNlIEFOSU1BVElPTl9TVEFSVDpcbiAgICAgICAgICAgICAgICBTeW50aGV0aWNFdmVudEN0b3IgPSBTeW50aGV0aWNBbmltYXRpb25FdmVudDtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgY2FzZSBUUkFOU0lUSU9OX0VORDpcbiAgICAgICAgICAgICAgICBTeW50aGV0aWNFdmVudEN0b3IgPSBTeW50aGV0aWNUcmFuc2l0aW9uRXZlbnQ7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgIGNhc2UgXCJzY3JvbGxcIjpcbiAgICAgICAgICAgICAgY2FzZSBcInNjcm9sbGVuZFwiOlxuICAgICAgICAgICAgICAgIFN5bnRoZXRpY0V2ZW50Q3RvciA9IFN5bnRoZXRpY1VJRXZlbnQ7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgIGNhc2UgXCJ3aGVlbFwiOlxuICAgICAgICAgICAgICAgIFN5bnRoZXRpY0V2ZW50Q3RvciA9IFN5bnRoZXRpY1doZWVsRXZlbnQ7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgIGNhc2UgXCJjb3B5XCI6XG4gICAgICAgICAgICAgIGNhc2UgXCJjdXRcIjpcbiAgICAgICAgICAgICAgY2FzZSBcInBhc3RlXCI6XG4gICAgICAgICAgICAgICAgU3ludGhldGljRXZlbnRDdG9yID0gU3ludGhldGljQ2xpcGJvYXJkRXZlbnQ7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgIGNhc2UgXCJnb3Rwb2ludGVyY2FwdHVyZVwiOlxuICAgICAgICAgICAgICBjYXNlIFwibG9zdHBvaW50ZXJjYXB0dXJlXCI6XG4gICAgICAgICAgICAgIGNhc2UgXCJwb2ludGVyY2FuY2VsXCI6XG4gICAgICAgICAgICAgIGNhc2UgXCJwb2ludGVyZG93blwiOlxuICAgICAgICAgICAgICBjYXNlIFwicG9pbnRlcm1vdmVcIjpcbiAgICAgICAgICAgICAgY2FzZSBcInBvaW50ZXJvdXRcIjpcbiAgICAgICAgICAgICAgY2FzZSBcInBvaW50ZXJvdmVyXCI6XG4gICAgICAgICAgICAgIGNhc2UgXCJwb2ludGVydXBcIjpcbiAgICAgICAgICAgICAgICBTeW50aGV0aWNFdmVudEN0b3IgPSBTeW50aGV0aWNQb2ludGVyRXZlbnQ7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgIGNhc2UgXCJ0b2dnbGVcIjpcbiAgICAgICAgICAgICAgY2FzZSBcImJlZm9yZXRvZ2dsZVwiOlxuICAgICAgICAgICAgICAgIFN5bnRoZXRpY0V2ZW50Q3RvciA9IFN5bnRoZXRpY1RvZ2dsZUV2ZW50O1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdmFyIGluQ2FwdHVyZVBoYXNlID0gMCAhPT0gKGV2ZW50U3lzdGVtRmxhZ3MgJiA0KSxcbiAgICAgICAgICAgICAgYWNjdW11bGF0ZVRhcmdldE9ubHkgPVxuICAgICAgICAgICAgICAgICFpbkNhcHR1cmVQaGFzZSAmJlxuICAgICAgICAgICAgICAgIChcInNjcm9sbFwiID09PSBkb21FdmVudE5hbWUgfHwgXCJzY3JvbGxlbmRcIiA9PT0gZG9tRXZlbnROYW1lKSxcbiAgICAgICAgICAgICAgcmVhY3RFdmVudE5hbWUgPSBpbkNhcHR1cmVQaGFzZVxuICAgICAgICAgICAgICAgID8gbnVsbCAhPT0gcmVhY3ROYW1lXG4gICAgICAgICAgICAgICAgICA/IHJlYWN0TmFtZSArIFwiQ2FwdHVyZVwiXG4gICAgICAgICAgICAgICAgICA6IG51bGxcbiAgICAgICAgICAgICAgICA6IHJlYWN0TmFtZTtcbiAgICAgICAgICAgIGluQ2FwdHVyZVBoYXNlID0gW107XG4gICAgICAgICAgICBmb3IgKFxuICAgICAgICAgICAgICB2YXIgaW5zdGFuY2UgPSB0YXJnZXRJbnN0LCBsYXN0SG9zdENvbXBvbmVudDtcbiAgICAgICAgICAgICAgbnVsbCAhPT0gaW5zdGFuY2U7XG5cbiAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICB2YXIgX2luc3RhbmNlMiA9IGluc3RhbmNlO1xuICAgICAgICAgICAgICBsYXN0SG9zdENvbXBvbmVudCA9IF9pbnN0YW5jZTIuc3RhdGVOb2RlO1xuICAgICAgICAgICAgICBfaW5zdGFuY2UyID0gX2luc3RhbmNlMi50YWc7XG4gICAgICAgICAgICAgICg1ICE9PSBfaW5zdGFuY2UyICYmIDI2ICE9PSBfaW5zdGFuY2UyICYmIDI3ICE9PSBfaW5zdGFuY2UyKSB8fFxuICAgICAgICAgICAgICAgIG51bGwgPT09IGxhc3RIb3N0Q29tcG9uZW50IHx8XG4gICAgICAgICAgICAgICAgbnVsbCA9PT0gcmVhY3RFdmVudE5hbWUgfHxcbiAgICAgICAgICAgICAgICAoKF9pbnN0YW5jZTIgPSBnZXRMaXN0ZW5lcihpbnN0YW5jZSwgcmVhY3RFdmVudE5hbWUpKSxcbiAgICAgICAgICAgICAgICBudWxsICE9IF9pbnN0YW5jZTIgJiZcbiAgICAgICAgICAgICAgICAgIGluQ2FwdHVyZVBoYXNlLnB1c2goXG4gICAgICAgICAgICAgICAgICAgIGNyZWF0ZURpc3BhdGNoTGlzdGVuZXIoXG4gICAgICAgICAgICAgICAgICAgICAgaW5zdGFuY2UsXG4gICAgICAgICAgICAgICAgICAgICAgX2luc3RhbmNlMixcbiAgICAgICAgICAgICAgICAgICAgICBsYXN0SG9zdENvbXBvbmVudFxuICAgICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgICApKTtcbiAgICAgICAgICAgICAgaWYgKGFjY3VtdWxhdGVUYXJnZXRPbmx5KSBicmVhaztcbiAgICAgICAgICAgICAgaW5zdGFuY2UgPSBpbnN0YW5jZS5yZXR1cm47XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAwIDwgaW5DYXB0dXJlUGhhc2UubGVuZ3RoICYmXG4gICAgICAgICAgICAgICgocmVhY3ROYW1lID0gbmV3IFN5bnRoZXRpY0V2ZW50Q3RvcihcbiAgICAgICAgICAgICAgICByZWFjdE5hbWUsXG4gICAgICAgICAgICAgICAgcmVhY3RFdmVudFR5cGUsXG4gICAgICAgICAgICAgICAgbnVsbCxcbiAgICAgICAgICAgICAgICBuYXRpdmVFdmVudCxcbiAgICAgICAgICAgICAgICBuYXRpdmVFdmVudFRhcmdldFxuICAgICAgICAgICAgICApKSxcbiAgICAgICAgICAgICAgZGlzcGF0Y2hRdWV1ZS5wdXNoKHtcbiAgICAgICAgICAgICAgICBldmVudDogcmVhY3ROYW1lLFxuICAgICAgICAgICAgICAgIGxpc3RlbmVyczogaW5DYXB0dXJlUGhhc2VcbiAgICAgICAgICAgICAgfSkpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBpZiAoMCA9PT0gKGV2ZW50U3lzdGVtRmxhZ3MgJiA3KSkge1xuICAgICAgICAgIGE6IHtcbiAgICAgICAgICAgIHJlYWN0TmFtZSA9XG4gICAgICAgICAgICAgIFwibW91c2VvdmVyXCIgPT09IGRvbUV2ZW50TmFtZSB8fCBcInBvaW50ZXJvdmVyXCIgPT09IGRvbUV2ZW50TmFtZTtcbiAgICAgICAgICAgIFN5bnRoZXRpY0V2ZW50Q3RvciA9XG4gICAgICAgICAgICAgIFwibW91c2VvdXRcIiA9PT0gZG9tRXZlbnROYW1lIHx8IFwicG9pbnRlcm91dFwiID09PSBkb21FdmVudE5hbWU7XG4gICAgICAgICAgICBpZiAoXG4gICAgICAgICAgICAgIHJlYWN0TmFtZSAmJlxuICAgICAgICAgICAgICBuYXRpdmVFdmVudCAhPT0gY3VycmVudFJlcGxheWluZ0V2ZW50ICYmXG4gICAgICAgICAgICAgIChyZWFjdEV2ZW50VHlwZSA9XG4gICAgICAgICAgICAgICAgbmF0aXZlRXZlbnQucmVsYXRlZFRhcmdldCB8fCBuYXRpdmVFdmVudC5mcm9tRWxlbWVudCkgJiZcbiAgICAgICAgICAgICAgKGdldENsb3Nlc3RJbnN0YW5jZUZyb21Ob2RlKHJlYWN0RXZlbnRUeXBlKSB8fFxuICAgICAgICAgICAgICAgIHJlYWN0RXZlbnRUeXBlW2ludGVybmFsQ29udGFpbmVySW5zdGFuY2VLZXldKVxuICAgICAgICAgICAgKVxuICAgICAgICAgICAgICBicmVhayBhO1xuICAgICAgICAgICAgaWYgKFN5bnRoZXRpY0V2ZW50Q3RvciB8fCByZWFjdE5hbWUpIHtcbiAgICAgICAgICAgICAgcmVhY3ROYW1lID1cbiAgICAgICAgICAgICAgICBuYXRpdmVFdmVudFRhcmdldC53aW5kb3cgPT09IG5hdGl2ZUV2ZW50VGFyZ2V0XG4gICAgICAgICAgICAgICAgICA/IG5hdGl2ZUV2ZW50VGFyZ2V0XG4gICAgICAgICAgICAgICAgICA6IChyZWFjdE5hbWUgPSBuYXRpdmVFdmVudFRhcmdldC5vd25lckRvY3VtZW50KVxuICAgICAgICAgICAgICAgICAgICA/IHJlYWN0TmFtZS5kZWZhdWx0VmlldyB8fCByZWFjdE5hbWUucGFyZW50V2luZG93XG4gICAgICAgICAgICAgICAgICAgIDogd2luZG93O1xuICAgICAgICAgICAgICBpZiAoU3ludGhldGljRXZlbnRDdG9yKSB7XG4gICAgICAgICAgICAgICAgaWYgKFxuICAgICAgICAgICAgICAgICAgKChyZWFjdEV2ZW50VHlwZSA9XG4gICAgICAgICAgICAgICAgICAgIG5hdGl2ZUV2ZW50LnJlbGF0ZWRUYXJnZXQgfHwgbmF0aXZlRXZlbnQudG9FbGVtZW50KSxcbiAgICAgICAgICAgICAgICAgIChTeW50aGV0aWNFdmVudEN0b3IgPSB0YXJnZXRJbnN0KSxcbiAgICAgICAgICAgICAgICAgIChyZWFjdEV2ZW50VHlwZSA9IHJlYWN0RXZlbnRUeXBlXG4gICAgICAgICAgICAgICAgICAgID8gZ2V0Q2xvc2VzdEluc3RhbmNlRnJvbU5vZGUocmVhY3RFdmVudFR5cGUpXG4gICAgICAgICAgICAgICAgICAgIDogbnVsbCksXG4gICAgICAgICAgICAgICAgICBudWxsICE9PSByZWFjdEV2ZW50VHlwZSAmJlxuICAgICAgICAgICAgICAgICAgICAoKGFjY3VtdWxhdGVUYXJnZXRPbmx5ID1cbiAgICAgICAgICAgICAgICAgICAgICBnZXROZWFyZXN0TW91bnRlZEZpYmVyKHJlYWN0RXZlbnRUeXBlKSksXG4gICAgICAgICAgICAgICAgICAgIChpbkNhcHR1cmVQaGFzZSA9IHJlYWN0RXZlbnRUeXBlLnRhZyksXG4gICAgICAgICAgICAgICAgICAgIHJlYWN0RXZlbnRUeXBlICE9PSBhY2N1bXVsYXRlVGFyZ2V0T25seSB8fFxuICAgICAgICAgICAgICAgICAgICAgICg1ICE9PSBpbkNhcHR1cmVQaGFzZSAmJlxuICAgICAgICAgICAgICAgICAgICAgICAgMjcgIT09IGluQ2FwdHVyZVBoYXNlICYmXG4gICAgICAgICAgICAgICAgICAgICAgICA2ICE9PSBpbkNhcHR1cmVQaGFzZSkpKVxuICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICAgIHJlYWN0RXZlbnRUeXBlID0gbnVsbDtcbiAgICAgICAgICAgICAgfSBlbHNlIChTeW50aGV0aWNFdmVudEN0b3IgPSBudWxsKSwgKHJlYWN0RXZlbnRUeXBlID0gdGFyZ2V0SW5zdCk7XG4gICAgICAgICAgICAgIGlmIChTeW50aGV0aWNFdmVudEN0b3IgIT09IHJlYWN0RXZlbnRUeXBlKSB7XG4gICAgICAgICAgICAgICAgaW5DYXB0dXJlUGhhc2UgPSBTeW50aGV0aWNNb3VzZUV2ZW50O1xuICAgICAgICAgICAgICAgIF9pbnN0YW5jZTIgPSBcIm9uTW91c2VMZWF2ZVwiO1xuICAgICAgICAgICAgICAgIHJlYWN0RXZlbnROYW1lID0gXCJvbk1vdXNlRW50ZXJcIjtcbiAgICAgICAgICAgICAgICBpbnN0YW5jZSA9IFwibW91c2VcIjtcbiAgICAgICAgICAgICAgICBpZiAoXG4gICAgICAgICAgICAgICAgICBcInBvaW50ZXJvdXRcIiA9PT0gZG9tRXZlbnROYW1lIHx8XG4gICAgICAgICAgICAgICAgICBcInBvaW50ZXJvdmVyXCIgPT09IGRvbUV2ZW50TmFtZVxuICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICAgIChpbkNhcHR1cmVQaGFzZSA9IFN5bnRoZXRpY1BvaW50ZXJFdmVudCksXG4gICAgICAgICAgICAgICAgICAgIChfaW5zdGFuY2UyID0gXCJvblBvaW50ZXJMZWF2ZVwiKSxcbiAgICAgICAgICAgICAgICAgICAgKHJlYWN0RXZlbnROYW1lID0gXCJvblBvaW50ZXJFbnRlclwiKSxcbiAgICAgICAgICAgICAgICAgICAgKGluc3RhbmNlID0gXCJwb2ludGVyXCIpO1xuICAgICAgICAgICAgICAgIGFjY3VtdWxhdGVUYXJnZXRPbmx5ID1cbiAgICAgICAgICAgICAgICAgIG51bGwgPT0gU3ludGhldGljRXZlbnRDdG9yXG4gICAgICAgICAgICAgICAgICAgID8gcmVhY3ROYW1lXG4gICAgICAgICAgICAgICAgICAgIDogZ2V0Tm9kZUZyb21JbnN0YW5jZShTeW50aGV0aWNFdmVudEN0b3IpO1xuICAgICAgICAgICAgICAgIGxhc3RIb3N0Q29tcG9uZW50ID1cbiAgICAgICAgICAgICAgICAgIG51bGwgPT0gcmVhY3RFdmVudFR5cGVcbiAgICAgICAgICAgICAgICAgICAgPyByZWFjdE5hbWVcbiAgICAgICAgICAgICAgICAgICAgOiBnZXROb2RlRnJvbUluc3RhbmNlKHJlYWN0RXZlbnRUeXBlKTtcbiAgICAgICAgICAgICAgICByZWFjdE5hbWUgPSBuZXcgaW5DYXB0dXJlUGhhc2UoXG4gICAgICAgICAgICAgICAgICBfaW5zdGFuY2UyLFxuICAgICAgICAgICAgICAgICAgaW5zdGFuY2UgKyBcImxlYXZlXCIsXG4gICAgICAgICAgICAgICAgICBTeW50aGV0aWNFdmVudEN0b3IsXG4gICAgICAgICAgICAgICAgICBuYXRpdmVFdmVudCxcbiAgICAgICAgICAgICAgICAgIG5hdGl2ZUV2ZW50VGFyZ2V0XG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICByZWFjdE5hbWUudGFyZ2V0ID0gYWNjdW11bGF0ZVRhcmdldE9ubHk7XG4gICAgICAgICAgICAgICAgcmVhY3ROYW1lLnJlbGF0ZWRUYXJnZXQgPSBsYXN0SG9zdENvbXBvbmVudDtcbiAgICAgICAgICAgICAgICBfaW5zdGFuY2UyID0gbnVsbDtcbiAgICAgICAgICAgICAgICBnZXRDbG9zZXN0SW5zdGFuY2VGcm9tTm9kZShuYXRpdmVFdmVudFRhcmdldCkgPT09IHRhcmdldEluc3QgJiZcbiAgICAgICAgICAgICAgICAgICgoaW5DYXB0dXJlUGhhc2UgPSBuZXcgaW5DYXB0dXJlUGhhc2UoXG4gICAgICAgICAgICAgICAgICAgIHJlYWN0RXZlbnROYW1lLFxuICAgICAgICAgICAgICAgICAgICBpbnN0YW5jZSArIFwiZW50ZXJcIixcbiAgICAgICAgICAgICAgICAgICAgcmVhY3RFdmVudFR5cGUsXG4gICAgICAgICAgICAgICAgICAgIG5hdGl2ZUV2ZW50LFxuICAgICAgICAgICAgICAgICAgICBuYXRpdmVFdmVudFRhcmdldFxuICAgICAgICAgICAgICAgICAgKSksXG4gICAgICAgICAgICAgICAgICAoaW5DYXB0dXJlUGhhc2UudGFyZ2V0ID0gbGFzdEhvc3RDb21wb25lbnQpLFxuICAgICAgICAgICAgICAgICAgKGluQ2FwdHVyZVBoYXNlLnJlbGF0ZWRUYXJnZXQgPSBhY2N1bXVsYXRlVGFyZ2V0T25seSksXG4gICAgICAgICAgICAgICAgICAoX2luc3RhbmNlMiA9IGluQ2FwdHVyZVBoYXNlKSk7XG4gICAgICAgICAgICAgICAgYWNjdW11bGF0ZVRhcmdldE9ubHkgPSBfaW5zdGFuY2UyO1xuICAgICAgICAgICAgICAgIGlmIChTeW50aGV0aWNFdmVudEN0b3IgJiYgcmVhY3RFdmVudFR5cGUpXG4gICAgICAgICAgICAgICAgICBiOiB7XG4gICAgICAgICAgICAgICAgICAgIGluQ2FwdHVyZVBoYXNlID0gU3ludGhldGljRXZlbnRDdG9yO1xuICAgICAgICAgICAgICAgICAgICByZWFjdEV2ZW50TmFtZSA9IHJlYWN0RXZlbnRUeXBlO1xuICAgICAgICAgICAgICAgICAgICBpbnN0YW5jZSA9IDA7XG4gICAgICAgICAgICAgICAgICAgIGZvciAoXG4gICAgICAgICAgICAgICAgICAgICAgbGFzdEhvc3RDb21wb25lbnQgPSBpbkNhcHR1cmVQaGFzZTtcbiAgICAgICAgICAgICAgICAgICAgICBsYXN0SG9zdENvbXBvbmVudDtcbiAgICAgICAgICAgICAgICAgICAgICBsYXN0SG9zdENvbXBvbmVudCA9IGdldFBhcmVudChsYXN0SG9zdENvbXBvbmVudClcbiAgICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgICAgICAgIGluc3RhbmNlKys7XG4gICAgICAgICAgICAgICAgICAgIGxhc3RIb3N0Q29tcG9uZW50ID0gMDtcbiAgICAgICAgICAgICAgICAgICAgZm9yIChcbiAgICAgICAgICAgICAgICAgICAgICBfaW5zdGFuY2UyID0gcmVhY3RFdmVudE5hbWU7XG4gICAgICAgICAgICAgICAgICAgICAgX2luc3RhbmNlMjtcbiAgICAgICAgICAgICAgICAgICAgICBfaW5zdGFuY2UyID0gZ2V0UGFyZW50KF9pbnN0YW5jZTIpXG4gICAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICAgICAgICBsYXN0SG9zdENvbXBvbmVudCsrO1xuICAgICAgICAgICAgICAgICAgICBmb3IgKDsgMCA8IGluc3RhbmNlIC0gbGFzdEhvc3RDb21wb25lbnQ7IClcbiAgICAgICAgICAgICAgICAgICAgICAoaW5DYXB0dXJlUGhhc2UgPSBnZXRQYXJlbnQoaW5DYXB0dXJlUGhhc2UpKSwgaW5zdGFuY2UtLTtcbiAgICAgICAgICAgICAgICAgICAgZm9yICg7IDAgPCBsYXN0SG9zdENvbXBvbmVudCAtIGluc3RhbmNlOyApXG4gICAgICAgICAgICAgICAgICAgICAgKHJlYWN0RXZlbnROYW1lID0gZ2V0UGFyZW50KHJlYWN0RXZlbnROYW1lKSksXG4gICAgICAgICAgICAgICAgICAgICAgICBsYXN0SG9zdENvbXBvbmVudC0tO1xuICAgICAgICAgICAgICAgICAgICBmb3IgKDsgaW5zdGFuY2UtLTsgKSB7XG4gICAgICAgICAgICAgICAgICAgICAgaWYgKFxuICAgICAgICAgICAgICAgICAgICAgICAgaW5DYXB0dXJlUGhhc2UgPT09IHJlYWN0RXZlbnROYW1lIHx8XG4gICAgICAgICAgICAgICAgICAgICAgICAobnVsbCAhPT0gcmVhY3RFdmVudE5hbWUgJiZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgaW5DYXB0dXJlUGhhc2UgPT09IHJlYWN0RXZlbnROYW1lLmFsdGVybmF0ZSlcbiAgICAgICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgICAgICAgICBicmVhayBiO1xuICAgICAgICAgICAgICAgICAgICAgIGluQ2FwdHVyZVBoYXNlID0gZ2V0UGFyZW50KGluQ2FwdHVyZVBoYXNlKTtcbiAgICAgICAgICAgICAgICAgICAgICByZWFjdEV2ZW50TmFtZSA9IGdldFBhcmVudChyZWFjdEV2ZW50TmFtZSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgaW5DYXB0dXJlUGhhc2UgPSBudWxsO1xuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGVsc2UgaW5DYXB0dXJlUGhhc2UgPSBudWxsO1xuICAgICAgICAgICAgICAgIG51bGwgIT09IFN5bnRoZXRpY0V2ZW50Q3RvciAmJlxuICAgICAgICAgICAgICAgICAgYWNjdW11bGF0ZUVudGVyTGVhdmVMaXN0ZW5lcnNGb3JFdmVudChcbiAgICAgICAgICAgICAgICAgICAgZGlzcGF0Y2hRdWV1ZSxcbiAgICAgICAgICAgICAgICAgICAgcmVhY3ROYW1lLFxuICAgICAgICAgICAgICAgICAgICBTeW50aGV0aWNFdmVudEN0b3IsXG4gICAgICAgICAgICAgICAgICAgIGluQ2FwdHVyZVBoYXNlLFxuICAgICAgICAgICAgICAgICAgICAhMVxuICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICBudWxsICE9PSByZWFjdEV2ZW50VHlwZSAmJlxuICAgICAgICAgICAgICAgICAgbnVsbCAhPT0gYWNjdW11bGF0ZVRhcmdldE9ubHkgJiZcbiAgICAgICAgICAgICAgICAgIGFjY3VtdWxhdGVFbnRlckxlYXZlTGlzdGVuZXJzRm9yRXZlbnQoXG4gICAgICAgICAgICAgICAgICAgIGRpc3BhdGNoUXVldWUsXG4gICAgICAgICAgICAgICAgICAgIGFjY3VtdWxhdGVUYXJnZXRPbmx5LFxuICAgICAgICAgICAgICAgICAgICByZWFjdEV2ZW50VHlwZSxcbiAgICAgICAgICAgICAgICAgICAgaW5DYXB0dXJlUGhhc2UsXG4gICAgICAgICAgICAgICAgICAgICEwXG4gICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICAgIGE6IHtcbiAgICAgICAgICAgIHJlYWN0TmFtZSA9IHRhcmdldEluc3QgPyBnZXROb2RlRnJvbUluc3RhbmNlKHRhcmdldEluc3QpIDogd2luZG93O1xuICAgICAgICAgICAgU3ludGhldGljRXZlbnRDdG9yID1cbiAgICAgICAgICAgICAgcmVhY3ROYW1lLm5vZGVOYW1lICYmIHJlYWN0TmFtZS5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpO1xuICAgICAgICAgICAgaWYgKFxuICAgICAgICAgICAgICBcInNlbGVjdFwiID09PSBTeW50aGV0aWNFdmVudEN0b3IgfHxcbiAgICAgICAgICAgICAgKFwiaW5wdXRcIiA9PT0gU3ludGhldGljRXZlbnRDdG9yICYmIFwiZmlsZVwiID09PSByZWFjdE5hbWUudHlwZSlcbiAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgdmFyIGdldFRhcmdldEluc3RGdW5jID0gZ2V0VGFyZ2V0SW5zdEZvckNoYW5nZUV2ZW50O1xuICAgICAgICAgICAgZWxzZSBpZiAoaXNUZXh0SW5wdXRFbGVtZW50KHJlYWN0TmFtZSkpXG4gICAgICAgICAgICAgIGlmIChpc0lucHV0RXZlbnRTdXBwb3J0ZWQpXG4gICAgICAgICAgICAgICAgZ2V0VGFyZ2V0SW5zdEZ1bmMgPSBnZXRUYXJnZXRJbnN0Rm9ySW5wdXRPckNoYW5nZUV2ZW50O1xuICAgICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICBnZXRUYXJnZXRJbnN0RnVuYyA9IGdldFRhcmdldEluc3RGb3JJbnB1dEV2ZW50UG9seWZpbGw7XG4gICAgICAgICAgICAgICAgdmFyIGhhbmRsZUV2ZW50RnVuYyA9IGhhbmRsZUV2ZW50c0ZvcklucHV0RXZlbnRQb2x5ZmlsbDtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZVxuICAgICAgICAgICAgICAoU3ludGhldGljRXZlbnRDdG9yID0gcmVhY3ROYW1lLm5vZGVOYW1lKSxcbiAgICAgICAgICAgICAgICAhU3ludGhldGljRXZlbnRDdG9yIHx8XG4gICAgICAgICAgICAgICAgXCJpbnB1dFwiICE9PSBTeW50aGV0aWNFdmVudEN0b3IudG9Mb3dlckNhc2UoKSB8fFxuICAgICAgICAgICAgICAgIChcImNoZWNrYm94XCIgIT09IHJlYWN0TmFtZS50eXBlICYmIFwicmFkaW9cIiAhPT0gcmVhY3ROYW1lLnR5cGUpXG4gICAgICAgICAgICAgICAgICA/IHRhcmdldEluc3QgJiZcbiAgICAgICAgICAgICAgICAgICAgaXNDdXN0b21FbGVtZW50KHRhcmdldEluc3QuZWxlbWVudFR5cGUpICYmXG4gICAgICAgICAgICAgICAgICAgIChnZXRUYXJnZXRJbnN0RnVuYyA9IGdldFRhcmdldEluc3RGb3JDaGFuZ2VFdmVudClcbiAgICAgICAgICAgICAgICAgIDogKGdldFRhcmdldEluc3RGdW5jID0gZ2V0VGFyZ2V0SW5zdEZvckNsaWNrRXZlbnQpO1xuICAgICAgICAgICAgaWYgKFxuICAgICAgICAgICAgICBnZXRUYXJnZXRJbnN0RnVuYyAmJlxuICAgICAgICAgICAgICAoZ2V0VGFyZ2V0SW5zdEZ1bmMgPSBnZXRUYXJnZXRJbnN0RnVuYyhkb21FdmVudE5hbWUsIHRhcmdldEluc3QpKVxuICAgICAgICAgICAgKSB7XG4gICAgICAgICAgICAgIGNyZWF0ZUFuZEFjY3VtdWxhdGVDaGFuZ2VFdmVudChcbiAgICAgICAgICAgICAgICBkaXNwYXRjaFF1ZXVlLFxuICAgICAgICAgICAgICAgIGdldFRhcmdldEluc3RGdW5jLFxuICAgICAgICAgICAgICAgIG5hdGl2ZUV2ZW50LFxuICAgICAgICAgICAgICAgIG5hdGl2ZUV2ZW50VGFyZ2V0XG4gICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgIGJyZWFrIGE7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBoYW5kbGVFdmVudEZ1bmMgJiZcbiAgICAgICAgICAgICAgaGFuZGxlRXZlbnRGdW5jKGRvbUV2ZW50TmFtZSwgcmVhY3ROYW1lLCB0YXJnZXRJbnN0KTtcbiAgICAgICAgICAgIFwiZm9jdXNvdXRcIiA9PT0gZG9tRXZlbnROYW1lICYmXG4gICAgICAgICAgICAgIHRhcmdldEluc3QgJiZcbiAgICAgICAgICAgICAgXCJudW1iZXJcIiA9PT0gcmVhY3ROYW1lLnR5cGUgJiZcbiAgICAgICAgICAgICAgbnVsbCAhPSB0YXJnZXRJbnN0Lm1lbW9pemVkUHJvcHMudmFsdWUgJiZcbiAgICAgICAgICAgICAgc2V0RGVmYXVsdFZhbHVlKHJlYWN0TmFtZSwgXCJudW1iZXJcIiwgcmVhY3ROYW1lLnZhbHVlKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgaGFuZGxlRXZlbnRGdW5jID0gdGFyZ2V0SW5zdFxuICAgICAgICAgICAgPyBnZXROb2RlRnJvbUluc3RhbmNlKHRhcmdldEluc3QpXG4gICAgICAgICAgICA6IHdpbmRvdztcbiAgICAgICAgICBzd2l0Y2ggKGRvbUV2ZW50TmFtZSkge1xuICAgICAgICAgICAgY2FzZSBcImZvY3VzaW5cIjpcbiAgICAgICAgICAgICAgaWYgKFxuICAgICAgICAgICAgICAgIGlzVGV4dElucHV0RWxlbWVudChoYW5kbGVFdmVudEZ1bmMpIHx8XG4gICAgICAgICAgICAgICAgXCJ0cnVlXCIgPT09IGhhbmRsZUV2ZW50RnVuYy5jb250ZW50RWRpdGFibGVcbiAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgIChhY3RpdmVFbGVtZW50ID0gaGFuZGxlRXZlbnRGdW5jKSxcbiAgICAgICAgICAgICAgICAgIChhY3RpdmVFbGVtZW50SW5zdCA9IHRhcmdldEluc3QpLFxuICAgICAgICAgICAgICAgICAgKGxhc3RTZWxlY3Rpb24gPSBudWxsKTtcbiAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlIFwiZm9jdXNvdXRcIjpcbiAgICAgICAgICAgICAgbGFzdFNlbGVjdGlvbiA9IGFjdGl2ZUVsZW1lbnRJbnN0ID0gYWN0aXZlRWxlbWVudCA9IG51bGw7XG4gICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSBcIm1vdXNlZG93blwiOlxuICAgICAgICAgICAgICBtb3VzZURvd24gPSAhMDtcbiAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlIFwiY29udGV4dG1lbnVcIjpcbiAgICAgICAgICAgIGNhc2UgXCJtb3VzZXVwXCI6XG4gICAgICAgICAgICBjYXNlIFwiZHJhZ2VuZFwiOlxuICAgICAgICAgICAgICBtb3VzZURvd24gPSAhMTtcbiAgICAgICAgICAgICAgY29uc3RydWN0U2VsZWN0RXZlbnQoXG4gICAgICAgICAgICAgICAgZGlzcGF0Y2hRdWV1ZSxcbiAgICAgICAgICAgICAgICBuYXRpdmVFdmVudCxcbiAgICAgICAgICAgICAgICBuYXRpdmVFdmVudFRhcmdldFxuICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgXCJzZWxlY3Rpb25jaGFuZ2VcIjpcbiAgICAgICAgICAgICAgaWYgKHNraXBTZWxlY3Rpb25DaGFuZ2VFdmVudCkgYnJlYWs7XG4gICAgICAgICAgICBjYXNlIFwia2V5ZG93blwiOlxuICAgICAgICAgICAgY2FzZSBcImtleXVwXCI6XG4gICAgICAgICAgICAgIGNvbnN0cnVjdFNlbGVjdEV2ZW50KFxuICAgICAgICAgICAgICAgIGRpc3BhdGNoUXVldWUsXG4gICAgICAgICAgICAgICAgbmF0aXZlRXZlbnQsXG4gICAgICAgICAgICAgICAgbmF0aXZlRXZlbnRUYXJnZXRcbiAgICAgICAgICAgICAgKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgdmFyIGZhbGxiYWNrRGF0YTtcbiAgICAgICAgICBpZiAoY2FuVXNlQ29tcG9zaXRpb25FdmVudClcbiAgICAgICAgICAgIGI6IHtcbiAgICAgICAgICAgICAgc3dpdGNoIChkb21FdmVudE5hbWUpIHtcbiAgICAgICAgICAgICAgICBjYXNlIFwiY29tcG9zaXRpb25zdGFydFwiOlxuICAgICAgICAgICAgICAgICAgdmFyIGV2ZW50VHlwZSA9IFwib25Db21wb3NpdGlvblN0YXJ0XCI7XG4gICAgICAgICAgICAgICAgICBicmVhayBiO1xuICAgICAgICAgICAgICAgIGNhc2UgXCJjb21wb3NpdGlvbmVuZFwiOlxuICAgICAgICAgICAgICAgICAgZXZlbnRUeXBlID0gXCJvbkNvbXBvc2l0aW9uRW5kXCI7XG4gICAgICAgICAgICAgICAgICBicmVhayBiO1xuICAgICAgICAgICAgICAgIGNhc2UgXCJjb21wb3NpdGlvbnVwZGF0ZVwiOlxuICAgICAgICAgICAgICAgICAgZXZlbnRUeXBlID0gXCJvbkNvbXBvc2l0aW9uVXBkYXRlXCI7XG4gICAgICAgICAgICAgICAgICBicmVhayBiO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIGV2ZW50VHlwZSA9IHZvaWQgMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICBlbHNlXG4gICAgICAgICAgICBpc0NvbXBvc2luZ1xuICAgICAgICAgICAgICA/IGlzRmFsbGJhY2tDb21wb3NpdGlvbkVuZChkb21FdmVudE5hbWUsIG5hdGl2ZUV2ZW50KSAmJlxuICAgICAgICAgICAgICAgIChldmVudFR5cGUgPSBcIm9uQ29tcG9zaXRpb25FbmRcIilcbiAgICAgICAgICAgICAgOiBcImtleWRvd25cIiA9PT0gZG9tRXZlbnROYW1lICYmXG4gICAgICAgICAgICAgICAgbmF0aXZlRXZlbnQua2V5Q29kZSA9PT0gU1RBUlRfS0VZQ09ERSAmJlxuICAgICAgICAgICAgICAgIChldmVudFR5cGUgPSBcIm9uQ29tcG9zaXRpb25TdGFydFwiKTtcbiAgICAgICAgICBldmVudFR5cGUgJiZcbiAgICAgICAgICAgICh1c2VGYWxsYmFja0NvbXBvc2l0aW9uRGF0YSAmJlxuICAgICAgICAgICAgICBcImtvXCIgIT09IG5hdGl2ZUV2ZW50LmxvY2FsZSAmJlxuICAgICAgICAgICAgICAoaXNDb21wb3NpbmcgfHwgXCJvbkNvbXBvc2l0aW9uU3RhcnRcIiAhPT0gZXZlbnRUeXBlXG4gICAgICAgICAgICAgICAgPyBcIm9uQ29tcG9zaXRpb25FbmRcIiA9PT0gZXZlbnRUeXBlICYmXG4gICAgICAgICAgICAgICAgICBpc0NvbXBvc2luZyAmJlxuICAgICAgICAgICAgICAgICAgKGZhbGxiYWNrRGF0YSA9IGdldERhdGEoKSlcbiAgICAgICAgICAgICAgICA6ICgocm9vdCA9IG5hdGl2ZUV2ZW50VGFyZ2V0KSxcbiAgICAgICAgICAgICAgICAgIChzdGFydFRleHQgPSBcInZhbHVlXCIgaW4gcm9vdCA/IHJvb3QudmFsdWUgOiByb290LnRleHRDb250ZW50KSxcbiAgICAgICAgICAgICAgICAgIChpc0NvbXBvc2luZyA9ICEwKSkpLFxuICAgICAgICAgICAgKGhhbmRsZUV2ZW50RnVuYyA9IGFjY3VtdWxhdGVUd29QaGFzZUxpc3RlbmVycyhcbiAgICAgICAgICAgICAgdGFyZ2V0SW5zdCxcbiAgICAgICAgICAgICAgZXZlbnRUeXBlXG4gICAgICAgICAgICApKSxcbiAgICAgICAgICAgIDAgPCBoYW5kbGVFdmVudEZ1bmMubGVuZ3RoICYmXG4gICAgICAgICAgICAgICgoZXZlbnRUeXBlID0gbmV3IFN5bnRoZXRpY0NvbXBvc2l0aW9uRXZlbnQoXG4gICAgICAgICAgICAgICAgZXZlbnRUeXBlLFxuICAgICAgICAgICAgICAgIGRvbUV2ZW50TmFtZSxcbiAgICAgICAgICAgICAgICBudWxsLFxuICAgICAgICAgICAgICAgIG5hdGl2ZUV2ZW50LFxuICAgICAgICAgICAgICAgIG5hdGl2ZUV2ZW50VGFyZ2V0XG4gICAgICAgICAgICAgICkpLFxuICAgICAgICAgICAgICBkaXNwYXRjaFF1ZXVlLnB1c2goe1xuICAgICAgICAgICAgICAgIGV2ZW50OiBldmVudFR5cGUsXG4gICAgICAgICAgICAgICAgbGlzdGVuZXJzOiBoYW5kbGVFdmVudEZ1bmNcbiAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgIGZhbGxiYWNrRGF0YVxuICAgICAgICAgICAgICAgID8gKGV2ZW50VHlwZS5kYXRhID0gZmFsbGJhY2tEYXRhKVxuICAgICAgICAgICAgICAgIDogKChmYWxsYmFja0RhdGEgPSBnZXREYXRhRnJvbUN1c3RvbUV2ZW50KG5hdGl2ZUV2ZW50KSksXG4gICAgICAgICAgICAgICAgICBudWxsICE9PSBmYWxsYmFja0RhdGEgJiYgKGV2ZW50VHlwZS5kYXRhID0gZmFsbGJhY2tEYXRhKSkpKTtcbiAgICAgICAgICBpZiAoXG4gICAgICAgICAgICAoZmFsbGJhY2tEYXRhID0gY2FuVXNlVGV4dElucHV0RXZlbnRcbiAgICAgICAgICAgICAgPyBnZXROYXRpdmVCZWZvcmVJbnB1dENoYXJzKGRvbUV2ZW50TmFtZSwgbmF0aXZlRXZlbnQpXG4gICAgICAgICAgICAgIDogZ2V0RmFsbGJhY2tCZWZvcmVJbnB1dENoYXJzKGRvbUV2ZW50TmFtZSwgbmF0aXZlRXZlbnQpKVxuICAgICAgICAgIClcbiAgICAgICAgICAgIChldmVudFR5cGUgPSBhY2N1bXVsYXRlVHdvUGhhc2VMaXN0ZW5lcnMoXG4gICAgICAgICAgICAgIHRhcmdldEluc3QsXG4gICAgICAgICAgICAgIFwib25CZWZvcmVJbnB1dFwiXG4gICAgICAgICAgICApKSxcbiAgICAgICAgICAgICAgMCA8IGV2ZW50VHlwZS5sZW5ndGggJiZcbiAgICAgICAgICAgICAgICAoKGhhbmRsZUV2ZW50RnVuYyA9IG5ldyBTeW50aGV0aWNJbnB1dEV2ZW50KFxuICAgICAgICAgICAgICAgICAgXCJvbkJlZm9yZUlucHV0XCIsXG4gICAgICAgICAgICAgICAgICBcImJlZm9yZWlucHV0XCIsXG4gICAgICAgICAgICAgICAgICBudWxsLFxuICAgICAgICAgICAgICAgICAgbmF0aXZlRXZlbnQsXG4gICAgICAgICAgICAgICAgICBuYXRpdmVFdmVudFRhcmdldFxuICAgICAgICAgICAgICAgICkpLFxuICAgICAgICAgICAgICAgIGRpc3BhdGNoUXVldWUucHVzaCh7XG4gICAgICAgICAgICAgICAgICBldmVudDogaGFuZGxlRXZlbnRGdW5jLFxuICAgICAgICAgICAgICAgICAgbGlzdGVuZXJzOiBldmVudFR5cGVcbiAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgICAoaGFuZGxlRXZlbnRGdW5jLmRhdGEgPSBmYWxsYmFja0RhdGEpKTtcbiAgICAgICAgICBleHRyYWN0RXZlbnRzJDEoXG4gICAgICAgICAgICBkaXNwYXRjaFF1ZXVlLFxuICAgICAgICAgICAgZG9tRXZlbnROYW1lLFxuICAgICAgICAgICAgdGFyZ2V0SW5zdCxcbiAgICAgICAgICAgIG5hdGl2ZUV2ZW50LFxuICAgICAgICAgICAgbmF0aXZlRXZlbnRUYXJnZXRcbiAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgICAgIHByb2Nlc3NEaXNwYXRjaFF1ZXVlKGRpc3BhdGNoUXVldWUsIGV2ZW50U3lzdGVtRmxhZ3MpO1xuICAgICAgfSk7XG4gICAgfVxuICAgIGZ1bmN0aW9uIGNyZWF0ZURpc3BhdGNoTGlzdGVuZXIoaW5zdGFuY2UsIGxpc3RlbmVyLCBjdXJyZW50VGFyZ2V0KSB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICBpbnN0YW5jZTogaW5zdGFuY2UsXG4gICAgICAgIGxpc3RlbmVyOiBsaXN0ZW5lcixcbiAgICAgICAgY3VycmVudFRhcmdldDogY3VycmVudFRhcmdldFxuICAgICAgfTtcbiAgICB9XG4gICAgZnVuY3Rpb24gYWNjdW11bGF0ZVR3b1BoYXNlTGlzdGVuZXJzKHRhcmdldEZpYmVyLCByZWFjdE5hbWUpIHtcbiAgICAgIGZvciAoXG4gICAgICAgIHZhciBjYXB0dXJlTmFtZSA9IHJlYWN0TmFtZSArIFwiQ2FwdHVyZVwiLCBsaXN0ZW5lcnMgPSBbXTtcbiAgICAgICAgbnVsbCAhPT0gdGFyZ2V0RmliZXI7XG5cbiAgICAgICkge1xuICAgICAgICB2YXIgX2luc3RhbmNlMyA9IHRhcmdldEZpYmVyLFxuICAgICAgICAgIHN0YXRlTm9kZSA9IF9pbnN0YW5jZTMuc3RhdGVOb2RlO1xuICAgICAgICBfaW5zdGFuY2UzID0gX2luc3RhbmNlMy50YWc7XG4gICAgICAgICg1ICE9PSBfaW5zdGFuY2UzICYmIDI2ICE9PSBfaW5zdGFuY2UzICYmIDI3ICE9PSBfaW5zdGFuY2UzKSB8fFxuICAgICAgICAgIG51bGwgPT09IHN0YXRlTm9kZSB8fFxuICAgICAgICAgICgoX2luc3RhbmNlMyA9IGdldExpc3RlbmVyKHRhcmdldEZpYmVyLCBjYXB0dXJlTmFtZSkpLFxuICAgICAgICAgIG51bGwgIT0gX2luc3RhbmNlMyAmJlxuICAgICAgICAgICAgbGlzdGVuZXJzLnVuc2hpZnQoXG4gICAgICAgICAgICAgIGNyZWF0ZURpc3BhdGNoTGlzdGVuZXIodGFyZ2V0RmliZXIsIF9pbnN0YW5jZTMsIHN0YXRlTm9kZSlcbiAgICAgICAgICAgICksXG4gICAgICAgICAgKF9pbnN0YW5jZTMgPSBnZXRMaXN0ZW5lcih0YXJnZXRGaWJlciwgcmVhY3ROYW1lKSksXG4gICAgICAgICAgbnVsbCAhPSBfaW5zdGFuY2UzICYmXG4gICAgICAgICAgICBsaXN0ZW5lcnMucHVzaChcbiAgICAgICAgICAgICAgY3JlYXRlRGlzcGF0Y2hMaXN0ZW5lcih0YXJnZXRGaWJlciwgX2luc3RhbmNlMywgc3RhdGVOb2RlKVxuICAgICAgICAgICAgKSk7XG4gICAgICAgIGlmICgzID09PSB0YXJnZXRGaWJlci50YWcpIHJldHVybiBsaXN0ZW5lcnM7XG4gICAgICAgIHRhcmdldEZpYmVyID0gdGFyZ2V0RmliZXIucmV0dXJuO1xuICAgICAgfVxuICAgICAgcmV0dXJuIFtdO1xuICAgIH1cbiAgICBmdW5jdGlvbiBnZXRQYXJlbnQoaW5zdCkge1xuICAgICAgaWYgKG51bGwgPT09IGluc3QpIHJldHVybiBudWxsO1xuICAgICAgZG8gaW5zdCA9IGluc3QucmV0dXJuO1xuICAgICAgd2hpbGUgKGluc3QgJiYgNSAhPT0gaW5zdC50YWcgJiYgMjcgIT09IGluc3QudGFnKTtcbiAgICAgIHJldHVybiBpbnN0ID8gaW5zdCA6IG51bGw7XG4gICAgfVxuICAgIGZ1bmN0aW9uIGFjY3VtdWxhdGVFbnRlckxlYXZlTGlzdGVuZXJzRm9yRXZlbnQoXG4gICAgICBkaXNwYXRjaFF1ZXVlLFxuICAgICAgZXZlbnQsXG4gICAgICB0YXJnZXQsXG4gICAgICBjb21tb24sXG4gICAgICBpbkNhcHR1cmVQaGFzZVxuICAgICkge1xuICAgICAgZm9yIChcbiAgICAgICAgdmFyIHJlZ2lzdHJhdGlvbk5hbWUgPSBldmVudC5fcmVhY3ROYW1lLCBsaXN0ZW5lcnMgPSBbXTtcbiAgICAgICAgbnVsbCAhPT0gdGFyZ2V0ICYmIHRhcmdldCAhPT0gY29tbW9uO1xuXG4gICAgICApIHtcbiAgICAgICAgdmFyIF9pbnN0YW5jZTQgPSB0YXJnZXQsXG4gICAgICAgICAgYWx0ZXJuYXRlID0gX2luc3RhbmNlNC5hbHRlcm5hdGUsXG4gICAgICAgICAgc3RhdGVOb2RlID0gX2luc3RhbmNlNC5zdGF0ZU5vZGU7XG4gICAgICAgIF9pbnN0YW5jZTQgPSBfaW5zdGFuY2U0LnRhZztcbiAgICAgICAgaWYgKG51bGwgIT09IGFsdGVybmF0ZSAmJiBhbHRlcm5hdGUgPT09IGNvbW1vbikgYnJlYWs7XG4gICAgICAgICg1ICE9PSBfaW5zdGFuY2U0ICYmIDI2ICE9PSBfaW5zdGFuY2U0ICYmIDI3ICE9PSBfaW5zdGFuY2U0KSB8fFxuICAgICAgICAgIG51bGwgPT09IHN0YXRlTm9kZSB8fFxuICAgICAgICAgICgoYWx0ZXJuYXRlID0gc3RhdGVOb2RlKSxcbiAgICAgICAgICBpbkNhcHR1cmVQaGFzZVxuICAgICAgICAgICAgPyAoKHN0YXRlTm9kZSA9IGdldExpc3RlbmVyKHRhcmdldCwgcmVnaXN0cmF0aW9uTmFtZSkpLFxuICAgICAgICAgICAgICBudWxsICE9IHN0YXRlTm9kZSAmJlxuICAgICAgICAgICAgICAgIGxpc3RlbmVycy51bnNoaWZ0KFxuICAgICAgICAgICAgICAgICAgY3JlYXRlRGlzcGF0Y2hMaXN0ZW5lcih0YXJnZXQsIHN0YXRlTm9kZSwgYWx0ZXJuYXRlKVxuICAgICAgICAgICAgICAgICkpXG4gICAgICAgICAgICA6IGluQ2FwdHVyZVBoYXNlIHx8XG4gICAgICAgICAgICAgICgoc3RhdGVOb2RlID0gZ2V0TGlzdGVuZXIodGFyZ2V0LCByZWdpc3RyYXRpb25OYW1lKSksXG4gICAgICAgICAgICAgIG51bGwgIT0gc3RhdGVOb2RlICYmXG4gICAgICAgICAgICAgICAgbGlzdGVuZXJzLnB1c2goXG4gICAgICAgICAgICAgICAgICBjcmVhdGVEaXNwYXRjaExpc3RlbmVyKHRhcmdldCwgc3RhdGVOb2RlLCBhbHRlcm5hdGUpXG4gICAgICAgICAgICAgICAgKSkpO1xuICAgICAgICB0YXJnZXQgPSB0YXJnZXQucmV0dXJuO1xuICAgICAgfVxuICAgICAgMCAhPT0gbGlzdGVuZXJzLmxlbmd0aCAmJlxuICAgICAgICBkaXNwYXRjaFF1ZXVlLnB1c2goeyBldmVudDogZXZlbnQsIGxpc3RlbmVyczogbGlzdGVuZXJzIH0pO1xuICAgIH1cbiAgICBmdW5jdGlvbiB2YWxpZGF0ZVByb3BlcnRpZXNJbkRldmVsb3BtZW50KHR5cGUsIHByb3BzKSB7XG4gICAgICB2YWxpZGF0ZVByb3BlcnRpZXMkMih0eXBlLCBwcm9wcyk7XG4gICAgICAoXCJpbnB1dFwiICE9PSB0eXBlICYmIFwidGV4dGFyZWFcIiAhPT0gdHlwZSAmJiBcInNlbGVjdFwiICE9PSB0eXBlKSB8fFxuICAgICAgICBudWxsID09IHByb3BzIHx8XG4gICAgICAgIG51bGwgIT09IHByb3BzLnZhbHVlIHx8XG4gICAgICAgIGRpZFdhcm5WYWx1ZU51bGwgfHxcbiAgICAgICAgKChkaWRXYXJuVmFsdWVOdWxsID0gITApLFxuICAgICAgICBcInNlbGVjdFwiID09PSB0eXBlICYmIHByb3BzLm11bHRpcGxlXG4gICAgICAgICAgPyBjb25zb2xlLmVycm9yKFxuICAgICAgICAgICAgICBcImB2YWx1ZWAgcHJvcCBvbiBgJXNgIHNob3VsZCBub3QgYmUgbnVsbC4gQ29uc2lkZXIgdXNpbmcgYW4gZW1wdHkgYXJyYXkgd2hlbiBgbXVsdGlwbGVgIGlzIHNldCB0byBgdHJ1ZWAgdG8gY2xlYXIgdGhlIGNvbXBvbmVudCBvciBgdW5kZWZpbmVkYCBmb3IgdW5jb250cm9sbGVkIGNvbXBvbmVudHMuXCIsXG4gICAgICAgICAgICAgIHR5cGVcbiAgICAgICAgICAgIClcbiAgICAgICAgICA6IGNvbnNvbGUuZXJyb3IoXG4gICAgICAgICAgICAgIFwiYHZhbHVlYCBwcm9wIG9uIGAlc2Agc2hvdWxkIG5vdCBiZSBudWxsLiBDb25zaWRlciB1c2luZyBhbiBlbXB0eSBzdHJpbmcgdG8gY2xlYXIgdGhlIGNvbXBvbmVudCBvciBgdW5kZWZpbmVkYCBmb3IgdW5jb250cm9sbGVkIGNvbXBvbmVudHMuXCIsXG4gICAgICAgICAgICAgIHR5cGVcbiAgICAgICAgICAgICkpO1xuICAgICAgdmFyIGV2ZW50UmVnaXN0cnkgPSB7XG4gICAgICAgIHJlZ2lzdHJhdGlvbk5hbWVEZXBlbmRlbmNpZXM6IHJlZ2lzdHJhdGlvbk5hbWVEZXBlbmRlbmNpZXMsXG4gICAgICAgIHBvc3NpYmxlUmVnaXN0cmF0aW9uTmFtZXM6IHBvc3NpYmxlUmVnaXN0cmF0aW9uTmFtZXNcbiAgICAgIH07XG4gICAgICBpc0N1c3RvbUVsZW1lbnQodHlwZSkgfHxcbiAgICAgICAgXCJzdHJpbmdcIiA9PT0gdHlwZW9mIHByb3BzLmlzIHx8XG4gICAgICAgIHdhcm5Vbmtub3duUHJvcGVydGllcyh0eXBlLCBwcm9wcywgZXZlbnRSZWdpc3RyeSk7XG4gICAgICBwcm9wcy5jb250ZW50RWRpdGFibGUgJiZcbiAgICAgICAgIXByb3BzLnN1cHByZXNzQ29udGVudEVkaXRhYmxlV2FybmluZyAmJlxuICAgICAgICBudWxsICE9IHByb3BzLmNoaWxkcmVuICYmXG4gICAgICAgIGNvbnNvbGUuZXJyb3IoXG4gICAgICAgICAgXCJBIGNvbXBvbmVudCBpcyBgY29udGVudEVkaXRhYmxlYCBhbmQgY29udGFpbnMgYGNoaWxkcmVuYCBtYW5hZ2VkIGJ5IFJlYWN0LiBJdCBpcyBub3cgeW91ciByZXNwb25zaWJpbGl0eSB0byBndWFyYW50ZWUgdGhhdCBub25lIG9mIHRob3NlIG5vZGVzIGFyZSB1bmV4cGVjdGVkbHkgbW9kaWZpZWQgb3IgZHVwbGljYXRlZC4gVGhpcyBpcyBwcm9iYWJseSBub3QgaW50ZW50aW9uYWwuXCJcbiAgICAgICAgKTtcbiAgICB9XG4gICAgZnVuY3Rpb24gd2FybkZvclByb3BEaWZmZXJlbmNlKFxuICAgICAgcHJvcE5hbWUsXG4gICAgICBzZXJ2ZXJWYWx1ZSxcbiAgICAgIGNsaWVudFZhbHVlLFxuICAgICAgc2VydmVyRGlmZmVyZW5jZXNcbiAgICApIHtcbiAgICAgIHNlcnZlclZhbHVlICE9PSBjbGllbnRWYWx1ZSAmJlxuICAgICAgICAoKGNsaWVudFZhbHVlID0gbm9ybWFsaXplTWFya3VwRm9yVGV4dE9yQXR0cmlidXRlKGNsaWVudFZhbHVlKSksXG4gICAgICAgIG5vcm1hbGl6ZU1hcmt1cEZvclRleHRPckF0dHJpYnV0ZShzZXJ2ZXJWYWx1ZSkgIT09IGNsaWVudFZhbHVlICYmXG4gICAgICAgICAgKHNlcnZlckRpZmZlcmVuY2VzW3Byb3BOYW1lXSA9IHNlcnZlclZhbHVlKSk7XG4gICAgfVxuICAgIGZ1bmN0aW9uIHdhcm5Gb3JFeHRyYUF0dHJpYnV0ZXMoXG4gICAgICBkb21FbGVtZW50LFxuICAgICAgYXR0cmlidXRlTmFtZXMsXG4gICAgICBzZXJ2ZXJEaWZmZXJlbmNlc1xuICAgICkge1xuICAgICAgYXR0cmlidXRlTmFtZXMuZm9yRWFjaChmdW5jdGlvbiAoYXR0cmlidXRlTmFtZSkge1xuICAgICAgICBzZXJ2ZXJEaWZmZXJlbmNlc1tnZXRQcm9wTmFtZUZyb21BdHRyaWJ1dGVOYW1lKGF0dHJpYnV0ZU5hbWUpXSA9XG4gICAgICAgICAgXCJzdHlsZVwiID09PSBhdHRyaWJ1dGVOYW1lXG4gICAgICAgICAgICA/IGdldFN0eWxlc09iamVjdEZyb21FbGVtZW50KGRvbUVsZW1lbnQpXG4gICAgICAgICAgICA6IGRvbUVsZW1lbnQuZ2V0QXR0cmlidXRlKGF0dHJpYnV0ZU5hbWUpO1xuICAgICAgfSk7XG4gICAgfVxuICAgIGZ1bmN0aW9uIHdhcm5Gb3JJbnZhbGlkRXZlbnRMaXN0ZW5lcihyZWdpc3RyYXRpb25OYW1lLCBsaXN0ZW5lcikge1xuICAgICAgITEgPT09IGxpc3RlbmVyXG4gICAgICAgID8gY29uc29sZS5lcnJvcihcbiAgICAgICAgICAgIFwiRXhwZWN0ZWQgYCVzYCBsaXN0ZW5lciB0byBiZSBhIGZ1bmN0aW9uLCBpbnN0ZWFkIGdvdCBgZmFsc2VgLlxcblxcbklmIHlvdSB1c2VkIHRvIGNvbmRpdGlvbmFsbHkgb21pdCBpdCB3aXRoICVzPXtjb25kaXRpb24gJiYgdmFsdWV9LCBwYXNzICVzPXtjb25kaXRpb24gPyB2YWx1ZSA6IHVuZGVmaW5lZH0gaW5zdGVhZC5cIixcbiAgICAgICAgICAgIHJlZ2lzdHJhdGlvbk5hbWUsXG4gICAgICAgICAgICByZWdpc3RyYXRpb25OYW1lLFxuICAgICAgICAgICAgcmVnaXN0cmF0aW9uTmFtZVxuICAgICAgICAgIClcbiAgICAgICAgOiBjb25zb2xlLmVycm9yKFxuICAgICAgICAgICAgXCJFeHBlY3RlZCBgJXNgIGxpc3RlbmVyIHRvIGJlIGEgZnVuY3Rpb24sIGluc3RlYWQgZ290IGEgdmFsdWUgb2YgYCVzYCB0eXBlLlwiLFxuICAgICAgICAgICAgcmVnaXN0cmF0aW9uTmFtZSxcbiAgICAgICAgICAgIHR5cGVvZiBsaXN0ZW5lclxuICAgICAgICAgICk7XG4gICAgfVxuICAgIGZ1bmN0aW9uIG5vcm1hbGl6ZUhUTUwocGFyZW50LCBodG1sKSB7XG4gICAgICBwYXJlbnQgPVxuICAgICAgICBwYXJlbnQubmFtZXNwYWNlVVJJID09PSBNQVRIX05BTUVTUEFDRSB8fFxuICAgICAgICBwYXJlbnQubmFtZXNwYWNlVVJJID09PSBTVkdfTkFNRVNQQUNFXG4gICAgICAgICAgPyBwYXJlbnQub3duZXJEb2N1bWVudC5jcmVhdGVFbGVtZW50TlMoXG4gICAgICAgICAgICAgIHBhcmVudC5uYW1lc3BhY2VVUkksXG4gICAgICAgICAgICAgIHBhcmVudC50YWdOYW1lXG4gICAgICAgICAgICApXG4gICAgICAgICAgOiBwYXJlbnQub3duZXJEb2N1bWVudC5jcmVhdGVFbGVtZW50KHBhcmVudC50YWdOYW1lKTtcbiAgICAgIHBhcmVudC5pbm5lckhUTUwgPSBodG1sO1xuICAgICAgcmV0dXJuIHBhcmVudC5pbm5lckhUTUw7XG4gICAgfVxuICAgIGZ1bmN0aW9uIG5vcm1hbGl6ZU1hcmt1cEZvclRleHRPckF0dHJpYnV0ZShtYXJrdXApIHtcbiAgICAgIHdpbGxDb2VyY2lvblRocm93KG1hcmt1cCkgJiZcbiAgICAgICAgKGNvbnNvbGUuZXJyb3IoXG4gICAgICAgICAgXCJUaGUgcHJvdmlkZWQgSFRNTCBtYXJrdXAgdXNlcyBhIHZhbHVlIG9mIHVuc3VwcG9ydGVkIHR5cGUgJXMuIFRoaXMgdmFsdWUgbXVzdCBiZSBjb2VyY2VkIHRvIGEgc3RyaW5nIGJlZm9yZSB1c2luZyBpdCBoZXJlLlwiLFxuICAgICAgICAgIHR5cGVOYW1lKG1hcmt1cClcbiAgICAgICAgKSxcbiAgICAgICAgdGVzdFN0cmluZ0NvZXJjaW9uKG1hcmt1cCkpO1xuICAgICAgcmV0dXJuIChcInN0cmluZ1wiID09PSB0eXBlb2YgbWFya3VwID8gbWFya3VwIDogXCJcIiArIG1hcmt1cClcbiAgICAgICAgLnJlcGxhY2UoTk9STUFMSVpFX05FV0xJTkVTX1JFR0VYLCBcIlxcblwiKVxuICAgICAgICAucmVwbGFjZShOT1JNQUxJWkVfTlVMTF9BTkRfUkVQTEFDRU1FTlRfUkVHRVgsIFwiXCIpO1xuICAgIH1cbiAgICBmdW5jdGlvbiBjaGVja0ZvclVubWF0Y2hlZFRleHQoc2VydmVyVGV4dCwgY2xpZW50VGV4dCkge1xuICAgICAgY2xpZW50VGV4dCA9IG5vcm1hbGl6ZU1hcmt1cEZvclRleHRPckF0dHJpYnV0ZShjbGllbnRUZXh0KTtcbiAgICAgIHJldHVybiBub3JtYWxpemVNYXJrdXBGb3JUZXh0T3JBdHRyaWJ1dGUoc2VydmVyVGV4dCkgPT09IGNsaWVudFRleHRcbiAgICAgICAgPyAhMFxuICAgICAgICA6ICExO1xuICAgIH1cbiAgICBmdW5jdGlvbiBub29wJDEoKSB7fVxuICAgIGZ1bmN0aW9uIHNldFByb3AoZG9tRWxlbWVudCwgdGFnLCBrZXksIHZhbHVlLCBwcm9wcywgcHJldlZhbHVlKSB7XG4gICAgICBzd2l0Y2ggKGtleSkge1xuICAgICAgICBjYXNlIFwiY2hpbGRyZW5cIjpcbiAgICAgICAgICBpZiAoXCJzdHJpbmdcIiA9PT0gdHlwZW9mIHZhbHVlKVxuICAgICAgICAgICAgdmFsaWRhdGVUZXh0TmVzdGluZyh2YWx1ZSwgdGFnLCAhMSksXG4gICAgICAgICAgICAgIFwiYm9keVwiID09PSB0YWcgfHxcbiAgICAgICAgICAgICAgICAoXCJ0ZXh0YXJlYVwiID09PSB0YWcgJiYgXCJcIiA9PT0gdmFsdWUpIHx8XG4gICAgICAgICAgICAgICAgc2V0VGV4dENvbnRlbnQoZG9tRWxlbWVudCwgdmFsdWUpO1xuICAgICAgICAgIGVsc2UgaWYgKFwibnVtYmVyXCIgPT09IHR5cGVvZiB2YWx1ZSB8fCBcImJpZ2ludFwiID09PSB0eXBlb2YgdmFsdWUpXG4gICAgICAgICAgICB2YWxpZGF0ZVRleHROZXN0aW5nKFwiXCIgKyB2YWx1ZSwgdGFnLCAhMSksXG4gICAgICAgICAgICAgIFwiYm9keVwiICE9PSB0YWcgJiYgc2V0VGV4dENvbnRlbnQoZG9tRWxlbWVudCwgXCJcIiArIHZhbHVlKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSBcImNsYXNzTmFtZVwiOlxuICAgICAgICAgIHNldFZhbHVlRm9yS25vd25BdHRyaWJ1dGUoZG9tRWxlbWVudCwgXCJjbGFzc1wiLCB2YWx1ZSk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgXCJ0YWJJbmRleFwiOlxuICAgICAgICAgIHNldFZhbHVlRm9yS25vd25BdHRyaWJ1dGUoZG9tRWxlbWVudCwgXCJ0YWJpbmRleFwiLCB2YWx1ZSk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgXCJkaXJcIjpcbiAgICAgICAgY2FzZSBcInJvbGVcIjpcbiAgICAgICAgY2FzZSBcInZpZXdCb3hcIjpcbiAgICAgICAgY2FzZSBcIndpZHRoXCI6XG4gICAgICAgIGNhc2UgXCJoZWlnaHRcIjpcbiAgICAgICAgICBzZXRWYWx1ZUZvcktub3duQXR0cmlidXRlKGRvbUVsZW1lbnQsIGtleSwgdmFsdWUpO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIFwic3R5bGVcIjpcbiAgICAgICAgICBzZXRWYWx1ZUZvclN0eWxlcyhkb21FbGVtZW50LCB2YWx1ZSwgcHJldlZhbHVlKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSBcImRhdGFcIjpcbiAgICAgICAgICBpZiAoXCJvYmplY3RcIiAhPT0gdGFnKSB7XG4gICAgICAgICAgICBzZXRWYWx1ZUZvcktub3duQXR0cmlidXRlKGRvbUVsZW1lbnQsIFwiZGF0YVwiLCB2YWx1ZSk7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICB9XG4gICAgICAgIGNhc2UgXCJzcmNcIjpcbiAgICAgICAgY2FzZSBcImhyZWZcIjpcbiAgICAgICAgICBpZiAoXCJcIiA9PT0gdmFsdWUgJiYgKFwiYVwiICE9PSB0YWcgfHwgXCJocmVmXCIgIT09IGtleSkpIHtcbiAgICAgICAgICAgIFwic3JjXCIgPT09IGtleVxuICAgICAgICAgICAgICA/IGNvbnNvbGUuZXJyb3IoXG4gICAgICAgICAgICAgICAgICAnQW4gZW1wdHkgc3RyaW5nIChcIlwiKSB3YXMgcGFzc2VkIHRvIHRoZSAlcyBhdHRyaWJ1dGUuIFRoaXMgbWF5IGNhdXNlIHRoZSBicm93c2VyIHRvIGRvd25sb2FkIHRoZSB3aG9sZSBwYWdlIGFnYWluIG92ZXIgdGhlIG5ldHdvcmsuIFRvIGZpeCB0aGlzLCBlaXRoZXIgZG8gbm90IHJlbmRlciB0aGUgZWxlbWVudCBhdCBhbGwgb3IgcGFzcyBudWxsIHRvICVzIGluc3RlYWQgb2YgYW4gZW1wdHkgc3RyaW5nLicsXG4gICAgICAgICAgICAgICAgICBrZXksXG4gICAgICAgICAgICAgICAgICBrZXlcbiAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgIDogY29uc29sZS5lcnJvcihcbiAgICAgICAgICAgICAgICAgICdBbiBlbXB0eSBzdHJpbmcgKFwiXCIpIHdhcyBwYXNzZWQgdG8gdGhlICVzIGF0dHJpYnV0ZS4gVG8gZml4IHRoaXMsIGVpdGhlciBkbyBub3QgcmVuZGVyIHRoZSBlbGVtZW50IGF0IGFsbCBvciBwYXNzIG51bGwgdG8gJXMgaW5zdGVhZCBvZiBhbiBlbXB0eSBzdHJpbmcuJyxcbiAgICAgICAgICAgICAgICAgIGtleSxcbiAgICAgICAgICAgICAgICAgIGtleVxuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICBkb21FbGVtZW50LnJlbW92ZUF0dHJpYnV0ZShrZXkpO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgfVxuICAgICAgICAgIGlmIChcbiAgICAgICAgICAgIG51bGwgPT0gdmFsdWUgfHxcbiAgICAgICAgICAgIFwiZnVuY3Rpb25cIiA9PT0gdHlwZW9mIHZhbHVlIHx8XG4gICAgICAgICAgICBcInN5bWJvbFwiID09PSB0eXBlb2YgdmFsdWUgfHxcbiAgICAgICAgICAgIFwiYm9vbGVhblwiID09PSB0eXBlb2YgdmFsdWVcbiAgICAgICAgICApIHtcbiAgICAgICAgICAgIGRvbUVsZW1lbnQucmVtb3ZlQXR0cmlidXRlKGtleSk7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICB9XG4gICAgICAgICAgY2hlY2tBdHRyaWJ1dGVTdHJpbmdDb2VyY2lvbih2YWx1ZSwga2V5KTtcbiAgICAgICAgICB2YWx1ZSA9IHNhbml0aXplVVJMKFwiXCIgKyB2YWx1ZSk7XG4gICAgICAgICAgZG9tRWxlbWVudC5zZXRBdHRyaWJ1dGUoa2V5LCB2YWx1ZSk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgXCJhY3Rpb25cIjpcbiAgICAgICAgY2FzZSBcImZvcm1BY3Rpb25cIjpcbiAgICAgICAgICBudWxsICE9IHZhbHVlICYmXG4gICAgICAgICAgICAoXCJmb3JtXCIgPT09IHRhZ1xuICAgICAgICAgICAgICA/IFwiZm9ybUFjdGlvblwiID09PSBrZXlcbiAgICAgICAgICAgICAgICA/IGNvbnNvbGUuZXJyb3IoXG4gICAgICAgICAgICAgICAgICAgIFwiWW91IGNhbiBvbmx5IHBhc3MgdGhlIGZvcm1BY3Rpb24gcHJvcCB0byA8aW5wdXQ+IG9yIDxidXR0b24+LiBVc2UgdGhlIGFjdGlvbiBwcm9wIG9uIDxmb3JtPi5cIlxuICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgIDogXCJmdW5jdGlvblwiID09PSB0eXBlb2YgdmFsdWUgJiZcbiAgICAgICAgICAgICAgICAgICgobnVsbCA9PSBwcm9wcy5lbmNUeXBlICYmIG51bGwgPT0gcHJvcHMubWV0aG9kKSB8fFxuICAgICAgICAgICAgICAgICAgICBkaWRXYXJuRm9ybUFjdGlvbk1ldGhvZCB8fFxuICAgICAgICAgICAgICAgICAgICAoKGRpZFdhcm5Gb3JtQWN0aW9uTWV0aG9kID0gITApLFxuICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmVycm9yKFxuICAgICAgICAgICAgICAgICAgICAgIFwiQ2Fubm90IHNwZWNpZnkgYSBlbmNUeXBlIG9yIG1ldGhvZCBmb3IgYSBmb3JtIHRoYXQgc3BlY2lmaWVzIGEgZnVuY3Rpb24gYXMgdGhlIGFjdGlvbi4gUmVhY3QgcHJvdmlkZXMgdGhvc2UgYXV0b21hdGljYWxseS4gVGhleSB3aWxsIGdldCBvdmVycmlkZGVuLlwiXG4gICAgICAgICAgICAgICAgICAgICkpLFxuICAgICAgICAgICAgICAgICAgbnVsbCA9PSBwcm9wcy50YXJnZXQgfHxcbiAgICAgICAgICAgICAgICAgICAgZGlkV2FybkZvcm1BY3Rpb25UYXJnZXQgfHxcbiAgICAgICAgICAgICAgICAgICAgKChkaWRXYXJuRm9ybUFjdGlvblRhcmdldCA9ICEwKSxcbiAgICAgICAgICAgICAgICAgICAgY29uc29sZS5lcnJvcihcbiAgICAgICAgICAgICAgICAgICAgICBcIkNhbm5vdCBzcGVjaWZ5IGEgdGFyZ2V0IGZvciBhIGZvcm0gdGhhdCBzcGVjaWZpZXMgYSBmdW5jdGlvbiBhcyB0aGUgYWN0aW9uLiBUaGUgZnVuY3Rpb24gd2lsbCBhbHdheXMgYmUgZXhlY3V0ZWQgaW4gdGhlIHNhbWUgd2luZG93LlwiXG4gICAgICAgICAgICAgICAgICAgICkpKVxuICAgICAgICAgICAgICA6IFwiaW5wdXRcIiA9PT0gdGFnIHx8IFwiYnV0dG9uXCIgPT09IHRhZ1xuICAgICAgICAgICAgICAgID8gXCJhY3Rpb25cIiA9PT0ga2V5XG4gICAgICAgICAgICAgICAgICA/IGNvbnNvbGUuZXJyb3IoXG4gICAgICAgICAgICAgICAgICAgICAgXCJZb3UgY2FuIG9ubHkgcGFzcyB0aGUgYWN0aW9uIHByb3AgdG8gPGZvcm0+LiBVc2UgdGhlIGZvcm1BY3Rpb24gcHJvcCBvbiA8aW5wdXQ+IG9yIDxidXR0b24+LlwiXG4gICAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICAgIDogXCJpbnB1dFwiICE9PSB0YWcgfHxcbiAgICAgICAgICAgICAgICAgICAgICBcInN1Ym1pdFwiID09PSBwcm9wcy50eXBlIHx8XG4gICAgICAgICAgICAgICAgICAgICAgXCJpbWFnZVwiID09PSBwcm9wcy50eXBlIHx8XG4gICAgICAgICAgICAgICAgICAgICAgZGlkV2FybkZvcm1BY3Rpb25UeXBlXG4gICAgICAgICAgICAgICAgICAgID8gXCJidXR0b25cIiAhPT0gdGFnIHx8XG4gICAgICAgICAgICAgICAgICAgICAgbnVsbCA9PSBwcm9wcy50eXBlIHx8XG4gICAgICAgICAgICAgICAgICAgICAgXCJzdWJtaXRcIiA9PT0gcHJvcHMudHlwZSB8fFxuICAgICAgICAgICAgICAgICAgICAgIGRpZFdhcm5Gb3JtQWN0aW9uVHlwZVxuICAgICAgICAgICAgICAgICAgICAgID8gXCJmdW5jdGlvblwiID09PSB0eXBlb2YgdmFsdWUgJiZcbiAgICAgICAgICAgICAgICAgICAgICAgIChudWxsID09IHByb3BzLm5hbWUgfHxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgZGlkV2FybkZvcm1BY3Rpb25OYW1lIHx8XG4gICAgICAgICAgICAgICAgICAgICAgICAgICgoZGlkV2FybkZvcm1BY3Rpb25OYW1lID0gITApLFxuICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmVycm9yKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICdDYW5ub3Qgc3BlY2lmeSBhIFwibmFtZVwiIHByb3AgZm9yIGEgYnV0dG9uIHRoYXQgc3BlY2lmaWVzIGEgZnVuY3Rpb24gYXMgYSBmb3JtQWN0aW9uLiBSZWFjdCBuZWVkcyBpdCB0byBlbmNvZGUgd2hpY2ggYWN0aW9uIHNob3VsZCBiZSBpbnZva2VkLiBJdCB3aWxsIGdldCBvdmVycmlkZGVuLidcbiAgICAgICAgICAgICAgICAgICAgICAgICAgKSksXG4gICAgICAgICAgICAgICAgICAgICAgICAobnVsbCA9PSBwcm9wcy5mb3JtRW5jVHlwZSAmJlxuICAgICAgICAgICAgICAgICAgICAgICAgICBudWxsID09IHByb3BzLmZvcm1NZXRob2QpIHx8XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGRpZFdhcm5Gb3JtQWN0aW9uTWV0aG9kIHx8XG4gICAgICAgICAgICAgICAgICAgICAgICAgICgoZGlkV2FybkZvcm1BY3Rpb25NZXRob2QgPSAhMCksXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYW5ub3Qgc3BlY2lmeSBhIGZvcm1FbmNUeXBlIG9yIGZvcm1NZXRob2QgZm9yIGEgYnV0dG9uIHRoYXQgc3BlY2lmaWVzIGEgZnVuY3Rpb24gYXMgYSBmb3JtQWN0aW9uLiBSZWFjdCBwcm92aWRlcyB0aG9zZSBhdXRvbWF0aWNhbGx5LiBUaGV5IHdpbGwgZ2V0IG92ZXJyaWRkZW4uXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgKSksXG4gICAgICAgICAgICAgICAgICAgICAgICBudWxsID09IHByb3BzLmZvcm1UYXJnZXQgfHxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgZGlkV2FybkZvcm1BY3Rpb25UYXJnZXQgfHxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgKChkaWRXYXJuRm9ybUFjdGlvblRhcmdldCA9ICEwKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc29sZS5lcnJvcihcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbm5vdCBzcGVjaWZ5IGEgZm9ybVRhcmdldCBmb3IgYSBidXR0b24gdGhhdCBzcGVjaWZpZXMgYSBmdW5jdGlvbiBhcyBhIGZvcm1BY3Rpb24uIFRoZSBmdW5jdGlvbiB3aWxsIGFsd2F5cyBiZSBleGVjdXRlZCBpbiB0aGUgc2FtZSB3aW5kb3cuXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgKSkpXG4gICAgICAgICAgICAgICAgICAgICAgOiAoKGRpZFdhcm5Gb3JtQWN0aW9uVHlwZSA9ICEwKSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICdBIGJ1dHRvbiBjYW4gb25seSBzcGVjaWZ5IGEgZm9ybUFjdGlvbiBhbG9uZyB3aXRoIHR5cGU9XCJzdWJtaXRcIiBvciBubyB0eXBlLidcbiAgICAgICAgICAgICAgICAgICAgICAgICkpXG4gICAgICAgICAgICAgICAgICAgIDogKChkaWRXYXJuRm9ybUFjdGlvblR5cGUgPSAhMCksXG4gICAgICAgICAgICAgICAgICAgICAgY29uc29sZS5lcnJvcihcbiAgICAgICAgICAgICAgICAgICAgICAgICdBbiBpbnB1dCBjYW4gb25seSBzcGVjaWZ5IGEgZm9ybUFjdGlvbiBhbG9uZyB3aXRoIHR5cGU9XCJzdWJtaXRcIiBvciB0eXBlPVwiaW1hZ2VcIi4nXG4gICAgICAgICAgICAgICAgICAgICAgKSlcbiAgICAgICAgICAgICAgICA6IFwiYWN0aW9uXCIgPT09IGtleVxuICAgICAgICAgICAgICAgICAgPyBjb25zb2xlLmVycm9yKFxuICAgICAgICAgICAgICAgICAgICAgIFwiWW91IGNhbiBvbmx5IHBhc3MgdGhlIGFjdGlvbiBwcm9wIHRvIDxmb3JtPi5cIlxuICAgICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgICA6IGNvbnNvbGUuZXJyb3IoXG4gICAgICAgICAgICAgICAgICAgICAgXCJZb3UgY2FuIG9ubHkgcGFzcyB0aGUgZm9ybUFjdGlvbiBwcm9wIHRvIDxpbnB1dD4gb3IgPGJ1dHRvbj4uXCJcbiAgICAgICAgICAgICAgICAgICAgKSk7XG4gICAgICAgICAgaWYgKFwiZnVuY3Rpb25cIiA9PT0gdHlwZW9mIHZhbHVlKSB7XG4gICAgICAgICAgICBkb21FbGVtZW50LnNldEF0dHJpYnV0ZShcbiAgICAgICAgICAgICAga2V5LFxuICAgICAgICAgICAgICBcImphdmFzY3JpcHQ6dGhyb3cgbmV3IEVycm9yKCdBIFJlYWN0IGZvcm0gd2FzIHVuZXhwZWN0ZWRseSBzdWJtaXR0ZWQuIElmIHlvdSBjYWxsZWQgZm9ybS5zdWJtaXQoKSBtYW51YWxseSwgY29uc2lkZXIgdXNpbmcgZm9ybS5yZXF1ZXN0U3VibWl0KCkgaW5zdGVhZC4gSWYgeW91XFxcXCdyZSB0cnlpbmcgdG8gdXNlIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpIGluIGEgc3VibWl0IGV2ZW50IGhhbmRsZXIsIGNvbnNpZGVyIGFsc28gY2FsbGluZyBldmVudC5wcmV2ZW50RGVmYXVsdCgpLicpXCJcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICB9IGVsc2VcbiAgICAgICAgICAgIFwiZnVuY3Rpb25cIiA9PT0gdHlwZW9mIHByZXZWYWx1ZSAmJlxuICAgICAgICAgICAgICAoXCJmb3JtQWN0aW9uXCIgPT09IGtleVxuICAgICAgICAgICAgICAgID8gKFwiaW5wdXRcIiAhPT0gdGFnICYmXG4gICAgICAgICAgICAgICAgICAgIHNldFByb3AoZG9tRWxlbWVudCwgdGFnLCBcIm5hbWVcIiwgcHJvcHMubmFtZSwgcHJvcHMsIG51bGwpLFxuICAgICAgICAgICAgICAgICAgc2V0UHJvcChcbiAgICAgICAgICAgICAgICAgICAgZG9tRWxlbWVudCxcbiAgICAgICAgICAgICAgICAgICAgdGFnLFxuICAgICAgICAgICAgICAgICAgICBcImZvcm1FbmNUeXBlXCIsXG4gICAgICAgICAgICAgICAgICAgIHByb3BzLmZvcm1FbmNUeXBlLFxuICAgICAgICAgICAgICAgICAgICBwcm9wcyxcbiAgICAgICAgICAgICAgICAgICAgbnVsbFxuICAgICAgICAgICAgICAgICAgKSxcbiAgICAgICAgICAgICAgICAgIHNldFByb3AoXG4gICAgICAgICAgICAgICAgICAgIGRvbUVsZW1lbnQsXG4gICAgICAgICAgICAgICAgICAgIHRhZyxcbiAgICAgICAgICAgICAgICAgICAgXCJmb3JtTWV0aG9kXCIsXG4gICAgICAgICAgICAgICAgICAgIHByb3BzLmZvcm1NZXRob2QsXG4gICAgICAgICAgICAgICAgICAgIHByb3BzLFxuICAgICAgICAgICAgICAgICAgICBudWxsXG4gICAgICAgICAgICAgICAgICApLFxuICAgICAgICAgICAgICAgICAgc2V0UHJvcChcbiAgICAgICAgICAgICAgICAgICAgZG9tRWxlbWVudCxcbiAgICAgICAgICAgICAgICAgICAgdGFnLFxuICAgICAgICAgICAgICAgICAgICBcImZvcm1UYXJnZXRcIixcbiAgICAgICAgICAgICAgICAgICAgcHJvcHMuZm9ybVRhcmdldCxcbiAgICAgICAgICAgICAgICAgICAgcHJvcHMsXG4gICAgICAgICAgICAgICAgICAgIG51bGxcbiAgICAgICAgICAgICAgICAgICkpXG4gICAgICAgICAgICAgICAgOiAoc2V0UHJvcChcbiAgICAgICAgICAgICAgICAgICAgZG9tRWxlbWVudCxcbiAgICAgICAgICAgICAgICAgICAgdGFnLFxuICAgICAgICAgICAgICAgICAgICBcImVuY1R5cGVcIixcbiAgICAgICAgICAgICAgICAgICAgcHJvcHMuZW5jVHlwZSxcbiAgICAgICAgICAgICAgICAgICAgcHJvcHMsXG4gICAgICAgICAgICAgICAgICAgIG51bGxcbiAgICAgICAgICAgICAgICAgICksXG4gICAgICAgICAgICAgICAgICBzZXRQcm9wKGRvbUVsZW1lbnQsIHRhZywgXCJtZXRob2RcIiwgcHJvcHMubWV0aG9kLCBwcm9wcywgbnVsbCksXG4gICAgICAgICAgICAgICAgICBzZXRQcm9wKFxuICAgICAgICAgICAgICAgICAgICBkb21FbGVtZW50LFxuICAgICAgICAgICAgICAgICAgICB0YWcsXG4gICAgICAgICAgICAgICAgICAgIFwidGFyZ2V0XCIsXG4gICAgICAgICAgICAgICAgICAgIHByb3BzLnRhcmdldCxcbiAgICAgICAgICAgICAgICAgICAgcHJvcHMsXG4gICAgICAgICAgICAgICAgICAgIG51bGxcbiAgICAgICAgICAgICAgICAgICkpKTtcbiAgICAgICAgICBpZiAoXG4gICAgICAgICAgICBudWxsID09IHZhbHVlIHx8XG4gICAgICAgICAgICBcInN5bWJvbFwiID09PSB0eXBlb2YgdmFsdWUgfHxcbiAgICAgICAgICAgIFwiYm9vbGVhblwiID09PSB0eXBlb2YgdmFsdWVcbiAgICAgICAgICApIHtcbiAgICAgICAgICAgIGRvbUVsZW1lbnQucmVtb3ZlQXR0cmlidXRlKGtleSk7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICB9XG4gICAgICAgICAgY2hlY2tBdHRyaWJ1dGVTdHJpbmdDb2VyY2lvbih2YWx1ZSwga2V5KTtcbiAgICAgICAgICB2YWx1ZSA9IHNhbml0aXplVVJMKFwiXCIgKyB2YWx1ZSk7XG4gICAgICAgICAgZG9tRWxlbWVudC5zZXRBdHRyaWJ1dGUoa2V5LCB2YWx1ZSk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgXCJvbkNsaWNrXCI6XG4gICAgICAgICAgbnVsbCAhPSB2YWx1ZSAmJlxuICAgICAgICAgICAgKFwiZnVuY3Rpb25cIiAhPT0gdHlwZW9mIHZhbHVlICYmXG4gICAgICAgICAgICAgIHdhcm5Gb3JJbnZhbGlkRXZlbnRMaXN0ZW5lcihrZXksIHZhbHVlKSxcbiAgICAgICAgICAgIChkb21FbGVtZW50Lm9uY2xpY2sgPSBub29wJDEpKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSBcIm9uU2Nyb2xsXCI6XG4gICAgICAgICAgbnVsbCAhPSB2YWx1ZSAmJlxuICAgICAgICAgICAgKFwiZnVuY3Rpb25cIiAhPT0gdHlwZW9mIHZhbHVlICYmXG4gICAgICAgICAgICAgIHdhcm5Gb3JJbnZhbGlkRXZlbnRMaXN0ZW5lcihrZXksIHZhbHVlKSxcbiAgICAgICAgICAgIGxpc3RlblRvTm9uRGVsZWdhdGVkRXZlbnQoXCJzY3JvbGxcIiwgZG9tRWxlbWVudCkpO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIFwib25TY3JvbGxFbmRcIjpcbiAgICAgICAgICBudWxsICE9IHZhbHVlICYmXG4gICAgICAgICAgICAoXCJmdW5jdGlvblwiICE9PSB0eXBlb2YgdmFsdWUgJiZcbiAgICAgICAgICAgICAgd2FybkZvckludmFsaWRFdmVudExpc3RlbmVyKGtleSwgdmFsdWUpLFxuICAgICAgICAgICAgbGlzdGVuVG9Ob25EZWxlZ2F0ZWRFdmVudChcInNjcm9sbGVuZFwiLCBkb21FbGVtZW50KSk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgXCJkYW5nZXJvdXNseVNldElubmVySFRNTFwiOlxuICAgICAgICAgIGlmIChudWxsICE9IHZhbHVlKSB7XG4gICAgICAgICAgICBpZiAoXCJvYmplY3RcIiAhPT0gdHlwZW9mIHZhbHVlIHx8ICEoXCJfX2h0bWxcIiBpbiB2YWx1ZSkpXG4gICAgICAgICAgICAgIHRocm93IEVycm9yKFxuICAgICAgICAgICAgICAgIFwiYHByb3BzLmRhbmdlcm91c2x5U2V0SW5uZXJIVE1MYCBtdXN0IGJlIGluIHRoZSBmb3JtIGB7X19odG1sOiAuLi59YC4gUGxlYXNlIHZpc2l0IGh0dHBzOi8vcmVhY3QuZGV2L2xpbmsvZGFuZ2Vyb3VzbHktc2V0LWlubmVyLWh0bWwgZm9yIG1vcmUgaW5mb3JtYXRpb24uXCJcbiAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIGtleSA9IHZhbHVlLl9faHRtbDtcbiAgICAgICAgICAgIGlmIChudWxsICE9IGtleSkge1xuICAgICAgICAgICAgICBpZiAobnVsbCAhPSBwcm9wcy5jaGlsZHJlbilcbiAgICAgICAgICAgICAgICB0aHJvdyBFcnJvcihcbiAgICAgICAgICAgICAgICAgIFwiQ2FuIG9ubHkgc2V0IG9uZSBvZiBgY2hpbGRyZW5gIG9yIGBwcm9wcy5kYW5nZXJvdXNseVNldElubmVySFRNTGAuXCJcbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICBkb21FbGVtZW50LmlubmVySFRNTCA9IGtleTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgXCJtdWx0aXBsZVwiOlxuICAgICAgICAgIGRvbUVsZW1lbnQubXVsdGlwbGUgPVxuICAgICAgICAgICAgdmFsdWUgJiYgXCJmdW5jdGlvblwiICE9PSB0eXBlb2YgdmFsdWUgJiYgXCJzeW1ib2xcIiAhPT0gdHlwZW9mIHZhbHVlO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIFwibXV0ZWRcIjpcbiAgICAgICAgICBkb21FbGVtZW50Lm11dGVkID1cbiAgICAgICAgICAgIHZhbHVlICYmIFwiZnVuY3Rpb25cIiAhPT0gdHlwZW9mIHZhbHVlICYmIFwic3ltYm9sXCIgIT09IHR5cGVvZiB2YWx1ZTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSBcInN1cHByZXNzQ29udGVudEVkaXRhYmxlV2FybmluZ1wiOlxuICAgICAgICBjYXNlIFwic3VwcHJlc3NIeWRyYXRpb25XYXJuaW5nXCI6XG4gICAgICAgIGNhc2UgXCJkZWZhdWx0VmFsdWVcIjpcbiAgICAgICAgY2FzZSBcImRlZmF1bHRDaGVja2VkXCI6XG4gICAgICAgIGNhc2UgXCJpbm5lckhUTUxcIjpcbiAgICAgICAgY2FzZSBcInJlZlwiOlxuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIFwiYXV0b0ZvY3VzXCI6XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgXCJ4bGlua0hyZWZcIjpcbiAgICAgICAgICBpZiAoXG4gICAgICAgICAgICBudWxsID09IHZhbHVlIHx8XG4gICAgICAgICAgICBcImZ1bmN0aW9uXCIgPT09IHR5cGVvZiB2YWx1ZSB8fFxuICAgICAgICAgICAgXCJib29sZWFuXCIgPT09IHR5cGVvZiB2YWx1ZSB8fFxuICAgICAgICAgICAgXCJzeW1ib2xcIiA9PT0gdHlwZW9mIHZhbHVlXG4gICAgICAgICAgKSB7XG4gICAgICAgICAgICBkb21FbGVtZW50LnJlbW92ZUF0dHJpYnV0ZShcInhsaW5rOmhyZWZcIik7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICB9XG4gICAgICAgICAgY2hlY2tBdHRyaWJ1dGVTdHJpbmdDb2VyY2lvbih2YWx1ZSwga2V5KTtcbiAgICAgICAgICBrZXkgPSBzYW5pdGl6ZVVSTChcIlwiICsgdmFsdWUpO1xuICAgICAgICAgIGRvbUVsZW1lbnQuc2V0QXR0cmlidXRlTlMoeGxpbmtOYW1lc3BhY2UsIFwieGxpbms6aHJlZlwiLCBrZXkpO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIFwiY29udGVudEVkaXRhYmxlXCI6XG4gICAgICAgIGNhc2UgXCJzcGVsbENoZWNrXCI6XG4gICAgICAgIGNhc2UgXCJkcmFnZ2FibGVcIjpcbiAgICAgICAgY2FzZSBcInZhbHVlXCI6XG4gICAgICAgIGNhc2UgXCJhdXRvUmV2ZXJzZVwiOlxuICAgICAgICBjYXNlIFwiZXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZFwiOlxuICAgICAgICBjYXNlIFwiZm9jdXNhYmxlXCI6XG4gICAgICAgIGNhc2UgXCJwcmVzZXJ2ZUFscGhhXCI6XG4gICAgICAgICAgbnVsbCAhPSB2YWx1ZSAmJlxuICAgICAgICAgIFwiZnVuY3Rpb25cIiAhPT0gdHlwZW9mIHZhbHVlICYmXG4gICAgICAgICAgXCJzeW1ib2xcIiAhPT0gdHlwZW9mIHZhbHVlXG4gICAgICAgICAgICA/IChjaGVja0F0dHJpYnV0ZVN0cmluZ0NvZXJjaW9uKHZhbHVlLCBrZXkpLFxuICAgICAgICAgICAgICBkb21FbGVtZW50LnNldEF0dHJpYnV0ZShrZXksIFwiXCIgKyB2YWx1ZSkpXG4gICAgICAgICAgICA6IGRvbUVsZW1lbnQucmVtb3ZlQXR0cmlidXRlKGtleSk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgXCJpbmVydFwiOlxuICAgICAgICAgIFwiXCIgIT09IHZhbHVlIHx8XG4gICAgICAgICAgICBkaWRXYXJuRm9yTmV3Qm9vbGVhblByb3BzV2l0aEVtcHR5VmFsdWVba2V5XSB8fFxuICAgICAgICAgICAgKChkaWRXYXJuRm9yTmV3Qm9vbGVhblByb3BzV2l0aEVtcHR5VmFsdWVba2V5XSA9ICEwKSxcbiAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoXG4gICAgICAgICAgICAgIFwiUmVjZWl2ZWQgYW4gZW1wdHkgc3RyaW5nIGZvciBhIGJvb2xlYW4gYXR0cmlidXRlIGAlc2AuIFRoaXMgd2lsbCB0cmVhdCB0aGUgYXR0cmlidXRlIGFzIGlmIGl0IHdlcmUgZmFsc2UuIEVpdGhlciBwYXNzIGBmYWxzZWAgdG8gc2lsZW5jZSB0aGlzIHdhcm5pbmcsIG9yIHBhc3MgYHRydWVgIGlmIHlvdSB1c2VkIGFuIGVtcHR5IHN0cmluZyBpbiBlYXJsaWVyIHZlcnNpb25zIG9mIFJlYWN0IHRvIGluZGljYXRlIHRoaXMgYXR0cmlidXRlIGlzIHRydWUuXCIsXG4gICAgICAgICAgICAgIGtleVxuICAgICAgICAgICAgKSk7XG4gICAgICAgIGNhc2UgXCJhbGxvd0Z1bGxTY3JlZW5cIjpcbiAgICAgICAgY2FzZSBcImFzeW5jXCI6XG4gICAgICAgIGNhc2UgXCJhdXRvUGxheVwiOlxuICAgICAgICBjYXNlIFwiY29udHJvbHNcIjpcbiAgICAgICAgY2FzZSBcImRlZmF1bHRcIjpcbiAgICAgICAgY2FzZSBcImRlZmVyXCI6XG4gICAgICAgIGNhc2UgXCJkaXNhYmxlZFwiOlxuICAgICAgICBjYXNlIFwiZGlzYWJsZVBpY3R1cmVJblBpY3R1cmVcIjpcbiAgICAgICAgY2FzZSBcImRpc2FibGVSZW1vdGVQbGF5YmFja1wiOlxuICAgICAgICBjYXNlIFwiZm9ybU5vVmFsaWRhdGVcIjpcbiAgICAgICAgY2FzZSBcImhpZGRlblwiOlxuICAgICAgICBjYXNlIFwibG9vcFwiOlxuICAgICAgICBjYXNlIFwibm9Nb2R1bGVcIjpcbiAgICAgICAgY2FzZSBcIm5vVmFsaWRhdGVcIjpcbiAgICAgICAgY2FzZSBcIm9wZW5cIjpcbiAgICAgICAgY2FzZSBcInBsYXlzSW5saW5lXCI6XG4gICAgICAgIGNhc2UgXCJyZWFkT25seVwiOlxuICAgICAgICBjYXNlIFwicmVxdWlyZWRcIjpcbiAgICAgICAgY2FzZSBcInJldmVyc2VkXCI6XG4gICAgICAgIGNhc2UgXCJzY29wZWRcIjpcbiAgICAgICAgY2FzZSBcInNlYW1sZXNzXCI6XG4gICAgICAgIGNhc2UgXCJpdGVtU2NvcGVcIjpcbiAgICAgICAgICB2YWx1ZSAmJiBcImZ1bmN0aW9uXCIgIT09IHR5cGVvZiB2YWx1ZSAmJiBcInN5bWJvbFwiICE9PSB0eXBlb2YgdmFsdWVcbiAgICAgICAgICAgID8gZG9tRWxlbWVudC5zZXRBdHRyaWJ1dGUoa2V5LCBcIlwiKVxuICAgICAgICAgICAgOiBkb21FbGVtZW50LnJlbW92ZUF0dHJpYnV0ZShrZXkpO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIFwiY2FwdHVyZVwiOlxuICAgICAgICBjYXNlIFwiZG93bmxvYWRcIjpcbiAgICAgICAgICAhMCA9PT0gdmFsdWVcbiAgICAgICAgICAgID8gZG9tRWxlbWVudC5zZXRBdHRyaWJ1dGUoa2V5LCBcIlwiKVxuICAgICAgICAgICAgOiAhMSAhPT0gdmFsdWUgJiZcbiAgICAgICAgICAgICAgICBudWxsICE9IHZhbHVlICYmXG4gICAgICAgICAgICAgICAgXCJmdW5jdGlvblwiICE9PSB0eXBlb2YgdmFsdWUgJiZcbiAgICAgICAgICAgICAgICBcInN5bWJvbFwiICE9PSB0eXBlb2YgdmFsdWVcbiAgICAgICAgICAgICAgPyAoY2hlY2tBdHRyaWJ1dGVTdHJpbmdDb2VyY2lvbih2YWx1ZSwga2V5KSxcbiAgICAgICAgICAgICAgICBkb21FbGVtZW50LnNldEF0dHJpYnV0ZShrZXksIHZhbHVlKSlcbiAgICAgICAgICAgICAgOiBkb21FbGVtZW50LnJlbW92ZUF0dHJpYnV0ZShrZXkpO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIFwiY29sc1wiOlxuICAgICAgICBjYXNlIFwicm93c1wiOlxuICAgICAgICBjYXNlIFwic2l6ZVwiOlxuICAgICAgICBjYXNlIFwic3BhblwiOlxuICAgICAgICAgIG51bGwgIT0gdmFsdWUgJiZcbiAgICAgICAgICBcImZ1bmN0aW9uXCIgIT09IHR5cGVvZiB2YWx1ZSAmJlxuICAgICAgICAgIFwic3ltYm9sXCIgIT09IHR5cGVvZiB2YWx1ZSAmJlxuICAgICAgICAgICFpc05hTih2YWx1ZSkgJiZcbiAgICAgICAgICAxIDw9IHZhbHVlXG4gICAgICAgICAgICA/IChjaGVja0F0dHJpYnV0ZVN0cmluZ0NvZXJjaW9uKHZhbHVlLCBrZXkpLFxuICAgICAgICAgICAgICBkb21FbGVtZW50LnNldEF0dHJpYnV0ZShrZXksIHZhbHVlKSlcbiAgICAgICAgICAgIDogZG9tRWxlbWVudC5yZW1vdmVBdHRyaWJ1dGUoa2V5KTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSBcInJvd1NwYW5cIjpcbiAgICAgICAgY2FzZSBcInN0YXJ0XCI6XG4gICAgICAgICAgbnVsbCA9PSB2YWx1ZSB8fFxuICAgICAgICAgIFwiZnVuY3Rpb25cIiA9PT0gdHlwZW9mIHZhbHVlIHx8XG4gICAgICAgICAgXCJzeW1ib2xcIiA9PT0gdHlwZW9mIHZhbHVlIHx8XG4gICAgICAgICAgaXNOYU4odmFsdWUpXG4gICAgICAgICAgICA/IGRvbUVsZW1lbnQucmVtb3ZlQXR0cmlidXRlKGtleSlcbiAgICAgICAgICAgIDogKGNoZWNrQXR0cmlidXRlU3RyaW5nQ29lcmNpb24odmFsdWUsIGtleSksXG4gICAgICAgICAgICAgIGRvbUVsZW1lbnQuc2V0QXR0cmlidXRlKGtleSwgdmFsdWUpKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSBcInBvcG92ZXJcIjpcbiAgICAgICAgICBsaXN0ZW5Ub05vbkRlbGVnYXRlZEV2ZW50KFwiYmVmb3JldG9nZ2xlXCIsIGRvbUVsZW1lbnQpO1xuICAgICAgICAgIGxpc3RlblRvTm9uRGVsZWdhdGVkRXZlbnQoXCJ0b2dnbGVcIiwgZG9tRWxlbWVudCk7XG4gICAgICAgICAgc2V0VmFsdWVGb3JBdHRyaWJ1dGUoZG9tRWxlbWVudCwgXCJwb3BvdmVyXCIsIHZhbHVlKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSBcInhsaW5rQWN0dWF0ZVwiOlxuICAgICAgICAgIHNldFZhbHVlRm9yTmFtZXNwYWNlZEF0dHJpYnV0ZShcbiAgICAgICAgICAgIGRvbUVsZW1lbnQsXG4gICAgICAgICAgICB4bGlua05hbWVzcGFjZSxcbiAgICAgICAgICAgIFwieGxpbms6YWN0dWF0ZVwiLFxuICAgICAgICAgICAgdmFsdWVcbiAgICAgICAgICApO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIFwieGxpbmtBcmNyb2xlXCI6XG4gICAgICAgICAgc2V0VmFsdWVGb3JOYW1lc3BhY2VkQXR0cmlidXRlKFxuICAgICAgICAgICAgZG9tRWxlbWVudCxcbiAgICAgICAgICAgIHhsaW5rTmFtZXNwYWNlLFxuICAgICAgICAgICAgXCJ4bGluazphcmNyb2xlXCIsXG4gICAgICAgICAgICB2YWx1ZVxuICAgICAgICAgICk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgXCJ4bGlua1JvbGVcIjpcbiAgICAgICAgICBzZXRWYWx1ZUZvck5hbWVzcGFjZWRBdHRyaWJ1dGUoXG4gICAgICAgICAgICBkb21FbGVtZW50LFxuICAgICAgICAgICAgeGxpbmtOYW1lc3BhY2UsXG4gICAgICAgICAgICBcInhsaW5rOnJvbGVcIixcbiAgICAgICAgICAgIHZhbHVlXG4gICAgICAgICAgKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSBcInhsaW5rU2hvd1wiOlxuICAgICAgICAgIHNldFZhbHVlRm9yTmFtZXNwYWNlZEF0dHJpYnV0ZShcbiAgICAgICAgICAgIGRvbUVsZW1lbnQsXG4gICAgICAgICAgICB4bGlua05hbWVzcGFjZSxcbiAgICAgICAgICAgIFwieGxpbms6c2hvd1wiLFxuICAgICAgICAgICAgdmFsdWVcbiAgICAgICAgICApO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIFwieGxpbmtUaXRsZVwiOlxuICAgICAgICAgIHNldFZhbHVlRm9yTmFtZXNwYWNlZEF0dHJpYnV0ZShcbiAgICAgICAgICAgIGRvbUVsZW1lbnQsXG4gICAgICAgICAgICB4bGlua05hbWVzcGFjZSxcbiAgICAgICAgICAgIFwieGxpbms6dGl0bGVcIixcbiAgICAgICAgICAgIHZhbHVlXG4gICAgICAgICAgKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSBcInhsaW5rVHlwZVwiOlxuICAgICAgICAgIHNldFZhbHVlRm9yTmFtZXNwYWNlZEF0dHJpYnV0ZShcbiAgICAgICAgICAgIGRvbUVsZW1lbnQsXG4gICAgICAgICAgICB4bGlua05hbWVzcGFjZSxcbiAgICAgICAgICAgIFwieGxpbms6dHlwZVwiLFxuICAgICAgICAgICAgdmFsdWVcbiAgICAgICAgICApO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIFwieG1sQmFzZVwiOlxuICAgICAgICAgIHNldFZhbHVlRm9yTmFtZXNwYWNlZEF0dHJpYnV0ZShcbiAgICAgICAgICAgIGRvbUVsZW1lbnQsXG4gICAgICAgICAgICB4bWxOYW1lc3BhY2UsXG4gICAgICAgICAgICBcInhtbDpiYXNlXCIsXG4gICAgICAgICAgICB2YWx1ZVxuICAgICAgICAgICk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgXCJ4bWxMYW5nXCI6XG4gICAgICAgICAgc2V0VmFsdWVGb3JOYW1lc3BhY2VkQXR0cmlidXRlKFxuICAgICAgICAgICAgZG9tRWxlbWVudCxcbiAgICAgICAgICAgIHhtbE5hbWVzcGFjZSxcbiAgICAgICAgICAgIFwieG1sOmxhbmdcIixcbiAgICAgICAgICAgIHZhbHVlXG4gICAgICAgICAgKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSBcInhtbFNwYWNlXCI6XG4gICAgICAgICAgc2V0VmFsdWVGb3JOYW1lc3BhY2VkQXR0cmlidXRlKFxuICAgICAgICAgICAgZG9tRWxlbWVudCxcbiAgICAgICAgICAgIHhtbE5hbWVzcGFjZSxcbiAgICAgICAgICAgIFwieG1sOnNwYWNlXCIsXG4gICAgICAgICAgICB2YWx1ZVxuICAgICAgICAgICk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgXCJpc1wiOlxuICAgICAgICAgIG51bGwgIT0gcHJldlZhbHVlICYmXG4gICAgICAgICAgICBjb25zb2xlLmVycm9yKFxuICAgICAgICAgICAgICAnQ2Fubm90IHVwZGF0ZSB0aGUgXCJpc1wiIHByb3AgYWZ0ZXIgaXQgaGFzIGJlZW4gaW5pdGlhbGl6ZWQuJ1xuICAgICAgICAgICAgKTtcbiAgICAgICAgICBzZXRWYWx1ZUZvckF0dHJpYnV0ZShkb21FbGVtZW50LCBcImlzXCIsIHZhbHVlKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSBcImlubmVyVGV4dFwiOlxuICAgICAgICBjYXNlIFwidGV4dENvbnRlbnRcIjpcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSBcInBvcG92ZXJUYXJnZXRcIjpcbiAgICAgICAgICBkaWRXYXJuUG9wb3ZlclRhcmdldE9iamVjdCB8fFxuICAgICAgICAgICAgbnVsbCA9PSB2YWx1ZSB8fFxuICAgICAgICAgICAgXCJvYmplY3RcIiAhPT0gdHlwZW9mIHZhbHVlIHx8XG4gICAgICAgICAgICAoKGRpZFdhcm5Qb3BvdmVyVGFyZ2V0T2JqZWN0ID0gITApLFxuICAgICAgICAgICAgY29uc29sZS5lcnJvcihcbiAgICAgICAgICAgICAgXCJUaGUgYHBvcG92ZXJUYXJnZXRgIHByb3AgZXhwZWN0cyB0aGUgSUQgb2YgYW4gRWxlbWVudCBhcyBhIHN0cmluZy4gUmVjZWl2ZWQgJXMgaW5zdGVhZC5cIixcbiAgICAgICAgICAgICAgdmFsdWVcbiAgICAgICAgICAgICkpO1xuICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICEoMiA8IGtleS5sZW5ndGgpIHx8XG4gICAgICAgICAgKFwib1wiICE9PSBrZXlbMF0gJiYgXCJPXCIgIT09IGtleVswXSkgfHxcbiAgICAgICAgICAoXCJuXCIgIT09IGtleVsxXSAmJiBcIk5cIiAhPT0ga2V5WzFdKVxuICAgICAgICAgICAgPyAoKGtleSA9IGdldEF0dHJpYnV0ZUFsaWFzKGtleSkpLFxuICAgICAgICAgICAgICBzZXRWYWx1ZUZvckF0dHJpYnV0ZShkb21FbGVtZW50LCBrZXksIHZhbHVlKSlcbiAgICAgICAgICAgIDogcmVnaXN0cmF0aW9uTmFtZURlcGVuZGVuY2llcy5oYXNPd25Qcm9wZXJ0eShrZXkpICYmXG4gICAgICAgICAgICAgIG51bGwgIT0gdmFsdWUgJiZcbiAgICAgICAgICAgICAgXCJmdW5jdGlvblwiICE9PSB0eXBlb2YgdmFsdWUgJiZcbiAgICAgICAgICAgICAgd2FybkZvckludmFsaWRFdmVudExpc3RlbmVyKGtleSwgdmFsdWUpO1xuICAgICAgfVxuICAgIH1cbiAgICBmdW5jdGlvbiBzZXRQcm9wT25DdXN0b21FbGVtZW50KFxuICAgICAgZG9tRWxlbWVudCxcbiAgICAgIHRhZyxcbiAgICAgIGtleSxcbiAgICAgIHZhbHVlLFxuICAgICAgcHJvcHMsXG4gICAgICBwcmV2VmFsdWVcbiAgICApIHtcbiAgICAgIHN3aXRjaCAoa2V5KSB7XG4gICAgICAgIGNhc2UgXCJzdHlsZVwiOlxuICAgICAgICAgIHNldFZhbHVlRm9yU3R5bGVzKGRvbUVsZW1lbnQsIHZhbHVlLCBwcmV2VmFsdWUpO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIFwiZGFuZ2Vyb3VzbHlTZXRJbm5lckhUTUxcIjpcbiAgICAgICAgICBpZiAobnVsbCAhPSB2YWx1ZSkge1xuICAgICAgICAgICAgaWYgKFwib2JqZWN0XCIgIT09IHR5cGVvZiB2YWx1ZSB8fCAhKFwiX19odG1sXCIgaW4gdmFsdWUpKVxuICAgICAgICAgICAgICB0aHJvdyBFcnJvcihcbiAgICAgICAgICAgICAgICBcImBwcm9wcy5kYW5nZXJvdXNseVNldElubmVySFRNTGAgbXVzdCBiZSBpbiB0aGUgZm9ybSBge19faHRtbDogLi4ufWAuIFBsZWFzZSB2aXNpdCBodHRwczovL3JlYWN0LmRldi9saW5rL2Rhbmdlcm91c2x5LXNldC1pbm5lci1odG1sIGZvciBtb3JlIGluZm9ybWF0aW9uLlwiXG4gICAgICAgICAgICAgICk7XG4gICAgICAgICAgICBrZXkgPSB2YWx1ZS5fX2h0bWw7XG4gICAgICAgICAgICBpZiAobnVsbCAhPSBrZXkpIHtcbiAgICAgICAgICAgICAgaWYgKG51bGwgIT0gcHJvcHMuY2hpbGRyZW4pXG4gICAgICAgICAgICAgICAgdGhyb3cgRXJyb3IoXG4gICAgICAgICAgICAgICAgICBcIkNhbiBvbmx5IHNldCBvbmUgb2YgYGNoaWxkcmVuYCBvciBgcHJvcHMuZGFuZ2Vyb3VzbHlTZXRJbm5lckhUTUxgLlwiXG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgZG9tRWxlbWVudC5pbm5lckhUTUwgPSBrZXk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIFwiY2hpbGRyZW5cIjpcbiAgICAgICAgICBcInN0cmluZ1wiID09PSB0eXBlb2YgdmFsdWVcbiAgICAgICAgICAgID8gc2V0VGV4dENvbnRlbnQoZG9tRWxlbWVudCwgdmFsdWUpXG4gICAgICAgICAgICA6IChcIm51bWJlclwiID09PSB0eXBlb2YgdmFsdWUgfHwgXCJiaWdpbnRcIiA9PT0gdHlwZW9mIHZhbHVlKSAmJlxuICAgICAgICAgICAgICBzZXRUZXh0Q29udGVudChkb21FbGVtZW50LCBcIlwiICsgdmFsdWUpO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIFwib25TY3JvbGxcIjpcbiAgICAgICAgICBudWxsICE9IHZhbHVlICYmXG4gICAgICAgICAgICAoXCJmdW5jdGlvblwiICE9PSB0eXBlb2YgdmFsdWUgJiZcbiAgICAgICAgICAgICAgd2FybkZvckludmFsaWRFdmVudExpc3RlbmVyKGtleSwgdmFsdWUpLFxuICAgICAgICAgICAgbGlzdGVuVG9Ob25EZWxlZ2F0ZWRFdmVudChcInNjcm9sbFwiLCBkb21FbGVtZW50KSk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgXCJvblNjcm9sbEVuZFwiOlxuICAgICAgICAgIG51bGwgIT0gdmFsdWUgJiZcbiAgICAgICAgICAgIChcImZ1bmN0aW9uXCIgIT09IHR5cGVvZiB2YWx1ZSAmJlxuICAgICAgICAgICAgICB3YXJuRm9ySW52YWxpZEV2ZW50TGlzdGVuZXIoa2V5LCB2YWx1ZSksXG4gICAgICAgICAgICBsaXN0ZW5Ub05vbkRlbGVnYXRlZEV2ZW50KFwic2Nyb2xsZW5kXCIsIGRvbUVsZW1lbnQpKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSBcIm9uQ2xpY2tcIjpcbiAgICAgICAgICBudWxsICE9IHZhbHVlICYmXG4gICAgICAgICAgICAoXCJmdW5jdGlvblwiICE9PSB0eXBlb2YgdmFsdWUgJiZcbiAgICAgICAgICAgICAgd2FybkZvckludmFsaWRFdmVudExpc3RlbmVyKGtleSwgdmFsdWUpLFxuICAgICAgICAgICAgKGRvbUVsZW1lbnQub25jbGljayA9IG5vb3AkMSkpO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIFwic3VwcHJlc3NDb250ZW50RWRpdGFibGVXYXJuaW5nXCI6XG4gICAgICAgIGNhc2UgXCJzdXBwcmVzc0h5ZHJhdGlvbldhcm5pbmdcIjpcbiAgICAgICAgY2FzZSBcImlubmVySFRNTFwiOlxuICAgICAgICBjYXNlIFwicmVmXCI6XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgXCJpbm5lclRleHRcIjpcbiAgICAgICAgY2FzZSBcInRleHRDb250ZW50XCI6XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgaWYgKHJlZ2lzdHJhdGlvbk5hbWVEZXBlbmRlbmNpZXMuaGFzT3duUHJvcGVydHkoa2V5KSlcbiAgICAgICAgICAgIG51bGwgIT0gdmFsdWUgJiZcbiAgICAgICAgICAgICAgXCJmdW5jdGlvblwiICE9PSB0eXBlb2YgdmFsdWUgJiZcbiAgICAgICAgICAgICAgd2FybkZvckludmFsaWRFdmVudExpc3RlbmVyKGtleSwgdmFsdWUpO1xuICAgICAgICAgIGVsc2VcbiAgICAgICAgICAgIGE6IHtcbiAgICAgICAgICAgICAgaWYgKFxuICAgICAgICAgICAgICAgIFwib1wiID09PSBrZXlbMF0gJiZcbiAgICAgICAgICAgICAgICBcIm5cIiA9PT0ga2V5WzFdICYmXG4gICAgICAgICAgICAgICAgKChwcm9wcyA9IGtleS5lbmRzV2l0aChcIkNhcHR1cmVcIikpLFxuICAgICAgICAgICAgICAgICh0YWcgPSBrZXkuc2xpY2UoMiwgcHJvcHMgPyBrZXkubGVuZ3RoIC0gNyA6IHZvaWQgMCkpLFxuICAgICAgICAgICAgICAgIChwcmV2VmFsdWUgPSBkb21FbGVtZW50W2ludGVybmFsUHJvcHNLZXldIHx8IG51bGwpLFxuICAgICAgICAgICAgICAgIChwcmV2VmFsdWUgPSBudWxsICE9IHByZXZWYWx1ZSA/IHByZXZWYWx1ZVtrZXldIDogbnVsbCksXG4gICAgICAgICAgICAgICAgXCJmdW5jdGlvblwiID09PSB0eXBlb2YgcHJldlZhbHVlICYmXG4gICAgICAgICAgICAgICAgICBkb21FbGVtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIodGFnLCBwcmV2VmFsdWUsIHByb3BzKSxcbiAgICAgICAgICAgICAgICBcImZ1bmN0aW9uXCIgPT09IHR5cGVvZiB2YWx1ZSlcbiAgICAgICAgICAgICAgKSB7XG4gICAgICAgICAgICAgICAgXCJmdW5jdGlvblwiICE9PSB0eXBlb2YgcHJldlZhbHVlICYmXG4gICAgICAgICAgICAgICAgICBudWxsICE9PSBwcmV2VmFsdWUgJiZcbiAgICAgICAgICAgICAgICAgIChrZXkgaW4gZG9tRWxlbWVudFxuICAgICAgICAgICAgICAgICAgICA/IChkb21FbGVtZW50W2tleV0gPSBudWxsKVxuICAgICAgICAgICAgICAgICAgICA6IGRvbUVsZW1lbnQuaGFzQXR0cmlidXRlKGtleSkgJiZcbiAgICAgICAgICAgICAgICAgICAgICBkb21FbGVtZW50LnJlbW92ZUF0dHJpYnV0ZShrZXkpKTtcbiAgICAgICAgICAgICAgICBkb21FbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIodGFnLCB2YWx1ZSwgcHJvcHMpO1xuICAgICAgICAgICAgICAgIGJyZWFrIGE7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAga2V5IGluIGRvbUVsZW1lbnRcbiAgICAgICAgICAgICAgICA/IChkb21FbGVtZW50W2tleV0gPSB2YWx1ZSlcbiAgICAgICAgICAgICAgICA6ICEwID09PSB2YWx1ZVxuICAgICAgICAgICAgICAgICAgPyBkb21FbGVtZW50LnNldEF0dHJpYnV0ZShrZXksIFwiXCIpXG4gICAgICAgICAgICAgICAgICA6IHNldFZhbHVlRm9yQXR0cmlidXRlKGRvbUVsZW1lbnQsIGtleSwgdmFsdWUpO1xuICAgICAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgICBmdW5jdGlvbiBzZXRJbml0aWFsUHJvcGVydGllcyhkb21FbGVtZW50LCB0YWcsIHByb3BzKSB7XG4gICAgICB2YWxpZGF0ZVByb3BlcnRpZXNJbkRldmVsb3BtZW50KHRhZywgcHJvcHMpO1xuICAgICAgc3dpdGNoICh0YWcpIHtcbiAgICAgICAgY2FzZSBcImRpdlwiOlxuICAgICAgICBjYXNlIFwic3BhblwiOlxuICAgICAgICBjYXNlIFwic3ZnXCI6XG4gICAgICAgIGNhc2UgXCJwYXRoXCI6XG4gICAgICAgIGNhc2UgXCJhXCI6XG4gICAgICAgIGNhc2UgXCJnXCI6XG4gICAgICAgIGNhc2UgXCJwXCI6XG4gICAgICAgIGNhc2UgXCJsaVwiOlxuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIFwiaW1nXCI6XG4gICAgICAgICAgbGlzdGVuVG9Ob25EZWxlZ2F0ZWRFdmVudChcImVycm9yXCIsIGRvbUVsZW1lbnQpO1xuICAgICAgICAgIGxpc3RlblRvTm9uRGVsZWdhdGVkRXZlbnQoXCJsb2FkXCIsIGRvbUVsZW1lbnQpO1xuICAgICAgICAgIHZhciBoYXNTcmMgPSAhMSxcbiAgICAgICAgICAgIGhhc1NyY1NldCA9ICExLFxuICAgICAgICAgICAgcHJvcEtleTtcbiAgICAgICAgICBmb3IgKHByb3BLZXkgaW4gcHJvcHMpXG4gICAgICAgICAgICBpZiAocHJvcHMuaGFzT3duUHJvcGVydHkocHJvcEtleSkpIHtcbiAgICAgICAgICAgICAgdmFyIHByb3BWYWx1ZSA9IHByb3BzW3Byb3BLZXldO1xuICAgICAgICAgICAgICBpZiAobnVsbCAhPSBwcm9wVmFsdWUpXG4gICAgICAgICAgICAgICAgc3dpdGNoIChwcm9wS2V5KSB7XG4gICAgICAgICAgICAgICAgICBjYXNlIFwic3JjXCI6XG4gICAgICAgICAgICAgICAgICAgIGhhc1NyYyA9ICEwO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICAgIGNhc2UgXCJzcmNTZXRcIjpcbiAgICAgICAgICAgICAgICAgICAgaGFzU3JjU2V0ID0gITA7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgICAgY2FzZSBcImNoaWxkcmVuXCI6XG4gICAgICAgICAgICAgICAgICBjYXNlIFwiZGFuZ2Vyb3VzbHlTZXRJbm5lckhUTUxcIjpcbiAgICAgICAgICAgICAgICAgICAgdGhyb3cgRXJyb3IoXG4gICAgICAgICAgICAgICAgICAgICAgdGFnICtcbiAgICAgICAgICAgICAgICAgICAgICAgIFwiIGlzIGEgdm9pZCBlbGVtZW50IHRhZyBhbmQgbXVzdCBuZWl0aGVyIGhhdmUgYGNoaWxkcmVuYCBub3IgdXNlIGBkYW5nZXJvdXNseVNldElubmVySFRNTGAuXCJcbiAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgICAgIHNldFByb3AoZG9tRWxlbWVudCwgdGFnLCBwcm9wS2V5LCBwcm9wVmFsdWUsIHByb3BzLCBudWxsKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgaGFzU3JjU2V0ICYmXG4gICAgICAgICAgICBzZXRQcm9wKGRvbUVsZW1lbnQsIHRhZywgXCJzcmNTZXRcIiwgcHJvcHMuc3JjU2V0LCBwcm9wcywgbnVsbCk7XG4gICAgICAgICAgaGFzU3JjICYmIHNldFByb3AoZG9tRWxlbWVudCwgdGFnLCBcInNyY1wiLCBwcm9wcy5zcmMsIHByb3BzLCBudWxsKTtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIGNhc2UgXCJpbnB1dFwiOlxuICAgICAgICAgIGNoZWNrQ29udHJvbGxlZFZhbHVlUHJvcHMoXCJpbnB1dFwiLCBwcm9wcyk7XG4gICAgICAgICAgbGlzdGVuVG9Ob25EZWxlZ2F0ZWRFdmVudChcImludmFsaWRcIiwgZG9tRWxlbWVudCk7XG4gICAgICAgICAgdmFyIGRlZmF1bHRWYWx1ZSA9IChwcm9wS2V5ID0gcHJvcFZhbHVlID0gaGFzU3JjU2V0ID0gbnVsbCksXG4gICAgICAgICAgICBjaGVja2VkID0gbnVsbCxcbiAgICAgICAgICAgIGRlZmF1bHRDaGVja2VkID0gbnVsbDtcbiAgICAgICAgICBmb3IgKGhhc1NyYyBpbiBwcm9wcylcbiAgICAgICAgICAgIGlmIChwcm9wcy5oYXNPd25Qcm9wZXJ0eShoYXNTcmMpKSB7XG4gICAgICAgICAgICAgIHZhciBfcHJvcFZhbHVlID0gcHJvcHNbaGFzU3JjXTtcbiAgICAgICAgICAgICAgaWYgKG51bGwgIT0gX3Byb3BWYWx1ZSlcbiAgICAgICAgICAgICAgICBzd2l0Y2ggKGhhc1NyYykge1xuICAgICAgICAgICAgICAgICAgY2FzZSBcIm5hbWVcIjpcbiAgICAgICAgICAgICAgICAgICAgaGFzU3JjU2V0ID0gX3Byb3BWYWx1ZTtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgICBjYXNlIFwidHlwZVwiOlxuICAgICAgICAgICAgICAgICAgICBwcm9wVmFsdWUgPSBfcHJvcFZhbHVlO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICAgIGNhc2UgXCJjaGVja2VkXCI6XG4gICAgICAgICAgICAgICAgICAgIGNoZWNrZWQgPSBfcHJvcFZhbHVlO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICAgIGNhc2UgXCJkZWZhdWx0Q2hlY2tlZFwiOlxuICAgICAgICAgICAgICAgICAgICBkZWZhdWx0Q2hlY2tlZCA9IF9wcm9wVmFsdWU7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgICAgY2FzZSBcInZhbHVlXCI6XG4gICAgICAgICAgICAgICAgICAgIHByb3BLZXkgPSBfcHJvcFZhbHVlO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICAgIGNhc2UgXCJkZWZhdWx0VmFsdWVcIjpcbiAgICAgICAgICAgICAgICAgICAgZGVmYXVsdFZhbHVlID0gX3Byb3BWYWx1ZTtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgICBjYXNlIFwiY2hpbGRyZW5cIjpcbiAgICAgICAgICAgICAgICAgIGNhc2UgXCJkYW5nZXJvdXNseVNldElubmVySFRNTFwiOlxuICAgICAgICAgICAgICAgICAgICBpZiAobnVsbCAhPSBfcHJvcFZhbHVlKVxuICAgICAgICAgICAgICAgICAgICAgIHRocm93IEVycm9yKFxuICAgICAgICAgICAgICAgICAgICAgICAgdGFnICtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCIgaXMgYSB2b2lkIGVsZW1lbnQgdGFnIGFuZCBtdXN0IG5laXRoZXIgaGF2ZSBgY2hpbGRyZW5gIG5vciB1c2UgYGRhbmdlcm91c2x5U2V0SW5uZXJIVE1MYC5cIlxuICAgICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICAgICAgc2V0UHJvcChkb21FbGVtZW50LCB0YWcsIGhhc1NyYywgX3Byb3BWYWx1ZSwgcHJvcHMsIG51bGwpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB2YWxpZGF0ZUlucHV0UHJvcHMoZG9tRWxlbWVudCwgcHJvcHMpO1xuICAgICAgICAgIGluaXRJbnB1dChcbiAgICAgICAgICAgIGRvbUVsZW1lbnQsXG4gICAgICAgICAgICBwcm9wS2V5LFxuICAgICAgICAgICAgZGVmYXVsdFZhbHVlLFxuICAgICAgICAgICAgY2hlY2tlZCxcbiAgICAgICAgICAgIGRlZmF1bHRDaGVja2VkLFxuICAgICAgICAgICAgcHJvcFZhbHVlLFxuICAgICAgICAgICAgaGFzU3JjU2V0LFxuICAgICAgICAgICAgITFcbiAgICAgICAgICApO1xuICAgICAgICAgIHRyYWNrKGRvbUVsZW1lbnQpO1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgY2FzZSBcInNlbGVjdFwiOlxuICAgICAgICAgIGNoZWNrQ29udHJvbGxlZFZhbHVlUHJvcHMoXCJzZWxlY3RcIiwgcHJvcHMpO1xuICAgICAgICAgIGxpc3RlblRvTm9uRGVsZWdhdGVkRXZlbnQoXCJpbnZhbGlkXCIsIGRvbUVsZW1lbnQpO1xuICAgICAgICAgIGhhc1NyYyA9IHByb3BWYWx1ZSA9IHByb3BLZXkgPSBudWxsO1xuICAgICAgICAgIGZvciAoaGFzU3JjU2V0IGluIHByb3BzKVxuICAgICAgICAgICAgaWYgKFxuICAgICAgICAgICAgICBwcm9wcy5oYXNPd25Qcm9wZXJ0eShoYXNTcmNTZXQpICYmXG4gICAgICAgICAgICAgICgoZGVmYXVsdFZhbHVlID0gcHJvcHNbaGFzU3JjU2V0XSksIG51bGwgIT0gZGVmYXVsdFZhbHVlKVxuICAgICAgICAgICAgKVxuICAgICAgICAgICAgICBzd2l0Y2ggKGhhc1NyY1NldCkge1xuICAgICAgICAgICAgICAgIGNhc2UgXCJ2YWx1ZVwiOlxuICAgICAgICAgICAgICAgICAgcHJvcEtleSA9IGRlZmF1bHRWYWx1ZTtcbiAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIGNhc2UgXCJkZWZhdWx0VmFsdWVcIjpcbiAgICAgICAgICAgICAgICAgIHByb3BWYWx1ZSA9IGRlZmF1bHRWYWx1ZTtcbiAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIGNhc2UgXCJtdWx0aXBsZVwiOlxuICAgICAgICAgICAgICAgICAgaGFzU3JjID0gZGVmYXVsdFZhbHVlO1xuICAgICAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgICBzZXRQcm9wKFxuICAgICAgICAgICAgICAgICAgICBkb21FbGVtZW50LFxuICAgICAgICAgICAgICAgICAgICB0YWcsXG4gICAgICAgICAgICAgICAgICAgIGhhc1NyY1NldCxcbiAgICAgICAgICAgICAgICAgICAgZGVmYXVsdFZhbHVlLFxuICAgICAgICAgICAgICAgICAgICBwcm9wcyxcbiAgICAgICAgICAgICAgICAgICAgbnVsbFxuICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgIHZhbGlkYXRlU2VsZWN0UHJvcHMoZG9tRWxlbWVudCwgcHJvcHMpO1xuICAgICAgICAgIHRhZyA9IHByb3BLZXk7XG4gICAgICAgICAgcHJvcHMgPSBwcm9wVmFsdWU7XG4gICAgICAgICAgZG9tRWxlbWVudC5tdWx0aXBsZSA9ICEhaGFzU3JjO1xuICAgICAgICAgIG51bGwgIT0gdGFnXG4gICAgICAgICAgICA/IHVwZGF0ZU9wdGlvbnMoZG9tRWxlbWVudCwgISFoYXNTcmMsIHRhZywgITEpXG4gICAgICAgICAgICA6IG51bGwgIT0gcHJvcHMgJiYgdXBkYXRlT3B0aW9ucyhkb21FbGVtZW50LCAhIWhhc1NyYywgcHJvcHMsICEwKTtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIGNhc2UgXCJ0ZXh0YXJlYVwiOlxuICAgICAgICAgIGNoZWNrQ29udHJvbGxlZFZhbHVlUHJvcHMoXCJ0ZXh0YXJlYVwiLCBwcm9wcyk7XG4gICAgICAgICAgbGlzdGVuVG9Ob25EZWxlZ2F0ZWRFdmVudChcImludmFsaWRcIiwgZG9tRWxlbWVudCk7XG4gICAgICAgICAgcHJvcEtleSA9IGhhc1NyY1NldCA9IGhhc1NyYyA9IG51bGw7XG4gICAgICAgICAgZm9yIChwcm9wVmFsdWUgaW4gcHJvcHMpXG4gICAgICAgICAgICBpZiAoXG4gICAgICAgICAgICAgIHByb3BzLmhhc093blByb3BlcnR5KHByb3BWYWx1ZSkgJiZcbiAgICAgICAgICAgICAgKChkZWZhdWx0VmFsdWUgPSBwcm9wc1twcm9wVmFsdWVdKSwgbnVsbCAhPSBkZWZhdWx0VmFsdWUpXG4gICAgICAgICAgICApXG4gICAgICAgICAgICAgIHN3aXRjaCAocHJvcFZhbHVlKSB7XG4gICAgICAgICAgICAgICAgY2FzZSBcInZhbHVlXCI6XG4gICAgICAgICAgICAgICAgICBoYXNTcmMgPSBkZWZhdWx0VmFsdWU7XG4gICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICBjYXNlIFwiZGVmYXVsdFZhbHVlXCI6XG4gICAgICAgICAgICAgICAgICBoYXNTcmNTZXQgPSBkZWZhdWx0VmFsdWU7XG4gICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICBjYXNlIFwiY2hpbGRyZW5cIjpcbiAgICAgICAgICAgICAgICAgIHByb3BLZXkgPSBkZWZhdWx0VmFsdWU7XG4gICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICBjYXNlIFwiZGFuZ2Vyb3VzbHlTZXRJbm5lckhUTUxcIjpcbiAgICAgICAgICAgICAgICAgIGlmIChudWxsICE9IGRlZmF1bHRWYWx1ZSlcbiAgICAgICAgICAgICAgICAgICAgdGhyb3cgRXJyb3IoXG4gICAgICAgICAgICAgICAgICAgICAgXCJgZGFuZ2Vyb3VzbHlTZXRJbm5lckhUTUxgIGRvZXMgbm90IG1ha2Ugc2Vuc2Ugb24gPHRleHRhcmVhPi5cIlxuICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICAgIHNldFByb3AoXG4gICAgICAgICAgICAgICAgICAgIGRvbUVsZW1lbnQsXG4gICAgICAgICAgICAgICAgICAgIHRhZyxcbiAgICAgICAgICAgICAgICAgICAgcHJvcFZhbHVlLFxuICAgICAgICAgICAgICAgICAgICBkZWZhdWx0VmFsdWUsXG4gICAgICAgICAgICAgICAgICAgIHByb3BzLFxuICAgICAgICAgICAgICAgICAgICBudWxsXG4gICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgdmFsaWRhdGVUZXh0YXJlYVByb3BzKGRvbUVsZW1lbnQsIHByb3BzKTtcbiAgICAgICAgICBpbml0VGV4dGFyZWEoZG9tRWxlbWVudCwgaGFzU3JjLCBoYXNTcmNTZXQsIHByb3BLZXkpO1xuICAgICAgICAgIHRyYWNrKGRvbUVsZW1lbnQpO1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgY2FzZSBcIm9wdGlvblwiOlxuICAgICAgICAgIHZhbGlkYXRlT3B0aW9uUHJvcHMoZG9tRWxlbWVudCwgcHJvcHMpO1xuICAgICAgICAgIGZvciAoY2hlY2tlZCBpbiBwcm9wcylcbiAgICAgICAgICAgIGlmIChcbiAgICAgICAgICAgICAgcHJvcHMuaGFzT3duUHJvcGVydHkoY2hlY2tlZCkgJiZcbiAgICAgICAgICAgICAgKChoYXNTcmMgPSBwcm9wc1tjaGVja2VkXSksIG51bGwgIT0gaGFzU3JjKVxuICAgICAgICAgICAgKVxuICAgICAgICAgICAgICBzd2l0Y2ggKGNoZWNrZWQpIHtcbiAgICAgICAgICAgICAgICBjYXNlIFwic2VsZWN0ZWRcIjpcbiAgICAgICAgICAgICAgICAgIGRvbUVsZW1lbnQuc2VsZWN0ZWQgPVxuICAgICAgICAgICAgICAgICAgICBoYXNTcmMgJiZcbiAgICAgICAgICAgICAgICAgICAgXCJmdW5jdGlvblwiICE9PSB0eXBlb2YgaGFzU3JjICYmXG4gICAgICAgICAgICAgICAgICAgIFwic3ltYm9sXCIgIT09IHR5cGVvZiBoYXNTcmM7XG4gICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgICAgc2V0UHJvcChkb21FbGVtZW50LCB0YWcsIGNoZWNrZWQsIGhhc1NyYywgcHJvcHMsIG51bGwpO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICBjYXNlIFwiZGlhbG9nXCI6XG4gICAgICAgICAgbGlzdGVuVG9Ob25EZWxlZ2F0ZWRFdmVudChcImJlZm9yZXRvZ2dsZVwiLCBkb21FbGVtZW50KTtcbiAgICAgICAgICBsaXN0ZW5Ub05vbkRlbGVnYXRlZEV2ZW50KFwidG9nZ2xlXCIsIGRvbUVsZW1lbnQpO1xuICAgICAgICAgIGxpc3RlblRvTm9uRGVsZWdhdGVkRXZlbnQoXCJjYW5jZWxcIiwgZG9tRWxlbWVudCk7XG4gICAgICAgICAgbGlzdGVuVG9Ob25EZWxlZ2F0ZWRFdmVudChcImNsb3NlXCIsIGRvbUVsZW1lbnQpO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIFwiaWZyYW1lXCI6XG4gICAgICAgIGNhc2UgXCJvYmplY3RcIjpcbiAgICAgICAgICBsaXN0ZW5Ub05vbkRlbGVnYXRlZEV2ZW50KFwibG9hZFwiLCBkb21FbGVtZW50KTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSBcInZpZGVvXCI6XG4gICAgICAgIGNhc2UgXCJhdWRpb1wiOlxuICAgICAgICAgIGZvciAoaGFzU3JjID0gMDsgaGFzU3JjIDwgbWVkaWFFdmVudFR5cGVzLmxlbmd0aDsgaGFzU3JjKyspXG4gICAgICAgICAgICBsaXN0ZW5Ub05vbkRlbGVnYXRlZEV2ZW50KG1lZGlhRXZlbnRUeXBlc1toYXNTcmNdLCBkb21FbGVtZW50KTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSBcImltYWdlXCI6XG4gICAgICAgICAgbGlzdGVuVG9Ob25EZWxlZ2F0ZWRFdmVudChcImVycm9yXCIsIGRvbUVsZW1lbnQpO1xuICAgICAgICAgIGxpc3RlblRvTm9uRGVsZWdhdGVkRXZlbnQoXCJsb2FkXCIsIGRvbUVsZW1lbnQpO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIFwiZGV0YWlsc1wiOlxuICAgICAgICAgIGxpc3RlblRvTm9uRGVsZWdhdGVkRXZlbnQoXCJ0b2dnbGVcIiwgZG9tRWxlbWVudCk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgXCJlbWJlZFwiOlxuICAgICAgICBjYXNlIFwic291cmNlXCI6XG4gICAgICAgIGNhc2UgXCJsaW5rXCI6XG4gICAgICAgICAgbGlzdGVuVG9Ob25EZWxlZ2F0ZWRFdmVudChcImVycm9yXCIsIGRvbUVsZW1lbnQpLFxuICAgICAgICAgICAgbGlzdGVuVG9Ob25EZWxlZ2F0ZWRFdmVudChcImxvYWRcIiwgZG9tRWxlbWVudCk7XG4gICAgICAgIGNhc2UgXCJhcmVhXCI6XG4gICAgICAgIGNhc2UgXCJiYXNlXCI6XG4gICAgICAgIGNhc2UgXCJiclwiOlxuICAgICAgICBjYXNlIFwiY29sXCI6XG4gICAgICAgIGNhc2UgXCJoclwiOlxuICAgICAgICBjYXNlIFwia2V5Z2VuXCI6XG4gICAgICAgIGNhc2UgXCJtZXRhXCI6XG4gICAgICAgIGNhc2UgXCJwYXJhbVwiOlxuICAgICAgICBjYXNlIFwidHJhY2tcIjpcbiAgICAgICAgY2FzZSBcIndiclwiOlxuICAgICAgICBjYXNlIFwibWVudWl0ZW1cIjpcbiAgICAgICAgICBmb3IgKGRlZmF1bHRDaGVja2VkIGluIHByb3BzKVxuICAgICAgICAgICAgaWYgKFxuICAgICAgICAgICAgICBwcm9wcy5oYXNPd25Qcm9wZXJ0eShkZWZhdWx0Q2hlY2tlZCkgJiZcbiAgICAgICAgICAgICAgKChoYXNTcmMgPSBwcm9wc1tkZWZhdWx0Q2hlY2tlZF0pLCBudWxsICE9IGhhc1NyYylcbiAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgc3dpdGNoIChkZWZhdWx0Q2hlY2tlZCkge1xuICAgICAgICAgICAgICAgIGNhc2UgXCJjaGlsZHJlblwiOlxuICAgICAgICAgICAgICAgIGNhc2UgXCJkYW5nZXJvdXNseVNldElubmVySFRNTFwiOlxuICAgICAgICAgICAgICAgICAgdGhyb3cgRXJyb3IoXG4gICAgICAgICAgICAgICAgICAgIHRhZyArXG4gICAgICAgICAgICAgICAgICAgICAgXCIgaXMgYSB2b2lkIGVsZW1lbnQgdGFnIGFuZCBtdXN0IG5laXRoZXIgaGF2ZSBgY2hpbGRyZW5gIG5vciB1c2UgYGRhbmdlcm91c2x5U2V0SW5uZXJIVE1MYC5cIlxuICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgICAgc2V0UHJvcChkb21FbGVtZW50LCB0YWcsIGRlZmF1bHRDaGVja2VkLCBoYXNTcmMsIHByb3BzLCBudWxsKTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICBpZiAoaXNDdXN0b21FbGVtZW50KHRhZykpIHtcbiAgICAgICAgICAgIGZvciAoX3Byb3BWYWx1ZSBpbiBwcm9wcylcbiAgICAgICAgICAgICAgcHJvcHMuaGFzT3duUHJvcGVydHkoX3Byb3BWYWx1ZSkgJiZcbiAgICAgICAgICAgICAgICAoKGhhc1NyYyA9IHByb3BzW19wcm9wVmFsdWVdKSxcbiAgICAgICAgICAgICAgICB2b2lkIDAgIT09IGhhc1NyYyAmJlxuICAgICAgICAgICAgICAgICAgc2V0UHJvcE9uQ3VzdG9tRWxlbWVudChcbiAgICAgICAgICAgICAgICAgICAgZG9tRWxlbWVudCxcbiAgICAgICAgICAgICAgICAgICAgdGFnLFxuICAgICAgICAgICAgICAgICAgICBfcHJvcFZhbHVlLFxuICAgICAgICAgICAgICAgICAgICBoYXNTcmMsXG4gICAgICAgICAgICAgICAgICAgIHByb3BzLFxuICAgICAgICAgICAgICAgICAgICB2b2lkIDBcbiAgICAgICAgICAgICAgICAgICkpO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgIH1cbiAgICAgIH1cbiAgICAgIGZvciAoZGVmYXVsdFZhbHVlIGluIHByb3BzKVxuICAgICAgICBwcm9wcy5oYXNPd25Qcm9wZXJ0eShkZWZhdWx0VmFsdWUpICYmXG4gICAgICAgICAgKChoYXNTcmMgPSBwcm9wc1tkZWZhdWx0VmFsdWVdKSxcbiAgICAgICAgICBudWxsICE9IGhhc1NyYyAmJlxuICAgICAgICAgICAgc2V0UHJvcChkb21FbGVtZW50LCB0YWcsIGRlZmF1bHRWYWx1ZSwgaGFzU3JjLCBwcm9wcywgbnVsbCkpO1xuICAgIH1cbiAgICBmdW5jdGlvbiB1cGRhdGVQcm9wZXJ0aWVzKGRvbUVsZW1lbnQsIHRhZywgbGFzdFByb3BzLCBuZXh0UHJvcHMpIHtcbiAgICAgIHZhbGlkYXRlUHJvcGVydGllc0luRGV2ZWxvcG1lbnQodGFnLCBuZXh0UHJvcHMpO1xuICAgICAgc3dpdGNoICh0YWcpIHtcbiAgICAgICAgY2FzZSBcImRpdlwiOlxuICAgICAgICBjYXNlIFwic3BhblwiOlxuICAgICAgICBjYXNlIFwic3ZnXCI6XG4gICAgICAgIGNhc2UgXCJwYXRoXCI6XG4gICAgICAgIGNhc2UgXCJhXCI6XG4gICAgICAgIGNhc2UgXCJnXCI6XG4gICAgICAgIGNhc2UgXCJwXCI6XG4gICAgICAgIGNhc2UgXCJsaVwiOlxuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIFwiaW5wdXRcIjpcbiAgICAgICAgICB2YXIgbmFtZSA9IG51bGwsXG4gICAgICAgICAgICB0eXBlID0gbnVsbCxcbiAgICAgICAgICAgIHZhbHVlID0gbnVsbCxcbiAgICAgICAgICAgIGRlZmF1bHRWYWx1ZSA9IG51bGwsXG4gICAgICAgICAgICBsYXN0RGVmYXVsdFZhbHVlID0gbnVsbCxcbiAgICAgICAgICAgIGNoZWNrZWQgPSBudWxsLFxuICAgICAgICAgICAgZGVmYXVsdENoZWNrZWQgPSBudWxsO1xuICAgICAgICAgIGZvciAocHJvcEtleSBpbiBsYXN0UHJvcHMpIHtcbiAgICAgICAgICAgIHZhciBsYXN0UHJvcCA9IGxhc3RQcm9wc1twcm9wS2V5XTtcbiAgICAgICAgICAgIGlmIChsYXN0UHJvcHMuaGFzT3duUHJvcGVydHkocHJvcEtleSkgJiYgbnVsbCAhPSBsYXN0UHJvcClcbiAgICAgICAgICAgICAgc3dpdGNoIChwcm9wS2V5KSB7XG4gICAgICAgICAgICAgICAgY2FzZSBcImNoZWNrZWRcIjpcbiAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIGNhc2UgXCJ2YWx1ZVwiOlxuICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgY2FzZSBcImRlZmF1bHRWYWx1ZVwiOlxuICAgICAgICAgICAgICAgICAgbGFzdERlZmF1bHRWYWx1ZSA9IGxhc3RQcm9wO1xuICAgICAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgICBuZXh0UHJvcHMuaGFzT3duUHJvcGVydHkocHJvcEtleSkgfHxcbiAgICAgICAgICAgICAgICAgICAgc2V0UHJvcChcbiAgICAgICAgICAgICAgICAgICAgICBkb21FbGVtZW50LFxuICAgICAgICAgICAgICAgICAgICAgIHRhZyxcbiAgICAgICAgICAgICAgICAgICAgICBwcm9wS2V5LFxuICAgICAgICAgICAgICAgICAgICAgIG51bGwsXG4gICAgICAgICAgICAgICAgICAgICAgbmV4dFByb3BzLFxuICAgICAgICAgICAgICAgICAgICAgIGxhc3RQcm9wXG4gICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgICAgZm9yICh2YXIgX3Byb3BLZXk4IGluIG5leHRQcm9wcykge1xuICAgICAgICAgICAgdmFyIHByb3BLZXkgPSBuZXh0UHJvcHNbX3Byb3BLZXk4XTtcbiAgICAgICAgICAgIGxhc3RQcm9wID0gbGFzdFByb3BzW19wcm9wS2V5OF07XG4gICAgICAgICAgICBpZiAoXG4gICAgICAgICAgICAgIG5leHRQcm9wcy5oYXNPd25Qcm9wZXJ0eShfcHJvcEtleTgpICYmXG4gICAgICAgICAgICAgIChudWxsICE9IHByb3BLZXkgfHwgbnVsbCAhPSBsYXN0UHJvcClcbiAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgc3dpdGNoIChfcHJvcEtleTgpIHtcbiAgICAgICAgICAgICAgICBjYXNlIFwidHlwZVwiOlxuICAgICAgICAgICAgICAgICAgdHlwZSA9IHByb3BLZXk7XG4gICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICBjYXNlIFwibmFtZVwiOlxuICAgICAgICAgICAgICAgICAgbmFtZSA9IHByb3BLZXk7XG4gICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICBjYXNlIFwiY2hlY2tlZFwiOlxuICAgICAgICAgICAgICAgICAgY2hlY2tlZCA9IHByb3BLZXk7XG4gICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICBjYXNlIFwiZGVmYXVsdENoZWNrZWRcIjpcbiAgICAgICAgICAgICAgICAgIGRlZmF1bHRDaGVja2VkID0gcHJvcEtleTtcbiAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIGNhc2UgXCJ2YWx1ZVwiOlxuICAgICAgICAgICAgICAgICAgdmFsdWUgPSBwcm9wS2V5O1xuICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgY2FzZSBcImRlZmF1bHRWYWx1ZVwiOlxuICAgICAgICAgICAgICAgICAgZGVmYXVsdFZhbHVlID0gcHJvcEtleTtcbiAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIGNhc2UgXCJjaGlsZHJlblwiOlxuICAgICAgICAgICAgICAgIGNhc2UgXCJkYW5nZXJvdXNseVNldElubmVySFRNTFwiOlxuICAgICAgICAgICAgICAgICAgaWYgKG51bGwgIT0gcHJvcEtleSlcbiAgICAgICAgICAgICAgICAgICAgdGhyb3cgRXJyb3IoXG4gICAgICAgICAgICAgICAgICAgICAgdGFnICtcbiAgICAgICAgICAgICAgICAgICAgICAgIFwiIGlzIGEgdm9pZCBlbGVtZW50IHRhZyBhbmQgbXVzdCBuZWl0aGVyIGhhdmUgYGNoaWxkcmVuYCBub3IgdXNlIGBkYW5nZXJvdXNseVNldElubmVySFRNTGAuXCJcbiAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgICBwcm9wS2V5ICE9PSBsYXN0UHJvcCAmJlxuICAgICAgICAgICAgICAgICAgICBzZXRQcm9wKFxuICAgICAgICAgICAgICAgICAgICAgIGRvbUVsZW1lbnQsXG4gICAgICAgICAgICAgICAgICAgICAgdGFnLFxuICAgICAgICAgICAgICAgICAgICAgIF9wcm9wS2V5OCxcbiAgICAgICAgICAgICAgICAgICAgICBwcm9wS2V5LFxuICAgICAgICAgICAgICAgICAgICAgIG5leHRQcm9wcyxcbiAgICAgICAgICAgICAgICAgICAgICBsYXN0UHJvcFxuICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICAgIHRhZyA9XG4gICAgICAgICAgICBcImNoZWNrYm94XCIgPT09IGxhc3RQcm9wcy50eXBlIHx8IFwicmFkaW9cIiA9PT0gbGFzdFByb3BzLnR5cGVcbiAgICAgICAgICAgICAgPyBudWxsICE9IGxhc3RQcm9wcy5jaGVja2VkXG4gICAgICAgICAgICAgIDogbnVsbCAhPSBsYXN0UHJvcHMudmFsdWU7XG4gICAgICAgICAgbmV4dFByb3BzID1cbiAgICAgICAgICAgIFwiY2hlY2tib3hcIiA9PT0gbmV4dFByb3BzLnR5cGUgfHwgXCJyYWRpb1wiID09PSBuZXh0UHJvcHMudHlwZVxuICAgICAgICAgICAgICA/IG51bGwgIT0gbmV4dFByb3BzLmNoZWNrZWRcbiAgICAgICAgICAgICAgOiBudWxsICE9IG5leHRQcm9wcy52YWx1ZTtcbiAgICAgICAgICB0YWcgfHxcbiAgICAgICAgICAgICFuZXh0UHJvcHMgfHxcbiAgICAgICAgICAgIGRpZFdhcm5VbmNvbnRyb2xsZWRUb0NvbnRyb2xsZWQgfHxcbiAgICAgICAgICAgIChjb25zb2xlLmVycm9yKFxuICAgICAgICAgICAgICBcIkEgY29tcG9uZW50IGlzIGNoYW5naW5nIGFuIHVuY29udHJvbGxlZCBpbnB1dCB0byBiZSBjb250cm9sbGVkLiBUaGlzIGlzIGxpa2VseSBjYXVzZWQgYnkgdGhlIHZhbHVlIGNoYW5naW5nIGZyb20gdW5kZWZpbmVkIHRvIGEgZGVmaW5lZCB2YWx1ZSwgd2hpY2ggc2hvdWxkIG5vdCBoYXBwZW4uIERlY2lkZSBiZXR3ZWVuIHVzaW5nIGEgY29udHJvbGxlZCBvciB1bmNvbnRyb2xsZWQgaW5wdXQgZWxlbWVudCBmb3IgdGhlIGxpZmV0aW1lIG9mIHRoZSBjb21wb25lbnQuIE1vcmUgaW5mbzogaHR0cHM6Ly9yZWFjdC5kZXYvbGluay9jb250cm9sbGVkLWNvbXBvbmVudHNcIlxuICAgICAgICAgICAgKSxcbiAgICAgICAgICAgIChkaWRXYXJuVW5jb250cm9sbGVkVG9Db250cm9sbGVkID0gITApKTtcbiAgICAgICAgICAhdGFnIHx8XG4gICAgICAgICAgICBuZXh0UHJvcHMgfHxcbiAgICAgICAgICAgIGRpZFdhcm5Db250cm9sbGVkVG9VbmNvbnRyb2xsZWQgfHxcbiAgICAgICAgICAgIChjb25zb2xlLmVycm9yKFxuICAgICAgICAgICAgICBcIkEgY29tcG9uZW50IGlzIGNoYW5naW5nIGEgY29udHJvbGxlZCBpbnB1dCB0byBiZSB1bmNvbnRyb2xsZWQuIFRoaXMgaXMgbGlrZWx5IGNhdXNlZCBieSB0aGUgdmFsdWUgY2hhbmdpbmcgZnJvbSBhIGRlZmluZWQgdG8gdW5kZWZpbmVkLCB3aGljaCBzaG91bGQgbm90IGhhcHBlbi4gRGVjaWRlIGJldHdlZW4gdXNpbmcgYSBjb250cm9sbGVkIG9yIHVuY29udHJvbGxlZCBpbnB1dCBlbGVtZW50IGZvciB0aGUgbGlmZXRpbWUgb2YgdGhlIGNvbXBvbmVudC4gTW9yZSBpbmZvOiBodHRwczovL3JlYWN0LmRldi9saW5rL2NvbnRyb2xsZWQtY29tcG9uZW50c1wiXG4gICAgICAgICAgICApLFxuICAgICAgICAgICAgKGRpZFdhcm5Db250cm9sbGVkVG9VbmNvbnRyb2xsZWQgPSAhMCkpO1xuICAgICAgICAgIHVwZGF0ZUlucHV0KFxuICAgICAgICAgICAgZG9tRWxlbWVudCxcbiAgICAgICAgICAgIHZhbHVlLFxuICAgICAgICAgICAgZGVmYXVsdFZhbHVlLFxuICAgICAgICAgICAgbGFzdERlZmF1bHRWYWx1ZSxcbiAgICAgICAgICAgIGNoZWNrZWQsXG4gICAgICAgICAgICBkZWZhdWx0Q2hlY2tlZCxcbiAgICAgICAgICAgIHR5cGUsXG4gICAgICAgICAgICBuYW1lXG4gICAgICAgICAgKTtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIGNhc2UgXCJzZWxlY3RcIjpcbiAgICAgICAgICBwcm9wS2V5ID0gdmFsdWUgPSBkZWZhdWx0VmFsdWUgPSBfcHJvcEtleTggPSBudWxsO1xuICAgICAgICAgIGZvciAodHlwZSBpbiBsYXN0UHJvcHMpXG4gICAgICAgICAgICBpZiAoXG4gICAgICAgICAgICAgICgobGFzdERlZmF1bHRWYWx1ZSA9IGxhc3RQcm9wc1t0eXBlXSksXG4gICAgICAgICAgICAgIGxhc3RQcm9wcy5oYXNPd25Qcm9wZXJ0eSh0eXBlKSAmJiBudWxsICE9IGxhc3REZWZhdWx0VmFsdWUpXG4gICAgICAgICAgICApXG4gICAgICAgICAgICAgIHN3aXRjaCAodHlwZSkge1xuICAgICAgICAgICAgICAgIGNhc2UgXCJ2YWx1ZVwiOlxuICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgY2FzZSBcIm11bHRpcGxlXCI6XG4gICAgICAgICAgICAgICAgICBwcm9wS2V5ID0gbGFzdERlZmF1bHRWYWx1ZTtcbiAgICAgICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgICAgbmV4dFByb3BzLmhhc093blByb3BlcnR5KHR5cGUpIHx8XG4gICAgICAgICAgICAgICAgICAgIHNldFByb3AoXG4gICAgICAgICAgICAgICAgICAgICAgZG9tRWxlbWVudCxcbiAgICAgICAgICAgICAgICAgICAgICB0YWcsXG4gICAgICAgICAgICAgICAgICAgICAgdHlwZSxcbiAgICAgICAgICAgICAgICAgICAgICBudWxsLFxuICAgICAgICAgICAgICAgICAgICAgIG5leHRQcm9wcyxcbiAgICAgICAgICAgICAgICAgICAgICBsYXN0RGVmYXVsdFZhbHVlXG4gICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICBmb3IgKG5hbWUgaW4gbmV4dFByb3BzKVxuICAgICAgICAgICAgaWYgKFxuICAgICAgICAgICAgICAoKHR5cGUgPSBuZXh0UHJvcHNbbmFtZV0pLFxuICAgICAgICAgICAgICAobGFzdERlZmF1bHRWYWx1ZSA9IGxhc3RQcm9wc1tuYW1lXSksXG4gICAgICAgICAgICAgIG5leHRQcm9wcy5oYXNPd25Qcm9wZXJ0eShuYW1lKSAmJlxuICAgICAgICAgICAgICAgIChudWxsICE9IHR5cGUgfHwgbnVsbCAhPSBsYXN0RGVmYXVsdFZhbHVlKSlcbiAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgc3dpdGNoIChuYW1lKSB7XG4gICAgICAgICAgICAgICAgY2FzZSBcInZhbHVlXCI6XG4gICAgICAgICAgICAgICAgICBfcHJvcEtleTggPSB0eXBlO1xuICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgY2FzZSBcImRlZmF1bHRWYWx1ZVwiOlxuICAgICAgICAgICAgICAgICAgZGVmYXVsdFZhbHVlID0gdHlwZTtcbiAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIGNhc2UgXCJtdWx0aXBsZVwiOlxuICAgICAgICAgICAgICAgICAgdmFsdWUgPSB0eXBlO1xuICAgICAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgICB0eXBlICE9PSBsYXN0RGVmYXVsdFZhbHVlICYmXG4gICAgICAgICAgICAgICAgICAgIHNldFByb3AoXG4gICAgICAgICAgICAgICAgICAgICAgZG9tRWxlbWVudCxcbiAgICAgICAgICAgICAgICAgICAgICB0YWcsXG4gICAgICAgICAgICAgICAgICAgICAgbmFtZSxcbiAgICAgICAgICAgICAgICAgICAgICB0eXBlLFxuICAgICAgICAgICAgICAgICAgICAgIG5leHRQcm9wcyxcbiAgICAgICAgICAgICAgICAgICAgICBsYXN0RGVmYXVsdFZhbHVlXG4gICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICBuZXh0UHJvcHMgPSBkZWZhdWx0VmFsdWU7XG4gICAgICAgICAgdGFnID0gdmFsdWU7XG4gICAgICAgICAgbGFzdFByb3BzID0gcHJvcEtleTtcbiAgICAgICAgICBudWxsICE9IF9wcm9wS2V5OFxuICAgICAgICAgICAgPyB1cGRhdGVPcHRpb25zKGRvbUVsZW1lbnQsICEhdGFnLCBfcHJvcEtleTgsICExKVxuICAgICAgICAgICAgOiAhIWxhc3RQcm9wcyAhPT0gISF0YWcgJiZcbiAgICAgICAgICAgICAgKG51bGwgIT0gbmV4dFByb3BzXG4gICAgICAgICAgICAgICAgPyB1cGRhdGVPcHRpb25zKGRvbUVsZW1lbnQsICEhdGFnLCBuZXh0UHJvcHMsICEwKVxuICAgICAgICAgICAgICAgIDogdXBkYXRlT3B0aW9ucyhkb21FbGVtZW50LCAhIXRhZywgdGFnID8gW10gOiBcIlwiLCAhMSkpO1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgY2FzZSBcInRleHRhcmVhXCI6XG4gICAgICAgICAgcHJvcEtleSA9IF9wcm9wS2V5OCA9IG51bGw7XG4gICAgICAgICAgZm9yIChkZWZhdWx0VmFsdWUgaW4gbGFzdFByb3BzKVxuICAgICAgICAgICAgaWYgKFxuICAgICAgICAgICAgICAoKG5hbWUgPSBsYXN0UHJvcHNbZGVmYXVsdFZhbHVlXSksXG4gICAgICAgICAgICAgIGxhc3RQcm9wcy5oYXNPd25Qcm9wZXJ0eShkZWZhdWx0VmFsdWUpICYmXG4gICAgICAgICAgICAgICAgbnVsbCAhPSBuYW1lICYmXG4gICAgICAgICAgICAgICAgIW5leHRQcm9wcy5oYXNPd25Qcm9wZXJ0eShkZWZhdWx0VmFsdWUpKVxuICAgICAgICAgICAgKVxuICAgICAgICAgICAgICBzd2l0Y2ggKGRlZmF1bHRWYWx1ZSkge1xuICAgICAgICAgICAgICAgIGNhc2UgXCJ2YWx1ZVwiOlxuICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgY2FzZSBcImNoaWxkcmVuXCI6XG4gICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgICAgc2V0UHJvcChkb21FbGVtZW50LCB0YWcsIGRlZmF1bHRWYWx1ZSwgbnVsbCwgbmV4dFByb3BzLCBuYW1lKTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgIGZvciAodmFsdWUgaW4gbmV4dFByb3BzKVxuICAgICAgICAgICAgaWYgKFxuICAgICAgICAgICAgICAoKG5hbWUgPSBuZXh0UHJvcHNbdmFsdWVdKSxcbiAgICAgICAgICAgICAgKHR5cGUgPSBsYXN0UHJvcHNbdmFsdWVdKSxcbiAgICAgICAgICAgICAgbmV4dFByb3BzLmhhc093blByb3BlcnR5KHZhbHVlKSAmJiAobnVsbCAhPSBuYW1lIHx8IG51bGwgIT0gdHlwZSkpXG4gICAgICAgICAgICApXG4gICAgICAgICAgICAgIHN3aXRjaCAodmFsdWUpIHtcbiAgICAgICAgICAgICAgICBjYXNlIFwidmFsdWVcIjpcbiAgICAgICAgICAgICAgICAgIF9wcm9wS2V5OCA9IG5hbWU7XG4gICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICBjYXNlIFwiZGVmYXVsdFZhbHVlXCI6XG4gICAgICAgICAgICAgICAgICBwcm9wS2V5ID0gbmFtZTtcbiAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIGNhc2UgXCJjaGlsZHJlblwiOlxuICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgY2FzZSBcImRhbmdlcm91c2x5U2V0SW5uZXJIVE1MXCI6XG4gICAgICAgICAgICAgICAgICBpZiAobnVsbCAhPSBuYW1lKVxuICAgICAgICAgICAgICAgICAgICB0aHJvdyBFcnJvcihcbiAgICAgICAgICAgICAgICAgICAgICBcImBkYW5nZXJvdXNseVNldElubmVySFRNTGAgZG9lcyBub3QgbWFrZSBzZW5zZSBvbiA8dGV4dGFyZWE+LlwiXG4gICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgICAgbmFtZSAhPT0gdHlwZSAmJlxuICAgICAgICAgICAgICAgICAgICBzZXRQcm9wKGRvbUVsZW1lbnQsIHRhZywgdmFsdWUsIG5hbWUsIG5leHRQcm9wcywgdHlwZSk7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICB1cGRhdGVUZXh0YXJlYShkb21FbGVtZW50LCBfcHJvcEtleTgsIHByb3BLZXkpO1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgY2FzZSBcIm9wdGlvblwiOlxuICAgICAgICAgIGZvciAodmFyIF9wcm9wS2V5MTMgaW4gbGFzdFByb3BzKVxuICAgICAgICAgICAgaWYgKFxuICAgICAgICAgICAgICAoKF9wcm9wS2V5OCA9IGxhc3RQcm9wc1tfcHJvcEtleTEzXSksXG4gICAgICAgICAgICAgIGxhc3RQcm9wcy5oYXNPd25Qcm9wZXJ0eShfcHJvcEtleTEzKSAmJlxuICAgICAgICAgICAgICAgIG51bGwgIT0gX3Byb3BLZXk4ICYmXG4gICAgICAgICAgICAgICAgIW5leHRQcm9wcy5oYXNPd25Qcm9wZXJ0eShfcHJvcEtleTEzKSlcbiAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgc3dpdGNoIChfcHJvcEtleTEzKSB7XG4gICAgICAgICAgICAgICAgY2FzZSBcInNlbGVjdGVkXCI6XG4gICAgICAgICAgICAgICAgICBkb21FbGVtZW50LnNlbGVjdGVkID0gITE7XG4gICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgICAgc2V0UHJvcChcbiAgICAgICAgICAgICAgICAgICAgZG9tRWxlbWVudCxcbiAgICAgICAgICAgICAgICAgICAgdGFnLFxuICAgICAgICAgICAgICAgICAgICBfcHJvcEtleTEzLFxuICAgICAgICAgICAgICAgICAgICBudWxsLFxuICAgICAgICAgICAgICAgICAgICBuZXh0UHJvcHMsXG4gICAgICAgICAgICAgICAgICAgIF9wcm9wS2V5OFxuICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgIGZvciAobGFzdERlZmF1bHRWYWx1ZSBpbiBuZXh0UHJvcHMpXG4gICAgICAgICAgICBpZiAoXG4gICAgICAgICAgICAgICgoX3Byb3BLZXk4ID0gbmV4dFByb3BzW2xhc3REZWZhdWx0VmFsdWVdKSxcbiAgICAgICAgICAgICAgKHByb3BLZXkgPSBsYXN0UHJvcHNbbGFzdERlZmF1bHRWYWx1ZV0pLFxuICAgICAgICAgICAgICBuZXh0UHJvcHMuaGFzT3duUHJvcGVydHkobGFzdERlZmF1bHRWYWx1ZSkgJiZcbiAgICAgICAgICAgICAgICBfcHJvcEtleTggIT09IHByb3BLZXkgJiZcbiAgICAgICAgICAgICAgICAobnVsbCAhPSBfcHJvcEtleTggfHwgbnVsbCAhPSBwcm9wS2V5KSlcbiAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgc3dpdGNoIChsYXN0RGVmYXVsdFZhbHVlKSB7XG4gICAgICAgICAgICAgICAgY2FzZSBcInNlbGVjdGVkXCI6XG4gICAgICAgICAgICAgICAgICBkb21FbGVtZW50LnNlbGVjdGVkID1cbiAgICAgICAgICAgICAgICAgICAgX3Byb3BLZXk4ICYmXG4gICAgICAgICAgICAgICAgICAgIFwiZnVuY3Rpb25cIiAhPT0gdHlwZW9mIF9wcm9wS2V5OCAmJlxuICAgICAgICAgICAgICAgICAgICBcInN5bWJvbFwiICE9PSB0eXBlb2YgX3Byb3BLZXk4O1xuICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICAgIHNldFByb3AoXG4gICAgICAgICAgICAgICAgICAgIGRvbUVsZW1lbnQsXG4gICAgICAgICAgICAgICAgICAgIHRhZyxcbiAgICAgICAgICAgICAgICAgICAgbGFzdERlZmF1bHRWYWx1ZSxcbiAgICAgICAgICAgICAgICAgICAgX3Byb3BLZXk4LFxuICAgICAgICAgICAgICAgICAgICBuZXh0UHJvcHMsXG4gICAgICAgICAgICAgICAgICAgIHByb3BLZXlcbiAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIGNhc2UgXCJpbWdcIjpcbiAgICAgICAgY2FzZSBcImxpbmtcIjpcbiAgICAgICAgY2FzZSBcImFyZWFcIjpcbiAgICAgICAgY2FzZSBcImJhc2VcIjpcbiAgICAgICAgY2FzZSBcImJyXCI6XG4gICAgICAgIGNhc2UgXCJjb2xcIjpcbiAgICAgICAgY2FzZSBcImVtYmVkXCI6XG4gICAgICAgIGNhc2UgXCJoclwiOlxuICAgICAgICBjYXNlIFwia2V5Z2VuXCI6XG4gICAgICAgIGNhc2UgXCJtZXRhXCI6XG4gICAgICAgIGNhc2UgXCJwYXJhbVwiOlxuICAgICAgICBjYXNlIFwic291cmNlXCI6XG4gICAgICAgIGNhc2UgXCJ0cmFja1wiOlxuICAgICAgICBjYXNlIFwid2JyXCI6XG4gICAgICAgIGNhc2UgXCJtZW51aXRlbVwiOlxuICAgICAgICAgIGZvciAodmFyIF9wcm9wS2V5MTUgaW4gbGFzdFByb3BzKVxuICAgICAgICAgICAgKF9wcm9wS2V5OCA9IGxhc3RQcm9wc1tfcHJvcEtleTE1XSksXG4gICAgICAgICAgICAgIGxhc3RQcm9wcy5oYXNPd25Qcm9wZXJ0eShfcHJvcEtleTE1KSAmJlxuICAgICAgICAgICAgICAgIG51bGwgIT0gX3Byb3BLZXk4ICYmXG4gICAgICAgICAgICAgICAgIW5leHRQcm9wcy5oYXNPd25Qcm9wZXJ0eShfcHJvcEtleTE1KSAmJlxuICAgICAgICAgICAgICAgIHNldFByb3AoXG4gICAgICAgICAgICAgICAgICBkb21FbGVtZW50LFxuICAgICAgICAgICAgICAgICAgdGFnLFxuICAgICAgICAgICAgICAgICAgX3Byb3BLZXkxNSxcbiAgICAgICAgICAgICAgICAgIG51bGwsXG4gICAgICAgICAgICAgICAgICBuZXh0UHJvcHMsXG4gICAgICAgICAgICAgICAgICBfcHJvcEtleThcbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgIGZvciAoY2hlY2tlZCBpbiBuZXh0UHJvcHMpXG4gICAgICAgICAgICBpZiAoXG4gICAgICAgICAgICAgICgoX3Byb3BLZXk4ID0gbmV4dFByb3BzW2NoZWNrZWRdKSxcbiAgICAgICAgICAgICAgKHByb3BLZXkgPSBsYXN0UHJvcHNbY2hlY2tlZF0pLFxuICAgICAgICAgICAgICBuZXh0UHJvcHMuaGFzT3duUHJvcGVydHkoY2hlY2tlZCkgJiZcbiAgICAgICAgICAgICAgICBfcHJvcEtleTggIT09IHByb3BLZXkgJiZcbiAgICAgICAgICAgICAgICAobnVsbCAhPSBfcHJvcEtleTggfHwgbnVsbCAhPSBwcm9wS2V5KSlcbiAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgc3dpdGNoIChjaGVja2VkKSB7XG4gICAgICAgICAgICAgICAgY2FzZSBcImNoaWxkcmVuXCI6XG4gICAgICAgICAgICAgICAgY2FzZSBcImRhbmdlcm91c2x5U2V0SW5uZXJIVE1MXCI6XG4gICAgICAgICAgICAgICAgICBpZiAobnVsbCAhPSBfcHJvcEtleTgpXG4gICAgICAgICAgICAgICAgICAgIHRocm93IEVycm9yKFxuICAgICAgICAgICAgICAgICAgICAgIHRhZyArXG4gICAgICAgICAgICAgICAgICAgICAgICBcIiBpcyBhIHZvaWQgZWxlbWVudCB0YWcgYW5kIG11c3QgbmVpdGhlciBoYXZlIGBjaGlsZHJlbmAgbm9yIHVzZSBgZGFuZ2Vyb3VzbHlTZXRJbm5lckhUTUxgLlwiXG4gICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgICAgc2V0UHJvcChcbiAgICAgICAgICAgICAgICAgICAgZG9tRWxlbWVudCxcbiAgICAgICAgICAgICAgICAgICAgdGFnLFxuICAgICAgICAgICAgICAgICAgICBjaGVja2VkLFxuICAgICAgICAgICAgICAgICAgICBfcHJvcEtleTgsXG4gICAgICAgICAgICAgICAgICAgIG5leHRQcm9wcyxcbiAgICAgICAgICAgICAgICAgICAgcHJvcEtleVxuICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICBpZiAoaXNDdXN0b21FbGVtZW50KHRhZykpIHtcbiAgICAgICAgICAgIGZvciAodmFyIF9wcm9wS2V5MTcgaW4gbGFzdFByb3BzKVxuICAgICAgICAgICAgICAoX3Byb3BLZXk4ID0gbGFzdFByb3BzW19wcm9wS2V5MTddKSxcbiAgICAgICAgICAgICAgICBsYXN0UHJvcHMuaGFzT3duUHJvcGVydHkoX3Byb3BLZXkxNykgJiZcbiAgICAgICAgICAgICAgICAgIHZvaWQgMCAhPT0gX3Byb3BLZXk4ICYmXG4gICAgICAgICAgICAgICAgICAhbmV4dFByb3BzLmhhc093blByb3BlcnR5KF9wcm9wS2V5MTcpICYmXG4gICAgICAgICAgICAgICAgICBzZXRQcm9wT25DdXN0b21FbGVtZW50KFxuICAgICAgICAgICAgICAgICAgICBkb21FbGVtZW50LFxuICAgICAgICAgICAgICAgICAgICB0YWcsXG4gICAgICAgICAgICAgICAgICAgIF9wcm9wS2V5MTcsXG4gICAgICAgICAgICAgICAgICAgIHZvaWQgMCxcbiAgICAgICAgICAgICAgICAgICAgbmV4dFByb3BzLFxuICAgICAgICAgICAgICAgICAgICBfcHJvcEtleThcbiAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICBmb3IgKGRlZmF1bHRDaGVja2VkIGluIG5leHRQcm9wcylcbiAgICAgICAgICAgICAgKF9wcm9wS2V5OCA9IG5leHRQcm9wc1tkZWZhdWx0Q2hlY2tlZF0pLFxuICAgICAgICAgICAgICAgIChwcm9wS2V5ID0gbGFzdFByb3BzW2RlZmF1bHRDaGVja2VkXSksXG4gICAgICAgICAgICAgICAgIW5leHRQcm9wcy5oYXNPd25Qcm9wZXJ0eShkZWZhdWx0Q2hlY2tlZCkgfHxcbiAgICAgICAgICAgICAgICAgIF9wcm9wS2V5OCA9PT0gcHJvcEtleSB8fFxuICAgICAgICAgICAgICAgICAgKHZvaWQgMCA9PT0gX3Byb3BLZXk4ICYmIHZvaWQgMCA9PT0gcHJvcEtleSkgfHxcbiAgICAgICAgICAgICAgICAgIHNldFByb3BPbkN1c3RvbUVsZW1lbnQoXG4gICAgICAgICAgICAgICAgICAgIGRvbUVsZW1lbnQsXG4gICAgICAgICAgICAgICAgICAgIHRhZyxcbiAgICAgICAgICAgICAgICAgICAgZGVmYXVsdENoZWNrZWQsXG4gICAgICAgICAgICAgICAgICAgIF9wcm9wS2V5OCxcbiAgICAgICAgICAgICAgICAgICAgbmV4dFByb3BzLFxuICAgICAgICAgICAgICAgICAgICBwcm9wS2V5XG4gICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgIH1cbiAgICAgIH1cbiAgICAgIGZvciAodmFyIF9wcm9wS2V5MTkgaW4gbGFzdFByb3BzKVxuICAgICAgICAoX3Byb3BLZXk4ID0gbGFzdFByb3BzW19wcm9wS2V5MTldKSxcbiAgICAgICAgICBsYXN0UHJvcHMuaGFzT3duUHJvcGVydHkoX3Byb3BLZXkxOSkgJiZcbiAgICAgICAgICAgIG51bGwgIT0gX3Byb3BLZXk4ICYmXG4gICAgICAgICAgICAhbmV4dFByb3BzLmhhc093blByb3BlcnR5KF9wcm9wS2V5MTkpICYmXG4gICAgICAgICAgICBzZXRQcm9wKGRvbUVsZW1lbnQsIHRhZywgX3Byb3BLZXkxOSwgbnVsbCwgbmV4dFByb3BzLCBfcHJvcEtleTgpO1xuICAgICAgZm9yIChsYXN0UHJvcCBpbiBuZXh0UHJvcHMpXG4gICAgICAgIChfcHJvcEtleTggPSBuZXh0UHJvcHNbbGFzdFByb3BdKSxcbiAgICAgICAgICAocHJvcEtleSA9IGxhc3RQcm9wc1tsYXN0UHJvcF0pLFxuICAgICAgICAgICFuZXh0UHJvcHMuaGFzT3duUHJvcGVydHkobGFzdFByb3ApIHx8XG4gICAgICAgICAgICBfcHJvcEtleTggPT09IHByb3BLZXkgfHxcbiAgICAgICAgICAgIChudWxsID09IF9wcm9wS2V5OCAmJiBudWxsID09IHByb3BLZXkpIHx8XG4gICAgICAgICAgICBzZXRQcm9wKGRvbUVsZW1lbnQsIHRhZywgbGFzdFByb3AsIF9wcm9wS2V5OCwgbmV4dFByb3BzLCBwcm9wS2V5KTtcbiAgICB9XG4gICAgZnVuY3Rpb24gZ2V0UHJvcE5hbWVGcm9tQXR0cmlidXRlTmFtZShhdHRyTmFtZSkge1xuICAgICAgc3dpdGNoIChhdHRyTmFtZSkge1xuICAgICAgICBjYXNlIFwiY2xhc3NcIjpcbiAgICAgICAgICByZXR1cm4gXCJjbGFzc05hbWVcIjtcbiAgICAgICAgY2FzZSBcImZvclwiOlxuICAgICAgICAgIHJldHVybiBcImh0bWxGb3JcIjtcbiAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICByZXR1cm4gYXR0ck5hbWU7XG4gICAgICB9XG4gICAgfVxuICAgIGZ1bmN0aW9uIGdldFN0eWxlc09iamVjdEZyb21FbGVtZW50KGRvbUVsZW1lbnQpIHtcbiAgICAgIHZhciBzZXJ2ZXJWYWx1ZUluT2JqZWN0Rm9ybSA9IHt9O1xuICAgICAgZG9tRWxlbWVudCA9IGRvbUVsZW1lbnQuc3R5bGU7XG4gICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGRvbUVsZW1lbnQubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgdmFyIHN0eWxlTmFtZSA9IGRvbUVsZW1lbnRbaV07XG4gICAgICAgIHNlcnZlclZhbHVlSW5PYmplY3RGb3JtW3N0eWxlTmFtZV0gPVxuICAgICAgICAgIGRvbUVsZW1lbnQuZ2V0UHJvcGVydHlWYWx1ZShzdHlsZU5hbWUpO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHNlcnZlclZhbHVlSW5PYmplY3RGb3JtO1xuICAgIH1cbiAgICBmdW5jdGlvbiBkaWZmSHlkcmF0ZWRTdHlsZXMoZG9tRWxlbWVudCwgdmFsdWUkanNjb21wJDAsIHNlcnZlckRpZmZlcmVuY2VzKSB7XG4gICAgICBpZiAobnVsbCAhPSB2YWx1ZSRqc2NvbXAkMCAmJiBcIm9iamVjdFwiICE9PSB0eXBlb2YgdmFsdWUkanNjb21wJDApXG4gICAgICAgIGNvbnNvbGUuZXJyb3IoXG4gICAgICAgICAgXCJUaGUgYHN0eWxlYCBwcm9wIGV4cGVjdHMgYSBtYXBwaW5nIGZyb20gc3R5bGUgcHJvcGVydGllcyB0byB2YWx1ZXMsIG5vdCBhIHN0cmluZy4gRm9yIGV4YW1wbGUsIHN0eWxlPXt7bWFyZ2luUmlnaHQ6IHNwYWNpbmcgKyAnZW0nfX0gd2hlbiB1c2luZyBKU1guXCJcbiAgICAgICAgKTtcbiAgICAgIGVsc2Uge1xuICAgICAgICB2YXIgY2xpZW50VmFsdWU7XG4gICAgICAgIHZhciBkZWxpbWl0ZXIgPSAoY2xpZW50VmFsdWUgPSBcIlwiKSxcbiAgICAgICAgICBzdHlsZU5hbWU7XG4gICAgICAgIGZvciAoc3R5bGVOYW1lIGluIHZhbHVlJGpzY29tcCQwKVxuICAgICAgICAgIGlmICh2YWx1ZSRqc2NvbXAkMC5oYXNPd25Qcm9wZXJ0eShzdHlsZU5hbWUpKSB7XG4gICAgICAgICAgICB2YXIgdmFsdWUgPSB2YWx1ZSRqc2NvbXAkMFtzdHlsZU5hbWVdO1xuICAgICAgICAgICAgbnVsbCAhPSB2YWx1ZSAmJlxuICAgICAgICAgICAgICBcImJvb2xlYW5cIiAhPT0gdHlwZW9mIHZhbHVlICYmXG4gICAgICAgICAgICAgIFwiXCIgIT09IHZhbHVlICYmXG4gICAgICAgICAgICAgICgwID09PSBzdHlsZU5hbWUuaW5kZXhPZihcIi0tXCIpXG4gICAgICAgICAgICAgICAgPyAoY2hlY2tDU1NQcm9wZXJ0eVN0cmluZ0NvZXJjaW9uKHZhbHVlLCBzdHlsZU5hbWUpLFxuICAgICAgICAgICAgICAgICAgKGNsaWVudFZhbHVlICs9XG4gICAgICAgICAgICAgICAgICAgIGRlbGltaXRlciArIHN0eWxlTmFtZSArIFwiOlwiICsgKFwiXCIgKyB2YWx1ZSkudHJpbSgpKSlcbiAgICAgICAgICAgICAgICA6IFwibnVtYmVyXCIgIT09IHR5cGVvZiB2YWx1ZSB8fFxuICAgICAgICAgICAgICAgICAgICAwID09PSB2YWx1ZSB8fFxuICAgICAgICAgICAgICAgICAgICB1bml0bGVzc051bWJlcnMuaGFzKHN0eWxlTmFtZSlcbiAgICAgICAgICAgICAgICAgID8gKGNoZWNrQ1NTUHJvcGVydHlTdHJpbmdDb2VyY2lvbih2YWx1ZSwgc3R5bGVOYW1lKSxcbiAgICAgICAgICAgICAgICAgICAgKGNsaWVudFZhbHVlICs9XG4gICAgICAgICAgICAgICAgICAgICAgZGVsaW1pdGVyICtcbiAgICAgICAgICAgICAgICAgICAgICBzdHlsZU5hbWVcbiAgICAgICAgICAgICAgICAgICAgICAgIC5yZXBsYWNlKHVwcGVyY2FzZVBhdHRlcm4sIFwiLSQxXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAudG9Mb3dlckNhc2UoKVxuICAgICAgICAgICAgICAgICAgICAgICAgLnJlcGxhY2UobXNQYXR0ZXJuJDEsIFwiLW1zLVwiKSArXG4gICAgICAgICAgICAgICAgICAgICAgXCI6XCIgK1xuICAgICAgICAgICAgICAgICAgICAgIChcIlwiICsgdmFsdWUpLnRyaW0oKSkpXG4gICAgICAgICAgICAgICAgICA6IChjbGllbnRWYWx1ZSArPVxuICAgICAgICAgICAgICAgICAgICAgIGRlbGltaXRlciArXG4gICAgICAgICAgICAgICAgICAgICAgc3R5bGVOYW1lXG4gICAgICAgICAgICAgICAgICAgICAgICAucmVwbGFjZSh1cHBlcmNhc2VQYXR0ZXJuLCBcIi0kMVwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgLnRvTG93ZXJDYXNlKClcbiAgICAgICAgICAgICAgICAgICAgICAgIC5yZXBsYWNlKG1zUGF0dGVybiQxLCBcIi1tcy1cIikgK1xuICAgICAgICAgICAgICAgICAgICAgIFwiOlwiICtcbiAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSArXG4gICAgICAgICAgICAgICAgICAgICAgXCJweFwiKSxcbiAgICAgICAgICAgICAgKGRlbGltaXRlciA9IFwiO1wiKSk7XG4gICAgICAgICAgfVxuICAgICAgICBjbGllbnRWYWx1ZSA9IGNsaWVudFZhbHVlIHx8IG51bGw7XG4gICAgICAgIHZhbHVlJGpzY29tcCQwID0gZG9tRWxlbWVudC5nZXRBdHRyaWJ1dGUoXCJzdHlsZVwiKTtcbiAgICAgICAgdmFsdWUkanNjb21wJDAgIT09IGNsaWVudFZhbHVlICYmXG4gICAgICAgICAgKChjbGllbnRWYWx1ZSA9IG5vcm1hbGl6ZU1hcmt1cEZvclRleHRPckF0dHJpYnV0ZShjbGllbnRWYWx1ZSkpLFxuICAgICAgICAgIG5vcm1hbGl6ZU1hcmt1cEZvclRleHRPckF0dHJpYnV0ZSh2YWx1ZSRqc2NvbXAkMCkgIT09IGNsaWVudFZhbHVlICYmXG4gICAgICAgICAgICAoc2VydmVyRGlmZmVyZW5jZXMuc3R5bGUgPSBnZXRTdHlsZXNPYmplY3RGcm9tRWxlbWVudChkb21FbGVtZW50KSkpO1xuICAgICAgfVxuICAgIH1cbiAgICBmdW5jdGlvbiBoeWRyYXRlQXR0cmlidXRlKFxuICAgICAgZG9tRWxlbWVudCxcbiAgICAgIHByb3BLZXksXG4gICAgICBhdHRyaWJ1dGVOYW1lLFxuICAgICAgdmFsdWUsXG4gICAgICBleHRyYUF0dHJpYnV0ZXMsXG4gICAgICBzZXJ2ZXJEaWZmZXJlbmNlc1xuICAgICkge1xuICAgICAgZXh0cmFBdHRyaWJ1dGVzLmRlbGV0ZShhdHRyaWJ1dGVOYW1lKTtcbiAgICAgIGRvbUVsZW1lbnQgPSBkb21FbGVtZW50LmdldEF0dHJpYnV0ZShhdHRyaWJ1dGVOYW1lKTtcbiAgICAgIGlmIChudWxsID09PSBkb21FbGVtZW50KVxuICAgICAgICBzd2l0Y2ggKHR5cGVvZiB2YWx1ZSkge1xuICAgICAgICAgIGNhc2UgXCJ1bmRlZmluZWRcIjpcbiAgICAgICAgICBjYXNlIFwiZnVuY3Rpb25cIjpcbiAgICAgICAgICBjYXNlIFwic3ltYm9sXCI6XG4gICAgICAgICAgY2FzZSBcImJvb2xlYW5cIjpcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgZWxzZSBpZiAobnVsbCAhPSB2YWx1ZSlcbiAgICAgICAgc3dpdGNoICh0eXBlb2YgdmFsdWUpIHtcbiAgICAgICAgICBjYXNlIFwiZnVuY3Rpb25cIjpcbiAgICAgICAgICBjYXNlIFwic3ltYm9sXCI6XG4gICAgICAgICAgY2FzZSBcImJvb2xlYW5cIjpcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICBpZiAoXG4gICAgICAgICAgICAgIChjaGVja0F0dHJpYnV0ZVN0cmluZ0NvZXJjaW9uKHZhbHVlLCBwcm9wS2V5KSxcbiAgICAgICAgICAgICAgZG9tRWxlbWVudCA9PT0gXCJcIiArIHZhbHVlKVxuICAgICAgICAgICAgKVxuICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgIHdhcm5Gb3JQcm9wRGlmZmVyZW5jZShwcm9wS2V5LCBkb21FbGVtZW50LCB2YWx1ZSwgc2VydmVyRGlmZmVyZW5jZXMpO1xuICAgIH1cbiAgICBmdW5jdGlvbiBoeWRyYXRlQm9vbGVhbkF0dHJpYnV0ZShcbiAgICAgIGRvbUVsZW1lbnQsXG4gICAgICBwcm9wS2V5LFxuICAgICAgYXR0cmlidXRlTmFtZSxcbiAgICAgIHZhbHVlLFxuICAgICAgZXh0cmFBdHRyaWJ1dGVzLFxuICAgICAgc2VydmVyRGlmZmVyZW5jZXNcbiAgICApIHtcbiAgICAgIGV4dHJhQXR0cmlidXRlcy5kZWxldGUoYXR0cmlidXRlTmFtZSk7XG4gICAgICBkb21FbGVtZW50ID0gZG9tRWxlbWVudC5nZXRBdHRyaWJ1dGUoYXR0cmlidXRlTmFtZSk7XG4gICAgICBpZiAobnVsbCA9PT0gZG9tRWxlbWVudCkge1xuICAgICAgICBzd2l0Y2ggKHR5cGVvZiB2YWx1ZSkge1xuICAgICAgICAgIGNhc2UgXCJmdW5jdGlvblwiOlxuICAgICAgICAgIGNhc2UgXCJzeW1ib2xcIjpcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBpZiAoIXZhbHVlKSByZXR1cm47XG4gICAgICB9IGVsc2VcbiAgICAgICAgc3dpdGNoICh0eXBlb2YgdmFsdWUpIHtcbiAgICAgICAgICBjYXNlIFwiZnVuY3Rpb25cIjpcbiAgICAgICAgICBjYXNlIFwic3ltYm9sXCI6XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgaWYgKHZhbHVlKSByZXR1cm47XG4gICAgICAgIH1cbiAgICAgIHdhcm5Gb3JQcm9wRGlmZmVyZW5jZShwcm9wS2V5LCBkb21FbGVtZW50LCB2YWx1ZSwgc2VydmVyRGlmZmVyZW5jZXMpO1xuICAgIH1cbiAgICBmdW5jdGlvbiBoeWRyYXRlQm9vbGVhbmlzaEF0dHJpYnV0ZShcbiAgICAgIGRvbUVsZW1lbnQsXG4gICAgICBwcm9wS2V5LFxuICAgICAgYXR0cmlidXRlTmFtZSxcbiAgICAgIHZhbHVlLFxuICAgICAgZXh0cmFBdHRyaWJ1dGVzLFxuICAgICAgc2VydmVyRGlmZmVyZW5jZXNcbiAgICApIHtcbiAgICAgIGV4dHJhQXR0cmlidXRlcy5kZWxldGUoYXR0cmlidXRlTmFtZSk7XG4gICAgICBkb21FbGVtZW50ID0gZG9tRWxlbWVudC5nZXRBdHRyaWJ1dGUoYXR0cmlidXRlTmFtZSk7XG4gICAgICBpZiAobnVsbCA9PT0gZG9tRWxlbWVudClcbiAgICAgICAgc3dpdGNoICh0eXBlb2YgdmFsdWUpIHtcbiAgICAgICAgICBjYXNlIFwidW5kZWZpbmVkXCI6XG4gICAgICAgICAgY2FzZSBcImZ1bmN0aW9uXCI6XG4gICAgICAgICAgY2FzZSBcInN5bWJvbFwiOlxuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICBlbHNlIGlmIChudWxsICE9IHZhbHVlKVxuICAgICAgICBzd2l0Y2ggKHR5cGVvZiB2YWx1ZSkge1xuICAgICAgICAgIGNhc2UgXCJmdW5jdGlvblwiOlxuICAgICAgICAgIGNhc2UgXCJzeW1ib2xcIjpcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICBpZiAoXG4gICAgICAgICAgICAgIChjaGVja0F0dHJpYnV0ZVN0cmluZ0NvZXJjaW9uKHZhbHVlLCBhdHRyaWJ1dGVOYW1lKSxcbiAgICAgICAgICAgICAgZG9tRWxlbWVudCA9PT0gXCJcIiArIHZhbHVlKVxuICAgICAgICAgICAgKVxuICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgIHdhcm5Gb3JQcm9wRGlmZmVyZW5jZShwcm9wS2V5LCBkb21FbGVtZW50LCB2YWx1ZSwgc2VydmVyRGlmZmVyZW5jZXMpO1xuICAgIH1cbiAgICBmdW5jdGlvbiBoeWRyYXRlTnVtZXJpY0F0dHJpYnV0ZShcbiAgICAgIGRvbUVsZW1lbnQsXG4gICAgICBwcm9wS2V5LFxuICAgICAgYXR0cmlidXRlTmFtZSxcbiAgICAgIHZhbHVlLFxuICAgICAgZXh0cmFBdHRyaWJ1dGVzLFxuICAgICAgc2VydmVyRGlmZmVyZW5jZXNcbiAgICApIHtcbiAgICAgIGV4dHJhQXR0cmlidXRlcy5kZWxldGUoYXR0cmlidXRlTmFtZSk7XG4gICAgICBkb21FbGVtZW50ID0gZG9tRWxlbWVudC5nZXRBdHRyaWJ1dGUoYXR0cmlidXRlTmFtZSk7XG4gICAgICBpZiAobnVsbCA9PT0gZG9tRWxlbWVudClcbiAgICAgICAgc3dpdGNoICh0eXBlb2YgdmFsdWUpIHtcbiAgICAgICAgICBjYXNlIFwidW5kZWZpbmVkXCI6XG4gICAgICAgICAgY2FzZSBcImZ1bmN0aW9uXCI6XG4gICAgICAgICAgY2FzZSBcInN5bWJvbFwiOlxuICAgICAgICAgIGNhc2UgXCJib29sZWFuXCI6XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgIGlmIChpc05hTih2YWx1ZSkpIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgZWxzZSBpZiAobnVsbCAhPSB2YWx1ZSlcbiAgICAgICAgc3dpdGNoICh0eXBlb2YgdmFsdWUpIHtcbiAgICAgICAgICBjYXNlIFwiZnVuY3Rpb25cIjpcbiAgICAgICAgICBjYXNlIFwic3ltYm9sXCI6XG4gICAgICAgICAgY2FzZSBcImJvb2xlYW5cIjpcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICBpZiAoXG4gICAgICAgICAgICAgICFpc05hTih2YWx1ZSkgJiZcbiAgICAgICAgICAgICAgKGNoZWNrQXR0cmlidXRlU3RyaW5nQ29lcmNpb24odmFsdWUsIHByb3BLZXkpLFxuICAgICAgICAgICAgICBkb21FbGVtZW50ID09PSBcIlwiICsgdmFsdWUpXG4gICAgICAgICAgICApXG4gICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgd2FybkZvclByb3BEaWZmZXJlbmNlKHByb3BLZXksIGRvbUVsZW1lbnQsIHZhbHVlLCBzZXJ2ZXJEaWZmZXJlbmNlcyk7XG4gICAgfVxuICAgIGZ1bmN0aW9uIGh5ZHJhdGVTYW5pdGl6ZWRBdHRyaWJ1dGUoXG4gICAgICBkb21FbGVtZW50LFxuICAgICAgcHJvcEtleSxcbiAgICAgIGF0dHJpYnV0ZU5hbWUsXG4gICAgICB2YWx1ZSxcbiAgICAgIGV4dHJhQXR0cmlidXRlcyxcbiAgICAgIHNlcnZlckRpZmZlcmVuY2VzXG4gICAgKSB7XG4gICAgICBleHRyYUF0dHJpYnV0ZXMuZGVsZXRlKGF0dHJpYnV0ZU5hbWUpO1xuICAgICAgZG9tRWxlbWVudCA9IGRvbUVsZW1lbnQuZ2V0QXR0cmlidXRlKGF0dHJpYnV0ZU5hbWUpO1xuICAgICAgaWYgKG51bGwgPT09IGRvbUVsZW1lbnQpXG4gICAgICAgIHN3aXRjaCAodHlwZW9mIHZhbHVlKSB7XG4gICAgICAgICAgY2FzZSBcInVuZGVmaW5lZFwiOlxuICAgICAgICAgIGNhc2UgXCJmdW5jdGlvblwiOlxuICAgICAgICAgIGNhc2UgXCJzeW1ib2xcIjpcbiAgICAgICAgICBjYXNlIFwiYm9vbGVhblwiOlxuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICBlbHNlIGlmIChudWxsICE9IHZhbHVlKVxuICAgICAgICBzd2l0Y2ggKHR5cGVvZiB2YWx1ZSkge1xuICAgICAgICAgIGNhc2UgXCJmdW5jdGlvblwiOlxuICAgICAgICAgIGNhc2UgXCJzeW1ib2xcIjpcbiAgICAgICAgICBjYXNlIFwiYm9vbGVhblwiOlxuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgIGlmIChcbiAgICAgICAgICAgICAgKGNoZWNrQXR0cmlidXRlU3RyaW5nQ29lcmNpb24odmFsdWUsIHByb3BLZXkpLFxuICAgICAgICAgICAgICAoYXR0cmlidXRlTmFtZSA9IHNhbml0aXplVVJMKFwiXCIgKyB2YWx1ZSkpLFxuICAgICAgICAgICAgICBkb21FbGVtZW50ID09PSBhdHRyaWJ1dGVOYW1lKVxuICAgICAgICAgICAgKVxuICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgIHdhcm5Gb3JQcm9wRGlmZmVyZW5jZShwcm9wS2V5LCBkb21FbGVtZW50LCB2YWx1ZSwgc2VydmVyRGlmZmVyZW5jZXMpO1xuICAgIH1cbiAgICBmdW5jdGlvbiBkaWZmSHlkcmF0ZWRQcm9wZXJ0aWVzKGRvbUVsZW1lbnQsIHRhZywgcHJvcHMsIGhvc3RDb250ZXh0KSB7XG4gICAgICBmb3IgKFxuICAgICAgICB2YXIgc2VydmVyRGlmZmVyZW5jZXMgPSB7fSxcbiAgICAgICAgICBleHRyYUF0dHJpYnV0ZXMgPSBuZXcgU2V0KCksXG4gICAgICAgICAgYXR0cmlidXRlcyA9IGRvbUVsZW1lbnQuYXR0cmlidXRlcyxcbiAgICAgICAgICBpID0gMDtcbiAgICAgICAgaSA8IGF0dHJpYnV0ZXMubGVuZ3RoO1xuICAgICAgICBpKytcbiAgICAgIClcbiAgICAgICAgc3dpdGNoIChhdHRyaWJ1dGVzW2ldLm5hbWUudG9Mb3dlckNhc2UoKSkge1xuICAgICAgICAgIGNhc2UgXCJ2YWx1ZVwiOlxuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgY2FzZSBcImNoZWNrZWRcIjpcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIGNhc2UgXCJzZWxlY3RlZFwiOlxuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgIGV4dHJhQXR0cmlidXRlcy5hZGQoYXR0cmlidXRlc1tpXS5uYW1lKTtcbiAgICAgICAgfVxuICAgICAgaWYgKGlzQ3VzdG9tRWxlbWVudCh0YWcpKVxuICAgICAgICBmb3IgKHZhciBwcm9wS2V5IGluIHByb3BzKSB7XG4gICAgICAgICAgaWYgKHByb3BzLmhhc093blByb3BlcnR5KHByb3BLZXkpKSB7XG4gICAgICAgICAgICB2YXIgdmFsdWUgPSBwcm9wc1twcm9wS2V5XTtcbiAgICAgICAgICAgIGlmIChudWxsICE9IHZhbHVlKVxuICAgICAgICAgICAgICBpZiAocmVnaXN0cmF0aW9uTmFtZURlcGVuZGVuY2llcy5oYXNPd25Qcm9wZXJ0eShwcm9wS2V5KSlcbiAgICAgICAgICAgICAgICBcImZ1bmN0aW9uXCIgIT09IHR5cGVvZiB2YWx1ZSAmJlxuICAgICAgICAgICAgICAgICAgd2FybkZvckludmFsaWRFdmVudExpc3RlbmVyKHByb3BLZXksIHZhbHVlKTtcbiAgICAgICAgICAgICAgZWxzZSBpZiAoITAgIT09IHByb3BzLnN1cHByZXNzSHlkcmF0aW9uV2FybmluZylcbiAgICAgICAgICAgICAgICBzd2l0Y2ggKHByb3BLZXkpIHtcbiAgICAgICAgICAgICAgICAgIGNhc2UgXCJjaGlsZHJlblwiOlxuICAgICAgICAgICAgICAgICAgICAoXCJzdHJpbmdcIiAhPT0gdHlwZW9mIHZhbHVlICYmIFwibnVtYmVyXCIgIT09IHR5cGVvZiB2YWx1ZSkgfHxcbiAgICAgICAgICAgICAgICAgICAgICB3YXJuRm9yUHJvcERpZmZlcmVuY2UoXG4gICAgICAgICAgICAgICAgICAgICAgICBcImNoaWxkcmVuXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICBkb21FbGVtZW50LnRleHRDb250ZW50LFxuICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUsXG4gICAgICAgICAgICAgICAgICAgICAgICBzZXJ2ZXJEaWZmZXJlbmNlc1xuICAgICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgICAgICAgICAgY2FzZSBcInN1cHByZXNzQ29udGVudEVkaXRhYmxlV2FybmluZ1wiOlxuICAgICAgICAgICAgICAgICAgY2FzZSBcInN1cHByZXNzSHlkcmF0aW9uV2FybmluZ1wiOlxuICAgICAgICAgICAgICAgICAgY2FzZSBcImRlZmF1bHRWYWx1ZVwiOlxuICAgICAgICAgICAgICAgICAgY2FzZSBcImRlZmF1bHRDaGVja2VkXCI6XG4gICAgICAgICAgICAgICAgICBjYXNlIFwiaW5uZXJIVE1MXCI6XG4gICAgICAgICAgICAgICAgICBjYXNlIFwicmVmXCI6XG4gICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgICAgICAgICAgY2FzZSBcImRhbmdlcm91c2x5U2V0SW5uZXJIVE1MXCI6XG4gICAgICAgICAgICAgICAgICAgIGF0dHJpYnV0ZXMgPSBkb21FbGVtZW50LmlubmVySFRNTDtcbiAgICAgICAgICAgICAgICAgICAgdmFsdWUgPSB2YWx1ZSA/IHZhbHVlLl9faHRtbCA6IHZvaWQgMDtcbiAgICAgICAgICAgICAgICAgICAgbnVsbCAhPSB2YWx1ZSAmJlxuICAgICAgICAgICAgICAgICAgICAgICgodmFsdWUgPSBub3JtYWxpemVIVE1MKGRvbUVsZW1lbnQsIHZhbHVlKSksXG4gICAgICAgICAgICAgICAgICAgICAgd2FybkZvclByb3BEaWZmZXJlbmNlKFxuICAgICAgICAgICAgICAgICAgICAgICAgcHJvcEtleSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGF0dHJpYnV0ZXMsXG4gICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHNlcnZlckRpZmZlcmVuY2VzXG4gICAgICAgICAgICAgICAgICAgICAgKSk7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgICAgICAgICAgY2FzZSBcInN0eWxlXCI6XG4gICAgICAgICAgICAgICAgICAgIGV4dHJhQXR0cmlidXRlcy5kZWxldGUocHJvcEtleSk7XG4gICAgICAgICAgICAgICAgICAgIGRpZmZIeWRyYXRlZFN0eWxlcyhkb21FbGVtZW50LCB2YWx1ZSwgc2VydmVyRGlmZmVyZW5jZXMpO1xuICAgICAgICAgICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICAgICAgICAgIGNhc2UgXCJvZmZzZXRQYXJlbnRcIjpcbiAgICAgICAgICAgICAgICAgIGNhc2UgXCJvZmZzZXRUb3BcIjpcbiAgICAgICAgICAgICAgICAgIGNhc2UgXCJvZmZzZXRMZWZ0XCI6XG4gICAgICAgICAgICAgICAgICBjYXNlIFwib2Zmc2V0V2lkdGhcIjpcbiAgICAgICAgICAgICAgICAgIGNhc2UgXCJvZmZzZXRIZWlnaHRcIjpcbiAgICAgICAgICAgICAgICAgIGNhc2UgXCJpc0NvbnRlbnRFZGl0YWJsZVwiOlxuICAgICAgICAgICAgICAgICAgY2FzZSBcIm91dGVyVGV4dFwiOlxuICAgICAgICAgICAgICAgICAgY2FzZSBcIm91dGVySFRNTFwiOlxuICAgICAgICAgICAgICAgICAgICBleHRyYUF0dHJpYnV0ZXMuZGVsZXRlKHByb3BLZXkudG9Mb3dlckNhc2UoKSk7XG4gICAgICAgICAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoXG4gICAgICAgICAgICAgICAgICAgICAgXCJBc3NpZ25tZW50IHRvIHJlYWQtb25seSBwcm9wZXJ0eSB3aWxsIHJlc3VsdCBpbiBhIG5vLW9wOiBgJXNgXCIsXG4gICAgICAgICAgICAgICAgICAgICAgcHJvcEtleVxuICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICAgICAgICAgIGNhc2UgXCJjbGFzc05hbWVcIjpcbiAgICAgICAgICAgICAgICAgICAgZXh0cmFBdHRyaWJ1dGVzLmRlbGV0ZShcImNsYXNzXCIpO1xuICAgICAgICAgICAgICAgICAgICBhdHRyaWJ1dGVzID0gZ2V0VmFsdWVGb3JBdHRyaWJ1dGVPbkN1c3RvbUNvbXBvbmVudChcbiAgICAgICAgICAgICAgICAgICAgICBkb21FbGVtZW50LFxuICAgICAgICAgICAgICAgICAgICAgIFwiY2xhc3NcIixcbiAgICAgICAgICAgICAgICAgICAgICB2YWx1ZVxuICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgICAgICB3YXJuRm9yUHJvcERpZmZlcmVuY2UoXG4gICAgICAgICAgICAgICAgICAgICAgXCJjbGFzc05hbWVcIixcbiAgICAgICAgICAgICAgICAgICAgICBhdHRyaWJ1dGVzLFxuICAgICAgICAgICAgICAgICAgICAgIHZhbHVlLFxuICAgICAgICAgICAgICAgICAgICAgIHNlcnZlckRpZmZlcmVuY2VzXG4gICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICAgICAgaG9zdENvbnRleHQuY29udGV4dCA9PT0gSG9zdENvbnRleHROYW1lc3BhY2VOb25lICYmXG4gICAgICAgICAgICAgICAgICAgIFwic3ZnXCIgIT09IHRhZyAmJlxuICAgICAgICAgICAgICAgICAgICBcIm1hdGhcIiAhPT0gdGFnXG4gICAgICAgICAgICAgICAgICAgICAgPyBleHRyYUF0dHJpYnV0ZXMuZGVsZXRlKHByb3BLZXkudG9Mb3dlckNhc2UoKSlcbiAgICAgICAgICAgICAgICAgICAgICA6IGV4dHJhQXR0cmlidXRlcy5kZWxldGUocHJvcEtleSksXG4gICAgICAgICAgICAgICAgICAgICAgKGF0dHJpYnV0ZXMgPSBnZXRWYWx1ZUZvckF0dHJpYnV0ZU9uQ3VzdG9tQ29tcG9uZW50KFxuICAgICAgICAgICAgICAgICAgICAgICAgZG9tRWxlbWVudCxcbiAgICAgICAgICAgICAgICAgICAgICAgIHByb3BLZXksXG4gICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZVxuICAgICAgICAgICAgICAgICAgICAgICkpLFxuICAgICAgICAgICAgICAgICAgICAgIHdhcm5Gb3JQcm9wRGlmZmVyZW5jZShcbiAgICAgICAgICAgICAgICAgICAgICAgIHByb3BLZXksXG4gICAgICAgICAgICAgICAgICAgICAgICBhdHRyaWJ1dGVzLFxuICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUsXG4gICAgICAgICAgICAgICAgICAgICAgICBzZXJ2ZXJEaWZmZXJlbmNlc1xuICAgICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgZWxzZVxuICAgICAgICBmb3IgKHZhbHVlIGluIHByb3BzKVxuICAgICAgICAgIGlmIChcbiAgICAgICAgICAgIHByb3BzLmhhc093blByb3BlcnR5KHZhbHVlKSAmJlxuICAgICAgICAgICAgKChwcm9wS2V5ID0gcHJvcHNbdmFsdWVdKSwgbnVsbCAhPSBwcm9wS2V5KVxuICAgICAgICAgIClcbiAgICAgICAgICAgIGlmIChyZWdpc3RyYXRpb25OYW1lRGVwZW5kZW5jaWVzLmhhc093blByb3BlcnR5KHZhbHVlKSlcbiAgICAgICAgICAgICAgXCJmdW5jdGlvblwiICE9PSB0eXBlb2YgcHJvcEtleSAmJlxuICAgICAgICAgICAgICAgIHdhcm5Gb3JJbnZhbGlkRXZlbnRMaXN0ZW5lcih2YWx1ZSwgcHJvcEtleSk7XG4gICAgICAgICAgICBlbHNlIGlmICghMCAhPT0gcHJvcHMuc3VwcHJlc3NIeWRyYXRpb25XYXJuaW5nKVxuICAgICAgICAgICAgICBzd2l0Y2ggKHZhbHVlKSB7XG4gICAgICAgICAgICAgICAgY2FzZSBcImNoaWxkcmVuXCI6XG4gICAgICAgICAgICAgICAgICAoXCJzdHJpbmdcIiAhPT0gdHlwZW9mIHByb3BLZXkgJiZcbiAgICAgICAgICAgICAgICAgICAgXCJudW1iZXJcIiAhPT0gdHlwZW9mIHByb3BLZXkpIHx8XG4gICAgICAgICAgICAgICAgICAgIHdhcm5Gb3JQcm9wRGlmZmVyZW5jZShcbiAgICAgICAgICAgICAgICAgICAgICBcImNoaWxkcmVuXCIsXG4gICAgICAgICAgICAgICAgICAgICAgZG9tRWxlbWVudC50ZXh0Q29udGVudCxcbiAgICAgICAgICAgICAgICAgICAgICBwcm9wS2V5LFxuICAgICAgICAgICAgICAgICAgICAgIHNlcnZlckRpZmZlcmVuY2VzXG4gICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICAgICAgICBjYXNlIFwic3VwcHJlc3NDb250ZW50RWRpdGFibGVXYXJuaW5nXCI6XG4gICAgICAgICAgICAgICAgY2FzZSBcInN1cHByZXNzSHlkcmF0aW9uV2FybmluZ1wiOlxuICAgICAgICAgICAgICAgIGNhc2UgXCJ2YWx1ZVwiOlxuICAgICAgICAgICAgICAgIGNhc2UgXCJjaGVja2VkXCI6XG4gICAgICAgICAgICAgICAgY2FzZSBcInNlbGVjdGVkXCI6XG4gICAgICAgICAgICAgICAgY2FzZSBcImRlZmF1bHRWYWx1ZVwiOlxuICAgICAgICAgICAgICAgIGNhc2UgXCJkZWZhdWx0Q2hlY2tlZFwiOlxuICAgICAgICAgICAgICAgIGNhc2UgXCJpbm5lckhUTUxcIjpcbiAgICAgICAgICAgICAgICBjYXNlIFwicmVmXCI6XG4gICAgICAgICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICAgICAgICBjYXNlIFwiZGFuZ2Vyb3VzbHlTZXRJbm5lckhUTUxcIjpcbiAgICAgICAgICAgICAgICAgIGF0dHJpYnV0ZXMgPSBkb21FbGVtZW50LmlubmVySFRNTDtcbiAgICAgICAgICAgICAgICAgIHByb3BLZXkgPSBwcm9wS2V5ID8gcHJvcEtleS5fX2h0bWwgOiB2b2lkIDA7XG4gICAgICAgICAgICAgICAgICBudWxsICE9IHByb3BLZXkgJiZcbiAgICAgICAgICAgICAgICAgICAgKChwcm9wS2V5ID0gbm9ybWFsaXplSFRNTChkb21FbGVtZW50LCBwcm9wS2V5KSksXG4gICAgICAgICAgICAgICAgICAgIGF0dHJpYnV0ZXMgIT09IHByb3BLZXkgJiZcbiAgICAgICAgICAgICAgICAgICAgICAoc2VydmVyRGlmZmVyZW5jZXNbdmFsdWVdID0geyBfX2h0bWw6IGF0dHJpYnV0ZXMgfSkpO1xuICAgICAgICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgICAgICAgICAgY2FzZSBcImNsYXNzTmFtZVwiOlxuICAgICAgICAgICAgICAgICAgaHlkcmF0ZUF0dHJpYnV0ZShcbiAgICAgICAgICAgICAgICAgICAgZG9tRWxlbWVudCxcbiAgICAgICAgICAgICAgICAgICAgdmFsdWUsXG4gICAgICAgICAgICAgICAgICAgIFwiY2xhc3NcIixcbiAgICAgICAgICAgICAgICAgICAgcHJvcEtleSxcbiAgICAgICAgICAgICAgICAgICAgZXh0cmFBdHRyaWJ1dGVzLFxuICAgICAgICAgICAgICAgICAgICBzZXJ2ZXJEaWZmZXJlbmNlc1xuICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgICAgICAgIGNhc2UgXCJ0YWJJbmRleFwiOlxuICAgICAgICAgICAgICAgICAgaHlkcmF0ZUF0dHJpYnV0ZShcbiAgICAgICAgICAgICAgICAgICAgZG9tRWxlbWVudCxcbiAgICAgICAgICAgICAgICAgICAgdmFsdWUsXG4gICAgICAgICAgICAgICAgICAgIFwidGFiaW5kZXhcIixcbiAgICAgICAgICAgICAgICAgICAgcHJvcEtleSxcbiAgICAgICAgICAgICAgICAgICAgZXh0cmFBdHRyaWJ1dGVzLFxuICAgICAgICAgICAgICAgICAgICBzZXJ2ZXJEaWZmZXJlbmNlc1xuICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgICAgICAgIGNhc2UgXCJzdHlsZVwiOlxuICAgICAgICAgICAgICAgICAgZXh0cmFBdHRyaWJ1dGVzLmRlbGV0ZSh2YWx1ZSk7XG4gICAgICAgICAgICAgICAgICBkaWZmSHlkcmF0ZWRTdHlsZXMoZG9tRWxlbWVudCwgcHJvcEtleSwgc2VydmVyRGlmZmVyZW5jZXMpO1xuICAgICAgICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgICAgICAgICAgY2FzZSBcIm11bHRpcGxlXCI6XG4gICAgICAgICAgICAgICAgICBleHRyYUF0dHJpYnV0ZXMuZGVsZXRlKHZhbHVlKTtcbiAgICAgICAgICAgICAgICAgIHdhcm5Gb3JQcm9wRGlmZmVyZW5jZShcbiAgICAgICAgICAgICAgICAgICAgdmFsdWUsXG4gICAgICAgICAgICAgICAgICAgIGRvbUVsZW1lbnQubXVsdGlwbGUsXG4gICAgICAgICAgICAgICAgICAgIHByb3BLZXksXG4gICAgICAgICAgICAgICAgICAgIHNlcnZlckRpZmZlcmVuY2VzXG4gICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgICAgICAgICAgY2FzZSBcIm11dGVkXCI6XG4gICAgICAgICAgICAgICAgICBleHRyYUF0dHJpYnV0ZXMuZGVsZXRlKHZhbHVlKTtcbiAgICAgICAgICAgICAgICAgIHdhcm5Gb3JQcm9wRGlmZmVyZW5jZShcbiAgICAgICAgICAgICAgICAgICAgdmFsdWUsXG4gICAgICAgICAgICAgICAgICAgIGRvbUVsZW1lbnQubXV0ZWQsXG4gICAgICAgICAgICAgICAgICAgIHByb3BLZXksXG4gICAgICAgICAgICAgICAgICAgIHNlcnZlckRpZmZlcmVuY2VzXG4gICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgICAgICAgICAgY2FzZSBcImF1dG9Gb2N1c1wiOlxuICAgICAgICAgICAgICAgICAgZXh0cmFBdHRyaWJ1dGVzLmRlbGV0ZShcImF1dG9mb2N1c1wiKTtcbiAgICAgICAgICAgICAgICAgIHdhcm5Gb3JQcm9wRGlmZmVyZW5jZShcbiAgICAgICAgICAgICAgICAgICAgdmFsdWUsXG4gICAgICAgICAgICAgICAgICAgIGRvbUVsZW1lbnQuYXV0b2ZvY3VzLFxuICAgICAgICAgICAgICAgICAgICBwcm9wS2V5LFxuICAgICAgICAgICAgICAgICAgICBzZXJ2ZXJEaWZmZXJlbmNlc1xuICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgICAgICAgIGNhc2UgXCJkYXRhXCI6XG4gICAgICAgICAgICAgICAgICBpZiAoXCJvYmplY3RcIiAhPT0gdGFnKSB7XG4gICAgICAgICAgICAgICAgICAgIGV4dHJhQXR0cmlidXRlcy5kZWxldGUodmFsdWUpO1xuICAgICAgICAgICAgICAgICAgICBhdHRyaWJ1dGVzID0gZG9tRWxlbWVudC5nZXRBdHRyaWJ1dGUoXCJkYXRhXCIpO1xuICAgICAgICAgICAgICAgICAgICB3YXJuRm9yUHJvcERpZmZlcmVuY2UoXG4gICAgICAgICAgICAgICAgICAgICAgdmFsdWUsXG4gICAgICAgICAgICAgICAgICAgICAgYXR0cmlidXRlcyxcbiAgICAgICAgICAgICAgICAgICAgICBwcm9wS2V5LFxuICAgICAgICAgICAgICAgICAgICAgIHNlcnZlckRpZmZlcmVuY2VzXG4gICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGNhc2UgXCJzcmNcIjpcbiAgICAgICAgICAgICAgICBjYXNlIFwiaHJlZlwiOlxuICAgICAgICAgICAgICAgICAgaWYgKFxuICAgICAgICAgICAgICAgICAgICAhKFxuICAgICAgICAgICAgICAgICAgICAgIFwiXCIgIT09IHByb3BLZXkgfHxcbiAgICAgICAgICAgICAgICAgICAgICAoXCJhXCIgPT09IHRhZyAmJiBcImhyZWZcIiA9PT0gdmFsdWUpIHx8XG4gICAgICAgICAgICAgICAgICAgICAgKFwib2JqZWN0XCIgPT09IHRhZyAmJiBcImRhdGFcIiA9PT0gdmFsdWUpXG4gICAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICAgICAgICBcInNyY1wiID09PSB2YWx1ZVxuICAgICAgICAgICAgICAgICAgICAgID8gY29uc29sZS5lcnJvcihcbiAgICAgICAgICAgICAgICAgICAgICAgICAgJ0FuIGVtcHR5IHN0cmluZyAoXCJcIikgd2FzIHBhc3NlZCB0byB0aGUgJXMgYXR0cmlidXRlLiBUaGlzIG1heSBjYXVzZSB0aGUgYnJvd3NlciB0byBkb3dubG9hZCB0aGUgd2hvbGUgcGFnZSBhZ2FpbiBvdmVyIHRoZSBuZXR3b3JrLiBUbyBmaXggdGhpcywgZWl0aGVyIGRvIG5vdCByZW5kZXIgdGhlIGVsZW1lbnQgYXQgYWxsIG9yIHBhc3MgbnVsbCB0byAlcyBpbnN0ZWFkIG9mIGFuIGVtcHR5IHN0cmluZy4nLFxuICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWVcbiAgICAgICAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICAgICAgICA6IGNvbnNvbGUuZXJyb3IoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICdBbiBlbXB0eSBzdHJpbmcgKFwiXCIpIHdhcyBwYXNzZWQgdG8gdGhlICVzIGF0dHJpYnV0ZS4gVG8gZml4IHRoaXMsIGVpdGhlciBkbyBub3QgcmVuZGVyIHRoZSBlbGVtZW50IGF0IGFsbCBvciBwYXNzIG51bGwgdG8gJXMgaW5zdGVhZCBvZiBhbiBlbXB0eSBzdHJpbmcuJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlXG4gICAgICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgIGh5ZHJhdGVTYW5pdGl6ZWRBdHRyaWJ1dGUoXG4gICAgICAgICAgICAgICAgICAgIGRvbUVsZW1lbnQsXG4gICAgICAgICAgICAgICAgICAgIHZhbHVlLFxuICAgICAgICAgICAgICAgICAgICB2YWx1ZSxcbiAgICAgICAgICAgICAgICAgICAgcHJvcEtleSxcbiAgICAgICAgICAgICAgICAgICAgZXh0cmFBdHRyaWJ1dGVzLFxuICAgICAgICAgICAgICAgICAgICBzZXJ2ZXJEaWZmZXJlbmNlc1xuICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgICAgICAgIGNhc2UgXCJhY3Rpb25cIjpcbiAgICAgICAgICAgICAgICBjYXNlIFwiZm9ybUFjdGlvblwiOlxuICAgICAgICAgICAgICAgICAgYXR0cmlidXRlcyA9IGRvbUVsZW1lbnQuZ2V0QXR0cmlidXRlKHZhbHVlKTtcbiAgICAgICAgICAgICAgICAgIGlmIChcImZ1bmN0aW9uXCIgPT09IHR5cGVvZiBwcm9wS2V5KSB7XG4gICAgICAgICAgICAgICAgICAgIGV4dHJhQXR0cmlidXRlcy5kZWxldGUodmFsdWUudG9Mb3dlckNhc2UoKSk7XG4gICAgICAgICAgICAgICAgICAgIFwiZm9ybUFjdGlvblwiID09PSB2YWx1ZVxuICAgICAgICAgICAgICAgICAgICAgID8gKGV4dHJhQXR0cmlidXRlcy5kZWxldGUoXCJuYW1lXCIpLFxuICAgICAgICAgICAgICAgICAgICAgICAgZXh0cmFBdHRyaWJ1dGVzLmRlbGV0ZShcImZvcm1lbmN0eXBlXCIpLFxuICAgICAgICAgICAgICAgICAgICAgICAgZXh0cmFBdHRyaWJ1dGVzLmRlbGV0ZShcImZvcm1tZXRob2RcIiksXG4gICAgICAgICAgICAgICAgICAgICAgICBleHRyYUF0dHJpYnV0ZXMuZGVsZXRlKFwiZm9ybXRhcmdldFwiKSlcbiAgICAgICAgICAgICAgICAgICAgICA6IChleHRyYUF0dHJpYnV0ZXMuZGVsZXRlKFwiZW5jdHlwZVwiKSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGV4dHJhQXR0cmlidXRlcy5kZWxldGUoXCJtZXRob2RcIiksXG4gICAgICAgICAgICAgICAgICAgICAgICBleHRyYUF0dHJpYnV0ZXMuZGVsZXRlKFwidGFyZ2V0XCIpKTtcbiAgICAgICAgICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGF0dHJpYnV0ZXMgPT09IEVYUEVDVEVEX0ZPUk1fQUNUSU9OX1VSTCkge1xuICAgICAgICAgICAgICAgICAgICBleHRyYUF0dHJpYnV0ZXMuZGVsZXRlKHZhbHVlLnRvTG93ZXJDYXNlKCkpO1xuICAgICAgICAgICAgICAgICAgICB3YXJuRm9yUHJvcERpZmZlcmVuY2UoXG4gICAgICAgICAgICAgICAgICAgICAgdmFsdWUsXG4gICAgICAgICAgICAgICAgICAgICAgXCJmdW5jdGlvblwiLFxuICAgICAgICAgICAgICAgICAgICAgIHByb3BLZXksXG4gICAgICAgICAgICAgICAgICAgICAgc2VydmVyRGlmZmVyZW5jZXNcbiAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICBoeWRyYXRlU2FuaXRpemVkQXR0cmlidXRlKFxuICAgICAgICAgICAgICAgICAgICBkb21FbGVtZW50LFxuICAgICAgICAgICAgICAgICAgICB2YWx1ZSxcbiAgICAgICAgICAgICAgICAgICAgdmFsdWUudG9Mb3dlckNhc2UoKSxcbiAgICAgICAgICAgICAgICAgICAgcHJvcEtleSxcbiAgICAgICAgICAgICAgICAgICAgZXh0cmFBdHRyaWJ1dGVzLFxuICAgICAgICAgICAgICAgICAgICBzZXJ2ZXJEaWZmZXJlbmNlc1xuICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgICAgICAgIGNhc2UgXCJ4bGlua0hyZWZcIjpcbiAgICAgICAgICAgICAgICAgIGh5ZHJhdGVTYW5pdGl6ZWRBdHRyaWJ1dGUoXG4gICAgICAgICAgICAgICAgICAgIGRvbUVsZW1lbnQsXG4gICAgICAgICAgICAgICAgICAgIHZhbHVlLFxuICAgICAgICAgICAgICAgICAgICBcInhsaW5rOmhyZWZcIixcbiAgICAgICAgICAgICAgICAgICAgcHJvcEtleSxcbiAgICAgICAgICAgICAgICAgICAgZXh0cmFBdHRyaWJ1dGVzLFxuICAgICAgICAgICAgICAgICAgICBzZXJ2ZXJEaWZmZXJlbmNlc1xuICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgICAgICAgIGNhc2UgXCJjb250ZW50RWRpdGFibGVcIjpcbiAgICAgICAgICAgICAgICAgIGh5ZHJhdGVCb29sZWFuaXNoQXR0cmlidXRlKFxuICAgICAgICAgICAgICAgICAgICBkb21FbGVtZW50LFxuICAgICAgICAgICAgICAgICAgICB2YWx1ZSxcbiAgICAgICAgICAgICAgICAgICAgXCJjb250ZW50ZWRpdGFibGVcIixcbiAgICAgICAgICAgICAgICAgICAgcHJvcEtleSxcbiAgICAgICAgICAgICAgICAgICAgZXh0cmFBdHRyaWJ1dGVzLFxuICAgICAgICAgICAgICAgICAgICBzZXJ2ZXJEaWZmZXJlbmNlc1xuICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgICAgICAgIGNhc2UgXCJzcGVsbENoZWNrXCI6XG4gICAgICAgICAgICAgICAgICBoeWRyYXRlQm9vbGVhbmlzaEF0dHJpYnV0ZShcbiAgICAgICAgICAgICAgICAgICAgZG9tRWxlbWVudCxcbiAgICAgICAgICAgICAgICAgICAgdmFsdWUsXG4gICAgICAgICAgICAgICAgICAgIFwic3BlbGxjaGVja1wiLFxuICAgICAgICAgICAgICAgICAgICBwcm9wS2V5LFxuICAgICAgICAgICAgICAgICAgICBleHRyYUF0dHJpYnV0ZXMsXG4gICAgICAgICAgICAgICAgICAgIHNlcnZlckRpZmZlcmVuY2VzXG4gICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgICAgICAgICAgY2FzZSBcImRyYWdnYWJsZVwiOlxuICAgICAgICAgICAgICAgIGNhc2UgXCJhdXRvUmV2ZXJzZVwiOlxuICAgICAgICAgICAgICAgIGNhc2UgXCJleHRlcm5hbFJlc291cmNlc1JlcXVpcmVkXCI6XG4gICAgICAgICAgICAgICAgY2FzZSBcImZvY3VzYWJsZVwiOlxuICAgICAgICAgICAgICAgIGNhc2UgXCJwcmVzZXJ2ZUFscGhhXCI6XG4gICAgICAgICAgICAgICAgICBoeWRyYXRlQm9vbGVhbmlzaEF0dHJpYnV0ZShcbiAgICAgICAgICAgICAgICAgICAgZG9tRWxlbWVudCxcbiAgICAgICAgICAgICAgICAgICAgdmFsdWUsXG4gICAgICAgICAgICAgICAgICAgIHZhbHVlLFxuICAgICAgICAgICAgICAgICAgICBwcm9wS2V5LFxuICAgICAgICAgICAgICAgICAgICBleHRyYUF0dHJpYnV0ZXMsXG4gICAgICAgICAgICAgICAgICAgIHNlcnZlckRpZmZlcmVuY2VzXG4gICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgICAgICAgICAgY2FzZSBcImFsbG93RnVsbFNjcmVlblwiOlxuICAgICAgICAgICAgICAgIGNhc2UgXCJhc3luY1wiOlxuICAgICAgICAgICAgICAgIGNhc2UgXCJhdXRvUGxheVwiOlxuICAgICAgICAgICAgICAgIGNhc2UgXCJjb250cm9sc1wiOlxuICAgICAgICAgICAgICAgIGNhc2UgXCJkZWZhdWx0XCI6XG4gICAgICAgICAgICAgICAgY2FzZSBcImRlZmVyXCI6XG4gICAgICAgICAgICAgICAgY2FzZSBcImRpc2FibGVkXCI6XG4gICAgICAgICAgICAgICAgY2FzZSBcImRpc2FibGVQaWN0dXJlSW5QaWN0dXJlXCI6XG4gICAgICAgICAgICAgICAgY2FzZSBcImRpc2FibGVSZW1vdGVQbGF5YmFja1wiOlxuICAgICAgICAgICAgICAgIGNhc2UgXCJmb3JtTm9WYWxpZGF0ZVwiOlxuICAgICAgICAgICAgICAgIGNhc2UgXCJoaWRkZW5cIjpcbiAgICAgICAgICAgICAgICBjYXNlIFwibG9vcFwiOlxuICAgICAgICAgICAgICAgIGNhc2UgXCJub01vZHVsZVwiOlxuICAgICAgICAgICAgICAgIGNhc2UgXCJub1ZhbGlkYXRlXCI6XG4gICAgICAgICAgICAgICAgY2FzZSBcIm9wZW5cIjpcbiAgICAgICAgICAgICAgICBjYXNlIFwicGxheXNJbmxpbmVcIjpcbiAgICAgICAgICAgICAgICBjYXNlIFwicmVhZE9ubHlcIjpcbiAgICAgICAgICAgICAgICBjYXNlIFwicmVxdWlyZWRcIjpcbiAgICAgICAgICAgICAgICBjYXNlIFwicmV2ZXJzZWRcIjpcbiAgICAgICAgICAgICAgICBjYXNlIFwic2NvcGVkXCI6XG4gICAgICAgICAgICAgICAgY2FzZSBcInNlYW1sZXNzXCI6XG4gICAgICAgICAgICAgICAgY2FzZSBcIml0ZW1TY29wZVwiOlxuICAgICAgICAgICAgICAgICAgaHlkcmF0ZUJvb2xlYW5BdHRyaWJ1dGUoXG4gICAgICAgICAgICAgICAgICAgIGRvbUVsZW1lbnQsXG4gICAgICAgICAgICAgICAgICAgIHZhbHVlLFxuICAgICAgICAgICAgICAgICAgICB2YWx1ZS50b0xvd2VyQ2FzZSgpLFxuICAgICAgICAgICAgICAgICAgICBwcm9wS2V5LFxuICAgICAgICAgICAgICAgICAgICBleHRyYUF0dHJpYnV0ZXMsXG4gICAgICAgICAgICAgICAgICAgIHNlcnZlckRpZmZlcmVuY2VzXG4gICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgICAgICAgICAgY2FzZSBcImNhcHR1cmVcIjpcbiAgICAgICAgICAgICAgICBjYXNlIFwiZG93bmxvYWRcIjpcbiAgICAgICAgICAgICAgICAgIGE6IHtcbiAgICAgICAgICAgICAgICAgICAgaSA9IGRvbUVsZW1lbnQ7XG4gICAgICAgICAgICAgICAgICAgIHZhciBhdHRyaWJ1dGVOYW1lID0gKGF0dHJpYnV0ZXMgPSB2YWx1ZSksXG4gICAgICAgICAgICAgICAgICAgICAgc2VydmVyRGlmZmVyZW5jZXMkanNjb21wJDAgPSBzZXJ2ZXJEaWZmZXJlbmNlcztcbiAgICAgICAgICAgICAgICAgICAgZXh0cmFBdHRyaWJ1dGVzLmRlbGV0ZShhdHRyaWJ1dGVOYW1lKTtcbiAgICAgICAgICAgICAgICAgICAgaSA9IGkuZ2V0QXR0cmlidXRlKGF0dHJpYnV0ZU5hbWUpO1xuICAgICAgICAgICAgICAgICAgICBpZiAobnVsbCA9PT0gaSlcbiAgICAgICAgICAgICAgICAgICAgICBzd2l0Y2ggKHR5cGVvZiBwcm9wS2V5KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjYXNlIFwidW5kZWZpbmVkXCI6XG4gICAgICAgICAgICAgICAgICAgICAgICBjYXNlIFwiZnVuY3Rpb25cIjpcbiAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgXCJzeW1ib2xcIjpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWsgYTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGlmICghMSA9PT0gcHJvcEtleSkgYnJlYWsgYTtcbiAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGVsc2UgaWYgKG51bGwgIT0gcHJvcEtleSlcbiAgICAgICAgICAgICAgICAgICAgICBzd2l0Y2ggKHR5cGVvZiBwcm9wS2V5KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjYXNlIFwiZnVuY3Rpb25cIjpcbiAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgXCJzeW1ib2xcIjpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgICAgICAgICBjYXNlIFwiYm9vbGVhblwiOlxuICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoITAgPT09IHByb3BLZXkgJiYgXCJcIiA9PT0gaSkgYnJlYWsgYTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNoZWNrQXR0cmlidXRlU3RyaW5nQ29lcmNpb24ocHJvcEtleSwgYXR0cmlidXRlcyksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaSA9PT0gXCJcIiArIHByb3BLZXkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhayBhO1xuICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgd2FybkZvclByb3BEaWZmZXJlbmNlKFxuICAgICAgICAgICAgICAgICAgICAgIGF0dHJpYnV0ZXMsXG4gICAgICAgICAgICAgICAgICAgICAgaSxcbiAgICAgICAgICAgICAgICAgICAgICBwcm9wS2V5LFxuICAgICAgICAgICAgICAgICAgICAgIHNlcnZlckRpZmZlcmVuY2VzJGpzY29tcCQwXG4gICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICAgICAgICBjYXNlIFwiY29sc1wiOlxuICAgICAgICAgICAgICAgIGNhc2UgXCJyb3dzXCI6XG4gICAgICAgICAgICAgICAgY2FzZSBcInNpemVcIjpcbiAgICAgICAgICAgICAgICBjYXNlIFwic3BhblwiOlxuICAgICAgICAgICAgICAgICAgYToge1xuICAgICAgICAgICAgICAgICAgICBpID0gZG9tRWxlbWVudDtcbiAgICAgICAgICAgICAgICAgICAgYXR0cmlidXRlTmFtZSA9IGF0dHJpYnV0ZXMgPSB2YWx1ZTtcbiAgICAgICAgICAgICAgICAgICAgc2VydmVyRGlmZmVyZW5jZXMkanNjb21wJDAgPSBzZXJ2ZXJEaWZmZXJlbmNlcztcbiAgICAgICAgICAgICAgICAgICAgZXh0cmFBdHRyaWJ1dGVzLmRlbGV0ZShhdHRyaWJ1dGVOYW1lKTtcbiAgICAgICAgICAgICAgICAgICAgaSA9IGkuZ2V0QXR0cmlidXRlKGF0dHJpYnV0ZU5hbWUpO1xuICAgICAgICAgICAgICAgICAgICBpZiAobnVsbCA9PT0gaSlcbiAgICAgICAgICAgICAgICAgICAgICBzd2l0Y2ggKHR5cGVvZiBwcm9wS2V5KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjYXNlIFwidW5kZWZpbmVkXCI6XG4gICAgICAgICAgICAgICAgICAgICAgICBjYXNlIFwiZnVuY3Rpb25cIjpcbiAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgXCJzeW1ib2xcIjpcbiAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgXCJib29sZWFuXCI6XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrIGE7XG4gICAgICAgICAgICAgICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoaXNOYU4ocHJvcEtleSkgfHwgMSA+IHByb3BLZXkpIGJyZWFrIGE7XG4gICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBlbHNlIGlmIChudWxsICE9IHByb3BLZXkpXG4gICAgICAgICAgICAgICAgICAgICAgc3dpdGNoICh0eXBlb2YgcHJvcEtleSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSBcImZ1bmN0aW9uXCI6XG4gICAgICAgICAgICAgICAgICAgICAgICBjYXNlIFwic3ltYm9sXCI6XG4gICAgICAgICAgICAgICAgICAgICAgICBjYXNlIFwiYm9vbGVhblwiOlxuICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAhKGlzTmFOKHByb3BLZXkpIHx8IDEgPiBwcm9wS2V5KSAmJlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjaGVja0F0dHJpYnV0ZVN0cmluZ0NvZXJjaW9uKHByb3BLZXksIGF0dHJpYnV0ZXMpLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGkgPT09IFwiXCIgKyBwcm9wS2V5KVxuICAgICAgICAgICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWsgYTtcbiAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIHdhcm5Gb3JQcm9wRGlmZmVyZW5jZShcbiAgICAgICAgICAgICAgICAgICAgICBhdHRyaWJ1dGVzLFxuICAgICAgICAgICAgICAgICAgICAgIGksXG4gICAgICAgICAgICAgICAgICAgICAgcHJvcEtleSxcbiAgICAgICAgICAgICAgICAgICAgICBzZXJ2ZXJEaWZmZXJlbmNlcyRqc2NvbXAkMFxuICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgICAgICAgICAgY2FzZSBcInJvd1NwYW5cIjpcbiAgICAgICAgICAgICAgICAgIGh5ZHJhdGVOdW1lcmljQXR0cmlidXRlKFxuICAgICAgICAgICAgICAgICAgICBkb21FbGVtZW50LFxuICAgICAgICAgICAgICAgICAgICB2YWx1ZSxcbiAgICAgICAgICAgICAgICAgICAgXCJyb3dzcGFuXCIsXG4gICAgICAgICAgICAgICAgICAgIHByb3BLZXksXG4gICAgICAgICAgICAgICAgICAgIGV4dHJhQXR0cmlidXRlcyxcbiAgICAgICAgICAgICAgICAgICAgc2VydmVyRGlmZmVyZW5jZXNcbiAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICAgICAgICBjYXNlIFwic3RhcnRcIjpcbiAgICAgICAgICAgICAgICAgIGh5ZHJhdGVOdW1lcmljQXR0cmlidXRlKFxuICAgICAgICAgICAgICAgICAgICBkb21FbGVtZW50LFxuICAgICAgICAgICAgICAgICAgICB2YWx1ZSxcbiAgICAgICAgICAgICAgICAgICAgdmFsdWUsXG4gICAgICAgICAgICAgICAgICAgIHByb3BLZXksXG4gICAgICAgICAgICAgICAgICAgIGV4dHJhQXR0cmlidXRlcyxcbiAgICAgICAgICAgICAgICAgICAgc2VydmVyRGlmZmVyZW5jZXNcbiAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICAgICAgICBjYXNlIFwieEhlaWdodFwiOlxuICAgICAgICAgICAgICAgICAgaHlkcmF0ZUF0dHJpYnV0ZShcbiAgICAgICAgICAgICAgICAgICAgZG9tRWxlbWVudCxcbiAgICAgICAgICAgICAgICAgICAgdmFsdWUsXG4gICAgICAgICAgICAgICAgICAgIFwieC1oZWlnaHRcIixcbiAgICAgICAgICAgICAgICAgICAgcHJvcEtleSxcbiAgICAgICAgICAgICAgICAgICAgZXh0cmFBdHRyaWJ1dGVzLFxuICAgICAgICAgICAgICAgICAgICBzZXJ2ZXJEaWZmZXJlbmNlc1xuICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgICAgICAgIGNhc2UgXCJ4bGlua0FjdHVhdGVcIjpcbiAgICAgICAgICAgICAgICAgIGh5ZHJhdGVBdHRyaWJ1dGUoXG4gICAgICAgICAgICAgICAgICAgIGRvbUVsZW1lbnQsXG4gICAgICAgICAgICAgICAgICAgIHZhbHVlLFxuICAgICAgICAgICAgICAgICAgICBcInhsaW5rOmFjdHVhdGVcIixcbiAgICAgICAgICAgICAgICAgICAgcHJvcEtleSxcbiAgICAgICAgICAgICAgICAgICAgZXh0cmFBdHRyaWJ1dGVzLFxuICAgICAgICAgICAgICAgICAgICBzZXJ2ZXJEaWZmZXJlbmNlc1xuICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgICAgICAgIGNhc2UgXCJ4bGlua0FyY3JvbGVcIjpcbiAgICAgICAgICAgICAgICAgIGh5ZHJhdGVBdHRyaWJ1dGUoXG4gICAgICAgICAgICAgICAgICAgIGRvbUVsZW1lbnQsXG4gICAgICAgICAgICAgICAgICAgIHZhbHVlLFxuICAgICAgICAgICAgICAgICAgICBcInhsaW5rOmFyY3JvbGVcIixcbiAgICAgICAgICAgICAgICAgICAgcHJvcEtleSxcbiAgICAgICAgICAgICAgICAgICAgZXh0cmFBdHRyaWJ1dGVzLFxuICAgICAgICAgICAgICAgICAgICBzZXJ2ZXJEaWZmZXJlbmNlc1xuICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgICAgICAgIGNhc2UgXCJ4bGlua1JvbGVcIjpcbiAgICAgICAgICAgICAgICAgIGh5ZHJhdGVBdHRyaWJ1dGUoXG4gICAgICAgICAgICAgICAgICAgIGRvbUVsZW1lbnQsXG4gICAgICAgICAgICAgICAgICAgIHZhbHVlLFxuICAgICAgICAgICAgICAgICAgICBcInhsaW5rOnJvbGVcIixcbiAgICAgICAgICAgICAgICAgICAgcHJvcEtleSxcbiAgICAgICAgICAgICAgICAgICAgZXh0cmFBdHRyaWJ1dGVzLFxuICAgICAgICAgICAgICAgICAgICBzZXJ2ZXJEaWZmZXJlbmNlc1xuICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgICAgICAgIGNhc2UgXCJ4bGlua1Nob3dcIjpcbiAgICAgICAgICAgICAgICAgIGh5ZHJhdGVBdHRyaWJ1dGUoXG4gICAgICAgICAgICAgICAgICAgIGRvbUVsZW1lbnQsXG4gICAgICAgICAgICAgICAgICAgIHZhbHVlLFxuICAgICAgICAgICAgICAgICAgICBcInhsaW5rOnNob3dcIixcbiAgICAgICAgICAgICAgICAgICAgcHJvcEtleSxcbiAgICAgICAgICAgICAgICAgICAgZXh0cmFBdHRyaWJ1dGVzLFxuICAgICAgICAgICAgICAgICAgICBzZXJ2ZXJEaWZmZXJlbmNlc1xuICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgICAgICAgIGNhc2UgXCJ4bGlua1RpdGxlXCI6XG4gICAgICAgICAgICAgICAgICBoeWRyYXRlQXR0cmlidXRlKFxuICAgICAgICAgICAgICAgICAgICBkb21FbGVtZW50LFxuICAgICAgICAgICAgICAgICAgICB2YWx1ZSxcbiAgICAgICAgICAgICAgICAgICAgXCJ4bGluazp0aXRsZVwiLFxuICAgICAgICAgICAgICAgICAgICBwcm9wS2V5LFxuICAgICAgICAgICAgICAgICAgICBleHRyYUF0dHJpYnV0ZXMsXG4gICAgICAgICAgICAgICAgICAgIHNlcnZlckRpZmZlcmVuY2VzXG4gICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgICAgICAgICAgY2FzZSBcInhsaW5rVHlwZVwiOlxuICAgICAgICAgICAgICAgICAgaHlkcmF0ZUF0dHJpYnV0ZShcbiAgICAgICAgICAgICAgICAgICAgZG9tRWxlbWVudCxcbiAgICAgICAgICAgICAgICAgICAgdmFsdWUsXG4gICAgICAgICAgICAgICAgICAgIFwieGxpbms6dHlwZVwiLFxuICAgICAgICAgICAgICAgICAgICBwcm9wS2V5LFxuICAgICAgICAgICAgICAgICAgICBleHRyYUF0dHJpYnV0ZXMsXG4gICAgICAgICAgICAgICAgICAgIHNlcnZlckRpZmZlcmVuY2VzXG4gICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgICAgICAgICAgY2FzZSBcInhtbEJhc2VcIjpcbiAgICAgICAgICAgICAgICAgIGh5ZHJhdGVBdHRyaWJ1dGUoXG4gICAgICAgICAgICAgICAgICAgIGRvbUVsZW1lbnQsXG4gICAgICAgICAgICAgICAgICAgIHZhbHVlLFxuICAgICAgICAgICAgICAgICAgICBcInhtbDpiYXNlXCIsXG4gICAgICAgICAgICAgICAgICAgIHByb3BLZXksXG4gICAgICAgICAgICAgICAgICAgIGV4dHJhQXR0cmlidXRlcyxcbiAgICAgICAgICAgICAgICAgICAgc2VydmVyRGlmZmVyZW5jZXNcbiAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICAgICAgICBjYXNlIFwieG1sTGFuZ1wiOlxuICAgICAgICAgICAgICAgICAgaHlkcmF0ZUF0dHJpYnV0ZShcbiAgICAgICAgICAgICAgICAgICAgZG9tRWxlbWVudCxcbiAgICAgICAgICAgICAgICAgICAgdmFsdWUsXG4gICAgICAgICAgICAgICAgICAgIFwieG1sOmxhbmdcIixcbiAgICAgICAgICAgICAgICAgICAgcHJvcEtleSxcbiAgICAgICAgICAgICAgICAgICAgZXh0cmFBdHRyaWJ1dGVzLFxuICAgICAgICAgICAgICAgICAgICBzZXJ2ZXJEaWZmZXJlbmNlc1xuICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgICAgICAgIGNhc2UgXCJ4bWxTcGFjZVwiOlxuICAgICAgICAgICAgICAgICAgaHlkcmF0ZUF0dHJpYnV0ZShcbiAgICAgICAgICAgICAgICAgICAgZG9tRWxlbWVudCxcbiAgICAgICAgICAgICAgICAgICAgdmFsdWUsXG4gICAgICAgICAgICAgICAgICAgIFwieG1sOnNwYWNlXCIsXG4gICAgICAgICAgICAgICAgICAgIHByb3BLZXksXG4gICAgICAgICAgICAgICAgICAgIGV4dHJhQXR0cmlidXRlcyxcbiAgICAgICAgICAgICAgICAgICAgc2VydmVyRGlmZmVyZW5jZXNcbiAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICAgICAgICBjYXNlIFwiaW5lcnRcIjpcbiAgICAgICAgICAgICAgICAgIFwiXCIgIT09IHByb3BLZXkgfHxcbiAgICAgICAgICAgICAgICAgICAgZGlkV2FybkZvck5ld0Jvb2xlYW5Qcm9wc1dpdGhFbXB0eVZhbHVlW3ZhbHVlXSB8fFxuICAgICAgICAgICAgICAgICAgICAoKGRpZFdhcm5Gb3JOZXdCb29sZWFuUHJvcHNXaXRoRW1wdHlWYWx1ZVt2YWx1ZV0gPSAhMCksXG4gICAgICAgICAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoXG4gICAgICAgICAgICAgICAgICAgICAgXCJSZWNlaXZlZCBhbiBlbXB0eSBzdHJpbmcgZm9yIGEgYm9vbGVhbiBhdHRyaWJ1dGUgYCVzYC4gVGhpcyB3aWxsIHRyZWF0IHRoZSBhdHRyaWJ1dGUgYXMgaWYgaXQgd2VyZSBmYWxzZS4gRWl0aGVyIHBhc3MgYGZhbHNlYCB0byBzaWxlbmNlIHRoaXMgd2FybmluZywgb3IgcGFzcyBgdHJ1ZWAgaWYgeW91IHVzZWQgYW4gZW1wdHkgc3RyaW5nIGluIGVhcmxpZXIgdmVyc2lvbnMgb2YgUmVhY3QgdG8gaW5kaWNhdGUgdGhpcyBhdHRyaWJ1dGUgaXMgdHJ1ZS5cIixcbiAgICAgICAgICAgICAgICAgICAgICB2YWx1ZVxuICAgICAgICAgICAgICAgICAgICApKTtcbiAgICAgICAgICAgICAgICAgIGh5ZHJhdGVCb29sZWFuQXR0cmlidXRlKFxuICAgICAgICAgICAgICAgICAgICBkb21FbGVtZW50LFxuICAgICAgICAgICAgICAgICAgICB2YWx1ZSxcbiAgICAgICAgICAgICAgICAgICAgdmFsdWUsXG4gICAgICAgICAgICAgICAgICAgIHByb3BLZXksXG4gICAgICAgICAgICAgICAgICAgIGV4dHJhQXR0cmlidXRlcyxcbiAgICAgICAgICAgICAgICAgICAgc2VydmVyRGlmZmVyZW5jZXNcbiAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgICAgaWYgKFxuICAgICAgICAgICAgICAgICAgICAhKDIgPCB2YWx1ZS5sZW5ndGgpIHx8XG4gICAgICAgICAgICAgICAgICAgIChcIm9cIiAhPT0gdmFsdWVbMF0gJiYgXCJPXCIgIT09IHZhbHVlWzBdKSB8fFxuICAgICAgICAgICAgICAgICAgICAoXCJuXCIgIT09IHZhbHVlWzFdICYmIFwiTlwiICE9PSB2YWx1ZVsxXSlcbiAgICAgICAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICAgICAgICBpID0gZ2V0QXR0cmlidXRlQWxpYXModmFsdWUpO1xuICAgICAgICAgICAgICAgICAgICBhdHRyaWJ1dGVzID0gITE7XG4gICAgICAgICAgICAgICAgICAgIGhvc3RDb250ZXh0LmNvbnRleHQgPT09IEhvc3RDb250ZXh0TmFtZXNwYWNlTm9uZSAmJlxuICAgICAgICAgICAgICAgICAgICBcInN2Z1wiICE9PSB0YWcgJiZcbiAgICAgICAgICAgICAgICAgICAgXCJtYXRoXCIgIT09IHRhZ1xuICAgICAgICAgICAgICAgICAgICAgID8gZXh0cmFBdHRyaWJ1dGVzLmRlbGV0ZShpLnRvTG93ZXJDYXNlKCkpXG4gICAgICAgICAgICAgICAgICAgICAgOiAoKGF0dHJpYnV0ZU5hbWUgPSB2YWx1ZS50b0xvd2VyQ2FzZSgpKSxcbiAgICAgICAgICAgICAgICAgICAgICAgIChhdHRyaWJ1dGVOYW1lID0gcG9zc2libGVTdGFuZGFyZE5hbWVzLmhhc093blByb3BlcnR5KFxuICAgICAgICAgICAgICAgICAgICAgICAgICBhdHRyaWJ1dGVOYW1lXG4gICAgICAgICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgICAgICAgICAgID8gcG9zc2libGVTdGFuZGFyZE5hbWVzW2F0dHJpYnV0ZU5hbWVdIHx8IG51bGxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgOiBudWxsKSxcbiAgICAgICAgICAgICAgICAgICAgICAgIG51bGwgIT09IGF0dHJpYnV0ZU5hbWUgJiZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgYXR0cmlidXRlTmFtZSAhPT0gdmFsdWUgJiZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgKChhdHRyaWJ1dGVzID0gITApLFxuICAgICAgICAgICAgICAgICAgICAgICAgICBleHRyYUF0dHJpYnV0ZXMuZGVsZXRlKGF0dHJpYnV0ZU5hbWUpKSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGV4dHJhQXR0cmlidXRlcy5kZWxldGUoaSkpO1xuICAgICAgICAgICAgICAgICAgICBhOiBpZiAoXG4gICAgICAgICAgICAgICAgICAgICAgKChhdHRyaWJ1dGVOYW1lID0gZG9tRWxlbWVudCksXG4gICAgICAgICAgICAgICAgICAgICAgKHNlcnZlckRpZmZlcmVuY2VzJGpzY29tcCQwID0gaSksXG4gICAgICAgICAgICAgICAgICAgICAgKGkgPSBwcm9wS2V5KSxcbiAgICAgICAgICAgICAgICAgICAgICBpc0F0dHJpYnV0ZU5hbWVTYWZlKHNlcnZlckRpZmZlcmVuY2VzJGpzY29tcCQwKSlcbiAgICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgICAgICAgIGlmIChcbiAgICAgICAgICAgICAgICAgICAgICAgIGF0dHJpYnV0ZU5hbWUuaGFzQXR0cmlidXRlKHNlcnZlckRpZmZlcmVuY2VzJGpzY29tcCQwKVxuICAgICAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICAgICAgICAgIChhdHRyaWJ1dGVOYW1lID0gYXR0cmlidXRlTmFtZS5nZXRBdHRyaWJ1dGUoXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHNlcnZlckRpZmZlcmVuY2VzJGpzY29tcCQwXG4gICAgICAgICAgICAgICAgICAgICAgICApKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgY2hlY2tBdHRyaWJ1dGVTdHJpbmdDb2VyY2lvbihcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlcnZlckRpZmZlcmVuY2VzJGpzY29tcCQwXG4gICAgICAgICAgICAgICAgICAgICAgICAgICksXG4gICAgICAgICAgICAgICAgICAgICAgICAgIChpID0gYXR0cmlidXRlTmFtZSA9PT0gXCJcIiArIGkgPyBpIDogYXR0cmlidXRlTmFtZSk7XG4gICAgICAgICAgICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBzd2l0Y2ggKHR5cGVvZiBpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgXCJmdW5jdGlvblwiOlxuICAgICAgICAgICAgICAgICAgICAgICAgICBjYXNlIFwic3ltYm9sXCI6XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWsgYTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSBcImJvb2xlYW5cIjpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKGF0dHJpYnV0ZU5hbWUgPSBzZXJ2ZXJEaWZmZXJlbmNlcyRqc2NvbXAkMFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAudG9Mb3dlckNhc2UoKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuc2xpY2UoMCwgNSkpLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJkYXRhLVwiICE9PSBhdHRyaWJ1dGVOYW1lICYmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiYXJpYS1cIiAhPT0gYXR0cmlidXRlTmFtZSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhayBhO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgaSA9IHZvaWQgMCA9PT0gaSA/IHZvaWQgMCA6IG51bGw7XG4gICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBlbHNlIGkgPSB2b2lkIDA7XG4gICAgICAgICAgICAgICAgICAgIGF0dHJpYnV0ZXMgfHxcbiAgICAgICAgICAgICAgICAgICAgICB3YXJuRm9yUHJvcERpZmZlcmVuY2UoXG4gICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGksXG4gICAgICAgICAgICAgICAgICAgICAgICBwcm9wS2V5LFxuICAgICAgICAgICAgICAgICAgICAgICAgc2VydmVyRGlmZmVyZW5jZXNcbiAgICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG4gICAgICAwIDwgZXh0cmFBdHRyaWJ1dGVzLnNpemUgJiZcbiAgICAgICAgITAgIT09IHByb3BzLnN1cHByZXNzSHlkcmF0aW9uV2FybmluZyAmJlxuICAgICAgICB3YXJuRm9yRXh0cmFBdHRyaWJ1dGVzKGRvbUVsZW1lbnQsIGV4dHJhQXR0cmlidXRlcywgc2VydmVyRGlmZmVyZW5jZXMpO1xuICAgICAgcmV0dXJuIDAgPT09IE9iamVjdC5rZXlzKHNlcnZlckRpZmZlcmVuY2VzKS5sZW5ndGhcbiAgICAgICAgPyBudWxsXG4gICAgICAgIDogc2VydmVyRGlmZmVyZW5jZXM7XG4gICAgfVxuICAgIGZ1bmN0aW9uIHByb3BOYW1lc0xpc3RKb2luKGxpc3QsIGNvbWJpbmF0b3IpIHtcbiAgICAgIHN3aXRjaCAobGlzdC5sZW5ndGgpIHtcbiAgICAgICAgY2FzZSAwOlxuICAgICAgICAgIHJldHVybiBcIlwiO1xuICAgICAgICBjYXNlIDE6XG4gICAgICAgICAgcmV0dXJuIGxpc3RbMF07XG4gICAgICAgIGNhc2UgMjpcbiAgICAgICAgICByZXR1cm4gbGlzdFswXSArIFwiIFwiICsgY29tYmluYXRvciArIFwiIFwiICsgbGlzdFsxXTtcbiAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgbGlzdC5zbGljZSgwLCAtMSkuam9pbihcIiwgXCIpICtcbiAgICAgICAgICAgIFwiLCBcIiArXG4gICAgICAgICAgICBjb21iaW5hdG9yICtcbiAgICAgICAgICAgIFwiIFwiICtcbiAgICAgICAgICAgIGxpc3RbbGlzdC5sZW5ndGggLSAxXVxuICAgICAgICAgICk7XG4gICAgICB9XG4gICAgfVxuICAgIGZ1bmN0aW9uIGdldE93bmVyRG9jdW1lbnRGcm9tUm9vdENvbnRhaW5lcihyb290Q29udGFpbmVyRWxlbWVudCkge1xuICAgICAgcmV0dXJuIDkgPT09IHJvb3RDb250YWluZXJFbGVtZW50Lm5vZGVUeXBlXG4gICAgICAgID8gcm9vdENvbnRhaW5lckVsZW1lbnRcbiAgICAgICAgOiByb290Q29udGFpbmVyRWxlbWVudC5vd25lckRvY3VtZW50O1xuICAgIH1cbiAgICBmdW5jdGlvbiBnZXRPd25Ib3N0Q29udGV4dChuYW1lc3BhY2VVUkkpIHtcbiAgICAgIHN3aXRjaCAobmFtZXNwYWNlVVJJKSB7XG4gICAgICAgIGNhc2UgU1ZHX05BTUVTUEFDRTpcbiAgICAgICAgICByZXR1cm4gSG9zdENvbnRleHROYW1lc3BhY2VTdmc7XG4gICAgICAgIGNhc2UgTUFUSF9OQU1FU1BBQ0U6XG4gICAgICAgICAgcmV0dXJuIEhvc3RDb250ZXh0TmFtZXNwYWNlTWF0aDtcbiAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICByZXR1cm4gSG9zdENvbnRleHROYW1lc3BhY2VOb25lO1xuICAgICAgfVxuICAgIH1cbiAgICBmdW5jdGlvbiBnZXRDaGlsZEhvc3RDb250ZXh0UHJvZChwYXJlbnROYW1lc3BhY2UsIHR5cGUpIHtcbiAgICAgIGlmIChwYXJlbnROYW1lc3BhY2UgPT09IEhvc3RDb250ZXh0TmFtZXNwYWNlTm9uZSlcbiAgICAgICAgc3dpdGNoICh0eXBlKSB7XG4gICAgICAgICAgY2FzZSBcInN2Z1wiOlxuICAgICAgICAgICAgcmV0dXJuIEhvc3RDb250ZXh0TmFtZXNwYWNlU3ZnO1xuICAgICAgICAgIGNhc2UgXCJtYXRoXCI6XG4gICAgICAgICAgICByZXR1cm4gSG9zdENvbnRleHROYW1lc3BhY2VNYXRoO1xuICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICByZXR1cm4gSG9zdENvbnRleHROYW1lc3BhY2VOb25lO1xuICAgICAgICB9XG4gICAgICByZXR1cm4gcGFyZW50TmFtZXNwYWNlID09PSBIb3N0Q29udGV4dE5hbWVzcGFjZVN2ZyAmJlxuICAgICAgICBcImZvcmVpZ25PYmplY3RcIiA9PT0gdHlwZVxuICAgICAgICA/IEhvc3RDb250ZXh0TmFtZXNwYWNlTm9uZVxuICAgICAgICA6IHBhcmVudE5hbWVzcGFjZTtcbiAgICB9XG4gICAgZnVuY3Rpb24gc2hvdWxkU2V0VGV4dENvbnRlbnQodHlwZSwgcHJvcHMpIHtcbiAgICAgIHJldHVybiAoXG4gICAgICAgIFwidGV4dGFyZWFcIiA9PT0gdHlwZSB8fFxuICAgICAgICBcIm5vc2NyaXB0XCIgPT09IHR5cGUgfHxcbiAgICAgICAgXCJzdHJpbmdcIiA9PT0gdHlwZW9mIHByb3BzLmNoaWxkcmVuIHx8XG4gICAgICAgIFwibnVtYmVyXCIgPT09IHR5cGVvZiBwcm9wcy5jaGlsZHJlbiB8fFxuICAgICAgICBcImJpZ2ludFwiID09PSB0eXBlb2YgcHJvcHMuY2hpbGRyZW4gfHxcbiAgICAgICAgKFwib2JqZWN0XCIgPT09IHR5cGVvZiBwcm9wcy5kYW5nZXJvdXNseVNldElubmVySFRNTCAmJlxuICAgICAgICAgIG51bGwgIT09IHByb3BzLmRhbmdlcm91c2x5U2V0SW5uZXJIVE1MICYmXG4gICAgICAgICAgbnVsbCAhPSBwcm9wcy5kYW5nZXJvdXNseVNldElubmVySFRNTC5fX2h0bWwpXG4gICAgICApO1xuICAgIH1cbiAgICBmdW5jdGlvbiBzaG91bGRBdHRlbXB0RWFnZXJUcmFuc2l0aW9uKCkge1xuICAgICAgdmFyIGV2ZW50ID0gd2luZG93LmV2ZW50O1xuICAgICAgaWYgKGV2ZW50ICYmIFwicG9wc3RhdGVcIiA9PT0gZXZlbnQudHlwZSkge1xuICAgICAgICBpZiAoZXZlbnQgPT09IGN1cnJlbnRQb3BzdGF0ZVRyYW5zaXRpb25FdmVudCkgcmV0dXJuICExO1xuICAgICAgICBjdXJyZW50UG9wc3RhdGVUcmFuc2l0aW9uRXZlbnQgPSBldmVudDtcbiAgICAgICAgcmV0dXJuICEwO1xuICAgICAgfVxuICAgICAgY3VycmVudFBvcHN0YXRlVHJhbnNpdGlvbkV2ZW50ID0gbnVsbDtcbiAgICAgIHJldHVybiAhMTtcbiAgICB9XG4gICAgZnVuY3Rpb24gaGFuZGxlRXJyb3JJbk5leHRUaWNrKGVycm9yKSB7XG4gICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHtcbiAgICAgICAgdGhyb3cgZXJyb3I7XG4gICAgICB9KTtcbiAgICB9XG4gICAgZnVuY3Rpb24gY29tbWl0TW91bnQoZG9tRWxlbWVudCwgdHlwZSwgbmV3UHJvcHMpIHtcbiAgICAgIHN3aXRjaCAodHlwZSkge1xuICAgICAgICBjYXNlIFwiYnV0dG9uXCI6XG4gICAgICAgIGNhc2UgXCJpbnB1dFwiOlxuICAgICAgICBjYXNlIFwic2VsZWN0XCI6XG4gICAgICAgIGNhc2UgXCJ0ZXh0YXJlYVwiOlxuICAgICAgICAgIG5ld1Byb3BzLmF1dG9Gb2N1cyAmJiBkb21FbGVtZW50LmZvY3VzKCk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgXCJpbWdcIjpcbiAgICAgICAgICBuZXdQcm9wcy5zcmNcbiAgICAgICAgICAgID8gKGRvbUVsZW1lbnQuc3JjID0gbmV3UHJvcHMuc3JjKVxuICAgICAgICAgICAgOiBuZXdQcm9wcy5zcmNTZXQgJiYgKGRvbUVsZW1lbnQuc3Jjc2V0ID0gbmV3UHJvcHMuc3JjU2V0KTtcbiAgICAgIH1cbiAgICB9XG4gICAgZnVuY3Rpb24gY29tbWl0VXBkYXRlKGRvbUVsZW1lbnQsIHR5cGUsIG9sZFByb3BzLCBuZXdQcm9wcykge1xuICAgICAgdXBkYXRlUHJvcGVydGllcyhkb21FbGVtZW50LCB0eXBlLCBvbGRQcm9wcywgbmV3UHJvcHMpO1xuICAgICAgZG9tRWxlbWVudFtpbnRlcm5hbFByb3BzS2V5XSA9IG5ld1Byb3BzO1xuICAgIH1cbiAgICBmdW5jdGlvbiByZXNldFRleHRDb250ZW50KGRvbUVsZW1lbnQpIHtcbiAgICAgIHNldFRleHRDb250ZW50KGRvbUVsZW1lbnQsIFwiXCIpO1xuICAgIH1cbiAgICBmdW5jdGlvbiBjb21taXRUZXh0VXBkYXRlKHRleHRJbnN0YW5jZSwgb2xkVGV4dCwgbmV3VGV4dCkge1xuICAgICAgdGV4dEluc3RhbmNlLm5vZGVWYWx1ZSA9IG5ld1RleHQ7XG4gICAgfVxuICAgIGZ1bmN0aW9uIGlzU2luZ2xldG9uU2NvcGUodHlwZSkge1xuICAgICAgcmV0dXJuIFwiaGVhZFwiID09PSB0eXBlO1xuICAgIH1cbiAgICBmdW5jdGlvbiByZW1vdmVDaGlsZChwYXJlbnRJbnN0YW5jZSwgY2hpbGQpIHtcbiAgICAgIHBhcmVudEluc3RhbmNlLnJlbW92ZUNoaWxkKGNoaWxkKTtcbiAgICB9XG4gICAgZnVuY3Rpb24gcmVtb3ZlQ2hpbGRGcm9tQ29udGFpbmVyKGNvbnRhaW5lciwgY2hpbGQpIHtcbiAgICAgICg5ID09PSBjb250YWluZXIubm9kZVR5cGVcbiAgICAgICAgPyBjb250YWluZXIuYm9keVxuICAgICAgICA6IFwiSFRNTFwiID09PSBjb250YWluZXIubm9kZU5hbWVcbiAgICAgICAgICA/IGNvbnRhaW5lci5vd25lckRvY3VtZW50LmJvZHlcbiAgICAgICAgICA6IGNvbnRhaW5lclxuICAgICAgKS5yZW1vdmVDaGlsZChjaGlsZCk7XG4gICAgfVxuICAgIGZ1bmN0aW9uIGNsZWFyU3VzcGVuc2VCb3VuZGFyeShwYXJlbnRJbnN0YW5jZSwgc3VzcGVuc2VJbnN0YW5jZSkge1xuICAgICAgdmFyIG5vZGUgPSBzdXNwZW5zZUluc3RhbmNlLFxuICAgICAgICBwb3NzaWJsZVByZWFtYmxlQ29udHJpYnV0aW9uID0gMCxcbiAgICAgICAgZGVwdGggPSAwO1xuICAgICAgZG8ge1xuICAgICAgICB2YXIgbmV4dE5vZGUgPSBub2RlLm5leHRTaWJsaW5nO1xuICAgICAgICBwYXJlbnRJbnN0YW5jZS5yZW1vdmVDaGlsZChub2RlKTtcbiAgICAgICAgaWYgKG5leHROb2RlICYmIDggPT09IG5leHROb2RlLm5vZGVUeXBlKVxuICAgICAgICAgIGlmICgoKG5vZGUgPSBuZXh0Tm9kZS5kYXRhKSwgbm9kZSA9PT0gU1VTUEVOU0VfRU5EX0RBVEEpKSB7XG4gICAgICAgICAgICBpZiAoXG4gICAgICAgICAgICAgIDAgPCBwb3NzaWJsZVByZWFtYmxlQ29udHJpYnV0aW9uICYmXG4gICAgICAgICAgICAgIDggPiBwb3NzaWJsZVByZWFtYmxlQ29udHJpYnV0aW9uXG4gICAgICAgICAgICApIHtcbiAgICAgICAgICAgICAgbm9kZSA9IHBvc3NpYmxlUHJlYW1ibGVDb250cmlidXRpb247XG4gICAgICAgICAgICAgIHZhciBvd25lckRvY3VtZW50ID0gcGFyZW50SW5zdGFuY2Uub3duZXJEb2N1bWVudDtcbiAgICAgICAgICAgICAgbm9kZSAmIFBSRUFNQkxFX0NPTlRSSUJVVElPTl9IVE1MICYmXG4gICAgICAgICAgICAgICAgcmVsZWFzZVNpbmdsZXRvbkluc3RhbmNlKG93bmVyRG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50KTtcbiAgICAgICAgICAgICAgbm9kZSAmIFBSRUFNQkxFX0NPTlRSSUJVVElPTl9CT0RZICYmXG4gICAgICAgICAgICAgICAgcmVsZWFzZVNpbmdsZXRvbkluc3RhbmNlKG93bmVyRG9jdW1lbnQuYm9keSk7XG4gICAgICAgICAgICAgIGlmIChub2RlICYgUFJFQU1CTEVfQ09OVFJJQlVUSU9OX0hFQUQpXG4gICAgICAgICAgICAgICAgZm9yIChcbiAgICAgICAgICAgICAgICAgIG5vZGUgPSBvd25lckRvY3VtZW50LmhlYWQsXG4gICAgICAgICAgICAgICAgICAgIHJlbGVhc2VTaW5nbGV0b25JbnN0YW5jZShub2RlKSxcbiAgICAgICAgICAgICAgICAgICAgb3duZXJEb2N1bWVudCA9IG5vZGUuZmlyc3RDaGlsZDtcbiAgICAgICAgICAgICAgICAgIG93bmVyRG9jdW1lbnQ7XG5cbiAgICAgICAgICAgICAgICApIHtcbiAgICAgICAgICAgICAgICAgIHZhciBuZXh0Tm9kZSRqc2NvbXAkMCA9IG93bmVyRG9jdW1lbnQubmV4dFNpYmxpbmcsXG4gICAgICAgICAgICAgICAgICAgIG5vZGVOYW1lID0gb3duZXJEb2N1bWVudC5ub2RlTmFtZTtcbiAgICAgICAgICAgICAgICAgIG93bmVyRG9jdW1lbnRbaW50ZXJuYWxIb2lzdGFibGVNYXJrZXJdIHx8XG4gICAgICAgICAgICAgICAgICAgIFwiU0NSSVBUXCIgPT09IG5vZGVOYW1lIHx8XG4gICAgICAgICAgICAgICAgICAgIFwiU1RZTEVcIiA9PT0gbm9kZU5hbWUgfHxcbiAgICAgICAgICAgICAgICAgICAgKFwiTElOS1wiID09PSBub2RlTmFtZSAmJlxuICAgICAgICAgICAgICAgICAgICAgIFwic3R5bGVzaGVldFwiID09PSBvd25lckRvY3VtZW50LnJlbC50b0xvd2VyQ2FzZSgpKSB8fFxuICAgICAgICAgICAgICAgICAgICBub2RlLnJlbW92ZUNoaWxkKG93bmVyRG9jdW1lbnQpO1xuICAgICAgICAgICAgICAgICAgb3duZXJEb2N1bWVudCA9IG5leHROb2RlJGpzY29tcCQwO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmICgwID09PSBkZXB0aCkge1xuICAgICAgICAgICAgICBwYXJlbnRJbnN0YW5jZS5yZW1vdmVDaGlsZChuZXh0Tm9kZSk7XG4gICAgICAgICAgICAgIHJldHJ5SWZCbG9ja2VkT24oc3VzcGVuc2VJbnN0YW5jZSk7XG4gICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGRlcHRoLS07XG4gICAgICAgICAgfSBlbHNlXG4gICAgICAgICAgICBub2RlID09PSBTVVNQRU5TRV9TVEFSVF9EQVRBIHx8XG4gICAgICAgICAgICBub2RlID09PSBTVVNQRU5TRV9QRU5ESU5HX1NUQVJUX0RBVEEgfHxcbiAgICAgICAgICAgIG5vZGUgPT09IFNVU1BFTlNFX0ZBTExCQUNLX1NUQVJUX0RBVEFcbiAgICAgICAgICAgICAgPyBkZXB0aCsrXG4gICAgICAgICAgICAgIDogKHBvc3NpYmxlUHJlYW1ibGVDb250cmlidXRpb24gPSBub2RlLmNoYXJDb2RlQXQoMCkgLSA0OCk7XG4gICAgICAgIGVsc2UgcG9zc2libGVQcmVhbWJsZUNvbnRyaWJ1dGlvbiA9IDA7XG4gICAgICAgIG5vZGUgPSBuZXh0Tm9kZTtcbiAgICAgIH0gd2hpbGUgKG5vZGUpO1xuICAgICAgcmV0cnlJZkJsb2NrZWRPbihzdXNwZW5zZUluc3RhbmNlKTtcbiAgICB9XG4gICAgZnVuY3Rpb24gaGlkZUluc3RhbmNlKGluc3RhbmNlKSB7XG4gICAgICBpbnN0YW5jZSA9IGluc3RhbmNlLnN0eWxlO1xuICAgICAgXCJmdW5jdGlvblwiID09PSB0eXBlb2YgaW5zdGFuY2Uuc2V0UHJvcGVydHlcbiAgICAgICAgPyBpbnN0YW5jZS5zZXRQcm9wZXJ0eShcImRpc3BsYXlcIiwgXCJub25lXCIsIFwiaW1wb3J0YW50XCIpXG4gICAgICAgIDogKGluc3RhbmNlLmRpc3BsYXkgPSBcIm5vbmVcIik7XG4gICAgfVxuICAgIGZ1bmN0aW9uIGhpZGVUZXh0SW5zdGFuY2UodGV4dEluc3RhbmNlKSB7XG4gICAgICB0ZXh0SW5zdGFuY2Uubm9kZVZhbHVlID0gXCJcIjtcbiAgICB9XG4gICAgZnVuY3Rpb24gdW5oaWRlSW5zdGFuY2UoaW5zdGFuY2UsIHByb3BzKSB7XG4gICAgICBwcm9wcyA9IHByb3BzW1NUWUxFXTtcbiAgICAgIHByb3BzID1cbiAgICAgICAgdm9pZCAwICE9PSBwcm9wcyAmJiBudWxsICE9PSBwcm9wcyAmJiBwcm9wcy5oYXNPd25Qcm9wZXJ0eShcImRpc3BsYXlcIilcbiAgICAgICAgICA/IHByb3BzLmRpc3BsYXlcbiAgICAgICAgICA6IG51bGw7XG4gICAgICBpbnN0YW5jZS5zdHlsZS5kaXNwbGF5ID1cbiAgICAgICAgbnVsbCA9PSBwcm9wcyB8fCBcImJvb2xlYW5cIiA9PT0gdHlwZW9mIHByb3BzID8gXCJcIiA6IChcIlwiICsgcHJvcHMpLnRyaW0oKTtcbiAgICB9XG4gICAgZnVuY3Rpb24gdW5oaWRlVGV4dEluc3RhbmNlKHRleHRJbnN0YW5jZSwgdGV4dCkge1xuICAgICAgdGV4dEluc3RhbmNlLm5vZGVWYWx1ZSA9IHRleHQ7XG4gICAgfVxuICAgIGZ1bmN0aW9uIGNsZWFyQ29udGFpbmVyU3BhcmluZ2x5KGNvbnRhaW5lcikge1xuICAgICAgdmFyIG5leHROb2RlID0gY29udGFpbmVyLmZpcnN0Q2hpbGQ7XG4gICAgICBuZXh0Tm9kZSAmJiAxMCA9PT0gbmV4dE5vZGUubm9kZVR5cGUgJiYgKG5leHROb2RlID0gbmV4dE5vZGUubmV4dFNpYmxpbmcpO1xuICAgICAgZm9yICg7IG5leHROb2RlOyApIHtcbiAgICAgICAgdmFyIG5vZGUgPSBuZXh0Tm9kZTtcbiAgICAgICAgbmV4dE5vZGUgPSBuZXh0Tm9kZS5uZXh0U2libGluZztcbiAgICAgICAgc3dpdGNoIChub2RlLm5vZGVOYW1lKSB7XG4gICAgICAgICAgY2FzZSBcIkhUTUxcIjpcbiAgICAgICAgICBjYXNlIFwiSEVBRFwiOlxuICAgICAgICAgIGNhc2UgXCJCT0RZXCI6XG4gICAgICAgICAgICBjbGVhckNvbnRhaW5lclNwYXJpbmdseShub2RlKTtcbiAgICAgICAgICAgIGRldGFjaERlbGV0ZWRJbnN0YW5jZShub2RlKTtcbiAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgIGNhc2UgXCJTQ1JJUFRcIjpcbiAgICAgICAgICBjYXNlIFwiU1RZTEVcIjpcbiAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgIGNhc2UgXCJMSU5LXCI6XG4gICAgICAgICAgICBpZiAoXCJzdHlsZXNoZWV0XCIgPT09IG5vZGUucmVsLnRvTG93ZXJDYXNlKCkpIGNvbnRpbnVlO1xuICAgICAgICB9XG4gICAgICAgIGNvbnRhaW5lci5yZW1vdmVDaGlsZChub2RlKTtcbiAgICAgIH1cbiAgICB9XG4gICAgZnVuY3Rpb24gY2FuSHlkcmF0ZUluc3RhbmNlKGluc3RhbmNlLCB0eXBlLCBwcm9wcywgaW5Sb290T3JTaW5nbGV0b24pIHtcbiAgICAgIGZvciAoOyAxID09PSBpbnN0YW5jZS5ub2RlVHlwZTsgKSB7XG4gICAgICAgIHZhciBhbnlQcm9wcyA9IHByb3BzO1xuICAgICAgICBpZiAoaW5zdGFuY2Uubm9kZU5hbWUudG9Mb3dlckNhc2UoKSAhPT0gdHlwZS50b0xvd2VyQ2FzZSgpKSB7XG4gICAgICAgICAgaWYgKFxuICAgICAgICAgICAgIWluUm9vdE9yU2luZ2xldG9uICYmXG4gICAgICAgICAgICAoXCJJTlBVVFwiICE9PSBpbnN0YW5jZS5ub2RlTmFtZSB8fCBcImhpZGRlblwiICE9PSBpbnN0YW5jZS50eXBlKVxuICAgICAgICAgIClcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9IGVsc2UgaWYgKCFpblJvb3RPclNpbmdsZXRvbilcbiAgICAgICAgICBpZiAoXCJpbnB1dFwiID09PSB0eXBlICYmIFwiaGlkZGVuXCIgPT09IGluc3RhbmNlLnR5cGUpIHtcbiAgICAgICAgICAgIGNoZWNrQXR0cmlidXRlU3RyaW5nQ29lcmNpb24oYW55UHJvcHMubmFtZSwgXCJuYW1lXCIpO1xuICAgICAgICAgICAgdmFyIG5hbWUgPSBudWxsID09IGFueVByb3BzLm5hbWUgPyBudWxsIDogXCJcIiArIGFueVByb3BzLm5hbWU7XG4gICAgICAgICAgICBpZiAoXG4gICAgICAgICAgICAgIFwiaGlkZGVuXCIgPT09IGFueVByb3BzLnR5cGUgJiZcbiAgICAgICAgICAgICAgaW5zdGFuY2UuZ2V0QXR0cmlidXRlKFwibmFtZVwiKSA9PT0gbmFtZVxuICAgICAgICAgICAgKVxuICAgICAgICAgICAgICByZXR1cm4gaW5zdGFuY2U7XG4gICAgICAgICAgfSBlbHNlIHJldHVybiBpbnN0YW5jZTtcbiAgICAgICAgZWxzZSBpZiAoIWluc3RhbmNlW2ludGVybmFsSG9pc3RhYmxlTWFya2VyXSlcbiAgICAgICAgICBzd2l0Y2ggKHR5cGUpIHtcbiAgICAgICAgICAgIGNhc2UgXCJtZXRhXCI6XG4gICAgICAgICAgICAgIGlmICghaW5zdGFuY2UuaGFzQXR0cmlidXRlKFwiaXRlbXByb3BcIikpIGJyZWFrO1xuICAgICAgICAgICAgICByZXR1cm4gaW5zdGFuY2U7XG4gICAgICAgICAgICBjYXNlIFwibGlua1wiOlxuICAgICAgICAgICAgICBuYW1lID0gaW5zdGFuY2UuZ2V0QXR0cmlidXRlKFwicmVsXCIpO1xuICAgICAgICAgICAgICBpZiAoXG4gICAgICAgICAgICAgICAgXCJzdHlsZXNoZWV0XCIgPT09IG5hbWUgJiZcbiAgICAgICAgICAgICAgICBpbnN0YW5jZS5oYXNBdHRyaWJ1dGUoXCJkYXRhLXByZWNlZGVuY2VcIilcbiAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICBlbHNlIGlmIChcbiAgICAgICAgICAgICAgICBuYW1lICE9PSBhbnlQcm9wcy5yZWwgfHxcbiAgICAgICAgICAgICAgICBpbnN0YW5jZS5nZXRBdHRyaWJ1dGUoXCJocmVmXCIpICE9PVxuICAgICAgICAgICAgICAgICAgKG51bGwgPT0gYW55UHJvcHMuaHJlZiB8fCBcIlwiID09PSBhbnlQcm9wcy5ocmVmXG4gICAgICAgICAgICAgICAgICAgID8gbnVsbFxuICAgICAgICAgICAgICAgICAgICA6IGFueVByb3BzLmhyZWYpIHx8XG4gICAgICAgICAgICAgICAgaW5zdGFuY2UuZ2V0QXR0cmlidXRlKFwiY3Jvc3NvcmlnaW5cIikgIT09XG4gICAgICAgICAgICAgICAgICAobnVsbCA9PSBhbnlQcm9wcy5jcm9zc09yaWdpblxuICAgICAgICAgICAgICAgICAgICA/IG51bGxcbiAgICAgICAgICAgICAgICAgICAgOiBhbnlQcm9wcy5jcm9zc09yaWdpbikgfHxcbiAgICAgICAgICAgICAgICBpbnN0YW5jZS5nZXRBdHRyaWJ1dGUoXCJ0aXRsZVwiKSAhPT1cbiAgICAgICAgICAgICAgICAgIChudWxsID09IGFueVByb3BzLnRpdGxlID8gbnVsbCA6IGFueVByb3BzLnRpdGxlKVxuICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgIHJldHVybiBpbnN0YW5jZTtcbiAgICAgICAgICAgIGNhc2UgXCJzdHlsZVwiOlxuICAgICAgICAgICAgICBpZiAoaW5zdGFuY2UuaGFzQXR0cmlidXRlKFwiZGF0YS1wcmVjZWRlbmNlXCIpKSBicmVhaztcbiAgICAgICAgICAgICAgcmV0dXJuIGluc3RhbmNlO1xuICAgICAgICAgICAgY2FzZSBcInNjcmlwdFwiOlxuICAgICAgICAgICAgICBuYW1lID0gaW5zdGFuY2UuZ2V0QXR0cmlidXRlKFwic3JjXCIpO1xuICAgICAgICAgICAgICBpZiAoXG4gICAgICAgICAgICAgICAgKG5hbWUgIT09IChudWxsID09IGFueVByb3BzLnNyYyA/IG51bGwgOiBhbnlQcm9wcy5zcmMpIHx8XG4gICAgICAgICAgICAgICAgICBpbnN0YW5jZS5nZXRBdHRyaWJ1dGUoXCJ0eXBlXCIpICE9PVxuICAgICAgICAgICAgICAgICAgICAobnVsbCA9PSBhbnlQcm9wcy50eXBlID8gbnVsbCA6IGFueVByb3BzLnR5cGUpIHx8XG4gICAgICAgICAgICAgICAgICBpbnN0YW5jZS5nZXRBdHRyaWJ1dGUoXCJjcm9zc29yaWdpblwiKSAhPT1cbiAgICAgICAgICAgICAgICAgICAgKG51bGwgPT0gYW55UHJvcHMuY3Jvc3NPcmlnaW5cbiAgICAgICAgICAgICAgICAgICAgICA/IG51bGxcbiAgICAgICAgICAgICAgICAgICAgICA6IGFueVByb3BzLmNyb3NzT3JpZ2luKSkgJiZcbiAgICAgICAgICAgICAgICBuYW1lICYmXG4gICAgICAgICAgICAgICAgaW5zdGFuY2UuaGFzQXR0cmlidXRlKFwiYXN5bmNcIikgJiZcbiAgICAgICAgICAgICAgICAhaW5zdGFuY2UuaGFzQXR0cmlidXRlKFwiaXRlbXByb3BcIilcbiAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICByZXR1cm4gaW5zdGFuY2U7XG4gICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICByZXR1cm4gaW5zdGFuY2U7XG4gICAgICAgICAgfVxuICAgICAgICBpbnN0YW5jZSA9IGdldE5leHRIeWRyYXRhYmxlKGluc3RhbmNlLm5leHRTaWJsaW5nKTtcbiAgICAgICAgaWYgKG51bGwgPT09IGluc3RhbmNlKSBicmVhaztcbiAgICAgIH1cbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbiAgICBmdW5jdGlvbiBjYW5IeWRyYXRlVGV4dEluc3RhbmNlKGluc3RhbmNlLCB0ZXh0LCBpblJvb3RPclNpbmdsZXRvbikge1xuICAgICAgaWYgKFwiXCIgPT09IHRleHQpIHJldHVybiBudWxsO1xuICAgICAgZm9yICg7IDMgIT09IGluc3RhbmNlLm5vZGVUeXBlOyApIHtcbiAgICAgICAgaWYgKFxuICAgICAgICAgICgxICE9PSBpbnN0YW5jZS5ub2RlVHlwZSB8fFxuICAgICAgICAgICAgXCJJTlBVVFwiICE9PSBpbnN0YW5jZS5ub2RlTmFtZSB8fFxuICAgICAgICAgICAgXCJoaWRkZW5cIiAhPT0gaW5zdGFuY2UudHlwZSkgJiZcbiAgICAgICAgICAhaW5Sb290T3JTaW5nbGV0b25cbiAgICAgICAgKVxuICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICBpbnN0YW5jZSA9IGdldE5leHRIeWRyYXRhYmxlKGluc3RhbmNlLm5leHRTaWJsaW5nKTtcbiAgICAgICAgaWYgKG51bGwgPT09IGluc3RhbmNlKSByZXR1cm4gbnVsbDtcbiAgICAgIH1cbiAgICAgIHJldHVybiBpbnN0YW5jZTtcbiAgICB9XG4gICAgZnVuY3Rpb24gaXNTdXNwZW5zZUluc3RhbmNlRmFsbGJhY2soaW5zdGFuY2UpIHtcbiAgICAgIHJldHVybiAoXG4gICAgICAgIGluc3RhbmNlLmRhdGEgPT09IFNVU1BFTlNFX0ZBTExCQUNLX1NUQVJUX0RBVEEgfHxcbiAgICAgICAgKGluc3RhbmNlLmRhdGEgPT09IFNVU1BFTlNFX1BFTkRJTkdfU1RBUlRfREFUQSAmJlxuICAgICAgICAgIGluc3RhbmNlLm93bmVyRG9jdW1lbnQucmVhZHlTdGF0ZSA9PT0gRE9DVU1FTlRfUkVBRFlfU1RBVEVfQ09NUExFVEUpXG4gICAgICApO1xuICAgIH1cbiAgICBmdW5jdGlvbiByZWdpc3RlclN1c3BlbnNlSW5zdGFuY2VSZXRyeShpbnN0YW5jZSwgY2FsbGJhY2spIHtcbiAgICAgIHZhciBvd25lckRvY3VtZW50ID0gaW5zdGFuY2Uub3duZXJEb2N1bWVudDtcbiAgICAgIGlmIChcbiAgICAgICAgaW5zdGFuY2UuZGF0YSAhPT0gU1VTUEVOU0VfUEVORElOR19TVEFSVF9EQVRBIHx8XG4gICAgICAgIG93bmVyRG9jdW1lbnQucmVhZHlTdGF0ZSA9PT0gRE9DVU1FTlRfUkVBRFlfU1RBVEVfQ09NUExFVEVcbiAgICAgIClcbiAgICAgICAgY2FsbGJhY2soKTtcbiAgICAgIGVsc2Uge1xuICAgICAgICB2YXIgbGlzdGVuZXIgPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgY2FsbGJhY2soKTtcbiAgICAgICAgICBvd25lckRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoXCJET01Db250ZW50TG9hZGVkXCIsIGxpc3RlbmVyKTtcbiAgICAgICAgfTtcbiAgICAgICAgb3duZXJEb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKFwiRE9NQ29udGVudExvYWRlZFwiLCBsaXN0ZW5lcik7XG4gICAgICAgIGluc3RhbmNlLl9yZWFjdFJldHJ5ID0gbGlzdGVuZXI7XG4gICAgICB9XG4gICAgfVxuICAgIGZ1bmN0aW9uIGdldE5leHRIeWRyYXRhYmxlKG5vZGUpIHtcbiAgICAgIGZvciAoOyBudWxsICE9IG5vZGU7IG5vZGUgPSBub2RlLm5leHRTaWJsaW5nKSB7XG4gICAgICAgIHZhciBub2RlVHlwZSA9IG5vZGUubm9kZVR5cGU7XG4gICAgICAgIGlmICgxID09PSBub2RlVHlwZSB8fCAzID09PSBub2RlVHlwZSkgYnJlYWs7XG4gICAgICAgIGlmICg4ID09PSBub2RlVHlwZSkge1xuICAgICAgICAgIG5vZGVUeXBlID0gbm9kZS5kYXRhO1xuICAgICAgICAgIGlmIChcbiAgICAgICAgICAgIG5vZGVUeXBlID09PSBTVVNQRU5TRV9TVEFSVF9EQVRBIHx8XG4gICAgICAgICAgICBub2RlVHlwZSA9PT0gU1VTUEVOU0VfRkFMTEJBQ0tfU1RBUlRfREFUQSB8fFxuICAgICAgICAgICAgbm9kZVR5cGUgPT09IFNVU1BFTlNFX1BFTkRJTkdfU1RBUlRfREFUQSB8fFxuICAgICAgICAgICAgbm9kZVR5cGUgPT09IEZPUk1fU1RBVEVfSVNfTUFUQ0hJTkcgfHxcbiAgICAgICAgICAgIG5vZGVUeXBlID09PSBGT1JNX1NUQVRFX0lTX05PVF9NQVRDSElOR1xuICAgICAgICAgIClcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIGlmIChub2RlVHlwZSA9PT0gU1VTUEVOU0VfRU5EX0RBVEEpIHJldHVybiBudWxsO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICByZXR1cm4gbm9kZTtcbiAgICB9XG4gICAgZnVuY3Rpb24gZGVzY3JpYmVIeWRyYXRhYmxlSW5zdGFuY2VGb3JEZXZXYXJuaW5ncyhpbnN0YW5jZSkge1xuICAgICAgaWYgKDEgPT09IGluc3RhbmNlLm5vZGVUeXBlKSB7XG4gICAgICAgIGZvciAoXG4gICAgICAgICAgdmFyIEpTQ29tcGlsZXJfdGVtcF9jb25zdCA9IGluc3RhbmNlLm5vZGVOYW1lLnRvTG93ZXJDYXNlKCksXG4gICAgICAgICAgICBzZXJ2ZXJEaWZmZXJlbmNlcyA9IHt9LFxuICAgICAgICAgICAgYXR0cmlidXRlcyA9IGluc3RhbmNlLmF0dHJpYnV0ZXMsXG4gICAgICAgICAgICBpID0gMDtcbiAgICAgICAgICBpIDwgYXR0cmlidXRlcy5sZW5ndGg7XG4gICAgICAgICAgaSsrXG4gICAgICAgICkge1xuICAgICAgICAgIHZhciBhdHRyID0gYXR0cmlidXRlc1tpXTtcbiAgICAgICAgICBzZXJ2ZXJEaWZmZXJlbmNlc1tnZXRQcm9wTmFtZUZyb21BdHRyaWJ1dGVOYW1lKGF0dHIubmFtZSldID1cbiAgICAgICAgICAgIFwic3R5bGVcIiA9PT0gYXR0ci5uYW1lLnRvTG93ZXJDYXNlKClcbiAgICAgICAgICAgICAgPyBnZXRTdHlsZXNPYmplY3RGcm9tRWxlbWVudChpbnN0YW5jZSlcbiAgICAgICAgICAgICAgOiBhdHRyLnZhbHVlO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB7IHR5cGU6IEpTQ29tcGlsZXJfdGVtcF9jb25zdCwgcHJvcHM6IHNlcnZlckRpZmZlcmVuY2VzIH07XG4gICAgICB9XG4gICAgICByZXR1cm4gOCA9PT0gaW5zdGFuY2Uubm9kZVR5cGVcbiAgICAgICAgPyB7IHR5cGU6IFwiU3VzcGVuc2VcIiwgcHJvcHM6IHt9IH1cbiAgICAgICAgOiBpbnN0YW5jZS5ub2RlVmFsdWU7XG4gICAgfVxuICAgIGZ1bmN0aW9uIGRpZmZIeWRyYXRlZFRleHRGb3JEZXZXYXJuaW5ncyh0ZXh0SW5zdGFuY2UsIHRleHQsIHBhcmVudFByb3BzKSB7XG4gICAgICByZXR1cm4gbnVsbCA9PT0gcGFyZW50UHJvcHMgfHxcbiAgICAgICAgITAgIT09IHBhcmVudFByb3BzW1NVUFBSRVNTX0hZRFJBVElPTl9XQVJOSU5HXVxuICAgICAgICA/ICh0ZXh0SW5zdGFuY2Uubm9kZVZhbHVlID09PSB0ZXh0XG4gICAgICAgICAgICA/ICh0ZXh0SW5zdGFuY2UgPSBudWxsKVxuICAgICAgICAgICAgOiAoKHRleHQgPSBub3JtYWxpemVNYXJrdXBGb3JUZXh0T3JBdHRyaWJ1dGUodGV4dCkpLFxuICAgICAgICAgICAgICAodGV4dEluc3RhbmNlID1cbiAgICAgICAgICAgICAgICBub3JtYWxpemVNYXJrdXBGb3JUZXh0T3JBdHRyaWJ1dGUodGV4dEluc3RhbmNlLm5vZGVWYWx1ZSkgPT09XG4gICAgICAgICAgICAgICAgdGV4dFxuICAgICAgICAgICAgICAgICAgPyBudWxsXG4gICAgICAgICAgICAgICAgICA6IHRleHRJbnN0YW5jZS5ub2RlVmFsdWUpKSxcbiAgICAgICAgICB0ZXh0SW5zdGFuY2UpXG4gICAgICAgIDogbnVsbDtcbiAgICB9XG4gICAgZnVuY3Rpb24gZ2V0TmV4dEh5ZHJhdGFibGVJbnN0YW5jZUFmdGVyU3VzcGVuc2VJbnN0YW5jZShzdXNwZW5zZUluc3RhbmNlKSB7XG4gICAgICBzdXNwZW5zZUluc3RhbmNlID0gc3VzcGVuc2VJbnN0YW5jZS5uZXh0U2libGluZztcbiAgICAgIGZvciAodmFyIGRlcHRoID0gMDsgc3VzcGVuc2VJbnN0YW5jZTsgKSB7XG4gICAgICAgIGlmICg4ID09PSBzdXNwZW5zZUluc3RhbmNlLm5vZGVUeXBlKSB7XG4gICAgICAgICAgdmFyIGRhdGEgPSBzdXNwZW5zZUluc3RhbmNlLmRhdGE7XG4gICAgICAgICAgaWYgKGRhdGEgPT09IFNVU1BFTlNFX0VORF9EQVRBKSB7XG4gICAgICAgICAgICBpZiAoMCA9PT0gZGVwdGgpXG4gICAgICAgICAgICAgIHJldHVybiBnZXROZXh0SHlkcmF0YWJsZShzdXNwZW5zZUluc3RhbmNlLm5leHRTaWJsaW5nKTtcbiAgICAgICAgICAgIGRlcHRoLS07XG4gICAgICAgICAgfSBlbHNlXG4gICAgICAgICAgICAoZGF0YSAhPT0gU1VTUEVOU0VfU1RBUlRfREFUQSAmJlxuICAgICAgICAgICAgICBkYXRhICE9PSBTVVNQRU5TRV9GQUxMQkFDS19TVEFSVF9EQVRBICYmXG4gICAgICAgICAgICAgIGRhdGEgIT09IFNVU1BFTlNFX1BFTkRJTkdfU1RBUlRfREFUQSkgfHxcbiAgICAgICAgICAgICAgZGVwdGgrKztcbiAgICAgICAgfVxuICAgICAgICBzdXNwZW5zZUluc3RhbmNlID0gc3VzcGVuc2VJbnN0YW5jZS5uZXh0U2libGluZztcbiAgICAgIH1cbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbiAgICBmdW5jdGlvbiBnZXRQYXJlbnRTdXNwZW5zZUluc3RhbmNlKHRhcmdldEluc3RhbmNlKSB7XG4gICAgICB0YXJnZXRJbnN0YW5jZSA9IHRhcmdldEluc3RhbmNlLnByZXZpb3VzU2libGluZztcbiAgICAgIGZvciAodmFyIGRlcHRoID0gMDsgdGFyZ2V0SW5zdGFuY2U7ICkge1xuICAgICAgICBpZiAoOCA9PT0gdGFyZ2V0SW5zdGFuY2Uubm9kZVR5cGUpIHtcbiAgICAgICAgICB2YXIgZGF0YSA9IHRhcmdldEluc3RhbmNlLmRhdGE7XG4gICAgICAgICAgaWYgKFxuICAgICAgICAgICAgZGF0YSA9PT0gU1VTUEVOU0VfU1RBUlRfREFUQSB8fFxuICAgICAgICAgICAgZGF0YSA9PT0gU1VTUEVOU0VfRkFMTEJBQ0tfU1RBUlRfREFUQSB8fFxuICAgICAgICAgICAgZGF0YSA9PT0gU1VTUEVOU0VfUEVORElOR19TVEFSVF9EQVRBXG4gICAgICAgICAgKSB7XG4gICAgICAgICAgICBpZiAoMCA9PT0gZGVwdGgpIHJldHVybiB0YXJnZXRJbnN0YW5jZTtcbiAgICAgICAgICAgIGRlcHRoLS07XG4gICAgICAgICAgfSBlbHNlIGRhdGEgPT09IFNVU1BFTlNFX0VORF9EQVRBICYmIGRlcHRoKys7XG4gICAgICAgIH1cbiAgICAgICAgdGFyZ2V0SW5zdGFuY2UgPSB0YXJnZXRJbnN0YW5jZS5wcmV2aW91c1NpYmxpbmc7XG4gICAgICB9XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG4gICAgZnVuY3Rpb24gY29tbWl0SHlkcmF0ZWRDb250YWluZXIoY29udGFpbmVyKSB7XG4gICAgICByZXRyeUlmQmxvY2tlZE9uKGNvbnRhaW5lcik7XG4gICAgfVxuICAgIGZ1bmN0aW9uIGNvbW1pdEh5ZHJhdGVkU3VzcGVuc2VJbnN0YW5jZShzdXNwZW5zZUluc3RhbmNlKSB7XG4gICAgICByZXRyeUlmQmxvY2tlZE9uKHN1c3BlbnNlSW5zdGFuY2UpO1xuICAgIH1cbiAgICBmdW5jdGlvbiByZXNvbHZlU2luZ2xldG9uSW5zdGFuY2UoXG4gICAgICB0eXBlLFxuICAgICAgcHJvcHMsXG4gICAgICByb290Q29udGFpbmVySW5zdGFuY2UsXG4gICAgICBob3N0Q29udGV4dCxcbiAgICAgIHZhbGlkYXRlRE9NTmVzdGluZ0RldlxuICAgICkge1xuICAgICAgdmFsaWRhdGVET01OZXN0aW5nRGV2ICYmXG4gICAgICAgIHZhbGlkYXRlRE9NTmVzdGluZyh0eXBlLCBob3N0Q29udGV4dC5hbmNlc3RvckluZm8pO1xuICAgICAgcHJvcHMgPSBnZXRPd25lckRvY3VtZW50RnJvbVJvb3RDb250YWluZXIocm9vdENvbnRhaW5lckluc3RhbmNlKTtcbiAgICAgIHN3aXRjaCAodHlwZSkge1xuICAgICAgICBjYXNlIFwiaHRtbFwiOlxuICAgICAgICAgIHR5cGUgPSBwcm9wcy5kb2N1bWVudEVsZW1lbnQ7XG4gICAgICAgICAgaWYgKCF0eXBlKVxuICAgICAgICAgICAgdGhyb3cgRXJyb3IoXG4gICAgICAgICAgICAgIFwiUmVhY3QgZXhwZWN0ZWQgYW4gPGh0bWw+IGVsZW1lbnQgKGRvY3VtZW50LmRvY3VtZW50RWxlbWVudCkgdG8gZXhpc3QgaW4gdGhlIERvY3VtZW50IGJ1dCBvbmUgd2FzIG5vdCBmb3VuZC4gUmVhY3QgbmV2ZXIgcmVtb3ZlcyB0aGUgZG9jdW1lbnRFbGVtZW50IGZvciBhbnkgRG9jdW1lbnQgaXQgcmVuZGVycyBpbnRvIHNvIHRoZSBjYXVzZSBpcyBsaWtlbHkgaW4gc29tZSBvdGhlciBzY3JpcHQgcnVubmluZyBvbiB0aGlzIHBhZ2UuXCJcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgcmV0dXJuIHR5cGU7XG4gICAgICAgIGNhc2UgXCJoZWFkXCI6XG4gICAgICAgICAgdHlwZSA9IHByb3BzLmhlYWQ7XG4gICAgICAgICAgaWYgKCF0eXBlKVxuICAgICAgICAgICAgdGhyb3cgRXJyb3IoXG4gICAgICAgICAgICAgIFwiUmVhY3QgZXhwZWN0ZWQgYSA8aGVhZD4gZWxlbWVudCAoZG9jdW1lbnQuaGVhZCkgdG8gZXhpc3QgaW4gdGhlIERvY3VtZW50IGJ1dCBvbmUgd2FzIG5vdCBmb3VuZC4gUmVhY3QgbmV2ZXIgcmVtb3ZlcyB0aGUgaGVhZCBmb3IgYW55IERvY3VtZW50IGl0IHJlbmRlcnMgaW50byBzbyB0aGUgY2F1c2UgaXMgbGlrZWx5IGluIHNvbWUgb3RoZXIgc2NyaXB0IHJ1bm5pbmcgb24gdGhpcyBwYWdlLlwiXG4gICAgICAgICAgICApO1xuICAgICAgICAgIHJldHVybiB0eXBlO1xuICAgICAgICBjYXNlIFwiYm9keVwiOlxuICAgICAgICAgIHR5cGUgPSBwcm9wcy5ib2R5O1xuICAgICAgICAgIGlmICghdHlwZSlcbiAgICAgICAgICAgIHRocm93IEVycm9yKFxuICAgICAgICAgICAgICBcIlJlYWN0IGV4cGVjdGVkIGEgPGJvZHk+IGVsZW1lbnQgKGRvY3VtZW50LmJvZHkpIHRvIGV4aXN0IGluIHRoZSBEb2N1bWVudCBidXQgb25lIHdhcyBub3QgZm91bmQuIFJlYWN0IG5ldmVyIHJlbW92ZXMgdGhlIGJvZHkgZm9yIGFueSBEb2N1bWVudCBpdCByZW5kZXJzIGludG8gc28gdGhlIGNhdXNlIGlzIGxpa2VseSBpbiBzb21lIG90aGVyIHNjcmlwdCBydW5uaW5nIG9uIHRoaXMgcGFnZS5cIlxuICAgICAgICAgICAgKTtcbiAgICAgICAgICByZXR1cm4gdHlwZTtcbiAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICB0aHJvdyBFcnJvcihcbiAgICAgICAgICAgIFwicmVzb2x2ZVNpbmdsZXRvbkluc3RhbmNlIHdhcyBjYWxsZWQgd2l0aCBhbiBlbGVtZW50IHR5cGUgdGhhdCBpcyBub3Qgc3VwcG9ydGVkLiBUaGlzIGlzIGEgYnVnIGluIFJlYWN0LlwiXG4gICAgICAgICAgKTtcbiAgICAgIH1cbiAgICB9XG4gICAgZnVuY3Rpb24gYWNxdWlyZVNpbmdsZXRvbkluc3RhbmNlKFxuICAgICAgdHlwZSxcbiAgICAgIHByb3BzLFxuICAgICAgaW5zdGFuY2UsXG4gICAgICBpbnRlcm5hbEluc3RhbmNlSGFuZGxlXG4gICAgKSB7XG4gICAgICBpZiAoXG4gICAgICAgICFpbnN0YW5jZVtpbnRlcm5hbENvbnRhaW5lckluc3RhbmNlS2V5XSAmJlxuICAgICAgICBnZXRJbnN0YW5jZUZyb21Ob2RlKGluc3RhbmNlKVxuICAgICAgKSB7XG4gICAgICAgIHZhciB0YWdOYW1lID0gaW5zdGFuY2UudGFnTmFtZS50b0xvd2VyQ2FzZSgpO1xuICAgICAgICBjb25zb2xlLmVycm9yKFxuICAgICAgICAgIFwiWW91IGFyZSBtb3VudGluZyBhIG5ldyAlcyBjb21wb25lbnQgd2hlbiBhIHByZXZpb3VzIG9uZSBoYXMgbm90IGZpcnN0IHVubW91bnRlZC4gSXQgaXMgYW4gZXJyb3IgdG8gcmVuZGVyIG1vcmUgdGhhbiBvbmUgJXMgY29tcG9uZW50IGF0IGEgdGltZSBhbmQgYXR0cmlidXRlcyBhbmQgY2hpbGRyZW4gb2YgdGhlc2UgY29tcG9uZW50cyB3aWxsIGxpa2VseSBmYWlsIGluIHVucHJlZGljdGFibGUgd2F5cy4gUGxlYXNlIG9ubHkgcmVuZGVyIGEgc2luZ2xlIGluc3RhbmNlIG9mIDwlcz4gYW5kIGlmIHlvdSBuZWVkIHRvIG1vdW50IGEgbmV3IG9uZSwgZW5zdXJlIGFueSBwcmV2aW91cyBvbmVzIGhhdmUgdW5tb3VudGVkIGZpcnN0LlwiLFxuICAgICAgICAgIHRhZ05hbWUsXG4gICAgICAgICAgdGFnTmFtZSxcbiAgICAgICAgICB0YWdOYW1lXG4gICAgICAgICk7XG4gICAgICB9XG4gICAgICBzd2l0Y2ggKHR5cGUpIHtcbiAgICAgICAgY2FzZSBcImh0bWxcIjpcbiAgICAgICAgY2FzZSBcImhlYWRcIjpcbiAgICAgICAgY2FzZSBcImJvZHlcIjpcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICBjb25zb2xlLmVycm9yKFxuICAgICAgICAgICAgXCJhY3F1aXJlU2luZ2xldG9uSW5zdGFuY2Ugd2FzIGNhbGxlZCB3aXRoIGFuIGVsZW1lbnQgdHlwZSB0aGF0IGlzIG5vdCBzdXBwb3J0ZWQuIFRoaXMgaXMgYSBidWcgaW4gUmVhY3QuXCJcbiAgICAgICAgICApO1xuICAgICAgfVxuICAgICAgZm9yICh0YWdOYW1lID0gaW5zdGFuY2UuYXR0cmlidXRlczsgdGFnTmFtZS5sZW5ndGg7IClcbiAgICAgICAgaW5zdGFuY2UucmVtb3ZlQXR0cmlidXRlTm9kZSh0YWdOYW1lWzBdKTtcbiAgICAgIHNldEluaXRpYWxQcm9wZXJ0aWVzKGluc3RhbmNlLCB0eXBlLCBwcm9wcyk7XG4gICAgICBpbnN0YW5jZVtpbnRlcm5hbEluc3RhbmNlS2V5XSA9IGludGVybmFsSW5zdGFuY2VIYW5kbGU7XG4gICAgICBpbnN0YW5jZVtpbnRlcm5hbFByb3BzS2V5XSA9IHByb3BzO1xuICAgIH1cbiAgICBmdW5jdGlvbiByZWxlYXNlU2luZ2xldG9uSW5zdGFuY2UoaW5zdGFuY2UpIHtcbiAgICAgIGZvciAodmFyIGF0dHJpYnV0ZXMgPSBpbnN0YW5jZS5hdHRyaWJ1dGVzOyBhdHRyaWJ1dGVzLmxlbmd0aDsgKVxuICAgICAgICBpbnN0YW5jZS5yZW1vdmVBdHRyaWJ1dGVOb2RlKGF0dHJpYnV0ZXNbMF0pO1xuICAgICAgZGV0YWNoRGVsZXRlZEluc3RhbmNlKGluc3RhbmNlKTtcbiAgICB9XG4gICAgZnVuY3Rpb24gZ2V0SG9pc3RhYmxlUm9vdChjb250YWluZXIpIHtcbiAgICAgIHJldHVybiBcImZ1bmN0aW9uXCIgPT09IHR5cGVvZiBjb250YWluZXIuZ2V0Um9vdE5vZGVcbiAgICAgICAgPyBjb250YWluZXIuZ2V0Um9vdE5vZGUoKVxuICAgICAgICA6IDkgPT09IGNvbnRhaW5lci5ub2RlVHlwZVxuICAgICAgICAgID8gY29udGFpbmVyXG4gICAgICAgICAgOiBjb250YWluZXIub3duZXJEb2N1bWVudDtcbiAgICB9XG4gICAgZnVuY3Rpb24gcHJlY29ubmVjdEFzKHJlbCwgaHJlZiwgY3Jvc3NPcmlnaW4pIHtcbiAgICAgIHZhciBvd25lckRvY3VtZW50ID0gZ2xvYmFsRG9jdW1lbnQ7XG4gICAgICBpZiAob3duZXJEb2N1bWVudCAmJiBcInN0cmluZ1wiID09PSB0eXBlb2YgaHJlZiAmJiBocmVmKSB7XG4gICAgICAgIHZhciBsaW1pdGVkRXNjYXBlZEhyZWYgPVxuICAgICAgICAgIGVzY2FwZVNlbGVjdG9yQXR0cmlidXRlVmFsdWVJbnNpZGVEb3VibGVRdW90ZXMoaHJlZik7XG4gICAgICAgIGxpbWl0ZWRFc2NhcGVkSHJlZiA9XG4gICAgICAgICAgJ2xpbmtbcmVsPVwiJyArIHJlbCArICdcIl1baHJlZj1cIicgKyBsaW1pdGVkRXNjYXBlZEhyZWYgKyAnXCJdJztcbiAgICAgICAgXCJzdHJpbmdcIiA9PT0gdHlwZW9mIGNyb3NzT3JpZ2luICYmXG4gICAgICAgICAgKGxpbWl0ZWRFc2NhcGVkSHJlZiArPSAnW2Nyb3Nzb3JpZ2luPVwiJyArIGNyb3NzT3JpZ2luICsgJ1wiXScpO1xuICAgICAgICBwcmVjb25uZWN0c1NldC5oYXMobGltaXRlZEVzY2FwZWRIcmVmKSB8fFxuICAgICAgICAgIChwcmVjb25uZWN0c1NldC5hZGQobGltaXRlZEVzY2FwZWRIcmVmKSxcbiAgICAgICAgICAocmVsID0geyByZWw6IHJlbCwgY3Jvc3NPcmlnaW46IGNyb3NzT3JpZ2luLCBocmVmOiBocmVmIH0pLFxuICAgICAgICAgIG51bGwgPT09IG93bmVyRG9jdW1lbnQucXVlcnlTZWxlY3RvcihsaW1pdGVkRXNjYXBlZEhyZWYpICYmXG4gICAgICAgICAgICAoKGhyZWYgPSBvd25lckRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoXCJsaW5rXCIpKSxcbiAgICAgICAgICAgIHNldEluaXRpYWxQcm9wZXJ0aWVzKGhyZWYsIFwibGlua1wiLCByZWwpLFxuICAgICAgICAgICAgbWFya05vZGVBc0hvaXN0YWJsZShocmVmKSxcbiAgICAgICAgICAgIG93bmVyRG9jdW1lbnQuaGVhZC5hcHBlbmRDaGlsZChocmVmKSkpO1xuICAgICAgfVxuICAgIH1cbiAgICBmdW5jdGlvbiBnZXRSZXNvdXJjZSh0eXBlLCBjdXJyZW50UHJvcHMsIHBlbmRpbmdQcm9wcywgY3VycmVudFJlc291cmNlKSB7XG4gICAgICB2YXIgcmVzb3VyY2VSb290ID0gKHJlc291cmNlUm9vdCA9IHJvb3RJbnN0YW5jZVN0YWNrQ3Vyc29yLmN1cnJlbnQpXG4gICAgICAgID8gZ2V0SG9pc3RhYmxlUm9vdChyZXNvdXJjZVJvb3QpXG4gICAgICAgIDogbnVsbDtcbiAgICAgIGlmICghcmVzb3VyY2VSb290KVxuICAgICAgICB0aHJvdyBFcnJvcihcbiAgICAgICAgICAnXCJyZXNvdXJjZVJvb3RcIiB3YXMgZXhwZWN0ZWQgdG8gZXhpc3QuIFRoaXMgaXMgYSBidWcgaW4gUmVhY3QuJ1xuICAgICAgICApO1xuICAgICAgc3dpdGNoICh0eXBlKSB7XG4gICAgICAgIGNhc2UgXCJtZXRhXCI6XG4gICAgICAgIGNhc2UgXCJ0aXRsZVwiOlxuICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICBjYXNlIFwic3R5bGVcIjpcbiAgICAgICAgICByZXR1cm4gXCJzdHJpbmdcIiA9PT0gdHlwZW9mIHBlbmRpbmdQcm9wcy5wcmVjZWRlbmNlICYmXG4gICAgICAgICAgICBcInN0cmluZ1wiID09PSB0eXBlb2YgcGVuZGluZ1Byb3BzLmhyZWZcbiAgICAgICAgICAgID8gKChwZW5kaW5nUHJvcHMgPSBnZXRTdHlsZUtleShwZW5kaW5nUHJvcHMuaHJlZikpLFxuICAgICAgICAgICAgICAoY3VycmVudFByb3BzID1cbiAgICAgICAgICAgICAgICBnZXRSZXNvdXJjZXNGcm9tUm9vdChyZXNvdXJjZVJvb3QpLmhvaXN0YWJsZVN0eWxlcyksXG4gICAgICAgICAgICAgIChjdXJyZW50UmVzb3VyY2UgPSBjdXJyZW50UHJvcHMuZ2V0KHBlbmRpbmdQcm9wcykpLFxuICAgICAgICAgICAgICBjdXJyZW50UmVzb3VyY2UgfHxcbiAgICAgICAgICAgICAgICAoKGN1cnJlbnRSZXNvdXJjZSA9IHtcbiAgICAgICAgICAgICAgICAgIHR5cGU6IFwic3R5bGVcIixcbiAgICAgICAgICAgICAgICAgIGluc3RhbmNlOiBudWxsLFxuICAgICAgICAgICAgICAgICAgY291bnQ6IDAsXG4gICAgICAgICAgICAgICAgICBzdGF0ZTogbnVsbFxuICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgIGN1cnJlbnRQcm9wcy5zZXQocGVuZGluZ1Byb3BzLCBjdXJyZW50UmVzb3VyY2UpKSxcbiAgICAgICAgICAgICAgY3VycmVudFJlc291cmNlKVxuICAgICAgICAgICAgOiB7IHR5cGU6IFwidm9pZFwiLCBpbnN0YW5jZTogbnVsbCwgY291bnQ6IDAsIHN0YXRlOiBudWxsIH07XG4gICAgICAgIGNhc2UgXCJsaW5rXCI6XG4gICAgICAgICAgaWYgKFxuICAgICAgICAgICAgXCJzdHlsZXNoZWV0XCIgPT09IHBlbmRpbmdQcm9wcy5yZWwgJiZcbiAgICAgICAgICAgIFwic3RyaW5nXCIgPT09IHR5cGVvZiBwZW5kaW5nUHJvcHMuaHJlZiAmJlxuICAgICAgICAgICAgXCJzdHJpbmdcIiA9PT0gdHlwZW9mIHBlbmRpbmdQcm9wcy5wcmVjZWRlbmNlXG4gICAgICAgICAgKSB7XG4gICAgICAgICAgICB0eXBlID0gZ2V0U3R5bGVLZXkocGVuZGluZ1Byb3BzLmhyZWYpO1xuICAgICAgICAgICAgdmFyIF9zdHlsZXMgPSBnZXRSZXNvdXJjZXNGcm9tUm9vdChyZXNvdXJjZVJvb3QpLmhvaXN0YWJsZVN0eWxlcyxcbiAgICAgICAgICAgICAgX3Jlc291cmNlID0gX3N0eWxlcy5nZXQodHlwZSk7XG4gICAgICAgICAgICBpZiAoXG4gICAgICAgICAgICAgICFfcmVzb3VyY2UgJiZcbiAgICAgICAgICAgICAgKChyZXNvdXJjZVJvb3QgPSByZXNvdXJjZVJvb3Qub3duZXJEb2N1bWVudCB8fCByZXNvdXJjZVJvb3QpLFxuICAgICAgICAgICAgICAoX3Jlc291cmNlID0ge1xuICAgICAgICAgICAgICAgIHR5cGU6IFwic3R5bGVzaGVldFwiLFxuICAgICAgICAgICAgICAgIGluc3RhbmNlOiBudWxsLFxuICAgICAgICAgICAgICAgIGNvdW50OiAwLFxuICAgICAgICAgICAgICAgIHN0YXRlOiB7IGxvYWRpbmc6IE5vdExvYWRlZCwgcHJlbG9hZDogbnVsbCB9XG4gICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICBfc3R5bGVzLnNldCh0eXBlLCBfcmVzb3VyY2UpLFxuICAgICAgICAgICAgICAoX3N0eWxlcyA9IHJlc291cmNlUm9vdC5xdWVyeVNlbGVjdG9yKFxuICAgICAgICAgICAgICAgIGdldFN0eWxlc2hlZXRTZWxlY3RvckZyb21LZXkodHlwZSlcbiAgICAgICAgICAgICAgKSkgJiZcbiAgICAgICAgICAgICAgICAhX3N0eWxlcy5fcCAmJlxuICAgICAgICAgICAgICAgICgoX3Jlc291cmNlLmluc3RhbmNlID0gX3N0eWxlcyksXG4gICAgICAgICAgICAgICAgKF9yZXNvdXJjZS5zdGF0ZS5sb2FkaW5nID0gTG9hZGVkIHwgSW5zZXJ0ZWQpKSxcbiAgICAgICAgICAgICAgIXByZWxvYWRQcm9wc01hcC5oYXModHlwZSkpXG4gICAgICAgICAgICApIHtcbiAgICAgICAgICAgICAgdmFyIHByZWxvYWRQcm9wcyA9IHtcbiAgICAgICAgICAgICAgICByZWw6IFwicHJlbG9hZFwiLFxuICAgICAgICAgICAgICAgIGFzOiBcInN0eWxlXCIsXG4gICAgICAgICAgICAgICAgaHJlZjogcGVuZGluZ1Byb3BzLmhyZWYsXG4gICAgICAgICAgICAgICAgY3Jvc3NPcmlnaW46IHBlbmRpbmdQcm9wcy5jcm9zc09yaWdpbixcbiAgICAgICAgICAgICAgICBpbnRlZ3JpdHk6IHBlbmRpbmdQcm9wcy5pbnRlZ3JpdHksXG4gICAgICAgICAgICAgICAgbWVkaWE6IHBlbmRpbmdQcm9wcy5tZWRpYSxcbiAgICAgICAgICAgICAgICBocmVmTGFuZzogcGVuZGluZ1Byb3BzLmhyZWZMYW5nLFxuICAgICAgICAgICAgICAgIHJlZmVycmVyUG9saWN5OiBwZW5kaW5nUHJvcHMucmVmZXJyZXJQb2xpY3lcbiAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgcHJlbG9hZFByb3BzTWFwLnNldCh0eXBlLCBwcmVsb2FkUHJvcHMpO1xuICAgICAgICAgICAgICBfc3R5bGVzIHx8XG4gICAgICAgICAgICAgICAgcHJlbG9hZFN0eWxlc2hlZXQoXG4gICAgICAgICAgICAgICAgICByZXNvdXJjZVJvb3QsXG4gICAgICAgICAgICAgICAgICB0eXBlLFxuICAgICAgICAgICAgICAgICAgcHJlbG9hZFByb3BzLFxuICAgICAgICAgICAgICAgICAgX3Jlc291cmNlLnN0YXRlXG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChjdXJyZW50UHJvcHMgJiYgbnVsbCA9PT0gY3VycmVudFJlc291cmNlKVxuICAgICAgICAgICAgICB0aHJvdyAoXG4gICAgICAgICAgICAgICAgKChwZW5kaW5nUHJvcHMgPVxuICAgICAgICAgICAgICAgICAgXCJcXG5cXG4gIC0gXCIgK1xuICAgICAgICAgICAgICAgICAgZGVzY3JpYmVMaW5rRm9yUmVzb3VyY2VFcnJvckRFVihjdXJyZW50UHJvcHMpICtcbiAgICAgICAgICAgICAgICAgIFwiXFxuICArIFwiICtcbiAgICAgICAgICAgICAgICAgIGRlc2NyaWJlTGlua0ZvclJlc291cmNlRXJyb3JERVYocGVuZGluZ1Byb3BzKSksXG4gICAgICAgICAgICAgICAgRXJyb3IoXG4gICAgICAgICAgICAgICAgICBcIkV4cGVjdGVkIDxsaW5rPiBub3QgdG8gdXBkYXRlIHRvIGJlIHVwZGF0ZWQgdG8gYSBzdHlsZXNoZWV0IHdpdGggcHJlY2VkZW5jZS4gQ2hlY2sgdGhlIGByZWxgLCBgaHJlZmAsIGFuZCBgcHJlY2VkZW5jZWAgcHJvcHMgb2YgdGhpcyBjb21wb25lbnQuIEFsdGVybmF0aXZlbHksIGNoZWNrIHdoZXRoZXIgdHdvIGRpZmZlcmVudCA8bGluaz4gY29tcG9uZW50cyByZW5kZXIgaW4gdGhlIHNhbWUgc2xvdCBvciBzaGFyZSB0aGUgc2FtZSBrZXkuXCIgK1xuICAgICAgICAgICAgICAgICAgICBwZW5kaW5nUHJvcHNcbiAgICAgICAgICAgICAgICApKVxuICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgcmV0dXJuIF9yZXNvdXJjZTtcbiAgICAgICAgICB9XG4gICAgICAgICAgaWYgKGN1cnJlbnRQcm9wcyAmJiBudWxsICE9PSBjdXJyZW50UmVzb3VyY2UpXG4gICAgICAgICAgICB0aHJvdyAoXG4gICAgICAgICAgICAgICgocGVuZGluZ1Byb3BzID1cbiAgICAgICAgICAgICAgICBcIlxcblxcbiAgLSBcIiArXG4gICAgICAgICAgICAgICAgZGVzY3JpYmVMaW5rRm9yUmVzb3VyY2VFcnJvckRFVihjdXJyZW50UHJvcHMpICtcbiAgICAgICAgICAgICAgICBcIlxcbiAgKyBcIiArXG4gICAgICAgICAgICAgICAgZGVzY3JpYmVMaW5rRm9yUmVzb3VyY2VFcnJvckRFVihwZW5kaW5nUHJvcHMpKSxcbiAgICAgICAgICAgICAgRXJyb3IoXG4gICAgICAgICAgICAgICAgXCJFeHBlY3RlZCBzdHlsZXNoZWV0IHdpdGggcHJlY2VkZW5jZSB0byBub3QgYmUgdXBkYXRlZCB0byBhIGRpZmZlcmVudCBraW5kIG9mIDxsaW5rPi4gQ2hlY2sgdGhlIGByZWxgLCBgaHJlZmAsIGFuZCBgcHJlY2VkZW5jZWAgcHJvcHMgb2YgdGhpcyBjb21wb25lbnQuIEFsdGVybmF0aXZlbHksIGNoZWNrIHdoZXRoZXIgdHdvIGRpZmZlcmVudCA8bGluaz4gY29tcG9uZW50cyByZW5kZXIgaW4gdGhlIHNhbWUgc2xvdCBvciBzaGFyZSB0aGUgc2FtZSBrZXkuXCIgK1xuICAgICAgICAgICAgICAgICAgcGVuZGluZ1Byb3BzXG4gICAgICAgICAgICAgICkpXG4gICAgICAgICAgICApO1xuICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICBjYXNlIFwic2NyaXB0XCI6XG4gICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgIChjdXJyZW50UHJvcHMgPSBwZW5kaW5nUHJvcHMuYXN5bmMpLFxuICAgICAgICAgICAgKHBlbmRpbmdQcm9wcyA9IHBlbmRpbmdQcm9wcy5zcmMpLFxuICAgICAgICAgICAgXCJzdHJpbmdcIiA9PT0gdHlwZW9mIHBlbmRpbmdQcm9wcyAmJlxuICAgICAgICAgICAgY3VycmVudFByb3BzICYmXG4gICAgICAgICAgICBcImZ1bmN0aW9uXCIgIT09IHR5cGVvZiBjdXJyZW50UHJvcHMgJiZcbiAgICAgICAgICAgIFwic3ltYm9sXCIgIT09IHR5cGVvZiBjdXJyZW50UHJvcHNcbiAgICAgICAgICAgICAgPyAoKHBlbmRpbmdQcm9wcyA9IGdldFNjcmlwdEtleShwZW5kaW5nUHJvcHMpKSxcbiAgICAgICAgICAgICAgICAoY3VycmVudFByb3BzID1cbiAgICAgICAgICAgICAgICAgIGdldFJlc291cmNlc0Zyb21Sb290KHJlc291cmNlUm9vdCkuaG9pc3RhYmxlU2NyaXB0cyksXG4gICAgICAgICAgICAgICAgKGN1cnJlbnRSZXNvdXJjZSA9IGN1cnJlbnRQcm9wcy5nZXQocGVuZGluZ1Byb3BzKSksXG4gICAgICAgICAgICAgICAgY3VycmVudFJlc291cmNlIHx8XG4gICAgICAgICAgICAgICAgICAoKGN1cnJlbnRSZXNvdXJjZSA9IHtcbiAgICAgICAgICAgICAgICAgICAgdHlwZTogXCJzY3JpcHRcIixcbiAgICAgICAgICAgICAgICAgICAgaW5zdGFuY2U6IG51bGwsXG4gICAgICAgICAgICAgICAgICAgIGNvdW50OiAwLFxuICAgICAgICAgICAgICAgICAgICBzdGF0ZTogbnVsbFxuICAgICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgICBjdXJyZW50UHJvcHMuc2V0KHBlbmRpbmdQcm9wcywgY3VycmVudFJlc291cmNlKSksXG4gICAgICAgICAgICAgICAgY3VycmVudFJlc291cmNlKVxuICAgICAgICAgICAgICA6IHsgdHlwZTogXCJ2b2lkXCIsIGluc3RhbmNlOiBudWxsLCBjb3VudDogMCwgc3RhdGU6IG51bGwgfVxuICAgICAgICAgICk7XG4gICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgdGhyb3cgRXJyb3IoXG4gICAgICAgICAgICAnZ2V0UmVzb3VyY2UgZW5jb3VudGVyZWQgYSB0eXBlIGl0IGRpZCBub3QgZXhwZWN0OiBcIicgK1xuICAgICAgICAgICAgICB0eXBlICtcbiAgICAgICAgICAgICAgJ1wiLiB0aGlzIGlzIGEgYnVnIGluIFJlYWN0LidcbiAgICAgICAgICApO1xuICAgICAgfVxuICAgIH1cbiAgICBmdW5jdGlvbiBkZXNjcmliZUxpbmtGb3JSZXNvdXJjZUVycm9yREVWKHByb3BzKSB7XG4gICAgICB2YXIgZGVzY3JpYmVkUHJvcHMgPSAwLFxuICAgICAgICBkZXNjcmlwdGlvbiA9IFwiPGxpbmtcIjtcbiAgICAgIFwic3RyaW5nXCIgPT09IHR5cGVvZiBwcm9wcy5yZWxcbiAgICAgICAgPyAoZGVzY3JpYmVkUHJvcHMrKywgKGRlc2NyaXB0aW9uICs9ICcgcmVsPVwiJyArIHByb3BzLnJlbCArICdcIicpKVxuICAgICAgICA6IGhhc093blByb3BlcnR5LmNhbGwocHJvcHMsIFwicmVsXCIpICYmXG4gICAgICAgICAgKGRlc2NyaWJlZFByb3BzKyssXG4gICAgICAgICAgKGRlc2NyaXB0aW9uICs9XG4gICAgICAgICAgICAnIHJlbD1cIicgK1xuICAgICAgICAgICAgKG51bGwgPT09IHByb3BzLnJlbCA/IFwibnVsbFwiIDogXCJpbnZhbGlkIHR5cGUgXCIgKyB0eXBlb2YgcHJvcHMucmVsKSArXG4gICAgICAgICAgICAnXCInKSk7XG4gICAgICBcInN0cmluZ1wiID09PSB0eXBlb2YgcHJvcHMuaHJlZlxuICAgICAgICA/IChkZXNjcmliZWRQcm9wcysrLCAoZGVzY3JpcHRpb24gKz0gJyBocmVmPVwiJyArIHByb3BzLmhyZWYgKyAnXCInKSlcbiAgICAgICAgOiBoYXNPd25Qcm9wZXJ0eS5jYWxsKHByb3BzLCBcImhyZWZcIikgJiZcbiAgICAgICAgICAoZGVzY3JpYmVkUHJvcHMrKyxcbiAgICAgICAgICAoZGVzY3JpcHRpb24gKz1cbiAgICAgICAgICAgICcgaHJlZj1cIicgK1xuICAgICAgICAgICAgKG51bGwgPT09IHByb3BzLmhyZWZcbiAgICAgICAgICAgICAgPyBcIm51bGxcIlxuICAgICAgICAgICAgICA6IFwiaW52YWxpZCB0eXBlIFwiICsgdHlwZW9mIHByb3BzLmhyZWYpICtcbiAgICAgICAgICAgICdcIicpKTtcbiAgICAgIFwic3RyaW5nXCIgPT09IHR5cGVvZiBwcm9wcy5wcmVjZWRlbmNlXG4gICAgICAgID8gKGRlc2NyaWJlZFByb3BzKyssXG4gICAgICAgICAgKGRlc2NyaXB0aW9uICs9ICcgcHJlY2VkZW5jZT1cIicgKyBwcm9wcy5wcmVjZWRlbmNlICsgJ1wiJykpXG4gICAgICAgIDogaGFzT3duUHJvcGVydHkuY2FsbChwcm9wcywgXCJwcmVjZWRlbmNlXCIpICYmXG4gICAgICAgICAgKGRlc2NyaWJlZFByb3BzKyssXG4gICAgICAgICAgKGRlc2NyaXB0aW9uICs9XG4gICAgICAgICAgICBcIiBwcmVjZWRlbmNlPXtcIiArXG4gICAgICAgICAgICAobnVsbCA9PT0gcHJvcHMucHJlY2VkZW5jZVxuICAgICAgICAgICAgICA/IFwibnVsbFwiXG4gICAgICAgICAgICAgIDogXCJpbnZhbGlkIHR5cGUgXCIgKyB0eXBlb2YgcHJvcHMucHJlY2VkZW5jZSkgK1xuICAgICAgICAgICAgXCJ9XCIpKTtcbiAgICAgIE9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzKHByb3BzKS5sZW5ndGggPiBkZXNjcmliZWRQcm9wcyAmJlxuICAgICAgICAoZGVzY3JpcHRpb24gKz0gXCIgLi4uXCIpO1xuICAgICAgcmV0dXJuIGRlc2NyaXB0aW9uICsgXCIgLz5cIjtcbiAgICB9XG4gICAgZnVuY3Rpb24gZ2V0U3R5bGVLZXkoaHJlZikge1xuICAgICAgcmV0dXJuIChcbiAgICAgICAgJ2hyZWY9XCInICsgZXNjYXBlU2VsZWN0b3JBdHRyaWJ1dGVWYWx1ZUluc2lkZURvdWJsZVF1b3RlcyhocmVmKSArICdcIidcbiAgICAgICk7XG4gICAgfVxuICAgIGZ1bmN0aW9uIGdldFN0eWxlc2hlZXRTZWxlY3RvckZyb21LZXkoa2V5KSB7XG4gICAgICByZXR1cm4gJ2xpbmtbcmVsPVwic3R5bGVzaGVldFwiXVsnICsga2V5ICsgXCJdXCI7XG4gICAgfVxuICAgIGZ1bmN0aW9uIHN0eWxlc2hlZXRQcm9wc0Zyb21SYXdQcm9wcyhyYXdQcm9wcykge1xuICAgICAgcmV0dXJuIGFzc2lnbih7fSwgcmF3UHJvcHMsIHtcbiAgICAgICAgXCJkYXRhLXByZWNlZGVuY2VcIjogcmF3UHJvcHMucHJlY2VkZW5jZSxcbiAgICAgICAgcHJlY2VkZW5jZTogbnVsbFxuICAgICAgfSk7XG4gICAgfVxuICAgIGZ1bmN0aW9uIHByZWxvYWRTdHlsZXNoZWV0KG93bmVyRG9jdW1lbnQsIGtleSwgcHJlbG9hZFByb3BzLCBzdGF0ZSkge1xuICAgICAgb3duZXJEb2N1bWVudC5xdWVyeVNlbGVjdG9yKFxuICAgICAgICAnbGlua1tyZWw9XCJwcmVsb2FkXCJdW2FzPVwic3R5bGVcIl1bJyArIGtleSArIFwiXVwiXG4gICAgICApXG4gICAgICAgID8gKHN0YXRlLmxvYWRpbmcgPSBMb2FkZWQpXG4gICAgICAgIDogKChrZXkgPSBvd25lckRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoXCJsaW5rXCIpKSxcbiAgICAgICAgICAoc3RhdGUucHJlbG9hZCA9IGtleSksXG4gICAgICAgICAga2V5LmFkZEV2ZW50TGlzdGVuZXIoXCJsb2FkXCIsIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIHJldHVybiAoc3RhdGUubG9hZGluZyB8PSBMb2FkZWQpO1xuICAgICAgICAgIH0pLFxuICAgICAgICAgIGtleS5hZGRFdmVudExpc3RlbmVyKFwiZXJyb3JcIiwgZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgcmV0dXJuIChzdGF0ZS5sb2FkaW5nIHw9IEVycm9yZWQpO1xuICAgICAgICAgIH0pLFxuICAgICAgICAgIHNldEluaXRpYWxQcm9wZXJ0aWVzKGtleSwgXCJsaW5rXCIsIHByZWxvYWRQcm9wcyksXG4gICAgICAgICAgbWFya05vZGVBc0hvaXN0YWJsZShrZXkpLFxuICAgICAgICAgIG93bmVyRG9jdW1lbnQuaGVhZC5hcHBlbmRDaGlsZChrZXkpKTtcbiAgICB9XG4gICAgZnVuY3Rpb24gZ2V0U2NyaXB0S2V5KHNyYykge1xuICAgICAgcmV0dXJuIChcbiAgICAgICAgJ1tzcmM9XCInICsgZXNjYXBlU2VsZWN0b3JBdHRyaWJ1dGVWYWx1ZUluc2lkZURvdWJsZVF1b3RlcyhzcmMpICsgJ1wiXSdcbiAgICAgICk7XG4gICAgfVxuICAgIGZ1bmN0aW9uIGdldFNjcmlwdFNlbGVjdG9yRnJvbUtleShrZXkpIHtcbiAgICAgIHJldHVybiBcInNjcmlwdFthc3luY11cIiArIGtleTtcbiAgICB9XG4gICAgZnVuY3Rpb24gYWNxdWlyZVJlc291cmNlKGhvaXN0YWJsZVJvb3QsIHJlc291cmNlLCBwcm9wcykge1xuICAgICAgcmVzb3VyY2UuY291bnQrKztcbiAgICAgIGlmIChudWxsID09PSByZXNvdXJjZS5pbnN0YW5jZSlcbiAgICAgICAgc3dpdGNoIChyZXNvdXJjZS50eXBlKSB7XG4gICAgICAgICAgY2FzZSBcInN0eWxlXCI6XG4gICAgICAgICAgICB2YXIgaW5zdGFuY2UgPSBob2lzdGFibGVSb290LnF1ZXJ5U2VsZWN0b3IoXG4gICAgICAgICAgICAgICdzdHlsZVtkYXRhLWhyZWZ+PVwiJyArXG4gICAgICAgICAgICAgICAgZXNjYXBlU2VsZWN0b3JBdHRyaWJ1dGVWYWx1ZUluc2lkZURvdWJsZVF1b3Rlcyhwcm9wcy5ocmVmKSArXG4gICAgICAgICAgICAgICAgJ1wiXSdcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgICBpZiAoaW5zdGFuY2UpXG4gICAgICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAgICAgKHJlc291cmNlLmluc3RhbmNlID0gaW5zdGFuY2UpLFxuICAgICAgICAgICAgICAgIG1hcmtOb2RlQXNIb2lzdGFibGUoaW5zdGFuY2UpLFxuICAgICAgICAgICAgICAgIGluc3RhbmNlXG4gICAgICAgICAgICAgICk7XG4gICAgICAgICAgICB2YXIgc3R5bGVQcm9wcyA9IGFzc2lnbih7fSwgcHJvcHMsIHtcbiAgICAgICAgICAgICAgXCJkYXRhLWhyZWZcIjogcHJvcHMuaHJlZixcbiAgICAgICAgICAgICAgXCJkYXRhLXByZWNlZGVuY2VcIjogcHJvcHMucHJlY2VkZW5jZSxcbiAgICAgICAgICAgICAgaHJlZjogbnVsbCxcbiAgICAgICAgICAgICAgcHJlY2VkZW5jZTogbnVsbFxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICBpbnN0YW5jZSA9IChcbiAgICAgICAgICAgICAgaG9pc3RhYmxlUm9vdC5vd25lckRvY3VtZW50IHx8IGhvaXN0YWJsZVJvb3RcbiAgICAgICAgICAgICkuY3JlYXRlRWxlbWVudChcInN0eWxlXCIpO1xuICAgICAgICAgICAgbWFya05vZGVBc0hvaXN0YWJsZShpbnN0YW5jZSk7XG4gICAgICAgICAgICBzZXRJbml0aWFsUHJvcGVydGllcyhpbnN0YW5jZSwgXCJzdHlsZVwiLCBzdHlsZVByb3BzKTtcbiAgICAgICAgICAgIGluc2VydFN0eWxlc2hlZXQoaW5zdGFuY2UsIHByb3BzLnByZWNlZGVuY2UsIGhvaXN0YWJsZVJvb3QpO1xuICAgICAgICAgICAgcmV0dXJuIChyZXNvdXJjZS5pbnN0YW5jZSA9IGluc3RhbmNlKTtcbiAgICAgICAgICBjYXNlIFwic3R5bGVzaGVldFwiOlxuICAgICAgICAgICAgc3R5bGVQcm9wcyA9IGdldFN0eWxlS2V5KHByb3BzLmhyZWYpO1xuICAgICAgICAgICAgdmFyIF9pbnN0YW5jZSA9IGhvaXN0YWJsZVJvb3QucXVlcnlTZWxlY3RvcihcbiAgICAgICAgICAgICAgZ2V0U3R5bGVzaGVldFNlbGVjdG9yRnJvbUtleShzdHlsZVByb3BzKVxuICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIGlmIChfaW5zdGFuY2UpXG4gICAgICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAgICAgKHJlc291cmNlLnN0YXRlLmxvYWRpbmcgfD0gSW5zZXJ0ZWQpLFxuICAgICAgICAgICAgICAgIChyZXNvdXJjZS5pbnN0YW5jZSA9IF9pbnN0YW5jZSksXG4gICAgICAgICAgICAgICAgbWFya05vZGVBc0hvaXN0YWJsZShfaW5zdGFuY2UpLFxuICAgICAgICAgICAgICAgIF9pbnN0YW5jZVxuICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgaW5zdGFuY2UgPSBzdHlsZXNoZWV0UHJvcHNGcm9tUmF3UHJvcHMocHJvcHMpO1xuICAgICAgICAgICAgKHN0eWxlUHJvcHMgPSBwcmVsb2FkUHJvcHNNYXAuZ2V0KHN0eWxlUHJvcHMpKSAmJlxuICAgICAgICAgICAgICBhZG9wdFByZWxvYWRQcm9wc0ZvclN0eWxlc2hlZXQoaW5zdGFuY2UsIHN0eWxlUHJvcHMpO1xuICAgICAgICAgICAgX2luc3RhbmNlID0gKFxuICAgICAgICAgICAgICBob2lzdGFibGVSb290Lm93bmVyRG9jdW1lbnQgfHwgaG9pc3RhYmxlUm9vdFxuICAgICAgICAgICAgKS5jcmVhdGVFbGVtZW50KFwibGlua1wiKTtcbiAgICAgICAgICAgIG1hcmtOb2RlQXNIb2lzdGFibGUoX2luc3RhbmNlKTtcbiAgICAgICAgICAgIHZhciBsaW5rSW5zdGFuY2UgPSBfaW5zdGFuY2U7XG4gICAgICAgICAgICBsaW5rSW5zdGFuY2UuX3AgPSBuZXcgUHJvbWlzZShmdW5jdGlvbiAocmVzb2x2ZSwgcmVqZWN0KSB7XG4gICAgICAgICAgICAgIGxpbmtJbnN0YW5jZS5vbmxvYWQgPSByZXNvbHZlO1xuICAgICAgICAgICAgICBsaW5rSW5zdGFuY2Uub25lcnJvciA9IHJlamVjdDtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgc2V0SW5pdGlhbFByb3BlcnRpZXMoX2luc3RhbmNlLCBcImxpbmtcIiwgaW5zdGFuY2UpO1xuICAgICAgICAgICAgcmVzb3VyY2Uuc3RhdGUubG9hZGluZyB8PSBJbnNlcnRlZDtcbiAgICAgICAgICAgIGluc2VydFN0eWxlc2hlZXQoX2luc3RhbmNlLCBwcm9wcy5wcmVjZWRlbmNlLCBob2lzdGFibGVSb290KTtcbiAgICAgICAgICAgIHJldHVybiAocmVzb3VyY2UuaW5zdGFuY2UgPSBfaW5zdGFuY2UpO1xuICAgICAgICAgIGNhc2UgXCJzY3JpcHRcIjpcbiAgICAgICAgICAgIF9pbnN0YW5jZSA9IGdldFNjcmlwdEtleShwcm9wcy5zcmMpO1xuICAgICAgICAgICAgaWYgKFxuICAgICAgICAgICAgICAoc3R5bGVQcm9wcyA9IGhvaXN0YWJsZVJvb3QucXVlcnlTZWxlY3RvcihcbiAgICAgICAgICAgICAgICBnZXRTY3JpcHRTZWxlY3RvckZyb21LZXkoX2luc3RhbmNlKVxuICAgICAgICAgICAgICApKVxuICAgICAgICAgICAgKVxuICAgICAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgICAgIChyZXNvdXJjZS5pbnN0YW5jZSA9IHN0eWxlUHJvcHMpLFxuICAgICAgICAgICAgICAgIG1hcmtOb2RlQXNIb2lzdGFibGUoc3R5bGVQcm9wcyksXG4gICAgICAgICAgICAgICAgc3R5bGVQcm9wc1xuICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgaW5zdGFuY2UgPSBwcm9wcztcbiAgICAgICAgICAgIGlmICgoc3R5bGVQcm9wcyA9IHByZWxvYWRQcm9wc01hcC5nZXQoX2luc3RhbmNlKSkpXG4gICAgICAgICAgICAgIChpbnN0YW5jZSA9IGFzc2lnbih7fSwgcHJvcHMpKSxcbiAgICAgICAgICAgICAgICBhZG9wdFByZWxvYWRQcm9wc0ZvclNjcmlwdChpbnN0YW5jZSwgc3R5bGVQcm9wcyk7XG4gICAgICAgICAgICBob2lzdGFibGVSb290ID0gaG9pc3RhYmxlUm9vdC5vd25lckRvY3VtZW50IHx8IGhvaXN0YWJsZVJvb3Q7XG4gICAgICAgICAgICBzdHlsZVByb3BzID0gaG9pc3RhYmxlUm9vdC5jcmVhdGVFbGVtZW50KFwic2NyaXB0XCIpO1xuICAgICAgICAgICAgbWFya05vZGVBc0hvaXN0YWJsZShzdHlsZVByb3BzKTtcbiAgICAgICAgICAgIHNldEluaXRpYWxQcm9wZXJ0aWVzKHN0eWxlUHJvcHMsIFwibGlua1wiLCBpbnN0YW5jZSk7XG4gICAgICAgICAgICBob2lzdGFibGVSb290LmhlYWQuYXBwZW5kQ2hpbGQoc3R5bGVQcm9wcyk7XG4gICAgICAgICAgICByZXR1cm4gKHJlc291cmNlLmluc3RhbmNlID0gc3R5bGVQcm9wcyk7XG4gICAgICAgICAgY2FzZSBcInZvaWRcIjpcbiAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICB0aHJvdyBFcnJvcihcbiAgICAgICAgICAgICAgJ2FjcXVpcmVSZXNvdXJjZSBlbmNvdW50ZXJlZCBhIHJlc291cmNlIHR5cGUgaXQgZGlkIG5vdCBleHBlY3Q6IFwiJyArXG4gICAgICAgICAgICAgICAgcmVzb3VyY2UudHlwZSArXG4gICAgICAgICAgICAgICAgJ1wiLiB0aGlzIGlzIGEgYnVnIGluIFJlYWN0LidcbiAgICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICAgIGVsc2VcbiAgICAgICAgXCJzdHlsZXNoZWV0XCIgPT09IHJlc291cmNlLnR5cGUgJiZcbiAgICAgICAgICAocmVzb3VyY2Uuc3RhdGUubG9hZGluZyAmIEluc2VydGVkKSA9PT0gTm90TG9hZGVkICYmXG4gICAgICAgICAgKChpbnN0YW5jZSA9IHJlc291cmNlLmluc3RhbmNlKSxcbiAgICAgICAgICAocmVzb3VyY2Uuc3RhdGUubG9hZGluZyB8PSBJbnNlcnRlZCksXG4gICAgICAgICAgaW5zZXJ0U3R5bGVzaGVldChpbnN0YW5jZSwgcHJvcHMucHJlY2VkZW5jZSwgaG9pc3RhYmxlUm9vdCkpO1xuICAgICAgcmV0dXJuIHJlc291cmNlLmluc3RhbmNlO1xuICAgIH1cbiAgICBmdW5jdGlvbiBpbnNlcnRTdHlsZXNoZWV0KGluc3RhbmNlLCBwcmVjZWRlbmNlLCByb290KSB7XG4gICAgICBmb3IgKFxuICAgICAgICB2YXIgbm9kZXMgPSByb290LnF1ZXJ5U2VsZWN0b3JBbGwoXG4gICAgICAgICAgICAnbGlua1tyZWw9XCJzdHlsZXNoZWV0XCJdW2RhdGEtcHJlY2VkZW5jZV0sc3R5bGVbZGF0YS1wcmVjZWRlbmNlXSdcbiAgICAgICAgICApLFxuICAgICAgICAgIGxhc3QgPSBub2Rlcy5sZW5ndGggPyBub2Rlc1tub2Rlcy5sZW5ndGggLSAxXSA6IG51bGwsXG4gICAgICAgICAgcHJpb3IgPSBsYXN0LFxuICAgICAgICAgIGkgPSAwO1xuICAgICAgICBpIDwgbm9kZXMubGVuZ3RoO1xuICAgICAgICBpKytcbiAgICAgICkge1xuICAgICAgICB2YXIgbm9kZSA9IG5vZGVzW2ldO1xuICAgICAgICBpZiAobm9kZS5kYXRhc2V0LnByZWNlZGVuY2UgPT09IHByZWNlZGVuY2UpIHByaW9yID0gbm9kZTtcbiAgICAgICAgZWxzZSBpZiAocHJpb3IgIT09IGxhc3QpIGJyZWFrO1xuICAgICAgfVxuICAgICAgcHJpb3JcbiAgICAgICAgPyBwcmlvci5wYXJlbnROb2RlLmluc2VydEJlZm9yZShpbnN0YW5jZSwgcHJpb3IubmV4dFNpYmxpbmcpXG4gICAgICAgIDogKChwcmVjZWRlbmNlID0gOSA9PT0gcm9vdC5ub2RlVHlwZSA/IHJvb3QuaGVhZCA6IHJvb3QpLFxuICAgICAgICAgIHByZWNlZGVuY2UuaW5zZXJ0QmVmb3JlKGluc3RhbmNlLCBwcmVjZWRlbmNlLmZpcnN0Q2hpbGQpKTtcbiAgICB9XG4gICAgZnVuY3Rpb24gYWRvcHRQcmVsb2FkUHJvcHNGb3JTdHlsZXNoZWV0KHN0eWxlc2hlZXRQcm9wcywgcHJlbG9hZFByb3BzKSB7XG4gICAgICBudWxsID09IHN0eWxlc2hlZXRQcm9wcy5jcm9zc09yaWdpbiAmJlxuICAgICAgICAoc3R5bGVzaGVldFByb3BzLmNyb3NzT3JpZ2luID0gcHJlbG9hZFByb3BzLmNyb3NzT3JpZ2luKTtcbiAgICAgIG51bGwgPT0gc3R5bGVzaGVldFByb3BzLnJlZmVycmVyUG9saWN5ICYmXG4gICAgICAgIChzdHlsZXNoZWV0UHJvcHMucmVmZXJyZXJQb2xpY3kgPSBwcmVsb2FkUHJvcHMucmVmZXJyZXJQb2xpY3kpO1xuICAgICAgbnVsbCA9PSBzdHlsZXNoZWV0UHJvcHMudGl0bGUgJiZcbiAgICAgICAgKHN0eWxlc2hlZXRQcm9wcy50aXRsZSA9IHByZWxvYWRQcm9wcy50aXRsZSk7XG4gICAgfVxuICAgIGZ1bmN0aW9uIGFkb3B0UHJlbG9hZFByb3BzRm9yU2NyaXB0KHNjcmlwdFByb3BzLCBwcmVsb2FkUHJvcHMpIHtcbiAgICAgIG51bGwgPT0gc2NyaXB0UHJvcHMuY3Jvc3NPcmlnaW4gJiZcbiAgICAgICAgKHNjcmlwdFByb3BzLmNyb3NzT3JpZ2luID0gcHJlbG9hZFByb3BzLmNyb3NzT3JpZ2luKTtcbiAgICAgIG51bGwgPT0gc2NyaXB0UHJvcHMucmVmZXJyZXJQb2xpY3kgJiZcbiAgICAgICAgKHNjcmlwdFByb3BzLnJlZmVycmVyUG9saWN5ID0gcHJlbG9hZFByb3BzLnJlZmVycmVyUG9saWN5KTtcbiAgICAgIG51bGwgPT0gc2NyaXB0UHJvcHMuaW50ZWdyaXR5ICYmXG4gICAgICAgIChzY3JpcHRQcm9wcy5pbnRlZ3JpdHkgPSBwcmVsb2FkUHJvcHMuaW50ZWdyaXR5KTtcbiAgICB9XG4gICAgZnVuY3Rpb24gZ2V0SHlkcmF0YWJsZUhvaXN0YWJsZUNhY2hlKHR5cGUsIGtleUF0dHJpYnV0ZSwgb3duZXJEb2N1bWVudCkge1xuICAgICAgaWYgKG51bGwgPT09IHRhZ0NhY2hlcykge1xuICAgICAgICB2YXIgY2FjaGUgPSBuZXcgTWFwKCk7XG4gICAgICAgIHZhciBjYWNoZXMgPSAodGFnQ2FjaGVzID0gbmV3IE1hcCgpKTtcbiAgICAgICAgY2FjaGVzLnNldChvd25lckRvY3VtZW50LCBjYWNoZSk7XG4gICAgICB9IGVsc2VcbiAgICAgICAgKGNhY2hlcyA9IHRhZ0NhY2hlcyksXG4gICAgICAgICAgKGNhY2hlID0gY2FjaGVzLmdldChvd25lckRvY3VtZW50KSksXG4gICAgICAgICAgY2FjaGUgfHwgKChjYWNoZSA9IG5ldyBNYXAoKSksIGNhY2hlcy5zZXQob3duZXJEb2N1bWVudCwgY2FjaGUpKTtcbiAgICAgIGlmIChjYWNoZS5oYXModHlwZSkpIHJldHVybiBjYWNoZTtcbiAgICAgIGNhY2hlLnNldCh0eXBlLCBudWxsKTtcbiAgICAgIG93bmVyRG9jdW1lbnQgPSBvd25lckRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKHR5cGUpO1xuICAgICAgZm9yIChjYWNoZXMgPSAwOyBjYWNoZXMgPCBvd25lckRvY3VtZW50Lmxlbmd0aDsgY2FjaGVzKyspIHtcbiAgICAgICAgdmFyIG5vZGUgPSBvd25lckRvY3VtZW50W2NhY2hlc107XG4gICAgICAgIGlmIChcbiAgICAgICAgICAhKFxuICAgICAgICAgICAgbm9kZVtpbnRlcm5hbEhvaXN0YWJsZU1hcmtlcl0gfHxcbiAgICAgICAgICAgIG5vZGVbaW50ZXJuYWxJbnN0YW5jZUtleV0gfHxcbiAgICAgICAgICAgIChcImxpbmtcIiA9PT0gdHlwZSAmJiBcInN0eWxlc2hlZXRcIiA9PT0gbm9kZS5nZXRBdHRyaWJ1dGUoXCJyZWxcIikpXG4gICAgICAgICAgKSAmJlxuICAgICAgICAgIG5vZGUubmFtZXNwYWNlVVJJICE9PSBTVkdfTkFNRVNQQUNFXG4gICAgICAgICkge1xuICAgICAgICAgIHZhciBub2RlS2V5ID0gbm9kZS5nZXRBdHRyaWJ1dGUoa2V5QXR0cmlidXRlKSB8fCBcIlwiO1xuICAgICAgICAgIG5vZGVLZXkgPSB0eXBlICsgbm9kZUtleTtcbiAgICAgICAgICB2YXIgZXhpc3RpbmcgPSBjYWNoZS5nZXQobm9kZUtleSk7XG4gICAgICAgICAgZXhpc3RpbmcgPyBleGlzdGluZy5wdXNoKG5vZGUpIDogY2FjaGUuc2V0KG5vZGVLZXksIFtub2RlXSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIHJldHVybiBjYWNoZTtcbiAgICB9XG4gICAgZnVuY3Rpb24gbW91bnRIb2lzdGFibGUoaG9pc3RhYmxlUm9vdCwgdHlwZSwgaW5zdGFuY2UpIHtcbiAgICAgIGhvaXN0YWJsZVJvb3QgPSBob2lzdGFibGVSb290Lm93bmVyRG9jdW1lbnQgfHwgaG9pc3RhYmxlUm9vdDtcbiAgICAgIGhvaXN0YWJsZVJvb3QuaGVhZC5pbnNlcnRCZWZvcmUoXG4gICAgICAgIGluc3RhbmNlLFxuICAgICAgICBcInRpdGxlXCIgPT09IHR5cGUgPyBob2lzdGFibGVSb290LnF1ZXJ5U2VsZWN0b3IoXCJoZWFkID4gdGl0bGVcIikgOiBudWxsXG4gICAgICApO1xuICAgIH1cbiAgICBmdW5jdGlvbiBpc0hvc3RIb2lzdGFibGVUeXBlKHR5cGUsIHByb3BzLCBob3N0Q29udGV4dCkge1xuICAgICAgdmFyIG91dHNpZGVIb3N0Q29udGFpbmVyQ29udGV4dCA9XG4gICAgICAgICFob3N0Q29udGV4dC5hbmNlc3RvckluZm8uY29udGFpbmVyVGFnSW5TY29wZTtcbiAgICAgIGlmIChcbiAgICAgICAgaG9zdENvbnRleHQuY29udGV4dCA9PT0gSG9zdENvbnRleHROYW1lc3BhY2VTdmcgfHxcbiAgICAgICAgbnVsbCAhPSBwcm9wcy5pdGVtUHJvcFxuICAgICAgKVxuICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICFvdXRzaWRlSG9zdENvbnRhaW5lckNvbnRleHQgfHxcbiAgICAgICAgICAgIG51bGwgPT0gcHJvcHMuaXRlbVByb3AgfHxcbiAgICAgICAgICAgIChcIm1ldGFcIiAhPT0gdHlwZSAmJlxuICAgICAgICAgICAgICBcInRpdGxlXCIgIT09IHR5cGUgJiZcbiAgICAgICAgICAgICAgXCJzdHlsZVwiICE9PSB0eXBlICYmXG4gICAgICAgICAgICAgIFwibGlua1wiICE9PSB0eXBlICYmXG4gICAgICAgICAgICAgIFwic2NyaXB0XCIgIT09IHR5cGUpIHx8XG4gICAgICAgICAgICBjb25zb2xlLmVycm9yKFxuICAgICAgICAgICAgICBcIkNhbm5vdCByZW5kZXIgYSA8JXM+IG91dHNpZGUgdGhlIG1haW4gZG9jdW1lbnQgaWYgaXQgaGFzIGFuIGBpdGVtUHJvcGAgcHJvcC4gYGl0ZW1Qcm9wYCBzdWdnZXN0cyB0aGUgdGFnIGJlbG9uZ3MgdG8gYW4gYGl0ZW1TY29wZWAgd2hpY2ggY2FuIGFwcGVhciBhbnl3aGVyZSBpbiB0aGUgRE9NLiBJZiB5b3Ugd2VyZSBpbnRlbmRpbmcgZm9yIFJlYWN0IHRvIGhvaXN0IHRoaXMgPCVzPiByZW1vdmUgdGhlIGBpdGVtUHJvcGAgcHJvcC4gT3RoZXJ3aXNlLCB0cnkgbW92aW5nIHRoaXMgdGFnIGludG8gdGhlIDxoZWFkPiBvciA8Ym9keT4gb2YgdGhlIERvY3VtZW50LlwiLFxuICAgICAgICAgICAgICB0eXBlLFxuICAgICAgICAgICAgICB0eXBlXG4gICAgICAgICAgICApLFxuICAgICAgICAgICExXG4gICAgICAgICk7XG4gICAgICBzd2l0Y2ggKHR5cGUpIHtcbiAgICAgICAgY2FzZSBcIm1ldGFcIjpcbiAgICAgICAgY2FzZSBcInRpdGxlXCI6XG4gICAgICAgICAgcmV0dXJuICEwO1xuICAgICAgICBjYXNlIFwic3R5bGVcIjpcbiAgICAgICAgICBpZiAoXG4gICAgICAgICAgICBcInN0cmluZ1wiICE9PSB0eXBlb2YgcHJvcHMucHJlY2VkZW5jZSB8fFxuICAgICAgICAgICAgXCJzdHJpbmdcIiAhPT0gdHlwZW9mIHByb3BzLmhyZWYgfHxcbiAgICAgICAgICAgIFwiXCIgPT09IHByb3BzLmhyZWZcbiAgICAgICAgICApIHtcbiAgICAgICAgICAgIG91dHNpZGVIb3N0Q29udGFpbmVyQ29udGV4dCAmJlxuICAgICAgICAgICAgICBjb25zb2xlLmVycm9yKFxuICAgICAgICAgICAgICAgICdDYW5ub3QgcmVuZGVyIGEgPHN0eWxlPiBvdXRzaWRlIHRoZSBtYWluIGRvY3VtZW50IHdpdGhvdXQga25vd2luZyBpdHMgcHJlY2VkZW5jZSBhbmQgYSB1bmlxdWUgaHJlZiBrZXkuIFJlYWN0IGNhbiBob2lzdCBhbmQgZGVkdXBsaWNhdGUgPHN0eWxlPiB0YWdzIGlmIHlvdSBwcm92aWRlIGEgYHByZWNlZGVuY2VgIHByb3AgYWxvbmcgd2l0aCBhbiBgaHJlZmAgcHJvcCB0aGF0IGRvZXMgbm90IGNvbmZsaWN0IHdpdGggdGhlIGBocmVmYCB2YWx1ZXMgdXNlZCBpbiBhbnkgb3RoZXIgaG9pc3RlZCA8c3R5bGU+IG9yIDxsaW5rIHJlbD1cInN0eWxlc2hlZXRcIiAuLi4+IHRhZ3MuICBOb3RlIHRoYXQgaG9pc3RpbmcgPHN0eWxlPiB0YWdzIGlzIGNvbnNpZGVyZWQgYW4gYWR2YW5jZWQgZmVhdHVyZSB0aGF0IG1vc3Qgd2lsbCBub3QgdXNlIGRpcmVjdGx5LiBDb25zaWRlciBtb3ZpbmcgdGhlIDxzdHlsZT4gdGFnIHRvIHRoZSA8aGVhZD4gb3IgY29uc2lkZXIgYWRkaW5nIGEgYHByZWNlZGVuY2U9XCJkZWZhdWx0XCJgIGFuZCBgaHJlZj1cInNvbWUgdW5pcXVlIHJlc291cmNlIGlkZW50aWZpZXJcImAuJ1xuICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgfVxuICAgICAgICAgIHJldHVybiAhMDtcbiAgICAgICAgY2FzZSBcImxpbmtcIjpcbiAgICAgICAgICBpZiAoXG4gICAgICAgICAgICBcInN0cmluZ1wiICE9PSB0eXBlb2YgcHJvcHMucmVsIHx8XG4gICAgICAgICAgICBcInN0cmluZ1wiICE9PSB0eXBlb2YgcHJvcHMuaHJlZiB8fFxuICAgICAgICAgICAgXCJcIiA9PT0gcHJvcHMuaHJlZiB8fFxuICAgICAgICAgICAgcHJvcHMub25Mb2FkIHx8XG4gICAgICAgICAgICBwcm9wcy5vbkVycm9yXG4gICAgICAgICAgKSB7XG4gICAgICAgICAgICBpZiAoXG4gICAgICAgICAgICAgIFwic3R5bGVzaGVldFwiID09PSBwcm9wcy5yZWwgJiZcbiAgICAgICAgICAgICAgXCJzdHJpbmdcIiA9PT0gdHlwZW9mIHByb3BzLnByZWNlZGVuY2VcbiAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICB0eXBlID0gcHJvcHMuaHJlZjtcbiAgICAgICAgICAgICAgdmFyIG9uRXJyb3IgPSBwcm9wcy5vbkVycm9yLFxuICAgICAgICAgICAgICAgIGRpc2FibGVkID0gcHJvcHMuZGlzYWJsZWQ7XG4gICAgICAgICAgICAgIGhvc3RDb250ZXh0ID0gW107XG4gICAgICAgICAgICAgIHByb3BzLm9uTG9hZCAmJiBob3N0Q29udGV4dC5wdXNoKFwiYG9uTG9hZGBcIik7XG4gICAgICAgICAgICAgIG9uRXJyb3IgJiYgaG9zdENvbnRleHQucHVzaChcImBvbkVycm9yYFwiKTtcbiAgICAgICAgICAgICAgbnVsbCAhPSBkaXNhYmxlZCAmJiBob3N0Q29udGV4dC5wdXNoKFwiYGRpc2FibGVkYFwiKTtcbiAgICAgICAgICAgICAgb25FcnJvciA9IHByb3BOYW1lc0xpc3RKb2luKGhvc3RDb250ZXh0LCBcImFuZFwiKTtcbiAgICAgICAgICAgICAgb25FcnJvciArPSAxID09PSBob3N0Q29udGV4dC5sZW5ndGggPyBcIiBwcm9wXCIgOiBcIiBwcm9wc1wiO1xuICAgICAgICAgICAgICBkaXNhYmxlZCA9XG4gICAgICAgICAgICAgICAgMSA9PT0gaG9zdENvbnRleHQubGVuZ3RoID8gXCJhbiBcIiArIG9uRXJyb3IgOiBcInRoZSBcIiArIG9uRXJyb3I7XG4gICAgICAgICAgICAgIGhvc3RDb250ZXh0Lmxlbmd0aCAmJlxuICAgICAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoXG4gICAgICAgICAgICAgICAgICAnUmVhY3QgZW5jb3VudGVyZWQgYSA8bGluayByZWw9XCJzdHlsZXNoZWV0XCIgaHJlZj1cIiVzXCIgLi4uIC8+IHdpdGggYSBgcHJlY2VkZW5jZWAgcHJvcCB0aGF0IGFsc28gaW5jbHVkZWQgJXMuIFRoZSBwcmVzZW5jZSBvZiBsb2FkaW5nIGFuZCBlcnJvciBoYW5kbGVycyBpbmRpY2F0ZXMgYW4gaW50ZW50IHRvIG1hbmFnZSB0aGUgc3R5bGVzaGVldCBsb2FkaW5nIHN0YXRlIGZyb20geW91ciBmcm9tIHlvdXIgQ29tcG9uZW50IGNvZGUgYW5kIFJlYWN0IHdpbGwgbm90IGhvaXN0IG9yIGRlZHVwbGljYXRlIHRoaXMgc3R5bGVzaGVldC4gSWYgeW91ciBpbnRlbnQgd2FzIHRvIGhhdmUgUmVhY3QgaG9pc3QgYW5kIGRlZHVwbGNpYXRlIHRoaXMgc3R5bGVzaGVldCB1c2luZyB0aGUgYHByZWNlZGVuY2VgIHByb3AgcmVtb3ZlIHRoZSAlcywgb3RoZXJ3aXNlIHJlbW92ZSB0aGUgYHByZWNlZGVuY2VgIHByb3AuJyxcbiAgICAgICAgICAgICAgICAgIHR5cGUsXG4gICAgICAgICAgICAgICAgICBkaXNhYmxlZCxcbiAgICAgICAgICAgICAgICAgIG9uRXJyb3JcbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgb3V0c2lkZUhvc3RDb250YWluZXJDb250ZXh0ICYmXG4gICAgICAgICAgICAgIChcInN0cmluZ1wiICE9PSB0eXBlb2YgcHJvcHMucmVsIHx8XG4gICAgICAgICAgICAgIFwic3RyaW5nXCIgIT09IHR5cGVvZiBwcm9wcy5ocmVmIHx8XG4gICAgICAgICAgICAgIFwiXCIgPT09IHByb3BzLmhyZWZcbiAgICAgICAgICAgICAgICA/IGNvbnNvbGUuZXJyb3IoXG4gICAgICAgICAgICAgICAgICAgIFwiQ2Fubm90IHJlbmRlciBhIDxsaW5rPiBvdXRzaWRlIHRoZSBtYWluIGRvY3VtZW50IHdpdGhvdXQgYSBgcmVsYCBhbmQgYGhyZWZgIHByb3AuIFRyeSBhZGRpbmcgYSBgcmVsYCBhbmQvb3IgYGhyZWZgIHByb3AgdG8gdGhpcyA8bGluaz4gb3IgbW92aW5nIHRoZSBsaW5rIGludG8gdGhlIDxoZWFkPiB0YWdcIlxuICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgIDogKHByb3BzLm9uRXJyb3IgfHwgcHJvcHMub25Mb2FkKSAmJlxuICAgICAgICAgICAgICAgICAgY29uc29sZS5lcnJvcihcbiAgICAgICAgICAgICAgICAgICAgXCJDYW5ub3QgcmVuZGVyIGEgPGxpbms+IHdpdGggb25Mb2FkIG9yIG9uRXJyb3IgbGlzdGVuZXJzIG91dHNpZGUgdGhlIG1haW4gZG9jdW1lbnQuIFRyeSByZW1vdmluZyBvbkxvYWQ9ey4uLn0gYW5kIG9uRXJyb3I9ey4uLn0gb3IgbW92aW5nIGl0IGludG8gdGhlIHJvb3QgPGhlYWQ+IHRhZyBvciBzb21ld2hlcmUgaW4gdGhlIDxib2R5Pi5cIlxuICAgICAgICAgICAgICAgICAgKSk7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICB9XG4gICAgICAgICAgc3dpdGNoIChwcm9wcy5yZWwpIHtcbiAgICAgICAgICAgIGNhc2UgXCJzdHlsZXNoZWV0XCI6XG4gICAgICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAgICAgKHR5cGUgPSBwcm9wcy5wcmVjZWRlbmNlKSxcbiAgICAgICAgICAgICAgICAocHJvcHMgPSBwcm9wcy5kaXNhYmxlZCksXG4gICAgICAgICAgICAgICAgXCJzdHJpbmdcIiAhPT0gdHlwZW9mIHR5cGUgJiZcbiAgICAgICAgICAgICAgICAgIG91dHNpZGVIb3N0Q29udGFpbmVyQ29udGV4dCAmJlxuICAgICAgICAgICAgICAgICAgY29uc29sZS5lcnJvcihcbiAgICAgICAgICAgICAgICAgICAgJ0Nhbm5vdCByZW5kZXIgYSA8bGluayByZWw9XCJzdHlsZXNoZWV0XCIgLz4gb3V0c2lkZSB0aGUgbWFpbiBkb2N1bWVudCB3aXRob3V0IGtub3dpbmcgaXRzIHByZWNlZGVuY2UuIENvbnNpZGVyIGFkZGluZyBwcmVjZWRlbmNlPVwiZGVmYXVsdFwiIG9yIG1vdmluZyBpdCBpbnRvIHRoZSByb290IDxoZWFkPiB0YWcuJ1xuICAgICAgICAgICAgICAgICAgKSxcbiAgICAgICAgICAgICAgICBcInN0cmluZ1wiID09PSB0eXBlb2YgdHlwZSAmJiBudWxsID09IHByb3BzXG4gICAgICAgICAgICAgICk7XG4gICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICByZXR1cm4gITA7XG4gICAgICAgICAgfVxuICAgICAgICBjYXNlIFwic2NyaXB0XCI6XG4gICAgICAgICAgdHlwZSA9XG4gICAgICAgICAgICBwcm9wcy5hc3luYyAmJlxuICAgICAgICAgICAgXCJmdW5jdGlvblwiICE9PSB0eXBlb2YgcHJvcHMuYXN5bmMgJiZcbiAgICAgICAgICAgIFwic3ltYm9sXCIgIT09IHR5cGVvZiBwcm9wcy5hc3luYztcbiAgICAgICAgICBpZiAoXG4gICAgICAgICAgICAhdHlwZSB8fFxuICAgICAgICAgICAgcHJvcHMub25Mb2FkIHx8XG4gICAgICAgICAgICBwcm9wcy5vbkVycm9yIHx8XG4gICAgICAgICAgICAhcHJvcHMuc3JjIHx8XG4gICAgICAgICAgICBcInN0cmluZ1wiICE9PSB0eXBlb2YgcHJvcHMuc3JjXG4gICAgICAgICAgKSB7XG4gICAgICAgICAgICBvdXRzaWRlSG9zdENvbnRhaW5lckNvbnRleHQgJiZcbiAgICAgICAgICAgICAgKHR5cGVcbiAgICAgICAgICAgICAgICA/IHByb3BzLm9uTG9hZCB8fCBwcm9wcy5vbkVycm9yXG4gICAgICAgICAgICAgICAgICA/IGNvbnNvbGUuZXJyb3IoXG4gICAgICAgICAgICAgICAgICAgICAgXCJDYW5ub3QgcmVuZGVyIGEgPHNjcmlwdD4gd2l0aCBvbkxvYWQgb3Igb25FcnJvciBsaXN0ZW5lcnMgb3V0c2lkZSB0aGUgbWFpbiBkb2N1bWVudC4gVHJ5IHJlbW92aW5nIG9uTG9hZD17Li4ufSBhbmQgb25FcnJvcj17Li4ufSBvciBtb3ZpbmcgaXQgaW50byB0aGUgcm9vdCA8aGVhZD4gdGFnIG9yIHNvbWV3aGVyZSBpbiB0aGUgPGJvZHk+LlwiXG4gICAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICAgIDogY29uc29sZS5lcnJvcihcbiAgICAgICAgICAgICAgICAgICAgICBcIkNhbm5vdCByZW5kZXIgYSA8c2NyaXB0PiBvdXRzaWRlIHRoZSBtYWluIGRvY3VtZW50IHdpdGhvdXQgYGFzeW5jPXt0cnVlfWAgYW5kIGEgbm9uLWVtcHR5IGBzcmNgIHByb3AuIEVuc3VyZSB0aGVyZSBpcyBhIHZhbGlkIGBzcmNgIGFuZCBlaXRoZXIgbWFrZSB0aGUgc2NyaXB0IGFzeW5jIG9yIG1vdmUgaXQgaW50byB0aGUgcm9vdCA8aGVhZD4gdGFnIG9yIHNvbWV3aGVyZSBpbiB0aGUgPGJvZHk+LlwiXG4gICAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICA6IGNvbnNvbGUuZXJyb3IoXG4gICAgICAgICAgICAgICAgICAgICdDYW5ub3QgcmVuZGVyIGEgc3luYyBvciBkZWZlciA8c2NyaXB0PiBvdXRzaWRlIHRoZSBtYWluIGRvY3VtZW50IHdpdGhvdXQga25vd2luZyBpdHMgb3JkZXIuIFRyeSBhZGRpbmcgYXN5bmM9XCJcIiBvciBtb3ZpbmcgaXQgaW50byB0aGUgcm9vdCA8aGVhZD4gdGFnLidcbiAgICAgICAgICAgICAgICAgICkpO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgfVxuICAgICAgICAgIHJldHVybiAhMDtcbiAgICAgICAgY2FzZSBcIm5vc2NyaXB0XCI6XG4gICAgICAgIGNhc2UgXCJ0ZW1wbGF0ZVwiOlxuICAgICAgICAgIG91dHNpZGVIb3N0Q29udGFpbmVyQ29udGV4dCAmJlxuICAgICAgICAgICAgY29uc29sZS5lcnJvcihcbiAgICAgICAgICAgICAgXCJDYW5ub3QgcmVuZGVyIDwlcz4gb3V0c2lkZSB0aGUgbWFpbiBkb2N1bWVudC4gVHJ5IG1vdmluZyBpdCBpbnRvIHRoZSByb290IDxoZWFkPiB0YWcuXCIsXG4gICAgICAgICAgICAgIHR5cGVcbiAgICAgICAgICAgICk7XG4gICAgICB9XG4gICAgICByZXR1cm4gITE7XG4gICAgfVxuICAgIGZ1bmN0aW9uIHByZWxvYWRSZXNvdXJjZShyZXNvdXJjZSkge1xuICAgICAgcmV0dXJuIFwic3R5bGVzaGVldFwiID09PSByZXNvdXJjZS50eXBlICYmXG4gICAgICAgIChyZXNvdXJjZS5zdGF0ZS5sb2FkaW5nICYgU2V0dGxlZCkgPT09IE5vdExvYWRlZFxuICAgICAgICA/ICExXG4gICAgICAgIDogITA7XG4gICAgfVxuICAgIGZ1bmN0aW9uIG5vb3AoKSB7fVxuICAgIGZ1bmN0aW9uIHN1c3BlbmRSZXNvdXJjZShob2lzdGFibGVSb290LCByZXNvdXJjZSwgcHJvcHMpIHtcbiAgICAgIGlmIChudWxsID09PSBzdXNwZW5kZWRTdGF0ZSlcbiAgICAgICAgdGhyb3cgRXJyb3IoXG4gICAgICAgICAgXCJJbnRlcm5hbCBSZWFjdCBFcnJvcjogc3VzcGVuZGVkU3RhdGUgbnVsbCB3aGVuIGl0IHdhcyBleHBlY3RlZCB0byBleGlzdHMuIFBsZWFzZSByZXBvcnQgdGhpcyBhcyBhIFJlYWN0IGJ1Zy5cIlxuICAgICAgICApO1xuICAgICAgdmFyIHN0YXRlID0gc3VzcGVuZGVkU3RhdGU7XG4gICAgICBpZiAoXG4gICAgICAgIFwic3R5bGVzaGVldFwiID09PSByZXNvdXJjZS50eXBlICYmXG4gICAgICAgIChcInN0cmluZ1wiICE9PSB0eXBlb2YgcHJvcHMubWVkaWEgfHxcbiAgICAgICAgICAhMSAhPT0gbWF0Y2hNZWRpYShwcm9wcy5tZWRpYSkubWF0Y2hlcykgJiZcbiAgICAgICAgKHJlc291cmNlLnN0YXRlLmxvYWRpbmcgJiBJbnNlcnRlZCkgPT09IE5vdExvYWRlZFxuICAgICAgKSB7XG4gICAgICAgIGlmIChudWxsID09PSByZXNvdXJjZS5pbnN0YW5jZSkge1xuICAgICAgICAgIHZhciBrZXkgPSBnZXRTdHlsZUtleShwcm9wcy5ocmVmKSxcbiAgICAgICAgICAgIGluc3RhbmNlID0gaG9pc3RhYmxlUm9vdC5xdWVyeVNlbGVjdG9yKFxuICAgICAgICAgICAgICBnZXRTdHlsZXNoZWV0U2VsZWN0b3JGcm9tS2V5KGtleSlcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgaWYgKGluc3RhbmNlKSB7XG4gICAgICAgICAgICBob2lzdGFibGVSb290ID0gaW5zdGFuY2UuX3A7XG4gICAgICAgICAgICBudWxsICE9PSBob2lzdGFibGVSb290ICYmXG4gICAgICAgICAgICAgIFwib2JqZWN0XCIgPT09IHR5cGVvZiBob2lzdGFibGVSb290ICYmXG4gICAgICAgICAgICAgIFwiZnVuY3Rpb25cIiA9PT0gdHlwZW9mIGhvaXN0YWJsZVJvb3QudGhlbiAmJlxuICAgICAgICAgICAgICAoc3RhdGUuY291bnQrKyxcbiAgICAgICAgICAgICAgKHN0YXRlID0gb25VbnN1c3BlbmQuYmluZChzdGF0ZSkpLFxuICAgICAgICAgICAgICBob2lzdGFibGVSb290LnRoZW4oc3RhdGUsIHN0YXRlKSk7XG4gICAgICAgICAgICByZXNvdXJjZS5zdGF0ZS5sb2FkaW5nIHw9IEluc2VydGVkO1xuICAgICAgICAgICAgcmVzb3VyY2UuaW5zdGFuY2UgPSBpbnN0YW5jZTtcbiAgICAgICAgICAgIG1hcmtOb2RlQXNIb2lzdGFibGUoaW5zdGFuY2UpO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgIH1cbiAgICAgICAgICBpbnN0YW5jZSA9IGhvaXN0YWJsZVJvb3Qub3duZXJEb2N1bWVudCB8fCBob2lzdGFibGVSb290O1xuICAgICAgICAgIHByb3BzID0gc3R5bGVzaGVldFByb3BzRnJvbVJhd1Byb3BzKHByb3BzKTtcbiAgICAgICAgICAoa2V5ID0gcHJlbG9hZFByb3BzTWFwLmdldChrZXkpKSAmJlxuICAgICAgICAgICAgYWRvcHRQcmVsb2FkUHJvcHNGb3JTdHlsZXNoZWV0KHByb3BzLCBrZXkpO1xuICAgICAgICAgIGluc3RhbmNlID0gaW5zdGFuY2UuY3JlYXRlRWxlbWVudChcImxpbmtcIik7XG4gICAgICAgICAgbWFya05vZGVBc0hvaXN0YWJsZShpbnN0YW5jZSk7XG4gICAgICAgICAgdmFyIGxpbmtJbnN0YW5jZSA9IGluc3RhbmNlO1xuICAgICAgICAgIGxpbmtJbnN0YW5jZS5fcCA9IG5ldyBQcm9taXNlKGZ1bmN0aW9uIChyZXNvbHZlLCByZWplY3QpIHtcbiAgICAgICAgICAgIGxpbmtJbnN0YW5jZS5vbmxvYWQgPSByZXNvbHZlO1xuICAgICAgICAgICAgbGlua0luc3RhbmNlLm9uZXJyb3IgPSByZWplY3Q7XG4gICAgICAgICAgfSk7XG4gICAgICAgICAgc2V0SW5pdGlhbFByb3BlcnRpZXMoaW5zdGFuY2UsIFwibGlua1wiLCBwcm9wcyk7XG4gICAgICAgICAgcmVzb3VyY2UuaW5zdGFuY2UgPSBpbnN0YW5jZTtcbiAgICAgICAgfVxuICAgICAgICBudWxsID09PSBzdGF0ZS5zdHlsZXNoZWV0cyAmJiAoc3RhdGUuc3R5bGVzaGVldHMgPSBuZXcgTWFwKCkpO1xuICAgICAgICBzdGF0ZS5zdHlsZXNoZWV0cy5zZXQocmVzb3VyY2UsIGhvaXN0YWJsZVJvb3QpO1xuICAgICAgICAoaG9pc3RhYmxlUm9vdCA9IHJlc291cmNlLnN0YXRlLnByZWxvYWQpICYmXG4gICAgICAgICAgKHJlc291cmNlLnN0YXRlLmxvYWRpbmcgJiBTZXR0bGVkKSA9PT0gTm90TG9hZGVkICYmXG4gICAgICAgICAgKHN0YXRlLmNvdW50KyssXG4gICAgICAgICAgKHJlc291cmNlID0gb25VbnN1c3BlbmQuYmluZChzdGF0ZSkpLFxuICAgICAgICAgIGhvaXN0YWJsZVJvb3QuYWRkRXZlbnRMaXN0ZW5lcihcImxvYWRcIiwgcmVzb3VyY2UpLFxuICAgICAgICAgIGhvaXN0YWJsZVJvb3QuYWRkRXZlbnRMaXN0ZW5lcihcImVycm9yXCIsIHJlc291cmNlKSk7XG4gICAgICB9XG4gICAgfVxuICAgIGZ1bmN0aW9uIHdhaXRGb3JDb21taXRUb0JlUmVhZHkoKSB7XG4gICAgICBpZiAobnVsbCA9PT0gc3VzcGVuZGVkU3RhdGUpXG4gICAgICAgIHRocm93IEVycm9yKFxuICAgICAgICAgIFwiSW50ZXJuYWwgUmVhY3QgRXJyb3I6IHN1c3BlbmRlZFN0YXRlIG51bGwgd2hlbiBpdCB3YXMgZXhwZWN0ZWQgdG8gZXhpc3RzLiBQbGVhc2UgcmVwb3J0IHRoaXMgYXMgYSBSZWFjdCBidWcuXCJcbiAgICAgICAgKTtcbiAgICAgIHZhciBzdGF0ZSA9IHN1c3BlbmRlZFN0YXRlO1xuICAgICAgc3RhdGUuc3R5bGVzaGVldHMgJiZcbiAgICAgICAgMCA9PT0gc3RhdGUuY291bnQgJiZcbiAgICAgICAgaW5zZXJ0U3VzcGVuZGVkU3R5bGVzaGVldHMoc3RhdGUsIHN0YXRlLnN0eWxlc2hlZXRzKTtcbiAgICAgIHJldHVybiAwIDwgc3RhdGUuY291bnRcbiAgICAgICAgPyBmdW5jdGlvbiAoY29tbWl0KSB7XG4gICAgICAgICAgICB2YXIgc3R5bGVzaGVldFRpbWVyID0gc2V0VGltZW91dChmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgIHN0YXRlLnN0eWxlc2hlZXRzICYmXG4gICAgICAgICAgICAgICAgaW5zZXJ0U3VzcGVuZGVkU3R5bGVzaGVldHMoc3RhdGUsIHN0YXRlLnN0eWxlc2hlZXRzKTtcbiAgICAgICAgICAgICAgaWYgKHN0YXRlLnVuc3VzcGVuZCkge1xuICAgICAgICAgICAgICAgIHZhciB1bnN1c3BlbmQgPSBzdGF0ZS51bnN1c3BlbmQ7XG4gICAgICAgICAgICAgICAgc3RhdGUudW5zdXNwZW5kID0gbnVsbDtcbiAgICAgICAgICAgICAgICB1bnN1c3BlbmQoKTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSwgNmU0KTtcbiAgICAgICAgICAgIHN0YXRlLnVuc3VzcGVuZCA9IGNvbW1pdDtcbiAgICAgICAgICAgIHJldHVybiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgIHN0YXRlLnVuc3VzcGVuZCA9IG51bGw7XG4gICAgICAgICAgICAgIGNsZWFyVGltZW91dChzdHlsZXNoZWV0VGltZXIpO1xuICAgICAgICAgICAgfTtcbiAgICAgICAgICB9XG4gICAgICAgIDogbnVsbDtcbiAgICB9XG4gICAgZnVuY3Rpb24gb25VbnN1c3BlbmQoKSB7XG4gICAgICB0aGlzLmNvdW50LS07XG4gICAgICBpZiAoMCA9PT0gdGhpcy5jb3VudClcbiAgICAgICAgaWYgKHRoaXMuc3R5bGVzaGVldHMpXG4gICAgICAgICAgaW5zZXJ0U3VzcGVuZGVkU3R5bGVzaGVldHModGhpcywgdGhpcy5zdHlsZXNoZWV0cyk7XG4gICAgICAgIGVsc2UgaWYgKHRoaXMudW5zdXNwZW5kKSB7XG4gICAgICAgICAgdmFyIHVuc3VzcGVuZCA9IHRoaXMudW5zdXNwZW5kO1xuICAgICAgICAgIHRoaXMudW5zdXNwZW5kID0gbnVsbDtcbiAgICAgICAgICB1bnN1c3BlbmQoKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBmdW5jdGlvbiBpbnNlcnRTdXNwZW5kZWRTdHlsZXNoZWV0cyhzdGF0ZSwgcmVzb3VyY2VzKSB7XG4gICAgICBzdGF0ZS5zdHlsZXNoZWV0cyA9IG51bGw7XG4gICAgICBudWxsICE9PSBzdGF0ZS51bnN1c3BlbmQgJiZcbiAgICAgICAgKHN0YXRlLmNvdW50KyssXG4gICAgICAgIChwcmVjZWRlbmNlc0J5Um9vdCA9IG5ldyBNYXAoKSksXG4gICAgICAgIHJlc291cmNlcy5mb3JFYWNoKGluc2VydFN0eWxlc2hlZXRJbnRvUm9vdCwgc3RhdGUpLFxuICAgICAgICAocHJlY2VkZW5jZXNCeVJvb3QgPSBudWxsKSxcbiAgICAgICAgb25VbnN1c3BlbmQuY2FsbChzdGF0ZSkpO1xuICAgIH1cbiAgICBmdW5jdGlvbiBpbnNlcnRTdHlsZXNoZWV0SW50b1Jvb3Qocm9vdCwgcmVzb3VyY2UpIHtcbiAgICAgIGlmICghKHJlc291cmNlLnN0YXRlLmxvYWRpbmcgJiBJbnNlcnRlZCkpIHtcbiAgICAgICAgdmFyIHByZWNlZGVuY2VzID0gcHJlY2VkZW5jZXNCeVJvb3QuZ2V0KHJvb3QpO1xuICAgICAgICBpZiAocHJlY2VkZW5jZXMpIHZhciBsYXN0ID0gcHJlY2VkZW5jZXMuZ2V0KExBU1RfUFJFQ0VERU5DRSk7XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgIHByZWNlZGVuY2VzID0gbmV3IE1hcCgpO1xuICAgICAgICAgIHByZWNlZGVuY2VzQnlSb290LnNldChyb290LCBwcmVjZWRlbmNlcyk7XG4gICAgICAgICAgZm9yIChcbiAgICAgICAgICAgIHZhciBub2RlcyA9IHJvb3QucXVlcnlTZWxlY3RvckFsbChcbiAgICAgICAgICAgICAgICBcImxpbmtbZGF0YS1wcmVjZWRlbmNlXSxzdHlsZVtkYXRhLXByZWNlZGVuY2VdXCJcbiAgICAgICAgICAgICAgKSxcbiAgICAgICAgICAgICAgaSA9IDA7XG4gICAgICAgICAgICBpIDwgbm9kZXMubGVuZ3RoO1xuICAgICAgICAgICAgaSsrXG4gICAgICAgICAgKSB7XG4gICAgICAgICAgICB2YXIgbm9kZSA9IG5vZGVzW2ldO1xuICAgICAgICAgICAgaWYgKFxuICAgICAgICAgICAgICBcIkxJTktcIiA9PT0gbm9kZS5ub2RlTmFtZSB8fFxuICAgICAgICAgICAgICBcIm5vdCBhbGxcIiAhPT0gbm9kZS5nZXRBdHRyaWJ1dGUoXCJtZWRpYVwiKVxuICAgICAgICAgICAgKVxuICAgICAgICAgICAgICBwcmVjZWRlbmNlcy5zZXQobm9kZS5kYXRhc2V0LnByZWNlZGVuY2UsIG5vZGUpLCAobGFzdCA9IG5vZGUpO1xuICAgICAgICAgIH1cbiAgICAgICAgICBsYXN0ICYmIHByZWNlZGVuY2VzLnNldChMQVNUX1BSRUNFREVOQ0UsIGxhc3QpO1xuICAgICAgICB9XG4gICAgICAgIG5vZGVzID0gcmVzb3VyY2UuaW5zdGFuY2U7XG4gICAgICAgIG5vZGUgPSBub2Rlcy5nZXRBdHRyaWJ1dGUoXCJkYXRhLXByZWNlZGVuY2VcIik7XG4gICAgICAgIGkgPSBwcmVjZWRlbmNlcy5nZXQobm9kZSkgfHwgbGFzdDtcbiAgICAgICAgaSA9PT0gbGFzdCAmJiBwcmVjZWRlbmNlcy5zZXQoTEFTVF9QUkVDRURFTkNFLCBub2Rlcyk7XG4gICAgICAgIHByZWNlZGVuY2VzLnNldChub2RlLCBub2Rlcyk7XG4gICAgICAgIHRoaXMuY291bnQrKztcbiAgICAgICAgbGFzdCA9IG9uVW5zdXNwZW5kLmJpbmQodGhpcyk7XG4gICAgICAgIG5vZGVzLmFkZEV2ZW50TGlzdGVuZXIoXCJsb2FkXCIsIGxhc3QpO1xuICAgICAgICBub2Rlcy5hZGRFdmVudExpc3RlbmVyKFwiZXJyb3JcIiwgbGFzdCk7XG4gICAgICAgIGlcbiAgICAgICAgICA/IGkucGFyZW50Tm9kZS5pbnNlcnRCZWZvcmUobm9kZXMsIGkubmV4dFNpYmxpbmcpXG4gICAgICAgICAgOiAoKHJvb3QgPSA5ID09PSByb290Lm5vZGVUeXBlID8gcm9vdC5oZWFkIDogcm9vdCksXG4gICAgICAgICAgICByb290Lmluc2VydEJlZm9yZShub2Rlcywgcm9vdC5maXJzdENoaWxkKSk7XG4gICAgICAgIHJlc291cmNlLnN0YXRlLmxvYWRpbmcgfD0gSW5zZXJ0ZWQ7XG4gICAgICB9XG4gICAgfVxuICAgIGZ1bmN0aW9uIEZpYmVyUm9vdE5vZGUoXG4gICAgICBjb250YWluZXJJbmZvLFxuICAgICAgdGFnLFxuICAgICAgaHlkcmF0ZSxcbiAgICAgIGlkZW50aWZpZXJQcmVmaXgsXG4gICAgICBvblVuY2F1Z2h0RXJyb3IsXG4gICAgICBvbkNhdWdodEVycm9yLFxuICAgICAgb25SZWNvdmVyYWJsZUVycm9yLFxuICAgICAgZm9ybVN0YXRlXG4gICAgKSB7XG4gICAgICB0aGlzLnRhZyA9IDE7XG4gICAgICB0aGlzLmNvbnRhaW5lckluZm8gPSBjb250YWluZXJJbmZvO1xuICAgICAgdGhpcy5waW5nQ2FjaGUgPSB0aGlzLmN1cnJlbnQgPSB0aGlzLnBlbmRpbmdDaGlsZHJlbiA9IG51bGw7XG4gICAgICB0aGlzLnRpbWVvdXRIYW5kbGUgPSBub1RpbWVvdXQ7XG4gICAgICB0aGlzLmNhbGxiYWNrTm9kZSA9XG4gICAgICAgIHRoaXMubmV4dCA9XG4gICAgICAgIHRoaXMucGVuZGluZ0NvbnRleHQgPVxuICAgICAgICB0aGlzLmNvbnRleHQgPVxuICAgICAgICB0aGlzLmNhbmNlbFBlbmRpbmdDb21taXQgPVxuICAgICAgICAgIG51bGw7XG4gICAgICB0aGlzLmNhbGxiYWNrUHJpb3JpdHkgPSAwO1xuICAgICAgdGhpcy5leHBpcmF0aW9uVGltZXMgPSBjcmVhdGVMYW5lTWFwKC0xKTtcbiAgICAgIHRoaXMuZW50YW5nbGVkTGFuZXMgPVxuICAgICAgICB0aGlzLnNoZWxsU3VzcGVuZENvdW50ZXIgPVxuICAgICAgICB0aGlzLmVycm9yUmVjb3ZlcnlEaXNhYmxlZExhbmVzID1cbiAgICAgICAgdGhpcy5leHBpcmVkTGFuZXMgPVxuICAgICAgICB0aGlzLndhcm1MYW5lcyA9XG4gICAgICAgIHRoaXMucGluZ2VkTGFuZXMgPVxuICAgICAgICB0aGlzLnN1c3BlbmRlZExhbmVzID1cbiAgICAgICAgdGhpcy5wZW5kaW5nTGFuZXMgPVxuICAgICAgICAgIDA7XG4gICAgICB0aGlzLmVudGFuZ2xlbWVudHMgPSBjcmVhdGVMYW5lTWFwKDApO1xuICAgICAgdGhpcy5oaWRkZW5VcGRhdGVzID0gY3JlYXRlTGFuZU1hcChudWxsKTtcbiAgICAgIHRoaXMuaWRlbnRpZmllclByZWZpeCA9IGlkZW50aWZpZXJQcmVmaXg7XG4gICAgICB0aGlzLm9uVW5jYXVnaHRFcnJvciA9IG9uVW5jYXVnaHRFcnJvcjtcbiAgICAgIHRoaXMub25DYXVnaHRFcnJvciA9IG9uQ2F1Z2h0RXJyb3I7XG4gICAgICB0aGlzLm9uUmVjb3ZlcmFibGVFcnJvciA9IG9uUmVjb3ZlcmFibGVFcnJvcjtcbiAgICAgIHRoaXMucG9vbGVkQ2FjaGUgPSBudWxsO1xuICAgICAgdGhpcy5wb29sZWRDYWNoZUxhbmVzID0gMDtcbiAgICAgIHRoaXMuZm9ybVN0YXRlID0gZm9ybVN0YXRlO1xuICAgICAgdGhpcy5pbmNvbXBsZXRlVHJhbnNpdGlvbnMgPSBuZXcgTWFwKCk7XG4gICAgICB0aGlzLnBhc3NpdmVFZmZlY3REdXJhdGlvbiA9IHRoaXMuZWZmZWN0RHVyYXRpb24gPSAtMDtcbiAgICAgIHRoaXMubWVtb2l6ZWRVcGRhdGVycyA9IG5ldyBTZXQoKTtcbiAgICAgIGNvbnRhaW5lckluZm8gPSB0aGlzLnBlbmRpbmdVcGRhdGVyc0xhbmVNYXAgPSBbXTtcbiAgICAgIGZvciAodGFnID0gMDsgMzEgPiB0YWc7IHRhZysrKSBjb250YWluZXJJbmZvLnB1c2gobmV3IFNldCgpKTtcbiAgICAgIHRoaXMuX2RlYnVnUm9vdFR5cGUgPSBoeWRyYXRlID8gXCJoeWRyYXRlUm9vdCgpXCIgOiBcImNyZWF0ZVJvb3QoKVwiO1xuICAgIH1cbiAgICBmdW5jdGlvbiBjcmVhdGVGaWJlclJvb3QoXG4gICAgICBjb250YWluZXJJbmZvLFxuICAgICAgdGFnLFxuICAgICAgaHlkcmF0ZSxcbiAgICAgIGluaXRpYWxDaGlsZHJlbixcbiAgICAgIGh5ZHJhdGlvbkNhbGxiYWNrcyxcbiAgICAgIGlzU3RyaWN0TW9kZSxcbiAgICAgIGlkZW50aWZpZXJQcmVmaXgsXG4gICAgICBvblVuY2F1Z2h0RXJyb3IsXG4gICAgICBvbkNhdWdodEVycm9yLFxuICAgICAgb25SZWNvdmVyYWJsZUVycm9yLFxuICAgICAgdHJhbnNpdGlvbkNhbGxiYWNrcyxcbiAgICAgIGZvcm1TdGF0ZVxuICAgICkge1xuICAgICAgY29udGFpbmVySW5mbyA9IG5ldyBGaWJlclJvb3ROb2RlKFxuICAgICAgICBjb250YWluZXJJbmZvLFxuICAgICAgICB0YWcsXG4gICAgICAgIGh5ZHJhdGUsXG4gICAgICAgIGlkZW50aWZpZXJQcmVmaXgsXG4gICAgICAgIG9uVW5jYXVnaHRFcnJvcixcbiAgICAgICAgb25DYXVnaHRFcnJvcixcbiAgICAgICAgb25SZWNvdmVyYWJsZUVycm9yLFxuICAgICAgICBmb3JtU3RhdGVcbiAgICAgICk7XG4gICAgICB0YWcgPSBDb25jdXJyZW50TW9kZTtcbiAgICAgICEwID09PSBpc1N0cmljdE1vZGUgJiYgKHRhZyB8PSBTdHJpY3RMZWdhY3lNb2RlIHwgU3RyaWN0RWZmZWN0c01vZGUpO1xuICAgICAgaXNEZXZUb29sc1ByZXNlbnQgJiYgKHRhZyB8PSBQcm9maWxlTW9kZSk7XG4gICAgICBpc1N0cmljdE1vZGUgPSBjcmVhdGVGaWJlcigzLCBudWxsLCBudWxsLCB0YWcpO1xuICAgICAgY29udGFpbmVySW5mby5jdXJyZW50ID0gaXNTdHJpY3RNb2RlO1xuICAgICAgaXNTdHJpY3RNb2RlLnN0YXRlTm9kZSA9IGNvbnRhaW5lckluZm87XG4gICAgICB0YWcgPSBjcmVhdGVDYWNoZSgpO1xuICAgICAgcmV0YWluQ2FjaGUodGFnKTtcbiAgICAgIGNvbnRhaW5lckluZm8ucG9vbGVkQ2FjaGUgPSB0YWc7XG4gICAgICByZXRhaW5DYWNoZSh0YWcpO1xuICAgICAgaXNTdHJpY3RNb2RlLm1lbW9pemVkU3RhdGUgPSB7XG4gICAgICAgIGVsZW1lbnQ6IGluaXRpYWxDaGlsZHJlbixcbiAgICAgICAgaXNEZWh5ZHJhdGVkOiBoeWRyYXRlLFxuICAgICAgICBjYWNoZTogdGFnXG4gICAgICB9O1xuICAgICAgaW5pdGlhbGl6ZVVwZGF0ZVF1ZXVlKGlzU3RyaWN0TW9kZSk7XG4gICAgICByZXR1cm4gY29udGFpbmVySW5mbztcbiAgICB9XG4gICAgZnVuY3Rpb24gZ2V0Q29udGV4dEZvclN1YnRyZWUocGFyZW50Q29tcG9uZW50KSB7XG4gICAgICBpZiAoIXBhcmVudENvbXBvbmVudCkgcmV0dXJuIGVtcHR5Q29udGV4dE9iamVjdDtcbiAgICAgIHBhcmVudENvbXBvbmVudCA9IGVtcHR5Q29udGV4dE9iamVjdDtcbiAgICAgIHJldHVybiBwYXJlbnRDb21wb25lbnQ7XG4gICAgfVxuICAgIGZ1bmN0aW9uIHVwZGF0ZUNvbnRhaW5lckltcGwoXG4gICAgICByb290RmliZXIsXG4gICAgICBsYW5lLFxuICAgICAgZWxlbWVudCxcbiAgICAgIGNvbnRhaW5lcixcbiAgICAgIHBhcmVudENvbXBvbmVudCxcbiAgICAgIGNhbGxiYWNrXG4gICAgKSB7XG4gICAgICBpZiAoXG4gICAgICAgIGluamVjdGVkSG9vayAmJlxuICAgICAgICBcImZ1bmN0aW9uXCIgPT09IHR5cGVvZiBpbmplY3RlZEhvb2sub25TY2hlZHVsZUZpYmVyUm9vdFxuICAgICAgKVxuICAgICAgICB0cnkge1xuICAgICAgICAgIGluamVjdGVkSG9vay5vblNjaGVkdWxlRmliZXJSb290KHJlbmRlcmVySUQsIGNvbnRhaW5lciwgZWxlbWVudCk7XG4gICAgICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgICAgIGhhc0xvZ2dlZEVycm9yIHx8XG4gICAgICAgICAgICAoKGhhc0xvZ2dlZEVycm9yID0gITApLFxuICAgICAgICAgICAgY29uc29sZS5lcnJvcihcbiAgICAgICAgICAgICAgXCJSZWFjdCBpbnN0cnVtZW50YXRpb24gZW5jb3VudGVyZWQgYW4gZXJyb3I6ICVzXCIsXG4gICAgICAgICAgICAgIGVyclxuICAgICAgICAgICAgKSk7XG4gICAgICAgIH1cbiAgICAgIG51bGwgIT09IGluamVjdGVkUHJvZmlsaW5nSG9va3MgJiZcbiAgICAgICAgXCJmdW5jdGlvblwiID09PSB0eXBlb2YgaW5qZWN0ZWRQcm9maWxpbmdIb29rcy5tYXJrUmVuZGVyU2NoZWR1bGVkICYmXG4gICAgICAgIGluamVjdGVkUHJvZmlsaW5nSG9va3MubWFya1JlbmRlclNjaGVkdWxlZChsYW5lKTtcbiAgICAgIHBhcmVudENvbXBvbmVudCA9IGdldENvbnRleHRGb3JTdWJ0cmVlKHBhcmVudENvbXBvbmVudCk7XG4gICAgICBudWxsID09PSBjb250YWluZXIuY29udGV4dFxuICAgICAgICA/IChjb250YWluZXIuY29udGV4dCA9IHBhcmVudENvbXBvbmVudClcbiAgICAgICAgOiAoY29udGFpbmVyLnBlbmRpbmdDb250ZXh0ID0gcGFyZW50Q29tcG9uZW50KTtcbiAgICAgIGlzUmVuZGVyaW5nICYmXG4gICAgICAgIG51bGwgIT09IGN1cnJlbnQgJiZcbiAgICAgICAgIWRpZFdhcm5BYm91dE5lc3RlZFVwZGF0ZXMgJiZcbiAgICAgICAgKChkaWRXYXJuQWJvdXROZXN0ZWRVcGRhdGVzID0gITApLFxuICAgICAgICBjb25zb2xlLmVycm9yKFxuICAgICAgICAgIFwiUmVuZGVyIG1ldGhvZHMgc2hvdWxkIGJlIGEgcHVyZSBmdW5jdGlvbiBvZiBwcm9wcyBhbmQgc3RhdGU7IHRyaWdnZXJpbmcgbmVzdGVkIGNvbXBvbmVudCB1cGRhdGVzIGZyb20gcmVuZGVyIGlzIG5vdCBhbGxvd2VkLiBJZiBuZWNlc3NhcnksIHRyaWdnZXIgbmVzdGVkIHVwZGF0ZXMgaW4gY29tcG9uZW50RGlkVXBkYXRlLlxcblxcbkNoZWNrIHRoZSByZW5kZXIgbWV0aG9kIG9mICVzLlwiLFxuICAgICAgICAgIGdldENvbXBvbmVudE5hbWVGcm9tRmliZXIoY3VycmVudCkgfHwgXCJVbmtub3duXCJcbiAgICAgICAgKSk7XG4gICAgICBjb250YWluZXIgPSBjcmVhdGVVcGRhdGUobGFuZSk7XG4gICAgICBjb250YWluZXIucGF5bG9hZCA9IHsgZWxlbWVudDogZWxlbWVudCB9O1xuICAgICAgY2FsbGJhY2sgPSB2b2lkIDAgPT09IGNhbGxiYWNrID8gbnVsbCA6IGNhbGxiYWNrO1xuICAgICAgbnVsbCAhPT0gY2FsbGJhY2sgJiZcbiAgICAgICAgKFwiZnVuY3Rpb25cIiAhPT0gdHlwZW9mIGNhbGxiYWNrICYmXG4gICAgICAgICAgY29uc29sZS5lcnJvcihcbiAgICAgICAgICAgIFwiRXhwZWN0ZWQgdGhlIGxhc3Qgb3B0aW9uYWwgYGNhbGxiYWNrYCBhcmd1bWVudCB0byBiZSBhIGZ1bmN0aW9uLiBJbnN0ZWFkIHJlY2VpdmVkOiAlcy5cIixcbiAgICAgICAgICAgIGNhbGxiYWNrXG4gICAgICAgICAgKSxcbiAgICAgICAgKGNvbnRhaW5lci5jYWxsYmFjayA9IGNhbGxiYWNrKSk7XG4gICAgICBlbGVtZW50ID0gZW5xdWV1ZVVwZGF0ZShyb290RmliZXIsIGNvbnRhaW5lciwgbGFuZSk7XG4gICAgICBudWxsICE9PSBlbGVtZW50ICYmXG4gICAgICAgIChzY2hlZHVsZVVwZGF0ZU9uRmliZXIoZWxlbWVudCwgcm9vdEZpYmVyLCBsYW5lKSxcbiAgICAgICAgZW50YW5nbGVUcmFuc2l0aW9ucyhlbGVtZW50LCByb290RmliZXIsIGxhbmUpKTtcbiAgICB9XG4gICAgZnVuY3Rpb24gbWFya1JldHJ5TGFuZUltcGwoZmliZXIsIHJldHJ5TGFuZSkge1xuICAgICAgZmliZXIgPSBmaWJlci5tZW1vaXplZFN0YXRlO1xuICAgICAgaWYgKG51bGwgIT09IGZpYmVyICYmIG51bGwgIT09IGZpYmVyLmRlaHlkcmF0ZWQpIHtcbiAgICAgICAgdmFyIGEgPSBmaWJlci5yZXRyeUxhbmU7XG4gICAgICAgIGZpYmVyLnJldHJ5TGFuZSA9IDAgIT09IGEgJiYgYSA8IHJldHJ5TGFuZSA/IGEgOiByZXRyeUxhbmU7XG4gICAgICB9XG4gICAgfVxuICAgIGZ1bmN0aW9uIG1hcmtSZXRyeUxhbmVJZk5vdEh5ZHJhdGVkKGZpYmVyLCByZXRyeUxhbmUpIHtcbiAgICAgIG1hcmtSZXRyeUxhbmVJbXBsKGZpYmVyLCByZXRyeUxhbmUpO1xuICAgICAgKGZpYmVyID0gZmliZXIuYWx0ZXJuYXRlKSAmJiBtYXJrUmV0cnlMYW5lSW1wbChmaWJlciwgcmV0cnlMYW5lKTtcbiAgICB9XG4gICAgZnVuY3Rpb24gYXR0ZW1wdENvbnRpbnVvdXNIeWRyYXRpb24oZmliZXIpIHtcbiAgICAgIGlmICgxMyA9PT0gZmliZXIudGFnKSB7XG4gICAgICAgIHZhciByb290ID0gZW5xdWV1ZUNvbmN1cnJlbnRSZW5kZXJGb3JMYW5lKGZpYmVyLCA2NzEwODg2NCk7XG4gICAgICAgIG51bGwgIT09IHJvb3QgJiYgc2NoZWR1bGVVcGRhdGVPbkZpYmVyKHJvb3QsIGZpYmVyLCA2NzEwODg2NCk7XG4gICAgICAgIG1hcmtSZXRyeUxhbmVJZk5vdEh5ZHJhdGVkKGZpYmVyLCA2NzEwODg2NCk7XG4gICAgICB9XG4gICAgfVxuICAgIGZ1bmN0aW9uIGdldEN1cnJlbnRGaWJlckZvckRldlRvb2xzKCkge1xuICAgICAgcmV0dXJuIGN1cnJlbnQ7XG4gICAgfVxuICAgIGZ1bmN0aW9uIGdldExhbmVMYWJlbE1hcCgpIHtcbiAgICAgIGZvciAodmFyIG1hcCA9IG5ldyBNYXAoKSwgbGFuZSA9IDEsIGluZGV4ID0gMDsgMzEgPiBpbmRleDsgaW5kZXgrKykge1xuICAgICAgICB2YXIgbGFiZWwgPSBnZXRMYWJlbEZvckxhbmUobGFuZSk7XG4gICAgICAgIG1hcC5zZXQobGFuZSwgbGFiZWwpO1xuICAgICAgICBsYW5lICo9IDI7XG4gICAgICB9XG4gICAgICByZXR1cm4gbWFwO1xuICAgIH1cbiAgICBmdW5jdGlvbiBkaXNwYXRjaERpc2NyZXRlRXZlbnQoXG4gICAgICBkb21FdmVudE5hbWUsXG4gICAgICBldmVudFN5c3RlbUZsYWdzLFxuICAgICAgY29udGFpbmVyLFxuICAgICAgbmF0aXZlRXZlbnRcbiAgICApIHtcbiAgICAgIHZhciBwcmV2VHJhbnNpdGlvbiA9IFJlYWN0U2hhcmVkSW50ZXJuYWxzLlQ7XG4gICAgICBSZWFjdFNoYXJlZEludGVybmFscy5UID0gbnVsbDtcbiAgICAgIHZhciBwcmV2aW91c1ByaW9yaXR5ID0gUmVhY3RET01TaGFyZWRJbnRlcm5hbHMucDtcbiAgICAgIHRyeSB7XG4gICAgICAgIChSZWFjdERPTVNoYXJlZEludGVybmFscy5wID0gRGlzY3JldGVFdmVudFByaW9yaXR5KSxcbiAgICAgICAgICBkaXNwYXRjaEV2ZW50KGRvbUV2ZW50TmFtZSwgZXZlbnRTeXN0ZW1GbGFncywgY29udGFpbmVyLCBuYXRpdmVFdmVudCk7XG4gICAgICB9IGZpbmFsbHkge1xuICAgICAgICAoUmVhY3RET01TaGFyZWRJbnRlcm5hbHMucCA9IHByZXZpb3VzUHJpb3JpdHkpLFxuICAgICAgICAgIChSZWFjdFNoYXJlZEludGVybmFscy5UID0gcHJldlRyYW5zaXRpb24pO1xuICAgICAgfVxuICAgIH1cbiAgICBmdW5jdGlvbiBkaXNwYXRjaENvbnRpbnVvdXNFdmVudChcbiAgICAgIGRvbUV2ZW50TmFtZSxcbiAgICAgIGV2ZW50U3lzdGVtRmxhZ3MsXG4gICAgICBjb250YWluZXIsXG4gICAgICBuYXRpdmVFdmVudFxuICAgICkge1xuICAgICAgdmFyIHByZXZUcmFuc2l0aW9uID0gUmVhY3RTaGFyZWRJbnRlcm5hbHMuVDtcbiAgICAgIFJlYWN0U2hhcmVkSW50ZXJuYWxzLlQgPSBudWxsO1xuICAgICAgdmFyIHByZXZpb3VzUHJpb3JpdHkgPSBSZWFjdERPTVNoYXJlZEludGVybmFscy5wO1xuICAgICAgdHJ5IHtcbiAgICAgICAgKFJlYWN0RE9NU2hhcmVkSW50ZXJuYWxzLnAgPSBDb250aW51b3VzRXZlbnRQcmlvcml0eSksXG4gICAgICAgICAgZGlzcGF0Y2hFdmVudChkb21FdmVudE5hbWUsIGV2ZW50U3lzdGVtRmxhZ3MsIGNvbnRhaW5lciwgbmF0aXZlRXZlbnQpO1xuICAgICAgfSBmaW5hbGx5IHtcbiAgICAgICAgKFJlYWN0RE9NU2hhcmVkSW50ZXJuYWxzLnAgPSBwcmV2aW91c1ByaW9yaXR5KSxcbiAgICAgICAgICAoUmVhY3RTaGFyZWRJbnRlcm5hbHMuVCA9IHByZXZUcmFuc2l0aW9uKTtcbiAgICAgIH1cbiAgICB9XG4gICAgZnVuY3Rpb24gZGlzcGF0Y2hFdmVudChcbiAgICAgIGRvbUV2ZW50TmFtZSxcbiAgICAgIGV2ZW50U3lzdGVtRmxhZ3MsXG4gICAgICB0YXJnZXRDb250YWluZXIsXG4gICAgICBuYXRpdmVFdmVudFxuICAgICkge1xuICAgICAgaWYgKF9lbmFibGVkKSB7XG4gICAgICAgIHZhciBibG9ja2VkT24gPSBmaW5kSW5zdGFuY2VCbG9ja2luZ0V2ZW50KG5hdGl2ZUV2ZW50KTtcbiAgICAgICAgaWYgKG51bGwgPT09IGJsb2NrZWRPbilcbiAgICAgICAgICBkaXNwYXRjaEV2ZW50Rm9yUGx1Z2luRXZlbnRTeXN0ZW0oXG4gICAgICAgICAgICBkb21FdmVudE5hbWUsXG4gICAgICAgICAgICBldmVudFN5c3RlbUZsYWdzLFxuICAgICAgICAgICAgbmF0aXZlRXZlbnQsXG4gICAgICAgICAgICByZXR1cm5fdGFyZ2V0SW5zdCxcbiAgICAgICAgICAgIHRhcmdldENvbnRhaW5lclxuICAgICAgICAgICksXG4gICAgICAgICAgICBjbGVhcklmQ29udGludW91c0V2ZW50KGRvbUV2ZW50TmFtZSwgbmF0aXZlRXZlbnQpO1xuICAgICAgICBlbHNlIGlmIChcbiAgICAgICAgICBxdWV1ZUlmQ29udGludW91c0V2ZW50KFxuICAgICAgICAgICAgYmxvY2tlZE9uLFxuICAgICAgICAgICAgZG9tRXZlbnROYW1lLFxuICAgICAgICAgICAgZXZlbnRTeXN0ZW1GbGFncyxcbiAgICAgICAgICAgIHRhcmdldENvbnRhaW5lcixcbiAgICAgICAgICAgIG5hdGl2ZUV2ZW50XG4gICAgICAgICAgKVxuICAgICAgICApXG4gICAgICAgICAgbmF0aXZlRXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICAgIGVsc2UgaWYgKFxuICAgICAgICAgIChjbGVhcklmQ29udGludW91c0V2ZW50KGRvbUV2ZW50TmFtZSwgbmF0aXZlRXZlbnQpLFxuICAgICAgICAgIGV2ZW50U3lzdGVtRmxhZ3MgJiA0ICYmXG4gICAgICAgICAgICAtMSA8IGRpc2NyZXRlUmVwbGF5YWJsZUV2ZW50cy5pbmRleE9mKGRvbUV2ZW50TmFtZSkpXG4gICAgICAgICkge1xuICAgICAgICAgIGZvciAoOyBudWxsICE9PSBibG9ja2VkT247ICkge1xuICAgICAgICAgICAgdmFyIGZpYmVyID0gZ2V0SW5zdGFuY2VGcm9tTm9kZShibG9ja2VkT24pO1xuICAgICAgICAgICAgaWYgKG51bGwgIT09IGZpYmVyKVxuICAgICAgICAgICAgICBzd2l0Y2ggKGZpYmVyLnRhZykge1xuICAgICAgICAgICAgICAgIGNhc2UgMzpcbiAgICAgICAgICAgICAgICAgIGZpYmVyID0gZmliZXIuc3RhdGVOb2RlO1xuICAgICAgICAgICAgICAgICAgaWYgKGZpYmVyLmN1cnJlbnQubWVtb2l6ZWRTdGF0ZS5pc0RlaHlkcmF0ZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgdmFyIGxhbmVzID0gZ2V0SGlnaGVzdFByaW9yaXR5TGFuZXMoZmliZXIucGVuZGluZ0xhbmVzKTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKDAgIT09IGxhbmVzKSB7XG4gICAgICAgICAgICAgICAgICAgICAgdmFyIHJvb3QgPSBmaWJlcjtcbiAgICAgICAgICAgICAgICAgICAgICByb290LnBlbmRpbmdMYW5lcyB8PSAyO1xuICAgICAgICAgICAgICAgICAgICAgIGZvciAocm9vdC5lbnRhbmdsZWRMYW5lcyB8PSAyOyBsYW5lczsgKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB2YXIgbGFuZSA9IDEgPDwgKDMxIC0gY2x6MzIobGFuZXMpKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJvb3QuZW50YW5nbGVtZW50c1sxXSB8PSBsYW5lO1xuICAgICAgICAgICAgICAgICAgICAgICAgbGFuZXMgJj0gfmxhbmU7XG4gICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgIGVuc3VyZVJvb3RJc1NjaGVkdWxlZChmaWJlcik7XG4gICAgICAgICAgICAgICAgICAgICAgKGV4ZWN1dGlvbkNvbnRleHQgJiAoUmVuZGVyQ29udGV4dCB8IENvbW1pdENvbnRleHQpKSA9PT1cbiAgICAgICAgICAgICAgICAgICAgICAgIE5vQ29udGV4dCAmJlxuICAgICAgICAgICAgICAgICAgICAgICAgKCh3b3JrSW5Qcm9ncmVzc1Jvb3RSZW5kZXJUYXJnZXRUaW1lID1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgbm93JDEoKSArIFJFTkRFUl9USU1FT1VUX01TKSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGZsdXNoU3luY1dvcmtBY3Jvc3NSb290c19pbXBsKDAsICExKSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIGNhc2UgMTM6XG4gICAgICAgICAgICAgICAgICAocm9vdCA9IGVucXVldWVDb25jdXJyZW50UmVuZGVyRm9yTGFuZShmaWJlciwgMikpLFxuICAgICAgICAgICAgICAgICAgICBudWxsICE9PSByb290ICYmIHNjaGVkdWxlVXBkYXRlT25GaWJlcihyb290LCBmaWJlciwgMiksXG4gICAgICAgICAgICAgICAgICAgIGZsdXNoU3luY1dvcmskMSgpLFxuICAgICAgICAgICAgICAgICAgICBtYXJrUmV0cnlMYW5lSWZOb3RIeWRyYXRlZChmaWJlciwgMik7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGZpYmVyID0gZmluZEluc3RhbmNlQmxvY2tpbmdFdmVudChuYXRpdmVFdmVudCk7XG4gICAgICAgICAgICBudWxsID09PSBmaWJlciAmJlxuICAgICAgICAgICAgICBkaXNwYXRjaEV2ZW50Rm9yUGx1Z2luRXZlbnRTeXN0ZW0oXG4gICAgICAgICAgICAgICAgZG9tRXZlbnROYW1lLFxuICAgICAgICAgICAgICAgIGV2ZW50U3lzdGVtRmxhZ3MsXG4gICAgICAgICAgICAgICAgbmF0aXZlRXZlbnQsXG4gICAgICAgICAgICAgICAgcmV0dXJuX3RhcmdldEluc3QsXG4gICAgICAgICAgICAgICAgdGFyZ2V0Q29udGFpbmVyXG4gICAgICAgICAgICAgICk7XG4gICAgICAgICAgICBpZiAoZmliZXIgPT09IGJsb2NrZWRPbikgYnJlYWs7XG4gICAgICAgICAgICBibG9ja2VkT24gPSBmaWJlcjtcbiAgICAgICAgICB9XG4gICAgICAgICAgbnVsbCAhPT0gYmxvY2tlZE9uICYmIG5hdGl2ZUV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgICB9IGVsc2VcbiAgICAgICAgICBkaXNwYXRjaEV2ZW50Rm9yUGx1Z2luRXZlbnRTeXN0ZW0oXG4gICAgICAgICAgICBkb21FdmVudE5hbWUsXG4gICAgICAgICAgICBldmVudFN5c3RlbUZsYWdzLFxuICAgICAgICAgICAgbmF0aXZlRXZlbnQsXG4gICAgICAgICAgICBudWxsLFxuICAgICAgICAgICAgdGFyZ2V0Q29udGFpbmVyXG4gICAgICAgICAgKTtcbiAgICAgIH1cbiAgICB9XG4gICAgZnVuY3Rpb24gZmluZEluc3RhbmNlQmxvY2tpbmdFdmVudChuYXRpdmVFdmVudCkge1xuICAgICAgbmF0aXZlRXZlbnQgPSBnZXRFdmVudFRhcmdldChuYXRpdmVFdmVudCk7XG4gICAgICByZXR1cm4gZmluZEluc3RhbmNlQmxvY2tpbmdUYXJnZXQobmF0aXZlRXZlbnQpO1xuICAgIH1cbiAgICBmdW5jdGlvbiBmaW5kSW5zdGFuY2VCbG9ja2luZ1RhcmdldCh0YXJnZXROb2RlKSB7XG4gICAgICByZXR1cm5fdGFyZ2V0SW5zdCA9IG51bGw7XG4gICAgICB0YXJnZXROb2RlID0gZ2V0Q2xvc2VzdEluc3RhbmNlRnJvbU5vZGUodGFyZ2V0Tm9kZSk7XG4gICAgICBpZiAobnVsbCAhPT0gdGFyZ2V0Tm9kZSkge1xuICAgICAgICB2YXIgbmVhcmVzdE1vdW50ZWQgPSBnZXROZWFyZXN0TW91bnRlZEZpYmVyKHRhcmdldE5vZGUpO1xuICAgICAgICBpZiAobnVsbCA9PT0gbmVhcmVzdE1vdW50ZWQpIHRhcmdldE5vZGUgPSBudWxsO1xuICAgICAgICBlbHNlIHtcbiAgICAgICAgICB2YXIgdGFnID0gbmVhcmVzdE1vdW50ZWQudGFnO1xuICAgICAgICAgIGlmICgxMyA9PT0gdGFnKSB7XG4gICAgICAgICAgICB0YXJnZXROb2RlID0gZ2V0U3VzcGVuc2VJbnN0YW5jZUZyb21GaWJlcihuZWFyZXN0TW91bnRlZCk7XG4gICAgICAgICAgICBpZiAobnVsbCAhPT0gdGFyZ2V0Tm9kZSkgcmV0dXJuIHRhcmdldE5vZGU7XG4gICAgICAgICAgICB0YXJnZXROb2RlID0gbnVsbDtcbiAgICAgICAgICB9IGVsc2UgaWYgKDMgPT09IHRhZykge1xuICAgICAgICAgICAgaWYgKG5lYXJlc3RNb3VudGVkLnN0YXRlTm9kZS5jdXJyZW50Lm1lbW9pemVkU3RhdGUuaXNEZWh5ZHJhdGVkKVxuICAgICAgICAgICAgICByZXR1cm4gMyA9PT0gbmVhcmVzdE1vdW50ZWQudGFnXG4gICAgICAgICAgICAgICAgPyBuZWFyZXN0TW91bnRlZC5zdGF0ZU5vZGUuY29udGFpbmVySW5mb1xuICAgICAgICAgICAgICAgIDogbnVsbDtcbiAgICAgICAgICAgIHRhcmdldE5vZGUgPSBudWxsO1xuICAgICAgICAgIH0gZWxzZSBuZWFyZXN0TW91bnRlZCAhPT0gdGFyZ2V0Tm9kZSAmJiAodGFyZ2V0Tm9kZSA9IG51bGwpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICByZXR1cm5fdGFyZ2V0SW5zdCA9IHRhcmdldE5vZGU7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG4gICAgZnVuY3Rpb24gZ2V0RXZlbnRQcmlvcml0eShkb21FdmVudE5hbWUpIHtcbiAgICAgIHN3aXRjaCAoZG9tRXZlbnROYW1lKSB7XG4gICAgICAgIGNhc2UgXCJiZWZvcmV0b2dnbGVcIjpcbiAgICAgICAgY2FzZSBcImNhbmNlbFwiOlxuICAgICAgICBjYXNlIFwiY2xpY2tcIjpcbiAgICAgICAgY2FzZSBcImNsb3NlXCI6XG4gICAgICAgIGNhc2UgXCJjb250ZXh0bWVudVwiOlxuICAgICAgICBjYXNlIFwiY29weVwiOlxuICAgICAgICBjYXNlIFwiY3V0XCI6XG4gICAgICAgIGNhc2UgXCJhdXhjbGlja1wiOlxuICAgICAgICBjYXNlIFwiZGJsY2xpY2tcIjpcbiAgICAgICAgY2FzZSBcImRyYWdlbmRcIjpcbiAgICAgICAgY2FzZSBcImRyYWdzdGFydFwiOlxuICAgICAgICBjYXNlIFwiZHJvcFwiOlxuICAgICAgICBjYXNlIFwiZm9jdXNpblwiOlxuICAgICAgICBjYXNlIFwiZm9jdXNvdXRcIjpcbiAgICAgICAgY2FzZSBcImlucHV0XCI6XG4gICAgICAgIGNhc2UgXCJpbnZhbGlkXCI6XG4gICAgICAgIGNhc2UgXCJrZXlkb3duXCI6XG4gICAgICAgIGNhc2UgXCJrZXlwcmVzc1wiOlxuICAgICAgICBjYXNlIFwia2V5dXBcIjpcbiAgICAgICAgY2FzZSBcIm1vdXNlZG93blwiOlxuICAgICAgICBjYXNlIFwibW91c2V1cFwiOlxuICAgICAgICBjYXNlIFwicGFzdGVcIjpcbiAgICAgICAgY2FzZSBcInBhdXNlXCI6XG4gICAgICAgIGNhc2UgXCJwbGF5XCI6XG4gICAgICAgIGNhc2UgXCJwb2ludGVyY2FuY2VsXCI6XG4gICAgICAgIGNhc2UgXCJwb2ludGVyZG93blwiOlxuICAgICAgICBjYXNlIFwicG9pbnRlcnVwXCI6XG4gICAgICAgIGNhc2UgXCJyYXRlY2hhbmdlXCI6XG4gICAgICAgIGNhc2UgXCJyZXNldFwiOlxuICAgICAgICBjYXNlIFwicmVzaXplXCI6XG4gICAgICAgIGNhc2UgXCJzZWVrZWRcIjpcbiAgICAgICAgY2FzZSBcInN1Ym1pdFwiOlxuICAgICAgICBjYXNlIFwidG9nZ2xlXCI6XG4gICAgICAgIGNhc2UgXCJ0b3VjaGNhbmNlbFwiOlxuICAgICAgICBjYXNlIFwidG91Y2hlbmRcIjpcbiAgICAgICAgY2FzZSBcInRvdWNoc3RhcnRcIjpcbiAgICAgICAgY2FzZSBcInZvbHVtZWNoYW5nZVwiOlxuICAgICAgICBjYXNlIFwiY2hhbmdlXCI6XG4gICAgICAgIGNhc2UgXCJzZWxlY3Rpb25jaGFuZ2VcIjpcbiAgICAgICAgY2FzZSBcInRleHRJbnB1dFwiOlxuICAgICAgICBjYXNlIFwiY29tcG9zaXRpb25zdGFydFwiOlxuICAgICAgICBjYXNlIFwiY29tcG9zaXRpb25lbmRcIjpcbiAgICAgICAgY2FzZSBcImNvbXBvc2l0aW9udXBkYXRlXCI6XG4gICAgICAgIGNhc2UgXCJiZWZvcmVibHVyXCI6XG4gICAgICAgIGNhc2UgXCJhZnRlcmJsdXJcIjpcbiAgICAgICAgY2FzZSBcImJlZm9yZWlucHV0XCI6XG4gICAgICAgIGNhc2UgXCJibHVyXCI6XG4gICAgICAgIGNhc2UgXCJmdWxsc2NyZWVuY2hhbmdlXCI6XG4gICAgICAgIGNhc2UgXCJmb2N1c1wiOlxuICAgICAgICBjYXNlIFwiaGFzaGNoYW5nZVwiOlxuICAgICAgICBjYXNlIFwicG9wc3RhdGVcIjpcbiAgICAgICAgY2FzZSBcInNlbGVjdFwiOlxuICAgICAgICBjYXNlIFwic2VsZWN0c3RhcnRcIjpcbiAgICAgICAgICByZXR1cm4gRGlzY3JldGVFdmVudFByaW9yaXR5O1xuICAgICAgICBjYXNlIFwiZHJhZ1wiOlxuICAgICAgICBjYXNlIFwiZHJhZ2VudGVyXCI6XG4gICAgICAgIGNhc2UgXCJkcmFnZXhpdFwiOlxuICAgICAgICBjYXNlIFwiZHJhZ2xlYXZlXCI6XG4gICAgICAgIGNhc2UgXCJkcmFnb3ZlclwiOlxuICAgICAgICBjYXNlIFwibW91c2Vtb3ZlXCI6XG4gICAgICAgIGNhc2UgXCJtb3VzZW91dFwiOlxuICAgICAgICBjYXNlIFwibW91c2VvdmVyXCI6XG4gICAgICAgIGNhc2UgXCJwb2ludGVybW92ZVwiOlxuICAgICAgICBjYXNlIFwicG9pbnRlcm91dFwiOlxuICAgICAgICBjYXNlIFwicG9pbnRlcm92ZXJcIjpcbiAgICAgICAgY2FzZSBcInNjcm9sbFwiOlxuICAgICAgICBjYXNlIFwidG91Y2htb3ZlXCI6XG4gICAgICAgIGNhc2UgXCJ3aGVlbFwiOlxuICAgICAgICBjYXNlIFwibW91c2VlbnRlclwiOlxuICAgICAgICBjYXNlIFwibW91c2VsZWF2ZVwiOlxuICAgICAgICBjYXNlIFwicG9pbnRlcmVudGVyXCI6XG4gICAgICAgIGNhc2UgXCJwb2ludGVybGVhdmVcIjpcbiAgICAgICAgICByZXR1cm4gQ29udGludW91c0V2ZW50UHJpb3JpdHk7XG4gICAgICAgIGNhc2UgXCJtZXNzYWdlXCI6XG4gICAgICAgICAgc3dpdGNoIChnZXRDdXJyZW50UHJpb3JpdHlMZXZlbCgpKSB7XG4gICAgICAgICAgICBjYXNlIEltbWVkaWF0ZVByaW9yaXR5OlxuICAgICAgICAgICAgICByZXR1cm4gRGlzY3JldGVFdmVudFByaW9yaXR5O1xuICAgICAgICAgICAgY2FzZSBVc2VyQmxvY2tpbmdQcmlvcml0eTpcbiAgICAgICAgICAgICAgcmV0dXJuIENvbnRpbnVvdXNFdmVudFByaW9yaXR5O1xuICAgICAgICAgICAgY2FzZSBOb3JtYWxQcmlvcml0eSQxOlxuICAgICAgICAgICAgY2FzZSBMb3dQcmlvcml0eTpcbiAgICAgICAgICAgICAgcmV0dXJuIERlZmF1bHRFdmVudFByaW9yaXR5O1xuICAgICAgICAgICAgY2FzZSBJZGxlUHJpb3JpdHk6XG4gICAgICAgICAgICAgIHJldHVybiBJZGxlRXZlbnRQcmlvcml0eTtcbiAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgIHJldHVybiBEZWZhdWx0RXZlbnRQcmlvcml0eTtcbiAgICAgICAgICB9XG4gICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgcmV0dXJuIERlZmF1bHRFdmVudFByaW9yaXR5O1xuICAgICAgfVxuICAgIH1cbiAgICBmdW5jdGlvbiBjbGVhcklmQ29udGludW91c0V2ZW50KGRvbUV2ZW50TmFtZSwgbmF0aXZlRXZlbnQpIHtcbiAgICAgIHN3aXRjaCAoZG9tRXZlbnROYW1lKSB7XG4gICAgICAgIGNhc2UgXCJmb2N1c2luXCI6XG4gICAgICAgIGNhc2UgXCJmb2N1c291dFwiOlxuICAgICAgICAgIHF1ZXVlZEZvY3VzID0gbnVsbDtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSBcImRyYWdlbnRlclwiOlxuICAgICAgICBjYXNlIFwiZHJhZ2xlYXZlXCI6XG4gICAgICAgICAgcXVldWVkRHJhZyA9IG51bGw7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgXCJtb3VzZW92ZXJcIjpcbiAgICAgICAgY2FzZSBcIm1vdXNlb3V0XCI6XG4gICAgICAgICAgcXVldWVkTW91c2UgPSBudWxsO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIFwicG9pbnRlcm92ZXJcIjpcbiAgICAgICAgY2FzZSBcInBvaW50ZXJvdXRcIjpcbiAgICAgICAgICBxdWV1ZWRQb2ludGVycy5kZWxldGUobmF0aXZlRXZlbnQucG9pbnRlcklkKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSBcImdvdHBvaW50ZXJjYXB0dXJlXCI6XG4gICAgICAgIGNhc2UgXCJsb3N0cG9pbnRlcmNhcHR1cmVcIjpcbiAgICAgICAgICBxdWV1ZWRQb2ludGVyQ2FwdHVyZXMuZGVsZXRlKG5hdGl2ZUV2ZW50LnBvaW50ZXJJZCk7XG4gICAgICB9XG4gICAgfVxuICAgIGZ1bmN0aW9uIGFjY3VtdWxhdGVPckNyZWF0ZUNvbnRpbnVvdXNRdWV1ZWRSZXBsYXlhYmxlRXZlbnQoXG4gICAgICBleGlzdGluZ1F1ZXVlZEV2ZW50LFxuICAgICAgYmxvY2tlZE9uLFxuICAgICAgZG9tRXZlbnROYW1lLFxuICAgICAgZXZlbnRTeXN0ZW1GbGFncyxcbiAgICAgIHRhcmdldENvbnRhaW5lcixcbiAgICAgIG5hdGl2ZUV2ZW50XG4gICAgKSB7XG4gICAgICBpZiAoXG4gICAgICAgIG51bGwgPT09IGV4aXN0aW5nUXVldWVkRXZlbnQgfHxcbiAgICAgICAgZXhpc3RpbmdRdWV1ZWRFdmVudC5uYXRpdmVFdmVudCAhPT0gbmF0aXZlRXZlbnRcbiAgICAgIClcbiAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAoZXhpc3RpbmdRdWV1ZWRFdmVudCA9IHtcbiAgICAgICAgICAgIGJsb2NrZWRPbjogYmxvY2tlZE9uLFxuICAgICAgICAgICAgZG9tRXZlbnROYW1lOiBkb21FdmVudE5hbWUsXG4gICAgICAgICAgICBldmVudFN5c3RlbUZsYWdzOiBldmVudFN5c3RlbUZsYWdzLFxuICAgICAgICAgICAgbmF0aXZlRXZlbnQ6IG5hdGl2ZUV2ZW50LFxuICAgICAgICAgICAgdGFyZ2V0Q29udGFpbmVyczogW3RhcmdldENvbnRhaW5lcl1cbiAgICAgICAgICB9KSxcbiAgICAgICAgICBudWxsICE9PSBibG9ja2VkT24gJiZcbiAgICAgICAgICAgICgoYmxvY2tlZE9uID0gZ2V0SW5zdGFuY2VGcm9tTm9kZShibG9ja2VkT24pKSxcbiAgICAgICAgICAgIG51bGwgIT09IGJsb2NrZWRPbiAmJiBhdHRlbXB0Q29udGludW91c0h5ZHJhdGlvbihibG9ja2VkT24pKSxcbiAgICAgICAgICBleGlzdGluZ1F1ZXVlZEV2ZW50XG4gICAgICAgICk7XG4gICAgICBleGlzdGluZ1F1ZXVlZEV2ZW50LmV2ZW50U3lzdGVtRmxhZ3MgfD0gZXZlbnRTeXN0ZW1GbGFncztcbiAgICAgIGJsb2NrZWRPbiA9IGV4aXN0aW5nUXVldWVkRXZlbnQudGFyZ2V0Q29udGFpbmVycztcbiAgICAgIG51bGwgIT09IHRhcmdldENvbnRhaW5lciAmJlxuICAgICAgICAtMSA9PT0gYmxvY2tlZE9uLmluZGV4T2YodGFyZ2V0Q29udGFpbmVyKSAmJlxuICAgICAgICBibG9ja2VkT24ucHVzaCh0YXJnZXRDb250YWluZXIpO1xuICAgICAgcmV0dXJuIGV4aXN0aW5nUXVldWVkRXZlbnQ7XG4gICAgfVxuICAgIGZ1bmN0aW9uIHF1ZXVlSWZDb250aW51b3VzRXZlbnQoXG4gICAgICBibG9ja2VkT24sXG4gICAgICBkb21FdmVudE5hbWUsXG4gICAgICBldmVudFN5c3RlbUZsYWdzLFxuICAgICAgdGFyZ2V0Q29udGFpbmVyLFxuICAgICAgbmF0aXZlRXZlbnRcbiAgICApIHtcbiAgICAgIHN3aXRjaCAoZG9tRXZlbnROYW1lKSB7XG4gICAgICAgIGNhc2UgXCJmb2N1c2luXCI6XG4gICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgIChxdWV1ZWRGb2N1cyA9IGFjY3VtdWxhdGVPckNyZWF0ZUNvbnRpbnVvdXNRdWV1ZWRSZXBsYXlhYmxlRXZlbnQoXG4gICAgICAgICAgICAgIHF1ZXVlZEZvY3VzLFxuICAgICAgICAgICAgICBibG9ja2VkT24sXG4gICAgICAgICAgICAgIGRvbUV2ZW50TmFtZSxcbiAgICAgICAgICAgICAgZXZlbnRTeXN0ZW1GbGFncyxcbiAgICAgICAgICAgICAgdGFyZ2V0Q29udGFpbmVyLFxuICAgICAgICAgICAgICBuYXRpdmVFdmVudFxuICAgICAgICAgICAgKSksXG4gICAgICAgICAgICAhMFxuICAgICAgICAgICk7XG4gICAgICAgIGNhc2UgXCJkcmFnZW50ZXJcIjpcbiAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgKHF1ZXVlZERyYWcgPSBhY2N1bXVsYXRlT3JDcmVhdGVDb250aW51b3VzUXVldWVkUmVwbGF5YWJsZUV2ZW50KFxuICAgICAgICAgICAgICBxdWV1ZWREcmFnLFxuICAgICAgICAgICAgICBibG9ja2VkT24sXG4gICAgICAgICAgICAgIGRvbUV2ZW50TmFtZSxcbiAgICAgICAgICAgICAgZXZlbnRTeXN0ZW1GbGFncyxcbiAgICAgICAgICAgICAgdGFyZ2V0Q29udGFpbmVyLFxuICAgICAgICAgICAgICBuYXRpdmVFdmVudFxuICAgICAgICAgICAgKSksXG4gICAgICAgICAgICAhMFxuICAgICAgICAgICk7XG4gICAgICAgIGNhc2UgXCJtb3VzZW92ZXJcIjpcbiAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgKHF1ZXVlZE1vdXNlID0gYWNjdW11bGF0ZU9yQ3JlYXRlQ29udGludW91c1F1ZXVlZFJlcGxheWFibGVFdmVudChcbiAgICAgICAgICAgICAgcXVldWVkTW91c2UsXG4gICAgICAgICAgICAgIGJsb2NrZWRPbixcbiAgICAgICAgICAgICAgZG9tRXZlbnROYW1lLFxuICAgICAgICAgICAgICBldmVudFN5c3RlbUZsYWdzLFxuICAgICAgICAgICAgICB0YXJnZXRDb250YWluZXIsXG4gICAgICAgICAgICAgIG5hdGl2ZUV2ZW50XG4gICAgICAgICAgICApKSxcbiAgICAgICAgICAgICEwXG4gICAgICAgICAgKTtcbiAgICAgICAgY2FzZSBcInBvaW50ZXJvdmVyXCI6XG4gICAgICAgICAgdmFyIHBvaW50ZXJJZCA9IG5hdGl2ZUV2ZW50LnBvaW50ZXJJZDtcbiAgICAgICAgICBxdWV1ZWRQb2ludGVycy5zZXQoXG4gICAgICAgICAgICBwb2ludGVySWQsXG4gICAgICAgICAgICBhY2N1bXVsYXRlT3JDcmVhdGVDb250aW51b3VzUXVldWVkUmVwbGF5YWJsZUV2ZW50KFxuICAgICAgICAgICAgICBxdWV1ZWRQb2ludGVycy5nZXQocG9pbnRlcklkKSB8fCBudWxsLFxuICAgICAgICAgICAgICBibG9ja2VkT24sXG4gICAgICAgICAgICAgIGRvbUV2ZW50TmFtZSxcbiAgICAgICAgICAgICAgZXZlbnRTeXN0ZW1GbGFncyxcbiAgICAgICAgICAgICAgdGFyZ2V0Q29udGFpbmVyLFxuICAgICAgICAgICAgICBuYXRpdmVFdmVudFxuICAgICAgICAgICAgKVxuICAgICAgICAgICk7XG4gICAgICAgICAgcmV0dXJuICEwO1xuICAgICAgICBjYXNlIFwiZ290cG9pbnRlcmNhcHR1cmVcIjpcbiAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgKHBvaW50ZXJJZCA9IG5hdGl2ZUV2ZW50LnBvaW50ZXJJZCksXG4gICAgICAgICAgICBxdWV1ZWRQb2ludGVyQ2FwdHVyZXMuc2V0KFxuICAgICAgICAgICAgICBwb2ludGVySWQsXG4gICAgICAgICAgICAgIGFjY3VtdWxhdGVPckNyZWF0ZUNvbnRpbnVvdXNRdWV1ZWRSZXBsYXlhYmxlRXZlbnQoXG4gICAgICAgICAgICAgICAgcXVldWVkUG9pbnRlckNhcHR1cmVzLmdldChwb2ludGVySWQpIHx8IG51bGwsXG4gICAgICAgICAgICAgICAgYmxvY2tlZE9uLFxuICAgICAgICAgICAgICAgIGRvbUV2ZW50TmFtZSxcbiAgICAgICAgICAgICAgICBldmVudFN5c3RlbUZsYWdzLFxuICAgICAgICAgICAgICAgIHRhcmdldENvbnRhaW5lcixcbiAgICAgICAgICAgICAgICBuYXRpdmVFdmVudFxuICAgICAgICAgICAgICApXG4gICAgICAgICAgICApLFxuICAgICAgICAgICAgITBcbiAgICAgICAgICApO1xuICAgICAgfVxuICAgICAgcmV0dXJuICExO1xuICAgIH1cbiAgICBmdW5jdGlvbiBhdHRlbXB0RXhwbGljaXRIeWRyYXRpb25UYXJnZXQocXVldWVkVGFyZ2V0KSB7XG4gICAgICB2YXIgdGFyZ2V0SW5zdCA9IGdldENsb3Nlc3RJbnN0YW5jZUZyb21Ob2RlKHF1ZXVlZFRhcmdldC50YXJnZXQpO1xuICAgICAgaWYgKG51bGwgIT09IHRhcmdldEluc3QpIHtcbiAgICAgICAgdmFyIG5lYXJlc3RNb3VudGVkID0gZ2V0TmVhcmVzdE1vdW50ZWRGaWJlcih0YXJnZXRJbnN0KTtcbiAgICAgICAgaWYgKG51bGwgIT09IG5lYXJlc3RNb3VudGVkKVxuICAgICAgICAgIGlmICgoKHRhcmdldEluc3QgPSBuZWFyZXN0TW91bnRlZC50YWcpLCAxMyA9PT0gdGFyZ2V0SW5zdCkpIHtcbiAgICAgICAgICAgIGlmIChcbiAgICAgICAgICAgICAgKCh0YXJnZXRJbnN0ID0gZ2V0U3VzcGVuc2VJbnN0YW5jZUZyb21GaWJlcihuZWFyZXN0TW91bnRlZCkpLFxuICAgICAgICAgICAgICBudWxsICE9PSB0YXJnZXRJbnN0KVxuICAgICAgICAgICAgKSB7XG4gICAgICAgICAgICAgIHF1ZXVlZFRhcmdldC5ibG9ja2VkT24gPSB0YXJnZXRJbnN0O1xuICAgICAgICAgICAgICBydW5XaXRoUHJpb3JpdHkocXVldWVkVGFyZ2V0LnByaW9yaXR5LCBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgaWYgKDEzID09PSBuZWFyZXN0TW91bnRlZC50YWcpIHtcbiAgICAgICAgICAgICAgICAgIHZhciBsYW5lID0gcmVxdWVzdFVwZGF0ZUxhbmUobmVhcmVzdE1vdW50ZWQpO1xuICAgICAgICAgICAgICAgICAgbGFuZSA9IGdldEJ1bXBlZExhbmVGb3JIeWRyYXRpb25CeUxhbmUobGFuZSk7XG4gICAgICAgICAgICAgICAgICB2YXIgcm9vdCA9IGVucXVldWVDb25jdXJyZW50UmVuZGVyRm9yTGFuZShcbiAgICAgICAgICAgICAgICAgICAgbmVhcmVzdE1vdW50ZWQsXG4gICAgICAgICAgICAgICAgICAgIGxhbmVcbiAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgICBudWxsICE9PSByb290ICYmXG4gICAgICAgICAgICAgICAgICAgIHNjaGVkdWxlVXBkYXRlT25GaWJlcihyb290LCBuZWFyZXN0TW91bnRlZCwgbGFuZSk7XG4gICAgICAgICAgICAgICAgICBtYXJrUmV0cnlMYW5lSWZOb3RIeWRyYXRlZChuZWFyZXN0TW91bnRlZCwgbGFuZSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0gZWxzZSBpZiAoXG4gICAgICAgICAgICAzID09PSB0YXJnZXRJbnN0ICYmXG4gICAgICAgICAgICBuZWFyZXN0TW91bnRlZC5zdGF0ZU5vZGUuY3VycmVudC5tZW1vaXplZFN0YXRlLmlzRGVoeWRyYXRlZFxuICAgICAgICAgICkge1xuICAgICAgICAgICAgcXVldWVkVGFyZ2V0LmJsb2NrZWRPbiA9XG4gICAgICAgICAgICAgIDMgPT09IG5lYXJlc3RNb3VudGVkLnRhZ1xuICAgICAgICAgICAgICAgID8gbmVhcmVzdE1vdW50ZWQuc3RhdGVOb2RlLmNvbnRhaW5lckluZm9cbiAgICAgICAgICAgICAgICA6IG51bGw7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgfVxuICAgICAgfVxuICAgICAgcXVldWVkVGFyZ2V0LmJsb2NrZWRPbiA9IG51bGw7XG4gICAgfVxuICAgIGZ1bmN0aW9uIGF0dGVtcHRSZXBsYXlDb250aW51b3VzUXVldWVkRXZlbnQocXVldWVkRXZlbnQpIHtcbiAgICAgIGlmIChudWxsICE9PSBxdWV1ZWRFdmVudC5ibG9ja2VkT24pIHJldHVybiAhMTtcbiAgICAgIGZvciAoXG4gICAgICAgIHZhciB0YXJnZXRDb250YWluZXJzID0gcXVldWVkRXZlbnQudGFyZ2V0Q29udGFpbmVycztcbiAgICAgICAgMCA8IHRhcmdldENvbnRhaW5lcnMubGVuZ3RoO1xuXG4gICAgICApIHtcbiAgICAgICAgdmFyIG5leHRCbG9ja2VkT24gPSBmaW5kSW5zdGFuY2VCbG9ja2luZ0V2ZW50KHF1ZXVlZEV2ZW50Lm5hdGl2ZUV2ZW50KTtcbiAgICAgICAgaWYgKG51bGwgPT09IG5leHRCbG9ja2VkT24pIHtcbiAgICAgICAgICBuZXh0QmxvY2tlZE9uID0gcXVldWVkRXZlbnQubmF0aXZlRXZlbnQ7XG4gICAgICAgICAgdmFyIG5hdGl2ZUV2ZW50Q2xvbmUgPSBuZXcgbmV4dEJsb2NrZWRPbi5jb25zdHJ1Y3RvcihcbiAgICAgICAgICAgICAgbmV4dEJsb2NrZWRPbi50eXBlLFxuICAgICAgICAgICAgICBuZXh0QmxvY2tlZE9uXG4gICAgICAgICAgICApLFxuICAgICAgICAgICAgZXZlbnQgPSBuYXRpdmVFdmVudENsb25lO1xuICAgICAgICAgIG51bGwgIT09IGN1cnJlbnRSZXBsYXlpbmdFdmVudCAmJlxuICAgICAgICAgICAgY29uc29sZS5lcnJvcihcbiAgICAgICAgICAgICAgXCJFeHBlY3RlZCBjdXJyZW50bHkgcmVwbGF5aW5nIGV2ZW50IHRvIGJlIG51bGwuIFRoaXMgZXJyb3IgaXMgbGlrZWx5IGNhdXNlZCBieSBhIGJ1ZyBpbiBSZWFjdC4gUGxlYXNlIGZpbGUgYW4gaXNzdWUuXCJcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgY3VycmVudFJlcGxheWluZ0V2ZW50ID0gZXZlbnQ7XG4gICAgICAgICAgbmV4dEJsb2NrZWRPbi50YXJnZXQuZGlzcGF0Y2hFdmVudChuYXRpdmVFdmVudENsb25lKTtcbiAgICAgICAgICBudWxsID09PSBjdXJyZW50UmVwbGF5aW5nRXZlbnQgJiZcbiAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoXG4gICAgICAgICAgICAgIFwiRXhwZWN0ZWQgY3VycmVudGx5IHJlcGxheWluZyBldmVudCB0byBub3QgYmUgbnVsbC4gVGhpcyBlcnJvciBpcyBsaWtlbHkgY2F1c2VkIGJ5IGEgYnVnIGluIFJlYWN0LiBQbGVhc2UgZmlsZSBhbiBpc3N1ZS5cIlxuICAgICAgICAgICAgKTtcbiAgICAgICAgICBjdXJyZW50UmVwbGF5aW5nRXZlbnQgPSBudWxsO1xuICAgICAgICB9IGVsc2VcbiAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgKHRhcmdldENvbnRhaW5lcnMgPSBnZXRJbnN0YW5jZUZyb21Ob2RlKG5leHRCbG9ja2VkT24pKSxcbiAgICAgICAgICAgIG51bGwgIT09IHRhcmdldENvbnRhaW5lcnMgJiZcbiAgICAgICAgICAgICAgYXR0ZW1wdENvbnRpbnVvdXNIeWRyYXRpb24odGFyZ2V0Q29udGFpbmVycyksXG4gICAgICAgICAgICAocXVldWVkRXZlbnQuYmxvY2tlZE9uID0gbmV4dEJsb2NrZWRPbiksXG4gICAgICAgICAgICAhMVxuICAgICAgICAgICk7XG4gICAgICAgIHRhcmdldENvbnRhaW5lcnMuc2hpZnQoKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiAhMDtcbiAgICB9XG4gICAgZnVuY3Rpb24gYXR0ZW1wdFJlcGxheUNvbnRpbnVvdXNRdWV1ZWRFdmVudEluTWFwKHF1ZXVlZEV2ZW50LCBrZXksIG1hcCkge1xuICAgICAgYXR0ZW1wdFJlcGxheUNvbnRpbnVvdXNRdWV1ZWRFdmVudChxdWV1ZWRFdmVudCkgJiYgbWFwLmRlbGV0ZShrZXkpO1xuICAgIH1cbiAgICBmdW5jdGlvbiByZXBsYXlVbmJsb2NrZWRFdmVudHMoKSB7XG4gICAgICBoYXNTY2hlZHVsZWRSZXBsYXlBdHRlbXB0ID0gITE7XG4gICAgICBudWxsICE9PSBxdWV1ZWRGb2N1cyAmJlxuICAgICAgICBhdHRlbXB0UmVwbGF5Q29udGludW91c1F1ZXVlZEV2ZW50KHF1ZXVlZEZvY3VzKSAmJlxuICAgICAgICAocXVldWVkRm9jdXMgPSBudWxsKTtcbiAgICAgIG51bGwgIT09IHF1ZXVlZERyYWcgJiZcbiAgICAgICAgYXR0ZW1wdFJlcGxheUNvbnRpbnVvdXNRdWV1ZWRFdmVudChxdWV1ZWREcmFnKSAmJlxuICAgICAgICAocXVldWVkRHJhZyA9IG51bGwpO1xuICAgICAgbnVsbCAhPT0gcXVldWVkTW91c2UgJiZcbiAgICAgICAgYXR0ZW1wdFJlcGxheUNvbnRpbnVvdXNRdWV1ZWRFdmVudChxdWV1ZWRNb3VzZSkgJiZcbiAgICAgICAgKHF1ZXVlZE1vdXNlID0gbnVsbCk7XG4gICAgICBxdWV1ZWRQb2ludGVycy5mb3JFYWNoKGF0dGVtcHRSZXBsYXlDb250aW51b3VzUXVldWVkRXZlbnRJbk1hcCk7XG4gICAgICBxdWV1ZWRQb2ludGVyQ2FwdHVyZXMuZm9yRWFjaChhdHRlbXB0UmVwbGF5Q29udGludW91c1F1ZXVlZEV2ZW50SW5NYXApO1xuICAgIH1cbiAgICBmdW5jdGlvbiBzY2hlZHVsZUNhbGxiYWNrSWZVbmJsb2NrZWQocXVldWVkRXZlbnQsIHVuYmxvY2tlZCkge1xuICAgICAgcXVldWVkRXZlbnQuYmxvY2tlZE9uID09PSB1bmJsb2NrZWQgJiZcbiAgICAgICAgKChxdWV1ZWRFdmVudC5ibG9ja2VkT24gPSBudWxsKSxcbiAgICAgICAgaGFzU2NoZWR1bGVkUmVwbGF5QXR0ZW1wdCB8fFxuICAgICAgICAgICgoaGFzU2NoZWR1bGVkUmVwbGF5QXR0ZW1wdCA9ICEwKSxcbiAgICAgICAgICBTY2hlZHVsZXIudW5zdGFibGVfc2NoZWR1bGVDYWxsYmFjayhcbiAgICAgICAgICAgIFNjaGVkdWxlci51bnN0YWJsZV9Ob3JtYWxQcmlvcml0eSxcbiAgICAgICAgICAgIHJlcGxheVVuYmxvY2tlZEV2ZW50c1xuICAgICAgICAgICkpKTtcbiAgICB9XG4gICAgZnVuY3Rpb24gc2NoZWR1bGVSZXBsYXlRdWV1ZUlmTmVlZGVkKGZvcm1SZXBsYXlpbmdRdWV1ZSkge1xuICAgICAgbGFzdFNjaGVkdWxlZFJlcGxheVF1ZXVlICE9PSBmb3JtUmVwbGF5aW5nUXVldWUgJiZcbiAgICAgICAgKChsYXN0U2NoZWR1bGVkUmVwbGF5UXVldWUgPSBmb3JtUmVwbGF5aW5nUXVldWUpLFxuICAgICAgICBTY2hlZHVsZXIudW5zdGFibGVfc2NoZWR1bGVDYWxsYmFjayhcbiAgICAgICAgICBTY2hlZHVsZXIudW5zdGFibGVfTm9ybWFsUHJpb3JpdHksXG4gICAgICAgICAgZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgbGFzdFNjaGVkdWxlZFJlcGxheVF1ZXVlID09PSBmb3JtUmVwbGF5aW5nUXVldWUgJiZcbiAgICAgICAgICAgICAgKGxhc3RTY2hlZHVsZWRSZXBsYXlRdWV1ZSA9IG51bGwpO1xuICAgICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBmb3JtUmVwbGF5aW5nUXVldWUubGVuZ3RoOyBpICs9IDMpIHtcbiAgICAgICAgICAgICAgdmFyIGZvcm0gPSBmb3JtUmVwbGF5aW5nUXVldWVbaV0sXG4gICAgICAgICAgICAgICAgc3VibWl0dGVyT3JBY3Rpb24gPSBmb3JtUmVwbGF5aW5nUXVldWVbaSArIDFdLFxuICAgICAgICAgICAgICAgIGZvcm1EYXRhID0gZm9ybVJlcGxheWluZ1F1ZXVlW2kgKyAyXTtcbiAgICAgICAgICAgICAgaWYgKFwiZnVuY3Rpb25cIiAhPT0gdHlwZW9mIHN1Ym1pdHRlck9yQWN0aW9uKVxuICAgICAgICAgICAgICAgIGlmIChcbiAgICAgICAgICAgICAgICAgIG51bGwgPT09IGZpbmRJbnN0YW5jZUJsb2NraW5nVGFyZ2V0KHN1Ym1pdHRlck9yQWN0aW9uIHx8IGZvcm0pXG4gICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgICAgICAgICAgZWxzZSBicmVhaztcbiAgICAgICAgICAgICAgdmFyIGZvcm1JbnN0ID0gZ2V0SW5zdGFuY2VGcm9tTm9kZShmb3JtKTtcbiAgICAgICAgICAgICAgbnVsbCAhPT0gZm9ybUluc3QgJiZcbiAgICAgICAgICAgICAgICAoZm9ybVJlcGxheWluZ1F1ZXVlLnNwbGljZShpLCAzKSxcbiAgICAgICAgICAgICAgICAoaSAtPSAzKSxcbiAgICAgICAgICAgICAgICAoZm9ybSA9IHtcbiAgICAgICAgICAgICAgICAgIHBlbmRpbmc6ICEwLFxuICAgICAgICAgICAgICAgICAgZGF0YTogZm9ybURhdGEsXG4gICAgICAgICAgICAgICAgICBtZXRob2Q6IGZvcm0ubWV0aG9kLFxuICAgICAgICAgICAgICAgICAgYWN0aW9uOiBzdWJtaXR0ZXJPckFjdGlvblxuICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgIE9iamVjdC5mcmVlemUoZm9ybSksXG4gICAgICAgICAgICAgICAgc3RhcnRIb3N0VHJhbnNpdGlvbihcbiAgICAgICAgICAgICAgICAgIGZvcm1JbnN0LFxuICAgICAgICAgICAgICAgICAgZm9ybSxcbiAgICAgICAgICAgICAgICAgIHN1Ym1pdHRlck9yQWN0aW9uLFxuICAgICAgICAgICAgICAgICAgZm9ybURhdGFcbiAgICAgICAgICAgICAgICApKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgICkpO1xuICAgIH1cbiAgICBmdW5jdGlvbiByZXRyeUlmQmxvY2tlZE9uKHVuYmxvY2tlZCkge1xuICAgICAgZnVuY3Rpb24gdW5ibG9jayhxdWV1ZWRFdmVudCkge1xuICAgICAgICByZXR1cm4gc2NoZWR1bGVDYWxsYmFja0lmVW5ibG9ja2VkKHF1ZXVlZEV2ZW50LCB1bmJsb2NrZWQpO1xuICAgICAgfVxuICAgICAgbnVsbCAhPT0gcXVldWVkRm9jdXMgJiZcbiAgICAgICAgc2NoZWR1bGVDYWxsYmFja0lmVW5ibG9ja2VkKHF1ZXVlZEZvY3VzLCB1bmJsb2NrZWQpO1xuICAgICAgbnVsbCAhPT0gcXVldWVkRHJhZyAmJiBzY2hlZHVsZUNhbGxiYWNrSWZVbmJsb2NrZWQocXVldWVkRHJhZywgdW5ibG9ja2VkKTtcbiAgICAgIG51bGwgIT09IHF1ZXVlZE1vdXNlICYmXG4gICAgICAgIHNjaGVkdWxlQ2FsbGJhY2tJZlVuYmxvY2tlZChxdWV1ZWRNb3VzZSwgdW5ibG9ja2VkKTtcbiAgICAgIHF1ZXVlZFBvaW50ZXJzLmZvckVhY2godW5ibG9jayk7XG4gICAgICBxdWV1ZWRQb2ludGVyQ2FwdHVyZXMuZm9yRWFjaCh1bmJsb2NrKTtcbiAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgcXVldWVkRXhwbGljaXRIeWRyYXRpb25UYXJnZXRzLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgIHZhciBxdWV1ZWRUYXJnZXQgPSBxdWV1ZWRFeHBsaWNpdEh5ZHJhdGlvblRhcmdldHNbaV07XG4gICAgICAgIHF1ZXVlZFRhcmdldC5ibG9ja2VkT24gPT09IHVuYmxvY2tlZCAmJiAocXVldWVkVGFyZ2V0LmJsb2NrZWRPbiA9IG51bGwpO1xuICAgICAgfVxuICAgICAgZm9yIChcbiAgICAgICAgO1xuICAgICAgICAwIDwgcXVldWVkRXhwbGljaXRIeWRyYXRpb25UYXJnZXRzLmxlbmd0aCAmJlxuICAgICAgICAoKGkgPSBxdWV1ZWRFeHBsaWNpdEh5ZHJhdGlvblRhcmdldHNbMF0pLCBudWxsID09PSBpLmJsb2NrZWRPbik7XG5cbiAgICAgIClcbiAgICAgICAgYXR0ZW1wdEV4cGxpY2l0SHlkcmF0aW9uVGFyZ2V0KGkpLFxuICAgICAgICAgIG51bGwgPT09IGkuYmxvY2tlZE9uICYmIHF1ZXVlZEV4cGxpY2l0SHlkcmF0aW9uVGFyZ2V0cy5zaGlmdCgpO1xuICAgICAgaSA9ICh1bmJsb2NrZWQub3duZXJEb2N1bWVudCB8fCB1bmJsb2NrZWQpLiQkcmVhY3RGb3JtUmVwbGF5O1xuICAgICAgaWYgKG51bGwgIT0gaSlcbiAgICAgICAgZm9yIChxdWV1ZWRUYXJnZXQgPSAwOyBxdWV1ZWRUYXJnZXQgPCBpLmxlbmd0aDsgcXVldWVkVGFyZ2V0ICs9IDMpIHtcbiAgICAgICAgICB2YXIgZm9ybSA9IGlbcXVldWVkVGFyZ2V0XSxcbiAgICAgICAgICAgIHN1Ym1pdHRlck9yQWN0aW9uID0gaVtxdWV1ZWRUYXJnZXQgKyAxXSxcbiAgICAgICAgICAgIGZvcm1Qcm9wcyA9IGZvcm1baW50ZXJuYWxQcm9wc0tleV0gfHwgbnVsbDtcbiAgICAgICAgICBpZiAoXCJmdW5jdGlvblwiID09PSB0eXBlb2Ygc3VibWl0dGVyT3JBY3Rpb24pXG4gICAgICAgICAgICBmb3JtUHJvcHMgfHwgc2NoZWR1bGVSZXBsYXlRdWV1ZUlmTmVlZGVkKGkpO1xuICAgICAgICAgIGVsc2UgaWYgKGZvcm1Qcm9wcykge1xuICAgICAgICAgICAgdmFyIGFjdGlvbiA9IG51bGw7XG4gICAgICAgICAgICBpZiAoXG4gICAgICAgICAgICAgIHN1Ym1pdHRlck9yQWN0aW9uICYmXG4gICAgICAgICAgICAgIHN1Ym1pdHRlck9yQWN0aW9uLmhhc0F0dHJpYnV0ZShcImZvcm1BY3Rpb25cIilcbiAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgaWYgKFxuICAgICAgICAgICAgICAgICgoZm9ybSA9IHN1Ym1pdHRlck9yQWN0aW9uKSxcbiAgICAgICAgICAgICAgICAoZm9ybVByb3BzID0gc3VibWl0dGVyT3JBY3Rpb25baW50ZXJuYWxQcm9wc0tleV0gfHwgbnVsbCkpXG4gICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICBhY3Rpb24gPSBmb3JtUHJvcHMuZm9ybUFjdGlvbjtcbiAgICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgaWYgKG51bGwgIT09IGZpbmRJbnN0YW5jZUJsb2NraW5nVGFyZ2V0KGZvcm0pKSBjb250aW51ZTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSBhY3Rpb24gPSBmb3JtUHJvcHMuYWN0aW9uO1xuICAgICAgICAgICAgXCJmdW5jdGlvblwiID09PSB0eXBlb2YgYWN0aW9uXG4gICAgICAgICAgICAgID8gKGlbcXVldWVkVGFyZ2V0ICsgMV0gPSBhY3Rpb24pXG4gICAgICAgICAgICAgIDogKGkuc3BsaWNlKHF1ZXVlZFRhcmdldCwgMyksIChxdWV1ZWRUYXJnZXQgLT0gMykpO1xuICAgICAgICAgICAgc2NoZWR1bGVSZXBsYXlRdWV1ZUlmTmVlZGVkKGkpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICBmdW5jdGlvbiBSZWFjdERPTVJvb3QoaW50ZXJuYWxSb290KSB7XG4gICAgICB0aGlzLl9pbnRlcm5hbFJvb3QgPSBpbnRlcm5hbFJvb3Q7XG4gICAgfVxuICAgIGZ1bmN0aW9uIFJlYWN0RE9NSHlkcmF0aW9uUm9vdChpbnRlcm5hbFJvb3QpIHtcbiAgICAgIHRoaXMuX2ludGVybmFsUm9vdCA9IGludGVybmFsUm9vdDtcbiAgICB9XG4gICAgZnVuY3Rpb24gd2FybklmUmVhY3RET01Db250YWluZXJJbkRFVihjb250YWluZXIpIHtcbiAgICAgIGNvbnRhaW5lcltpbnRlcm5hbENvbnRhaW5lckluc3RhbmNlS2V5XSAmJlxuICAgICAgICAoY29udGFpbmVyLl9yZWFjdFJvb3RDb250YWluZXJcbiAgICAgICAgICA/IGNvbnNvbGUuZXJyb3IoXG4gICAgICAgICAgICAgIFwiWW91IGFyZSBjYWxsaW5nIFJlYWN0RE9NQ2xpZW50LmNyZWF0ZVJvb3QoKSBvbiBhIGNvbnRhaW5lciB0aGF0IHdhcyBwcmV2aW91c2x5IHBhc3NlZCB0byBSZWFjdERPTS5yZW5kZXIoKS4gVGhpcyBpcyBub3Qgc3VwcG9ydGVkLlwiXG4gICAgICAgICAgICApXG4gICAgICAgICAgOiBjb25zb2xlLmVycm9yKFxuICAgICAgICAgICAgICBcIllvdSBhcmUgY2FsbGluZyBSZWFjdERPTUNsaWVudC5jcmVhdGVSb290KCkgb24gYSBjb250YWluZXIgdGhhdCBoYXMgYWxyZWFkeSBiZWVuIHBhc3NlZCB0byBjcmVhdGVSb290KCkgYmVmb3JlLiBJbnN0ZWFkLCBjYWxsIHJvb3QucmVuZGVyKCkgb24gdGhlIGV4aXN0aW5nIHJvb3QgaW5zdGVhZCBpZiB5b3Ugd2FudCB0byB1cGRhdGUgaXQuXCJcbiAgICAgICAgICAgICkpO1xuICAgIH1cbiAgICBcInVuZGVmaW5lZFwiICE9PSB0eXBlb2YgX19SRUFDVF9ERVZUT09MU19HTE9CQUxfSE9PS19fICYmXG4gICAgICBcImZ1bmN0aW9uXCIgPT09XG4gICAgICAgIHR5cGVvZiBfX1JFQUNUX0RFVlRPT0xTX0dMT0JBTF9IT09LX18ucmVnaXN0ZXJJbnRlcm5hbE1vZHVsZVN0YXJ0ICYmXG4gICAgICBfX1JFQUNUX0RFVlRPT0xTX0dMT0JBTF9IT09LX18ucmVnaXN0ZXJJbnRlcm5hbE1vZHVsZVN0YXJ0KEVycm9yKCkpO1xuICAgIHZhciBTY2hlZHVsZXIgPSByZXF1aXJlKFwic2NoZWR1bGVyXCIpLFxuICAgICAgUmVhY3QgPSByZXF1aXJlKFwicmVhY3RcIiksXG4gICAgICBSZWFjdERPTSA9IHJlcXVpcmUoXCJyZWFjdC1kb21cIiksXG4gICAgICBhc3NpZ24gPSBPYmplY3QuYXNzaWduLFxuICAgICAgUkVBQ1RfTEVHQUNZX0VMRU1FTlRfVFlQRSA9IFN5bWJvbC5mb3IoXCJyZWFjdC5lbGVtZW50XCIpLFxuICAgICAgUkVBQ1RfRUxFTUVOVF9UWVBFID0gU3ltYm9sLmZvcihcInJlYWN0LnRyYW5zaXRpb25hbC5lbGVtZW50XCIpLFxuICAgICAgUkVBQ1RfUE9SVEFMX1RZUEUgPSBTeW1ib2wuZm9yKFwicmVhY3QucG9ydGFsXCIpLFxuICAgICAgUkVBQ1RfRlJBR01FTlRfVFlQRSA9IFN5bWJvbC5mb3IoXCJyZWFjdC5mcmFnbWVudFwiKSxcbiAgICAgIFJFQUNUX1NUUklDVF9NT0RFX1RZUEUgPSBTeW1ib2wuZm9yKFwicmVhY3Quc3RyaWN0X21vZGVcIiksXG4gICAgICBSRUFDVF9QUk9GSUxFUl9UWVBFID0gU3ltYm9sLmZvcihcInJlYWN0LnByb2ZpbGVyXCIpLFxuICAgICAgUkVBQ1RfUFJPVklERVJfVFlQRSA9IFN5bWJvbC5mb3IoXCJyZWFjdC5wcm92aWRlclwiKSxcbiAgICAgIFJFQUNUX0NPTlNVTUVSX1RZUEUgPSBTeW1ib2wuZm9yKFwicmVhY3QuY29uc3VtZXJcIiksXG4gICAgICBSRUFDVF9DT05URVhUX1RZUEUgPSBTeW1ib2wuZm9yKFwicmVhY3QuY29udGV4dFwiKSxcbiAgICAgIFJFQUNUX0ZPUldBUkRfUkVGX1RZUEUgPSBTeW1ib2wuZm9yKFwicmVhY3QuZm9yd2FyZF9yZWZcIiksXG4gICAgICBSRUFDVF9TVVNQRU5TRV9UWVBFID0gU3ltYm9sLmZvcihcInJlYWN0LnN1c3BlbnNlXCIpLFxuICAgICAgUkVBQ1RfU1VTUEVOU0VfTElTVF9UWVBFID0gU3ltYm9sLmZvcihcInJlYWN0LnN1c3BlbnNlX2xpc3RcIiksXG4gICAgICBSRUFDVF9NRU1PX1RZUEUgPSBTeW1ib2wuZm9yKFwicmVhY3QubWVtb1wiKSxcbiAgICAgIFJFQUNUX0xBWllfVFlQRSA9IFN5bWJvbC5mb3IoXCJyZWFjdC5sYXp5XCIpO1xuICAgIFN5bWJvbC5mb3IoXCJyZWFjdC5zY29wZVwiKTtcbiAgICB2YXIgUkVBQ1RfQUNUSVZJVFlfVFlQRSA9IFN5bWJvbC5mb3IoXCJyZWFjdC5hY3Rpdml0eVwiKTtcbiAgICBTeW1ib2wuZm9yKFwicmVhY3QubGVnYWN5X2hpZGRlblwiKTtcbiAgICBTeW1ib2wuZm9yKFwicmVhY3QudHJhY2luZ19tYXJrZXJcIik7XG4gICAgdmFyIFJFQUNUX01FTU9fQ0FDSEVfU0VOVElORUwgPSBTeW1ib2wuZm9yKFwicmVhY3QubWVtb19jYWNoZV9zZW50aW5lbFwiKTtcbiAgICBTeW1ib2wuZm9yKFwicmVhY3Qudmlld190cmFuc2l0aW9uXCIpO1xuICAgIHZhciBNQVlCRV9JVEVSQVRPUl9TWU1CT0wgPSBTeW1ib2wuaXRlcmF0b3IsXG4gICAgICBSRUFDVF9DTElFTlRfUkVGRVJFTkNFID0gU3ltYm9sLmZvcihcInJlYWN0LmNsaWVudC5yZWZlcmVuY2VcIiksXG4gICAgICBpc0FycmF5SW1wbCA9IEFycmF5LmlzQXJyYXksXG4gICAgICBSZWFjdFNoYXJlZEludGVybmFscyA9XG4gICAgICAgIFJlYWN0Ll9fQ0xJRU5UX0lOVEVSTkFMU19ET19OT1RfVVNFX09SX1dBUk5fVVNFUlNfVEhFWV9DQU5OT1RfVVBHUkFERSxcbiAgICAgIFJlYWN0RE9NU2hhcmVkSW50ZXJuYWxzID1cbiAgICAgICAgUmVhY3RET00uX19ET01fSU5URVJOQUxTX0RPX05PVF9VU0VfT1JfV0FSTl9VU0VSU19USEVZX0NBTk5PVF9VUEdSQURFLFxuICAgICAgTm90UGVuZGluZyA9IE9iamVjdC5mcmVlemUoe1xuICAgICAgICBwZW5kaW5nOiAhMSxcbiAgICAgICAgZGF0YTogbnVsbCxcbiAgICAgICAgbWV0aG9kOiBudWxsLFxuICAgICAgICBhY3Rpb246IG51bGxcbiAgICAgIH0pLFxuICAgICAgdmFsdWVTdGFjayA9IFtdO1xuICAgIHZhciBmaWJlclN0YWNrID0gW107XG4gICAgdmFyIGluZGV4JGpzY29tcCQwID0gLTEsXG4gICAgICBjb250ZXh0U3RhY2tDdXJzb3IgPSBjcmVhdGVDdXJzb3IobnVsbCksXG4gICAgICBjb250ZXh0RmliZXJTdGFja0N1cnNvciA9IGNyZWF0ZUN1cnNvcihudWxsKSxcbiAgICAgIHJvb3RJbnN0YW5jZVN0YWNrQ3Vyc29yID0gY3JlYXRlQ3Vyc29yKG51bGwpLFxuICAgICAgaG9zdFRyYW5zaXRpb25Qcm92aWRlckN1cnNvciA9IGNyZWF0ZUN1cnNvcihudWxsKSxcbiAgICAgIGhhc093blByb3BlcnR5ID0gT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eSxcbiAgICAgIHNjaGVkdWxlQ2FsbGJhY2skMyA9IFNjaGVkdWxlci51bnN0YWJsZV9zY2hlZHVsZUNhbGxiYWNrLFxuICAgICAgY2FuY2VsQ2FsbGJhY2skMSA9IFNjaGVkdWxlci51bnN0YWJsZV9jYW5jZWxDYWxsYmFjayxcbiAgICAgIHNob3VsZFlpZWxkID0gU2NoZWR1bGVyLnVuc3RhYmxlX3Nob3VsZFlpZWxkLFxuICAgICAgcmVxdWVzdFBhaW50ID0gU2NoZWR1bGVyLnVuc3RhYmxlX3JlcXVlc3RQYWludCxcbiAgICAgIG5vdyQxID0gU2NoZWR1bGVyLnVuc3RhYmxlX25vdyxcbiAgICAgIGdldEN1cnJlbnRQcmlvcml0eUxldmVsID0gU2NoZWR1bGVyLnVuc3RhYmxlX2dldEN1cnJlbnRQcmlvcml0eUxldmVsLFxuICAgICAgSW1tZWRpYXRlUHJpb3JpdHkgPSBTY2hlZHVsZXIudW5zdGFibGVfSW1tZWRpYXRlUHJpb3JpdHksXG4gICAgICBVc2VyQmxvY2tpbmdQcmlvcml0eSA9IFNjaGVkdWxlci51bnN0YWJsZV9Vc2VyQmxvY2tpbmdQcmlvcml0eSxcbiAgICAgIE5vcm1hbFByaW9yaXR5JDEgPSBTY2hlZHVsZXIudW5zdGFibGVfTm9ybWFsUHJpb3JpdHksXG4gICAgICBMb3dQcmlvcml0eSA9IFNjaGVkdWxlci51bnN0YWJsZV9Mb3dQcmlvcml0eSxcbiAgICAgIElkbGVQcmlvcml0eSA9IFNjaGVkdWxlci51bnN0YWJsZV9JZGxlUHJpb3JpdHksXG4gICAgICBsb2ckMSA9IFNjaGVkdWxlci5sb2csXG4gICAgICB1bnN0YWJsZV9zZXREaXNhYmxlWWllbGRWYWx1ZSA9IFNjaGVkdWxlci51bnN0YWJsZV9zZXREaXNhYmxlWWllbGRWYWx1ZSxcbiAgICAgIHJlbmRlcmVySUQgPSBudWxsLFxuICAgICAgaW5qZWN0ZWRIb29rID0gbnVsbCxcbiAgICAgIGluamVjdGVkUHJvZmlsaW5nSG9va3MgPSBudWxsLFxuICAgICAgaGFzTG9nZ2VkRXJyb3IgPSAhMSxcbiAgICAgIGlzRGV2VG9vbHNQcmVzZW50ID0gXCJ1bmRlZmluZWRcIiAhPT0gdHlwZW9mIF9fUkVBQ1RfREVWVE9PTFNfR0xPQkFMX0hPT0tfXyxcbiAgICAgIGNsejMyID0gTWF0aC5jbHozMiA/IE1hdGguY2x6MzIgOiBjbHozMkZhbGxiYWNrLFxuICAgICAgbG9nID0gTWF0aC5sb2csXG4gICAgICBMTjIgPSBNYXRoLkxOMixcbiAgICAgIG5leHRUcmFuc2l0aW9uTGFuZSA9IDI1NixcbiAgICAgIG5leHRSZXRyeUxhbmUgPSA0MTk0MzA0LFxuICAgICAgRGlzY3JldGVFdmVudFByaW9yaXR5ID0gMixcbiAgICAgIENvbnRpbnVvdXNFdmVudFByaW9yaXR5ID0gOCxcbiAgICAgIERlZmF1bHRFdmVudFByaW9yaXR5ID0gMzIsXG4gICAgICBJZGxlRXZlbnRQcmlvcml0eSA9IDI2ODQzNTQ1NixcbiAgICAgIHJhbmRvbUtleSA9IE1hdGgucmFuZG9tKCkudG9TdHJpbmcoMzYpLnNsaWNlKDIpLFxuICAgICAgaW50ZXJuYWxJbnN0YW5jZUtleSA9IFwiX19yZWFjdEZpYmVyJFwiICsgcmFuZG9tS2V5LFxuICAgICAgaW50ZXJuYWxQcm9wc0tleSA9IFwiX19yZWFjdFByb3BzJFwiICsgcmFuZG9tS2V5LFxuICAgICAgaW50ZXJuYWxDb250YWluZXJJbnN0YW5jZUtleSA9IFwiX19yZWFjdENvbnRhaW5lciRcIiArIHJhbmRvbUtleSxcbiAgICAgIGludGVybmFsRXZlbnRIYW5kbGVyc0tleSA9IFwiX19yZWFjdEV2ZW50cyRcIiArIHJhbmRvbUtleSxcbiAgICAgIGludGVybmFsRXZlbnRIYW5kbGVyTGlzdGVuZXJzS2V5ID0gXCJfX3JlYWN0TGlzdGVuZXJzJFwiICsgcmFuZG9tS2V5LFxuICAgICAgaW50ZXJuYWxFdmVudEhhbmRsZXNTZXRLZXkgPSBcIl9fcmVhY3RIYW5kbGVzJFwiICsgcmFuZG9tS2V5LFxuICAgICAgaW50ZXJuYWxSb290Tm9kZVJlc291cmNlc0tleSA9IFwiX19yZWFjdFJlc291cmNlcyRcIiArIHJhbmRvbUtleSxcbiAgICAgIGludGVybmFsSG9pc3RhYmxlTWFya2VyID0gXCJfX3JlYWN0TWFya2VyJFwiICsgcmFuZG9tS2V5LFxuICAgICAgYWxsTmF0aXZlRXZlbnRzID0gbmV3IFNldCgpLFxuICAgICAgcmVnaXN0cmF0aW9uTmFtZURlcGVuZGVuY2llcyA9IHt9LFxuICAgICAgcG9zc2libGVSZWdpc3RyYXRpb25OYW1lcyA9IHt9LFxuICAgICAgaGFzUmVhZE9ubHlWYWx1ZSA9IHtcbiAgICAgICAgYnV0dG9uOiAhMCxcbiAgICAgICAgY2hlY2tib3g6ICEwLFxuICAgICAgICBpbWFnZTogITAsXG4gICAgICAgIGhpZGRlbjogITAsXG4gICAgICAgIHJhZGlvOiAhMCxcbiAgICAgICAgcmVzZXQ6ICEwLFxuICAgICAgICBzdWJtaXQ6ICEwXG4gICAgICB9LFxuICAgICAgVkFMSURfQVRUUklCVVRFX05BTUVfUkVHRVggPSBSZWdFeHAoXG4gICAgICAgIFwiXls6QS1aX2EtelxcXFx1MDBDMC1cXFxcdTAwRDZcXFxcdTAwRDgtXFxcXHUwMEY2XFxcXHUwMEY4LVxcXFx1MDJGRlxcXFx1MDM3MC1cXFxcdTAzN0RcXFxcdTAzN0YtXFxcXHUxRkZGXFxcXHUyMDBDLVxcXFx1MjAwRFxcXFx1MjA3MC1cXFxcdTIxOEZcXFxcdTJDMDAtXFxcXHUyRkVGXFxcXHUzMDAxLVxcXFx1RDdGRlxcXFx1RjkwMC1cXFxcdUZEQ0ZcXFxcdUZERjAtXFxcXHVGRkZEXVs6QS1aX2EtelxcXFx1MDBDMC1cXFxcdTAwRDZcXFxcdTAwRDgtXFxcXHUwMEY2XFxcXHUwMEY4LVxcXFx1MDJGRlxcXFx1MDM3MC1cXFxcdTAzN0RcXFxcdTAzN0YtXFxcXHUxRkZGXFxcXHUyMDBDLVxcXFx1MjAwRFxcXFx1MjA3MC1cXFxcdTIxOEZcXFxcdTJDMDAtXFxcXHUyRkVGXFxcXHUzMDAxLVxcXFx1RDdGRlxcXFx1RjkwMC1cXFxcdUZEQ0ZcXFxcdUZERjAtXFxcXHVGRkZEXFxcXC0uMC05XFxcXHUwMEI3XFxcXHUwMzAwLVxcXFx1MDM2RlxcXFx1MjAzRi1cXFxcdTIwNDBdKiRcIlxuICAgICAgKSxcbiAgICAgIGlsbGVnYWxBdHRyaWJ1dGVOYW1lQ2FjaGUgPSB7fSxcbiAgICAgIHZhbGlkYXRlZEF0dHJpYnV0ZU5hbWVDYWNoZSA9IHt9LFxuICAgICAgZGlzYWJsZWREZXB0aCA9IDAsXG4gICAgICBwcmV2TG9nLFxuICAgICAgcHJldkluZm8sXG4gICAgICBwcmV2V2FybixcbiAgICAgIHByZXZFcnJvcixcbiAgICAgIHByZXZHcm91cCxcbiAgICAgIHByZXZHcm91cENvbGxhcHNlZCxcbiAgICAgIHByZXZHcm91cEVuZDtcbiAgICBkaXNhYmxlZExvZy5fX3JlYWN0RGlzYWJsZWRMb2cgPSAhMDtcbiAgICB2YXIgcHJlZml4LFxuICAgICAgc3VmZml4LFxuICAgICAgcmVlbnRyeSA9ICExO1xuICAgIHZhciBjb21wb25lbnRGcmFtZUNhY2hlID0gbmV3IChcbiAgICAgIFwiZnVuY3Rpb25cIiA9PT0gdHlwZW9mIFdlYWtNYXAgPyBXZWFrTWFwIDogTWFwXG4gICAgKSgpO1xuICAgIHZhciBjdXJyZW50ID0gbnVsbCxcbiAgICAgIGlzUmVuZGVyaW5nID0gITEsXG4gICAgICBlc2NhcGVTZWxlY3RvckF0dHJpYnV0ZVZhbHVlSW5zaWRlRG91YmxlUXVvdGVzUmVnZXggPSAvW1xcblwiXFxcXF0vZyxcbiAgICAgIGRpZFdhcm5WYWx1ZURlZmF1bHRWYWx1ZSQxID0gITEsXG4gICAgICBkaWRXYXJuQ2hlY2tlZERlZmF1bHRDaGVja2VkID0gITEsXG4gICAgICBkaWRXYXJuU2VsZWN0ZWRTZXRPbk9wdGlvbiA9ICExLFxuICAgICAgZGlkV2FybkludmFsaWRDaGlsZCA9ICExLFxuICAgICAgZGlkV2FybkludmFsaWRJbm5lckhUTUwgPSAhMTtcbiAgICB2YXIgZGlkV2FyblZhbHVlRGVmYXVsdFZhbHVlID0gITE7XG4gICAgdmFyIHZhbHVlUHJvcE5hbWVzID0gW1widmFsdWVcIiwgXCJkZWZhdWx0VmFsdWVcIl0sXG4gICAgICBkaWRXYXJuVmFsRGVmYXVsdFZhbCA9ICExLFxuICAgICAgbmVlZHNFc2NhcGluZyA9IC9bXCInJjw+XFxuXFx0XXxeXFxzfFxccyQvLFxuICAgICAgc3BlY2lhbFRhZ3MgPVxuICAgICAgICBcImFkZHJlc3MgYXBwbGV0IGFyZWEgYXJ0aWNsZSBhc2lkZSBiYXNlIGJhc2Vmb250IGJnc291bmQgYmxvY2txdW90ZSBib2R5IGJyIGJ1dHRvbiBjYXB0aW9uIGNlbnRlciBjb2wgY29sZ3JvdXAgZGQgZGV0YWlscyBkaXIgZGl2IGRsIGR0IGVtYmVkIGZpZWxkc2V0IGZpZ2NhcHRpb24gZmlndXJlIGZvb3RlciBmb3JtIGZyYW1lIGZyYW1lc2V0IGgxIGgyIGgzIGg0IGg1IGg2IGhlYWQgaGVhZGVyIGhncm91cCBociBodG1sIGlmcmFtZSBpbWcgaW5wdXQgaXNpbmRleCBsaSBsaW5rIGxpc3RpbmcgbWFpbiBtYXJxdWVlIG1lbnUgbWVudWl0ZW0gbWV0YSBuYXYgbm9lbWJlZCBub2ZyYW1lcyBub3NjcmlwdCBvYmplY3Qgb2wgcCBwYXJhbSBwbGFpbnRleHQgcHJlIHNjcmlwdCBzZWN0aW9uIHNlbGVjdCBzb3VyY2Ugc3R5bGUgc3VtbWFyeSB0YWJsZSB0Ym9keSB0ZCB0ZW1wbGF0ZSB0ZXh0YXJlYSB0Zm9vdCB0aCB0aGVhZCB0aXRsZSB0ciB0cmFjayB1bCB3YnIgeG1wXCIuc3BsaXQoXG4gICAgICAgICAgXCIgXCJcbiAgICAgICAgKSxcbiAgICAgIGluU2NvcGVUYWdzID1cbiAgICAgICAgXCJhcHBsZXQgY2FwdGlvbiBodG1sIHRhYmxlIHRkIHRoIG1hcnF1ZWUgb2JqZWN0IHRlbXBsYXRlIGZvcmVpZ25PYmplY3QgZGVzYyB0aXRsZVwiLnNwbGl0KFxuICAgICAgICAgIFwiIFwiXG4gICAgICAgICksXG4gICAgICBidXR0b25TY29wZVRhZ3MgPSBpblNjb3BlVGFncy5jb25jYXQoW1wiYnV0dG9uXCJdKSxcbiAgICAgIGltcGxpZWRFbmRUYWdzID0gXCJkZCBkdCBsaSBvcHRpb24gb3B0Z3JvdXAgcCBycCBydFwiLnNwbGl0KFwiIFwiKSxcbiAgICAgIGVtcHR5QW5jZXN0b3JJbmZvRGV2ID0ge1xuICAgICAgICBjdXJyZW50OiBudWxsLFxuICAgICAgICBmb3JtVGFnOiBudWxsLFxuICAgICAgICBhVGFnSW5TY29wZTogbnVsbCxcbiAgICAgICAgYnV0dG9uVGFnSW5TY29wZTogbnVsbCxcbiAgICAgICAgbm9iclRhZ0luU2NvcGU6IG51bGwsXG4gICAgICAgIHBUYWdJbkJ1dHRvblNjb3BlOiBudWxsLFxuICAgICAgICBsaXN0SXRlbVRhZ0F1dG9jbG9zaW5nOiBudWxsLFxuICAgICAgICBkbEl0ZW1UYWdBdXRvY2xvc2luZzogbnVsbCxcbiAgICAgICAgY29udGFpbmVyVGFnSW5TY29wZTogbnVsbCxcbiAgICAgICAgaW1wbGljaXRSb290U2NvcGU6ICExXG4gICAgICB9LFxuICAgICAgZGlkV2FybiA9IHt9LFxuICAgICAgc2hvcnRoYW5kVG9Mb25naGFuZCA9IHtcbiAgICAgICAgYW5pbWF0aW9uOlxuICAgICAgICAgIFwiYW5pbWF0aW9uRGVsYXkgYW5pbWF0aW9uRGlyZWN0aW9uIGFuaW1hdGlvbkR1cmF0aW9uIGFuaW1hdGlvbkZpbGxNb2RlIGFuaW1hdGlvbkl0ZXJhdGlvbkNvdW50IGFuaW1hdGlvbk5hbWUgYW5pbWF0aW9uUGxheVN0YXRlIGFuaW1hdGlvblRpbWluZ0Z1bmN0aW9uXCIuc3BsaXQoXG4gICAgICAgICAgICBcIiBcIlxuICAgICAgICAgICksXG4gICAgICAgIGJhY2tncm91bmQ6XG4gICAgICAgICAgXCJiYWNrZ3JvdW5kQXR0YWNobWVudCBiYWNrZ3JvdW5kQ2xpcCBiYWNrZ3JvdW5kQ29sb3IgYmFja2dyb3VuZEltYWdlIGJhY2tncm91bmRPcmlnaW4gYmFja2dyb3VuZFBvc2l0aW9uWCBiYWNrZ3JvdW5kUG9zaXRpb25ZIGJhY2tncm91bmRSZXBlYXQgYmFja2dyb3VuZFNpemVcIi5zcGxpdChcbiAgICAgICAgICAgIFwiIFwiXG4gICAgICAgICAgKSxcbiAgICAgICAgYmFja2dyb3VuZFBvc2l0aW9uOiBbXCJiYWNrZ3JvdW5kUG9zaXRpb25YXCIsIFwiYmFja2dyb3VuZFBvc2l0aW9uWVwiXSxcbiAgICAgICAgYm9yZGVyOlxuICAgICAgICAgIFwiYm9yZGVyQm90dG9tQ29sb3IgYm9yZGVyQm90dG9tU3R5bGUgYm9yZGVyQm90dG9tV2lkdGggYm9yZGVySW1hZ2VPdXRzZXQgYm9yZGVySW1hZ2VSZXBlYXQgYm9yZGVySW1hZ2VTbGljZSBib3JkZXJJbWFnZVNvdXJjZSBib3JkZXJJbWFnZVdpZHRoIGJvcmRlckxlZnRDb2xvciBib3JkZXJMZWZ0U3R5bGUgYm9yZGVyTGVmdFdpZHRoIGJvcmRlclJpZ2h0Q29sb3IgYm9yZGVyUmlnaHRTdHlsZSBib3JkZXJSaWdodFdpZHRoIGJvcmRlclRvcENvbG9yIGJvcmRlclRvcFN0eWxlIGJvcmRlclRvcFdpZHRoXCIuc3BsaXQoXG4gICAgICAgICAgICBcIiBcIlxuICAgICAgICAgICksXG4gICAgICAgIGJvcmRlckJsb2NrRW5kOiBbXG4gICAgICAgICAgXCJib3JkZXJCbG9ja0VuZENvbG9yXCIsXG4gICAgICAgICAgXCJib3JkZXJCbG9ja0VuZFN0eWxlXCIsXG4gICAgICAgICAgXCJib3JkZXJCbG9ja0VuZFdpZHRoXCJcbiAgICAgICAgXSxcbiAgICAgICAgYm9yZGVyQmxvY2tTdGFydDogW1xuICAgICAgICAgIFwiYm9yZGVyQmxvY2tTdGFydENvbG9yXCIsXG4gICAgICAgICAgXCJib3JkZXJCbG9ja1N0YXJ0U3R5bGVcIixcbiAgICAgICAgICBcImJvcmRlckJsb2NrU3RhcnRXaWR0aFwiXG4gICAgICAgIF0sXG4gICAgICAgIGJvcmRlckJvdHRvbTogW1xuICAgICAgICAgIFwiYm9yZGVyQm90dG9tQ29sb3JcIixcbiAgICAgICAgICBcImJvcmRlckJvdHRvbVN0eWxlXCIsXG4gICAgICAgICAgXCJib3JkZXJCb3R0b21XaWR0aFwiXG4gICAgICAgIF0sXG4gICAgICAgIGJvcmRlckNvbG9yOiBbXG4gICAgICAgICAgXCJib3JkZXJCb3R0b21Db2xvclwiLFxuICAgICAgICAgIFwiYm9yZGVyTGVmdENvbG9yXCIsXG4gICAgICAgICAgXCJib3JkZXJSaWdodENvbG9yXCIsXG4gICAgICAgICAgXCJib3JkZXJUb3BDb2xvclwiXG4gICAgICAgIF0sXG4gICAgICAgIGJvcmRlckltYWdlOiBbXG4gICAgICAgICAgXCJib3JkZXJJbWFnZU91dHNldFwiLFxuICAgICAgICAgIFwiYm9yZGVySW1hZ2VSZXBlYXRcIixcbiAgICAgICAgICBcImJvcmRlckltYWdlU2xpY2VcIixcbiAgICAgICAgICBcImJvcmRlckltYWdlU291cmNlXCIsXG4gICAgICAgICAgXCJib3JkZXJJbWFnZVdpZHRoXCJcbiAgICAgICAgXSxcbiAgICAgICAgYm9yZGVySW5saW5lRW5kOiBbXG4gICAgICAgICAgXCJib3JkZXJJbmxpbmVFbmRDb2xvclwiLFxuICAgICAgICAgIFwiYm9yZGVySW5saW5lRW5kU3R5bGVcIixcbiAgICAgICAgICBcImJvcmRlcklubGluZUVuZFdpZHRoXCJcbiAgICAgICAgXSxcbiAgICAgICAgYm9yZGVySW5saW5lU3RhcnQ6IFtcbiAgICAgICAgICBcImJvcmRlcklubGluZVN0YXJ0Q29sb3JcIixcbiAgICAgICAgICBcImJvcmRlcklubGluZVN0YXJ0U3R5bGVcIixcbiAgICAgICAgICBcImJvcmRlcklubGluZVN0YXJ0V2lkdGhcIlxuICAgICAgICBdLFxuICAgICAgICBib3JkZXJMZWZ0OiBbXCJib3JkZXJMZWZ0Q29sb3JcIiwgXCJib3JkZXJMZWZ0U3R5bGVcIiwgXCJib3JkZXJMZWZ0V2lkdGhcIl0sXG4gICAgICAgIGJvcmRlclJhZGl1czogW1xuICAgICAgICAgIFwiYm9yZGVyQm90dG9tTGVmdFJhZGl1c1wiLFxuICAgICAgICAgIFwiYm9yZGVyQm90dG9tUmlnaHRSYWRpdXNcIixcbiAgICAgICAgICBcImJvcmRlclRvcExlZnRSYWRpdXNcIixcbiAgICAgICAgICBcImJvcmRlclRvcFJpZ2h0UmFkaXVzXCJcbiAgICAgICAgXSxcbiAgICAgICAgYm9yZGVyUmlnaHQ6IFtcbiAgICAgICAgICBcImJvcmRlclJpZ2h0Q29sb3JcIixcbiAgICAgICAgICBcImJvcmRlclJpZ2h0U3R5bGVcIixcbiAgICAgICAgICBcImJvcmRlclJpZ2h0V2lkdGhcIlxuICAgICAgICBdLFxuICAgICAgICBib3JkZXJTdHlsZTogW1xuICAgICAgICAgIFwiYm9yZGVyQm90dG9tU3R5bGVcIixcbiAgICAgICAgICBcImJvcmRlckxlZnRTdHlsZVwiLFxuICAgICAgICAgIFwiYm9yZGVyUmlnaHRTdHlsZVwiLFxuICAgICAgICAgIFwiYm9yZGVyVG9wU3R5bGVcIlxuICAgICAgICBdLFxuICAgICAgICBib3JkZXJUb3A6IFtcImJvcmRlclRvcENvbG9yXCIsIFwiYm9yZGVyVG9wU3R5bGVcIiwgXCJib3JkZXJUb3BXaWR0aFwiXSxcbiAgICAgICAgYm9yZGVyV2lkdGg6IFtcbiAgICAgICAgICBcImJvcmRlckJvdHRvbVdpZHRoXCIsXG4gICAgICAgICAgXCJib3JkZXJMZWZ0V2lkdGhcIixcbiAgICAgICAgICBcImJvcmRlclJpZ2h0V2lkdGhcIixcbiAgICAgICAgICBcImJvcmRlclRvcFdpZHRoXCJcbiAgICAgICAgXSxcbiAgICAgICAgY29sdW1uUnVsZTogW1wiY29sdW1uUnVsZUNvbG9yXCIsIFwiY29sdW1uUnVsZVN0eWxlXCIsIFwiY29sdW1uUnVsZVdpZHRoXCJdLFxuICAgICAgICBjb2x1bW5zOiBbXCJjb2x1bW5Db3VudFwiLCBcImNvbHVtbldpZHRoXCJdLFxuICAgICAgICBmbGV4OiBbXCJmbGV4QmFzaXNcIiwgXCJmbGV4R3Jvd1wiLCBcImZsZXhTaHJpbmtcIl0sXG4gICAgICAgIGZsZXhGbG93OiBbXCJmbGV4RGlyZWN0aW9uXCIsIFwiZmxleFdyYXBcIl0sXG4gICAgICAgIGZvbnQ6IFwiZm9udEZhbWlseSBmb250RmVhdHVyZVNldHRpbmdzIGZvbnRLZXJuaW5nIGZvbnRMYW5ndWFnZU92ZXJyaWRlIGZvbnRTaXplIGZvbnRTaXplQWRqdXN0IGZvbnRTdHJldGNoIGZvbnRTdHlsZSBmb250VmFyaWFudCBmb250VmFyaWFudEFsdGVybmF0ZXMgZm9udFZhcmlhbnRDYXBzIGZvbnRWYXJpYW50RWFzdEFzaWFuIGZvbnRWYXJpYW50TGlnYXR1cmVzIGZvbnRWYXJpYW50TnVtZXJpYyBmb250VmFyaWFudFBvc2l0aW9uIGZvbnRXZWlnaHQgbGluZUhlaWdodFwiLnNwbGl0KFxuICAgICAgICAgIFwiIFwiXG4gICAgICAgICksXG4gICAgICAgIGZvbnRWYXJpYW50OlxuICAgICAgICAgIFwiZm9udFZhcmlhbnRBbHRlcm5hdGVzIGZvbnRWYXJpYW50Q2FwcyBmb250VmFyaWFudEVhc3RBc2lhbiBmb250VmFyaWFudExpZ2F0dXJlcyBmb250VmFyaWFudE51bWVyaWMgZm9udFZhcmlhbnRQb3NpdGlvblwiLnNwbGl0KFxuICAgICAgICAgICAgXCIgXCJcbiAgICAgICAgICApLFxuICAgICAgICBnYXA6IFtcImNvbHVtbkdhcFwiLCBcInJvd0dhcFwiXSxcbiAgICAgICAgZ3JpZDogXCJncmlkQXV0b0NvbHVtbnMgZ3JpZEF1dG9GbG93IGdyaWRBdXRvUm93cyBncmlkVGVtcGxhdGVBcmVhcyBncmlkVGVtcGxhdGVDb2x1bW5zIGdyaWRUZW1wbGF0ZVJvd3NcIi5zcGxpdChcbiAgICAgICAgICBcIiBcIlxuICAgICAgICApLFxuICAgICAgICBncmlkQXJlYTogW1xuICAgICAgICAgIFwiZ3JpZENvbHVtbkVuZFwiLFxuICAgICAgICAgIFwiZ3JpZENvbHVtblN0YXJ0XCIsXG4gICAgICAgICAgXCJncmlkUm93RW5kXCIsXG4gICAgICAgICAgXCJncmlkUm93U3RhcnRcIlxuICAgICAgICBdLFxuICAgICAgICBncmlkQ29sdW1uOiBbXCJncmlkQ29sdW1uRW5kXCIsIFwiZ3JpZENvbHVtblN0YXJ0XCJdLFxuICAgICAgICBncmlkQ29sdW1uR2FwOiBbXCJjb2x1bW5HYXBcIl0sXG4gICAgICAgIGdyaWRHYXA6IFtcImNvbHVtbkdhcFwiLCBcInJvd0dhcFwiXSxcbiAgICAgICAgZ3JpZFJvdzogW1wiZ3JpZFJvd0VuZFwiLCBcImdyaWRSb3dTdGFydFwiXSxcbiAgICAgICAgZ3JpZFJvd0dhcDogW1wicm93R2FwXCJdLFxuICAgICAgICBncmlkVGVtcGxhdGU6IFtcbiAgICAgICAgICBcImdyaWRUZW1wbGF0ZUFyZWFzXCIsXG4gICAgICAgICAgXCJncmlkVGVtcGxhdGVDb2x1bW5zXCIsXG4gICAgICAgICAgXCJncmlkVGVtcGxhdGVSb3dzXCJcbiAgICAgICAgXSxcbiAgICAgICAgbGlzdFN0eWxlOiBbXCJsaXN0U3R5bGVJbWFnZVwiLCBcImxpc3RTdHlsZVBvc2l0aW9uXCIsIFwibGlzdFN0eWxlVHlwZVwiXSxcbiAgICAgICAgbWFyZ2luOiBbXCJtYXJnaW5Cb3R0b21cIiwgXCJtYXJnaW5MZWZ0XCIsIFwibWFyZ2luUmlnaHRcIiwgXCJtYXJnaW5Ub3BcIl0sXG4gICAgICAgIG1hcmtlcjogW1wibWFya2VyRW5kXCIsIFwibWFya2VyTWlkXCIsIFwibWFya2VyU3RhcnRcIl0sXG4gICAgICAgIG1hc2s6IFwibWFza0NsaXAgbWFza0NvbXBvc2l0ZSBtYXNrSW1hZ2UgbWFza01vZGUgbWFza09yaWdpbiBtYXNrUG9zaXRpb25YIG1hc2tQb3NpdGlvblkgbWFza1JlcGVhdCBtYXNrU2l6ZVwiLnNwbGl0KFxuICAgICAgICAgIFwiIFwiXG4gICAgICAgICksXG4gICAgICAgIG1hc2tQb3NpdGlvbjogW1wibWFza1Bvc2l0aW9uWFwiLCBcIm1hc2tQb3NpdGlvbllcIl0sXG4gICAgICAgIG91dGxpbmU6IFtcIm91dGxpbmVDb2xvclwiLCBcIm91dGxpbmVTdHlsZVwiLCBcIm91dGxpbmVXaWR0aFwiXSxcbiAgICAgICAgb3ZlcmZsb3c6IFtcIm92ZXJmbG93WFwiLCBcIm92ZXJmbG93WVwiXSxcbiAgICAgICAgcGFkZGluZzogW1wicGFkZGluZ0JvdHRvbVwiLCBcInBhZGRpbmdMZWZ0XCIsIFwicGFkZGluZ1JpZ2h0XCIsIFwicGFkZGluZ1RvcFwiXSxcbiAgICAgICAgcGxhY2VDb250ZW50OiBbXCJhbGlnbkNvbnRlbnRcIiwgXCJqdXN0aWZ5Q29udGVudFwiXSxcbiAgICAgICAgcGxhY2VJdGVtczogW1wiYWxpZ25JdGVtc1wiLCBcImp1c3RpZnlJdGVtc1wiXSxcbiAgICAgICAgcGxhY2VTZWxmOiBbXCJhbGlnblNlbGZcIiwgXCJqdXN0aWZ5U2VsZlwiXSxcbiAgICAgICAgdGV4dERlY29yYXRpb246IFtcbiAgICAgICAgICBcInRleHREZWNvcmF0aW9uQ29sb3JcIixcbiAgICAgICAgICBcInRleHREZWNvcmF0aW9uTGluZVwiLFxuICAgICAgICAgIFwidGV4dERlY29yYXRpb25TdHlsZVwiXG4gICAgICAgIF0sXG4gICAgICAgIHRleHRFbXBoYXNpczogW1widGV4dEVtcGhhc2lzQ29sb3JcIiwgXCJ0ZXh0RW1waGFzaXNTdHlsZVwiXSxcbiAgICAgICAgdHJhbnNpdGlvbjogW1xuICAgICAgICAgIFwidHJhbnNpdGlvbkRlbGF5XCIsXG4gICAgICAgICAgXCJ0cmFuc2l0aW9uRHVyYXRpb25cIixcbiAgICAgICAgICBcInRyYW5zaXRpb25Qcm9wZXJ0eVwiLFxuICAgICAgICAgIFwidHJhbnNpdGlvblRpbWluZ0Z1bmN0aW9uXCJcbiAgICAgICAgXSxcbiAgICAgICAgd29yZFdyYXA6IFtcIm92ZXJmbG93V3JhcFwiXVxuICAgICAgfSxcbiAgICAgIHVwcGVyY2FzZVBhdHRlcm4gPSAvKFtBLVpdKS9nLFxuICAgICAgbXNQYXR0ZXJuJDEgPSAvXm1zLS8sXG4gICAgICBiYWRWZW5kb3JlZFN0eWxlTmFtZVBhdHRlcm4gPSAvXig/OndlYmtpdHxtb3p8bylbQS1aXS8sXG4gICAgICBtc1BhdHRlcm4gPSAvXi1tcy0vLFxuICAgICAgaHlwaGVuUGF0dGVybiA9IC8tKC4pL2csXG4gICAgICBiYWRTdHlsZVZhbHVlV2l0aFNlbWljb2xvblBhdHRlcm4gPSAvO1xccyokLyxcbiAgICAgIHdhcm5lZFN0eWxlTmFtZXMgPSB7fSxcbiAgICAgIHdhcm5lZFN0eWxlVmFsdWVzID0ge30sXG4gICAgICB3YXJuZWRGb3JOYU5WYWx1ZSA9ICExLFxuICAgICAgd2FybmVkRm9ySW5maW5pdHlWYWx1ZSA9ICExLFxuICAgICAgdW5pdGxlc3NOdW1iZXJzID0gbmV3IFNldChcbiAgICAgICAgXCJhbmltYXRpb25JdGVyYXRpb25Db3VudCBhc3BlY3RSYXRpbyBib3JkZXJJbWFnZU91dHNldCBib3JkZXJJbWFnZVNsaWNlIGJvcmRlckltYWdlV2lkdGggYm94RmxleCBib3hGbGV4R3JvdXAgYm94T3JkaW5hbEdyb3VwIGNvbHVtbkNvdW50IGNvbHVtbnMgZmxleCBmbGV4R3JvdyBmbGV4UG9zaXRpdmUgZmxleFNocmluayBmbGV4TmVnYXRpdmUgZmxleE9yZGVyIGdyaWRBcmVhIGdyaWRSb3cgZ3JpZFJvd0VuZCBncmlkUm93U3BhbiBncmlkUm93U3RhcnQgZ3JpZENvbHVtbiBncmlkQ29sdW1uRW5kIGdyaWRDb2x1bW5TcGFuIGdyaWRDb2x1bW5TdGFydCBmb250V2VpZ2h0IGxpbmVDbGFtcCBsaW5lSGVpZ2h0IG9wYWNpdHkgb3JkZXIgb3JwaGFucyBzY2FsZSB0YWJTaXplIHdpZG93cyB6SW5kZXggem9vbSBmaWxsT3BhY2l0eSBmbG9vZE9wYWNpdHkgc3RvcE9wYWNpdHkgc3Ryb2tlRGFzaGFycmF5IHN0cm9rZURhc2hvZmZzZXQgc3Ryb2tlTWl0ZXJsaW1pdCBzdHJva2VPcGFjaXR5IHN0cm9rZVdpZHRoIE1vekFuaW1hdGlvbkl0ZXJhdGlvbkNvdW50IE1vekJveEZsZXggTW96Qm94RmxleEdyb3VwIE1vekxpbmVDbGFtcCBtc0FuaW1hdGlvbkl0ZXJhdGlvbkNvdW50IG1zRmxleCBtc1pvb20gbXNGbGV4R3JvdyBtc0ZsZXhOZWdhdGl2ZSBtc0ZsZXhPcmRlciBtc0ZsZXhQb3NpdGl2ZSBtc0ZsZXhTaHJpbmsgbXNHcmlkQ29sdW1uIG1zR3JpZENvbHVtblNwYW4gbXNHcmlkUm93IG1zR3JpZFJvd1NwYW4gV2Via2l0QW5pbWF0aW9uSXRlcmF0aW9uQ291bnQgV2Via2l0Qm94RmxleCBXZWJLaXRCb3hGbGV4R3JvdXAgV2Via2l0Qm94T3JkaW5hbEdyb3VwIFdlYmtpdENvbHVtbkNvdW50IFdlYmtpdENvbHVtbnMgV2Via2l0RmxleCBXZWJraXRGbGV4R3JvdyBXZWJraXRGbGV4UG9zaXRpdmUgV2Via2l0RmxleFNocmluayBXZWJraXRMaW5lQ2xhbXBcIi5zcGxpdChcbiAgICAgICAgICBcIiBcIlxuICAgICAgICApXG4gICAgICApLFxuICAgICAgTUFUSF9OQU1FU1BBQ0UgPSBcImh0dHA6Ly93d3cudzMub3JnLzE5OTgvTWF0aC9NYXRoTUxcIixcbiAgICAgIFNWR19OQU1FU1BBQ0UgPSBcImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIsXG4gICAgICBhbGlhc2VzID0gbmV3IE1hcChbXG4gICAgICAgIFtcImFjY2VwdENoYXJzZXRcIiwgXCJhY2NlcHQtY2hhcnNldFwiXSxcbiAgICAgICAgW1wiaHRtbEZvclwiLCBcImZvclwiXSxcbiAgICAgICAgW1wiaHR0cEVxdWl2XCIsIFwiaHR0cC1lcXVpdlwiXSxcbiAgICAgICAgW1wiY3Jvc3NPcmlnaW5cIiwgXCJjcm9zc29yaWdpblwiXSxcbiAgICAgICAgW1wiYWNjZW50SGVpZ2h0XCIsIFwiYWNjZW50LWhlaWdodFwiXSxcbiAgICAgICAgW1wiYWxpZ25tZW50QmFzZWxpbmVcIiwgXCJhbGlnbm1lbnQtYmFzZWxpbmVcIl0sXG4gICAgICAgIFtcImFyYWJpY0Zvcm1cIiwgXCJhcmFiaWMtZm9ybVwiXSxcbiAgICAgICAgW1wiYmFzZWxpbmVTaGlmdFwiLCBcImJhc2VsaW5lLXNoaWZ0XCJdLFxuICAgICAgICBbXCJjYXBIZWlnaHRcIiwgXCJjYXAtaGVpZ2h0XCJdLFxuICAgICAgICBbXCJjbGlwUGF0aFwiLCBcImNsaXAtcGF0aFwiXSxcbiAgICAgICAgW1wiY2xpcFJ1bGVcIiwgXCJjbGlwLXJ1bGVcIl0sXG4gICAgICAgIFtcImNvbG9ySW50ZXJwb2xhdGlvblwiLCBcImNvbG9yLWludGVycG9sYXRpb25cIl0sXG4gICAgICAgIFtcImNvbG9ySW50ZXJwb2xhdGlvbkZpbHRlcnNcIiwgXCJjb2xvci1pbnRlcnBvbGF0aW9uLWZpbHRlcnNcIl0sXG4gICAgICAgIFtcImNvbG9yUHJvZmlsZVwiLCBcImNvbG9yLXByb2ZpbGVcIl0sXG4gICAgICAgIFtcImNvbG9yUmVuZGVyaW5nXCIsIFwiY29sb3ItcmVuZGVyaW5nXCJdLFxuICAgICAgICBbXCJkb21pbmFudEJhc2VsaW5lXCIsIFwiZG9taW5hbnQtYmFzZWxpbmVcIl0sXG4gICAgICAgIFtcImVuYWJsZUJhY2tncm91bmRcIiwgXCJlbmFibGUtYmFja2dyb3VuZFwiXSxcbiAgICAgICAgW1wiZmlsbE9wYWNpdHlcIiwgXCJmaWxsLW9wYWNpdHlcIl0sXG4gICAgICAgIFtcImZpbGxSdWxlXCIsIFwiZmlsbC1ydWxlXCJdLFxuICAgICAgICBbXCJmbG9vZENvbG9yXCIsIFwiZmxvb2QtY29sb3JcIl0sXG4gICAgICAgIFtcImZsb29kT3BhY2l0eVwiLCBcImZsb29kLW9wYWNpdHlcIl0sXG4gICAgICAgIFtcImZvbnRGYW1pbHlcIiwgXCJmb250LWZhbWlseVwiXSxcbiAgICAgICAgW1wiZm9udFNpemVcIiwgXCJmb250LXNpemVcIl0sXG4gICAgICAgIFtcImZvbnRTaXplQWRqdXN0XCIsIFwiZm9udC1zaXplLWFkanVzdFwiXSxcbiAgICAgICAgW1wiZm9udFN0cmV0Y2hcIiwgXCJmb250LXN0cmV0Y2hcIl0sXG4gICAgICAgIFtcImZvbnRTdHlsZVwiLCBcImZvbnQtc3R5bGVcIl0sXG4gICAgICAgIFtcImZvbnRWYXJpYW50XCIsIFwiZm9udC12YXJpYW50XCJdLFxuICAgICAgICBbXCJmb250V2VpZ2h0XCIsIFwiZm9udC13ZWlnaHRcIl0sXG4gICAgICAgIFtcImdseXBoTmFtZVwiLCBcImdseXBoLW5hbWVcIl0sXG4gICAgICAgIFtcImdseXBoT3JpZW50YXRpb25Ib3Jpem9udGFsXCIsIFwiZ2x5cGgtb3JpZW50YXRpb24taG9yaXpvbnRhbFwiXSxcbiAgICAgICAgW1wiZ2x5cGhPcmllbnRhdGlvblZlcnRpY2FsXCIsIFwiZ2x5cGgtb3JpZW50YXRpb24tdmVydGljYWxcIl0sXG4gICAgICAgIFtcImhvcml6QWR2WFwiLCBcImhvcml6LWFkdi14XCJdLFxuICAgICAgICBbXCJob3Jpek9yaWdpblhcIiwgXCJob3Jpei1vcmlnaW4teFwiXSxcbiAgICAgICAgW1wiaW1hZ2VSZW5kZXJpbmdcIiwgXCJpbWFnZS1yZW5kZXJpbmdcIl0sXG4gICAgICAgIFtcImxldHRlclNwYWNpbmdcIiwgXCJsZXR0ZXItc3BhY2luZ1wiXSxcbiAgICAgICAgW1wibGlnaHRpbmdDb2xvclwiLCBcImxpZ2h0aW5nLWNvbG9yXCJdLFxuICAgICAgICBbXCJtYXJrZXJFbmRcIiwgXCJtYXJrZXItZW5kXCJdLFxuICAgICAgICBbXCJtYXJrZXJNaWRcIiwgXCJtYXJrZXItbWlkXCJdLFxuICAgICAgICBbXCJtYXJrZXJTdGFydFwiLCBcIm1hcmtlci1zdGFydFwiXSxcbiAgICAgICAgW1wib3ZlcmxpbmVQb3NpdGlvblwiLCBcIm92ZXJsaW5lLXBvc2l0aW9uXCJdLFxuICAgICAgICBbXCJvdmVybGluZVRoaWNrbmVzc1wiLCBcIm92ZXJsaW5lLXRoaWNrbmVzc1wiXSxcbiAgICAgICAgW1wicGFpbnRPcmRlclwiLCBcInBhaW50LW9yZGVyXCJdLFxuICAgICAgICBbXCJwYW5vc2UtMVwiLCBcInBhbm9zZS0xXCJdLFxuICAgICAgICBbXCJwb2ludGVyRXZlbnRzXCIsIFwicG9pbnRlci1ldmVudHNcIl0sXG4gICAgICAgIFtcInJlbmRlcmluZ0ludGVudFwiLCBcInJlbmRlcmluZy1pbnRlbnRcIl0sXG4gICAgICAgIFtcInNoYXBlUmVuZGVyaW5nXCIsIFwic2hhcGUtcmVuZGVyaW5nXCJdLFxuICAgICAgICBbXCJzdG9wQ29sb3JcIiwgXCJzdG9wLWNvbG9yXCJdLFxuICAgICAgICBbXCJzdG9wT3BhY2l0eVwiLCBcInN0b3Atb3BhY2l0eVwiXSxcbiAgICAgICAgW1wic3RyaWtldGhyb3VnaFBvc2l0aW9uXCIsIFwic3RyaWtldGhyb3VnaC1wb3NpdGlvblwiXSxcbiAgICAgICAgW1wic3RyaWtldGhyb3VnaFRoaWNrbmVzc1wiLCBcInN0cmlrZXRocm91Z2gtdGhpY2tuZXNzXCJdLFxuICAgICAgICBbXCJzdHJva2VEYXNoYXJyYXlcIiwgXCJzdHJva2UtZGFzaGFycmF5XCJdLFxuICAgICAgICBbXCJzdHJva2VEYXNob2Zmc2V0XCIsIFwic3Ryb2tlLWRhc2hvZmZzZXRcIl0sXG4gICAgICAgIFtcInN0cm9rZUxpbmVjYXBcIiwgXCJzdHJva2UtbGluZWNhcFwiXSxcbiAgICAgICAgW1wic3Ryb2tlTGluZWpvaW5cIiwgXCJzdHJva2UtbGluZWpvaW5cIl0sXG4gICAgICAgIFtcInN0cm9rZU1pdGVybGltaXRcIiwgXCJzdHJva2UtbWl0ZXJsaW1pdFwiXSxcbiAgICAgICAgW1wic3Ryb2tlT3BhY2l0eVwiLCBcInN0cm9rZS1vcGFjaXR5XCJdLFxuICAgICAgICBbXCJzdHJva2VXaWR0aFwiLCBcInN0cm9rZS13aWR0aFwiXSxcbiAgICAgICAgW1widGV4dEFuY2hvclwiLCBcInRleHQtYW5jaG9yXCJdLFxuICAgICAgICBbXCJ0ZXh0RGVjb3JhdGlvblwiLCBcInRleHQtZGVjb3JhdGlvblwiXSxcbiAgICAgICAgW1widGV4dFJlbmRlcmluZ1wiLCBcInRleHQtcmVuZGVyaW5nXCJdLFxuICAgICAgICBbXCJ0cmFuc2Zvcm1PcmlnaW5cIiwgXCJ0cmFuc2Zvcm0tb3JpZ2luXCJdLFxuICAgICAgICBbXCJ1bmRlcmxpbmVQb3NpdGlvblwiLCBcInVuZGVybGluZS1wb3NpdGlvblwiXSxcbiAgICAgICAgW1widW5kZXJsaW5lVGhpY2tuZXNzXCIsIFwidW5kZXJsaW5lLXRoaWNrbmVzc1wiXSxcbiAgICAgICAgW1widW5pY29kZUJpZGlcIiwgXCJ1bmljb2RlLWJpZGlcIl0sXG4gICAgICAgIFtcInVuaWNvZGVSYW5nZVwiLCBcInVuaWNvZGUtcmFuZ2VcIl0sXG4gICAgICAgIFtcInVuaXRzUGVyRW1cIiwgXCJ1bml0cy1wZXItZW1cIl0sXG4gICAgICAgIFtcInZBbHBoYWJldGljXCIsIFwidi1hbHBoYWJldGljXCJdLFxuICAgICAgICBbXCJ2SGFuZ2luZ1wiLCBcInYtaGFuZ2luZ1wiXSxcbiAgICAgICAgW1widklkZW9ncmFwaGljXCIsIFwidi1pZGVvZ3JhcGhpY1wiXSxcbiAgICAgICAgW1widk1hdGhlbWF0aWNhbFwiLCBcInYtbWF0aGVtYXRpY2FsXCJdLFxuICAgICAgICBbXCJ2ZWN0b3JFZmZlY3RcIiwgXCJ2ZWN0b3ItZWZmZWN0XCJdLFxuICAgICAgICBbXCJ2ZXJ0QWR2WVwiLCBcInZlcnQtYWR2LXlcIl0sXG4gICAgICAgIFtcInZlcnRPcmlnaW5YXCIsIFwidmVydC1vcmlnaW4teFwiXSxcbiAgICAgICAgW1widmVydE9yaWdpbllcIiwgXCJ2ZXJ0LW9yaWdpbi15XCJdLFxuICAgICAgICBbXCJ3b3JkU3BhY2luZ1wiLCBcIndvcmQtc3BhY2luZ1wiXSxcbiAgICAgICAgW1wid3JpdGluZ01vZGVcIiwgXCJ3cml0aW5nLW1vZGVcIl0sXG4gICAgICAgIFtcInhtbG5zWGxpbmtcIiwgXCJ4bWxuczp4bGlua1wiXSxcbiAgICAgICAgW1wieEhlaWdodFwiLCBcIngtaGVpZ2h0XCJdXG4gICAgICBdKSxcbiAgICAgIHBvc3NpYmxlU3RhbmRhcmROYW1lcyA9IHtcbiAgICAgICAgYWNjZXB0OiBcImFjY2VwdFwiLFxuICAgICAgICBhY2NlcHRjaGFyc2V0OiBcImFjY2VwdENoYXJzZXRcIixcbiAgICAgICAgXCJhY2NlcHQtY2hhcnNldFwiOiBcImFjY2VwdENoYXJzZXRcIixcbiAgICAgICAgYWNjZXNza2V5OiBcImFjY2Vzc0tleVwiLFxuICAgICAgICBhY3Rpb246IFwiYWN0aW9uXCIsXG4gICAgICAgIGFsbG93ZnVsbHNjcmVlbjogXCJhbGxvd0Z1bGxTY3JlZW5cIixcbiAgICAgICAgYWx0OiBcImFsdFwiLFxuICAgICAgICBhczogXCJhc1wiLFxuICAgICAgICBhc3luYzogXCJhc3luY1wiLFxuICAgICAgICBhdXRvY2FwaXRhbGl6ZTogXCJhdXRvQ2FwaXRhbGl6ZVwiLFxuICAgICAgICBhdXRvY29tcGxldGU6IFwiYXV0b0NvbXBsZXRlXCIsXG4gICAgICAgIGF1dG9jb3JyZWN0OiBcImF1dG9Db3JyZWN0XCIsXG4gICAgICAgIGF1dG9mb2N1czogXCJhdXRvRm9jdXNcIixcbiAgICAgICAgYXV0b3BsYXk6IFwiYXV0b1BsYXlcIixcbiAgICAgICAgYXV0b3NhdmU6IFwiYXV0b1NhdmVcIixcbiAgICAgICAgY2FwdHVyZTogXCJjYXB0dXJlXCIsXG4gICAgICAgIGNlbGxwYWRkaW5nOiBcImNlbGxQYWRkaW5nXCIsXG4gICAgICAgIGNlbGxzcGFjaW5nOiBcImNlbGxTcGFjaW5nXCIsXG4gICAgICAgIGNoYWxsZW5nZTogXCJjaGFsbGVuZ2VcIixcbiAgICAgICAgY2hhcnNldDogXCJjaGFyU2V0XCIsXG4gICAgICAgIGNoZWNrZWQ6IFwiY2hlY2tlZFwiLFxuICAgICAgICBjaGlsZHJlbjogXCJjaGlsZHJlblwiLFxuICAgICAgICBjaXRlOiBcImNpdGVcIixcbiAgICAgICAgY2xhc3M6IFwiY2xhc3NOYW1lXCIsXG4gICAgICAgIGNsYXNzaWQ6IFwiY2xhc3NJRFwiLFxuICAgICAgICBjbGFzc25hbWU6IFwiY2xhc3NOYW1lXCIsXG4gICAgICAgIGNvbHM6IFwiY29sc1wiLFxuICAgICAgICBjb2xzcGFuOiBcImNvbFNwYW5cIixcbiAgICAgICAgY29udGVudDogXCJjb250ZW50XCIsXG4gICAgICAgIGNvbnRlbnRlZGl0YWJsZTogXCJjb250ZW50RWRpdGFibGVcIixcbiAgICAgICAgY29udGV4dG1lbnU6IFwiY29udGV4dE1lbnVcIixcbiAgICAgICAgY29udHJvbHM6IFwiY29udHJvbHNcIixcbiAgICAgICAgY29udHJvbHNsaXN0OiBcImNvbnRyb2xzTGlzdFwiLFxuICAgICAgICBjb29yZHM6IFwiY29vcmRzXCIsXG4gICAgICAgIGNyb3Nzb3JpZ2luOiBcImNyb3NzT3JpZ2luXCIsXG4gICAgICAgIGRhbmdlcm91c2x5c2V0aW5uZXJodG1sOiBcImRhbmdlcm91c2x5U2V0SW5uZXJIVE1MXCIsXG4gICAgICAgIGRhdGE6IFwiZGF0YVwiLFxuICAgICAgICBkYXRldGltZTogXCJkYXRlVGltZVwiLFxuICAgICAgICBkZWZhdWx0OiBcImRlZmF1bHRcIixcbiAgICAgICAgZGVmYXVsdGNoZWNrZWQ6IFwiZGVmYXVsdENoZWNrZWRcIixcbiAgICAgICAgZGVmYXVsdHZhbHVlOiBcImRlZmF1bHRWYWx1ZVwiLFxuICAgICAgICBkZWZlcjogXCJkZWZlclwiLFxuICAgICAgICBkaXI6IFwiZGlyXCIsXG4gICAgICAgIGRpc2FibGVkOiBcImRpc2FibGVkXCIsXG4gICAgICAgIGRpc2FibGVwaWN0dXJlaW5waWN0dXJlOiBcImRpc2FibGVQaWN0dXJlSW5QaWN0dXJlXCIsXG4gICAgICAgIGRpc2FibGVyZW1vdGVwbGF5YmFjazogXCJkaXNhYmxlUmVtb3RlUGxheWJhY2tcIixcbiAgICAgICAgZG93bmxvYWQ6IFwiZG93bmxvYWRcIixcbiAgICAgICAgZHJhZ2dhYmxlOiBcImRyYWdnYWJsZVwiLFxuICAgICAgICBlbmN0eXBlOiBcImVuY1R5cGVcIixcbiAgICAgICAgZW50ZXJrZXloaW50OiBcImVudGVyS2V5SGludFwiLFxuICAgICAgICBmZXRjaHByaW9yaXR5OiBcImZldGNoUHJpb3JpdHlcIixcbiAgICAgICAgZm9yOiBcImh0bWxGb3JcIixcbiAgICAgICAgZm9ybTogXCJmb3JtXCIsXG4gICAgICAgIGZvcm1tZXRob2Q6IFwiZm9ybU1ldGhvZFwiLFxuICAgICAgICBmb3JtYWN0aW9uOiBcImZvcm1BY3Rpb25cIixcbiAgICAgICAgZm9ybWVuY3R5cGU6IFwiZm9ybUVuY1R5cGVcIixcbiAgICAgICAgZm9ybW5vdmFsaWRhdGU6IFwiZm9ybU5vVmFsaWRhdGVcIixcbiAgICAgICAgZm9ybXRhcmdldDogXCJmb3JtVGFyZ2V0XCIsXG4gICAgICAgIGZyYW1lYm9yZGVyOiBcImZyYW1lQm9yZGVyXCIsXG4gICAgICAgIGhlYWRlcnM6IFwiaGVhZGVyc1wiLFxuICAgICAgICBoZWlnaHQ6IFwiaGVpZ2h0XCIsXG4gICAgICAgIGhpZGRlbjogXCJoaWRkZW5cIixcbiAgICAgICAgaGlnaDogXCJoaWdoXCIsXG4gICAgICAgIGhyZWY6IFwiaHJlZlwiLFxuICAgICAgICBocmVmbGFuZzogXCJocmVmTGFuZ1wiLFxuICAgICAgICBodG1sZm9yOiBcImh0bWxGb3JcIixcbiAgICAgICAgaHR0cGVxdWl2OiBcImh0dHBFcXVpdlwiLFxuICAgICAgICBcImh0dHAtZXF1aXZcIjogXCJodHRwRXF1aXZcIixcbiAgICAgICAgaWNvbjogXCJpY29uXCIsXG4gICAgICAgIGlkOiBcImlkXCIsXG4gICAgICAgIGltYWdlc2l6ZXM6IFwiaW1hZ2VTaXplc1wiLFxuICAgICAgICBpbWFnZXNyY3NldDogXCJpbWFnZVNyY1NldFwiLFxuICAgICAgICBpbmVydDogXCJpbmVydFwiLFxuICAgICAgICBpbm5lcmh0bWw6IFwiaW5uZXJIVE1MXCIsXG4gICAgICAgIGlucHV0bW9kZTogXCJpbnB1dE1vZGVcIixcbiAgICAgICAgaW50ZWdyaXR5OiBcImludGVncml0eVwiLFxuICAgICAgICBpczogXCJpc1wiLFxuICAgICAgICBpdGVtaWQ6IFwiaXRlbUlEXCIsXG4gICAgICAgIGl0ZW1wcm9wOiBcIml0ZW1Qcm9wXCIsXG4gICAgICAgIGl0ZW1yZWY6IFwiaXRlbVJlZlwiLFxuICAgICAgICBpdGVtc2NvcGU6IFwiaXRlbVNjb3BlXCIsXG4gICAgICAgIGl0ZW10eXBlOiBcIml0ZW1UeXBlXCIsXG4gICAgICAgIGtleXBhcmFtczogXCJrZXlQYXJhbXNcIixcbiAgICAgICAga2V5dHlwZTogXCJrZXlUeXBlXCIsXG4gICAgICAgIGtpbmQ6IFwia2luZFwiLFxuICAgICAgICBsYWJlbDogXCJsYWJlbFwiLFxuICAgICAgICBsYW5nOiBcImxhbmdcIixcbiAgICAgICAgbGlzdDogXCJsaXN0XCIsXG4gICAgICAgIGxvb3A6IFwibG9vcFwiLFxuICAgICAgICBsb3c6IFwibG93XCIsXG4gICAgICAgIG1hbmlmZXN0OiBcIm1hbmlmZXN0XCIsXG4gICAgICAgIG1hcmdpbndpZHRoOiBcIm1hcmdpbldpZHRoXCIsXG4gICAgICAgIG1hcmdpbmhlaWdodDogXCJtYXJnaW5IZWlnaHRcIixcbiAgICAgICAgbWF4OiBcIm1heFwiLFxuICAgICAgICBtYXhsZW5ndGg6IFwibWF4TGVuZ3RoXCIsXG4gICAgICAgIG1lZGlhOiBcIm1lZGlhXCIsXG4gICAgICAgIG1lZGlhZ3JvdXA6IFwibWVkaWFHcm91cFwiLFxuICAgICAgICBtZXRob2Q6IFwibWV0aG9kXCIsXG4gICAgICAgIG1pbjogXCJtaW5cIixcbiAgICAgICAgbWlubGVuZ3RoOiBcIm1pbkxlbmd0aFwiLFxuICAgICAgICBtdWx0aXBsZTogXCJtdWx0aXBsZVwiLFxuICAgICAgICBtdXRlZDogXCJtdXRlZFwiLFxuICAgICAgICBuYW1lOiBcIm5hbWVcIixcbiAgICAgICAgbm9tb2R1bGU6IFwibm9Nb2R1bGVcIixcbiAgICAgICAgbm9uY2U6IFwibm9uY2VcIixcbiAgICAgICAgbm92YWxpZGF0ZTogXCJub1ZhbGlkYXRlXCIsXG4gICAgICAgIG9wZW46IFwib3BlblwiLFxuICAgICAgICBvcHRpbXVtOiBcIm9wdGltdW1cIixcbiAgICAgICAgcGF0dGVybjogXCJwYXR0ZXJuXCIsXG4gICAgICAgIHBsYWNlaG9sZGVyOiBcInBsYWNlaG9sZGVyXCIsXG4gICAgICAgIHBsYXlzaW5saW5lOiBcInBsYXlzSW5saW5lXCIsXG4gICAgICAgIHBvc3RlcjogXCJwb3N0ZXJcIixcbiAgICAgICAgcHJlbG9hZDogXCJwcmVsb2FkXCIsXG4gICAgICAgIHByb2ZpbGU6IFwicHJvZmlsZVwiLFxuICAgICAgICByYWRpb2dyb3VwOiBcInJhZGlvR3JvdXBcIixcbiAgICAgICAgcmVhZG9ubHk6IFwicmVhZE9ubHlcIixcbiAgICAgICAgcmVmZXJyZXJwb2xpY3k6IFwicmVmZXJyZXJQb2xpY3lcIixcbiAgICAgICAgcmVsOiBcInJlbFwiLFxuICAgICAgICByZXF1aXJlZDogXCJyZXF1aXJlZFwiLFxuICAgICAgICByZXZlcnNlZDogXCJyZXZlcnNlZFwiLFxuICAgICAgICByb2xlOiBcInJvbGVcIixcbiAgICAgICAgcm93czogXCJyb3dzXCIsXG4gICAgICAgIHJvd3NwYW46IFwicm93U3BhblwiLFxuICAgICAgICBzYW5kYm94OiBcInNhbmRib3hcIixcbiAgICAgICAgc2NvcGU6IFwic2NvcGVcIixcbiAgICAgICAgc2NvcGVkOiBcInNjb3BlZFwiLFxuICAgICAgICBzY3JvbGxpbmc6IFwic2Nyb2xsaW5nXCIsXG4gICAgICAgIHNlYW1sZXNzOiBcInNlYW1sZXNzXCIsXG4gICAgICAgIHNlbGVjdGVkOiBcInNlbGVjdGVkXCIsXG4gICAgICAgIHNoYXBlOiBcInNoYXBlXCIsXG4gICAgICAgIHNpemU6IFwic2l6ZVwiLFxuICAgICAgICBzaXplczogXCJzaXplc1wiLFxuICAgICAgICBzcGFuOiBcInNwYW5cIixcbiAgICAgICAgc3BlbGxjaGVjazogXCJzcGVsbENoZWNrXCIsXG4gICAgICAgIHNyYzogXCJzcmNcIixcbiAgICAgICAgc3JjZG9jOiBcInNyY0RvY1wiLFxuICAgICAgICBzcmNsYW5nOiBcInNyY0xhbmdcIixcbiAgICAgICAgc3Jjc2V0OiBcInNyY1NldFwiLFxuICAgICAgICBzdGFydDogXCJzdGFydFwiLFxuICAgICAgICBzdGVwOiBcInN0ZXBcIixcbiAgICAgICAgc3R5bGU6IFwic3R5bGVcIixcbiAgICAgICAgc3VtbWFyeTogXCJzdW1tYXJ5XCIsXG4gICAgICAgIHRhYmluZGV4OiBcInRhYkluZGV4XCIsXG4gICAgICAgIHRhcmdldDogXCJ0YXJnZXRcIixcbiAgICAgICAgdGl0bGU6IFwidGl0bGVcIixcbiAgICAgICAgdHlwZTogXCJ0eXBlXCIsXG4gICAgICAgIHVzZW1hcDogXCJ1c2VNYXBcIixcbiAgICAgICAgdmFsdWU6IFwidmFsdWVcIixcbiAgICAgICAgd2lkdGg6IFwid2lkdGhcIixcbiAgICAgICAgd21vZGU6IFwid21vZGVcIixcbiAgICAgICAgd3JhcDogXCJ3cmFwXCIsXG4gICAgICAgIGFib3V0OiBcImFib3V0XCIsXG4gICAgICAgIGFjY2VudGhlaWdodDogXCJhY2NlbnRIZWlnaHRcIixcbiAgICAgICAgXCJhY2NlbnQtaGVpZ2h0XCI6IFwiYWNjZW50SGVpZ2h0XCIsXG4gICAgICAgIGFjY3VtdWxhdGU6IFwiYWNjdW11bGF0ZVwiLFxuICAgICAgICBhZGRpdGl2ZTogXCJhZGRpdGl2ZVwiLFxuICAgICAgICBhbGlnbm1lbnRiYXNlbGluZTogXCJhbGlnbm1lbnRCYXNlbGluZVwiLFxuICAgICAgICBcImFsaWdubWVudC1iYXNlbGluZVwiOiBcImFsaWdubWVudEJhc2VsaW5lXCIsXG4gICAgICAgIGFsbG93cmVvcmRlcjogXCJhbGxvd1Jlb3JkZXJcIixcbiAgICAgICAgYWxwaGFiZXRpYzogXCJhbHBoYWJldGljXCIsXG4gICAgICAgIGFtcGxpdHVkZTogXCJhbXBsaXR1ZGVcIixcbiAgICAgICAgYXJhYmljZm9ybTogXCJhcmFiaWNGb3JtXCIsXG4gICAgICAgIFwiYXJhYmljLWZvcm1cIjogXCJhcmFiaWNGb3JtXCIsXG4gICAgICAgIGFzY2VudDogXCJhc2NlbnRcIixcbiAgICAgICAgYXR0cmlidXRlbmFtZTogXCJhdHRyaWJ1dGVOYW1lXCIsXG4gICAgICAgIGF0dHJpYnV0ZXR5cGU6IFwiYXR0cmlidXRlVHlwZVwiLFxuICAgICAgICBhdXRvcmV2ZXJzZTogXCJhdXRvUmV2ZXJzZVwiLFxuICAgICAgICBhemltdXRoOiBcImF6aW11dGhcIixcbiAgICAgICAgYmFzZWZyZXF1ZW5jeTogXCJiYXNlRnJlcXVlbmN5XCIsXG4gICAgICAgIGJhc2VsaW5lc2hpZnQ6IFwiYmFzZWxpbmVTaGlmdFwiLFxuICAgICAgICBcImJhc2VsaW5lLXNoaWZ0XCI6IFwiYmFzZWxpbmVTaGlmdFwiLFxuICAgICAgICBiYXNlcHJvZmlsZTogXCJiYXNlUHJvZmlsZVwiLFxuICAgICAgICBiYm94OiBcImJib3hcIixcbiAgICAgICAgYmVnaW46IFwiYmVnaW5cIixcbiAgICAgICAgYmlhczogXCJiaWFzXCIsXG4gICAgICAgIGJ5OiBcImJ5XCIsXG4gICAgICAgIGNhbGNtb2RlOiBcImNhbGNNb2RlXCIsXG4gICAgICAgIGNhcGhlaWdodDogXCJjYXBIZWlnaHRcIixcbiAgICAgICAgXCJjYXAtaGVpZ2h0XCI6IFwiY2FwSGVpZ2h0XCIsXG4gICAgICAgIGNsaXA6IFwiY2xpcFwiLFxuICAgICAgICBjbGlwcGF0aDogXCJjbGlwUGF0aFwiLFxuICAgICAgICBcImNsaXAtcGF0aFwiOiBcImNsaXBQYXRoXCIsXG4gICAgICAgIGNsaXBwYXRodW5pdHM6IFwiY2xpcFBhdGhVbml0c1wiLFxuICAgICAgICBjbGlwcnVsZTogXCJjbGlwUnVsZVwiLFxuICAgICAgICBcImNsaXAtcnVsZVwiOiBcImNsaXBSdWxlXCIsXG4gICAgICAgIGNvbG9yOiBcImNvbG9yXCIsXG4gICAgICAgIGNvbG9yaW50ZXJwb2xhdGlvbjogXCJjb2xvckludGVycG9sYXRpb25cIixcbiAgICAgICAgXCJjb2xvci1pbnRlcnBvbGF0aW9uXCI6IFwiY29sb3JJbnRlcnBvbGF0aW9uXCIsXG4gICAgICAgIGNvbG9yaW50ZXJwb2xhdGlvbmZpbHRlcnM6IFwiY29sb3JJbnRlcnBvbGF0aW9uRmlsdGVyc1wiLFxuICAgICAgICBcImNvbG9yLWludGVycG9sYXRpb24tZmlsdGVyc1wiOiBcImNvbG9ySW50ZXJwb2xhdGlvbkZpbHRlcnNcIixcbiAgICAgICAgY29sb3Jwcm9maWxlOiBcImNvbG9yUHJvZmlsZVwiLFxuICAgICAgICBcImNvbG9yLXByb2ZpbGVcIjogXCJjb2xvclByb2ZpbGVcIixcbiAgICAgICAgY29sb3JyZW5kZXJpbmc6IFwiY29sb3JSZW5kZXJpbmdcIixcbiAgICAgICAgXCJjb2xvci1yZW5kZXJpbmdcIjogXCJjb2xvclJlbmRlcmluZ1wiLFxuICAgICAgICBjb250ZW50c2NyaXB0dHlwZTogXCJjb250ZW50U2NyaXB0VHlwZVwiLFxuICAgICAgICBjb250ZW50c3R5bGV0eXBlOiBcImNvbnRlbnRTdHlsZVR5cGVcIixcbiAgICAgICAgY3Vyc29yOiBcImN1cnNvclwiLFxuICAgICAgICBjeDogXCJjeFwiLFxuICAgICAgICBjeTogXCJjeVwiLFxuICAgICAgICBkOiBcImRcIixcbiAgICAgICAgZGF0YXR5cGU6IFwiZGF0YXR5cGVcIixcbiAgICAgICAgZGVjZWxlcmF0ZTogXCJkZWNlbGVyYXRlXCIsXG4gICAgICAgIGRlc2NlbnQ6IFwiZGVzY2VudFwiLFxuICAgICAgICBkaWZmdXNlY29uc3RhbnQ6IFwiZGlmZnVzZUNvbnN0YW50XCIsXG4gICAgICAgIGRpcmVjdGlvbjogXCJkaXJlY3Rpb25cIixcbiAgICAgICAgZGlzcGxheTogXCJkaXNwbGF5XCIsXG4gICAgICAgIGRpdmlzb3I6IFwiZGl2aXNvclwiLFxuICAgICAgICBkb21pbmFudGJhc2VsaW5lOiBcImRvbWluYW50QmFzZWxpbmVcIixcbiAgICAgICAgXCJkb21pbmFudC1iYXNlbGluZVwiOiBcImRvbWluYW50QmFzZWxpbmVcIixcbiAgICAgICAgZHVyOiBcImR1clwiLFxuICAgICAgICBkeDogXCJkeFwiLFxuICAgICAgICBkeTogXCJkeVwiLFxuICAgICAgICBlZGdlbW9kZTogXCJlZGdlTW9kZVwiLFxuICAgICAgICBlbGV2YXRpb246IFwiZWxldmF0aW9uXCIsXG4gICAgICAgIGVuYWJsZWJhY2tncm91bmQ6IFwiZW5hYmxlQmFja2dyb3VuZFwiLFxuICAgICAgICBcImVuYWJsZS1iYWNrZ3JvdW5kXCI6IFwiZW5hYmxlQmFja2dyb3VuZFwiLFxuICAgICAgICBlbmQ6IFwiZW5kXCIsXG4gICAgICAgIGV4cG9uZW50OiBcImV4cG9uZW50XCIsXG4gICAgICAgIGV4dGVybmFscmVzb3VyY2VzcmVxdWlyZWQ6IFwiZXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZFwiLFxuICAgICAgICBmaWxsOiBcImZpbGxcIixcbiAgICAgICAgZmlsbG9wYWNpdHk6IFwiZmlsbE9wYWNpdHlcIixcbiAgICAgICAgXCJmaWxsLW9wYWNpdHlcIjogXCJmaWxsT3BhY2l0eVwiLFxuICAgICAgICBmaWxscnVsZTogXCJmaWxsUnVsZVwiLFxuICAgICAgICBcImZpbGwtcnVsZVwiOiBcImZpbGxSdWxlXCIsXG4gICAgICAgIGZpbHRlcjogXCJmaWx0ZXJcIixcbiAgICAgICAgZmlsdGVycmVzOiBcImZpbHRlclJlc1wiLFxuICAgICAgICBmaWx0ZXJ1bml0czogXCJmaWx0ZXJVbml0c1wiLFxuICAgICAgICBmbG9vZG9wYWNpdHk6IFwiZmxvb2RPcGFjaXR5XCIsXG4gICAgICAgIFwiZmxvb2Qtb3BhY2l0eVwiOiBcImZsb29kT3BhY2l0eVwiLFxuICAgICAgICBmbG9vZGNvbG9yOiBcImZsb29kQ29sb3JcIixcbiAgICAgICAgXCJmbG9vZC1jb2xvclwiOiBcImZsb29kQ29sb3JcIixcbiAgICAgICAgZm9jdXNhYmxlOiBcImZvY3VzYWJsZVwiLFxuICAgICAgICBmb250ZmFtaWx5OiBcImZvbnRGYW1pbHlcIixcbiAgICAgICAgXCJmb250LWZhbWlseVwiOiBcImZvbnRGYW1pbHlcIixcbiAgICAgICAgZm9udHNpemU6IFwiZm9udFNpemVcIixcbiAgICAgICAgXCJmb250LXNpemVcIjogXCJmb250U2l6ZVwiLFxuICAgICAgICBmb250c2l6ZWFkanVzdDogXCJmb250U2l6ZUFkanVzdFwiLFxuICAgICAgICBcImZvbnQtc2l6ZS1hZGp1c3RcIjogXCJmb250U2l6ZUFkanVzdFwiLFxuICAgICAgICBmb250c3RyZXRjaDogXCJmb250U3RyZXRjaFwiLFxuICAgICAgICBcImZvbnQtc3RyZXRjaFwiOiBcImZvbnRTdHJldGNoXCIsXG4gICAgICAgIGZvbnRzdHlsZTogXCJmb250U3R5bGVcIixcbiAgICAgICAgXCJmb250LXN0eWxlXCI6IFwiZm9udFN0eWxlXCIsXG4gICAgICAgIGZvbnR2YXJpYW50OiBcImZvbnRWYXJpYW50XCIsXG4gICAgICAgIFwiZm9udC12YXJpYW50XCI6IFwiZm9udFZhcmlhbnRcIixcbiAgICAgICAgZm9udHdlaWdodDogXCJmb250V2VpZ2h0XCIsXG4gICAgICAgIFwiZm9udC13ZWlnaHRcIjogXCJmb250V2VpZ2h0XCIsXG4gICAgICAgIGZvcm1hdDogXCJmb3JtYXRcIixcbiAgICAgICAgZnJvbTogXCJmcm9tXCIsXG4gICAgICAgIGZ4OiBcImZ4XCIsXG4gICAgICAgIGZ5OiBcImZ5XCIsXG4gICAgICAgIGcxOiBcImcxXCIsXG4gICAgICAgIGcyOiBcImcyXCIsXG4gICAgICAgIGdseXBobmFtZTogXCJnbHlwaE5hbWVcIixcbiAgICAgICAgXCJnbHlwaC1uYW1lXCI6IFwiZ2x5cGhOYW1lXCIsXG4gICAgICAgIGdseXBob3JpZW50YXRpb25ob3Jpem9udGFsOiBcImdseXBoT3JpZW50YXRpb25Ib3Jpem9udGFsXCIsXG4gICAgICAgIFwiZ2x5cGgtb3JpZW50YXRpb24taG9yaXpvbnRhbFwiOiBcImdseXBoT3JpZW50YXRpb25Ib3Jpem9udGFsXCIsXG4gICAgICAgIGdseXBob3JpZW50YXRpb252ZXJ0aWNhbDogXCJnbHlwaE9yaWVudGF0aW9uVmVydGljYWxcIixcbiAgICAgICAgXCJnbHlwaC1vcmllbnRhdGlvbi12ZXJ0aWNhbFwiOiBcImdseXBoT3JpZW50YXRpb25WZXJ0aWNhbFwiLFxuICAgICAgICBnbHlwaHJlZjogXCJnbHlwaFJlZlwiLFxuICAgICAgICBncmFkaWVudHRyYW5zZm9ybTogXCJncmFkaWVudFRyYW5zZm9ybVwiLFxuICAgICAgICBncmFkaWVudHVuaXRzOiBcImdyYWRpZW50VW5pdHNcIixcbiAgICAgICAgaGFuZ2luZzogXCJoYW5naW5nXCIsXG4gICAgICAgIGhvcml6YWR2eDogXCJob3JpekFkdlhcIixcbiAgICAgICAgXCJob3Jpei1hZHYteFwiOiBcImhvcml6QWR2WFwiLFxuICAgICAgICBob3Jpem9yaWdpbng6IFwiaG9yaXpPcmlnaW5YXCIsXG4gICAgICAgIFwiaG9yaXotb3JpZ2luLXhcIjogXCJob3Jpek9yaWdpblhcIixcbiAgICAgICAgaWRlb2dyYXBoaWM6IFwiaWRlb2dyYXBoaWNcIixcbiAgICAgICAgaW1hZ2VyZW5kZXJpbmc6IFwiaW1hZ2VSZW5kZXJpbmdcIixcbiAgICAgICAgXCJpbWFnZS1yZW5kZXJpbmdcIjogXCJpbWFnZVJlbmRlcmluZ1wiLFxuICAgICAgICBpbjI6IFwiaW4yXCIsXG4gICAgICAgIGluOiBcImluXCIsXG4gICAgICAgIGlubGlzdDogXCJpbmxpc3RcIixcbiAgICAgICAgaW50ZXJjZXB0OiBcImludGVyY2VwdFwiLFxuICAgICAgICBrMTogXCJrMVwiLFxuICAgICAgICBrMjogXCJrMlwiLFxuICAgICAgICBrMzogXCJrM1wiLFxuICAgICAgICBrNDogXCJrNFwiLFxuICAgICAgICBrOiBcImtcIixcbiAgICAgICAga2VybmVsbWF0cml4OiBcImtlcm5lbE1hdHJpeFwiLFxuICAgICAgICBrZXJuZWx1bml0bGVuZ3RoOiBcImtlcm5lbFVuaXRMZW5ndGhcIixcbiAgICAgICAga2VybmluZzogXCJrZXJuaW5nXCIsXG4gICAgICAgIGtleXBvaW50czogXCJrZXlQb2ludHNcIixcbiAgICAgICAga2V5c3BsaW5lczogXCJrZXlTcGxpbmVzXCIsXG4gICAgICAgIGtleXRpbWVzOiBcImtleVRpbWVzXCIsXG4gICAgICAgIGxlbmd0aGFkanVzdDogXCJsZW5ndGhBZGp1c3RcIixcbiAgICAgICAgbGV0dGVyc3BhY2luZzogXCJsZXR0ZXJTcGFjaW5nXCIsXG4gICAgICAgIFwibGV0dGVyLXNwYWNpbmdcIjogXCJsZXR0ZXJTcGFjaW5nXCIsXG4gICAgICAgIGxpZ2h0aW5nY29sb3I6IFwibGlnaHRpbmdDb2xvclwiLFxuICAgICAgICBcImxpZ2h0aW5nLWNvbG9yXCI6IFwibGlnaHRpbmdDb2xvclwiLFxuICAgICAgICBsaW1pdGluZ2NvbmVhbmdsZTogXCJsaW1pdGluZ0NvbmVBbmdsZVwiLFxuICAgICAgICBsb2NhbDogXCJsb2NhbFwiLFxuICAgICAgICBtYXJrZXJlbmQ6IFwibWFya2VyRW5kXCIsXG4gICAgICAgIFwibWFya2VyLWVuZFwiOiBcIm1hcmtlckVuZFwiLFxuICAgICAgICBtYXJrZXJoZWlnaHQ6IFwibWFya2VySGVpZ2h0XCIsXG4gICAgICAgIG1hcmtlcm1pZDogXCJtYXJrZXJNaWRcIixcbiAgICAgICAgXCJtYXJrZXItbWlkXCI6IFwibWFya2VyTWlkXCIsXG4gICAgICAgIG1hcmtlcnN0YXJ0OiBcIm1hcmtlclN0YXJ0XCIsXG4gICAgICAgIFwibWFya2VyLXN0YXJ0XCI6IFwibWFya2VyU3RhcnRcIixcbiAgICAgICAgbWFya2VydW5pdHM6IFwibWFya2VyVW5pdHNcIixcbiAgICAgICAgbWFya2Vyd2lkdGg6IFwibWFya2VyV2lkdGhcIixcbiAgICAgICAgbWFzazogXCJtYXNrXCIsXG4gICAgICAgIG1hc2tjb250ZW50dW5pdHM6IFwibWFza0NvbnRlbnRVbml0c1wiLFxuICAgICAgICBtYXNrdW5pdHM6IFwibWFza1VuaXRzXCIsXG4gICAgICAgIG1hdGhlbWF0aWNhbDogXCJtYXRoZW1hdGljYWxcIixcbiAgICAgICAgbW9kZTogXCJtb2RlXCIsXG4gICAgICAgIG51bW9jdGF2ZXM6IFwibnVtT2N0YXZlc1wiLFxuICAgICAgICBvZmZzZXQ6IFwib2Zmc2V0XCIsXG4gICAgICAgIG9wYWNpdHk6IFwib3BhY2l0eVwiLFxuICAgICAgICBvcGVyYXRvcjogXCJvcGVyYXRvclwiLFxuICAgICAgICBvcmRlcjogXCJvcmRlclwiLFxuICAgICAgICBvcmllbnQ6IFwib3JpZW50XCIsXG4gICAgICAgIG9yaWVudGF0aW9uOiBcIm9yaWVudGF0aW9uXCIsXG4gICAgICAgIG9yaWdpbjogXCJvcmlnaW5cIixcbiAgICAgICAgb3ZlcmZsb3c6IFwib3ZlcmZsb3dcIixcbiAgICAgICAgb3ZlcmxpbmVwb3NpdGlvbjogXCJvdmVybGluZVBvc2l0aW9uXCIsXG4gICAgICAgIFwib3ZlcmxpbmUtcG9zaXRpb25cIjogXCJvdmVybGluZVBvc2l0aW9uXCIsXG4gICAgICAgIG92ZXJsaW5ldGhpY2tuZXNzOiBcIm92ZXJsaW5lVGhpY2tuZXNzXCIsXG4gICAgICAgIFwib3ZlcmxpbmUtdGhpY2tuZXNzXCI6IFwib3ZlcmxpbmVUaGlja25lc3NcIixcbiAgICAgICAgcGFpbnRvcmRlcjogXCJwYWludE9yZGVyXCIsXG4gICAgICAgIFwicGFpbnQtb3JkZXJcIjogXCJwYWludE9yZGVyXCIsXG4gICAgICAgIHBhbm9zZTE6IFwicGFub3NlMVwiLFxuICAgICAgICBcInBhbm9zZS0xXCI6IFwicGFub3NlMVwiLFxuICAgICAgICBwYXRobGVuZ3RoOiBcInBhdGhMZW5ndGhcIixcbiAgICAgICAgcGF0dGVybmNvbnRlbnR1bml0czogXCJwYXR0ZXJuQ29udGVudFVuaXRzXCIsXG4gICAgICAgIHBhdHRlcm50cmFuc2Zvcm06IFwicGF0dGVyblRyYW5zZm9ybVwiLFxuICAgICAgICBwYXR0ZXJudW5pdHM6IFwicGF0dGVyblVuaXRzXCIsXG4gICAgICAgIHBvaW50ZXJldmVudHM6IFwicG9pbnRlckV2ZW50c1wiLFxuICAgICAgICBcInBvaW50ZXItZXZlbnRzXCI6IFwicG9pbnRlckV2ZW50c1wiLFxuICAgICAgICBwb2ludHM6IFwicG9pbnRzXCIsXG4gICAgICAgIHBvaW50c2F0eDogXCJwb2ludHNBdFhcIixcbiAgICAgICAgcG9pbnRzYXR5OiBcInBvaW50c0F0WVwiLFxuICAgICAgICBwb2ludHNhdHo6IFwicG9pbnRzQXRaXCIsXG4gICAgICAgIHBvcG92ZXI6IFwicG9wb3ZlclwiLFxuICAgICAgICBwb3BvdmVydGFyZ2V0OiBcInBvcG92ZXJUYXJnZXRcIixcbiAgICAgICAgcG9wb3ZlcnRhcmdldGFjdGlvbjogXCJwb3BvdmVyVGFyZ2V0QWN0aW9uXCIsXG4gICAgICAgIHByZWZpeDogXCJwcmVmaXhcIixcbiAgICAgICAgcHJlc2VydmVhbHBoYTogXCJwcmVzZXJ2ZUFscGhhXCIsXG4gICAgICAgIHByZXNlcnZlYXNwZWN0cmF0aW86IFwicHJlc2VydmVBc3BlY3RSYXRpb1wiLFxuICAgICAgICBwcmltaXRpdmV1bml0czogXCJwcmltaXRpdmVVbml0c1wiLFxuICAgICAgICBwcm9wZXJ0eTogXCJwcm9wZXJ0eVwiLFxuICAgICAgICByOiBcInJcIixcbiAgICAgICAgcmFkaXVzOiBcInJhZGl1c1wiLFxuICAgICAgICByZWZ4OiBcInJlZlhcIixcbiAgICAgICAgcmVmeTogXCJyZWZZXCIsXG4gICAgICAgIHJlbmRlcmluZ2ludGVudDogXCJyZW5kZXJpbmdJbnRlbnRcIixcbiAgICAgICAgXCJyZW5kZXJpbmctaW50ZW50XCI6IFwicmVuZGVyaW5nSW50ZW50XCIsXG4gICAgICAgIHJlcGVhdGNvdW50OiBcInJlcGVhdENvdW50XCIsXG4gICAgICAgIHJlcGVhdGR1cjogXCJyZXBlYXREdXJcIixcbiAgICAgICAgcmVxdWlyZWRleHRlbnNpb25zOiBcInJlcXVpcmVkRXh0ZW5zaW9uc1wiLFxuICAgICAgICByZXF1aXJlZGZlYXR1cmVzOiBcInJlcXVpcmVkRmVhdHVyZXNcIixcbiAgICAgICAgcmVzb3VyY2U6IFwicmVzb3VyY2VcIixcbiAgICAgICAgcmVzdGFydDogXCJyZXN0YXJ0XCIsXG4gICAgICAgIHJlc3VsdDogXCJyZXN1bHRcIixcbiAgICAgICAgcmVzdWx0czogXCJyZXN1bHRzXCIsXG4gICAgICAgIHJvdGF0ZTogXCJyb3RhdGVcIixcbiAgICAgICAgcng6IFwicnhcIixcbiAgICAgICAgcnk6IFwicnlcIixcbiAgICAgICAgc2NhbGU6IFwic2NhbGVcIixcbiAgICAgICAgc2VjdXJpdHk6IFwic2VjdXJpdHlcIixcbiAgICAgICAgc2VlZDogXCJzZWVkXCIsXG4gICAgICAgIHNoYXBlcmVuZGVyaW5nOiBcInNoYXBlUmVuZGVyaW5nXCIsXG4gICAgICAgIFwic2hhcGUtcmVuZGVyaW5nXCI6IFwic2hhcGVSZW5kZXJpbmdcIixcbiAgICAgICAgc2xvcGU6IFwic2xvcGVcIixcbiAgICAgICAgc3BhY2luZzogXCJzcGFjaW5nXCIsXG4gICAgICAgIHNwZWN1bGFyY29uc3RhbnQ6IFwic3BlY3VsYXJDb25zdGFudFwiLFxuICAgICAgICBzcGVjdWxhcmV4cG9uZW50OiBcInNwZWN1bGFyRXhwb25lbnRcIixcbiAgICAgICAgc3BlZWQ6IFwic3BlZWRcIixcbiAgICAgICAgc3ByZWFkbWV0aG9kOiBcInNwcmVhZE1ldGhvZFwiLFxuICAgICAgICBzdGFydG9mZnNldDogXCJzdGFydE9mZnNldFwiLFxuICAgICAgICBzdGRkZXZpYXRpb246IFwic3RkRGV2aWF0aW9uXCIsXG4gICAgICAgIHN0ZW1oOiBcInN0ZW1oXCIsXG4gICAgICAgIHN0ZW12OiBcInN0ZW12XCIsXG4gICAgICAgIHN0aXRjaHRpbGVzOiBcInN0aXRjaFRpbGVzXCIsXG4gICAgICAgIHN0b3Bjb2xvcjogXCJzdG9wQ29sb3JcIixcbiAgICAgICAgXCJzdG9wLWNvbG9yXCI6IFwic3RvcENvbG9yXCIsXG4gICAgICAgIHN0b3BvcGFjaXR5OiBcInN0b3BPcGFjaXR5XCIsXG4gICAgICAgIFwic3RvcC1vcGFjaXR5XCI6IFwic3RvcE9wYWNpdHlcIixcbiAgICAgICAgc3RyaWtldGhyb3VnaHBvc2l0aW9uOiBcInN0cmlrZXRocm91Z2hQb3NpdGlvblwiLFxuICAgICAgICBcInN0cmlrZXRocm91Z2gtcG9zaXRpb25cIjogXCJzdHJpa2V0aHJvdWdoUG9zaXRpb25cIixcbiAgICAgICAgc3RyaWtldGhyb3VnaHRoaWNrbmVzczogXCJzdHJpa2V0aHJvdWdoVGhpY2tuZXNzXCIsXG4gICAgICAgIFwic3RyaWtldGhyb3VnaC10aGlja25lc3NcIjogXCJzdHJpa2V0aHJvdWdoVGhpY2tuZXNzXCIsXG4gICAgICAgIHN0cmluZzogXCJzdHJpbmdcIixcbiAgICAgICAgc3Ryb2tlOiBcInN0cm9rZVwiLFxuICAgICAgICBzdHJva2VkYXNoYXJyYXk6IFwic3Ryb2tlRGFzaGFycmF5XCIsXG4gICAgICAgIFwic3Ryb2tlLWRhc2hhcnJheVwiOiBcInN0cm9rZURhc2hhcnJheVwiLFxuICAgICAgICBzdHJva2VkYXNob2Zmc2V0OiBcInN0cm9rZURhc2hvZmZzZXRcIixcbiAgICAgICAgXCJzdHJva2UtZGFzaG9mZnNldFwiOiBcInN0cm9rZURhc2hvZmZzZXRcIixcbiAgICAgICAgc3Ryb2tlbGluZWNhcDogXCJzdHJva2VMaW5lY2FwXCIsXG4gICAgICAgIFwic3Ryb2tlLWxpbmVjYXBcIjogXCJzdHJva2VMaW5lY2FwXCIsXG4gICAgICAgIHN0cm9rZWxpbmVqb2luOiBcInN0cm9rZUxpbmVqb2luXCIsXG4gICAgICAgIFwic3Ryb2tlLWxpbmVqb2luXCI6IFwic3Ryb2tlTGluZWpvaW5cIixcbiAgICAgICAgc3Ryb2tlbWl0ZXJsaW1pdDogXCJzdHJva2VNaXRlcmxpbWl0XCIsXG4gICAgICAgIFwic3Ryb2tlLW1pdGVybGltaXRcIjogXCJzdHJva2VNaXRlcmxpbWl0XCIsXG4gICAgICAgIHN0cm9rZXdpZHRoOiBcInN0cm9rZVdpZHRoXCIsXG4gICAgICAgIFwic3Ryb2tlLXdpZHRoXCI6IFwic3Ryb2tlV2lkdGhcIixcbiAgICAgICAgc3Ryb2tlb3BhY2l0eTogXCJzdHJva2VPcGFjaXR5XCIsXG4gICAgICAgIFwic3Ryb2tlLW9wYWNpdHlcIjogXCJzdHJva2VPcGFjaXR5XCIsXG4gICAgICAgIHN1cHByZXNzY29udGVudGVkaXRhYmxld2FybmluZzogXCJzdXBwcmVzc0NvbnRlbnRFZGl0YWJsZVdhcm5pbmdcIixcbiAgICAgICAgc3VwcHJlc3NoeWRyYXRpb253YXJuaW5nOiBcInN1cHByZXNzSHlkcmF0aW9uV2FybmluZ1wiLFxuICAgICAgICBzdXJmYWNlc2NhbGU6IFwic3VyZmFjZVNjYWxlXCIsXG4gICAgICAgIHN5c3RlbWxhbmd1YWdlOiBcInN5c3RlbUxhbmd1YWdlXCIsXG4gICAgICAgIHRhYmxldmFsdWVzOiBcInRhYmxlVmFsdWVzXCIsXG4gICAgICAgIHRhcmdldHg6IFwidGFyZ2V0WFwiLFxuICAgICAgICB0YXJnZXR5OiBcInRhcmdldFlcIixcbiAgICAgICAgdGV4dGFuY2hvcjogXCJ0ZXh0QW5jaG9yXCIsXG4gICAgICAgIFwidGV4dC1hbmNob3JcIjogXCJ0ZXh0QW5jaG9yXCIsXG4gICAgICAgIHRleHRkZWNvcmF0aW9uOiBcInRleHREZWNvcmF0aW9uXCIsXG4gICAgICAgIFwidGV4dC1kZWNvcmF0aW9uXCI6IFwidGV4dERlY29yYXRpb25cIixcbiAgICAgICAgdGV4dGxlbmd0aDogXCJ0ZXh0TGVuZ3RoXCIsXG4gICAgICAgIHRleHRyZW5kZXJpbmc6IFwidGV4dFJlbmRlcmluZ1wiLFxuICAgICAgICBcInRleHQtcmVuZGVyaW5nXCI6IFwidGV4dFJlbmRlcmluZ1wiLFxuICAgICAgICB0bzogXCJ0b1wiLFxuICAgICAgICB0cmFuc2Zvcm06IFwidHJhbnNmb3JtXCIsXG4gICAgICAgIHRyYW5zZm9ybW9yaWdpbjogXCJ0cmFuc2Zvcm1PcmlnaW5cIixcbiAgICAgICAgXCJ0cmFuc2Zvcm0tb3JpZ2luXCI6IFwidHJhbnNmb3JtT3JpZ2luXCIsXG4gICAgICAgIHR5cGVvZjogXCJ0eXBlb2ZcIixcbiAgICAgICAgdTE6IFwidTFcIixcbiAgICAgICAgdTI6IFwidTJcIixcbiAgICAgICAgdW5kZXJsaW5lcG9zaXRpb246IFwidW5kZXJsaW5lUG9zaXRpb25cIixcbiAgICAgICAgXCJ1bmRlcmxpbmUtcG9zaXRpb25cIjogXCJ1bmRlcmxpbmVQb3NpdGlvblwiLFxuICAgICAgICB1bmRlcmxpbmV0aGlja25lc3M6IFwidW5kZXJsaW5lVGhpY2tuZXNzXCIsXG4gICAgICAgIFwidW5kZXJsaW5lLXRoaWNrbmVzc1wiOiBcInVuZGVybGluZVRoaWNrbmVzc1wiLFxuICAgICAgICB1bmljb2RlOiBcInVuaWNvZGVcIixcbiAgICAgICAgdW5pY29kZWJpZGk6IFwidW5pY29kZUJpZGlcIixcbiAgICAgICAgXCJ1bmljb2RlLWJpZGlcIjogXCJ1bmljb2RlQmlkaVwiLFxuICAgICAgICB1bmljb2RlcmFuZ2U6IFwidW5pY29kZVJhbmdlXCIsXG4gICAgICAgIFwidW5pY29kZS1yYW5nZVwiOiBcInVuaWNvZGVSYW5nZVwiLFxuICAgICAgICB1bml0c3BlcmVtOiBcInVuaXRzUGVyRW1cIixcbiAgICAgICAgXCJ1bml0cy1wZXItZW1cIjogXCJ1bml0c1BlckVtXCIsXG4gICAgICAgIHVuc2VsZWN0YWJsZTogXCJ1bnNlbGVjdGFibGVcIixcbiAgICAgICAgdmFscGhhYmV0aWM6IFwidkFscGhhYmV0aWNcIixcbiAgICAgICAgXCJ2LWFscGhhYmV0aWNcIjogXCJ2QWxwaGFiZXRpY1wiLFxuICAgICAgICB2YWx1ZXM6IFwidmFsdWVzXCIsXG4gICAgICAgIHZlY3RvcmVmZmVjdDogXCJ2ZWN0b3JFZmZlY3RcIixcbiAgICAgICAgXCJ2ZWN0b3ItZWZmZWN0XCI6IFwidmVjdG9yRWZmZWN0XCIsXG4gICAgICAgIHZlcnNpb246IFwidmVyc2lvblwiLFxuICAgICAgICB2ZXJ0YWR2eTogXCJ2ZXJ0QWR2WVwiLFxuICAgICAgICBcInZlcnQtYWR2LXlcIjogXCJ2ZXJ0QWR2WVwiLFxuICAgICAgICB2ZXJ0b3JpZ2lueDogXCJ2ZXJ0T3JpZ2luWFwiLFxuICAgICAgICBcInZlcnQtb3JpZ2luLXhcIjogXCJ2ZXJ0T3JpZ2luWFwiLFxuICAgICAgICB2ZXJ0b3JpZ2lueTogXCJ2ZXJ0T3JpZ2luWVwiLFxuICAgICAgICBcInZlcnQtb3JpZ2luLXlcIjogXCJ2ZXJ0T3JpZ2luWVwiLFxuICAgICAgICB2aGFuZ2luZzogXCJ2SGFuZ2luZ1wiLFxuICAgICAgICBcInYtaGFuZ2luZ1wiOiBcInZIYW5naW5nXCIsXG4gICAgICAgIHZpZGVvZ3JhcGhpYzogXCJ2SWRlb2dyYXBoaWNcIixcbiAgICAgICAgXCJ2LWlkZW9ncmFwaGljXCI6IFwidklkZW9ncmFwaGljXCIsXG4gICAgICAgIHZpZXdib3g6IFwidmlld0JveFwiLFxuICAgICAgICB2aWV3dGFyZ2V0OiBcInZpZXdUYXJnZXRcIixcbiAgICAgICAgdmlzaWJpbGl0eTogXCJ2aXNpYmlsaXR5XCIsXG4gICAgICAgIHZtYXRoZW1hdGljYWw6IFwidk1hdGhlbWF0aWNhbFwiLFxuICAgICAgICBcInYtbWF0aGVtYXRpY2FsXCI6IFwidk1hdGhlbWF0aWNhbFwiLFxuICAgICAgICB2b2NhYjogXCJ2b2NhYlwiLFxuICAgICAgICB3aWR0aHM6IFwid2lkdGhzXCIsXG4gICAgICAgIHdvcmRzcGFjaW5nOiBcIndvcmRTcGFjaW5nXCIsXG4gICAgICAgIFwid29yZC1zcGFjaW5nXCI6IFwid29yZFNwYWNpbmdcIixcbiAgICAgICAgd3JpdGluZ21vZGU6IFwid3JpdGluZ01vZGVcIixcbiAgICAgICAgXCJ3cml0aW5nLW1vZGVcIjogXCJ3cml0aW5nTW9kZVwiLFxuICAgICAgICB4MTogXCJ4MVwiLFxuICAgICAgICB4MjogXCJ4MlwiLFxuICAgICAgICB4OiBcInhcIixcbiAgICAgICAgeGNoYW5uZWxzZWxlY3RvcjogXCJ4Q2hhbm5lbFNlbGVjdG9yXCIsXG4gICAgICAgIHhoZWlnaHQ6IFwieEhlaWdodFwiLFxuICAgICAgICBcIngtaGVpZ2h0XCI6IFwieEhlaWdodFwiLFxuICAgICAgICB4bGlua2FjdHVhdGU6IFwieGxpbmtBY3R1YXRlXCIsXG4gICAgICAgIFwieGxpbms6YWN0dWF0ZVwiOiBcInhsaW5rQWN0dWF0ZVwiLFxuICAgICAgICB4bGlua2FyY3JvbGU6IFwieGxpbmtBcmNyb2xlXCIsXG4gICAgICAgIFwieGxpbms6YXJjcm9sZVwiOiBcInhsaW5rQXJjcm9sZVwiLFxuICAgICAgICB4bGlua2hyZWY6IFwieGxpbmtIcmVmXCIsXG4gICAgICAgIFwieGxpbms6aHJlZlwiOiBcInhsaW5rSHJlZlwiLFxuICAgICAgICB4bGlua3JvbGU6IFwieGxpbmtSb2xlXCIsXG4gICAgICAgIFwieGxpbms6cm9sZVwiOiBcInhsaW5rUm9sZVwiLFxuICAgICAgICB4bGlua3Nob3c6IFwieGxpbmtTaG93XCIsXG4gICAgICAgIFwieGxpbms6c2hvd1wiOiBcInhsaW5rU2hvd1wiLFxuICAgICAgICB4bGlua3RpdGxlOiBcInhsaW5rVGl0bGVcIixcbiAgICAgICAgXCJ4bGluazp0aXRsZVwiOiBcInhsaW5rVGl0bGVcIixcbiAgICAgICAgeGxpbmt0eXBlOiBcInhsaW5rVHlwZVwiLFxuICAgICAgICBcInhsaW5rOnR5cGVcIjogXCJ4bGlua1R5cGVcIixcbiAgICAgICAgeG1sYmFzZTogXCJ4bWxCYXNlXCIsXG4gICAgICAgIFwieG1sOmJhc2VcIjogXCJ4bWxCYXNlXCIsXG4gICAgICAgIHhtbGxhbmc6IFwieG1sTGFuZ1wiLFxuICAgICAgICBcInhtbDpsYW5nXCI6IFwieG1sTGFuZ1wiLFxuICAgICAgICB4bWxuczogXCJ4bWxuc1wiLFxuICAgICAgICBcInhtbDpzcGFjZVwiOiBcInhtbFNwYWNlXCIsXG4gICAgICAgIHhtbG5zeGxpbms6IFwieG1sbnNYbGlua1wiLFxuICAgICAgICBcInhtbG5zOnhsaW5rXCI6IFwieG1sbnNYbGlua1wiLFxuICAgICAgICB4bWxzcGFjZTogXCJ4bWxTcGFjZVwiLFxuICAgICAgICB5MTogXCJ5MVwiLFxuICAgICAgICB5MjogXCJ5MlwiLFxuICAgICAgICB5OiBcInlcIixcbiAgICAgICAgeWNoYW5uZWxzZWxlY3RvcjogXCJ5Q2hhbm5lbFNlbGVjdG9yXCIsXG4gICAgICAgIHo6IFwielwiLFxuICAgICAgICB6b29tYW5kcGFuOiBcInpvb21BbmRQYW5cIlxuICAgICAgfSxcbiAgICAgIGFyaWFQcm9wZXJ0aWVzID0ge1xuICAgICAgICBcImFyaWEtY3VycmVudFwiOiAwLFxuICAgICAgICBcImFyaWEtZGVzY3JpcHRpb25cIjogMCxcbiAgICAgICAgXCJhcmlhLWRldGFpbHNcIjogMCxcbiAgICAgICAgXCJhcmlhLWRpc2FibGVkXCI6IDAsXG4gICAgICAgIFwiYXJpYS1oaWRkZW5cIjogMCxcbiAgICAgICAgXCJhcmlhLWludmFsaWRcIjogMCxcbiAgICAgICAgXCJhcmlhLWtleXNob3J0Y3V0c1wiOiAwLFxuICAgICAgICBcImFyaWEtbGFiZWxcIjogMCxcbiAgICAgICAgXCJhcmlhLXJvbGVkZXNjcmlwdGlvblwiOiAwLFxuICAgICAgICBcImFyaWEtYXV0b2NvbXBsZXRlXCI6IDAsXG4gICAgICAgIFwiYXJpYS1jaGVja2VkXCI6IDAsXG4gICAgICAgIFwiYXJpYS1leHBhbmRlZFwiOiAwLFxuICAgICAgICBcImFyaWEtaGFzcG9wdXBcIjogMCxcbiAgICAgICAgXCJhcmlhLWxldmVsXCI6IDAsXG4gICAgICAgIFwiYXJpYS1tb2RhbFwiOiAwLFxuICAgICAgICBcImFyaWEtbXVsdGlsaW5lXCI6IDAsXG4gICAgICAgIFwiYXJpYS1tdWx0aXNlbGVjdGFibGVcIjogMCxcbiAgICAgICAgXCJhcmlhLW9yaWVudGF0aW9uXCI6IDAsXG4gICAgICAgIFwiYXJpYS1wbGFjZWhvbGRlclwiOiAwLFxuICAgICAgICBcImFyaWEtcHJlc3NlZFwiOiAwLFxuICAgICAgICBcImFyaWEtcmVhZG9ubHlcIjogMCxcbiAgICAgICAgXCJhcmlhLXJlcXVpcmVkXCI6IDAsXG4gICAgICAgIFwiYXJpYS1zZWxlY3RlZFwiOiAwLFxuICAgICAgICBcImFyaWEtc29ydFwiOiAwLFxuICAgICAgICBcImFyaWEtdmFsdWVtYXhcIjogMCxcbiAgICAgICAgXCJhcmlhLXZhbHVlbWluXCI6IDAsXG4gICAgICAgIFwiYXJpYS12YWx1ZW5vd1wiOiAwLFxuICAgICAgICBcImFyaWEtdmFsdWV0ZXh0XCI6IDAsXG4gICAgICAgIFwiYXJpYS1hdG9taWNcIjogMCxcbiAgICAgICAgXCJhcmlhLWJ1c3lcIjogMCxcbiAgICAgICAgXCJhcmlhLWxpdmVcIjogMCxcbiAgICAgICAgXCJhcmlhLXJlbGV2YW50XCI6IDAsXG4gICAgICAgIFwiYXJpYS1kcm9wZWZmZWN0XCI6IDAsXG4gICAgICAgIFwiYXJpYS1ncmFiYmVkXCI6IDAsXG4gICAgICAgIFwiYXJpYS1hY3RpdmVkZXNjZW5kYW50XCI6IDAsXG4gICAgICAgIFwiYXJpYS1jb2xjb3VudFwiOiAwLFxuICAgICAgICBcImFyaWEtY29saW5kZXhcIjogMCxcbiAgICAgICAgXCJhcmlhLWNvbHNwYW5cIjogMCxcbiAgICAgICAgXCJhcmlhLWNvbnRyb2xzXCI6IDAsXG4gICAgICAgIFwiYXJpYS1kZXNjcmliZWRieVwiOiAwLFxuICAgICAgICBcImFyaWEtZXJyb3JtZXNzYWdlXCI6IDAsXG4gICAgICAgIFwiYXJpYS1mbG93dG9cIjogMCxcbiAgICAgICAgXCJhcmlhLWxhYmVsbGVkYnlcIjogMCxcbiAgICAgICAgXCJhcmlhLW93bnNcIjogMCxcbiAgICAgICAgXCJhcmlhLXBvc2luc2V0XCI6IDAsXG4gICAgICAgIFwiYXJpYS1yb3djb3VudFwiOiAwLFxuICAgICAgICBcImFyaWEtcm93aW5kZXhcIjogMCxcbiAgICAgICAgXCJhcmlhLXJvd3NwYW5cIjogMCxcbiAgICAgICAgXCJhcmlhLXNldHNpemVcIjogMFxuICAgICAgfSxcbiAgICAgIHdhcm5lZFByb3BlcnRpZXMkMSA9IHt9LFxuICAgICAgckFSSUEkMSA9IFJlZ0V4cChcbiAgICAgICAgXCJeKGFyaWEpLVs6QS1aX2EtelxcXFx1MDBDMC1cXFxcdTAwRDZcXFxcdTAwRDgtXFxcXHUwMEY2XFxcXHUwMEY4LVxcXFx1MDJGRlxcXFx1MDM3MC1cXFxcdTAzN0RcXFxcdTAzN0YtXFxcXHUxRkZGXFxcXHUyMDBDLVxcXFx1MjAwRFxcXFx1MjA3MC1cXFxcdTIxOEZcXFxcdTJDMDAtXFxcXHUyRkVGXFxcXHUzMDAxLVxcXFx1RDdGRlxcXFx1RjkwMC1cXFxcdUZEQ0ZcXFxcdUZERjAtXFxcXHVGRkZEXFxcXC0uMC05XFxcXHUwMEI3XFxcXHUwMzAwLVxcXFx1MDM2RlxcXFx1MjAzRi1cXFxcdTIwNDBdKiRcIlxuICAgICAgKSxcbiAgICAgIHJBUklBQ2FtZWwkMSA9IFJlZ0V4cChcbiAgICAgICAgXCJeKGFyaWEpW0EtWl1bOkEtWl9hLXpcXFxcdTAwQzAtXFxcXHUwMEQ2XFxcXHUwMEQ4LVxcXFx1MDBGNlxcXFx1MDBGOC1cXFxcdTAyRkZcXFxcdTAzNzAtXFxcXHUwMzdEXFxcXHUwMzdGLVxcXFx1MUZGRlxcXFx1MjAwQy1cXFxcdTIwMERcXFxcdTIwNzAtXFxcXHUyMThGXFxcXHUyQzAwLVxcXFx1MkZFRlxcXFx1MzAwMS1cXFxcdUQ3RkZcXFxcdUY5MDAtXFxcXHVGRENGXFxcXHVGREYwLVxcXFx1RkZGRFxcXFwtLjAtOVxcXFx1MDBCN1xcXFx1MDMwMC1cXFxcdTAzNkZcXFxcdTIwM0YtXFxcXHUyMDQwXSokXCJcbiAgICAgICksXG4gICAgICBkaWRXYXJuVmFsdWVOdWxsID0gITEsXG4gICAgICB3YXJuZWRQcm9wZXJ0aWVzID0ge30sXG4gICAgICBFVkVOVF9OQU1FX1JFR0VYID0gL15vbi4vLFxuICAgICAgSU5WQUxJRF9FVkVOVF9OQU1FX1JFR0VYID0gL15vblteQS1aXS8sXG4gICAgICByQVJJQSA9IFJlZ0V4cChcbiAgICAgICAgXCJeKGFyaWEpLVs6QS1aX2EtelxcXFx1MDBDMC1cXFxcdTAwRDZcXFxcdTAwRDgtXFxcXHUwMEY2XFxcXHUwMEY4LVxcXFx1MDJGRlxcXFx1MDM3MC1cXFxcdTAzN0RcXFxcdTAzN0YtXFxcXHUxRkZGXFxcXHUyMDBDLVxcXFx1MjAwRFxcXFx1MjA3MC1cXFxcdTIxOEZcXFxcdTJDMDAtXFxcXHUyRkVGXFxcXHUzMDAxLVxcXFx1RDdGRlxcXFx1RjkwMC1cXFxcdUZEQ0ZcXFxcdUZERjAtXFxcXHVGRkZEXFxcXC0uMC05XFxcXHUwMEI3XFxcXHUwMzAwLVxcXFx1MDM2RlxcXFx1MjAzRi1cXFxcdTIwNDBdKiRcIlxuICAgICAgKSxcbiAgICAgIHJBUklBQ2FtZWwgPSBSZWdFeHAoXG4gICAgICAgIFwiXihhcmlhKVtBLVpdWzpBLVpfYS16XFxcXHUwMEMwLVxcXFx1MDBENlxcXFx1MDBEOC1cXFxcdTAwRjZcXFxcdTAwRjgtXFxcXHUwMkZGXFxcXHUwMzcwLVxcXFx1MDM3RFxcXFx1MDM3Ri1cXFxcdTFGRkZcXFxcdTIwMEMtXFxcXHUyMDBEXFxcXHUyMDcwLVxcXFx1MjE4RlxcXFx1MkMwMC1cXFxcdTJGRUZcXFxcdTMwMDEtXFxcXHVEN0ZGXFxcXHVGOTAwLVxcXFx1RkRDRlxcXFx1RkRGMC1cXFxcdUZGRkRcXFxcLS4wLTlcXFxcdTAwQjdcXFxcdTAzMDAtXFxcXHUwMzZGXFxcXHUyMDNGLVxcXFx1MjA0MF0qJFwiXG4gICAgICApLFxuICAgICAgaXNKYXZhU2NyaXB0UHJvdG9jb2wgPVxuICAgICAgICAvXltcXHUwMDAwLVxcdTAwMUYgXSpqW1xcclxcblxcdF0qYVtcXHJcXG5cXHRdKnZbXFxyXFxuXFx0XSphW1xcclxcblxcdF0qc1tcXHJcXG5cXHRdKmNbXFxyXFxuXFx0XSpyW1xcclxcblxcdF0qaVtcXHJcXG5cXHRdKnBbXFxyXFxuXFx0XSp0W1xcclxcblxcdF0qOi9pLFxuICAgICAgY3VycmVudFJlcGxheWluZ0V2ZW50ID0gbnVsbCxcbiAgICAgIHJlc3RvcmVUYXJnZXQgPSBudWxsLFxuICAgICAgcmVzdG9yZVF1ZXVlID0gbnVsbCxcbiAgICAgIGlzSW5zaWRlRXZlbnRIYW5kbGVyID0gITEsXG4gICAgICBjYW5Vc2VET00gPSAhKFxuICAgICAgICBcInVuZGVmaW5lZFwiID09PSB0eXBlb2Ygd2luZG93IHx8XG4gICAgICAgIFwidW5kZWZpbmVkXCIgPT09IHR5cGVvZiB3aW5kb3cuZG9jdW1lbnQgfHxcbiAgICAgICAgXCJ1bmRlZmluZWRcIiA9PT0gdHlwZW9mIHdpbmRvdy5kb2N1bWVudC5jcmVhdGVFbGVtZW50XG4gICAgICApLFxuICAgICAgcGFzc2l2ZUJyb3dzZXJFdmVudHNTdXBwb3J0ZWQgPSAhMTtcbiAgICBpZiAoY2FuVXNlRE9NKVxuICAgICAgdHJ5IHtcbiAgICAgICAgdmFyIG9wdGlvbnMkanNjb21wJDAgPSB7fTtcbiAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KG9wdGlvbnMkanNjb21wJDAsIFwicGFzc2l2ZVwiLCB7XG4gICAgICAgICAgZ2V0OiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICBwYXNzaXZlQnJvd3NlckV2ZW50c1N1cHBvcnRlZCA9ICEwO1xuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKFwidGVzdFwiLCBvcHRpb25zJGpzY29tcCQwLCBvcHRpb25zJGpzY29tcCQwKTtcbiAgICAgICAgd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoXCJ0ZXN0XCIsIG9wdGlvbnMkanNjb21wJDAsIG9wdGlvbnMkanNjb21wJDApO1xuICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICBwYXNzaXZlQnJvd3NlckV2ZW50c1N1cHBvcnRlZCA9ICExO1xuICAgICAgfVxuICAgIHZhciByb290ID0gbnVsbCxcbiAgICAgIHN0YXJ0VGV4dCA9IG51bGwsXG4gICAgICBmYWxsYmFja1RleHQgPSBudWxsLFxuICAgICAgRXZlbnRJbnRlcmZhY2UgPSB7XG4gICAgICAgIGV2ZW50UGhhc2U6IDAsXG4gICAgICAgIGJ1YmJsZXM6IDAsXG4gICAgICAgIGNhbmNlbGFibGU6IDAsXG4gICAgICAgIHRpbWVTdGFtcDogZnVuY3Rpb24gKGV2ZW50KSB7XG4gICAgICAgICAgcmV0dXJuIGV2ZW50LnRpbWVTdGFtcCB8fCBEYXRlLm5vdygpO1xuICAgICAgICB9LFxuICAgICAgICBkZWZhdWx0UHJldmVudGVkOiAwLFxuICAgICAgICBpc1RydXN0ZWQ6IDBcbiAgICAgIH0sXG4gICAgICBTeW50aGV0aWNFdmVudCA9IGNyZWF0ZVN5bnRoZXRpY0V2ZW50KEV2ZW50SW50ZXJmYWNlKSxcbiAgICAgIFVJRXZlbnRJbnRlcmZhY2UgPSBhc3NpZ24oe30sIEV2ZW50SW50ZXJmYWNlLCB7IHZpZXc6IDAsIGRldGFpbDogMCB9KSxcbiAgICAgIFN5bnRoZXRpY1VJRXZlbnQgPSBjcmVhdGVTeW50aGV0aWNFdmVudChVSUV2ZW50SW50ZXJmYWNlKSxcbiAgICAgIGxhc3RNb3ZlbWVudFgsXG4gICAgICBsYXN0TW92ZW1lbnRZLFxuICAgICAgbGFzdE1vdXNlRXZlbnQsXG4gICAgICBNb3VzZUV2ZW50SW50ZXJmYWNlID0gYXNzaWduKHt9LCBVSUV2ZW50SW50ZXJmYWNlLCB7XG4gICAgICAgIHNjcmVlblg6IDAsXG4gICAgICAgIHNjcmVlblk6IDAsXG4gICAgICAgIGNsaWVudFg6IDAsXG4gICAgICAgIGNsaWVudFk6IDAsXG4gICAgICAgIHBhZ2VYOiAwLFxuICAgICAgICBwYWdlWTogMCxcbiAgICAgICAgY3RybEtleTogMCxcbiAgICAgICAgc2hpZnRLZXk6IDAsXG4gICAgICAgIGFsdEtleTogMCxcbiAgICAgICAgbWV0YUtleTogMCxcbiAgICAgICAgZ2V0TW9kaWZpZXJTdGF0ZTogZ2V0RXZlbnRNb2RpZmllclN0YXRlLFxuICAgICAgICBidXR0b246IDAsXG4gICAgICAgIGJ1dHRvbnM6IDAsXG4gICAgICAgIHJlbGF0ZWRUYXJnZXQ6IGZ1bmN0aW9uIChldmVudCkge1xuICAgICAgICAgIHJldHVybiB2b2lkIDAgPT09IGV2ZW50LnJlbGF0ZWRUYXJnZXRcbiAgICAgICAgICAgID8gZXZlbnQuZnJvbUVsZW1lbnQgPT09IGV2ZW50LnNyY0VsZW1lbnRcbiAgICAgICAgICAgICAgPyBldmVudC50b0VsZW1lbnRcbiAgICAgICAgICAgICAgOiBldmVudC5mcm9tRWxlbWVudFxuICAgICAgICAgICAgOiBldmVudC5yZWxhdGVkVGFyZ2V0O1xuICAgICAgICB9LFxuICAgICAgICBtb3ZlbWVudFg6IGZ1bmN0aW9uIChldmVudCkge1xuICAgICAgICAgIGlmIChcIm1vdmVtZW50WFwiIGluIGV2ZW50KSByZXR1cm4gZXZlbnQubW92ZW1lbnRYO1xuICAgICAgICAgIGV2ZW50ICE9PSBsYXN0TW91c2VFdmVudCAmJlxuICAgICAgICAgICAgKGxhc3RNb3VzZUV2ZW50ICYmIFwibW91c2Vtb3ZlXCIgPT09IGV2ZW50LnR5cGVcbiAgICAgICAgICAgICAgPyAoKGxhc3RNb3ZlbWVudFggPSBldmVudC5zY3JlZW5YIC0gbGFzdE1vdXNlRXZlbnQuc2NyZWVuWCksXG4gICAgICAgICAgICAgICAgKGxhc3RNb3ZlbWVudFkgPSBldmVudC5zY3JlZW5ZIC0gbGFzdE1vdXNlRXZlbnQuc2NyZWVuWSkpXG4gICAgICAgICAgICAgIDogKGxhc3RNb3ZlbWVudFkgPSBsYXN0TW92ZW1lbnRYID0gMCksXG4gICAgICAgICAgICAobGFzdE1vdXNlRXZlbnQgPSBldmVudCkpO1xuICAgICAgICAgIHJldHVybiBsYXN0TW92ZW1lbnRYO1xuICAgICAgICB9LFxuICAgICAgICBtb3ZlbWVudFk6IGZ1bmN0aW9uIChldmVudCkge1xuICAgICAgICAgIHJldHVybiBcIm1vdmVtZW50WVwiIGluIGV2ZW50ID8gZXZlbnQubW92ZW1lbnRZIDogbGFzdE1vdmVtZW50WTtcbiAgICAgICAgfVxuICAgICAgfSksXG4gICAgICBTeW50aGV0aWNNb3VzZUV2ZW50ID0gY3JlYXRlU3ludGhldGljRXZlbnQoTW91c2VFdmVudEludGVyZmFjZSksXG4gICAgICBEcmFnRXZlbnRJbnRlcmZhY2UgPSBhc3NpZ24oe30sIE1vdXNlRXZlbnRJbnRlcmZhY2UsIHsgZGF0YVRyYW5zZmVyOiAwIH0pLFxuICAgICAgU3ludGhldGljRHJhZ0V2ZW50ID0gY3JlYXRlU3ludGhldGljRXZlbnQoRHJhZ0V2ZW50SW50ZXJmYWNlKSxcbiAgICAgIEZvY3VzRXZlbnRJbnRlcmZhY2UgPSBhc3NpZ24oe30sIFVJRXZlbnRJbnRlcmZhY2UsIHsgcmVsYXRlZFRhcmdldDogMCB9KSxcbiAgICAgIFN5bnRoZXRpY0ZvY3VzRXZlbnQgPSBjcmVhdGVTeW50aGV0aWNFdmVudChGb2N1c0V2ZW50SW50ZXJmYWNlKSxcbiAgICAgIEFuaW1hdGlvbkV2ZW50SW50ZXJmYWNlID0gYXNzaWduKHt9LCBFdmVudEludGVyZmFjZSwge1xuICAgICAgICBhbmltYXRpb25OYW1lOiAwLFxuICAgICAgICBlbGFwc2VkVGltZTogMCxcbiAgICAgICAgcHNldWRvRWxlbWVudDogMFxuICAgICAgfSksXG4gICAgICBTeW50aGV0aWNBbmltYXRpb25FdmVudCA9IGNyZWF0ZVN5bnRoZXRpY0V2ZW50KEFuaW1hdGlvbkV2ZW50SW50ZXJmYWNlKSxcbiAgICAgIENsaXBib2FyZEV2ZW50SW50ZXJmYWNlID0gYXNzaWduKHt9LCBFdmVudEludGVyZmFjZSwge1xuICAgICAgICBjbGlwYm9hcmREYXRhOiBmdW5jdGlvbiAoZXZlbnQpIHtcbiAgICAgICAgICByZXR1cm4gXCJjbGlwYm9hcmREYXRhXCIgaW4gZXZlbnRcbiAgICAgICAgICAgID8gZXZlbnQuY2xpcGJvYXJkRGF0YVxuICAgICAgICAgICAgOiB3aW5kb3cuY2xpcGJvYXJkRGF0YTtcbiAgICAgICAgfVxuICAgICAgfSksXG4gICAgICBTeW50aGV0aWNDbGlwYm9hcmRFdmVudCA9IGNyZWF0ZVN5bnRoZXRpY0V2ZW50KENsaXBib2FyZEV2ZW50SW50ZXJmYWNlKSxcbiAgICAgIENvbXBvc2l0aW9uRXZlbnRJbnRlcmZhY2UgPSBhc3NpZ24oe30sIEV2ZW50SW50ZXJmYWNlLCB7IGRhdGE6IDAgfSksXG4gICAgICBTeW50aGV0aWNDb21wb3NpdGlvbkV2ZW50ID0gY3JlYXRlU3ludGhldGljRXZlbnQoXG4gICAgICAgIENvbXBvc2l0aW9uRXZlbnRJbnRlcmZhY2VcbiAgICAgICksXG4gICAgICBTeW50aGV0aWNJbnB1dEV2ZW50ID0gU3ludGhldGljQ29tcG9zaXRpb25FdmVudCxcbiAgICAgIG5vcm1hbGl6ZUtleSA9IHtcbiAgICAgICAgRXNjOiBcIkVzY2FwZVwiLFxuICAgICAgICBTcGFjZWJhcjogXCIgXCIsXG4gICAgICAgIExlZnQ6IFwiQXJyb3dMZWZ0XCIsXG4gICAgICAgIFVwOiBcIkFycm93VXBcIixcbiAgICAgICAgUmlnaHQ6IFwiQXJyb3dSaWdodFwiLFxuICAgICAgICBEb3duOiBcIkFycm93RG93blwiLFxuICAgICAgICBEZWw6IFwiRGVsZXRlXCIsXG4gICAgICAgIFdpbjogXCJPU1wiLFxuICAgICAgICBNZW51OiBcIkNvbnRleHRNZW51XCIsXG4gICAgICAgIEFwcHM6IFwiQ29udGV4dE1lbnVcIixcbiAgICAgICAgU2Nyb2xsOiBcIlNjcm9sbExvY2tcIixcbiAgICAgICAgTW96UHJpbnRhYmxlS2V5OiBcIlVuaWRlbnRpZmllZFwiXG4gICAgICB9LFxuICAgICAgdHJhbnNsYXRlVG9LZXkgPSB7XG4gICAgICAgIDg6IFwiQmFja3NwYWNlXCIsXG4gICAgICAgIDk6IFwiVGFiXCIsXG4gICAgICAgIDEyOiBcIkNsZWFyXCIsXG4gICAgICAgIDEzOiBcIkVudGVyXCIsXG4gICAgICAgIDE2OiBcIlNoaWZ0XCIsXG4gICAgICAgIDE3OiBcIkNvbnRyb2xcIixcbiAgICAgICAgMTg6IFwiQWx0XCIsXG4gICAgICAgIDE5OiBcIlBhdXNlXCIsXG4gICAgICAgIDIwOiBcIkNhcHNMb2NrXCIsXG4gICAgICAgIDI3OiBcIkVzY2FwZVwiLFxuICAgICAgICAzMjogXCIgXCIsXG4gICAgICAgIDMzOiBcIlBhZ2VVcFwiLFxuICAgICAgICAzNDogXCJQYWdlRG93blwiLFxuICAgICAgICAzNTogXCJFbmRcIixcbiAgICAgICAgMzY6IFwiSG9tZVwiLFxuICAgICAgICAzNzogXCJBcnJvd0xlZnRcIixcbiAgICAgICAgMzg6IFwiQXJyb3dVcFwiLFxuICAgICAgICAzOTogXCJBcnJvd1JpZ2h0XCIsXG4gICAgICAgIDQwOiBcIkFycm93RG93blwiLFxuICAgICAgICA0NTogXCJJbnNlcnRcIixcbiAgICAgICAgNDY6IFwiRGVsZXRlXCIsXG4gICAgICAgIDExMjogXCJGMVwiLFxuICAgICAgICAxMTM6IFwiRjJcIixcbiAgICAgICAgMTE0OiBcIkYzXCIsXG4gICAgICAgIDExNTogXCJGNFwiLFxuICAgICAgICAxMTY6IFwiRjVcIixcbiAgICAgICAgMTE3OiBcIkY2XCIsXG4gICAgICAgIDExODogXCJGN1wiLFxuICAgICAgICAxMTk6IFwiRjhcIixcbiAgICAgICAgMTIwOiBcIkY5XCIsXG4gICAgICAgIDEyMTogXCJGMTBcIixcbiAgICAgICAgMTIyOiBcIkYxMVwiLFxuICAgICAgICAxMjM6IFwiRjEyXCIsXG4gICAgICAgIDE0NDogXCJOdW1Mb2NrXCIsXG4gICAgICAgIDE0NTogXCJTY3JvbGxMb2NrXCIsXG4gICAgICAgIDIyNDogXCJNZXRhXCJcbiAgICAgIH0sXG4gICAgICBtb2RpZmllcktleVRvUHJvcCA9IHtcbiAgICAgICAgQWx0OiBcImFsdEtleVwiLFxuICAgICAgICBDb250cm9sOiBcImN0cmxLZXlcIixcbiAgICAgICAgTWV0YTogXCJtZXRhS2V5XCIsXG4gICAgICAgIFNoaWZ0OiBcInNoaWZ0S2V5XCJcbiAgICAgIH0sXG4gICAgICBLZXlib2FyZEV2ZW50SW50ZXJmYWNlID0gYXNzaWduKHt9LCBVSUV2ZW50SW50ZXJmYWNlLCB7XG4gICAgICAgIGtleTogZnVuY3Rpb24gKG5hdGl2ZUV2ZW50KSB7XG4gICAgICAgICAgaWYgKG5hdGl2ZUV2ZW50LmtleSkge1xuICAgICAgICAgICAgdmFyIGtleSA9IG5vcm1hbGl6ZUtleVtuYXRpdmVFdmVudC5rZXldIHx8IG5hdGl2ZUV2ZW50LmtleTtcbiAgICAgICAgICAgIGlmIChcIlVuaWRlbnRpZmllZFwiICE9PSBrZXkpIHJldHVybiBrZXk7XG4gICAgICAgICAgfVxuICAgICAgICAgIHJldHVybiBcImtleXByZXNzXCIgPT09IG5hdGl2ZUV2ZW50LnR5cGVcbiAgICAgICAgICAgID8gKChuYXRpdmVFdmVudCA9IGdldEV2ZW50Q2hhckNvZGUobmF0aXZlRXZlbnQpKSxcbiAgICAgICAgICAgICAgMTMgPT09IG5hdGl2ZUV2ZW50ID8gXCJFbnRlclwiIDogU3RyaW5nLmZyb21DaGFyQ29kZShuYXRpdmVFdmVudCkpXG4gICAgICAgICAgICA6IFwia2V5ZG93blwiID09PSBuYXRpdmVFdmVudC50eXBlIHx8IFwia2V5dXBcIiA9PT0gbmF0aXZlRXZlbnQudHlwZVxuICAgICAgICAgICAgICA/IHRyYW5zbGF0ZVRvS2V5W25hdGl2ZUV2ZW50LmtleUNvZGVdIHx8IFwiVW5pZGVudGlmaWVkXCJcbiAgICAgICAgICAgICAgOiBcIlwiO1xuICAgICAgICB9LFxuICAgICAgICBjb2RlOiAwLFxuICAgICAgICBsb2NhdGlvbjogMCxcbiAgICAgICAgY3RybEtleTogMCxcbiAgICAgICAgc2hpZnRLZXk6IDAsXG4gICAgICAgIGFsdEtleTogMCxcbiAgICAgICAgbWV0YUtleTogMCxcbiAgICAgICAgcmVwZWF0OiAwLFxuICAgICAgICBsb2NhbGU6IDAsXG4gICAgICAgIGdldE1vZGlmaWVyU3RhdGU6IGdldEV2ZW50TW9kaWZpZXJTdGF0ZSxcbiAgICAgICAgY2hhckNvZGU6IGZ1bmN0aW9uIChldmVudCkge1xuICAgICAgICAgIHJldHVybiBcImtleXByZXNzXCIgPT09IGV2ZW50LnR5cGUgPyBnZXRFdmVudENoYXJDb2RlKGV2ZW50KSA6IDA7XG4gICAgICAgIH0sXG4gICAgICAgIGtleUNvZGU6IGZ1bmN0aW9uIChldmVudCkge1xuICAgICAgICAgIHJldHVybiBcImtleWRvd25cIiA9PT0gZXZlbnQudHlwZSB8fCBcImtleXVwXCIgPT09IGV2ZW50LnR5cGVcbiAgICAgICAgICAgID8gZXZlbnQua2V5Q29kZVxuICAgICAgICAgICAgOiAwO1xuICAgICAgICB9LFxuICAgICAgICB3aGljaDogZnVuY3Rpb24gKGV2ZW50KSB7XG4gICAgICAgICAgcmV0dXJuIFwia2V5cHJlc3NcIiA9PT0gZXZlbnQudHlwZVxuICAgICAgICAgICAgPyBnZXRFdmVudENoYXJDb2RlKGV2ZW50KVxuICAgICAgICAgICAgOiBcImtleWRvd25cIiA9PT0gZXZlbnQudHlwZSB8fCBcImtleXVwXCIgPT09IGV2ZW50LnR5cGVcbiAgICAgICAgICAgICAgPyBldmVudC5rZXlDb2RlXG4gICAgICAgICAgICAgIDogMDtcbiAgICAgICAgfVxuICAgICAgfSksXG4gICAgICBTeW50aGV0aWNLZXlib2FyZEV2ZW50ID0gY3JlYXRlU3ludGhldGljRXZlbnQoS2V5Ym9hcmRFdmVudEludGVyZmFjZSksXG4gICAgICBQb2ludGVyRXZlbnRJbnRlcmZhY2UgPSBhc3NpZ24oe30sIE1vdXNlRXZlbnRJbnRlcmZhY2UsIHtcbiAgICAgICAgcG9pbnRlcklkOiAwLFxuICAgICAgICB3aWR0aDogMCxcbiAgICAgICAgaGVpZ2h0OiAwLFxuICAgICAgICBwcmVzc3VyZTogMCxcbiAgICAgICAgdGFuZ2VudGlhbFByZXNzdXJlOiAwLFxuICAgICAgICB0aWx0WDogMCxcbiAgICAgICAgdGlsdFk6IDAsXG4gICAgICAgIHR3aXN0OiAwLFxuICAgICAgICBwb2ludGVyVHlwZTogMCxcbiAgICAgICAgaXNQcmltYXJ5OiAwXG4gICAgICB9KSxcbiAgICAgIFN5bnRoZXRpY1BvaW50ZXJFdmVudCA9IGNyZWF0ZVN5bnRoZXRpY0V2ZW50KFBvaW50ZXJFdmVudEludGVyZmFjZSksXG4gICAgICBUb3VjaEV2ZW50SW50ZXJmYWNlID0gYXNzaWduKHt9LCBVSUV2ZW50SW50ZXJmYWNlLCB7XG4gICAgICAgIHRvdWNoZXM6IDAsXG4gICAgICAgIHRhcmdldFRvdWNoZXM6IDAsXG4gICAgICAgIGNoYW5nZWRUb3VjaGVzOiAwLFxuICAgICAgICBhbHRLZXk6IDAsXG4gICAgICAgIG1ldGFLZXk6IDAsXG4gICAgICAgIGN0cmxLZXk6IDAsXG4gICAgICAgIHNoaWZ0S2V5OiAwLFxuICAgICAgICBnZXRNb2RpZmllclN0YXRlOiBnZXRFdmVudE1vZGlmaWVyU3RhdGVcbiAgICAgIH0pLFxuICAgICAgU3ludGhldGljVG91Y2hFdmVudCA9IGNyZWF0ZVN5bnRoZXRpY0V2ZW50KFRvdWNoRXZlbnRJbnRlcmZhY2UpLFxuICAgICAgVHJhbnNpdGlvbkV2ZW50SW50ZXJmYWNlID0gYXNzaWduKHt9LCBFdmVudEludGVyZmFjZSwge1xuICAgICAgICBwcm9wZXJ0eU5hbWU6IDAsXG4gICAgICAgIGVsYXBzZWRUaW1lOiAwLFxuICAgICAgICBwc2V1ZG9FbGVtZW50OiAwXG4gICAgICB9KSxcbiAgICAgIFN5bnRoZXRpY1RyYW5zaXRpb25FdmVudCA9IGNyZWF0ZVN5bnRoZXRpY0V2ZW50KFRyYW5zaXRpb25FdmVudEludGVyZmFjZSksXG4gICAgICBXaGVlbEV2ZW50SW50ZXJmYWNlID0gYXNzaWduKHt9LCBNb3VzZUV2ZW50SW50ZXJmYWNlLCB7XG4gICAgICAgIGRlbHRhWDogZnVuY3Rpb24gKGV2ZW50KSB7XG4gICAgICAgICAgcmV0dXJuIFwiZGVsdGFYXCIgaW4gZXZlbnRcbiAgICAgICAgICAgID8gZXZlbnQuZGVsdGFYXG4gICAgICAgICAgICA6IFwid2hlZWxEZWx0YVhcIiBpbiBldmVudFxuICAgICAgICAgICAgICA/IC1ldmVudC53aGVlbERlbHRhWFxuICAgICAgICAgICAgICA6IDA7XG4gICAgICAgIH0sXG4gICAgICAgIGRlbHRhWTogZnVuY3Rpb24gKGV2ZW50KSB7XG4gICAgICAgICAgcmV0dXJuIFwiZGVsdGFZXCIgaW4gZXZlbnRcbiAgICAgICAgICAgID8gZXZlbnQuZGVsdGFZXG4gICAgICAgICAgICA6IFwid2hlZWxEZWx0YVlcIiBpbiBldmVudFxuICAgICAgICAgICAgICA/IC1ldmVudC53aGVlbERlbHRhWVxuICAgICAgICAgICAgICA6IFwid2hlZWxEZWx0YVwiIGluIGV2ZW50XG4gICAgICAgICAgICAgICAgPyAtZXZlbnQud2hlZWxEZWx0YVxuICAgICAgICAgICAgICAgIDogMDtcbiAgICAgICAgfSxcbiAgICAgICAgZGVsdGFaOiAwLFxuICAgICAgICBkZWx0YU1vZGU6IDBcbiAgICAgIH0pLFxuICAgICAgU3ludGhldGljV2hlZWxFdmVudCA9IGNyZWF0ZVN5bnRoZXRpY0V2ZW50KFdoZWVsRXZlbnRJbnRlcmZhY2UpLFxuICAgICAgVG9nZ2xlRXZlbnRJbnRlcmZhY2UgPSBhc3NpZ24oe30sIEV2ZW50SW50ZXJmYWNlLCB7XG4gICAgICAgIG5ld1N0YXRlOiAwLFxuICAgICAgICBvbGRTdGF0ZTogMFxuICAgICAgfSksXG4gICAgICBTeW50aGV0aWNUb2dnbGVFdmVudCA9IGNyZWF0ZVN5bnRoZXRpY0V2ZW50KFRvZ2dsZUV2ZW50SW50ZXJmYWNlKSxcbiAgICAgIEVORF9LRVlDT0RFUyA9IFs5LCAxMywgMjcsIDMyXSxcbiAgICAgIFNUQVJUX0tFWUNPREUgPSAyMjksXG4gICAgICBjYW5Vc2VDb21wb3NpdGlvbkV2ZW50ID0gY2FuVXNlRE9NICYmIFwiQ29tcG9zaXRpb25FdmVudFwiIGluIHdpbmRvdyxcbiAgICAgIGRvY3VtZW50TW9kZSA9IG51bGw7XG4gICAgY2FuVXNlRE9NICYmXG4gICAgICBcImRvY3VtZW50TW9kZVwiIGluIGRvY3VtZW50ICYmXG4gICAgICAoZG9jdW1lbnRNb2RlID0gZG9jdW1lbnQuZG9jdW1lbnRNb2RlKTtcbiAgICB2YXIgY2FuVXNlVGV4dElucHV0RXZlbnQgPVxuICAgICAgICBjYW5Vc2VET00gJiYgXCJUZXh0RXZlbnRcIiBpbiB3aW5kb3cgJiYgIWRvY3VtZW50TW9kZSxcbiAgICAgIHVzZUZhbGxiYWNrQ29tcG9zaXRpb25EYXRhID1cbiAgICAgICAgY2FuVXNlRE9NICYmXG4gICAgICAgICghY2FuVXNlQ29tcG9zaXRpb25FdmVudCB8fFxuICAgICAgICAgIChkb2N1bWVudE1vZGUgJiYgOCA8IGRvY3VtZW50TW9kZSAmJiAxMSA+PSBkb2N1bWVudE1vZGUpKSxcbiAgICAgIFNQQUNFQkFSX0NPREUgPSAzMixcbiAgICAgIFNQQUNFQkFSX0NIQVIgPSBTdHJpbmcuZnJvbUNoYXJDb2RlKFNQQUNFQkFSX0NPREUpLFxuICAgICAgaGFzU3BhY2VLZXlwcmVzcyA9ICExLFxuICAgICAgaXNDb21wb3NpbmcgPSAhMSxcbiAgICAgIHN1cHBvcnRlZElucHV0VHlwZXMgPSB7XG4gICAgICAgIGNvbG9yOiAhMCxcbiAgICAgICAgZGF0ZTogITAsXG4gICAgICAgIGRhdGV0aW1lOiAhMCxcbiAgICAgICAgXCJkYXRldGltZS1sb2NhbFwiOiAhMCxcbiAgICAgICAgZW1haWw6ICEwLFxuICAgICAgICBtb250aDogITAsXG4gICAgICAgIG51bWJlcjogITAsXG4gICAgICAgIHBhc3N3b3JkOiAhMCxcbiAgICAgICAgcmFuZ2U6ICEwLFxuICAgICAgICBzZWFyY2g6ICEwLFxuICAgICAgICB0ZWw6ICEwLFxuICAgICAgICB0ZXh0OiAhMCxcbiAgICAgICAgdGltZTogITAsXG4gICAgICAgIHVybDogITAsXG4gICAgICAgIHdlZWs6ICEwXG4gICAgICB9LFxuICAgICAgYWN0aXZlRWxlbWVudCQxID0gbnVsbCxcbiAgICAgIGFjdGl2ZUVsZW1lbnRJbnN0JDEgPSBudWxsLFxuICAgICAgaXNJbnB1dEV2ZW50U3VwcG9ydGVkID0gITE7XG4gICAgY2FuVXNlRE9NICYmXG4gICAgICAoaXNJbnB1dEV2ZW50U3VwcG9ydGVkID1cbiAgICAgICAgaXNFdmVudFN1cHBvcnRlZChcImlucHV0XCIpICYmXG4gICAgICAgICghZG9jdW1lbnQuZG9jdW1lbnRNb2RlIHx8IDkgPCBkb2N1bWVudC5kb2N1bWVudE1vZGUpKTtcbiAgICB2YXIgb2JqZWN0SXMgPSBcImZ1bmN0aW9uXCIgPT09IHR5cGVvZiBPYmplY3QuaXMgPyBPYmplY3QuaXMgOiBpcyxcbiAgICAgIHNraXBTZWxlY3Rpb25DaGFuZ2VFdmVudCA9XG4gICAgICAgIGNhblVzZURPTSAmJiBcImRvY3VtZW50TW9kZVwiIGluIGRvY3VtZW50ICYmIDExID49IGRvY3VtZW50LmRvY3VtZW50TW9kZSxcbiAgICAgIGFjdGl2ZUVsZW1lbnQgPSBudWxsLFxuICAgICAgYWN0aXZlRWxlbWVudEluc3QgPSBudWxsLFxuICAgICAgbGFzdFNlbGVjdGlvbiA9IG51bGwsXG4gICAgICBtb3VzZURvd24gPSAhMSxcbiAgICAgIHZlbmRvclByZWZpeGVzID0ge1xuICAgICAgICBhbmltYXRpb25lbmQ6IG1ha2VQcmVmaXhNYXAoXCJBbmltYXRpb25cIiwgXCJBbmltYXRpb25FbmRcIiksXG4gICAgICAgIGFuaW1hdGlvbml0ZXJhdGlvbjogbWFrZVByZWZpeE1hcChcIkFuaW1hdGlvblwiLCBcIkFuaW1hdGlvbkl0ZXJhdGlvblwiKSxcbiAgICAgICAgYW5pbWF0aW9uc3RhcnQ6IG1ha2VQcmVmaXhNYXAoXCJBbmltYXRpb25cIiwgXCJBbmltYXRpb25TdGFydFwiKSxcbiAgICAgICAgdHJhbnNpdGlvbnJ1bjogbWFrZVByZWZpeE1hcChcIlRyYW5zaXRpb25cIiwgXCJUcmFuc2l0aW9uUnVuXCIpLFxuICAgICAgICB0cmFuc2l0aW9uc3RhcnQ6IG1ha2VQcmVmaXhNYXAoXCJUcmFuc2l0aW9uXCIsIFwiVHJhbnNpdGlvblN0YXJ0XCIpLFxuICAgICAgICB0cmFuc2l0aW9uY2FuY2VsOiBtYWtlUHJlZml4TWFwKFwiVHJhbnNpdGlvblwiLCBcIlRyYW5zaXRpb25DYW5jZWxcIiksXG4gICAgICAgIHRyYW5zaXRpb25lbmQ6IG1ha2VQcmVmaXhNYXAoXCJUcmFuc2l0aW9uXCIsIFwiVHJhbnNpdGlvbkVuZFwiKVxuICAgICAgfSxcbiAgICAgIHByZWZpeGVkRXZlbnROYW1lcyA9IHt9LFxuICAgICAgc3R5bGUgPSB7fTtcbiAgICBjYW5Vc2VET00gJiZcbiAgICAgICgoc3R5bGUgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KFwiZGl2XCIpLnN0eWxlKSxcbiAgICAgIFwiQW5pbWF0aW9uRXZlbnRcIiBpbiB3aW5kb3cgfHxcbiAgICAgICAgKGRlbGV0ZSB2ZW5kb3JQcmVmaXhlcy5hbmltYXRpb25lbmQuYW5pbWF0aW9uLFxuICAgICAgICBkZWxldGUgdmVuZG9yUHJlZml4ZXMuYW5pbWF0aW9uaXRlcmF0aW9uLmFuaW1hdGlvbixcbiAgICAgICAgZGVsZXRlIHZlbmRvclByZWZpeGVzLmFuaW1hdGlvbnN0YXJ0LmFuaW1hdGlvbiksXG4gICAgICBcIlRyYW5zaXRpb25FdmVudFwiIGluIHdpbmRvdyB8fFxuICAgICAgICBkZWxldGUgdmVuZG9yUHJlZml4ZXMudHJhbnNpdGlvbmVuZC50cmFuc2l0aW9uKTtcbiAgICB2YXIgQU5JTUFUSU9OX0VORCA9IGdldFZlbmRvclByZWZpeGVkRXZlbnROYW1lKFwiYW5pbWF0aW9uZW5kXCIpLFxuICAgICAgQU5JTUFUSU9OX0lURVJBVElPTiA9IGdldFZlbmRvclByZWZpeGVkRXZlbnROYW1lKFwiYW5pbWF0aW9uaXRlcmF0aW9uXCIpLFxuICAgICAgQU5JTUFUSU9OX1NUQVJUID0gZ2V0VmVuZG9yUHJlZml4ZWRFdmVudE5hbWUoXCJhbmltYXRpb25zdGFydFwiKSxcbiAgICAgIFRSQU5TSVRJT05fUlVOID0gZ2V0VmVuZG9yUHJlZml4ZWRFdmVudE5hbWUoXCJ0cmFuc2l0aW9ucnVuXCIpLFxuICAgICAgVFJBTlNJVElPTl9TVEFSVCA9IGdldFZlbmRvclByZWZpeGVkRXZlbnROYW1lKFwidHJhbnNpdGlvbnN0YXJ0XCIpLFxuICAgICAgVFJBTlNJVElPTl9DQU5DRUwgPSBnZXRWZW5kb3JQcmVmaXhlZEV2ZW50TmFtZShcInRyYW5zaXRpb25jYW5jZWxcIiksXG4gICAgICBUUkFOU0lUSU9OX0VORCA9IGdldFZlbmRvclByZWZpeGVkRXZlbnROYW1lKFwidHJhbnNpdGlvbmVuZFwiKSxcbiAgICAgIHRvcExldmVsRXZlbnRzVG9SZWFjdE5hbWVzID0gbmV3IE1hcCgpLFxuICAgICAgc2ltcGxlRXZlbnRQbHVnaW5FdmVudHMgPVxuICAgICAgICBcImFib3J0IGF1eENsaWNrIGJlZm9yZVRvZ2dsZSBjYW5jZWwgY2FuUGxheSBjYW5QbGF5VGhyb3VnaCBjbGljayBjbG9zZSBjb250ZXh0TWVudSBjb3B5IGN1dCBkcmFnIGRyYWdFbmQgZHJhZ0VudGVyIGRyYWdFeGl0IGRyYWdMZWF2ZSBkcmFnT3ZlciBkcmFnU3RhcnQgZHJvcCBkdXJhdGlvbkNoYW5nZSBlbXB0aWVkIGVuY3J5cHRlZCBlbmRlZCBlcnJvciBnb3RQb2ludGVyQ2FwdHVyZSBpbnB1dCBpbnZhbGlkIGtleURvd24ga2V5UHJlc3Mga2V5VXAgbG9hZCBsb2FkZWREYXRhIGxvYWRlZE1ldGFkYXRhIGxvYWRTdGFydCBsb3N0UG9pbnRlckNhcHR1cmUgbW91c2VEb3duIG1vdXNlTW92ZSBtb3VzZU91dCBtb3VzZU92ZXIgbW91c2VVcCBwYXN0ZSBwYXVzZSBwbGF5IHBsYXlpbmcgcG9pbnRlckNhbmNlbCBwb2ludGVyRG93biBwb2ludGVyTW92ZSBwb2ludGVyT3V0IHBvaW50ZXJPdmVyIHBvaW50ZXJVcCBwcm9ncmVzcyByYXRlQ2hhbmdlIHJlc2V0IHJlc2l6ZSBzZWVrZWQgc2Vla2luZyBzdGFsbGVkIHN1Ym1pdCBzdXNwZW5kIHRpbWVVcGRhdGUgdG91Y2hDYW5jZWwgdG91Y2hFbmQgdG91Y2hTdGFydCB2b2x1bWVDaGFuZ2Ugc2Nyb2xsIHRvZ2dsZSB0b3VjaE1vdmUgd2FpdGluZyB3aGVlbFwiLnNwbGl0KFxuICAgICAgICAgIFwiIFwiXG4gICAgICAgICk7XG4gICAgc2ltcGxlRXZlbnRQbHVnaW5FdmVudHMucHVzaChcInNjcm9sbEVuZFwiKTtcbiAgICB2YXIgQ2FwdHVyZWRTdGFja3MgPSBuZXcgV2Vha01hcCgpLFxuICAgICAgT2Zmc2NyZWVuVmlzaWJsZSA9IDEsXG4gICAgICBPZmZzY3JlZW5QYXNzaXZlRWZmZWN0c0Nvbm5lY3RlZCA9IDIsXG4gICAgICBjb25jdXJyZW50UXVldWVzID0gW10sXG4gICAgICBjb25jdXJyZW50UXVldWVzSW5kZXggPSAwLFxuICAgICAgY29uY3VycmVudGx5VXBkYXRlZExhbmVzID0gMCxcbiAgICAgIGVtcHR5Q29udGV4dE9iamVjdCA9IHt9O1xuICAgIE9iamVjdC5mcmVlemUoZW1wdHlDb250ZXh0T2JqZWN0KTtcbiAgICB2YXIgcmVzb2x2ZUZhbWlseSA9IG51bGwsXG4gICAgICBmYWlsZWRCb3VuZGFyaWVzID0gbnVsbCxcbiAgICAgIE5vTW9kZSA9IDAsXG4gICAgICBDb25jdXJyZW50TW9kZSA9IDEsXG4gICAgICBQcm9maWxlTW9kZSA9IDIsXG4gICAgICBTdHJpY3RMZWdhY3lNb2RlID0gOCxcbiAgICAgIFN0cmljdEVmZmVjdHNNb2RlID0gMTYsXG4gICAgICBOb1N0cmljdFBhc3NpdmVFZmZlY3RzTW9kZSA9IDY0O1xuICAgIHZhciBoYXNCYWRNYXBQb2x5ZmlsbCA9ICExO1xuICAgIHRyeSB7XG4gICAgICB2YXIgbm9uRXh0ZW5zaWJsZU9iamVjdCA9IE9iamVjdC5wcmV2ZW50RXh0ZW5zaW9ucyh7fSk7XG4gICAgICBuZXcgTWFwKFtbbm9uRXh0ZW5zaWJsZU9iamVjdCwgbnVsbF1dKTtcbiAgICAgIG5ldyBTZXQoW25vbkV4dGVuc2libGVPYmplY3RdKTtcbiAgICB9IGNhdGNoIChlJDMpIHtcbiAgICAgIGhhc0JhZE1hcFBvbHlmaWxsID0gITA7XG4gICAgfVxuICAgIHZhciBmb3JrU3RhY2sgPSBbXSxcbiAgICAgIGZvcmtTdGFja0luZGV4ID0gMCxcbiAgICAgIHRyZWVGb3JrUHJvdmlkZXIgPSBudWxsLFxuICAgICAgdHJlZUZvcmtDb3VudCA9IDAsXG4gICAgICBpZFN0YWNrID0gW10sXG4gICAgICBpZFN0YWNrSW5kZXggPSAwLFxuICAgICAgdHJlZUNvbnRleHRQcm92aWRlciA9IG51bGwsXG4gICAgICB0cmVlQ29udGV4dElkID0gMSxcbiAgICAgIHRyZWVDb250ZXh0T3ZlcmZsb3cgPSBcIlwiLFxuICAgICAgaHlkcmF0aW9uUGFyZW50RmliZXIgPSBudWxsLFxuICAgICAgbmV4dEh5ZHJhdGFibGVJbnN0YW5jZSA9IG51bGwsXG4gICAgICBpc0h5ZHJhdGluZyA9ICExLFxuICAgICAgZGlkU3VzcGVuZE9yRXJyb3JERVYgPSAhMSxcbiAgICAgIGh5ZHJhdGlvbkRpZmZSb290REVWID0gbnVsbCxcbiAgICAgIGh5ZHJhdGlvbkVycm9ycyA9IG51bGwsXG4gICAgICByb290T3JTaW5nbGV0b25Db250ZXh0ID0gITEsXG4gICAgICBIeWRyYXRpb25NaXNtYXRjaEV4Y2VwdGlvbiA9IEVycm9yKFxuICAgICAgICBcIkh5ZHJhdGlvbiBNaXNtYXRjaCBFeGNlcHRpb246IFRoaXMgaXMgbm90IGEgcmVhbCBlcnJvciwgYW5kIHNob3VsZCBub3QgbGVhayBpbnRvIHVzZXJzcGFjZS4gSWYgeW91J3JlIHNlZWluZyB0aGlzLCBpdCdzIGxpa2VseSBhIGJ1ZyBpbiBSZWFjdC5cIlxuICAgICAgKSxcbiAgICAgIGxhc3RSZXNldFRpbWUgPSAwO1xuICAgIGlmIChcbiAgICAgIFwib2JqZWN0XCIgPT09IHR5cGVvZiBwZXJmb3JtYW5jZSAmJlxuICAgICAgXCJmdW5jdGlvblwiID09PSB0eXBlb2YgcGVyZm9ybWFuY2Uubm93XG4gICAgKSB7XG4gICAgICB2YXIgbG9jYWxQZXJmb3JtYW5jZSA9IHBlcmZvcm1hbmNlO1xuICAgICAgdmFyIGdldEN1cnJlbnRUaW1lID0gZnVuY3Rpb24gKCkge1xuICAgICAgICByZXR1cm4gbG9jYWxQZXJmb3JtYW5jZS5ub3coKTtcbiAgICAgIH07XG4gICAgfSBlbHNlIHtcbiAgICAgIHZhciBsb2NhbERhdGUgPSBEYXRlO1xuICAgICAgZ2V0Q3VycmVudFRpbWUgPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgIHJldHVybiBsb2NhbERhdGUubm93KCk7XG4gICAgICB9O1xuICAgIH1cbiAgICB2YXIgdmFsdWVDdXJzb3IgPSBjcmVhdGVDdXJzb3IobnVsbCk7XG4gICAgdmFyIHJlbmRlcmVyQ3Vyc29yREVWID0gY3JlYXRlQ3Vyc29yKG51bGwpO1xuICAgIHZhciByZW5kZXJlclNpZ2lsID0ge307XG4gICAgdmFyIGN1cnJlbnRseVJlbmRlcmluZ0ZpYmVyJDEgPSBudWxsLFxuICAgICAgbGFzdENvbnRleHREZXBlbmRlbmN5ID0gbnVsbCxcbiAgICAgIGlzRGlzYWxsb3dlZENvbnRleHRSZWFkSW5ERVYgPSAhMSxcbiAgICAgIEFib3J0Q29udHJvbGxlckxvY2FsID1cbiAgICAgICAgXCJ1bmRlZmluZWRcIiAhPT0gdHlwZW9mIEFib3J0Q29udHJvbGxlclxuICAgICAgICAgID8gQWJvcnRDb250cm9sbGVyXG4gICAgICAgICAgOiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgIHZhciBsaXN0ZW5lcnMgPSBbXSxcbiAgICAgICAgICAgICAgICBzaWduYWwgPSAodGhpcy5zaWduYWwgPSB7XG4gICAgICAgICAgICAgICAgICBhYm9ydGVkOiAhMSxcbiAgICAgICAgICAgICAgICAgIGFkZEV2ZW50TGlzdGVuZXI6IGZ1bmN0aW9uICh0eXBlLCBsaXN0ZW5lcikge1xuICAgICAgICAgICAgICAgICAgICBsaXN0ZW5lcnMucHVzaChsaXN0ZW5lcik7XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgIHRoaXMuYWJvcnQgPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgc2lnbmFsLmFib3J0ZWQgPSAhMDtcbiAgICAgICAgICAgICAgICBsaXN0ZW5lcnMuZm9yRWFjaChmdW5jdGlvbiAobGlzdGVuZXIpIHtcbiAgICAgICAgICAgICAgICAgIHJldHVybiBsaXN0ZW5lcigpO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgfSxcbiAgICAgIHNjaGVkdWxlQ2FsbGJhY2skMiA9IFNjaGVkdWxlci51bnN0YWJsZV9zY2hlZHVsZUNhbGxiYWNrLFxuICAgICAgTm9ybWFsUHJpb3JpdHkgPSBTY2hlZHVsZXIudW5zdGFibGVfTm9ybWFsUHJpb3JpdHksXG4gICAgICBDYWNoZUNvbnRleHQgPSB7XG4gICAgICAgICQkdHlwZW9mOiBSRUFDVF9DT05URVhUX1RZUEUsXG4gICAgICAgIENvbnN1bWVyOiBudWxsLFxuICAgICAgICBQcm92aWRlcjogbnVsbCxcbiAgICAgICAgX2N1cnJlbnRWYWx1ZTogbnVsbCxcbiAgICAgICAgX2N1cnJlbnRWYWx1ZTI6IG51bGwsXG4gICAgICAgIF90aHJlYWRDb3VudDogMCxcbiAgICAgICAgX2N1cnJlbnRSZW5kZXJlcjogbnVsbCxcbiAgICAgICAgX2N1cnJlbnRSZW5kZXJlcjI6IG51bGxcbiAgICAgIH0sXG4gICAgICBub3cgPSBTY2hlZHVsZXIudW5zdGFibGVfbm93LFxuICAgICAgcmVuZGVyU3RhcnRUaW1lID0gLTAsXG4gICAgICBjb21taXRTdGFydFRpbWUgPSAtMCxcbiAgICAgIHByb2ZpbGVyU3RhcnRUaW1lID0gLTEuMSxcbiAgICAgIHByb2ZpbGVyRWZmZWN0RHVyYXRpb24gPSAtMCxcbiAgICAgIGN1cnJlbnRVcGRhdGVJc05lc3RlZCA9ICExLFxuICAgICAgbmVzdGVkVXBkYXRlU2NoZWR1bGVkID0gITEsXG4gICAgICBjdXJyZW50RW50YW5nbGVkTGlzdGVuZXJzID0gbnVsbCxcbiAgICAgIGN1cnJlbnRFbnRhbmdsZWRQZW5kaW5nQ291bnQgPSAwLFxuICAgICAgY3VycmVudEVudGFuZ2xlZExhbmUgPSAwLFxuICAgICAgY3VycmVudEVudGFuZ2xlZEFjdGlvblRoZW5hYmxlID0gbnVsbCxcbiAgICAgIHByZXZPblN0YXJ0VHJhbnNpdGlvbkZpbmlzaCA9IFJlYWN0U2hhcmVkSW50ZXJuYWxzLlM7XG4gICAgUmVhY3RTaGFyZWRJbnRlcm5hbHMuUyA9IGZ1bmN0aW9uICh0cmFuc2l0aW9uLCByZXR1cm5WYWx1ZSkge1xuICAgICAgXCJvYmplY3RcIiA9PT0gdHlwZW9mIHJldHVyblZhbHVlICYmXG4gICAgICAgIG51bGwgIT09IHJldHVyblZhbHVlICYmXG4gICAgICAgIFwiZnVuY3Rpb25cIiA9PT0gdHlwZW9mIHJldHVyblZhbHVlLnRoZW4gJiZcbiAgICAgICAgZW50YW5nbGVBc3luY0FjdGlvbih0cmFuc2l0aW9uLCByZXR1cm5WYWx1ZSk7XG4gICAgICBudWxsICE9PSBwcmV2T25TdGFydFRyYW5zaXRpb25GaW5pc2ggJiZcbiAgICAgICAgcHJldk9uU3RhcnRUcmFuc2l0aW9uRmluaXNoKHRyYW5zaXRpb24sIHJldHVyblZhbHVlKTtcbiAgICB9O1xuICAgIHZhciByZXN1bWVkQ2FjaGUgPSBjcmVhdGVDdXJzb3IobnVsbCksXG4gICAgICBSZWFjdFN0cmljdE1vZGVXYXJuaW5ncyA9IHtcbiAgICAgICAgcmVjb3JkVW5zYWZlTGlmZWN5Y2xlV2FybmluZ3M6IGZ1bmN0aW9uICgpIHt9LFxuICAgICAgICBmbHVzaFBlbmRpbmdVbnNhZmVMaWZlY3ljbGVXYXJuaW5nczogZnVuY3Rpb24gKCkge30sXG4gICAgICAgIHJlY29yZExlZ2FjeUNvbnRleHRXYXJuaW5nOiBmdW5jdGlvbiAoKSB7fSxcbiAgICAgICAgZmx1c2hMZWdhY3lDb250ZXh0V2FybmluZzogZnVuY3Rpb24gKCkge30sXG4gICAgICAgIGRpc2NhcmRQZW5kaW5nV2FybmluZ3M6IGZ1bmN0aW9uICgpIHt9XG4gICAgICB9LFxuICAgICAgcGVuZGluZ0NvbXBvbmVudFdpbGxNb3VudFdhcm5pbmdzID0gW10sXG4gICAgICBwZW5kaW5nVU5TQUZFX0NvbXBvbmVudFdpbGxNb3VudFdhcm5pbmdzID0gW10sXG4gICAgICBwZW5kaW5nQ29tcG9uZW50V2lsbFJlY2VpdmVQcm9wc1dhcm5pbmdzID0gW10sXG4gICAgICBwZW5kaW5nVU5TQUZFX0NvbXBvbmVudFdpbGxSZWNlaXZlUHJvcHNXYXJuaW5ncyA9IFtdLFxuICAgICAgcGVuZGluZ0NvbXBvbmVudFdpbGxVcGRhdGVXYXJuaW5ncyA9IFtdLFxuICAgICAgcGVuZGluZ1VOU0FGRV9Db21wb25lbnRXaWxsVXBkYXRlV2FybmluZ3MgPSBbXSxcbiAgICAgIGRpZFdhcm5BYm91dFVuc2FmZUxpZmVjeWNsZXMgPSBuZXcgU2V0KCk7XG4gICAgUmVhY3RTdHJpY3RNb2RlV2FybmluZ3MucmVjb3JkVW5zYWZlTGlmZWN5Y2xlV2FybmluZ3MgPSBmdW5jdGlvbiAoXG4gICAgICBmaWJlcixcbiAgICAgIGluc3RhbmNlXG4gICAgKSB7XG4gICAgICBkaWRXYXJuQWJvdXRVbnNhZmVMaWZlY3ljbGVzLmhhcyhmaWJlci50eXBlKSB8fFxuICAgICAgICAoXCJmdW5jdGlvblwiID09PSB0eXBlb2YgaW5zdGFuY2UuY29tcG9uZW50V2lsbE1vdW50ICYmXG4gICAgICAgICAgITAgIT09IGluc3RhbmNlLmNvbXBvbmVudFdpbGxNb3VudC5fX3N1cHByZXNzRGVwcmVjYXRpb25XYXJuaW5nICYmXG4gICAgICAgICAgcGVuZGluZ0NvbXBvbmVudFdpbGxNb3VudFdhcm5pbmdzLnB1c2goZmliZXIpLFxuICAgICAgICBmaWJlci5tb2RlICYgU3RyaWN0TGVnYWN5TW9kZSAmJlxuICAgICAgICAgIFwiZnVuY3Rpb25cIiA9PT0gdHlwZW9mIGluc3RhbmNlLlVOU0FGRV9jb21wb25lbnRXaWxsTW91bnQgJiZcbiAgICAgICAgICBwZW5kaW5nVU5TQUZFX0NvbXBvbmVudFdpbGxNb3VudFdhcm5pbmdzLnB1c2goZmliZXIpLFxuICAgICAgICBcImZ1bmN0aW9uXCIgPT09IHR5cGVvZiBpbnN0YW5jZS5jb21wb25lbnRXaWxsUmVjZWl2ZVByb3BzICYmXG4gICAgICAgICAgITAgIT09XG4gICAgICAgICAgICBpbnN0YW5jZS5jb21wb25lbnRXaWxsUmVjZWl2ZVByb3BzLl9fc3VwcHJlc3NEZXByZWNhdGlvbldhcm5pbmcgJiZcbiAgICAgICAgICBwZW5kaW5nQ29tcG9uZW50V2lsbFJlY2VpdmVQcm9wc1dhcm5pbmdzLnB1c2goZmliZXIpLFxuICAgICAgICBmaWJlci5tb2RlICYgU3RyaWN0TGVnYWN5TW9kZSAmJlxuICAgICAgICAgIFwiZnVuY3Rpb25cIiA9PT0gdHlwZW9mIGluc3RhbmNlLlVOU0FGRV9jb21wb25lbnRXaWxsUmVjZWl2ZVByb3BzICYmXG4gICAgICAgICAgcGVuZGluZ1VOU0FGRV9Db21wb25lbnRXaWxsUmVjZWl2ZVByb3BzV2FybmluZ3MucHVzaChmaWJlciksXG4gICAgICAgIFwiZnVuY3Rpb25cIiA9PT0gdHlwZW9mIGluc3RhbmNlLmNvbXBvbmVudFdpbGxVcGRhdGUgJiZcbiAgICAgICAgICAhMCAhPT0gaW5zdGFuY2UuY29tcG9uZW50V2lsbFVwZGF0ZS5fX3N1cHByZXNzRGVwcmVjYXRpb25XYXJuaW5nICYmXG4gICAgICAgICAgcGVuZGluZ0NvbXBvbmVudFdpbGxVcGRhdGVXYXJuaW5ncy5wdXNoKGZpYmVyKSxcbiAgICAgICAgZmliZXIubW9kZSAmIFN0cmljdExlZ2FjeU1vZGUgJiZcbiAgICAgICAgICBcImZ1bmN0aW9uXCIgPT09IHR5cGVvZiBpbnN0YW5jZS5VTlNBRkVfY29tcG9uZW50V2lsbFVwZGF0ZSAmJlxuICAgICAgICAgIHBlbmRpbmdVTlNBRkVfQ29tcG9uZW50V2lsbFVwZGF0ZVdhcm5pbmdzLnB1c2goZmliZXIpKTtcbiAgICB9O1xuICAgIFJlYWN0U3RyaWN0TW9kZVdhcm5pbmdzLmZsdXNoUGVuZGluZ1Vuc2FmZUxpZmVjeWNsZVdhcm5pbmdzID0gZnVuY3Rpb24gKCkge1xuICAgICAgdmFyIGNvbXBvbmVudFdpbGxNb3VudFVuaXF1ZU5hbWVzID0gbmV3IFNldCgpO1xuICAgICAgMCA8IHBlbmRpbmdDb21wb25lbnRXaWxsTW91bnRXYXJuaW5ncy5sZW5ndGggJiZcbiAgICAgICAgKHBlbmRpbmdDb21wb25lbnRXaWxsTW91bnRXYXJuaW5ncy5mb3JFYWNoKGZ1bmN0aW9uIChmaWJlcikge1xuICAgICAgICAgIGNvbXBvbmVudFdpbGxNb3VudFVuaXF1ZU5hbWVzLmFkZChcbiAgICAgICAgICAgIGdldENvbXBvbmVudE5hbWVGcm9tRmliZXIoZmliZXIpIHx8IFwiQ29tcG9uZW50XCJcbiAgICAgICAgICApO1xuICAgICAgICAgIGRpZFdhcm5BYm91dFVuc2FmZUxpZmVjeWNsZXMuYWRkKGZpYmVyLnR5cGUpO1xuICAgICAgICB9KSxcbiAgICAgICAgKHBlbmRpbmdDb21wb25lbnRXaWxsTW91bnRXYXJuaW5ncyA9IFtdKSk7XG4gICAgICB2YXIgVU5TQUZFX2NvbXBvbmVudFdpbGxNb3VudFVuaXF1ZU5hbWVzID0gbmV3IFNldCgpO1xuICAgICAgMCA8IHBlbmRpbmdVTlNBRkVfQ29tcG9uZW50V2lsbE1vdW50V2FybmluZ3MubGVuZ3RoICYmXG4gICAgICAgIChwZW5kaW5nVU5TQUZFX0NvbXBvbmVudFdpbGxNb3VudFdhcm5pbmdzLmZvckVhY2goZnVuY3Rpb24gKGZpYmVyKSB7XG4gICAgICAgICAgVU5TQUZFX2NvbXBvbmVudFdpbGxNb3VudFVuaXF1ZU5hbWVzLmFkZChcbiAgICAgICAgICAgIGdldENvbXBvbmVudE5hbWVGcm9tRmliZXIoZmliZXIpIHx8IFwiQ29tcG9uZW50XCJcbiAgICAgICAgICApO1xuICAgICAgICAgIGRpZFdhcm5BYm91dFVuc2FmZUxpZmVjeWNsZXMuYWRkKGZpYmVyLnR5cGUpO1xuICAgICAgICB9KSxcbiAgICAgICAgKHBlbmRpbmdVTlNBRkVfQ29tcG9uZW50V2lsbE1vdW50V2FybmluZ3MgPSBbXSkpO1xuICAgICAgdmFyIGNvbXBvbmVudFdpbGxSZWNlaXZlUHJvcHNVbmlxdWVOYW1lcyA9IG5ldyBTZXQoKTtcbiAgICAgIDAgPCBwZW5kaW5nQ29tcG9uZW50V2lsbFJlY2VpdmVQcm9wc1dhcm5pbmdzLmxlbmd0aCAmJlxuICAgICAgICAocGVuZGluZ0NvbXBvbmVudFdpbGxSZWNlaXZlUHJvcHNXYXJuaW5ncy5mb3JFYWNoKGZ1bmN0aW9uIChmaWJlcikge1xuICAgICAgICAgIGNvbXBvbmVudFdpbGxSZWNlaXZlUHJvcHNVbmlxdWVOYW1lcy5hZGQoXG4gICAgICAgICAgICBnZXRDb21wb25lbnROYW1lRnJvbUZpYmVyKGZpYmVyKSB8fCBcIkNvbXBvbmVudFwiXG4gICAgICAgICAgKTtcbiAgICAgICAgICBkaWRXYXJuQWJvdXRVbnNhZmVMaWZlY3ljbGVzLmFkZChmaWJlci50eXBlKTtcbiAgICAgICAgfSksXG4gICAgICAgIChwZW5kaW5nQ29tcG9uZW50V2lsbFJlY2VpdmVQcm9wc1dhcm5pbmdzID0gW10pKTtcbiAgICAgIHZhciBVTlNBRkVfY29tcG9uZW50V2lsbFJlY2VpdmVQcm9wc1VuaXF1ZU5hbWVzID0gbmV3IFNldCgpO1xuICAgICAgMCA8IHBlbmRpbmdVTlNBRkVfQ29tcG9uZW50V2lsbFJlY2VpdmVQcm9wc1dhcm5pbmdzLmxlbmd0aCAmJlxuICAgICAgICAocGVuZGluZ1VOU0FGRV9Db21wb25lbnRXaWxsUmVjZWl2ZVByb3BzV2FybmluZ3MuZm9yRWFjaChcbiAgICAgICAgICBmdW5jdGlvbiAoZmliZXIpIHtcbiAgICAgICAgICAgIFVOU0FGRV9jb21wb25lbnRXaWxsUmVjZWl2ZVByb3BzVW5pcXVlTmFtZXMuYWRkKFxuICAgICAgICAgICAgICBnZXRDb21wb25lbnROYW1lRnJvbUZpYmVyKGZpYmVyKSB8fCBcIkNvbXBvbmVudFwiXG4gICAgICAgICAgICApO1xuICAgICAgICAgICAgZGlkV2FybkFib3V0VW5zYWZlTGlmZWN5Y2xlcy5hZGQoZmliZXIudHlwZSk7XG4gICAgICAgICAgfVxuICAgICAgICApLFxuICAgICAgICAocGVuZGluZ1VOU0FGRV9Db21wb25lbnRXaWxsUmVjZWl2ZVByb3BzV2FybmluZ3MgPSBbXSkpO1xuICAgICAgdmFyIGNvbXBvbmVudFdpbGxVcGRhdGVVbmlxdWVOYW1lcyA9IG5ldyBTZXQoKTtcbiAgICAgIDAgPCBwZW5kaW5nQ29tcG9uZW50V2lsbFVwZGF0ZVdhcm5pbmdzLmxlbmd0aCAmJlxuICAgICAgICAocGVuZGluZ0NvbXBvbmVudFdpbGxVcGRhdGVXYXJuaW5ncy5mb3JFYWNoKGZ1bmN0aW9uIChmaWJlcikge1xuICAgICAgICAgIGNvbXBvbmVudFdpbGxVcGRhdGVVbmlxdWVOYW1lcy5hZGQoXG4gICAgICAgICAgICBnZXRDb21wb25lbnROYW1lRnJvbUZpYmVyKGZpYmVyKSB8fCBcIkNvbXBvbmVudFwiXG4gICAgICAgICAgKTtcbiAgICAgICAgICBkaWRXYXJuQWJvdXRVbnNhZmVMaWZlY3ljbGVzLmFkZChmaWJlci50eXBlKTtcbiAgICAgICAgfSksXG4gICAgICAgIChwZW5kaW5nQ29tcG9uZW50V2lsbFVwZGF0ZVdhcm5pbmdzID0gW10pKTtcbiAgICAgIHZhciBVTlNBRkVfY29tcG9uZW50V2lsbFVwZGF0ZVVuaXF1ZU5hbWVzID0gbmV3IFNldCgpO1xuICAgICAgMCA8IHBlbmRpbmdVTlNBRkVfQ29tcG9uZW50V2lsbFVwZGF0ZVdhcm5pbmdzLmxlbmd0aCAmJlxuICAgICAgICAocGVuZGluZ1VOU0FGRV9Db21wb25lbnRXaWxsVXBkYXRlV2FybmluZ3MuZm9yRWFjaChmdW5jdGlvbiAoZmliZXIpIHtcbiAgICAgICAgICBVTlNBRkVfY29tcG9uZW50V2lsbFVwZGF0ZVVuaXF1ZU5hbWVzLmFkZChcbiAgICAgICAgICAgIGdldENvbXBvbmVudE5hbWVGcm9tRmliZXIoZmliZXIpIHx8IFwiQ29tcG9uZW50XCJcbiAgICAgICAgICApO1xuICAgICAgICAgIGRpZFdhcm5BYm91dFVuc2FmZUxpZmVjeWNsZXMuYWRkKGZpYmVyLnR5cGUpO1xuICAgICAgICB9KSxcbiAgICAgICAgKHBlbmRpbmdVTlNBRkVfQ29tcG9uZW50V2lsbFVwZGF0ZVdhcm5pbmdzID0gW10pKTtcbiAgICAgIGlmICgwIDwgVU5TQUZFX2NvbXBvbmVudFdpbGxNb3VudFVuaXF1ZU5hbWVzLnNpemUpIHtcbiAgICAgICAgdmFyIHNvcnRlZE5hbWVzID0gc2V0VG9Tb3J0ZWRTdHJpbmcoXG4gICAgICAgICAgVU5TQUZFX2NvbXBvbmVudFdpbGxNb3VudFVuaXF1ZU5hbWVzXG4gICAgICAgICk7XG4gICAgICAgIGNvbnNvbGUuZXJyb3IoXG4gICAgICAgICAgXCJVc2luZyBVTlNBRkVfY29tcG9uZW50V2lsbE1vdW50IGluIHN0cmljdCBtb2RlIGlzIG5vdCByZWNvbW1lbmRlZCBhbmQgbWF5IGluZGljYXRlIGJ1Z3MgaW4geW91ciBjb2RlLiBTZWUgaHR0cHM6Ly9yZWFjdC5kZXYvbGluay91bnNhZmUtY29tcG9uZW50LWxpZmVjeWNsZXMgZm9yIGRldGFpbHMuXFxuXFxuKiBNb3ZlIGNvZGUgd2l0aCBzaWRlIGVmZmVjdHMgdG8gY29tcG9uZW50RGlkTW91bnQsIGFuZCBzZXQgaW5pdGlhbCBzdGF0ZSBpbiB0aGUgY29uc3RydWN0b3IuXFxuXFxuUGxlYXNlIHVwZGF0ZSB0aGUgZm9sbG93aW5nIGNvbXBvbmVudHM6ICVzXCIsXG4gICAgICAgICAgc29ydGVkTmFtZXNcbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICAgIDAgPCBVTlNBRkVfY29tcG9uZW50V2lsbFJlY2VpdmVQcm9wc1VuaXF1ZU5hbWVzLnNpemUgJiZcbiAgICAgICAgKChzb3J0ZWROYW1lcyA9IHNldFRvU29ydGVkU3RyaW5nKFxuICAgICAgICAgIFVOU0FGRV9jb21wb25lbnRXaWxsUmVjZWl2ZVByb3BzVW5pcXVlTmFtZXNcbiAgICAgICAgKSksXG4gICAgICAgIGNvbnNvbGUuZXJyb3IoXG4gICAgICAgICAgXCJVc2luZyBVTlNBRkVfY29tcG9uZW50V2lsbFJlY2VpdmVQcm9wcyBpbiBzdHJpY3QgbW9kZSBpcyBub3QgcmVjb21tZW5kZWQgYW5kIG1heSBpbmRpY2F0ZSBidWdzIGluIHlvdXIgY29kZS4gU2VlIGh0dHBzOi8vcmVhY3QuZGV2L2xpbmsvdW5zYWZlLWNvbXBvbmVudC1saWZlY3ljbGVzIGZvciBkZXRhaWxzLlxcblxcbiogTW92ZSBkYXRhIGZldGNoaW5nIGNvZGUgb3Igc2lkZSBlZmZlY3RzIHRvIGNvbXBvbmVudERpZFVwZGF0ZS5cXG4qIElmIHlvdSdyZSB1cGRhdGluZyBzdGF0ZSB3aGVuZXZlciBwcm9wcyBjaGFuZ2UsIHJlZmFjdG9yIHlvdXIgY29kZSB0byB1c2UgbWVtb2l6YXRpb24gdGVjaG5pcXVlcyBvciBtb3ZlIGl0IHRvIHN0YXRpYyBnZXREZXJpdmVkU3RhdGVGcm9tUHJvcHMuIExlYXJuIG1vcmUgYXQ6IGh0dHBzOi8vcmVhY3QuZGV2L2xpbmsvZGVyaXZlZC1zdGF0ZVxcblxcblBsZWFzZSB1cGRhdGUgdGhlIGZvbGxvd2luZyBjb21wb25lbnRzOiAlc1wiLFxuICAgICAgICAgIHNvcnRlZE5hbWVzXG4gICAgICAgICkpO1xuICAgICAgMCA8IFVOU0FGRV9jb21wb25lbnRXaWxsVXBkYXRlVW5pcXVlTmFtZXMuc2l6ZSAmJlxuICAgICAgICAoKHNvcnRlZE5hbWVzID0gc2V0VG9Tb3J0ZWRTdHJpbmcoXG4gICAgICAgICAgVU5TQUZFX2NvbXBvbmVudFdpbGxVcGRhdGVVbmlxdWVOYW1lc1xuICAgICAgICApKSxcbiAgICAgICAgY29uc29sZS5lcnJvcihcbiAgICAgICAgICBcIlVzaW5nIFVOU0FGRV9jb21wb25lbnRXaWxsVXBkYXRlIGluIHN0cmljdCBtb2RlIGlzIG5vdCByZWNvbW1lbmRlZCBhbmQgbWF5IGluZGljYXRlIGJ1Z3MgaW4geW91ciBjb2RlLiBTZWUgaHR0cHM6Ly9yZWFjdC5kZXYvbGluay91bnNhZmUtY29tcG9uZW50LWxpZmVjeWNsZXMgZm9yIGRldGFpbHMuXFxuXFxuKiBNb3ZlIGRhdGEgZmV0Y2hpbmcgY29kZSBvciBzaWRlIGVmZmVjdHMgdG8gY29tcG9uZW50RGlkVXBkYXRlLlxcblxcblBsZWFzZSB1cGRhdGUgdGhlIGZvbGxvd2luZyBjb21wb25lbnRzOiAlc1wiLFxuICAgICAgICAgIHNvcnRlZE5hbWVzXG4gICAgICAgICkpO1xuICAgICAgMCA8IGNvbXBvbmVudFdpbGxNb3VudFVuaXF1ZU5hbWVzLnNpemUgJiZcbiAgICAgICAgKChzb3J0ZWROYW1lcyA9IHNldFRvU29ydGVkU3RyaW5nKGNvbXBvbmVudFdpbGxNb3VudFVuaXF1ZU5hbWVzKSksXG4gICAgICAgIGNvbnNvbGUud2FybihcbiAgICAgICAgICBcImNvbXBvbmVudFdpbGxNb3VudCBoYXMgYmVlbiByZW5hbWVkLCBhbmQgaXMgbm90IHJlY29tbWVuZGVkIGZvciB1c2UuIFNlZSBodHRwczovL3JlYWN0LmRldi9saW5rL3Vuc2FmZS1jb21wb25lbnQtbGlmZWN5Y2xlcyBmb3IgZGV0YWlscy5cXG5cXG4qIE1vdmUgY29kZSB3aXRoIHNpZGUgZWZmZWN0cyB0byBjb21wb25lbnREaWRNb3VudCwgYW5kIHNldCBpbml0aWFsIHN0YXRlIGluIHRoZSBjb25zdHJ1Y3Rvci5cXG4qIFJlbmFtZSBjb21wb25lbnRXaWxsTW91bnQgdG8gVU5TQUZFX2NvbXBvbmVudFdpbGxNb3VudCB0byBzdXBwcmVzcyB0aGlzIHdhcm5pbmcgaW4gbm9uLXN0cmljdCBtb2RlLiBJbiBSZWFjdCAxOC54LCBvbmx5IHRoZSBVTlNBRkVfIG5hbWUgd2lsbCB3b3JrLiBUbyByZW5hbWUgYWxsIGRlcHJlY2F0ZWQgbGlmZWN5Y2xlcyB0byB0aGVpciBuZXcgbmFtZXMsIHlvdSBjYW4gcnVuIGBucHggcmVhY3QtY29kZW1vZCByZW5hbWUtdW5zYWZlLWxpZmVjeWNsZXNgIGluIHlvdXIgcHJvamVjdCBzb3VyY2UgZm9sZGVyLlxcblxcblBsZWFzZSB1cGRhdGUgdGhlIGZvbGxvd2luZyBjb21wb25lbnRzOiAlc1wiLFxuICAgICAgICAgIHNvcnRlZE5hbWVzXG4gICAgICAgICkpO1xuICAgICAgMCA8IGNvbXBvbmVudFdpbGxSZWNlaXZlUHJvcHNVbmlxdWVOYW1lcy5zaXplICYmXG4gICAgICAgICgoc29ydGVkTmFtZXMgPSBzZXRUb1NvcnRlZFN0cmluZyhcbiAgICAgICAgICBjb21wb25lbnRXaWxsUmVjZWl2ZVByb3BzVW5pcXVlTmFtZXNcbiAgICAgICAgKSksXG4gICAgICAgIGNvbnNvbGUud2FybihcbiAgICAgICAgICBcImNvbXBvbmVudFdpbGxSZWNlaXZlUHJvcHMgaGFzIGJlZW4gcmVuYW1lZCwgYW5kIGlzIG5vdCByZWNvbW1lbmRlZCBmb3IgdXNlLiBTZWUgaHR0cHM6Ly9yZWFjdC5kZXYvbGluay91bnNhZmUtY29tcG9uZW50LWxpZmVjeWNsZXMgZm9yIGRldGFpbHMuXFxuXFxuKiBNb3ZlIGRhdGEgZmV0Y2hpbmcgY29kZSBvciBzaWRlIGVmZmVjdHMgdG8gY29tcG9uZW50RGlkVXBkYXRlLlxcbiogSWYgeW91J3JlIHVwZGF0aW5nIHN0YXRlIHdoZW5ldmVyIHByb3BzIGNoYW5nZSwgcmVmYWN0b3IgeW91ciBjb2RlIHRvIHVzZSBtZW1vaXphdGlvbiB0ZWNobmlxdWVzIG9yIG1vdmUgaXQgdG8gc3RhdGljIGdldERlcml2ZWRTdGF0ZUZyb21Qcm9wcy4gTGVhcm4gbW9yZSBhdDogaHR0cHM6Ly9yZWFjdC5kZXYvbGluay9kZXJpdmVkLXN0YXRlXFxuKiBSZW5hbWUgY29tcG9uZW50V2lsbFJlY2VpdmVQcm9wcyB0byBVTlNBRkVfY29tcG9uZW50V2lsbFJlY2VpdmVQcm9wcyB0byBzdXBwcmVzcyB0aGlzIHdhcm5pbmcgaW4gbm9uLXN0cmljdCBtb2RlLiBJbiBSZWFjdCAxOC54LCBvbmx5IHRoZSBVTlNBRkVfIG5hbWUgd2lsbCB3b3JrLiBUbyByZW5hbWUgYWxsIGRlcHJlY2F0ZWQgbGlmZWN5Y2xlcyB0byB0aGVpciBuZXcgbmFtZXMsIHlvdSBjYW4gcnVuIGBucHggcmVhY3QtY29kZW1vZCByZW5hbWUtdW5zYWZlLWxpZmVjeWNsZXNgIGluIHlvdXIgcHJvamVjdCBzb3VyY2UgZm9sZGVyLlxcblxcblBsZWFzZSB1cGRhdGUgdGhlIGZvbGxvd2luZyBjb21wb25lbnRzOiAlc1wiLFxuICAgICAgICAgIHNvcnRlZE5hbWVzXG4gICAgICAgICkpO1xuICAgICAgMCA8IGNvbXBvbmVudFdpbGxVcGRhdGVVbmlxdWVOYW1lcy5zaXplICYmXG4gICAgICAgICgoc29ydGVkTmFtZXMgPSBzZXRUb1NvcnRlZFN0cmluZyhjb21wb25lbnRXaWxsVXBkYXRlVW5pcXVlTmFtZXMpKSxcbiAgICAgICAgY29uc29sZS53YXJuKFxuICAgICAgICAgIFwiY29tcG9uZW50V2lsbFVwZGF0ZSBoYXMgYmVlbiByZW5hbWVkLCBhbmQgaXMgbm90IHJlY29tbWVuZGVkIGZvciB1c2UuIFNlZSBodHRwczovL3JlYWN0LmRldi9saW5rL3Vuc2FmZS1jb21wb25lbnQtbGlmZWN5Y2xlcyBmb3IgZGV0YWlscy5cXG5cXG4qIE1vdmUgZGF0YSBmZXRjaGluZyBjb2RlIG9yIHNpZGUgZWZmZWN0cyB0byBjb21wb25lbnREaWRVcGRhdGUuXFxuKiBSZW5hbWUgY29tcG9uZW50V2lsbFVwZGF0ZSB0byBVTlNBRkVfY29tcG9uZW50V2lsbFVwZGF0ZSB0byBzdXBwcmVzcyB0aGlzIHdhcm5pbmcgaW4gbm9uLXN0cmljdCBtb2RlLiBJbiBSZWFjdCAxOC54LCBvbmx5IHRoZSBVTlNBRkVfIG5hbWUgd2lsbCB3b3JrLiBUbyByZW5hbWUgYWxsIGRlcHJlY2F0ZWQgbGlmZWN5Y2xlcyB0byB0aGVpciBuZXcgbmFtZXMsIHlvdSBjYW4gcnVuIGBucHggcmVhY3QtY29kZW1vZCByZW5hbWUtdW5zYWZlLWxpZmVjeWNsZXNgIGluIHlvdXIgcHJvamVjdCBzb3VyY2UgZm9sZGVyLlxcblxcblBsZWFzZSB1cGRhdGUgdGhlIGZvbGxvd2luZyBjb21wb25lbnRzOiAlc1wiLFxuICAgICAgICAgIHNvcnRlZE5hbWVzXG4gICAgICAgICkpO1xuICAgIH07XG4gICAgdmFyIHBlbmRpbmdMZWdhY3lDb250ZXh0V2FybmluZyA9IG5ldyBNYXAoKSxcbiAgICAgIGRpZFdhcm5BYm91dExlZ2FjeUNvbnRleHQgPSBuZXcgU2V0KCk7XG4gICAgUmVhY3RTdHJpY3RNb2RlV2FybmluZ3MucmVjb3JkTGVnYWN5Q29udGV4dFdhcm5pbmcgPSBmdW5jdGlvbiAoXG4gICAgICBmaWJlcixcbiAgICAgIGluc3RhbmNlXG4gICAgKSB7XG4gICAgICB2YXIgc3RyaWN0Um9vdCA9IG51bGw7XG4gICAgICBmb3IgKHZhciBub2RlID0gZmliZXI7IG51bGwgIT09IG5vZGU7IClcbiAgICAgICAgbm9kZS5tb2RlICYgU3RyaWN0TGVnYWN5TW9kZSAmJiAoc3RyaWN0Um9vdCA9IG5vZGUpLFxuICAgICAgICAgIChub2RlID0gbm9kZS5yZXR1cm4pO1xuICAgICAgbnVsbCA9PT0gc3RyaWN0Um9vdFxuICAgICAgICA/IGNvbnNvbGUuZXJyb3IoXG4gICAgICAgICAgICBcIkV4cGVjdGVkIHRvIGZpbmQgYSBTdHJpY3RNb2RlIGNvbXBvbmVudCBpbiBhIHN0cmljdCBtb2RlIHRyZWUuIFRoaXMgZXJyb3IgaXMgbGlrZWx5IGNhdXNlZCBieSBhIGJ1ZyBpbiBSZWFjdC4gUGxlYXNlIGZpbGUgYW4gaXNzdWUuXCJcbiAgICAgICAgICApXG4gICAgICAgIDogIWRpZFdhcm5BYm91dExlZ2FjeUNvbnRleHQuaGFzKGZpYmVyLnR5cGUpICYmXG4gICAgICAgICAgKChub2RlID0gcGVuZGluZ0xlZ2FjeUNvbnRleHRXYXJuaW5nLmdldChzdHJpY3RSb290KSksXG4gICAgICAgICAgbnVsbCAhPSBmaWJlci50eXBlLmNvbnRleHRUeXBlcyB8fFxuICAgICAgICAgICAgbnVsbCAhPSBmaWJlci50eXBlLmNoaWxkQ29udGV4dFR5cGVzIHx8XG4gICAgICAgICAgICAobnVsbCAhPT0gaW5zdGFuY2UgJiZcbiAgICAgICAgICAgICAgXCJmdW5jdGlvblwiID09PSB0eXBlb2YgaW5zdGFuY2UuZ2V0Q2hpbGRDb250ZXh0KSkgJiZcbiAgICAgICAgICAodm9pZCAwID09PSBub2RlICYmXG4gICAgICAgICAgICAoKG5vZGUgPSBbXSksIHBlbmRpbmdMZWdhY3lDb250ZXh0V2FybmluZy5zZXQoc3RyaWN0Um9vdCwgbm9kZSkpLFxuICAgICAgICAgIG5vZGUucHVzaChmaWJlcikpO1xuICAgIH07XG4gICAgUmVhY3RTdHJpY3RNb2RlV2FybmluZ3MuZmx1c2hMZWdhY3lDb250ZXh0V2FybmluZyA9IGZ1bmN0aW9uICgpIHtcbiAgICAgIHBlbmRpbmdMZWdhY3lDb250ZXh0V2FybmluZy5mb3JFYWNoKGZ1bmN0aW9uIChmaWJlckFycmF5KSB7XG4gICAgICAgIGlmICgwICE9PSBmaWJlckFycmF5Lmxlbmd0aCkge1xuICAgICAgICAgIHZhciBmaXJzdEZpYmVyID0gZmliZXJBcnJheVswXSxcbiAgICAgICAgICAgIHVuaXF1ZU5hbWVzID0gbmV3IFNldCgpO1xuICAgICAgICAgIGZpYmVyQXJyYXkuZm9yRWFjaChmdW5jdGlvbiAoZmliZXIpIHtcbiAgICAgICAgICAgIHVuaXF1ZU5hbWVzLmFkZChnZXRDb21wb25lbnROYW1lRnJvbUZpYmVyKGZpYmVyKSB8fCBcIkNvbXBvbmVudFwiKTtcbiAgICAgICAgICAgIGRpZFdhcm5BYm91dExlZ2FjeUNvbnRleHQuYWRkKGZpYmVyLnR5cGUpO1xuICAgICAgICAgIH0pO1xuICAgICAgICAgIHZhciBzb3J0ZWROYW1lcyA9IHNldFRvU29ydGVkU3RyaW5nKHVuaXF1ZU5hbWVzKTtcbiAgICAgICAgICBydW5XaXRoRmliZXJJbkRFVihmaXJzdEZpYmVyLCBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICBjb25zb2xlLmVycm9yKFxuICAgICAgICAgICAgICBcIkxlZ2FjeSBjb250ZXh0IEFQSSBoYXMgYmVlbiBkZXRlY3RlZCB3aXRoaW4gYSBzdHJpY3QtbW9kZSB0cmVlLlxcblxcblRoZSBvbGQgQVBJIHdpbGwgYmUgc3VwcG9ydGVkIGluIGFsbCAxNi54IHJlbGVhc2VzLCBidXQgYXBwbGljYXRpb25zIHVzaW5nIGl0IHNob3VsZCBtaWdyYXRlIHRvIHRoZSBuZXcgdmVyc2lvbi5cXG5cXG5QbGVhc2UgdXBkYXRlIHRoZSBmb2xsb3dpbmcgY29tcG9uZW50czogJXNcXG5cXG5MZWFybiBtb3JlIGFib3V0IHRoaXMgd2FybmluZyBoZXJlOiBodHRwczovL3JlYWN0LmRldi9saW5rL2xlZ2FjeS1jb250ZXh0XCIsXG4gICAgICAgICAgICAgIHNvcnRlZE5hbWVzXG4gICAgICAgICAgICApO1xuICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9O1xuICAgIFJlYWN0U3RyaWN0TW9kZVdhcm5pbmdzLmRpc2NhcmRQZW5kaW5nV2FybmluZ3MgPSBmdW5jdGlvbiAoKSB7XG4gICAgICBwZW5kaW5nQ29tcG9uZW50V2lsbE1vdW50V2FybmluZ3MgPSBbXTtcbiAgICAgIHBlbmRpbmdVTlNBRkVfQ29tcG9uZW50V2lsbE1vdW50V2FybmluZ3MgPSBbXTtcbiAgICAgIHBlbmRpbmdDb21wb25lbnRXaWxsUmVjZWl2ZVByb3BzV2FybmluZ3MgPSBbXTtcbiAgICAgIHBlbmRpbmdVTlNBRkVfQ29tcG9uZW50V2lsbFJlY2VpdmVQcm9wc1dhcm5pbmdzID0gW107XG4gICAgICBwZW5kaW5nQ29tcG9uZW50V2lsbFVwZGF0ZVdhcm5pbmdzID0gW107XG4gICAgICBwZW5kaW5nVU5TQUZFX0NvbXBvbmVudFdpbGxVcGRhdGVXYXJuaW5ncyA9IFtdO1xuICAgICAgcGVuZGluZ0xlZ2FjeUNvbnRleHRXYXJuaW5nID0gbmV3IE1hcCgpO1xuICAgIH07XG4gICAgdmFyIFN1c3BlbnNlRXhjZXB0aW9uID0gRXJyb3IoXG4gICAgICAgIFwiU3VzcGVuc2UgRXhjZXB0aW9uOiBUaGlzIGlzIG5vdCBhIHJlYWwgZXJyb3IhIEl0J3MgYW4gaW1wbGVtZW50YXRpb24gZGV0YWlsIG9mIGB1c2VgIHRvIGludGVycnVwdCB0aGUgY3VycmVudCByZW5kZXIuIFlvdSBtdXN0IGVpdGhlciByZXRocm93IGl0IGltbWVkaWF0ZWx5LCBvciBtb3ZlIHRoZSBgdXNlYCBjYWxsIG91dHNpZGUgb2YgdGhlIGB0cnkvY2F0Y2hgIGJsb2NrLiBDYXB0dXJpbmcgd2l0aG91dCByZXRocm93aW5nIHdpbGwgbGVhZCB0byB1bmV4cGVjdGVkIGJlaGF2aW9yLlxcblxcblRvIGhhbmRsZSBhc3luYyBlcnJvcnMsIHdyYXAgeW91ciBjb21wb25lbnQgaW4gYW4gZXJyb3IgYm91bmRhcnksIG9yIGNhbGwgdGhlIHByb21pc2UncyBgLmNhdGNoYCBtZXRob2QgYW5kIHBhc3MgdGhlIHJlc3VsdCB0byBgdXNlYC5cIlxuICAgICAgKSxcbiAgICAgIFN1c3BlbnNleUNvbW1pdEV4Y2VwdGlvbiA9IEVycm9yKFxuICAgICAgICBcIlN1c3BlbnNlIEV4Y2VwdGlvbjogVGhpcyBpcyBub3QgYSByZWFsIGVycm9yLCBhbmQgc2hvdWxkIG5vdCBsZWFrIGludG8gdXNlcnNwYWNlLiBJZiB5b3UncmUgc2VlaW5nIHRoaXMsIGl0J3MgbGlrZWx5IGEgYnVnIGluIFJlYWN0LlwiXG4gICAgICApLFxuICAgICAgU3VzcGVuc2VBY3Rpb25FeGNlcHRpb24gPSBFcnJvcihcbiAgICAgICAgXCJTdXNwZW5zZSBFeGNlcHRpb246IFRoaXMgaXMgbm90IGEgcmVhbCBlcnJvciEgSXQncyBhbiBpbXBsZW1lbnRhdGlvbiBkZXRhaWwgb2YgYHVzZUFjdGlvblN0YXRlYCB0byBpbnRlcnJ1cHQgdGhlIGN1cnJlbnQgcmVuZGVyLiBZb3UgbXVzdCBlaXRoZXIgcmV0aHJvdyBpdCBpbW1lZGlhdGVseSwgb3IgbW92ZSB0aGUgYHVzZUFjdGlvblN0YXRlYCBjYWxsIG91dHNpZGUgb2YgdGhlIGB0cnkvY2F0Y2hgIGJsb2NrLiBDYXB0dXJpbmcgd2l0aG91dCByZXRocm93aW5nIHdpbGwgbGVhZCB0byB1bmV4cGVjdGVkIGJlaGF2aW9yLlxcblxcblRvIGhhbmRsZSBhc3luYyBlcnJvcnMsIHdyYXAgeW91ciBjb21wb25lbnQgaW4gYW4gZXJyb3IgYm91bmRhcnkuXCJcbiAgICAgICksXG4gICAgICBub29wU3VzcGVuc2V5Q29tbWl0VGhlbmFibGUgPSB7XG4gICAgICAgIHRoZW46IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICBjb25zb2xlLmVycm9yKFxuICAgICAgICAgICAgJ0ludGVybmFsIFJlYWN0IGVycm9yOiBBIGxpc3RlbmVyIHdhcyB1bmV4cGVjdGVkbHkgYXR0YWNoZWQgdG8gYSBcIm5vb3BcIiB0aGVuYWJsZS4gVGhpcyBpcyBhIGJ1ZyBpbiBSZWFjdC4gUGxlYXNlIGZpbGUgYW4gaXNzdWUuJ1xuICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBzdXNwZW5kZWRUaGVuYWJsZSA9IG51bGwsXG4gICAgICBuZWVkc1RvUmVzZXRTdXNwZW5kZWRUaGVuYWJsZURFViA9ICExLFxuICAgICAgTm9GbGFncyA9IDAsXG4gICAgICBIYXNFZmZlY3QgPSAxLFxuICAgICAgSW5zZXJ0aW9uID0gMixcbiAgICAgIExheW91dCA9IDQsXG4gICAgICBQYXNzaXZlID0gOCxcbiAgICAgIFVwZGF0ZVN0YXRlID0gMCxcbiAgICAgIFJlcGxhY2VTdGF0ZSA9IDEsXG4gICAgICBGb3JjZVVwZGF0ZSA9IDIsXG4gICAgICBDYXB0dXJlVXBkYXRlID0gMyxcbiAgICAgIGhhc0ZvcmNlVXBkYXRlID0gITE7XG4gICAgdmFyIGRpZFdhcm5VcGRhdGVJbnNpZGVVcGRhdGUgPSAhMTtcbiAgICB2YXIgY3VycmVudGx5UHJvY2Vzc2luZ1F1ZXVlID0gbnVsbDtcbiAgICB2YXIgZGlkUmVhZEZyb21FbnRhbmdsZWRBc3luY0FjdGlvbiA9ICExLFxuICAgICAgY3VycmVudFRyZWVIaWRkZW5TdGFja0N1cnNvciA9IGNyZWF0ZUN1cnNvcihudWxsKSxcbiAgICAgIHByZXZFbnRhbmdsZWRSZW5kZXJMYW5lc0N1cnNvciA9IGNyZWF0ZUN1cnNvcigwKSxcbiAgICAgIGRpZFdhcm5VbmNhY2hlZEdldFNuYXBzaG90O1xuICAgIHZhciBkaWRXYXJuQWJvdXRNaXNtYXRjaGVkSG9va3NGb3JDb21wb25lbnQgPSBuZXcgU2V0KCk7XG4gICAgdmFyIGRpZFdhcm5BYm91dFVzZVdyYXBwZWRJblRyeUNhdGNoID0gbmV3IFNldCgpO1xuICAgIHZhciBkaWRXYXJuQWJvdXRBc3luY0NsaWVudENvbXBvbmVudCA9IG5ldyBTZXQoKTtcbiAgICB2YXIgZGlkV2FybkFib3V0VXNlRm9ybVN0YXRlID0gbmV3IFNldCgpO1xuICAgIHZhciByZW5kZXJMYW5lcyA9IDAsXG4gICAgICBjdXJyZW50bHlSZW5kZXJpbmdGaWJlciA9IG51bGwsXG4gICAgICBjdXJyZW50SG9vayA9IG51bGwsXG4gICAgICB3b3JrSW5Qcm9ncmVzc0hvb2sgPSBudWxsLFxuICAgICAgZGlkU2NoZWR1bGVSZW5kZXJQaGFzZVVwZGF0ZSA9ICExLFxuICAgICAgZGlkU2NoZWR1bGVSZW5kZXJQaGFzZVVwZGF0ZUR1cmluZ1RoaXNQYXNzID0gITEsXG4gICAgICBzaG91bGREb3VibGVJbnZva2VVc2VyRm5zSW5Ib29rc0RFViA9ICExLFxuICAgICAgbG9jYWxJZENvdW50ZXIgPSAwLFxuICAgICAgdGhlbmFibGVJbmRleENvdW50ZXIkMSA9IDAsXG4gICAgICB0aGVuYWJsZVN0YXRlJDEgPSBudWxsLFxuICAgICAgZ2xvYmFsQ2xpZW50SWRDb3VudGVyID0gMCxcbiAgICAgIFJFX1JFTkRFUl9MSU1JVCA9IDI1LFxuICAgICAgY3VycmVudEhvb2tOYW1lSW5EZXYgPSBudWxsLFxuICAgICAgaG9va1R5cGVzRGV2ID0gbnVsbCxcbiAgICAgIGhvb2tUeXBlc1VwZGF0ZUluZGV4RGV2ID0gLTEsXG4gICAgICBpZ25vcmVQcmV2aW91c0RlcGVuZGVuY2llcyA9ICExLFxuICAgICAgQ29udGV4dE9ubHlEaXNwYXRjaGVyID0ge1xuICAgICAgICByZWFkQ29udGV4dDogcmVhZENvbnRleHQsXG4gICAgICAgIHVzZTogdXNlLFxuICAgICAgICB1c2VDYWxsYmFjazogdGhyb3dJbnZhbGlkSG9va0Vycm9yLFxuICAgICAgICB1c2VDb250ZXh0OiB0aHJvd0ludmFsaWRIb29rRXJyb3IsXG4gICAgICAgIHVzZUVmZmVjdDogdGhyb3dJbnZhbGlkSG9va0Vycm9yLFxuICAgICAgICB1c2VJbXBlcmF0aXZlSGFuZGxlOiB0aHJvd0ludmFsaWRIb29rRXJyb3IsXG4gICAgICAgIHVzZUxheW91dEVmZmVjdDogdGhyb3dJbnZhbGlkSG9va0Vycm9yLFxuICAgICAgICB1c2VJbnNlcnRpb25FZmZlY3Q6IHRocm93SW52YWxpZEhvb2tFcnJvcixcbiAgICAgICAgdXNlTWVtbzogdGhyb3dJbnZhbGlkSG9va0Vycm9yLFxuICAgICAgICB1c2VSZWR1Y2VyOiB0aHJvd0ludmFsaWRIb29rRXJyb3IsXG4gICAgICAgIHVzZVJlZjogdGhyb3dJbnZhbGlkSG9va0Vycm9yLFxuICAgICAgICB1c2VTdGF0ZTogdGhyb3dJbnZhbGlkSG9va0Vycm9yLFxuICAgICAgICB1c2VEZWJ1Z1ZhbHVlOiB0aHJvd0ludmFsaWRIb29rRXJyb3IsXG4gICAgICAgIHVzZURlZmVycmVkVmFsdWU6IHRocm93SW52YWxpZEhvb2tFcnJvcixcbiAgICAgICAgdXNlVHJhbnNpdGlvbjogdGhyb3dJbnZhbGlkSG9va0Vycm9yLFxuICAgICAgICB1c2VTeW5jRXh0ZXJuYWxTdG9yZTogdGhyb3dJbnZhbGlkSG9va0Vycm9yLFxuICAgICAgICB1c2VJZDogdGhyb3dJbnZhbGlkSG9va0Vycm9yLFxuICAgICAgICB1c2VIb3N0VHJhbnNpdGlvblN0YXR1czogdGhyb3dJbnZhbGlkSG9va0Vycm9yLFxuICAgICAgICB1c2VGb3JtU3RhdGU6IHRocm93SW52YWxpZEhvb2tFcnJvcixcbiAgICAgICAgdXNlQWN0aW9uU3RhdGU6IHRocm93SW52YWxpZEhvb2tFcnJvcixcbiAgICAgICAgdXNlT3B0aW1pc3RpYzogdGhyb3dJbnZhbGlkSG9va0Vycm9yLFxuICAgICAgICB1c2VNZW1vQ2FjaGU6IHRocm93SW52YWxpZEhvb2tFcnJvcixcbiAgICAgICAgdXNlQ2FjaGVSZWZyZXNoOiB0aHJvd0ludmFsaWRIb29rRXJyb3JcbiAgICAgIH0sXG4gICAgICBIb29rc0Rpc3BhdGNoZXJPbk1vdW50SW5ERVYgPSBudWxsLFxuICAgICAgSG9va3NEaXNwYXRjaGVyT25Nb3VudFdpdGhIb29rVHlwZXNJbkRFViA9IG51bGwsXG4gICAgICBIb29rc0Rpc3BhdGNoZXJPblVwZGF0ZUluREVWID0gbnVsbCxcbiAgICAgIEhvb2tzRGlzcGF0Y2hlck9uUmVyZW5kZXJJbkRFViA9IG51bGwsXG4gICAgICBJbnZhbGlkTmVzdGVkSG9va3NEaXNwYXRjaGVyT25Nb3VudEluREVWID0gbnVsbCxcbiAgICAgIEludmFsaWROZXN0ZWRIb29rc0Rpc3BhdGNoZXJPblVwZGF0ZUluREVWID0gbnVsbCxcbiAgICAgIEludmFsaWROZXN0ZWRIb29rc0Rpc3BhdGNoZXJPblJlcmVuZGVySW5ERVYgPSBudWxsO1xuICAgIEhvb2tzRGlzcGF0Y2hlck9uTW91bnRJbkRFViA9IHtcbiAgICAgIHJlYWRDb250ZXh0OiBmdW5jdGlvbiAoY29udGV4dCkge1xuICAgICAgICByZXR1cm4gcmVhZENvbnRleHQoY29udGV4dCk7XG4gICAgICB9LFxuICAgICAgdXNlOiB1c2UsXG4gICAgICB1c2VDYWxsYmFjazogZnVuY3Rpb24gKGNhbGxiYWNrLCBkZXBzKSB7XG4gICAgICAgIGN1cnJlbnRIb29rTmFtZUluRGV2ID0gXCJ1c2VDYWxsYmFja1wiO1xuICAgICAgICBtb3VudEhvb2tUeXBlc0RldigpO1xuICAgICAgICBjaGVja0RlcHNBcmVBcnJheURldihkZXBzKTtcbiAgICAgICAgcmV0dXJuIG1vdW50Q2FsbGJhY2soY2FsbGJhY2ssIGRlcHMpO1xuICAgICAgfSxcbiAgICAgIHVzZUNvbnRleHQ6IGZ1bmN0aW9uIChjb250ZXh0KSB7XG4gICAgICAgIGN1cnJlbnRIb29rTmFtZUluRGV2ID0gXCJ1c2VDb250ZXh0XCI7XG4gICAgICAgIG1vdW50SG9va1R5cGVzRGV2KCk7XG4gICAgICAgIHJldHVybiByZWFkQ29udGV4dChjb250ZXh0KTtcbiAgICAgIH0sXG4gICAgICB1c2VFZmZlY3Q6IGZ1bmN0aW9uIChjcmVhdGUsIGNyZWF0ZURlcHMpIHtcbiAgICAgICAgY3VycmVudEhvb2tOYW1lSW5EZXYgPSBcInVzZUVmZmVjdFwiO1xuICAgICAgICBtb3VudEhvb2tUeXBlc0RldigpO1xuICAgICAgICBjaGVja0RlcHNBcmVBcnJheURldihjcmVhdGVEZXBzKTtcbiAgICAgICAgcmV0dXJuIG1vdW50RWZmZWN0KGNyZWF0ZSwgY3JlYXRlRGVwcyk7XG4gICAgICB9LFxuICAgICAgdXNlSW1wZXJhdGl2ZUhhbmRsZTogZnVuY3Rpb24gKHJlZiwgY3JlYXRlLCBkZXBzKSB7XG4gICAgICAgIGN1cnJlbnRIb29rTmFtZUluRGV2ID0gXCJ1c2VJbXBlcmF0aXZlSGFuZGxlXCI7XG4gICAgICAgIG1vdW50SG9va1R5cGVzRGV2KCk7XG4gICAgICAgIGNoZWNrRGVwc0FyZUFycmF5RGV2KGRlcHMpO1xuICAgICAgICByZXR1cm4gbW91bnRJbXBlcmF0aXZlSGFuZGxlKHJlZiwgY3JlYXRlLCBkZXBzKTtcbiAgICAgIH0sXG4gICAgICB1c2VJbnNlcnRpb25FZmZlY3Q6IGZ1bmN0aW9uIChjcmVhdGUsIGRlcHMpIHtcbiAgICAgICAgY3VycmVudEhvb2tOYW1lSW5EZXYgPSBcInVzZUluc2VydGlvbkVmZmVjdFwiO1xuICAgICAgICBtb3VudEhvb2tUeXBlc0RldigpO1xuICAgICAgICBjaGVja0RlcHNBcmVBcnJheURldihkZXBzKTtcbiAgICAgICAgbW91bnRFZmZlY3RJbXBsKDQsIEluc2VydGlvbiwgY3JlYXRlLCBkZXBzKTtcbiAgICAgIH0sXG4gICAgICB1c2VMYXlvdXRFZmZlY3Q6IGZ1bmN0aW9uIChjcmVhdGUsIGRlcHMpIHtcbiAgICAgICAgY3VycmVudEhvb2tOYW1lSW5EZXYgPSBcInVzZUxheW91dEVmZmVjdFwiO1xuICAgICAgICBtb3VudEhvb2tUeXBlc0RldigpO1xuICAgICAgICBjaGVja0RlcHNBcmVBcnJheURldihkZXBzKTtcbiAgICAgICAgcmV0dXJuIG1vdW50TGF5b3V0RWZmZWN0KGNyZWF0ZSwgZGVwcyk7XG4gICAgICB9LFxuICAgICAgdXNlTWVtbzogZnVuY3Rpb24gKGNyZWF0ZSwgZGVwcykge1xuICAgICAgICBjdXJyZW50SG9va05hbWVJbkRldiA9IFwidXNlTWVtb1wiO1xuICAgICAgICBtb3VudEhvb2tUeXBlc0RldigpO1xuICAgICAgICBjaGVja0RlcHNBcmVBcnJheURldihkZXBzKTtcbiAgICAgICAgdmFyIHByZXZEaXNwYXRjaGVyID0gUmVhY3RTaGFyZWRJbnRlcm5hbHMuSDtcbiAgICAgICAgUmVhY3RTaGFyZWRJbnRlcm5hbHMuSCA9IEludmFsaWROZXN0ZWRIb29rc0Rpc3BhdGNoZXJPbk1vdW50SW5ERVY7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgcmV0dXJuIG1vdW50TWVtbyhjcmVhdGUsIGRlcHMpO1xuICAgICAgICB9IGZpbmFsbHkge1xuICAgICAgICAgIFJlYWN0U2hhcmVkSW50ZXJuYWxzLkggPSBwcmV2RGlzcGF0Y2hlcjtcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIHVzZVJlZHVjZXI6IGZ1bmN0aW9uIChyZWR1Y2VyLCBpbml0aWFsQXJnLCBpbml0KSB7XG4gICAgICAgIGN1cnJlbnRIb29rTmFtZUluRGV2ID0gXCJ1c2VSZWR1Y2VyXCI7XG4gICAgICAgIG1vdW50SG9va1R5cGVzRGV2KCk7XG4gICAgICAgIHZhciBwcmV2RGlzcGF0Y2hlciA9IFJlYWN0U2hhcmVkSW50ZXJuYWxzLkg7XG4gICAgICAgIFJlYWN0U2hhcmVkSW50ZXJuYWxzLkggPSBJbnZhbGlkTmVzdGVkSG9va3NEaXNwYXRjaGVyT25Nb3VudEluREVWO1xuICAgICAgICB0cnkge1xuICAgICAgICAgIHJldHVybiBtb3VudFJlZHVjZXIocmVkdWNlciwgaW5pdGlhbEFyZywgaW5pdCk7XG4gICAgICAgIH0gZmluYWxseSB7XG4gICAgICAgICAgUmVhY3RTaGFyZWRJbnRlcm5hbHMuSCA9IHByZXZEaXNwYXRjaGVyO1xuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgdXNlUmVmOiBmdW5jdGlvbiAoaW5pdGlhbFZhbHVlKSB7XG4gICAgICAgIGN1cnJlbnRIb29rTmFtZUluRGV2ID0gXCJ1c2VSZWZcIjtcbiAgICAgICAgbW91bnRIb29rVHlwZXNEZXYoKTtcbiAgICAgICAgcmV0dXJuIG1vdW50UmVmKGluaXRpYWxWYWx1ZSk7XG4gICAgICB9LFxuICAgICAgdXNlU3RhdGU6IGZ1bmN0aW9uIChpbml0aWFsU3RhdGUpIHtcbiAgICAgICAgY3VycmVudEhvb2tOYW1lSW5EZXYgPSBcInVzZVN0YXRlXCI7XG4gICAgICAgIG1vdW50SG9va1R5cGVzRGV2KCk7XG4gICAgICAgIHZhciBwcmV2RGlzcGF0Y2hlciA9IFJlYWN0U2hhcmVkSW50ZXJuYWxzLkg7XG4gICAgICAgIFJlYWN0U2hhcmVkSW50ZXJuYWxzLkggPSBJbnZhbGlkTmVzdGVkSG9va3NEaXNwYXRjaGVyT25Nb3VudEluREVWO1xuICAgICAgICB0cnkge1xuICAgICAgICAgIHJldHVybiBtb3VudFN0YXRlKGluaXRpYWxTdGF0ZSk7XG4gICAgICAgIH0gZmluYWxseSB7XG4gICAgICAgICAgUmVhY3RTaGFyZWRJbnRlcm5hbHMuSCA9IHByZXZEaXNwYXRjaGVyO1xuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgdXNlRGVidWdWYWx1ZTogZnVuY3Rpb24gKCkge1xuICAgICAgICBjdXJyZW50SG9va05hbWVJbkRldiA9IFwidXNlRGVidWdWYWx1ZVwiO1xuICAgICAgICBtb3VudEhvb2tUeXBlc0RldigpO1xuICAgICAgfSxcbiAgICAgIHVzZURlZmVycmVkVmFsdWU6IGZ1bmN0aW9uICh2YWx1ZSwgaW5pdGlhbFZhbHVlKSB7XG4gICAgICAgIGN1cnJlbnRIb29rTmFtZUluRGV2ID0gXCJ1c2VEZWZlcnJlZFZhbHVlXCI7XG4gICAgICAgIG1vdW50SG9va1R5cGVzRGV2KCk7XG4gICAgICAgIHJldHVybiBtb3VudERlZmVycmVkVmFsdWUodmFsdWUsIGluaXRpYWxWYWx1ZSk7XG4gICAgICB9LFxuICAgICAgdXNlVHJhbnNpdGlvbjogZnVuY3Rpb24gKCkge1xuICAgICAgICBjdXJyZW50SG9va05hbWVJbkRldiA9IFwidXNlVHJhbnNpdGlvblwiO1xuICAgICAgICBtb3VudEhvb2tUeXBlc0RldigpO1xuICAgICAgICByZXR1cm4gbW91bnRUcmFuc2l0aW9uKCk7XG4gICAgICB9LFxuICAgICAgdXNlU3luY0V4dGVybmFsU3RvcmU6IGZ1bmN0aW9uIChcbiAgICAgICAgc3Vic2NyaWJlLFxuICAgICAgICBnZXRTbmFwc2hvdCxcbiAgICAgICAgZ2V0U2VydmVyU25hcHNob3RcbiAgICAgICkge1xuICAgICAgICBjdXJyZW50SG9va05hbWVJbkRldiA9IFwidXNlU3luY0V4dGVybmFsU3RvcmVcIjtcbiAgICAgICAgbW91bnRIb29rVHlwZXNEZXYoKTtcbiAgICAgICAgcmV0dXJuIG1vdW50U3luY0V4dGVybmFsU3RvcmUoXG4gICAgICAgICAgc3Vic2NyaWJlLFxuICAgICAgICAgIGdldFNuYXBzaG90LFxuICAgICAgICAgIGdldFNlcnZlclNuYXBzaG90XG4gICAgICAgICk7XG4gICAgICB9LFxuICAgICAgdXNlSWQ6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgY3VycmVudEhvb2tOYW1lSW5EZXYgPSBcInVzZUlkXCI7XG4gICAgICAgIG1vdW50SG9va1R5cGVzRGV2KCk7XG4gICAgICAgIHJldHVybiBtb3VudElkKCk7XG4gICAgICB9LFxuICAgICAgdXNlRm9ybVN0YXRlOiBmdW5jdGlvbiAoYWN0aW9uLCBpbml0aWFsU3RhdGUpIHtcbiAgICAgICAgY3VycmVudEhvb2tOYW1lSW5EZXYgPSBcInVzZUZvcm1TdGF0ZVwiO1xuICAgICAgICBtb3VudEhvb2tUeXBlc0RldigpO1xuICAgICAgICB3YXJuT25Vc2VGb3JtU3RhdGVJbkRldigpO1xuICAgICAgICByZXR1cm4gbW91bnRBY3Rpb25TdGF0ZShhY3Rpb24sIGluaXRpYWxTdGF0ZSk7XG4gICAgICB9LFxuICAgICAgdXNlQWN0aW9uU3RhdGU6IGZ1bmN0aW9uIChhY3Rpb24sIGluaXRpYWxTdGF0ZSkge1xuICAgICAgICBjdXJyZW50SG9va05hbWVJbkRldiA9IFwidXNlQWN0aW9uU3RhdGVcIjtcbiAgICAgICAgbW91bnRIb29rVHlwZXNEZXYoKTtcbiAgICAgICAgcmV0dXJuIG1vdW50QWN0aW9uU3RhdGUoYWN0aW9uLCBpbml0aWFsU3RhdGUpO1xuICAgICAgfSxcbiAgICAgIHVzZU9wdGltaXN0aWM6IGZ1bmN0aW9uIChwYXNzdGhyb3VnaCkge1xuICAgICAgICBjdXJyZW50SG9va05hbWVJbkRldiA9IFwidXNlT3B0aW1pc3RpY1wiO1xuICAgICAgICBtb3VudEhvb2tUeXBlc0RldigpO1xuICAgICAgICByZXR1cm4gbW91bnRPcHRpbWlzdGljKHBhc3N0aHJvdWdoKTtcbiAgICAgIH0sXG4gICAgICB1c2VIb3N0VHJhbnNpdGlvblN0YXR1czogdXNlSG9zdFRyYW5zaXRpb25TdGF0dXMsXG4gICAgICB1c2VNZW1vQ2FjaGU6IHVzZU1lbW9DYWNoZSxcbiAgICAgIHVzZUNhY2hlUmVmcmVzaDogZnVuY3Rpb24gKCkge1xuICAgICAgICBjdXJyZW50SG9va05hbWVJbkRldiA9IFwidXNlQ2FjaGVSZWZyZXNoXCI7XG4gICAgICAgIG1vdW50SG9va1R5cGVzRGV2KCk7XG4gICAgICAgIHJldHVybiBtb3VudFJlZnJlc2goKTtcbiAgICAgIH1cbiAgICB9O1xuICAgIEhvb2tzRGlzcGF0Y2hlck9uTW91bnRXaXRoSG9va1R5cGVzSW5ERVYgPSB7XG4gICAgICByZWFkQ29udGV4dDogZnVuY3Rpb24gKGNvbnRleHQpIHtcbiAgICAgICAgcmV0dXJuIHJlYWRDb250ZXh0KGNvbnRleHQpO1xuICAgICAgfSxcbiAgICAgIHVzZTogdXNlLFxuICAgICAgdXNlQ2FsbGJhY2s6IGZ1bmN0aW9uIChjYWxsYmFjaywgZGVwcykge1xuICAgICAgICBjdXJyZW50SG9va05hbWVJbkRldiA9IFwidXNlQ2FsbGJhY2tcIjtcbiAgICAgICAgdXBkYXRlSG9va1R5cGVzRGV2KCk7XG4gICAgICAgIHJldHVybiBtb3VudENhbGxiYWNrKGNhbGxiYWNrLCBkZXBzKTtcbiAgICAgIH0sXG4gICAgICB1c2VDb250ZXh0OiBmdW5jdGlvbiAoY29udGV4dCkge1xuICAgICAgICBjdXJyZW50SG9va05hbWVJbkRldiA9IFwidXNlQ29udGV4dFwiO1xuICAgICAgICB1cGRhdGVIb29rVHlwZXNEZXYoKTtcbiAgICAgICAgcmV0dXJuIHJlYWRDb250ZXh0KGNvbnRleHQpO1xuICAgICAgfSxcbiAgICAgIHVzZUVmZmVjdDogZnVuY3Rpb24gKGNyZWF0ZSwgY3JlYXRlRGVwcykge1xuICAgICAgICBjdXJyZW50SG9va05hbWVJbkRldiA9IFwidXNlRWZmZWN0XCI7XG4gICAgICAgIHVwZGF0ZUhvb2tUeXBlc0RldigpO1xuICAgICAgICByZXR1cm4gbW91bnRFZmZlY3QoY3JlYXRlLCBjcmVhdGVEZXBzKTtcbiAgICAgIH0sXG4gICAgICB1c2VJbXBlcmF0aXZlSGFuZGxlOiBmdW5jdGlvbiAocmVmLCBjcmVhdGUsIGRlcHMpIHtcbiAgICAgICAgY3VycmVudEhvb2tOYW1lSW5EZXYgPSBcInVzZUltcGVyYXRpdmVIYW5kbGVcIjtcbiAgICAgICAgdXBkYXRlSG9va1R5cGVzRGV2KCk7XG4gICAgICAgIHJldHVybiBtb3VudEltcGVyYXRpdmVIYW5kbGUocmVmLCBjcmVhdGUsIGRlcHMpO1xuICAgICAgfSxcbiAgICAgIHVzZUluc2VydGlvbkVmZmVjdDogZnVuY3Rpb24gKGNyZWF0ZSwgZGVwcykge1xuICAgICAgICBjdXJyZW50SG9va05hbWVJbkRldiA9IFwidXNlSW5zZXJ0aW9uRWZmZWN0XCI7XG4gICAgICAgIHVwZGF0ZUhvb2tUeXBlc0RldigpO1xuICAgICAgICBtb3VudEVmZmVjdEltcGwoNCwgSW5zZXJ0aW9uLCBjcmVhdGUsIGRlcHMpO1xuICAgICAgfSxcbiAgICAgIHVzZUxheW91dEVmZmVjdDogZnVuY3Rpb24gKGNyZWF0ZSwgZGVwcykge1xuICAgICAgICBjdXJyZW50SG9va05hbWVJbkRldiA9IFwidXNlTGF5b3V0RWZmZWN0XCI7XG4gICAgICAgIHVwZGF0ZUhvb2tUeXBlc0RldigpO1xuICAgICAgICByZXR1cm4gbW91bnRMYXlvdXRFZmZlY3QoY3JlYXRlLCBkZXBzKTtcbiAgICAgIH0sXG4gICAgICB1c2VNZW1vOiBmdW5jdGlvbiAoY3JlYXRlLCBkZXBzKSB7XG4gICAgICAgIGN1cnJlbnRIb29rTmFtZUluRGV2ID0gXCJ1c2VNZW1vXCI7XG4gICAgICAgIHVwZGF0ZUhvb2tUeXBlc0RldigpO1xuICAgICAgICB2YXIgcHJldkRpc3BhdGNoZXIgPSBSZWFjdFNoYXJlZEludGVybmFscy5IO1xuICAgICAgICBSZWFjdFNoYXJlZEludGVybmFscy5IID0gSW52YWxpZE5lc3RlZEhvb2tzRGlzcGF0Y2hlck9uTW91bnRJbkRFVjtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICByZXR1cm4gbW91bnRNZW1vKGNyZWF0ZSwgZGVwcyk7XG4gICAgICAgIH0gZmluYWxseSB7XG4gICAgICAgICAgUmVhY3RTaGFyZWRJbnRlcm5hbHMuSCA9IHByZXZEaXNwYXRjaGVyO1xuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgdXNlUmVkdWNlcjogZnVuY3Rpb24gKHJlZHVjZXIsIGluaXRpYWxBcmcsIGluaXQpIHtcbiAgICAgICAgY3VycmVudEhvb2tOYW1lSW5EZXYgPSBcInVzZVJlZHVjZXJcIjtcbiAgICAgICAgdXBkYXRlSG9va1R5cGVzRGV2KCk7XG4gICAgICAgIHZhciBwcmV2RGlzcGF0Y2hlciA9IFJlYWN0U2hhcmVkSW50ZXJuYWxzLkg7XG4gICAgICAgIFJlYWN0U2hhcmVkSW50ZXJuYWxzLkggPSBJbnZhbGlkTmVzdGVkSG9va3NEaXNwYXRjaGVyT25Nb3VudEluREVWO1xuICAgICAgICB0cnkge1xuICAgICAgICAgIHJldHVybiBtb3VudFJlZHVjZXIocmVkdWNlciwgaW5pdGlhbEFyZywgaW5pdCk7XG4gICAgICAgIH0gZmluYWxseSB7XG4gICAgICAgICAgUmVhY3RTaGFyZWRJbnRlcm5hbHMuSCA9IHByZXZEaXNwYXRjaGVyO1xuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgdXNlUmVmOiBmdW5jdGlvbiAoaW5pdGlhbFZhbHVlKSB7XG4gICAgICAgIGN1cnJlbnRIb29rTmFtZUluRGV2ID0gXCJ1c2VSZWZcIjtcbiAgICAgICAgdXBkYXRlSG9va1R5cGVzRGV2KCk7XG4gICAgICAgIHJldHVybiBtb3VudFJlZihpbml0aWFsVmFsdWUpO1xuICAgICAgfSxcbiAgICAgIHVzZVN0YXRlOiBmdW5jdGlvbiAoaW5pdGlhbFN0YXRlKSB7XG4gICAgICAgIGN1cnJlbnRIb29rTmFtZUluRGV2ID0gXCJ1c2VTdGF0ZVwiO1xuICAgICAgICB1cGRhdGVIb29rVHlwZXNEZXYoKTtcbiAgICAgICAgdmFyIHByZXZEaXNwYXRjaGVyID0gUmVhY3RTaGFyZWRJbnRlcm5hbHMuSDtcbiAgICAgICAgUmVhY3RTaGFyZWRJbnRlcm5hbHMuSCA9IEludmFsaWROZXN0ZWRIb29rc0Rpc3BhdGNoZXJPbk1vdW50SW5ERVY7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgcmV0dXJuIG1vdW50U3RhdGUoaW5pdGlhbFN0YXRlKTtcbiAgICAgICAgfSBmaW5hbGx5IHtcbiAgICAgICAgICBSZWFjdFNoYXJlZEludGVybmFscy5IID0gcHJldkRpc3BhdGNoZXI7XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICB1c2VEZWJ1Z1ZhbHVlOiBmdW5jdGlvbiAoKSB7XG4gICAgICAgIGN1cnJlbnRIb29rTmFtZUluRGV2ID0gXCJ1c2VEZWJ1Z1ZhbHVlXCI7XG4gICAgICAgIHVwZGF0ZUhvb2tUeXBlc0RldigpO1xuICAgICAgfSxcbiAgICAgIHVzZURlZmVycmVkVmFsdWU6IGZ1bmN0aW9uICh2YWx1ZSwgaW5pdGlhbFZhbHVlKSB7XG4gICAgICAgIGN1cnJlbnRIb29rTmFtZUluRGV2ID0gXCJ1c2VEZWZlcnJlZFZhbHVlXCI7XG4gICAgICAgIHVwZGF0ZUhvb2tUeXBlc0RldigpO1xuICAgICAgICByZXR1cm4gbW91bnREZWZlcnJlZFZhbHVlKHZhbHVlLCBpbml0aWFsVmFsdWUpO1xuICAgICAgfSxcbiAgICAgIHVzZVRyYW5zaXRpb246IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgY3VycmVudEhvb2tOYW1lSW5EZXYgPSBcInVzZVRyYW5zaXRpb25cIjtcbiAgICAgICAgdXBkYXRlSG9va1R5cGVzRGV2KCk7XG4gICAgICAgIHJldHVybiBtb3VudFRyYW5zaXRpb24oKTtcbiAgICAgIH0sXG4gICAgICB1c2VTeW5jRXh0ZXJuYWxTdG9yZTogZnVuY3Rpb24gKFxuICAgICAgICBzdWJzY3JpYmUsXG4gICAgICAgIGdldFNuYXBzaG90LFxuICAgICAgICBnZXRTZXJ2ZXJTbmFwc2hvdFxuICAgICAgKSB7XG4gICAgICAgIGN1cnJlbnRIb29rTmFtZUluRGV2ID0gXCJ1c2VTeW5jRXh0ZXJuYWxTdG9yZVwiO1xuICAgICAgICB1cGRhdGVIb29rVHlwZXNEZXYoKTtcbiAgICAgICAgcmV0dXJuIG1vdW50U3luY0V4dGVybmFsU3RvcmUoXG4gICAgICAgICAgc3Vic2NyaWJlLFxuICAgICAgICAgIGdldFNuYXBzaG90LFxuICAgICAgICAgIGdldFNlcnZlclNuYXBzaG90XG4gICAgICAgICk7XG4gICAgICB9LFxuICAgICAgdXNlSWQ6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgY3VycmVudEhvb2tOYW1lSW5EZXYgPSBcInVzZUlkXCI7XG4gICAgICAgIHVwZGF0ZUhvb2tUeXBlc0RldigpO1xuICAgICAgICByZXR1cm4gbW91bnRJZCgpO1xuICAgICAgfSxcbiAgICAgIHVzZUFjdGlvblN0YXRlOiBmdW5jdGlvbiAoYWN0aW9uLCBpbml0aWFsU3RhdGUpIHtcbiAgICAgICAgY3VycmVudEhvb2tOYW1lSW5EZXYgPSBcInVzZUFjdGlvblN0YXRlXCI7XG4gICAgICAgIHVwZGF0ZUhvb2tUeXBlc0RldigpO1xuICAgICAgICByZXR1cm4gbW91bnRBY3Rpb25TdGF0ZShhY3Rpb24sIGluaXRpYWxTdGF0ZSk7XG4gICAgICB9LFxuICAgICAgdXNlRm9ybVN0YXRlOiBmdW5jdGlvbiAoYWN0aW9uLCBpbml0aWFsU3RhdGUpIHtcbiAgICAgICAgY3VycmVudEhvb2tOYW1lSW5EZXYgPSBcInVzZUZvcm1TdGF0ZVwiO1xuICAgICAgICB1cGRhdGVIb29rVHlwZXNEZXYoKTtcbiAgICAgICAgd2Fybk9uVXNlRm9ybVN0YXRlSW5EZXYoKTtcbiAgICAgICAgcmV0dXJuIG1vdW50QWN0aW9uU3RhdGUoYWN0aW9uLCBpbml0aWFsU3RhdGUpO1xuICAgICAgfSxcbiAgICAgIHVzZU9wdGltaXN0aWM6IGZ1bmN0aW9uIChwYXNzdGhyb3VnaCkge1xuICAgICAgICBjdXJyZW50SG9va05hbWVJbkRldiA9IFwidXNlT3B0aW1pc3RpY1wiO1xuICAgICAgICB1cGRhdGVIb29rVHlwZXNEZXYoKTtcbiAgICAgICAgcmV0dXJuIG1vdW50T3B0aW1pc3RpYyhwYXNzdGhyb3VnaCk7XG4gICAgICB9LFxuICAgICAgdXNlSG9zdFRyYW5zaXRpb25TdGF0dXM6IHVzZUhvc3RUcmFuc2l0aW9uU3RhdHVzLFxuICAgICAgdXNlTWVtb0NhY2hlOiB1c2VNZW1vQ2FjaGUsXG4gICAgICB1c2VDYWNoZVJlZnJlc2g6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgY3VycmVudEhvb2tOYW1lSW5EZXYgPSBcInVzZUNhY2hlUmVmcmVzaFwiO1xuICAgICAgICB1cGRhdGVIb29rVHlwZXNEZXYoKTtcbiAgICAgICAgcmV0dXJuIG1vdW50UmVmcmVzaCgpO1xuICAgICAgfVxuICAgIH07XG4gICAgSG9va3NEaXNwYXRjaGVyT25VcGRhdGVJbkRFViA9IHtcbiAgICAgIHJlYWRDb250ZXh0OiBmdW5jdGlvbiAoY29udGV4dCkge1xuICAgICAgICByZXR1cm4gcmVhZENvbnRleHQoY29udGV4dCk7XG4gICAgICB9LFxuICAgICAgdXNlOiB1c2UsXG4gICAgICB1c2VDYWxsYmFjazogZnVuY3Rpb24gKGNhbGxiYWNrLCBkZXBzKSB7XG4gICAgICAgIGN1cnJlbnRIb29rTmFtZUluRGV2ID0gXCJ1c2VDYWxsYmFja1wiO1xuICAgICAgICB1cGRhdGVIb29rVHlwZXNEZXYoKTtcbiAgICAgICAgcmV0dXJuIHVwZGF0ZUNhbGxiYWNrKGNhbGxiYWNrLCBkZXBzKTtcbiAgICAgIH0sXG4gICAgICB1c2VDb250ZXh0OiBmdW5jdGlvbiAoY29udGV4dCkge1xuICAgICAgICBjdXJyZW50SG9va05hbWVJbkRldiA9IFwidXNlQ29udGV4dFwiO1xuICAgICAgICB1cGRhdGVIb29rVHlwZXNEZXYoKTtcbiAgICAgICAgcmV0dXJuIHJlYWRDb250ZXh0KGNvbnRleHQpO1xuICAgICAgfSxcbiAgICAgIHVzZUVmZmVjdDogZnVuY3Rpb24gKGNyZWF0ZSwgY3JlYXRlRGVwcykge1xuICAgICAgICBjdXJyZW50SG9va05hbWVJbkRldiA9IFwidXNlRWZmZWN0XCI7XG4gICAgICAgIHVwZGF0ZUhvb2tUeXBlc0RldigpO1xuICAgICAgICB1cGRhdGVFZmZlY3RJbXBsKDIwNDgsIFBhc3NpdmUsIGNyZWF0ZSwgY3JlYXRlRGVwcyk7XG4gICAgICB9LFxuICAgICAgdXNlSW1wZXJhdGl2ZUhhbmRsZTogZnVuY3Rpb24gKHJlZiwgY3JlYXRlLCBkZXBzKSB7XG4gICAgICAgIGN1cnJlbnRIb29rTmFtZUluRGV2ID0gXCJ1c2VJbXBlcmF0aXZlSGFuZGxlXCI7XG4gICAgICAgIHVwZGF0ZUhvb2tUeXBlc0RldigpO1xuICAgICAgICByZXR1cm4gdXBkYXRlSW1wZXJhdGl2ZUhhbmRsZShyZWYsIGNyZWF0ZSwgZGVwcyk7XG4gICAgICB9LFxuICAgICAgdXNlSW5zZXJ0aW9uRWZmZWN0OiBmdW5jdGlvbiAoY3JlYXRlLCBkZXBzKSB7XG4gICAgICAgIGN1cnJlbnRIb29rTmFtZUluRGV2ID0gXCJ1c2VJbnNlcnRpb25FZmZlY3RcIjtcbiAgICAgICAgdXBkYXRlSG9va1R5cGVzRGV2KCk7XG4gICAgICAgIHJldHVybiB1cGRhdGVFZmZlY3RJbXBsKDQsIEluc2VydGlvbiwgY3JlYXRlLCBkZXBzKTtcbiAgICAgIH0sXG4gICAgICB1c2VMYXlvdXRFZmZlY3Q6IGZ1bmN0aW9uIChjcmVhdGUsIGRlcHMpIHtcbiAgICAgICAgY3VycmVudEhvb2tOYW1lSW5EZXYgPSBcInVzZUxheW91dEVmZmVjdFwiO1xuICAgICAgICB1cGRhdGVIb29rVHlwZXNEZXYoKTtcbiAgICAgICAgcmV0dXJuIHVwZGF0ZUVmZmVjdEltcGwoNCwgTGF5b3V0LCBjcmVhdGUsIGRlcHMpO1xuICAgICAgfSxcbiAgICAgIHVzZU1lbW86IGZ1bmN0aW9uIChjcmVhdGUsIGRlcHMpIHtcbiAgICAgICAgY3VycmVudEhvb2tOYW1lSW5EZXYgPSBcInVzZU1lbW9cIjtcbiAgICAgICAgdXBkYXRlSG9va1R5cGVzRGV2KCk7XG4gICAgICAgIHZhciBwcmV2RGlzcGF0Y2hlciA9IFJlYWN0U2hhcmVkSW50ZXJuYWxzLkg7XG4gICAgICAgIFJlYWN0U2hhcmVkSW50ZXJuYWxzLkggPSBJbnZhbGlkTmVzdGVkSG9va3NEaXNwYXRjaGVyT25VcGRhdGVJbkRFVjtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICByZXR1cm4gdXBkYXRlTWVtbyhjcmVhdGUsIGRlcHMpO1xuICAgICAgICB9IGZpbmFsbHkge1xuICAgICAgICAgIFJlYWN0U2hhcmVkSW50ZXJuYWxzLkggPSBwcmV2RGlzcGF0Y2hlcjtcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIHVzZVJlZHVjZXI6IGZ1bmN0aW9uIChyZWR1Y2VyLCBpbml0aWFsQXJnLCBpbml0KSB7XG4gICAgICAgIGN1cnJlbnRIb29rTmFtZUluRGV2ID0gXCJ1c2VSZWR1Y2VyXCI7XG4gICAgICAgIHVwZGF0ZUhvb2tUeXBlc0RldigpO1xuICAgICAgICB2YXIgcHJldkRpc3BhdGNoZXIgPSBSZWFjdFNoYXJlZEludGVybmFscy5IO1xuICAgICAgICBSZWFjdFNoYXJlZEludGVybmFscy5IID0gSW52YWxpZE5lc3RlZEhvb2tzRGlzcGF0Y2hlck9uVXBkYXRlSW5ERVY7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgcmV0dXJuIHVwZGF0ZVJlZHVjZXIocmVkdWNlciwgaW5pdGlhbEFyZywgaW5pdCk7XG4gICAgICAgIH0gZmluYWxseSB7XG4gICAgICAgICAgUmVhY3RTaGFyZWRJbnRlcm5hbHMuSCA9IHByZXZEaXNwYXRjaGVyO1xuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgdXNlUmVmOiBmdW5jdGlvbiAoKSB7XG4gICAgICAgIGN1cnJlbnRIb29rTmFtZUluRGV2ID0gXCJ1c2VSZWZcIjtcbiAgICAgICAgdXBkYXRlSG9va1R5cGVzRGV2KCk7XG4gICAgICAgIHJldHVybiB1cGRhdGVXb3JrSW5Qcm9ncmVzc0hvb2soKS5tZW1vaXplZFN0YXRlO1xuICAgICAgfSxcbiAgICAgIHVzZVN0YXRlOiBmdW5jdGlvbiAoKSB7XG4gICAgICAgIGN1cnJlbnRIb29rTmFtZUluRGV2ID0gXCJ1c2VTdGF0ZVwiO1xuICAgICAgICB1cGRhdGVIb29rVHlwZXNEZXYoKTtcbiAgICAgICAgdmFyIHByZXZEaXNwYXRjaGVyID0gUmVhY3RTaGFyZWRJbnRlcm5hbHMuSDtcbiAgICAgICAgUmVhY3RTaGFyZWRJbnRlcm5hbHMuSCA9IEludmFsaWROZXN0ZWRIb29rc0Rpc3BhdGNoZXJPblVwZGF0ZUluREVWO1xuICAgICAgICB0cnkge1xuICAgICAgICAgIHJldHVybiB1cGRhdGVSZWR1Y2VyKGJhc2ljU3RhdGVSZWR1Y2VyKTtcbiAgICAgICAgfSBmaW5hbGx5IHtcbiAgICAgICAgICBSZWFjdFNoYXJlZEludGVybmFscy5IID0gcHJldkRpc3BhdGNoZXI7XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICB1c2VEZWJ1Z1ZhbHVlOiBmdW5jdGlvbiAoKSB7XG4gICAgICAgIGN1cnJlbnRIb29rTmFtZUluRGV2ID0gXCJ1c2VEZWJ1Z1ZhbHVlXCI7XG4gICAgICAgIHVwZGF0ZUhvb2tUeXBlc0RldigpO1xuICAgICAgfSxcbiAgICAgIHVzZURlZmVycmVkVmFsdWU6IGZ1bmN0aW9uICh2YWx1ZSwgaW5pdGlhbFZhbHVlKSB7XG4gICAgICAgIGN1cnJlbnRIb29rTmFtZUluRGV2ID0gXCJ1c2VEZWZlcnJlZFZhbHVlXCI7XG4gICAgICAgIHVwZGF0ZUhvb2tUeXBlc0RldigpO1xuICAgICAgICByZXR1cm4gdXBkYXRlRGVmZXJyZWRWYWx1ZSh2YWx1ZSwgaW5pdGlhbFZhbHVlKTtcbiAgICAgIH0sXG4gICAgICB1c2VUcmFuc2l0aW9uOiBmdW5jdGlvbiAoKSB7XG4gICAgICAgIGN1cnJlbnRIb29rTmFtZUluRGV2ID0gXCJ1c2VUcmFuc2l0aW9uXCI7XG4gICAgICAgIHVwZGF0ZUhvb2tUeXBlc0RldigpO1xuICAgICAgICByZXR1cm4gdXBkYXRlVHJhbnNpdGlvbigpO1xuICAgICAgfSxcbiAgICAgIHVzZVN5bmNFeHRlcm5hbFN0b3JlOiBmdW5jdGlvbiAoXG4gICAgICAgIHN1YnNjcmliZSxcbiAgICAgICAgZ2V0U25hcHNob3QsXG4gICAgICAgIGdldFNlcnZlclNuYXBzaG90XG4gICAgICApIHtcbiAgICAgICAgY3VycmVudEhvb2tOYW1lSW5EZXYgPSBcInVzZVN5bmNFeHRlcm5hbFN0b3JlXCI7XG4gICAgICAgIHVwZGF0ZUhvb2tUeXBlc0RldigpO1xuICAgICAgICByZXR1cm4gdXBkYXRlU3luY0V4dGVybmFsU3RvcmUoXG4gICAgICAgICAgc3Vic2NyaWJlLFxuICAgICAgICAgIGdldFNuYXBzaG90LFxuICAgICAgICAgIGdldFNlcnZlclNuYXBzaG90XG4gICAgICAgICk7XG4gICAgICB9LFxuICAgICAgdXNlSWQ6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgY3VycmVudEhvb2tOYW1lSW5EZXYgPSBcInVzZUlkXCI7XG4gICAgICAgIHVwZGF0ZUhvb2tUeXBlc0RldigpO1xuICAgICAgICByZXR1cm4gdXBkYXRlV29ya0luUHJvZ3Jlc3NIb29rKCkubWVtb2l6ZWRTdGF0ZTtcbiAgICAgIH0sXG4gICAgICB1c2VGb3JtU3RhdGU6IGZ1bmN0aW9uIChhY3Rpb24pIHtcbiAgICAgICAgY3VycmVudEhvb2tOYW1lSW5EZXYgPSBcInVzZUZvcm1TdGF0ZVwiO1xuICAgICAgICB1cGRhdGVIb29rVHlwZXNEZXYoKTtcbiAgICAgICAgd2Fybk9uVXNlRm9ybVN0YXRlSW5EZXYoKTtcbiAgICAgICAgcmV0dXJuIHVwZGF0ZUFjdGlvblN0YXRlKGFjdGlvbik7XG4gICAgICB9LFxuICAgICAgdXNlQWN0aW9uU3RhdGU6IGZ1bmN0aW9uIChhY3Rpb24pIHtcbiAgICAgICAgY3VycmVudEhvb2tOYW1lSW5EZXYgPSBcInVzZUFjdGlvblN0YXRlXCI7XG4gICAgICAgIHVwZGF0ZUhvb2tUeXBlc0RldigpO1xuICAgICAgICByZXR1cm4gdXBkYXRlQWN0aW9uU3RhdGUoYWN0aW9uKTtcbiAgICAgIH0sXG4gICAgICB1c2VPcHRpbWlzdGljOiBmdW5jdGlvbiAocGFzc3Rocm91Z2gsIHJlZHVjZXIpIHtcbiAgICAgICAgY3VycmVudEhvb2tOYW1lSW5EZXYgPSBcInVzZU9wdGltaXN0aWNcIjtcbiAgICAgICAgdXBkYXRlSG9va1R5cGVzRGV2KCk7XG4gICAgICAgIHJldHVybiB1cGRhdGVPcHRpbWlzdGljKHBhc3N0aHJvdWdoLCByZWR1Y2VyKTtcbiAgICAgIH0sXG4gICAgICB1c2VIb3N0VHJhbnNpdGlvblN0YXR1czogdXNlSG9zdFRyYW5zaXRpb25TdGF0dXMsXG4gICAgICB1c2VNZW1vQ2FjaGU6IHVzZU1lbW9DYWNoZSxcbiAgICAgIHVzZUNhY2hlUmVmcmVzaDogZnVuY3Rpb24gKCkge1xuICAgICAgICBjdXJyZW50SG9va05hbWVJbkRldiA9IFwidXNlQ2FjaGVSZWZyZXNoXCI7XG4gICAgICAgIHVwZGF0ZUhvb2tUeXBlc0RldigpO1xuICAgICAgICByZXR1cm4gdXBkYXRlV29ya0luUHJvZ3Jlc3NIb29rKCkubWVtb2l6ZWRTdGF0ZTtcbiAgICAgIH1cbiAgICB9O1xuICAgIEhvb2tzRGlzcGF0Y2hlck9uUmVyZW5kZXJJbkRFViA9IHtcbiAgICAgIHJlYWRDb250ZXh0OiBmdW5jdGlvbiAoY29udGV4dCkge1xuICAgICAgICByZXR1cm4gcmVhZENvbnRleHQoY29udGV4dCk7XG4gICAgICB9LFxuICAgICAgdXNlOiB1c2UsXG4gICAgICB1c2VDYWxsYmFjazogZnVuY3Rpb24gKGNhbGxiYWNrLCBkZXBzKSB7XG4gICAgICAgIGN1cnJlbnRIb29rTmFtZUluRGV2ID0gXCJ1c2VDYWxsYmFja1wiO1xuICAgICAgICB1cGRhdGVIb29rVHlwZXNEZXYoKTtcbiAgICAgICAgcmV0dXJuIHVwZGF0ZUNhbGxiYWNrKGNhbGxiYWNrLCBkZXBzKTtcbiAgICAgIH0sXG4gICAgICB1c2VDb250ZXh0OiBmdW5jdGlvbiAoY29udGV4dCkge1xuICAgICAgICBjdXJyZW50SG9va05hbWVJbkRldiA9IFwidXNlQ29udGV4dFwiO1xuICAgICAgICB1cGRhdGVIb29rVHlwZXNEZXYoKTtcbiAgICAgICAgcmV0dXJuIHJlYWRDb250ZXh0KGNvbnRleHQpO1xuICAgICAgfSxcbiAgICAgIHVzZUVmZmVjdDogZnVuY3Rpb24gKGNyZWF0ZSwgY3JlYXRlRGVwcykge1xuICAgICAgICBjdXJyZW50SG9va05hbWVJbkRldiA9IFwidXNlRWZmZWN0XCI7XG4gICAgICAgIHVwZGF0ZUhvb2tUeXBlc0RldigpO1xuICAgICAgICB1cGRhdGVFZmZlY3RJbXBsKDIwNDgsIFBhc3NpdmUsIGNyZWF0ZSwgY3JlYXRlRGVwcyk7XG4gICAgICB9LFxuICAgICAgdXNlSW1wZXJhdGl2ZUhhbmRsZTogZnVuY3Rpb24gKHJlZiwgY3JlYXRlLCBkZXBzKSB7XG4gICAgICAgIGN1cnJlbnRIb29rTmFtZUluRGV2ID0gXCJ1c2VJbXBlcmF0aXZlSGFuZGxlXCI7XG4gICAgICAgIHVwZGF0ZUhvb2tUeXBlc0RldigpO1xuICAgICAgICByZXR1cm4gdXBkYXRlSW1wZXJhdGl2ZUhhbmRsZShyZWYsIGNyZWF0ZSwgZGVwcyk7XG4gICAgICB9LFxuICAgICAgdXNlSW5zZXJ0aW9uRWZmZWN0OiBmdW5jdGlvbiAoY3JlYXRlLCBkZXBzKSB7XG4gICAgICAgIGN1cnJlbnRIb29rTmFtZUluRGV2ID0gXCJ1c2VJbnNlcnRpb25FZmZlY3RcIjtcbiAgICAgICAgdXBkYXRlSG9va1R5cGVzRGV2KCk7XG4gICAgICAgIHJldHVybiB1cGRhdGVFZmZlY3RJbXBsKDQsIEluc2VydGlvbiwgY3JlYXRlLCBkZXBzKTtcbiAgICAgIH0sXG4gICAgICB1c2VMYXlvdXRFZmZlY3Q6IGZ1bmN0aW9uIChjcmVhdGUsIGRlcHMpIHtcbiAgICAgICAgY3VycmVudEhvb2tOYW1lSW5EZXYgPSBcInVzZUxheW91dEVmZmVjdFwiO1xuICAgICAgICB1cGRhdGVIb29rVHlwZXNEZXYoKTtcbiAgICAgICAgcmV0dXJuIHVwZGF0ZUVmZmVjdEltcGwoNCwgTGF5b3V0LCBjcmVhdGUsIGRlcHMpO1xuICAgICAgfSxcbiAgICAgIHVzZU1lbW86IGZ1bmN0aW9uIChjcmVhdGUsIGRlcHMpIHtcbiAgICAgICAgY3VycmVudEhvb2tOYW1lSW5EZXYgPSBcInVzZU1lbW9cIjtcbiAgICAgICAgdXBkYXRlSG9va1R5cGVzRGV2KCk7XG4gICAgICAgIHZhciBwcmV2RGlzcGF0Y2hlciA9IFJlYWN0U2hhcmVkSW50ZXJuYWxzLkg7XG4gICAgICAgIFJlYWN0U2hhcmVkSW50ZXJuYWxzLkggPSBJbnZhbGlkTmVzdGVkSG9va3NEaXNwYXRjaGVyT25SZXJlbmRlckluREVWO1xuICAgICAgICB0cnkge1xuICAgICAgICAgIHJldHVybiB1cGRhdGVNZW1vKGNyZWF0ZSwgZGVwcyk7XG4gICAgICAgIH0gZmluYWxseSB7XG4gICAgICAgICAgUmVhY3RTaGFyZWRJbnRlcm5hbHMuSCA9IHByZXZEaXNwYXRjaGVyO1xuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgdXNlUmVkdWNlcjogZnVuY3Rpb24gKHJlZHVjZXIsIGluaXRpYWxBcmcsIGluaXQpIHtcbiAgICAgICAgY3VycmVudEhvb2tOYW1lSW5EZXYgPSBcInVzZVJlZHVjZXJcIjtcbiAgICAgICAgdXBkYXRlSG9va1R5cGVzRGV2KCk7XG4gICAgICAgIHZhciBwcmV2RGlzcGF0Y2hlciA9IFJlYWN0U2hhcmVkSW50ZXJuYWxzLkg7XG4gICAgICAgIFJlYWN0U2hhcmVkSW50ZXJuYWxzLkggPSBJbnZhbGlkTmVzdGVkSG9va3NEaXNwYXRjaGVyT25SZXJlbmRlckluREVWO1xuICAgICAgICB0cnkge1xuICAgICAgICAgIHJldHVybiByZXJlbmRlclJlZHVjZXIocmVkdWNlciwgaW5pdGlhbEFyZywgaW5pdCk7XG4gICAgICAgIH0gZmluYWxseSB7XG4gICAgICAgICAgUmVhY3RTaGFyZWRJbnRlcm5hbHMuSCA9IHByZXZEaXNwYXRjaGVyO1xuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgdXNlUmVmOiBmdW5jdGlvbiAoKSB7XG4gICAgICAgIGN1cnJlbnRIb29rTmFtZUluRGV2ID0gXCJ1c2VSZWZcIjtcbiAgICAgICAgdXBkYXRlSG9va1R5cGVzRGV2KCk7XG4gICAgICAgIHJldHVybiB1cGRhdGVXb3JrSW5Qcm9ncmVzc0hvb2soKS5tZW1vaXplZFN0YXRlO1xuICAgICAgfSxcbiAgICAgIHVzZVN0YXRlOiBmdW5jdGlvbiAoKSB7XG4gICAgICAgIGN1cnJlbnRIb29rTmFtZUluRGV2ID0gXCJ1c2VTdGF0ZVwiO1xuICAgICAgICB1cGRhdGVIb29rVHlwZXNEZXYoKTtcbiAgICAgICAgdmFyIHByZXZEaXNwYXRjaGVyID0gUmVhY3RTaGFyZWRJbnRlcm5hbHMuSDtcbiAgICAgICAgUmVhY3RTaGFyZWRJbnRlcm5hbHMuSCA9IEludmFsaWROZXN0ZWRIb29rc0Rpc3BhdGNoZXJPblJlcmVuZGVySW5ERVY7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgcmV0dXJuIHJlcmVuZGVyUmVkdWNlcihiYXNpY1N0YXRlUmVkdWNlcik7XG4gICAgICAgIH0gZmluYWxseSB7XG4gICAgICAgICAgUmVhY3RTaGFyZWRJbnRlcm5hbHMuSCA9IHByZXZEaXNwYXRjaGVyO1xuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgdXNlRGVidWdWYWx1ZTogZnVuY3Rpb24gKCkge1xuICAgICAgICBjdXJyZW50SG9va05hbWVJbkRldiA9IFwidXNlRGVidWdWYWx1ZVwiO1xuICAgICAgICB1cGRhdGVIb29rVHlwZXNEZXYoKTtcbiAgICAgIH0sXG4gICAgICB1c2VEZWZlcnJlZFZhbHVlOiBmdW5jdGlvbiAodmFsdWUsIGluaXRpYWxWYWx1ZSkge1xuICAgICAgICBjdXJyZW50SG9va05hbWVJbkRldiA9IFwidXNlRGVmZXJyZWRWYWx1ZVwiO1xuICAgICAgICB1cGRhdGVIb29rVHlwZXNEZXYoKTtcbiAgICAgICAgcmV0dXJuIHJlcmVuZGVyRGVmZXJyZWRWYWx1ZSh2YWx1ZSwgaW5pdGlhbFZhbHVlKTtcbiAgICAgIH0sXG4gICAgICB1c2VUcmFuc2l0aW9uOiBmdW5jdGlvbiAoKSB7XG4gICAgICAgIGN1cnJlbnRIb29rTmFtZUluRGV2ID0gXCJ1c2VUcmFuc2l0aW9uXCI7XG4gICAgICAgIHVwZGF0ZUhvb2tUeXBlc0RldigpO1xuICAgICAgICByZXR1cm4gcmVyZW5kZXJUcmFuc2l0aW9uKCk7XG4gICAgICB9LFxuICAgICAgdXNlU3luY0V4dGVybmFsU3RvcmU6IGZ1bmN0aW9uIChcbiAgICAgICAgc3Vic2NyaWJlLFxuICAgICAgICBnZXRTbmFwc2hvdCxcbiAgICAgICAgZ2V0U2VydmVyU25hcHNob3RcbiAgICAgICkge1xuICAgICAgICBjdXJyZW50SG9va05hbWVJbkRldiA9IFwidXNlU3luY0V4dGVybmFsU3RvcmVcIjtcbiAgICAgICAgdXBkYXRlSG9va1R5cGVzRGV2KCk7XG4gICAgICAgIHJldHVybiB1cGRhdGVTeW5jRXh0ZXJuYWxTdG9yZShcbiAgICAgICAgICBzdWJzY3JpYmUsXG4gICAgICAgICAgZ2V0U25hcHNob3QsXG4gICAgICAgICAgZ2V0U2VydmVyU25hcHNob3RcbiAgICAgICAgKTtcbiAgICAgIH0sXG4gICAgICB1c2VJZDogZnVuY3Rpb24gKCkge1xuICAgICAgICBjdXJyZW50SG9va05hbWVJbkRldiA9IFwidXNlSWRcIjtcbiAgICAgICAgdXBkYXRlSG9va1R5cGVzRGV2KCk7XG4gICAgICAgIHJldHVybiB1cGRhdGVXb3JrSW5Qcm9ncmVzc0hvb2soKS5tZW1vaXplZFN0YXRlO1xuICAgICAgfSxcbiAgICAgIHVzZUZvcm1TdGF0ZTogZnVuY3Rpb24gKGFjdGlvbikge1xuICAgICAgICBjdXJyZW50SG9va05hbWVJbkRldiA9IFwidXNlRm9ybVN0YXRlXCI7XG4gICAgICAgIHVwZGF0ZUhvb2tUeXBlc0RldigpO1xuICAgICAgICB3YXJuT25Vc2VGb3JtU3RhdGVJbkRldigpO1xuICAgICAgICByZXR1cm4gcmVyZW5kZXJBY3Rpb25TdGF0ZShhY3Rpb24pO1xuICAgICAgfSxcbiAgICAgIHVzZUFjdGlvblN0YXRlOiBmdW5jdGlvbiAoYWN0aW9uKSB7XG4gICAgICAgIGN1cnJlbnRIb29rTmFtZUluRGV2ID0gXCJ1c2VBY3Rpb25TdGF0ZVwiO1xuICAgICAgICB1cGRhdGVIb29rVHlwZXNEZXYoKTtcbiAgICAgICAgcmV0dXJuIHJlcmVuZGVyQWN0aW9uU3RhdGUoYWN0aW9uKTtcbiAgICAgIH0sXG4gICAgICB1c2VPcHRpbWlzdGljOiBmdW5jdGlvbiAocGFzc3Rocm91Z2gsIHJlZHVjZXIpIHtcbiAgICAgICAgY3VycmVudEhvb2tOYW1lSW5EZXYgPSBcInVzZU9wdGltaXN0aWNcIjtcbiAgICAgICAgdXBkYXRlSG9va1R5cGVzRGV2KCk7XG4gICAgICAgIHJldHVybiByZXJlbmRlck9wdGltaXN0aWMocGFzc3Rocm91Z2gsIHJlZHVjZXIpO1xuICAgICAgfSxcbiAgICAgIHVzZUhvc3RUcmFuc2l0aW9uU3RhdHVzOiB1c2VIb3N0VHJhbnNpdGlvblN0YXR1cyxcbiAgICAgIHVzZU1lbW9DYWNoZTogdXNlTWVtb0NhY2hlLFxuICAgICAgdXNlQ2FjaGVSZWZyZXNoOiBmdW5jdGlvbiAoKSB7XG4gICAgICAgIGN1cnJlbnRIb29rTmFtZUluRGV2ID0gXCJ1c2VDYWNoZVJlZnJlc2hcIjtcbiAgICAgICAgdXBkYXRlSG9va1R5cGVzRGV2KCk7XG4gICAgICAgIHJldHVybiB1cGRhdGVXb3JrSW5Qcm9ncmVzc0hvb2soKS5tZW1vaXplZFN0YXRlO1xuICAgICAgfVxuICAgIH07XG4gICAgSW52YWxpZE5lc3RlZEhvb2tzRGlzcGF0Y2hlck9uTW91bnRJbkRFViA9IHtcbiAgICAgIHJlYWRDb250ZXh0OiBmdW5jdGlvbiAoY29udGV4dCkge1xuICAgICAgICB3YXJuSW52YWxpZENvbnRleHRBY2Nlc3MoKTtcbiAgICAgICAgcmV0dXJuIHJlYWRDb250ZXh0KGNvbnRleHQpO1xuICAgICAgfSxcbiAgICAgIHVzZTogZnVuY3Rpb24gKHVzYWJsZSkge1xuICAgICAgICB3YXJuSW52YWxpZEhvb2tBY2Nlc3MoKTtcbiAgICAgICAgcmV0dXJuIHVzZSh1c2FibGUpO1xuICAgICAgfSxcbiAgICAgIHVzZUNhbGxiYWNrOiBmdW5jdGlvbiAoY2FsbGJhY2ssIGRlcHMpIHtcbiAgICAgICAgY3VycmVudEhvb2tOYW1lSW5EZXYgPSBcInVzZUNhbGxiYWNrXCI7XG4gICAgICAgIHdhcm5JbnZhbGlkSG9va0FjY2VzcygpO1xuICAgICAgICBtb3VudEhvb2tUeXBlc0RldigpO1xuICAgICAgICByZXR1cm4gbW91bnRDYWxsYmFjayhjYWxsYmFjaywgZGVwcyk7XG4gICAgICB9LFxuICAgICAgdXNlQ29udGV4dDogZnVuY3Rpb24gKGNvbnRleHQpIHtcbiAgICAgICAgY3VycmVudEhvb2tOYW1lSW5EZXYgPSBcInVzZUNvbnRleHRcIjtcbiAgICAgICAgd2FybkludmFsaWRIb29rQWNjZXNzKCk7XG4gICAgICAgIG1vdW50SG9va1R5cGVzRGV2KCk7XG4gICAgICAgIHJldHVybiByZWFkQ29udGV4dChjb250ZXh0KTtcbiAgICAgIH0sXG4gICAgICB1c2VFZmZlY3Q6IGZ1bmN0aW9uIChjcmVhdGUsIGNyZWF0ZURlcHMpIHtcbiAgICAgICAgY3VycmVudEhvb2tOYW1lSW5EZXYgPSBcInVzZUVmZmVjdFwiO1xuICAgICAgICB3YXJuSW52YWxpZEhvb2tBY2Nlc3MoKTtcbiAgICAgICAgbW91bnRIb29rVHlwZXNEZXYoKTtcbiAgICAgICAgcmV0dXJuIG1vdW50RWZmZWN0KGNyZWF0ZSwgY3JlYXRlRGVwcyk7XG4gICAgICB9LFxuICAgICAgdXNlSW1wZXJhdGl2ZUhhbmRsZTogZnVuY3Rpb24gKHJlZiwgY3JlYXRlLCBkZXBzKSB7XG4gICAgICAgIGN1cnJlbnRIb29rTmFtZUluRGV2ID0gXCJ1c2VJbXBlcmF0aXZlSGFuZGxlXCI7XG4gICAgICAgIHdhcm5JbnZhbGlkSG9va0FjY2VzcygpO1xuICAgICAgICBtb3VudEhvb2tUeXBlc0RldigpO1xuICAgICAgICByZXR1cm4gbW91bnRJbXBlcmF0aXZlSGFuZGxlKHJlZiwgY3JlYXRlLCBkZXBzKTtcbiAgICAgIH0sXG4gICAgICB1c2VJbnNlcnRpb25FZmZlY3Q6IGZ1bmN0aW9uIChjcmVhdGUsIGRlcHMpIHtcbiAgICAgICAgY3VycmVudEhvb2tOYW1lSW5EZXYgPSBcInVzZUluc2VydGlvbkVmZmVjdFwiO1xuICAgICAgICB3YXJuSW52YWxpZEhvb2tBY2Nlc3MoKTtcbiAgICAgICAgbW91bnRIb29rVHlwZXNEZXYoKTtcbiAgICAgICAgbW91bnRFZmZlY3RJbXBsKDQsIEluc2VydGlvbiwgY3JlYXRlLCBkZXBzKTtcbiAgICAgIH0sXG4gICAgICB1c2VMYXlvdXRFZmZlY3Q6IGZ1bmN0aW9uIChjcmVhdGUsIGRlcHMpIHtcbiAgICAgICAgY3VycmVudEhvb2tOYW1lSW5EZXYgPSBcInVzZUxheW91dEVmZmVjdFwiO1xuICAgICAgICB3YXJuSW52YWxpZEhvb2tBY2Nlc3MoKTtcbiAgICAgICAgbW91bnRIb29rVHlwZXNEZXYoKTtcbiAgICAgICAgcmV0dXJuIG1vdW50TGF5b3V0RWZmZWN0KGNyZWF0ZSwgZGVwcyk7XG4gICAgICB9LFxuICAgICAgdXNlTWVtbzogZnVuY3Rpb24gKGNyZWF0ZSwgZGVwcykge1xuICAgICAgICBjdXJyZW50SG9va05hbWVJbkRldiA9IFwidXNlTWVtb1wiO1xuICAgICAgICB3YXJuSW52YWxpZEhvb2tBY2Nlc3MoKTtcbiAgICAgICAgbW91bnRIb29rVHlwZXNEZXYoKTtcbiAgICAgICAgdmFyIHByZXZEaXNwYXRjaGVyID0gUmVhY3RTaGFyZWRJbnRlcm5hbHMuSDtcbiAgICAgICAgUmVhY3RTaGFyZWRJbnRlcm5hbHMuSCA9IEludmFsaWROZXN0ZWRIb29rc0Rpc3BhdGNoZXJPbk1vdW50SW5ERVY7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgcmV0dXJuIG1vdW50TWVtbyhjcmVhdGUsIGRlcHMpO1xuICAgICAgICB9IGZpbmFsbHkge1xuICAgICAgICAgIFJlYWN0U2hhcmVkSW50ZXJuYWxzLkggPSBwcmV2RGlzcGF0Y2hlcjtcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIHVzZVJlZHVjZXI6IGZ1bmN0aW9uIChyZWR1Y2VyLCBpbml0aWFsQXJnLCBpbml0KSB7XG4gICAgICAgIGN1cnJlbnRIb29rTmFtZUluRGV2ID0gXCJ1c2VSZWR1Y2VyXCI7XG4gICAgICAgIHdhcm5JbnZhbGlkSG9va0FjY2VzcygpO1xuICAgICAgICBtb3VudEhvb2tUeXBlc0RldigpO1xuICAgICAgICB2YXIgcHJldkRpc3BhdGNoZXIgPSBSZWFjdFNoYXJlZEludGVybmFscy5IO1xuICAgICAgICBSZWFjdFNoYXJlZEludGVybmFscy5IID0gSW52YWxpZE5lc3RlZEhvb2tzRGlzcGF0Y2hlck9uTW91bnRJbkRFVjtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICByZXR1cm4gbW91bnRSZWR1Y2VyKHJlZHVjZXIsIGluaXRpYWxBcmcsIGluaXQpO1xuICAgICAgICB9IGZpbmFsbHkge1xuICAgICAgICAgIFJlYWN0U2hhcmVkSW50ZXJuYWxzLkggPSBwcmV2RGlzcGF0Y2hlcjtcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIHVzZVJlZjogZnVuY3Rpb24gKGluaXRpYWxWYWx1ZSkge1xuICAgICAgICBjdXJyZW50SG9va05hbWVJbkRldiA9IFwidXNlUmVmXCI7XG4gICAgICAgIHdhcm5JbnZhbGlkSG9va0FjY2VzcygpO1xuICAgICAgICBtb3VudEhvb2tUeXBlc0RldigpO1xuICAgICAgICByZXR1cm4gbW91bnRSZWYoaW5pdGlhbFZhbHVlKTtcbiAgICAgIH0sXG4gICAgICB1c2VTdGF0ZTogZnVuY3Rpb24gKGluaXRpYWxTdGF0ZSkge1xuICAgICAgICBjdXJyZW50SG9va05hbWVJbkRldiA9IFwidXNlU3RhdGVcIjtcbiAgICAgICAgd2FybkludmFsaWRIb29rQWNjZXNzKCk7XG4gICAgICAgIG1vdW50SG9va1R5cGVzRGV2KCk7XG4gICAgICAgIHZhciBwcmV2RGlzcGF0Y2hlciA9IFJlYWN0U2hhcmVkSW50ZXJuYWxzLkg7XG4gICAgICAgIFJlYWN0U2hhcmVkSW50ZXJuYWxzLkggPSBJbnZhbGlkTmVzdGVkSG9va3NEaXNwYXRjaGVyT25Nb3VudEluREVWO1xuICAgICAgICB0cnkge1xuICAgICAgICAgIHJldHVybiBtb3VudFN0YXRlKGluaXRpYWxTdGF0ZSk7XG4gICAgICAgIH0gZmluYWxseSB7XG4gICAgICAgICAgUmVhY3RTaGFyZWRJbnRlcm5hbHMuSCA9IHByZXZEaXNwYXRjaGVyO1xuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgdXNlRGVidWdWYWx1ZTogZnVuY3Rpb24gKCkge1xuICAgICAgICBjdXJyZW50SG9va05hbWVJbkRldiA9IFwidXNlRGVidWdWYWx1ZVwiO1xuICAgICAgICB3YXJuSW52YWxpZEhvb2tBY2Nlc3MoKTtcbiAgICAgICAgbW91bnRIb29rVHlwZXNEZXYoKTtcbiAgICAgIH0sXG4gICAgICB1c2VEZWZlcnJlZFZhbHVlOiBmdW5jdGlvbiAodmFsdWUsIGluaXRpYWxWYWx1ZSkge1xuICAgICAgICBjdXJyZW50SG9va05hbWVJbkRldiA9IFwidXNlRGVmZXJyZWRWYWx1ZVwiO1xuICAgICAgICB3YXJuSW52YWxpZEhvb2tBY2Nlc3MoKTtcbiAgICAgICAgbW91bnRIb29rVHlwZXNEZXYoKTtcbiAgICAgICAgcmV0dXJuIG1vdW50RGVmZXJyZWRWYWx1ZSh2YWx1ZSwgaW5pdGlhbFZhbHVlKTtcbiAgICAgIH0sXG4gICAgICB1c2VUcmFuc2l0aW9uOiBmdW5jdGlvbiAoKSB7XG4gICAgICAgIGN1cnJlbnRIb29rTmFtZUluRGV2ID0gXCJ1c2VUcmFuc2l0aW9uXCI7XG4gICAgICAgIHdhcm5JbnZhbGlkSG9va0FjY2VzcygpO1xuICAgICAgICBtb3VudEhvb2tUeXBlc0RldigpO1xuICAgICAgICByZXR1cm4gbW91bnRUcmFuc2l0aW9uKCk7XG4gICAgICB9LFxuICAgICAgdXNlU3luY0V4dGVybmFsU3RvcmU6IGZ1bmN0aW9uIChcbiAgICAgICAgc3Vic2NyaWJlLFxuICAgICAgICBnZXRTbmFwc2hvdCxcbiAgICAgICAgZ2V0U2VydmVyU25hcHNob3RcbiAgICAgICkge1xuICAgICAgICBjdXJyZW50SG9va05hbWVJbkRldiA9IFwidXNlU3luY0V4dGVybmFsU3RvcmVcIjtcbiAgICAgICAgd2FybkludmFsaWRIb29rQWNjZXNzKCk7XG4gICAgICAgIG1vdW50SG9va1R5cGVzRGV2KCk7XG4gICAgICAgIHJldHVybiBtb3VudFN5bmNFeHRlcm5hbFN0b3JlKFxuICAgICAgICAgIHN1YnNjcmliZSxcbiAgICAgICAgICBnZXRTbmFwc2hvdCxcbiAgICAgICAgICBnZXRTZXJ2ZXJTbmFwc2hvdFxuICAgICAgICApO1xuICAgICAgfSxcbiAgICAgIHVzZUlkOiBmdW5jdGlvbiAoKSB7XG4gICAgICAgIGN1cnJlbnRIb29rTmFtZUluRGV2ID0gXCJ1c2VJZFwiO1xuICAgICAgICB3YXJuSW52YWxpZEhvb2tBY2Nlc3MoKTtcbiAgICAgICAgbW91bnRIb29rVHlwZXNEZXYoKTtcbiAgICAgICAgcmV0dXJuIG1vdW50SWQoKTtcbiAgICAgIH0sXG4gICAgICB1c2VGb3JtU3RhdGU6IGZ1bmN0aW9uIChhY3Rpb24sIGluaXRpYWxTdGF0ZSkge1xuICAgICAgICBjdXJyZW50SG9va05hbWVJbkRldiA9IFwidXNlRm9ybVN0YXRlXCI7XG4gICAgICAgIHdhcm5JbnZhbGlkSG9va0FjY2VzcygpO1xuICAgICAgICBtb3VudEhvb2tUeXBlc0RldigpO1xuICAgICAgICByZXR1cm4gbW91bnRBY3Rpb25TdGF0ZShhY3Rpb24sIGluaXRpYWxTdGF0ZSk7XG4gICAgICB9LFxuICAgICAgdXNlQWN0aW9uU3RhdGU6IGZ1bmN0aW9uIChhY3Rpb24sIGluaXRpYWxTdGF0ZSkge1xuICAgICAgICBjdXJyZW50SG9va05hbWVJbkRldiA9IFwidXNlQWN0aW9uU3RhdGVcIjtcbiAgICAgICAgd2FybkludmFsaWRIb29rQWNjZXNzKCk7XG4gICAgICAgIG1vdW50SG9va1R5cGVzRGV2KCk7XG4gICAgICAgIHJldHVybiBtb3VudEFjdGlvblN0YXRlKGFjdGlvbiwgaW5pdGlhbFN0YXRlKTtcbiAgICAgIH0sXG4gICAgICB1c2VPcHRpbWlzdGljOiBmdW5jdGlvbiAocGFzc3Rocm91Z2gpIHtcbiAgICAgICAgY3VycmVudEhvb2tOYW1lSW5EZXYgPSBcInVzZU9wdGltaXN0aWNcIjtcbiAgICAgICAgd2FybkludmFsaWRIb29rQWNjZXNzKCk7XG4gICAgICAgIG1vdW50SG9va1R5cGVzRGV2KCk7XG4gICAgICAgIHJldHVybiBtb3VudE9wdGltaXN0aWMocGFzc3Rocm91Z2gpO1xuICAgICAgfSxcbiAgICAgIHVzZU1lbW9DYWNoZTogZnVuY3Rpb24gKHNpemUpIHtcbiAgICAgICAgd2FybkludmFsaWRIb29rQWNjZXNzKCk7XG4gICAgICAgIHJldHVybiB1c2VNZW1vQ2FjaGUoc2l6ZSk7XG4gICAgICB9LFxuICAgICAgdXNlSG9zdFRyYW5zaXRpb25TdGF0dXM6IHVzZUhvc3RUcmFuc2l0aW9uU3RhdHVzLFxuICAgICAgdXNlQ2FjaGVSZWZyZXNoOiBmdW5jdGlvbiAoKSB7XG4gICAgICAgIGN1cnJlbnRIb29rTmFtZUluRGV2ID0gXCJ1c2VDYWNoZVJlZnJlc2hcIjtcbiAgICAgICAgbW91bnRIb29rVHlwZXNEZXYoKTtcbiAgICAgICAgcmV0dXJuIG1vdW50UmVmcmVzaCgpO1xuICAgICAgfVxuICAgIH07XG4gICAgSW52YWxpZE5lc3RlZEhvb2tzRGlzcGF0Y2hlck9uVXBkYXRlSW5ERVYgPSB7XG4gICAgICByZWFkQ29udGV4dDogZnVuY3Rpb24gKGNvbnRleHQpIHtcbiAgICAgICAgd2FybkludmFsaWRDb250ZXh0QWNjZXNzKCk7XG4gICAgICAgIHJldHVybiByZWFkQ29udGV4dChjb250ZXh0KTtcbiAgICAgIH0sXG4gICAgICB1c2U6IGZ1bmN0aW9uICh1c2FibGUpIHtcbiAgICAgICAgd2FybkludmFsaWRIb29rQWNjZXNzKCk7XG4gICAgICAgIHJldHVybiB1c2UodXNhYmxlKTtcbiAgICAgIH0sXG4gICAgICB1c2VDYWxsYmFjazogZnVuY3Rpb24gKGNhbGxiYWNrLCBkZXBzKSB7XG4gICAgICAgIGN1cnJlbnRIb29rTmFtZUluRGV2ID0gXCJ1c2VDYWxsYmFja1wiO1xuICAgICAgICB3YXJuSW52YWxpZEhvb2tBY2Nlc3MoKTtcbiAgICAgICAgdXBkYXRlSG9va1R5cGVzRGV2KCk7XG4gICAgICAgIHJldHVybiB1cGRhdGVDYWxsYmFjayhjYWxsYmFjaywgZGVwcyk7XG4gICAgICB9LFxuICAgICAgdXNlQ29udGV4dDogZnVuY3Rpb24gKGNvbnRleHQpIHtcbiAgICAgICAgY3VycmVudEhvb2tOYW1lSW5EZXYgPSBcInVzZUNvbnRleHRcIjtcbiAgICAgICAgd2FybkludmFsaWRIb29rQWNjZXNzKCk7XG4gICAgICAgIHVwZGF0ZUhvb2tUeXBlc0RldigpO1xuICAgICAgICByZXR1cm4gcmVhZENvbnRleHQoY29udGV4dCk7XG4gICAgICB9LFxuICAgICAgdXNlRWZmZWN0OiBmdW5jdGlvbiAoY3JlYXRlLCBjcmVhdGVEZXBzKSB7XG4gICAgICAgIGN1cnJlbnRIb29rTmFtZUluRGV2ID0gXCJ1c2VFZmZlY3RcIjtcbiAgICAgICAgd2FybkludmFsaWRIb29rQWNjZXNzKCk7XG4gICAgICAgIHVwZGF0ZUhvb2tUeXBlc0RldigpO1xuICAgICAgICB1cGRhdGVFZmZlY3RJbXBsKDIwNDgsIFBhc3NpdmUsIGNyZWF0ZSwgY3JlYXRlRGVwcyk7XG4gICAgICB9LFxuICAgICAgdXNlSW1wZXJhdGl2ZUhhbmRsZTogZnVuY3Rpb24gKHJlZiwgY3JlYXRlLCBkZXBzKSB7XG4gICAgICAgIGN1cnJlbnRIb29rTmFtZUluRGV2ID0gXCJ1c2VJbXBlcmF0aXZlSGFuZGxlXCI7XG4gICAgICAgIHdhcm5JbnZhbGlkSG9va0FjY2VzcygpO1xuICAgICAgICB1cGRhdGVIb29rVHlwZXNEZXYoKTtcbiAgICAgICAgcmV0dXJuIHVwZGF0ZUltcGVyYXRpdmVIYW5kbGUocmVmLCBjcmVhdGUsIGRlcHMpO1xuICAgICAgfSxcbiAgICAgIHVzZUluc2VydGlvbkVmZmVjdDogZnVuY3Rpb24gKGNyZWF0ZSwgZGVwcykge1xuICAgICAgICBjdXJyZW50SG9va05hbWVJbkRldiA9IFwidXNlSW5zZXJ0aW9uRWZmZWN0XCI7XG4gICAgICAgIHdhcm5JbnZhbGlkSG9va0FjY2VzcygpO1xuICAgICAgICB1cGRhdGVIb29rVHlwZXNEZXYoKTtcbiAgICAgICAgcmV0dXJuIHVwZGF0ZUVmZmVjdEltcGwoNCwgSW5zZXJ0aW9uLCBjcmVhdGUsIGRlcHMpO1xuICAgICAgfSxcbiAgICAgIHVzZUxheW91dEVmZmVjdDogZnVuY3Rpb24gKGNyZWF0ZSwgZGVwcykge1xuICAgICAgICBjdXJyZW50SG9va05hbWVJbkRldiA9IFwidXNlTGF5b3V0RWZmZWN0XCI7XG4gICAgICAgIHdhcm5JbnZhbGlkSG9va0FjY2VzcygpO1xuICAgICAgICB1cGRhdGVIb29rVHlwZXNEZXYoKTtcbiAgICAgICAgcmV0dXJuIHVwZGF0ZUVmZmVjdEltcGwoNCwgTGF5b3V0LCBjcmVhdGUsIGRlcHMpO1xuICAgICAgfSxcbiAgICAgIHVzZU1lbW86IGZ1bmN0aW9uIChjcmVhdGUsIGRlcHMpIHtcbiAgICAgICAgY3VycmVudEhvb2tOYW1lSW5EZXYgPSBcInVzZU1lbW9cIjtcbiAgICAgICAgd2FybkludmFsaWRIb29rQWNjZXNzKCk7XG4gICAgICAgIHVwZGF0ZUhvb2tUeXBlc0RldigpO1xuICAgICAgICB2YXIgcHJldkRpc3BhdGNoZXIgPSBSZWFjdFNoYXJlZEludGVybmFscy5IO1xuICAgICAgICBSZWFjdFNoYXJlZEludGVybmFscy5IID0gSW52YWxpZE5lc3RlZEhvb2tzRGlzcGF0Y2hlck9uVXBkYXRlSW5ERVY7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgcmV0dXJuIHVwZGF0ZU1lbW8oY3JlYXRlLCBkZXBzKTtcbiAgICAgICAgfSBmaW5hbGx5IHtcbiAgICAgICAgICBSZWFjdFNoYXJlZEludGVybmFscy5IID0gcHJldkRpc3BhdGNoZXI7XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICB1c2VSZWR1Y2VyOiBmdW5jdGlvbiAocmVkdWNlciwgaW5pdGlhbEFyZywgaW5pdCkge1xuICAgICAgICBjdXJyZW50SG9va05hbWVJbkRldiA9IFwidXNlUmVkdWNlclwiO1xuICAgICAgICB3YXJuSW52YWxpZEhvb2tBY2Nlc3MoKTtcbiAgICAgICAgdXBkYXRlSG9va1R5cGVzRGV2KCk7XG4gICAgICAgIHZhciBwcmV2RGlzcGF0Y2hlciA9IFJlYWN0U2hhcmVkSW50ZXJuYWxzLkg7XG4gICAgICAgIFJlYWN0U2hhcmVkSW50ZXJuYWxzLkggPSBJbnZhbGlkTmVzdGVkSG9va3NEaXNwYXRjaGVyT25VcGRhdGVJbkRFVjtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICByZXR1cm4gdXBkYXRlUmVkdWNlcihyZWR1Y2VyLCBpbml0aWFsQXJnLCBpbml0KTtcbiAgICAgICAgfSBmaW5hbGx5IHtcbiAgICAgICAgICBSZWFjdFNoYXJlZEludGVybmFscy5IID0gcHJldkRpc3BhdGNoZXI7XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICB1c2VSZWY6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgY3VycmVudEhvb2tOYW1lSW5EZXYgPSBcInVzZVJlZlwiO1xuICAgICAgICB3YXJuSW52YWxpZEhvb2tBY2Nlc3MoKTtcbiAgICAgICAgdXBkYXRlSG9va1R5cGVzRGV2KCk7XG4gICAgICAgIHJldHVybiB1cGRhdGVXb3JrSW5Qcm9ncmVzc0hvb2soKS5tZW1vaXplZFN0YXRlO1xuICAgICAgfSxcbiAgICAgIHVzZVN0YXRlOiBmdW5jdGlvbiAoKSB7XG4gICAgICAgIGN1cnJlbnRIb29rTmFtZUluRGV2ID0gXCJ1c2VTdGF0ZVwiO1xuICAgICAgICB3YXJuSW52YWxpZEhvb2tBY2Nlc3MoKTtcbiAgICAgICAgdXBkYXRlSG9va1R5cGVzRGV2KCk7XG4gICAgICAgIHZhciBwcmV2RGlzcGF0Y2hlciA9IFJlYWN0U2hhcmVkSW50ZXJuYWxzLkg7XG4gICAgICAgIFJlYWN0U2hhcmVkSW50ZXJuYWxzLkggPSBJbnZhbGlkTmVzdGVkSG9va3NEaXNwYXRjaGVyT25VcGRhdGVJbkRFVjtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICByZXR1cm4gdXBkYXRlUmVkdWNlcihiYXNpY1N0YXRlUmVkdWNlcik7XG4gICAgICAgIH0gZmluYWxseSB7XG4gICAgICAgICAgUmVhY3RTaGFyZWRJbnRlcm5hbHMuSCA9IHByZXZEaXNwYXRjaGVyO1xuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgdXNlRGVidWdWYWx1ZTogZnVuY3Rpb24gKCkge1xuICAgICAgICBjdXJyZW50SG9va05hbWVJbkRldiA9IFwidXNlRGVidWdWYWx1ZVwiO1xuICAgICAgICB3YXJuSW52YWxpZEhvb2tBY2Nlc3MoKTtcbiAgICAgICAgdXBkYXRlSG9va1R5cGVzRGV2KCk7XG4gICAgICB9LFxuICAgICAgdXNlRGVmZXJyZWRWYWx1ZTogZnVuY3Rpb24gKHZhbHVlLCBpbml0aWFsVmFsdWUpIHtcbiAgICAgICAgY3VycmVudEhvb2tOYW1lSW5EZXYgPSBcInVzZURlZmVycmVkVmFsdWVcIjtcbiAgICAgICAgd2FybkludmFsaWRIb29rQWNjZXNzKCk7XG4gICAgICAgIHVwZGF0ZUhvb2tUeXBlc0RldigpO1xuICAgICAgICByZXR1cm4gdXBkYXRlRGVmZXJyZWRWYWx1ZSh2YWx1ZSwgaW5pdGlhbFZhbHVlKTtcbiAgICAgIH0sXG4gICAgICB1c2VUcmFuc2l0aW9uOiBmdW5jdGlvbiAoKSB7XG4gICAgICAgIGN1cnJlbnRIb29rTmFtZUluRGV2ID0gXCJ1c2VUcmFuc2l0aW9uXCI7XG4gICAgICAgIHdhcm5JbnZhbGlkSG9va0FjY2VzcygpO1xuICAgICAgICB1cGRhdGVIb29rVHlwZXNEZXYoKTtcbiAgICAgICAgcmV0dXJuIHVwZGF0ZVRyYW5zaXRpb24oKTtcbiAgICAgIH0sXG4gICAgICB1c2VTeW5jRXh0ZXJuYWxTdG9yZTogZnVuY3Rpb24gKFxuICAgICAgICBzdWJzY3JpYmUsXG4gICAgICAgIGdldFNuYXBzaG90LFxuICAgICAgICBnZXRTZXJ2ZXJTbmFwc2hvdFxuICAgICAgKSB7XG4gICAgICAgIGN1cnJlbnRIb29rTmFtZUluRGV2ID0gXCJ1c2VTeW5jRXh0ZXJuYWxTdG9yZVwiO1xuICAgICAgICB3YXJuSW52YWxpZEhvb2tBY2Nlc3MoKTtcbiAgICAgICAgdXBkYXRlSG9va1R5cGVzRGV2KCk7XG4gICAgICAgIHJldHVybiB1cGRhdGVTeW5jRXh0ZXJuYWxTdG9yZShcbiAgICAgICAgICBzdWJzY3JpYmUsXG4gICAgICAgICAgZ2V0U25hcHNob3QsXG4gICAgICAgICAgZ2V0U2VydmVyU25hcHNob3RcbiAgICAgICAgKTtcbiAgICAgIH0sXG4gICAgICB1c2VJZDogZnVuY3Rpb24gKCkge1xuICAgICAgICBjdXJyZW50SG9va05hbWVJbkRldiA9IFwidXNlSWRcIjtcbiAgICAgICAgd2FybkludmFsaWRIb29rQWNjZXNzKCk7XG4gICAgICAgIHVwZGF0ZUhvb2tUeXBlc0RldigpO1xuICAgICAgICByZXR1cm4gdXBkYXRlV29ya0luUHJvZ3Jlc3NIb29rKCkubWVtb2l6ZWRTdGF0ZTtcbiAgICAgIH0sXG4gICAgICB1c2VGb3JtU3RhdGU6IGZ1bmN0aW9uIChhY3Rpb24pIHtcbiAgICAgICAgY3VycmVudEhvb2tOYW1lSW5EZXYgPSBcInVzZUZvcm1TdGF0ZVwiO1xuICAgICAgICB3YXJuSW52YWxpZEhvb2tBY2Nlc3MoKTtcbiAgICAgICAgdXBkYXRlSG9va1R5cGVzRGV2KCk7XG4gICAgICAgIHJldHVybiB1cGRhdGVBY3Rpb25TdGF0ZShhY3Rpb24pO1xuICAgICAgfSxcbiAgICAgIHVzZUFjdGlvblN0YXRlOiBmdW5jdGlvbiAoYWN0aW9uKSB7XG4gICAgICAgIGN1cnJlbnRIb29rTmFtZUluRGV2ID0gXCJ1c2VBY3Rpb25TdGF0ZVwiO1xuICAgICAgICB3YXJuSW52YWxpZEhvb2tBY2Nlc3MoKTtcbiAgICAgICAgdXBkYXRlSG9va1R5cGVzRGV2KCk7XG4gICAgICAgIHJldHVybiB1cGRhdGVBY3Rpb25TdGF0ZShhY3Rpb24pO1xuICAgICAgfSxcbiAgICAgIHVzZU9wdGltaXN0aWM6IGZ1bmN0aW9uIChwYXNzdGhyb3VnaCwgcmVkdWNlcikge1xuICAgICAgICBjdXJyZW50SG9va05hbWVJbkRldiA9IFwidXNlT3B0aW1pc3RpY1wiO1xuICAgICAgICB3YXJuSW52YWxpZEhvb2tBY2Nlc3MoKTtcbiAgICAgICAgdXBkYXRlSG9va1R5cGVzRGV2KCk7XG4gICAgICAgIHJldHVybiB1cGRhdGVPcHRpbWlzdGljKHBhc3N0aHJvdWdoLCByZWR1Y2VyKTtcbiAgICAgIH0sXG4gICAgICB1c2VNZW1vQ2FjaGU6IGZ1bmN0aW9uIChzaXplKSB7XG4gICAgICAgIHdhcm5JbnZhbGlkSG9va0FjY2VzcygpO1xuICAgICAgICByZXR1cm4gdXNlTWVtb0NhY2hlKHNpemUpO1xuICAgICAgfSxcbiAgICAgIHVzZUhvc3RUcmFuc2l0aW9uU3RhdHVzOiB1c2VIb3N0VHJhbnNpdGlvblN0YXR1cyxcbiAgICAgIHVzZUNhY2hlUmVmcmVzaDogZnVuY3Rpb24gKCkge1xuICAgICAgICBjdXJyZW50SG9va05hbWVJbkRldiA9IFwidXNlQ2FjaGVSZWZyZXNoXCI7XG4gICAgICAgIHVwZGF0ZUhvb2tUeXBlc0RldigpO1xuICAgICAgICByZXR1cm4gdXBkYXRlV29ya0luUHJvZ3Jlc3NIb29rKCkubWVtb2l6ZWRTdGF0ZTtcbiAgICAgIH1cbiAgICB9O1xuICAgIEludmFsaWROZXN0ZWRIb29rc0Rpc3BhdGNoZXJPblJlcmVuZGVySW5ERVYgPSB7XG4gICAgICByZWFkQ29udGV4dDogZnVuY3Rpb24gKGNvbnRleHQpIHtcbiAgICAgICAgd2FybkludmFsaWRDb250ZXh0QWNjZXNzKCk7XG4gICAgICAgIHJldHVybiByZWFkQ29udGV4dChjb250ZXh0KTtcbiAgICAgIH0sXG4gICAgICB1c2U6IGZ1bmN0aW9uICh1c2FibGUpIHtcbiAgICAgICAgd2FybkludmFsaWRIb29rQWNjZXNzKCk7XG4gICAgICAgIHJldHVybiB1c2UodXNhYmxlKTtcbiAgICAgIH0sXG4gICAgICB1c2VDYWxsYmFjazogZnVuY3Rpb24gKGNhbGxiYWNrLCBkZXBzKSB7XG4gICAgICAgIGN1cnJlbnRIb29rTmFtZUluRGV2ID0gXCJ1c2VDYWxsYmFja1wiO1xuICAgICAgICB3YXJuSW52YWxpZEhvb2tBY2Nlc3MoKTtcbiAgICAgICAgdXBkYXRlSG9va1R5cGVzRGV2KCk7XG4gICAgICAgIHJldHVybiB1cGRhdGVDYWxsYmFjayhjYWxsYmFjaywgZGVwcyk7XG4gICAgICB9LFxuICAgICAgdXNlQ29udGV4dDogZnVuY3Rpb24gKGNvbnRleHQpIHtcbiAgICAgICAgY3VycmVudEhvb2tOYW1lSW5EZXYgPSBcInVzZUNvbnRleHRcIjtcbiAgICAgICAgd2FybkludmFsaWRIb29rQWNjZXNzKCk7XG4gICAgICAgIHVwZGF0ZUhvb2tUeXBlc0RldigpO1xuICAgICAgICByZXR1cm4gcmVhZENvbnRleHQoY29udGV4dCk7XG4gICAgICB9LFxuICAgICAgdXNlRWZmZWN0OiBmdW5jdGlvbiAoY3JlYXRlLCBjcmVhdGVEZXBzKSB7XG4gICAgICAgIGN1cnJlbnRIb29rTmFtZUluRGV2ID0gXCJ1c2VFZmZlY3RcIjtcbiAgICAgICAgd2FybkludmFsaWRIb29rQWNjZXNzKCk7XG4gICAgICAgIHVwZGF0ZUhvb2tUeXBlc0RldigpO1xuICAgICAgICB1cGRhdGVFZmZlY3RJbXBsKDIwNDgsIFBhc3NpdmUsIGNyZWF0ZSwgY3JlYXRlRGVwcyk7XG4gICAgICB9LFxuICAgICAgdXNlSW1wZXJhdGl2ZUhhbmRsZTogZnVuY3Rpb24gKHJlZiwgY3JlYXRlLCBkZXBzKSB7XG4gICAgICAgIGN1cnJlbnRIb29rTmFtZUluRGV2ID0gXCJ1c2VJbXBlcmF0aXZlSGFuZGxlXCI7XG4gICAgICAgIHdhcm5JbnZhbGlkSG9va0FjY2VzcygpO1xuICAgICAgICB1cGRhdGVIb29rVHlwZXNEZXYoKTtcbiAgICAgICAgcmV0dXJuIHVwZGF0ZUltcGVyYXRpdmVIYW5kbGUocmVmLCBjcmVhdGUsIGRlcHMpO1xuICAgICAgfSxcbiAgICAgIHVzZUluc2VydGlvbkVmZmVjdDogZnVuY3Rpb24gKGNyZWF0ZSwgZGVwcykge1xuICAgICAgICBjdXJyZW50SG9va05hbWVJbkRldiA9IFwidXNlSW5zZXJ0aW9uRWZmZWN0XCI7XG4gICAgICAgIHdhcm5JbnZhbGlkSG9va0FjY2VzcygpO1xuICAgICAgICB1cGRhdGVIb29rVHlwZXNEZXYoKTtcbiAgICAgICAgcmV0dXJuIHVwZGF0ZUVmZmVjdEltcGwoNCwgSW5zZXJ0aW9uLCBjcmVhdGUsIGRlcHMpO1xuICAgICAgfSxcbiAgICAgIHVzZUxheW91dEVmZmVjdDogZnVuY3Rpb24gKGNyZWF0ZSwgZGVwcykge1xuICAgICAgICBjdXJyZW50SG9va05hbWVJbkRldiA9IFwidXNlTGF5b3V0RWZmZWN0XCI7XG4gICAgICAgIHdhcm5JbnZhbGlkSG9va0FjY2VzcygpO1xuICAgICAgICB1cGRhdGVIb29rVHlwZXNEZXYoKTtcbiAgICAgICAgcmV0dXJuIHVwZGF0ZUVmZmVjdEltcGwoNCwgTGF5b3V0LCBjcmVhdGUsIGRlcHMpO1xuICAgICAgfSxcbiAgICAgIHVzZU1lbW86IGZ1bmN0aW9uIChjcmVhdGUsIGRlcHMpIHtcbiAgICAgICAgY3VycmVudEhvb2tOYW1lSW5EZXYgPSBcInVzZU1lbW9cIjtcbiAgICAgICAgd2FybkludmFsaWRIb29rQWNjZXNzKCk7XG4gICAgICAgIHVwZGF0ZUhvb2tUeXBlc0RldigpO1xuICAgICAgICB2YXIgcHJldkRpc3BhdGNoZXIgPSBSZWFjdFNoYXJlZEludGVybmFscy5IO1xuICAgICAgICBSZWFjdFNoYXJlZEludGVybmFscy5IID0gSW52YWxpZE5lc3RlZEhvb2tzRGlzcGF0Y2hlck9uVXBkYXRlSW5ERVY7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgcmV0dXJuIHVwZGF0ZU1lbW8oY3JlYXRlLCBkZXBzKTtcbiAgICAgICAgfSBmaW5hbGx5IHtcbiAgICAgICAgICBSZWFjdFNoYXJlZEludGVybmFscy5IID0gcHJldkRpc3BhdGNoZXI7XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICB1c2VSZWR1Y2VyOiBmdW5jdGlvbiAocmVkdWNlciwgaW5pdGlhbEFyZywgaW5pdCkge1xuICAgICAgICBjdXJyZW50SG9va05hbWVJbkRldiA9IFwidXNlUmVkdWNlclwiO1xuICAgICAgICB3YXJuSW52YWxpZEhvb2tBY2Nlc3MoKTtcbiAgICAgICAgdXBkYXRlSG9va1R5cGVzRGV2KCk7XG4gICAgICAgIHZhciBwcmV2RGlzcGF0Y2hlciA9IFJlYWN0U2hhcmVkSW50ZXJuYWxzLkg7XG4gICAgICAgIFJlYWN0U2hhcmVkSW50ZXJuYWxzLkggPSBJbnZhbGlkTmVzdGVkSG9va3NEaXNwYXRjaGVyT25VcGRhdGVJbkRFVjtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICByZXR1cm4gcmVyZW5kZXJSZWR1Y2VyKHJlZHVjZXIsIGluaXRpYWxBcmcsIGluaXQpO1xuICAgICAgICB9IGZpbmFsbHkge1xuICAgICAgICAgIFJlYWN0U2hhcmVkSW50ZXJuYWxzLkggPSBwcmV2RGlzcGF0Y2hlcjtcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIHVzZVJlZjogZnVuY3Rpb24gKCkge1xuICAgICAgICBjdXJyZW50SG9va05hbWVJbkRldiA9IFwidXNlUmVmXCI7XG4gICAgICAgIHdhcm5JbnZhbGlkSG9va0FjY2VzcygpO1xuICAgICAgICB1cGRhdGVIb29rVHlwZXNEZXYoKTtcbiAgICAgICAgcmV0dXJuIHVwZGF0ZVdvcmtJblByb2dyZXNzSG9vaygpLm1lbW9pemVkU3RhdGU7XG4gICAgICB9LFxuICAgICAgdXNlU3RhdGU6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgY3VycmVudEhvb2tOYW1lSW5EZXYgPSBcInVzZVN0YXRlXCI7XG4gICAgICAgIHdhcm5JbnZhbGlkSG9va0FjY2VzcygpO1xuICAgICAgICB1cGRhdGVIb29rVHlwZXNEZXYoKTtcbiAgICAgICAgdmFyIHByZXZEaXNwYXRjaGVyID0gUmVhY3RTaGFyZWRJbnRlcm5hbHMuSDtcbiAgICAgICAgUmVhY3RTaGFyZWRJbnRlcm5hbHMuSCA9IEludmFsaWROZXN0ZWRIb29rc0Rpc3BhdGNoZXJPblVwZGF0ZUluREVWO1xuICAgICAgICB0cnkge1xuICAgICAgICAgIHJldHVybiByZXJlbmRlclJlZHVjZXIoYmFzaWNTdGF0ZVJlZHVjZXIpO1xuICAgICAgICB9IGZpbmFsbHkge1xuICAgICAgICAgIFJlYWN0U2hhcmVkSW50ZXJuYWxzLkggPSBwcmV2RGlzcGF0Y2hlcjtcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIHVzZURlYnVnVmFsdWU6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgY3VycmVudEhvb2tOYW1lSW5EZXYgPSBcInVzZURlYnVnVmFsdWVcIjtcbiAgICAgICAgd2FybkludmFsaWRIb29rQWNjZXNzKCk7XG4gICAgICAgIHVwZGF0ZUhvb2tUeXBlc0RldigpO1xuICAgICAgfSxcbiAgICAgIHVzZURlZmVycmVkVmFsdWU6IGZ1bmN0aW9uICh2YWx1ZSwgaW5pdGlhbFZhbHVlKSB7XG4gICAgICAgIGN1cnJlbnRIb29rTmFtZUluRGV2ID0gXCJ1c2VEZWZlcnJlZFZhbHVlXCI7XG4gICAgICAgIHdhcm5JbnZhbGlkSG9va0FjY2VzcygpO1xuICAgICAgICB1cGRhdGVIb29rVHlwZXNEZXYoKTtcbiAgICAgICAgcmV0dXJuIHJlcmVuZGVyRGVmZXJyZWRWYWx1ZSh2YWx1ZSwgaW5pdGlhbFZhbHVlKTtcbiAgICAgIH0sXG4gICAgICB1c2VUcmFuc2l0aW9uOiBmdW5jdGlvbiAoKSB7XG4gICAgICAgIGN1cnJlbnRIb29rTmFtZUluRGV2ID0gXCJ1c2VUcmFuc2l0aW9uXCI7XG4gICAgICAgIHdhcm5JbnZhbGlkSG9va0FjY2VzcygpO1xuICAgICAgICB1cGRhdGVIb29rVHlwZXNEZXYoKTtcbiAgICAgICAgcmV0dXJuIHJlcmVuZGVyVHJhbnNpdGlvbigpO1xuICAgICAgfSxcbiAgICAgIHVzZVN5bmNFeHRlcm5hbFN0b3JlOiBmdW5jdGlvbiAoXG4gICAgICAgIHN1YnNjcmliZSxcbiAgICAgICAgZ2V0U25hcHNob3QsXG4gICAgICAgIGdldFNlcnZlclNuYXBzaG90XG4gICAgICApIHtcbiAgICAgICAgY3VycmVudEhvb2tOYW1lSW5EZXYgPSBcInVzZVN5bmNFeHRlcm5hbFN0b3JlXCI7XG4gICAgICAgIHdhcm5JbnZhbGlkSG9va0FjY2VzcygpO1xuICAgICAgICB1cGRhdGVIb29rVHlwZXNEZXYoKTtcbiAgICAgICAgcmV0dXJuIHVwZGF0ZVN5bmNFeHRlcm5hbFN0b3JlKFxuICAgICAgICAgIHN1YnNjcmliZSxcbiAgICAgICAgICBnZXRTbmFwc2hvdCxcbiAgICAgICAgICBnZXRTZXJ2ZXJTbmFwc2hvdFxuICAgICAgICApO1xuICAgICAgfSxcbiAgICAgIHVzZUlkOiBmdW5jdGlvbiAoKSB7XG4gICAgICAgIGN1cnJlbnRIb29rTmFtZUluRGV2ID0gXCJ1c2VJZFwiO1xuICAgICAgICB3YXJuSW52YWxpZEhvb2tBY2Nlc3MoKTtcbiAgICAgICAgdXBkYXRlSG9va1R5cGVzRGV2KCk7XG4gICAgICAgIHJldHVybiB1cGRhdGVXb3JrSW5Qcm9ncmVzc0hvb2soKS5tZW1vaXplZFN0YXRlO1xuICAgICAgfSxcbiAgICAgIHVzZUZvcm1TdGF0ZTogZnVuY3Rpb24gKGFjdGlvbikge1xuICAgICAgICBjdXJyZW50SG9va05hbWVJbkRldiA9IFwidXNlRm9ybVN0YXRlXCI7XG4gICAgICAgIHdhcm5JbnZhbGlkSG9va0FjY2VzcygpO1xuICAgICAgICB1cGRhdGVIb29rVHlwZXNEZXYoKTtcbiAgICAgICAgcmV0dXJuIHJlcmVuZGVyQWN0aW9uU3RhdGUoYWN0aW9uKTtcbiAgICAgIH0sXG4gICAgICB1c2VBY3Rpb25TdGF0ZTogZnVuY3Rpb24gKGFjdGlvbikge1xuICAgICAgICBjdXJyZW50SG9va05hbWVJbkRldiA9IFwidXNlQWN0aW9uU3RhdGVcIjtcbiAgICAgICAgd2FybkludmFsaWRIb29rQWNjZXNzKCk7XG4gICAgICAgIHVwZGF0ZUhvb2tUeXBlc0RldigpO1xuICAgICAgICByZXR1cm4gcmVyZW5kZXJBY3Rpb25TdGF0ZShhY3Rpb24pO1xuICAgICAgfSxcbiAgICAgIHVzZU9wdGltaXN0aWM6IGZ1bmN0aW9uIChwYXNzdGhyb3VnaCwgcmVkdWNlcikge1xuICAgICAgICBjdXJyZW50SG9va05hbWVJbkRldiA9IFwidXNlT3B0aW1pc3RpY1wiO1xuICAgICAgICB3YXJuSW52YWxpZEhvb2tBY2Nlc3MoKTtcbiAgICAgICAgdXBkYXRlSG9va1R5cGVzRGV2KCk7XG4gICAgICAgIHJldHVybiByZXJlbmRlck9wdGltaXN0aWMocGFzc3Rocm91Z2gsIHJlZHVjZXIpO1xuICAgICAgfSxcbiAgICAgIHVzZU1lbW9DYWNoZTogZnVuY3Rpb24gKHNpemUpIHtcbiAgICAgICAgd2FybkludmFsaWRIb29rQWNjZXNzKCk7XG4gICAgICAgIHJldHVybiB1c2VNZW1vQ2FjaGUoc2l6ZSk7XG4gICAgICB9LFxuICAgICAgdXNlSG9zdFRyYW5zaXRpb25TdGF0dXM6IHVzZUhvc3RUcmFuc2l0aW9uU3RhdHVzLFxuICAgICAgdXNlQ2FjaGVSZWZyZXNoOiBmdW5jdGlvbiAoKSB7XG4gICAgICAgIGN1cnJlbnRIb29rTmFtZUluRGV2ID0gXCJ1c2VDYWNoZVJlZnJlc2hcIjtcbiAgICAgICAgdXBkYXRlSG9va1R5cGVzRGV2KCk7XG4gICAgICAgIHJldHVybiB1cGRhdGVXb3JrSW5Qcm9ncmVzc0hvb2soKS5tZW1vaXplZFN0YXRlO1xuICAgICAgfVxuICAgIH07XG4gICAgdmFyIGNhbGxDb21wb25lbnQgPSB7XG4gICAgICAgIFwicmVhY3Qtc3RhY2stYm90dG9tLWZyYW1lXCI6IGZ1bmN0aW9uIChDb21wb25lbnQsIHByb3BzLCBzZWNvbmRBcmcpIHtcbiAgICAgICAgICB2YXIgd2FzUmVuZGVyaW5nID0gaXNSZW5kZXJpbmc7XG4gICAgICAgICAgaXNSZW5kZXJpbmcgPSAhMDtcbiAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgcmV0dXJuIENvbXBvbmVudChwcm9wcywgc2Vjb25kQXJnKTtcbiAgICAgICAgICB9IGZpbmFsbHkge1xuICAgICAgICAgICAgaXNSZW5kZXJpbmcgPSB3YXNSZW5kZXJpbmc7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgY2FsbENvbXBvbmVudEluREVWID1cbiAgICAgICAgY2FsbENvbXBvbmVudFtcInJlYWN0LXN0YWNrLWJvdHRvbS1mcmFtZVwiXS5iaW5kKGNhbGxDb21wb25lbnQpLFxuICAgICAgY2FsbFJlbmRlciA9IHtcbiAgICAgICAgXCJyZWFjdC1zdGFjay1ib3R0b20tZnJhbWVcIjogZnVuY3Rpb24gKGluc3RhbmNlKSB7XG4gICAgICAgICAgdmFyIHdhc1JlbmRlcmluZyA9IGlzUmVuZGVyaW5nO1xuICAgICAgICAgIGlzUmVuZGVyaW5nID0gITA7XG4gICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIHJldHVybiBpbnN0YW5jZS5yZW5kZXIoKTtcbiAgICAgICAgICB9IGZpbmFsbHkge1xuICAgICAgICAgICAgaXNSZW5kZXJpbmcgPSB3YXNSZW5kZXJpbmc7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgY2FsbFJlbmRlckluREVWID0gY2FsbFJlbmRlcltcInJlYWN0LXN0YWNrLWJvdHRvbS1mcmFtZVwiXS5iaW5kKGNhbGxSZW5kZXIpLFxuICAgICAgY2FsbENvbXBvbmVudERpZE1vdW50ID0ge1xuICAgICAgICBcInJlYWN0LXN0YWNrLWJvdHRvbS1mcmFtZVwiOiBmdW5jdGlvbiAoZmluaXNoZWRXb3JrLCBpbnN0YW5jZSkge1xuICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICBpbnN0YW5jZS5jb21wb25lbnREaWRNb3VudCgpO1xuICAgICAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgICAgICBjYXB0dXJlQ29tbWl0UGhhc2VFcnJvcihmaW5pc2hlZFdvcmssIGZpbmlzaGVkV29yay5yZXR1cm4sIGVycm9yKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBjYWxsQ29tcG9uZW50RGlkTW91bnRJbkRFViA9IGNhbGxDb21wb25lbnREaWRNb3VudFtcbiAgICAgICAgXCJyZWFjdC1zdGFjay1ib3R0b20tZnJhbWVcIlxuICAgICAgXS5iaW5kKGNhbGxDb21wb25lbnREaWRNb3VudCksXG4gICAgICBjYWxsQ29tcG9uZW50RGlkVXBkYXRlID0ge1xuICAgICAgICBcInJlYWN0LXN0YWNrLWJvdHRvbS1mcmFtZVwiOiBmdW5jdGlvbiAoXG4gICAgICAgICAgZmluaXNoZWRXb3JrLFxuICAgICAgICAgIGluc3RhbmNlLFxuICAgICAgICAgIHByZXZQcm9wcyxcbiAgICAgICAgICBwcmV2U3RhdGUsXG4gICAgICAgICAgc25hcHNob3RcbiAgICAgICAgKSB7XG4gICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIGluc3RhbmNlLmNvbXBvbmVudERpZFVwZGF0ZShwcmV2UHJvcHMsIHByZXZTdGF0ZSwgc25hcHNob3QpO1xuICAgICAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgICAgICBjYXB0dXJlQ29tbWl0UGhhc2VFcnJvcihmaW5pc2hlZFdvcmssIGZpbmlzaGVkV29yay5yZXR1cm4sIGVycm9yKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBjYWxsQ29tcG9uZW50RGlkVXBkYXRlSW5ERVYgPSBjYWxsQ29tcG9uZW50RGlkVXBkYXRlW1xuICAgICAgICBcInJlYWN0LXN0YWNrLWJvdHRvbS1mcmFtZVwiXG4gICAgICBdLmJpbmQoY2FsbENvbXBvbmVudERpZFVwZGF0ZSksXG4gICAgICBjYWxsQ29tcG9uZW50RGlkQ2F0Y2ggPSB7XG4gICAgICAgIFwicmVhY3Qtc3RhY2stYm90dG9tLWZyYW1lXCI6IGZ1bmN0aW9uIChpbnN0YW5jZSwgZXJyb3JJbmZvKSB7XG4gICAgICAgICAgdmFyIHN0YWNrID0gZXJyb3JJbmZvLnN0YWNrO1xuICAgICAgICAgIGluc3RhbmNlLmNvbXBvbmVudERpZENhdGNoKGVycm9ySW5mby52YWx1ZSwge1xuICAgICAgICAgICAgY29tcG9uZW50U3RhY2s6IG51bGwgIT09IHN0YWNrID8gc3RhY2sgOiBcIlwiXG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBjYWxsQ29tcG9uZW50RGlkQ2F0Y2hJbkRFViA9IGNhbGxDb21wb25lbnREaWRDYXRjaFtcbiAgICAgICAgXCJyZWFjdC1zdGFjay1ib3R0b20tZnJhbWVcIlxuICAgICAgXS5iaW5kKGNhbGxDb21wb25lbnREaWRDYXRjaCksXG4gICAgICBjYWxsQ29tcG9uZW50V2lsbFVubW91bnQgPSB7XG4gICAgICAgIFwicmVhY3Qtc3RhY2stYm90dG9tLWZyYW1lXCI6IGZ1bmN0aW9uIChcbiAgICAgICAgICBjdXJyZW50LFxuICAgICAgICAgIG5lYXJlc3RNb3VudGVkQW5jZXN0b3IsXG4gICAgICAgICAgaW5zdGFuY2VcbiAgICAgICAgKSB7XG4gICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIGluc3RhbmNlLmNvbXBvbmVudFdpbGxVbm1vdW50KCk7XG4gICAgICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgICAgIGNhcHR1cmVDb21taXRQaGFzZUVycm9yKGN1cnJlbnQsIG5lYXJlc3RNb3VudGVkQW5jZXN0b3IsIGVycm9yKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBjYWxsQ29tcG9uZW50V2lsbFVubW91bnRJbkRFViA9IGNhbGxDb21wb25lbnRXaWxsVW5tb3VudFtcbiAgICAgICAgXCJyZWFjdC1zdGFjay1ib3R0b20tZnJhbWVcIlxuICAgICAgXS5iaW5kKGNhbGxDb21wb25lbnRXaWxsVW5tb3VudCksXG4gICAgICBjYWxsQ3JlYXRlID0ge1xuICAgICAgICBcInJlYWN0LXN0YWNrLWJvdHRvbS1mcmFtZVwiOiBmdW5jdGlvbiAoZWZmZWN0KSB7XG4gICAgICAgICAgbnVsbCAhPSBlZmZlY3QucmVzb3VyY2VLaW5kICYmXG4gICAgICAgICAgICBjb25zb2xlLmVycm9yKFxuICAgICAgICAgICAgICBcIkV4cGVjdGVkIG9ubHkgU2ltcGxlRWZmZWN0cyB3aGVuIGVuYWJsZVVzZUVmZmVjdENSVURPdmVybG9hZCBpcyBkaXNhYmxlZCwgZ290ICVzXCIsXG4gICAgICAgICAgICAgIGVmZmVjdC5yZXNvdXJjZUtpbmRcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgdmFyIGNyZWF0ZSA9IGVmZmVjdC5jcmVhdGU7XG4gICAgICAgICAgZWZmZWN0ID0gZWZmZWN0Lmluc3Q7XG4gICAgICAgICAgY3JlYXRlID0gY3JlYXRlKCk7XG4gICAgICAgICAgcmV0dXJuIChlZmZlY3QuZGVzdHJveSA9IGNyZWF0ZSk7XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBjYWxsQ3JlYXRlSW5ERVYgPSBjYWxsQ3JlYXRlW1wicmVhY3Qtc3RhY2stYm90dG9tLWZyYW1lXCJdLmJpbmQoY2FsbENyZWF0ZSksXG4gICAgICBjYWxsRGVzdHJveSA9IHtcbiAgICAgICAgXCJyZWFjdC1zdGFjay1ib3R0b20tZnJhbWVcIjogZnVuY3Rpb24gKFxuICAgICAgICAgIGN1cnJlbnQsXG4gICAgICAgICAgbmVhcmVzdE1vdW50ZWRBbmNlc3RvcixcbiAgICAgICAgICBkZXN0cm95XG4gICAgICAgICkge1xuICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICBkZXN0cm95KCk7XG4gICAgICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgICAgIGNhcHR1cmVDb21taXRQaGFzZUVycm9yKGN1cnJlbnQsIG5lYXJlc3RNb3VudGVkQW5jZXN0b3IsIGVycm9yKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBjYWxsRGVzdHJveUluREVWID1cbiAgICAgICAgY2FsbERlc3Ryb3lbXCJyZWFjdC1zdGFjay1ib3R0b20tZnJhbWVcIl0uYmluZChjYWxsRGVzdHJveSksXG4gICAgICBjYWxsTGF6eUluaXQgPSB7XG4gICAgICAgIFwicmVhY3Qtc3RhY2stYm90dG9tLWZyYW1lXCI6IGZ1bmN0aW9uIChsYXp5KSB7XG4gICAgICAgICAgdmFyIGluaXQgPSBsYXp5Ll9pbml0O1xuICAgICAgICAgIHJldHVybiBpbml0KGxhenkuX3BheWxvYWQpO1xuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgY2FsbExhenlJbml0SW5ERVYgPVxuICAgICAgICBjYWxsTGF6eUluaXRbXCJyZWFjdC1zdGFjay1ib3R0b20tZnJhbWVcIl0uYmluZChjYWxsTGF6eUluaXQpLFxuICAgICAgdGhlbmFibGVTdGF0ZSA9IG51bGwsXG4gICAgICB0aGVuYWJsZUluZGV4Q291bnRlciA9IDAsXG4gICAgICBjdXJyZW50RGVidWdJbmZvID0gbnVsbCxcbiAgICAgIGRpZFdhcm5BYm91dE1hcHM7XG4gICAgdmFyIGRpZFdhcm5BYm91dEdlbmVyYXRvcnMgPSAoZGlkV2FybkFib3V0TWFwcyA9ICExKTtcbiAgICB2YXIgb3duZXJIYXNLZXlVc2VXYXJuaW5nID0ge307XG4gICAgdmFyIG93bmVySGFzRnVuY3Rpb25UeXBlV2FybmluZyA9IHt9O1xuICAgIHZhciBvd25lckhhc1N5bWJvbFR5cGVXYXJuaW5nID0ge307XG4gICAgd2FybkZvck1pc3NpbmdLZXkgPSBmdW5jdGlvbiAocmV0dXJuRmliZXIsIHdvcmtJblByb2dyZXNzLCBjaGlsZCkge1xuICAgICAgaWYgKFxuICAgICAgICBudWxsICE9PSBjaGlsZCAmJlxuICAgICAgICBcIm9iamVjdFwiID09PSB0eXBlb2YgY2hpbGQgJiZcbiAgICAgICAgY2hpbGQuX3N0b3JlICYmXG4gICAgICAgICgoIWNoaWxkLl9zdG9yZS52YWxpZGF0ZWQgJiYgbnVsbCA9PSBjaGlsZC5rZXkpIHx8XG4gICAgICAgICAgMiA9PT0gY2hpbGQuX3N0b3JlLnZhbGlkYXRlZClcbiAgICAgICkge1xuICAgICAgICBpZiAoXCJvYmplY3RcIiAhPT0gdHlwZW9mIGNoaWxkLl9zdG9yZSlcbiAgICAgICAgICB0aHJvdyBFcnJvcihcbiAgICAgICAgICAgIFwiUmVhY3QgQ29tcG9uZW50IGluIHdhcm5Gb3JNaXNzaW5nS2V5IHNob3VsZCBoYXZlIGEgX3N0b3JlLiBUaGlzIGVycm9yIGlzIGxpa2VseSBjYXVzZWQgYnkgYSBidWcgaW4gUmVhY3QuIFBsZWFzZSBmaWxlIGFuIGlzc3VlLlwiXG4gICAgICAgICAgKTtcbiAgICAgICAgY2hpbGQuX3N0b3JlLnZhbGlkYXRlZCA9IDE7XG4gICAgICAgIHZhciBjb21wb25lbnROYW1lID0gZ2V0Q29tcG9uZW50TmFtZUZyb21GaWJlcihyZXR1cm5GaWJlciksXG4gICAgICAgICAgY29tcG9uZW50S2V5ID0gY29tcG9uZW50TmFtZSB8fCBcIm51bGxcIjtcbiAgICAgICAgaWYgKCFvd25lckhhc0tleVVzZVdhcm5pbmdbY29tcG9uZW50S2V5XSkge1xuICAgICAgICAgIG93bmVySGFzS2V5VXNlV2FybmluZ1tjb21wb25lbnRLZXldID0gITA7XG4gICAgICAgICAgY2hpbGQgPSBjaGlsZC5fb3duZXI7XG4gICAgICAgICAgcmV0dXJuRmliZXIgPSByZXR1cm5GaWJlci5fZGVidWdPd25lcjtcbiAgICAgICAgICB2YXIgY3VycmVudENvbXBvbmVudEVycm9ySW5mbyA9IFwiXCI7XG4gICAgICAgICAgcmV0dXJuRmliZXIgJiZcbiAgICAgICAgICAgIFwibnVtYmVyXCIgPT09IHR5cGVvZiByZXR1cm5GaWJlci50YWcgJiZcbiAgICAgICAgICAgIChjb21wb25lbnRLZXkgPSBnZXRDb21wb25lbnROYW1lRnJvbUZpYmVyKHJldHVybkZpYmVyKSkgJiZcbiAgICAgICAgICAgIChjdXJyZW50Q29tcG9uZW50RXJyb3JJbmZvID1cbiAgICAgICAgICAgICAgXCJcXG5cXG5DaGVjayB0aGUgcmVuZGVyIG1ldGhvZCBvZiBgXCIgKyBjb21wb25lbnRLZXkgKyBcImAuXCIpO1xuICAgICAgICAgIGN1cnJlbnRDb21wb25lbnRFcnJvckluZm8gfHxcbiAgICAgICAgICAgIChjb21wb25lbnROYW1lICYmXG4gICAgICAgICAgICAgIChjdXJyZW50Q29tcG9uZW50RXJyb3JJbmZvID1cbiAgICAgICAgICAgICAgICBcIlxcblxcbkNoZWNrIHRoZSB0b3AtbGV2ZWwgcmVuZGVyIGNhbGwgdXNpbmcgPFwiICtcbiAgICAgICAgICAgICAgICBjb21wb25lbnROYW1lICtcbiAgICAgICAgICAgICAgICBcIj4uXCIpKTtcbiAgICAgICAgICB2YXIgY2hpbGRPd25lckFwcGVuZGl4ID0gXCJcIjtcbiAgICAgICAgICBudWxsICE9IGNoaWxkICYmXG4gICAgICAgICAgICByZXR1cm5GaWJlciAhPT0gY2hpbGQgJiZcbiAgICAgICAgICAgICgoY29tcG9uZW50TmFtZSA9IG51bGwpLFxuICAgICAgICAgICAgXCJudW1iZXJcIiA9PT0gdHlwZW9mIGNoaWxkLnRhZ1xuICAgICAgICAgICAgICA/IChjb21wb25lbnROYW1lID0gZ2V0Q29tcG9uZW50TmFtZUZyb21GaWJlcihjaGlsZCkpXG4gICAgICAgICAgICAgIDogXCJzdHJpbmdcIiA9PT0gdHlwZW9mIGNoaWxkLm5hbWUgJiYgKGNvbXBvbmVudE5hbWUgPSBjaGlsZC5uYW1lKSxcbiAgICAgICAgICAgIGNvbXBvbmVudE5hbWUgJiZcbiAgICAgICAgICAgICAgKGNoaWxkT3duZXJBcHBlbmRpeCA9XG4gICAgICAgICAgICAgICAgXCIgSXQgd2FzIHBhc3NlZCBhIGNoaWxkIGZyb20gXCIgKyBjb21wb25lbnROYW1lICsgXCIuXCIpKTtcbiAgICAgICAgICBydW5XaXRoRmliZXJJbkRFVih3b3JrSW5Qcm9ncmVzcywgZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgY29uc29sZS5lcnJvcihcbiAgICAgICAgICAgICAgJ0VhY2ggY2hpbGQgaW4gYSBsaXN0IHNob3VsZCBoYXZlIGEgdW5pcXVlIFwia2V5XCIgcHJvcC4lcyVzIFNlZSBodHRwczovL3JlYWN0LmRldi9saW5rL3dhcm5pbmcta2V5cyBmb3IgbW9yZSBpbmZvcm1hdGlvbi4nLFxuICAgICAgICAgICAgICBjdXJyZW50Q29tcG9uZW50RXJyb3JJbmZvLFxuICAgICAgICAgICAgICBjaGlsZE93bmVyQXBwZW5kaXhcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9O1xuICAgIHZhciByZWNvbmNpbGVDaGlsZEZpYmVycyA9IGNyZWF0ZUNoaWxkUmVjb25jaWxlcighMCksXG4gICAgICBtb3VudENoaWxkRmliZXJzID0gY3JlYXRlQ2hpbGRSZWNvbmNpbGVyKCExKSxcbiAgICAgIHN1c3BlbnNlSGFuZGxlclN0YWNrQ3Vyc29yID0gY3JlYXRlQ3Vyc29yKG51bGwpLFxuICAgICAgc2hlbGxCb3VuZGFyeSA9IG51bGwsXG4gICAgICBTdWJ0cmVlU3VzcGVuc2VDb250ZXh0TWFzayA9IDEsXG4gICAgICBGb3JjZVN1c3BlbnNlRmFsbGJhY2sgPSAyLFxuICAgICAgc3VzcGVuc2VTdGFja0N1cnNvciA9IGNyZWF0ZUN1cnNvcigwKSxcbiAgICAgIGZha2VJbnRlcm5hbEluc3RhbmNlID0ge307XG4gICAgdmFyIGRpZFdhcm5BYm91dFN0YXRlQXNzaWdubWVudEZvckNvbXBvbmVudCA9IG5ldyBTZXQoKTtcbiAgICB2YXIgZGlkV2FybkFib3V0VW5pbml0aWFsaXplZFN0YXRlID0gbmV3IFNldCgpO1xuICAgIHZhciBkaWRXYXJuQWJvdXRHZXRTbmFwc2hvdEJlZm9yZVVwZGF0ZVdpdGhvdXREaWRVcGRhdGUgPSBuZXcgU2V0KCk7XG4gICAgdmFyIGRpZFdhcm5BYm91dExlZ2FjeUxpZmVjeWNsZXNBbmREZXJpdmVkU3RhdGUgPSBuZXcgU2V0KCk7XG4gICAgdmFyIGRpZFdhcm5BYm91dERpcmVjdGx5QXNzaWduaW5nUHJvcHNUb1N0YXRlID0gbmV3IFNldCgpO1xuICAgIHZhciBkaWRXYXJuQWJvdXRVbmRlZmluZWREZXJpdmVkU3RhdGUgPSBuZXcgU2V0KCk7XG4gICAgdmFyIGRpZFdhcm5BYm91dENvbnRleHRUeXBlcyQxID0gbmV3IFNldCgpO1xuICAgIHZhciBkaWRXYXJuQWJvdXRDaGlsZENvbnRleHRUeXBlcyA9IG5ldyBTZXQoKTtcbiAgICB2YXIgZGlkV2FybkFib3V0SW52YWxpZGF0ZUNvbnRleHRUeXBlID0gbmV3IFNldCgpO1xuICAgIHZhciBkaWRXYXJuT25JbnZhbGlkQ2FsbGJhY2sgPSBuZXcgU2V0KCk7XG4gICAgT2JqZWN0LmZyZWV6ZShmYWtlSW50ZXJuYWxJbnN0YW5jZSk7XG4gICAgdmFyIGNsYXNzQ29tcG9uZW50VXBkYXRlciA9IHtcbiAgICAgICAgZW5xdWV1ZVNldFN0YXRlOiBmdW5jdGlvbiAoaW5zdCwgcGF5bG9hZCwgY2FsbGJhY2spIHtcbiAgICAgICAgICBpbnN0ID0gaW5zdC5fcmVhY3RJbnRlcm5hbHM7XG4gICAgICAgICAgdmFyIGxhbmUgPSByZXF1ZXN0VXBkYXRlTGFuZShpbnN0KSxcbiAgICAgICAgICAgIHVwZGF0ZSA9IGNyZWF0ZVVwZGF0ZShsYW5lKTtcbiAgICAgICAgICB1cGRhdGUucGF5bG9hZCA9IHBheWxvYWQ7XG4gICAgICAgICAgdm9pZCAwICE9PSBjYWxsYmFjayAmJlxuICAgICAgICAgICAgbnVsbCAhPT0gY2FsbGJhY2sgJiZcbiAgICAgICAgICAgICh3YXJuT25JbnZhbGlkQ2FsbGJhY2soY2FsbGJhY2spLCAodXBkYXRlLmNhbGxiYWNrID0gY2FsbGJhY2spKTtcbiAgICAgICAgICBwYXlsb2FkID0gZW5xdWV1ZVVwZGF0ZShpbnN0LCB1cGRhdGUsIGxhbmUpO1xuICAgICAgICAgIG51bGwgIT09IHBheWxvYWQgJiZcbiAgICAgICAgICAgIChzY2hlZHVsZVVwZGF0ZU9uRmliZXIocGF5bG9hZCwgaW5zdCwgbGFuZSksXG4gICAgICAgICAgICBlbnRhbmdsZVRyYW5zaXRpb25zKHBheWxvYWQsIGluc3QsIGxhbmUpKTtcbiAgICAgICAgICBtYXJrU3RhdGVVcGRhdGVTY2hlZHVsZWQoaW5zdCwgbGFuZSk7XG4gICAgICAgIH0sXG4gICAgICAgIGVucXVldWVSZXBsYWNlU3RhdGU6IGZ1bmN0aW9uIChpbnN0LCBwYXlsb2FkLCBjYWxsYmFjaykge1xuICAgICAgICAgIGluc3QgPSBpbnN0Ll9yZWFjdEludGVybmFscztcbiAgICAgICAgICB2YXIgbGFuZSA9IHJlcXVlc3RVcGRhdGVMYW5lKGluc3QpLFxuICAgICAgICAgICAgdXBkYXRlID0gY3JlYXRlVXBkYXRlKGxhbmUpO1xuICAgICAgICAgIHVwZGF0ZS50YWcgPSBSZXBsYWNlU3RhdGU7XG4gICAgICAgICAgdXBkYXRlLnBheWxvYWQgPSBwYXlsb2FkO1xuICAgICAgICAgIHZvaWQgMCAhPT0gY2FsbGJhY2sgJiZcbiAgICAgICAgICAgIG51bGwgIT09IGNhbGxiYWNrICYmXG4gICAgICAgICAgICAod2Fybk9uSW52YWxpZENhbGxiYWNrKGNhbGxiYWNrKSwgKHVwZGF0ZS5jYWxsYmFjayA9IGNhbGxiYWNrKSk7XG4gICAgICAgICAgcGF5bG9hZCA9IGVucXVldWVVcGRhdGUoaW5zdCwgdXBkYXRlLCBsYW5lKTtcbiAgICAgICAgICBudWxsICE9PSBwYXlsb2FkICYmXG4gICAgICAgICAgICAoc2NoZWR1bGVVcGRhdGVPbkZpYmVyKHBheWxvYWQsIGluc3QsIGxhbmUpLFxuICAgICAgICAgICAgZW50YW5nbGVUcmFuc2l0aW9ucyhwYXlsb2FkLCBpbnN0LCBsYW5lKSk7XG4gICAgICAgICAgbWFya1N0YXRlVXBkYXRlU2NoZWR1bGVkKGluc3QsIGxhbmUpO1xuICAgICAgICB9LFxuICAgICAgICBlbnF1ZXVlRm9yY2VVcGRhdGU6IGZ1bmN0aW9uIChpbnN0LCBjYWxsYmFjaykge1xuICAgICAgICAgIGluc3QgPSBpbnN0Ll9yZWFjdEludGVybmFscztcbiAgICAgICAgICB2YXIgbGFuZSA9IHJlcXVlc3RVcGRhdGVMYW5lKGluc3QpLFxuICAgICAgICAgICAgdXBkYXRlID0gY3JlYXRlVXBkYXRlKGxhbmUpO1xuICAgICAgICAgIHVwZGF0ZS50YWcgPSBGb3JjZVVwZGF0ZTtcbiAgICAgICAgICB2b2lkIDAgIT09IGNhbGxiYWNrICYmXG4gICAgICAgICAgICBudWxsICE9PSBjYWxsYmFjayAmJlxuICAgICAgICAgICAgKHdhcm5PbkludmFsaWRDYWxsYmFjayhjYWxsYmFjayksICh1cGRhdGUuY2FsbGJhY2sgPSBjYWxsYmFjaykpO1xuICAgICAgICAgIGNhbGxiYWNrID0gZW5xdWV1ZVVwZGF0ZShpbnN0LCB1cGRhdGUsIGxhbmUpO1xuICAgICAgICAgIG51bGwgIT09IGNhbGxiYWNrICYmXG4gICAgICAgICAgICAoc2NoZWR1bGVVcGRhdGVPbkZpYmVyKGNhbGxiYWNrLCBpbnN0LCBsYW5lKSxcbiAgICAgICAgICAgIGVudGFuZ2xlVHJhbnNpdGlvbnMoY2FsbGJhY2ssIGluc3QsIGxhbmUpKTtcbiAgICAgICAgICBudWxsICE9PSBpbmplY3RlZFByb2ZpbGluZ0hvb2tzICYmXG4gICAgICAgICAgICBcImZ1bmN0aW9uXCIgPT09XG4gICAgICAgICAgICAgIHR5cGVvZiBpbmplY3RlZFByb2ZpbGluZ0hvb2tzLm1hcmtGb3JjZVVwZGF0ZVNjaGVkdWxlZCAmJlxuICAgICAgICAgICAgaW5qZWN0ZWRQcm9maWxpbmdIb29rcy5tYXJrRm9yY2VVcGRhdGVTY2hlZHVsZWQoaW5zdCwgbGFuZSk7XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICByZXBvcnRHbG9iYWxFcnJvciA9XG4gICAgICAgIFwiZnVuY3Rpb25cIiA9PT0gdHlwZW9mIHJlcG9ydEVycm9yXG4gICAgICAgICAgPyByZXBvcnRFcnJvclxuICAgICAgICAgIDogZnVuY3Rpb24gKGVycm9yKSB7XG4gICAgICAgICAgICAgIGlmIChcbiAgICAgICAgICAgICAgICBcIm9iamVjdFwiID09PSB0eXBlb2Ygd2luZG93ICYmXG4gICAgICAgICAgICAgICAgXCJmdW5jdGlvblwiID09PSB0eXBlb2Ygd2luZG93LkVycm9yRXZlbnRcbiAgICAgICAgICAgICAgKSB7XG4gICAgICAgICAgICAgICAgdmFyIGV2ZW50ID0gbmV3IHdpbmRvdy5FcnJvckV2ZW50KFwiZXJyb3JcIiwge1xuICAgICAgICAgICAgICAgICAgYnViYmxlczogITAsXG4gICAgICAgICAgICAgICAgICBjYW5jZWxhYmxlOiAhMCxcbiAgICAgICAgICAgICAgICAgIG1lc3NhZ2U6XG4gICAgICAgICAgICAgICAgICAgIFwib2JqZWN0XCIgPT09IHR5cGVvZiBlcnJvciAmJlxuICAgICAgICAgICAgICAgICAgICBudWxsICE9PSBlcnJvciAmJlxuICAgICAgICAgICAgICAgICAgICBcInN0cmluZ1wiID09PSB0eXBlb2YgZXJyb3IubWVzc2FnZVxuICAgICAgICAgICAgICAgICAgICAgID8gU3RyaW5nKGVycm9yLm1lc3NhZ2UpXG4gICAgICAgICAgICAgICAgICAgICAgOiBTdHJpbmcoZXJyb3IpLFxuICAgICAgICAgICAgICAgICAgZXJyb3I6IGVycm9yXG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgaWYgKCF3aW5kb3cuZGlzcGF0Y2hFdmVudChldmVudCkpIHJldHVybjtcbiAgICAgICAgICAgICAgfSBlbHNlIGlmIChcbiAgICAgICAgICAgICAgICBcIm9iamVjdFwiID09PSB0eXBlb2YgcHJvY2VzcyAmJlxuICAgICAgICAgICAgICAgIFwiZnVuY3Rpb25cIiA9PT0gdHlwZW9mIHByb2Nlc3MuZW1pdFxuICAgICAgICAgICAgICApIHtcbiAgICAgICAgICAgICAgICBwcm9jZXNzLmVtaXQoXCJ1bmNhdWdodEV4Y2VwdGlvblwiLCBlcnJvcik7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoZXJyb3IpO1xuICAgICAgICAgICAgfSxcbiAgICAgIGNvbXBvbmVudE5hbWUgPSBudWxsLFxuICAgICAgZXJyb3JCb3VuZGFyeU5hbWUgPSBudWxsLFxuICAgICAgU2VsZWN0aXZlSHlkcmF0aW9uRXhjZXB0aW9uID0gRXJyb3IoXG4gICAgICAgIFwiVGhpcyBpcyBub3QgYSByZWFsIGVycm9yLiBJdCdzIGFuIGltcGxlbWVudGF0aW9uIGRldGFpbCBvZiBSZWFjdCdzIHNlbGVjdGl2ZSBoeWRyYXRpb24gZmVhdHVyZS4gSWYgdGhpcyBsZWFrcyBpbnRvIHVzZXJzcGFjZSwgaXQncyBhIGJ1ZyBpbiBSZWFjdC4gUGxlYXNlIGZpbGUgYW4gaXNzdWUuXCJcbiAgICAgICksXG4gICAgICBkaWRSZWNlaXZlVXBkYXRlID0gITE7XG4gICAgdmFyIGRpZFdhcm5BYm91dEJhZENsYXNzID0ge307XG4gICAgdmFyIGRpZFdhcm5BYm91dENvbnRleHRUeXBlT25GdW5jdGlvbkNvbXBvbmVudCA9IHt9O1xuICAgIHZhciBkaWRXYXJuQWJvdXRDb250ZXh0VHlwZXMgPSB7fTtcbiAgICB2YXIgZGlkV2FybkFib3V0R2V0RGVyaXZlZFN0YXRlT25GdW5jdGlvbkNvbXBvbmVudCA9IHt9O1xuICAgIHZhciBkaWRXYXJuQWJvdXRSZWFzc2lnbmluZ1Byb3BzID0gITE7XG4gICAgdmFyIGRpZFdhcm5BYm91dFJldmVhbE9yZGVyID0ge307XG4gICAgdmFyIGRpZFdhcm5BYm91dFRhaWxPcHRpb25zID0ge307XG4gICAgdmFyIFNVU1BFTkRFRF9NQVJLRVIgPSB7XG4gICAgICAgIGRlaHlkcmF0ZWQ6IG51bGwsXG4gICAgICAgIHRyZWVDb250ZXh0OiBudWxsLFxuICAgICAgICByZXRyeUxhbmU6IDAsXG4gICAgICAgIGh5ZHJhdGlvbkVycm9yczogbnVsbFxuICAgICAgfSxcbiAgICAgIGhhc1dhcm5lZEFib3V0VXNpbmdOb1ZhbHVlUHJvcE9uQ29udGV4dFByb3ZpZGVyID0gITEsXG4gICAgICBkaWRXYXJuQWJvdXRVbmRlZmluZWRTbmFwc2hvdEJlZm9yZVVwZGF0ZSA9IG51bGw7XG4gICAgZGlkV2FybkFib3V0VW5kZWZpbmVkU25hcHNob3RCZWZvcmVVcGRhdGUgPSBuZXcgU2V0KCk7XG4gICAgdmFyIG9mZnNjcmVlblN1YnRyZWVJc0hpZGRlbiA9ICExLFxuICAgICAgb2Zmc2NyZWVuU3VidHJlZVdhc0hpZGRlbiA9ICExLFxuICAgICAgbmVlZHNGb3JtUmVzZXQgPSAhMSxcbiAgICAgIFBvc3NpYmx5V2Vha1NldCA9IFwiZnVuY3Rpb25cIiA9PT0gdHlwZW9mIFdlYWtTZXQgPyBXZWFrU2V0IDogU2V0LFxuICAgICAgbmV4dEVmZmVjdCA9IG51bGwsXG4gICAgICBpblByb2dyZXNzTGFuZXMgPSBudWxsLFxuICAgICAgaW5Qcm9ncmVzc1Jvb3QgPSBudWxsLFxuICAgICAgaG9zdFBhcmVudCA9IG51bGwsXG4gICAgICBob3N0UGFyZW50SXNDb250YWluZXIgPSAhMSxcbiAgICAgIGN1cnJlbnRIb2lzdGFibGVSb290ID0gbnVsbCxcbiAgICAgIHN1c3BlbnNleUNvbW1pdEZsYWcgPSA4MTkyLFxuICAgICAgRGVmYXVsdEFzeW5jRGlzcGF0Y2hlciA9IHtcbiAgICAgICAgZ2V0Q2FjaGVGb3JUeXBlOiBmdW5jdGlvbiAocmVzb3VyY2VUeXBlKSB7XG4gICAgICAgICAgdmFyIGNhY2hlID0gcmVhZENvbnRleHQoQ2FjaGVDb250ZXh0KSxcbiAgICAgICAgICAgIGNhY2hlRm9yVHlwZSA9IGNhY2hlLmRhdGEuZ2V0KHJlc291cmNlVHlwZSk7XG4gICAgICAgICAgdm9pZCAwID09PSBjYWNoZUZvclR5cGUgJiZcbiAgICAgICAgICAgICgoY2FjaGVGb3JUeXBlID0gcmVzb3VyY2VUeXBlKCkpLFxuICAgICAgICAgICAgY2FjaGUuZGF0YS5zZXQocmVzb3VyY2VUeXBlLCBjYWNoZUZvclR5cGUpKTtcbiAgICAgICAgICByZXR1cm4gY2FjaGVGb3JUeXBlO1xuICAgICAgICB9LFxuICAgICAgICBnZXRPd25lcjogZnVuY3Rpb24gKCkge1xuICAgICAgICAgIHJldHVybiBjdXJyZW50O1xuICAgICAgICB9XG4gICAgICB9O1xuICAgIGlmIChcImZ1bmN0aW9uXCIgPT09IHR5cGVvZiBTeW1ib2wgJiYgU3ltYm9sLmZvcikge1xuICAgICAgdmFyIHN5bWJvbEZvciA9IFN5bWJvbC5mb3I7XG4gICAgICBzeW1ib2xGb3IoXCJzZWxlY3Rvci5jb21wb25lbnRcIik7XG4gICAgICBzeW1ib2xGb3IoXCJzZWxlY3Rvci5oYXNfcHNldWRvX2NsYXNzXCIpO1xuICAgICAgc3ltYm9sRm9yKFwic2VsZWN0b3Iucm9sZVwiKTtcbiAgICAgIHN5bWJvbEZvcihcInNlbGVjdG9yLnRlc3RfaWRcIik7XG4gICAgICBzeW1ib2xGb3IoXCJzZWxlY3Rvci50ZXh0XCIpO1xuICAgIH1cbiAgICB2YXIgY29tbWl0SG9va3MgPSBbXSxcbiAgICAgIFBvc3NpYmx5V2Vha01hcCA9IFwiZnVuY3Rpb25cIiA9PT0gdHlwZW9mIFdlYWtNYXAgPyBXZWFrTWFwIDogTWFwLFxuICAgICAgTm9Db250ZXh0ID0gMCxcbiAgICAgIFJlbmRlckNvbnRleHQgPSAyLFxuICAgICAgQ29tbWl0Q29udGV4dCA9IDQsXG4gICAgICBSb290SW5Qcm9ncmVzcyA9IDAsXG4gICAgICBSb290RmF0YWxFcnJvcmVkID0gMSxcbiAgICAgIFJvb3RFcnJvcmVkID0gMixcbiAgICAgIFJvb3RTdXNwZW5kZWQgPSAzLFxuICAgICAgUm9vdFN1c3BlbmRlZFdpdGhEZWxheSA9IDQsXG4gICAgICBSb290U3VzcGVuZGVkQXRUaGVTaGVsbCA9IDYsXG4gICAgICBSb290Q29tcGxldGVkID0gNSxcbiAgICAgIGV4ZWN1dGlvbkNvbnRleHQgPSBOb0NvbnRleHQsXG4gICAgICB3b3JrSW5Qcm9ncmVzc1Jvb3QgPSBudWxsLFxuICAgICAgd29ya0luUHJvZ3Jlc3MgPSBudWxsLFxuICAgICAgd29ya0luUHJvZ3Jlc3NSb290UmVuZGVyTGFuZXMgPSAwLFxuICAgICAgTm90U3VzcGVuZGVkID0gMCxcbiAgICAgIFN1c3BlbmRlZE9uRXJyb3IgPSAxLFxuICAgICAgU3VzcGVuZGVkT25EYXRhID0gMixcbiAgICAgIFN1c3BlbmRlZE9uSW1tZWRpYXRlID0gMyxcbiAgICAgIFN1c3BlbmRlZE9uSW5zdGFuY2UgPSA0LFxuICAgICAgU3VzcGVuZGVkT25JbnN0YW5jZUFuZFJlYWR5VG9Db250aW51ZSA9IDUsXG4gICAgICBTdXNwZW5kZWRPbkRlcHJlY2F0ZWRUaHJvd1Byb21pc2UgPSA2LFxuICAgICAgU3VzcGVuZGVkQW5kUmVhZHlUb0NvbnRpbnVlID0gNyxcbiAgICAgIFN1c3BlbmRlZE9uSHlkcmF0aW9uID0gOCxcbiAgICAgIFN1c3BlbmRlZE9uQWN0aW9uID0gOSxcbiAgICAgIHdvcmtJblByb2dyZXNzU3VzcGVuZGVkUmVhc29uID0gTm90U3VzcGVuZGVkLFxuICAgICAgd29ya0luUHJvZ3Jlc3NUaHJvd25WYWx1ZSA9IG51bGwsXG4gICAgICB3b3JrSW5Qcm9ncmVzc1Jvb3REaWRTa2lwU3VzcGVuZGVkU2libGluZ3MgPSAhMSxcbiAgICAgIHdvcmtJblByb2dyZXNzUm9vdElzUHJlcmVuZGVyaW5nID0gITEsXG4gICAgICB3b3JrSW5Qcm9ncmVzc1Jvb3REaWRBdHRhY2hQaW5nTGlzdGVuZXIgPSAhMSxcbiAgICAgIGVudGFuZ2xlZFJlbmRlckxhbmVzID0gMCxcbiAgICAgIHdvcmtJblByb2dyZXNzUm9vdEV4aXRTdGF0dXMgPSBSb290SW5Qcm9ncmVzcyxcbiAgICAgIHdvcmtJblByb2dyZXNzUm9vdFNraXBwZWRMYW5lcyA9IDAsXG4gICAgICB3b3JrSW5Qcm9ncmVzc1Jvb3RJbnRlcmxlYXZlZFVwZGF0ZWRMYW5lcyA9IDAsXG4gICAgICB3b3JrSW5Qcm9ncmVzc1Jvb3RQaW5nZWRMYW5lcyA9IDAsXG4gICAgICB3b3JrSW5Qcm9ncmVzc0RlZmVycmVkTGFuZSA9IDAsXG4gICAgICB3b3JrSW5Qcm9ncmVzc1N1c3BlbmRlZFJldHJ5TGFuZXMgPSAwLFxuICAgICAgd29ya0luUHJvZ3Jlc3NSb290Q29uY3VycmVudEVycm9ycyA9IG51bGwsXG4gICAgICB3b3JrSW5Qcm9ncmVzc1Jvb3RSZWNvdmVyYWJsZUVycm9ycyA9IG51bGwsXG4gICAgICB3b3JrSW5Qcm9ncmVzc1Jvb3REaWRJbmNsdWRlUmVjdXJzaXZlUmVuZGVyVXBkYXRlID0gITEsXG4gICAgICBnbG9iYWxNb3N0UmVjZW50RmFsbGJhY2tUaW1lID0gMCxcbiAgICAgIEZBTExCQUNLX1RIUk9UVExFX01TID0gMzAwLFxuICAgICAgd29ya0luUHJvZ3Jlc3NSb290UmVuZGVyVGFyZ2V0VGltZSA9IEluZmluaXR5LFxuICAgICAgUkVOREVSX1RJTUVPVVRfTVMgPSA1MDAsXG4gICAgICB3b3JrSW5Qcm9ncmVzc1RyYW5zaXRpb25zID0gbnVsbCxcbiAgICAgIGxlZ2FjeUVycm9yQm91bmRhcmllc1RoYXRBbHJlYWR5RmFpbGVkID0gbnVsbCxcbiAgICAgIElNTUVESUFURV9DT01NSVQgPSAwLFxuICAgICAgU1VTUEVOREVEX0NPTU1JVCA9IDEsXG4gICAgICBUSFJPVFRMRURfQ09NTUlUID0gMixcbiAgICAgIE5PX1BFTkRJTkdfRUZGRUNUUyA9IDAsXG4gICAgICBQRU5ESU5HX01VVEFUSU9OX1BIQVNFID0gMSxcbiAgICAgIFBFTkRJTkdfTEFZT1VUX1BIQVNFID0gMixcbiAgICAgIFBFTkRJTkdfQUZURVJfTVVUQVRJT05fUEhBU0UgPSAzLFxuICAgICAgUEVORElOR19TUEFXTkVEX1dPUksgPSA0LFxuICAgICAgUEVORElOR19QQVNTSVZFX1BIQVNFID0gNSxcbiAgICAgIHBlbmRpbmdFZmZlY3RzU3RhdHVzID0gMCxcbiAgICAgIHBlbmRpbmdFZmZlY3RzUm9vdCA9IG51bGwsXG4gICAgICBwZW5kaW5nRmluaXNoZWRXb3JrID0gbnVsbCxcbiAgICAgIHBlbmRpbmdFZmZlY3RzTGFuZXMgPSAwLFxuICAgICAgcGVuZGluZ0VmZmVjdHNSZW1haW5pbmdMYW5lcyA9IDAsXG4gICAgICBwZW5kaW5nUGFzc2l2ZVRyYW5zaXRpb25zID0gbnVsbCxcbiAgICAgIHBlbmRpbmdSZWNvdmVyYWJsZUVycm9ycyA9IG51bGwsXG4gICAgICBORVNURURfVVBEQVRFX0xJTUlUID0gNTAsXG4gICAgICBuZXN0ZWRVcGRhdGVDb3VudCA9IDAsXG4gICAgICByb290V2l0aE5lc3RlZFVwZGF0ZXMgPSBudWxsLFxuICAgICAgaXNGbHVzaGluZ1Bhc3NpdmVFZmZlY3RzID0gITEsXG4gICAgICBkaWRTY2hlZHVsZVVwZGF0ZUR1cmluZ1Bhc3NpdmVFZmZlY3RzID0gITEsXG4gICAgICBORVNURURfUEFTU0lWRV9VUERBVEVfTElNSVQgPSA1MCxcbiAgICAgIG5lc3RlZFBhc3NpdmVVcGRhdGVDb3VudCA9IDAsXG4gICAgICByb290V2l0aFBhc3NpdmVOZXN0ZWRVcGRhdGVzID0gbnVsbCxcbiAgICAgIGlzUnVubmluZ0luc2VydGlvbkVmZmVjdCA9ICExLFxuICAgICAgZGlkV2FyblN0YXRlVXBkYXRlRm9yTm90WWV0TW91bnRlZENvbXBvbmVudCA9IG51bGwsXG4gICAgICBkaWRXYXJuQWJvdXRVcGRhdGVJblJlbmRlciA9ICExO1xuICAgIHZhciBkaWRXYXJuQWJvdXRVcGRhdGVJblJlbmRlckZvckFub3RoZXJDb21wb25lbnQgPSBuZXcgU2V0KCk7XG4gICAgdmFyIGZha2VBY3RDYWxsYmFja05vZGUkMSA9IHt9LFxuICAgICAgZmlyc3RTY2hlZHVsZWRSb290ID0gbnVsbCxcbiAgICAgIGxhc3RTY2hlZHVsZWRSb290ID0gbnVsbCxcbiAgICAgIGRpZFNjaGVkdWxlTWljcm90YXNrID0gITEsXG4gICAgICBkaWRTY2hlZHVsZU1pY3JvdGFza19hY3QgPSAhMSxcbiAgICAgIG1pZ2h0SGF2ZVBlbmRpbmdTeW5jV29yayA9ICExLFxuICAgICAgaXNGbHVzaGluZ1dvcmsgPSAhMSxcbiAgICAgIGN1cnJlbnRFdmVudFRyYW5zaXRpb25MYW5lID0gMCxcbiAgICAgIGZha2VBY3RDYWxsYmFja05vZGUgPSB7fTtcbiAgICAoZnVuY3Rpb24gKCkge1xuICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBzaW1wbGVFdmVudFBsdWdpbkV2ZW50cy5sZW5ndGg7IGkrKykge1xuICAgICAgICB2YXIgZXZlbnROYW1lID0gc2ltcGxlRXZlbnRQbHVnaW5FdmVudHNbaV0sXG4gICAgICAgICAgZG9tRXZlbnROYW1lID0gZXZlbnROYW1lLnRvTG93ZXJDYXNlKCk7XG4gICAgICAgIGV2ZW50TmFtZSA9IGV2ZW50TmFtZVswXS50b1VwcGVyQ2FzZSgpICsgZXZlbnROYW1lLnNsaWNlKDEpO1xuICAgICAgICByZWdpc3RlclNpbXBsZUV2ZW50KGRvbUV2ZW50TmFtZSwgXCJvblwiICsgZXZlbnROYW1lKTtcbiAgICAgIH1cbiAgICAgIHJlZ2lzdGVyU2ltcGxlRXZlbnQoQU5JTUFUSU9OX0VORCwgXCJvbkFuaW1hdGlvbkVuZFwiKTtcbiAgICAgIHJlZ2lzdGVyU2ltcGxlRXZlbnQoQU5JTUFUSU9OX0lURVJBVElPTiwgXCJvbkFuaW1hdGlvbkl0ZXJhdGlvblwiKTtcbiAgICAgIHJlZ2lzdGVyU2ltcGxlRXZlbnQoQU5JTUFUSU9OX1NUQVJULCBcIm9uQW5pbWF0aW9uU3RhcnRcIik7XG4gICAgICByZWdpc3RlclNpbXBsZUV2ZW50KFwiZGJsY2xpY2tcIiwgXCJvbkRvdWJsZUNsaWNrXCIpO1xuICAgICAgcmVnaXN0ZXJTaW1wbGVFdmVudChcImZvY3VzaW5cIiwgXCJvbkZvY3VzXCIpO1xuICAgICAgcmVnaXN0ZXJTaW1wbGVFdmVudChcImZvY3Vzb3V0XCIsIFwib25CbHVyXCIpO1xuICAgICAgcmVnaXN0ZXJTaW1wbGVFdmVudChUUkFOU0lUSU9OX1JVTiwgXCJvblRyYW5zaXRpb25SdW5cIik7XG4gICAgICByZWdpc3RlclNpbXBsZUV2ZW50KFRSQU5TSVRJT05fU1RBUlQsIFwib25UcmFuc2l0aW9uU3RhcnRcIik7XG4gICAgICByZWdpc3RlclNpbXBsZUV2ZW50KFRSQU5TSVRJT05fQ0FOQ0VMLCBcIm9uVHJhbnNpdGlvbkNhbmNlbFwiKTtcbiAgICAgIHJlZ2lzdGVyU2ltcGxlRXZlbnQoVFJBTlNJVElPTl9FTkQsIFwib25UcmFuc2l0aW9uRW5kXCIpO1xuICAgIH0pKCk7XG4gICAgcmVnaXN0ZXJEaXJlY3RFdmVudChcIm9uTW91c2VFbnRlclwiLCBbXCJtb3VzZW91dFwiLCBcIm1vdXNlb3ZlclwiXSk7XG4gICAgcmVnaXN0ZXJEaXJlY3RFdmVudChcIm9uTW91c2VMZWF2ZVwiLCBbXCJtb3VzZW91dFwiLCBcIm1vdXNlb3ZlclwiXSk7XG4gICAgcmVnaXN0ZXJEaXJlY3RFdmVudChcIm9uUG9pbnRlckVudGVyXCIsIFtcInBvaW50ZXJvdXRcIiwgXCJwb2ludGVyb3ZlclwiXSk7XG4gICAgcmVnaXN0ZXJEaXJlY3RFdmVudChcIm9uUG9pbnRlckxlYXZlXCIsIFtcInBvaW50ZXJvdXRcIiwgXCJwb2ludGVyb3ZlclwiXSk7XG4gICAgcmVnaXN0ZXJUd29QaGFzZUV2ZW50KFxuICAgICAgXCJvbkNoYW5nZVwiLFxuICAgICAgXCJjaGFuZ2UgY2xpY2sgZm9jdXNpbiBmb2N1c291dCBpbnB1dCBrZXlkb3duIGtleXVwIHNlbGVjdGlvbmNoYW5nZVwiLnNwbGl0KFxuICAgICAgICBcIiBcIlxuICAgICAgKVxuICAgICk7XG4gICAgcmVnaXN0ZXJUd29QaGFzZUV2ZW50KFxuICAgICAgXCJvblNlbGVjdFwiLFxuICAgICAgXCJmb2N1c291dCBjb250ZXh0bWVudSBkcmFnZW5kIGZvY3VzaW4ga2V5ZG93biBrZXl1cCBtb3VzZWRvd24gbW91c2V1cCBzZWxlY3Rpb25jaGFuZ2VcIi5zcGxpdChcbiAgICAgICAgXCIgXCJcbiAgICAgIClcbiAgICApO1xuICAgIHJlZ2lzdGVyVHdvUGhhc2VFdmVudChcIm9uQmVmb3JlSW5wdXRcIiwgW1xuICAgICAgXCJjb21wb3NpdGlvbmVuZFwiLFxuICAgICAgXCJrZXlwcmVzc1wiLFxuICAgICAgXCJ0ZXh0SW5wdXRcIixcbiAgICAgIFwicGFzdGVcIlxuICAgIF0pO1xuICAgIHJlZ2lzdGVyVHdvUGhhc2VFdmVudChcbiAgICAgIFwib25Db21wb3NpdGlvbkVuZFwiLFxuICAgICAgXCJjb21wb3NpdGlvbmVuZCBmb2N1c291dCBrZXlkb3duIGtleXByZXNzIGtleXVwIG1vdXNlZG93blwiLnNwbGl0KFwiIFwiKVxuICAgICk7XG4gICAgcmVnaXN0ZXJUd29QaGFzZUV2ZW50KFxuICAgICAgXCJvbkNvbXBvc2l0aW9uU3RhcnRcIixcbiAgICAgIFwiY29tcG9zaXRpb25zdGFydCBmb2N1c291dCBrZXlkb3duIGtleXByZXNzIGtleXVwIG1vdXNlZG93blwiLnNwbGl0KFwiIFwiKVxuICAgICk7XG4gICAgcmVnaXN0ZXJUd29QaGFzZUV2ZW50KFxuICAgICAgXCJvbkNvbXBvc2l0aW9uVXBkYXRlXCIsXG4gICAgICBcImNvbXBvc2l0aW9udXBkYXRlIGZvY3Vzb3V0IGtleWRvd24ga2V5cHJlc3Mga2V5dXAgbW91c2Vkb3duXCIuc3BsaXQoXCIgXCIpXG4gICAgKTtcbiAgICB2YXIgbWVkaWFFdmVudFR5cGVzID1cbiAgICAgICAgXCJhYm9ydCBjYW5wbGF5IGNhbnBsYXl0aHJvdWdoIGR1cmF0aW9uY2hhbmdlIGVtcHRpZWQgZW5jcnlwdGVkIGVuZGVkIGVycm9yIGxvYWRlZGRhdGEgbG9hZGVkbWV0YWRhdGEgbG9hZHN0YXJ0IHBhdXNlIHBsYXkgcGxheWluZyBwcm9ncmVzcyByYXRlY2hhbmdlIHJlc2l6ZSBzZWVrZWQgc2Vla2luZyBzdGFsbGVkIHN1c3BlbmQgdGltZXVwZGF0ZSB2b2x1bWVjaGFuZ2Ugd2FpdGluZ1wiLnNwbGl0KFxuICAgICAgICAgIFwiIFwiXG4gICAgICAgICksXG4gICAgICBub25EZWxlZ2F0ZWRFdmVudHMgPSBuZXcgU2V0KFxuICAgICAgICBcImJlZm9yZXRvZ2dsZSBjYW5jZWwgY2xvc2UgaW52YWxpZCBsb2FkIHNjcm9sbCBzY3JvbGxlbmQgdG9nZ2xlXCJcbiAgICAgICAgICAuc3BsaXQoXCIgXCIpXG4gICAgICAgICAgLmNvbmNhdChtZWRpYUV2ZW50VHlwZXMpXG4gICAgICApLFxuICAgICAgbGlzdGVuaW5nTWFya2VyID0gXCJfcmVhY3RMaXN0ZW5pbmdcIiArIE1hdGgucmFuZG9tKCkudG9TdHJpbmcoMzYpLnNsaWNlKDIpLFxuICAgICAgZGlkV2FybkNvbnRyb2xsZWRUb1VuY29udHJvbGxlZCA9ICExLFxuICAgICAgZGlkV2FyblVuY29udHJvbGxlZFRvQ29udHJvbGxlZCA9ICExLFxuICAgICAgZGlkV2FybkZvcm1BY3Rpb25UeXBlID0gITEsXG4gICAgICBkaWRXYXJuRm9ybUFjdGlvbk5hbWUgPSAhMSxcbiAgICAgIGRpZFdhcm5Gb3JtQWN0aW9uVGFyZ2V0ID0gITEsXG4gICAgICBkaWRXYXJuRm9ybUFjdGlvbk1ldGhvZCA9ICExLFxuICAgICAgZGlkV2FyblBvcG92ZXJUYXJnZXRPYmplY3QgPSAhMTtcbiAgICB2YXIgZGlkV2FybkZvck5ld0Jvb2xlYW5Qcm9wc1dpdGhFbXB0eVZhbHVlID0ge307XG4gICAgdmFyIE5PUk1BTElaRV9ORVdMSU5FU19SRUdFWCA9IC9cXHJcXG4/L2csXG4gICAgICBOT1JNQUxJWkVfTlVMTF9BTkRfUkVQTEFDRU1FTlRfUkVHRVggPSAvXFx1MDAwMHxcXHVGRkZEL2csXG4gICAgICB4bGlua05hbWVzcGFjZSA9IFwiaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGlua1wiLFxuICAgICAgeG1sTmFtZXNwYWNlID0gXCJodHRwOi8vd3d3LnczLm9yZy9YTUwvMTk5OC9uYW1lc3BhY2VcIixcbiAgICAgIEVYUEVDVEVEX0ZPUk1fQUNUSU9OX1VSTCA9XG4gICAgICAgIFwiamF2YXNjcmlwdDp0aHJvdyBuZXcgRXJyb3IoJ1JlYWN0IGZvcm0gdW5leHBlY3RlZGx5IHN1Ym1pdHRlZC4nKVwiLFxuICAgICAgU1VQUFJFU1NfSFlEUkFUSU9OX1dBUk5JTkcgPSBcInN1cHByZXNzSHlkcmF0aW9uV2FybmluZ1wiLFxuICAgICAgU1VTUEVOU0VfU1RBUlRfREFUQSA9IFwiJFwiLFxuICAgICAgU1VTUEVOU0VfRU5EX0RBVEEgPSBcIi8kXCIsXG4gICAgICBTVVNQRU5TRV9QRU5ESU5HX1NUQVJUX0RBVEEgPSBcIiQ/XCIsXG4gICAgICBTVVNQRU5TRV9GQUxMQkFDS19TVEFSVF9EQVRBID0gXCIkIVwiLFxuICAgICAgUFJFQU1CTEVfQ09OVFJJQlVUSU9OX0hUTUwgPSAxLFxuICAgICAgUFJFQU1CTEVfQ09OVFJJQlVUSU9OX0JPRFkgPSAyLFxuICAgICAgUFJFQU1CTEVfQ09OVFJJQlVUSU9OX0hFQUQgPSA0LFxuICAgICAgRk9STV9TVEFURV9JU19NQVRDSElORyA9IFwiRiFcIixcbiAgICAgIEZPUk1fU1RBVEVfSVNfTk9UX01BVENISU5HID0gXCJGXCIsXG4gICAgICBET0NVTUVOVF9SRUFEWV9TVEFURV9DT01QTEVURSA9IFwiY29tcGxldGVcIixcbiAgICAgIFNUWUxFID0gXCJzdHlsZVwiLFxuICAgICAgSG9zdENvbnRleHROYW1lc3BhY2VOb25lID0gMCxcbiAgICAgIEhvc3RDb250ZXh0TmFtZXNwYWNlU3ZnID0gMSxcbiAgICAgIEhvc3RDb250ZXh0TmFtZXNwYWNlTWF0aCA9IDIsXG4gICAgICBldmVudHNFbmFibGVkID0gbnVsbCxcbiAgICAgIHNlbGVjdGlvbkluZm9ybWF0aW9uID0gbnVsbCxcbiAgICAgIHdhcm5lZFVua25vd25UYWdzID0geyBkaWFsb2c6ICEwLCB3ZWJ2aWV3OiAhMCB9LFxuICAgICAgY3VycmVudFBvcHN0YXRlVHJhbnNpdGlvbkV2ZW50ID0gbnVsbCxcbiAgICAgIHNjaGVkdWxlVGltZW91dCA9IFwiZnVuY3Rpb25cIiA9PT0gdHlwZW9mIHNldFRpbWVvdXQgPyBzZXRUaW1lb3V0IDogdm9pZCAwLFxuICAgICAgY2FuY2VsVGltZW91dCA9XG4gICAgICAgIFwiZnVuY3Rpb25cIiA9PT0gdHlwZW9mIGNsZWFyVGltZW91dCA/IGNsZWFyVGltZW91dCA6IHZvaWQgMCxcbiAgICAgIG5vVGltZW91dCA9IC0xLFxuICAgICAgbG9jYWxQcm9taXNlID0gXCJmdW5jdGlvblwiID09PSB0eXBlb2YgUHJvbWlzZSA/IFByb21pc2UgOiB2b2lkIDAsXG4gICAgICBzY2hlZHVsZU1pY3JvdGFzayA9XG4gICAgICAgIFwiZnVuY3Rpb25cIiA9PT0gdHlwZW9mIHF1ZXVlTWljcm90YXNrXG4gICAgICAgICAgPyBxdWV1ZU1pY3JvdGFza1xuICAgICAgICAgIDogXCJ1bmRlZmluZWRcIiAhPT0gdHlwZW9mIGxvY2FsUHJvbWlzZVxuICAgICAgICAgICAgPyBmdW5jdGlvbiAoY2FsbGJhY2spIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gbG9jYWxQcm9taXNlXG4gICAgICAgICAgICAgICAgICAucmVzb2x2ZShudWxsKVxuICAgICAgICAgICAgICAgICAgLnRoZW4oY2FsbGJhY2spXG4gICAgICAgICAgICAgICAgICAuY2F0Y2goaGFuZGxlRXJyb3JJbk5leHRUaWNrKTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgOiBzY2hlZHVsZVRpbWVvdXQsXG4gICAgICBwcmV2aW91c0h5ZHJhdGFibGVPbkVudGVyaW5nU2NvcGVkU2luZ2xldG9uID0gbnVsbCxcbiAgICAgIE5vdExvYWRlZCA9IDAsXG4gICAgICBMb2FkZWQgPSAxLFxuICAgICAgRXJyb3JlZCA9IDIsXG4gICAgICBTZXR0bGVkID0gMyxcbiAgICAgIEluc2VydGVkID0gNCxcbiAgICAgIHByZWxvYWRQcm9wc01hcCA9IG5ldyBNYXAoKSxcbiAgICAgIHByZWNvbm5lY3RzU2V0ID0gbmV3IFNldCgpLFxuICAgICAgcHJldmlvdXNEaXNwYXRjaGVyID0gUmVhY3RET01TaGFyZWRJbnRlcm5hbHMuZDtcbiAgICBSZWFjdERPTVNoYXJlZEludGVybmFscy5kID0ge1xuICAgICAgZjogZnVuY3Rpb24gKCkge1xuICAgICAgICB2YXIgcHJldmlvdXNXYXNSZW5kZXJpbmcgPSBwcmV2aW91c0Rpc3BhdGNoZXIuZigpLFxuICAgICAgICAgIHdhc1JlbmRlcmluZyA9IGZsdXNoU3luY1dvcmskMSgpO1xuICAgICAgICByZXR1cm4gcHJldmlvdXNXYXNSZW5kZXJpbmcgfHwgd2FzUmVuZGVyaW5nO1xuICAgICAgfSxcbiAgICAgIHI6IGZ1bmN0aW9uIChmb3JtKSB7XG4gICAgICAgIHZhciBmb3JtSW5zdCA9IGdldEluc3RhbmNlRnJvbU5vZGUoZm9ybSk7XG4gICAgICAgIG51bGwgIT09IGZvcm1JbnN0ICYmIDUgPT09IGZvcm1JbnN0LnRhZyAmJiBcImZvcm1cIiA9PT0gZm9ybUluc3QudHlwZVxuICAgICAgICAgID8gcmVxdWVzdEZvcm1SZXNldCQxKGZvcm1JbnN0KVxuICAgICAgICAgIDogcHJldmlvdXNEaXNwYXRjaGVyLnIoZm9ybSk7XG4gICAgICB9LFxuICAgICAgRDogZnVuY3Rpb24gKGhyZWYpIHtcbiAgICAgICAgcHJldmlvdXNEaXNwYXRjaGVyLkQoaHJlZik7XG4gICAgICAgIHByZWNvbm5lY3RBcyhcImRucy1wcmVmZXRjaFwiLCBocmVmLCBudWxsKTtcbiAgICAgIH0sXG4gICAgICBDOiBmdW5jdGlvbiAoaHJlZiwgY3Jvc3NPcmlnaW4pIHtcbiAgICAgICAgcHJldmlvdXNEaXNwYXRjaGVyLkMoaHJlZiwgY3Jvc3NPcmlnaW4pO1xuICAgICAgICBwcmVjb25uZWN0QXMoXCJwcmVjb25uZWN0XCIsIGhyZWYsIGNyb3NzT3JpZ2luKTtcbiAgICAgIH0sXG4gICAgICBMOiBmdW5jdGlvbiAoaHJlZiwgYXMsIG9wdGlvbnMpIHtcbiAgICAgICAgcHJldmlvdXNEaXNwYXRjaGVyLkwoaHJlZiwgYXMsIG9wdGlvbnMpO1xuICAgICAgICB2YXIgb3duZXJEb2N1bWVudCA9IGdsb2JhbERvY3VtZW50O1xuICAgICAgICBpZiAob3duZXJEb2N1bWVudCAmJiBocmVmICYmIGFzKSB7XG4gICAgICAgICAgdmFyIHByZWxvYWRTZWxlY3RvciA9XG4gICAgICAgICAgICAnbGlua1tyZWw9XCJwcmVsb2FkXCJdW2FzPVwiJyArXG4gICAgICAgICAgICBlc2NhcGVTZWxlY3RvckF0dHJpYnV0ZVZhbHVlSW5zaWRlRG91YmxlUXVvdGVzKGFzKSArXG4gICAgICAgICAgICAnXCJdJztcbiAgICAgICAgICBcImltYWdlXCIgPT09IGFzXG4gICAgICAgICAgICA/IG9wdGlvbnMgJiYgb3B0aW9ucy5pbWFnZVNyY1NldFxuICAgICAgICAgICAgICA/ICgocHJlbG9hZFNlbGVjdG9yICs9XG4gICAgICAgICAgICAgICAgICAnW2ltYWdlc3Jjc2V0PVwiJyArXG4gICAgICAgICAgICAgICAgICBlc2NhcGVTZWxlY3RvckF0dHJpYnV0ZVZhbHVlSW5zaWRlRG91YmxlUXVvdGVzKFxuICAgICAgICAgICAgICAgICAgICBvcHRpb25zLmltYWdlU3JjU2V0XG4gICAgICAgICAgICAgICAgICApICtcbiAgICAgICAgICAgICAgICAgICdcIl0nKSxcbiAgICAgICAgICAgICAgICBcInN0cmluZ1wiID09PSB0eXBlb2Ygb3B0aW9ucy5pbWFnZVNpemVzICYmXG4gICAgICAgICAgICAgICAgICAocHJlbG9hZFNlbGVjdG9yICs9XG4gICAgICAgICAgICAgICAgICAgICdbaW1hZ2VzaXplcz1cIicgK1xuICAgICAgICAgICAgICAgICAgICBlc2NhcGVTZWxlY3RvckF0dHJpYnV0ZVZhbHVlSW5zaWRlRG91YmxlUXVvdGVzKFxuICAgICAgICAgICAgICAgICAgICAgIG9wdGlvbnMuaW1hZ2VTaXplc1xuICAgICAgICAgICAgICAgICAgICApICtcbiAgICAgICAgICAgICAgICAgICAgJ1wiXScpKVxuICAgICAgICAgICAgICA6IChwcmVsb2FkU2VsZWN0b3IgKz1cbiAgICAgICAgICAgICAgICAgICdbaHJlZj1cIicgK1xuICAgICAgICAgICAgICAgICAgZXNjYXBlU2VsZWN0b3JBdHRyaWJ1dGVWYWx1ZUluc2lkZURvdWJsZVF1b3RlcyhocmVmKSArXG4gICAgICAgICAgICAgICAgICAnXCJdJylcbiAgICAgICAgICAgIDogKHByZWxvYWRTZWxlY3RvciArPVxuICAgICAgICAgICAgICAgICdbaHJlZj1cIicgK1xuICAgICAgICAgICAgICAgIGVzY2FwZVNlbGVjdG9yQXR0cmlidXRlVmFsdWVJbnNpZGVEb3VibGVRdW90ZXMoaHJlZikgK1xuICAgICAgICAgICAgICAgICdcIl0nKTtcbiAgICAgICAgICB2YXIga2V5ID0gcHJlbG9hZFNlbGVjdG9yO1xuICAgICAgICAgIHN3aXRjaCAoYXMpIHtcbiAgICAgICAgICAgIGNhc2UgXCJzdHlsZVwiOlxuICAgICAgICAgICAgICBrZXkgPSBnZXRTdHlsZUtleShocmVmKTtcbiAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlIFwic2NyaXB0XCI6XG4gICAgICAgICAgICAgIGtleSA9IGdldFNjcmlwdEtleShocmVmKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgcHJlbG9hZFByb3BzTWFwLmhhcyhrZXkpIHx8XG4gICAgICAgICAgICAoKGhyZWYgPSBhc3NpZ24oXG4gICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICByZWw6IFwicHJlbG9hZFwiLFxuICAgICAgICAgICAgICAgIGhyZWY6XG4gICAgICAgICAgICAgICAgICBcImltYWdlXCIgPT09IGFzICYmIG9wdGlvbnMgJiYgb3B0aW9ucy5pbWFnZVNyY1NldFxuICAgICAgICAgICAgICAgICAgICA/IHZvaWQgMFxuICAgICAgICAgICAgICAgICAgICA6IGhyZWYsXG4gICAgICAgICAgICAgICAgYXM6IGFzXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIG9wdGlvbnNcbiAgICAgICAgICAgICkpLFxuICAgICAgICAgICAgcHJlbG9hZFByb3BzTWFwLnNldChrZXksIGhyZWYpLFxuICAgICAgICAgICAgbnVsbCAhPT0gb3duZXJEb2N1bWVudC5xdWVyeVNlbGVjdG9yKHByZWxvYWRTZWxlY3RvcikgfHxcbiAgICAgICAgICAgICAgKFwic3R5bGVcIiA9PT0gYXMgJiZcbiAgICAgICAgICAgICAgICBvd25lckRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoXG4gICAgICAgICAgICAgICAgICBnZXRTdHlsZXNoZWV0U2VsZWN0b3JGcm9tS2V5KGtleSlcbiAgICAgICAgICAgICAgICApKSB8fFxuICAgICAgICAgICAgICAoXCJzY3JpcHRcIiA9PT0gYXMgJiZcbiAgICAgICAgICAgICAgICBvd25lckRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoZ2V0U2NyaXB0U2VsZWN0b3JGcm9tS2V5KGtleSkpKSB8fFxuICAgICAgICAgICAgICAoKGFzID0gb3duZXJEb2N1bWVudC5jcmVhdGVFbGVtZW50KFwibGlua1wiKSksXG4gICAgICAgICAgICAgIHNldEluaXRpYWxQcm9wZXJ0aWVzKGFzLCBcImxpbmtcIiwgaHJlZiksXG4gICAgICAgICAgICAgIG1hcmtOb2RlQXNIb2lzdGFibGUoYXMpLFxuICAgICAgICAgICAgICBvd25lckRvY3VtZW50LmhlYWQuYXBwZW5kQ2hpbGQoYXMpKSk7XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBtOiBmdW5jdGlvbiAoaHJlZiwgb3B0aW9ucykge1xuICAgICAgICBwcmV2aW91c0Rpc3BhdGNoZXIubShocmVmLCBvcHRpb25zKTtcbiAgICAgICAgdmFyIG93bmVyRG9jdW1lbnQgPSBnbG9iYWxEb2N1bWVudDtcbiAgICAgICAgaWYgKG93bmVyRG9jdW1lbnQgJiYgaHJlZikge1xuICAgICAgICAgIHZhciBhcyA9XG4gICAgICAgICAgICAgIG9wdGlvbnMgJiYgXCJzdHJpbmdcIiA9PT0gdHlwZW9mIG9wdGlvbnMuYXMgPyBvcHRpb25zLmFzIDogXCJzY3JpcHRcIixcbiAgICAgICAgICAgIHByZWxvYWRTZWxlY3RvciA9XG4gICAgICAgICAgICAgICdsaW5rW3JlbD1cIm1vZHVsZXByZWxvYWRcIl1bYXM9XCInICtcbiAgICAgICAgICAgICAgZXNjYXBlU2VsZWN0b3JBdHRyaWJ1dGVWYWx1ZUluc2lkZURvdWJsZVF1b3RlcyhhcykgK1xuICAgICAgICAgICAgICAnXCJdW2hyZWY9XCInICtcbiAgICAgICAgICAgICAgZXNjYXBlU2VsZWN0b3JBdHRyaWJ1dGVWYWx1ZUluc2lkZURvdWJsZVF1b3RlcyhocmVmKSArXG4gICAgICAgICAgICAgICdcIl0nLFxuICAgICAgICAgICAga2V5ID0gcHJlbG9hZFNlbGVjdG9yO1xuICAgICAgICAgIHN3aXRjaCAoYXMpIHtcbiAgICAgICAgICAgIGNhc2UgXCJhdWRpb3dvcmtsZXRcIjpcbiAgICAgICAgICAgIGNhc2UgXCJwYWludHdvcmtsZXRcIjpcbiAgICAgICAgICAgIGNhc2UgXCJzZXJ2aWNld29ya2VyXCI6XG4gICAgICAgICAgICBjYXNlIFwic2hhcmVkd29ya2VyXCI6XG4gICAgICAgICAgICBjYXNlIFwid29ya2VyXCI6XG4gICAgICAgICAgICBjYXNlIFwic2NyaXB0XCI6XG4gICAgICAgICAgICAgIGtleSA9IGdldFNjcmlwdEtleShocmVmKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgaWYgKFxuICAgICAgICAgICAgIXByZWxvYWRQcm9wc01hcC5oYXMoa2V5KSAmJlxuICAgICAgICAgICAgKChocmVmID0gYXNzaWduKHsgcmVsOiBcIm1vZHVsZXByZWxvYWRcIiwgaHJlZjogaHJlZiB9LCBvcHRpb25zKSksXG4gICAgICAgICAgICBwcmVsb2FkUHJvcHNNYXAuc2V0KGtleSwgaHJlZiksXG4gICAgICAgICAgICBudWxsID09PSBvd25lckRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IocHJlbG9hZFNlbGVjdG9yKSlcbiAgICAgICAgICApIHtcbiAgICAgICAgICAgIHN3aXRjaCAoYXMpIHtcbiAgICAgICAgICAgICAgY2FzZSBcImF1ZGlvd29ya2xldFwiOlxuICAgICAgICAgICAgICBjYXNlIFwicGFpbnR3b3JrbGV0XCI6XG4gICAgICAgICAgICAgIGNhc2UgXCJzZXJ2aWNld29ya2VyXCI6XG4gICAgICAgICAgICAgIGNhc2UgXCJzaGFyZWR3b3JrZXJcIjpcbiAgICAgICAgICAgICAgY2FzZSBcIndvcmtlclwiOlxuICAgICAgICAgICAgICBjYXNlIFwic2NyaXB0XCI6XG4gICAgICAgICAgICAgICAgaWYgKG93bmVyRG9jdW1lbnQucXVlcnlTZWxlY3RvcihnZXRTY3JpcHRTZWxlY3RvckZyb21LZXkoa2V5KSkpXG4gICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBhcyA9IG93bmVyRG9jdW1lbnQuY3JlYXRlRWxlbWVudChcImxpbmtcIik7XG4gICAgICAgICAgICBzZXRJbml0aWFsUHJvcGVydGllcyhhcywgXCJsaW5rXCIsIGhyZWYpO1xuICAgICAgICAgICAgbWFya05vZGVBc0hvaXN0YWJsZShhcyk7XG4gICAgICAgICAgICBvd25lckRvY3VtZW50LmhlYWQuYXBwZW5kQ2hpbGQoYXMpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFg6IGZ1bmN0aW9uIChzcmMsIG9wdGlvbnMpIHtcbiAgICAgICAgcHJldmlvdXNEaXNwYXRjaGVyLlgoc3JjLCBvcHRpb25zKTtcbiAgICAgICAgdmFyIG93bmVyRG9jdW1lbnQgPSBnbG9iYWxEb2N1bWVudDtcbiAgICAgICAgaWYgKG93bmVyRG9jdW1lbnQgJiYgc3JjKSB7XG4gICAgICAgICAgdmFyIHNjcmlwdHMgPSBnZXRSZXNvdXJjZXNGcm9tUm9vdChvd25lckRvY3VtZW50KS5ob2lzdGFibGVTY3JpcHRzLFxuICAgICAgICAgICAga2V5ID0gZ2V0U2NyaXB0S2V5KHNyYyksXG4gICAgICAgICAgICByZXNvdXJjZSA9IHNjcmlwdHMuZ2V0KGtleSk7XG4gICAgICAgICAgcmVzb3VyY2UgfHxcbiAgICAgICAgICAgICgocmVzb3VyY2UgPSBvd25lckRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoXG4gICAgICAgICAgICAgIGdldFNjcmlwdFNlbGVjdG9yRnJvbUtleShrZXkpXG4gICAgICAgICAgICApKSxcbiAgICAgICAgICAgIHJlc291cmNlIHx8XG4gICAgICAgICAgICAgICgoc3JjID0gYXNzaWduKHsgc3JjOiBzcmMsIGFzeW5jOiAhMCB9LCBvcHRpb25zKSksXG4gICAgICAgICAgICAgIChvcHRpb25zID0gcHJlbG9hZFByb3BzTWFwLmdldChrZXkpKSAmJlxuICAgICAgICAgICAgICAgIGFkb3B0UHJlbG9hZFByb3BzRm9yU2NyaXB0KHNyYywgb3B0aW9ucyksXG4gICAgICAgICAgICAgIChyZXNvdXJjZSA9IG93bmVyRG9jdW1lbnQuY3JlYXRlRWxlbWVudChcInNjcmlwdFwiKSksXG4gICAgICAgICAgICAgIG1hcmtOb2RlQXNIb2lzdGFibGUocmVzb3VyY2UpLFxuICAgICAgICAgICAgICBzZXRJbml0aWFsUHJvcGVydGllcyhyZXNvdXJjZSwgXCJsaW5rXCIsIHNyYyksXG4gICAgICAgICAgICAgIG93bmVyRG9jdW1lbnQuaGVhZC5hcHBlbmRDaGlsZChyZXNvdXJjZSkpLFxuICAgICAgICAgICAgKHJlc291cmNlID0ge1xuICAgICAgICAgICAgICB0eXBlOiBcInNjcmlwdFwiLFxuICAgICAgICAgICAgICBpbnN0YW5jZTogcmVzb3VyY2UsXG4gICAgICAgICAgICAgIGNvdW50OiAxLFxuICAgICAgICAgICAgICBzdGF0ZTogbnVsbFxuICAgICAgICAgICAgfSksXG4gICAgICAgICAgICBzY3JpcHRzLnNldChrZXksIHJlc291cmNlKSk7XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBTOiBmdW5jdGlvbiAoaHJlZiwgcHJlY2VkZW5jZSwgb3B0aW9ucykge1xuICAgICAgICBwcmV2aW91c0Rpc3BhdGNoZXIuUyhocmVmLCBwcmVjZWRlbmNlLCBvcHRpb25zKTtcbiAgICAgICAgdmFyIG93bmVyRG9jdW1lbnQgPSBnbG9iYWxEb2N1bWVudDtcbiAgICAgICAgaWYgKG93bmVyRG9jdW1lbnQgJiYgaHJlZikge1xuICAgICAgICAgIHZhciBzdHlsZXMgPSBnZXRSZXNvdXJjZXNGcm9tUm9vdChvd25lckRvY3VtZW50KS5ob2lzdGFibGVTdHlsZXMsXG4gICAgICAgICAgICBrZXkgPSBnZXRTdHlsZUtleShocmVmKTtcbiAgICAgICAgICBwcmVjZWRlbmNlID0gcHJlY2VkZW5jZSB8fCBcImRlZmF1bHRcIjtcbiAgICAgICAgICB2YXIgcmVzb3VyY2UgPSBzdHlsZXMuZ2V0KGtleSk7XG4gICAgICAgICAgaWYgKCFyZXNvdXJjZSkge1xuICAgICAgICAgICAgdmFyIHN0YXRlID0geyBsb2FkaW5nOiBOb3RMb2FkZWQsIHByZWxvYWQ6IG51bGwgfTtcbiAgICAgICAgICAgIGlmIChcbiAgICAgICAgICAgICAgKHJlc291cmNlID0gb3duZXJEb2N1bWVudC5xdWVyeVNlbGVjdG9yKFxuICAgICAgICAgICAgICAgIGdldFN0eWxlc2hlZXRTZWxlY3RvckZyb21LZXkoa2V5KVxuICAgICAgICAgICAgICApKVxuICAgICAgICAgICAgKVxuICAgICAgICAgICAgICBzdGF0ZS5sb2FkaW5nID0gTG9hZGVkIHwgSW5zZXJ0ZWQ7XG4gICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgaHJlZiA9IGFzc2lnbihcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICByZWw6IFwic3R5bGVzaGVldFwiLFxuICAgICAgICAgICAgICAgICAgaHJlZjogaHJlZixcbiAgICAgICAgICAgICAgICAgIFwiZGF0YS1wcmVjZWRlbmNlXCI6IHByZWNlZGVuY2VcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIG9wdGlvbnNcbiAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgKG9wdGlvbnMgPSBwcmVsb2FkUHJvcHNNYXAuZ2V0KGtleSkpICYmXG4gICAgICAgICAgICAgICAgYWRvcHRQcmVsb2FkUHJvcHNGb3JTdHlsZXNoZWV0KGhyZWYsIG9wdGlvbnMpO1xuICAgICAgICAgICAgICB2YXIgbGluayA9IChyZXNvdXJjZSA9IG93bmVyRG9jdW1lbnQuY3JlYXRlRWxlbWVudChcImxpbmtcIikpO1xuICAgICAgICAgICAgICBtYXJrTm9kZUFzSG9pc3RhYmxlKGxpbmspO1xuICAgICAgICAgICAgICBzZXRJbml0aWFsUHJvcGVydGllcyhsaW5rLCBcImxpbmtcIiwgaHJlZik7XG4gICAgICAgICAgICAgIGxpbmsuX3AgPSBuZXcgUHJvbWlzZShmdW5jdGlvbiAocmVzb2x2ZSwgcmVqZWN0KSB7XG4gICAgICAgICAgICAgICAgbGluay5vbmxvYWQgPSByZXNvbHZlO1xuICAgICAgICAgICAgICAgIGxpbmsub25lcnJvciA9IHJlamVjdDtcbiAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgIGxpbmsuYWRkRXZlbnRMaXN0ZW5lcihcImxvYWRcIiwgZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgIHN0YXRlLmxvYWRpbmcgfD0gTG9hZGVkO1xuICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgbGluay5hZGRFdmVudExpc3RlbmVyKFwiZXJyb3JcIiwgZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgIHN0YXRlLmxvYWRpbmcgfD0gRXJyb3JlZDtcbiAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgIHN0YXRlLmxvYWRpbmcgfD0gSW5zZXJ0ZWQ7XG4gICAgICAgICAgICAgIGluc2VydFN0eWxlc2hlZXQocmVzb3VyY2UsIHByZWNlZGVuY2UsIG93bmVyRG9jdW1lbnQpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmVzb3VyY2UgPSB7XG4gICAgICAgICAgICAgIHR5cGU6IFwic3R5bGVzaGVldFwiLFxuICAgICAgICAgICAgICBpbnN0YW5jZTogcmVzb3VyY2UsXG4gICAgICAgICAgICAgIGNvdW50OiAxLFxuICAgICAgICAgICAgICBzdGF0ZTogc3RhdGVcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgICBzdHlsZXMuc2V0KGtleSwgcmVzb3VyY2UpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIE06IGZ1bmN0aW9uIChzcmMsIG9wdGlvbnMpIHtcbiAgICAgICAgcHJldmlvdXNEaXNwYXRjaGVyLk0oc3JjLCBvcHRpb25zKTtcbiAgICAgICAgdmFyIG93bmVyRG9jdW1lbnQgPSBnbG9iYWxEb2N1bWVudDtcbiAgICAgICAgaWYgKG93bmVyRG9jdW1lbnQgJiYgc3JjKSB7XG4gICAgICAgICAgdmFyIHNjcmlwdHMgPSBnZXRSZXNvdXJjZXNGcm9tUm9vdChvd25lckRvY3VtZW50KS5ob2lzdGFibGVTY3JpcHRzLFxuICAgICAgICAgICAga2V5ID0gZ2V0U2NyaXB0S2V5KHNyYyksXG4gICAgICAgICAgICByZXNvdXJjZSA9IHNjcmlwdHMuZ2V0KGtleSk7XG4gICAgICAgICAgcmVzb3VyY2UgfHxcbiAgICAgICAgICAgICgocmVzb3VyY2UgPSBvd25lckRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoXG4gICAgICAgICAgICAgIGdldFNjcmlwdFNlbGVjdG9yRnJvbUtleShrZXkpXG4gICAgICAgICAgICApKSxcbiAgICAgICAgICAgIHJlc291cmNlIHx8XG4gICAgICAgICAgICAgICgoc3JjID0gYXNzaWduKHsgc3JjOiBzcmMsIGFzeW5jOiAhMCwgdHlwZTogXCJtb2R1bGVcIiB9LCBvcHRpb25zKSksXG4gICAgICAgICAgICAgIChvcHRpb25zID0gcHJlbG9hZFByb3BzTWFwLmdldChrZXkpKSAmJlxuICAgICAgICAgICAgICAgIGFkb3B0UHJlbG9hZFByb3BzRm9yU2NyaXB0KHNyYywgb3B0aW9ucyksXG4gICAgICAgICAgICAgIChyZXNvdXJjZSA9IG93bmVyRG9jdW1lbnQuY3JlYXRlRWxlbWVudChcInNjcmlwdFwiKSksXG4gICAgICAgICAgICAgIG1hcmtOb2RlQXNIb2lzdGFibGUocmVzb3VyY2UpLFxuICAgICAgICAgICAgICBzZXRJbml0aWFsUHJvcGVydGllcyhyZXNvdXJjZSwgXCJsaW5rXCIsIHNyYyksXG4gICAgICAgICAgICAgIG93bmVyRG9jdW1lbnQuaGVhZC5hcHBlbmRDaGlsZChyZXNvdXJjZSkpLFxuICAgICAgICAgICAgKHJlc291cmNlID0ge1xuICAgICAgICAgICAgICB0eXBlOiBcInNjcmlwdFwiLFxuICAgICAgICAgICAgICBpbnN0YW5jZTogcmVzb3VyY2UsXG4gICAgICAgICAgICAgIGNvdW50OiAxLFxuICAgICAgICAgICAgICBzdGF0ZTogbnVsbFxuICAgICAgICAgICAgfSksXG4gICAgICAgICAgICBzY3JpcHRzLnNldChrZXksIHJlc291cmNlKSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9O1xuICAgIHZhciBnbG9iYWxEb2N1bWVudCA9IFwidW5kZWZpbmVkXCIgPT09IHR5cGVvZiBkb2N1bWVudCA/IG51bGwgOiBkb2N1bWVudCxcbiAgICAgIHRhZ0NhY2hlcyA9IG51bGwsXG4gICAgICBzdXNwZW5kZWRTdGF0ZSA9IG51bGwsXG4gICAgICBMQVNUX1BSRUNFREVOQ0UgPSBudWxsLFxuICAgICAgcHJlY2VkZW5jZXNCeVJvb3QgPSBudWxsLFxuICAgICAgTm90UGVuZGluZ1RyYW5zaXRpb24gPSBOb3RQZW5kaW5nLFxuICAgICAgSG9zdFRyYW5zaXRpb25Db250ZXh0ID0ge1xuICAgICAgICAkJHR5cGVvZjogUkVBQ1RfQ09OVEVYVF9UWVBFLFxuICAgICAgICBQcm92aWRlcjogbnVsbCxcbiAgICAgICAgQ29uc3VtZXI6IG51bGwsXG4gICAgICAgIF9jdXJyZW50VmFsdWU6IE5vdFBlbmRpbmdUcmFuc2l0aW9uLFxuICAgICAgICBfY3VycmVudFZhbHVlMjogTm90UGVuZGluZ1RyYW5zaXRpb24sXG4gICAgICAgIF90aHJlYWRDb3VudDogMFxuICAgICAgfSxcbiAgICAgIGJhZGdlRm9ybWF0ID0gXCIlYyVzJWMgXCIsXG4gICAgICBiYWRnZVN0eWxlID1cbiAgICAgICAgXCJiYWNrZ3JvdW5kOiAjZTZlNmU2O2JhY2tncm91bmQ6IGxpZ2h0LWRhcmsocmdiYSgwLDAsMCwwLjEpLCByZ2JhKDI1NSwyNTUsMjU1LDAuMjUpKTtjb2xvcjogIzAwMDAwMDtjb2xvcjogbGlnaHQtZGFyaygjMDAwMDAwLCAjZmZmZmZmKTtib3JkZXItcmFkaXVzOiAycHhcIixcbiAgICAgIHJlc2V0U3R5bGUgPSBcIlwiLFxuICAgICAgcGFkID0gXCIgXCIsXG4gICAgICBiaW5kID0gRnVuY3Rpb24ucHJvdG90eXBlLmJpbmQ7XG4gICAgdmFyIGRpZFdhcm5BYm91dE5lc3RlZFVwZGF0ZXMgPSAhMTtcbiAgICB2YXIgb3ZlcnJpZGVIb29rU3RhdGUgPSBudWxsLFxuICAgICAgb3ZlcnJpZGVIb29rU3RhdGVEZWxldGVQYXRoID0gbnVsbCxcbiAgICAgIG92ZXJyaWRlSG9va1N0YXRlUmVuYW1lUGF0aCA9IG51bGwsXG4gICAgICBvdmVycmlkZVByb3BzID0gbnVsbCxcbiAgICAgIG92ZXJyaWRlUHJvcHNEZWxldGVQYXRoID0gbnVsbCxcbiAgICAgIG92ZXJyaWRlUHJvcHNSZW5hbWVQYXRoID0gbnVsbCxcbiAgICAgIHNjaGVkdWxlVXBkYXRlID0gbnVsbCxcbiAgICAgIHNldEVycm9ySGFuZGxlciA9IG51bGwsXG4gICAgICBzZXRTdXNwZW5zZUhhbmRsZXIgPSBudWxsO1xuICAgIG92ZXJyaWRlSG9va1N0YXRlID0gZnVuY3Rpb24gKGZpYmVyLCBpZCwgcGF0aCwgdmFsdWUpIHtcbiAgICAgIGlkID0gZmluZEhvb2soZmliZXIsIGlkKTtcbiAgICAgIG51bGwgIT09IGlkICYmXG4gICAgICAgICgocGF0aCA9IGNvcHlXaXRoU2V0SW1wbChpZC5tZW1vaXplZFN0YXRlLCBwYXRoLCAwLCB2YWx1ZSkpLFxuICAgICAgICAoaWQubWVtb2l6ZWRTdGF0ZSA9IHBhdGgpLFxuICAgICAgICAoaWQuYmFzZVN0YXRlID0gcGF0aCksXG4gICAgICAgIChmaWJlci5tZW1vaXplZFByb3BzID0gYXNzaWduKHt9LCBmaWJlci5tZW1vaXplZFByb3BzKSksXG4gICAgICAgIChwYXRoID0gZW5xdWV1ZUNvbmN1cnJlbnRSZW5kZXJGb3JMYW5lKGZpYmVyLCAyKSksXG4gICAgICAgIG51bGwgIT09IHBhdGggJiYgc2NoZWR1bGVVcGRhdGVPbkZpYmVyKHBhdGgsIGZpYmVyLCAyKSk7XG4gICAgfTtcbiAgICBvdmVycmlkZUhvb2tTdGF0ZURlbGV0ZVBhdGggPSBmdW5jdGlvbiAoZmliZXIsIGlkLCBwYXRoKSB7XG4gICAgICBpZCA9IGZpbmRIb29rKGZpYmVyLCBpZCk7XG4gICAgICBudWxsICE9PSBpZCAmJlxuICAgICAgICAoKHBhdGggPSBjb3B5V2l0aERlbGV0ZUltcGwoaWQubWVtb2l6ZWRTdGF0ZSwgcGF0aCwgMCkpLFxuICAgICAgICAoaWQubWVtb2l6ZWRTdGF0ZSA9IHBhdGgpLFxuICAgICAgICAoaWQuYmFzZVN0YXRlID0gcGF0aCksXG4gICAgICAgIChmaWJlci5tZW1vaXplZFByb3BzID0gYXNzaWduKHt9LCBmaWJlci5tZW1vaXplZFByb3BzKSksXG4gICAgICAgIChwYXRoID0gZW5xdWV1ZUNvbmN1cnJlbnRSZW5kZXJGb3JMYW5lKGZpYmVyLCAyKSksXG4gICAgICAgIG51bGwgIT09IHBhdGggJiYgc2NoZWR1bGVVcGRhdGVPbkZpYmVyKHBhdGgsIGZpYmVyLCAyKSk7XG4gICAgfTtcbiAgICBvdmVycmlkZUhvb2tTdGF0ZVJlbmFtZVBhdGggPSBmdW5jdGlvbiAoZmliZXIsIGlkLCBvbGRQYXRoLCBuZXdQYXRoKSB7XG4gICAgICBpZCA9IGZpbmRIb29rKGZpYmVyLCBpZCk7XG4gICAgICBudWxsICE9PSBpZCAmJlxuICAgICAgICAoKG9sZFBhdGggPSBjb3B5V2l0aFJlbmFtZShpZC5tZW1vaXplZFN0YXRlLCBvbGRQYXRoLCBuZXdQYXRoKSksXG4gICAgICAgIChpZC5tZW1vaXplZFN0YXRlID0gb2xkUGF0aCksXG4gICAgICAgIChpZC5iYXNlU3RhdGUgPSBvbGRQYXRoKSxcbiAgICAgICAgKGZpYmVyLm1lbW9pemVkUHJvcHMgPSBhc3NpZ24oe30sIGZpYmVyLm1lbW9pemVkUHJvcHMpKSxcbiAgICAgICAgKG9sZFBhdGggPSBlbnF1ZXVlQ29uY3VycmVudFJlbmRlckZvckxhbmUoZmliZXIsIDIpKSxcbiAgICAgICAgbnVsbCAhPT0gb2xkUGF0aCAmJiBzY2hlZHVsZVVwZGF0ZU9uRmliZXIob2xkUGF0aCwgZmliZXIsIDIpKTtcbiAgICB9O1xuICAgIG92ZXJyaWRlUHJvcHMgPSBmdW5jdGlvbiAoZmliZXIsIHBhdGgsIHZhbHVlKSB7XG4gICAgICBmaWJlci5wZW5kaW5nUHJvcHMgPSBjb3B5V2l0aFNldEltcGwoZmliZXIubWVtb2l6ZWRQcm9wcywgcGF0aCwgMCwgdmFsdWUpO1xuICAgICAgZmliZXIuYWx0ZXJuYXRlICYmIChmaWJlci5hbHRlcm5hdGUucGVuZGluZ1Byb3BzID0gZmliZXIucGVuZGluZ1Byb3BzKTtcbiAgICAgIHBhdGggPSBlbnF1ZXVlQ29uY3VycmVudFJlbmRlckZvckxhbmUoZmliZXIsIDIpO1xuICAgICAgbnVsbCAhPT0gcGF0aCAmJiBzY2hlZHVsZVVwZGF0ZU9uRmliZXIocGF0aCwgZmliZXIsIDIpO1xuICAgIH07XG4gICAgb3ZlcnJpZGVQcm9wc0RlbGV0ZVBhdGggPSBmdW5jdGlvbiAoZmliZXIsIHBhdGgpIHtcbiAgICAgIGZpYmVyLnBlbmRpbmdQcm9wcyA9IGNvcHlXaXRoRGVsZXRlSW1wbChmaWJlci5tZW1vaXplZFByb3BzLCBwYXRoLCAwKTtcbiAgICAgIGZpYmVyLmFsdGVybmF0ZSAmJiAoZmliZXIuYWx0ZXJuYXRlLnBlbmRpbmdQcm9wcyA9IGZpYmVyLnBlbmRpbmdQcm9wcyk7XG4gICAgICBwYXRoID0gZW5xdWV1ZUNvbmN1cnJlbnRSZW5kZXJGb3JMYW5lKGZpYmVyLCAyKTtcbiAgICAgIG51bGwgIT09IHBhdGggJiYgc2NoZWR1bGVVcGRhdGVPbkZpYmVyKHBhdGgsIGZpYmVyLCAyKTtcbiAgICB9O1xuICAgIG92ZXJyaWRlUHJvcHNSZW5hbWVQYXRoID0gZnVuY3Rpb24gKGZpYmVyLCBvbGRQYXRoLCBuZXdQYXRoKSB7XG4gICAgICBmaWJlci5wZW5kaW5nUHJvcHMgPSBjb3B5V2l0aFJlbmFtZShcbiAgICAgICAgZmliZXIubWVtb2l6ZWRQcm9wcyxcbiAgICAgICAgb2xkUGF0aCxcbiAgICAgICAgbmV3UGF0aFxuICAgICAgKTtcbiAgICAgIGZpYmVyLmFsdGVybmF0ZSAmJiAoZmliZXIuYWx0ZXJuYXRlLnBlbmRpbmdQcm9wcyA9IGZpYmVyLnBlbmRpbmdQcm9wcyk7XG4gICAgICBvbGRQYXRoID0gZW5xdWV1ZUNvbmN1cnJlbnRSZW5kZXJGb3JMYW5lKGZpYmVyLCAyKTtcbiAgICAgIG51bGwgIT09IG9sZFBhdGggJiYgc2NoZWR1bGVVcGRhdGVPbkZpYmVyKG9sZFBhdGgsIGZpYmVyLCAyKTtcbiAgICB9O1xuICAgIHNjaGVkdWxlVXBkYXRlID0gZnVuY3Rpb24gKGZpYmVyKSB7XG4gICAgICB2YXIgcm9vdCA9IGVucXVldWVDb25jdXJyZW50UmVuZGVyRm9yTGFuZShmaWJlciwgMik7XG4gICAgICBudWxsICE9PSByb290ICYmIHNjaGVkdWxlVXBkYXRlT25GaWJlcihyb290LCBmaWJlciwgMik7XG4gICAgfTtcbiAgICBzZXRFcnJvckhhbmRsZXIgPSBmdW5jdGlvbiAobmV3U2hvdWxkRXJyb3JJbXBsKSB7XG4gICAgICBzaG91bGRFcnJvckltcGwgPSBuZXdTaG91bGRFcnJvckltcGw7XG4gICAgfTtcbiAgICBzZXRTdXNwZW5zZUhhbmRsZXIgPSBmdW5jdGlvbiAobmV3U2hvdWxkU3VzcGVuZEltcGwpIHtcbiAgICAgIHNob3VsZFN1c3BlbmRJbXBsID0gbmV3U2hvdWxkU3VzcGVuZEltcGw7XG4gICAgfTtcbiAgICB2YXIgX2VuYWJsZWQgPSAhMCxcbiAgICAgIHJldHVybl90YXJnZXRJbnN0ID0gbnVsbCxcbiAgICAgIGhhc1NjaGVkdWxlZFJlcGxheUF0dGVtcHQgPSAhMSxcbiAgICAgIHF1ZXVlZEZvY3VzID0gbnVsbCxcbiAgICAgIHF1ZXVlZERyYWcgPSBudWxsLFxuICAgICAgcXVldWVkTW91c2UgPSBudWxsLFxuICAgICAgcXVldWVkUG9pbnRlcnMgPSBuZXcgTWFwKCksXG4gICAgICBxdWV1ZWRQb2ludGVyQ2FwdHVyZXMgPSBuZXcgTWFwKCksXG4gICAgICBxdWV1ZWRFeHBsaWNpdEh5ZHJhdGlvblRhcmdldHMgPSBbXSxcbiAgICAgIGRpc2NyZXRlUmVwbGF5YWJsZUV2ZW50cyA9XG4gICAgICAgIFwibW91c2Vkb3duIG1vdXNldXAgdG91Y2hjYW5jZWwgdG91Y2hlbmQgdG91Y2hzdGFydCBhdXhjbGljayBkYmxjbGljayBwb2ludGVyY2FuY2VsIHBvaW50ZXJkb3duIHBvaW50ZXJ1cCBkcmFnZW5kIGRyYWdzdGFydCBkcm9wIGNvbXBvc2l0aW9uZW5kIGNvbXBvc2l0aW9uc3RhcnQga2V5ZG93biBrZXlwcmVzcyBrZXl1cCBpbnB1dCB0ZXh0SW5wdXQgY29weSBjdXQgcGFzdGUgY2xpY2sgY2hhbmdlIGNvbnRleHRtZW51IHJlc2V0XCIuc3BsaXQoXG4gICAgICAgICAgXCIgXCJcbiAgICAgICAgKSxcbiAgICAgIGxhc3RTY2hlZHVsZWRSZXBsYXlRdWV1ZSA9IG51bGw7XG4gICAgUmVhY3RET01IeWRyYXRpb25Sb290LnByb3RvdHlwZS5yZW5kZXIgPSBSZWFjdERPTVJvb3QucHJvdG90eXBlLnJlbmRlciA9XG4gICAgICBmdW5jdGlvbiAoY2hpbGRyZW4pIHtcbiAgICAgICAgdmFyIHJvb3QgPSB0aGlzLl9pbnRlcm5hbFJvb3Q7XG4gICAgICAgIGlmIChudWxsID09PSByb290KSB0aHJvdyBFcnJvcihcIkNhbm5vdCB1cGRhdGUgYW4gdW5tb3VudGVkIHJvb3QuXCIpO1xuICAgICAgICB2YXIgYXJncyA9IGFyZ3VtZW50cztcbiAgICAgICAgXCJmdW5jdGlvblwiID09PSB0eXBlb2YgYXJnc1sxXVxuICAgICAgICAgID8gY29uc29sZS5lcnJvcihcbiAgICAgICAgICAgICAgXCJkb2VzIG5vdCBzdXBwb3J0IHRoZSBzZWNvbmQgY2FsbGJhY2sgYXJndW1lbnQuIFRvIGV4ZWN1dGUgYSBzaWRlIGVmZmVjdCBhZnRlciByZW5kZXJpbmcsIGRlY2xhcmUgaXQgaW4gYSBjb21wb25lbnQgYm9keSB3aXRoIHVzZUVmZmVjdCgpLlwiXG4gICAgICAgICAgICApXG4gICAgICAgICAgOiBpc1ZhbGlkQ29udGFpbmVyKGFyZ3NbMV0pXG4gICAgICAgICAgICA/IGNvbnNvbGUuZXJyb3IoXG4gICAgICAgICAgICAgICAgXCJZb3UgcGFzc2VkIGEgY29udGFpbmVyIHRvIHRoZSBzZWNvbmQgYXJndW1lbnQgb2Ygcm9vdC5yZW5kZXIoLi4uKS4gWW91IGRvbid0IG5lZWQgdG8gcGFzcyBpdCBhZ2FpbiBzaW5jZSB5b3UgYWxyZWFkeSBwYXNzZWQgaXQgdG8gY3JlYXRlIHRoZSByb290LlwiXG4gICAgICAgICAgICAgIClcbiAgICAgICAgICAgIDogXCJ1bmRlZmluZWRcIiAhPT0gdHlwZW9mIGFyZ3NbMV0gJiZcbiAgICAgICAgICAgICAgY29uc29sZS5lcnJvcihcbiAgICAgICAgICAgICAgICBcIllvdSBwYXNzZWQgYSBzZWNvbmQgYXJndW1lbnQgdG8gcm9vdC5yZW5kZXIoLi4uKSBidXQgaXQgb25seSBhY2NlcHRzIG9uZSBhcmd1bWVudC5cIlxuICAgICAgICAgICAgICApO1xuICAgICAgICBhcmdzID0gY2hpbGRyZW47XG4gICAgICAgIHZhciBjdXJyZW50ID0gcm9vdC5jdXJyZW50LFxuICAgICAgICAgIGxhbmUgPSByZXF1ZXN0VXBkYXRlTGFuZShjdXJyZW50KTtcbiAgICAgICAgdXBkYXRlQ29udGFpbmVySW1wbChjdXJyZW50LCBsYW5lLCBhcmdzLCByb290LCBudWxsLCBudWxsKTtcbiAgICAgIH07XG4gICAgUmVhY3RET01IeWRyYXRpb25Sb290LnByb3RvdHlwZS51bm1vdW50ID0gUmVhY3RET01Sb290LnByb3RvdHlwZS51bm1vdW50ID1cbiAgICAgIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgdmFyIGFyZ3MgPSBhcmd1bWVudHM7XG4gICAgICAgIFwiZnVuY3Rpb25cIiA9PT0gdHlwZW9mIGFyZ3NbMF0gJiZcbiAgICAgICAgICBjb25zb2xlLmVycm9yKFxuICAgICAgICAgICAgXCJkb2VzIG5vdCBzdXBwb3J0IGEgY2FsbGJhY2sgYXJndW1lbnQuIFRvIGV4ZWN1dGUgYSBzaWRlIGVmZmVjdCBhZnRlciByZW5kZXJpbmcsIGRlY2xhcmUgaXQgaW4gYSBjb21wb25lbnQgYm9keSB3aXRoIHVzZUVmZmVjdCgpLlwiXG4gICAgICAgICAgKTtcbiAgICAgICAgYXJncyA9IHRoaXMuX2ludGVybmFsUm9vdDtcbiAgICAgICAgaWYgKG51bGwgIT09IGFyZ3MpIHtcbiAgICAgICAgICB0aGlzLl9pbnRlcm5hbFJvb3QgPSBudWxsO1xuICAgICAgICAgIHZhciBjb250YWluZXIgPSBhcmdzLmNvbnRhaW5lckluZm87XG4gICAgICAgICAgKGV4ZWN1dGlvbkNvbnRleHQgJiAoUmVuZGVyQ29udGV4dCB8IENvbW1pdENvbnRleHQpKSAhPT0gTm9Db250ZXh0ICYmXG4gICAgICAgICAgICBjb25zb2xlLmVycm9yKFxuICAgICAgICAgICAgICBcIkF0dGVtcHRlZCB0byBzeW5jaHJvbm91c2x5IHVubW91bnQgYSByb290IHdoaWxlIFJlYWN0IHdhcyBhbHJlYWR5IHJlbmRlcmluZy4gUmVhY3QgY2Fubm90IGZpbmlzaCB1bm1vdW50aW5nIHRoZSByb290IHVudGlsIHRoZSBjdXJyZW50IHJlbmRlciBoYXMgY29tcGxldGVkLCB3aGljaCBtYXkgbGVhZCB0byBhIHJhY2UgY29uZGl0aW9uLlwiXG4gICAgICAgICAgICApO1xuICAgICAgICAgIHVwZGF0ZUNvbnRhaW5lckltcGwoYXJncy5jdXJyZW50LCAyLCBudWxsLCBhcmdzLCBudWxsLCBudWxsKTtcbiAgICAgICAgICBmbHVzaFN5bmNXb3JrJDEoKTtcbiAgICAgICAgICBjb250YWluZXJbaW50ZXJuYWxDb250YWluZXJJbnN0YW5jZUtleV0gPSBudWxsO1xuICAgICAgICB9XG4gICAgICB9O1xuICAgIFJlYWN0RE9NSHlkcmF0aW9uUm9vdC5wcm90b3R5cGUudW5zdGFibGVfc2NoZWR1bGVIeWRyYXRpb24gPSBmdW5jdGlvbiAoXG4gICAgICB0YXJnZXRcbiAgICApIHtcbiAgICAgIGlmICh0YXJnZXQpIHtcbiAgICAgICAgdmFyIHVwZGF0ZVByaW9yaXR5ID0gcmVzb2x2ZVVwZGF0ZVByaW9yaXR5KCk7XG4gICAgICAgIHRhcmdldCA9IHsgYmxvY2tlZE9uOiBudWxsLCB0YXJnZXQ6IHRhcmdldCwgcHJpb3JpdHk6IHVwZGF0ZVByaW9yaXR5IH07XG4gICAgICAgIGZvciAoXG4gICAgICAgICAgdmFyIGkgPSAwO1xuICAgICAgICAgIGkgPCBxdWV1ZWRFeHBsaWNpdEh5ZHJhdGlvblRhcmdldHMubGVuZ3RoICYmXG4gICAgICAgICAgMCAhPT0gdXBkYXRlUHJpb3JpdHkgJiZcbiAgICAgICAgICB1cGRhdGVQcmlvcml0eSA8IHF1ZXVlZEV4cGxpY2l0SHlkcmF0aW9uVGFyZ2V0c1tpXS5wcmlvcml0eTtcbiAgICAgICAgICBpKytcbiAgICAgICAgKTtcbiAgICAgICAgcXVldWVkRXhwbGljaXRIeWRyYXRpb25UYXJnZXRzLnNwbGljZShpLCAwLCB0YXJnZXQpO1xuICAgICAgICAwID09PSBpICYmIGF0dGVtcHRFeHBsaWNpdEh5ZHJhdGlvblRhcmdldCh0YXJnZXQpO1xuICAgICAgfVxuICAgIH07XG4gICAgKGZ1bmN0aW9uICgpIHtcbiAgICAgIHZhciBpc29tb3JwaGljUmVhY3RQYWNrYWdlVmVyc2lvbiA9IFJlYWN0LnZlcnNpb247XG4gICAgICBpZiAoXCIxOS4xLjBcIiAhPT0gaXNvbW9ycGhpY1JlYWN0UGFja2FnZVZlcnNpb24pXG4gICAgICAgIHRocm93IEVycm9yKFxuICAgICAgICAgICdJbmNvbXBhdGlibGUgUmVhY3QgdmVyc2lvbnM6IFRoZSBcInJlYWN0XCIgYW5kIFwicmVhY3QtZG9tXCIgcGFja2FnZXMgbXVzdCBoYXZlIHRoZSBleGFjdCBzYW1lIHZlcnNpb24uIEluc3RlYWQgZ290OlxcbiAgLSByZWFjdDogICAgICAnICtcbiAgICAgICAgICAgIChpc29tb3JwaGljUmVhY3RQYWNrYWdlVmVyc2lvbiArXG4gICAgICAgICAgICAgIFwiXFxuICAtIHJlYWN0LWRvbTogIDE5LjEuMFxcbkxlYXJuIG1vcmU6IGh0dHBzOi8vcmVhY3QuZGV2L3dhcm5pbmdzL3ZlcnNpb24tbWlzbWF0Y2hcIilcbiAgICAgICAgKTtcbiAgICB9KSgpO1xuICAgIChcImZ1bmN0aW9uXCIgPT09IHR5cGVvZiBNYXAgJiZcbiAgICAgIG51bGwgIT0gTWFwLnByb3RvdHlwZSAmJlxuICAgICAgXCJmdW5jdGlvblwiID09PSB0eXBlb2YgTWFwLnByb3RvdHlwZS5mb3JFYWNoICYmXG4gICAgICBcImZ1bmN0aW9uXCIgPT09IHR5cGVvZiBTZXQgJiZcbiAgICAgIG51bGwgIT0gU2V0LnByb3RvdHlwZSAmJlxuICAgICAgXCJmdW5jdGlvblwiID09PSB0eXBlb2YgU2V0LnByb3RvdHlwZS5jbGVhciAmJlxuICAgICAgXCJmdW5jdGlvblwiID09PSB0eXBlb2YgU2V0LnByb3RvdHlwZS5mb3JFYWNoKSB8fFxuICAgICAgY29uc29sZS5lcnJvcihcbiAgICAgICAgXCJSZWFjdCBkZXBlbmRzIG9uIE1hcCBhbmQgU2V0IGJ1aWx0LWluIHR5cGVzLiBNYWtlIHN1cmUgdGhhdCB5b3UgbG9hZCBhIHBvbHlmaWxsIGluIG9sZGVyIGJyb3dzZXJzLiBodHRwczovL3JlYWN0LmRldi9saW5rL3JlYWN0LXBvbHlmaWxsc1wiXG4gICAgICApO1xuICAgIFJlYWN0RE9NU2hhcmVkSW50ZXJuYWxzLmZpbmRET01Ob2RlID0gZnVuY3Rpb24gKGNvbXBvbmVudE9yRWxlbWVudCkge1xuICAgICAgdmFyIGZpYmVyID0gY29tcG9uZW50T3JFbGVtZW50Ll9yZWFjdEludGVybmFscztcbiAgICAgIGlmICh2b2lkIDAgPT09IGZpYmVyKSB7XG4gICAgICAgIGlmIChcImZ1bmN0aW9uXCIgPT09IHR5cGVvZiBjb21wb25lbnRPckVsZW1lbnQucmVuZGVyKVxuICAgICAgICAgIHRocm93IEVycm9yKFwiVW5hYmxlIHRvIGZpbmQgbm9kZSBvbiBhbiB1bm1vdW50ZWQgY29tcG9uZW50LlwiKTtcbiAgICAgICAgY29tcG9uZW50T3JFbGVtZW50ID0gT2JqZWN0LmtleXMoY29tcG9uZW50T3JFbGVtZW50KS5qb2luKFwiLFwiKTtcbiAgICAgICAgdGhyb3cgRXJyb3IoXG4gICAgICAgICAgXCJBcmd1bWVudCBhcHBlYXJzIHRvIG5vdCBiZSBhIFJlYWN0Q29tcG9uZW50LiBLZXlzOiBcIiArXG4gICAgICAgICAgICBjb21wb25lbnRPckVsZW1lbnRcbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICAgIGNvbXBvbmVudE9yRWxlbWVudCA9IGZpbmRDdXJyZW50RmliZXJVc2luZ1Nsb3dQYXRoKGZpYmVyKTtcbiAgICAgIGNvbXBvbmVudE9yRWxlbWVudCA9XG4gICAgICAgIG51bGwgIT09IGNvbXBvbmVudE9yRWxlbWVudFxuICAgICAgICAgID8gZmluZEN1cnJlbnRIb3N0RmliZXJJbXBsKGNvbXBvbmVudE9yRWxlbWVudClcbiAgICAgICAgICA6IG51bGw7XG4gICAgICBjb21wb25lbnRPckVsZW1lbnQgPVxuICAgICAgICBudWxsID09PSBjb21wb25lbnRPckVsZW1lbnQgPyBudWxsIDogY29tcG9uZW50T3JFbGVtZW50LnN0YXRlTm9kZTtcbiAgICAgIHJldHVybiBjb21wb25lbnRPckVsZW1lbnQ7XG4gICAgfTtcbiAgICBpZiAoXG4gICAgICAhKGZ1bmN0aW9uICgpIHtcbiAgICAgICAgdmFyIGludGVybmFscyA9IHtcbiAgICAgICAgICBidW5kbGVUeXBlOiAxLFxuICAgICAgICAgIHZlcnNpb246IFwiMTkuMS4wXCIsXG4gICAgICAgICAgcmVuZGVyZXJQYWNrYWdlTmFtZTogXCJyZWFjdC1kb21cIixcbiAgICAgICAgICBjdXJyZW50RGlzcGF0Y2hlclJlZjogUmVhY3RTaGFyZWRJbnRlcm5hbHMsXG4gICAgICAgICAgcmVjb25jaWxlclZlcnNpb246IFwiMTkuMS4wXCJcbiAgICAgICAgfTtcbiAgICAgICAgaW50ZXJuYWxzLm92ZXJyaWRlSG9va1N0YXRlID0gb3ZlcnJpZGVIb29rU3RhdGU7XG4gICAgICAgIGludGVybmFscy5vdmVycmlkZUhvb2tTdGF0ZURlbGV0ZVBhdGggPSBvdmVycmlkZUhvb2tTdGF0ZURlbGV0ZVBhdGg7XG4gICAgICAgIGludGVybmFscy5vdmVycmlkZUhvb2tTdGF0ZVJlbmFtZVBhdGggPSBvdmVycmlkZUhvb2tTdGF0ZVJlbmFtZVBhdGg7XG4gICAgICAgIGludGVybmFscy5vdmVycmlkZVByb3BzID0gb3ZlcnJpZGVQcm9wcztcbiAgICAgICAgaW50ZXJuYWxzLm92ZXJyaWRlUHJvcHNEZWxldGVQYXRoID0gb3ZlcnJpZGVQcm9wc0RlbGV0ZVBhdGg7XG4gICAgICAgIGludGVybmFscy5vdmVycmlkZVByb3BzUmVuYW1lUGF0aCA9IG92ZXJyaWRlUHJvcHNSZW5hbWVQYXRoO1xuICAgICAgICBpbnRlcm5hbHMuc2NoZWR1bGVVcGRhdGUgPSBzY2hlZHVsZVVwZGF0ZTtcbiAgICAgICAgaW50ZXJuYWxzLnNldEVycm9ySGFuZGxlciA9IHNldEVycm9ySGFuZGxlcjtcbiAgICAgICAgaW50ZXJuYWxzLnNldFN1c3BlbnNlSGFuZGxlciA9IHNldFN1c3BlbnNlSGFuZGxlcjtcbiAgICAgICAgaW50ZXJuYWxzLnNjaGVkdWxlUmVmcmVzaCA9IHNjaGVkdWxlUmVmcmVzaDtcbiAgICAgICAgaW50ZXJuYWxzLnNjaGVkdWxlUm9vdCA9IHNjaGVkdWxlUm9vdDtcbiAgICAgICAgaW50ZXJuYWxzLnNldFJlZnJlc2hIYW5kbGVyID0gc2V0UmVmcmVzaEhhbmRsZXI7XG4gICAgICAgIGludGVybmFscy5nZXRDdXJyZW50RmliZXIgPSBnZXRDdXJyZW50RmliZXJGb3JEZXZUb29scztcbiAgICAgICAgaW50ZXJuYWxzLmdldExhbmVMYWJlbE1hcCA9IGdldExhbmVMYWJlbE1hcDtcbiAgICAgICAgaW50ZXJuYWxzLmluamVjdFByb2ZpbGluZ0hvb2tzID0gaW5qZWN0UHJvZmlsaW5nSG9va3M7XG4gICAgICAgIHJldHVybiBpbmplY3RJbnRlcm5hbHMoaW50ZXJuYWxzKTtcbiAgICAgIH0pKCkgJiZcbiAgICAgIGNhblVzZURPTSAmJlxuICAgICAgd2luZG93LnRvcCA9PT0gd2luZG93LnNlbGYgJiZcbiAgICAgICgoLTEgPCBuYXZpZ2F0b3IudXNlckFnZW50LmluZGV4T2YoXCJDaHJvbWVcIikgJiZcbiAgICAgICAgLTEgPT09IG5hdmlnYXRvci51c2VyQWdlbnQuaW5kZXhPZihcIkVkZ2VcIikpIHx8XG4gICAgICAgIC0xIDwgbmF2aWdhdG9yLnVzZXJBZ2VudC5pbmRleE9mKFwiRmlyZWZveFwiKSlcbiAgICApIHtcbiAgICAgIHZhciBwcm90b2NvbCA9IHdpbmRvdy5sb2NhdGlvbi5wcm90b2NvbDtcbiAgICAgIC9eKGh0dHBzP3xmaWxlKTokLy50ZXN0KHByb3RvY29sKSAmJlxuICAgICAgICBjb25zb2xlLmluZm8oXG4gICAgICAgICAgXCIlY0Rvd25sb2FkIHRoZSBSZWFjdCBEZXZUb29scyBmb3IgYSBiZXR0ZXIgZGV2ZWxvcG1lbnQgZXhwZXJpZW5jZTogaHR0cHM6Ly9yZWFjdC5kZXYvbGluay9yZWFjdC1kZXZ0b29sc1wiICtcbiAgICAgICAgICAgIChcImZpbGU6XCIgPT09IHByb3RvY29sXG4gICAgICAgICAgICAgID8gXCJcXG5Zb3UgbWlnaHQgbmVlZCB0byB1c2UgYSBsb2NhbCBIVFRQIHNlcnZlciAoaW5zdGVhZCBvZiBmaWxlOi8vKTogaHR0cHM6Ly9yZWFjdC5kZXYvbGluay9yZWFjdC1kZXZ0b29scy1mYXFcIlxuICAgICAgICAgICAgICA6IFwiXCIpLFxuICAgICAgICAgIFwiZm9udC13ZWlnaHQ6Ym9sZFwiXG4gICAgICAgICk7XG4gICAgfVxuICAgIGV4cG9ydHMuY3JlYXRlUm9vdCA9IGZ1bmN0aW9uIChjb250YWluZXIsIG9wdGlvbnMpIHtcbiAgICAgIGlmICghaXNWYWxpZENvbnRhaW5lcihjb250YWluZXIpKVxuICAgICAgICB0aHJvdyBFcnJvcihcIlRhcmdldCBjb250YWluZXIgaXMgbm90IGEgRE9NIGVsZW1lbnQuXCIpO1xuICAgICAgd2FybklmUmVhY3RET01Db250YWluZXJJbkRFVihjb250YWluZXIpO1xuICAgICAgdmFyIGlzU3RyaWN0TW9kZSA9ICExLFxuICAgICAgICBpZGVudGlmaWVyUHJlZml4ID0gXCJcIixcbiAgICAgICAgb25VbmNhdWdodEVycm9yID0gZGVmYXVsdE9uVW5jYXVnaHRFcnJvcixcbiAgICAgICAgb25DYXVnaHRFcnJvciA9IGRlZmF1bHRPbkNhdWdodEVycm9yLFxuICAgICAgICBvblJlY292ZXJhYmxlRXJyb3IgPSBkZWZhdWx0T25SZWNvdmVyYWJsZUVycm9yLFxuICAgICAgICB0cmFuc2l0aW9uQ2FsbGJhY2tzID0gbnVsbDtcbiAgICAgIG51bGwgIT09IG9wdGlvbnMgJiZcbiAgICAgICAgdm9pZCAwICE9PSBvcHRpb25zICYmXG4gICAgICAgIChvcHRpb25zLmh5ZHJhdGVcbiAgICAgICAgICA/IGNvbnNvbGUud2FybihcbiAgICAgICAgICAgICAgXCJoeWRyYXRlIHRocm91Z2ggY3JlYXRlUm9vdCBpcyBkZXByZWNhdGVkLiBVc2UgUmVhY3RET01DbGllbnQuaHlkcmF0ZVJvb3QoY29udGFpbmVyLCA8QXBwIC8+KSBpbnN0ZWFkLlwiXG4gICAgICAgICAgICApXG4gICAgICAgICAgOiBcIm9iamVjdFwiID09PSB0eXBlb2Ygb3B0aW9ucyAmJlxuICAgICAgICAgICAgbnVsbCAhPT0gb3B0aW9ucyAmJlxuICAgICAgICAgICAgb3B0aW9ucy4kJHR5cGVvZiA9PT0gUkVBQ1RfRUxFTUVOVF9UWVBFICYmXG4gICAgICAgICAgICBjb25zb2xlLmVycm9yKFxuICAgICAgICAgICAgICBcIllvdSBwYXNzZWQgYSBKU1ggZWxlbWVudCB0byBjcmVhdGVSb290LiBZb3UgcHJvYmFibHkgbWVhbnQgdG8gY2FsbCByb290LnJlbmRlciBpbnN0ZWFkLiBFeGFtcGxlIHVzYWdlOlxcblxcbiAgbGV0IHJvb3QgPSBjcmVhdGVSb290KGRvbUNvbnRhaW5lcik7XFxuICByb290LnJlbmRlcig8QXBwIC8+KTtcIlxuICAgICAgICAgICAgKSxcbiAgICAgICAgITAgPT09IG9wdGlvbnMudW5zdGFibGVfc3RyaWN0TW9kZSAmJiAoaXNTdHJpY3RNb2RlID0gITApLFxuICAgICAgICB2b2lkIDAgIT09IG9wdGlvbnMuaWRlbnRpZmllclByZWZpeCAmJlxuICAgICAgICAgIChpZGVudGlmaWVyUHJlZml4ID0gb3B0aW9ucy5pZGVudGlmaWVyUHJlZml4KSxcbiAgICAgICAgdm9pZCAwICE9PSBvcHRpb25zLm9uVW5jYXVnaHRFcnJvciAmJlxuICAgICAgICAgIChvblVuY2F1Z2h0RXJyb3IgPSBvcHRpb25zLm9uVW5jYXVnaHRFcnJvciksXG4gICAgICAgIHZvaWQgMCAhPT0gb3B0aW9ucy5vbkNhdWdodEVycm9yICYmXG4gICAgICAgICAgKG9uQ2F1Z2h0RXJyb3IgPSBvcHRpb25zLm9uQ2F1Z2h0RXJyb3IpLFxuICAgICAgICB2b2lkIDAgIT09IG9wdGlvbnMub25SZWNvdmVyYWJsZUVycm9yICYmXG4gICAgICAgICAgKG9uUmVjb3ZlcmFibGVFcnJvciA9IG9wdGlvbnMub25SZWNvdmVyYWJsZUVycm9yKSxcbiAgICAgICAgdm9pZCAwICE9PSBvcHRpb25zLnVuc3RhYmxlX3RyYW5zaXRpb25DYWxsYmFja3MgJiZcbiAgICAgICAgICAodHJhbnNpdGlvbkNhbGxiYWNrcyA9IG9wdGlvbnMudW5zdGFibGVfdHJhbnNpdGlvbkNhbGxiYWNrcykpO1xuICAgICAgb3B0aW9ucyA9IGNyZWF0ZUZpYmVyUm9vdChcbiAgICAgICAgY29udGFpbmVyLFxuICAgICAgICAxLFxuICAgICAgICAhMSxcbiAgICAgICAgbnVsbCxcbiAgICAgICAgbnVsbCxcbiAgICAgICAgaXNTdHJpY3RNb2RlLFxuICAgICAgICBpZGVudGlmaWVyUHJlZml4LFxuICAgICAgICBvblVuY2F1Z2h0RXJyb3IsXG4gICAgICAgIG9uQ2F1Z2h0RXJyb3IsXG4gICAgICAgIG9uUmVjb3ZlcmFibGVFcnJvcixcbiAgICAgICAgdHJhbnNpdGlvbkNhbGxiYWNrcyxcbiAgICAgICAgbnVsbFxuICAgICAgKTtcbiAgICAgIGNvbnRhaW5lcltpbnRlcm5hbENvbnRhaW5lckluc3RhbmNlS2V5XSA9IG9wdGlvbnMuY3VycmVudDtcbiAgICAgIGxpc3RlblRvQWxsU3VwcG9ydGVkRXZlbnRzKGNvbnRhaW5lcik7XG4gICAgICByZXR1cm4gbmV3IFJlYWN0RE9NUm9vdChvcHRpb25zKTtcbiAgICB9O1xuICAgIGV4cG9ydHMuaHlkcmF0ZVJvb3QgPSBmdW5jdGlvbiAoY29udGFpbmVyLCBpbml0aWFsQ2hpbGRyZW4sIG9wdGlvbnMpIHtcbiAgICAgIGlmICghaXNWYWxpZENvbnRhaW5lcihjb250YWluZXIpKVxuICAgICAgICB0aHJvdyBFcnJvcihcIlRhcmdldCBjb250YWluZXIgaXMgbm90IGEgRE9NIGVsZW1lbnQuXCIpO1xuICAgICAgd2FybklmUmVhY3RET01Db250YWluZXJJbkRFVihjb250YWluZXIpO1xuICAgICAgdm9pZCAwID09PSBpbml0aWFsQ2hpbGRyZW4gJiZcbiAgICAgICAgY29uc29sZS5lcnJvcihcbiAgICAgICAgICBcIk11c3QgcHJvdmlkZSBpbml0aWFsIGNoaWxkcmVuIGFzIHNlY29uZCBhcmd1bWVudCB0byBoeWRyYXRlUm9vdC4gRXhhbXBsZSB1c2FnZTogaHlkcmF0ZVJvb3QoZG9tQ29udGFpbmVyLCA8QXBwIC8+KVwiXG4gICAgICAgICk7XG4gICAgICB2YXIgaXNTdHJpY3RNb2RlID0gITEsXG4gICAgICAgIGlkZW50aWZpZXJQcmVmaXggPSBcIlwiLFxuICAgICAgICBvblVuY2F1Z2h0RXJyb3IgPSBkZWZhdWx0T25VbmNhdWdodEVycm9yLFxuICAgICAgICBvbkNhdWdodEVycm9yID0gZGVmYXVsdE9uQ2F1Z2h0RXJyb3IsXG4gICAgICAgIG9uUmVjb3ZlcmFibGVFcnJvciA9IGRlZmF1bHRPblJlY292ZXJhYmxlRXJyb3IsXG4gICAgICAgIHRyYW5zaXRpb25DYWxsYmFja3MgPSBudWxsLFxuICAgICAgICBmb3JtU3RhdGUgPSBudWxsO1xuICAgICAgbnVsbCAhPT0gb3B0aW9ucyAmJlxuICAgICAgICB2b2lkIDAgIT09IG9wdGlvbnMgJiZcbiAgICAgICAgKCEwID09PSBvcHRpb25zLnVuc3RhYmxlX3N0cmljdE1vZGUgJiYgKGlzU3RyaWN0TW9kZSA9ICEwKSxcbiAgICAgICAgdm9pZCAwICE9PSBvcHRpb25zLmlkZW50aWZpZXJQcmVmaXggJiZcbiAgICAgICAgICAoaWRlbnRpZmllclByZWZpeCA9IG9wdGlvbnMuaWRlbnRpZmllclByZWZpeCksXG4gICAgICAgIHZvaWQgMCAhPT0gb3B0aW9ucy5vblVuY2F1Z2h0RXJyb3IgJiZcbiAgICAgICAgICAob25VbmNhdWdodEVycm9yID0gb3B0aW9ucy5vblVuY2F1Z2h0RXJyb3IpLFxuICAgICAgICB2b2lkIDAgIT09IG9wdGlvbnMub25DYXVnaHRFcnJvciAmJlxuICAgICAgICAgIChvbkNhdWdodEVycm9yID0gb3B0aW9ucy5vbkNhdWdodEVycm9yKSxcbiAgICAgICAgdm9pZCAwICE9PSBvcHRpb25zLm9uUmVjb3ZlcmFibGVFcnJvciAmJlxuICAgICAgICAgIChvblJlY292ZXJhYmxlRXJyb3IgPSBvcHRpb25zLm9uUmVjb3ZlcmFibGVFcnJvciksXG4gICAgICAgIHZvaWQgMCAhPT0gb3B0aW9ucy51bnN0YWJsZV90cmFuc2l0aW9uQ2FsbGJhY2tzICYmXG4gICAgICAgICAgKHRyYW5zaXRpb25DYWxsYmFja3MgPSBvcHRpb25zLnVuc3RhYmxlX3RyYW5zaXRpb25DYWxsYmFja3MpLFxuICAgICAgICB2b2lkIDAgIT09IG9wdGlvbnMuZm9ybVN0YXRlICYmIChmb3JtU3RhdGUgPSBvcHRpb25zLmZvcm1TdGF0ZSkpO1xuICAgICAgaW5pdGlhbENoaWxkcmVuID0gY3JlYXRlRmliZXJSb290KFxuICAgICAgICBjb250YWluZXIsXG4gICAgICAgIDEsXG4gICAgICAgICEwLFxuICAgICAgICBpbml0aWFsQ2hpbGRyZW4sXG4gICAgICAgIG51bGwgIT0gb3B0aW9ucyA/IG9wdGlvbnMgOiBudWxsLFxuICAgICAgICBpc1N0cmljdE1vZGUsXG4gICAgICAgIGlkZW50aWZpZXJQcmVmaXgsXG4gICAgICAgIG9uVW5jYXVnaHRFcnJvcixcbiAgICAgICAgb25DYXVnaHRFcnJvcixcbiAgICAgICAgb25SZWNvdmVyYWJsZUVycm9yLFxuICAgICAgICB0cmFuc2l0aW9uQ2FsbGJhY2tzLFxuICAgICAgICBmb3JtU3RhdGVcbiAgICAgICk7XG4gICAgICBpbml0aWFsQ2hpbGRyZW4uY29udGV4dCA9IGdldENvbnRleHRGb3JTdWJ0cmVlKG51bGwpO1xuICAgICAgb3B0aW9ucyA9IGluaXRpYWxDaGlsZHJlbi5jdXJyZW50O1xuICAgICAgaXNTdHJpY3RNb2RlID0gcmVxdWVzdFVwZGF0ZUxhbmUob3B0aW9ucyk7XG4gICAgICBpc1N0cmljdE1vZGUgPSBnZXRCdW1wZWRMYW5lRm9ySHlkcmF0aW9uQnlMYW5lKGlzU3RyaWN0TW9kZSk7XG4gICAgICBpZGVudGlmaWVyUHJlZml4ID0gY3JlYXRlVXBkYXRlKGlzU3RyaWN0TW9kZSk7XG4gICAgICBpZGVudGlmaWVyUHJlZml4LmNhbGxiYWNrID0gbnVsbDtcbiAgICAgIGVucXVldWVVcGRhdGUob3B0aW9ucywgaWRlbnRpZmllclByZWZpeCwgaXNTdHJpY3RNb2RlKTtcbiAgICAgIG9wdGlvbnMgPSBpc1N0cmljdE1vZGU7XG4gICAgICBpbml0aWFsQ2hpbGRyZW4uY3VycmVudC5sYW5lcyA9IG9wdGlvbnM7XG4gICAgICBtYXJrUm9vdFVwZGF0ZWQkMShpbml0aWFsQ2hpbGRyZW4sIG9wdGlvbnMpO1xuICAgICAgZW5zdXJlUm9vdElzU2NoZWR1bGVkKGluaXRpYWxDaGlsZHJlbik7XG4gICAgICBjb250YWluZXJbaW50ZXJuYWxDb250YWluZXJJbnN0YW5jZUtleV0gPSBpbml0aWFsQ2hpbGRyZW4uY3VycmVudDtcbiAgICAgIGxpc3RlblRvQWxsU3VwcG9ydGVkRXZlbnRzKGNvbnRhaW5lcik7XG4gICAgICByZXR1cm4gbmV3IFJlYWN0RE9NSHlkcmF0aW9uUm9vdChpbml0aWFsQ2hpbGRyZW4pO1xuICAgIH07XG4gICAgZXhwb3J0cy52ZXJzaW9uID0gXCIxOS4xLjBcIjtcbiAgICBcInVuZGVmaW5lZFwiICE9PSB0eXBlb2YgX19SRUFDVF9ERVZUT09MU19HTE9CQUxfSE9PS19fICYmXG4gICAgICBcImZ1bmN0aW9uXCIgPT09XG4gICAgICAgIHR5cGVvZiBfX1JFQUNUX0RFVlRPT0xTX0dMT0JBTF9IT09LX18ucmVnaXN0ZXJJbnRlcm5hbE1vZHVsZVN0b3AgJiZcbiAgICAgIF9fUkVBQ1RfREVWVE9PTFNfR0xPQkFMX0hPT0tfXy5yZWdpc3RlckludGVybmFsTW9kdWxlU3RvcChFcnJvcigpKTtcbiAgfSkoKTtcbiJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(pages-dir-browser)/./node_modules/react-dom/cjs/react-dom-client.development.js\n")); - -/***/ }), - -/***/ "(pages-dir-browser)/./node_modules/react-dom/cjs/react-dom.development.js": -/*!*************************************************************!*\ - !*** ./node_modules/react-dom/cjs/react-dom.development.js ***! - \*************************************************************/ -/***/ ((__unused_webpack_module, exports, __webpack_require__) => { - -"use strict"; -eval(__webpack_require__.ts("/**\n * @license React\n * react-dom.development.js\n *\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n\n true &&\n (function () {\n function noop() {}\n function testStringCoercion(value) {\n return \"\" + value;\n }\n function createPortal$1(children, containerInfo, implementation) {\n var key =\n 3 < arguments.length && void 0 !== arguments[3] ? arguments[3] : null;\n try {\n testStringCoercion(key);\n var JSCompiler_inline_result = !1;\n } catch (e) {\n JSCompiler_inline_result = !0;\n }\n JSCompiler_inline_result &&\n (console.error(\n \"The provided key is an unsupported type %s. This value must be coerced to a string before using it here.\",\n (\"function\" === typeof Symbol &&\n Symbol.toStringTag &&\n key[Symbol.toStringTag]) ||\n key.constructor.name ||\n \"Object\"\n ),\n testStringCoercion(key));\n return {\n $$typeof: REACT_PORTAL_TYPE,\n key: null == key ? null : \"\" + key,\n children: children,\n containerInfo: containerInfo,\n implementation: implementation\n };\n }\n function getCrossOriginStringAs(as, input) {\n if (\"font\" === as) return \"\";\n if (\"string\" === typeof input)\n return \"use-credentials\" === input ? input : \"\";\n }\n function getValueDescriptorExpectingObjectForWarning(thing) {\n return null === thing\n ? \"`null`\"\n : void 0 === thing\n ? \"`undefined`\"\n : \"\" === thing\n ? \"an empty string\"\n : 'something with type \"' + typeof thing + '\"';\n }\n function getValueDescriptorExpectingEnumForWarning(thing) {\n return null === thing\n ? \"`null`\"\n : void 0 === thing\n ? \"`undefined`\"\n : \"\" === thing\n ? \"an empty string\"\n : \"string\" === typeof thing\n ? JSON.stringify(thing)\n : \"number\" === typeof thing\n ? \"`\" + thing + \"`\"\n : 'something with type \"' + typeof thing + '\"';\n }\n function resolveDispatcher() {\n var dispatcher = ReactSharedInternals.H;\n null === dispatcher &&\n console.error(\n \"Invalid hook call. Hooks can only be called inside of the body of a function component. This could happen for one of the following reasons:\\n1. You might have mismatching versions of React and the renderer (such as React DOM)\\n2. You might be breaking the Rules of Hooks\\n3. You might have more than one copy of React in the same app\\nSee https://react.dev/link/invalid-hook-call for tips about how to debug and fix this problem.\"\n );\n return dispatcher;\n }\n \"undefined\" !== typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ &&\n \"function\" ===\n typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStart &&\n __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStart(Error());\n var React = __webpack_require__(/*! react */ \"(pages-dir-browser)/./node_modules/react/index.js\"),\n Internals = {\n d: {\n f: noop,\n r: function () {\n throw Error(\n \"Invalid form element. requestFormReset must be passed a form that was rendered by React.\"\n );\n },\n D: noop,\n C: noop,\n L: noop,\n m: noop,\n X: noop,\n S: noop,\n M: noop\n },\n p: 0,\n findDOMNode: null\n },\n REACT_PORTAL_TYPE = Symbol.for(\"react.portal\"),\n ReactSharedInternals =\n React.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE;\n (\"function\" === typeof Map &&\n null != Map.prototype &&\n \"function\" === typeof Map.prototype.forEach &&\n \"function\" === typeof Set &&\n null != Set.prototype &&\n \"function\" === typeof Set.prototype.clear &&\n \"function\" === typeof Set.prototype.forEach) ||\n console.error(\n \"React depends on Map and Set built-in types. Make sure that you load a polyfill in older browsers. https://reactjs.org/link/react-polyfills\"\n );\n exports.__DOM_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE =\n Internals;\n exports.createPortal = function (children, container) {\n var key =\n 2 < arguments.length && void 0 !== arguments[2] ? arguments[2] : null;\n if (\n !container ||\n (1 !== container.nodeType &&\n 9 !== container.nodeType &&\n 11 !== container.nodeType)\n )\n throw Error(\"Target container is not a DOM element.\");\n return createPortal$1(children, container, null, key);\n };\n exports.flushSync = function (fn) {\n var previousTransition = ReactSharedInternals.T,\n previousUpdatePriority = Internals.p;\n try {\n if (((ReactSharedInternals.T = null), (Internals.p = 2), fn))\n return fn();\n } finally {\n (ReactSharedInternals.T = previousTransition),\n (Internals.p = previousUpdatePriority),\n Internals.d.f() &&\n console.error(\n \"flushSync was called from inside a lifecycle method. React cannot flush when React is already rendering. Consider moving this call to a scheduler task or micro task.\"\n );\n }\n };\n exports.preconnect = function (href, options) {\n \"string\" === typeof href && href\n ? null != options && \"object\" !== typeof options\n ? console.error(\n \"ReactDOM.preconnect(): Expected the `options` argument (second) to be an object but encountered %s instead. The only supported option at this time is `crossOrigin` which accepts a string.\",\n getValueDescriptorExpectingEnumForWarning(options)\n )\n : null != options &&\n \"string\" !== typeof options.crossOrigin &&\n console.error(\n \"ReactDOM.preconnect(): Expected the `crossOrigin` option (second argument) to be a string but encountered %s instead. Try removing this option or passing a string value instead.\",\n getValueDescriptorExpectingObjectForWarning(options.crossOrigin)\n )\n : console.error(\n \"ReactDOM.preconnect(): Expected the `href` argument (first) to be a non-empty string but encountered %s instead.\",\n getValueDescriptorExpectingObjectForWarning(href)\n );\n \"string\" === typeof href &&\n (options\n ? ((options = options.crossOrigin),\n (options =\n \"string\" === typeof options\n ? \"use-credentials\" === options\n ? options\n : \"\"\n : void 0))\n : (options = null),\n Internals.d.C(href, options));\n };\n exports.prefetchDNS = function (href) {\n if (\"string\" !== typeof href || !href)\n console.error(\n \"ReactDOM.prefetchDNS(): Expected the `href` argument (first) to be a non-empty string but encountered %s instead.\",\n getValueDescriptorExpectingObjectForWarning(href)\n );\n else if (1 < arguments.length) {\n var options = arguments[1];\n \"object\" === typeof options && options.hasOwnProperty(\"crossOrigin\")\n ? console.error(\n \"ReactDOM.prefetchDNS(): Expected only one argument, `href`, but encountered %s as a second argument instead. This argument is reserved for future options and is currently disallowed. It looks like the you are attempting to set a crossOrigin property for this DNS lookup hint. Browsers do not perform DNS queries using CORS and setting this attribute on the resource hint has no effect. Try calling ReactDOM.prefetchDNS() with just a single string argument, `href`.\",\n getValueDescriptorExpectingEnumForWarning(options)\n )\n : console.error(\n \"ReactDOM.prefetchDNS(): Expected only one argument, `href`, but encountered %s as a second argument instead. This argument is reserved for future options and is currently disallowed. Try calling ReactDOM.prefetchDNS() with just a single string argument, `href`.\",\n getValueDescriptorExpectingEnumForWarning(options)\n );\n }\n \"string\" === typeof href && Internals.d.D(href);\n };\n exports.preinit = function (href, options) {\n \"string\" === typeof href && href\n ? null == options || \"object\" !== typeof options\n ? console.error(\n \"ReactDOM.preinit(): Expected the `options` argument (second) to be an object with an `as` property describing the type of resource to be preinitialized but encountered %s instead.\",\n getValueDescriptorExpectingEnumForWarning(options)\n )\n : \"style\" !== options.as &&\n \"script\" !== options.as &&\n console.error(\n 'ReactDOM.preinit(): Expected the `as` property in the `options` argument (second) to contain a valid value describing the type of resource to be preinitialized but encountered %s instead. Valid values for `as` are \"style\" and \"script\".',\n getValueDescriptorExpectingEnumForWarning(options.as)\n )\n : console.error(\n \"ReactDOM.preinit(): Expected the `href` argument (first) to be a non-empty string but encountered %s instead.\",\n getValueDescriptorExpectingObjectForWarning(href)\n );\n if (\n \"string\" === typeof href &&\n options &&\n \"string\" === typeof options.as\n ) {\n var as = options.as,\n crossOrigin = getCrossOriginStringAs(as, options.crossOrigin),\n integrity =\n \"string\" === typeof options.integrity ? options.integrity : void 0,\n fetchPriority =\n \"string\" === typeof options.fetchPriority\n ? options.fetchPriority\n : void 0;\n \"style\" === as\n ? Internals.d.S(\n href,\n \"string\" === typeof options.precedence\n ? options.precedence\n : void 0,\n {\n crossOrigin: crossOrigin,\n integrity: integrity,\n fetchPriority: fetchPriority\n }\n )\n : \"script\" === as &&\n Internals.d.X(href, {\n crossOrigin: crossOrigin,\n integrity: integrity,\n fetchPriority: fetchPriority,\n nonce: \"string\" === typeof options.nonce ? options.nonce : void 0\n });\n }\n };\n exports.preinitModule = function (href, options) {\n var encountered = \"\";\n (\"string\" === typeof href && href) ||\n (encountered +=\n \" The `href` argument encountered was \" +\n getValueDescriptorExpectingObjectForWarning(href) +\n \".\");\n void 0 !== options && \"object\" !== typeof options\n ? (encountered +=\n \" The `options` argument encountered was \" +\n getValueDescriptorExpectingObjectForWarning(options) +\n \".\")\n : options &&\n \"as\" in options &&\n \"script\" !== options.as &&\n (encountered +=\n \" The `as` option encountered was \" +\n getValueDescriptorExpectingEnumForWarning(options.as) +\n \".\");\n if (encountered)\n console.error(\n \"ReactDOM.preinitModule(): Expected up to two arguments, a non-empty `href` string and, optionally, an `options` object with a valid `as` property.%s\",\n encountered\n );\n else\n switch (\n ((encountered =\n options && \"string\" === typeof options.as ? options.as : \"script\"),\n encountered)\n ) {\n case \"script\":\n break;\n default:\n (encountered =\n getValueDescriptorExpectingEnumForWarning(encountered)),\n console.error(\n 'ReactDOM.preinitModule(): Currently the only supported \"as\" type for this function is \"script\" but received \"%s\" instead. This warning was generated for `href` \"%s\". In the future other module types will be supported, aligning with the import-attributes proposal. Learn more here: (https://github.com/tc39/proposal-import-attributes)',\n encountered,\n href\n );\n }\n if (\"string\" === typeof href)\n if (\"object\" === typeof options && null !== options) {\n if (null == options.as || \"script\" === options.as)\n (encountered = getCrossOriginStringAs(\n options.as,\n options.crossOrigin\n )),\n Internals.d.M(href, {\n crossOrigin: encountered,\n integrity:\n \"string\" === typeof options.integrity\n ? options.integrity\n : void 0,\n nonce:\n \"string\" === typeof options.nonce ? options.nonce : void 0\n });\n } else null == options && Internals.d.M(href);\n };\n exports.preload = function (href, options) {\n var encountered = \"\";\n (\"string\" === typeof href && href) ||\n (encountered +=\n \" The `href` argument encountered was \" +\n getValueDescriptorExpectingObjectForWarning(href) +\n \".\");\n null == options || \"object\" !== typeof options\n ? (encountered +=\n \" The `options` argument encountered was \" +\n getValueDescriptorExpectingObjectForWarning(options) +\n \".\")\n : (\"string\" === typeof options.as && options.as) ||\n (encountered +=\n \" The `as` option encountered was \" +\n getValueDescriptorExpectingObjectForWarning(options.as) +\n \".\");\n encountered &&\n console.error(\n 'ReactDOM.preload(): Expected two arguments, a non-empty `href` string and an `options` object with an `as` property valid for a `<link rel=\"preload\" as=\"...\" />` tag.%s',\n encountered\n );\n if (\n \"string\" === typeof href &&\n \"object\" === typeof options &&\n null !== options &&\n \"string\" === typeof options.as\n ) {\n encountered = options.as;\n var crossOrigin = getCrossOriginStringAs(\n encountered,\n options.crossOrigin\n );\n Internals.d.L(href, encountered, {\n crossOrigin: crossOrigin,\n integrity:\n \"string\" === typeof options.integrity ? options.integrity : void 0,\n nonce: \"string\" === typeof options.nonce ? options.nonce : void 0,\n type: \"string\" === typeof options.type ? options.type : void 0,\n fetchPriority:\n \"string\" === typeof options.fetchPriority\n ? options.fetchPriority\n : void 0,\n referrerPolicy:\n \"string\" === typeof options.referrerPolicy\n ? options.referrerPolicy\n : void 0,\n imageSrcSet:\n \"string\" === typeof options.imageSrcSet\n ? options.imageSrcSet\n : void 0,\n imageSizes:\n \"string\" === typeof options.imageSizes\n ? options.imageSizes\n : void 0,\n media: \"string\" === typeof options.media ? options.media : void 0\n });\n }\n };\n exports.preloadModule = function (href, options) {\n var encountered = \"\";\n (\"string\" === typeof href && href) ||\n (encountered +=\n \" The `href` argument encountered was \" +\n getValueDescriptorExpectingObjectForWarning(href) +\n \".\");\n void 0 !== options && \"object\" !== typeof options\n ? (encountered +=\n \" The `options` argument encountered was \" +\n getValueDescriptorExpectingObjectForWarning(options) +\n \".\")\n : options &&\n \"as\" in options &&\n \"string\" !== typeof options.as &&\n (encountered +=\n \" The `as` option encountered was \" +\n getValueDescriptorExpectingObjectForWarning(options.as) +\n \".\");\n encountered &&\n console.error(\n 'ReactDOM.preloadModule(): Expected two arguments, a non-empty `href` string and, optionally, an `options` object with an `as` property valid for a `<link rel=\"modulepreload\" as=\"...\" />` tag.%s',\n encountered\n );\n \"string\" === typeof href &&\n (options\n ? ((encountered = getCrossOriginStringAs(\n options.as,\n options.crossOrigin\n )),\n Internals.d.m(href, {\n as:\n \"string\" === typeof options.as && \"script\" !== options.as\n ? options.as\n : void 0,\n crossOrigin: encountered,\n integrity:\n \"string\" === typeof options.integrity\n ? options.integrity\n : void 0\n }))\n : Internals.d.m(href));\n };\n exports.requestFormReset = function (form) {\n Internals.d.r(form);\n };\n exports.unstable_batchedUpdates = function (fn, a) {\n return fn(a);\n };\n exports.useFormState = function (action, initialState, permalink) {\n return resolveDispatcher().useFormState(action, initialState, permalink);\n };\n exports.useFormStatus = function () {\n return resolveDispatcher().useHostTransitionStatus();\n };\n exports.version = \"19.1.0\";\n \"undefined\" !== typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ &&\n \"function\" ===\n typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop &&\n __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop(Error());\n })();\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9yZWFjdC1kb20vY2pzL3JlYWN0LWRvbS5kZXZlbG9wbWVudC5qcyIsIm1hcHBpbmdzIjoiQUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRWE7QUFDYixLQUFxQztBQUNyQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsUUFBUTtBQUNSO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxnQkFBZ0IsbUJBQU8sQ0FBQyxnRUFBTztBQUMvQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFdBQVc7QUFDWDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsSUFBSSxvRUFBb0U7QUFDeEU7QUFDQSxJQUFJLG9CQUFvQjtBQUN4QjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsSUFBSSxpQkFBaUI7QUFDckI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFFBQVE7QUFDUjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsSUFBSSxrQkFBa0I7QUFDdEI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxJQUFJLG1CQUFtQjtBQUN2QjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLElBQUksZUFBZTtBQUNuQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsYUFBYTtBQUNiO0FBQ0E7QUFDQSxJQUFJLHFCQUFxQjtBQUN6QjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGVBQWU7QUFDZixVQUFVO0FBQ1Y7QUFDQSxJQUFJLGVBQWU7QUFDbkI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBLElBQUkscUJBQXFCO0FBQ3pCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGFBQWE7QUFDYjtBQUNBO0FBQ0EsSUFBSSx3QkFBd0I7QUFDNUI7QUFDQTtBQUNBLElBQUksK0JBQStCO0FBQ25DO0FBQ0E7QUFDQSxJQUFJLG9CQUFvQjtBQUN4QjtBQUNBO0FBQ0EsSUFBSSxxQkFBcUI7QUFDekI7QUFDQTtBQUNBLElBQUksZUFBZTtBQUNuQjtBQUNBO0FBQ0E7QUFDQTtBQUNBLEdBQUciLCJzb3VyY2VzIjpbIkQ6XFxkb25neXVuLXByb2plY3RzXFx0d29cXG5vZGVfbW9kdWxlc1xccmVhY3QtZG9tXFxjanNcXHJlYWN0LWRvbS5kZXZlbG9wbWVudC5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBsaWNlbnNlIFJlYWN0XG4gKiByZWFjdC1kb20uZGV2ZWxvcG1lbnQuanNcbiAqXG4gKiBDb3B5cmlnaHQgKGMpIE1ldGEgUGxhdGZvcm1zLCBJbmMuIGFuZCBhZmZpbGlhdGVzLlxuICpcbiAqIFRoaXMgc291cmNlIGNvZGUgaXMgbGljZW5zZWQgdW5kZXIgdGhlIE1JVCBsaWNlbnNlIGZvdW5kIGluIHRoZVxuICogTElDRU5TRSBmaWxlIGluIHRoZSByb290IGRpcmVjdG9yeSBvZiB0aGlzIHNvdXJjZSB0cmVlLlxuICovXG5cblwidXNlIHN0cmljdFwiO1xuXCJwcm9kdWN0aW9uXCIgIT09IHByb2Nlc3MuZW52Lk5PREVfRU5WICYmXG4gIChmdW5jdGlvbiAoKSB7XG4gICAgZnVuY3Rpb24gbm9vcCgpIHt9XG4gICAgZnVuY3Rpb24gdGVzdFN0cmluZ0NvZXJjaW9uKHZhbHVlKSB7XG4gICAgICByZXR1cm4gXCJcIiArIHZhbHVlO1xuICAgIH1cbiAgICBmdW5jdGlvbiBjcmVhdGVQb3J0YWwkMShjaGlsZHJlbiwgY29udGFpbmVySW5mbywgaW1wbGVtZW50YXRpb24pIHtcbiAgICAgIHZhciBrZXkgPVxuICAgICAgICAzIDwgYXJndW1lbnRzLmxlbmd0aCAmJiB2b2lkIDAgIT09IGFyZ3VtZW50c1szXSA/IGFyZ3VtZW50c1szXSA6IG51bGw7XG4gICAgICB0cnkge1xuICAgICAgICB0ZXN0U3RyaW5nQ29lcmNpb24oa2V5KTtcbiAgICAgICAgdmFyIEpTQ29tcGlsZXJfaW5saW5lX3Jlc3VsdCA9ICExO1xuICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICBKU0NvbXBpbGVyX2lubGluZV9yZXN1bHQgPSAhMDtcbiAgICAgIH1cbiAgICAgIEpTQ29tcGlsZXJfaW5saW5lX3Jlc3VsdCAmJlxuICAgICAgICAoY29uc29sZS5lcnJvcihcbiAgICAgICAgICBcIlRoZSBwcm92aWRlZCBrZXkgaXMgYW4gdW5zdXBwb3J0ZWQgdHlwZSAlcy4gVGhpcyB2YWx1ZSBtdXN0IGJlIGNvZXJjZWQgdG8gYSBzdHJpbmcgYmVmb3JlIHVzaW5nIGl0IGhlcmUuXCIsXG4gICAgICAgICAgKFwiZnVuY3Rpb25cIiA9PT0gdHlwZW9mIFN5bWJvbCAmJlxuICAgICAgICAgICAgU3ltYm9sLnRvU3RyaW5nVGFnICYmXG4gICAgICAgICAgICBrZXlbU3ltYm9sLnRvU3RyaW5nVGFnXSkgfHxcbiAgICAgICAgICAgIGtleS5jb25zdHJ1Y3Rvci5uYW1lIHx8XG4gICAgICAgICAgICBcIk9iamVjdFwiXG4gICAgICAgICksXG4gICAgICAgIHRlc3RTdHJpbmdDb2VyY2lvbihrZXkpKTtcbiAgICAgIHJldHVybiB7XG4gICAgICAgICQkdHlwZW9mOiBSRUFDVF9QT1JUQUxfVFlQRSxcbiAgICAgICAga2V5OiBudWxsID09IGtleSA/IG51bGwgOiBcIlwiICsga2V5LFxuICAgICAgICBjaGlsZHJlbjogY2hpbGRyZW4sXG4gICAgICAgIGNvbnRhaW5lckluZm86IGNvbnRhaW5lckluZm8sXG4gICAgICAgIGltcGxlbWVudGF0aW9uOiBpbXBsZW1lbnRhdGlvblxuICAgICAgfTtcbiAgICB9XG4gICAgZnVuY3Rpb24gZ2V0Q3Jvc3NPcmlnaW5TdHJpbmdBcyhhcywgaW5wdXQpIHtcbiAgICAgIGlmIChcImZvbnRcIiA9PT0gYXMpIHJldHVybiBcIlwiO1xuICAgICAgaWYgKFwic3RyaW5nXCIgPT09IHR5cGVvZiBpbnB1dClcbiAgICAgICAgcmV0dXJuIFwidXNlLWNyZWRlbnRpYWxzXCIgPT09IGlucHV0ID8gaW5wdXQgOiBcIlwiO1xuICAgIH1cbiAgICBmdW5jdGlvbiBnZXRWYWx1ZURlc2NyaXB0b3JFeHBlY3RpbmdPYmplY3RGb3JXYXJuaW5nKHRoaW5nKSB7XG4gICAgICByZXR1cm4gbnVsbCA9PT0gdGhpbmdcbiAgICAgICAgPyBcImBudWxsYFwiXG4gICAgICAgIDogdm9pZCAwID09PSB0aGluZ1xuICAgICAgICAgID8gXCJgdW5kZWZpbmVkYFwiXG4gICAgICAgICAgOiBcIlwiID09PSB0aGluZ1xuICAgICAgICAgICAgPyBcImFuIGVtcHR5IHN0cmluZ1wiXG4gICAgICAgICAgICA6ICdzb21ldGhpbmcgd2l0aCB0eXBlIFwiJyArIHR5cGVvZiB0aGluZyArICdcIic7XG4gICAgfVxuICAgIGZ1bmN0aW9uIGdldFZhbHVlRGVzY3JpcHRvckV4cGVjdGluZ0VudW1Gb3JXYXJuaW5nKHRoaW5nKSB7XG4gICAgICByZXR1cm4gbnVsbCA9PT0gdGhpbmdcbiAgICAgICAgPyBcImBudWxsYFwiXG4gICAgICAgIDogdm9pZCAwID09PSB0aGluZ1xuICAgICAgICAgID8gXCJgdW5kZWZpbmVkYFwiXG4gICAgICAgICAgOiBcIlwiID09PSB0aGluZ1xuICAgICAgICAgICAgPyBcImFuIGVtcHR5IHN0cmluZ1wiXG4gICAgICAgICAgICA6IFwic3RyaW5nXCIgPT09IHR5cGVvZiB0aGluZ1xuICAgICAgICAgICAgICA/IEpTT04uc3RyaW5naWZ5KHRoaW5nKVxuICAgICAgICAgICAgICA6IFwibnVtYmVyXCIgPT09IHR5cGVvZiB0aGluZ1xuICAgICAgICAgICAgICAgID8gXCJgXCIgKyB0aGluZyArIFwiYFwiXG4gICAgICAgICAgICAgICAgOiAnc29tZXRoaW5nIHdpdGggdHlwZSBcIicgKyB0eXBlb2YgdGhpbmcgKyAnXCInO1xuICAgIH1cbiAgICBmdW5jdGlvbiByZXNvbHZlRGlzcGF0Y2hlcigpIHtcbiAgICAgIHZhciBkaXNwYXRjaGVyID0gUmVhY3RTaGFyZWRJbnRlcm5hbHMuSDtcbiAgICAgIG51bGwgPT09IGRpc3BhdGNoZXIgJiZcbiAgICAgICAgY29uc29sZS5lcnJvcihcbiAgICAgICAgICBcIkludmFsaWQgaG9vayBjYWxsLiBIb29rcyBjYW4gb25seSBiZSBjYWxsZWQgaW5zaWRlIG9mIHRoZSBib2R5IG9mIGEgZnVuY3Rpb24gY29tcG9uZW50LiBUaGlzIGNvdWxkIGhhcHBlbiBmb3Igb25lIG9mIHRoZSBmb2xsb3dpbmcgcmVhc29uczpcXG4xLiBZb3UgbWlnaHQgaGF2ZSBtaXNtYXRjaGluZyB2ZXJzaW9ucyBvZiBSZWFjdCBhbmQgdGhlIHJlbmRlcmVyIChzdWNoIGFzIFJlYWN0IERPTSlcXG4yLiBZb3UgbWlnaHQgYmUgYnJlYWtpbmcgdGhlIFJ1bGVzIG9mIEhvb2tzXFxuMy4gWW91IG1pZ2h0IGhhdmUgbW9yZSB0aGFuIG9uZSBjb3B5IG9mIFJlYWN0IGluIHRoZSBzYW1lIGFwcFxcblNlZSBodHRwczovL3JlYWN0LmRldi9saW5rL2ludmFsaWQtaG9vay1jYWxsIGZvciB0aXBzIGFib3V0IGhvdyB0byBkZWJ1ZyBhbmQgZml4IHRoaXMgcHJvYmxlbS5cIlxuICAgICAgICApO1xuICAgICAgcmV0dXJuIGRpc3BhdGNoZXI7XG4gICAgfVxuICAgIFwidW5kZWZpbmVkXCIgIT09IHR5cGVvZiBfX1JFQUNUX0RFVlRPT0xTX0dMT0JBTF9IT09LX18gJiZcbiAgICAgIFwiZnVuY3Rpb25cIiA9PT1cbiAgICAgICAgdHlwZW9mIF9fUkVBQ1RfREVWVE9PTFNfR0xPQkFMX0hPT0tfXy5yZWdpc3RlckludGVybmFsTW9kdWxlU3RhcnQgJiZcbiAgICAgIF9fUkVBQ1RfREVWVE9PTFNfR0xPQkFMX0hPT0tfXy5yZWdpc3RlckludGVybmFsTW9kdWxlU3RhcnQoRXJyb3IoKSk7XG4gICAgdmFyIFJlYWN0ID0gcmVxdWlyZShcInJlYWN0XCIpLFxuICAgICAgSW50ZXJuYWxzID0ge1xuICAgICAgICBkOiB7XG4gICAgICAgICAgZjogbm9vcCxcbiAgICAgICAgICByOiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICB0aHJvdyBFcnJvcihcbiAgICAgICAgICAgICAgXCJJbnZhbGlkIGZvcm0gZWxlbWVudC4gcmVxdWVzdEZvcm1SZXNldCBtdXN0IGJlIHBhc3NlZCBhIGZvcm0gdGhhdCB3YXMgcmVuZGVyZWQgYnkgUmVhY3QuXCJcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgfSxcbiAgICAgICAgICBEOiBub29wLFxuICAgICAgICAgIEM6IG5vb3AsXG4gICAgICAgICAgTDogbm9vcCxcbiAgICAgICAgICBtOiBub29wLFxuICAgICAgICAgIFg6IG5vb3AsXG4gICAgICAgICAgUzogbm9vcCxcbiAgICAgICAgICBNOiBub29wXG4gICAgICAgIH0sXG4gICAgICAgIHA6IDAsXG4gICAgICAgIGZpbmRET01Ob2RlOiBudWxsXG4gICAgICB9LFxuICAgICAgUkVBQ1RfUE9SVEFMX1RZUEUgPSBTeW1ib2wuZm9yKFwicmVhY3QucG9ydGFsXCIpLFxuICAgICAgUmVhY3RTaGFyZWRJbnRlcm5hbHMgPVxuICAgICAgICBSZWFjdC5fX0NMSUVOVF9JTlRFUk5BTFNfRE9fTk9UX1VTRV9PUl9XQVJOX1VTRVJTX1RIRVlfQ0FOTk9UX1VQR1JBREU7XG4gICAgKFwiZnVuY3Rpb25cIiA9PT0gdHlwZW9mIE1hcCAmJlxuICAgICAgbnVsbCAhPSBNYXAucHJvdG90eXBlICYmXG4gICAgICBcImZ1bmN0aW9uXCIgPT09IHR5cGVvZiBNYXAucHJvdG90eXBlLmZvckVhY2ggJiZcbiAgICAgIFwiZnVuY3Rpb25cIiA9PT0gdHlwZW9mIFNldCAmJlxuICAgICAgbnVsbCAhPSBTZXQucHJvdG90eXBlICYmXG4gICAgICBcImZ1bmN0aW9uXCIgPT09IHR5cGVvZiBTZXQucHJvdG90eXBlLmNsZWFyICYmXG4gICAgICBcImZ1bmN0aW9uXCIgPT09IHR5cGVvZiBTZXQucHJvdG90eXBlLmZvckVhY2gpIHx8XG4gICAgICBjb25zb2xlLmVycm9yKFxuICAgICAgICBcIlJlYWN0IGRlcGVuZHMgb24gTWFwIGFuZCBTZXQgYnVpbHQtaW4gdHlwZXMuIE1ha2Ugc3VyZSB0aGF0IHlvdSBsb2FkIGEgcG9seWZpbGwgaW4gb2xkZXIgYnJvd3NlcnMuIGh0dHBzOi8vcmVhY3Rqcy5vcmcvbGluay9yZWFjdC1wb2x5ZmlsbHNcIlxuICAgICAgKTtcbiAgICBleHBvcnRzLl9fRE9NX0lOVEVSTkFMU19ET19OT1RfVVNFX09SX1dBUk5fVVNFUlNfVEhFWV9DQU5OT1RfVVBHUkFERSA9XG4gICAgICBJbnRlcm5hbHM7XG4gICAgZXhwb3J0cy5jcmVhdGVQb3J0YWwgPSBmdW5jdGlvbiAoY2hpbGRyZW4sIGNvbnRhaW5lcikge1xuICAgICAgdmFyIGtleSA9XG4gICAgICAgIDIgPCBhcmd1bWVudHMubGVuZ3RoICYmIHZvaWQgMCAhPT0gYXJndW1lbnRzWzJdID8gYXJndW1lbnRzWzJdIDogbnVsbDtcbiAgICAgIGlmIChcbiAgICAgICAgIWNvbnRhaW5lciB8fFxuICAgICAgICAoMSAhPT0gY29udGFpbmVyLm5vZGVUeXBlICYmXG4gICAgICAgICAgOSAhPT0gY29udGFpbmVyLm5vZGVUeXBlICYmXG4gICAgICAgICAgMTEgIT09IGNvbnRhaW5lci5ub2RlVHlwZSlcbiAgICAgIClcbiAgICAgICAgdGhyb3cgRXJyb3IoXCJUYXJnZXQgY29udGFpbmVyIGlzIG5vdCBhIERPTSBlbGVtZW50LlwiKTtcbiAgICAgIHJldHVybiBjcmVhdGVQb3J0YWwkMShjaGlsZHJlbiwgY29udGFpbmVyLCBudWxsLCBrZXkpO1xuICAgIH07XG4gICAgZXhwb3J0cy5mbHVzaFN5bmMgPSBmdW5jdGlvbiAoZm4pIHtcbiAgICAgIHZhciBwcmV2aW91c1RyYW5zaXRpb24gPSBSZWFjdFNoYXJlZEludGVybmFscy5ULFxuICAgICAgICBwcmV2aW91c1VwZGF0ZVByaW9yaXR5ID0gSW50ZXJuYWxzLnA7XG4gICAgICB0cnkge1xuICAgICAgICBpZiAoKChSZWFjdFNoYXJlZEludGVybmFscy5UID0gbnVsbCksIChJbnRlcm5hbHMucCA9IDIpLCBmbikpXG4gICAgICAgICAgcmV0dXJuIGZuKCk7XG4gICAgICB9IGZpbmFsbHkge1xuICAgICAgICAoUmVhY3RTaGFyZWRJbnRlcm5hbHMuVCA9IHByZXZpb3VzVHJhbnNpdGlvbiksXG4gICAgICAgICAgKEludGVybmFscy5wID0gcHJldmlvdXNVcGRhdGVQcmlvcml0eSksXG4gICAgICAgICAgSW50ZXJuYWxzLmQuZigpICYmXG4gICAgICAgICAgICBjb25zb2xlLmVycm9yKFxuICAgICAgICAgICAgICBcImZsdXNoU3luYyB3YXMgY2FsbGVkIGZyb20gaW5zaWRlIGEgbGlmZWN5Y2xlIG1ldGhvZC4gUmVhY3QgY2Fubm90IGZsdXNoIHdoZW4gUmVhY3QgaXMgYWxyZWFkeSByZW5kZXJpbmcuIENvbnNpZGVyIG1vdmluZyB0aGlzIGNhbGwgdG8gYSBzY2hlZHVsZXIgdGFzayBvciBtaWNybyB0YXNrLlwiXG4gICAgICAgICAgICApO1xuICAgICAgfVxuICAgIH07XG4gICAgZXhwb3J0cy5wcmVjb25uZWN0ID0gZnVuY3Rpb24gKGhyZWYsIG9wdGlvbnMpIHtcbiAgICAgIFwic3RyaW5nXCIgPT09IHR5cGVvZiBocmVmICYmIGhyZWZcbiAgICAgICAgPyBudWxsICE9IG9wdGlvbnMgJiYgXCJvYmplY3RcIiAhPT0gdHlwZW9mIG9wdGlvbnNcbiAgICAgICAgICA/IGNvbnNvbGUuZXJyb3IoXG4gICAgICAgICAgICAgIFwiUmVhY3RET00ucHJlY29ubmVjdCgpOiBFeHBlY3RlZCB0aGUgYG9wdGlvbnNgIGFyZ3VtZW50IChzZWNvbmQpIHRvIGJlIGFuIG9iamVjdCBidXQgZW5jb3VudGVyZWQgJXMgaW5zdGVhZC4gVGhlIG9ubHkgc3VwcG9ydGVkIG9wdGlvbiBhdCB0aGlzIHRpbWUgaXMgYGNyb3NzT3JpZ2luYCB3aGljaCBhY2NlcHRzIGEgc3RyaW5nLlwiLFxuICAgICAgICAgICAgICBnZXRWYWx1ZURlc2NyaXB0b3JFeHBlY3RpbmdFbnVtRm9yV2FybmluZyhvcHRpb25zKVxuICAgICAgICAgICAgKVxuICAgICAgICAgIDogbnVsbCAhPSBvcHRpb25zICYmXG4gICAgICAgICAgICBcInN0cmluZ1wiICE9PSB0eXBlb2Ygb3B0aW9ucy5jcm9zc09yaWdpbiAmJlxuICAgICAgICAgICAgY29uc29sZS5lcnJvcihcbiAgICAgICAgICAgICAgXCJSZWFjdERPTS5wcmVjb25uZWN0KCk6IEV4cGVjdGVkIHRoZSBgY3Jvc3NPcmlnaW5gIG9wdGlvbiAoc2Vjb25kIGFyZ3VtZW50KSB0byBiZSBhIHN0cmluZyBidXQgZW5jb3VudGVyZWQgJXMgaW5zdGVhZC4gVHJ5IHJlbW92aW5nIHRoaXMgb3B0aW9uIG9yIHBhc3NpbmcgYSBzdHJpbmcgdmFsdWUgaW5zdGVhZC5cIixcbiAgICAgICAgICAgICAgZ2V0VmFsdWVEZXNjcmlwdG9yRXhwZWN0aW5nT2JqZWN0Rm9yV2FybmluZyhvcHRpb25zLmNyb3NzT3JpZ2luKVxuICAgICAgICAgICAgKVxuICAgICAgICA6IGNvbnNvbGUuZXJyb3IoXG4gICAgICAgICAgICBcIlJlYWN0RE9NLnByZWNvbm5lY3QoKTogRXhwZWN0ZWQgdGhlIGBocmVmYCBhcmd1bWVudCAoZmlyc3QpIHRvIGJlIGEgbm9uLWVtcHR5IHN0cmluZyBidXQgZW5jb3VudGVyZWQgJXMgaW5zdGVhZC5cIixcbiAgICAgICAgICAgIGdldFZhbHVlRGVzY3JpcHRvckV4cGVjdGluZ09iamVjdEZvcldhcm5pbmcoaHJlZilcbiAgICAgICAgICApO1xuICAgICAgXCJzdHJpbmdcIiA9PT0gdHlwZW9mIGhyZWYgJiZcbiAgICAgICAgKG9wdGlvbnNcbiAgICAgICAgICA/ICgob3B0aW9ucyA9IG9wdGlvbnMuY3Jvc3NPcmlnaW4pLFxuICAgICAgICAgICAgKG9wdGlvbnMgPVxuICAgICAgICAgICAgICBcInN0cmluZ1wiID09PSB0eXBlb2Ygb3B0aW9uc1xuICAgICAgICAgICAgICAgID8gXCJ1c2UtY3JlZGVudGlhbHNcIiA9PT0gb3B0aW9uc1xuICAgICAgICAgICAgICAgICAgPyBvcHRpb25zXG4gICAgICAgICAgICAgICAgICA6IFwiXCJcbiAgICAgICAgICAgICAgICA6IHZvaWQgMCkpXG4gICAgICAgICAgOiAob3B0aW9ucyA9IG51bGwpLFxuICAgICAgICBJbnRlcm5hbHMuZC5DKGhyZWYsIG9wdGlvbnMpKTtcbiAgICB9O1xuICAgIGV4cG9ydHMucHJlZmV0Y2hETlMgPSBmdW5jdGlvbiAoaHJlZikge1xuICAgICAgaWYgKFwic3RyaW5nXCIgIT09IHR5cGVvZiBocmVmIHx8ICFocmVmKVxuICAgICAgICBjb25zb2xlLmVycm9yKFxuICAgICAgICAgIFwiUmVhY3RET00ucHJlZmV0Y2hETlMoKTogRXhwZWN0ZWQgdGhlIGBocmVmYCBhcmd1bWVudCAoZmlyc3QpIHRvIGJlIGEgbm9uLWVtcHR5IHN0cmluZyBidXQgZW5jb3VudGVyZWQgJXMgaW5zdGVhZC5cIixcbiAgICAgICAgICBnZXRWYWx1ZURlc2NyaXB0b3JFeHBlY3RpbmdPYmplY3RGb3JXYXJuaW5nKGhyZWYpXG4gICAgICAgICk7XG4gICAgICBlbHNlIGlmICgxIDwgYXJndW1lbnRzLmxlbmd0aCkge1xuICAgICAgICB2YXIgb3B0aW9ucyA9IGFyZ3VtZW50c1sxXTtcbiAgICAgICAgXCJvYmplY3RcIiA9PT0gdHlwZW9mIG9wdGlvbnMgJiYgb3B0aW9ucy5oYXNPd25Qcm9wZXJ0eShcImNyb3NzT3JpZ2luXCIpXG4gICAgICAgICAgPyBjb25zb2xlLmVycm9yKFxuICAgICAgICAgICAgICBcIlJlYWN0RE9NLnByZWZldGNoRE5TKCk6IEV4cGVjdGVkIG9ubHkgb25lIGFyZ3VtZW50LCBgaHJlZmAsIGJ1dCBlbmNvdW50ZXJlZCAlcyBhcyBhIHNlY29uZCBhcmd1bWVudCBpbnN0ZWFkLiBUaGlzIGFyZ3VtZW50IGlzIHJlc2VydmVkIGZvciBmdXR1cmUgb3B0aW9ucyBhbmQgaXMgY3VycmVudGx5IGRpc2FsbG93ZWQuIEl0IGxvb2tzIGxpa2UgdGhlIHlvdSBhcmUgYXR0ZW1wdGluZyB0byBzZXQgYSBjcm9zc09yaWdpbiBwcm9wZXJ0eSBmb3IgdGhpcyBETlMgbG9va3VwIGhpbnQuIEJyb3dzZXJzIGRvIG5vdCBwZXJmb3JtIEROUyBxdWVyaWVzIHVzaW5nIENPUlMgYW5kIHNldHRpbmcgdGhpcyBhdHRyaWJ1dGUgb24gdGhlIHJlc291cmNlIGhpbnQgaGFzIG5vIGVmZmVjdC4gVHJ5IGNhbGxpbmcgUmVhY3RET00ucHJlZmV0Y2hETlMoKSB3aXRoIGp1c3QgYSBzaW5nbGUgc3RyaW5nIGFyZ3VtZW50LCBgaHJlZmAuXCIsXG4gICAgICAgICAgICAgIGdldFZhbHVlRGVzY3JpcHRvckV4cGVjdGluZ0VudW1Gb3JXYXJuaW5nKG9wdGlvbnMpXG4gICAgICAgICAgICApXG4gICAgICAgICAgOiBjb25zb2xlLmVycm9yKFxuICAgICAgICAgICAgICBcIlJlYWN0RE9NLnByZWZldGNoRE5TKCk6IEV4cGVjdGVkIG9ubHkgb25lIGFyZ3VtZW50LCBgaHJlZmAsIGJ1dCBlbmNvdW50ZXJlZCAlcyBhcyBhIHNlY29uZCBhcmd1bWVudCBpbnN0ZWFkLiBUaGlzIGFyZ3VtZW50IGlzIHJlc2VydmVkIGZvciBmdXR1cmUgb3B0aW9ucyBhbmQgaXMgY3VycmVudGx5IGRpc2FsbG93ZWQuIFRyeSBjYWxsaW5nIFJlYWN0RE9NLnByZWZldGNoRE5TKCkgd2l0aCBqdXN0IGEgc2luZ2xlIHN0cmluZyBhcmd1bWVudCwgYGhyZWZgLlwiLFxuICAgICAgICAgICAgICBnZXRWYWx1ZURlc2NyaXB0b3JFeHBlY3RpbmdFbnVtRm9yV2FybmluZyhvcHRpb25zKVxuICAgICAgICAgICAgKTtcbiAgICAgIH1cbiAgICAgIFwic3RyaW5nXCIgPT09IHR5cGVvZiBocmVmICYmIEludGVybmFscy5kLkQoaHJlZik7XG4gICAgfTtcbiAgICBleHBvcnRzLnByZWluaXQgPSBmdW5jdGlvbiAoaHJlZiwgb3B0aW9ucykge1xuICAgICAgXCJzdHJpbmdcIiA9PT0gdHlwZW9mIGhyZWYgJiYgaHJlZlxuICAgICAgICA/IG51bGwgPT0gb3B0aW9ucyB8fCBcIm9iamVjdFwiICE9PSB0eXBlb2Ygb3B0aW9uc1xuICAgICAgICAgID8gY29uc29sZS5lcnJvcihcbiAgICAgICAgICAgICAgXCJSZWFjdERPTS5wcmVpbml0KCk6IEV4cGVjdGVkIHRoZSBgb3B0aW9uc2AgYXJndW1lbnQgKHNlY29uZCkgdG8gYmUgYW4gb2JqZWN0IHdpdGggYW4gYGFzYCBwcm9wZXJ0eSBkZXNjcmliaW5nIHRoZSB0eXBlIG9mIHJlc291cmNlIHRvIGJlIHByZWluaXRpYWxpemVkIGJ1dCBlbmNvdW50ZXJlZCAlcyBpbnN0ZWFkLlwiLFxuICAgICAgICAgICAgICBnZXRWYWx1ZURlc2NyaXB0b3JFeHBlY3RpbmdFbnVtRm9yV2FybmluZyhvcHRpb25zKVxuICAgICAgICAgICAgKVxuICAgICAgICAgIDogXCJzdHlsZVwiICE9PSBvcHRpb25zLmFzICYmXG4gICAgICAgICAgICBcInNjcmlwdFwiICE9PSBvcHRpb25zLmFzICYmXG4gICAgICAgICAgICBjb25zb2xlLmVycm9yKFxuICAgICAgICAgICAgICAnUmVhY3RET00ucHJlaW5pdCgpOiBFeHBlY3RlZCB0aGUgYGFzYCBwcm9wZXJ0eSBpbiB0aGUgYG9wdGlvbnNgIGFyZ3VtZW50IChzZWNvbmQpIHRvIGNvbnRhaW4gYSB2YWxpZCB2YWx1ZSBkZXNjcmliaW5nIHRoZSB0eXBlIG9mIHJlc291cmNlIHRvIGJlIHByZWluaXRpYWxpemVkIGJ1dCBlbmNvdW50ZXJlZCAlcyBpbnN0ZWFkLiBWYWxpZCB2YWx1ZXMgZm9yIGBhc2AgYXJlIFwic3R5bGVcIiBhbmQgXCJzY3JpcHRcIi4nLFxuICAgICAgICAgICAgICBnZXRWYWx1ZURlc2NyaXB0b3JFeHBlY3RpbmdFbnVtRm9yV2FybmluZyhvcHRpb25zLmFzKVxuICAgICAgICAgICAgKVxuICAgICAgICA6IGNvbnNvbGUuZXJyb3IoXG4gICAgICAgICAgICBcIlJlYWN0RE9NLnByZWluaXQoKTogRXhwZWN0ZWQgdGhlIGBocmVmYCBhcmd1bWVudCAoZmlyc3QpIHRvIGJlIGEgbm9uLWVtcHR5IHN0cmluZyBidXQgZW5jb3VudGVyZWQgJXMgaW5zdGVhZC5cIixcbiAgICAgICAgICAgIGdldFZhbHVlRGVzY3JpcHRvckV4cGVjdGluZ09iamVjdEZvcldhcm5pbmcoaHJlZilcbiAgICAgICAgICApO1xuICAgICAgaWYgKFxuICAgICAgICBcInN0cmluZ1wiID09PSB0eXBlb2YgaHJlZiAmJlxuICAgICAgICBvcHRpb25zICYmXG4gICAgICAgIFwic3RyaW5nXCIgPT09IHR5cGVvZiBvcHRpb25zLmFzXG4gICAgICApIHtcbiAgICAgICAgdmFyIGFzID0gb3B0aW9ucy5hcyxcbiAgICAgICAgICBjcm9zc09yaWdpbiA9IGdldENyb3NzT3JpZ2luU3RyaW5nQXMoYXMsIG9wdGlvbnMuY3Jvc3NPcmlnaW4pLFxuICAgICAgICAgIGludGVncml0eSA9XG4gICAgICAgICAgICBcInN0cmluZ1wiID09PSB0eXBlb2Ygb3B0aW9ucy5pbnRlZ3JpdHkgPyBvcHRpb25zLmludGVncml0eSA6IHZvaWQgMCxcbiAgICAgICAgICBmZXRjaFByaW9yaXR5ID1cbiAgICAgICAgICAgIFwic3RyaW5nXCIgPT09IHR5cGVvZiBvcHRpb25zLmZldGNoUHJpb3JpdHlcbiAgICAgICAgICAgICAgPyBvcHRpb25zLmZldGNoUHJpb3JpdHlcbiAgICAgICAgICAgICAgOiB2b2lkIDA7XG4gICAgICAgIFwic3R5bGVcIiA9PT0gYXNcbiAgICAgICAgICA/IEludGVybmFscy5kLlMoXG4gICAgICAgICAgICAgIGhyZWYsXG4gICAgICAgICAgICAgIFwic3RyaW5nXCIgPT09IHR5cGVvZiBvcHRpb25zLnByZWNlZGVuY2VcbiAgICAgICAgICAgICAgICA/IG9wdGlvbnMucHJlY2VkZW5jZVxuICAgICAgICAgICAgICAgIDogdm9pZCAwLFxuICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgY3Jvc3NPcmlnaW46IGNyb3NzT3JpZ2luLFxuICAgICAgICAgICAgICAgIGludGVncml0eTogaW50ZWdyaXR5LFxuICAgICAgICAgICAgICAgIGZldGNoUHJpb3JpdHk6IGZldGNoUHJpb3JpdHlcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgKVxuICAgICAgICAgIDogXCJzY3JpcHRcIiA9PT0gYXMgJiZcbiAgICAgICAgICAgIEludGVybmFscy5kLlgoaHJlZiwge1xuICAgICAgICAgICAgICBjcm9zc09yaWdpbjogY3Jvc3NPcmlnaW4sXG4gICAgICAgICAgICAgIGludGVncml0eTogaW50ZWdyaXR5LFxuICAgICAgICAgICAgICBmZXRjaFByaW9yaXR5OiBmZXRjaFByaW9yaXR5LFxuICAgICAgICAgICAgICBub25jZTogXCJzdHJpbmdcIiA9PT0gdHlwZW9mIG9wdGlvbnMubm9uY2UgPyBvcHRpb25zLm5vbmNlIDogdm9pZCAwXG4gICAgICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9O1xuICAgIGV4cG9ydHMucHJlaW5pdE1vZHVsZSA9IGZ1bmN0aW9uIChocmVmLCBvcHRpb25zKSB7XG4gICAgICB2YXIgZW5jb3VudGVyZWQgPSBcIlwiO1xuICAgICAgKFwic3RyaW5nXCIgPT09IHR5cGVvZiBocmVmICYmIGhyZWYpIHx8XG4gICAgICAgIChlbmNvdW50ZXJlZCArPVxuICAgICAgICAgIFwiIFRoZSBgaHJlZmAgYXJndW1lbnQgZW5jb3VudGVyZWQgd2FzIFwiICtcbiAgICAgICAgICBnZXRWYWx1ZURlc2NyaXB0b3JFeHBlY3RpbmdPYmplY3RGb3JXYXJuaW5nKGhyZWYpICtcbiAgICAgICAgICBcIi5cIik7XG4gICAgICB2b2lkIDAgIT09IG9wdGlvbnMgJiYgXCJvYmplY3RcIiAhPT0gdHlwZW9mIG9wdGlvbnNcbiAgICAgICAgPyAoZW5jb3VudGVyZWQgKz1cbiAgICAgICAgICAgIFwiIFRoZSBgb3B0aW9uc2AgYXJndW1lbnQgZW5jb3VudGVyZWQgd2FzIFwiICtcbiAgICAgICAgICAgIGdldFZhbHVlRGVzY3JpcHRvckV4cGVjdGluZ09iamVjdEZvcldhcm5pbmcob3B0aW9ucykgK1xuICAgICAgICAgICAgXCIuXCIpXG4gICAgICAgIDogb3B0aW9ucyAmJlxuICAgICAgICAgIFwiYXNcIiBpbiBvcHRpb25zICYmXG4gICAgICAgICAgXCJzY3JpcHRcIiAhPT0gb3B0aW9ucy5hcyAmJlxuICAgICAgICAgIChlbmNvdW50ZXJlZCArPVxuICAgICAgICAgICAgXCIgVGhlIGBhc2Agb3B0aW9uIGVuY291bnRlcmVkIHdhcyBcIiArXG4gICAgICAgICAgICBnZXRWYWx1ZURlc2NyaXB0b3JFeHBlY3RpbmdFbnVtRm9yV2FybmluZyhvcHRpb25zLmFzKSArXG4gICAgICAgICAgICBcIi5cIik7XG4gICAgICBpZiAoZW5jb3VudGVyZWQpXG4gICAgICAgIGNvbnNvbGUuZXJyb3IoXG4gICAgICAgICAgXCJSZWFjdERPTS5wcmVpbml0TW9kdWxlKCk6IEV4cGVjdGVkIHVwIHRvIHR3byBhcmd1bWVudHMsIGEgbm9uLWVtcHR5IGBocmVmYCBzdHJpbmcgYW5kLCBvcHRpb25hbGx5LCBhbiBgb3B0aW9uc2Agb2JqZWN0IHdpdGggYSB2YWxpZCBgYXNgIHByb3BlcnR5LiVzXCIsXG4gICAgICAgICAgZW5jb3VudGVyZWRcbiAgICAgICAgKTtcbiAgICAgIGVsc2VcbiAgICAgICAgc3dpdGNoIChcbiAgICAgICAgICAoKGVuY291bnRlcmVkID1cbiAgICAgICAgICAgIG9wdGlvbnMgJiYgXCJzdHJpbmdcIiA9PT0gdHlwZW9mIG9wdGlvbnMuYXMgPyBvcHRpb25zLmFzIDogXCJzY3JpcHRcIiksXG4gICAgICAgICAgZW5jb3VudGVyZWQpXG4gICAgICAgICkge1xuICAgICAgICAgIGNhc2UgXCJzY3JpcHRcIjpcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAoZW5jb3VudGVyZWQgPVxuICAgICAgICAgICAgICBnZXRWYWx1ZURlc2NyaXB0b3JFeHBlY3RpbmdFbnVtRm9yV2FybmluZyhlbmNvdW50ZXJlZCkpLFxuICAgICAgICAgICAgICBjb25zb2xlLmVycm9yKFxuICAgICAgICAgICAgICAgICdSZWFjdERPTS5wcmVpbml0TW9kdWxlKCk6IEN1cnJlbnRseSB0aGUgb25seSBzdXBwb3J0ZWQgXCJhc1wiIHR5cGUgZm9yIHRoaXMgZnVuY3Rpb24gaXMgXCJzY3JpcHRcIiBidXQgcmVjZWl2ZWQgXCIlc1wiIGluc3RlYWQuIFRoaXMgd2FybmluZyB3YXMgZ2VuZXJhdGVkIGZvciBgaHJlZmAgXCIlc1wiLiBJbiB0aGUgZnV0dXJlIG90aGVyIG1vZHVsZSB0eXBlcyB3aWxsIGJlIHN1cHBvcnRlZCwgYWxpZ25pbmcgd2l0aCB0aGUgaW1wb3J0LWF0dHJpYnV0ZXMgcHJvcG9zYWwuIExlYXJuIG1vcmUgaGVyZTogKGh0dHBzOi8vZ2l0aHViLmNvbS90YzM5L3Byb3Bvc2FsLWltcG9ydC1hdHRyaWJ1dGVzKScsXG4gICAgICAgICAgICAgICAgZW5jb3VudGVyZWQsXG4gICAgICAgICAgICAgICAgaHJlZlxuICAgICAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgICBpZiAoXCJzdHJpbmdcIiA9PT0gdHlwZW9mIGhyZWYpXG4gICAgICAgIGlmIChcIm9iamVjdFwiID09PSB0eXBlb2Ygb3B0aW9ucyAmJiBudWxsICE9PSBvcHRpb25zKSB7XG4gICAgICAgICAgaWYgKG51bGwgPT0gb3B0aW9ucy5hcyB8fCBcInNjcmlwdFwiID09PSBvcHRpb25zLmFzKVxuICAgICAgICAgICAgKGVuY291bnRlcmVkID0gZ2V0Q3Jvc3NPcmlnaW5TdHJpbmdBcyhcbiAgICAgICAgICAgICAgb3B0aW9ucy5hcyxcbiAgICAgICAgICAgICAgb3B0aW9ucy5jcm9zc09yaWdpblxuICAgICAgICAgICAgKSksXG4gICAgICAgICAgICAgIEludGVybmFscy5kLk0oaHJlZiwge1xuICAgICAgICAgICAgICAgIGNyb3NzT3JpZ2luOiBlbmNvdW50ZXJlZCxcbiAgICAgICAgICAgICAgICBpbnRlZ3JpdHk6XG4gICAgICAgICAgICAgICAgICBcInN0cmluZ1wiID09PSB0eXBlb2Ygb3B0aW9ucy5pbnRlZ3JpdHlcbiAgICAgICAgICAgICAgICAgICAgPyBvcHRpb25zLmludGVncml0eVxuICAgICAgICAgICAgICAgICAgICA6IHZvaWQgMCxcbiAgICAgICAgICAgICAgICBub25jZTpcbiAgICAgICAgICAgICAgICAgIFwic3RyaW5nXCIgPT09IHR5cGVvZiBvcHRpb25zLm5vbmNlID8gb3B0aW9ucy5ub25jZSA6IHZvaWQgMFxuICAgICAgICAgICAgICB9KTtcbiAgICAgICAgfSBlbHNlIG51bGwgPT0gb3B0aW9ucyAmJiBJbnRlcm5hbHMuZC5NKGhyZWYpO1xuICAgIH07XG4gICAgZXhwb3J0cy5wcmVsb2FkID0gZnVuY3Rpb24gKGhyZWYsIG9wdGlvbnMpIHtcbiAgICAgIHZhciBlbmNvdW50ZXJlZCA9IFwiXCI7XG4gICAgICAoXCJzdHJpbmdcIiA9PT0gdHlwZW9mIGhyZWYgJiYgaHJlZikgfHxcbiAgICAgICAgKGVuY291bnRlcmVkICs9XG4gICAgICAgICAgXCIgVGhlIGBocmVmYCBhcmd1bWVudCBlbmNvdW50ZXJlZCB3YXMgXCIgK1xuICAgICAgICAgIGdldFZhbHVlRGVzY3JpcHRvckV4cGVjdGluZ09iamVjdEZvcldhcm5pbmcoaHJlZikgK1xuICAgICAgICAgIFwiLlwiKTtcbiAgICAgIG51bGwgPT0gb3B0aW9ucyB8fCBcIm9iamVjdFwiICE9PSB0eXBlb2Ygb3B0aW9uc1xuICAgICAgICA/IChlbmNvdW50ZXJlZCArPVxuICAgICAgICAgICAgXCIgVGhlIGBvcHRpb25zYCBhcmd1bWVudCBlbmNvdW50ZXJlZCB3YXMgXCIgK1xuICAgICAgICAgICAgZ2V0VmFsdWVEZXNjcmlwdG9yRXhwZWN0aW5nT2JqZWN0Rm9yV2FybmluZyhvcHRpb25zKSArXG4gICAgICAgICAgICBcIi5cIilcbiAgICAgICAgOiAoXCJzdHJpbmdcIiA9PT0gdHlwZW9mIG9wdGlvbnMuYXMgJiYgb3B0aW9ucy5hcykgfHxcbiAgICAgICAgICAoZW5jb3VudGVyZWQgKz1cbiAgICAgICAgICAgIFwiIFRoZSBgYXNgIG9wdGlvbiBlbmNvdW50ZXJlZCB3YXMgXCIgK1xuICAgICAgICAgICAgZ2V0VmFsdWVEZXNjcmlwdG9yRXhwZWN0aW5nT2JqZWN0Rm9yV2FybmluZyhvcHRpb25zLmFzKSArXG4gICAgICAgICAgICBcIi5cIik7XG4gICAgICBlbmNvdW50ZXJlZCAmJlxuICAgICAgICBjb25zb2xlLmVycm9yKFxuICAgICAgICAgICdSZWFjdERPTS5wcmVsb2FkKCk6IEV4cGVjdGVkIHR3byBhcmd1bWVudHMsIGEgbm9uLWVtcHR5IGBocmVmYCBzdHJpbmcgYW5kIGFuIGBvcHRpb25zYCBvYmplY3Qgd2l0aCBhbiBgYXNgIHByb3BlcnR5IHZhbGlkIGZvciBhIGA8bGluayByZWw9XCJwcmVsb2FkXCIgYXM9XCIuLi5cIiAvPmAgdGFnLiVzJyxcbiAgICAgICAgICBlbmNvdW50ZXJlZFxuICAgICAgICApO1xuICAgICAgaWYgKFxuICAgICAgICBcInN0cmluZ1wiID09PSB0eXBlb2YgaHJlZiAmJlxuICAgICAgICBcIm9iamVjdFwiID09PSB0eXBlb2Ygb3B0aW9ucyAmJlxuICAgICAgICBudWxsICE9PSBvcHRpb25zICYmXG4gICAgICAgIFwic3RyaW5nXCIgPT09IHR5cGVvZiBvcHRpb25zLmFzXG4gICAgICApIHtcbiAgICAgICAgZW5jb3VudGVyZWQgPSBvcHRpb25zLmFzO1xuICAgICAgICB2YXIgY3Jvc3NPcmlnaW4gPSBnZXRDcm9zc09yaWdpblN0cmluZ0FzKFxuICAgICAgICAgIGVuY291bnRlcmVkLFxuICAgICAgICAgIG9wdGlvbnMuY3Jvc3NPcmlnaW5cbiAgICAgICAgKTtcbiAgICAgICAgSW50ZXJuYWxzLmQuTChocmVmLCBlbmNvdW50ZXJlZCwge1xuICAgICAgICAgIGNyb3NzT3JpZ2luOiBjcm9zc09yaWdpbixcbiAgICAgICAgICBpbnRlZ3JpdHk6XG4gICAgICAgICAgICBcInN0cmluZ1wiID09PSB0eXBlb2Ygb3B0aW9ucy5pbnRlZ3JpdHkgPyBvcHRpb25zLmludGVncml0eSA6IHZvaWQgMCxcbiAgICAgICAgICBub25jZTogXCJzdHJpbmdcIiA9PT0gdHlwZW9mIG9wdGlvbnMubm9uY2UgPyBvcHRpb25zLm5vbmNlIDogdm9pZCAwLFxuICAgICAgICAgIHR5cGU6IFwic3RyaW5nXCIgPT09IHR5cGVvZiBvcHRpb25zLnR5cGUgPyBvcHRpb25zLnR5cGUgOiB2b2lkIDAsXG4gICAgICAgICAgZmV0Y2hQcmlvcml0eTpcbiAgICAgICAgICAgIFwic3RyaW5nXCIgPT09IHR5cGVvZiBvcHRpb25zLmZldGNoUHJpb3JpdHlcbiAgICAgICAgICAgICAgPyBvcHRpb25zLmZldGNoUHJpb3JpdHlcbiAgICAgICAgICAgICAgOiB2b2lkIDAsXG4gICAgICAgICAgcmVmZXJyZXJQb2xpY3k6XG4gICAgICAgICAgICBcInN0cmluZ1wiID09PSB0eXBlb2Ygb3B0aW9ucy5yZWZlcnJlclBvbGljeVxuICAgICAgICAgICAgICA/IG9wdGlvbnMucmVmZXJyZXJQb2xpY3lcbiAgICAgICAgICAgICAgOiB2b2lkIDAsXG4gICAgICAgICAgaW1hZ2VTcmNTZXQ6XG4gICAgICAgICAgICBcInN0cmluZ1wiID09PSB0eXBlb2Ygb3B0aW9ucy5pbWFnZVNyY1NldFxuICAgICAgICAgICAgICA/IG9wdGlvbnMuaW1hZ2VTcmNTZXRcbiAgICAgICAgICAgICAgOiB2b2lkIDAsXG4gICAgICAgICAgaW1hZ2VTaXplczpcbiAgICAgICAgICAgIFwic3RyaW5nXCIgPT09IHR5cGVvZiBvcHRpb25zLmltYWdlU2l6ZXNcbiAgICAgICAgICAgICAgPyBvcHRpb25zLmltYWdlU2l6ZXNcbiAgICAgICAgICAgICAgOiB2b2lkIDAsXG4gICAgICAgICAgbWVkaWE6IFwic3RyaW5nXCIgPT09IHR5cGVvZiBvcHRpb25zLm1lZGlhID8gb3B0aW9ucy5tZWRpYSA6IHZvaWQgMFxuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9O1xuICAgIGV4cG9ydHMucHJlbG9hZE1vZHVsZSA9IGZ1bmN0aW9uIChocmVmLCBvcHRpb25zKSB7XG4gICAgICB2YXIgZW5jb3VudGVyZWQgPSBcIlwiO1xuICAgICAgKFwic3RyaW5nXCIgPT09IHR5cGVvZiBocmVmICYmIGhyZWYpIHx8XG4gICAgICAgIChlbmNvdW50ZXJlZCArPVxuICAgICAgICAgIFwiIFRoZSBgaHJlZmAgYXJndW1lbnQgZW5jb3VudGVyZWQgd2FzIFwiICtcbiAgICAgICAgICBnZXRWYWx1ZURlc2NyaXB0b3JFeHBlY3RpbmdPYmplY3RGb3JXYXJuaW5nKGhyZWYpICtcbiAgICAgICAgICBcIi5cIik7XG4gICAgICB2b2lkIDAgIT09IG9wdGlvbnMgJiYgXCJvYmplY3RcIiAhPT0gdHlwZW9mIG9wdGlvbnNcbiAgICAgICAgPyAoZW5jb3VudGVyZWQgKz1cbiAgICAgICAgICAgIFwiIFRoZSBgb3B0aW9uc2AgYXJndW1lbnQgZW5jb3VudGVyZWQgd2FzIFwiICtcbiAgICAgICAgICAgIGdldFZhbHVlRGVzY3JpcHRvckV4cGVjdGluZ09iamVjdEZvcldhcm5pbmcob3B0aW9ucykgK1xuICAgICAgICAgICAgXCIuXCIpXG4gICAgICAgIDogb3B0aW9ucyAmJlxuICAgICAgICAgIFwiYXNcIiBpbiBvcHRpb25zICYmXG4gICAgICAgICAgXCJzdHJpbmdcIiAhPT0gdHlwZW9mIG9wdGlvbnMuYXMgJiZcbiAgICAgICAgICAoZW5jb3VudGVyZWQgKz1cbiAgICAgICAgICAgIFwiIFRoZSBgYXNgIG9wdGlvbiBlbmNvdW50ZXJlZCB3YXMgXCIgK1xuICAgICAgICAgICAgZ2V0VmFsdWVEZXNjcmlwdG9yRXhwZWN0aW5nT2JqZWN0Rm9yV2FybmluZyhvcHRpb25zLmFzKSArXG4gICAgICAgICAgICBcIi5cIik7XG4gICAgICBlbmNvdW50ZXJlZCAmJlxuICAgICAgICBjb25zb2xlLmVycm9yKFxuICAgICAgICAgICdSZWFjdERPTS5wcmVsb2FkTW9kdWxlKCk6IEV4cGVjdGVkIHR3byBhcmd1bWVudHMsIGEgbm9uLWVtcHR5IGBocmVmYCBzdHJpbmcgYW5kLCBvcHRpb25hbGx5LCBhbiBgb3B0aW9uc2Agb2JqZWN0IHdpdGggYW4gYGFzYCBwcm9wZXJ0eSB2YWxpZCBmb3IgYSBgPGxpbmsgcmVsPVwibW9kdWxlcHJlbG9hZFwiIGFzPVwiLi4uXCIgLz5gIHRhZy4lcycsXG4gICAgICAgICAgZW5jb3VudGVyZWRcbiAgICAgICAgKTtcbiAgICAgIFwic3RyaW5nXCIgPT09IHR5cGVvZiBocmVmICYmXG4gICAgICAgIChvcHRpb25zXG4gICAgICAgICAgPyAoKGVuY291bnRlcmVkID0gZ2V0Q3Jvc3NPcmlnaW5TdHJpbmdBcyhcbiAgICAgICAgICAgICAgb3B0aW9ucy5hcyxcbiAgICAgICAgICAgICAgb3B0aW9ucy5jcm9zc09yaWdpblxuICAgICAgICAgICAgKSksXG4gICAgICAgICAgICBJbnRlcm5hbHMuZC5tKGhyZWYsIHtcbiAgICAgICAgICAgICAgYXM6XG4gICAgICAgICAgICAgICAgXCJzdHJpbmdcIiA9PT0gdHlwZW9mIG9wdGlvbnMuYXMgJiYgXCJzY3JpcHRcIiAhPT0gb3B0aW9ucy5hc1xuICAgICAgICAgICAgICAgICAgPyBvcHRpb25zLmFzXG4gICAgICAgICAgICAgICAgICA6IHZvaWQgMCxcbiAgICAgICAgICAgICAgY3Jvc3NPcmlnaW46IGVuY291bnRlcmVkLFxuICAgICAgICAgICAgICBpbnRlZ3JpdHk6XG4gICAgICAgICAgICAgICAgXCJzdHJpbmdcIiA9PT0gdHlwZW9mIG9wdGlvbnMuaW50ZWdyaXR5XG4gICAgICAgICAgICAgICAgICA/IG9wdGlvbnMuaW50ZWdyaXR5XG4gICAgICAgICAgICAgICAgICA6IHZvaWQgMFxuICAgICAgICAgICAgfSkpXG4gICAgICAgICAgOiBJbnRlcm5hbHMuZC5tKGhyZWYpKTtcbiAgICB9O1xuICAgIGV4cG9ydHMucmVxdWVzdEZvcm1SZXNldCA9IGZ1bmN0aW9uIChmb3JtKSB7XG4gICAgICBJbnRlcm5hbHMuZC5yKGZvcm0pO1xuICAgIH07XG4gICAgZXhwb3J0cy51bnN0YWJsZV9iYXRjaGVkVXBkYXRlcyA9IGZ1bmN0aW9uIChmbiwgYSkge1xuICAgICAgcmV0dXJuIGZuKGEpO1xuICAgIH07XG4gICAgZXhwb3J0cy51c2VGb3JtU3RhdGUgPSBmdW5jdGlvbiAoYWN0aW9uLCBpbml0aWFsU3RhdGUsIHBlcm1hbGluaykge1xuICAgICAgcmV0dXJuIHJlc29sdmVEaXNwYXRjaGVyKCkudXNlRm9ybVN0YXRlKGFjdGlvbiwgaW5pdGlhbFN0YXRlLCBwZXJtYWxpbmspO1xuICAgIH07XG4gICAgZXhwb3J0cy51c2VGb3JtU3RhdHVzID0gZnVuY3Rpb24gKCkge1xuICAgICAgcmV0dXJuIHJlc29sdmVEaXNwYXRjaGVyKCkudXNlSG9zdFRyYW5zaXRpb25TdGF0dXMoKTtcbiAgICB9O1xuICAgIGV4cG9ydHMudmVyc2lvbiA9IFwiMTkuMS4wXCI7XG4gICAgXCJ1bmRlZmluZWRcIiAhPT0gdHlwZW9mIF9fUkVBQ1RfREVWVE9PTFNfR0xPQkFMX0hPT0tfXyAmJlxuICAgICAgXCJmdW5jdGlvblwiID09PVxuICAgICAgICB0eXBlb2YgX19SRUFDVF9ERVZUT09MU19HTE9CQUxfSE9PS19fLnJlZ2lzdGVySW50ZXJuYWxNb2R1bGVTdG9wICYmXG4gICAgICBfX1JFQUNUX0RFVlRPT0xTX0dMT0JBTF9IT09LX18ucmVnaXN0ZXJJbnRlcm5hbE1vZHVsZVN0b3AoRXJyb3IoKSk7XG4gIH0pKCk7XG4iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(pages-dir-browser)/./node_modules/react-dom/cjs/react-dom.development.js\n")); - -/***/ }), - -/***/ "(pages-dir-browser)/./node_modules/react-dom/client.js": -/*!******************************************!*\ - !*** ./node_modules/react-dom/client.js ***! - \******************************************/ -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { - -"use strict"; -eval(__webpack_require__.ts("\n\nfunction checkDCE() {\n /* global __REACT_DEVTOOLS_GLOBAL_HOOK__ */\n if (\n typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ === 'undefined' ||\n typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE !== 'function'\n ) {\n return;\n }\n if (true) {\n // This branch is unreachable because this function is only called\n // in production, but the condition is true only in development.\n // Therefore if the branch is still here, dead code elimination wasn't\n // properly applied.\n // Don't change the message. React DevTools relies on it. Also make sure\n // this message doesn't occur elsewhere in this function, or it will cause\n // a false positive.\n throw new Error('^_^');\n }\n try {\n // Verify that the code above has been dead code eliminated (DCE'd).\n __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(checkDCE);\n } catch (err) {\n // DevTools shouldn't crash React, no matter what.\n // We should still report in case we break this code.\n console.error(err);\n }\n}\n\nif (false) {} else {\n module.exports = __webpack_require__(/*! ./cjs/react-dom-client.development.js */ \"(pages-dir-browser)/./node_modules/react-dom/cjs/react-dom-client.development.js\");\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9yZWFjdC1kb20vY2xpZW50LmpzIiwibWFwcGluZ3MiOiJBQUFhOztBQUViO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxNQUFNLElBQXFDO0FBQzNDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLElBQUk7QUFDSjtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBLElBQUksS0FBcUMsRUFBRSxFQUsxQyxDQUFDO0FBQ0YsRUFBRSxxS0FBaUU7QUFDbkUiLCJzb3VyY2VzIjpbIkQ6XFxkb25neXVuLXByb2plY3RzXFx0d29cXG5vZGVfbW9kdWxlc1xccmVhY3QtZG9tXFxjbGllbnQuanMiXSwic291cmNlc0NvbnRlbnQiOlsiJ3VzZSBzdHJpY3QnO1xuXG5mdW5jdGlvbiBjaGVja0RDRSgpIHtcbiAgLyogZ2xvYmFsIF9fUkVBQ1RfREVWVE9PTFNfR0xPQkFMX0hPT0tfXyAqL1xuICBpZiAoXG4gICAgdHlwZW9mIF9fUkVBQ1RfREVWVE9PTFNfR0xPQkFMX0hPT0tfXyA9PT0gJ3VuZGVmaW5lZCcgfHxcbiAgICB0eXBlb2YgX19SRUFDVF9ERVZUT09MU19HTE9CQUxfSE9PS19fLmNoZWNrRENFICE9PSAnZnVuY3Rpb24nXG4gICkge1xuICAgIHJldHVybjtcbiAgfVxuICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJykge1xuICAgIC8vIFRoaXMgYnJhbmNoIGlzIHVucmVhY2hhYmxlIGJlY2F1c2UgdGhpcyBmdW5jdGlvbiBpcyBvbmx5IGNhbGxlZFxuICAgIC8vIGluIHByb2R1Y3Rpb24sIGJ1dCB0aGUgY29uZGl0aW9uIGlzIHRydWUgb25seSBpbiBkZXZlbG9wbWVudC5cbiAgICAvLyBUaGVyZWZvcmUgaWYgdGhlIGJyYW5jaCBpcyBzdGlsbCBoZXJlLCBkZWFkIGNvZGUgZWxpbWluYXRpb24gd2Fzbid0XG4gICAgLy8gcHJvcGVybHkgYXBwbGllZC5cbiAgICAvLyBEb24ndCBjaGFuZ2UgdGhlIG1lc3NhZ2UuIFJlYWN0IERldlRvb2xzIHJlbGllcyBvbiBpdC4gQWxzbyBtYWtlIHN1cmVcbiAgICAvLyB0aGlzIG1lc3NhZ2UgZG9lc24ndCBvY2N1ciBlbHNld2hlcmUgaW4gdGhpcyBmdW5jdGlvbiwgb3IgaXQgd2lsbCBjYXVzZVxuICAgIC8vIGEgZmFsc2UgcG9zaXRpdmUuXG4gICAgdGhyb3cgbmV3IEVycm9yKCdeX14nKTtcbiAgfVxuICB0cnkge1xuICAgIC8vIFZlcmlmeSB0aGF0IHRoZSBjb2RlIGFib3ZlIGhhcyBiZWVuIGRlYWQgY29kZSBlbGltaW5hdGVkIChEQ0UnZCkuXG4gICAgX19SRUFDVF9ERVZUT09MU19HTE9CQUxfSE9PS19fLmNoZWNrRENFKGNoZWNrRENFKTtcbiAgfSBjYXRjaCAoZXJyKSB7XG4gICAgLy8gRGV2VG9vbHMgc2hvdWxkbid0IGNyYXNoIFJlYWN0LCBubyBtYXR0ZXIgd2hhdC5cbiAgICAvLyBXZSBzaG91bGQgc3RpbGwgcmVwb3J0IGluIGNhc2Ugd2UgYnJlYWsgdGhpcyBjb2RlLlxuICAgIGNvbnNvbGUuZXJyb3IoZXJyKTtcbiAgfVxufVxuXG5pZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgPT09ICdwcm9kdWN0aW9uJykge1xuICAvLyBEQ0UgY2hlY2sgc2hvdWxkIGhhcHBlbiBiZWZvcmUgUmVhY3RET00gYnVuZGxlIGV4ZWN1dGVzIHNvIHRoYXRcbiAgLy8gRGV2VG9vbHMgY2FuIHJlcG9ydCBiYWQgbWluaWZpY2F0aW9uIGR1cmluZyBpbmplY3Rpb24uXG4gIGNoZWNrRENFKCk7XG4gIG1vZHVsZS5leHBvcnRzID0gcmVxdWlyZSgnLi9janMvcmVhY3QtZG9tLWNsaWVudC5wcm9kdWN0aW9uLmpzJyk7XG59IGVsc2Uge1xuICBtb2R1bGUuZXhwb3J0cyA9IHJlcXVpcmUoJy4vY2pzL3JlYWN0LWRvbS1jbGllbnQuZGV2ZWxvcG1lbnQuanMnKTtcbn1cbiJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(pages-dir-browser)/./node_modules/react-dom/client.js\n")); - -/***/ }), - -/***/ "(pages-dir-browser)/./node_modules/react-dom/index.js": -/*!*****************************************!*\ - !*** ./node_modules/react-dom/index.js ***! - \*****************************************/ -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { - -"use strict"; -eval(__webpack_require__.ts("\n\nfunction checkDCE() {\n /* global __REACT_DEVTOOLS_GLOBAL_HOOK__ */\n if (\n typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ === 'undefined' ||\n typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE !== 'function'\n ) {\n return;\n }\n if (true) {\n // This branch is unreachable because this function is only called\n // in production, but the condition is true only in development.\n // Therefore if the branch is still here, dead code elimination wasn't\n // properly applied.\n // Don't change the message. React DevTools relies on it. Also make sure\n // this message doesn't occur elsewhere in this function, or it will cause\n // a false positive.\n throw new Error('^_^');\n }\n try {\n // Verify that the code above has been dead code eliminated (DCE'd).\n __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(checkDCE);\n } catch (err) {\n // DevTools shouldn't crash React, no matter what.\n // We should still report in case we break this code.\n console.error(err);\n }\n}\n\nif (false) {} else {\n module.exports = __webpack_require__(/*! ./cjs/react-dom.development.js */ \"(pages-dir-browser)/./node_modules/react-dom/cjs/react-dom.development.js\");\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9yZWFjdC1kb20vaW5kZXguanMiLCJtYXBwaW5ncyI6IkFBQWE7O0FBRWI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE1BQU0sSUFBcUM7QUFDM0M7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsSUFBSTtBQUNKO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUEsSUFBSSxLQUFxQyxFQUFFLEVBSzFDLENBQUM7QUFDRixFQUFFLHVKQUEwRDtBQUM1RCIsInNvdXJjZXMiOlsiRDpcXGRvbmd5dW4tcHJvamVjdHNcXHR3b1xcbm9kZV9tb2R1bGVzXFxyZWFjdC1kb21cXGluZGV4LmpzIl0sInNvdXJjZXNDb250ZW50IjpbIid1c2Ugc3RyaWN0JztcblxuZnVuY3Rpb24gY2hlY2tEQ0UoKSB7XG4gIC8qIGdsb2JhbCBfX1JFQUNUX0RFVlRPT0xTX0dMT0JBTF9IT09LX18gKi9cbiAgaWYgKFxuICAgIHR5cGVvZiBfX1JFQUNUX0RFVlRPT0xTX0dMT0JBTF9IT09LX18gPT09ICd1bmRlZmluZWQnIHx8XG4gICAgdHlwZW9mIF9fUkVBQ1RfREVWVE9PTFNfR0xPQkFMX0hPT0tfXy5jaGVja0RDRSAhPT0gJ2Z1bmN0aW9uJ1xuICApIHtcbiAgICByZXR1cm47XG4gIH1cbiAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpIHtcbiAgICAvLyBUaGlzIGJyYW5jaCBpcyB1bnJlYWNoYWJsZSBiZWNhdXNlIHRoaXMgZnVuY3Rpb24gaXMgb25seSBjYWxsZWRcbiAgICAvLyBpbiBwcm9kdWN0aW9uLCBidXQgdGhlIGNvbmRpdGlvbiBpcyB0cnVlIG9ubHkgaW4gZGV2ZWxvcG1lbnQuXG4gICAgLy8gVGhlcmVmb3JlIGlmIHRoZSBicmFuY2ggaXMgc3RpbGwgaGVyZSwgZGVhZCBjb2RlIGVsaW1pbmF0aW9uIHdhc24ndFxuICAgIC8vIHByb3Blcmx5IGFwcGxpZWQuXG4gICAgLy8gRG9uJ3QgY2hhbmdlIHRoZSBtZXNzYWdlLiBSZWFjdCBEZXZUb29scyByZWxpZXMgb24gaXQuIEFsc28gbWFrZSBzdXJlXG4gICAgLy8gdGhpcyBtZXNzYWdlIGRvZXNuJ3Qgb2NjdXIgZWxzZXdoZXJlIGluIHRoaXMgZnVuY3Rpb24sIG9yIGl0IHdpbGwgY2F1c2VcbiAgICAvLyBhIGZhbHNlIHBvc2l0aXZlLlxuICAgIHRocm93IG5ldyBFcnJvcignXl9eJyk7XG4gIH1cbiAgdHJ5IHtcbiAgICAvLyBWZXJpZnkgdGhhdCB0aGUgY29kZSBhYm92ZSBoYXMgYmVlbiBkZWFkIGNvZGUgZWxpbWluYXRlZCAoRENFJ2QpLlxuICAgIF9fUkVBQ1RfREVWVE9PTFNfR0xPQkFMX0hPT0tfXy5jaGVja0RDRShjaGVja0RDRSk7XG4gIH0gY2F0Y2ggKGVycikge1xuICAgIC8vIERldlRvb2xzIHNob3VsZG4ndCBjcmFzaCBSZWFjdCwgbm8gbWF0dGVyIHdoYXQuXG4gICAgLy8gV2Ugc2hvdWxkIHN0aWxsIHJlcG9ydCBpbiBjYXNlIHdlIGJyZWFrIHRoaXMgY29kZS5cbiAgICBjb25zb2xlLmVycm9yKGVycik7XG4gIH1cbn1cblxuaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WID09PSAncHJvZHVjdGlvbicpIHtcbiAgLy8gRENFIGNoZWNrIHNob3VsZCBoYXBwZW4gYmVmb3JlIFJlYWN0RE9NIGJ1bmRsZSBleGVjdXRlcyBzbyB0aGF0XG4gIC8vIERldlRvb2xzIGNhbiByZXBvcnQgYmFkIG1pbmlmaWNhdGlvbiBkdXJpbmcgaW5qZWN0aW9uLlxuICBjaGVja0RDRSgpO1xuICBtb2R1bGUuZXhwb3J0cyA9IHJlcXVpcmUoJy4vY2pzL3JlYWN0LWRvbS5wcm9kdWN0aW9uLmpzJyk7XG59IGVsc2Uge1xuICBtb2R1bGUuZXhwb3J0cyA9IHJlcXVpcmUoJy4vY2pzL3JlYWN0LWRvbS5kZXZlbG9wbWVudC5qcycpO1xufVxuIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(pages-dir-browser)/./node_modules/react-dom/index.js\n")); - -/***/ }), - -/***/ "(pages-dir-browser)/./node_modules/react/cjs/react-jsx-runtime.development.js": -/*!*****************************************************************!*\ - !*** ./node_modules/react/cjs/react-jsx-runtime.development.js ***! - \*****************************************************************/ -/***/ ((__unused_webpack_module, exports, __webpack_require__) => { - -"use strict"; -eval(__webpack_require__.ts("/**\n * @license React\n * react-jsx-runtime.development.js\n *\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n\n true &&\n (function () {\n function getComponentNameFromType(type) {\n if (null == type) return null;\n if (\"function\" === typeof type)\n return type.$$typeof === REACT_CLIENT_REFERENCE\n ? null\n : type.displayName || type.name || null;\n if (\"string\" === typeof type) return type;\n switch (type) {\n case REACT_FRAGMENT_TYPE:\n return \"Fragment\";\n case REACT_PROFILER_TYPE:\n return \"Profiler\";\n case REACT_STRICT_MODE_TYPE:\n return \"StrictMode\";\n case REACT_SUSPENSE_TYPE:\n return \"Suspense\";\n case REACT_SUSPENSE_LIST_TYPE:\n return \"SuspenseList\";\n case REACT_ACTIVITY_TYPE:\n return \"Activity\";\n }\n if (\"object\" === typeof type)\n switch (\n (\"number\" === typeof type.tag &&\n console.error(\n \"Received an unexpected object in getComponentNameFromType(). This is likely a bug in React. Please file an issue.\"\n ),\n type.$$typeof)\n ) {\n case REACT_PORTAL_TYPE:\n return \"Portal\";\n case REACT_CONTEXT_TYPE:\n return (type.displayName || \"Context\") + \".Provider\";\n case REACT_CONSUMER_TYPE:\n return (type._context.displayName || \"Context\") + \".Consumer\";\n case REACT_FORWARD_REF_TYPE:\n var innerType = type.render;\n type = type.displayName;\n type ||\n ((type = innerType.displayName || innerType.name || \"\"),\n (type = \"\" !== type ? \"ForwardRef(\" + type + \")\" : \"ForwardRef\"));\n return type;\n case REACT_MEMO_TYPE:\n return (\n (innerType = type.displayName || null),\n null !== innerType\n ? innerType\n : getComponentNameFromType(type.type) || \"Memo\"\n );\n case REACT_LAZY_TYPE:\n innerType = type._payload;\n type = type._init;\n try {\n return getComponentNameFromType(type(innerType));\n } catch (x) {}\n }\n return null;\n }\n function testStringCoercion(value) {\n return \"\" + value;\n }\n function checkKeyStringCoercion(value) {\n try {\n testStringCoercion(value);\n var JSCompiler_inline_result = !1;\n } catch (e) {\n JSCompiler_inline_result = !0;\n }\n if (JSCompiler_inline_result) {\n JSCompiler_inline_result = console;\n var JSCompiler_temp_const = JSCompiler_inline_result.error;\n var JSCompiler_inline_result$jscomp$0 =\n (\"function\" === typeof Symbol &&\n Symbol.toStringTag &&\n value[Symbol.toStringTag]) ||\n value.constructor.name ||\n \"Object\";\n JSCompiler_temp_const.call(\n JSCompiler_inline_result,\n \"The provided key is an unsupported type %s. This value must be coerced to a string before using it here.\",\n JSCompiler_inline_result$jscomp$0\n );\n return testStringCoercion(value);\n }\n }\n function getTaskName(type) {\n if (type === REACT_FRAGMENT_TYPE) return \"<>\";\n if (\n \"object\" === typeof type &&\n null !== type &&\n type.$$typeof === REACT_LAZY_TYPE\n )\n return \"<...>\";\n try {\n var name = getComponentNameFromType(type);\n return name ? \"<\" + name + \">\" : \"<...>\";\n } catch (x) {\n return \"<...>\";\n }\n }\n function getOwner() {\n var dispatcher = ReactSharedInternals.A;\n return null === dispatcher ? null : dispatcher.getOwner();\n }\n function UnknownOwner() {\n return Error(\"react-stack-top-frame\");\n }\n function hasValidKey(config) {\n if (hasOwnProperty.call(config, \"key\")) {\n var getter = Object.getOwnPropertyDescriptor(config, \"key\").get;\n if (getter && getter.isReactWarning) return !1;\n }\n return void 0 !== config.key;\n }\n function defineKeyPropWarningGetter(props, displayName) {\n function warnAboutAccessingKey() {\n specialPropKeyWarningShown ||\n ((specialPropKeyWarningShown = !0),\n console.error(\n \"%s: `key` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://react.dev/link/special-props)\",\n displayName\n ));\n }\n warnAboutAccessingKey.isReactWarning = !0;\n Object.defineProperty(props, \"key\", {\n get: warnAboutAccessingKey,\n configurable: !0\n });\n }\n function elementRefGetterWithDeprecationWarning() {\n var componentName = getComponentNameFromType(this.type);\n didWarnAboutElementRef[componentName] ||\n ((didWarnAboutElementRef[componentName] = !0),\n console.error(\n \"Accessing element.ref was removed in React 19. ref is now a regular prop. It will be removed from the JSX Element type in a future release.\"\n ));\n componentName = this.props.ref;\n return void 0 !== componentName ? componentName : null;\n }\n function ReactElement(\n type,\n key,\n self,\n source,\n owner,\n props,\n debugStack,\n debugTask\n ) {\n self = props.ref;\n type = {\n $$typeof: REACT_ELEMENT_TYPE,\n type: type,\n key: key,\n props: props,\n _owner: owner\n };\n null !== (void 0 !== self ? self : null)\n ? Object.defineProperty(type, \"ref\", {\n enumerable: !1,\n get: elementRefGetterWithDeprecationWarning\n })\n : Object.defineProperty(type, \"ref\", { enumerable: !1, value: null });\n type._store = {};\n Object.defineProperty(type._store, \"validated\", {\n configurable: !1,\n enumerable: !1,\n writable: !0,\n value: 0\n });\n Object.defineProperty(type, \"_debugInfo\", {\n configurable: !1,\n enumerable: !1,\n writable: !0,\n value: null\n });\n Object.defineProperty(type, \"_debugStack\", {\n configurable: !1,\n enumerable: !1,\n writable: !0,\n value: debugStack\n });\n Object.defineProperty(type, \"_debugTask\", {\n configurable: !1,\n enumerable: !1,\n writable: !0,\n value: debugTask\n });\n Object.freeze && (Object.freeze(type.props), Object.freeze(type));\n return type;\n }\n function jsxDEVImpl(\n type,\n config,\n maybeKey,\n isStaticChildren,\n source,\n self,\n debugStack,\n debugTask\n ) {\n var children = config.children;\n if (void 0 !== children)\n if (isStaticChildren)\n if (isArrayImpl(children)) {\n for (\n isStaticChildren = 0;\n isStaticChildren < children.length;\n isStaticChildren++\n )\n validateChildKeys(children[isStaticChildren]);\n Object.freeze && Object.freeze(children);\n } else\n console.error(\n \"React.jsx: Static children should always be an array. You are likely explicitly calling React.jsxs or React.jsxDEV. Use the Babel transform instead.\"\n );\n else validateChildKeys(children);\n if (hasOwnProperty.call(config, \"key\")) {\n children = getComponentNameFromType(type);\n var keys = Object.keys(config).filter(function (k) {\n return \"key\" !== k;\n });\n isStaticChildren =\n 0 < keys.length\n ? \"{key: someKey, \" + keys.join(\": ..., \") + \": ...}\"\n : \"{key: someKey}\";\n didWarnAboutKeySpread[children + isStaticChildren] ||\n ((keys =\n 0 < keys.length ? \"{\" + keys.join(\": ..., \") + \": ...}\" : \"{}\"),\n console.error(\n 'A props object containing a \"key\" prop is being spread into JSX:\\n let props = %s;\\n <%s {...props} />\\nReact keys must be passed directly to JSX without using spread:\\n let props = %s;\\n <%s key={someKey} {...props} />',\n isStaticChildren,\n children,\n keys,\n children\n ),\n (didWarnAboutKeySpread[children + isStaticChildren] = !0));\n }\n children = null;\n void 0 !== maybeKey &&\n (checkKeyStringCoercion(maybeKey), (children = \"\" + maybeKey));\n hasValidKey(config) &&\n (checkKeyStringCoercion(config.key), (children = \"\" + config.key));\n if (\"key\" in config) {\n maybeKey = {};\n for (var propName in config)\n \"key\" !== propName && (maybeKey[propName] = config[propName]);\n } else maybeKey = config;\n children &&\n defineKeyPropWarningGetter(\n maybeKey,\n \"function\" === typeof type\n ? type.displayName || type.name || \"Unknown\"\n : type\n );\n return ReactElement(\n type,\n children,\n self,\n source,\n getOwner(),\n maybeKey,\n debugStack,\n debugTask\n );\n }\n function validateChildKeys(node) {\n \"object\" === typeof node &&\n null !== node &&\n node.$$typeof === REACT_ELEMENT_TYPE &&\n node._store &&\n (node._store.validated = 1);\n }\n var React = __webpack_require__(/*! react */ \"(pages-dir-browser)/./node_modules/react/index.js\"),\n REACT_ELEMENT_TYPE = Symbol.for(\"react.transitional.element\"),\n REACT_PORTAL_TYPE = Symbol.for(\"react.portal\"),\n REACT_FRAGMENT_TYPE = Symbol.for(\"react.fragment\"),\n REACT_STRICT_MODE_TYPE = Symbol.for(\"react.strict_mode\"),\n REACT_PROFILER_TYPE = Symbol.for(\"react.profiler\");\n Symbol.for(\"react.provider\");\n var REACT_CONSUMER_TYPE = Symbol.for(\"react.consumer\"),\n REACT_CONTEXT_TYPE = Symbol.for(\"react.context\"),\n REACT_FORWARD_REF_TYPE = Symbol.for(\"react.forward_ref\"),\n REACT_SUSPENSE_TYPE = Symbol.for(\"react.suspense\"),\n REACT_SUSPENSE_LIST_TYPE = Symbol.for(\"react.suspense_list\"),\n REACT_MEMO_TYPE = Symbol.for(\"react.memo\"),\n REACT_LAZY_TYPE = Symbol.for(\"react.lazy\"),\n REACT_ACTIVITY_TYPE = Symbol.for(\"react.activity\"),\n REACT_CLIENT_REFERENCE = Symbol.for(\"react.client.reference\"),\n ReactSharedInternals =\n React.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,\n hasOwnProperty = Object.prototype.hasOwnProperty,\n isArrayImpl = Array.isArray,\n createTask = console.createTask\n ? console.createTask\n : function () {\n return null;\n };\n React = {\n \"react-stack-bottom-frame\": function (callStackForError) {\n return callStackForError();\n }\n };\n var specialPropKeyWarningShown;\n var didWarnAboutElementRef = {};\n var unknownOwnerDebugStack = React[\"react-stack-bottom-frame\"].bind(\n React,\n UnknownOwner\n )();\n var unknownOwnerDebugTask = createTask(getTaskName(UnknownOwner));\n var didWarnAboutKeySpread = {};\n exports.Fragment = REACT_FRAGMENT_TYPE;\n exports.jsx = function (type, config, maybeKey, source, self) {\n var trackActualOwner =\n 1e4 > ReactSharedInternals.recentlyCreatedOwnerStacks++;\n return jsxDEVImpl(\n type,\n config,\n maybeKey,\n !1,\n source,\n self,\n trackActualOwner\n ? Error(\"react-stack-top-frame\")\n : unknownOwnerDebugStack,\n trackActualOwner ? createTask(getTaskName(type)) : unknownOwnerDebugTask\n );\n };\n exports.jsxs = function (type, config, maybeKey, source, self) {\n var trackActualOwner =\n 1e4 > ReactSharedInternals.recentlyCreatedOwnerStacks++;\n return jsxDEVImpl(\n type,\n config,\n maybeKey,\n !0,\n source,\n self,\n trackActualOwner\n ? Error(\"react-stack-top-frame\")\n : unknownOwnerDebugStack,\n trackActualOwner ? createTask(getTaskName(type)) : unknownOwnerDebugTask\n );\n };\n })();\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9yZWFjdC9janMvcmVhY3QtanN4LXJ1bnRpbWUuZGV2ZWxvcG1lbnQuanMiLCJtYXBwaW5ncyI6IkFBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVhO0FBQ2IsS0FBcUM7QUFDckM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxjQUFjO0FBQ2Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxRQUFRO0FBQ1I7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsUUFBUTtBQUNSO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxXQUFXO0FBQ1gsK0NBQStDLDZCQUE2QjtBQUM1RTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsWUFBWTtBQUNaO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBLGdCQUFnQixnREFBZ0Q7QUFDaEUsZ0JBQWdCLGFBQWE7QUFDN0I7QUFDQTtBQUNBLGdDQUFnQyxrQ0FBa0MsT0FBTztBQUN6RTtBQUNBLGdHQUFnRyxTQUFTLFVBQVUsc0ZBQXNGLGFBQWEsVUFBVSxVQUFVO0FBQzFPO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsUUFBUTtBQUNSO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsZ0JBQWdCLG1CQUFPLENBQUMsZ0VBQU87QUFDL0I7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxJQUFJLGdCQUFnQjtBQUNwQixJQUFJLFdBQVc7QUFDZjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxJQUFJLFlBQVk7QUFDaEI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsR0FBRyIsInNvdXJjZXMiOlsiRDpcXGRvbmd5dW4tcHJvamVjdHNcXHR3b1xcbm9kZV9tb2R1bGVzXFxyZWFjdFxcY2pzXFxyZWFjdC1qc3gtcnVudGltZS5kZXZlbG9wbWVudC5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBsaWNlbnNlIFJlYWN0XG4gKiByZWFjdC1qc3gtcnVudGltZS5kZXZlbG9wbWVudC5qc1xuICpcbiAqIENvcHlyaWdodCAoYykgTWV0YSBQbGF0Zm9ybXMsIEluYy4gYW5kIGFmZmlsaWF0ZXMuXG4gKlxuICogVGhpcyBzb3VyY2UgY29kZSBpcyBsaWNlbnNlZCB1bmRlciB0aGUgTUlUIGxpY2Vuc2UgZm91bmQgaW4gdGhlXG4gKiBMSUNFTlNFIGZpbGUgaW4gdGhlIHJvb3QgZGlyZWN0b3J5IG9mIHRoaXMgc291cmNlIHRyZWUuXG4gKi9cblxuXCJ1c2Ugc3RyaWN0XCI7XG5cInByb2R1Y3Rpb25cIiAhPT0gcHJvY2Vzcy5lbnYuTk9ERV9FTlYgJiZcbiAgKGZ1bmN0aW9uICgpIHtcbiAgICBmdW5jdGlvbiBnZXRDb21wb25lbnROYW1lRnJvbVR5cGUodHlwZSkge1xuICAgICAgaWYgKG51bGwgPT0gdHlwZSkgcmV0dXJuIG51bGw7XG4gICAgICBpZiAoXCJmdW5jdGlvblwiID09PSB0eXBlb2YgdHlwZSlcbiAgICAgICAgcmV0dXJuIHR5cGUuJCR0eXBlb2YgPT09IFJFQUNUX0NMSUVOVF9SRUZFUkVOQ0VcbiAgICAgICAgICA/IG51bGxcbiAgICAgICAgICA6IHR5cGUuZGlzcGxheU5hbWUgfHwgdHlwZS5uYW1lIHx8IG51bGw7XG4gICAgICBpZiAoXCJzdHJpbmdcIiA9PT0gdHlwZW9mIHR5cGUpIHJldHVybiB0eXBlO1xuICAgICAgc3dpdGNoICh0eXBlKSB7XG4gICAgICAgIGNhc2UgUkVBQ1RfRlJBR01FTlRfVFlQRTpcbiAgICAgICAgICByZXR1cm4gXCJGcmFnbWVudFwiO1xuICAgICAgICBjYXNlIFJFQUNUX1BST0ZJTEVSX1RZUEU6XG4gICAgICAgICAgcmV0dXJuIFwiUHJvZmlsZXJcIjtcbiAgICAgICAgY2FzZSBSRUFDVF9TVFJJQ1RfTU9ERV9UWVBFOlxuICAgICAgICAgIHJldHVybiBcIlN0cmljdE1vZGVcIjtcbiAgICAgICAgY2FzZSBSRUFDVF9TVVNQRU5TRV9UWVBFOlxuICAgICAgICAgIHJldHVybiBcIlN1c3BlbnNlXCI7XG4gICAgICAgIGNhc2UgUkVBQ1RfU1VTUEVOU0VfTElTVF9UWVBFOlxuICAgICAgICAgIHJldHVybiBcIlN1c3BlbnNlTGlzdFwiO1xuICAgICAgICBjYXNlIFJFQUNUX0FDVElWSVRZX1RZUEU6XG4gICAgICAgICAgcmV0dXJuIFwiQWN0aXZpdHlcIjtcbiAgICAgIH1cbiAgICAgIGlmIChcIm9iamVjdFwiID09PSB0eXBlb2YgdHlwZSlcbiAgICAgICAgc3dpdGNoIChcbiAgICAgICAgICAoXCJudW1iZXJcIiA9PT0gdHlwZW9mIHR5cGUudGFnICYmXG4gICAgICAgICAgICBjb25zb2xlLmVycm9yKFxuICAgICAgICAgICAgICBcIlJlY2VpdmVkIGFuIHVuZXhwZWN0ZWQgb2JqZWN0IGluIGdldENvbXBvbmVudE5hbWVGcm9tVHlwZSgpLiBUaGlzIGlzIGxpa2VseSBhIGJ1ZyBpbiBSZWFjdC4gUGxlYXNlIGZpbGUgYW4gaXNzdWUuXCJcbiAgICAgICAgICAgICksXG4gICAgICAgICAgdHlwZS4kJHR5cGVvZilcbiAgICAgICAgKSB7XG4gICAgICAgICAgY2FzZSBSRUFDVF9QT1JUQUxfVFlQRTpcbiAgICAgICAgICAgIHJldHVybiBcIlBvcnRhbFwiO1xuICAgICAgICAgIGNhc2UgUkVBQ1RfQ09OVEVYVF9UWVBFOlxuICAgICAgICAgICAgcmV0dXJuICh0eXBlLmRpc3BsYXlOYW1lIHx8IFwiQ29udGV4dFwiKSArIFwiLlByb3ZpZGVyXCI7XG4gICAgICAgICAgY2FzZSBSRUFDVF9DT05TVU1FUl9UWVBFOlxuICAgICAgICAgICAgcmV0dXJuICh0eXBlLl9jb250ZXh0LmRpc3BsYXlOYW1lIHx8IFwiQ29udGV4dFwiKSArIFwiLkNvbnN1bWVyXCI7XG4gICAgICAgICAgY2FzZSBSRUFDVF9GT1JXQVJEX1JFRl9UWVBFOlxuICAgICAgICAgICAgdmFyIGlubmVyVHlwZSA9IHR5cGUucmVuZGVyO1xuICAgICAgICAgICAgdHlwZSA9IHR5cGUuZGlzcGxheU5hbWU7XG4gICAgICAgICAgICB0eXBlIHx8XG4gICAgICAgICAgICAgICgodHlwZSA9IGlubmVyVHlwZS5kaXNwbGF5TmFtZSB8fCBpbm5lclR5cGUubmFtZSB8fCBcIlwiKSxcbiAgICAgICAgICAgICAgKHR5cGUgPSBcIlwiICE9PSB0eXBlID8gXCJGb3J3YXJkUmVmKFwiICsgdHlwZSArIFwiKVwiIDogXCJGb3J3YXJkUmVmXCIpKTtcbiAgICAgICAgICAgIHJldHVybiB0eXBlO1xuICAgICAgICAgIGNhc2UgUkVBQ1RfTUVNT19UWVBFOlxuICAgICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgICAgKGlubmVyVHlwZSA9IHR5cGUuZGlzcGxheU5hbWUgfHwgbnVsbCksXG4gICAgICAgICAgICAgIG51bGwgIT09IGlubmVyVHlwZVxuICAgICAgICAgICAgICAgID8gaW5uZXJUeXBlXG4gICAgICAgICAgICAgICAgOiBnZXRDb21wb25lbnROYW1lRnJvbVR5cGUodHlwZS50eXBlKSB8fCBcIk1lbW9cIlxuICAgICAgICAgICAgKTtcbiAgICAgICAgICBjYXNlIFJFQUNUX0xBWllfVFlQRTpcbiAgICAgICAgICAgIGlubmVyVHlwZSA9IHR5cGUuX3BheWxvYWQ7XG4gICAgICAgICAgICB0eXBlID0gdHlwZS5faW5pdDtcbiAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgIHJldHVybiBnZXRDb21wb25lbnROYW1lRnJvbVR5cGUodHlwZShpbm5lclR5cGUpKTtcbiAgICAgICAgICAgIH0gY2F0Y2ggKHgpIHt9XG4gICAgICAgIH1cbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbiAgICBmdW5jdGlvbiB0ZXN0U3RyaW5nQ29lcmNpb24odmFsdWUpIHtcbiAgICAgIHJldHVybiBcIlwiICsgdmFsdWU7XG4gICAgfVxuICAgIGZ1bmN0aW9uIGNoZWNrS2V5U3RyaW5nQ29lcmNpb24odmFsdWUpIHtcbiAgICAgIHRyeSB7XG4gICAgICAgIHRlc3RTdHJpbmdDb2VyY2lvbih2YWx1ZSk7XG4gICAgICAgIHZhciBKU0NvbXBpbGVyX2lubGluZV9yZXN1bHQgPSAhMTtcbiAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgSlNDb21waWxlcl9pbmxpbmVfcmVzdWx0ID0gITA7XG4gICAgICB9XG4gICAgICBpZiAoSlNDb21waWxlcl9pbmxpbmVfcmVzdWx0KSB7XG4gICAgICAgIEpTQ29tcGlsZXJfaW5saW5lX3Jlc3VsdCA9IGNvbnNvbGU7XG4gICAgICAgIHZhciBKU0NvbXBpbGVyX3RlbXBfY29uc3QgPSBKU0NvbXBpbGVyX2lubGluZV9yZXN1bHQuZXJyb3I7XG4gICAgICAgIHZhciBKU0NvbXBpbGVyX2lubGluZV9yZXN1bHQkanNjb21wJDAgPVxuICAgICAgICAgIChcImZ1bmN0aW9uXCIgPT09IHR5cGVvZiBTeW1ib2wgJiZcbiAgICAgICAgICAgIFN5bWJvbC50b1N0cmluZ1RhZyAmJlxuICAgICAgICAgICAgdmFsdWVbU3ltYm9sLnRvU3RyaW5nVGFnXSkgfHxcbiAgICAgICAgICB2YWx1ZS5jb25zdHJ1Y3Rvci5uYW1lIHx8XG4gICAgICAgICAgXCJPYmplY3RcIjtcbiAgICAgICAgSlNDb21waWxlcl90ZW1wX2NvbnN0LmNhbGwoXG4gICAgICAgICAgSlNDb21waWxlcl9pbmxpbmVfcmVzdWx0LFxuICAgICAgICAgIFwiVGhlIHByb3ZpZGVkIGtleSBpcyBhbiB1bnN1cHBvcnRlZCB0eXBlICVzLiBUaGlzIHZhbHVlIG11c3QgYmUgY29lcmNlZCB0byBhIHN0cmluZyBiZWZvcmUgdXNpbmcgaXQgaGVyZS5cIixcbiAgICAgICAgICBKU0NvbXBpbGVyX2lubGluZV9yZXN1bHQkanNjb21wJDBcbiAgICAgICAgKTtcbiAgICAgICAgcmV0dXJuIHRlc3RTdHJpbmdDb2VyY2lvbih2YWx1ZSk7XG4gICAgICB9XG4gICAgfVxuICAgIGZ1bmN0aW9uIGdldFRhc2tOYW1lKHR5cGUpIHtcbiAgICAgIGlmICh0eXBlID09PSBSRUFDVF9GUkFHTUVOVF9UWVBFKSByZXR1cm4gXCI8PlwiO1xuICAgICAgaWYgKFxuICAgICAgICBcIm9iamVjdFwiID09PSB0eXBlb2YgdHlwZSAmJlxuICAgICAgICBudWxsICE9PSB0eXBlICYmXG4gICAgICAgIHR5cGUuJCR0eXBlb2YgPT09IFJFQUNUX0xBWllfVFlQRVxuICAgICAgKVxuICAgICAgICByZXR1cm4gXCI8Li4uPlwiO1xuICAgICAgdHJ5IHtcbiAgICAgICAgdmFyIG5hbWUgPSBnZXRDb21wb25lbnROYW1lRnJvbVR5cGUodHlwZSk7XG4gICAgICAgIHJldHVybiBuYW1lID8gXCI8XCIgKyBuYW1lICsgXCI+XCIgOiBcIjwuLi4+XCI7XG4gICAgICB9IGNhdGNoICh4KSB7XG4gICAgICAgIHJldHVybiBcIjwuLi4+XCI7XG4gICAgICB9XG4gICAgfVxuICAgIGZ1bmN0aW9uIGdldE93bmVyKCkge1xuICAgICAgdmFyIGRpc3BhdGNoZXIgPSBSZWFjdFNoYXJlZEludGVybmFscy5BO1xuICAgICAgcmV0dXJuIG51bGwgPT09IGRpc3BhdGNoZXIgPyBudWxsIDogZGlzcGF0Y2hlci5nZXRPd25lcigpO1xuICAgIH1cbiAgICBmdW5jdGlvbiBVbmtub3duT3duZXIoKSB7XG4gICAgICByZXR1cm4gRXJyb3IoXCJyZWFjdC1zdGFjay10b3AtZnJhbWVcIik7XG4gICAgfVxuICAgIGZ1bmN0aW9uIGhhc1ZhbGlkS2V5KGNvbmZpZykge1xuICAgICAgaWYgKGhhc093blByb3BlcnR5LmNhbGwoY29uZmlnLCBcImtleVwiKSkge1xuICAgICAgICB2YXIgZ2V0dGVyID0gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihjb25maWcsIFwia2V5XCIpLmdldDtcbiAgICAgICAgaWYgKGdldHRlciAmJiBnZXR0ZXIuaXNSZWFjdFdhcm5pbmcpIHJldHVybiAhMTtcbiAgICAgIH1cbiAgICAgIHJldHVybiB2b2lkIDAgIT09IGNvbmZpZy5rZXk7XG4gICAgfVxuICAgIGZ1bmN0aW9uIGRlZmluZUtleVByb3BXYXJuaW5nR2V0dGVyKHByb3BzLCBkaXNwbGF5TmFtZSkge1xuICAgICAgZnVuY3Rpb24gd2FybkFib3V0QWNjZXNzaW5nS2V5KCkge1xuICAgICAgICBzcGVjaWFsUHJvcEtleVdhcm5pbmdTaG93biB8fFxuICAgICAgICAgICgoc3BlY2lhbFByb3BLZXlXYXJuaW5nU2hvd24gPSAhMCksXG4gICAgICAgICAgY29uc29sZS5lcnJvcihcbiAgICAgICAgICAgIFwiJXM6IGBrZXlgIGlzIG5vdCBhIHByb3AuIFRyeWluZyB0byBhY2Nlc3MgaXQgd2lsbCByZXN1bHQgaW4gYHVuZGVmaW5lZGAgYmVpbmcgcmV0dXJuZWQuIElmIHlvdSBuZWVkIHRvIGFjY2VzcyB0aGUgc2FtZSB2YWx1ZSB3aXRoaW4gdGhlIGNoaWxkIGNvbXBvbmVudCwgeW91IHNob3VsZCBwYXNzIGl0IGFzIGEgZGlmZmVyZW50IHByb3AuIChodHRwczovL3JlYWN0LmRldi9saW5rL3NwZWNpYWwtcHJvcHMpXCIsXG4gICAgICAgICAgICBkaXNwbGF5TmFtZVxuICAgICAgICAgICkpO1xuICAgICAgfVxuICAgICAgd2FybkFib3V0QWNjZXNzaW5nS2V5LmlzUmVhY3RXYXJuaW5nID0gITA7XG4gICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkocHJvcHMsIFwia2V5XCIsIHtcbiAgICAgICAgZ2V0OiB3YXJuQWJvdXRBY2Nlc3NpbmdLZXksXG4gICAgICAgIGNvbmZpZ3VyYWJsZTogITBcbiAgICAgIH0pO1xuICAgIH1cbiAgICBmdW5jdGlvbiBlbGVtZW50UmVmR2V0dGVyV2l0aERlcHJlY2F0aW9uV2FybmluZygpIHtcbiAgICAgIHZhciBjb21wb25lbnROYW1lID0gZ2V0Q29tcG9uZW50TmFtZUZyb21UeXBlKHRoaXMudHlwZSk7XG4gICAgICBkaWRXYXJuQWJvdXRFbGVtZW50UmVmW2NvbXBvbmVudE5hbWVdIHx8XG4gICAgICAgICgoZGlkV2FybkFib3V0RWxlbWVudFJlZltjb21wb25lbnROYW1lXSA9ICEwKSxcbiAgICAgICAgY29uc29sZS5lcnJvcihcbiAgICAgICAgICBcIkFjY2Vzc2luZyBlbGVtZW50LnJlZiB3YXMgcmVtb3ZlZCBpbiBSZWFjdCAxOS4gcmVmIGlzIG5vdyBhIHJlZ3VsYXIgcHJvcC4gSXQgd2lsbCBiZSByZW1vdmVkIGZyb20gdGhlIEpTWCBFbGVtZW50IHR5cGUgaW4gYSBmdXR1cmUgcmVsZWFzZS5cIlxuICAgICAgICApKTtcbiAgICAgIGNvbXBvbmVudE5hbWUgPSB0aGlzLnByb3BzLnJlZjtcbiAgICAgIHJldHVybiB2b2lkIDAgIT09IGNvbXBvbmVudE5hbWUgPyBjb21wb25lbnROYW1lIDogbnVsbDtcbiAgICB9XG4gICAgZnVuY3Rpb24gUmVhY3RFbGVtZW50KFxuICAgICAgdHlwZSxcbiAgICAgIGtleSxcbiAgICAgIHNlbGYsXG4gICAgICBzb3VyY2UsXG4gICAgICBvd25lcixcbiAgICAgIHByb3BzLFxuICAgICAgZGVidWdTdGFjayxcbiAgICAgIGRlYnVnVGFza1xuICAgICkge1xuICAgICAgc2VsZiA9IHByb3BzLnJlZjtcbiAgICAgIHR5cGUgPSB7XG4gICAgICAgICQkdHlwZW9mOiBSRUFDVF9FTEVNRU5UX1RZUEUsXG4gICAgICAgIHR5cGU6IHR5cGUsXG4gICAgICAgIGtleToga2V5LFxuICAgICAgICBwcm9wczogcHJvcHMsXG4gICAgICAgIF9vd25lcjogb3duZXJcbiAgICAgIH07XG4gICAgICBudWxsICE9PSAodm9pZCAwICE9PSBzZWxmID8gc2VsZiA6IG51bGwpXG4gICAgICAgID8gT2JqZWN0LmRlZmluZVByb3BlcnR5KHR5cGUsIFwicmVmXCIsIHtcbiAgICAgICAgICAgIGVudW1lcmFibGU6ICExLFxuICAgICAgICAgICAgZ2V0OiBlbGVtZW50UmVmR2V0dGVyV2l0aERlcHJlY2F0aW9uV2FybmluZ1xuICAgICAgICAgIH0pXG4gICAgICAgIDogT2JqZWN0LmRlZmluZVByb3BlcnR5KHR5cGUsIFwicmVmXCIsIHsgZW51bWVyYWJsZTogITEsIHZhbHVlOiBudWxsIH0pO1xuICAgICAgdHlwZS5fc3RvcmUgPSB7fTtcbiAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0eXBlLl9zdG9yZSwgXCJ2YWxpZGF0ZWRcIiwge1xuICAgICAgICBjb25maWd1cmFibGU6ICExLFxuICAgICAgICBlbnVtZXJhYmxlOiAhMSxcbiAgICAgICAgd3JpdGFibGU6ICEwLFxuICAgICAgICB2YWx1ZTogMFxuICAgICAgfSk7XG4gICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkodHlwZSwgXCJfZGVidWdJbmZvXCIsIHtcbiAgICAgICAgY29uZmlndXJhYmxlOiAhMSxcbiAgICAgICAgZW51bWVyYWJsZTogITEsXG4gICAgICAgIHdyaXRhYmxlOiAhMCxcbiAgICAgICAgdmFsdWU6IG51bGxcbiAgICAgIH0pO1xuICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHR5cGUsIFwiX2RlYnVnU3RhY2tcIiwge1xuICAgICAgICBjb25maWd1cmFibGU6ICExLFxuICAgICAgICBlbnVtZXJhYmxlOiAhMSxcbiAgICAgICAgd3JpdGFibGU6ICEwLFxuICAgICAgICB2YWx1ZTogZGVidWdTdGFja1xuICAgICAgfSk7XG4gICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkodHlwZSwgXCJfZGVidWdUYXNrXCIsIHtcbiAgICAgICAgY29uZmlndXJhYmxlOiAhMSxcbiAgICAgICAgZW51bWVyYWJsZTogITEsXG4gICAgICAgIHdyaXRhYmxlOiAhMCxcbiAgICAgICAgdmFsdWU6IGRlYnVnVGFza1xuICAgICAgfSk7XG4gICAgICBPYmplY3QuZnJlZXplICYmIChPYmplY3QuZnJlZXplKHR5cGUucHJvcHMpLCBPYmplY3QuZnJlZXplKHR5cGUpKTtcbiAgICAgIHJldHVybiB0eXBlO1xuICAgIH1cbiAgICBmdW5jdGlvbiBqc3hERVZJbXBsKFxuICAgICAgdHlwZSxcbiAgICAgIGNvbmZpZyxcbiAgICAgIG1heWJlS2V5LFxuICAgICAgaXNTdGF0aWNDaGlsZHJlbixcbiAgICAgIHNvdXJjZSxcbiAgICAgIHNlbGYsXG4gICAgICBkZWJ1Z1N0YWNrLFxuICAgICAgZGVidWdUYXNrXG4gICAgKSB7XG4gICAgICB2YXIgY2hpbGRyZW4gPSBjb25maWcuY2hpbGRyZW47XG4gICAgICBpZiAodm9pZCAwICE9PSBjaGlsZHJlbilcbiAgICAgICAgaWYgKGlzU3RhdGljQ2hpbGRyZW4pXG4gICAgICAgICAgaWYgKGlzQXJyYXlJbXBsKGNoaWxkcmVuKSkge1xuICAgICAgICAgICAgZm9yIChcbiAgICAgICAgICAgICAgaXNTdGF0aWNDaGlsZHJlbiA9IDA7XG4gICAgICAgICAgICAgIGlzU3RhdGljQ2hpbGRyZW4gPCBjaGlsZHJlbi5sZW5ndGg7XG4gICAgICAgICAgICAgIGlzU3RhdGljQ2hpbGRyZW4rK1xuICAgICAgICAgICAgKVxuICAgICAgICAgICAgICB2YWxpZGF0ZUNoaWxkS2V5cyhjaGlsZHJlbltpc1N0YXRpY0NoaWxkcmVuXSk7XG4gICAgICAgICAgICBPYmplY3QuZnJlZXplICYmIE9iamVjdC5mcmVlemUoY2hpbGRyZW4pO1xuICAgICAgICAgIH0gZWxzZVxuICAgICAgICAgICAgY29uc29sZS5lcnJvcihcbiAgICAgICAgICAgICAgXCJSZWFjdC5qc3g6IFN0YXRpYyBjaGlsZHJlbiBzaG91bGQgYWx3YXlzIGJlIGFuIGFycmF5LiBZb3UgYXJlIGxpa2VseSBleHBsaWNpdGx5IGNhbGxpbmcgUmVhY3QuanN4cyBvciBSZWFjdC5qc3hERVYuIFVzZSB0aGUgQmFiZWwgdHJhbnNmb3JtIGluc3RlYWQuXCJcbiAgICAgICAgICAgICk7XG4gICAgICAgIGVsc2UgdmFsaWRhdGVDaGlsZEtleXMoY2hpbGRyZW4pO1xuICAgICAgaWYgKGhhc093blByb3BlcnR5LmNhbGwoY29uZmlnLCBcImtleVwiKSkge1xuICAgICAgICBjaGlsZHJlbiA9IGdldENvbXBvbmVudE5hbWVGcm9tVHlwZSh0eXBlKTtcbiAgICAgICAgdmFyIGtleXMgPSBPYmplY3Qua2V5cyhjb25maWcpLmZpbHRlcihmdW5jdGlvbiAoaykge1xuICAgICAgICAgIHJldHVybiBcImtleVwiICE9PSBrO1xuICAgICAgICB9KTtcbiAgICAgICAgaXNTdGF0aWNDaGlsZHJlbiA9XG4gICAgICAgICAgMCA8IGtleXMubGVuZ3RoXG4gICAgICAgICAgICA/IFwie2tleTogc29tZUtleSwgXCIgKyBrZXlzLmpvaW4oXCI6IC4uLiwgXCIpICsgXCI6IC4uLn1cIlxuICAgICAgICAgICAgOiBcIntrZXk6IHNvbWVLZXl9XCI7XG4gICAgICAgIGRpZFdhcm5BYm91dEtleVNwcmVhZFtjaGlsZHJlbiArIGlzU3RhdGljQ2hpbGRyZW5dIHx8XG4gICAgICAgICAgKChrZXlzID1cbiAgICAgICAgICAgIDAgPCBrZXlzLmxlbmd0aCA/IFwie1wiICsga2V5cy5qb2luKFwiOiAuLi4sIFwiKSArIFwiOiAuLi59XCIgOiBcInt9XCIpLFxuICAgICAgICAgIGNvbnNvbGUuZXJyb3IoXG4gICAgICAgICAgICAnQSBwcm9wcyBvYmplY3QgY29udGFpbmluZyBhIFwia2V5XCIgcHJvcCBpcyBiZWluZyBzcHJlYWQgaW50byBKU1g6XFxuICBsZXQgcHJvcHMgPSAlcztcXG4gIDwlcyB7Li4ucHJvcHN9IC8+XFxuUmVhY3Qga2V5cyBtdXN0IGJlIHBhc3NlZCBkaXJlY3RseSB0byBKU1ggd2l0aG91dCB1c2luZyBzcHJlYWQ6XFxuICBsZXQgcHJvcHMgPSAlcztcXG4gIDwlcyBrZXk9e3NvbWVLZXl9IHsuLi5wcm9wc30gLz4nLFxuICAgICAgICAgICAgaXNTdGF0aWNDaGlsZHJlbixcbiAgICAgICAgICAgIGNoaWxkcmVuLFxuICAgICAgICAgICAga2V5cyxcbiAgICAgICAgICAgIGNoaWxkcmVuXG4gICAgICAgICAgKSxcbiAgICAgICAgICAoZGlkV2FybkFib3V0S2V5U3ByZWFkW2NoaWxkcmVuICsgaXNTdGF0aWNDaGlsZHJlbl0gPSAhMCkpO1xuICAgICAgfVxuICAgICAgY2hpbGRyZW4gPSBudWxsO1xuICAgICAgdm9pZCAwICE9PSBtYXliZUtleSAmJlxuICAgICAgICAoY2hlY2tLZXlTdHJpbmdDb2VyY2lvbihtYXliZUtleSksIChjaGlsZHJlbiA9IFwiXCIgKyBtYXliZUtleSkpO1xuICAgICAgaGFzVmFsaWRLZXkoY29uZmlnKSAmJlxuICAgICAgICAoY2hlY2tLZXlTdHJpbmdDb2VyY2lvbihjb25maWcua2V5KSwgKGNoaWxkcmVuID0gXCJcIiArIGNvbmZpZy5rZXkpKTtcbiAgICAgIGlmIChcImtleVwiIGluIGNvbmZpZykge1xuICAgICAgICBtYXliZUtleSA9IHt9O1xuICAgICAgICBmb3IgKHZhciBwcm9wTmFtZSBpbiBjb25maWcpXG4gICAgICAgICAgXCJrZXlcIiAhPT0gcHJvcE5hbWUgJiYgKG1heWJlS2V5W3Byb3BOYW1lXSA9IGNvbmZpZ1twcm9wTmFtZV0pO1xuICAgICAgfSBlbHNlIG1heWJlS2V5ID0gY29uZmlnO1xuICAgICAgY2hpbGRyZW4gJiZcbiAgICAgICAgZGVmaW5lS2V5UHJvcFdhcm5pbmdHZXR0ZXIoXG4gICAgICAgICAgbWF5YmVLZXksXG4gICAgICAgICAgXCJmdW5jdGlvblwiID09PSB0eXBlb2YgdHlwZVxuICAgICAgICAgICAgPyB0eXBlLmRpc3BsYXlOYW1lIHx8IHR5cGUubmFtZSB8fCBcIlVua25vd25cIlxuICAgICAgICAgICAgOiB0eXBlXG4gICAgICAgICk7XG4gICAgICByZXR1cm4gUmVhY3RFbGVtZW50KFxuICAgICAgICB0eXBlLFxuICAgICAgICBjaGlsZHJlbixcbiAgICAgICAgc2VsZixcbiAgICAgICAgc291cmNlLFxuICAgICAgICBnZXRPd25lcigpLFxuICAgICAgICBtYXliZUtleSxcbiAgICAgICAgZGVidWdTdGFjayxcbiAgICAgICAgZGVidWdUYXNrXG4gICAgICApO1xuICAgIH1cbiAgICBmdW5jdGlvbiB2YWxpZGF0ZUNoaWxkS2V5cyhub2RlKSB7XG4gICAgICBcIm9iamVjdFwiID09PSB0eXBlb2Ygbm9kZSAmJlxuICAgICAgICBudWxsICE9PSBub2RlICYmXG4gICAgICAgIG5vZGUuJCR0eXBlb2YgPT09IFJFQUNUX0VMRU1FTlRfVFlQRSAmJlxuICAgICAgICBub2RlLl9zdG9yZSAmJlxuICAgICAgICAobm9kZS5fc3RvcmUudmFsaWRhdGVkID0gMSk7XG4gICAgfVxuICAgIHZhciBSZWFjdCA9IHJlcXVpcmUoXCJyZWFjdFwiKSxcbiAgICAgIFJFQUNUX0VMRU1FTlRfVFlQRSA9IFN5bWJvbC5mb3IoXCJyZWFjdC50cmFuc2l0aW9uYWwuZWxlbWVudFwiKSxcbiAgICAgIFJFQUNUX1BPUlRBTF9UWVBFID0gU3ltYm9sLmZvcihcInJlYWN0LnBvcnRhbFwiKSxcbiAgICAgIFJFQUNUX0ZSQUdNRU5UX1RZUEUgPSBTeW1ib2wuZm9yKFwicmVhY3QuZnJhZ21lbnRcIiksXG4gICAgICBSRUFDVF9TVFJJQ1RfTU9ERV9UWVBFID0gU3ltYm9sLmZvcihcInJlYWN0LnN0cmljdF9tb2RlXCIpLFxuICAgICAgUkVBQ1RfUFJPRklMRVJfVFlQRSA9IFN5bWJvbC5mb3IoXCJyZWFjdC5wcm9maWxlclwiKTtcbiAgICBTeW1ib2wuZm9yKFwicmVhY3QucHJvdmlkZXJcIik7XG4gICAgdmFyIFJFQUNUX0NPTlNVTUVSX1RZUEUgPSBTeW1ib2wuZm9yKFwicmVhY3QuY29uc3VtZXJcIiksXG4gICAgICBSRUFDVF9DT05URVhUX1RZUEUgPSBTeW1ib2wuZm9yKFwicmVhY3QuY29udGV4dFwiKSxcbiAgICAgIFJFQUNUX0ZPUldBUkRfUkVGX1RZUEUgPSBTeW1ib2wuZm9yKFwicmVhY3QuZm9yd2FyZF9yZWZcIiksXG4gICAgICBSRUFDVF9TVVNQRU5TRV9UWVBFID0gU3ltYm9sLmZvcihcInJlYWN0LnN1c3BlbnNlXCIpLFxuICAgICAgUkVBQ1RfU1VTUEVOU0VfTElTVF9UWVBFID0gU3ltYm9sLmZvcihcInJlYWN0LnN1c3BlbnNlX2xpc3RcIiksXG4gICAgICBSRUFDVF9NRU1PX1RZUEUgPSBTeW1ib2wuZm9yKFwicmVhY3QubWVtb1wiKSxcbiAgICAgIFJFQUNUX0xBWllfVFlQRSA9IFN5bWJvbC5mb3IoXCJyZWFjdC5sYXp5XCIpLFxuICAgICAgUkVBQ1RfQUNUSVZJVFlfVFlQRSA9IFN5bWJvbC5mb3IoXCJyZWFjdC5hY3Rpdml0eVwiKSxcbiAgICAgIFJFQUNUX0NMSUVOVF9SRUZFUkVOQ0UgPSBTeW1ib2wuZm9yKFwicmVhY3QuY2xpZW50LnJlZmVyZW5jZVwiKSxcbiAgICAgIFJlYWN0U2hhcmVkSW50ZXJuYWxzID1cbiAgICAgICAgUmVhY3QuX19DTElFTlRfSU5URVJOQUxTX0RPX05PVF9VU0VfT1JfV0FSTl9VU0VSU19USEVZX0NBTk5PVF9VUEdSQURFLFxuICAgICAgaGFzT3duUHJvcGVydHkgPSBPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LFxuICAgICAgaXNBcnJheUltcGwgPSBBcnJheS5pc0FycmF5LFxuICAgICAgY3JlYXRlVGFzayA9IGNvbnNvbGUuY3JlYXRlVGFza1xuICAgICAgICA/IGNvbnNvbGUuY3JlYXRlVGFza1xuICAgICAgICA6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICAgIH07XG4gICAgUmVhY3QgPSB7XG4gICAgICBcInJlYWN0LXN0YWNrLWJvdHRvbS1mcmFtZVwiOiBmdW5jdGlvbiAoY2FsbFN0YWNrRm9yRXJyb3IpIHtcbiAgICAgICAgcmV0dXJuIGNhbGxTdGFja0ZvckVycm9yKCk7XG4gICAgICB9XG4gICAgfTtcbiAgICB2YXIgc3BlY2lhbFByb3BLZXlXYXJuaW5nU2hvd247XG4gICAgdmFyIGRpZFdhcm5BYm91dEVsZW1lbnRSZWYgPSB7fTtcbiAgICB2YXIgdW5rbm93bk93bmVyRGVidWdTdGFjayA9IFJlYWN0W1wicmVhY3Qtc3RhY2stYm90dG9tLWZyYW1lXCJdLmJpbmQoXG4gICAgICBSZWFjdCxcbiAgICAgIFVua25vd25Pd25lclxuICAgICkoKTtcbiAgICB2YXIgdW5rbm93bk93bmVyRGVidWdUYXNrID0gY3JlYXRlVGFzayhnZXRUYXNrTmFtZShVbmtub3duT3duZXIpKTtcbiAgICB2YXIgZGlkV2FybkFib3V0S2V5U3ByZWFkID0ge307XG4gICAgZXhwb3J0cy5GcmFnbWVudCA9IFJFQUNUX0ZSQUdNRU5UX1RZUEU7XG4gICAgZXhwb3J0cy5qc3ggPSBmdW5jdGlvbiAodHlwZSwgY29uZmlnLCBtYXliZUtleSwgc291cmNlLCBzZWxmKSB7XG4gICAgICB2YXIgdHJhY2tBY3R1YWxPd25lciA9XG4gICAgICAgIDFlNCA+IFJlYWN0U2hhcmVkSW50ZXJuYWxzLnJlY2VudGx5Q3JlYXRlZE93bmVyU3RhY2tzKys7XG4gICAgICByZXR1cm4ganN4REVWSW1wbChcbiAgICAgICAgdHlwZSxcbiAgICAgICAgY29uZmlnLFxuICAgICAgICBtYXliZUtleSxcbiAgICAgICAgITEsXG4gICAgICAgIHNvdXJjZSxcbiAgICAgICAgc2VsZixcbiAgICAgICAgdHJhY2tBY3R1YWxPd25lclxuICAgICAgICAgID8gRXJyb3IoXCJyZWFjdC1zdGFjay10b3AtZnJhbWVcIilcbiAgICAgICAgICA6IHVua25vd25Pd25lckRlYnVnU3RhY2ssXG4gICAgICAgIHRyYWNrQWN0dWFsT3duZXIgPyBjcmVhdGVUYXNrKGdldFRhc2tOYW1lKHR5cGUpKSA6IHVua25vd25Pd25lckRlYnVnVGFza1xuICAgICAgKTtcbiAgICB9O1xuICAgIGV4cG9ydHMuanN4cyA9IGZ1bmN0aW9uICh0eXBlLCBjb25maWcsIG1heWJlS2V5LCBzb3VyY2UsIHNlbGYpIHtcbiAgICAgIHZhciB0cmFja0FjdHVhbE93bmVyID1cbiAgICAgICAgMWU0ID4gUmVhY3RTaGFyZWRJbnRlcm5hbHMucmVjZW50bHlDcmVhdGVkT3duZXJTdGFja3MrKztcbiAgICAgIHJldHVybiBqc3hERVZJbXBsKFxuICAgICAgICB0eXBlLFxuICAgICAgICBjb25maWcsXG4gICAgICAgIG1heWJlS2V5LFxuICAgICAgICAhMCxcbiAgICAgICAgc291cmNlLFxuICAgICAgICBzZWxmLFxuICAgICAgICB0cmFja0FjdHVhbE93bmVyXG4gICAgICAgICAgPyBFcnJvcihcInJlYWN0LXN0YWNrLXRvcC1mcmFtZVwiKVxuICAgICAgICAgIDogdW5rbm93bk93bmVyRGVidWdTdGFjayxcbiAgICAgICAgdHJhY2tBY3R1YWxPd25lciA/IGNyZWF0ZVRhc2soZ2V0VGFza05hbWUodHlwZSkpIDogdW5rbm93bk93bmVyRGVidWdUYXNrXG4gICAgICApO1xuICAgIH07XG4gIH0pKCk7XG4iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(pages-dir-browser)/./node_modules/react/cjs/react-jsx-runtime.development.js\n")); - -/***/ }), - -/***/ "(pages-dir-browser)/./node_modules/react/cjs/react.development.js": -/*!*****************************************************!*\ - !*** ./node_modules/react/cjs/react.development.js ***! - \*****************************************************/ -/***/ ((module, exports, __webpack_require__) => { - -"use strict"; -eval(__webpack_require__.ts("/* module decorator */ module = __webpack_require__.nmd(module);\n/* provided dependency */ var process = __webpack_require__(/*! process */ \"(pages-dir-browser)/./node_modules/process/browser.js\");\n/**\n * @license React\n * react.development.js\n *\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n\n true &&\n (function () {\n function defineDeprecationWarning(methodName, info) {\n Object.defineProperty(Component.prototype, methodName, {\n get: function () {\n console.warn(\n \"%s(...) is deprecated in plain JavaScript React classes. %s\",\n info[0],\n info[1]\n );\n }\n });\n }\n function getIteratorFn(maybeIterable) {\n if (null === maybeIterable || \"object\" !== typeof maybeIterable)\n return null;\n maybeIterable =\n (MAYBE_ITERATOR_SYMBOL && maybeIterable[MAYBE_ITERATOR_SYMBOL]) ||\n maybeIterable[\"@@iterator\"];\n return \"function\" === typeof maybeIterable ? maybeIterable : null;\n }\n function warnNoop(publicInstance, callerName) {\n publicInstance =\n ((publicInstance = publicInstance.constructor) &&\n (publicInstance.displayName || publicInstance.name)) ||\n \"ReactClass\";\n var warningKey = publicInstance + \".\" + callerName;\n didWarnStateUpdateForUnmountedComponent[warningKey] ||\n (console.error(\n \"Can't call %s on a component that is not yet mounted. This is a no-op, but it might indicate a bug in your application. Instead, assign to `this.state` directly or define a `state = {};` class property with the desired state in the %s component.\",\n callerName,\n publicInstance\n ),\n (didWarnStateUpdateForUnmountedComponent[warningKey] = !0));\n }\n function Component(props, context, updater) {\n this.props = props;\n this.context = context;\n this.refs = emptyObject;\n this.updater = updater || ReactNoopUpdateQueue;\n }\n function ComponentDummy() {}\n function PureComponent(props, context, updater) {\n this.props = props;\n this.context = context;\n this.refs = emptyObject;\n this.updater = updater || ReactNoopUpdateQueue;\n }\n function testStringCoercion(value) {\n return \"\" + value;\n }\n function checkKeyStringCoercion(value) {\n try {\n testStringCoercion(value);\n var JSCompiler_inline_result = !1;\n } catch (e) {\n JSCompiler_inline_result = !0;\n }\n if (JSCompiler_inline_result) {\n JSCompiler_inline_result = console;\n var JSCompiler_temp_const = JSCompiler_inline_result.error;\n var JSCompiler_inline_result$jscomp$0 =\n (\"function\" === typeof Symbol &&\n Symbol.toStringTag &&\n value[Symbol.toStringTag]) ||\n value.constructor.name ||\n \"Object\";\n JSCompiler_temp_const.call(\n JSCompiler_inline_result,\n \"The provided key is an unsupported type %s. This value must be coerced to a string before using it here.\",\n JSCompiler_inline_result$jscomp$0\n );\n return testStringCoercion(value);\n }\n }\n function getComponentNameFromType(type) {\n if (null == type) return null;\n if (\"function\" === typeof type)\n return type.$$typeof === REACT_CLIENT_REFERENCE\n ? null\n : type.displayName || type.name || null;\n if (\"string\" === typeof type) return type;\n switch (type) {\n case REACT_FRAGMENT_TYPE:\n return \"Fragment\";\n case REACT_PROFILER_TYPE:\n return \"Profiler\";\n case REACT_STRICT_MODE_TYPE:\n return \"StrictMode\";\n case REACT_SUSPENSE_TYPE:\n return \"Suspense\";\n case REACT_SUSPENSE_LIST_TYPE:\n return \"SuspenseList\";\n case REACT_ACTIVITY_TYPE:\n return \"Activity\";\n }\n if (\"object\" === typeof type)\n switch (\n (\"number\" === typeof type.tag &&\n console.error(\n \"Received an unexpected object in getComponentNameFromType(). This is likely a bug in React. Please file an issue.\"\n ),\n type.$$typeof)\n ) {\n case REACT_PORTAL_TYPE:\n return \"Portal\";\n case REACT_CONTEXT_TYPE:\n return (type.displayName || \"Context\") + \".Provider\";\n case REACT_CONSUMER_TYPE:\n return (type._context.displayName || \"Context\") + \".Consumer\";\n case REACT_FORWARD_REF_TYPE:\n var innerType = type.render;\n type = type.displayName;\n type ||\n ((type = innerType.displayName || innerType.name || \"\"),\n (type = \"\" !== type ? \"ForwardRef(\" + type + \")\" : \"ForwardRef\"));\n return type;\n case REACT_MEMO_TYPE:\n return (\n (innerType = type.displayName || null),\n null !== innerType\n ? innerType\n : getComponentNameFromType(type.type) || \"Memo\"\n );\n case REACT_LAZY_TYPE:\n innerType = type._payload;\n type = type._init;\n try {\n return getComponentNameFromType(type(innerType));\n } catch (x) {}\n }\n return null;\n }\n function getTaskName(type) {\n if (type === REACT_FRAGMENT_TYPE) return \"<>\";\n if (\n \"object\" === typeof type &&\n null !== type &&\n type.$$typeof === REACT_LAZY_TYPE\n )\n return \"<...>\";\n try {\n var name = getComponentNameFromType(type);\n return name ? \"<\" + name + \">\" : \"<...>\";\n } catch (x) {\n return \"<...>\";\n }\n }\n function getOwner() {\n var dispatcher = ReactSharedInternals.A;\n return null === dispatcher ? null : dispatcher.getOwner();\n }\n function UnknownOwner() {\n return Error(\"react-stack-top-frame\");\n }\n function hasValidKey(config) {\n if (hasOwnProperty.call(config, \"key\")) {\n var getter = Object.getOwnPropertyDescriptor(config, \"key\").get;\n if (getter && getter.isReactWarning) return !1;\n }\n return void 0 !== config.key;\n }\n function defineKeyPropWarningGetter(props, displayName) {\n function warnAboutAccessingKey() {\n specialPropKeyWarningShown ||\n ((specialPropKeyWarningShown = !0),\n console.error(\n \"%s: `key` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://react.dev/link/special-props)\",\n displayName\n ));\n }\n warnAboutAccessingKey.isReactWarning = !0;\n Object.defineProperty(props, \"key\", {\n get: warnAboutAccessingKey,\n configurable: !0\n });\n }\n function elementRefGetterWithDeprecationWarning() {\n var componentName = getComponentNameFromType(this.type);\n didWarnAboutElementRef[componentName] ||\n ((didWarnAboutElementRef[componentName] = !0),\n console.error(\n \"Accessing element.ref was removed in React 19. ref is now a regular prop. It will be removed from the JSX Element type in a future release.\"\n ));\n componentName = this.props.ref;\n return void 0 !== componentName ? componentName : null;\n }\n function ReactElement(\n type,\n key,\n self,\n source,\n owner,\n props,\n debugStack,\n debugTask\n ) {\n self = props.ref;\n type = {\n $$typeof: REACT_ELEMENT_TYPE,\n type: type,\n key: key,\n props: props,\n _owner: owner\n };\n null !== (void 0 !== self ? self : null)\n ? Object.defineProperty(type, \"ref\", {\n enumerable: !1,\n get: elementRefGetterWithDeprecationWarning\n })\n : Object.defineProperty(type, \"ref\", { enumerable: !1, value: null });\n type._store = {};\n Object.defineProperty(type._store, \"validated\", {\n configurable: !1,\n enumerable: !1,\n writable: !0,\n value: 0\n });\n Object.defineProperty(type, \"_debugInfo\", {\n configurable: !1,\n enumerable: !1,\n writable: !0,\n value: null\n });\n Object.defineProperty(type, \"_debugStack\", {\n configurable: !1,\n enumerable: !1,\n writable: !0,\n value: debugStack\n });\n Object.defineProperty(type, \"_debugTask\", {\n configurable: !1,\n enumerable: !1,\n writable: !0,\n value: debugTask\n });\n Object.freeze && (Object.freeze(type.props), Object.freeze(type));\n return type;\n }\n function cloneAndReplaceKey(oldElement, newKey) {\n newKey = ReactElement(\n oldElement.type,\n newKey,\n void 0,\n void 0,\n oldElement._owner,\n oldElement.props,\n oldElement._debugStack,\n oldElement._debugTask\n );\n oldElement._store &&\n (newKey._store.validated = oldElement._store.validated);\n return newKey;\n }\n function isValidElement(object) {\n return (\n \"object\" === typeof object &&\n null !== object &&\n object.$$typeof === REACT_ELEMENT_TYPE\n );\n }\n function escape(key) {\n var escaperLookup = { \"=\": \"=0\", \":\": \"=2\" };\n return (\n \"$\" +\n key.replace(/[=:]/g, function (match) {\n return escaperLookup[match];\n })\n );\n }\n function getElementKey(element, index) {\n return \"object\" === typeof element &&\n null !== element &&\n null != element.key\n ? (checkKeyStringCoercion(element.key), escape(\"\" + element.key))\n : index.toString(36);\n }\n function noop$1() {}\n function resolveThenable(thenable) {\n switch (thenable.status) {\n case \"fulfilled\":\n return thenable.value;\n case \"rejected\":\n throw thenable.reason;\n default:\n switch (\n (\"string\" === typeof thenable.status\n ? thenable.then(noop$1, noop$1)\n : ((thenable.status = \"pending\"),\n thenable.then(\n function (fulfilledValue) {\n \"pending\" === thenable.status &&\n ((thenable.status = \"fulfilled\"),\n (thenable.value = fulfilledValue));\n },\n function (error) {\n \"pending\" === thenable.status &&\n ((thenable.status = \"rejected\"),\n (thenable.reason = error));\n }\n )),\n thenable.status)\n ) {\n case \"fulfilled\":\n return thenable.value;\n case \"rejected\":\n throw thenable.reason;\n }\n }\n throw thenable;\n }\n function mapIntoArray(children, array, escapedPrefix, nameSoFar, callback) {\n var type = typeof children;\n if (\"undefined\" === type || \"boolean\" === type) children = null;\n var invokeCallback = !1;\n if (null === children) invokeCallback = !0;\n else\n switch (type) {\n case \"bigint\":\n case \"string\":\n case \"number\":\n invokeCallback = !0;\n break;\n case \"object\":\n switch (children.$$typeof) {\n case REACT_ELEMENT_TYPE:\n case REACT_PORTAL_TYPE:\n invokeCallback = !0;\n break;\n case REACT_LAZY_TYPE:\n return (\n (invokeCallback = children._init),\n mapIntoArray(\n invokeCallback(children._payload),\n array,\n escapedPrefix,\n nameSoFar,\n callback\n )\n );\n }\n }\n if (invokeCallback) {\n invokeCallback = children;\n callback = callback(invokeCallback);\n var childKey =\n \"\" === nameSoFar ? \".\" + getElementKey(invokeCallback, 0) : nameSoFar;\n isArrayImpl(callback)\n ? ((escapedPrefix = \"\"),\n null != childKey &&\n (escapedPrefix =\n childKey.replace(userProvidedKeyEscapeRegex, \"$&/\") + \"/\"),\n mapIntoArray(callback, array, escapedPrefix, \"\", function (c) {\n return c;\n }))\n : null != callback &&\n (isValidElement(callback) &&\n (null != callback.key &&\n ((invokeCallback && invokeCallback.key === callback.key) ||\n checkKeyStringCoercion(callback.key)),\n (escapedPrefix = cloneAndReplaceKey(\n callback,\n escapedPrefix +\n (null == callback.key ||\n (invokeCallback && invokeCallback.key === callback.key)\n ? \"\"\n : (\"\" + callback.key).replace(\n userProvidedKeyEscapeRegex,\n \"$&/\"\n ) + \"/\") +\n childKey\n )),\n \"\" !== nameSoFar &&\n null != invokeCallback &&\n isValidElement(invokeCallback) &&\n null == invokeCallback.key &&\n invokeCallback._store &&\n !invokeCallback._store.validated &&\n (escapedPrefix._store.validated = 2),\n (callback = escapedPrefix)),\n array.push(callback));\n return 1;\n }\n invokeCallback = 0;\n childKey = \"\" === nameSoFar ? \".\" : nameSoFar + \":\";\n if (isArrayImpl(children))\n for (var i = 0; i < children.length; i++)\n (nameSoFar = children[i]),\n (type = childKey + getElementKey(nameSoFar, i)),\n (invokeCallback += mapIntoArray(\n nameSoFar,\n array,\n escapedPrefix,\n type,\n callback\n ));\n else if (((i = getIteratorFn(children)), \"function\" === typeof i))\n for (\n i === children.entries &&\n (didWarnAboutMaps ||\n console.warn(\n \"Using Maps as children is not supported. Use an array of keyed ReactElements instead.\"\n ),\n (didWarnAboutMaps = !0)),\n children = i.call(children),\n i = 0;\n !(nameSoFar = children.next()).done;\n\n )\n (nameSoFar = nameSoFar.value),\n (type = childKey + getElementKey(nameSoFar, i++)),\n (invokeCallback += mapIntoArray(\n nameSoFar,\n array,\n escapedPrefix,\n type,\n callback\n ));\n else if (\"object\" === type) {\n if (\"function\" === typeof children.then)\n return mapIntoArray(\n resolveThenable(children),\n array,\n escapedPrefix,\n nameSoFar,\n callback\n );\n array = String(children);\n throw Error(\n \"Objects are not valid as a React child (found: \" +\n (\"[object Object]\" === array\n ? \"object with keys {\" + Object.keys(children).join(\", \") + \"}\"\n : array) +\n \"). If you meant to render a collection of children, use an array instead.\"\n );\n }\n return invokeCallback;\n }\n function mapChildren(children, func, context) {\n if (null == children) return children;\n var result = [],\n count = 0;\n mapIntoArray(children, result, \"\", \"\", function (child) {\n return func.call(context, child, count++);\n });\n return result;\n }\n function lazyInitializer(payload) {\n if (-1 === payload._status) {\n var ctor = payload._result;\n ctor = ctor();\n ctor.then(\n function (moduleObject) {\n if (0 === payload._status || -1 === payload._status)\n (payload._status = 1), (payload._result = moduleObject);\n },\n function (error) {\n if (0 === payload._status || -1 === payload._status)\n (payload._status = 2), (payload._result = error);\n }\n );\n -1 === payload._status &&\n ((payload._status = 0), (payload._result = ctor));\n }\n if (1 === payload._status)\n return (\n (ctor = payload._result),\n void 0 === ctor &&\n console.error(\n \"lazy: Expected the result of a dynamic import() call. Instead received: %s\\n\\nYour code should look like: \\n const MyComponent = lazy(() => import('./MyComponent'))\\n\\nDid you accidentally put curly braces around the import?\",\n ctor\n ),\n \"default\" in ctor ||\n console.error(\n \"lazy: Expected the result of a dynamic import() call. Instead received: %s\\n\\nYour code should look like: \\n const MyComponent = lazy(() => import('./MyComponent'))\",\n ctor\n ),\n ctor.default\n );\n throw payload._result;\n }\n function resolveDispatcher() {\n var dispatcher = ReactSharedInternals.H;\n null === dispatcher &&\n console.error(\n \"Invalid hook call. Hooks can only be called inside of the body of a function component. This could happen for one of the following reasons:\\n1. You might have mismatching versions of React and the renderer (such as React DOM)\\n2. You might be breaking the Rules of Hooks\\n3. You might have more than one copy of React in the same app\\nSee https://react.dev/link/invalid-hook-call for tips about how to debug and fix this problem.\"\n );\n return dispatcher;\n }\n function noop() {}\n function enqueueTask(task) {\n if (null === enqueueTaskImpl)\n try {\n var requireString = (\"require\" + Math.random()).slice(0, 7);\n enqueueTaskImpl = (module && module[requireString]).call(\n module,\n \"timers\"\n ).setImmediate;\n } catch (_err) {\n enqueueTaskImpl = function (callback) {\n !1 === didWarnAboutMessageChannel &&\n ((didWarnAboutMessageChannel = !0),\n \"undefined\" === typeof MessageChannel &&\n console.error(\n \"This browser does not have a MessageChannel implementation, so enqueuing tasks via await act(async () => ...) will fail. Please file an issue at https://github.com/facebook/react/issues if you encounter this warning.\"\n ));\n var channel = new MessageChannel();\n channel.port1.onmessage = callback;\n channel.port2.postMessage(void 0);\n };\n }\n return enqueueTaskImpl(task);\n }\n function aggregateErrors(errors) {\n return 1 < errors.length && \"function\" === typeof AggregateError\n ? new AggregateError(errors)\n : errors[0];\n }\n function popActScope(prevActQueue, prevActScopeDepth) {\n prevActScopeDepth !== actScopeDepth - 1 &&\n console.error(\n \"You seem to have overlapping act() calls, this is not supported. Be sure to await previous act() calls before making a new one. \"\n );\n actScopeDepth = prevActScopeDepth;\n }\n function recursivelyFlushAsyncActWork(returnValue, resolve, reject) {\n var queue = ReactSharedInternals.actQueue;\n if (null !== queue)\n if (0 !== queue.length)\n try {\n flushActQueue(queue);\n enqueueTask(function () {\n return recursivelyFlushAsyncActWork(returnValue, resolve, reject);\n });\n return;\n } catch (error) {\n ReactSharedInternals.thrownErrors.push(error);\n }\n else ReactSharedInternals.actQueue = null;\n 0 < ReactSharedInternals.thrownErrors.length\n ? ((queue = aggregateErrors(ReactSharedInternals.thrownErrors)),\n (ReactSharedInternals.thrownErrors.length = 0),\n reject(queue))\n : resolve(returnValue);\n }\n function flushActQueue(queue) {\n if (!isFlushing) {\n isFlushing = !0;\n var i = 0;\n try {\n for (; i < queue.length; i++) {\n var callback = queue[i];\n do {\n ReactSharedInternals.didUsePromise = !1;\n var continuation = callback(!1);\n if (null !== continuation) {\n if (ReactSharedInternals.didUsePromise) {\n queue[i] = callback;\n queue.splice(0, i);\n return;\n }\n callback = continuation;\n } else break;\n } while (1);\n }\n queue.length = 0;\n } catch (error) {\n queue.splice(0, i + 1), ReactSharedInternals.thrownErrors.push(error);\n } finally {\n isFlushing = !1;\n }\n }\n }\n \"undefined\" !== typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ &&\n \"function\" ===\n typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStart &&\n __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStart(Error());\n var REACT_ELEMENT_TYPE = Symbol.for(\"react.transitional.element\"),\n REACT_PORTAL_TYPE = Symbol.for(\"react.portal\"),\n REACT_FRAGMENT_TYPE = Symbol.for(\"react.fragment\"),\n REACT_STRICT_MODE_TYPE = Symbol.for(\"react.strict_mode\"),\n REACT_PROFILER_TYPE = Symbol.for(\"react.profiler\");\n Symbol.for(\"react.provider\");\n var REACT_CONSUMER_TYPE = Symbol.for(\"react.consumer\"),\n REACT_CONTEXT_TYPE = Symbol.for(\"react.context\"),\n REACT_FORWARD_REF_TYPE = Symbol.for(\"react.forward_ref\"),\n REACT_SUSPENSE_TYPE = Symbol.for(\"react.suspense\"),\n REACT_SUSPENSE_LIST_TYPE = Symbol.for(\"react.suspense_list\"),\n REACT_MEMO_TYPE = Symbol.for(\"react.memo\"),\n REACT_LAZY_TYPE = Symbol.for(\"react.lazy\"),\n REACT_ACTIVITY_TYPE = Symbol.for(\"react.activity\"),\n MAYBE_ITERATOR_SYMBOL = Symbol.iterator,\n didWarnStateUpdateForUnmountedComponent = {},\n ReactNoopUpdateQueue = {\n isMounted: function () {\n return !1;\n },\n enqueueForceUpdate: function (publicInstance) {\n warnNoop(publicInstance, \"forceUpdate\");\n },\n enqueueReplaceState: function (publicInstance) {\n warnNoop(publicInstance, \"replaceState\");\n },\n enqueueSetState: function (publicInstance) {\n warnNoop(publicInstance, \"setState\");\n }\n },\n assign = Object.assign,\n emptyObject = {};\n Object.freeze(emptyObject);\n Component.prototype.isReactComponent = {};\n Component.prototype.setState = function (partialState, callback) {\n if (\n \"object\" !== typeof partialState &&\n \"function\" !== typeof partialState &&\n null != partialState\n )\n throw Error(\n \"takes an object of state variables to update or a function which returns an object of state variables.\"\n );\n this.updater.enqueueSetState(this, partialState, callback, \"setState\");\n };\n Component.prototype.forceUpdate = function (callback) {\n this.updater.enqueueForceUpdate(this, callback, \"forceUpdate\");\n };\n var deprecatedAPIs = {\n isMounted: [\n \"isMounted\",\n \"Instead, make sure to clean up subscriptions and pending requests in componentWillUnmount to prevent memory leaks.\"\n ],\n replaceState: [\n \"replaceState\",\n \"Refactor your code to use setState instead (see https://github.com/facebook/react/issues/3236).\"\n ]\n },\n fnName;\n for (fnName in deprecatedAPIs)\n deprecatedAPIs.hasOwnProperty(fnName) &&\n defineDeprecationWarning(fnName, deprecatedAPIs[fnName]);\n ComponentDummy.prototype = Component.prototype;\n deprecatedAPIs = PureComponent.prototype = new ComponentDummy();\n deprecatedAPIs.constructor = PureComponent;\n assign(deprecatedAPIs, Component.prototype);\n deprecatedAPIs.isPureReactComponent = !0;\n var isArrayImpl = Array.isArray,\n REACT_CLIENT_REFERENCE = Symbol.for(\"react.client.reference\"),\n ReactSharedInternals = {\n H: null,\n A: null,\n T: null,\n S: null,\n V: null,\n actQueue: null,\n isBatchingLegacy: !1,\n didScheduleLegacyUpdate: !1,\n didUsePromise: !1,\n thrownErrors: [],\n getCurrentStack: null,\n recentlyCreatedOwnerStacks: 0\n },\n hasOwnProperty = Object.prototype.hasOwnProperty,\n createTask = console.createTask\n ? console.createTask\n : function () {\n return null;\n };\n deprecatedAPIs = {\n \"react-stack-bottom-frame\": function (callStackForError) {\n return callStackForError();\n }\n };\n var specialPropKeyWarningShown, didWarnAboutOldJSXRuntime;\n var didWarnAboutElementRef = {};\n var unknownOwnerDebugStack = deprecatedAPIs[\n \"react-stack-bottom-frame\"\n ].bind(deprecatedAPIs, UnknownOwner)();\n var unknownOwnerDebugTask = createTask(getTaskName(UnknownOwner));\n var didWarnAboutMaps = !1,\n userProvidedKeyEscapeRegex = /\\/+/g,\n reportGlobalError =\n \"function\" === typeof reportError\n ? reportError\n : function (error) {\n if (\n \"object\" === typeof window &&\n \"function\" === typeof window.ErrorEvent\n ) {\n var event = new window.ErrorEvent(\"error\", {\n bubbles: !0,\n cancelable: !0,\n message:\n \"object\" === typeof error &&\n null !== error &&\n \"string\" === typeof error.message\n ? String(error.message)\n : String(error),\n error: error\n });\n if (!window.dispatchEvent(event)) return;\n } else if (\n \"object\" === typeof process &&\n \"function\" === typeof process.emit\n ) {\n process.emit(\"uncaughtException\", error);\n return;\n }\n console.error(error);\n },\n didWarnAboutMessageChannel = !1,\n enqueueTaskImpl = null,\n actScopeDepth = 0,\n didWarnNoAwaitAct = !1,\n isFlushing = !1,\n queueSeveralMicrotasks =\n \"function\" === typeof queueMicrotask\n ? function (callback) {\n queueMicrotask(function () {\n return queueMicrotask(callback);\n });\n }\n : enqueueTask;\n deprecatedAPIs = Object.freeze({\n __proto__: null,\n c: function (size) {\n return resolveDispatcher().useMemoCache(size);\n }\n });\n exports.Children = {\n map: mapChildren,\n forEach: function (children, forEachFunc, forEachContext) {\n mapChildren(\n children,\n function () {\n forEachFunc.apply(this, arguments);\n },\n forEachContext\n );\n },\n count: function (children) {\n var n = 0;\n mapChildren(children, function () {\n n++;\n });\n return n;\n },\n toArray: function (children) {\n return (\n mapChildren(children, function (child) {\n return child;\n }) || []\n );\n },\n only: function (children) {\n if (!isValidElement(children))\n throw Error(\n \"React.Children.only expected to receive a single React element child.\"\n );\n return children;\n }\n };\n exports.Component = Component;\n exports.Fragment = REACT_FRAGMENT_TYPE;\n exports.Profiler = REACT_PROFILER_TYPE;\n exports.PureComponent = PureComponent;\n exports.StrictMode = REACT_STRICT_MODE_TYPE;\n exports.Suspense = REACT_SUSPENSE_TYPE;\n exports.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE =\n ReactSharedInternals;\n exports.__COMPILER_RUNTIME = deprecatedAPIs;\n exports.act = function (callback) {\n var prevActQueue = ReactSharedInternals.actQueue,\n prevActScopeDepth = actScopeDepth;\n actScopeDepth++;\n var queue = (ReactSharedInternals.actQueue =\n null !== prevActQueue ? prevActQueue : []),\n didAwaitActCall = !1;\n try {\n var result = callback();\n } catch (error) {\n ReactSharedInternals.thrownErrors.push(error);\n }\n if (0 < ReactSharedInternals.thrownErrors.length)\n throw (\n (popActScope(prevActQueue, prevActScopeDepth),\n (callback = aggregateErrors(ReactSharedInternals.thrownErrors)),\n (ReactSharedInternals.thrownErrors.length = 0),\n callback)\n );\n if (\n null !== result &&\n \"object\" === typeof result &&\n \"function\" === typeof result.then\n ) {\n var thenable = result;\n queueSeveralMicrotasks(function () {\n didAwaitActCall ||\n didWarnNoAwaitAct ||\n ((didWarnNoAwaitAct = !0),\n console.error(\n \"You called act(async () => ...) without await. This could lead to unexpected testing behaviour, interleaving multiple act calls and mixing their scopes. You should - await act(async () => ...);\"\n ));\n });\n return {\n then: function (resolve, reject) {\n didAwaitActCall = !0;\n thenable.then(\n function (returnValue) {\n popActScope(prevActQueue, prevActScopeDepth);\n if (0 === prevActScopeDepth) {\n try {\n flushActQueue(queue),\n enqueueTask(function () {\n return recursivelyFlushAsyncActWork(\n returnValue,\n resolve,\n reject\n );\n });\n } catch (error$0) {\n ReactSharedInternals.thrownErrors.push(error$0);\n }\n if (0 < ReactSharedInternals.thrownErrors.length) {\n var _thrownError = aggregateErrors(\n ReactSharedInternals.thrownErrors\n );\n ReactSharedInternals.thrownErrors.length = 0;\n reject(_thrownError);\n }\n } else resolve(returnValue);\n },\n function (error) {\n popActScope(prevActQueue, prevActScopeDepth);\n 0 < ReactSharedInternals.thrownErrors.length\n ? ((error = aggregateErrors(\n ReactSharedInternals.thrownErrors\n )),\n (ReactSharedInternals.thrownErrors.length = 0),\n reject(error))\n : reject(error);\n }\n );\n }\n };\n }\n var returnValue$jscomp$0 = result;\n popActScope(prevActQueue, prevActScopeDepth);\n 0 === prevActScopeDepth &&\n (flushActQueue(queue),\n 0 !== queue.length &&\n queueSeveralMicrotasks(function () {\n didAwaitActCall ||\n didWarnNoAwaitAct ||\n ((didWarnNoAwaitAct = !0),\n console.error(\n \"A component suspended inside an `act` scope, but the `act` call was not awaited. When testing React components that depend on asynchronous data, you must await the result:\\n\\nawait act(() => ...)\"\n ));\n }),\n (ReactSharedInternals.actQueue = null));\n if (0 < ReactSharedInternals.thrownErrors.length)\n throw (\n ((callback = aggregateErrors(ReactSharedInternals.thrownErrors)),\n (ReactSharedInternals.thrownErrors.length = 0),\n callback)\n );\n return {\n then: function (resolve, reject) {\n didAwaitActCall = !0;\n 0 === prevActScopeDepth\n ? ((ReactSharedInternals.actQueue = queue),\n enqueueTask(function () {\n return recursivelyFlushAsyncActWork(\n returnValue$jscomp$0,\n resolve,\n reject\n );\n }))\n : resolve(returnValue$jscomp$0);\n }\n };\n };\n exports.cache = function (fn) {\n return function () {\n return fn.apply(null, arguments);\n };\n };\n exports.captureOwnerStack = function () {\n var getCurrentStack = ReactSharedInternals.getCurrentStack;\n return null === getCurrentStack ? null : getCurrentStack();\n };\n exports.cloneElement = function (element, config, children) {\n if (null === element || void 0 === element)\n throw Error(\n \"The argument must be a React element, but you passed \" +\n element +\n \".\"\n );\n var props = assign({}, element.props),\n key = element.key,\n owner = element._owner;\n if (null != config) {\n var JSCompiler_inline_result;\n a: {\n if (\n hasOwnProperty.call(config, \"ref\") &&\n (JSCompiler_inline_result = Object.getOwnPropertyDescriptor(\n config,\n \"ref\"\n ).get) &&\n JSCompiler_inline_result.isReactWarning\n ) {\n JSCompiler_inline_result = !1;\n break a;\n }\n JSCompiler_inline_result = void 0 !== config.ref;\n }\n JSCompiler_inline_result && (owner = getOwner());\n hasValidKey(config) &&\n (checkKeyStringCoercion(config.key), (key = \"\" + config.key));\n for (propName in config)\n !hasOwnProperty.call(config, propName) ||\n \"key\" === propName ||\n \"__self\" === propName ||\n \"__source\" === propName ||\n (\"ref\" === propName && void 0 === config.ref) ||\n (props[propName] = config[propName]);\n }\n var propName = arguments.length - 2;\n if (1 === propName) props.children = children;\n else if (1 < propName) {\n JSCompiler_inline_result = Array(propName);\n for (var i = 0; i < propName; i++)\n JSCompiler_inline_result[i] = arguments[i + 2];\n props.children = JSCompiler_inline_result;\n }\n props = ReactElement(\n element.type,\n key,\n void 0,\n void 0,\n owner,\n props,\n element._debugStack,\n element._debugTask\n );\n for (key = 2; key < arguments.length; key++)\n (owner = arguments[key]),\n isValidElement(owner) && owner._store && (owner._store.validated = 1);\n return props;\n };\n exports.createContext = function (defaultValue) {\n defaultValue = {\n $$typeof: REACT_CONTEXT_TYPE,\n _currentValue: defaultValue,\n _currentValue2: defaultValue,\n _threadCount: 0,\n Provider: null,\n Consumer: null\n };\n defaultValue.Provider = defaultValue;\n defaultValue.Consumer = {\n $$typeof: REACT_CONSUMER_TYPE,\n _context: defaultValue\n };\n defaultValue._currentRenderer = null;\n defaultValue._currentRenderer2 = null;\n return defaultValue;\n };\n exports.createElement = function (type, config, children) {\n for (var i = 2; i < arguments.length; i++) {\n var node = arguments[i];\n isValidElement(node) && node._store && (node._store.validated = 1);\n }\n i = {};\n node = null;\n if (null != config)\n for (propName in (didWarnAboutOldJSXRuntime ||\n !(\"__self\" in config) ||\n \"key\" in config ||\n ((didWarnAboutOldJSXRuntime = !0),\n console.warn(\n \"Your app (or one of its dependencies) is using an outdated JSX transform. Update to the modern JSX transform for faster performance: https://react.dev/link/new-jsx-transform\"\n )),\n hasValidKey(config) &&\n (checkKeyStringCoercion(config.key), (node = \"\" + config.key)),\n config))\n hasOwnProperty.call(config, propName) &&\n \"key\" !== propName &&\n \"__self\" !== propName &&\n \"__source\" !== propName &&\n (i[propName] = config[propName]);\n var childrenLength = arguments.length - 2;\n if (1 === childrenLength) i.children = children;\n else if (1 < childrenLength) {\n for (\n var childArray = Array(childrenLength), _i = 0;\n _i < childrenLength;\n _i++\n )\n childArray[_i] = arguments[_i + 2];\n Object.freeze && Object.freeze(childArray);\n i.children = childArray;\n }\n if (type && type.defaultProps)\n for (propName in ((childrenLength = type.defaultProps), childrenLength))\n void 0 === i[propName] && (i[propName] = childrenLength[propName]);\n node &&\n defineKeyPropWarningGetter(\n i,\n \"function\" === typeof type\n ? type.displayName || type.name || \"Unknown\"\n : type\n );\n var propName = 1e4 > ReactSharedInternals.recentlyCreatedOwnerStacks++;\n return ReactElement(\n type,\n node,\n void 0,\n void 0,\n getOwner(),\n i,\n propName ? Error(\"react-stack-top-frame\") : unknownOwnerDebugStack,\n propName ? createTask(getTaskName(type)) : unknownOwnerDebugTask\n );\n };\n exports.createRef = function () {\n var refObject = { current: null };\n Object.seal(refObject);\n return refObject;\n };\n exports.forwardRef = function (render) {\n null != render && render.$$typeof === REACT_MEMO_TYPE\n ? console.error(\n \"forwardRef requires a render function but received a `memo` component. Instead of forwardRef(memo(...)), use memo(forwardRef(...)).\"\n )\n : \"function\" !== typeof render\n ? console.error(\n \"forwardRef requires a render function but was given %s.\",\n null === render ? \"null\" : typeof render\n )\n : 0 !== render.length &&\n 2 !== render.length &&\n console.error(\n \"forwardRef render functions accept exactly two parameters: props and ref. %s\",\n 1 === render.length\n ? \"Did you forget to use the ref parameter?\"\n : \"Any additional parameter will be undefined.\"\n );\n null != render &&\n null != render.defaultProps &&\n console.error(\n \"forwardRef render functions do not support defaultProps. Did you accidentally pass a React component?\"\n );\n var elementType = { $$typeof: REACT_FORWARD_REF_TYPE, render: render },\n ownName;\n Object.defineProperty(elementType, \"displayName\", {\n enumerable: !1,\n configurable: !0,\n get: function () {\n return ownName;\n },\n set: function (name) {\n ownName = name;\n render.name ||\n render.displayName ||\n (Object.defineProperty(render, \"name\", { value: name }),\n (render.displayName = name));\n }\n });\n return elementType;\n };\n exports.isValidElement = isValidElement;\n exports.lazy = function (ctor) {\n return {\n $$typeof: REACT_LAZY_TYPE,\n _payload: { _status: -1, _result: ctor },\n _init: lazyInitializer\n };\n };\n exports.memo = function (type, compare) {\n null == type &&\n console.error(\n \"memo: The first argument must be a component. Instead received: %s\",\n null === type ? \"null\" : typeof type\n );\n compare = {\n $$typeof: REACT_MEMO_TYPE,\n type: type,\n compare: void 0 === compare ? null : compare\n };\n var ownName;\n Object.defineProperty(compare, \"displayName\", {\n enumerable: !1,\n configurable: !0,\n get: function () {\n return ownName;\n },\n set: function (name) {\n ownName = name;\n type.name ||\n type.displayName ||\n (Object.defineProperty(type, \"name\", { value: name }),\n (type.displayName = name));\n }\n });\n return compare;\n };\n exports.startTransition = function (scope) {\n var prevTransition = ReactSharedInternals.T,\n currentTransition = {};\n ReactSharedInternals.T = currentTransition;\n currentTransition._updatedFibers = new Set();\n try {\n var returnValue = scope(),\n onStartTransitionFinish = ReactSharedInternals.S;\n null !== onStartTransitionFinish &&\n onStartTransitionFinish(currentTransition, returnValue);\n \"object\" === typeof returnValue &&\n null !== returnValue &&\n \"function\" === typeof returnValue.then &&\n returnValue.then(noop, reportGlobalError);\n } catch (error) {\n reportGlobalError(error);\n } finally {\n null === prevTransition &&\n currentTransition._updatedFibers &&\n ((scope = currentTransition._updatedFibers.size),\n currentTransition._updatedFibers.clear(),\n 10 < scope &&\n console.warn(\n \"Detected a large number of updates inside startTransition. If this is due to a subscription please re-write it to use React provided hooks. Otherwise concurrent mode guarantees are off the table.\"\n )),\n (ReactSharedInternals.T = prevTransition);\n }\n };\n exports.unstable_useCacheRefresh = function () {\n return resolveDispatcher().useCacheRefresh();\n };\n exports.use = function (usable) {\n return resolveDispatcher().use(usable);\n };\n exports.useActionState = function (action, initialState, permalink) {\n return resolveDispatcher().useActionState(\n action,\n initialState,\n permalink\n );\n };\n exports.useCallback = function (callback, deps) {\n return resolveDispatcher().useCallback(callback, deps);\n };\n exports.useContext = function (Context) {\n var dispatcher = resolveDispatcher();\n Context.$$typeof === REACT_CONSUMER_TYPE &&\n console.error(\n \"Calling useContext(Context.Consumer) is not supported and will cause bugs. Did you mean to call useContext(Context) instead?\"\n );\n return dispatcher.useContext(Context);\n };\n exports.useDebugValue = function (value, formatterFn) {\n return resolveDispatcher().useDebugValue(value, formatterFn);\n };\n exports.useDeferredValue = function (value, initialValue) {\n return resolveDispatcher().useDeferredValue(value, initialValue);\n };\n exports.useEffect = function (create, createDeps, update) {\n null == create &&\n console.warn(\n \"React Hook useEffect requires an effect callback. Did you forget to pass a callback to the hook?\"\n );\n var dispatcher = resolveDispatcher();\n if (\"function\" === typeof update)\n throw Error(\n \"useEffect CRUD overload is not enabled in this build of React.\"\n );\n return dispatcher.useEffect(create, createDeps);\n };\n exports.useId = function () {\n return resolveDispatcher().useId();\n };\n exports.useImperativeHandle = function (ref, create, deps) {\n return resolveDispatcher().useImperativeHandle(ref, create, deps);\n };\n exports.useInsertionEffect = function (create, deps) {\n null == create &&\n console.warn(\n \"React Hook useInsertionEffect requires an effect callback. Did you forget to pass a callback to the hook?\"\n );\n return resolveDispatcher().useInsertionEffect(create, deps);\n };\n exports.useLayoutEffect = function (create, deps) {\n null == create &&\n console.warn(\n \"React Hook useLayoutEffect requires an effect callback. Did you forget to pass a callback to the hook?\"\n );\n return resolveDispatcher().useLayoutEffect(create, deps);\n };\n exports.useMemo = function (create, deps) {\n return resolveDispatcher().useMemo(create, deps);\n };\n exports.useOptimistic = function (passthrough, reducer) {\n return resolveDispatcher().useOptimistic(passthrough, reducer);\n };\n exports.useReducer = function (reducer, initialArg, init) {\n return resolveDispatcher().useReducer(reducer, initialArg, init);\n };\n exports.useRef = function (initialValue) {\n return resolveDispatcher().useRef(initialValue);\n };\n exports.useState = function (initialState) {\n return resolveDispatcher().useState(initialState);\n };\n exports.useSyncExternalStore = function (\n subscribe,\n getSnapshot,\n getServerSnapshot\n ) {\n return resolveDispatcher().useSyncExternalStore(\n subscribe,\n getSnapshot,\n getServerSnapshot\n );\n };\n exports.useTransition = function () {\n return resolveDispatcher().useTransition();\n };\n exports.version = \"19.1.0\";\n \"undefined\" !== typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ &&\n \"function\" ===\n typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop &&\n __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop(Error());\n })();\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9yZWFjdC9janMvcmVhY3QuZGV2ZWxvcG1lbnQuanMiLCJtYXBwaW5ncyI6Ijs7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRWE7QUFDYixLQUFxQztBQUNyQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esb01BQW9NO0FBQ3BNO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsUUFBUTtBQUNSO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsY0FBYztBQUNkO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxRQUFRO0FBQ1I7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFdBQVc7QUFDWCwrQ0FBK0MsNkJBQTZCO0FBQzVFO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsNEJBQTRCO0FBQzVCO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxtQkFBbUI7QUFDbkI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGFBQWE7QUFDYjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHdCQUF3QixxQkFBcUI7QUFDN0M7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsbUNBQW1DLHlDQUF5QztBQUM1RTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxXQUFXO0FBQ1g7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7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LGdCQUFnQjtBQUNwQjtBQUNBO0FBQ0EsSUFBSSw0QkFBNEI7QUFDaEM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxJQUFJLHFCQUFxQjtBQUN6QjtBQUNBO0FBQ0EsSUFBSSxlQUFlO0FBQ25CO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsR0FBRyIsInNvdXJjZXMiOlsiRDpcXGRvbmd5dW4tcHJvamVjdHNcXHR3b1xcbm9kZV9tb2R1bGVzXFxyZWFjdFxcY2pzXFxyZWFjdC5kZXZlbG9wbWVudC5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBsaWNlbnNlIFJlYWN0XG4gKiByZWFjdC5kZXZlbG9wbWVudC5qc1xuICpcbiAqIENvcHlyaWdodCAoYykgTWV0YSBQbGF0Zm9ybXMsIEluYy4gYW5kIGFmZmlsaWF0ZXMuXG4gKlxuICogVGhpcyBzb3VyY2UgY29kZSBpcyBsaWNlbnNlZCB1bmRlciB0aGUgTUlUIGxpY2Vuc2UgZm91bmQgaW4gdGhlXG4gKiBMSUNFTlNFIGZpbGUgaW4gdGhlIHJvb3QgZGlyZWN0b3J5IG9mIHRoaXMgc291cmNlIHRyZWUuXG4gKi9cblxuXCJ1c2Ugc3RyaWN0XCI7XG5cInByb2R1Y3Rpb25cIiAhPT0gcHJvY2Vzcy5lbnYuTk9ERV9FTlYgJiZcbiAgKGZ1bmN0aW9uICgpIHtcbiAgICBmdW5jdGlvbiBkZWZpbmVEZXByZWNhdGlvbldhcm5pbmcobWV0aG9kTmFtZSwgaW5mbykge1xuICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KENvbXBvbmVudC5wcm90b3R5cGUsIG1ldGhvZE5hbWUsIHtcbiAgICAgICAgZ2V0OiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgY29uc29sZS53YXJuKFxuICAgICAgICAgICAgXCIlcyguLi4pIGlzIGRlcHJlY2F0ZWQgaW4gcGxhaW4gSmF2YVNjcmlwdCBSZWFjdCBjbGFzc2VzLiAlc1wiLFxuICAgICAgICAgICAgaW5mb1swXSxcbiAgICAgICAgICAgIGluZm9bMV1cbiAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9XG4gICAgZnVuY3Rpb24gZ2V0SXRlcmF0b3JGbihtYXliZUl0ZXJhYmxlKSB7XG4gICAgICBpZiAobnVsbCA9PT0gbWF5YmVJdGVyYWJsZSB8fCBcIm9iamVjdFwiICE9PSB0eXBlb2YgbWF5YmVJdGVyYWJsZSlcbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICBtYXliZUl0ZXJhYmxlID1cbiAgICAgICAgKE1BWUJFX0lURVJBVE9SX1NZTUJPTCAmJiBtYXliZUl0ZXJhYmxlW01BWUJFX0lURVJBVE9SX1NZTUJPTF0pIHx8XG4gICAgICAgIG1heWJlSXRlcmFibGVbXCJAQGl0ZXJhdG9yXCJdO1xuICAgICAgcmV0dXJuIFwiZnVuY3Rpb25cIiA9PT0gdHlwZW9mIG1heWJlSXRlcmFibGUgPyBtYXliZUl0ZXJhYmxlIDogbnVsbDtcbiAgICB9XG4gICAgZnVuY3Rpb24gd2Fybk5vb3AocHVibGljSW5zdGFuY2UsIGNhbGxlck5hbWUpIHtcbiAgICAgIHB1YmxpY0luc3RhbmNlID1cbiAgICAgICAgKChwdWJsaWNJbnN0YW5jZSA9IHB1YmxpY0luc3RhbmNlLmNvbnN0cnVjdG9yKSAmJlxuICAgICAgICAgIChwdWJsaWNJbnN0YW5jZS5kaXNwbGF5TmFtZSB8fCBwdWJsaWNJbnN0YW5jZS5uYW1lKSkgfHxcbiAgICAgICAgXCJSZWFjdENsYXNzXCI7XG4gICAgICB2YXIgd2FybmluZ0tleSA9IHB1YmxpY0luc3RhbmNlICsgXCIuXCIgKyBjYWxsZXJOYW1lO1xuICAgICAgZGlkV2FyblN0YXRlVXBkYXRlRm9yVW5tb3VudGVkQ29tcG9uZW50W3dhcm5pbmdLZXldIHx8XG4gICAgICAgIChjb25zb2xlLmVycm9yKFxuICAgICAgICAgIFwiQ2FuJ3QgY2FsbCAlcyBvbiBhIGNvbXBvbmVudCB0aGF0IGlzIG5vdCB5ZXQgbW91bnRlZC4gVGhpcyBpcyBhIG5vLW9wLCBidXQgaXQgbWlnaHQgaW5kaWNhdGUgYSBidWcgaW4geW91ciBhcHBsaWNhdGlvbi4gSW5zdGVhZCwgYXNzaWduIHRvIGB0aGlzLnN0YXRlYCBkaXJlY3RseSBvciBkZWZpbmUgYSBgc3RhdGUgPSB7fTtgIGNsYXNzIHByb3BlcnR5IHdpdGggdGhlIGRlc2lyZWQgc3RhdGUgaW4gdGhlICVzIGNvbXBvbmVudC5cIixcbiAgICAgICAgICBjYWxsZXJOYW1lLFxuICAgICAgICAgIHB1YmxpY0luc3RhbmNlXG4gICAgICAgICksXG4gICAgICAgIChkaWRXYXJuU3RhdGVVcGRhdGVGb3JVbm1vdW50ZWRDb21wb25lbnRbd2FybmluZ0tleV0gPSAhMCkpO1xuICAgIH1cbiAgICBmdW5jdGlvbiBDb21wb25lbnQocHJvcHMsIGNvbnRleHQsIHVwZGF0ZXIpIHtcbiAgICAgIHRoaXMucHJvcHMgPSBwcm9wcztcbiAgICAgIHRoaXMuY29udGV4dCA9IGNvbnRleHQ7XG4gICAgICB0aGlzLnJlZnMgPSBlbXB0eU9iamVjdDtcbiAgICAgIHRoaXMudXBkYXRlciA9IHVwZGF0ZXIgfHwgUmVhY3ROb29wVXBkYXRlUXVldWU7XG4gICAgfVxuICAgIGZ1bmN0aW9uIENvbXBvbmVudER1bW15KCkge31cbiAgICBmdW5jdGlvbiBQdXJlQ29tcG9uZW50KHByb3BzLCBjb250ZXh0LCB1cGRhdGVyKSB7XG4gICAgICB0aGlzLnByb3BzID0gcHJvcHM7XG4gICAgICB0aGlzLmNvbnRleHQgPSBjb250ZXh0O1xuICAgICAgdGhpcy5yZWZzID0gZW1wdHlPYmplY3Q7XG4gICAgICB0aGlzLnVwZGF0ZXIgPSB1cGRhdGVyIHx8IFJlYWN0Tm9vcFVwZGF0ZVF1ZXVlO1xuICAgIH1cbiAgICBmdW5jdGlvbiB0ZXN0U3RyaW5nQ29lcmNpb24odmFsdWUpIHtcbiAgICAgIHJldHVybiBcIlwiICsgdmFsdWU7XG4gICAgfVxuICAgIGZ1bmN0aW9uIGNoZWNrS2V5U3RyaW5nQ29lcmNpb24odmFsdWUpIHtcbiAgICAgIHRyeSB7XG4gICAgICAgIHRlc3RTdHJpbmdDb2VyY2lvbih2YWx1ZSk7XG4gICAgICAgIHZhciBKU0NvbXBpbGVyX2lubGluZV9yZXN1bHQgPSAhMTtcbiAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgSlNDb21waWxlcl9pbmxpbmVfcmVzdWx0ID0gITA7XG4gICAgICB9XG4gICAgICBpZiAoSlNDb21waWxlcl9pbmxpbmVfcmVzdWx0KSB7XG4gICAgICAgIEpTQ29tcGlsZXJfaW5saW5lX3Jlc3VsdCA9IGNvbnNvbGU7XG4gICAgICAgIHZhciBKU0NvbXBpbGVyX3RlbXBfY29uc3QgPSBKU0NvbXBpbGVyX2lubGluZV9yZXN1bHQuZXJyb3I7XG4gICAgICAgIHZhciBKU0NvbXBpbGVyX2lubGluZV9yZXN1bHQkanNjb21wJDAgPVxuICAgICAgICAgIChcImZ1bmN0aW9uXCIgPT09IHR5cGVvZiBTeW1ib2wgJiZcbiAgICAgICAgICAgIFN5bWJvbC50b1N0cmluZ1RhZyAmJlxuICAgICAgICAgICAgdmFsdWVbU3ltYm9sLnRvU3RyaW5nVGFnXSkgfHxcbiAgICAgICAgICB2YWx1ZS5jb25zdHJ1Y3Rvci5uYW1lIHx8XG4gICAgICAgICAgXCJPYmplY3RcIjtcbiAgICAgICAgSlNDb21waWxlcl90ZW1wX2NvbnN0LmNhbGwoXG4gICAgICAgICAgSlNDb21waWxlcl9pbmxpbmVfcmVzdWx0LFxuICAgICAgICAgIFwiVGhlIHByb3ZpZGVkIGtleSBpcyBhbiB1bnN1cHBvcnRlZCB0eXBlICVzLiBUaGlzIHZhbHVlIG11c3QgYmUgY29lcmNlZCB0byBhIHN0cmluZyBiZWZvcmUgdXNpbmcgaXQgaGVyZS5cIixcbiAgICAgICAgICBKU0NvbXBpbGVyX2lubGluZV9yZXN1bHQkanNjb21wJDBcbiAgICAgICAgKTtcbiAgICAgICAgcmV0dXJuIHRlc3RTdHJpbmdDb2VyY2lvbih2YWx1ZSk7XG4gICAgICB9XG4gICAgfVxuICAgIGZ1bmN0aW9uIGdldENvbXBvbmVudE5hbWVGcm9tVHlwZSh0eXBlKSB7XG4gICAgICBpZiAobnVsbCA9PSB0eXBlKSByZXR1cm4gbnVsbDtcbiAgICAgIGlmIChcImZ1bmN0aW9uXCIgPT09IHR5cGVvZiB0eXBlKVxuICAgICAgICByZXR1cm4gdHlwZS4kJHR5cGVvZiA9PT0gUkVBQ1RfQ0xJRU5UX1JFRkVSRU5DRVxuICAgICAgICAgID8gbnVsbFxuICAgICAgICAgIDogdHlwZS5kaXNwbGF5TmFtZSB8fCB0eXBlLm5hbWUgfHwgbnVsbDtcbiAgICAgIGlmIChcInN0cmluZ1wiID09PSB0eXBlb2YgdHlwZSkgcmV0dXJuIHR5cGU7XG4gICAgICBzd2l0Y2ggKHR5cGUpIHtcbiAgICAgICAgY2FzZSBSRUFDVF9GUkFHTUVOVF9UWVBFOlxuICAgICAgICAgIHJldHVybiBcIkZyYWdtZW50XCI7XG4gICAgICAgIGNhc2UgUkVBQ1RfUFJPRklMRVJfVFlQRTpcbiAgICAgICAgICByZXR1cm4gXCJQcm9maWxlclwiO1xuICAgICAgICBjYXNlIFJFQUNUX1NUUklDVF9NT0RFX1RZUEU6XG4gICAgICAgICAgcmV0dXJuIFwiU3RyaWN0TW9kZVwiO1xuICAgICAgICBjYXNlIFJFQUNUX1NVU1BFTlNFX1RZUEU6XG4gICAgICAgICAgcmV0dXJuIFwiU3VzcGVuc2VcIjtcbiAgICAgICAgY2FzZSBSRUFDVF9TVVNQRU5TRV9MSVNUX1RZUEU6XG4gICAgICAgICAgcmV0dXJuIFwiU3VzcGVuc2VMaXN0XCI7XG4gICAgICAgIGNhc2UgUkVBQ1RfQUNUSVZJVFlfVFlQRTpcbiAgICAgICAgICByZXR1cm4gXCJBY3Rpdml0eVwiO1xuICAgICAgfVxuICAgICAgaWYgKFwib2JqZWN0XCIgPT09IHR5cGVvZiB0eXBlKVxuICAgICAgICBzd2l0Y2ggKFxuICAgICAgICAgIChcIm51bWJlclwiID09PSB0eXBlb2YgdHlwZS50YWcgJiZcbiAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoXG4gICAgICAgICAgICAgIFwiUmVjZWl2ZWQgYW4gdW5leHBlY3RlZCBvYmplY3QgaW4gZ2V0Q29tcG9uZW50TmFtZUZyb21UeXBlKCkuIFRoaXMgaXMgbGlrZWx5IGEgYnVnIGluIFJlYWN0LiBQbGVhc2UgZmlsZSBhbiBpc3N1ZS5cIlxuICAgICAgICAgICAgKSxcbiAgICAgICAgICB0eXBlLiQkdHlwZW9mKVxuICAgICAgICApIHtcbiAgICAgICAgICBjYXNlIFJFQUNUX1BPUlRBTF9UWVBFOlxuICAgICAgICAgICAgcmV0dXJuIFwiUG9ydGFsXCI7XG4gICAgICAgICAgY2FzZSBSRUFDVF9DT05URVhUX1RZUEU6XG4gICAgICAgICAgICByZXR1cm4gKHR5cGUuZGlzcGxheU5hbWUgfHwgXCJDb250ZXh0XCIpICsgXCIuUHJvdmlkZXJcIjtcbiAgICAgICAgICBjYXNlIFJFQUNUX0NPTlNVTUVSX1RZUEU6XG4gICAgICAgICAgICByZXR1cm4gKHR5cGUuX2NvbnRleHQuZGlzcGxheU5hbWUgfHwgXCJDb250ZXh0XCIpICsgXCIuQ29uc3VtZXJcIjtcbiAgICAgICAgICBjYXNlIFJFQUNUX0ZPUldBUkRfUkVGX1RZUEU6XG4gICAgICAgICAgICB2YXIgaW5uZXJUeXBlID0gdHlwZS5yZW5kZXI7XG4gICAgICAgICAgICB0eXBlID0gdHlwZS5kaXNwbGF5TmFtZTtcbiAgICAgICAgICAgIHR5cGUgfHxcbiAgICAgICAgICAgICAgKCh0eXBlID0gaW5uZXJUeXBlLmRpc3BsYXlOYW1lIHx8IGlubmVyVHlwZS5uYW1lIHx8IFwiXCIpLFxuICAgICAgICAgICAgICAodHlwZSA9IFwiXCIgIT09IHR5cGUgPyBcIkZvcndhcmRSZWYoXCIgKyB0eXBlICsgXCIpXCIgOiBcIkZvcndhcmRSZWZcIikpO1xuICAgICAgICAgICAgcmV0dXJuIHR5cGU7XG4gICAgICAgICAgY2FzZSBSRUFDVF9NRU1PX1RZUEU6XG4gICAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgICAoaW5uZXJUeXBlID0gdHlwZS5kaXNwbGF5TmFtZSB8fCBudWxsKSxcbiAgICAgICAgICAgICAgbnVsbCAhPT0gaW5uZXJUeXBlXG4gICAgICAgICAgICAgICAgPyBpbm5lclR5cGVcbiAgICAgICAgICAgICAgICA6IGdldENvbXBvbmVudE5hbWVGcm9tVHlwZSh0eXBlLnR5cGUpIHx8IFwiTWVtb1wiXG4gICAgICAgICAgICApO1xuICAgICAgICAgIGNhc2UgUkVBQ1RfTEFaWV9UWVBFOlxuICAgICAgICAgICAgaW5uZXJUeXBlID0gdHlwZS5fcGF5bG9hZDtcbiAgICAgICAgICAgIHR5cGUgPSB0eXBlLl9pbml0O1xuICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgcmV0dXJuIGdldENvbXBvbmVudE5hbWVGcm9tVHlwZSh0eXBlKGlubmVyVHlwZSkpO1xuICAgICAgICAgICAgfSBjYXRjaCAoeCkge31cbiAgICAgICAgfVxuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuICAgIGZ1bmN0aW9uIGdldFRhc2tOYW1lKHR5cGUpIHtcbiAgICAgIGlmICh0eXBlID09PSBSRUFDVF9GUkFHTUVOVF9UWVBFKSByZXR1cm4gXCI8PlwiO1xuICAgICAgaWYgKFxuICAgICAgICBcIm9iamVjdFwiID09PSB0eXBlb2YgdHlwZSAmJlxuICAgICAgICBudWxsICE9PSB0eXBlICYmXG4gICAgICAgIHR5cGUuJCR0eXBlb2YgPT09IFJFQUNUX0xBWllfVFlQRVxuICAgICAgKVxuICAgICAgICByZXR1cm4gXCI8Li4uPlwiO1xuICAgICAgdHJ5IHtcbiAgICAgICAgdmFyIG5hbWUgPSBnZXRDb21wb25lbnROYW1lRnJvbVR5cGUodHlwZSk7XG4gICAgICAgIHJldHVybiBuYW1lID8gXCI8XCIgKyBuYW1lICsgXCI+XCIgOiBcIjwuLi4+XCI7XG4gICAgICB9IGNhdGNoICh4KSB7XG4gICAgICAgIHJldHVybiBcIjwuLi4+XCI7XG4gICAgICB9XG4gICAgfVxuICAgIGZ1bmN0aW9uIGdldE93bmVyKCkge1xuICAgICAgdmFyIGRpc3BhdGNoZXIgPSBSZWFjdFNoYXJlZEludGVybmFscy5BO1xuICAgICAgcmV0dXJuIG51bGwgPT09IGRpc3BhdGNoZXIgPyBudWxsIDogZGlzcGF0Y2hlci5nZXRPd25lcigpO1xuICAgIH1cbiAgICBmdW5jdGlvbiBVbmtub3duT3duZXIoKSB7XG4gICAgICByZXR1cm4gRXJyb3IoXCJyZWFjdC1zdGFjay10b3AtZnJhbWVcIik7XG4gICAgfVxuICAgIGZ1bmN0aW9uIGhhc1ZhbGlkS2V5KGNvbmZpZykge1xuICAgICAgaWYgKGhhc093blByb3BlcnR5LmNhbGwoY29uZmlnLCBcImtleVwiKSkge1xuICAgICAgICB2YXIgZ2V0dGVyID0gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihjb25maWcsIFwia2V5XCIpLmdldDtcbiAgICAgICAgaWYgKGdldHRlciAmJiBnZXR0ZXIuaXNSZWFjdFdhcm5pbmcpIHJldHVybiAhMTtcbiAgICAgIH1cbiAgICAgIHJldHVybiB2b2lkIDAgIT09IGNvbmZpZy5rZXk7XG4gICAgfVxuICAgIGZ1bmN0aW9uIGRlZmluZUtleVByb3BXYXJuaW5nR2V0dGVyKHByb3BzLCBkaXNwbGF5TmFtZSkge1xuICAgICAgZnVuY3Rpb24gd2FybkFib3V0QWNjZXNzaW5nS2V5KCkge1xuICAgICAgICBzcGVjaWFsUHJvcEtleVdhcm5pbmdTaG93biB8fFxuICAgICAgICAgICgoc3BlY2lhbFByb3BLZXlXYXJuaW5nU2hvd24gPSAhMCksXG4gICAgICAgICAgY29uc29sZS5lcnJvcihcbiAgICAgICAgICAgIFwiJXM6IGBrZXlgIGlzIG5vdCBhIHByb3AuIFRyeWluZyB0byBhY2Nlc3MgaXQgd2lsbCByZXN1bHQgaW4gYHVuZGVmaW5lZGAgYmVpbmcgcmV0dXJuZWQuIElmIHlvdSBuZWVkIHRvIGFjY2VzcyB0aGUgc2FtZSB2YWx1ZSB3aXRoaW4gdGhlIGNoaWxkIGNvbXBvbmVudCwgeW91IHNob3VsZCBwYXNzIGl0IGFzIGEgZGlmZmVyZW50IHByb3AuIChodHRwczovL3JlYWN0LmRldi9saW5rL3NwZWNpYWwtcHJvcHMpXCIsXG4gICAgICAgICAgICBkaXNwbGF5TmFtZVxuICAgICAgICAgICkpO1xuICAgICAgfVxuICAgICAgd2FybkFib3V0QWNjZXNzaW5nS2V5LmlzUmVhY3RXYXJuaW5nID0gITA7XG4gICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkocHJvcHMsIFwia2V5XCIsIHtcbiAgICAgICAgZ2V0OiB3YXJuQWJvdXRBY2Nlc3NpbmdLZXksXG4gICAgICAgIGNvbmZpZ3VyYWJsZTogITBcbiAgICAgIH0pO1xuICAgIH1cbiAgICBmdW5jdGlvbiBlbGVtZW50UmVmR2V0dGVyV2l0aERlcHJlY2F0aW9uV2FybmluZygpIHtcbiAgICAgIHZhciBjb21wb25lbnROYW1lID0gZ2V0Q29tcG9uZW50TmFtZUZyb21UeXBlKHRoaXMudHlwZSk7XG4gICAgICBkaWRXYXJuQWJvdXRFbGVtZW50UmVmW2NvbXBvbmVudE5hbWVdIHx8XG4gICAgICAgICgoZGlkV2FybkFib3V0RWxlbWVudFJlZltjb21wb25lbnROYW1lXSA9ICEwKSxcbiAgICAgICAgY29uc29sZS5lcnJvcihcbiAgICAgICAgICBcIkFjY2Vzc2luZyBlbGVtZW50LnJlZiB3YXMgcmVtb3ZlZCBpbiBSZWFjdCAxOS4gcmVmIGlzIG5vdyBhIHJlZ3VsYXIgcHJvcC4gSXQgd2lsbCBiZSByZW1vdmVkIGZyb20gdGhlIEpTWCBFbGVtZW50IHR5cGUgaW4gYSBmdXR1cmUgcmVsZWFzZS5cIlxuICAgICAgICApKTtcbiAgICAgIGNvbXBvbmVudE5hbWUgPSB0aGlzLnByb3BzLnJlZjtcbiAgICAgIHJldHVybiB2b2lkIDAgIT09IGNvbXBvbmVudE5hbWUgPyBjb21wb25lbnROYW1lIDogbnVsbDtcbiAgICB9XG4gICAgZnVuY3Rpb24gUmVhY3RFbGVtZW50KFxuICAgICAgdHlwZSxcbiAgICAgIGtleSxcbiAgICAgIHNlbGYsXG4gICAgICBzb3VyY2UsXG4gICAgICBvd25lcixcbiAgICAgIHByb3BzLFxuICAgICAgZGVidWdTdGFjayxcbiAgICAgIGRlYnVnVGFza1xuICAgICkge1xuICAgICAgc2VsZiA9IHByb3BzLnJlZjtcbiAgICAgIHR5cGUgPSB7XG4gICAgICAgICQkdHlwZW9mOiBSRUFDVF9FTEVNRU5UX1RZUEUsXG4gICAgICAgIHR5cGU6IHR5cGUsXG4gICAgICAgIGtleToga2V5LFxuICAgICAgICBwcm9wczogcHJvcHMsXG4gICAgICAgIF9vd25lcjogb3duZXJcbiAgICAgIH07XG4gICAgICBudWxsICE9PSAodm9pZCAwICE9PSBzZWxmID8gc2VsZiA6IG51bGwpXG4gICAgICAgID8gT2JqZWN0LmRlZmluZVByb3BlcnR5KHR5cGUsIFwicmVmXCIsIHtcbiAgICAgICAgICAgIGVudW1lcmFibGU6ICExLFxuICAgICAgICAgICAgZ2V0OiBlbGVtZW50UmVmR2V0dGVyV2l0aERlcHJlY2F0aW9uV2FybmluZ1xuICAgICAgICAgIH0pXG4gICAgICAgIDogT2JqZWN0LmRlZmluZVByb3BlcnR5KHR5cGUsIFwicmVmXCIsIHsgZW51bWVyYWJsZTogITEsIHZhbHVlOiBudWxsIH0pO1xuICAgICAgdHlwZS5fc3RvcmUgPSB7fTtcbiAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0eXBlLl9zdG9yZSwgXCJ2YWxpZGF0ZWRcIiwge1xuICAgICAgICBjb25maWd1cmFibGU6ICExLFxuICAgICAgICBlbnVtZXJhYmxlOiAhMSxcbiAgICAgICAgd3JpdGFibGU6ICEwLFxuICAgICAgICB2YWx1ZTogMFxuICAgICAgfSk7XG4gICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkodHlwZSwgXCJfZGVidWdJbmZvXCIsIHtcbiAgICAgICAgY29uZmlndXJhYmxlOiAhMSxcbiAgICAgICAgZW51bWVyYWJsZTogITEsXG4gICAgICAgIHdyaXRhYmxlOiAhMCxcbiAgICAgICAgdmFsdWU6IG51bGxcbiAgICAgIH0pO1xuICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHR5cGUsIFwiX2RlYnVnU3RhY2tcIiwge1xuICAgICAgICBjb25maWd1cmFibGU6ICExLFxuICAgICAgICBlbnVtZXJhYmxlOiAhMSxcbiAgICAgICAgd3JpdGFibGU6ICEwLFxuICAgICAgICB2YWx1ZTogZGVidWdTdGFja1xuICAgICAgfSk7XG4gICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkodHlwZSwgXCJfZGVidWdUYXNrXCIsIHtcbiAgICAgICAgY29uZmlndXJhYmxlOiAhMSxcbiAgICAgICAgZW51bWVyYWJsZTogITEsXG4gICAgICAgIHdyaXRhYmxlOiAhMCxcbiAgICAgICAgdmFsdWU6IGRlYnVnVGFza1xuICAgICAgfSk7XG4gICAgICBPYmplY3QuZnJlZXplICYmIChPYmplY3QuZnJlZXplKHR5cGUucHJvcHMpLCBPYmplY3QuZnJlZXplKHR5cGUpKTtcbiAgICAgIHJldHVybiB0eXBlO1xuICAgIH1cbiAgICBmdW5jdGlvbiBjbG9uZUFuZFJlcGxhY2VLZXkob2xkRWxlbWVudCwgbmV3S2V5KSB7XG4gICAgICBuZXdLZXkgPSBSZWFjdEVsZW1lbnQoXG4gICAgICAgIG9sZEVsZW1lbnQudHlwZSxcbiAgICAgICAgbmV3S2V5LFxuICAgICAgICB2b2lkIDAsXG4gICAgICAgIHZvaWQgMCxcbiAgICAgICAgb2xkRWxlbWVudC5fb3duZXIsXG4gICAgICAgIG9sZEVsZW1lbnQucHJvcHMsXG4gICAgICAgIG9sZEVsZW1lbnQuX2RlYnVnU3RhY2ssXG4gICAgICAgIG9sZEVsZW1lbnQuX2RlYnVnVGFza1xuICAgICAgKTtcbiAgICAgIG9sZEVsZW1lbnQuX3N0b3JlICYmXG4gICAgICAgIChuZXdLZXkuX3N0b3JlLnZhbGlkYXRlZCA9IG9sZEVsZW1lbnQuX3N0b3JlLnZhbGlkYXRlZCk7XG4gICAgICByZXR1cm4gbmV3S2V5O1xuICAgIH1cbiAgICBmdW5jdGlvbiBpc1ZhbGlkRWxlbWVudChvYmplY3QpIHtcbiAgICAgIHJldHVybiAoXG4gICAgICAgIFwib2JqZWN0XCIgPT09IHR5cGVvZiBvYmplY3QgJiZcbiAgICAgICAgbnVsbCAhPT0gb2JqZWN0ICYmXG4gICAgICAgIG9iamVjdC4kJHR5cGVvZiA9PT0gUkVBQ1RfRUxFTUVOVF9UWVBFXG4gICAgICApO1xuICAgIH1cbiAgICBmdW5jdGlvbiBlc2NhcGUoa2V5KSB7XG4gICAgICB2YXIgZXNjYXBlckxvb2t1cCA9IHsgXCI9XCI6IFwiPTBcIiwgXCI6XCI6IFwiPTJcIiB9O1xuICAgICAgcmV0dXJuIChcbiAgICAgICAgXCIkXCIgK1xuICAgICAgICBrZXkucmVwbGFjZSgvWz06XS9nLCBmdW5jdGlvbiAobWF0Y2gpIHtcbiAgICAgICAgICByZXR1cm4gZXNjYXBlckxvb2t1cFttYXRjaF07XG4gICAgICAgIH0pXG4gICAgICApO1xuICAgIH1cbiAgICBmdW5jdGlvbiBnZXRFbGVtZW50S2V5KGVsZW1lbnQsIGluZGV4KSB7XG4gICAgICByZXR1cm4gXCJvYmplY3RcIiA9PT0gdHlwZW9mIGVsZW1lbnQgJiZcbiAgICAgICAgbnVsbCAhPT0gZWxlbWVudCAmJlxuICAgICAgICBudWxsICE9IGVsZW1lbnQua2V5XG4gICAgICAgID8gKGNoZWNrS2V5U3RyaW5nQ29lcmNpb24oZWxlbWVudC5rZXkpLCBlc2NhcGUoXCJcIiArIGVsZW1lbnQua2V5KSlcbiAgICAgICAgOiBpbmRleC50b1N0cmluZygzNik7XG4gICAgfVxuICAgIGZ1bmN0aW9uIG5vb3AkMSgpIHt9XG4gICAgZnVuY3Rpb24gcmVzb2x2ZVRoZW5hYmxlKHRoZW5hYmxlKSB7XG4gICAgICBzd2l0Y2ggKHRoZW5hYmxlLnN0YXR1cykge1xuICAgICAgICBjYXNlIFwiZnVsZmlsbGVkXCI6XG4gICAgICAgICAgcmV0dXJuIHRoZW5hYmxlLnZhbHVlO1xuICAgICAgICBjYXNlIFwicmVqZWN0ZWRcIjpcbiAgICAgICAgICB0aHJvdyB0aGVuYWJsZS5yZWFzb247XG4gICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgc3dpdGNoIChcbiAgICAgICAgICAgIChcInN0cmluZ1wiID09PSB0eXBlb2YgdGhlbmFibGUuc3RhdHVzXG4gICAgICAgICAgICAgID8gdGhlbmFibGUudGhlbihub29wJDEsIG5vb3AkMSlcbiAgICAgICAgICAgICAgOiAoKHRoZW5hYmxlLnN0YXR1cyA9IFwicGVuZGluZ1wiKSxcbiAgICAgICAgICAgICAgICB0aGVuYWJsZS50aGVuKFxuICAgICAgICAgICAgICAgICAgZnVuY3Rpb24gKGZ1bGZpbGxlZFZhbHVlKSB7XG4gICAgICAgICAgICAgICAgICAgIFwicGVuZGluZ1wiID09PSB0aGVuYWJsZS5zdGF0dXMgJiZcbiAgICAgICAgICAgICAgICAgICAgICAoKHRoZW5hYmxlLnN0YXR1cyA9IFwiZnVsZmlsbGVkXCIpLFxuICAgICAgICAgICAgICAgICAgICAgICh0aGVuYWJsZS52YWx1ZSA9IGZ1bGZpbGxlZFZhbHVlKSk7XG4gICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgZnVuY3Rpb24gKGVycm9yKSB7XG4gICAgICAgICAgICAgICAgICAgIFwicGVuZGluZ1wiID09PSB0aGVuYWJsZS5zdGF0dXMgJiZcbiAgICAgICAgICAgICAgICAgICAgICAoKHRoZW5hYmxlLnN0YXR1cyA9IFwicmVqZWN0ZWRcIiksXG4gICAgICAgICAgICAgICAgICAgICAgKHRoZW5hYmxlLnJlYXNvbiA9IGVycm9yKSk7XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgKSksXG4gICAgICAgICAgICB0aGVuYWJsZS5zdGF0dXMpXG4gICAgICAgICAgKSB7XG4gICAgICAgICAgICBjYXNlIFwiZnVsZmlsbGVkXCI6XG4gICAgICAgICAgICAgIHJldHVybiB0aGVuYWJsZS52YWx1ZTtcbiAgICAgICAgICAgIGNhc2UgXCJyZWplY3RlZFwiOlxuICAgICAgICAgICAgICB0aHJvdyB0aGVuYWJsZS5yZWFzb247XG4gICAgICAgICAgfVxuICAgICAgfVxuICAgICAgdGhyb3cgdGhlbmFibGU7XG4gICAgfVxuICAgIGZ1bmN0aW9uIG1hcEludG9BcnJheShjaGlsZHJlbiwgYXJyYXksIGVzY2FwZWRQcmVmaXgsIG5hbWVTb0ZhciwgY2FsbGJhY2spIHtcbiAgICAgIHZhciB0eXBlID0gdHlwZW9mIGNoaWxkcmVuO1xuICAgICAgaWYgKFwidW5kZWZpbmVkXCIgPT09IHR5cGUgfHwgXCJib29sZWFuXCIgPT09IHR5cGUpIGNoaWxkcmVuID0gbnVsbDtcbiAgICAgIHZhciBpbnZva2VDYWxsYmFjayA9ICExO1xuICAgICAgaWYgKG51bGwgPT09IGNoaWxkcmVuKSBpbnZva2VDYWxsYmFjayA9ICEwO1xuICAgICAgZWxzZVxuICAgICAgICBzd2l0Y2ggKHR5cGUpIHtcbiAgICAgICAgICBjYXNlIFwiYmlnaW50XCI6XG4gICAgICAgICAgY2FzZSBcInN0cmluZ1wiOlxuICAgICAgICAgIGNhc2UgXCJudW1iZXJcIjpcbiAgICAgICAgICAgIGludm9rZUNhbGxiYWNrID0gITA7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICBjYXNlIFwib2JqZWN0XCI6XG4gICAgICAgICAgICBzd2l0Y2ggKGNoaWxkcmVuLiQkdHlwZW9mKSB7XG4gICAgICAgICAgICAgIGNhc2UgUkVBQ1RfRUxFTUVOVF9UWVBFOlxuICAgICAgICAgICAgICBjYXNlIFJFQUNUX1BPUlRBTF9UWVBFOlxuICAgICAgICAgICAgICAgIGludm9rZUNhbGxiYWNrID0gITA7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgIGNhc2UgUkVBQ1RfTEFaWV9UWVBFOlxuICAgICAgICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAgICAgICAoaW52b2tlQ2FsbGJhY2sgPSBjaGlsZHJlbi5faW5pdCksXG4gICAgICAgICAgICAgICAgICBtYXBJbnRvQXJyYXkoXG4gICAgICAgICAgICAgICAgICAgIGludm9rZUNhbGxiYWNrKGNoaWxkcmVuLl9wYXlsb2FkKSxcbiAgICAgICAgICAgICAgICAgICAgYXJyYXksXG4gICAgICAgICAgICAgICAgICAgIGVzY2FwZWRQcmVmaXgsXG4gICAgICAgICAgICAgICAgICAgIG5hbWVTb0ZhcixcbiAgICAgICAgICAgICAgICAgICAgY2FsbGJhY2tcbiAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICBpZiAoaW52b2tlQ2FsbGJhY2spIHtcbiAgICAgICAgaW52b2tlQ2FsbGJhY2sgPSBjaGlsZHJlbjtcbiAgICAgICAgY2FsbGJhY2sgPSBjYWxsYmFjayhpbnZva2VDYWxsYmFjayk7XG4gICAgICAgIHZhciBjaGlsZEtleSA9XG4gICAgICAgICAgXCJcIiA9PT0gbmFtZVNvRmFyID8gXCIuXCIgKyBnZXRFbGVtZW50S2V5KGludm9rZUNhbGxiYWNrLCAwKSA6IG5hbWVTb0ZhcjtcbiAgICAgICAgaXNBcnJheUltcGwoY2FsbGJhY2spXG4gICAgICAgICAgPyAoKGVzY2FwZWRQcmVmaXggPSBcIlwiKSxcbiAgICAgICAgICAgIG51bGwgIT0gY2hpbGRLZXkgJiZcbiAgICAgICAgICAgICAgKGVzY2FwZWRQcmVmaXggPVxuICAgICAgICAgICAgICAgIGNoaWxkS2V5LnJlcGxhY2UodXNlclByb3ZpZGVkS2V5RXNjYXBlUmVnZXgsIFwiJCYvXCIpICsgXCIvXCIpLFxuICAgICAgICAgICAgbWFwSW50b0FycmF5KGNhbGxiYWNrLCBhcnJheSwgZXNjYXBlZFByZWZpeCwgXCJcIiwgZnVuY3Rpb24gKGMpIHtcbiAgICAgICAgICAgICAgcmV0dXJuIGM7XG4gICAgICAgICAgICB9KSlcbiAgICAgICAgICA6IG51bGwgIT0gY2FsbGJhY2sgJiZcbiAgICAgICAgICAgIChpc1ZhbGlkRWxlbWVudChjYWxsYmFjaykgJiZcbiAgICAgICAgICAgICAgKG51bGwgIT0gY2FsbGJhY2sua2V5ICYmXG4gICAgICAgICAgICAgICAgKChpbnZva2VDYWxsYmFjayAmJiBpbnZva2VDYWxsYmFjay5rZXkgPT09IGNhbGxiYWNrLmtleSkgfHxcbiAgICAgICAgICAgICAgICAgIGNoZWNrS2V5U3RyaW5nQ29lcmNpb24oY2FsbGJhY2sua2V5KSksXG4gICAgICAgICAgICAgIChlc2NhcGVkUHJlZml4ID0gY2xvbmVBbmRSZXBsYWNlS2V5KFxuICAgICAgICAgICAgICAgIGNhbGxiYWNrLFxuICAgICAgICAgICAgICAgIGVzY2FwZWRQcmVmaXggK1xuICAgICAgICAgICAgICAgICAgKG51bGwgPT0gY2FsbGJhY2sua2V5IHx8XG4gICAgICAgICAgICAgICAgICAoaW52b2tlQ2FsbGJhY2sgJiYgaW52b2tlQ2FsbGJhY2sua2V5ID09PSBjYWxsYmFjay5rZXkpXG4gICAgICAgICAgICAgICAgICAgID8gXCJcIlxuICAgICAgICAgICAgICAgICAgICA6IChcIlwiICsgY2FsbGJhY2sua2V5KS5yZXBsYWNlKFxuICAgICAgICAgICAgICAgICAgICAgICAgdXNlclByb3ZpZGVkS2V5RXNjYXBlUmVnZXgsXG4gICAgICAgICAgICAgICAgICAgICAgICBcIiQmL1wiXG4gICAgICAgICAgICAgICAgICAgICAgKSArIFwiL1wiKSArXG4gICAgICAgICAgICAgICAgICBjaGlsZEtleVxuICAgICAgICAgICAgICApKSxcbiAgICAgICAgICAgICAgXCJcIiAhPT0gbmFtZVNvRmFyICYmXG4gICAgICAgICAgICAgICAgbnVsbCAhPSBpbnZva2VDYWxsYmFjayAmJlxuICAgICAgICAgICAgICAgIGlzVmFsaWRFbGVtZW50KGludm9rZUNhbGxiYWNrKSAmJlxuICAgICAgICAgICAgICAgIG51bGwgPT0gaW52b2tlQ2FsbGJhY2sua2V5ICYmXG4gICAgICAgICAgICAgICAgaW52b2tlQ2FsbGJhY2suX3N0b3JlICYmXG4gICAgICAgICAgICAgICAgIWludm9rZUNhbGxiYWNrLl9zdG9yZS52YWxpZGF0ZWQgJiZcbiAgICAgICAgICAgICAgICAoZXNjYXBlZFByZWZpeC5fc3RvcmUudmFsaWRhdGVkID0gMiksXG4gICAgICAgICAgICAgIChjYWxsYmFjayA9IGVzY2FwZWRQcmVmaXgpKSxcbiAgICAgICAgICAgIGFycmF5LnB1c2goY2FsbGJhY2spKTtcbiAgICAgICAgcmV0dXJuIDE7XG4gICAgICB9XG4gICAgICBpbnZva2VDYWxsYmFjayA9IDA7XG4gICAgICBjaGlsZEtleSA9IFwiXCIgPT09IG5hbWVTb0ZhciA/IFwiLlwiIDogbmFtZVNvRmFyICsgXCI6XCI7XG4gICAgICBpZiAoaXNBcnJheUltcGwoY2hpbGRyZW4pKVxuICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGNoaWxkcmVuLmxlbmd0aDsgaSsrKVxuICAgICAgICAgIChuYW1lU29GYXIgPSBjaGlsZHJlbltpXSksXG4gICAgICAgICAgICAodHlwZSA9IGNoaWxkS2V5ICsgZ2V0RWxlbWVudEtleShuYW1lU29GYXIsIGkpKSxcbiAgICAgICAgICAgIChpbnZva2VDYWxsYmFjayArPSBtYXBJbnRvQXJyYXkoXG4gICAgICAgICAgICAgIG5hbWVTb0ZhcixcbiAgICAgICAgICAgICAgYXJyYXksXG4gICAgICAgICAgICAgIGVzY2FwZWRQcmVmaXgsXG4gICAgICAgICAgICAgIHR5cGUsXG4gICAgICAgICAgICAgIGNhbGxiYWNrXG4gICAgICAgICAgICApKTtcbiAgICAgIGVsc2UgaWYgKCgoaSA9IGdldEl0ZXJhdG9yRm4oY2hpbGRyZW4pKSwgXCJmdW5jdGlvblwiID09PSB0eXBlb2YgaSkpXG4gICAgICAgIGZvciAoXG4gICAgICAgICAgaSA9PT0gY2hpbGRyZW4uZW50cmllcyAmJlxuICAgICAgICAgICAgKGRpZFdhcm5BYm91dE1hcHMgfHxcbiAgICAgICAgICAgICAgY29uc29sZS53YXJuKFxuICAgICAgICAgICAgICAgIFwiVXNpbmcgTWFwcyBhcyBjaGlsZHJlbiBpcyBub3Qgc3VwcG9ydGVkLiBVc2UgYW4gYXJyYXkgb2Yga2V5ZWQgUmVhY3RFbGVtZW50cyBpbnN0ZWFkLlwiXG4gICAgICAgICAgICAgICksXG4gICAgICAgICAgICAoZGlkV2FybkFib3V0TWFwcyA9ICEwKSksXG4gICAgICAgICAgICBjaGlsZHJlbiA9IGkuY2FsbChjaGlsZHJlbiksXG4gICAgICAgICAgICBpID0gMDtcbiAgICAgICAgICAhKG5hbWVTb0ZhciA9IGNoaWxkcmVuLm5leHQoKSkuZG9uZTtcblxuICAgICAgICApXG4gICAgICAgICAgKG5hbWVTb0ZhciA9IG5hbWVTb0Zhci52YWx1ZSksXG4gICAgICAgICAgICAodHlwZSA9IGNoaWxkS2V5ICsgZ2V0RWxlbWVudEtleShuYW1lU29GYXIsIGkrKykpLFxuICAgICAgICAgICAgKGludm9rZUNhbGxiYWNrICs9IG1hcEludG9BcnJheShcbiAgICAgICAgICAgICAgbmFtZVNvRmFyLFxuICAgICAgICAgICAgICBhcnJheSxcbiAgICAgICAgICAgICAgZXNjYXBlZFByZWZpeCxcbiAgICAgICAgICAgICAgdHlwZSxcbiAgICAgICAgICAgICAgY2FsbGJhY2tcbiAgICAgICAgICAgICkpO1xuICAgICAgZWxzZSBpZiAoXCJvYmplY3RcIiA9PT0gdHlwZSkge1xuICAgICAgICBpZiAoXCJmdW5jdGlvblwiID09PSB0eXBlb2YgY2hpbGRyZW4udGhlbilcbiAgICAgICAgICByZXR1cm4gbWFwSW50b0FycmF5KFxuICAgICAgICAgICAgcmVzb2x2ZVRoZW5hYmxlKGNoaWxkcmVuKSxcbiAgICAgICAgICAgIGFycmF5LFxuICAgICAgICAgICAgZXNjYXBlZFByZWZpeCxcbiAgICAgICAgICAgIG5hbWVTb0ZhcixcbiAgICAgICAgICAgIGNhbGxiYWNrXG4gICAgICAgICAgKTtcbiAgICAgICAgYXJyYXkgPSBTdHJpbmcoY2hpbGRyZW4pO1xuICAgICAgICB0aHJvdyBFcnJvcihcbiAgICAgICAgICBcIk9iamVjdHMgYXJlIG5vdCB2YWxpZCBhcyBhIFJlYWN0IGNoaWxkIChmb3VuZDogXCIgK1xuICAgICAgICAgICAgKFwiW29iamVjdCBPYmplY3RdXCIgPT09IGFycmF5XG4gICAgICAgICAgICAgID8gXCJvYmplY3Qgd2l0aCBrZXlzIHtcIiArIE9iamVjdC5rZXlzKGNoaWxkcmVuKS5qb2luKFwiLCBcIikgKyBcIn1cIlxuICAgICAgICAgICAgICA6IGFycmF5KSArXG4gICAgICAgICAgICBcIikuIElmIHlvdSBtZWFudCB0byByZW5kZXIgYSBjb2xsZWN0aW9uIG9mIGNoaWxkcmVuLCB1c2UgYW4gYXJyYXkgaW5zdGVhZC5cIlxuICAgICAgICApO1xuICAgICAgfVxuICAgICAgcmV0dXJuIGludm9rZUNhbGxiYWNrO1xuICAgIH1cbiAgICBmdW5jdGlvbiBtYXBDaGlsZHJlbihjaGlsZHJlbiwgZnVuYywgY29udGV4dCkge1xuICAgICAgaWYgKG51bGwgPT0gY2hpbGRyZW4pIHJldHVybiBjaGlsZHJlbjtcbiAgICAgIHZhciByZXN1bHQgPSBbXSxcbiAgICAgICAgY291bnQgPSAwO1xuICAgICAgbWFwSW50b0FycmF5KGNoaWxkcmVuLCByZXN1bHQsIFwiXCIsIFwiXCIsIGZ1bmN0aW9uIChjaGlsZCkge1xuICAgICAgICByZXR1cm4gZnVuYy5jYWxsKGNvbnRleHQsIGNoaWxkLCBjb3VudCsrKTtcbiAgICAgIH0pO1xuICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9XG4gICAgZnVuY3Rpb24gbGF6eUluaXRpYWxpemVyKHBheWxvYWQpIHtcbiAgICAgIGlmICgtMSA9PT0gcGF5bG9hZC5fc3RhdHVzKSB7XG4gICAgICAgIHZhciBjdG9yID0gcGF5bG9hZC5fcmVzdWx0O1xuICAgICAgICBjdG9yID0gY3RvcigpO1xuICAgICAgICBjdG9yLnRoZW4oXG4gICAgICAgICAgZnVuY3Rpb24gKG1vZHVsZU9iamVjdCkge1xuICAgICAgICAgICAgaWYgKDAgPT09IHBheWxvYWQuX3N0YXR1cyB8fCAtMSA9PT0gcGF5bG9hZC5fc3RhdHVzKVxuICAgICAgICAgICAgICAocGF5bG9hZC5fc3RhdHVzID0gMSksIChwYXlsb2FkLl9yZXN1bHQgPSBtb2R1bGVPYmplY3QpO1xuICAgICAgICAgIH0sXG4gICAgICAgICAgZnVuY3Rpb24gKGVycm9yKSB7XG4gICAgICAgICAgICBpZiAoMCA9PT0gcGF5bG9hZC5fc3RhdHVzIHx8IC0xID09PSBwYXlsb2FkLl9zdGF0dXMpXG4gICAgICAgICAgICAgIChwYXlsb2FkLl9zdGF0dXMgPSAyKSwgKHBheWxvYWQuX3Jlc3VsdCA9IGVycm9yKTtcbiAgICAgICAgICB9XG4gICAgICAgICk7XG4gICAgICAgIC0xID09PSBwYXlsb2FkLl9zdGF0dXMgJiZcbiAgICAgICAgICAoKHBheWxvYWQuX3N0YXR1cyA9IDApLCAocGF5bG9hZC5fcmVzdWx0ID0gY3RvcikpO1xuICAgICAgfVxuICAgICAgaWYgKDEgPT09IHBheWxvYWQuX3N0YXR1cylcbiAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAoY3RvciA9IHBheWxvYWQuX3Jlc3VsdCksXG4gICAgICAgICAgdm9pZCAwID09PSBjdG9yICYmXG4gICAgICAgICAgICBjb25zb2xlLmVycm9yKFxuICAgICAgICAgICAgICBcImxhenk6IEV4cGVjdGVkIHRoZSByZXN1bHQgb2YgYSBkeW5hbWljIGltcG9ydCgpIGNhbGwuIEluc3RlYWQgcmVjZWl2ZWQ6ICVzXFxuXFxuWW91ciBjb2RlIHNob3VsZCBsb29rIGxpa2U6IFxcbiAgY29uc3QgTXlDb21wb25lbnQgPSBsYXp5KCgpID0+IGltcG9ydCgnLi9NeUNvbXBvbmVudCcpKVxcblxcbkRpZCB5b3UgYWNjaWRlbnRhbGx5IHB1dCBjdXJseSBicmFjZXMgYXJvdW5kIHRoZSBpbXBvcnQ/XCIsXG4gICAgICAgICAgICAgIGN0b3JcbiAgICAgICAgICAgICksXG4gICAgICAgICAgXCJkZWZhdWx0XCIgaW4gY3RvciB8fFxuICAgICAgICAgICAgY29uc29sZS5lcnJvcihcbiAgICAgICAgICAgICAgXCJsYXp5OiBFeHBlY3RlZCB0aGUgcmVzdWx0IG9mIGEgZHluYW1pYyBpbXBvcnQoKSBjYWxsLiBJbnN0ZWFkIHJlY2VpdmVkOiAlc1xcblxcbllvdXIgY29kZSBzaG91bGQgbG9vayBsaWtlOiBcXG4gIGNvbnN0IE15Q29tcG9uZW50ID0gbGF6eSgoKSA9PiBpbXBvcnQoJy4vTXlDb21wb25lbnQnKSlcIixcbiAgICAgICAgICAgICAgY3RvclxuICAgICAgICAgICAgKSxcbiAgICAgICAgICBjdG9yLmRlZmF1bHRcbiAgICAgICAgKTtcbiAgICAgIHRocm93IHBheWxvYWQuX3Jlc3VsdDtcbiAgICB9XG4gICAgZnVuY3Rpb24gcmVzb2x2ZURpc3BhdGNoZXIoKSB7XG4gICAgICB2YXIgZGlzcGF0Y2hlciA9IFJlYWN0U2hhcmVkSW50ZXJuYWxzLkg7XG4gICAgICBudWxsID09PSBkaXNwYXRjaGVyICYmXG4gICAgICAgIGNvbnNvbGUuZXJyb3IoXG4gICAgICAgICAgXCJJbnZhbGlkIGhvb2sgY2FsbC4gSG9va3MgY2FuIG9ubHkgYmUgY2FsbGVkIGluc2lkZSBvZiB0aGUgYm9keSBvZiBhIGZ1bmN0aW9uIGNvbXBvbmVudC4gVGhpcyBjb3VsZCBoYXBwZW4gZm9yIG9uZSBvZiB0aGUgZm9sbG93aW5nIHJlYXNvbnM6XFxuMS4gWW91IG1pZ2h0IGhhdmUgbWlzbWF0Y2hpbmcgdmVyc2lvbnMgb2YgUmVhY3QgYW5kIHRoZSByZW5kZXJlciAoc3VjaCBhcyBSZWFjdCBET00pXFxuMi4gWW91IG1pZ2h0IGJlIGJyZWFraW5nIHRoZSBSdWxlcyBvZiBIb29rc1xcbjMuIFlvdSBtaWdodCBoYXZlIG1vcmUgdGhhbiBvbmUgY29weSBvZiBSZWFjdCBpbiB0aGUgc2FtZSBhcHBcXG5TZWUgaHR0cHM6Ly9yZWFjdC5kZXYvbGluay9pbnZhbGlkLWhvb2stY2FsbCBmb3IgdGlwcyBhYm91dCBob3cgdG8gZGVidWcgYW5kIGZpeCB0aGlzIHByb2JsZW0uXCJcbiAgICAgICAgKTtcbiAgICAgIHJldHVybiBkaXNwYXRjaGVyO1xuICAgIH1cbiAgICBmdW5jdGlvbiBub29wKCkge31cbiAgICBmdW5jdGlvbiBlbnF1ZXVlVGFzayh0YXNrKSB7XG4gICAgICBpZiAobnVsbCA9PT0gZW5xdWV1ZVRhc2tJbXBsKVxuICAgICAgICB0cnkge1xuICAgICAgICAgIHZhciByZXF1aXJlU3RyaW5nID0gKFwicmVxdWlyZVwiICsgTWF0aC5yYW5kb20oKSkuc2xpY2UoMCwgNyk7XG4gICAgICAgICAgZW5xdWV1ZVRhc2tJbXBsID0gKG1vZHVsZSAmJiBtb2R1bGVbcmVxdWlyZVN0cmluZ10pLmNhbGwoXG4gICAgICAgICAgICBtb2R1bGUsXG4gICAgICAgICAgICBcInRpbWVyc1wiXG4gICAgICAgICAgKS5zZXRJbW1lZGlhdGU7XG4gICAgICAgIH0gY2F0Y2ggKF9lcnIpIHtcbiAgICAgICAgICBlbnF1ZXVlVGFza0ltcGwgPSBmdW5jdGlvbiAoY2FsbGJhY2spIHtcbiAgICAgICAgICAgICExID09PSBkaWRXYXJuQWJvdXRNZXNzYWdlQ2hhbm5lbCAmJlxuICAgICAgICAgICAgICAoKGRpZFdhcm5BYm91dE1lc3NhZ2VDaGFubmVsID0gITApLFxuICAgICAgICAgICAgICBcInVuZGVmaW5lZFwiID09PSB0eXBlb2YgTWVzc2FnZUNoYW5uZWwgJiZcbiAgICAgICAgICAgICAgICBjb25zb2xlLmVycm9yKFxuICAgICAgICAgICAgICAgICAgXCJUaGlzIGJyb3dzZXIgZG9lcyBub3QgaGF2ZSBhIE1lc3NhZ2VDaGFubmVsIGltcGxlbWVudGF0aW9uLCBzbyBlbnF1ZXVpbmcgdGFza3MgdmlhIGF3YWl0IGFjdChhc3luYyAoKSA9PiAuLi4pIHdpbGwgZmFpbC4gUGxlYXNlIGZpbGUgYW4gaXNzdWUgYXQgaHR0cHM6Ly9naXRodWIuY29tL2ZhY2Vib29rL3JlYWN0L2lzc3VlcyBpZiB5b3UgZW5jb3VudGVyIHRoaXMgd2FybmluZy5cIlxuICAgICAgICAgICAgICAgICkpO1xuICAgICAgICAgICAgdmFyIGNoYW5uZWwgPSBuZXcgTWVzc2FnZUNoYW5uZWwoKTtcbiAgICAgICAgICAgIGNoYW5uZWwucG9ydDEub25tZXNzYWdlID0gY2FsbGJhY2s7XG4gICAgICAgICAgICBjaGFubmVsLnBvcnQyLnBvc3RNZXNzYWdlKHZvaWQgMCk7XG4gICAgICAgICAgfTtcbiAgICAgICAgfVxuICAgICAgcmV0dXJuIGVucXVldWVUYXNrSW1wbCh0YXNrKTtcbiAgICB9XG4gICAgZnVuY3Rpb24gYWdncmVnYXRlRXJyb3JzKGVycm9ycykge1xuICAgICAgcmV0dXJuIDEgPCBlcnJvcnMubGVuZ3RoICYmIFwiZnVuY3Rpb25cIiA9PT0gdHlwZW9mIEFnZ3JlZ2F0ZUVycm9yXG4gICAgICAgID8gbmV3IEFnZ3JlZ2F0ZUVycm9yKGVycm9ycylcbiAgICAgICAgOiBlcnJvcnNbMF07XG4gICAgfVxuICAgIGZ1bmN0aW9uIHBvcEFjdFNjb3BlKHByZXZBY3RRdWV1ZSwgcHJldkFjdFNjb3BlRGVwdGgpIHtcbiAgICAgIHByZXZBY3RTY29wZURlcHRoICE9PSBhY3RTY29wZURlcHRoIC0gMSAmJlxuICAgICAgICBjb25zb2xlLmVycm9yKFxuICAgICAgICAgIFwiWW91IHNlZW0gdG8gaGF2ZSBvdmVybGFwcGluZyBhY3QoKSBjYWxscywgdGhpcyBpcyBub3Qgc3VwcG9ydGVkLiBCZSBzdXJlIHRvIGF3YWl0IHByZXZpb3VzIGFjdCgpIGNhbGxzIGJlZm9yZSBtYWtpbmcgYSBuZXcgb25lLiBcIlxuICAgICAgICApO1xuICAgICAgYWN0U2NvcGVEZXB0aCA9IHByZXZBY3RTY29wZURlcHRoO1xuICAgIH1cbiAgICBmdW5jdGlvbiByZWN1cnNpdmVseUZsdXNoQXN5bmNBY3RXb3JrKHJldHVyblZhbHVlLCByZXNvbHZlLCByZWplY3QpIHtcbiAgICAgIHZhciBxdWV1ZSA9IFJlYWN0U2hhcmVkSW50ZXJuYWxzLmFjdFF1ZXVlO1xuICAgICAgaWYgKG51bGwgIT09IHF1ZXVlKVxuICAgICAgICBpZiAoMCAhPT0gcXVldWUubGVuZ3RoKVxuICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICBmbHVzaEFjdFF1ZXVlKHF1ZXVlKTtcbiAgICAgICAgICAgIGVucXVldWVUYXNrKGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgcmV0dXJuIHJlY3Vyc2l2ZWx5Rmx1c2hBc3luY0FjdFdvcmsocmV0dXJuVmFsdWUsIHJlc29sdmUsIHJlamVjdCk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICAgICAgUmVhY3RTaGFyZWRJbnRlcm5hbHMudGhyb3duRXJyb3JzLnB1c2goZXJyb3IpO1xuICAgICAgICAgIH1cbiAgICAgICAgZWxzZSBSZWFjdFNoYXJlZEludGVybmFscy5hY3RRdWV1ZSA9IG51bGw7XG4gICAgICAwIDwgUmVhY3RTaGFyZWRJbnRlcm5hbHMudGhyb3duRXJyb3JzLmxlbmd0aFxuICAgICAgICA/ICgocXVldWUgPSBhZ2dyZWdhdGVFcnJvcnMoUmVhY3RTaGFyZWRJbnRlcm5hbHMudGhyb3duRXJyb3JzKSksXG4gICAgICAgICAgKFJlYWN0U2hhcmVkSW50ZXJuYWxzLnRocm93bkVycm9ycy5sZW5ndGggPSAwKSxcbiAgICAgICAgICByZWplY3QocXVldWUpKVxuICAgICAgICA6IHJlc29sdmUocmV0dXJuVmFsdWUpO1xuICAgIH1cbiAgICBmdW5jdGlvbiBmbHVzaEFjdFF1ZXVlKHF1ZXVlKSB7XG4gICAgICBpZiAoIWlzRmx1c2hpbmcpIHtcbiAgICAgICAgaXNGbHVzaGluZyA9ICEwO1xuICAgICAgICB2YXIgaSA9IDA7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgZm9yICg7IGkgPCBxdWV1ZS5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgdmFyIGNhbGxiYWNrID0gcXVldWVbaV07XG4gICAgICAgICAgICBkbyB7XG4gICAgICAgICAgICAgIFJlYWN0U2hhcmVkSW50ZXJuYWxzLmRpZFVzZVByb21pc2UgPSAhMTtcbiAgICAgICAgICAgICAgdmFyIGNvbnRpbnVhdGlvbiA9IGNhbGxiYWNrKCExKTtcbiAgICAgICAgICAgICAgaWYgKG51bGwgIT09IGNvbnRpbnVhdGlvbikge1xuICAgICAgICAgICAgICAgIGlmIChSZWFjdFNoYXJlZEludGVybmFscy5kaWRVc2VQcm9taXNlKSB7XG4gICAgICAgICAgICAgICAgICBxdWV1ZVtpXSA9IGNhbGxiYWNrO1xuICAgICAgICAgICAgICAgICAgcXVldWUuc3BsaWNlKDAsIGkpO1xuICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBjYWxsYmFjayA9IGNvbnRpbnVhdGlvbjtcbiAgICAgICAgICAgICAgfSBlbHNlIGJyZWFrO1xuICAgICAgICAgICAgfSB3aGlsZSAoMSk7XG4gICAgICAgICAgfVxuICAgICAgICAgIHF1ZXVlLmxlbmd0aCA9IDA7XG4gICAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgICAgcXVldWUuc3BsaWNlKDAsIGkgKyAxKSwgUmVhY3RTaGFyZWRJbnRlcm5hbHMudGhyb3duRXJyb3JzLnB1c2goZXJyb3IpO1xuICAgICAgICB9IGZpbmFsbHkge1xuICAgICAgICAgIGlzRmx1c2hpbmcgPSAhMTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgICBcInVuZGVmaW5lZFwiICE9PSB0eXBlb2YgX19SRUFDVF9ERVZUT09MU19HTE9CQUxfSE9PS19fICYmXG4gICAgICBcImZ1bmN0aW9uXCIgPT09XG4gICAgICAgIHR5cGVvZiBfX1JFQUNUX0RFVlRPT0xTX0dMT0JBTF9IT09LX18ucmVnaXN0ZXJJbnRlcm5hbE1vZHVsZVN0YXJ0ICYmXG4gICAgICBfX1JFQUNUX0RFVlRPT0xTX0dMT0JBTF9IT09LX18ucmVnaXN0ZXJJbnRlcm5hbE1vZHVsZVN0YXJ0KEVycm9yKCkpO1xuICAgIHZhciBSRUFDVF9FTEVNRU5UX1RZUEUgPSBTeW1ib2wuZm9yKFwicmVhY3QudHJhbnNpdGlvbmFsLmVsZW1lbnRcIiksXG4gICAgICBSRUFDVF9QT1JUQUxfVFlQRSA9IFN5bWJvbC5mb3IoXCJyZWFjdC5wb3J0YWxcIiksXG4gICAgICBSRUFDVF9GUkFHTUVOVF9UWVBFID0gU3ltYm9sLmZvcihcInJlYWN0LmZyYWdtZW50XCIpLFxuICAgICAgUkVBQ1RfU1RSSUNUX01PREVfVFlQRSA9IFN5bWJvbC5mb3IoXCJyZWFjdC5zdHJpY3RfbW9kZVwiKSxcbiAgICAgIFJFQUNUX1BST0ZJTEVSX1RZUEUgPSBTeW1ib2wuZm9yKFwicmVhY3QucHJvZmlsZXJcIik7XG4gICAgU3ltYm9sLmZvcihcInJlYWN0LnByb3ZpZGVyXCIpO1xuICAgIHZhciBSRUFDVF9DT05TVU1FUl9UWVBFID0gU3ltYm9sLmZvcihcInJlYWN0LmNvbnN1bWVyXCIpLFxuICAgICAgUkVBQ1RfQ09OVEVYVF9UWVBFID0gU3ltYm9sLmZvcihcInJlYWN0LmNvbnRleHRcIiksXG4gICAgICBSRUFDVF9GT1JXQVJEX1JFRl9UWVBFID0gU3ltYm9sLmZvcihcInJlYWN0LmZvcndhcmRfcmVmXCIpLFxuICAgICAgUkVBQ1RfU1VTUEVOU0VfVFlQRSA9IFN5bWJvbC5mb3IoXCJyZWFjdC5zdXNwZW5zZVwiKSxcbiAgICAgIFJFQUNUX1NVU1BFTlNFX0xJU1RfVFlQRSA9IFN5bWJvbC5mb3IoXCJyZWFjdC5zdXNwZW5zZV9saXN0XCIpLFxuICAgICAgUkVBQ1RfTUVNT19UWVBFID0gU3ltYm9sLmZvcihcInJlYWN0Lm1lbW9cIiksXG4gICAgICBSRUFDVF9MQVpZX1RZUEUgPSBTeW1ib2wuZm9yKFwicmVhY3QubGF6eVwiKSxcbiAgICAgIFJFQUNUX0FDVElWSVRZX1RZUEUgPSBTeW1ib2wuZm9yKFwicmVhY3QuYWN0aXZpdHlcIiksXG4gICAgICBNQVlCRV9JVEVSQVRPUl9TWU1CT0wgPSBTeW1ib2wuaXRlcmF0b3IsXG4gICAgICBkaWRXYXJuU3RhdGVVcGRhdGVGb3JVbm1vdW50ZWRDb21wb25lbnQgPSB7fSxcbiAgICAgIFJlYWN0Tm9vcFVwZGF0ZVF1ZXVlID0ge1xuICAgICAgICBpc01vdW50ZWQ6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICByZXR1cm4gITE7XG4gICAgICAgIH0sXG4gICAgICAgIGVucXVldWVGb3JjZVVwZGF0ZTogZnVuY3Rpb24gKHB1YmxpY0luc3RhbmNlKSB7XG4gICAgICAgICAgd2Fybk5vb3AocHVibGljSW5zdGFuY2UsIFwiZm9yY2VVcGRhdGVcIik7XG4gICAgICAgIH0sXG4gICAgICAgIGVucXVldWVSZXBsYWNlU3RhdGU6IGZ1bmN0aW9uIChwdWJsaWNJbnN0YW5jZSkge1xuICAgICAgICAgIHdhcm5Ob29wKHB1YmxpY0luc3RhbmNlLCBcInJlcGxhY2VTdGF0ZVwiKTtcbiAgICAgICAgfSxcbiAgICAgICAgZW5xdWV1ZVNldFN0YXRlOiBmdW5jdGlvbiAocHVibGljSW5zdGFuY2UpIHtcbiAgICAgICAgICB3YXJuTm9vcChwdWJsaWNJbnN0YW5jZSwgXCJzZXRTdGF0ZVwiKTtcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIGFzc2lnbiA9IE9iamVjdC5hc3NpZ24sXG4gICAgICBlbXB0eU9iamVjdCA9IHt9O1xuICAgIE9iamVjdC5mcmVlemUoZW1wdHlPYmplY3QpO1xuICAgIENvbXBvbmVudC5wcm90b3R5cGUuaXNSZWFjdENvbXBvbmVudCA9IHt9O1xuICAgIENvbXBvbmVudC5wcm90b3R5cGUuc2V0U3RhdGUgPSBmdW5jdGlvbiAocGFydGlhbFN0YXRlLCBjYWxsYmFjaykge1xuICAgICAgaWYgKFxuICAgICAgICBcIm9iamVjdFwiICE9PSB0eXBlb2YgcGFydGlhbFN0YXRlICYmXG4gICAgICAgIFwiZnVuY3Rpb25cIiAhPT0gdHlwZW9mIHBhcnRpYWxTdGF0ZSAmJlxuICAgICAgICBudWxsICE9IHBhcnRpYWxTdGF0ZVxuICAgICAgKVxuICAgICAgICB0aHJvdyBFcnJvcihcbiAgICAgICAgICBcInRha2VzIGFuIG9iamVjdCBvZiBzdGF0ZSB2YXJpYWJsZXMgdG8gdXBkYXRlIG9yIGEgZnVuY3Rpb24gd2hpY2ggcmV0dXJucyBhbiBvYmplY3Qgb2Ygc3RhdGUgdmFyaWFibGVzLlwiXG4gICAgICAgICk7XG4gICAgICB0aGlzLnVwZGF0ZXIuZW5xdWV1ZVNldFN0YXRlKHRoaXMsIHBhcnRpYWxTdGF0ZSwgY2FsbGJhY2ssIFwic2V0U3RhdGVcIik7XG4gICAgfTtcbiAgICBDb21wb25lbnQucHJvdG90eXBlLmZvcmNlVXBkYXRlID0gZnVuY3Rpb24gKGNhbGxiYWNrKSB7XG4gICAgICB0aGlzLnVwZGF0ZXIuZW5xdWV1ZUZvcmNlVXBkYXRlKHRoaXMsIGNhbGxiYWNrLCBcImZvcmNlVXBkYXRlXCIpO1xuICAgIH07XG4gICAgdmFyIGRlcHJlY2F0ZWRBUElzID0ge1xuICAgICAgICBpc01vdW50ZWQ6IFtcbiAgICAgICAgICBcImlzTW91bnRlZFwiLFxuICAgICAgICAgIFwiSW5zdGVhZCwgbWFrZSBzdXJlIHRvIGNsZWFuIHVwIHN1YnNjcmlwdGlvbnMgYW5kIHBlbmRpbmcgcmVxdWVzdHMgaW4gY29tcG9uZW50V2lsbFVubW91bnQgdG8gcHJldmVudCBtZW1vcnkgbGVha3MuXCJcbiAgICAgICAgXSxcbiAgICAgICAgcmVwbGFjZVN0YXRlOiBbXG4gICAgICAgICAgXCJyZXBsYWNlU3RhdGVcIixcbiAgICAgICAgICBcIlJlZmFjdG9yIHlvdXIgY29kZSB0byB1c2Ugc2V0U3RhdGUgaW5zdGVhZCAoc2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9mYWNlYm9vay9yZWFjdC9pc3N1ZXMvMzIzNikuXCJcbiAgICAgICAgXVxuICAgICAgfSxcbiAgICAgIGZuTmFtZTtcbiAgICBmb3IgKGZuTmFtZSBpbiBkZXByZWNhdGVkQVBJcylcbiAgICAgIGRlcHJlY2F0ZWRBUElzLmhhc093blByb3BlcnR5KGZuTmFtZSkgJiZcbiAgICAgICAgZGVmaW5lRGVwcmVjYXRpb25XYXJuaW5nKGZuTmFtZSwgZGVwcmVjYXRlZEFQSXNbZm5OYW1lXSk7XG4gICAgQ29tcG9uZW50RHVtbXkucHJvdG90eXBlID0gQ29tcG9uZW50LnByb3RvdHlwZTtcbiAgICBkZXByZWNhdGVkQVBJcyA9IFB1cmVDb21wb25lbnQucHJvdG90eXBlID0gbmV3IENvbXBvbmVudER1bW15KCk7XG4gICAgZGVwcmVjYXRlZEFQSXMuY29uc3RydWN0b3IgPSBQdXJlQ29tcG9uZW50O1xuICAgIGFzc2lnbihkZXByZWNhdGVkQVBJcywgQ29tcG9uZW50LnByb3RvdHlwZSk7XG4gICAgZGVwcmVjYXRlZEFQSXMuaXNQdXJlUmVhY3RDb21wb25lbnQgPSAhMDtcbiAgICB2YXIgaXNBcnJheUltcGwgPSBBcnJheS5pc0FycmF5LFxuICAgICAgUkVBQ1RfQ0xJRU5UX1JFRkVSRU5DRSA9IFN5bWJvbC5mb3IoXCJyZWFjdC5jbGllbnQucmVmZXJlbmNlXCIpLFxuICAgICAgUmVhY3RTaGFyZWRJbnRlcm5hbHMgPSB7XG4gICAgICAgIEg6IG51bGwsXG4gICAgICAgIEE6IG51bGwsXG4gICAgICAgIFQ6IG51bGwsXG4gICAgICAgIFM6IG51bGwsXG4gICAgICAgIFY6IG51bGwsXG4gICAgICAgIGFjdFF1ZXVlOiBudWxsLFxuICAgICAgICBpc0JhdGNoaW5nTGVnYWN5OiAhMSxcbiAgICAgICAgZGlkU2NoZWR1bGVMZWdhY3lVcGRhdGU6ICExLFxuICAgICAgICBkaWRVc2VQcm9taXNlOiAhMSxcbiAgICAgICAgdGhyb3duRXJyb3JzOiBbXSxcbiAgICAgICAgZ2V0Q3VycmVudFN0YWNrOiBudWxsLFxuICAgICAgICByZWNlbnRseUNyZWF0ZWRPd25lclN0YWNrczogMFxuICAgICAgfSxcbiAgICAgIGhhc093blByb3BlcnR5ID0gT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eSxcbiAgICAgIGNyZWF0ZVRhc2sgPSBjb25zb2xlLmNyZWF0ZVRhc2tcbiAgICAgICAgPyBjb25zb2xlLmNyZWF0ZVRhc2tcbiAgICAgICAgOiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgICB9O1xuICAgIGRlcHJlY2F0ZWRBUElzID0ge1xuICAgICAgXCJyZWFjdC1zdGFjay1ib3R0b20tZnJhbWVcIjogZnVuY3Rpb24gKGNhbGxTdGFja0ZvckVycm9yKSB7XG4gICAgICAgIHJldHVybiBjYWxsU3RhY2tGb3JFcnJvcigpO1xuICAgICAgfVxuICAgIH07XG4gICAgdmFyIHNwZWNpYWxQcm9wS2V5V2FybmluZ1Nob3duLCBkaWRXYXJuQWJvdXRPbGRKU1hSdW50aW1lO1xuICAgIHZhciBkaWRXYXJuQWJvdXRFbGVtZW50UmVmID0ge307XG4gICAgdmFyIHVua25vd25Pd25lckRlYnVnU3RhY2sgPSBkZXByZWNhdGVkQVBJc1tcbiAgICAgIFwicmVhY3Qtc3RhY2stYm90dG9tLWZyYW1lXCJcbiAgICBdLmJpbmQoZGVwcmVjYXRlZEFQSXMsIFVua25vd25Pd25lcikoKTtcbiAgICB2YXIgdW5rbm93bk93bmVyRGVidWdUYXNrID0gY3JlYXRlVGFzayhnZXRUYXNrTmFtZShVbmtub3duT3duZXIpKTtcbiAgICB2YXIgZGlkV2FybkFib3V0TWFwcyA9ICExLFxuICAgICAgdXNlclByb3ZpZGVkS2V5RXNjYXBlUmVnZXggPSAvXFwvKy9nLFxuICAgICAgcmVwb3J0R2xvYmFsRXJyb3IgPVxuICAgICAgICBcImZ1bmN0aW9uXCIgPT09IHR5cGVvZiByZXBvcnRFcnJvclxuICAgICAgICAgID8gcmVwb3J0RXJyb3JcbiAgICAgICAgICA6IGZ1bmN0aW9uIChlcnJvcikge1xuICAgICAgICAgICAgICBpZiAoXG4gICAgICAgICAgICAgICAgXCJvYmplY3RcIiA9PT0gdHlwZW9mIHdpbmRvdyAmJlxuICAgICAgICAgICAgICAgIFwiZnVuY3Rpb25cIiA9PT0gdHlwZW9mIHdpbmRvdy5FcnJvckV2ZW50XG4gICAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICAgIHZhciBldmVudCA9IG5ldyB3aW5kb3cuRXJyb3JFdmVudChcImVycm9yXCIsIHtcbiAgICAgICAgICAgICAgICAgIGJ1YmJsZXM6ICEwLFxuICAgICAgICAgICAgICAgICAgY2FuY2VsYWJsZTogITAsXG4gICAgICAgICAgICAgICAgICBtZXNzYWdlOlxuICAgICAgICAgICAgICAgICAgICBcIm9iamVjdFwiID09PSB0eXBlb2YgZXJyb3IgJiZcbiAgICAgICAgICAgICAgICAgICAgbnVsbCAhPT0gZXJyb3IgJiZcbiAgICAgICAgICAgICAgICAgICAgXCJzdHJpbmdcIiA9PT0gdHlwZW9mIGVycm9yLm1lc3NhZ2VcbiAgICAgICAgICAgICAgICAgICAgICA/IFN0cmluZyhlcnJvci5tZXNzYWdlKVxuICAgICAgICAgICAgICAgICAgICAgIDogU3RyaW5nKGVycm9yKSxcbiAgICAgICAgICAgICAgICAgIGVycm9yOiBlcnJvclxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIGlmICghd2luZG93LmRpc3BhdGNoRXZlbnQoZXZlbnQpKSByZXR1cm47XG4gICAgICAgICAgICAgIH0gZWxzZSBpZiAoXG4gICAgICAgICAgICAgICAgXCJvYmplY3RcIiA9PT0gdHlwZW9mIHByb2Nlc3MgJiZcbiAgICAgICAgICAgICAgICBcImZ1bmN0aW9uXCIgPT09IHR5cGVvZiBwcm9jZXNzLmVtaXRcbiAgICAgICAgICAgICAgKSB7XG4gICAgICAgICAgICAgICAgcHJvY2Vzcy5lbWl0KFwidW5jYXVnaHRFeGNlcHRpb25cIiwgZXJyb3IpO1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICBjb25zb2xlLmVycm9yKGVycm9yKTtcbiAgICAgICAgICAgIH0sXG4gICAgICBkaWRXYXJuQWJvdXRNZXNzYWdlQ2hhbm5lbCA9ICExLFxuICAgICAgZW5xdWV1ZVRhc2tJbXBsID0gbnVsbCxcbiAgICAgIGFjdFNjb3BlRGVwdGggPSAwLFxuICAgICAgZGlkV2Fybk5vQXdhaXRBY3QgPSAhMSxcbiAgICAgIGlzRmx1c2hpbmcgPSAhMSxcbiAgICAgIHF1ZXVlU2V2ZXJhbE1pY3JvdGFza3MgPVxuICAgICAgICBcImZ1bmN0aW9uXCIgPT09IHR5cGVvZiBxdWV1ZU1pY3JvdGFza1xuICAgICAgICAgID8gZnVuY3Rpb24gKGNhbGxiYWNrKSB7XG4gICAgICAgICAgICAgIHF1ZXVlTWljcm90YXNrKGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gcXVldWVNaWNyb3Rhc2soY2FsbGJhY2spO1xuICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICA6IGVucXVldWVUYXNrO1xuICAgIGRlcHJlY2F0ZWRBUElzID0gT2JqZWN0LmZyZWV6ZSh7XG4gICAgICBfX3Byb3RvX186IG51bGwsXG4gICAgICBjOiBmdW5jdGlvbiAoc2l6ZSkge1xuICAgICAgICByZXR1cm4gcmVzb2x2ZURpc3BhdGNoZXIoKS51c2VNZW1vQ2FjaGUoc2l6ZSk7XG4gICAgICB9XG4gICAgfSk7XG4gICAgZXhwb3J0cy5DaGlsZHJlbiA9IHtcbiAgICAgIG1hcDogbWFwQ2hpbGRyZW4sXG4gICAgICBmb3JFYWNoOiBmdW5jdGlvbiAoY2hpbGRyZW4sIGZvckVhY2hGdW5jLCBmb3JFYWNoQ29udGV4dCkge1xuICAgICAgICBtYXBDaGlsZHJlbihcbiAgICAgICAgICBjaGlsZHJlbixcbiAgICAgICAgICBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICBmb3JFYWNoRnVuYy5hcHBseSh0aGlzLCBhcmd1bWVudHMpO1xuICAgICAgICAgIH0sXG4gICAgICAgICAgZm9yRWFjaENvbnRleHRcbiAgICAgICAgKTtcbiAgICAgIH0sXG4gICAgICBjb3VudDogZnVuY3Rpb24gKGNoaWxkcmVuKSB7XG4gICAgICAgIHZhciBuID0gMDtcbiAgICAgICAgbWFwQ2hpbGRyZW4oY2hpbGRyZW4sIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICBuKys7XG4gICAgICAgIH0pO1xuICAgICAgICByZXR1cm4gbjtcbiAgICAgIH0sXG4gICAgICB0b0FycmF5OiBmdW5jdGlvbiAoY2hpbGRyZW4pIHtcbiAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICBtYXBDaGlsZHJlbihjaGlsZHJlbiwgZnVuY3Rpb24gKGNoaWxkKSB7XG4gICAgICAgICAgICByZXR1cm4gY2hpbGQ7XG4gICAgICAgICAgfSkgfHwgW11cbiAgICAgICAgKTtcbiAgICAgIH0sXG4gICAgICBvbmx5OiBmdW5jdGlvbiAoY2hpbGRyZW4pIHtcbiAgICAgICAgaWYgKCFpc1ZhbGlkRWxlbWVudChjaGlsZHJlbikpXG4gICAgICAgICAgdGhyb3cgRXJyb3IoXG4gICAgICAgICAgICBcIlJlYWN0LkNoaWxkcmVuLm9ubHkgZXhwZWN0ZWQgdG8gcmVjZWl2ZSBhIHNpbmdsZSBSZWFjdCBlbGVtZW50IGNoaWxkLlwiXG4gICAgICAgICAgKTtcbiAgICAgICAgcmV0dXJuIGNoaWxkcmVuO1xuICAgICAgfVxuICAgIH07XG4gICAgZXhwb3J0cy5Db21wb25lbnQgPSBDb21wb25lbnQ7XG4gICAgZXhwb3J0cy5GcmFnbWVudCA9IFJFQUNUX0ZSQUdNRU5UX1RZUEU7XG4gICAgZXhwb3J0cy5Qcm9maWxlciA9IFJFQUNUX1BST0ZJTEVSX1RZUEU7XG4gICAgZXhwb3J0cy5QdXJlQ29tcG9uZW50ID0gUHVyZUNvbXBvbmVudDtcbiAgICBleHBvcnRzLlN0cmljdE1vZGUgPSBSRUFDVF9TVFJJQ1RfTU9ERV9UWVBFO1xuICAgIGV4cG9ydHMuU3VzcGVuc2UgPSBSRUFDVF9TVVNQRU5TRV9UWVBFO1xuICAgIGV4cG9ydHMuX19DTElFTlRfSU5URVJOQUxTX0RPX05PVF9VU0VfT1JfV0FSTl9VU0VSU19USEVZX0NBTk5PVF9VUEdSQURFID1cbiAgICAgIFJlYWN0U2hhcmVkSW50ZXJuYWxzO1xuICAgIGV4cG9ydHMuX19DT01QSUxFUl9SVU5USU1FID0gZGVwcmVjYXRlZEFQSXM7XG4gICAgZXhwb3J0cy5hY3QgPSBmdW5jdGlvbiAoY2FsbGJhY2spIHtcbiAgICAgIHZhciBwcmV2QWN0UXVldWUgPSBSZWFjdFNoYXJlZEludGVybmFscy5hY3RRdWV1ZSxcbiAgICAgICAgcHJldkFjdFNjb3BlRGVwdGggPSBhY3RTY29wZURlcHRoO1xuICAgICAgYWN0U2NvcGVEZXB0aCsrO1xuICAgICAgdmFyIHF1ZXVlID0gKFJlYWN0U2hhcmVkSW50ZXJuYWxzLmFjdFF1ZXVlID1cbiAgICAgICAgICBudWxsICE9PSBwcmV2QWN0UXVldWUgPyBwcmV2QWN0UXVldWUgOiBbXSksXG4gICAgICAgIGRpZEF3YWl0QWN0Q2FsbCA9ICExO1xuICAgICAgdHJ5IHtcbiAgICAgICAgdmFyIHJlc3VsdCA9IGNhbGxiYWNrKCk7XG4gICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICBSZWFjdFNoYXJlZEludGVybmFscy50aHJvd25FcnJvcnMucHVzaChlcnJvcik7XG4gICAgICB9XG4gICAgICBpZiAoMCA8IFJlYWN0U2hhcmVkSW50ZXJuYWxzLnRocm93bkVycm9ycy5sZW5ndGgpXG4gICAgICAgIHRocm93IChcbiAgICAgICAgICAocG9wQWN0U2NvcGUocHJldkFjdFF1ZXVlLCBwcmV2QWN0U2NvcGVEZXB0aCksXG4gICAgICAgICAgKGNhbGxiYWNrID0gYWdncmVnYXRlRXJyb3JzKFJlYWN0U2hhcmVkSW50ZXJuYWxzLnRocm93bkVycm9ycykpLFxuICAgICAgICAgIChSZWFjdFNoYXJlZEludGVybmFscy50aHJvd25FcnJvcnMubGVuZ3RoID0gMCksXG4gICAgICAgICAgY2FsbGJhY2spXG4gICAgICAgICk7XG4gICAgICBpZiAoXG4gICAgICAgIG51bGwgIT09IHJlc3VsdCAmJlxuICAgICAgICBcIm9iamVjdFwiID09PSB0eXBlb2YgcmVzdWx0ICYmXG4gICAgICAgIFwiZnVuY3Rpb25cIiA9PT0gdHlwZW9mIHJlc3VsdC50aGVuXG4gICAgICApIHtcbiAgICAgICAgdmFyIHRoZW5hYmxlID0gcmVzdWx0O1xuICAgICAgICBxdWV1ZVNldmVyYWxNaWNyb3Rhc2tzKGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICBkaWRBd2FpdEFjdENhbGwgfHxcbiAgICAgICAgICAgIGRpZFdhcm5Ob0F3YWl0QWN0IHx8XG4gICAgICAgICAgICAoKGRpZFdhcm5Ob0F3YWl0QWN0ID0gITApLFxuICAgICAgICAgICAgY29uc29sZS5lcnJvcihcbiAgICAgICAgICAgICAgXCJZb3UgY2FsbGVkIGFjdChhc3luYyAoKSA9PiAuLi4pIHdpdGhvdXQgYXdhaXQuIFRoaXMgY291bGQgbGVhZCB0byB1bmV4cGVjdGVkIHRlc3RpbmcgYmVoYXZpb3VyLCBpbnRlcmxlYXZpbmcgbXVsdGlwbGUgYWN0IGNhbGxzIGFuZCBtaXhpbmcgdGhlaXIgc2NvcGVzLiBZb3Ugc2hvdWxkIC0gYXdhaXQgYWN0KGFzeW5jICgpID0+IC4uLik7XCJcbiAgICAgICAgICAgICkpO1xuICAgICAgICB9KTtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICB0aGVuOiBmdW5jdGlvbiAocmVzb2x2ZSwgcmVqZWN0KSB7XG4gICAgICAgICAgICBkaWRBd2FpdEFjdENhbGwgPSAhMDtcbiAgICAgICAgICAgIHRoZW5hYmxlLnRoZW4oXG4gICAgICAgICAgICAgIGZ1bmN0aW9uIChyZXR1cm5WYWx1ZSkge1xuICAgICAgICAgICAgICAgIHBvcEFjdFNjb3BlKHByZXZBY3RRdWV1ZSwgcHJldkFjdFNjb3BlRGVwdGgpO1xuICAgICAgICAgICAgICAgIGlmICgwID09PSBwcmV2QWN0U2NvcGVEZXB0aCkge1xuICAgICAgICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICAgICAgZmx1c2hBY3RRdWV1ZShxdWV1ZSksXG4gICAgICAgICAgICAgICAgICAgICAgZW5xdWV1ZVRhc2soZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHJlY3Vyc2l2ZWx5Rmx1c2hBc3luY0FjdFdvcmsoXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVyblZhbHVlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICByZXNvbHZlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICByZWplY3RcbiAgICAgICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICB9IGNhdGNoIChlcnJvciQwKSB7XG4gICAgICAgICAgICAgICAgICAgIFJlYWN0U2hhcmVkSW50ZXJuYWxzLnRocm93bkVycm9ycy5wdXNoKGVycm9yJDApO1xuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgaWYgKDAgPCBSZWFjdFNoYXJlZEludGVybmFscy50aHJvd25FcnJvcnMubGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgICAgIHZhciBfdGhyb3duRXJyb3IgPSBhZ2dyZWdhdGVFcnJvcnMoXG4gICAgICAgICAgICAgICAgICAgICAgUmVhY3RTaGFyZWRJbnRlcm5hbHMudGhyb3duRXJyb3JzXG4gICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgICAgIFJlYWN0U2hhcmVkSW50ZXJuYWxzLnRocm93bkVycm9ycy5sZW5ndGggPSAwO1xuICAgICAgICAgICAgICAgICAgICByZWplY3QoX3Rocm93bkVycm9yKTtcbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9IGVsc2UgcmVzb2x2ZShyZXR1cm5WYWx1ZSk7XG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIGZ1bmN0aW9uIChlcnJvcikge1xuICAgICAgICAgICAgICAgIHBvcEFjdFNjb3BlKHByZXZBY3RRdWV1ZSwgcHJldkFjdFNjb3BlRGVwdGgpO1xuICAgICAgICAgICAgICAgIDAgPCBSZWFjdFNoYXJlZEludGVybmFscy50aHJvd25FcnJvcnMubGVuZ3RoXG4gICAgICAgICAgICAgICAgICA/ICgoZXJyb3IgPSBhZ2dyZWdhdGVFcnJvcnMoXG4gICAgICAgICAgICAgICAgICAgICAgUmVhY3RTaGFyZWRJbnRlcm5hbHMudGhyb3duRXJyb3JzXG4gICAgICAgICAgICAgICAgICAgICkpLFxuICAgICAgICAgICAgICAgICAgICAoUmVhY3RTaGFyZWRJbnRlcm5hbHMudGhyb3duRXJyb3JzLmxlbmd0aCA9IDApLFxuICAgICAgICAgICAgICAgICAgICByZWplY3QoZXJyb3IpKVxuICAgICAgICAgICAgICAgICAgOiByZWplY3QoZXJyb3IpO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICApO1xuICAgICAgICAgIH1cbiAgICAgICAgfTtcbiAgICAgIH1cbiAgICAgIHZhciByZXR1cm5WYWx1ZSRqc2NvbXAkMCA9IHJlc3VsdDtcbiAgICAgIHBvcEFjdFNjb3BlKHByZXZBY3RRdWV1ZSwgcHJldkFjdFNjb3BlRGVwdGgpO1xuICAgICAgMCA9PT0gcHJldkFjdFNjb3BlRGVwdGggJiZcbiAgICAgICAgKGZsdXNoQWN0UXVldWUocXVldWUpLFxuICAgICAgICAwICE9PSBxdWV1ZS5sZW5ndGggJiZcbiAgICAgICAgICBxdWV1ZVNldmVyYWxNaWNyb3Rhc2tzKGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIGRpZEF3YWl0QWN0Q2FsbCB8fFxuICAgICAgICAgICAgICBkaWRXYXJuTm9Bd2FpdEFjdCB8fFxuICAgICAgICAgICAgICAoKGRpZFdhcm5Ob0F3YWl0QWN0ID0gITApLFxuICAgICAgICAgICAgICBjb25zb2xlLmVycm9yKFxuICAgICAgICAgICAgICAgIFwiQSBjb21wb25lbnQgc3VzcGVuZGVkIGluc2lkZSBhbiBgYWN0YCBzY29wZSwgYnV0IHRoZSBgYWN0YCBjYWxsIHdhcyBub3QgYXdhaXRlZC4gV2hlbiB0ZXN0aW5nIFJlYWN0IGNvbXBvbmVudHMgdGhhdCBkZXBlbmQgb24gYXN5bmNocm9ub3VzIGRhdGEsIHlvdSBtdXN0IGF3YWl0IHRoZSByZXN1bHQ6XFxuXFxuYXdhaXQgYWN0KCgpID0+IC4uLilcIlxuICAgICAgICAgICAgICApKTtcbiAgICAgICAgICB9KSxcbiAgICAgICAgKFJlYWN0U2hhcmVkSW50ZXJuYWxzLmFjdFF1ZXVlID0gbnVsbCkpO1xuICAgICAgaWYgKDAgPCBSZWFjdFNoYXJlZEludGVybmFscy50aHJvd25FcnJvcnMubGVuZ3RoKVxuICAgICAgICB0aHJvdyAoXG4gICAgICAgICAgKChjYWxsYmFjayA9IGFnZ3JlZ2F0ZUVycm9ycyhSZWFjdFNoYXJlZEludGVybmFscy50aHJvd25FcnJvcnMpKSxcbiAgICAgICAgICAoUmVhY3RTaGFyZWRJbnRlcm5hbHMudGhyb3duRXJyb3JzLmxlbmd0aCA9IDApLFxuICAgICAgICAgIGNhbGxiYWNrKVxuICAgICAgICApO1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgdGhlbjogZnVuY3Rpb24gKHJlc29sdmUsIHJlamVjdCkge1xuICAgICAgICAgIGRpZEF3YWl0QWN0Q2FsbCA9ICEwO1xuICAgICAgICAgIDAgPT09IHByZXZBY3RTY29wZURlcHRoXG4gICAgICAgICAgICA/ICgoUmVhY3RTaGFyZWRJbnRlcm5hbHMuYWN0UXVldWUgPSBxdWV1ZSksXG4gICAgICAgICAgICAgIGVucXVldWVUYXNrKGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gcmVjdXJzaXZlbHlGbHVzaEFzeW5jQWN0V29yayhcbiAgICAgICAgICAgICAgICAgIHJldHVyblZhbHVlJGpzY29tcCQwLFxuICAgICAgICAgICAgICAgICAgcmVzb2x2ZSxcbiAgICAgICAgICAgICAgICAgIHJlamVjdFxuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgIH0pKVxuICAgICAgICAgICAgOiByZXNvbHZlKHJldHVyblZhbHVlJGpzY29tcCQwKTtcbiAgICAgICAgfVxuICAgICAgfTtcbiAgICB9O1xuICAgIGV4cG9ydHMuY2FjaGUgPSBmdW5jdGlvbiAoZm4pIHtcbiAgICAgIHJldHVybiBmdW5jdGlvbiAoKSB7XG4gICAgICAgIHJldHVybiBmbi5hcHBseShudWxsLCBhcmd1bWVudHMpO1xuICAgICAgfTtcbiAgICB9O1xuICAgIGV4cG9ydHMuY2FwdHVyZU93bmVyU3RhY2sgPSBmdW5jdGlvbiAoKSB7XG4gICAgICB2YXIgZ2V0Q3VycmVudFN0YWNrID0gUmVhY3RTaGFyZWRJbnRlcm5hbHMuZ2V0Q3VycmVudFN0YWNrO1xuICAgICAgcmV0dXJuIG51bGwgPT09IGdldEN1cnJlbnRTdGFjayA/IG51bGwgOiBnZXRDdXJyZW50U3RhY2soKTtcbiAgICB9O1xuICAgIGV4cG9ydHMuY2xvbmVFbGVtZW50ID0gZnVuY3Rpb24gKGVsZW1lbnQsIGNvbmZpZywgY2hpbGRyZW4pIHtcbiAgICAgIGlmIChudWxsID09PSBlbGVtZW50IHx8IHZvaWQgMCA9PT0gZWxlbWVudClcbiAgICAgICAgdGhyb3cgRXJyb3IoXG4gICAgICAgICAgXCJUaGUgYXJndW1lbnQgbXVzdCBiZSBhIFJlYWN0IGVsZW1lbnQsIGJ1dCB5b3UgcGFzc2VkIFwiICtcbiAgICAgICAgICAgIGVsZW1lbnQgK1xuICAgICAgICAgICAgXCIuXCJcbiAgICAgICAgKTtcbiAgICAgIHZhciBwcm9wcyA9IGFzc2lnbih7fSwgZWxlbWVudC5wcm9wcyksXG4gICAgICAgIGtleSA9IGVsZW1lbnQua2V5LFxuICAgICAgICBvd25lciA9IGVsZW1lbnQuX293bmVyO1xuICAgICAgaWYgKG51bGwgIT0gY29uZmlnKSB7XG4gICAgICAgIHZhciBKU0NvbXBpbGVyX2lubGluZV9yZXN1bHQ7XG4gICAgICAgIGE6IHtcbiAgICAgICAgICBpZiAoXG4gICAgICAgICAgICBoYXNPd25Qcm9wZXJ0eS5jYWxsKGNvbmZpZywgXCJyZWZcIikgJiZcbiAgICAgICAgICAgIChKU0NvbXBpbGVyX2lubGluZV9yZXN1bHQgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKFxuICAgICAgICAgICAgICBjb25maWcsXG4gICAgICAgICAgICAgIFwicmVmXCJcbiAgICAgICAgICAgICkuZ2V0KSAmJlxuICAgICAgICAgICAgSlNDb21waWxlcl9pbmxpbmVfcmVzdWx0LmlzUmVhY3RXYXJuaW5nXG4gICAgICAgICAgKSB7XG4gICAgICAgICAgICBKU0NvbXBpbGVyX2lubGluZV9yZXN1bHQgPSAhMTtcbiAgICAgICAgICAgIGJyZWFrIGE7XG4gICAgICAgICAgfVxuICAgICAgICAgIEpTQ29tcGlsZXJfaW5saW5lX3Jlc3VsdCA9IHZvaWQgMCAhPT0gY29uZmlnLnJlZjtcbiAgICAgICAgfVxuICAgICAgICBKU0NvbXBpbGVyX2lubGluZV9yZXN1bHQgJiYgKG93bmVyID0gZ2V0T3duZXIoKSk7XG4gICAgICAgIGhhc1ZhbGlkS2V5KGNvbmZpZykgJiZcbiAgICAgICAgICAoY2hlY2tLZXlTdHJpbmdDb2VyY2lvbihjb25maWcua2V5KSwgKGtleSA9IFwiXCIgKyBjb25maWcua2V5KSk7XG4gICAgICAgIGZvciAocHJvcE5hbWUgaW4gY29uZmlnKVxuICAgICAgICAgICFoYXNPd25Qcm9wZXJ0eS5jYWxsKGNvbmZpZywgcHJvcE5hbWUpIHx8XG4gICAgICAgICAgICBcImtleVwiID09PSBwcm9wTmFtZSB8fFxuICAgICAgICAgICAgXCJfX3NlbGZcIiA9PT0gcHJvcE5hbWUgfHxcbiAgICAgICAgICAgIFwiX19zb3VyY2VcIiA9PT0gcHJvcE5hbWUgfHxcbiAgICAgICAgICAgIChcInJlZlwiID09PSBwcm9wTmFtZSAmJiB2b2lkIDAgPT09IGNvbmZpZy5yZWYpIHx8XG4gICAgICAgICAgICAocHJvcHNbcHJvcE5hbWVdID0gY29uZmlnW3Byb3BOYW1lXSk7XG4gICAgICB9XG4gICAgICB2YXIgcHJvcE5hbWUgPSBhcmd1bWVudHMubGVuZ3RoIC0gMjtcbiAgICAgIGlmICgxID09PSBwcm9wTmFtZSkgcHJvcHMuY2hpbGRyZW4gPSBjaGlsZHJlbjtcbiAgICAgIGVsc2UgaWYgKDEgPCBwcm9wTmFtZSkge1xuICAgICAgICBKU0NvbXBpbGVyX2lubGluZV9yZXN1bHQgPSBBcnJheShwcm9wTmFtZSk7XG4gICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgcHJvcE5hbWU7IGkrKylcbiAgICAgICAgICBKU0NvbXBpbGVyX2lubGluZV9yZXN1bHRbaV0gPSBhcmd1bWVudHNbaSArIDJdO1xuICAgICAgICBwcm9wcy5jaGlsZHJlbiA9IEpTQ29tcGlsZXJfaW5saW5lX3Jlc3VsdDtcbiAgICAgIH1cbiAgICAgIHByb3BzID0gUmVhY3RFbGVtZW50KFxuICAgICAgICBlbGVtZW50LnR5cGUsXG4gICAgICAgIGtleSxcbiAgICAgICAgdm9pZCAwLFxuICAgICAgICB2b2lkIDAsXG4gICAgICAgIG93bmVyLFxuICAgICAgICBwcm9wcyxcbiAgICAgICAgZWxlbWVudC5fZGVidWdTdGFjayxcbiAgICAgICAgZWxlbWVudC5fZGVidWdUYXNrXG4gICAgICApO1xuICAgICAgZm9yIChrZXkgPSAyOyBrZXkgPCBhcmd1bWVudHMubGVuZ3RoOyBrZXkrKylcbiAgICAgICAgKG93bmVyID0gYXJndW1lbnRzW2tleV0pLFxuICAgICAgICAgIGlzVmFsaWRFbGVtZW50KG93bmVyKSAmJiBvd25lci5fc3RvcmUgJiYgKG93bmVyLl9zdG9yZS52YWxpZGF0ZWQgPSAxKTtcbiAgICAgIHJldHVybiBwcm9wcztcbiAgICB9O1xuICAgIGV4cG9ydHMuY3JlYXRlQ29udGV4dCA9IGZ1bmN0aW9uIChkZWZhdWx0VmFsdWUpIHtcbiAgICAgIGRlZmF1bHRWYWx1ZSA9IHtcbiAgICAgICAgJCR0eXBlb2Y6IFJFQUNUX0NPTlRFWFRfVFlQRSxcbiAgICAgICAgX2N1cnJlbnRWYWx1ZTogZGVmYXVsdFZhbHVlLFxuICAgICAgICBfY3VycmVudFZhbHVlMjogZGVmYXVsdFZhbHVlLFxuICAgICAgICBfdGhyZWFkQ291bnQ6IDAsXG4gICAgICAgIFByb3ZpZGVyOiBudWxsLFxuICAgICAgICBDb25zdW1lcjogbnVsbFxuICAgICAgfTtcbiAgICAgIGRlZmF1bHRWYWx1ZS5Qcm92aWRlciA9IGRlZmF1bHRWYWx1ZTtcbiAgICAgIGRlZmF1bHRWYWx1ZS5Db25zdW1lciA9IHtcbiAgICAgICAgJCR0eXBlb2Y6IFJFQUNUX0NPTlNVTUVSX1RZUEUsXG4gICAgICAgIF9jb250ZXh0OiBkZWZhdWx0VmFsdWVcbiAgICAgIH07XG4gICAgICBkZWZhdWx0VmFsdWUuX2N1cnJlbnRSZW5kZXJlciA9IG51bGw7XG4gICAgICBkZWZhdWx0VmFsdWUuX2N1cnJlbnRSZW5kZXJlcjIgPSBudWxsO1xuICAgICAgcmV0dXJuIGRlZmF1bHRWYWx1ZTtcbiAgICB9O1xuICAgIGV4cG9ydHMuY3JlYXRlRWxlbWVudCA9IGZ1bmN0aW9uICh0eXBlLCBjb25maWcsIGNoaWxkcmVuKSB7XG4gICAgICBmb3IgKHZhciBpID0gMjsgaSA8IGFyZ3VtZW50cy5sZW5ndGg7IGkrKykge1xuICAgICAgICB2YXIgbm9kZSA9IGFyZ3VtZW50c1tpXTtcbiAgICAgICAgaXNWYWxpZEVsZW1lbnQobm9kZSkgJiYgbm9kZS5fc3RvcmUgJiYgKG5vZGUuX3N0b3JlLnZhbGlkYXRlZCA9IDEpO1xuICAgICAgfVxuICAgICAgaSA9IHt9O1xuICAgICAgbm9kZSA9IG51bGw7XG4gICAgICBpZiAobnVsbCAhPSBjb25maWcpXG4gICAgICAgIGZvciAocHJvcE5hbWUgaW4gKGRpZFdhcm5BYm91dE9sZEpTWFJ1bnRpbWUgfHxcbiAgICAgICAgICAhKFwiX19zZWxmXCIgaW4gY29uZmlnKSB8fFxuICAgICAgICAgIFwia2V5XCIgaW4gY29uZmlnIHx8XG4gICAgICAgICAgKChkaWRXYXJuQWJvdXRPbGRKU1hSdW50aW1lID0gITApLFxuICAgICAgICAgIGNvbnNvbGUud2FybihcbiAgICAgICAgICAgIFwiWW91ciBhcHAgKG9yIG9uZSBvZiBpdHMgZGVwZW5kZW5jaWVzKSBpcyB1c2luZyBhbiBvdXRkYXRlZCBKU1ggdHJhbnNmb3JtLiBVcGRhdGUgdG8gdGhlIG1vZGVybiBKU1ggdHJhbnNmb3JtIGZvciBmYXN0ZXIgcGVyZm9ybWFuY2U6IGh0dHBzOi8vcmVhY3QuZGV2L2xpbmsvbmV3LWpzeC10cmFuc2Zvcm1cIlxuICAgICAgICAgICkpLFxuICAgICAgICBoYXNWYWxpZEtleShjb25maWcpICYmXG4gICAgICAgICAgKGNoZWNrS2V5U3RyaW5nQ29lcmNpb24oY29uZmlnLmtleSksIChub2RlID0gXCJcIiArIGNvbmZpZy5rZXkpKSxcbiAgICAgICAgY29uZmlnKSlcbiAgICAgICAgICBoYXNPd25Qcm9wZXJ0eS5jYWxsKGNvbmZpZywgcHJvcE5hbWUpICYmXG4gICAgICAgICAgICBcImtleVwiICE9PSBwcm9wTmFtZSAmJlxuICAgICAgICAgICAgXCJfX3NlbGZcIiAhPT0gcHJvcE5hbWUgJiZcbiAgICAgICAgICAgIFwiX19zb3VyY2VcIiAhPT0gcHJvcE5hbWUgJiZcbiAgICAgICAgICAgIChpW3Byb3BOYW1lXSA9IGNvbmZpZ1twcm9wTmFtZV0pO1xuICAgICAgdmFyIGNoaWxkcmVuTGVuZ3RoID0gYXJndW1lbnRzLmxlbmd0aCAtIDI7XG4gICAgICBpZiAoMSA9PT0gY2hpbGRyZW5MZW5ndGgpIGkuY2hpbGRyZW4gPSBjaGlsZHJlbjtcbiAgICAgIGVsc2UgaWYgKDEgPCBjaGlsZHJlbkxlbmd0aCkge1xuICAgICAgICBmb3IgKFxuICAgICAgICAgIHZhciBjaGlsZEFycmF5ID0gQXJyYXkoY2hpbGRyZW5MZW5ndGgpLCBfaSA9IDA7XG4gICAgICAgICAgX2kgPCBjaGlsZHJlbkxlbmd0aDtcbiAgICAgICAgICBfaSsrXG4gICAgICAgIClcbiAgICAgICAgICBjaGlsZEFycmF5W19pXSA9IGFyZ3VtZW50c1tfaSArIDJdO1xuICAgICAgICBPYmplY3QuZnJlZXplICYmIE9iamVjdC5mcmVlemUoY2hpbGRBcnJheSk7XG4gICAgICAgIGkuY2hpbGRyZW4gPSBjaGlsZEFycmF5O1xuICAgICAgfVxuICAgICAgaWYgKHR5cGUgJiYgdHlwZS5kZWZhdWx0UHJvcHMpXG4gICAgICAgIGZvciAocHJvcE5hbWUgaW4gKChjaGlsZHJlbkxlbmd0aCA9IHR5cGUuZGVmYXVsdFByb3BzKSwgY2hpbGRyZW5MZW5ndGgpKVxuICAgICAgICAgIHZvaWQgMCA9PT0gaVtwcm9wTmFtZV0gJiYgKGlbcHJvcE5hbWVdID0gY2hpbGRyZW5MZW5ndGhbcHJvcE5hbWVdKTtcbiAgICAgIG5vZGUgJiZcbiAgICAgICAgZGVmaW5lS2V5UHJvcFdhcm5pbmdHZXR0ZXIoXG4gICAgICAgICAgaSxcbiAgICAgICAgICBcImZ1bmN0aW9uXCIgPT09IHR5cGVvZiB0eXBlXG4gICAgICAgICAgICA/IHR5cGUuZGlzcGxheU5hbWUgfHwgdHlwZS5uYW1lIHx8IFwiVW5rbm93blwiXG4gICAgICAgICAgICA6IHR5cGVcbiAgICAgICAgKTtcbiAgICAgIHZhciBwcm9wTmFtZSA9IDFlNCA+IFJlYWN0U2hhcmVkSW50ZXJuYWxzLnJlY2VudGx5Q3JlYXRlZE93bmVyU3RhY2tzKys7XG4gICAgICByZXR1cm4gUmVhY3RFbGVtZW50KFxuICAgICAgICB0eXBlLFxuICAgICAgICBub2RlLFxuICAgICAgICB2b2lkIDAsXG4gICAgICAgIHZvaWQgMCxcbiAgICAgICAgZ2V0T3duZXIoKSxcbiAgICAgICAgaSxcbiAgICAgICAgcHJvcE5hbWUgPyBFcnJvcihcInJlYWN0LXN0YWNrLXRvcC1mcmFtZVwiKSA6IHVua25vd25Pd25lckRlYnVnU3RhY2ssXG4gICAgICAgIHByb3BOYW1lID8gY3JlYXRlVGFzayhnZXRUYXNrTmFtZSh0eXBlKSkgOiB1bmtub3duT3duZXJEZWJ1Z1Rhc2tcbiAgICAgICk7XG4gICAgfTtcbiAgICBleHBvcnRzLmNyZWF0ZVJlZiA9IGZ1bmN0aW9uICgpIHtcbiAgICAgIHZhciByZWZPYmplY3QgPSB7IGN1cnJlbnQ6IG51bGwgfTtcbiAgICAgIE9iamVjdC5zZWFsKHJlZk9iamVjdCk7XG4gICAgICByZXR1cm4gcmVmT2JqZWN0O1xuICAgIH07XG4gICAgZXhwb3J0cy5mb3J3YXJkUmVmID0gZnVuY3Rpb24gKHJlbmRlcikge1xuICAgICAgbnVsbCAhPSByZW5kZXIgJiYgcmVuZGVyLiQkdHlwZW9mID09PSBSRUFDVF9NRU1PX1RZUEVcbiAgICAgICAgPyBjb25zb2xlLmVycm9yKFxuICAgICAgICAgICAgXCJmb3J3YXJkUmVmIHJlcXVpcmVzIGEgcmVuZGVyIGZ1bmN0aW9uIGJ1dCByZWNlaXZlZCBhIGBtZW1vYCBjb21wb25lbnQuIEluc3RlYWQgb2YgZm9yd2FyZFJlZihtZW1vKC4uLikpLCB1c2UgbWVtbyhmb3J3YXJkUmVmKC4uLikpLlwiXG4gICAgICAgICAgKVxuICAgICAgICA6IFwiZnVuY3Rpb25cIiAhPT0gdHlwZW9mIHJlbmRlclxuICAgICAgICAgID8gY29uc29sZS5lcnJvcihcbiAgICAgICAgICAgICAgXCJmb3J3YXJkUmVmIHJlcXVpcmVzIGEgcmVuZGVyIGZ1bmN0aW9uIGJ1dCB3YXMgZ2l2ZW4gJXMuXCIsXG4gICAgICAgICAgICAgIG51bGwgPT09IHJlbmRlciA/IFwibnVsbFwiIDogdHlwZW9mIHJlbmRlclxuICAgICAgICAgICAgKVxuICAgICAgICAgIDogMCAhPT0gcmVuZGVyLmxlbmd0aCAmJlxuICAgICAgICAgICAgMiAhPT0gcmVuZGVyLmxlbmd0aCAmJlxuICAgICAgICAgICAgY29uc29sZS5lcnJvcihcbiAgICAgICAgICAgICAgXCJmb3J3YXJkUmVmIHJlbmRlciBmdW5jdGlvbnMgYWNjZXB0IGV4YWN0bHkgdHdvIHBhcmFtZXRlcnM6IHByb3BzIGFuZCByZWYuICVzXCIsXG4gICAgICAgICAgICAgIDEgPT09IHJlbmRlci5sZW5ndGhcbiAgICAgICAgICAgICAgICA/IFwiRGlkIHlvdSBmb3JnZXQgdG8gdXNlIHRoZSByZWYgcGFyYW1ldGVyP1wiXG4gICAgICAgICAgICAgICAgOiBcIkFueSBhZGRpdGlvbmFsIHBhcmFtZXRlciB3aWxsIGJlIHVuZGVmaW5lZC5cIlxuICAgICAgICAgICAgKTtcbiAgICAgIG51bGwgIT0gcmVuZGVyICYmXG4gICAgICAgIG51bGwgIT0gcmVuZGVyLmRlZmF1bHRQcm9wcyAmJlxuICAgICAgICBjb25zb2xlLmVycm9yKFxuICAgICAgICAgIFwiZm9yd2FyZFJlZiByZW5kZXIgZnVuY3Rpb25zIGRvIG5vdCBzdXBwb3J0IGRlZmF1bHRQcm9wcy4gRGlkIHlvdSBhY2NpZGVudGFsbHkgcGFzcyBhIFJlYWN0IGNvbXBvbmVudD9cIlxuICAgICAgICApO1xuICAgICAgdmFyIGVsZW1lbnRUeXBlID0geyAkJHR5cGVvZjogUkVBQ1RfRk9SV0FSRF9SRUZfVFlQRSwgcmVuZGVyOiByZW5kZXIgfSxcbiAgICAgICAgb3duTmFtZTtcbiAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlbGVtZW50VHlwZSwgXCJkaXNwbGF5TmFtZVwiLCB7XG4gICAgICAgIGVudW1lcmFibGU6ICExLFxuICAgICAgICBjb25maWd1cmFibGU6ICEwLFxuICAgICAgICBnZXQ6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICByZXR1cm4gb3duTmFtZTtcbiAgICAgICAgfSxcbiAgICAgICAgc2V0OiBmdW5jdGlvbiAobmFtZSkge1xuICAgICAgICAgIG93bk5hbWUgPSBuYW1lO1xuICAgICAgICAgIHJlbmRlci5uYW1lIHx8XG4gICAgICAgICAgICByZW5kZXIuZGlzcGxheU5hbWUgfHxcbiAgICAgICAgICAgIChPYmplY3QuZGVmaW5lUHJvcGVydHkocmVuZGVyLCBcIm5hbWVcIiwgeyB2YWx1ZTogbmFtZSB9KSxcbiAgICAgICAgICAgIChyZW5kZXIuZGlzcGxheU5hbWUgPSBuYW1lKSk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgICAgcmV0dXJuIGVsZW1lbnRUeXBlO1xuICAgIH07XG4gICAgZXhwb3J0cy5pc1ZhbGlkRWxlbWVudCA9IGlzVmFsaWRFbGVtZW50O1xuICAgIGV4cG9ydHMubGF6eSA9IGZ1bmN0aW9uIChjdG9yKSB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICAkJHR5cGVvZjogUkVBQ1RfTEFaWV9UWVBFLFxuICAgICAgICBfcGF5bG9hZDogeyBfc3RhdHVzOiAtMSwgX3Jlc3VsdDogY3RvciB9LFxuICAgICAgICBfaW5pdDogbGF6eUluaXRpYWxpemVyXG4gICAgICB9O1xuICAgIH07XG4gICAgZXhwb3J0cy5tZW1vID0gZnVuY3Rpb24gKHR5cGUsIGNvbXBhcmUpIHtcbiAgICAgIG51bGwgPT0gdHlwZSAmJlxuICAgICAgICBjb25zb2xlLmVycm9yKFxuICAgICAgICAgIFwibWVtbzogVGhlIGZpcnN0IGFyZ3VtZW50IG11c3QgYmUgYSBjb21wb25lbnQuIEluc3RlYWQgcmVjZWl2ZWQ6ICVzXCIsXG4gICAgICAgICAgbnVsbCA9PT0gdHlwZSA/IFwibnVsbFwiIDogdHlwZW9mIHR5cGVcbiAgICAgICAgKTtcbiAgICAgIGNvbXBhcmUgPSB7XG4gICAgICAgICQkdHlwZW9mOiBSRUFDVF9NRU1PX1RZUEUsXG4gICAgICAgIHR5cGU6IHR5cGUsXG4gICAgICAgIGNvbXBhcmU6IHZvaWQgMCA9PT0gY29tcGFyZSA/IG51bGwgOiBjb21wYXJlXG4gICAgICB9O1xuICAgICAgdmFyIG93bk5hbWU7XG4gICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoY29tcGFyZSwgXCJkaXNwbGF5TmFtZVwiLCB7XG4gICAgICAgIGVudW1lcmFibGU6ICExLFxuICAgICAgICBjb25maWd1cmFibGU6ICEwLFxuICAgICAgICBnZXQ6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICByZXR1cm4gb3duTmFtZTtcbiAgICAgICAgfSxcbiAgICAgICAgc2V0OiBmdW5jdGlvbiAobmFtZSkge1xuICAgICAgICAgIG93bk5hbWUgPSBuYW1lO1xuICAgICAgICAgIHR5cGUubmFtZSB8fFxuICAgICAgICAgICAgdHlwZS5kaXNwbGF5TmFtZSB8fFxuICAgICAgICAgICAgKE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0eXBlLCBcIm5hbWVcIiwgeyB2YWx1ZTogbmFtZSB9KSxcbiAgICAgICAgICAgICh0eXBlLmRpc3BsYXlOYW1lID0gbmFtZSkpO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICAgIHJldHVybiBjb21wYXJlO1xuICAgIH07XG4gICAgZXhwb3J0cy5zdGFydFRyYW5zaXRpb24gPSBmdW5jdGlvbiAoc2NvcGUpIHtcbiAgICAgIHZhciBwcmV2VHJhbnNpdGlvbiA9IFJlYWN0U2hhcmVkSW50ZXJuYWxzLlQsXG4gICAgICAgIGN1cnJlbnRUcmFuc2l0aW9uID0ge307XG4gICAgICBSZWFjdFNoYXJlZEludGVybmFscy5UID0gY3VycmVudFRyYW5zaXRpb247XG4gICAgICBjdXJyZW50VHJhbnNpdGlvbi5fdXBkYXRlZEZpYmVycyA9IG5ldyBTZXQoKTtcbiAgICAgIHRyeSB7XG4gICAgICAgIHZhciByZXR1cm5WYWx1ZSA9IHNjb3BlKCksXG4gICAgICAgICAgb25TdGFydFRyYW5zaXRpb25GaW5pc2ggPSBSZWFjdFNoYXJlZEludGVybmFscy5TO1xuICAgICAgICBudWxsICE9PSBvblN0YXJ0VHJhbnNpdGlvbkZpbmlzaCAmJlxuICAgICAgICAgIG9uU3RhcnRUcmFuc2l0aW9uRmluaXNoKGN1cnJlbnRUcmFuc2l0aW9uLCByZXR1cm5WYWx1ZSk7XG4gICAgICAgIFwib2JqZWN0XCIgPT09IHR5cGVvZiByZXR1cm5WYWx1ZSAmJlxuICAgICAgICAgIG51bGwgIT09IHJldHVyblZhbHVlICYmXG4gICAgICAgICAgXCJmdW5jdGlvblwiID09PSB0eXBlb2YgcmV0dXJuVmFsdWUudGhlbiAmJlxuICAgICAgICAgIHJldHVyblZhbHVlLnRoZW4obm9vcCwgcmVwb3J0R2xvYmFsRXJyb3IpO1xuICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgcmVwb3J0R2xvYmFsRXJyb3IoZXJyb3IpO1xuICAgICAgfSBmaW5hbGx5IHtcbiAgICAgICAgbnVsbCA9PT0gcHJldlRyYW5zaXRpb24gJiZcbiAgICAgICAgICBjdXJyZW50VHJhbnNpdGlvbi5fdXBkYXRlZEZpYmVycyAmJlxuICAgICAgICAgICgoc2NvcGUgPSBjdXJyZW50VHJhbnNpdGlvbi5fdXBkYXRlZEZpYmVycy5zaXplKSxcbiAgICAgICAgICBjdXJyZW50VHJhbnNpdGlvbi5fdXBkYXRlZEZpYmVycy5jbGVhcigpLFxuICAgICAgICAgIDEwIDwgc2NvcGUgJiZcbiAgICAgICAgICAgIGNvbnNvbGUud2FybihcbiAgICAgICAgICAgICAgXCJEZXRlY3RlZCBhIGxhcmdlIG51bWJlciBvZiB1cGRhdGVzIGluc2lkZSBzdGFydFRyYW5zaXRpb24uIElmIHRoaXMgaXMgZHVlIHRvIGEgc3Vic2NyaXB0aW9uIHBsZWFzZSByZS13cml0ZSBpdCB0byB1c2UgUmVhY3QgcHJvdmlkZWQgaG9va3MuIE90aGVyd2lzZSBjb25jdXJyZW50IG1vZGUgZ3VhcmFudGVlcyBhcmUgb2ZmIHRoZSB0YWJsZS5cIlxuICAgICAgICAgICAgKSksXG4gICAgICAgICAgKFJlYWN0U2hhcmVkSW50ZXJuYWxzLlQgPSBwcmV2VHJhbnNpdGlvbik7XG4gICAgICB9XG4gICAgfTtcbiAgICBleHBvcnRzLnVuc3RhYmxlX3VzZUNhY2hlUmVmcmVzaCA9IGZ1bmN0aW9uICgpIHtcbiAgICAgIHJldHVybiByZXNvbHZlRGlzcGF0Y2hlcigpLnVzZUNhY2hlUmVmcmVzaCgpO1xuICAgIH07XG4gICAgZXhwb3J0cy51c2UgPSBmdW5jdGlvbiAodXNhYmxlKSB7XG4gICAgICByZXR1cm4gcmVzb2x2ZURpc3BhdGNoZXIoKS51c2UodXNhYmxlKTtcbiAgICB9O1xuICAgIGV4cG9ydHMudXNlQWN0aW9uU3RhdGUgPSBmdW5jdGlvbiAoYWN0aW9uLCBpbml0aWFsU3RhdGUsIHBlcm1hbGluaykge1xuICAgICAgcmV0dXJuIHJlc29sdmVEaXNwYXRjaGVyKCkudXNlQWN0aW9uU3RhdGUoXG4gICAgICAgIGFjdGlvbixcbiAgICAgICAgaW5pdGlhbFN0YXRlLFxuICAgICAgICBwZXJtYWxpbmtcbiAgICAgICk7XG4gICAgfTtcbiAgICBleHBvcnRzLnVzZUNhbGxiYWNrID0gZnVuY3Rpb24gKGNhbGxiYWNrLCBkZXBzKSB7XG4gICAgICByZXR1cm4gcmVzb2x2ZURpc3BhdGNoZXIoKS51c2VDYWxsYmFjayhjYWxsYmFjaywgZGVwcyk7XG4gICAgfTtcbiAgICBleHBvcnRzLnVzZUNvbnRleHQgPSBmdW5jdGlvbiAoQ29udGV4dCkge1xuICAgICAgdmFyIGRpc3BhdGNoZXIgPSByZXNvbHZlRGlzcGF0Y2hlcigpO1xuICAgICAgQ29udGV4dC4kJHR5cGVvZiA9PT0gUkVBQ1RfQ09OU1VNRVJfVFlQRSAmJlxuICAgICAgICBjb25zb2xlLmVycm9yKFxuICAgICAgICAgIFwiQ2FsbGluZyB1c2VDb250ZXh0KENvbnRleHQuQ29uc3VtZXIpIGlzIG5vdCBzdXBwb3J0ZWQgYW5kIHdpbGwgY2F1c2UgYnVncy4gRGlkIHlvdSBtZWFuIHRvIGNhbGwgdXNlQ29udGV4dChDb250ZXh0KSBpbnN0ZWFkP1wiXG4gICAgICAgICk7XG4gICAgICByZXR1cm4gZGlzcGF0Y2hlci51c2VDb250ZXh0KENvbnRleHQpO1xuICAgIH07XG4gICAgZXhwb3J0cy51c2VEZWJ1Z1ZhbHVlID0gZnVuY3Rpb24gKHZhbHVlLCBmb3JtYXR0ZXJGbikge1xuICAgICAgcmV0dXJuIHJlc29sdmVEaXNwYXRjaGVyKCkudXNlRGVidWdWYWx1ZSh2YWx1ZSwgZm9ybWF0dGVyRm4pO1xuICAgIH07XG4gICAgZXhwb3J0cy51c2VEZWZlcnJlZFZhbHVlID0gZnVuY3Rpb24gKHZhbHVlLCBpbml0aWFsVmFsdWUpIHtcbiAgICAgIHJldHVybiByZXNvbHZlRGlzcGF0Y2hlcigpLnVzZURlZmVycmVkVmFsdWUodmFsdWUsIGluaXRpYWxWYWx1ZSk7XG4gICAgfTtcbiAgICBleHBvcnRzLnVzZUVmZmVjdCA9IGZ1bmN0aW9uIChjcmVhdGUsIGNyZWF0ZURlcHMsIHVwZGF0ZSkge1xuICAgICAgbnVsbCA9PSBjcmVhdGUgJiZcbiAgICAgICAgY29uc29sZS53YXJuKFxuICAgICAgICAgIFwiUmVhY3QgSG9vayB1c2VFZmZlY3QgcmVxdWlyZXMgYW4gZWZmZWN0IGNhbGxiYWNrLiBEaWQgeW91IGZvcmdldCB0byBwYXNzIGEgY2FsbGJhY2sgdG8gdGhlIGhvb2s/XCJcbiAgICAgICAgKTtcbiAgICAgIHZhciBkaXNwYXRjaGVyID0gcmVzb2x2ZURpc3BhdGNoZXIoKTtcbiAgICAgIGlmIChcImZ1bmN0aW9uXCIgPT09IHR5cGVvZiB1cGRhdGUpXG4gICAgICAgIHRocm93IEVycm9yKFxuICAgICAgICAgIFwidXNlRWZmZWN0IENSVUQgb3ZlcmxvYWQgaXMgbm90IGVuYWJsZWQgaW4gdGhpcyBidWlsZCBvZiBSZWFjdC5cIlxuICAgICAgICApO1xuICAgICAgcmV0dXJuIGRpc3BhdGNoZXIudXNlRWZmZWN0KGNyZWF0ZSwgY3JlYXRlRGVwcyk7XG4gICAgfTtcbiAgICBleHBvcnRzLnVzZUlkID0gZnVuY3Rpb24gKCkge1xuICAgICAgcmV0dXJuIHJlc29sdmVEaXNwYXRjaGVyKCkudXNlSWQoKTtcbiAgICB9O1xuICAgIGV4cG9ydHMudXNlSW1wZXJhdGl2ZUhhbmRsZSA9IGZ1bmN0aW9uIChyZWYsIGNyZWF0ZSwgZGVwcykge1xuICAgICAgcmV0dXJuIHJlc29sdmVEaXNwYXRjaGVyKCkudXNlSW1wZXJhdGl2ZUhhbmRsZShyZWYsIGNyZWF0ZSwgZGVwcyk7XG4gICAgfTtcbiAgICBleHBvcnRzLnVzZUluc2VydGlvbkVmZmVjdCA9IGZ1bmN0aW9uIChjcmVhdGUsIGRlcHMpIHtcbiAgICAgIG51bGwgPT0gY3JlYXRlICYmXG4gICAgICAgIGNvbnNvbGUud2FybihcbiAgICAgICAgICBcIlJlYWN0IEhvb2sgdXNlSW5zZXJ0aW9uRWZmZWN0IHJlcXVpcmVzIGFuIGVmZmVjdCBjYWxsYmFjay4gRGlkIHlvdSBmb3JnZXQgdG8gcGFzcyBhIGNhbGxiYWNrIHRvIHRoZSBob29rP1wiXG4gICAgICAgICk7XG4gICAgICByZXR1cm4gcmVzb2x2ZURpc3BhdGNoZXIoKS51c2VJbnNlcnRpb25FZmZlY3QoY3JlYXRlLCBkZXBzKTtcbiAgICB9O1xuICAgIGV4cG9ydHMudXNlTGF5b3V0RWZmZWN0ID0gZnVuY3Rpb24gKGNyZWF0ZSwgZGVwcykge1xuICAgICAgbnVsbCA9PSBjcmVhdGUgJiZcbiAgICAgICAgY29uc29sZS53YXJuKFxuICAgICAgICAgIFwiUmVhY3QgSG9vayB1c2VMYXlvdXRFZmZlY3QgcmVxdWlyZXMgYW4gZWZmZWN0IGNhbGxiYWNrLiBEaWQgeW91IGZvcmdldCB0byBwYXNzIGEgY2FsbGJhY2sgdG8gdGhlIGhvb2s/XCJcbiAgICAgICAgKTtcbiAgICAgIHJldHVybiByZXNvbHZlRGlzcGF0Y2hlcigpLnVzZUxheW91dEVmZmVjdChjcmVhdGUsIGRlcHMpO1xuICAgIH07XG4gICAgZXhwb3J0cy51c2VNZW1vID0gZnVuY3Rpb24gKGNyZWF0ZSwgZGVwcykge1xuICAgICAgcmV0dXJuIHJlc29sdmVEaXNwYXRjaGVyKCkudXNlTWVtbyhjcmVhdGUsIGRlcHMpO1xuICAgIH07XG4gICAgZXhwb3J0cy51c2VPcHRpbWlzdGljID0gZnVuY3Rpb24gKHBhc3N0aHJvdWdoLCByZWR1Y2VyKSB7XG4gICAgICByZXR1cm4gcmVzb2x2ZURpc3BhdGNoZXIoKS51c2VPcHRpbWlzdGljKHBhc3N0aHJvdWdoLCByZWR1Y2VyKTtcbiAgICB9O1xuICAgIGV4cG9ydHMudXNlUmVkdWNlciA9IGZ1bmN0aW9uIChyZWR1Y2VyLCBpbml0aWFsQXJnLCBpbml0KSB7XG4gICAgICByZXR1cm4gcmVzb2x2ZURpc3BhdGNoZXIoKS51c2VSZWR1Y2VyKHJlZHVjZXIsIGluaXRpYWxBcmcsIGluaXQpO1xuICAgIH07XG4gICAgZXhwb3J0cy51c2VSZWYgPSBmdW5jdGlvbiAoaW5pdGlhbFZhbHVlKSB7XG4gICAgICByZXR1cm4gcmVzb2x2ZURpc3BhdGNoZXIoKS51c2VSZWYoaW5pdGlhbFZhbHVlKTtcbiAgICB9O1xuICAgIGV4cG9ydHMudXNlU3RhdGUgPSBmdW5jdGlvbiAoaW5pdGlhbFN0YXRlKSB7XG4gICAgICByZXR1cm4gcmVzb2x2ZURpc3BhdGNoZXIoKS51c2VTdGF0ZShpbml0aWFsU3RhdGUpO1xuICAgIH07XG4gICAgZXhwb3J0cy51c2VTeW5jRXh0ZXJuYWxTdG9yZSA9IGZ1bmN0aW9uIChcbiAgICAgIHN1YnNjcmliZSxcbiAgICAgIGdldFNuYXBzaG90LFxuICAgICAgZ2V0U2VydmVyU25hcHNob3RcbiAgICApIHtcbiAgICAgIHJldHVybiByZXNvbHZlRGlzcGF0Y2hlcigpLnVzZVN5bmNFeHRlcm5hbFN0b3JlKFxuICAgICAgICBzdWJzY3JpYmUsXG4gICAgICAgIGdldFNuYXBzaG90LFxuICAgICAgICBnZXRTZXJ2ZXJTbmFwc2hvdFxuICAgICAgKTtcbiAgICB9O1xuICAgIGV4cG9ydHMudXNlVHJhbnNpdGlvbiA9IGZ1bmN0aW9uICgpIHtcbiAgICAgIHJldHVybiByZXNvbHZlRGlzcGF0Y2hlcigpLnVzZVRyYW5zaXRpb24oKTtcbiAgICB9O1xuICAgIGV4cG9ydHMudmVyc2lvbiA9IFwiMTkuMS4wXCI7XG4gICAgXCJ1bmRlZmluZWRcIiAhPT0gdHlwZW9mIF9fUkVBQ1RfREVWVE9PTFNfR0xPQkFMX0hPT0tfXyAmJlxuICAgICAgXCJmdW5jdGlvblwiID09PVxuICAgICAgICB0eXBlb2YgX19SRUFDVF9ERVZUT09MU19HTE9CQUxfSE9PS19fLnJlZ2lzdGVySW50ZXJuYWxNb2R1bGVTdG9wICYmXG4gICAgICBfX1JFQUNUX0RFVlRPT0xTX0dMT0JBTF9IT09LX18ucmVnaXN0ZXJJbnRlcm5hbE1vZHVsZVN0b3AoRXJyb3IoKSk7XG4gIH0pKCk7XG4iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(pages-dir-browser)/./node_modules/react/cjs/react.development.js\n")); - -/***/ }), - -/***/ "(pages-dir-browser)/./node_modules/react/index.js": -/*!*************************************!*\ - !*** ./node_modules/react/index.js ***! - \*************************************/ -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { - -"use strict"; -eval(__webpack_require__.ts("\n\nif (false) {} else {\n module.exports = __webpack_require__(/*! ./cjs/react.development.js */ \"(pages-dir-browser)/./node_modules/react/cjs/react.development.js\");\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9yZWFjdC9pbmRleC5qcyIsIm1hcHBpbmdzIjoiQUFBYTs7QUFFYixJQUFJLEtBQXFDLEVBQUUsRUFFMUMsQ0FBQztBQUNGLEVBQUUsMklBQXNEO0FBQ3hEIiwic291cmNlcyI6WyJEOlxcZG9uZ3l1bi1wcm9qZWN0c1xcdHdvXFxub2RlX21vZHVsZXNcXHJlYWN0XFxpbmRleC5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyIndXNlIHN0cmljdCc7XG5cbmlmIChwcm9jZXNzLmVudi5OT0RFX0VOViA9PT0gJ3Byb2R1Y3Rpb24nKSB7XG4gIG1vZHVsZS5leHBvcnRzID0gcmVxdWlyZSgnLi9janMvcmVhY3QucHJvZHVjdGlvbi5qcycpO1xufSBlbHNlIHtcbiAgbW9kdWxlLmV4cG9ydHMgPSByZXF1aXJlKCcuL2Nqcy9yZWFjdC5kZXZlbG9wbWVudC5qcycpO1xufVxuIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(pages-dir-browser)/./node_modules/react/index.js\n")); - -/***/ }), - -/***/ "(pages-dir-browser)/./node_modules/react/jsx-runtime.js": -/*!*******************************************!*\ - !*** ./node_modules/react/jsx-runtime.js ***! - \*******************************************/ -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { - -"use strict"; -eval(__webpack_require__.ts("\n\nif (false) {} else {\n module.exports = __webpack_require__(/*! ./cjs/react-jsx-runtime.development.js */ \"(pages-dir-browser)/./node_modules/react/cjs/react-jsx-runtime.development.js\");\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9yZWFjdC9qc3gtcnVudGltZS5qcyIsIm1hcHBpbmdzIjoiQUFBYTs7QUFFYixJQUFJLEtBQXFDLEVBQUUsRUFFMUMsQ0FBQztBQUNGLEVBQUUsbUtBQWtFO0FBQ3BFIiwic291cmNlcyI6WyJEOlxcZG9uZ3l1bi1wcm9qZWN0c1xcdHdvXFxub2RlX21vZHVsZXNcXHJlYWN0XFxqc3gtcnVudGltZS5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyIndXNlIHN0cmljdCc7XG5cbmlmIChwcm9jZXNzLmVudi5OT0RFX0VOViA9PT0gJ3Byb2R1Y3Rpb24nKSB7XG4gIG1vZHVsZS5leHBvcnRzID0gcmVxdWlyZSgnLi9janMvcmVhY3QtanN4LXJ1bnRpbWUucHJvZHVjdGlvbi5qcycpO1xufSBlbHNlIHtcbiAgbW9kdWxlLmV4cG9ydHMgPSByZXF1aXJlKCcuL2Nqcy9yZWFjdC1qc3gtcnVudGltZS5kZXZlbG9wbWVudC5qcycpO1xufVxuIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(pages-dir-browser)/./node_modules/react/jsx-runtime.js\n")); - -/***/ }), - -/***/ "(pages-dir-browser)/./node_modules/scheduler/cjs/scheduler.development.js": -/*!*************************************************************!*\ - !*** ./node_modules/scheduler/cjs/scheduler.development.js ***! - \*************************************************************/ -/***/ ((__unused_webpack_module, exports, __webpack_require__) => { - -"use strict"; -eval(__webpack_require__.ts("/**\n * @license React\n * scheduler.development.js\n *\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n\n true &&\n (function () {\n function performWorkUntilDeadline() {\n needsPaint = !1;\n if (isMessageLoopRunning) {\n var currentTime = exports.unstable_now();\n startTime = currentTime;\n var hasMoreWork = !0;\n try {\n a: {\n isHostCallbackScheduled = !1;\n isHostTimeoutScheduled &&\n ((isHostTimeoutScheduled = !1),\n localClearTimeout(taskTimeoutID),\n (taskTimeoutID = -1));\n isPerformingWork = !0;\n var previousPriorityLevel = currentPriorityLevel;\n try {\n b: {\n advanceTimers(currentTime);\n for (\n currentTask = peek(taskQueue);\n null !== currentTask &&\n !(\n currentTask.expirationTime > currentTime &&\n shouldYieldToHost()\n );\n\n ) {\n var callback = currentTask.callback;\n if (\"function\" === typeof callback) {\n currentTask.callback = null;\n currentPriorityLevel = currentTask.priorityLevel;\n var continuationCallback = callback(\n currentTask.expirationTime <= currentTime\n );\n currentTime = exports.unstable_now();\n if (\"function\" === typeof continuationCallback) {\n currentTask.callback = continuationCallback;\n advanceTimers(currentTime);\n hasMoreWork = !0;\n break b;\n }\n currentTask === peek(taskQueue) && pop(taskQueue);\n advanceTimers(currentTime);\n } else pop(taskQueue);\n currentTask = peek(taskQueue);\n }\n if (null !== currentTask) hasMoreWork = !0;\n else {\n var firstTimer = peek(timerQueue);\n null !== firstTimer &&\n requestHostTimeout(\n handleTimeout,\n firstTimer.startTime - currentTime\n );\n hasMoreWork = !1;\n }\n }\n break a;\n } finally {\n (currentTask = null),\n (currentPriorityLevel = previousPriorityLevel),\n (isPerformingWork = !1);\n }\n hasMoreWork = void 0;\n }\n } finally {\n hasMoreWork\n ? schedulePerformWorkUntilDeadline()\n : (isMessageLoopRunning = !1);\n }\n }\n }\n function push(heap, node) {\n var index = heap.length;\n heap.push(node);\n a: for (; 0 < index; ) {\n var parentIndex = (index - 1) >>> 1,\n parent = heap[parentIndex];\n if (0 < compare(parent, node))\n (heap[parentIndex] = node),\n (heap[index] = parent),\n (index = parentIndex);\n else break a;\n }\n }\n function peek(heap) {\n return 0 === heap.length ? null : heap[0];\n }\n function pop(heap) {\n if (0 === heap.length) return null;\n var first = heap[0],\n last = heap.pop();\n if (last !== first) {\n heap[0] = last;\n a: for (\n var index = 0, length = heap.length, halfLength = length >>> 1;\n index < halfLength;\n\n ) {\n var leftIndex = 2 * (index + 1) - 1,\n left = heap[leftIndex],\n rightIndex = leftIndex + 1,\n right = heap[rightIndex];\n if (0 > compare(left, last))\n rightIndex < length && 0 > compare(right, left)\n ? ((heap[index] = right),\n (heap[rightIndex] = last),\n (index = rightIndex))\n : ((heap[index] = left),\n (heap[leftIndex] = last),\n (index = leftIndex));\n else if (rightIndex < length && 0 > compare(right, last))\n (heap[index] = right),\n (heap[rightIndex] = last),\n (index = rightIndex);\n else break a;\n }\n }\n return first;\n }\n function compare(a, b) {\n var diff = a.sortIndex - b.sortIndex;\n return 0 !== diff ? diff : a.id - b.id;\n }\n function advanceTimers(currentTime) {\n for (var timer = peek(timerQueue); null !== timer; ) {\n if (null === timer.callback) pop(timerQueue);\n else if (timer.startTime <= currentTime)\n pop(timerQueue),\n (timer.sortIndex = timer.expirationTime),\n push(taskQueue, timer);\n else break;\n timer = peek(timerQueue);\n }\n }\n function handleTimeout(currentTime) {\n isHostTimeoutScheduled = !1;\n advanceTimers(currentTime);\n if (!isHostCallbackScheduled)\n if (null !== peek(taskQueue))\n (isHostCallbackScheduled = !0),\n isMessageLoopRunning ||\n ((isMessageLoopRunning = !0), schedulePerformWorkUntilDeadline());\n else {\n var firstTimer = peek(timerQueue);\n null !== firstTimer &&\n requestHostTimeout(\n handleTimeout,\n firstTimer.startTime - currentTime\n );\n }\n }\n function shouldYieldToHost() {\n return needsPaint\n ? !0\n : exports.unstable_now() - startTime < frameInterval\n ? !1\n : !0;\n }\n function requestHostTimeout(callback, ms) {\n taskTimeoutID = localSetTimeout(function () {\n callback(exports.unstable_now());\n }, ms);\n }\n \"undefined\" !== typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ &&\n \"function\" ===\n typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStart &&\n __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStart(Error());\n exports.unstable_now = void 0;\n if (\n \"object\" === typeof performance &&\n \"function\" === typeof performance.now\n ) {\n var localPerformance = performance;\n exports.unstable_now = function () {\n return localPerformance.now();\n };\n } else {\n var localDate = Date,\n initialTime = localDate.now();\n exports.unstable_now = function () {\n return localDate.now() - initialTime;\n };\n }\n var taskQueue = [],\n timerQueue = [],\n taskIdCounter = 1,\n currentTask = null,\n currentPriorityLevel = 3,\n isPerformingWork = !1,\n isHostCallbackScheduled = !1,\n isHostTimeoutScheduled = !1,\n needsPaint = !1,\n localSetTimeout = \"function\" === typeof setTimeout ? setTimeout : null,\n localClearTimeout =\n \"function\" === typeof clearTimeout ? clearTimeout : null,\n localSetImmediate =\n \"undefined\" !== typeof setImmediate ? setImmediate : null,\n isMessageLoopRunning = !1,\n taskTimeoutID = -1,\n frameInterval = 5,\n startTime = -1;\n if (\"function\" === typeof localSetImmediate)\n var schedulePerformWorkUntilDeadline = function () {\n localSetImmediate(performWorkUntilDeadline);\n };\n else if (\"undefined\" !== typeof MessageChannel) {\n var channel = new MessageChannel(),\n port = channel.port2;\n channel.port1.onmessage = performWorkUntilDeadline;\n schedulePerformWorkUntilDeadline = function () {\n port.postMessage(null);\n };\n } else\n schedulePerformWorkUntilDeadline = function () {\n localSetTimeout(performWorkUntilDeadline, 0);\n };\n exports.unstable_IdlePriority = 5;\n exports.unstable_ImmediatePriority = 1;\n exports.unstable_LowPriority = 4;\n exports.unstable_NormalPriority = 3;\n exports.unstable_Profiling = null;\n exports.unstable_UserBlockingPriority = 2;\n exports.unstable_cancelCallback = function (task) {\n task.callback = null;\n };\n exports.unstable_forceFrameRate = function (fps) {\n 0 > fps || 125 < fps\n ? console.error(\n \"forceFrameRate takes a positive int between 0 and 125, forcing frame rates higher than 125 fps is not supported\"\n )\n : (frameInterval = 0 < fps ? Math.floor(1e3 / fps) : 5);\n };\n exports.unstable_getCurrentPriorityLevel = function () {\n return currentPriorityLevel;\n };\n exports.unstable_next = function (eventHandler) {\n switch (currentPriorityLevel) {\n case 1:\n case 2:\n case 3:\n var priorityLevel = 3;\n break;\n default:\n priorityLevel = currentPriorityLevel;\n }\n var previousPriorityLevel = currentPriorityLevel;\n currentPriorityLevel = priorityLevel;\n try {\n return eventHandler();\n } finally {\n currentPriorityLevel = previousPriorityLevel;\n }\n };\n exports.unstable_requestPaint = function () {\n needsPaint = !0;\n };\n exports.unstable_runWithPriority = function (priorityLevel, eventHandler) {\n switch (priorityLevel) {\n case 1:\n case 2:\n case 3:\n case 4:\n case 5:\n break;\n default:\n priorityLevel = 3;\n }\n var previousPriorityLevel = currentPriorityLevel;\n currentPriorityLevel = priorityLevel;\n try {\n return eventHandler();\n } finally {\n currentPriorityLevel = previousPriorityLevel;\n }\n };\n exports.unstable_scheduleCallback = function (\n priorityLevel,\n callback,\n options\n ) {\n var currentTime = exports.unstable_now();\n \"object\" === typeof options && null !== options\n ? ((options = options.delay),\n (options =\n \"number\" === typeof options && 0 < options\n ? currentTime + options\n : currentTime))\n : (options = currentTime);\n switch (priorityLevel) {\n case 1:\n var timeout = -1;\n break;\n case 2:\n timeout = 250;\n break;\n case 5:\n timeout = 1073741823;\n break;\n case 4:\n timeout = 1e4;\n break;\n default:\n timeout = 5e3;\n }\n timeout = options + timeout;\n priorityLevel = {\n id: taskIdCounter++,\n callback: callback,\n priorityLevel: priorityLevel,\n startTime: options,\n expirationTime: timeout,\n sortIndex: -1\n };\n options > currentTime\n ? ((priorityLevel.sortIndex = options),\n push(timerQueue, priorityLevel),\n null === peek(taskQueue) &&\n priorityLevel === peek(timerQueue) &&\n (isHostTimeoutScheduled\n ? (localClearTimeout(taskTimeoutID), (taskTimeoutID = -1))\n : (isHostTimeoutScheduled = !0),\n requestHostTimeout(handleTimeout, options - currentTime)))\n : ((priorityLevel.sortIndex = timeout),\n push(taskQueue, priorityLevel),\n isHostCallbackScheduled ||\n isPerformingWork ||\n ((isHostCallbackScheduled = !0),\n isMessageLoopRunning ||\n ((isMessageLoopRunning = !0),\n schedulePerformWorkUntilDeadline())));\n return priorityLevel;\n };\n exports.unstable_shouldYield = shouldYieldToHost;\n exports.unstable_wrapCallback = function (callback) {\n var parentPriorityLevel = currentPriorityLevel;\n return function () {\n var previousPriorityLevel = currentPriorityLevel;\n currentPriorityLevel = parentPriorityLevel;\n try {\n return callback.apply(this, arguments);\n } finally {\n currentPriorityLevel = previousPriorityLevel;\n }\n };\n };\n \"undefined\" !== typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ &&\n \"function\" ===\n typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop &&\n __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop(Error());\n })();\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9zY2hlZHVsZXIvY2pzL3NjaGVkdWxlci5kZXZlbG9wbWVudC5qcyIsIm1hcHBpbmdzIjoiQUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRWE7QUFDYixLQUFxQztBQUNyQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxvQkFBb0I7QUFDcEI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGNBQWM7QUFDZDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxVQUFVO0FBQ1Y7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsZ0JBQWdCLFdBQVc7QUFDM0I7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHlDQUF5QyxnQkFBZ0I7QUFDekQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxJQUFJLG9CQUFvQjtBQUN4QjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsTUFBTSxvQkFBb0I7QUFDMUI7QUFDQTtBQUNBLE1BQU07QUFDTjtBQUNBO0FBQ0EsTUFBTSxvQkFBb0I7QUFDMUI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE1BQU07QUFDTjtBQUNBO0FBQ0E7QUFDQSxJQUFJLDZCQUE2QjtBQUNqQyxJQUFJLGtDQUFrQztBQUN0QyxJQUFJLDRCQUE0QjtBQUNoQyxJQUFJLCtCQUErQjtBQUNuQyxJQUFJLDBCQUEwQjtBQUM5QixJQUFJLHFDQUFxQztBQUN6QyxJQUFJLCtCQUErQjtBQUNuQztBQUNBO0FBQ0EsSUFBSSwrQkFBK0I7QUFDbkM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsSUFBSSx3Q0FBd0M7QUFDNUM7QUFDQTtBQUNBLElBQUkscUJBQXFCO0FBQ3pCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsUUFBUTtBQUNSO0FBQ0E7QUFDQTtBQUNBLElBQUksNkJBQTZCO0FBQ2pDO0FBQ0E7QUFDQSxJQUFJLGdDQUFnQztBQUNwQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsUUFBUTtBQUNSO0FBQ0E7QUFDQTtBQUNBLElBQUksaUNBQWlDO0FBQ3JDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxJQUFJLDRCQUE0QjtBQUNoQyxJQUFJLDZCQUE2QjtBQUNqQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxVQUFVO0FBQ1Y7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEdBQUciLCJzb3VyY2VzIjpbIkQ6XFxkb25neXVuLXByb2plY3RzXFx0d29cXG5vZGVfbW9kdWxlc1xcc2NoZWR1bGVyXFxjanNcXHNjaGVkdWxlci5kZXZlbG9wbWVudC5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBsaWNlbnNlIFJlYWN0XG4gKiBzY2hlZHVsZXIuZGV2ZWxvcG1lbnQuanNcbiAqXG4gKiBDb3B5cmlnaHQgKGMpIE1ldGEgUGxhdGZvcm1zLCBJbmMuIGFuZCBhZmZpbGlhdGVzLlxuICpcbiAqIFRoaXMgc291cmNlIGNvZGUgaXMgbGljZW5zZWQgdW5kZXIgdGhlIE1JVCBsaWNlbnNlIGZvdW5kIGluIHRoZVxuICogTElDRU5TRSBmaWxlIGluIHRoZSByb290IGRpcmVjdG9yeSBvZiB0aGlzIHNvdXJjZSB0cmVlLlxuICovXG5cblwidXNlIHN0cmljdFwiO1xuXCJwcm9kdWN0aW9uXCIgIT09IHByb2Nlc3MuZW52Lk5PREVfRU5WICYmXG4gIChmdW5jdGlvbiAoKSB7XG4gICAgZnVuY3Rpb24gcGVyZm9ybVdvcmtVbnRpbERlYWRsaW5lKCkge1xuICAgICAgbmVlZHNQYWludCA9ICExO1xuICAgICAgaWYgKGlzTWVzc2FnZUxvb3BSdW5uaW5nKSB7XG4gICAgICAgIHZhciBjdXJyZW50VGltZSA9IGV4cG9ydHMudW5zdGFibGVfbm93KCk7XG4gICAgICAgIHN0YXJ0VGltZSA9IGN1cnJlbnRUaW1lO1xuICAgICAgICB2YXIgaGFzTW9yZVdvcmsgPSAhMDtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICBhOiB7XG4gICAgICAgICAgICBpc0hvc3RDYWxsYmFja1NjaGVkdWxlZCA9ICExO1xuICAgICAgICAgICAgaXNIb3N0VGltZW91dFNjaGVkdWxlZCAmJlxuICAgICAgICAgICAgICAoKGlzSG9zdFRpbWVvdXRTY2hlZHVsZWQgPSAhMSksXG4gICAgICAgICAgICAgIGxvY2FsQ2xlYXJUaW1lb3V0KHRhc2tUaW1lb3V0SUQpLFxuICAgICAgICAgICAgICAodGFza1RpbWVvdXRJRCA9IC0xKSk7XG4gICAgICAgICAgICBpc1BlcmZvcm1pbmdXb3JrID0gITA7XG4gICAgICAgICAgICB2YXIgcHJldmlvdXNQcmlvcml0eUxldmVsID0gY3VycmVudFByaW9yaXR5TGV2ZWw7XG4gICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICBiOiB7XG4gICAgICAgICAgICAgICAgYWR2YW5jZVRpbWVycyhjdXJyZW50VGltZSk7XG4gICAgICAgICAgICAgICAgZm9yIChcbiAgICAgICAgICAgICAgICAgIGN1cnJlbnRUYXNrID0gcGVlayh0YXNrUXVldWUpO1xuICAgICAgICAgICAgICAgICAgbnVsbCAhPT0gY3VycmVudFRhc2sgJiZcbiAgICAgICAgICAgICAgICAgICEoXG4gICAgICAgICAgICAgICAgICAgIGN1cnJlbnRUYXNrLmV4cGlyYXRpb25UaW1lID4gY3VycmVudFRpbWUgJiZcbiAgICAgICAgICAgICAgICAgICAgc2hvdWxkWWllbGRUb0hvc3QoKVxuICAgICAgICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICAgICAgdmFyIGNhbGxiYWNrID0gY3VycmVudFRhc2suY2FsbGJhY2s7XG4gICAgICAgICAgICAgICAgICBpZiAoXCJmdW5jdGlvblwiID09PSB0eXBlb2YgY2FsbGJhY2spIHtcbiAgICAgICAgICAgICAgICAgICAgY3VycmVudFRhc2suY2FsbGJhY2sgPSBudWxsO1xuICAgICAgICAgICAgICAgICAgICBjdXJyZW50UHJpb3JpdHlMZXZlbCA9IGN1cnJlbnRUYXNrLnByaW9yaXR5TGV2ZWw7XG4gICAgICAgICAgICAgICAgICAgIHZhciBjb250aW51YXRpb25DYWxsYmFjayA9IGNhbGxiYWNrKFxuICAgICAgICAgICAgICAgICAgICAgIGN1cnJlbnRUYXNrLmV4cGlyYXRpb25UaW1lIDw9IGN1cnJlbnRUaW1lXG4gICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgICAgIGN1cnJlbnRUaW1lID0gZXhwb3J0cy51bnN0YWJsZV9ub3coKTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKFwiZnVuY3Rpb25cIiA9PT0gdHlwZW9mIGNvbnRpbnVhdGlvbkNhbGxiYWNrKSB7XG4gICAgICAgICAgICAgICAgICAgICAgY3VycmVudFRhc2suY2FsbGJhY2sgPSBjb250aW51YXRpb25DYWxsYmFjaztcbiAgICAgICAgICAgICAgICAgICAgICBhZHZhbmNlVGltZXJzKGN1cnJlbnRUaW1lKTtcbiAgICAgICAgICAgICAgICAgICAgICBoYXNNb3JlV29yayA9ICEwO1xuICAgICAgICAgICAgICAgICAgICAgIGJyZWFrIGI7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgY3VycmVudFRhc2sgPT09IHBlZWsodGFza1F1ZXVlKSAmJiBwb3AodGFza1F1ZXVlKTtcbiAgICAgICAgICAgICAgICAgICAgYWR2YW5jZVRpbWVycyhjdXJyZW50VGltZSk7XG4gICAgICAgICAgICAgICAgICB9IGVsc2UgcG9wKHRhc2tRdWV1ZSk7XG4gICAgICAgICAgICAgICAgICBjdXJyZW50VGFzayA9IHBlZWsodGFza1F1ZXVlKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgaWYgKG51bGwgIT09IGN1cnJlbnRUYXNrKSBoYXNNb3JlV29yayA9ICEwO1xuICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgdmFyIGZpcnN0VGltZXIgPSBwZWVrKHRpbWVyUXVldWUpO1xuICAgICAgICAgICAgICAgICAgbnVsbCAhPT0gZmlyc3RUaW1lciAmJlxuICAgICAgICAgICAgICAgICAgICByZXF1ZXN0SG9zdFRpbWVvdXQoXG4gICAgICAgICAgICAgICAgICAgICAgaGFuZGxlVGltZW91dCxcbiAgICAgICAgICAgICAgICAgICAgICBmaXJzdFRpbWVyLnN0YXJ0VGltZSAtIGN1cnJlbnRUaW1lXG4gICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgICBoYXNNb3JlV29yayA9ICExO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICBicmVhayBhO1xuICAgICAgICAgICAgfSBmaW5hbGx5IHtcbiAgICAgICAgICAgICAgKGN1cnJlbnRUYXNrID0gbnVsbCksXG4gICAgICAgICAgICAgICAgKGN1cnJlbnRQcmlvcml0eUxldmVsID0gcHJldmlvdXNQcmlvcml0eUxldmVsKSxcbiAgICAgICAgICAgICAgICAoaXNQZXJmb3JtaW5nV29yayA9ICExKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGhhc01vcmVXb3JrID0gdm9pZCAwO1xuICAgICAgICAgIH1cbiAgICAgICAgfSBmaW5hbGx5IHtcbiAgICAgICAgICBoYXNNb3JlV29ya1xuICAgICAgICAgICAgPyBzY2hlZHVsZVBlcmZvcm1Xb3JrVW50aWxEZWFkbGluZSgpXG4gICAgICAgICAgICA6IChpc01lc3NhZ2VMb29wUnVubmluZyA9ICExKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgICBmdW5jdGlvbiBwdXNoKGhlYXAsIG5vZGUpIHtcbiAgICAgIHZhciBpbmRleCA9IGhlYXAubGVuZ3RoO1xuICAgICAgaGVhcC5wdXNoKG5vZGUpO1xuICAgICAgYTogZm9yICg7IDAgPCBpbmRleDsgKSB7XG4gICAgICAgIHZhciBwYXJlbnRJbmRleCA9IChpbmRleCAtIDEpID4+PiAxLFxuICAgICAgICAgIHBhcmVudCA9IGhlYXBbcGFyZW50SW5kZXhdO1xuICAgICAgICBpZiAoMCA8IGNvbXBhcmUocGFyZW50LCBub2RlKSlcbiAgICAgICAgICAoaGVhcFtwYXJlbnRJbmRleF0gPSBub2RlKSxcbiAgICAgICAgICAgIChoZWFwW2luZGV4XSA9IHBhcmVudCksXG4gICAgICAgICAgICAoaW5kZXggPSBwYXJlbnRJbmRleCk7XG4gICAgICAgIGVsc2UgYnJlYWsgYTtcbiAgICAgIH1cbiAgICB9XG4gICAgZnVuY3Rpb24gcGVlayhoZWFwKSB7XG4gICAgICByZXR1cm4gMCA9PT0gaGVhcC5sZW5ndGggPyBudWxsIDogaGVhcFswXTtcbiAgICB9XG4gICAgZnVuY3Rpb24gcG9wKGhlYXApIHtcbiAgICAgIGlmICgwID09PSBoZWFwLmxlbmd0aCkgcmV0dXJuIG51bGw7XG4gICAgICB2YXIgZmlyc3QgPSBoZWFwWzBdLFxuICAgICAgICBsYXN0ID0gaGVhcC5wb3AoKTtcbiAgICAgIGlmIChsYXN0ICE9PSBmaXJzdCkge1xuICAgICAgICBoZWFwWzBdID0gbGFzdDtcbiAgICAgICAgYTogZm9yIChcbiAgICAgICAgICB2YXIgaW5kZXggPSAwLCBsZW5ndGggPSBoZWFwLmxlbmd0aCwgaGFsZkxlbmd0aCA9IGxlbmd0aCA+Pj4gMTtcbiAgICAgICAgICBpbmRleCA8IGhhbGZMZW5ndGg7XG5cbiAgICAgICAgKSB7XG4gICAgICAgICAgdmFyIGxlZnRJbmRleCA9IDIgKiAoaW5kZXggKyAxKSAtIDEsXG4gICAgICAgICAgICBsZWZ0ID0gaGVhcFtsZWZ0SW5kZXhdLFxuICAgICAgICAgICAgcmlnaHRJbmRleCA9IGxlZnRJbmRleCArIDEsXG4gICAgICAgICAgICByaWdodCA9IGhlYXBbcmlnaHRJbmRleF07XG4gICAgICAgICAgaWYgKDAgPiBjb21wYXJlKGxlZnQsIGxhc3QpKVxuICAgICAgICAgICAgcmlnaHRJbmRleCA8IGxlbmd0aCAmJiAwID4gY29tcGFyZShyaWdodCwgbGVmdClcbiAgICAgICAgICAgICAgPyAoKGhlYXBbaW5kZXhdID0gcmlnaHQpLFxuICAgICAgICAgICAgICAgIChoZWFwW3JpZ2h0SW5kZXhdID0gbGFzdCksXG4gICAgICAgICAgICAgICAgKGluZGV4ID0gcmlnaHRJbmRleCkpXG4gICAgICAgICAgICAgIDogKChoZWFwW2luZGV4XSA9IGxlZnQpLFxuICAgICAgICAgICAgICAgIChoZWFwW2xlZnRJbmRleF0gPSBsYXN0KSxcbiAgICAgICAgICAgICAgICAoaW5kZXggPSBsZWZ0SW5kZXgpKTtcbiAgICAgICAgICBlbHNlIGlmIChyaWdodEluZGV4IDwgbGVuZ3RoICYmIDAgPiBjb21wYXJlKHJpZ2h0LCBsYXN0KSlcbiAgICAgICAgICAgIChoZWFwW2luZGV4XSA9IHJpZ2h0KSxcbiAgICAgICAgICAgICAgKGhlYXBbcmlnaHRJbmRleF0gPSBsYXN0KSxcbiAgICAgICAgICAgICAgKGluZGV4ID0gcmlnaHRJbmRleCk7XG4gICAgICAgICAgZWxzZSBicmVhayBhO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICByZXR1cm4gZmlyc3Q7XG4gICAgfVxuICAgIGZ1bmN0aW9uIGNvbXBhcmUoYSwgYikge1xuICAgICAgdmFyIGRpZmYgPSBhLnNvcnRJbmRleCAtIGIuc29ydEluZGV4O1xuICAgICAgcmV0dXJuIDAgIT09IGRpZmYgPyBkaWZmIDogYS5pZCAtIGIuaWQ7XG4gICAgfVxuICAgIGZ1bmN0aW9uIGFkdmFuY2VUaW1lcnMoY3VycmVudFRpbWUpIHtcbiAgICAgIGZvciAodmFyIHRpbWVyID0gcGVlayh0aW1lclF1ZXVlKTsgbnVsbCAhPT0gdGltZXI7ICkge1xuICAgICAgICBpZiAobnVsbCA9PT0gdGltZXIuY2FsbGJhY2spIHBvcCh0aW1lclF1ZXVlKTtcbiAgICAgICAgZWxzZSBpZiAodGltZXIuc3RhcnRUaW1lIDw9IGN1cnJlbnRUaW1lKVxuICAgICAgICAgIHBvcCh0aW1lclF1ZXVlKSxcbiAgICAgICAgICAgICh0aW1lci5zb3J0SW5kZXggPSB0aW1lci5leHBpcmF0aW9uVGltZSksXG4gICAgICAgICAgICBwdXNoKHRhc2tRdWV1ZSwgdGltZXIpO1xuICAgICAgICBlbHNlIGJyZWFrO1xuICAgICAgICB0aW1lciA9IHBlZWsodGltZXJRdWV1ZSk7XG4gICAgICB9XG4gICAgfVxuICAgIGZ1bmN0aW9uIGhhbmRsZVRpbWVvdXQoY3VycmVudFRpbWUpIHtcbiAgICAgIGlzSG9zdFRpbWVvdXRTY2hlZHVsZWQgPSAhMTtcbiAgICAgIGFkdmFuY2VUaW1lcnMoY3VycmVudFRpbWUpO1xuICAgICAgaWYgKCFpc0hvc3RDYWxsYmFja1NjaGVkdWxlZClcbiAgICAgICAgaWYgKG51bGwgIT09IHBlZWsodGFza1F1ZXVlKSlcbiAgICAgICAgICAoaXNIb3N0Q2FsbGJhY2tTY2hlZHVsZWQgPSAhMCksXG4gICAgICAgICAgICBpc01lc3NhZ2VMb29wUnVubmluZyB8fFxuICAgICAgICAgICAgICAoKGlzTWVzc2FnZUxvb3BSdW5uaW5nID0gITApLCBzY2hlZHVsZVBlcmZvcm1Xb3JrVW50aWxEZWFkbGluZSgpKTtcbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgdmFyIGZpcnN0VGltZXIgPSBwZWVrKHRpbWVyUXVldWUpO1xuICAgICAgICAgIG51bGwgIT09IGZpcnN0VGltZXIgJiZcbiAgICAgICAgICAgIHJlcXVlc3RIb3N0VGltZW91dChcbiAgICAgICAgICAgICAgaGFuZGxlVGltZW91dCxcbiAgICAgICAgICAgICAgZmlyc3RUaW1lci5zdGFydFRpbWUgLSBjdXJyZW50VGltZVxuICAgICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBmdW5jdGlvbiBzaG91bGRZaWVsZFRvSG9zdCgpIHtcbiAgICAgIHJldHVybiBuZWVkc1BhaW50XG4gICAgICAgID8gITBcbiAgICAgICAgOiBleHBvcnRzLnVuc3RhYmxlX25vdygpIC0gc3RhcnRUaW1lIDwgZnJhbWVJbnRlcnZhbFxuICAgICAgICAgID8gITFcbiAgICAgICAgICA6ICEwO1xuICAgIH1cbiAgICBmdW5jdGlvbiByZXF1ZXN0SG9zdFRpbWVvdXQoY2FsbGJhY2ssIG1zKSB7XG4gICAgICB0YXNrVGltZW91dElEID0gbG9jYWxTZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHtcbiAgICAgICAgY2FsbGJhY2soZXhwb3J0cy51bnN0YWJsZV9ub3coKSk7XG4gICAgICB9LCBtcyk7XG4gICAgfVxuICAgIFwidW5kZWZpbmVkXCIgIT09IHR5cGVvZiBfX1JFQUNUX0RFVlRPT0xTX0dMT0JBTF9IT09LX18gJiZcbiAgICAgIFwiZnVuY3Rpb25cIiA9PT1cbiAgICAgICAgdHlwZW9mIF9fUkVBQ1RfREVWVE9PTFNfR0xPQkFMX0hPT0tfXy5yZWdpc3RlckludGVybmFsTW9kdWxlU3RhcnQgJiZcbiAgICAgIF9fUkVBQ1RfREVWVE9PTFNfR0xPQkFMX0hPT0tfXy5yZWdpc3RlckludGVybmFsTW9kdWxlU3RhcnQoRXJyb3IoKSk7XG4gICAgZXhwb3J0cy51bnN0YWJsZV9ub3cgPSB2b2lkIDA7XG4gICAgaWYgKFxuICAgICAgXCJvYmplY3RcIiA9PT0gdHlwZW9mIHBlcmZvcm1hbmNlICYmXG4gICAgICBcImZ1bmN0aW9uXCIgPT09IHR5cGVvZiBwZXJmb3JtYW5jZS5ub3dcbiAgICApIHtcbiAgICAgIHZhciBsb2NhbFBlcmZvcm1hbmNlID0gcGVyZm9ybWFuY2U7XG4gICAgICBleHBvcnRzLnVuc3RhYmxlX25vdyA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgcmV0dXJuIGxvY2FsUGVyZm9ybWFuY2Uubm93KCk7XG4gICAgICB9O1xuICAgIH0gZWxzZSB7XG4gICAgICB2YXIgbG9jYWxEYXRlID0gRGF0ZSxcbiAgICAgICAgaW5pdGlhbFRpbWUgPSBsb2NhbERhdGUubm93KCk7XG4gICAgICBleHBvcnRzLnVuc3RhYmxlX25vdyA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgcmV0dXJuIGxvY2FsRGF0ZS5ub3coKSAtIGluaXRpYWxUaW1lO1xuICAgICAgfTtcbiAgICB9XG4gICAgdmFyIHRhc2tRdWV1ZSA9IFtdLFxuICAgICAgdGltZXJRdWV1ZSA9IFtdLFxuICAgICAgdGFza0lkQ291bnRlciA9IDEsXG4gICAgICBjdXJyZW50VGFzayA9IG51bGwsXG4gICAgICBjdXJyZW50UHJpb3JpdHlMZXZlbCA9IDMsXG4gICAgICBpc1BlcmZvcm1pbmdXb3JrID0gITEsXG4gICAgICBpc0hvc3RDYWxsYmFja1NjaGVkdWxlZCA9ICExLFxuICAgICAgaXNIb3N0VGltZW91dFNjaGVkdWxlZCA9ICExLFxuICAgICAgbmVlZHNQYWludCA9ICExLFxuICAgICAgbG9jYWxTZXRUaW1lb3V0ID0gXCJmdW5jdGlvblwiID09PSB0eXBlb2Ygc2V0VGltZW91dCA/IHNldFRpbWVvdXQgOiBudWxsLFxuICAgICAgbG9jYWxDbGVhclRpbWVvdXQgPVxuICAgICAgICBcImZ1bmN0aW9uXCIgPT09IHR5cGVvZiBjbGVhclRpbWVvdXQgPyBjbGVhclRpbWVvdXQgOiBudWxsLFxuICAgICAgbG9jYWxTZXRJbW1lZGlhdGUgPVxuICAgICAgICBcInVuZGVmaW5lZFwiICE9PSB0eXBlb2Ygc2V0SW1tZWRpYXRlID8gc2V0SW1tZWRpYXRlIDogbnVsbCxcbiAgICAgIGlzTWVzc2FnZUxvb3BSdW5uaW5nID0gITEsXG4gICAgICB0YXNrVGltZW91dElEID0gLTEsXG4gICAgICBmcmFtZUludGVydmFsID0gNSxcbiAgICAgIHN0YXJ0VGltZSA9IC0xO1xuICAgIGlmIChcImZ1bmN0aW9uXCIgPT09IHR5cGVvZiBsb2NhbFNldEltbWVkaWF0ZSlcbiAgICAgIHZhciBzY2hlZHVsZVBlcmZvcm1Xb3JrVW50aWxEZWFkbGluZSA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgbG9jYWxTZXRJbW1lZGlhdGUocGVyZm9ybVdvcmtVbnRpbERlYWRsaW5lKTtcbiAgICAgIH07XG4gICAgZWxzZSBpZiAoXCJ1bmRlZmluZWRcIiAhPT0gdHlwZW9mIE1lc3NhZ2VDaGFubmVsKSB7XG4gICAgICB2YXIgY2hhbm5lbCA9IG5ldyBNZXNzYWdlQ2hhbm5lbCgpLFxuICAgICAgICBwb3J0ID0gY2hhbm5lbC5wb3J0MjtcbiAgICAgIGNoYW5uZWwucG9ydDEub25tZXNzYWdlID0gcGVyZm9ybVdvcmtVbnRpbERlYWRsaW5lO1xuICAgICAgc2NoZWR1bGVQZXJmb3JtV29ya1VudGlsRGVhZGxpbmUgPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgIHBvcnQucG9zdE1lc3NhZ2UobnVsbCk7XG4gICAgICB9O1xuICAgIH0gZWxzZVxuICAgICAgc2NoZWR1bGVQZXJmb3JtV29ya1VudGlsRGVhZGxpbmUgPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgIGxvY2FsU2V0VGltZW91dChwZXJmb3JtV29ya1VudGlsRGVhZGxpbmUsIDApO1xuICAgICAgfTtcbiAgICBleHBvcnRzLnVuc3RhYmxlX0lkbGVQcmlvcml0eSA9IDU7XG4gICAgZXhwb3J0cy51bnN0YWJsZV9JbW1lZGlhdGVQcmlvcml0eSA9IDE7XG4gICAgZXhwb3J0cy51bnN0YWJsZV9Mb3dQcmlvcml0eSA9IDQ7XG4gICAgZXhwb3J0cy51bnN0YWJsZV9Ob3JtYWxQcmlvcml0eSA9IDM7XG4gICAgZXhwb3J0cy51bnN0YWJsZV9Qcm9maWxpbmcgPSBudWxsO1xuICAgIGV4cG9ydHMudW5zdGFibGVfVXNlckJsb2NraW5nUHJpb3JpdHkgPSAyO1xuICAgIGV4cG9ydHMudW5zdGFibGVfY2FuY2VsQ2FsbGJhY2sgPSBmdW5jdGlvbiAodGFzaykge1xuICAgICAgdGFzay5jYWxsYmFjayA9IG51bGw7XG4gICAgfTtcbiAgICBleHBvcnRzLnVuc3RhYmxlX2ZvcmNlRnJhbWVSYXRlID0gZnVuY3Rpb24gKGZwcykge1xuICAgICAgMCA+IGZwcyB8fCAxMjUgPCBmcHNcbiAgICAgICAgPyBjb25zb2xlLmVycm9yKFxuICAgICAgICAgICAgXCJmb3JjZUZyYW1lUmF0ZSB0YWtlcyBhIHBvc2l0aXZlIGludCBiZXR3ZWVuIDAgYW5kIDEyNSwgZm9yY2luZyBmcmFtZSByYXRlcyBoaWdoZXIgdGhhbiAxMjUgZnBzIGlzIG5vdCBzdXBwb3J0ZWRcIlxuICAgICAgICAgIClcbiAgICAgICAgOiAoZnJhbWVJbnRlcnZhbCA9IDAgPCBmcHMgPyBNYXRoLmZsb29yKDFlMyAvIGZwcykgOiA1KTtcbiAgICB9O1xuICAgIGV4cG9ydHMudW5zdGFibGVfZ2V0Q3VycmVudFByaW9yaXR5TGV2ZWwgPSBmdW5jdGlvbiAoKSB7XG4gICAgICByZXR1cm4gY3VycmVudFByaW9yaXR5TGV2ZWw7XG4gICAgfTtcbiAgICBleHBvcnRzLnVuc3RhYmxlX25leHQgPSBmdW5jdGlvbiAoZXZlbnRIYW5kbGVyKSB7XG4gICAgICBzd2l0Y2ggKGN1cnJlbnRQcmlvcml0eUxldmVsKSB7XG4gICAgICAgIGNhc2UgMTpcbiAgICAgICAgY2FzZSAyOlxuICAgICAgICBjYXNlIDM6XG4gICAgICAgICAgdmFyIHByaW9yaXR5TGV2ZWwgPSAzO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgIHByaW9yaXR5TGV2ZWwgPSBjdXJyZW50UHJpb3JpdHlMZXZlbDtcbiAgICAgIH1cbiAgICAgIHZhciBwcmV2aW91c1ByaW9yaXR5TGV2ZWwgPSBjdXJyZW50UHJpb3JpdHlMZXZlbDtcbiAgICAgIGN1cnJlbnRQcmlvcml0eUxldmVsID0gcHJpb3JpdHlMZXZlbDtcbiAgICAgIHRyeSB7XG4gICAgICAgIHJldHVybiBldmVudEhhbmRsZXIoKTtcbiAgICAgIH0gZmluYWxseSB7XG4gICAgICAgIGN1cnJlbnRQcmlvcml0eUxldmVsID0gcHJldmlvdXNQcmlvcml0eUxldmVsO1xuICAgICAgfVxuICAgIH07XG4gICAgZXhwb3J0cy51bnN0YWJsZV9yZXF1ZXN0UGFpbnQgPSBmdW5jdGlvbiAoKSB7XG4gICAgICBuZWVkc1BhaW50ID0gITA7XG4gICAgfTtcbiAgICBleHBvcnRzLnVuc3RhYmxlX3J1bldpdGhQcmlvcml0eSA9IGZ1bmN0aW9uIChwcmlvcml0eUxldmVsLCBldmVudEhhbmRsZXIpIHtcbiAgICAgIHN3aXRjaCAocHJpb3JpdHlMZXZlbCkge1xuICAgICAgICBjYXNlIDE6XG4gICAgICAgIGNhc2UgMjpcbiAgICAgICAgY2FzZSAzOlxuICAgICAgICBjYXNlIDQ6XG4gICAgICAgIGNhc2UgNTpcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICBwcmlvcml0eUxldmVsID0gMztcbiAgICAgIH1cbiAgICAgIHZhciBwcmV2aW91c1ByaW9yaXR5TGV2ZWwgPSBjdXJyZW50UHJpb3JpdHlMZXZlbDtcbiAgICAgIGN1cnJlbnRQcmlvcml0eUxldmVsID0gcHJpb3JpdHlMZXZlbDtcbiAgICAgIHRyeSB7XG4gICAgICAgIHJldHVybiBldmVudEhhbmRsZXIoKTtcbiAgICAgIH0gZmluYWxseSB7XG4gICAgICAgIGN1cnJlbnRQcmlvcml0eUxldmVsID0gcHJldmlvdXNQcmlvcml0eUxldmVsO1xuICAgICAgfVxuICAgIH07XG4gICAgZXhwb3J0cy51bnN0YWJsZV9zY2hlZHVsZUNhbGxiYWNrID0gZnVuY3Rpb24gKFxuICAgICAgcHJpb3JpdHlMZXZlbCxcbiAgICAgIGNhbGxiYWNrLFxuICAgICAgb3B0aW9uc1xuICAgICkge1xuICAgICAgdmFyIGN1cnJlbnRUaW1lID0gZXhwb3J0cy51bnN0YWJsZV9ub3coKTtcbiAgICAgIFwib2JqZWN0XCIgPT09IHR5cGVvZiBvcHRpb25zICYmIG51bGwgIT09IG9wdGlvbnNcbiAgICAgICAgPyAoKG9wdGlvbnMgPSBvcHRpb25zLmRlbGF5KSxcbiAgICAgICAgICAob3B0aW9ucyA9XG4gICAgICAgICAgICBcIm51bWJlclwiID09PSB0eXBlb2Ygb3B0aW9ucyAmJiAwIDwgb3B0aW9uc1xuICAgICAgICAgICAgICA/IGN1cnJlbnRUaW1lICsgb3B0aW9uc1xuICAgICAgICAgICAgICA6IGN1cnJlbnRUaW1lKSlcbiAgICAgICAgOiAob3B0aW9ucyA9IGN1cnJlbnRUaW1lKTtcbiAgICAgIHN3aXRjaCAocHJpb3JpdHlMZXZlbCkge1xuICAgICAgICBjYXNlIDE6XG4gICAgICAgICAgdmFyIHRpbWVvdXQgPSAtMTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAyOlxuICAgICAgICAgIHRpbWVvdXQgPSAyNTA7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgNTpcbiAgICAgICAgICB0aW1lb3V0ID0gMTA3Mzc0MTgyMztcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSA0OlxuICAgICAgICAgIHRpbWVvdXQgPSAxZTQ7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgdGltZW91dCA9IDVlMztcbiAgICAgIH1cbiAgICAgIHRpbWVvdXQgPSBvcHRpb25zICsgdGltZW91dDtcbiAgICAgIHByaW9yaXR5TGV2ZWwgPSB7XG4gICAgICAgIGlkOiB0YXNrSWRDb3VudGVyKyssXG4gICAgICAgIGNhbGxiYWNrOiBjYWxsYmFjayxcbiAgICAgICAgcHJpb3JpdHlMZXZlbDogcHJpb3JpdHlMZXZlbCxcbiAgICAgICAgc3RhcnRUaW1lOiBvcHRpb25zLFxuICAgICAgICBleHBpcmF0aW9uVGltZTogdGltZW91dCxcbiAgICAgICAgc29ydEluZGV4OiAtMVxuICAgICAgfTtcbiAgICAgIG9wdGlvbnMgPiBjdXJyZW50VGltZVxuICAgICAgICA/ICgocHJpb3JpdHlMZXZlbC5zb3J0SW5kZXggPSBvcHRpb25zKSxcbiAgICAgICAgICBwdXNoKHRpbWVyUXVldWUsIHByaW9yaXR5TGV2ZWwpLFxuICAgICAgICAgIG51bGwgPT09IHBlZWsodGFza1F1ZXVlKSAmJlxuICAgICAgICAgICAgcHJpb3JpdHlMZXZlbCA9PT0gcGVlayh0aW1lclF1ZXVlKSAmJlxuICAgICAgICAgICAgKGlzSG9zdFRpbWVvdXRTY2hlZHVsZWRcbiAgICAgICAgICAgICAgPyAobG9jYWxDbGVhclRpbWVvdXQodGFza1RpbWVvdXRJRCksICh0YXNrVGltZW91dElEID0gLTEpKVxuICAgICAgICAgICAgICA6IChpc0hvc3RUaW1lb3V0U2NoZWR1bGVkID0gITApLFxuICAgICAgICAgICAgcmVxdWVzdEhvc3RUaW1lb3V0KGhhbmRsZVRpbWVvdXQsIG9wdGlvbnMgLSBjdXJyZW50VGltZSkpKVxuICAgICAgICA6ICgocHJpb3JpdHlMZXZlbC5zb3J0SW5kZXggPSB0aW1lb3V0KSxcbiAgICAgICAgICBwdXNoKHRhc2tRdWV1ZSwgcHJpb3JpdHlMZXZlbCksXG4gICAgICAgICAgaXNIb3N0Q2FsbGJhY2tTY2hlZHVsZWQgfHxcbiAgICAgICAgICAgIGlzUGVyZm9ybWluZ1dvcmsgfHxcbiAgICAgICAgICAgICgoaXNIb3N0Q2FsbGJhY2tTY2hlZHVsZWQgPSAhMCksXG4gICAgICAgICAgICBpc01lc3NhZ2VMb29wUnVubmluZyB8fFxuICAgICAgICAgICAgICAoKGlzTWVzc2FnZUxvb3BSdW5uaW5nID0gITApLFxuICAgICAgICAgICAgICBzY2hlZHVsZVBlcmZvcm1Xb3JrVW50aWxEZWFkbGluZSgpKSkpO1xuICAgICAgcmV0dXJuIHByaW9yaXR5TGV2ZWw7XG4gICAgfTtcbiAgICBleHBvcnRzLnVuc3RhYmxlX3Nob3VsZFlpZWxkID0gc2hvdWxkWWllbGRUb0hvc3Q7XG4gICAgZXhwb3J0cy51bnN0YWJsZV93cmFwQ2FsbGJhY2sgPSBmdW5jdGlvbiAoY2FsbGJhY2spIHtcbiAgICAgIHZhciBwYXJlbnRQcmlvcml0eUxldmVsID0gY3VycmVudFByaW9yaXR5TGV2ZWw7XG4gICAgICByZXR1cm4gZnVuY3Rpb24gKCkge1xuICAgICAgICB2YXIgcHJldmlvdXNQcmlvcml0eUxldmVsID0gY3VycmVudFByaW9yaXR5TGV2ZWw7XG4gICAgICAgIGN1cnJlbnRQcmlvcml0eUxldmVsID0gcGFyZW50UHJpb3JpdHlMZXZlbDtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICByZXR1cm4gY2FsbGJhY2suYXBwbHkodGhpcywgYXJndW1lbnRzKTtcbiAgICAgICAgfSBmaW5hbGx5IHtcbiAgICAgICAgICBjdXJyZW50UHJpb3JpdHlMZXZlbCA9IHByZXZpb3VzUHJpb3JpdHlMZXZlbDtcbiAgICAgICAgfVxuICAgICAgfTtcbiAgICB9O1xuICAgIFwidW5kZWZpbmVkXCIgIT09IHR5cGVvZiBfX1JFQUNUX0RFVlRPT0xTX0dMT0JBTF9IT09LX18gJiZcbiAgICAgIFwiZnVuY3Rpb25cIiA9PT1cbiAgICAgICAgdHlwZW9mIF9fUkVBQ1RfREVWVE9PTFNfR0xPQkFMX0hPT0tfXy5yZWdpc3RlckludGVybmFsTW9kdWxlU3RvcCAmJlxuICAgICAgX19SRUFDVF9ERVZUT09MU19HTE9CQUxfSE9PS19fLnJlZ2lzdGVySW50ZXJuYWxNb2R1bGVTdG9wKEVycm9yKCkpO1xuICB9KSgpO1xuIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(pages-dir-browser)/./node_modules/scheduler/cjs/scheduler.development.js\n")); - -/***/ }), - -/***/ "(pages-dir-browser)/./node_modules/scheduler/index.js": -/*!*****************************************!*\ - !*** ./node_modules/scheduler/index.js ***! - \*****************************************/ -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { - -"use strict"; -eval(__webpack_require__.ts("\n\nif (false) {} else {\n module.exports = __webpack_require__(/*! ./cjs/scheduler.development.js */ \"(pages-dir-browser)/./node_modules/scheduler/cjs/scheduler.development.js\");\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9zY2hlZHVsZXIvaW5kZXguanMiLCJtYXBwaW5ncyI6IkFBQWE7O0FBRWIsSUFBSSxLQUFxQyxFQUFFLEVBRTFDLENBQUM7QUFDRixFQUFFLHVKQUEwRDtBQUM1RCIsInNvdXJjZXMiOlsiRDpcXGRvbmd5dW4tcHJvamVjdHNcXHR3b1xcbm9kZV9tb2R1bGVzXFxzY2hlZHVsZXJcXGluZGV4LmpzIl0sInNvdXJjZXNDb250ZW50IjpbIid1c2Ugc3RyaWN0JztcblxuaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WID09PSAncHJvZHVjdGlvbicpIHtcbiAgbW9kdWxlLmV4cG9ydHMgPSByZXF1aXJlKCcuL2Nqcy9zY2hlZHVsZXIucHJvZHVjdGlvbi5qcycpO1xufSBlbHNlIHtcbiAgbW9kdWxlLmV4cG9ydHMgPSByZXF1aXJlKCcuL2Nqcy9zY2hlZHVsZXIuZGV2ZWxvcG1lbnQuanMnKTtcbn1cbiJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(pages-dir-browser)/./node_modules/scheduler/index.js\n")); - -/***/ }), - -/***/ "?608e": -/*!*****************************************************!*\ - !*** private-next-instrumentation-client (ignored) ***! - \*****************************************************/ -/***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => { - -/* (ignored) */ - -/***/ }) - -}, -/******/ __webpack_require__ => { // webpackRuntimeModules -/******/ var __webpack_exec__ = (moduleId) => (__webpack_require__(__webpack_require__.s = moduleId)) -/******/ var __webpack_exports__ = (__webpack_exec__("(pages-dir-browser)/./node_modules/next/dist/client/next-dev.js")); -/******/ _N_E = __webpack_exports__; -/******/ } -]); \ No newline at end of file diff --git a/build/static/chunks/pages/_app.js b/build/static/chunks/pages/_app.js deleted file mode 100644 index c0a8448..0000000 --- a/build/static/chunks/pages/_app.js +++ /dev/null @@ -1,104 +0,0 @@ -/* - * ATTENTION: An "eval-source-map" devtool has been used. - * This devtool is neither made for production nor for readable output files. - * It uses "eval()" calls to create a separate source file with attached SourceMaps in the browser devtools. - * If you are trying to read the output file, select a different devtool (https://webpack.js.org/configuration/devtool/) - * or disable the default devtool with "devtool: false". - * If you are looking for production-ready output files, see mode: "production" (https://webpack.js.org/configuration/mode/). - */ -(self["webpackChunk_N_E"] = self["webpackChunk_N_E"] || []).push([["pages/_app"],{ - -/***/ "(pages-dir-browser)/./node_modules/next/dist/build/webpack/loaders/css-loader/src/index.js??ruleSet[1].rules[7].oneOf[13].use[1]!./node_modules/next/dist/build/webpack/loaders/postcss-loader/src/index.js??ruleSet[1].rules[7].oneOf[13].use[2]!./styles/globals.css": -/*!**********************************************************************************************************************************************************************************************************************************************************!*\ - !*** ./node_modules/next/dist/build/webpack/loaders/css-loader/src/index.js??ruleSet[1].rules[7].oneOf[13].use[1]!./node_modules/next/dist/build/webpack/loaders/postcss-loader/src/index.js??ruleSet[1].rules[7].oneOf[13].use[2]!./styles/globals.css ***! - \**********************************************************************************************************************************************************************************************************************************************************/ -/***/ ((module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _node_modules_next_dist_build_webpack_loaders_css_loader_src_runtime_api_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../node_modules/next/dist/build/webpack/loaders/css-loader/src/runtime/api.js */ \"(pages-dir-browser)/./node_modules/next/dist/build/webpack/loaders/css-loader/src/runtime/api.js\");\n/* harmony import */ var _node_modules_next_dist_build_webpack_loaders_css_loader_src_runtime_api_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_next_dist_build_webpack_loaders_css_loader_src_runtime_api_js__WEBPACK_IMPORTED_MODULE_0__);\n// Imports\n\nvar ___CSS_LOADER_EXPORT___ = _node_modules_next_dist_build_webpack_loaders_css_loader_src_runtime_api_js__WEBPACK_IMPORTED_MODULE_0___default()(true);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \"*, ::before, ::after {\\n --tw-border-spacing-x: 0;\\n --tw-border-spacing-y: 0;\\n --tw-translate-x: 0;\\n --tw-translate-y: 0;\\n --tw-rotate: 0;\\n --tw-skew-x: 0;\\n --tw-skew-y: 0;\\n --tw-scale-x: 1;\\n --tw-scale-y: 1;\\n --tw-pan-x: ;\\n --tw-pan-y: ;\\n --tw-pinch-zoom: ;\\n --tw-scroll-snap-strictness: proximity;\\n --tw-gradient-from-position: ;\\n --tw-gradient-via-position: ;\\n --tw-gradient-to-position: ;\\n --tw-ordinal: ;\\n --tw-slashed-zero: ;\\n --tw-numeric-figure: ;\\n --tw-numeric-spacing: ;\\n --tw-numeric-fraction: ;\\n --tw-ring-inset: ;\\n --tw-ring-offset-width: 0px;\\n --tw-ring-offset-color: #fff;\\n --tw-ring-color: rgb(59 130 246 / 0.5);\\n --tw-ring-offset-shadow: 0 0 #0000;\\n --tw-ring-shadow: 0 0 #0000;\\n --tw-shadow: 0 0 #0000;\\n --tw-shadow-colored: 0 0 #0000;\\n --tw-blur: ;\\n --tw-brightness: ;\\n --tw-contrast: ;\\n --tw-grayscale: ;\\n --tw-hue-rotate: ;\\n --tw-invert: ;\\n --tw-saturate: ;\\n --tw-sepia: ;\\n --tw-drop-shadow: ;\\n --tw-backdrop-blur: ;\\n --tw-backdrop-brightness: ;\\n --tw-backdrop-contrast: ;\\n --tw-backdrop-grayscale: ;\\n --tw-backdrop-hue-rotate: ;\\n --tw-backdrop-invert: ;\\n --tw-backdrop-opacity: ;\\n --tw-backdrop-saturate: ;\\n --tw-backdrop-sepia: ;\\n --tw-contain-size: ;\\n --tw-contain-layout: ;\\n --tw-contain-paint: ;\\n --tw-contain-style: ;\\n}\\n\\n::backdrop {\\n --tw-border-spacing-x: 0;\\n --tw-border-spacing-y: 0;\\n --tw-translate-x: 0;\\n --tw-translate-y: 0;\\n --tw-rotate: 0;\\n --tw-skew-x: 0;\\n --tw-skew-y: 0;\\n --tw-scale-x: 1;\\n --tw-scale-y: 1;\\n --tw-pan-x: ;\\n --tw-pan-y: ;\\n --tw-pinch-zoom: ;\\n --tw-scroll-snap-strictness: proximity;\\n --tw-gradient-from-position: ;\\n --tw-gradient-via-position: ;\\n --tw-gradient-to-position: ;\\n --tw-ordinal: ;\\n --tw-slashed-zero: ;\\n --tw-numeric-figure: ;\\n --tw-numeric-spacing: ;\\n --tw-numeric-fraction: ;\\n --tw-ring-inset: ;\\n --tw-ring-offset-width: 0px;\\n --tw-ring-offset-color: #fff;\\n --tw-ring-color: rgb(59 130 246 / 0.5);\\n --tw-ring-offset-shadow: 0 0 #0000;\\n --tw-ring-shadow: 0 0 #0000;\\n --tw-shadow: 0 0 #0000;\\n --tw-shadow-colored: 0 0 #0000;\\n --tw-blur: ;\\n --tw-brightness: ;\\n --tw-contrast: ;\\n --tw-grayscale: ;\\n --tw-hue-rotate: ;\\n --tw-invert: ;\\n --tw-saturate: ;\\n --tw-sepia: ;\\n --tw-drop-shadow: ;\\n --tw-backdrop-blur: ;\\n --tw-backdrop-brightness: ;\\n --tw-backdrop-contrast: ;\\n --tw-backdrop-grayscale: ;\\n --tw-backdrop-hue-rotate: ;\\n --tw-backdrop-invert: ;\\n --tw-backdrop-opacity: ;\\n --tw-backdrop-saturate: ;\\n --tw-backdrop-sepia: ;\\n --tw-contain-size: ;\\n --tw-contain-layout: ;\\n --tw-contain-paint: ;\\n --tw-contain-style: ;\\n}/*\\n! tailwindcss v3.4.17 | MIT License | https://tailwindcss.com\\n*//*\\n1. Prevent padding and border from affecting element width. (https://github.com/mozdevs/cssremedy/issues/4)\\n2. Allow adding a border to an element by just adding a border-width. (https://github.com/tailwindcss/tailwindcss/pull/116)\\n*/\\n\\n*,\\n::before,\\n::after {\\n box-sizing: border-box; /* 1 */\\n border-width: 0; /* 2 */\\n border-style: solid; /* 2 */\\n border-color: #e5e7eb; /* 2 */\\n}\\n\\n::before,\\n::after {\\n --tw-content: '';\\n}\\n\\n/*\\n1. Use a consistent sensible line-height in all browsers.\\n2. Prevent adjustments of font size after orientation changes in iOS.\\n3. Use a more readable tab size.\\n4. Use the user's configured `sans` font-family by default.\\n5. Use the user's configured `sans` font-feature-settings by default.\\n6. Use the user's configured `sans` font-variation-settings by default.\\n7. Disable tap highlights on iOS\\n*/\\n\\nhtml,\\n:host {\\n line-height: 1.5; /* 1 */\\n -webkit-text-size-adjust: 100%; /* 2 */\\n -moz-tab-size: 4; /* 3 */\\n -o-tab-size: 4;\\n tab-size: 4; /* 3 */\\n font-family: Inter, sans-serif; /* 4 */\\n font-feature-settings: normal; /* 5 */\\n font-variation-settings: normal; /* 6 */\\n -webkit-tap-highlight-color: transparent; /* 7 */\\n}\\n\\n/*\\n1. Remove the margin in all browsers.\\n2. Inherit line-height from `html` so users can set them as a class directly on the `html` element.\\n*/\\n\\nbody {\\n margin: 0; /* 1 */\\n line-height: inherit; /* 2 */\\n}\\n\\n/*\\n1. Add the correct height in Firefox.\\n2. Correct the inheritance of border color in Firefox. (https://bugzilla.mozilla.org/show_bug.cgi?id=190655)\\n3. Ensure horizontal rules are visible by default.\\n*/\\n\\nhr {\\n height: 0; /* 1 */\\n color: inherit; /* 2 */\\n border-top-width: 1px; /* 3 */\\n}\\n\\n/*\\nAdd the correct text decoration in Chrome, Edge, and Safari.\\n*/\\n\\nabbr:where([title]) {\\n -webkit-text-decoration: underline dotted;\\n text-decoration: underline dotted;\\n}\\n\\n/*\\nRemove the default font size and weight for headings.\\n*/\\n\\nh1,\\nh2,\\nh3,\\nh4,\\nh5,\\nh6 {\\n font-size: inherit;\\n font-weight: inherit;\\n}\\n\\n/*\\nReset links to optimize for opt-in styling instead of opt-out.\\n*/\\n\\na {\\n color: inherit;\\n text-decoration: inherit;\\n}\\n\\n/*\\nAdd the correct font weight in Edge and Safari.\\n*/\\n\\nb,\\nstrong {\\n font-weight: bolder;\\n}\\n\\n/*\\n1. Use the user's configured `mono` font-family by default.\\n2. Use the user's configured `mono` font-feature-settings by default.\\n3. Use the user's configured `mono` font-variation-settings by default.\\n4. Correct the odd `em` font sizing in all browsers.\\n*/\\n\\ncode,\\nkbd,\\nsamp,\\npre {\\n font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, \\\"Liberation Mono\\\", \\\"Courier New\\\", monospace; /* 1 */\\n font-feature-settings: normal; /* 2 */\\n font-variation-settings: normal; /* 3 */\\n font-size: 1em; /* 4 */\\n}\\n\\n/*\\nAdd the correct font size in all browsers.\\n*/\\n\\nsmall {\\n font-size: 80%;\\n}\\n\\n/*\\nPrevent `sub` and `sup` elements from affecting the line height in all browsers.\\n*/\\n\\nsub,\\nsup {\\n font-size: 75%;\\n line-height: 0;\\n position: relative;\\n vertical-align: baseline;\\n}\\n\\nsub {\\n bottom: -0.25em;\\n}\\n\\nsup {\\n top: -0.5em;\\n}\\n\\n/*\\n1. Remove text indentation from table contents in Chrome and Safari. (https://bugs.chromium.org/p/chromium/issues/detail?id=999088, https://bugs.webkit.org/show_bug.cgi?id=201297)\\n2. Correct table border color inheritance in all Chrome and Safari. (https://bugs.chromium.org/p/chromium/issues/detail?id=935729, https://bugs.webkit.org/show_bug.cgi?id=195016)\\n3. Remove gaps between table borders by default.\\n*/\\n\\ntable {\\n text-indent: 0; /* 1 */\\n border-color: inherit; /* 2 */\\n border-collapse: collapse; /* 3 */\\n}\\n\\n/*\\n1. Change the font styles in all browsers.\\n2. Remove the margin in Firefox and Safari.\\n3. Remove default padding in all browsers.\\n*/\\n\\nbutton,\\ninput,\\noptgroup,\\nselect,\\ntextarea {\\n font-family: inherit; /* 1 */\\n font-feature-settings: inherit; /* 1 */\\n font-variation-settings: inherit; /* 1 */\\n font-size: 100%; /* 1 */\\n font-weight: inherit; /* 1 */\\n line-height: inherit; /* 1 */\\n letter-spacing: inherit; /* 1 */\\n color: inherit; /* 1 */\\n margin: 0; /* 2 */\\n padding: 0; /* 3 */\\n}\\n\\n/*\\nRemove the inheritance of text transform in Edge and Firefox.\\n*/\\n\\nbutton,\\nselect {\\n text-transform: none;\\n}\\n\\n/*\\n1. Correct the inability to style clickable types in iOS and Safari.\\n2. Remove default button styles.\\n*/\\n\\nbutton,\\ninput:where([type='button']),\\ninput:where([type='reset']),\\ninput:where([type='submit']) {\\n -webkit-appearance: button; /* 1 */\\n background-color: transparent; /* 2 */\\n background-image: none; /* 2 */\\n}\\n\\n/*\\nUse the modern Firefox focus style for all focusable elements.\\n*/\\n\\n:-moz-focusring {\\n outline: auto;\\n}\\n\\n/*\\nRemove the additional `:invalid` styles in Firefox. (https://github.com/mozilla/gecko-dev/blob/2f9eacd9d3d995c937b4251a5557d95d494c9be1/layout/style/res/forms.css#L728-L737)\\n*/\\n\\n:-moz-ui-invalid {\\n box-shadow: none;\\n}\\n\\n/*\\nAdd the correct vertical alignment in Chrome and Firefox.\\n*/\\n\\nprogress {\\n vertical-align: baseline;\\n}\\n\\n/*\\nCorrect the cursor style of increment and decrement buttons in Safari.\\n*/\\n\\n::-webkit-inner-spin-button,\\n::-webkit-outer-spin-button {\\n height: auto;\\n}\\n\\n/*\\n1. Correct the odd appearance in Chrome and Safari.\\n2. Correct the outline style in Safari.\\n*/\\n\\n[type='search'] {\\n -webkit-appearance: textfield; /* 1 */\\n outline-offset: -2px; /* 2 */\\n}\\n\\n/*\\nRemove the inner padding in Chrome and Safari on macOS.\\n*/\\n\\n::-webkit-search-decoration {\\n -webkit-appearance: none;\\n}\\n\\n/*\\n1. Correct the inability to style clickable types in iOS and Safari.\\n2. Change font properties to `inherit` in Safari.\\n*/\\n\\n::-webkit-file-upload-button {\\n -webkit-appearance: button; /* 1 */\\n font: inherit; /* 2 */\\n}\\n\\n/*\\nAdd the correct display in Chrome and Safari.\\n*/\\n\\nsummary {\\n display: list-item;\\n}\\n\\n/*\\nRemoves the default spacing and border for appropriate elements.\\n*/\\n\\nblockquote,\\ndl,\\ndd,\\nh1,\\nh2,\\nh3,\\nh4,\\nh5,\\nh6,\\nhr,\\nfigure,\\np,\\npre {\\n margin: 0;\\n}\\n\\nfieldset {\\n margin: 0;\\n padding: 0;\\n}\\n\\nlegend {\\n padding: 0;\\n}\\n\\nol,\\nul,\\nmenu {\\n list-style: none;\\n margin: 0;\\n padding: 0;\\n}\\n\\n/*\\nReset default styling for dialogs.\\n*/\\ndialog {\\n padding: 0;\\n}\\n\\n/*\\nPrevent resizing textareas horizontally by default.\\n*/\\n\\ntextarea {\\n resize: vertical;\\n}\\n\\n/*\\n1. Reset the default placeholder opacity in Firefox. (https://github.com/tailwindlabs/tailwindcss/issues/3300)\\n2. Set the default placeholder color to the user's configured gray 400 color.\\n*/\\n\\ninput::-moz-placeholder, textarea::-moz-placeholder {\\n opacity: 1; /* 1 */\\n color: #9ca3af; /* 2 */\\n}\\n\\ninput::placeholder,\\ntextarea::placeholder {\\n opacity: 1; /* 1 */\\n color: #9ca3af; /* 2 */\\n}\\n\\n/*\\nSet the default cursor for buttons.\\n*/\\n\\nbutton,\\n[role=\\\"button\\\"] {\\n cursor: pointer;\\n}\\n\\n/*\\nMake sure disabled buttons don't get the pointer cursor.\\n*/\\n:disabled {\\n cursor: default;\\n}\\n\\n/*\\n1. Make replaced elements `display: block` by default. (https://github.com/mozdevs/cssremedy/issues/14)\\n2. Add `vertical-align: middle` to align replaced elements more sensibly by default. (https://github.com/jensimmons/cssremedy/issues/14#issuecomment-634934210)\\n This can trigger a poorly considered lint error in some tools but is included by design.\\n*/\\n\\nimg,\\nsvg,\\nvideo,\\ncanvas,\\naudio,\\niframe,\\nembed,\\nobject {\\n display: block; /* 1 */\\n vertical-align: middle; /* 2 */\\n}\\n\\n/*\\nConstrain images and videos to the parent width and preserve their intrinsic aspect ratio. (https://github.com/mozdevs/cssremedy/issues/14)\\n*/\\n\\nimg,\\nvideo {\\n max-width: 100%;\\n height: auto;\\n}\\n\\n/* Make elements with the HTML hidden attribute stay hidden by default */\\n[hidden]:where(:not([hidden=\\\"until-found\\\"])) {\\n display: none;\\n}\\r\\n.container {\\n width: 100%;\\n}\\r\\n@media (min-width: 640px) {\\n\\n .container {\\n max-width: 640px;\\n }\\n}\\r\\n@media (min-width: 768px) {\\n\\n .container {\\n max-width: 768px;\\n }\\n}\\r\\n@media (min-width: 1024px) {\\n\\n .container {\\n max-width: 1024px;\\n }\\n}\\r\\n@media (min-width: 1280px) {\\n\\n .container {\\n max-width: 1280px;\\n }\\n}\\r\\n@media (min-width: 1536px) {\\n\\n .container {\\n max-width: 1536px;\\n }\\n}\\r\\n.fixed {\\n position: fixed;\\n}\\r\\n.absolute {\\n position: absolute;\\n}\\r\\n.relative {\\n position: relative;\\n}\\r\\n.inset-0 {\\n inset: 0px;\\n}\\r\\n.inset-y-0 {\\n top: 0px;\\n bottom: 0px;\\n}\\r\\n.-top-4 {\\n top: -1rem;\\n}\\r\\n.bottom-10 {\\n bottom: 2.5rem;\\n}\\r\\n.bottom-20 {\\n bottom: 5rem;\\n}\\r\\n.left-0 {\\n left: 0px;\\n}\\r\\n.left-1\\\\/2 {\\n left: 50%;\\n}\\r\\n.left-1\\\\/4 {\\n left: 25%;\\n}\\r\\n.left-10 {\\n left: 2.5rem;\\n}\\r\\n.left-3 {\\n left: 0.75rem;\\n}\\r\\n.left-4 {\\n left: 1rem;\\n}\\r\\n.right-0 {\\n right: 0px;\\n}\\r\\n.right-10 {\\n right: 2.5rem;\\n}\\r\\n.right-20 {\\n right: 5rem;\\n}\\r\\n.top-0 {\\n top: 0px;\\n}\\r\\n.top-1\\\\/2 {\\n top: 50%;\\n}\\r\\n.top-10 {\\n top: 2.5rem;\\n}\\r\\n.top-32 {\\n top: 8rem;\\n}\\r\\n.top-4 {\\n top: 1rem;\\n}\\r\\n.z-10 {\\n z-index: 10;\\n}\\r\\n.z-50 {\\n z-index: 50;\\n}\\r\\n.mx-auto {\\n margin-left: auto;\\n margin-right: auto;\\n}\\r\\n.mb-1 {\\n margin-bottom: 0.25rem;\\n}\\r\\n.mb-12 {\\n margin-bottom: 3rem;\\n}\\r\\n.mb-16 {\\n margin-bottom: 4rem;\\n}\\r\\n.mb-2 {\\n margin-bottom: 0.5rem;\\n}\\r\\n.mb-3 {\\n margin-bottom: 0.75rem;\\n}\\r\\n.mb-4 {\\n margin-bottom: 1rem;\\n}\\r\\n.mb-6 {\\n margin-bottom: 1.5rem;\\n}\\r\\n.mb-8 {\\n margin-bottom: 2rem;\\n}\\r\\n.mb-section {\\n margin-bottom: 4rem;\\n}\\r\\n.ml-1 {\\n margin-left: 0.25rem;\\n}\\r\\n.ml-2 {\\n margin-left: 0.5rem;\\n}\\r\\n.mr-1 {\\n margin-right: 0.25rem;\\n}\\r\\n.mr-2 {\\n margin-right: 0.5rem;\\n}\\r\\n.mr-3 {\\n margin-right: 0.75rem;\\n}\\r\\n.mr-4 {\\n margin-right: 1rem;\\n}\\r\\n.mt-0\\\\.5 {\\n margin-top: 0.125rem;\\n}\\r\\n.mt-1 {\\n margin-top: 0.25rem;\\n}\\r\\n.mt-12 {\\n margin-top: 3rem;\\n}\\r\\n.mt-16 {\\n margin-top: 4rem;\\n}\\r\\n.mt-2 {\\n margin-top: 0.5rem;\\n}\\r\\n.mt-20 {\\n margin-top: 5rem;\\n}\\r\\n.mt-4 {\\n margin-top: 1rem;\\n}\\r\\n.mt-8 {\\n margin-top: 2rem;\\n}\\r\\n.line-clamp-2 {\\n overflow: hidden;\\n display: -webkit-box;\\n -webkit-box-orient: vertical;\\n -webkit-line-clamp: 2;\\n}\\r\\n.line-clamp-3 {\\n overflow: hidden;\\n display: -webkit-box;\\n -webkit-box-orient: vertical;\\n -webkit-line-clamp: 3;\\n}\\r\\n.block {\\n display: block;\\n}\\r\\n.flex {\\n display: flex;\\n}\\r\\n.inline-flex {\\n display: inline-flex;\\n}\\r\\n.grid {\\n display: grid;\\n}\\r\\n.hidden {\\n display: none;\\n}\\r\\n.h-0\\\\.5 {\\n height: 0.125rem;\\n}\\r\\n.h-10 {\\n height: 2.5rem;\\n}\\r\\n.h-12 {\\n height: 3rem;\\n}\\r\\n.h-16 {\\n height: 4rem;\\n}\\r\\n.h-20 {\\n height: 5rem;\\n}\\r\\n.h-24 {\\n height: 6rem;\\n}\\r\\n.h-3 {\\n height: 0.75rem;\\n}\\r\\n.h-4 {\\n height: 1rem;\\n}\\r\\n.h-48 {\\n height: 12rem;\\n}\\r\\n.h-5 {\\n height: 1.25rem;\\n}\\r\\n.h-6 {\\n height: 1.5rem;\\n}\\r\\n.h-8 {\\n height: 2rem;\\n}\\r\\n.h-auto {\\n height: auto;\\n}\\r\\n.h-full {\\n height: 100%;\\n}\\r\\n.min-h-\\\\[60vh\\\\] {\\n min-height: 60vh;\\n}\\r\\n.w-1 {\\n width: 0.25rem;\\n}\\r\\n.w-1\\\\/2 {\\n width: 50%;\\n}\\r\\n.w-10 {\\n width: 2.5rem;\\n}\\r\\n.w-12 {\\n width: 3rem;\\n}\\r\\n.w-16 {\\n width: 4rem;\\n}\\r\\n.w-20 {\\n width: 5rem;\\n}\\r\\n.w-24 {\\n width: 6rem;\\n}\\r\\n.w-3 {\\n width: 0.75rem;\\n}\\r\\n.w-4 {\\n width: 1rem;\\n}\\r\\n.w-5 {\\n width: 1.25rem;\\n}\\r\\n.w-6 {\\n width: 1.5rem;\\n}\\r\\n.w-64 {\\n width: 16rem;\\n}\\r\\n.w-8 {\\n width: 2rem;\\n}\\r\\n.w-full {\\n width: 100%;\\n}\\r\\n.max-w-2xl {\\n max-width: 42rem;\\n}\\r\\n.max-w-3xl {\\n max-width: 48rem;\\n}\\r\\n.max-w-4xl {\\n max-width: 56rem;\\n}\\r\\n.max-w-full {\\n max-width: 100%;\\n}\\r\\n.max-w-md {\\n max-width: 28rem;\\n}\\r\\n.max-w-screen-lg {\\n max-width: 1024px;\\n}\\r\\n.max-w-screen-md {\\n max-width: 768px;\\n}\\r\\n.max-w-screen-xl {\\n max-width: 1280px;\\n}\\r\\n.flex-1 {\\n flex: 1 1 0%;\\n}\\r\\n.flex-shrink-0 {\\n flex-shrink: 0;\\n}\\r\\n.-translate-x-1\\\\/2 {\\n --tw-translate-x: -50%;\\n transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));\\n}\\r\\n.-translate-y-1\\\\/2 {\\n --tw-translate-y: -50%;\\n transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));\\n}\\r\\n.translate-x-0 {\\n --tw-translate-x: 0px;\\n transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));\\n}\\r\\n.translate-x-full {\\n --tw-translate-x: 100%;\\n transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));\\n}\\r\\n.rotate-90 {\\n --tw-rotate: 90deg;\\n transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));\\n}\\r\\n.scale-105 {\\n --tw-scale-x: 1.05;\\n --tw-scale-y: 1.05;\\n transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));\\n}\\r\\n.transform {\\n transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));\\n}\\r\\n@keyframes spin {\\n\\n to {\\n transform: rotate(360deg);\\n }\\n}\\r\\n.animate-spin {\\n animation: spin 1s linear infinite;\\n}\\r\\n.cursor-pointer {\\n cursor: pointer;\\n}\\r\\n.resize-none {\\n resize: none;\\n}\\r\\n.grid-cols-1 {\\n grid-template-columns: repeat(1, minmax(0, 1fr));\\n}\\r\\n.grid-cols-2 {\\n grid-template-columns: repeat(2, minmax(0, 1fr));\\n}\\r\\n.flex-row {\\n flex-direction: row;\\n}\\r\\n.flex-row-reverse {\\n flex-direction: row-reverse;\\n}\\r\\n.flex-col {\\n flex-direction: column;\\n}\\r\\n.flex-wrap {\\n flex-wrap: wrap;\\n}\\r\\n.items-start {\\n align-items: flex-start;\\n}\\r\\n.items-center {\\n align-items: center;\\n}\\r\\n.items-baseline {\\n align-items: baseline;\\n}\\r\\n.justify-center {\\n justify-content: center;\\n}\\r\\n.justify-between {\\n justify-content: space-between;\\n}\\r\\n.gap-1 {\\n gap: 0.25rem;\\n}\\r\\n.gap-12 {\\n gap: 3rem;\\n}\\r\\n.gap-2 {\\n gap: 0.5rem;\\n}\\r\\n.gap-3 {\\n gap: 0.75rem;\\n}\\r\\n.gap-4 {\\n gap: 1rem;\\n}\\r\\n.gap-6 {\\n gap: 1.5rem;\\n}\\r\\n.gap-8 {\\n gap: 2rem;\\n}\\r\\n.space-x-4 > :not([hidden]) ~ :not([hidden]) {\\n --tw-space-x-reverse: 0;\\n margin-right: calc(1rem * var(--tw-space-x-reverse));\\n margin-left: calc(1rem * calc(1 - var(--tw-space-x-reverse)));\\n}\\r\\n.space-x-6 > :not([hidden]) ~ :not([hidden]) {\\n --tw-space-x-reverse: 0;\\n margin-right: calc(1.5rem * var(--tw-space-x-reverse));\\n margin-left: calc(1.5rem * calc(1 - var(--tw-space-x-reverse)));\\n}\\r\\n.space-y-1 > :not([hidden]) ~ :not([hidden]) {\\n --tw-space-y-reverse: 0;\\n margin-top: calc(0.25rem * calc(1 - var(--tw-space-y-reverse)));\\n margin-bottom: calc(0.25rem * var(--tw-space-y-reverse));\\n}\\r\\n.space-y-12 > :not([hidden]) ~ :not([hidden]) {\\n --tw-space-y-reverse: 0;\\n margin-top: calc(3rem * calc(1 - var(--tw-space-y-reverse)));\\n margin-bottom: calc(3rem * var(--tw-space-y-reverse));\\n}\\r\\n.space-y-2 > :not([hidden]) ~ :not([hidden]) {\\n --tw-space-y-reverse: 0;\\n margin-top: calc(0.5rem * calc(1 - var(--tw-space-y-reverse)));\\n margin-bottom: calc(0.5rem * var(--tw-space-y-reverse));\\n}\\r\\n.space-y-3 > :not([hidden]) ~ :not([hidden]) {\\n --tw-space-y-reverse: 0;\\n margin-top: calc(0.75rem * calc(1 - var(--tw-space-y-reverse)));\\n margin-bottom: calc(0.75rem * var(--tw-space-y-reverse));\\n}\\r\\n.space-y-4 > :not([hidden]) ~ :not([hidden]) {\\n --tw-space-y-reverse: 0;\\n margin-top: calc(1rem * calc(1 - var(--tw-space-y-reverse)));\\n margin-bottom: calc(1rem * var(--tw-space-y-reverse));\\n}\\r\\n.space-y-6 > :not([hidden]) ~ :not([hidden]) {\\n --tw-space-y-reverse: 0;\\n margin-top: calc(1.5rem * calc(1 - var(--tw-space-y-reverse)));\\n margin-bottom: calc(1.5rem * var(--tw-space-y-reverse));\\n}\\r\\n.space-y-8 > :not([hidden]) ~ :not([hidden]) {\\n --tw-space-y-reverse: 0;\\n margin-top: calc(2rem * calc(1 - var(--tw-space-y-reverse)));\\n margin-bottom: calc(2rem * var(--tw-space-y-reverse));\\n}\\r\\n.overflow-hidden {\\n overflow: hidden;\\n}\\r\\n.rounded {\\n border-radius: 0.25rem;\\n}\\r\\n.rounded-2xl {\\n border-radius: 1rem;\\n}\\r\\n.rounded-full {\\n border-radius: 9999px;\\n}\\r\\n.rounded-lg {\\n border-radius: 0.5rem;\\n}\\r\\n.rounded-xl {\\n border-radius: 0.75rem;\\n}\\r\\n.border {\\n border-width: 1px;\\n}\\r\\n.border-2 {\\n border-width: 2px;\\n}\\r\\n.border-t {\\n border-top-width: 1px;\\n}\\r\\n.border-gray-100 {\\n --tw-border-opacity: 1;\\n border-color: rgb(243 244 246 / var(--tw-border-opacity, 1));\\n}\\r\\n.border-gray-200 {\\n --tw-border-opacity: 1;\\n border-color: rgb(229 231 235 / var(--tw-border-opacity, 1));\\n}\\r\\n.border-gray-300 {\\n --tw-border-opacity: 1;\\n border-color: rgb(209 213 219 / var(--tw-border-opacity, 1));\\n}\\r\\n.border-gray-700 {\\n --tw-border-opacity: 1;\\n border-color: rgb(55 65 81 / var(--tw-border-opacity, 1));\\n}\\r\\n.border-green-200 {\\n --tw-border-opacity: 1;\\n border-color: rgb(187 247 208 / var(--tw-border-opacity, 1));\\n}\\r\\n.border-primary {\\n --tw-border-opacity: 1;\\n border-color: rgb(51 51 51 / var(--tw-border-opacity, 1));\\n}\\r\\n.border-red-200 {\\n --tw-border-opacity: 1;\\n border-color: rgb(254 202 202 / var(--tw-border-opacity, 1));\\n}\\r\\n.border-white {\\n --tw-border-opacity: 1;\\n border-color: rgb(255 255 255 / var(--tw-border-opacity, 1));\\n}\\r\\n.border-white\\\\/20 {\\n border-color: rgb(255 255 255 / 0.2);\\n}\\r\\n.border-yellow-200 {\\n --tw-border-opacity: 1;\\n border-color: rgb(254 240 138 / var(--tw-border-opacity, 1));\\n}\\r\\n.border-t-transparent {\\n border-top-color: transparent;\\n}\\r\\n.bg-accent {\\n --tw-bg-opacity: 1;\\n background-color: rgb(0 106 255 / var(--tw-bg-opacity, 1));\\n}\\r\\n.bg-accent\\\\/20 {\\n background-color: rgb(0 106 255 / 0.2);\\n}\\r\\n.bg-background {\\n --tw-bg-opacity: 1;\\n background-color: rgb(255 255 255 / var(--tw-bg-opacity, 1));\\n}\\r\\n.bg-black\\\\/10 {\\n background-color: rgb(0 0 0 / 0.1);\\n}\\r\\n.bg-blue-100 {\\n --tw-bg-opacity: 1;\\n background-color: rgb(219 234 254 / var(--tw-bg-opacity, 1));\\n}\\r\\n.bg-blue-50 {\\n --tw-bg-opacity: 1;\\n background-color: rgb(239 246 255 / var(--tw-bg-opacity, 1));\\n}\\r\\n.bg-gray-100 {\\n --tw-bg-opacity: 1;\\n background-color: rgb(243 244 246 / var(--tw-bg-opacity, 1));\\n}\\r\\n.bg-gray-50 {\\n --tw-bg-opacity: 1;\\n background-color: rgb(249 250 251 / var(--tw-bg-opacity, 1));\\n}\\r\\n.bg-gray-900 {\\n --tw-bg-opacity: 1;\\n background-color: rgb(17 24 39 / var(--tw-bg-opacity, 1));\\n}\\r\\n.bg-green-100 {\\n --tw-bg-opacity: 1;\\n background-color: rgb(220 252 231 / var(--tw-bg-opacity, 1));\\n}\\r\\n.bg-green-50 {\\n --tw-bg-opacity: 1;\\n background-color: rgb(240 253 244 / var(--tw-bg-opacity, 1));\\n}\\r\\n.bg-green-500 {\\n --tw-bg-opacity: 1;\\n background-color: rgb(34 197 94 / var(--tw-bg-opacity, 1));\\n}\\r\\n.bg-orange-100 {\\n --tw-bg-opacity: 1;\\n background-color: rgb(255 237 213 / var(--tw-bg-opacity, 1));\\n}\\r\\n.bg-purple-100 {\\n --tw-bg-opacity: 1;\\n background-color: rgb(243 232 255 / var(--tw-bg-opacity, 1));\\n}\\r\\n.bg-purple-500 {\\n --tw-bg-opacity: 1;\\n background-color: rgb(168 85 247 / var(--tw-bg-opacity, 1));\\n}\\r\\n.bg-red-100 {\\n --tw-bg-opacity: 1;\\n background-color: rgb(254 226 226 / var(--tw-bg-opacity, 1));\\n}\\r\\n.bg-red-50 {\\n --tw-bg-opacity: 1;\\n background-color: rgb(254 242 242 / var(--tw-bg-opacity, 1));\\n}\\r\\n.bg-teal-100 {\\n --tw-bg-opacity: 1;\\n background-color: rgb(204 251 241 / var(--tw-bg-opacity, 1));\\n}\\r\\n.bg-white {\\n --tw-bg-opacity: 1;\\n background-color: rgb(255 255 255 / var(--tw-bg-opacity, 1));\\n}\\r\\n.bg-white\\\\/10 {\\n background-color: rgb(255 255 255 / 0.1);\\n}\\r\\n.bg-white\\\\/20 {\\n background-color: rgb(255 255 255 / 0.2);\\n}\\r\\n.bg-white\\\\/5 {\\n background-color: rgb(255 255 255 / 0.05);\\n}\\r\\n.bg-white\\\\/80 {\\n background-color: rgb(255 255 255 / 0.8);\\n}\\r\\n.bg-yellow-50 {\\n --tw-bg-opacity: 1;\\n background-color: rgb(254 252 232 / var(--tw-bg-opacity, 1));\\n}\\r\\n.bg-gradient-to-br {\\n background-image: linear-gradient(to bottom right, var(--tw-gradient-stops));\\n}\\r\\n.bg-gradient-to-r {\\n background-image: linear-gradient(to right, var(--tw-gradient-stops));\\n}\\r\\n.from-accent {\\n --tw-gradient-from: #006AFF var(--tw-gradient-from-position);\\n --tw-gradient-to: rgb(0 106 255 / 0) var(--tw-gradient-to-position);\\n --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);\\n}\\r\\n.from-accent\\\\/10 {\\n --tw-gradient-from: rgb(0 106 255 / 0.1) var(--tw-gradient-from-position);\\n --tw-gradient-to: rgb(0 106 255 / 0) var(--tw-gradient-to-position);\\n --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);\\n}\\r\\n.from-blue-50 {\\n --tw-gradient-from: #eff6ff var(--tw-gradient-from-position);\\n --tw-gradient-to: rgb(239 246 255 / 0) var(--tw-gradient-to-position);\\n --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);\\n}\\r\\n.from-gray-50 {\\n --tw-gradient-from: #f9fafb var(--tw-gradient-from-position);\\n --tw-gradient-to: rgb(249 250 251 / 0) var(--tw-gradient-to-position);\\n --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);\\n}\\r\\n.from-green-50 {\\n --tw-gradient-from: #f0fdf4 var(--tw-gradient-from-position);\\n --tw-gradient-to: rgb(240 253 244 / 0) var(--tw-gradient-to-position);\\n --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);\\n}\\r\\n.from-orange-50 {\\n --tw-gradient-from: #fff7ed var(--tw-gradient-from-position);\\n --tw-gradient-to: rgb(255 247 237 / 0) var(--tw-gradient-to-position);\\n --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);\\n}\\r\\n.from-purple-50 {\\n --tw-gradient-from: #faf5ff var(--tw-gradient-from-position);\\n --tw-gradient-to: rgb(250 245 255 / 0) var(--tw-gradient-to-position);\\n --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);\\n}\\r\\n.from-yellow-300 {\\n --tw-gradient-from: #fde047 var(--tw-gradient-from-position);\\n --tw-gradient-to: rgb(253 224 71 / 0) var(--tw-gradient-to-position);\\n --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);\\n}\\r\\n.via-blue-600 {\\n --tw-gradient-to: rgb(37 99 235 / 0) var(--tw-gradient-to-position);\\n --tw-gradient-stops: var(--tw-gradient-from), #2563eb var(--tw-gradient-via-position), var(--tw-gradient-to);\\n}\\r\\n.to-accent\\\\/20 {\\n --tw-gradient-to: rgb(0 106 255 / 0.2) var(--tw-gradient-to-position);\\n}\\r\\n.to-blue-100 {\\n --tw-gradient-to: #dbeafe var(--tw-gradient-to-position);\\n}\\r\\n.to-blue-50 {\\n --tw-gradient-to: #eff6ff var(--tw-gradient-to-position);\\n}\\r\\n.to-blue-600 {\\n --tw-gradient-to: #2563eb var(--tw-gradient-to-position);\\n}\\r\\n.to-gray-100 {\\n --tw-gradient-to: #f3f4f6 var(--tw-gradient-to-position);\\n}\\r\\n.to-indigo-100 {\\n --tw-gradient-to: #e0e7ff var(--tw-gradient-to-position);\\n}\\r\\n.to-indigo-50 {\\n --tw-gradient-to: #eef2ff var(--tw-gradient-to-position);\\n}\\r\\n.to-orange-300 {\\n --tw-gradient-to: #fdba74 var(--tw-gradient-to-position);\\n}\\r\\n.to-purple-600 {\\n --tw-gradient-to: #9333ea var(--tw-gradient-to-position);\\n}\\r\\n.to-red-100 {\\n --tw-gradient-to: #fee2e2 var(--tw-gradient-to-position);\\n}\\r\\n.bg-clip-text {\\n -webkit-background-clip: text;\\n background-clip: text;\\n}\\r\\n.p-2 {\\n padding: 0.5rem;\\n}\\r\\n.p-3 {\\n padding: 0.75rem;\\n}\\r\\n.p-4 {\\n padding: 1rem;\\n}\\r\\n.p-6 {\\n padding: 1.5rem;\\n}\\r\\n.p-8 {\\n padding: 2rem;\\n}\\r\\n.px-2 {\\n padding-left: 0.5rem;\\n padding-right: 0.5rem;\\n}\\r\\n.px-3 {\\n padding-left: 0.75rem;\\n padding-right: 0.75rem;\\n}\\r\\n.px-4 {\\n padding-left: 1rem;\\n padding-right: 1rem;\\n}\\r\\n.px-6 {\\n padding-left: 1.5rem;\\n padding-right: 1.5rem;\\n}\\r\\n.px-8 {\\n padding-left: 2rem;\\n padding-right: 2rem;\\n}\\r\\n.py-1 {\\n padding-top: 0.25rem;\\n padding-bottom: 0.25rem;\\n}\\r\\n.py-12 {\\n padding-top: 3rem;\\n padding-bottom: 3rem;\\n}\\r\\n.py-16 {\\n padding-top: 4rem;\\n padding-bottom: 4rem;\\n}\\r\\n.py-2 {\\n padding-top: 0.5rem;\\n padding-bottom: 0.5rem;\\n}\\r\\n.py-20 {\\n padding-top: 5rem;\\n padding-bottom: 5rem;\\n}\\r\\n.py-3 {\\n padding-top: 0.75rem;\\n padding-bottom: 0.75rem;\\n}\\r\\n.py-4 {\\n padding-top: 1rem;\\n padding-bottom: 1rem;\\n}\\r\\n.py-section {\\n padding-top: 4rem;\\n padding-bottom: 4rem;\\n}\\r\\n.pb-12 {\\n padding-bottom: 3rem;\\n}\\r\\n.pb-24 {\\n padding-bottom: 6rem;\\n}\\r\\n.pb-6 {\\n padding-bottom: 1.5rem;\\n}\\r\\n.pl-10 {\\n padding-left: 2.5rem;\\n}\\r\\n.pl-8 {\\n padding-left: 2rem;\\n}\\r\\n.pr-4 {\\n padding-right: 1rem;\\n}\\r\\n.pr-8 {\\n padding-right: 2rem;\\n}\\r\\n.pt-16 {\\n padding-top: 4rem;\\n}\\r\\n.pt-4 {\\n padding-top: 1rem;\\n}\\r\\n.pt-6 {\\n padding-top: 1.5rem;\\n}\\r\\n.pt-8 {\\n padding-top: 2rem;\\n}\\r\\n.pb-8 {\\n padding-bottom: 2rem;\\n}\\r\\n.text-left {\\n text-align: left;\\n}\\r\\n.text-center {\\n text-align: center;\\n}\\r\\n.text-right {\\n text-align: right;\\n}\\r\\n.text-2xl {\\n font-size: 1.5rem;\\n line-height: 2rem;\\n}\\r\\n.text-3xl {\\n font-size: 1.875rem;\\n line-height: 2.25rem;\\n}\\r\\n.text-4xl {\\n font-size: 2.25rem;\\n line-height: 2.5rem;\\n}\\r\\n.text-5xl {\\n font-size: 3rem;\\n line-height: 1;\\n}\\r\\n.text-base {\\n font-size: 1rem;\\n line-height: 1.5rem;\\n}\\r\\n.text-lg {\\n font-size: 1.125rem;\\n line-height: 1.75rem;\\n}\\r\\n.text-sm {\\n font-size: 0.875rem;\\n line-height: 1.25rem;\\n}\\r\\n.text-xl {\\n font-size: 1.25rem;\\n line-height: 1.75rem;\\n}\\r\\n.text-xs {\\n font-size: 0.75rem;\\n line-height: 1rem;\\n}\\r\\n.font-bold {\\n font-weight: 700;\\n}\\r\\n.font-medium {\\n font-weight: 500;\\n}\\r\\n.font-semibold {\\n font-weight: 600;\\n}\\r\\n.italic {\\n font-style: italic;\\n}\\r\\n.leading-relaxed {\\n line-height: 1.625;\\n}\\r\\n.text-accent {\\n --tw-text-opacity: 1;\\n color: rgb(0 106 255 / var(--tw-text-opacity, 1));\\n}\\r\\n.text-blue-100 {\\n --tw-text-opacity: 1;\\n color: rgb(219 234 254 / var(--tw-text-opacity, 1));\\n}\\r\\n.text-blue-200 {\\n --tw-text-opacity: 1;\\n color: rgb(191 219 254 / var(--tw-text-opacity, 1));\\n}\\r\\n.text-blue-500 {\\n --tw-text-opacity: 1;\\n color: rgb(59 130 246 / var(--tw-text-opacity, 1));\\n}\\r\\n.text-blue-600 {\\n --tw-text-opacity: 1;\\n color: rgb(37 99 235 / var(--tw-text-opacity, 1));\\n}\\r\\n.text-gray-300 {\\n --tw-text-opacity: 1;\\n color: rgb(209 213 219 / var(--tw-text-opacity, 1));\\n}\\r\\n.text-gray-400 {\\n --tw-text-opacity: 1;\\n color: rgb(156 163 175 / var(--tw-text-opacity, 1));\\n}\\r\\n.text-gray-500 {\\n --tw-text-opacity: 1;\\n color: rgb(107 114 128 / var(--tw-text-opacity, 1));\\n}\\r\\n.text-gray-600 {\\n --tw-text-opacity: 1;\\n color: rgb(75 85 99 / var(--tw-text-opacity, 1));\\n}\\r\\n.text-gray-700 {\\n --tw-text-opacity: 1;\\n color: rgb(55 65 81 / var(--tw-text-opacity, 1));\\n}\\r\\n.text-green-300 {\\n --tw-text-opacity: 1;\\n color: rgb(134 239 172 / var(--tw-text-opacity, 1));\\n}\\r\\n.text-green-500 {\\n --tw-text-opacity: 1;\\n color: rgb(34 197 94 / var(--tw-text-opacity, 1));\\n}\\r\\n.text-green-600 {\\n --tw-text-opacity: 1;\\n color: rgb(22 163 74 / var(--tw-text-opacity, 1));\\n}\\r\\n.text-green-700 {\\n --tw-text-opacity: 1;\\n color: rgb(21 128 61 / var(--tw-text-opacity, 1));\\n}\\r\\n.text-green-800 {\\n --tw-text-opacity: 1;\\n color: rgb(22 101 52 / var(--tw-text-opacity, 1));\\n}\\r\\n.text-indigo-500 {\\n --tw-text-opacity: 1;\\n color: rgb(99 102 241 / var(--tw-text-opacity, 1));\\n}\\r\\n.text-orange-500 {\\n --tw-text-opacity: 1;\\n color: rgb(249 115 22 / var(--tw-text-opacity, 1));\\n}\\r\\n.text-orange-600 {\\n --tw-text-opacity: 1;\\n color: rgb(234 88 12 / var(--tw-text-opacity, 1));\\n}\\r\\n.text-primary {\\n --tw-text-opacity: 1;\\n color: rgb(51 51 51 / var(--tw-text-opacity, 1));\\n}\\r\\n.text-purple-300 {\\n --tw-text-opacity: 1;\\n color: rgb(216 180 254 / var(--tw-text-opacity, 1));\\n}\\r\\n.text-purple-500 {\\n --tw-text-opacity: 1;\\n color: rgb(168 85 247 / var(--tw-text-opacity, 1));\\n}\\r\\n.text-purple-600 {\\n --tw-text-opacity: 1;\\n color: rgb(147 51 234 / var(--tw-text-opacity, 1));\\n}\\r\\n.text-red-500 {\\n --tw-text-opacity: 1;\\n color: rgb(239 68 68 / var(--tw-text-opacity, 1));\\n}\\r\\n.text-red-600 {\\n --tw-text-opacity: 1;\\n color: rgb(220 38 38 / var(--tw-text-opacity, 1));\\n}\\r\\n.text-red-700 {\\n --tw-text-opacity: 1;\\n color: rgb(185 28 28 / var(--tw-text-opacity, 1));\\n}\\r\\n.text-teal-600 {\\n --tw-text-opacity: 1;\\n color: rgb(13 148 136 / var(--tw-text-opacity, 1));\\n}\\r\\n.text-transparent {\\n color: transparent;\\n}\\r\\n.text-white {\\n --tw-text-opacity: 1;\\n color: rgb(255 255 255 / var(--tw-text-opacity, 1));\\n}\\r\\n.text-yellow-300 {\\n --tw-text-opacity: 1;\\n color: rgb(253 224 71 / var(--tw-text-opacity, 1));\\n}\\r\\n.text-yellow-500 {\\n --tw-text-opacity: 1;\\n color: rgb(234 179 8 / var(--tw-text-opacity, 1));\\n}\\r\\n.text-yellow-600 {\\n --tw-text-opacity: 1;\\n color: rgb(202 138 4 / var(--tw-text-opacity, 1));\\n}\\r\\n.text-yellow-700 {\\n --tw-text-opacity: 1;\\n color: rgb(161 98 7 / var(--tw-text-opacity, 1));\\n}\\r\\n.text-yellow-800 {\\n --tw-text-opacity: 1;\\n color: rgb(133 77 14 / var(--tw-text-opacity, 1));\\n}\\r\\n.line-through {\\n text-decoration-line: line-through;\\n}\\r\\n.opacity-80 {\\n opacity: 0.8;\\n}\\r\\n.shadow-lg {\\n --tw-shadow: 0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1);\\n --tw-shadow-colored: 0 10px 15px -3px var(--tw-shadow-color), 0 4px 6px -4px var(--tw-shadow-color);\\n box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);\\n}\\r\\n.shadow-md {\\n --tw-shadow: 0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1);\\n --tw-shadow-colored: 0 4px 6px -1px var(--tw-shadow-color), 0 2px 4px -2px var(--tw-shadow-color);\\n box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);\\n}\\r\\n.shadow-sm {\\n --tw-shadow: 0 1px 2px 0 rgb(0 0 0 / 0.05);\\n --tw-shadow-colored: 0 1px 2px 0 var(--tw-shadow-color);\\n box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);\\n}\\r\\n.outline-none {\\n outline: 2px solid transparent;\\n outline-offset: 2px;\\n}\\r\\n.ring-2 {\\n --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);\\n --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);\\n box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000);\\n}\\r\\n.ring-accent {\\n --tw-ring-opacity: 1;\\n --tw-ring-color: rgb(0 106 255 / var(--tw-ring-opacity, 1));\\n}\\r\\n.filter {\\n filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow);\\n}\\r\\n.backdrop-blur-sm {\\n --tw-backdrop-blur: blur(4px);\\n -webkit-backdrop-filter: var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);\\n backdrop-filter: var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);\\n}\\r\\n.transition {\\n transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, -webkit-backdrop-filter;\\n transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter;\\n transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter, -webkit-backdrop-filter;\\n transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\\n transition-duration: 150ms;\\n}\\r\\n.transition-all {\\n transition-property: all;\\n transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\\n transition-duration: 150ms;\\n}\\r\\n.transition-colors {\\n transition-property: color, background-color, border-color, text-decoration-color, fill, stroke;\\n transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\\n transition-duration: 150ms;\\n}\\r\\n.transition-shadow {\\n transition-property: box-shadow;\\n transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\\n transition-duration: 150ms;\\n}\\r\\n.transition-transform {\\n transition-property: transform;\\n transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\\n transition-duration: 150ms;\\n}\\r\\n.duration-300 {\\n transition-duration: 300ms;\\n}\\r\\n\\r\\nbody {\\n --tw-bg-opacity: 1;\\n background-color: rgb(255 255 255 / var(--tw-bg-opacity, 1));\\n font-family: Inter, sans-serif;\\n --tw-text-opacity: 1;\\n color: rgb(51 51 51 / var(--tw-text-opacity, 1));\\n}\\r\\n\\r\\nmain {\\n display: flex;\\n flex-direction: column;\\n gap: 4rem;\\n}\\r\\n\\r\\n/* 文本截断样式 */\\r\\n.line-clamp-2 {\\r\\n display: -webkit-box;\\r\\n -webkit-line-clamp: 2;\\r\\n -webkit-box-orient: vertical;\\r\\n overflow: hidden;\\r\\n}\\r\\n\\r\\n.line-clamp-3 {\\r\\n display: -webkit-box;\\r\\n -webkit-line-clamp: 3;\\r\\n -webkit-box-orient: vertical;\\r\\n overflow: hidden;\\r\\n}\\r\\n\\r\\n/* 自定义滚动条 */\\r\\n::-webkit-scrollbar {\\r\\n width: 8px;\\r\\n}\\r\\n\\r\\n::-webkit-scrollbar-track {\\r\\n background: #f1f1f1;\\r\\n border-radius: 4px;\\r\\n}\\r\\n\\r\\n::-webkit-scrollbar-thumb {\\r\\n background: #c1c1c1;\\r\\n border-radius: 4px;\\r\\n}\\r\\n\\r\\n::-webkit-scrollbar-thumb:hover {\\r\\n background: #a8a8a8;\\r\\n}\\r\\n\\r\\n/* 平滑滚动 */\\r\\nhtml {\\r\\n scroll-behavior: smooth;\\r\\n}\\r\\n\\r\\n/* 焦点样式 */\\r\\n.focus\\\\:ring-2:focus {\\r\\n --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);\\r\\n --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);\\r\\n box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000);\\r\\n}\\r\\n.hover\\\\:scale-105:hover {\\n --tw-scale-x: 1.05;\\n --tw-scale-y: 1.05;\\n transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));\\n}\\r\\n.hover\\\\:border-accent:hover {\\n --tw-border-opacity: 1;\\n border-color: rgb(0 106 255 / var(--tw-border-opacity, 1));\\n}\\r\\n.hover\\\\:border-accent\\\\/20:hover {\\n border-color: rgb(0 106 255 / 0.2);\\n}\\r\\n.hover\\\\:bg-accent:hover {\\n --tw-bg-opacity: 1;\\n background-color: rgb(0 106 255 / var(--tw-bg-opacity, 1));\\n}\\r\\n.hover\\\\:bg-blue-700:hover {\\n --tw-bg-opacity: 1;\\n background-color: rgb(29 78 216 / var(--tw-bg-opacity, 1));\\n}\\r\\n.hover\\\\:bg-gray-100:hover {\\n --tw-bg-opacity: 1;\\n background-color: rgb(243 244 246 / var(--tw-bg-opacity, 1));\\n}\\r\\n.hover\\\\:bg-gray-50:hover {\\n --tw-bg-opacity: 1;\\n background-color: rgb(249 250 251 / var(--tw-bg-opacity, 1));\\n}\\r\\n.hover\\\\:bg-primary:hover {\\n --tw-bg-opacity: 1;\\n background-color: rgb(51 51 51 / var(--tw-bg-opacity, 1));\\n}\\r\\n.hover\\\\:bg-white:hover {\\n --tw-bg-opacity: 1;\\n background-color: rgb(255 255 255 / var(--tw-bg-opacity, 1));\\n}\\r\\n.hover\\\\:from-blue-600:hover {\\n --tw-gradient-from: #2563eb var(--tw-gradient-from-position);\\n --tw-gradient-to: rgb(37 99 235 / 0) var(--tw-gradient-to-position);\\n --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);\\n}\\r\\n.hover\\\\:to-accent:hover {\\n --tw-gradient-to: #006AFF var(--tw-gradient-to-position);\\n}\\r\\n.hover\\\\:text-accent:hover {\\n --tw-text-opacity: 1;\\n color: rgb(0 106 255 / var(--tw-text-opacity, 1));\\n}\\r\\n.hover\\\\:text-blue-700:hover {\\n --tw-text-opacity: 1;\\n color: rgb(29 78 216 / var(--tw-text-opacity, 1));\\n}\\r\\n.hover\\\\:text-primary:hover {\\n --tw-text-opacity: 1;\\n color: rgb(51 51 51 / var(--tw-text-opacity, 1));\\n}\\r\\n.hover\\\\:text-white:hover {\\n --tw-text-opacity: 1;\\n color: rgb(255 255 255 / var(--tw-text-opacity, 1));\\n}\\r\\n.hover\\\\:underline:hover {\\n text-decoration-line: underline;\\n}\\r\\n.hover\\\\:opacity-90:hover {\\n opacity: 0.9;\\n}\\r\\n.hover\\\\:shadow-2xl:hover {\\n --tw-shadow: 0 25px 50px -12px rgb(0 0 0 / 0.25);\\n --tw-shadow-colored: 0 25px 50px -12px var(--tw-shadow-color);\\n box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);\\n}\\r\\n.hover\\\\:shadow-lg:hover {\\n --tw-shadow: 0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1);\\n --tw-shadow-colored: 0 10px 15px -3px var(--tw-shadow-color), 0 4px 6px -4px var(--tw-shadow-color);\\n box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);\\n}\\r\\n.hover\\\\:shadow-xl:hover {\\n --tw-shadow: 0 20px 25px -5px rgb(0 0 0 / 0.1), 0 8px 10px -6px rgb(0 0 0 / 0.1);\\n --tw-shadow-colored: 0 20px 25px -5px var(--tw-shadow-color), 0 8px 10px -6px var(--tw-shadow-color);\\n box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);\\n}\\r\\n.focus\\\\:border-transparent:focus {\\n border-color: transparent;\\n}\\r\\n.focus\\\\:outline-none:focus {\\n outline: 2px solid transparent;\\n outline-offset: 2px;\\n}\\r\\n.focus\\\\:ring-2:focus {\\n --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);\\n --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);\\n box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000);\\n}\\r\\n.focus\\\\:ring-accent:focus {\\n --tw-ring-opacity: 1;\\n --tw-ring-color: rgb(0 106 255 / var(--tw-ring-opacity, 1));\\n}\\r\\n.disabled\\\\:cursor-not-allowed:disabled {\\n cursor: not-allowed;\\n}\\r\\n.disabled\\\\:opacity-50:disabled {\\n opacity: 0.5;\\n}\\r\\n.group:hover .group-hover\\\\:translate-x-1 {\\n --tw-translate-x: 0.25rem;\\n transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));\\n}\\r\\n.group:hover .group-hover\\\\:scale-110 {\\n --tw-scale-x: 1.1;\\n --tw-scale-y: 1.1;\\n transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));\\n}\\r\\n.group:hover .group-hover\\\\:gap-3 {\\n gap: 0.75rem;\\n}\\r\\n.group:hover .group-hover\\\\:bg-accent {\\n --tw-bg-opacity: 1;\\n background-color: rgb(0 106 255 / var(--tw-bg-opacity, 1));\\n}\\r\\n.group:hover .group-hover\\\\:text-accent {\\n --tw-text-opacity: 1;\\n color: rgb(0 106 255 / var(--tw-text-opacity, 1));\\n}\\r\\n.group:hover .group-hover\\\\:text-white {\\n --tw-text-opacity: 1;\\n color: rgb(255 255 255 / var(--tw-text-opacity, 1));\\n}\\r\\n@media (min-width: 640px) {\\n\\n .sm\\\\:flex-row {\\n flex-direction: row;\\n }\\n}\\r\\n@media (min-width: 768px) {\\n\\n .md\\\\:col-span-2 {\\n grid-column: span 2 / span 2;\\n }\\n\\n .md\\\\:mt-0 {\\n margin-top: 0px;\\n }\\n\\n .md\\\\:flex {\\n display: flex;\\n }\\n\\n .md\\\\:hidden {\\n display: none;\\n }\\n\\n .md\\\\:w-1\\\\/2 {\\n width: 50%;\\n }\\n\\n .md\\\\:grid-cols-2 {\\n grid-template-columns: repeat(2, minmax(0, 1fr));\\n }\\n\\n .md\\\\:grid-cols-3 {\\n grid-template-columns: repeat(3, minmax(0, 1fr));\\n }\\n\\n .md\\\\:grid-cols-4 {\\n grid-template-columns: repeat(4, minmax(0, 1fr));\\n }\\n\\n .md\\\\:grid-cols-5 {\\n grid-template-columns: repeat(5, minmax(0, 1fr));\\n }\\n\\n .md\\\\:flex-row {\\n flex-direction: row;\\n }\\n\\n .md\\\\:p-12 {\\n padding: 3rem;\\n }\\n\\n .md\\\\:text-3xl {\\n font-size: 1.875rem;\\n line-height: 2.25rem;\\n }\\n\\n .md\\\\:text-4xl {\\n font-size: 2.25rem;\\n line-height: 2.5rem;\\n }\\n\\n .md\\\\:text-5xl {\\n font-size: 3rem;\\n line-height: 1;\\n }\\n}\\r\\n@media (min-width: 1024px) {\\n\\n .lg\\\\:col-span-2 {\\n grid-column: span 2 / span 2;\\n }\\n\\n .lg\\\\:grid-cols-2 {\\n grid-template-columns: repeat(2, minmax(0, 1fr));\\n }\\n\\n .lg\\\\:grid-cols-3 {\\n grid-template-columns: repeat(3, minmax(0, 1fr));\\n }\\n\\n .lg\\\\:grid-cols-4 {\\n grid-template-columns: repeat(4, minmax(0, 1fr));\\n }\\n\\n .lg\\\\:grid-cols-6 {\\n grid-template-columns: repeat(6, minmax(0, 1fr));\\n }\\n\\n .lg\\\\:flex-row {\\n flex-direction: row;\\n }\\n}\\r\\n@media (min-width: 1280px) {\\n\\n .xl\\\\:grid-cols-3 {\\n grid-template-columns: repeat(3, minmax(0, 1fr));\\n }\\n}\", \"\",{\"version\":3,\"sources\":[\"webpack://styles/globals.css\"],\"names\":[],\"mappings\":\"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B;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA,iBAAmB;EAAnB;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA,gBAAmB;EAAnB,oBAAmB;EAAnB,4BAAmB;EAAnB;AAAmB;AAAnB;EAAA,gBAAmB;EAAnB,oBAAmB;EAAnB,4BAAmB;EAAnB;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AA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AAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA,iBAAmB;EAAnB;AAAmB;AAAnB;EAAA,mBAAmB;EAAnB;AAAmB;AAAnB;EAAA,kBAAmB;EAAnB;AAAmB;AAAnB;EAAA,eAAmB;EAAnB;AAAmB;AAAnB;EAAA,eAAmB;EAAnB;AAAmB;AAAnB;EAAA,mBAAmB;EAAnB;AAAmB;AAAnB;EAAA,mBAAmB;EAAnB;AAAmB;AAAnB;EAAA,kBAAmB;EAAnB;AAAmB;AAAnB;EAAA,kBAAmB;EAAnB;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA,oBAAmB;EAAnB;AAAmB;AAAnB;EAAA,oBAAmB;EAAnB;AAAmB;AAAnB;EAAA,oBAAmB;EAAnB;AAAmB;AAAnB;EAAA,oBAAmB;EAAnB;AAAmB;AAAnB;EAAA,oBAAmB;EAAnB;AAAmB;AAAnB;EAAA,oBAAmB;EAAnB;AAAmB;AAAnB;EAAA,oBAAmB;EAAnB;AAAmB;AAAnB;EAAA,oBAAmB;EAAnB;AAAmB;AAAnB;EAAA,oBAAmB;EAAnB;AAAmB;AAAnB;EAAA,oBAAmB;EAAnB;AAAmB;AAAnB;EAAA,oBAAmB;EAAnB;AAAmB;AAAnB;EAAA,oBAAmB;EAAnB;AAAmB;AAAnB;EAAA,oBAAmB;EAAnB;AAAmB;AAAnB;EAAA,oBAAmB;EAAnB;AAAmB;AAAnB;EAAA,oBAAmB;EAAnB;AAAmB;AAAnB;EAAA,oBAAmB;EAAnB;AAAmB;AAAnB;EAAA,oBAAmB;EAAnB;AAAmB;AAAnB;EAAA,oBAAmB;EAAnB;AAAmB;AAAnB;EAAA,oBAAmB;EAAnB;AAAmB;AAAnB;EAAA,oBAAmB;EAAnB;AAAmB;AAAnB;EAAA,oBAAm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\",\"sourcesContent\":[\"@tailwind base;\\r\\n@tailwind components;\\r\\n@tailwind utilities;\\r\\n\\r\\nbody {\\r\\n @apply bg-background text-primary font-sans;\\r\\n}\\r\\n\\r\\nmain {\\r\\n @apply flex flex-col gap-section;\\r\\n}\\r\\n\\r\\n/* 文本截断样式 */\\r\\n.line-clamp-2 {\\r\\n display: -webkit-box;\\r\\n -webkit-line-clamp: 2;\\r\\n -webkit-box-orient: vertical;\\r\\n overflow: hidden;\\r\\n}\\r\\n\\r\\n.line-clamp-3 {\\r\\n display: -webkit-box;\\r\\n -webkit-line-clamp: 3;\\r\\n -webkit-box-orient: vertical;\\r\\n overflow: hidden;\\r\\n}\\r\\n\\r\\n/* 自定义滚动条 */\\r\\n::-webkit-scrollbar {\\r\\n width: 8px;\\r\\n}\\r\\n\\r\\n::-webkit-scrollbar-track {\\r\\n background: #f1f1f1;\\r\\n border-radius: 4px;\\r\\n}\\r\\n\\r\\n::-webkit-scrollbar-thumb {\\r\\n background: #c1c1c1;\\r\\n border-radius: 4px;\\r\\n}\\r\\n\\r\\n::-webkit-scrollbar-thumb:hover {\\r\\n background: #a8a8a8;\\r\\n}\\r\\n\\r\\n/* 平滑滚动 */\\r\\nhtml {\\r\\n scroll-behavior: smooth;\\r\\n}\\r\\n\\r\\n/* 焦点样式 */\\r\\n.focus\\\\:ring-2:focus {\\r\\n --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);\\r\\n --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);\\r\\n box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000);\\r\\n}\"],\"sourceRoot\":\"\"}]);\n// Exports\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (___CSS_LOADER_EXPORT___);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvYnVpbGQvd2VicGFjay9sb2FkZXJzL2Nzcy1sb2FkZXIvc3JjL2luZGV4LmpzPz9ydWxlU2V0WzFdLnJ1bGVzWzddLm9uZU9mWzEzXS51c2VbMV0hLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2J1aWxkL3dlYnBhY2svbG9hZGVycy9wb3N0Y3NzLWxvYWRlci9zcmMvaW5kZXguanM/P3J1bGVTZXRbMV0ucnVsZXNbN10ub25lT2ZbMTNdLnVzZVsyXSEuL3N0eWxlcy9nbG9iYWxzLmNzcyIsIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQTtBQUN3SDtBQUN4SCw4QkFBOEIsa0hBQTJCO0FBQ3pEO0FBQ0EsZ0VBQWdFLDZCQUE2Qiw2QkFBNkIsd0JBQXdCLHdCQUF3QixtQkFBbUIsbUJBQW1CLG1CQUFtQixvQkFBb0Isb0JBQW9CLGtCQUFrQixrQkFBa0IsdUJBQXVCLDJDQUEyQyxtQ0FBbUMsa0NBQWtDLGlDQUFpQyxvQkFBb0IseUJBQXlCLDJCQUEyQiw0QkFBNEIsNkJBQTZCLHVCQUF1QixnQ0FBZ0MsaUNBQWlDLDJDQUEyQyx1Q0FBdUMsZ0NBQWdDLDJCQUEyQixtQ0FBbUMsaUJBQWlCLHVCQUF1QixxQkFBcUIsc0JBQXNCLHVCQUF1QixtQkFBbUIscUJBQXFCLGtCQUFrQix3QkFBd0IsMEJBQTBCLGdDQUFnQyw4QkFBOEIsK0JBQStCLGdDQUFnQyw0QkFBNEIsNkJBQTZCLDhCQUE4QiwyQkFBMkIseUJBQXlCLDJCQUEyQiwwQkFBMEIsMEJBQTBCLEdBQUcsZ0JBQWdCLDZCQUE2Qiw2QkFBNkIsd0JBQXdCLHdCQUF3QixtQkFBbUIsbUJBQW1CLG1CQUFtQixvQkFBb0Isb0JBQW9CLGtCQUFrQixrQkFBa0IsdUJBQXVCLDJDQUEyQyxtQ0FBbUMsa0NBQWtDLGlDQUFpQyxvQkFBb0IseUJBQXlCLDJCQUEyQiw0QkFBNEIsNkJBQTZCLHVCQUF1QixnQ0FBZ0MsaUNBQWlDLDJDQUEyQyx1Q0FBdUMsZ0NBQWdDLDJCQUEyQixtQ0FBbUMsaUJBQWlCLHVCQUF1QixxQkFBcUIsc0JBQXNCLHVCQUF1QixtQkFBbUIscUJBQXFCLGtCQUFrQix3QkFBd0IsMEJBQTBCLGdDQUFnQyw4QkFBOEIsK0JBQStCLGdDQUFnQyw0QkFBNEIsNkJBQTZCLDhCQUE4QiwyQkFBMkIseUJBQXlCLDJCQUEyQiwwQkFBMEIsMEJBQTBCLEdBQUcsaVZBQWlWLDRCQUE0Qiw0QkFBNEIsZ0NBQWdDLGtDQUFrQyxVQUFVLHdCQUF3QixxQkFBcUIsR0FBRywrYUFBK2Esc0JBQXNCLDJDQUEyQyw2QkFBNkIsMEJBQTBCLG9CQUFvQiwyQ0FBMkMsMENBQTBDLDRDQUE0QyxxREFBcUQsVUFBVSxnS0FBZ0ssZUFBZSxpQ0FBaUMsVUFBVSwyTkFBMk4sZUFBZSwyQkFBMkIsa0NBQWtDLFVBQVUsaUdBQWlHLDhDQUE4Qyw4Q0FBOEMsR0FBRyxrR0FBa0csdUJBQXVCLHlCQUF5QixHQUFHLGlGQUFpRixtQkFBbUIsNkJBQTZCLEdBQUcsMkVBQTJFLHdCQUF3QixHQUFHLDBTQUEwUyx5SEFBeUgsMENBQTBDLDRDQUE0QywyQkFBMkIsVUFBVSxpRUFBaUUsbUJBQW1CLEdBQUcsMkdBQTJHLG1CQUFtQixtQkFBbUIsdUJBQXVCLDZCQUE2QixHQUFHLFNBQVMsb0JBQW9CLEdBQUcsU0FBUyxnQkFBZ0IsR0FBRyxnYkFBZ2Isb0JBQW9CLGtDQUFrQyxzQ0FBc0MsVUFBVSxrTUFBa00sMEJBQTBCLDJDQUEyQyw2Q0FBNkMsNEJBQTRCLGlDQUFpQyxpQ0FBaUMsb0NBQW9DLDJCQUEyQixzQkFBc0IsdUJBQXVCLFVBQVUsOEZBQThGLHlCQUF5QixHQUFHLDBOQUEwTixnQ0FBZ0MsMENBQTBDLG1DQUFtQyxVQUFVLCtGQUErRixrQkFBa0IsR0FBRywrTUFBK00scUJBQXFCLEdBQUcsbUZBQW1GLDZCQUE2QixHQUFHLGlKQUFpSixpQkFBaUIsR0FBRyw2SEFBNkgsbUNBQW1DLGlDQUFpQyxVQUFVLG9HQUFvRyw2QkFBNkIsR0FBRyxxS0FBcUssZ0NBQWdDLDBCQUEwQixVQUFVLHNFQUFzRSx1QkFBdUIsR0FBRyw0SkFBNEosY0FBYyxHQUFHLGNBQWMsY0FBYyxlQUFlLEdBQUcsWUFBWSxlQUFlLEdBQUcsb0JBQW9CLHFCQUFxQixjQUFjLGVBQWUsR0FBRyx3REFBd0QsZUFBZSxHQUFHLDZFQUE2RSxxQkFBcUIsR0FBRyxrUUFBa1EsZ0JBQWdCLDJCQUEyQixVQUFVLGdEQUFnRCxnQkFBZ0IsMkJBQTJCLFVBQVUsK0VBQStFLG9CQUFvQixHQUFHLGlGQUFpRixvQkFBb0IsR0FBRyxtYkFBbWIsb0JBQW9CLG1DQUFtQyxVQUFVLHdLQUF3SyxvQkFBb0IsaUJBQWlCLEdBQUcsK0hBQStILGtCQUFrQixHQUFHLGdCQUFnQixnQkFBZ0IsR0FBRywrQkFBK0Isa0JBQWtCLHVCQUF1QixLQUFLLEdBQUcsK0JBQStCLGtCQUFrQix1QkFBdUIsS0FBSyxHQUFHLGdDQUFnQyxrQkFBa0Isd0JBQXdCLEtBQUssR0FBRyxnQ0FBZ0Msa0JBQWtCLHdCQUF3QixLQUFLLEdBQUcsZ0NBQWdDLGtCQUFrQix3QkFBd0IsS0FBSyxHQUFHLFlBQVksb0JBQW9CLEdBQUcsZUFBZSx1QkFBdUIsR0FBRyxlQUFlLHVCQUF1QixHQUFHLGNBQWMsZUFBZSxHQUFHLGdCQUFnQixhQUFhLGdCQUFnQixHQUFHLGFBQWEsZUFBZSxHQUFHLGdCQUFnQixtQkFBbUIsR0FBRyxnQkFBZ0IsaUJBQWlCLEdBQUcsYUFBYSxjQUFjLEdBQUcsaUJBQWlCLGNBQWMsR0FBRyxpQkFBaUIsY0FBYyxHQUFHLGNBQWMsaUJBQWlCLEdBQUcsYUFBYSxrQkFBa0IsR0FBRyxhQUFhLGVBQWUsR0FBRyxjQUFjLGVBQWUsR0FBRyxlQUFlLGtCQUFrQixHQUFHLGVBQWUsZ0JBQWdCLEdBQUcsWUFBWSxhQUFhLEdBQUcsZ0JBQWdCLGFBQWEsR0FBRyxhQUFhLGdCQUFnQixHQUFHLGFBQWEsY0FBYyxHQUFHLFlBQVksY0FBYyxHQUFHLFdBQVcsZ0JBQWdCLEdBQUcsV0FBVyxnQkFBZ0IsR0FBRyxjQUFjLHNCQUFzQix1QkFBdUIsR0FBRyxXQUFXLDJCQUEyQixHQUFHLFlBQVksd0JBQXdCLEdBQUcsWUFBWSx3QkFBd0IsR0FBRyxXQUFXLDBCQUEwQixHQUFHLFdBQVcsMkJBQTJCLEdBQUcsV0FBVyx3QkFBd0IsR0FBRyxXQUFXLDBCQUEwQixHQUFHLFdBQVcsd0JBQXdCLEdBQUcsaUJBQWlCLHdCQUF3QixHQUFHLFdBQVcseUJBQXlCLEdBQUcsV0FBVyx3QkFBd0IsR0FBRyxXQUFXLDBCQUEwQixHQUFHLFdBQVcseUJBQXlCLEdBQUcsV0FBVywwQkFBMEIsR0FBRyxXQUFXLHVCQUF1QixHQUFHLGVBQWUseUJBQXlCLEdBQUcsV0FBVyx3QkFBd0IsR0FBRyxZQUFZLHFCQUFxQixHQUFHLFlBQVkscUJBQXFCLEdBQUcsV0FBVyx1QkFBdUIsR0FBRyxZQUFZLHFCQUFxQixHQUFHLFdBQVcscUJBQXFCLEdBQUcsV0FBVyxxQkFBcUIsR0FBRyxtQkFBbUIscUJBQXFCLHlCQUF5QixpQ0FBaUMsMEJBQTBCLEdBQUcsbUJBQW1CLHFCQUFxQix5QkFBeUIsaUNBQWlDLDBCQUEwQixHQUFHLFlBQVksbUJBQW1CLEdBQUcsV0FBVyxrQkFBa0IsR0FBRyxrQkFBa0IseUJBQXlCLEdBQUcsV0FBVyxrQkFBa0IsR0FBRyxhQUFhLGtCQUFrQixHQUFHLGNBQWMscUJBQXFCLEdBQUcsV0FBVyxtQkFBbUIsR0FBRyxXQUFXLGlCQUFpQixHQUFHLFdBQVcsaUJBQWlCLEdBQUcsV0FBVyxpQkFBaUIsR0FBRyxXQUFXLGlCQUFpQixHQUFHLFVBQVUsb0JBQW9CLEdBQUcsVUFBVSxpQkFBaUIsR0FBRyxXQUFXLGtCQUFrQixHQUFHLFVBQVUsb0JBQW9CLEdBQUcsVUFBVSxtQkFBbUIsR0FBRyxVQUFVLGlCQUFpQixHQUFHLGFBQWEsaUJBQWlCLEdBQUcsYUFBYSxpQkFBaUIsR0FBRyx1QkFBdUIscUJBQXFCLEdBQUcsVUFBVSxtQkFBbUIsR0FBRyxjQUFjLGVBQWUsR0FBRyxXQUFXLGtCQUFrQixHQUFHLFdBQVcsZ0JBQWdCLEdBQUcsV0FBVyxnQkFBZ0IsR0FBRyxXQUFXLGdCQUFnQixHQUFHLFdBQVcsZ0JBQWdCLEdBQUcsVUFBVSxtQkFBbUIsR0FBRyxVQUFVLGdCQUFnQixHQUFHLFVBQVUsbUJBQW1CLEdBQUcsVUFBVSxrQkFBa0IsR0FBRyxXQUFXLGlCQUFpQixHQUFHLFVBQVUsZ0JBQWdCLEdBQUcsYUFBYSxnQkFBZ0IsR0FBRyxnQkFBZ0IscUJBQXFCLEdBQUcsZ0JBQWdCLHFCQUFxQixHQUFHLGdCQUFnQixxQkFBcUIsR0FBRyxpQkFBaUIsb0JBQW9CLEdBQUcsZUFBZSxxQkFBcUIsR0FBRyxzQkFBc0Isc0JBQXNCLEdBQUcsc0JBQXNCLHFCQUFxQixHQUFHLHNCQUFzQixzQkFBc0IsR0FBRyxhQUFhLGlCQUFpQixHQUFHLG9CQUFvQixtQkFBbUIsR0FBRyx5QkFBeUIsMkJBQTJCLG9NQUFvTSxHQUFHLHlCQUF5QiwyQkFBMkIsb01BQW9NLEdBQUcsb0JBQW9CLDBCQUEwQixvTUFBb00sR0FBRyx1QkFBdUIsMkJBQTJCLG9NQUFvTSxHQUFHLGdCQUFnQix1QkFBdUIsb01BQW9NLEdBQUcsZ0JBQWdCLHVCQUF1Qix1QkFBdUIsb01BQW9NLEdBQUcsZ0JBQWdCLG9NQUFvTSxHQUFHLHFCQUFxQixVQUFVLGdDQUFnQyxLQUFLLEdBQUcsbUJBQW1CLHVDQUF1QyxHQUFHLHFCQUFxQixvQkFBb0IsR0FBRyxrQkFBa0IsaUJBQWlCLEdBQUcsa0JBQWtCLHFEQUFxRCxHQUFHLGtCQUFrQixxREFBcUQsR0FBRyxlQUFlLHdCQUF3QixHQUFHLHVCQUF1QixnQ0FBZ0MsR0FBRyxlQUFlLDJCQUEyQixHQUFHLGdCQUFnQixvQkFBb0IsR0FBRyxrQkFBa0IsNEJBQTRCLEdBQUcsbUJBQW1CLHdCQUF3QixHQUFHLHFCQUFxQiwwQkFBMEIsR0FBRyxxQkFBcUIsNEJBQTRCLEdBQUcsc0JBQXNCLG1DQUFtQyxHQUFHLFlBQVksaUJBQWlCLEdBQUcsYUFBYSxjQUFjLEdBQUcsWUFBWSxnQkFBZ0IsR0FBRyxZQUFZLGlCQUFpQixHQUFHLFlBQVksY0FBYyxHQUFHLFlBQVksZ0JBQWdCLEdBQUcsWUFBWSxjQUFjLEdBQUcsa0RBQWtELDRCQUE0Qix5REFBeUQsa0VBQWtFLEdBQUcsa0RBQWtELDRCQUE0QiwyREFBMkQsb0VBQW9FLEdBQUcsa0RBQWtELDRCQUE0QixvRUFBb0UsNkRBQTZELEdBQUcsbURBQW1ELDRCQUE0QixpRUFBaUUsMERBQTBELEdBQUcsa0RBQWtELDRCQUE0QixtRUFBbUUsNERBQTRELEdBQUcsa0RBQWtELDRCQUE0QixvRUFBb0UsNkRBQTZELEdBQUcsa0RBQWtELDRCQUE0QixpRUFBaUUsMERBQTBELEdBQUcsa0RBQWtELDRCQUE0QixtRUFBbUUsNERBQTRELEdBQUcsa0RBQWtELDRCQUE0QixpRUFBaUUsMERBQTBELEdBQUcsc0JBQXNCLHFCQUFxQixHQUFHLGNBQWMsMkJBQTJCLEdBQUcsa0JBQWtCLHdCQUF3QixHQUFHLG1CQUFtQiwwQkFBMEIsR0FBRyxpQkFBaUIsMEJBQTBCLEdBQUcsaUJBQWlCLDJCQUEyQixHQUFHLGFBQWEsc0JBQXNCLEdBQUcsZUFBZSxzQkFBc0IsR0FBRyxlQUFlLDBCQUEwQixHQUFHLHNCQUFzQiwyQkFBMkIsaUVBQWlFLEdBQUcsc0JBQXNCLDJCQUEyQixpRUFBaUUsR0FBRyxzQkFBc0IsMkJBQTJCLGlFQUFpRSxHQUFHLHNCQUFzQiwyQkFBMkIsOERBQThELEdBQUcsdUJBQXVCLDJCQUEyQixpRUFBaUUsR0FBRyxxQkFBcUIsMkJBQTJCLDhEQUE4RCxHQUFHLHFCQUFxQiwyQkFBMkIsaUVBQWlFLEdBQUcsbUJBQW1CLDJCQUEyQixpRUFBaUUsR0FBRyx3QkFBd0IseUNBQXlDLEdBQUcsd0JBQXdCLDJCQUEyQixpRUFBaUUsR0FBRywyQkFBMkIsa0NBQWtDLEdBQUcsZ0JBQWdCLHVCQUF1QiwrREFBK0QsR0FBRyxxQkFBcUIsMkNBQTJDLEdBQUcsb0JBQW9CLHVCQUF1QixpRUFBaUUsR0FBRyxvQkFBb0IsdUNBQXVDLEdBQUcsa0JBQWtCLHVCQUF1QixpRUFBaUUsR0FBRyxpQkFBaUIsdUJBQXVCLGlFQUFpRSxHQUFHLGtCQUFrQix1QkFBdUIsaUVBQWlFLEdBQUcsaUJBQWlCLHVCQUF1QixpRUFBaUUsR0FBRyxrQkFBa0IsdUJBQXVCLDhEQUE4RCxHQUFHLG1CQUFtQix1QkFBdUIsaUVBQWlFLEdBQUcsa0JBQWtCLHVCQUF1QixpRUFBaUUsR0FBRyxtQkFBbUIsdUJBQXVCLCtEQUErRCxHQUFHLG9CQUFvQix1QkFBdUIsaUVBQWlFLEdBQUcsb0JBQW9CLHVCQUF1QixpRUFBaUUsR0FBRyxvQkFBb0IsdUJBQXVCLGdFQUFnRSxHQUFHLGlCQUFpQix1QkFBdUIsaUVBQWlFLEdBQUcsZ0JBQWdCLHVCQUF1QixpRUFBaUUsR0FBRyxrQkFBa0IsdUJBQXVCLGlFQUFpRSxHQUFHLGVBQWUsdUJBQXVCLGlFQUFpRSxHQUFHLG9CQUFvQiw2Q0FBNkMsR0FBRyxvQkFBb0IsNkNBQTZDLEdBQUcsbUJBQW1CLDhDQUE4QyxHQUFHLG9CQUFvQiw2Q0FBNkMsR0FBRyxtQkFBbUIsdUJBQXVCLGlFQUFpRSxHQUFHLHdCQUF3QixpRkFBaUYsR0FBRyx1QkFBdUIsMEVBQTBFLEdBQUcsa0JBQWtCLGlFQUFpRSx3RUFBd0Usd0VBQXdFLEdBQUcsdUJBQXVCLDhFQUE4RSx3RUFBd0Usd0VBQXdFLEdBQUcsbUJBQW1CLGlFQUFpRSwwRUFBMEUsd0VBQXdFLEdBQUcsbUJBQW1CLGlFQUFpRSwwRUFBMEUsd0VBQXdFLEdBQUcsb0JBQW9CLGlFQUFpRSwwRUFBMEUsd0VBQXdFLEdBQUcscUJBQXFCLGlFQUFpRSwwRUFBMEUsd0VBQXdFLEdBQUcscUJBQXFCLGlFQUFpRSwwRUFBMEUsd0VBQXdFLEdBQUcsc0JBQXNCLGlFQUFpRSx5RUFBeUUsd0VBQXdFLEdBQUcsbUJBQW1CLHlFQUF5RSxpSEFBaUgsR0FBRyxxQkFBcUIsMEVBQTBFLEdBQUcsa0JBQWtCLDZEQUE2RCxHQUFHLGlCQUFpQiw2REFBNkQsR0FBRyxrQkFBa0IsNkRBQTZELEdBQUcsa0JBQWtCLDZEQUE2RCxHQUFHLG9CQUFvQiw2REFBNkQsR0FBRyxtQkFBbUIsNkRBQTZELEdBQUcsb0JBQW9CLDZEQUE2RCxHQUFHLG9CQUFvQiw2REFBNkQsR0FBRyxpQkFBaUIsNkRBQTZELEdBQUcsbUJBQW1CLGtDQUFrQyxrQ0FBa0MsR0FBRyxVQUFVLG9CQUFvQixHQUFHLFVBQVUscUJBQXFCLEdBQUcsVUFBVSxrQkFBa0IsR0FBRyxVQUFVLG9CQUFvQixHQUFHLFVBQVUsa0JBQWtCLEdBQUcsV0FBVyx5QkFBeUIsMEJBQTBCLEdBQUcsV0FBVywwQkFBMEIsMkJBQTJCLEdBQUcsV0FBVyx1QkFBdUIsd0JBQXdCLEdBQUcsV0FBVyx5QkFBeUIsMEJBQTBCLEdBQUcsV0FBVyx1QkFBdUIsd0JBQXdCLEdBQUcsV0FBVyx5QkFBeUIsNEJBQTRCLEdBQUcsWUFBWSxzQkFBc0IseUJBQXlCLEdBQUcsWUFBWSxzQkFBc0IseUJBQXlCLEdBQUcsV0FBVyx3QkFBd0IsMkJBQTJCLEdBQUcsWUFBWSxzQkFBc0IseUJBQXlCLEdBQUcsV0FBVyx5QkFBeUIsNEJBQTRCLEdBQUcsV0FBVyxzQkFBc0IseUJBQXlCLEdBQUcsaUJBQWlCLHNCQUFzQix5QkFBeUIsR0FBRyxZQUFZLHlCQUF5QixHQUFHLFlBQVkseUJBQXlCLEdBQUcsV0FBVywyQkFBMkIsR0FBRyxZQUFZLHlCQUF5QixHQUFHLFdBQVcsdUJBQXVCLEdBQUcsV0FBVyx3QkFBd0IsR0FBRyxXQUFXLHdCQUF3QixHQUFHLFlBQVksc0JBQXNCLEdBQUcsV0FBVyxzQkFBc0IsR0FBRyxXQUFXLHdCQUF3QixHQUFHLFdBQVcsc0JBQXNCLEdBQUcsV0FBVyx5QkFBeUIsR0FBRyxnQkFBZ0IscUJBQXFCLEdBQUcsa0JBQWtCLHVCQUF1QixHQUFHLGlCQUFpQixzQkFBc0IsR0FBRyxlQUFlLHNCQUFzQixzQkFBc0IsR0FBRyxlQUFlLHdCQUF3Qix5QkFBeUIsR0FBRyxlQUFlLHVCQUF1Qix3QkFBd0IsR0FBRyxlQUFlLG9CQUFvQixtQkFBbUIsR0FBRyxnQkFBZ0Isb0JBQW9CLHdCQUF3QixHQUFHLGNBQWMsd0JBQXdCLHlCQUF5QixHQUFHLGNBQWMsd0JBQXdCLHlCQUF5QixHQUFHLGNBQWMsdUJBQXVCLHlCQUF5QixHQUFHLGNBQWMsdUJBQXVCLHNCQUFzQixHQUFHLGdCQUFnQixxQkFBcUIsR0FBRyxrQkFBa0IscUJBQXFCLEdBQUcsb0JBQW9CLHFCQUFxQixHQUFHLGFBQWEsdUJBQXVCLEdBQUcsc0JBQXNCLHVCQUF1QixHQUFHLGtCQUFrQix5QkFBeUIsc0RBQXNELEdBQUcsb0JBQW9CLHlCQUF5Qix3REFBd0QsR0FBRyxvQkFBb0IseUJBQXlCLHdEQUF3RCxHQUFHLG9CQUFvQix5QkFBeUIsdURBQXVELEdBQUcsb0JBQW9CLHlCQUF5QixzREFBc0QsR0FBRyxvQkFBb0IseUJBQXlCLHdEQUF3RCxHQUFHLG9CQUFvQix5QkFBeUIsd0RBQXdELEdBQUcsb0JBQW9CLHlCQUF5Qix3REFBd0QsR0FBRyxvQkFBb0IseUJBQXlCLHFEQUFxRCxHQUFHLG9CQUFvQix5QkFBeUIscURBQXFELEdBQUcscUJBQXFCLHlCQUF5Qix3REFBd0QsR0FBRyxxQkFBcUIseUJBQXlCLHNEQUFzRCxHQUFHLHFCQUFxQix5QkFBeUIsc0RBQXNELEdBQUcscUJBQXFCLHlCQUF5QixzREFBc0QsR0FBRyxxQkFBcUIseUJBQXlCLHNEQUFzRCxHQUFHLHNCQUFzQix5QkFBeUIsdURBQXVELEdBQUcsc0JBQXNCLHlCQUF5Qix1REFBdUQsR0FBRyxzQkFBc0IseUJBQXlCLHNEQUFzRCxHQUFHLG1CQUFtQix5QkFBeUIscURBQXFELEdBQUcsc0JBQXNCLHlCQUF5Qix3REFBd0QsR0FBRyxzQkFBc0IseUJBQXlCLHVEQUF1RCxHQUFHLHNCQUFzQix5QkFBeUIsdURBQXVELEdBQUcsbUJBQW1CLHlCQUF5QixzREFBc0QsR0FBRyxtQkFBbUIseUJBQXlCLHNEQUFzRCxHQUFHLG1CQUFtQix5QkFBeUIsc0RBQXNELEdBQUcsb0JBQW9CLHlCQUF5Qix1REFBdUQsR0FBRyx1QkFBdUIsdUJBQXVCLEdBQUcsaUJBQWlCLHlCQUF5Qix3REFBd0QsR0FBRyxzQkFBc0IseUJBQXlC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V0FBVyxXQUFXLFdBQVcsV0FBVyxLQUFLLFdBQVcsWUFBWSxNQUFNLE9BQU8scUJBQXFCLG9CQUFvQixxQkFBcUIscUJBQXFCLE1BQU0sTUFBTSxXQUFXLE1BQU0sWUFBWSxNQUFNLE1BQU0scUJBQXFCLHFCQUFxQixxQkFBcUIsVUFBVSxvQkFBb0IscUJBQXFCLHFCQUFxQixxQkFBcUIscUJBQXFCLE1BQU0sT0FBTyxNQUFNLEtBQUssb0JBQW9CLHFCQUFxQixNQUFNLFFBQVEsTUFBTSxLQUFLLG9CQUFvQixvQkFBb0IscUJBQXFCLE1BQU0sTUFBTSxNQUFNLEtBQUssV0FBVyxXQUFXLE1BQU0sTUFBTSxNQUFNLFVBQVUsV0FBVyxXQUFXLE1BQU0sTUFBTSxNQUFNLEtBQUssVUFBVSxXQUFXLE1BQU0sTUFBTSxNQUFNLE1BQU0sV0FBVyxNQUFNLFNBQVMsTUFBTSxRQUFRLHFCQUFxQixxQkFBcUIscUJBQXFCLG9CQUFvQixNQUFNLE1BQU0sTUFBTSxLQUFLLFVBQVUsTUFBTSxNQUFNLE1BQU0sTUFBTSxVQUFVLFVBQVUsV0FBVyxXQUFXLE1BQU0sS0FBSyxVQUFVLE1BQU0sS0FBSyxVQUFVLE1BQU0sUUFBUSxNQUFNLEtBQUssb0JBQW9CLHFCQUFxQixxQkFBcUIsTUFBTSxRQUFRLE1BQU0sU0FBUyxxQkFBcUIscUJBQXFCLHFCQUFxQixvQkFBb0IscUJBQXFCLHFCQUFxQixxQkFBcUIsb0JBQW9CLG9CQUFvQixvQkFBb0IsTUFBTSxNQUFNLE1BQU0sTUFBTSxXQUFXLE1BQU0sT0FBTyxNQUFNLFFBQVEscUJBQXFCLHFCQUFxQixxQkFBcUIsTUFBTSxNQUFNLE1BQU0sS0FBSyxVQUFVLE1BQU0sTUFBTSxNQUFNLEtBQUssV0FBVyxNQUFNLE1BQU0sTUFBTSxLQUFLLFdBQVcsTUFBTSxNQUFNLE1BQU0sTUFBTSxVQUFVLE1BQU0sT0FBTyxNQUFNLEtBQUsscUJBQXFCLHFCQUFxQixNQUFNLE1BQU0sTUFBTSxLQUFLLFdBQVcsTUFBTSxPQUFPLE1BQU0sS0FBSyxxQkFBcUIsb0JBQW9CLE1BQU0sTUFBTSxNQUFNLEtBQUssV0FBVyxNQUFNLE1BQU0sTUFBTSxpQkFBaUIsVUFBVSxNQUFNLEtBQUssVUFBVSxVQUFVLE1BQU0sS0FBSyxVQUFVLE1BQU0sT0FBTyxXQUFXLFVBQVUsVUFBVSxNQUFNLE1BQU0sS0FBSyxLQUFLLFVBQVUsTUFBTSxNQUFNLE1BQU0sS0FBSyxXQUFXLE1BQU0sT0FBTyxNQUFNLEtBQUssb0JBQW9CLG9CQUFvQixNQUFNLE1BQU0sb0JBQW9CLG9CQUFvQixNQUFNLE1BQU0sTUFBTSxNQUFNLFVBQVUsTUFBTSxNQUFNLEtBQUssS0FBSyxVQUFVLE1BQU0sUUFBUSxNQUFNLFlBQVksb0JBQW9CLHFCQUFxQixNQUFNLE1BQU0sTUFBTSxNQUFNLFVBQVUsVUFBVSxNQUFNLFdBQVcsS0FBSyxVQUFVLEtBQUssS0FBSyxLQUFLLE1BQU0sT0FBTyxLQUFLLEtBQUssTUFBTSxLQUFLLE9BQU8sS0FBSyxLQUFLLE1BQU0sS0FBSyxPQUFPLEtBQUssS0FBSyxNQUFNLEtBQUssT0FBTyxLQUFLLEtBQUssTUFBTSxLQUFLLE9BQU8sS0FBSyxLQUFLLE1BQU0sS0FBSyxNQUFNLEtBQUssTUFBTSxNQUFNLEtBQUssTUFBTSxNQUFNLEtBQUssTUFBTSxNQUFNLEtBQUssTUFBTSxNQUFNLFdBQVcsTUFBTSxNQUFNLE1BQU0sS0FBSyxNQUFNLE1BQU0sS0FBSyxNQUFNLE1BQU0sS0FBSyxNQUFNLE1BQU0sS0FBSyxNQUFNLE1BQU0sS0FBSyxNQUFNLE1BQU0sS0FBSyxNQUFNLE1BQU0sS0FBSyxNQUFNLE1BQU0sS0FBSyxNQUFNLE1BQU0sS0FBSyxNQUFNLE1BQU0sS0FBSyxNQUFNLE1BQU0sS0FBSyxNQUFNLE1BQU0sS0FBSyxNQUFNLE1BQU0sS0FBSyxNQUFNLE1BQU0sS0FBSyxNQUFNLE1BQU0sS0FBSyxNQUFNLE1BQU0sS0FBSyxNQUFNLE1BQU0sS0FBSyxNQUFNLE1BQU0sS0FBSyxNQUFNLE1BQU0sS0FBSyxNQUFNLE1BQU0sWUFBWSxNQUFNLE1BQU0sTUFBTSxLQUFLLE1BQU0sTUFBTSxLQUFLLE1BQU0sTUFBTSxLQUFLLE1BQU0sTUFBTSxLQUFLLE1BQU0sTUFBTSxLQUFLLE1BQU0sTUFBTSxLQUFLLE1BQU0sTUFBTSxLQUFLLE1BQU0sTUFBTSxLQUFLLE1BQU0sTUFBTSxLQUFLLE1BQU0sTUFBTSxLQUFLLE1BQU0sTUFBTSxLQUFLLE1BQU0sTUFBTSxLQUFLLE1BQU0sTUFBTSxLQUFLLE1BQU0sTUFBTSxLQUFLLE1BQU0sTUFBTSxLQUFLLE1BQU0sTUFBTSxLQUFLLE1BQU0sTUFBTSxLQUFLLE1BQU0sTUFBTSxLQUFLLE1BQU0sTUFBTSxLQUFLLE1BQU0sTUFBTSxLQUFLLE1BQU0sTUFBTSxLQUFLLE1BQU0sTUFBTSxLQUFLLE1BQU0sTUFBTSxLQUFLLE1BQU0sTUFBTSxZQUFZLGFBQWEsYUFBYSxNQUFNLE1BQU0sTUFBTSxZQUFZLGFBQWEsYUFBYSxNQUFNLE1BQU0sTUFBTSxLQUFLLE1BQU0sTUFBTSxLQUFLLE1BQU0sTUFBTSxLQUFLLE1BQU0sTUFBTSxLQUFLLE1BQU0sTUFBTSxLQUFLLE1BQU0sTUFBTSxLQUFLLE1BQU0sTUFBTSxLQUFLLE1BQU0sTUFBTSxLQUFLLE1BQU0sTUFBTSxLQUFLLE1BQU0sTUFBTSxLQUFLLE1BQU0sTUFBTSxLQUFLLE1BQU0sTUFBTSxLQUFLLE1BQU0sTUFBTSxLQUFLLE1BQU0sTUFBTSxLQUFLLE1BQU0sTUFBTSxLQUFLLE1BQU0sTUFBTSxLQUFLLE1BQU0sTUFBTSxLQUFLLE1BQU0sTUFBTSxLQUFLLE1BQU0sTUFBTSxLQUFLLE1BQU0sTUFBTSxLQUFLLE1BQU0sTUFBTSxLQUFLLE1BQU0sTUFBTSxLQUFLLE1BQU0sTUFBTSxLQUFLLE1BQU0sTUFBTSxLQUFLLE1BQU0sTUFBTSxLQUFLLE1BQU0sTUFBTSxLQUFLLE1BQU0sTUFBTSxLQUFLLE1BQU0sTUFBTSxLQUFLLE1BQU0sTUFBTSxLQUFLLE1BQU0sTUFBTSxLQUFLLE1BQU0sTUFBTSxLQUFLLE1BQU0sTUFBTSxLQUFLLE1BQU0sTUFBTSxLQUFLLE1BQU0sTUFBTSxLQUFLLE1BQU0sTUFBTSxLQUFLLE1BQU0sTUFBTSxLQUFLLE1BQU0sTUFBTSxLQUFLLE1BQU0sTUFBTSxLQUFLLE1BQU0sTUFBTSxLQUFLLE1BQU0sTUFBTSxLQUFLLE1BQU0sTUFBTSxLQUFLLE1BQU0sTUFBTSxLQUFLLE1BQU0sTUFBTSxLQUFLLE1BQU0sTUFBTSxLQUFLLE1BQU0sTUFBTSxZQUFZLE1BQU0sTUFBTSxNQUFNLFlBQVksTUFBTSxNQUFNLE1BQU0sWUFBWSxNQUFNLE1BQU0sTUFBTSxZQUFZLE1BQU0sTUFBTSxNQUFNLFlBQVksTUFBTSxNQUFNLE1BQU0sWUFBWSxhQUFhLE1BQU0sTUFBTSxNQUFNLEtBQUssTUFBTSxPQUFPLEtBQUssS0FBSyxNQUFNLEtBQUssTUFBTSxLQUFLLE1BQU0sTUFBTSxLQUFLLE1BQU0sTUFBTSxLQUFLLE1BQU0sTUFBTSxLQUFLLE1BQU0sTUFBTSxLQUFLLE1BQU0sTUFBTSxLQUFLLE1BQU0sTUFBTSxLQUFLLE1BQU0sTUFBTSxLQUFLLE1BQU0sTUFBTSxLQUFLLE1BQU0sTUFBTSxLQUFLLE1BQU0sTUFBTSxLQUFLLE1BQU0sTUFBTSxLQUFLLE1BQU0sTUFBTSxLQUFLLE1BQU0sTUFBTSxLQUFLLE1BQU0sTUFBTSxLQUFLLE1BQU0sTUFBTSxLQUFLLE1BQU0sTUFBTSxLQUFLLE1BQU0sTUFBTSxLQUFLLE1BQU0sTUFBTSxLQUFLLE1BQU0sTUFBTSxLQUFLLE1BQU0sTUFBTSxLQUFLLE1BQU0sTUFBTSxZQUFZLGFBQWEsTUFBTSxNQUFNLE1BQU0sWUFBWSxhQUFhLE1BQU0sTUFBTSxNQUFNLFlBQVksYUFBYSxNQUFNLE1BQU0sTUFBTSxZQUFZLGFBQWEsTUFBTSxNQUFNLE1BQU0sWUFBWSxhQUFhLE1BQU0sTUFBTSxNQUFNLFlBQVksYUFBYSxNQUFNLE1BQU0sTUFBTSxZQUFZLGFBQWEsTUFBTSxNQUFNLE1BQU0sWUFBWSxhQUFhLE1BQU0sTUFBTSxNQUFNLFlBQVksYUFBYSxNQUFNLE1BQU0sTUFBTSxLQUFLLE1BQU0sTUFBTSxLQUFLLE1BQU0sTUFBTSxLQUFLLE1BQU0sTUFBTSxLQUFLLE1BQU0sTUFBTSxLQUFLLE1BQU0sTUFBTSxLQUFLLE1BQU0sTUFBTSxLQUFLLE1BQU0sTUFBTSxLQUFLLE1BQU0sTUFBTSxLQUFLLE1BQU0sTUFBTSxZQUFZLE1BQU0sTUFBTSxNQUFNLFlBQVksTUFBTSxNQUFNLE1BQU0sWUFBWSxNQUFNLE1BQU0sTUFBTSxZQUFZLE1BQU0sTUFBTSxNQUFNLFlBQVksTUFBTSxNQUFNLE1BQU0sWUFBWSxNQUFNLE1BQU0sTUFBTSxZQUFZLE1BQU0sTUFBTSxNQUFNLFlBQVksTUFBTSxNQUFNLE1BQU0sS0FBSyxNQUFNLE1BQU0sWUFBWSxNQUFNLE1BQU0sTUFBTSxLQUFLLE1BQU0sTUFBTSxZQUFZLE1BQU0sTUFBTSxNQUFNLEtBQUssTUFBTSxNQUFNLFlBQVksTUFBTSxNQUFNLE1BQU0sS0FBSyxNQUFNLE1BQU0sWUFBWSxNQUFNLE1BQU0sTUFBTSxZQUFZLE1BQU0sTUFBTSxNQUFNLFlBQVksTUFBTSxNQUFNLE1BQU0sWUFBWSxNQUFNLE1BQU0sTUFBTSxZQUFZLE1BQU0sTUFBTSxNQUFNLFlBQVksTUFBTSxNQUFNLE1BQU0sWUFBWSxNQUFNLE1BQU0sTUFBTSxZQUFZLE1BQU0sTUFBTSxNQUFNLFlBQVksTUFBTSxNQUFNLE1BQU0sWUFBWSxNQUFNLE1BQU0sTUFBTSxZQUFZLE1BQU0sTUFBTSxNQUFNLFlBQVksTUFBTSxNQUFNLE1BQU0sWUFBWSxNQUFNLE1BQU0sTUFBTSxZQUFZLE1BQU0sTUFBTSxNQUFNLFlBQVksTUFBTSxNQUFNLE1BQU0sS0FBSyxNQUFNLE1BQU0sS0FBSyxNQUFNLE1BQU0sS0FBSyxNQUFNLE1BQU0sS0FBSyxNQUFNLE1BQU0sWUFBWSxNQUFNLE1BQU0sTUFBTSxLQUFLLE1BQU0sTUFBTSxLQUFLLE1BQU0sTUFBTSxZQUFZLGFBQWEsTUFBTSxNQUFNLE1BQU0sWUFBWSxhQUFhLE1BQU0sTUFBTSxNQUFNLFlBQVksYUFBYSxNQUFNLE1BQU0sTUFBTSxZQUFZLGFBQWEsTUFBTSxNQUFNLE1BQU0sWUFBWSxhQUFhLE1BQU0sTUFBTSxNQUFNLFlBQVksYUFBYSxNQUFNLE1BQU0sTUFBTSxZQUFZLGFBQWEsTUFBTSxNQUFNLE1BQU0sWUFBWSxhQUFhLE1BQU0sTUFBTSxNQUFNLFlBQVksTUFBTSxNQUFNLE1BQU0sS0FBSyxNQUFNLE1BQU0sS0FBSyxNQUFNLE1BQU0sS0FBSyxNQUFNLE1BQU0sS0FBSyxNQUFNLE1BQU0sS0FBSyxNQUFNLE1BQU0sS0FBSyxNQUFNLE1BQU0sS0FBSyxNQUFNLE1BQU0sS0FBSyxNQUFNLE1BQU0sS0FBSyxNQUFNLE1BQU0sS0FBSyxNQUFNLE1BQU0sWUFBWSxNQUFNLE1BQU0sTUFBTSxLQUFLLE1BQU0sTUFBTSxLQUFLLE1BQU0sTUFBTSxLQUFLLE1BQU0sTUFBTSxLQUFLLE1BQU0sTUFBTSxLQUFLLE1BQU0sTUFBTSxZQUFZLE1BQU0sTUFBTSxNQUFNLFlBQVksTUFBTSxNQUFNLE1BQU0sWUFBWSxNQUFNLE1BQU0sTUFBTSxZQUFZLE1BQU0sTUFBTSxNQUFNLFlBQVksTUFBTSxNQUFNLE1BQU0sWUFBWSxNQUFNLE1BQU0sTUFBTSxZQUFZLE1BQU0sTUFBTSxNQUFNLFlBQVksTUFBTSxNQUFNLE1BQU0sWUFBWSxNQUFNLE1BQU0sTUFBTSxZQUFZLE1BQU0sTUFBTSxNQUFNLFlBQVksTUFBTSxNQUFNLE1BQU0sWUFBWSxNQUFNLE1BQU0sTUFBTSxZQUFZLE1BQU0sTUFBTSxNQUFNLEtBQUssTUFBTSxNQUFNLEtBQUssTUFBTSxNQUFNLEtBQUssTUFBTSxNQUFNLEtBQUssTUFBTSxNQUFNLEtBQUssTUFBTSxNQUFNLEtBQUssTUFBTSxNQUFNLEtBQUssTUFBTSxNQUFNLEtBQUssTUFBTSxNQUFNLEtBQUssTUFBTSxNQUFNLEtBQUssTUFBTSxNQUFNLEtBQUssTUFBTSxNQUFNLEtBQUssTUFBTSxNQUFNLEtBQUssTUFBTSxNQUFNLEtBQUssTUFBTSxNQUFNLEtBQUssTUFBTSxNQUFNLFlBQVksTUFBTSxNQUFNLE1BQU0sWUFBWSxNQUFNLE1BQU0sTUFBTSxZQUFZLE1BQU0sTUFBTSxNQUFNLFdBQVcsTUFBTSxNQUFNLE1BQU0sV0FBVyxNQUFNLE1BQU0sTUFBTSxZQUFZLE1BQU0sTUFBTSxNQUFNLFlBQVksTUFBTSxNQUFNLE1BQU0sWUFBWSxNQUFNLE1BQU0sTUFBTSxZQUFZLE1BQU0sTUFBTSxNQUFNLEtBQUssTUFBTSxNQUFNLEtBQUssTUFBTSxNQUFNLEtBQUssTUFBTSxNQUFNLEtBQUssTUFBTSxNQUFNLEtBQUssTUFBTSxNQUFNLFlBQVksTUFBTSxNQUFNLE1BQU0sWUFBWSxNQUFNLE1BQU0sTUFBTSxZQUFZLE1BQU0sTUFBTSxNQUFNLFlBQVksTUFBTSxNQUFNLE1BQU0sWUFBWSxNQUFNLE1BQU0sTUFBTSxZQUFZLE1BQU0sTUFBTSxNQUFNLFlBQVksTUFBTSxNQUFNLE1BQU0sWUFBWSxNQUFNLE1BQU0sTUFBTSxZQUFZLE1BQU0sTUFBTSxNQUFNLFlBQVksTUFBTSxNQUFNLE1BQU0sWUFBWSxNQUFNLE1BQU0sTUFBTSxZQUFZLE1BQU0sTUFBTSxNQUFNLFlBQVksTUFBTSxNQUFNLE1BQU0sWUFBWSxNQUFNLE1BQU0sTUFBTSxZQUFZLE1BQU0sTUFBTSxNQUFNLFlBQVksTUFBTSxNQUFNLE1BQU0sWUFBWSxNQUFNLE1BQU0sTUFBTSxZQUFZLE1BQU0sTUFBTSxNQUFNLFlBQVksTUFBTSxNQUFNLE1BQU0sWUFBWSxNQUFNLE1BQU0sTUFBTSxZQUFZLE1BQU0sTUFBTSxNQUFNLFlBQVksTUFBTSxNQUFNLE1BQU0sWUFBWSxNQUFNLE1BQU0sTUFBTSxZQUFZLE1BQU0sTUFBTSxNQUFNLFlBQVksTUFBTSxNQUFNLE1BQU0sWUFBWSxNQUFNLE1BQU0sTUFBTSxLQUFLLE1BQU0sTUFBTSxZQUFZLE1BQU0sTUFBTSxNQUFNLFlBQVksTUFBTSxNQUFNLE1BQU0sWUFBWSxNQUFNLE1BQU0sTUFBTSxZQUFZLE1BQU0sTUFBTSxNQUFNLFlBQVksTUFBTSxNQUFNLE1BQU0sWUFBWSxNQUFNLE1BQU0sTUFBTSxLQUFLLE1BQU0sTUFBTSxLQUFLLE1BQU0sTUFBTSxZQUFZLGFBQWEsTUFBTSxNQUFNLE1BQU0sWUFBWSxhQUFhLE1BQU0sTUFBTSxNQUFNLFlBQVksYUFBYSxNQUFNLE1BQU0sTUFBTSxZQUFZLE1BQU0sTUFBTSxNQUFNLFlBQVksYUFBYSxNQUFNLE1BQU0sTUFBTSxZQUFZLE1BQU0sTUFBTSxNQUFNLEtBQUssTUFBTSxNQUFNLFlBQVksYUFBYSxNQUFNLE1BQU0sTUFBTSxZQUFZLGFBQWEsYUFBYSxhQUFhLE1BQU0sTUFBTSxNQUFNLFlBQVksYUFBYSxNQUFNLE1BQU0sTUFBTSxZQUFZLGFBQWEsTUFBTSxNQUFNLE1BQU0sWUFBWSxhQUFhLE1BQU0sTUFBTSxNQUFNLFlBQVksYUFBYSxNQUFNLE1BQU0sTUFBTSxLQUFLLE9BQU8sTUFBTSxZQUFZLGFBQWEsYUFBYSxhQUFhLE1BQU0sT0FBTyxNQUFNLFdBQVcsYUFBYSxNQUFNLE9BQU8sV0FBVyxLQUFLLFlBQVksYUFBYSxhQUFhLGFBQWEsT0FBTyxLQUFLLFlBQVksYUFBYSxhQUFhLGFBQWEsT0FBTyxVQUFVLEtBQUssVUFBVSxNQUFNLEtBQUssWUFBWSxhQUFhLE9BQU8sS0FBSyxZQUFZLGFBQWEsT0FBTyxLQUFLLFlBQVksT0FBTyxVQUFVLEtBQUssWUFBWSxPQUFPLFVBQVUsS0FBSyxZQUFZLGFBQWEsYUFBYSxNQUFNLE1BQU0sWUFBWSxhQUFhLE1BQU0sTUFBTSxNQUFNLFlBQVksTUFBTSxNQUFNLE1BQU0sS0FBSyxNQUFNLE1BQU0sWUFBWSxNQUFNLE1BQU0sTUFBTSxZQUFZLE1BQU0sTUFBTSxNQUFNLFlBQVksTUFBTSxNQUFNLE1BQU0sWUFBWSxNQUFNLE1BQU0sTUFBTSxZQUFZLE1BQU0sTUFBTSxNQUFNLFlBQVksTUFBTSxNQUFNLE1BQU0sWUFBWSxhQUFhLE1BQU0sTUFBTSxNQUFNLEtBQUssTUFBTSxNQUFNLFlBQVksTUFBTSxNQUFNLE1BQU0sWUFBWSxNQUFNLE1BQU0sTUFBTSxZQUFZLE1BQU0sTUFBTSxNQUFNLFlBQVksTUFBTSxNQUFNLE1BQU0sS0FBSyxNQUFNLE1BQU0sS0FBSyxNQUFNLE1BQU0sWUFBWSxhQUFhLE1BQU0sTUFBTSxNQUFNLFlBQVksYUFBYSxNQUFNLE1BQU0sTUFBTSxZQUFZLGFBQWEsTUFBTSxNQUFNLE1BQU0sS0FBSyxNQUFNLE1BQU0sWUFBWSxNQUFNLE1BQU0sTUFBTSxZQUFZLGFBQWEsTUFBTSxNQUFNLE1BQU0sWUFBWSxNQUFNLE1BQU0sTUFBTSxLQUFLLE1BQU0sTUFBTSxLQUFLLE1BQU0sTUFBTSxZQUFZLE1BQU0sTUFBTSxNQUFNLFlBQVksYUFBYSxNQUFNLE1BQU0sTUFBTSxLQUFLLE1BQU0sTUFBTSxZQUFZLE1BQU0sTUFBTSxNQUFNLFlBQVksTUFBTSxNQUFNLE1BQU0sWUFBWSxNQUFNLE1BQU0sT0FBTyxLQUFLLEtBQUssTUFBTSxLQUFLLE9BQU8sS0FBSyxLQUFLLE9BQU8sTUFBTSxLQUFLLE9BQU8sTUFBTSxLQUFLLE9BQU8sTUFBTSxLQUFLLE9BQU8sTUFBTSxLQUFLLE9BQU8sTUFBTSxLQUFLLE9BQU8sTUFBTSxLQUFLLE9BQU8sTUFBTSxLQUFLLE9BQU8sTUFBTSxLQUFLLE9BQU8sTUFBTSxLQUFLLE9BQU8sTUFBTSxLQUFLLE9BQU8sTUFBTSxZQUFZLE1BQU0sT0FBTyxNQUFNLFlBQVksTUFBTSxPQUFPLE1BQU0sV0FBVyxNQUFNLE1BQU0sS0FBSyxPQUFPLEtBQUssS0FBSyxPQUFPLE1BQU0sS0FBSyxPQUFPLE1BQU0sS0FBSyxPQUFPLE1BQU0sS0FBSyxPQUFPLE1BQU0sS0FBSyxPQUFPLE1BQU0sS0FBSyxNQUFNLEtBQUssT0FBTyxLQUFLLEtBQUssTUFBTSx3Q0FBd0MseUJBQXlCLHdCQUF3QixjQUFjLGtEQUFrRCxLQUFLLGNBQWMsdUNBQXVDLEtBQUssdUNBQXVDLDJCQUEyQiw0QkFBNEIsbUNBQW1DLHVCQUF1QixLQUFLLHVCQUF1QiwyQkFBMkIsNEJBQTRCLG1DQUFtQyx1QkFBdUIsS0FBSyw2Q0FBNkMsaUJBQWlCLEtBQUssbUNBQW1DLDBCQUEwQix5QkFBeUIsS0FBSyxtQ0FBbUMsMEJBQTBCLHlCQUF5QixLQUFLLHlDQUF5QywwQkFBMEIsS0FBSyw0QkFBNEIsOEJBQThCLEtBQUssNkNBQTZDLGtIQUFrSCxnSEFBZ0gsbUdBQW1HLEtBQUssbUJBQW1CO0FBQ3Jzd0Q7QUFDQSxpRUFBZSx1QkFBdUIsRUFBQyIsInNvdXJjZXMiOlsiRDpcXGRvbmd5dW4tcHJvamVjdHNcXHR3b1xcc3R5bGVzXFxnbG9iYWxzLmNzcyJdLCJzb3VyY2VzQ29udGVudCI6WyIvLyBJbXBvcnRzXG5pbXBvcnQgX19fQ1NTX0xPQURFUl9BUElfSU1QT1JUX19fIGZyb20gXCIuLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2J1aWxkL3dlYnBhY2svbG9hZGVycy9jc3MtbG9hZGVyL3NyYy9ydW50aW1lL2FwaS5qc1wiO1xudmFyIF9fX0NTU19MT0FERVJfRVhQT1JUX19fID0gX19fQ1NTX0xPQURFUl9BUElfSU1QT1JUX19fKHRydWUpO1xuLy8gTW9kdWxlXG5fX19DU1NfTE9BREVSX0VYUE9SVF9fXy5wdXNoKFttb2R1bGUuaWQsIFwiKiwgOjpiZWZvcmUsIDo6YWZ0ZXIge1xcbiAgLS10dy1ib3JkZXItc3BhY2luZy14OiAwO1xcbiAgLS10dy1ib3JkZXItc3BhY2luZy15OiAwO1xcbiAgLS10dy10cmFuc2xhdGUteDogMDtcXG4gIC0tdHctdHJhbnNsYXRlLXk6IDA7XFxuICAtLXR3LXJvdGF0ZTogMDtcXG4gIC0tdHctc2tldy14OiAwO1xcbiAgLS10dy1za2V3LXk6IDA7XFxuICAtLXR3LXNjYWxlLXg6IDE7XFxuICAtLXR3LXNjYWxlLXk6IDE7XFxuICAtLXR3LXBhbi14OiAgO1xcbiAgLS10dy1wYW4teTogIDtcXG4gIC0tdHctcGluY2gtem9vbTogIDtcXG4gIC0tdHctc2Nyb2xsLXNuYXAtc3RyaWN0bmVzczogcHJveGltaXR5O1xcbiAgLS10dy1ncmFkaWVudC1mcm9tLXBvc2l0aW9uOiAgO1xcbiAgLS10dy1ncmFkaWVudC12aWEtcG9zaXRpb246ICA7XFxuICAtLXR3LWdyYWRpZW50LXRvLXBvc2l0aW9uOiAgO1xcbiAgLS10dy1vcmRpbmFsOiAgO1xcbiAgLS10dy1zbGFzaGVkLXplcm86ICA7XFxuICAtLXR3LW51bWVyaWMtZmlndXJlOiAgO1xcbiAgLS10dy1udW1lcmljLXNwYWNpbmc6ICA7XFxuICAtLXR3LW51bWVyaWMtZnJhY3Rpb246ICA7XFxuICAtLXR3LXJpbmctaW5zZXQ6ICA7XFxuICAtLXR3LXJpbmctb2Zmc2V0LXdpZHRoOiAwcHg7XFxuICAtLXR3LXJpbmctb2Zmc2V0LWNvbG9yOiAjZmZmO1xcbiAgLS10dy1yaW5nLWNvbG9yOiByZ2IoNTkgMTMwIDI0NiAvIDAuNSk7XFxuICAtLXR3LXJpbmctb2Zmc2V0LXNoYWRvdzogMCAwICMwMDAwO1xcbiAgLS10dy1yaW5nLXNoYWRvdzogMCAwICMwMDAwO1xcbiAgLS10dy1zaGFkb3c6IDAgMCAjMDAwMDtcXG4gIC0tdHctc2hhZG93LWNvbG9yZWQ6IDAgMCAjMDAwMDtcXG4gIC0tdHctYmx1cjogIDtcXG4gIC0tdHctYnJpZ2h0bmVzczogIDtcXG4gIC0tdHctY29udHJhc3Q6ICA7XFxuICAtLXR3LWdyYXlzY2FsZTogIDtcXG4gIC0tdHctaHVlLXJvdGF0ZTogIDtcXG4gIC0tdHctaW52ZXJ0OiAgO1xcbiAgLS10dy1zYXR1cmF0ZTogIDtcXG4gIC0tdHctc2VwaWE6ICA7XFxuICAtLXR3LWRyb3Atc2hhZG93OiAgO1xcbiAgLS10dy1iYWNrZHJvcC1ibHVyOiAgO1xcbiAgLS10dy1iYWNrZHJvcC1icmlnaHRuZXNzOiAgO1xcbiAgLS10dy1iYWNrZHJvcC1jb250cmFzdDogIDtcXG4gIC0tdHctYmFja2Ryb3AtZ3JheXNjYWxlOiAgO1xcbiAgLS10dy1iYWNrZHJvcC1odWUtcm90YXRlOiAgO1xcbiAgLS10dy1iYWNrZHJvcC1pbnZlcnQ6ICA7XFxuICAtLXR3LWJhY2tkcm9wLW9wYWNpdHk6ICA7XFxuICAtLXR3LWJhY2tkcm9wLXNhdHVyYXRlOiAgO1xcbiAgLS10dy1iYWNrZHJvcC1zZXBpYTogIDtcXG4gIC0tdHctY29udGFpbi1zaXplOiAgO1xcbiAgLS10dy1jb250YWluLWxheW91dDogIDtcXG4gIC0tdHctY29udGFpbi1wYWludDogIDtcXG4gIC0tdHctY29udGFpbi1zdHlsZTogIDtcXG59XFxuXFxuOjpiYWNrZHJvcCB7XFxuICAtLXR3LWJvcmRlci1zcGFjaW5nLXg6IDA7XFxuICAtLXR3LWJvcmRlci1zcGFjaW5nLXk6IDA7XFxuICAtLXR3LXRyYW5zbGF0ZS14OiAwO1xcbiAgLS10dy10cmFuc2xhdGUteTogMDtcXG4gIC0tdHctcm90YXRlOiAwO1xcbiAgLS10dy1za2V3LXg6IDA7XFxuICAtLXR3LXNrZXcteTogMDtcXG4gIC0tdHctc2NhbGUteDogMTtcXG4gIC0tdHctc2NhbGUteTogMTtcXG4gIC0tdHctcGFuLXg6ICA7XFxuICAtLXR3LXBhbi15OiAgO1xcbiAgLS10dy1waW5jaC16b29tOiAgO1xcbiAgLS10dy1zY3JvbGwtc25hcC1zdHJpY3RuZXNzOiBwcm94aW1pdHk7XFxuICAtLXR3LWdyYWRpZW50LWZyb20tcG9zaXRpb246ICA7XFxuICAtLXR3LWdyYWRpZW50LXZpYS1wb3NpdGlvbjogIDtcXG4gIC0tdHctZ3JhZGllbnQtdG8tcG9zaXRpb246ICA7XFxuICAtLXR3LW9yZGluYWw6ICA7XFxuICAtLXR3LXNsYXNoZWQtemVybzogIDtcXG4gIC0tdHctbnVtZXJpYy1maWd1cmU6ICA7XFxuICAtLXR3LW51bWVyaWMtc3BhY2luZzogIDtcXG4gIC0tdHctbnVtZXJpYy1mcmFjdGlvbjogIDtcXG4gIC0tdHctcmluZy1pbnNldDogIDtcXG4gIC0tdHctcmluZy1vZmZzZXQtd2lkdGg6IDBweDtcXG4gIC0tdHctcmluZy1vZmZzZXQtY29sb3I6ICNmZmY7XFxuICAtLXR3LXJpbmctY29sb3I6IHJnYig1OSAxMzAgMjQ2IC8gMC41KTtcXG4gIC0tdHctcmluZy1vZmZzZXQtc2hhZG93OiAwIDAgIzAwMDA7XFxuICAtLXR3LXJpbmctc2hhZG93OiAwIDAgIzAwMDA7XFxuICAtLXR3LXNoYWRvdzogMCAwICMwMDAwO1xcbiAgLS10dy1zaGFkb3ctY29sb3JlZDogMCAwICMwMDAwO1xcbiAgLS10dy1ibHVyOiAgO1xcbiAgLS10dy1icmlnaHRuZXNzOiAgO1xcbiAgLS10dy1jb250cmFzdDogIDtcXG4gIC0tdHctZ3JheXNjYWxlOiAgO1xcbiAgLS10dy1odWUtcm90YXRlOiAgO1xcbiAgLS10dy1pbnZlcnQ6ICA7XFxuICAtLXR3LXNhdHVyYXRlOiAgO1xcbiAgLS10dy1zZXBpYTogIDtcXG4gIC0tdHctZHJvcC1zaGFkb3c6ICA7XFxuICAtLXR3LWJhY2tkcm9wLWJsdXI6ICA7XFxuICAtLXR3LWJhY2tkcm9wLWJyaWdodG5lc3M6ICA7XFxuICAtLXR3LWJhY2tkcm9wLWNvbnRyYXN0OiAgO1xcbiAgLS10dy1iYWNrZHJvcC1ncmF5c2NhbGU6ICA7XFxuICAtLXR3LWJhY2tkcm9wLWh1ZS1yb3RhdGU6ICA7XFxuICAtLXR3LWJhY2tkcm9wLWludmVydDogIDtcXG4gIC0tdHctYmFja2Ryb3Atb3BhY2l0eTogIDtcXG4gIC0tdHctYmFja2Ryb3Atc2F0dXJhdGU6ICA7XFxuICAtLXR3LWJhY2tkcm9wLXNlcGlhOiAgO1xcbiAgLS10dy1jb250YWluLXNpemU6ICA7XFxuICAtLXR3LWNvbnRhaW4tbGF5b3V0OiAgO1xcbiAgLS10dy1jb250YWluLXBhaW50OiAgO1xcbiAgLS10dy1jb250YWluLXN0eWxlOiAgO1xcbn0vKlxcbiEgdGFpbHdpbmRjc3MgdjMuNC4xNyB8IE1JVCBMaWNlbnNlIHwgaHR0cHM6Ly90YWlsd2luZGNzcy5jb21cXG4qLy8qXFxuMS4gUHJldmVudCBwYWRkaW5nIGFuZCBib3JkZXIgZnJvbSBhZmZlY3RpbmcgZWxlbWVudCB3aWR0aC4gKGh0dHBzOi8vZ2l0aHViLmNvbS9tb3pkZXZzL2Nzc3JlbWVkeS9pc3N1ZXMvNClcXG4yLiBBbGxvdyBhZGRpbmcgYSBib3JkZXIgdG8gYW4gZWxlbWVudCBieSBqdXN0IGFkZGluZyBhIGJvcmRlci13aWR0aC4gKGh0dHBzOi8vZ2l0aHViLmNvbS90YWlsd2luZGNzcy90YWlsd2luZGNzcy9wdWxsLzExNilcXG4qL1xcblxcbiosXFxuOjpiZWZvcmUsXFxuOjphZnRlciB7XFxuICBib3gtc2l6aW5nOiBib3JkZXItYm94OyAvKiAxICovXFxuICBib3JkZXItd2lkdGg6IDA7IC8qIDIgKi9cXG4gIGJvcmRlci1zdHlsZTogc29saWQ7IC8qIDIgKi9cXG4gIGJvcmRlci1jb2xvcjogI2U1ZTdlYjsgLyogMiAqL1xcbn1cXG5cXG46OmJlZm9yZSxcXG46OmFmdGVyIHtcXG4gIC0tdHctY29udGVudDogJyc7XFxufVxcblxcbi8qXFxuMS4gVXNlIGEgY29uc2lzdGVudCBzZW5zaWJsZSBsaW5lLWhlaWdodCBpbiBhbGwgYnJvd3NlcnMuXFxuMi4gUHJldmVudCBhZGp1c3RtZW50cyBvZiBmb250IHNpemUgYWZ0ZXIgb3JpZW50YXRpb24gY2hhbmdlcyBpbiBpT1MuXFxuMy4gVXNlIGEgbW9yZSByZWFkYWJsZSB0YWIgc2l6ZS5cXG40LiBVc2UgdGhlIHVzZXIncyBjb25maWd1cmVkIGBzYW5zYCBmb250LWZhbWlseSBieSBkZWZhdWx0LlxcbjUuIFVzZSB0aGUgdXNlcidzIGNvbmZpZ3VyZWQgYHNhbnNgIGZvbnQtZmVhdHVyZS1zZXR0aW5ncyBieSBkZWZhdWx0LlxcbjYuIFVzZSB0aGUgdXNlcidzIGNvbmZpZ3VyZWQgYHNhbnNgIGZvbnQtdmFyaWF0aW9uLXNldHRpbmdzIGJ5IGRlZmF1bHQuXFxuNy4gRGlzYWJsZSB0YXAgaGlnaGxpZ2h0cyBvbiBpT1NcXG4qL1xcblxcbmh0bWwsXFxuOmhvc3Qge1xcbiAgbGluZS1oZWlnaHQ6IDEuNTsgLyogMSAqL1xcbiAgLXdlYmtpdC10ZXh0LXNpemUtYWRqdXN0OiAxMDAlOyAvKiAyICovXFxuICAtbW96LXRhYi1zaXplOiA0OyAvKiAzICovXFxuICAtby10YWItc2l6ZTogNDtcXG4gICAgIHRhYi1zaXplOiA0OyAvKiAzICovXFxuICBmb250LWZhbWlseTogSW50ZXIsIHNhbnMtc2VyaWY7IC8qIDQgKi9cXG4gIGZvbnQtZmVhdHVyZS1zZXR0aW5nczogbm9ybWFsOyAvKiA1ICovXFxuICBmb250LXZhcmlhdGlvbi1zZXR0aW5nczogbm9ybWFsOyAvKiA2ICovXFxuICAtd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6IHRyYW5zcGFyZW50OyAvKiA3ICovXFxufVxcblxcbi8qXFxuMS4gUmVtb3ZlIHRoZSBtYXJnaW4gaW4gYWxsIGJyb3dzZXJzLlxcbjIuIEluaGVyaXQgbGluZS1oZWlnaHQgZnJvbSBgaHRtbGAgc28gdXNlcnMgY2FuIHNldCB0aGVtIGFzIGEgY2xhc3MgZGlyZWN0bHkgb24gdGhlIGBodG1sYCBlbGVtZW50LlxcbiovXFxuXFxuYm9keSB7XFxuICBtYXJnaW46IDA7IC8qIDEgKi9cXG4gIGxpbmUtaGVpZ2h0OiBpbmhlcml0OyAvKiAyICovXFxufVxcblxcbi8qXFxuMS4gQWRkIHRoZSBjb3JyZWN0IGhlaWdodCBpbiBGaXJlZm94LlxcbjIuIENvcnJlY3QgdGhlIGluaGVyaXRhbmNlIG9mIGJvcmRlciBjb2xvciBpbiBGaXJlZm94LiAoaHR0cHM6Ly9idWd6aWxsYS5tb3ppbGxhLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTkwNjU1KVxcbjMuIEVuc3VyZSBob3Jpem9udGFsIHJ1bGVzIGFyZSB2aXNpYmxlIGJ5IGRlZmF1bHQuXFxuKi9cXG5cXG5ociB7XFxuICBoZWlnaHQ6IDA7IC8qIDEgKi9cXG4gIGNvbG9yOiBpbmhlcml0OyAvKiAyICovXFxuICBib3JkZXItdG9wLXdpZHRoOiAxcHg7IC8qIDMgKi9cXG59XFxuXFxuLypcXG5BZGQgdGhlIGNvcnJlY3QgdGV4dCBkZWNvcmF0aW9uIGluIENocm9tZSwgRWRnZSwgYW5kIFNhZmFyaS5cXG4qL1xcblxcbmFiYnI6d2hlcmUoW3RpdGxlXSkge1xcbiAgLXdlYmtpdC10ZXh0LWRlY29yYXRpb246IHVuZGVybGluZSBkb3R0ZWQ7XFxuICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lIGRvdHRlZDtcXG59XFxuXFxuLypcXG5SZW1vdmUgdGhlIGRlZmF1bHQgZm9udCBzaXplIGFuZCB3ZWlnaHQgZm9yIGhlYWRpbmdzLlxcbiovXFxuXFxuaDEsXFxuaDIsXFxuaDMsXFxuaDQsXFxuaDUsXFxuaDYge1xcbiAgZm9udC1zaXplOiBpbmhlcml0O1xcbiAgZm9udC13ZWlnaHQ6IGluaGVyaXQ7XFxufVxcblxcbi8qXFxuUmVzZXQgbGlua3MgdG8gb3B0aW1pemUgZm9yIG9wdC1pbiBzdHlsaW5nIGluc3RlYWQgb2Ygb3B0LW91dC5cXG4qL1xcblxcbmEge1xcbiAgY29sb3I6IGluaGVyaXQ7XFxuICB0ZXh0LWRlY29yYXRpb246IGluaGVyaXQ7XFxufVxcblxcbi8qXFxuQWRkIHRoZSBjb3JyZWN0IGZvbnQgd2VpZ2h0IGluIEVkZ2UgYW5kIFNhZmFyaS5cXG4qL1xcblxcbmIsXFxuc3Ryb25nIHtcXG4gIGZvbnQtd2VpZ2h0OiBib2xkZXI7XFxufVxcblxcbi8qXFxuMS4gVXNlIHRoZSB1c2VyJ3MgY29uZmlndXJlZCBgbW9ub2AgZm9udC1mYW1pbHkgYnkgZGVmYXVsdC5cXG4yLiBVc2UgdGhlIHVzZXIncyBjb25maWd1cmVkIGBtb25vYCBmb250LWZlYXR1cmUtc2V0dGluZ3MgYnkgZGVmYXVsdC5cXG4zLiBVc2UgdGhlIHVzZXIncyBjb25maWd1cmVkIGBtb25vYCBmb250LXZhcmlhdGlvbi1zZXR0aW5ncyBieSBkZWZhdWx0LlxcbjQuIENvcnJlY3QgdGhlIG9kZCBgZW1gIGZvbnQgc2l6aW5nIGluIGFsbCBicm93c2Vycy5cXG4qL1xcblxcbmNvZGUsXFxua2JkLFxcbnNhbXAsXFxucHJlIHtcXG4gIGZvbnQtZmFtaWx5OiB1aS1tb25vc3BhY2UsIFNGTW9uby1SZWd1bGFyLCBNZW5sbywgTW9uYWNvLCBDb25zb2xhcywgXFxcIkxpYmVyYXRpb24gTW9ub1xcXCIsIFxcXCJDb3VyaWVyIE5ld1xcXCIsIG1vbm9zcGFjZTsgLyogMSAqL1xcbiAgZm9udC1mZWF0dXJlLXNldHRpbmdzOiBub3JtYWw7IC8qIDIgKi9cXG4gIGZvbnQtdmFyaWF0aW9uLXNldHRpbmdzOiBub3JtYWw7IC8qIDMgKi9cXG4gIGZvbnQtc2l6ZTogMWVtOyAvKiA0ICovXFxufVxcblxcbi8qXFxuQWRkIHRoZSBjb3JyZWN0IGZvbnQgc2l6ZSBpbiBhbGwgYnJvd3NlcnMuXFxuKi9cXG5cXG5zbWFsbCB7XFxuICBmb250LXNpemU6IDgwJTtcXG59XFxuXFxuLypcXG5QcmV2ZW50IGBzdWJgIGFuZCBgc3VwYCBlbGVtZW50cyBmcm9tIGFmZmVjdGluZyB0aGUgbGluZSBoZWlnaHQgaW4gYWxsIGJyb3dzZXJzLlxcbiovXFxuXFxuc3ViLFxcbnN1cCB7XFxuICBmb250LXNpemU6IDc1JTtcXG4gIGxpbmUtaGVpZ2h0OiAwO1xcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xcbiAgdmVydGljYWwtYWxpZ246IGJhc2VsaW5lO1xcbn1cXG5cXG5zdWIge1xcbiAgYm90dG9tOiAtMC4yNWVtO1xcbn1cXG5cXG5zdXAge1xcbiAgdG9wOiAtMC41ZW07XFxufVxcblxcbi8qXFxuMS4gUmVtb3ZlIHRleHQgaW5kZW50YXRpb24gZnJvbSB0YWJsZSBjb250ZW50cyBpbiBDaHJvbWUgYW5kIFNhZmFyaS4gKGh0dHBzOi8vYnVncy5jaHJvbWl1bS5vcmcvcC9jaHJvbWl1bS9pc3N1ZXMvZGV0YWlsP2lkPTk5OTA4OCwgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwMTI5NylcXG4yLiBDb3JyZWN0IHRhYmxlIGJvcmRlciBjb2xvciBpbmhlcml0YW5jZSBpbiBhbGwgQ2hyb21lIGFuZCBTYWZhcmkuIChodHRwczovL2J1Z3MuY2hyb21pdW0ub3JnL3AvY2hyb21pdW0vaXNzdWVzL2RldGFpbD9pZD05MzU3MjksIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xOTUwMTYpXFxuMy4gUmVtb3ZlIGdhcHMgYmV0d2VlbiB0YWJsZSBib3JkZXJzIGJ5IGRlZmF1bHQuXFxuKi9cXG5cXG50YWJsZSB7XFxuICB0ZXh0LWluZGVudDogMDsgLyogMSAqL1xcbiAgYm9yZGVyLWNvbG9yOiBpbmhlcml0OyAvKiAyICovXFxuICBib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlOyAvKiAzICovXFxufVxcblxcbi8qXFxuMS4gQ2hhbmdlIHRoZSBmb250IHN0eWxlcyBpbiBhbGwgYnJvd3NlcnMuXFxuMi4gUmVtb3ZlIHRoZSBtYXJnaW4gaW4gRmlyZWZveCBhbmQgU2FmYXJpLlxcbjMuIFJlbW92ZSBkZWZhdWx0IHBhZGRpbmcgaW4gYWxsIGJyb3dzZXJzLlxcbiovXFxuXFxuYnV0dG9uLFxcbmlucHV0LFxcbm9wdGdyb3VwLFxcbnNlbGVjdCxcXG50ZXh0YXJlYSB7XFxuICBmb250LWZhbWlseTogaW5oZXJpdDsgLyogMSAqL1xcbiAgZm9udC1mZWF0dXJlLXNldHRpbmdzOiBpbmhlcml0OyAvKiAxICovXFxuICBmb250LXZhcmlhdGlvbi1zZXR0aW5nczogaW5oZXJpdDsgLyogMSAqL1xcbiAgZm9udC1zaXplOiAxMDAlOyAvKiAxICovXFxuICBmb250LXdlaWdodDogaW5oZXJpdDsgLyogMSAqL1xcbiAgbGluZS1oZWlnaHQ6IGluaGVyaXQ7IC8qIDEgKi9cXG4gIGxldHRlci1zcGFjaW5nOiBpbmhlcml0OyAvKiAxICovXFxuICBjb2xvcjogaW5oZXJpdDsgLyogMSAqL1xcbiAgbWFyZ2luOiAwOyAvKiAyICovXFxuICBwYWRkaW5nOiAwOyAvKiAzICovXFxufVxcblxcbi8qXFxuUmVtb3ZlIHRoZSBpbmhlcml0YW5jZSBvZiB0ZXh0IHRyYW5zZm9ybSBpbiBFZGdlIGFuZCBGaXJlZm94LlxcbiovXFxuXFxuYnV0dG9uLFxcbnNlbGVjdCB7XFxuICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcXG59XFxuXFxuLypcXG4xLiBDb3JyZWN0IHRoZSBpbmFiaWxpdHkgdG8gc3R5bGUgY2xpY2thYmxlIHR5cGVzIGluIGlPUyBhbmQgU2FmYXJpLlxcbjIuIFJlbW92ZSBkZWZhdWx0IGJ1dHRvbiBzdHlsZXMuXFxuKi9cXG5cXG5idXR0b24sXFxuaW5wdXQ6d2hlcmUoW3R5cGU9J2J1dHRvbiddKSxcXG5pbnB1dDp3aGVyZShbdHlwZT0ncmVzZXQnXSksXFxuaW5wdXQ6d2hlcmUoW3R5cGU9J3N1Ym1pdCddKSB7XFxuICAtd2Via2l0LWFwcGVhcmFuY2U6IGJ1dHRvbjsgLyogMSAqL1xcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7IC8qIDIgKi9cXG4gIGJhY2tncm91bmQtaW1hZ2U6IG5vbmU7IC8qIDIgKi9cXG59XFxuXFxuLypcXG5Vc2UgdGhlIG1vZGVybiBGaXJlZm94IGZvY3VzIHN0eWxlIGZvciBhbGwgZm9jdXNhYmxlIGVsZW1lbnRzLlxcbiovXFxuXFxuOi1tb3otZm9jdXNyaW5nIHtcXG4gIG91dGxpbmU6IGF1dG87XFxufVxcblxcbi8qXFxuUmVtb3ZlIHRoZSBhZGRpdGlvbmFsIGA6aW52YWxpZGAgc3R5bGVzIGluIEZpcmVmb3guIChodHRwczovL2dpdGh1Yi5jb20vbW96aWxsYS9nZWNrby1kZXYvYmxvYi8yZjllYWNkOWQzZDk5NWM5MzdiNDI1MWE1NTU3ZDk1ZDQ5NGM5YmUxL2xheW91dC9zdHlsZS9yZXMvZm9ybXMuY3NzI0w3MjgtTDczNylcXG4qL1xcblxcbjotbW96LXVpLWludmFsaWQge1xcbiAgYm94LXNoYWRvdzogbm9uZTtcXG59XFxuXFxuLypcXG5BZGQgdGhlIGNvcnJlY3QgdmVydGljYWwgYWxpZ25tZW50IGluIENocm9tZSBhbmQgRmlyZWZveC5cXG4qL1xcblxcbnByb2dyZXNzIHtcXG4gIHZlcnRpY2FsLWFsaWduOiBiYXNlbGluZTtcXG59XFxuXFxuLypcXG5Db3JyZWN0IHRoZSBjdXJzb3Igc3R5bGUgb2YgaW5jcmVtZW50IGFuZCBkZWNyZW1lbnQgYnV0dG9ucyBpbiBTYWZhcmkuXFxuKi9cXG5cXG46Oi13ZWJraXQtaW5uZXItc3Bpbi1idXR0b24sXFxuOjotd2Via2l0LW91dGVyLXNwaW4tYnV0dG9uIHtcXG4gIGhlaWdodDogYXV0bztcXG59XFxuXFxuLypcXG4xLiBDb3JyZWN0IHRoZSBvZGQgYXBwZWFyYW5jZSBpbiBDaHJvbWUgYW5kIFNhZmFyaS5cXG4yLiBDb3JyZWN0IHRoZSBvdXRsaW5lIHN0eWxlIGluIFNhZmFyaS5cXG4qL1xcblxcblt0eXBlPSdzZWFyY2gnXSB7XFxuICAtd2Via2l0LWFwcGVhcmFuY2U6IHRleHRmaWVsZDsgLyogMSAqL1xcbiAgb3V0bGluZS1vZmZzZXQ6IC0ycHg7IC8qIDIgKi9cXG59XFxuXFxuLypcXG5SZW1vdmUgdGhlIGlubmVyIHBhZGRpbmcgaW4gQ2hyb21lIGFuZCBTYWZhcmkgb24gbWFjT1MuXFxuKi9cXG5cXG46Oi13ZWJraXQtc2VhcmNoLWRlY29yYXRpb24ge1xcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xcbn1cXG5cXG4vKlxcbjEuIENvcnJlY3QgdGhlIGluYWJpbGl0eSB0byBzdHlsZSBjbGlja2FibGUgdHlwZXMgaW4gaU9TIGFuZCBTYWZhcmkuXFxuMi4gQ2hhbmdlIGZvbnQgcHJvcGVydGllcyB0byBgaW5oZXJpdGAgaW4gU2FmYXJpLlxcbiovXFxuXFxuOjotd2Via2l0LWZpbGUtdXBsb2FkLWJ1dHRvbiB7XFxuICAtd2Via2l0LWFwcGVhcmFuY2U6IGJ1dHRvbjsgLyogMSAqL1xcbiAgZm9udDogaW5oZXJpdDsgLyogMiAqL1xcbn1cXG5cXG4vKlxcbkFkZCB0aGUgY29ycmVjdCBkaXNwbGF5IGluIENocm9tZSBhbmQgU2FmYXJpLlxcbiovXFxuXFxuc3VtbWFyeSB7XFxuICBkaXNwbGF5OiBsaXN0LWl0ZW07XFxufVxcblxcbi8qXFxuUmVtb3ZlcyB0aGUgZGVmYXVsdCBzcGFjaW5nIGFuZCBib3JkZXIgZm9yIGFwcHJvcHJpYXRlIGVsZW1lbnRzLlxcbiovXFxuXFxuYmxvY2txdW90ZSxcXG5kbCxcXG5kZCxcXG5oMSxcXG5oMixcXG5oMyxcXG5oNCxcXG5oNSxcXG5oNixcXG5ocixcXG5maWd1cmUsXFxucCxcXG5wcmUge1xcbiAgbWFyZ2luOiAwO1xcbn1cXG5cXG5maWVsZHNldCB7XFxuICBtYXJnaW46IDA7XFxuICBwYWRkaW5nOiAwO1xcbn1cXG5cXG5sZWdlbmQge1xcbiAgcGFkZGluZzogMDtcXG59XFxuXFxub2wsXFxudWwsXFxubWVudSB7XFxuICBsaXN0LXN0eWxlOiBub25lO1xcbiAgbWFyZ2luOiAwO1xcbiAgcGFkZGluZzogMDtcXG59XFxuXFxuLypcXG5SZXNldCBkZWZhdWx0IHN0eWxpbmcgZm9yIGRpYWxvZ3MuXFxuKi9cXG5kaWFsb2cge1xcbiAgcGFkZGluZzogMDtcXG59XFxuXFxuLypcXG5QcmV2ZW50IHJlc2l6aW5nIHRleHRhcmVhcyBob3Jpem9udGFsbHkgYnkgZGVmYXVsdC5cXG4qL1xcblxcbnRleHRhcmVhIHtcXG4gIHJlc2l6ZTogdmVydGljYWw7XFxufVxcblxcbi8qXFxuMS4gUmVzZXQgdGhlIGRlZmF1bHQgcGxhY2Vob2xkZXIgb3BhY2l0eSBpbiBGaXJlZm94LiAoaHR0cHM6Ly9naXRodWIuY29tL3RhaWx3aW5kbGFicy90YWlsd2luZGNzcy9pc3N1ZXMvMzMwMClcXG4yLiBTZXQgdGhlIGRlZmF1bHQgcGxhY2Vob2xkZXIgY29sb3IgdG8gdGhlIHVzZXIncyBjb25maWd1cmVkIGdyYXkgNDAwIGNvbG9yLlxcbiovXFxuXFxuaW5wdXQ6Oi1tb3otcGxhY2Vob2xkZXIsIHRleHRhcmVhOjotbW96LXBsYWNlaG9sZGVyIHtcXG4gIG9wYWNpdHk6IDE7IC8qIDEgKi9cXG4gIGNvbG9yOiAjOWNhM2FmOyAvKiAyICovXFxufVxcblxcbmlucHV0OjpwbGFjZWhvbGRlcixcXG50ZXh0YXJlYTo6cGxhY2Vob2xkZXIge1xcbiAgb3BhY2l0eTogMTsgLyogMSAqL1xcbiAgY29sb3I6ICM5Y2EzYWY7IC8qIDIgKi9cXG59XFxuXFxuLypcXG5TZXQgdGhlIGRlZmF1bHQgY3Vyc29yIGZvciBidXR0b25zLlxcbiovXFxuXFxuYnV0dG9uLFxcbltyb2xlPVxcXCJidXR0b25cXFwiXSB7XFxuICBjdXJzb3I6IHBvaW50ZXI7XFxufVxcblxcbi8qXFxuTWFrZSBzdXJlIGRpc2FibGVkIGJ1dHRvbnMgZG9uJ3QgZ2V0IHRoZSBwb2ludGVyIGN1cnNvci5cXG4qL1xcbjpkaXNhYmxlZCB7XFxuICBjdXJzb3I6IGRlZmF1bHQ7XFxufVxcblxcbi8qXFxuMS4gTWFrZSByZXBsYWNlZCBlbGVtZW50cyBgZGlzcGxheTogYmxvY2tgIGJ5IGRlZmF1bHQuIChodHRwczovL2dpdGh1Yi5jb20vbW96ZGV2cy9jc3NyZW1lZHkvaXNzdWVzLzE0KVxcbjIuIEFkZCBgdmVydGljYWwtYWxpZ246IG1pZGRsZWAgdG8gYWxpZ24gcmVwbGFjZWQgZWxlbWVudHMgbW9yZSBzZW5zaWJseSBieSBkZWZhdWx0LiAoaHR0cHM6Ly9naXRodWIuY29tL2plbnNpbW1vbnMvY3NzcmVtZWR5L2lzc3Vlcy8xNCNpc3N1ZWNvbW1lbnQtNjM0OTM0MjEwKVxcbiAgIFRoaXMgY2FuIHRyaWdnZXIgYSBwb29ybHkgY29uc2lkZXJlZCBsaW50IGVycm9yIGluIHNvbWUgdG9vbHMgYnV0IGlzIGluY2x1ZGVkIGJ5IGRlc2lnbi5cXG4qL1xcblxcbmltZyxcXG5zdmcsXFxudmlkZW8sXFxuY2FudmFzLFxcbmF1ZGlvLFxcbmlmcmFtZSxcXG5lbWJlZCxcXG5vYmplY3Qge1xcbiAgZGlzcGxheTogYmxvY2s7IC8qIDEgKi9cXG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7IC8qIDIgKi9cXG59XFxuXFxuLypcXG5Db25zdHJhaW4gaW1hZ2VzIGFuZCB2aWRlb3MgdG8gdGhlIHBhcmVudCB3aWR0aCBhbmQgcHJlc2VydmUgdGhlaXIgaW50cmluc2ljIGFzcGVjdCByYXRpby4gKGh0dHBzOi8vZ2l0aHViLmNvbS9tb3pkZXZzL2Nzc3JlbWVkeS9pc3N1ZXMvMTQpXFxuKi9cXG5cXG5pbWcsXFxudmlkZW8ge1xcbiAgbWF4LXdpZHRoOiAxMDAlO1xcbiAgaGVpZ2h0OiBhdXRvO1xcbn1cXG5cXG4vKiBNYWtlIGVsZW1lbnRzIHdpdGggdGhlIEhUTUwgaGlkZGVuIGF0dHJpYnV0ZSBzdGF5IGhpZGRlbiBieSBkZWZhdWx0ICovXFxuW2hpZGRlbl06d2hlcmUoOm5vdChbaGlkZGVuPVxcXCJ1bnRpbC1mb3VuZFxcXCJdKSkge1xcbiAgZGlzcGxheTogbm9uZTtcXG59XFxyXFxuLmNvbnRhaW5lciB7XFxuICB3aWR0aDogMTAwJTtcXG59XFxyXFxuQG1lZGlhIChtaW4td2lkdGg6IDY0MHB4KSB7XFxuXFxuICAuY29udGFpbmVyIHtcXG4gICAgbWF4LXdpZHRoOiA2NDBweDtcXG4gIH1cXG59XFxyXFxuQG1lZGlhIChtaW4td2lkdGg6IDc2OHB4KSB7XFxuXFxuICAuY29udGFpbmVyIHtcXG4gICAgbWF4LXdpZHRoOiA3NjhweDtcXG4gIH1cXG59XFxyXFxuQG1lZGlhIChtaW4td2lkdGg6IDEwMjRweCkge1xcblxcbiAgLmNvbnRhaW5lciB7XFxuICAgIG1heC13aWR0aDogMTAyNHB4O1xcbiAgfVxcbn1cXHJcXG5AbWVkaWEgKG1pbi13aWR0aDogMTI4MHB4KSB7XFxuXFxuICAuY29udGFpbmVyIHtcXG4gICAgbWF4LXdpZHRoOiAxMjgwcHg7XFxuICB9XFxufVxcclxcbkBtZWRpYSAobWluLXdpZHRoOiAxNTM2cHgpIHtcXG5cXG4gIC5jb250YWluZXIge1xcbiAgICBtYXgtd2lkdGg6IDE1MzZweDtcXG4gIH1cXG59XFxyXFxuLmZpeGVkIHtcXG4gIHBvc2l0aW9uOiBmaXhlZDtcXG59XFxyXFxuLmFic29sdXRlIHtcXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcXG59XFxyXFxuLnJlbGF0aXZlIHtcXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcXG59XFxyXFxuLmluc2V0LTAge1xcbiAgaW5zZXQ6IDBweDtcXG59XFxyXFxuLmluc2V0LXktMCB7XFxuICB0b3A6IDBweDtcXG4gIGJvdHRvbTogMHB4O1xcbn1cXHJcXG4uLXRvcC00IHtcXG4gIHRvcDogLTFyZW07XFxufVxcclxcbi5ib3R0b20tMTAge1xcbiAgYm90dG9tOiAyLjVyZW07XFxufVxcclxcbi5ib3R0b20tMjAge1xcbiAgYm90dG9tOiA1cmVtO1xcbn1cXHJcXG4ubGVmdC0wIHtcXG4gIGxlZnQ6IDBweDtcXG59XFxyXFxuLmxlZnQtMVxcXFwvMiB7XFxuICBsZWZ0OiA1MCU7XFxufVxcclxcbi5sZWZ0LTFcXFxcLzQge1xcbiAgbGVmdDogMjUlO1xcbn1cXHJcXG4ubGVmdC0xMCB7XFxuICBsZWZ0OiAyLjVyZW07XFxufVxcclxcbi5sZWZ0LTMge1xcbiAgbGVmdDogMC43NXJlbTtcXG59XFxyXFxuLmxlZnQtNCB7XFxuICBsZWZ0OiAxcmVtO1xcbn1cXHJcXG4ucmlnaHQtMCB7XFxuICByaWdodDogMHB4O1xcbn1cXHJcXG4ucmlnaHQtMTAge1xcbiAgcmlnaHQ6IDIuNXJlbTtcXG59XFxyXFxuLnJpZ2h0LTIwIHtcXG4gIHJpZ2h0OiA1cmVtO1xcbn1cXHJcXG4udG9wLTAge1xcbiAgdG9wOiAwcHg7XFxufVxcclxcbi50b3AtMVxcXFwvMiB7XFxuICB0b3A6IDUwJTtcXG59XFxyXFxuLnRvcC0xMCB7XFxuICB0b3A6IDIuNXJlbTtcXG59XFxyXFxuLnRvcC0zMiB7XFxuICB0b3A6IDhyZW07XFxufVxcclxcbi50b3AtNCB7XFxuICB0b3A6IDFyZW07XFxufVxcclxcbi56LTEwIHtcXG4gIHotaW5kZXg6IDEwO1xcbn1cXHJcXG4uei01MCB7XFxuICB6LWluZGV4OiA1MDtcXG59XFxyXFxuLm14LWF1dG8ge1xcbiAgbWFyZ2luLWxlZnQ6IGF1dG87XFxuICBtYXJnaW4tcmlnaHQ6IGF1dG87XFxufVxcclxcbi5tYi0xIHtcXG4gIG1hcmdpbi1ib3R0b206IDAuMjVyZW07XFxufVxcclxcbi5tYi0xMiB7XFxuICBtYXJnaW4tYm90dG9tOiAzcmVtO1xcbn1cXHJcXG4ubWItMTYge1xcbiAgbWFyZ2luLWJvdHRvbTogNHJlbTtcXG59XFxyXFxuLm1iLTIge1xcbiAgbWFyZ2luLWJvdHRvbTogMC41cmVtO1xcbn1cXHJcXG4ubWItMyB7XFxuICBtYXJnaW4tYm90dG9tOiAwLjc1cmVtO1xcbn1cXHJcXG4ubWItNCB7XFxuICBtYXJnaW4tYm90dG9tOiAxcmVtO1xcbn1cXHJcXG4ubWItNiB7XFxuICBtYXJnaW4tYm90dG9tOiAxLjVyZW07XFxufVxcclxcbi5tYi04IHtcXG4gIG1hcmdpbi1ib3R0b206IDJyZW07XFxufVxcclxcbi5tYi1zZWN0aW9uIHtcXG4gIG1hcmdpbi1ib3R0b206IDRyZW07XFxufVxcclxcbi5tbC0xIHtcXG4gIG1hcmdpbi1sZWZ0OiAwLjI1cmVtO1xcbn1cXHJcXG4ubWwtMiB7XFxuICBtYXJnaW4tbGVmdDogMC41cmVtO1xcbn1cXHJcXG4ubXItMSB7XFxuICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XFxufVxcclxcbi5tci0yIHtcXG4gIG1hcmdpbi1yaWdodDogMC41cmVtO1xcbn1cXHJcXG4ubXItMyB7XFxuICBtYXJnaW4tcmlnaHQ6IDAuNzVyZW07XFxufVxcclxcbi5tci00IHtcXG4gIG1hcmdpbi1yaWdodDogMXJlbTtcXG59XFxyXFxuLm10LTBcXFxcLjUge1xcbiAgbWFyZ2luLXRvcDogMC4xMjVyZW07XFxufVxcclxcbi5tdC0xIHtcXG4gIG1hcmdpbi10b3A6IDAuMjVyZW07XFxufVxcclxcbi5tdC0xMiB7XFxuICBtYXJnaW4tdG9wOiAzcmVtO1xcbn1cXHJcXG4ubXQtMTYge1xcbiAgbWFyZ2luLXRvcDogNHJlbTtcXG59XFxyXFxuLm10LTIge1xcbiAgbWFyZ2luLXRvcDogMC41cmVtO1xcbn1cXHJcXG4ubXQtMjAge1xcbiAgbWFyZ2luLXRvcDogNXJlbTtcXG59XFxyXFxuLm10LTQge1xcbiAgbWFyZ2luLXRvcDogMXJlbTtcXG59XFxyXFxuLm10LTgge1xcbiAgbWFyZ2luLXRvcDogMnJlbTtcXG59XFxyXFxuLmxpbmUtY2xhbXAtMiB7XFxuICBvdmVyZmxvdzogaGlkZGVuO1xcbiAgZGlzcGxheTogLXdlYmtpdC1ib3g7XFxuICAtd2Via2l0LWJveC1vcmllbnQ6IHZlcnRpY2FsO1xcbiAgLXdlYmtpdC1saW5lLWNsYW1wOiAyO1xcbn1cXHJcXG4ubGluZS1jbGFtcC0zIHtcXG4gIG92ZXJmbG93OiBoaWRkZW47XFxuICBkaXNwbGF5OiAtd2Via2l0LWJveDtcXG4gIC13ZWJraXQtYm94LW9yaWVudDogdmVydGljYWw7XFxuICAtd2Via2l0LWxpbmUtY2xhbXA6IDM7XFxufVxcclxcbi5ibG9jayB7XFxuICBkaXNwbGF5OiBibG9jaztcXG59XFxyXFxuLmZsZXgge1xcbiAgZGlzcGxheTogZmxleDtcXG59XFxyXFxuLmlubGluZS1mbGV4IHtcXG4gIGRpc3BsYXk6IGlubGluZS1mbGV4O1xcbn1cXHJcXG4uZ3JpZCB7XFxuICBkaXNwbGF5OiBncmlkO1xcbn1cXHJcXG4uaGlkZGVuIHtcXG4gIGRpc3BsYXk6IG5vbmU7XFxufVxcclxcbi5oLTBcXFxcLjUge1xcbiAgaGVpZ2h0OiAwLjEyNXJlbTtcXG59XFxyXFxuLmgtMTAge1xcbiAgaGVpZ2h0OiAyLjVyZW07XFxufVxcclxcbi5oLTEyIHtcXG4gIGhlaWdodDogM3JlbTtcXG59XFxyXFxuLmgtMTYge1xcbiAgaGVpZ2h0OiA0cmVtO1xcbn1cXHJcXG4uaC0yMCB7XFxuICBoZWlnaHQ6IDVyZW07XFxufVxcclxcbi5oLTI0IHtcXG4gIGhlaWdodDogNnJlbTtcXG59XFxyXFxuLmgtMyB7XFxuICBoZWlnaHQ6IDAuNzVyZW07XFxufVxcclxcbi5oLTQge1xcbiAgaGVpZ2h0OiAxcmVtO1xcbn1cXHJcXG4uaC00OCB7XFxuICBoZWlnaHQ6IDEycmVtO1xcbn1cXHJcXG4uaC01IHtcXG4gIGhlaWdodDogMS4yNXJlbTtcXG59XFxyXFxuLmgtNiB7XFxuICBoZWlnaHQ6IDEuNXJlbTtcXG59XFxyXFxuLmgtOCB7XFxuICBoZWlnaHQ6IDJyZW07XFxufVxcclxcbi5oLWF1dG8ge1xcbiAgaGVpZ2h0OiBhdXRvO1xcbn1cXHJcXG4uaC1mdWxsIHtcXG4gIGhlaWdodDogMTAwJTtcXG59XFxyXFxuLm1pbi1oLVxcXFxbNjB2aFxcXFxdIHtcXG4gIG1pbi1oZWlnaHQ6IDYwdmg7XFxufVxcclxcbi53LTEge1xcbiAgd2lkdGg6IDAuMjVyZW07XFxufVxcclxcbi53LTFcXFxcLzIge1xcbiAgd2lkdGg6IDUwJTtcXG59XFxyXFxuLnctMTAge1xcbiAgd2lkdGg6IDIuNXJlbTtcXG59XFxyXFxuLnctMTIge1xcbiAgd2lkdGg6IDNyZW07XFxufVxcclxcbi53LTE2IHtcXG4gIHdpZHRoOiA0cmVtO1xcbn1cXHJcXG4udy0yMCB7XFxuICB3aWR0aDogNXJlbTtcXG59XFxyXFxuLnctMjQge1xcbiAgd2lkdGg6IDZyZW07XFxufVxcclxcbi53LTMge1xcbiAgd2lkdGg6IDAuNzVyZW07XFxufVxcclxcbi53LTQge1xcbiAgd2lkdGg6IDFyZW07XFxufVxcclxcbi53LTUge1xcbiAgd2lkdGg6IDEuMjVyZW07XFxufVxcclxcbi53LTYge1xcbiAgd2lkdGg6IDEuNXJlbTtcXG59XFxyXFxuLnctNjQge1xcbiAgd2lkdGg6IDE2cmVtO1xcbn1cXHJcXG4udy04IHtcXG4gIHdpZHRoOiAycmVtO1xcbn1cXHJcXG4udy1mdWxsIHtcXG4gIHdpZHRoOiAxMDAlO1xcbn1cXHJcXG4ubWF4LXctMnhsIHtcXG4gIG1heC13aWR0aDogNDJyZW07XFxufVxcclxcbi5tYXgtdy0zeGwge1xcbiAgbWF4LXdpZHRoOiA0OHJlbTtcXG59XFxyXFxuLm1heC13LTR4bCB7XFxuICBtYXgtd2lkdGg6IDU2cmVtO1xcbn1cXHJcXG4ubWF4LXctZnVsbCB7XFxuICBtYXgtd2lkdGg6IDEwMCU7XFxufVxcclxcbi5tYXgtdy1tZCB7XFxuICBtYXgtd2lkdGg6IDI4cmVtO1xcbn1cXHJcXG4ubWF4LXctc2NyZWVuLWxnIHtcXG4gIG1heC13aWR0aDogMTAyNHB4O1xcbn1cXHJcXG4ubWF4LXctc2NyZWVuLW1kIHtcXG4gIG1heC13aWR0aDogNzY4cHg7XFxufVxcclxcbi5tYXgtdy1zY3JlZW4teGwge1xcbiAgbWF4LXdpZHRoOiAxMjgwcHg7XFxufVxcclxcbi5mbGV4LTEge1xcbiAgZmxleDogMSAxIDAlO1xcbn1cXHJcXG4uZmxleC1zaHJpbmstMCB7XFxuICBmbGV4LXNocmluazogMDtcXG59XFxyXFxuLi10cmFuc2xhdGUteC0xXFxcXC8yIHtcXG4gIC0tdHctdHJhbnNsYXRlLXg6IC01MCU7XFxuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSh2YXIoLS10dy10cmFuc2xhdGUteCksIHZhcigtLXR3LXRyYW5zbGF0ZS15KSkgcm90YXRlKHZhcigtLXR3LXJvdGF0ZSkpIHNrZXdYKHZhcigtLXR3LXNrZXcteCkpIHNrZXdZKHZhcigtLXR3LXNrZXcteSkpIHNjYWxlWCh2YXIoLS10dy1zY2FsZS14KSkgc2NhbGVZKHZhcigtLXR3LXNjYWxlLXkpKTtcXG59XFxyXFxuLi10cmFuc2xhdGUteS0xXFxcXC8yIHtcXG4gIC0tdHctdHJhbnNsYXRlLXk6IC01MCU7XFxuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSh2YXIoLS10dy10cmFuc2xhdGUteCksIHZhcigtLXR3LXRyYW5zbGF0ZS15KSkgcm90YXRlKHZhcigtLXR3LXJvdGF0ZSkpIHNrZXdYKHZhcigtLXR3LXNrZXcteCkpIHNrZXdZKHZhcigtLXR3LXNrZXcteSkpIHNjYWxlWCh2YXIoLS10dy1zY2FsZS14KSkgc2NhbGVZKHZhcigtLXR3LXNjYWxlLXkpKTtcXG59XFxyXFxuLnRyYW5zbGF0ZS14LTAge1xcbiAgLS10dy10cmFuc2xhdGUteDogMHB4O1xcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUodmFyKC0tdHctdHJhbnNsYXRlLXgpLCB2YXIoLS10dy10cmFuc2xhdGUteSkpIHJvdGF0ZSh2YXIoLS10dy1yb3RhdGUpKSBza2V3WCh2YXIoLS10dy1za2V3LXgpKSBza2V3WSh2YXIoLS10dy1za2V3LXkpKSBzY2FsZVgodmFyKC0tdHctc2NhbGUteCkpIHNjYWxlWSh2YXIoLS10dy1zY2FsZS15KSk7XFxufVxcclxcbi50cmFuc2xhdGUteC1mdWxsIHtcXG4gIC0tdHctdHJhbnNsYXRlLXg6IDEwMCU7XFxuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSh2YXIoLS10dy10cmFuc2xhdGUteCksIHZhcigtLXR3LXRyYW5zbGF0ZS15KSkgcm90YXRlKHZhcigtLXR3LXJvdGF0ZSkpIHNrZXdYKHZhcigtLXR3LXNrZXcteCkpIHNrZXdZKHZhcigtLXR3LXNrZXcteSkpIHNjYWxlWCh2YXIoLS10dy1zY2FsZS14KSkgc2NhbGVZKHZhcigtLXR3LXNjYWxlLXkpKTtcXG59XFxyXFxuLnJvdGF0ZS05MCB7XFxuICAtLXR3LXJvdGF0ZTogOTBkZWc7XFxuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSh2YXIoLS10dy10cmFuc2xhdGUteCksIHZhcigtLXR3LXRyYW5zbGF0ZS15KSkgcm90YXRlKHZhcigtLXR3LXJvdGF0ZSkpIHNrZXdYKHZhcigtLXR3LXNrZXcteCkpIHNrZXdZKHZhcigtLXR3LXNrZXcteSkpIHNjYWxlWCh2YXIoLS10dy1zY2FsZS14KSkgc2NhbGVZKHZhcigtLXR3LXNjYWxlLXkpKTtcXG59XFxyXFxuLnNjYWxlLTEwNSB7XFxuICAtLXR3LXNjYWxlLXg6IDEuMDU7XFxuICAtLXR3LXNjYWxlLXk6IDEuMDU7XFxuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSh2YXIoLS10dy10cmFuc2xhdGUteCksIHZhcigtLXR3LXRyYW5zbGF0ZS15KSkgcm90YXRlKHZhcigtLXR3LXJvdGF0ZSkpIHNrZXdYKHZhcigtLXR3LXNrZXcteCkpIHNrZXdZKHZhcigtLXR3LXNrZXcteSkpIHNjYWxlWCh2YXIoLS10dy1zY2FsZS14KSkgc2NhbGVZKHZhcigtLXR3LXNjYWxlLXkpKTtcXG59XFxyXFxuLnRyYW5zZm9ybSB7XFxuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSh2YXIoLS10dy10cmFuc2xhdGUteCksIHZhcigtLXR3LXRyYW5zbGF0ZS15KSkgcm90YXRlKHZhcigtLXR3LXJvdGF0ZSkpIHNrZXdYKHZhcigtLXR3LXNrZXcteCkpIHNrZXdZKHZhcigtLXR3LXNrZXcteSkpIHNjYWxlWCh2YXIoLS10dy1zY2FsZS14KSkgc2NhbGVZKHZhcigtLXR3LXNjYWxlLXkpKTtcXG59XFxyXFxuQGtleWZyYW1lcyBzcGluIHtcXG5cXG4gIHRvIHtcXG4gICAgdHJhbnNmb3JtOiByb3RhdGUoMzYwZGVnKTtcXG4gIH1cXG59XFxyXFxuLmFuaW1hdGUtc3BpbiB7XFxuICBhbmltYXRpb246IHNwaW4gMXMgbGluZWFyIGluZmluaXRlO1xcbn1cXHJcXG4uY3Vyc29yLXBvaW50ZXIge1xcbiAgY3Vyc29yOiBwb2ludGVyO1xcbn1cXHJcXG4ucmVzaXplLW5vbmUge1xcbiAgcmVzaXplOiBub25lO1xcbn1cXHJcXG4uZ3JpZC1jb2xzLTEge1xcbiAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoMSwgbWlubWF4KDAsIDFmcikpO1xcbn1cXHJcXG4uZ3JpZC1jb2xzLTIge1xcbiAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoMiwgbWlubWF4KDAsIDFmcikpO1xcbn1cXHJcXG4uZmxleC1yb3cge1xcbiAgZmxleC1kaXJlY3Rpb246IHJvdztcXG59XFxyXFxuLmZsZXgtcm93LXJldmVyc2Uge1xcbiAgZmxleC1kaXJlY3Rpb246IHJvdy1yZXZlcnNlO1xcbn1cXHJcXG4uZmxleC1jb2wge1xcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcXG59XFxyXFxuLmZsZXgtd3JhcCB7XFxuICBmbGV4LXdyYXA6IHdyYXA7XFxufVxcclxcbi5pdGVtcy1zdGFydCB7XFxuICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcXG59XFxyXFxuLml0ZW1zLWNlbnRlciB7XFxuICBhbGlnbi1pdGVtczogY2VudGVyO1xcbn1cXHJcXG4uaXRlbXMtYmFzZWxpbmUge1xcbiAgYWxpZ24taXRlbXM6IGJhc2VsaW5lO1xcbn1cXHJcXG4uanVzdGlmeS1jZW50ZXIge1xcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XFxufVxcclxcbi5qdXN0aWZ5LWJldHdlZW4ge1xcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xcbn1cXHJcXG4uZ2FwLTEge1xcbiAgZ2FwOiAwLjI1cmVtO1xcbn1cXHJcXG4uZ2FwLTEyIHtcXG4gIGdhcDogM3JlbTtcXG59XFxyXFxuLmdhcC0yIHtcXG4gIGdhcDogMC41cmVtO1xcbn1cXHJcXG4uZ2FwLTMge1xcbiAgZ2FwOiAwLjc1cmVtO1xcbn1cXHJcXG4uZ2FwLTQge1xcbiAgZ2FwOiAxcmVtO1xcbn1cXHJcXG4uZ2FwLTYge1xcbiAgZ2FwOiAxLjVyZW07XFxufVxcclxcbi5nYXAtOCB7XFxuICBnYXA6IDJyZW07XFxufVxcclxcbi5zcGFjZS14LTQgPiA6bm90KFtoaWRkZW5dKSB+IDpub3QoW2hpZGRlbl0pIHtcXG4gIC0tdHctc3BhY2UteC1yZXZlcnNlOiAwO1xcbiAgbWFyZ2luLXJpZ2h0OiBjYWxjKDFyZW0gKiB2YXIoLS10dy1zcGFjZS14LXJldmVyc2UpKTtcXG4gIG1hcmdpbi1sZWZ0OiBjYWxjKDFyZW0gKiBjYWxjKDEgLSB2YXIoLS10dy1zcGFjZS14LXJldmVyc2UpKSk7XFxufVxcclxcbi5zcGFjZS14LTYgPiA6bm90KFtoaWRkZW5dKSB+IDpub3QoW2hpZGRlbl0pIHtcXG4gIC0tdHctc3BhY2UteC1yZXZlcnNlOiAwO1xcbiAgbWFyZ2luLXJpZ2h0OiBjYWxjKDEuNXJlbSAqIHZhcigtLXR3LXNwYWNlLXgtcmV2ZXJzZSkpO1xcbiAgbWFyZ2luLWxlZnQ6IGNhbGMoMS41cmVtICogY2FsYygxIC0gdmFyKC0tdHctc3BhY2UteC1yZXZlcnNlKSkpO1xcbn1cXHJcXG4uc3BhY2UteS0xID4gOm5vdChbaGlkZGVuXSkgfiA6bm90KFtoaWRkZW5dKSB7XFxuICAtLXR3LXNwYWNlLXktcmV2ZXJzZTogMDtcXG4gIG1hcmdpbi10b3A6IGNhbGMoMC4yNXJlbSAqIGNhbGMoMSAtIHZhcigtLXR3LXNwYWNlLXktcmV2ZXJzZSkpKTtcXG4gIG1hcmdpbi1ib3R0b206IGNhbGMoMC4yNXJlbSAqIHZhcigtLXR3LXNwYWNlLXktcmV2ZXJzZSkpO1xcbn1cXHJcXG4uc3BhY2UteS0xMiA+IDpub3QoW2hpZGRlbl0pIH4gOm5vdChbaGlkZGVuXSkge1xcbiAgLS10dy1zcGFjZS15LXJldmVyc2U6IDA7XFxuICBtYXJnaW4tdG9wOiBjYWxjKDNyZW0gKiBjYWxjKDEgLSB2YXIoLS10dy1zcGFjZS15LXJldmVyc2UpKSk7XFxuICBtYXJnaW4tYm90dG9tOiBjYWxjKDNyZW0gKiB2YXIoLS10dy1zcGFjZS15LXJldmVyc2UpKTtcXG59XFxyXFxuLnNwYWNlLXktMiA+IDpub3QoW2hpZGRlbl0pIH4gOm5vdChbaGlkZGVuXSkge1xcbiAgLS10dy1zcGFjZS15LXJldmVyc2U6IDA7XFxuICBtYXJnaW4tdG9wOiBjYWxjKDAuNXJlbSAqIGNhbGMoMSAtIHZhcigtLXR3LXNwYWNlLXktcmV2ZXJzZSkpKTtcXG4gIG1hcmdpbi1ib3R0b206IGNhbGMoMC41cmVtICogdmFyKC0tdHctc3BhY2UteS1yZXZlcnNlKSk7XFxufVxcclxcbi5zcGFjZS15LTMgPiA6bm90KFtoaWRkZW5dKSB+IDpub3QoW2hpZGRlbl0pIHtcXG4gIC0tdHctc3BhY2UteS1yZXZlcnNlOiAwO1xcbiAgbWFyZ2luLXRvcDogY2FsYygwLjc1cmVtICogY2FsYygxIC0gdmFyKC0tdHctc3BhY2UteS1yZXZlcnNlKSkpO1xcbiAgbWFyZ2luLWJvdHRvbTogY2FsYygwLjc1cmVtICogdmFyKC0tdHctc3BhY2UteS1yZXZlcnNlKSk7XFxufVxcclxcbi5zcGFjZS15LTQgPiA6bm90KFtoaWRkZW5dKSB+IDpub3QoW2hpZGRlbl0pIHtcXG4gIC0tdHctc3BhY2UteS1yZXZlcnNlOiAwO1xcbiAgbWFyZ2luLXRvcDogY2FsYygxcmVtICogY2FsYygxIC0gdmFyKC0tdHctc3BhY2UteS1yZXZlcnNlKSkpO1xcbiAgbWFyZ2luLWJvdHRvbTogY2FsYygxcmVtICogdmFyKC0tdHctc3BhY2UteS1yZXZlcnNlKSk7XFxufVxcclxcbi5zcGFjZS15LTYgPiA6bm90KFtoaWRkZW5dKSB+IDpub3QoW2hpZGRlbl0pIHtcXG4gIC0tdHctc3BhY2UteS1yZXZlcnNlOiAwO1xcbiAgbWFyZ2luLXRvcDogY2FsYygxLjVyZW0gKiBjYWxjKDEgLSB2YXIoLS10dy1zcGFjZS15LXJldmVyc2UpKSk7XFxuICBtYXJnaW4tYm90dG9tOiBjYWxjKDEuNXJlbSAqIHZhcigtLXR3LXNwYWNlLXktcmV2ZXJzZSkpO1xcbn1cXHJcXG4uc3BhY2UteS04ID4gOm5vdChbaGlkZGVuXSkgfiA6bm90KFtoaWRkZW5dKSB7XFxuICAtLXR3LXNwYWNlLXktcmV2ZXJzZTogMDtcXG4gIG1hcmdpbi10b3A6IGNhbGMoMnJlbSAqIGNhbGMoMSAtIHZhcigtLXR3LXNwYWNlLXktcmV2ZXJzZSkpKTtcXG4gIG1hcmdpbi1ib3R0b206IGNhbGMoMnJlbSAqIHZhcigtLXR3LXNwYWNlLXktcmV2ZXJzZSkpO1xcbn1cXHJcXG4ub3ZlcmZsb3ctaGlkZGVuIHtcXG4gIG92ZXJmbG93OiBoaWRkZW47XFxufVxcclxcbi5yb3VuZGVkIHtcXG4gIGJvcmRlci1yYWRpdXM6IDAuMjVyZW07XFxufVxcclxcbi5yb3VuZGVkLTJ4bCB7XFxuICBib3JkZXItcmFkaXVzOiAxcmVtO1xcbn1cXHJcXG4ucm91bmRlZC1mdWxsIHtcXG4gIGJvcmRlci1yYWRpdXM6IDk5OTlweDtcXG59XFxyXFxuLnJvdW5kZWQtbGcge1xcbiAgYm9yZGVyLXJhZGl1czogMC41cmVtO1xcbn1cXHJcXG4ucm91bmRlZC14bCB7XFxuICBib3JkZXItcmFkaXVzOiAwLjc1cmVtO1xcbn1cXHJcXG4uYm9yZGVyIHtcXG4gIGJvcmRlci13aWR0aDogMXB4O1xcbn1cXHJcXG4uYm9yZGVyLTIge1xcbiAgYm9yZGVyLXdpZHRoOiAycHg7XFxufVxcclxcbi5ib3JkZXItdCB7XFxuICBib3JkZXItdG9wLXdpZHRoOiAxcHg7XFxufVxcclxcbi5ib3JkZXItZ3JheS0xMDAge1xcbiAgLS10dy1ib3JkZXItb3BhY2l0eTogMTtcXG4gIGJvcmRlci1jb2xvcjogcmdiKDI0MyAyNDQgMjQ2IC8gdmFyKC0tdHctYm9yZGVyLW9wYWNpdHksIDEpKTtcXG59XFxyXFxuLmJvcmRlci1ncmF5LTIwMCB7XFxuICAtLXR3LWJvcmRlci1vcGFjaXR5OiAxO1xcbiAgYm9yZGVyLWNvbG9yOiByZ2IoMjI5IDIzMSAyMzUgLyB2YXIoLS10dy1ib3JkZXItb3BhY2l0eSwgMSkpO1xcbn1cXHJcXG4uYm9yZGVyLWdyYXktMzAwIHtcXG4gIC0tdHctYm9yZGVyLW9wYWNpdHk6IDE7XFxuICBib3JkZXItY29sb3I6IHJnYigyMDkgMjEzIDIxOSAvIHZhcigtLXR3LWJvcmRlci1vcGFjaXR5LCAxKSk7XFxufVxcclxcbi5ib3JkZXItZ3JheS03MDAge1xcbiAgLS10dy1ib3JkZXItb3BhY2l0eTogMTtcXG4gIGJvcmRlci1jb2xvcjogcmdiKDU1IDY1IDgxIC8gdmFyKC0tdHctYm9yZGVyLW9wYWNpdHksIDEpKTtcXG59XFxyXFxuLmJvcmRlci1ncmVlbi0yMDAge1xcbiAgLS10dy1ib3JkZXItb3BhY2l0eTogMTtcXG4gIGJvcmRlci1jb2xvcjogcmdiKDE4NyAyNDcgMjA4IC8gdmFyKC0tdHctYm9yZGVyLW9wYWNpdHksIDEpKTtcXG59XFxyXFxuLmJvcmRlci1wcmltYXJ5IHtcXG4gIC0tdHctYm9yZGVyLW9wYWNpdHk6IDE7XFxuICBib3JkZXItY29sb3I6IHJnYig1MSA1MSA1MSAvIHZhcigtLXR3LWJvcmRlci1vcGFjaXR5LCAxKSk7XFxufVxcclxcbi5ib3JkZXItcmVkLTIwMCB7XFxuICAtLXR3LWJvcmRlci1vcGFjaXR5OiAxO1xcbiAgYm9yZGVyLWNvbG9yOiByZ2IoMjU0IDIwMiAyMDIgLyB2YXIoLS10dy1ib3JkZXItb3BhY2l0eSwgMSkpO1xcbn1cXHJcXG4uYm9yZGVyLXdoaXRlIHtcXG4gIC0tdHctYm9yZGVyLW9wYWNpdHk6IDE7XFxuICBib3JkZXItY29sb3I6IHJnYigyNTUgMjU1IDI1NSAvIHZhcigtLXR3LWJvcmRlci1vcGFjaXR5LCAxKSk7XFxufVxcclxcbi5ib3JkZXItd2hpdGVcXFxcLzIwIHtcXG4gIGJvcmRlci1jb2xvcjogcmdiKDI1NSAyNTUgMjU1IC8gMC4yKTtcXG59XFxyXFxuLmJvcmRlci15ZWxsb3ctMjAwIHtcXG4gIC0tdHctYm9yZGVyLW9wYWNpdHk6IDE7XFxuICBib3JkZXItY29sb3I6IHJnYigyNTQgMjQwIDEzOCAvIHZhcigtLXR3LWJvcmRlci1vcGFjaXR5LCAxKSk7XFxufVxcclxcbi5ib3JkZXItdC10cmFuc3BhcmVudCB7XFxuICBib3JkZXItdG9wLWNvbG9yOiB0cmFuc3BhcmVudDtcXG59XFxyXFxuLmJnLWFjY2VudCB7XFxuICAtLXR3LWJnLW9wYWNpdHk6IDE7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMCAxMDYgMjU1IC8gdmFyKC0tdHctYmctb3BhY2l0eSwgMSkpO1xcbn1cXHJcXG4uYmctYWNjZW50XFxcXC8yMCB7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMCAxMDYgMjU1IC8gMC4yKTtcXG59XFxyXFxuLmJnLWJhY2tncm91bmQge1xcbiAgLS10dy1iZy1vcGFjaXR5OiAxO1xcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDI1NSAyNTUgMjU1IC8gdmFyKC0tdHctYmctb3BhY2l0eSwgMSkpO1xcbn1cXHJcXG4uYmctYmxhY2tcXFxcLzEwIHtcXG4gIGJhY2tncm91bmQtY29sb3I6IHJnYigwIDAgMCAvIDAuMSk7XFxufVxcclxcbi5iZy1ibHVlLTEwMCB7XFxuICAtLXR3LWJnLW9wYWNpdHk6IDE7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMjE5IDIzNCAyNTQgLyB2YXIoLS10dy1iZy1vcGFjaXR5LCAxKSk7XFxufVxcclxcbi5iZy1ibHVlLTUwIHtcXG4gIC0tdHctYmctb3BhY2l0eTogMTtcXG4gIGJhY2tncm91bmQtY29sb3I6IHJnYigyMzkgMjQ2IDI1NSAvIHZhcigtLXR3LWJnLW9wYWNpdHksIDEpKTtcXG59XFxyXFxuLmJnLWdyYXktMTAwIHtcXG4gIC0tdHctYmctb3BhY2l0eTogMTtcXG4gIGJhY2tncm91bmQtY29sb3I6IHJnYigyNDMgMjQ0IDI0NiAvIHZhcigtLXR3LWJnLW9wYWNpdHksIDEpKTtcXG59XFxyXFxuLmJnLWdyYXktNTAge1xcbiAgLS10dy1iZy1vcGFjaXR5OiAxO1xcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDI0OSAyNTAgMjUxIC8gdmFyKC0tdHctYmctb3BhY2l0eSwgMSkpO1xcbn1cXHJcXG4uYmctZ3JheS05MDAge1xcbiAgLS10dy1iZy1vcGFjaXR5OiAxO1xcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDE3IDI0IDM5IC8gdmFyKC0tdHctYmctb3BhY2l0eSwgMSkpO1xcbn1cXHJcXG4uYmctZ3JlZW4tMTAwIHtcXG4gIC0tdHctYmctb3BhY2l0eTogMTtcXG4gIGJhY2tncm91bmQtY29sb3I6IHJnYigyMjAgMjUyIDIzMSAvIHZhcigtLXR3LWJnLW9wYWNpdHksIDEpKTtcXG59XFxyXFxuLmJnLWdyZWVuLTUwIHtcXG4gIC0tdHctYmctb3BhY2l0eTogMTtcXG4gIGJhY2tncm91bmQtY29sb3I6IHJnYigyNDAgMjUzIDI0NCAvIHZhcigtLXR3LWJnLW9wYWNpdHksIDEpKTtcXG59XFxyXFxuLmJnLWdyZWVuLTUwMCB7XFxuICAtLXR3LWJnLW9wYWNpdHk6IDE7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMzQgMTk3IDk0IC8gdmFyKC0tdHctYmctb3BhY2l0eSwgMSkpO1xcbn1cXHJcXG4uYmctb3JhbmdlLTEwMCB7XFxuICAtLXR3LWJnLW9wYWNpdHk6IDE7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMjU1IDIzNyAyMTMgLyB2YXIoLS10dy1iZy1vcGFjaXR5LCAxKSk7XFxufVxcclxcbi5iZy1wdXJwbGUtMTAwIHtcXG4gIC0tdHctYmctb3BhY2l0eTogMTtcXG4gIGJhY2tncm91bmQtY29sb3I6IHJnYigyNDMgMjMyIDI1NSAvIHZhcigtLXR3LWJnLW9wYWNpdHksIDEpKTtcXG59XFxyXFxuLmJnLXB1cnBsZS01MDAge1xcbiAgLS10dy1iZy1vcGFjaXR5OiAxO1xcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDE2OCA4NSAyNDcgLyB2YXIoLS10dy1iZy1vcGFjaXR5LCAxKSk7XFxufVxcclxcbi5iZy1yZWQtMTAwIHtcXG4gIC0tdHctYmctb3BhY2l0eTogMTtcXG4gIGJhY2tncm91bmQtY29sb3I6IHJnYigyNTQgMjI2IDIyNiAvIHZhcigtLXR3LWJnLW9wYWNpdHksIDEpKTtcXG59XFxyXFxuLmJnLXJlZC01MCB7XFxuICAtLXR3LWJnLW9wYWNpdHk6IDE7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMjU0IDI0MiAyNDIgLyB2YXIoLS10dy1iZy1vcGFjaXR5LCAxKSk7XFxufVxcclxcbi5iZy10ZWFsLTEwMCB7XFxuICAtLXR3LWJnLW9wYWNpdHk6IDE7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMjA0IDI1MSAyNDEgLyB2YXIoLS10dy1iZy1vcGFjaXR5LCAxKSk7XFxufVxcclxcbi5iZy13aGl0ZSB7XFxuICAtLXR3LWJnLW9wYWNpdHk6IDE7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMjU1IDI1NSAyNTUgLyB2YXIoLS10dy1iZy1vcGFjaXR5LCAxKSk7XFxufVxcclxcbi5iZy13aGl0ZVxcXFwvMTAge1xcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDI1NSAyNTUgMjU1IC8gMC4xKTtcXG59XFxyXFxuLmJnLXdoaXRlXFxcXC8yMCB7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMjU1IDI1NSAyNTUgLyAwLjIpO1xcbn1cXHJcXG4uYmctd2hpdGVcXFxcLzUge1xcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDI1NSAyNTUgMjU1IC8gMC4wNSk7XFxufVxcclxcbi5iZy13aGl0ZVxcXFwvODAge1xcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDI1NSAyNTUgMjU1IC8gMC44KTtcXG59XFxyXFxuLmJnLXllbGxvdy01MCB7XFxuICAtLXR3LWJnLW9wYWNpdHk6IDE7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMjU0IDI1MiAyMzIgLyB2YXIoLS10dy1iZy1vcGFjaXR5LCAxKSk7XFxufVxcclxcbi5iZy1ncmFkaWVudC10by1iciB7XFxuICBiYWNrZ3JvdW5kLWltYWdlOiBsaW5lYXItZ3JhZGllbnQodG8gYm90dG9tIHJpZ2h0LCB2YXIoLS10dy1ncmFkaWVudC1zdG9wcykpO1xcbn1cXHJcXG4uYmctZ3JhZGllbnQtdG8tciB7XFxuICBiYWNrZ3JvdW5kLWltYWdlOiBsaW5lYXItZ3JhZGllbnQodG8gcmlnaHQsIHZhcigtLXR3LWdyYWRpZW50LXN0b3BzKSk7XFxufVxcclxcbi5mcm9tLWFjY2VudCB7XFxuICAtLXR3LWdyYWRpZW50LWZyb206ICMwMDZBRkYgdmFyKC0tdHctZ3JhZGllbnQtZnJvbS1wb3NpdGlvbik7XFxuICAtLXR3LWdyYWRpZW50LXRvOiByZ2IoMCAxMDYgMjU1IC8gMCkgdmFyKC0tdHctZ3JhZGllbnQtdG8tcG9zaXRpb24pO1xcbiAgLS10dy1ncmFkaWVudC1zdG9wczogdmFyKC0tdHctZ3JhZGllbnQtZnJvbSksIHZhcigtLXR3LWdyYWRpZW50LXRvKTtcXG59XFxyXFxuLmZyb20tYWNjZW50XFxcXC8xMCB7XFxuICAtLXR3LWdyYWRpZW50LWZyb206IHJnYigwIDEwNiAyNTUgLyAwLjEpIHZhcigtLXR3LWdyYWRpZW50LWZyb20tcG9zaXRpb24pO1xcbiAgLS10dy1ncmFkaWVudC10bzogcmdiKDAgMTA2IDI1NSAvIDApIHZhcigtLXR3LWdyYWRpZW50LXRvLXBvc2l0aW9uKTtcXG4gIC0tdHctZ3JhZGllbnQtc3RvcHM6IHZhcigtLXR3LWdyYWRpZW50LWZyb20pLCB2YXIoLS10dy1ncmFkaWVudC10byk7XFxufVxcclxcbi5mcm9tLWJsdWUtNTAge1xcbiAgLS10dy1ncmFkaWVudC1mcm9tOiAjZWZmNmZmIHZhcigtLXR3LWdyYWRpZW50LWZyb20tcG9zaXRpb24pO1xcbiAgLS10dy1ncmFkaWVudC10bzogcmdiKDIzOSAyNDYgMjU1IC8gMCkgdmFyKC0tdHctZ3JhZGllbnQtdG8tcG9zaXRpb24pO1xcbiAgLS10dy1ncmFkaWVudC1zdG9wczogdmFyKC0tdHctZ3JhZGllbnQtZnJvbSksIHZhcigtLXR3LWdyYWRpZW50LXRvKTtcXG59XFxyXFxuLmZyb20tZ3JheS01MCB7XFxuICAtLXR3LWdyYWRpZW50LWZyb206ICNmOWZhZmIgdmFyKC0tdHctZ3JhZGllbnQtZnJvbS1wb3NpdGlvbik7XFxuICAtLXR3LWdyYWRpZW50LXRvOiByZ2IoMjQ5IDI1MCAyNTEgLyAwKSB2YXIoLS10dy1ncmFkaWVudC10by1wb3NpdGlvbik7XFxuICAtLXR3LWdyYWRpZW50LXN0b3BzOiB2YXIoLS10dy1ncmFkaWVudC1mcm9tKSwgdmFyKC0tdHctZ3JhZGllbnQtdG8pO1xcbn1cXHJcXG4uZnJvbS1ncmVlbi01MCB7XFxuICAtLXR3LWdyYWRpZW50LWZyb206ICNmMGZkZjQgdmFyKC0tdHctZ3JhZGllbnQtZnJvbS1wb3NpdGlvbik7XFxuICAtLXR3LWdyYWRpZW50LXRvOiByZ2IoMjQwIDI1MyAyNDQgLyAwKSB2YXIoLS10dy1ncmFkaWVudC10by1wb3NpdGlvbik7XFxuICAtLXR3LWdyYWRpZW50LXN0b3BzOiB2YXIoLS10dy1ncmFkaWVudC1mcm9tKSwgdmFyKC0tdHctZ3JhZGllbnQtdG8pO1xcbn1cXHJcXG4uZnJvbS1vcmFuZ2UtNTAge1xcbiAgLS10dy1ncmFkaWVudC1mcm9tOiAjZmZmN2VkIHZhcigtLXR3LWdyYWRpZW50LWZyb20tcG9zaXRpb24pO1xcbiAgLS10dy1ncmFkaWVudC10bzogcmdiKDI1NSAyNDcgMjM3IC8gMCkgdmFyKC0tdHctZ3JhZGllbnQtdG8tcG9zaXRpb24pO1xcbiAgLS10dy1ncmFkaWVudC1zdG9wczogdmFyKC0tdHctZ3JhZGllbnQtZnJvbSksIHZhcigtLXR3LWdyYWRpZW50LXRvKTtcXG59XFxyXFxuLmZyb20tcHVycGxlLTUwIHtcXG4gIC0tdHctZ3JhZGllbnQtZnJvbTogI2ZhZjVmZiB2YXIoLS10dy1ncmFkaWVudC1mcm9tLXBvc2l0aW9uKTtcXG4gIC0tdHctZ3JhZGllbnQtdG86IHJnYigyNTAgMjQ1IDI1NSAvIDApIHZhcigtLXR3LWdyYWRpZW50LXRvLXBvc2l0aW9uKTtcXG4gIC0tdHctZ3JhZGllbnQtc3RvcHM6IHZhcigtLXR3LWdyYWRpZW50LWZyb20pLCB2YXIoLS10dy1ncmFkaWVudC10byk7XFxufVxcclxcbi5mcm9tLXllbGxvdy0zMDAge1xcbiAgLS10dy1ncmFkaWVudC1mcm9tOiAjZmRlMDQ3IHZhcigtLXR3LWdyYWRpZW50LWZyb20tcG9zaXRpb24pO1xcbiAgLS10dy1ncmFkaWVudC10bzogcmdiKDI1MyAyMjQgNzEgLyAwKSB2YXIoLS10dy1ncmFkaWVudC10by1wb3NpdGlvbik7XFxuICAtLXR3LWdyYWRpZW50LXN0b3BzOiB2YXIoLS10dy1ncmFkaWVudC1mcm9tKSwgdmFyKC0tdHctZ3JhZGllbnQtdG8pO1xcbn1cXHJcXG4udmlhLWJsdWUtNjAwIHtcXG4gIC0tdHctZ3JhZGllbnQtdG86IHJnYigzNyA5OSAyMzUgLyAwKSAgdmFyKC0tdHctZ3JhZGllbnQtdG8tcG9zaXRpb24pO1xcbiAgLS10dy1ncmFkaWVudC1zdG9wczogdmFyKC0tdHctZ3JhZGllbnQtZnJvbSksICMyNTYzZWIgdmFyKC0tdHctZ3JhZGllbnQtdmlhLXBvc2l0aW9uKSwgdmFyKC0tdHctZ3JhZGllbnQtdG8pO1xcbn1cXHJcXG4udG8tYWNjZW50XFxcXC8yMCB7XFxuICAtLXR3LWdyYWRpZW50LXRvOiByZ2IoMCAxMDYgMjU1IC8gMC4yKSB2YXIoLS10dy1ncmFkaWVudC10by1wb3NpdGlvbik7XFxufVxcclxcbi50by1ibHVlLTEwMCB7XFxuICAtLXR3LWdyYWRpZW50LXRvOiAjZGJlYWZlIHZhcigtLXR3LWdyYWRpZW50LXRvLXBvc2l0aW9uKTtcXG59XFxyXFxuLnRvLWJsdWUtNTAge1xcbiAgLS10dy1ncmFkaWVudC10bzogI2VmZjZmZiB2YXIoLS10dy1ncmFkaWVudC10by1wb3NpdGlvbik7XFxufVxcclxcbi50by1ibHVlLTYwMCB7XFxuICAtLXR3LWdyYWRpZW50LXRvOiAjMjU2M2ViIHZhcigtLXR3LWdyYWRpZW50LXRvLXBvc2l0aW9uKTtcXG59XFxyXFxuLnRvLWdyYXktMTAwIHtcXG4gIC0tdHctZ3JhZGllbnQtdG86ICNmM2Y0ZjYgdmFyKC0tdHctZ3JhZGllbnQtdG8tcG9zaXRpb24pO1xcbn1cXHJcXG4udG8taW5kaWdvLTEwMCB7XFxuICAtLXR3LWdyYWRpZW50LXRvOiAjZTBlN2ZmIHZhcigtLXR3LWdyYWRpZW50LXRvLXBvc2l0aW9uKTtcXG59XFxyXFxuLnRvLWluZGlnby01MCB7XFxuICAtLXR3LWdyYWRpZW50LXRvOiAjZWVmMmZmIHZhcigtLXR3LWdyYWRpZW50LXRvLXBvc2l0aW9uKTtcXG59XFxyXFxuLnRvLW9yYW5nZS0zMDAge1xcbiAgLS10dy1ncmFkaWVudC10bzogI2ZkYmE3NCB2YXIoLS10dy1ncmFkaWVudC10by1wb3NpdGlvbik7XFxufVxcclxcbi50by1wdXJwbGUtNjAwIHtcXG4gIC0tdHctZ3JhZGllbnQtdG86ICM5MzMzZWEgdmFyKC0tdHctZ3JhZGllbnQtdG8tcG9zaXRpb24pO1xcbn1cXHJcXG4udG8tcmVkLTEwMCB7XFxuICAtLXR3LWdyYWRpZW50LXRvOiAjZmVlMmUyIHZhcigtLXR3LWdyYWRpZW50LXRvLXBvc2l0aW9uKTtcXG59XFxyXFxuLmJnLWNsaXAtdGV4dCB7XFxuICAtd2Via2l0LWJhY2tncm91bmQtY2xpcDogdGV4dDtcXG4gICAgICAgICAgYmFja2dyb3VuZC1jbGlwOiB0ZXh0O1xcbn1cXHJcXG4ucC0yIHtcXG4gIHBhZGRpbmc6IDAuNXJlbTtcXG59XFxyXFxuLnAtMyB7XFxuICBwYWRkaW5nOiAwLjc1cmVtO1xcbn1cXHJcXG4ucC00IHtcXG4gIHBhZGRpbmc6IDFyZW07XFxufVxcclxcbi5wLTYge1xcbiAgcGFkZGluZzogMS41cmVtO1xcbn1cXHJcXG4ucC04IHtcXG4gIHBhZGRpbmc6IDJyZW07XFxufVxcclxcbi5weC0yIHtcXG4gIHBhZGRpbmctbGVmdDogMC41cmVtO1xcbiAgcGFkZGluZy1yaWdodDogMC41cmVtO1xcbn1cXHJcXG4ucHgtMyB7XFxuICBwYWRkaW5nLWxlZnQ6IDAuNzVyZW07XFxuICBwYWRkaW5nLXJpZ2h0OiAwLjc1cmVtO1xcbn1cXHJcXG4ucHgtNCB7XFxuICBwYWRkaW5nLWxlZnQ6IDFyZW07XFxuICBwYWRkaW5nLXJpZ2h0OiAxcmVtO1xcbn1cXHJcXG4ucHgtNiB7XFxuICBwYWRkaW5nLWxlZnQ6IDEuNXJlbTtcXG4gIHBhZGRpbmctcmlnaHQ6IDEuNXJlbTtcXG59XFxyXFxuLnB4LTgge1xcbiAgcGFkZGluZy1sZWZ0OiAycmVtO1xcbiAgcGFkZGluZy1yaWdodDogMnJlbTtcXG59XFxyXFxuLnB5LTEge1xcbiAgcGFkZGluZy10b3A6IDAuMjVyZW07XFxuICBwYWRkaW5nLWJvdHRvbTogMC4yNXJlbTtcXG59XFxyXFxuLnB5LTEyIHtcXG4gIHBhZGRpbmctdG9wOiAzcmVtO1xcbiAgcGFkZGluZy1ib3R0b206IDNyZW07XFxufVxcclxcbi5weS0xNiB7XFxuICBwYWRkaW5nLXRvcDogNHJlbTtcXG4gIHBhZGRpbmctYm90dG9tOiA0cmVtO1xcbn1cXHJcXG4ucHktMiB7XFxuICBwYWRkaW5nLXRvcDogMC41cmVtO1xcbiAgcGFkZGluZy1ib3R0b206IDAuNXJlbTtcXG59XFxyXFxuLnB5LTIwIHtcXG4gIHBhZGRpbmctdG9wOiA1cmVtO1xcbiAgcGFkZGluZy1ib3R0b206IDVyZW07XFxufVxcclxcbi5weS0zIHtcXG4gIHBhZGRpbmctdG9wOiAwLjc1cmVtO1xcbiAgcGFkZGluZy1ib3R0b206IDAuNzVyZW07XFxufVxcclxcbi5weS00IHtcXG4gIHBhZGRpbmctdG9wOiAxcmVtO1xcbiAgcGFkZGluZy1ib3R0b206IDFyZW07XFxufVxcclxcbi5weS1zZWN0aW9uIHtcXG4gIHBhZGRpbmctdG9wOiA0cmVtO1xcbiAgcGFkZGluZy1ib3R0b206IDRyZW07XFxufVxcclxcbi5wYi0xMiB7XFxuICBwYWRkaW5nLWJvdHRvbTogM3JlbTtcXG59XFxyXFxuLnBiLTI0IHtcXG4gIHBhZGRpbmctYm90dG9tOiA2cmVtO1xcbn1cXHJcXG4ucGItNiB7XFxuICBwYWRkaW5nLWJvdHRvbTogMS41cmVtO1xcbn1cXHJcXG4ucGwtMTAge1xcbiAgcGFkZGluZy1sZWZ0OiAyLjVyZW07XFxufVxcclxcbi5wbC04IHtcXG4gIHBhZGRpbmctbGVmdDogMnJlbTtcXG59XFxyXFxuLnByLTQge1xcbiAgcGFkZGluZy1yaWdodDogMXJlbTtcXG59XFxyXFxuLnByLTgge1xcbiAgcGFkZGluZy1yaWdodDogMnJlbTtcXG59XFxyXFxuLnB0LTE2IHtcXG4gIHBhZGRpbmctdG9wOiA0cmVtO1xcbn1cXHJcXG4ucHQtNCB7XFxuICBwYWRkaW5nLXRvcDogMXJlbTtcXG59XFxyXFxuLnB0LTYge1xcbiAgcGFkZGluZy10b3A6IDEuNXJlbTtcXG59XFxyXFxuLnB0LTgge1xcbiAgcGFkZGluZy10b3A6IDJyZW07XFxufVxcclxcbi5wYi04IHtcXG4gIHBhZGRpbmctYm90dG9tOiAycmVtO1xcbn1cXHJcXG4udGV4dC1sZWZ0IHtcXG4gIHRleHQtYWxpZ246IGxlZnQ7XFxufVxcclxcbi50ZXh0LWNlbnRlciB7XFxuICB0ZXh0LWFsaWduOiBjZW50ZXI7XFxufVxcclxcbi50ZXh0LXJpZ2h0IHtcXG4gIHRleHQtYWxpZ246IHJpZ2h0O1xcbn1cXHJcXG4udGV4dC0yeGwge1xcbiAgZm9udC1zaXplOiAxLjVyZW07XFxuICBsaW5lLWhlaWdodDogMnJlbTtcXG59XFxyXFxuLnRleHQtM3hsIHtcXG4gIGZvbnQtc2l6ZTogMS44NzVyZW07XFxuICBsaW5lLWhlaWdodDogMi4yNXJlbTtcXG59XFxyXFxuLnRleHQtNHhsIHtcXG4gIGZvbnQtc2l6ZTogMi4yNXJlbTtcXG4gIGxpbmUtaGVpZ2h0OiAyLjVyZW07XFxufVxcclxcbi50ZXh0LTV4bCB7XFxuICBmb250LXNpemU6IDNyZW07XFxuICBsaW5lLWhlaWdodDogMTtcXG59XFxyXFxuLnRleHQtYmFzZSB7XFxuICBmb250LXNpemU6IDFyZW07XFxuICBsaW5lLWhlaWdodDogMS41cmVtO1xcbn1cXHJcXG4udGV4dC1sZyB7XFxuICBmb250LXNpemU6IDEuMTI1cmVtO1xcbiAgbGluZS1oZWlnaHQ6IDEuNzVyZW07XFxufVxcclxcbi50ZXh0LXNtIHtcXG4gIGZvbnQtc2l6ZTogMC44NzVyZW07XFxuICBsaW5lLWhlaWdodDogMS4yNXJlbTtcXG59XFxyXFxuLnRleHQteGwge1xcbiAgZm9udC1zaXplOiAxLjI1cmVtO1xcbiAgbGluZS1oZWlnaHQ6IDEuNzVyZW07XFxufVxcclxcbi50ZXh0LXhzIHtcXG4gIGZvbnQtc2l6ZTogMC43NXJlbTtcXG4gIGxpbmUtaGVpZ2h0OiAxcmVtO1xcbn1cXHJcXG4uZm9udC1ib2xkIHtcXG4gIGZvbnQtd2VpZ2h0OiA3MDA7XFxufVxcclxcbi5mb250LW1lZGl1bSB7XFxuICBmb250LXdlaWdodDogNTAwO1xcbn1cXHJcXG4uZm9udC1zZW1pYm9sZCB7XFxuICBmb250LXdlaWdodDogNjAwO1xcbn1cXHJcXG4uaXRhbGljIHtcXG4gIGZvbnQtc3R5bGU6IGl0YWxpYztcXG59XFxyXFxuLmxlYWRpbmctcmVsYXhlZCB7XFxuICBsaW5lLWhlaWdodDogMS42MjU7XFxufVxcclxcbi50ZXh0LWFjY2VudCB7XFxuICAtLXR3LXRleHQtb3BhY2l0eTogMTtcXG4gIGNvbG9yOiByZ2IoMCAxMDYgMjU1IC8gdmFyKC0tdHctdGV4dC1vcGFjaXR5LCAxKSk7XFxufVxcclxcbi50ZXh0LWJsdWUtMTAwIHtcXG4gIC0tdHctdGV4dC1vcGFjaXR5OiAxO1xcbiAgY29sb3I6IHJnYigyMTkgMjM0IDI1NCAvIHZhcigtLXR3LXRleHQtb3BhY2l0eSwgMSkpO1xcbn1cXHJcXG4udGV4dC1ibHVlLTIwMCB7XFxuICAtLXR3LXRleHQtb3BhY2l0eTogMTtcXG4gIGNvbG9yOiByZ2IoMTkxIDIxOSAyNTQgLyB2YXIoLS10dy10ZXh0LW9wYWNpdHksIDEpKTtcXG59XFxyXFxuLnRleHQtYmx1ZS01MDAge1xcbiAgLS10dy10ZXh0LW9wYWNpdHk6IDE7XFxuICBjb2xvcjogcmdiKDU5IDEzMCAyNDYgLyB2YXIoLS10dy10ZXh0LW9wYWNpdHksIDEpKTtcXG59XFxyXFxuLnRleHQtYmx1ZS02MDAge1xcbiAgLS10dy10ZXh0LW9wYWNpdHk6IDE7XFxuICBjb2xvcjogcmdiKDM3IDk5IDIzNSAvIHZhcigtLXR3LXRleHQtb3BhY2l0eSwgMSkpO1xcbn1cXHJcXG4udGV4dC1ncmF5LTMwMCB7XFxuICAtLXR3LXRleHQtb3BhY2l0eTogMTtcXG4gIGNvbG9yOiByZ2IoMjA5IDIxMyAyMTkgLyB2YXIoLS10dy10ZXh0LW9wYWNpdHksIDEpKTtcXG59XFxyXFxuLnRleHQtZ3JheS00MDAge1xcbiAgLS10dy10ZXh0LW9wYWNpdHk6IDE7XFxuICBjb2xvcjogcmdiKDE1NiAxNjMgMTc1IC8gdmFyKC0tdHctdGV4dC1vcGFjaXR5LCAxKSk7XFxufVxcclxcbi50ZXh0LWdyYXktNTAwIHtcXG4gIC0tdHctdGV4dC1vcGFjaXR5OiAxO1xcbiAgY29sb3I6IHJnYigxMDcgMTE0IDEyOCAvIHZhcigtLXR3LXRleHQtb3BhY2l0eSwgMSkpO1xcbn1cXHJcXG4udGV4dC1ncmF5LTYwMCB7XFxuICAtLXR3LXRleHQtb3BhY2l0eTogMTtcXG4gIGNvbG9yOiByZ2IoNzUgODUgOTkgLyB2YXIoLS10dy10ZXh0LW9wYWNpdHksIDEpKTtcXG59XFxyXFxuLnRleHQtZ3JheS03MDAge1xcbiAgLS10dy10ZXh0LW9wYWNpdHk6IDE7XFxuICBjb2xvcjogcmdiKDU1IDY1IDgxIC8gdmFyKC0tdHctdGV4dC1vcGFjaXR5LCAxKSk7XFxufVxcclxcbi50ZXh0LWdyZWVuLTMwMCB7XFxuICAtLXR3LXRleHQtb3BhY2l0eTogMTtcXG4gIGNvbG9yOiByZ2IoMTM0IDIzOSAxNzIgLyB2YXIoLS10dy10ZXh0LW9wYWNpdHksIDEpKTtcXG59XFxyXFxuLnRleHQtZ3JlZW4tNTAwIHtcXG4gIC0tdHctdGV4dC1vcGFjaXR5OiAxO1xcbiAgY29sb3I6IHJnYigzNCAxOTcgOTQgLyB2YXIoLS10dy10ZXh0LW9wYWNpdHksIDEpKTtcXG59XFxyXFxuLnRleHQtZ3JlZW4tNjAwIHtcXG4gIC0tdHctdGV4dC1vcGFjaXR5OiAxO1xcbiAgY29sb3I6IHJnYigyMiAxNjMgNzQgLyB2YXIoLS10dy10ZXh0LW9wYWNpdHksIDEpKTtcXG59XFxyXFxuLnRleHQtZ3JlZW4tNzAwIHtcXG4gIC0tdHctdGV4dC1vcGFjaXR5OiAxO1xcbiAgY29sb3I6IHJnYigyMSAxMjggNjEgLyB2YXIoLS10dy10ZXh0LW9wYWNpdHksIDEpKTtcXG59XFxyXFxuLnRleHQtZ3JlZW4tODAwIHtcXG4gIC0tdHctdGV4dC1vcGFjaXR5OiAxO1xcbiAgY29sb3I6IHJnYigyMiAxMDEgNTIgLyB2YXIoLS10dy10ZXh0LW9wYWNpdHksIDEpKTtcXG59XFxyXFxuLnRleHQtaW5kaWdvLTUwMCB7XFxuICAtLXR3LXRleHQtb3BhY2l0eTogMTtcXG4gIGNvbG9yOiByZ2IoOTkgMTAyIDI0MSAvIHZhcigtLXR3LXRleHQtb3BhY2l0eSwgMSkpO1xcbn1cXHJcXG4udGV4dC1vcmFuZ2UtNTAwIHtcXG4gIC0tdHctdGV4dC1vcGFjaXR5OiAxO1xcbiAgY29sb3I6IHJnYigyNDkgMTE1IDIyIC8gdmFyKC0tdHctdGV4dC1vcGFjaXR5LCAxKSk7XFxufVxcclxcbi50ZXh0LW9yYW5nZS02MDAge1xcbiAgLS10dy10ZXh0LW9wYWNpdHk6IDE7XFxuICBjb2xvcjogcmdiKDIzNCA4OCAxMiAvIHZhcigtLXR3LXRleHQtb3BhY2l0eSwgMSkpO1xcbn1cXHJcXG4udGV4dC1wcmltYXJ5IHtcXG4gIC0tdHctdGV4dC1vcGFjaXR5OiAxO1xcbiAgY29sb3I6IHJnYig1MSA1MSA1MSAvIHZhcigtLXR3LXRleHQtb3BhY2l0eSwgMSkpO1xcbn1cXHJcXG4udGV4dC1wdXJwbGUtMzAwIHtcXG4gIC0tdHctdGV4dC1vcGFjaXR5OiAxO1xcbiAgY29sb3I6IHJnYigyMTYgMTgwIDI1NCAvIHZhcigtLXR3LXRleHQtb3BhY2l0eSwgMSkpO1xcbn1cXHJcXG4udGV4dC1wdXJwbGUtNTAwIHtcXG4gIC0tdHctdGV4dC1vcGFjaXR5OiAxO1xcbiAgY29sb3I6IHJnYigxNjggODUgMjQ3IC8gdmFyKC0tdHctdGV4dC1vcGFjaXR5LCAxKSk7XFxufVxcclxcbi50ZXh0LXB1cnBsZS02MDAge1xcbiAgLS10dy10ZXh0LW9wYWNpdHk6IDE7XFxuICBjb2xvcjogcmdiKDE0NyA1MSAyMzQgLyB2YXIoLS10dy10ZXh0LW9wYWNpdHksIDEpKTtcXG59XFxyXFxuLnRleHQtcmVkLTUwMCB7XFxuICAtLXR3LXRleHQtb3BhY2l0eTogMTtcXG4gIGNvbG9yOiByZ2IoMjM5IDY4IDY4IC8gdmFyKC0tdHctdGV4dC1vcGFjaXR5LCAxKSk7XFxufVxcclxcbi50ZXh0LXJlZC02MDAge1xcbiAgLS10dy10ZXh0LW9wYWNpdHk6IDE7XFxuICBjb2xvcjogcmdiKDIyMCAzOCAzOCAvIHZhcigtLXR3LXRleHQtb3BhY2l0eSwgMSkpO1xcbn1cXHJcXG4udGV4dC1yZWQtNzAwIHtcXG4gIC0tdHctdGV4dC1vcGFjaXR5OiAxO1xcbiAgY29sb3I6IHJnYigxODUgMjggMjggLyB2YXIoLS10dy10ZXh0LW9wYWNpdHksIDEpKTtcXG59XFxyXFxuLnRleHQtdGVhbC02MDAge1xcbiAgLS10dy10ZXh0LW9wYWNpdHk6IDE7XFxuICBjb2xvcjogcmdiKDEzIDE0OCAxMzYgLyB2YXIoLS10dy10ZXh0LW9wYWNpdHksIDEpKTtcXG59XFxyXFxuLnRleHQtdHJhbnNwYXJlbnQge1xcbiAgY29sb3I6IHRyYW5zcGFyZW50O1xcbn1cXHJcXG4udGV4dC13aGl0ZSB7XFxuICAtLXR3LXRleHQtb3BhY2l0eTogMTtcXG4gIGNvbG9yOiByZ2IoMjU1IDI1NSAyNTUgLyB2YXIoLS10dy10ZXh0LW9wYWNpdHksIDEpKTtcXG59XFxyXFxuLnRleHQteWVsbG93LTMwMCB7XFxuICAtLXR3LXRleHQtb3BhY2l0eTogMTtcXG4gIGNvbG9yOiByZ2IoMjUzIDIyNCA3MSAvIHZhcigtLXR3LXRleHQtb3BhY2l0eSwgMSkpO1xcbn1cXHJcXG4udGV4dC15ZWxsb3ctNTAwIHtcXG4gIC0tdHctdGV4dC1vcGFjaXR5OiAxO1xcbiAgY29sb3I6IHJnYigyMzQgMTc5IDggLyB2YXIoLS10dy10ZXh0LW9wYWNpdHksIDEpKTtcXG59XFxyXFxuLnRleHQteWVsbG93LTYwMCB7XFxuICAtLXR3LXRleHQtb3BhY2l0eTogMTtcXG4gIGNvbG9yOiByZ2IoMjAyIDEzOCA0IC8gdmFyKC0tdHctdGV4dC1vcGFjaXR5LCAxKSk7XFxufVxcclxcbi50ZXh0LXllbGxvdy03MDAge1xcbiAgLS10dy10ZXh0LW9wYWNpdHk6IDE7XFxuICBjb2xvcjogcmdiKDE2MSA5OCA3IC8gdmFyKC0tdHctdGV4dC1vcGFjaXR5LCAxKSk7XFxufVxcclxcbi50ZXh0LXllbGxvdy04MDAge1xcbiAgLS10dy10ZXh0LW9wYWNpdHk6IDE7XFxuICBjb2xvcjogcmdiKDEzMyA3NyAxNCAvIHZhcigtLXR3LXRleHQtb3BhY2l0eSwgMSkpO1xcbn1cXHJcXG4ubGluZS10aHJvdWdoIHtcXG4gIHRleHQtZGVjb3JhdGlvbi1saW5lOiBsaW5lLXRocm91Z2g7XFxufVxcclxcbi5vcGFjaXR5LTgwIHtcXG4gIG9wYWNpdHk6IDAuODtcXG59XFxyXFxuLnNoYWRvdy1sZyB7XFxuICAtLXR3LXNoYWRvdzogMCAxMHB4IDE1cHggLTNweCByZ2IoMCAwIDAgLyAwLjEpLCAwIDRweCA2cHggLTRweCByZ2IoMCAwIDAgLyAwLjEpO1xcbiAgLS10dy1zaGFkb3ctY29sb3JlZDogMCAxMHB4IDE1cHggLTNweCB2YXIoLS10dy1zaGFkb3ctY29sb3IpLCAwIDRweCA2cHggLTRweCB2YXIoLS10dy1zaGFkb3ctY29sb3IpO1xcbiAgYm94LXNoYWRvdzogdmFyKC0tdHctcmluZy1vZmZzZXQtc2hhZG93LCAwIDAgIzAwMDApLCB2YXIoLS10dy1yaW5nLXNoYWRvdywgMCAwICMwMDAwKSwgdmFyKC0tdHctc2hhZG93KTtcXG59XFxyXFxuLnNoYWRvdy1tZCB7XFxuICAtLXR3LXNoYWRvdzogMCA0cHggNnB4IC0xcHggcmdiKDAgMCAwIC8gMC4xKSwgMCAycHggNHB4IC0ycHggcmdiKDAgMCAwIC8gMC4xKTtcXG4gIC0tdHctc2hhZG93LWNvbG9yZWQ6IDAgNHB4IDZweCAtMXB4IHZhcigtLXR3LXNoYWRvdy1jb2xvciksIDAgMnB4IDRweCAtMnB4IHZhcigtLXR3LXNoYWRvdy1jb2xvcik7XFxuICBib3gtc2hhZG93OiB2YXIoLS10dy1yaW5nLW9mZnNldC1zaGFkb3csIDAgMCAjMDAwMCksIHZhcigtLXR3LXJpbmctc2hhZG93LCAwIDAgIzAwMDApLCB2YXIoLS10dy1zaGFkb3cpO1xcbn1cXHJcXG4uc2hhZG93LXNtIHtcXG4gIC0tdHctc2hhZG93OiAwIDFweCAycHggMCByZ2IoMCAwIDAgLyAwLjA1KTtcXG4gIC0tdHctc2hhZG93LWNvbG9yZWQ6IDAgMXB4IDJweCAwIHZhcigtLXR3LXNoYWRvdy1jb2xvcik7XFxuICBib3gtc2hhZG93OiB2YXIoLS10dy1yaW5nLW9mZnNldC1zaGFkb3csIDAgMCAjMDAwMCksIHZhcigtLXR3LXJpbmctc2hhZG93LCAwIDAgIzAwMDApLCB2YXIoLS10dy1zaGFkb3cpO1xcbn1cXHJcXG4ub3V0bGluZS1ub25lIHtcXG4gIG91dGxpbmU6IDJweCBzb2xpZCB0cmFuc3BhcmVudDtcXG4gIG91dGxpbmUtb2Zmc2V0OiAycHg7XFxufVxcclxcbi5yaW5nLTIge1xcbiAgLS10dy1yaW5nLW9mZnNldC1zaGFkb3c6IHZhcigtLXR3LXJpbmctaW5zZXQpIDAgMCAwIHZhcigtLXR3LXJpbmctb2Zmc2V0LXdpZHRoKSB2YXIoLS10dy1yaW5nLW9mZnNldC1jb2xvcik7XFxuICAtLXR3LXJpbmctc2hhZG93OiB2YXIoLS10dy1yaW5nLWluc2V0KSAwIDAgMCBjYWxjKDJweCArIHZhcigtLXR3LXJpbmctb2Zmc2V0LXdpZHRoKSkgdmFyKC0tdHctcmluZy1jb2xvcik7XFxuICBib3gtc2hhZG93OiB2YXIoLS10dy1yaW5nLW9mZnNldC1zaGFkb3cpLCB2YXIoLS10dy1yaW5nLXNoYWRvdyksIHZhcigtLXR3LXNoYWRvdywgMCAwICMwMDAwKTtcXG59XFxyXFxuLnJpbmctYWNjZW50IHtcXG4gIC0tdHctcmluZy1vcGFjaXR5OiAxO1xcbiAgLS10dy1yaW5nLWNvbG9yOiByZ2IoMCAxMDYgMjU1IC8gdmFyKC0tdHctcmluZy1vcGFjaXR5LCAxKSk7XFxufVxcclxcbi5maWx0ZXIge1xcbiAgZmlsdGVyOiB2YXIoLS10dy1ibHVyKSB2YXIoLS10dy1icmlnaHRuZXNzKSB2YXIoLS10dy1jb250cmFzdCkgdmFyKC0tdHctZ3JheXNjYWxlKSB2YXIoLS10dy1odWUtcm90YXRlKSB2YXIoLS10dy1pbnZlcnQpIHZhcigtLXR3LXNhdHVyYXRlKSB2YXIoLS10dy1zZXBpYSkgdmFyKC0tdHctZHJvcC1zaGFkb3cpO1xcbn1cXHJcXG4uYmFja2Ryb3AtYmx1ci1zbSB7XFxuICAtLXR3LWJhY2tkcm9wLWJsdXI6IGJsdXIoNHB4KTtcXG4gIC13ZWJraXQtYmFja2Ryb3AtZmlsdGVyOiB2YXIoLS10dy1iYWNrZHJvcC1ibHVyKSB2YXIoLS10dy1iYWNrZHJvcC1icmlnaHRuZXNzKSB2YXIoLS10dy1iYWNrZHJvcC1jb250cmFzdCkgdmFyKC0tdHctYmFja2Ryb3AtZ3JheXNjYWxlKSB2YXIoLS10dy1iYWNrZHJvcC1odWUtcm90YXRlKSB2YXIoLS10dy1iYWNrZHJvcC1pbnZlcnQpIHZhcigtLXR3LWJhY2tkcm9wLW9wYWNpdHkpIHZhcigtLXR3LWJhY2tkcm9wLXNhdHVyYXRlKSB2YXIoLS10dy1iYWNrZHJvcC1zZXBpYSk7XFxuICBiYWNrZHJvcC1maWx0ZXI6IHZhcigtLXR3LWJhY2tkcm9wLWJsdXIpIHZhcigtLXR3LWJhY2tkcm9wLWJyaWdodG5lc3MpIHZhcigtLXR3LWJhY2tkcm9wLWNvbnRyYXN0KSB2YXIoLS10dy1iYWNrZHJvcC1ncmF5c2NhbGUpIHZhcigtLXR3LWJhY2tkcm9wLWh1ZS1yb3RhdGUpIHZhcigtLXR3LWJhY2tkcm9wLWludmVydCkgdmFyKC0tdHctYmFja2Ryb3Atb3BhY2l0eSkgdmFyKC0tdHctYmFja2Ryb3Atc2F0dXJhdGUpIHZhcigtLXR3LWJhY2tkcm9wLXNlcGlhKTtcXG59XFxyXFxuLnRyYW5zaXRpb24ge1xcbiAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogY29sb3IsIGJhY2tncm91bmQtY29sb3IsIGJvcmRlci1jb2xvciwgdGV4dC1kZWNvcmF0aW9uLWNvbG9yLCBmaWxsLCBzdHJva2UsIG9wYWNpdHksIGJveC1zaGFkb3csIHRyYW5zZm9ybSwgZmlsdGVyLCAtd2Via2l0LWJhY2tkcm9wLWZpbHRlcjtcXG4gIHRyYW5zaXRpb24tcHJvcGVydHk6IGNvbG9yLCBiYWNrZ3JvdW5kLWNvbG9yLCBib3JkZXItY29sb3IsIHRleHQtZGVjb3JhdGlvbi1jb2xvciwgZmlsbCwgc3Ryb2tlLCBvcGFjaXR5LCBib3gtc2hhZG93LCB0cmFuc2Zvcm0sIGZpbHRlciwgYmFja2Ryb3AtZmlsdGVyO1xcbiAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogY29sb3IsIGJhY2tncm91bmQtY29sb3IsIGJvcmRlci1jb2xvciwgdGV4dC1kZWNvcmF0aW9uLWNvbG9yLCBmaWxsLCBzdHJva2UsIG9wYWNpdHksIGJveC1zaGFkb3csIHRyYW5zZm9ybSwgZmlsdGVyLCBiYWNrZHJvcC1maWx0ZXIsIC13ZWJraXQtYmFja2Ryb3AtZmlsdGVyO1xcbiAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjQsIDAsIDAuMiwgMSk7XFxuICB0cmFuc2l0aW9uLWR1cmF0aW9uOiAxNTBtcztcXG59XFxyXFxuLnRyYW5zaXRpb24tYWxsIHtcXG4gIHRyYW5zaXRpb24tcHJvcGVydHk6IGFsbDtcXG4gIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMC40LCAwLCAwLjIsIDEpO1xcbiAgdHJhbnNpdGlvbi1kdXJhdGlvbjogMTUwbXM7XFxufVxcclxcbi50cmFuc2l0aW9uLWNvbG9ycyB7XFxuICB0cmFuc2l0aW9uLXByb3BlcnR5OiBjb2xvciwgYmFja2dyb3VuZC1jb2xvciwgYm9yZGVyLWNvbG9yLCB0ZXh0LWRlY29yYXRpb24tY29sb3IsIGZpbGwsIHN0cm9rZTtcXG4gIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMC40LCAwLCAwLjIsIDEpO1xcbiAgdHJhbnNpdGlvbi1kdXJhdGlvbjogMTUwbXM7XFxufVxcclxcbi50cmFuc2l0aW9uLXNoYWRvdyB7XFxuICB0cmFuc2l0aW9uLXByb3BlcnR5OiBib3gtc2hhZG93O1xcbiAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjQsIDAsIDAuMiwgMSk7XFxuICB0cmFuc2l0aW9uLWR1cmF0aW9uOiAxNTBtcztcXG59XFxyXFxuLnRyYW5zaXRpb24tdHJhbnNmb3JtIHtcXG4gIHRyYW5zaXRpb24tcHJvcGVydHk6IHRyYW5zZm9ybTtcXG4gIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMC40LCAwLCAwLjIsIDEpO1xcbiAgdHJhbnNpdGlvbi1kdXJhdGlvbjogMTUwbXM7XFxufVxcclxcbi5kdXJhdGlvbi0zMDAge1xcbiAgdHJhbnNpdGlvbi1kdXJhdGlvbjogMzAwbXM7XFxufVxcclxcblxcclxcbmJvZHkge1xcbiAgLS10dy1iZy1vcGFjaXR5OiAxO1xcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDI1NSAyNTUgMjU1IC8gdmFyKC0tdHctYmctb3BhY2l0eSwgMSkpO1xcbiAgZm9udC1mYW1pbHk6IEludGVyLCBzYW5zLXNlcmlmO1xcbiAgLS10dy10ZXh0LW9wYWNpdHk6IDE7XFxuICBjb2xvcjogcmdiKDUxIDUxIDUxIC8gdmFyKC0tdHctdGV4dC1vcGFjaXR5LCAxKSk7XFxufVxcclxcblxcclxcbm1haW4ge1xcbiAgZGlzcGxheTogZmxleDtcXG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XFxuICBnYXA6IDRyZW07XFxufVxcclxcblxcclxcbi8qIOaWh+acrOaIquaWreagt+W8jyAqL1xcclxcbi5saW5lLWNsYW1wLTIge1xcclxcbiAgZGlzcGxheTogLXdlYmtpdC1ib3g7XFxyXFxuICAtd2Via2l0LWxpbmUtY2xhbXA6IDI7XFxyXFxuICAtd2Via2l0LWJveC1vcmllbnQ6IHZlcnRpY2FsO1xcclxcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcXHJcXG59XFxyXFxuXFxyXFxuLmxpbmUtY2xhbXAtMyB7XFxyXFxuICBkaXNwbGF5OiAtd2Via2l0LWJveDtcXHJcXG4gIC13ZWJraXQtbGluZS1jbGFtcDogMztcXHJcXG4gIC13ZWJraXQtYm94LW9yaWVudDogdmVydGljYWw7XFxyXFxuICBvdmVyZmxvdzogaGlkZGVuO1xcclxcbn1cXHJcXG5cXHJcXG4vKiDoh6rlrprkuYnmu5rliqjmnaEgKi9cXHJcXG46Oi13ZWJraXQtc2Nyb2xsYmFyIHtcXHJcXG4gIHdpZHRoOiA4cHg7XFxyXFxufVxcclxcblxcclxcbjo6LXdlYmtpdC1zY3JvbGxiYXItdHJhY2sge1xcclxcbiAgYmFja2dyb3VuZDogI2YxZjFmMTtcXHJcXG4gIGJvcmRlci1yYWRpdXM6IDRweDtcXHJcXG59XFxyXFxuXFxyXFxuOjotd2Via2l0LXNjcm9sbGJhci10aHVtYiB7XFxyXFxuICBiYWNrZ3JvdW5kOiAjYzFjMWMxO1xcclxcbiAgYm9yZGVyLXJhZGl1czogNHB4O1xcclxcbn1cXHJcXG5cXHJcXG46Oi13ZWJraXQtc2Nyb2xsYmFyLXRodW1iOmhvdmVyIHtcXHJcXG4gIGJhY2tncm91bmQ6ICNhOGE4YTg7XFxyXFxufVxcclxcblxcclxcbi8qIOW5s+a7kea7muWKqCAqL1xcclxcbmh0bWwge1xcclxcbiAgc2Nyb2xsLWJlaGF2aW9yOiBzbW9vdGg7XFxyXFxufVxcclxcblxcclxcbi8qIOeEpueCueagt+W8jyAqL1xcclxcbi5mb2N1c1xcXFw6cmluZy0yOmZvY3VzIHtcXHJcXG4gIC0tdHctcmluZy1vZmZzZXQtc2hhZG93OiB2YXIoLS10dy1yaW5nLWluc2V0KSAwIDAgMCB2YXIoLS10dy1yaW5nLW9mZnNldC13aWR0aCkgdmFyKC0tdHctcmluZy1vZmZzZXQtY29sb3IpO1xcclxcbiAgLS10dy1yaW5nLXNoYWRvdzogdmFyKC0tdHctcmluZy1pbnNldCkgMCAwIDAgY2FsYygycHggKyB2YXIoLS10dy1yaW5nLW9mZnNldC13aWR0aCkpIHZhcigtLXR3LXJpbmctY29sb3IpO1xcclxcbiAgYm94LXNoYWRvdzogdmFyKC0tdHctcmluZy1vZmZzZXQtc2hhZG93KSwgdmFyKC0tdHctcmluZy1zaGFkb3cpLCB2YXIoLS10dy1zaGFkb3csIDAgMCAjMDAwMCk7XFxyXFxufVxcclxcbi5ob3ZlclxcXFw6c2NhbGUtMTA1OmhvdmVyIHtcXG4gIC0tdHctc2NhbGUteDogMS4wNTtcXG4gIC0tdHctc2NhbGUteTogMS4wNTtcXG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlKHZhcigtLXR3LXRyYW5zbGF0ZS14KSwgdmFyKC0tdHctdHJhbnNsYXRlLXkpKSByb3RhdGUodmFyKC0tdHctcm90YXRlKSkgc2tld1godmFyKC0tdHctc2tldy14KSkgc2tld1kodmFyKC0tdHctc2tldy15KSkgc2NhbGVYKHZhcigtLXR3LXNjYWxlLXgpKSBzY2FsZVkodmFyKC0tdHctc2NhbGUteSkpO1xcbn1cXHJcXG4uaG92ZXJcXFxcOmJvcmRlci1hY2NlbnQ6aG92ZXIge1xcbiAgLS10dy1ib3JkZXItb3BhY2l0eTogMTtcXG4gIGJvcmRlci1jb2xvcjogcmdiKDAgMTA2IDI1NSAvIHZhcigtLXR3LWJvcmRlci1vcGFjaXR5LCAxKSk7XFxufVxcclxcbi5ob3ZlclxcXFw6Ym9yZGVyLWFjY2VudFxcXFwvMjA6aG92ZXIge1xcbiAgYm9yZGVyLWNvbG9yOiByZ2IoMCAxMDYgMjU1IC8gMC4yKTtcXG59XFxyXFxuLmhvdmVyXFxcXDpiZy1hY2NlbnQ6aG92ZXIge1xcbiAgLS10dy1iZy1vcGFjaXR5OiAxO1xcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDAgMTA2IDI1NSAvIHZhcigtLXR3LWJnLW9wYWNpdHksIDEpKTtcXG59XFxyXFxuLmhvdmVyXFxcXDpiZy1ibHVlLTcwMDpob3ZlciB7XFxuICAtLXR3LWJnLW9wYWNpdHk6IDE7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMjkgNzggMjE2IC8gdmFyKC0tdHctYmctb3BhY2l0eSwgMSkpO1xcbn1cXHJcXG4uaG92ZXJcXFxcOmJnLWdyYXktMTAwOmhvdmVyIHtcXG4gIC0tdHctYmctb3BhY2l0eTogMTtcXG4gIGJhY2tncm91bmQtY29sb3I6IHJnYigyNDMgMjQ0IDI0NiAvIHZhcigtLXR3LWJnLW9wYWNpdHksIDEpKTtcXG59XFxyXFxuLmhvdmVyXFxcXDpiZy1ncmF5LTUwOmhvdmVyIHtcXG4gIC0tdHctYmctb3BhY2l0eTogMTtcXG4gIGJhY2tncm91bmQtY29sb3I6IHJnYigyNDkgMjUwIDI1MSAvIHZhcigtLXR3LWJnLW9wYWNpdHksIDEpKTtcXG59XFxyXFxuLmhvdmVyXFxcXDpiZy1wcmltYXJ5OmhvdmVyIHtcXG4gIC0tdHctYmctb3BhY2l0eTogMTtcXG4gIGJhY2tncm91bmQtY29sb3I6IHJnYig1MSA1MSA1MSAvIHZhcigtLXR3LWJnLW9wYWNpdHksIDEpKTtcXG59XFxyXFxuLmhvdmVyXFxcXDpiZy13aGl0ZTpob3ZlciB7XFxuICAtLXR3LWJnLW9wYWNpdHk6IDE7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMjU1IDI1NSAyNTUgLyB2YXIoLS10dy1iZy1vcGFjaXR5LCAxKSk7XFxufVxcclxcbi5ob3ZlclxcXFw6ZnJvbS1ibHVlLTYwMDpob3ZlciB7XFxuICAtLXR3LWdyYWRpZW50LWZyb206ICMyNTYzZWIgdmFyKC0tdHctZ3JhZGllbnQtZnJvbS1wb3NpdGlvbik7XFxuICAtLXR3LWdyYWRpZW50LXRvOiByZ2IoMzcgOTkgMjM1IC8gMCkgdmFyKC0tdHctZ3JhZGllbnQtdG8tcG9zaXRpb24pO1xcbiAgLS10dy1ncmFkaWVudC1zdG9wczogdmFyKC0tdHctZ3JhZGllbnQtZnJvbSksIHZhcigtLXR3LWdyYWRpZW50LXRvKTtcXG59XFxyXFxuLmhvdmVyXFxcXDp0by1hY2NlbnQ6aG92ZXIge1xcbiAgLS10dy1ncmFkaWVudC10bzogIzAwNkFGRiB2YXIoLS10dy1ncmFkaWVudC10by1wb3NpdGlvbik7XFxufVxcclxcbi5ob3ZlclxcXFw6dGV4dC1hY2NlbnQ6aG92ZXIge1xcbiAgLS10dy10ZXh0LW9wYWNpdHk6IDE7XFxuICBjb2xvcjogcmdiKDAgMTA2IDI1NSAvIHZhcigtLXR3LXRleHQtb3BhY2l0eSwgMSkpO1xcbn1cXHJcXG4uaG92ZXJcXFxcOnRleHQtYmx1ZS03MDA6aG92ZXIge1xcbiAgLS10dy10ZXh0LW9wYWNpdHk6IDE7XFxuICBjb2xvcjogcmdiKDI5IDc4IDIxNiAvIHZhcigtLXR3LXRleHQtb3BhY2l0eSwgMSkpO1xcbn1cXHJcXG4uaG92ZXJcXFxcOnRleHQtcHJpbWFyeTpob3ZlciB7XFxuICAtLXR3LXRleHQtb3BhY2l0eTogMTtcXG4gIGNvbG9yOiByZ2IoNTEgNTEgNTEgLyB2YXIoLS10dy10ZXh0LW9wYWNpdHksIDEpKTtcXG59XFxyXFxuLmhvdmVyXFxcXDp0ZXh0LXdoaXRlOmhvdmVyIHtcXG4gIC0tdHctdGV4dC1vcGFjaXR5OiAxO1xcbiAgY29sb3I6IHJnYigyNTUgMjU1IDI1NSAvIHZhcigtLXR3LXRleHQtb3BhY2l0eSwgMSkpO1xcbn1cXHJcXG4uaG92ZXJcXFxcOnVuZGVybGluZTpob3ZlciB7XFxuICB0ZXh0LWRlY29yYXRpb24tbGluZTogdW5kZXJsaW5lO1xcbn1cXHJcXG4uaG92ZXJcXFxcOm9wYWNpdHktOTA6aG92ZXIge1xcbiAgb3BhY2l0eTogMC45O1xcbn1cXHJcXG4uaG92ZXJcXFxcOnNoYWRvdy0yeGw6aG92ZXIge1xcbiAgLS10dy1zaGFkb3c6IDAgMjVweCA1MHB4IC0xMnB4IHJnYigwIDAgMCAvIDAuMjUpO1xcbiAgLS10dy1zaGFkb3ctY29sb3JlZDogMCAyNXB4IDUwcHggLTEycHggdmFyKC0tdHctc2hhZG93LWNvbG9yKTtcXG4gIGJveC1zaGFkb3c6IHZhcigtLXR3LXJpbmctb2Zmc2V0LXNoYWRvdywgMCAwICMwMDAwKSwgdmFyKC0tdHctcmluZy1zaGFkb3csIDAgMCAjMDAwMCksIHZhcigtLXR3LXNoYWRvdyk7XFxufVxcclxcbi5ob3ZlclxcXFw6c2hhZG93LWxnOmhvdmVyIHtcXG4gIC0tdHctc2hhZG93OiAwIDEwcHggMTVweCAtM3B4IHJnYigwIDAgMCAvIDAuMSksIDAgNHB4IDZweCAtNHB4IHJnYigwIDAgMCAvIDAuMSk7XFxuICAtLXR3LXNoYWRvdy1jb2xvcmVkOiAwIDEwcHggMTVweCAtM3B4IHZhcigtLXR3LXNoYWRvdy1jb2xvciksIDAgNHB4IDZweCAtNHB4IHZhcigtLXR3LXNoYWRvdy1jb2xvcik7XFxuICBib3gtc2hhZG93OiB2YXIoLS10dy1yaW5nLW9mZnNldC1zaGFkb3csIDAgMCAjMDAwMCksIHZhcigtLXR3LXJpbmctc2hhZG93LCAwIDAgIzAwMDApLCB2YXIoLS10dy1zaGFkb3cpO1xcbn1cXHJcXG4uaG92ZXJcXFxcOnNoYWRvdy14bDpob3ZlciB7XFxuICAtLXR3LXNoYWRvdzogMCAyMHB4IDI1cHggLTVweCByZ2IoMCAwIDAgLyAwLjEpLCAwIDhweCAxMHB4IC02cHggcmdiKDAgMCAwIC8gMC4xKTtcXG4gIC0tdHctc2hhZG93LWNvbG9yZWQ6IDAgMjBweCAyNXB4IC01cHggdmFyKC0tdHctc2hhZG93LWNvbG9yKSwgMCA4cHggMTBweCAtNnB4IHZhcigtLXR3LXNoYWRvdy1jb2xvcik7XFxuICBib3gtc2hhZG93OiB2YXIoLS10dy1yaW5nLW9mZnNldC1zaGFkb3csIDAgMCAjMDAwMCksIHZhcigtLXR3LXJpbmctc2hhZG93LCAwIDAgIzAwMDApLCB2YXIoLS10dy1zaGFkb3cpO1xcbn1cXHJcXG4uZm9jdXNcXFxcOmJvcmRlci10cmFuc3BhcmVudDpmb2N1cyB7XFxuICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50O1xcbn1cXHJcXG4uZm9jdXNcXFxcOm91dGxpbmUtbm9uZTpmb2N1cyB7XFxuICBvdXRsaW5lOiAycHggc29saWQgdHJhbnNwYXJlbnQ7XFxuICBvdXRsaW5lLW9mZnNldDogMnB4O1xcbn1cXHJcXG4uZm9jdXNcXFxcOnJpbmctMjpmb2N1cyB7XFxuICAtLXR3LXJpbmctb2Zmc2V0LXNoYWRvdzogdmFyKC0tdHctcmluZy1pbnNldCkgMCAwIDAgdmFyKC0tdHctcmluZy1vZmZzZXQtd2lkdGgpIHZhcigtLXR3LXJpbmctb2Zmc2V0LWNvbG9yKTtcXG4gIC0tdHctcmluZy1zaGFkb3c6IHZhcigtLXR3LXJpbmctaW5zZXQpIDAgMCAwIGNhbGMoMnB4ICsgdmFyKC0tdHctcmluZy1vZmZzZXQtd2lkdGgpKSB2YXIoLS10dy1yaW5nLWNvbG9yKTtcXG4gIGJveC1zaGFkb3c6IHZhcigtLXR3LXJpbmctb2Zmc2V0LXNoYWRvdyksIHZhcigtLXR3LXJpbmctc2hhZG93KSwgdmFyKC0tdHctc2hhZG93LCAwIDAgIzAwMDApO1xcbn1cXHJcXG4uZm9jdXNcXFxcOnJpbmctYWNjZW50OmZvY3VzIHtcXG4gIC0tdHctcmluZy1vcGFjaXR5OiAxO1xcbiAgLS10dy1yaW5nLWNvbG9yOiByZ2IoMCAxMDYgMjU1IC8gdmFyKC0tdHctcmluZy1vcGFjaXR5LCAxKSk7XFxufVxcclxcbi5kaXNhYmxlZFxcXFw6Y3Vyc29yLW5vdC1hbGxvd2VkOmRpc2FibGVkIHtcXG4gIGN1cnNvcjogbm90LWFsbG93ZWQ7XFxufVxcclxcbi5kaXNhYmxlZFxcXFw6b3BhY2l0eS01MDpkaXNhYmxlZCB7XFxuICBvcGFjaXR5OiAwLjU7XFxufVxcclxcbi5ncm91cDpob3ZlciAuZ3JvdXAtaG92ZXJcXFxcOnRyYW5zbGF0ZS14LTEge1xcbiAgLS10dy10cmFuc2xhdGUteDogMC4yNXJlbTtcXG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlKHZhcigtLXR3LXRyYW5zbGF0ZS14KSwgdmFyKC0tdHctdHJhbnNsYXRlLXkpKSByb3RhdGUodmFyKC0tdHctcm90YXRlKSkgc2tld1godmFyKC0tdHctc2tldy14KSkgc2tld1kodmFyKC0tdHctc2tldy15KSkgc2NhbGVYKHZhcigtLXR3LXNjYWxlLXgpKSBzY2FsZVkodmFyKC0tdHctc2NhbGUteSkpO1xcbn1cXHJcXG4uZ3JvdXA6aG92ZXIgLmdyb3VwLWhvdmVyXFxcXDpzY2FsZS0xMTAge1xcbiAgLS10dy1zY2FsZS14OiAxLjE7XFxuICAtLXR3LXNjYWxlLXk6IDEuMTtcXG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlKHZhcigtLXR3LXRyYW5zbGF0ZS14KSwgdmFyKC0tdHctdHJhbnNsYXRlLXkpKSByb3RhdGUodmFyKC0tdHctcm90YXRlKSkgc2tld1godmFyKC0tdHctc2tldy14KSkgc2tld1kodmFyKC0tdHctc2tldy15KSkgc2NhbGVYKHZhcigtLXR3LXNjYWxlLXgpKSBzY2FsZVkodmFyKC0tdHctc2NhbGUteSkpO1xcbn1cXHJcXG4uZ3JvdXA6aG92ZXIgLmdyb3VwLWhvdmVyXFxcXDpnYXAtMyB7XFxuICBnYXA6IDAuNzVyZW07XFxufVxcclxcbi5ncm91cDpob3ZlciAuZ3JvdXAtaG92ZXJcXFxcOmJnLWFjY2VudCB7XFxuICAtLXR3LWJnLW9wYWNpdHk6IDE7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMCAxMDYgMjU1IC8gdmFyKC0tdHctYmctb3BhY2l0eSwgMSkpO1xcbn1cXHJcXG4uZ3JvdXA6aG92ZXIgLmdyb3VwLWhvdmVyXFxcXDp0ZXh0LWFjY2VudCB7XFxuICAtLXR3LXRleHQtb3BhY2l0eTogMTtcXG4gIGNvbG9yOiByZ2IoMCAxMDYgMjU1IC8gdmFyKC0tdHctdGV4dC1vcGFjaXR5LCAxKSk7XFxufVxcclxcbi5ncm91cDpob3ZlciAuZ3JvdXAtaG92ZXJcXFxcOnRleHQtd2hpdGUge1xcbiAgLS10dy10ZXh0LW9wYWNpdHk6IDE7XFxuICBjb2xvcjogcmdiKDI1NSAyNTUgMjU1IC8gdmFyKC0tdHctdGV4dC1vcGFjaXR5LCAxKSk7XFxufVxcclxcbkBtZWRpYSAobWluLXdpZHRoOiA2NDBweCkge1xcblxcbiAgLnNtXFxcXDpmbGV4LXJvdyB7XFxuICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XFxuICB9XFxufVxcclxcbkBtZWRpYSAobWluLXdpZHRoOiA3NjhweCkge1xcblxcbiAgLm1kXFxcXDpjb2wtc3Bhbi0yIHtcXG4gICAgZ3JpZC1jb2x1bW46IHNwYW4gMiAvIHNwYW4gMjtcXG4gIH1cXG5cXG4gIC5tZFxcXFw6bXQtMCB7XFxuICAgIG1hcmdpbi10b3A6IDBweDtcXG4gIH1cXG5cXG4gIC5tZFxcXFw6ZmxleCB7XFxuICAgIGRpc3BsYXk6IGZsZXg7XFxuICB9XFxuXFxuICAubWRcXFxcOmhpZGRlbiB7XFxuICAgIGRpc3BsYXk6IG5vbmU7XFxuICB9XFxuXFxuICAubWRcXFxcOnctMVxcXFwvMiB7XFxuICAgIHdpZHRoOiA1MCU7XFxuICB9XFxuXFxuICAubWRcXFxcOmdyaWQtY29scy0yIHtcXG4gICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoMiwgbWlubWF4KDAsIDFmcikpO1xcbiAgfVxcblxcbiAgLm1kXFxcXDpncmlkLWNvbHMtMyB7XFxuICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KDMsIG1pbm1heCgwLCAxZnIpKTtcXG4gIH1cXG5cXG4gIC5tZFxcXFw6Z3JpZC1jb2xzLTQge1xcbiAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCg0LCBtaW5tYXgoMCwgMWZyKSk7XFxuICB9XFxuXFxuICAubWRcXFxcOmdyaWQtY29scy01IHtcXG4gICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoNSwgbWlubWF4KDAsIDFmcikpO1xcbiAgfVxcblxcbiAgLm1kXFxcXDpmbGV4LXJvdyB7XFxuICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XFxuICB9XFxuXFxuICAubWRcXFxcOnAtMTIge1xcbiAgICBwYWRkaW5nOiAzcmVtO1xcbiAgfVxcblxcbiAgLm1kXFxcXDp0ZXh0LTN4bCB7XFxuICAgIGZvbnQtc2l6ZTogMS44NzVyZW07XFxuICAgIGxpbmUtaGVpZ2h0OiAyLjI1cmVtO1xcbiAgfVxcblxcbiAgLm1kXFxcXDp0ZXh0LTR4bCB7XFxuICAgIGZvbnQtc2l6ZTogMi4yNXJlbTtcXG4gICAgbGluZS1oZWlnaHQ6IDIuNXJlbTtcXG4gIH1cXG5cXG4gIC5tZFxcXFw6dGV4dC01eGwge1xcbiAgICBmb250LXNpemU6IDNyZW07XFxuICAgIGxpbmUtaGVpZ2h0OiAxO1xcbiAgfVxcbn1cXHJcXG5AbWVkaWEgKG1pbi13aWR0aDogMTAyNHB4KSB7XFxuXFxuICAubGdcXFxcOmNvbC1zcGFuLTIge1xcbiAgICBncmlkLWNvbHVtbjogc3BhbiAyIC8gc3BhbiAyO1xcbiAgfVxcblxcbiAgLmxnXFxcXDpncmlkLWNvbHMtMiB7XFxuICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KDIsIG1pbm1heCgwLCAxZnIpKTtcXG4gIH1cXG5cXG4gIC5sZ1xcXFw6Z3JpZC1jb2xzLTMge1xcbiAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCgzLCBtaW5tYXgoMCwgMWZyKSk7XFxuICB9XFxuXFxuICAubGdcXFxcOmdyaWQtY29scy00IHtcXG4gICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoNCwgbWlubWF4KDAsIDFmcikpO1xcbiAgfVxcblxcbiAgLmxnXFxcXDpncmlkLWNvbHMtNiB7XFxuICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KDYsIG1pbm1heCgwLCAxZnIpKTtcXG4gIH1cXG5cXG4gIC5sZ1xcXFw6ZmxleC1yb3cge1xcbiAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xcbiAgfVxcbn1cXHJcXG5AbWVkaWEgKG1pbi13aWR0aDogMTI4MHB4KSB7XFxuXFxuICAueGxcXFxcOmdyaWQtY29scy0zIHtcXG4gICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoMywgbWlubWF4KDAsIDFmcikpO1xcbiAgfVxcbn1cIiwgXCJcIix7XCJ2ZXJzaW9uXCI6MyxcInNvdXJjZXNcIjpbXCJ3ZWJwYWNrOi8vc3R5bGVzL2dsb2JhbHMuY3NzXCJdLFwibmFtZXNcIjpbXSxcIm1hcHBpbmdzXCI6XCJBQUFBO0VBQUEsd0JBQWM7RUFBZCx3QkFBYztFQUFkLG1CQUFjO0VBQWQsbUJBQWM7RUFBZCxjQUFjO0VBQWQsY0FBYztFQUFkLGNBQWM7RUFBZCxlQUFjO0VBQWQsZUFBYztFQUFkLGFBQWM7RUFBZCxhQUFjO0VBQWQsa0JBQWM7RUFBZCxzQ0FBYztFQUFkLDhCQUFj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QUFBO0FBQW1CO0FBQW5CO0VBQUE7QUFBbUI7QUFBbkI7RUFBQTtBQUFtQjtBQUFuQjtFQUFBO0FBQW1CO0FBQW5CO0VBQUE7QUFBbUI7QUFBbkI7RUFBQTtBQUFtQjtBQUFuQjtFQUFBO0FBQW1CO0FBQW5CO0VBQUE7QUFBbUI7QUFBbkI7RUFBQTtBQUFtQjtBQUFuQjtFQUFBO0FBQW1CO0FBQW5CO0VBQUE7QUFBbUI7QUFBbkI7RUFBQSxpQkFBbUI7RUFBbkI7QUFBbUI7QUFBbkI7RUFBQTtBQUFtQjtBQUFuQjtFQUFBO0FBQW1CO0FBQW5CO0VBQUE7QUFBbUI7QUFBbkI7RUFBQTtBQUFtQjtBQUFuQjtFQUFBO0FBQW1CO0FBQW5CO0VBQUE7QUFBbUI7QUFBbkI7RUFBQTtBQUFtQjtBQUFuQjtFQUFBO0FBQW1CO0FBQW5CO0VBQUE7QUFBbUI7QUFBbkI7RUFBQTtBQUFtQjtBQUFuQjtFQUFBO0FBQW1CO0FBQW5CO0VBQUE7QUFBbUI7QUFBbkI7RUFBQTtBQUFtQjtBQUFuQjtFQUFBO0FBQW1CO0FBQW5CO0VBQUE7QUFBbUI7QUFBbkI7RUFBQTtBQUFtQjtBQUFuQjtFQUFBO0FBQW1CO0FBQW5CO0VBQUE7QUFBbUI7QUFBbkI7RUFBQTtBQUFtQjtBQUFuQjtFQUFBO0FBQW1CO0FBQW5CO0VBQUE7QUFBbUI7QUFBbkI7RUFBQTtBQUFtQjtBQUFuQjtFQUFBO0FBQW1CO0FBQW5CO0VBQUEsZ0JBQW1CO0VBQW5CLG9CQUFtQjtFQUFuQiw0QkFBbUI7RUFBbkI7QUFBbUI7QUFBbkI7RUFBQSxnQkFBbUI7RUFBbkIsb0JBQW1CO0VBQW5CLDRCQUFtQjtFQUFuQjtBQUFtQjtBQUFuQjtFQUFBO0FBQW1CO0FBQW5CO0VBQUE7QUFBbUI7QUFBbkI7RUFBQTtBQUFtQjtBQUFuQjtFQUFBO0FBQW1CO0FBQW5CO0VBQUE7QUFBbUI7QUFBbkI7RUFBQTtBQUFtQjtBQUFuQjtFQUFBO0FBQW1CO0FBQW5CO0VBQUE7QUFBbUI7QUFBbkI7RUFBQTtBQUFtQjtBQUFuQjtFQUFBO0FBQW1CO0FBQW5CO0VBQUE7QUFBbUI7QUFBbkI7RUFBQTtBQUFtQjtBQUFuQjtFQUFBO0FBQW1CO0FBQW5CO0VBQUE7QUFBbUI7QUFBbkI7RUFBQTtBQUFtQjtBQUFuQjtFQUFBO0FBQW1CO0FBQW5CO0VBQUE7QUFBbUI7QUFBbkI7RUFBQTtBQUFtQjtBQUFuQjtFQUFBO0FBQW1CO0FBQW5CO0VBQUE7QUFBbUI7QUFBbkI7RUFBQTtBQUFtQjtBQUFuQjtFQUFBO0FBQW1CO0FBQW5CO0VBQUE7QUFBbUI7QUFBbkI7RUFBQTtBQUFtQjtBQUFuQjtFQUFBO0FBQW1CO0FBQW5CO0VBQUE7QUFBbUI7QUFBbkI7RUFBQTtBQUFtQjtBQUFuQjtFQUFBO0FBQW1CO0FBQW5CO0VBQUE7QUFBbUI7QUFBbkI7RUFBQTtBQUFtQjtBQUFuQjtFQUFBO0FBQW1CO0FBQW5CO0VBQUE7QUFBbUI7QUFBbkI7RUFBQTtBQUFtQjtBQUFuQjtFQUFBO0FBQW1CO0FBQW5CO0VBQUE7QUFBbUI7QUFBbkI7RUFBQTtBQUFtQjtBQUFuQjtFQUFBO0FBQW1CO0FBQW5CO0VBQUE7QUFBbUI7QUFBbkI7RUFBQTtBQUFtQjtBQUFuQjtFQUFBO0FBQW1CO0FBQW5CO0VBQUE7QUFBbUI7QUFBbkI7RUFBQTtBQUFtQjtBQUFuQjtFQUFBO0FBQW1CO0FBQW5CO0VBQUE7QUFBbUI7QUFBbkI7RUFBQSxzQkFBbUI7RUFBbkI7QUFBbUI7QUFBbkI7RUFBQSxzQkFBbUI7RUFBbkI7QUFBbUI7QUFBbkI7RUFBQSxxQkFBbUI7RUFBbkI7QUFBbUI7QUFBbkI7RUFBQSxzQkFBbUI7RUFBbkI7QUFBbUI7QUFBbkI7RUFBQSxrQkFBbUI7RUFBbkI7QUFBbUI7QUFBbkI7RUFBQSxrQkFBbUI7RUFBbkIsa0JBQW1CO0VBQW5CO0FBQW1CO0FBQW5CO0VBQUE7QUFBbUI7QUFBbkI7O0VBQUE7SUFBQTtFQUFtQjtBQUFBO0FBQW5CO0VBQUE7QUFBbUI7QUFBbkI7RUFBQTtBQUFtQjtBQUFuQjtFQUFBO0FBQW1CO0FBQW5CO0VBQUE7QUFBbUI7QUFBbkI7RUFBQTtBQUFtQjtBQUFuQjtFQUFBO0FBQW1CO0FBQW5CO0VBQUE7QUFBbUI7QUFBbkI7RUFBQTtBQUFtQjtBQUFuQjtFQUFBO0FBQW1CO0FBQW5CO0VBQUE7QUFBbUI7QUFBbkI7RUFBQTtBQUFtQjtBQUFuQjtFQUFBO0FBQW1CO0FBQW5CO0VBQUE7QUFBbUI7QUFBbkI7RUFBQTtBQUFtQjtBQUFuQjtFQUFBO0FBQW1CO0FBQW5CO0VBQUE7QUFBbUI7QUFBbkI7RUFBQTtBQUFtQjtBQUFuQjtFQUFBO0FBQW1CO0FBQW5CO0VBQUE7QUFBbUI7QUFBbkI7RUFBQTtBQUFtQjtBQUFuQjtFQUFBO0FBQW1CO0FBQW5CO0VBQUEsdUJBQW1CO0VBQW5CLG9EQUFtQjtFQUFuQjtBQUFtQjtBQUFuQjtFQUFBLHVCQUFtQjtFQUFuQixzREFBbUI7RUFBbkI7QUFBbUI7QUFBbkI7RUFBQSx1QkFBbUI7RUFBbkIsK0RBQW1CO0VBQW5CO0FBQW1CO0FBQW5CO0VBQUEsdUJBQW1CO0VBQW5CLDREQUFtQjtFQUFuQjtBQUFtQjtBQUFuQjtFQUFBLHVCQUFtQjtFQUFuQiw4REFBbUI7RUFBbkI7QUFBbUI7QUFBbkI7RUFBQSx1QkFBbUI7RUFBbkIsK0RBQW1CO0VBQW5CO0FBQW1CO0FBQW5CO0VBQUEsdUJBQW1CO0VBQW5CLDREQUFtQjtFQUFuQjtBQUFtQjtBQUFuQjtFQUFBLHVCQUFtQjtFQUFuQiw4REFBbUI7RUFBbkI7QUFBbUI7QUFBbkI7RUFBQSx1QkFBbUI7RUFBbkIsNERBQW1CO0VBQW5CO0FBQW1CO0FBQW5CO0VBQUE7QUFBbUI7QUFBbkI7RUFBQTtBQUFtQjtBQUFuQjtFQUFBO0FBQW1CO0FBQW5CO0VBQUE7QUFBbUI7QUFBbkI7RUFBQTtBQUFtQjtBQUFuQjtFQUFBO0FBQW1CO0FBQW5CO0VBQUE7QUFBbUI7QUFBbkI7RUFBQTtBQUFtQjtBQUFuQjtFQUFBO0FBQW1CO0FBQW5CO0VBQUEsc0JBQW1CO0VBQW5CO0FBQW1CO0FBQW5CO0VBQUEsc0JBQW1CO0VBQW5CO0FBQW1CO0FBQW5CO0VBQUEsc0JBQW1CO0VBQW5CO0FBQW1CO0FBQW5CO0VBQUEsc0JBQW1CO0VBQW5CO0FBQW1CO0FBQW5CO0VBQUEsc0JBQW1CO0VBQW5CO0FBQW1CO0FBQW5CO0VBQUEsc0JBQW1CO0VBQW5CO0FBQW1CO0FBQW5CO0VBQUEsc0JBQW1CO0VBQW5CO0FBQW1CO0FBQW5CO0VBQUEsc0JBQW1CO0VBQW5CO0FBQW1CO0FBQW5CO0VBQUE7QUFBbUI7QUFBbkI7RUFBQSxzQkFBbUI7RUFBbkI7QUFBbUI7QUFBbkI7RUFBQTtBQUFtQjtBQUFuQjtFQUFBLGtCQUFtQjtFQUFuQjtBQUFtQjtBQUFuQjtFQUFBO0FBQW1CO0FBQW5CO0VBQUEsa0JBQW1CO0VBQW5CO0FBQW1CO0FBQW5CO0VBQUE7QUFBbUI7QUFBbkI7RUFBQSxrQkFBbUI7RUFBbkI7QUFBbUI7QUFBbkI7RUFBQSxrQkFBbUI7RUFBbkI7QUFBbUI7QUFBbkI7RUFBQSxrQkFBbUI7RUFBbkI7QUFBbUI7QUFBbkI7RUFBQSxrQkFBbUI7RUFBbkI7QUFBbUI7QUFBbkI7RUFBQSxrQkFBbUI7RUFBbkI7QUFBbUI7QUFBbkI7RUFBQSxrQkFBbUI7RUFBbkI7QUFBbUI7QUFBbkI7RUFBQSxrQkFBbUI7RUFBbkI7QUFBbUI7QUFBbkI7RUFBQSxrQkFBbUI7RUFBbkI7QUFBbUI7QUFBbkI7RUFBQSxrQkFBbUI7RUFBbkI7QUFBbUI7QUFBbkI7RUFBQSxrQkFBbUI7RUFBbkI7QUFBbUI7QUFBbkI7RUFBQSxrQkFBbUI7RUFBbkI7QUFBbUI7QUFBbkI7RUFBQSxrQkFBbUI7RUFBbkI7QUFBbUI7QUFBbkI7RUFBQSxrQkFBbUI7RUFBbkI7QUFBbUI7QUFBbkI7RUFBQSxrQkFBbUI7RUFBbkI7QUFBbUI7QUFBbkI7RUFBQSxrQkFBbUI7RUFBbkI7QUFBbUI7QUFBbkI7RUFBQTtBQUFtQjtBQUFuQjtFQUFBO0FBQW1CO0FBQW5CO0VBQUE7QUFBbUI7QUFBbkI7RUFBQTtBQUFtQjtBQUFuQjtFQUFBLGtCQUFtQjtFQUFuQjtBQUFtQjtBQUFuQjtFQUFBO0FBQW1CO0FBQW5CO0VBQUE7QUFBbUI7QUFBbkI7RUFBQSw0REFBbUI7RUFBbkIsbUVBQW1CO0VBQW5CO0FBQW1CO0FBQW5CO0VBQUEseUVBQW1CO0VBQW5CLG1FQUFtQjtFQUFuQjtBQUFtQjtBQUFuQjtFQUFBLDREQUFtQjtFQUFuQixxRUFBbUI7RUFBbkI7QUFBbUI7QUFBbkI7RUFBQSw0REFBbUI7RUFBbkIscUVBQW1CO0VBQW5CO0FBQW1CO0FBQW5CO0VBQUEsNERBQW1CO0VBQW5CLHFFQUFtQjtFQUFuQjtBQUFtQjtBQUFuQjtFQUFBLDREQUFtQjtFQUFuQixxRUFBbUI7RUFBbkI7QUFBbUI7QUFBbkI7RUFBQSw0REFBbUI7RUFBbkIscUVBQW1CO0VBQW5CO0FBQW1CO0FBQW5CO0VBQUEsNERBQW1CO0VBQW5CLG9FQUFtQjtFQUFuQjtBQUFtQjtBQUFuQjtFQUFBLG9FQUFtQjtFQUFuQjtBQUFtQjtBQUFuQjtFQUFBO0FBQW1CO0FBQW5CO0VBQUE7QUFBbUI7QUFBbkI7RUFBQTtBQUFtQjtBQUFuQjtFQUFBO0FBQW1CO0FBQW5CO0VBQUE7QUFBbUI7QUFBbkI7RUFBQTtBQUFtQjtBQUFuQjtFQUFBO0FBQW1CO0FBQW5CO0VBQUE7QUFBbUI7QUFBbkI7RUFBQTtBQUFtQjtBQUFuQjtFQUFBO0FBQW1CO0FBQW5CO0VBQUEsNkJBQW1CO1VBQW5CO0FBQW1CO0FBQW5CO0VBQUE7QUFBbUI7QUFBbkI7RUFBQTtBQUFtQjtBQUFuQjtFQUFBO0FBQW1CO0FBQW5CO0VBQUE7QUFBbUI7QUFBbkI7RUFBQTtBQUFtQjtBQUFuQjtFQUFBLG9CQUFtQjtFQUFuQjtBQUFtQjtBQUFuQjtFQUFBLHFCQUFtQjtFQUFuQjtBQUFtQjtBQUFuQjtFQUFBLGtCQUFtQjtFQUFuQjtBQUFtQjtBQUFuQjtFQUFBLG9CQUFtQjtFQUFuQjtBQUFtQjtBQUFuQjtFQUFBLGtCQUFtQjtFQUFuQjtBQUFtQjtBQUFuQjtFQUFBLG9CQUFtQjtFQUFuQjtBQUFtQjtBQUFuQjtFQUFBLGlCQUFtQjtFQUFuQjtBQUFtQjtBQUFuQjtFQUFBLGlCQUFtQjtFQUFuQjtBQUFtQjtBQUFuQjtFQUFBLG1CQUFtQjtFQUFuQjtBQUFtQjtBQUFuQjtFQUFBLGlCQUFtQjtFQUFuQjtBQUFtQjtBQUFuQjtFQUFBLG9CQUFtQjtFQUFuQjtBQUFtQjtBQUFuQjtFQUFBLGlCQUFtQjtFQUFuQjtBQUFtQjtBQUFuQjtFQUFBLGlCQUFtQjtFQUFuQjtBQUFtQjtBQUFuQjtFQUFBO0FBQW1CO0FBQW5CO0VBQUE7QUFBbUI7QUFBbkI7RUFBQTtBQUFtQjtBQUFuQjtFQUFBO0FBQW1CO0FBQW5CO0VBQUE7QUFBbUI7QUFBbkI7RUFBQTtBQUFtQjtBQUFuQjtFQUFBO0FBQW1CO0FBQW5CO0VBQUE7QUFBbUI7QUFBbkI7RUFBQTtBQUFtQjtBQUFuQjtFQUFBO0FBQW1CO0FBQW5CO0VBQUE7QUFBbUI7QUFBbkI7RUFBQTtBQUFtQjtBQUFuQjtFQUFBO0FBQW1CO0FBQW5CO0VBQUE7QUFBbUI7QUFBbkI7RUFBQTtBQUFtQjtBQUFuQjtFQUFBLGlCQUFtQjtFQUFuQjtBQUFtQjtBQUFuQjtFQUFBLG1CQUFtQjtFQUFuQjtBQUFtQjtBQUFuQjtFQUFBLGtCQUFtQjtFQUFuQjtBQUFtQjtBQUFuQjtFQUFBLGVBQW1CO0VBQW5CO0FBQW1CO0FBQW5CO0VBQUEsZUFBbUI7RUFBbkI7QUFBbUI7QUFBbkI7RUFBQSxtQkFBbUI7RUFBbkI7QUFBbUI7QUFBbkI7RUFBQSxtQkFBbUI7RUFBbkI7QUFBbUI7QUFBbkI7RUFBQSxrQkFBbUI7RUFBbkI7QUFBbUI7QUFBbkI7RUFBQSxrQkFBbUI7RUFBbkI7QUFBbUI7QUFBbkI7RUFBQTtBQUFtQjtBQUFuQjtFQUFBO0FBQW1CO0FBQW5CO0VBQUE7QUFBbUI7QUFBbkI7RUFBQTtBQUFtQjtBQUFuQjtFQUFBO0FBQW1CO0FBQW5CO0VBQUEsb0JBQW1CO0VBQW5CO0FBQW1CO0FBQW5CO0VBQUEsb0JBQW1CO0VBQW5CO0FBQW1CO0FBQW5CO0VBQUEsb0JBQW1CO0VBQW5CO0FBQW1CO0FBQW5CO0VBQUEsb0JBQW1CO0VBQW5CO0FBQW1CO0FBQW5CO0VBQUEsb0JBQW1CO0VBQW5CO0FBQW1CO0FBQW5CO0VBQUEsb0JBQW1CO0VBQW5CO0FBQW1CO0FBQW5CO0VBQUEsb0JBQW1CO0VBQW5CO0FBQW1CO0FBQW5CO0VBQUEsb0JBQW1CO0VBQW5CO0FBQW1CO0FBQW5CO0VBQUEsb0JBQW1CO0VBQW5CO0FBQW1CO0FBQW5CO0VBQUEsb0JBQW1CO0VBQW5CO0FBQW1CO0FBQW5CO0VBQUEsb0JBQW1CO0VBQW5CO0FBQW1CO0FBQW5CO0VBQUEsb0JBQW1CO0VBQW5CO0FBQW1CO0FBQW5CO0VBQUEsb0JBQW1CO0VBQW5CO0FBQW1CO0FBQW5CO0VBQUEsb0JBQW1CO0VBQW5CO0FBQW1CO0FBQW5CO0VBQUEsb0JBQW1CO0VBQW5CO0FBQW1CO0FBQW5CO0VBQUEsb0JBQW1CO0VBQW5CO0FBQW1CO0FBQW5CO0VBQUEsb0JBQW1CO0VBQW5CO0FBQW1CO0FBQW5CO0VBQUEsb0JBQW1CO0VBQW5CO0FBQW1CO0FBQW5CO0VBQUEsb0JBQW1CO0VBQW5CO0FBQW1CO0FBQW5CO0VBQUEsb0JBQW1CO0VBQW5CO0FBQW1CO0FBQW5CO0VBQUEsb0JBQW1CO0VBQW5CO0FBQW1CO0FBQW5CO0VBQUEsb0JBQW1CO0VBQW5CO0FBQW1CO0FBQW5CO0VBQUEsb0JBQW1CO0VBQW5CO0FBQW1CO0FBQW5CO0VBQUEsb0JBQW1CO0VBQW5CO0FBQW1CO0FBQW5CO0VBQUEsb0JBQW1CO0VBQW5CO0FBQW1CO0FBQW5CO0VBQUEsb0JBQW1CO0VBQW5CO0FBQW1CO0FBQW5CO0VBQUE7QUFBbUI7QUFBbkI7RUFBQSxvQkFBbUI7RUFBbkI7QUFBbUI7QUFBbkI7RUFBQSxvQkFBbUI7RUFBbkI7QUFBbUI7QUFBbkI7RUFBQSxvQkFBbUI7RUFBbkI7QUFBbUI7QUFBbkI7RUFBQSxvQkFBbUI7RUFBbkI7QUFBbUI7QUFBbkI7RUFBQSxvQkFBbUI7RUFBbkI7QUFBbUI7QUFBbkI7RUFBQSxvQkFBbUI7RUFBbkI7QUFBbUI7QUFBbkI7RUFBQTtBQUFtQjtBQUFuQjtFQUFBO0FBQW1CO0FBQW5CO0VBQUEsK0VBQW1CO0VBQW5CLG1HQUFtQjtFQUFuQjtBQUFtQjtBQUFuQjtFQUFBLDZF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O0FBd0RDO0FBeEREO0VBQUE7QUF3REM7QUF4REQ7RUFBQSxrQkF3REM7RUF4REQ7QUF3REM7QUF4REQ7RUFBQSxvQkF3REM7RUF4REQ7QUF3REM7QUF4REQ7RUFBQSxvQkF3REM7RUF4REQ7QUF3REM7QUF4REQ7O0VBQUE7SUFBQTtFQXdEQztBQUFBO0FBeEREOztFQUFBO0lBQUE7RUF3REM7O0VBeEREO0lBQUE7RUF3REM7O0VBeEREO0lBQUE7RUF3REM7O0VBeEREO0lBQUE7RUF3REM7O0VBeEREO0lBQUE7RUF3REM7O0VBeEREO0lBQUE7RUF3REM7O0VBeEREO0lBQUE7RUF3REM7O0VBeEREO0lBQUE7RUF3REM7O0VBeEREO0lBQUE7RUF3REM7O0VBeEREO0lBQUE7RUF3REM7O0VBeEREO0lBQUE7RUF3REM7O0VBeEREO0lBQUEsbUJBd0RDO0lBeEREO0VBd0RDOztFQXhERDtJQUFBLGtCQXdEQztJQXhERDtFQXdEQzs7RUF4REQ7SUFBQSxlQXdEQztJQXhERDtFQXdEQztBQUFBO0FBeEREOztFQUFBO0lBQUE7RUF3REM7O0VBeEREO0lBQUE7RUF3REM7O0VBeEREO0lBQUE7RUF3REM7O0VBeEREO0lBQUE7RUF3REM7O0VBeEREO0lBQUE7RUF3REM7O0VBeEREO0lBQUE7RUF3REM7QUFBQTtBQXhERDs7RUFBQTtJQUFBO0VBd0RDO0FBQUFcIixcInNvdXJjZXNDb250ZW50XCI6W1wiQHRhaWx3aW5kIGJhc2U7XFxyXFxuQHRhaWx3aW5kIGNvbXBvbmVudHM7XFxyXFxuQHRhaWx3aW5kIHV0aWxpdGllcztcXHJcXG5cXHJcXG5ib2R5IHtcXHJcXG4gIEBhcHBseSBiZy1iYWNrZ3JvdW5kIHRleHQtcHJpbWFyeSBmb250LXNhbnM7XFxyXFxufVxcclxcblxcclxcbm1haW4ge1xcclxcbiAgQGFwcGx5IGZsZXggZmxleC1jb2wgZ2FwLXNlY3Rpb247XFxyXFxufVxcclxcblxcclxcbi8qIOaWh+acrOaIquaWreagt+W8jyAqL1xcclxcbi5saW5lLWNsYW1wLTIge1xcclxcbiAgZGlzcGxheTogLXdlYmtpdC1ib3g7XFxyXFxuICAtd2Via2l0LWxpbmUtY2xhbXA6IDI7XFxyXFxuICAtd2Via2l0LWJveC1vcmllbnQ6IHZlcnRpY2FsO1xcclxcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcXHJcXG59XFxyXFxuXFxyXFxuLmxpbmUtY2xhbXAtMyB7XFxyXFxuICBkaXNwbGF5OiAtd2Via2l0LWJveDtcXHJcXG4gIC13ZWJraXQtbGluZS1jbGFtcDogMztcXHJcXG4gIC13ZWJraXQtYm94LW9yaWVudDogdmVydGljYWw7XFxyXFxuICBvdmVyZmxvdzogaGlkZGVuO1xcclxcbn1cXHJcXG5cXHJcXG4vKiDoh6rlrprkuYnmu5rliqjmnaEgKi9cXHJcXG46Oi13ZWJraXQtc2Nyb2xsYmFyIHtcXHJcXG4gIHdpZHRoOiA4cHg7XFxyXFxufVxcclxcblxcclxcbjo6LXdlYmtpdC1zY3JvbGxiYXItdHJhY2sge1xcclxcbiAgYmFja2dyb3VuZDogI2YxZjFmMTtcXHJcXG4gIGJvcmRlci1yYWRpdXM6IDRweDtcXHJcXG59XFxyXFxuXFxyXFxuOjotd2Via2l0LXNjcm9sbGJhci10aHVtYiB7XFxyXFxuICBiYWNrZ3JvdW5kOiAjYzFjMWMxO1xcclxcbiAgYm9yZGVyLXJhZGl1czogNHB4O1xcclxcbn1cXHJcXG5cXHJcXG46Oi13ZWJraXQtc2Nyb2xsYmFyLXRodW1iOmhvdmVyIHtcXHJcXG4gIGJhY2tncm91bmQ6ICNhOGE4YTg7XFxyXFxufVxcclxcblxcclxcbi8qIOW5s+a7kea7muWKqCAqL1xcclxcbmh0bWwge1xcclxcbiAgc2Nyb2xsLWJlaGF2aW9yOiBzbW9vdGg7XFxyXFxufVxcclxcblxcclxcbi8qIOeEpueCueagt+W8jyAqL1xcclxcbi5mb2N1c1xcXFw6cmluZy0yOmZvY3VzIHtcXHJcXG4gIC0tdHctcmluZy1vZmZzZXQtc2hhZG93OiB2YXIoLS10dy1yaW5nLWluc2V0KSAwIDAgMCB2YXIoLS10dy1yaW5nLW9mZnNldC13aWR0aCkgdmFyKC0tdHctcmluZy1vZmZzZXQtY29sb3IpO1xcclxcbiAgLS10dy1yaW5nLXNoYWRvdzogdmFyKC0tdHctcmluZy1pbnNldCkgMCAwIDAgY2FsYygycHggKyB2YXIoLS10dy1yaW5nLW9mZnNldC13aWR0aCkpIHZhcigtLXR3LXJpbmctY29sb3IpO1xcclxcbiAgYm94LXNoYWRvdzogdmFyKC0tdHctcmluZy1vZmZzZXQtc2hhZG93KSwgdmFyKC0tdHctcmluZy1zaGFkb3cpLCB2YXIoLS10dy1zaGFkb3csIDAgMCAjMDAwMCk7XFxyXFxufVwiXSxcInNvdXJjZVJvb3RcIjpcIlwifV0pO1xuLy8gRXhwb3J0c1xuZXhwb3J0IGRlZmF1bHQgX19fQ1NTX0xPQURFUl9FWFBPUlRfX187XG4iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(pages-dir-browser)/./node_modules/next/dist/build/webpack/loaders/css-loader/src/index.js??ruleSet[1].rules[7].oneOf[13].use[1]!./node_modules/next/dist/build/webpack/loaders/postcss-loader/src/index.js??ruleSet[1].rules[7].oneOf[13].use[2]!./styles/globals.css\n")); - -/***/ }), - -/***/ "(pages-dir-browser)/./node_modules/next/dist/build/webpack/loaders/css-loader/src/runtime/api.js": -/*!************************************************************************************!*\ - !*** ./node_modules/next/dist/build/webpack/loaders/css-loader/src/runtime/api.js ***! - \************************************************************************************/ -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { - -"use strict"; -eval(__webpack_require__.ts("/*\n MIT License http://www.opensource.org/licenses/mit-license.php\n Author Tobias Koppers @sokra\n*/ // css base code, injected by the css-loader\n// eslint-disable-next-line func-names\n\nmodule.exports = function(useSourceMap) {\n var list = [] // return the list of modules as css string\n ;\n list.toString = function toString() {\n return this.map(function(item) {\n // eslint-disable-next-line @typescript-eslint/no-use-before-define\n var content = cssWithMappingToString(item, useSourceMap);\n if (item[2]) {\n return '@media '.concat(item[2], ' {').concat(content, '}');\n }\n return content;\n }).join('');\n } // import a list of modules into the list\n ;\n // eslint-disable-next-line func-names\n // @ts-expect-error TODO: fix type\n list.i = function(modules, mediaQuery, dedupe) {\n if (typeof modules === 'string') {\n // eslint-disable-next-line no-param-reassign\n modules = [\n [\n null,\n modules,\n ''\n ]\n ];\n }\n var alreadyImportedModules = {};\n if (dedupe) {\n for(var i = 0; i < this.length; i++){\n // eslint-disable-next-line prefer-destructuring\n var id = this[i][0];\n if (id != null) {\n alreadyImportedModules[id] = true;\n }\n }\n }\n for(var _i = 0; _i < modules.length; _i++){\n var item = [].concat(modules[_i]);\n if (dedupe && alreadyImportedModules[item[0]]) {\n continue;\n }\n if (mediaQuery) {\n if (!item[2]) {\n item[2] = mediaQuery;\n } else {\n item[2] = ''.concat(mediaQuery, ' and ').concat(item[2]);\n }\n }\n list.push(item);\n }\n };\n return list;\n};\nfunction cssWithMappingToString(item, useSourceMap) {\n var content = item[1] || '' // eslint-disable-next-line prefer-destructuring\n ;\n var cssMapping = item[3];\n if (!cssMapping) {\n return content;\n }\n if (useSourceMap && typeof btoa === 'function') {\n // eslint-disable-next-line @typescript-eslint/no-use-before-define\n var sourceMapping = toComment(cssMapping);\n var sourceURLs = cssMapping.sources.map(function(source) {\n return '/*# sourceURL='.concat(cssMapping.sourceRoot || '').concat(source, ' */');\n });\n return [\n content\n ].concat(sourceURLs).concat([\n sourceMapping\n ]).join('\\n');\n }\n return [\n content\n ].join('\\n');\n} // Adapted from convert-source-map (MIT)\nfunction toComment(sourceMap) {\n // eslint-disable-next-line no-undef\n var base64 = btoa(unescape(encodeURIComponent(JSON.stringify(sourceMap))));\n var data = 'sourceMappingURL=data:application/json;charset=utf-8;base64,'.concat(base64);\n return '/*# '.concat(data, ' */');\n}\n\n//# sourceMappingURL=api.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvYnVpbGQvd2VicGFjay9sb2FkZXJzL2Nzcy1sb2FkZXIvc3JjL3J1bnRpbWUvYXBpLmpzIiwibWFwcGluZ3MiOiJBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDYTtBQUNiO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxvREFBb0QscUJBQXFCO0FBQ3pFO0FBQ0E7QUFDQSxTQUFTO0FBQ1QsTUFBTTtBQUNOO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsMkJBQTJCLGlCQUFpQjtBQUM1QztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHdCQUF3QixxQkFBcUI7QUFDN0M7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxrQkFBa0I7QUFDbEI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxFQUFFO0FBQ0Y7QUFDQTtBQUNBO0FBQ0EsdURBQXVELGNBQWM7QUFDckU7QUFDQTs7QUFFQSIsInNvdXJjZXMiOlsiRDpcXGRvbmd5dW4tcHJvamVjdHNcXHR3b1xcbm9kZV9tb2R1bGVzXFxuZXh0XFxkaXN0XFxidWlsZFxcd2VicGFja1xcbG9hZGVyc1xcY3NzLWxvYWRlclxcc3JjXFxydW50aW1lXFxhcGkuanMiXSwic291cmNlc0NvbnRlbnQiOlsiLypcbiAgTUlUIExpY2Vuc2UgaHR0cDovL3d3dy5vcGVuc291cmNlLm9yZy9saWNlbnNlcy9taXQtbGljZW5zZS5waHBcbiAgQXV0aG9yIFRvYmlhcyBLb3BwZXJzIEBzb2tyYVxuKi8gLy8gY3NzIGJhc2UgY29kZSwgaW5qZWN0ZWQgYnkgdGhlIGNzcy1sb2FkZXJcbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBmdW5jLW5hbWVzXG5cInVzZSBzdHJpY3RcIjtcbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24odXNlU291cmNlTWFwKSB7XG4gICAgdmFyIGxpc3QgPSBbXSAvLyByZXR1cm4gdGhlIGxpc3Qgb2YgbW9kdWxlcyBhcyBjc3Mgc3RyaW5nXG4gICAgO1xuICAgIGxpc3QudG9TdHJpbmcgPSBmdW5jdGlvbiB0b1N0cmluZygpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMubWFwKGZ1bmN0aW9uKGl0ZW0pIHtcbiAgICAgICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdXNlLWJlZm9yZS1kZWZpbmVcbiAgICAgICAgICAgIHZhciBjb250ZW50ID0gY3NzV2l0aE1hcHBpbmdUb1N0cmluZyhpdGVtLCB1c2VTb3VyY2VNYXApO1xuICAgICAgICAgICAgaWYgKGl0ZW1bMl0pIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gJ0BtZWRpYSAnLmNvbmNhdChpdGVtWzJdLCAnIHsnKS5jb25jYXQoY29udGVudCwgJ30nKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiBjb250ZW50O1xuICAgICAgICB9KS5qb2luKCcnKTtcbiAgICB9IC8vIGltcG9ydCBhIGxpc3Qgb2YgbW9kdWxlcyBpbnRvIHRoZSBsaXN0XG4gICAgO1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBmdW5jLW5hbWVzXG4gICAgLy8gQHRzLWV4cGVjdC1lcnJvciBUT0RPOiBmaXggdHlwZVxuICAgIGxpc3QuaSA9IGZ1bmN0aW9uKG1vZHVsZXMsIG1lZGlhUXVlcnksIGRlZHVwZSkge1xuICAgICAgICBpZiAodHlwZW9mIG1vZHVsZXMgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tcGFyYW0tcmVhc3NpZ25cbiAgICAgICAgICAgIG1vZHVsZXMgPSBbXG4gICAgICAgICAgICAgICAgW1xuICAgICAgICAgICAgICAgICAgICBudWxsLFxuICAgICAgICAgICAgICAgICAgICBtb2R1bGVzLFxuICAgICAgICAgICAgICAgICAgICAnJ1xuICAgICAgICAgICAgICAgIF1cbiAgICAgICAgICAgIF07XG4gICAgICAgIH1cbiAgICAgICAgdmFyIGFscmVhZHlJbXBvcnRlZE1vZHVsZXMgPSB7fTtcbiAgICAgICAgaWYgKGRlZHVwZSkge1xuICAgICAgICAgICAgZm9yKHZhciBpID0gMDsgaSA8IHRoaXMubGVuZ3RoOyBpKyspe1xuICAgICAgICAgICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBwcmVmZXItZGVzdHJ1Y3R1cmluZ1xuICAgICAgICAgICAgICAgIHZhciBpZCA9IHRoaXNbaV1bMF07XG4gICAgICAgICAgICAgICAgaWYgKGlkICE9IG51bGwpIHtcbiAgICAgICAgICAgICAgICAgICAgYWxyZWFkeUltcG9ydGVkTW9kdWxlc1tpZF0gPSB0cnVlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBmb3IodmFyIF9pID0gMDsgX2kgPCBtb2R1bGVzLmxlbmd0aDsgX2krKyl7XG4gICAgICAgICAgICB2YXIgaXRlbSA9IFtdLmNvbmNhdChtb2R1bGVzW19pXSk7XG4gICAgICAgICAgICBpZiAoZGVkdXBlICYmIGFscmVhZHlJbXBvcnRlZE1vZHVsZXNbaXRlbVswXV0pIHtcbiAgICAgICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChtZWRpYVF1ZXJ5KSB7XG4gICAgICAgICAgICAgICAgaWYgKCFpdGVtWzJdKSB7XG4gICAgICAgICAgICAgICAgICAgIGl0ZW1bMl0gPSBtZWRpYVF1ZXJ5O1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIGl0ZW1bMl0gPSAnJy5jb25jYXQobWVkaWFRdWVyeSwgJyBhbmQgJykuY29uY2F0KGl0ZW1bMl0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGxpc3QucHVzaChpdGVtKTtcbiAgICAgICAgfVxuICAgIH07XG4gICAgcmV0dXJuIGxpc3Q7XG59O1xuZnVuY3Rpb24gY3NzV2l0aE1hcHBpbmdUb1N0cmluZyhpdGVtLCB1c2VTb3VyY2VNYXApIHtcbiAgICB2YXIgY29udGVudCA9IGl0ZW1bMV0gfHwgJycgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIHByZWZlci1kZXN0cnVjdHVyaW5nXG4gICAgO1xuICAgIHZhciBjc3NNYXBwaW5nID0gaXRlbVszXTtcbiAgICBpZiAoIWNzc01hcHBpbmcpIHtcbiAgICAgICAgcmV0dXJuIGNvbnRlbnQ7XG4gICAgfVxuICAgIGlmICh1c2VTb3VyY2VNYXAgJiYgdHlwZW9mIGJ0b2EgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby11c2UtYmVmb3JlLWRlZmluZVxuICAgICAgICB2YXIgc291cmNlTWFwcGluZyA9IHRvQ29tbWVudChjc3NNYXBwaW5nKTtcbiAgICAgICAgdmFyIHNvdXJjZVVSTHMgPSBjc3NNYXBwaW5nLnNvdXJjZXMubWFwKGZ1bmN0aW9uKHNvdXJjZSkge1xuICAgICAgICAgICAgcmV0dXJuICcvKiMgc291cmNlVVJMPScuY29uY2F0KGNzc01hcHBpbmcuc291cmNlUm9vdCB8fCAnJykuY29uY2F0KHNvdXJjZSwgJyAqLycpO1xuICAgICAgICB9KTtcbiAgICAgICAgcmV0dXJuIFtcbiAgICAgICAgICAgIGNvbnRlbnRcbiAgICAgICAgXS5jb25jYXQoc291cmNlVVJMcykuY29uY2F0KFtcbiAgICAgICAgICAgIHNvdXJjZU1hcHBpbmdcbiAgICAgICAgXSkuam9pbignXFxuJyk7XG4gICAgfVxuICAgIHJldHVybiBbXG4gICAgICAgIGNvbnRlbnRcbiAgICBdLmpvaW4oJ1xcbicpO1xufSAvLyBBZGFwdGVkIGZyb20gY29udmVydC1zb3VyY2UtbWFwIChNSVQpXG5mdW5jdGlvbiB0b0NvbW1lbnQoc291cmNlTWFwKSB7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXVuZGVmXG4gICAgdmFyIGJhc2U2NCA9IGJ0b2EodW5lc2NhcGUoZW5jb2RlVVJJQ29tcG9uZW50KEpTT04uc3RyaW5naWZ5KHNvdXJjZU1hcCkpKSk7XG4gICAgdmFyIGRhdGEgPSAnc291cmNlTWFwcGluZ1VSTD1kYXRhOmFwcGxpY2F0aW9uL2pzb247Y2hhcnNldD11dGYtODtiYXNlNjQsJy5jb25jYXQoYmFzZTY0KTtcbiAgICByZXR1cm4gJy8qIyAnLmNvbmNhdChkYXRhLCAnICovJyk7XG59XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWFwaS5qcy5tYXAiXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(pages-dir-browser)/./node_modules/next/dist/build/webpack/loaders/css-loader/src/runtime/api.js\n")); - -/***/ }), - -/***/ "(pages-dir-browser)/./node_modules/next/dist/build/webpack/loaders/next-client-pages-loader.js?absolutePagePath=private-next-pages%2F_app&page=%2F_app!": -/*!*******************************************************************************************************************************************!*\ - !*** ./node_modules/next/dist/build/webpack/loaders/next-client-pages-loader.js?absolutePagePath=private-next-pages%2F_app&page=%2F_app! ***! - \*******************************************************************************************************************************************/ -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { - -eval(__webpack_require__.ts("\n (window.__NEXT_P = window.__NEXT_P || []).push([\n \"/_app\",\n function () {\n return __webpack_require__(/*! private-next-pages/_app */ \"(pages-dir-browser)/./pages/_app.tsx\");\n }\n ]);\n if(true) {\n module.hot.dispose(function () {\n window.__NEXT_P.push([\"/_app\"])\n });\n }\n //# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvYnVpbGQvd2VicGFjay9sb2FkZXJzL25leHQtY2xpZW50LXBhZ2VzLWxvYWRlci5qcz9hYnNvbHV0ZVBhZ2VQYXRoPXByaXZhdGUtbmV4dC1wYWdlcyUyRl9hcHAmcGFnZT0lMkZfYXBwISIsIm1hcHBpbmdzIjoiO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsZUFBZSxtQkFBTyxDQUFDLHFFQUF5QjtBQUNoRDtBQUNBO0FBQ0EsT0FBTyxJQUFVO0FBQ2pCLE1BQU0sVUFBVTtBQUNoQjtBQUNBLE9BQU87QUFDUDtBQUNBIiwic291cmNlcyI6WyIiXSwic291cmNlc0NvbnRlbnQiOlsiXG4gICAgKHdpbmRvdy5fX05FWFRfUCA9IHdpbmRvdy5fX05FWFRfUCB8fCBbXSkucHVzaChbXG4gICAgICBcIi9fYXBwXCIsXG4gICAgICBmdW5jdGlvbiAoKSB7XG4gICAgICAgIHJldHVybiByZXF1aXJlKFwicHJpdmF0ZS1uZXh0LXBhZ2VzL19hcHBcIik7XG4gICAgICB9XG4gICAgXSk7XG4gICAgaWYobW9kdWxlLmhvdCkge1xuICAgICAgbW9kdWxlLmhvdC5kaXNwb3NlKGZ1bmN0aW9uICgpIHtcbiAgICAgICAgd2luZG93Ll9fTkVYVF9QLnB1c2goW1wiL19hcHBcIl0pXG4gICAgICB9KTtcbiAgICB9XG4gICJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(pages-dir-browser)/./node_modules/next/dist/build/webpack/loaders/next-client-pages-loader.js?absolutePagePath=private-next-pages%2F_app&page=%2F_app!\n")); - -/***/ }), - -/***/ "(pages-dir-browser)/./node_modules/next/dist/build/webpack/loaders/next-style-loader/runtime/injectStylesIntoStyleTag.js": -/*!************************************************************************************************************!*\ - !*** ./node_modules/next/dist/build/webpack/loaders/next-style-loader/runtime/injectStylesIntoStyleTag.js ***! - \************************************************************************************************************/ -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { - -"use strict"; -eval(__webpack_require__.ts("/// <reference types=\"webpack/module.d.ts\" />\n\nconst isOldIE = function isOldIE() {\n let memo;\n return function memorize() {\n if (typeof memo === 'undefined') {\n // Test for IE <= 9 as proposed by Browserhacks\n // @see http://browserhacks.com/#hack-e71d8692f65334173fee715c222cb805\n // Tests for existence of standard globals is to allow style-loader\n // to operate correctly into non-standard environments\n // @see https://github.com/webpack-contrib/style-loader/issues/177\n memo = Boolean(window && document && document.all && !window.atob);\n }\n return memo;\n };\n}();\nconst getTargetElement = function() {\n const memo = {};\n return function memorize(target) {\n if (typeof memo[target] === 'undefined') {\n let styleTarget = document.querySelector(target);\n // Special case to return head of iframe instead of iframe itself\n if (window.HTMLIFrameElement && styleTarget instanceof window.HTMLIFrameElement) {\n try {\n // This will throw an exception if access to iframe is blocked\n // due to cross-origin restrictions\n styleTarget = styleTarget.contentDocument.head;\n } catch (e) {\n // istanbul ignore next\n styleTarget = null;\n }\n }\n memo[target] = styleTarget;\n }\n return memo[target];\n };\n}();\nconst stylesInDom = [];\nfunction getIndexByIdentifier(identifier) {\n let result = -1;\n for(let i = 0; i < stylesInDom.length; i++){\n if (stylesInDom[i].identifier === identifier) {\n result = i;\n break;\n }\n }\n return result;\n}\nfunction modulesToDom(list, options) {\n const idCountMap = {};\n const identifiers = [];\n for(let i = 0; i < list.length; i++){\n const item = list[i];\n const id = options.base ? item[0] + options.base : item[0];\n const count = idCountMap[id] || 0;\n const identifier = id + ' ' + count.toString();\n idCountMap[id] = count + 1;\n const index = getIndexByIdentifier(identifier);\n const obj = {\n css: item[1],\n media: item[2],\n sourceMap: item[3]\n };\n if (index !== -1) {\n stylesInDom[index].references++;\n stylesInDom[index].updater(obj);\n } else {\n stylesInDom.push({\n identifier: identifier,\n // eslint-disable-next-line @typescript-eslint/no-use-before-define\n updater: addStyle(obj, options),\n references: 1\n });\n }\n identifiers.push(identifier);\n }\n return identifiers;\n}\nfunction insertStyleElement(options) {\n const style = document.createElement('style');\n const attributes = options.attributes || {};\n if (typeof attributes.nonce === 'undefined') {\n const nonce = // eslint-disable-next-line no-undef\n true ? __webpack_require__.nc : 0;\n if (nonce) {\n attributes.nonce = nonce;\n }\n }\n Object.keys(attributes).forEach(function(key) {\n style.setAttribute(key, attributes[key]);\n });\n if (typeof options.insert === 'function') {\n options.insert(style);\n } else {\n const target = getTargetElement(options.insert || 'head');\n if (!target) {\n throw Object.defineProperty(new Error(\"Couldn't find a style target. This probably means that the value for the 'insert' parameter is invalid.\"), \"__NEXT_ERROR_CODE\", {\n value: \"E245\",\n enumerable: false,\n configurable: true\n });\n }\n target.appendChild(style);\n }\n return style;\n}\nfunction removeStyleElement(style) {\n // istanbul ignore if\n if (style.parentNode === null) {\n return false;\n }\n style.parentNode.removeChild(style);\n}\n/* istanbul ignore next */ const replaceText = function replaceText() {\n const textStore = [];\n return function replace(index, replacement) {\n textStore[index] = replacement;\n return textStore.filter(Boolean).join('\\n');\n };\n}();\nfunction applyToSingletonTag(style, index, remove, obj) {\n const css = remove ? '' : obj.media ? '@media ' + obj.media + ' {' + obj.css + '}' : obj.css;\n // For old IE\n /* istanbul ignore if */ if (style.styleSheet) {\n style.styleSheet.cssText = replaceText(index, css);\n } else {\n const cssNode = document.createTextNode(css);\n const childNodes = style.childNodes;\n if (childNodes[index]) {\n style.removeChild(childNodes[index]);\n }\n if (childNodes.length) {\n style.insertBefore(cssNode, childNodes[index]);\n } else {\n style.appendChild(cssNode);\n }\n }\n}\nfunction applyToTag(style, _options, obj) {\n let css = obj.css;\n const media = obj.media;\n const sourceMap = obj.sourceMap;\n if (media) {\n style.setAttribute('media', media);\n } else {\n style.removeAttribute('media');\n }\n if (sourceMap && typeof btoa !== 'undefined') {\n css += '\\n/*# sourceMappingURL=data:application/json;base64,' + btoa(unescape(encodeURIComponent(JSON.stringify(sourceMap)))) + ' */';\n }\n // For old IE\n /* istanbul ignore if */ if (style.styleSheet) {\n style.styleSheet.cssText = css;\n } else {\n while(style.firstChild){\n style.removeChild(style.firstChild);\n }\n style.appendChild(document.createTextNode(css));\n }\n}\nlet singleton = null;\nlet singletonCounter = 0;\nfunction addStyle(obj, options) {\n let style;\n let update;\n let remove;\n if (options.singleton) {\n const styleIndex = singletonCounter++;\n style = singleton || (singleton = insertStyleElement(options));\n update = applyToSingletonTag.bind(null, style, styleIndex, false);\n remove = applyToSingletonTag.bind(null, style, styleIndex, true);\n } else {\n style = insertStyleElement(options);\n update = applyToTag.bind(null, style, options);\n remove = function() {\n removeStyleElement(style);\n };\n }\n update(obj);\n return function updateStyle(newObj) {\n if (newObj) {\n if (newObj.css === obj.css && newObj.media === obj.media && newObj.sourceMap === obj.sourceMap) {\n return;\n }\n update(obj = newObj);\n } else {\n remove();\n }\n };\n}\nmodule.exports = function(list, options) {\n options = options || {};\n // Force single-tag solution on IE6-9, which has a hard limit on the # of <style>\n // tags it will allow on a page\n if (!options.singleton && typeof options.singleton !== 'boolean') {\n options.singleton = isOldIE();\n }\n list = list || [];\n let lastIdentifiers = modulesToDom(list, options);\n return function update(newList) {\n newList = newList || [];\n if (Object.prototype.toString.call(newList) !== '[object Array]') {\n return;\n }\n for(let i = 0; i < lastIdentifiers.length; i++){\n const identifier = lastIdentifiers[i];\n const index = getIndexByIdentifier(identifier);\n stylesInDom[index].references--;\n }\n const newLastIdentifiers = modulesToDom(newList, options);\n for(let i = 0; i < lastIdentifiers.length; i++){\n const identifier = lastIdentifiers[i];\n const index = getIndexByIdentifier(identifier);\n if (stylesInDom[index].references === 0) {\n stylesInDom[index].updater();\n stylesInDom.splice(index, 1);\n }\n }\n lastIdentifiers = newLastIdentifiers;\n };\n};\n\n//# sourceMappingURL=injectStylesIntoStyleTag.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvYnVpbGQvd2VicGFjay9sb2FkZXJzL25leHQtc3R5bGUtbG9hZGVyL3J1bnRpbWUvaW5qZWN0U3R5bGVzSW50b1N0eWxlVGFnLmpzIiwibWFwcGluZ3MiOiJBQUFBO0FBQ2E7QUFDYjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLENBQUM7QUFDRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esa0JBQWtCO0FBQ2xCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxDQUFDO0FBQ0Q7QUFDQTtBQUNBO0FBQ0EsbUJBQW1CLHdCQUF3QjtBQUMzQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLG1CQUFtQixpQkFBaUI7QUFDcEM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFVBQVU7QUFDVjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsYUFBYTtBQUNiO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsUUFBUSxLQUF3QyxHQUFHLHNCQUFpQixHQUFHLENBQUk7QUFDM0U7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxNQUFNO0FBQ047QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsYUFBYTtBQUNiO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLENBQUM7QUFDRDtBQUNBLHFFQUFxRSxnQkFBZ0I7QUFDckY7QUFDQTtBQUNBO0FBQ0EsTUFBTTtBQUNOO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsVUFBVTtBQUNWO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsTUFBTTtBQUNOO0FBQ0E7QUFDQTtBQUNBLDZEQUE2RDtBQUM3RDtBQUNBO0FBQ0E7QUFDQTtBQUNBLE1BQU07QUFDTjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsTUFBTTtBQUNOO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsVUFBVTtBQUNWO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHVCQUF1Qiw0QkFBNEI7QUFDbkQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHVCQUF1Qiw0QkFBNEI7QUFDbkQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUEiLCJzb3VyY2VzIjpbIkQ6XFxkb25neXVuLXByb2plY3RzXFx0d29cXG5vZGVfbW9kdWxlc1xcbmV4dFxcZGlzdFxcYnVpbGRcXHdlYnBhY2tcXGxvYWRlcnNcXG5leHQtc3R5bGUtbG9hZGVyXFxydW50aW1lXFxpbmplY3RTdHlsZXNJbnRvU3R5bGVUYWcuanMiXSwic291cmNlc0NvbnRlbnQiOlsiLy8vIDxyZWZlcmVuY2UgdHlwZXM9XCJ3ZWJwYWNrL21vZHVsZS5kLnRzXCIgLz5cblwidXNlIHN0cmljdFwiO1xuY29uc3QgaXNPbGRJRSA9IGZ1bmN0aW9uIGlzT2xkSUUoKSB7XG4gICAgbGV0IG1lbW87XG4gICAgcmV0dXJuIGZ1bmN0aW9uIG1lbW9yaXplKCkge1xuICAgICAgICBpZiAodHlwZW9mIG1lbW8gPT09ICd1bmRlZmluZWQnKSB7XG4gICAgICAgICAgICAvLyBUZXN0IGZvciBJRSA8PSA5IGFzIHByb3Bvc2VkIGJ5IEJyb3dzZXJoYWNrc1xuICAgICAgICAgICAgLy8gQHNlZSBodHRwOi8vYnJvd3NlcmhhY2tzLmNvbS8jaGFjay1lNzFkODY5MmY2NTMzNDE3M2ZlZTcxNWMyMjJjYjgwNVxuICAgICAgICAgICAgLy8gVGVzdHMgZm9yIGV4aXN0ZW5jZSBvZiBzdGFuZGFyZCBnbG9iYWxzIGlzIHRvIGFsbG93IHN0eWxlLWxvYWRlclxuICAgICAgICAgICAgLy8gdG8gb3BlcmF0ZSBjb3JyZWN0bHkgaW50byBub24tc3RhbmRhcmQgZW52aXJvbm1lbnRzXG4gICAgICAgICAgICAvLyBAc2VlIGh0dHBzOi8vZ2l0aHViLmNvbS93ZWJwYWNrLWNvbnRyaWIvc3R5bGUtbG9hZGVyL2lzc3Vlcy8xNzdcbiAgICAgICAgICAgIG1lbW8gPSBCb29sZWFuKHdpbmRvdyAmJiBkb2N1bWVudCAmJiBkb2N1bWVudC5hbGwgJiYgIXdpbmRvdy5hdG9iKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gbWVtbztcbiAgICB9O1xufSgpO1xuY29uc3QgZ2V0VGFyZ2V0RWxlbWVudCA9IGZ1bmN0aW9uKCkge1xuICAgIGNvbnN0IG1lbW8gPSB7fTtcbiAgICByZXR1cm4gZnVuY3Rpb24gbWVtb3JpemUodGFyZ2V0KSB7XG4gICAgICAgIGlmICh0eXBlb2YgbWVtb1t0YXJnZXRdID09PSAndW5kZWZpbmVkJykge1xuICAgICAgICAgICAgbGV0IHN0eWxlVGFyZ2V0ID0gZG9jdW1lbnQucXVlcnlTZWxlY3Rvcih0YXJnZXQpO1xuICAgICAgICAgICAgLy8gU3BlY2lhbCBjYXNlIHRvIHJldHVybiBoZWFkIG9mIGlmcmFtZSBpbnN0ZWFkIG9mIGlmcmFtZSBpdHNlbGZcbiAgICAgICAgICAgIGlmICh3aW5kb3cuSFRNTElGcmFtZUVsZW1lbnQgJiYgc3R5bGVUYXJnZXQgaW5zdGFuY2VvZiB3aW5kb3cuSFRNTElGcmFtZUVsZW1lbnQpIHtcbiAgICAgICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgICAgICAvLyBUaGlzIHdpbGwgdGhyb3cgYW4gZXhjZXB0aW9uIGlmIGFjY2VzcyB0byBpZnJhbWUgaXMgYmxvY2tlZFxuICAgICAgICAgICAgICAgICAgICAvLyBkdWUgdG8gY3Jvc3Mtb3JpZ2luIHJlc3RyaWN0aW9uc1xuICAgICAgICAgICAgICAgICAgICBzdHlsZVRhcmdldCA9IHN0eWxlVGFyZ2V0LmNvbnRlbnREb2N1bWVudC5oZWFkO1xuICAgICAgICAgICAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgICAgICAgICAgICAgLy8gaXN0YW5idWwgaWdub3JlIG5leHRcbiAgICAgICAgICAgICAgICAgICAgc3R5bGVUYXJnZXQgPSBudWxsO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIG1lbW9bdGFyZ2V0XSA9IHN0eWxlVGFyZ2V0O1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBtZW1vW3RhcmdldF07XG4gICAgfTtcbn0oKTtcbmNvbnN0IHN0eWxlc0luRG9tID0gW107XG5mdW5jdGlvbiBnZXRJbmRleEJ5SWRlbnRpZmllcihpZGVudGlmaWVyKSB7XG4gICAgbGV0IHJlc3VsdCA9IC0xO1xuICAgIGZvcihsZXQgaSA9IDA7IGkgPCBzdHlsZXNJbkRvbS5sZW5ndGg7IGkrKyl7XG4gICAgICAgIGlmIChzdHlsZXNJbkRvbVtpXS5pZGVudGlmaWVyID09PSBpZGVudGlmaWVyKSB7XG4gICAgICAgICAgICByZXN1bHQgPSBpO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHJlc3VsdDtcbn1cbmZ1bmN0aW9uIG1vZHVsZXNUb0RvbShsaXN0LCBvcHRpb25zKSB7XG4gICAgY29uc3QgaWRDb3VudE1hcCA9IHt9O1xuICAgIGNvbnN0IGlkZW50aWZpZXJzID0gW107XG4gICAgZm9yKGxldCBpID0gMDsgaSA8IGxpc3QubGVuZ3RoOyBpKyspe1xuICAgICAgICBjb25zdCBpdGVtID0gbGlzdFtpXTtcbiAgICAgICAgY29uc3QgaWQgPSBvcHRpb25zLmJhc2UgPyBpdGVtWzBdICsgb3B0aW9ucy5iYXNlIDogaXRlbVswXTtcbiAgICAgICAgY29uc3QgY291bnQgPSBpZENvdW50TWFwW2lkXSB8fCAwO1xuICAgICAgICBjb25zdCBpZGVudGlmaWVyID0gaWQgKyAnICcgKyBjb3VudC50b1N0cmluZygpO1xuICAgICAgICBpZENvdW50TWFwW2lkXSA9IGNvdW50ICsgMTtcbiAgICAgICAgY29uc3QgaW5kZXggPSBnZXRJbmRleEJ5SWRlbnRpZmllcihpZGVudGlmaWVyKTtcbiAgICAgICAgY29uc3Qgb2JqID0ge1xuICAgICAgICAgICAgY3NzOiBpdGVtWzFdLFxuICAgICAgICAgICAgbWVkaWE6IGl0ZW1bMl0sXG4gICAgICAgICAgICBzb3VyY2VNYXA6IGl0ZW1bM11cbiAgICAgICAgfTtcbiAgICAgICAgaWYgKGluZGV4ICE9PSAtMSkge1xuICAgICAgICAgICAgc3R5bGVzSW5Eb21baW5kZXhdLnJlZmVyZW5jZXMrKztcbiAgICAgICAgICAgIHN0eWxlc0luRG9tW2luZGV4XS51cGRhdGVyKG9iaik7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBzdHlsZXNJbkRvbS5wdXNoKHtcbiAgICAgICAgICAgICAgICBpZGVudGlmaWVyOiBpZGVudGlmaWVyLFxuICAgICAgICAgICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdXNlLWJlZm9yZS1kZWZpbmVcbiAgICAgICAgICAgICAgICB1cGRhdGVyOiBhZGRTdHlsZShvYmosIG9wdGlvbnMpLFxuICAgICAgICAgICAgICAgIHJlZmVyZW5jZXM6IDFcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICAgIGlkZW50aWZpZXJzLnB1c2goaWRlbnRpZmllcik7XG4gICAgfVxuICAgIHJldHVybiBpZGVudGlmaWVycztcbn1cbmZ1bmN0aW9uIGluc2VydFN0eWxlRWxlbWVudChvcHRpb25zKSB7XG4gICAgY29uc3Qgc3R5bGUgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzdHlsZScpO1xuICAgIGNvbnN0IGF0dHJpYnV0ZXMgPSBvcHRpb25zLmF0dHJpYnV0ZXMgfHwge307XG4gICAgaWYgKHR5cGVvZiBhdHRyaWJ1dGVzLm5vbmNlID09PSAndW5kZWZpbmVkJykge1xuICAgICAgICBjb25zdCBub25jZSA9IC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby11bmRlZlxuICAgICAgICB0eXBlb2YgX193ZWJwYWNrX25vbmNlX18gIT09ICd1bmRlZmluZWQnID8gX193ZWJwYWNrX25vbmNlX18gOiBudWxsO1xuICAgICAgICBpZiAobm9uY2UpIHtcbiAgICAgICAgICAgIGF0dHJpYnV0ZXMubm9uY2UgPSBub25jZTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBPYmplY3Qua2V5cyhhdHRyaWJ1dGVzKS5mb3JFYWNoKGZ1bmN0aW9uKGtleSkge1xuICAgICAgICBzdHlsZS5zZXRBdHRyaWJ1dGUoa2V5LCBhdHRyaWJ1dGVzW2tleV0pO1xuICAgIH0pO1xuICAgIGlmICh0eXBlb2Ygb3B0aW9ucy5pbnNlcnQgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgb3B0aW9ucy5pbnNlcnQoc3R5bGUpO1xuICAgIH0gZWxzZSB7XG4gICAgICAgIGNvbnN0IHRhcmdldCA9IGdldFRhcmdldEVsZW1lbnQob3B0aW9ucy5pbnNlcnQgfHwgJ2hlYWQnKTtcbiAgICAgICAgaWYgKCF0YXJnZXQpIHtcbiAgICAgICAgICAgIHRocm93IE9iamVjdC5kZWZpbmVQcm9wZXJ0eShuZXcgRXJyb3IoXCJDb3VsZG4ndCBmaW5kIGEgc3R5bGUgdGFyZ2V0LiBUaGlzIHByb2JhYmx5IG1lYW5zIHRoYXQgdGhlIHZhbHVlIGZvciB0aGUgJ2luc2VydCcgcGFyYW1ldGVyIGlzIGludmFsaWQuXCIpLCBcIl9fTkVYVF9FUlJPUl9DT0RFXCIsIHtcbiAgICAgICAgICAgICAgICB2YWx1ZTogXCJFMjQ1XCIsXG4gICAgICAgICAgICAgICAgZW51bWVyYWJsZTogZmFsc2UsXG4gICAgICAgICAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgICB0YXJnZXQuYXBwZW5kQ2hpbGQoc3R5bGUpO1xuICAgIH1cbiAgICByZXR1cm4gc3R5bGU7XG59XG5mdW5jdGlvbiByZW1vdmVTdHlsZUVsZW1lbnQoc3R5bGUpIHtcbiAgICAvLyBpc3RhbmJ1bCBpZ25vcmUgaWZcbiAgICBpZiAoc3R5bGUucGFyZW50Tm9kZSA9PT0gbnVsbCkge1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICAgIHN0eWxlLnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQoc3R5bGUpO1xufVxuLyogaXN0YW5idWwgaWdub3JlIG5leHQgICovIGNvbnN0IHJlcGxhY2VUZXh0ID0gZnVuY3Rpb24gcmVwbGFjZVRleHQoKSB7XG4gICAgY29uc3QgdGV4dFN0b3JlID0gW107XG4gICAgcmV0dXJuIGZ1bmN0aW9uIHJlcGxhY2UoaW5kZXgsIHJlcGxhY2VtZW50KSB7XG4gICAgICAgIHRleHRTdG9yZVtpbmRleF0gPSByZXBsYWNlbWVudDtcbiAgICAgICAgcmV0dXJuIHRleHRTdG9yZS5maWx0ZXIoQm9vbGVhbikuam9pbignXFxuJyk7XG4gICAgfTtcbn0oKTtcbmZ1bmN0aW9uIGFwcGx5VG9TaW5nbGV0b25UYWcoc3R5bGUsIGluZGV4LCByZW1vdmUsIG9iaikge1xuICAgIGNvbnN0IGNzcyA9IHJlbW92ZSA/ICcnIDogb2JqLm1lZGlhID8gJ0BtZWRpYSAnICsgb2JqLm1lZGlhICsgJyB7JyArIG9iai5jc3MgKyAnfScgOiBvYmouY3NzO1xuICAgIC8vIEZvciBvbGQgSUVcbiAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgaWYgICovIGlmIChzdHlsZS5zdHlsZVNoZWV0KSB7XG4gICAgICAgIHN0eWxlLnN0eWxlU2hlZXQuY3NzVGV4dCA9IHJlcGxhY2VUZXh0KGluZGV4LCBjc3MpO1xuICAgIH0gZWxzZSB7XG4gICAgICAgIGNvbnN0IGNzc05vZGUgPSBkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZShjc3MpO1xuICAgICAgICBjb25zdCBjaGlsZE5vZGVzID0gc3R5bGUuY2hpbGROb2RlcztcbiAgICAgICAgaWYgKGNoaWxkTm9kZXNbaW5kZXhdKSB7XG4gICAgICAgICAgICBzdHlsZS5yZW1vdmVDaGlsZChjaGlsZE5vZGVzW2luZGV4XSk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGNoaWxkTm9kZXMubGVuZ3RoKSB7XG4gICAgICAgICAgICBzdHlsZS5pbnNlcnRCZWZvcmUoY3NzTm9kZSwgY2hpbGROb2Rlc1tpbmRleF0pO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgc3R5bGUuYXBwZW5kQ2hpbGQoY3NzTm9kZSk7XG4gICAgICAgIH1cbiAgICB9XG59XG5mdW5jdGlvbiBhcHBseVRvVGFnKHN0eWxlLCBfb3B0aW9ucywgb2JqKSB7XG4gICAgbGV0IGNzcyA9IG9iai5jc3M7XG4gICAgY29uc3QgbWVkaWEgPSBvYmoubWVkaWE7XG4gICAgY29uc3Qgc291cmNlTWFwID0gb2JqLnNvdXJjZU1hcDtcbiAgICBpZiAobWVkaWEpIHtcbiAgICAgICAgc3R5bGUuc2V0QXR0cmlidXRlKCdtZWRpYScsIG1lZGlhKTtcbiAgICB9IGVsc2Uge1xuICAgICAgICBzdHlsZS5yZW1vdmVBdHRyaWJ1dGUoJ21lZGlhJyk7XG4gICAgfVxuICAgIGlmIChzb3VyY2VNYXAgJiYgdHlwZW9mIGJ0b2EgIT09ICd1bmRlZmluZWQnKSB7XG4gICAgICAgIGNzcyArPSAnXFxuLyojIHNvdXJjZU1hcHBpbmdVUkw9ZGF0YTphcHBsaWNhdGlvbi9qc29uO2Jhc2U2NCwnICsgYnRvYSh1bmVzY2FwZShlbmNvZGVVUklDb21wb25lbnQoSlNPTi5zdHJpbmdpZnkoc291cmNlTWFwKSkpKSArICcgKi8nO1xuICAgIH1cbiAgICAvLyBGb3Igb2xkIElFXG4gICAgLyogaXN0YW5idWwgaWdub3JlIGlmICAqLyBpZiAoc3R5bGUuc3R5bGVTaGVldCkge1xuICAgICAgICBzdHlsZS5zdHlsZVNoZWV0LmNzc1RleHQgPSBjc3M7XG4gICAgfSBlbHNlIHtcbiAgICAgICAgd2hpbGUoc3R5bGUuZmlyc3RDaGlsZCl7XG4gICAgICAgICAgICBzdHlsZS5yZW1vdmVDaGlsZChzdHlsZS5maXJzdENoaWxkKTtcbiAgICAgICAgfVxuICAgICAgICBzdHlsZS5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZShjc3MpKTtcbiAgICB9XG59XG5sZXQgc2luZ2xldG9uID0gbnVsbDtcbmxldCBzaW5nbGV0b25Db3VudGVyID0gMDtcbmZ1bmN0aW9uIGFkZFN0eWxlKG9iaiwgb3B0aW9ucykge1xuICAgIGxldCBzdHlsZTtcbiAgICBsZXQgdXBkYXRlO1xuICAgIGxldCByZW1vdmU7XG4gICAgaWYgKG9wdGlvbnMuc2luZ2xldG9uKSB7XG4gICAgICAgIGNvbnN0IHN0eWxlSW5kZXggPSBzaW5nbGV0b25Db3VudGVyKys7XG4gICAgICAgIHN0eWxlID0gc2luZ2xldG9uIHx8IChzaW5nbGV0b24gPSBpbnNlcnRTdHlsZUVsZW1lbnQob3B0aW9ucykpO1xuICAgICAgICB1cGRhdGUgPSBhcHBseVRvU2luZ2xldG9uVGFnLmJpbmQobnVsbCwgc3R5bGUsIHN0eWxlSW5kZXgsIGZhbHNlKTtcbiAgICAgICAgcmVtb3ZlID0gYXBwbHlUb1NpbmdsZXRvblRhZy5iaW5kKG51bGwsIHN0eWxlLCBzdHlsZUluZGV4LCB0cnVlKTtcbiAgICB9IGVsc2Uge1xuICAgICAgICBzdHlsZSA9IGluc2VydFN0eWxlRWxlbWVudChvcHRpb25zKTtcbiAgICAgICAgdXBkYXRlID0gYXBwbHlUb1RhZy5iaW5kKG51bGwsIHN0eWxlLCBvcHRpb25zKTtcbiAgICAgICAgcmVtb3ZlID0gZnVuY3Rpb24oKSB7XG4gICAgICAgICAgICByZW1vdmVTdHlsZUVsZW1lbnQoc3R5bGUpO1xuICAgICAgICB9O1xuICAgIH1cbiAgICB1cGRhdGUob2JqKTtcbiAgICByZXR1cm4gZnVuY3Rpb24gdXBkYXRlU3R5bGUobmV3T2JqKSB7XG4gICAgICAgIGlmIChuZXdPYmopIHtcbiAgICAgICAgICAgIGlmIChuZXdPYmouY3NzID09PSBvYmouY3NzICYmIG5ld09iai5tZWRpYSA9PT0gb2JqLm1lZGlhICYmIG5ld09iai5zb3VyY2VNYXAgPT09IG9iai5zb3VyY2VNYXApIHtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB1cGRhdGUob2JqID0gbmV3T2JqKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJlbW92ZSgpO1xuICAgICAgICB9XG4gICAgfTtcbn1cbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24obGlzdCwgb3B0aW9ucykge1xuICAgIG9wdGlvbnMgPSBvcHRpb25zIHx8IHt9O1xuICAgIC8vIEZvcmNlIHNpbmdsZS10YWcgc29sdXRpb24gb24gSUU2LTksIHdoaWNoIGhhcyBhIGhhcmQgbGltaXQgb24gdGhlICMgb2YgPHN0eWxlPlxuICAgIC8vIHRhZ3MgaXQgd2lsbCBhbGxvdyBvbiBhIHBhZ2VcbiAgICBpZiAoIW9wdGlvbnMuc2luZ2xldG9uICYmIHR5cGVvZiBvcHRpb25zLnNpbmdsZXRvbiAhPT0gJ2Jvb2xlYW4nKSB7XG4gICAgICAgIG9wdGlvbnMuc2luZ2xldG9uID0gaXNPbGRJRSgpO1xuICAgIH1cbiAgICBsaXN0ID0gbGlzdCB8fCBbXTtcbiAgICBsZXQgbGFzdElkZW50aWZpZXJzID0gbW9kdWxlc1RvRG9tKGxpc3QsIG9wdGlvbnMpO1xuICAgIHJldHVybiBmdW5jdGlvbiB1cGRhdGUobmV3TGlzdCkge1xuICAgICAgICBuZXdMaXN0ID0gbmV3TGlzdCB8fCBbXTtcbiAgICAgICAgaWYgKE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChuZXdMaXN0KSAhPT0gJ1tvYmplY3QgQXJyYXldJykge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGZvcihsZXQgaSA9IDA7IGkgPCBsYXN0SWRlbnRpZmllcnMubGVuZ3RoOyBpKyspe1xuICAgICAgICAgICAgY29uc3QgaWRlbnRpZmllciA9IGxhc3RJZGVudGlmaWVyc1tpXTtcbiAgICAgICAgICAgIGNvbnN0IGluZGV4ID0gZ2V0SW5kZXhCeUlkZW50aWZpZXIoaWRlbnRpZmllcik7XG4gICAgICAgICAgICBzdHlsZXNJbkRvbVtpbmRleF0ucmVmZXJlbmNlcy0tO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IG5ld0xhc3RJZGVudGlmaWVycyA9IG1vZHVsZXNUb0RvbShuZXdMaXN0LCBvcHRpb25zKTtcbiAgICAgICAgZm9yKGxldCBpID0gMDsgaSA8IGxhc3RJZGVudGlmaWVycy5sZW5ndGg7IGkrKyl7XG4gICAgICAgICAgICBjb25zdCBpZGVudGlmaWVyID0gbGFzdElkZW50aWZpZXJzW2ldO1xuICAgICAgICAgICAgY29uc3QgaW5kZXggPSBnZXRJbmRleEJ5SWRlbnRpZmllcihpZGVudGlmaWVyKTtcbiAgICAgICAgICAgIGlmIChzdHlsZXNJbkRvbVtpbmRleF0ucmVmZXJlbmNlcyA9PT0gMCkge1xuICAgICAgICAgICAgICAgIHN0eWxlc0luRG9tW2luZGV4XS51cGRhdGVyKCk7XG4gICAgICAgICAgICAgICAgc3R5bGVzSW5Eb20uc3BsaWNlKGluZGV4LCAxKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBsYXN0SWRlbnRpZmllcnMgPSBuZXdMYXN0SWRlbnRpZmllcnM7XG4gICAgfTtcbn07XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWluamVjdFN0eWxlc0ludG9TdHlsZVRhZy5qcy5tYXAiXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(pages-dir-browser)/./node_modules/next/dist/build/webpack/loaders/next-style-loader/runtime/injectStylesIntoStyleTag.js\n")); - -/***/ }), - -/***/ "(pages-dir-browser)/./node_modules/react/cjs/react-jsx-dev-runtime.development.js": -/*!*********************************************************************!*\ - !*** ./node_modules/react/cjs/react-jsx-dev-runtime.development.js ***! - \*********************************************************************/ -/***/ ((__unused_webpack_module, exports, __webpack_require__) => { - -"use strict"; -eval(__webpack_require__.ts("/**\n * @license React\n * react-jsx-dev-runtime.development.js\n *\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n\n true &&\n (function () {\n function getComponentNameFromType(type) {\n if (null == type) return null;\n if (\"function\" === typeof type)\n return type.$$typeof === REACT_CLIENT_REFERENCE\n ? null\n : type.displayName || type.name || null;\n if (\"string\" === typeof type) return type;\n switch (type) {\n case REACT_FRAGMENT_TYPE:\n return \"Fragment\";\n case REACT_PROFILER_TYPE:\n return \"Profiler\";\n case REACT_STRICT_MODE_TYPE:\n return \"StrictMode\";\n case REACT_SUSPENSE_TYPE:\n return \"Suspense\";\n case REACT_SUSPENSE_LIST_TYPE:\n return \"SuspenseList\";\n case REACT_ACTIVITY_TYPE:\n return \"Activity\";\n }\n if (\"object\" === typeof type)\n switch (\n (\"number\" === typeof type.tag &&\n console.error(\n \"Received an unexpected object in getComponentNameFromType(). This is likely a bug in React. Please file an issue.\"\n ),\n type.$$typeof)\n ) {\n case REACT_PORTAL_TYPE:\n return \"Portal\";\n case REACT_CONTEXT_TYPE:\n return (type.displayName || \"Context\") + \".Provider\";\n case REACT_CONSUMER_TYPE:\n return (type._context.displayName || \"Context\") + \".Consumer\";\n case REACT_FORWARD_REF_TYPE:\n var innerType = type.render;\n type = type.displayName;\n type ||\n ((type = innerType.displayName || innerType.name || \"\"),\n (type = \"\" !== type ? \"ForwardRef(\" + type + \")\" : \"ForwardRef\"));\n return type;\n case REACT_MEMO_TYPE:\n return (\n (innerType = type.displayName || null),\n null !== innerType\n ? innerType\n : getComponentNameFromType(type.type) || \"Memo\"\n );\n case REACT_LAZY_TYPE:\n innerType = type._payload;\n type = type._init;\n try {\n return getComponentNameFromType(type(innerType));\n } catch (x) {}\n }\n return null;\n }\n function testStringCoercion(value) {\n return \"\" + value;\n }\n function checkKeyStringCoercion(value) {\n try {\n testStringCoercion(value);\n var JSCompiler_inline_result = !1;\n } catch (e) {\n JSCompiler_inline_result = !0;\n }\n if (JSCompiler_inline_result) {\n JSCompiler_inline_result = console;\n var JSCompiler_temp_const = JSCompiler_inline_result.error;\n var JSCompiler_inline_result$jscomp$0 =\n (\"function\" === typeof Symbol &&\n Symbol.toStringTag &&\n value[Symbol.toStringTag]) ||\n value.constructor.name ||\n \"Object\";\n JSCompiler_temp_const.call(\n JSCompiler_inline_result,\n \"The provided key is an unsupported type %s. This value must be coerced to a string before using it here.\",\n JSCompiler_inline_result$jscomp$0\n );\n return testStringCoercion(value);\n }\n }\n function getTaskName(type) {\n if (type === REACT_FRAGMENT_TYPE) return \"<>\";\n if (\n \"object\" === typeof type &&\n null !== type &&\n type.$$typeof === REACT_LAZY_TYPE\n )\n return \"<...>\";\n try {\n var name = getComponentNameFromType(type);\n return name ? \"<\" + name + \">\" : \"<...>\";\n } catch (x) {\n return \"<...>\";\n }\n }\n function getOwner() {\n var dispatcher = ReactSharedInternals.A;\n return null === dispatcher ? null : dispatcher.getOwner();\n }\n function UnknownOwner() {\n return Error(\"react-stack-top-frame\");\n }\n function hasValidKey(config) {\n if (hasOwnProperty.call(config, \"key\")) {\n var getter = Object.getOwnPropertyDescriptor(config, \"key\").get;\n if (getter && getter.isReactWarning) return !1;\n }\n return void 0 !== config.key;\n }\n function defineKeyPropWarningGetter(props, displayName) {\n function warnAboutAccessingKey() {\n specialPropKeyWarningShown ||\n ((specialPropKeyWarningShown = !0),\n console.error(\n \"%s: `key` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://react.dev/link/special-props)\",\n displayName\n ));\n }\n warnAboutAccessingKey.isReactWarning = !0;\n Object.defineProperty(props, \"key\", {\n get: warnAboutAccessingKey,\n configurable: !0\n });\n }\n function elementRefGetterWithDeprecationWarning() {\n var componentName = getComponentNameFromType(this.type);\n didWarnAboutElementRef[componentName] ||\n ((didWarnAboutElementRef[componentName] = !0),\n console.error(\n \"Accessing element.ref was removed in React 19. ref is now a regular prop. It will be removed from the JSX Element type in a future release.\"\n ));\n componentName = this.props.ref;\n return void 0 !== componentName ? componentName : null;\n }\n function ReactElement(\n type,\n key,\n self,\n source,\n owner,\n props,\n debugStack,\n debugTask\n ) {\n self = props.ref;\n type = {\n $$typeof: REACT_ELEMENT_TYPE,\n type: type,\n key: key,\n props: props,\n _owner: owner\n };\n null !== (void 0 !== self ? self : null)\n ? Object.defineProperty(type, \"ref\", {\n enumerable: !1,\n get: elementRefGetterWithDeprecationWarning\n })\n : Object.defineProperty(type, \"ref\", { enumerable: !1, value: null });\n type._store = {};\n Object.defineProperty(type._store, \"validated\", {\n configurable: !1,\n enumerable: !1,\n writable: !0,\n value: 0\n });\n Object.defineProperty(type, \"_debugInfo\", {\n configurable: !1,\n enumerable: !1,\n writable: !0,\n value: null\n });\n Object.defineProperty(type, \"_debugStack\", {\n configurable: !1,\n enumerable: !1,\n writable: !0,\n value: debugStack\n });\n Object.defineProperty(type, \"_debugTask\", {\n configurable: !1,\n enumerable: !1,\n writable: !0,\n value: debugTask\n });\n Object.freeze && (Object.freeze(type.props), Object.freeze(type));\n return type;\n }\n function jsxDEVImpl(\n type,\n config,\n maybeKey,\n isStaticChildren,\n source,\n self,\n debugStack,\n debugTask\n ) {\n var children = config.children;\n if (void 0 !== children)\n if (isStaticChildren)\n if (isArrayImpl(children)) {\n for (\n isStaticChildren = 0;\n isStaticChildren < children.length;\n isStaticChildren++\n )\n validateChildKeys(children[isStaticChildren]);\n Object.freeze && Object.freeze(children);\n } else\n console.error(\n \"React.jsx: Static children should always be an array. You are likely explicitly calling React.jsxs or React.jsxDEV. Use the Babel transform instead.\"\n );\n else validateChildKeys(children);\n if (hasOwnProperty.call(config, \"key\")) {\n children = getComponentNameFromType(type);\n var keys = Object.keys(config).filter(function (k) {\n return \"key\" !== k;\n });\n isStaticChildren =\n 0 < keys.length\n ? \"{key: someKey, \" + keys.join(\": ..., \") + \": ...}\"\n : \"{key: someKey}\";\n didWarnAboutKeySpread[children + isStaticChildren] ||\n ((keys =\n 0 < keys.length ? \"{\" + keys.join(\": ..., \") + \": ...}\" : \"{}\"),\n console.error(\n 'A props object containing a \"key\" prop is being spread into JSX:\\n let props = %s;\\n <%s {...props} />\\nReact keys must be passed directly to JSX without using spread:\\n let props = %s;\\n <%s key={someKey} {...props} />',\n isStaticChildren,\n children,\n keys,\n children\n ),\n (didWarnAboutKeySpread[children + isStaticChildren] = !0));\n }\n children = null;\n void 0 !== maybeKey &&\n (checkKeyStringCoercion(maybeKey), (children = \"\" + maybeKey));\n hasValidKey(config) &&\n (checkKeyStringCoercion(config.key), (children = \"\" + config.key));\n if (\"key\" in config) {\n maybeKey = {};\n for (var propName in config)\n \"key\" !== propName && (maybeKey[propName] = config[propName]);\n } else maybeKey = config;\n children &&\n defineKeyPropWarningGetter(\n maybeKey,\n \"function\" === typeof type\n ? type.displayName || type.name || \"Unknown\"\n : type\n );\n return ReactElement(\n type,\n children,\n self,\n source,\n getOwner(),\n maybeKey,\n debugStack,\n debugTask\n );\n }\n function validateChildKeys(node) {\n \"object\" === typeof node &&\n null !== node &&\n node.$$typeof === REACT_ELEMENT_TYPE &&\n node._store &&\n (node._store.validated = 1);\n }\n var React = __webpack_require__(/*! react */ \"(pages-dir-browser)/./node_modules/react/index.js\"),\n REACT_ELEMENT_TYPE = Symbol.for(\"react.transitional.element\"),\n REACT_PORTAL_TYPE = Symbol.for(\"react.portal\"),\n REACT_FRAGMENT_TYPE = Symbol.for(\"react.fragment\"),\n REACT_STRICT_MODE_TYPE = Symbol.for(\"react.strict_mode\"),\n REACT_PROFILER_TYPE = Symbol.for(\"react.profiler\");\n Symbol.for(\"react.provider\");\n var REACT_CONSUMER_TYPE = Symbol.for(\"react.consumer\"),\n REACT_CONTEXT_TYPE = Symbol.for(\"react.context\"),\n REACT_FORWARD_REF_TYPE = Symbol.for(\"react.forward_ref\"),\n REACT_SUSPENSE_TYPE = Symbol.for(\"react.suspense\"),\n REACT_SUSPENSE_LIST_TYPE = Symbol.for(\"react.suspense_list\"),\n REACT_MEMO_TYPE = Symbol.for(\"react.memo\"),\n REACT_LAZY_TYPE = Symbol.for(\"react.lazy\"),\n REACT_ACTIVITY_TYPE = Symbol.for(\"react.activity\"),\n REACT_CLIENT_REFERENCE = Symbol.for(\"react.client.reference\"),\n ReactSharedInternals =\n React.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,\n hasOwnProperty = Object.prototype.hasOwnProperty,\n isArrayImpl = Array.isArray,\n createTask = console.createTask\n ? console.createTask\n : function () {\n return null;\n };\n React = {\n \"react-stack-bottom-frame\": function (callStackForError) {\n return callStackForError();\n }\n };\n var specialPropKeyWarningShown;\n var didWarnAboutElementRef = {};\n var unknownOwnerDebugStack = React[\"react-stack-bottom-frame\"].bind(\n React,\n UnknownOwner\n )();\n var unknownOwnerDebugTask = createTask(getTaskName(UnknownOwner));\n var didWarnAboutKeySpread = {};\n exports.Fragment = REACT_FRAGMENT_TYPE;\n exports.jsxDEV = function (\n type,\n config,\n maybeKey,\n isStaticChildren,\n source,\n self\n ) {\n var trackActualOwner =\n 1e4 > ReactSharedInternals.recentlyCreatedOwnerStacks++;\n return jsxDEVImpl(\n type,\n config,\n maybeKey,\n isStaticChildren,\n source,\n self,\n trackActualOwner\n ? Error(\"react-stack-top-frame\")\n : unknownOwnerDebugStack,\n trackActualOwner ? createTask(getTaskName(type)) : unknownOwnerDebugTask\n );\n };\n })();\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9yZWFjdC9janMvcmVhY3QtanN4LWRldi1ydW50aW1lLmRldmVsb3BtZW50LmpzIiwibWFwcGluZ3MiOiJBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFYTtBQUNiLEtBQXFDO0FBQ3JDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsY0FBYztBQUNkO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsUUFBUTtBQUNSO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFFBQVE7QUFDUjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsV0FBVztBQUNYLCtDQUErQyw2QkFBNkI7QUFDNUU7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFlBQVk7QUFDWjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQSxnQkFBZ0IsZ0RBQWdEO0FBQ2hFLGdCQUFnQixhQUFhO0FBQzdCO0FBQ0E7QUFDQSxnQ0FBZ0Msa0NBQWtDLE9BQU87QUFDekU7QUFDQSxnR0FBZ0csU0FBUyxVQUFVLHNGQUFzRixhQUFhLFVBQVUsVUFBVTtBQUMxTztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFFBQVE7QUFDUjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGdCQUFnQixtQkFBTyxDQUFDLGdFQUFPO0FBQy9CO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsSUFBSSxnQkFBZ0I7QUFDcEIsSUFBSSxjQUFjO0FBQ2xCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsR0FBRyIsInNvdXJjZXMiOlsiRDpcXGRvbmd5dW4tcHJvamVjdHNcXHR3b1xcbm9kZV9tb2R1bGVzXFxyZWFjdFxcY2pzXFxyZWFjdC1qc3gtZGV2LXJ1bnRpbWUuZGV2ZWxvcG1lbnQuanMiXSwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAbGljZW5zZSBSZWFjdFxuICogcmVhY3QtanN4LWRldi1ydW50aW1lLmRldmVsb3BtZW50LmpzXG4gKlxuICogQ29weXJpZ2h0IChjKSBNZXRhIFBsYXRmb3JtcywgSW5jLiBhbmQgYWZmaWxpYXRlcy5cbiAqXG4gKiBUaGlzIHNvdXJjZSBjb2RlIGlzIGxpY2Vuc2VkIHVuZGVyIHRoZSBNSVQgbGljZW5zZSBmb3VuZCBpbiB0aGVcbiAqIExJQ0VOU0UgZmlsZSBpbiB0aGUgcm9vdCBkaXJlY3Rvcnkgb2YgdGhpcyBzb3VyY2UgdHJlZS5cbiAqL1xuXG5cInVzZSBzdHJpY3RcIjtcblwicHJvZHVjdGlvblwiICE9PSBwcm9jZXNzLmVudi5OT0RFX0VOViAmJlxuICAoZnVuY3Rpb24gKCkge1xuICAgIGZ1bmN0aW9uIGdldENvbXBvbmVudE5hbWVGcm9tVHlwZSh0eXBlKSB7XG4gICAgICBpZiAobnVsbCA9PSB0eXBlKSByZXR1cm4gbnVsbDtcbiAgICAgIGlmIChcImZ1bmN0aW9uXCIgPT09IHR5cGVvZiB0eXBlKVxuICAgICAgICByZXR1cm4gdHlwZS4kJHR5cGVvZiA9PT0gUkVBQ1RfQ0xJRU5UX1JFRkVSRU5DRVxuICAgICAgICAgID8gbnVsbFxuICAgICAgICAgIDogdHlwZS5kaXNwbGF5TmFtZSB8fCB0eXBlLm5hbWUgfHwgbnVsbDtcbiAgICAgIGlmIChcInN0cmluZ1wiID09PSB0eXBlb2YgdHlwZSkgcmV0dXJuIHR5cGU7XG4gICAgICBzd2l0Y2ggKHR5cGUpIHtcbiAgICAgICAgY2FzZSBSRUFDVF9GUkFHTUVOVF9UWVBFOlxuICAgICAgICAgIHJldHVybiBcIkZyYWdtZW50XCI7XG4gICAgICAgIGNhc2UgUkVBQ1RfUFJPRklMRVJfVFlQRTpcbiAgICAgICAgICByZXR1cm4gXCJQcm9maWxlclwiO1xuICAgICAgICBjYXNlIFJFQUNUX1NUUklDVF9NT0RFX1RZUEU6XG4gICAgICAgICAgcmV0dXJuIFwiU3RyaWN0TW9kZVwiO1xuICAgICAgICBjYXNlIFJFQUNUX1NVU1BFTlNFX1RZUEU6XG4gICAgICAgICAgcmV0dXJuIFwiU3VzcGVuc2VcIjtcbiAgICAgICAgY2FzZSBSRUFDVF9TVVNQRU5TRV9MSVNUX1RZUEU6XG4gICAgICAgICAgcmV0dXJuIFwiU3VzcGVuc2VMaXN0XCI7XG4gICAgICAgIGNhc2UgUkVBQ1RfQUNUSVZJVFlfVFlQRTpcbiAgICAgICAgICByZXR1cm4gXCJBY3Rpdml0eVwiO1xuICAgICAgfVxuICAgICAgaWYgKFwib2JqZWN0XCIgPT09IHR5cGVvZiB0eXBlKVxuICAgICAgICBzd2l0Y2ggKFxuICAgICAgICAgIChcIm51bWJlclwiID09PSB0eXBlb2YgdHlwZS50YWcgJiZcbiAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoXG4gICAgICAgICAgICAgIFwiUmVjZWl2ZWQgYW4gdW5leHBlY3RlZCBvYmplY3QgaW4gZ2V0Q29tcG9uZW50TmFtZUZyb21UeXBlKCkuIFRoaXMgaXMgbGlrZWx5IGEgYnVnIGluIFJlYWN0LiBQbGVhc2UgZmlsZSBhbiBpc3N1ZS5cIlxuICAgICAgICAgICAgKSxcbiAgICAgICAgICB0eXBlLiQkdHlwZW9mKVxuICAgICAgICApIHtcbiAgICAgICAgICBjYXNlIFJFQUNUX1BPUlRBTF9UWVBFOlxuICAgICAgICAgICAgcmV0dXJuIFwiUG9ydGFsXCI7XG4gICAgICAgICAgY2FzZSBSRUFDVF9DT05URVhUX1RZUEU6XG4gICAgICAgICAgICByZXR1cm4gKHR5cGUuZGlzcGxheU5hbWUgfHwgXCJDb250ZXh0XCIpICsgXCIuUHJvdmlkZXJcIjtcbiAgICAgICAgICBjYXNlIFJFQUNUX0NPTlNVTUVSX1RZUEU6XG4gICAgICAgICAgICByZXR1cm4gKHR5cGUuX2NvbnRleHQuZGlzcGxheU5hbWUgfHwgXCJDb250ZXh0XCIpICsgXCIuQ29uc3VtZXJcIjtcbiAgICAgICAgICBjYXNlIFJFQUNUX0ZPUldBUkRfUkVGX1RZUEU6XG4gICAgICAgICAgICB2YXIgaW5uZXJUeXBlID0gdHlwZS5yZW5kZXI7XG4gICAgICAgICAgICB0eXBlID0gdHlwZS5kaXNwbGF5TmFtZTtcbiAgICAgICAgICAgIHR5cGUgfHxcbiAgICAgICAgICAgICAgKCh0eXBlID0gaW5uZXJUeXBlLmRpc3BsYXlOYW1lIHx8IGlubmVyVHlwZS5uYW1lIHx8IFwiXCIpLFxuICAgICAgICAgICAgICAodHlwZSA9IFwiXCIgIT09IHR5cGUgPyBcIkZvcndhcmRSZWYoXCIgKyB0eXBlICsgXCIpXCIgOiBcIkZvcndhcmRSZWZcIikpO1xuICAgICAgICAgICAgcmV0dXJuIHR5cGU7XG4gICAgICAgICAgY2FzZSBSRUFDVF9NRU1PX1RZUEU6XG4gICAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgICAoaW5uZXJUeXBlID0gdHlwZS5kaXNwbGF5TmFtZSB8fCBudWxsKSxcbiAgICAgICAgICAgICAgbnVsbCAhPT0gaW5uZXJUeXBlXG4gICAgICAgICAgICAgICAgPyBpbm5lclR5cGVcbiAgICAgICAgICAgICAgICA6IGdldENvbXBvbmVudE5hbWVGcm9tVHlwZSh0eXBlLnR5cGUpIHx8IFwiTWVtb1wiXG4gICAgICAgICAgICApO1xuICAgICAgICAgIGNhc2UgUkVBQ1RfTEFaWV9UWVBFOlxuICAgICAgICAgICAgaW5uZXJUeXBlID0gdHlwZS5fcGF5bG9hZDtcbiAgICAgICAgICAgIHR5cGUgPSB0eXBlLl9pbml0O1xuICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgcmV0dXJuIGdldENvbXBvbmVudE5hbWVGcm9tVHlwZSh0eXBlKGlubmVyVHlwZSkpO1xuICAgICAgICAgICAgfSBjYXRjaCAoeCkge31cbiAgICAgICAgfVxuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuICAgIGZ1bmN0aW9uIHRlc3RTdHJpbmdDb2VyY2lvbih2YWx1ZSkge1xuICAgICAgcmV0dXJuIFwiXCIgKyB2YWx1ZTtcbiAgICB9XG4gICAgZnVuY3Rpb24gY2hlY2tLZXlTdHJpbmdDb2VyY2lvbih2YWx1ZSkge1xuICAgICAgdHJ5IHtcbiAgICAgICAgdGVzdFN0cmluZ0NvZXJjaW9uKHZhbHVlKTtcbiAgICAgICAgdmFyIEpTQ29tcGlsZXJfaW5saW5lX3Jlc3VsdCA9ICExO1xuICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICBKU0NvbXBpbGVyX2lubGluZV9yZXN1bHQgPSAhMDtcbiAgICAgIH1cbiAgICAgIGlmIChKU0NvbXBpbGVyX2lubGluZV9yZXN1bHQpIHtcbiAgICAgICAgSlNDb21waWxlcl9pbmxpbmVfcmVzdWx0ID0gY29uc29sZTtcbiAgICAgICAgdmFyIEpTQ29tcGlsZXJfdGVtcF9jb25zdCA9IEpTQ29tcGlsZXJfaW5saW5lX3Jlc3VsdC5lcnJvcjtcbiAgICAgICAgdmFyIEpTQ29tcGlsZXJfaW5saW5lX3Jlc3VsdCRqc2NvbXAkMCA9XG4gICAgICAgICAgKFwiZnVuY3Rpb25cIiA9PT0gdHlwZW9mIFN5bWJvbCAmJlxuICAgICAgICAgICAgU3ltYm9sLnRvU3RyaW5nVGFnICYmXG4gICAgICAgICAgICB2YWx1ZVtTeW1ib2wudG9TdHJpbmdUYWddKSB8fFxuICAgICAgICAgIHZhbHVlLmNvbnN0cnVjdG9yLm5hbWUgfHxcbiAgICAgICAgICBcIk9iamVjdFwiO1xuICAgICAgICBKU0NvbXBpbGVyX3RlbXBfY29uc3QuY2FsbChcbiAgICAgICAgICBKU0NvbXBpbGVyX2lubGluZV9yZXN1bHQsXG4gICAgICAgICAgXCJUaGUgcHJvdmlkZWQga2V5IGlzIGFuIHVuc3VwcG9ydGVkIHR5cGUgJXMuIFRoaXMgdmFsdWUgbXVzdCBiZSBjb2VyY2VkIHRvIGEgc3RyaW5nIGJlZm9yZSB1c2luZyBpdCBoZXJlLlwiLFxuICAgICAgICAgIEpTQ29tcGlsZXJfaW5saW5lX3Jlc3VsdCRqc2NvbXAkMFxuICAgICAgICApO1xuICAgICAgICByZXR1cm4gdGVzdFN0cmluZ0NvZXJjaW9uKHZhbHVlKTtcbiAgICAgIH1cbiAgICB9XG4gICAgZnVuY3Rpb24gZ2V0VGFza05hbWUodHlwZSkge1xuICAgICAgaWYgKHR5cGUgPT09IFJFQUNUX0ZSQUdNRU5UX1RZUEUpIHJldHVybiBcIjw+XCI7XG4gICAgICBpZiAoXG4gICAgICAgIFwib2JqZWN0XCIgPT09IHR5cGVvZiB0eXBlICYmXG4gICAgICAgIG51bGwgIT09IHR5cGUgJiZcbiAgICAgICAgdHlwZS4kJHR5cGVvZiA9PT0gUkVBQ1RfTEFaWV9UWVBFXG4gICAgICApXG4gICAgICAgIHJldHVybiBcIjwuLi4+XCI7XG4gICAgICB0cnkge1xuICAgICAgICB2YXIgbmFtZSA9IGdldENvbXBvbmVudE5hbWVGcm9tVHlwZSh0eXBlKTtcbiAgICAgICAgcmV0dXJuIG5hbWUgPyBcIjxcIiArIG5hbWUgKyBcIj5cIiA6IFwiPC4uLj5cIjtcbiAgICAgIH0gY2F0Y2ggKHgpIHtcbiAgICAgICAgcmV0dXJuIFwiPC4uLj5cIjtcbiAgICAgIH1cbiAgICB9XG4gICAgZnVuY3Rpb24gZ2V0T3duZXIoKSB7XG4gICAgICB2YXIgZGlzcGF0Y2hlciA9IFJlYWN0U2hhcmVkSW50ZXJuYWxzLkE7XG4gICAgICByZXR1cm4gbnVsbCA9PT0gZGlzcGF0Y2hlciA/IG51bGwgOiBkaXNwYXRjaGVyLmdldE93bmVyKCk7XG4gICAgfVxuICAgIGZ1bmN0aW9uIFVua25vd25Pd25lcigpIHtcbiAgICAgIHJldHVybiBFcnJvcihcInJlYWN0LXN0YWNrLXRvcC1mcmFtZVwiKTtcbiAgICB9XG4gICAgZnVuY3Rpb24gaGFzVmFsaWRLZXkoY29uZmlnKSB7XG4gICAgICBpZiAoaGFzT3duUHJvcGVydHkuY2FsbChjb25maWcsIFwia2V5XCIpKSB7XG4gICAgICAgIHZhciBnZXR0ZXIgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGNvbmZpZywgXCJrZXlcIikuZ2V0O1xuICAgICAgICBpZiAoZ2V0dGVyICYmIGdldHRlci5pc1JlYWN0V2FybmluZykgcmV0dXJuICExO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHZvaWQgMCAhPT0gY29uZmlnLmtleTtcbiAgICB9XG4gICAgZnVuY3Rpb24gZGVmaW5lS2V5UHJvcFdhcm5pbmdHZXR0ZXIocHJvcHMsIGRpc3BsYXlOYW1lKSB7XG4gICAgICBmdW5jdGlvbiB3YXJuQWJvdXRBY2Nlc3NpbmdLZXkoKSB7XG4gICAgICAgIHNwZWNpYWxQcm9wS2V5V2FybmluZ1Nob3duIHx8XG4gICAgICAgICAgKChzcGVjaWFsUHJvcEtleVdhcm5pbmdTaG93biA9ICEwKSxcbiAgICAgICAgICBjb25zb2xlLmVycm9yKFxuICAgICAgICAgICAgXCIlczogYGtleWAgaXMgbm90IGEgcHJvcC4gVHJ5aW5nIHRvIGFjY2VzcyBpdCB3aWxsIHJlc3VsdCBpbiBgdW5kZWZpbmVkYCBiZWluZyByZXR1cm5lZC4gSWYgeW91IG5lZWQgdG8gYWNjZXNzIHRoZSBzYW1lIHZhbHVlIHdpdGhpbiB0aGUgY2hpbGQgY29tcG9uZW50LCB5b3Ugc2hvdWxkIHBhc3MgaXQgYXMgYSBkaWZmZXJlbnQgcHJvcC4gKGh0dHBzOi8vcmVhY3QuZGV2L2xpbmsvc3BlY2lhbC1wcm9wcylcIixcbiAgICAgICAgICAgIGRpc3BsYXlOYW1lXG4gICAgICAgICAgKSk7XG4gICAgICB9XG4gICAgICB3YXJuQWJvdXRBY2Nlc3NpbmdLZXkuaXNSZWFjdFdhcm5pbmcgPSAhMDtcbiAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShwcm9wcywgXCJrZXlcIiwge1xuICAgICAgICBnZXQ6IHdhcm5BYm91dEFjY2Vzc2luZ0tleSxcbiAgICAgICAgY29uZmlndXJhYmxlOiAhMFxuICAgICAgfSk7XG4gICAgfVxuICAgIGZ1bmN0aW9uIGVsZW1lbnRSZWZHZXR0ZXJXaXRoRGVwcmVjYXRpb25XYXJuaW5nKCkge1xuICAgICAgdmFyIGNvbXBvbmVudE5hbWUgPSBnZXRDb21wb25lbnROYW1lRnJvbVR5cGUodGhpcy50eXBlKTtcbiAgICAgIGRpZFdhcm5BYm91dEVsZW1lbnRSZWZbY29tcG9uZW50TmFtZV0gfHxcbiAgICAgICAgKChkaWRXYXJuQWJvdXRFbGVtZW50UmVmW2NvbXBvbmVudE5hbWVdID0gITApLFxuICAgICAgICBjb25zb2xlLmVycm9yKFxuICAgICAgICAgIFwiQWNjZXNzaW5nIGVsZW1lbnQucmVmIHdhcyByZW1vdmVkIGluIFJlYWN0IDE5LiByZWYgaXMgbm93IGEgcmVndWxhciBwcm9wLiBJdCB3aWxsIGJlIHJlbW92ZWQgZnJvbSB0aGUgSlNYIEVsZW1lbnQgdHlwZSBpbiBhIGZ1dHVyZSByZWxlYXNlLlwiXG4gICAgICAgICkpO1xuICAgICAgY29tcG9uZW50TmFtZSA9IHRoaXMucHJvcHMucmVmO1xuICAgICAgcmV0dXJuIHZvaWQgMCAhPT0gY29tcG9uZW50TmFtZSA/IGNvbXBvbmVudE5hbWUgOiBudWxsO1xuICAgIH1cbiAgICBmdW5jdGlvbiBSZWFjdEVsZW1lbnQoXG4gICAgICB0eXBlLFxuICAgICAga2V5LFxuICAgICAgc2VsZixcbiAgICAgIHNvdXJjZSxcbiAgICAgIG93bmVyLFxuICAgICAgcHJvcHMsXG4gICAgICBkZWJ1Z1N0YWNrLFxuICAgICAgZGVidWdUYXNrXG4gICAgKSB7XG4gICAgICBzZWxmID0gcHJvcHMucmVmO1xuICAgICAgdHlwZSA9IHtcbiAgICAgICAgJCR0eXBlb2Y6IFJFQUNUX0VMRU1FTlRfVFlQRSxcbiAgICAgICAgdHlwZTogdHlwZSxcbiAgICAgICAga2V5OiBrZXksXG4gICAgICAgIHByb3BzOiBwcm9wcyxcbiAgICAgICAgX293bmVyOiBvd25lclxuICAgICAgfTtcbiAgICAgIG51bGwgIT09ICh2b2lkIDAgIT09IHNlbGYgPyBzZWxmIDogbnVsbClcbiAgICAgICAgPyBPYmplY3QuZGVmaW5lUHJvcGVydHkodHlwZSwgXCJyZWZcIiwge1xuICAgICAgICAgICAgZW51bWVyYWJsZTogITEsXG4gICAgICAgICAgICBnZXQ6IGVsZW1lbnRSZWZHZXR0ZXJXaXRoRGVwcmVjYXRpb25XYXJuaW5nXG4gICAgICAgICAgfSlcbiAgICAgICAgOiBPYmplY3QuZGVmaW5lUHJvcGVydHkodHlwZSwgXCJyZWZcIiwgeyBlbnVtZXJhYmxlOiAhMSwgdmFsdWU6IG51bGwgfSk7XG4gICAgICB0eXBlLl9zdG9yZSA9IHt9O1xuICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHR5cGUuX3N0b3JlLCBcInZhbGlkYXRlZFwiLCB7XG4gICAgICAgIGNvbmZpZ3VyYWJsZTogITEsXG4gICAgICAgIGVudW1lcmFibGU6ICExLFxuICAgICAgICB3cml0YWJsZTogITAsXG4gICAgICAgIHZhbHVlOiAwXG4gICAgICB9KTtcbiAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0eXBlLCBcIl9kZWJ1Z0luZm9cIiwge1xuICAgICAgICBjb25maWd1cmFibGU6ICExLFxuICAgICAgICBlbnVtZXJhYmxlOiAhMSxcbiAgICAgICAgd3JpdGFibGU6ICEwLFxuICAgICAgICB2YWx1ZTogbnVsbFxuICAgICAgfSk7XG4gICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkodHlwZSwgXCJfZGVidWdTdGFja1wiLCB7XG4gICAgICAgIGNvbmZpZ3VyYWJsZTogITEsXG4gICAgICAgIGVudW1lcmFibGU6ICExLFxuICAgICAgICB3cml0YWJsZTogITAsXG4gICAgICAgIHZhbHVlOiBkZWJ1Z1N0YWNrXG4gICAgICB9KTtcbiAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0eXBlLCBcIl9kZWJ1Z1Rhc2tcIiwge1xuICAgICAgICBjb25maWd1cmFibGU6ICExLFxuICAgICAgICBlbnVtZXJhYmxlOiAhMSxcbiAgICAgICAgd3JpdGFibGU6ICEwLFxuICAgICAgICB2YWx1ZTogZGVidWdUYXNrXG4gICAgICB9KTtcbiAgICAgIE9iamVjdC5mcmVlemUgJiYgKE9iamVjdC5mcmVlemUodHlwZS5wcm9wcyksIE9iamVjdC5mcmVlemUodHlwZSkpO1xuICAgICAgcmV0dXJuIHR5cGU7XG4gICAgfVxuICAgIGZ1bmN0aW9uIGpzeERFVkltcGwoXG4gICAgICB0eXBlLFxuICAgICAgY29uZmlnLFxuICAgICAgbWF5YmVLZXksXG4gICAgICBpc1N0YXRpY0NoaWxkcmVuLFxuICAgICAgc291cmNlLFxuICAgICAgc2VsZixcbiAgICAgIGRlYnVnU3RhY2ssXG4gICAgICBkZWJ1Z1Rhc2tcbiAgICApIHtcbiAgICAgIHZhciBjaGlsZHJlbiA9IGNvbmZpZy5jaGlsZHJlbjtcbiAgICAgIGlmICh2b2lkIDAgIT09IGNoaWxkcmVuKVxuICAgICAgICBpZiAoaXNTdGF0aWNDaGlsZHJlbilcbiAgICAgICAgICBpZiAoaXNBcnJheUltcGwoY2hpbGRyZW4pKSB7XG4gICAgICAgICAgICBmb3IgKFxuICAgICAgICAgICAgICBpc1N0YXRpY0NoaWxkcmVuID0gMDtcbiAgICAgICAgICAgICAgaXNTdGF0aWNDaGlsZHJlbiA8IGNoaWxkcmVuLmxlbmd0aDtcbiAgICAgICAgICAgICAgaXNTdGF0aWNDaGlsZHJlbisrXG4gICAgICAgICAgICApXG4gICAgICAgICAgICAgIHZhbGlkYXRlQ2hpbGRLZXlzKGNoaWxkcmVuW2lzU3RhdGljQ2hpbGRyZW5dKTtcbiAgICAgICAgICAgIE9iamVjdC5mcmVlemUgJiYgT2JqZWN0LmZyZWV6ZShjaGlsZHJlbik7XG4gICAgICAgICAgfSBlbHNlXG4gICAgICAgICAgICBjb25zb2xlLmVycm9yKFxuICAgICAgICAgICAgICBcIlJlYWN0LmpzeDogU3RhdGljIGNoaWxkcmVuIHNob3VsZCBhbHdheXMgYmUgYW4gYXJyYXkuIFlvdSBhcmUgbGlrZWx5IGV4cGxpY2l0bHkgY2FsbGluZyBSZWFjdC5qc3hzIG9yIFJlYWN0LmpzeERFVi4gVXNlIHRoZSBCYWJlbCB0cmFuc2Zvcm0gaW5zdGVhZC5cIlxuICAgICAgICAgICAgKTtcbiAgICAgICAgZWxzZSB2YWxpZGF0ZUNoaWxkS2V5cyhjaGlsZHJlbik7XG4gICAgICBpZiAoaGFzT3duUHJvcGVydHkuY2FsbChjb25maWcsIFwia2V5XCIpKSB7XG4gICAgICAgIGNoaWxkcmVuID0gZ2V0Q29tcG9uZW50TmFtZUZyb21UeXBlKHR5cGUpO1xuICAgICAgICB2YXIga2V5cyA9IE9iamVjdC5rZXlzKGNvbmZpZykuZmlsdGVyKGZ1bmN0aW9uIChrKSB7XG4gICAgICAgICAgcmV0dXJuIFwia2V5XCIgIT09IGs7XG4gICAgICAgIH0pO1xuICAgICAgICBpc1N0YXRpY0NoaWxkcmVuID1cbiAgICAgICAgICAwIDwga2V5cy5sZW5ndGhcbiAgICAgICAgICAgID8gXCJ7a2V5OiBzb21lS2V5LCBcIiArIGtleXMuam9pbihcIjogLi4uLCBcIikgKyBcIjogLi4ufVwiXG4gICAgICAgICAgICA6IFwie2tleTogc29tZUtleX1cIjtcbiAgICAgICAgZGlkV2FybkFib3V0S2V5U3ByZWFkW2NoaWxkcmVuICsgaXNTdGF0aWNDaGlsZHJlbl0gfHxcbiAgICAgICAgICAoKGtleXMgPVxuICAgICAgICAgICAgMCA8IGtleXMubGVuZ3RoID8gXCJ7XCIgKyBrZXlzLmpvaW4oXCI6IC4uLiwgXCIpICsgXCI6IC4uLn1cIiA6IFwie31cIiksXG4gICAgICAgICAgY29uc29sZS5lcnJvcihcbiAgICAgICAgICAgICdBIHByb3BzIG9iamVjdCBjb250YWluaW5nIGEgXCJrZXlcIiBwcm9wIGlzIGJlaW5nIHNwcmVhZCBpbnRvIEpTWDpcXG4gIGxldCBwcm9wcyA9ICVzO1xcbiAgPCVzIHsuLi5wcm9wc30gLz5cXG5SZWFjdCBrZXlzIG11c3QgYmUgcGFzc2VkIGRpcmVjdGx5IHRvIEpTWCB3aXRob3V0IHVzaW5nIHNwcmVhZDpcXG4gIGxldCBwcm9wcyA9ICVzO1xcbiAgPCVzIGtleT17c29tZUtleX0gey4uLnByb3BzfSAvPicsXG4gICAgICAgICAgICBpc1N0YXRpY0NoaWxkcmVuLFxuICAgICAgICAgICAgY2hpbGRyZW4sXG4gICAgICAgICAgICBrZXlzLFxuICAgICAgICAgICAgY2hpbGRyZW5cbiAgICAgICAgICApLFxuICAgICAgICAgIChkaWRXYXJuQWJvdXRLZXlTcHJlYWRbY2hpbGRyZW4gKyBpc1N0YXRpY0NoaWxkcmVuXSA9ICEwKSk7XG4gICAgICB9XG4gICAgICBjaGlsZHJlbiA9IG51bGw7XG4gICAgICB2b2lkIDAgIT09IG1heWJlS2V5ICYmXG4gICAgICAgIChjaGVja0tleVN0cmluZ0NvZXJjaW9uKG1heWJlS2V5KSwgKGNoaWxkcmVuID0gXCJcIiArIG1heWJlS2V5KSk7XG4gICAgICBoYXNWYWxpZEtleShjb25maWcpICYmXG4gICAgICAgIChjaGVja0tleVN0cmluZ0NvZXJjaW9uKGNvbmZpZy5rZXkpLCAoY2hpbGRyZW4gPSBcIlwiICsgY29uZmlnLmtleSkpO1xuICAgICAgaWYgKFwia2V5XCIgaW4gY29uZmlnKSB7XG4gICAgICAgIG1heWJlS2V5ID0ge307XG4gICAgICAgIGZvciAodmFyIHByb3BOYW1lIGluIGNvbmZpZylcbiAgICAgICAgICBcImtleVwiICE9PSBwcm9wTmFtZSAmJiAobWF5YmVLZXlbcHJvcE5hbWVdID0gY29uZmlnW3Byb3BOYW1lXSk7XG4gICAgICB9IGVsc2UgbWF5YmVLZXkgPSBjb25maWc7XG4gICAgICBjaGlsZHJlbiAmJlxuICAgICAgICBkZWZpbmVLZXlQcm9wV2FybmluZ0dldHRlcihcbiAgICAgICAgICBtYXliZUtleSxcbiAgICAgICAgICBcImZ1bmN0aW9uXCIgPT09IHR5cGVvZiB0eXBlXG4gICAgICAgICAgICA/IHR5cGUuZGlzcGxheU5hbWUgfHwgdHlwZS5uYW1lIHx8IFwiVW5rbm93blwiXG4gICAgICAgICAgICA6IHR5cGVcbiAgICAgICAgKTtcbiAgICAgIHJldHVybiBSZWFjdEVsZW1lbnQoXG4gICAgICAgIHR5cGUsXG4gICAgICAgIGNoaWxkcmVuLFxuICAgICAgICBzZWxmLFxuICAgICAgICBzb3VyY2UsXG4gICAgICAgIGdldE93bmVyKCksXG4gICAgICAgIG1heWJlS2V5LFxuICAgICAgICBkZWJ1Z1N0YWNrLFxuICAgICAgICBkZWJ1Z1Rhc2tcbiAgICAgICk7XG4gICAgfVxuICAgIGZ1bmN0aW9uIHZhbGlkYXRlQ2hpbGRLZXlzKG5vZGUpIHtcbiAgICAgIFwib2JqZWN0XCIgPT09IHR5cGVvZiBub2RlICYmXG4gICAgICAgIG51bGwgIT09IG5vZGUgJiZcbiAgICAgICAgbm9kZS4kJHR5cGVvZiA9PT0gUkVBQ1RfRUxFTUVOVF9UWVBFICYmXG4gICAgICAgIG5vZGUuX3N0b3JlICYmXG4gICAgICAgIChub2RlLl9zdG9yZS52YWxpZGF0ZWQgPSAxKTtcbiAgICB9XG4gICAgdmFyIFJlYWN0ID0gcmVxdWlyZShcInJlYWN0XCIpLFxuICAgICAgUkVBQ1RfRUxFTUVOVF9UWVBFID0gU3ltYm9sLmZvcihcInJlYWN0LnRyYW5zaXRpb25hbC5lbGVtZW50XCIpLFxuICAgICAgUkVBQ1RfUE9SVEFMX1RZUEUgPSBTeW1ib2wuZm9yKFwicmVhY3QucG9ydGFsXCIpLFxuICAgICAgUkVBQ1RfRlJBR01FTlRfVFlQRSA9IFN5bWJvbC5mb3IoXCJyZWFjdC5mcmFnbWVudFwiKSxcbiAgICAgIFJFQUNUX1NUUklDVF9NT0RFX1RZUEUgPSBTeW1ib2wuZm9yKFwicmVhY3Quc3RyaWN0X21vZGVcIiksXG4gICAgICBSRUFDVF9QUk9GSUxFUl9UWVBFID0gU3ltYm9sLmZvcihcInJlYWN0LnByb2ZpbGVyXCIpO1xuICAgIFN5bWJvbC5mb3IoXCJyZWFjdC5wcm92aWRlclwiKTtcbiAgICB2YXIgUkVBQ1RfQ09OU1VNRVJfVFlQRSA9IFN5bWJvbC5mb3IoXCJyZWFjdC5jb25zdW1lclwiKSxcbiAgICAgIFJFQUNUX0NPTlRFWFRfVFlQRSA9IFN5bWJvbC5mb3IoXCJyZWFjdC5jb250ZXh0XCIpLFxuICAgICAgUkVBQ1RfRk9SV0FSRF9SRUZfVFlQRSA9IFN5bWJvbC5mb3IoXCJyZWFjdC5mb3J3YXJkX3JlZlwiKSxcbiAgICAgIFJFQUNUX1NVU1BFTlNFX1RZUEUgPSBTeW1ib2wuZm9yKFwicmVhY3Quc3VzcGVuc2VcIiksXG4gICAgICBSRUFDVF9TVVNQRU5TRV9MSVNUX1RZUEUgPSBTeW1ib2wuZm9yKFwicmVhY3Quc3VzcGVuc2VfbGlzdFwiKSxcbiAgICAgIFJFQUNUX01FTU9fVFlQRSA9IFN5bWJvbC5mb3IoXCJyZWFjdC5tZW1vXCIpLFxuICAgICAgUkVBQ1RfTEFaWV9UWVBFID0gU3ltYm9sLmZvcihcInJlYWN0LmxhenlcIiksXG4gICAgICBSRUFDVF9BQ1RJVklUWV9UWVBFID0gU3ltYm9sLmZvcihcInJlYWN0LmFjdGl2aXR5XCIpLFxuICAgICAgUkVBQ1RfQ0xJRU5UX1JFRkVSRU5DRSA9IFN5bWJvbC5mb3IoXCJyZWFjdC5jbGllbnQucmVmZXJlbmNlXCIpLFxuICAgICAgUmVhY3RTaGFyZWRJbnRlcm5hbHMgPVxuICAgICAgICBSZWFjdC5fX0NMSUVOVF9JTlRFUk5BTFNfRE9fTk9UX1VTRV9PUl9XQVJOX1VTRVJTX1RIRVlfQ0FOTk9UX1VQR1JBREUsXG4gICAgICBoYXNPd25Qcm9wZXJ0eSA9IE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHksXG4gICAgICBpc0FycmF5SW1wbCA9IEFycmF5LmlzQXJyYXksXG4gICAgICBjcmVhdGVUYXNrID0gY29uc29sZS5jcmVhdGVUYXNrXG4gICAgICAgID8gY29uc29sZS5jcmVhdGVUYXNrXG4gICAgICAgIDogZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgICAgfTtcbiAgICBSZWFjdCA9IHtcbiAgICAgIFwicmVhY3Qtc3RhY2stYm90dG9tLWZyYW1lXCI6IGZ1bmN0aW9uIChjYWxsU3RhY2tGb3JFcnJvcikge1xuICAgICAgICByZXR1cm4gY2FsbFN0YWNrRm9yRXJyb3IoKTtcbiAgICAgIH1cbiAgICB9O1xuICAgIHZhciBzcGVjaWFsUHJvcEtleVdhcm5pbmdTaG93bjtcbiAgICB2YXIgZGlkV2FybkFib3V0RWxlbWVudFJlZiA9IHt9O1xuICAgIHZhciB1bmtub3duT3duZXJEZWJ1Z1N0YWNrID0gUmVhY3RbXCJyZWFjdC1zdGFjay1ib3R0b20tZnJhbWVcIl0uYmluZChcbiAgICAgIFJlYWN0LFxuICAgICAgVW5rbm93bk93bmVyXG4gICAgKSgpO1xuICAgIHZhciB1bmtub3duT3duZXJEZWJ1Z1Rhc2sgPSBjcmVhdGVUYXNrKGdldFRhc2tOYW1lKFVua25vd25Pd25lcikpO1xuICAgIHZhciBkaWRXYXJuQWJvdXRLZXlTcHJlYWQgPSB7fTtcbiAgICBleHBvcnRzLkZyYWdtZW50ID0gUkVBQ1RfRlJBR01FTlRfVFlQRTtcbiAgICBleHBvcnRzLmpzeERFViA9IGZ1bmN0aW9uIChcbiAgICAgIHR5cGUsXG4gICAgICBjb25maWcsXG4gICAgICBtYXliZUtleSxcbiAgICAgIGlzU3RhdGljQ2hpbGRyZW4sXG4gICAgICBzb3VyY2UsXG4gICAgICBzZWxmXG4gICAgKSB7XG4gICAgICB2YXIgdHJhY2tBY3R1YWxPd25lciA9XG4gICAgICAgIDFlNCA+IFJlYWN0U2hhcmVkSW50ZXJuYWxzLnJlY2VudGx5Q3JlYXRlZE93bmVyU3RhY2tzKys7XG4gICAgICByZXR1cm4ganN4REVWSW1wbChcbiAgICAgICAgdHlwZSxcbiAgICAgICAgY29uZmlnLFxuICAgICAgICBtYXliZUtleSxcbiAgICAgICAgaXNTdGF0aWNDaGlsZHJlbixcbiAgICAgICAgc291cmNlLFxuICAgICAgICBzZWxmLFxuICAgICAgICB0cmFja0FjdHVhbE93bmVyXG4gICAgICAgICAgPyBFcnJvcihcInJlYWN0LXN0YWNrLXRvcC1mcmFtZVwiKVxuICAgICAgICAgIDogdW5rbm93bk93bmVyRGVidWdTdGFjayxcbiAgICAgICAgdHJhY2tBY3R1YWxPd25lciA/IGNyZWF0ZVRhc2soZ2V0VGFza05hbWUodHlwZSkpIDogdW5rbm93bk93bmVyRGVidWdUYXNrXG4gICAgICApO1xuICAgIH07XG4gIH0pKCk7XG4iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(pages-dir-browser)/./node_modules/react/cjs/react-jsx-dev-runtime.development.js\n")); - -/***/ }), - -/***/ "(pages-dir-browser)/./node_modules/react/jsx-dev-runtime.js": -/*!***********************************************!*\ - !*** ./node_modules/react/jsx-dev-runtime.js ***! - \***********************************************/ -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { - -"use strict"; -eval(__webpack_require__.ts("\n\nif (false) {} else {\n module.exports = __webpack_require__(/*! ./cjs/react-jsx-dev-runtime.development.js */ \"(pages-dir-browser)/./node_modules/react/cjs/react-jsx-dev-runtime.development.js\");\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9yZWFjdC9qc3gtZGV2LXJ1bnRpbWUuanMiLCJtYXBwaW5ncyI6IkFBQWE7O0FBRWIsSUFBSSxLQUFxQyxFQUFFLEVBRTFDLENBQUM7QUFDRixFQUFFLDJLQUFzRTtBQUN4RSIsInNvdXJjZXMiOlsiRDpcXGRvbmd5dW4tcHJvamVjdHNcXHR3b1xcbm9kZV9tb2R1bGVzXFxyZWFjdFxcanN4LWRldi1ydW50aW1lLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIid1c2Ugc3RyaWN0JztcblxuaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WID09PSAncHJvZHVjdGlvbicpIHtcbiAgbW9kdWxlLmV4cG9ydHMgPSByZXF1aXJlKCcuL2Nqcy9yZWFjdC1qc3gtZGV2LXJ1bnRpbWUucHJvZHVjdGlvbi5qcycpO1xufSBlbHNlIHtcbiAgbW9kdWxlLmV4cG9ydHMgPSByZXF1aXJlKCcuL2Nqcy9yZWFjdC1qc3gtZGV2LXJ1bnRpbWUuZGV2ZWxvcG1lbnQuanMnKTtcbn1cbiJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(pages-dir-browser)/./node_modules/react/jsx-dev-runtime.js\n")); - -/***/ }), - -/***/ "(pages-dir-browser)/./pages/_app.tsx": -/*!************************!*\ - !*** ./pages/_app.tsx ***! - \************************/ -/***/ ((module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react/jsx-dev-runtime */ \"(pages-dir-browser)/./node_modules/react/jsx-dev-runtime.js\");\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _styles_globals_css__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../styles/globals.css */ \"(pages-dir-browser)/./styles/globals.css\");\n/* harmony import */ var _styles_globals_css__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_styles_globals_css__WEBPACK_IMPORTED_MODULE_1__);\n\n\nfunction MyApp(param) {\n let { Component, pageProps } = param;\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(Component, {\n ...pageProps\n }, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\pages\\\\_app.tsx\",\n lineNumber: 5,\n columnNumber: 10\n }, this);\n}\n_c = MyApp;\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (MyApp);\nvar _c;\n$RefreshReg$(_c, \"MyApp\");\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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1icm93c2VyKS8uL3BhZ2VzL19hcHAudHN4IiwibWFwcGluZ3MiOiI7Ozs7Ozs7OztBQUErQjtBQUcvQixTQUFTQSxNQUFNLEtBQWtDO1FBQWxDLEVBQUVDLFNBQVMsRUFBRUMsU0FBUyxFQUFZLEdBQWxDO0lBQ2IscUJBQU8sOERBQUNEO1FBQVcsR0FBR0MsU0FBUzs7Ozs7O0FBQ2pDO0tBRlNGO0FBSVQsaUVBQWVBLEtBQUtBLEVBQUMiLCJzb3VyY2VzIjpbIkQ6XFxkb25neXVuLXByb2plY3RzXFx0d29cXHBhZ2VzXFxfYXBwLnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgJy4uL3N0eWxlcy9nbG9iYWxzLmNzcyc7XHJcbmltcG9ydCB0eXBlIHsgQXBwUHJvcHMgfSBmcm9tICduZXh0L2FwcCc7XHJcblxyXG5mdW5jdGlvbiBNeUFwcCh7IENvbXBvbmVudCwgcGFnZVByb3BzIH06IEFwcFByb3BzKSB7XHJcbiAgcmV0dXJuIDxDb21wb25lbnQgey4uLnBhZ2VQcm9wc30gLz47XHJcbn1cclxuXHJcbmV4cG9ydCBkZWZhdWx0IE15QXBwOyJdLCJuYW1lcyI6WyJNeUFwcCIsIkNvbXBvbmVudCIsInBhZ2VQcm9wcyJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(pages-dir-browser)/./pages/_app.tsx\n")); - -/***/ }), - -/***/ "(pages-dir-browser)/./styles/globals.css": -/*!****************************!*\ - !*** ./styles/globals.css ***! - \****************************/ -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { - -eval(__webpack_require__.ts("var api = __webpack_require__(/*! !../node_modules/next/dist/build/webpack/loaders/next-style-loader/runtime/injectStylesIntoStyleTag.js */ \"(pages-dir-browser)/./node_modules/next/dist/build/webpack/loaders/next-style-loader/runtime/injectStylesIntoStyleTag.js\");\n var content = __webpack_require__(/*! !!../node_modules/next/dist/build/webpack/loaders/css-loader/src/index.js??ruleSet[1].rules[7].oneOf[13].use[1]!../node_modules/next/dist/build/webpack/loaders/postcss-loader/src/index.js??ruleSet[1].rules[7].oneOf[13].use[2]!./globals.css */ \"(pages-dir-browser)/./node_modules/next/dist/build/webpack/loaders/css-loader/src/index.js??ruleSet[1].rules[7].oneOf[13].use[1]!./node_modules/next/dist/build/webpack/loaders/postcss-loader/src/index.js??ruleSet[1].rules[7].oneOf[13].use[2]!./styles/globals.css\");\n\n content = content.__esModule ? content.default : content;\n\n if (typeof content === 'string') {\n content = [[module.id, content, '']];\n }\n\nvar options = {};\n\noptions.insert = function(element) {\n // By default, style-loader injects CSS into the bottom\n // of <head>. This causes ordering problems between dev\n // and prod. To fix this, we render a <noscript> tag as\n // an anchor for the styles to be placed before. These\n // styles will be applied _before_ <style jsx global>.\n // These elements should always exist. If they do not,\n // this code should fail.\n var anchorElement = document.querySelector('#__next_css__DO_NOT_USE__');\n var parentNode = anchorElement.parentNode// Normally <head>\n ;\n // Each style tag should be placed right before our\n // anchor. By inserting before and not after, we do not\n // need to track the last inserted element.\n parentNode.insertBefore(element, anchorElement);\n };\noptions.singleton = false;\n\nvar update = api(content, options);\n\n\nif (true) {\n if (!content.locals || module.hot.invalidate) {\n var isEqualLocals = function isEqualLocals(a, b, isNamedExport) {\n if (!a && b || a && !b) {\n return false;\n }\n let p;\n for(p in a){\n if (isNamedExport && p === 'default') {\n continue;\n }\n if (a[p] !== b[p]) {\n return false;\n }\n }\n for(p in b){\n if (isNamedExport && p === 'default') {\n continue;\n }\n if (!a[p]) {\n return false;\n }\n }\n return true;\n};\n var oldLocals = content.locals;\n\n module.hot.accept(\n /*! !!../node_modules/next/dist/build/webpack/loaders/css-loader/src/index.js??ruleSet[1].rules[7].oneOf[13].use[1]!../node_modules/next/dist/build/webpack/loaders/postcss-loader/src/index.js??ruleSet[1].rules[7].oneOf[13].use[2]!./globals.css */ \"(pages-dir-browser)/./node_modules/next/dist/build/webpack/loaders/css-loader/src/index.js??ruleSet[1].rules[7].oneOf[13].use[1]!./node_modules/next/dist/build/webpack/loaders/postcss-loader/src/index.js??ruleSet[1].rules[7].oneOf[13].use[2]!./styles/globals.css\",\n function () {\n content = __webpack_require__(/*! !!../node_modules/next/dist/build/webpack/loaders/css-loader/src/index.js??ruleSet[1].rules[7].oneOf[13].use[1]!../node_modules/next/dist/build/webpack/loaders/postcss-loader/src/index.js??ruleSet[1].rules[7].oneOf[13].use[2]!./globals.css */ \"(pages-dir-browser)/./node_modules/next/dist/build/webpack/loaders/css-loader/src/index.js??ruleSet[1].rules[7].oneOf[13].use[1]!./node_modules/next/dist/build/webpack/loaders/postcss-loader/src/index.js??ruleSet[1].rules[7].oneOf[13].use[2]!./styles/globals.css\");\n\n content = content.__esModule ? content.default : content;\n\n if (typeof content === 'string') {\n content = [[module.id, content, '']];\n }\n\n if (!isEqualLocals(oldLocals, content.locals)) {\n module.hot.invalidate();\n\n return;\n }\n\n oldLocals = content.locals;\n\n update(content);\n }\n )\n }\n\n module.hot.dispose(function() {\n update();\n });\n}\n\nmodule.exports = content.locals || {};//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1icm93c2VyKS8uL3N0eWxlcy9nbG9iYWxzLmNzcyIsIm1hcHBpbmdzIjoiQUFBQSxVQUFVLG1CQUFPLENBQUMsd09BQXdHO0FBQzFILDBCQUEwQixtQkFBTyxDQUFDLCtmQUFpUDs7QUFFblI7O0FBRUE7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7OztBQUdBLElBQUksSUFBVTtBQUNkLHlCQUF5QixVQUFVO0FBQ25DO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQSxJQUFJLGlCQUFpQjtBQUNyQixNQUFNLCtmQUFpUDtBQUN2UDtBQUNBLGtCQUFrQixtQkFBTyxDQUFDLCtmQUFpUDs7QUFFM1E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0EsZ0JBQWdCLFVBQVU7O0FBRTFCO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUEsRUFBRSxVQUFVO0FBQ1o7QUFDQSxHQUFHO0FBQ0g7O0FBRUEiLCJzb3VyY2VzIjpbIkQ6XFxkb25neXVuLXByb2plY3RzXFx0d29cXHN0eWxlc1xcZ2xvYmFscy5jc3MiXSwic291cmNlc0NvbnRlbnQiOlsidmFyIGFwaSA9IHJlcXVpcmUoXCIhLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9idWlsZC93ZWJwYWNrL2xvYWRlcnMvbmV4dC1zdHlsZS1sb2FkZXIvcnVudGltZS9pbmplY3RTdHlsZXNJbnRvU3R5bGVUYWcuanNcIik7XG4gICAgICAgICAgICB2YXIgY29udGVudCA9IHJlcXVpcmUoXCIhIS4uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvYnVpbGQvd2VicGFjay9sb2FkZXJzL2Nzcy1sb2FkZXIvc3JjL2luZGV4LmpzPz9ydWxlU2V0WzFdLnJ1bGVzWzddLm9uZU9mWzEzXS51c2VbMV0hLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9idWlsZC93ZWJwYWNrL2xvYWRlcnMvcG9zdGNzcy1sb2FkZXIvc3JjL2luZGV4LmpzPz9ydWxlU2V0WzFdLnJ1bGVzWzddLm9uZU9mWzEzXS51c2VbMl0hLi9nbG9iYWxzLmNzc1wiKTtcblxuICAgICAgICAgICAgY29udGVudCA9IGNvbnRlbnQuX19lc01vZHVsZSA/IGNvbnRlbnQuZGVmYXVsdCA6IGNvbnRlbnQ7XG5cbiAgICAgICAgICAgIGlmICh0eXBlb2YgY29udGVudCA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgICAgICAgY29udGVudCA9IFtbbW9kdWxlLmlkLCBjb250ZW50LCAnJ11dO1xuICAgICAgICAgICAgfVxuXG52YXIgb3B0aW9ucyA9IHt9O1xuXG5vcHRpb25zLmluc2VydCA9IGZ1bmN0aW9uKGVsZW1lbnQpIHtcbiAgICAgICAgICAgICAgICAgICAgLy8gQnkgZGVmYXVsdCwgc3R5bGUtbG9hZGVyIGluamVjdHMgQ1NTIGludG8gdGhlIGJvdHRvbVxuICAgICAgICAgICAgICAgICAgICAvLyBvZiA8aGVhZD4uIFRoaXMgY2F1c2VzIG9yZGVyaW5nIHByb2JsZW1zIGJldHdlZW4gZGV2XG4gICAgICAgICAgICAgICAgICAgIC8vIGFuZCBwcm9kLiBUbyBmaXggdGhpcywgd2UgcmVuZGVyIGEgPG5vc2NyaXB0PiB0YWcgYXNcbiAgICAgICAgICAgICAgICAgICAgLy8gYW4gYW5jaG9yIGZvciB0aGUgc3R5bGVzIHRvIGJlIHBsYWNlZCBiZWZvcmUuIFRoZXNlXG4gICAgICAgICAgICAgICAgICAgIC8vIHN0eWxlcyB3aWxsIGJlIGFwcGxpZWQgX2JlZm9yZV8gPHN0eWxlIGpzeCBnbG9iYWw+LlxuICAgICAgICAgICAgICAgICAgICAvLyBUaGVzZSBlbGVtZW50cyBzaG91bGQgYWx3YXlzIGV4aXN0LiBJZiB0aGV5IGRvIG5vdCxcbiAgICAgICAgICAgICAgICAgICAgLy8gdGhpcyBjb2RlIHNob3VsZCBmYWlsLlxuICAgICAgICAgICAgICAgICAgICB2YXIgYW5jaG9yRWxlbWVudCA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJyNfX25leHRfY3NzX19ET19OT1RfVVNFX18nKTtcbiAgICAgICAgICAgICAgICAgICAgdmFyIHBhcmVudE5vZGUgPSBhbmNob3JFbGVtZW50LnBhcmVudE5vZGUvLyBOb3JtYWxseSA8aGVhZD5cbiAgICAgICAgICAgICAgICAgICAgO1xuICAgICAgICAgICAgICAgICAgICAvLyBFYWNoIHN0eWxlIHRhZyBzaG91bGQgYmUgcGxhY2VkIHJpZ2h0IGJlZm9yZSBvdXJcbiAgICAgICAgICAgICAgICAgICAgLy8gYW5jaG9yLiBCeSBpbnNlcnRpbmcgYmVmb3JlIGFuZCBub3QgYWZ0ZXIsIHdlIGRvIG5vdFxuICAgICAgICAgICAgICAgICAgICAvLyBuZWVkIHRvIHRyYWNrIHRoZSBsYXN0IGluc2VydGVkIGVsZW1lbnQuXG4gICAgICAgICAgICAgICAgICAgIHBhcmVudE5vZGUuaW5zZXJ0QmVmb3JlKGVsZW1lbnQsIGFuY2hvckVsZW1lbnQpO1xuICAgICAgICAgICAgICAgIH07XG5vcHRpb25zLnNpbmdsZXRvbiA9IGZhbHNlO1xuXG52YXIgdXBkYXRlID0gYXBpKGNvbnRlbnQsIG9wdGlvbnMpO1xuXG5cbmlmIChtb2R1bGUuaG90KSB7XG4gIGlmICghY29udGVudC5sb2NhbHMgfHwgbW9kdWxlLmhvdC5pbnZhbGlkYXRlKSB7XG4gICAgdmFyIGlzRXF1YWxMb2NhbHMgPSBmdW5jdGlvbiBpc0VxdWFsTG9jYWxzKGEsIGIsIGlzTmFtZWRFeHBvcnQpIHtcbiAgICBpZiAoIWEgJiYgYiB8fCBhICYmICFiKSB7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gICAgbGV0IHA7XG4gICAgZm9yKHAgaW4gYSl7XG4gICAgICAgIGlmIChpc05hbWVkRXhwb3J0ICYmIHAgPT09ICdkZWZhdWx0Jykge1xuICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGFbcF0gIT09IGJbcF0pIHtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBmb3IocCBpbiBiKXtcbiAgICAgICAgaWYgKGlzTmFtZWRFeHBvcnQgJiYgcCA9PT0gJ2RlZmF1bHQnKSB7XG4gICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoIWFbcF0pIHtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gdHJ1ZTtcbn07XG4gICAgdmFyIG9sZExvY2FscyA9IGNvbnRlbnQubG9jYWxzO1xuXG4gICAgbW9kdWxlLmhvdC5hY2NlcHQoXG4gICAgICBcIiEhLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9idWlsZC93ZWJwYWNrL2xvYWRlcnMvY3NzLWxvYWRlci9zcmMvaW5kZXguanM/P3J1bGVTZXRbMV0ucnVsZXNbN10ub25lT2ZbMTNdLnVzZVsxXSEuLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2J1aWxkL3dlYnBhY2svbG9hZGVycy9wb3N0Y3NzLWxvYWRlci9zcmMvaW5kZXguanM/P3J1bGVTZXRbMV0ucnVsZXNbN10ub25lT2ZbMTNdLnVzZVsyXSEuL2dsb2JhbHMuY3NzXCIsXG4gICAgICBmdW5jdGlvbiAoKSB7XG4gICAgICAgIGNvbnRlbnQgPSByZXF1aXJlKFwiISEuLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2J1aWxkL3dlYnBhY2svbG9hZGVycy9jc3MtbG9hZGVyL3NyYy9pbmRleC5qcz8/cnVsZVNldFsxXS5ydWxlc1s3XS5vbmVPZlsxM10udXNlWzFdIS4uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvYnVpbGQvd2VicGFjay9sb2FkZXJzL3Bvc3Rjc3MtbG9hZGVyL3NyYy9pbmRleC5qcz8/cnVsZVNldFsxXS5ydWxlc1s3XS5vbmVPZlsxM10udXNlWzJdIS4vZ2xvYmFscy5jc3NcIik7XG5cbiAgICAgICAgICAgICAgY29udGVudCA9IGNvbnRlbnQuX19lc01vZHVsZSA/IGNvbnRlbnQuZGVmYXVsdCA6IGNvbnRlbnQ7XG5cbiAgICAgICAgICAgICAgaWYgKHR5cGVvZiBjb250ZW50ID09PSAnc3RyaW5nJykge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQgPSBbW21vZHVsZS5pZCwgY29udGVudCwgJyddXTtcbiAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgIGlmICghaXNFcXVhbExvY2FscyhvbGRMb2NhbHMsIGNvbnRlbnQubG9jYWxzKSkge1xuICAgICAgICAgICAgICAgIG1vZHVsZS5ob3QuaW52YWxpZGF0ZSgpO1xuXG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgb2xkTG9jYWxzID0gY29udGVudC5sb2NhbHM7XG5cbiAgICAgICAgICAgICAgdXBkYXRlKGNvbnRlbnQpO1xuICAgICAgfVxuICAgIClcbiAgfVxuXG4gIG1vZHVsZS5ob3QuZGlzcG9zZShmdW5jdGlvbigpIHtcbiAgICB1cGRhdGUoKTtcbiAgfSk7XG59XG5cbm1vZHVsZS5leHBvcnRzID0gY29udGVudC5sb2NhbHMgfHwge307Il0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(pages-dir-browser)/./styles/globals.css\n")); - -/***/ }) - -}, -/******/ __webpack_require__ => { // webpackRuntimeModules -/******/ var __webpack_exec__ = (moduleId) => (__webpack_require__(__webpack_require__.s = moduleId)) -/******/ __webpack_require__.O(0, ["main"], () => (__webpack_exec__("(pages-dir-browser)/./node_modules/next/dist/build/webpack/loaders/next-client-pages-loader.js?absolutePagePath=private-next-pages%2F_app&page=%2F_app!"), __webpack_exec__("(pages-dir-browser)/./node_modules/next/dist/client/router.js"))); -/******/ var __webpack_exports__ = __webpack_require__.O(); -/******/ _N_E = __webpack_exports__; -/******/ } -]); \ No newline at end of file diff --git a/build/static/chunks/pages/_error.js b/build/static/chunks/pages/_error.js deleted file mode 100644 index 90b5e26..0000000 --- a/build/static/chunks/pages/_error.js +++ /dev/null @@ -1,83 +0,0 @@ -/* - * ATTENTION: An "eval-source-map" devtool has been used. - * This devtool is neither made for production nor for readable output files. - * It uses "eval()" calls to create a separate source file with attached SourceMaps in the browser devtools. - * If you are trying to read the output file, select a different devtool (https://webpack.js.org/configuration/devtool/) - * or disable the default devtool with "devtool: false". - * If you are looking for production-ready output files, see mode: "production" (https://webpack.js.org/configuration/mode/). - */ -(self["webpackChunk_N_E"] = self["webpackChunk_N_E"] || []).push([["pages/_error"],{ - -/***/ "(pages-dir-browser)/./node_modules/next/dist/build/webpack/loaders/next-client-pages-loader.js?absolutePagePath=private-next-pages%2F_error&page=%2F_error!": -/*!***********************************************************************************************************************************************!*\ - !*** ./node_modules/next/dist/build/webpack/loaders/next-client-pages-loader.js?absolutePagePath=private-next-pages%2F_error&page=%2F_error! ***! - \***********************************************************************************************************************************************/ -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { - -eval(__webpack_require__.ts("\n (window.__NEXT_P = window.__NEXT_P || []).push([\n \"/_error\",\n function () {\n return __webpack_require__(/*! private-next-pages/_error */ \"(pages-dir-browser)/./node_modules/next/dist/pages/_error.js\");\n }\n ]);\n if(true) {\n module.hot.dispose(function () {\n window.__NEXT_P.push([\"/_error\"])\n });\n }\n //# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvYnVpbGQvd2VicGFjay9sb2FkZXJzL25leHQtY2xpZW50LXBhZ2VzLWxvYWRlci5qcz9hYnNvbHV0ZVBhZ2VQYXRoPXByaXZhdGUtbmV4dC1wYWdlcyUyRl9lcnJvciZwYWdlPSUyRl9lcnJvciEiLCJtYXBwaW5ncyI6IjtBQUNBO0FBQ0E7QUFDQTtBQUNBLGVBQWUsbUJBQU8sQ0FBQywrRkFBMkI7QUFDbEQ7QUFDQTtBQUNBLE9BQU8sSUFBVTtBQUNqQixNQUFNLFVBQVU7QUFDaEI7QUFDQSxPQUFPO0FBQ1A7QUFDQSIsInNvdXJjZXMiOlsiIl0sInNvdXJjZXNDb250ZW50IjpbIlxuICAgICh3aW5kb3cuX19ORVhUX1AgPSB3aW5kb3cuX19ORVhUX1AgfHwgW10pLnB1c2goW1xuICAgICAgXCIvX2Vycm9yXCIsXG4gICAgICBmdW5jdGlvbiAoKSB7XG4gICAgICAgIHJldHVybiByZXF1aXJlKFwicHJpdmF0ZS1uZXh0LXBhZ2VzL19lcnJvclwiKTtcbiAgICAgIH1cbiAgICBdKTtcbiAgICBpZihtb2R1bGUuaG90KSB7XG4gICAgICBtb2R1bGUuaG90LmRpc3Bvc2UoZnVuY3Rpb24gKCkge1xuICAgICAgICB3aW5kb3cuX19ORVhUX1AucHVzaChbXCIvX2Vycm9yXCJdKVxuICAgICAgfSk7XG4gICAgfVxuICAiXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(pages-dir-browser)/./node_modules/next/dist/build/webpack/loaders/next-client-pages-loader.js?absolutePagePath=private-next-pages%2F_error&page=%2F_error!\n")); - -/***/ }), - -/***/ "(pages-dir-browser)/./node_modules/next/dist/pages/_error.js": -/*!************************************************!*\ - !*** ./node_modules/next/dist/pages/_error.js ***! - \************************************************/ -/***/ ((module, exports, __webpack_require__) => { - -"use strict"; -eval(__webpack_require__.ts("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"default\", ({\n enumerable: true,\n get: function() {\n return Error;\n }\n}));\nconst _interop_require_default = __webpack_require__(/*! @swc/helpers/_/_interop_require_default */ \"(pages-dir-browser)/./node_modules/@swc/helpers/esm/_interop_require_default.js\");\nconst _jsxruntime = __webpack_require__(/*! react/jsx-runtime */ \"(pages-dir-browser)/./node_modules/react/jsx-runtime.js\");\nconst _react = /*#__PURE__*/ _interop_require_default._(__webpack_require__(/*! react */ \"(pages-dir-browser)/./node_modules/react/index.js\"));\nconst _head = /*#__PURE__*/ _interop_require_default._(__webpack_require__(/*! ../shared/lib/head */ \"(pages-dir-browser)/./node_modules/next/dist/shared/lib/head.js\"));\nconst statusCodes = {\n 400: 'Bad Request',\n 404: 'This page could not be found',\n 405: 'Method Not Allowed',\n 500: 'Internal Server Error'\n};\nfunction _getInitialProps(param) {\n let { req, res, err } = param;\n const statusCode = res && res.statusCode ? res.statusCode : err ? err.statusCode : 404;\n let hostname;\n if (true) {\n hostname = window.location.hostname;\n } else {}\n return {\n statusCode,\n hostname\n };\n}\nconst styles = {\n error: {\n // https://github.com/sindresorhus/modern-normalize/blob/main/modern-normalize.css#L38-L52\n fontFamily: 'system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"',\n height: '100vh',\n textAlign: 'center',\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'center',\n justifyContent: 'center'\n },\n desc: {\n lineHeight: '48px'\n },\n h1: {\n display: 'inline-block',\n margin: '0 20px 0 0',\n paddingRight: 23,\n fontSize: 24,\n fontWeight: 500,\n verticalAlign: 'top'\n },\n h2: {\n fontSize: 14,\n fontWeight: 400,\n lineHeight: '28px'\n },\n wrap: {\n display: 'inline-block'\n }\n};\nclass Error extends _react.default.Component {\n render() {\n const { statusCode, withDarkMode = true } = this.props;\n const title = this.props.title || statusCodes[statusCode] || 'An unexpected error has occurred';\n return /*#__PURE__*/ (0, _jsxruntime.jsxs)(\"div\", {\n style: styles.error,\n children: [\n /*#__PURE__*/ (0, _jsxruntime.jsx)(_head.default, {\n children: /*#__PURE__*/ (0, _jsxruntime.jsx)(\"title\", {\n children: statusCode ? statusCode + \": \" + title : 'Application error: a client-side exception has occurred'\n })\n }),\n /*#__PURE__*/ (0, _jsxruntime.jsxs)(\"div\", {\n style: styles.desc,\n children: [\n /*#__PURE__*/ (0, _jsxruntime.jsx)(\"style\", {\n dangerouslySetInnerHTML: {\n /* CSS minified from\n body { margin: 0; color: #000; background: #fff; }\n .next-error-h1 {\n border-right: 1px solid rgba(0, 0, 0, .3);\n }\n\n ${\n withDarkMode\n ? `@media (prefers-color-scheme: dark) {\n body { color: #fff; background: #000; }\n .next-error-h1 {\n border-right: 1px solid rgba(255, 255, 255, .3);\n }\n }`\n : ''\n }\n */ __html: \"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}\" + (withDarkMode ? '@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}' : '')\n }\n }),\n statusCode ? /*#__PURE__*/ (0, _jsxruntime.jsx)(\"h1\", {\n className: \"next-error-h1\",\n style: styles.h1,\n children: statusCode\n }) : null,\n /*#__PURE__*/ (0, _jsxruntime.jsx)(\"div\", {\n style: styles.wrap,\n children: /*#__PURE__*/ (0, _jsxruntime.jsxs)(\"h2\", {\n style: styles.h2,\n children: [\n this.props.title || statusCode ? title : /*#__PURE__*/ (0, _jsxruntime.jsxs)(_jsxruntime.Fragment, {\n children: [\n \"Application error: a client-side exception has occurred\",\n ' ',\n Boolean(this.props.hostname) && /*#__PURE__*/ (0, _jsxruntime.jsxs)(_jsxruntime.Fragment, {\n children: [\n \"while loading \",\n this.props.hostname\n ]\n }),\n ' ',\n \"(see the browser console for more information)\"\n ]\n }),\n \".\"\n ]\n })\n })\n ]\n })\n ]\n });\n }\n}\nError.displayName = 'ErrorPage';\nError.getInitialProps = _getInitialProps;\nError.origGetInitialProps = _getInitialProps;\nif ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=_error.js.map\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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvcGFnZXMvX2Vycm9yLmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7ZUFnRnFCQTs7Ozs7NEVBaEZIOzJFQUNEO0FBR2pCLE1BQU1DLGNBQTBDO0lBQzlDLEtBQUs7SUFDTCxLQUFLO0lBQ0wsS0FBSztJQUNMLEtBQUs7QUFDUDtBQVNBLFNBQVNDLGlCQUFpQixLQUlSO0lBSlEsTUFDeEJDLEdBQUcsRUFDSEMsR0FBRyxFQUNIQyxHQUFHLEVBQ2EsR0FKUTtJQUt4QixNQUFNQyxhQUNKRixPQUFPQSxJQUFJRSxVQUFVLEdBQUdGLElBQUlFLFVBQVUsR0FBR0QsTUFBTUEsSUFBSUMsVUFBVSxHQUFJO0lBRW5FLElBQUlDO0lBRUosSUFBSSxJQUE2QixFQUFFO1FBQ2pDQSxXQUFXQyxPQUFPQyxRQUFRLENBQUNGLFFBQVE7SUFDckMsT0FBTyxFQVNOO0lBRUQsT0FBTztRQUFFRDtRQUFZQztJQUFTO0FBQ2hDO0FBRUEsTUFBTVEsU0FBOEM7SUFDbERDLE9BQU87UUFDTCwwRkFBMEY7UUFDMUZDLFlBQ0U7UUFDRkMsUUFBUTtRQUNSQyxXQUFXO1FBQ1hDLFNBQVM7UUFDVEMsZUFBZTtRQUNmQyxZQUFZO1FBQ1pDLGdCQUFnQjtJQUNsQjtJQUNBQyxNQUFNO1FBQ0pDLFlBQVk7SUFDZDtJQUNBQyxJQUFJO1FBQ0ZOLFNBQVM7UUFDVE8sUUFBUTtRQUNSQyxjQUFjO1FBQ2RDLFVBQVU7UUFDVkMsWUFBWTtRQUNaQyxlQUFlO0lBQ2pCO0lBQ0FDLElBQUk7UUFDRkgsVUFBVTtRQUNWQyxZQUFZO1FBQ1pMLFlBQVk7SUFDZDtJQUNBUSxNQUFNO1FBQ0piLFNBQVM7SUFDWDtBQUNGO0FBS2UsTUFBTXBCLGNBQXNCa0MsT0FBQUEsT0FBSyxDQUFDQyxTQUFTO0lBTXhEQyxTQUFTO1FBQ1AsTUFBTSxFQUFFOUIsVUFBVSxFQUFFK0IsZUFBZSxJQUFJLEVBQUUsR0FBRyxJQUFJLENBQUNDLEtBQUs7UUFDdEQsTUFBTUMsUUFDSixJQUFJLENBQUNELEtBQUssQ0FBQ0MsS0FBSyxJQUNoQnRDLFdBQVcsQ0FBQ0ssV0FBVyxJQUN2QjtRQUVGLHFCQUNFLHNCQUFDa0MsT0FBQUE7WUFBSUMsT0FBTzFCLE9BQU9DLEtBQUs7OzhCQUN0QixxQkFBQzBCLE1BQUFBLE9BQUk7OEJBQ0gsbUNBQUNILFNBQUFBO2tDQUNFakMsYUFDTUEsYUFBVyxPQUFJaUMsUUFDbEI7Ozs4QkFHUixzQkFBQ0MsT0FBQUE7b0JBQUlDLE9BQU8xQixPQUFPUyxJQUFJOztzQ0FDckIscUJBQUNpQixTQUFBQTs0QkFDQ0UseUJBQXlCO2dDQUN2Qjs7Ozs7Ozs7Ozs7Ozs7OztlQWdCQyxHQUNEQyxRQUFTLG1HQUNQUCxDQUFBQSxlQUNJLG9JQUNBLEdBQUM7NEJBRVQ7O3dCQUdEL0IsYUFBQUEsV0FBQUEsR0FDQyxxQkFBQ29CLE1BQUFBOzRCQUFHbUIsV0FBVTs0QkFBZ0JKLE9BQU8xQixPQUFPVyxFQUFFO3NDQUMzQ3BCOzZCQUVEO3NDQUNKLHFCQUFDa0MsT0FBQUE7NEJBQUlDLE9BQU8xQixPQUFPa0IsSUFBSTtzQ0FDckIsb0NBQUNELE1BQUFBO2dDQUFHUyxPQUFPMUIsT0FBT2lCLEVBQUU7O29DQUNqQixJQUFJLENBQUNNLEtBQUssQ0FBQ0MsS0FBSyxJQUFJakMsYUFDbkJpQyxRQUVBLFdBRkFBLEdBRUE7OzRDQUFFOzRDQUN3RDs0Q0FDdkRPLFFBQVEsSUFBSSxDQUFDUixLQUFLLENBQUMvQixRQUFRLEtBQzFCLFdBRDBCLEdBQzFCOztvREFBRTtvREFBZSxJQUFJLENBQUMrQixLQUFLLENBQUMvQixRQUFROzs7NENBQ25DOzRDQUFJOzs7b0NBR1Q7Ozs7Ozs7O0lBT2Q7QUFDRjtBQTNFcUJQLE1BQ1orQyxXQUFBQSxHQUFjO0FBREYvQyxNQUdaZ0QsZUFBQUEsR0FBa0I5QztBQUhORixNQUlaaUQsbUJBQUFBLEdBQXNCL0MiLCJzb3VyY2VzIjpbIkQ6XFxzcmNcXHBhZ2VzXFxfZXJyb3IudHN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCdcbmltcG9ydCBIZWFkIGZyb20gJy4uL3NoYXJlZC9saWIvaGVhZCdcbmltcG9ydCB0eXBlIHsgTmV4dFBhZ2VDb250ZXh0IH0gZnJvbSAnLi4vc2hhcmVkL2xpYi91dGlscydcblxuY29uc3Qgc3RhdHVzQ29kZXM6IHsgW2NvZGU6IG51bWJlcl06IHN0cmluZyB9ID0ge1xuICA0MDA6ICdCYWQgUmVxdWVzdCcsXG4gIDQwNDogJ1RoaXMgcGFnZSBjb3VsZCBub3QgYmUgZm91bmQnLFxuICA0MDU6ICdNZXRob2QgTm90IEFsbG93ZWQnLFxuICA1MDA6ICdJbnRlcm5hbCBTZXJ2ZXIgRXJyb3InLFxufVxuXG5leHBvcnQgdHlwZSBFcnJvclByb3BzID0ge1xuICBzdGF0dXNDb2RlOiBudW1iZXJcbiAgaG9zdG5hbWU/OiBzdHJpbmdcbiAgdGl0bGU/OiBzdHJpbmdcbiAgd2l0aERhcmtNb2RlPzogYm9vbGVhblxufVxuXG5mdW5jdGlvbiBfZ2V0SW5pdGlhbFByb3BzKHtcbiAgcmVxLFxuICByZXMsXG4gIGVycixcbn06IE5leHRQYWdlQ29udGV4dCk6IFByb21pc2U8RXJyb3JQcm9wcz4gfCBFcnJvclByb3BzIHtcbiAgY29uc3Qgc3RhdHVzQ29kZSA9XG4gICAgcmVzICYmIHJlcy5zdGF0dXNDb2RlID8gcmVzLnN0YXR1c0NvZGUgOiBlcnIgPyBlcnIuc3RhdHVzQ29kZSEgOiA0MDRcblxuICBsZXQgaG9zdG5hbWVcblxuICBpZiAodHlwZW9mIHdpbmRvdyAhPT0gJ3VuZGVmaW5lZCcpIHtcbiAgICBob3N0bmFtZSA9IHdpbmRvdy5sb2NhdGlvbi5ob3N0bmFtZVxuICB9IGVsc2UgaWYgKHJlcSkge1xuICAgIGNvbnN0IHsgZ2V0UmVxdWVzdE1ldGEgfSA9XG4gICAgICByZXF1aXJlKCcuLi9zZXJ2ZXIvcmVxdWVzdC1tZXRhJykgYXMgdHlwZW9mIGltcG9ydCgnLi4vc2VydmVyL3JlcXVlc3QtbWV0YScpXG5cbiAgICBjb25zdCBpbml0VXJsID0gZ2V0UmVxdWVzdE1ldGEocmVxLCAnaW5pdFVSTCcpXG4gICAgaWYgKGluaXRVcmwpIHtcbiAgICAgIGNvbnN0IHVybCA9IG5ldyBVUkwoaW5pdFVybClcbiAgICAgIGhvc3RuYW1lID0gdXJsLmhvc3RuYW1lXG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHsgc3RhdHVzQ29kZSwgaG9zdG5hbWUgfVxufVxuXG5jb25zdCBzdHlsZXM6IFJlY29yZDxzdHJpbmcsIFJlYWN0LkNTU1Byb3BlcnRpZXM+ID0ge1xuICBlcnJvcjoge1xuICAgIC8vIGh0dHBzOi8vZ2l0aHViLmNvbS9zaW5kcmVzb3JodXMvbW9kZXJuLW5vcm1hbGl6ZS9ibG9iL21haW4vbW9kZXJuLW5vcm1hbGl6ZS5jc3MjTDM4LUw1MlxuICAgIGZvbnRGYW1pbHk6XG4gICAgICAnc3lzdGVtLXVpLFwiU2Vnb2UgVUlcIixSb2JvdG8sSGVsdmV0aWNhLEFyaWFsLHNhbnMtc2VyaWYsXCJBcHBsZSBDb2xvciBFbW9qaVwiLFwiU2Vnb2UgVUkgRW1vamlcIicsXG4gICAgaGVpZ2h0OiAnMTAwdmgnLFxuICAgIHRleHRBbGlnbjogJ2NlbnRlcicsXG4gICAgZGlzcGxheTogJ2ZsZXgnLFxuICAgIGZsZXhEaXJlY3Rpb246ICdjb2x1bW4nLFxuICAgIGFsaWduSXRlbXM6ICdjZW50ZXInLFxuICAgIGp1c3RpZnlDb250ZW50OiAnY2VudGVyJyxcbiAgfSxcbiAgZGVzYzoge1xuICAgIGxpbmVIZWlnaHQ6ICc0OHB4JyxcbiAgfSxcbiAgaDE6IHtcbiAgICBkaXNwbGF5OiAnaW5saW5lLWJsb2NrJyxcbiAgICBtYXJnaW46ICcwIDIwcHggMCAwJyxcbiAgICBwYWRkaW5nUmlnaHQ6IDIzLFxuICAgIGZvbnRTaXplOiAyNCxcbiAgICBmb250V2VpZ2h0OiA1MDAsXG4gICAgdmVydGljYWxBbGlnbjogJ3RvcCcsXG4gIH0sXG4gIGgyOiB7XG4gICAgZm9udFNpemU6IDE0LFxuICAgIGZvbnRXZWlnaHQ6IDQwMCxcbiAgICBsaW5lSGVpZ2h0OiAnMjhweCcsXG4gIH0sXG4gIHdyYXA6IHtcbiAgICBkaXNwbGF5OiAnaW5saW5lLWJsb2NrJyxcbiAgfSxcbn1cblxuLyoqXG4gKiBgRXJyb3JgIGNvbXBvbmVudCB1c2VkIGZvciBoYW5kbGluZyBlcnJvcnMuXG4gKi9cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIEVycm9yPFAgPSB7fT4gZXh0ZW5kcyBSZWFjdC5Db21wb25lbnQ8UCAmIEVycm9yUHJvcHM+IHtcbiAgc3RhdGljIGRpc3BsYXlOYW1lID0gJ0Vycm9yUGFnZSdcblxuICBzdGF0aWMgZ2V0SW5pdGlhbFByb3BzID0gX2dldEluaXRpYWxQcm9wc1xuICBzdGF0aWMgb3JpZ0dldEluaXRpYWxQcm9wcyA9IF9nZXRJbml0aWFsUHJvcHNcblxuICByZW5kZXIoKSB7XG4gICAgY29uc3QgeyBzdGF0dXNDb2RlLCB3aXRoRGFya01vZGUgPSB0cnVlIH0gPSB0aGlzLnByb3BzXG4gICAgY29uc3QgdGl0bGUgPVxuICAgICAgdGhpcy5wcm9wcy50aXRsZSB8fFxuICAgICAgc3RhdHVzQ29kZXNbc3RhdHVzQ29kZV0gfHxcbiAgICAgICdBbiB1bmV4cGVjdGVkIGVycm9yIGhhcyBvY2N1cnJlZCdcblxuICAgIHJldHVybiAoXG4gICAgICA8ZGl2IHN0eWxlPXtzdHlsZXMuZXJyb3J9PlxuICAgICAgICA8SGVhZD5cbiAgICAgICAgICA8dGl0bGU+XG4gICAgICAgICAgICB7c3RhdHVzQ29kZVxuICAgICAgICAgICAgICA/IGAke3N0YXR1c0NvZGV9OiAke3RpdGxlfWBcbiAgICAgICAgICAgICAgOiAnQXBwbGljYXRpb24gZXJyb3I6IGEgY2xpZW50LXNpZGUgZXhjZXB0aW9uIGhhcyBvY2N1cnJlZCd9XG4gICAgICAgICAgPC90aXRsZT5cbiAgICAgICAgPC9IZWFkPlxuICAgICAgICA8ZGl2IHN0eWxlPXtzdHlsZXMuZGVzY30+XG4gICAgICAgICAgPHN0eWxlXG4gICAgICAgICAgICBkYW5nZXJvdXNseVNldElubmVySFRNTD17e1xuICAgICAgICAgICAgICAvKiBDU1MgbWluaWZpZWQgZnJvbVxuICAgICAgICAgICAgICAgIGJvZHkgeyBtYXJnaW46IDA7IGNvbG9yOiAjMDAwOyBiYWNrZ3JvdW5kOiAjZmZmOyB9XG4gICAgICAgICAgICAgICAgLm5leHQtZXJyb3ItaDEge1xuICAgICAgICAgICAgICAgICAgYm9yZGVyLXJpZ2h0OiAxcHggc29saWQgcmdiYSgwLCAwLCAwLCAuMyk7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJHtcbiAgICAgICAgICAgICAgICAgIHdpdGhEYXJrTW9kZVxuICAgICAgICAgICAgICAgICAgICA/IGBAbWVkaWEgKHByZWZlcnMtY29sb3Itc2NoZW1lOiBkYXJrKSB7XG4gICAgICAgICAgICAgICAgICBib2R5IHsgY29sb3I6ICNmZmY7IGJhY2tncm91bmQ6ICMwMDA7IH1cbiAgICAgICAgICAgICAgICAgIC5uZXh0LWVycm9yLWgxIHtcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyLXJpZ2h0OiAxcHggc29saWQgcmdiYSgyNTUsIDI1NSwgMjU1LCAuMyk7XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfWBcbiAgICAgICAgICAgICAgICAgICAgOiAnJ1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICovXG4gICAgICAgICAgICAgIF9faHRtbDogYGJvZHl7Y29sb3I6IzAwMDtiYWNrZ3JvdW5kOiNmZmY7bWFyZ2luOjB9Lm5leHQtZXJyb3ItaDF7Ym9yZGVyLXJpZ2h0OjFweCBzb2xpZCByZ2JhKDAsMCwwLC4zKX0ke1xuICAgICAgICAgICAgICAgIHdpdGhEYXJrTW9kZVxuICAgICAgICAgICAgICAgICAgPyAnQG1lZGlhIChwcmVmZXJzLWNvbG9yLXNjaGVtZTpkYXJrKXtib2R5e2NvbG9yOiNmZmY7YmFja2dyb3VuZDojMDAwfS5uZXh0LWVycm9yLWgxe2JvcmRlci1yaWdodDoxcHggc29saWQgcmdiYSgyNTUsMjU1LDI1NSwuMyl9fSdcbiAgICAgICAgICAgICAgICAgIDogJydcbiAgICAgICAgICAgICAgfWAsXG4gICAgICAgICAgICB9fVxuICAgICAgICAgIC8+XG5cbiAgICAgICAgICB7c3RhdHVzQ29kZSA/IChcbiAgICAgICAgICAgIDxoMSBjbGFzc05hbWU9XCJuZXh0LWVycm9yLWgxXCIgc3R5bGU9e3N0eWxlcy5oMX0+XG4gICAgICAgICAgICAgIHtzdGF0dXNDb2RlfVxuICAgICAgICAgICAgPC9oMT5cbiAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICA8ZGl2IHN0eWxlPXtzdHlsZXMud3JhcH0+XG4gICAgICAgICAgICA8aDIgc3R5bGU9e3N0eWxlcy5oMn0+XG4gICAgICAgICAgICAgIHt0aGlzLnByb3BzLnRpdGxlIHx8IHN0YXR1c0NvZGUgPyAoXG4gICAgICAgICAgICAgICAgdGl0bGVcbiAgICAgICAgICAgICAgKSA6IChcbiAgICAgICAgICAgICAgICA8PlxuICAgICAgICAgICAgICAgICAgQXBwbGljYXRpb24gZXJyb3I6IGEgY2xpZW50LXNpZGUgZXhjZXB0aW9uIGhhcyBvY2N1cnJlZHsnICd9XG4gICAgICAgICAgICAgICAgICB7Qm9vbGVhbih0aGlzLnByb3BzLmhvc3RuYW1lKSAmJiAoXG4gICAgICAgICAgICAgICAgICAgIDw+d2hpbGUgbG9hZGluZyB7dGhpcy5wcm9wcy5ob3N0bmFtZX08Lz5cbiAgICAgICAgICAgICAgICAgICl9eycgJ31cbiAgICAgICAgICAgICAgICAgIChzZWUgdGhlIGJyb3dzZXIgY29uc29sZSBmb3IgbW9yZSBpbmZvcm1hdGlvbilcbiAgICAgICAgICAgICAgICA8Lz5cbiAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgICAgLlxuICAgICAgICAgICAgPC9oMj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICApXG4gIH1cbn1cbiJdLCJuYW1lcyI6WyJFcnJvciIsInN0YXR1c0NvZGVzIiwiX2dldEluaXRpYWxQcm9wcyIsInJlcSIsInJlcyIsImVyciIsInN0YXR1c0NvZGUiLCJob3N0bmFtZSIsIndpbmRvdyIsImxvY2F0aW9uIiwiZ2V0UmVxdWVzdE1ldGEiLCJyZXF1aXJlIiwiaW5pdFVybCIsInVybCIsIlVSTCIsInN0eWxlcyIsImVycm9yIiwiZm9udEZhbWlseSIsImhlaWdodCIsInRleHRBbGlnbiIsImRpc3BsYXkiLCJmbGV4RGlyZWN0aW9uIiwiYWxpZ25JdGVtcyIsImp1c3RpZnlDb250ZW50IiwiZGVzYyIsImxpbmVIZWlnaHQiLCJoMSIsIm1hcmdpbiIsInBhZGRpbmdSaWdodCIsImZvbnRTaXplIiwiZm9udFdlaWdodCIsInZlcnRpY2FsQWxpZ24iLCJoMiIsIndyYXAiLCJSZWFjdCIsIkNvbXBvbmVudCIsInJlbmRlciIsIndpdGhEYXJrTW9kZSIsInByb3BzIiwidGl0bGUiLCJkaXYiLCJzdHlsZSIsIkhlYWQiLCJkYW5nZXJvdXNseVNldElubmVySFRNTCIsIl9faHRtbCIsImNsYXNzTmFtZSIsIkJvb2xlYW4iLCJkaXNwbGF5TmFtZSIsImdldEluaXRpYWxQcm9wcyIsIm9yaWdHZXRJbml0aWFsUHJvcHMiXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(pages-dir-browser)/./node_modules/next/dist/pages/_error.js\n")); - -/***/ }), - -/***/ "(pages-dir-browser)/./node_modules/next/dist/shared/lib/amp-context.shared-runtime.js": -/*!*************************************************************************!*\ - !*** ./node_modules/next/dist/shared/lib/amp-context.shared-runtime.js ***! - \*************************************************************************/ -/***/ ((module, exports, __webpack_require__) => { - -"use strict"; -eval(__webpack_require__.ts("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"AmpStateContext\", ({\n enumerable: true,\n get: function() {\n return AmpStateContext;\n }\n}));\nconst _interop_require_default = __webpack_require__(/*! @swc/helpers/_/_interop_require_default */ \"(pages-dir-browser)/./node_modules/@swc/helpers/esm/_interop_require_default.js\");\nconst _react = /*#__PURE__*/ _interop_require_default._(__webpack_require__(/*! react */ \"(pages-dir-browser)/./node_modules/react/index.js\"));\nconst AmpStateContext = _react.default.createContext({});\nif (true) {\n AmpStateContext.displayName = 'AmpStateContext';\n} //# sourceMappingURL=amp-context.shared-runtime.js.map\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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3Qvc2hhcmVkL2xpYi9hbXAtY29udGV4dC5zaGFyZWQtcnVudGltZS5qcyIsIm1hcHBpbmdzIjoiOzs7O21EQUVhQTs7O2VBQUFBOzs7OzRFQUZLO0FBRVgsTUFBTUEsa0JBQXNDQyxPQUFBQSxPQUFLLENBQUNDLGFBQWEsQ0FBQyxDQUFDO0FBRXhFLElBQUlDLElBQW9CLEVBQW1CO0lBQ3pDSCxnQkFBZ0JNLFdBQVcsR0FBRztBQUNoQyIsInNvdXJjZXMiOlsiRDpcXHNyY1xcc2hhcmVkXFxsaWJcXGFtcC1jb250ZXh0LnNoYXJlZC1ydW50aW1lLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCdcblxuZXhwb3J0IGNvbnN0IEFtcFN0YXRlQ29udGV4dDogUmVhY3QuQ29udGV4dDxhbnk+ID0gUmVhY3QuY3JlYXRlQ29udGV4dCh7fSlcblxuaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpIHtcbiAgQW1wU3RhdGVDb250ZXh0LmRpc3BsYXlOYW1lID0gJ0FtcFN0YXRlQ29udGV4dCdcbn1cbiJdLCJuYW1lcyI6WyJBbXBTdGF0ZUNvbnRleHQiLCJSZWFjdCIsImNyZWF0ZUNvbnRleHQiLCJwcm9jZXNzIiwiZW52IiwiTk9ERV9FTlYiLCJkaXNwbGF5TmFtZSJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(pages-dir-browser)/./node_modules/next/dist/shared/lib/amp-context.shared-runtime.js\n")); - -/***/ }), - -/***/ "(pages-dir-browser)/./node_modules/next/dist/shared/lib/amp-mode.js": -/*!*******************************************************!*\ - !*** ./node_modules/next/dist/shared/lib/amp-mode.js ***! - \*******************************************************/ -/***/ ((module, exports, __webpack_require__) => { - -"use strict"; -eval(__webpack_require__.ts("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"isInAmpMode\", ({\n enumerable: true,\n get: function() {\n return isInAmpMode;\n }\n}));\nfunction isInAmpMode(param) {\n let { ampFirst = false, hybrid = false, hasQuery = false } = param === void 0 ? {} : param;\n return ampFirst || hybrid && hasQuery;\n} //# sourceMappingURL=amp-mode.js.map\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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3Qvc2hhcmVkL2xpYi9hbXAtbW9kZS5qcyIsIm1hcHBpbmdzIjoiOzs7OytDQUFnQkE7OztlQUFBQTs7O0FBQVQsU0FBU0EsWUFBWTtJQUFBLE1BQzFCQyxXQUFXLEtBQUssRUFDaEJDLFNBQVMsS0FBSyxFQUNkQyxXQUFXLEtBQUssRUFDakIsR0FKMkIsbUJBSXhCLENBQUMsSUFKdUI7SUFLMUIsT0FBT0YsWUFBYUMsVUFBVUM7QUFDaEMiLCJzb3VyY2VzIjpbIkQ6XFxzcmNcXHNoYXJlZFxcbGliXFxhbXAtbW9kZS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgZnVuY3Rpb24gaXNJbkFtcE1vZGUoe1xuICBhbXBGaXJzdCA9IGZhbHNlLFxuICBoeWJyaWQgPSBmYWxzZSxcbiAgaGFzUXVlcnkgPSBmYWxzZSxcbn0gPSB7fSk6IGJvb2xlYW4ge1xuICByZXR1cm4gYW1wRmlyc3QgfHwgKGh5YnJpZCAmJiBoYXNRdWVyeSlcbn1cbiJdLCJuYW1lcyI6WyJpc0luQW1wTW9kZSIsImFtcEZpcnN0IiwiaHlicmlkIiwiaGFzUXVlcnkiXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(pages-dir-browser)/./node_modules/next/dist/shared/lib/amp-mode.js\n")); - -/***/ }), - -/***/ "(pages-dir-browser)/./node_modules/next/dist/shared/lib/head.js": -/*!***************************************************!*\ - !*** ./node_modules/next/dist/shared/lib/head.js ***! - \***************************************************/ -/***/ ((module, exports, __webpack_require__) => { - -"use strict"; -eval(__webpack_require__.ts("/* __next_internal_client_entry_do_not_use__ cjs */ \nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n default: function() {\n return _default;\n },\n defaultHead: function() {\n return defaultHead;\n }\n});\nconst _interop_require_default = __webpack_require__(/*! @swc/helpers/_/_interop_require_default */ \"(pages-dir-browser)/./node_modules/@swc/helpers/esm/_interop_require_default.js\");\nconst _interop_require_wildcard = __webpack_require__(/*! @swc/helpers/_/_interop_require_wildcard */ \"(pages-dir-browser)/./node_modules/@swc/helpers/esm/_interop_require_wildcard.js\");\nconst _jsxruntime = __webpack_require__(/*! react/jsx-runtime */ \"(pages-dir-browser)/./node_modules/react/jsx-runtime.js\");\nconst _react = /*#__PURE__*/ _interop_require_wildcard._(__webpack_require__(/*! react */ \"(pages-dir-browser)/./node_modules/react/index.js\"));\nconst _sideeffect = /*#__PURE__*/ _interop_require_default._(__webpack_require__(/*! ./side-effect */ \"(pages-dir-browser)/./node_modules/next/dist/shared/lib/side-effect.js\"));\nconst _ampcontextsharedruntime = __webpack_require__(/*! ./amp-context.shared-runtime */ \"(pages-dir-browser)/./node_modules/next/dist/shared/lib/amp-context.shared-runtime.js\");\nconst _headmanagercontextsharedruntime = __webpack_require__(/*! ./head-manager-context.shared-runtime */ \"(pages-dir-browser)/./node_modules/next/dist/shared/lib/head-manager-context.shared-runtime.js\");\nconst _ampmode = __webpack_require__(/*! ./amp-mode */ \"(pages-dir-browser)/./node_modules/next/dist/shared/lib/amp-mode.js\");\nconst _warnonce = __webpack_require__(/*! ./utils/warn-once */ \"(pages-dir-browser)/./node_modules/next/dist/shared/lib/utils/warn-once.js\");\nfunction defaultHead(inAmpMode) {\n if (inAmpMode === void 0) inAmpMode = false;\n const head = [\n /*#__PURE__*/ (0, _jsxruntime.jsx)(\"meta\", {\n charSet: \"utf-8\"\n }, \"charset\")\n ];\n if (!inAmpMode) {\n head.push(/*#__PURE__*/ (0, _jsxruntime.jsx)(\"meta\", {\n name: \"viewport\",\n content: \"width=device-width\"\n }, \"viewport\"));\n }\n return head;\n}\nfunction onlyReactElement(list, child) {\n // React children can be \"string\" or \"number\" in this case we ignore them for backwards compat\n if (typeof child === 'string' || typeof child === 'number') {\n return list;\n }\n // Adds support for React.Fragment\n if (child.type === _react.default.Fragment) {\n return list.concat(_react.default.Children.toArray(child.props.children).reduce((fragmentList, fragmentChild)=>{\n if (typeof fragmentChild === 'string' || typeof fragmentChild === 'number') {\n return fragmentList;\n }\n return fragmentList.concat(fragmentChild);\n }, []));\n }\n return list.concat(child);\n}\nconst METATYPES = [\n 'name',\n 'httpEquiv',\n 'charSet',\n 'itemProp'\n];\n/*\n returns a function for filtering head child elements\n which shouldn't be duplicated, like <title/>\n Also adds support for deduplicated `key` properties\n*/ function unique() {\n const keys = new Set();\n const tags = new Set();\n const metaTypes = new Set();\n const metaCategories = {};\n return (h)=>{\n let isUnique = true;\n let hasKey = false;\n if (h.key && typeof h.key !== 'number' && h.key.indexOf('$') > 0) {\n hasKey = true;\n const key = h.key.slice(h.key.indexOf('$') + 1);\n if (keys.has(key)) {\n isUnique = false;\n } else {\n keys.add(key);\n }\n }\n // eslint-disable-next-line default-case\n switch(h.type){\n case 'title':\n case 'base':\n if (tags.has(h.type)) {\n isUnique = false;\n } else {\n tags.add(h.type);\n }\n break;\n case 'meta':\n for(let i = 0, len = METATYPES.length; i < len; i++){\n const metatype = METATYPES[i];\n if (!h.props.hasOwnProperty(metatype)) continue;\n if (metatype === 'charSet') {\n if (metaTypes.has(metatype)) {\n isUnique = false;\n } else {\n metaTypes.add(metatype);\n }\n } else {\n const category = h.props[metatype];\n const categories = metaCategories[metatype] || new Set();\n if ((metatype !== 'name' || !hasKey) && categories.has(category)) {\n isUnique = false;\n } else {\n categories.add(category);\n metaCategories[metatype] = categories;\n }\n }\n }\n break;\n }\n return isUnique;\n };\n}\n/**\n *\n * @param headChildrenElements List of children of <Head>\n */ function reduceComponents(headChildrenElements, props) {\n const { inAmpMode } = props;\n return headChildrenElements.reduce(onlyReactElement, []).reverse().concat(defaultHead(inAmpMode).reverse()).filter(unique()).reverse().map((c, i)=>{\n const key = c.key || i;\n if (true) {\n // omit JSON-LD structured data snippets from the warning\n if (c.type === 'script' && c.props['type'] !== 'application/ld+json') {\n const srcMessage = c.props['src'] ? '<script> tag with src=\"' + c.props['src'] + '\"' : \"inline <script>\";\n (0, _warnonce.warnOnce)(\"Do not add <script> tags using next/head (see \" + srcMessage + \"). Use next/script instead. \\nSee more info here: https://nextjs.org/docs/messages/no-script-tags-in-head-component\");\n } else if (c.type === 'link' && c.props['rel'] === 'stylesheet') {\n (0, _warnonce.warnOnce)('Do not add stylesheets using next/head (see <link rel=\"stylesheet\"> tag with href=\"' + c.props['href'] + '\"). Use Document instead. \\nSee more info here: https://nextjs.org/docs/messages/no-stylesheets-in-head-component');\n }\n }\n return /*#__PURE__*/ _react.default.cloneElement(c, {\n key\n });\n });\n}\n/**\n * This component injects elements to `<head>` of your page.\n * To avoid duplicated `tags` in `<head>` you can use the `key` property, which will make sure every tag is only rendered once.\n */ function Head(param) {\n let { children } = param;\n const ampState = (0, _react.useContext)(_ampcontextsharedruntime.AmpStateContext);\n const headManager = (0, _react.useContext)(_headmanagercontextsharedruntime.HeadManagerContext);\n return /*#__PURE__*/ (0, _jsxruntime.jsx)(_sideeffect.default, {\n reduceComponentsToState: reduceComponents,\n headManager: headManager,\n inAmpMode: (0, _ampmode.isInAmpMode)(ampState),\n children: children\n });\n}\n_c = Head;\nconst _default = Head;\nif ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=head.js.map\nvar _c;\n$RefreshReg$(_c, \"Head\");\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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3Qvc2hhcmVkL2xpYi9oZWFkLmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7OztJQWdMQSxPQUFtQjtlQUFuQjs7SUFuS2dCQSxXQUFXO2VBQVhBOzs7Ozs7NkVBWDRCO2lGQUN6QjtxREFDYTs2REFDRztxQ0FDUDtzQ0FDSDtBQU1sQixTQUFTQSxZQUFZQyxTQUFpQjtJQUFqQkEsSUFBQUEsY0FBQUEsS0FBQUEsR0FBQUEsWUFBWTtJQUN0QyxNQUFNQyxPQUFPO3NCQUFDLHFCQUFDQyxRQUFBQTtZQUFLQyxTQUFRO1dBQVk7S0FBYTtJQUNyRCxJQUFJLENBQUNILFdBQVc7UUFDZEMsS0FBS0csSUFBSSxlQUNQLHFCQUFDRixRQUFBQTtZQUFLRyxNQUFLO1lBQVdDLFNBQVE7V0FBeUI7SUFFM0Q7SUFDQSxPQUFPTDtBQUNUO0FBRUEsU0FBU00saUJBQ1BDLElBQW9DLEVBQ3BDQyxLQUEyQztJQUUzQyw4RkFBOEY7SUFDOUYsSUFBSSxPQUFPQSxVQUFVLFlBQVksT0FBT0EsVUFBVSxVQUFVO1FBQzFELE9BQU9EO0lBQ1Q7SUFDQSxrQ0FBa0M7SUFDbEMsSUFBSUMsTUFBTUMsSUFBSSxLQUFLQyxPQUFBQSxPQUFLLENBQUNDLFFBQVEsRUFBRTtRQUNqQyxPQUFPSixLQUFLSyxNQUFNLENBQ2hCLE9BQ0FGLE9BQUssQ0FBQ0csUUFBUSxDQUFDQyxPQUFPLENBQUNOLE1BQU1PLEtBQUssQ0FBQ0MsUUFBUSxFQUFFQyxNQUFNLENBQ2pELENBRUVDLGNBQ0FDO1lBRUEsSUFDRSxPQUFPQSxrQkFBa0IsWUFDekIsT0FBT0Esa0JBQWtCLFVBQ3pCO2dCQUNBLE9BQU9EO1lBQ1Q7WUFDQSxPQUFPQSxhQUFhTixNQUFNLENBQUNPO1FBQzdCLEdBQ0EsRUFBRTtJQUdSO0lBQ0EsT0FBT1osS0FBS0ssTUFBTSxDQUFDSjtBQUNyQjtBQUVBLE1BQU1ZLFlBQVk7SUFBQztJQUFRO0lBQWE7SUFBVztDQUFXO0FBRTlEOzs7O0FBSUEsR0FDQSxTQUFTQztJQUNQLE1BQU1DLE9BQU8sSUFBSUM7SUFDakIsTUFBTUMsT0FBTyxJQUFJRDtJQUNqQixNQUFNRSxZQUFZLElBQUlGO0lBQ3RCLE1BQU1HLGlCQUFzRCxDQUFDO0lBRTdELE9BQU8sQ0FBQ0M7UUFDTixJQUFJQyxXQUFXO1FBQ2YsSUFBSUMsU0FBUztRQUViLElBQUlGLEVBQUVHLEdBQUcsSUFBSSxPQUFPSCxFQUFFRyxHQUFHLEtBQUssWUFBWUgsRUFBRUcsR0FBRyxDQUFDQyxPQUFPLENBQUMsT0FBTyxHQUFHO1lBQ2hFRixTQUFTO1lBQ1QsTUFBTUMsTUFBTUgsRUFBRUcsR0FBRyxDQUFDRSxLQUFLLENBQUNMLEVBQUVHLEdBQUcsQ0FBQ0MsT0FBTyxDQUFDLE9BQU87WUFDN0MsSUFBSVQsS0FBS1csR0FBRyxDQUFDSCxNQUFNO2dCQUNqQkYsV0FBVztZQUNiLE9BQU87Z0JBQ0xOLEtBQUtZLEdBQUcsQ0FBQ0o7WUFDWDtRQUNGO1FBRUEsd0NBQXdDO1FBQ3hDLE9BQVFILEVBQUVsQixJQUFJO1lBQ1osS0FBSztZQUNMLEtBQUs7Z0JBQ0gsSUFBSWUsS0FBS1MsR0FBRyxDQUFDTixFQUFFbEIsSUFBSSxHQUFHO29CQUNwQm1CLFdBQVc7Z0JBQ2IsT0FBTztvQkFDTEosS0FBS1UsR0FBRyxDQUFDUCxFQUFFbEIsSUFBSTtnQkFDakI7Z0JBQ0E7WUFDRixLQUFLO2dCQUNILElBQUssSUFBSTBCLElBQUksR0FBR0MsTUFBTWhCLFVBQVVpQixNQUFNLEVBQUVGLElBQUlDLEtBQUtELElBQUs7b0JBQ3BELE1BQU1HLFdBQVdsQixTQUFTLENBQUNlLEVBQUU7b0JBQzdCLElBQUksQ0FBQ1IsRUFBRVosS0FBSyxDQUFDd0IsY0FBYyxDQUFDRCxXQUFXO29CQUV2QyxJQUFJQSxhQUFhLFdBQVc7d0JBQzFCLElBQUliLFVBQVVRLEdBQUcsQ0FBQ0ssV0FBVzs0QkFDM0JWLFdBQVc7d0JBQ2IsT0FBTzs0QkFDTEgsVUFBVVMsR0FBRyxDQUFDSTt3QkFDaEI7b0JBQ0YsT0FBTzt3QkFDTCxNQUFNRSxXQUFXYixFQUFFWixLQUFLLENBQUN1QixTQUFTO3dCQUNsQyxNQUFNRyxhQUFhZixjQUFjLENBQUNZLFNBQVMsSUFBSSxJQUFJZjt3QkFDbkQsSUFBS2UsQ0FBQUEsYUFBYSxVQUFVLENBQUNULE1BQUFBLENBQUssSUFBTVksV0FBV1IsR0FBRyxDQUFDTyxXQUFXOzRCQUNoRVosV0FBVzt3QkFDYixPQUFPOzRCQUNMYSxXQUFXUCxHQUFHLENBQUNNOzRCQUNmZCxjQUFjLENBQUNZLFNBQVMsR0FBR0c7d0JBQzdCO29CQUNGO2dCQUNGO2dCQUNBO1FBQ0o7UUFFQSxPQUFPYjtJQUNUO0FBQ0Y7QUFFQTs7O0NBR0MsR0FDRCxTQUFTYyxpQkFDUEMsb0JBQW9ELEVBQ3BENUIsS0FBUTtJQUVSLE1BQU0sRUFBRWhCLFNBQVMsRUFBRSxHQUFHZ0I7SUFDdEIsT0FBTzRCLHFCQUNKMUIsTUFBTSxDQUFDWCxrQkFBa0IsRUFBRSxFQUMzQnNDLE9BQU8sR0FDUGhDLE1BQU0sQ0FBQ2QsWUFBWUMsV0FBVzZDLE9BQU8sSUFDckNDLE1BQU0sQ0FBQ3hCLFVBQ1B1QixPQUFPLEdBQ1BFLEdBQUcsQ0FBQyxDQUFDQyxHQUE0Qlo7UUFDaEMsTUFBTUwsTUFBTWlCLEVBQUVqQixHQUFHLElBQUlLO1FBQ3JCLElBQUlhLElBQW9CLEVBQW9CO1lBQzFDLHlEQUF5RDtZQUN6RCxJQUFJRCxFQUFFdEMsSUFBSSxLQUFLLFlBQVlzQyxFQUFFaEMsS0FBSyxDQUFDLE9BQU8sS0FBSyx1QkFBdUI7Z0JBQ3BFLE1BQU1vQyxhQUFhSixFQUFFaEMsS0FBSyxDQUFDLE1BQU0sR0FDNUIsNEJBQXlCZ0MsRUFBRWhDLEtBQUssQ0FBQyxNQUFNLEdBQUMsTUFDeEM7Z0JBQ0xxQyxDQUFBQSxHQUFBQSxVQUFBQSxRQUFBQSxFQUNHLG1EQUFnREQsYUFBVztZQUVoRSxPQUFPLElBQUlKLEVBQUV0QyxJQUFJLEtBQUssVUFBVXNDLEVBQUVoQyxLQUFLLENBQUMsTUFBTSxLQUFLLGNBQWM7Z0JBQy9EcUMsQ0FBQUEsR0FBQUEsVUFBQUEsUUFBQUEsRUFDRyx3RkFBcUZMLEVBQUVoQyxLQUFLLENBQUMsT0FBTyxHQUFDO1lBRTFHO1FBQ0Y7UUFDQSxxQkFBT0wsT0FBQUEsT0FBSyxDQUFDMkMsWUFBWSxDQUFDTixHQUFHO1lBQUVqQjtRQUFJO0lBQ3JDO0FBQ0o7QUFFQTs7O0NBR0MsR0FDRCxjQUFjLEtBQTJDO0lBQTNDLE1BQUVkLFFBQVEsRUFBaUMsR0FBM0M7SUFDWixNQUFNdUMsV0FBV0MsQ0FBQUEsR0FBQUEsT0FBQUEsVUFBQUEsRUFBV0MseUJBQUFBLGVBQWU7SUFDM0MsTUFBTUMsY0FBY0YsQ0FBQUEsR0FBQUEsT0FBQUEsVUFBQUEsRUFBV0csaUNBQUFBLGtCQUFrQjtJQUNqRCxxQkFDRSxxQkFBQ0MsWUFBQUEsT0FBTTtRQUNMQyx5QkFBeUJuQjtRQUN6QmdCLGFBQWFBO1FBQ2IzRCxXQUFXK0QsQ0FBQUEsR0FBQUEsU0FBQUEsV0FBQUEsRUFBWVA7a0JBRXRCdkM7O0FBR1A7S0FaU3NDO01BY1QsV0FBZUEiLCJzb3VyY2VzIjpbIkQ6XFxzcmNcXHNoYXJlZFxcbGliXFxoZWFkLnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyIndXNlIGNsaWVudCdcblxuaW1wb3J0IFJlYWN0LCB7IHVzZUNvbnRleHQsIHR5cGUgSlNYIH0gZnJvbSAncmVhY3QnXG5pbXBvcnQgRWZmZWN0IGZyb20gJy4vc2lkZS1lZmZlY3QnXG5pbXBvcnQgeyBBbXBTdGF0ZUNvbnRleHQgfSBmcm9tICcuL2FtcC1jb250ZXh0LnNoYXJlZC1ydW50aW1lJ1xuaW1wb3J0IHsgSGVhZE1hbmFnZXJDb250ZXh0IH0gZnJvbSAnLi9oZWFkLW1hbmFnZXItY29udGV4dC5zaGFyZWQtcnVudGltZSdcbmltcG9ydCB7IGlzSW5BbXBNb2RlIH0gZnJvbSAnLi9hbXAtbW9kZSdcbmltcG9ydCB7IHdhcm5PbmNlIH0gZnJvbSAnLi91dGlscy93YXJuLW9uY2UnXG5cbnR5cGUgV2l0aEluQW1wTW9kZSA9IHtcbiAgaW5BbXBNb2RlPzogYm9vbGVhblxufVxuXG5leHBvcnQgZnVuY3Rpb24gZGVmYXVsdEhlYWQoaW5BbXBNb2RlID0gZmFsc2UpOiBKU1guRWxlbWVudFtdIHtcbiAgY29uc3QgaGVhZCA9IFs8bWV0YSBjaGFyU2V0PVwidXRmLThcIiBrZXk9XCJjaGFyc2V0XCIgLz5dXG4gIGlmICghaW5BbXBNb2RlKSB7XG4gICAgaGVhZC5wdXNoKFxuICAgICAgPG1ldGEgbmFtZT1cInZpZXdwb3J0XCIgY29udGVudD1cIndpZHRoPWRldmljZS13aWR0aFwiIGtleT1cInZpZXdwb3J0XCIgLz5cbiAgICApXG4gIH1cbiAgcmV0dXJuIGhlYWRcbn1cblxuZnVuY3Rpb24gb25seVJlYWN0RWxlbWVudChcbiAgbGlzdDogQXJyYXk8UmVhY3QuUmVhY3RFbGVtZW50PGFueT4+LFxuICBjaGlsZDogUmVhY3QuUmVhY3RFbGVtZW50IHwgbnVtYmVyIHwgc3RyaW5nXG4pOiBBcnJheTxSZWFjdC5SZWFjdEVsZW1lbnQ8YW55Pj4ge1xuICAvLyBSZWFjdCBjaGlsZHJlbiBjYW4gYmUgXCJzdHJpbmdcIiBvciBcIm51bWJlclwiIGluIHRoaXMgY2FzZSB3ZSBpZ25vcmUgdGhlbSBmb3IgYmFja3dhcmRzIGNvbXBhdFxuICBpZiAodHlwZW9mIGNoaWxkID09PSAnc3RyaW5nJyB8fCB0eXBlb2YgY2hpbGQgPT09ICdudW1iZXInKSB7XG4gICAgcmV0dXJuIGxpc3RcbiAgfVxuICAvLyBBZGRzIHN1cHBvcnQgZm9yIFJlYWN0LkZyYWdtZW50XG4gIGlmIChjaGlsZC50eXBlID09PSBSZWFjdC5GcmFnbWVudCkge1xuICAgIHJldHVybiBsaXN0LmNvbmNhdChcbiAgICAgIC8vIEB0cy1leHBlY3QtZXJyb3IgQHR5cGVzL3JlYWN0IGRvZXMgbm90IHJlbW92ZSBmcmFnbWVudHMgYnV0IHRoaXMgY291bGQgYWxzbyByZXR1cm4gUmVhY3RQb3J0YWxbXVxuICAgICAgUmVhY3QuQ2hpbGRyZW4udG9BcnJheShjaGlsZC5wcm9wcy5jaGlsZHJlbikucmVkdWNlKFxuICAgICAgICAvLyBAdHMtZXhwZWN0LWVycm9yIEB0eXBlcy9yZWFjdCBkb2VzIG5vdCByZW1vdmUgZnJhZ21lbnRzIGJ1dCB0aGlzIGNvdWxkIGFsc28gcmV0dXJuIFJlYWN0UG9ydGFsW11cbiAgICAgICAgKFxuICAgICAgICAgIGZyYWdtZW50TGlzdDogQXJyYXk8UmVhY3QuUmVhY3RFbGVtZW50PGFueT4+LFxuICAgICAgICAgIGZyYWdtZW50Q2hpbGQ6IFJlYWN0LlJlYWN0RWxlbWVudCB8IG51bWJlciB8IHN0cmluZ1xuICAgICAgICApOiBBcnJheTxSZWFjdC5SZWFjdEVsZW1lbnQ8YW55Pj4gPT4ge1xuICAgICAgICAgIGlmIChcbiAgICAgICAgICAgIHR5cGVvZiBmcmFnbWVudENoaWxkID09PSAnc3RyaW5nJyB8fFxuICAgICAgICAgICAgdHlwZW9mIGZyYWdtZW50Q2hpbGQgPT09ICdudW1iZXInXG4gICAgICAgICAgKSB7XG4gICAgICAgICAgICByZXR1cm4gZnJhZ21lbnRMaXN0XG4gICAgICAgICAgfVxuICAgICAgICAgIHJldHVybiBmcmFnbWVudExpc3QuY29uY2F0KGZyYWdtZW50Q2hpbGQpXG4gICAgICAgIH0sXG4gICAgICAgIFtdXG4gICAgICApXG4gICAgKVxuICB9XG4gIHJldHVybiBsaXN0LmNvbmNhdChjaGlsZClcbn1cblxuY29uc3QgTUVUQVRZUEVTID0gWyduYW1lJywgJ2h0dHBFcXVpdicsICdjaGFyU2V0JywgJ2l0ZW1Qcm9wJ11cblxuLypcbiByZXR1cm5zIGEgZnVuY3Rpb24gZm9yIGZpbHRlcmluZyBoZWFkIGNoaWxkIGVsZW1lbnRzXG4gd2hpY2ggc2hvdWxkbid0IGJlIGR1cGxpY2F0ZWQsIGxpa2UgPHRpdGxlLz5cbiBBbHNvIGFkZHMgc3VwcG9ydCBmb3IgZGVkdXBsaWNhdGVkIGBrZXlgIHByb3BlcnRpZXNcbiovXG5mdW5jdGlvbiB1bmlxdWUoKSB7XG4gIGNvbnN0IGtleXMgPSBuZXcgU2V0KClcbiAgY29uc3QgdGFncyA9IG5ldyBTZXQoKVxuICBjb25zdCBtZXRhVHlwZXMgPSBuZXcgU2V0KClcbiAgY29uc3QgbWV0YUNhdGVnb3JpZXM6IHsgW21ldGF0eXBlOiBzdHJpbmddOiBTZXQ8c3RyaW5nPiB9ID0ge31cblxuICByZXR1cm4gKGg6IFJlYWN0LlJlYWN0RWxlbWVudDxhbnk+KSA9PiB7XG4gICAgbGV0IGlzVW5pcXVlID0gdHJ1ZVxuICAgIGxldCBoYXNLZXkgPSBmYWxzZVxuXG4gICAgaWYgKGgua2V5ICYmIHR5cGVvZiBoLmtleSAhPT0gJ251bWJlcicgJiYgaC5rZXkuaW5kZXhPZignJCcpID4gMCkge1xuICAgICAgaGFzS2V5ID0gdHJ1ZVxuICAgICAgY29uc3Qga2V5ID0gaC5rZXkuc2xpY2UoaC5rZXkuaW5kZXhPZignJCcpICsgMSlcbiAgICAgIGlmIChrZXlzLmhhcyhrZXkpKSB7XG4gICAgICAgIGlzVW5pcXVlID0gZmFsc2VcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGtleXMuYWRkKGtleSlcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgZGVmYXVsdC1jYXNlXG4gICAgc3dpdGNoIChoLnR5cGUpIHtcbiAgICAgIGNhc2UgJ3RpdGxlJzpcbiAgICAgIGNhc2UgJ2Jhc2UnOlxuICAgICAgICBpZiAodGFncy5oYXMoaC50eXBlKSkge1xuICAgICAgICAgIGlzVW5pcXVlID0gZmFsc2VcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICB0YWdzLmFkZChoLnR5cGUpXG4gICAgICAgIH1cbiAgICAgICAgYnJlYWtcbiAgICAgIGNhc2UgJ21ldGEnOlxuICAgICAgICBmb3IgKGxldCBpID0gMCwgbGVuID0gTUVUQVRZUEVTLmxlbmd0aDsgaSA8IGxlbjsgaSsrKSB7XG4gICAgICAgICAgY29uc3QgbWV0YXR5cGUgPSBNRVRBVFlQRVNbaV1cbiAgICAgICAgICBpZiAoIWgucHJvcHMuaGFzT3duUHJvcGVydHkobWV0YXR5cGUpKSBjb250aW51ZVxuXG4gICAgICAgICAgaWYgKG1ldGF0eXBlID09PSAnY2hhclNldCcpIHtcbiAgICAgICAgICAgIGlmIChtZXRhVHlwZXMuaGFzKG1ldGF0eXBlKSkge1xuICAgICAgICAgICAgICBpc1VuaXF1ZSA9IGZhbHNlXG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICBtZXRhVHlwZXMuYWRkKG1ldGF0eXBlKVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBjb25zdCBjYXRlZ29yeSA9IGgucHJvcHNbbWV0YXR5cGVdXG4gICAgICAgICAgICBjb25zdCBjYXRlZ29yaWVzID0gbWV0YUNhdGVnb3JpZXNbbWV0YXR5cGVdIHx8IG5ldyBTZXQoKVxuICAgICAgICAgICAgaWYgKChtZXRhdHlwZSAhPT0gJ25hbWUnIHx8ICFoYXNLZXkpICYmIGNhdGVnb3JpZXMuaGFzKGNhdGVnb3J5KSkge1xuICAgICAgICAgICAgICBpc1VuaXF1ZSA9IGZhbHNlXG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICBjYXRlZ29yaWVzLmFkZChjYXRlZ29yeSlcbiAgICAgICAgICAgICAgbWV0YUNhdGVnb3JpZXNbbWV0YXR5cGVdID0gY2F0ZWdvcmllc1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBicmVha1xuICAgIH1cblxuICAgIHJldHVybiBpc1VuaXF1ZVxuICB9XG59XG5cbi8qKlxuICpcbiAqIEBwYXJhbSBoZWFkQ2hpbGRyZW5FbGVtZW50cyBMaXN0IG9mIGNoaWxkcmVuIG9mIDxIZWFkPlxuICovXG5mdW5jdGlvbiByZWR1Y2VDb21wb25lbnRzPFQgZXh0ZW5kcyB7fSAmIFdpdGhJbkFtcE1vZGU+KFxuICBoZWFkQ2hpbGRyZW5FbGVtZW50czogQXJyYXk8UmVhY3QuUmVhY3RFbGVtZW50PGFueT4+LFxuICBwcm9wczogVFxuKSB7XG4gIGNvbnN0IHsgaW5BbXBNb2RlIH0gPSBwcm9wc1xuICByZXR1cm4gaGVhZENoaWxkcmVuRWxlbWVudHNcbiAgICAucmVkdWNlKG9ubHlSZWFjdEVsZW1lbnQsIFtdKVxuICAgIC5yZXZlcnNlKClcbiAgICAuY29uY2F0KGRlZmF1bHRIZWFkKGluQW1wTW9kZSkucmV2ZXJzZSgpKVxuICAgIC5maWx0ZXIodW5pcXVlKCkpXG4gICAgLnJldmVyc2UoKVxuICAgIC5tYXAoKGM6IFJlYWN0LlJlYWN0RWxlbWVudDxhbnk+LCBpOiBudW1iZXIpID0+IHtcbiAgICAgIGNvbnN0IGtleSA9IGMua2V5IHx8IGlcbiAgICAgIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViA9PT0gJ2RldmVsb3BtZW50Jykge1xuICAgICAgICAvLyBvbWl0IEpTT04tTEQgc3RydWN0dXJlZCBkYXRhIHNuaXBwZXRzIGZyb20gdGhlIHdhcm5pbmdcbiAgICAgICAgaWYgKGMudHlwZSA9PT0gJ3NjcmlwdCcgJiYgYy5wcm9wc1sndHlwZSddICE9PSAnYXBwbGljYXRpb24vbGQranNvbicpIHtcbiAgICAgICAgICBjb25zdCBzcmNNZXNzYWdlID0gYy5wcm9wc1snc3JjJ11cbiAgICAgICAgICAgID8gYDxzY3JpcHQ+IHRhZyB3aXRoIHNyYz1cIiR7Yy5wcm9wc1snc3JjJ119XCJgXG4gICAgICAgICAgICA6IGBpbmxpbmUgPHNjcmlwdD5gXG4gICAgICAgICAgd2Fybk9uY2UoXG4gICAgICAgICAgICBgRG8gbm90IGFkZCA8c2NyaXB0PiB0YWdzIHVzaW5nIG5leHQvaGVhZCAoc2VlICR7c3JjTWVzc2FnZX0pLiBVc2UgbmV4dC9zY3JpcHQgaW5zdGVhZC4gXFxuU2VlIG1vcmUgaW5mbyBoZXJlOiBodHRwczovL25leHRqcy5vcmcvZG9jcy9tZXNzYWdlcy9uby1zY3JpcHQtdGFncy1pbi1oZWFkLWNvbXBvbmVudGBcbiAgICAgICAgICApXG4gICAgICAgIH0gZWxzZSBpZiAoYy50eXBlID09PSAnbGluaycgJiYgYy5wcm9wc1sncmVsJ10gPT09ICdzdHlsZXNoZWV0Jykge1xuICAgICAgICAgIHdhcm5PbmNlKFxuICAgICAgICAgICAgYERvIG5vdCBhZGQgc3R5bGVzaGVldHMgdXNpbmcgbmV4dC9oZWFkIChzZWUgPGxpbmsgcmVsPVwic3R5bGVzaGVldFwiPiB0YWcgd2l0aCBocmVmPVwiJHtjLnByb3BzWydocmVmJ119XCIpLiBVc2UgRG9jdW1lbnQgaW5zdGVhZC4gXFxuU2VlIG1vcmUgaW5mbyBoZXJlOiBodHRwczovL25leHRqcy5vcmcvZG9jcy9tZXNzYWdlcy9uby1zdHlsZXNoZWV0cy1pbi1oZWFkLWNvbXBvbmVudGBcbiAgICAgICAgICApXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIHJldHVybiBSZWFjdC5jbG9uZUVsZW1lbnQoYywgeyBrZXkgfSlcbiAgICB9KVxufVxuXG4vKipcbiAqIFRoaXMgY29tcG9uZW50IGluamVjdHMgZWxlbWVudHMgdG8gYDxoZWFkPmAgb2YgeW91ciBwYWdlLlxuICogVG8gYXZvaWQgZHVwbGljYXRlZCBgdGFnc2AgaW4gYDxoZWFkPmAgeW91IGNhbiB1c2UgdGhlIGBrZXlgIHByb3BlcnR5LCB3aGljaCB3aWxsIG1ha2Ugc3VyZSBldmVyeSB0YWcgaXMgb25seSByZW5kZXJlZCBvbmNlLlxuICovXG5mdW5jdGlvbiBIZWFkKHsgY2hpbGRyZW4gfTogeyBjaGlsZHJlbjogUmVhY3QuUmVhY3ROb2RlIH0pIHtcbiAgY29uc3QgYW1wU3RhdGUgPSB1c2VDb250ZXh0KEFtcFN0YXRlQ29udGV4dClcbiAgY29uc3QgaGVhZE1hbmFnZXIgPSB1c2VDb250ZXh0KEhlYWRNYW5hZ2VyQ29udGV4dClcbiAgcmV0dXJuIChcbiAgICA8RWZmZWN0XG4gICAgICByZWR1Y2VDb21wb25lbnRzVG9TdGF0ZT17cmVkdWNlQ29tcG9uZW50c31cbiAgICAgIGhlYWRNYW5hZ2VyPXtoZWFkTWFuYWdlcn1cbiAgICAgIGluQW1wTW9kZT17aXNJbkFtcE1vZGUoYW1wU3RhdGUpfVxuICAgID5cbiAgICAgIHtjaGlsZHJlbn1cbiAgICA8L0VmZmVjdD5cbiAgKVxufVxuXG5leHBvcnQgZGVmYXVsdCBIZWFkXG4iXSwibmFtZXMiOlsiZGVmYXVsdEhlYWQiLCJpbkFtcE1vZGUiLCJoZWFkIiwibWV0YSIsImNoYXJTZXQiLCJwdXNoIiwibmFtZSIsImNvbnRlbnQiLCJvbmx5UmVhY3RFbGVtZW50IiwibGlzdCIsImNoaWxkIiwidHlwZSIsIlJlYWN0IiwiRnJhZ21lbnQiLCJjb25jYXQiLCJDaGlsZHJlbiIsInRvQXJyYXkiLCJwcm9wcyIsImNoaWxkcmVuIiwicmVkdWNlIiwiZnJhZ21lbnRMaXN0IiwiZnJhZ21lbnRDaGlsZCIsIk1FVEFUWVBFUyIsInVuaXF1ZSIsImtleXMiLCJTZXQiLCJ0YWdzIiwibWV0YVR5cGVzIiwibWV0YUNhdGVnb3JpZXMiLCJoIiwiaXNVbmlxdWUiLCJoYXNLZXkiLCJrZXkiLCJpbmRleE9mIiwic2xpY2UiLCJoYXMiLCJhZGQiLCJpIiwibGVuIiwibGVuZ3RoIiwibWV0YXR5cGUiLCJoYXNPd25Qcm9wZXJ0eSIsImNhdGVnb3J5IiwiY2F0ZWdvcmllcyIsInJlZHVjZUNvbXBvbmVudHMiLCJoZWFkQ2hpbGRyZW5FbGVtZW50cyIsInJldmVyc2UiLCJmaWx0ZXIiLCJtYXAiLCJjIiwicHJvY2VzcyIsImVudiIsIk5PREVfRU5WIiwic3JjTWVzc2FnZSIsIndhcm5PbmNlIiwiY2xvbmVFbGVtZW50IiwiSGVhZCIsImFtcFN0YXRlIiwidXNlQ29udGV4dCIsIkFtcFN0YXRlQ29udGV4dCIsImhlYWRNYW5hZ2VyIiwiSGVhZE1hbmFnZXJDb250ZXh0IiwiRWZmZWN0IiwicmVkdWNlQ29tcG9uZW50c1RvU3RhdGUiLCJpc0luQW1wTW9kZSJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(pages-dir-browser)/./node_modules/next/dist/shared/lib/head.js\n")); - -/***/ }), - -/***/ "(pages-dir-browser)/./node_modules/next/dist/shared/lib/side-effect.js": -/*!**********************************************************!*\ - !*** ./node_modules/next/dist/shared/lib/side-effect.js ***! - \**********************************************************/ -/***/ ((module, exports, __webpack_require__) => { - -"use strict"; -eval(__webpack_require__.ts("\nvar _s = $RefreshSig$();\n\"use strict\";\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"default\", ({\n enumerable: true,\n get: function() {\n return SideEffect;\n }\n}));\nconst _react = __webpack_require__(/*! react */ \"(pages-dir-browser)/./node_modules/react/index.js\");\nconst isServer = \"object\" === 'undefined';\nconst useClientOnlyLayoutEffect = isServer ? ()=>{} : _react.useLayoutEffect;\nconst useClientOnlyEffect = isServer ? ()=>{} : _react.useEffect;\nfunction SideEffect(props) {\n _s();\n const { headManager, reduceComponentsToState } = props;\n function emitChange() {\n if (headManager && headManager.mountedInstances) {\n const headElements = _react.Children.toArray(Array.from(headManager.mountedInstances).filter(Boolean));\n headManager.updateHead(reduceComponentsToState(headElements, props));\n }\n }\n if (isServer) {\n var _headManager_mountedInstances;\n headManager == null ? void 0 : (_headManager_mountedInstances = headManager.mountedInstances) == null ? void 0 : _headManager_mountedInstances.add(props.children);\n emitChange();\n }\n useClientOnlyLayoutEffect({\n \"SideEffect.useClientOnlyLayoutEffect\": ()=>{\n var _headManager_mountedInstances;\n headManager == null ? void 0 : (_headManager_mountedInstances = headManager.mountedInstances) == null ? void 0 : _headManager_mountedInstances.add(props.children);\n return ({\n \"SideEffect.useClientOnlyLayoutEffect\": ()=>{\n var _headManager_mountedInstances;\n headManager == null ? void 0 : (_headManager_mountedInstances = headManager.mountedInstances) == null ? void 0 : _headManager_mountedInstances.delete(props.children);\n }\n })[\"SideEffect.useClientOnlyLayoutEffect\"];\n }\n }[\"SideEffect.useClientOnlyLayoutEffect\"]);\n // We need to call `updateHead` method whenever the `SideEffect` is trigger in all\n // life-cycles: mount, update, unmount. However, if there are multiple `SideEffect`s\n // being rendered, we only trigger the method from the last one.\n // This is ensured by keeping the last unflushed `updateHead` in the `_pendingUpdate`\n // singleton in the layout effect pass, and actually trigger it in the effect pass.\n useClientOnlyLayoutEffect({\n \"SideEffect.useClientOnlyLayoutEffect\": ()=>{\n if (headManager) {\n headManager._pendingUpdate = emitChange;\n }\n return ({\n \"SideEffect.useClientOnlyLayoutEffect\": ()=>{\n if (headManager) {\n headManager._pendingUpdate = emitChange;\n }\n }\n })[\"SideEffect.useClientOnlyLayoutEffect\"];\n }\n }[\"SideEffect.useClientOnlyLayoutEffect\"]);\n useClientOnlyEffect({\n \"SideEffect.useClientOnlyEffect\": ()=>{\n if (headManager && headManager._pendingUpdate) {\n headManager._pendingUpdate();\n headManager._pendingUpdate = null;\n }\n return ({\n \"SideEffect.useClientOnlyEffect\": ()=>{\n if (headManager && headManager._pendingUpdate) {\n headManager._pendingUpdate();\n headManager._pendingUpdate = null;\n }\n }\n })[\"SideEffect.useClientOnlyEffect\"];\n }\n }[\"SideEffect.useClientOnlyEffect\"]);\n return null;\n} //# sourceMappingURL=side-effect.js.map\n_s(SideEffect, \"gHVkikNHNxjVdD11eJBzaqkCiPY=\", false, function() {\n return [\n useClientOnlyLayoutEffect,\n useClientOnlyLayoutEffect,\n useClientOnlyEffect\n ];\n});\n_c = SideEffect;\nvar _c;\n$RefreshReg$(_c, \"SideEffect\");\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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3Qvc2hhcmVkL2xpYi9zaWRlLWVmZmVjdC5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7MkNBb0JBOzs7ZUFBd0JBOzs7bUNBbkJ1QztBQWUvRCxNQUFNQyxXQUFXLE9BQU9DLE1BQVc7QUFDbkMsTUFBTUMsNEJBQTRCRixXQUFXLEtBQU8sSUFBSUcsT0FBQUEsZUFBZTtBQUN2RSxNQUFNQyxzQkFBc0JKLFdBQVcsS0FBTyxJQUFJSyxPQUFBQSxTQUFTO0FBRTVDLG9CQUFvQkMsS0FBc0I7O0lBQ3ZELE1BQU0sRUFBRUMsV0FBVyxFQUFFQyx1QkFBdUIsRUFBRSxHQUFHRjtJQUVqRCxTQUFTRztRQUNQLElBQUlGLGVBQWVBLFlBQVlHLGdCQUFnQixFQUFFO1lBQy9DLE1BQU1DLGVBQWVDLE9BQUFBLFFBQVEsQ0FBQ0MsT0FBTyxDQUNuQ0MsTUFBTUMsSUFBSSxDQUFDUixZQUFZRyxnQkFBZ0IsRUFBMEJNLE1BQU0sQ0FDckVDO1lBR0pWLFlBQVlXLFVBQVUsQ0FBQ1Ysd0JBQXdCRyxjQUFjTDtRQUMvRDtJQUNGO0lBRUEsSUFBSU4sVUFBVTtZQUNaTztRQUFBQSxlQUFBQSxPQUFBQSxLQUFBQSxJQUFBQSxDQUFBQSxnQ0FBQUEsWUFBYUcsZ0JBQUFBLEtBQWdCLGdCQUE3QkgsOEJBQStCWSxHQUFHLENBQUNiLE1BQU1jLFFBQVE7UUFDakRYO0lBQ0Y7O2dEQUUwQjtnQkFDeEJGO1lBQUFBLGVBQUFBLE9BQUFBLEtBQUFBLElBQUFBLENBQUFBLGdDQUFBQSxZQUFhRyxnQkFBQUEsS0FBZ0IsZ0JBQTdCSCw4QkFBK0JZLEdBQUcsQ0FBQ2IsTUFBTWMsUUFBUTtZQUNqRDt3REFBTzt3QkFDTGI7b0JBQUFBLGVBQUFBLE9BQUFBLEtBQUFBLElBQUFBLENBQUFBLGdDQUFBQSxZQUFhRyxnQkFBQUEsS0FBZ0IsZ0JBQTdCSCw4QkFBK0JjLE1BQU0sQ0FBQ2YsTUFBTWMsUUFBUTtnQkFDdEQ7O1FBQ0Y7O0lBRUEsa0ZBQWtGO0lBQ2xGLG9GQUFvRjtJQUNwRixnRUFBZ0U7SUFDaEUscUZBQXFGO0lBQ3JGLG1GQUFtRjs7Z0RBQ3pEO1lBQ3hCLElBQUliLGFBQWE7Z0JBQ2ZBLFlBQVllLGNBQWMsR0FBR2I7WUFDL0I7WUFDQTt3REFBTztvQkFDTCxJQUFJRixhQUFhO3dCQUNmQSxZQUFZZSxjQUFjLEdBQUdiO29CQUMvQjtnQkFDRjs7UUFDRjs7OzBDQUVvQjtZQUNsQixJQUFJRixlQUFlQSxZQUFZZSxjQUFjLEVBQUU7Z0JBQzdDZixZQUFZZSxjQUFjO2dCQUMxQmYsWUFBWWUsY0FBYyxHQUFHO1lBQy9CO1lBQ0E7a0RBQU87b0JBQ0wsSUFBSWYsZUFBZUEsWUFBWWUsY0FBYyxFQUFFO3dCQUM3Q2YsWUFBWWUsY0FBYzt3QkFDMUJmLFlBQVllLGNBQWMsR0FBRztvQkFDL0I7Z0JBQ0Y7O1FBQ0Y7O0lBRUEsT0FBTztBQUNUOzs7UUFyQ0VwQjtRQVlBQTtRQVdBRTs7O0tBMUNzQkwiLCJzb3VyY2VzIjpbIkQ6XFxzcmNcXHNoYXJlZFxcbGliXFxzaWRlLWVmZmVjdC50c3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgUmVhY3QgZnJvbSAncmVhY3QnXG5pbXBvcnQgeyBDaGlsZHJlbiwgdXNlRWZmZWN0LCB1c2VMYXlvdXRFZmZlY3QsIHR5cGUgSlNYIH0gZnJvbSAncmVhY3QnXG5cbnR5cGUgU3RhdGUgPSBKU1guRWxlbWVudFtdIHwgdW5kZWZpbmVkXG5cbmV4cG9ydCB0eXBlIFNpZGVFZmZlY3RQcm9wcyA9IHtcbiAgcmVkdWNlQ29tcG9uZW50c1RvU3RhdGU6IDxUIGV4dGVuZHMge30+KFxuICAgIGNvbXBvbmVudHM6IEFycmF5PFJlYWN0LlJlYWN0RWxlbWVudDxhbnk+PixcbiAgICBwcm9wczogVFxuICApID0+IFN0YXRlXG4gIGhhbmRsZVN0YXRlQ2hhbmdlPzogKHN0YXRlOiBTdGF0ZSkgPT4gdm9pZFxuICBoZWFkTWFuYWdlcjogYW55XG4gIGluQW1wTW9kZT86IGJvb2xlYW5cbiAgY2hpbGRyZW46IFJlYWN0LlJlYWN0Tm9kZVxufVxuXG5jb25zdCBpc1NlcnZlciA9IHR5cGVvZiB3aW5kb3cgPT09ICd1bmRlZmluZWQnXG5jb25zdCB1c2VDbGllbnRPbmx5TGF5b3V0RWZmZWN0ID0gaXNTZXJ2ZXIgPyAoKSA9PiB7fSA6IHVzZUxheW91dEVmZmVjdFxuY29uc3QgdXNlQ2xpZW50T25seUVmZmVjdCA9IGlzU2VydmVyID8gKCkgPT4ge30gOiB1c2VFZmZlY3RcblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gU2lkZUVmZmVjdChwcm9wczogU2lkZUVmZmVjdFByb3BzKSB7XG4gIGNvbnN0IHsgaGVhZE1hbmFnZXIsIHJlZHVjZUNvbXBvbmVudHNUb1N0YXRlIH0gPSBwcm9wc1xuXG4gIGZ1bmN0aW9uIGVtaXRDaGFuZ2UoKSB7XG4gICAgaWYgKGhlYWRNYW5hZ2VyICYmIGhlYWRNYW5hZ2VyLm1vdW50ZWRJbnN0YW5jZXMpIHtcbiAgICAgIGNvbnN0IGhlYWRFbGVtZW50cyA9IENoaWxkcmVuLnRvQXJyYXkoXG4gICAgICAgIEFycmF5LmZyb20oaGVhZE1hbmFnZXIubW91bnRlZEluc3RhbmNlcyBhcyBTZXQ8UmVhY3QuUmVhY3ROb2RlPikuZmlsdGVyKFxuICAgICAgICAgIEJvb2xlYW5cbiAgICAgICAgKVxuICAgICAgKSBhcyBSZWFjdC5SZWFjdEVsZW1lbnRbXVxuICAgICAgaGVhZE1hbmFnZXIudXBkYXRlSGVhZChyZWR1Y2VDb21wb25lbnRzVG9TdGF0ZShoZWFkRWxlbWVudHMsIHByb3BzKSlcbiAgICB9XG4gIH1cblxuICBpZiAoaXNTZXJ2ZXIpIHtcbiAgICBoZWFkTWFuYWdlcj8ubW91bnRlZEluc3RhbmNlcz8uYWRkKHByb3BzLmNoaWxkcmVuKVxuICAgIGVtaXRDaGFuZ2UoKVxuICB9XG5cbiAgdXNlQ2xpZW50T25seUxheW91dEVmZmVjdCgoKSA9PiB7XG4gICAgaGVhZE1hbmFnZXI/Lm1vdW50ZWRJbnN0YW5jZXM/LmFkZChwcm9wcy5jaGlsZHJlbilcbiAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgaGVhZE1hbmFnZXI/Lm1vdW50ZWRJbnN0YW5jZXM/LmRlbGV0ZShwcm9wcy5jaGlsZHJlbilcbiAgICB9XG4gIH0pXG5cbiAgLy8gV2UgbmVlZCB0byBjYWxsIGB1cGRhdGVIZWFkYCBtZXRob2Qgd2hlbmV2ZXIgdGhlIGBTaWRlRWZmZWN0YCBpcyB0cmlnZ2VyIGluIGFsbFxuICAvLyBsaWZlLWN5Y2xlczogbW91bnQsIHVwZGF0ZSwgdW5tb3VudC4gSG93ZXZlciwgaWYgdGhlcmUgYXJlIG11bHRpcGxlIGBTaWRlRWZmZWN0YHNcbiAgLy8gYmVpbmcgcmVuZGVyZWQsIHdlIG9ubHkgdHJpZ2dlciB0aGUgbWV0aG9kIGZyb20gdGhlIGxhc3Qgb25lLlxuICAvLyBUaGlzIGlzIGVuc3VyZWQgYnkga2VlcGluZyB0aGUgbGFzdCB1bmZsdXNoZWQgYHVwZGF0ZUhlYWRgIGluIHRoZSBgX3BlbmRpbmdVcGRhdGVgXG4gIC8vIHNpbmdsZXRvbiBpbiB0aGUgbGF5b3V0IGVmZmVjdCBwYXNzLCBhbmQgYWN0dWFsbHkgdHJpZ2dlciBpdCBpbiB0aGUgZWZmZWN0IHBhc3MuXG4gIHVzZUNsaWVudE9ubHlMYXlvdXRFZmZlY3QoKCkgPT4ge1xuICAgIGlmIChoZWFkTWFuYWdlcikge1xuICAgICAgaGVhZE1hbmFnZXIuX3BlbmRpbmdVcGRhdGUgPSBlbWl0Q2hhbmdlXG4gICAgfVxuICAgIHJldHVybiAoKSA9PiB7XG4gICAgICBpZiAoaGVhZE1hbmFnZXIpIHtcbiAgICAgICAgaGVhZE1hbmFnZXIuX3BlbmRpbmdVcGRhdGUgPSBlbWl0Q2hhbmdlXG4gICAgICB9XG4gICAgfVxuICB9KVxuXG4gIHVzZUNsaWVudE9ubHlFZmZlY3QoKCkgPT4ge1xuICAgIGlmIChoZWFkTWFuYWdlciAmJiBoZWFkTWFuYWdlci5fcGVuZGluZ1VwZGF0ZSkge1xuICAgICAgaGVhZE1hbmFnZXIuX3BlbmRpbmdVcGRhdGUoKVxuICAgICAgaGVhZE1hbmFnZXIuX3BlbmRpbmdVcGRhdGUgPSBudWxsXG4gICAgfVxuICAgIHJldHVybiAoKSA9PiB7XG4gICAgICBpZiAoaGVhZE1hbmFnZXIgJiYgaGVhZE1hbmFnZXIuX3BlbmRpbmdVcGRhdGUpIHtcbiAgICAgICAgaGVhZE1hbmFnZXIuX3BlbmRpbmdVcGRhdGUoKVxuICAgICAgICBoZWFkTWFuYWdlci5fcGVuZGluZ1VwZGF0ZSA9IG51bGxcbiAgICAgIH1cbiAgICB9XG4gIH0pXG5cbiAgcmV0dXJuIG51bGxcbn1cbiJdLCJuYW1lcyI6WyJTaWRlRWZmZWN0IiwiaXNTZXJ2ZXIiLCJ3aW5kb3ciLCJ1c2VDbGllbnRPbmx5TGF5b3V0RWZmZWN0IiwidXNlTGF5b3V0RWZmZWN0IiwidXNlQ2xpZW50T25seUVmZmVjdCIsInVzZUVmZmVjdCIsInByb3BzIiwiaGVhZE1hbmFnZXIiLCJyZWR1Y2VDb21wb25lbnRzVG9TdGF0ZSIsImVtaXRDaGFuZ2UiLCJtb3VudGVkSW5zdGFuY2VzIiwiaGVhZEVsZW1lbnRzIiwiQ2hpbGRyZW4iLCJ0b0FycmF5IiwiQXJyYXkiLCJmcm9tIiwiZmlsdGVyIiwiQm9vbGVhbiIsInVwZGF0ZUhlYWQiLCJhZGQiLCJjaGlsZHJlbiIsImRlbGV0ZSIsIl9wZW5kaW5nVXBkYXRlIl0sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(pages-dir-browser)/./node_modules/next/dist/shared/lib/side-effect.js\n")); - -/***/ }) - -}, -/******/ __webpack_require__ => { // webpackRuntimeModules -/******/ var __webpack_exec__ = (moduleId) => (__webpack_require__(__webpack_require__.s = moduleId)) -/******/ __webpack_require__.O(0, ["pages/_app","main"], () => (__webpack_exec__("(pages-dir-browser)/./node_modules/next/dist/build/webpack/loaders/next-client-pages-loader.js?absolutePagePath=private-next-pages%2F_error&page=%2F_error!"))); -/******/ var __webpack_exports__ = __webpack_require__.O(); -/******/ _N_E = __webpack_exports__; -/******/ } -]); \ No newline at end of file diff --git a/build/static/chunks/pages/index.js b/build/static/chunks/pages/index.js deleted file mode 100644 index 3096e78..0000000 --- a/build/static/chunks/pages/index.js +++ /dev/null @@ -1,528 +0,0 @@ -/* - * ATTENTION: An "eval-source-map" devtool has been used. - * This devtool is neither made for production nor for readable output files. - * It uses "eval()" calls to create a separate source file with attached SourceMaps in the browser devtools. - * If you are trying to read the output file, select a different devtool (https://webpack.js.org/configuration/devtool/) - * or disable the default devtool with "devtool: false". - * If you are looking for production-ready output files, see mode: "production" (https://webpack.js.org/configuration/mode/). - */ -(self["webpackChunk_N_E"] = self["webpackChunk_N_E"] || []).push([["pages/index"],{ - -/***/ "(pages-dir-browser)/./components/CoreAdvantages.tsx": -/*!***************************************!*\ - !*** ./components/CoreAdvantages.tsx ***! - \***************************************/ -/***/ ((module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ CoreAdvantages)\n/* harmony export */ });\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react/jsx-dev-runtime */ \"(pages-dir-browser)/./node_modules/react/jsx-dev-runtime.js\");\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _barrel_optimize_names_Box_Globe_Headphones_ShieldCheck_UserCheck_lucide_react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! __barrel_optimize__?names=Box,Globe,Headphones,ShieldCheck,UserCheck!=!lucide-react */ \"(pages-dir-browser)/__barrel_optimize__?names=Box,Globe,Headphones,ShieldCheck,UserCheck!=!./node_modules/lucide-react/dist/esm/lucide-react.js\");\n\n\nconst advantages = [\n {\n icon: _barrel_optimize_names_Box_Globe_Headphones_ShieldCheck_UserCheck_lucide_react__WEBPACK_IMPORTED_MODULE_1__.ShieldCheck,\n title: '企业级安全防护',\n points: [\n '多层加密与物理隔离,SO 27001 认证',\n '99.99% SLA 可用性保障, 自动容灾备份'\n ]\n },\n {\n icon: _barrel_optimize_names_Box_Globe_Headphones_ShieldCheck_UserCheck_lucide_react__WEBPACK_IMPORTED_MODULE_1__.Box,\n title: '极致性价比',\n points: [\n '年付88折,企业长期合作成本直降12%',\n '免费试用15天+新用户千元代金券'\n ]\n },\n {\n icon: _barrel_optimize_names_Box_Globe_Headphones_ShieldCheck_UserCheck_lucide_react__WEBPACK_IMPORTED_MODULE_1__.Globe,\n title: '无边界技术架构',\n points: [\n '分布式计算节点,全球低延迟访问',\n '弹性伸缩资源满足高并发需求'\n ]\n },\n {\n icon: _barrel_optimize_names_Box_Globe_Headphones_ShieldCheck_UserCheck_lucide_react__WEBPACK_IMPORTED_MODULE_1__.Headphones,\n title: '专家客服团队',\n points: [\n '7×24 小时响应,1 小时紧急介入',\n '中英文支持,覆盖全球主要时区'\n ]\n },\n {\n icon: _barrel_optimize_names_Box_Globe_Headphones_ShieldCheck_UserCheck_lucide_react__WEBPACK_IMPORTED_MODULE_1__.UserCheck,\n title: '智能运维管理',\n points: [\n 'AI 驱动资源调度,节省 15% 成本',\n '一键部署与运维,降低企业 IT 运维成本'\n ]\n }\n];\nfunction CoreAdvantages() {\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"section\", {\n className: \"px-6 py-section bg-background\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"max-w-screen-xl mx-auto\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"h2\", {\n className: \"text-3xl font-semibold text-center mb-section\",\n children: \"核心优势\"\n }, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\CoreAdvantages.tsx\",\n lineNumber: 15,\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-5 gap-6\",\n children: advantages.map((param)=>{\n let { icon: Icon, title, points } = param;\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex flex-col items-center text-center p-4 bg-gray-50 rounded-lg\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(Icon, {\n className: \"h-10 w-10 text-accent mb-3\"\n }, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\CoreAdvantages.tsx\",\n lineNumber: 19,\n columnNumber: 15\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"h3\", {\n className: \"font-medium mb-2\",\n children: title\n }, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\CoreAdvantages.tsx\",\n lineNumber: 20,\n columnNumber: 15\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"ul\", {\n className: \"text-sm leading-relaxed\",\n children: points.map((p, i)=>/*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"li\", {\n children: [\n \"• \",\n p\n ]\n }, i, true, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\CoreAdvantages.tsx\",\n lineNumber: 22,\n columnNumber: 39\n }, this))\n }, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\CoreAdvantages.tsx\",\n lineNumber: 21,\n columnNumber: 15\n }, this)\n ]\n }, title, true, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\CoreAdvantages.tsx\",\n lineNumber: 18,\n columnNumber: 13\n }, this);\n })\n }, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\CoreAdvantages.tsx\",\n lineNumber: 16,\n columnNumber: 9\n }, this)\n ]\n }, void 0, true, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\CoreAdvantages.tsx\",\n lineNumber: 14,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\CoreAdvantages.tsx\",\n lineNumber: 13,\n columnNumber: 5\n }, this);\n}\n_c = CoreAdvantages;\nvar _c;\n$RefreshReg$(_c, \"CoreAdvantages\");\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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1icm93c2VyKS8uL2NvbXBvbmVudHMvQ29yZUFkdmFudGFnZXMudHN4IiwibWFwcGluZ3MiOiI7Ozs7Ozs7O0FBQThFO0FBRTlFLE1BQU1LLGFBQWE7SUFDakI7UUFBRUMsTUFBTU4sdUhBQVdBO1FBQUVPLE9BQU87UUFBV0MsUUFBUTtZQUFDO1lBQXlCO1NBQTJCO0lBQUM7SUFDckc7UUFBRUYsTUFBTUwsK0dBQUdBO1FBQUVNLE9BQU87UUFBU0MsUUFBUTtZQUFDO1lBQXNCO1NBQW1CO0lBQUM7SUFDaEY7UUFBRUYsTUFBTUosaUhBQUtBO1FBQUVLLE9BQU87UUFBV0MsUUFBUTtZQUFDO1lBQW1CO1NBQWdCO0lBQUM7SUFDOUU7UUFBRUYsTUFBTUgsc0hBQVVBO1FBQUVJLE9BQU87UUFBVUMsUUFBUTtZQUFDO1lBQXFCO1NBQWlCO0lBQUM7SUFDckY7UUFBRUYsTUFBTUYscUhBQVNBO1FBQUVHLE9BQU87UUFBVUMsUUFBUTtZQUFDO1lBQXNCO1NBQXVCO0lBQUM7Q0FDNUY7QUFFYyxTQUFTQztJQUN0QixxQkFDRSw4REFBQ0M7UUFBUUMsV0FBVTtrQkFDakIsNEVBQUNDO1lBQUlELFdBQVU7OzhCQUNiLDhEQUFDRTtvQkFBR0YsV0FBVTs4QkFBZ0Q7Ozs7Ozs4QkFDOUQsOERBQUNDO29CQUFJRCxXQUFVOzhCQUNaTixXQUFXUyxHQUFHLENBQUM7NEJBQUMsRUFBRVIsTUFBTVMsSUFBSSxFQUFFUixLQUFLLEVBQUVDLE1BQU0sRUFBRTs2Q0FDNUMsOERBQUNJOzRCQUFnQkQsV0FBVTs7OENBQ3pCLDhEQUFDSTtvQ0FBS0osV0FBVTs7Ozs7OzhDQUNoQiw4REFBQ0s7b0NBQUdMLFdBQVU7OENBQW9CSjs7Ozs7OzhDQUNsQyw4REFBQ1U7b0NBQUdOLFdBQVU7OENBQ1hILE9BQU9NLEdBQUcsQ0FBQyxDQUFDSSxHQUFHQyxrQkFBTSw4REFBQ0M7O2dEQUFXO2dEQUFHRjs7MkNBQU5DOzs7Ozs7Ozs7OzsyQkFKekJaOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBWXRCO0tBbkJ3QkUiLCJzb3VyY2VzIjpbIkQ6XFxkb25neXVuLXByb2plY3RzXFx0d29cXGNvbXBvbmVudHNcXENvcmVBZHZhbnRhZ2VzLnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBTaGllbGRDaGVjaywgQm94LCBHbG9iZSwgSGVhZHBob25lcywgVXNlckNoZWNrIH0gZnJvbSAnbHVjaWRlLXJlYWN0JztcclxuXHJcbmNvbnN0IGFkdmFudGFnZXMgPSBbXHJcbiAgeyBpY29uOiBTaGllbGRDaGVjaywgdGl0bGU6ICfkvIHkuJrnuqflronlhajpmLLmiqQnLCBwb2ludHM6IFsn5aSa5bGC5Yqg5a+G5LiO54mp55CG6ZqU56a777yMU08gMjcwMDEg6K6k6K+BJywgJzk5Ljk5JSBTTEEg5Y+v55So5oCn5L+d6ZqcLCDoh6rliqjlrrnngb7lpIfku70nXSB9LFxyXG4gIHsgaWNvbjogQm94LCB0aXRsZTogJ+aegeiHtOaAp+S7t+avlCcsIHBvaW50czogWyflubTku5g4OOaKmO+8jOS8geS4mumVv+acn+WQiOS9nOaIkOacrOebtOmZjTEyJScsJ+WFjei0ueivleeUqDE15aSpK+aWsOeUqOaIt+WNg+WFg+S7o+mHkeWIuCddIH0sXHJcbiAgeyBpY29uOiBHbG9iZSwgdGl0bGU6ICfml6DovrnnlYzmioDmnK/mnrbmnoQnLCBwb2ludHM6IFsn5YiG5biD5byP6K6h566X6IqC54K577yM5YWo55CD5L2O5bu26L+f6K6/6ZeuJywgJ+W8ueaAp+S8uOe8qei1hOa6kOa7oei2s+mrmOW5tuWPkemcgOaxgiddIH0sXHJcbiAgeyBpY29uOiBIZWFkcGhvbmVzLCB0aXRsZTogJ+S4k+WutuWuouacjeWboumYnycsIHBvaW50czogWyc3w5cyNCDlsI/ml7blk43lupTvvIwxIOWwj+aXtue0p+aApeS7i+WFpScsJ+S4reiLseaWh+aUr+aMge+8jOimhuebluWFqOeQg+S4u+imgeaXtuWMuiddIH0sXHJcbiAgeyBpY29uOiBVc2VyQ2hlY2ssIHRpdGxlOiAn5pm66IO96L+Q57u0566h55CGJywgcG9pbnRzOiBbJ0FJIOmpseWKqOi1hOa6kOiwg+W6pu+8jOiKguecgSAxNSUg5oiQ5pysJywn5LiA6ZSu6YOo572y5LiO6L+Q57u077yM6ZmN5L2O5LyB5LiaIElUIOi/kOe7tOaIkOacrCddIH0sXHJcbl07XHJcblxyXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBDb3JlQWR2YW50YWdlcygpIHtcclxuICByZXR1cm4gKFxyXG4gICAgPHNlY3Rpb24gY2xhc3NOYW1lPVwicHgtNiBweS1zZWN0aW9uIGJnLWJhY2tncm91bmRcIj5cclxuICAgICAgPGRpdiBjbGFzc05hbWU9XCJtYXgtdy1zY3JlZW4teGwgbXgtYXV0b1wiPlxyXG4gICAgICAgIDxoMiBjbGFzc05hbWU9XCJ0ZXh0LTN4bCBmb250LXNlbWlib2xkIHRleHQtY2VudGVyIG1iLXNlY3Rpb25cIj7moLjlv4PkvJjlir88L2gyPlxyXG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZ3JpZCBncmlkLWNvbHMtMSBtZDpncmlkLWNvbHMtNSBnYXAtNlwiPlxyXG4gICAgICAgICAge2FkdmFudGFnZXMubWFwKCh7IGljb246IEljb24sIHRpdGxlLCBwb2ludHMgfSkgPT4gKFxyXG4gICAgICAgICAgICA8ZGl2IGtleT17dGl0bGV9IGNsYXNzTmFtZT1cImZsZXggZmxleC1jb2wgaXRlbXMtY2VudGVyIHRleHQtY2VudGVyIHAtNCBiZy1ncmF5LTUwIHJvdW5kZWQtbGdcIj5cclxuICAgICAgICAgICAgICA8SWNvbiBjbGFzc05hbWU9XCJoLTEwIHctMTAgdGV4dC1hY2NlbnQgbWItM1wiIC8+XHJcbiAgICAgICAgICAgICAgPGgzIGNsYXNzTmFtZT1cImZvbnQtbWVkaXVtIG1iLTJcIj57dGl0bGV9PC9oMz5cclxuICAgICAgICAgICAgICA8dWwgY2xhc3NOYW1lPVwidGV4dC1zbSBsZWFkaW5nLXJlbGF4ZWRcIj5cclxuICAgICAgICAgICAgICAgIHtwb2ludHMubWFwKChwLCBpKSA9PiA8bGkga2V5PXtpfT7igKIge3B9PC9saT4pfVxyXG4gICAgICAgICAgICAgIDwvdWw+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgKSl9XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9zZWN0aW9uPlxyXG4gICk7XHJcbn0iXSwibmFtZXMiOlsiU2hpZWxkQ2hlY2siLCJCb3giLCJHbG9iZSIsIkhlYWRwaG9uZXMiLCJVc2VyQ2hlY2siLCJhZHZhbnRhZ2VzIiwiaWNvbiIsInRpdGxlIiwicG9pbnRzIiwiQ29yZUFkdmFudGFnZXMiLCJzZWN0aW9uIiwiY2xhc3NOYW1lIiwiZGl2IiwiaDIiLCJtYXAiLCJJY29uIiwiaDMiLCJ1bCIsInAiLCJpIiwibGkiXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(pages-dir-browser)/./components/CoreAdvantages.tsx\n")); - -/***/ }), - -/***/ "(pages-dir-browser)/./components/Cta.tsx": -/*!****************************!*\ - !*** ./components/Cta.tsx ***! - \****************************/ -/***/ ((module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ Cta)\n/* harmony export */ });\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react/jsx-dev-runtime */ \"(pages-dir-browser)/./node_modules/react/jsx-dev-runtime.js\");\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _barrel_optimize_names_ArrowRight_MessageCircle_Play_Zap_lucide_react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! __barrel_optimize__?names=ArrowRight,MessageCircle,Play,Zap!=!lucide-react */ \"(pages-dir-browser)/__barrel_optimize__?names=ArrowRight,MessageCircle,Play,Zap!=!./node_modules/lucide-react/dist/esm/lucide-react.js\");\n\n\nfunction Cta() {\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"section\", {\n className: \"px-6 py-20 bg-gradient-to-r from-accent via-blue-600 to-purple-600 text-white relative overflow-hidden\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"absolute inset-0 bg-black/10\"\n }, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\Cta.tsx\",\n lineNumber: 8,\n columnNumber: 7\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"absolute top-0 left-0 w-full h-full\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"absolute top-10 left-10 w-20 h-20 bg-white/10 rounded-full\"\n }, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\Cta.tsx\",\n lineNumber: 10,\n columnNumber: 9\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"absolute top-32 right-20 w-16 h-16 bg-white/5 rounded-full\"\n }, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\Cta.tsx\",\n lineNumber: 11,\n columnNumber: 9\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"absolute bottom-20 left-1/4 w-12 h-12 bg-white/10 rounded-full\"\n }, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\Cta.tsx\",\n lineNumber: 12,\n columnNumber: 9\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"absolute bottom-10 right-10 w-24 h-24 bg-white/5 rounded-full\"\n }, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\Cta.tsx\",\n lineNumber: 13,\n columnNumber: 9\n }, this)\n ]\n }, void 0, true, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\Cta.tsx\",\n lineNumber: 9,\n columnNumber: 7\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"relative max-w-screen-xl mx-auto text-center\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"mb-8\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"h2\", {\n className: \"text-4xl md:text-5xl font-bold mb-6\",\n children: [\n \"准备好加速您的\",\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n className: \"block text-transparent bg-clip-text bg-gradient-to-r from-yellow-300 to-orange-300\",\n children: \"云服务了吗?\"\n }, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\Cta.tsx\",\n lineNumber: 20,\n columnNumber: 13\n }, this)\n ]\n }, void 0, true, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\Cta.tsx\",\n lineNumber: 18,\n columnNumber: 11\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"p\", {\n className: \"text-xl text-blue-100 max-w-3xl mx-auto leading-relaxed\",\n children: \"立即开始免费试用,体验全球领先的云加速服务。 无需信用卡,15 天免费试用,专业技术支持。\"\n }, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\Cta.tsx\",\n lineNumber: 24,\n columnNumber: 11\n }, this)\n ]\n }, void 0, true, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\Cta.tsx\",\n lineNumber: 17,\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 gap-4 justify-center items-center mb-12\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"a\", {\n href: \"/contact\",\n className: \"group bg-white text-accent px-8 py-4 rounded-xl font-semibold text-lg hover:bg-gray-100 transition-all duration-300 shadow-lg hover:shadow-xl flex items-center\",\n children: [\n \"立即免费试用\",\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_barrel_optimize_names_ArrowRight_MessageCircle_Play_Zap_lucide_react__WEBPACK_IMPORTED_MODULE_1__.ArrowRight, {\n className: \"ml-2 w-5 h-5 group-hover:translate-x-1 transition-transform\"\n }, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\Cta.tsx\",\n lineNumber: 36,\n columnNumber: 13\n }, this)\n ]\n }, void 0, true, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\Cta.tsx\",\n lineNumber: 31,\n columnNumber: 11\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"a\", {\n href: \"/pricing\",\n className: \"group border-2 border-white text-white px-8 py-4 rounded-xl font-semibold text-lg hover:bg-white hover:text-accent transition-all duration-300 flex items-center\",\n children: [\n \"查看定价方案\",\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_barrel_optimize_names_ArrowRight_MessageCircle_Play_Zap_lucide_react__WEBPACK_IMPORTED_MODULE_1__.Play, {\n className: \"ml-2 w-5 h-5 group-hover:scale-110 transition-transform\"\n }, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\Cta.tsx\",\n lineNumber: 44,\n columnNumber: 13\n }, this)\n ]\n }, void 0, true, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\Cta.tsx\",\n lineNumber: 39,\n columnNumber: 11\n }, this)\n ]\n }, void 0, true, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\Cta.tsx\",\n lineNumber: 30,\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-3 gap-8 max-w-4xl mx-auto\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex flex-col items-center text-center\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"w-16 h-16 bg-white/20 rounded-full flex items-center justify-center mb-4\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_barrel_optimize_names_ArrowRight_MessageCircle_Play_Zap_lucide_react__WEBPACK_IMPORTED_MODULE_1__.Zap, {\n className: \"w-8 h-8 text-yellow-300\"\n }, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\Cta.tsx\",\n lineNumber: 52,\n columnNumber: 15\n }, this)\n }, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\Cta.tsx\",\n lineNumber: 51,\n columnNumber: 13\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"h3\", {\n className: \"text-lg font-semibold mb-2\",\n children: \"15 天免费试用\"\n }, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\Cta.tsx\",\n lineNumber: 54,\n columnNumber: 13\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"p\", {\n className: \"text-blue-100 text-sm\",\n children: \"无需信用卡,立即开始体验\"\n }, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\Cta.tsx\",\n lineNumber: 55,\n columnNumber: 13\n }, this)\n ]\n }, void 0, true, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\Cta.tsx\",\n lineNumber: 50,\n columnNumber: 11\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex flex-col items-center text-center\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"w-16 h-16 bg-white/20 rounded-full flex items-center justify-center mb-4\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_barrel_optimize_names_ArrowRight_MessageCircle_Play_Zap_lucide_react__WEBPACK_IMPORTED_MODULE_1__.MessageCircle, {\n className: \"w-8 h-8 text-green-300\"\n }, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\Cta.tsx\",\n lineNumber: 60,\n columnNumber: 15\n }, this)\n }, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\Cta.tsx\",\n lineNumber: 59,\n columnNumber: 13\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"h3\", {\n className: \"text-lg font-semibold mb-2\",\n children: \"专业技术支持\"\n }, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\Cta.tsx\",\n lineNumber: 62,\n columnNumber: 13\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"p\", {\n className: \"text-blue-100 text-sm\",\n children: \"7\\xd724 小时专家团队支持\"\n }, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\Cta.tsx\",\n lineNumber: 63,\n columnNumber: 13\n }, this)\n ]\n }, void 0, true, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\Cta.tsx\",\n lineNumber: 58,\n columnNumber: 11\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex flex-col items-center text-center\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"w-16 h-16 bg-white/20 rounded-full flex items-center justify-center mb-4\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_barrel_optimize_names_ArrowRight_MessageCircle_Play_Zap_lucide_react__WEBPACK_IMPORTED_MODULE_1__.ArrowRight, {\n className: \"w-8 h-8 text-purple-300\"\n }, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\Cta.tsx\",\n lineNumber: 68,\n columnNumber: 15\n }, this)\n }, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\Cta.tsx\",\n lineNumber: 67,\n columnNumber: 13\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"h3\", {\n className: \"text-lg font-semibold mb-2\",\n children: \"快速部署\"\n }, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\Cta.tsx\",\n lineNumber: 70,\n columnNumber: 13\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"p\", {\n className: \"text-blue-100 text-sm\",\n children: \"5 分钟内完成配置部署\"\n }, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\Cta.tsx\",\n lineNumber: 71,\n columnNumber: 13\n }, this)\n ]\n }, void 0, true, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\Cta.tsx\",\n lineNumber: 66,\n columnNumber: 11\n }, this)\n ]\n }, void 0, true, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\Cta.tsx\",\n lineNumber: 49,\n columnNumber: 9\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"mt-16 pt-8 border-t border-white/20\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"p\", {\n className: \"text-blue-200 text-sm mb-4\",\n children: \"已有超过 10,000+ 企业选择我们\"\n }, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\Cta.tsx\",\n lineNumber: 77,\n columnNumber: 11\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex flex-wrap justify-center items-center gap-8 opacity-80\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"text-2xl font-bold\",\n children: \"99.9%\"\n }, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\Cta.tsx\",\n lineNumber: 79,\n columnNumber: 13\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"text-gray-300\",\n children: \"•\"\n }, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\Cta.tsx\",\n lineNumber: 80,\n columnNumber: 13\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"text-2xl font-bold\",\n children: \"50+\"\n }, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\Cta.tsx\",\n lineNumber: 81,\n columnNumber: 13\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"text-gray-300\",\n children: \"•\"\n }, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\Cta.tsx\",\n lineNumber: 82,\n columnNumber: 13\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"text-2xl font-bold\",\n children: \"24/7\"\n }, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\Cta.tsx\",\n lineNumber: 83,\n columnNumber: 13\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"text-gray-300\",\n children: \"•\"\n }, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\Cta.tsx\",\n lineNumber: 84,\n columnNumber: 13\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"text-2xl font-bold\",\n children: \"15天\"\n }, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\Cta.tsx\",\n lineNumber: 85,\n columnNumber: 13\n }, this)\n ]\n }, void 0, true, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\Cta.tsx\",\n lineNumber: 78,\n columnNumber: 11\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"p\", {\n className: \"text-blue-200 text-xs mt-2\",\n children: \"可用性保障 • 全球节点 • 技术支持 • 免费试用\"\n }, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\Cta.tsx\",\n lineNumber: 87,\n columnNumber: 11\n }, this)\n ]\n }, void 0, true, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\Cta.tsx\",\n lineNumber: 76,\n columnNumber: 9\n }, this)\n ]\n }, void 0, true, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\Cta.tsx\",\n lineNumber: 16,\n columnNumber: 7\n }, this)\n ]\n }, void 0, true, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\Cta.tsx\",\n lineNumber: 6,\n columnNumber: 5\n }, this);\n}\n_c = Cta;\nvar _c;\n$RefreshReg$(_c, \"Cta\");\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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1icm93c2VyKS8uL2NvbXBvbmVudHMvQ3RhLnRzeCIsIm1hcHBpbmdzIjoiOzs7Ozs7OztBQUNvRTtBQUVyRCxTQUFTSTtJQUN0QixxQkFDRSw4REFBQ0M7UUFBUUMsV0FBVTs7MEJBRWpCLDhEQUFDQztnQkFBSUQsV0FBVTs7Ozs7OzBCQUNmLDhEQUFDQztnQkFBSUQsV0FBVTs7a0NBQ2IsOERBQUNDO3dCQUFJRCxXQUFVOzs7Ozs7a0NBQ2YsOERBQUNDO3dCQUFJRCxXQUFVOzs7Ozs7a0NBQ2YsOERBQUNDO3dCQUFJRCxXQUFVOzs7Ozs7a0NBQ2YsOERBQUNDO3dCQUFJRCxXQUFVOzs7Ozs7Ozs7Ozs7MEJBR2pCLDhEQUFDQztnQkFBSUQsV0FBVTs7a0NBQ2IsOERBQUNDO3dCQUFJRCxXQUFVOzswQ0FDYiw4REFBQ0U7Z0NBQUdGLFdBQVU7O29DQUFzQztrREFFbEQsOERBQUNHO3dDQUFLSCxXQUFVO2tEQUFxRjs7Ozs7Ozs7Ozs7OzBDQUl2Ryw4REFBQ0k7Z0NBQUVKLFdBQVU7MENBQTBEOzs7Ozs7Ozs7Ozs7a0NBTXpFLDhEQUFDQzt3QkFBSUQsV0FBVTs7MENBQ2IsOERBQUNLO2dDQUNDQyxNQUFLO2dDQUNMTixXQUFVOztvQ0FDWDtrREFFQyw4REFBQ04sNkdBQVVBO3dDQUFDTSxXQUFVOzs7Ozs7Ozs7Ozs7MENBR3hCLDhEQUFDSztnQ0FDQ0MsTUFBSztnQ0FDTE4sV0FBVTs7b0NBQ1g7a0RBRUMsOERBQUNMLHVHQUFJQTt3Q0FBQ0ssV0FBVTs7Ozs7Ozs7Ozs7Ozs7Ozs7O2tDQUtwQiw4REFBQ0M7d0JBQUlELFdBQVU7OzBDQUNiLDhEQUFDQztnQ0FBSUQsV0FBVTs7a0RBQ2IsOERBQUNDO3dDQUFJRCxXQUFVO2tEQUNiLDRFQUFDSCxzR0FBR0E7NENBQUNHLFdBQVU7Ozs7Ozs7Ozs7O2tEQUVqQiw4REFBQ087d0NBQUdQLFdBQVU7a0RBQTZCOzs7Ozs7a0RBQzNDLDhEQUFDSTt3Q0FBRUosV0FBVTtrREFBd0I7Ozs7Ozs7Ozs7OzswQ0FHdkMsOERBQUNDO2dDQUFJRCxXQUFVOztrREFDYiw4REFBQ0M7d0NBQUlELFdBQVU7a0RBQ2IsNEVBQUNKLGdIQUFhQTs0Q0FBQ0ksV0FBVTs7Ozs7Ozs7Ozs7a0RBRTNCLDhEQUFDTzt3Q0FBR1AsV0FBVTtrREFBNkI7Ozs7OztrREFDM0MsOERBQUNJO3dDQUFFSixXQUFVO2tEQUF3Qjs7Ozs7Ozs7Ozs7OzBDQUd2Qyw4REFBQ0M7Z0NBQUlELFdBQVU7O2tEQUNiLDhEQUFDQzt3Q0FBSUQsV0FBVTtrREFDYiw0RUFBQ04sNkdBQVVBOzRDQUFDTSxXQUFVOzs7Ozs7Ozs7OztrREFFeEIsOERBQUNPO3dDQUFHUCxXQUFVO2tEQUE2Qjs7Ozs7O2tEQUMzQyw4REFBQ0k7d0NBQUVKLFdBQVU7a0RBQXdCOzs7Ozs7Ozs7Ozs7Ozs7Ozs7a0NBS3pDLDhEQUFDQzt3QkFBSUQsV0FBVTs7MENBQ2IsOERBQUNJO2dDQUFFSixXQUFVOzBDQUE2Qjs7Ozs7OzBDQUMxQyw4REFBQ0M7Z0NBQUlELFdBQVU7O2tEQUNiLDhEQUFDQzt3Q0FBSUQsV0FBVTtrREFBcUI7Ozs7OztrREFDcEMsOERBQUNDO3dDQUFJRCxXQUFVO2tEQUFnQjs7Ozs7O2tEQUMvQiw4REFBQ0M7d0NBQUlELFdBQVU7a0RBQXFCOzs7Ozs7a0RBQ3BDLDhEQUFDQzt3Q0FBSUQsV0FBVTtrREFBZ0I7Ozs7OztrREFDL0IsOERBQUNDO3dDQUFJRCxXQUFVO2tEQUFxQjs7Ozs7O2tEQUNwQyw4REFBQ0M7d0NBQUlELFdBQVU7a0RBQWdCOzs7Ozs7a0RBQy9CLDhEQUFDQzt3Q0FBSUQsV0FBVTtrREFBcUI7Ozs7Ozs7Ozs7OzswQ0FFdEMsOERBQUNJO2dDQUFFSixXQUFVOzBDQUE2Qjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBT3BEO0tBMUZ3QkYiLCJzb3VyY2VzIjpbIkQ6XFxkb25neXVuLXByb2plY3RzXFx0d29cXGNvbXBvbmVudHNcXEN0YS50c3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IExpbmsgZnJvbSBcIm5leHQvbGlua1wiO1xyXG5pbXBvcnQgeyBBcnJvd1JpZ2h0LCBQbGF5LCBNZXNzYWdlQ2lyY2xlLCBaYXAgfSBmcm9tICdsdWNpZGUtcmVhY3QnO1xyXG5cclxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gQ3RhKCkge1xyXG4gIHJldHVybiAoXHJcbiAgICA8c2VjdGlvbiBjbGFzc05hbWU9XCJweC02IHB5LTIwIGJnLWdyYWRpZW50LXRvLXIgZnJvbS1hY2NlbnQgdmlhLWJsdWUtNjAwIHRvLXB1cnBsZS02MDAgdGV4dC13aGl0ZSByZWxhdGl2ZSBvdmVyZmxvdy1oaWRkZW5cIj5cclxuICAgICAgey8qIOiDjOaZr+ijhemlsCAqL31cclxuICAgICAgPGRpdiBjbGFzc05hbWU9XCJhYnNvbHV0ZSBpbnNldC0wIGJnLWJsYWNrLzEwXCI+PC9kaXY+XHJcbiAgICAgIDxkaXYgY2xhc3NOYW1lPVwiYWJzb2x1dGUgdG9wLTAgbGVmdC0wIHctZnVsbCBoLWZ1bGxcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImFic29sdXRlIHRvcC0xMCBsZWZ0LTEwIHctMjAgaC0yMCBiZy13aGl0ZS8xMCByb3VuZGVkLWZ1bGxcIj48L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImFic29sdXRlIHRvcC0zMiByaWdodC0yMCB3LTE2IGgtMTYgYmctd2hpdGUvNSByb3VuZGVkLWZ1bGxcIj48L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImFic29sdXRlIGJvdHRvbS0yMCBsZWZ0LTEvNCB3LTEyIGgtMTIgYmctd2hpdGUvMTAgcm91bmRlZC1mdWxsXCI+PC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJhYnNvbHV0ZSBib3R0b20tMTAgcmlnaHQtMTAgdy0yNCBoLTI0IGJnLXdoaXRlLzUgcm91bmRlZC1mdWxsXCI+PC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICBcclxuICAgICAgPGRpdiBjbGFzc05hbWU9XCJyZWxhdGl2ZSBtYXgtdy1zY3JlZW4teGwgbXgtYXV0byB0ZXh0LWNlbnRlclwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPVwibWItOFwiPlxyXG4gICAgICAgICAgPGgyIGNsYXNzTmFtZT1cInRleHQtNHhsIG1kOnRleHQtNXhsIGZvbnQtYm9sZCBtYi02XCI+XHJcbiAgICAgICAgICAgIOWHhuWkh+WlveWKoOmAn+aCqOeahFxyXG4gICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJibG9jayB0ZXh0LXRyYW5zcGFyZW50IGJnLWNsaXAtdGV4dCBiZy1ncmFkaWVudC10by1yIGZyb20teWVsbG93LTMwMCB0by1vcmFuZ2UtMzAwXCI+XHJcbiAgICAgICAgICAgICAg5LqR5pyN5Yqh5LqG5ZCX77yfXHJcbiAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgIDwvaDI+XHJcbiAgICAgICAgICA8cCBjbGFzc05hbWU9XCJ0ZXh0LXhsIHRleHQtYmx1ZS0xMDAgbWF4LXctM3hsIG14LWF1dG8gbGVhZGluZy1yZWxheGVkXCI+XHJcbiAgICAgICAgICAgIOeri+WNs+W8gOWni+WFjei0ueivleeUqO+8jOS9k+mqjOWFqOeQg+mihuWFiOeahOS6keWKoOmAn+acjeWKoeOAglxyXG4gICAgICAgICAgICDml6DpnIDkv6HnlKjljaHvvIwxNSDlpKnlhY3otLnor5XnlKjvvIzkuJPkuJrmioDmnK/mlK/mjIHjgIJcclxuICAgICAgICAgIDwvcD5cclxuICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJmbGV4IGZsZXgtY29sIHNtOmZsZXgtcm93IGdhcC00IGp1c3RpZnktY2VudGVyIGl0ZW1zLWNlbnRlciBtYi0xMlwiPlxyXG4gICAgICAgICAgPGFcclxuICAgICAgICAgICAgaHJlZj1cIi9jb250YWN0XCJcclxuICAgICAgICAgICAgY2xhc3NOYW1lPVwiZ3JvdXAgYmctd2hpdGUgdGV4dC1hY2NlbnQgcHgtOCBweS00IHJvdW5kZWQteGwgZm9udC1zZW1pYm9sZCB0ZXh0LWxnIGhvdmVyOmJnLWdyYXktMTAwIHRyYW5zaXRpb24tYWxsIGR1cmF0aW9uLTMwMCBzaGFkb3ctbGcgaG92ZXI6c2hhZG93LXhsIGZsZXggaXRlbXMtY2VudGVyXCJcclxuICAgICAgICAgID5cclxuICAgICAgICAgICAg56uL5Y2z5YWN6LS56K+V55SoXHJcbiAgICAgICAgICAgIDxBcnJvd1JpZ2h0IGNsYXNzTmFtZT1cIm1sLTIgdy01IGgtNSBncm91cC1ob3Zlcjp0cmFuc2xhdGUteC0xIHRyYW5zaXRpb24tdHJhbnNmb3JtXCIgLz5cclxuICAgICAgICAgIDwvYT5cclxuICAgICAgICAgIFxyXG4gICAgICAgICAgPGFcclxuICAgICAgICAgICAgaHJlZj1cIi9wcmljaW5nXCJcclxuICAgICAgICAgICAgY2xhc3NOYW1lPVwiZ3JvdXAgYm9yZGVyLTIgYm9yZGVyLXdoaXRlIHRleHQtd2hpdGUgcHgtOCBweS00IHJvdW5kZWQteGwgZm9udC1zZW1pYm9sZCB0ZXh0LWxnIGhvdmVyOmJnLXdoaXRlIGhvdmVyOnRleHQtYWNjZW50IHRyYW5zaXRpb24tYWxsIGR1cmF0aW9uLTMwMCBmbGV4IGl0ZW1zLWNlbnRlclwiXHJcbiAgICAgICAgICA+XHJcbiAgICAgICAgICAgIOafpeeci+WumuS7t+aWueahiFxyXG4gICAgICAgICAgICA8UGxheSBjbGFzc05hbWU9XCJtbC0yIHctNSBoLTUgZ3JvdXAtaG92ZXI6c2NhbGUtMTEwIHRyYW5zaXRpb24tdHJhbnNmb3JtXCIgLz5cclxuICAgICAgICAgIDwvYT5cclxuICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgey8qIOeJueiJsuS6rueCuSAqL31cclxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImdyaWQgZ3JpZC1jb2xzLTEgbWQ6Z3JpZC1jb2xzLTMgZ2FwLTggbWF4LXctNHhsIG14LWF1dG9cIj5cclxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZmxleCBmbGV4LWNvbCBpdGVtcy1jZW50ZXIgdGV4dC1jZW50ZXJcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJ3LTE2IGgtMTYgYmctd2hpdGUvMjAgcm91bmRlZC1mdWxsIGZsZXggaXRlbXMtY2VudGVyIGp1c3RpZnktY2VudGVyIG1iLTRcIj5cclxuICAgICAgICAgICAgICA8WmFwIGNsYXNzTmFtZT1cInctOCBoLTggdGV4dC15ZWxsb3ctMzAwXCIgLz5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxoMyBjbGFzc05hbWU9XCJ0ZXh0LWxnIGZvbnQtc2VtaWJvbGQgbWItMlwiPjE1IOWkqeWFjei0ueivleeUqDwvaDM+XHJcbiAgICAgICAgICAgIDxwIGNsYXNzTmFtZT1cInRleHQtYmx1ZS0xMDAgdGV4dC1zbVwiPuaXoOmcgOS/oeeUqOWNoe+8jOeri+WNs+W8gOWni+S9k+mqjDwvcD5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgXHJcbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImZsZXggZmxleC1jb2wgaXRlbXMtY2VudGVyIHRleHQtY2VudGVyXCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwidy0xNiBoLTE2IGJnLXdoaXRlLzIwIHJvdW5kZWQtZnVsbCBmbGV4IGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNlbnRlciBtYi00XCI+XHJcbiAgICAgICAgICAgICAgPE1lc3NhZ2VDaXJjbGUgY2xhc3NOYW1lPVwidy04IGgtOCB0ZXh0LWdyZWVuLTMwMFwiIC8+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8aDMgY2xhc3NOYW1lPVwidGV4dC1sZyBmb250LXNlbWlib2xkIG1iLTJcIj7kuJPkuJrmioDmnK/mlK/mjIE8L2gzPlxyXG4gICAgICAgICAgICA8cCBjbGFzc05hbWU9XCJ0ZXh0LWJsdWUtMTAwIHRleHQtc21cIj43w5cyNCDlsI/ml7bkuJPlrrblm6LpmJ/mlK/mjIE8L3A+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIFxyXG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJmbGV4IGZsZXgtY29sIGl0ZW1zLWNlbnRlciB0ZXh0LWNlbnRlclwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInctMTYgaC0xNiBiZy13aGl0ZS8yMCByb3VuZGVkLWZ1bGwgZmxleCBpdGVtcy1jZW50ZXIganVzdGlmeS1jZW50ZXIgbWItNFwiPlxyXG4gICAgICAgICAgICAgIDxBcnJvd1JpZ2h0IGNsYXNzTmFtZT1cInctOCBoLTggdGV4dC1wdXJwbGUtMzAwXCIgLz5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxoMyBjbGFzc05hbWU9XCJ0ZXh0LWxnIGZvbnQtc2VtaWJvbGQgbWItMlwiPuW/q+mAn+mDqOe9sjwvaDM+XHJcbiAgICAgICAgICAgIDxwIGNsYXNzTmFtZT1cInRleHQtYmx1ZS0xMDAgdGV4dC1zbVwiPjUg5YiG6ZKf5YaF5a6M5oiQ6YWN572u6YOo572yPC9wPlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgIHsvKiDkv6Hku7vmjIfmoIcgKi99XHJcbiAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJtdC0xNiBwdC04IGJvcmRlci10IGJvcmRlci13aGl0ZS8yMFwiPlxyXG4gICAgICAgICAgPHAgY2xhc3NOYW1lPVwidGV4dC1ibHVlLTIwMCB0ZXh0LXNtIG1iLTRcIj7lt7LmnInotoXov4cgMTAsMDAwKyDkvIHkuJrpgInmi6nmiJHku6w8L3A+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImZsZXggZmxleC13cmFwIGp1c3RpZnktY2VudGVyIGl0ZW1zLWNlbnRlciBnYXAtOCBvcGFjaXR5LTgwXCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwidGV4dC0yeGwgZm9udC1ib2xkXCI+OTkuOSU8L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJ0ZXh0LWdyYXktMzAwXCI+4oCiPC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwidGV4dC0yeGwgZm9udC1ib2xkXCI+NTArPC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwidGV4dC1ncmF5LTMwMFwiPuKAojwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInRleHQtMnhsIGZvbnQtYm9sZFwiPjI0Lzc8L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJ0ZXh0LWdyYXktMzAwXCI+4oCiPC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwidGV4dC0yeGwgZm9udC1ib2xkXCI+MTXlpKk8L2Rpdj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPHAgY2xhc3NOYW1lPVwidGV4dC1ibHVlLTIwMCB0ZXh0LXhzIG10LTJcIj5cclxuICAgICAgICAgICAg5Y+v55So5oCn5L+d6ZqcIOKAoiDlhajnkIPoioLngrkg4oCiIOaKgOacr+aUr+aMgSDigKIg5YWN6LS56K+V55SoXHJcbiAgICAgICAgICA8L3A+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9zZWN0aW9uPlxyXG4gICk7XHJcbn0iXSwibmFtZXMiOlsiQXJyb3dSaWdodCIsIlBsYXkiLCJNZXNzYWdlQ2lyY2xlIiwiWmFwIiwiQ3RhIiwic2VjdGlvbiIsImNsYXNzTmFtZSIsImRpdiIsImgyIiwic3BhbiIsInAiLCJhIiwiaHJlZiIsImgzIl0sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(pages-dir-browser)/./components/Cta.tsx\n")); - -/***/ }), - -/***/ "(pages-dir-browser)/./components/Features.tsx": -/*!*********************************!*\ - !*** ./components/Features.tsx ***! - \*********************************/ -/***/ ((module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ Features)\n/* harmony export */ });\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react/jsx-dev-runtime */ \"(pages-dir-browser)/./node_modules/react/jsx-dev-runtime.js\");\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _barrel_optimize_names_BarChart_CheckCircle_Clock_Globe_Repeat_Shield_Users_Zap_lucide_react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! __barrel_optimize__?names=BarChart,CheckCircle,Clock,Globe,Repeat,Shield,Users,Zap!=!lucide-react */ \"(pages-dir-browser)/__barrel_optimize__?names=BarChart,CheckCircle,Clock,Globe,Repeat,Shield,Users,Zap!=!./node_modules/lucide-react/dist/esm/lucide-react.js\");\n\n\nfunction Features() {\n const features = [\n {\n icon: _barrel_optimize_names_BarChart_CheckCircle_Clock_Globe_Repeat_Shield_Users_Zap_lucide_react__WEBPACK_IMPORTED_MODULE_1__.Globe,\n title: '全球节点网络',\n description: '覆盖全球主要地区的分布式节点,确保就近访问',\n details: [\n '50+ 全球节点',\n '平均延迟 < 50ms',\n '99.9% 可用性'\n ]\n },\n {\n icon: _barrel_optimize_names_BarChart_CheckCircle_Clock_Globe_Repeat_Shield_Users_Zap_lucide_react__WEBPACK_IMPORTED_MODULE_1__.Repeat,\n title: '智能路由优化',\n description: '基于实时网络状况,自动选择最优传输路径',\n details: [\n '动态路径选择',\n '负载均衡',\n '故障自动切换'\n ]\n },\n {\n icon: _barrel_optimize_names_BarChart_CheckCircle_Clock_Globe_Repeat_Shield_Users_Zap_lucide_react__WEBPACK_IMPORTED_MODULE_1__.BarChart,\n title: '实时监控面板',\n description: '全面的性能监控和数据分析,让您随时掌握服务状态',\n details: [\n '实时性能指标',\n '详细使用报告',\n '自定义告警'\n ]\n },\n {\n icon: _barrel_optimize_names_BarChart_CheckCircle_Clock_Globe_Repeat_Shield_Users_Zap_lucide_react__WEBPACK_IMPORTED_MODULE_1__.Shield,\n title: '企业级安全',\n description: '多层安全防护,保障数据传输和存储安全',\n details: [\n '端到端加密',\n 'DDoS 防护',\n '安全审计'\n ]\n },\n {\n icon: _barrel_optimize_names_BarChart_CheckCircle_Clock_Globe_Repeat_Shield_Users_Zap_lucide_react__WEBPACK_IMPORTED_MODULE_1__.Zap,\n title: '极速性能',\n description: '优化的传输协议和缓存机制,提供极致访问速度',\n details: [\n 'HTTP/3 支持',\n '智能缓存',\n '压缩优化'\n ]\n },\n {\n icon: _barrel_optimize_names_BarChart_CheckCircle_Clock_Globe_Repeat_Shield_Users_Zap_lucide_react__WEBPACK_IMPORTED_MODULE_1__.Users,\n title: '团队协作',\n description: '完善的权限管理和团队协作功能',\n details: [\n '多用户管理',\n '权限控制',\n '操作日志'\n ]\n },\n {\n icon: _barrel_optimize_names_BarChart_CheckCircle_Clock_Globe_Repeat_Shield_Users_Zap_lucide_react__WEBPACK_IMPORTED_MODULE_1__.Clock,\n title: '7×24 支持',\n description: '全天候技术支持,确保您的业务稳定运行',\n details: [\n '即时响应',\n '专业技术团队',\n '多渠道支持'\n ]\n },\n {\n icon: _barrel_optimize_names_BarChart_CheckCircle_Clock_Globe_Repeat_Shield_Users_Zap_lucide_react__WEBPACK_IMPORTED_MODULE_1__.CheckCircle,\n title: 'SLA 保障',\n description: '严格的服务等级协议,确保服务质量',\n details: [\n '99.9% 可用性',\n '性能保证',\n '赔偿机制'\n ]\n }\n ];\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"section\", {\n id: \"features\",\n className: \"px-6 py-16\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"max-w-screen-xl mx-auto\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"text-center mb-16\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"h2\", {\n className: \"text-3xl md:text-4xl font-bold text-primary mb-4\",\n children: \"核心产品特性\"\n }, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\Features.tsx\",\n lineNumber: 59,\n columnNumber: 11\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"p\", {\n className: \"text-xl text-gray-600 max-w-3xl mx-auto\",\n children: \"我们提供业界领先的云加速服务,通过先进的技术架构和智能算法, 为您的业务提供稳定、安全、高效的技术解决方案\"\n }, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\Features.tsx\",\n lineNumber: 62,\n columnNumber: 11\n }, this)\n ]\n }, void 0, true, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\Features.tsx\",\n lineNumber: 58,\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-4 gap-8\",\n children: features.map((feature, index)=>/*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"group bg-white p-6 rounded-xl shadow-md hover:shadow-xl transition-all duration-300 border border-gray-100 hover:border-accent/20\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex flex-col items-center text-center\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"w-16 h-16 bg-gradient-to-br from-accent/10 to-accent/20 rounded-xl flex items-center justify-center mb-4 group-hover:scale-110 transition-transform duration-300\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(feature.icon, {\n className: \"h-8 w-8 text-accent\"\n }, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\Features.tsx\",\n lineNumber: 76,\n columnNumber: 19\n }, this)\n }, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\Features.tsx\",\n lineNumber: 75,\n columnNumber: 17\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"h3\", {\n className: \"text-xl font-semibold mb-3 text-primary group-hover:text-accent transition-colors\",\n children: feature.title\n }, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\Features.tsx\",\n lineNumber: 78,\n columnNumber: 17\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"p\", {\n className: \"text-gray-600 mb-4 leading-relaxed\",\n children: feature.description\n }, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\Features.tsx\",\n lineNumber: 81,\n columnNumber: 17\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"ul\", {\n className: \"space-y-2 text-sm text-gray-500\",\n children: feature.details.map((detail, idx)=>/*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"li\", {\n className: \"flex items-center\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_barrel_optimize_names_BarChart_CheckCircle_Clock_Globe_Repeat_Shield_Users_Zap_lucide_react__WEBPACK_IMPORTED_MODULE_1__.CheckCircle, {\n className: \"h-4 w-4 text-green-500 mr-2 flex-shrink-0\"\n }, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\Features.tsx\",\n lineNumber: 87,\n columnNumber: 23\n }, this),\n detail\n ]\n }, idx, true, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\Features.tsx\",\n lineNumber: 86,\n columnNumber: 21\n }, this))\n }, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\Features.tsx\",\n lineNumber: 84,\n columnNumber: 17\n }, this)\n ]\n }, void 0, true, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\Features.tsx\",\n lineNumber: 74,\n columnNumber: 15\n }, this)\n }, index, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\Features.tsx\",\n lineNumber: 70,\n columnNumber: 13\n }, this))\n }, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\Features.tsx\",\n lineNumber: 68,\n columnNumber: 9\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"mt-20 bg-gradient-to-r from-blue-50 to-indigo-50 rounded-2xl p-8 md:p-12\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"text-center mb-8\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"h3\", {\n className: \"text-2xl md:text-3xl font-bold text-primary mb-4\",\n children: \"技术架构优势\"\n }, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\Features.tsx\",\n lineNumber: 100,\n columnNumber: 13\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"p\", {\n className: \"text-gray-600 max-w-2xl mx-auto\",\n children: \"基于云原生架构,采用微服务设计,确保系统的高可用性和可扩展性\"\n }, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\Features.tsx\",\n lineNumber: 103,\n columnNumber: 13\n }, this)\n ]\n }, void 0, true, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\Features.tsx\",\n lineNumber: 99,\n columnNumber: 11\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"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: \"text-center\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"w-20 h-20 bg-white rounded-full flex items-center justify-center mx-auto mb-4 shadow-lg\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n className: \"text-2xl font-bold text-accent\",\n children: \"99.9%\"\n }, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\Features.tsx\",\n lineNumber: 111,\n columnNumber: 17\n }, this)\n }, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\Features.tsx\",\n lineNumber: 110,\n columnNumber: 15\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"h4\", {\n className: \"text-lg font-semibold mb-2\",\n children: \"服务可用性\"\n }, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\Features.tsx\",\n lineNumber: 113,\n columnNumber: 15\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"p\", {\n className: \"text-gray-600 text-sm\",\n children: \"企业级 SLA 保障\"\n }, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\Features.tsx\",\n lineNumber: 114,\n columnNumber: 15\n }, this)\n ]\n }, void 0, true, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\Features.tsx\",\n lineNumber: 109,\n columnNumber: 13\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"text-center\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"w-20 h-20 bg-white rounded-full flex items-center justify-center mx-auto mb-4 shadow-lg\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n className: \"text-2xl font-bold text-accent\",\n children: \"< 50ms\"\n }, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\Features.tsx\",\n lineNumber: 119,\n columnNumber: 17\n }, this)\n }, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\Features.tsx\",\n lineNumber: 118,\n columnNumber: 15\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"h4\", {\n className: \"text-lg font-semibold mb-2\",\n children: \"平均延迟\"\n }, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\Features.tsx\",\n lineNumber: 121,\n columnNumber: 15\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"p\", {\n className: \"text-gray-600 text-sm\",\n children: \"全球节点优化\"\n }, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\Features.tsx\",\n lineNumber: 122,\n columnNumber: 15\n }, this)\n ]\n }, void 0, true, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\Features.tsx\",\n lineNumber: 117,\n columnNumber: 13\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"text-center\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"w-20 h-20 bg-white rounded-full flex items-center justify-center mx-auto mb-4 shadow-lg\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n className: \"text-2xl font-bold text-accent\",\n children: \"50+\"\n }, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\Features.tsx\",\n lineNumber: 127,\n columnNumber: 17\n }, this)\n }, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\Features.tsx\",\n lineNumber: 126,\n columnNumber: 15\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"h4\", {\n className: \"text-lg font-semibold mb-2\",\n children: \"全球节点\"\n }, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\Features.tsx\",\n lineNumber: 129,\n columnNumber: 15\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"p\", {\n className: \"text-gray-600 text-sm\",\n children: \"覆盖主要地区\"\n }, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\Features.tsx\",\n lineNumber: 130,\n columnNumber: 15\n }, this)\n ]\n }, void 0, true, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\Features.tsx\",\n lineNumber: 125,\n columnNumber: 13\n }, this)\n ]\n }, void 0, true, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\Features.tsx\",\n lineNumber: 108,\n columnNumber: 11\n }, this)\n ]\n }, void 0, true, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\Features.tsx\",\n lineNumber: 98,\n columnNumber: 9\n }, this)\n ]\n }, void 0, true, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\Features.tsx\",\n lineNumber: 57,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\Features.tsx\",\n lineNumber: 56,\n columnNumber: 5\n }, this);\n}\n_c = Features;\nvar _c;\n$RefreshReg$(_c, \"Features\");\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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1icm93c2VyKS8uL2NvbXBvbmVudHMvRmVhdHVyZXMudHN4IiwibWFwcGluZ3MiOiI7Ozs7Ozs7O0FBQStGO0FBRWhGLFNBQVNRO0lBQ3RCLE1BQU1DLFdBQVc7UUFDZjtZQUNFQyxNQUFNViwrSEFBS0E7WUFDWFcsT0FBTztZQUNQQyxhQUFhO1lBQ2JDLFNBQVM7Z0JBQUM7Z0JBQVk7Z0JBQWtCO2FBQVk7UUFDdEQ7UUFDQTtZQUNFSCxNQUFNVCxnSUFBTUE7WUFDWlUsT0FBTztZQUNQQyxhQUFhO1lBQ2JDLFNBQVM7Z0JBQUM7Z0JBQVU7Z0JBQVE7YUFBUztRQUN2QztRQUNBO1lBQ0VILE1BQU1SLGtJQUFRQTtZQUNkUyxPQUFPO1lBQ1BDLGFBQWE7WUFDYkMsU0FBUztnQkFBQztnQkFBVTtnQkFBVTthQUFRO1FBQ3hDO1FBQ0E7WUFDRUgsTUFBTVAsZ0lBQU1BO1lBQ1pRLE9BQU87WUFDUEMsYUFBYTtZQUNiQyxTQUFTO2dCQUFDO2dCQUFTO2dCQUFXO2FBQU87UUFDdkM7UUFDQTtZQUNFSCxNQUFNTiw2SEFBR0E7WUFDVE8sT0FBTztZQUNQQyxhQUFhO1lBQ2JDLFNBQVM7Z0JBQUM7Z0JBQWE7Z0JBQVE7YUFBTztRQUN4QztRQUNBO1lBQ0VILE1BQU1MLCtIQUFLQTtZQUNYTSxPQUFPO1lBQ1BDLGFBQWE7WUFDYkMsU0FBUztnQkFBQztnQkFBUztnQkFBUTthQUFPO1FBQ3BDO1FBQ0E7WUFDRUgsTUFBTUosK0hBQUtBO1lBQ1hLLE9BQU87WUFDUEMsYUFBYTtZQUNiQyxTQUFTO2dCQUFDO2dCQUFRO2dCQUFVO2FBQVE7UUFDdEM7UUFDQTtZQUNFSCxNQUFNSCxxSUFBV0E7WUFDakJJLE9BQU87WUFDUEMsYUFBYTtZQUNiQyxTQUFTO2dCQUFDO2dCQUFhO2dCQUFRO2FBQU87UUFDeEM7S0FDRDtJQUVELHFCQUNFLDhEQUFDQztRQUFRQyxJQUFHO1FBQVdDLFdBQVU7a0JBQy9CLDRFQUFDQztZQUFJRCxXQUFVOzs4QkFDYiw4REFBQ0M7b0JBQUlELFdBQVU7O3NDQUNiLDhEQUFDRTs0QkFBR0YsV0FBVTtzQ0FBbUQ7Ozs7OztzQ0FHakUsOERBQUNHOzRCQUFFSCxXQUFVO3NDQUEwQzs7Ozs7Ozs7Ozs7OzhCQU16RCw4REFBQ0M7b0JBQUlELFdBQVU7OEJBQ1pQLFNBQVNXLEdBQUcsQ0FBQyxDQUFDQyxTQUFTQyxzQkFDdEIsOERBQUNMOzRCQUVDRCxXQUFVO3NDQUVWLDRFQUFDQztnQ0FBSUQsV0FBVTs7a0RBQ2IsOERBQUNDO3dDQUFJRCxXQUFVO2tEQUNiLDRFQUFDSyxRQUFRWCxJQUFJOzRDQUFDTSxXQUFVOzs7Ozs7Ozs7OztrREFFMUIsOERBQUNPO3dDQUFHUCxXQUFVO2tEQUNYSyxRQUFRVixLQUFLOzs7Ozs7a0RBRWhCLDhEQUFDUTt3Q0FBRUgsV0FBVTtrREFDVkssUUFBUVQsV0FBVzs7Ozs7O2tEQUV0Qiw4REFBQ1k7d0NBQUdSLFdBQVU7a0RBQ1hLLFFBQVFSLE9BQU8sQ0FBQ08sR0FBRyxDQUFDLENBQUNLLFFBQVFDLG9CQUM1Qiw4REFBQ0M7Z0RBQWFYLFdBQVU7O2tFQUN0Qiw4REFBQ1QscUlBQVdBO3dEQUFDUyxXQUFVOzs7Ozs7b0RBQ3RCUzs7K0NBRk1DOzs7Ozs7Ozs7Ozs7Ozs7OzJCQWZWSjs7Ozs7Ozs7Ozs4QkEyQlgsOERBQUNMO29CQUFJRCxXQUFVOztzQ0FDYiw4REFBQ0M7NEJBQUlELFdBQVU7OzhDQUNiLDhEQUFDTztvQ0FBR1AsV0FBVTs4Q0FBbUQ7Ozs7Ozs4Q0FHakUsOERBQUNHO29DQUFFSCxXQUFVOzhDQUFrQzs7Ozs7Ozs7Ozs7O3NDQUtqRCw4REFBQ0M7NEJBQUlELFdBQVU7OzhDQUNiLDhEQUFDQztvQ0FBSUQsV0FBVTs7c0RBQ2IsOERBQUNDOzRDQUFJRCxXQUFVO3NEQUNiLDRFQUFDWTtnREFBS1osV0FBVTswREFBaUM7Ozs7Ozs7Ozs7O3NEQUVuRCw4REFBQ2E7NENBQUdiLFdBQVU7c0RBQTZCOzs7Ozs7c0RBQzNDLDhEQUFDRzs0Q0FBRUgsV0FBVTtzREFBd0I7Ozs7Ozs7Ozs7Ozs4Q0FHdkMsOERBQUNDO29DQUFJRCxXQUFVOztzREFDYiw4REFBQ0M7NENBQUlELFdBQVU7c0RBQ2IsNEVBQUNZO2dEQUFLWixXQUFVOzBEQUFpQzs7Ozs7Ozs7Ozs7c0RBRW5ELDhEQUFDYTs0Q0FBR2IsV0FBVTtzREFBNkI7Ozs7OztzREFDM0MsOERBQUNHOzRDQUFFSCxXQUFVO3NEQUF3Qjs7Ozs7Ozs7Ozs7OzhDQUd2Qyw4REFBQ0M7b0NBQUlELFdBQVU7O3NEQUNiLDhEQUFDQzs0Q0FBSUQsV0FBVTtzREFDYiw0RUFBQ1k7Z0RBQUtaLFdBQVU7MERBQWlDOzs7Ozs7Ozs7OztzREFFbkQsOERBQUNhOzRDQUFHYixXQUFVO3NEQUE2Qjs7Ozs7O3NEQUMzQyw4REFBQ0c7NENBQUVILFdBQVU7c0RBQXdCOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQU9uRDtLQXRJd0JSIiwic291cmNlcyI6WyJEOlxcZG9uZ3l1bi1wcm9qZWN0c1xcdHdvXFxjb21wb25lbnRzXFxGZWF0dXJlcy50c3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgR2xvYmUsIFJlcGVhdCwgQmFyQ2hhcnQsIFNoaWVsZCwgWmFwLCBVc2VycywgQ2xvY2ssIENoZWNrQ2lyY2xlIH0gZnJvbSAnbHVjaWRlLXJlYWN0JztcclxuXHJcbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIEZlYXR1cmVzKCkge1xyXG4gIGNvbnN0IGZlYXR1cmVzID0gW1xyXG4gICAge1xyXG4gICAgICBpY29uOiBHbG9iZSxcclxuICAgICAgdGl0bGU6ICflhajnkIPoioLngrnnvZHnu5wnLFxyXG4gICAgICBkZXNjcmlwdGlvbjogJ+imhuebluWFqOeQg+S4u+imgeWcsOWMuueahOWIhuW4g+W8j+iKgueCue+8jOehruS/neWwsei/keiuv+mXricsXHJcbiAgICAgIGRldGFpbHM6IFsnNTArIOWFqOeQg+iKgueCuScsICflubPlnYflu7bov58gJmx0OyA1MG1zJywgJzk5LjklIOWPr+eUqOaApyddXHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICBpY29uOiBSZXBlYXQsXHJcbiAgICAgIHRpdGxlOiAn5pm66IO96Lev55Sx5LyY5YyWJyxcclxuICAgICAgZGVzY3JpcHRpb246ICfln7rkuo7lrp7ml7bnvZHnu5znirblhrXvvIzoh6rliqjpgInmi6nmnIDkvJjkvKDovpPot6/lvoQnLFxyXG4gICAgICBkZXRhaWxzOiBbJ+WKqOaAgei3r+W+hOmAieaLqScsICfotJ/ovb3lnYfooaEnLCAn5pWF6Zqc6Ieq5Yqo5YiH5o2iJ11cclxuICAgIH0sXHJcbiAgICB7XHJcbiAgICAgIGljb246IEJhckNoYXJ0LFxyXG4gICAgICB0aXRsZTogJ+WunuaXtuebkeaOp+mdouadvycsXHJcbiAgICAgIGRlc2NyaXB0aW9uOiAn5YWo6Z2i55qE5oCn6IO955uR5o6n5ZKM5pWw5o2u5YiG5p6Q77yM6K6p5oKo6ZqP5pe25o6M5o+h5pyN5Yqh54q25oCBJyxcclxuICAgICAgZGV0YWlsczogWyflrp7ml7bmgKfog73mjIfmoIcnLCAn6K+m57uG5L2/55So5oql5ZGKJywgJ+iHquWumuS5ieWRiuitpiddXHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICBpY29uOiBTaGllbGQsXHJcbiAgICAgIHRpdGxlOiAn5LyB5Lia57qn5a6J5YWoJyxcclxuICAgICAgZGVzY3JpcHRpb246ICflpJrlsYLlronlhajpmLLmiqTvvIzkv53pmpzmlbDmja7kvKDovpPlkozlrZjlgqjlronlhagnLFxyXG4gICAgICBkZXRhaWxzOiBbJ+err+WIsOerr+WKoOWvhicsICdERG9TIOmYsuaKpCcsICflronlhajlrqHorqEnXVxyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgaWNvbjogWmFwLFxyXG4gICAgICB0aXRsZTogJ+aegemAn+aAp+iDvScsXHJcbiAgICAgIGRlc2NyaXB0aW9uOiAn5LyY5YyW55qE5Lyg6L6T5Y2P6K6u5ZKM57yT5a2Y5py65Yi277yM5o+Q5L6b5p6B6Ie06K6/6Zeu6YCf5bqmJyxcclxuICAgICAgZGV0YWlsczogWydIVFRQLzMg5pSv5oyBJywgJ+aZuuiDvee8k+WtmCcsICfljovnvKnkvJjljJYnXVxyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgaWNvbjogVXNlcnMsXHJcbiAgICAgIHRpdGxlOiAn5Zui6Zif5Y2P5L2cJyxcclxuICAgICAgZGVzY3JpcHRpb246ICflrozlloTnmoTmnYPpmZDnrqHnkIblkozlm6LpmJ/ljY/kvZzlip/og70nLFxyXG4gICAgICBkZXRhaWxzOiBbJ+WkmueUqOaIt+euoeeQhicsICfmnYPpmZDmjqfliLYnLCAn5pON5L2c5pel5b+XJ11cclxuICAgIH0sXHJcbiAgICB7XHJcbiAgICAgIGljb246IENsb2NrLFxyXG4gICAgICB0aXRsZTogJzfDlzI0IOaUr+aMgScsXHJcbiAgICAgIGRlc2NyaXB0aW9uOiAn5YWo5aSp5YCZ5oqA5pyv5pSv5oyB77yM56Gu5L+d5oKo55qE5Lia5Yqh56iz5a6a6L+Q6KGMJyxcclxuICAgICAgZGV0YWlsczogWyfljbPml7blk43lupQnLCAn5LiT5Lia5oqA5pyv5Zui6ZifJywgJ+Wkmua4oOmBk+aUr+aMgSddXHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICBpY29uOiBDaGVja0NpcmNsZSxcclxuICAgICAgdGl0bGU6ICdTTEEg5L+d6ZqcJyxcclxuICAgICAgZGVzY3JpcHRpb246ICfkuKXmoLznmoTmnI3liqHnrYnnuqfljY/orq7vvIznoa7kv53mnI3liqHotKjph48nLFxyXG4gICAgICBkZXRhaWxzOiBbJzk5LjklIOWPr+eUqOaApycsICfmgKfog73kv53or4EnLCAn6LWU5YG/5py65Yi2J11cclxuICAgIH1cclxuICBdO1xyXG5cclxuICByZXR1cm4gKFxyXG4gICAgPHNlY3Rpb24gaWQ9XCJmZWF0dXJlc1wiIGNsYXNzTmFtZT1cInB4LTYgcHktMTZcIj5cclxuICAgICAgPGRpdiBjbGFzc05hbWU9XCJtYXgtdy1zY3JlZW4teGwgbXgtYXV0b1wiPlxyXG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPVwidGV4dC1jZW50ZXIgbWItMTZcIj5cclxuICAgICAgICAgIDxoMiBjbGFzc05hbWU9XCJ0ZXh0LTN4bCBtZDp0ZXh0LTR4bCBmb250LWJvbGQgdGV4dC1wcmltYXJ5IG1iLTRcIj5cclxuICAgICAgICAgICAg5qC45b+D5Lqn5ZOB54m55oCnXHJcbiAgICAgICAgICA8L2gyPlxyXG4gICAgICAgICAgPHAgY2xhc3NOYW1lPVwidGV4dC14bCB0ZXh0LWdyYXktNjAwIG1heC13LTN4bCBteC1hdXRvXCI+XHJcbiAgICAgICAgICAgIOaIkeS7rOaPkOS+m+S4mueVjOmihuWFiOeahOS6keWKoOmAn+acjeWKoe+8jOmAmui/h+WFiOi/m+eahOaKgOacr+aetuaehOWSjOaZuuiDveeul+azle+8jFxyXG4gICAgICAgICAgICDkuLrmgqjnmoTkuJrliqHmj5DkvpvnqLPlrprjgIHlronlhajjgIHpq5jmlYjnmoTmioDmnK/op6PlhrPmlrnmoYhcclxuICAgICAgICAgIDwvcD5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICBcclxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImdyaWQgZ3JpZC1jb2xzLTEgbWQ6Z3JpZC1jb2xzLTIgbGc6Z3JpZC1jb2xzLTQgZ2FwLThcIj5cclxuICAgICAgICAgIHtmZWF0dXJlcy5tYXAoKGZlYXR1cmUsIGluZGV4KSA9PiAoXHJcbiAgICAgICAgICAgIDxkaXYgXHJcbiAgICAgICAgICAgICAga2V5PXtpbmRleH1cclxuICAgICAgICAgICAgICBjbGFzc05hbWU9XCJncm91cCBiZy13aGl0ZSBwLTYgcm91bmRlZC14bCBzaGFkb3ctbWQgaG92ZXI6c2hhZG93LXhsIHRyYW5zaXRpb24tYWxsIGR1cmF0aW9uLTMwMCBib3JkZXIgYm9yZGVyLWdyYXktMTAwIGhvdmVyOmJvcmRlci1hY2NlbnQvMjBcIlxyXG4gICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJmbGV4IGZsZXgtY29sIGl0ZW1zLWNlbnRlciB0ZXh0LWNlbnRlclwiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJ3LTE2IGgtMTYgYmctZ3JhZGllbnQtdG8tYnIgZnJvbS1hY2NlbnQvMTAgdG8tYWNjZW50LzIwIHJvdW5kZWQteGwgZmxleCBpdGVtcy1jZW50ZXIganVzdGlmeS1jZW50ZXIgbWItNCBncm91cC1ob3ZlcjpzY2FsZS0xMTAgdHJhbnNpdGlvbi10cmFuc2Zvcm0gZHVyYXRpb24tMzAwXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxmZWF0dXJlLmljb24gY2xhc3NOYW1lPVwiaC04IHctOCB0ZXh0LWFjY2VudFwiIC8+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDxoMyBjbGFzc05hbWU9XCJ0ZXh0LXhsIGZvbnQtc2VtaWJvbGQgbWItMyB0ZXh0LXByaW1hcnkgZ3JvdXAtaG92ZXI6dGV4dC1hY2NlbnQgdHJhbnNpdGlvbi1jb2xvcnNcIj5cclxuICAgICAgICAgICAgICAgICAge2ZlYXR1cmUudGl0bGV9XHJcbiAgICAgICAgICAgICAgICA8L2gzPlxyXG4gICAgICAgICAgICAgICAgPHAgY2xhc3NOYW1lPVwidGV4dC1ncmF5LTYwMCBtYi00IGxlYWRpbmctcmVsYXhlZFwiPlxyXG4gICAgICAgICAgICAgICAgICB7ZmVhdHVyZS5kZXNjcmlwdGlvbn1cclxuICAgICAgICAgICAgICAgIDwvcD5cclxuICAgICAgICAgICAgICAgIDx1bCBjbGFzc05hbWU9XCJzcGFjZS15LTIgdGV4dC1zbSB0ZXh0LWdyYXktNTAwXCI+XHJcbiAgICAgICAgICAgICAgICAgIHtmZWF0dXJlLmRldGFpbHMubWFwKChkZXRhaWwsIGlkeCkgPT4gKFxyXG4gICAgICAgICAgICAgICAgICAgIDxsaSBrZXk9e2lkeH0gY2xhc3NOYW1lPVwiZmxleCBpdGVtcy1jZW50ZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgIDxDaGVja0NpcmNsZSBjbGFzc05hbWU9XCJoLTQgdy00IHRleHQtZ3JlZW4tNTAwIG1yLTIgZmxleC1zaHJpbmstMFwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICB7ZGV0YWlsfVxyXG4gICAgICAgICAgICAgICAgICAgIDwvbGk+XHJcbiAgICAgICAgICAgICAgICAgICkpfVxyXG4gICAgICAgICAgICAgICAgPC91bD5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICApKX1cclxuICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgey8qIOaKgOacr+aetuaehOWxleekuiAqL31cclxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cIm10LTIwIGJnLWdyYWRpZW50LXRvLXIgZnJvbS1ibHVlLTUwIHRvLWluZGlnby01MCByb3VuZGVkLTJ4bCBwLTggbWQ6cC0xMlwiPlxyXG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJ0ZXh0LWNlbnRlciBtYi04XCI+XHJcbiAgICAgICAgICAgIDxoMyBjbGFzc05hbWU9XCJ0ZXh0LTJ4bCBtZDp0ZXh0LTN4bCBmb250LWJvbGQgdGV4dC1wcmltYXJ5IG1iLTRcIj5cclxuICAgICAgICAgICAgICDmioDmnK/mnrbmnoTkvJjlir9cclxuICAgICAgICAgICAgPC9oMz5cclxuICAgICAgICAgICAgPHAgY2xhc3NOYW1lPVwidGV4dC1ncmF5LTYwMCBtYXgtdy0yeGwgbXgtYXV0b1wiPlxyXG4gICAgICAgICAgICAgIOWfuuS6juS6keWOn+eUn+aetuaehO+8jOmHh+eUqOW+ruacjeWKoeiuvuiuoe+8jOehruS/neezu+e7n+eahOmrmOWPr+eUqOaAp+WSjOWPr+aJqeWxleaAp1xyXG4gICAgICAgICAgICA8L3A+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIFxyXG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJncmlkIGdyaWQtY29scy0xIG1kOmdyaWQtY29scy0zIGdhcC04XCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwidGV4dC1jZW50ZXJcIj5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInctMjAgaC0yMCBiZy13aGl0ZSByb3VuZGVkLWZ1bGwgZmxleCBpdGVtcy1jZW50ZXIganVzdGlmeS1jZW50ZXIgbXgtYXV0byBtYi00IHNoYWRvdy1sZ1wiPlxyXG4gICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwidGV4dC0yeGwgZm9udC1ib2xkIHRleHQtYWNjZW50XCI+OTkuOSU8L3NwYW4+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPGg0IGNsYXNzTmFtZT1cInRleHQtbGcgZm9udC1zZW1pYm9sZCBtYi0yXCI+5pyN5Yqh5Y+v55So5oCnPC9oND5cclxuICAgICAgICAgICAgICA8cCBjbGFzc05hbWU9XCJ0ZXh0LWdyYXktNjAwIHRleHQtc21cIj7kvIHkuJrnuqcgU0xBIOS/nemanDwvcD5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIFxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInRleHQtY2VudGVyXCI+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJ3LTIwIGgtMjAgYmctd2hpdGUgcm91bmRlZC1mdWxsIGZsZXggaXRlbXMtY2VudGVyIGp1c3RpZnktY2VudGVyIG14LWF1dG8gbWItNCBzaGFkb3ctbGdcIj5cclxuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cInRleHQtMnhsIGZvbnQtYm9sZCB0ZXh0LWFjY2VudFwiPiZsdDsgNTBtczwvc3Bhbj5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8aDQgY2xhc3NOYW1lPVwidGV4dC1sZyBmb250LXNlbWlib2xkIG1iLTJcIj7lubPlnYflu7bov588L2g0PlxyXG4gICAgICAgICAgICAgIDxwIGNsYXNzTmFtZT1cInRleHQtZ3JheS02MDAgdGV4dC1zbVwiPuWFqOeQg+iKgueCueS8mOWMljwvcD5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIFxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInRleHQtY2VudGVyXCI+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJ3LTIwIGgtMjAgYmctd2hpdGUgcm91bmRlZC1mdWxsIGZsZXggaXRlbXMtY2VudGVyIGp1c3RpZnktY2VudGVyIG14LWF1dG8gbWItNCBzaGFkb3ctbGdcIj5cclxuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cInRleHQtMnhsIGZvbnQtYm9sZCB0ZXh0LWFjY2VudFwiPjUwKzwvc3Bhbj5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8aDQgY2xhc3NOYW1lPVwidGV4dC1sZyBmb250LXNlbWlib2xkIG1iLTJcIj7lhajnkIPoioLngrk8L2g0PlxyXG4gICAgICAgICAgICAgIDxwIGNsYXNzTmFtZT1cInRleHQtZ3JheS02MDAgdGV4dC1zbVwiPuimhuebluS4u+imgeWcsOWMujwvcD5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L3NlY3Rpb24+XHJcbiAgKTtcclxufSJdLCJuYW1lcyI6WyJHbG9iZSIsIlJlcGVhdCIsIkJhckNoYXJ0IiwiU2hpZWxkIiwiWmFwIiwiVXNlcnMiLCJDbG9jayIsIkNoZWNrQ2lyY2xlIiwiRmVhdHVyZXMiLCJmZWF0dXJlcyIsImljb24iLCJ0aXRsZSIsImRlc2NyaXB0aW9uIiwiZGV0YWlscyIsInNlY3Rpb24iLCJpZCIsImNsYXNzTmFtZSIsImRpdiIsImgyIiwicCIsIm1hcCIsImZlYXR1cmUiLCJpbmRleCIsImgzIiwidWwiLCJkZXRhaWwiLCJpZHgiLCJsaSIsInNwYW4iLCJoNCJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(pages-dir-browser)/./components/Features.tsx\n")); - -/***/ }), - -/***/ "(pages-dir-browser)/./components/Footer.tsx": -/*!*******************************!*\ - !*** ./components/Footer.tsx ***! - \*******************************/ -/***/ ((module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ Footer)\n/* harmony export */ });\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react/jsx-dev-runtime */ \"(pages-dir-browser)/./node_modules/react/jsx-dev-runtime.js\");\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _barrel_optimize_names_Mail_MessageCircle_Phone_lucide_react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! __barrel_optimize__?names=Mail,MessageCircle,Phone!=!lucide-react */ \"(pages-dir-browser)/__barrel_optimize__?names=Mail,MessageCircle,Phone!=!./node_modules/lucide-react/dist/esm/lucide-react.js\");\n\n\nfunction Footer() {\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"footer\", {\n className: \"bg-gray-900 text-white py-12\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"max-w-screen-xl mx-auto px-6\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"grid grid-cols-1 md:grid-cols-4 gap-8\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"md:col-span-2\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"h3\", {\n className: \"text-2xl font-bold mb-4\",\n children: \"Pinnovate Cloud\"\n }, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\Footer.tsx\",\n lineNumber: 10,\n columnNumber: 13\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"p\", {\n className: \"text-gray-300 mb-6 max-w-md\",\n children: \"专业的云加速服务提供商,为全球企业提供高性能、安全可靠的网络加速解决方案。\"\n }, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\Footer.tsx\",\n lineNumber: 11,\n columnNumber: 13\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"space-y-3\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex items-center gap-3\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_barrel_optimize_names_Mail_MessageCircle_Phone_lucide_react__WEBPACK_IMPORTED_MODULE_1__.Mail, {\n className: \"w-5 h-5 text-accent\"\n }, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\Footer.tsx\",\n lineNumber: 16,\n columnNumber: 17\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"a\", {\n href: \"mailto:support@pinnovatecloud.com\",\n className: \"text-gray-300 hover:text-white transition-colors\",\n children: \"support@pinnovatecloud.com\"\n }, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\Footer.tsx\",\n lineNumber: 17,\n columnNumber: 17\n }, this)\n ]\n }, void 0, true, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\Footer.tsx\",\n lineNumber: 15,\n columnNumber: 15\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex items-center gap-3\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_barrel_optimize_names_Mail_MessageCircle_Phone_lucide_react__WEBPACK_IMPORTED_MODULE_1__.Phone, {\n className: \"w-5 h-5 text-accent\"\n }, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\Footer.tsx\",\n lineNumber: 22,\n columnNumber: 17\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"a\", {\n href: \"https://wa.me/19174029875\",\n className: \"text-gray-300 hover:text-white transition-colors\",\n children: \"+1 917-402-9875\"\n }, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\Footer.tsx\",\n lineNumber: 23,\n columnNumber: 17\n }, this)\n ]\n }, void 0, true, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\Footer.tsx\",\n lineNumber: 21,\n columnNumber: 15\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex items-center gap-3\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_barrel_optimize_names_Mail_MessageCircle_Phone_lucide_react__WEBPACK_IMPORTED_MODULE_1__.MessageCircle, {\n className: \"w-5 h-5 text-accent\"\n }, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\Footer.tsx\",\n lineNumber: 28,\n columnNumber: 17\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"a\", {\n href: \"https://t.me/pinnovatecloud\",\n className: \"text-gray-300 hover:text-white transition-colors\",\n children: \"@pinnovatecloud\"\n }, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\Footer.tsx\",\n lineNumber: 29,\n columnNumber: 17\n }, this)\n ]\n }, void 0, true, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\Footer.tsx\",\n lineNumber: 27,\n columnNumber: 15\n }, this)\n ]\n }, void 0, true, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\Footer.tsx\",\n lineNumber: 14,\n columnNumber: 13\n }, this)\n ]\n }, void 0, true, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\Footer.tsx\",\n lineNumber: 9,\n columnNumber: 11\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)(\"h4\", {\n className: \"text-lg font-semibold mb-4\",\n children: \"服务\"\n }, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\Footer.tsx\",\n lineNumber: 38,\n columnNumber: 13\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"ul\", {\n className: \"space-y-2\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"li\", {\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"a\", {\n href: \"/features\",\n className: \"text-gray-300 hover:text-white transition-colors\",\n children: \"产品特性\"\n }, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\Footer.tsx\",\n lineNumber: 40,\n columnNumber: 19\n }, this)\n }, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\Footer.tsx\",\n lineNumber: 40,\n columnNumber: 15\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"li\", {\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"a\", {\n href: \"/pricing\",\n className: \"text-gray-300 hover:text-white transition-colors\",\n children: \"定价方案\"\n }, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\Footer.tsx\",\n lineNumber: 41,\n columnNumber: 19\n }, this)\n }, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\Footer.tsx\",\n lineNumber: 41,\n columnNumber: 15\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"li\", {\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"a\", {\n href: \"/cases\",\n className: \"text-gray-300 hover:text-white transition-colors\",\n children: \"客户案例\"\n }, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\Footer.tsx\",\n lineNumber: 42,\n columnNumber: 19\n }, this)\n }, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\Footer.tsx\",\n lineNumber: 42,\n columnNumber: 15\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"li\", {\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"a\", {\n href: \"/news\",\n className: \"text-gray-300 hover:text-white transition-colors\",\n children: \"新闻资讯\"\n }, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\Footer.tsx\",\n lineNumber: 43,\n columnNumber: 19\n }, this)\n }, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\Footer.tsx\",\n lineNumber: 43,\n columnNumber: 15\n }, this)\n ]\n }, void 0, true, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\Footer.tsx\",\n lineNumber: 39,\n columnNumber: 13\n }, this)\n ]\n }, void 0, true, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\Footer.tsx\",\n lineNumber: 37,\n columnNumber: 11\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)(\"h4\", {\n className: \"text-lg font-semibold mb-4\",\n children: \"支持\"\n }, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\Footer.tsx\",\n lineNumber: 49,\n columnNumber: 13\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"ul\", {\n className: \"space-y-2\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"li\", {\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"a\", {\n href: \"/contact\",\n className: \"text-gray-300 hover:text-white transition-colors\",\n children: \"联系我们\"\n }, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\Footer.tsx\",\n lineNumber: 51,\n columnNumber: 19\n }, this)\n }, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\Footer.tsx\",\n lineNumber: 51,\n columnNumber: 15\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"li\", {\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"a\", {\n href: \"/about\",\n className: \"text-gray-300 hover:text-white transition-colors\",\n children: \"关于我们\"\n }, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\Footer.tsx\",\n lineNumber: 52,\n columnNumber: 19\n }, this)\n }, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\Footer.tsx\",\n lineNumber: 52,\n columnNumber: 15\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"li\", {\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"a\", {\n href: \"#\",\n className: \"text-gray-300 hover:text-white transition-colors\",\n children: \"帮助中心\"\n }, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\Footer.tsx\",\n lineNumber: 53,\n columnNumber: 19\n }, this)\n }, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\Footer.tsx\",\n lineNumber: 53,\n columnNumber: 15\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"li\", {\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"a\", {\n href: \"#\",\n className: \"text-gray-300 hover:text-white transition-colors\",\n children: \"API 文档\"\n }, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\Footer.tsx\",\n lineNumber: 54,\n columnNumber: 19\n }, this)\n }, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\Footer.tsx\",\n lineNumber: 54,\n columnNumber: 15\n }, this)\n ]\n }, void 0, true, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\Footer.tsx\",\n lineNumber: 50,\n columnNumber: 13\n }, this)\n ]\n }, void 0, true, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\Footer.tsx\",\n lineNumber: 48,\n columnNumber: 11\n }, this)\n ]\n }, void 0, true, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\Footer.tsx\",\n lineNumber: 7,\n columnNumber: 9\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"border-t border-gray-700 mt-8 pt-8 flex flex-col md:flex-row justify-between items-center\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"p\", {\n className: \"text-gray-400 text-sm\",\n children: \"\\xa9 2025 Pinnovate Cloud. 保留所有权利。\"\n }, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\Footer.tsx\",\n lineNumber: 60,\n columnNumber: 11\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex space-x-6 mt-4 md:mt-0\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"a\", {\n href: \"https://t.me/pinnovatecloud\",\n className: \"text-gray-400 hover:text-white transition-colors\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_barrel_optimize_names_Mail_MessageCircle_Phone_lucide_react__WEBPACK_IMPORTED_MODULE_1__.MessageCircle, {\n className: \"w-5 h-5\"\n }, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\Footer.tsx\",\n lineNumber: 65,\n columnNumber: 15\n }, this)\n }, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\Footer.tsx\",\n lineNumber: 64,\n columnNumber: 13\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"a\", {\n href: \"https://wa.me/19174029875\",\n className: \"text-gray-400 hover:text-white transition-colors\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_barrel_optimize_names_Mail_MessageCircle_Phone_lucide_react__WEBPACK_IMPORTED_MODULE_1__.Phone, {\n className: \"w-5 h-5\"\n }, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\Footer.tsx\",\n lineNumber: 68,\n columnNumber: 15\n }, this)\n }, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\Footer.tsx\",\n lineNumber: 67,\n columnNumber: 13\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"a\", {\n href: \"mailto:support@pinnovatecloud.com\",\n className: \"text-gray-400 hover:text-white transition-colors\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_barrel_optimize_names_Mail_MessageCircle_Phone_lucide_react__WEBPACK_IMPORTED_MODULE_1__.Mail, {\n className: \"w-5 h-5\"\n }, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\Footer.tsx\",\n lineNumber: 71,\n columnNumber: 15\n }, this)\n }, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\Footer.tsx\",\n lineNumber: 70,\n columnNumber: 13\n }, this)\n ]\n }, void 0, true, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\Footer.tsx\",\n lineNumber: 63,\n columnNumber: 11\n }, this)\n ]\n }, void 0, true, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\Footer.tsx\",\n lineNumber: 59,\n columnNumber: 9\n }, this)\n ]\n }, void 0, true, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\Footer.tsx\",\n lineNumber: 6,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\Footer.tsx\",\n lineNumber: 5,\n columnNumber: 5\n }, this);\n}\n_c = Footer;\nvar _c;\n$RefreshReg$(_c, \"Footer\");\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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1icm93c2VyKS8uL2NvbXBvbmVudHMvRm9vdGVyLnRzeCIsIm1hcHBpbmdzIjoiOzs7Ozs7OztBQUEwRDtBQUUzQyxTQUFTRztJQUN0QixxQkFDRSw4REFBQ0M7UUFBT0MsV0FBVTtrQkFDaEIsNEVBQUNDO1lBQUlELFdBQVU7OzhCQUNiLDhEQUFDQztvQkFBSUQsV0FBVTs7c0NBRWIsOERBQUNDOzRCQUFJRCxXQUFVOzs4Q0FDYiw4REFBQ0U7b0NBQUdGLFdBQVU7OENBQTBCOzs7Ozs7OENBQ3hDLDhEQUFDRztvQ0FBRUgsV0FBVTs4Q0FBOEI7Ozs7Ozs4Q0FHM0MsOERBQUNDO29DQUFJRCxXQUFVOztzREFDYiw4REFBQ0M7NENBQUlELFdBQVU7OzhEQUNiLDhEQUFDTCw4RkFBSUE7b0RBQUNLLFdBQVU7Ozs7Ozs4REFDaEIsOERBQUNJO29EQUFFQyxNQUFLO29EQUFvQ0wsV0FBVTs4REFBbUQ7Ozs7Ozs7Ozs7OztzREFJM0csOERBQUNDOzRDQUFJRCxXQUFVOzs4REFDYiw4REFBQ0gsK0ZBQUtBO29EQUFDRyxXQUFVOzs7Ozs7OERBQ2pCLDhEQUFDSTtvREFBRUMsTUFBSztvREFBNEJMLFdBQVU7OERBQW1EOzs7Ozs7Ozs7Ozs7c0RBSW5HLDhEQUFDQzs0Q0FBSUQsV0FBVTs7OERBQ2IsOERBQUNKLHVHQUFhQTtvREFBQ0ksV0FBVTs7Ozs7OzhEQUN6Qiw4REFBQ0k7b0RBQUVDLE1BQUs7b0RBQThCTCxXQUFVOzhEQUFtRDs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O3NDQVF6Ryw4REFBQ0M7OzhDQUNDLDhEQUFDSztvQ0FBR04sV0FBVTs4Q0FBNkI7Ozs7Ozs4Q0FDM0MsOERBQUNPO29DQUFHUCxXQUFVOztzREFDWiw4REFBQ1E7c0RBQUcsNEVBQUNKO2dEQUFFQyxNQUFLO2dEQUFZTCxXQUFVOzBEQUFtRDs7Ozs7Ozs7Ozs7c0RBQ3JGLDhEQUFDUTtzREFBRyw0RUFBQ0o7Z0RBQUVDLE1BQUs7Z0RBQVdMLFdBQVU7MERBQW1EOzs7Ozs7Ozs7OztzREFDcEYsOERBQUNRO3NEQUFHLDRFQUFDSjtnREFBRUMsTUFBSztnREFBU0wsV0FBVTswREFBbUQ7Ozs7Ozs7Ozs7O3NEQUNsRiw4REFBQ1E7c0RBQUcsNEVBQUNKO2dEQUFFQyxNQUFLO2dEQUFRTCxXQUFVOzBEQUFtRDs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7c0NBS3JGLDhEQUFDQzs7OENBQ0MsOERBQUNLO29DQUFHTixXQUFVOzhDQUE2Qjs7Ozs7OzhDQUMzQyw4REFBQ087b0NBQUdQLFdBQVU7O3NEQUNaLDhEQUFDUTtzREFBRyw0RUFBQ0o7Z0RBQUVDLE1BQUs7Z0RBQVdMLFdBQVU7MERBQW1EOzs7Ozs7Ozs7OztzREFDcEYsOERBQUNRO3NEQUFHLDRFQUFDSjtnREFBRUMsTUFBSztnREFBU0wsV0FBVTswREFBbUQ7Ozs7Ozs7Ozs7O3NEQUNsRiw4REFBQ1E7c0RBQUcsNEVBQUNKO2dEQUFFQyxNQUFLO2dEQUFJTCxXQUFVOzBEQUFtRDs7Ozs7Ozs7Ozs7c0RBQzdFLDhEQUFDUTtzREFBRyw0RUFBQ0o7Z0RBQUVDLE1BQUs7Z0RBQUlMLFdBQVU7MERBQW1EOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs4QkFLbkYsOERBQUNDO29CQUFJRCxXQUFVOztzQ0FDYiw4REFBQ0c7NEJBQUVILFdBQVU7c0NBQXdCOzs7Ozs7c0NBR3JDLDhEQUFDQzs0QkFBSUQsV0FBVTs7OENBQ2IsOERBQUNJO29DQUFFQyxNQUFLO29DQUE4QkwsV0FBVTs4Q0FDOUMsNEVBQUNKLHVHQUFhQTt3Q0FBQ0ksV0FBVTs7Ozs7Ozs7Ozs7OENBRTNCLDhEQUFDSTtvQ0FBRUMsTUFBSztvQ0FBNEJMLFdBQVU7OENBQzVDLDRFQUFDSCwrRkFBS0E7d0NBQUNHLFdBQVU7Ozs7Ozs7Ozs7OzhDQUVuQiw4REFBQ0k7b0NBQUVDLE1BQUs7b0NBQW9DTCxXQUFVOzhDQUNwRCw0RUFBQ0wsOEZBQUlBO3dDQUFDSyxXQUFVOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBTzlCO0tBM0V3QkYiLCJzb3VyY2VzIjpbIkQ6XFxkb25neXVuLXByb2plY3RzXFx0d29cXGNvbXBvbmVudHNcXEZvb3Rlci50c3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTWFpbCwgTWVzc2FnZUNpcmNsZSwgUGhvbmUgfSBmcm9tICdsdWNpZGUtcmVhY3QnO1xyXG5cclxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gRm9vdGVyKCkge1xyXG4gIHJldHVybiAoXHJcbiAgICA8Zm9vdGVyIGNsYXNzTmFtZT1cImJnLWdyYXktOTAwIHRleHQtd2hpdGUgcHktMTJcIj5cclxuICAgICAgPGRpdiBjbGFzc05hbWU9XCJtYXgtdy1zY3JlZW4teGwgbXgtYXV0byBweC02XCI+XHJcbiAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJncmlkIGdyaWQtY29scy0xIG1kOmdyaWQtY29scy00IGdhcC04XCI+XHJcbiAgICAgICAgICB7Lyog5YWs5Y+45L+h5oGvICovfVxyXG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJtZDpjb2wtc3Bhbi0yXCI+XHJcbiAgICAgICAgICAgIDxoMyBjbGFzc05hbWU9XCJ0ZXh0LTJ4bCBmb250LWJvbGQgbWItNFwiPlBpbm5vdmF0ZSBDbG91ZDwvaDM+XHJcbiAgICAgICAgICAgIDxwIGNsYXNzTmFtZT1cInRleHQtZ3JheS0zMDAgbWItNiBtYXgtdy1tZFwiPlxyXG4gICAgICAgICAgICAgIOS4k+S4mueahOS6keWKoOmAn+acjeWKoeaPkOS+m+WVhu+8jOS4uuWFqOeQg+S8geS4muaPkOS+m+mrmOaAp+iDveOAgeWuieWFqOWPr+mdoOeahOe9kee7nOWKoOmAn+ino+WGs+aWueahiOOAglxyXG4gICAgICAgICAgICA8L3A+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwic3BhY2UteS0zXCI+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJmbGV4IGl0ZW1zLWNlbnRlciBnYXAtM1wiPlxyXG4gICAgICAgICAgICAgICAgPE1haWwgY2xhc3NOYW1lPVwidy01IGgtNSB0ZXh0LWFjY2VudFwiIC8+XHJcbiAgICAgICAgICAgICAgICA8YSBocmVmPVwibWFpbHRvOnN1cHBvcnRAcGlubm92YXRlY2xvdWQuY29tXCIgY2xhc3NOYW1lPVwidGV4dC1ncmF5LTMwMCBob3Zlcjp0ZXh0LXdoaXRlIHRyYW5zaXRpb24tY29sb3JzXCI+XHJcbiAgICAgICAgICAgICAgICAgIHN1cHBvcnRAcGlubm92YXRlY2xvdWQuY29tXHJcbiAgICAgICAgICAgICAgICA8L2E+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJmbGV4IGl0ZW1zLWNlbnRlciBnYXAtM1wiPlxyXG4gICAgICAgICAgICAgICAgPFBob25lIGNsYXNzTmFtZT1cInctNSBoLTUgdGV4dC1hY2NlbnRcIiAvPlxyXG4gICAgICAgICAgICAgICAgPGEgaHJlZj1cImh0dHBzOi8vd2EubWUvMTkxNzQwMjk4NzVcIiBjbGFzc05hbWU9XCJ0ZXh0LWdyYXktMzAwIGhvdmVyOnRleHQtd2hpdGUgdHJhbnNpdGlvbi1jb2xvcnNcIj5cclxuICAgICAgICAgICAgICAgICAgKzEgOTE3LTQwMi05ODc1XHJcbiAgICAgICAgICAgICAgICA8L2E+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJmbGV4IGl0ZW1zLWNlbnRlciBnYXAtM1wiPlxyXG4gICAgICAgICAgICAgICAgPE1lc3NhZ2VDaXJjbGUgY2xhc3NOYW1lPVwidy01IGgtNSB0ZXh0LWFjY2VudFwiIC8+XHJcbiAgICAgICAgICAgICAgICA8YSBocmVmPVwiaHR0cHM6Ly90Lm1lL3Bpbm5vdmF0ZWNsb3VkXCIgY2xhc3NOYW1lPVwidGV4dC1ncmF5LTMwMCBob3Zlcjp0ZXh0LXdoaXRlIHRyYW5zaXRpb24tY29sb3JzXCI+XHJcbiAgICAgICAgICAgICAgICAgIEBwaW5ub3ZhdGVjbG91ZFxyXG4gICAgICAgICAgICAgICAgPC9hPlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgIHsvKiDmnI3liqHpk77mjqUgKi99XHJcbiAgICAgICAgICA8ZGl2PlxyXG4gICAgICAgICAgICA8aDQgY2xhc3NOYW1lPVwidGV4dC1sZyBmb250LXNlbWlib2xkIG1iLTRcIj7mnI3liqE8L2g0PlxyXG4gICAgICAgICAgICA8dWwgY2xhc3NOYW1lPVwic3BhY2UteS0yXCI+XHJcbiAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9XCIvZmVhdHVyZXNcIiBjbGFzc05hbWU9XCJ0ZXh0LWdyYXktMzAwIGhvdmVyOnRleHQtd2hpdGUgdHJhbnNpdGlvbi1jb2xvcnNcIj7kuqflk4HnibnmgKc8L2E+PC9saT5cclxuICAgICAgICAgICAgICA8bGk+PGEgaHJlZj1cIi9wcmljaW5nXCIgY2xhc3NOYW1lPVwidGV4dC1ncmF5LTMwMCBob3Zlcjp0ZXh0LXdoaXRlIHRyYW5zaXRpb24tY29sb3JzXCI+5a6a5Lu35pa55qGIPC9hPjwvbGk+XHJcbiAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9XCIvY2FzZXNcIiBjbGFzc05hbWU9XCJ0ZXh0LWdyYXktMzAwIGhvdmVyOnRleHQtd2hpdGUgdHJhbnNpdGlvbi1jb2xvcnNcIj7lrqLmiLfmoYjkvos8L2E+PC9saT5cclxuICAgICAgICAgICAgICA8bGk+PGEgaHJlZj1cIi9uZXdzXCIgY2xhc3NOYW1lPVwidGV4dC1ncmF5LTMwMCBob3Zlcjp0ZXh0LXdoaXRlIHRyYW5zaXRpb24tY29sb3JzXCI+5paw6Ze76LWE6K6vPC9hPjwvbGk+XHJcbiAgICAgICAgICAgIDwvdWw+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICB7Lyog5pSv5oyB6ZO+5o6lICovfVxyXG4gICAgICAgICAgPGRpdj5cclxuICAgICAgICAgICAgPGg0IGNsYXNzTmFtZT1cInRleHQtbGcgZm9udC1zZW1pYm9sZCBtYi00XCI+5pSv5oyBPC9oND5cclxuICAgICAgICAgICAgPHVsIGNsYXNzTmFtZT1cInNwYWNlLXktMlwiPlxyXG4gICAgICAgICAgICAgIDxsaT48YSBocmVmPVwiL2NvbnRhY3RcIiBjbGFzc05hbWU9XCJ0ZXh0LWdyYXktMzAwIGhvdmVyOnRleHQtd2hpdGUgdHJhbnNpdGlvbi1jb2xvcnNcIj7ogZTns7vmiJHku6w8L2E+PC9saT5cclxuICAgICAgICAgICAgICA8bGk+PGEgaHJlZj1cIi9hYm91dFwiIGNsYXNzTmFtZT1cInRleHQtZ3JheS0zMDAgaG92ZXI6dGV4dC13aGl0ZSB0cmFuc2l0aW9uLWNvbG9yc1wiPuWFs+S6juaIkeS7rDwvYT48L2xpPlxyXG4gICAgICAgICAgICAgIDxsaT48YSBocmVmPVwiI1wiIGNsYXNzTmFtZT1cInRleHQtZ3JheS0zMDAgaG92ZXI6dGV4dC13aGl0ZSB0cmFuc2l0aW9uLWNvbG9yc1wiPuW4ruWKqeS4reW/gzwvYT48L2xpPlxyXG4gICAgICAgICAgICAgIDxsaT48YSBocmVmPVwiI1wiIGNsYXNzTmFtZT1cInRleHQtZ3JheS0zMDAgaG92ZXI6dGV4dC13aGl0ZSB0cmFuc2l0aW9uLWNvbG9yc1wiPkFQSSDmlofmoaM8L2E+PC9saT5cclxuICAgICAgICAgICAgPC91bD5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImJvcmRlci10IGJvcmRlci1ncmF5LTcwMCBtdC04IHB0LTggZmxleCBmbGV4LWNvbCBtZDpmbGV4LXJvdyBqdXN0aWZ5LWJldHdlZW4gaXRlbXMtY2VudGVyXCI+XHJcbiAgICAgICAgICA8cCBjbGFzc05hbWU9XCJ0ZXh0LWdyYXktNDAwIHRleHQtc21cIj5cclxuICAgICAgICAgICAgJmNvcHk7IDIwMjUgUGlubm92YXRlIENsb3VkLiDkv53nlZnmiYDmnInmnYPliKnjgIJcclxuICAgICAgICAgIDwvcD5cclxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZmxleCBzcGFjZS14LTYgbXQtNCBtZDptdC0wXCI+XHJcbiAgICAgICAgICAgIDxhIGhyZWY9XCJodHRwczovL3QubWUvcGlubm92YXRlY2xvdWRcIiBjbGFzc05hbWU9XCJ0ZXh0LWdyYXktNDAwIGhvdmVyOnRleHQtd2hpdGUgdHJhbnNpdGlvbi1jb2xvcnNcIj5cclxuICAgICAgICAgICAgICA8TWVzc2FnZUNpcmNsZSBjbGFzc05hbWU9XCJ3LTUgaC01XCIgLz5cclxuICAgICAgICAgICAgPC9hPlxyXG4gICAgICAgICAgICA8YSBocmVmPVwiaHR0cHM6Ly93YS5tZS8xOTE3NDAyOTg3NVwiIGNsYXNzTmFtZT1cInRleHQtZ3JheS00MDAgaG92ZXI6dGV4dC13aGl0ZSB0cmFuc2l0aW9uLWNvbG9yc1wiPlxyXG4gICAgICAgICAgICAgIDxQaG9uZSBjbGFzc05hbWU9XCJ3LTUgaC01XCIgLz5cclxuICAgICAgICAgICAgPC9hPlxyXG4gICAgICAgICAgICA8YSBocmVmPVwibWFpbHRvOnN1cHBvcnRAcGlubm92YXRlY2xvdWQuY29tXCIgY2xhc3NOYW1lPVwidGV4dC1ncmF5LTQwMCBob3Zlcjp0ZXh0LXdoaXRlIHRyYW5zaXRpb24tY29sb3JzXCI+XHJcbiAgICAgICAgICAgICAgPE1haWwgY2xhc3NOYW1lPVwidy01IGgtNVwiIC8+XHJcbiAgICAgICAgICAgIDwvYT5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvZm9vdGVyPlxyXG4gICk7XHJcbn0iXSwibmFtZXMiOlsiTWFpbCIsIk1lc3NhZ2VDaXJjbGUiLCJQaG9uZSIsIkZvb3RlciIsImZvb3RlciIsImNsYXNzTmFtZSIsImRpdiIsImgzIiwicCIsImEiLCJocmVmIiwiaDQiLCJ1bCIsImxpIl0sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(pages-dir-browser)/./components/Footer.tsx\n")); - -/***/ }), - -/***/ "(pages-dir-browser)/./components/Hero.tsx": -/*!*****************************!*\ - !*** ./components/Hero.tsx ***! - \*****************************/ -/***/ ((module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ Hero)\n/* harmony export */ });\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react/jsx-dev-runtime */ \"(pages-dir-browser)/./node_modules/react/jsx-dev-runtime.js\");\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__);\n\nfunction Hero() {\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"section\", {\n className: \"mt-16 bg-gray-100\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"container mx-auto flex flex-col md:flex-row items-center justify-between min-h-[60vh] px-6 py-12\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"md:w-1/2 space-y-6\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"h1\", {\n className: \"text-5xl font-bold text-primary\",\n children: \"无限云,服务无界\"\n }, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\Hero.tsx\",\n lineNumber: 7,\n columnNumber: 11\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"p\", {\n className: \"text-xl text-gray-700\",\n children: \"稳定无极限,优惠趁现在!年付88折,月付95折!\"\n }, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\Hero.tsx\",\n lineNumber: 8,\n columnNumber: 11\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex items-center space-x-4\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"a\", {\n href: \"/pricing\",\n className: \"px-6 py-3 bg-accent text-white rounded-lg hover:opacity-90 transition\",\n children: \"立即抢购\"\n }, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\Hero.tsx\",\n lineNumber: 10,\n columnNumber: 13\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"a\", {\n href: \"/contact\",\n className: \"px-6 py-3 border border-primary text-primary rounded-lg hover:bg-primary hover:text-white transition\",\n children: \"联系我们\"\n }, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\Hero.tsx\",\n lineNumber: 16,\n columnNumber: 13\n }, this)\n ]\n }, void 0, true, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\Hero.tsx\",\n lineNumber: 9,\n columnNumber: 11\n }, this)\n ]\n }, void 0, true, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\Hero.tsx\",\n lineNumber: 6,\n columnNumber: 9\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"md:w-1/2 mt-8 md:mt-0 flex justify-center\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"img\", {\n src: \"/hero-graphic.png\",\n alt: \"Pinnovate Cloud Illustration\",\n className: \"max-w-full h-auto rounded shadow-lg\"\n }, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\Hero.tsx\",\n lineNumber: 26,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\Hero.tsx\",\n lineNumber: 25,\n columnNumber: 9\n }, this)\n ]\n }, void 0, true, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\Hero.tsx\",\n lineNumber: 4,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\Hero.tsx\",\n lineNumber: 3,\n columnNumber: 5\n }, this);\n}\n_c = Hero;\nvar _c;\n$RefreshReg$(_c, \"Hero\");\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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1icm93c2VyKS8uL2NvbXBvbmVudHMvSGVyby50c3giLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQUFlLFNBQVNBO0lBQ3RCLHFCQUNFLDhEQUFDQztRQUFRQyxXQUFVO2tCQUNqQiw0RUFBQ0M7WUFBSUQsV0FBVTs7OEJBRWIsOERBQUNDO29CQUFJRCxXQUFVOztzQ0FDYiw4REFBQ0U7NEJBQUdGLFdBQVU7c0NBQWtDOzs7Ozs7c0NBQ2hELDhEQUFDRzs0QkFBRUgsV0FBVTtzQ0FBd0I7Ozs7OztzQ0FDckMsOERBQUNDOzRCQUFJRCxXQUFVOzs4Q0FDYiw4REFBQ0k7b0NBQ0NDLE1BQUs7b0NBQ0xMLFdBQVU7OENBQ1g7Ozs7Ozs4Q0FHRCw4REFBQ0k7b0NBQ0NDLE1BQUs7b0NBQ0xMLFdBQVU7OENBQ1g7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs4QkFNTCw4REFBQ0M7b0JBQUlELFdBQVU7OEJBQ2IsNEVBQUNNO3dCQUFJQyxLQUFJO3dCQUFvQkMsS0FBSTt3QkFBK0JSLFdBQVU7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFJakY7S0E3QnFCRiIsInNvdXJjZXMiOlsiRDpcXGRvbmd5dW4tcHJvamVjdHNcXHR3b1xcY29tcG9uZW50c1xcSGVyby50c3giXSwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gSGVybygpIHtcclxuICByZXR1cm4gKFxyXG4gICAgPHNlY3Rpb24gY2xhc3NOYW1lPVwibXQtMTYgYmctZ3JheS0xMDBcIj5cclxuICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb250YWluZXIgbXgtYXV0byBmbGV4IGZsZXgtY29sIG1kOmZsZXgtcm93IGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWJldHdlZW4gbWluLWgtWzYwdmhdIHB4LTYgcHktMTJcIj5cclxuICAgICAgICB7Lyog5bem5L6n5paH5a2XICovfVxyXG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPVwibWQ6dy0xLzIgc3BhY2UteS02XCI+XHJcbiAgICAgICAgICA8aDEgY2xhc3NOYW1lPVwidGV4dC01eGwgZm9udC1ib2xkIHRleHQtcHJpbWFyeVwiPuaXoOmZkOS6ke+8jOacjeWKoeaXoOeVjDwvaDE+XHJcbiAgICAgICAgICA8cCBjbGFzc05hbWU9XCJ0ZXh0LXhsIHRleHQtZ3JheS03MDBcIj7nqLPlrprml6DmnoHpmZDvvIzkvJjmg6DotoHnjrDlnKjvvIHlubTku5g4OOaKmO+8jOaciOS7mDk15oqY77yBPC9wPlxyXG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJmbGV4IGl0ZW1zLWNlbnRlciBzcGFjZS14LTRcIj5cclxuICAgICAgICAgICAgPGFcclxuICAgICAgICAgICAgICBocmVmPVwiL3ByaWNpbmdcIlxyXG4gICAgICAgICAgICAgIGNsYXNzTmFtZT1cInB4LTYgcHktMyBiZy1hY2NlbnQgdGV4dC13aGl0ZSByb3VuZGVkLWxnIGhvdmVyOm9wYWNpdHktOTAgdHJhbnNpdGlvblwiXHJcbiAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICDnq4vljbPmiqLotK1cclxuICAgICAgICAgICAgPC9hPlxyXG4gICAgICAgICAgICA8YVxyXG4gICAgICAgICAgICAgIGhyZWY9XCIvY29udGFjdFwiXHJcbiAgICAgICAgICAgICAgY2xhc3NOYW1lPVwicHgtNiBweS0zIGJvcmRlciBib3JkZXItcHJpbWFyeSB0ZXh0LXByaW1hcnkgcm91bmRlZC1sZyBob3ZlcjpiZy1wcmltYXJ5IGhvdmVyOnRleHQtd2hpdGUgdHJhbnNpdGlvblwiXHJcbiAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICDogZTns7vmiJHku6xcclxuICAgICAgICAgICAgPC9hPlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgey8qIOWPs+S+p+ekuuaEj+WbviAqL31cclxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cIm1kOnctMS8yIG10LTggbWQ6bXQtMCBmbGV4IGp1c3RpZnktY2VudGVyXCI+XHJcbiAgICAgICAgICA8aW1nIHNyYz1cIi9oZXJvLWdyYXBoaWMucG5nXCIgYWx0PVwiUGlubm92YXRlIENsb3VkIElsbHVzdHJhdGlvblwiIGNsYXNzTmFtZT1cIm1heC13LWZ1bGwgaC1hdXRvIHJvdW5kZWQgc2hhZG93LWxnXCIgLz5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L3NlY3Rpb24+XHJcbiAgKX0iXSwibmFtZXMiOlsiSGVybyIsInNlY3Rpb24iLCJjbGFzc05hbWUiLCJkaXYiLCJoMSIsInAiLCJhIiwiaHJlZiIsImltZyIsInNyYyIsImFsdCJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(pages-dir-browser)/./components/Hero.tsx\n")); - -/***/ }), - -/***/ "(pages-dir-browser)/./components/Navbar.tsx": -/*!*******************************!*\ - !*** ./components/Navbar.tsx ***! - \*******************************/ -/***/ ((module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ Navbar)\n/* harmony export */ });\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react/jsx-dev-runtime */ \"(pages-dir-browser)/./node_modules/react/jsx-dev-runtime.js\");\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react */ \"(pages-dir-browser)/./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var next_link__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! next/link */ \"(pages-dir-browser)/./node_modules/next/link.js\");\n/* harmony import */ var next_link__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(next_link__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var _barrel_optimize_names_Menu_lucide_react__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! __barrel_optimize__?names=Menu!=!lucide-react */ \"(pages-dir-browser)/__barrel_optimize__?names=Menu!=!./node_modules/lucide-react/dist/esm/lucide-react.js\");\n/* harmony import */ var _Sidebar__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./Sidebar */ \"(pages-dir-browser)/./components/Sidebar.tsx\");\n\nvar _s = $RefreshSig$();\n\n\n\n\nfunction Navbar() {\n _s();\n const [open, setOpen] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(false);\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"header\", {\n className: \"fixed top-0 left-0 w-full bg-background shadow-sm z-50\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"container mx-auto flex items-center justify-between h-16 px-4\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex items-center space-x-4\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"button\", {\n className: \"md:hidden p-2 focus:outline-none\",\n onClick: ()=>setOpen(true),\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_barrel_optimize_names_Menu_lucide_react__WEBPACK_IMPORTED_MODULE_4__.Menu, {\n className: \"h-6 w-6 text-primary\"\n }, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\Navbar.tsx\",\n lineNumber: 16,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\Navbar.tsx\",\n lineNumber: 15,\n columnNumber: 11\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)((next_link__WEBPACK_IMPORTED_MODULE_2___default()), {\n href: \"/\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"img\", {\n src: \"/logo.png\",\n alt: \"CloudProxy\",\n className: \"h-8 w-8\"\n }, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\Navbar.tsx\",\n lineNumber: 19,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\Navbar.tsx\",\n lineNumber: 18,\n columnNumber: 11\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"nav\", {\n className: \"hidden md:flex items-center space-x-4\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)((next_link__WEBPACK_IMPORTED_MODULE_2___default()), {\n href: \"/\",\n className: \"text-primary font-semibold\",\n children: \"首页\"\n }, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\Navbar.tsx\",\n lineNumber: 23,\n columnNumber: 13\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)((next_link__WEBPACK_IMPORTED_MODULE_2___default()), {\n href: \"/features\",\n className: \"text-gray-600 hover:text-primary\",\n children: \"产品与服务\"\n }, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\Navbar.tsx\",\n lineNumber: 24,\n columnNumber: 13\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)((next_link__WEBPACK_IMPORTED_MODULE_2___default()), {\n href: \"/news\",\n className: \"text-gray-600 hover:text-primary\",\n children: \"新闻资讯\"\n }, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\Navbar.tsx\",\n lineNumber: 25,\n columnNumber: 13\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)((next_link__WEBPACK_IMPORTED_MODULE_2___default()), {\n href: \"/cases\",\n className: \"text-gray-600 hover:text-primary\",\n children: \"客户案例\"\n }, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\Navbar.tsx\",\n lineNumber: 26,\n columnNumber: 13\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)((next_link__WEBPACK_IMPORTED_MODULE_2___default()), {\n href: \"/about\",\n className: \"text-gray-600 hover:text-primary\",\n children: \"关于我们\"\n }, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\Navbar.tsx\",\n lineNumber: 27,\n columnNumber: 13\n }, this)\n ]\n }, void 0, true, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\Navbar.tsx\",\n lineNumber: 22,\n columnNumber: 11\n }, this)\n ]\n }, void 0, true, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\Navbar.tsx\",\n lineNumber: 13,\n columnNumber: 9\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex items-center space-x-4\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)((next_link__WEBPACK_IMPORTED_MODULE_2___default()), {\n href: \"/contact\",\n className: \"px-4 py-1 border border-primary rounded-full text-primary hover:bg-primary hover:text-white transition\",\n children: \"联系我们\"\n }, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\Navbar.tsx\",\n lineNumber: 33,\n columnNumber: 11\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"a\", {\n href: \"https://instagram.com\",\n target: \"_blank\",\n rel: \"noopener noreferrer\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"i\", {\n className: \"fab fa-instagram text-gray-600 hover:text-primary\"\n }, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\Navbar.tsx\",\n lineNumber: 37,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\Navbar.tsx\",\n lineNumber: 36,\n columnNumber: 11\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"a\", {\n href: \"https://facebook.com\",\n target: \"_blank\",\n rel: \"noopener noreferrer\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"i\", {\n className: \"fab fa-facebook text-gray-600 hover:text-primary\"\n }, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\Navbar.tsx\",\n lineNumber: 40,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\Navbar.tsx\",\n lineNumber: 39,\n columnNumber: 11\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"a\", {\n href: \"https://twitter.com\",\n target: \"_blank\",\n rel: \"noopener noreferrer\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"i\", {\n className: \"fab fa-twitter text-gray-600 hover:text-primary\"\n }, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\Navbar.tsx\",\n lineNumber: 43,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\Navbar.tsx\",\n lineNumber: 42,\n columnNumber: 11\n }, this)\n ]\n }, void 0, true, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\Navbar.tsx\",\n lineNumber: 32,\n columnNumber: 9\n }, this)\n ]\n }, void 0, true, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\Navbar.tsx\",\n lineNumber: 11,\n columnNumber: 7\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_Sidebar__WEBPACK_IMPORTED_MODULE_3__[\"default\"], {\n open: open,\n onClose: ()=>setOpen(false)\n }, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\Navbar.tsx\",\n lineNumber: 49,\n columnNumber: 7\n }, this)\n ]\n }, void 0, true, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\Navbar.tsx\",\n lineNumber: 10,\n columnNumber: 5\n }, this);\n}\n_s(Navbar, \"xG1TONbKtDWtdOTrXaTAsNhPg/Q=\");\n_c = Navbar;\nvar _c;\n$RefreshReg$(_c, \"Navbar\");\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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1icm93c2VyKS8uL2NvbXBvbmVudHMvTmF2YmFyLnRzeCIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7OztBQUFpQztBQUNKO0FBQ087QUFDSjtBQUVqQixTQUFTSTs7SUFDdEIsTUFBTSxDQUFDQyxNQUFNQyxRQUFRLEdBQUdOLCtDQUFRQSxDQUFDO0lBRWpDLHFCQUNFLDhEQUFDTztRQUFPQyxXQUFVOzswQkFDaEIsOERBQUNDO2dCQUFJRCxXQUFVOztrQ0FFYiw4REFBQ0M7d0JBQUlELFdBQVU7OzBDQUViLDhEQUFDRTtnQ0FBT0YsV0FBVTtnQ0FBbUNHLFNBQVMsSUFBTUwsUUFBUTswQ0FDMUUsNEVBQUNKLDBFQUFJQTtvQ0FBQ00sV0FBVTs7Ozs7Ozs7Ozs7MENBRWxCLDhEQUFDUCxrREFBSUE7Z0NBQUNXLE1BQUs7MENBQ1QsNEVBQUNDO29DQUFJQyxLQUFJO29DQUFZQyxLQUFJO29DQUFhUCxXQUFVOzs7Ozs7Ozs7OzswQ0FHbEQsOERBQUNRO2dDQUFJUixXQUFVOztrREFDYiw4REFBQ1Asa0RBQUlBO3dDQUFDVyxNQUFLO3dDQUFJSixXQUFVO2tEQUE2Qjs7Ozs7O2tEQUN0RCw4REFBQ1Asa0RBQUlBO3dDQUFDVyxNQUFLO3dDQUFZSixXQUFVO2tEQUFtQzs7Ozs7O2tEQUNwRSw4REFBQ1Asa0RBQUlBO3dDQUFDVyxNQUFLO3dDQUFRSixXQUFVO2tEQUFtQzs7Ozs7O2tEQUNoRSw4REFBQ1Asa0RBQUlBO3dDQUFDVyxNQUFLO3dDQUFTSixXQUFVO2tEQUFtQzs7Ozs7O2tEQUNqRSw4REFBQ1Asa0RBQUlBO3dDQUFDVyxNQUFLO3dDQUFTSixXQUFVO2tEQUFtQzs7Ozs7Ozs7Ozs7Ozs7Ozs7O2tDQUtyRSw4REFBQ0M7d0JBQUlELFdBQVU7OzBDQUNiLDhEQUFDUCxrREFBSUE7Z0NBQUNXLE1BQUs7Z0NBQVdKLFdBQVU7MENBQXlHOzs7Ozs7MENBR3pJLDhEQUFDUztnQ0FBRUwsTUFBSztnQ0FBd0JNLFFBQU87Z0NBQVNDLEtBQUk7MENBQ2xELDRFQUFDQztvQ0FBRVosV0FBVTs7Ozs7Ozs7Ozs7MENBRWYsOERBQUNTO2dDQUFFTCxNQUFLO2dDQUF1Qk0sUUFBTztnQ0FBU0MsS0FBSTswQ0FDakQsNEVBQUNDO29DQUFFWixXQUFVOzs7Ozs7Ozs7OzswQ0FFZiw4REFBQ1M7Z0NBQUVMLE1BQUs7Z0NBQXNCTSxRQUFPO2dDQUFTQyxLQUFJOzBDQUNoRCw0RUFBQ0M7b0NBQUVaLFdBQVU7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OzBCQU1uQiw4REFBQ0wsZ0RBQU9BO2dCQUFDRSxNQUFNQTtnQkFBTWdCLFNBQVMsSUFBTWYsUUFBUTs7Ozs7Ozs7Ozs7O0FBRS9DO0dBN0NxQkY7S0FBQUEiLCJzb3VyY2VzIjpbIkQ6XFxkb25neXVuLXByb2plY3RzXFx0d29cXGNvbXBvbmVudHNcXE5hdmJhci50c3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgdXNlU3RhdGUgfSBmcm9tICdyZWFjdCc7XHJcbmltcG9ydCBMaW5rIGZyb20gJ25leHQvbGluayc7XHJcbmltcG9ydCB7IE1lbnUgfSBmcm9tICdsdWNpZGUtcmVhY3QnO1xyXG5pbXBvcnQgU2lkZWJhciBmcm9tICcuL1NpZGViYXInO1xyXG5cclxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gTmF2YmFyKCkge1xyXG4gIGNvbnN0IFtvcGVuLCBzZXRPcGVuXSA9IHVzZVN0YXRlKGZhbHNlKTtcclxuXHJcbiAgcmV0dXJuIChcclxuICAgIDxoZWFkZXIgY2xhc3NOYW1lPVwiZml4ZWQgdG9wLTAgbGVmdC0wIHctZnVsbCBiZy1iYWNrZ3JvdW5kIHNoYWRvdy1zbSB6LTUwXCI+XHJcbiAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29udGFpbmVyIG14LWF1dG8gZmxleCBpdGVtcy1jZW50ZXIganVzdGlmeS1iZXR3ZWVuIGgtMTYgcHgtNFwiPlxyXG4gICAgICAgIHsvKiDlt6bkvqcgTG9nbyArIOWvvOiIqiAqL31cclxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImZsZXggaXRlbXMtY2VudGVyIHNwYWNlLXgtNFwiPlxyXG4gICAgICAgICAgey8qIOenu+WKqOerr+iPnOWNleaMiemSriAqL31cclxuICAgICAgICAgIDxidXR0b24gY2xhc3NOYW1lPVwibWQ6aGlkZGVuIHAtMiBmb2N1czpvdXRsaW5lLW5vbmVcIiBvbkNsaWNrPXsoKSA9PiBzZXRPcGVuKHRydWUpfT5cclxuICAgICAgICAgICAgPE1lbnUgY2xhc3NOYW1lPVwiaC02IHctNiB0ZXh0LXByaW1hcnlcIiAvPlxyXG4gICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgICA8TGluayBocmVmPVwiL1wiPlxyXG4gICAgICAgICAgICA8aW1nIHNyYz1cIi9sb2dvLnBuZ1wiIGFsdD1cIkNsb3VkUHJveHlcIiBjbGFzc05hbWU9XCJoLTggdy04XCIgLz5cclxuICAgICAgICAgIDwvTGluaz5cclxuICAgICAgICAgIHsvKiDmoYzpnaLnq6/lr7zoiKrpk77mjqUgKi99XHJcbiAgICAgICAgICA8bmF2IGNsYXNzTmFtZT1cImhpZGRlbiBtZDpmbGV4IGl0ZW1zLWNlbnRlciBzcGFjZS14LTRcIj5cclxuICAgICAgICAgICAgPExpbmsgaHJlZj1cIi9cIiBjbGFzc05hbWU9XCJ0ZXh0LXByaW1hcnkgZm9udC1zZW1pYm9sZFwiPummlumhtTwvTGluaz5cclxuICAgICAgICAgICAgPExpbmsgaHJlZj1cIi9mZWF0dXJlc1wiIGNsYXNzTmFtZT1cInRleHQtZ3JheS02MDAgaG92ZXI6dGV4dC1wcmltYXJ5XCI+5Lqn5ZOB5LiO5pyN5YqhPC9MaW5rPlxyXG4gICAgICAgICAgICA8TGluayBocmVmPVwiL25ld3NcIiBjbGFzc05hbWU9XCJ0ZXh0LWdyYXktNjAwIGhvdmVyOnRleHQtcHJpbWFyeVwiPuaWsOmXu+i1hOiurzwvTGluaz5cclxuICAgICAgICAgICAgPExpbmsgaHJlZj1cIi9jYXNlc1wiIGNsYXNzTmFtZT1cInRleHQtZ3JheS02MDAgaG92ZXI6dGV4dC1wcmltYXJ5XCI+5a6i5oi35qGI5L6LPC9MaW5rPlxyXG4gICAgICAgICAgICA8TGluayBocmVmPVwiL2Fib3V0XCIgY2xhc3NOYW1lPVwidGV4dC1ncmF5LTYwMCBob3Zlcjp0ZXh0LXByaW1hcnlcIj7lhbPkuo7miJHku6w8L0xpbms+XHJcbiAgICAgICAgICA8L25hdj5cclxuICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgey8qIOWPs+S+p+aTjeS9nOWFpeWPoyAqL31cclxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImZsZXggaXRlbXMtY2VudGVyIHNwYWNlLXgtNFwiPlxyXG4gICAgICAgICAgPExpbmsgaHJlZj1cIi9jb250YWN0XCIgY2xhc3NOYW1lPVwicHgtNCBweS0xIGJvcmRlciBib3JkZXItcHJpbWFyeSByb3VuZGVkLWZ1bGwgdGV4dC1wcmltYXJ5IGhvdmVyOmJnLXByaW1hcnkgaG92ZXI6dGV4dC13aGl0ZSB0cmFuc2l0aW9uXCI+XHJcbiAgICAgICAgICAgIOiBlOezu+aIkeS7rFxyXG4gICAgICAgICAgPC9MaW5rPlxyXG4gICAgICAgICAgPGEgaHJlZj1cImh0dHBzOi8vaW5zdGFncmFtLmNvbVwiIHRhcmdldD1cIl9ibGFua1wiIHJlbD1cIm5vb3BlbmVyIG5vcmVmZXJyZXJcIj5cclxuICAgICAgICAgICAgPGkgY2xhc3NOYW1lPVwiZmFiIGZhLWluc3RhZ3JhbSB0ZXh0LWdyYXktNjAwIGhvdmVyOnRleHQtcHJpbWFyeVwiIC8+XHJcbiAgICAgICAgICA8L2E+XHJcbiAgICAgICAgICA8YSBocmVmPVwiaHR0cHM6Ly9mYWNlYm9vay5jb21cIiB0YXJnZXQ9XCJfYmxhbmtcIiByZWw9XCJub29wZW5lciBub3JlZmVycmVyXCI+XHJcbiAgICAgICAgICAgIDxpIGNsYXNzTmFtZT1cImZhYiBmYS1mYWNlYm9vayB0ZXh0LWdyYXktNjAwIGhvdmVyOnRleHQtcHJpbWFyeVwiIC8+XHJcbiAgICAgICAgICA8L2E+XHJcbiAgICAgICAgICA8YSBocmVmPVwiaHR0cHM6Ly90d2l0dGVyLmNvbVwiIHRhcmdldD1cIl9ibGFua1wiIHJlbD1cIm5vb3BlbmVyIG5vcmVmZXJyZXJcIj5cclxuICAgICAgICAgICAgPGkgY2xhc3NOYW1lPVwiZmFiIGZhLXR3aXR0ZXIgdGV4dC1ncmF5LTYwMCBob3Zlcjp0ZXh0LXByaW1hcnlcIiAvPlxyXG4gICAgICAgICAgPC9hPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L2Rpdj5cclxuXHJcbiAgICAgIHsvKiDkvqfovrnmoI8gKi99XHJcbiAgICAgIDxTaWRlYmFyIG9wZW49e29wZW59IG9uQ2xvc2U9eygpID0+IHNldE9wZW4oZmFsc2UpfSAvPlxyXG4gICAgPC9oZWFkZXI+XHJcbiAgKX0iXSwibmFtZXMiOlsidXNlU3RhdGUiLCJMaW5rIiwiTWVudSIsIlNpZGViYXIiLCJOYXZiYXIiLCJvcGVuIiwic2V0T3BlbiIsImhlYWRlciIsImNsYXNzTmFtZSIsImRpdiIsImJ1dHRvbiIsIm9uQ2xpY2siLCJocmVmIiwiaW1nIiwic3JjIiwiYWx0IiwibmF2IiwiYSIsInRhcmdldCIsInJlbCIsImkiLCJvbkNsb3NlIl0sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(pages-dir-browser)/./components/Navbar.tsx\n")); - -/***/ }), - -/***/ "(pages-dir-browser)/./components/Process.tsx": -/*!********************************!*\ - !*** ./components/Process.tsx ***! - \********************************/ -/***/ ((module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ Process)\n/* harmony export */ });\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react/jsx-dev-runtime */ \"(pages-dir-browser)/./node_modules/react/jsx-dev-runtime.js\");\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _barrel_optimize_names_CheckCircle_Headphones_MessageSquare_UserCheck_lucide_react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! __barrel_optimize__?names=CheckCircle,Headphones,MessageSquare,UserCheck!=!lucide-react */ \"(pages-dir-browser)/__barrel_optimize__?names=CheckCircle,Headphones,MessageSquare,UserCheck!=!./node_modules/lucide-react/dist/esm/lucide-react.js\");\n\n\nconst steps = [\n {\n icon: _barrel_optimize_names_CheckCircle_Headphones_MessageSquare_UserCheck_lucide_react__WEBPACK_IMPORTED_MODULE_1__.CheckCircle,\n label: '选择产品'\n },\n {\n icon: _barrel_optimize_names_CheckCircle_Headphones_MessageSquare_UserCheck_lucide_react__WEBPACK_IMPORTED_MODULE_1__.MessageSquare,\n label: '联系销售'\n },\n {\n icon: _barrel_optimize_names_CheckCircle_Headphones_MessageSquare_UserCheck_lucide_react__WEBPACK_IMPORTED_MODULE_1__.Headphones,\n label: '沟通业务'\n },\n {\n icon: _barrel_optimize_names_CheckCircle_Headphones_MessageSquare_UserCheck_lucide_react__WEBPACK_IMPORTED_MODULE_1__.UserCheck,\n label: '开通账户'\n }\n];\nfunction Process() {\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"section\", {\n className: \"px-6 py-section bg-background\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"h2\", {\n className: \"text-3xl font-semibold text-center mb-12\",\n children: \"开通流程\"\n }, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\Process.tsx\",\n lineNumber: 14,\n columnNumber: 7\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"max-w-screen-lg mx-auto flex justify-between items-center\",\n children: steps.map((param, idx)=>{\n let { icon: Icon, label } = param;\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex flex-col items-center text-center\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(Icon, {\n className: \"h-12 w-12 text-accent mb-4\"\n }, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\Process.tsx\",\n lineNumber: 18,\n columnNumber: 13\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"h-0.5 bg-accent w-24 mb-2\"\n }, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\Process.tsx\",\n lineNumber: 19,\n columnNumber: 13\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n className: \"text-base text-primary\",\n children: label\n }, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\Process.tsx\",\n lineNumber: 20,\n columnNumber: 13\n }, this)\n ]\n }, label, true, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\Process.tsx\",\n lineNumber: 17,\n columnNumber: 11\n }, this);\n })\n }, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\Process.tsx\",\n lineNumber: 15,\n columnNumber: 7\n }, this)\n ]\n }, void 0, true, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\Process.tsx\",\n lineNumber: 13,\n columnNumber: 5\n }, this);\n}\n_c = Process;\nvar _c;\n$RefreshReg$(_c, \"Process\");\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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1icm93c2VyKS8uL2NvbXBvbmVudHMvUHJvY2Vzcy50c3giLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7QUFDaUY7QUFFakYsTUFBTUksUUFBUTtJQUNaO1FBQUVDLE1BQU1MLDJIQUFXQTtRQUFFTSxPQUFPO0lBQU87SUFDbkM7UUFBRUQsTUFBTUosNkhBQWFBO1FBQUVLLE9BQU87SUFBTztJQUNyQztRQUFFRCxNQUFNSCwwSEFBVUE7UUFBRUksT0FBTztJQUFPO0lBQ2xDO1FBQUVELE1BQU1GLHlIQUFTQTtRQUFFRyxPQUFPO0lBQU87Q0FDbEM7QUFFYyxTQUFTQztJQUN0QixxQkFDRSw4REFBQ0M7UUFBUUMsV0FBVTs7MEJBQ2pCLDhEQUFDQztnQkFBR0QsV0FBVTswQkFBMkM7Ozs7OzswQkFDekQsOERBQUNFO2dCQUFJRixXQUFVOzBCQUNaTCxNQUFNUSxHQUFHLENBQUMsUUFBd0JDO3dCQUF2QixFQUFFUixNQUFNUyxJQUFJLEVBQUVSLEtBQUssRUFBRTt5Q0FDL0IsOERBQUNLO3dCQUFnQkYsV0FBVTs7MENBQ3pCLDhEQUFDSztnQ0FBS0wsV0FBVTs7Ozs7OzBDQUNoQiw4REFBQ0U7Z0NBQUlGLFdBQVU7Ozs7OzswQ0FDZiw4REFBQ007Z0NBQUtOLFdBQVU7MENBQTBCSDs7Ozs7Ozt1QkFIbENBOzs7Ozs7Ozs7Ozs7Ozs7OztBQVNwQjtLQWZ3QkMiLCJzb3VyY2VzIjpbIkQ6XFxkb25neXVuLXByb2plY3RzXFx0d29cXGNvbXBvbmVudHNcXFByb2Nlc3MudHN4Il0sInNvdXJjZXNDb250ZW50IjpbIlxyXG5pbXBvcnQgeyBDaGVja0NpcmNsZSwgTWVzc2FnZVNxdWFyZSwgSGVhZHBob25lcywgVXNlckNoZWNrIH0gZnJvbSAnbHVjaWRlLXJlYWN0JztcclxuXHJcbmNvbnN0IHN0ZXBzID0gW1xyXG4gIHsgaWNvbjogQ2hlY2tDaXJjbGUsIGxhYmVsOiAn6YCJ5oup5Lqn5ZOBJyB9LFxyXG4gIHsgaWNvbjogTWVzc2FnZVNxdWFyZSwgbGFiZWw6ICfogZTns7vplIDllK4nIH0sXHJcbiAgeyBpY29uOiBIZWFkcGhvbmVzLCBsYWJlbDogJ+ayn+mAmuS4muWKoScgfSxcclxuICB7IGljb246IFVzZXJDaGVjaywgbGFiZWw6ICflvIDpgJrotKbmiLcnIH0sXHJcbl07XHJcblxyXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBQcm9jZXNzKCkge1xyXG4gIHJldHVybiAoXHJcbiAgICA8c2VjdGlvbiBjbGFzc05hbWU9XCJweC02IHB5LXNlY3Rpb24gYmctYmFja2dyb3VuZFwiPlxyXG4gICAgICA8aDIgY2xhc3NOYW1lPVwidGV4dC0zeGwgZm9udC1zZW1pYm9sZCB0ZXh0LWNlbnRlciBtYi0xMlwiPuW8gOmAmua1geeoizwvaDI+XHJcbiAgICAgIDxkaXYgY2xhc3NOYW1lPVwibWF4LXctc2NyZWVuLWxnIG14LWF1dG8gZmxleCBqdXN0aWZ5LWJldHdlZW4gaXRlbXMtY2VudGVyXCI+XHJcbiAgICAgICAge3N0ZXBzLm1hcCgoeyBpY29uOiBJY29uLCBsYWJlbCB9LCBpZHgpID0+IChcclxuICAgICAgICAgIDxkaXYga2V5PXtsYWJlbH0gY2xhc3NOYW1lPVwiZmxleCBmbGV4LWNvbCBpdGVtcy1jZW50ZXIgdGV4dC1jZW50ZXJcIj5cclxuICAgICAgICAgICAgPEljb24gY2xhc3NOYW1lPVwiaC0xMiB3LTEyIHRleHQtYWNjZW50IG1iLTRcIiAvPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImgtMC41IGJnLWFjY2VudCB3LTI0IG1iLTJcIj48L2Rpdj5cclxuICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwidGV4dC1iYXNlIHRleHQtcHJpbWFyeVwiPntsYWJlbH08L3NwYW4+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICApKX1cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L3NlY3Rpb24+XHJcbiAgKTtcclxufSJdLCJuYW1lcyI6WyJDaGVja0NpcmNsZSIsIk1lc3NhZ2VTcXVhcmUiLCJIZWFkcGhvbmVzIiwiVXNlckNoZWNrIiwic3RlcHMiLCJpY29uIiwibGFiZWwiLCJQcm9jZXNzIiwic2VjdGlvbiIsImNsYXNzTmFtZSIsImgyIiwiZGl2IiwibWFwIiwiaWR4IiwiSWNvbiIsInNwYW4iXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(pages-dir-browser)/./components/Process.tsx\n")); - -/***/ }), - -/***/ "(pages-dir-browser)/./components/Sidebar.tsx": -/*!********************************!*\ - !*** ./components/Sidebar.tsx ***! - \********************************/ -/***/ ((module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ Sidebar)\n/* harmony export */ });\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react/jsx-dev-runtime */ \"(pages-dir-browser)/./node_modules/react/jsx-dev-runtime.js\");\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var next_link__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! next/link */ \"(pages-dir-browser)/./node_modules/next/link.js\");\n/* harmony import */ var next_link__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(next_link__WEBPACK_IMPORTED_MODULE_1__);\n\n\nfunction Sidebar(param) {\n let { open, onClose } = param;\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"aside\", {\n className: \"fixed inset-y-0 right-0 w-64 bg-background shadow-lg transform transition-transform duration-300 \" + (open ? 'translate-x-0' : 'translate-x-full'),\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"button\", {\n onClick: onClose,\n className: \"p-4 focus:outline-none text-primary\",\n children: \"✕ 关闭\"\n }, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\Sidebar.tsx\",\n lineNumber: 11,\n columnNumber: 7\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"nav\", {\n className: \"flex flex-col p-6 gap-6 font-medium\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)((next_link__WEBPACK_IMPORTED_MODULE_1___default()), {\n href: \"/features\",\n legacyBehavior: true,\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"a\", {\n onClick: onClose,\n className: \"hover:text-accent\",\n children: \"特性\"\n }, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\Sidebar.tsx\",\n lineNumber: 14,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\Sidebar.tsx\",\n lineNumber: 13,\n columnNumber: 9\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)((next_link__WEBPACK_IMPORTED_MODULE_1___default()), {\n href: \"/pricing\",\n legacyBehavior: true,\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"a\", {\n onClick: onClose,\n className: \"hover:text-accent\",\n children: \"定价\"\n }, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\Sidebar.tsx\",\n lineNumber: 17,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\Sidebar.tsx\",\n lineNumber: 16,\n columnNumber: 9\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)((next_link__WEBPACK_IMPORTED_MODULE_1___default()), {\n href: \"/contact\",\n legacyBehavior: true,\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"a\", {\n onClick: onClose,\n className: \"hover:text-accent\",\n children: \"联系我们\"\n }, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\Sidebar.tsx\",\n lineNumber: 20,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\Sidebar.tsx\",\n lineNumber: 19,\n columnNumber: 9\n }, this)\n ]\n }, void 0, true, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\Sidebar.tsx\",\n lineNumber: 12,\n columnNumber: 7\n }, this)\n ]\n }, void 0, true, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\Sidebar.tsx\",\n lineNumber: 5,\n columnNumber: 5\n }, this);\n}\n_c = Sidebar;\nvar _c;\n$RefreshReg$(_c, \"Sidebar\");\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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1icm93c2VyKS8uL2NvbXBvbmVudHMvU2lkZWJhci50c3giLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O0FBQTZCO0FBRWQsU0FBU0MsUUFBUSxLQUF5RDtRQUF6RCxFQUFFQyxJQUFJLEVBQUVDLE9BQU8sRUFBMEMsR0FBekQ7SUFDOUIscUJBQ0UsOERBQUNDO1FBQ0NDLFdBQ0Usc0dBQ0NILENBQUFBLE9BQU8sa0JBQWtCLGtCQUFpQjs7MEJBRzdDLDhEQUFDSTtnQkFBT0MsU0FBU0o7Z0JBQVNFLFdBQVU7MEJBQXNDOzs7Ozs7MEJBQzFFLDhEQUFDRztnQkFBSUgsV0FBVTs7a0NBQ2IsOERBQUNMLGtEQUFJQTt3QkFBQ1MsTUFBSzt3QkFBWUMsY0FBYztrQ0FDbkMsNEVBQUNDOzRCQUFFSixTQUFTSjs0QkFBU0UsV0FBVTtzQ0FBb0I7Ozs7Ozs7Ozs7O2tDQUVyRCw4REFBQ0wsa0RBQUlBO3dCQUFDUyxNQUFLO3dCQUFXQyxjQUFjO2tDQUNsQyw0RUFBQ0M7NEJBQUVKLFNBQVNKOzRCQUFTRSxXQUFVO3NDQUFvQjs7Ozs7Ozs7Ozs7a0NBRXJELDhEQUFDTCxrREFBSUE7d0JBQUNTLE1BQUs7d0JBQVdDLGNBQWM7a0NBQ2xDLDRFQUFDQzs0QkFBRUosU0FBU0o7NEJBQVNFLFdBQVU7c0NBQW9COzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUs3RDtLQXRCd0JKIiwic291cmNlcyI6WyJEOlxcZG9uZ3l1bi1wcm9qZWN0c1xcdHdvXFxjb21wb25lbnRzXFxTaWRlYmFyLnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgTGluayBmcm9tICduZXh0L2xpbmsnO1xyXG5cclxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gU2lkZWJhcih7IG9wZW4sIG9uQ2xvc2UgfTogeyBvcGVuOiBib29sZWFuOyBvbkNsb3NlOiAoKSA9PiB2b2lkIH0pIHtcclxuICByZXR1cm4gKFxyXG4gICAgPGFzaWRlXHJcbiAgICAgIGNsYXNzTmFtZT17XHJcbiAgICAgICAgYGZpeGVkIGluc2V0LXktMCByaWdodC0wIHctNjQgYmctYmFja2dyb3VuZCBzaGFkb3ctbGcgdHJhbnNmb3JtIHRyYW5zaXRpb24tdHJhbnNmb3JtIGR1cmF0aW9uLTMwMCBgICtcclxuICAgICAgICAob3BlbiA/ICd0cmFuc2xhdGUteC0wJyA6ICd0cmFuc2xhdGUteC1mdWxsJylcclxuICAgICAgfVxyXG4gICAgPlxyXG4gICAgICA8YnV0dG9uIG9uQ2xpY2s9e29uQ2xvc2V9IGNsYXNzTmFtZT1cInAtNCBmb2N1czpvdXRsaW5lLW5vbmUgdGV4dC1wcmltYXJ5XCI+4pyVIOWFs+mXrTwvYnV0dG9uPlxyXG4gICAgICA8bmF2IGNsYXNzTmFtZT1cImZsZXggZmxleC1jb2wgcC02IGdhcC02IGZvbnQtbWVkaXVtXCI+XHJcbiAgICAgICAgPExpbmsgaHJlZj1cIi9mZWF0dXJlc1wiIGxlZ2FjeUJlaGF2aW9yPlxyXG4gICAgICAgICAgPGEgb25DbGljaz17b25DbG9zZX0gY2xhc3NOYW1lPVwiaG92ZXI6dGV4dC1hY2NlbnRcIj7nibnmgKc8L2E+XHJcbiAgICAgICAgPC9MaW5rPlxyXG4gICAgICAgIDxMaW5rIGhyZWY9XCIvcHJpY2luZ1wiIGxlZ2FjeUJlaGF2aW9yPlxyXG4gICAgICAgICAgPGEgb25DbGljaz17b25DbG9zZX0gY2xhc3NOYW1lPVwiaG92ZXI6dGV4dC1hY2NlbnRcIj7lrprku7c8L2E+XHJcbiAgICAgICAgPC9MaW5rPlxyXG4gICAgICAgIDxMaW5rIGhyZWY9XCIvY29udGFjdFwiIGxlZ2FjeUJlaGF2aW9yPlxyXG4gICAgICAgICAgPGEgb25DbGljaz17b25DbG9zZX0gY2xhc3NOYW1lPVwiaG92ZXI6dGV4dC1hY2NlbnRcIj7ogZTns7vmiJHku6w8L2E+XHJcbiAgICAgICAgPC9MaW5rPlxyXG4gICAgICA8L25hdj5cclxuICAgIDwvYXNpZGU+XHJcbiAgKTtcclxufSJdLCJuYW1lcyI6WyJMaW5rIiwiU2lkZWJhciIsIm9wZW4iLCJvbkNsb3NlIiwiYXNpZGUiLCJjbGFzc05hbWUiLCJidXR0b24iLCJvbkNsaWNrIiwibmF2IiwiaHJlZiIsImxlZ2FjeUJlaGF2aW9yIiwiYSJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(pages-dir-browser)/./components/Sidebar.tsx\n")); - -/***/ }), - -/***/ "(pages-dir-browser)/./components/Testimonials.tsx": -/*!*************************************!*\ - !*** ./components/Testimonials.tsx ***! - \*************************************/ -/***/ ((module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ Testimonials)\n/* harmony export */ });\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react/jsx-dev-runtime */ \"(pages-dir-browser)/./node_modules/react/jsx-dev-runtime.js\");\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__);\n\nconst testimonials = [\n {\n name: 'Alice',\n content: 'CloudProxy 让我在海外部署的服务延迟降低了 60%!',\n avatar: '/avatars/alice.jpg'\n },\n {\n name: 'Bob',\n content: '简单易用的控制面板,实时网络指标一目了然。',\n avatar: '/avatars/bob.jpg'\n }\n];\nfunction Testimonials() {\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"section\", {\n className: \"px-6 py-section bg-background\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"max-w-screen-md mx-auto space-y-12\",\n children: testimonials.map((t)=>/*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex items-center gap-6\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"img\", {\n src: t.avatar,\n alt: t.name,\n className: \"h-16 w-16 rounded-full\"\n }, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\Testimonials.tsx\",\n lineNumber: 12,\n columnNumber: 13\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)(\"p\", {\n className: \"italic\",\n children: [\n \"“\",\n t.content,\n \"”\"\n ]\n }, void 0, true, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\Testimonials.tsx\",\n lineNumber: 14,\n columnNumber: 15\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"p\", {\n className: \"mt-2 font-medium\",\n children: [\n \"— \",\n t.name\n ]\n }, void 0, true, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\Testimonials.tsx\",\n lineNumber: 15,\n columnNumber: 15\n }, this)\n ]\n }, void 0, true, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\Testimonials.tsx\",\n lineNumber: 13,\n columnNumber: 13\n }, this)\n ]\n }, t.name, true, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\Testimonials.tsx\",\n lineNumber: 11,\n columnNumber: 11\n }, this))\n }, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\Testimonials.tsx\",\n lineNumber: 9,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\Testimonials.tsx\",\n lineNumber: 8,\n columnNumber: 5\n }, this);\n}\n_c = Testimonials;\nvar _c;\n$RefreshReg$(_c, \"Testimonials\");\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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1icm93c2VyKS8uL2NvbXBvbmVudHMvVGVzdGltb25pYWxzLnRzeCIsIm1hcHBpbmdzIjoiOzs7Ozs7O0FBQUEsTUFBTUEsZUFBZTtJQUNuQjtRQUFFQyxNQUFNO1FBQVNDLFNBQVM7UUFBbUNDLFFBQVE7SUFBcUI7SUFDMUY7UUFBRUYsTUFBTTtRQUFPQyxTQUFTO1FBQXlCQyxRQUFRO0lBQW1CO0NBQzdFO0FBRWMsU0FBU0M7SUFDdEIscUJBQ0UsOERBQUNDO1FBQVFDLFdBQVU7a0JBQ2pCLDRFQUFDQztZQUFJRCxXQUFVO3NCQUNaTixhQUFhUSxHQUFHLENBQUNDLENBQUFBLGtCQUNoQiw4REFBQ0Y7b0JBQWlCRCxXQUFVOztzQ0FDMUIsOERBQUNJOzRCQUFJQyxLQUFLRixFQUFFTixNQUFNOzRCQUFFUyxLQUFLSCxFQUFFUixJQUFJOzRCQUFFSyxXQUFVOzs7Ozs7c0NBQzNDLDhEQUFDQzs7OENBQ0MsOERBQUNNO29DQUFFUCxXQUFVOzt3Q0FBUzt3Q0FBRUcsRUFBRVAsT0FBTzt3Q0FBQzs7Ozs7Ozs4Q0FDbEMsOERBQUNXO29DQUFFUCxXQUFVOzt3Q0FBbUI7d0NBQUdHLEVBQUVSLElBQUk7Ozs7Ozs7Ozs7Ozs7O21CQUpuQ1EsRUFBRVIsSUFBSTs7Ozs7Ozs7Ozs7Ozs7O0FBVzFCO0tBaEJ3QkciLCJzb3VyY2VzIjpbIkQ6XFxkb25neXVuLXByb2plY3RzXFx0d29cXGNvbXBvbmVudHNcXFRlc3RpbW9uaWFscy50c3giXSwic291cmNlc0NvbnRlbnQiOlsiY29uc3QgdGVzdGltb25pYWxzID0gW1xyXG4gIHsgbmFtZTogJ0FsaWNlJywgY29udGVudDogJ0Nsb3VkUHJveHkg6K6p5oiR5Zyo5rW35aSW6YOo572y55qE5pyN5Yqh5bu26L+f6ZmN5L2O5LqGIDYwJe+8gScsIGF2YXRhcjogJy9hdmF0YXJzL2FsaWNlLmpwZycgfSxcclxuICB7IG5hbWU6ICdCb2InLCBjb250ZW50OiAn566A5Y2V5piT55So55qE5o6n5Yi26Z2i5p2/77yM5a6e5pe2572R57uc5oyH5qCH5LiA55uu5LqG54S244CCJywgYXZhdGFyOiAnL2F2YXRhcnMvYm9iLmpwZycgfSxcclxuXTtcclxuXHJcbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIFRlc3RpbW9uaWFscygpIHtcclxuICByZXR1cm4gKFxyXG4gICAgPHNlY3Rpb24gY2xhc3NOYW1lPVwicHgtNiBweS1zZWN0aW9uIGJnLWJhY2tncm91bmRcIj5cclxuICAgICAgPGRpdiBjbGFzc05hbWU9XCJtYXgtdy1zY3JlZW4tbWQgbXgtYXV0byBzcGFjZS15LTEyXCI+XHJcbiAgICAgICAge3Rlc3RpbW9uaWFscy5tYXAodCA9PiAoXHJcbiAgICAgICAgICA8ZGl2IGtleT17dC5uYW1lfSBjbGFzc05hbWU9XCJmbGV4IGl0ZW1zLWNlbnRlciBnYXAtNlwiPlxyXG4gICAgICAgICAgICA8aW1nIHNyYz17dC5hdmF0YXJ9IGFsdD17dC5uYW1lfSBjbGFzc05hbWU9XCJoLTE2IHctMTYgcm91bmRlZC1mdWxsXCIgLz5cclxuICAgICAgICAgICAgPGRpdj5cclxuICAgICAgICAgICAgICA8cCBjbGFzc05hbWU9XCJpdGFsaWNcIj7igJx7dC5jb250ZW50feKAnTwvcD5cclxuICAgICAgICAgICAgICA8cCBjbGFzc05hbWU9XCJtdC0yIGZvbnQtbWVkaXVtXCI+4oCUIHt0Lm5hbWV9PC9wPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICkpfVxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvc2VjdGlvbj5cclxuICApO1xyXG59Il0sIm5hbWVzIjpbInRlc3RpbW9uaWFscyIsIm5hbWUiLCJjb250ZW50IiwiYXZhdGFyIiwiVGVzdGltb25pYWxzIiwic2VjdGlvbiIsImNsYXNzTmFtZSIsImRpdiIsIm1hcCIsInQiLCJpbWciLCJzcmMiLCJhbHQiLCJwIl0sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(pages-dir-browser)/./components/Testimonials.tsx\n")); - -/***/ }), - -/***/ "(pages-dir-browser)/./node_modules/lucide-react/dist/esm/Icon.js": -/*!****************************************************!*\ - !*** ./node_modules/lucide-react/dist/esm/Icon.js ***! - \****************************************************/ -/***/ ((module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ Icon)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"(pages-dir-browser)/./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _defaultAttributes_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./defaultAttributes.js */ \"(pages-dir-browser)/./node_modules/lucide-react/dist/esm/defaultAttributes.js\");\n/* harmony import */ var _shared_src_utils_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./shared/src/utils.js */ \"(pages-dir-browser)/./node_modules/lucide-react/dist/esm/shared/src/utils.js\");\n/**\n * @license lucide-react v0.525.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */ \n\n\nconst Icon = /*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.forwardRef)(_c = (param, ref)=>{\n let { color = \"currentColor\", size = 24, strokeWidth = 2, absoluteStrokeWidth, className = \"\", children, iconNode, ...rest } = param;\n return /*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(\"svg\", {\n ref,\n ..._defaultAttributes_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"],\n width: size,\n height: size,\n stroke: color,\n strokeWidth: absoluteStrokeWidth ? Number(strokeWidth) * 24 / Number(size) : strokeWidth,\n className: (0,_shared_src_utils_js__WEBPACK_IMPORTED_MODULE_2__.mergeClasses)(\"lucide\", className),\n ...!children && !(0,_shared_src_utils_js__WEBPACK_IMPORTED_MODULE_2__.hasA11yProp)(rest) && {\n \"aria-hidden\": \"true\"\n },\n ...rest\n }, [\n ...iconNode.map((param)=>{\n let [tag, attrs] = param;\n return /*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(tag, attrs);\n }),\n ...Array.isArray(children) ? children : [\n children\n ]\n ]);\n});\n_c1 = Icon;\n //# sourceMappingURL=Icon.js.map\nvar _c, _c1;\n$RefreshReg$(_c, \"Icon$forwardRef\");\n$RefreshReg$(_c1, \"Icon\");\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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9sdWNpZGUtcmVhY3QvZGlzdC9lc20vSWNvbi5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7O0FBd0JBLENBQU0sU0FBTyx3RUFDWCxRQVdFLENBRUE7UUFaQSxFQUNFLEtBQVEsbUJBQ1IsSUFBTyxPQUNQLFdBQWMsTUFDZCxxQkFDQSxTQUFZLE9BQ1osVUFDQSxVQUNBLENBQUc7eUJBSUwscURBQ0UsT0FDQTtRQUNFO1FBQ0EsR0FBRztRQUNILEtBQU87UUFDUCxNQUFRO1FBQ1IsTUFBUTtRQUNSLFlBQWEscUJBQXVCLFFBQU8sRUFBVyxZQUFJLElBQU0sVUFBTyxDQUFJLElBQUk7UUFDL0UsVUFBVyxtRUFBYSxXQUFVLFNBQVM7UUFDM0MsQ0FBSSxHQUFDLENBQVksWUFBQyxpRUFBVyxDQUFDLENBQUksS0FBSztZQUFFLGVBQWUsTUFBTztRQUFBO1FBQy9ELENBQUc7SUFDTCxHQUNBO1dBQ0ssQ0FBUyxZQUFJO2dCQUFDLENBQUMsQ0FBSyxLQUFLLEtBQU07aUNBQUEscURBQWMsR0FBSyxPQUFLLENBQUM7O1dBQ3ZELENBQU0sYUFBUSxDQUFRLFFBQUksWUFBVztZQUFDLENBQVE7U0FBQTtLQUFBIiwic291cmNlcyI6WyJEOlxcc3JjXFxJY29uLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGNyZWF0ZUVsZW1lbnQsIGZvcndhcmRSZWYgfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgeyBJY29uTm9kZSwgTHVjaWRlUHJvcHMgfSBmcm9tICcuL3R5cGVzJztcbmltcG9ydCB7IG1lcmdlQ2xhc3NlcywgaGFzQTExeVByb3AgfSBmcm9tICdAbHVjaWRlL3NoYXJlZCc7XG5cbmludGVyZmFjZSBJY29uQ29tcG9uZW50UHJvcHMgZXh0ZW5kcyBMdWNpZGVQcm9wcyB7XG4gIGljb25Ob2RlOiBJY29uTm9kZTtcbn1cblxuLyoqXG4gKiBMdWNpZGUgaWNvbiBjb21wb25lbnRcbiAqXG4gKiBAY29tcG9uZW50IEljb25cbiAqIEBwYXJhbSB7b2JqZWN0fSBwcm9wc1xuICogQHBhcmFtIHtzdHJpbmd9IHByb3BzLmNvbG9yIC0gVGhlIGNvbG9yIG9mIHRoZSBpY29uXG4gKiBAcGFyYW0ge251bWJlcn0gcHJvcHMuc2l6ZSAtIFRoZSBzaXplIG9mIHRoZSBpY29uXG4gKiBAcGFyYW0ge251bWJlcn0gcHJvcHMuc3Ryb2tlV2lkdGggLSBUaGUgc3Ryb2tlIHdpZHRoIG9mIHRoZSBpY29uXG4gKiBAcGFyYW0ge2Jvb2xlYW59IHByb3BzLmFic29sdXRlU3Ryb2tlV2lkdGggLSBXaGV0aGVyIHRvIHVzZSBhYnNvbHV0ZSBzdHJva2Ugd2lkdGhcbiAqIEBwYXJhbSB7c3RyaW5nfSBwcm9wcy5jbGFzc05hbWUgLSBUaGUgY2xhc3MgbmFtZSBvZiB0aGUgaWNvblxuICogQHBhcmFtIHtJY29uTm9kZX0gcHJvcHMuY2hpbGRyZW4gLSBUaGUgY2hpbGRyZW4gb2YgdGhlIGljb25cbiAqIEBwYXJhbSB7SWNvbk5vZGV9IHByb3BzLmljb25Ob2RlIC0gVGhlIGljb24gbm9kZSBvZiB0aGUgaWNvblxuICpcbiAqIEByZXR1cm5zIHtGb3J3YXJkUmVmRXhvdGljQ29tcG9uZW50fSBMdWNpZGVJY29uXG4gKi9cbmNvbnN0IEljb24gPSBmb3J3YXJkUmVmPFNWR1NWR0VsZW1lbnQsIEljb25Db21wb25lbnRQcm9wcz4oXG4gIChcbiAgICB7XG4gICAgICBjb2xvciA9ICdjdXJyZW50Q29sb3InLFxuICAgICAgc2l6ZSA9IDI0LFxuICAgICAgc3Ryb2tlV2lkdGggPSAyLFxuICAgICAgYWJzb2x1dGVTdHJva2VXaWR0aCxcbiAgICAgIGNsYXNzTmFtZSA9ICcnLFxuICAgICAgY2hpbGRyZW4sXG4gICAgICBpY29uTm9kZSxcbiAgICAgIC4uLnJlc3RcbiAgICB9LFxuICAgIHJlZixcbiAgKSA9PlxuICAgIGNyZWF0ZUVsZW1lbnQoXG4gICAgICAnc3ZnJyxcbiAgICAgIHtcbiAgICAgICAgcmVmLFxuICAgICAgICAuLi5kZWZhdWx0QXR0cmlidXRlcyxcbiAgICAgICAgd2lkdGg6IHNpemUsXG4gICAgICAgIGhlaWdodDogc2l6ZSxcbiAgICAgICAgc3Ryb2tlOiBjb2xvcixcbiAgICAgICAgc3Ryb2tlV2lkdGg6IGFic29sdXRlU3Ryb2tlV2lkdGggPyAoTnVtYmVyKHN0cm9rZVdpZHRoKSAqIDI0KSAvIE51bWJlcihzaXplKSA6IHN0cm9rZVdpZHRoLFxuICAgICAgICBjbGFzc05hbWU6IG1lcmdlQ2xhc3NlcygnbHVjaWRlJywgY2xhc3NOYW1lKSxcbiAgICAgICAgLi4uKCFjaGlsZHJlbiAmJiAhaGFzQTExeVByb3AocmVzdCkgJiYgeyAnYXJpYS1oaWRkZW4nOiAndHJ1ZScgfSksXG4gICAgICAgIC4uLnJlc3QsXG4gICAgICB9LFxuICAgICAgW1xuICAgICAgICAuLi5pY29uTm9kZS5tYXAoKFt0YWcsIGF0dHJzXSkgPT4gY3JlYXRlRWxlbWVudCh0YWcsIGF0dHJzKSksXG4gICAgICAgIC4uLihBcnJheS5pc0FycmF5KGNoaWxkcmVuKSA/IGNoaWxkcmVuIDogW2NoaWxkcmVuXSksXG4gICAgICBdLFxuICAgICksXG4pO1xuXG5leHBvcnQgZGVmYXVsdCBJY29uO1xuIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(pages-dir-browser)/./node_modules/lucide-react/dist/esm/Icon.js\n")); - -/***/ }), - -/***/ "(pages-dir-browser)/./node_modules/lucide-react/dist/esm/createLucideIcon.js": -/*!****************************************************************!*\ - !*** ./node_modules/lucide-react/dist/esm/createLucideIcon.js ***! - \****************************************************************/ -/***/ ((module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ createLucideIcon)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"(pages-dir-browser)/./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _shared_src_utils_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./shared/src/utils.js */ \"(pages-dir-browser)/./node_modules/lucide-react/dist/esm/shared/src/utils.js\");\n/* harmony import */ var _Icon_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./Icon.js */ \"(pages-dir-browser)/./node_modules/lucide-react/dist/esm/Icon.js\");\n/**\n * @license lucide-react v0.525.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */ \n\n\nconst createLucideIcon = (iconName, iconNode)=>{\n const Component = /*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.forwardRef)((param, ref)=>{\n let { className, ...props } = param;\n return /*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(_Icon_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"], {\n ref,\n iconNode,\n className: (0,_shared_src_utils_js__WEBPACK_IMPORTED_MODULE_2__.mergeClasses)(\"lucide-\".concat((0,_shared_src_utils_js__WEBPACK_IMPORTED_MODULE_2__.toKebabCase)((0,_shared_src_utils_js__WEBPACK_IMPORTED_MODULE_2__.toPascalCase)(iconName))), \"lucide-\".concat(iconName), className),\n ...props\n });\n });\n Component.displayName = (0,_shared_src_utils_js__WEBPACK_IMPORTED_MODULE_2__.toPascalCase)(iconName);\n return Component;\n};\n //# sourceMappingURL=createLucideIcon.js.map\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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9sdWNpZGUtcmVhY3QvZGlzdC9lc20vY3JlYXRlTHVjaWRlSWNvbi5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7O0FBV00sdUJBQW1CLEdBQUMsVUFBa0IsUUFBdUI7SUFDakUsTUFBTSxDQUFZLDJFQUF1QyxRQUEwQjtZQUF6QixFQUFFLENBQVcsV0FBRyxRQUFTOzZCQUNqRixvREFBYSxDQUFDLGdEQUFNO1lBQ2xCO1lBQ0E7WUFDQSxTQUFXLHFFQUNDLFVBQW1DLE9BQW5DLGtFQUFZLGtFQUFhLEVBQVEsUUFBQyxDQUFDLEdBQzdDLFFBQVUsRUFBUSxPQUFSLFFBQVEsR0FDbEI7WUFFRixDQUFHO1FBQ0o7O0lBR08sd0JBQWMsa0VBQVksQ0FBQyxRQUFRO0lBRXRDO0FBQ1QiLCJzb3VyY2VzIjpbIkQ6XFxzcmNcXGNyZWF0ZUx1Y2lkZUljb24udHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgY3JlYXRlRWxlbWVudCwgZm9yd2FyZFJlZiB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IG1lcmdlQ2xhc3NlcywgdG9LZWJhYkNhc2UsIHRvUGFzY2FsQ2FzZSB9IGZyb20gJ0BsdWNpZGUvc2hhcmVkJztcbmltcG9ydCB7IEljb25Ob2RlLCBMdWNpZGVQcm9wcyB9IGZyb20gJy4vdHlwZXMnO1xuaW1wb3J0IEljb24gZnJvbSAnLi9JY29uJztcblxuLyoqXG4gKiBDcmVhdGUgYSBMdWNpZGUgaWNvbiBjb21wb25lbnRcbiAqIEBwYXJhbSB7c3RyaW5nfSBpY29uTmFtZVxuICogQHBhcmFtIHthcnJheX0gaWNvbk5vZGVcbiAqIEByZXR1cm5zIHtGb3J3YXJkUmVmRXhvdGljQ29tcG9uZW50fSBMdWNpZGVJY29uXG4gKi9cbmNvbnN0IGNyZWF0ZUx1Y2lkZUljb24gPSAoaWNvbk5hbWU6IHN0cmluZywgaWNvbk5vZGU6IEljb25Ob2RlKSA9PiB7XG4gIGNvbnN0IENvbXBvbmVudCA9IGZvcndhcmRSZWY8U1ZHU1ZHRWxlbWVudCwgTHVjaWRlUHJvcHM+KCh7IGNsYXNzTmFtZSwgLi4ucHJvcHMgfSwgcmVmKSA9PlxuICAgIGNyZWF0ZUVsZW1lbnQoSWNvbiwge1xuICAgICAgcmVmLFxuICAgICAgaWNvbk5vZGUsXG4gICAgICBjbGFzc05hbWU6IG1lcmdlQ2xhc3NlcyhcbiAgICAgICAgYGx1Y2lkZS0ke3RvS2ViYWJDYXNlKHRvUGFzY2FsQ2FzZShpY29uTmFtZSkpfWAsXG4gICAgICAgIGBsdWNpZGUtJHtpY29uTmFtZX1gLFxuICAgICAgICBjbGFzc05hbWUsXG4gICAgICApLFxuICAgICAgLi4ucHJvcHMsXG4gICAgfSksXG4gICk7XG5cbiAgQ29tcG9uZW50LmRpc3BsYXlOYW1lID0gdG9QYXNjYWxDYXNlKGljb25OYW1lKTtcblxuICByZXR1cm4gQ29tcG9uZW50O1xufTtcblxuZXhwb3J0IGRlZmF1bHQgY3JlYXRlTHVjaWRlSWNvbjtcbiJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(pages-dir-browser)/./node_modules/lucide-react/dist/esm/createLucideIcon.js\n")); - -/***/ }), - -/***/ "(pages-dir-browser)/./node_modules/lucide-react/dist/esm/defaultAttributes.js": -/*!*****************************************************************!*\ - !*** ./node_modules/lucide-react/dist/esm/defaultAttributes.js ***! - \*****************************************************************/ -/***/ ((module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ defaultAttributes)\n/* harmony export */ });\n/**\n * @license lucide-react v0.525.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */ var defaultAttributes = {\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 24,\n height: 24,\n viewBox: \"0 0 24 24\",\n fill: \"none\",\n stroke: \"currentColor\",\n strokeWidth: 2,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n};\n //# sourceMappingURL=defaultAttributes.js.map\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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9sdWNpZGUtcmVhY3QvZGlzdC9lc20vZGVmYXVsdEF0dHJpYnV0ZXMuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O0lBQUEsQ0FBZTtJQUNiLEtBQU87SUFDUCxLQUFPO0lBQ1AsTUFBUTtJQUNSLE9BQVM7SUFDVCxJQUFNO0lBQ04sTUFBUTtJQUNSLFdBQWE7SUFDYixhQUFlO0lBQ2YsY0FBZ0I7QUFDbEIiLCJzb3VyY2VzIjpbIkQ6XFxzcmNcXGRlZmF1bHRBdHRyaWJ1dGVzLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBkZWZhdWx0IHtcbiAgeG1sbnM6ICdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZycsXG4gIHdpZHRoOiAyNCxcbiAgaGVpZ2h0OiAyNCxcbiAgdmlld0JveDogJzAgMCAyNCAyNCcsXG4gIGZpbGw6ICdub25lJyxcbiAgc3Ryb2tlOiAnY3VycmVudENvbG9yJyxcbiAgc3Ryb2tlV2lkdGg6IDIsXG4gIHN0cm9rZUxpbmVjYXA6ICdyb3VuZCcsXG4gIHN0cm9rZUxpbmVqb2luOiAncm91bmQnLFxufTtcbiJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(pages-dir-browser)/./node_modules/lucide-react/dist/esm/defaultAttributes.js\n")); - -/***/ }), - -/***/ "(pages-dir-browser)/./node_modules/lucide-react/dist/esm/icons/arrow-right.js": -/*!*****************************************************************!*\ - !*** ./node_modules/lucide-react/dist/esm/icons/arrow-right.js ***! - \*****************************************************************/ -/***/ ((module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ __iconNode: () => (/* binding */ __iconNode),\n/* harmony export */ \"default\": () => (/* binding */ ArrowRight)\n/* harmony export */ });\n/* harmony import */ var _createLucideIcon_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../createLucideIcon.js */ \"(pages-dir-browser)/./node_modules/lucide-react/dist/esm/createLucideIcon.js\");\n/**\n * @license lucide-react v0.525.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */ \nconst __iconNode = [\n [\n \"path\",\n {\n d: \"M5 12h14\",\n key: \"1ays0h\"\n }\n ],\n [\n \"path\",\n {\n d: \"m12 5 7 7-7 7\",\n key: \"xquz4c\"\n }\n ]\n];\nconst ArrowRight = (0,_createLucideIcon_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(\"arrow-right\", __iconNode);\n //# sourceMappingURL=arrow-right.js.map\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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9sdWNpZGUtcmVhY3QvZGlzdC9lc20vaWNvbnMvYXJyb3ctcmlnaHQuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7O0FBR08sTUFBTSxVQUF1QjtJQUNsQztRQUFDLE1BQVE7UUFBQTtZQUFFLEdBQUcsQ0FBWTtZQUFBLEtBQUs7UUFBQSxDQUFVO0tBQUE7SUFDekM7UUFBQyxDQUFRO1FBQUEsQ0FBRTtZQUFBLEVBQUcsZ0JBQWlCO1lBQUEsSUFBSztRQUFVO0tBQUE7Q0FDaEQ7QUFhTSxpQkFBYSxrRUFBaUIsZ0JBQWUsQ0FBVSIsInNvdXJjZXMiOlsiRDpcXHNyY1xcaWNvbnNcXGFycm93LXJpZ2h0LnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTUgMTJoMTQnLCBrZXk6ICcxYXlzMGgnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdtMTIgNSA3IDctNyA3Jywga2V5OiAneHF1ejRjJyB9XSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBBcnJvd1JpZ2h0XG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5OU0F4TW1neE5DSWdMejRLSUNBOGNHRjBhQ0JrUFNKdE1USWdOU0EzSURjdE55QTNJaUF2UGdvOEwzTjJaejRLKSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9hcnJvdy1yaWdodFxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IEFycm93UmlnaHQgPSBjcmVhdGVMdWNpZGVJY29uKCdhcnJvdy1yaWdodCcsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBBcnJvd1JpZ2h0O1xuIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(pages-dir-browser)/./node_modules/lucide-react/dist/esm/icons/arrow-right.js\n")); - -/***/ }), - -/***/ "(pages-dir-browser)/./node_modules/lucide-react/dist/esm/icons/box.js": -/*!*********************************************************!*\ - !*** ./node_modules/lucide-react/dist/esm/icons/box.js ***! - \*********************************************************/ -/***/ ((module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ __iconNode: () => (/* binding */ __iconNode),\n/* harmony export */ \"default\": () => (/* binding */ Box)\n/* harmony export */ });\n/* harmony import */ var _createLucideIcon_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../createLucideIcon.js */ \"(pages-dir-browser)/./node_modules/lucide-react/dist/esm/createLucideIcon.js\");\n/**\n * @license lucide-react v0.525.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */ \nconst __iconNode = [\n [\n \"path\",\n {\n d: \"M21 8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73l7 4a2 2 0 0 0 2 0l7-4A2 2 0 0 0 21 16Z\",\n key: \"hh9hay\"\n }\n ],\n [\n \"path\",\n {\n d: \"m3.3 7 8.7 5 8.7-5\",\n key: \"g66t2b\"\n }\n ],\n [\n \"path\",\n {\n d: \"M12 22V12\",\n key: \"d0xqtd\"\n }\n ]\n];\nconst Box = (0,_createLucideIcon_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(\"box\", __iconNode);\n //# sourceMappingURL=box.js.map\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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9sdWNpZGUtcmVhY3QvZGlzdC9lc20vaWNvbnMvYm94LmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7OztBQUdPLE1BQU0sVUFBdUI7SUFDbEM7UUFDRTtRQUNBO1lBQ0UsQ0FBRztZQUNILEdBQUs7UUFBQTtLQUVUO0lBQ0E7UUFBQyxNQUFRO1FBQUE7WUFBRSxHQUFHLENBQXNCO1lBQUEsS0FBSztRQUFBLENBQVU7S0FBQTtJQUNuRDtRQUFDLENBQVE7UUFBQSxDQUFFO1lBQUEsRUFBRyxZQUFhO1lBQUEsSUFBSztRQUFVO0tBQUE7Q0FDNUM7QUFhTSxVQUFNLGtFQUFpQixRQUFPLENBQVUiLCJzb3VyY2VzIjpbIkQ6XFxzcmNcXGljb25zXFxib3gudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbXG4gICAgJ3BhdGgnLFxuICAgIHtcbiAgICAgIGQ6ICdNMjEgOGEyIDIgMCAwIDAtMS0xLjczbC03LTRhMiAyIDAgMCAwLTIgMGwtNyA0QTIgMiAwIDAgMCAzIDh2OGEyIDIgMCAwIDAgMSAxLjczbDcgNGEyIDIgMCAwIDAgMiAwbDctNEEyIDIgMCAwIDAgMjEgMTZaJyxcbiAgICAgIGtleTogJ2hoOWhheScsXG4gICAgfSxcbiAgXSxcbiAgWydwYXRoJywgeyBkOiAnbTMuMyA3IDguNyA1IDguNy01Jywga2V5OiAnZzY2dDJiJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTEyIDIyVjEyJywga2V5OiAnZDB4cXRkJyB9XSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBCb3hcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1qRWdPR0V5SURJZ01DQXdJREF0TVMweExqY3piQzAzTFRSaE1pQXlJREFnTUNBd0xUSWdNR3d0TnlBMFFUSWdNaUF3SURBZ01DQXpJRGgyT0dFeUlESWdNQ0F3SURBZ01TQXhMamN6YkRjZ05HRXlJRElnTUNBd0lEQWdNaUF3YkRjdE5FRXlJRElnTUNBd0lEQWdNakVnTVRaYUlpQXZQZ29nSUR4d1lYUm9JR1E5SW0wekxqTWdOeUE0TGpjZ05TQTRMamN0TlNJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTVRJZ01qSldNVElpSUM4K0Nqd3ZjM1puUGdvPSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvYm94XG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgQm94ID0gY3JlYXRlTHVjaWRlSWNvbignYm94JywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IEJveDtcbiJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(pages-dir-browser)/./node_modules/lucide-react/dist/esm/icons/box.js\n")); - -/***/ }), - -/***/ "(pages-dir-browser)/./node_modules/lucide-react/dist/esm/icons/chart-no-axes-column-increasing.js": -/*!*************************************************************************************!*\ - !*** ./node_modules/lucide-react/dist/esm/icons/chart-no-axes-column-increasing.js ***! - \*************************************************************************************/ -/***/ ((module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ __iconNode: () => (/* binding */ __iconNode),\n/* harmony export */ \"default\": () => (/* binding */ ChartNoAxesColumnIncreasing)\n/* harmony export */ });\n/* harmony import */ var _createLucideIcon_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../createLucideIcon.js */ \"(pages-dir-browser)/./node_modules/lucide-react/dist/esm/createLucideIcon.js\");\n/**\n * @license lucide-react v0.525.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */ \nconst __iconNode = [\n [\n \"line\",\n {\n x1: \"12\",\n x2: \"12\",\n y1: \"20\",\n y2: \"10\",\n key: \"1vz5eb\"\n }\n ],\n [\n \"line\",\n {\n x1: \"18\",\n x2: \"18\",\n y1: \"20\",\n y2: \"4\",\n key: \"cun8e5\"\n }\n ],\n [\n \"line\",\n {\n x1: \"6\",\n x2: \"6\",\n y1: \"20\",\n y2: \"16\",\n key: \"hq0ia6\"\n }\n ]\n];\nconst ChartNoAxesColumnIncreasing = (0,_createLucideIcon_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(\"chart-no-axes-column-increasing\", __iconNode);\n //# sourceMappingURL=chart-no-axes-column-increasing.js.map\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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9sdWNpZGUtcmVhY3QvZGlzdC9lc20vaWNvbnMvY2hhcnQtbm8tYXhlcy1jb2x1bW4taW5jcmVhc2luZy5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7QUFHTyxNQUFNLFVBQXVCO0lBQ2xDO1FBQUM7UUFBUSxDQUFFO1lBQUEsSUFBSSxDQUFNO1lBQUEsSUFBSSxDQUFNO1lBQUEsR0FBSSxLQUFNO1lBQUEsR0FBSSxLQUFNO1lBQUEsS0FBSztRQUFBLENBQVU7S0FBQTtJQUNsRTtRQUFDO1FBQVEsQ0FBRTtZQUFBLElBQUksQ0FBTTtZQUFBLElBQUksQ0FBTTtZQUFBLEdBQUksS0FBTTtZQUFBLEdBQUksSUFBSztZQUFBLEtBQUs7UUFBQSxDQUFVO0tBQUE7SUFDakU7UUFBQyxPQUFRO1FBQUE7WUFBRSxHQUFJLElBQUs7WUFBQSxHQUFJLElBQUs7WUFBQSxJQUFJLENBQU07WUFBQSxJQUFJLElBQU07WUFBQSxJQUFLO1FBQVU7S0FBQTtDQUNsRTtBQWFNLGtDQUE4QixrRUFBaUIsb0NBQW1DLENBQVUiLCJzb3VyY2VzIjpbIkQ6XFxzcmNcXGljb25zXFxjaGFydC1uby1heGVzLWNvbHVtbi1pbmNyZWFzaW5nLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgWydsaW5lJywgeyB4MTogJzEyJywgeDI6ICcxMicsIHkxOiAnMjAnLCB5MjogJzEwJywga2V5OiAnMXZ6NWViJyB9XSxcbiAgWydsaW5lJywgeyB4MTogJzE4JywgeDI6ICcxOCcsIHkxOiAnMjAnLCB5MjogJzQnLCBrZXk6ICdjdW44ZTUnIH1dLFxuICBbJ2xpbmUnLCB7IHgxOiAnNicsIHgyOiAnNicsIHkxOiAnMjAnLCB5MjogJzE2Jywga2V5OiAnaHEwaWE2JyB9XSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBDaGFydE5vQXhlc0NvbHVtbkluY3JlYXNpbmdcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGJHbHVaU0I0TVQwaU1USWlJSGd5UFNJeE1pSWdlVEU5SWpJd0lpQjVNajBpTVRBaUlDOCtDaUFnUEd4cGJtVWdlREU5SWpFNElpQjRNajBpTVRnaUlIa3hQU0l5TUNJZ2VUSTlJalFpSUM4K0NpQWdQR3hwYm1VZ2VERTlJallpSUhneVBTSTJJaUI1TVQwaU1qQWlJSGt5UFNJeE5pSWdMejRLUEM5emRtYytDZz09KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9jaGFydC1uby1heGVzLWNvbHVtbi1pbmNyZWFzaW5nXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgQ2hhcnROb0F4ZXNDb2x1bW5JbmNyZWFzaW5nID0gY3JlYXRlTHVjaWRlSWNvbignY2hhcnQtbm8tYXhlcy1jb2x1bW4taW5jcmVhc2luZycsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBDaGFydE5vQXhlc0NvbHVtbkluY3JlYXNpbmc7XG4iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(pages-dir-browser)/./node_modules/lucide-react/dist/esm/icons/chart-no-axes-column-increasing.js\n")); - -/***/ }), - -/***/ "(pages-dir-browser)/./node_modules/lucide-react/dist/esm/icons/circle-check-big.js": -/*!**********************************************************************!*\ - !*** ./node_modules/lucide-react/dist/esm/icons/circle-check-big.js ***! - \**********************************************************************/ -/***/ ((module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ __iconNode: () => (/* binding */ __iconNode),\n/* harmony export */ \"default\": () => (/* binding */ CircleCheckBig)\n/* harmony export */ });\n/* harmony import */ var _createLucideIcon_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../createLucideIcon.js */ \"(pages-dir-browser)/./node_modules/lucide-react/dist/esm/createLucideIcon.js\");\n/**\n * @license lucide-react v0.525.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */ \nconst __iconNode = [\n [\n \"path\",\n {\n d: \"M21.801 10A10 10 0 1 1 17 3.335\",\n key: \"yps3ct\"\n }\n ],\n [\n \"path\",\n {\n d: \"m9 11 3 3L22 4\",\n key: \"1pflzl\"\n }\n ]\n];\nconst CircleCheckBig = (0,_createLucideIcon_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(\"circle-check-big\", __iconNode);\n //# sourceMappingURL=circle-check-big.js.map\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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9sdWNpZGUtcmVhY3QvZGlzdC9lc20vaWNvbnMvY2lyY2xlLWNoZWNrLWJpZy5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7QUFHTyxNQUFNLFVBQXVCO0lBQ2xDO1FBQUMsTUFBUTtRQUFBO1lBQUUsR0FBRyxDQUFtQztZQUFBLEtBQUs7UUFBQSxDQUFVO0tBQUE7SUFDaEU7UUFBQyxDQUFRO1FBQUEsQ0FBRTtZQUFBLEVBQUcsaUJBQWtCO1lBQUEsSUFBSztRQUFVO0tBQUE7Q0FDakQ7QUFhTSxxQkFBaUIsa0VBQWlCLHFCQUFvQixDQUFVIiwic291cmNlcyI6WyJEOlxcc3JjXFxpY29uc1xcY2lyY2xlLWNoZWNrLWJpZy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ00yMS44MDEgMTBBMTAgMTAgMCAxIDEgMTcgMy4zMzUnLCBrZXk6ICd5cHMzY3QnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdtOSAxMSAzIDNMMjIgNCcsIGtleTogJzFwZmx6bCcgfV0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgQ2lyY2xlQ2hlY2tCaWdcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1qRXVPREF4SURFd1FURXdJREV3SURBZ01TQXhJREUzSURNdU16TTFJaUF2UGdvZ0lEeHdZWFJvSUdROUltMDVJREV4SURNZ00wd3lNaUEwSWlBdlBnbzhMM04yWno0SykgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvY2lyY2xlLWNoZWNrLWJpZ1xuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IENpcmNsZUNoZWNrQmlnID0gY3JlYXRlTHVjaWRlSWNvbignY2lyY2xlLWNoZWNrLWJpZycsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBDaXJjbGVDaGVja0JpZztcbiJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(pages-dir-browser)/./node_modules/lucide-react/dist/esm/icons/circle-check-big.js\n")); - -/***/ }), - -/***/ "(pages-dir-browser)/./node_modules/lucide-react/dist/esm/icons/clock.js": -/*!***********************************************************!*\ - !*** ./node_modules/lucide-react/dist/esm/icons/clock.js ***! - \***********************************************************/ -/***/ ((module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ __iconNode: () => (/* binding */ __iconNode),\n/* harmony export */ \"default\": () => (/* binding */ Clock)\n/* harmony export */ });\n/* harmony import */ var _createLucideIcon_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../createLucideIcon.js */ \"(pages-dir-browser)/./node_modules/lucide-react/dist/esm/createLucideIcon.js\");\n/**\n * @license lucide-react v0.525.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */ \nconst __iconNode = [\n [\n \"path\",\n {\n d: \"M12 6v6l4 2\",\n key: \"mmk7yg\"\n }\n ],\n [\n \"circle\",\n {\n cx: \"12\",\n cy: \"12\",\n r: \"10\",\n key: \"1mglay\"\n }\n ]\n];\nconst Clock = (0,_createLucideIcon_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(\"clock\", __iconNode);\n //# sourceMappingURL=clock.js.map\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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9sdWNpZGUtcmVhY3QvZGlzdC9lc20vaWNvbnMvY2xvY2suanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7O0FBR08sTUFBTSxVQUF1QjtJQUNsQztRQUFDLE1BQVE7UUFBQTtZQUFFLEdBQUcsQ0FBZTtZQUFBLEtBQUs7UUFBQSxDQUFVO0tBQUE7SUFDNUM7UUFBQyxDQUFVO1FBQUE7WUFBRSxDQUFJLFFBQU07WUFBQSxFQUFJO1lBQU0sQ0FBRztZQUFNLENBQUs7UUFBVTtLQUFBO0NBQzNEO0FBYU0sWUFBUSxrRUFBaUIsVUFBUyxDQUFVIiwic291cmNlcyI6WyJEOlxcc3JjXFxpY29uc1xcY2xvY2sudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdNMTIgNnY2bDQgMicsIGtleTogJ21tazd5ZycgfV0sXG4gIFsnY2lyY2xlJywgeyBjeDogJzEyJywgY3k6ICcxMicsIHI6ICcxMCcsIGtleTogJzFtZ2xheScgfV0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgQ2xvY2tcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1USWdOblkyYkRRZ01pSWdMejRLSUNBOFkybHlZMnhsSUdONFBTSXhNaUlnWTNrOUlqRXlJaUJ5UFNJeE1DSWdMejRLUEM5emRtYytDZz09KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9jbG9ja1xuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IENsb2NrID0gY3JlYXRlTHVjaWRlSWNvbignY2xvY2snLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgQ2xvY2s7XG4iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(pages-dir-browser)/./node_modules/lucide-react/dist/esm/icons/clock.js\n")); - -/***/ }), - -/***/ "(pages-dir-browser)/./node_modules/lucide-react/dist/esm/icons/globe.js": -/*!***********************************************************!*\ - !*** ./node_modules/lucide-react/dist/esm/icons/globe.js ***! - \***********************************************************/ -/***/ ((module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ __iconNode: () => (/* binding */ __iconNode),\n/* harmony export */ \"default\": () => (/* binding */ Globe)\n/* harmony export */ });\n/* harmony import */ var _createLucideIcon_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../createLucideIcon.js */ \"(pages-dir-browser)/./node_modules/lucide-react/dist/esm/createLucideIcon.js\");\n/**\n * @license lucide-react v0.525.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */ \nconst __iconNode = [\n [\n \"circle\",\n {\n cx: \"12\",\n cy: \"12\",\n r: \"10\",\n key: \"1mglay\"\n }\n ],\n [\n \"path\",\n {\n d: \"M12 2a14.5 14.5 0 0 0 0 20 14.5 14.5 0 0 0 0-20\",\n key: \"13o1zl\"\n }\n ],\n [\n \"path\",\n {\n d: \"M2 12h20\",\n key: \"9i4pu4\"\n }\n ]\n];\nconst Globe = (0,_createLucideIcon_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(\"globe\", __iconNode);\n //# sourceMappingURL=globe.js.map\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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9sdWNpZGUtcmVhY3QvZGlzdC9lc20vaWNvbnMvZ2xvYmUuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7O0FBR08sTUFBTSxVQUF1QjtJQUNsQztRQUFDLFFBQVU7UUFBQTtZQUFFLEVBQUk7WUFBTSxDQUFJLFFBQU07WUFBQSxDQUFHO1lBQU0sR0FBSztRQUFBLENBQVU7S0FBQTtJQUN6RDtRQUFDLE1BQVE7UUFBQTtZQUFFLEdBQUcsQ0FBbUQ7WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0lBQ2hGO1FBQUMsQ0FBUTtRQUFBLENBQUU7WUFBQSxFQUFHLFdBQVk7WUFBQSxJQUFLO1FBQVU7S0FBQTtDQUMzQztBQWFNLFlBQVEsa0VBQWlCLFVBQVMsQ0FBVSIsInNvdXJjZXMiOlsiRDpcXHNyY1xcaWNvbnNcXGdsb2JlLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgWydjaXJjbGUnLCB7IGN4OiAnMTInLCBjeTogJzEyJywgcjogJzEwJywga2V5OiAnMW1nbGF5JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTEyIDJhMTQuNSAxNC41IDAgMCAwIDAgMjAgMTQuNSAxNC41IDAgMCAwIDAtMjAnLCBrZXk6ICcxM28xemwnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMiAxMmgyMCcsIGtleTogJzlpNHB1NCcgfV0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgR2xvYmVcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOFkybHlZMnhsSUdONFBTSXhNaUlnWTNrOUlqRXlJaUJ5UFNJeE1DSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk1USWdNbUV4TkM0MUlERTBMalVnTUNBd0lEQWdNQ0F5TUNBeE5DNDFJREUwTGpVZ01DQXdJREFnTUMweU1DSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk1pQXhNbWd5TUNJZ0x6NEtQQzl6ZG1jK0NnPT0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2dsb2JlXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgR2xvYmUgPSBjcmVhdGVMdWNpZGVJY29uKCdnbG9iZScsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBHbG9iZTtcbiJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(pages-dir-browser)/./node_modules/lucide-react/dist/esm/icons/globe.js\n")); - -/***/ }), - -/***/ "(pages-dir-browser)/./node_modules/lucide-react/dist/esm/icons/headphones.js": -/*!****************************************************************!*\ - !*** ./node_modules/lucide-react/dist/esm/icons/headphones.js ***! - \****************************************************************/ -/***/ ((module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ __iconNode: () => (/* binding */ __iconNode),\n/* harmony export */ \"default\": () => (/* binding */ Headphones)\n/* harmony export */ });\n/* harmony import */ var _createLucideIcon_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../createLucideIcon.js */ \"(pages-dir-browser)/./node_modules/lucide-react/dist/esm/createLucideIcon.js\");\n/**\n * @license lucide-react v0.525.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */ \nconst __iconNode = [\n [\n \"path\",\n {\n d: \"M3 14h3a2 2 0 0 1 2 2v3a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-7a9 9 0 0 1 18 0v7a2 2 0 0 1-2 2h-1a2 2 0 0 1-2-2v-3a2 2 0 0 1 2-2h3\",\n key: \"1xhozi\"\n }\n ]\n];\nconst Headphones = (0,_createLucideIcon_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(\"headphones\", __iconNode);\n //# sourceMappingURL=headphones.js.map\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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9sdWNpZGUtcmVhY3QvZGlzdC9lc20vaWNvbnMvaGVhZHBob25lcy5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7QUFHTyxNQUFNLFVBQXVCO0lBQ2xDO1FBQ0U7UUFDQTtZQUNFLENBQUc7WUFDSCxHQUFLO1FBQUE7S0FDUDtDQUVKO0FBYU0saUJBQWEsa0VBQWlCLGVBQWMsQ0FBVSIsInNvdXJjZXMiOlsiRDpcXHNyY1xcaWNvbnNcXGhlYWRwaG9uZXMudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbXG4gICAgJ3BhdGgnLFxuICAgIHtcbiAgICAgIGQ6ICdNMyAxNGgzYTIgMiAwIDAgMSAyIDJ2M2EyIDIgMCAwIDEtMiAySDVhMiAyIDAgMCAxLTItMnYtN2E5IDkgMCAwIDEgMTggMHY3YTIgMiAwIDAgMS0yIDJoLTFhMiAyIDAgMCAxLTItMnYtM2EyIDIgMCAwIDEgMi0yaDMnLFxuICAgICAga2V5OiAnMXhob3ppJyxcbiAgICB9LFxuICBdLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIEhlYWRwaG9uZXNcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk15QXhOR2d6WVRJZ01pQXdJREFnTVNBeUlESjJNMkV5SURJZ01DQXdJREV0TWlBeVNEVmhNaUF5SURBZ01DQXhMVEl0TW5ZdE4yRTVJRGtnTUNBd0lERWdNVGdnTUhZM1lUSWdNaUF3SURBZ01TMHlJREpvTFRGaE1pQXlJREFnTUNBeExUSXRNbll0TTJFeUlESWdNQ0F3SURFZ01pMHlhRE1pSUM4K0Nqd3ZjM1puUGdvPSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvaGVhZHBob25lc1xuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IEhlYWRwaG9uZXMgPSBjcmVhdGVMdWNpZGVJY29uKCdoZWFkcGhvbmVzJywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IEhlYWRwaG9uZXM7XG4iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(pages-dir-browser)/./node_modules/lucide-react/dist/esm/icons/headphones.js\n")); - -/***/ }), - -/***/ "(pages-dir-browser)/./node_modules/lucide-react/dist/esm/icons/mail.js": -/*!**********************************************************!*\ - !*** ./node_modules/lucide-react/dist/esm/icons/mail.js ***! - \**********************************************************/ -/***/ ((module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ __iconNode: () => (/* binding */ __iconNode),\n/* harmony export */ \"default\": () => (/* binding */ Mail)\n/* harmony export */ });\n/* harmony import */ var _createLucideIcon_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../createLucideIcon.js */ \"(pages-dir-browser)/./node_modules/lucide-react/dist/esm/createLucideIcon.js\");\n/**\n * @license lucide-react v0.525.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */ \nconst __iconNode = [\n [\n \"path\",\n {\n d: \"m22 7-8.991 5.727a2 2 0 0 1-2.009 0L2 7\",\n key: \"132q7q\"\n }\n ],\n [\n \"rect\",\n {\n x: \"2\",\n y: \"4\",\n width: \"20\",\n height: \"16\",\n rx: \"2\",\n key: \"izxlao\"\n }\n ]\n];\nconst Mail = (0,_createLucideIcon_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(\"mail\", __iconNode);\n //# sourceMappingURL=mail.js.map\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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9sdWNpZGUtcmVhY3QvZGlzdC9lc20vaWNvbnMvbWFpbC5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7QUFHTyxNQUFNLFVBQXVCO0lBQ2xDO1FBQUMsTUFBUTtRQUFBO1lBQUUsR0FBRyxDQUEyQztZQUFBLEtBQUs7UUFBQSxDQUFVO0tBQUE7SUFDeEU7UUFBQztRQUFRLENBQUU7WUFBQSxFQUFHLEtBQUs7WUFBQSxDQUFHLE1BQUs7WUFBQSxLQUFPLE9BQU07WUFBQSxPQUFRLEtBQU07WUFBQSxHQUFJLElBQUs7WUFBQSxJQUFLO1FBQVU7S0FBQTtDQUNoRjtBQWFNLFdBQU8sa0VBQWlCLFNBQVEsQ0FBVSIsInNvdXJjZXMiOlsiRDpcXHNyY1xcaWNvbnNcXG1haWwudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdtMjIgNy04Ljk5MSA1LjcyN2EyIDIgMCAwIDEtMi4wMDkgMEwyIDcnLCBrZXk6ICcxMzJxN3EnIH1dLFxuICBbJ3JlY3QnLCB7IHg6ICcyJywgeTogJzQnLCB3aWR0aDogJzIwJywgaGVpZ2h0OiAnMTYnLCByeDogJzInLCBrZXk6ICdpenhsYW8nIH1dLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIE1haWxcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKdE1qSWdOeTA0TGprNU1TQTFMamN5TjJFeUlESWdNQ0F3SURFdE1pNHdNRGtnTUV3eUlEY2lJQzgrQ2lBZ1BISmxZM1FnZUQwaU1pSWdlVDBpTkNJZ2QybGtkR2c5SWpJd0lpQm9aV2xuYUhROUlqRTJJaUJ5ZUQwaU1pSWdMejRLUEM5emRtYytDZz09KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9tYWlsXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgTWFpbCA9IGNyZWF0ZUx1Y2lkZUljb24oJ21haWwnLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgTWFpbDtcbiJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(pages-dir-browser)/./node_modules/lucide-react/dist/esm/icons/mail.js\n")); - -/***/ }), - -/***/ "(pages-dir-browser)/./node_modules/lucide-react/dist/esm/icons/menu.js": -/*!**********************************************************!*\ - !*** ./node_modules/lucide-react/dist/esm/icons/menu.js ***! - \**********************************************************/ -/***/ ((module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ __iconNode: () => (/* binding */ __iconNode),\n/* harmony export */ \"default\": () => (/* binding */ Menu)\n/* harmony export */ });\n/* harmony import */ var _createLucideIcon_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../createLucideIcon.js */ \"(pages-dir-browser)/./node_modules/lucide-react/dist/esm/createLucideIcon.js\");\n/**\n * @license lucide-react v0.525.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */ \nconst __iconNode = [\n [\n \"path\",\n {\n d: \"M4 12h16\",\n key: \"1lakjw\"\n }\n ],\n [\n \"path\",\n {\n d: \"M4 18h16\",\n key: \"19g7jn\"\n }\n ],\n [\n \"path\",\n {\n d: \"M4 6h16\",\n key: \"1o0s65\"\n }\n ]\n];\nconst Menu = (0,_createLucideIcon_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(\"menu\", __iconNode);\n //# sourceMappingURL=menu.js.map\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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9sdWNpZGUtcmVhY3QvZGlzdC9lc20vaWNvbnMvbWVudS5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7QUFHTyxNQUFNLFVBQXVCO0lBQ2xDO1FBQUMsTUFBUTtRQUFBO1lBQUUsR0FBRyxDQUFZO1lBQUEsS0FBSztRQUFBLENBQVU7S0FBQTtJQUN6QztRQUFDLE1BQVE7UUFBQTtZQUFFLEdBQUcsQ0FBWTtZQUFBLEtBQUs7UUFBQSxDQUFVO0tBQUE7SUFDekM7UUFBQyxDQUFRO1FBQUEsQ0FBRTtZQUFBLEVBQUcsVUFBVztZQUFBLElBQUs7UUFBVTtLQUFBO0NBQzFDO0FBYU0sV0FBTyxrRUFBaUIsU0FBUSxDQUFVIiwic291cmNlcyI6WyJEOlxcc3JjXFxpY29uc1xcbWVudS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ000IDEyaDE2Jywga2V5OiAnMWxha2p3JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTQgMThoMTYnLCBrZXk6ICcxOWc3am4nIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNNCA2aDE2Jywga2V5OiAnMW8wczY1JyB9XSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBNZW51XG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5OQ0F4TW1neE5pSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk5DQXhPR2d4TmlJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTkNBMmFERTJJaUF2UGdvOEwzTjJaejRLKSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9tZW51XG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgTWVudSA9IGNyZWF0ZUx1Y2lkZUljb24oJ21lbnUnLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgTWVudTtcbiJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(pages-dir-browser)/./node_modules/lucide-react/dist/esm/icons/menu.js\n")); - -/***/ }), - -/***/ "(pages-dir-browser)/./node_modules/lucide-react/dist/esm/icons/message-circle.js": -/*!********************************************************************!*\ - !*** ./node_modules/lucide-react/dist/esm/icons/message-circle.js ***! - \********************************************************************/ -/***/ ((module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ __iconNode: () => (/* binding */ __iconNode),\n/* harmony export */ \"default\": () => (/* binding */ MessageCircle)\n/* harmony export */ });\n/* harmony import */ var _createLucideIcon_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../createLucideIcon.js */ \"(pages-dir-browser)/./node_modules/lucide-react/dist/esm/createLucideIcon.js\");\n/**\n * @license lucide-react v0.525.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */ \nconst __iconNode = [\n [\n \"path\",\n {\n d: \"M7.9 20A9 9 0 1 0 4 16.1L2 22Z\",\n key: \"vv11sd\"\n }\n ]\n];\nconst MessageCircle = (0,_createLucideIcon_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(\"message-circle\", __iconNode);\n //# sourceMappingURL=message-circle.js.map\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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9sdWNpZGUtcmVhY3QvZGlzdC9lc20vaWNvbnMvbWVzc2FnZS1jaXJjbGUuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7O0FBR08sTUFBTSxVQUF1QjtJQUNsQztRQUFDLENBQVE7UUFBQSxDQUFFO1lBQUEsRUFBRyxpQ0FBa0M7WUFBQSxJQUFLO1FBQVU7S0FBQTtDQUNqRTtBQWFNLG9CQUFnQixrRUFBaUIsbUJBQWtCLENBQVUiLCJzb3VyY2VzIjpbIkQ6XFxzcmNcXGljb25zXFxtZXNzYWdlLWNpcmNsZS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ003LjkgMjBBOSA5IDAgMSAwIDQgMTYuMUwyIDIyWicsIGtleTogJ3Z2MTFzZCcgfV0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgTWVzc2FnZUNpcmNsZVxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTnk0NUlESXdRVGtnT1NBd0lERWdNQ0EwSURFMkxqRk1NaUF5TWxvaUlDOCtDand2YzNablBnbz0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL21lc3NhZ2UtY2lyY2xlXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgTWVzc2FnZUNpcmNsZSA9IGNyZWF0ZUx1Y2lkZUljb24oJ21lc3NhZ2UtY2lyY2xlJywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IE1lc3NhZ2VDaXJjbGU7XG4iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(pages-dir-browser)/./node_modules/lucide-react/dist/esm/icons/message-circle.js\n")); - -/***/ }), - -/***/ "(pages-dir-browser)/./node_modules/lucide-react/dist/esm/icons/message-square.js": -/*!********************************************************************!*\ - !*** ./node_modules/lucide-react/dist/esm/icons/message-square.js ***! - \********************************************************************/ -/***/ ((module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ __iconNode: () => (/* binding */ __iconNode),\n/* harmony export */ \"default\": () => (/* binding */ MessageSquare)\n/* harmony export */ });\n/* harmony import */ var _createLucideIcon_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../createLucideIcon.js */ \"(pages-dir-browser)/./node_modules/lucide-react/dist/esm/createLucideIcon.js\");\n/**\n * @license lucide-react v0.525.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */ \nconst __iconNode = [\n [\n \"path\",\n {\n d: \"M21 15a2 2 0 0 1-2 2H7l-4 4V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2z\",\n key: \"1lielz\"\n }\n ]\n];\nconst MessageSquare = (0,_createLucideIcon_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(\"message-square\", __iconNode);\n //# sourceMappingURL=message-square.js.map\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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9sdWNpZGUtcmVhY3QvZGlzdC9lc20vaWNvbnMvbWVzc2FnZS1zcXVhcmUuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7O0FBR08sTUFBTSxVQUF1QjtJQUNsQztRQUFDLENBQVE7UUFBQSxDQUFFO1lBQUEsRUFBRyxnRUFBaUU7WUFBQSxJQUFLO1FBQVU7S0FBQTtDQUNoRztBQWFNLG9CQUFnQixrRUFBaUIsbUJBQWtCLENBQVUiLCJzb3VyY2VzIjpbIkQ6XFxzcmNcXGljb25zXFxtZXNzYWdlLXNxdWFyZS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ00yMSAxNWEyIDIgMCAwIDEtMiAySDdsLTQgNFY1YTIgMiAwIDAgMSAyLTJoMTRhMiAyIDAgMCAxIDIgMnonLCBrZXk6ICcxbGllbHonIH1dLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIE1lc3NhZ2VTcXVhcmVcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1qRWdNVFZoTWlBeUlEQWdNQ0F4TFRJZ01rZzNiQzAwSURSV05XRXlJRElnTUNBd0lERWdNaTB5YURFMFlUSWdNaUF3SURBZ01TQXlJREo2SWlBdlBnbzhMM04yWno0SykgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvbWVzc2FnZS1zcXVhcmVcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBNZXNzYWdlU3F1YXJlID0gY3JlYXRlTHVjaWRlSWNvbignbWVzc2FnZS1zcXVhcmUnLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgTWVzc2FnZVNxdWFyZTtcbiJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(pages-dir-browser)/./node_modules/lucide-react/dist/esm/icons/message-square.js\n")); - -/***/ }), - -/***/ "(pages-dir-browser)/./node_modules/lucide-react/dist/esm/icons/phone.js": -/*!***********************************************************!*\ - !*** ./node_modules/lucide-react/dist/esm/icons/phone.js ***! - \***********************************************************/ -/***/ ((module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ __iconNode: () => (/* binding */ __iconNode),\n/* harmony export */ \"default\": () => (/* binding */ Phone)\n/* harmony export */ });\n/* harmony import */ var _createLucideIcon_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../createLucideIcon.js */ \"(pages-dir-browser)/./node_modules/lucide-react/dist/esm/createLucideIcon.js\");\n/**\n * @license lucide-react v0.525.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */ \nconst __iconNode = [\n [\n \"path\",\n {\n d: \"M13.832 16.568a1 1 0 0 0 1.213-.303l.355-.465A2 2 0 0 1 17 15h3a2 2 0 0 1 2 2v3a2 2 0 0 1-2 2A18 18 0 0 1 2 4a2 2 0 0 1 2-2h3a2 2 0 0 1 2 2v3a2 2 0 0 1-.8 1.6l-.468.351a1 1 0 0 0-.292 1.233 14 14 0 0 0 6.392 6.384\",\n key: \"9njp5v\"\n }\n ]\n];\nconst Phone = (0,_createLucideIcon_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(\"phone\", __iconNode);\n //# sourceMappingURL=phone.js.map\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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9sdWNpZGUtcmVhY3QvZGlzdC9lc20vaWNvbnMvcGhvbmUuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7O0FBR08sTUFBTSxVQUF1QjtJQUNsQztRQUNFO1FBQ0E7WUFDRSxDQUFHO1lBQ0gsR0FBSztRQUFBO0tBQ1A7Q0FFSjtBQWFNLFlBQVEsa0VBQWlCLFVBQVMsQ0FBVSIsInNvdXJjZXMiOlsiRDpcXHNyY1xcaWNvbnNcXHBob25lLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgW1xuICAgICdwYXRoJyxcbiAgICB7XG4gICAgICBkOiAnTTEzLjgzMiAxNi41NjhhMSAxIDAgMCAwIDEuMjEzLS4zMDNsLjM1NS0uNDY1QTIgMiAwIDAgMSAxNyAxNWgzYTIgMiAwIDAgMSAyIDJ2M2EyIDIgMCAwIDEtMiAyQTE4IDE4IDAgMCAxIDIgNGEyIDIgMCAwIDEgMi0yaDNhMiAyIDAgMCAxIDIgMnYzYTIgMiAwIDAgMS0uOCAxLjZsLS40NjguMzUxYTEgMSAwIDAgMC0uMjkyIDEuMjMzIDE0IDE0IDAgMCAwIDYuMzkyIDYuMzg0JyxcbiAgICAgIGtleTogJzluanA1dicsXG4gICAgfSxcbiAgXSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBQaG9uZVxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTVRNdU9ETXlJREUyTGpVMk9HRXhJREVnTUNBd0lEQWdNUzR5TVRNdExqTXdNMnd1TXpVMUxTNDBOalZCTWlBeUlEQWdNQ0F4SURFM0lERTFhRE5oTWlBeUlEQWdNQ0F4SURJZ01uWXpZVElnTWlBd0lEQWdNUzB5SURKQk1UZ2dNVGdnTUNBd0lERWdNaUEwWVRJZ01pQXdJREFnTVNBeUxUSm9NMkV5SURJZ01DQXdJREVnTWlBeWRqTmhNaUF5SURBZ01DQXhMUzQ0SURFdU5td3RMalEyT0M0ek5URmhNU0F4SURBZ01DQXdMUzR5T1RJZ01TNHlNek1nTVRRZ01UUWdNQ0F3SURBZ05pNHpPVElnTmk0ek9EUWlJQzgrQ2p3dmMzWm5QZ289KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9waG9uZVxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IFBob25lID0gY3JlYXRlTHVjaWRlSWNvbigncGhvbmUnLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgUGhvbmU7XG4iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(pages-dir-browser)/./node_modules/lucide-react/dist/esm/icons/phone.js\n")); - -/***/ }), - -/***/ "(pages-dir-browser)/./node_modules/lucide-react/dist/esm/icons/play.js": -/*!**********************************************************!*\ - !*** ./node_modules/lucide-react/dist/esm/icons/play.js ***! - \**********************************************************/ -/***/ ((module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ __iconNode: () => (/* binding */ __iconNode),\n/* harmony export */ \"default\": () => (/* binding */ Play)\n/* harmony export */ });\n/* harmony import */ var _createLucideIcon_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../createLucideIcon.js */ \"(pages-dir-browser)/./node_modules/lucide-react/dist/esm/createLucideIcon.js\");\n/**\n * @license lucide-react v0.525.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */ \nconst __iconNode = [\n [\n \"polygon\",\n {\n points: \"6 3 20 12 6 21 6 3\",\n key: \"1oa8hb\"\n }\n ]\n];\nconst Play = (0,_createLucideIcon_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(\"play\", __iconNode);\n //# sourceMappingURL=play.js.map\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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9sdWNpZGUtcmVhY3QvZGlzdC9lc20vaWNvbnMvcGxheS5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7QUFHYSxtQkFBdUI7SUFBQztRQUFDLFNBQVc7UUFBQTtZQUFFLFFBQVEsb0JBQXNCO1lBQUEsSUFBSyxTQUFTO1FBQUEsQ0FBQztLQUFDO0NBQUE7QUFhM0YsV0FBTyxrRUFBaUIsU0FBUSxDQUFVIiwic291cmNlcyI6WyJEOlxcc3JjXFxpY29uc1xccGxheS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbWydwb2x5Z29uJywgeyBwb2ludHM6ICc2IDMgMjAgMTIgNiAyMSA2IDMnLCBrZXk6ICcxb2E4aGInIH1dXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIFBsYXlcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHOXNlV2R2YmlCd2IybHVkSE05SWpZZ015QXlNQ0F4TWlBMklESXhJRFlnTXlJZ0x6NEtQQzl6ZG1jK0NnPT0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL3BsYXlcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBQbGF5ID0gY3JlYXRlTHVjaWRlSWNvbigncGxheScsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBQbGF5O1xuIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(pages-dir-browser)/./node_modules/lucide-react/dist/esm/icons/play.js\n")); - -/***/ }), - -/***/ "(pages-dir-browser)/./node_modules/lucide-react/dist/esm/icons/repeat.js": -/*!************************************************************!*\ - !*** ./node_modules/lucide-react/dist/esm/icons/repeat.js ***! - \************************************************************/ -/***/ ((module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ __iconNode: () => (/* binding */ __iconNode),\n/* harmony export */ \"default\": () => (/* binding */ Repeat)\n/* harmony export */ });\n/* harmony import */ var _createLucideIcon_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../createLucideIcon.js */ \"(pages-dir-browser)/./node_modules/lucide-react/dist/esm/createLucideIcon.js\");\n/**\n * @license lucide-react v0.525.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */ \nconst __iconNode = [\n [\n \"path\",\n {\n d: \"m17 2 4 4-4 4\",\n key: \"nntrym\"\n }\n ],\n [\n \"path\",\n {\n d: \"M3 11v-1a4 4 0 0 1 4-4h14\",\n key: \"84bu3i\"\n }\n ],\n [\n \"path\",\n {\n d: \"m7 22-4-4 4-4\",\n key: \"1wqhfi\"\n }\n ],\n [\n \"path\",\n {\n d: \"M21 13v1a4 4 0 0 1-4 4H3\",\n key: \"1rx37r\"\n }\n ]\n];\nconst Repeat = (0,_createLucideIcon_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(\"repeat\", __iconNode);\n //# sourceMappingURL=repeat.js.map\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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9sdWNpZGUtcmVhY3QvZGlzdC9lc20vaWNvbnMvcmVwZWF0LmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7OztBQUdPLE1BQU0sVUFBdUI7SUFDbEM7UUFBQyxNQUFRO1FBQUE7WUFBRSxHQUFHLENBQWlCO1lBQUEsS0FBSztRQUFBLENBQVU7S0FBQTtJQUM5QztRQUFDLE1BQVE7UUFBQTtZQUFFLEdBQUcsQ0FBNkI7WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0lBQzFEO1FBQUMsTUFBUTtRQUFBO1lBQUUsR0FBRyxDQUFpQjtZQUFBLEtBQUs7UUFBQSxDQUFVO0tBQUE7SUFDOUM7UUFBQyxDQUFRO1FBQUEsQ0FBRTtZQUFBLEVBQUcsMkJBQTRCO1lBQUEsSUFBSztRQUFVO0tBQUE7Q0FDM0Q7QUFhTSxhQUFTLGtFQUFpQixXQUFVLENBQVUiLCJzb3VyY2VzIjpbIkQ6XFxzcmNcXGljb25zXFxyZXBlYXQudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdtMTcgMiA0IDQtNCA0Jywga2V5OiAnbm50cnltJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTMgMTF2LTFhNCA0IDAgMCAxIDQtNGgxNCcsIGtleTogJzg0YnUzaScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ203IDIyLTQtNCA0LTQnLCBrZXk6ICcxd3FoZmknIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMjEgMTN2MWE0IDQgMCAwIDEtNCA0SDMnLCBrZXk6ICcxcngzN3InIH1dLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIFJlcGVhdFxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0p0TVRjZ01pQTBJRFF0TkNBMElpQXZQZ29nSUR4d1lYUm9JR1E5SWsweklERXhkaTB4WVRRZ05DQXdJREFnTVNBMExUUm9NVFFpSUM4K0NpQWdQSEJoZEdnZ1pEMGliVGNnTWpJdE5DMDBJRFF0TkNJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTWpFZ01UTjJNV0UwSURRZ01DQXdJREV0TkNBMFNETWlJQzgrQ2p3dmMzWm5QZ289KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9yZXBlYXRcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBSZXBlYXQgPSBjcmVhdGVMdWNpZGVJY29uKCdyZXBlYXQnLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgUmVwZWF0O1xuIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(pages-dir-browser)/./node_modules/lucide-react/dist/esm/icons/repeat.js\n")); - -/***/ }), - -/***/ "(pages-dir-browser)/./node_modules/lucide-react/dist/esm/icons/shield-check.js": -/*!******************************************************************!*\ - !*** ./node_modules/lucide-react/dist/esm/icons/shield-check.js ***! - \******************************************************************/ -/***/ ((module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ __iconNode: () => (/* binding */ __iconNode),\n/* harmony export */ \"default\": () => (/* binding */ ShieldCheck)\n/* harmony export */ });\n/* harmony import */ var _createLucideIcon_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../createLucideIcon.js */ \"(pages-dir-browser)/./node_modules/lucide-react/dist/esm/createLucideIcon.js\");\n/**\n * @license lucide-react v0.525.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */ \nconst __iconNode = [\n [\n \"path\",\n {\n d: \"M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z\",\n key: \"oel41y\"\n }\n ],\n [\n \"path\",\n {\n d: \"m9 12 2 2 4-4\",\n key: \"dzmm74\"\n }\n ]\n];\nconst ShieldCheck = (0,_createLucideIcon_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(\"shield-check\", __iconNode);\n //# sourceMappingURL=shield-check.js.map\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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9sdWNpZGUtcmVhY3QvZGlzdC9lc20vaWNvbnMvc2hpZWxkLWNoZWNrLmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7OztBQUdPLE1BQU0sVUFBdUI7SUFDbEM7UUFDRTtRQUNBO1lBQ0UsQ0FBRztZQUNILEdBQUs7UUFBQTtLQUVUO0lBQ0E7UUFBQyxDQUFRO1FBQUEsQ0FBRTtZQUFBLEVBQUcsZ0JBQWlCO1lBQUEsSUFBSztRQUFVO0tBQUE7Q0FDaEQ7QUFhTSxrQkFBYyxrRUFBaUIsaUJBQWdCLENBQVUiLCJzb3VyY2VzIjpbIkQ6XFxzcmNcXGljb25zXFxzaGllbGQtY2hlY2sudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbXG4gICAgJ3BhdGgnLFxuICAgIHtcbiAgICAgIGQ6ICdNMjAgMTNjMCA1LTMuNSA3LjUtNy42NiA4Ljk1YTEgMSAwIDAgMS0uNjctLjAxQzcuNSAyMC41IDQgMTggNCAxM1Y2YTEgMSAwIDAgMSAxLTFjMiAwIDQuNS0xLjIgNi4yNC0yLjcyYTEuMTcgMS4xNyAwIDAgMSAxLjUyIDBDMTQuNTEgMy44MSAxNyA1IDE5IDVhMSAxIDAgMCAxIDEgMXonLFxuICAgICAga2V5OiAnb2VsNDF5JyxcbiAgICB9LFxuICBdLFxuICBbJ3BhdGgnLCB7IGQ6ICdtOSAxMiAyIDIgNC00Jywga2V5OiAnZHptbTc0JyB9XSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBTaGllbGRDaGVja1xuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTWpBZ01UTmpNQ0ExTFRNdU5TQTNMalV0Tnk0Mk5pQTRMamsxWVRFZ01TQXdJREFnTVMwdU5qY3RMakF4UXpjdU5TQXlNQzQxSURRZ01UZ2dOQ0F4TTFZMllURWdNU0F3SURBZ01TQXhMVEZqTWlBd0lEUXVOUzB4TGpJZ05pNHlOQzB5TGpjeVlURXVNVGNnTVM0eE55QXdJREFnTVNBeExqVXlJREJETVRRdU5URWdNeTQ0TVNBeE55QTFJREU1SURWaE1TQXhJREFnTUNBeElERWdNWG9pSUM4K0NpQWdQSEJoZEdnZ1pEMGliVGtnTVRJZ01pQXlJRFF0TkNJZ0x6NEtQQzl6ZG1jK0NnPT0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL3NoaWVsZC1jaGVja1xuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IFNoaWVsZENoZWNrID0gY3JlYXRlTHVjaWRlSWNvbignc2hpZWxkLWNoZWNrJywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IFNoaWVsZENoZWNrO1xuIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(pages-dir-browser)/./node_modules/lucide-react/dist/esm/icons/shield-check.js\n")); - -/***/ }), - -/***/ "(pages-dir-browser)/./node_modules/lucide-react/dist/esm/icons/shield.js": -/*!************************************************************!*\ - !*** ./node_modules/lucide-react/dist/esm/icons/shield.js ***! - \************************************************************/ -/***/ ((module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ __iconNode: () => (/* binding */ __iconNode),\n/* harmony export */ \"default\": () => (/* binding */ Shield)\n/* harmony export */ });\n/* harmony import */ var _createLucideIcon_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../createLucideIcon.js */ \"(pages-dir-browser)/./node_modules/lucide-react/dist/esm/createLucideIcon.js\");\n/**\n * @license lucide-react v0.525.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */ \nconst __iconNode = [\n [\n \"path\",\n {\n d: \"M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z\",\n key: \"oel41y\"\n }\n ]\n];\nconst Shield = (0,_createLucideIcon_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(\"shield\", __iconNode);\n //# sourceMappingURL=shield.js.map\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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9sdWNpZGUtcmVhY3QvZGlzdC9lc20vaWNvbnMvc2hpZWxkLmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7OztBQUdPLE1BQU0sVUFBdUI7SUFDbEM7UUFDRTtRQUNBO1lBQ0UsQ0FBRztZQUNILEdBQUs7UUFBQTtLQUNQO0NBRUo7QUFhTSxhQUFTLGtFQUFpQixXQUFVLENBQVUiLCJzb3VyY2VzIjpbIkQ6XFxzcmNcXGljb25zXFxzaGllbGQudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbXG4gICAgJ3BhdGgnLFxuICAgIHtcbiAgICAgIGQ6ICdNMjAgMTNjMCA1LTMuNSA3LjUtNy42NiA4Ljk1YTEgMSAwIDAgMS0uNjctLjAxQzcuNSAyMC41IDQgMTggNCAxM1Y2YTEgMSAwIDAgMSAxLTFjMiAwIDQuNS0xLjIgNi4yNC0yLjcyYTEuMTcgMS4xNyAwIDAgMSAxLjUyIDBDMTQuNTEgMy44MSAxNyA1IDE5IDVhMSAxIDAgMCAxIDEgMXonLFxuICAgICAga2V5OiAnb2VsNDF5JyxcbiAgICB9LFxuICBdLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIFNoaWVsZFxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTWpBZ01UTmpNQ0ExTFRNdU5TQTNMalV0Tnk0Mk5pQTRMamsxWVRFZ01TQXdJREFnTVMwdU5qY3RMakF4UXpjdU5TQXlNQzQxSURRZ01UZ2dOQ0F4TTFZMllURWdNU0F3SURBZ01TQXhMVEZqTWlBd0lEUXVOUzB4TGpJZ05pNHlOQzB5TGpjeVlURXVNVGNnTVM0eE55QXdJREFnTVNBeExqVXlJREJETVRRdU5URWdNeTQ0TVNBeE55QTFJREU1SURWaE1TQXhJREFnTUNBeElERWdNWG9pSUM4K0Nqd3ZjM1puUGdvPSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvc2hpZWxkXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgU2hpZWxkID0gY3JlYXRlTHVjaWRlSWNvbignc2hpZWxkJywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IFNoaWVsZDtcbiJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(pages-dir-browser)/./node_modules/lucide-react/dist/esm/icons/shield.js\n")); - -/***/ }), - -/***/ "(pages-dir-browser)/./node_modules/lucide-react/dist/esm/icons/user-check.js": -/*!****************************************************************!*\ - !*** ./node_modules/lucide-react/dist/esm/icons/user-check.js ***! - \****************************************************************/ -/***/ ((module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ __iconNode: () => (/* binding */ __iconNode),\n/* harmony export */ \"default\": () => (/* binding */ UserCheck)\n/* harmony export */ });\n/* harmony import */ var _createLucideIcon_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../createLucideIcon.js */ \"(pages-dir-browser)/./node_modules/lucide-react/dist/esm/createLucideIcon.js\");\n/**\n * @license lucide-react v0.525.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */ \nconst __iconNode = [\n [\n \"path\",\n {\n d: \"m16 11 2 2 4-4\",\n key: \"9rsbq5\"\n }\n ],\n [\n \"path\",\n {\n d: \"M16 21v-2a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v2\",\n key: \"1yyitq\"\n }\n ],\n [\n \"circle\",\n {\n cx: \"9\",\n cy: \"7\",\n r: \"4\",\n key: \"nufk8\"\n }\n ]\n];\nconst UserCheck = (0,_createLucideIcon_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(\"user-check\", __iconNode);\n //# sourceMappingURL=user-check.js.map\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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9sdWNpZGUtcmVhY3QvZGlzdC9lc20vaWNvbnMvdXNlci1jaGVjay5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7QUFHTyxNQUFNLFVBQXVCO0lBQ2xDO1FBQUMsTUFBUTtRQUFBO1lBQUUsR0FBRyxDQUFrQjtZQUFBLEtBQUs7UUFBQSxDQUFVO0tBQUE7SUFDL0M7UUFBQyxNQUFRO1FBQUE7WUFBRSxHQUFHLENBQTZDO1lBQUEsS0FBSztRQUFBLENBQVU7S0FBQTtJQUMxRTtRQUFDLENBQVU7UUFBQTtZQUFFLENBQUksT0FBSztZQUFBLEVBQUk7WUFBSyxDQUFHO1lBQUssQ0FBSztRQUFTO0tBQUE7Q0FDdkQ7QUFhTSxnQkFBWSxrRUFBaUIsZUFBYyxDQUFVIiwic291cmNlcyI6WyJEOlxcc3JjXFxpY29uc1xcdXNlci1jaGVjay50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ20xNiAxMSAyIDIgNC00Jywga2V5OiAnOXJzYnE1JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTE2IDIxdi0yYTQgNCAwIDAgMC00LTRINmE0IDQgMCAwIDAtNCA0djInLCBrZXk6ICcxeXlpdHEnIH1dLFxuICBbJ2NpcmNsZScsIHsgY3g6ICc5JywgY3k6ICc3JywgcjogJzQnLCBrZXk6ICdudWZrOCcgfV0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgVXNlckNoZWNrXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSnRNVFlnTVRFZ01pQXlJRFF0TkNJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTVRZZ01qRjJMVEpoTkNBMElEQWdNQ0F3TFRRdE5FZzJZVFFnTkNBd0lEQWdNQzAwSURSMk1pSWdMejRLSUNBOFkybHlZMnhsSUdONFBTSTVJaUJqZVQwaU55SWdjajBpTkNJZ0x6NEtQQzl6ZG1jK0NnPT0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL3VzZXItY2hlY2tcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBVc2VyQ2hlY2sgPSBjcmVhdGVMdWNpZGVJY29uKCd1c2VyLWNoZWNrJywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IFVzZXJDaGVjaztcbiJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(pages-dir-browser)/./node_modules/lucide-react/dist/esm/icons/user-check.js\n")); - -/***/ }), - -/***/ "(pages-dir-browser)/./node_modules/lucide-react/dist/esm/icons/users.js": -/*!***********************************************************!*\ - !*** ./node_modules/lucide-react/dist/esm/icons/users.js ***! - \***********************************************************/ -/***/ ((module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ __iconNode: () => (/* binding */ __iconNode),\n/* harmony export */ \"default\": () => (/* binding */ Users)\n/* harmony export */ });\n/* harmony import */ var _createLucideIcon_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../createLucideIcon.js */ \"(pages-dir-browser)/./node_modules/lucide-react/dist/esm/createLucideIcon.js\");\n/**\n * @license lucide-react v0.525.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */ \nconst __iconNode = [\n [\n \"path\",\n {\n d: \"M16 21v-2a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v2\",\n key: \"1yyitq\"\n }\n ],\n [\n \"path\",\n {\n d: \"M16 3.128a4 4 0 0 1 0 7.744\",\n key: \"16gr8j\"\n }\n ],\n [\n \"path\",\n {\n d: \"M22 21v-2a4 4 0 0 0-3-3.87\",\n key: \"kshegd\"\n }\n ],\n [\n \"circle\",\n {\n cx: \"9\",\n cy: \"7\",\n r: \"4\",\n key: \"nufk8\"\n }\n ]\n];\nconst Users = (0,_createLucideIcon_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(\"users\", __iconNode);\n //# sourceMappingURL=users.js.map\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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9sdWNpZGUtcmVhY3QvZGlzdC9lc20vaWNvbnMvdXNlcnMuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7O0FBR08sTUFBTSxVQUF1QjtJQUNsQztRQUFDLE1BQVE7UUFBQTtZQUFFLEdBQUcsQ0FBNkM7WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0lBQzFFO1FBQUMsTUFBUTtRQUFBO1lBQUUsR0FBRyxDQUErQjtZQUFBLEtBQUs7UUFBQSxDQUFVO0tBQUE7SUFDNUQ7UUFBQyxNQUFRO1FBQUE7WUFBRSxHQUFHLENBQThCO1lBQUEsS0FBSztRQUFBLENBQVU7S0FBQTtJQUMzRDtRQUFDLENBQVU7UUFBQTtZQUFFLENBQUksT0FBSztZQUFBLEVBQUk7WUFBSyxDQUFHO1lBQUssQ0FBSztRQUFTO0tBQUE7Q0FDdkQ7QUFhTSxZQUFRLGtFQUFpQixVQUFTLENBQVUiLCJzb3VyY2VzIjpbIkQ6XFxzcmNcXGljb25zXFx1c2Vycy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ00xNiAyMXYtMmE0IDQgMCAwIDAtNC00SDZhNCA0IDAgMCAwLTQgNHYyJywga2V5OiAnMXl5aXRxJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTE2IDMuMTI4YTQgNCAwIDAgMSAwIDcuNzQ0Jywga2V5OiAnMTZncjhqJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTIyIDIxdi0yYTQgNCAwIDAgMC0zLTMuODcnLCBrZXk6ICdrc2hlZ2QnIH1dLFxuICBbJ2NpcmNsZScsIHsgY3g6ICc5JywgY3k6ICc3JywgcjogJzQnLCBrZXk6ICdudWZrOCcgfV0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgVXNlcnNcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1UWWdNakYyTFRKaE5DQTBJREFnTUNBd0xUUXRORWcyWVRRZ05DQXdJREFnTUMwMElEUjJNaUlnTHo0S0lDQThjR0YwYUNCa1BTSk5NVFlnTXk0eE1qaGhOQ0EwSURBZ01DQXhJREFnTnk0M05EUWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRUSXlJREl4ZGkweVlUUWdOQ0F3SURBZ01DMHpMVE11T0RjaUlDOCtDaUFnUEdOcGNtTnNaU0JqZUQwaU9TSWdZM2s5SWpjaUlISTlJalFpSUM4K0Nqd3ZjM1puUGdvPSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvdXNlcnNcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBVc2VycyA9IGNyZWF0ZUx1Y2lkZUljb24oJ3VzZXJzJywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IFVzZXJzO1xuIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(pages-dir-browser)/./node_modules/lucide-react/dist/esm/icons/users.js\n")); - -/***/ }), - -/***/ "(pages-dir-browser)/./node_modules/lucide-react/dist/esm/icons/zap.js": -/*!*********************************************************!*\ - !*** ./node_modules/lucide-react/dist/esm/icons/zap.js ***! - \*********************************************************/ -/***/ ((module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ __iconNode: () => (/* binding */ __iconNode),\n/* harmony export */ \"default\": () => (/* binding */ Zap)\n/* harmony export */ });\n/* harmony import */ var _createLucideIcon_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../createLucideIcon.js */ \"(pages-dir-browser)/./node_modules/lucide-react/dist/esm/createLucideIcon.js\");\n/**\n * @license lucide-react v0.525.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */ \nconst __iconNode = [\n [\n \"path\",\n {\n d: \"M4 14a1 1 0 0 1-.78-1.63l9.9-10.2a.5.5 0 0 1 .86.46l-1.92 6.02A1 1 0 0 0 13 10h7a1 1 0 0 1 .78 1.63l-9.9 10.2a.5.5 0 0 1-.86-.46l1.92-6.02A1 1 0 0 0 11 14z\",\n key: \"1xq2db\"\n }\n ]\n];\nconst Zap = (0,_createLucideIcon_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(\"zap\", __iconNode);\n //# sourceMappingURL=zap.js.map\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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9sdWNpZGUtcmVhY3QvZGlzdC9lc20vaWNvbnMvemFwLmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7OztBQUdPLE1BQU0sVUFBdUI7SUFDbEM7UUFDRTtRQUNBO1lBQ0UsQ0FBRztZQUNILEdBQUs7UUFBQTtLQUNQO0NBRUo7QUFhTSxVQUFNLGtFQUFpQixRQUFPLENBQVUiLCJzb3VyY2VzIjpbIkQ6XFxzcmNcXGljb25zXFx6YXAudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbXG4gICAgJ3BhdGgnLFxuICAgIHtcbiAgICAgIGQ6ICdNNCAxNGExIDEgMCAwIDEtLjc4LTEuNjNsOS45LTEwLjJhLjUuNSAwIDAgMSAuODYuNDZsLTEuOTIgNi4wMkExIDEgMCAwIDAgMTMgMTBoN2ExIDEgMCAwIDEgLjc4IDEuNjNsLTkuOSAxMC4yYS41LjUgMCAwIDEtLjg2LS40NmwxLjkyLTYuMDJBMSAxIDAgMCAwIDExIDE0eicsXG4gICAgICBrZXk6ICcxeHEyZGInLFxuICAgIH0sXG4gIF0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgWmFwXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5OQ0F4TkdFeElERWdNQ0F3SURFdExqYzRMVEV1TmpOc09TNDVMVEV3TGpKaExqVXVOU0F3SURBZ01TQXVPRFl1TkRac0xURXVPVElnTmk0d01rRXhJREVnTUNBd0lEQWdNVE1nTVRCb04yRXhJREVnTUNBd0lERWdMamM0SURFdU5qTnNMVGt1T1NBeE1DNHlZUzQxTGpVZ01DQXdJREV0TGpnMkxTNDBObXd4TGpreUxUWXVNREpCTVNBeElEQWdNQ0F3SURFeElERTBlaUlnTHo0S1BDOXpkbWMrQ2c9PSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvemFwXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgWmFwID0gY3JlYXRlTHVjaWRlSWNvbignemFwJywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IFphcDtcbiJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(pages-dir-browser)/./node_modules/lucide-react/dist/esm/icons/zap.js\n")); - -/***/ }), - -/***/ "(pages-dir-browser)/./node_modules/lucide-react/dist/esm/shared/src/utils.js": -/*!****************************************************************!*\ - !*** ./node_modules/lucide-react/dist/esm/shared/src/utils.js ***! - \****************************************************************/ -/***/ ((module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ hasA11yProp: () => (/* binding */ hasA11yProp),\n/* harmony export */ mergeClasses: () => (/* binding */ mergeClasses),\n/* harmony export */ toCamelCase: () => (/* binding */ toCamelCase),\n/* harmony export */ toKebabCase: () => (/* binding */ toKebabCase),\n/* harmony export */ toPascalCase: () => (/* binding */ toPascalCase)\n/* harmony export */ });\n/**\n * @license lucide-react v0.525.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */ const toKebabCase = (string)=>string.replace(/([a-z0-9])([A-Z])/g, \"$1-$2\").toLowerCase();\nconst toCamelCase = (string)=>string.replace(/^([A-Z])|[\\s-_]+(\\w)/g, (match, p1, p2)=>p2 ? p2.toUpperCase() : p1.toLowerCase());\nconst toPascalCase = (string)=>{\n const camelCase = toCamelCase(string);\n return camelCase.charAt(0).toUpperCase() + camelCase.slice(1);\n};\nconst mergeClasses = function() {\n for(var _len = arguments.length, classes = new Array(_len), _key = 0; _key < _len; _key++){\n classes[_key] = arguments[_key];\n }\n return classes.filter((className, index, array)=>{\n return Boolean(className) && className.trim() !== \"\" && array.indexOf(className) === index;\n }).join(\" \").trim();\n};\nconst hasA11yProp = (props)=>{\n for(const prop in props){\n if (prop.startsWith(\"aria-\") || prop === \"role\" || prop === \"title\") {\n return true;\n }\n }\n};\n //# sourceMappingURL=utils.js.map\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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9sdWNpZGUtcmVhY3QvZGlzdC9lc20vc2hhcmVkL3NyYy91dGlscy5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7O0lBUWEsb0JBQWMsQ0FBQyxNQUMxQixVQUFPLFFBQVEsQ0FBc0Isc0JBQU8sUUFBRSxDQUFZO0FBUS9DLGtCQUFjLEdBQW1CLE9BQzVDLFFBQU8sU0FBUSx5QkFBeUIsQ0FBQyxPQUFPLENBQUksTUFDbEQsS0FBSyxJQUFHLGNBQWdCLE1BQUcsQ0FBWTtBQVM5QixxQkFBZSxDQUFtQixNQUFnQztJQUN2RSxrQkFBWSxZQUFZLE1BQU07SUFFNUIsaUJBQVUsT0FBTyxDQUFDLEVBQUUsYUFBZ0IsYUFBVSxNQUFNLENBQUM7QUFDL0Q7QUFRYSxtQkFBZSxJQUEyQzs7UUFBQSxPQUNyRTs7V0FBQSxRQUNHLE9BQU8sQ0FBQyxXQUFXLE9BQU8sS0FBVTtRQUVqQyxlQUFRLFNBQVMsRUFDaEIsWUFBcUIsWUFBVyxDQUNqQyxXQUFNLE9BQVEsRUFBUyxTQUFNO0lBRWpDLENBQUMsQ0FDQSxNQUFLLENBQUcsSUFDUixDQUFLOztBQVFHLG9CQUFjLENBQUMsS0FBK0I7SUFDekQsVUFBVyxRQUFRLEtBQU87UUFDeEIsQ0FBSSxRQUFLLFVBQVcsRUFBTyxRQUFLLE9BQVMsZUFBVSxTQUFTLE9BQVM7WUFDNUQ7UUFBQTtJQUNUO0FBRUoiLCJzb3VyY2VzIjpbIkQ6XFxzaGFyZWRcXHNyY1xcdXRpbHMudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2FtZWxUb1Bhc2NhbCB9IGZyb20gJy4vdXRpbGl0eS10eXBlcyc7XG5cbi8qKlxuICogQ29udmVydHMgc3RyaW5nIHRvIGtlYmFiIGNhc2VcbiAqXG4gKiBAcGFyYW0ge3N0cmluZ30gc3RyaW5nXG4gKiBAcmV0dXJucyB7c3RyaW5nfSBBIGtlYmFiaXplZCBzdHJpbmdcbiAqL1xuZXhwb3J0IGNvbnN0IHRvS2ViYWJDYXNlID0gKHN0cmluZzogc3RyaW5nKSA9PlxuICBzdHJpbmcucmVwbGFjZSgvKFthLXowLTldKShbQS1aXSkvZywgJyQxLSQyJykudG9Mb3dlckNhc2UoKTtcblxuLyoqXG4gKiBDb252ZXJ0cyBzdHJpbmcgdG8gY2FtZWwgY2FzZVxuICpcbiAqIEBwYXJhbSB7c3RyaW5nfSBzdHJpbmdcbiAqIEByZXR1cm5zIHtzdHJpbmd9IEEgY2FtZWxpemVkIHN0cmluZ1xuICovXG5leHBvcnQgY29uc3QgdG9DYW1lbENhc2UgPSA8VCBleHRlbmRzIHN0cmluZz4oc3RyaW5nOiBUKSA9PlxuICBzdHJpbmcucmVwbGFjZSgvXihbQS1aXSl8W1xccy1fXSsoXFx3KS9nLCAobWF0Y2gsIHAxLCBwMikgPT5cbiAgICBwMiA/IHAyLnRvVXBwZXJDYXNlKCkgOiBwMS50b0xvd2VyQ2FzZSgpLFxuICApO1xuXG4vKipcbiAqIENvbnZlcnRzIHN0cmluZyB0byBwYXNjYWwgY2FzZVxuICpcbiAqIEBwYXJhbSB7c3RyaW5nfSBzdHJpbmdcbiAqIEByZXR1cm5zIHtzdHJpbmd9IEEgcGFzY2FsaXplZCBzdHJpbmdcbiAqL1xuZXhwb3J0IGNvbnN0IHRvUGFzY2FsQ2FzZSA9IDxUIGV4dGVuZHMgc3RyaW5nPihzdHJpbmc6IFQpOiBDYW1lbFRvUGFzY2FsPFQ+ID0+IHtcbiAgY29uc3QgY2FtZWxDYXNlID0gdG9DYW1lbENhc2Uoc3RyaW5nKTtcblxuICByZXR1cm4gKGNhbWVsQ2FzZS5jaGFyQXQoMCkudG9VcHBlckNhc2UoKSArIGNhbWVsQ2FzZS5zbGljZSgxKSkgYXMgQ2FtZWxUb1Bhc2NhbDxUPjtcbn07XG5cbi8qKlxuICogTWVyZ2VzIGNsYXNzZXMgaW50byBhIHNpbmdsZSBzdHJpbmdcbiAqXG4gKiBAcGFyYW0ge2FycmF5fSBjbGFzc2VzXG4gKiBAcmV0dXJucyB7c3RyaW5nfSBBIHN0cmluZyBvZiBjbGFzc2VzXG4gKi9cbmV4cG9ydCBjb25zdCBtZXJnZUNsYXNzZXMgPSA8Q2xhc3NUeXBlID0gc3RyaW5nIHwgdW5kZWZpbmVkIHwgbnVsbD4oLi4uY2xhc3NlczogQ2xhc3NUeXBlW10pID0+XG4gIGNsYXNzZXNcbiAgICAuZmlsdGVyKChjbGFzc05hbWUsIGluZGV4LCBhcnJheSkgPT4ge1xuICAgICAgcmV0dXJuIChcbiAgICAgICAgQm9vbGVhbihjbGFzc05hbWUpICYmXG4gICAgICAgIChjbGFzc05hbWUgYXMgc3RyaW5nKS50cmltKCkgIT09ICcnICYmXG4gICAgICAgIGFycmF5LmluZGV4T2YoY2xhc3NOYW1lKSA9PT0gaW5kZXhcbiAgICAgICk7XG4gICAgfSlcbiAgICAuam9pbignICcpXG4gICAgLnRyaW0oKTtcblxuLyoqXG4gKiBDaGVjayBpZiBhIGNvbXBvbmVudCBoYXMgYW4gYWNjZXNzaWJpbGl0eSBwcm9wXG4gKlxuICogQHBhcmFtIHtvYmplY3R9IHByb3BzXG4gKiBAcmV0dXJucyB7Ym9vbGVhbn0gV2hldGhlciB0aGUgY29tcG9uZW50IGhhcyBhbiBhY2Nlc3NpYmlsaXR5IHByb3BcbiAqL1xuZXhwb3J0IGNvbnN0IGhhc0ExMXlQcm9wID0gKHByb3BzOiBSZWNvcmQ8c3RyaW5nLCBhbnk+KSA9PiB7XG4gIGZvciAoY29uc3QgcHJvcCBpbiBwcm9wcykge1xuICAgIGlmIChwcm9wLnN0YXJ0c1dpdGgoJ2FyaWEtJykgfHwgcHJvcCA9PT0gJ3JvbGUnIHx8IHByb3AgPT09ICd0aXRsZScpIHtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgfVxufTtcbiJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(pages-dir-browser)/./node_modules/lucide-react/dist/esm/shared/src/utils.js\n")); - -/***/ }), - -/***/ "(pages-dir-browser)/./node_modules/next/dist/build/webpack/loaders/next-client-pages-loader.js?absolutePagePath=D%3A%5Cdongyun-projects%5Ctwo%5Cpages%5Cindex.tsx&page=%2F!": -/*!***************************************************************************************************************************************************************!*\ - !*** ./node_modules/next/dist/build/webpack/loaders/next-client-pages-loader.js?absolutePagePath=D%3A%5Cdongyun-projects%5Ctwo%5Cpages%5Cindex.tsx&page=%2F! ***! - \***************************************************************************************************************************************************************/ -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { - -eval(__webpack_require__.ts("\n (window.__NEXT_P = window.__NEXT_P || []).push([\n \"/\",\n function () {\n return __webpack_require__(/*! ./pages/index.tsx */ \"(pages-dir-browser)/./pages/index.tsx\");\n }\n ]);\n if(true) {\n module.hot.dispose(function () {\n window.__NEXT_P.push([\"/\"])\n });\n }\n //# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvYnVpbGQvd2VicGFjay9sb2FkZXJzL25leHQtY2xpZW50LXBhZ2VzLWxvYWRlci5qcz9hYnNvbHV0ZVBhZ2VQYXRoPUQlM0ElNUNkb25neXVuLXByb2plY3RzJTVDdHdvJTVDcGFnZXMlNUNpbmRleC50c3gmcGFnZT0lMkYhIiwibWFwcGluZ3MiOiI7QUFDQTtBQUNBO0FBQ0E7QUFDQSxlQUFlLG1CQUFPLENBQUMsZ0VBQW1CO0FBQzFDO0FBQ0E7QUFDQSxPQUFPLElBQVU7QUFDakIsTUFBTSxVQUFVO0FBQ2hCO0FBQ0EsT0FBTztBQUNQO0FBQ0EiLCJzb3VyY2VzIjpbIiJdLCJzb3VyY2VzQ29udGVudCI6WyJcbiAgICAod2luZG93Ll9fTkVYVF9QID0gd2luZG93Ll9fTkVYVF9QIHx8IFtdKS5wdXNoKFtcbiAgICAgIFwiL1wiLFxuICAgICAgZnVuY3Rpb24gKCkge1xuICAgICAgICByZXR1cm4gcmVxdWlyZShcIi4vcGFnZXMvaW5kZXgudHN4XCIpO1xuICAgICAgfVxuICAgIF0pO1xuICAgIGlmKG1vZHVsZS5ob3QpIHtcbiAgICAgIG1vZHVsZS5ob3QuZGlzcG9zZShmdW5jdGlvbiAoKSB7XG4gICAgICAgIHdpbmRvdy5fX05FWFRfUC5wdXNoKFtcIi9cIl0pXG4gICAgICB9KTtcbiAgICB9XG4gICJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(pages-dir-browser)/./node_modules/next/dist/build/webpack/loaders/next-client-pages-loader.js?absolutePagePath=D%3A%5Cdongyun-projects%5Ctwo%5Cpages%5Cindex.tsx&page=%2F!\n")); - -/***/ }), - -/***/ "(pages-dir-browser)/./node_modules/next/dist/client/get-domain-locale.js": -/*!************************************************************!*\ - !*** ./node_modules/next/dist/client/get-domain-locale.js ***! - \************************************************************/ -/***/ ((module, exports, __webpack_require__) => { - -"use strict"; -eval(__webpack_require__.ts("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"getDomainLocale\", ({\n enumerable: true,\n get: function() {\n return getDomainLocale;\n }\n}));\nconst _normalizetrailingslash = __webpack_require__(/*! ./normalize-trailing-slash */ \"(pages-dir-browser)/./node_modules/next/dist/client/normalize-trailing-slash.js\");\nconst basePath = false || '';\nfunction getDomainLocale(path, locale, locales, domainLocales) {\n if (false) {} else {\n return false;\n }\n}\nif ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=get-domain-locale.js.map\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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvY2xpZW50L2dldC1kb21haW4tbG9jYWxlLmpzIiwibWFwcGluZ3MiOiI7Ozs7bURBT2dCQTs7O2VBQUFBOzs7b0RBSjJCO0FBRTNDLE1BQU1DLFdBQVlDLE1BQWtDLElBQWU7QUFFNUQsU0FBU0YsZ0JBQ2RLLElBQVksRUFDWkMsTUFBdUIsRUFDdkJDLE9BQTJCLEVBQzNCQyxhQUF1QztJQUV2QyxJQUFJTixLQUErQixFQUFFLEVBa0JwQyxNQUFNO1FBQ0wsT0FBTztJQUNUO0FBQ0YiLCJzb3VyY2VzIjpbIkQ6XFxzcmNcXGNsaWVudFxcZ2V0LWRvbWFpbi1sb2NhbGUudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBEb21haW5Mb2NhbGUgfSBmcm9tICcuLi9zZXJ2ZXIvY29uZmlnJ1xuaW1wb3J0IHR5cGUgeyBub3JtYWxpemVMb2NhbGVQYXRoIGFzIE5vcm1hbGl6ZUZuIH0gZnJvbSAnLi9ub3JtYWxpemUtbG9jYWxlLXBhdGgnXG5pbXBvcnQgdHlwZSB7IGRldGVjdERvbWFpbkxvY2FsZSBhcyBEZXRlY3RGbiB9IGZyb20gJy4vZGV0ZWN0LWRvbWFpbi1sb2NhbGUnXG5pbXBvcnQgeyBub3JtYWxpemVQYXRoVHJhaWxpbmdTbGFzaCB9IGZyb20gJy4vbm9ybWFsaXplLXRyYWlsaW5nLXNsYXNoJ1xuXG5jb25zdCBiYXNlUGF0aCA9IChwcm9jZXNzLmVudi5fX05FWFRfUk9VVEVSX0JBU0VQQVRIIGFzIHN0cmluZykgfHwgJydcblxuZXhwb3J0IGZ1bmN0aW9uIGdldERvbWFpbkxvY2FsZShcbiAgcGF0aDogc3RyaW5nLFxuICBsb2NhbGU/OiBzdHJpbmcgfCBmYWxzZSxcbiAgbG9jYWxlcz86IHJlYWRvbmx5IHN0cmluZ1tdLFxuICBkb21haW5Mb2NhbGVzPzogcmVhZG9ubHkgRG9tYWluTG9jYWxlW11cbikge1xuICBpZiAocHJvY2Vzcy5lbnYuX19ORVhUX0kxOE5fU1VQUE9SVCkge1xuICAgIGNvbnN0IG5vcm1hbGl6ZUxvY2FsZVBhdGg6IHR5cGVvZiBOb3JtYWxpemVGbiA9IChcbiAgICAgIHJlcXVpcmUoJy4vbm9ybWFsaXplLWxvY2FsZS1wYXRoJykgYXMgdHlwZW9mIGltcG9ydCgnLi9ub3JtYWxpemUtbG9jYWxlLXBhdGgnKVxuICAgICkubm9ybWFsaXplTG9jYWxlUGF0aFxuICAgIGNvbnN0IGRldGVjdERvbWFpbkxvY2FsZTogdHlwZW9mIERldGVjdEZuID0gKFxuICAgICAgcmVxdWlyZSgnLi9kZXRlY3QtZG9tYWluLWxvY2FsZScpIGFzIHR5cGVvZiBpbXBvcnQoJy4vZGV0ZWN0LWRvbWFpbi1sb2NhbGUnKVxuICAgICkuZGV0ZWN0RG9tYWluTG9jYWxlXG5cbiAgICBjb25zdCB0YXJnZXQgPSBsb2NhbGUgfHwgbm9ybWFsaXplTG9jYWxlUGF0aChwYXRoLCBsb2NhbGVzKS5kZXRlY3RlZExvY2FsZVxuICAgIGNvbnN0IGRvbWFpbiA9IGRldGVjdERvbWFpbkxvY2FsZShkb21haW5Mb2NhbGVzLCB1bmRlZmluZWQsIHRhcmdldClcbiAgICBpZiAoZG9tYWluKSB7XG4gICAgICBjb25zdCBwcm90byA9IGBodHRwJHtkb21haW4uaHR0cCA/ICcnIDogJ3MnfTovL2BcbiAgICAgIGNvbnN0IGZpbmFsTG9jYWxlID0gdGFyZ2V0ID09PSBkb21haW4uZGVmYXVsdExvY2FsZSA/ICcnIDogYC8ke3RhcmdldH1gXG4gICAgICByZXR1cm4gYCR7cHJvdG99JHtkb21haW4uZG9tYWlufSR7bm9ybWFsaXplUGF0aFRyYWlsaW5nU2xhc2goXG4gICAgICAgIGAke2Jhc2VQYXRofSR7ZmluYWxMb2NhbGV9JHtwYXRofWBcbiAgICAgICl9YFxuICAgIH1cbiAgICByZXR1cm4gZmFsc2VcbiAgfSBlbHNlIHtcbiAgICByZXR1cm4gZmFsc2VcbiAgfVxufVxuIl0sIm5hbWVzIjpbImdldERvbWFpbkxvY2FsZSIsImJhc2VQYXRoIiwicHJvY2VzcyIsImVudiIsIl9fTkVYVF9ST1VURVJfQkFTRVBBVEgiLCJwYXRoIiwibG9jYWxlIiwibG9jYWxlcyIsImRvbWFpbkxvY2FsZXMiLCJfX05FWFRfSTE4Tl9TVVBQT1JUIiwibm9ybWFsaXplTG9jYWxlUGF0aCIsInJlcXVpcmUiLCJkZXRlY3REb21haW5Mb2NhbGUiLCJ0YXJnZXQiLCJkZXRlY3RlZExvY2FsZSIsImRvbWFpbiIsInVuZGVmaW5lZCIsInByb3RvIiwiaHR0cCIsImZpbmFsTG9jYWxlIiwiZGVmYXVsdExvY2FsZSIsIm5vcm1hbGl6ZVBhdGhUcmFpbGluZ1NsYXNoIl0sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(pages-dir-browser)/./node_modules/next/dist/client/get-domain-locale.js\n")); - -/***/ }), - -/***/ "(pages-dir-browser)/./node_modules/next/dist/client/link.js": -/*!***********************************************!*\ - !*** ./node_modules/next/dist/client/link.js ***! - \***********************************************/ -/***/ ((module, exports, __webpack_require__) => { - -"use strict"; -eval(__webpack_require__.ts("/* __next_internal_client_entry_do_not_use__ cjs */ \nvar _s = $RefreshSig$();\n\"use strict\";\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n default: function() {\n return _default;\n },\n useLinkStatus: function() {\n return useLinkStatus;\n }\n});\nconst _interop_require_wildcard = __webpack_require__(/*! @swc/helpers/_/_interop_require_wildcard */ \"(pages-dir-browser)/./node_modules/@swc/helpers/esm/_interop_require_wildcard.js\");\nconst _jsxruntime = __webpack_require__(/*! react/jsx-runtime */ \"(pages-dir-browser)/./node_modules/react/jsx-runtime.js\");\nconst _react = /*#__PURE__*/ _interop_require_wildcard._(__webpack_require__(/*! react */ \"(pages-dir-browser)/./node_modules/react/index.js\"));\nconst _resolvehref = __webpack_require__(/*! ./resolve-href */ \"(pages-dir-browser)/./node_modules/next/dist/client/resolve-href.js\");\nconst _islocalurl = __webpack_require__(/*! ../shared/lib/router/utils/is-local-url */ \"(pages-dir-browser)/./node_modules/next/dist/shared/lib/router/utils/is-local-url.js\");\nconst _formaturl = __webpack_require__(/*! ../shared/lib/router/utils/format-url */ \"(pages-dir-browser)/./node_modules/next/dist/shared/lib/router/utils/format-url.js\");\nconst _utils = __webpack_require__(/*! ../shared/lib/utils */ \"(pages-dir-browser)/./node_modules/next/dist/shared/lib/utils.js\");\nconst _addlocale = __webpack_require__(/*! ./add-locale */ \"(pages-dir-browser)/./node_modules/next/dist/client/add-locale.js\");\nconst _routercontextsharedruntime = __webpack_require__(/*! ../shared/lib/router-context.shared-runtime */ \"(pages-dir-browser)/./node_modules/next/dist/shared/lib/router-context.shared-runtime.js\");\nconst _useintersection = __webpack_require__(/*! ./use-intersection */ \"(pages-dir-browser)/./node_modules/next/dist/client/use-intersection.js\");\nconst _getdomainlocale = __webpack_require__(/*! ./get-domain-locale */ \"(pages-dir-browser)/./node_modules/next/dist/client/get-domain-locale.js\");\nconst _addbasepath = __webpack_require__(/*! ./add-base-path */ \"(pages-dir-browser)/./node_modules/next/dist/client/add-base-path.js\");\nconst _usemergedref = __webpack_require__(/*! ./use-merged-ref */ \"(pages-dir-browser)/./node_modules/next/dist/client/use-merged-ref.js\");\nconst _erroronce = __webpack_require__(/*! ../shared/lib/utils/error-once */ \"(pages-dir-browser)/./node_modules/next/dist/shared/lib/utils/error-once.js\");\nconst prefetched = new Set();\nfunction prefetch(router, href, as, options) {\n if (false) {}\n if (!(0, _islocalurl.isLocalURL)(href)) {\n return;\n }\n // We should only dedupe requests when experimental.optimisticClientCache is\n // disabled.\n if (!options.bypassPrefetchedCheck) {\n const locale = typeof options.locale !== 'undefined' ? options.locale : 'locale' in router ? router.locale : undefined;\n const prefetchedKey = href + '%' + as + '%' + locale;\n // If we've already fetched the key, then don't prefetch it again!\n if (prefetched.has(prefetchedKey)) {\n return;\n }\n // Mark this URL as prefetched.\n prefetched.add(prefetchedKey);\n }\n // Prefetch the JSON page if asked (only in the client)\n // We need to handle a prefetch error here since we may be\n // loading with priority which can reject but we don't\n // want to force navigation since this is only a prefetch\n router.prefetch(href, as, options).catch((err)=>{\n if (true) {\n // rethrow to show invalid URL errors\n throw err;\n }\n });\n}\nfunction isModifiedEvent(event) {\n const eventTarget = event.currentTarget;\n const target = eventTarget.getAttribute('target');\n return target && target !== '_self' || event.metaKey || event.ctrlKey || event.shiftKey || event.altKey || // triggers resource download\n event.nativeEvent && event.nativeEvent.which === 2;\n}\nfunction linkClicked(e, router, href, as, replace, shallow, scroll, locale, onNavigate) {\n const { nodeName } = e.currentTarget;\n // anchors inside an svg have a lowercase nodeName\n const isAnchorNodeName = nodeName.toUpperCase() === 'A';\n if (isAnchorNodeName && isModifiedEvent(e) || e.currentTarget.hasAttribute('download')) {\n // ignore click for browser’s default behavior\n return;\n }\n if (!(0, _islocalurl.isLocalURL)(href)) {\n if (replace) {\n // browser default behavior does not replace the history state\n // so we need to do it manually\n e.preventDefault();\n location.replace(href);\n }\n // ignore click for browser’s default behavior\n return;\n }\n e.preventDefault();\n const navigate = ()=>{\n if (onNavigate) {\n let isDefaultPrevented = false;\n onNavigate({\n preventDefault: ()=>{\n isDefaultPrevented = true;\n }\n });\n if (isDefaultPrevented) {\n return;\n }\n }\n // If the router is an NextRouter instance it will have `beforePopState`\n const routerScroll = scroll != null ? scroll : true;\n if ('beforePopState' in router) {\n router[replace ? 'replace' : 'push'](href, as, {\n shallow,\n locale,\n scroll: routerScroll\n });\n } else {\n router[replace ? 'replace' : 'push'](as || href, {\n scroll: routerScroll\n });\n }\n };\n navigate();\n}\nfunction formatStringOrUrl(urlObjOrString) {\n if (typeof urlObjOrString === 'string') {\n return urlObjOrString;\n }\n return (0, _formaturl.formatUrl)(urlObjOrString);\n}\n/**\n * A React component that extends the HTML `<a>` element to provide [prefetching](https://nextjs.org/docs/app/building-your-application/routing/linking-and-navigating#2-prefetching)\n * and client-side navigation between routes.\n *\n * It is the primary way to navigate between routes in Next.js.\n *\n * Read more: [Next.js docs: `<Link>`](https://nextjs.org/docs/app/api-reference/components/link)\n */ const Link = /*#__PURE__*/ _s(_react.default.forwardRef(_c = _s(function LinkComponent(props, forwardedRef) {\n _s();\n let children;\n const { href: hrefProp, as: asProp, children: childrenProp, prefetch: prefetchProp = null, passHref, replace, shallow, scroll, locale, onClick, onNavigate, onMouseEnter: onMouseEnterProp, onTouchStart: onTouchStartProp, legacyBehavior = false, ...restProps } = props;\n children = childrenProp;\n if (legacyBehavior && (typeof children === 'string' || typeof children === 'number')) {\n children = /*#__PURE__*/ (0, _jsxruntime.jsx)(\"a\", {\n children: children\n });\n }\n const router = _react.default.useContext(_routercontextsharedruntime.RouterContext);\n const prefetchEnabled = prefetchProp !== false;\n if (true) {\n function createPropError(args) {\n return Object.defineProperty(new Error(\"Failed prop type: The prop `\" + args.key + \"` expects a \" + args.expected + \" in `<Link>`, but got `\" + args.actual + \"` instead.\" + ( true ? \"\\nOpen your browser's console to view the Component stack trace.\" : 0)), \"__NEXT_ERROR_CODE\", {\n value: \"E319\",\n enumerable: false,\n configurable: true\n });\n }\n // TypeScript trick for type-guarding:\n const requiredPropsGuard = {\n href: true\n };\n const requiredProps = Object.keys(requiredPropsGuard);\n requiredProps.forEach((key)=>{\n if (key === 'href') {\n if (props[key] == null || typeof props[key] !== 'string' && typeof props[key] !== 'object') {\n throw createPropError({\n key,\n expected: '`string` or `object`',\n actual: props[key] === null ? 'null' : typeof props[key]\n });\n }\n } else {\n // TypeScript trick for type-guarding:\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n const _ = key;\n }\n });\n // TypeScript trick for type-guarding:\n const optionalPropsGuard = {\n as: true,\n replace: true,\n scroll: true,\n shallow: true,\n passHref: true,\n prefetch: true,\n locale: true,\n onClick: true,\n onMouseEnter: true,\n onTouchStart: true,\n legacyBehavior: true,\n onNavigate: true\n };\n const optionalProps = Object.keys(optionalPropsGuard);\n optionalProps.forEach((key)=>{\n const valType = typeof props[key];\n if (key === 'as') {\n if (props[key] && valType !== 'string' && valType !== 'object') {\n throw createPropError({\n key,\n expected: '`string` or `object`',\n actual: valType\n });\n }\n } else if (key === 'locale') {\n if (props[key] && valType !== 'string') {\n throw createPropError({\n key,\n expected: '`string`',\n actual: valType\n });\n }\n } else if (key === 'onClick' || key === 'onMouseEnter' || key === 'onTouchStart' || key === 'onNavigate') {\n if (props[key] && valType !== 'function') {\n throw createPropError({\n key,\n expected: '`function`',\n actual: valType\n });\n }\n } else if (key === 'replace' || key === 'scroll' || key === 'shallow' || key === 'passHref' || key === 'legacyBehavior') {\n if (props[key] != null && valType !== 'boolean') {\n throw createPropError({\n key,\n expected: '`boolean`',\n actual: valType\n });\n }\n } else if (key === 'prefetch') {\n if (props[key] != null && valType !== 'boolean' && props[key] !== 'auto') {\n throw createPropError({\n key,\n expected: '`boolean | \"auto\"`',\n actual: valType\n });\n }\n } else {\n // TypeScript trick for type-guarding:\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n const _ = key;\n }\n });\n }\n const { href, as } = _react.default.useMemo({\n \"Link.LinkComponent.useMemo\": ()=>{\n if (!router) {\n const resolvedHref = formatStringOrUrl(hrefProp);\n return {\n href: resolvedHref,\n as: asProp ? formatStringOrUrl(asProp) : resolvedHref\n };\n }\n const [resolvedHref, resolvedAs] = (0, _resolvehref.resolveHref)(router, hrefProp, true);\n return {\n href: resolvedHref,\n as: asProp ? (0, _resolvehref.resolveHref)(router, asProp) : resolvedAs || resolvedHref\n };\n }\n }[\"Link.LinkComponent.useMemo\"], [\n router,\n hrefProp,\n asProp\n ]);\n const previousHref = _react.default.useRef(href);\n const previousAs = _react.default.useRef(as);\n // This will return the first child, if multiple are provided it will throw an error\n let child;\n if (legacyBehavior) {\n if (true) {\n if (onClick) {\n console.warn('\"onClick\" was passed to <Link> with `href` of `' + hrefProp + '` but \"legacyBehavior\" was set. The legacy behavior requires onClick be set on the child of next/link');\n }\n if (onMouseEnterProp) {\n console.warn('\"onMouseEnter\" was passed to <Link> with `href` of `' + hrefProp + '` but \"legacyBehavior\" was set. The legacy behavior requires onMouseEnter be set on the child of next/link');\n }\n try {\n child = _react.default.Children.only(children);\n } catch (err) {\n if (!children) {\n throw Object.defineProperty(new Error(\"No children were passed to <Link> with `href` of `\" + hrefProp + \"` but one child is required https://nextjs.org/docs/messages/link-no-children\"), \"__NEXT_ERROR_CODE\", {\n value: \"E320\",\n enumerable: false,\n configurable: true\n });\n }\n throw Object.defineProperty(new Error(\"Multiple children were passed to <Link> with `href` of `\" + hrefProp + \"` but only one child is supported https://nextjs.org/docs/messages/link-multiple-children\" + ( true ? \" \\nOpen your browser's console to view the Component stack trace.\" : 0)), \"__NEXT_ERROR_CODE\", {\n value: \"E266\",\n enumerable: false,\n configurable: true\n });\n }\n } else {}\n } else {\n if (true) {\n if ((children == null ? void 0 : children.type) === 'a') {\n throw Object.defineProperty(new Error('Invalid <Link> with <a> child. Please remove <a> or use <Link legacyBehavior>.\\nLearn more: https://nextjs.org/docs/messages/invalid-new-link-with-extra-anchor'), \"__NEXT_ERROR_CODE\", {\n value: \"E209\",\n enumerable: false,\n configurable: true\n });\n }\n }\n }\n const childRef = legacyBehavior ? child && typeof child === 'object' && child.ref : forwardedRef;\n const [setIntersectionRef, isVisible, resetVisible] = (0, _useintersection.useIntersection)({\n rootMargin: '200px'\n });\n const setIntersectionWithResetRef = _react.default.useCallback({\n \"Link.LinkComponent.useCallback[setIntersectionWithResetRef]\": (el)=>{\n // Before the link getting observed, check if visible state need to be reset\n if (previousAs.current !== as || previousHref.current !== href) {\n resetVisible();\n previousAs.current = as;\n previousHref.current = href;\n }\n setIntersectionRef(el);\n }\n }[\"Link.LinkComponent.useCallback[setIntersectionWithResetRef]\"], [\n as,\n href,\n resetVisible,\n setIntersectionRef\n ]);\n const setRef = (0, _usemergedref.useMergedRef)(setIntersectionWithResetRef, childRef);\n // Prefetch the URL if we haven't already and it's visible.\n _react.default.useEffect({\n \"Link.LinkComponent.useEffect\": ()=>{\n // in dev, we only prefetch on hover to avoid wasting resources as the prefetch will trigger compiling the page.\n if (true) {\n return;\n }\n if (!router) {\n return;\n }\n // If we don't need to prefetch the URL, don't do prefetch.\n if (!isVisible || !prefetchEnabled) {\n return;\n }\n // Prefetch the URL.\n prefetch(router, href, as, {\n locale\n });\n }\n }[\"Link.LinkComponent.useEffect\"], [\n as,\n href,\n isVisible,\n locale,\n prefetchEnabled,\n router == null ? void 0 : router.locale,\n router\n ]);\n const childProps = {\n ref: setRef,\n onClick (e) {\n if (true) {\n if (!e) {\n throw Object.defineProperty(new Error('Component rendered inside next/link has to pass click event to \"onClick\" prop.'), \"__NEXT_ERROR_CODE\", {\n value: \"E312\",\n enumerable: false,\n configurable: true\n });\n }\n }\n if (!legacyBehavior && typeof onClick === 'function') {\n onClick(e);\n }\n if (legacyBehavior && child.props && typeof child.props.onClick === 'function') {\n child.props.onClick(e);\n }\n if (!router) {\n return;\n }\n if (e.defaultPrevented) {\n return;\n }\n linkClicked(e, router, href, as, replace, shallow, scroll, locale, onNavigate);\n },\n onMouseEnter (e) {\n if (!legacyBehavior && typeof onMouseEnterProp === 'function') {\n onMouseEnterProp(e);\n }\n if (legacyBehavior && child.props && typeof child.props.onMouseEnter === 'function') {\n child.props.onMouseEnter(e);\n }\n if (!router) {\n return;\n }\n prefetch(router, href, as, {\n locale,\n priority: true,\n // @see {https://github.com/vercel/next.js/discussions/40268?sort=top#discussioncomment-3572642}\n bypassPrefetchedCheck: true\n });\n },\n onTouchStart: false ? 0 : function onTouchStart(e) {\n if (!legacyBehavior && typeof onTouchStartProp === 'function') {\n onTouchStartProp(e);\n }\n if (legacyBehavior && child.props && typeof child.props.onTouchStart === 'function') {\n child.props.onTouchStart(e);\n }\n if (!router) {\n return;\n }\n prefetch(router, href, as, {\n locale,\n priority: true,\n // @see {https://github.com/vercel/next.js/discussions/40268?sort=top#discussioncomment-3572642}\n bypassPrefetchedCheck: true\n });\n }\n };\n // If child is an <a> tag and doesn't have a href attribute, or if the 'passHref' property is\n // defined, we specify the current 'href', so that repetition is not needed by the user.\n // If the url is absolute, we can bypass the logic to prepend the domain and locale.\n if ((0, _utils.isAbsoluteUrl)(as)) {\n childProps.href = as;\n } else if (!legacyBehavior || passHref || child.type === 'a' && !('href' in child.props)) {\n const curLocale = typeof locale !== 'undefined' ? locale : router == null ? void 0 : router.locale;\n // we only render domain locales if we are currently on a domain locale\n // so that locale links are still visitable in development/preview envs\n const localeDomain = (router == null ? void 0 : router.isLocaleDomain) && (0, _getdomainlocale.getDomainLocale)(as, curLocale, router == null ? void 0 : router.locales, router == null ? void 0 : router.domainLocales);\n childProps.href = localeDomain || (0, _addbasepath.addBasePath)((0, _addlocale.addLocale)(as, curLocale, router == null ? void 0 : router.defaultLocale));\n }\n if (legacyBehavior) {\n if (true) {\n (0, _erroronce.errorOnce)('`legacyBehavior` is deprecated and will be removed in a future ' + 'release. A codemod is available to upgrade your components:\\n\\n' + 'npx @next/codemod@latest new-link .\\n\\n' + 'Learn more: https://nextjs.org/docs/app/building-your-application/upgrading/codemods#remove-a-tags-from-link-components');\n }\n return /*#__PURE__*/ _react.default.cloneElement(child, childProps);\n }\n return /*#__PURE__*/ (0, _jsxruntime.jsx)(\"a\", {\n ...restProps,\n ...childProps,\n children: children\n });\n}, \"cOEYCKQNQkvb3D7rzCm6zrDrstY=\")), \"cOEYCKQNQkvb3D7rzCm6zrDrstY=\");\n_c1 = Link;\nconst LinkStatusContext = /*#__PURE__*/ (0, _react.createContext)({\n // We do not support link status in the Pages Router, so we always return false\n pending: false\n});\nconst useLinkStatus = ()=>{\n // This behaviour is like React's useFormStatus. When the component is not under\n // a <form> tag, it will get the default value, instead of throwing an error.\n return (0, _react.useContext)(LinkStatusContext);\n};\nconst _default = Link;\nif ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=link.js.map\nvar _c, _c1;\n$RefreshReg$(_c, \"Link$_react.default.forwardRef\");\n$RefreshReg$(_c1, \"Link\");\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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvY2xpZW50L2xpbmsuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7SUE0c0JBLE9BQW1CO2VBQW5COztJQU5hQSxhQUFhO2VBQWJBOzs7Ozs2RUEvckJvQzt5Q0FFckI7d0NBQ0Q7dUNBQ0Q7bUNBQ0k7dUNBQ0o7d0RBQ0k7NkNBRUU7NkNBQ0E7eUNBQ0o7MENBQ0M7dUNBQ0g7QUE2RzFCLE1BQU1DLGFBQWEsSUFBSUM7QUFVdkIsU0FBU0MsU0FDUEMsTUFBa0IsRUFDbEJDLElBQVksRUFDWkMsRUFBVSxFQUNWQyxPQUF3QjtJQUV4QixJQUFJLEtBQTZCLEVBQUUsRUFFbEM7SUFFRCxJQUFJLENBQUNFLENBQUFBLEdBQUFBLFlBQUFBLFVBQUFBLEVBQVdKLE9BQU87UUFDckI7SUFDRjtJQUVBLDRFQUE0RTtJQUM1RSxZQUFZO0lBQ1osSUFBSSxDQUFDRSxRQUFRRyxxQkFBcUIsRUFBRTtRQUNsQyxNQUFNQyxTQUNKLE9BQ09KLFFBQVFJLE1BQU0sS0FBSyxjQUN0QkosUUFBUUksTUFBTSxHQUVkLFFBSjZELElBSWpEUCxTQUNWQSxPQUFPTyxNQUFNLEdBQ2JDO1FBRVIsTUFBTUMsZ0JBQWdCUixPQUFPLE1BQU1DLEtBQUssTUFBTUs7UUFFOUMsa0VBQWtFO1FBQ2xFLElBQUlWLFdBQVdhLEdBQUcsQ0FBQ0QsZ0JBQWdCO1lBQ2pDO1FBQ0Y7UUFFQSwrQkFBK0I7UUFDL0JaLFdBQVdjLEdBQUcsQ0FBQ0Y7SUFDakI7SUFFQSx1REFBdUQ7SUFDdkQsMERBQTBEO0lBQzFELHNEQUFzRDtJQUN0RCx5REFBeUQ7SUFDekRULE9BQU9ELFFBQVEsQ0FBQ0UsTUFBTUMsSUFBSUMsU0FBU1MsS0FBSyxDQUFDLENBQUNDO1FBQ3hDLElBQUlDLElBQW9CLEVBQW1CO1lBQ3pDLHFDQUFxQztZQUNyQyxNQUFNRDtRQUNSO0lBQ0Y7QUFDRjtBQUVBLFNBQVNJLGdCQUFnQkMsS0FBdUI7SUFDOUMs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QUEsT0FBQUEsS0FBQUEsSUFBQUEsT0FBUXVILGNBQUFBLEtBQ1JDLENBQUFBLEdBQUFBLGlCQUFBQSxlQUFBQSxFQUFnQnRILElBQUltSCxXQUFXckgsVUFBQUEsT0FBQUEsS0FBQUEsSUFBQUEsT0FBUXlILE9BQU8sRUFBRXpILFVBQUFBLE9BQUFBLEtBQUFBLElBQUFBLE9BQVEwSCxhQUFhO1FBRXZFVixXQUFXL0csSUFBSSxHQUNicUgsZ0JBQ0FLLENBQUFBLEdBQUFBLGFBQUFBLFdBQUFBLEVBQVlDLENBQUFBLEdBQUFBLFdBQUFBLFNBQUFBLEVBQVUxSCxJQUFJbUgsV0FBV3JILFVBQUFBLE9BQUFBLEtBQUFBLElBQUFBLE9BQVE2SCxhQUFhO0lBQzlEO0lBRUEsSUFBSTdELGdCQUFnQjtRQUNsQixJQUFJbEQsSUFBb0IsRUFBb0I7WUFDMUNnSCxDQUFBQSxHQUFBQSxXQUFBQSxTQUFBQSxFQUNFLG9FQUNFLG9FQUNBLDRDQUNBO1FBRU47UUFDQSxxQkFBTzlFLE9BQUFBLE9BQUssQ0FBQytFLFlBQVksQ0FBQ25DLE9BQU9vQjtJQUNuQztJQUVBLHFCQUNFLHFCQUFDOUMsS0FBQUE7UUFBRyxHQUFHRCxTQUFTO1FBQUcsR0FBRytDLFVBQVU7a0JBQzdCM0Q7O0FBR1A7O0FBR0YsTUFBTTJFLG9CQUFBQSxXQUFBQSxHQUFvQkMsQ0FBQUEsR0FBQUEsT0FBQUEsYUFBQUEsRUFFdkI7SUFDRCwrRUFBK0U7SUFDL0VDLFNBQVM7QUFDWDtBQUVPLE1BQU10SSxnQkFBZ0I7SUFDM0IsZ0ZBQWdGO0lBQ2hGLDZFQUE2RTtJQUM3RSxPQUFPdUUsQ0FBQUEsR0FBQUEsT0FBQUEsVUFBQUEsRUFBVzZEO0FBQ3BCO01BRUEsV0FBZWpGIiwic291cmNlcyI6WyJEOlxcc3JjXFxjbGllbnRcXGxpbmsudHN4Il0sInNvdXJjZXNDb250ZW50IjpbIid1c2UgY2xpZW50J1xuXG5pbXBvcnQgdHlwZSB7XG4gIE5leHRSb3V0ZXIsXG4gIFByZWZldGNoT3B0aW9ucyBhcyBSb3V0ZXJQcmVmZXRjaE9wdGlvbnMsXG59IGZyb20gJy4uL3NoYXJlZC9saWIvcm91dGVyL3JvdXRlcidcblxuaW1wb3J0IFJlYWN0LCB7IGNyZWF0ZUNvbnRleHQsIHVzZUNvbnRleHQgfSBmcm9tICdyZWFjdCdcbmltcG9ydCB0eXBlIHsgVXJsT2JqZWN0IH0gZnJvbSAndXJsJ1xuaW1wb3J0IHsgcmVzb2x2ZUhyZWYgfSBmcm9tICcuL3Jlc29sdmUtaHJlZidcbmltcG9ydCB7IGlzTG9jYWxVUkwgfSBmcm9tICcuLi9zaGFyZWQvbGliL3JvdXRlci91dGlscy9pcy1sb2NhbC11cmwnXG5pbXBvcnQgeyBmb3JtYXRVcmwgfSBmcm9tICcuLi9zaGFyZWQvbGliL3JvdXRlci91dGlscy9mb3JtYXQtdXJsJ1xuaW1wb3J0IHsgaXNBYnNvbHV0ZVVybCB9IGZyb20gJy4uL3NoYXJlZC9saWIvdXRpbHMnXG5pbXBvcnQgeyBhZGRMb2NhbGUgfSBmcm9tICcuL2FkZC1sb2NhbGUnXG5pbXBvcnQgeyBSb3V0ZXJDb250ZXh0IH0gZnJvbSAnLi4vc2hhcmVkL2xpYi9yb3V0ZXItY29udGV4dC5zaGFyZWQtcnVudGltZSdcbmltcG9ydCB0eXBlIHsgQXBwUm91dGVySW5zdGFuY2UgfSBmcm9tICcuLi9zaGFyZWQvbGliL2FwcC1yb3V0ZXItY29udGV4dC5zaGFyZWQtcnVudGltZSdcbmltcG9ydCB7IHVzZUludGVyc2VjdGlvbiB9IGZyb20gJy4vdXNlLWludGVyc2VjdGlvbidcbmltcG9ydCB7IGdldERvbWFpbkxvY2FsZSB9IGZyb20gJy4vZ2V0LWRvbWFpbi1sb2NhbGUnXG5pbXBvcnQgeyBhZGRCYXNlUGF0aCB9IGZyb20gJy4vYWRkLWJhc2UtcGF0aCdcbmltcG9ydCB7IHVzZU1lcmdlZFJlZiB9IGZyb20gJy4vdXNlLW1lcmdlZC1yZWYnXG5pbXBvcnQgeyBlcnJvck9uY2UgfSBmcm9tICcuLi9zaGFyZWQvbGliL3V0aWxzL2Vycm9yLW9uY2UnXG5cbnR5cGUgVXJsID0gc3RyaW5nIHwgVXJsT2JqZWN0XG50eXBlIFJlcXVpcmVkS2V5czxUPiA9IHtcbiAgW0sgaW4ga2V5b2YgVF0tPzoge30gZXh0ZW5kcyBQaWNrPFQsIEs+ID8gbmV2ZXIgOiBLXG59W2tleW9mIFRdXG50eXBlIE9wdGlvbmFsS2V5czxUPiA9IHtcbiAgW0sgaW4ga2V5b2YgVF0tPzoge30gZXh0ZW5kcyBQaWNrPFQsIEs+ID8gSyA6IG5ldmVyXG59W2tleW9mIFRdXG5cbnR5cGUgT25OYXZpZ2F0ZUV2ZW50SGFuZGxlciA9IChldmVudDogeyBwcmV2ZW50RGVmYXVsdDogKCkgPT4gdm9pZCB9KSA9PiB2b2lkXG5cbnR5cGUgSW50ZXJuYWxMaW5rUHJvcHMgPSB7XG4gIC8qKlxuICAgKiBUaGUgcGF0aCBvciBVUkwgdG8gbmF2aWdhdGUgdG8uIEl0IGNhbiBhbHNvIGJlIGFuIG9iamVjdC5cbiAgICpcbiAgICogQGV4YW1wbGUgaHR0cHM6Ly9uZXh0anMub3JnL2RvY3MvYXBpLXJlZmVyZW5jZS9uZXh0L2xpbmsjd2l0aC11cmwtb2JqZWN0XG4gICAqL1xuICBocmVmOiBVcmxcbiAgLyoqXG4gICAqIE9wdGlvbmFsIGRlY29yYXRvciBmb3IgdGhlIHBhdGggdGhhdCB3aWxsIGJlIHNob3duIGluIHRoZSBicm93c2VyIFVSTCBiYXIuIEJlZm9yZSBOZXh0LmpzIDkuNS4zIHRoaXMgd2FzIHVzZWQgZm9yIGR5bmFtaWMgcm91dGVzLCBjaGVjayBvdXIgW3ByZXZpb3VzIGRvY3NdKGh0dHBzOi8vZ2l0aHViLmNvbS92ZXJjZWwvbmV4dC5qcy9ibG9iL3Y5LjUuMi9kb2NzL2FwaS1yZWZlcmVuY2UvbmV4dC9saW5rLm1kI2R5bmFtaWMtcm91dGVzKSB0byBzZWUgaG93IGl0IHdvcmtlZC4gTm90ZTogd2hlbiB0aGlzIHBhdGggZGlmZmVycyBmcm9tIHRoZSBvbmUgcHJvdmlkZWQgaW4gYGhyZWZgIHRoZSBwcmV2aW91cyBgaHJlZmAvYGFzYCBiZWhhdmlvciBpcyB1c2VkIGFzIHNob3duIGluIHRoZSBbcHJldmlvdXMgZG9jc10oaHR0cHM6Ly9naXRodWIuY29tL3ZlcmNlbC9uZXh0LmpzL2Jsb2IvdjkuNS4yL2RvY3MvYXBpLXJlZmVyZW5jZS9uZXh0L2xpbmsubWQjZHluYW1pYy1yb3V0ZXMpLlxuICAgKi9cbiAgYXM/OiBVcmxcbiAgLyoqXG4gICAqIFJlcGxhY2UgdGhlIGN1cnJlbnQgYGhpc3RvcnlgIHN0YXRlIGluc3RlYWQgb2YgYWRkaW5nIGEgbmV3IHVybCBpbnRvIHRoZSBzdGFjay5cbiAgICpcbiAgICogQGRlZmF1bHRWYWx1ZSBgZmFsc2VgXG4gICAqL1xuICByZXBsYWNlPzogYm9vbGVhblxuICAvKipcbiAgICogV2hldGhlciB0byBvdmVycmlkZSB0aGUgZGVmYXVsdCBzY3JvbGwgYmVoYXZpb3JcbiAgICpcbiAgICogQGV4YW1wbGUgaHR0cHM6Ly9uZXh0anMub3JnL2RvY3MvYXBpLXJlZmVyZW5jZS9uZXh0L2xpbmsjZGlzYWJsZS1zY3JvbGxpbmctdG8tdGhlLXRvcC1vZi10aGUtcGFnZVxuICAgKlxuICAgKiBAZGVmYXVsdFZhbHVlIGB0cnVlYFxuICAgKi9cbiAgc2Nyb2xsPzogYm9vbGVhblxuICAvKipcbiAgICogVXBkYXRlIHRoZSBwYXRoIG9mIHRoZSBjdXJyZW50IHBhZ2Ugd2l0aG91dCByZXJ1bm5pbmcgW2BnZXRTdGF0aWNQcm9wc2BdKGh0dHBzOi8vbmV4dGpzLm9yZy9kb2NzL3BhZ2VzL2J1aWxkaW5nLXlvdXItYXBwbGljYXRpb24vZGF0YS1mZXRjaGluZy9nZXQtc3RhdGljLXByb3BzKSwgW2BnZXRTZXJ2ZXJTaWRlUHJvcHNgXShodHRwczovL25leHRqcy5vcmcvZG9jcy9wYWdlcy9idWlsZGluZy15b3VyLWFwcGxpY2F0aW9uL2RhdGEtZmV0Y2hpbmcvZ2V0LXNlcnZlci1zaWRlLXByb3BzKSBvciBbYGdldEluaXRpYWxQcm9wc2BdKC9kb2NzL3BhZ2VzL2FwaS1yZWZlcmVuY2UvZnVuY3Rpb25zL2dldC1pbml0aWFsLXByb3BzKS5cbiAgICpcbiAgICogQGRlZmF1bHRWYWx1ZSBgZmFsc2VgXG4gICAqL1xuICBzaGFsbG93PzogYm9vbGVhblxuICAvKipcbiAgICogRm9yY2VzIGBMaW5rYCB0byBzZW5kIHRoZSBgaHJlZmAgcHJvcGVydHkgdG8gaXRzIGNoaWxkLlxuICAgKlxuICAgKiBAZGVmYXVsdFZhbHVlIGBmYWxzZWBcbiAgICovXG4gIHBhc3NIcmVmPzogYm9vbGVhblxuICAvKipcbiAgICogUHJlZmV0Y2ggdGhlIHBhZ2UgaW4gdGhlIGJhY2tncm91bmQuXG4gICAqIEFueSBgPExpbmsgLz5gIHRoYXQgaXMgaW4gdGhlIHZpZXdwb3J0IChpbml0aWFsbHkgb3IgdGhyb3VnaCBzY3JvbGwpIHdpbGwgYmUgcHJlZmV0Y2hlZC5cbiAgICogUHJlZmV0Y2ggY2FuIGJlIGRpc2FibGVkIGJ5IHBhc3NpbmcgYHByZWZldGNoPXtmYWxzZX1gLiBQcmVmZXRjaGluZyBpcyBvbmx5IGVuYWJsZWQgaW4gcHJvZHVjdGlvbi5cbiAgICpcbiAgICogSW4gQXBwIFJvdXRlcjpcbiAgICogLSBcImF1dG9cIiwgbnVsbCwgdW5kZWZpbmVkIChkZWZhdWx0KTogRm9yIHN0YXRpY2FsbHkgZ2VuZXJhdGVkIHBhZ2VzLCB0aGlzIHdpbGwgcHJlZmV0Y2ggdGhlIGZ1bGwgUmVhY3QgU2VydmVyIENvbXBvbmVudCBkYXRhLiBGb3IgZHluYW1pYyBwYWdlcywgdGhpcyB3aWxsIHByZWZldGNoIHVwIHRvIHRoZSBuZWFyZXN0IHJvdXRlIHNlZ21lbnQgd2l0aCBhIFtgbG9hZGluZy5qc2BdKGh0dHBzOi8vbmV4dGpzLm9yZy9kb2NzL2FwcC9hcGktcmVmZXJlbmNlL2ZpbGUtY29udmVudGlvbnMvbG9hZGluZykgZmlsZS4gSWYgdGhlcmUgaXMgbm8gbG9hZGluZyBmaWxlLCBpdCB3aWxsIG5vdCBmZXRjaCB0aGUgZnVsbCB0cmVlIHRvIGF2b2lkIGZldGNoaW5nIHRvbyBtdWNoIGRhdGEuXG4gICAqIC0gYHRydWVgOiBUaGlzIHdpbGwgcHJlZmV0Y2ggdGhlIGZ1bGwgUmVhY3QgU2VydmVyIENvbXBvbmVudCBkYXRhIGZvciBhbGwgcm91dGUgc2VnbWVudHMsIHJlZ2FyZGxlc3Mgb2Ygd2hldGhlciB0aGV5IGNvbnRhaW4gYSBzZWdtZW50IHdpdGggYGxvYWRpbmcuanNgLlxuICAgKiAtIGBmYWxzZWA6IFRoaXMgd2lsbCBub3QgcHJlZmV0Y2ggYW55IGRhdGEsIGV2ZW4gb24gaG92ZXIuXG4gICAqXG4gICAqIEluIFBhZ2VzIFJvdXRlcjpcbiAgICogLSBgdHJ1ZWAgKGRlZmF1bHQpOiBUaGUgZnVsbCByb3V0ZSAmIGl0cyBkYXRhIHdpbGwgYmUgcHJlZmV0Y2hlZC5cbiAgICogLSBgZmFsc2VgOiBQcmVmZXRjaGluZyB3aWxsIG5vdCBoYXBwZW4gd2hlbiBlbnRlcmluZyB0aGUgdmlld3BvcnQsIGJ1dCB3aWxsIHN0aWxsIGhhcHBlbiBvbiBob3Zlci5cbiAgICogQGRlZmF1bHRWYWx1ZSBgdHJ1ZWAgKHBhZ2VzIHJvdXRlcikgb3IgYG51bGxgIChhcHAgcm91dGVyKVxuICAgKi9cbiAgcHJlZmV0Y2g/OiBib29sZWFuIHwgJ2F1dG8nIHwgbnVsbFxuICAvKipcbiAgICogVGhlIGFjdGl2ZSBsb2NhbGUgaXMgYXV0b21hdGljYWxseSBwcmVwZW5kZWQuIGBsb2NhbGVgIGFsbG93cyBmb3IgcHJvdmlkaW5nIGEgZGlmZmVyZW50IGxvY2FsZS5cbiAgICogV2hlbiBgZmFsc2VgIGBocmVmYCBoYXMgdG8gaW5jbHVkZSB0aGUgbG9jYWxlIGFzIHRoZSBkZWZhdWx0IGJlaGF2aW9yIGlzIGRpc2FibGVkLlxuICAgKiBOb3RlOiBUaGlzIGlzIG9ubHkgYXZhaWxhYmxlIGluIHRoZSBQYWdlcyBSb3V0ZXIuXG4gICAqL1xuICBsb2NhbGU/OiBzdHJpbmcgfCBmYWxzZVxuICAvKipcbiAgICogRW5hYmxlIGxlZ2FjeSBsaW5rIGJlaGF2aW9yLlxuICAgKiBAZGVwcmVjYXRlZCBUaGlzIHdpbGwgYmUgcmVtb3ZlZCBpbiB2MTZcbiAgICogQGRlZmF1bHRWYWx1ZSBgZmFsc2VgXG4gICAqIEBzZWUgaHR0cHM6Ly9naXRodWIuY29tL3ZlcmNlbC9uZXh0LmpzL2NvbW1pdC80ODllNjVlZDk4NTQ0ZTY5YjBhZmQ3ZTBjZmMzZjlmNmMyYjgwM2I3XG4gICAqL1xuICBsZWdhY3lCZWhhdmlvcj86IGJvb2xlYW5cbiAgLyoqXG4gICAqIE9wdGlvbmFsIGV2ZW50IGhhbmRsZXIgZm9yIHdoZW4gdGhlIG1vdXNlIHBvaW50ZXIgaXMgbW92ZWQgb250byBMaW5rXG4gICAqL1xuICBvbk1vdXNlRW50ZXI/OiBSZWFjdC5Nb3VzZUV2ZW50SGFuZGxlcjxIVE1MQW5jaG9yRWxlbWVudD5cbiAgLyoqXG4gICAqIE9wdGlvbmFsIGV2ZW50IGhhbmRsZXIgZm9yIHdoZW4gTGluayBpcyB0b3VjaGVkLlxuICAgKi9cbiAgb25Ub3VjaFN0YXJ0PzogUmVhY3QuVG91Y2hFdmVudEhhbmRsZXI8SFRNTEFuY2hvckVsZW1lbnQ+XG4gIC8qKlxuICAgKiBPcHRpb25hbCBldmVudCBoYW5kbGVyIGZvciB3aGVuIExpbmsgaXMgY2xpY2tlZC5cbiAgICovXG4gIG9uQ2xpY2s/OiBSZWFjdC5Nb3VzZUV2ZW50SGFuZGxlcjxIVE1MQW5jaG9yRWxlbWVudD5cbiAgLyoqXG4gICAqIE9wdGlvbmFsIGV2ZW50IGhhbmRsZXIgZm9yIHdoZW4gdGhlIGA8TGluaz5gIGlzIG5hdmlnYXRlZC5cbiAgICovXG4gIG9uTmF2aWdhdGU/OiBPbk5hdmlnYXRlRXZlbnRIYW5kbGVyXG59XG5cbi8vIFRPRE8tQVBQOiBJbmNsdWRlIHRoZSBmdWxsIHNldCBvZiBBbmNob3IgcHJvcHNcbi8vIGFkZGluZyB0aGlzIHRvIHRoZSBwdWJsaWNseSBleHBvcnRlZCB0eXBlIGN1cnJlbnRseSBicmVha3MgZXhpc3RpbmcgYXBwc1xuXG4vLyBgUm91dGVJbmZlclR5cGVgIGlzIGEgc3R1YiBoZXJlIHRvIGF2b2lkIGJyZWFraW5nIGB0eXBlZFJvdXRlc2Agd2hlbiB0aGUgdHlwZVxuLy8gaXNuJ3QgZ2VuZXJhdGVkIHlldC4gSXQgd2lsbCBiZSByZXBsYWNlZCB3aGVuIHRoZSB3ZWJwYWNrIHBsdWdpbiBydW5zLlxuLy8gV0FSTklORzogVGhpcyBzaG91bGQgYmUgYW4gaW50ZXJmYWNlIHRvIHByZXZlbnQgVHlwZVNjcmlwdCBmcm9tIGlubGluaW5nIGl0XG4vLyBpbiBkZWNsYXJhdGlvbnMgb2YgbGlicmFyaWVzIGRlcGVuZGVuZGluZyBvbiBOZXh0LmpzLlxuLy8gTm90IHRyaXZpYWwgdG8gcmVwcm9kdWNlIHNvIG9ubHkgY29udmVydCB0byBhbiBpbnRlcmZhY2Ugd2hlbiBuZWVkZWQuXG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXVudXNlZC12YXJzXG5leHBvcnQgaW50ZXJmYWNlIExpbmtQcm9wczxSb3V0ZUluZmVyVHlwZSA9IGFueT4gZXh0ZW5kcyBJbnRlcm5hbExpbmtQcm9wcyB7fVxudHlwZSBMaW5rUHJvcHNSZXF1aXJlZCA9IFJlcXVpcmVkS2V5czxMaW5rUHJvcHM+XG50eXBlIExpbmtQcm9wc09wdGlvbmFsID0gT3B0aW9uYWxLZXlzPEludGVybmFsTGlua1Byb3BzPlxuXG5jb25zdCBwcmVmZXRjaGVkID0gbmV3IFNldDxzdHJpbmc+KClcblxudHlwZSBQcmVmZXRjaE9wdGlvbnMgPSBSb3V0ZXJQcmVmZXRjaE9wdGlvbnMgJiB7XG4gIC8qKlxuICAgKiBieXBhc3NQcmVmZXRjaGVkQ2hlY2sgd2lsbCBieXBhc3MgdGhlIGNoZWNrIHRvIHNlZSBpZiB0aGUgYGhyZWZgIGhhc1xuICAgKiBhbHJlYWR5IGJlZW4gZmV0Y2hlZC5cbiAgICovXG4gIGJ5cGFzc1ByZWZldGNoZWRDaGVjaz86IGJvb2xlYW5cbn1cblxuZnVuY3Rpb24gcHJlZmV0Y2goXG4gIHJvdXRlcjogTmV4dFJvdXRlcixcbiAgaHJlZjogc3RyaW5nLFxuICBhczogc3RyaW5nLFxuICBvcHRpb25zOiBQcmVmZXRjaE9wdGlvbnNcbik6IHZvaWQge1xuICBpZiAodHlwZW9mIHdpbmRvdyA9PT0gJ3VuZGVmaW5lZCcpIHtcbiAgICByZXR1cm5cbiAgfVxuXG4gIGlmICghaXNMb2NhbFVSTChocmVmKSkge1xuICAgIHJldHVyblxuICB9XG5cbiAgLy8gV2Ugc2hvdWxkIG9ubHkgZGVkdXBlIHJlcXVlc3RzIHdoZW4gZXhwZXJpbWVudGFsLm9wdGltaXN0aWNDbGllbnRDYWNoZSBpc1xuICAvLyBkaXNhYmxlZC5cbiAgaWYgKCFvcHRpb25zLmJ5cGFzc1ByZWZldGNoZWRDaGVjaykge1xuICAgIGNvbnN0IGxvY2FsZSA9XG4gICAgICAvLyBMZXQgdGhlIGxpbmsncyBsb2NhbGUgcHJvcCBvdmVycmlkZSB0aGUgZGVmYXVsdCByb3V0ZXIgbG9jYWxlLlxuICAgICAgdHlwZW9mIG9wdGlvbnMubG9jYWxlICE9PSAndW5kZWZpbmVkJ1xuICAgICAgICA/IG9wdGlvbnMubG9jYWxlXG4gICAgICAgIDogLy8gT3RoZXJ3aXNlIGZhbGxiYWNrIHRvIHRoZSByb3V0ZXIncyBsb2NhbGUuXG4gICAgICAgICAgJ2xvY2FsZScgaW4gcm91dGVyXG4gICAgICAgICAgPyByb3V0ZXIubG9jYWxlXG4gICAgICAgICAgOiB1bmRlZmluZWRcblxuICAgIGNvbnN0IHByZWZldGNoZWRLZXkgPSBocmVmICsgJyUnICsgYXMgKyAnJScgKyBsb2NhbGVcblxuICAgIC8vIElmIHdlJ3ZlIGFscmVhZHkgZmV0Y2hlZCB0aGUga2V5LCB0aGVuIGRvbid0IHByZWZldGNoIGl0IGFnYWluIVxuICAgIGlmIChwcmVmZXRjaGVkLmhhcyhwcmVmZXRjaGVkS2V5KSkge1xuICAgICAgcmV0dXJuXG4gICAgfVxuXG4gICAgLy8gTWFyayB0aGlzIFVSTCBhcyBwcmVmZXRjaGVkLlxuICAgIHByZWZldGNoZWQuYWRkKHByZWZldGNoZWRLZXkpXG4gIH1cblxuICAvLyBQcmVmZXRjaCB0aGUgSlNPTiBwYWdlIGlmIGFza2VkIChvbmx5IGluIHRoZSBjbGllbnQpXG4gIC8vIFdlIG5lZWQgdG8gaGFuZGxlIGEgcHJlZmV0Y2ggZXJyb3IgaGVyZSBzaW5jZSB3ZSBtYXkgYmVcbiAgLy8gbG9hZGluZyB3aXRoIHByaW9yaXR5IHdoaWNoIGNhbiByZWplY3QgYnV0IHdlIGRvbid0XG4gIC8vIHdhbnQgdG8gZm9yY2UgbmF2aWdhdGlvbiBzaW5jZSB0aGlzIGlzIG9ubHkgYSBwcmVmZXRjaFxuICByb3V0ZXIucHJlZmV0Y2goaHJlZiwgYXMsIG9wdGlvbnMpLmNhdGNoKChlcnIpID0+IHtcbiAgICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJykge1xuICAgICAgLy8gcmV0aHJvdyB0byBzaG93IGludmFsaWQgVVJMIGVycm9yc1xuICAgICAgdGhyb3cgZXJyXG4gICAgfVxuICB9KVxufVxuXG5mdW5jdGlvbiBpc01vZGlmaWVkRXZlbnQoZXZlbnQ6IFJlYWN0Lk1vdXNlRXZlbnQpOiBib29sZWFuIHtcbiAgY29uc3QgZXZlbnRUYXJnZXQgPSBldmVudC5jdXJyZW50VGFyZ2V0IGFzIEhUTUxBbmNob3JFbGVtZW50IHwgU1ZHQUVsZW1lbnRcbiAgY29uc3QgdGFyZ2V0ID0gZXZlbnRUYXJnZXQuZ2V0QXR0cmlidXRlKCd0YXJnZXQnKVxuICByZXR1cm4gKFxuICAgICh0YXJnZXQgJiYgdGFyZ2V0ICE9PSAnX3NlbGYnKSB8fFxuICAgIGV2ZW50Lm1ldGFLZXkgfHxcbiAgICBldmVudC5jdHJsS2V5IHx8XG4gICAgZXZlbnQuc2hpZnRLZXkgfHxcbiAgICBldmVudC5hbHRLZXkgfHwgLy8gdHJpZ2dlcnMgcmVzb3VyY2UgZG93bmxvYWRcbiAgICAoZXZlbnQubmF0aXZlRXZlbnQgJiYgZXZlbnQubmF0aXZlRXZlbnQud2hpY2ggPT09IDIpXG4gIClcbn1cblxuZnVuY3Rpb24gbGlua0NsaWNrZWQoXG4gIGU6IFJlYWN0Lk1vdXNlRXZlbnQsXG4gIHJvdXRlcjogTmV4dFJvdXRlciB8IEFwcFJvdXRlckluc3RhbmNlLFxuICBocmVmOiBzdHJpbmcsXG4gIGFzOiBzdHJpbmcsXG4gIHJlcGxhY2U/OiBib29sZWFuLFxuICBzaGFsbG93PzogYm9vbGVhbixcbiAgc2Nyb2xsPzogYm9vbGVhbixcbiAgbG9jYWxlPzogc3RyaW5nIHwgZmFsc2UsXG4gIG9uTmF2aWdhdGU/OiBPbk5hdmlnYXRlRXZlbnRIYW5kbGVyXG4pOiB2b2lkIHtcbiAgY29uc3QgeyBub2RlTmFtZSB9ID0gZS5jdXJyZW50VGFyZ2V0XG5cbiAgLy8gYW5jaG9ycyBpbnNpZGUgYW4gc3ZnIGhhdmUgYSBsb3dlcmNhc2Ugbm9kZU5hbWVcbiAgY29uc3QgaXNBbmNob3JOb2RlTmFtZSA9IG5vZGVOYW1lLnRvVXBwZXJDYXNlKCkgPT09ICdBJ1xuXG4gIGlmIChcbiAgICAoaXNBbmNob3JOb2RlTmFtZSAmJiBpc01vZGlmaWVkRXZlbnQoZSkpIHx8XG4gICAgZS5jdXJyZW50VGFyZ2V0Lmhhc0F0dHJpYnV0ZSgnZG93bmxvYWQnKVxuICApIHtcbiAgICAvLyBpZ25vcmUgY2xpY2sgZm9yIGJyb3dzZXLigJlzIGRlZmF1bHQgYmVoYXZpb3JcbiAgICByZXR1cm5cbiAgfVxuXG4gIGlmICghaXNMb2NhbFVSTChocmVmKSkge1xuICAgIGlmIChyZXBsYWNlKSB7XG4gICAgICAvLyBicm93c2VyIGRlZmF1bHQgYmVoYXZpb3IgZG9lcyBub3QgcmVwbGFjZSB0aGUgaGlzdG9yeSBzdGF0ZVxuICAgICAgLy8gc28gd2UgbmVlZCB0byBkbyBpdCBtYW51YWxseVxuICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpXG4gICAgICBsb2NhdGlvbi5yZXBsYWNlKGhyZWYpXG4gICAgfVxuXG4gICAgLy8gaWdub3JlIGNsaWNrIGZvciBicm93c2Vy4oCZcyBkZWZhdWx0IGJlaGF2aW9yXG4gICAgcmV0dXJuXG4gIH1cblxuICBlLnByZXZlbnREZWZhdWx0KClcblxuICBjb25zdCBuYXZpZ2F0ZSA9ICgpID0+IHtcbiAgICBpZiAob25OYXZpZ2F0ZSkge1xuICAgICAgbGV0IGlzRGVmYXVsdFByZXZlbnRlZCA9IGZhbHNlXG5cbiAgICAgIG9uTmF2aWdhdGUoe1xuICAgICAgICBwcmV2ZW50RGVmYXVsdDogKCkgPT4ge1xuICAgICAgICAgIGlzRGVmYXVsdFByZXZlbnRlZCA9IHRydWVcbiAgICAgICAgfSxcbiAgICAgIH0pXG5cbiAgICAgIGlmIChpc0RlZmF1bHRQcmV2ZW50ZWQpIHtcbiAgICAgICAgcmV0dXJuXG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gSWYgdGhlIHJvdXRlciBpcyBhbiBOZXh0Um91dGVyIGluc3RhbmNlIGl0IHdpbGwgaGF2ZSBgYmVmb3JlUG9wU3RhdGVgXG4gICAgY29uc3Qgcm91dGVyU2Nyb2xsID0gc2Nyb2xsID8/IHRydWVcbiAgICBpZiAoJ2JlZm9yZVBvcFN0YXRlJyBpbiByb3V0ZXIpIHtcbiAgICAgIHJvdXRlcltyZXBsYWNlID8gJ3JlcGxhY2UnIDogJ3B1c2gnXShocmVmLCBhcywge1xuICAgICAgICBzaGFsbG93LFxuICAgICAgICBsb2NhbGUsXG4gICAgICAgIHNjcm9sbDogcm91dGVyU2Nyb2xsLFxuICAgICAgfSlcbiAgICB9IGVsc2Uge1xuICAgICAgcm91dGVyW3JlcGxhY2UgPyAncmVwbGFjZScgOiAncHVzaCddKGFzIHx8IGhyZWYsIHtcbiAgICAgICAgc2Nyb2xsOiByb3V0ZXJTY3JvbGwsXG4gICAgICB9KVxuICAgIH1cbiAgfVxuXG4gIG5hdmlnYXRlKClcbn1cblxudHlwZSBMaW5rUHJvcHNSZWFsID0gUmVhY3QuUHJvcHNXaXRoQ2hpbGRyZW48XG4gIE9taXQ8UmVhY3QuQW5jaG9ySFRNTEF0dHJpYnV0ZXM8SFRNTEFuY2hvckVsZW1lbnQ+LCBrZXlvZiBMaW5rUHJvcHM+ICZcbiAgICBMaW5rUHJvcHNcbj5cblxuZnVuY3Rpb24gZm9ybWF0U3RyaW5nT3JVcmwodXJsT2JqT3JTdHJpbmc6IFVybE9iamVjdCB8IHN0cmluZyk6IHN0cmluZyB7XG4gIGlmICh0eXBlb2YgdXJsT2JqT3JTdHJpbmcgPT09ICdzdHJpbmcnKSB7XG4gICAgcmV0dXJuIHVybE9iak9yU3RyaW5nXG4gIH1cblxuICByZXR1cm4gZm9ybWF0VXJsKHVybE9iak9yU3RyaW5nKVxufVxuXG4vKipcbiAqIEEgUmVhY3QgY29tcG9uZW50IHRoYXQgZXh0ZW5kcyB0aGUgSFRNTCBgPGE+YCBlbGVtZW50IHRvIHByb3ZpZGUgW3ByZWZldGNoaW5nXShodHRwczovL25leHRqcy5vcmcvZG9jcy9hcHAvYnVpbGRpbmcteW91ci1hcHBsaWNhdGlvbi9yb3V0aW5nL2xpbmtpbmctYW5kLW5hdmlnYXRpbmcjMi1wcmVmZXRjaGluZylcbiAqIGFuZCBjbGllbnQtc2lkZSBuYXZpZ2F0aW9uIGJldHdlZW4gcm91dGVzLlxuICpcbiAqIEl0IGlzIHRoZSBwcmltYXJ5IHdheSB0byBuYXZpZ2F0ZSBiZXR3ZWVuIHJvdXRlcyBpbiBOZXh0LmpzLlxuICpcbiAqIFJlYWQgbW9yZTogW05leHQuanMgZG9jczogYDxMaW5rPmBdKGh0dHBzOi8vbmV4dGpzLm9yZy9kb2NzL2FwcC9hcGktcmVmZXJlbmNlL2NvbXBvbmVudHMvbGluaylcbiAqL1xuY29uc3QgTGluayA9IFJlYWN0LmZvcndhcmRSZWY8SFRNTEFuY2hvckVsZW1lbnQsIExpbmtQcm9wc1JlYWw+KFxuICBmdW5jdGlvbiBMaW5rQ29tcG9uZW50KHByb3BzLCBmb3J3YXJkZWRSZWYpIHtcbiAgICBsZXQgY2hpbGRyZW46IFJlYWN0LlJlYWN0Tm9kZVxuXG4gICAgY29uc3Qge1xuICAgICAgaHJlZjogaHJlZlByb3AsXG4gICAgICBhczogYXNQcm9wLFxuICAgICAgY2hpbGRyZW46IGNoaWxkcmVuUHJvcCxcbiAgICAgIHByZWZldGNoOiBwcmVmZXRjaFByb3AgPSBudWxsLFxuICAgICAgcGFzc0hyZWYsXG4gICAgICByZXBsYWNlLFxuICAgICAgc2hhbGxvdyxcbiAgICAgIHNjcm9sbCxcbiAgICAgIGxvY2FsZSxcbiAgICAgIG9uQ2xpY2ssXG4gICAgICBvbk5hdmlnYXRlLFxuICAgICAgb25Nb3VzZUVudGVyOiBvbk1vdXNlRW50ZXJQcm9wLFxuICAgICAgb25Ub3VjaFN0YXJ0OiBvblRvdWNoU3RhcnRQcm9wLFxuICAgICAgbGVnYWN5QmVoYXZpb3IgPSBmYWxzZSxcbiAgICAgIC4uLnJlc3RQcm9wc1xuICAgIH0gPSBwcm9wc1xuXG4gICAgY2hpbGRyZW4gPSBjaGlsZHJlblByb3BcblxuICAgIGlmIChcbiAgICAgIGxlZ2FjeUJlaGF2aW9yICYmXG4gICAgICAodHlwZW9mIGNoaWxkcmVuID09PSAnc3RyaW5nJyB8fCB0eXBlb2YgY2hpbGRyZW4gPT09ICdudW1iZXInKVxuICAgICkge1xuICAgICAgY2hpbGRyZW4gPSA8YT57Y2hpbGRyZW59PC9hPlxuICAgIH1cblxuICAgIGNvbnN0IHJvdXRlciA9IFJlYWN0LnVzZUNvbnRleHQoUm91dGVyQ29udGV4dClcblxuICAgIGNvbnN0IHByZWZldGNoRW5hYmxlZCA9IHByZWZldGNoUHJvcCAhPT0gZmFsc2VcblxuICAgIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSB7XG4gICAgICBmdW5jdGlvbiBjcmVhdGVQcm9wRXJyb3IoYXJnczoge1xuICAgICAgICBrZXk6IHN0cmluZ1xuICAgICAgICBleHBlY3RlZDogc3RyaW5nXG4gICAgICAgIGFjdHVhbDogc3RyaW5nXG4gICAgICB9KSB7XG4gICAgICAgIHJldHVybiBuZXcgRXJyb3IoXG4gICAgICAgICAgYEZhaWxlZCBwcm9wIHR5cGU6IFRoZSBwcm9wIFxcYCR7YXJncy5rZXl9XFxgIGV4cGVjdHMgYSAke2FyZ3MuZXhwZWN0ZWR9IGluIFxcYDxMaW5rPlxcYCwgYnV0IGdvdCBcXGAke2FyZ3MuYWN0dWFsfVxcYCBpbnN0ZWFkLmAgK1xuICAgICAgICAgICAgKHR5cGVvZiB3aW5kb3cgIT09ICd1bmRlZmluZWQnXG4gICAgICAgICAgICAgID8gLy8gVE9ETzogUmVtb3ZlIHRoaXMgYWRkZW5kdW0gaWYgT3duZXIgU3RhY2tzIGFyZSBhdmFpbGFibGVcbiAgICAgICAgICAgICAgICBcIlxcbk9wZW4geW91ciBicm93c2VyJ3MgY29uc29sZSB0byB2aWV3IHRoZSBDb21wb25lbnQgc3RhY2sgdHJhY2UuXCJcbiAgICAgICAgICAgICAgOiAnJylcbiAgICAgICAgKVxuICAgICAgfVxuXG4gICAgICAvLyBUeXBlU2NyaXB0IHRyaWNrIGZvciB0eXBlLWd1YXJkaW5nOlxuICAgICAgY29uc3QgcmVxdWlyZWRQcm9wc0d1YXJkOiBSZWNvcmQ8TGlua1Byb3BzUmVxdWlyZWQsIHRydWU+ID0ge1xuICAgICAgICBocmVmOiB0cnVlLFxuICAgICAgfSBhcyBjb25zdFxuICAgICAgY29uc3QgcmVxdWlyZWRQcm9wczogTGlua1Byb3BzUmVxdWlyZWRbXSA9IE9iamVjdC5rZXlzKFxuICAgICAgICByZXF1aXJlZFByb3BzR3VhcmRcbiAgICAgICkgYXMgTGlua1Byb3BzUmVxdWlyZWRbXVxuICAgICAgcmVxdWlyZWRQcm9wcy5mb3JFYWNoKChrZXk6IExpbmtQcm9wc1JlcXVpcmVkKSA9PiB7XG4gICAgICAgIGlmIChrZXkgPT09ICdocmVmJykge1xuICAgICAgICAgIGlmIChcbiAgICAgICAgICAgIHByb3BzW2tleV0gPT0gbnVsbCB8fFxuICAgICAgICAgICAgKHR5cGVvZiBwcm9wc1trZXldICE9PSAnc3RyaW5nJyAmJiB0eXBlb2YgcHJvcHNba2V5XSAhPT0gJ29iamVjdCcpXG4gICAgICAgICAgKSB7XG4gICAgICAgICAgICB0aHJvdyBjcmVhdGVQcm9wRXJyb3Ioe1xuICAgICAgICAgICAgICBrZXksXG4gICAgICAgICAgICAgIGV4cGVjdGVkOiAnYHN0cmluZ2Agb3IgYG9iamVjdGAnLFxuICAgICAgICAgICAgICBhY3R1YWw6IHByb3BzW2tleV0gPT09IG51bGwgPyAnbnVsbCcgOiB0eXBlb2YgcHJvcHNba2V5XSxcbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIC8vIFR5cGVTY3JpcHQgdHJpY2sgZm9yIHR5cGUtZ3VhcmRpbmc6XG4gICAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby11bnVzZWQtdmFyc1xuICAgICAgICAgIGNvbnN0IF86IG5ldmVyID0ga2V5XG4gICAgICAgIH1cbiAgICAgIH0pXG5cbiAgICAgIC8vIFR5cGVTY3JpcHQgdHJpY2sgZm9yIHR5cGUtZ3VhcmRpbmc6XG4gICAgICBjb25zdCBvcHRpb25hbFByb3BzR3VhcmQ6IFJlY29yZDxMaW5rUHJvcHNPcHRpb25hbCwgdHJ1ZT4gPSB7XG4gICAgICAgIGFzOiB0cnVlLFxuICAgICAgICByZXBsYWNlOiB0cnVlLFxuICAgICAgICBzY3JvbGw6IHRydWUsXG4gICAgICAgIHNoYWxsb3c6IHRydWUsXG4gICAgICAgIHBhc3NIcmVmOiB0cnVlLFxuICAgICAgICBwcmVmZXRjaDogdHJ1ZSxcbiAgICAgICAgbG9jYWxlOiB0cnVlLFxuICAgICAgICBvbkNsaWNrOiB0cnVlLFxuICAgICAgICBvbk1vdXNlRW50ZXI6IHRydWUsXG4gICAgICAgIG9uVG91Y2hTdGFydDogdHJ1ZSxcbiAgICAgICAgbGVnYWN5QmVoYXZpb3I6IHRydWUsXG4gICAgICAgIG9uTmF2aWdhdGU6IHRydWUsXG4gICAgICB9IGFzIGNvbnN0XG4gICAgICBjb25zdCBvcHRpb25hbFByb3BzOiBMaW5rUHJvcHNPcHRpb25hbFtdID0gT2JqZWN0LmtleXMoXG4gICAgICAgIG9wdGlvbmFsUHJvcHNHdWFyZFxuICAgICAgKSBhcyBMaW5rUHJvcHNPcHRpb25hbFtdXG4gICAgICBvcHRpb25hbFByb3BzLmZvckVhY2goKGtleTogTGlua1Byb3BzT3B0aW9uYWwpID0+IHtcbiAgICAgICAgY29uc3QgdmFsVHlwZSA9IHR5cGVvZiBwcm9wc1trZXldXG5cbiAgICAgICAgaWYgKGtleSA9PT0gJ2FzJykge1xuICAgICAgICAgIGlmIChwcm9wc1trZXldICYmIHZhbFR5cGUgIT09ICdzdHJpbmcnICYmIHZhbFR5cGUgIT09ICdvYmplY3QnKSB7XG4gICAgICAgICAgICB0aHJvdyBjcmVhdGVQcm9wRXJyb3Ioe1xuICAgICAgICAgICAgICBrZXksXG4gICAgICAgICAgICAgIGV4cGVjdGVkOiAnYHN0cmluZ2Agb3IgYG9iamVjdGAnLFxuICAgICAgICAgICAgICBhY3R1YWw6IHZhbFR5cGUsXG4gICAgICAgICAgICB9KVxuICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIGlmIChrZXkgPT09ICdsb2NhbGUnKSB7XG4gICAgICAgICAgaWYgKHByb3BzW2tleV0gJiYgdmFsVHlwZSAhPT0gJ3N0cmluZycpIHtcbiAgICAgICAgICAgIHRocm93IGNyZWF0ZVByb3BFcnJvcih7XG4gICAgICAgICAgICAgIGtleSxcbiAgICAgICAgICAgICAgZXhwZWN0ZWQ6ICdgc3RyaW5nYCcsXG4gICAgICAgICAgICAgIGFjdHVhbDogdmFsVHlwZSxcbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgfVxuICAgICAgICB9IGVsc2UgaWYgKFxuICAgICAgICAgIGtleSA9PT0gJ29uQ2xpY2snIHx8XG4gICAgICAgICAga2V5ID09PSAnb25Nb3VzZUVudGVyJyB8fFxuICAgICAgICAgIGtleSA9PT0gJ29uVG91Y2hTdGFydCcgfHxcbiAgICAgICAgICBrZXkgPT09ICdvbk5hdmlnYXRlJ1xuICAgICAgICApIHtcbiAgICAgICAgICBpZiAocHJvcHNba2V5XSAmJiB2YWxUeXBlICE9PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgICAgICB0aHJvdyBjcmVhdGVQcm9wRXJyb3Ioe1xuICAgICAgICAgICAgICBrZXksXG4gICAgICAgICAgICAgIGV4cGVjdGVkOiAnYGZ1bmN0aW9uYCcsXG4gICAgICAgICAgICAgIGFjdHVhbDogdmFsVHlwZSxcbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgfVxuICAgICAgICB9IGVsc2UgaWYgKFxuICAgICAgICAgIGtleSA9PT0gJ3JlcGxhY2UnIHx8XG4gICAgICAgICAga2V5ID09PSAnc2Nyb2xsJyB8fFxuICAgICAgICAgIGtleSA9PT0gJ3NoYWxsb3cnIHx8XG4gICAgICAgICAga2V5ID09PSAncGFzc0hyZWYnIHx8XG4gICAgICAgICAga2V5ID09PSAnbGVnYWN5QmVoYXZpb3InXG4gICAgICAgICkge1xuICAgICAgICAgIGlmIChwcm9wc1trZXldICE9IG51bGwgJiYgdmFsVHlwZSAhPT0gJ2Jvb2xlYW4nKSB7XG4gICAgICAgICAgICB0aHJvdyBjcmVhdGVQcm9wRXJyb3Ioe1xuICAgICAgICAgICAgICBrZXksXG4gICAgICAgICAgICAgIGV4cGVjdGVkOiAnYGJvb2xlYW5gJyxcbiAgICAgICAgICAgICAgYWN0dWFsOiB2YWxUeXBlLFxuICAgICAgICAgICAgfSlcbiAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSBpZiAoa2V5ID09PSAncHJlZmV0Y2gnKSB7XG4gICAgICAgICAgaWYgKFxuICAgICAgICAgICAgcHJvcHNba2V5XSAhPSBudWxsICYmXG4gICAgICAgICAgICB2YWxUeXBlICE9PSAnYm9vbGVhbicgJiZcbiAgICAgICAgICAgIHByb3BzW2tleV0gIT09ICdhdXRvJ1xuICAgICAgICAgICkge1xuICAgICAgICAgICAgdGhyb3cgY3JlYXRlUHJvcEVycm9yKHtcbiAgICAgICAgICAgICAga2V5LFxuICAgICAgICAgICAgICBleHBlY3RlZDogJ2Bib29sZWFuIHwgXCJhdXRvXCJgJyxcbiAgICAgICAgICAgICAgYWN0dWFsOiB2YWxUeXBlLFxuICAgICAgICAgICAgfSlcbiAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgLy8gVHlwZVNjcmlwdCB0cmljayBmb3IgdHlwZS1ndWFyZGluZzpcbiAgICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXVudXNlZC12YXJzXG4gICAgICAgICAgY29uc3QgXzogbmV2ZXIgPSBrZXlcbiAgICAgICAgfVxuICAgICAgfSlcbiAgICB9XG5cbiAgICBjb25zdCB7IGhyZWYsIGFzIH0gPSBSZWFjdC51c2VNZW1vKCgpID0+IHtcbiAgICAgIGlmICghcm91dGVyKSB7XG4gICAgICAgIGNvbnN0IHJlc29sdmVkSHJlZiA9IGZvcm1hdFN0cmluZ09yVXJsKGhyZWZQcm9wKVxuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIGhyZWY6IHJlc29sdmVkSHJlZixcbiAgICAgICAgICBhczogYXNQcm9wID8gZm9ybWF0U3RyaW5nT3JVcmwoYXNQcm9wKSA6IHJlc29sdmVkSHJlZixcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBjb25zdCBbcmVzb2x2ZWRIcmVmLCByZXNvbHZlZEFzXSA9IHJlc29sdmVIcmVmKHJvdXRlciwgaHJlZlByb3AsIHRydWUpXG5cbiAgICAgIHJldHVybiB7XG4gICAgICAgIGhyZWY6IHJlc29sdmVkSHJlZixcbiAgICAgICAgYXM6IGFzUHJvcCA/IHJlc29sdmVIcmVmKHJvdXRlciwgYXNQcm9wKSA6IHJlc29sdmVkQXMgfHwgcmVzb2x2ZWRIcmVmLFxuICAgICAgfVxuICAgIH0sIFtyb3V0ZXIsIGhyZWZQcm9wLCBhc1Byb3BdKVxuXG4gICAgY29uc3QgcHJldmlvdXNIcmVmID0gUmVhY3QudXNlUmVmPHN0cmluZz4oaHJlZilcbiAgICBjb25zdCBwcmV2aW91c0FzID0gUmVhY3QudXNlUmVmPHN0cmluZz4oYXMpXG5cbiAgICAvLyBUaGlzIHdpbGwgcmV0dXJuIHRoZSBmaXJzdCBjaGlsZCwgaWYgbXVsdGlwbGUgYXJlIHByb3ZpZGVkIGl0IHdpbGwgdGhyb3cgYW4gZXJyb3JcbiAgICBsZXQgY2hpbGQ6IGFueVxuICAgIGlmIChsZWdhY3lCZWhhdmlvcikge1xuICAgICAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WID09PSAnZGV2ZWxvcG1lbnQnKSB7XG4gICAgICAgIGlmIChvbkNsaWNrKSB7XG4gICAgICAgICAgY29uc29sZS53YXJuKFxuICAgICAgICAgICAgYFwib25DbGlja1wiIHdhcyBwYXNzZWQgdG8gPExpbms+IHdpdGggXFxgaHJlZlxcYCBvZiBcXGAke2hyZWZQcm9wfVxcYCBidXQgXCJsZWdhY3lCZWhhdmlvclwiIHdhcyBzZXQuIFRoZSBsZWdhY3kgYmVoYXZpb3IgcmVxdWlyZXMgb25DbGljayBiZSBzZXQgb24gdGhlIGNoaWxkIG9mIG5leHQvbGlua2BcbiAgICAgICAgICApXG4gICAgICAgIH1cbiAgICAgICAgaWYgKG9uTW91c2VFbnRlclByb3ApIHtcbiAgICAgICAgICBjb25zb2xlLndhcm4oXG4gICAgICAgICAgICBgXCJvbk1vdXNlRW50ZXJcIiB3YXMgcGFzc2VkIHRvIDxMaW5rPiB3aXRoIFxcYGhyZWZcXGAgb2YgXFxgJHtocmVmUHJvcH1cXGAgYnV0IFwibGVnYWN5QmVoYXZpb3JcIiB3YXMgc2V0LiBUaGUgbGVnYWN5IGJlaGF2aW9yIHJlcXVpcmVzIG9uTW91c2VFbnRlciBiZSBzZXQgb24gdGhlIGNoaWxkIG9mIG5leHQvbGlua2BcbiAgICAgICAgICApXG4gICAgICAgIH1cbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICBjaGlsZCA9IFJlYWN0LkNoaWxkcmVuLm9ubHkoY2hpbGRyZW4pXG4gICAgICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgICAgIGlmICghY2hpbGRyZW4pIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgICAgICAgYE5vIGNoaWxkcmVuIHdlcmUgcGFzc2VkIHRvIDxMaW5rPiB3aXRoIFxcYGhyZWZcXGAgb2YgXFxgJHtocmVmUHJvcH1cXGAgYnV0IG9uZSBjaGlsZCBpcyByZXF1aXJlZCBodHRwczovL25leHRqcy5vcmcvZG9jcy9tZXNzYWdlcy9saW5rLW5vLWNoaWxkcmVuYFxuICAgICAgICAgICAgKVxuICAgICAgICAgIH1cbiAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgICAgICBgTXVsdGlwbGUgY2hpbGRyZW4gd2VyZSBwYXNzZWQgdG8gPExpbms+IHdpdGggXFxgaHJlZlxcYCBvZiBcXGAke2hyZWZQcm9wfVxcYCBidXQgb25seSBvbmUgY2hpbGQgaXMgc3VwcG9ydGVkIGh0dHBzOi8vbmV4dGpzLm9yZy9kb2NzL21lc3NhZ2VzL2xpbmstbXVsdGlwbGUtY2hpbGRyZW5gICtcbiAgICAgICAgICAgICAgKHR5cGVvZiB3aW5kb3cgIT09ICd1bmRlZmluZWQnXG4gICAgICAgICAgICAgICAgPyBcIiBcXG5PcGVuIHlvdXIgYnJvd3NlcidzIGNvbnNvbGUgdG8gdmlldyB0aGUgQ29tcG9uZW50IHN0YWNrIHRyYWNlLlwiXG4gICAgICAgICAgICAgICAgOiAnJylcbiAgICAgICAgICApXG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGNoaWxkID0gUmVhY3QuQ2hpbGRyZW4ub25seShjaGlsZHJlbilcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WID09PSAnZGV2ZWxvcG1lbnQnKSB7XG4gICAgICAgIGlmICgoY2hpbGRyZW4gYXMgYW55KT8udHlwZSA9PT0gJ2EnKSB7XG4gICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICAgICAgJ0ludmFsaWQgPExpbms+IHdpdGggPGE+IGNoaWxkLiBQbGVhc2UgcmVtb3ZlIDxhPiBvciB1c2UgPExpbmsgbGVnYWN5QmVoYXZpb3I+LlxcbkxlYXJuIG1vcmU6IGh0dHBzOi8vbmV4dGpzLm9yZy9kb2NzL21lc3NhZ2VzL2ludmFsaWQtbmV3LWxpbmstd2l0aC1leHRyYS1hbmNob3InXG4gICAgICAgICAgKVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgY29uc3QgY2hpbGRSZWY6IGFueSA9IGxlZ2FjeUJlaGF2aW9yXG4gICAgICA/IGNoaWxkICYmIHR5cGVvZiBjaGlsZCA9PT0gJ29iamVjdCcgJiYgY2hpbGQucmVmXG4gICAgICA6IGZvcndhcmRlZFJlZlxuXG4gICAgY29uc3QgW3NldEludGVyc2VjdGlvblJlZiwgaXNWaXNpYmxlLCByZXNldFZpc2libGVdID0gdXNlSW50ZXJzZWN0aW9uKHtcbiAgICAgIHJvb3RNYXJnaW46ICcyMDBweCcsXG4gICAgfSlcblxuICAgIGNvbnN0IHNldEludGVyc2VjdGlvbldpdGhSZXNldFJlZiA9IFJlYWN0LnVzZUNhbGxiYWNrKFxuICAgICAgKGVsOiBFbGVtZW50IHwgbnVsbCkgPT4ge1xuICAgICAgICAvLyBCZWZvcmUgdGhlIGxpbmsgZ2V0dGluZyBvYnNlcnZlZCwgY2hlY2sgaWYgdmlzaWJsZSBzdGF0ZSBuZWVkIHRvIGJlIHJlc2V0XG4gICAgICAgIGlmIChwcmV2aW91c0FzLmN1cnJlbnQgIT09IGFzIHx8IHByZXZpb3VzSHJlZi5jdXJyZW50ICE9PSBocmVmKSB7XG4gICAgICAgICAgcmVzZXRWaXNpYmxlKClcbiAgICAgICAgICBwcmV2aW91c0FzLmN1cnJlbnQgPSBhc1xuICAgICAgICAgIHByZXZpb3VzSHJlZi5jdXJyZW50ID0gaHJlZlxuICAgICAgICB9XG5cbiAgICAgICAgc2V0SW50ZXJzZWN0aW9uUmVmKGVsKVxuICAgICAgfSxcbiAgICAgIFthcywgaHJlZiwgcmVzZXRWaXNpYmxlLCBzZXRJbnRlcnNlY3Rpb25SZWZdXG4gICAgKVxuXG4gICAgY29uc3Qgc2V0UmVmID0gdXNlTWVyZ2VkUmVmKHNldEludGVyc2VjdGlvbldpdGhSZXNldFJlZiwgY2hpbGRSZWYpXG5cbiAgICAvLyBQcmVmZXRjaCB0aGUgVVJMIGlmIHdlIGhhdmVuJ3QgYWxyZWFkeSBhbmQgaXQncyB2aXNpYmxlLlxuICAgIFJlYWN0LnVzZUVmZmVjdCgoKSA9PiB7XG4gICAgICAvLyBpbiBkZXYsIHdlIG9ubHkgcHJlZmV0Y2ggb24gaG92ZXIgdG8gYXZvaWQgd2FzdGluZyByZXNvdXJjZXMgYXMgdGhlIHByZWZldGNoIHdpbGwgdHJpZ2dlciBjb21waWxpbmcgdGhlIHBhZ2UuXG4gICAgICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJykge1xuICAgICAgICByZXR1cm5cbiAgICAgIH1cblxuICAgICAgaWYgKCFyb3V0ZXIpIHtcbiAgICAgICAgcmV0dXJuXG4gICAgICB9XG5cbiAgICAgIC8vIElmIHdlIGRvbid0IG5lZWQgdG8gcHJlZmV0Y2ggdGhlIFVSTCwgZG9uJ3QgZG8gcHJlZmV0Y2guXG4gICAgICBpZiAoIWlzVmlzaWJsZSB8fCAhcHJlZmV0Y2hFbmFibGVkKSB7XG4gICAgICAgIHJldHVyblxuICAgICAgfVxuXG4gICAgICAvLyBQcmVmZXRjaCB0aGUgVVJMLlxuICAgICAgcHJlZmV0Y2gocm91dGVyLCBocmVmLCBhcywgeyBsb2NhbGUgfSlcbiAgICB9LCBbYXMsIGhyZWYsIGlzVmlzaWJsZSwgbG9jYWxlLCBwcmVmZXRjaEVuYWJsZWQsIHJvdXRlcj8ubG9jYWxlLCByb3V0ZXJdKVxuXG4gICAgY29uc3QgY2hpbGRQcm9wczoge1xuICAgICAgb25Ub3VjaFN0YXJ0PzogUmVhY3QuVG91Y2hFdmVudEhhbmRsZXI8SFRNTEFuY2hvckVsZW1lbnQ+XG4gICAgICBvbk1vdXNlRW50ZXI6IFJlYWN0Lk1vdXNlRXZlbnRIYW5kbGVyPEhUTUxBbmNob3JFbGVtZW50PlxuICAgICAgb25DbGljazogUmVhY3QuTW91c2VFdmVudEhhbmRsZXI8SFRNTEFuY2hvckVsZW1lbnQ+XG4gICAgICBocmVmPzogc3RyaW5nXG4gICAgICByZWY/OiBhbnlcbiAgICB9ID0ge1xuICAgICAgcmVmOiBzZXRSZWYsXG4gICAgICBvbkNsaWNrKGUpIHtcbiAgICAgICAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpIHtcbiAgICAgICAgICBpZiAoIWUpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgICAgICAgYENvbXBvbmVudCByZW5kZXJlZCBpbnNpZGUgbmV4dC9saW5rIGhhcyB0byBwYXNzIGNsaWNrIGV2ZW50IHRvIFwib25DbGlja1wiIHByb3AuYFxuICAgICAgICAgICAgKVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIGlmICghbGVnYWN5QmVoYXZpb3IgJiYgdHlwZW9mIG9uQ2xpY2sgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgICBvbkNsaWNrKGUpXG4gICAgICAgIH1cblxuICAgICAgICBpZiAoXG4gICAgICAgICAgbGVnYWN5QmVoYXZpb3IgJiZcbiAgICAgICAgICBjaGlsZC5wcm9wcyAmJlxuICAgICAgICAgIHR5cGVvZiBjaGlsZC5wcm9wcy5vbkNsaWNrID09PSAnZnVuY3Rpb24nXG4gICAgICAgICkge1xuICAgICAgICAgIGNoaWxkLnByb3BzLm9uQ2xpY2soZSlcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICghcm91dGVyKSB7XG4gICAgICAgICAgcmV0dXJuXG4gICAgICAgIH1cblxuICAgICAgICBpZiAoZS5kZWZhdWx0UHJldmVudGVkKSB7XG4gICAgICAgICAgcmV0dXJuXG4gICAgICAgIH1cblxuICAgICAgICBsaW5rQ2xpY2tlZChcbiAgICAgICAgICBlLFxuICAgICAgICAgIHJvdXRlcixcbiAgICAgICAgICBocmVmLFxuICAgICAgICAgIGFzLFxuICAgICAgICAgIHJlcGxhY2UsXG4gICAgICAgICAgc2hhbGxvdyxcbiAgICAgICAgICBzY3JvbGwsXG4gICAgICAgICAgbG9jYWxlLFxuICAgICAgICAgIG9uTmF2aWdhdGVcbiAgICAgICAgKVxuICAgICAgfSxcbiAgICAgIG9uTW91c2VFbnRlcihlKSB7XG4gICAgICAgIGlmICghbGVnYWN5QmVoYXZpb3IgJiYgdHlwZW9mIG9uTW91c2VFbnRlclByb3AgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgICBvbk1vdXNlRW50ZXJQcm9wKGUpXG4gICAgICAgIH1cblxuICAgICAgICBpZiAoXG4gICAgICAgICAgbGVnYWN5QmVoYXZpb3IgJiZcbiAgICAgICAgICBjaGlsZC5wcm9wcyAmJlxuICAgICAgICAgIHR5cGVvZiBjaGlsZC5wcm9wcy5vbk1vdXNlRW50ZXIgPT09ICdmdW5jdGlvbidcbiAgICAgICAgKSB7XG4gICAgICAgICAgY2hpbGQucHJvcHMub25Nb3VzZUVudGVyKGUpXG4gICAgICAgIH1cblxuICAgICAgICBpZiAoIXJvdXRlcikge1xuICAgICAgICAgIHJldHVyblxuICAgICAgICB9XG5cbiAgICAgICAgcHJlZmV0Y2gocm91dGVyLCBocmVmLCBhcywge1xuICAgICAgICAgIGxvY2FsZSxcbiAgICAgICAgICBwcmlvcml0eTogdHJ1ZSxcbiAgICAgICAgICAvLyBAc2VlIHtodHRwczovL2dpdGh1Yi5jb20vdmVyY2VsL25leHQuanMvZGlzY3Vzc2lvbnMvNDAyNjg/c29ydD10b3AjZGlzY3Vzc2lvbmNvbW1lbnQtMzU3MjY0Mn1cbiAgICAgICAgICBieXBhc3NQcmVmZXRjaGVkQ2hlY2s6IHRydWUsXG4gICAgICAgIH0pXG4gICAgICB9LFxuICAgICAgb25Ub3VjaFN0YXJ0OiBwcm9jZXNzLmVudi5fX05FWFRfTElOS19OT19UT1VDSF9TVEFSVFxuICAgICAgICA/IHVuZGVmaW5lZFxuICAgICAgICA6IGZ1bmN0aW9uIG9uVG91Y2hTdGFydChlKSB7XG4gICAgICAgICAgICBpZiAoIWxlZ2FjeUJlaGF2aW9yICYmIHR5cGVvZiBvblRvdWNoU3RhcnRQcm9wID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgICAgICAgIG9uVG91Y2hTdGFydFByb3AoZSlcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKFxuICAgICAgICAgICAgICBsZWdhY3lCZWhhdmlvciAmJlxuICAgICAgICAgICAgICBjaGlsZC5wcm9wcyAmJlxuICAgICAgICAgICAgICB0eXBlb2YgY2hpbGQucHJvcHMub25Ub3VjaFN0YXJ0ID09PSAnZnVuY3Rpb24nXG4gICAgICAgICAgICApIHtcbiAgICAgICAgICAgICAgY2hpbGQucHJvcHMub25Ub3VjaFN0YXJ0KGUpXG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlmICghcm91dGVyKSB7XG4gICAgICAgICAgICAgIHJldHVyblxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBwcmVmZXRjaChyb3V0ZXIsIGhyZWYsIGFzLCB7XG4gICAgICAgICAgICAgIGxvY2FsZSxcbiAgICAgICAgICAgICAgcHJpb3JpdHk6IHRydWUsXG4gICAgICAgICAgICAgIC8vIEBzZWUge2h0dHBzOi8vZ2l0aHViLmNvbS92ZXJjZWwvbmV4dC5qcy9kaXNjdXNzaW9ucy80MDI2OD9zb3J0PXRvcCNkaXNjdXNzaW9uY29tbWVudC0zNTcyNjQyfVxuICAgICAgICAgICAgICBieXBhc3NQcmVmZXRjaGVkQ2hlY2s6IHRydWUsXG4gICAgICAgICAgICB9KVxuICAgICAgICAgIH0sXG4gICAgfVxuXG4gICAgLy8gSWYgY2hpbGQgaXMgYW4gPGE+IHRhZyBhbmQgZG9lc24ndCBoYXZlIGEgaHJlZiBhdHRyaWJ1dGUsIG9yIGlmIHRoZSAncGFzc0hyZWYnIHByb3BlcnR5IGlzXG4gICAgLy8gZGVmaW5lZCwgd2Ugc3BlY2lmeSB0aGUgY3VycmVudCAnaHJlZicsIHNvIHRoYXQgcmVwZXRpdGlvbiBpcyBub3QgbmVlZGVkIGJ5IHRoZSB1c2VyLlxuICAgIC8vIElmIHRoZSB1cmwgaXMgYWJzb2x1dGUsIHdlIGNhbiBieXBhc3MgdGhlIGxvZ2ljIHRvIHByZXBlbmQgdGhlIGRvbWFpbiBhbmQgbG9jYWxlLlxuICAgIGlmIChpc0Fic29sdXRlVXJsKGFzKSkge1xuICAgICAgY2hpbGRQcm9wcy5ocmVmID0gYXNcbiAgICB9IGVsc2UgaWYgKFxuICAgICAgIWxlZ2FjeUJlaGF2aW9yIHx8XG4gICAgICBwYXNzSHJlZiB8fFxuICAgICAgKGNoaWxkLnR5cGUgPT09ICdhJyAmJiAhKCdocmVmJyBpbiBjaGlsZC5wcm9wcykpXG4gICAgKSB7XG4gICAgICBjb25zdCBjdXJMb2NhbGUgPSB0eXBlb2YgbG9jYWxlICE9PSAndW5kZWZpbmVkJyA/IGxvY2FsZSA6IHJvdXRlcj8ubG9jYWxlXG5cbiAgICAgIC8vIHdlIG9ubHkgcmVuZGVyIGRvbWFpbiBsb2NhbGVzIGlmIHdlIGFyZSBjdXJyZW50bHkgb24gYSBkb21haW4gbG9jYWxlXG4gICAgICAvLyBzbyB0aGF0IGxvY2FsZSBsaW5rcyBhcmUgc3RpbGwgdmlzaXRhYmxlIGluIGRldmVsb3BtZW50L3ByZXZpZXcgZW52c1xuICAgICAgY29uc3QgbG9jYWxlRG9tYWluID1cbiAgICAgICAgcm91dGVyPy5pc0xvY2FsZURvbWFpbiAmJlxuICAgICAgICBnZXREb21haW5Mb2NhbGUoYXMsIGN1ckxvY2FsZSwgcm91dGVyPy5sb2NhbGVzLCByb3V0ZXI/LmRvbWFpbkxvY2FsZXMpXG5cbiAgICAgIGNoaWxkUHJvcHMuaHJlZiA9XG4gICAgICAgIGxvY2FsZURvbWFpbiB8fFxuICAgICAgICBhZGRCYXNlUGF0aChhZGRMb2NhbGUoYXMsIGN1ckxvY2FsZSwgcm91dGVyPy5kZWZhdWx0TG9jYWxlKSlcbiAgICB9XG5cbiAgICBpZiAobGVnYWN5QmVoYXZpb3IpIHtcbiAgICAgIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViA9PT0gJ2RldmVsb3BtZW50Jykge1xuICAgICAgICBlcnJvck9uY2UoXG4gICAgICAgICAgJ2BsZWdhY3lCZWhhdmlvcmAgaXMgZGVwcmVjYXRlZCBhbmQgd2lsbCBiZSByZW1vdmVkIGluIGEgZnV0dXJlICcgK1xuICAgICAgICAgICAgJ3JlbGVhc2UuIEEgY29kZW1vZCBpcyBhdmFpbGFibGUgdG8gdXBncmFkZSB5b3VyIGNvbXBvbmVudHM6XFxuXFxuJyArXG4gICAgICAgICAgICAnbnB4IEBuZXh0L2NvZGVtb2RAbGF0ZXN0IG5ldy1saW5rIC5cXG5cXG4nICtcbiAgICAgICAgICAgICdMZWFybiBtb3JlOiBodHRwczovL25leHRqcy5vcmcvZG9jcy9hcHAvYnVpbGRpbmcteW91ci1hcHBsaWNhdGlvbi91cGdyYWRpbmcvY29kZW1vZHMjcmVtb3ZlLWEtdGFncy1mcm9tLWxpbmstY29tcG9uZW50cydcbiAgICAgICAgKVxuICAgICAgfVxuICAgICAgcmV0dXJuIFJlYWN0LmNsb25lRWxlbWVudChjaGlsZCwgY2hpbGRQcm9wcylcbiAgICB9XG5cbiAgICByZXR1cm4gKFxuICAgICAgPGEgey4uLnJlc3RQcm9wc30gey4uLmNoaWxkUHJvcHN9PlxuICAgICAgICB7Y2hpbGRyZW59XG4gICAgICA8L2E+XG4gICAgKVxuICB9XG4pXG5cbmNvbnN0IExpbmtTdGF0dXNDb250ZXh0ID0gY3JlYXRlQ29udGV4dDx7XG4gIHBlbmRpbmc6IGJvb2xlYW5cbn0+KHtcbiAgLy8gV2UgZG8gbm90IHN1cHBvcnQgbGluayBzdGF0dXMgaW4gdGhlIFBhZ2VzIFJvdXRlciwgc28gd2UgYWx3YXlzIHJldHVybiBmYWxzZVxuICBwZW5kaW5nOiBmYWxzZSxcbn0pXG5cbmV4cG9ydCBjb25zdCB1c2VMaW5rU3RhdHVzID0gKCkgPT4ge1xuICAvLyBUaGlzIGJlaGF2aW91ciBpcyBsaWtlIFJlYWN0J3MgdXNlRm9ybVN0YXR1cy4gV2hlbiB0aGUgY29tcG9uZW50IGlzIG5vdCB1bmRlclxuICAvLyBhIDxmb3JtPiB0YWcsIGl0IHdpbGwgZ2V0IHRoZSBkZWZhdWx0IHZhbHVlLCBpbnN0ZWFkIG9mIHRocm93aW5nIGFuIGVycm9yLlxuICByZXR1cm4gdXNlQ29udGV4dChMaW5rU3RhdHVzQ29udGV4dClcbn1cblxuZXhwb3J0IGRlZmF1bHQgTGlua1xuIl0sIm5hbWVzIjpbInVzZUxpbmtTdGF0dXMiLCJwcmVmZXRjaGVkIiwiU2V0IiwicHJlZmV0Y2giLCJyb3V0ZXIiLCJocmVmIiwiYXMiLCJvcHRpb25zIiwid2luZG93IiwiaXNMb2NhbFVSTCIsImJ5cGFzc1ByZWZldGNoZWRDaGVjayIsImxvY2FsZSIsInVuZGVmaW5lZCIsInByZWZldGNoZWRLZXkiLCJoYXMiLCJhZGQiLCJjYXRjaCIsImVyciIsInByb2Nlc3MiLCJlbnYiLCJOT0RFX0VOViIsImlzTW9kaWZpZWRFdmVudCIsImV2ZW50IiwiZXZlbnRUYXJnZXQiLCJjdXJyZW50VGFyZ2V0IiwidGFyZ2V0IiwiZ2V0QXR0cmlidXRlIiwibWV0YUtleSIsImN0cmxLZXkiLCJzaGlmdEtleSIsImFsdEtleSIsIm5hdGl2ZUV2ZW50Iiwid2hpY2giLCJsaW5rQ2xpY2tlZCIsImUiLCJyZXBsYWNlIiwic2hhbGxvdyIsInNjcm9sbCIsIm9uTmF2aWdhdGUiLCJub2RlTmFtZSIsImlzQW5jaG9yTm9kZU5hbWUiLCJ0b1VwcGVyQ2FzZSIsImhhc0F0dHJpYnV0ZSIsInByZXZlbnREZWZhdWx0IiwibG9jYXRpb24iLCJuYXZpZ2F0ZSIsImlzRGVmYXVsdFByZXZlbnRlZCIsInJvdXRlclNjcm9sbCIsImZvcm1hdFN0cmluZ09yVXJsIiwidXJsT2JqT3JTdHJpbmciLCJmb3JtYXRVcmwiLCJMaW5rIiwiUmVhY3QiLCJmb3J3YXJkUmVmIiwiTGlua0NvbXBvbmVudCIsInByb3BzIiwiZm9yd2FyZGVkUmVmIiwiY2hpbGRyZW4iLCJocmVmUHJvcCIsImFzUHJvcCIsImNoaWxkcmVuUHJvcCIsInByZWZldGNoUHJvcCIsInBhc3NIcmVmIiwib25DbGljayIsIm9uTW91c2VFbnRlciIsIm9uTW91c2VFbnRlclByb3AiLCJvblRvdWNoU3RhcnQiLCJvblRvdWNoU3RhcnRQcm9wIiwibGVnYWN5QmVoYXZpb3IiLCJyZXN0UHJvcHMiLCJhIiwidXNlQ29udGV4dCIsIlJvdXRlckNvbnRleHQiLCJwcmVmZXRjaEVuYWJsZWQiLCJjcmVhdGVQcm9wRXJyb3IiLCJhcmdzIiwiRXJyb3IiLCJrZXkiLCJleHBlY3RlZCIsImFjdHVhbCIsInJlcXVpcmVkUHJvcHNHdWFyZCIsInJlcXVpcmVkUHJvcHMiLCJPYmplY3QiLCJrZXlzIiwiZm9yRWFjaCIsIl8iLCJvcHRpb25hbFByb3BzR3VhcmQiLCJvcHRpb25hbFByb3BzIiwidmFsVHlwZSIsInVzZU1lbW8iLCJyZXNvbHZlZEhyZWYiLCJyZXNvbHZlZEFzIiwicmVzb2x2ZUhyZWYiLCJwcmV2aW91c0hyZWYiLCJ1c2VSZWYiLCJwcmV2aW91c0FzIiwiY2hpbGQiLCJjb25zb2xlIiwid2FybiIsIkNoaWxkcmVuIiwib25seSIsInR5cGUiLCJjaGlsZFJlZiIsInJlZiIsInNldEludGVyc2VjdGlvblJlZiIsImlzVmlzaWJsZSIsInJlc2V0VmlzaWJsZSIsInVzZUludGVyc2VjdGlvbiIsInJvb3RNYXJnaW4iLCJzZXRJbnRlcnNlY3Rpb25XaXRoUmVzZXRSZWYiLCJ1c2VDYWxsYmFjayIsImVsIiwiY3VycmVudCIsInNldFJlZiIsInVzZU1lcmdlZFJlZiIsInVzZUVmZmVjdCIsImNoaWxkUHJvcHMiLCJkZWZhdWx0UHJldmVudGVkIiwicHJpb3JpdHkiLCJfX05FWFRfTElOS19OT19UT1VDSF9TVEFSVCIsImlzQWJzb2x1dGVVcmwiLCJjdXJMb2NhbGUiLCJsb2NhbGVEb21haW4iLCJpc0xvY2FsZURvbWFpbiIsImdldERvbWFpbkxvY2FsZSIsImxvY2FsZXMiLCJkb21haW5Mb2NhbGVzIiwiYWRkQmFzZVBhdGgiLCJhZGRMb2NhbGUiLCJkZWZhdWx0TG9jYWxlIiwiZXJyb3JPbmNlIiwiY2xvbmVFbGVtZW50IiwiTGlua1N0YXR1c0NvbnRleHQiLCJjcmVhdGVDb250ZXh0IiwicGVuZGluZyJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(pages-dir-browser)/./node_modules/next/dist/client/link.js\n")); - -/***/ }), - -/***/ "(pages-dir-browser)/./node_modules/next/dist/client/use-intersection.js": -/*!***********************************************************!*\ - !*** ./node_modules/next/dist/client/use-intersection.js ***! - \***********************************************************/ -/***/ ((module, exports, __webpack_require__) => { - -"use strict"; -eval(__webpack_require__.ts("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"useIntersection\", ({\n enumerable: true,\n get: function() {\n return useIntersection;\n }\n}));\nconst _react = __webpack_require__(/*! react */ \"(pages-dir-browser)/./node_modules/react/index.js\");\nconst _requestidlecallback = __webpack_require__(/*! ./request-idle-callback */ \"(pages-dir-browser)/./node_modules/next/dist/client/request-idle-callback.js\");\nconst hasIntersectionObserver = typeof IntersectionObserver === 'function';\nconst observers = new Map();\nconst idList = [];\nfunction createObserver(options) {\n const id = {\n root: options.root || null,\n margin: options.rootMargin || ''\n };\n const existing = idList.find((obj)=>obj.root === id.root && obj.margin === id.margin);\n let instance;\n if (existing) {\n instance = observers.get(existing);\n if (instance) {\n return instance;\n }\n }\n const elements = new Map();\n const observer = new IntersectionObserver((entries)=>{\n entries.forEach((entry)=>{\n const callback = elements.get(entry.target);\n const isVisible = entry.isIntersecting || entry.intersectionRatio > 0;\n if (callback && isVisible) {\n callback(isVisible);\n }\n });\n }, options);\n instance = {\n id,\n observer,\n elements\n };\n idList.push(id);\n observers.set(id, instance);\n return instance;\n}\nfunction observe(element, callback, options) {\n const { id, observer, elements } = createObserver(options);\n elements.set(element, callback);\n observer.observe(element);\n return function unobserve() {\n elements.delete(element);\n observer.unobserve(element);\n // Destroy observer when there's nothing left to watch:\n if (elements.size === 0) {\n observer.disconnect();\n observers.delete(id);\n const index = idList.findIndex((obj)=>obj.root === id.root && obj.margin === id.margin);\n if (index > -1) {\n idList.splice(index, 1);\n }\n }\n };\n}\nfunction useIntersection(param) {\n let { rootRef, rootMargin, disabled } = param;\n const isDisabled = disabled || !hasIntersectionObserver;\n const [visible, setVisible] = (0, _react.useState)(false);\n const elementRef = (0, _react.useRef)(null);\n const setElement = (0, _react.useCallback)((element)=>{\n elementRef.current = element;\n }, []);\n (0, _react.useEffect)(()=>{\n if (hasIntersectionObserver) {\n if (isDisabled || visible) return;\n const element = elementRef.current;\n if (element && element.tagName) {\n const unobserve = observe(element, (isVisible)=>isVisible && setVisible(isVisible), {\n root: rootRef == null ? void 0 : rootRef.current,\n rootMargin\n });\n return unobserve;\n }\n } else {\n if (!visible) {\n const idleCallback = (0, _requestidlecallback.requestIdleCallback)(()=>setVisible(true));\n return ()=>(0, _requestidlecallback.cancelIdleCallback)(idleCallback);\n }\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [\n isDisabled,\n rootMargin,\n rootRef,\n visible,\n elementRef.current\n ]);\n const resetVisible = (0, _react.useCallback)(()=>{\n setVisible(false);\n }, []);\n return [\n setElement,\n visible,\n resetVisible\n ];\n}\nif ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=use-intersection.js.map\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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvY2xpZW50L3VzZS1pbnRlcnNlY3Rpb24uanMiLCJtYXBwaW5ncyI6Ijs7OzttREErRmdCQTs7O2VBQUFBOzs7bUNBL0Z5QztpREFJbEQ7QUFxQlAsTUFBTUMsMEJBQTBCLE9BQU9DLHlCQUF5QjtBQUVoRSxNQUFNQyxZQUFZLElBQUlDO0FBQ3RCLE1BQU1DLFNBQXVCLEVBQUU7QUFFL0IsU0FBU0MsZUFBZUMsT0FBb0M7SUFDMUQsTUFBTUMsS0FBSztRQUNUQyxNQUFNRixRQUFRRSxJQUFJLElBQUk7UUFDdEJDLFFBQVFILFFBQVFJLFVBQVUsSUFBSTtJQUNoQztJQUNBLE1BQU1DLFdBQVdQLE9BQU9RLElBQUksQ0FDMUIsQ0FBQ0MsTUFBUUEsSUFBSUwsSUFBSSxLQUFLRCxHQUFHQyxJQUFJLElBQUlLLElBQUlKLE1BQU0sS0FBS0YsR0FBR0UsTUFBTTtJQUUzRCxJQUFJSztJQUVKLElBQUlILFVBQVU7UUFDWkcsV0FBV1osVUFBVWEsR0FBRyxDQUFDSjtRQUN6QixJQUFJRyxVQUFVO1lBQ1osT0FBT0E7UUFDVDtJQUNGO0lBRUEsTUFBTUUsV0FBVyxJQUFJYjtJQUNyQixNQUFNYyxXQUFXLElBQUloQixxQkFBcUIsQ0FBQ2lCO1FBQ3pDQSxRQUFRQyxPQUFPLENBQUMsQ0FBQ0M7WUFDZixNQUFNQyxXQUFXTCxTQUFTRCxHQUFHLENBQUNLLE1BQU1FLE1BQU07WUFDMUMsTUFBTUMsWUFBWUgsTUFBTUksY0FBYyxJQUFJSixNQUFNSyxpQkFBaUIsR0FBRztZQUNwRSxJQUFJSixZQUFZRSxXQUFXO2dCQUN6QkYsU0FBU0U7WUFDWDtRQUNGO0lBQ0YsR0FBR2pCO0lBQ0hRLFdBQVc7UUFDVFA7UUFDQVU7UUFDQUQ7SUFDRjtJQUVBWixPQUFPc0IsSUFBSSxDQUFDbkI7SUFDWkwsVUFBVXlCLEdBQUcsQ0FBQ3BCLElBQUlPO0lBQ2xCLE9BQU9BO0FBQ1Q7QUFFQSxTQUFTYyxRQUNQQyxPQUFnQixFQUNoQlIsUUFBeUIsRUFDekJmLE9BQW9DO0lBRXBDLE1BQU0sRUFBRUMsRUFBRSxFQUFFVSxRQUFRLEVBQUVELFFBQVEsRUFBRSxHQUFHWCxlQUFlQztJQUNsRFUsU0FBU1csR0FBRyxDQUFDRSxTQUFTUjtJQUV0QkosU0FBU1csT0FBTyxDQUFDQztJQUNqQixPQUFPLFNBQVNDO1FBQ2RkLFNBQVNlLE1BQU0sQ0FBQ0Y7UUFDaEJaLFNBQVNhLFNBQVMsQ0FBQ0Q7UUFFbkIsdURBQXVEO1FBQ3ZELElBQUliLFNBQVNnQixJQUFJLEtBQUssR0FBRztZQUN2QmYsU0FBU2dCLFVBQVU7WUFDbkIvQixVQUFVNkIsTUFBTSxDQUFDeEI7WUFDakIsTUFBTTJCLFFBQVE5QixPQUFPK0IsU0FBUyxDQUM1QixDQUFDdEIsTUFBUUEsSUFBSUwsSUFBSSxLQUFLRCxHQUFHQyxJQUFJLElBQUlLLElBQUlKLE1BQU0sS0FBS0YsR0FBR0UsTUFBTTtZQUUzRCxJQUFJeUIsUUFBUSxDQUFDLEdBQUc7Z0JBQ2Q5QixPQUFPZ0MsTUFBTSxDQUFDRixPQUFPO1lBQ3ZCO1FBQ0Y7SUFDRjtBQUNGO0FBRU8sU0FBU25DLGdCQUFtQyxLQUlqQztJQUppQyxNQUNqRHNDLE9BQU8sRUFDUDNCLFVBQVUsRUFDVjRCLFFBQVEsRUFDUSxHQUppQztJQUtqRCxNQUFNQyxhQUFzQkQsWUFBWSxDQUFDdEM7SUFFekMsTUFBTSxDQUFDd0MsU0FBU0MsV0FBVyxHQUFHQyxDQUFBQSxHQUFBQSxPQUFBQSxRQUFBQSxFQUFTO0lBQ3ZDLE1BQU1DLGFBQWFDLENBQUFBLEdBQUFBLE9BQUFBLE1BQUFBLEVBQWlCO0lBQ3BDLE1BQU1DLGFBQWFDLENBQUFBLEdBQUFBLE9BQUFBLFdBQUFBLEVBQVksQ0FBQ2pCO1FBQzlCYyxXQUFXSSxPQUFPLEdBQUdsQjtJQUN2QixHQUFHLEVBQUU7SUFFTG1CLENBQUFBLEdBQUFBLE9BQUFBLFNBQUFBLEVBQVU7UUFDUixJQUFJaEQseUJBQXlCO1lBQzNCLElBQUl1QyxjQUFjQyxTQUFTO1lBRTNCLE1BQU1YLFVBQVVjLFdBQVdJLE9BQU87WUFDbEMsSUFBSWxCLFdBQVdBLFFBQVFvQixPQUFPLEVBQUU7Z0JBQzlCLE1BQU1uQixZQUFZRixRQUNoQkMsU0FDQSxDQUFDTixZQUFjQSxhQUFha0IsV0FBV2xCLFlBQ3ZDO29CQUFFZixJQUFJLEVBQUU2QixXQUFBQSxPQUFBQSxLQUFBQSxJQUFBQSxRQUFTVSxPQUFPO29CQUFFckM7Z0JBQVc7Z0JBR3ZDLE9BQU9vQjtZQUNUO1FBQ0YsT0FBTztZQUNMLElBQUksQ0FBQ1UsU0FBUztnQkFDWixNQUFNVSxlQUFlQyxDQUFBQSxHQUFBQSxxQkFBQUEsbUJBQUFBLEVBQW9CLElBQU1WLFdBQVc7Z0JBQzFELE9BQU8sSUFBTVcsQ0FBQUEsR0FBQUEscUJBQUFBLGtCQUFBQSxFQUFtQkY7WUFDbEM7UUFDRjtJQUNBLHVEQUF1RDtJQUN6RCxHQUFHO1FBQUNYO1FBQVk3QjtRQUFZMkI7UUFBU0c7UUFBU0csV0FBV0ksT0FBTztLQUFDO0lBRWpFLE1BQU1NLGVBQWVQLENBQUFBLEdBQUFBLE9BQUFBLFdBQUFBLEVBQVk7UUFDL0JMLFdBQVc7SUFDYixHQUFHLEVBQUU7SUFFTCxPQUFPO1FBQUNJO1FBQVlMO1FBQVNhO0tBQWE7QUFDNUMiLCJzb3VyY2VzIjpbIkQ6XFxzcmNcXGNsaWVudFxcdXNlLWludGVyc2VjdGlvbi50c3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgdXNlQ2FsbGJhY2ssIHVzZUVmZmVjdCwgdXNlUmVmLCB1c2VTdGF0ZSB9IGZyb20gJ3JlYWN0J1xuaW1wb3J0IHtcbiAgcmVxdWVzdElkbGVDYWxsYmFjayxcbiAgY2FuY2VsSWRsZUNhbGxiYWNrLFxufSBmcm9tICcuL3JlcXVlc3QtaWRsZS1jYWxsYmFjaydcblxudHlwZSBVc2VJbnRlcnNlY3Rpb25PYnNlcnZlckluaXQgPSBQaWNrPFxuICBJbnRlcnNlY3Rpb25PYnNlcnZlckluaXQsXG4gICdyb290TWFyZ2luJyB8ICdyb290J1xuPlxuXG50eXBlIFVzZUludGVyc2VjdGlvbiA9IHsgZGlzYWJsZWQ/OiBib29sZWFuIH0gJiBVc2VJbnRlcnNlY3Rpb25PYnNlcnZlckluaXQgJiB7XG4gICAgcm9vdFJlZj86IFJlYWN0LlJlZk9iamVjdDxIVE1MRWxlbWVudCB8IG51bGw+IHwgbnVsbFxuICB9XG50eXBlIE9ic2VydmVDYWxsYmFjayA9IChpc1Zpc2libGU6IGJvb2xlYW4pID0+IHZvaWRcbnR5cGUgSWRlbnRpZmllciA9IHtcbiAgcm9vdDogRWxlbWVudCB8IERvY3VtZW50IHwgbnVsbFxuICBtYXJnaW46IHN0cmluZ1xufVxudHlwZSBPYnNlcnZlciA9IHtcbiAgaWQ6IElkZW50aWZpZXJcbiAgb2JzZXJ2ZXI6IEludGVyc2VjdGlvbk9ic2VydmVyXG4gIGVsZW1lbnRzOiBNYXA8RWxlbWVudCwgT2JzZXJ2ZUNhbGxiYWNrPlxufVxuXG5jb25zdCBoYXNJbnRlcnNlY3Rpb25PYnNlcnZlciA9IHR5cGVvZiBJbnRlcnNlY3Rpb25PYnNlcnZlciA9PT0gJ2Z1bmN0aW9uJ1xuXG5jb25zdCBvYnNlcnZlcnMgPSBuZXcgTWFwPElkZW50aWZpZXIsIE9ic2VydmVyPigpXG5jb25zdCBpZExpc3Q6IElkZW50aWZpZXJbXSA9IFtdXG5cbmZ1bmN0aW9uIGNyZWF0ZU9ic2VydmVyKG9wdGlvbnM6IFVzZUludGVyc2VjdGlvbk9ic2VydmVySW5pdCk6IE9ic2VydmVyIHtcbiAgY29uc3QgaWQgPSB7XG4gICAgcm9vdDogb3B0aW9ucy5yb290IHx8IG51bGwsXG4gICAgbWFyZ2luOiBvcHRpb25zLnJvb3RNYXJnaW4gfHwgJycsXG4gIH1cbiAgY29uc3QgZXhpc3RpbmcgPSBpZExpc3QuZmluZChcbiAgICAob2JqKSA9PiBvYmoucm9vdCA9PT0gaWQucm9vdCAmJiBvYmoubWFyZ2luID09PSBpZC5tYXJnaW5cbiAgKVxuICBsZXQgaW5zdGFuY2U6IE9ic2VydmVyIHwgdW5kZWZpbmVkXG5cbiAgaWYgKGV4aXN0aW5nKSB7XG4gICAgaW5zdGFuY2UgPSBvYnNlcnZlcnMuZ2V0KGV4aXN0aW5nKVxuICAgIGlmIChpbnN0YW5jZSkge1xuICAgICAgcmV0dXJuIGluc3RhbmNlXG4gICAgfVxuICB9XG5cbiAgY29uc3QgZWxlbWVudHMgPSBuZXcgTWFwPEVsZW1lbnQsIE9ic2VydmVDYWxsYmFjaz4oKVxuICBjb25zdCBvYnNlcnZlciA9IG5ldyBJbnRlcnNlY3Rpb25PYnNlcnZlcigoZW50cmllcykgPT4ge1xuICAgIGVudHJpZXMuZm9yRWFjaCgoZW50cnkpID0+IHtcbiAgICAgIGNvbnN0IGNhbGxiYWNrID0gZWxlbWVudHMuZ2V0KGVudHJ5LnRhcmdldClcbiAgICAgIGNvbnN0IGlzVmlzaWJsZSA9IGVudHJ5LmlzSW50ZXJzZWN0aW5nIHx8IGVudHJ5LmludGVyc2VjdGlvblJhdGlvID4gMFxuICAgICAgaWYgKGNhbGxiYWNrICYmIGlzVmlzaWJsZSkge1xuICAgICAgICBjYWxsYmFjayhpc1Zpc2libGUpXG4gICAgICB9XG4gICAgfSlcbiAgfSwgb3B0aW9ucylcbiAgaW5zdGFuY2UgPSB7XG4gICAgaWQsXG4gICAgb2JzZXJ2ZXIsXG4gICAgZWxlbWVudHMsXG4gIH1cblxuICBpZExpc3QucHVzaChpZClcbiAgb2JzZXJ2ZXJzLnNldChpZCwgaW5zdGFuY2UpXG4gIHJldHVybiBpbnN0YW5jZVxufVxuXG5mdW5jdGlvbiBvYnNlcnZlKFxuICBlbGVtZW50OiBFbGVtZW50LFxuICBjYWxsYmFjazogT2JzZXJ2ZUNhbGxiYWNrLFxuICBvcHRpb25zOiBVc2VJbnRlcnNlY3Rpb25PYnNlcnZlckluaXRcbik6ICgpID0+IHZvaWQge1xuICBjb25zdCB7IGlkLCBvYnNlcnZlciwgZWxlbWVudHMgfSA9IGNyZWF0ZU9ic2VydmVyKG9wdGlvbnMpXG4gIGVsZW1lbnRzLnNldChlbGVtZW50LCBjYWxsYmFjaylcblxuICBvYnNlcnZlci5vYnNlcnZlKGVsZW1lbnQpXG4gIHJldHVybiBmdW5jdGlvbiB1bm9ic2VydmUoKTogdm9pZCB7XG4gICAgZWxlbWVudHMuZGVsZXRlKGVsZW1lbnQpXG4gICAgb2JzZXJ2ZXIudW5vYnNlcnZlKGVsZW1lbnQpXG5cbiAgICAvLyBEZXN0cm95IG9ic2VydmVyIHdoZW4gdGhlcmUncyBub3RoaW5nIGxlZnQgdG8gd2F0Y2g6XG4gICAgaWYgKGVsZW1lbnRzLnNpemUgPT09IDApIHtcbiAgICAgIG9ic2VydmVyLmRpc2Nvbm5lY3QoKVxuICAgICAgb2JzZXJ2ZXJzLmRlbGV0ZShpZClcbiAgICAgIGNvbnN0IGluZGV4ID0gaWRMaXN0LmZpbmRJbmRleChcbiAgICAgICAgKG9iaikgPT4gb2JqLnJvb3QgPT09IGlkLnJvb3QgJiYgb2JqLm1hcmdpbiA9PT0gaWQubWFyZ2luXG4gICAgICApXG4gICAgICBpZiAoaW5kZXggPiAtMSkge1xuICAgICAgICBpZExpc3Quc3BsaWNlKGluZGV4LCAxKVxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gdXNlSW50ZXJzZWN0aW9uPFQgZXh0ZW5kcyBFbGVtZW50Pih7XG4gIHJvb3RSZWYsXG4gIHJvb3RNYXJnaW4sXG4gIGRpc2FibGVkLFxufTogVXNlSW50ZXJzZWN0aW9uKTogWyhlbGVtZW50OiBUIHwgbnVsbCkgPT4gdm9pZCwgYm9vbGVhbiwgKCkgPT4gdm9pZF0ge1xuICBjb25zdCBpc0Rpc2FibGVkOiBib29sZWFuID0gZGlzYWJsZWQgfHwgIWhhc0ludGVyc2VjdGlvbk9ic2VydmVyXG5cbiAgY29uc3QgW3Zpc2libGUsIHNldFZpc2libGVdID0gdXNlU3RhdGUoZmFsc2UpXG4gIGNvbnN0IGVsZW1lbnRSZWYgPSB1c2VSZWY8VCB8IG51bGw+KG51bGwpXG4gIGNvbnN0IHNldEVsZW1lbnQgPSB1c2VDYWxsYmFjaygoZWxlbWVudDogVCB8IG51bGwpID0+IHtcbiAgICBlbGVtZW50UmVmLmN1cnJlbnQgPSBlbGVtZW50XG4gIH0sIFtdKVxuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKGhhc0ludGVyc2VjdGlvbk9ic2VydmVyKSB7XG4gICAgICBpZiAoaXNEaXNhYmxlZCB8fCB2aXNpYmxlKSByZXR1cm5cblxuICAgICAgY29uc3QgZWxlbWVudCA9IGVsZW1lbnRSZWYuY3VycmVudFxuICAgICAgaWYgKGVsZW1lbnQgJiYgZWxlbWVudC50YWdOYW1lKSB7XG4gICAgICAgIGNvbnN0IHVub2JzZXJ2ZSA9IG9ic2VydmUoXG4gICAgICAgICAgZWxlbWVudCxcbiAgICAgICAgICAoaXNWaXNpYmxlKSA9PiBpc1Zpc2libGUgJiYgc2V0VmlzaWJsZShpc1Zpc2libGUpLFxuICAgICAgICAgIHsgcm9vdDogcm9vdFJlZj8uY3VycmVudCwgcm9vdE1hcmdpbiB9XG4gICAgICAgIClcblxuICAgICAgICByZXR1cm4gdW5vYnNlcnZlXG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIGlmICghdmlzaWJsZSkge1xuICAgICAgICBjb25zdCBpZGxlQ2FsbGJhY2sgPSByZXF1ZXN0SWRsZUNhbGxiYWNrKCgpID0+IHNldFZpc2libGUodHJ1ZSkpXG4gICAgICAgIHJldHVybiAoKSA9PiBjYW5jZWxJZGxlQ2FsbGJhY2soaWRsZUNhbGxiYWNrKVxuICAgICAgfVxuICAgIH1cbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgcmVhY3QtaG9va3MvZXhoYXVzdGl2ZS1kZXBzXG4gIH0sIFtpc0Rpc2FibGVkLCByb290TWFyZ2luLCByb290UmVmLCB2aXNpYmxlLCBlbGVtZW50UmVmLmN1cnJlbnRdKVxuXG4gIGNvbnN0IHJlc2V0VmlzaWJsZSA9IHVzZUNhbGxiYWNrKCgpID0+IHtcbiAgICBzZXRWaXNpYmxlKGZhbHNlKVxuICB9LCBbXSlcblxuICByZXR1cm4gW3NldEVsZW1lbnQsIHZpc2libGUsIHJlc2V0VmlzaWJsZV1cbn1cbiJdLCJuYW1lcyI6WyJ1c2VJbnRlcnNlY3Rpb24iLCJoYXNJbnRlcnNlY3Rpb25PYnNlcnZlciIsIkludGVyc2VjdGlvbk9ic2VydmVyIiwib2JzZXJ2ZXJzIiwiTWFwIiwiaWRMaXN0IiwiY3JlYXRlT2JzZXJ2ZXIiLCJvcHRpb25zIiwiaWQiLCJyb290IiwibWFyZ2luIiwicm9vdE1hcmdpbiIsImV4aXN0aW5nIiwiZmluZCIsIm9iaiIsImluc3RhbmNlIiwiZ2V0IiwiZWxlbWVudHMiLCJvYnNlcnZlciIsImVudHJpZXMiLCJmb3JFYWNoIiwiZW50cnkiLCJjYWxsYmFjayIsInRhcmdldCIsImlzVmlzaWJsZSIsImlzSW50ZXJzZWN0aW5nIiwiaW50ZXJzZWN0aW9uUmF0aW8iLCJwdXNoIiwic2V0Iiwib2JzZXJ2ZSIsImVsZW1lbnQiLCJ1bm9ic2VydmUiLCJkZWxldGUiLCJzaXplIiwiZGlzY29ubmVjdCIsImluZGV4IiwiZmluZEluZGV4Iiwic3BsaWNlIiwicm9vdFJlZiIsImRpc2FibGVkIiwiaXNEaXNhYmxlZCIsInZpc2libGUiLCJzZXRWaXNpYmxlIiwidXNlU3RhdGUiLCJlbGVtZW50UmVmIiwidXNlUmVmIiwic2V0RWxlbWVudCIsInVzZUNhbGxiYWNrIiwiY3VycmVudCIsInVzZUVmZmVjdCIsInRhZ05hbWUiLCJpZGxlQ2FsbGJhY2siLCJyZXF1ZXN0SWRsZUNhbGxiYWNrIiwiY2FuY2VsSWRsZUNhbGxiYWNrIiwicmVzZXRWaXNpYmxlIl0sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(pages-dir-browser)/./node_modules/next/dist/client/use-intersection.js\n")); - -/***/ }), - -/***/ "(pages-dir-browser)/./node_modules/next/dist/client/use-merged-ref.js": -/*!*********************************************************!*\ - !*** ./node_modules/next/dist/client/use-merged-ref.js ***! - \*********************************************************/ -/***/ ((module, exports, __webpack_require__) => { - -"use strict"; -eval(__webpack_require__.ts("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"useMergedRef\", ({\n enumerable: true,\n get: function() {\n return useMergedRef;\n }\n}));\nconst _react = __webpack_require__(/*! react */ \"(pages-dir-browser)/./node_modules/react/index.js\");\nfunction useMergedRef(refA, refB) {\n const cleanupA = (0, _react.useRef)(null);\n const cleanupB = (0, _react.useRef)(null);\n // NOTE: In theory, we could skip the wrapping if only one of the refs is non-null.\n // (this happens often if the user doesn't pass a ref to Link/Form/Image)\n // But this can cause us to leak a cleanup-ref into user code (e.g. via `<Link legacyBehavior>`),\n // and the user might pass that ref into ref-merging library that doesn't support cleanup refs\n // (because it hasn't been updated for React 19)\n // which can then cause things to blow up, because a cleanup-returning ref gets called with `null`.\n // So in practice, it's safer to be defensive and always wrap the ref, even on React 19.\n return (0, _react.useCallback)((current)=>{\n if (current === null) {\n const cleanupFnA = cleanupA.current;\n if (cleanupFnA) {\n cleanupA.current = null;\n cleanupFnA();\n }\n const cleanupFnB = cleanupB.current;\n if (cleanupFnB) {\n cleanupB.current = null;\n cleanupFnB();\n }\n } else {\n if (refA) {\n cleanupA.current = applyRef(refA, current);\n }\n if (refB) {\n cleanupB.current = applyRef(refB, current);\n }\n }\n }, [\n refA,\n refB\n ]);\n}\nfunction applyRef(refA, current) {\n if (typeof refA === 'function') {\n const cleanup = refA(current);\n if (typeof cleanup === 'function') {\n return cleanup;\n } else {\n return ()=>refA(null);\n }\n } else {\n refA.current = current;\n return ()=>{\n refA.current = null;\n };\n }\n}\nif ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=use-merged-ref.js.map\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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvY2xpZW50L3VzZS1tZXJnZWQtcmVmLmpzIiwibWFwcGluZ3MiOiI7Ozs7Z0RBU2dCQTs7O2VBQUFBOzs7bUNBVDhCO0FBU3ZDLFNBQVNBLGFBQ2RDLElBQW1CLEVBQ25CQyxJQUFtQjtJQUVuQixNQUFNQyxXQUFXQyxDQUFBQSxHQUFBQSxPQUFBQSxNQUFBQSxFQUE0QjtJQUM3QyxNQUFNQyxXQUFXRCxDQUFBQSxHQUFBQSxPQUFBQSxNQUFBQSxFQUE0QjtJQUU3QyxtRkFBbUY7SUFDbkYseUVBQXlFO0lBQ3pFLGlHQUFpRztJQUNqRyw4RkFBOEY7SUFDOUYsZ0RBQWdEO0lBQ2hELG1HQUFtRztJQUNuRyx3RkFBd0Y7SUFDeEYsT0FBT0UsQ0FBQUEsR0FBQUEsT0FBQUEsV0FBQUEsRUFDTCxDQUFDQztRQUNDLElBQUlBLFlBQVksTUFBTTtZQUNwQixNQUFNQyxhQUFhTCxTQUFTSSxPQUFPO1lBQ25DLElBQUlDLFlBQVk7Z0JBQ2RMLFNBQVNJLE9BQU8sR0FBRztnQkFDbkJDO1lBQ0Y7WUFDQSxNQUFNQyxhQUFhSixTQUFTRSxPQUFPO1lBQ25DLElBQUlFLFlBQVk7Z0JBQ2RKLFNBQVNFLE9BQU8sR0FBRztnQkFDbkJFO1lBQ0Y7UUFDRixPQUFPO1lBQ0wsSUFBSVIsTUFBTTtnQkFDUkUsU0FBU0ksT0FBTyxHQUFHRyxTQUFTVCxNQUFNTTtZQUNwQztZQUNBLElBQUlMLE1BQU07Z0JBQ1JHLFNBQVNFLE9BQU8sR0FBR0csU0FBU1IsTUFBTUs7WUFDcEM7UUFDRjtJQUNGLEdBQ0E7UUFBQ047UUFBTUM7S0FBSztBQUVoQjtBQUVBLFNBQVNRLFNBQ1BULElBQWdDLEVBQ2hDTSxPQUFpQjtJQUVqQixJQUFJLE9BQU9OLFNBQVMsWUFBWTtRQUM5QixNQUFNVSxVQUFVVixLQUFLTTtRQUNyQixJQUFJLE9BQU9JLFlBQVksWUFBWTtZQUNqQyxPQUFPQTtRQUNULE9BQU87WUFDTCxPQUFPLElBQU1WLEtBQUs7UUFDcEI7SUFDRixPQUFPO1FBQ0xBLEtBQUtNLE9BQU8sR0FBR0E7UUFDZixPQUFPO1lBQ0xOLEtBQUtNLE9BQU8sR0FBRztRQUNqQjtJQUNGO0FBQ0YiLCJzb3VyY2VzIjpbIkQ6XFxzcmNcXGNsaWVudFxcdXNlLW1lcmdlZC1yZWYudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgdXNlQ2FsbGJhY2ssIHVzZVJlZiwgdHlwZSBSZWYgfSBmcm9tICdyZWFjdCdcblxuLy8gVGhpcyBpcyBhIGNvbXBhdGliaWxpdHkgaG9vayB0byBzdXBwb3J0IFJlYWN0IDE4IGFuZCAxOSByZWZzLlxuLy8gSW4gMTksIGEgY2xlYW51cCBmdW5jdGlvbiBmcm9tIHJlZnMgbWF5IGJlIHJldHVybmVkLlxuLy8gSW4gMTgsIHJldHVybmluZyBhIGNsZWFudXAgZnVuY3Rpb24gY3JlYXRlcyBhIHdhcm5pbmcuXG4vLyBTaW5jZSB3ZSB0YWtlIHVzZXJzcGFjZSByZWZzLCB3ZSBkb24ndCBrbm93IGFoZWFkIG9mIHRpbWUgaWYgYSBjbGVhbnVwIGZ1bmN0aW9uIHdpbGwgYmUgcmV0dXJuZWQuXG4vLyBUaGlzIGltcGxlbWVudHMgY2xlYW51cCBmdW5jdGlvbnMgd2l0aCB0aGUgb2xkIGJlaGF2aW9yIGluIDE4LlxuLy8gV2Uga25vdyByZWZzIGFyZSBhbHdheXMgY2FsbGVkIGFsdGVybmF0aW5nIHdpdGggYG51bGxgIGFuZCB0aGVuIGBUYC5cbi8vIFNvIGEgY2FsbCB3aXRoIGBudWxsYCBtZWFucyB3ZSBuZWVkIHRvIGNhbGwgdGhlIHByZXZpb3VzIGNsZWFudXAgZnVuY3Rpb25zLlxuZXhwb3J0IGZ1bmN0aW9uIHVzZU1lcmdlZFJlZjxURWxlbWVudD4oXG4gIHJlZkE6IFJlZjxURWxlbWVudD4sXG4gIHJlZkI6IFJlZjxURWxlbWVudD5cbik6IFJlZjxURWxlbWVudD4ge1xuICBjb25zdCBjbGVhbnVwQSA9IHVzZVJlZjwoKCkgPT4gdm9pZCkgfCBudWxsPihudWxsKVxuICBjb25zdCBjbGVhbnVwQiA9IHVzZVJlZjwoKCkgPT4gdm9pZCkgfCBudWxsPihudWxsKVxuXG4gIC8vIE5PVEU6IEluIHRoZW9yeSwgd2UgY291bGQgc2tpcCB0aGUgd3JhcHBpbmcgaWYgb25seSBvbmUgb2YgdGhlIHJlZnMgaXMgbm9uLW51bGwuXG4gIC8vICh0aGlzIGhhcHBlbnMgb2Z0ZW4gaWYgdGhlIHVzZXIgZG9lc24ndCBwYXNzIGEgcmVmIHRvIExpbmsvRm9ybS9JbWFnZSlcbiAgLy8gQnV0IHRoaXMgY2FuIGNhdXNlIHVzIHRvIGxlYWsgYSBjbGVhbnVwLXJlZiBpbnRvIHVzZXIgY29kZSAoZS5nLiB2aWEgYDxMaW5rIGxlZ2FjeUJlaGF2aW9yPmApLFxuICAvLyBhbmQgdGhlIHVzZXIgbWlnaHQgcGFzcyB0aGF0IHJlZiBpbnRvIHJlZi1tZXJnaW5nIGxpYnJhcnkgdGhhdCBkb2Vzbid0IHN1cHBvcnQgY2xlYW51cCByZWZzXG4gIC8vIChiZWNhdXNlIGl0IGhhc24ndCBiZWVuIHVwZGF0ZWQgZm9yIFJlYWN0IDE5KVxuICAvLyB3aGljaCBjYW4gdGhlbiBjYXVzZSB0aGluZ3MgdG8gYmxvdyB1cCwgYmVjYXVzZSBhIGNsZWFudXAtcmV0dXJuaW5nIHJlZiBnZXRzIGNhbGxlZCB3aXRoIGBudWxsYC5cbiAgLy8gU28gaW4gcHJhY3RpY2UsIGl0J3Mgc2FmZXIgdG8gYmUgZGVmZW5zaXZlIGFuZCBhbHdheXMgd3JhcCB0aGUgcmVmLCBldmVuIG9uIFJlYWN0IDE5LlxuICByZXR1cm4gdXNlQ2FsbGJhY2soXG4gICAgKGN1cnJlbnQ6IFRFbGVtZW50IHwgbnVsbCk6IHZvaWQgPT4ge1xuICAgICAgaWYgKGN1cnJlbnQgPT09IG51bGwpIHtcbiAgICAgICAgY29uc3QgY2xlYW51cEZuQSA9IGNsZWFudXBBLmN1cnJlbnRcbiAgICAgICAgaWYgKGNsZWFudXBGbkEpIHtcbiAgICAgICAgICBjbGVhbnVwQS5jdXJyZW50ID0gbnVsbFxuICAgICAgICAgIGNsZWFudXBGbkEoKVxuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGNsZWFudXBGbkIgPSBjbGVhbnVwQi5jdXJyZW50XG4gICAgICAgIGlmIChjbGVhbnVwRm5CKSB7XG4gICAgICAgICAgY2xlYW51cEIuY3VycmVudCA9IG51bGxcbiAgICAgICAgICBjbGVhbnVwRm5CKClcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgaWYgKHJlZkEpIHtcbiAgICAgICAgICBjbGVhbnVwQS5jdXJyZW50ID0gYXBwbHlSZWYocmVmQSwgY3VycmVudClcbiAgICAgICAgfVxuICAgICAgICBpZiAocmVmQikge1xuICAgICAgICAgIGNsZWFudXBCLmN1cnJlbnQgPSBhcHBseVJlZihyZWZCLCBjdXJyZW50KVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBbcmVmQSwgcmVmQl1cbiAgKVxufVxuXG5mdW5jdGlvbiBhcHBseVJlZjxURWxlbWVudD4oXG4gIHJlZkE6IE5vbk51bGxhYmxlPFJlZjxURWxlbWVudD4+LFxuICBjdXJyZW50OiBURWxlbWVudFxuKSB7XG4gIGlmICh0eXBlb2YgcmVmQSA9PT0gJ2Z1bmN0aW9uJykge1xuICAgIGNvbnN0IGNsZWFudXAgPSByZWZBKGN1cnJlbnQpXG4gICAgaWYgKHR5cGVvZiBjbGVhbnVwID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICByZXR1cm4gY2xlYW51cFxuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gKCkgPT4gcmVmQShudWxsKVxuICAgIH1cbiAgfSBlbHNlIHtcbiAgICByZWZBLmN1cnJlbnQgPSBjdXJyZW50XG4gICAgcmV0dXJuICgpID0+IHtcbiAgICAgIHJlZkEuY3VycmVudCA9IG51bGxcbiAgICB9XG4gIH1cbn1cbiJdLCJuYW1lcyI6WyJ1c2VNZXJnZWRSZWYiLCJyZWZBIiwicmVmQiIsImNsZWFudXBBIiwidXNlUmVmIiwiY2xlYW51cEIiLCJ1c2VDYWxsYmFjayIsImN1cnJlbnQiLCJjbGVhbnVwRm5BIiwiY2xlYW51cEZuQiIsImFwcGx5UmVmIiwiY2xlYW51cCJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(pages-dir-browser)/./node_modules/next/dist/client/use-merged-ref.js\n")); - -/***/ }), - -/***/ "(pages-dir-browser)/./node_modules/next/dist/shared/lib/utils/error-once.js": -/*!***************************************************************!*\ - !*** ./node_modules/next/dist/shared/lib/utils/error-once.js ***! - \***************************************************************/ -/***/ ((module, exports, __webpack_require__) => { - -"use strict"; -eval(__webpack_require__.ts("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"errorOnce\", ({\n enumerable: true,\n get: function() {\n return errorOnce;\n }\n}));\nlet errorOnce = (_)=>{};\nif (true) {\n const errors = new Set();\n errorOnce = (msg)=>{\n if (!errors.has(msg)) {\n console.error(msg);\n }\n errors.add(msg);\n };\n} //# sourceMappingURL=error-once.js.map\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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3Qvc2hhcmVkL2xpYi91dGlscy9lcnJvci1vbmNlLmpzIiwibWFwcGluZ3MiOiI7Ozs7NkNBV1NBOzs7ZUFBQUE7OztBQVhULElBQUlBLFlBQVksQ0FBQ0MsS0FBZTtBQUNoQyxJQUFJQyxJQUFvQixFQUFtQjtJQUN6QyxNQUFNRyxTQUFTLElBQUlDO0lBQ25CTixZQUFZLENBQUNPO1FBQ1gsSUFBSSxDQUFDRixPQUFPRyxHQUFHLENBQUNELE1BQU07WUFDcEJFLFFBQVFDLEtBQUssQ0FBQ0g7UUFDaEI7UUFDQUYsT0FBT00sR0FBRyxDQUFDSjtJQUNiO0FBQ0YiLCJzb3VyY2VzIjpbIkQ6XFxzcmNcXHNoYXJlZFxcbGliXFx1dGlsc1xcZXJyb3Itb25jZS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJsZXQgZXJyb3JPbmNlID0gKF86IHN0cmluZykgPT4ge31cbmlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSB7XG4gIGNvbnN0IGVycm9ycyA9IG5ldyBTZXQ8c3RyaW5nPigpXG4gIGVycm9yT25jZSA9IChtc2c6IHN0cmluZykgPT4ge1xuICAgIGlmICghZXJyb3JzLmhhcyhtc2cpKSB7XG4gICAgICBjb25zb2xlLmVycm9yKG1zZylcbiAgICB9XG4gICAgZXJyb3JzLmFkZChtc2cpXG4gIH1cbn1cblxuZXhwb3J0IHsgZXJyb3JPbmNlIH1cbiJdLCJuYW1lcyI6WyJlcnJvck9uY2UiLCJfIiwicHJvY2VzcyIsImVudiIsIk5PREVfRU5WIiwiZXJyb3JzIiwiU2V0IiwibXNnIiwiaGFzIiwiY29uc29sZSIsImVycm9yIiwiYWRkIl0sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(pages-dir-browser)/./node_modules/next/dist/shared/lib/utils/error-once.js\n")); - -/***/ }), - -/***/ "(pages-dir-browser)/./node_modules/next/link.js": -/*!***********************************!*\ - !*** ./node_modules/next/link.js ***! - \***********************************/ -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { - -eval(__webpack_require__.ts("module.exports = __webpack_require__(/*! ./dist/client/link */ \"(pages-dir-browser)/./node_modules/next/dist/client/link.js\")\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9uZXh0L2xpbmsuanMiLCJtYXBwaW5ncyI6IkFBQUEsNkhBQThDIiwic291cmNlcyI6WyJEOlxcZG9uZ3l1bi1wcm9qZWN0c1xcdHdvXFxub2RlX21vZHVsZXNcXG5leHRcXGxpbmsuanMiXSwic291cmNlc0NvbnRlbnQiOlsibW9kdWxlLmV4cG9ydHMgPSByZXF1aXJlKCcuL2Rpc3QvY2xpZW50L2xpbmsnKVxuIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(pages-dir-browser)/./node_modules/next/link.js\n")); - -/***/ }), - -/***/ "(pages-dir-browser)/./pages/index.tsx": -/*!*************************!*\ - !*** ./pages/index.tsx ***! - \*************************/ -/***/ ((module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -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 */ \"(pages-dir-browser)/./node_modules/react/jsx-dev-runtime.js\");\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _components_Navbar__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../components/Navbar */ \"(pages-dir-browser)/./components/Navbar.tsx\");\n/* harmony import */ var _components_Hero__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../components/Hero */ \"(pages-dir-browser)/./components/Hero.tsx\");\n/* harmony import */ var _components_Features__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../components/Features */ \"(pages-dir-browser)/./components/Features.tsx\");\n/* harmony import */ var _components_Testimonials__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../components/Testimonials */ \"(pages-dir-browser)/./components/Testimonials.tsx\");\n/* harmony import */ var _components_Cta__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../components/Cta */ \"(pages-dir-browser)/./components/Cta.tsx\");\n/* harmony import */ var _components_Footer__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../components/Footer */ \"(pages-dir-browser)/./components/Footer.tsx\");\n/* harmony import */ var _components_Process__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../components/Process */ \"(pages-dir-browser)/./components/Process.tsx\");\n/* harmony import */ var _components_CoreAdvantages__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../components/CoreAdvantages */ \"(pages-dir-browser)/./components/CoreAdvantages.tsx\");\n\n\n\n\n\n\n\n\n\nfunction Home() {\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"pt-16 pb-8 bg-background\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_Navbar__WEBPACK_IMPORTED_MODULE_1__[\"default\"], {}, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\pages\\\\index.tsx\",\n lineNumber: 13,\n columnNumber: 7\n }, this),\n /*#__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)(_components_Hero__WEBPACK_IMPORTED_MODULE_2__[\"default\"], {}, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\pages\\\\index.tsx\",\n lineNumber: 15,\n columnNumber: 9\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_Features__WEBPACK_IMPORTED_MODULE_3__[\"default\"], {}, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\pages\\\\index.tsx\",\n lineNumber: 16,\n columnNumber: 9\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_Process__WEBPACK_IMPORTED_MODULE_7__[\"default\"], {}, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\pages\\\\index.tsx\",\n lineNumber: 17,\n columnNumber: 10\n }, this),\n \"+ \",\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_CoreAdvantages__WEBPACK_IMPORTED_MODULE_8__[\"default\"], {}, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\pages\\\\index.tsx\",\n lineNumber: 18,\n columnNumber: 9\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_Testimonials__WEBPACK_IMPORTED_MODULE_4__[\"default\"], {}, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\pages\\\\index.tsx\",\n lineNumber: 19,\n columnNumber: 9\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_Cta__WEBPACK_IMPORTED_MODULE_5__[\"default\"], {}, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\pages\\\\index.tsx\",\n lineNumber: 20,\n columnNumber: 9\n }, this)\n ]\n }, void 0, true, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\pages\\\\index.tsx\",\n lineNumber: 14,\n columnNumber: 7\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_Footer__WEBPACK_IMPORTED_MODULE_6__[\"default\"], {}, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\pages\\\\index.tsx\",\n lineNumber: 22,\n columnNumber: 7\n }, this)\n ]\n }, void 0, true, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\pages\\\\index.tsx\",\n lineNumber: 12,\n columnNumber: 5\n }, this);\n}\n_c = Home;\nvar _c;\n$RefreshReg$(_c, \"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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1icm93c2VyKS8uL3BhZ2VzL2luZGV4LnRzeCIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7QUFBMEM7QUFDSjtBQUNRO0FBQ1E7QUFDbEI7QUFDTTtBQUNFO0FBQ2M7QUFFM0MsU0FBU1E7SUFDdEIscUJBQ0UsOERBQUNDO1FBQUlDLFdBQVU7OzBCQUNiLDhEQUFDViwwREFBTUE7Ozs7OzBCQUNQLDhEQUFDVzs7a0NBQ0MsOERBQUNWLHdEQUFJQTs7Ozs7a0NBQ0wsOERBQUNDLDREQUFRQTs7Ozs7a0NBQ1IsOERBQUNJLDJEQUFPQTs7Ozs7b0JBQUc7a0NBQ1osOERBQUNDLGtFQUFjQTs7Ozs7a0NBQ2YsOERBQUNKLGdFQUFZQTs7Ozs7a0NBQ2IsOERBQUNDLHVEQUFHQTs7Ozs7Ozs7Ozs7MEJBRU4sOERBQUNDLDBEQUFNQTs7Ozs7Ozs7Ozs7QUFHYjtLQWZ3QkciLCJzb3VyY2VzIjpbIkQ6XFxkb25neXVuLXByb2plY3RzXFx0d29cXHBhZ2VzXFxpbmRleC50c3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IE5hdmJhciBmcm9tICcuLi9jb21wb25lbnRzL05hdmJhcic7XHJcbmltcG9ydCBIZXJvIGZyb20gJy4uL2NvbXBvbmVudHMvSGVybyc7XHJcbmltcG9ydCBGZWF0dXJlcyBmcm9tICcuLi9jb21wb25lbnRzL0ZlYXR1cmVzJztcclxuaW1wb3J0IFRlc3RpbW9uaWFscyBmcm9tICcuLi9jb21wb25lbnRzL1Rlc3RpbW9uaWFscyc7XHJcbmltcG9ydCBDdGEgZnJvbSAnLi4vY29tcG9uZW50cy9DdGEnO1xyXG5pbXBvcnQgRm9vdGVyIGZyb20gJy4uL2NvbXBvbmVudHMvRm9vdGVyJztcclxuaW1wb3J0IFByb2Nlc3MgZnJvbSAnLi4vY29tcG9uZW50cy9Qcm9jZXNzJztcclxuaW1wb3J0IENvcmVBZHZhbnRhZ2VzIGZyb20gJy4uL2NvbXBvbmVudHMvQ29yZUFkdmFudGFnZXMnO1xyXG5cclxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gSG9tZSgpIHtcclxuICByZXR1cm4gKFxyXG4gICAgPGRpdiBjbGFzc05hbWU9XCJwdC0xNiBwYi04IGJnLWJhY2tncm91bmRcIj5cclxuICAgICAgPE5hdmJhciAvPlxyXG4gICAgICA8bWFpbj5cclxuICAgICAgICA8SGVybyAvPlxyXG4gICAgICAgIDxGZWF0dXJlcyAvPlxyXG4gICAgICAgICA8UHJvY2VzcyAvPlxyXG4rICAgICAgIDxDb3JlQWR2YW50YWdlcyAvPlxyXG4gICAgICAgIDxUZXN0aW1vbmlhbHMgLz5cclxuICAgICAgICA8Q3RhIC8+XHJcbiAgICAgIDwvbWFpbj5cclxuICAgICAgPEZvb3RlciAvPlxyXG4gICAgPC9kaXY+XHJcbiAgKTtcclxufSJdLCJuYW1lcyI6WyJOYXZiYXIiLCJIZXJvIiwiRmVhdHVyZXMiLCJUZXN0aW1vbmlhbHMiLCJDdGEiLCJGb290ZXIiLCJQcm9jZXNzIiwiQ29yZUFkdmFudGFnZXMiLCJIb21lIiwiZGl2IiwiY2xhc3NOYW1lIiwibWFpbiJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(pages-dir-browser)/./pages/index.tsx\n")); - -/***/ }), - -/***/ "(pages-dir-browser)/__barrel_optimize__?names=ArrowRight,MessageCircle,Play,Zap!=!./node_modules/lucide-react/dist/esm/lucide-react.js": -/*!**************************************************************************************************************************!*\ - !*** __barrel_optimize__?names=ArrowRight,MessageCircle,Play,Zap!=!./node_modules/lucide-react/dist/esm/lucide-react.js ***! - \**************************************************************************************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ ArrowRight: () => (/* reexport safe */ _icons_arrow_right_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"]),\n/* harmony export */ MessageCircle: () => (/* reexport safe */ _icons_message_circle_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"]),\n/* harmony export */ Play: () => (/* reexport safe */ _icons_play_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"]),\n/* harmony export */ Zap: () => (/* reexport safe */ _icons_zap_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"])\n/* harmony export */ });\n/* harmony import */ var _icons_arrow_right_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./icons/arrow-right.js */ \"(pages-dir-browser)/./node_modules/lucide-react/dist/esm/icons/arrow-right.js\");\n/* harmony import */ var _icons_message_circle_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./icons/message-circle.js */ \"(pages-dir-browser)/./node_modules/lucide-react/dist/esm/icons/message-circle.js\");\n/* harmony import */ var _icons_play_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./icons/play.js */ \"(pages-dir-browser)/./node_modules/lucide-react/dist/esm/icons/play.js\");\n/* harmony import */ var _icons_zap_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./icons/zap.js */ \"(pages-dir-browser)/./node_modules/lucide-react/dist/esm/icons/zap.js\");\n\n\n\n\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1icm93c2VyKS9fX2JhcnJlbF9vcHRpbWl6ZV9fP25hbWVzPUFycm93UmlnaHQsTWVzc2FnZUNpcmNsZSxQbGF5LFphcCE9IS4vbm9kZV9tb2R1bGVzL2x1Y2lkZS1yZWFjdC9kaXN0L2VzbS9sdWNpZGUtcmVhY3QuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7O0FBQzhEO0FBQ007QUFDbkIiLCJzb3VyY2VzIjpbIkQ6XFxkb25neXVuLXByb2plY3RzXFx0d29cXG5vZGVfbW9kdWxlc1xcbHVjaWRlLXJlYWN0XFxkaXN0XFxlc21cXGx1Y2lkZS1yZWFjdC5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcbmV4cG9ydCB7IGRlZmF1bHQgYXMgQXJyb3dSaWdodCB9IGZyb20gXCIuL2ljb25zL2Fycm93LXJpZ2h0LmpzXCJcbmV4cG9ydCB7IGRlZmF1bHQgYXMgTWVzc2FnZUNpcmNsZSB9IGZyb20gXCIuL2ljb25zL21lc3NhZ2UtY2lyY2xlLmpzXCJcbmV4cG9ydCB7IGRlZmF1bHQgYXMgUGxheSB9IGZyb20gXCIuL2ljb25zL3BsYXkuanNcIlxuZXhwb3J0IHsgZGVmYXVsdCBhcyBaYXAgfSBmcm9tIFwiLi9pY29ucy96YXAuanNcIiJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(pages-dir-browser)/__barrel_optimize__?names=ArrowRight,MessageCircle,Play,Zap!=!./node_modules/lucide-react/dist/esm/lucide-react.js\n")); - -/***/ }), - -/***/ "(pages-dir-browser)/__barrel_optimize__?names=BarChart,CheckCircle,Clock,Globe,Repeat,Shield,Users,Zap!=!./node_modules/lucide-react/dist/esm/lucide-react.js": -/*!*************************************************************************************************************************************************!*\ - !*** __barrel_optimize__?names=BarChart,CheckCircle,Clock,Globe,Repeat,Shield,Users,Zap!=!./node_modules/lucide-react/dist/esm/lucide-react.js ***! - \*************************************************************************************************************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ BarChart: () => (/* reexport safe */ _icons_chart_no_axes_column_increasing_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"]),\n/* harmony export */ CheckCircle: () => (/* reexport safe */ _icons_circle_check_big_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"]),\n/* harmony export */ Clock: () => (/* reexport safe */ _icons_clock_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"]),\n/* harmony export */ Globe: () => (/* reexport safe */ _icons_globe_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"]),\n/* harmony export */ Repeat: () => (/* reexport safe */ _icons_repeat_js__WEBPACK_IMPORTED_MODULE_4__[\"default\"]),\n/* harmony export */ Shield: () => (/* reexport safe */ _icons_shield_js__WEBPACK_IMPORTED_MODULE_5__[\"default\"]),\n/* harmony export */ Users: () => (/* reexport safe */ _icons_users_js__WEBPACK_IMPORTED_MODULE_6__[\"default\"]),\n/* harmony export */ Zap: () => (/* reexport safe */ _icons_zap_js__WEBPACK_IMPORTED_MODULE_7__[\"default\"])\n/* harmony export */ });\n/* harmony import */ var _icons_chart_no_axes_column_increasing_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./icons/chart-no-axes-column-increasing.js */ \"(pages-dir-browser)/./node_modules/lucide-react/dist/esm/icons/chart-no-axes-column-increasing.js\");\n/* harmony import */ var _icons_circle_check_big_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./icons/circle-check-big.js */ \"(pages-dir-browser)/./node_modules/lucide-react/dist/esm/icons/circle-check-big.js\");\n/* harmony import */ var _icons_clock_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./icons/clock.js */ \"(pages-dir-browser)/./node_modules/lucide-react/dist/esm/icons/clock.js\");\n/* harmony import */ var _icons_globe_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./icons/globe.js */ \"(pages-dir-browser)/./node_modules/lucide-react/dist/esm/icons/globe.js\");\n/* harmony import */ var _icons_repeat_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./icons/repeat.js */ \"(pages-dir-browser)/./node_modules/lucide-react/dist/esm/icons/repeat.js\");\n/* harmony import */ var _icons_shield_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./icons/shield.js */ \"(pages-dir-browser)/./node_modules/lucide-react/dist/esm/icons/shield.js\");\n/* harmony import */ var _icons_users_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./icons/users.js */ \"(pages-dir-browser)/./node_modules/lucide-react/dist/esm/icons/users.js\");\n/* harmony import */ var _icons_zap_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./icons/zap.js */ \"(pages-dir-browser)/./node_modules/lucide-react/dist/esm/icons/zap.js\");\n\n\n\n\n\n\n\n\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1icm93c2VyKS9fX2JhcnJlbF9vcHRpbWl6ZV9fP25hbWVzPUJhckNoYXJ0LENoZWNrQ2lyY2xlLENsb2NrLEdsb2JlLFJlcGVhdCxTaGllbGQsVXNlcnMsWmFwIT0hLi9ub2RlX21vZHVsZXMvbHVjaWRlLXJlYWN0L2Rpc3QvZXNtL2x1Y2lkZS1yZWFjdC5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUNnRjtBQUNaO0FBQ2pCO0FBQ0E7QUFDRTtBQUNBO0FBQ0YiLCJzb3VyY2VzIjpbIkQ6XFxkb25neXVuLXByb2plY3RzXFx0d29cXG5vZGVfbW9kdWxlc1xcbHVjaWRlLXJlYWN0XFxkaXN0XFxlc21cXGx1Y2lkZS1yZWFjdC5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcbmV4cG9ydCB7IGRlZmF1bHQgYXMgQmFyQ2hhcnQgfSBmcm9tIFwiLi9pY29ucy9jaGFydC1uby1heGVzLWNvbHVtbi1pbmNyZWFzaW5nLmpzXCJcbmV4cG9ydCB7IGRlZmF1bHQgYXMgQ2hlY2tDaXJjbGUgfSBmcm9tIFwiLi9pY29ucy9jaXJjbGUtY2hlY2stYmlnLmpzXCJcbmV4cG9ydCB7IGRlZmF1bHQgYXMgQ2xvY2sgfSBmcm9tIFwiLi9pY29ucy9jbG9jay5qc1wiXG5leHBvcnQgeyBkZWZhdWx0IGFzIEdsb2JlIH0gZnJvbSBcIi4vaWNvbnMvZ2xvYmUuanNcIlxuZXhwb3J0IHsgZGVmYXVsdCBhcyBSZXBlYXQgfSBmcm9tIFwiLi9pY29ucy9yZXBlYXQuanNcIlxuZXhwb3J0IHsgZGVmYXVsdCBhcyBTaGllbGQgfSBmcm9tIFwiLi9pY29ucy9zaGllbGQuanNcIlxuZXhwb3J0IHsgZGVmYXVsdCBhcyBVc2VycyB9IGZyb20gXCIuL2ljb25zL3VzZXJzLmpzXCJcbmV4cG9ydCB7IGRlZmF1bHQgYXMgWmFwIH0gZnJvbSBcIi4vaWNvbnMvemFwLmpzXCIiXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(pages-dir-browser)/__barrel_optimize__?names=BarChart,CheckCircle,Clock,Globe,Repeat,Shield,Users,Zap!=!./node_modules/lucide-react/dist/esm/lucide-react.js\n")); - -/***/ }), - -/***/ "(pages-dir-browser)/__barrel_optimize__?names=Box,Globe,Headphones,ShieldCheck,UserCheck!=!./node_modules/lucide-react/dist/esm/lucide-react.js": -/*!***********************************************************************************************************************************!*\ - !*** __barrel_optimize__?names=Box,Globe,Headphones,ShieldCheck,UserCheck!=!./node_modules/lucide-react/dist/esm/lucide-react.js ***! - \***********************************************************************************************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ Box: () => (/* reexport safe */ _icons_box_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"]),\n/* harmony export */ Globe: () => (/* reexport safe */ _icons_globe_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"]),\n/* harmony export */ Headphones: () => (/* reexport safe */ _icons_headphones_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"]),\n/* harmony export */ ShieldCheck: () => (/* reexport safe */ _icons_shield_check_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"]),\n/* harmony export */ UserCheck: () => (/* reexport safe */ _icons_user_check_js__WEBPACK_IMPORTED_MODULE_4__[\"default\"])\n/* harmony export */ });\n/* harmony import */ var _icons_box_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./icons/box.js */ \"(pages-dir-browser)/./node_modules/lucide-react/dist/esm/icons/box.js\");\n/* harmony import */ var _icons_globe_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./icons/globe.js */ \"(pages-dir-browser)/./node_modules/lucide-react/dist/esm/icons/globe.js\");\n/* harmony import */ var _icons_headphones_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./icons/headphones.js */ \"(pages-dir-browser)/./node_modules/lucide-react/dist/esm/icons/headphones.js\");\n/* harmony import */ var _icons_shield_check_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./icons/shield-check.js */ \"(pages-dir-browser)/./node_modules/lucide-react/dist/esm/icons/shield-check.js\");\n/* harmony import */ var _icons_user_check_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./icons/user-check.js */ \"(pages-dir-browser)/./node_modules/lucide-react/dist/esm/icons/user-check.js\");\n\n\n\n\n\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1icm93c2VyKS9fX2JhcnJlbF9vcHRpbWl6ZV9fP25hbWVzPUJveCxHbG9iZSxIZWFkcGhvbmVzLFNoaWVsZENoZWNrLFVzZXJDaGVjayE9IS4vbm9kZV9tb2R1bGVzL2x1Y2lkZS1yZWFjdC9kaXN0L2VzbS9sdWNpZGUtcmVhY3QuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7QUFDK0M7QUFDSTtBQUNVO0FBQ0ciLCJzb3VyY2VzIjpbIkQ6XFxkb25neXVuLXByb2plY3RzXFx0d29cXG5vZGVfbW9kdWxlc1xcbHVjaWRlLXJlYWN0XFxkaXN0XFxlc21cXGx1Y2lkZS1yZWFjdC5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcbmV4cG9ydCB7IGRlZmF1bHQgYXMgQm94IH0gZnJvbSBcIi4vaWNvbnMvYm94LmpzXCJcbmV4cG9ydCB7IGRlZmF1bHQgYXMgR2xvYmUgfSBmcm9tIFwiLi9pY29ucy9nbG9iZS5qc1wiXG5leHBvcnQgeyBkZWZhdWx0IGFzIEhlYWRwaG9uZXMgfSBmcm9tIFwiLi9pY29ucy9oZWFkcGhvbmVzLmpzXCJcbmV4cG9ydCB7IGRlZmF1bHQgYXMgU2hpZWxkQ2hlY2sgfSBmcm9tIFwiLi9pY29ucy9zaGllbGQtY2hlY2suanNcIlxuZXhwb3J0IHsgZGVmYXVsdCBhcyBVc2VyQ2hlY2sgfSBmcm9tIFwiLi9pY29ucy91c2VyLWNoZWNrLmpzXCIiXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(pages-dir-browser)/__barrel_optimize__?names=Box,Globe,Headphones,ShieldCheck,UserCheck!=!./node_modules/lucide-react/dist/esm/lucide-react.js\n")); - -/***/ }), - -/***/ "(pages-dir-browser)/__barrel_optimize__?names=CheckCircle,Headphones,MessageSquare,UserCheck!=!./node_modules/lucide-react/dist/esm/lucide-react.js": -/*!***************************************************************************************************************************************!*\ - !*** __barrel_optimize__?names=CheckCircle,Headphones,MessageSquare,UserCheck!=!./node_modules/lucide-react/dist/esm/lucide-react.js ***! - \***************************************************************************************************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ CheckCircle: () => (/* reexport safe */ _icons_circle_check_big_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"]),\n/* harmony export */ Headphones: () => (/* reexport safe */ _icons_headphones_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"]),\n/* harmony export */ MessageSquare: () => (/* reexport safe */ _icons_message_square_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"]),\n/* harmony export */ UserCheck: () => (/* reexport safe */ _icons_user_check_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"])\n/* harmony export */ });\n/* harmony import */ var _icons_circle_check_big_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./icons/circle-check-big.js */ \"(pages-dir-browser)/./node_modules/lucide-react/dist/esm/icons/circle-check-big.js\");\n/* harmony import */ var _icons_headphones_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./icons/headphones.js */ \"(pages-dir-browser)/./node_modules/lucide-react/dist/esm/icons/headphones.js\");\n/* harmony import */ var _icons_message_square_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./icons/message-square.js */ \"(pages-dir-browser)/./node_modules/lucide-react/dist/esm/icons/message-square.js\");\n/* harmony import */ var _icons_user_check_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./icons/user-check.js */ \"(pages-dir-browser)/./node_modules/lucide-react/dist/esm/icons/user-check.js\");\n\n\n\n\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1icm93c2VyKS9fX2JhcnJlbF9vcHRpbWl6ZV9fP25hbWVzPUNoZWNrQ2lyY2xlLEhlYWRwaG9uZXMsTWVzc2FnZVNxdWFyZSxVc2VyQ2hlY2shPSEuL25vZGVfbW9kdWxlcy9sdWNpZGUtcmVhY3QvZGlzdC9lc20vbHVjaWRlLXJlYWN0LmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7OztBQUNvRTtBQUNQO0FBQ08iLCJzb3VyY2VzIjpbIkQ6XFxkb25neXVuLXByb2plY3RzXFx0d29cXG5vZGVfbW9kdWxlc1xcbHVjaWRlLXJlYWN0XFxkaXN0XFxlc21cXGx1Y2lkZS1yZWFjdC5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcbmV4cG9ydCB7IGRlZmF1bHQgYXMgQ2hlY2tDaXJjbGUgfSBmcm9tIFwiLi9pY29ucy9jaXJjbGUtY2hlY2stYmlnLmpzXCJcbmV4cG9ydCB7IGRlZmF1bHQgYXMgSGVhZHBob25lcyB9IGZyb20gXCIuL2ljb25zL2hlYWRwaG9uZXMuanNcIlxuZXhwb3J0IHsgZGVmYXVsdCBhcyBNZXNzYWdlU3F1YXJlIH0gZnJvbSBcIi4vaWNvbnMvbWVzc2FnZS1zcXVhcmUuanNcIlxuZXhwb3J0IHsgZGVmYXVsdCBhcyBVc2VyQ2hlY2sgfSBmcm9tIFwiLi9pY29ucy91c2VyLWNoZWNrLmpzXCIiXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(pages-dir-browser)/__barrel_optimize__?names=CheckCircle,Headphones,MessageSquare,UserCheck!=!./node_modules/lucide-react/dist/esm/lucide-react.js\n")); - -/***/ }), - -/***/ "(pages-dir-browser)/__barrel_optimize__?names=Mail,MessageCircle,Phone!=!./node_modules/lucide-react/dist/esm/lucide-react.js": -/*!*****************************************************************************************************************!*\ - !*** __barrel_optimize__?names=Mail,MessageCircle,Phone!=!./node_modules/lucide-react/dist/esm/lucide-react.js ***! - \*****************************************************************************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ Mail: () => (/* reexport safe */ _icons_mail_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"]),\n/* harmony export */ MessageCircle: () => (/* reexport safe */ _icons_message_circle_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"]),\n/* harmony export */ Phone: () => (/* reexport safe */ _icons_phone_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])\n/* harmony export */ });\n/* harmony import */ var _icons_mail_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./icons/mail.js */ \"(pages-dir-browser)/./node_modules/lucide-react/dist/esm/icons/mail.js\");\n/* harmony import */ var _icons_message_circle_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./icons/message-circle.js */ \"(pages-dir-browser)/./node_modules/lucide-react/dist/esm/icons/message-circle.js\");\n/* harmony import */ var _icons_phone_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./icons/phone.js */ \"(pages-dir-browser)/./node_modules/lucide-react/dist/esm/icons/phone.js\");\n\n\n\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1icm93c2VyKS9fX2JhcnJlbF9vcHRpbWl6ZV9fP25hbWVzPU1haWwsTWVzc2FnZUNpcmNsZSxQaG9uZSE9IS4vbm9kZV9tb2R1bGVzL2x1Y2lkZS1yZWFjdC9kaXN0L2VzbS9sdWNpZGUtcmVhY3QuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7OztBQUNpRDtBQUNtQiIsInNvdXJjZXMiOlsiRDpcXGRvbmd5dW4tcHJvamVjdHNcXHR3b1xcbm9kZV9tb2R1bGVzXFxsdWNpZGUtcmVhY3RcXGRpc3RcXGVzbVxcbHVjaWRlLXJlYWN0LmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlxuZXhwb3J0IHsgZGVmYXVsdCBhcyBNYWlsIH0gZnJvbSBcIi4vaWNvbnMvbWFpbC5qc1wiXG5leHBvcnQgeyBkZWZhdWx0IGFzIE1lc3NhZ2VDaXJjbGUgfSBmcm9tIFwiLi9pY29ucy9tZXNzYWdlLWNpcmNsZS5qc1wiXG5leHBvcnQgeyBkZWZhdWx0IGFzIFBob25lIH0gZnJvbSBcIi4vaWNvbnMvcGhvbmUuanNcIiJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(pages-dir-browser)/__barrel_optimize__?names=Mail,MessageCircle,Phone!=!./node_modules/lucide-react/dist/esm/lucide-react.js\n")); - -/***/ }), - -/***/ "(pages-dir-browser)/__barrel_optimize__?names=Menu!=!./node_modules/lucide-react/dist/esm/lucide-react.js": -/*!*********************************************************************************************!*\ - !*** __barrel_optimize__?names=Menu!=!./node_modules/lucide-react/dist/esm/lucide-react.js ***! - \*********************************************************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ Menu: () => (/* reexport safe */ _icons_menu_js__WEBPACK_IMPORTED_MODULE_0__["default"]) -/* harmony export */ }); -/* harmony import */ var _icons_menu_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./icons/menu.js */ "(pages-dir-browser)/./node_modules/lucide-react/dist/esm/icons/menu.js"); - - - -/***/ }) - -}, -/******/ __webpack_require__ => { // webpackRuntimeModules -/******/ var __webpack_exec__ = (moduleId) => (__webpack_require__(__webpack_require__.s = moduleId)) -/******/ __webpack_require__.O(0, ["pages/_app","main"], () => (__webpack_exec__("(pages-dir-browser)/./node_modules/next/dist/build/webpack/loaders/next-client-pages-loader.js?absolutePagePath=D%3A%5Cdongyun-projects%5Ctwo%5Cpages%5Cindex.tsx&page=%2F!"))); -/******/ var __webpack_exports__ = __webpack_require__.O(); -/******/ _N_E = __webpack_exports__; -/******/ } -]); \ No newline at end of file diff --git a/build/static/chunks/pages/news.js b/build/static/chunks/pages/news.js deleted file mode 100644 index e0de25b..0000000 --- a/build/static/chunks/pages/news.js +++ /dev/null @@ -1,374 +0,0 @@ -/* - * ATTENTION: An "eval-source-map" devtool has been used. - * This devtool is neither made for production nor for readable output files. - * It uses "eval()" calls to create a separate source file with attached SourceMaps in the browser devtools. - * If you are trying to read the output file, select a different devtool (https://webpack.js.org/configuration/devtool/) - * or disable the default devtool with "devtool: false". - * If you are looking for production-ready output files, see mode: "production" (https://webpack.js.org/configuration/mode/). - */ -(self["webpackChunk_N_E"] = self["webpackChunk_N_E"] || []).push([["pages/news"],{ - -/***/ "(pages-dir-browser)/./components/Footer.tsx": -/*!*******************************!*\ - !*** ./components/Footer.tsx ***! - \*******************************/ -/***/ ((module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ Footer)\n/* harmony export */ });\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react/jsx-dev-runtime */ \"(pages-dir-browser)/./node_modules/react/jsx-dev-runtime.js\");\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _barrel_optimize_names_Mail_MessageCircle_Phone_lucide_react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! __barrel_optimize__?names=Mail,MessageCircle,Phone!=!lucide-react */ \"(pages-dir-browser)/__barrel_optimize__?names=Mail,MessageCircle,Phone!=!./node_modules/lucide-react/dist/esm/lucide-react.js\");\n\n\nfunction Footer() {\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"footer\", {\n className: \"bg-gray-900 text-white py-12\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"max-w-screen-xl mx-auto px-6\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"grid grid-cols-1 md:grid-cols-4 gap-8\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"md:col-span-2\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"h3\", {\n className: \"text-2xl font-bold mb-4\",\n children: \"Pinnovate Cloud\"\n }, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\Footer.tsx\",\n lineNumber: 10,\n columnNumber: 13\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"p\", {\n className: \"text-gray-300 mb-6 max-w-md\",\n children: \"专业的云加速服务提供商,为全球企业提供高性能、安全可靠的网络加速解决方案。\"\n }, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\Footer.tsx\",\n lineNumber: 11,\n columnNumber: 13\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"space-y-3\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex items-center gap-3\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_barrel_optimize_names_Mail_MessageCircle_Phone_lucide_react__WEBPACK_IMPORTED_MODULE_1__.Mail, {\n className: \"w-5 h-5 text-accent\"\n }, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\Footer.tsx\",\n lineNumber: 16,\n columnNumber: 17\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"a\", {\n href: \"mailto:support@pinnovatecloud.com\",\n className: \"text-gray-300 hover:text-white transition-colors\",\n children: \"support@pinnovatecloud.com\"\n }, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\Footer.tsx\",\n lineNumber: 17,\n columnNumber: 17\n }, this)\n ]\n }, void 0, true, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\Footer.tsx\",\n lineNumber: 15,\n columnNumber: 15\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex items-center gap-3\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_barrel_optimize_names_Mail_MessageCircle_Phone_lucide_react__WEBPACK_IMPORTED_MODULE_1__.Phone, {\n className: \"w-5 h-5 text-accent\"\n }, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\Footer.tsx\",\n lineNumber: 22,\n columnNumber: 17\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"a\", {\n href: \"https://wa.me/19174029875\",\n className: \"text-gray-300 hover:text-white transition-colors\",\n children: \"+1 917-402-9875\"\n }, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\Footer.tsx\",\n lineNumber: 23,\n columnNumber: 17\n }, this)\n ]\n }, void 0, true, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\Footer.tsx\",\n lineNumber: 21,\n columnNumber: 15\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex items-center gap-3\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_barrel_optimize_names_Mail_MessageCircle_Phone_lucide_react__WEBPACK_IMPORTED_MODULE_1__.MessageCircle, {\n className: \"w-5 h-5 text-accent\"\n }, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\Footer.tsx\",\n lineNumber: 28,\n columnNumber: 17\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"a\", {\n href: \"https://t.me/pinnovatecloud\",\n className: \"text-gray-300 hover:text-white transition-colors\",\n children: \"@pinnovatecloud\"\n }, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\Footer.tsx\",\n lineNumber: 29,\n columnNumber: 17\n }, this)\n ]\n }, void 0, true, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\Footer.tsx\",\n lineNumber: 27,\n columnNumber: 15\n }, this)\n ]\n }, void 0, true, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\Footer.tsx\",\n lineNumber: 14,\n columnNumber: 13\n }, this)\n ]\n }, void 0, true, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\Footer.tsx\",\n lineNumber: 9,\n columnNumber: 11\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)(\"h4\", {\n className: \"text-lg font-semibold mb-4\",\n children: \"服务\"\n }, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\Footer.tsx\",\n lineNumber: 38,\n columnNumber: 13\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"ul\", {\n className: \"space-y-2\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"li\", {\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"a\", {\n href: \"/features\",\n className: \"text-gray-300 hover:text-white transition-colors\",\n children: \"产品特性\"\n }, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\Footer.tsx\",\n lineNumber: 40,\n columnNumber: 19\n }, this)\n }, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\Footer.tsx\",\n lineNumber: 40,\n columnNumber: 15\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"li\", {\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"a\", {\n href: \"/pricing\",\n className: \"text-gray-300 hover:text-white transition-colors\",\n children: \"定价方案\"\n }, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\Footer.tsx\",\n lineNumber: 41,\n columnNumber: 19\n }, this)\n }, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\Footer.tsx\",\n lineNumber: 41,\n columnNumber: 15\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"li\", {\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"a\", {\n href: \"/cases\",\n className: \"text-gray-300 hover:text-white transition-colors\",\n children: \"客户案例\"\n }, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\Footer.tsx\",\n lineNumber: 42,\n columnNumber: 19\n }, this)\n }, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\Footer.tsx\",\n lineNumber: 42,\n columnNumber: 15\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"li\", {\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"a\", {\n href: \"/news\",\n className: \"text-gray-300 hover:text-white transition-colors\",\n children: \"新闻资讯\"\n }, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\Footer.tsx\",\n lineNumber: 43,\n columnNumber: 19\n }, this)\n }, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\Footer.tsx\",\n lineNumber: 43,\n columnNumber: 15\n }, this)\n ]\n }, void 0, true, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\Footer.tsx\",\n lineNumber: 39,\n columnNumber: 13\n }, this)\n ]\n }, void 0, true, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\Footer.tsx\",\n lineNumber: 37,\n columnNumber: 11\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)(\"h4\", {\n className: \"text-lg font-semibold mb-4\",\n children: \"支持\"\n }, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\Footer.tsx\",\n lineNumber: 49,\n columnNumber: 13\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"ul\", {\n className: \"space-y-2\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"li\", {\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"a\", {\n href: \"/contact\",\n className: \"text-gray-300 hover:text-white transition-colors\",\n children: \"联系我们\"\n }, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\Footer.tsx\",\n lineNumber: 51,\n columnNumber: 19\n }, this)\n }, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\Footer.tsx\",\n lineNumber: 51,\n columnNumber: 15\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"li\", {\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"a\", {\n href: \"/about\",\n className: \"text-gray-300 hover:text-white transition-colors\",\n children: \"关于我们\"\n }, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\Footer.tsx\",\n lineNumber: 52,\n columnNumber: 19\n }, this)\n }, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\Footer.tsx\",\n lineNumber: 52,\n columnNumber: 15\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"li\", {\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"a\", {\n href: \"#\",\n className: \"text-gray-300 hover:text-white transition-colors\",\n children: \"帮助中心\"\n }, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\Footer.tsx\",\n lineNumber: 53,\n columnNumber: 19\n }, this)\n }, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\Footer.tsx\",\n lineNumber: 53,\n columnNumber: 15\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"li\", {\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"a\", {\n href: \"#\",\n className: \"text-gray-300 hover:text-white transition-colors\",\n children: \"API 文档\"\n }, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\Footer.tsx\",\n lineNumber: 54,\n columnNumber: 19\n }, this)\n }, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\Footer.tsx\",\n lineNumber: 54,\n columnNumber: 15\n }, this)\n ]\n }, void 0, true, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\Footer.tsx\",\n lineNumber: 50,\n columnNumber: 13\n }, this)\n ]\n }, void 0, true, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\Footer.tsx\",\n lineNumber: 48,\n columnNumber: 11\n }, this)\n ]\n }, void 0, true, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\Footer.tsx\",\n lineNumber: 7,\n columnNumber: 9\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"border-t border-gray-700 mt-8 pt-8 flex flex-col md:flex-row justify-between items-center\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"p\", {\n className: \"text-gray-400 text-sm\",\n children: \"\\xa9 2025 Pinnovate Cloud. 保留所有权利。\"\n }, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\Footer.tsx\",\n lineNumber: 60,\n columnNumber: 11\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex space-x-6 mt-4 md:mt-0\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"a\", {\n href: \"https://t.me/pinnovatecloud\",\n className: \"text-gray-400 hover:text-white transition-colors\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_barrel_optimize_names_Mail_MessageCircle_Phone_lucide_react__WEBPACK_IMPORTED_MODULE_1__.MessageCircle, {\n className: \"w-5 h-5\"\n }, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\Footer.tsx\",\n lineNumber: 65,\n columnNumber: 15\n }, this)\n }, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\Footer.tsx\",\n lineNumber: 64,\n columnNumber: 13\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"a\", {\n href: \"https://wa.me/19174029875\",\n className: \"text-gray-400 hover:text-white transition-colors\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_barrel_optimize_names_Mail_MessageCircle_Phone_lucide_react__WEBPACK_IMPORTED_MODULE_1__.Phone, {\n className: \"w-5 h-5\"\n }, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\Footer.tsx\",\n lineNumber: 68,\n columnNumber: 15\n }, this)\n }, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\Footer.tsx\",\n lineNumber: 67,\n columnNumber: 13\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"a\", {\n href: \"mailto:support@pinnovatecloud.com\",\n className: \"text-gray-400 hover:text-white transition-colors\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_barrel_optimize_names_Mail_MessageCircle_Phone_lucide_react__WEBPACK_IMPORTED_MODULE_1__.Mail, {\n className: \"w-5 h-5\"\n }, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\Footer.tsx\",\n lineNumber: 71,\n columnNumber: 15\n }, this)\n }, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\Footer.tsx\",\n lineNumber: 70,\n columnNumber: 13\n }, this)\n ]\n }, void 0, true, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\Footer.tsx\",\n lineNumber: 63,\n columnNumber: 11\n }, this)\n ]\n }, void 0, true, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\Footer.tsx\",\n lineNumber: 59,\n columnNumber: 9\n }, this)\n ]\n }, void 0, true, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\Footer.tsx\",\n lineNumber: 6,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\Footer.tsx\",\n lineNumber: 5,\n columnNumber: 5\n }, this);\n}\n_c = Footer;\nvar _c;\n$RefreshReg$(_c, \"Footer\");\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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1icm93c2VyKS8uL2NvbXBvbmVudHMvRm9vdGVyLnRzeCIsIm1hcHBpbmdzIjoiOzs7Ozs7OztBQUEwRDtBQUUzQyxTQUFTRztJQUN0QixxQkFDRSw4REFBQ0M7UUFBT0MsV0FBVTtrQkFDaEIsNEVBQUNDO1lBQUlELFdBQVU7OzhCQUNiLDhEQUFDQztvQkFBSUQsV0FBVTs7c0NBRWIsOERBQUNDOzRCQUFJRCxXQUFVOzs4Q0FDYiw4REFBQ0U7b0NBQUdGLFdBQVU7OENBQTBCOzs7Ozs7OENBQ3hDLDhEQUFDRztvQ0FBRUgsV0FBVTs4Q0FBOEI7Ozs7Ozs4Q0FHM0MsOERBQUNDO29DQUFJRCxXQUFVOztzREFDYiw4REFBQ0M7NENBQUlELFdBQVU7OzhEQUNiLDhEQUFDTCw4RkFBSUE7b0RBQUNLLFdBQVU7Ozs7Ozs4REFDaEIsOERBQUNJO29EQUFFQyxNQUFLO29EQUFvQ0wsV0FBVTs4REFBbUQ7Ozs7Ozs7Ozs7OztzREFJM0csOERBQUNDOzRDQUFJRCxXQUFVOzs4REFDYiw4REFBQ0gsK0ZBQUtBO29EQUFDRyxXQUFVOzs7Ozs7OERBQ2pCLDhEQUFDSTtvREFBRUMsTUFBSztvREFBNEJMLFdBQVU7OERBQW1EOzs7Ozs7Ozs7Ozs7c0RBSW5HLDhEQUFDQzs0Q0FBSUQsV0FBVTs7OERBQ2IsOERBQUNKLHVHQUFhQTtvREFBQ0ksV0FBVTs7Ozs7OzhEQUN6Qiw4REFBQ0k7b0RBQUVDLE1BQUs7b0RBQThCTCxXQUFVOzhEQUFtRDs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O3NDQVF6Ryw4REFBQ0M7OzhDQUNDLDhEQUFDSztvQ0FBR04sV0FBVTs4Q0FBNkI7Ozs7Ozs4Q0FDM0MsOERBQUNPO29DQUFHUCxXQUFVOztzREFDWiw4REFBQ1E7c0RBQUcsNEVBQUNKO2dEQUFFQyxNQUFLO2dEQUFZTCxXQUFVOzBEQUFtRDs7Ozs7Ozs7Ozs7c0RBQ3JGLDhEQUFDUTtzREFBRyw0RUFBQ0o7Z0RBQUVDLE1BQUs7Z0RBQVdMLFdBQVU7MERBQW1EOzs7Ozs7Ozs7OztzREFDcEYsOERBQUNRO3NEQUFHLDRFQUFDSjtnREFBRUMsTUFBSztnREFBU0wsV0FBVTswREFBbUQ7Ozs7Ozs7Ozs7O3NEQUNsRiw4REFBQ1E7c0RBQUcsNEVBQUNKO2dEQUFFQyxNQUFLO2dEQUFRTCxXQUFVOzBEQUFtRDs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7c0NBS3JGLDhEQUFDQzs7OENBQ0MsOERBQUNLO29DQUFHTixXQUFVOzhDQUE2Qjs7Ozs7OzhDQUMzQyw4REFBQ087b0NBQUdQLFdBQVU7O3NEQUNaLDhEQUFDUTtzREFBRyw0RUFBQ0o7Z0RBQUVDLE1BQUs7Z0RBQVdMLFdBQVU7MERBQW1EOzs7Ozs7Ozs7OztzREFDcEYsOERBQUNRO3NEQUFHLDRFQUFDSjtnREFBRUMsTUFBSztnREFBU0wsV0FBVTswREFBbUQ7Ozs7Ozs7Ozs7O3NEQUNsRiw4REFBQ1E7c0RBQUcsNEVBQUNKO2dEQUFFQyxNQUFLO2dEQUFJTCxXQUFVOzBEQUFtRDs7Ozs7Ozs7Ozs7c0RBQzdFLDhEQUFDUTtzREFBRyw0RUFBQ0o7Z0RBQUVDLE1BQUs7Z0RBQUlMLFdBQVU7MERBQW1EOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs4QkFLbkYsOERBQUNDO29CQUFJRCxXQUFVOztzQ0FDYiw4REFBQ0c7NEJBQUVILFdBQVU7c0NBQXdCOzs7Ozs7c0NBR3JDLDhEQUFDQzs0QkFBSUQsV0FBVTs7OENBQ2IsOERBQUNJO29DQUFFQyxNQUFLO29DQUE4QkwsV0FBVTs4Q0FDOUMsNEVBQUNKLHVHQUFhQTt3Q0FBQ0ksV0FBVTs7Ozs7Ozs7Ozs7OENBRTNCLDhEQUFDSTtvQ0FBRUMsTUFBSztvQ0FBNEJMLFdBQVU7OENBQzVDLDRFQUFDSCwrRkFBS0E7d0NBQUNHLFdBQVU7Ozs7Ozs7Ozs7OzhDQUVuQiw4REFBQ0k7b0NBQUVDLE1BQUs7b0NBQW9DTCxXQUFVOzhDQUNwRCw0RUFBQ0wsOEZBQUlBO3dDQUFDSyxXQUFVOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBTzlCO0tBM0V3QkYiLCJzb3VyY2VzIjpbIkQ6XFxkb25neXVuLXByb2plY3RzXFx0d29cXGNvbXBvbmVudHNcXEZvb3Rlci50c3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTWFpbCwgTWVzc2FnZUNpcmNsZSwgUGhvbmUgfSBmcm9tICdsdWNpZGUtcmVhY3QnO1xyXG5cclxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gRm9vdGVyKCkge1xyXG4gIHJldHVybiAoXHJcbiAgICA8Zm9vdGVyIGNsYXNzTmFtZT1cImJnLWdyYXktOTAwIHRleHQtd2hpdGUgcHktMTJcIj5cclxuICAgICAgPGRpdiBjbGFzc05hbWU9XCJtYXgtdy1zY3JlZW4teGwgbXgtYXV0byBweC02XCI+XHJcbiAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJncmlkIGdyaWQtY29scy0xIG1kOmdyaWQtY29scy00IGdhcC04XCI+XHJcbiAgICAgICAgICB7Lyog5YWs5Y+45L+h5oGvICovfVxyXG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJtZDpjb2wtc3Bhbi0yXCI+XHJcbiAgICAgICAgICAgIDxoMyBjbGFzc05hbWU9XCJ0ZXh0LTJ4bCBmb250LWJvbGQgbWItNFwiPlBpbm5vdmF0ZSBDbG91ZDwvaDM+XHJcbiAgICAgICAgICAgIDxwIGNsYXNzTmFtZT1cInRleHQtZ3JheS0zMDAgbWItNiBtYXgtdy1tZFwiPlxyXG4gICAgICAgICAgICAgIOS4k+S4mueahOS6keWKoOmAn+acjeWKoeaPkOS+m+WVhu+8jOS4uuWFqOeQg+S8geS4muaPkOS+m+mrmOaAp+iDveOAgeWuieWFqOWPr+mdoOeahOe9kee7nOWKoOmAn+ino+WGs+aWueahiOOAglxyXG4gICAgICAgICAgICA8L3A+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwic3BhY2UteS0zXCI+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJmbGV4IGl0ZW1zLWNlbnRlciBnYXAtM1wiPlxyXG4gICAgICAgICAgICAgICAgPE1haWwgY2xhc3NOYW1lPVwidy01IGgtNSB0ZXh0LWFjY2VudFwiIC8+XHJcbiAgICAgICAgICAgICAgICA8YSBocmVmPVwibWFpbHRvOnN1cHBvcnRAcGlubm92YXRlY2xvdWQuY29tXCIgY2xhc3NOYW1lPVwidGV4dC1ncmF5LTMwMCBob3Zlcjp0ZXh0LXdoaXRlIHRyYW5zaXRpb24tY29sb3JzXCI+XHJcbiAgICAgICAgICAgICAgICAgIHN1cHBvcnRAcGlubm92YXRlY2xvdWQuY29tXHJcbiAgICAgICAgICAgICAgICA8L2E+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJmbGV4IGl0ZW1zLWNlbnRlciBnYXAtM1wiPlxyXG4gICAgICAgICAgICAgICAgPFBob25lIGNsYXNzTmFtZT1cInctNSBoLTUgdGV4dC1hY2NlbnRcIiAvPlxyXG4gICAgICAgICAgICAgICAgPGEgaHJlZj1cImh0dHBzOi8vd2EubWUvMTkxNzQwMjk4NzVcIiBjbGFzc05hbWU9XCJ0ZXh0LWdyYXktMzAwIGhvdmVyOnRleHQtd2hpdGUgdHJhbnNpdGlvbi1jb2xvcnNcIj5cclxuICAgICAgICAgICAgICAgICAgKzEgOTE3LTQwMi05ODc1XHJcbiAgICAgICAgICAgICAgICA8L2E+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJmbGV4IGl0ZW1zLWNlbnRlciBnYXAtM1wiPlxyXG4gICAgICAgICAgICAgICAgPE1lc3NhZ2VDaXJjbGUgY2xhc3NOYW1lPVwidy01IGgtNSB0ZXh0LWFjY2VudFwiIC8+XHJcbiAgICAgICAgICAgICAgICA8YSBocmVmPVwiaHR0cHM6Ly90Lm1lL3Bpbm5vdmF0ZWNsb3VkXCIgY2xhc3NOYW1lPVwidGV4dC1ncmF5LTMwMCBob3Zlcjp0ZXh0LXdoaXRlIHRyYW5zaXRpb24tY29sb3JzXCI+XHJcbiAgICAgICAgICAgICAgICAgIEBwaW5ub3ZhdGVjbG91ZFxyXG4gICAgICAgICAgICAgICAgPC9hPlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgIHsvKiDmnI3liqHpk77mjqUgKi99XHJcbiAgICAgICAgICA8ZGl2PlxyXG4gICAgICAgICAgICA8aDQgY2xhc3NOYW1lPVwidGV4dC1sZyBmb250LXNlbWlib2xkIG1iLTRcIj7mnI3liqE8L2g0PlxyXG4gICAgICAgICAgICA8dWwgY2xhc3NOYW1lPVwic3BhY2UteS0yXCI+XHJcbiAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9XCIvZmVhdHVyZXNcIiBjbGFzc05hbWU9XCJ0ZXh0LWdyYXktMzAwIGhvdmVyOnRleHQtd2hpdGUgdHJhbnNpdGlvbi1jb2xvcnNcIj7kuqflk4HnibnmgKc8L2E+PC9saT5cclxuICAgICAgICAgICAgICA8bGk+PGEgaHJlZj1cIi9wcmljaW5nXCIgY2xhc3NOYW1lPVwidGV4dC1ncmF5LTMwMCBob3Zlcjp0ZXh0LXdoaXRlIHRyYW5zaXRpb24tY29sb3JzXCI+5a6a5Lu35pa55qGIPC9hPjwvbGk+XHJcbiAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9XCIvY2FzZXNcIiBjbGFzc05hbWU9XCJ0ZXh0LWdyYXktMzAwIGhvdmVyOnRleHQtd2hpdGUgdHJhbnNpdGlvbi1jb2xvcnNcIj7lrqLmiLfmoYjkvos8L2E+PC9saT5cclxuICAgICAgICAgICAgICA8bGk+PGEgaHJlZj1cIi9uZXdzXCIgY2xhc3NOYW1lPVwidGV4dC1ncmF5LTMwMCBob3Zlcjp0ZXh0LXdoaXRlIHRyYW5zaXRpb24tY29sb3JzXCI+5paw6Ze76LWE6K6vPC9hPjwvbGk+XHJcbiAgICAgICAgICAgIDwvdWw+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICB7Lyog5pSv5oyB6ZO+5o6lICovfVxyXG4gICAgICAgICAgPGRpdj5cclxuICAgICAgICAgICAgPGg0IGNsYXNzTmFtZT1cInRleHQtbGcgZm9udC1zZW1pYm9sZCBtYi00XCI+5pSv5oyBPC9oND5cclxuICAgICAgICAgICAgPHVsIGNsYXNzTmFtZT1cInNwYWNlLXktMlwiPlxyXG4gICAgICAgICAgICAgIDxsaT48YSBocmVmPVwiL2NvbnRhY3RcIiBjbGFzc05hbWU9XCJ0ZXh0LWdyYXktMzAwIGhvdmVyOnRleHQtd2hpdGUgdHJhbnNpdGlvbi1jb2xvcnNcIj7ogZTns7vmiJHku6w8L2E+PC9saT5cclxuICAgICAgICAgICAgICA8bGk+PGEgaHJlZj1cIi9hYm91dFwiIGNsYXNzTmFtZT1cInRleHQtZ3JheS0zMDAgaG92ZXI6dGV4dC13aGl0ZSB0cmFuc2l0aW9uLWNvbG9yc1wiPuWFs+S6juaIkeS7rDwvYT48L2xpPlxyXG4gICAgICAgICAgICAgIDxsaT48YSBocmVmPVwiI1wiIGNsYXNzTmFtZT1cInRleHQtZ3JheS0zMDAgaG92ZXI6dGV4dC13aGl0ZSB0cmFuc2l0aW9uLWNvbG9yc1wiPuW4ruWKqeS4reW/gzwvYT48L2xpPlxyXG4gICAgICAgICAgICAgIDxsaT48YSBocmVmPVwiI1wiIGNsYXNzTmFtZT1cInRleHQtZ3JheS0zMDAgaG92ZXI6dGV4dC13aGl0ZSB0cmFuc2l0aW9uLWNvbG9yc1wiPkFQSSDmlofmoaM8L2E+PC9saT5cclxuICAgICAgICAgICAgPC91bD5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImJvcmRlci10IGJvcmRlci1ncmF5LTcwMCBtdC04IHB0LTggZmxleCBmbGV4LWNvbCBtZDpmbGV4LXJvdyBqdXN0aWZ5LWJldHdlZW4gaXRlbXMtY2VudGVyXCI+XHJcbiAgICAgICAgICA8cCBjbGFzc05hbWU9XCJ0ZXh0LWdyYXktNDAwIHRleHQtc21cIj5cclxuICAgICAgICAgICAgJmNvcHk7IDIwMjUgUGlubm92YXRlIENsb3VkLiDkv53nlZnmiYDmnInmnYPliKnjgIJcclxuICAgICAgICAgIDwvcD5cclxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZmxleCBzcGFjZS14LTYgbXQtNCBtZDptdC0wXCI+XHJcbiAgICAgICAgICAgIDxhIGhyZWY9XCJodHRwczovL3QubWUvcGlubm92YXRlY2xvdWRcIiBjbGFzc05hbWU9XCJ0ZXh0LWdyYXktNDAwIGhvdmVyOnRleHQtd2hpdGUgdHJhbnNpdGlvbi1jb2xvcnNcIj5cclxuICAgICAgICAgICAgICA8TWVzc2FnZUNpcmNsZSBjbGFzc05hbWU9XCJ3LTUgaC01XCIgLz5cclxuICAgICAgICAgICAgPC9hPlxyXG4gICAgICAgICAgICA8YSBocmVmPVwiaHR0cHM6Ly93YS5tZS8xOTE3NDAyOTg3NVwiIGNsYXNzTmFtZT1cInRleHQtZ3JheS00MDAgaG92ZXI6dGV4dC13aGl0ZSB0cmFuc2l0aW9uLWNvbG9yc1wiPlxyXG4gICAgICAgICAgICAgIDxQaG9uZSBjbGFzc05hbWU9XCJ3LTUgaC01XCIgLz5cclxuICAgICAgICAgICAgPC9hPlxyXG4gICAgICAgICAgICA8YSBocmVmPVwibWFpbHRvOnN1cHBvcnRAcGlubm92YXRlY2xvdWQuY29tXCIgY2xhc3NOYW1lPVwidGV4dC1ncmF5LTQwMCBob3Zlcjp0ZXh0LXdoaXRlIHRyYW5zaXRpb24tY29sb3JzXCI+XHJcbiAgICAgICAgICAgICAgPE1haWwgY2xhc3NOYW1lPVwidy01IGgtNVwiIC8+XHJcbiAgICAgICAgICAgIDwvYT5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvZm9vdGVyPlxyXG4gICk7XHJcbn0iXSwibmFtZXMiOlsiTWFpbCIsIk1lc3NhZ2VDaXJjbGUiLCJQaG9uZSIsIkZvb3RlciIsImZvb3RlciIsImNsYXNzTmFtZSIsImRpdiIsImgzIiwicCIsImEiLCJocmVmIiwiaDQiLCJ1bCIsImxpIl0sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(pages-dir-browser)/./components/Footer.tsx\n")); - -/***/ }), - -/***/ "(pages-dir-browser)/./components/Navbar.tsx": -/*!*******************************!*\ - !*** ./components/Navbar.tsx ***! - \*******************************/ -/***/ ((module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ Navbar)\n/* harmony export */ });\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react/jsx-dev-runtime */ \"(pages-dir-browser)/./node_modules/react/jsx-dev-runtime.js\");\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react */ \"(pages-dir-browser)/./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var next_link__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! next/link */ \"(pages-dir-browser)/./node_modules/next/link.js\");\n/* harmony import */ var next_link__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(next_link__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var _barrel_optimize_names_Menu_lucide_react__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! __barrel_optimize__?names=Menu!=!lucide-react */ \"(pages-dir-browser)/__barrel_optimize__?names=Menu!=!./node_modules/lucide-react/dist/esm/lucide-react.js\");\n/* harmony import */ var _Sidebar__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./Sidebar */ \"(pages-dir-browser)/./components/Sidebar.tsx\");\n\nvar _s = $RefreshSig$();\n\n\n\n\nfunction Navbar() {\n _s();\n const [open, setOpen] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(false);\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"header\", {\n className: \"fixed top-0 left-0 w-full bg-background shadow-sm z-50\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"container mx-auto flex items-center justify-between h-16 px-4\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex items-center space-x-4\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"button\", {\n className: \"md:hidden p-2 focus:outline-none\",\n onClick: ()=>setOpen(true),\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_barrel_optimize_names_Menu_lucide_react__WEBPACK_IMPORTED_MODULE_4__.Menu, {\n className: \"h-6 w-6 text-primary\"\n }, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\Navbar.tsx\",\n lineNumber: 16,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\Navbar.tsx\",\n lineNumber: 15,\n columnNumber: 11\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)((next_link__WEBPACK_IMPORTED_MODULE_2___default()), {\n href: \"/\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"img\", {\n src: \"/logo.png\",\n alt: \"CloudProxy\",\n className: \"h-8 w-8\"\n }, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\Navbar.tsx\",\n lineNumber: 19,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\Navbar.tsx\",\n lineNumber: 18,\n columnNumber: 11\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"nav\", {\n className: \"hidden md:flex items-center space-x-4\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)((next_link__WEBPACK_IMPORTED_MODULE_2___default()), {\n href: \"/\",\n className: \"text-primary font-semibold\",\n children: \"首页\"\n }, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\Navbar.tsx\",\n lineNumber: 23,\n columnNumber: 13\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)((next_link__WEBPACK_IMPORTED_MODULE_2___default()), {\n href: \"/features\",\n className: \"text-gray-600 hover:text-primary\",\n children: \"产品与服务\"\n }, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\Navbar.tsx\",\n lineNumber: 24,\n columnNumber: 13\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)((next_link__WEBPACK_IMPORTED_MODULE_2___default()), {\n href: \"/news\",\n className: \"text-gray-600 hover:text-primary\",\n children: \"新闻资讯\"\n }, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\Navbar.tsx\",\n lineNumber: 25,\n columnNumber: 13\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)((next_link__WEBPACK_IMPORTED_MODULE_2___default()), {\n href: \"/cases\",\n className: \"text-gray-600 hover:text-primary\",\n children: \"客户案例\"\n }, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\Navbar.tsx\",\n lineNumber: 26,\n columnNumber: 13\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)((next_link__WEBPACK_IMPORTED_MODULE_2___default()), {\n href: \"/about\",\n className: \"text-gray-600 hover:text-primary\",\n children: \"关于我们\"\n }, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\Navbar.tsx\",\n lineNumber: 27,\n columnNumber: 13\n }, this)\n ]\n }, void 0, true, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\Navbar.tsx\",\n lineNumber: 22,\n columnNumber: 11\n }, this)\n ]\n }, void 0, true, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\Navbar.tsx\",\n lineNumber: 13,\n columnNumber: 9\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex items-center space-x-4\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)((next_link__WEBPACK_IMPORTED_MODULE_2___default()), {\n href: \"/contact\",\n className: \"px-4 py-1 border border-primary rounded-full text-primary hover:bg-primary hover:text-white transition\",\n children: \"联系我们\"\n }, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\Navbar.tsx\",\n lineNumber: 33,\n columnNumber: 11\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"a\", {\n href: \"https://instagram.com\",\n target: \"_blank\",\n rel: \"noopener noreferrer\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"i\", {\n className: \"fab fa-instagram text-gray-600 hover:text-primary\"\n }, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\Navbar.tsx\",\n lineNumber: 37,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\Navbar.tsx\",\n lineNumber: 36,\n columnNumber: 11\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"a\", {\n href: \"https://facebook.com\",\n target: \"_blank\",\n rel: \"noopener noreferrer\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"i\", {\n className: \"fab fa-facebook text-gray-600 hover:text-primary\"\n }, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\Navbar.tsx\",\n lineNumber: 40,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\Navbar.tsx\",\n lineNumber: 39,\n columnNumber: 11\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"a\", {\n href: \"https://twitter.com\",\n target: \"_blank\",\n rel: \"noopener noreferrer\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"i\", {\n className: \"fab fa-twitter text-gray-600 hover:text-primary\"\n }, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\Navbar.tsx\",\n lineNumber: 43,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\Navbar.tsx\",\n lineNumber: 42,\n columnNumber: 11\n }, this)\n ]\n }, void 0, true, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\Navbar.tsx\",\n lineNumber: 32,\n columnNumber: 9\n }, this)\n ]\n }, void 0, true, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\Navbar.tsx\",\n lineNumber: 11,\n columnNumber: 7\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_Sidebar__WEBPACK_IMPORTED_MODULE_3__[\"default\"], {\n open: open,\n onClose: ()=>setOpen(false)\n }, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\Navbar.tsx\",\n lineNumber: 49,\n columnNumber: 7\n }, this)\n ]\n }, void 0, true, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\Navbar.tsx\",\n lineNumber: 10,\n columnNumber: 5\n }, this);\n}\n_s(Navbar, \"xG1TONbKtDWtdOTrXaTAsNhPg/Q=\");\n_c = Navbar;\nvar _c;\n$RefreshReg$(_c, \"Navbar\");\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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1icm93c2VyKS8uL2NvbXBvbmVudHMvTmF2YmFyLnRzeCIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7OztBQUFpQztBQUNKO0FBQ087QUFDSjtBQUVqQixTQUFTSTs7SUFDdEIsTUFBTSxDQUFDQyxNQUFNQyxRQUFRLEdBQUdOLCtDQUFRQSxDQUFDO0lBRWpDLHFCQUNFLDhEQUFDTztRQUFPQyxXQUFVOzswQkFDaEIsOERBQUNDO2dCQUFJRCxXQUFVOztrQ0FFYiw4REFBQ0M7d0JBQUlELFdBQVU7OzBDQUViLDhEQUFDRTtnQ0FBT0YsV0FBVTtnQ0FBbUNHLFNBQVMsSUFBTUwsUUFBUTswQ0FDMUUsNEVBQUNKLDBFQUFJQTtvQ0FBQ00sV0FBVTs7Ozs7Ozs7Ozs7MENBRWxCLDhEQUFDUCxrREFBSUE7Z0NBQUNXLE1BQUs7MENBQ1QsNEVBQUNDO29DQUFJQyxLQUFJO29DQUFZQyxLQUFJO29DQUFhUCxXQUFVOzs7Ozs7Ozs7OzswQ0FHbEQsOERBQUNRO2dDQUFJUixXQUFVOztrREFDYiw4REFBQ1Asa0RBQUlBO3dDQUFDVyxNQUFLO3dDQUFJSixXQUFVO2tEQUE2Qjs7Ozs7O2tEQUN0RCw4REFBQ1Asa0RBQUlBO3dDQUFDVyxNQUFLO3dDQUFZSixXQUFVO2tEQUFtQzs7Ozs7O2tEQUNwRSw4REFBQ1Asa0RBQUlBO3dDQUFDVyxNQUFLO3dDQUFRSixXQUFVO2tEQUFtQzs7Ozs7O2tEQUNoRSw4REFBQ1Asa0RBQUlBO3dDQUFDVyxNQUFLO3dDQUFTSixXQUFVO2tEQUFtQzs7Ozs7O2tEQUNqRSw4REFBQ1Asa0RBQUlBO3dDQUFDVyxNQUFLO3dDQUFTSixXQUFVO2tEQUFtQzs7Ozs7Ozs7Ozs7Ozs7Ozs7O2tDQUtyRSw4REFBQ0M7d0JBQUlELFdBQVU7OzBDQUNiLDhEQUFDUCxrREFBSUE7Z0NBQUNXLE1BQUs7Z0NBQVdKLFdBQVU7MENBQXlHOzs7Ozs7MENBR3pJLDhEQUFDUztnQ0FBRUwsTUFBSztnQ0FBd0JNLFFBQU87Z0NBQVNDLEtBQUk7MENBQ2xELDRFQUFDQztvQ0FBRVosV0FBVTs7Ozs7Ozs7Ozs7MENBRWYsOERBQUNTO2dDQUFFTCxNQUFLO2dDQUF1Qk0sUUFBTztnQ0FBU0MsS0FBSTswQ0FDakQsNEVBQUNDO29DQUFFWixXQUFVOzs7Ozs7Ozs7OzswQ0FFZiw4REFBQ1M7Z0NBQUVMLE1BQUs7Z0NBQXNCTSxRQUFPO2dDQUFTQyxLQUFJOzBDQUNoRCw0RUFBQ0M7b0NBQUVaLFdBQVU7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OzBCQU1uQiw4REFBQ0wsZ0RBQU9BO2dCQUFDRSxNQUFNQTtnQkFBTWdCLFNBQVMsSUFBTWYsUUFBUTs7Ozs7Ozs7Ozs7O0FBRS9DO0dBN0NxQkY7S0FBQUEiLCJzb3VyY2VzIjpbIkQ6XFxkb25neXVuLXByb2plY3RzXFx0d29cXGNvbXBvbmVudHNcXE5hdmJhci50c3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgdXNlU3RhdGUgfSBmcm9tICdyZWFjdCc7XHJcbmltcG9ydCBMaW5rIGZyb20gJ25leHQvbGluayc7XHJcbmltcG9ydCB7IE1lbnUgfSBmcm9tICdsdWNpZGUtcmVhY3QnO1xyXG5pbXBvcnQgU2lkZWJhciBmcm9tICcuL1NpZGViYXInO1xyXG5cclxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gTmF2YmFyKCkge1xyXG4gIGNvbnN0IFtvcGVuLCBzZXRPcGVuXSA9IHVzZVN0YXRlKGZhbHNlKTtcclxuXHJcbiAgcmV0dXJuIChcclxuICAgIDxoZWFkZXIgY2xhc3NOYW1lPVwiZml4ZWQgdG9wLTAgbGVmdC0wIHctZnVsbCBiZy1iYWNrZ3JvdW5kIHNoYWRvdy1zbSB6LTUwXCI+XHJcbiAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29udGFpbmVyIG14LWF1dG8gZmxleCBpdGVtcy1jZW50ZXIganVzdGlmeS1iZXR3ZWVuIGgtMTYgcHgtNFwiPlxyXG4gICAgICAgIHsvKiDlt6bkvqcgTG9nbyArIOWvvOiIqiAqL31cclxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImZsZXggaXRlbXMtY2VudGVyIHNwYWNlLXgtNFwiPlxyXG4gICAgICAgICAgey8qIOenu+WKqOerr+iPnOWNleaMiemSriAqL31cclxuICAgICAgICAgIDxidXR0b24gY2xhc3NOYW1lPVwibWQ6aGlkZGVuIHAtMiBmb2N1czpvdXRsaW5lLW5vbmVcIiBvbkNsaWNrPXsoKSA9PiBzZXRPcGVuKHRydWUpfT5cclxuICAgICAgICAgICAgPE1lbnUgY2xhc3NOYW1lPVwiaC02IHctNiB0ZXh0LXByaW1hcnlcIiAvPlxyXG4gICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgICA8TGluayBocmVmPVwiL1wiPlxyXG4gICAgICAgICAgICA8aW1nIHNyYz1cIi9sb2dvLnBuZ1wiIGFsdD1cIkNsb3VkUHJveHlcIiBjbGFzc05hbWU9XCJoLTggdy04XCIgLz5cclxuICAgICAgICAgIDwvTGluaz5cclxuICAgICAgICAgIHsvKiDmoYzpnaLnq6/lr7zoiKrpk77mjqUgKi99XHJcbiAgICAgICAgICA8bmF2IGNsYXNzTmFtZT1cImhpZGRlbiBtZDpmbGV4IGl0ZW1zLWNlbnRlciBzcGFjZS14LTRcIj5cclxuICAgICAgICAgICAgPExpbmsgaHJlZj1cIi9cIiBjbGFzc05hbWU9XCJ0ZXh0LXByaW1hcnkgZm9udC1zZW1pYm9sZFwiPummlumhtTwvTGluaz5cclxuICAgICAgICAgICAgPExpbmsgaHJlZj1cIi9mZWF0dXJlc1wiIGNsYXNzTmFtZT1cInRleHQtZ3JheS02MDAgaG92ZXI6dGV4dC1wcmltYXJ5XCI+5Lqn5ZOB5LiO5pyN5YqhPC9MaW5rPlxyXG4gICAgICAgICAgICA8TGluayBocmVmPVwiL25ld3NcIiBjbGFzc05hbWU9XCJ0ZXh0LWdyYXktNjAwIGhvdmVyOnRleHQtcHJpbWFyeVwiPuaWsOmXu+i1hOiurzwvTGluaz5cclxuICAgICAgICAgICAgPExpbmsgaHJlZj1cIi9jYXNlc1wiIGNsYXNzTmFtZT1cInRleHQtZ3JheS02MDAgaG92ZXI6dGV4dC1wcmltYXJ5XCI+5a6i5oi35qGI5L6LPC9MaW5rPlxyXG4gICAgICAgICAgICA8TGluayBocmVmPVwiL2Fib3V0XCIgY2xhc3NOYW1lPVwidGV4dC1ncmF5LTYwMCBob3Zlcjp0ZXh0LXByaW1hcnlcIj7lhbPkuo7miJHku6w8L0xpbms+XHJcbiAgICAgICAgICA8L25hdj5cclxuICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgey8qIOWPs+S+p+aTjeS9nOWFpeWPoyAqL31cclxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImZsZXggaXRlbXMtY2VudGVyIHNwYWNlLXgtNFwiPlxyXG4gICAgICAgICAgPExpbmsgaHJlZj1cIi9jb250YWN0XCIgY2xhc3NOYW1lPVwicHgtNCBweS0xIGJvcmRlciBib3JkZXItcHJpbWFyeSByb3VuZGVkLWZ1bGwgdGV4dC1wcmltYXJ5IGhvdmVyOmJnLXByaW1hcnkgaG92ZXI6dGV4dC13aGl0ZSB0cmFuc2l0aW9uXCI+XHJcbiAgICAgICAgICAgIOiBlOezu+aIkeS7rFxyXG4gICAgICAgICAgPC9MaW5rPlxyXG4gICAgICAgICAgPGEgaHJlZj1cImh0dHBzOi8vaW5zdGFncmFtLmNvbVwiIHRhcmdldD1cIl9ibGFua1wiIHJlbD1cIm5vb3BlbmVyIG5vcmVmZXJyZXJcIj5cclxuICAgICAgICAgICAgPGkgY2xhc3NOYW1lPVwiZmFiIGZhLWluc3RhZ3JhbSB0ZXh0LWdyYXktNjAwIGhvdmVyOnRleHQtcHJpbWFyeVwiIC8+XHJcbiAgICAgICAgICA8L2E+XHJcbiAgICAgICAgICA8YSBocmVmPVwiaHR0cHM6Ly9mYWNlYm9vay5jb21cIiB0YXJnZXQ9XCJfYmxhbmtcIiByZWw9XCJub29wZW5lciBub3JlZmVycmVyXCI+XHJcbiAgICAgICAgICAgIDxpIGNsYXNzTmFtZT1cImZhYiBmYS1mYWNlYm9vayB0ZXh0LWdyYXktNjAwIGhvdmVyOnRleHQtcHJpbWFyeVwiIC8+XHJcbiAgICAgICAgICA8L2E+XHJcbiAgICAgICAgICA8YSBocmVmPVwiaHR0cHM6Ly90d2l0dGVyLmNvbVwiIHRhcmdldD1cIl9ibGFua1wiIHJlbD1cIm5vb3BlbmVyIG5vcmVmZXJyZXJcIj5cclxuICAgICAgICAgICAgPGkgY2xhc3NOYW1lPVwiZmFiIGZhLXR3aXR0ZXIgdGV4dC1ncmF5LTYwMCBob3Zlcjp0ZXh0LXByaW1hcnlcIiAvPlxyXG4gICAgICAgICAgPC9hPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L2Rpdj5cclxuXHJcbiAgICAgIHsvKiDkvqfovrnmoI8gKi99XHJcbiAgICAgIDxTaWRlYmFyIG9wZW49e29wZW59IG9uQ2xvc2U9eygpID0+IHNldE9wZW4oZmFsc2UpfSAvPlxyXG4gICAgPC9oZWFkZXI+XHJcbiAgKX0iXSwibmFtZXMiOlsidXNlU3RhdGUiLCJMaW5rIiwiTWVudSIsIlNpZGViYXIiLCJOYXZiYXIiLCJvcGVuIiwic2V0T3BlbiIsImhlYWRlciIsImNsYXNzTmFtZSIsImRpdiIsImJ1dHRvbiIsIm9uQ2xpY2siLCJocmVmIiwiaW1nIiwic3JjIiwiYWx0IiwibmF2IiwiYSIsInRhcmdldCIsInJlbCIsImkiLCJvbkNsb3NlIl0sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(pages-dir-browser)/./components/Navbar.tsx\n")); - -/***/ }), - -/***/ "(pages-dir-browser)/./components/NewsList.tsx": -/*!*********************************!*\ - !*** ./components/NewsList.tsx ***! - \*********************************/ -/***/ ((module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ NewsList)\n/* harmony export */ });\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react/jsx-dev-runtime */ \"(pages-dir-browser)/./node_modules/react/jsx-dev-runtime.js\");\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var next_link__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! next/link */ \"(pages-dir-browser)/./node_modules/next/link.js\");\n/* harmony import */ var next_link__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(next_link__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! react */ \"(pages-dir-browser)/./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var _barrel_optimize_names_ArrowRight_Calendar_Clock_Filter_Search_Tag_lucide_react__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! __barrel_optimize__?names=ArrowRight,Calendar,Clock,Filter,Search,Tag!=!lucide-react */ \"(pages-dir-browser)/__barrel_optimize__?names=ArrowRight,Calendar,Clock,Filter,Search,Tag!=!./node_modules/lucide-react/dist/esm/lucide-react.js\");\n\nvar _s = $RefreshSig$();\n\n\n\nfunction NewsList(param) {\n let { news } = param;\n _s();\n const [searchTerm, setSearchTerm] = (0,react__WEBPACK_IMPORTED_MODULE_2__.useState)('');\n const [selectedCategory, setSelectedCategory] = (0,react__WEBPACK_IMPORTED_MODULE_2__.useState)('全部');\n const [sortBy, setSortBy] = (0,react__WEBPACK_IMPORTED_MODULE_2__.useState)('date');\n // 获取所有分类\n const categories = (0,react__WEBPACK_IMPORTED_MODULE_2__.useMemo)({\n \"NewsList.useMemo[categories]\": ()=>{\n const allTags = news.flatMap({\n \"NewsList.useMemo[categories].allTags\": (item)=>item.tags || []\n }[\"NewsList.useMemo[categories].allTags\"]);\n const uniqueTags = Array.from(new Set(allTags));\n return [\n '全部',\n ...uniqueTags\n ];\n }\n }[\"NewsList.useMemo[categories]\"], [\n news\n ]);\n // 过滤和排序新闻\n const filteredNews = (0,react__WEBPACK_IMPORTED_MODULE_2__.useMemo)({\n \"NewsList.useMemo[filteredNews]\": ()=>{\n let filtered = news.filter({\n \"NewsList.useMemo[filteredNews].filtered\": (item)=>{\n var _item_summary, _item_tags, _item_tags1;\n const matchesSearch = item.title.toLowerCase().includes(searchTerm.toLowerCase()) || ((_item_summary = item.summary) === null || _item_summary === void 0 ? void 0 : _item_summary.toLowerCase().includes(searchTerm.toLowerCase())) || ((_item_tags = item.tags) === null || _item_tags === void 0 ? void 0 : _item_tags.some({\n \"NewsList.useMemo[filteredNews].filtered\": (tag)=>tag.toLowerCase().includes(searchTerm.toLowerCase())\n }[\"NewsList.useMemo[filteredNews].filtered\"]));\n const matchesCategory = selectedCategory === '全部' || ((_item_tags1 = item.tags) === null || _item_tags1 === void 0 ? void 0 : _item_tags1.includes(selectedCategory));\n return matchesSearch && matchesCategory;\n }\n }[\"NewsList.useMemo[filteredNews].filtered\"]);\n // 排序\n filtered.sort({\n \"NewsList.useMemo[filteredNews]\": (a, b)=>{\n switch(sortBy){\n case 'date':\n return new Date(b.date).getTime() - new Date(a.date).getTime();\n case 'title':\n return a.title.localeCompare(b.title);\n default:\n return 0;\n }\n }\n }[\"NewsList.useMemo[filteredNews]\"]);\n return filtered;\n }\n }[\"NewsList.useMemo[filteredNews]\"], [\n news,\n searchTerm,\n selectedCategory,\n sortBy\n ]);\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"section\", {\n className: \"px-6 py-16 bg-gray-50\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"max-w-screen-xl mx-auto\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"bg-white rounded-2xl p-6 shadow-sm mb-8\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex flex-col lg:flex-row gap-4 items-center\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex-1 relative\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_barrel_optimize_names_ArrowRight_Calendar_Clock_Filter_Search_Tag_lucide_react__WEBPACK_IMPORTED_MODULE_3__.Search, {\n className: \"absolute left-3 top-1/2 transform -translate-y-1/2 text-gray-400 w-5 h-5\"\n }, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\NewsList.tsx\",\n lineNumber: 53,\n columnNumber: 15\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"input\", {\n type: \"text\",\n placeholder: \"搜索新闻标题、内容或标签...\",\n value: searchTerm,\n onChange: (e)=>setSearchTerm(e.target.value),\n className: \"w-full pl-10 pr-4 py-3 border border-gray-200 rounded-xl focus:ring-2 focus:ring-accent focus:border-transparent outline-none\"\n }, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\NewsList.tsx\",\n lineNumber: 54,\n columnNumber: 15\n }, this)\n ]\n }, void 0, true, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\NewsList.tsx\",\n lineNumber: 52,\n columnNumber: 13\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex items-center gap-2\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_barrel_optimize_names_ArrowRight_Calendar_Clock_Filter_Search_Tag_lucide_react__WEBPACK_IMPORTED_MODULE_3__.Filter, {\n className: \"w-5 h-5 text-gray-400\"\n }, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\NewsList.tsx\",\n lineNumber: 65,\n columnNumber: 15\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"select\", {\n value: selectedCategory,\n onChange: (e)=>setSelectedCategory(e.target.value),\n className: \"px-4 py-3 border border-gray-200 rounded-xl focus:ring-2 focus:ring-accent focus:border-transparent outline-none\",\n children: categories.map((category)=>/*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"option\", {\n value: category,\n children: category\n }, category, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\NewsList.tsx\",\n lineNumber: 72,\n columnNumber: 19\n }, this))\n }, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\NewsList.tsx\",\n lineNumber: 66,\n columnNumber: 15\n }, this)\n ]\n }, void 0, true, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\NewsList.tsx\",\n lineNumber: 64,\n columnNumber: 13\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex items-center gap-2\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_barrel_optimize_names_ArrowRight_Calendar_Clock_Filter_Search_Tag_lucide_react__WEBPACK_IMPORTED_MODULE_3__.Calendar, {\n className: \"w-5 h-5 text-gray-400\"\n }, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\NewsList.tsx\",\n lineNumber: 79,\n columnNumber: 15\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"select\", {\n value: sortBy,\n onChange: (e)=>setSortBy(e.target.value),\n className: \"px-4 py-3 border border-gray-200 rounded-xl focus:ring-2 focus:ring-accent focus:border-transparent outline-none\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"option\", {\n value: \"date\",\n children: \"按日期排序\"\n }, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\NewsList.tsx\",\n lineNumber: 85,\n columnNumber: 17\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"option\", {\n value: \"title\",\n children: \"按标题排序\"\n }, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\NewsList.tsx\",\n lineNumber: 86,\n columnNumber: 17\n }, this)\n ]\n }, void 0, true, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\NewsList.tsx\",\n lineNumber: 80,\n columnNumber: 15\n }, this)\n ]\n }, void 0, true, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\NewsList.tsx\",\n lineNumber: 78,\n columnNumber: 13\n }, this)\n ]\n }, void 0, true, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\NewsList.tsx\",\n lineNumber: 50,\n columnNumber: 11\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"mt-4 pt-4 border-t border-gray-100\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"p\", {\n className: \"text-sm text-gray-600\",\n children: [\n \"找到 \",\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n className: \"font-semibold text-accent\",\n children: filteredNews.length\n }, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\NewsList.tsx\",\n lineNumber: 94,\n columnNumber: 18\n }, this),\n \" 条新闻\",\n searchTerm && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n children: [\n \",关键词:\",\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n className: \"font-semibold\",\n children: [\n '\"',\n searchTerm,\n '\"'\n ]\n }, void 0, true, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\NewsList.tsx\",\n lineNumber: 96,\n columnNumber: 28\n }, this)\n ]\n }, void 0, true, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\NewsList.tsx\",\n lineNumber: 96,\n columnNumber: 17\n }, this),\n selectedCategory !== '全部' && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n children: [\n \",分类:\",\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n className: \"font-semibold\",\n children: selectedCategory\n }, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\NewsList.tsx\",\n lineNumber: 99,\n columnNumber: 27\n }, this)\n ]\n }, void 0, true, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\NewsList.tsx\",\n lineNumber: 99,\n columnNumber: 17\n }, this)\n ]\n }, void 0, true, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\NewsList.tsx\",\n lineNumber: 93,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\NewsList.tsx\",\n lineNumber: 92,\n columnNumber: 11\n }, this)\n ]\n }, void 0, true, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\NewsList.tsx\",\n lineNumber: 49,\n columnNumber: 9\n }, this),\n filteredNews.length === 0 ? /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"text-center py-16\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"w-24 h-24 bg-gray-100 rounded-full flex items-center justify-center mx-auto mb-4\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_barrel_optimize_names_ArrowRight_Calendar_Clock_Filter_Search_Tag_lucide_react__WEBPACK_IMPORTED_MODULE_3__.Search, {\n className: \"w-12 h-12 text-gray-400\"\n }, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\NewsList.tsx\",\n lineNumber: 109,\n columnNumber: 15\n }, this)\n }, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\NewsList.tsx\",\n lineNumber: 108,\n columnNumber: 13\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"h3\", {\n className: \"text-xl font-semibold text-gray-600 mb-2\",\n children: \"未找到相关新闻\"\n }, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\NewsList.tsx\",\n lineNumber: 111,\n columnNumber: 13\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"p\", {\n className: \"text-gray-500 mb-6\",\n children: \"请尝试调整搜索条件或筛选器\"\n }, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\NewsList.tsx\",\n lineNumber: 112,\n columnNumber: 13\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"button\", {\n onClick: ()=>{\n setSearchTerm('');\n setSelectedCategory('全部');\n },\n className: \"px-6 py-3 bg-accent text-white rounded-xl hover:bg-blue-700 transition-colors\",\n children: \"重置筛选\"\n }, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\NewsList.tsx\",\n lineNumber: 113,\n columnNumber: 13\n }, this)\n ]\n }, void 0, true, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\NewsList.tsx\",\n lineNumber: 107,\n columnNumber: 11\n }, this) : /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"grid grid-cols-1 lg:grid-cols-2 xl:grid-cols-3 gap-6\",\n children: filteredNews.map((item, index)=>/*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"article\", {\n className: \"group bg-white rounded-2xl shadow-sm hover:shadow-xl transition-all duration-300 border border-gray-100 hover:border-accent/20 overflow-hidden\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"p-6\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex items-start justify-between mb-4\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex items-center gap-2\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_barrel_optimize_names_ArrowRight_Calendar_Clock_Filter_Search_Tag_lucide_react__WEBPACK_IMPORTED_MODULE_3__.Clock, {\n className: \"w-4 h-4 text-gray-400\"\n }, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\NewsList.tsx\",\n lineNumber: 134,\n columnNumber: 23\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"time\", {\n className: \"text-sm text-gray-500\",\n children: item.date\n }, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\NewsList.tsx\",\n lineNumber: 135,\n columnNumber: 23\n }, this)\n ]\n }, void 0, true, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\NewsList.tsx\",\n lineNumber: 133,\n columnNumber: 21\n }, this),\n index < 3 && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n className: \"bg-gradient-to-r from-accent to-blue-600 text-white text-xs font-semibold px-3 py-1 rounded-full\",\n children: \"热门\"\n }, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\NewsList.tsx\",\n lineNumber: 138,\n columnNumber: 23\n }, this)\n ]\n }, void 0, true, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\NewsList.tsx\",\n lineNumber: 132,\n columnNumber: 19\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"h3\", {\n className: \"text-xl font-semibold text-primary mb-3 group-hover:text-accent transition-colors line-clamp-2\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)((next_link__WEBPACK_IMPORTED_MODULE_1___default()), {\n href: \"/news/\".concat(item.slug),\n className: \"hover:underline\",\n children: item.title\n }, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\NewsList.tsx\",\n lineNumber: 146,\n columnNumber: 21\n }, this)\n }, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\NewsList.tsx\",\n lineNumber: 145,\n columnNumber: 19\n }, this),\n item.summary && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"p\", {\n className: \"text-gray-600 text-sm line-clamp-3 mb-4 leading-relaxed\",\n children: item.summary\n }, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\NewsList.tsx\",\n lineNumber: 153,\n columnNumber: 21\n }, this),\n item.tags && item.tags.length > 0 && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex flex-wrap gap-2 mb-4\",\n children: item.tags.map((tag)=>/*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n className: \"inline-flex items-center gap-1 px-3 py-1 text-xs bg-gray-100 text-gray-600 rounded-full hover:bg-accent hover:text-white transition-colors cursor-pointer\",\n onClick: ()=>setSelectedCategory(tag),\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_barrel_optimize_names_ArrowRight_Calendar_Clock_Filter_Search_Tag_lucide_react__WEBPACK_IMPORTED_MODULE_3__.Tag, {\n className: \"w-3 h-3\"\n }, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\NewsList.tsx\",\n lineNumber: 167,\n columnNumber: 27\n }, this),\n tag\n ]\n }, tag, true, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\NewsList.tsx\",\n lineNumber: 162,\n columnNumber: 25\n }, this))\n }, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\NewsList.tsx\",\n lineNumber: 160,\n columnNumber: 21\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex items-center justify-between pt-4 border-t border-gray-100\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)((next_link__WEBPACK_IMPORTED_MODULE_1___default()), {\n href: \"/news/\".concat(item.slug),\n className: \"inline-flex items-center gap-2 text-accent hover:text-blue-700 font-medium text-sm group-hover:gap-3 transition-all\",\n children: [\n \"阅读全文\",\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_barrel_optimize_names_ArrowRight_Calendar_Clock_Filter_Search_Tag_lucide_react__WEBPACK_IMPORTED_MODULE_3__.ArrowRight, {\n className: \"w-4 h-4 group-hover:translate-x-1 transition-transform\"\n }, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\NewsList.tsx\",\n lineNumber: 181,\n columnNumber: 23\n }, this)\n ]\n }, void 0, true, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\NewsList.tsx\",\n lineNumber: 176,\n columnNumber: 21\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"text-xs text-gray-400\",\n children: [\n Math.ceil(Math.random() * 5) + 1,\n \" 分钟阅读\"\n ]\n }, void 0, true, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\NewsList.tsx\",\n lineNumber: 184,\n columnNumber: 21\n }, this)\n ]\n }, void 0, true, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\NewsList.tsx\",\n lineNumber: 175,\n columnNumber: 19\n }, this)\n ]\n }, void 0, true, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\NewsList.tsx\",\n lineNumber: 130,\n columnNumber: 17\n }, this)\n }, item.slug, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\NewsList.tsx\",\n lineNumber: 126,\n columnNumber: 15\n }, this))\n }, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\NewsList.tsx\",\n lineNumber: 124,\n columnNumber: 11\n }, this),\n filteredNews.length > 6 && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"text-center mt-12\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"button\", {\n className: \"px-8 py-3 bg-white border border-gray-200 text-primary rounded-xl hover:bg-gray-50 hover:border-accent transition-all duration-300 font-medium\",\n children: \"加载更多新闻\"\n }, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\NewsList.tsx\",\n lineNumber: 197,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\NewsList.tsx\",\n lineNumber: 196,\n columnNumber: 11\n }, this)\n ]\n }, void 0, true, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\NewsList.tsx\",\n lineNumber: 47,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\NewsList.tsx\",\n lineNumber: 46,\n columnNumber: 5\n }, this);\n}\n_s(NewsList, \"zIiT9VrK6DX/r0+NzRQ/S9rPFoo=\");\n_c = NewsList;\nvar _c;\n$RefreshReg$(_c, \"NewsList\");\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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1icm93c2VyKS8uL2NvbXBvbmVudHMvTmV3c0xpc3QudHN4IiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7QUFBNkI7QUFDYTtBQUVzQztBQUVqRSxTQUFTUyxTQUFTLEtBQThCO1FBQTlCLEVBQUVDLElBQUksRUFBd0IsR0FBOUI7O0lBQy9CLE1BQU0sQ0FBQ0MsWUFBWUMsY0FBYyxHQUFHWCwrQ0FBUUEsQ0FBQztJQUM3QyxNQUFNLENBQUNZLGtCQUFrQkMsb0JBQW9CLEdBQUdiLCtDQUFRQSxDQUFDO0lBQ3pELE1BQU0sQ0FBQ2MsUUFBUUMsVUFBVSxHQUFHZiwrQ0FBUUEsQ0FBQztJQUVyQyxTQUFTO0lBQ1QsTUFBTWdCLGFBQWFmLDhDQUFPQTt3Q0FBQztZQUN6QixNQUFNZ0IsVUFBVVIsS0FBS1MsT0FBTzt3REFBQ0MsQ0FBQUEsT0FBUUEsS0FBS0MsSUFBSSxJQUFJLEVBQUU7O1lBQ3BELE1BQU1DLGFBQWFDLE1BQU1DLElBQUksQ0FBQyxJQUFJQyxJQUFJUDtZQUN0QyxPQUFPO2dCQUFDO21CQUFTSTthQUFXO1FBQzlCO3VDQUFHO1FBQUNaO0tBQUs7SUFFVCxVQUFVO0lBQ1YsTUFBTWdCLGVBQWV4Qiw4Q0FBT0E7MENBQUM7WUFDM0IsSUFBSXlCLFdBQVdqQixLQUFLa0IsTUFBTTsyREFBQ1IsQ0FBQUE7d0JBRUpBLGVBQ0FBLFlBRWdDQTtvQkFKckQsTUFBTVMsZ0JBQWdCVCxLQUFLVSxLQUFLLENBQUNDLFdBQVcsR0FBR0MsUUFBUSxDQUFDckIsV0FBV29CLFdBQVcsU0FDekRYLGdCQUFBQSxLQUFLYSxPQUFPLGNBQVpiLG9DQUFBQSxjQUFjVyxXQUFXLEdBQUdDLFFBQVEsQ0FBQ3JCLFdBQVdvQixXQUFXLFVBQzNEWCxhQUFBQSxLQUFLQyxJQUFJLGNBQVRELGlDQUFBQSxXQUFXYyxJQUFJO21FQUFDQyxDQUFBQSxNQUFPQSxJQUFJSixXQUFXLEdBQUdDLFFBQVEsQ0FBQ3JCLFdBQVdvQixXQUFXOztvQkFFN0YsTUFBTUssa0JB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QUNzQyxXQUFVOzs7Ozs7Ozs7Ozs7MERBR3hCLDhEQUFDQztnREFBSUQsV0FBVTs7b0RBQ1p3QixLQUFLQyxJQUFJLENBQUNELEtBQUtFLE1BQU0sS0FBSyxLQUFLO29EQUFFOzs7Ozs7Ozs7Ozs7Ozs7Ozs7OzJCQTFEbkNuRCxLQUFLZ0QsSUFBSTs7Ozs7Ozs7OztnQkFvRXJCMUMsYUFBYWtDLE1BQU0sR0FBRyxtQkFDckIsOERBQUNkO29CQUFJRCxXQUFVOzhCQUNiLDRFQUFDaUI7d0JBQU9qQixXQUFVO2tDQUFpSjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQVEvSztHQXZNd0JwQztLQUFBQSIsInNvdXJjZXMiOlsiRDpcXGRvbmd5dW4tcHJvamVjdHNcXHR3b1xcY29tcG9uZW50c1xcTmV3c0xpc3QudHN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBMaW5rIGZyb20gJ25leHQvbGluayc7XHJcbmltcG9ydCB7IHVzZVN0YXRlLCB1c2VNZW1vIH0gZnJvbSAncmVhY3QnO1xyXG5pbXBvcnQgeyBOZXdzSXRlbSB9IGZyb20gJy4uL2xpYi9jb250ZW50JztcclxuaW1wb3J0IHsgU2VhcmNoLCBGaWx0ZXIsIENhbGVuZGFyLCBUYWcsIEFycm93UmlnaHQsIENsb2NrIH0gZnJvbSAnbHVjaWRlLXJlYWN0JztcclxuXHJcbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIE5ld3NMaXN0KHsgbmV3cyB9OiB7IG5ld3M6IE5ld3NJdGVtW10gfSkge1xyXG4gIGNvbnN0IFtzZWFyY2hUZXJtLCBzZXRTZWFyY2hUZXJtXSA9IHVzZVN0YXRlKCcnKTtcclxuICBjb25zdCBbc2VsZWN0ZWRDYXRlZ29yeSwgc2V0U2VsZWN0ZWRDYXRlZ29yeV0gPSB1c2VTdGF0ZSgn5YWo6YOoJyk7XHJcbiAgY29uc3QgW3NvcnRCeSwgc2V0U29ydEJ5XSA9IHVzZVN0YXRlKCdkYXRlJyk7XHJcblxyXG4gIC8vIOiOt+WPluaJgOacieWIhuexu1xyXG4gIGNvbnN0IGNhdGVnb3JpZXMgPSB1c2VNZW1vKCgpID0+IHtcclxuICAgIGNvbnN0IGFsbFRhZ3MgPSBuZXdzLmZsYXRNYXAoaXRlbSA9PiBpdGVtLnRhZ3MgfHwgW10pO1xyXG4gICAgY29uc3QgdW5pcXVlVGFncyA9IEFycmF5LmZyb20obmV3IFNldChhbGxUYWdzKSk7XHJcbiAgICByZXR1cm4gWyflhajpg6gnLCAuLi51bmlxdWVUYWdzXTtcclxuICB9LCBbbmV3c10pO1xyXG5cclxuICAvLyDov4fmu6TlkozmjpLluo/mlrDpl7tcclxuICBjb25zdCBmaWx0ZXJlZE5ld3MgPSB1c2VNZW1vKCgpID0+IHtcclxuICAgIGxldCBmaWx0ZXJlZCA9IG5ld3MuZmlsdGVyKGl0ZW0gPT4ge1xyXG4gICAgICBjb25zdCBtYXRjaGVzU2VhcmNoID0gaXRlbS50aXRsZS50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKHNlYXJjaFRlcm0udG9Mb3dlckNhc2UoKSkgfHxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgaXRlbS5zdW1tYXJ5Py50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKHNlYXJjaFRlcm0udG9Mb3dlckNhc2UoKSkgfHxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgaXRlbS50YWdzPy5zb21lKHRhZyA9PiB0YWcudG9Mb3dlckNhc2UoKS5pbmNsdWRlcyhzZWFyY2hUZXJtLnRvTG93ZXJDYXNlKCkpKTtcclxuICAgICAgXHJcbiAgICAgIGNvbnN0IG1hdGNoZXNDYXRlZ29yeSA9IHNlbGVjdGVkQ2F0ZWdvcnkgPT09ICflhajpg6gnIHx8IGl0ZW0udGFncz8uaW5jbHVkZXMoc2VsZWN0ZWRDYXRlZ29yeSk7XHJcbiAgICAgIFxyXG4gICAgICByZXR1cm4gbWF0Y2hlc1NlYXJjaCAmJiBtYXRjaGVzQ2F0ZWdvcnk7XHJcbiAgICB9KTtcclxuXHJcbiAgICAvLyDmjpLluo9cclxuICAgIGZpbHRlcmVkLnNvcnQoKGEsIGIpID0+IHtcclxuICAgICAgc3dpdGNoIChzb3J0QnkpIHtcclxuICAgICAgICBjYXNlICdkYXRlJzpcclxuICAgICAgICAgIHJldHVybiBuZXcgRGF0ZShiLmRhdGUpLmdldFRpbWUoKSAtIG5ldyBEYXRlKGEuZGF0ZSkuZ2V0VGltZSgpO1xyXG4gICAgICAgIGNhc2UgJ3RpdGxlJzpcclxuICAgICAgICAgIHJldHVybiBhLnRpdGxlLmxvY2FsZUNvbXBhcmUoYi50aXRsZSk7XHJcbiAgICAgICAgZGVmYXVsdDpcclxuICAgICAgICAgIHJldHVybiAwO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuXHJcbiAgICByZXR1cm4gZmlsdGVyZWQ7XHJcbiAgfSwgW25ld3MsIHNlYXJjaFRlcm0sIHNlbGVjdGVkQ2F0ZWdvcnksIHNvcnRCeV0pO1xyXG5cclxuICByZXR1cm4gKFxyXG4gICAgPHNlY3Rpb24gY2xhc3NOYW1lPVwicHgtNiBweS0xNiBiZy1ncmF5LTUwXCI+XHJcbiAgICAgIDxkaXYgY2xhc3NOYW1lPVwibWF4LXctc2NyZWVuLXhsIG14LWF1dG9cIj5cclxuICAgICAgICB7Lyog5pCc57Si5ZKM562b6YCJ5Yy65Z+fICovfVxyXG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiYmctd2hpdGUgcm91bmRlZC0yeGwgcC02IHNoYWRvdy1zbSBtYi04XCI+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImZsZXggZmxleC1jb2wgbGc6ZmxleC1yb3cgZ2FwLTQgaXRlbXMtY2VudGVyXCI+XHJcbiAgICAgICAgICAgIHsvKiDmkJzntKLmoYYgKi99XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZmxleC0xIHJlbGF0aXZlXCI+XHJcbiAgICAgICAgICAgICAgPFNlYXJjaCBjbGFzc05hbWU9XCJhYnNvbHV0ZSBsZWZ0LTMgdG9wLTEvMiB0cmFuc2Zvcm0gLXRyYW5zbGF0ZS15LTEvMiB0ZXh0LWdyYXktNDAwIHctNSBoLTVcIiAvPlxyXG4gICAgICAgICAgICAgIDxpbnB1dFxyXG4gICAgICAgICAgICAgICAgdHlwZT1cInRleHRcIlxyXG4gICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCLmkJzntKLmlrDpl7vmoIfpopjjgIHlhoXlrrnmiJbmoIfnrb4uLi5cIlxyXG4gICAgICAgICAgICAgICAgdmFsdWU9e3NlYXJjaFRlcm19XHJcbiAgICAgICAgICAgICAgICBvbkNoYW5nZT17KGUpID0+IHNldFNlYXJjaFRlcm0oZS50YXJnZXQudmFsdWUpfVxyXG4gICAgICAgICAgICAgICAgY2xhc3NOYW1lPVwidy1mdWxsIHBsLTEwIHByLTQgcHktMyBib3JkZXIgYm9yZGVyLWdyYXktMjAwIHJvdW5kZWQteGwgZm9jdXM6cmluZy0yIGZvY3VzOnJpbmctYWNjZW50IGZvY3VzOmJvcmRlci10cmFuc3BhcmVudCBvdXRsaW5lLW5vbmVcIlxyXG4gICAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgey8qIOWIhuexu+etm+mAiSAqL31cclxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJmbGV4IGl0ZW1zLWNlbnRlciBnYXAtMlwiPlxyXG4gICAgICAgICAgICAgIDxGaWx0ZXIgY2xhc3NOYW1lPVwidy01IGgtNSB0ZXh0LWdyYXktNDAwXCIgLz5cclxuICAgICAgICAgICAgICA8c2VsZWN0XHJcbiAgICAgICAgICAgICAgICB2YWx1ZT17c2VsZWN0ZWRDYXRlZ29yeX1cclxuICAgICAgICAgICAgICAgIG9uQ2hhbmdlPXsoZSkgPT4gc2V0U2VsZWN0ZWRDYXRlZ29yeShlLnRhcmdldC52YWx1ZSl9XHJcbiAgICAgICAgICAgICAgICBjbGFzc05hbWU9XCJweC00IHB5LTMgYm9yZGVyIGJvcmRlci1ncmF5LTIwMCByb3VuZGVkLXhsIGZvY3VzOnJpbmctMiBmb2N1czpyaW5nLWFjY2VudCBmb2N1czpib3JkZXItdHJhbnNwYXJlbnQgb3V0bGluZS1ub25lXCJcclxuICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICB7Y2F0ZWdvcmllcy5tYXAoY2F0ZWdvcnkgPT4gKFxyXG4gICAgICAgICAgICAgICAgICA8b3B0aW9uIGtleT17Y2F0ZWdvcnl9IHZhbHVlPXtjYXRlZ29yeX0+e2NhdGVnb3J5fTwvb3B0aW9uPlxyXG4gICAgICAgICAgICAgICAgKSl9XHJcbiAgICAgICAgICAgICAgPC9zZWxlY3Q+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgey8qIOaOkuW6j+mAieaLqSAqL31cclxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJmbGV4IGl0ZW1zLWNlbnRlciBnYXAtMlwiPlxyXG4gICAgICAgICAgICAgIDxDYWxlbmRhciBjbGFzc05hbWU9XCJ3LTUgaC01IHRleHQtZ3JheS00MDBcIiAvPlxyXG4gICAgICAgICAgICAgIDxzZWxlY3RcclxuICAgICAgICAgICAgICAgIHZhbHVlPXtzb3J0Qnl9XHJcbiAgICAgICAgICAgICAgICBvbkNoYW5nZT17KGUpID0+IHNldFNvcnRCeShlLnRhcmdldC52YWx1ZSl9XHJcbiAgICAgICAgICAgICAgICBjbGFzc05hbWU9XCJweC00IHB5LTMgYm9yZGVyIGJvcmRlci1ncmF5LTIwMCByb3VuZGVkLXhsIGZvY3VzOnJpbmctMiBmb2N1czpyaW5nLWFjY2VudCBmb2N1czpib3JkZXItdHJhbnNwYXJlbnQgb3V0bGluZS1ub25lXCJcclxuICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPVwiZGF0ZVwiPuaMieaXpeacn+aOkuW6jzwvb3B0aW9uPlxyXG4gICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT1cInRpdGxlXCI+5oyJ5qCH6aKY5o6S5bqPPC9vcHRpb24+XHJcbiAgICAgICAgICAgICAgPC9zZWxlY3Q+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgey8qIOaQnOe0oue7k+aenOe7n+iuoSAqL31cclxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwibXQtNCBwdC00IGJvcmRlci10IGJvcmRlci1ncmF5LTEwMFwiPlxyXG4gICAgICAgICAgICA8cCBjbGFzc05hbWU9XCJ0ZXh0LXNtIHRleHQtZ3JheS02MDBcIj5cclxuICAgICAgICAgICAgICDmib7liLAgPHNwYW4gY2xhc3NOYW1lPVwiZm9udC1zZW1pYm9sZCB0ZXh0LWFjY2VudFwiPntmaWx0ZXJlZE5ld3MubGVuZ3RofTwvc3Bhbj4g5p2h5paw6Ze7XHJcbiAgICAgICAgICAgICAge3NlYXJjaFRlcm0gJiYgKFxyXG4gICAgICAgICAgICAgICAgPHNwYW4+77yM5YWz6ZSu6K+N77yaPHNwYW4gY2xhc3NOYW1lPVwiZm9udC1zZW1pYm9sZFwiPlwie3NlYXJjaFRlcm19XCI8L3NwYW4+PC9zcGFuPlxyXG4gICAgICAgICAgICAgICl9XHJcbiAgICAgICAgICAgICAge3NlbGVjdGVkQ2F0ZWdvcnkgIT09ICflhajpg6gnICYmIChcclxuICAgICAgICAgICAgICAgIDxzcGFuPu+8jOWIhuexu++8mjxzcGFuIGNsYXNzTmFtZT1cImZvbnQtc2VtaWJvbGRcIj57c2VsZWN0ZWRDYXRlZ29yeX08L3NwYW4+PC9zcGFuPlxyXG4gICAgICAgICAgICAgICl9XHJcbiAgICAgICAgICAgIDwvcD5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICB7Lyog5paw6Ze75YiX6KGoICovfVxyXG4gICAgICAgIHtmaWx0ZXJlZE5ld3MubGVuZ3RoID09PSAwID8gKFxyXG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJ0ZXh0LWNlbnRlciBweS0xNlwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInctMjQgaC0yNCBiZy1ncmF5LTEwMCByb3VuZGVkLWZ1bGwgZmxleCBpdGVtcy1jZW50ZXIganVzdGlmeS1jZW50ZXIgbXgtYXV0byBtYi00XCI+XHJcbiAgICAgICAgICAgICAgPFNlYXJjaCBjbGFzc05hbWU9XCJ3LTEyIGgtMTIgdGV4dC1ncmF5LTQwMFwiIC8+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8aDMgY2xhc3NOYW1lPVwidGV4dC14bCBmb250LXNlbWlib2xkIHRleHQtZ3JheS02MDAgbWItMlwiPuacquaJvuWIsOebuOWFs+aWsOmXuzwvaDM+XHJcbiAgICAgICAgICAgIDxwIGNsYXNzTmFtZT1cInRleHQtZ3JheS01MDAgbWItNlwiPuivt+Wwneivleiwg+aVtOaQnOe0ouadoeS7tuaIluetm+mAieWZqDwvcD5cclxuICAgICAgICAgICAgPGJ1dHRvblxyXG4gICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHtcclxuICAgICAgICAgICAgICAgIHNldFNlYXJjaFRlcm0oJycpO1xyXG4gICAgICAgICAgICAgICAgc2V0U2VsZWN0ZWRDYXRlZ29yeSgn5YWo6YOoJyk7XHJcbiAgICAgICAgICAgICAgfX1cclxuICAgICAgICAgICAgICBjbGFzc05hbWU9XCJweC02IHB5LTMgYmctYWNjZW50IHRleHQtd2hpdGUgcm91bmRlZC14bCBob3ZlcjpiZy1ibHVlLTcwMCB0cmFuc2l0aW9uLWNvbG9yc1wiXHJcbiAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICDph43nva7nrZvpgIlcclxuICAgICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICApIDogKFxyXG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJncmlkIGdyaWQtY29scy0xIGxnOmdyaWQtY29scy0yIHhsOmdyaWQtY29scy0zIGdhcC02XCI+XHJcbiAgICAgICAgICAgIHtmaWx0ZXJlZE5ld3MubWFwKChpdGVtLCBpbmRleCkgPT4gKFxyXG4gICAgICAgICAgICAgIDxhcnRpY2xlIFxyXG4gICAgICAgICAgICAgICAga2V5PXtpdGVtLnNsdWd9IFxyXG4gICAgICAgICAgICAgICAgY2xhc3NOYW1lPVwiZ3JvdXAgYmctd2hpdGUgcm91bmRlZC0yeGwgc2hhZG93LXNtIGhvdmVyOnNoYWRvdy14bCB0cmFuc2l0aW9uLWFsbCBkdXJhdGlvbi0zMDAgYm9yZGVyIGJvcmRlci1ncmF5LTEwMCBob3Zlcjpib3JkZXItYWNjZW50LzIwIG92ZXJmbG93LWhpZGRlblwiXHJcbiAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJwLTZcIj5cclxuICAgICAgICAgICAgICAgICAgey8qIOaWsOmXu+WktOmDqCAqL31cclxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJmbGV4IGl0ZW1zLXN0YXJ0IGp1c3RpZnktYmV0d2VlbiBtYi00XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJmbGV4IGl0ZW1zLWNlbnRlciBnYXAtMlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPENsb2NrIGNsYXNzTmFtZT1cInctNCBoLTQgdGV4dC1ncmF5LTQwMFwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8dGltZSBjbGFzc05hbWU9XCJ0ZXh0LXNtIHRleHQtZ3JheS01MDBcIj57aXRlbS5kYXRlfTwvdGltZT5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICB7aW5kZXggPCAzICYmIChcclxuICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cImJnLWdyYWRpZW50LXRvLXIgZnJvbS1hY2NlbnQgdG8tYmx1ZS02MDAgdGV4dC13aGl0ZSB0ZXh0LXhzIGZvbnQtc2VtaWJvbGQgcHgtMyBweS0xIHJvdW5kZWQtZnVsbFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICDng63pl6hcclxuICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICApfVxyXG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgICAgICAgIHsvKiDmlrDpl7vmoIfpopggKi99XHJcbiAgICAgICAgICAgICAgICAgIDxoMyBjbGFzc05hbWU9XCJ0ZXh0LXhsIGZvbnQtc2VtaWJvbGQgdGV4dC1wcmltYXJ5IG1iLTMgZ3JvdXAtaG92ZXI6dGV4dC1hY2NlbnQgdHJhbnNpdGlvbi1jb2xvcnMgbGluZS1jbGFtcC0yXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPExpbmsgaHJlZj17YC9uZXdzLyR7aXRlbS5zbHVnfWB9IGNsYXNzTmFtZT1cImhvdmVyOnVuZGVybGluZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAge2l0ZW0udGl0bGV9XHJcbiAgICAgICAgICAgICAgICAgICAgPC9MaW5rPlxyXG4gICAgICAgICAgICAgICAgICA8L2gzPlxyXG5cclxuICAgICAgICAgICAgICAgICAgey8qIOaWsOmXu+aRmOimgSAqL31cclxuICAgICAgICAgICAgICAgICAge2l0ZW0uc3VtbWFyeSAmJiAoXHJcbiAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3NOYW1lPVwidGV4dC1ncmF5LTYwMCB0ZXh0LXNtIGxpbmUtY2xhbXAtMyBtYi00IGxlYWRpbmctcmVsYXhlZFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAge2l0ZW0uc3VtbWFyeX1cclxuICAgICAgICAgICAgICAgICAgICA8L3A+XHJcbiAgICAgICAgICAgICAgICAgICl9XHJcblxyXG4gICAgICAgICAgICAgICAgICB7Lyog5qCH562+ICovfVxyXG4gICAgICAgICAgICAgICAgICB7aXRlbS50YWdzICYmIGl0ZW0udGFncy5sZW5ndGggPiAwICYmIChcclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImZsZXggZmxleC13cmFwIGdhcC0yIG1iLTRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgIHtpdGVtLnRhZ3MubWFwKHRhZyA9PiAoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGtleT17dGFnfSBcclxuICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU9XCJpbmxpbmUtZmxleCBpdGVtcy1jZW50ZXIgZ2FwLTEgcHgtMyBweS0xIHRleHQteHMgYmctZ3JheS0xMDAgdGV4dC1ncmF5LTYwMCByb3VuZGVkLWZ1bGwgaG92ZXI6YmctYWNjZW50IGhvdmVyOnRleHQtd2hpdGUgdHJhbnNpdGlvbi1jb2xvcnMgY3Vyc29yLXBvaW50ZXJcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHNldFNlbGVjdGVkQ2F0ZWdvcnkodGFnKX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxUYWcgY2xhc3NOYW1lPVwidy0zIGgtM1wiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAge3RhZ31cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgKSl9XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICl9XHJcblxyXG4gICAgICAgICAgICAgICAgICB7Lyog6ZiF6K+75pu05aSa5oyJ6ZKuICovfVxyXG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImZsZXggaXRlbXMtY2VudGVyIGp1c3RpZnktYmV0d2VlbiBwdC00IGJvcmRlci10IGJvcmRlci1ncmF5LTEwMFwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxMaW5rIFxyXG4gICAgICAgICAgICAgICAgICAgICAgaHJlZj17YC9uZXdzLyR7aXRlbS5zbHVnfWB9XHJcbiAgICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU9XCJpbmxpbmUtZmxleCBpdGVtcy1jZW50ZXIgZ2FwLTIgdGV4dC1hY2NlbnQgaG92ZXI6dGV4dC1ibHVlLTcwMCBmb250LW1lZGl1bSB0ZXh0LXNtIGdyb3VwLWhvdmVyOmdhcC0zIHRyYW5zaXRpb24tYWxsXCJcclxuICAgICAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgICAgICDpmIXor7vlhajmlodcclxuICAgICAgICAgICAgICAgICAgICAgIDxBcnJvd1JpZ2h0IGNsYXNzTmFtZT1cInctNCBoLTQgZ3JvdXAtaG92ZXI6dHJhbnNsYXRlLXgtMSB0cmFuc2l0aW9uLXRyYW5zZm9ybVwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9MaW5rPlxyXG4gICAgICAgICAgICAgICAgICAgIFxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwidGV4dC14cyB0ZXh0LWdyYXktNDAwXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICB7TWF0aC5jZWlsKE1hdGgucmFuZG9tKCkgKiA1KSArIDF9IOWIhumSn+mYheivu1xyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDwvYXJ0aWNsZT5cclxuICAgICAgICAgICAgKSl9XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICApfVxyXG5cclxuICAgICAgICB7Lyog5Yqg6L295pu05aSa5oyJ6ZKu77yI5aaC5p6c5paw6Ze75b6I5aSa55qE6K+d77yJICovfVxyXG4gICAgICAgIHtmaWx0ZXJlZE5ld3MubGVuZ3RoID4gNiAmJiAoXHJcbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInRleHQtY2VudGVyIG10LTEyXCI+XHJcbiAgICAgICAgICAgIDxidXR0b24gY2xhc3NOYW1lPVwicHgtOCBweS0zIGJnLXdoaXRlIGJvcmRlciBib3JkZXItZ3JheS0yMDAgdGV4dC1wcmltYXJ5IHJvdW5kZWQteGwgaG92ZXI6YmctZ3JheS01MCBob3Zlcjpib3JkZXItYWNjZW50IHRyYW5zaXRpb24tYWxsIGR1cmF0aW9uLTMwMCBmb250LW1lZGl1bVwiPlxyXG4gICAgICAgICAgICAgIOWKoOi9veabtOWkmuaWsOmXu1xyXG4gICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICl9XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9zZWN0aW9uPlxyXG4gICk7XHJcbn0iXSwibmFtZXMiOlsiTGluayIsInVzZVN0YXRlIiwidXNlTWVtbyIsIlNlYXJjaCIsIkZpbHRlciIsIkNhbGVuZGFyIiwiVGFnIiwiQXJyb3dSaWdodCIsIkNsb2NrIiwiTmV3c0xpc3QiLCJuZXdzIiwic2VhcmNoVGVybSIsInNldFNlYXJjaFRlcm0iLCJzZWxlY3RlZENhdGVnb3J5Iiwic2V0U2VsZWN0ZWRDYXRlZ29yeSIsInNvcnRCeSIsInNldFNvcnRCeSIsImNhdGVnb3JpZXMiLCJhbGxUYWdzIiwiZmxhdE1hcCIsIml0ZW0iLCJ0YWdzIiwidW5pcXVlVGFncyIsIkFycmF5IiwiZnJvbSIsIlNldCIsImZpbHRlcmVkTmV3cyIsImZpbHRlcmVkIiwiZmlsdGVyIiwibWF0Y2hlc1NlYXJjaCIsInRpdGxlIiwidG9Mb3dlckNhc2UiLCJpbmNsdWRlcyIsInN1bW1hcnkiLCJzb21lIiwidGFnIiwibWF0Y2hlc0NhdGVnb3J5Iiwic29ydCIsImEiLCJiIiwiRGF0ZSIsImRhdGUiLCJnZXRUaW1lIiwibG9jYWxlQ29tcGFyZSIsInNlY3Rpb24iLCJjbGFzc05hbWUiLCJkaXYiLCJpbnB1dCIsInR5cGUiLCJwbGFjZWhvbGRlciIsInZhbHVlIiwib25DaGFuZ2UiLCJlIiwidGFyZ2V0Iiwic2VsZWN0IiwibWFwIiwiY2F0ZWdvcnkiLCJvcHRpb24iLCJwIiwic3BhbiIsImxlbmd0aCIsImgzIiwiYnV0dG9uIiwib25DbGljayIsImluZGV4IiwiYXJ0aWNsZSIsInRpbWUiLCJocmVmIiwic2x1ZyIsIk1hdGgiLCJjZWlsIiwicmFuZG9tIl0sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(pages-dir-browser)/./components/NewsList.tsx\n")); - -/***/ }), - -/***/ "(pages-dir-browser)/./components/Sidebar.tsx": -/*!********************************!*\ - !*** ./components/Sidebar.tsx ***! - \********************************/ -/***/ ((module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ Sidebar)\n/* harmony export */ });\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react/jsx-dev-runtime */ \"(pages-dir-browser)/./node_modules/react/jsx-dev-runtime.js\");\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var next_link__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! next/link */ \"(pages-dir-browser)/./node_modules/next/link.js\");\n/* harmony import */ var next_link__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(next_link__WEBPACK_IMPORTED_MODULE_1__);\n\n\nfunction Sidebar(param) {\n let { open, onClose } = param;\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"aside\", {\n className: \"fixed inset-y-0 right-0 w-64 bg-background shadow-lg transform transition-transform duration-300 \" + (open ? 'translate-x-0' : 'translate-x-full'),\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"button\", {\n onClick: onClose,\n className: \"p-4 focus:outline-none text-primary\",\n children: \"✕ 关闭\"\n }, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\Sidebar.tsx\",\n lineNumber: 11,\n columnNumber: 7\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"nav\", {\n className: \"flex flex-col p-6 gap-6 font-medium\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)((next_link__WEBPACK_IMPORTED_MODULE_1___default()), {\n href: \"/features\",\n legacyBehavior: true,\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"a\", {\n onClick: onClose,\n className: \"hover:text-accent\",\n children: \"特性\"\n }, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\Sidebar.tsx\",\n lineNumber: 14,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\Sidebar.tsx\",\n lineNumber: 13,\n columnNumber: 9\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)((next_link__WEBPACK_IMPORTED_MODULE_1___default()), {\n href: \"/pricing\",\n legacyBehavior: true,\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"a\", {\n onClick: onClose,\n className: \"hover:text-accent\",\n children: \"定价\"\n }, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\Sidebar.tsx\",\n lineNumber: 17,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\Sidebar.tsx\",\n lineNumber: 16,\n columnNumber: 9\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)((next_link__WEBPACK_IMPORTED_MODULE_1___default()), {\n href: \"/contact\",\n legacyBehavior: true,\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"a\", {\n onClick: onClose,\n className: \"hover:text-accent\",\n children: \"联系我们\"\n }, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\Sidebar.tsx\",\n lineNumber: 20,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\Sidebar.tsx\",\n lineNumber: 19,\n columnNumber: 9\n }, this)\n ]\n }, void 0, true, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\Sidebar.tsx\",\n lineNumber: 12,\n columnNumber: 7\n }, this)\n ]\n }, void 0, true, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\components\\\\Sidebar.tsx\",\n lineNumber: 5,\n columnNumber: 5\n }, this);\n}\n_c = Sidebar;\nvar _c;\n$RefreshReg$(_c, \"Sidebar\");\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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1icm93c2VyKS8uL2NvbXBvbmVudHMvU2lkZWJhci50c3giLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O0FBQTZCO0FBRWQsU0FBU0MsUUFBUSxLQUF5RDtRQUF6RCxFQUFFQyxJQUFJLEVBQUVDLE9BQU8sRUFBMEMsR0FBekQ7SUFDOUIscUJBQ0UsOERBQUNDO1FBQ0NDLFdBQ0Usc0dBQ0NILENBQUFBLE9BQU8sa0JBQWtCLGtCQUFpQjs7MEJBRzdDLDhEQUFDSTtnQkFBT0MsU0FBU0o7Z0JBQVNFLFdBQVU7MEJBQXNDOzs7Ozs7MEJBQzFFLDhEQUFDRztnQkFBSUgsV0FBVTs7a0NBQ2IsOERBQUNMLGtEQUFJQTt3QkFBQ1MsTUFBSzt3QkFBWUMsY0FBYztrQ0FDbkMsNEVBQUNDOzRCQUFFSixTQUFTSjs0QkFBU0UsV0FBVTtzQ0FBb0I7Ozs7Ozs7Ozs7O2tDQUVyRCw4REFBQ0wsa0RBQUlBO3dCQUFDUyxNQUFLO3dCQUFXQyxjQUFjO2tDQUNsQyw0RUFBQ0M7NEJBQUVKLFNBQVNKOzRCQUFTRSxXQUFVO3NDQUFvQjs7Ozs7Ozs7Ozs7a0NBRXJELDhEQUFDTCxrREFBSUE7d0JBQUNTLE1BQUs7d0JBQVdDLGNBQWM7a0NBQ2xDLDRFQUFDQzs0QkFBRUosU0FBU0o7NEJBQVNFLFdBQVU7c0NBQW9COzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUs3RDtLQXRCd0JKIiwic291cmNlcyI6WyJEOlxcZG9uZ3l1bi1wcm9qZWN0c1xcdHdvXFxjb21wb25lbnRzXFxTaWRlYmFyLnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgTGluayBmcm9tICduZXh0L2xpbmsnO1xyXG5cclxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gU2lkZWJhcih7IG9wZW4sIG9uQ2xvc2UgfTogeyBvcGVuOiBib29sZWFuOyBvbkNsb3NlOiAoKSA9PiB2b2lkIH0pIHtcclxuICByZXR1cm4gKFxyXG4gICAgPGFzaWRlXHJcbiAgICAgIGNsYXNzTmFtZT17XHJcbiAgICAgICAgYGZpeGVkIGluc2V0LXktMCByaWdodC0wIHctNjQgYmctYmFja2dyb3VuZCBzaGFkb3ctbGcgdHJhbnNmb3JtIHRyYW5zaXRpb24tdHJhbnNmb3JtIGR1cmF0aW9uLTMwMCBgICtcclxuICAgICAgICAob3BlbiA/ICd0cmFuc2xhdGUteC0wJyA6ICd0cmFuc2xhdGUteC1mdWxsJylcclxuICAgICAgfVxyXG4gICAgPlxyXG4gICAgICA8YnV0dG9uIG9uQ2xpY2s9e29uQ2xvc2V9IGNsYXNzTmFtZT1cInAtNCBmb2N1czpvdXRsaW5lLW5vbmUgdGV4dC1wcmltYXJ5XCI+4pyVIOWFs+mXrTwvYnV0dG9uPlxyXG4gICAgICA8bmF2IGNsYXNzTmFtZT1cImZsZXggZmxleC1jb2wgcC02IGdhcC02IGZvbnQtbWVkaXVtXCI+XHJcbiAgICAgICAgPExpbmsgaHJlZj1cIi9mZWF0dXJlc1wiIGxlZ2FjeUJlaGF2aW9yPlxyXG4gICAgICAgICAgPGEgb25DbGljaz17b25DbG9zZX0gY2xhc3NOYW1lPVwiaG92ZXI6dGV4dC1hY2NlbnRcIj7nibnmgKc8L2E+XHJcbiAgICAgICAgPC9MaW5rPlxyXG4gICAgICAgIDxMaW5rIGhyZWY9XCIvcHJpY2luZ1wiIGxlZ2FjeUJlaGF2aW9yPlxyXG4gICAgICAgICAgPGEgb25DbGljaz17b25DbG9zZX0gY2xhc3NOYW1lPVwiaG92ZXI6dGV4dC1hY2NlbnRcIj7lrprku7c8L2E+XHJcbiAgICAgICAgPC9MaW5rPlxyXG4gICAgICAgIDxMaW5rIGhyZWY9XCIvY29udGFjdFwiIGxlZ2FjeUJlaGF2aW9yPlxyXG4gICAgICAgICAgPGEgb25DbGljaz17b25DbG9zZX0gY2xhc3NOYW1lPVwiaG92ZXI6dGV4dC1hY2NlbnRcIj7ogZTns7vmiJHku6w8L2E+XHJcbiAgICAgICAgPC9MaW5rPlxyXG4gICAgICA8L25hdj5cclxuICAgIDwvYXNpZGU+XHJcbiAgKTtcclxufSJdLCJuYW1lcyI6WyJMaW5rIiwiU2lkZWJhciIsIm9wZW4iLCJvbkNsb3NlIiwiYXNpZGUiLCJjbGFzc05hbWUiLCJidXR0b24iLCJvbkNsaWNrIiwibmF2IiwiaHJlZiIsImxlZ2FjeUJlaGF2aW9yIiwiYSJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(pages-dir-browser)/./components/Sidebar.tsx\n")); - -/***/ }), - -/***/ "(pages-dir-browser)/./node_modules/lucide-react/dist/esm/Icon.js": -/*!****************************************************!*\ - !*** ./node_modules/lucide-react/dist/esm/Icon.js ***! - \****************************************************/ -/***/ ((module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ Icon)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"(pages-dir-browser)/./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _defaultAttributes_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./defaultAttributes.js */ \"(pages-dir-browser)/./node_modules/lucide-react/dist/esm/defaultAttributes.js\");\n/* harmony import */ var _shared_src_utils_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./shared/src/utils.js */ \"(pages-dir-browser)/./node_modules/lucide-react/dist/esm/shared/src/utils.js\");\n/**\n * @license lucide-react v0.525.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */ \n\n\nconst Icon = /*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.forwardRef)(_c = (param, ref)=>{\n let { color = \"currentColor\", size = 24, strokeWidth = 2, absoluteStrokeWidth, className = \"\", children, iconNode, ...rest } = param;\n return /*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(\"svg\", {\n ref,\n ..._defaultAttributes_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"],\n width: size,\n height: size,\n stroke: color,\n strokeWidth: absoluteStrokeWidth ? Number(strokeWidth) * 24 / Number(size) : strokeWidth,\n className: (0,_shared_src_utils_js__WEBPACK_IMPORTED_MODULE_2__.mergeClasses)(\"lucide\", className),\n ...!children && !(0,_shared_src_utils_js__WEBPACK_IMPORTED_MODULE_2__.hasA11yProp)(rest) && {\n \"aria-hidden\": \"true\"\n },\n ...rest\n }, [\n ...iconNode.map((param)=>{\n let [tag, attrs] = param;\n return /*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(tag, attrs);\n }),\n ...Array.isArray(children) ? children : [\n children\n ]\n ]);\n});\n_c1 = Icon;\n //# sourceMappingURL=Icon.js.map\nvar _c, _c1;\n$RefreshReg$(_c, \"Icon$forwardRef\");\n$RefreshReg$(_c1, \"Icon\");\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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9sdWNpZGUtcmVhY3QvZGlzdC9lc20vSWNvbi5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7O0FBd0JBLENBQU0sU0FBTyx3RUFDWCxRQVdFLENBRUE7UUFaQSxFQUNFLEtBQVEsbUJBQ1IsSUFBTyxPQUNQLFdBQWMsTUFDZCxxQkFDQSxTQUFZLE9BQ1osVUFDQSxVQUNBLENBQUc7eUJBSUwscURBQ0UsT0FDQTtRQUNFO1FBQ0EsR0FBRztRQUNILEtBQU87UUFDUCxNQUFRO1FBQ1IsTUFBUTtRQUNSLFlBQWEscUJBQXVCLFFBQU8sRUFBVyxZQUFJLElBQU0sVUFBTyxDQUFJLElBQUk7UUFDL0UsVUFBVyxtRUFBYSxXQUFVLFNBQVM7UUFDM0MsQ0FBSSxHQUFDLENBQVksWUFBQyxpRUFBVyxDQUFDLENBQUksS0FBSztZQUFFLGVBQWUsTUFBTztRQUFBO1FBQy9ELENBQUc7SUFDTCxHQUNBO1dBQ0ssQ0FBUyxZQUFJO2dCQUFDLENBQUMsQ0FBSyxLQUFLLEtBQU07aUNBQUEscURBQWMsR0FBSyxPQUFLLENBQUM7O1dBQ3ZELENBQU0sYUFBUSxDQUFRLFFBQUksWUFBVztZQUFDLENBQVE7U0FBQTtLQUFBIiwic291cmNlcyI6WyJEOlxcc3JjXFxJY29uLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGNyZWF0ZUVsZW1lbnQsIGZvcndhcmRSZWYgfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgeyBJY29uTm9kZSwgTHVjaWRlUHJvcHMgfSBmcm9tICcuL3R5cGVzJztcbmltcG9ydCB7IG1lcmdlQ2xhc3NlcywgaGFzQTExeVByb3AgfSBmcm9tICdAbHVjaWRlL3NoYXJlZCc7XG5cbmludGVyZmFjZSBJY29uQ29tcG9uZW50UHJvcHMgZXh0ZW5kcyBMdWNpZGVQcm9wcyB7XG4gIGljb25Ob2RlOiBJY29uTm9kZTtcbn1cblxuLyoqXG4gKiBMdWNpZGUgaWNvbiBjb21wb25lbnRcbiAqXG4gKiBAY29tcG9uZW50IEljb25cbiAqIEBwYXJhbSB7b2JqZWN0fSBwcm9wc1xuICogQHBhcmFtIHtzdHJpbmd9IHByb3BzLmNvbG9yIC0gVGhlIGNvbG9yIG9mIHRoZSBpY29uXG4gKiBAcGFyYW0ge251bWJlcn0gcHJvcHMuc2l6ZSAtIFRoZSBzaXplIG9mIHRoZSBpY29uXG4gKiBAcGFyYW0ge251bWJlcn0gcHJvcHMuc3Ryb2tlV2lkdGggLSBUaGUgc3Ryb2tlIHdpZHRoIG9mIHRoZSBpY29uXG4gKiBAcGFyYW0ge2Jvb2xlYW59IHByb3BzLmFic29sdXRlU3Ryb2tlV2lkdGggLSBXaGV0aGVyIHRvIHVzZSBhYnNvbHV0ZSBzdHJva2Ugd2lkdGhcbiAqIEBwYXJhbSB7c3RyaW5nfSBwcm9wcy5jbGFzc05hbWUgLSBUaGUgY2xhc3MgbmFtZSBvZiB0aGUgaWNvblxuICogQHBhcmFtIHtJY29uTm9kZX0gcHJvcHMuY2hpbGRyZW4gLSBUaGUgY2hpbGRyZW4gb2YgdGhlIGljb25cbiAqIEBwYXJhbSB7SWNvbk5vZGV9IHByb3BzLmljb25Ob2RlIC0gVGhlIGljb24gbm9kZSBvZiB0aGUgaWNvblxuICpcbiAqIEByZXR1cm5zIHtGb3J3YXJkUmVmRXhvdGljQ29tcG9uZW50fSBMdWNpZGVJY29uXG4gKi9cbmNvbnN0IEljb24gPSBmb3J3YXJkUmVmPFNWR1NWR0VsZW1lbnQsIEljb25Db21wb25lbnRQcm9wcz4oXG4gIChcbiAgICB7XG4gICAgICBjb2xvciA9ICdjdXJyZW50Q29sb3InLFxuICAgICAgc2l6ZSA9IDI0LFxuICAgICAgc3Ryb2tlV2lkdGggPSAyLFxuICAgICAgYWJzb2x1dGVTdHJva2VXaWR0aCxcbiAgICAgIGNsYXNzTmFtZSA9ICcnLFxuICAgICAgY2hpbGRyZW4sXG4gICAgICBpY29uTm9kZSxcbiAgICAgIC4uLnJlc3RcbiAgICB9LFxuICAgIHJlZixcbiAgKSA9PlxuICAgIGNyZWF0ZUVsZW1lbnQoXG4gICAgICAnc3ZnJyxcbiAgICAgIHtcbiAgICAgICAgcmVmLFxuICAgICAgICAuLi5kZWZhdWx0QXR0cmlidXRlcyxcbiAgICAgICAgd2lkdGg6IHNpemUsXG4gICAgICAgIGhlaWdodDogc2l6ZSxcbiAgICAgICAgc3Ryb2tlOiBjb2xvcixcbiAgICAgICAgc3Ryb2tlV2lkdGg6IGFic29sdXRlU3Ryb2tlV2lkdGggPyAoTnVtYmVyKHN0cm9rZVdpZHRoKSAqIDI0KSAvIE51bWJlcihzaXplKSA6IHN0cm9rZVdpZHRoLFxuICAgICAgICBjbGFzc05hbWU6IG1lcmdlQ2xhc3NlcygnbHVjaWRlJywgY2xhc3NOYW1lKSxcbiAgICAgICAgLi4uKCFjaGlsZHJlbiAmJiAhaGFzQTExeVByb3AocmVzdCkgJiYgeyAnYXJpYS1oaWRkZW4nOiAndHJ1ZScgfSksXG4gICAgICAgIC4uLnJlc3QsXG4gICAgICB9LFxuICAgICAgW1xuICAgICAgICAuLi5pY29uTm9kZS5tYXAoKFt0YWcsIGF0dHJzXSkgPT4gY3JlYXRlRWxlbWVudCh0YWcsIGF0dHJzKSksXG4gICAgICAgIC4uLihBcnJheS5pc0FycmF5KGNoaWxkcmVuKSA/IGNoaWxkcmVuIDogW2NoaWxkcmVuXSksXG4gICAgICBdLFxuICAgICksXG4pO1xuXG5leHBvcnQgZGVmYXVsdCBJY29uO1xuIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(pages-dir-browser)/./node_modules/lucide-react/dist/esm/Icon.js\n")); - -/***/ }), - -/***/ "(pages-dir-browser)/./node_modules/lucide-react/dist/esm/createLucideIcon.js": -/*!****************************************************************!*\ - !*** ./node_modules/lucide-react/dist/esm/createLucideIcon.js ***! - \****************************************************************/ -/***/ ((module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ createLucideIcon)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"(pages-dir-browser)/./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _shared_src_utils_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./shared/src/utils.js */ \"(pages-dir-browser)/./node_modules/lucide-react/dist/esm/shared/src/utils.js\");\n/* harmony import */ var _Icon_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./Icon.js */ \"(pages-dir-browser)/./node_modules/lucide-react/dist/esm/Icon.js\");\n/**\n * @license lucide-react v0.525.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */ \n\n\nconst createLucideIcon = (iconName, iconNode)=>{\n const Component = /*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.forwardRef)((param, ref)=>{\n let { className, ...props } = param;\n return /*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(_Icon_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"], {\n ref,\n iconNode,\n className: (0,_shared_src_utils_js__WEBPACK_IMPORTED_MODULE_2__.mergeClasses)(\"lucide-\".concat((0,_shared_src_utils_js__WEBPACK_IMPORTED_MODULE_2__.toKebabCase)((0,_shared_src_utils_js__WEBPACK_IMPORTED_MODULE_2__.toPascalCase)(iconName))), \"lucide-\".concat(iconName), className),\n ...props\n });\n });\n Component.displayName = (0,_shared_src_utils_js__WEBPACK_IMPORTED_MODULE_2__.toPascalCase)(iconName);\n return Component;\n};\n //# sourceMappingURL=createLucideIcon.js.map\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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9sdWNpZGUtcmVhY3QvZGlzdC9lc20vY3JlYXRlTHVjaWRlSWNvbi5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7O0FBV00sdUJBQW1CLEdBQUMsVUFBa0IsUUFBdUI7SUFDakUsTUFBTSxDQUFZLDJFQUF1QyxRQUEwQjtZQUF6QixFQUFFLENBQVcsV0FBRyxRQUFTOzZCQUNqRixvREFBYSxDQUFDLGdEQUFNO1lBQ2xCO1lBQ0E7WUFDQSxTQUFXLHFFQUNDLFVBQW1DLE9BQW5DLGtFQUFZLGtFQUFhLEVBQVEsUUFBQyxDQUFDLEdBQzdDLFFBQVUsRUFBUSxPQUFSLFFBQVEsR0FDbEI7WUFFRixDQUFHO1FBQ0o7O0lBR08sd0JBQWMsa0VBQVksQ0FBQyxRQUFRO0lBRXRDO0FBQ1QiLCJzb3VyY2VzIjpbIkQ6XFxzcmNcXGNyZWF0ZUx1Y2lkZUljb24udHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgY3JlYXRlRWxlbWVudCwgZm9yd2FyZFJlZiB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IG1lcmdlQ2xhc3NlcywgdG9LZWJhYkNhc2UsIHRvUGFzY2FsQ2FzZSB9IGZyb20gJ0BsdWNpZGUvc2hhcmVkJztcbmltcG9ydCB7IEljb25Ob2RlLCBMdWNpZGVQcm9wcyB9IGZyb20gJy4vdHlwZXMnO1xuaW1wb3J0IEljb24gZnJvbSAnLi9JY29uJztcblxuLyoqXG4gKiBDcmVhdGUgYSBMdWNpZGUgaWNvbiBjb21wb25lbnRcbiAqIEBwYXJhbSB7c3RyaW5nfSBpY29uTmFtZVxuICogQHBhcmFtIHthcnJheX0gaWNvbk5vZGVcbiAqIEByZXR1cm5zIHtGb3J3YXJkUmVmRXhvdGljQ29tcG9uZW50fSBMdWNpZGVJY29uXG4gKi9cbmNvbnN0IGNyZWF0ZUx1Y2lkZUljb24gPSAoaWNvbk5hbWU6IHN0cmluZywgaWNvbk5vZGU6IEljb25Ob2RlKSA9PiB7XG4gIGNvbnN0IENvbXBvbmVudCA9IGZvcndhcmRSZWY8U1ZHU1ZHRWxlbWVudCwgTHVjaWRlUHJvcHM+KCh7IGNsYXNzTmFtZSwgLi4ucHJvcHMgfSwgcmVmKSA9PlxuICAgIGNyZWF0ZUVsZW1lbnQoSWNvbiwge1xuICAgICAgcmVmLFxuICAgICAgaWNvbk5vZGUsXG4gICAgICBjbGFzc05hbWU6IG1lcmdlQ2xhc3NlcyhcbiAgICAgICAgYGx1Y2lkZS0ke3RvS2ViYWJDYXNlKHRvUGFzY2FsQ2FzZShpY29uTmFtZSkpfWAsXG4gICAgICAgIGBsdWNpZGUtJHtpY29uTmFtZX1gLFxuICAgICAgICBjbGFzc05hbWUsXG4gICAgICApLFxuICAgICAgLi4ucHJvcHMsXG4gICAgfSksXG4gICk7XG5cbiAgQ29tcG9uZW50LmRpc3BsYXlOYW1lID0gdG9QYXNjYWxDYXNlKGljb25OYW1lKTtcblxuICByZXR1cm4gQ29tcG9uZW50O1xufTtcblxuZXhwb3J0IGRlZmF1bHQgY3JlYXRlTHVjaWRlSWNvbjtcbiJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(pages-dir-browser)/./node_modules/lucide-react/dist/esm/createLucideIcon.js\n")); - -/***/ }), - -/***/ "(pages-dir-browser)/./node_modules/lucide-react/dist/esm/defaultAttributes.js": -/*!*****************************************************************!*\ - !*** ./node_modules/lucide-react/dist/esm/defaultAttributes.js ***! - \*****************************************************************/ -/***/ ((module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ defaultAttributes)\n/* harmony export */ });\n/**\n * @license lucide-react v0.525.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */ var defaultAttributes = {\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 24,\n height: 24,\n viewBox: \"0 0 24 24\",\n fill: \"none\",\n stroke: \"currentColor\",\n strokeWidth: 2,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n};\n //# sourceMappingURL=defaultAttributes.js.map\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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9sdWNpZGUtcmVhY3QvZGlzdC9lc20vZGVmYXVsdEF0dHJpYnV0ZXMuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O0lBQUEsQ0FBZTtJQUNiLEtBQU87SUFDUCxLQUFPO0lBQ1AsTUFBUTtJQUNSLE9BQVM7SUFDVCxJQUFNO0lBQ04sTUFBUTtJQUNSLFdBQWE7SUFDYixhQUFlO0lBQ2YsY0FBZ0I7QUFDbEIiLCJzb3VyY2VzIjpbIkQ6XFxzcmNcXGRlZmF1bHRBdHRyaWJ1dGVzLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBkZWZhdWx0IHtcbiAgeG1sbnM6ICdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZycsXG4gIHdpZHRoOiAyNCxcbiAgaGVpZ2h0OiAyNCxcbiAgdmlld0JveDogJzAgMCAyNCAyNCcsXG4gIGZpbGw6ICdub25lJyxcbiAgc3Ryb2tlOiAnY3VycmVudENvbG9yJyxcbiAgc3Ryb2tlV2lkdGg6IDIsXG4gIHN0cm9rZUxpbmVjYXA6ICdyb3VuZCcsXG4gIHN0cm9rZUxpbmVqb2luOiAncm91bmQnLFxufTtcbiJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(pages-dir-browser)/./node_modules/lucide-react/dist/esm/defaultAttributes.js\n")); - -/***/ }), - -/***/ "(pages-dir-browser)/./node_modules/lucide-react/dist/esm/icons/arrow-right.js": -/*!*****************************************************************!*\ - !*** ./node_modules/lucide-react/dist/esm/icons/arrow-right.js ***! - \*****************************************************************/ -/***/ ((module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ __iconNode: () => (/* binding */ __iconNode),\n/* harmony export */ \"default\": () => (/* binding */ ArrowRight)\n/* harmony export */ });\n/* harmony import */ var _createLucideIcon_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../createLucideIcon.js */ \"(pages-dir-browser)/./node_modules/lucide-react/dist/esm/createLucideIcon.js\");\n/**\n * @license lucide-react v0.525.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */ \nconst __iconNode = [\n [\n \"path\",\n {\n d: \"M5 12h14\",\n key: \"1ays0h\"\n }\n ],\n [\n \"path\",\n {\n d: \"m12 5 7 7-7 7\",\n key: \"xquz4c\"\n }\n ]\n];\nconst ArrowRight = (0,_createLucideIcon_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(\"arrow-right\", __iconNode);\n //# sourceMappingURL=arrow-right.js.map\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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9sdWNpZGUtcmVhY3QvZGlzdC9lc20vaWNvbnMvYXJyb3ctcmlnaHQuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7O0FBR08sTUFBTSxVQUF1QjtJQUNsQztRQUFDLE1BQVE7UUFBQTtZQUFFLEdBQUcsQ0FBWTtZQUFBLEtBQUs7UUFBQSxDQUFVO0tBQUE7SUFDekM7UUFBQyxDQUFRO1FBQUEsQ0FBRTtZQUFBLEVBQUcsZ0JBQWlCO1lBQUEsSUFBSztRQUFVO0tBQUE7Q0FDaEQ7QUFhTSxpQkFBYSxrRUFBaUIsZ0JBQWUsQ0FBVSIsInNvdXJjZXMiOlsiRDpcXHNyY1xcaWNvbnNcXGFycm93LXJpZ2h0LnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTUgMTJoMTQnLCBrZXk6ICcxYXlzMGgnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdtMTIgNSA3IDctNyA3Jywga2V5OiAneHF1ejRjJyB9XSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBBcnJvd1JpZ2h0XG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5OU0F4TW1neE5DSWdMejRLSUNBOGNHRjBhQ0JrUFNKdE1USWdOU0EzSURjdE55QTNJaUF2UGdvOEwzTjJaejRLKSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9hcnJvdy1yaWdodFxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IEFycm93UmlnaHQgPSBjcmVhdGVMdWNpZGVJY29uKCdhcnJvdy1yaWdodCcsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBBcnJvd1JpZ2h0O1xuIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(pages-dir-browser)/./node_modules/lucide-react/dist/esm/icons/arrow-right.js\n")); - -/***/ }), - -/***/ "(pages-dir-browser)/./node_modules/lucide-react/dist/esm/icons/calendar.js": -/*!**************************************************************!*\ - !*** ./node_modules/lucide-react/dist/esm/icons/calendar.js ***! - \**************************************************************/ -/***/ ((module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ __iconNode: () => (/* binding */ __iconNode),\n/* harmony export */ \"default\": () => (/* binding */ Calendar)\n/* harmony export */ });\n/* harmony import */ var _createLucideIcon_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../createLucideIcon.js */ \"(pages-dir-browser)/./node_modules/lucide-react/dist/esm/createLucideIcon.js\");\n/**\n * @license lucide-react v0.525.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */ \nconst __iconNode = [\n [\n \"path\",\n {\n d: \"M8 2v4\",\n key: \"1cmpym\"\n }\n ],\n [\n \"path\",\n {\n d: \"M16 2v4\",\n key: \"4m81vk\"\n }\n ],\n [\n \"rect\",\n {\n width: \"18\",\n height: \"18\",\n x: \"3\",\n y: \"4\",\n rx: \"2\",\n key: \"1hopcy\"\n }\n ],\n [\n \"path\",\n {\n d: \"M3 10h18\",\n key: \"8toen8\"\n }\n ]\n];\nconst Calendar = (0,_createLucideIcon_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(\"calendar\", __iconNode);\n //# sourceMappingURL=calendar.js.map\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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9sdWNpZGUtcmVhY3QvZGlzdC9lc20vaWNvbnMvY2FsZW5kYXIuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7O0FBR08sTUFBTSxVQUF1QjtJQUNsQztRQUFDLE1BQVE7UUFBQTtZQUFFLEdBQUcsQ0FBVTtZQUFBLEtBQUs7UUFBQSxDQUFVO0tBQUE7SUFDdkM7UUFBQyxNQUFRO1FBQUE7WUFBRSxHQUFHLENBQVc7WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0lBQ3hDO1FBQUMsT0FBUTtRQUFBO1lBQUUsT0FBTztZQUFNLENBQVE7WUFBTSxDQUFHO1lBQUssR0FBRyxDQUFLO1lBQUEsSUFBSSxDQUFLO1lBQUEsS0FBSztRQUFBLENBQVU7S0FBQTtJQUM5RTtRQUFDLENBQVE7UUFBQSxDQUFFO1lBQUEsRUFBRyxXQUFZO1lBQUEsSUFBSztRQUFVO0tBQUE7Q0FDM0M7QUFhTSxlQUFXLGtFQUFpQixhQUFZLENBQVUiLCJzb3VyY2VzIjpbIkQ6XFxzcmNcXGljb25zXFxjYWxlbmRhci50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ004IDJ2NCcsIGtleTogJzFjbXB5bScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xNiAydjQnLCBrZXk6ICc0bTgxdmsnIH1dLFxuICBbJ3JlY3QnLCB7IHdpZHRoOiAnMTgnLCBoZWlnaHQ6ICcxOCcsIHg6ICczJywgeTogJzQnLCByeDogJzInLCBrZXk6ICcxaG9wY3knIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMyAxMGgxOCcsIGtleTogJzh0b2VuOCcgfV0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgQ2FsZW5kYXJcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk9DQXlkalFpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVEUySURKMk5DSWdMejRLSUNBOGNtVmpkQ0IzYVdSMGFEMGlNVGdpSUdobGFXZG9kRDBpTVRnaUlIZzlJak1pSUhrOUlqUWlJSEo0UFNJeUlpQXZQZ29nSUR4d1lYUm9JR1E5SWsweklERXdhREU0SWlBdlBnbzhMM04yWno0SykgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvY2FsZW5kYXJcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBDYWxlbmRhciA9IGNyZWF0ZUx1Y2lkZUljb24oJ2NhbGVuZGFyJywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IENhbGVuZGFyO1xuIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(pages-dir-browser)/./node_modules/lucide-react/dist/esm/icons/calendar.js\n")); - -/***/ }), - -/***/ "(pages-dir-browser)/./node_modules/lucide-react/dist/esm/icons/clock.js": -/*!***********************************************************!*\ - !*** ./node_modules/lucide-react/dist/esm/icons/clock.js ***! - \***********************************************************/ -/***/ ((module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ __iconNode: () => (/* binding */ __iconNode),\n/* harmony export */ \"default\": () => (/* binding */ Clock)\n/* harmony export */ });\n/* harmony import */ var _createLucideIcon_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../createLucideIcon.js */ \"(pages-dir-browser)/./node_modules/lucide-react/dist/esm/createLucideIcon.js\");\n/**\n * @license lucide-react v0.525.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */ \nconst __iconNode = [\n [\n \"path\",\n {\n d: \"M12 6v6l4 2\",\n key: \"mmk7yg\"\n }\n ],\n [\n \"circle\",\n {\n cx: \"12\",\n cy: \"12\",\n r: \"10\",\n key: \"1mglay\"\n }\n ]\n];\nconst Clock = (0,_createLucideIcon_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(\"clock\", __iconNode);\n //# sourceMappingURL=clock.js.map\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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9sdWNpZGUtcmVhY3QvZGlzdC9lc20vaWNvbnMvY2xvY2suanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7O0FBR08sTUFBTSxVQUF1QjtJQUNsQztRQUFDLE1BQVE7UUFBQTtZQUFFLEdBQUcsQ0FBZTtZQUFBLEtBQUs7UUFBQSxDQUFVO0tBQUE7SUFDNUM7UUFBQyxDQUFVO1FBQUE7WUFBRSxDQUFJLFFBQU07WUFBQSxFQUFJO1lBQU0sQ0FBRztZQUFNLENBQUs7UUFBVTtLQUFBO0NBQzNEO0FBYU0sWUFBUSxrRUFBaUIsVUFBUyxDQUFVIiwic291cmNlcyI6WyJEOlxcc3JjXFxpY29uc1xcY2xvY2sudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdNMTIgNnY2bDQgMicsIGtleTogJ21tazd5ZycgfV0sXG4gIFsnY2lyY2xlJywgeyBjeDogJzEyJywgY3k6ICcxMicsIHI6ICcxMCcsIGtleTogJzFtZ2xheScgfV0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgQ2xvY2tcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1USWdOblkyYkRRZ01pSWdMejRLSUNBOFkybHlZMnhsSUdONFBTSXhNaUlnWTNrOUlqRXlJaUJ5UFNJeE1DSWdMejRLUEM5emRtYytDZz09KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9jbG9ja1xuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IENsb2NrID0gY3JlYXRlTHVjaWRlSWNvbignY2xvY2snLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgQ2xvY2s7XG4iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(pages-dir-browser)/./node_modules/lucide-react/dist/esm/icons/clock.js\n")); - -/***/ }), - -/***/ "(pages-dir-browser)/./node_modules/lucide-react/dist/esm/icons/funnel.js": -/*!************************************************************!*\ - !*** ./node_modules/lucide-react/dist/esm/icons/funnel.js ***! - \************************************************************/ -/***/ ((module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ __iconNode: () => (/* binding */ __iconNode),\n/* harmony export */ \"default\": () => (/* binding */ Funnel)\n/* harmony export */ });\n/* harmony import */ var _createLucideIcon_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../createLucideIcon.js */ \"(pages-dir-browser)/./node_modules/lucide-react/dist/esm/createLucideIcon.js\");\n/**\n * @license lucide-react v0.525.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */ \nconst __iconNode = [\n [\n \"path\",\n {\n d: \"M10 20a1 1 0 0 0 .553.895l2 1A1 1 0 0 0 14 21v-7a2 2 0 0 1 .517-1.341L21.74 4.67A1 1 0 0 0 21 3H3a1 1 0 0 0-.742 1.67l7.225 7.989A2 2 0 0 1 10 14z\",\n key: \"sc7q7i\"\n }\n ]\n];\nconst Funnel = (0,_createLucideIcon_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(\"funnel\", __iconNode);\n //# sourceMappingURL=funnel.js.map\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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9sdWNpZGUtcmVhY3QvZGlzdC9lc20vaWNvbnMvZnVubmVsLmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7OztBQUdPLE1BQU0sVUFBdUI7SUFDbEM7UUFDRTtRQUNBO1lBQ0UsQ0FBRztZQUNILEdBQUs7UUFBQTtLQUNQO0NBRUo7QUFhTSxhQUFTLGtFQUFpQixXQUFVLENBQVUiLCJzb3VyY2VzIjpbIkQ6XFxzcmNcXGljb25zXFxmdW5uZWwudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbXG4gICAgJ3BhdGgnLFxuICAgIHtcbiAgICAgIGQ6ICdNMTAgMjBhMSAxIDAgMCAwIC41NTMuODk1bDIgMUExIDEgMCAwIDAgMTQgMjF2LTdhMiAyIDAgMCAxIC41MTctMS4zNDFMMjEuNzQgNC42N0ExIDEgMCAwIDAgMjEgM0gzYTEgMSAwIDAgMC0uNzQyIDEuNjdsNy4yMjUgNy45ODlBMiAyIDAgMCAxIDEwIDE0eicsXG4gICAgICBrZXk6ICdzYzdxN2knLFxuICAgIH0sXG4gIF0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgRnVubmVsXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NVEFnTWpCaE1TQXhJREFnTUNBd0lDNDFOVE11T0RrMWJESWdNVUV4SURFZ01DQXdJREFnTVRRZ01qRjJMVGRoTWlBeUlEQWdNQ0F4SUM0MU1UY3RNUzR6TkRGTU1qRXVOelFnTkM0Mk4wRXhJREVnTUNBd0lEQWdNakVnTTBnellURWdNU0F3SURBZ01DMHVOelF5SURFdU5qZHNOeTR5TWpVZ055NDVPRGxCTWlBeUlEQWdNQ0F4SURFd0lERTBlaUlnTHo0S1BDOXpkbWMrQ2c9PSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvZnVubmVsXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgRnVubmVsID0gY3JlYXRlTHVjaWRlSWNvbignZnVubmVsJywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IEZ1bm5lbDtcbiJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(pages-dir-browser)/./node_modules/lucide-react/dist/esm/icons/funnel.js\n")); - -/***/ }), - -/***/ "(pages-dir-browser)/./node_modules/lucide-react/dist/esm/icons/mail.js": -/*!**********************************************************!*\ - !*** ./node_modules/lucide-react/dist/esm/icons/mail.js ***! - \**********************************************************/ -/***/ ((module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ __iconNode: () => (/* binding */ __iconNode),\n/* harmony export */ \"default\": () => (/* binding */ Mail)\n/* harmony export */ });\n/* harmony import */ var _createLucideIcon_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../createLucideIcon.js */ \"(pages-dir-browser)/./node_modules/lucide-react/dist/esm/createLucideIcon.js\");\n/**\n * @license lucide-react v0.525.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */ \nconst __iconNode = [\n [\n \"path\",\n {\n d: \"m22 7-8.991 5.727a2 2 0 0 1-2.009 0L2 7\",\n key: \"132q7q\"\n }\n ],\n [\n \"rect\",\n {\n x: \"2\",\n y: \"4\",\n width: \"20\",\n height: \"16\",\n rx: \"2\",\n key: \"izxlao\"\n }\n ]\n];\nconst Mail = (0,_createLucideIcon_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(\"mail\", __iconNode);\n //# sourceMappingURL=mail.js.map\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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9sdWNpZGUtcmVhY3QvZGlzdC9lc20vaWNvbnMvbWFpbC5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7QUFHTyxNQUFNLFVBQXVCO0lBQ2xDO1FBQUMsTUFBUTtRQUFBO1lBQUUsR0FBRyxDQUEyQztZQUFBLEtBQUs7UUFBQSxDQUFVO0tBQUE7SUFDeEU7UUFBQztRQUFRLENBQUU7WUFBQSxFQUFHLEtBQUs7WUFBQSxDQUFHLE1BQUs7WUFBQSxLQUFPLE9BQU07WUFBQSxPQUFRLEtBQU07WUFBQSxHQUFJLElBQUs7WUFBQSxJQUFLO1FBQVU7S0FBQTtDQUNoRjtBQWFNLFdBQU8sa0VBQWlCLFNBQVEsQ0FBVSIsInNvdXJjZXMiOlsiRDpcXHNyY1xcaWNvbnNcXG1haWwudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdtMjIgNy04Ljk5MSA1LjcyN2EyIDIgMCAwIDEtMi4wMDkgMEwyIDcnLCBrZXk6ICcxMzJxN3EnIH1dLFxuICBbJ3JlY3QnLCB7IHg6ICcyJywgeTogJzQnLCB3aWR0aDogJzIwJywgaGVpZ2h0OiAnMTYnLCByeDogJzInLCBrZXk6ICdpenhsYW8nIH1dLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIE1haWxcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKdE1qSWdOeTA0TGprNU1TQTFMamN5TjJFeUlESWdNQ0F3SURFdE1pNHdNRGtnTUV3eUlEY2lJQzgrQ2lBZ1BISmxZM1FnZUQwaU1pSWdlVDBpTkNJZ2QybGtkR2c5SWpJd0lpQm9aV2xuYUhROUlqRTJJaUJ5ZUQwaU1pSWdMejRLUEM5emRtYytDZz09KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9tYWlsXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgTWFpbCA9IGNyZWF0ZUx1Y2lkZUljb24oJ21haWwnLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgTWFpbDtcbiJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(pages-dir-browser)/./node_modules/lucide-react/dist/esm/icons/mail.js\n")); - -/***/ }), - -/***/ "(pages-dir-browser)/./node_modules/lucide-react/dist/esm/icons/menu.js": -/*!**********************************************************!*\ - !*** ./node_modules/lucide-react/dist/esm/icons/menu.js ***! - \**********************************************************/ -/***/ ((module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ __iconNode: () => (/* binding */ __iconNode),\n/* harmony export */ \"default\": () => (/* binding */ Menu)\n/* harmony export */ });\n/* harmony import */ var _createLucideIcon_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../createLucideIcon.js */ \"(pages-dir-browser)/./node_modules/lucide-react/dist/esm/createLucideIcon.js\");\n/**\n * @license lucide-react v0.525.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */ \nconst __iconNode = [\n [\n \"path\",\n {\n d: \"M4 12h16\",\n key: \"1lakjw\"\n }\n ],\n [\n \"path\",\n {\n d: \"M4 18h16\",\n key: \"19g7jn\"\n }\n ],\n [\n \"path\",\n {\n d: \"M4 6h16\",\n key: \"1o0s65\"\n }\n ]\n];\nconst Menu = (0,_createLucideIcon_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(\"menu\", __iconNode);\n //# sourceMappingURL=menu.js.map\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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9sdWNpZGUtcmVhY3QvZGlzdC9lc20vaWNvbnMvbWVudS5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7QUFHTyxNQUFNLFVBQXVCO0lBQ2xDO1FBQUMsTUFBUTtRQUFBO1lBQUUsR0FBRyxDQUFZO1lBQUEsS0FBSztRQUFBLENBQVU7S0FBQTtJQUN6QztRQUFDLE1BQVE7UUFBQTtZQUFFLEdBQUcsQ0FBWTtZQUFBLEtBQUs7UUFBQSxDQUFVO0tBQUE7SUFDekM7UUFBQyxDQUFRO1FBQUEsQ0FBRTtZQUFBLEVBQUcsVUFBVztZQUFBLElBQUs7UUFBVTtLQUFBO0NBQzFDO0FBYU0sV0FBTyxrRUFBaUIsU0FBUSxDQUFVIiwic291cmNlcyI6WyJEOlxcc3JjXFxpY29uc1xcbWVudS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ000IDEyaDE2Jywga2V5OiAnMWxha2p3JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTQgMThoMTYnLCBrZXk6ICcxOWc3am4nIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNNCA2aDE2Jywga2V5OiAnMW8wczY1JyB9XSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBNZW51XG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5OQ0F4TW1neE5pSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk5DQXhPR2d4TmlJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTkNBMmFERTJJaUF2UGdvOEwzTjJaejRLKSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9tZW51XG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgTWVudSA9IGNyZWF0ZUx1Y2lkZUljb24oJ21lbnUnLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgTWVudTtcbiJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(pages-dir-browser)/./node_modules/lucide-react/dist/esm/icons/menu.js\n")); - -/***/ }), - -/***/ "(pages-dir-browser)/./node_modules/lucide-react/dist/esm/icons/message-circle.js": -/*!********************************************************************!*\ - !*** ./node_modules/lucide-react/dist/esm/icons/message-circle.js ***! - \********************************************************************/ -/***/ ((module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ __iconNode: () => (/* binding */ __iconNode),\n/* harmony export */ \"default\": () => (/* binding */ MessageCircle)\n/* harmony export */ });\n/* harmony import */ var _createLucideIcon_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../createLucideIcon.js */ \"(pages-dir-browser)/./node_modules/lucide-react/dist/esm/createLucideIcon.js\");\n/**\n * @license lucide-react v0.525.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */ \nconst __iconNode = [\n [\n \"path\",\n {\n d: \"M7.9 20A9 9 0 1 0 4 16.1L2 22Z\",\n key: \"vv11sd\"\n }\n ]\n];\nconst MessageCircle = (0,_createLucideIcon_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(\"message-circle\", __iconNode);\n //# sourceMappingURL=message-circle.js.map\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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9sdWNpZGUtcmVhY3QvZGlzdC9lc20vaWNvbnMvbWVzc2FnZS1jaXJjbGUuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7O0FBR08sTUFBTSxVQUF1QjtJQUNsQztRQUFDLENBQVE7UUFBQSxDQUFFO1lBQUEsRUFBRyxpQ0FBa0M7WUFBQSxJQUFLO1FBQVU7S0FBQTtDQUNqRTtBQWFNLG9CQUFnQixrRUFBaUIsbUJBQWtCLENBQVUiLCJzb3VyY2VzIjpbIkQ6XFxzcmNcXGljb25zXFxtZXNzYWdlLWNpcmNsZS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ003LjkgMjBBOSA5IDAgMSAwIDQgMTYuMUwyIDIyWicsIGtleTogJ3Z2MTFzZCcgfV0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgTWVzc2FnZUNpcmNsZVxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTnk0NUlESXdRVGtnT1NBd0lERWdNQ0EwSURFMkxqRk1NaUF5TWxvaUlDOCtDand2YzNablBnbz0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL21lc3NhZ2UtY2lyY2xlXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgTWVzc2FnZUNpcmNsZSA9IGNyZWF0ZUx1Y2lkZUljb24oJ21lc3NhZ2UtY2lyY2xlJywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IE1lc3NhZ2VDaXJjbGU7XG4iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(pages-dir-browser)/./node_modules/lucide-react/dist/esm/icons/message-circle.js\n")); - -/***/ }), - -/***/ "(pages-dir-browser)/./node_modules/lucide-react/dist/esm/icons/newspaper.js": -/*!***************************************************************!*\ - !*** ./node_modules/lucide-react/dist/esm/icons/newspaper.js ***! - \***************************************************************/ -/***/ ((module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ __iconNode: () => (/* binding */ __iconNode),\n/* harmony export */ \"default\": () => (/* binding */ Newspaper)\n/* harmony export */ });\n/* harmony import */ var _createLucideIcon_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../createLucideIcon.js */ \"(pages-dir-browser)/./node_modules/lucide-react/dist/esm/createLucideIcon.js\");\n/**\n * @license lucide-react v0.525.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */ \nconst __iconNode = [\n [\n \"path\",\n {\n d: \"M15 18h-5\",\n key: \"95g1m2\"\n }\n ],\n [\n \"path\",\n {\n d: \"M18 14h-8\",\n key: \"sponae\"\n }\n ],\n [\n \"path\",\n {\n d: \"M4 22h16a2 2 0 0 0 2-2V4a2 2 0 0 0-2-2H8a2 2 0 0 0-2 2v16a2 2 0 0 1-4 0v-9a2 2 0 0 1 2-2h2\",\n key: \"39pd36\"\n }\n ],\n [\n \"rect\",\n {\n width: \"8\",\n height: \"4\",\n x: \"10\",\n y: \"6\",\n rx: \"1\",\n key: \"aywv1n\"\n }\n ]\n];\nconst Newspaper = (0,_createLucideIcon_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(\"newspaper\", __iconNode);\n //# sourceMappingURL=newspaper.js.map\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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9sdWNpZGUtcmVhY3QvZGlzdC9lc20vaWNvbnMvbmV3c3BhcGVyLmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7OztBQUdPLE1BQU0sVUFBdUI7SUFDbEM7UUFBQyxNQUFRO1FBQUE7WUFBRSxHQUFHLENBQWE7WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0lBQzFDO1FBQUMsTUFBUTtRQUFBO1lBQUUsR0FBRyxDQUFhO1lBQUEsS0FBSztRQUFBLENBQVU7S0FBQTtJQUMxQztRQUNFO1FBQ0E7WUFDRSxDQUFHO1lBQ0gsR0FBSztRQUFBO0tBRVQ7SUFDQTtRQUFDO1FBQVEsQ0FBRTtZQUFBLE1BQU8sS0FBSztZQUFBLE1BQVEsTUFBSztZQUFBLENBQUcsT0FBTTtZQUFBLEVBQUcsSUFBSztZQUFBLEdBQUksSUFBSztZQUFBLElBQUs7UUFBVTtLQUFBO0NBQy9FO0FBYU0sZ0JBQVksa0VBQWlCLGNBQWEsQ0FBVSIsInNvdXJjZXMiOlsiRDpcXHNyY1xcaWNvbnNcXG5ld3NwYXBlci50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ00xNSAxOGgtNScsIGtleTogJzk1ZzFtMicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xOCAxNGgtOCcsIGtleTogJ3Nwb25hZScgfV0sXG4gIFtcbiAgICAncGF0aCcsXG4gICAge1xuICAgICAgZDogJ000IDIyaDE2YTIgMiAwIDAgMCAyLTJWNGEyIDIgMCAwIDAtMi0ySDhhMiAyIDAgMCAwLTIgMnYxNmEyIDIgMCAwIDEtNCAwdi05YTIgMiAwIDAgMSAyLTJoMicsXG4gICAgICBrZXk6ICczOXBkMzYnLFxuICAgIH0sXG4gIF0sXG4gIFsncmVjdCcsIHsgd2lkdGg6ICc4JywgaGVpZ2h0OiAnNCcsIHg6ICcxMCcsIHk6ICc2Jywgcng6ICcxJywga2V5OiAnYXl3djFuJyB9XSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBOZXdzcGFwZXJcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1UVWdNVGhvTFRVaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRFNElERTBhQzA0SWlBdlBnb2dJRHh3WVhSb0lHUTlJazAwSURJeWFERTJZVElnTWlBd0lEQWdNQ0F5TFRKV05HRXlJRElnTUNBd0lEQXRNaTB5U0RoaE1pQXlJREFnTUNBd0xUSWdNbll4Tm1FeUlESWdNQ0F3SURFdE5DQXdkaTA1WVRJZ01pQXdJREFnTVNBeUxUSm9NaUlnTHo0S0lDQThjbVZqZENCM2FXUjBhRDBpT0NJZ2FHVnBaMmgwUFNJMElpQjRQU0l4TUNJZ2VUMGlOaUlnY25nOUlqRWlJQzgrQ2p3dmMzWm5QZ289KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9uZXdzcGFwZXJcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBOZXdzcGFwZXIgPSBjcmVhdGVMdWNpZGVJY29uKCduZXdzcGFwZXInLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgTmV3c3BhcGVyO1xuIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(pages-dir-browser)/./node_modules/lucide-react/dist/esm/icons/newspaper.js\n")); - -/***/ }), - -/***/ "(pages-dir-browser)/./node_modules/lucide-react/dist/esm/icons/phone.js": -/*!***********************************************************!*\ - !*** ./node_modules/lucide-react/dist/esm/icons/phone.js ***! - \***********************************************************/ -/***/ ((module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ __iconNode: () => (/* binding */ __iconNode),\n/* harmony export */ \"default\": () => (/* binding */ Phone)\n/* harmony export */ });\n/* harmony import */ var _createLucideIcon_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../createLucideIcon.js */ \"(pages-dir-browser)/./node_modules/lucide-react/dist/esm/createLucideIcon.js\");\n/**\n * @license lucide-react v0.525.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */ \nconst __iconNode = [\n [\n \"path\",\n {\n d: \"M13.832 16.568a1 1 0 0 0 1.213-.303l.355-.465A2 2 0 0 1 17 15h3a2 2 0 0 1 2 2v3a2 2 0 0 1-2 2A18 18 0 0 1 2 4a2 2 0 0 1 2-2h3a2 2 0 0 1 2 2v3a2 2 0 0 1-.8 1.6l-.468.351a1 1 0 0 0-.292 1.233 14 14 0 0 0 6.392 6.384\",\n key: \"9njp5v\"\n }\n ]\n];\nconst Phone = (0,_createLucideIcon_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(\"phone\", __iconNode);\n //# sourceMappingURL=phone.js.map\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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9sdWNpZGUtcmVhY3QvZGlzdC9lc20vaWNvbnMvcGhvbmUuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7O0FBR08sTUFBTSxVQUF1QjtJQUNsQztRQUNFO1FBQ0E7WUFDRSxDQUFHO1lBQ0gsR0FBSztRQUFBO0tBQ1A7Q0FFSjtBQWFNLFlBQVEsa0VBQWlCLFVBQVMsQ0FBVSIsInNvdXJjZXMiOlsiRDpcXHNyY1xcaWNvbnNcXHBob25lLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgW1xuICAgICdwYXRoJyxcbiAgICB7XG4gICAgICBkOiAnTTEzLjgzMiAxNi41NjhhMSAxIDAgMCAwIDEuMjEzLS4zMDNsLjM1NS0uNDY1QTIgMiAwIDAgMSAxNyAxNWgzYTIgMiAwIDAgMSAyIDJ2M2EyIDIgMCAwIDEtMiAyQTE4IDE4IDAgMCAxIDIgNGEyIDIgMCAwIDEgMi0yaDNhMiAyIDAgMCAxIDIgMnYzYTIgMiAwIDAgMS0uOCAxLjZsLS40NjguMzUxYTEgMSAwIDAgMC0uMjkyIDEuMjMzIDE0IDE0IDAgMCAwIDYuMzkyIDYuMzg0JyxcbiAgICAgIGtleTogJzluanA1dicsXG4gICAgfSxcbiAgXSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBQaG9uZVxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTVRNdU9ETXlJREUyTGpVMk9HRXhJREVnTUNBd0lEQWdNUzR5TVRNdExqTXdNMnd1TXpVMUxTNDBOalZCTWlBeUlEQWdNQ0F4SURFM0lERTFhRE5oTWlBeUlEQWdNQ0F4SURJZ01uWXpZVElnTWlBd0lEQWdNUzB5SURKQk1UZ2dNVGdnTUNBd0lERWdNaUEwWVRJZ01pQXdJREFnTVNBeUxUSm9NMkV5SURJZ01DQXdJREVnTWlBeWRqTmhNaUF5SURBZ01DQXhMUzQ0SURFdU5td3RMalEyT0M0ek5URmhNU0F4SURBZ01DQXdMUzR5T1RJZ01TNHlNek1nTVRRZ01UUWdNQ0F3SURBZ05pNHpPVElnTmk0ek9EUWlJQzgrQ2p3dmMzWm5QZ289KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9waG9uZVxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IFBob25lID0gY3JlYXRlTHVjaWRlSWNvbigncGhvbmUnLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgUGhvbmU7XG4iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(pages-dir-browser)/./node_modules/lucide-react/dist/esm/icons/phone.js\n")); - -/***/ }), - -/***/ "(pages-dir-browser)/./node_modules/lucide-react/dist/esm/icons/search.js": -/*!************************************************************!*\ - !*** ./node_modules/lucide-react/dist/esm/icons/search.js ***! - \************************************************************/ -/***/ ((module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ __iconNode: () => (/* binding */ __iconNode),\n/* harmony export */ \"default\": () => (/* binding */ Search)\n/* harmony export */ });\n/* harmony import */ var _createLucideIcon_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../createLucideIcon.js */ \"(pages-dir-browser)/./node_modules/lucide-react/dist/esm/createLucideIcon.js\");\n/**\n * @license lucide-react v0.525.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */ \nconst __iconNode = [\n [\n \"path\",\n {\n d: \"m21 21-4.34-4.34\",\n key: \"14j7rj\"\n }\n ],\n [\n \"circle\",\n {\n cx: \"11\",\n cy: \"11\",\n r: \"8\",\n key: \"4ej97u\"\n }\n ]\n];\nconst Search = (0,_createLucideIcon_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(\"search\", __iconNode);\n //# sourceMappingURL=search.js.map\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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9sdWNpZGUtcmVhY3QvZGlzdC9lc20vaWNvbnMvc2VhcmNoLmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7OztBQUdPLE1BQU0sVUFBdUI7SUFDbEM7UUFBQyxNQUFRO1FBQUE7WUFBRSxHQUFHLENBQW9CO1lBQUEsS0FBSztRQUFBLENBQVU7S0FBQTtJQUNqRDtRQUFDLENBQVU7UUFBQTtZQUFFLENBQUksUUFBTTtZQUFBLEVBQUk7WUFBTSxDQUFHO1lBQUssQ0FBSztRQUFVO0tBQUE7Q0FDMUQ7QUFhTSxhQUFTLGtFQUFpQixXQUFVLENBQVUiLCJzb3VyY2VzIjpbIkQ6XFxzcmNcXGljb25zXFxzZWFyY2gudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdtMjEgMjEtNC4zNC00LjM0Jywga2V5OiAnMTRqN3JqJyB9XSxcbiAgWydjaXJjbGUnLCB7IGN4OiAnMTEnLCBjeTogJzExJywgcjogJzgnLCBrZXk6ICc0ZWo5N3UnIH1dLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIFNlYXJjaFxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0p0TWpFZ01qRXROQzR6TkMwMExqTTBJaUF2UGdvZ0lEeGphWEpqYkdVZ1kzZzlJakV4SWlCamVUMGlNVEVpSUhJOUlqZ2lJQzgrQ2p3dmMzWm5QZ289KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9zZWFyY2hcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBTZWFyY2ggPSBjcmVhdGVMdWNpZGVJY29uKCdzZWFyY2gnLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgU2VhcmNoO1xuIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(pages-dir-browser)/./node_modules/lucide-react/dist/esm/icons/search.js\n")); - -/***/ }), - -/***/ "(pages-dir-browser)/./node_modules/lucide-react/dist/esm/icons/tag.js": -/*!*********************************************************!*\ - !*** ./node_modules/lucide-react/dist/esm/icons/tag.js ***! - \*********************************************************/ -/***/ ((module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ __iconNode: () => (/* binding */ __iconNode),\n/* harmony export */ \"default\": () => (/* binding */ Tag)\n/* harmony export */ });\n/* harmony import */ var _createLucideIcon_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../createLucideIcon.js */ \"(pages-dir-browser)/./node_modules/lucide-react/dist/esm/createLucideIcon.js\");\n/**\n * @license lucide-react v0.525.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */ \nconst __iconNode = [\n [\n \"path\",\n {\n d: \"M12.586 2.586A2 2 0 0 0 11.172 2H4a2 2 0 0 0-2 2v7.172a2 2 0 0 0 .586 1.414l8.704 8.704a2.426 2.426 0 0 0 3.42 0l6.58-6.58a2.426 2.426 0 0 0 0-3.42z\",\n key: \"vktsd0\"\n }\n ],\n [\n \"circle\",\n {\n cx: \"7.5\",\n cy: \"7.5\",\n r: \".5\",\n fill: \"currentColor\",\n key: \"kqv944\"\n }\n ]\n];\nconst Tag = (0,_createLucideIcon_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(\"tag\", __iconNode);\n //# sourceMappingURL=tag.js.map\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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9sdWNpZGUtcmVhY3QvZGlzdC9lc20vaWNvbnMvdGFnLmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7OztBQUdPLE1BQU0sVUFBdUI7SUFDbEM7UUFDRTtRQUNBO1lBQ0UsQ0FBRztZQUNILEdBQUs7UUFBQTtLQUVUO0lBQ0E7UUFBQyxTQUFVO1FBQUE7WUFBRSxHQUFJLE1BQU87WUFBQSxHQUFJLE1BQU87WUFBQSxHQUFHLENBQU07WUFBQSxNQUFNLGNBQWdCO1lBQUEsSUFBSztRQUFVO0tBQUE7Q0FDbkY7QUFhTSxVQUFNLGtFQUFpQixRQUFPLENBQVUiLCJzb3VyY2VzIjpbIkQ6XFxzcmNcXGljb25zXFx0YWcudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbXG4gICAgJ3BhdGgnLFxuICAgIHtcbiAgICAgIGQ6ICdNMTIuNTg2IDIuNTg2QTIgMiAwIDAgMCAxMS4xNzIgMkg0YTIgMiAwIDAgMC0yIDJ2Ny4xNzJhMiAyIDAgMCAwIC41ODYgMS40MTRsOC43MDQgOC43MDRhMi40MjYgMi40MjYgMCAwIDAgMy40MiAwbDYuNTgtNi41OGEyLjQyNiAyLjQyNiAwIDAgMCAwLTMuNDJ6JyxcbiAgICAgIGtleTogJ3ZrdHNkMCcsXG4gICAgfSxcbiAgXSxcbiAgWydjaXJjbGUnLCB7IGN4OiAnNy41JywgY3k6ICc3LjUnLCByOiAnLjUnLCBmaWxsOiAnY3VycmVudENvbG9yJywga2V5OiAna3F2OTQ0JyB9XSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBUYWdcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1USXVOVGcySURJdU5UZzJRVElnTWlBd0lEQWdNQ0F4TVM0eE56SWdNa2cwWVRJZ01pQXdJREFnTUMweUlESjJOeTR4TnpKaE1pQXlJREFnTUNBd0lDNDFPRFlnTVM0ME1UUnNPQzQzTURRZ09DNDNNRFJoTWk0ME1qWWdNaTQwTWpZZ01DQXdJREFnTXk0ME1pQXdiRFl1TlRndE5pNDFPR0V5TGpReU5pQXlMalF5TmlBd0lEQWdNQ0F3TFRNdU5ESjZJaUF2UGdvZ0lEeGphWEpqYkdVZ1kzZzlJamN1TlNJZ1kzazlJamN1TlNJZ2NqMGlMalVpSUdacGJHdzlJbU4xY25KbGJuUkRiMnh2Y2lJZ0x6NEtQQzl6ZG1jK0NnPT0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL3RhZ1xuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IFRhZyA9IGNyZWF0ZUx1Y2lkZUljb24oJ3RhZycsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBUYWc7XG4iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(pages-dir-browser)/./node_modules/lucide-react/dist/esm/icons/tag.js\n")); - -/***/ }), - -/***/ "(pages-dir-browser)/./node_modules/lucide-react/dist/esm/icons/trending-up.js": -/*!*****************************************************************!*\ - !*** ./node_modules/lucide-react/dist/esm/icons/trending-up.js ***! - \*****************************************************************/ -/***/ ((module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ __iconNode: () => (/* binding */ __iconNode),\n/* harmony export */ \"default\": () => (/* binding */ TrendingUp)\n/* harmony export */ });\n/* harmony import */ var _createLucideIcon_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../createLucideIcon.js */ \"(pages-dir-browser)/./node_modules/lucide-react/dist/esm/createLucideIcon.js\");\n/**\n * @license lucide-react v0.525.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */ \nconst __iconNode = [\n [\n \"path\",\n {\n d: \"M16 7h6v6\",\n key: \"box55l\"\n }\n ],\n [\n \"path\",\n {\n d: \"m22 7-8.5 8.5-5-5L2 17\",\n key: \"1t1m79\"\n }\n ]\n];\nconst TrendingUp = (0,_createLucideIcon_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(\"trending-up\", __iconNode);\n //# sourceMappingURL=trending-up.js.map\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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9sdWNpZGUtcmVhY3QvZGlzdC9lc20vaWNvbnMvdHJlbmRpbmctdXAuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7O0FBR08sTUFBTSxVQUF1QjtJQUNsQztRQUFDLE1BQVE7UUFBQTtZQUFFLEdBQUcsQ0FBYTtZQUFBLEtBQUs7UUFBQSxDQUFVO0tBQUE7SUFDMUM7UUFBQyxDQUFRO1FBQUEsQ0FBRTtZQUFBLEVBQUcseUJBQTBCO1lBQUEsSUFBSztRQUFVO0tBQUE7Q0FDekQ7QUFhTSxpQkFBYSxrRUFBaUIsZ0JBQWUsQ0FBVSIsInNvdXJjZXMiOlsiRDpcXHNyY1xcaWNvbnNcXHRyZW5kaW5nLXVwLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTE2IDdoNnY2Jywga2V5OiAnYm94NTVsJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnbTIyIDctOC41IDguNS01LTVMMiAxNycsIGtleTogJzF0MW03OScgfV0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgVHJlbmRpbmdVcFxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTVRZZ04yZzJkallpSUM4K0NpQWdQSEJoZEdnZ1pEMGliVEl5SURjdE9DNDFJRGd1TlMwMUxUVk1NaUF4TnlJZ0x6NEtQQzl6ZG1jK0NnPT0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL3RyZW5kaW5nLXVwXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgVHJlbmRpbmdVcCA9IGNyZWF0ZUx1Y2lkZUljb24oJ3RyZW5kaW5nLXVwJywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IFRyZW5kaW5nVXA7XG4iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(pages-dir-browser)/./node_modules/lucide-react/dist/esm/icons/trending-up.js\n")); - -/***/ }), - -/***/ "(pages-dir-browser)/./node_modules/lucide-react/dist/esm/shared/src/utils.js": -/*!****************************************************************!*\ - !*** ./node_modules/lucide-react/dist/esm/shared/src/utils.js ***! - \****************************************************************/ -/***/ ((module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ hasA11yProp: () => (/* binding */ hasA11yProp),\n/* harmony export */ mergeClasses: () => (/* binding */ mergeClasses),\n/* harmony export */ toCamelCase: () => (/* binding */ toCamelCase),\n/* harmony export */ toKebabCase: () => (/* binding */ toKebabCase),\n/* harmony export */ toPascalCase: () => (/* binding */ toPascalCase)\n/* harmony export */ });\n/**\n * @license lucide-react v0.525.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */ const toKebabCase = (string)=>string.replace(/([a-z0-9])([A-Z])/g, \"$1-$2\").toLowerCase();\nconst toCamelCase = (string)=>string.replace(/^([A-Z])|[\\s-_]+(\\w)/g, (match, p1, p2)=>p2 ? p2.toUpperCase() : p1.toLowerCase());\nconst toPascalCase = (string)=>{\n const camelCase = toCamelCase(string);\n return camelCase.charAt(0).toUpperCase() + camelCase.slice(1);\n};\nconst mergeClasses = function() {\n for(var _len = arguments.length, classes = new Array(_len), _key = 0; _key < _len; _key++){\n classes[_key] = arguments[_key];\n }\n return classes.filter((className, index, array)=>{\n return Boolean(className) && className.trim() !== \"\" && array.indexOf(className) === index;\n }).join(\" \").trim();\n};\nconst hasA11yProp = (props)=>{\n for(const prop in props){\n if (prop.startsWith(\"aria-\") || prop === \"role\" || prop === \"title\") {\n return true;\n }\n }\n};\n //# sourceMappingURL=utils.js.map\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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9sdWNpZGUtcmVhY3QvZGlzdC9lc20vc2hhcmVkL3NyYy91dGlscy5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7O0lBUWEsb0JBQWMsQ0FBQyxNQUMxQixVQUFPLFFBQVEsQ0FBc0Isc0JBQU8sUUFBRSxDQUFZO0FBUS9DLGtCQUFjLEdBQW1CLE9BQzVDLFFBQU8sU0FBUSx5QkFBeUIsQ0FBQyxPQUFPLENBQUksTUFDbEQsS0FBSyxJQUFHLGNBQWdCLE1BQUcsQ0FBWTtBQVM5QixxQkFBZSxDQUFtQixNQUFnQztJQUN2RSxrQkFBWSxZQUFZLE1BQU07SUFFNUIsaUJBQVUsT0FBTyxDQUFDLEVBQUUsYUFBZ0IsYUFBVSxNQUFNLENBQUM7QUFDL0Q7QUFRYSxtQkFBZSxJQUEyQzs7UUFBQSxPQUNyRTs7V0FBQSxRQUNHLE9BQU8sQ0FBQyxXQUFXLE9BQU8sS0FBVTtRQUVqQyxlQUFRLFNBQVMsRUFDaEIsWUFBcUIsWUFBVyxDQUNqQyxXQUFNLE9BQVEsRUFBUyxTQUFNO0lBRWpDLENBQUMsQ0FDQSxNQUFLLENBQUcsSUFDUixDQUFLOztBQVFHLG9CQUFjLENBQUMsS0FBK0I7SUFDekQsVUFBVyxRQUFRLEtBQU87UUFDeEIsQ0FBSSxRQUFLLFVBQVcsRUFBTyxRQUFLLE9BQVMsZUFBVSxTQUFTLE9BQVM7WUFDNUQ7UUFBQTtJQUNUO0FBRUoiLCJzb3VyY2VzIjpbIkQ6XFxzaGFyZWRcXHNyY1xcdXRpbHMudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2FtZWxUb1Bhc2NhbCB9IGZyb20gJy4vdXRpbGl0eS10eXBlcyc7XG5cbi8qKlxuICogQ29udmVydHMgc3RyaW5nIHRvIGtlYmFiIGNhc2VcbiAqXG4gKiBAcGFyYW0ge3N0cmluZ30gc3RyaW5nXG4gKiBAcmV0dXJucyB7c3RyaW5nfSBBIGtlYmFiaXplZCBzdHJpbmdcbiAqL1xuZXhwb3J0IGNvbnN0IHRvS2ViYWJDYXNlID0gKHN0cmluZzogc3RyaW5nKSA9PlxuICBzdHJpbmcucmVwbGFjZSgvKFthLXowLTldKShbQS1aXSkvZywgJyQxLSQyJykudG9Mb3dlckNhc2UoKTtcblxuLyoqXG4gKiBDb252ZXJ0cyBzdHJpbmcgdG8gY2FtZWwgY2FzZVxuICpcbiAqIEBwYXJhbSB7c3RyaW5nfSBzdHJpbmdcbiAqIEByZXR1cm5zIHtzdHJpbmd9IEEgY2FtZWxpemVkIHN0cmluZ1xuICovXG5leHBvcnQgY29uc3QgdG9DYW1lbENhc2UgPSA8VCBleHRlbmRzIHN0cmluZz4oc3RyaW5nOiBUKSA9PlxuICBzdHJpbmcucmVwbGFjZSgvXihbQS1aXSl8W1xccy1fXSsoXFx3KS9nLCAobWF0Y2gsIHAxLCBwMikgPT5cbiAgICBwMiA/IHAyLnRvVXBwZXJDYXNlKCkgOiBwMS50b0xvd2VyQ2FzZSgpLFxuICApO1xuXG4vKipcbiAqIENvbnZlcnRzIHN0cmluZyB0byBwYXNjYWwgY2FzZVxuICpcbiAqIEBwYXJhbSB7c3RyaW5nfSBzdHJpbmdcbiAqIEByZXR1cm5zIHtzdHJpbmd9IEEgcGFzY2FsaXplZCBzdHJpbmdcbiAqL1xuZXhwb3J0IGNvbnN0IHRvUGFzY2FsQ2FzZSA9IDxUIGV4dGVuZHMgc3RyaW5nPihzdHJpbmc6IFQpOiBDYW1lbFRvUGFzY2FsPFQ+ID0+IHtcbiAgY29uc3QgY2FtZWxDYXNlID0gdG9DYW1lbENhc2Uoc3RyaW5nKTtcblxuICByZXR1cm4gKGNhbWVsQ2FzZS5jaGFyQXQoMCkudG9VcHBlckNhc2UoKSArIGNhbWVsQ2FzZS5zbGljZSgxKSkgYXMgQ2FtZWxUb1Bhc2NhbDxUPjtcbn07XG5cbi8qKlxuICogTWVyZ2VzIGNsYXNzZXMgaW50byBhIHNpbmdsZSBzdHJpbmdcbiAqXG4gKiBAcGFyYW0ge2FycmF5fSBjbGFzc2VzXG4gKiBAcmV0dXJucyB7c3RyaW5nfSBBIHN0cmluZyBvZiBjbGFzc2VzXG4gKi9cbmV4cG9ydCBjb25zdCBtZXJnZUNsYXNzZXMgPSA8Q2xhc3NUeXBlID0gc3RyaW5nIHwgdW5kZWZpbmVkIHwgbnVsbD4oLi4uY2xhc3NlczogQ2xhc3NUeXBlW10pID0+XG4gIGNsYXNzZXNcbiAgICAuZmlsdGVyKChjbGFzc05hbWUsIGluZGV4LCBhcnJheSkgPT4ge1xuICAgICAgcmV0dXJuIChcbiAgICAgICAgQm9vbGVhbihjbGFzc05hbWUpICYmXG4gICAgICAgIChjbGFzc05hbWUgYXMgc3RyaW5nKS50cmltKCkgIT09ICcnICYmXG4gICAgICAgIGFycmF5LmluZGV4T2YoY2xhc3NOYW1lKSA9PT0gaW5kZXhcbiAgICAgICk7XG4gICAgfSlcbiAgICAuam9pbignICcpXG4gICAgLnRyaW0oKTtcblxuLyoqXG4gKiBDaGVjayBpZiBhIGNvbXBvbmVudCBoYXMgYW4gYWNjZXNzaWJpbGl0eSBwcm9wXG4gKlxuICogQHBhcmFtIHtvYmplY3R9IHByb3BzXG4gKiBAcmV0dXJucyB7Ym9vbGVhbn0gV2hldGhlciB0aGUgY29tcG9uZW50IGhhcyBhbiBhY2Nlc3NpYmlsaXR5IHByb3BcbiAqL1xuZXhwb3J0IGNvbnN0IGhhc0ExMXlQcm9wID0gKHByb3BzOiBSZWNvcmQ8c3RyaW5nLCBhbnk+KSA9PiB7XG4gIGZvciAoY29uc3QgcHJvcCBpbiBwcm9wcykge1xuICAgIGlmIChwcm9wLnN0YXJ0c1dpdGgoJ2FyaWEtJykgfHwgcHJvcCA9PT0gJ3JvbGUnIHx8IHByb3AgPT09ICd0aXRsZScpIHtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgfVxufTtcbiJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(pages-dir-browser)/./node_modules/lucide-react/dist/esm/shared/src/utils.js\n")); - -/***/ }), - -/***/ "(pages-dir-browser)/./node_modules/next/dist/build/webpack/loaders/next-client-pages-loader.js?absolutePagePath=D%3A%5Cdongyun-projects%5Ctwo%5Cpages%5Cnews.tsx&page=%2Fnews!": -/*!******************************************************************************************************************************************************************!*\ - !*** ./node_modules/next/dist/build/webpack/loaders/next-client-pages-loader.js?absolutePagePath=D%3A%5Cdongyun-projects%5Ctwo%5Cpages%5Cnews.tsx&page=%2Fnews! ***! - \******************************************************************************************************************************************************************/ -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { - -eval(__webpack_require__.ts("\n (window.__NEXT_P = window.__NEXT_P || []).push([\n \"/news\",\n function () {\n return __webpack_require__(/*! ./pages/news.tsx */ \"(pages-dir-browser)/./pages/news.tsx\");\n }\n ]);\n if(true) {\n module.hot.dispose(function () {\n window.__NEXT_P.push([\"/news\"])\n });\n }\n //# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvYnVpbGQvd2VicGFjay9sb2FkZXJzL25leHQtY2xpZW50LXBhZ2VzLWxvYWRlci5qcz9hYnNvbHV0ZVBhZ2VQYXRoPUQlM0ElNUNkb25neXVuLXByb2plY3RzJTVDdHdvJTVDcGFnZXMlNUNuZXdzLnRzeCZwYWdlPSUyRm5ld3MhIiwibWFwcGluZ3MiOiI7QUFDQTtBQUNBO0FBQ0E7QUFDQSxlQUFlLG1CQUFPLENBQUMsOERBQWtCO0FBQ3pDO0FBQ0E7QUFDQSxPQUFPLElBQVU7QUFDakIsTUFBTSxVQUFVO0FBQ2hCO0FBQ0EsT0FBTztBQUNQO0FBQ0EiLCJzb3VyY2VzIjpbIiJdLCJzb3VyY2VzQ29udGVudCI6WyJcbiAgICAod2luZG93Ll9fTkVYVF9QID0gd2luZG93Ll9fTkVYVF9QIHx8IFtdKS5wdXNoKFtcbiAgICAgIFwiL25ld3NcIixcbiAgICAgIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgcmV0dXJuIHJlcXVpcmUoXCIuL3BhZ2VzL25ld3MudHN4XCIpO1xuICAgICAgfVxuICAgIF0pO1xuICAgIGlmKG1vZHVsZS5ob3QpIHtcbiAgICAgIG1vZHVsZS5ob3QuZGlzcG9zZShmdW5jdGlvbiAoKSB7XG4gICAgICAgIHdpbmRvdy5fX05FWFRfUC5wdXNoKFtcIi9uZXdzXCJdKVxuICAgICAgfSk7XG4gICAgfVxuICAiXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(pages-dir-browser)/./node_modules/next/dist/build/webpack/loaders/next-client-pages-loader.js?absolutePagePath=D%3A%5Cdongyun-projects%5Ctwo%5Cpages%5Cnews.tsx&page=%2Fnews!\n")); - -/***/ }), - -/***/ "(pages-dir-browser)/./node_modules/next/dist/client/get-domain-locale.js": -/*!************************************************************!*\ - !*** ./node_modules/next/dist/client/get-domain-locale.js ***! - \************************************************************/ -/***/ ((module, exports, __webpack_require__) => { - -"use strict"; -eval(__webpack_require__.ts("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"getDomainLocale\", ({\n enumerable: true,\n get: function() {\n return getDomainLocale;\n }\n}));\nconst _normalizetrailingslash = __webpack_require__(/*! ./normalize-trailing-slash */ \"(pages-dir-browser)/./node_modules/next/dist/client/normalize-trailing-slash.js\");\nconst basePath = false || '';\nfunction getDomainLocale(path, locale, locales, domainLocales) {\n if (false) {} else {\n return false;\n }\n}\nif ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=get-domain-locale.js.map\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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvY2xpZW50L2dldC1kb21haW4tbG9jYWxlLmpzIiwibWFwcGluZ3MiOiI7Ozs7bURBT2dCQTs7O2VBQUFBOzs7b0RBSjJCO0FBRTNDLE1BQU1DLFdBQVlDLE1BQWtDLElBQWU7QUFFNUQsU0FBU0YsZ0JBQ2RLLElBQVksRUFDWkMsTUFBdUIsRUFDdkJDLE9BQTJCLEVBQzNCQyxhQUF1QztJQUV2QyxJQUFJTixLQUErQixFQUFFLEVBa0JwQyxNQUFNO1FBQ0wsT0FBTztJQUNUO0FBQ0YiLCJzb3VyY2VzIjpbIkQ6XFxzcmNcXGNsaWVudFxcZ2V0LWRvbWFpbi1sb2NhbGUudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBEb21haW5Mb2NhbGUgfSBmcm9tICcuLi9zZXJ2ZXIvY29uZmlnJ1xuaW1wb3J0IHR5cGUgeyBub3JtYWxpemVMb2NhbGVQYXRoIGFzIE5vcm1hbGl6ZUZuIH0gZnJvbSAnLi9ub3JtYWxpemUtbG9jYWxlLXBhdGgnXG5pbXBvcnQgdHlwZSB7IGRldGVjdERvbWFpbkxvY2FsZSBhcyBEZXRlY3RGbiB9IGZyb20gJy4vZGV0ZWN0LWRvbWFpbi1sb2NhbGUnXG5pbXBvcnQgeyBub3JtYWxpemVQYXRoVHJhaWxpbmdTbGFzaCB9IGZyb20gJy4vbm9ybWFsaXplLXRyYWlsaW5nLXNsYXNoJ1xuXG5jb25zdCBiYXNlUGF0aCA9IChwcm9jZXNzLmVudi5fX05FWFRfUk9VVEVSX0JBU0VQQVRIIGFzIHN0cmluZykgfHwgJydcblxuZXhwb3J0IGZ1bmN0aW9uIGdldERvbWFpbkxvY2FsZShcbiAgcGF0aDogc3RyaW5nLFxuICBsb2NhbGU/OiBzdHJpbmcgfCBmYWxzZSxcbiAgbG9jYWxlcz86IHJlYWRvbmx5IHN0cmluZ1tdLFxuICBkb21haW5Mb2NhbGVzPzogcmVhZG9ubHkgRG9tYWluTG9jYWxlW11cbikge1xuICBpZiAocHJvY2Vzcy5lbnYuX19ORVhUX0kxOE5fU1VQUE9SVCkge1xuICAgIGNvbnN0IG5vcm1hbGl6ZUxvY2FsZVBhdGg6IHR5cGVvZiBOb3JtYWxpemVGbiA9IChcbiAgICAgIHJlcXVpcmUoJy4vbm9ybWFsaXplLWxvY2FsZS1wYXRoJykgYXMgdHlwZW9mIGltcG9ydCgnLi9ub3JtYWxpemUtbG9jYWxlLXBhdGgnKVxuICAgICkubm9ybWFsaXplTG9jYWxlUGF0aFxuICAgIGNvbnN0IGRldGVjdERvbWFpbkxvY2FsZTogdHlwZW9mIERldGVjdEZuID0gKFxuICAgICAgcmVxdWlyZSgnLi9kZXRlY3QtZG9tYWluLWxvY2FsZScpIGFzIHR5cGVvZiBpbXBvcnQoJy4vZGV0ZWN0LWRvbWFpbi1sb2NhbGUnKVxuICAgICkuZGV0ZWN0RG9tYWluTG9jYWxlXG5cbiAgICBjb25zdCB0YXJnZXQgPSBsb2NhbGUgfHwgbm9ybWFsaXplTG9jYWxlUGF0aChwYXRoLCBsb2NhbGVzKS5kZXRlY3RlZExvY2FsZVxuICAgIGNvbnN0IGRvbWFpbiA9IGRldGVjdERvbWFpbkxvY2FsZShkb21haW5Mb2NhbGVzLCB1bmRlZmluZWQsIHRhcmdldClcbiAgICBpZiAoZG9tYWluKSB7XG4gICAgICBjb25zdCBwcm90byA9IGBodHRwJHtkb21haW4uaHR0cCA/ICcnIDogJ3MnfTovL2BcbiAgICAgIGNvbnN0IGZpbmFsTG9jYWxlID0gdGFyZ2V0ID09PSBkb21haW4uZGVmYXVsdExvY2FsZSA/ICcnIDogYC8ke3RhcmdldH1gXG4gICAgICByZXR1cm4gYCR7cHJvdG99JHtkb21haW4uZG9tYWlufSR7bm9ybWFsaXplUGF0aFRyYWlsaW5nU2xhc2goXG4gICAgICAgIGAke2Jhc2VQYXRofSR7ZmluYWxMb2NhbGV9JHtwYXRofWBcbiAgICAgICl9YFxuICAgIH1cbiAgICByZXR1cm4gZmFsc2VcbiAgfSBlbHNlIHtcbiAgICByZXR1cm4gZmFsc2VcbiAgfVxufVxuIl0sIm5hbWVzIjpbImdldERvbWFpbkxvY2FsZSIsImJhc2VQYXRoIiwicHJvY2VzcyIsImVudiIsIl9fTkVYVF9ST1VURVJfQkFTRVBBVEgiLCJwYXRoIiwibG9jYWxlIiwibG9jYWxlcyIsImRvbWFpbkxvY2FsZXMiLCJfX05FWFRfSTE4Tl9TVVBQT1JUIiwibm9ybWFsaXplTG9jYWxlUGF0aCIsInJlcXVpcmUiLCJkZXRlY3REb21haW5Mb2NhbGUiLCJ0YXJnZXQiLCJkZXRlY3RlZExvY2FsZSIsImRvbWFpbiIsInVuZGVmaW5lZCIsInByb3RvIiwiaHR0cCIsImZpbmFsTG9jYWxlIiwiZGVmYXVsdExvY2FsZSIsIm5vcm1hbGl6ZVBhdGhUcmFpbGluZ1NsYXNoIl0sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(pages-dir-browser)/./node_modules/next/dist/client/get-domain-locale.js\n")); - -/***/ }), - -/***/ "(pages-dir-browser)/./node_modules/next/dist/client/link.js": -/*!***********************************************!*\ - !*** ./node_modules/next/dist/client/link.js ***! - \***********************************************/ -/***/ ((module, exports, __webpack_require__) => { - -"use strict"; -eval(__webpack_require__.ts("/* __next_internal_client_entry_do_not_use__ cjs */ \nvar _s = $RefreshSig$();\n\"use strict\";\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n default: function() {\n return _default;\n },\n useLinkStatus: function() {\n return useLinkStatus;\n }\n});\nconst _interop_require_wildcard = __webpack_require__(/*! @swc/helpers/_/_interop_require_wildcard */ \"(pages-dir-browser)/./node_modules/@swc/helpers/esm/_interop_require_wildcard.js\");\nconst _jsxruntime = __webpack_require__(/*! react/jsx-runtime */ \"(pages-dir-browser)/./node_modules/react/jsx-runtime.js\");\nconst _react = /*#__PURE__*/ _interop_require_wildcard._(__webpack_require__(/*! react */ \"(pages-dir-browser)/./node_modules/react/index.js\"));\nconst _resolvehref = __webpack_require__(/*! ./resolve-href */ \"(pages-dir-browser)/./node_modules/next/dist/client/resolve-href.js\");\nconst _islocalurl = __webpack_require__(/*! ../shared/lib/router/utils/is-local-url */ \"(pages-dir-browser)/./node_modules/next/dist/shared/lib/router/utils/is-local-url.js\");\nconst _formaturl = __webpack_require__(/*! ../shared/lib/router/utils/format-url */ \"(pages-dir-browser)/./node_modules/next/dist/shared/lib/router/utils/format-url.js\");\nconst _utils = __webpack_require__(/*! ../shared/lib/utils */ \"(pages-dir-browser)/./node_modules/next/dist/shared/lib/utils.js\");\nconst _addlocale = __webpack_require__(/*! ./add-locale */ \"(pages-dir-browser)/./node_modules/next/dist/client/add-locale.js\");\nconst _routercontextsharedruntime = __webpack_require__(/*! ../shared/lib/router-context.shared-runtime */ \"(pages-dir-browser)/./node_modules/next/dist/shared/lib/router-context.shared-runtime.js\");\nconst _useintersection = __webpack_require__(/*! ./use-intersection */ \"(pages-dir-browser)/./node_modules/next/dist/client/use-intersection.js\");\nconst _getdomainlocale = __webpack_require__(/*! ./get-domain-locale */ \"(pages-dir-browser)/./node_modules/next/dist/client/get-domain-locale.js\");\nconst _addbasepath = __webpack_require__(/*! ./add-base-path */ \"(pages-dir-browser)/./node_modules/next/dist/client/add-base-path.js\");\nconst _usemergedref = __webpack_require__(/*! ./use-merged-ref */ \"(pages-dir-browser)/./node_modules/next/dist/client/use-merged-ref.js\");\nconst _erroronce = __webpack_require__(/*! ../shared/lib/utils/error-once */ \"(pages-dir-browser)/./node_modules/next/dist/shared/lib/utils/error-once.js\");\nconst prefetched = new Set();\nfunction prefetch(router, href, as, options) {\n if (false) {}\n if (!(0, _islocalurl.isLocalURL)(href)) {\n return;\n }\n // We should only dedupe requests when experimental.optimisticClientCache is\n // disabled.\n if (!options.bypassPrefetchedCheck) {\n const locale = typeof options.locale !== 'undefined' ? options.locale : 'locale' in router ? router.locale : undefined;\n const prefetchedKey = href + '%' + as + '%' + locale;\n // If we've already fetched the key, then don't prefetch it again!\n if (prefetched.has(prefetchedKey)) {\n return;\n }\n // Mark this URL as prefetched.\n prefetched.add(prefetchedKey);\n }\n // Prefetch the JSON page if asked (only in the client)\n // We need to handle a prefetch error here since we may be\n // loading with priority which can reject but we don't\n // want to force navigation since this is only a prefetch\n router.prefetch(href, as, options).catch((err)=>{\n if (true) {\n // rethrow to show invalid URL errors\n throw err;\n }\n });\n}\nfunction isModifiedEvent(event) {\n const eventTarget = event.currentTarget;\n const target = eventTarget.getAttribute('target');\n return target && target !== '_self' || event.metaKey || event.ctrlKey || event.shiftKey || event.altKey || // triggers resource download\n event.nativeEvent && event.nativeEvent.which === 2;\n}\nfunction linkClicked(e, router, href, as, replace, shallow, scroll, locale, onNavigate) {\n const { nodeName } = e.currentTarget;\n // anchors inside an svg have a lowercase nodeName\n const isAnchorNodeName = nodeName.toUpperCase() === 'A';\n if (isAnchorNodeName && isModifiedEvent(e) || e.currentTarget.hasAttribute('download')) {\n // ignore click for browser’s default behavior\n return;\n }\n if (!(0, _islocalurl.isLocalURL)(href)) {\n if (replace) {\n // browser default behavior does not replace the history state\n // so we need to do it manually\n e.preventDefault();\n location.replace(href);\n }\n // ignore click for browser’s default behavior\n return;\n }\n e.preventDefault();\n const navigate = ()=>{\n if (onNavigate) {\n let isDefaultPrevented = false;\n onNavigate({\n preventDefault: ()=>{\n isDefaultPrevented = true;\n }\n });\n if (isDefaultPrevented) {\n return;\n }\n }\n // If the router is an NextRouter instance it will have `beforePopState`\n const routerScroll = scroll != null ? scroll : true;\n if ('beforePopState' in router) {\n router[replace ? 'replace' : 'push'](href, as, {\n shallow,\n locale,\n scroll: routerScroll\n });\n } else {\n router[replace ? 'replace' : 'push'](as || href, {\n scroll: routerScroll\n });\n }\n };\n navigate();\n}\nfunction formatStringOrUrl(urlObjOrString) {\n if (typeof urlObjOrString === 'string') {\n return urlObjOrString;\n }\n return (0, _formaturl.formatUrl)(urlObjOrString);\n}\n/**\n * A React component that extends the HTML `<a>` element to provide [prefetching](https://nextjs.org/docs/app/building-your-application/routing/linking-and-navigating#2-prefetching)\n * and client-side navigation between routes.\n *\n * It is the primary way to navigate between routes in Next.js.\n *\n * Read more: [Next.js docs: `<Link>`](https://nextjs.org/docs/app/api-reference/components/link)\n */ const Link = /*#__PURE__*/ _s(_react.default.forwardRef(_c = _s(function LinkComponent(props, forwardedRef) {\n _s();\n let children;\n const { href: hrefProp, as: asProp, children: childrenProp, prefetch: prefetchProp = null, passHref, replace, shallow, scroll, locale, onClick, onNavigate, onMouseEnter: onMouseEnterProp, onTouchStart: onTouchStartProp, legacyBehavior = false, ...restProps } = props;\n children = childrenProp;\n if (legacyBehavior && (typeof children === 'string' || typeof children === 'number')) {\n children = /*#__PURE__*/ (0, _jsxruntime.jsx)(\"a\", {\n children: children\n });\n }\n const router = _react.default.useContext(_routercontextsharedruntime.RouterContext);\n const prefetchEnabled = prefetchProp !== false;\n if (true) {\n function createPropError(args) {\n return Object.defineProperty(new Error(\"Failed prop type: The prop `\" + args.key + \"` expects a \" + args.expected + \" in `<Link>`, but got `\" + args.actual + \"` instead.\" + ( true ? \"\\nOpen your browser's console to view the Component stack trace.\" : 0)), \"__NEXT_ERROR_CODE\", {\n value: \"E319\",\n enumerable: false,\n configurable: true\n });\n }\n // TypeScript trick for type-guarding:\n const requiredPropsGuard = {\n href: true\n };\n const requiredProps = Object.keys(requiredPropsGuard);\n requiredProps.forEach((key)=>{\n if (key === 'href') {\n if (props[key] == null || typeof props[key] !== 'string' && typeof props[key] !== 'object') {\n throw createPropError({\n key,\n expected: '`string` or `object`',\n actual: props[key] === null ? 'null' : typeof props[key]\n });\n }\n } else {\n // TypeScript trick for type-guarding:\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n const _ = key;\n }\n });\n // TypeScript trick for type-guarding:\n const optionalPropsGuard = {\n as: true,\n replace: true,\n scroll: true,\n shallow: true,\n passHref: true,\n prefetch: true,\n locale: true,\n onClick: true,\n onMouseEnter: true,\n onTouchStart: true,\n legacyBehavior: true,\n onNavigate: true\n };\n const optionalProps = Object.keys(optionalPropsGuard);\n optionalProps.forEach((key)=>{\n const valType = typeof props[key];\n if (key === 'as') {\n if (props[key] && valType !== 'string' && valType !== 'object') {\n throw createPropError({\n key,\n expected: '`string` or `object`',\n actual: valType\n });\n }\n } else if (key === 'locale') {\n if (props[key] && valType !== 'string') {\n throw createPropError({\n key,\n expected: '`string`',\n actual: valType\n });\n }\n } else if (key === 'onClick' || key === 'onMouseEnter' || key === 'onTouchStart' || key === 'onNavigate') {\n if (props[key] && valType !== 'function') {\n throw createPropError({\n key,\n expected: '`function`',\n actual: valType\n });\n }\n } else if (key === 'replace' || key === 'scroll' || key === 'shallow' || key === 'passHref' || key === 'legacyBehavior') {\n if (props[key] != null && valType !== 'boolean') {\n throw createPropError({\n key,\n expected: '`boolean`',\n actual: valType\n });\n }\n } else if (key === 'prefetch') {\n if (props[key] != null && valType !== 'boolean' && props[key] !== 'auto') {\n throw createPropError({\n key,\n expected: '`boolean | \"auto\"`',\n actual: valType\n });\n }\n } else {\n // TypeScript trick for type-guarding:\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n const _ = key;\n }\n });\n }\n const { href, as } = _react.default.useMemo({\n \"Link.LinkComponent.useMemo\": ()=>{\n if (!router) {\n const resolvedHref = formatStringOrUrl(hrefProp);\n return {\n href: resolvedHref,\n as: asProp ? formatStringOrUrl(asProp) : resolvedHref\n };\n }\n const [resolvedHref, resolvedAs] = (0, _resolvehref.resolveHref)(router, hrefProp, true);\n return {\n href: resolvedHref,\n as: asProp ? (0, _resolvehref.resolveHref)(router, asProp) : resolvedAs || resolvedHref\n };\n }\n }[\"Link.LinkComponent.useMemo\"], [\n router,\n hrefProp,\n asProp\n ]);\n const previousHref = _react.default.useRef(href);\n const previousAs = _react.default.useRef(as);\n // This will return the first child, if multiple are provided it will throw an error\n let child;\n if (legacyBehavior) {\n if (true) {\n if (onClick) {\n console.warn('\"onClick\" was passed to <Link> with `href` of `' + hrefProp + '` but \"legacyBehavior\" was set. The legacy behavior requires onClick be set on the child of next/link');\n }\n if (onMouseEnterProp) {\n console.warn('\"onMouseEnter\" was passed to <Link> with `href` of `' + hrefProp + '` but \"legacyBehavior\" was set. The legacy behavior requires onMouseEnter be set on the child of next/link');\n }\n try {\n child = _react.default.Children.only(children);\n } catch (err) {\n if (!children) {\n throw Object.defineProperty(new Error(\"No children were passed to <Link> with `href` of `\" + hrefProp + \"` but one child is required https://nextjs.org/docs/messages/link-no-children\"), \"__NEXT_ERROR_CODE\", {\n value: \"E320\",\n enumerable: false,\n configurable: true\n });\n }\n throw Object.defineProperty(new Error(\"Multiple children were passed to <Link> with `href` of `\" + hrefProp + \"` but only one child is supported https://nextjs.org/docs/messages/link-multiple-children\" + ( true ? \" \\nOpen your browser's console to view the Component stack trace.\" : 0)), \"__NEXT_ERROR_CODE\", {\n value: \"E266\",\n enumerable: false,\n configurable: true\n });\n }\n } else {}\n } else {\n if (true) {\n if ((children == null ? void 0 : children.type) === 'a') {\n throw Object.defineProperty(new Error('Invalid <Link> with <a> child. Please remove <a> or use <Link legacyBehavior>.\\nLearn more: https://nextjs.org/docs/messages/invalid-new-link-with-extra-anchor'), \"__NEXT_ERROR_CODE\", {\n value: \"E209\",\n enumerable: false,\n configurable: true\n });\n }\n }\n }\n const childRef = legacyBehavior ? child && typeof child === 'object' && child.ref : forwardedRef;\n const [setIntersectionRef, isVisible, resetVisible] = (0, _useintersection.useIntersection)({\n rootMargin: '200px'\n });\n const setIntersectionWithResetRef = _react.default.useCallback({\n \"Link.LinkComponent.useCallback[setIntersectionWithResetRef]\": (el)=>{\n // Before the link getting observed, check if visible state need to be reset\n if (previousAs.current !== as || previousHref.current !== href) {\n resetVisible();\n previousAs.current = as;\n previousHref.current = href;\n }\n setIntersectionRef(el);\n }\n }[\"Link.LinkComponent.useCallback[setIntersectionWithResetRef]\"], [\n as,\n href,\n resetVisible,\n setIntersectionRef\n ]);\n const setRef = (0, _usemergedref.useMergedRef)(setIntersectionWithResetRef, childRef);\n // Prefetch the URL if we haven't already and it's visible.\n _react.default.useEffect({\n \"Link.LinkComponent.useEffect\": ()=>{\n // in dev, we only prefetch on hover to avoid wasting resources as the prefetch will trigger compiling the page.\n if (true) {\n return;\n }\n if (!router) {\n return;\n }\n // If we don't need to prefetch the URL, don't do prefetch.\n if (!isVisible || !prefetchEnabled) {\n return;\n }\n // Prefetch the URL.\n prefetch(router, href, as, {\n locale\n });\n }\n }[\"Link.LinkComponent.useEffect\"], [\n as,\n href,\n isVisible,\n locale,\n prefetchEnabled,\n router == null ? void 0 : router.locale,\n router\n ]);\n const childProps = {\n ref: setRef,\n onClick (e) {\n if (true) {\n if (!e) {\n throw Object.defineProperty(new Error('Component rendered inside next/link has to pass click event to \"onClick\" prop.'), \"__NEXT_ERROR_CODE\", {\n value: \"E312\",\n enumerable: false,\n configurable: true\n });\n }\n }\n if (!legacyBehavior && typeof onClick === 'function') {\n onClick(e);\n }\n if (legacyBehavior && child.props && typeof child.props.onClick === 'function') {\n child.props.onClick(e);\n }\n if (!router) {\n return;\n }\n if (e.defaultPrevented) {\n return;\n }\n linkClicked(e, router, href, as, replace, shallow, scroll, locale, onNavigate);\n },\n onMouseEnter (e) {\n if (!legacyBehavior && typeof onMouseEnterProp === 'function') {\n onMouseEnterProp(e);\n }\n if (legacyBehavior && child.props && typeof child.props.onMouseEnter === 'function') {\n child.props.onMouseEnter(e);\n }\n if (!router) {\n return;\n }\n prefetch(router, href, as, {\n locale,\n priority: true,\n // @see {https://github.com/vercel/next.js/discussions/40268?sort=top#discussioncomment-3572642}\n bypassPrefetchedCheck: true\n });\n },\n onTouchStart: false ? 0 : function onTouchStart(e) {\n if (!legacyBehavior && typeof onTouchStartProp === 'function') {\n onTouchStartProp(e);\n }\n if (legacyBehavior && child.props && typeof child.props.onTouchStart === 'function') {\n child.props.onTouchStart(e);\n }\n if (!router) {\n return;\n }\n prefetch(router, href, as, {\n locale,\n priority: true,\n // @see {https://github.com/vercel/next.js/discussions/40268?sort=top#discussioncomment-3572642}\n bypassPrefetchedCheck: true\n });\n }\n };\n // If child is an <a> tag and doesn't have a href attribute, or if the 'passHref' property is\n // defined, we specify the current 'href', so that repetition is not needed by the user.\n // If the url is absolute, we can bypass the logic to prepend the domain and locale.\n if ((0, _utils.isAbsoluteUrl)(as)) {\n childProps.href = as;\n } else if (!legacyBehavior || passHref || child.type === 'a' && !('href' in child.props)) {\n const curLocale = typeof locale !== 'undefined' ? locale : router == null ? void 0 : router.locale;\n // we only render domain locales if we are currently on a domain locale\n // so that locale links are still visitable in development/preview envs\n const localeDomain = (router == null ? void 0 : router.isLocaleDomain) && (0, _getdomainlocale.getDomainLocale)(as, curLocale, router == null ? void 0 : router.locales, router == null ? void 0 : router.domainLocales);\n childProps.href = localeDomain || (0, _addbasepath.addBasePath)((0, _addlocale.addLocale)(as, curLocale, router == null ? void 0 : router.defaultLocale));\n }\n if (legacyBehavior) {\n if (true) {\n (0, _erroronce.errorOnce)('`legacyBehavior` is deprecated and will be removed in a future ' + 'release. A codemod is available to upgrade your components:\\n\\n' + 'npx @next/codemod@latest new-link .\\n\\n' + 'Learn more: https://nextjs.org/docs/app/building-your-application/upgrading/codemods#remove-a-tags-from-link-components');\n }\n return /*#__PURE__*/ _react.default.cloneElement(child, childProps);\n }\n return /*#__PURE__*/ (0, _jsxruntime.jsx)(\"a\", {\n ...restProps,\n ...childProps,\n children: children\n });\n}, \"cOEYCKQNQkvb3D7rzCm6zrDrstY=\")), \"cOEYCKQNQkvb3D7rzCm6zrDrstY=\");\n_c1 = Link;\nconst LinkStatusContext = /*#__PURE__*/ (0, _react.createContext)({\n // We do not support link status in the Pages Router, so we always return false\n pending: false\n});\nconst useLinkStatus = ()=>{\n // This behaviour is like React's useFormStatus. When the component is not under\n // a <form> tag, it will get the default value, instead of throwing an error.\n return (0, _react.useContext)(LinkStatusContext);\n};\nconst _default = Link;\nif ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=link.js.map\nvar _c, _c1;\n$RefreshReg$(_c, \"Link$_react.default.forwardRef\");\n$RefreshReg$(_c1, \"Link\");\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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvY2xpZW50L2xpbmsuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7SUE0c0JBLE9BQW1CO2VBQW5COztJQU5hQSxhQUFhO2VBQWJBOzs7Ozs2RUEvckJvQzt5Q0FFckI7d0NBQ0Q7dUNBQ0Q7bUNBQ0k7dUNBQ0o7d0RBQ0k7NkNBRUU7NkNBQ0E7eUNBQ0o7MENBQ0M7dUNBQ0g7QUE2RzFCLE1BQU1DLGFBQWEsSUFBSUM7QUFVdkIsU0FBU0MsU0FDUEMsTUFBa0IsRUFDbEJDLElBQVksRUFDWkMsRUFBVSxFQUNWQyxPQUF3QjtJQUV4QixJQUFJLEtBQTZCLEVBQUUsRUFFbEM7SUFFRCxJQUFJLENBQUNFLENBQUFBLEdBQUFBLFlBQUFBLFVBQUFBLEVBQVdKLE9BQU87UUFDckI7SUFDRjtJQUVBLDRFQUE0RTtJQUM1RSxZQUFZO0lBQ1osSUFBSSxDQUFDRSxRQUFRRyxxQkFBcUIsRUFBRTtRQUNsQyxNQUFNQyxTQUNKLE9BQ09KLFFBQVFJLE1BQU0sS0FBSyxjQUN0QkosUUFBUUksTUFBTSxHQUVkLFFBSjZELElBSWpEUCxTQUNWQSxPQUFPTyxNQUFNLEdBQ2JDO1FBRVIsTUFBTUMsZ0JBQWdCUixPQUFPLE1BQU1DLEtBQUssTUFBTUs7UUFFOUMsa0VBQWtFO1FBQ2xFLElBQUlWLFdBQVdhLEdBQUcsQ0FBQ0QsZ0JBQWdCO1lBQ2pDO1FBQ0Y7UUFFQSwrQkFBK0I7UUFDL0JaLFdBQVdjLEdBQUcsQ0FBQ0Y7SUFDakI7SUFFQSx1REFBdUQ7SUFDdkQsMERBQTBEO0lBQzFELHNEQUFzRDtJQUN0RCx5REFBeUQ7SUFDekRULE9BQU9ELFFBQVEsQ0FBQ0UsTUFBTUMsSUFBSUMsU0FBU1MsS0FBSyxDQUFDLENBQUNDO1FBQ3hDLElBQUlDLElBQW9CLEVBQW1CO1lBQ3pDLHFDQUFxQztZQUNyQyxNQUFNRDtRQUNSO0lBQ0Y7QUFDRjtBQUVBLFNBQVNJLGdCQUFnQkMsS0FBdUI7SUFDOUMs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QUEsT0FBQUEsS0FBQUEsSUFBQUEsT0FBUXVILGNBQUFBLEtBQ1JDLENBQUFBLEdBQUFBLGlCQUFBQSxlQUFBQSxFQUFnQnRILElBQUltSCxXQUFXckgsVUFBQUEsT0FBQUEsS0FBQUEsSUFBQUEsT0FBUXlILE9BQU8sRUFBRXpILFVBQUFBLE9BQUFBLEtBQUFBLElBQUFBLE9BQVEwSCxhQUFhO1FBRXZFVixXQUFXL0csSUFBSSxHQUNicUgsZ0JBQ0FLLENBQUFBLEdBQUFBLGFBQUFBLFdBQUFBLEVBQVlDLENBQUFBLEdBQUFBLFdBQUFBLFNBQUFBLEVBQVUxSCxJQUFJbUgsV0FBV3JILFVBQUFBLE9BQUFBLEtBQUFBLElBQUFBLE9BQVE2SCxhQUFhO0lBQzlEO0lBRUEsSUFBSTdELGdCQUFnQjtRQUNsQixJQUFJbEQsSUFBb0IsRUFBb0I7WUFDMUNnSCxDQUFBQSxHQUFBQSxXQUFBQSxTQUFBQSxFQUNFLG9FQUNFLG9FQUNBLDRDQUNBO1FBRU47UUFDQSxxQkFBTzlFLE9BQUFBLE9BQUssQ0FBQytFLFlBQVksQ0FBQ25DLE9BQU9vQjtJQUNuQztJQUVBLHFCQUNFLHFCQUFDOUMsS0FBQUE7UUFBRyxHQUFHRCxTQUFTO1FBQUcsR0FBRytDLFVBQVU7a0JBQzdCM0Q7O0FBR1A7O0FBR0YsTUFBTTJFLG9CQUFBQSxXQUFBQSxHQUFvQkMsQ0FBQUEsR0FBQUEsT0FBQUEsYUFBQUEsRUFFdkI7SUFDRCwrRUFBK0U7SUFDL0VDLFNBQVM7QUFDWDtBQUVPLE1BQU10SSxnQkFBZ0I7SUFDM0IsZ0ZBQWdGO0lBQ2hGLDZFQUE2RTtJQUM3RSxPQUFPdUUsQ0FBQUEsR0FBQUEsT0FBQUEsVUFBQUEsRUFBVzZEO0FBQ3BCO01BRUEsV0FBZWpGIiwic291cmNlcyI6WyJEOlxcc3JjXFxjbGllbnRcXGxpbmsudHN4Il0sInNvdXJjZXNDb250ZW50IjpbIid1c2UgY2xpZW50J1xuXG5pbXBvcnQgdHlwZSB7XG4gIE5leHRSb3V0ZXIsXG4gIFByZWZldGNoT3B0aW9ucyBhcyBSb3V0ZXJQcmVmZXRjaE9wdGlvbnMsXG59IGZyb20gJy4uL3NoYXJlZC9saWIvcm91dGVyL3JvdXRlcidcblxuaW1wb3J0IFJlYWN0LCB7IGNyZWF0ZUNvbnRleHQsIHVzZUNvbnRleHQgfSBmcm9tICdyZWFjdCdcbmltcG9ydCB0eXBlIHsgVXJsT2JqZWN0IH0gZnJvbSAndXJsJ1xuaW1wb3J0IHsgcmVzb2x2ZUhyZWYgfSBmcm9tICcuL3Jlc29sdmUtaHJlZidcbmltcG9ydCB7IGlzTG9jYWxVUkwgfSBmcm9tICcuLi9zaGFyZWQvbGliL3JvdXRlci91dGlscy9pcy1sb2NhbC11cmwnXG5pbXBvcnQgeyBmb3JtYXRVcmwgfSBmcm9tICcuLi9zaGFyZWQvbGliL3JvdXRlci91dGlscy9mb3JtYXQtdXJsJ1xuaW1wb3J0IHsgaXNBYnNvbHV0ZVVybCB9IGZyb20gJy4uL3NoYXJlZC9saWIvdXRpbHMnXG5pbXBvcnQgeyBhZGRMb2NhbGUgfSBmcm9tICcuL2FkZC1sb2NhbGUnXG5pbXBvcnQgeyBSb3V0ZXJDb250ZXh0IH0gZnJvbSAnLi4vc2hhcmVkL2xpYi9yb3V0ZXItY29udGV4dC5zaGFyZWQtcnVudGltZSdcbmltcG9ydCB0eXBlIHsgQXBwUm91dGVySW5zdGFuY2UgfSBmcm9tICcuLi9zaGFyZWQvbGliL2FwcC1yb3V0ZXItY29udGV4dC5zaGFyZWQtcnVudGltZSdcbmltcG9ydCB7IHVzZUludGVyc2VjdGlvbiB9IGZyb20gJy4vdXNlLWludGVyc2VjdGlvbidcbmltcG9ydCB7IGdldERvbWFpbkxvY2FsZSB9IGZyb20gJy4vZ2V0LWRvbWFpbi1sb2NhbGUnXG5pbXBvcnQgeyBhZGRCYXNlUGF0aCB9IGZyb20gJy4vYWRkLWJhc2UtcGF0aCdcbmltcG9ydCB7IHVzZU1lcmdlZFJlZiB9IGZyb20gJy4vdXNlLW1lcmdlZC1yZWYnXG5pbXBvcnQgeyBlcnJvck9uY2UgfSBmcm9tICcuLi9zaGFyZWQvbGliL3V0aWxzL2Vycm9yLW9uY2UnXG5cbnR5cGUgVXJsID0gc3RyaW5nIHwgVXJsT2JqZWN0XG50eXBlIFJlcXVpcmVkS2V5czxUPiA9IHtcbiAgW0sgaW4ga2V5b2YgVF0tPzoge30gZXh0ZW5kcyBQaWNrPFQsIEs+ID8gbmV2ZXIgOiBLXG59W2tleW9mIFRdXG50eXBlIE9wdGlvbmFsS2V5czxUPiA9IHtcbiAgW0sgaW4ga2V5b2YgVF0tPzoge30gZXh0ZW5kcyBQaWNrPFQsIEs+ID8gSyA6IG5ldmVyXG59W2tleW9mIFRdXG5cbnR5cGUgT25OYXZpZ2F0ZUV2ZW50SGFuZGxlciA9IChldmVudDogeyBwcmV2ZW50RGVmYXVsdDogKCkgPT4gdm9pZCB9KSA9PiB2b2lkXG5cbnR5cGUgSW50ZXJuYWxMaW5rUHJvcHMgPSB7XG4gIC8qKlxuICAgKiBUaGUgcGF0aCBvciBVUkwgdG8gbmF2aWdhdGUgdG8uIEl0IGNhbiBhbHNvIGJlIGFuIG9iamVjdC5cbiAgICpcbiAgICogQGV4YW1wbGUgaHR0cHM6Ly9uZXh0anMub3JnL2RvY3MvYXBpLXJlZmVyZW5jZS9uZXh0L2xpbmsjd2l0aC11cmwtb2JqZWN0XG4gICAqL1xuICBocmVmOiBVcmxcbiAgLyoqXG4gICAqIE9wdGlvbmFsIGRlY29yYXRvciBmb3IgdGhlIHBhdGggdGhhdCB3aWxsIGJlIHNob3duIGluIHRoZSBicm93c2VyIFVSTCBiYXIuIEJlZm9yZSBOZXh0LmpzIDkuNS4zIHRoaXMgd2FzIHVzZWQgZm9yIGR5bmFtaWMgcm91dGVzLCBjaGVjayBvdXIgW3ByZXZpb3VzIGRvY3NdKGh0dHBzOi8vZ2l0aHViLmNvbS92ZXJjZWwvbmV4dC5qcy9ibG9iL3Y5LjUuMi9kb2NzL2FwaS1yZWZlcmVuY2UvbmV4dC9saW5rLm1kI2R5bmFtaWMtcm91dGVzKSB0byBzZWUgaG93IGl0IHdvcmtlZC4gTm90ZTogd2hlbiB0aGlzIHBhdGggZGlmZmVycyBmcm9tIHRoZSBvbmUgcHJvdmlkZWQgaW4gYGhyZWZgIHRoZSBwcmV2aW91cyBgaHJlZmAvYGFzYCBiZWhhdmlvciBpcyB1c2VkIGFzIHNob3duIGluIHRoZSBbcHJldmlvdXMgZG9jc10oaHR0cHM6Ly9naXRodWIuY29tL3ZlcmNlbC9uZXh0LmpzL2Jsb2IvdjkuNS4yL2RvY3MvYXBpLXJlZmVyZW5jZS9uZXh0L2xpbmsubWQjZHluYW1pYy1yb3V0ZXMpLlxuICAgKi9cbiAgYXM/OiBVcmxcbiAgLyoqXG4gICAqIFJlcGxhY2UgdGhlIGN1cnJlbnQgYGhpc3RvcnlgIHN0YXRlIGluc3RlYWQgb2YgYWRkaW5nIGEgbmV3IHVybCBpbnRvIHRoZSBzdGFjay5cbiAgICpcbiAgICogQGRlZmF1bHRWYWx1ZSBgZmFsc2VgXG4gICAqL1xuICByZXBsYWNlPzogYm9vbGVhblxuICAvKipcbiAgICogV2hldGhlciB0byBvdmVycmlkZSB0aGUgZGVmYXVsdCBzY3JvbGwgYmVoYXZpb3JcbiAgICpcbiAgICogQGV4YW1wbGUgaHR0cHM6Ly9uZXh0anMub3JnL2RvY3MvYXBpLXJlZmVyZW5jZS9uZXh0L2xpbmsjZGlzYWJsZS1zY3JvbGxpbmctdG8tdGhlLXRvcC1vZi10aGUtcGFnZVxuICAgKlxuICAgKiBAZGVmYXVsdFZhbHVlIGB0cnVlYFxuICAgKi9cbiAgc2Nyb2xsPzogYm9vbGVhblxuICAvKipcbiAgICogVXBkYXRlIHRoZSBwYXRoIG9mIHRoZSBjdXJyZW50IHBhZ2Ugd2l0aG91dCByZXJ1bm5pbmcgW2BnZXRTdGF0aWNQcm9wc2BdKGh0dHBzOi8vbmV4dGpzLm9yZy9kb2NzL3BhZ2VzL2J1aWxkaW5nLXlvdXItYXBwbGljYXRpb24vZGF0YS1mZXRjaGluZy9nZXQtc3RhdGljLXByb3BzKSwgW2BnZXRTZXJ2ZXJTaWRlUHJvcHNgXShodHRwczovL25leHRqcy5vcmcvZG9jcy9wYWdlcy9idWlsZGluZy15b3VyLWFwcGxpY2F0aW9uL2RhdGEtZmV0Y2hpbmcvZ2V0LXNlcnZlci1zaWRlLXByb3BzKSBvciBbYGdldEluaXRpYWxQcm9wc2BdKC9kb2NzL3BhZ2VzL2FwaS1yZWZlcmVuY2UvZnVuY3Rpb25zL2dldC1pbml0aWFsLXByb3BzKS5cbiAgICpcbiAgICogQGRlZmF1bHRWYWx1ZSBgZmFsc2VgXG4gICAqL1xuICBzaGFsbG93PzogYm9vbGVhblxuICAvKipcbiAgICogRm9yY2VzIGBMaW5rYCB0byBzZW5kIHRoZSBgaHJlZmAgcHJvcGVydHkgdG8gaXRzIGNoaWxkLlxuICAgKlxuICAgKiBAZGVmYXVsdFZhbHVlIGBmYWxzZWBcbiAgICovXG4gIHBhc3NIcmVmPzogYm9vbGVhblxuICAvKipcbiAgICogUHJlZmV0Y2ggdGhlIHBhZ2UgaW4gdGhlIGJhY2tncm91bmQuXG4gICAqIEFueSBgPExpbmsgLz5gIHRoYXQgaXMgaW4gdGhlIHZpZXdwb3J0IChpbml0aWFsbHkgb3IgdGhyb3VnaCBzY3JvbGwpIHdpbGwgYmUgcHJlZmV0Y2hlZC5cbiAgICogUHJlZmV0Y2ggY2FuIGJlIGRpc2FibGVkIGJ5IHBhc3NpbmcgYHByZWZldGNoPXtmYWxzZX1gLiBQcmVmZXRjaGluZyBpcyBvbmx5IGVuYWJsZWQgaW4gcHJvZHVjdGlvbi5cbiAgICpcbiAgICogSW4gQXBwIFJvdXRlcjpcbiAgICogLSBcImF1dG9cIiwgbnVsbCwgdW5kZWZpbmVkIChkZWZhdWx0KTogRm9yIHN0YXRpY2FsbHkgZ2VuZXJhdGVkIHBhZ2VzLCB0aGlzIHdpbGwgcHJlZmV0Y2ggdGhlIGZ1bGwgUmVhY3QgU2VydmVyIENvbXBvbmVudCBkYXRhLiBGb3IgZHluYW1pYyBwYWdlcywgdGhpcyB3aWxsIHByZWZldGNoIHVwIHRvIHRoZSBuZWFyZXN0IHJvdXRlIHNlZ21lbnQgd2l0aCBhIFtgbG9hZGluZy5qc2BdKGh0dHBzOi8vbmV4dGpzLm9yZy9kb2NzL2FwcC9hcGktcmVmZXJlbmNlL2ZpbGUtY29udmVudGlvbnMvbG9hZGluZykgZmlsZS4gSWYgdGhlcmUgaXMgbm8gbG9hZGluZyBmaWxlLCBpdCB3aWxsIG5vdCBmZXRjaCB0aGUgZnVsbCB0cmVlIHRvIGF2b2lkIGZldGNoaW5nIHRvbyBtdWNoIGRhdGEuXG4gICAqIC0gYHRydWVgOiBUaGlzIHdpbGwgcHJlZmV0Y2ggdGhlIGZ1bGwgUmVhY3QgU2VydmVyIENvbXBvbmVudCBkYXRhIGZvciBhbGwgcm91dGUgc2VnbWVudHMsIHJlZ2FyZGxlc3Mgb2Ygd2hldGhlciB0aGV5IGNvbnRhaW4gYSBzZWdtZW50IHdpdGggYGxvYWRpbmcuanNgLlxuICAgKiAtIGBmYWxzZWA6IFRoaXMgd2lsbCBub3QgcHJlZmV0Y2ggYW55IGRhdGEsIGV2ZW4gb24gaG92ZXIuXG4gICAqXG4gICAqIEluIFBhZ2VzIFJvdXRlcjpcbiAgICogLSBgdHJ1ZWAgKGRlZmF1bHQpOiBUaGUgZnVsbCByb3V0ZSAmIGl0cyBkYXRhIHdpbGwgYmUgcHJlZmV0Y2hlZC5cbiAgICogLSBgZmFsc2VgOiBQcmVmZXRjaGluZyB3aWxsIG5vdCBoYXBwZW4gd2hlbiBlbnRlcmluZyB0aGUgdmlld3BvcnQsIGJ1dCB3aWxsIHN0aWxsIGhhcHBlbiBvbiBob3Zlci5cbiAgICogQGRlZmF1bHRWYWx1ZSBgdHJ1ZWAgKHBhZ2VzIHJvdXRlcikgb3IgYG51bGxgIChhcHAgcm91dGVyKVxuICAgKi9cbiAgcHJlZmV0Y2g/OiBib29sZWFuIHwgJ2F1dG8nIHwgbnVsbFxuICAvKipcbiAgICogVGhlIGFjdGl2ZSBsb2NhbGUgaXMgYXV0b21hdGljYWxseSBwcmVwZW5kZWQuIGBsb2NhbGVgIGFsbG93cyBmb3IgcHJvdmlkaW5nIGEgZGlmZmVyZW50IGxvY2FsZS5cbiAgICogV2hlbiBgZmFsc2VgIGBocmVmYCBoYXMgdG8gaW5jbHVkZSB0aGUgbG9jYWxlIGFzIHRoZSBkZWZhdWx0IGJlaGF2aW9yIGlzIGRpc2FibGVkLlxuICAgKiBOb3RlOiBUaGlzIGlzIG9ubHkgYXZhaWxhYmxlIGluIHRoZSBQYWdlcyBSb3V0ZXIuXG4gICAqL1xuICBsb2NhbGU/OiBzdHJpbmcgfCBmYWxzZVxuICAvKipcbiAgICogRW5hYmxlIGxlZ2FjeSBsaW5rIGJlaGF2aW9yLlxuICAgKiBAZGVwcmVjYXRlZCBUaGlzIHdpbGwgYmUgcmVtb3ZlZCBpbiB2MTZcbiAgICogQGRlZmF1bHRWYWx1ZSBgZmFsc2VgXG4gICAqIEBzZWUgaHR0cHM6Ly9naXRodWIuY29tL3ZlcmNlbC9uZXh0LmpzL2NvbW1pdC80ODllNjVlZDk4NTQ0ZTY5YjBhZmQ3ZTBjZmMzZjlmNmMyYjgwM2I3XG4gICAqL1xuICBsZWdhY3lCZWhhdmlvcj86IGJvb2xlYW5cbiAgLyoqXG4gICAqIE9wdGlvbmFsIGV2ZW50IGhhbmRsZXIgZm9yIHdoZW4gdGhlIG1vdXNlIHBvaW50ZXIgaXMgbW92ZWQgb250byBMaW5rXG4gICAqL1xuICBvbk1vdXNlRW50ZXI/OiBSZWFjdC5Nb3VzZUV2ZW50SGFuZGxlcjxIVE1MQW5jaG9yRWxlbWVudD5cbiAgLyoqXG4gICAqIE9wdGlvbmFsIGV2ZW50IGhhbmRsZXIgZm9yIHdoZW4gTGluayBpcyB0b3VjaGVkLlxuICAgKi9cbiAgb25Ub3VjaFN0YXJ0PzogUmVhY3QuVG91Y2hFdmVudEhhbmRsZXI8SFRNTEFuY2hvckVsZW1lbnQ+XG4gIC8qKlxuICAgKiBPcHRpb25hbCBldmVudCBoYW5kbGVyIGZvciB3aGVuIExpbmsgaXMgY2xpY2tlZC5cbiAgICovXG4gIG9uQ2xpY2s/OiBSZWFjdC5Nb3VzZUV2ZW50SGFuZGxlcjxIVE1MQW5jaG9yRWxlbWVudD5cbiAgLyoqXG4gICAqIE9wdGlvbmFsIGV2ZW50IGhhbmRsZXIgZm9yIHdoZW4gdGhlIGA8TGluaz5gIGlzIG5hdmlnYXRlZC5cbiAgICovXG4gIG9uTmF2aWdhdGU/OiBPbk5hdmlnYXRlRXZlbnRIYW5kbGVyXG59XG5cbi8vIFRPRE8tQVBQOiBJbmNsdWRlIHRoZSBmdWxsIHNldCBvZiBBbmNob3IgcHJvcHNcbi8vIGFkZGluZyB0aGlzIHRvIHRoZSBwdWJsaWNseSBleHBvcnRlZCB0eXBlIGN1cnJlbnRseSBicmVha3MgZXhpc3RpbmcgYXBwc1xuXG4vLyBgUm91dGVJbmZlclR5cGVgIGlzIGEgc3R1YiBoZXJlIHRvIGF2b2lkIGJyZWFraW5nIGB0eXBlZFJvdXRlc2Agd2hlbiB0aGUgdHlwZVxuLy8gaXNuJ3QgZ2VuZXJhdGVkIHlldC4gSXQgd2lsbCBiZSByZXBsYWNlZCB3aGVuIHRoZSB3ZWJwYWNrIHBsdWdpbiBydW5zLlxuLy8gV0FSTklORzogVGhpcyBzaG91bGQgYmUgYW4gaW50ZXJmYWNlIHRvIHByZXZlbnQgVHlwZVNjcmlwdCBmcm9tIGlubGluaW5nIGl0XG4vLyBpbiBkZWNsYXJhdGlvbnMgb2YgbGlicmFyaWVzIGRlcGVuZGVuZGluZyBvbiBOZXh0LmpzLlxuLy8gTm90IHRyaXZpYWwgdG8gcmVwcm9kdWNlIHNvIG9ubHkgY29udmVydCB0byBhbiBpbnRlcmZhY2Ugd2hlbiBuZWVkZWQuXG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXVudXNlZC12YXJzXG5leHBvcnQgaW50ZXJmYWNlIExpbmtQcm9wczxSb3V0ZUluZmVyVHlwZSA9IGFueT4gZXh0ZW5kcyBJbnRlcm5hbExpbmtQcm9wcyB7fVxudHlwZSBMaW5rUHJvcHNSZXF1aXJlZCA9IFJlcXVpcmVkS2V5czxMaW5rUHJvcHM+XG50eXBlIExpbmtQcm9wc09wdGlvbmFsID0gT3B0aW9uYWxLZXlzPEludGVybmFsTGlua1Byb3BzPlxuXG5jb25zdCBwcmVmZXRjaGVkID0gbmV3IFNldDxzdHJpbmc+KClcblxudHlwZSBQcmVmZXRjaE9wdGlvbnMgPSBSb3V0ZXJQcmVmZXRjaE9wdGlvbnMgJiB7XG4gIC8qKlxuICAgKiBieXBhc3NQcmVmZXRjaGVkQ2hlY2sgd2lsbCBieXBhc3MgdGhlIGNoZWNrIHRvIHNlZSBpZiB0aGUgYGhyZWZgIGhhc1xuICAgKiBhbHJlYWR5IGJlZW4gZmV0Y2hlZC5cbiAgICovXG4gIGJ5cGFzc1ByZWZldGNoZWRDaGVjaz86IGJvb2xlYW5cbn1cblxuZnVuY3Rpb24gcHJlZmV0Y2goXG4gIHJvdXRlcjogTmV4dFJvdXRlcixcbiAgaHJlZjogc3RyaW5nLFxuICBhczogc3RyaW5nLFxuICBvcHRpb25zOiBQcmVmZXRjaE9wdGlvbnNcbik6IHZvaWQge1xuICBpZiAodHlwZW9mIHdpbmRvdyA9PT0gJ3VuZGVmaW5lZCcpIHtcbiAgICByZXR1cm5cbiAgfVxuXG4gIGlmICghaXNMb2NhbFVSTChocmVmKSkge1xuICAgIHJldHVyblxuICB9XG5cbiAgLy8gV2Ugc2hvdWxkIG9ubHkgZGVkdXBlIHJlcXVlc3RzIHdoZW4gZXhwZXJpbWVudGFsLm9wdGltaXN0aWNDbGllbnRDYWNoZSBpc1xuICAvLyBkaXNhYmxlZC5cbiAgaWYgKCFvcHRpb25zLmJ5cGFzc1ByZWZldGNoZWRDaGVjaykge1xuICAgIGNvbnN0IGxvY2FsZSA9XG4gICAgICAvLyBMZXQgdGhlIGxpbmsncyBsb2NhbGUgcHJvcCBvdmVycmlkZSB0aGUgZGVmYXVsdCByb3V0ZXIgbG9jYWxlLlxuICAgICAgdHlwZW9mIG9wdGlvbnMubG9jYWxlICE9PSAndW5kZWZpbmVkJ1xuICAgICAgICA/IG9wdGlvbnMubG9jYWxlXG4gICAgICAgIDogLy8gT3RoZXJ3aXNlIGZhbGxiYWNrIHRvIHRoZSByb3V0ZXIncyBsb2NhbGUuXG4gICAgICAgICAgJ2xvY2FsZScgaW4gcm91dGVyXG4gICAgICAgICAgPyByb3V0ZXIubG9jYWxlXG4gICAgICAgICAgOiB1bmRlZmluZWRcblxuICAgIGNvbnN0IHByZWZldGNoZWRLZXkgPSBocmVmICsgJyUnICsgYXMgKyAnJScgKyBsb2NhbGVcblxuICAgIC8vIElmIHdlJ3ZlIGFscmVhZHkgZmV0Y2hlZCB0aGUga2V5LCB0aGVuIGRvbid0IHByZWZldGNoIGl0IGFnYWluIVxuICAgIGlmIChwcmVmZXRjaGVkLmhhcyhwcmVmZXRjaGVkS2V5KSkge1xuICAgICAgcmV0dXJuXG4gICAgfVxuXG4gICAgLy8gTWFyayB0aGlzIFVSTCBhcyBwcmVmZXRjaGVkLlxuICAgIHByZWZldGNoZWQuYWRkKHByZWZldGNoZWRLZXkpXG4gIH1cblxuICAvLyBQcmVmZXRjaCB0aGUgSlNPTiBwYWdlIGlmIGFza2VkIChvbmx5IGluIHRoZSBjbGllbnQpXG4gIC8vIFdlIG5lZWQgdG8gaGFuZGxlIGEgcHJlZmV0Y2ggZXJyb3IgaGVyZSBzaW5jZSB3ZSBtYXkgYmVcbiAgLy8gbG9hZGluZyB3aXRoIHByaW9yaXR5IHdoaWNoIGNhbiByZWplY3QgYnV0IHdlIGRvbid0XG4gIC8vIHdhbnQgdG8gZm9yY2UgbmF2aWdhdGlvbiBzaW5jZSB0aGlzIGlzIG9ubHkgYSBwcmVmZXRjaFxuICByb3V0ZXIucHJlZmV0Y2goaHJlZiwgYXMsIG9wdGlvbnMpLmNhdGNoKChlcnIpID0+IHtcbiAgICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJykge1xuICAgICAgLy8gcmV0aHJvdyB0byBzaG93IGludmFsaWQgVVJMIGVycm9yc1xuICAgICAgdGhyb3cgZXJyXG4gICAgfVxuICB9KVxufVxuXG5mdW5jdGlvbiBpc01vZGlmaWVkRXZlbnQoZXZlbnQ6IFJlYWN0Lk1vdXNlRXZlbnQpOiBib29sZWFuIHtcbiAgY29uc3QgZXZlbnRUYXJnZXQgPSBldmVudC5jdXJyZW50VGFyZ2V0IGFzIEhUTUxBbmNob3JFbGVtZW50IHwgU1ZHQUVsZW1lbnRcbiAgY29uc3QgdGFyZ2V0ID0gZXZlbnRUYXJnZXQuZ2V0QXR0cmlidXRlKCd0YXJnZXQnKVxuICByZXR1cm4gKFxuICAgICh0YXJnZXQgJiYgdGFyZ2V0ICE9PSAnX3NlbGYnKSB8fFxuICAgIGV2ZW50Lm1ldGFLZXkgfHxcbiAgICBldmVudC5jdHJsS2V5IHx8XG4gICAgZXZlbnQuc2hpZnRLZXkgfHxcbiAgICBldmVudC5hbHRLZXkgfHwgLy8gdHJpZ2dlcnMgcmVzb3VyY2UgZG93bmxvYWRcbiAgICAoZXZlbnQubmF0aXZlRXZlbnQgJiYgZXZlbnQubmF0aXZlRXZlbnQud2hpY2ggPT09IDIpXG4gIClcbn1cblxuZnVuY3Rpb24gbGlua0NsaWNrZWQoXG4gIGU6IFJlYWN0Lk1vdXNlRXZlbnQsXG4gIHJvdXRlcjogTmV4dFJvdXRlciB8IEFwcFJvdXRlckluc3RhbmNlLFxuICBocmVmOiBzdHJpbmcsXG4gIGFzOiBzdHJpbmcsXG4gIHJlcGxhY2U/OiBib29sZWFuLFxuICBzaGFsbG93PzogYm9vbGVhbixcbiAgc2Nyb2xsPzogYm9vbGVhbixcbiAgbG9jYWxlPzogc3RyaW5nIHwgZmFsc2UsXG4gIG9uTmF2aWdhdGU/OiBPbk5hdmlnYXRlRXZlbnRIYW5kbGVyXG4pOiB2b2lkIHtcbiAgY29uc3QgeyBub2RlTmFtZSB9ID0gZS5jdXJyZW50VGFyZ2V0XG5cbiAgLy8gYW5jaG9ycyBpbnNpZGUgYW4gc3ZnIGhhdmUgYSBsb3dlcmNhc2Ugbm9kZU5hbWVcbiAgY29uc3QgaXNBbmNob3JOb2RlTmFtZSA9IG5vZGVOYW1lLnRvVXBwZXJDYXNlKCkgPT09ICdBJ1xuXG4gIGlmIChcbiAgICAoaXNBbmNob3JOb2RlTmFtZSAmJiBpc01vZGlmaWVkRXZlbnQoZSkpIHx8XG4gICAgZS5jdXJyZW50VGFyZ2V0Lmhhc0F0dHJpYnV0ZSgnZG93bmxvYWQnKVxuICApIHtcbiAgICAvLyBpZ25vcmUgY2xpY2sgZm9yIGJyb3dzZXLigJlzIGRlZmF1bHQgYmVoYXZpb3JcbiAgICByZXR1cm5cbiAgfVxuXG4gIGlmICghaXNMb2NhbFVSTChocmVmKSkge1xuICAgIGlmIChyZXBsYWNlKSB7XG4gICAgICAvLyBicm93c2VyIGRlZmF1bHQgYmVoYXZpb3IgZG9lcyBub3QgcmVwbGFjZSB0aGUgaGlzdG9yeSBzdGF0ZVxuICAgICAgLy8gc28gd2UgbmVlZCB0byBkbyBpdCBtYW51YWxseVxuICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpXG4gICAgICBsb2NhdGlvbi5yZXBsYWNlKGhyZWYpXG4gICAgfVxuXG4gICAgLy8gaWdub3JlIGNsaWNrIGZvciBicm93c2Vy4oCZcyBkZWZhdWx0IGJlaGF2aW9yXG4gICAgcmV0dXJuXG4gIH1cblxuICBlLnByZXZlbnREZWZhdWx0KClcblxuICBjb25zdCBuYXZpZ2F0ZSA9ICgpID0+IHtcbiAgICBpZiAob25OYXZpZ2F0ZSkge1xuICAgICAgbGV0IGlzRGVmYXVsdFByZXZlbnRlZCA9IGZhbHNlXG5cbiAgICAgIG9uTmF2aWdhdGUoe1xuICAgICAgICBwcmV2ZW50RGVmYXVsdDogKCkgPT4ge1xuICAgICAgICAgIGlzRGVmYXVsdFByZXZlbnRlZCA9IHRydWVcbiAgICAgICAgfSxcbiAgICAgIH0pXG5cbiAgICAgIGlmIChpc0RlZmF1bHRQcmV2ZW50ZWQpIHtcbiAgICAgICAgcmV0dXJuXG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gSWYgdGhlIHJvdXRlciBpcyBhbiBOZXh0Um91dGVyIGluc3RhbmNlIGl0IHdpbGwgaGF2ZSBgYmVmb3JlUG9wU3RhdGVgXG4gICAgY29uc3Qgcm91dGVyU2Nyb2xsID0gc2Nyb2xsID8/IHRydWVcbiAgICBpZiAoJ2JlZm9yZVBvcFN0YXRlJyBpbiByb3V0ZXIpIHtcbiAgICAgIHJvdXRlcltyZXBsYWNlID8gJ3JlcGxhY2UnIDogJ3B1c2gnXShocmVmLCBhcywge1xuICAgICAgICBzaGFsbG93LFxuICAgICAgICBsb2NhbGUsXG4gICAgICAgIHNjcm9sbDogcm91dGVyU2Nyb2xsLFxuICAgICAgfSlcbiAgICB9IGVsc2Uge1xuICAgICAgcm91dGVyW3JlcGxhY2UgPyAncmVwbGFjZScgOiAncHVzaCddKGFzIHx8IGhyZWYsIHtcbiAgICAgICAgc2Nyb2xsOiByb3V0ZXJTY3JvbGwsXG4gICAgICB9KVxuICAgIH1cbiAgfVxuXG4gIG5hdmlnYXRlKClcbn1cblxudHlwZSBMaW5rUHJvcHNSZWFsID0gUmVhY3QuUHJvcHNXaXRoQ2hpbGRyZW48XG4gIE9taXQ8UmVhY3QuQW5jaG9ySFRNTEF0dHJpYnV0ZXM8SFRNTEFuY2hvckVsZW1lbnQ+LCBrZXlvZiBMaW5rUHJvcHM+ICZcbiAgICBMaW5rUHJvcHNcbj5cblxuZnVuY3Rpb24gZm9ybWF0U3RyaW5nT3JVcmwodXJsT2JqT3JTdHJpbmc6IFVybE9iamVjdCB8IHN0cmluZyk6IHN0cmluZyB7XG4gIGlmICh0eXBlb2YgdXJsT2JqT3JTdHJpbmcgPT09ICdzdHJpbmcnKSB7XG4gICAgcmV0dXJuIHVybE9iak9yU3RyaW5nXG4gIH1cblxuICByZXR1cm4gZm9ybWF0VXJsKHVybE9iak9yU3RyaW5nKVxufVxuXG4vKipcbiAqIEEgUmVhY3QgY29tcG9uZW50IHRoYXQgZXh0ZW5kcyB0aGUgSFRNTCBgPGE+YCBlbGVtZW50IHRvIHByb3ZpZGUgW3ByZWZldGNoaW5nXShodHRwczovL25leHRqcy5vcmcvZG9jcy9hcHAvYnVpbGRpbmcteW91ci1hcHBsaWNhdGlvbi9yb3V0aW5nL2xpbmtpbmctYW5kLW5hdmlnYXRpbmcjMi1wcmVmZXRjaGluZylcbiAqIGFuZCBjbGllbnQtc2lkZSBuYXZpZ2F0aW9uIGJldHdlZW4gcm91dGVzLlxuICpcbiAqIEl0IGlzIHRoZSBwcmltYXJ5IHdheSB0byBuYXZpZ2F0ZSBiZXR3ZWVuIHJvdXRlcyBpbiBOZXh0LmpzLlxuICpcbiAqIFJlYWQgbW9yZTogW05leHQuanMgZG9jczogYDxMaW5rPmBdKGh0dHBzOi8vbmV4dGpzLm9yZy9kb2NzL2FwcC9hcGktcmVmZXJlbmNlL2NvbXBvbmVudHMvbGluaylcbiAqL1xuY29uc3QgTGluayA9IFJlYWN0LmZvcndhcmRSZWY8SFRNTEFuY2hvckVsZW1lbnQsIExpbmtQcm9wc1JlYWw+KFxuICBmdW5jdGlvbiBMaW5rQ29tcG9uZW50KHByb3BzLCBmb3J3YXJkZWRSZWYpIHtcbiAgICBsZXQgY2hpbGRyZW46IFJlYWN0LlJlYWN0Tm9kZVxuXG4gICAgY29uc3Qge1xuICAgICAgaHJlZjogaHJlZlByb3AsXG4gICAgICBhczogYXNQcm9wLFxuICAgICAgY2hpbGRyZW46IGNoaWxkcmVuUHJvcCxcbiAgICAgIHByZWZldGNoOiBwcmVmZXRjaFByb3AgPSBudWxsLFxuICAgICAgcGFzc0hyZWYsXG4gICAgICByZXBsYWNlLFxuICAgICAgc2hhbGxvdyxcbiAgICAgIHNjcm9sbCxcbiAgICAgIGxvY2FsZSxcbiAgICAgIG9uQ2xpY2ssXG4gICAgICBvbk5hdmlnYXRlLFxuICAgICAgb25Nb3VzZUVudGVyOiBvbk1vdXNlRW50ZXJQcm9wLFxuICAgICAgb25Ub3VjaFN0YXJ0OiBvblRvdWNoU3RhcnRQcm9wLFxuICAgICAgbGVnYWN5QmVoYXZpb3IgPSBmYWxzZSxcbiAgICAgIC4uLnJlc3RQcm9wc1xuICAgIH0gPSBwcm9wc1xuXG4gICAgY2hpbGRyZW4gPSBjaGlsZHJlblByb3BcblxuICAgIGlmIChcbiAgICAgIGxlZ2FjeUJlaGF2aW9yICYmXG4gICAgICAodHlwZW9mIGNoaWxkcmVuID09PSAnc3RyaW5nJyB8fCB0eXBlb2YgY2hpbGRyZW4gPT09ICdudW1iZXInKVxuICAgICkge1xuICAgICAgY2hpbGRyZW4gPSA8YT57Y2hpbGRyZW59PC9hPlxuICAgIH1cblxuICAgIGNvbnN0IHJvdXRlciA9IFJlYWN0LnVzZUNvbnRleHQoUm91dGVyQ29udGV4dClcblxuICAgIGNvbnN0IHByZWZldGNoRW5hYmxlZCA9IHByZWZldGNoUHJvcCAhPT0gZmFsc2VcblxuICAgIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSB7XG4gICAgICBmdW5jdGlvbiBjcmVhdGVQcm9wRXJyb3IoYXJnczoge1xuICAgICAgICBrZXk6IHN0cmluZ1xuICAgICAgICBleHBlY3RlZDogc3RyaW5nXG4gICAgICAgIGFjdHVhbDogc3RyaW5nXG4gICAgICB9KSB7XG4gICAgICAgIHJldHVybiBuZXcgRXJyb3IoXG4gICAgICAgICAgYEZhaWxlZCBwcm9wIHR5cGU6IFRoZSBwcm9wIFxcYCR7YXJncy5rZXl9XFxgIGV4cGVjdHMgYSAke2FyZ3MuZXhwZWN0ZWR9IGluIFxcYDxMaW5rPlxcYCwgYnV0IGdvdCBcXGAke2FyZ3MuYWN0dWFsfVxcYCBpbnN0ZWFkLmAgK1xuICAgICAgICAgICAgKHR5cGVvZiB3aW5kb3cgIT09ICd1bmRlZmluZWQnXG4gICAgICAgICAgICAgID8gLy8gVE9ETzogUmVtb3ZlIHRoaXMgYWRkZW5kdW0gaWYgT3duZXIgU3RhY2tzIGFyZSBhdmFpbGFibGVcbiAgICAgICAgICAgICAgICBcIlxcbk9wZW4geW91ciBicm93c2VyJ3MgY29uc29sZSB0byB2aWV3IHRoZSBDb21wb25lbnQgc3RhY2sgdHJhY2UuXCJcbiAgICAgICAgICAgICAgOiAnJylcbiAgICAgICAgKVxuICAgICAgfVxuXG4gICAgICAvLyBUeXBlU2NyaXB0IHRyaWNrIGZvciB0eXBlLWd1YXJkaW5nOlxuICAgICAgY29uc3QgcmVxdWlyZWRQcm9wc0d1YXJkOiBSZWNvcmQ8TGlua1Byb3BzUmVxdWlyZWQsIHRydWU+ID0ge1xuICAgICAgICBocmVmOiB0cnVlLFxuICAgICAgfSBhcyBjb25zdFxuICAgICAgY29uc3QgcmVxdWlyZWRQcm9wczogTGlua1Byb3BzUmVxdWlyZWRbXSA9IE9iamVjdC5rZXlzKFxuICAgICAgICByZXF1aXJlZFByb3BzR3VhcmRcbiAgICAgICkgYXMgTGlua1Byb3BzUmVxdWlyZWRbXVxuICAgICAgcmVxdWlyZWRQcm9wcy5mb3JFYWNoKChrZXk6IExpbmtQcm9wc1JlcXVpcmVkKSA9PiB7XG4gICAgICAgIGlmIChrZXkgPT09ICdocmVmJykge1xuICAgICAgICAgIGlmIChcbiAgICAgICAgICAgIHByb3BzW2tleV0gPT0gbnVsbCB8fFxuICAgICAgICAgICAgKHR5cGVvZiBwcm9wc1trZXldICE9PSAnc3RyaW5nJyAmJiB0eXBlb2YgcHJvcHNba2V5XSAhPT0gJ29iamVjdCcpXG4gICAgICAgICAgKSB7XG4gICAgICAgICAgICB0aHJvdyBjcmVhdGVQcm9wRXJyb3Ioe1xuICAgICAgICAgICAgICBrZXksXG4gICAgICAgICAgICAgIGV4cGVjdGVkOiAnYHN0cmluZ2Agb3IgYG9iamVjdGAnLFxuICAgICAgICAgICAgICBhY3R1YWw6IHByb3BzW2tleV0gPT09IG51bGwgPyAnbnVsbCcgOiB0eXBlb2YgcHJvcHNba2V5XSxcbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIC8vIFR5cGVTY3JpcHQgdHJpY2sgZm9yIHR5cGUtZ3VhcmRpbmc6XG4gICAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby11bnVzZWQtdmFyc1xuICAgICAgICAgIGNvbnN0IF86IG5ldmVyID0ga2V5XG4gICAgICAgIH1cbiAgICAgIH0pXG5cbiAgICAgIC8vIFR5cGVTY3JpcHQgdHJpY2sgZm9yIHR5cGUtZ3VhcmRpbmc6XG4gICAgICBjb25zdCBvcHRpb25hbFByb3BzR3VhcmQ6IFJlY29yZDxMaW5rUHJvcHNPcHRpb25hbCwgdHJ1ZT4gPSB7XG4gICAgICAgIGFzOiB0cnVlLFxuICAgICAgICByZXBsYWNlOiB0cnVlLFxuICAgICAgICBzY3JvbGw6IHRydWUsXG4gICAgICAgIHNoYWxsb3c6IHRydWUsXG4gICAgICAgIHBhc3NIcmVmOiB0cnVlLFxuICAgICAgICBwcmVmZXRjaDogdHJ1ZSxcbiAgICAgICAgbG9jYWxlOiB0cnVlLFxuICAgICAgICBvbkNsaWNrOiB0cnVlLFxuICAgICAgICBvbk1vdXNlRW50ZXI6IHRydWUsXG4gICAgICAgIG9uVG91Y2hTdGFydDogdHJ1ZSxcbiAgICAgICAgbGVnYWN5QmVoYXZpb3I6IHRydWUsXG4gICAgICAgIG9uTmF2aWdhdGU6IHRydWUsXG4gICAgICB9IGFzIGNvbnN0XG4gICAgICBjb25zdCBvcHRpb25hbFByb3BzOiBMaW5rUHJvcHNPcHRpb25hbFtdID0gT2JqZWN0LmtleXMoXG4gICAgICAgIG9wdGlvbmFsUHJvcHNHdWFyZFxuICAgICAgKSBhcyBMaW5rUHJvcHNPcHRpb25hbFtdXG4gICAgICBvcHRpb25hbFByb3BzLmZvckVhY2goKGtleTogTGlua1Byb3BzT3B0aW9uYWwpID0+IHtcbiAgICAgICAgY29uc3QgdmFsVHlwZSA9IHR5cGVvZiBwcm9wc1trZXldXG5cbiAgICAgICAgaWYgKGtleSA9PT0gJ2FzJykge1xuICAgICAgICAgIGlmIChwcm9wc1trZXldICYmIHZhbFR5cGUgIT09ICdzdHJpbmcnICYmIHZhbFR5cGUgIT09ICdvYmplY3QnKSB7XG4gICAgICAgICAgICB0aHJvdyBjcmVhdGVQcm9wRXJyb3Ioe1xuICAgICAgICAgICAgICBrZXksXG4gICAgICAgICAgICAgIGV4cGVjdGVkOiAnYHN0cmluZ2Agb3IgYG9iamVjdGAnLFxuICAgICAgICAgICAgICBhY3R1YWw6IHZhbFR5cGUsXG4gICAgICAgICAgICB9KVxuICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIGlmIChrZXkgPT09ICdsb2NhbGUnKSB7XG4gICAgICAgICAgaWYgKHByb3BzW2tleV0gJiYgdmFsVHlwZSAhPT0gJ3N0cmluZycpIHtcbiAgICAgICAgICAgIHRocm93IGNyZWF0ZVByb3BFcnJvcih7XG4gICAgICAgICAgICAgIGtleSxcbiAgICAgICAgICAgICAgZXhwZWN0ZWQ6ICdgc3RyaW5nYCcsXG4gICAgICAgICAgICAgIGFjdHVhbDogdmFsVHlwZSxcbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgfVxuICAgICAgICB9IGVsc2UgaWYgKFxuICAgICAgICAgIGtleSA9PT0gJ29uQ2xpY2snIHx8XG4gICAgICAgICAga2V5ID09PSAnb25Nb3VzZUVudGVyJyB8fFxuICAgICAgICAgIGtleSA9PT0gJ29uVG91Y2hTdGFydCcgfHxcbiAgICAgICAgICBrZXkgPT09ICdvbk5hdmlnYXRlJ1xuICAgICAgICApIHtcbiAgICAgICAgICBpZiAocHJvcHNba2V5XSAmJiB2YWxUeXBlICE9PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgICAgICB0aHJvdyBjcmVhdGVQcm9wRXJyb3Ioe1xuICAgICAgICAgICAgICBrZXksXG4gICAgICAgICAgICAgIGV4cGVjdGVkOiAnYGZ1bmN0aW9uYCcsXG4gICAgICAgICAgICAgIGFjdHVhbDogdmFsVHlwZSxcbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgfVxuICAgICAgICB9IGVsc2UgaWYgKFxuICAgICAgICAgIGtleSA9PT0gJ3JlcGxhY2UnIHx8XG4gICAgICAgICAga2V5ID09PSAnc2Nyb2xsJyB8fFxuICAgICAgICAgIGtleSA9PT0gJ3NoYWxsb3cnIHx8XG4gICAgICAgICAga2V5ID09PSAncGFzc0hyZWYnIHx8XG4gICAgICAgICAga2V5ID09PSAnbGVnYWN5QmVoYXZpb3InXG4gICAgICAgICkge1xuICAgICAgICAgIGlmIChwcm9wc1trZXldICE9IG51bGwgJiYgdmFsVHlwZSAhPT0gJ2Jvb2xlYW4nKSB7XG4gICAgICAgICAgICB0aHJvdyBjcmVhdGVQcm9wRXJyb3Ioe1xuICAgICAgICAgICAgICBrZXksXG4gICAgICAgICAgICAgIGV4cGVjdGVkOiAnYGJvb2xlYW5gJyxcbiAgICAgICAgICAgICAgYWN0dWFsOiB2YWxUeXBlLFxuICAgICAgICAgICAgfSlcbiAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSBpZiAoa2V5ID09PSAncHJlZmV0Y2gnKSB7XG4gICAgICAgICAgaWYgKFxuICAgICAgICAgICAgcHJvcHNba2V5XSAhPSBudWxsICYmXG4gICAgICAgICAgICB2YWxUeXBlICE9PSAnYm9vbGVhbicgJiZcbiAgICAgICAgICAgIHByb3BzW2tleV0gIT09ICdhdXRvJ1xuICAgICAgICAgICkge1xuICAgICAgICAgICAgdGhyb3cgY3JlYXRlUHJvcEVycm9yKHtcbiAgICAgICAgICAgICAga2V5LFxuICAgICAgICAgICAgICBleHBlY3RlZDogJ2Bib29sZWFuIHwgXCJhdXRvXCJgJyxcbiAgICAgICAgICAgICAgYWN0dWFsOiB2YWxUeXBlLFxuICAgICAgICAgICAgfSlcbiAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgLy8gVHlwZVNjcmlwdCB0cmljayBmb3IgdHlwZS1ndWFyZGluZzpcbiAgICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXVudXNlZC12YXJzXG4gICAgICAgICAgY29uc3QgXzogbmV2ZXIgPSBrZXlcbiAgICAgICAgfVxuICAgICAgfSlcbiAgICB9XG5cbiAgICBjb25zdCB7IGhyZWYsIGFzIH0gPSBSZWFjdC51c2VNZW1vKCgpID0+IHtcbiAgICAgIGlmICghcm91dGVyKSB7XG4gICAgICAgIGNvbnN0IHJlc29sdmVkSHJlZiA9IGZvcm1hdFN0cmluZ09yVXJsKGhyZWZQcm9wKVxuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIGhyZWY6IHJlc29sdmVkSHJlZixcbiAgICAgICAgICBhczogYXNQcm9wID8gZm9ybWF0U3RyaW5nT3JVcmwoYXNQcm9wKSA6IHJlc29sdmVkSHJlZixcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBjb25zdCBbcmVzb2x2ZWRIcmVmLCByZXNvbHZlZEFzXSA9IHJlc29sdmVIcmVmKHJvdXRlciwgaHJlZlByb3AsIHRydWUpXG5cbiAgICAgIHJldHVybiB7XG4gICAgICAgIGhyZWY6IHJlc29sdmVkSHJlZixcbiAgICAgICAgYXM6IGFzUHJvcCA/IHJlc29sdmVIcmVmKHJvdXRlciwgYXNQcm9wKSA6IHJlc29sdmVkQXMgfHwgcmVzb2x2ZWRIcmVmLFxuICAgICAgfVxuICAgIH0sIFtyb3V0ZXIsIGhyZWZQcm9wLCBhc1Byb3BdKVxuXG4gICAgY29uc3QgcHJldmlvdXNIcmVmID0gUmVhY3QudXNlUmVmPHN0cmluZz4oaHJlZilcbiAgICBjb25zdCBwcmV2aW91c0FzID0gUmVhY3QudXNlUmVmPHN0cmluZz4oYXMpXG5cbiAgICAvLyBUaGlzIHdpbGwgcmV0dXJuIHRoZSBmaXJzdCBjaGlsZCwgaWYgbXVsdGlwbGUgYXJlIHByb3ZpZGVkIGl0IHdpbGwgdGhyb3cgYW4gZXJyb3JcbiAgICBsZXQgY2hpbGQ6IGFueVxuICAgIGlmIChsZWdhY3lCZWhhdmlvcikge1xuICAgICAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WID09PSAnZGV2ZWxvcG1lbnQnKSB7XG4gICAgICAgIGlmIChvbkNsaWNrKSB7XG4gICAgICAgICAgY29uc29sZS53YXJuKFxuICAgICAgICAgICAgYFwib25DbGlja1wiIHdhcyBwYXNzZWQgdG8gPExpbms+IHdpdGggXFxgaHJlZlxcYCBvZiBcXGAke2hyZWZQcm9wfVxcYCBidXQgXCJsZWdhY3lCZWhhdmlvclwiIHdhcyBzZXQuIFRoZSBsZWdhY3kgYmVoYXZpb3IgcmVxdWlyZXMgb25DbGljayBiZSBzZXQgb24gdGhlIGNoaWxkIG9mIG5leHQvbGlua2BcbiAgICAgICAgICApXG4gICAgICAgIH1cbiAgICAgICAgaWYgKG9uTW91c2VFbnRlclByb3ApIHtcbiAgICAgICAgICBjb25zb2xlLndhcm4oXG4gICAgICAgICAgICBgXCJvbk1vdXNlRW50ZXJcIiB3YXMgcGFzc2VkIHRvIDxMaW5rPiB3aXRoIFxcYGhyZWZcXGAgb2YgXFxgJHtocmVmUHJvcH1cXGAgYnV0IFwibGVnYWN5QmVoYXZpb3JcIiB3YXMgc2V0LiBUaGUgbGVnYWN5IGJlaGF2aW9yIHJlcXVpcmVzIG9uTW91c2VFbnRlciBiZSBzZXQgb24gdGhlIGNoaWxkIG9mIG5leHQvbGlua2BcbiAgICAgICAgICApXG4gICAgICAgIH1cbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICBjaGlsZCA9IFJlYWN0LkNoaWxkcmVuLm9ubHkoY2hpbGRyZW4pXG4gICAgICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgICAgIGlmICghY2hpbGRyZW4pIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgICAgICAgYE5vIGNoaWxkcmVuIHdlcmUgcGFzc2VkIHRvIDxMaW5rPiB3aXRoIFxcYGhyZWZcXGAgb2YgXFxgJHtocmVmUHJvcH1cXGAgYnV0IG9uZSBjaGlsZCBpcyByZXF1aXJlZCBodHRwczovL25leHRqcy5vcmcvZG9jcy9tZXNzYWdlcy9saW5rLW5vLWNoaWxkcmVuYFxuICAgICAgICAgICAgKVxuICAgICAgICAgIH1cbiAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgICAgICBgTXVsdGlwbGUgY2hpbGRyZW4gd2VyZSBwYXNzZWQgdG8gPExpbms+IHdpdGggXFxgaHJlZlxcYCBvZiBcXGAke2hyZWZQcm9wfVxcYCBidXQgb25seSBvbmUgY2hpbGQgaXMgc3VwcG9ydGVkIGh0dHBzOi8vbmV4dGpzLm9yZy9kb2NzL21lc3NhZ2VzL2xpbmstbXVsdGlwbGUtY2hpbGRyZW5gICtcbiAgICAgICAgICAgICAgKHR5cGVvZiB3aW5kb3cgIT09ICd1bmRlZmluZWQnXG4gICAgICAgICAgICAgICAgPyBcIiBcXG5PcGVuIHlvdXIgYnJvd3NlcidzIGNvbnNvbGUgdG8gdmlldyB0aGUgQ29tcG9uZW50IHN0YWNrIHRyYWNlLlwiXG4gICAgICAgICAgICAgICAgOiAnJylcbiAgICAgICAgICApXG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGNoaWxkID0gUmVhY3QuQ2hpbGRyZW4ub25seShjaGlsZHJlbilcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WID09PSAnZGV2ZWxvcG1lbnQnKSB7XG4gICAgICAgIGlmICgoY2hpbGRyZW4gYXMgYW55KT8udHlwZSA9PT0gJ2EnKSB7XG4gICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICAgICAgJ0ludmFsaWQgPExpbms+IHdpdGggPGE+IGNoaWxkLiBQbGVhc2UgcmVtb3ZlIDxhPiBvciB1c2UgPExpbmsgbGVnYWN5QmVoYXZpb3I+LlxcbkxlYXJuIG1vcmU6IGh0dHBzOi8vbmV4dGpzLm9yZy9kb2NzL21lc3NhZ2VzL2ludmFsaWQtbmV3LWxpbmstd2l0aC1leHRyYS1hbmNob3InXG4gICAgICAgICAgKVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgY29uc3QgY2hpbGRSZWY6IGFueSA9IGxlZ2FjeUJlaGF2aW9yXG4gICAgICA/IGNoaWxkICYmIHR5cGVvZiBjaGlsZCA9PT0gJ29iamVjdCcgJiYgY2hpbGQucmVmXG4gICAgICA6IGZvcndhcmRlZFJlZlxuXG4gICAgY29uc3QgW3NldEludGVyc2VjdGlvblJlZiwgaXNWaXNpYmxlLCByZXNldFZpc2libGVdID0gdXNlSW50ZXJzZWN0aW9uKHtcbiAgICAgIHJvb3RNYXJnaW46ICcyMDBweCcsXG4gICAgfSlcblxuICAgIGNvbnN0IHNldEludGVyc2VjdGlvbldpdGhSZXNldFJlZiA9IFJlYWN0LnVzZUNhbGxiYWNrKFxuICAgICAgKGVsOiBFbGVtZW50IHwgbnVsbCkgPT4ge1xuICAgICAgICAvLyBCZWZvcmUgdGhlIGxpbmsgZ2V0dGluZyBvYnNlcnZlZCwgY2hlY2sgaWYgdmlzaWJsZSBzdGF0ZSBuZWVkIHRvIGJlIHJlc2V0XG4gICAgICAgIGlmIChwcmV2aW91c0FzLmN1cnJlbnQgIT09IGFzIHx8IHByZXZpb3VzSHJlZi5jdXJyZW50ICE9PSBocmVmKSB7XG4gICAgICAgICAgcmVzZXRWaXNpYmxlKClcbiAgICAgICAgICBwcmV2aW91c0FzLmN1cnJlbnQgPSBhc1xuICAgICAgICAgIHByZXZpb3VzSHJlZi5jdXJyZW50ID0gaHJlZlxuICAgICAgICB9XG5cbiAgICAgICAgc2V0SW50ZXJzZWN0aW9uUmVmKGVsKVxuICAgICAgfSxcbiAgICAgIFthcywgaHJlZiwgcmVzZXRWaXNpYmxlLCBzZXRJbnRlcnNlY3Rpb25SZWZdXG4gICAgKVxuXG4gICAgY29uc3Qgc2V0UmVmID0gdXNlTWVyZ2VkUmVmKHNldEludGVyc2VjdGlvbldpdGhSZXNldFJlZiwgY2hpbGRSZWYpXG5cbiAgICAvLyBQcmVmZXRjaCB0aGUgVVJMIGlmIHdlIGhhdmVuJ3QgYWxyZWFkeSBhbmQgaXQncyB2aXNpYmxlLlxuICAgIFJlYWN0LnVzZUVmZmVjdCgoKSA9PiB7XG4gICAgICAvLyBpbiBkZXYsIHdlIG9ubHkgcHJlZmV0Y2ggb24gaG92ZXIgdG8gYXZvaWQgd2FzdGluZyByZXNvdXJjZXMgYXMgdGhlIHByZWZldGNoIHdpbGwgdHJpZ2dlciBjb21waWxpbmcgdGhlIHBhZ2UuXG4gICAgICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJykge1xuICAgICAgICByZXR1cm5cbiAgICAgIH1cblxuICAgICAgaWYgKCFyb3V0ZXIpIHtcbiAgICAgICAgcmV0dXJuXG4gICAgICB9XG5cbiAgICAgIC8vIElmIHdlIGRvbid0IG5lZWQgdG8gcHJlZmV0Y2ggdGhlIFVSTCwgZG9uJ3QgZG8gcHJlZmV0Y2guXG4gICAgICBpZiAoIWlzVmlzaWJsZSB8fCAhcHJlZmV0Y2hFbmFibGVkKSB7XG4gICAgICAgIHJldHVyblxuICAgICAgfVxuXG4gICAgICAvLyBQcmVmZXRjaCB0aGUgVVJMLlxuICAgICAgcHJlZmV0Y2gocm91dGVyLCBocmVmLCBhcywgeyBsb2NhbGUgfSlcbiAgICB9LCBbYXMsIGhyZWYsIGlzVmlzaWJsZSwgbG9jYWxlLCBwcmVmZXRjaEVuYWJsZWQsIHJvdXRlcj8ubG9jYWxlLCByb3V0ZXJdKVxuXG4gICAgY29uc3QgY2hpbGRQcm9wczoge1xuICAgICAgb25Ub3VjaFN0YXJ0PzogUmVhY3QuVG91Y2hFdmVudEhhbmRsZXI8SFRNTEFuY2hvckVsZW1lbnQ+XG4gICAgICBvbk1vdXNlRW50ZXI6IFJlYWN0Lk1vdXNlRXZlbnRIYW5kbGVyPEhUTUxBbmNob3JFbGVtZW50PlxuICAgICAgb25DbGljazogUmVhY3QuTW91c2VFdmVudEhhbmRsZXI8SFRNTEFuY2hvckVsZW1lbnQ+XG4gICAgICBocmVmPzogc3RyaW5nXG4gICAgICByZWY/OiBhbnlcbiAgICB9ID0ge1xuICAgICAgcmVmOiBzZXRSZWYsXG4gICAgICBvbkNsaWNrKGUpIHtcbiAgICAgICAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpIHtcbiAgICAgICAgICBpZiAoIWUpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgICAgICAgYENvbXBvbmVudCByZW5kZXJlZCBpbnNpZGUgbmV4dC9saW5rIGhhcyB0byBwYXNzIGNsaWNrIGV2ZW50IHRvIFwib25DbGlja1wiIHByb3AuYFxuICAgICAgICAgICAgKVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIGlmICghbGVnYWN5QmVoYXZpb3IgJiYgdHlwZW9mIG9uQ2xpY2sgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgICBvbkNsaWNrKGUpXG4gICAgICAgIH1cblxuICAgICAgICBpZiAoXG4gICAgICAgICAgbGVnYWN5QmVoYXZpb3IgJiZcbiAgICAgICAgICBjaGlsZC5wcm9wcyAmJlxuICAgICAgICAgIHR5cGVvZiBjaGlsZC5wcm9wcy5vbkNsaWNrID09PSAnZnVuY3Rpb24nXG4gICAgICAgICkge1xuICAgICAgICAgIGNoaWxkLnByb3BzLm9uQ2xpY2soZSlcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICghcm91dGVyKSB7XG4gICAgICAgICAgcmV0dXJuXG4gICAgICAgIH1cblxuICAgICAgICBpZiAoZS5kZWZhdWx0UHJldmVudGVkKSB7XG4gICAgICAgICAgcmV0dXJuXG4gICAgICAgIH1cblxuICAgICAgICBsaW5rQ2xpY2tlZChcbiAgICAgICAgICBlLFxuICAgICAgICAgIHJvdXRlcixcbiAgICAgICAgICBocmVmLFxuICAgICAgICAgIGFzLFxuICAgICAgICAgIHJlcGxhY2UsXG4gICAgICAgICAgc2hhbGxvdyxcbiAgICAgICAgICBzY3JvbGwsXG4gICAgICAgICAgbG9jYWxlLFxuICAgICAgICAgIG9uTmF2aWdhdGVcbiAgICAgICAgKVxuICAgICAgfSxcbiAgICAgIG9uTW91c2VFbnRlcihlKSB7XG4gICAgICAgIGlmICghbGVnYWN5QmVoYXZpb3IgJiYgdHlwZW9mIG9uTW91c2VFbnRlclByb3AgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgICBvbk1vdXNlRW50ZXJQcm9wKGUpXG4gICAgICAgIH1cblxuICAgICAgICBpZiAoXG4gICAgICAgICAgbGVnYWN5QmVoYXZpb3IgJiZcbiAgICAgICAgICBjaGlsZC5wcm9wcyAmJlxuICAgICAgICAgIHR5cGVvZiBjaGlsZC5wcm9wcy5vbk1vdXNlRW50ZXIgPT09ICdmdW5jdGlvbidcbiAgICAgICAgKSB7XG4gICAgICAgICAgY2hpbGQucHJvcHMub25Nb3VzZUVudGVyKGUpXG4gICAgICAgIH1cblxuICAgICAgICBpZiAoIXJvdXRlcikge1xuICAgICAgICAgIHJldHVyblxuICAgICAgICB9XG5cbiAgICAgICAgcHJlZmV0Y2gocm91dGVyLCBocmVmLCBhcywge1xuICAgICAgICAgIGxvY2FsZSxcbiAgICAgICAgICBwcmlvcml0eTogdHJ1ZSxcbiAgICAgICAgICAvLyBAc2VlIHtodHRwczovL2dpdGh1Yi5jb20vdmVyY2VsL25leHQuanMvZGlzY3Vzc2lvbnMvNDAyNjg/c29ydD10b3AjZGlzY3Vzc2lvbmNvbW1lbnQtMzU3MjY0Mn1cbiAgICAgICAgICBieXBhc3NQcmVmZXRjaGVkQ2hlY2s6IHRydWUsXG4gICAgICAgIH0pXG4gICAgICB9LFxuICAgICAgb25Ub3VjaFN0YXJ0OiBwcm9jZXNzLmVudi5fX05FWFRfTElOS19OT19UT1VDSF9TVEFSVFxuICAgICAgICA/IHVuZGVmaW5lZFxuICAgICAgICA6IGZ1bmN0aW9uIG9uVG91Y2hTdGFydChlKSB7XG4gICAgICAgICAgICBpZiAoIWxlZ2FjeUJlaGF2aW9yICYmIHR5cGVvZiBvblRvdWNoU3RhcnRQcm9wID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgICAgICAgIG9uVG91Y2hTdGFydFByb3AoZSlcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKFxuICAgICAgICAgICAgICBsZWdhY3lCZWhhdmlvciAmJlxuICAgICAgICAgICAgICBjaGlsZC5wcm9wcyAmJlxuICAgICAgICAgICAgICB0eXBlb2YgY2hpbGQucHJvcHMub25Ub3VjaFN0YXJ0ID09PSAnZnVuY3Rpb24nXG4gICAgICAgICAgICApIHtcbiAgICAgICAgICAgICAgY2hpbGQucHJvcHMub25Ub3VjaFN0YXJ0KGUpXG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlmICghcm91dGVyKSB7XG4gICAgICAgICAgICAgIHJldHVyblxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBwcmVmZXRjaChyb3V0ZXIsIGhyZWYsIGFzLCB7XG4gICAgICAgICAgICAgIGxvY2FsZSxcbiAgICAgICAgICAgICAgcHJpb3JpdHk6IHRydWUsXG4gICAgICAgICAgICAgIC8vIEBzZWUge2h0dHBzOi8vZ2l0aHViLmNvbS92ZXJjZWwvbmV4dC5qcy9kaXNjdXNzaW9ucy80MDI2OD9zb3J0PXRvcCNkaXNjdXNzaW9uY29tbWVudC0zNTcyNjQyfVxuICAgICAgICAgICAgICBieXBhc3NQcmVmZXRjaGVkQ2hlY2s6IHRydWUsXG4gICAgICAgICAgICB9KVxuICAgICAgICAgIH0sXG4gICAgfVxuXG4gICAgLy8gSWYgY2hpbGQgaXMgYW4gPGE+IHRhZyBhbmQgZG9lc24ndCBoYXZlIGEgaHJlZiBhdHRyaWJ1dGUsIG9yIGlmIHRoZSAncGFzc0hyZWYnIHByb3BlcnR5IGlzXG4gICAgLy8gZGVmaW5lZCwgd2Ugc3BlY2lmeSB0aGUgY3VycmVudCAnaHJlZicsIHNvIHRoYXQgcmVwZXRpdGlvbiBpcyBub3QgbmVlZGVkIGJ5IHRoZSB1c2VyLlxuICAgIC8vIElmIHRoZSB1cmwgaXMgYWJzb2x1dGUsIHdlIGNhbiBieXBhc3MgdGhlIGxvZ2ljIHRvIHByZXBlbmQgdGhlIGRvbWFpbiBhbmQgbG9jYWxlLlxuICAgIGlmIChpc0Fic29sdXRlVXJsKGFzKSkge1xuICAgICAgY2hpbGRQcm9wcy5ocmVmID0gYXNcbiAgICB9IGVsc2UgaWYgKFxuICAgICAgIWxlZ2FjeUJlaGF2aW9yIHx8XG4gICAgICBwYXNzSHJlZiB8fFxuICAgICAgKGNoaWxkLnR5cGUgPT09ICdhJyAmJiAhKCdocmVmJyBpbiBjaGlsZC5wcm9wcykpXG4gICAgKSB7XG4gICAgICBjb25zdCBjdXJMb2NhbGUgPSB0eXBlb2YgbG9jYWxlICE9PSAndW5kZWZpbmVkJyA/IGxvY2FsZSA6IHJvdXRlcj8ubG9jYWxlXG5cbiAgICAgIC8vIHdlIG9ubHkgcmVuZGVyIGRvbWFpbiBsb2NhbGVzIGlmIHdlIGFyZSBjdXJyZW50bHkgb24gYSBkb21haW4gbG9jYWxlXG4gICAgICAvLyBzbyB0aGF0IGxvY2FsZSBsaW5rcyBhcmUgc3RpbGwgdmlzaXRhYmxlIGluIGRldmVsb3BtZW50L3ByZXZpZXcgZW52c1xuICAgICAgY29uc3QgbG9jYWxlRG9tYWluID1cbiAgICAgICAgcm91dGVyPy5pc0xvY2FsZURvbWFpbiAmJlxuICAgICAgICBnZXREb21haW5Mb2NhbGUoYXMsIGN1ckxvY2FsZSwgcm91dGVyPy5sb2NhbGVzLCByb3V0ZXI/LmRvbWFpbkxvY2FsZXMpXG5cbiAgICAgIGNoaWxkUHJvcHMuaHJlZiA9XG4gICAgICAgIGxvY2FsZURvbWFpbiB8fFxuICAgICAgICBhZGRCYXNlUGF0aChhZGRMb2NhbGUoYXMsIGN1ckxvY2FsZSwgcm91dGVyPy5kZWZhdWx0TG9jYWxlKSlcbiAgICB9XG5cbiAgICBpZiAobGVnYWN5QmVoYXZpb3IpIHtcbiAgICAgIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViA9PT0gJ2RldmVsb3BtZW50Jykge1xuICAgICAgICBlcnJvck9uY2UoXG4gICAgICAgICAgJ2BsZWdhY3lCZWhhdmlvcmAgaXMgZGVwcmVjYXRlZCBhbmQgd2lsbCBiZSByZW1vdmVkIGluIGEgZnV0dXJlICcgK1xuICAgICAgICAgICAgJ3JlbGVhc2UuIEEgY29kZW1vZCBpcyBhdmFpbGFibGUgdG8gdXBncmFkZSB5b3VyIGNvbXBvbmVudHM6XFxuXFxuJyArXG4gICAgICAgICAgICAnbnB4IEBuZXh0L2NvZGVtb2RAbGF0ZXN0IG5ldy1saW5rIC5cXG5cXG4nICtcbiAgICAgICAgICAgICdMZWFybiBtb3JlOiBodHRwczovL25leHRqcy5vcmcvZG9jcy9hcHAvYnVpbGRpbmcteW91ci1hcHBsaWNhdGlvbi91cGdyYWRpbmcvY29kZW1vZHMjcmVtb3ZlLWEtdGFncy1mcm9tLWxpbmstY29tcG9uZW50cydcbiAgICAgICAgKVxuICAgICAgfVxuICAgICAgcmV0dXJuIFJlYWN0LmNsb25lRWxlbWVudChjaGlsZCwgY2hpbGRQcm9wcylcbiAgICB9XG5cbiAgICByZXR1cm4gKFxuICAgICAgPGEgey4uLnJlc3RQcm9wc30gey4uLmNoaWxkUHJvcHN9PlxuICAgICAgICB7Y2hpbGRyZW59XG4gICAgICA8L2E+XG4gICAgKVxuICB9XG4pXG5cbmNvbnN0IExpbmtTdGF0dXNDb250ZXh0ID0gY3JlYXRlQ29udGV4dDx7XG4gIHBlbmRpbmc6IGJvb2xlYW5cbn0+KHtcbiAgLy8gV2UgZG8gbm90IHN1cHBvcnQgbGluayBzdGF0dXMgaW4gdGhlIFBhZ2VzIFJvdXRlciwgc28gd2UgYWx3YXlzIHJldHVybiBmYWxzZVxuICBwZW5kaW5nOiBmYWxzZSxcbn0pXG5cbmV4cG9ydCBjb25zdCB1c2VMaW5rU3RhdHVzID0gKCkgPT4ge1xuICAvLyBUaGlzIGJlaGF2aW91ciBpcyBsaWtlIFJlYWN0J3MgdXNlRm9ybVN0YXR1cy4gV2hlbiB0aGUgY29tcG9uZW50IGlzIG5vdCB1bmRlclxuICAvLyBhIDxmb3JtPiB0YWcsIGl0IHdpbGwgZ2V0IHRoZSBkZWZhdWx0IHZhbHVlLCBpbnN0ZWFkIG9mIHRocm93aW5nIGFuIGVycm9yLlxuICByZXR1cm4gdXNlQ29udGV4dChMaW5rU3RhdHVzQ29udGV4dClcbn1cblxuZXhwb3J0IGRlZmF1bHQgTGlua1xuIl0sIm5hbWVzIjpbInVzZUxpbmtTdGF0dXMiLCJwcmVmZXRjaGVkIiwiU2V0IiwicHJlZmV0Y2giLCJyb3V0ZXIiLCJocmVmIiwiYXMiLCJvcHRpb25zIiwid2luZG93IiwiaXNMb2NhbFVSTCIsImJ5cGFzc1ByZWZldGNoZWRDaGVjayIsImxvY2FsZSIsInVuZGVmaW5lZCIsInByZWZldGNoZWRLZXkiLCJoYXMiLCJhZGQiLCJjYXRjaCIsImVyciIsInByb2Nlc3MiLCJlbnYiLCJOT0RFX0VOViIsImlzTW9kaWZpZWRFdmVudCIsImV2ZW50IiwiZXZlbnRUYXJnZXQiLCJjdXJyZW50VGFyZ2V0IiwidGFyZ2V0IiwiZ2V0QXR0cmlidXRlIiwibWV0YUtleSIsImN0cmxLZXkiLCJzaGlmdEtleSIsImFsdEtleSIsIm5hdGl2ZUV2ZW50Iiwid2hpY2giLCJsaW5rQ2xpY2tlZCIsImUiLCJyZXBsYWNlIiwic2hhbGxvdyIsInNjcm9sbCIsIm9uTmF2aWdhdGUiLCJub2RlTmFtZSIsImlzQW5jaG9yTm9kZU5hbWUiLCJ0b1VwcGVyQ2FzZSIsImhhc0F0dHJpYnV0ZSIsInByZXZlbnREZWZhdWx0IiwibG9jYXRpb24iLCJuYXZpZ2F0ZSIsImlzRGVmYXVsdFByZXZlbnRlZCIsInJvdXRlclNjcm9sbCIsImZvcm1hdFN0cmluZ09yVXJsIiwidXJsT2JqT3JTdHJpbmciLCJmb3JtYXRVcmwiLCJMaW5rIiwiUmVhY3QiLCJmb3J3YXJkUmVmIiwiTGlua0NvbXBvbmVudCIsInByb3BzIiwiZm9yd2FyZGVkUmVmIiwiY2hpbGRyZW4iLCJocmVmUHJvcCIsImFzUHJvcCIsImNoaWxkcmVuUHJvcCIsInByZWZldGNoUHJvcCIsInBhc3NIcmVmIiwib25DbGljayIsIm9uTW91c2VFbnRlciIsIm9uTW91c2VFbnRlclByb3AiLCJvblRvdWNoU3RhcnQiLCJvblRvdWNoU3RhcnRQcm9wIiwibGVnYWN5QmVoYXZpb3IiLCJyZXN0UHJvcHMiLCJhIiwidXNlQ29udGV4dCIsIlJvdXRlckNvbnRleHQiLCJwcmVmZXRjaEVuYWJsZWQiLCJjcmVhdGVQcm9wRXJyb3IiLCJhcmdzIiwiRXJyb3IiLCJrZXkiLCJleHBlY3RlZCIsImFjdHVhbCIsInJlcXVpcmVkUHJvcHNHdWFyZCIsInJlcXVpcmVkUHJvcHMiLCJPYmplY3QiLCJrZXlzIiwiZm9yRWFjaCIsIl8iLCJvcHRpb25hbFByb3BzR3VhcmQiLCJvcHRpb25hbFByb3BzIiwidmFsVHlwZSIsInVzZU1lbW8iLCJyZXNvbHZlZEhyZWYiLCJyZXNvbHZlZEFzIiwicmVzb2x2ZUhyZWYiLCJwcmV2aW91c0hyZWYiLCJ1c2VSZWYiLCJwcmV2aW91c0FzIiwiY2hpbGQiLCJjb25zb2xlIiwid2FybiIsIkNoaWxkcmVuIiwib25seSIsInR5cGUiLCJjaGlsZFJlZiIsInJlZiIsInNldEludGVyc2VjdGlvblJlZiIsImlzVmlzaWJsZSIsInJlc2V0VmlzaWJsZSIsInVzZUludGVyc2VjdGlvbiIsInJvb3RNYXJnaW4iLCJzZXRJbnRlcnNlY3Rpb25XaXRoUmVzZXRSZWYiLCJ1c2VDYWxsYmFjayIsImVsIiwiY3VycmVudCIsInNldFJlZiIsInVzZU1lcmdlZFJlZiIsInVzZUVmZmVjdCIsImNoaWxkUHJvcHMiLCJkZWZhdWx0UHJldmVudGVkIiwicHJpb3JpdHkiLCJfX05FWFRfTElOS19OT19UT1VDSF9TVEFSVCIsImlzQWJzb2x1dGVVcmwiLCJjdXJMb2NhbGUiLCJsb2NhbGVEb21haW4iLCJpc0xvY2FsZURvbWFpbiIsImdldERvbWFpbkxvY2FsZSIsImxvY2FsZXMiLCJkb21haW5Mb2NhbGVzIiwiYWRkQmFzZVBhdGgiLCJhZGRMb2NhbGUiLCJkZWZhdWx0TG9jYWxlIiwiZXJyb3JPbmNlIiwiY2xvbmVFbGVtZW50IiwiTGlua1N0YXR1c0NvbnRleHQiLCJjcmVhdGVDb250ZXh0IiwicGVuZGluZyJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(pages-dir-browser)/./node_modules/next/dist/client/link.js\n")); - -/***/ }), - -/***/ "(pages-dir-browser)/./node_modules/next/dist/client/use-intersection.js": -/*!***********************************************************!*\ - !*** ./node_modules/next/dist/client/use-intersection.js ***! - \***********************************************************/ -/***/ ((module, exports, __webpack_require__) => { - -"use strict"; -eval(__webpack_require__.ts("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"useIntersection\", ({\n enumerable: true,\n get: function() {\n return useIntersection;\n }\n}));\nconst _react = __webpack_require__(/*! react */ \"(pages-dir-browser)/./node_modules/react/index.js\");\nconst _requestidlecallback = __webpack_require__(/*! ./request-idle-callback */ \"(pages-dir-browser)/./node_modules/next/dist/client/request-idle-callback.js\");\nconst hasIntersectionObserver = typeof IntersectionObserver === 'function';\nconst observers = new Map();\nconst idList = [];\nfunction createObserver(options) {\n const id = {\n root: options.root || null,\n margin: options.rootMargin || ''\n };\n const existing = idList.find((obj)=>obj.root === id.root && obj.margin === id.margin);\n let instance;\n if (existing) {\n instance = observers.get(existing);\n if (instance) {\n return instance;\n }\n }\n const elements = new Map();\n const observer = new IntersectionObserver((entries)=>{\n entries.forEach((entry)=>{\n const callback = elements.get(entry.target);\n const isVisible = entry.isIntersecting || entry.intersectionRatio > 0;\n if (callback && isVisible) {\n callback(isVisible);\n }\n });\n }, options);\n instance = {\n id,\n observer,\n elements\n };\n idList.push(id);\n observers.set(id, instance);\n return instance;\n}\nfunction observe(element, callback, options) {\n const { id, observer, elements } = createObserver(options);\n elements.set(element, callback);\n observer.observe(element);\n return function unobserve() {\n elements.delete(element);\n observer.unobserve(element);\n // Destroy observer when there's nothing left to watch:\n if (elements.size === 0) {\n observer.disconnect();\n observers.delete(id);\n const index = idList.findIndex((obj)=>obj.root === id.root && obj.margin === id.margin);\n if (index > -1) {\n idList.splice(index, 1);\n }\n }\n };\n}\nfunction useIntersection(param) {\n let { rootRef, rootMargin, disabled } = param;\n const isDisabled = disabled || !hasIntersectionObserver;\n const [visible, setVisible] = (0, _react.useState)(false);\n const elementRef = (0, _react.useRef)(null);\n const setElement = (0, _react.useCallback)((element)=>{\n elementRef.current = element;\n }, []);\n (0, _react.useEffect)(()=>{\n if (hasIntersectionObserver) {\n if (isDisabled || visible) return;\n const element = elementRef.current;\n if (element && element.tagName) {\n const unobserve = observe(element, (isVisible)=>isVisible && setVisible(isVisible), {\n root: rootRef == null ? void 0 : rootRef.current,\n rootMargin\n });\n return unobserve;\n }\n } else {\n if (!visible) {\n const idleCallback = (0, _requestidlecallback.requestIdleCallback)(()=>setVisible(true));\n return ()=>(0, _requestidlecallback.cancelIdleCallback)(idleCallback);\n }\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [\n isDisabled,\n rootMargin,\n rootRef,\n visible,\n elementRef.current\n ]);\n const resetVisible = (0, _react.useCallback)(()=>{\n setVisible(false);\n }, []);\n return [\n setElement,\n visible,\n resetVisible\n ];\n}\nif ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=use-intersection.js.map\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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvY2xpZW50L3VzZS1pbnRlcnNlY3Rpb24uanMiLCJtYXBwaW5ncyI6Ijs7OzttREErRmdCQTs7O2VBQUFBOzs7bUNBL0Z5QztpREFJbEQ7QUFxQlAsTUFBTUMsMEJBQTBCLE9BQU9DLHlCQUF5QjtBQUVoRSxNQUFNQyxZQUFZLElBQUlDO0FBQ3RCLE1BQU1DLFNBQXVCLEVBQUU7QUFFL0IsU0FBU0MsZUFBZUMsT0FBb0M7SUFDMUQsTUFBTUMsS0FBSztRQUNUQyxNQUFNRixRQUFRRSxJQUFJLElBQUk7UUFDdEJDLFFBQVFILFFBQVFJLFVBQVUsSUFBSTtJQUNoQztJQUNBLE1BQU1DLFdBQVdQLE9BQU9RLElBQUksQ0FDMUIsQ0FBQ0MsTUFBUUEsSUFBSUwsSUFBSSxLQUFLRCxHQUFHQyxJQUFJLElBQUlLLElBQUlKLE1BQU0sS0FBS0YsR0FBR0UsTUFBTTtJQUUzRCxJQUFJSztJQUVKLElBQUlILFVBQVU7UUFDWkcsV0FBV1osVUFBVWEsR0FBRyxDQUFDSjtRQUN6QixJQUFJRyxVQUFVO1lBQ1osT0FBT0E7UUFDVDtJQUNGO0lBRUEsTUFBTUUsV0FBVyxJQUFJYjtJQUNyQixNQUFNYyxXQUFXLElBQUloQixxQkFBcUIsQ0FBQ2lCO1FBQ3pDQSxRQUFRQyxPQUFPLENBQUMsQ0FBQ0M7WUFDZixNQUFNQyxXQUFXTCxTQUFTRCxHQUFHLENBQUNLLE1BQU1FLE1BQU07WUFDMUMsTUFBTUMsWUFBWUgsTUFBTUksY0FBYyxJQUFJSixNQUFNSyxpQkFBaUIsR0FBRztZQUNwRSxJQUFJSixZQUFZRSxXQUFXO2dCQUN6QkYsU0FBU0U7WUFDWDtRQUNGO0lBQ0YsR0FBR2pCO0lBQ0hRLFdBQVc7UUFDVFA7UUFDQVU7UUFDQUQ7SUFDRjtJQUVBWixPQUFPc0IsSUFBSSxDQUFDbkI7SUFDWkwsVUFBVXlCLEdBQUcsQ0FBQ3BCLElBQUlPO0lBQ2xCLE9BQU9BO0FBQ1Q7QUFFQSxTQUFTYyxRQUNQQyxPQUFnQixFQUNoQlIsUUFBeUIsRUFDekJmLE9BQW9DO0lBRXBDLE1BQU0sRUFBRUMsRUFBRSxFQUFFVSxRQUFRLEVBQUVELFFBQVEsRUFBRSxHQUFHWCxlQUFlQztJQUNsRFUsU0FBU1csR0FBRyxDQUFDRSxTQUFTUjtJQUV0QkosU0FBU1csT0FBTyxDQUFDQztJQUNqQixPQUFPLFNBQVNDO1FBQ2RkLFNBQVNlLE1BQU0sQ0FBQ0Y7UUFDaEJaLFNBQVNhLFNBQVMsQ0FBQ0Q7UUFFbkIsdURBQXVEO1FBQ3ZELElBQUliLFNBQVNnQixJQUFJLEtBQUssR0FBRztZQUN2QmYsU0FBU2dCLFVBQVU7WUFDbkIvQixVQUFVNkIsTUFBTSxDQUFDeEI7WUFDakIsTUFBTTJCLFFBQVE5QixPQUFPK0IsU0FBUyxDQUM1QixDQUFDdEIsTUFBUUEsSUFBSUwsSUFBSSxLQUFLRCxHQUFHQyxJQUFJLElBQUlLLElBQUlKLE1BQU0sS0FBS0YsR0FBR0UsTUFBTTtZQUUzRCxJQUFJeUIsUUFBUSxDQUFDLEdBQUc7Z0JBQ2Q5QixPQUFPZ0MsTUFBTSxDQUFDRixPQUFPO1lBQ3ZCO1FBQ0Y7SUFDRjtBQUNGO0FBRU8sU0FBU25DLGdCQUFtQyxLQUlqQztJQUppQyxNQUNqRHNDLE9BQU8sRUFDUDNCLFVBQVUsRUFDVjRCLFFBQVEsRUFDUSxHQUppQztJQUtqRCxNQUFNQyxhQUFzQkQsWUFBWSxDQUFDdEM7SUFFekMsTUFBTSxDQUFDd0MsU0FBU0MsV0FBVyxHQUFHQyxDQUFBQSxHQUFBQSxPQUFBQSxRQUFBQSxFQUFTO0lBQ3ZDLE1BQU1DLGFBQWFDLENBQUFBLEdBQUFBLE9BQUFBLE1BQUFBLEVBQWlCO0lBQ3BDLE1BQU1DLGFBQWFDLENBQUFBLEdBQUFBLE9BQUFBLFdBQUFBLEVBQVksQ0FBQ2pCO1FBQzlCYyxXQUFXSSxPQUFPLEdBQUdsQjtJQUN2QixHQUFHLEVBQUU7SUFFTG1CLENBQUFBLEdBQUFBLE9BQUFBLFNBQUFBLEVBQVU7UUFDUixJQUFJaEQseUJBQXlCO1lBQzNCLElBQUl1QyxjQUFjQyxTQUFTO1lBRTNCLE1BQU1YLFVBQVVjLFdBQVdJLE9BQU87WUFDbEMsSUFBSWxCLFdBQVdBLFFBQVFvQixPQUFPLEVBQUU7Z0JBQzlCLE1BQU1uQixZQUFZRixRQUNoQkMsU0FDQSxDQUFDTixZQUFjQSxhQUFha0IsV0FBV2xCLFlBQ3ZDO29CQUFFZixJQUFJLEVBQUU2QixXQUFBQSxPQUFBQSxLQUFBQSxJQUFBQSxRQUFTVSxPQUFPO29CQUFFckM7Z0JBQVc7Z0JBR3ZDLE9BQU9vQjtZQUNUO1FBQ0YsT0FBTztZQUNMLElBQUksQ0FBQ1UsU0FBUztnQkFDWixNQUFNVSxlQUFlQyxDQUFBQSxHQUFBQSxxQkFBQUEsbUJBQUFBLEVBQW9CLElBQU1WLFdBQVc7Z0JBQzFELE9BQU8sSUFBTVcsQ0FBQUEsR0FBQUEscUJBQUFBLGtCQUFBQSxFQUFtQkY7WUFDbEM7UUFDRjtJQUNBLHVEQUF1RDtJQUN6RCxHQUFHO1FBQUNYO1FBQVk3QjtRQUFZMkI7UUFBU0c7UUFBU0csV0FBV0ksT0FBTztLQUFDO0lBRWpFLE1BQU1NLGVBQWVQLENBQUFBLEdBQUFBLE9BQUFBLFdBQUFBLEVBQVk7UUFDL0JMLFdBQVc7SUFDYixHQUFHLEVBQUU7SUFFTCxPQUFPO1FBQUNJO1FBQVlMO1FBQVNhO0tBQWE7QUFDNUMiLCJzb3VyY2VzIjpbIkQ6XFxzcmNcXGNsaWVudFxcdXNlLWludGVyc2VjdGlvbi50c3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgdXNlQ2FsbGJhY2ssIHVzZUVmZmVjdCwgdXNlUmVmLCB1c2VTdGF0ZSB9IGZyb20gJ3JlYWN0J1xuaW1wb3J0IHtcbiAgcmVxdWVzdElkbGVDYWxsYmFjayxcbiAgY2FuY2VsSWRsZUNhbGxiYWNrLFxufSBmcm9tICcuL3JlcXVlc3QtaWRsZS1jYWxsYmFjaydcblxudHlwZSBVc2VJbnRlcnNlY3Rpb25PYnNlcnZlckluaXQgPSBQaWNrPFxuICBJbnRlcnNlY3Rpb25PYnNlcnZlckluaXQsXG4gICdyb290TWFyZ2luJyB8ICdyb290J1xuPlxuXG50eXBlIFVzZUludGVyc2VjdGlvbiA9IHsgZGlzYWJsZWQ/OiBib29sZWFuIH0gJiBVc2VJbnRlcnNlY3Rpb25PYnNlcnZlckluaXQgJiB7XG4gICAgcm9vdFJlZj86IFJlYWN0LlJlZk9iamVjdDxIVE1MRWxlbWVudCB8IG51bGw+IHwgbnVsbFxuICB9XG50eXBlIE9ic2VydmVDYWxsYmFjayA9IChpc1Zpc2libGU6IGJvb2xlYW4pID0+IHZvaWRcbnR5cGUgSWRlbnRpZmllciA9IHtcbiAgcm9vdDogRWxlbWVudCB8IERvY3VtZW50IHwgbnVsbFxuICBtYXJnaW46IHN0cmluZ1xufVxudHlwZSBPYnNlcnZlciA9IHtcbiAgaWQ6IElkZW50aWZpZXJcbiAgb2JzZXJ2ZXI6IEludGVyc2VjdGlvbk9ic2VydmVyXG4gIGVsZW1lbnRzOiBNYXA8RWxlbWVudCwgT2JzZXJ2ZUNhbGxiYWNrPlxufVxuXG5jb25zdCBoYXNJbnRlcnNlY3Rpb25PYnNlcnZlciA9IHR5cGVvZiBJbnRlcnNlY3Rpb25PYnNlcnZlciA9PT0gJ2Z1bmN0aW9uJ1xuXG5jb25zdCBvYnNlcnZlcnMgPSBuZXcgTWFwPElkZW50aWZpZXIsIE9ic2VydmVyPigpXG5jb25zdCBpZExpc3Q6IElkZW50aWZpZXJbXSA9IFtdXG5cbmZ1bmN0aW9uIGNyZWF0ZU9ic2VydmVyKG9wdGlvbnM6IFVzZUludGVyc2VjdGlvbk9ic2VydmVySW5pdCk6IE9ic2VydmVyIHtcbiAgY29uc3QgaWQgPSB7XG4gICAgcm9vdDogb3B0aW9ucy5yb290IHx8IG51bGwsXG4gICAgbWFyZ2luOiBvcHRpb25zLnJvb3RNYXJnaW4gfHwgJycsXG4gIH1cbiAgY29uc3QgZXhpc3RpbmcgPSBpZExpc3QuZmluZChcbiAgICAob2JqKSA9PiBvYmoucm9vdCA9PT0gaWQucm9vdCAmJiBvYmoubWFyZ2luID09PSBpZC5tYXJnaW5cbiAgKVxuICBsZXQgaW5zdGFuY2U6IE9ic2VydmVyIHwgdW5kZWZpbmVkXG5cbiAgaWYgKGV4aXN0aW5nKSB7XG4gICAgaW5zdGFuY2UgPSBvYnNlcnZlcnMuZ2V0KGV4aXN0aW5nKVxuICAgIGlmIChpbnN0YW5jZSkge1xuICAgICAgcmV0dXJuIGluc3RhbmNlXG4gICAgfVxuICB9XG5cbiAgY29uc3QgZWxlbWVudHMgPSBuZXcgTWFwPEVsZW1lbnQsIE9ic2VydmVDYWxsYmFjaz4oKVxuICBjb25zdCBvYnNlcnZlciA9IG5ldyBJbnRlcnNlY3Rpb25PYnNlcnZlcigoZW50cmllcykgPT4ge1xuICAgIGVudHJpZXMuZm9yRWFjaCgoZW50cnkpID0+IHtcbiAgICAgIGNvbnN0IGNhbGxiYWNrID0gZWxlbWVudHMuZ2V0KGVudHJ5LnRhcmdldClcbiAgICAgIGNvbnN0IGlzVmlzaWJsZSA9IGVudHJ5LmlzSW50ZXJzZWN0aW5nIHx8IGVudHJ5LmludGVyc2VjdGlvblJhdGlvID4gMFxuICAgICAgaWYgKGNhbGxiYWNrICYmIGlzVmlzaWJsZSkge1xuICAgICAgICBjYWxsYmFjayhpc1Zpc2libGUpXG4gICAgICB9XG4gICAgfSlcbiAgfSwgb3B0aW9ucylcbiAgaW5zdGFuY2UgPSB7XG4gICAgaWQsXG4gICAgb2JzZXJ2ZXIsXG4gICAgZWxlbWVudHMsXG4gIH1cblxuICBpZExpc3QucHVzaChpZClcbiAgb2JzZXJ2ZXJzLnNldChpZCwgaW5zdGFuY2UpXG4gIHJldHVybiBpbnN0YW5jZVxufVxuXG5mdW5jdGlvbiBvYnNlcnZlKFxuICBlbGVtZW50OiBFbGVtZW50LFxuICBjYWxsYmFjazogT2JzZXJ2ZUNhbGxiYWNrLFxuICBvcHRpb25zOiBVc2VJbnRlcnNlY3Rpb25PYnNlcnZlckluaXRcbik6ICgpID0+IHZvaWQge1xuICBjb25zdCB7IGlkLCBvYnNlcnZlciwgZWxlbWVudHMgfSA9IGNyZWF0ZU9ic2VydmVyKG9wdGlvbnMpXG4gIGVsZW1lbnRzLnNldChlbGVtZW50LCBjYWxsYmFjaylcblxuICBvYnNlcnZlci5vYnNlcnZlKGVsZW1lbnQpXG4gIHJldHVybiBmdW5jdGlvbiB1bm9ic2VydmUoKTogdm9pZCB7XG4gICAgZWxlbWVudHMuZGVsZXRlKGVsZW1lbnQpXG4gICAgb2JzZXJ2ZXIudW5vYnNlcnZlKGVsZW1lbnQpXG5cbiAgICAvLyBEZXN0cm95IG9ic2VydmVyIHdoZW4gdGhlcmUncyBub3RoaW5nIGxlZnQgdG8gd2F0Y2g6XG4gICAgaWYgKGVsZW1lbnRzLnNpemUgPT09IDApIHtcbiAgICAgIG9ic2VydmVyLmRpc2Nvbm5lY3QoKVxuICAgICAgb2JzZXJ2ZXJzLmRlbGV0ZShpZClcbiAgICAgIGNvbnN0IGluZGV4ID0gaWRMaXN0LmZpbmRJbmRleChcbiAgICAgICAgKG9iaikgPT4gb2JqLnJvb3QgPT09IGlkLnJvb3QgJiYgb2JqLm1hcmdpbiA9PT0gaWQubWFyZ2luXG4gICAgICApXG4gICAgICBpZiAoaW5kZXggPiAtMSkge1xuICAgICAgICBpZExpc3Quc3BsaWNlKGluZGV4LCAxKVxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gdXNlSW50ZXJzZWN0aW9uPFQgZXh0ZW5kcyBFbGVtZW50Pih7XG4gIHJvb3RSZWYsXG4gIHJvb3RNYXJnaW4sXG4gIGRpc2FibGVkLFxufTogVXNlSW50ZXJzZWN0aW9uKTogWyhlbGVtZW50OiBUIHwgbnVsbCkgPT4gdm9pZCwgYm9vbGVhbiwgKCkgPT4gdm9pZF0ge1xuICBjb25zdCBpc0Rpc2FibGVkOiBib29sZWFuID0gZGlzYWJsZWQgfHwgIWhhc0ludGVyc2VjdGlvbk9ic2VydmVyXG5cbiAgY29uc3QgW3Zpc2libGUsIHNldFZpc2libGVdID0gdXNlU3RhdGUoZmFsc2UpXG4gIGNvbnN0IGVsZW1lbnRSZWYgPSB1c2VSZWY8VCB8IG51bGw+KG51bGwpXG4gIGNvbnN0IHNldEVsZW1lbnQgPSB1c2VDYWxsYmFjaygoZWxlbWVudDogVCB8IG51bGwpID0+IHtcbiAgICBlbGVtZW50UmVmLmN1cnJlbnQgPSBlbGVtZW50XG4gIH0sIFtdKVxuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKGhhc0ludGVyc2VjdGlvbk9ic2VydmVyKSB7XG4gICAgICBpZiAoaXNEaXNhYmxlZCB8fCB2aXNpYmxlKSByZXR1cm5cblxuICAgICAgY29uc3QgZWxlbWVudCA9IGVsZW1lbnRSZWYuY3VycmVudFxuICAgICAgaWYgKGVsZW1lbnQgJiYgZWxlbWVudC50YWdOYW1lKSB7XG4gICAgICAgIGNvbnN0IHVub2JzZXJ2ZSA9IG9ic2VydmUoXG4gICAgICAgICAgZWxlbWVudCxcbiAgICAgICAgICAoaXNWaXNpYmxlKSA9PiBpc1Zpc2libGUgJiYgc2V0VmlzaWJsZShpc1Zpc2libGUpLFxuICAgICAgICAgIHsgcm9vdDogcm9vdFJlZj8uY3VycmVudCwgcm9vdE1hcmdpbiB9XG4gICAgICAgIClcblxuICAgICAgICByZXR1cm4gdW5vYnNlcnZlXG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIGlmICghdmlzaWJsZSkge1xuICAgICAgICBjb25zdCBpZGxlQ2FsbGJhY2sgPSByZXF1ZXN0SWRsZUNhbGxiYWNrKCgpID0+IHNldFZpc2libGUodHJ1ZSkpXG4gICAgICAgIHJldHVybiAoKSA9PiBjYW5jZWxJZGxlQ2FsbGJhY2soaWRsZUNhbGxiYWNrKVxuICAgICAgfVxuICAgIH1cbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgcmVhY3QtaG9va3MvZXhoYXVzdGl2ZS1kZXBzXG4gIH0sIFtpc0Rpc2FibGVkLCByb290TWFyZ2luLCByb290UmVmLCB2aXNpYmxlLCBlbGVtZW50UmVmLmN1cnJlbnRdKVxuXG4gIGNvbnN0IHJlc2V0VmlzaWJsZSA9IHVzZUNhbGxiYWNrKCgpID0+IHtcbiAgICBzZXRWaXNpYmxlKGZhbHNlKVxuICB9LCBbXSlcblxuICByZXR1cm4gW3NldEVsZW1lbnQsIHZpc2libGUsIHJlc2V0VmlzaWJsZV1cbn1cbiJdLCJuYW1lcyI6WyJ1c2VJbnRlcnNlY3Rpb24iLCJoYXNJbnRlcnNlY3Rpb25PYnNlcnZlciIsIkludGVyc2VjdGlvbk9ic2VydmVyIiwib2JzZXJ2ZXJzIiwiTWFwIiwiaWRMaXN0IiwiY3JlYXRlT2JzZXJ2ZXIiLCJvcHRpb25zIiwiaWQiLCJyb290IiwibWFyZ2luIiwicm9vdE1hcmdpbiIsImV4aXN0aW5nIiwiZmluZCIsIm9iaiIsImluc3RhbmNlIiwiZ2V0IiwiZWxlbWVudHMiLCJvYnNlcnZlciIsImVudHJpZXMiLCJmb3JFYWNoIiwiZW50cnkiLCJjYWxsYmFjayIsInRhcmdldCIsImlzVmlzaWJsZSIsImlzSW50ZXJzZWN0aW5nIiwiaW50ZXJzZWN0aW9uUmF0aW8iLCJwdXNoIiwic2V0Iiwib2JzZXJ2ZSIsImVsZW1lbnQiLCJ1bm9ic2VydmUiLCJkZWxldGUiLCJzaXplIiwiZGlzY29ubmVjdCIsImluZGV4IiwiZmluZEluZGV4Iiwic3BsaWNlIiwicm9vdFJlZiIsImRpc2FibGVkIiwiaXNEaXNhYmxlZCIsInZpc2libGUiLCJzZXRWaXNpYmxlIiwidXNlU3RhdGUiLCJlbGVtZW50UmVmIiwidXNlUmVmIiwic2V0RWxlbWVudCIsInVzZUNhbGxiYWNrIiwiY3VycmVudCIsInVzZUVmZmVjdCIsInRhZ05hbWUiLCJpZGxlQ2FsbGJhY2siLCJyZXF1ZXN0SWRsZUNhbGxiYWNrIiwiY2FuY2VsSWRsZUNhbGxiYWNrIiwicmVzZXRWaXNpYmxlIl0sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(pages-dir-browser)/./node_modules/next/dist/client/use-intersection.js\n")); - -/***/ }), - -/***/ "(pages-dir-browser)/./node_modules/next/dist/client/use-merged-ref.js": -/*!*********************************************************!*\ - !*** ./node_modules/next/dist/client/use-merged-ref.js ***! - \*********************************************************/ -/***/ ((module, exports, __webpack_require__) => { - -"use strict"; -eval(__webpack_require__.ts("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"useMergedRef\", ({\n enumerable: true,\n get: function() {\n return useMergedRef;\n }\n}));\nconst _react = __webpack_require__(/*! react */ \"(pages-dir-browser)/./node_modules/react/index.js\");\nfunction useMergedRef(refA, refB) {\n const cleanupA = (0, _react.useRef)(null);\n const cleanupB = (0, _react.useRef)(null);\n // NOTE: In theory, we could skip the wrapping if only one of the refs is non-null.\n // (this happens often if the user doesn't pass a ref to Link/Form/Image)\n // But this can cause us to leak a cleanup-ref into user code (e.g. via `<Link legacyBehavior>`),\n // and the user might pass that ref into ref-merging library that doesn't support cleanup refs\n // (because it hasn't been updated for React 19)\n // which can then cause things to blow up, because a cleanup-returning ref gets called with `null`.\n // So in practice, it's safer to be defensive and always wrap the ref, even on React 19.\n return (0, _react.useCallback)((current)=>{\n if (current === null) {\n const cleanupFnA = cleanupA.current;\n if (cleanupFnA) {\n cleanupA.current = null;\n cleanupFnA();\n }\n const cleanupFnB = cleanupB.current;\n if (cleanupFnB) {\n cleanupB.current = null;\n cleanupFnB();\n }\n } else {\n if (refA) {\n cleanupA.current = applyRef(refA, current);\n }\n if (refB) {\n cleanupB.current = applyRef(refB, current);\n }\n }\n }, [\n refA,\n refB\n ]);\n}\nfunction applyRef(refA, current) {\n if (typeof refA === 'function') {\n const cleanup = refA(current);\n if (typeof cleanup === 'function') {\n return cleanup;\n } else {\n return ()=>refA(null);\n }\n } else {\n refA.current = current;\n return ()=>{\n refA.current = null;\n };\n }\n}\nif ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=use-merged-ref.js.map\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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvY2xpZW50L3VzZS1tZXJnZWQtcmVmLmpzIiwibWFwcGluZ3MiOiI7Ozs7Z0RBU2dCQTs7O2VBQUFBOzs7bUNBVDhCO0FBU3ZDLFNBQVNBLGFBQ2RDLElBQW1CLEVBQ25CQyxJQUFtQjtJQUVuQixNQUFNQyxXQUFXQyxDQUFBQSxHQUFBQSxPQUFBQSxNQUFBQSxFQUE0QjtJQUM3QyxNQUFNQyxXQUFXRCxDQUFBQSxHQUFBQSxPQUFBQSxNQUFBQSxFQUE0QjtJQUU3QyxtRkFBbUY7SUFDbkYseUVBQXlFO0lBQ3pFLGlHQUFpRztJQUNqRyw4RkFBOEY7SUFDOUYsZ0RBQWdEO0lBQ2hELG1HQUFtRztJQUNuRyx3RkFBd0Y7SUFDeEYsT0FBT0UsQ0FBQUEsR0FBQUEsT0FBQUEsV0FBQUEsRUFDTCxDQUFDQztRQUNDLElBQUlBLFlBQVksTUFBTTtZQUNwQixNQUFNQyxhQUFhTCxTQUFTSSxPQUFPO1lBQ25DLElBQUlDLFlBQVk7Z0JBQ2RMLFNBQVNJLE9BQU8sR0FBRztnQkFDbkJDO1lBQ0Y7WUFDQSxNQUFNQyxhQUFhSixTQUFTRSxPQUFPO1lBQ25DLElBQUlFLFlBQVk7Z0JBQ2RKLFNBQVNFLE9BQU8sR0FBRztnQkFDbkJFO1lBQ0Y7UUFDRixPQUFPO1lBQ0wsSUFBSVIsTUFBTTtnQkFDUkUsU0FBU0ksT0FBTyxHQUFHRyxTQUFTVCxNQUFNTTtZQUNwQztZQUNBLElBQUlMLE1BQU07Z0JBQ1JHLFNBQVNFLE9BQU8sR0FBR0csU0FBU1IsTUFBTUs7WUFDcEM7UUFDRjtJQUNGLEdBQ0E7UUFBQ047UUFBTUM7S0FBSztBQUVoQjtBQUVBLFNBQVNRLFNBQ1BULElBQWdDLEVBQ2hDTSxPQUFpQjtJQUVqQixJQUFJLE9BQU9OLFNBQVMsWUFBWTtRQUM5QixNQUFNVSxVQUFVVixLQUFLTTtRQUNyQixJQUFJLE9BQU9JLFlBQVksWUFBWTtZQUNqQyxPQUFPQTtRQUNULE9BQU87WUFDTCxPQUFPLElBQU1WLEtBQUs7UUFDcEI7SUFDRixPQUFPO1FBQ0xBLEtBQUtNLE9BQU8sR0FBR0E7UUFDZixPQUFPO1lBQ0xOLEtBQUtNLE9BQU8sR0FBRztRQUNqQjtJQUNGO0FBQ0YiLCJzb3VyY2VzIjpbIkQ6XFxzcmNcXGNsaWVudFxcdXNlLW1lcmdlZC1yZWYudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgdXNlQ2FsbGJhY2ssIHVzZVJlZiwgdHlwZSBSZWYgfSBmcm9tICdyZWFjdCdcblxuLy8gVGhpcyBpcyBhIGNvbXBhdGliaWxpdHkgaG9vayB0byBzdXBwb3J0IFJlYWN0IDE4IGFuZCAxOSByZWZzLlxuLy8gSW4gMTksIGEgY2xlYW51cCBmdW5jdGlvbiBmcm9tIHJlZnMgbWF5IGJlIHJldHVybmVkLlxuLy8gSW4gMTgsIHJldHVybmluZyBhIGNsZWFudXAgZnVuY3Rpb24gY3JlYXRlcyBhIHdhcm5pbmcuXG4vLyBTaW5jZSB3ZSB0YWtlIHVzZXJzcGFjZSByZWZzLCB3ZSBkb24ndCBrbm93IGFoZWFkIG9mIHRpbWUgaWYgYSBjbGVhbnVwIGZ1bmN0aW9uIHdpbGwgYmUgcmV0dXJuZWQuXG4vLyBUaGlzIGltcGxlbWVudHMgY2xlYW51cCBmdW5jdGlvbnMgd2l0aCB0aGUgb2xkIGJlaGF2aW9yIGluIDE4LlxuLy8gV2Uga25vdyByZWZzIGFyZSBhbHdheXMgY2FsbGVkIGFsdGVybmF0aW5nIHdpdGggYG51bGxgIGFuZCB0aGVuIGBUYC5cbi8vIFNvIGEgY2FsbCB3aXRoIGBudWxsYCBtZWFucyB3ZSBuZWVkIHRvIGNhbGwgdGhlIHByZXZpb3VzIGNsZWFudXAgZnVuY3Rpb25zLlxuZXhwb3J0IGZ1bmN0aW9uIHVzZU1lcmdlZFJlZjxURWxlbWVudD4oXG4gIHJlZkE6IFJlZjxURWxlbWVudD4sXG4gIHJlZkI6IFJlZjxURWxlbWVudD5cbik6IFJlZjxURWxlbWVudD4ge1xuICBjb25zdCBjbGVhbnVwQSA9IHVzZVJlZjwoKCkgPT4gdm9pZCkgfCBudWxsPihudWxsKVxuICBjb25zdCBjbGVhbnVwQiA9IHVzZVJlZjwoKCkgPT4gdm9pZCkgfCBudWxsPihudWxsKVxuXG4gIC8vIE5PVEU6IEluIHRoZW9yeSwgd2UgY291bGQgc2tpcCB0aGUgd3JhcHBpbmcgaWYgb25seSBvbmUgb2YgdGhlIHJlZnMgaXMgbm9uLW51bGwuXG4gIC8vICh0aGlzIGhhcHBlbnMgb2Z0ZW4gaWYgdGhlIHVzZXIgZG9lc24ndCBwYXNzIGEgcmVmIHRvIExpbmsvRm9ybS9JbWFnZSlcbiAgLy8gQnV0IHRoaXMgY2FuIGNhdXNlIHVzIHRvIGxlYWsgYSBjbGVhbnVwLXJlZiBpbnRvIHVzZXIgY29kZSAoZS5nLiB2aWEgYDxMaW5rIGxlZ2FjeUJlaGF2aW9yPmApLFxuICAvLyBhbmQgdGhlIHVzZXIgbWlnaHQgcGFzcyB0aGF0IHJlZiBpbnRvIHJlZi1tZXJnaW5nIGxpYnJhcnkgdGhhdCBkb2Vzbid0IHN1cHBvcnQgY2xlYW51cCByZWZzXG4gIC8vIChiZWNhdXNlIGl0IGhhc24ndCBiZWVuIHVwZGF0ZWQgZm9yIFJlYWN0IDE5KVxuICAvLyB3aGljaCBjYW4gdGhlbiBjYXVzZSB0aGluZ3MgdG8gYmxvdyB1cCwgYmVjYXVzZSBhIGNsZWFudXAtcmV0dXJuaW5nIHJlZiBnZXRzIGNhbGxlZCB3aXRoIGBudWxsYC5cbiAgLy8gU28gaW4gcHJhY3RpY2UsIGl0J3Mgc2FmZXIgdG8gYmUgZGVmZW5zaXZlIGFuZCBhbHdheXMgd3JhcCB0aGUgcmVmLCBldmVuIG9uIFJlYWN0IDE5LlxuICByZXR1cm4gdXNlQ2FsbGJhY2soXG4gICAgKGN1cnJlbnQ6IFRFbGVtZW50IHwgbnVsbCk6IHZvaWQgPT4ge1xuICAgICAgaWYgKGN1cnJlbnQgPT09IG51bGwpIHtcbiAgICAgICAgY29uc3QgY2xlYW51cEZuQSA9IGNsZWFudXBBLmN1cnJlbnRcbiAgICAgICAgaWYgKGNsZWFudXBGbkEpIHtcbiAgICAgICAgICBjbGVhbnVwQS5jdXJyZW50ID0gbnVsbFxuICAgICAgICAgIGNsZWFudXBGbkEoKVxuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGNsZWFudXBGbkIgPSBjbGVhbnVwQi5jdXJyZW50XG4gICAgICAgIGlmIChjbGVhbnVwRm5CKSB7XG4gICAgICAgICAgY2xlYW51cEIuY3VycmVudCA9IG51bGxcbiAgICAgICAgICBjbGVhbnVwRm5CKClcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgaWYgKHJlZkEpIHtcbiAgICAgICAgICBjbGVhbnVwQS5jdXJyZW50ID0gYXBwbHlSZWYocmVmQSwgY3VycmVudClcbiAgICAgICAgfVxuICAgICAgICBpZiAocmVmQikge1xuICAgICAgICAgIGNsZWFudXBCLmN1cnJlbnQgPSBhcHBseVJlZihyZWZCLCBjdXJyZW50KVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBbcmVmQSwgcmVmQl1cbiAgKVxufVxuXG5mdW5jdGlvbiBhcHBseVJlZjxURWxlbWVudD4oXG4gIHJlZkE6IE5vbk51bGxhYmxlPFJlZjxURWxlbWVudD4+LFxuICBjdXJyZW50OiBURWxlbWVudFxuKSB7XG4gIGlmICh0eXBlb2YgcmVmQSA9PT0gJ2Z1bmN0aW9uJykge1xuICAgIGNvbnN0IGNsZWFudXAgPSByZWZBKGN1cnJlbnQpXG4gICAgaWYgKHR5cGVvZiBjbGVhbnVwID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICByZXR1cm4gY2xlYW51cFxuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gKCkgPT4gcmVmQShudWxsKVxuICAgIH1cbiAgfSBlbHNlIHtcbiAgICByZWZBLmN1cnJlbnQgPSBjdXJyZW50XG4gICAgcmV0dXJuICgpID0+IHtcbiAgICAgIHJlZkEuY3VycmVudCA9IG51bGxcbiAgICB9XG4gIH1cbn1cbiJdLCJuYW1lcyI6WyJ1c2VNZXJnZWRSZWYiLCJyZWZBIiwicmVmQiIsImNsZWFudXBBIiwidXNlUmVmIiwiY2xlYW51cEIiLCJ1c2VDYWxsYmFjayIsImN1cnJlbnQiLCJjbGVhbnVwRm5BIiwiY2xlYW51cEZuQiIsImFwcGx5UmVmIiwiY2xlYW51cCJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(pages-dir-browser)/./node_modules/next/dist/client/use-merged-ref.js\n")); - -/***/ }), - -/***/ "(pages-dir-browser)/./node_modules/next/dist/shared/lib/utils/error-once.js": -/*!***************************************************************!*\ - !*** ./node_modules/next/dist/shared/lib/utils/error-once.js ***! - \***************************************************************/ -/***/ ((module, exports, __webpack_require__) => { - -"use strict"; -eval(__webpack_require__.ts("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"errorOnce\", ({\n enumerable: true,\n get: function() {\n return errorOnce;\n }\n}));\nlet errorOnce = (_)=>{};\nif (true) {\n const errors = new Set();\n errorOnce = (msg)=>{\n if (!errors.has(msg)) {\n console.error(msg);\n }\n errors.add(msg);\n };\n} //# sourceMappingURL=error-once.js.map\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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3Qvc2hhcmVkL2xpYi91dGlscy9lcnJvci1vbmNlLmpzIiwibWFwcGluZ3MiOiI7Ozs7NkNBV1NBOzs7ZUFBQUE7OztBQVhULElBQUlBLFlBQVksQ0FBQ0MsS0FBZTtBQUNoQyxJQUFJQyxJQUFvQixFQUFtQjtJQUN6QyxNQUFNRyxTQUFTLElBQUlDO0lBQ25CTixZQUFZLENBQUNPO1FBQ1gsSUFBSSxDQUFDRixPQUFPRyxHQUFHLENBQUNELE1BQU07WUFDcEJFLFFBQVFDLEtBQUssQ0FBQ0g7UUFDaEI7UUFDQUYsT0FBT00sR0FBRyxDQUFDSjtJQUNiO0FBQ0YiLCJzb3VyY2VzIjpbIkQ6XFxzcmNcXHNoYXJlZFxcbGliXFx1dGlsc1xcZXJyb3Itb25jZS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJsZXQgZXJyb3JPbmNlID0gKF86IHN0cmluZykgPT4ge31cbmlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSB7XG4gIGNvbnN0IGVycm9ycyA9IG5ldyBTZXQ8c3RyaW5nPigpXG4gIGVycm9yT25jZSA9IChtc2c6IHN0cmluZykgPT4ge1xuICAgIGlmICghZXJyb3JzLmhhcyhtc2cpKSB7XG4gICAgICBjb25zb2xlLmVycm9yKG1zZylcbiAgICB9XG4gICAgZXJyb3JzLmFkZChtc2cpXG4gIH1cbn1cblxuZXhwb3J0IHsgZXJyb3JPbmNlIH1cbiJdLCJuYW1lcyI6WyJlcnJvck9uY2UiLCJfIiwicHJvY2VzcyIsImVudiIsIk5PREVfRU5WIiwiZXJyb3JzIiwiU2V0IiwibXNnIiwiaGFzIiwiY29uc29sZSIsImVycm9yIiwiYWRkIl0sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(pages-dir-browser)/./node_modules/next/dist/shared/lib/utils/error-once.js\n")); - -/***/ }), - -/***/ "(pages-dir-browser)/./node_modules/next/link.js": -/*!***********************************!*\ - !*** ./node_modules/next/link.js ***! - \***********************************/ -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { - -eval(__webpack_require__.ts("module.exports = __webpack_require__(/*! ./dist/client/link */ \"(pages-dir-browser)/./node_modules/next/dist/client/link.js\")\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9uZXh0L2xpbmsuanMiLCJtYXBwaW5ncyI6IkFBQUEsNkhBQThDIiwic291cmNlcyI6WyJEOlxcZG9uZ3l1bi1wcm9qZWN0c1xcdHdvXFxub2RlX21vZHVsZXNcXG5leHRcXGxpbmsuanMiXSwic291cmNlc0NvbnRlbnQiOlsibW9kdWxlLmV4cG9ydHMgPSByZXF1aXJlKCcuL2Rpc3QvY2xpZW50L2xpbmsnKVxuIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(pages-dir-browser)/./node_modules/next/link.js\n")); - -/***/ }), - -/***/ "(pages-dir-browser)/./pages/news.tsx": -/*!************************!*\ - !*** ./pages/news.tsx ***! - \************************/ -/***/ ((module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ __N_SSG: () => (/* binding */ __N_SSG),\n/* harmony export */ \"default\": () => (/* binding */ NewsPage)\n/* harmony export */ });\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react/jsx-dev-runtime */ \"(pages-dir-browser)/./node_modules/react/jsx-dev-runtime.js\");\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _components_Navbar__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../components/Navbar */ \"(pages-dir-browser)/./components/Navbar.tsx\");\n/* harmony import */ var _components_NewsList__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../components/NewsList */ \"(pages-dir-browser)/./components/NewsList.tsx\");\n/* harmony import */ var _components_Footer__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../components/Footer */ \"(pages-dir-browser)/./components/Footer.tsx\");\n/* harmony import */ var _barrel_optimize_names_Calendar_Newspaper_TrendingUp_lucide_react__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! __barrel_optimize__?names=Calendar,Newspaper,TrendingUp!=!lucide-react */ \"(pages-dir-browser)/__barrel_optimize__?names=Calendar,Newspaper,TrendingUp!=!./node_modules/lucide-react/dist/esm/lucide-react.js\");\n\n\n\n\n\nvar __N_SSG = true;\nfunction NewsPage(param) {\n let { news } = param;\n // 统计新闻数据\n const totalNews = news.length;\n const recentNews = news.slice(0, 3);\n const categories = Array.from(new Set(news.flatMap((item)=>item.tags || [])));\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"pt-16 bg-background\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_Navbar__WEBPACK_IMPORTED_MODULE_1__[\"default\"], {}, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\pages\\\\news.tsx\",\n lineNumber: 16,\n columnNumber: 7\n }, this),\n /*#__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)(\"section\", {\n className: \"px-6 py-16 bg-gradient-to-br from-blue-50 to-indigo-100\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"max-w-screen-xl mx-auto text-center\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"h1\", {\n className: \"text-4xl md:text-5xl font-bold text-primary mb-6\",\n children: \"新闻资讯\"\n }, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\pages\\\\news.tsx\",\n lineNumber: 21,\n columnNumber: 13\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"p\", {\n className: \"text-xl text-gray-600 max-w-3xl mx-auto leading-relaxed mb-8\",\n children: \"了解最新的产品动态、技术更新和行业资讯,掌握云加速服务的最新发展\"\n }, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\pages\\\\news.tsx\",\n lineNumber: 24,\n columnNumber: 13\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"grid grid-cols-1 md:grid-cols-3 gap-6 max-w-2xl mx-auto\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"bg-white/80 backdrop-blur-sm rounded-lg p-4 shadow-sm\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex items-center justify-center mb-2\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_barrel_optimize_names_Calendar_Newspaper_TrendingUp_lucide_react__WEBPACK_IMPORTED_MODULE_4__.Newspaper, {\n className: \"w-6 h-6 text-accent mr-2\"\n }, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\pages\\\\news.tsx\",\n lineNumber: 32,\n columnNumber: 19\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n className: \"text-2xl font-bold text-primary\",\n children: totalNews\n }, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\pages\\\\news.tsx\",\n lineNumber: 33,\n columnNumber: 19\n }, this)\n ]\n }, void 0, true, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\pages\\\\news.tsx\",\n lineNumber: 31,\n columnNumber: 17\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"p\", {\n className: \"text-sm text-gray-600\",\n children: \"新闻资讯\"\n }, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\pages\\\\news.tsx\",\n lineNumber: 35,\n columnNumber: 17\n }, this)\n ]\n }, void 0, true, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\pages\\\\news.tsx\",\n lineNumber: 30,\n columnNumber: 15\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"bg-white/80 backdrop-blur-sm rounded-lg p-4 shadow-sm\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex items-center justify-center mb-2\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_barrel_optimize_names_Calendar_Newspaper_TrendingUp_lucide_react__WEBPACK_IMPORTED_MODULE_4__.Calendar, {\n className: \"w-6 h-6 text-green-500 mr-2\"\n }, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\pages\\\\news.tsx\",\n lineNumber: 40,\n columnNumber: 19\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n className: \"text-2xl font-bold text-primary\",\n children: categories.length\n }, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\pages\\\\news.tsx\",\n lineNumber: 41,\n columnNumber: 19\n }, this)\n ]\n }, void 0, true, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\pages\\\\news.tsx\",\n lineNumber: 39,\n columnNumber: 17\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"p\", {\n className: \"text-sm text-gray-600\",\n children: \"分类标签\"\n }, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\pages\\\\news.tsx\",\n lineNumber: 43,\n columnNumber: 17\n }, this)\n ]\n }, void 0, true, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\pages\\\\news.tsx\",\n lineNumber: 38,\n columnNumber: 15\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"bg-white/80 backdrop-blur-sm rounded-lg p-4 shadow-sm\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex items-center justify-center mb-2\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_barrel_optimize_names_Calendar_Newspaper_TrendingUp_lucide_react__WEBPACK_IMPORTED_MODULE_4__.TrendingUp, {\n className: \"w-6 h-6 text-purple-500 mr-2\"\n }, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\pages\\\\news.tsx\",\n lineNumber: 48,\n columnNumber: 19\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n className: \"text-2xl font-bold text-primary\",\n children: \"实时\"\n }, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\pages\\\\news.tsx\",\n lineNumber: 49,\n columnNumber: 19\n }, this)\n ]\n }, void 0, true, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\pages\\\\news.tsx\",\n lineNumber: 47,\n columnNumber: 17\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"p\", {\n className: \"text-sm text-gray-600\",\n children: \"更新状态\"\n }, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\pages\\\\news.tsx\",\n lineNumber: 51,\n columnNumber: 17\n }, this)\n ]\n }, void 0, true, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\pages\\\\news.tsx\",\n lineNumber: 46,\n columnNumber: 15\n }, this)\n ]\n }, void 0, true, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\pages\\\\news.tsx\",\n lineNumber: 29,\n columnNumber: 13\n }, this)\n ]\n }, void 0, true, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\pages\\\\news.tsx\",\n lineNumber: 20,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\pages\\\\news.tsx\",\n lineNumber: 19,\n columnNumber: 9\n }, this),\n recentNews.length > 0 && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"section\", {\n className: \"px-6 py-12 bg-white\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"max-w-screen-xl mx-auto\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"h2\", {\n className: \"text-2xl font-bold text-primary mb-8 text-center\",\n children: \"最新资讯\"\n }, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\pages\\\\news.tsx\",\n lineNumber: 61,\n columnNumber: 15\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"grid grid-cols-1 md:grid-cols-3 gap-6\",\n children: recentNews.map((item, index)=>/*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"group bg-gray-50 rounded-xl p-6 hover:shadow-lg transition-all duration-300 border border-gray-100 hover:border-accent/20\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex items-center mb-3\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n className: \"bg-accent text-white text-xs font-semibold px-2 py-1 rounded-full mr-3\",\n children: \"最新\"\n }, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\pages\\\\news.tsx\",\n lineNumber: 66,\n columnNumber: 23\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"time\", {\n className: \"text-sm text-gray-500\",\n children: item.date\n }, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\pages\\\\news.tsx\",\n lineNumber: 69,\n columnNumber: 23\n }, this)\n ]\n }, void 0, true, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\pages\\\\news.tsx\",\n lineNumber: 65,\n columnNumber: 21\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"h3\", {\n className: \"text-lg font-semibold text-primary mb-2 group-hover:text-accent transition-colors line-clamp-2\",\n children: item.title\n }, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\pages\\\\news.tsx\",\n lineNumber: 71,\n columnNumber: 21\n }, this),\n item.summary && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"p\", {\n className: \"text-gray-600 text-sm line-clamp-3 mb-3\",\n children: item.summary\n }, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\pages\\\\news.tsx\",\n lineNumber: 75,\n columnNumber: 23\n }, this),\n item.tags && item.tags.length > 0 && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex flex-wrap gap-1\",\n children: item.tags.slice(0, 2).map((tag)=>/*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n className: \"px-2 py-1 text-xs bg-white border border-gray-200 rounded text-gray-600\",\n children: tag\n }, tag, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\pages\\\\news.tsx\",\n lineNumber: 82,\n columnNumber: 27\n }, this))\n }, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\pages\\\\news.tsx\",\n lineNumber: 80,\n columnNumber: 23\n }, this)\n ]\n }, item.slug, true, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\pages\\\\news.tsx\",\n lineNumber: 64,\n columnNumber: 19\n }, this))\n }, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\pages\\\\news.tsx\",\n lineNumber: 62,\n columnNumber: 15\n }, this)\n ]\n }, void 0, true, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\pages\\\\news.tsx\",\n lineNumber: 60,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\pages\\\\news.tsx\",\n lineNumber: 59,\n columnNumber: 11\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_NewsList__WEBPACK_IMPORTED_MODULE_2__[\"default\"], {\n news: news\n }, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\pages\\\\news.tsx\",\n lineNumber: 96,\n columnNumber: 9\n }, this)\n ]\n }, void 0, true, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\pages\\\\news.tsx\",\n lineNumber: 17,\n columnNumber: 7\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_Footer__WEBPACK_IMPORTED_MODULE_3__[\"default\"], {}, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\pages\\\\news.tsx\",\n lineNumber: 98,\n columnNumber: 7\n }, this)\n ]\n }, void 0, true, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\pages\\\\news.tsx\",\n lineNumber: 15,\n columnNumber: 5\n }, this);\n}\n_c = NewsPage;\nvar _c;\n$RefreshReg$(_c, \"NewsPage\");\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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a0NBZ0M3Qiw4REFBQ2xDLDREQUFRQTt3QkFBQ00sTUFBTUE7Ozs7Ozs7Ozs7OzswQkFFbEIsOERBQUNMLDBEQUFNQTs7Ozs7Ozs7Ozs7QUFHYjtLQTdGd0JJIiwic291cmNlcyI6WyJEOlxcZG9uZ3l1bi1wcm9qZWN0c1xcdHdvXFxwYWdlc1xcbmV3cy50c3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IE5hdmJhciBmcm9tICcuLi9jb21wb25lbnRzL05hdmJhcic7XHJcbmltcG9ydCBOZXdzTGlzdCBmcm9tICcuLi9jb21wb25lbnRzL05ld3NMaXN0JztcclxuaW1wb3J0IEZvb3RlciBmcm9tICcuLi9jb21wb25lbnRzL0Zvb3Rlcic7XHJcbmltcG9ydCB0eXBlIHsgR2V0U3RhdGljUHJvcHMgfSBmcm9tICduZXh0JztcclxuaW1wb3J0IHsgZ2V0QWxsTmV3cywgTmV3c0l0ZW0gfSBmcm9tICcuLi9saWIvY29udGVudCc7XHJcbmltcG9ydCB7IENhbGVuZGFyLCBOZXdzcGFwZXIsIFRyZW5kaW5nVXAgfSBmcm9tICdsdWNpZGUtcmVhY3QnO1xyXG5cclxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gTmV3c1BhZ2UoeyBuZXdzIH06IHsgbmV3czogTmV3c0l0ZW1bXSB9KSB7XHJcbiAgLy8g57uf6K6h5paw6Ze75pWw5o2uXHJcbiAgY29uc3QgdG90YWxOZXdzID0gbmV3cy5sZW5ndGg7XHJcbiAgY29uc3QgcmVjZW50TmV3cyA9IG5ld3Muc2xpY2UoMCwgMyk7XHJcbiAgY29uc3QgY2F0ZWdvcmllcyA9IEFycmF5LmZyb20obmV3IFNldChuZXdzLmZsYXRNYXAoaXRlbSA9PiBpdGVtLnRhZ3MgfHwgW10pKSk7XHJcblxyXG4gIHJldHVybiAoXHJcbiAgICA8ZGl2IGNsYXNzTmFtZT1cInB0LTE2IGJnLWJhY2tncm91bmRcIj5cclxuICAgICAgPE5hdmJhciAvPlxyXG4gICAgICA8bWFpbj5cclxuICAgICAgICB7Lyog6aG16Z2i5qCH6aKY6YOo5YiGICovfVxyXG4gICAgICAgIDxzZWN0aW9uIGNsYXNzTmFtZT1cInB4LTYgcHktMTYgYmctZ3JhZGllbnQtdG8tYnIgZnJvbS1ibHVlLTUwIHRvLWluZGlnby0xMDBcIj5cclxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwibWF4LXctc2NyZWVuLXhsIG14LWF1dG8gdGV4dC1jZW50ZXJcIj5cclxuICAgICAgICAgICAgPGgxIGNsYXNzTmFtZT1cInRleHQtNHhsIG1kOnRleHQtNXhsIGZvbnQtYm9sZCB0ZXh0LXByaW1hcnkgbWItNlwiPlxyXG4gICAgICAgICAgICAgIOaWsOmXu+i1hOiur1xyXG4gICAgICAgICAgICA8L2gxPlxyXG4gICAgICAgICAgICA8cCBjbGFzc05hbWU9XCJ0ZXh0LXhsIHRleHQtZ3JheS02MDAgbWF4LXctM3hsIG14LWF1dG8gbGVhZGluZy1yZWxheGVkIG1iLThcIj5cclxuICAgICAgICAgICAgICDkuobop6PmnIDmlrDnmoTkuqflk4HliqjmgIHjgIHmioDmnK/mm7TmlrDlkozooYzkuJrotYTorq/vvIzmjozmj6HkupHliqDpgJ/mnI3liqHnmoTmnIDmlrDlj5HlsZVcclxuICAgICAgICAgICAgPC9wPlxyXG4gICAgICAgICAgICBcclxuICAgICAgICAgICAgey8qIOe7n+iuoeS/oeaBryAqL31cclxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJncmlkIGdyaWQtY29scy0xIG1kOmdyaWQtY29scy0zIGdhcC02IG1heC13LTJ4bCBteC1hdXRvXCI+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJiZy13aGl0ZS84MCBiYWNrZHJvcC1ibHVyLXNtIHJvdW5kZWQtbGcgcC00IHNoYWRvdy1zbVwiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJmbGV4IGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNlbnRlciBtYi0yXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxOZXdzcGFwZXIgY2xhc3NOYW1lPVwidy02IGgtNiB0ZXh0LWFjY2VudCBtci0yXCIgLz5cclxuICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwidGV4dC0yeGwgZm9udC1ib2xkIHRleHQtcHJpbWFyeVwiPnt0b3RhbE5ld3N9PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8cCBjbGFzc05hbWU9XCJ0ZXh0LXNtIHRleHQtZ3JheS02MDBcIj7mlrDpl7votYTorq88L3A+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgXHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJiZy13aGl0ZS84MCBiYWNrZHJvcC1ibHVyLXNtIHJvdW5kZWQtbGcgcC00IHNoYWRvdy1zbVwiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJmbGV4IGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNlbnRlciBtYi0yXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxDYWxlbmRhciBjbGFzc05hbWU9XCJ3LTYgaC02IHRleHQtZ3JlZW4tNTAwIG1yLTJcIiAvPlxyXG4gICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJ0ZXh0LTJ4bCBmb250LWJvbGQgdGV4dC1wcmltYXJ5XCI+e2NhdGVnb3JpZXMubGVuZ3RofTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPHAgY2xhc3NOYW1lPVwidGV4dC1zbSB0ZXh0LWdyYXktNjAwXCI+5YiG57G75qCH562+PC9wPlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIFxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiYmctd2hpdGUvODAgYmFja2Ryb3AtYmx1ci1zbSByb3VuZGVkLWxnIHAtNCBzaGFkb3ctc21cIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZmxleCBpdGVtcy1jZW50ZXIganVzdGlmeS1jZW50ZXIgbWItMlwiPlxyXG4gICAgICAgICAgICAgICAgICA8VHJlbmRpbmdVcCBjbGFzc05hbWU9XCJ3LTYgaC02IHRleHQtcHVycGxlLTUwMCBtci0yXCIgLz5cclxuICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwidGV4dC0yeGwgZm9udC1ib2xkIHRleHQtcHJpbWFyeVwiPuWunuaXtjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPHAgY2xhc3NOYW1lPVwidGV4dC1zbSB0ZXh0LWdyYXktNjAwXCI+5pu05paw54q25oCBPC9wPlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvc2VjdGlvbj5cclxuXHJcbiAgICAgICAgey8qIOacgOaWsOi1hOiur+mihOiniCAqL31cclxuICAgICAgICB7cmVjZW50TmV3cy5sZW5ndGggPiAwICYmIChcclxuICAgICAgICAgIDxzZWN0aW9uIGNsYXNzTmFtZT1cInB4LTYgcHktMTIgYmctd2hpdGVcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJtYXgtdy1zY3JlZW4teGwgbXgtYXV0b1wiPlxyXG4gICAgICAgICAgICAgIDxoMiBjbGFzc05hbWU9XCJ0ZXh0LTJ4bCBmb250LWJvbGQgdGV4dC1wcmltYXJ5IG1iLTggdGV4dC1jZW50ZXJcIj7mnIDmlrDotYTorq88L2gyPlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZ3JpZCBncmlkLWNvbHMtMSBtZDpncmlkLWNvbHMtMyBnYXAtNlwiPlxyXG4gICAgICAgICAgICAgICAge3JlY2VudE5ld3MubWFwKChpdGVtLCBpbmRleCkgPT4gKFxyXG4gICAgICAgICAgICAgICAgICA8ZGl2IGtleT17aXRlbS5zbHVnfSBjbGFzc05hbWU9XCJncm91cCBiZy1ncmF5LTUwIHJvdW5kZWQteGwgcC02IGhvdmVyOnNoYWRvdy1sZyB0cmFuc2l0aW9uLWFsbCBkdXJhdGlvbi0zMDAgYm9yZGVyIGJvcmRlci1ncmF5LTEwMCBob3Zlcjpib3JkZXItYWNjZW50LzIwXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJmbGV4IGl0ZW1zLWNlbnRlciBtYi0zXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJiZy1hY2NlbnQgdGV4dC13aGl0ZSB0ZXh0LXhzIGZvbnQtc2VtaWJvbGQgcHgtMiBweS0xIHJvdW5kZWQtZnVsbCBtci0zXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIOacgOaWsFxyXG4gICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPHRpbWUgY2xhc3NOYW1lPVwidGV4dC1zbSB0ZXh0LWdyYXktNTAwXCI+e2l0ZW0uZGF0ZX08L3RpbWU+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPGgzIGNsYXNzTmFtZT1cInRleHQtbGcgZm9udC1zZW1pYm9sZCB0ZXh0LXByaW1hcnkgbWItMiBncm91cC1ob3Zlcjp0ZXh0LWFjY2VudCB0cmFuc2l0aW9uLWNvbG9ycyBsaW5lLWNsYW1wLTJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgIHtpdGVtLnRpdGxlfVxyXG4gICAgICAgICAgICAgICAgICAgIDwvaDM+XHJcbiAgICAgICAgICAgICAgICAgICAge2l0ZW0uc3VtbWFyeSAmJiAoXHJcbiAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzc05hbWU9XCJ0ZXh0LWdyYXktNjAwIHRleHQtc20gbGluZS1jbGFtcC0zIG1iLTNcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAge2l0ZW0uc3VtbWFyeX1cclxuICAgICAgICAgICAgICAgICAgICAgIDwvcD5cclxuICAgICAgICAgICAgICAgICAgICApfVxyXG4gICAgICAgICAgICAgICAgICAgIHtpdGVtLnRhZ3MgJiYgaXRlbS50YWdzLmxlbmd0aCA+IDAgJiYgKFxyXG4gICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJmbGV4IGZsZXgtd3JhcCBnYXAtMVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICB7aXRlbS50YWdzLnNsaWNlKDAsIDIpLm1hcCh0YWcgPT4gKFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGtleT17dGFnfSBjbGFzc05hbWU9XCJweC0yIHB5LTEgdGV4dC14cyBiZy13aGl0ZSBib3JkZXIgYm9yZGVyLWdyYXktMjAwIHJvdW5kZWQgdGV4dC1ncmF5LTYwMFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge3RhZ31cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICkpfVxyXG4gICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgKX1cclxuICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICApKX1cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L3NlY3Rpb24+XHJcbiAgICAgICAgKX1cclxuXHJcbiAgICAgICAgey8qIOaWsOmXu+WIl+ihqCAqL31cclxuICAgICAgICA8TmV3c0xpc3QgbmV3cz17bmV3c30gLz5cclxuICAgICAgPC9tYWluPlxyXG4gICAgICA8Rm9vdGVyIC8+XHJcbiAgICA8L2Rpdj5cclxuICApO1xyXG59XHJcblxyXG5leHBvcnQgY29uc3QgZ2V0U3RhdGljUHJvcHM6IEdldFN0YXRpY1Byb3BzID0gYXN5bmMgKCkgPT4ge1xyXG4gIGNvbnN0IG5ld3MgPSBnZXRBbGxOZXdzKCk7XHJcbiAgcmV0dXJuIHsgcHJvcHM6IHsgbmV3cyB9IH07XHJcbn0iXSwibmFtZXMiOlsiTmF2YmFyIiwiTmV3c0xpc3QiLCJGb290ZXIiLCJDYWxlbmRhciIsIk5ld3NwYXBlciIsIlRyZW5kaW5nVXAiLCJOZXdzUGFnZSIsIm5ld3MiLCJ0b3RhbE5ld3MiLCJsZW5ndGgiLCJyZWNlbnROZXdzIiwic2xpY2UiLCJjYXRlZ29yaWVzIiwiQXJyYXkiLCJmcm9tIiwiU2V0IiwiZmxhdE1hcCIsIml0ZW0iLCJ0YWdzIiwiZGl2IiwiY2xhc3NOYW1lIiwibWFpbiIsInNlY3Rpb24iLCJoMSIsInAiLCJzcGFuIiwiaDIiLCJtYXAiLCJpbmRleCIsInRpbWUiLCJkYXRlIiwiaDMiLCJ0aXRsZSIsInN1bW1hcnkiLCJ0YWciLCJzbHVnIl0sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(pages-dir-browser)/./pages/news.tsx\n")); - -/***/ }), - -/***/ "(pages-dir-browser)/__barrel_optimize__?names=ArrowRight,Calendar,Clock,Filter,Search,Tag!=!./node_modules/lucide-react/dist/esm/lucide-react.js": -/*!************************************************************************************************************************************!*\ - !*** __barrel_optimize__?names=ArrowRight,Calendar,Clock,Filter,Search,Tag!=!./node_modules/lucide-react/dist/esm/lucide-react.js ***! - \************************************************************************************************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ ArrowRight: () => (/* reexport safe */ _icons_arrow_right_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"]),\n/* harmony export */ Calendar: () => (/* reexport safe */ _icons_calendar_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"]),\n/* harmony export */ Clock: () => (/* reexport safe */ _icons_clock_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"]),\n/* harmony export */ Filter: () => (/* reexport safe */ _icons_funnel_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"]),\n/* harmony export */ Search: () => (/* reexport safe */ _icons_search_js__WEBPACK_IMPORTED_MODULE_4__[\"default\"]),\n/* harmony export */ Tag: () => (/* reexport safe */ _icons_tag_js__WEBPACK_IMPORTED_MODULE_5__[\"default\"])\n/* harmony export */ });\n/* harmony import */ var _icons_arrow_right_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./icons/arrow-right.js */ \"(pages-dir-browser)/./node_modules/lucide-react/dist/esm/icons/arrow-right.js\");\n/* harmony import */ var _icons_calendar_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./icons/calendar.js */ \"(pages-dir-browser)/./node_modules/lucide-react/dist/esm/icons/calendar.js\");\n/* harmony import */ var _icons_clock_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./icons/clock.js */ \"(pages-dir-browser)/./node_modules/lucide-react/dist/esm/icons/clock.js\");\n/* harmony import */ var _icons_funnel_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./icons/funnel.js */ \"(pages-dir-browser)/./node_modules/lucide-react/dist/esm/icons/funnel.js\");\n/* harmony import */ var _icons_search_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./icons/search.js */ \"(pages-dir-browser)/./node_modules/lucide-react/dist/esm/icons/search.js\");\n/* harmony import */ var _icons_tag_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./icons/tag.js */ \"(pages-dir-browser)/./node_modules/lucide-react/dist/esm/icons/tag.js\");\n\n\n\n\n\n\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1icm93c2VyKS9fX2JhcnJlbF9vcHRpbWl6ZV9fP25hbWVzPUFycm93UmlnaHQsQ2FsZW5kYXIsQ2xvY2ssRmlsdGVyLFNlYXJjaCxUYWchPSEuL25vZGVfbW9kdWxlcy9sdWNpZGUtcmVhY3QvZGlzdC9lc20vbHVjaWRlLXJlYWN0LmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7QUFDOEQ7QUFDTDtBQUNOO0FBQ0U7QUFDQSIsInNvdXJjZXMiOlsiRDpcXGRvbmd5dW4tcHJvamVjdHNcXHR3b1xcbm9kZV9tb2R1bGVzXFxsdWNpZGUtcmVhY3RcXGRpc3RcXGVzbVxcbHVjaWRlLXJlYWN0LmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlxuZXhwb3J0IHsgZGVmYXVsdCBhcyBBcnJvd1JpZ2h0IH0gZnJvbSBcIi4vaWNvbnMvYXJyb3ctcmlnaHQuanNcIlxuZXhwb3J0IHsgZGVmYXVsdCBhcyBDYWxlbmRhciB9IGZyb20gXCIuL2ljb25zL2NhbGVuZGFyLmpzXCJcbmV4cG9ydCB7IGRlZmF1bHQgYXMgQ2xvY2sgfSBmcm9tIFwiLi9pY29ucy9jbG9jay5qc1wiXG5leHBvcnQgeyBkZWZhdWx0IGFzIEZpbHRlciB9IGZyb20gXCIuL2ljb25zL2Z1bm5lbC5qc1wiXG5leHBvcnQgeyBkZWZhdWx0IGFzIFNlYXJjaCB9IGZyb20gXCIuL2ljb25zL3NlYXJjaC5qc1wiXG5leHBvcnQgeyBkZWZhdWx0IGFzIFRhZyB9IGZyb20gXCIuL2ljb25zL3RhZy5qc1wiIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(pages-dir-browser)/__barrel_optimize__?names=ArrowRight,Calendar,Clock,Filter,Search,Tag!=!./node_modules/lucide-react/dist/esm/lucide-react.js\n")); - -/***/ }), - -/***/ "(pages-dir-browser)/__barrel_optimize__?names=Calendar,Newspaper,TrendingUp!=!./node_modules/lucide-react/dist/esm/lucide-react.js": -/*!**********************************************************************************************************************!*\ - !*** __barrel_optimize__?names=Calendar,Newspaper,TrendingUp!=!./node_modules/lucide-react/dist/esm/lucide-react.js ***! - \**********************************************************************************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ Calendar: () => (/* reexport safe */ _icons_calendar_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"]),\n/* harmony export */ Newspaper: () => (/* reexport safe */ _icons_newspaper_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"]),\n/* harmony export */ TrendingUp: () => (/* reexport safe */ _icons_trending_up_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])\n/* harmony export */ });\n/* harmony import */ var _icons_calendar_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./icons/calendar.js */ \"(pages-dir-browser)/./node_modules/lucide-react/dist/esm/icons/calendar.js\");\n/* harmony import */ var _icons_newspaper_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./icons/newspaper.js */ \"(pages-dir-browser)/./node_modules/lucide-react/dist/esm/icons/newspaper.js\");\n/* harmony import */ var _icons_trending_up_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./icons/trending-up.js */ \"(pages-dir-browser)/./node_modules/lucide-react/dist/esm/icons/trending-up.js\");\n\n\n\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1icm93c2VyKS9fX2JhcnJlbF9vcHRpbWl6ZV9fP25hbWVzPUNhbGVuZGFyLE5ld3NwYXBlcixUcmVuZGluZ1VwIT0hLi9ub2RlX21vZHVsZXMvbHVjaWRlLXJlYWN0L2Rpc3QvZXNtL2x1Y2lkZS1yZWFjdC5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7O0FBQ3lEO0FBQ0UiLCJzb3VyY2VzIjpbIkQ6XFxkb25neXVuLXByb2plY3RzXFx0d29cXG5vZGVfbW9kdWxlc1xcbHVjaWRlLXJlYWN0XFxkaXN0XFxlc21cXGx1Y2lkZS1yZWFjdC5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcbmV4cG9ydCB7IGRlZmF1bHQgYXMgQ2FsZW5kYXIgfSBmcm9tIFwiLi9pY29ucy9jYWxlbmRhci5qc1wiXG5leHBvcnQgeyBkZWZhdWx0IGFzIE5ld3NwYXBlciB9IGZyb20gXCIuL2ljb25zL25ld3NwYXBlci5qc1wiXG5leHBvcnQgeyBkZWZhdWx0IGFzIFRyZW5kaW5nVXAgfSBmcm9tIFwiLi9pY29ucy90cmVuZGluZy11cC5qc1wiIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(pages-dir-browser)/__barrel_optimize__?names=Calendar,Newspaper,TrendingUp!=!./node_modules/lucide-react/dist/esm/lucide-react.js\n")); - -/***/ }), - -/***/ "(pages-dir-browser)/__barrel_optimize__?names=Mail,MessageCircle,Phone!=!./node_modules/lucide-react/dist/esm/lucide-react.js": -/*!*****************************************************************************************************************!*\ - !*** __barrel_optimize__?names=Mail,MessageCircle,Phone!=!./node_modules/lucide-react/dist/esm/lucide-react.js ***! - \*****************************************************************************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ Mail: () => (/* reexport safe */ _icons_mail_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"]),\n/* harmony export */ MessageCircle: () => (/* reexport safe */ _icons_message_circle_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"]),\n/* harmony export */ Phone: () => (/* reexport safe */ _icons_phone_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])\n/* harmony export */ });\n/* harmony import */ var _icons_mail_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./icons/mail.js */ \"(pages-dir-browser)/./node_modules/lucide-react/dist/esm/icons/mail.js\");\n/* harmony import */ var _icons_message_circle_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./icons/message-circle.js */ \"(pages-dir-browser)/./node_modules/lucide-react/dist/esm/icons/message-circle.js\");\n/* harmony import */ var _icons_phone_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./icons/phone.js */ \"(pages-dir-browser)/./node_modules/lucide-react/dist/esm/icons/phone.js\");\n\n\n\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1icm93c2VyKS9fX2JhcnJlbF9vcHRpbWl6ZV9fP25hbWVzPU1haWwsTWVzc2FnZUNpcmNsZSxQaG9uZSE9IS4vbm9kZV9tb2R1bGVzL2x1Y2lkZS1yZWFjdC9kaXN0L2VzbS9sdWNpZGUtcmVhY3QuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7OztBQUNpRDtBQUNtQiIsInNvdXJjZXMiOlsiRDpcXGRvbmd5dW4tcHJvamVjdHNcXHR3b1xcbm9kZV9tb2R1bGVzXFxsdWNpZGUtcmVhY3RcXGRpc3RcXGVzbVxcbHVjaWRlLXJlYWN0LmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlxuZXhwb3J0IHsgZGVmYXVsdCBhcyBNYWlsIH0gZnJvbSBcIi4vaWNvbnMvbWFpbC5qc1wiXG5leHBvcnQgeyBkZWZhdWx0IGFzIE1lc3NhZ2VDaXJjbGUgfSBmcm9tIFwiLi9pY29ucy9tZXNzYWdlLWNpcmNsZS5qc1wiXG5leHBvcnQgeyBkZWZhdWx0IGFzIFBob25lIH0gZnJvbSBcIi4vaWNvbnMvcGhvbmUuanNcIiJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(pages-dir-browser)/__barrel_optimize__?names=Mail,MessageCircle,Phone!=!./node_modules/lucide-react/dist/esm/lucide-react.js\n")); - -/***/ }), - -/***/ "(pages-dir-browser)/__barrel_optimize__?names=Menu!=!./node_modules/lucide-react/dist/esm/lucide-react.js": -/*!*********************************************************************************************!*\ - !*** __barrel_optimize__?names=Menu!=!./node_modules/lucide-react/dist/esm/lucide-react.js ***! - \*********************************************************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ Menu: () => (/* reexport safe */ _icons_menu_js__WEBPACK_IMPORTED_MODULE_0__["default"]) -/* harmony export */ }); -/* harmony import */ var _icons_menu_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./icons/menu.js */ "(pages-dir-browser)/./node_modules/lucide-react/dist/esm/icons/menu.js"); - - - -/***/ }) - -}, -/******/ __webpack_require__ => { // webpackRuntimeModules -/******/ var __webpack_exec__ = (moduleId) => (__webpack_require__(__webpack_require__.s = moduleId)) -/******/ __webpack_require__.O(0, ["pages/_app","main"], () => (__webpack_exec__("(pages-dir-browser)/./node_modules/next/dist/build/webpack/loaders/next-client-pages-loader.js?absolutePagePath=D%3A%5Cdongyun-projects%5Ctwo%5Cpages%5Cnews.tsx&page=%2Fnews!"))); -/******/ var __webpack_exports__ = __webpack_require__.O(); -/******/ _N_E = __webpack_exports__; -/******/ } -]); \ No newline at end of file diff --git a/build/static/chunks/polyfills.js b/build/static/chunks/polyfills.js deleted file mode 100644 index ab422b9..0000000 --- a/build/static/chunks/polyfills.js +++ /dev/null @@ -1 +0,0 @@ -!function(){var t="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{};function e(t){var e={exports:{}};return t(e,e.exports),e.exports}var r,n,o=function(t){return t&&t.Math===Math&&t},i=o("object"==typeof globalThis&&globalThis)||o("object"==typeof window&&window)||o("object"==typeof self&&self)||o("object"==typeof t&&t)||o("object"==typeof t&&t)||function(){return this}()||Function("return this")(),a=function(t){try{return!!t()}catch(t){return!0}},u=!a(function(){return 7!==Object.defineProperty({},1,{get:function(){return 7}})[1]}),s=!a(function(){var t=function(){}.bind();return"function"!=typeof t||t.hasOwnProperty("prototype")}),c=Function.prototype.call,f=s?c.bind(c):function(){return c.apply(c,arguments)},l={}.propertyIsEnumerable,h=Object.getOwnPropertyDescriptor,p=h&&!l.call({1:2},1)?function(t){var e=h(this,t);return!!e&&e.enumerable}:l,v={f:p},d=function(t,e){return{enumerable:!(1&t),configurable:!(2&t),writable:!(4&t),value:e}},g=Function.prototype,y=g.call,m=s&&g.bind.bind(y,y),b=s?m:function(t){return function(){return y.apply(t,arguments)}},w=b({}.toString),S=b("".slice),E=function(t){return S(w(t),8,-1)},O=Object,x=b("".split),R=a(function(){return!O("z").propertyIsEnumerable(0)})?function(t){return"String"===E(t)?x(t,""):O(t)}:O,P=function(t){return null==t},A=TypeError,j=function(t){if(P(t))throw new A("Can't call method on "+t);return t},k=function(t){return R(j(t))},I="object"==typeof document&&document.all,T=void 0===I&&void 0!==I?function(t){return"function"==typeof t||t===I}:function(t){return"function"==typeof t},M=function(t){return"object"==typeof t?null!==t:T(t)},L=function(t,e){return arguments.length<2?T(r=i[t])?r:void 0:i[t]&&i[t][e];var r},U=b({}.isPrototypeOf),N=i.navigator,C=N&&N.userAgent,_=C?String(C):"",F=i.process,B=i.Deno,D=F&&F.versions||B&&B.version,z=D&&D.v8;z&&(n=(r=z.split("."))[0]>0&&r[0]<4?1:+(r[0]+r[1])),!n&&_&&(!(r=_.match(/Edge\/(\d+)/))||r[1]>=74)&&(r=_.match(/Chrome\/(\d+)/))&&(n=+r[1]);var W=n,q=i.String,H=!!Object.getOwnPropertySymbols&&!a(function(){var t=Symbol("symbol detection");return!q(t)||!(Object(t)instanceof Symbol)||!Symbol.sham&&W&&W<41}),$=H&&!Symbol.sham&&"symbol"==typeof Symbol.iterator,K=Object,G=$?function(t){return"symbol"==typeof t}:function(t){var e=L("Symbol");return T(e)&&U(e.prototype,K(t))},V=String,Y=function(t){try{return V(t)}catch(t){return"Object"}},X=TypeError,J=function(t){if(T(t))return t;throw new X(Y(t)+" is not a function")},Q=function(t,e){var r=t[e];return P(r)?void 0:J(r)},Z=TypeError,tt=Object.defineProperty,et=function(t,e){try{tt(i,t,{value:e,configurable:!0,writable:!0})}catch(r){i[t]=e}return e},rt=e(function(t){var e="__core-js_shared__",r=t.exports=i[e]||et(e,{});(r.versions||(r.versions=[])).push({version:"3.38.1",mode:"global",copyright:"© 2014-2024 Denis Pushkarev (zloirock.ru)",license:"https://github.com/zloirock/core-js/blob/v3.38.1/LICENSE",source:"https://github.com/zloirock/core-js"})}),nt=function(t,e){return rt[t]||(rt[t]=e||{})},ot=Object,it=function(t){return ot(j(t))},at=b({}.hasOwnProperty),ut=Object.hasOwn||function(t,e){return at(it(t),e)},st=0,ct=Math.random(),ft=b(1..toString),lt=function(t){return"Symbol("+(void 0===t?"":t)+")_"+ft(++st+ct,36)},ht=i.Symbol,pt=nt("wks"),vt=$?ht.for||ht:ht&&ht.withoutSetter||lt,dt=function(t){return ut(pt,t)||(pt[t]=H&&ut(ht,t)?ht[t]:vt("Symbol."+t)),pt[t]},gt=TypeError,yt=dt("toPrimitive"),mt=function(t,e){if(!M(t)||G(t))return t;var r,n=Q(t,yt);if(n){if(void 0===e&&(e="default"),r=f(n,t,e),!M(r)||G(r))return r;throw new gt("Can't convert object to primitive value")}return void 0===e&&(e="number"),function(t,e){var r,n;if("string"===e&&T(r=t.toString)&&!M(n=f(r,t)))return n;if(T(r=t.valueOf)&&!M(n=f(r,t)))return n;if("string"!==e&&T(r=t.toString)&&!M(n=f(r,t)))return n;throw new Z("Can't convert object to primitive value")}(t,e)},bt=function(t){var e=mt(t,"string");return G(e)?e:e+""},wt=i.document,St=M(wt)&&M(wt.createElement),Et=function(t){return St?wt.createElement(t):{}},Ot=!u&&!a(function(){return 7!==Object.defineProperty(Et("div"),"a",{get:function(){return 7}}).a}),xt=Object.getOwnPropertyDescriptor,Rt={f:u?xt:function(t,e){if(t=k(t),e=bt(e),Ot)try{return xt(t,e)}catch(t){}if(ut(t,e))return d(!f(v.f,t,e),t[e])}},Pt=u&&a(function(){return 42!==Object.defineProperty(function(){},"prototype",{value:42,writable:!1}).prototype}),At=String,jt=TypeError,kt=function(t){if(M(t))return t;throw new jt(At(t)+" is not an object")},It=TypeError,Tt=Object.defineProperty,Mt=Object.getOwnPropertyDescriptor,Lt="enumerable",Ut="configurable",Nt="writable",Ct={f:u?Pt?function(t,e,r){if(kt(t),e=bt(e),kt(r),"function"==typeof t&&"prototype"===e&&"value"in r&&Nt in r&&!r[Nt]){var n=Mt(t,e);n&&n[Nt]&&(t[e]=r.value,r={configurable:Ut in r?r[Ut]:n[Ut],enumerable:Lt in r?r[Lt]:n[Lt],writable:!1})}return Tt(t,e,r)}:Tt:function(t,e,r){if(kt(t),e=bt(e),kt(r),Ot)try{return Tt(t,e,r)}catch(t){}if("get"in r||"set"in r)throw new It("Accessors not supported");return"value"in r&&(t[e]=r.value),t}},_t=u?function(t,e,r){return Ct.f(t,e,d(1,r))}:function(t,e,r){return t[e]=r,t},Ft=Function.prototype,Bt=u&&Object.getOwnPropertyDescriptor,Dt=ut(Ft,"name"),zt={EXISTS:Dt,PROPER:Dt&&"something"===function(){}.name,CONFIGURABLE:Dt&&(!u||u&&Bt(Ft,"name").configurable)},Wt=b(Function.toString);T(rt.inspectSource)||(rt.inspectSource=function(t){return Wt(t)});var qt,Ht,$t,Kt=rt.inspectSource,Gt=i.WeakMap,Vt=T(Gt)&&/native code/.test(String(Gt)),Yt=nt("keys"),Xt=function(t){return Yt[t]||(Yt[t]=lt(t))},Jt={},Qt="Object already initialized",Zt=i.TypeError;if(Vt||rt.state){var te=rt.state||(rt.state=new(0,i.WeakMap));te.get=te.get,te.has=te.has,te.set=te.set,qt=function(t,e){if(te.has(t))throw new Zt(Qt);return e.facade=t,te.set(t,e),e},Ht=function(t){return te.get(t)||{}},$t=function(t){return te.has(t)}}else{var ee=Xt("state");Jt[ee]=!0,qt=function(t,e){if(ut(t,ee))throw new Zt(Qt);return e.facade=t,_t(t,ee,e),e},Ht=function(t){return ut(t,ee)?t[ee]:{}},$t=function(t){return ut(t,ee)}}var re,ne={set:qt,get:Ht,has:$t,enforce:function(t){return $t(t)?Ht(t):qt(t,{})},getterFor:function(t){return function(e){var r;if(!M(e)||(r=Ht(e)).type!==t)throw new Zt("Incompatible receiver, "+t+" required");return r}}},oe=e(function(t){var e=zt.CONFIGURABLE,r=ne.enforce,n=ne.get,o=String,i=Object.defineProperty,s=b("".slice),c=b("".replace),f=b([].join),l=u&&!a(function(){return 8!==i(function(){},"length",{value:8}).length}),h=String(String).split("String"),p=t.exports=function(t,n,a){"Symbol("===s(o(n),0,7)&&(n="["+c(o(n),/^Symbol\(([^)]*)\).*$/,"$1")+"]"),a&&a.getter&&(n="get "+n),a&&a.setter&&(n="set "+n),(!ut(t,"name")||e&&t.name!==n)&&(u?i(t,"name",{value:n,configurable:!0}):t.name=n),l&&a&&ut(a,"arity")&&t.length!==a.arity&&i(t,"length",{value:a.arity});try{a&&ut(a,"constructor")&&a.constructor?u&&i(t,"prototype",{writable:!1}):t.prototype&&(t.prototype=void 0)}catch(t){}var p=r(t);return ut(p,"source")||(p.source=f(h,"string"==typeof n?n:"")),t};Function.prototype.toString=p(function(){return T(this)&&n(this).source||Kt(this)},"toString")}),ie=function(t,e,r,n){n||(n={});var o=n.enumerable,i=void 0!==n.name?n.name:e;if(T(r)&&oe(r,i,n),n.global)o?t[e]=r:et(e,r);else{try{n.unsafe?t[e]&&(o=!0):delete t[e]}catch(t){}o?t[e]=r:Ct.f(t,e,{value:r,enumerable:!1,configurable:!n.nonConfigurable,writable:!n.nonWritable})}return t},ae=Math.ceil,ue=Math.floor,se=Math.trunc||function(t){var e=+t;return(e>0?ue:ae)(e)},ce=function(t){var e=+t;return e!=e||0===e?0:se(e)},fe=Math.max,le=Math.min,he=function(t,e){var r=ce(t);return r<0?fe(r+e,0):le(r,e)},pe=Math.min,ve=function(t){var e=ce(t);return e>0?pe(e,9007199254740991):0},de=function(t){return ve(t.length)},ge=function(t){return function(e,r,n){var o=k(e),i=de(o);if(0===i)return!t&&-1;var a,u=he(n,i);if(t&&r!=r){for(;i>u;)if((a=o[u++])!=a)return!0}else for(;i>u;u++)if((t||u in o)&&o[u]===r)return t||u||0;return!t&&-1}},ye={includes:ge(!0),indexOf:ge(!1)},me=ye.indexOf,be=b([].push),we=function(t,e){var r,n=k(t),o=0,i=[];for(r in n)!ut(Jt,r)&&ut(n,r)&&be(i,r);for(;e.length>o;)ut(n,r=e[o++])&&(~me(i,r)||be(i,r));return i},Se=["constructor","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","toLocaleString","toString","valueOf"],Ee=Se.concat("length","prototype"),Oe={f:Object.getOwnPropertyNames||function(t){return we(t,Ee)}},xe={f:Object.getOwnPropertySymbols},Re=b([].concat),Pe=L("Reflect","ownKeys")||function(t){var e=Oe.f(kt(t)),r=xe.f;return r?Re(e,r(t)):e},Ae=function(t,e,r){for(var n=Pe(e),o=Ct.f,i=Rt.f,a=0;a<n.length;a++){var u=n[a];ut(t,u)||r&&ut(r,u)||o(t,u,i(e,u))}},je=/#|\.prototype\./,ke=function(t,e){var r=Te[Ie(t)];return r===Le||r!==Me&&(T(e)?a(e):!!e)},Ie=ke.normalize=function(t){return String(t).replace(je,".").toLowerCase()},Te=ke.data={},Me=ke.NATIVE="N",Le=ke.POLYFILL="P",Ue=ke,Ne=Rt.f,Ce=function(t,e){var r,n,o,a,u,s=t.target,c=t.global,f=t.stat;if(r=c?i:f?i[s]||et(s,{}):i[s]&&i[s].prototype)for(n in e){if(a=e[n],o=t.dontCallGetSet?(u=Ne(r,n))&&u.value:r[n],!Ue(c?n:s+(f?".":"#")+n,t.forced)&&void 0!==o){if(typeof a==typeof o)continue;Ae(a,o)}(t.sham||o&&o.sham)&&_t(a,"sham",!0),ie(r,n,a,t)}},_e=Object.keys||function(t){return we(t,Se)},Fe=u&&!Pt?Object.defineProperties:function(t,e){kt(t);for(var r,n=k(e),o=_e(e),i=o.length,a=0;i>a;)Ct.f(t,r=o[a++],n[r]);return t},Be={f:Fe},De=L("document","documentElement"),ze="prototype",We="script",qe=Xt("IE_PROTO"),He=function(){},$e=function(t){return"<"+We+">"+t+"</"+We+">"},Ke=function(t){t.write($e("")),t.close();var e=t.parentWindow.Object;return t=null,e},Ge=function(){try{re=new ActiveXObject("htmlfile")}catch(t){}var t,e,r;Ge="undefined"!=typeof document?document.domain&&re?Ke(re):(e=Et("iframe"),r="java"+We+":",e.style.display="none",De.appendChild(e),e.src=String(r),(t=e.contentWindow.document).open(),t.write($e("document.F=Object")),t.close(),t.F):Ke(re);for(var n=Se.length;n--;)delete Ge[ze][Se[n]];return Ge()};Jt[qe]=!0;var Ve=Object.create||function(t,e){var r;return null!==t?(He[ze]=kt(t),r=new He,He[ze]=null,r[qe]=t):r=Ge(),void 0===e?r:Be.f(r,e)},Ye=Ct.f,Xe=dt("unscopables"),Je=Array.prototype;void 0===Je[Xe]&&Ye(Je,Xe,{configurable:!0,value:Ve(null)});var Qe=function(t){Je[Xe][t]=!0};Ce({target:"Array",proto:!0},{at:function(t){var e=it(this),r=de(e),n=ce(t),o=n>=0?n:r+n;return o<0||o>=r?void 0:e[o]}}),Qe("at");var Ze=function(t,e){return b(i[t].prototype[e])},tr=(Ze("Array","at"),TypeError),er=function(t,e){if(!delete t[e])throw new tr("Cannot delete property "+Y(e)+" of "+Y(t))},rr=Math.min,nr=[].copyWithin||function(t,e){var r=it(this),n=de(r),o=he(t,n),i=he(e,n),a=arguments.length>2?arguments[2]:void 0,u=rr((void 0===a?n:he(a,n))-i,n-o),s=1;for(i<o&&o<i+u&&(s=-1,i+=u-1,o+=u-1);u-- >0;)i in r?r[o]=r[i]:er(r,o),o+=s,i+=s;return r};Ce({target:"Array",proto:!0},{copyWithin:nr}),Qe("copyWithin"),Ze("Array","copyWithin"),Ce({target:"Array",proto:!0},{fill:function(t){for(var e=it(this),r=de(e),n=arguments.length,o=he(n>1?arguments[1]:void 0,r),i=n>2?arguments[2]:void 0,a=void 0===i?r:he(i,r);a>o;)e[o++]=t;return e}}),Qe("fill"),Ze("Array","fill");var or=function(t){if("Function"===E(t))return b(t)},ir=or(or.bind),ar=function(t,e){return J(t),void 0===e?t:s?ir(t,e):function(){return t.apply(e,arguments)}},ur=Array.isArray||function(t){return"Array"===E(t)},sr={};sr[dt("toStringTag")]="z";var cr="[object z]"===String(sr),fr=dt("toStringTag"),lr=Object,hr="Arguments"===E(function(){return arguments}()),pr=cr?E:function(t){var e,r,n;return void 0===t?"Undefined":null===t?"Null":"string"==typeof(r=function(t,e){try{return t[e]}catch(t){}}(e=lr(t),fr))?r:hr?E(e):"Object"===(n=E(e))&&T(e.callee)?"Arguments":n},vr=function(){},dr=L("Reflect","construct"),gr=/^\s*(?:class|function)\b/,yr=b(gr.exec),mr=!gr.test(vr),br=function(t){if(!T(t))return!1;try{return dr(vr,[],t),!0}catch(t){return!1}},wr=function(t){if(!T(t))return!1;switch(pr(t)){case"AsyncFunction":case"GeneratorFunction":case"AsyncGeneratorFunction":return!1}try{return mr||!!yr(gr,Kt(t))}catch(t){return!0}};wr.sham=!0;var Sr=!dr||a(function(){var t;return br(br.call)||!br(Object)||!br(function(){t=!0})||t})?wr:br,Er=dt("species"),Or=Array,xr=function(t,e){return new(function(t){var e;return ur(t)&&(Sr(e=t.constructor)&&(e===Or||ur(e.prototype))||M(e)&&null===(e=e[Er]))&&(e=void 0),void 0===e?Or:e}(t))(0===e?0:e)},Rr=b([].push),Pr=function(t){var e=1===t,r=2===t,n=3===t,o=4===t,i=6===t,a=7===t,u=5===t||i;return function(s,c,f,l){for(var h,p,v=it(s),d=R(v),g=de(d),y=ar(c,f),m=0,b=l||xr,w=e?b(s,g):r||a?b(s,0):void 0;g>m;m++)if((u||m in d)&&(p=y(h=d[m],m,v),t))if(e)w[m]=p;else if(p)switch(t){case 3:return!0;case 5:return h;case 6:return m;case 2:Rr(w,h)}else switch(t){case 4:return!1;case 7:Rr(w,h)}return i?-1:n||o?o:w}},Ar={forEach:Pr(0),map:Pr(1),filter:Pr(2),some:Pr(3),every:Pr(4),find:Pr(5),findIndex:Pr(6),filterReject:Pr(7)},jr=Ar.find,kr="find",Ir=!0;kr in[]&&Array(1)[kr](function(){Ir=!1}),Ce({target:"Array",proto:!0,forced:Ir},{find:function(t){return jr(this,t,arguments.length>1?arguments[1]:void 0)}}),Qe(kr),Ze("Array","find");var Tr=Ar.findIndex,Mr="findIndex",Lr=!0;Mr in[]&&Array(1)[Mr](function(){Lr=!1}),Ce({target:"Array",proto:!0,forced:Lr},{findIndex:function(t){return Tr(this,t,arguments.length>1?arguments[1]:void 0)}}),Qe(Mr),Ze("Array","findIndex");var Ur=TypeError,Nr=function(t){if(t>9007199254740991)throw Ur("Maximum allowed index exceeded");return t},Cr=function(t,e,r,n,o,i,a,u){for(var s,c,f=o,l=0,h=!!a&&ar(a,u);l<n;)l in r&&(s=h?h(r[l],l,e):r[l],i>0&&ur(s)?(c=de(s),f=Cr(t,e,s,c,f,i-1)-1):(Nr(f+1),t[f]=s),f++),l++;return f},_r=Cr;Ce({target:"Array",proto:!0},{flatMap:function(t){var e,r=it(this),n=de(r);return J(t),(e=xr(r,0)).length=_r(e,r,r,n,0,1,t,arguments.length>1?arguments[1]:void 0),e}}),Qe("flatMap"),Ze("Array","flatMap"),Ce({target:"Array",proto:!0},{flat:function(){var t=arguments.length?arguments[0]:void 0,e=it(this),r=de(e),n=xr(e,0);return n.length=_r(n,e,e,r,0,void 0===t?1:ce(t)),n}}),Qe("flat"),Ze("Array","flat");var Fr,Br,Dr,zr=String,Wr=function(t){if("Symbol"===pr(t))throw new TypeError("Cannot convert a Symbol value to a string");return zr(t)},qr=b("".charAt),Hr=b("".charCodeAt),$r=b("".slice),Kr=function(t){return function(e,r){var n,o,i=Wr(j(e)),a=ce(r),u=i.length;return a<0||a>=u?t?"":void 0:(n=Hr(i,a))<55296||n>56319||a+1===u||(o=Hr(i,a+1))<56320||o>57343?t?qr(i,a):n:t?$r(i,a,a+2):o-56320+(n-55296<<10)+65536}},Gr={codeAt:Kr(!1),charAt:Kr(!0)},Vr=!a(function(){function t(){}return t.prototype.constructor=null,Object.getPrototypeOf(new t)!==t.prototype}),Yr=Xt("IE_PROTO"),Xr=Object,Jr=Xr.prototype,Qr=Vr?Xr.getPrototypeOf:function(t){var e=it(t);if(ut(e,Yr))return e[Yr];var r=e.constructor;return T(r)&&e instanceof r?r.prototype:e instanceof Xr?Jr:null},Zr=dt("iterator"),tn=!1;[].keys&&("next"in(Dr=[].keys())?(Br=Qr(Qr(Dr)))!==Object.prototype&&(Fr=Br):tn=!0);var en=!M(Fr)||a(function(){var t={};return Fr[Zr].call(t)!==t});en&&(Fr={}),T(Fr[Zr])||ie(Fr,Zr,function(){return this});var rn={IteratorPrototype:Fr,BUGGY_SAFARI_ITERATORS:tn},nn=Ct.f,on=dt("toStringTag"),an=function(t,e,r){t&&!r&&(t=t.prototype),t&&!ut(t,on)&&nn(t,on,{configurable:!0,value:e})},un={},sn=rn.IteratorPrototype,cn=function(){return this},fn=function(t,e,r,n){var o=e+" Iterator";return t.prototype=Ve(sn,{next:d(+!n,r)}),an(t,o,!1),un[o]=cn,t},ln=function(t,e,r){try{return b(J(Object.getOwnPropertyDescriptor(t,e)[r]))}catch(t){}},hn=String,pn=TypeError,vn=function(t){if(function(t){return M(t)||null===t}(t))return t;throw new pn("Can't set "+hn(t)+" as a prototype")},dn=Object.setPrototypeOf||("__proto__"in{}?function(){var t,e=!1,r={};try{(t=ln(Object.prototype,"__proto__","set"))(r,[]),e=r instanceof Array}catch(t){}return function(r,n){return j(r),vn(n),M(r)?(e?t(r,n):r.__proto__=n,r):r}}():void 0),gn=zt.PROPER,yn=zt.CONFIGURABLE,mn=rn.IteratorPrototype,bn=rn.BUGGY_SAFARI_ITERATORS,wn=dt("iterator"),Sn="keys",En="values",On="entries",xn=function(){return this},Rn=function(t,e,r,n,o,i,a){fn(r,e,n);var u,s,c,l=function(t){if(t===o&&g)return g;if(!bn&&t&&t in v)return v[t];switch(t){case Sn:case En:case On:return function(){return new r(this,t)}}return function(){return new r(this)}},h=e+" Iterator",p=!1,v=t.prototype,d=v[wn]||v["@@iterator"]||o&&v[o],g=!bn&&d||l(o),y="Array"===e&&v.entries||d;if(y&&(u=Qr(y.call(new t)))!==Object.prototype&&u.next&&(Qr(u)!==mn&&(dn?dn(u,mn):T(u[wn])||ie(u,wn,xn)),an(u,h,!0)),gn&&o===En&&d&&d.name!==En&&(yn?_t(v,"name",En):(p=!0,g=function(){return f(d,this)})),o)if(s={values:l(En),keys:i?g:l(Sn),entries:l(On)},a)for(c in s)(bn||p||!(c in v))&&ie(v,c,s[c]);else Ce({target:e,proto:!0,forced:bn||p},s);return v[wn]!==g&&ie(v,wn,g,{name:o}),un[e]=g,s},Pn=function(t,e){return{value:t,done:e}},An=Gr.charAt,jn="String Iterator",kn=ne.set,In=ne.getterFor(jn);Rn(String,"String",function(t){kn(this,{type:jn,string:Wr(t),index:0})},function(){var t,e=In(this),r=e.string,n=e.index;return n>=r.length?Pn(void 0,!0):(t=An(r,n),e.index+=t.length,Pn(t,!1))});var Tn=function(t,e,r){var n,o;kt(t);try{if(!(n=Q(t,"return"))){if("throw"===e)throw r;return r}n=f(n,t)}catch(t){o=!0,n=t}if("throw"===e)throw r;if(o)throw n;return kt(n),r},Mn=function(t,e,r,n){try{return n?e(kt(r)[0],r[1]):e(r)}catch(e){Tn(t,"throw",e)}},Ln=dt("iterator"),Un=Array.prototype,Nn=function(t){return void 0!==t&&(un.Array===t||Un[Ln]===t)},Cn=function(t,e,r){u?Ct.f(t,e,d(0,r)):t[e]=r},_n=dt("iterator"),Fn=function(t){if(!P(t))return Q(t,_n)||Q(t,"@@iterator")||un[pr(t)]},Bn=TypeError,Dn=function(t,e){var r=arguments.length<2?Fn(t):e;if(J(r))return kt(f(r,t));throw new Bn(Y(t)+" is not iterable")},zn=Array,Wn=function(t){var e=it(t),r=Sr(this),n=arguments.length,o=n>1?arguments[1]:void 0,i=void 0!==o;i&&(o=ar(o,n>2?arguments[2]:void 0));var a,u,s,c,l,h,p=Fn(e),v=0;if(!p||this===zn&&Nn(p))for(a=de(e),u=r?new this(a):zn(a);a>v;v++)h=i?o(e[v],v):e[v],Cn(u,v,h);else for(u=r?new this:[],l=(c=Dn(e,p)).next;!(s=f(l,c)).done;v++)h=i?Mn(c,o,[s.value,v],!0):s.value,Cn(u,v,h);return u.length=v,u},qn=dt("iterator"),Hn=!1;try{var $n=0,Kn={next:function(){return{done:!!$n++}},return:function(){Hn=!0}};Kn[qn]=function(){return this},Array.from(Kn,function(){throw 2})}catch(t){}var Gn=function(t,e){try{if(!e&&!Hn)return!1}catch(t){return!1}var r=!1;try{var n={};n[qn]=function(){return{next:function(){return{done:r=!0}}}},t(n)}catch(t){}return r},Vn=!Gn(function(t){Array.from(t)});Ce({target:"Array",stat:!0,forced:Vn},{from:Wn});var Yn=i,Xn=ye.includes,Jn=a(function(){return!Array(1).includes()});Ce({target:"Array",proto:!0,forced:Jn},{includes:function(t){return Xn(this,t,arguments.length>1?arguments[1]:void 0)}}),Qe("includes"),Ze("Array","includes");var Qn=Ct.f,Zn="Array Iterator",to=ne.set,eo=ne.getterFor(Zn),ro=Rn(Array,"Array",function(t,e){to(this,{type:Zn,target:k(t),index:0,kind:e})},function(){var t=eo(this),e=t.target,r=t.index++;if(!e||r>=e.length)return t.target=null,Pn(void 0,!0);switch(t.kind){case"keys":return Pn(r,!1);case"values":return Pn(e[r],!1)}return Pn([r,e[r]],!1)},"values"),no=un.Arguments=un.Array;if(Qe("keys"),Qe("values"),Qe("entries"),u&&"values"!==no.name)try{Qn(no,"name",{value:"values"})}catch(t){}cr||ie(Object.prototype,"toString",cr?{}.toString:function(){return"[object "+pr(this)+"]"},{unsafe:!0}),Ze("Array","values");var oo=Array,io=a(function(){function t(){}return!(oo.of.call(t)instanceof t)});Ce({target:"Array",stat:!0,forced:io},{of:function(){for(var t=0,e=arguments.length,r=new(Sr(this)?this:oo)(e);e>t;)Cn(r,t,arguments[t++]);return r.length=e,r}});var ao=dt("hasInstance"),uo=Function.prototype;ao in uo||Ct.f(uo,ao,{value:oe(function(t){if(!T(this)||!M(t))return!1;var e=this.prototype;return M(e)?U(e,t):t instanceof this},ao)}),dt("hasInstance");var so=function(t,e,r){return r.get&&oe(r.get,e,{getter:!0}),r.set&&oe(r.set,e,{setter:!0}),Ct.f(t,e,r)},co=zt.EXISTS,fo=Function.prototype,lo=b(fo.toString),ho=/function\b(?:\s|\/\*[\S\s]*?\*\/|\/\/[^\n\r]*[\n\r]+)*([^\s(/]*)/,po=b(ho.exec);u&&!co&&so(fo,"name",{configurable:!0,get:function(){try{return po(ho,lo(this))[1]}catch(t){return""}}});var vo=b([].slice),go=Oe.f,yo="object"==typeof window&&window&&Object.getOwnPropertyNames?Object.getOwnPropertyNames(window):[],mo={f:function(t){return yo&&"Window"===E(t)?function(t){try{return go(t)}catch(t){return vo(yo)}}(t):go(k(t))}},bo=a(function(){if("function"==typeof ArrayBuffer){var t=new ArrayBuffer(8);Object.isExtensible(t)&&Object.defineProperty(t,"a",{value:8})}}),wo=Object.isExtensible,So=a(function(){wo(1)})||bo?function(t){return!!M(t)&&(!bo||"ArrayBuffer"!==E(t))&&(!wo||wo(t))}:wo,Eo=!a(function(){return Object.isExtensible(Object.preventExtensions({}))}),Oo=e(function(t){var e=Ct.f,r=!1,n=lt("meta"),o=0,i=function(t){e(t,n,{value:{objectID:"O"+o++,weakData:{}}})},a=t.exports={enable:function(){a.enable=function(){},r=!0;var t=Oe.f,e=b([].splice),o={};o[n]=1,t(o).length&&(Oe.f=function(r){for(var o=t(r),i=0,a=o.length;i<a;i++)if(o[i]===n){e(o,i,1);break}return o},Ce({target:"Object",stat:!0,forced:!0},{getOwnPropertyNames:mo.f}))},fastKey:function(t,e){if(!M(t))return"symbol"==typeof t?t:("string"==typeof t?"S":"P")+t;if(!ut(t,n)){if(!So(t))return"F";if(!e)return"E";i(t)}return t[n].objectID},getWeakData:function(t,e){if(!ut(t,n)){if(!So(t))return!0;if(!e)return!1;i(t)}return t[n].weakData},onFreeze:function(t){return Eo&&r&&So(t)&&!ut(t,n)&&i(t),t}};Jt[n]=!0}),xo=TypeError,Ro=function(t,e){this.stopped=t,this.result=e},Po=Ro.prototype,Ao=function(t,e,r){var n,o,i,a,u,s,c,l=!(!r||!r.AS_ENTRIES),h=!(!r||!r.IS_RECORD),p=!(!r||!r.IS_ITERATOR),v=!(!r||!r.INTERRUPTED),d=ar(e,r&&r.that),g=function(t){return n&&Tn(n,"normal",t),new Ro(!0,t)},y=function(t){return l?(kt(t),v?d(t[0],t[1],g):d(t[0],t[1])):v?d(t,g):d(t)};if(h)n=t.iterator;else if(p)n=t;else{if(!(o=Fn(t)))throw new xo(Y(t)+" is not iterable");if(Nn(o)){for(i=0,a=de(t);a>i;i++)if((u=y(t[i]))&&U(Po,u))return u;return new Ro(!1)}n=Dn(t,o)}for(s=h?t.next:n.next;!(c=f(s,n)).done;){try{u=y(c.value)}catch(t){Tn(n,"throw",t)}if("object"==typeof u&&u&&U(Po,u))return u}return new Ro(!1)},jo=TypeError,ko=function(t,e){if(U(e,t))return t;throw new jo("Incorrect invocation")},Io=function(t,e,r){var n,o;return dn&&T(n=e.constructor)&&n!==r&&M(o=n.prototype)&&o!==r.prototype&&dn(t,o),t},To=function(t,e,r){var n=-1!==t.indexOf("Map"),o=-1!==t.indexOf("Weak"),u=n?"set":"add",s=i[t],c=s&&s.prototype,f=s,l={},h=function(t){var e=b(c[t]);ie(c,t,"add"===t?function(t){return e(this,0===t?0:t),this}:"delete"===t?function(t){return!(o&&!M(t))&&e(this,0===t?0:t)}:"get"===t?function(t){return o&&!M(t)?void 0:e(this,0===t?0:t)}:"has"===t?function(t){return!(o&&!M(t))&&e(this,0===t?0:t)}:function(t,r){return e(this,0===t?0:t,r),this})};if(Ue(t,!T(s)||!(o||c.forEach&&!a(function(){(new s).entries().next()}))))f=r.getConstructor(e,t,n,u),Oo.enable();else if(Ue(t,!0)){var p=new f,v=p[u](o?{}:-0,1)!==p,d=a(function(){p.has(1)}),g=Gn(function(t){new s(t)}),y=!o&&a(function(){for(var t=new s,e=5;e--;)t[u](e,e);return!t.has(-0)});g||((f=e(function(t,e){ko(t,c);var r=Io(new s,t,f);return P(e)||Ao(e,r[u],{that:r,AS_ENTRIES:n}),r})).prototype=c,c.constructor=f),(d||y)&&(h("delete"),h("has"),n&&h("get")),(y||v)&&h(u),o&&c.clear&&delete c.clear}return l[t]=f,Ce({global:!0,constructor:!0,forced:f!==s},l),an(f,t),o||r.setStrong(f,t,n),f},Mo=function(t,e,r){for(var n in e)ie(t,n,e[n],r);return t},Lo=dt("species"),Uo=function(t){var e=L(t);u&&e&&!e[Lo]&&so(e,Lo,{configurable:!0,get:function(){return this}})},No=Oo.fastKey,Co=ne.set,_o=ne.getterFor,Fo={getConstructor:function(t,e,r,n){var o=t(function(t,o){ko(t,i),Co(t,{type:e,index:Ve(null),first:null,last:null,size:0}),u||(t.size=0),P(o)||Ao(o,t[n],{that:t,AS_ENTRIES:r})}),i=o.prototype,a=_o(e),s=function(t,e,r){var n,o,i=a(t),s=c(t,e);return s?s.value=r:(i.last=s={index:o=No(e,!0),key:e,value:r,previous:n=i.last,next:null,removed:!1},i.first||(i.first=s),n&&(n.next=s),u?i.size++:t.size++,"F"!==o&&(i.index[o]=s)),t},c=function(t,e){var r,n=a(t),o=No(e);if("F"!==o)return n.index[o];for(r=n.first;r;r=r.next)if(r.key===e)return r};return Mo(i,{clear:function(){for(var t=a(this),e=t.first;e;)e.removed=!0,e.previous&&(e.previous=e.previous.next=null),e=e.next;t.first=t.last=null,t.index=Ve(null),u?t.size=0:this.size=0},delete:function(t){var e=this,r=a(e),n=c(e,t);if(n){var o=n.next,i=n.previous;delete r.index[n.index],n.removed=!0,i&&(i.next=o),o&&(o.previous=i),r.first===n&&(r.first=o),r.last===n&&(r.last=i),u?r.size--:e.size--}return!!n},forEach:function(t){for(var e,r=a(this),n=ar(t,arguments.length>1?arguments[1]:void 0);e=e?e.next:r.first;)for(n(e.value,e.key,this);e&&e.removed;)e=e.previous},has:function(t){return!!c(this,t)}}),Mo(i,r?{get:function(t){var e=c(this,t);return e&&e.value},set:function(t,e){return s(this,0===t?0:t,e)}}:{add:function(t){return s(this,t=0===t?0:t,t)}}),u&&so(i,"size",{configurable:!0,get:function(){return a(this).size}}),o},setStrong:function(t,e,r){var n=e+" Iterator",o=_o(e),i=_o(n);Rn(t,e,function(t,e){Co(this,{type:n,target:t,state:o(t),kind:e,last:null})},function(){for(var t=i(this),e=t.kind,r=t.last;r&&r.removed;)r=r.previous;return t.target&&(t.last=r=r?r.next:t.state.first)?Pn("keys"===e?r.key:"values"===e?r.value:[r.key,r.value],!1):(t.target=null,Pn(void 0,!0))},r?"entries":"values",!r,!0),Uo(e)}};To("Map",function(t){return function(){return t(this,arguments.length?arguments[0]:void 0)}},Fo);var Bo=Map.prototype,Do={Map:Map,set:b(Bo.set),get:b(Bo.get),has:b(Bo.has),remove:b(Bo.delete),proto:Bo},zo=Do.Map,Wo=Do.has,qo=Do.get,Ho=Do.set,$o=b([].push),Ko=a(function(){return 1!==zo.groupBy("ab",function(t){return t}).get("a").length});Ce({target:"Map",stat:!0,forced:Ko},{groupBy:function(t,e){j(t),J(e);var r=new zo,n=0;return Ao(t,function(t){var o=e(t,n++);Wo(r,o)?$o(qo(r,o),t):Ho(r,o,[t])}),r}});var Go={CSSRuleList:0,CSSStyleDeclaration:0,CSSValueList:0,ClientRectList:0,DOMRectList:0,DOMStringList:0,DOMTokenList:1,DataTransferItemList:0,FileList:0,HTMLAllCollection:0,HTMLCollection:0,HTMLFormElement:0,HTMLSelectElement:0,MediaList:0,MimeTypeArray:0,NamedNodeMap:0,NodeList:1,PaintRequestList:0,Plugin:0,PluginArray:0,SVGLengthList:0,SVGNumberList:0,SVGPathSegList:0,SVGPointList:0,SVGStringList:0,SVGTransformList:0,SourceBufferList:0,StyleSheetList:0,TextTrackCueList:0,TextTrackList:0,TouchList:0},Vo=Et("span").classList,Yo=Vo&&Vo.constructor&&Vo.constructor.prototype,Xo=Yo===Object.prototype?void 0:Yo,Jo=dt("iterator"),Qo=ro.values,Zo=function(t,e){if(t){if(t[Jo]!==Qo)try{_t(t,Jo,Qo)}catch(e){t[Jo]=Qo}if(an(t,e,!0),Go[e])for(var r in ro)if(t[r]!==ro[r])try{_t(t,r,ro[r])}catch(e){t[r]=ro[r]}}};for(var ti in Go)Zo(i[ti]&&i[ti].prototype,ti);Zo(Xo,"DOMTokenList");var ei=function(t,e,r){return function(n){var o=it(n),i=arguments.length,a=i>1?arguments[1]:void 0,u=void 0!==a,s=u?ar(a,i>2?arguments[2]:void 0):void 0,c=new t,f=0;return Ao(o,function(t){var n=u?s(t,f++):t;r?e(c,kt(n)[0],n[1]):e(c,n)}),c}};Ce({target:"Map",stat:!0,forced:!0},{from:ei(Do.Map,Do.set,!0)});var ri=function(t,e,r){return function(){for(var n=new t,o=arguments.length,i=0;i<o;i++){var a=arguments[i];r?e(n,kt(a)[0],a[1]):e(n,a)}return n}};Ce({target:"Map",stat:!0,forced:!0},{of:ri(Do.Map,Do.set,!0)});var ni=Do.has,oi=function(t){return ni(t),t},ii=Do.remove;Ce({target:"Map",proto:!0,real:!0,forced:!0},{deleteAll:function(){for(var t,e=oi(this),r=!0,n=0,o=arguments.length;n<o;n++)t=ii(e,arguments[n]),r=r&&t;return!!r}});var ai=Do.get,ui=Do.has,si=Do.set;Ce({target:"Map",proto:!0,real:!0,forced:!0},{emplace:function(t,e){var r,n,o=oi(this);return ui(o,t)?(r=ai(o,t),"update"in e&&(r=e.update(r,t,o),si(o,t,r)),r):(n=e.insert(t,o),si(o,t,n),n)}});var ci=function(t,e,r){for(var n,o,i=r?t:t.iterator,a=t.next;!(n=f(a,i)).done;)if(void 0!==(o=e(n.value)))return o},fi=Do.Map,li=Do.proto,hi=b(li.forEach),pi=b(li.entries),vi=pi(new fi).next,di=function(t,e,r){return r?ci({iterator:pi(t),next:vi},function(t){return e(t[1],t[0])}):hi(t,e)};Ce({target:"Map",proto:!0,real:!0,forced:!0},{every:function(t){var e=oi(this),r=ar(t,arguments.length>1?arguments[1]:void 0);return!1!==di(e,function(t,n){if(!r(t,n,e))return!1},!0)}});var gi=Do.Map,yi=Do.set;Ce({target:"Map",proto:!0,real:!0,forced:!0},{filter:function(t){var e=oi(this),r=ar(t,arguments.length>1?arguments[1]:void 0),n=new gi;return di(e,function(t,o){r(t,o,e)&&yi(n,o,t)}),n}}),Ce({target:"Map",proto:!0,real:!0,forced:!0},{find:function(t){var e=oi(this),r=ar(t,arguments.length>1?arguments[1]:void 0),n=di(e,function(t,n){if(r(t,n,e))return{value:t}},!0);return n&&n.value}}),Ce({target:"Map",proto:!0,real:!0,forced:!0},{findKey:function(t){var e=oi(this),r=ar(t,arguments.length>1?arguments[1]:void 0),n=di(e,function(t,n){if(r(t,n,e))return{key:n}},!0);return n&&n.key}}),Ce({target:"Map",proto:!0,real:!0,forced:!0},{includes:function(t){return!0===di(oi(this),function(e){if((r=e)===(n=t)||r!=r&&n!=n)return!0;var r,n},!0)}});var mi=Do.Map;Ce({target:"Map",stat:!0,forced:!0},{keyBy:function(t,e){var r=new(T(this)?this:mi);J(e);var n=J(r.set);return Ao(t,function(t){f(n,r,e(t),t)}),r}}),Ce({target:"Map",proto:!0,real:!0,forced:!0},{keyOf:function(t){var e=di(oi(this),function(e,r){if(e===t)return{key:r}},!0);return e&&e.key}});var bi=Do.Map,wi=Do.set;Ce({target:"Map",proto:!0,real:!0,forced:!0},{mapKeys:function(t){var e=oi(this),r=ar(t,arguments.length>1?arguments[1]:void 0),n=new bi;return di(e,function(t,o){wi(n,r(t,o,e),t)}),n}});var Si=Do.Map,Ei=Do.set;Ce({target:"Map",proto:!0,real:!0,forced:!0},{mapValues:function(t){var e=oi(this),r=ar(t,arguments.length>1?arguments[1]:void 0),n=new Si;return di(e,function(t,o){Ei(n,o,r(t,o,e))}),n}});var Oi=Do.set;Ce({target:"Map",proto:!0,real:!0,arity:1,forced:!0},{merge:function(t){for(var e=oi(this),r=arguments.length,n=0;n<r;)Ao(arguments[n++],function(t,r){Oi(e,t,r)},{AS_ENTRIES:!0});return e}});var xi=TypeError;Ce({target:"Map",proto:!0,real:!0,forced:!0},{reduce:function(t){var e=oi(this),r=arguments.length<2,n=r?void 0:arguments[1];if(J(t),di(e,function(o,i){r?(r=!1,n=o):n=t(n,o,i,e)}),r)throw new xi("Reduce of empty map with no initial value");return n}}),Ce({target:"Map",proto:!0,real:!0,forced:!0},{some:function(t){var e=oi(this),r=ar(t,arguments.length>1?arguments[1]:void 0);return!0===di(e,function(t,n){if(r(t,n,e))return!0},!0)}});var Ri=TypeError,Pi=Do.get,Ai=Do.has,ji=Do.set;Ce({target:"Map",proto:!0,real:!0,forced:!0},{update:function(t,e){var r=oi(this),n=arguments.length;J(e);var o=Ai(r,t);if(!o&&n<3)throw new Ri("Updating absent value");var i=o?Pi(r,t):J(n>2?arguments[2]:void 0)(t,r);return ji(r,t,e(i,t,r)),r}});var ki=TypeError,Ii=function(t,e){var r,n=kt(this),o=J(n.get),i=J(n.has),a=J(n.set),u=arguments.length>2?arguments[2]:void 0;if(!T(e)&&!T(u))throw new ki("At least one callback required");return f(i,n,t)?(r=f(o,n,t),T(e)&&(r=e(r),f(a,n,t,r))):T(u)&&(r=u(),f(a,n,t,r)),r};Ce({target:"Map",proto:!0,real:!0,forced:!0},{upsert:Ii}),Ce({target:"Map",proto:!0,real:!0,name:"upsert",forced:!0},{updateOrInsert:Ii});var Ti=b(1..valueOf),Mi="\t\n\v\f\r                 \u2028\u2029\ufeff",Li=b("".replace),Ui=RegExp("^["+Mi+"]+"),Ni=RegExp("(^|[^"+Mi+"])["+Mi+"]+$"),Ci=function(t){return function(e){var r=Wr(j(e));return 1&t&&(r=Li(r,Ui,"")),2&t&&(r=Li(r,Ni,"$1")),r}},_i={start:Ci(1),end:Ci(2),trim:Ci(3)},Fi=Oe.f,Bi=Rt.f,Di=Ct.f,zi=_i.trim,Wi="Number",qi=i[Wi],Hi=qi.prototype,$i=i.TypeError,Ki=b("".slice),Gi=b("".charCodeAt),Vi=Ue(Wi,!qi(" 0o1")||!qi("0b1")||qi("+0x1")),Yi=function(t){var e,r=arguments.length<1?0:qi(function(t){var e=mt(t,"number");return"bigint"==typeof e?e:function(t){var e,r,n,o,i,a,u,s,c=mt(t,"number");if(G(c))throw new $i("Cannot convert a Symbol value to a number");if("string"==typeof c&&c.length>2)if(c=zi(c),43===(e=Gi(c,0))||45===e){if(88===(r=Gi(c,2))||120===r)return NaN}else if(48===e){switch(Gi(c,1)){case 66:case 98:n=2,o=49;break;case 79:case 111:n=8,o=55;break;default:return+c}for(a=(i=Ki(c,2)).length,u=0;u<a;u++)if((s=Gi(i,u))<48||s>o)return NaN;return parseInt(i,n)}return+c}(e)}(t));return U(Hi,e=this)&&a(function(){Ti(e)})?Io(Object(r),this,Yi):r};Yi.prototype=Hi,Vi&&(Hi.constructor=Yi),Ce({global:!0,constructor:!0,wrap:!0,forced:Vi},{Number:Yi}),Vi&&function(t,e){for(var r,n=u?Fi(e):"MAX_VALUE,MIN_VALUE,NaN,NEGATIVE_INFINITY,POSITIVE_INFINITY,EPSILON,MAX_SAFE_INTEGER,MIN_SAFE_INTEGER,isFinite,isInteger,isNaN,isSafeInteger,parseFloat,parseInt,fromString,range".split(","),o=0;n.length>o;o++)ut(e,r=n[o])&&!ut(t,r)&&Di(t,r,Bi(e,r))}(Yn[Wi],qi),Ce({target:"Number",stat:!0,nonConfigurable:!0,nonWritable:!0},{EPSILON:Math.pow(2,-52)});var Xi=i.isFinite;Ce({target:"Number",stat:!0},{isFinite:Number.isFinite||function(t){return"number"==typeof t&&Xi(t)}});var Ji=Math.floor,Qi=Number.isInteger||function(t){return!M(t)&&isFinite(t)&&Ji(t)===t};Ce({target:"Number",stat:!0},{isInteger:Qi}),Ce({target:"Number",stat:!0},{isNaN:function(t){return t!=t}});var Zi=Math.abs;Ce({target:"Number",stat:!0},{isSafeInteger:function(t){return Qi(t)&&Zi(t)<=9007199254740991}}),Ce({target:"Number",stat:!0,nonConfigurable:!0,nonWritable:!0},{MAX_SAFE_INTEGER:9007199254740991}),Ce({target:"Number",stat:!0,nonConfigurable:!0,nonWritable:!0},{MIN_SAFE_INTEGER:-9007199254740991});var ta=_i.trim,ea=b("".charAt),ra=i.parseFloat,na=i.Symbol,oa=na&&na.iterator,ia=1/ra(Mi+"-0")!=-Infinity||oa&&!a(function(){ra(Object(oa))})?function(t){var e=ta(Wr(t)),r=ra(e);return 0===r&&"-"===ea(e,0)?-0:r}:ra;Ce({target:"Number",stat:!0,forced:Number.parseFloat!==ia},{parseFloat:ia});var aa=_i.trim,ua=i.parseInt,sa=i.Symbol,ca=sa&&sa.iterator,fa=/^[+-]?0x/i,la=b(fa.exec),ha=8!==ua(Mi+"08")||22!==ua(Mi+"0x16")||ca&&!a(function(){ua(Object(ca))})?function(t,e){var r=aa(Wr(t));return ua(r,e>>>0||(la(fa,r)?16:10))}:ua;Ce({target:"Number",stat:!0,forced:Number.parseInt!==ha},{parseInt:ha});var pa=b(v.f),va=b([].push),da=u&&a(function(){var t=Object.create(null);return t[2]=2,!pa(t,2)}),ga=function(t){return function(e){for(var r,n=k(e),o=_e(n),i=da&&null===Qr(n),a=o.length,s=0,c=[];a>s;)r=o[s++],u&&!(i?r in n:pa(n,r))||va(c,t?[r,n[r]]:n[r]);return c}},ya={entries:ga(!0),values:ga(!1)},ma=ya.entries;Ce({target:"Object",stat:!0},{entries:function(t){return ma(t)}}),Ce({target:"Object",stat:!0,sham:!u},{getOwnPropertyDescriptors:function(t){for(var e,r,n=k(t),o=Rt.f,i=Pe(n),a={},u=0;i.length>u;)void 0!==(r=o(n,e=i[u++]))&&Cn(a,e,r);return a}});var ba=a(function(){_e(1)});Ce({target:"Object",stat:!0,forced:ba},{keys:function(t){return _e(it(t))}});var wa=Object.is||function(t,e){return t===e?0!==t||1/t==1/e:t!=t&&e!=e};Ce({target:"Object",stat:!0},{is:wa});var Sa=ya.values;Ce({target:"Object",stat:!0},{values:function(t){return Sa(t)}}),Ce({target:"Object",stat:!0},{hasOwn:ut});var Ea=Function.prototype,Oa=Ea.apply,xa=Ea.call,Ra="object"==typeof Reflect&&Reflect.apply||(s?xa.bind(Oa):function(){return xa.apply(Oa,arguments)}),Pa=!a(function(){Reflect.apply(function(){})});Ce({target:"Reflect",stat:!0,forced:Pa},{apply:function(t,e,r){return Ra(J(t),e,kt(r))}});var Aa=Function,ja=b([].concat),ka=b([].join),Ia={},Ta=s?Aa.bind:function(t){var e=J(this),r=e.prototype,n=vo(arguments,1),o=function(){var r=ja(n,vo(arguments));return this instanceof o?function(t,e,r){if(!ut(Ia,e)){for(var n=[],o=0;o<e;o++)n[o]="a["+o+"]";Ia[e]=Aa("C,a","return new C("+ka(n,",")+")")}return Ia[e](t,r)}(e,r.length,r):e.apply(t,r)};return M(r)&&(o.prototype=r),o},Ma=TypeError,La=function(t){if(Sr(t))return t;throw new Ma(Y(t)+" is not a constructor")},Ua=L("Reflect","construct"),Na=Object.prototype,Ca=[].push,_a=a(function(){function t(){}return!(Ua(function(){},[],t)instanceof t)}),Fa=!a(function(){Ua(function(){})}),Ba=_a||Fa;Ce({target:"Reflect",stat:!0,forced:Ba,sham:Ba},{construct:function(t,e){La(t),kt(e);var r=arguments.length<3?t:La(arguments[2]);if(Fa&&!_a)return Ua(t,e,r);if(t===r){switch(e.length){case 0:return new t;case 1:return new t(e[0]);case 2:return new t(e[0],e[1]);case 3:return new t(e[0],e[1],e[2]);case 4:return new t(e[0],e[1],e[2],e[3])}var n=[null];return Ra(Ca,n,e),new(Ra(Ta,t,n))}var o=r.prototype,i=Ve(M(o)?o:Na),a=Ra(t,i,e);return M(a)?a:i}});var Da=a(function(){Reflect.defineProperty(Ct.f({},1,{value:1}),1,{value:2})});Ce({target:"Reflect",stat:!0,forced:Da,sham:!u},{defineProperty:function(t,e,r){kt(t);var n=bt(e);kt(r);try{return Ct.f(t,n,r),!0}catch(t){return!1}}});var za=Rt.f;Ce({target:"Reflect",stat:!0},{deleteProperty:function(t,e){var r=za(kt(t),e);return!(r&&!r.configurable)&&delete t[e]}});var Wa=function(t){return void 0!==t&&(ut(t,"value")||ut(t,"writable"))};Ce({target:"Reflect",stat:!0},{get:function t(e,r){var n,o,i=arguments.length<3?e:arguments[2];return kt(e)===i?e[r]:(n=Rt.f(e,r))?Wa(n)?n.value:void 0===n.get?void 0:f(n.get,i):M(o=Qr(e))?t(o,r,i):void 0}}),Ce({target:"Reflect",stat:!0,sham:!u},{getOwnPropertyDescriptor:function(t,e){return Rt.f(kt(t),e)}}),Ce({target:"Reflect",stat:!0,sham:!Vr},{getPrototypeOf:function(t){return Qr(kt(t))}}),Ce({target:"Reflect",stat:!0},{has:function(t,e){return e in t}}),Ce({target:"Reflect",stat:!0},{isExtensible:function(t){return kt(t),So(t)}}),Ce({target:"Reflect",stat:!0},{ownKeys:Pe}),Ce({target:"Reflect",stat:!0,sham:!Eo},{preventExtensions:function(t){kt(t);try{var e=L("Object","preventExtensions");return e&&e(t),!0}catch(t){return!1}}});var qa=a(function(){var t=function(){},e=Ct.f(new t,"a",{configurable:!0});return!1!==Reflect.set(t.prototype,"a",1,e)});Ce({target:"Reflect",stat:!0,forced:qa},{set:function t(e,r,n){var o,i,a,u=arguments.length<4?e:arguments[3],s=Rt.f(kt(e),r);if(!s){if(M(i=Qr(e)))return t(i,r,n,u);s=d(0)}if(Wa(s)){if(!1===s.writable||!M(u))return!1;if(o=Rt.f(u,r)){if(o.get||o.set||!1===o.writable)return!1;o.value=n,Ct.f(u,r,o)}else Ct.f(u,r,d(0,n))}else{if(void 0===(a=s.set))return!1;f(a,u,n)}return!0}}),dn&&Ce({target:"Reflect",stat:!0},{setPrototypeOf:function(t,e){kt(t),vn(e);try{return dn(t,e),!0}catch(t){return!1}}}),Ce({global:!0},{Reflect:{}}),an(i.Reflect,"Reflect",!0);var Ha=Oo.getWeakData,$a=ne.set,Ka=ne.getterFor,Ga=Ar.find,Va=Ar.findIndex,Ya=b([].splice),Xa=0,Ja=function(t){return t.frozen||(t.frozen=new Qa)},Qa=function(){this.entries=[]},Za=function(t,e){return Ga(t.entries,function(t){return t[0]===e})};Qa.prototype={get:function(t){var e=Za(this,t);if(e)return e[1]},has:function(t){return!!Za(this,t)},set:function(t,e){var r=Za(this,t);r?r[1]=e:this.entries.push([t,e])},delete:function(t){var e=Va(this.entries,function(e){return e[0]===t});return~e&&Ya(this.entries,e,1),!!~e}};var tu,eu={getConstructor:function(t,e,r,n){var o=t(function(t,o){ko(t,i),$a(t,{type:e,id:Xa++,frozen:null}),P(o)||Ao(o,t[n],{that:t,AS_ENTRIES:r})}),i=o.prototype,a=Ka(e),u=function(t,e,r){var n=a(t),o=Ha(kt(e),!0);return!0===o?Ja(n).set(e,r):o[n.id]=r,t};return Mo(i,{delete:function(t){var e=a(this);if(!M(t))return!1;var r=Ha(t);return!0===r?Ja(e).delete(t):r&&ut(r,e.id)&&delete r[e.id]},has:function(t){var e=a(this);if(!M(t))return!1;var r=Ha(t);return!0===r?Ja(e).has(t):r&&ut(r,e.id)}}),Mo(i,r?{get:function(t){var e=a(this);if(M(t)){var r=Ha(t);if(!0===r)return Ja(e).get(t);if(r)return r[e.id]}},set:function(t,e){return u(this,t,e)}}:{add:function(t){return u(this,t,!0)}}),o}},ru=ne.enforce,nu=Object,ou=Array.isArray,iu=nu.isExtensible,au=nu.isFrozen,uu=nu.isSealed,su=nu.freeze,cu=nu.seal,fu=!i.ActiveXObject&&"ActiveXObject"in i,lu=function(t){return function(){return t(this,arguments.length?arguments[0]:void 0)}},hu=To("WeakMap",lu,eu),pu=hu.prototype,vu=b(pu.set);if(Vt)if(fu){tu=eu.getConstructor(lu,"WeakMap",!0),Oo.enable();var du=b(pu.delete),gu=b(pu.has),yu=b(pu.get);Mo(pu,{delete:function(t){if(M(t)&&!iu(t)){var e=ru(this);return e.frozen||(e.frozen=new tu),du(this,t)||e.frozen.delete(t)}return du(this,t)},has:function(t){if(M(t)&&!iu(t)){var e=ru(this);return e.frozen||(e.frozen=new tu),gu(this,t)||e.frozen.has(t)}return gu(this,t)},get:function(t){if(M(t)&&!iu(t)){var e=ru(this);return e.frozen||(e.frozen=new tu),gu(this,t)?yu(this,t):e.frozen.get(t)}return yu(this,t)},set:function(t,e){if(M(t)&&!iu(t)){var r=ru(this);r.frozen||(r.frozen=new tu),gu(this,t)?vu(this,t,e):r.frozen.set(t,e)}else vu(this,t,e);return this}})}else Eo&&a(function(){var t=su([]);return vu(new hu,t,1),!au(t)})&&Mo(pu,{set:function(t,e){var r;return ou(t)&&(au(t)?r=su:uu(t)&&(r=cu)),vu(this,t,e),r&&r(t),this}});var mu=L("Map"),bu=L("WeakMap"),wu=b([].push),Su=nt("metadata"),Eu=Su.store||(Su.store=new bu),Ou=function(t,e,r){var n=Eu.get(t);if(!n){if(!r)return;Eu.set(t,n=new mu)}var o=n.get(e);if(!o){if(!r)return;n.set(e,o=new mu)}return o},xu={store:Eu,getMap:Ou,has:function(t,e,r){var n=Ou(e,r,!1);return void 0!==n&&n.has(t)},get:function(t,e,r){var n=Ou(e,r,!1);return void 0===n?void 0:n.get(t)},set:function(t,e,r,n){Ou(r,n,!0).set(t,e)},keys:function(t,e){var r=Ou(t,e,!1),n=[];return r&&r.forEach(function(t,e){wu(n,e)}),n},toKey:function(t){return void 0===t||"symbol"==typeof t?t:String(t)}},Ru=xu.toKey,Pu=xu.set;Ce({target:"Reflect",stat:!0},{defineMetadata:function(t,e,r){var n=arguments.length<4?void 0:Ru(arguments[3]);Pu(t,e,kt(r),n)}});var Au=xu.toKey,ju=xu.getMap,ku=xu.store;Ce({target:"Reflect",stat:!0},{deleteMetadata:function(t,e){var r=arguments.length<3?void 0:Au(arguments[2]),n=ju(kt(e),r,!1);if(void 0===n||!n.delete(t))return!1;if(n.size)return!0;var o=ku.get(e);return o.delete(r),!!o.size||ku.delete(e)}});var Iu=xu.has,Tu=xu.get,Mu=xu.toKey,Lu=function(t,e,r){if(Iu(t,e,r))return Tu(t,e,r);var n=Qr(e);return null!==n?Lu(t,n,r):void 0};Ce({target:"Reflect",stat:!0},{getMetadata:function(t,e){var r=arguments.length<3?void 0:Mu(arguments[2]);return Lu(t,kt(e),r)}});var Uu=Do.Map,Nu=Do.has,Cu=Do.set,_u=b([].push),Fu=b(function(t){var e,r,n,o=it(this),i=de(o),a=[],u=new Uu,s=P(t)?function(t){return t}:J(t);for(e=0;e<i;e++)n=s(r=o[e]),Nu(u,n)||Cu(u,n,r);return di(u,function(t){_u(a,t)}),a}),Bu=b([].concat),Du=xu.keys,zu=xu.toKey,Wu=function(t,e){var r=Du(t,e),n=Qr(t);if(null===n)return r;var o=Wu(n,e);return o.length?r.length?Fu(Bu(r,o)):o:r};Ce({target:"Reflect",stat:!0},{getMetadataKeys:function(t){var e=arguments.length<2?void 0:zu(arguments[1]);return Wu(kt(t),e)}});var qu=xu.get,Hu=xu.toKey;Ce({target:"Reflect",stat:!0},{getOwnMetadata:function(t,e){var r=arguments.length<3?void 0:Hu(arguments[2]);return qu(t,kt(e),r)}});var $u=xu.keys,Ku=xu.toKey;Ce({target:"Reflect",stat:!0},{getOwnMetadataKeys:function(t){var e=arguments.length<2?void 0:Ku(arguments[1]);return $u(kt(t),e)}});var Gu=xu.has,Vu=xu.toKey,Yu=function(t,e,r){if(Gu(t,e,r))return!0;var n=Qr(e);return null!==n&&Yu(t,n,r)};Ce({target:"Reflect",stat:!0},{hasMetadata:function(t,e){var r=arguments.length<3?void 0:Vu(arguments[2]);return Yu(t,kt(e),r)}});var Xu=xu.has,Ju=xu.toKey;Ce({target:"Reflect",stat:!0},{hasOwnMetadata:function(t,e){var r=arguments.length<3?void 0:Ju(arguments[2]);return Xu(t,kt(e),r)}});var Qu=xu.toKey,Zu=xu.set;Ce({target:"Reflect",stat:!0},{metadata:function(t,e){return function(r,n){Zu(t,e,kt(r),Qu(n))}}});var ts=dt("match"),es=function(t){var e;return M(t)&&(void 0!==(e=t[ts])?!!e:"RegExp"===E(t))},rs=function(){var t=kt(this),e="";return t.hasIndices&&(e+="d"),t.global&&(e+="g"),t.ignoreCase&&(e+="i"),t.multiline&&(e+="m"),t.dotAll&&(e+="s"),t.unicode&&(e+="u"),t.unicodeSets&&(e+="v"),t.sticky&&(e+="y"),e},ns=RegExp.prototype,os=function(t){var e=t.flags;return void 0!==e||"flags"in ns||ut(t,"flags")||!U(ns,t)?e:f(rs,t)},is=i.RegExp,as=a(function(){var t=is("a","y");return t.lastIndex=2,null!==t.exec("abcd")}),us=as||a(function(){return!is("a","y").sticky}),ss=as||a(function(){var t=is("^r","gy");return t.lastIndex=2,null!==t.exec("str")}),cs={BROKEN_CARET:ss,MISSED_STICKY:us,UNSUPPORTED_Y:as},fs=Ct.f,ls=function(t,e,r){r in t||fs(t,r,{configurable:!0,get:function(){return e[r]},set:function(t){e[r]=t}})},hs=i.RegExp,ps=a(function(){var t=hs(".","s");return!(t.dotAll&&t.test("\n")&&"s"===t.flags)}),vs=i.RegExp,ds=a(function(){var t=vs("(?<a>b)","g");return"b"!==t.exec("b").groups.a||"bc"!=="b".replace(t,"$<a>c")}),gs=Oe.f,ys=ne.enforce,ms=dt("match"),bs=i.RegExp,ws=bs.prototype,Ss=i.SyntaxError,Es=b(ws.exec),Os=b("".charAt),xs=b("".replace),Rs=b("".indexOf),Ps=b("".slice),As=/^\?<[^\s\d!#%&*+<=>@^][^\s!#%&*+<=>@^]*>/,js=/a/g,ks=/a/g,Is=new bs(js)!==js,Ts=cs.MISSED_STICKY,Ms=cs.UNSUPPORTED_Y,Ls=u&&(!Is||Ts||ps||ds||a(function(){return ks[ms]=!1,bs(js)!==js||bs(ks)===ks||"/a/i"!==String(bs(js,"i"))}));if(Ue("RegExp",Ls)){for(var Us=function(t,e){var r,n,o,i,a,u,s=U(ws,this),c=es(t),f=void 0===e,l=[],h=t;if(!s&&c&&f&&t.constructor===Us)return t;if((c||U(ws,t))&&(t=t.source,f&&(e=os(h))),t=void 0===t?"":Wr(t),e=void 0===e?"":Wr(e),h=t,ps&&"dotAll"in js&&(n=!!e&&Rs(e,"s")>-1)&&(e=xs(e,/s/g,"")),r=e,Ts&&"sticky"in js&&(o=!!e&&Rs(e,"y")>-1)&&Ms&&(e=xs(e,/y/g,"")),ds&&(i=function(t){for(var e,r=t.length,n=0,o="",i=[],a=Ve(null),u=!1,s=!1,c=0,f="";n<=r;n++){if("\\"===(e=Os(t,n)))e+=Os(t,++n);else if("]"===e)u=!1;else if(!u)switch(!0){case"["===e:u=!0;break;case"("===e:if(o+=e,"?:"===Ps(t,n+1,n+3))continue;Es(As,Ps(t,n+1))&&(n+=2,s=!0),c++;continue;case">"===e&&s:if(""===f||ut(a,f))throw new Ss("Invalid capture group name");a[f]=!0,i[i.length]=[f,c],s=!1,f="";continue}s?f+=e:o+=e}return[o,i]}(t),t=i[0],l=i[1]),a=Io(bs(t,e),s?this:ws,Us),(n||o||l.length)&&(u=ys(a),n&&(u.dotAll=!0,u.raw=Us(function(t){for(var e,r=t.length,n=0,o="",i=!1;n<=r;n++)"\\"!==(e=Os(t,n))?i||"."!==e?("["===e?i=!0:"]"===e&&(i=!1),o+=e):o+="[\\s\\S]":o+=e+Os(t,++n);return o}(t),r)),o&&(u.sticky=!0),l.length&&(u.groups=l)),t!==h)try{_t(a,"source",""===h?"(?:)":h)}catch(t){}return a},Ns=gs(bs),Cs=0;Ns.length>Cs;)ls(Us,bs,Ns[Cs++]);ws.constructor=Us,Us.prototype=ws,ie(i,"RegExp",Us,{constructor:!0})}Uo("RegExp");var _s=zt.PROPER,Fs="toString",Bs=RegExp.prototype,Ds=Bs[Fs];(a(function(){return"/a/b"!==Ds.call({source:"a",flags:"b"})})||_s&&Ds.name!==Fs)&&ie(Bs,Fs,function(){var t=kt(this);return"/"+Wr(t.source)+"/"+Wr(os(t))},{unsafe:!0});var zs=ne.get,Ws=RegExp.prototype,qs=TypeError;u&&ps&&so(Ws,"dotAll",{configurable:!0,get:function(){if(this!==Ws){if("RegExp"===E(this))return!!zs(this).dotAll;throw new qs("Incompatible receiver, RegExp required")}}});var Hs=ne.get,$s=nt("native-string-replace",String.prototype.replace),Ks=RegExp.prototype.exec,Gs=Ks,Vs=b("".charAt),Ys=b("".indexOf),Xs=b("".replace),Js=b("".slice),Qs=function(){var t=/a/,e=/b*/g;return f(Ks,t,"a"),f(Ks,e,"a"),0!==t.lastIndex||0!==e.lastIndex}(),Zs=cs.BROKEN_CARET,tc=void 0!==/()??/.exec("")[1];(Qs||tc||Zs||ps||ds)&&(Gs=function(t){var e,r,n,o,i,a,u,s=this,c=Hs(s),l=Wr(t),h=c.raw;if(h)return h.lastIndex=s.lastIndex,e=f(Gs,h,l),s.lastIndex=h.lastIndex,e;var p=c.groups,v=Zs&&s.sticky,d=f(rs,s),g=s.source,y=0,m=l;if(v&&(d=Xs(d,"y",""),-1===Ys(d,"g")&&(d+="g"),m=Js(l,s.lastIndex),s.lastIndex>0&&(!s.multiline||s.multiline&&"\n"!==Vs(l,s.lastIndex-1))&&(g="(?: "+g+")",m=" "+m,y++),r=new RegExp("^(?:"+g+")",d)),tc&&(r=new RegExp("^"+g+"$(?!\\s)",d)),Qs&&(n=s.lastIndex),o=f(Ks,v?r:s,m),v?o?(o.input=Js(o.input,y),o[0]=Js(o[0],y),o.index=s.lastIndex,s.lastIndex+=o[0].length):s.lastIndex=0:Qs&&o&&(s.lastIndex=s.global?o.index+o[0].length:n),tc&&o&&o.length>1&&f($s,o[0],r,function(){for(i=1;i<arguments.length-2;i++)void 0===arguments[i]&&(o[i]=void 0)}),o&&p)for(o.groups=a=Ve(null),i=0;i<p.length;i++)a[(u=p[i])[0]]=o[u[1]];return o});var ec=Gs;Ce({target:"RegExp",proto:!0,forced:/./.exec!==ec},{exec:ec});var rc=i.RegExp,nc=rc.prototype;u&&a(function(){var t=!0;try{rc(".","d")}catch(e){t=!1}var e={},r="",n=t?"dgimsy":"gimsy",o=function(t,n){Object.defineProperty(e,t,{get:function(){return r+=n,!0}})},i={dotAll:"s",global:"g",ignoreCase:"i",multiline:"m",sticky:"y"};for(var a in t&&(i.hasIndices="d"),i)o(a,i[a]);return Object.getOwnPropertyDescriptor(nc,"flags").get.call(e)!==n||r!==n})&&so(nc,"flags",{configurable:!0,get:rs});var oc=ne.get,ic=RegExp.prototype,ac=TypeError;u&&cs.MISSED_STICKY&&so(ic,"sticky",{configurable:!0,get:function(){if(this!==ic){if("RegExp"===E(this))return!!oc(this).sticky;throw new ac("Incompatible receiver, RegExp required")}}});var uc,sc,cc=(uc=!1,(sc=/[ac]/).exec=function(){return uc=!0,/./.exec.apply(this,arguments)},!0===sc.test("abc")&&uc),fc=/./.test;Ce({target:"RegExp",proto:!0,forced:!cc},{test:function(t){var e=kt(this),r=Wr(t),n=e.exec;if(!T(n))return f(fc,e,r);var o=f(n,e,r);return null!==o&&(kt(o),!0)}});var lc=dt("species"),hc=RegExp.prototype,pc=function(t,e,r,n){var o=dt(t),i=!a(function(){var e={};return e[o]=function(){return 7},7!==""[t](e)}),u=i&&!a(function(){var e=!1,r=/a/;return"split"===t&&((r={}).constructor={},r.constructor[lc]=function(){return r},r.flags="",r[o]=/./[o]),r.exec=function(){return e=!0,null},r[o](""),!e});if(!i||!u||r){var s=/./[o],c=e(o,""[t],function(t,e,r,n,o){var a=e.exec;return a===ec||a===hc.exec?i&&!o?{done:!0,value:f(s,e,r,n)}:{done:!0,value:f(t,r,e,n)}:{done:!1}});ie(String.prototype,t,c[0]),ie(hc,o,c[1])}n&&_t(hc[o],"sham",!0)},vc=Gr.charAt,dc=function(t,e,r){return e+(r?vc(t,e).length:1)},gc=TypeError,yc=function(t,e){var r=t.exec;if(T(r)){var n=f(r,t,e);return null!==n&&kt(n),n}if("RegExp"===E(t))return f(ec,t,e);throw new gc("RegExp#exec called on incompatible receiver")};pc("match",function(t,e,r){return[function(e){var r=j(this),n=P(e)?void 0:Q(e,t);return n?f(n,e,r):new RegExp(e)[t](Wr(r))},function(t){var n=kt(this),o=Wr(t),i=r(e,n,o);if(i.done)return i.value;if(!n.global)return yc(n,o);var a=n.unicode;n.lastIndex=0;for(var u,s=[],c=0;null!==(u=yc(n,o));){var f=Wr(u[0]);s[c]=f,""===f&&(n.lastIndex=dc(o,ve(n.lastIndex),a)),c++}return 0===c?null:s}]});var mc=Math.floor,bc=b("".charAt),wc=b("".replace),Sc=b("".slice),Ec=/\$([$&'`]|\d{1,2}|<[^>]*>)/g,Oc=/\$([$&'`]|\d{1,2})/g,xc=function(t,e,r,n,o,i){var a=r+t.length,u=n.length,s=Oc;return void 0!==o&&(o=it(o),s=Ec),wc(i,s,function(i,s){var c;switch(bc(s,0)){case"$":return"$";case"&":return t;case"`":return Sc(e,0,r);case"'":return Sc(e,a);case"<":c=o[Sc(s,1,-1)];break;default:var f=+s;if(0===f)return i;if(f>u){var l=mc(f/10);return 0===l?i:l<=u?void 0===n[l-1]?bc(s,1):n[l-1]+bc(s,1):i}c=n[f-1]}return void 0===c?"":c})},Rc=dt("replace"),Pc=Math.max,Ac=Math.min,jc=b([].concat),kc=b([].push),Ic=b("".indexOf),Tc=b("".slice),Mc="$0"==="a".replace(/./,"$0"),Lc=!!/./[Rc]&&""===/./[Rc]("a","$0"),Uc=!a(function(){var t=/./;return t.exec=function(){var t=[];return t.groups={a:"7"},t},"7"!=="".replace(t,"$<a>")});pc("replace",function(t,e,r){var n=Lc?"$":"$0";return[function(t,r){var n=j(this),o=P(t)?void 0:Q(t,Rc);return o?f(o,t,n,r):f(e,Wr(n),t,r)},function(t,o){var i=kt(this),a=Wr(t);if("string"==typeof o&&-1===Ic(o,n)&&-1===Ic(o,"$<")){var u=r(e,i,a,o);if(u.done)return u.value}var s=T(o);s||(o=Wr(o));var c,f=i.global;f&&(c=i.unicode,i.lastIndex=0);for(var l,h=[];null!==(l=yc(i,a))&&(kc(h,l),f);)""===Wr(l[0])&&(i.lastIndex=dc(a,ve(i.lastIndex),c));for(var p,v="",d=0,g=0;g<h.length;g++){for(var y,m=Wr((l=h[g])[0]),b=Pc(Ac(ce(l.index),a.length),0),w=[],S=1;S<l.length;S++)kc(w,void 0===(p=l[S])?p:String(p));var E=l.groups;if(s){var O=jc([m],w,b,a);void 0!==E&&kc(O,E),y=Wr(Ra(o,void 0,O))}else y=xc(m,a,b,w,E,o);b>=d&&(v+=Tc(a,d,b)+y,d=b+m.length)}return v+Tc(a,d)}]},!Uc||!Mc||Lc),pc("search",function(t,e,r){return[function(e){var r=j(this),n=P(e)?void 0:Q(e,t);return n?f(n,e,r):new RegExp(e)[t](Wr(r))},function(t){var n=kt(this),o=Wr(t),i=r(e,n,o);if(i.done)return i.value;var a=n.lastIndex;wa(a,0)||(n.lastIndex=0);var u=yc(n,o);return wa(n.lastIndex,a)||(n.lastIndex=a),null===u?-1:u.index}]});var Nc=dt("species"),Cc=function(t,e){var r,n=kt(t).constructor;return void 0===n||P(r=kt(n)[Nc])?e:La(r)},_c=cs.UNSUPPORTED_Y,Fc=Math.min,Bc=b([].push),Dc=b("".slice),zc=!a(function(){var t=/(?:)/,e=t.exec;t.exec=function(){return e.apply(this,arguments)};var r="ab".split(t);return 2!==r.length||"a"!==r[0]||"b"!==r[1]}),Wc="c"==="abbc".split(/(b)*/)[1]||4!=="test".split(/(?:)/,-1).length||2!=="ab".split(/(?:ab)*/).length||4!==".".split(/(.?)(.?)/).length||".".split(/()()/).length>1||"".split(/.?/).length;pc("split",function(t,e,r){var n="0".split(void 0,0).length?function(t,r){return void 0===t&&0===r?[]:f(e,this,t,r)}:e;return[function(e,r){var o=j(this),i=P(e)?void 0:Q(e,t);return i?f(i,e,o,r):f(n,Wr(o),e,r)},function(t,o){var i=kt(this),a=Wr(t);if(!Wc){var u=r(n,i,a,o,n!==e);if(u.done)return u.value}var s=Cc(i,RegExp),c=i.unicode,f=new s(_c?"^(?:"+i.source+")":i,(i.ignoreCase?"i":"")+(i.multiline?"m":"")+(i.unicode?"u":"")+(_c?"g":"y")),l=void 0===o?4294967295:o>>>0;if(0===l)return[];if(0===a.length)return null===yc(f,a)?[a]:[];for(var h=0,p=0,v=[];p<a.length;){f.lastIndex=_c?0:p;var d,g=yc(f,_c?Dc(a,p):a);if(null===g||(d=Fc(ve(f.lastIndex+(_c?p:0)),a.length))===h)p=dc(a,p,c);else{if(Bc(v,Dc(a,h,p)),v.length===l)return v;for(var y=1;y<=g.length-1;y++)if(Bc(v,g[y]),v.length===l)return v;p=h=d}}return Bc(v,Dc(a,h)),v}]},Wc||!zc,_c);var qc=TypeError,Hc=RangeError,$c=function(t){var e=Wr(j(this)),r="",n=ce(t);if(n<0||Infinity===n)throw new Hc("Wrong number of repetitions");for(;n>0;(n>>>=1)&&(e+=e))1&n&&(r+=e);return r},Kc=b($c),Gc=b("".slice),Vc=Math.ceil,Yc=function(t){return function(e,r,n){var o,i,a=Wr(j(e)),u=ve(r),s=a.length,c=void 0===n?" ":Wr(n);return u<=s||""===c?a:((i=Kc(c,Vc((o=u-s)/c.length))).length>o&&(i=Gc(i,0,o)),t?a+i:i+a)}},Xc={start:Yc(!1),end:Yc(!0)},Jc=Xc.start,Qc=Array,Zc=RegExp.escape,tf=b("".charAt),ef=b("".charCodeAt),rf=b(1.1.toString),nf=b([].join),of=/^[0-9a-z]/i,af=/^[$()*+./?[\\\]^{|}]/,uf=RegExp("^[!\"#%&',\\-:;<=>@`~"+Mi+"]"),sf=b(of.exec),cf={"\t":"t","\n":"n","\v":"v","\f":"f","\r":"r"},ff=function(t){var e=rf(ef(t,0),16);return e.length<3?"\\x"+Jc(e,2,"0"):"\\u"+Jc(e,4,"0")},lf=!Zc||"\\x61b"!==Zc("ab");Ce({target:"RegExp",stat:!0,forced:lf},{escape:function(t){!function(t){if("string"==typeof t)return t;throw new qc("Argument is not a string")}(t);for(var e=t.length,r=Qc(e),n=0;n<e;n++){var o=tf(t,n);if(0===n&&sf(of,o))r[n]=ff(o);else if(ut(cf,o))r[n]="\\"+cf[o];else if(sf(af,o))r[n]="\\"+o;else if(sf(uf,o))r[n]=ff(o);else{var i=ef(o,0);55296!=(63488&i)?r[n]=o:i>=56320||n+1>=e||56320!=(64512&ef(t,n+1))?r[n]=ff(o):(r[n]=o,r[++n]=tf(t,n))}}return nf(r,"")}}),To("Set",function(t){return function(){return t(this,arguments.length?arguments[0]:void 0)}},Fo);var hf=Set.prototype,pf={Set:Set,add:b(hf.add),has:b(hf.has),remove:b(hf.delete),proto:hf},vf=pf.has,df=function(t){return vf(t),t},gf=pf.Set,yf=pf.proto,mf=b(yf.forEach),bf=b(yf.keys),wf=bf(new gf).next,Sf=function(t,e,r){return r?ci({iterator:bf(t),next:wf},e):mf(t,e)},Ef=pf.Set,Of=pf.add,xf=function(t){var e=new Ef;return Sf(t,function(t){Of(e,t)}),e},Rf=ln(pf.proto,"size","get")||function(t){return t.size},Pf="Invalid size",Af=RangeError,jf=TypeError,kf=Math.max,If=function(t,e){this.set=t,this.size=kf(e,0),this.has=J(t.has),this.keys=J(t.keys)};If.prototype={getIterator:function(){return{iterator:t=kt(f(this.keys,this.set)),next:t.next,done:!1};var t},includes:function(t){return f(this.has,this.set,t)}};var Tf=function(t){kt(t);var e=+t.size;if(e!=e)throw new jf(Pf);var r=ce(e);if(r<0)throw new Af(Pf);return new If(t,r)},Mf=pf.has,Lf=pf.remove,Uf=function(t){var e=df(this),r=Tf(t),n=xf(e);return Rf(e)<=r.size?Sf(e,function(t){r.includes(t)&&Lf(n,t)}):ci(r.getIterator(),function(t){Mf(e,t)&&Lf(n,t)}),n},Nf=function(t){return{size:t,has:function(){return!1},keys:function(){return{next:function(){return{done:!0}}}}}},Cf=function(t){var e=L("Set");try{(new e)[t](Nf(0));try{return(new e)[t](Nf(-1)),!1}catch(t){return!0}}catch(t){return!1}};Ce({target:"Set",proto:!0,real:!0,forced:!Cf("difference")},{difference:Uf});var _f=pf.Set,Ff=pf.add,Bf=pf.has,Df=function(t){var e=df(this),r=Tf(t),n=new _f;return Rf(e)>r.size?ci(r.getIterator(),function(t){Bf(e,t)&&Ff(n,t)}):Sf(e,function(t){r.includes(t)&&Ff(n,t)}),n},zf=!Cf("intersection")||a(function(){return"3,2"!==String(Array.from(new Set([1,2,3]).intersection(new Set([3,2]))))});Ce({target:"Set",proto:!0,real:!0,forced:zf},{intersection:Df});var Wf=pf.has,qf=function(t){var e=df(this),r=Tf(t);if(Rf(e)<=r.size)return!1!==Sf(e,function(t){if(r.includes(t))return!1},!0);var n=r.getIterator();return!1!==ci(n,function(t){if(Wf(e,t))return Tn(n,"normal",!1)})};Ce({target:"Set",proto:!0,real:!0,forced:!Cf("isDisjointFrom")},{isDisjointFrom:qf});var Hf=function(t){var e=df(this),r=Tf(t);return!(Rf(e)>r.size)&&!1!==Sf(e,function(t){if(!r.includes(t))return!1},!0)};Ce({target:"Set",proto:!0,real:!0,forced:!Cf("isSubsetOf")},{isSubsetOf:Hf});var $f=pf.has,Kf=function(t){var e=df(this),r=Tf(t);if(Rf(e)<r.size)return!1;var n=r.getIterator();return!1!==ci(n,function(t){if(!$f(e,t))return Tn(n,"normal",!1)})};Ce({target:"Set",proto:!0,real:!0,forced:!Cf("isSupersetOf")},{isSupersetOf:Kf});var Gf=pf.add,Vf=pf.has,Yf=pf.remove,Xf=function(t){var e=df(this),r=Tf(t).getIterator(),n=xf(e);return ci(r,function(t){Vf(e,t)?Yf(n,t):Gf(n,t)}),n};Ce({target:"Set",proto:!0,real:!0,forced:!Cf("symmetricDifference")},{symmetricDifference:Xf});var Jf=pf.add,Qf=function(t){var e=df(this),r=Tf(t).getIterator(),n=xf(e);return ci(r,function(t){Jf(n,t)}),n};Ce({target:"Set",proto:!0,real:!0,forced:!Cf("union")},{union:Qf}),Ce({target:"Set",stat:!0,forced:!0},{from:ei(pf.Set,pf.add,!1)}),Ce({target:"Set",stat:!0,forced:!0},{of:ri(pf.Set,pf.add,!1)});var Zf=pf.add;Ce({target:"Set",proto:!0,real:!0,forced:!0},{addAll:function(){for(var t=df(this),e=0,r=arguments.length;e<r;e++)Zf(t,arguments[e]);return t}});var tl=pf.remove;Ce({target:"Set",proto:!0,real:!0,forced:!0},{deleteAll:function(){for(var t,e=df(this),r=!0,n=0,o=arguments.length;n<o;n++)t=tl(e,arguments[n]),r=r&&t;return!!r}}),Ce({target:"Set",proto:!0,real:!0,forced:!0},{every:function(t){var e=df(this),r=ar(t,arguments.length>1?arguments[1]:void 0);return!1!==Sf(e,function(t){if(!r(t,t,e))return!1},!0)}});var el=dt("iterator"),rl=Object,nl=L("Set"),ol=function(t){return function(t){return M(t)&&"number"==typeof t.size&&T(t.has)&&T(t.keys)}(t)?t:function(t){if(P(t))return!1;var e=rl(t);return void 0!==e[el]||"@@iterator"in e||ut(un,pr(e))}(t)?new nl(t):t};Ce({target:"Set",proto:!0,real:!0,forced:!0},{difference:function(t){return f(Uf,this,ol(t))}});var il=pf.Set,al=pf.add;Ce({target:"Set",proto:!0,real:!0,forced:!0},{filter:function(t){var e=df(this),r=ar(t,arguments.length>1?arguments[1]:void 0),n=new il;return Sf(e,function(t){r(t,t,e)&&al(n,t)}),n}}),Ce({target:"Set",proto:!0,real:!0,forced:!0},{find:function(t){var e=df(this),r=ar(t,arguments.length>1?arguments[1]:void 0),n=Sf(e,function(t){if(r(t,t,e))return{value:t}},!0);return n&&n.value}}),Ce({target:"Set",proto:!0,real:!0,forced:!0},{intersection:function(t){return f(Df,this,ol(t))}}),Ce({target:"Set",proto:!0,real:!0,forced:!0},{isDisjointFrom:function(t){return f(qf,this,ol(t))}}),Ce({target:"Set",proto:!0,real:!0,forced:!0},{isSubsetOf:function(t){return f(Hf,this,ol(t))}}),Ce({target:"Set",proto:!0,real:!0,forced:!0},{isSupersetOf:function(t){return f(Kf,this,ol(t))}});var ul=b([].join),sl=b([].push);Ce({target:"Set",proto:!0,real:!0,forced:!0},{join:function(t){var e=df(this),r=void 0===t?",":Wr(t),n=[];return Sf(e,function(t){sl(n,t)}),ul(n,r)}});var cl=pf.Set,fl=pf.add;Ce({target:"Set",proto:!0,real:!0,forced:!0},{map:function(t){var e=df(this),r=ar(t,arguments.length>1?arguments[1]:void 0),n=new cl;return Sf(e,function(t){fl(n,r(t,t,e))}),n}});var ll=TypeError;Ce({target:"Set",proto:!0,real:!0,forced:!0},{reduce:function(t){var e=df(this),r=arguments.length<2,n=r?void 0:arguments[1];if(J(t),Sf(e,function(o){r?(r=!1,n=o):n=t(n,o,o,e)}),r)throw new ll("Reduce of empty set with no initial value");return n}}),Ce({target:"Set",proto:!0,real:!0,forced:!0},{some:function(t){var e=df(this),r=ar(t,arguments.length>1?arguments[1]:void 0);return!0===Sf(e,function(t){if(r(t,t,e))return!0},!0)}}),Ce({target:"Set",proto:!0,real:!0,forced:!0},{symmetricDifference:function(t){return f(Xf,this,ol(t))}}),Ce({target:"Set",proto:!0,real:!0,forced:!0},{union:function(t){return f(Qf,this,ol(t))}});var hl=dt("species"),pl=dt("isConcatSpreadable"),vl=W>=51||!a(function(){var t=[];return t[pl]=!1,t.concat()[0]!==t}),dl=function(t){if(!M(t))return!1;var e=t[pl];return void 0!==e?!!e:ur(t)},gl=!(vl&&(W>=51||!a(function(){var t=[];return(t.constructor={})[hl]=function(){return{foo:1}},1!==t.concat(Boolean).foo})));Ce({target:"Array",proto:!0,arity:1,forced:gl},{concat:function(t){var e,r,n,o,i,a=it(this),u=xr(a,0),s=0;for(e=-1,n=arguments.length;e<n;e++)if(dl(i=-1===e?a:arguments[e]))for(o=de(i),Nr(s+o),r=0;r<o;r++,s++)r in i&&Cn(u,s,i[r]);else Nr(s+1),Cn(u,s++,i);return u.length=s,u}});var yl={f:dt},ml=Ct.f,bl=function(t){var e=Yn.Symbol||(Yn.Symbol={});ut(e,t)||ml(e,t,{value:yl.f(t)})},wl=function(){var t=L("Symbol"),e=t&&t.prototype,r=e&&e.valueOf,n=dt("toPrimitive");e&&!e[n]&&ie(e,n,function(t){return f(r,this)},{arity:1})},Sl=Ar.forEach,El=Xt("hidden"),Ol="Symbol",xl="prototype",Rl=ne.set,Pl=ne.getterFor(Ol),Al=Object[xl],jl=i.Symbol,kl=jl&&jl[xl],Il=i.RangeError,Tl=i.TypeError,Ml=i.QObject,Ll=Rt.f,Ul=Ct.f,Nl=mo.f,Cl=v.f,_l=b([].push),Fl=nt("symbols"),Bl=nt("op-symbols"),Dl=nt("wks"),zl=!Ml||!Ml[xl]||!Ml[xl].findChild,Wl=function(t,e,r){var n=Ll(Al,e);n&&delete Al[e],Ul(t,e,r),n&&t!==Al&&Ul(Al,e,n)},ql=u&&a(function(){return 7!==Ve(Ul({},"a",{get:function(){return Ul(this,"a",{value:7}).a}})).a})?Wl:Ul,Hl=function(t,e){var r=Fl[t]=Ve(kl);return Rl(r,{type:Ol,tag:t,description:e}),u||(r.description=e),r},$l=function(t,e,r){t===Al&&$l(Bl,e,r),kt(t);var n=bt(e);return kt(r),ut(Fl,n)?(r.enumerable?(ut(t,El)&&t[El][n]&&(t[El][n]=!1),r=Ve(r,{enumerable:d(0,!1)})):(ut(t,El)||Ul(t,El,d(1,Ve(null))),t[El][n]=!0),ql(t,n,r)):Ul(t,n,r)},Kl=function(t,e){kt(t);var r=k(e),n=_e(r).concat(Xl(r));return Sl(n,function(e){u&&!f(Gl,r,e)||$l(t,e,r[e])}),t},Gl=function(t){var e=bt(t),r=f(Cl,this,e);return!(this===Al&&ut(Fl,e)&&!ut(Bl,e))&&(!(r||!ut(this,e)||!ut(Fl,e)||ut(this,El)&&this[El][e])||r)},Vl=function(t,e){var r=k(t),n=bt(e);if(r!==Al||!ut(Fl,n)||ut(Bl,n)){var o=Ll(r,n);return!o||!ut(Fl,n)||ut(r,El)&&r[El][n]||(o.enumerable=!0),o}},Yl=function(t){var e=Nl(k(t)),r=[];return Sl(e,function(t){ut(Fl,t)||ut(Jt,t)||_l(r,t)}),r},Xl=function(t){var e=t===Al,r=Nl(e?Bl:k(t)),n=[];return Sl(r,function(t){!ut(Fl,t)||e&&!ut(Al,t)||_l(n,Fl[t])}),n};H||(jl=function(){if(U(kl,this))throw new Tl("Symbol is not a constructor");var t=arguments.length&&void 0!==arguments[0]?Wr(arguments[0]):void 0,e=lt(t),r=function(t){var n=void 0===this?i:this;n===Al&&f(r,Bl,t),ut(n,El)&&ut(n[El],e)&&(n[El][e]=!1);var o=d(1,t);try{ql(n,e,o)}catch(t){if(!(t instanceof Il))throw t;Wl(n,e,o)}};return u&&zl&&ql(Al,e,{configurable:!0,set:r}),Hl(e,t)},ie(kl=jl[xl],"toString",function(){return Pl(this).tag}),ie(jl,"withoutSetter",function(t){return Hl(lt(t),t)}),v.f=Gl,Ct.f=$l,Be.f=Kl,Rt.f=Vl,Oe.f=mo.f=Yl,xe.f=Xl,yl.f=function(t){return Hl(dt(t),t)},u&&(so(kl,"description",{configurable:!0,get:function(){return Pl(this).description}}),ie(Al,"propertyIsEnumerable",Gl,{unsafe:!0}))),Ce({global:!0,constructor:!0,wrap:!0,forced:!H,sham:!H},{Symbol:jl}),Sl(_e(Dl),function(t){bl(t)}),Ce({target:Ol,stat:!0,forced:!H},{useSetter:function(){zl=!0},useSimple:function(){zl=!1}}),Ce({target:"Object",stat:!0,forced:!H,sham:!u},{create:function(t,e){return void 0===e?Ve(t):Kl(Ve(t),e)},defineProperty:$l,defineProperties:Kl,getOwnPropertyDescriptor:Vl}),Ce({target:"Object",stat:!0,forced:!H},{getOwnPropertyNames:Yl}),wl(),an(jl,Ol),Jt[El]=!0;var Jl=H&&!!Symbol.for&&!!Symbol.keyFor,Ql=nt("string-to-symbol-registry"),Zl=nt("symbol-to-string-registry");Ce({target:"Symbol",stat:!0,forced:!Jl},{for:function(t){var e=Wr(t);if(ut(Ql,e))return Ql[e];var r=L("Symbol")(e);return Ql[e]=r,Zl[r]=e,r}});var th=nt("symbol-to-string-registry");Ce({target:"Symbol",stat:!0,forced:!Jl},{keyFor:function(t){if(!G(t))throw new TypeError(Y(t)+" is not a symbol");if(ut(th,t))return th[t]}});var eh=b([].push),rh=String,nh=L("JSON","stringify"),oh=b(/./.exec),ih=b("".charAt),ah=b("".charCodeAt),uh=b("".replace),sh=b(1..toString),ch=/[\uD800-\uDFFF]/g,fh=/^[\uD800-\uDBFF]$/,lh=/^[\uDC00-\uDFFF]$/,hh=!H||a(function(){var t=L("Symbol")("stringify detection");return"[null]"!==nh([t])||"{}"!==nh({a:t})||"{}"!==nh(Object(t))}),ph=a(function(){return'"\\udf06\\ud834"'!==nh("\udf06\ud834")||'"\\udead"'!==nh("\udead")}),vh=function(t,e){var r=vo(arguments),n=function(t){if(T(t))return t;if(ur(t)){for(var e=t.length,r=[],n=0;n<e;n++){var o=t[n];"string"==typeof o?eh(r,o):"number"!=typeof o&&"Number"!==E(o)&&"String"!==E(o)||eh(r,Wr(o))}var i=r.length,a=!0;return function(t,e){if(a)return a=!1,e;if(ur(this))return e;for(var n=0;n<i;n++)if(r[n]===t)return e}}}(e);if(T(n)||void 0!==t&&!G(t))return r[1]=function(t,e){if(T(n)&&(e=f(n,this,rh(t),e)),!G(e))return e},Ra(nh,null,r)},dh=function(t,e,r){var n=ih(r,e-1),o=ih(r,e+1);return oh(fh,t)&&!oh(lh,o)||oh(lh,t)&&!oh(fh,n)?"\\u"+sh(ah(t,0),16):t};nh&&Ce({target:"JSON",stat:!0,arity:3,forced:hh||ph},{stringify:function(t,e,r){var n=vo(arguments),o=Ra(hh?vh:nh,null,n);return ph&&"string"==typeof o?uh(o,ch,dh):o}});var gh=!H||a(function(){xe.f(1)});Ce({target:"Object",stat:!0,forced:gh},{getOwnPropertySymbols:function(t){var e=xe.f;return e?e(it(t)):[]}}),bl("asyncIterator");var yh=i.Symbol,mh=yh&&yh.prototype;if(u&&T(yh)&&(!("description"in mh)||void 0!==yh().description)){var bh={},wh=function(){var t=arguments.length<1||void 0===arguments[0]?void 0:Wr(arguments[0]),e=U(mh,this)?new yh(t):void 0===t?yh():yh(t);return""===t&&(bh[e]=!0),e};Ae(wh,yh),wh.prototype=mh,mh.constructor=wh;var Sh="Symbol(description detection)"===String(yh("description detection")),Eh=b(mh.valueOf),Oh=b(mh.toString),xh=/^Symbol\((.*)\)[^)]+$/,Rh=b("".replace),Ph=b("".slice);so(mh,"description",{configurable:!0,get:function(){var t=Eh(this);if(ut(bh,t))return"";var e=Oh(t),r=Sh?Ph(e,7,-1):Rh(e,xh,"$1");return""===r?void 0:r}}),Ce({global:!0,constructor:!0,forced:!0},{Symbol:wh})}bl("hasInstance"),bl("isConcatSpreadable"),bl("iterator"),bl("match"),bl("matchAll"),bl("replace"),bl("search"),bl("species"),bl("split"),bl("toPrimitive"),wl(),bl("toStringTag"),an(L("Symbol"),"Symbol"),bl("unscopables"),an(i.JSON,"JSON",!0),an(Math,"Math",!0);var Ah=Ct.f,jh=dt("metadata"),kh=Function.prototype;void 0===kh[jh]&&Ah(kh,jh,{value:null});var Ih=Ct.f,Th=Rt.f,Mh=i.Symbol;if(bl("asyncDispose"),Mh){var Lh=Th(Mh,"asyncDispose");Lh.enumerable&&Lh.configurable&&Lh.writable&&Ih(Mh,"asyncDispose",{value:Lh.value,enumerable:!1,configurable:!1,writable:!1})}var Uh=Ct.f,Nh=Rt.f,Ch=i.Symbol;if(bl("dispose"),Ch){var _h=Nh(Ch,"dispose");_h.enumerable&&_h.configurable&&_h.writable&&Uh(Ch,"dispose",{value:_h.value,enumerable:!1,configurable:!1,writable:!1})}bl("metadata");var Fh=L("Symbol"),Bh=Fh.keyFor,Dh=b(Fh.prototype.valueOf),zh=Fh.isRegisteredSymbol||function(t){try{return void 0!==Bh(Dh(t))}catch(t){return!1}};Ce({target:"Symbol",stat:!0},{isRegisteredSymbol:zh});for(var Wh=L("Symbol"),qh=Wh.isWellKnownSymbol,Hh=L("Object","getOwnPropertyNames"),$h=b(Wh.prototype.valueOf),Kh=nt("wks"),Gh=0,Vh=Hh(Wh),Yh=Vh.length;Gh<Yh;Gh++)try{var Xh=Vh[Gh];G(Wh[Xh])&&dt(Xh)}catch(t){}var Jh=function(t){if(qh&&qh(t))return!0;try{for(var e=$h(t),r=0,n=Hh(Kh),o=n.length;r<o;r++)if(Kh[n[r]]==e)return!0}catch(t){}return!1};Ce({target:"Symbol",stat:!0,forced:!0},{isWellKnownSymbol:Jh}),bl("customMatcher"),bl("observable"),Ce({target:"Symbol",stat:!0,name:"isRegisteredSymbol"},{isRegistered:zh}),Ce({target:"Symbol",stat:!0,name:"isWellKnownSymbol",forced:!0},{isWellKnown:Jh}),bl("matcher"),bl("metadataKey"),bl("patternMatch"),bl("replaceAll"),yl.f("asyncIterator");var Qh=Gr.codeAt;Ce({target:"String",proto:!0},{codePointAt:function(t){return Qh(this,t)}}),Ze("String","codePointAt");var Zh=TypeError,tp=function(t){if(es(t))throw new Zh("The method doesn't accept regular expressions");return t},ep=dt("match"),rp=function(t){var e=/./;try{"/./"[t](e)}catch(r){try{return e[ep]=!1,"/./"[t](e)}catch(t){}}return!1},np=Rt.f,op=or("".slice),ip=Math.min,ap=rp("endsWith"),up=!ap&&!!function(){var t=np(String.prototype,"endsWith");return t&&!t.writable}();Ce({target:"String",proto:!0,forced:!up&&!ap},{endsWith:function(t){var e=Wr(j(this));tp(t);var r=arguments.length>1?arguments[1]:void 0,n=e.length,o=void 0===r?n:ip(ve(r),n),i=Wr(t);return op(e,o-i.length,o)===i}}),Ze("String","endsWith");var sp=RangeError,cp=String.fromCharCode,fp=String.fromCodePoint,lp=b([].join);Ce({target:"String",stat:!0,arity:1,forced:!!fp&&1!==fp.length},{fromCodePoint:function(t){for(var e,r=[],n=arguments.length,o=0;n>o;){if(e=+arguments[o++],he(e,1114111)!==e)throw new sp(e+" is not a valid code point");r[o]=e<65536?cp(e):cp(55296+((e-=65536)>>10),e%1024+56320)}return lp(r,"")}});var hp=b("".indexOf);Ce({target:"String",proto:!0,forced:!rp("includes")},{includes:function(t){return!!~hp(Wr(j(this)),Wr(tp(t)),arguments.length>1?arguments[1]:void 0)}}),Ze("String","includes"),b(un.String);var pp=/Version\/10(?:\.\d+){1,2}(?: [\w./]+)?(?: Mobile\/\w+)? Safari\//.test(_),vp=Xc.start;Ce({target:"String",proto:!0,forced:pp},{padStart:function(t){return vp(this,t,arguments.length>1?arguments[1]:void 0)}}),Ze("String","padStart");var dp=Xc.end;Ce({target:"String",proto:!0,forced:pp},{padEnd:function(t){return dp(this,t,arguments.length>1?arguments[1]:void 0)}}),Ze("String","padEnd");var gp=b([].push),yp=b([].join);Ce({target:"String",stat:!0},{raw:function(t){var e=k(it(t).raw),r=de(e);if(!r)return"";for(var n=arguments.length,o=[],i=0;;){if(gp(o,Wr(e[i++])),i===r)return yp(o,"");i<n&&gp(o,Wr(arguments[i]))}}}),Ce({target:"String",proto:!0},{repeat:$c}),Ze("String","repeat");var mp=Rt.f,bp=or("".slice),wp=Math.min,Sp=rp("startsWith"),Ep=!Sp&&!!function(){var t=mp(String.prototype,"startsWith");return t&&!t.writable}();Ce({target:"String",proto:!0,forced:!Ep&&!Sp},{startsWith:function(t){var e=Wr(j(this));tp(t);var r=ve(wp(arguments.length>1?arguments[1]:void 0,e.length)),n=Wr(t);return bp(e,r,r+n.length)===n}}),Ze("String","startsWith");var Op=zt.PROPER,xp=function(t){return a(function(){return!!Mi[t]()||"​…᠎"!=="​…᠎"[t]()||Op&&Mi[t].name!==t})},Rp=_i.start,Pp=xp("trimStart")?function(){return Rp(this)}:"".trimStart;Ce({target:"String",proto:!0,name:"trimStart",forced:"".trimLeft!==Pp},{trimLeft:Pp}),Ce({target:"String",proto:!0,name:"trimStart",forced:"".trimStart!==Pp},{trimStart:Pp}),Ze("String","trimLeft");var Ap=_i.end,jp=xp("trimEnd")?function(){return Ap(this)}:"".trimEnd;Ce({target:"String",proto:!0,name:"trimEnd",forced:"".trimRight!==jp},{trimRight:jp}),Ce({target:"String",proto:!0,name:"trimEnd",forced:"".trimEnd!==jp},{trimEnd:jp}),Ze("String","trimRight");var kp=Object.getOwnPropertyDescriptor,Ip=function(t){if(!u)return i[t];var e=kp(i,t);return e&&e.value},Tp=dt("iterator"),Mp=!a(function(){var t=new URL("b?a=1&b=2&c=3","https://a"),e=t.searchParams,r=new URLSearchParams("a=1&a=2&b=3"),n="";return t.pathname="c%20d",e.forEach(function(t,r){e.delete("b"),n+=r+t}),r.delete("a",2),r.delete("b",void 0),!e.size&&!u||!e.sort||"https://a/c%20d?a=1&c=3"!==t.href||"3"!==e.get("c")||"a=1"!==String(new URLSearchParams("?a=1"))||!e[Tp]||"a"!==new URL("https://a@b").username||"b"!==new URLSearchParams(new URLSearchParams("a=b")).get("a")||"xn--e1aybc"!==new URL("https://тест").host||"#%D0%B1"!==new URL("https://a#б").hash||"a1c3"!==n||"x"!==new URL("https://x",void 0).host}),Lp=TypeError,Up=function(t,e){if(t<e)throw new Lp("Not enough arguments");return t},Np=Math.floor,Cp=function(t,e){var r=t.length;if(r<8)for(var n,o,i=1;i<r;){for(o=i,n=t[i];o&&e(t[o-1],n)>0;)t[o]=t[--o];o!==i++&&(t[o]=n)}else for(var a=Np(r/2),u=Cp(vo(t,0,a),e),s=Cp(vo(t,a),e),c=u.length,f=s.length,l=0,h=0;l<c||h<f;)t[l+h]=l<c&&h<f?e(u[l],s[h])<=0?u[l++]:s[h++]:l<c?u[l++]:s[h++];return t},_p=Cp,Fp=dt("iterator"),Bp="URLSearchParams",Dp=Bp+"Iterator",zp=ne.set,Wp=ne.getterFor(Bp),qp=ne.getterFor(Dp),Hp=Ip("fetch"),$p=Ip("Request"),Kp=Ip("Headers"),Gp=$p&&$p.prototype,Vp=Kp&&Kp.prototype,Yp=i.TypeError,Xp=i.encodeURIComponent,Jp=String.fromCharCode,Qp=L("String","fromCodePoint"),Zp=parseInt,tv=b("".charAt),ev=b([].join),rv=b([].push),nv=b("".replace),ov=b([].shift),iv=b([].splice),av=b("".split),uv=b("".slice),sv=b(/./.exec),cv=/\+/g,fv=/^[0-9a-f]+$/i,lv=function(t,e){var r=uv(t,e,e+2);return sv(fv,r)?Zp(r,16):NaN},hv=function(t){for(var e=0,r=128;r>0&&0!=(t&r);r>>=1)e++;return e},pv=function(t){var e=null;switch(t.length){case 1:e=t[0];break;case 2:e=(31&t[0])<<6|63&t[1];break;case 3:e=(15&t[0])<<12|(63&t[1])<<6|63&t[2];break;case 4:e=(7&t[0])<<18|(63&t[1])<<12|(63&t[2])<<6|63&t[3]}return e>1114111?null:e},vv=function(t){for(var e=(t=nv(t,cv," ")).length,r="",n=0;n<e;){var o=tv(t,n);if("%"===o){if("%"===tv(t,n+1)||n+3>e){r+="%",n++;continue}var i=lv(t,n+1);if(i!=i){r+=o,n++;continue}n+=2;var a=hv(i);if(0===a)o=Jp(i);else{if(1===a||a>4){r+="�",n++;continue}for(var u=[i],s=1;s<a&&!(3+ ++n>e||"%"!==tv(t,n));){var c=lv(t,n+1);if(c!=c){n+=3;break}if(c>191||c<128)break;rv(u,c),n+=2,s++}if(u.length!==a){r+="�";continue}var f=pv(u);null===f?r+="�":o=Qp(f)}}r+=o,n++}return r},dv=/[!'()~]|%20/g,gv={"!":"%21","'":"%27","(":"%28",")":"%29","~":"%7E","%20":"+"},yv=function(t){return gv[t]},mv=function(t){return nv(Xp(t),dv,yv)},bv=fn(function(t,e){zp(this,{type:Dp,target:Wp(t).entries,index:0,kind:e})},Bp,function(){var t=qp(this),e=t.target,r=t.index++;if(!e||r>=e.length)return t.target=null,Pn(void 0,!0);var n=e[r];switch(t.kind){case"keys":return Pn(n.key,!1);case"values":return Pn(n.value,!1)}return Pn([n.key,n.value],!1)},!0),wv=function(t){this.entries=[],this.url=null,void 0!==t&&(M(t)?this.parseObject(t):this.parseQuery("string"==typeof t?"?"===tv(t,0)?uv(t,1):t:Wr(t)))};wv.prototype={type:Bp,bindURL:function(t){this.url=t,this.update()},parseObject:function(t){var e,r,n,o,i,a,u,s=this.entries,c=Fn(t);if(c)for(r=(e=Dn(t,c)).next;!(n=f(r,e)).done;){if(o=Dn(kt(n.value)),(a=f(i=o.next,o)).done||(u=f(i,o)).done||!f(i,o).done)throw new Yp("Expected sequence with length 2");rv(s,{key:Wr(a.value),value:Wr(u.value)})}else for(var l in t)ut(t,l)&&rv(s,{key:l,value:Wr(t[l])})},parseQuery:function(t){if(t)for(var e,r,n=this.entries,o=av(t,"&"),i=0;i<o.length;)(e=o[i++]).length&&(r=av(e,"="),rv(n,{key:vv(ov(r)),value:vv(ev(r,"="))}))},serialize:function(){for(var t,e=this.entries,r=[],n=0;n<e.length;)t=e[n++],rv(r,mv(t.key)+"="+mv(t.value));return ev(r,"&")},update:function(){this.entries.length=0,this.parseQuery(this.url.query)},updateURL:function(){this.url&&this.url.update()}};var Sv=function(){ko(this,Ev);var t=zp(this,new wv(arguments.length>0?arguments[0]:void 0));u||(this.size=t.entries.length)},Ev=Sv.prototype;if(Mo(Ev,{append:function(t,e){var r=Wp(this);Up(arguments.length,2),rv(r.entries,{key:Wr(t),value:Wr(e)}),u||this.length++,r.updateURL()},delete:function(t){for(var e=Wp(this),r=Up(arguments.length,1),n=e.entries,o=Wr(t),i=r<2?void 0:arguments[1],a=void 0===i?i:Wr(i),s=0;s<n.length;){var c=n[s];if(c.key!==o||void 0!==a&&c.value!==a)s++;else if(iv(n,s,1),void 0!==a)break}u||(this.size=n.length),e.updateURL()},get:function(t){var e=Wp(this).entries;Up(arguments.length,1);for(var r=Wr(t),n=0;n<e.length;n++)if(e[n].key===r)return e[n].value;return null},getAll:function(t){var e=Wp(this).entries;Up(arguments.length,1);for(var r=Wr(t),n=[],o=0;o<e.length;o++)e[o].key===r&&rv(n,e[o].value);return n},has:function(t){for(var e=Wp(this).entries,r=Up(arguments.length,1),n=Wr(t),o=r<2?void 0:arguments[1],i=void 0===o?o:Wr(o),a=0;a<e.length;){var u=e[a++];if(u.key===n&&(void 0===i||u.value===i))return!0}return!1},set:function(t,e){var r=Wp(this);Up(arguments.length,1);for(var n,o=r.entries,i=!1,a=Wr(t),s=Wr(e),c=0;c<o.length;c++)(n=o[c]).key===a&&(i?iv(o,c--,1):(i=!0,n.value=s));i||rv(o,{key:a,value:s}),u||(this.size=o.length),r.updateURL()},sort:function(){var t=Wp(this);_p(t.entries,function(t,e){return t.key>e.key?1:-1}),t.updateURL()},forEach:function(t){for(var e,r=Wp(this).entries,n=ar(t,arguments.length>1?arguments[1]:void 0),o=0;o<r.length;)n((e=r[o++]).value,e.key,this)},keys:function(){return new bv(this,"keys")},values:function(){return new bv(this,"values")},entries:function(){return new bv(this,"entries")}},{enumerable:!0}),ie(Ev,Fp,Ev.entries,{name:"entries"}),ie(Ev,"toString",function(){return Wp(this).serialize()},{enumerable:!0}),u&&so(Ev,"size",{get:function(){return Wp(this).entries.length},configurable:!0,enumerable:!0}),an(Sv,Bp),Ce({global:!0,constructor:!0,forced:!Mp},{URLSearchParams:Sv}),!Mp&&T(Kp)){var Ov=b(Vp.has),xv=b(Vp.set),Rv=function(t){if(M(t)){var e,r=t.body;if(pr(r)===Bp)return e=t.headers?new Kp(t.headers):new Kp,Ov(e,"content-type")||xv(e,"content-type","application/x-www-form-urlencoded;charset=UTF-8"),Ve(t,{body:d(0,Wr(r)),headers:d(0,e)})}return t};if(T(Hp)&&Ce({global:!0,enumerable:!0,dontCallGetSet:!0,forced:!0},{fetch:function(t){return Hp(t,arguments.length>1?Rv(arguments[1]):{})}}),T($p)){var Pv=function(t){return ko(this,Gp),new $p(t,arguments.length>1?Rv(arguments[1]):{})};Gp.constructor=Pv,Pv.prototype=Gp,Ce({global:!0,constructor:!0,dontCallGetSet:!0,forced:!0},{Request:Pv})}}var Av={URLSearchParams:Sv,getState:Wp},jv=URLSearchParams,kv=jv.prototype,Iv=b(kv.append),Tv=b(kv.delete),Mv=b(kv.forEach),Lv=b([].push),Uv=new jv("a=1&a=2&b=3");Uv.delete("a",1),Uv.delete("b",void 0),Uv+""!="a=2"&&ie(kv,"delete",function(t){var e=arguments.length,r=e<2?void 0:arguments[1];if(e&&void 0===r)return Tv(this,t);var n=[];Mv(this,function(t,e){Lv(n,{key:e,value:t})}),Up(e,1);for(var o,i=Wr(t),a=Wr(r),u=0,s=0,c=!1,f=n.length;u<f;)o=n[u++],c||o.key===i?(c=!0,Tv(this,o.key)):s++;for(;s<f;)(o=n[s++]).key===i&&o.value===a||Iv(this,o.key,o.value)},{enumerable:!0,unsafe:!0});var Nv=URLSearchParams,Cv=Nv.prototype,_v=b(Cv.getAll),Fv=b(Cv.has),Bv=new Nv("a=1");!Bv.has("a",2)&&Bv.has("a",void 0)||ie(Cv,"has",function(t){var e=arguments.length,r=e<2?void 0:arguments[1];if(e&&void 0===r)return Fv(this,t);var n=_v(this,t);Up(e,1);for(var o=Wr(r),i=0;i<n.length;)if(n[i++]===o)return!0;return!1},{enumerable:!0,unsafe:!0});var Dv=URLSearchParams.prototype,zv=b(Dv.forEach);u&&!("size"in Dv)&&so(Dv,"size",{get:function(){var t=0;return zv(this,function(){t++}),t},configurable:!0,enumerable:!0});var Wv,qv=Object.assign,Hv=Object.defineProperty,$v=b([].concat),Kv=!qv||a(function(){if(u&&1!==qv({b:1},qv(Hv({},"a",{enumerable:!0,get:function(){Hv(this,"b",{value:3,enumerable:!1})}}),{b:2})).b)return!0;var t={},e={},r=Symbol("assign detection"),n="abcdefghijklmnopqrst";return t[r]=7,n.split("").forEach(function(t){e[t]=t}),7!==qv({},t)[r]||_e(qv({},e)).join("")!==n})?function(t,e){for(var r=it(t),n=arguments.length,o=1,i=xe.f,a=v.f;n>o;)for(var s,c=R(arguments[o++]),l=i?$v(_e(c),i(c)):_e(c),h=l.length,p=0;h>p;)s=l[p++],u&&!f(a,c,s)||(r[s]=c[s]);return r}:qv,Gv=2147483647,Vv=/[^\0-\u007E]/,Yv=/[.\u3002\uFF0E\uFF61]/g,Xv="Overflow: input needs wider integers to process",Jv=RangeError,Qv=b(Yv.exec),Zv=Math.floor,td=String.fromCharCode,ed=b("".charCodeAt),rd=b([].join),nd=b([].push),od=b("".replace),id=b("".split),ad=b("".toLowerCase),ud=function(t){return t+22+75*(t<26)},sd=function(t,e,r){var n=0;for(t=r?Zv(t/700):t>>1,t+=Zv(t/e);t>455;)t=Zv(t/35),n+=36;return Zv(n+36*t/(t+38))},cd=function(t){var e=[];t=function(t){for(var e=[],r=0,n=t.length;r<n;){var o=ed(t,r++);if(o>=55296&&o<=56319&&r<n){var i=ed(t,r++);56320==(64512&i)?nd(e,((1023&o)<<10)+(1023&i)+65536):(nd(e,o),r--)}else nd(e,o)}return e}(t);var r,n,o=t.length,i=128,a=0,u=72;for(r=0;r<t.length;r++)(n=t[r])<128&&nd(e,td(n));var s=e.length,c=s;for(s&&nd(e,"-");c<o;){var f=Gv;for(r=0;r<t.length;r++)(n=t[r])>=i&&n<f&&(f=n);var l=c+1;if(f-i>Zv((Gv-a)/l))throw new Jv(Xv);for(a+=(f-i)*l,i=f,r=0;r<t.length;r++){if((n=t[r])<i&&++a>Gv)throw new Jv(Xv);if(n===i){for(var h=a,p=36;;){var v=p<=u?1:p>=u+26?26:p-u;if(h<v)break;var d=h-v,g=36-v;nd(e,td(ud(v+d%g))),h=Zv(d/g),p+=36}nd(e,td(ud(h))),u=sd(a,l,c===s),a=0,c++}}a++,i++}return rd(e,"")},fd=Gr.codeAt,ld=ne.set,hd=ne.getterFor("URL"),pd=Av.URLSearchParams,vd=Av.getState,dd=i.URL,gd=i.TypeError,yd=i.parseInt,md=Math.floor,bd=Math.pow,wd=b("".charAt),Sd=b(/./.exec),Ed=b([].join),Od=b(1..toString),xd=b([].pop),Rd=b([].push),Pd=b("".replace),Ad=b([].shift),jd=b("".split),kd=b("".slice),Id=b("".toLowerCase),Td=b([].unshift),Md="Invalid scheme",Ld="Invalid host",Ud="Invalid port",Nd=/[a-z]/i,Cd=/[\d+-.a-z]/i,_d=/\d/,Fd=/^0x/i,Bd=/^[0-7]+$/,Dd=/^\d+$/,zd=/^[\da-f]+$/i,Wd=/[\0\t\n\r #%/:<>?@[\\\]^|]/,qd=/[\0\t\n\r #/:<>?@[\\\]^|]/,Hd=/^[\u0000-\u0020]+/,$d=/(^|[^\u0000-\u0020])[\u0000-\u0020]+$/,Kd=/[\t\n\r]/g,Gd=function(t){var e,r,n,o;if("number"==typeof t){for(e=[],r=0;r<4;r++)Td(e,t%256),t=md(t/256);return Ed(e,".")}if("object"==typeof t){for(e="",n=function(t){for(var e=null,r=1,n=null,o=0,i=0;i<8;i++)0!==t[i]?(o>r&&(e=n,r=o),n=null,o=0):(null===n&&(n=i),++o);return o>r?n:e}(t),r=0;r<8;r++)o&&0===t[r]||(o&&(o=!1),n===r?(e+=r?":":"::",o=!0):(e+=Od(t[r],16),r<7&&(e+=":")));return"["+e+"]"}return t},Vd={},Yd=Kv({},Vd,{" ":1,'"':1,"<":1,">":1,"`":1}),Xd=Kv({},Yd,{"#":1,"?":1,"{":1,"}":1}),Jd=Kv({},Xd,{"/":1,":":1,";":1,"=":1,"@":1,"[":1,"\\":1,"]":1,"^":1,"|":1}),Qd=function(t,e){var r=fd(t,0);return r>32&&r<127&&!ut(e,t)?t:encodeURIComponent(t)},Zd={ftp:21,file:null,http:80,https:443,ws:80,wss:443},tg=function(t,e){var r;return 2===t.length&&Sd(Nd,wd(t,0))&&(":"===(r=wd(t,1))||!e&&"|"===r)},eg=function(t){var e;return t.length>1&&tg(kd(t,0,2))&&(2===t.length||"/"===(e=wd(t,2))||"\\"===e||"?"===e||"#"===e)},rg=function(t){return"."===t||"%2e"===Id(t)},ng={},og={},ig={},ag={},ug={},sg={},cg={},fg={},lg={},hg={},pg={},vg={},dg={},gg={},yg={},mg={},bg={},wg={},Sg={},Eg={},Og={},xg=function(t,e,r){var n,o,i,a=Wr(t);if(e){if(o=this.parse(a))throw new gd(o);this.searchParams=null}else{if(void 0!==r&&(n=new xg(r,!0)),o=this.parse(a,null,n))throw new gd(o);(i=vd(new pd)).bindURL(this),this.searchParams=i}};xg.prototype={type:"URL",parse:function(t,e,r){var n,o,i,a,u,s=this,c=e||ng,f=0,l="",h=!1,p=!1,v=!1;for(t=Wr(t),e||(s.scheme="",s.username="",s.password="",s.host=null,s.port=null,s.path=[],s.query=null,s.fragment=null,s.cannotBeABaseURL=!1,t=Pd(t,Hd,""),t=Pd(t,$d,"$1")),t=Pd(t,Kd,""),n=Wn(t);f<=n.length;){switch(o=n[f],c){case ng:if(!o||!Sd(Nd,o)){if(e)return Md;c=ig;continue}l+=Id(o),c=og;break;case og:if(o&&(Sd(Cd,o)||"+"===o||"-"===o||"."===o))l+=Id(o);else{if(":"!==o){if(e)return Md;l="",c=ig,f=0;continue}if(e&&(s.isSpecial()!==ut(Zd,l)||"file"===l&&(s.includesCredentials()||null!==s.port)||"file"===s.scheme&&!s.host))return;if(s.scheme=l,e)return void(s.isSpecial()&&Zd[s.scheme]===s.port&&(s.port=null));l="","file"===s.scheme?c=gg:s.isSpecial()&&r&&r.scheme===s.scheme?c=ag:s.isSpecial()?c=fg:"/"===n[f+1]?(c=ug,f++):(s.cannotBeABaseURL=!0,Rd(s.path,""),c=Sg)}break;case ig:if(!r||r.cannotBeABaseURL&&"#"!==o)return Md;if(r.cannotBeABaseURL&&"#"===o){s.scheme=r.scheme,s.path=vo(r.path),s.query=r.query,s.fragment="",s.cannotBeABaseURL=!0,c=Og;break}c="file"===r.scheme?gg:sg;continue;case ag:if("/"!==o||"/"!==n[f+1]){c=sg;continue}c=lg,f++;break;case ug:if("/"===o){c=hg;break}c=wg;continue;case sg:if(s.scheme=r.scheme,o===Wv)s.username=r.username,s.password=r.password,s.host=r.host,s.port=r.port,s.path=vo(r.path),s.query=r.query;else if("/"===o||"\\"===o&&s.isSpecial())c=cg;else if("?"===o)s.username=r.username,s.password=r.password,s.host=r.host,s.port=r.port,s.path=vo(r.path),s.query="",c=Eg;else{if("#"!==o){s.username=r.username,s.password=r.password,s.host=r.host,s.port=r.port,s.path=vo(r.path),s.path.length--,c=wg;continue}s.username=r.username,s.password=r.password,s.host=r.host,s.port=r.port,s.path=vo(r.path),s.query=r.query,s.fragment="",c=Og}break;case cg:if(!s.isSpecial()||"/"!==o&&"\\"!==o){if("/"!==o){s.username=r.username,s.password=r.password,s.host=r.host,s.port=r.port,c=wg;continue}c=hg}else c=lg;break;case fg:if(c=lg,"/"!==o||"/"!==wd(l,f+1))continue;f++;break;case lg:if("/"!==o&&"\\"!==o){c=hg;continue}break;case hg:if("@"===o){h&&(l="%40"+l),h=!0,i=Wn(l);for(var d=0;d<i.length;d++){var g=i[d];if(":"!==g||v){var y=Qd(g,Jd);v?s.password+=y:s.username+=y}else v=!0}l=""}else if(o===Wv||"/"===o||"?"===o||"#"===o||"\\"===o&&s.isSpecial()){if(h&&""===l)return"Invalid authority";f-=Wn(l).length+1,l="",c=pg}else l+=o;break;case pg:case vg:if(e&&"file"===s.scheme){c=mg;continue}if(":"!==o||p){if(o===Wv||"/"===o||"?"===o||"#"===o||"\\"===o&&s.isSpecial()){if(s.isSpecial()&&""===l)return Ld;if(e&&""===l&&(s.includesCredentials()||null!==s.port))return;if(a=s.parseHost(l))return a;if(l="",c=bg,e)return;continue}"["===o?p=!0:"]"===o&&(p=!1),l+=o}else{if(""===l)return Ld;if(a=s.parseHost(l))return a;if(l="",c=dg,e===vg)return}break;case dg:if(!Sd(_d,o)){if(o===Wv||"/"===o||"?"===o||"#"===o||"\\"===o&&s.isSpecial()||e){if(""!==l){var m=yd(l,10);if(m>65535)return Ud;s.port=s.isSpecial()&&m===Zd[s.scheme]?null:m,l=""}if(e)return;c=bg;continue}return Ud}l+=o;break;case gg:if(s.scheme="file","/"===o||"\\"===o)c=yg;else{if(!r||"file"!==r.scheme){c=wg;continue}switch(o){case Wv:s.host=r.host,s.path=vo(r.path),s.query=r.query;break;case"?":s.host=r.host,s.path=vo(r.path),s.query="",c=Eg;break;case"#":s.host=r.host,s.path=vo(r.path),s.query=r.query,s.fragment="",c=Og;break;default:eg(Ed(vo(n,f),""))||(s.host=r.host,s.path=vo(r.path),s.shortenPath()),c=wg;continue}}break;case yg:if("/"===o||"\\"===o){c=mg;break}r&&"file"===r.scheme&&!eg(Ed(vo(n,f),""))&&(tg(r.path[0],!0)?Rd(s.path,r.path[0]):s.host=r.host),c=wg;continue;case mg:if(o===Wv||"/"===o||"\\"===o||"?"===o||"#"===o){if(!e&&tg(l))c=wg;else if(""===l){if(s.host="",e)return;c=bg}else{if(a=s.parseHost(l))return a;if("localhost"===s.host&&(s.host=""),e)return;l="",c=bg}continue}l+=o;break;case bg:if(s.isSpecial()){if(c=wg,"/"!==o&&"\\"!==o)continue}else if(e||"?"!==o)if(e||"#"!==o){if(o!==Wv&&(c=wg,"/"!==o))continue}else s.fragment="",c=Og;else s.query="",c=Eg;break;case wg:if(o===Wv||"/"===o||"\\"===o&&s.isSpecial()||!e&&("?"===o||"#"===o)){if(".."===(u=Id(u=l))||"%2e."===u||".%2e"===u||"%2e%2e"===u?(s.shortenPath(),"/"===o||"\\"===o&&s.isSpecial()||Rd(s.path,"")):rg(l)?"/"===o||"\\"===o&&s.isSpecial()||Rd(s.path,""):("file"===s.scheme&&!s.path.length&&tg(l)&&(s.host&&(s.host=""),l=wd(l,0)+":"),Rd(s.path,l)),l="","file"===s.scheme&&(o===Wv||"?"===o||"#"===o))for(;s.path.length>1&&""===s.path[0];)Ad(s.path);"?"===o?(s.query="",c=Eg):"#"===o&&(s.fragment="",c=Og)}else l+=Qd(o,Xd);break;case Sg:"?"===o?(s.query="",c=Eg):"#"===o?(s.fragment="",c=Og):o!==Wv&&(s.path[0]+=Qd(o,Vd));break;case Eg:e||"#"!==o?o!==Wv&&("'"===o&&s.isSpecial()?s.query+="%27":s.query+="#"===o?"%23":Qd(o,Vd)):(s.fragment="",c=Og);break;case Og:o!==Wv&&(s.fragment+=Qd(o,Yd))}f++}},parseHost:function(t){var e,r,n;if("["===wd(t,0)){if("]"!==wd(t,t.length-1))return Ld;if(e=function(t){var e,r,n,o,i,a,u,s=[0,0,0,0,0,0,0,0],c=0,f=null,l=0,h=function(){return wd(t,l)};if(":"===h()){if(":"!==wd(t,1))return;l+=2,f=++c}for(;h();){if(8===c)return;if(":"!==h()){for(e=r=0;r<4&&Sd(zd,h());)e=16*e+yd(h(),16),l++,r++;if("."===h()){if(0===r)return;if(l-=r,c>6)return;for(n=0;h();){if(o=null,n>0){if(!("."===h()&&n<4))return;l++}if(!Sd(_d,h()))return;for(;Sd(_d,h());){if(i=yd(h(),10),null===o)o=i;else{if(0===o)return;o=10*o+i}if(o>255)return;l++}s[c]=256*s[c]+o,2!=++n&&4!==n||c++}if(4!==n)return;break}if(":"===h()){if(l++,!h())return}else if(h())return;s[c++]=e}else{if(null!==f)return;l++,f=++c}}if(null!==f)for(a=c-f,c=7;0!==c&&a>0;)u=s[c],s[c--]=s[f+a-1],s[f+--a]=u;else if(8!==c)return;return s}(kd(t,1,-1)),!e)return Ld;this.host=e}else if(this.isSpecial()){if(t=function(t){var e,r,n=[],o=id(od(ad(t),Yv,"."),".");for(e=0;e<o.length;e++)nd(n,Qv(Vv,r=o[e])?"xn--"+cd(r):r);return rd(n,".")}(t),Sd(Wd,t))return Ld;if(e=function(t){var e,r,n,o,i,a,u,s=jd(t,".");if(s.length&&""===s[s.length-1]&&s.length--,(e=s.length)>4)return t;for(r=[],n=0;n<e;n++){if(""===(o=s[n]))return t;if(i=10,o.length>1&&"0"===wd(o,0)&&(i=Sd(Fd,o)?16:8,o=kd(o,8===i?1:2)),""===o)a=0;else{if(!Sd(10===i?Dd:8===i?Bd:zd,o))return t;a=yd(o,i)}Rd(r,a)}for(n=0;n<e;n++)if(a=r[n],n===e-1){if(a>=bd(256,5-e))return null}else if(a>255)return null;for(u=xd(r),n=0;n<r.length;n++)u+=r[n]*bd(256,3-n);return u}(t),null===e)return Ld;this.host=e}else{if(Sd(qd,t))return Ld;for(e="",r=Wn(t),n=0;n<r.length;n++)e+=Qd(r[n],Vd);this.host=e}},cannotHaveUsernamePasswordPort:function(){return!this.host||this.cannotBeABaseURL||"file"===this.scheme},includesCredentials:function(){return""!==this.username||""!==this.password},isSpecial:function(){return ut(Zd,this.scheme)},shortenPath:function(){var t=this.path,e=t.length;!e||"file"===this.scheme&&1===e&&tg(t[0],!0)||t.length--},serialize:function(){var t=this,e=t.scheme,r=t.username,n=t.password,o=t.host,i=t.port,a=t.path,u=t.query,s=t.fragment,c=e+":";return null!==o?(c+="//",t.includesCredentials()&&(c+=r+(n?":"+n:"")+"@"),c+=Gd(o),null!==i&&(c+=":"+i)):"file"===e&&(c+="//"),c+=t.cannotBeABaseURL?a[0]:a.length?"/"+Ed(a,"/"):"",null!==u&&(c+="?"+u),null!==s&&(c+="#"+s),c},setHref:function(t){var e=this.parse(t);if(e)throw new gd(e);this.searchParams.update()},getOrigin:function(){var t=this.scheme,e=this.port;if("blob"===t)try{return new Rg(t.path[0]).origin}catch(t){return"null"}return"file"!==t&&this.isSpecial()?t+"://"+Gd(this.host)+(null!==e?":"+e:""):"null"},getProtocol:function(){return this.scheme+":"},setProtocol:function(t){this.parse(Wr(t)+":",ng)},getUsername:function(){return this.username},setUsername:function(t){var e=Wn(Wr(t));if(!this.cannotHaveUsernamePasswordPort()){this.username="";for(var r=0;r<e.length;r++)this.username+=Qd(e[r],Jd)}},getPassword:function(){return this.password},setPassword:function(t){var e=Wn(Wr(t));if(!this.cannotHaveUsernamePasswordPort()){this.password="";for(var r=0;r<e.length;r++)this.password+=Qd(e[r],Jd)}},getHost:function(){var t=this.host,e=this.port;return null===t?"":null===e?Gd(t):Gd(t)+":"+e},setHost:function(t){this.cannotBeABaseURL||this.parse(t,pg)},getHostname:function(){var t=this.host;return null===t?"":Gd(t)},setHostname:function(t){this.cannotBeABaseURL||this.parse(t,vg)},getPort:function(){var t=this.port;return null===t?"":Wr(t)},setPort:function(t){this.cannotHaveUsernamePasswordPort()||(""===(t=Wr(t))?this.port=null:this.parse(t,dg))},getPathname:function(){var t=this.path;return this.cannotBeABaseURL?t[0]:t.length?"/"+Ed(t,"/"):""},setPathname:function(t){this.cannotBeABaseURL||(this.path=[],this.parse(t,bg))},getSearch:function(){var t=this.query;return t?"?"+t:""},setSearch:function(t){""===(t=Wr(t))?this.query=null:("?"===wd(t,0)&&(t=kd(t,1)),this.query="",this.parse(t,Eg)),this.searchParams.update()},getSearchParams:function(){return this.searchParams.facade},getHash:function(){var t=this.fragment;return t?"#"+t:""},setHash:function(t){""!==(t=Wr(t))?("#"===wd(t,0)&&(t=kd(t,1)),this.fragment="",this.parse(t,Og)):this.fragment=null},update:function(){this.query=this.searchParams.serialize()||null}};var Rg=function(t){var e=ko(this,Pg),r=Up(arguments.length,1)>1?arguments[1]:void 0,n=ld(e,new xg(t,!1,r));u||(e.href=n.serialize(),e.origin=n.getOrigin(),e.protocol=n.getProtocol(),e.username=n.getUsername(),e.password=n.getPassword(),e.host=n.getHost(),e.hostname=n.getHostname(),e.port=n.getPort(),e.pathname=n.getPathname(),e.search=n.getSearch(),e.searchParams=n.getSearchParams(),e.hash=n.getHash())},Pg=Rg.prototype,Ag=function(t,e){return{get:function(){return hd(this)[t]()},set:e&&function(t){return hd(this)[e](t)},configurable:!0,enumerable:!0}};if(u&&(so(Pg,"href",Ag("serialize","setHref")),so(Pg,"origin",Ag("getOrigin")),so(Pg,"protocol",Ag("getProtocol","setProtocol")),so(Pg,"username",Ag("getUsername","setUsername")),so(Pg,"password",Ag("getPassword","setPassword")),so(Pg,"host",Ag("getHost","setHost")),so(Pg,"hostname",Ag("getHostname","setHostname")),so(Pg,"port",Ag("getPort","setPort")),so(Pg,"pathname",Ag("getPathname","setPathname")),so(Pg,"search",Ag("getSearch","setSearch")),so(Pg,"searchParams",Ag("getSearchParams")),so(Pg,"hash",Ag("getHash","setHash"))),ie(Pg,"toJSON",function(){return hd(this).serialize()},{enumerable:!0}),ie(Pg,"toString",function(){return hd(this).serialize()},{enumerable:!0}),dd){var jg=dd.createObjectURL,kg=dd.revokeObjectURL;jg&&ie(Rg,"createObjectURL",ar(jg,dd)),kg&&ie(Rg,"revokeObjectURL",ar(kg,dd))}an(Rg,"URL"),Ce({global:!0,constructor:!0,forced:!Mp,sham:!u},{URL:Rg});var Ig=L("URL"),Tg=Mp&&a(function(){Ig.canParse()}),Mg=a(function(){return 1!==Ig.canParse.length});Ce({target:"URL",stat:!0,forced:!Tg||Mg},{canParse:function(t){var e=Up(arguments.length,1),r=Wr(t),n=e<2||void 0===arguments[1]?void 0:Wr(arguments[1]);try{return!!new Ig(r,n)}catch(t){return!1}}});var Lg=L("URL");Ce({target:"URL",stat:!0,forced:!Mp},{parse:function(t){var e=Up(arguments.length,1),r=Wr(t),n=e<2||void 0===arguments[1]?void 0:Wr(arguments[1]);try{return new Lg(r,n)}catch(t){return null}}}),Ce({target:"URL",proto:!0,enumerable:!0},{toJSON:function(){return f(URL.prototype.toString,this)}});var Ug=WeakMap.prototype,Ng={WeakMap:WeakMap,set:b(Ug.set),get:b(Ug.get),has:b(Ug.has),remove:b(Ug.delete)},Cg=Ng.has,_g=function(t){return Cg(t),t},Fg=Ng.get,Bg=Ng.has,Dg=Ng.set;Ce({target:"WeakMap",proto:!0,real:!0,forced:!0},{emplace:function(t,e){var r,n,o=_g(this);return Bg(o,t)?(r=Fg(o,t),"update"in e&&(r=e.update(r,t,o),Dg(o,t,r)),r):(n=e.insert(t,o),Dg(o,t,n),n)}}),Ce({target:"WeakMap",stat:!0,forced:!0},{from:ei(Ng.WeakMap,Ng.set,!0)}),Ce({target:"WeakMap",stat:!0,forced:!0},{of:ri(Ng.WeakMap,Ng.set,!0)});var zg=Ng.remove;Ce({target:"WeakMap",proto:!0,real:!0,forced:!0},{deleteAll:function(){for(var t,e=_g(this),r=!0,n=0,o=arguments.length;n<o;n++)t=zg(e,arguments[n]),r=r&&t;return!!r}}),Ce({target:"WeakMap",proto:!0,real:!0,forced:!0},{upsert:Ii}),To("WeakSet",function(t){return function(){return t(this,arguments.length?arguments[0]:void 0)}},eu);var Wg=WeakSet.prototype,qg={WeakSet:WeakSet,add:b(Wg.add),has:b(Wg.has),remove:b(Wg.delete)},Hg=qg.has,$g=function(t){return Hg(t),t},Kg=qg.add;Ce({target:"WeakSet",proto:!0,real:!0,forced:!0},{addAll:function(){for(var t=$g(this),e=0,r=arguments.length;e<r;e++)Kg(t,arguments[e]);return t}});var Gg=qg.remove;Ce({target:"WeakSet",proto:!0,real:!0,forced:!0},{deleteAll:function(){for(var t,e=$g(this),r=!0,n=0,o=arguments.length;n<o;n++)t=Gg(e,arguments[n]),r=r&&t;return!!r}}),Ce({target:"WeakSet",stat:!0,forced:!0},{from:ei(qg.WeakSet,qg.add,!1)}),Ce({target:"WeakSet",stat:!0,forced:!0},{of:ri(qg.WeakSet,qg.add,!1)});var Vg=Error,Yg=b("".replace),Xg=String(new Vg("zxcasd").stack),Jg=/\n\s*at [^:]*:[^\n]*/,Qg=Jg.test(Xg),Zg=!a(function(){var t=new Error("a");return!("stack"in t)||(Object.defineProperty(t,"stack",d(1,7)),7!==t.stack)}),ty=Error.captureStackTrace,ey=dt("toStringTag"),ry=Error,ny=[].push,oy=function(t,e){var r,n,o,i,a,u=U(iy,this);dn?r=dn(new ry,u?Qr(this):iy):(r=u?this:Ve(iy),_t(r,ey,"Error")),void 0!==e&&_t(r,"message",function(t,e){return void 0===t?arguments.length<2?"":e:Wr(t)}(e)),i=r,a=r.stack,Zg&&(ty?ty(i,oy):_t(i,"stack",function(t,e){if(Qg&&"string"==typeof t&&!Vg.prepareStackTrace)for(;e--;)t=Yg(t,Jg,"");return t}(a,1))),arguments.length>2&&(n=r,M(o=arguments[2])&&"cause"in o&&_t(n,"cause",o.cause));var s=[];return Ao(t,ny,{that:s}),_t(r,"errors",s),r};dn?dn(oy,ry):Ae(oy,ry,{name:!0});var iy=oy.prototype=Ve(ry.prototype,{constructor:d(1,oy),message:d(1,""),name:d(1,"AggregateError")});Ce({global:!0,constructor:!0,arity:2},{AggregateError:oy});var ay,uy,sy,cy,fy=function(t){return _.slice(0,t.length)===t},ly=fy("Bun/")?"BUN":fy("Cloudflare-Workers")?"CLOUDFLARE":fy("Deno/")?"DENO":fy("Node.js/")?"NODE":i.Bun&&"string"==typeof Bun.version?"BUN":i.Deno&&"object"==typeof Deno.version?"DENO":"process"===E(i.process)?"NODE":i.window&&i.document?"BROWSER":"REST",hy="NODE"===ly,py=/(?:ipad|iphone|ipod).*applewebkit/i.test(_),vy=i.setImmediate,dy=i.clearImmediate,gy=i.process,yy=i.Dispatch,my=i.Function,by=i.MessageChannel,wy=i.String,Sy=0,Ey={},Oy="onreadystatechange";a(function(){ay=i.location});var xy=function(t){if(ut(Ey,t)){var e=Ey[t];delete Ey[t],e()}},Ry=function(t){return function(){xy(t)}},Py=function(t){xy(t.data)},Ay=function(t){i.postMessage(wy(t),ay.protocol+"//"+ay.host)};vy&&dy||(vy=function(t){Up(arguments.length,1);var e=T(t)?t:my(t),r=vo(arguments,1);return Ey[++Sy]=function(){Ra(e,void 0,r)},uy(Sy),Sy},dy=function(t){delete Ey[t]},hy?uy=function(t){gy.nextTick(Ry(t))}:yy&&yy.now?uy=function(t){yy.now(Ry(t))}:by&&!py?(cy=(sy=new by).port2,sy.port1.onmessage=Py,uy=ar(cy.postMessage,cy)):i.addEventListener&&T(i.postMessage)&&!i.importScripts&&ay&&"file:"!==ay.protocol&&!a(Ay)?(uy=Ay,i.addEventListener("message",Py,!1)):uy=Oy in Et("script")?function(t){De.appendChild(Et("script"))[Oy]=function(){De.removeChild(this),xy(t)}}:function(t){setTimeout(Ry(t),0)});var jy={set:vy,clear:dy},ky=function(){this.head=null,this.tail=null};ky.prototype={add:function(t){var e={item:t,next:null},r=this.tail;r?r.next=e:this.head=e,this.tail=e},get:function(){var t=this.head;if(t)return null===(this.head=t.next)&&(this.tail=null),t.item}};var Iy,Ty,My,Ly,Uy,Ny=ky,Cy=/ipad|iphone|ipod/i.test(_)&&"undefined"!=typeof Pebble,_y=/web0s(?!.*chrome)/i.test(_),Fy=jy.set,By=i.MutationObserver||i.WebKitMutationObserver,Dy=i.document,zy=i.process,Wy=i.Promise,qy=Ip("queueMicrotask");if(!qy){var Hy=new Ny,$y=function(){var t,e;for(hy&&(t=zy.domain)&&t.exit();e=Hy.get();)try{e()}catch(t){throw Hy.head&&Iy(),t}t&&t.enter()};py||hy||_y||!By||!Dy?!Cy&&Wy&&Wy.resolve?((Ly=Wy.resolve(void 0)).constructor=Wy,Uy=ar(Ly.then,Ly),Iy=function(){Uy($y)}):hy?Iy=function(){zy.nextTick($y)}:(Fy=ar(Fy,i),Iy=function(){Fy($y)}):(Ty=!0,My=Dy.createTextNode(""),new By($y).observe(My,{characterData:!0}),Iy=function(){My.data=Ty=!Ty}),qy=function(t){Hy.head||Iy(),Hy.add(t)}}var Ky,Gy,Vy,Yy=qy,Xy=function(t){try{return{error:!1,value:t()}}catch(t){return{error:!0,value:t}}},Jy=i.Promise,Qy=dt("species"),Zy=!1,tm=T(i.PromiseRejectionEvent),em=Ue("Promise",function(){var t=Kt(Jy),e=t!==String(Jy);if(!e&&66===W)return!0;if(!W||W<51||!/native code/.test(t)){var r=new Jy(function(t){t(1)}),n=function(t){t(function(){},function(){})};if((r.constructor={})[Qy]=n,!(Zy=r.then(function(){})instanceof n))return!0}return!(e||"BROWSER"!==ly&&"DENO"!==ly||tm)}),rm={CONSTRUCTOR:em,REJECTION_EVENT:tm,SUBCLASSING:Zy},nm=TypeError,om=function(t){var e,r;this.promise=new t(function(t,n){if(void 0!==e||void 0!==r)throw new nm("Bad Promise constructor");e=t,r=n}),this.resolve=J(e),this.reject=J(r)},im={f:function(t){return new om(t)}},am=jy.set,um="Promise",sm=rm.CONSTRUCTOR,cm=rm.REJECTION_EVENT,fm=rm.SUBCLASSING,lm=ne.getterFor(um),hm=ne.set,pm=Jy&&Jy.prototype,vm=Jy,dm=pm,gm=i.TypeError,ym=i.document,mm=i.process,bm=im.f,wm=bm,Sm=!!(ym&&ym.createEvent&&i.dispatchEvent),Em="unhandledrejection",Om=function(t){var e;return!(!M(t)||!T(e=t.then))&&e},xm=function(t,e){var r,n,o,i=e.value,a=1===e.state,u=a?t.ok:t.fail,s=t.resolve,c=t.reject,l=t.domain;try{u?(a||(2===e.rejection&&km(e),e.rejection=1),!0===u?r=i:(l&&l.enter(),r=u(i),l&&(l.exit(),o=!0)),r===t.promise?c(new gm("Promise-chain cycle")):(n=Om(r))?f(n,r,s,c):s(r)):c(i)}catch(t){l&&!o&&l.exit(),c(t)}},Rm=function(t,e){t.notified||(t.notified=!0,Yy(function(){for(var r,n=t.reactions;r=n.get();)xm(r,t);t.notified=!1,e&&!t.rejection&&Am(t)}))},Pm=function(t,e,r){var n,o;Sm?((n=ym.createEvent("Event")).promise=e,n.reason=r,n.initEvent(t,!1,!0),i.dispatchEvent(n)):n={promise:e,reason:r},!cm&&(o=i["on"+t])?o(n):t===Em&&function(t,e){try{1===arguments.length?console.error(t):console.error(t,e)}catch(t){}}("Unhandled promise rejection",r)},Am=function(t){f(am,i,function(){var e,r=t.facade,n=t.value;if(jm(t)&&(e=Xy(function(){hy?mm.emit("unhandledRejection",n,r):Pm(Em,r,n)}),t.rejection=hy||jm(t)?2:1,e.error))throw e.value})},jm=function(t){return 1!==t.rejection&&!t.parent},km=function(t){f(am,i,function(){var e=t.facade;hy?mm.emit("rejectionHandled",e):Pm("rejectionhandled",e,t.value)})},Im=function(t,e,r){return function(n){t(e,n,r)}},Tm=function(t,e,r){t.done||(t.done=!0,r&&(t=r),t.value=e,t.state=2,Rm(t,!0))},Mm=function(t,e,r){if(!t.done){t.done=!0,r&&(t=r);try{if(t.facade===e)throw new gm("Promise can't be resolved itself");var n=Om(e);n?Yy(function(){var r={done:!1};try{f(n,e,Im(Mm,r,t),Im(Tm,r,t))}catch(e){Tm(r,e,t)}}):(t.value=e,t.state=1,Rm(t,!1))}catch(e){Tm({done:!1},e,t)}}};if(sm&&(vm=function(t){ko(this,dm),J(t),f(Ky,this);var e=lm(this);try{t(Im(Mm,e),Im(Tm,e))}catch(t){Tm(e,t)}},(Ky=function(t){hm(this,{type:um,done:!1,notified:!1,parent:!1,reactions:new Ny,rejection:!1,state:0,value:null})}).prototype=ie(dm=vm.prototype,"then",function(t,e){var r=lm(this),n=bm(Cc(this,vm));return r.parent=!0,n.ok=!T(t)||t,n.fail=T(e)&&e,n.domain=hy?mm.domain:void 0,0===r.state?r.reactions.add(n):Yy(function(){xm(n,r)}),n.promise}),Gy=function(){var t=new Ky,e=lm(t);this.promise=t,this.resolve=Im(Mm,e),this.reject=Im(Tm,e)},im.f=bm=function(t){return t===vm||void 0===t?new Gy(t):wm(t)},T(Jy)&&pm!==Object.prototype)){Vy=pm.then,fm||ie(pm,"then",function(t,e){var r=this;return new vm(function(t,e){f(Vy,r,t,e)}).then(t,e)},{unsafe:!0});try{delete pm.constructor}catch(t){}dn&&dn(pm,dm)}Ce({global:!0,constructor:!0,wrap:!0,forced:sm},{Promise:vm}),an(vm,um,!1),Uo(um);var Lm=rm.CONSTRUCTOR||!Gn(function(t){Jy.all(t).then(void 0,function(){})});Ce({target:"Promise",stat:!0,forced:Lm},{all:function(t){var e=this,r=im.f(e),n=r.resolve,o=r.reject,i=Xy(function(){var r=J(e.resolve),i=[],a=0,u=1;Ao(t,function(t){var s=a++,c=!1;u++,f(r,e,t).then(function(t){c||(c=!0,i[s]=t,--u||n(i))},o)}),--u||n(i)});return i.error&&o(i.value),r.promise}});var Um=Jy&&Jy.prototype;if(Ce({target:"Promise",proto:!0,forced:rm.CONSTRUCTOR,real:!0},{catch:function(t){return this.then(void 0,t)}}),T(Jy)){var Nm=L("Promise").prototype.catch;Um.catch!==Nm&&ie(Um,"catch",Nm,{unsafe:!0})}Ce({target:"Promise",stat:!0,forced:Lm},{race:function(t){var e=this,r=im.f(e),n=r.reject,o=Xy(function(){var o=J(e.resolve);Ao(t,function(t){f(o,e,t).then(r.resolve,n)})});return o.error&&n(o.value),r.promise}}),Ce({target:"Promise",stat:!0,forced:rm.CONSTRUCTOR},{reject:function(t){var e=im.f(this);return(0,e.reject)(t),e.promise}});var Cm=function(t,e){if(kt(t),M(e)&&e.constructor===t)return e;var r=im.f(t);return(0,r.resolve)(e),r.promise};Ce({target:"Promise",stat:!0,forced:rm.CONSTRUCTOR},{resolve:function(t){return Cm(this,t)}}),Ce({target:"Promise",stat:!0,forced:Lm},{allSettled:function(t){var e=this,r=im.f(e),n=r.resolve,o=r.reject,i=Xy(function(){var r=J(e.resolve),o=[],i=0,a=1;Ao(t,function(t){var u=i++,s=!1;a++,f(r,e,t).then(function(t){s||(s=!0,o[u]={status:"fulfilled",value:t},--a||n(o))},function(t){s||(s=!0,o[u]={status:"rejected",reason:t},--a||n(o))})}),--a||n(o)});return i.error&&o(i.value),r.promise}});var _m="No one promise resolved";Ce({target:"Promise",stat:!0,forced:Lm},{any:function(t){var e=this,r=L("AggregateError"),n=im.f(e),o=n.resolve,i=n.reject,a=Xy(function(){var n=J(e.resolve),a=[],u=0,s=1,c=!1;Ao(t,function(t){var l=u++,h=!1;s++,f(n,e,t).then(function(t){h||c||(c=!0,o(t))},function(t){h||c||(h=!0,a[l]=t,--s||i(new r(a,_m)))})}),--s||i(new r(a,_m))});return a.error&&i(a.value),n.promise}}),Ce({target:"Promise",stat:!0},{withResolvers:function(){var t=im.f(this);return{promise:t.promise,resolve:t.resolve,reject:t.reject}}});var Fm=Jy&&Jy.prototype,Bm=!!Jy&&a(function(){Fm.finally.call({then:function(){}},function(){})});if(Ce({target:"Promise",proto:!0,real:!0,forced:Bm},{finally:function(t){var e=Cc(this,L("Promise")),r=T(t);return this.then(r?function(r){return Cm(e,t()).then(function(){return r})}:t,r?function(r){return Cm(e,t()).then(function(){throw r})}:t)}}),T(Jy)){var Dm=L("Promise").prototype.finally;Fm.finally!==Dm&&ie(Fm,"finally",Dm,{unsafe:!0})}var zm=i.Promise,Wm=!1,qm=!zm||!zm.try||Xy(function(){zm.try(function(t){Wm=8===t},8)}).error||!Wm;Ce({target:"Promise",stat:!0,forced:qm},{try:function(t){var e=arguments.length>1?vo(arguments,1):[],r=im.f(this),n=Xy(function(){return Ra(J(t),void 0,e)});return(n.error?r.reject:r.resolve)(n.value),r.promise}}),Ze("Promise","finally");var Hm="URLSearchParams"in self,$m="Symbol"in self&&"iterator"in Symbol,Km="FileReader"in self&&"Blob"in self&&function(){try{return new Blob,!0}catch(t){return!1}}(),Gm="FormData"in self,Vm="ArrayBuffer"in self;if(Vm)var Ym=["[object Int8Array]","[object Uint8Array]","[object Uint8ClampedArray]","[object Int16Array]","[object Uint16Array]","[object Int32Array]","[object Uint32Array]","[object Float32Array]","[object Float64Array]"],Xm=ArrayBuffer.isView||function(t){return t&&Ym.indexOf(Object.prototype.toString.call(t))>-1};function Jm(t){if("string"!=typeof t&&(t=String(t)),/[^a-z0-9\-#$%&'*+.^_`|~]/i.test(t))throw new TypeError("Invalid character in header field name");return t.toLowerCase()}function Qm(t){return"string"!=typeof t&&(t=String(t)),t}function Zm(t){var e={next:function(){var e=t.shift();return{done:void 0===e,value:e}}};return $m&&(e[Symbol.iterator]=function(){return e}),e}function tb(t){this.map={},t instanceof tb?t.forEach(function(t,e){this.append(e,t)},this):Array.isArray(t)?t.forEach(function(t){this.append(t[0],t[1])},this):t&&Object.getOwnPropertyNames(t).forEach(function(e){this.append(e,t[e])},this)}function eb(t){if(t.bodyUsed)return Promise.reject(new TypeError("Already read"));t.bodyUsed=!0}function rb(t){return new Promise(function(e,r){t.onload=function(){e(t.result)},t.onerror=function(){r(t.error)}})}function nb(t){var e=new FileReader,r=rb(e);return e.readAsArrayBuffer(t),r}function ob(t){if(t.slice)return t.slice(0);var e=new Uint8Array(t.byteLength);return e.set(new Uint8Array(t)),e.buffer}function ib(){return this.bodyUsed=!1,this._initBody=function(t){var e;this._bodyInit=t,t?"string"==typeof t?this._bodyText=t:Km&&Blob.prototype.isPrototypeOf(t)?this._bodyBlob=t:Gm&&FormData.prototype.isPrototypeOf(t)?this._bodyFormData=t:Hm&&URLSearchParams.prototype.isPrototypeOf(t)?this._bodyText=t.toString():Vm&&Km&&(e=t)&&DataView.prototype.isPrototypeOf(e)?(this._bodyArrayBuffer=ob(t.buffer),this._bodyInit=new Blob([this._bodyArrayBuffer])):Vm&&(ArrayBuffer.prototype.isPrototypeOf(t)||Xm(t))?this._bodyArrayBuffer=ob(t):this._bodyText=t=Object.prototype.toString.call(t):this._bodyText="",this.headers.get("content-type")||("string"==typeof t?this.headers.set("content-type","text/plain;charset=UTF-8"):this._bodyBlob&&this._bodyBlob.type?this.headers.set("content-type",this._bodyBlob.type):Hm&&URLSearchParams.prototype.isPrototypeOf(t)&&this.headers.set("content-type","application/x-www-form-urlencoded;charset=UTF-8"))},Km&&(this.blob=function(){var t=eb(this);if(t)return t;if(this._bodyBlob)return Promise.resolve(this._bodyBlob);if(this._bodyArrayBuffer)return Promise.resolve(new Blob([this._bodyArrayBuffer]));if(this._bodyFormData)throw new Error("could not read FormData body as blob");return Promise.resolve(new Blob([this._bodyText]))},this.arrayBuffer=function(){return this._bodyArrayBuffer?eb(this)||Promise.resolve(this._bodyArrayBuffer):this.blob().then(nb)}),this.text=function(){var t=eb(this);if(t)return t;if(this._bodyBlob)return function(t){var e=new FileReader,r=rb(e);return e.readAsText(t),r}(this._bodyBlob);if(this._bodyArrayBuffer)return Promise.resolve(function(t){for(var e=new Uint8Array(t),r=new Array(e.length),n=0;n<e.length;n++)r[n]=String.fromCharCode(e[n]);return r.join("")}(this._bodyArrayBuffer));if(this._bodyFormData)throw new Error("could not read FormData body as text");return Promise.resolve(this._bodyText)},Gm&&(this.formData=function(){return this.text().then(sb)}),this.json=function(){return this.text().then(JSON.parse)},this}tb.prototype.append=function(t,e){t=Jm(t),e=Qm(e);var r=this.map[t];this.map[t]=r?r+", "+e:e},tb.prototype.delete=function(t){delete this.map[Jm(t)]},tb.prototype.get=function(t){return t=Jm(t),this.has(t)?this.map[t]:null},tb.prototype.has=function(t){return this.map.hasOwnProperty(Jm(t))},tb.prototype.set=function(t,e){this.map[Jm(t)]=Qm(e)},tb.prototype.forEach=function(t,e){for(var r in this.map)this.map.hasOwnProperty(r)&&t.call(e,this.map[r],r,this)},tb.prototype.keys=function(){var t=[];return this.forEach(function(e,r){t.push(r)}),Zm(t)},tb.prototype.values=function(){var t=[];return this.forEach(function(e){t.push(e)}),Zm(t)},tb.prototype.entries=function(){var t=[];return this.forEach(function(e,r){t.push([r,e])}),Zm(t)},$m&&(tb.prototype[Symbol.iterator]=tb.prototype.entries);var ab=["DELETE","GET","HEAD","OPTIONS","POST","PUT"];function ub(t,e){var r=(e=e||{}).body;if(t instanceof ub){if(t.bodyUsed)throw new TypeError("Already read");this.url=t.url,this.credentials=t.credentials,e.headers||(this.headers=new tb(t.headers)),this.method=t.method,this.mode=t.mode,this.signal=t.signal,r||null==t._bodyInit||(r=t._bodyInit,t.bodyUsed=!0)}else this.url=String(t);if(this.credentials=e.credentials||this.credentials||"same-origin",!e.headers&&this.headers||(this.headers=new tb(e.headers)),this.method=function(t){var e=t.toUpperCase();return ab.indexOf(e)>-1?e:t}(e.method||this.method||"GET"),this.mode=e.mode||this.mode||null,this.signal=e.signal||this.signal,this.referrer=null,("GET"===this.method||"HEAD"===this.method)&&r)throw new TypeError("Body not allowed for GET or HEAD requests");this._initBody(r)}function sb(t){var e=new FormData;return t.trim().split("&").forEach(function(t){if(t){var r=t.split("="),n=r.shift().replace(/\+/g," "),o=r.join("=").replace(/\+/g," ");e.append(decodeURIComponent(n),decodeURIComponent(o))}}),e}function cb(t,e){e||(e={}),this.type="default",this.status=void 0===e.status?200:e.status,this.ok=this.status>=200&&this.status<300,this.statusText="statusText"in e?e.statusText:"OK",this.headers=new tb(e.headers),this.url=e.url||"",this._initBody(t)}ub.prototype.clone=function(){return new ub(this,{body:this._bodyInit})},ib.call(ub.prototype),ib.call(cb.prototype),cb.prototype.clone=function(){return new cb(this._bodyInit,{status:this.status,statusText:this.statusText,headers:new tb(this.headers),url:this.url})},cb.error=function(){var t=new cb(null,{status:0,statusText:""});return t.type="error",t};var fb=[301,302,303,307,308];cb.redirect=function(t,e){if(-1===fb.indexOf(e))throw new RangeError("Invalid status code");return new cb(null,{status:e,headers:{location:t}})};var lb=self.DOMException;try{new lb}catch(t){(lb=function(t,e){this.message=t,this.name=e;var r=Error(t);this.stack=r.stack}).prototype=Object.create(Error.prototype),lb.prototype.constructor=lb}function hb(t,e){return new Promise(function(r,n){var o=new ub(t,e);if(o.signal&&o.signal.aborted)return n(new lb("Aborted","AbortError"));var i=new XMLHttpRequest;function a(){i.abort()}i.onload=function(){var t,e,n={status:i.status,statusText:i.statusText,headers:(t=i.getAllResponseHeaders()||"",e=new tb,t.replace(/\r?\n[\t ]+/g," ").split(/\r?\n/).forEach(function(t){var r=t.split(":"),n=r.shift().trim();if(n){var o=r.join(":").trim();e.append(n,o)}}),e)};n.url="responseURL"in i?i.responseURL:n.headers.get("X-Request-URL"),r(new cb("response"in i?i.response:i.responseText,n))},i.onerror=function(){n(new TypeError("Network request failed"))},i.ontimeout=function(){n(new TypeError("Network request failed"))},i.onabort=function(){n(new lb("Aborted","AbortError"))},i.open(o.method,o.url,!0),"include"===o.credentials?i.withCredentials=!0:"omit"===o.credentials&&(i.withCredentials=!1),"responseType"in i&&Km&&(i.responseType="blob"),o.headers.forEach(function(t,e){i.setRequestHeader(e,t)}),o.signal&&(o.signal.addEventListener("abort",a),i.onreadystatechange=function(){4===i.readyState&&o.signal.removeEventListener("abort",a)}),i.send(void 0===o._bodyInit?null:o._bodyInit)})}hb.polyfill=!0,self.fetch||(self.fetch=hb,self.Headers=tb,self.Request=ub,self.Response=cb);var pb=Object.getOwnPropertySymbols,vb=Object.prototype.hasOwnProperty,db=Object.prototype.propertyIsEnumerable,gb=function(){try{if(!Object.assign)return!1;var t=new String("abc");if(t[5]="de","5"===Object.getOwnPropertyNames(t)[0])return!1;for(var e={},r=0;r<10;r++)e["_"+String.fromCharCode(r)]=r;if("0123456789"!==Object.getOwnPropertyNames(e).map(function(t){return e[t]}).join(""))return!1;var n={};return"abcdefghijklmnopqrst".split("").forEach(function(t){n[t]=t}),"abcdefghijklmnopqrst"===Object.keys(Object.assign({},n)).join("")}catch(t){return!1}}()?Object.assign:function(t,e){for(var r,n,o=function(t){if(null==t)throw new TypeError("Object.assign cannot be called with null or undefined");return Object(t)}(t),i=1;i<arguments.length;i++){for(var a in r=Object(arguments[i]))vb.call(r,a)&&(o[a]=r[a]);if(pb){n=pb(r);for(var u=0;u<n.length;u++)db.call(r,n[u])&&(o[n[u]]=r[n[u]])}}return o};Object.assign=gb}(); diff --git a/build/static/chunks/react-refresh.js b/build/static/chunks/react-refresh.js deleted file mode 100644 index 346c1f5..0000000 --- a/build/static/chunks/react-refresh.js +++ /dev/null @@ -1,62 +0,0 @@ -// runtime can't be in strict mode because a global variable is assign and maybe created. -/* - * ATTENTION: An "eval-source-map" devtool has been used. - * This devtool is neither made for production nor for readable output files. - * It uses "eval()" calls to create a separate source file with attached SourceMaps in the browser devtools. - * If you are trying to read the output file, select a different devtool (https://webpack.js.org/configuration/devtool/) - * or disable the default devtool with "devtool: false". - * If you are looking for production-ready output files, see mode: "production" (https://webpack.js.org/configuration/mode/). - */ -(self["webpackChunk_N_E"] = self["webpackChunk_N_E"] || []).push([["react-refresh"],{ - -/***/ "(pages-dir-browser)/./node_modules/next/dist/compiled/@next/react-refresh-utils/dist/internal/helpers.js": -/*!********************************************************************************************!*\ - !*** ./node_modules/next/dist/compiled/@next/react-refresh-utils/dist/internal/helpers.js ***! - \********************************************************************************************/ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; -eval(__webpack_require__.ts("\n/**\n * MIT License\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in all\n * copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n * SOFTWARE.\n */\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\n// This file is copied from the Metro JavaScript bundler, with minor tweaks for\n// webpack 4 compatibility.\n//\n// https://github.com/facebook/metro/blob/d6b9685c730d0d63577db40f41369157f28dfa3a/packages/metro/src/lib/polyfills/require.js\nconst runtime_1 = __importDefault(__webpack_require__(/*! next/dist/compiled/react-refresh/runtime */ \"(pages-dir-browser)/./node_modules/next/dist/compiled/react-refresh/runtime.js\"));\nfunction isSafeExport(key) {\n return (key === '__esModule' ||\n key === '__N_SSG' ||\n key === '__N_SSP' ||\n // TODO: remove this key from page config instead of allow listing it\n key === 'config');\n}\nfunction registerExportsForReactRefresh(moduleExports, moduleID) {\n runtime_1.default.register(moduleExports, moduleID + ' %exports%');\n if (moduleExports == null || typeof moduleExports !== 'object') {\n // Exit if we can't iterate over exports.\n // (This is important for legacy environments.)\n return;\n }\n for (var key in moduleExports) {\n if (isSafeExport(key)) {\n continue;\n }\n try {\n var exportValue = moduleExports[key];\n }\n catch (_a) {\n // This might fail due to circular dependencies\n continue;\n }\n var typeID = moduleID + ' %exports% ' + key;\n runtime_1.default.register(exportValue, typeID);\n }\n}\nfunction getRefreshBoundarySignature(moduleExports) {\n var signature = [];\n signature.push(runtime_1.default.getFamilyByType(moduleExports));\n if (moduleExports == null || typeof moduleExports !== 'object') {\n // Exit if we can't iterate over exports.\n // (This is important for legacy environments.)\n return signature;\n }\n for (var key in moduleExports) {\n if (isSafeExport(key)) {\n continue;\n }\n try {\n var exportValue = moduleExports[key];\n }\n catch (_a) {\n // This might fail due to circular dependencies\n continue;\n }\n signature.push(key);\n signature.push(runtime_1.default.getFamilyByType(exportValue));\n }\n return signature;\n}\nfunction isReactRefreshBoundary(moduleExports) {\n if (runtime_1.default.isLikelyComponentType(moduleExports)) {\n return true;\n }\n if (moduleExports == null || typeof moduleExports !== 'object') {\n // Exit if we can't iterate over exports.\n return false;\n }\n var hasExports = false;\n var areAllExportsComponents = true;\n for (var key in moduleExports) {\n hasExports = true;\n if (isSafeExport(key)) {\n continue;\n }\n try {\n var exportValue = moduleExports[key];\n }\n catch (_a) {\n // This might fail due to circular dependencies\n return false;\n }\n if (!runtime_1.default.isLikelyComponentType(exportValue)) {\n areAllExportsComponents = false;\n }\n }\n return hasExports && areAllExportsComponents;\n}\nfunction shouldInvalidateReactRefreshBoundary(prevSignature, nextSignature) {\n if (prevSignature.length !== nextSignature.length) {\n return true;\n }\n for (var i = 0; i < nextSignature.length; i++) {\n if (prevSignature[i] !== nextSignature[i]) {\n return true;\n }\n }\n return false;\n}\nvar isUpdateScheduled = false;\n// This function aggregates updates from multiple modules into a single React Refresh call.\nfunction scheduleUpdate() {\n if (isUpdateScheduled) {\n return;\n }\n isUpdateScheduled = true;\n function canApplyUpdate(status) {\n return status === 'idle';\n }\n function applyUpdate() {\n isUpdateScheduled = false;\n try {\n runtime_1.default.performReactRefresh();\n }\n catch (err) {\n console.warn('Warning: Failed to re-render. We will retry on the next Fast Refresh event.\\n' +\n err);\n }\n }\n if (canApplyUpdate(module.hot.status())) {\n // Apply update on the next tick.\n Promise.resolve().then(() => {\n applyUpdate();\n });\n return;\n }\n const statusHandler = (status) => {\n if (canApplyUpdate(status)) {\n module.hot.removeStatusHandler(statusHandler);\n applyUpdate();\n }\n };\n // Apply update once the HMR runtime's status is idle.\n module.hot.addStatusHandler(statusHandler);\n}\n// Needs to be compatible with IE11\nexports[\"default\"] = {\n registerExportsForReactRefresh: registerExportsForReactRefresh,\n isReactRefreshBoundary: isReactRefreshBoundary,\n shouldInvalidateReactRefreshBoundary: shouldInvalidateReactRefreshBoundary,\n getRefreshBoundarySignature: getRefreshBoundarySignature,\n scheduleUpdate: scheduleUpdate,\n};\n//# sourceMappingURL=helpers.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvY29tcGlsZWQvQG5leHQvcmVhY3QtcmVmcmVzaC11dGlscy9kaXN0L2ludGVybmFsL2hlbHBlcnMuanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSw2Q0FBNkM7QUFDN0M7QUFDQSw4Q0FBNkMsRUFBRSxhQUFhLEVBQUM7QUFDN0Q7QUFDQTtBQUNBO0FBQ0E7QUFDQSxrQ0FBa0MsbUJBQU8sQ0FBQyxnSUFBMEM7QUFDcEY7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxvQkFBb0IsMEJBQTBCO0FBQzlDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSx1QkFBdUIsVUFBVTtBQUNqQztBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0E7QUFDQSxZQUFZLFVBQVU7QUFDdEI7QUFDQTtBQUNBO0FBQ0E7QUFDQSxJQUFJLFVBQVU7QUFDZDtBQUNBO0FBQ0Esa0JBQWU7QUFDZjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSIsInNvdXJjZXMiOlsiRDpcXGRvbmd5dW4tcHJvamVjdHNcXHR3b1xcbm9kZV9tb2R1bGVzXFxuZXh0XFxkaXN0XFxjb21waWxlZFxcQG5leHRcXHJlYWN0LXJlZnJlc2gtdXRpbHNcXGRpc3RcXGludGVybmFsXFxoZWxwZXJzLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuLyoqXG4gKiBNSVQgTGljZW5zZVxuICpcbiAqIENvcHlyaWdodCAoYykgRmFjZWJvb2ssIEluYy4gYW5kIGl0cyBhZmZpbGlhdGVzLlxuICpcbiAqIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhIGNvcHlcbiAqIG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlIFwiU29mdHdhcmVcIiksIHRvIGRlYWxcbiAqIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHNcbiAqIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yIHNlbGxcbiAqIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBTb2Z0d2FyZSBpc1xuICogZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczpcbiAqXG4gKiBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZCBpbiBhbGxcbiAqIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUuXG4gKlxuICogVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEIFwiQVMgSVNcIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUlxuICogSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksXG4gKiBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiBJTiBOTyBFVkVOVCBTSEFMTCBUSEVcbiAqIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVJcbiAqIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sXG4gKiBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOIFRIRVxuICogU09GVFdBUkUuXG4gKi9cbnZhciBfX2ltcG9ydERlZmF1bHQgPSAodGhpcyAmJiB0aGlzLl9faW1wb3J0RGVmYXVsdCkgfHwgZnVuY3Rpb24gKG1vZCkge1xuICAgIHJldHVybiAobW9kICYmIG1vZC5fX2VzTW9kdWxlKSA/IG1vZCA6IHsgXCJkZWZhdWx0XCI6IG1vZCB9O1xufTtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbi8vIFRoaXMgZmlsZSBpcyBjb3BpZWQgZnJvbSB0aGUgTWV0cm8gSmF2YVNjcmlwdCBidW5kbGVyLCB3aXRoIG1pbm9yIHR3ZWFrcyBmb3Jcbi8vIHdlYnBhY2sgNCBjb21wYXRpYmlsaXR5LlxuLy9cbi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9mYWNlYm9vay9tZXRyby9ibG9iL2Q2Yjk2ODVjNzMwZDBkNjM1NzdkYjQwZjQxMzY5MTU3ZjI4ZGZhM2EvcGFja2FnZXMvbWV0cm8vc3JjL2xpYi9wb2x5ZmlsbHMvcmVxdWlyZS5qc1xuY29uc3QgcnVudGltZV8xID0gX19pbXBvcnREZWZhdWx0KHJlcXVpcmUoXCJuZXh0L2Rpc3QvY29tcGlsZWQvcmVhY3QtcmVmcmVzaC9ydW50aW1lXCIpKTtcbmZ1bmN0aW9uIGlzU2FmZUV4cG9ydChrZXkpIHtcbiAgICByZXR1cm4gKGtleSA9PT0gJ19fZXNNb2R1bGUnIHx8XG4gICAgICAgIGtleSA9PT0gJ19fTl9TU0cnIHx8XG4gICAgICAgIGtleSA9PT0gJ19fTl9TU1AnIHx8XG4gICAgICAgIC8vIFRPRE86IHJlbW92ZSB0aGlzIGtleSBmcm9tIHBhZ2UgY29uZmlnIGluc3RlYWQgb2YgYWxsb3cgbGlzdGluZyBpdFxuICAgICAgICBrZXkgPT09ICdjb25maWcnKTtcbn1cbmZ1bmN0aW9uIHJlZ2lzdGVyRXhwb3J0c0ZvclJlYWN0UmVmcmVzaChtb2R1bGVFeHBvcnRzLCBtb2R1bGVJRCkge1xuICAgIHJ1bnRpbWVfMS5kZWZhdWx0LnJlZ2lzdGVyKG1vZHVsZUV4cG9ydHMsIG1vZHVsZUlEICsgJyAlZXhwb3J0cyUnKTtcbiAgICBpZiAobW9kdWxlRXhwb3J0cyA9PSBudWxsIHx8IHR5cGVvZiBtb2R1bGVFeHBvcnRzICE9PSAnb2JqZWN0Jykge1xuICAgICAgICAvLyBFeGl0IGlmIHdlIGNhbid0IGl0ZXJhdGUgb3ZlciBleHBvcnRzLlxuICAgICAgICAvLyAoVGhpcyBpcyBpbXBvcnRhbnQgZm9yIGxlZ2FjeSBlbnZpcm9ubWVudHMuKVxuICAgICAgICByZXR1cm47XG4gICAgfVxuICAgIGZvciAodmFyIGtleSBpbiBtb2R1bGVFeHBvcnRzKSB7XG4gICAgICAgIGlmIChpc1NhZmVFeHBvcnQoa2V5KSkge1xuICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgIH1cbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIHZhciBleHBvcnRWYWx1ZSA9IG1vZHVsZUV4cG9ydHNba2V5XTtcbiAgICAgICAgfVxuICAgICAgICBjYXRjaCAoX2EpIHtcbiAgICAgICAgICAgIC8vIFRoaXMgbWlnaHQgZmFpbCBkdWUgdG8gY2lyY3VsYXIgZGVwZW5kZW5jaWVzXG4gICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgfVxuICAgICAgICB2YXIgdHlwZUlEID0gbW9kdWxlSUQgKyAnICVleHBvcnRzJSAnICsga2V5O1xuICAgICAgICBydW50aW1lXzEuZGVmYXVsdC5yZWdpc3RlcihleHBvcnRWYWx1ZSwgdHlwZUlEKTtcbiAgICB9XG59XG5mdW5jdGlvbiBnZXRSZWZyZXNoQm91bmRhcnlTaWduYXR1cmUobW9kdWxlRXhwb3J0cykge1xuICAgIHZhciBzaWduYXR1cmUgPSBbXTtcbiAgICBzaWduYXR1cmUucHVzaChydW50aW1lXzEuZGVmYXVsdC5nZXRGYW1pbHlCeVR5cGUobW9kdWxlRXhwb3J0cykpO1xuICAgIGlmIChtb2R1bGVFeHBvcnRzID09IG51bGwgfHwgdHlwZW9mIG1vZHVsZUV4cG9ydHMgIT09ICdvYmplY3QnKSB7XG4gICAgICAgIC8vIEV4aXQgaWYgd2UgY2FuJ3QgaXRlcmF0ZSBvdmVyIGV4cG9ydHMuXG4gICAgICAgIC8vIChUaGlzIGlzIGltcG9ydGFudCBmb3IgbGVnYWN5IGVudmlyb25tZW50cy4pXG4gICAgICAgIHJldHVybiBzaWduYXR1cmU7XG4gICAgfVxuICAgIGZvciAodmFyIGtleSBpbiBtb2R1bGVFeHBvcnRzKSB7XG4gICAgICAgIGlmIChpc1NhZmVFeHBvcnQoa2V5KSkge1xuICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgIH1cbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIHZhciBleHBvcnRWYWx1ZSA9IG1vZHVsZUV4cG9ydHNba2V5XTtcbiAgICAgICAgfVxuICAgICAgICBjYXRjaCAoX2EpIHtcbiAgICAgICAgICAgIC8vIFRoaXMgbWlnaHQgZmFpbCBkdWUgdG8gY2lyY3VsYXIgZGVwZW5kZW5jaWVzXG4gICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgfVxuICAgICAgICBzaWduYXR1cmUucHVzaChrZXkpO1xuICAgICAgICBzaWduYXR1cmUucHVzaChydW50aW1lXzEuZGVmYXVsdC5nZXRGYW1pbHlCeVR5cGUoZXhwb3J0VmFsdWUpKTtcbiAgICB9XG4gICAgcmV0dXJuIHNpZ25hdHVyZTtcbn1cbmZ1bmN0aW9uIGlzUmVhY3RSZWZyZXNoQm91bmRhcnkobW9kdWxlRXhwb3J0cykge1xuICAgIGlmIChydW50aW1lXzEuZGVmYXVsdC5pc0xpa2VseUNvbXBvbmVudFR5cGUobW9kdWxlRXhwb3J0cykpIHtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICAgIGlmIChtb2R1bGVFeHBvcnRzID09IG51bGwgfHwgdHlwZW9mIG1vZHVsZUV4cG9ydHMgIT09ICdvYmplY3QnKSB7XG4gICAgICAgIC8vIEV4aXQgaWYgd2UgY2FuJ3QgaXRlcmF0ZSBvdmVyIGV4cG9ydHMuXG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gICAgdmFyIGhhc0V4cG9ydHMgPSBmYWxzZTtcbiAgICB2YXIgYXJlQWxsRXhwb3J0c0NvbXBvbmVudHMgPSB0cnVlO1xuICAgIGZvciAodmFyIGtleSBpbiBtb2R1bGVFeHBvcnRzKSB7XG4gICAgICAgIGhhc0V4cG9ydHMgPSB0cnVlO1xuICAgICAgICBpZiAoaXNTYWZlRXhwb3J0KGtleSkpIHtcbiAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICB9XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICB2YXIgZXhwb3J0VmFsdWUgPSBtb2R1bGVFeHBvcnRzW2tleV07XG4gICAgICAgIH1cbiAgICAgICAgY2F0Y2ggKF9hKSB7XG4gICAgICAgICAgICAvLyBUaGlzIG1pZ2h0IGZhaWwgZHVlIHRvIGNpcmN1bGFyIGRlcGVuZGVuY2llc1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG4gICAgICAgIGlmICghcnVudGltZV8xLmRlZmF1bHQuaXNMaWtlbHlDb21wb25lbnRUeXBlKGV4cG9ydFZhbHVlKSkge1xuICAgICAgICAgICAgYXJlQWxsRXhwb3J0c0NvbXBvbmVudHMgPSBmYWxzZTtcbiAgICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gaGFzRXhwb3J0cyAmJiBhcmVBbGxFeHBvcnRzQ29tcG9uZW50cztcbn1cbmZ1bmN0aW9uIHNob3VsZEludmFsaWRhdGVSZWFjdFJlZnJlc2hCb3VuZGFyeShwcmV2U2lnbmF0dXJlLCBuZXh0U2lnbmF0dXJlKSB7XG4gICAgaWYgKHByZXZTaWduYXR1cmUubGVuZ3RoICE9PSBuZXh0U2lnbmF0dXJlLmxlbmd0aCkge1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCBuZXh0U2lnbmF0dXJlLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgIGlmIChwcmV2U2lnbmF0dXJlW2ldICE9PSBuZXh0U2lnbmF0dXJlW2ldKSB7XG4gICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gZmFsc2U7XG59XG52YXIgaXNVcGRhdGVTY2hlZHVsZWQgPSBmYWxzZTtcbi8vIFRoaXMgZnVuY3Rpb24gYWdncmVnYXRlcyB1cGRhdGVzIGZyb20gbXVsdGlwbGUgbW9kdWxlcyBpbnRvIGEgc2luZ2xlIFJlYWN0IFJlZnJlc2ggY2FsbC5cbmZ1bmN0aW9uIHNjaGVkdWxlVXBkYXRlKCkge1xuICAgIGlmIChpc1VwZGF0ZVNjaGVkdWxlZCkge1xuICAgICAgICByZXR1cm47XG4gICAgfVxuICAgIGlzVXBkYXRlU2NoZWR1bGVkID0gdHJ1ZTtcbiAgICBmdW5jdGlvbiBjYW5BcHBseVVwZGF0ZShzdGF0dXMpIHtcbiAgICAgICAgcmV0dXJuIHN0YXR1cyA9PT0gJ2lkbGUnO1xuICAgIH1cbiAgICBmdW5jdGlvbiBhcHBseVVwZGF0ZSgpIHtcbiAgICAgICAgaXNVcGRhdGVTY2hlZHVsZWQgPSBmYWxzZTtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIHJ1bnRpbWVfMS5kZWZhdWx0LnBlcmZvcm1SZWFjdFJlZnJlc2goKTtcbiAgICAgICAgfVxuICAgICAgICBjYXRjaCAoZXJyKSB7XG4gICAgICAgICAgICBjb25zb2xlLndhcm4oJ1dhcm5pbmc6IEZhaWxlZCB0byByZS1yZW5kZXIuIFdlIHdpbGwgcmV0cnkgb24gdGhlIG5leHQgRmFzdCBSZWZyZXNoIGV2ZW50LlxcbicgK1xuICAgICAgICAgICAgICAgIGVycik7XG4gICAgICAgIH1cbiAgICB9XG4gICAgaWYgKGNhbkFwcGx5VXBkYXRlKG1vZHVsZS5ob3Quc3RhdHVzKCkpKSB7XG4gICAgICAgIC8vIEFwcGx5IHVwZGF0ZSBvbiB0aGUgbmV4dCB0aWNrLlxuICAgICAgICBQcm9taXNlLnJlc29sdmUoKS50aGVuKCgpID0+IHtcbiAgICAgICAgICAgIGFwcGx5VXBkYXRlKCk7XG4gICAgICAgIH0pO1xuICAgICAgICByZXR1cm47XG4gICAgfVxuICAgIGNvbnN0IHN0YXR1c0hhbmRsZXIgPSAoc3RhdHVzKSA9PiB7XG4gICAgICAgIGlmIChjYW5BcHBseVVwZGF0ZShzdGF0dXMpKSB7XG4gICAgICAgICAgICBtb2R1bGUuaG90LnJlbW92ZVN0YXR1c0hhbmRsZXIoc3RhdHVzSGFuZGxlcik7XG4gICAgICAgICAgICBhcHBseVVwZGF0ZSgpO1xuICAgICAgICB9XG4gICAgfTtcbiAgICAvLyBBcHBseSB1cGRhdGUgb25jZSB0aGUgSE1SIHJ1bnRpbWUncyBzdGF0dXMgaXMgaWRsZS5cbiAgICBtb2R1bGUuaG90LmFkZFN0YXR1c0hhbmRsZXIoc3RhdHVzSGFuZGxlcik7XG59XG4vLyBOZWVkcyB0byBiZSBjb21wYXRpYmxlIHdpdGggSUUxMVxuZXhwb3J0cy5kZWZhdWx0ID0ge1xuICAgIHJlZ2lzdGVyRXhwb3J0c0ZvclJlYWN0UmVmcmVzaDogcmVnaXN0ZXJFeHBvcnRzRm9yUmVhY3RSZWZyZXNoLFxuICAgIGlzUmVhY3RSZWZyZXNoQm91bmRhcnk6IGlzUmVhY3RSZWZyZXNoQm91bmRhcnksXG4gICAgc2hvdWxkSW52YWxpZGF0ZVJlYWN0UmVmcmVzaEJvdW5kYXJ5OiBzaG91bGRJbnZhbGlkYXRlUmVhY3RSZWZyZXNoQm91bmRhcnksXG4gICAgZ2V0UmVmcmVzaEJvdW5kYXJ5U2lnbmF0dXJlOiBnZXRSZWZyZXNoQm91bmRhcnlTaWduYXR1cmUsXG4gICAgc2NoZWR1bGVVcGRhdGU6IHNjaGVkdWxlVXBkYXRlLFxufTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWhlbHBlcnMuanMubWFwIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(pages-dir-browser)/./node_modules/next/dist/compiled/@next/react-refresh-utils/dist/internal/helpers.js\n")); - -/***/ }), - -/***/ "(pages-dir-browser)/./node_modules/next/dist/compiled/@next/react-refresh-utils/dist/runtime.js": -/*!***********************************************************************************!*\ - !*** ./node_modules/next/dist/compiled/@next/react-refresh-utils/dist/runtime.js ***! - \***********************************************************************************/ -/***/ (function(__unused_webpack_module, exports, __webpack_require__) { - -"use strict"; -eval(__webpack_require__.ts("\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nconst runtime_1 = __importDefault(__webpack_require__(/*! next/dist/compiled/react-refresh/runtime */ \"(pages-dir-browser)/./node_modules/next/dist/compiled/react-refresh/runtime.js\"));\nconst helpers_1 = __importDefault(__webpack_require__(/*! ./internal/helpers */ \"(pages-dir-browser)/./node_modules/next/dist/compiled/@next/react-refresh-utils/dist/internal/helpers.js\"));\n// Hook into ReactDOM initialization\nruntime_1.default.injectIntoGlobalHook(self);\n// Register global helpers\nself.$RefreshHelpers$ = helpers_1.default;\n// Register a helper for module execution interception\nself.$RefreshInterceptModuleExecution$ = function (webpackModuleId) {\n var prevRefreshReg = self.$RefreshReg$;\n var prevRefreshSig = self.$RefreshSig$;\n self.$RefreshReg$ = function (type, id) {\n runtime_1.default.register(type, webpackModuleId + ' ' + id);\n };\n self.$RefreshSig$ = runtime_1.default.createSignatureFunctionForTransform;\n // Modeled after `useEffect` cleanup pattern:\n // https://react.dev/learn/synchronizing-with-effects#step-3-add-cleanup-if-needed\n return function () {\n self.$RefreshReg$ = prevRefreshReg;\n self.$RefreshSig$ = prevRefreshSig;\n };\n};\n//# sourceMappingURL=runtime.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvY29tcGlsZWQvQG5leHQvcmVhY3QtcmVmcmVzaC11dGlscy9kaXN0L3J1bnRpbWUuanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYjtBQUNBLDZDQUE2QztBQUM3QztBQUNBLDhDQUE2QyxFQUFFLGFBQWEsRUFBQztBQUM3RCxrQ0FBa0MsbUJBQU8sQ0FBQyxnSUFBMEM7QUFDcEYsa0NBQWtDLG1CQUFPLENBQUMsb0lBQW9CO0FBQzlEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EiLCJzb3VyY2VzIjpbIkQ6XFxkb25neXVuLXByb2plY3RzXFx0d29cXG5vZGVfbW9kdWxlc1xcbmV4dFxcZGlzdFxcY29tcGlsZWRcXEBuZXh0XFxyZWFjdC1yZWZyZXNoLXV0aWxzXFxkaXN0XFxydW50aW1lLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xudmFyIF9faW1wb3J0RGVmYXVsdCA9ICh0aGlzICYmIHRoaXMuX19pbXBvcnREZWZhdWx0KSB8fCBmdW5jdGlvbiAobW9kKSB7XG4gICAgcmV0dXJuIChtb2QgJiYgbW9kLl9fZXNNb2R1bGUpID8gbW9kIDogeyBcImRlZmF1bHRcIjogbW9kIH07XG59O1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xuY29uc3QgcnVudGltZV8xID0gX19pbXBvcnREZWZhdWx0KHJlcXVpcmUoXCJuZXh0L2Rpc3QvY29tcGlsZWQvcmVhY3QtcmVmcmVzaC9ydW50aW1lXCIpKTtcbmNvbnN0IGhlbHBlcnNfMSA9IF9faW1wb3J0RGVmYXVsdChyZXF1aXJlKFwiLi9pbnRlcm5hbC9oZWxwZXJzXCIpKTtcbi8vIEhvb2sgaW50byBSZWFjdERPTSBpbml0aWFsaXphdGlvblxucnVudGltZV8xLmRlZmF1bHQuaW5qZWN0SW50b0dsb2JhbEhvb2soc2VsZik7XG4vLyBSZWdpc3RlciBnbG9iYWwgaGVscGVyc1xuc2VsZi4kUmVmcmVzaEhlbHBlcnMkID0gaGVscGVyc18xLmRlZmF1bHQ7XG4vLyBSZWdpc3RlciBhIGhlbHBlciBmb3IgbW9kdWxlIGV4ZWN1dGlvbiBpbnRlcmNlcHRpb25cbnNlbGYuJFJlZnJlc2hJbnRlcmNlcHRNb2R1bGVFeGVjdXRpb24kID0gZnVuY3Rpb24gKHdlYnBhY2tNb2R1bGVJZCkge1xuICAgIHZhciBwcmV2UmVmcmVzaFJlZyA9IHNlbGYuJFJlZnJlc2hSZWckO1xuICAgIHZhciBwcmV2UmVmcmVzaFNpZyA9IHNlbGYuJFJlZnJlc2hTaWckO1xuICAgIHNlbGYuJFJlZnJlc2hSZWckID0gZnVuY3Rpb24gKHR5cGUsIGlkKSB7XG4gICAgICAgIHJ1bnRpbWVfMS5kZWZhdWx0LnJlZ2lzdGVyKHR5cGUsIHdlYnBhY2tNb2R1bGVJZCArICcgJyArIGlkKTtcbiAgICB9O1xuICAgIHNlbGYuJFJlZnJlc2hTaWckID0gcnVudGltZV8xLmRlZmF1bHQuY3JlYXRlU2lnbmF0dXJlRnVuY3Rpb25Gb3JUcmFuc2Zvcm07XG4gICAgLy8gTW9kZWxlZCBhZnRlciBgdXNlRWZmZWN0YCBjbGVhbnVwIHBhdHRlcm46XG4gICAgLy8gaHR0cHM6Ly9yZWFjdC5kZXYvbGVhcm4vc3luY2hyb25pemluZy13aXRoLWVmZmVjdHMjc3RlcC0zLWFkZC1jbGVhbnVwLWlmLW5lZWRlZFxuICAgIHJldHVybiBmdW5jdGlvbiAoKSB7XG4gICAgICAgIHNlbGYuJFJlZnJlc2hSZWckID0gcHJldlJlZnJlc2hSZWc7XG4gICAgICAgIHNlbGYuJFJlZnJlc2hTaWckID0gcHJldlJlZnJlc2hTaWc7XG4gICAgfTtcbn07XG4vLyMgc291cmNlTWFwcGluZ1VSTD1ydW50aW1lLmpzLm1hcCJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(pages-dir-browser)/./node_modules/next/dist/compiled/@next/react-refresh-utils/dist/runtime.js\n")); - -/***/ }), - -/***/ "(pages-dir-browser)/./node_modules/next/dist/compiled/react-refresh/cjs/react-refresh-runtime.development.js": -/*!************************************************************************************************!*\ - !*** ./node_modules/next/dist/compiled/react-refresh/cjs/react-refresh-runtime.development.js ***! - \************************************************************************************************/ -/***/ ((__unused_webpack_module, exports, __webpack_require__) => { - -"use strict"; -eval(__webpack_require__.ts("/**\n * @license React\n * react-refresh-runtime.development.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n\n\nif (true) {\n (function() {\n'use strict';\n\n// ATTENTION\nvar REACT_FORWARD_REF_TYPE = Symbol.for('react.forward_ref');\nvar REACT_MEMO_TYPE = Symbol.for('react.memo');\n\nvar PossiblyWeakMap = typeof WeakMap === 'function' ? WeakMap : Map; // We never remove these associations.\n// It's OK to reference families, but use WeakMap/Set for types.\n\nvar allFamiliesByID = new Map();\nvar allFamiliesByType = new PossiblyWeakMap();\nvar allSignaturesByType = new PossiblyWeakMap(); // This WeakMap is read by React, so we only put families\n// that have actually been edited here. This keeps checks fast.\n// $FlowIssue\n\nvar updatedFamiliesByType = new PossiblyWeakMap(); // This is cleared on every performReactRefresh() call.\n// It is an array of [Family, NextType] tuples.\n\nvar pendingUpdates = []; // This is injected by the renderer via DevTools global hook.\n\nvar helpersByRendererID = new Map();\nvar helpersByRoot = new Map(); // We keep track of mounted roots so we can schedule updates.\n\nvar mountedRoots = new Set(); // If a root captures an error, we remember it so we can retry on edit.\n\nvar failedRoots = new Set(); // In environments that support WeakMap, we also remember the last element for every root.\n// It needs to be weak because we do this even for roots that failed to mount.\n// If there is no WeakMap, we won't attempt to do retrying.\n// $FlowIssue\n\nvar rootElements = // $FlowIssue\ntypeof WeakMap === 'function' ? new WeakMap() : null;\nvar isPerformingRefresh = false;\n\nfunction computeFullKey(signature) {\n if (signature.fullKey !== null) {\n return signature.fullKey;\n }\n\n var fullKey = signature.ownKey;\n var hooks;\n\n try {\n hooks = signature.getCustomHooks();\n } catch (err) {\n // This can happen in an edge case, e.g. if expression like Foo.useSomething\n // depends on Foo which is lazily initialized during rendering.\n // In that case just assume we'll have to remount.\n signature.forceReset = true;\n signature.fullKey = fullKey;\n return fullKey;\n }\n\n for (var i = 0; i < hooks.length; i++) {\n var hook = hooks[i];\n\n if (typeof hook !== 'function') {\n // Something's wrong. Assume we need to remount.\n signature.forceReset = true;\n signature.fullKey = fullKey;\n return fullKey;\n }\n\n var nestedHookSignature = allSignaturesByType.get(hook);\n\n if (nestedHookSignature === undefined) {\n // No signature means Hook wasn't in the source code, e.g. in a library.\n // We'll skip it because we can assume it won't change during this session.\n continue;\n }\n\n var nestedHookKey = computeFullKey(nestedHookSignature);\n\n if (nestedHookSignature.forceReset) {\n signature.forceReset = true;\n }\n\n fullKey += '\\n---\\n' + nestedHookKey;\n }\n\n signature.fullKey = fullKey;\n return fullKey;\n}\n\nfunction haveEqualSignatures(prevType, nextType) {\n var prevSignature = allSignaturesByType.get(prevType);\n var nextSignature = allSignaturesByType.get(nextType);\n\n if (prevSignature === undefined && nextSignature === undefined) {\n return true;\n }\n\n if (prevSignature === undefined || nextSignature === undefined) {\n return false;\n }\n\n if (computeFullKey(prevSignature) !== computeFullKey(nextSignature)) {\n return false;\n }\n\n if (nextSignature.forceReset) {\n return false;\n }\n\n return true;\n}\n\nfunction isReactClass(type) {\n return type.prototype && type.prototype.isReactComponent;\n}\n\nfunction canPreserveStateBetween(prevType, nextType) {\n if (isReactClass(prevType) || isReactClass(nextType)) {\n return false;\n }\n\n if (haveEqualSignatures(prevType, nextType)) {\n return true;\n }\n\n return false;\n}\n\nfunction resolveFamily(type) {\n // Only check updated types to keep lookups fast.\n return updatedFamiliesByType.get(type);\n} // If we didn't care about IE11, we could use new Map/Set(iterable).\n\n\nfunction cloneMap(map) {\n var clone = new Map();\n map.forEach(function (value, key) {\n clone.set(key, value);\n });\n return clone;\n}\n\nfunction cloneSet(set) {\n var clone = new Set();\n set.forEach(function (value) {\n clone.add(value);\n });\n return clone;\n} // This is a safety mechanism to protect against rogue getters and Proxies.\n\n\nfunction getProperty(object, property) {\n try {\n return object[property];\n } catch (err) {\n // Intentionally ignore.\n return undefined;\n }\n}\n\nfunction performReactRefresh() {\n\n if (pendingUpdates.length === 0) {\n return null;\n }\n\n if (isPerformingRefresh) {\n return null;\n }\n\n isPerformingRefresh = true;\n\n try {\n var staleFamilies = new Set();\n var updatedFamilies = new Set();\n var updates = pendingUpdates;\n pendingUpdates = [];\n updates.forEach(function (_ref) {\n var family = _ref[0],\n nextType = _ref[1];\n // Now that we got a real edit, we can create associations\n // that will be read by the React reconciler.\n var prevType = family.current;\n updatedFamiliesByType.set(prevType, family);\n updatedFamiliesByType.set(nextType, family);\n family.current = nextType; // Determine whether this should be a re-render or a re-mount.\n\n if (canPreserveStateBetween(prevType, nextType)) {\n updatedFamilies.add(family);\n } else {\n staleFamilies.add(family);\n }\n }); // TODO: rename these fields to something more meaningful.\n\n var update = {\n updatedFamilies: updatedFamilies,\n // Families that will re-render preserving state\n staleFamilies: staleFamilies // Families that will be remounted\n\n };\n helpersByRendererID.forEach(function (helpers) {\n // Even if there are no roots, set the handler on first update.\n // This ensures that if *new* roots are mounted, they'll use the resolve handler.\n helpers.setRefreshHandler(resolveFamily);\n });\n var didError = false;\n var firstError = null; // We snapshot maps and sets that are mutated during commits.\n // If we don't do this, there is a risk they will be mutated while\n // we iterate over them. For example, trying to recover a failed root\n // may cause another root to be added to the failed list -- an infinite loop.\n\n var failedRootsSnapshot = cloneSet(failedRoots);\n var mountedRootsSnapshot = cloneSet(mountedRoots);\n var helpersByRootSnapshot = cloneMap(helpersByRoot);\n failedRootsSnapshot.forEach(function (root) {\n var helpers = helpersByRootSnapshot.get(root);\n\n if (helpers === undefined) {\n throw new Error('Could not find helpers for a root. This is a bug in React Refresh.');\n }\n\n if (!failedRoots.has(root)) {// No longer failed.\n }\n\n if (rootElements === null) {\n return;\n }\n\n if (!rootElements.has(root)) {\n return;\n }\n\n var element = rootElements.get(root);\n\n try {\n helpers.scheduleRoot(root, element);\n } catch (err) {\n if (!didError) {\n didError = true;\n firstError = err;\n } // Keep trying other roots.\n\n }\n });\n mountedRootsSnapshot.forEach(function (root) {\n var helpers = helpersByRootSnapshot.get(root);\n\n if (helpers === undefined) {\n throw new Error('Could not find helpers for a root. This is a bug in React Refresh.');\n }\n\n if (!mountedRoots.has(root)) {// No longer mounted.\n }\n\n try {\n helpers.scheduleRefresh(root, update);\n } catch (err) {\n if (!didError) {\n didError = true;\n firstError = err;\n } // Keep trying other roots.\n\n }\n });\n\n if (didError) {\n throw firstError;\n }\n\n return update;\n } finally {\n isPerformingRefresh = false;\n }\n}\nfunction register(type, id) {\n {\n if (type === null) {\n return;\n }\n\n if (typeof type !== 'function' && typeof type !== 'object') {\n return;\n } // This can happen in an edge case, e.g. if we register\n // return value of a HOC but it returns a cached component.\n // Ignore anything but the first registration for each type.\n\n\n if (allFamiliesByType.has(type)) {\n return;\n } // Create family or remember to update it.\n // None of this bookkeeping affects reconciliation\n // until the first performReactRefresh() call above.\n\n\n var family = allFamiliesByID.get(id);\n\n if (family === undefined) {\n family = {\n current: type\n };\n allFamiliesByID.set(id, family);\n } else {\n pendingUpdates.push([family, type]);\n }\n\n allFamiliesByType.set(type, family); // Visit inner types because we might not have registered them.\n\n if (typeof type === 'object' && type !== null) {\n switch (getProperty(type, '$$typeof')) {\n case REACT_FORWARD_REF_TYPE:\n register(type.render, id + '$render');\n break;\n\n case REACT_MEMO_TYPE:\n register(type.type, id + '$type');\n break;\n }\n }\n }\n}\nfunction setSignature(type, key) {\n var forceReset = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n var getCustomHooks = arguments.length > 3 ? arguments[3] : undefined;\n\n {\n if (!allSignaturesByType.has(type)) {\n allSignaturesByType.set(type, {\n forceReset: forceReset,\n ownKey: key,\n fullKey: null,\n getCustomHooks: getCustomHooks || function () {\n return [];\n }\n });\n } // Visit inner types because we might not have signed them.\n\n\n if (typeof type === 'object' && type !== null) {\n switch (getProperty(type, '$$typeof')) {\n case REACT_FORWARD_REF_TYPE:\n setSignature(type.render, key, forceReset, getCustomHooks);\n break;\n\n case REACT_MEMO_TYPE:\n setSignature(type.type, key, forceReset, getCustomHooks);\n break;\n }\n }\n }\n} // This is lazily called during first render for a type.\n// It captures Hook list at that time so inline requires don't break comparisons.\n\nfunction collectCustomHooksForSignature(type) {\n {\n var signature = allSignaturesByType.get(type);\n\n if (signature !== undefined) {\n computeFullKey(signature);\n }\n }\n}\nfunction getFamilyByID(id) {\n {\n return allFamiliesByID.get(id);\n }\n}\nfunction getFamilyByType(type) {\n {\n return allFamiliesByType.get(type);\n }\n}\nfunction findAffectedHostInstances(families) {\n {\n var affectedInstances = new Set();\n mountedRoots.forEach(function (root) {\n var helpers = helpersByRoot.get(root);\n\n if (helpers === undefined) {\n throw new Error('Could not find helpers for a root. This is a bug in React Refresh.');\n }\n\n var instancesForRoot = helpers.findHostInstancesForRefresh(root, families);\n instancesForRoot.forEach(function (inst) {\n affectedInstances.add(inst);\n });\n });\n return affectedInstances;\n }\n}\nfunction injectIntoGlobalHook(globalObject) {\n {\n // For React Native, the global hook will be set up by require('react-devtools-core').\n // That code will run before us. So we need to monkeypatch functions on existing hook.\n // For React Web, the global hook will be set up by the extension.\n // This will also run before us.\n var hook = globalObject.__REACT_DEVTOOLS_GLOBAL_HOOK__;\n\n if (hook === undefined) {\n // However, if there is no DevTools extension, we'll need to set up the global hook ourselves.\n // Note that in this case it's important that renderer code runs *after* this method call.\n // Otherwise, the renderer will think that there is no global hook, and won't do the injection.\n var nextID = 0;\n globalObject.__REACT_DEVTOOLS_GLOBAL_HOOK__ = hook = {\n renderers: new Map(),\n supportsFiber: true,\n inject: function (injected) {\n return nextID++;\n },\n onScheduleFiberRoot: function (id, root, children) {},\n onCommitFiberRoot: function (id, root, maybePriorityLevel, didError) {},\n onCommitFiberUnmount: function () {}\n };\n }\n\n if (hook.isDisabled) {\n // This isn't a real property on the hook, but it can be set to opt out\n // of DevTools integration and associated warnings and logs.\n // Using console['warn'] to evade Babel and ESLint\n console['warn']('Something has shimmed the React DevTools global hook (__REACT_DEVTOOLS_GLOBAL_HOOK__). ' + 'Fast Refresh is not compatible with this shim and will be disabled.');\n return;\n } // Here, we just want to get a reference to scheduleRefresh.\n\n\n var oldInject = hook.inject;\n\n hook.inject = function (injected) {\n var id = oldInject.apply(this, arguments);\n\n if (typeof injected.scheduleRefresh === 'function' && typeof injected.setRefreshHandler === 'function') {\n // This version supports React Refresh.\n helpersByRendererID.set(id, injected);\n }\n\n return id;\n }; // Do the same for any already injected roots.\n // This is useful if ReactDOM has already been initialized.\n // https://github.com/facebook/react/issues/17626\n\n\n hook.renderers.forEach(function (injected, id) {\n if (typeof injected.scheduleRefresh === 'function' && typeof injected.setRefreshHandler === 'function') {\n // This version supports React Refresh.\n helpersByRendererID.set(id, injected);\n }\n }); // We also want to track currently mounted roots.\n\n var oldOnCommitFiberRoot = hook.onCommitFiberRoot;\n\n var oldOnScheduleFiberRoot = hook.onScheduleFiberRoot || function () {};\n\n hook.onScheduleFiberRoot = function (id, root, children) {\n if (!isPerformingRefresh) {\n // If it was intentionally scheduled, don't attempt to restore.\n // This includes intentionally scheduled unmounts.\n failedRoots.delete(root);\n\n if (rootElements !== null) {\n rootElements.set(root, children);\n }\n }\n\n return oldOnScheduleFiberRoot.apply(this, arguments);\n };\n\n hook.onCommitFiberRoot = function (id, root, maybePriorityLevel, didError) {\n var helpers = helpersByRendererID.get(id);\n\n if (helpers !== undefined) {\n helpersByRoot.set(root, helpers);\n var current = root.current;\n var alternate = current.alternate; // We need to determine whether this root has just (un)mounted.\n // This logic is copy-pasted from similar logic in the DevTools backend.\n // If this breaks with some refactoring, you'll want to update DevTools too.\n\n if (alternate !== null) {\n var wasMounted = alternate.memoizedState != null && alternate.memoizedState.element != null && mountedRoots.has(root);\n var isMounted = current.memoizedState != null && current.memoizedState.element != null;\n\n if (!wasMounted && isMounted) {\n // Mount a new root.\n mountedRoots.add(root);\n failedRoots.delete(root);\n } else if (wasMounted && isMounted) ; else if (wasMounted && !isMounted) {\n // Unmount an existing root.\n mountedRoots.delete(root);\n\n if (didError) {\n // We'll remount it on future edits.\n failedRoots.add(root);\n } else {\n helpersByRoot.delete(root);\n }\n } else if (!wasMounted && !isMounted) {\n if (didError) {\n // We'll remount it on future edits.\n failedRoots.add(root);\n }\n }\n } else {\n // Mount a new root.\n mountedRoots.add(root);\n }\n } // Always call the decorated DevTools hook.\n\n\n return oldOnCommitFiberRoot.apply(this, arguments);\n };\n }\n}\nfunction hasUnrecoverableErrors() {\n // TODO: delete this after removing dependency in RN.\n return false;\n} // Exposed for testing.\n\nfunction _getMountedRootCount() {\n {\n return mountedRoots.size;\n }\n} // This is a wrapper over more primitive functions for setting signature.\n// Signatures let us decide whether the Hook order has changed on refresh.\n//\n// This function is intended to be used as a transform target, e.g.:\n// var _s = createSignatureFunctionForTransform()\n//\n// function Hello() {\n// const [foo, setFoo] = useState(0);\n// const value = useCustomHook();\n// _s(); /* Call without arguments triggers collecting the custom Hook list.\n// * This doesn't happen during the module evaluation because we\n// * don't want to change the module order with inline requires.\n// * Next calls are noops. */\n// return <h1>Hi</h1>;\n// }\n//\n// /* Call with arguments attaches the signature to the type: */\n// _s(\n// Hello,\n// 'useState{[foo, setFoo]}(0)',\n// () => [useCustomHook], /* Lazy to avoid triggering inline requires */\n// );\n\nfunction createSignatureFunctionForTransform() {\n {\n var savedType;\n var hasCustomHooks;\n var didCollectHooks = false;\n return function (type, key, forceReset, getCustomHooks) {\n if (typeof key === 'string') {\n // We're in the initial phase that associates signatures\n // with the functions. Note this may be called multiple times\n // in HOC chains like _s(hoc1(_s(hoc2(_s(actualFunction))))).\n if (!savedType) {\n // We're in the innermost call, so this is the actual type.\n savedType = type;\n hasCustomHooks = typeof getCustomHooks === 'function';\n } // Set the signature for all types (even wrappers!) in case\n // they have no signatures of their own. This is to prevent\n // problems like https://github.com/facebook/react/issues/20417.\n\n\n if (type != null && (typeof type === 'function' || typeof type === 'object')) {\n setSignature(type, key, forceReset, getCustomHooks);\n }\n\n return type;\n } else {\n // We're in the _s() call without arguments, which means\n // this is the time to collect custom Hook signatures.\n // Only do this once. This path is hot and runs *inside* every render!\n if (!didCollectHooks && hasCustomHooks) {\n didCollectHooks = true;\n collectCustomHooksForSignature(savedType);\n }\n }\n };\n }\n}\nfunction isLikelyComponentType(type) {\n {\n switch (typeof type) {\n case 'function':\n {\n // First, deal with classes.\n if (type.prototype != null) {\n if (type.prototype.isReactComponent) {\n // React class.\n return true;\n }\n\n var ownNames = Object.getOwnPropertyNames(type.prototype);\n\n if (ownNames.length > 1 || ownNames[0] !== 'constructor') {\n // This looks like a class.\n return false;\n } // eslint-disable-next-line no-proto\n\n\n if (type.prototype.__proto__ !== Object.prototype) {\n // It has a superclass.\n return false;\n } // Pass through.\n // This looks like a regular function with empty prototype.\n\n } // For plain functions and arrows, use name as a heuristic.\n\n\n var name = type.name || type.displayName;\n return typeof name === 'string' && /^[A-Z]/.test(name);\n }\n\n case 'object':\n {\n if (type != null) {\n switch (getProperty(type, '$$typeof')) {\n case REACT_FORWARD_REF_TYPE:\n case REACT_MEMO_TYPE:\n // Definitely React components.\n return true;\n\n default:\n return false;\n }\n }\n\n return false;\n }\n\n default:\n {\n return false;\n }\n }\n }\n}\n\nexports._getMountedRootCount = _getMountedRootCount;\nexports.collectCustomHooksForSignature = collectCustomHooksForSignature;\nexports.createSignatureFunctionForTransform = createSignatureFunctionForTransform;\nexports.findAffectedHostInstances = findAffectedHostInstances;\nexports.getFamilyByID = getFamilyByID;\nexports.getFamilyByType = getFamilyByType;\nexports.hasUnrecoverableErrors = hasUnrecoverableErrors;\nexports.injectIntoGlobalHook = injectIntoGlobalHook;\nexports.isLikelyComponentType = isLikelyComponentType;\nexports.performReactRefresh = performReactRefresh;\nexports.register = register;\nexports.setSignature = setSignature;\n })();\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvY29tcGlsZWQvcmVhY3QtcmVmcmVzaC9janMvcmVhY3QtcmVmcmVzaC1ydW50aW1lLmRldmVsb3BtZW50LmpzIiwibWFwcGluZ3MiOiJBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFYTs7QUFFYixJQUFJLElBQXFDO0FBQ3pDO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBLHFFQUFxRTtBQUNyRTs7QUFFQTtBQUNBO0FBQ0EsaURBQWlEO0FBQ2pEO0FBQ0E7O0FBRUEsbURBQW1EO0FBQ25EOztBQUVBLHlCQUF5Qjs7QUFFekI7QUFDQSwrQkFBK0I7O0FBRS9CLDhCQUE4Qjs7QUFFOUIsNkJBQTZCO0FBQzdCO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0EsSUFBSTtBQUNKO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBLGtCQUFrQixrQkFBa0I7QUFDcEM7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsRUFBRTs7O0FBR0Y7QUFDQTtBQUNBO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEdBQUc7QUFDSDtBQUNBLEVBQUU7OztBQUdGO0FBQ0E7QUFDQTtBQUNBLElBQUk7QUFDSjtBQUNBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsaUNBQWlDOztBQUVqQztBQUNBO0FBQ0EsUUFBUTtBQUNSO0FBQ0E7QUFDQSxLQUFLLEdBQUc7O0FBRVI7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBLDJCQUEyQjtBQUMzQjtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUEsbUNBQW1DO0FBQ25DOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBLFFBQVE7QUFDUjtBQUNBO0FBQ0E7QUFDQSxVQUFVOztBQUVWO0FBQ0EsS0FBSztBQUNMO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBLG9DQUFvQztBQUNwQzs7QUFFQTtBQUNBO0FBQ0EsUUFBUTtBQUNSO0FBQ0E7QUFDQTtBQUNBLFVBQVU7O0FBRVY7QUFDQSxLQUFLOztBQUVMO0FBQ0E7QUFDQTs7QUFFQTtBQUNBLElBQUk7QUFDSjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSxNQUFNO0FBQ047QUFDQTs7O0FBR0E7QUFDQTtBQUNBLE1BQU07QUFDTjtBQUNBOzs7QUFHQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsTUFBTTtBQUNOO0FBQ0E7O0FBRUEseUNBQXlDOztBQUV6QztBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUCxNQUFNOzs7QUFHTjtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEVBQUU7QUFDRjs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVCw2REFBNkQ7QUFDN0QsK0VBQStFO0FBQy9FO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxNQUFNOzs7QUFHTjs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7OztBQUdBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLLEdBQUc7O0FBRVI7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsMkNBQTJDO0FBQzNDO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsWUFBWSxvQ0FBb0M7QUFDaEQ7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxjQUFjO0FBQ2Q7QUFDQTtBQUNBLFlBQVk7QUFDWjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsVUFBVTtBQUNWO0FBQ0E7QUFDQTtBQUNBLFFBQVE7OztBQUdSO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsRUFBRTs7QUFFRjtBQUNBO0FBQ0E7QUFDQTtBQUNBLEVBQUU7QUFDRjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsV0FBVztBQUNYO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGVBQWUsY0FBYztBQUM3QjtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxVQUFVO0FBQ1Y7QUFDQTs7O0FBR0E7QUFDQTtBQUNBOztBQUVBO0FBQ0EsUUFBUTtBQUNSO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLGNBQWM7OztBQUdkO0FBQ0E7QUFDQTtBQUNBLGNBQWM7QUFDZDs7QUFFQSxZQUFZOzs7QUFHWjtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBLDRCQUE0QjtBQUM1QixzQ0FBc0M7QUFDdEMsMkNBQTJDO0FBQzNDLGlDQUFpQztBQUNqQyxxQkFBcUI7QUFDckIsdUJBQXVCO0FBQ3ZCLDhCQUE4QjtBQUM5Qiw0QkFBNEI7QUFDNUIsNkJBQTZCO0FBQzdCLDJCQUEyQjtBQUMzQixnQkFBZ0I7QUFDaEIsb0JBQW9CO0FBQ3BCLEdBQUc7QUFDSCIsInNvdXJjZXMiOlsiRDpcXGRvbmd5dW4tcHJvamVjdHNcXHR3b1xcbm9kZV9tb2R1bGVzXFxuZXh0XFxkaXN0XFxjb21waWxlZFxccmVhY3QtcmVmcmVzaFxcY2pzXFxyZWFjdC1yZWZyZXNoLXJ1bnRpbWUuZGV2ZWxvcG1lbnQuanMiXSwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAbGljZW5zZSBSZWFjdFxuICogcmVhY3QtcmVmcmVzaC1ydW50aW1lLmRldmVsb3BtZW50LmpzXG4gKlxuICogQ29weXJpZ2h0IChjKSBGYWNlYm9vaywgSW5jLiBhbmQgaXRzIGFmZmlsaWF0ZXMuXG4gKlxuICogVGhpcyBzb3VyY2UgY29kZSBpcyBsaWNlbnNlZCB1bmRlciB0aGUgTUlUIGxpY2Vuc2UgZm91bmQgaW4gdGhlXG4gKiBMSUNFTlNFIGZpbGUgaW4gdGhlIHJvb3QgZGlyZWN0b3J5IG9mIHRoaXMgc291cmNlIHRyZWUuXG4gKi9cblxuJ3VzZSBzdHJpY3QnO1xuXG5pZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09IFwicHJvZHVjdGlvblwiKSB7XG4gIChmdW5jdGlvbigpIHtcbid1c2Ugc3RyaWN0JztcblxuLy8gQVRURU5USU9OXG52YXIgUkVBQ1RfRk9SV0FSRF9SRUZfVFlQRSA9IFN5bWJvbC5mb3IoJ3JlYWN0LmZvcndhcmRfcmVmJyk7XG52YXIgUkVBQ1RfTUVNT19UWVBFID0gU3ltYm9sLmZvcigncmVhY3QubWVtbycpO1xuXG52YXIgUG9zc2libHlXZWFrTWFwID0gdHlwZW9mIFdlYWtNYXAgPT09ICdmdW5jdGlvbicgPyBXZWFrTWFwIDogTWFwOyAvLyBXZSBuZXZlciByZW1vdmUgdGhlc2UgYXNzb2NpYXRpb25zLlxuLy8gSXQncyBPSyB0byByZWZlcmVuY2UgZmFtaWxpZXMsIGJ1dCB1c2UgV2Vha01hcC9TZXQgZm9yIHR5cGVzLlxuXG52YXIgYWxsRmFtaWxpZXNCeUlEID0gbmV3IE1hcCgpO1xudmFyIGFsbEZhbWlsaWVzQnlUeXBlID0gbmV3IFBvc3NpYmx5V2Vha01hcCgpO1xudmFyIGFsbFNpZ25hdHVyZXNCeVR5cGUgPSBuZXcgUG9zc2libHlXZWFrTWFwKCk7IC8vIFRoaXMgV2Vha01hcCBpcyByZWFkIGJ5IFJlYWN0LCBzbyB3ZSBvbmx5IHB1dCBmYW1pbGllc1xuLy8gdGhhdCBoYXZlIGFjdHVhbGx5IGJlZW4gZWRpdGVkIGhlcmUuIFRoaXMga2VlcHMgY2hlY2tzIGZhc3QuXG4vLyAkRmxvd0lzc3VlXG5cbnZhciB1cGRhdGVkRmFtaWxpZXNCeVR5cGUgPSBuZXcgUG9zc2libHlXZWFrTWFwKCk7IC8vIFRoaXMgaXMgY2xlYXJlZCBvbiBldmVyeSBwZXJmb3JtUmVhY3RSZWZyZXNoKCkgY2FsbC5cbi8vIEl0IGlzIGFuIGFycmF5IG9mIFtGYW1pbHksIE5leHRUeXBlXSB0dXBsZXMuXG5cbnZhciBwZW5kaW5nVXBkYXRlcyA9IFtdOyAvLyBUaGlzIGlzIGluamVjdGVkIGJ5IHRoZSByZW5kZXJlciB2aWEgRGV2VG9vbHMgZ2xvYmFsIGhvb2suXG5cbnZhciBoZWxwZXJzQnlSZW5kZXJlcklEID0gbmV3IE1hcCgpO1xudmFyIGhlbHBlcnNCeVJvb3QgPSBuZXcgTWFwKCk7IC8vIFdlIGtlZXAgdHJhY2sgb2YgbW91bnRlZCByb290cyBzbyB3ZSBjYW4gc2NoZWR1bGUgdXBkYXRlcy5cblxudmFyIG1vdW50ZWRSb290cyA9IG5ldyBTZXQoKTsgLy8gSWYgYSByb290IGNhcHR1cmVzIGFuIGVycm9yLCB3ZSByZW1lbWJlciBpdCBzbyB3ZSBjYW4gcmV0cnkgb24gZWRpdC5cblxudmFyIGZhaWxlZFJvb3RzID0gbmV3IFNldCgpOyAvLyBJbiBlbnZpcm9ubWVudHMgdGhhdCBzdXBwb3J0IFdlYWtNYXAsIHdlIGFsc28gcmVtZW1iZXIgdGhlIGxhc3QgZWxlbWVudCBmb3IgZXZlcnkgcm9vdC5cbi8vIEl0IG5lZWRzIHRvIGJlIHdlYWsgYmVjYXVzZSB3ZSBkbyB0aGlzIGV2ZW4gZm9yIHJvb3RzIHRoYXQgZmFpbGVkIHRvIG1vdW50LlxuLy8gSWYgdGhlcmUgaXMgbm8gV2Vha01hcCwgd2Ugd29uJ3QgYXR0ZW1wdCB0byBkbyByZXRyeWluZy5cbi8vICRGbG93SXNzdWVcblxudmFyIHJvb3RFbGVtZW50cyA9IC8vICRGbG93SXNzdWVcbnR5cGVvZiBXZWFrTWFwID09PSAnZnVuY3Rpb24nID8gbmV3IFdlYWtNYXAoKSA6IG51bGw7XG52YXIgaXNQZXJmb3JtaW5nUmVmcmVzaCA9IGZhbHNlO1xuXG5mdW5jdGlvbiBjb21wdXRlRnVsbEtleShzaWduYXR1cmUpIHtcbiAgaWYgKHNpZ25hdHVyZS5mdWxsS2V5ICE9PSBudWxsKSB7XG4gICAgcmV0dXJuIHNpZ25hdHVyZS5mdWxsS2V5O1xuICB9XG5cbiAgdmFyIGZ1bGxLZXkgPSBzaWduYXR1cmUub3duS2V5O1xuICB2YXIgaG9va3M7XG5cbiAgdHJ5IHtcbiAgICBob29rcyA9IHNpZ25hdHVyZS5nZXRDdXN0b21Ib29rcygpO1xuICB9IGNhdGNoIChlcnIpIHtcbiAgICAvLyBUaGlzIGNhbiBoYXBwZW4gaW4gYW4gZWRnZSBjYXNlLCBlLmcuIGlmIGV4cHJlc3Npb24gbGlrZSBGb28udXNlU29tZXRoaW5nXG4gICAgLy8gZGVwZW5kcyBvbiBGb28gd2hpY2ggaXMgbGF6aWx5IGluaXRpYWxpemVkIGR1cmluZyByZW5kZXJpbmcuXG4gICAgLy8gSW4gdGhhdCBjYXNlIGp1c3QgYXNzdW1lIHdlJ2xsIGhhdmUgdG8gcmVtb3VudC5cbiAgICBzaWduYXR1cmUuZm9yY2VSZXNldCA9IHRydWU7XG4gICAgc2lnbmF0dXJlLmZ1bGxLZXkgPSBmdWxsS2V5O1xuICAgIHJldHVybiBmdWxsS2V5O1xuICB9XG5cbiAgZm9yICh2YXIgaSA9IDA7IGkgPCBob29rcy5sZW5ndGg7IGkrKykge1xuICAgIHZhciBob29rID0gaG9va3NbaV07XG5cbiAgICBpZiAodHlwZW9mIGhvb2sgIT09ICdmdW5jdGlvbicpIHtcbiAgICAgIC8vIFNvbWV0aGluZydzIHdyb25nLiBBc3N1bWUgd2UgbmVlZCB0byByZW1vdW50LlxuICAgICAgc2lnbmF0dXJlLmZvcmNlUmVzZXQgPSB0cnVlO1xuICAgICAgc2lnbmF0dXJlLmZ1bGxLZXkgPSBmdWxsS2V5O1xuICAgICAgcmV0dXJuIGZ1bGxLZXk7XG4gICAgfVxuXG4gICAgdmFyIG5lc3RlZEhvb2tTaWduYXR1cmUgPSBhbGxTaWduYXR1cmVzQnlUeXBlLmdldChob29rKTtcblxuICAgIGlmIChuZXN0ZWRIb29rU2lnbmF0dXJlID09PSB1bmRlZmluZWQpIHtcbiAgICAgIC8vIE5vIHNpZ25hdHVyZSBtZWFucyBIb29rIHdhc24ndCBpbiB0aGUgc291cmNlIGNvZGUsIGUuZy4gaW4gYSBsaWJyYXJ5LlxuICAgICAgLy8gV2UnbGwgc2tpcCBpdCBiZWNhdXNlIHdlIGNhbiBhc3N1bWUgaXQgd29uJ3QgY2hhbmdlIGR1cmluZyB0aGlzIHNlc3Npb24uXG4gICAgICBjb250aW51ZTtcbiAgICB9XG5cbiAgICB2YXIgbmVzdGVkSG9va0tleSA9IGNvbXB1dGVGdWxsS2V5KG5lc3RlZEhvb2tTaWduYXR1cmUpO1xuXG4gICAgaWYgKG5lc3RlZEhvb2tTaWduYXR1cmUuZm9yY2VSZXNldCkge1xuICAgICAgc2lnbmF0dXJlLmZvcmNlUmVzZXQgPSB0cnVlO1xuICAgIH1cblxuICAgIGZ1bGxLZXkgKz0gJ1xcbi0tLVxcbicgKyBuZXN0ZWRIb29rS2V5O1xuICB9XG5cbiAgc2lnbmF0dXJlLmZ1bGxLZXkgPSBmdWxsS2V5O1xuICByZXR1cm4gZnVsbEtleTtcbn1cblxuZnVuY3Rpb24gaGF2ZUVxdWFsU2lnbmF0dXJlcyhwcmV2VHlwZSwgbmV4dFR5cGUpIHtcbiAgdmFyIHByZXZTaWduYXR1cmUgPSBhbGxTaWduYXR1cmVzQnlUeXBlLmdldChwcmV2VHlwZSk7XG4gIHZhciBuZXh0U2lnbmF0dXJlID0gYWxsU2lnbmF0dXJlc0J5VHlwZS5nZXQobmV4dFR5cGUpO1xuXG4gIGlmIChwcmV2U2lnbmF0dXJlID09PSB1bmRlZmluZWQgJiYgbmV4dFNpZ25hdHVyZSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cblxuICBpZiAocHJldlNpZ25hdHVyZSA9PT0gdW5kZWZpbmVkIHx8IG5leHRTaWduYXR1cmUgPT09IHVuZGVmaW5lZCkge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIGlmIChjb21wdXRlRnVsbEtleShwcmV2U2lnbmF0dXJlKSAhPT0gY29tcHV0ZUZ1bGxLZXkobmV4dFNpZ25hdHVyZSkpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBpZiAobmV4dFNpZ25hdHVyZS5mb3JjZVJlc2V0KSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgcmV0dXJuIHRydWU7XG59XG5cbmZ1bmN0aW9uIGlzUmVhY3RDbGFzcyh0eXBlKSB7XG4gIHJldHVybiB0eXBlLnByb3RvdHlwZSAmJiB0eXBlLnByb3RvdHlwZS5pc1JlYWN0Q29tcG9uZW50O1xufVxuXG5mdW5jdGlvbiBjYW5QcmVzZXJ2ZVN0YXRlQmV0d2VlbihwcmV2VHlwZSwgbmV4dFR5cGUpIHtcbiAgaWYgKGlzUmVhY3RDbGFzcyhwcmV2VHlwZSkgfHwgaXNSZWFjdENsYXNzKG5leHRUeXBlKSkge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIGlmIChoYXZlRXF1YWxTaWduYXR1cmVzKHByZXZUeXBlLCBuZXh0VHlwZSkpIHtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuXG4gIHJldHVybiBmYWxzZTtcbn1cblxuZnVuY3Rpb24gcmVzb2x2ZUZhbWlseSh0eXBlKSB7XG4gIC8vIE9ubHkgY2hlY2sgdXBkYXRlZCB0eXBlcyB0byBrZWVwIGxvb2t1cHMgZmFzdC5cbiAgcmV0dXJuIHVwZGF0ZWRGYW1pbGllc0J5VHlwZS5nZXQodHlwZSk7XG59IC8vIElmIHdlIGRpZG4ndCBjYXJlIGFib3V0IElFMTEsIHdlIGNvdWxkIHVzZSBuZXcgTWFwL1NldChpdGVyYWJsZSkuXG5cblxuZnVuY3Rpb24gY2xvbmVNYXAobWFwKSB7XG4gIHZhciBjbG9uZSA9IG5ldyBNYXAoKTtcbiAgbWFwLmZvckVhY2goZnVuY3Rpb24gKHZhbHVlLCBrZXkpIHtcbiAgICBjbG9uZS5zZXQoa2V5LCB2YWx1ZSk7XG4gIH0pO1xuICByZXR1cm4gY2xvbmU7XG59XG5cbmZ1bmN0aW9uIGNsb25lU2V0KHNldCkge1xuICB2YXIgY2xvbmUgPSBuZXcgU2V0KCk7XG4gIHNldC5mb3JFYWNoKGZ1bmN0aW9uICh2YWx1ZSkge1xuICAgIGNsb25lLmFkZCh2YWx1ZSk7XG4gIH0pO1xuICByZXR1cm4gY2xvbmU7XG59IC8vIFRoaXMgaXMgYSBzYWZldHkgbWVjaGFuaXNtIHRvIHByb3RlY3QgYWdhaW5zdCByb2d1ZSBnZXR0ZXJzIGFuZCBQcm94aWVzLlxuXG5cbmZ1bmN0aW9uIGdldFByb3BlcnR5KG9iamVjdCwgcHJvcGVydHkpIHtcbiAgdHJ5IHtcbiAgICByZXR1cm4gb2JqZWN0W3Byb3BlcnR5XTtcbiAgfSBjYXRjaCAoZXJyKSB7XG4gICAgLy8gSW50ZW50aW9uYWxseSBpZ25vcmUuXG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgfVxufVxuXG5mdW5jdGlvbiBwZXJmb3JtUmVhY3RSZWZyZXNoKCkge1xuXG4gIGlmIChwZW5kaW5nVXBkYXRlcy5sZW5ndGggPT09IDApIHtcbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIGlmIChpc1BlcmZvcm1pbmdSZWZyZXNoKSB7XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICBpc1BlcmZvcm1pbmdSZWZyZXNoID0gdHJ1ZTtcblxuICB0cnkge1xuICAgIHZhciBzdGFsZUZhbWlsaWVzID0gbmV3IFNldCgpO1xuICAgIHZhciB1cGRhdGVkRmFtaWxpZXMgPSBuZXcgU2V0KCk7XG4gICAgdmFyIHVwZGF0ZXMgPSBwZW5kaW5nVXBkYXRlcztcbiAgICBwZW5kaW5nVXBkYXRlcyA9IFtdO1xuICAgIHVwZGF0ZXMuZm9yRWFjaChmdW5jdGlvbiAoX3JlZikge1xuICAgICAgdmFyIGZhbWlseSA9IF9yZWZbMF0sXG4gICAgICAgICAgbmV4dFR5cGUgPSBfcmVmWzFdO1xuICAgICAgLy8gTm93IHRoYXQgd2UgZ290IGEgcmVhbCBlZGl0LCB3ZSBjYW4gY3JlYXRlIGFzc29jaWF0aW9uc1xuICAgICAgLy8gdGhhdCB3aWxsIGJlIHJlYWQgYnkgdGhlIFJlYWN0IHJlY29uY2lsZXIuXG4gICAgICB2YXIgcHJldlR5cGUgPSBmYW1pbHkuY3VycmVudDtcbiAgICAgIHVwZGF0ZWRGYW1pbGllc0J5VHlwZS5zZXQocHJldlR5cGUsIGZhbWlseSk7XG4gICAgICB1cGRhdGVkRmFtaWxpZXNCeVR5cGUuc2V0KG5leHRUeXBlLCBmYW1pbHkpO1xuICAgICAgZmFtaWx5LmN1cnJlbnQgPSBuZXh0VHlwZTsgLy8gRGV0ZXJtaW5lIHdoZXRoZXIgdGhpcyBzaG91bGQgYmUgYSByZS1yZW5kZXIgb3IgYSByZS1tb3VudC5cblxuICAgICAgaWYgKGNhblByZXNlcnZlU3RhdGVCZXR3ZWVuKHByZXZUeXBlLCBuZXh0VHlwZSkpIHtcbiAgICAgICAgdXBkYXRlZEZhbWlsaWVzLmFkZChmYW1pbHkpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgc3RhbGVGYW1pbGllcy5hZGQoZmFtaWx5KTtcbiAgICAgIH1cbiAgICB9KTsgLy8gVE9ETzogcmVuYW1lIHRoZXNlIGZpZWxkcyB0byBzb21ldGhpbmcgbW9yZSBtZWFuaW5nZnVsLlxuXG4gICAgdmFyIHVwZGF0ZSA9IHtcbiAgICAgIHVwZGF0ZWRGYW1pbGllczogdXBkYXRlZEZhbWlsaWVzLFxuICAgICAgLy8gRmFtaWxpZXMgdGhhdCB3aWxsIHJlLXJlbmRlciBwcmVzZXJ2aW5nIHN0YXRlXG4gICAgICBzdGFsZUZhbWlsaWVzOiBzdGFsZUZhbWlsaWVzIC8vIEZhbWlsaWVzIHRoYXQgd2lsbCBiZSByZW1vdW50ZWRcblxuICAgIH07XG4gICAgaGVscGVyc0J5UmVuZGVyZXJJRC5mb3JFYWNoKGZ1bmN0aW9uIChoZWxwZXJzKSB7XG4gICAgICAvLyBFdmVuIGlmIHRoZXJlIGFyZSBubyByb290cywgc2V0IHRoZSBoYW5kbGVyIG9uIGZpcnN0IHVwZGF0ZS5cbiAgICAgIC8vIFRoaXMgZW5zdXJlcyB0aGF0IGlmICpuZXcqIHJvb3RzIGFyZSBtb3VudGVkLCB0aGV5J2xsIHVzZSB0aGUgcmVzb2x2ZSBoYW5kbGVyLlxuICAgICAgaGVscGVycy5zZXRSZWZyZXNoSGFuZGxlcihyZXNvbHZlRmFtaWx5KTtcbiAgICB9KTtcbiAgICB2YXIgZGlkRXJyb3IgPSBmYWxzZTtcbiAgICB2YXIgZmlyc3RFcnJvciA9IG51bGw7IC8vIFdlIHNuYXBzaG90IG1hcHMgYW5kIHNldHMgdGhhdCBhcmUgbXV0YXRlZCBkdXJpbmcgY29tbWl0cy5cbiAgICAvLyBJZiB3ZSBkb24ndCBkbyB0aGlzLCB0aGVyZSBpcyBhIHJpc2sgdGhleSB3aWxsIGJlIG11dGF0ZWQgd2hpbGVcbiAgICAvLyB3ZSBpdGVyYXRlIG92ZXIgdGhlbS4gRm9yIGV4YW1wbGUsIHRyeWluZyB0byByZWNvdmVyIGEgZmFpbGVkIHJvb3RcbiAgICAvLyBtYXkgY2F1c2UgYW5vdGhlciByb290IHRvIGJlIGFkZGVkIHRvIHRoZSBmYWlsZWQgbGlzdCAtLSBhbiBpbmZpbml0ZSBsb29wLlxuXG4gICAgdmFyIGZhaWxlZFJvb3RzU25hcHNob3QgPSBjbG9uZVNldChmYWlsZWRSb290cyk7XG4gICAgdmFyIG1vdW50ZWRSb290c1NuYXBzaG90ID0gY2xvbmVTZXQobW91bnRlZFJvb3RzKTtcbiAgICB2YXIgaGVscGVyc0J5Um9vdFNuYXBzaG90ID0gY2xvbmVNYXAoaGVscGVyc0J5Um9vdCk7XG4gICAgZmFpbGVkUm9vdHNTbmFwc2hvdC5mb3JFYWNoKGZ1bmN0aW9uIChyb290KSB7XG4gICAgICB2YXIgaGVscGVycyA9IGhlbHBlcnNCeVJvb3RTbmFwc2hvdC5nZXQocm9vdCk7XG5cbiAgICAgIGlmIChoZWxwZXJzID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdDb3VsZCBub3QgZmluZCBoZWxwZXJzIGZvciBhIHJvb3QuIFRoaXMgaXMgYSBidWcgaW4gUmVhY3QgUmVmcmVzaC4nKTtcbiAgICAgIH1cblxuICAgICAgaWYgKCFmYWlsZWRSb290cy5oYXMocm9vdCkpIHsvLyBObyBsb25nZXIgZmFpbGVkLlxuICAgICAgfVxuXG4gICAgICBpZiAocm9vdEVsZW1lbnRzID09PSBudWxsKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgaWYgKCFyb290RWxlbWVudHMuaGFzKHJvb3QpKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgdmFyIGVsZW1lbnQgPSByb290RWxlbWVudHMuZ2V0KHJvb3QpO1xuXG4gICAgICB0cnkge1xuICAgICAgICBoZWxwZXJzLnNjaGVkdWxlUm9vdChyb290LCBlbGVtZW50KTtcbiAgICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgICBpZiAoIWRpZEVycm9yKSB7XG4gICAgICAgICAgZGlkRXJyb3IgPSB0cnVlO1xuICAgICAgICAgIGZpcnN0RXJyb3IgPSBlcnI7XG4gICAgICAgIH0gLy8gS2VlcCB0cnlpbmcgb3RoZXIgcm9vdHMuXG5cbiAgICAgIH1cbiAgICB9KTtcbiAgICBtb3VudGVkUm9vdHNTbmFwc2hvdC5mb3JFYWNoKGZ1bmN0aW9uIChyb290KSB7XG4gICAgICB2YXIgaGVscGVycyA9IGhlbHBlcnNCeVJvb3RTbmFwc2hvdC5nZXQocm9vdCk7XG5cbiAgICAgIGlmIChoZWxwZXJzID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdDb3VsZCBub3QgZmluZCBoZWxwZXJzIGZvciBhIHJvb3QuIFRoaXMgaXMgYSBidWcgaW4gUmVhY3QgUmVmcmVzaC4nKTtcbiAgICAgIH1cblxuICAgICAgaWYgKCFtb3VudGVkUm9vdHMuaGFzKHJvb3QpKSB7Ly8gTm8gbG9uZ2VyIG1vdW50ZWQuXG4gICAgICB9XG5cbiAgICAgIHRyeSB7XG4gICAgICAgIGhlbHBlcnMuc2NoZWR1bGVSZWZyZXNoKHJvb3QsIHVwZGF0ZSk7XG4gICAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgICAgaWYgKCFkaWRFcnJvcikge1xuICAgICAgICAgIGRpZEVycm9yID0gdHJ1ZTtcbiAgICAgICAgICBmaXJzdEVycm9yID0gZXJyO1xuICAgICAgICB9IC8vIEtlZXAgdHJ5aW5nIG90aGVyIHJvb3RzLlxuXG4gICAgICB9XG4gICAgfSk7XG5cbiAgICBpZiAoZGlkRXJyb3IpIHtcbiAgICAgIHRocm93IGZpcnN0RXJyb3I7XG4gICAgfVxuXG4gICAgcmV0dXJuIHVwZGF0ZTtcbiAgfSBmaW5hbGx5IHtcbiAgICBpc1BlcmZvcm1pbmdSZWZyZXNoID0gZmFsc2U7XG4gIH1cbn1cbmZ1bmN0aW9uIHJlZ2lzdGVyKHR5cGUsIGlkKSB7XG4gIHtcbiAgICBpZiAodHlwZSA9PT0gbnVsbCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmICh0eXBlb2YgdHlwZSAhPT0gJ2Z1bmN0aW9uJyAmJiB0eXBlb2YgdHlwZSAhPT0gJ29iamVjdCcpIHtcbiAgICAgIHJldHVybjtcbiAgICB9IC8vIFRoaXMgY2FuIGhhcHBlbiBpbiBhbiBlZGdlIGNhc2UsIGUuZy4gaWYgd2UgcmVnaXN0ZXJcbiAgICAvLyByZXR1cm4gdmFsdWUgb2YgYSBIT0MgYnV0IGl0IHJldHVybnMgYSBjYWNoZWQgY29tcG9uZW50LlxuICAgIC8vIElnbm9yZSBhbnl0aGluZyBidXQgdGhlIGZpcnN0IHJlZ2lzdHJhdGlvbiBmb3IgZWFjaCB0eXBlLlxuXG5cbiAgICBpZiAoYWxsRmFtaWxpZXNCeVR5cGUuaGFzKHR5cGUpKSB7XG4gICAgICByZXR1cm47XG4gICAgfSAvLyBDcmVhdGUgZmFtaWx5IG9yIHJlbWVtYmVyIHRvIHVwZGF0ZSBpdC5cbiAgICAvLyBOb25lIG9mIHRoaXMgYm9va2tlZXBpbmcgYWZmZWN0cyByZWNvbmNpbGlhdGlvblxuICAgIC8vIHVudGlsIHRoZSBmaXJzdCBwZXJmb3JtUmVhY3RSZWZyZXNoKCkgY2FsbCBhYm92ZS5cblxuXG4gICAgdmFyIGZhbWlseSA9IGFsbEZhbWlsaWVzQnlJRC5nZXQoaWQpO1xuXG4gICAgaWYgKGZhbWlseSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICBmYW1pbHkgPSB7XG4gICAgICAgIGN1cnJlbnQ6IHR5cGVcbiAgICAgIH07XG4gICAgICBhbGxGYW1pbGllc0J5SUQuc2V0KGlkLCBmYW1pbHkpO1xuICAgIH0gZWxzZSB7XG4gICAgICBwZW5kaW5nVXBkYXRlcy5wdXNoKFtmYW1pbHksIHR5cGVdKTtcbiAgICB9XG5cbiAgICBhbGxGYW1pbGllc0J5VHlwZS5zZXQodHlwZSwgZmFtaWx5KTsgLy8gVmlzaXQgaW5uZXIgdHlwZXMgYmVjYXVzZSB3ZSBtaWdodCBub3QgaGF2ZSByZWdpc3RlcmVkIHRoZW0uXG5cbiAgICBpZiAodHlwZW9mIHR5cGUgPT09ICdvYmplY3QnICYmIHR5cGUgIT09IG51bGwpIHtcbiAgICAgIHN3aXRjaCAoZ2V0UHJvcGVydHkodHlwZSwgJyQkdHlwZW9mJykpIHtcbiAgICAgICAgY2FzZSBSRUFDVF9GT1JXQVJEX1JFRl9UWVBFOlxuICAgICAgICAgIHJlZ2lzdGVyKHR5cGUucmVuZGVyLCBpZCArICckcmVuZGVyJyk7XG4gICAgICAgICAgYnJlYWs7XG5cbiAgICAgICAgY2FzZSBSRUFDVF9NRU1PX1RZUEU6XG4gICAgICAgICAgcmVnaXN0ZXIodHlwZS50eXBlLCBpZCArICckdHlwZScpO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuZnVuY3Rpb24gc2V0U2lnbmF0dXJlKHR5cGUsIGtleSkge1xuICB2YXIgZm9yY2VSZXNldCA9IGFyZ3VtZW50cy5sZW5ndGggPiAyICYmIGFyZ3VtZW50c1syXSAhPT0gdW5kZWZpbmVkID8gYXJndW1lbnRzWzJdIDogZmFsc2U7XG4gIHZhciBnZXRDdXN0b21Ib29rcyA9IGFyZ3VtZW50cy5sZW5ndGggPiAzID8gYXJndW1lbnRzWzNdIDogdW5kZWZpbmVkO1xuXG4gIHtcbiAgICBpZiAoIWFsbFNpZ25hdHVyZXNCeVR5cGUuaGFzKHR5cGUpKSB7XG4gICAgICBhbGxTaWduYXR1cmVzQnlUeXBlLnNldCh0eXBlLCB7XG4gICAgICAgIGZvcmNlUmVzZXQ6IGZvcmNlUmVzZXQsXG4gICAgICAgIG93bktleToga2V5LFxuICAgICAgICBmdWxsS2V5OiBudWxsLFxuICAgICAgICBnZXRDdXN0b21Ib29rczogZ2V0Q3VzdG9tSG9va3MgfHwgZnVuY3Rpb24gKCkge1xuICAgICAgICAgIHJldHVybiBbXTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfSAvLyBWaXNpdCBpbm5lciB0eXBlcyBiZWNhdXNlIHdlIG1pZ2h0IG5vdCBoYXZlIHNpZ25lZCB0aGVtLlxuXG5cbiAgICBpZiAodHlwZW9mIHR5cGUgPT09ICdvYmplY3QnICYmIHR5cGUgIT09IG51bGwpIHtcbiAgICAgIHN3aXRjaCAoZ2V0UHJvcGVydHkodHlwZSwgJyQkdHlwZW9mJykpIHtcbiAgICAgICAgY2FzZSBSRUFDVF9GT1JXQVJEX1JFRl9UWVBFOlxuICAgICAgICAgIHNldFNpZ25hdHVyZSh0eXBlLnJlbmRlciwga2V5LCBmb3JjZVJlc2V0LCBnZXRDdXN0b21Ib29rcyk7XG4gICAgICAgICAgYnJlYWs7XG5cbiAgICAgICAgY2FzZSBSRUFDVF9NRU1PX1RZUEU6XG4gICAgICAgICAgc2V0U2lnbmF0dXJlKHR5cGUudHlwZSwga2V5LCBmb3JjZVJlc2V0LCBnZXRDdXN0b21Ib29rcyk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgfVxuICB9XG59IC8vIFRoaXMgaXMgbGF6aWx5IGNhbGxlZCBkdXJpbmcgZmlyc3QgcmVuZGVyIGZvciBhIHR5cGUuXG4vLyBJdCBjYXB0dXJlcyBIb29rIGxpc3QgYXQgdGhhdCB0aW1lIHNvIGlubGluZSByZXF1aXJlcyBkb24ndCBicmVhayBjb21wYXJpc29ucy5cblxuZnVuY3Rpb24gY29sbGVjdEN1c3RvbUhvb2tzRm9yU2lnbmF0dXJlKHR5cGUpIHtcbiAge1xuICAgIHZhciBzaWduYXR1cmUgPSBhbGxTaWduYXR1cmVzQnlUeXBlLmdldCh0eXBlKTtcblxuICAgIGlmIChzaWduYXR1cmUgIT09IHVuZGVmaW5lZCkge1xuICAgICAgY29tcHV0ZUZ1bGxLZXkoc2lnbmF0dXJlKTtcbiAgICB9XG4gIH1cbn1cbmZ1bmN0aW9uIGdldEZhbWlseUJ5SUQoaWQpIHtcbiAge1xuICAgIHJldHVybiBhbGxGYW1pbGllc0J5SUQuZ2V0KGlkKTtcbiAgfVxufVxuZnVuY3Rpb24gZ2V0RmFtaWx5QnlUeXBlKHR5cGUpIHtcbiAge1xuICAgIHJldHVybiBhbGxGYW1pbGllc0J5VHlwZS5nZXQodHlwZSk7XG4gIH1cbn1cbmZ1bmN0aW9uIGZpbmRBZmZlY3RlZEhvc3RJbnN0YW5jZXMoZmFtaWxpZXMpIHtcbiAge1xuICAgIHZhciBhZmZlY3RlZEluc3RhbmNlcyA9IG5ldyBTZXQoKTtcbiAgICBtb3VudGVkUm9vdHMuZm9yRWFjaChmdW5jdGlvbiAocm9vdCkge1xuICAgICAgdmFyIGhlbHBlcnMgPSBoZWxwZXJzQnlSb290LmdldChyb290KTtcblxuICAgICAgaWYgKGhlbHBlcnMgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ0NvdWxkIG5vdCBmaW5kIGhlbHBlcnMgZm9yIGEgcm9vdC4gVGhpcyBpcyBhIGJ1ZyBpbiBSZWFjdCBSZWZyZXNoLicpO1xuICAgICAgfVxuXG4gICAgICB2YXIgaW5zdGFuY2VzRm9yUm9vdCA9IGhlbHBlcnMuZmluZEhvc3RJbnN0YW5jZXNGb3JSZWZyZXNoKHJvb3QsIGZhbWlsaWVzKTtcbiAgICAgIGluc3RhbmNlc0ZvclJvb3QuZm9yRWFjaChmdW5jdGlvbiAoaW5zdCkge1xuICAgICAgICBhZmZlY3RlZEluc3RhbmNlcy5hZGQoaW5zdCk7XG4gICAgICB9KTtcbiAgICB9KTtcbiAgICByZXR1cm4gYWZmZWN0ZWRJbnN0YW5jZXM7XG4gIH1cbn1cbmZ1bmN0aW9uIGluamVjdEludG9HbG9iYWxIb29rKGdsb2JhbE9iamVjdCkge1xuICB7XG4gICAgLy8gRm9yIFJlYWN0IE5hdGl2ZSwgdGhlIGdsb2JhbCBob29rIHdpbGwgYmUgc2V0IHVwIGJ5IHJlcXVpcmUoJ3JlYWN0LWRldnRvb2xzLWNvcmUnKS5cbiAgICAvLyBUaGF0IGNvZGUgd2lsbCBydW4gYmVmb3JlIHVzLiBTbyB3ZSBuZWVkIHRvIG1vbmtleXBhdGNoIGZ1bmN0aW9ucyBvbiBleGlzdGluZyBob29rLlxuICAgIC8vIEZvciBSZWFjdCBXZWIsIHRoZSBnbG9iYWwgaG9vayB3aWxsIGJlIHNldCB1cCBieSB0aGUgZXh0ZW5zaW9uLlxuICAgIC8vIFRoaXMgd2lsbCBhbHNvIHJ1biBiZWZvcmUgdXMuXG4gICAgdmFyIGhvb2sgPSBnbG9iYWxPYmplY3QuX19SRUFDVF9ERVZUT09MU19HTE9CQUxfSE9PS19fO1xuXG4gICAgaWYgKGhvb2sgPT09IHVuZGVmaW5lZCkge1xuICAgICAgLy8gSG93ZXZlciwgaWYgdGhlcmUgaXMgbm8gRGV2VG9vbHMgZXh0ZW5zaW9uLCB3ZSdsbCBuZWVkIHRvIHNldCB1cCB0aGUgZ2xvYmFsIGhvb2sgb3Vyc2VsdmVzLlxuICAgICAgLy8gTm90ZSB0aGF0IGluIHRoaXMgY2FzZSBpdCdzIGltcG9ydGFudCB0aGF0IHJlbmRlcmVyIGNvZGUgcnVucyAqYWZ0ZXIqIHRoaXMgbWV0aG9kIGNhbGwuXG4gICAgICAvLyBPdGhlcndpc2UsIHRoZSByZW5kZXJlciB3aWxsIHRoaW5rIHRoYXQgdGhlcmUgaXMgbm8gZ2xvYmFsIGhvb2ssIGFuZCB3b24ndCBkbyB0aGUgaW5qZWN0aW9uLlxuICAgICAgdmFyIG5leHRJRCA9IDA7XG4gICAgICBnbG9iYWxPYmplY3QuX19SRUFDVF9ERVZUT09MU19HTE9CQUxfSE9PS19fID0gaG9vayA9IHtcbiAgICAgICAgcmVuZGVyZXJzOiBuZXcgTWFwKCksXG4gICAgICAgIHN1cHBvcnRzRmliZXI6IHRydWUsXG4gICAgICAgIGluamVjdDogZnVuY3Rpb24gKGluamVjdGVkKSB7XG4gICAgICAgICAgcmV0dXJuIG5leHRJRCsrO1xuICAgICAgICB9LFxuICAgICAgICBvblNjaGVkdWxlRmliZXJSb290OiBmdW5jdGlvbiAoaWQsIHJvb3QsIGNoaWxkcmVuKSB7fSxcbiAgICAgICAgb25Db21taXRGaWJlclJvb3Q6IGZ1bmN0aW9uIChpZCwgcm9vdCwgbWF5YmVQcmlvcml0eUxldmVsLCBkaWRFcnJvcikge30sXG4gICAgICAgIG9uQ29tbWl0RmliZXJVbm1vdW50OiBmdW5jdGlvbiAoKSB7fVxuICAgICAgfTtcbiAgICB9XG5cbiAgICBpZiAoaG9vay5pc0Rpc2FibGVkKSB7XG4gICAgICAvLyBUaGlzIGlzbid0IGEgcmVhbCBwcm9wZXJ0eSBvbiB0aGUgaG9vaywgYnV0IGl0IGNhbiBiZSBzZXQgdG8gb3B0IG91dFxuICAgICAgLy8gb2YgRGV2VG9vbHMgaW50ZWdyYXRpb24gYW5kIGFzc29jaWF0ZWQgd2FybmluZ3MgYW5kIGxvZ3MuXG4gICAgICAvLyBVc2luZyBjb25zb2xlWyd3YXJuJ10gdG8gZXZhZGUgQmFiZWwgYW5kIEVTTGludFxuICAgICAgY29uc29sZVsnd2FybiddKCdTb21ldGhpbmcgaGFzIHNoaW1tZWQgdGhlIFJlYWN0IERldlRvb2xzIGdsb2JhbCBob29rIChfX1JFQUNUX0RFVlRPT0xTX0dMT0JBTF9IT09LX18pLiAnICsgJ0Zhc3QgUmVmcmVzaCBpcyBub3QgY29tcGF0aWJsZSB3aXRoIHRoaXMgc2hpbSBhbmQgd2lsbCBiZSBkaXNhYmxlZC4nKTtcbiAgICAgIHJldHVybjtcbiAgICB9IC8vIEhlcmUsIHdlIGp1c3Qgd2FudCB0byBnZXQgYSByZWZlcmVuY2UgdG8gc2NoZWR1bGVSZWZyZXNoLlxuXG5cbiAgICB2YXIgb2xkSW5qZWN0ID0gaG9vay5pbmplY3Q7XG5cbiAgICBob29rLmluamVjdCA9IGZ1bmN0aW9uIChpbmplY3RlZCkge1xuICAgICAgdmFyIGlkID0gb2xkSW5qZWN0LmFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7XG5cbiAgICAgIGlmICh0eXBlb2YgaW5qZWN0ZWQuc2NoZWR1bGVSZWZyZXNoID09PSAnZnVuY3Rpb24nICYmIHR5cGVvZiBpbmplY3RlZC5zZXRSZWZyZXNoSGFuZGxlciA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICAvLyBUaGlzIHZlcnNpb24gc3VwcG9ydHMgUmVhY3QgUmVmcmVzaC5cbiAgICAgICAgaGVscGVyc0J5UmVuZGVyZXJJRC5zZXQoaWQsIGluamVjdGVkKTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIGlkO1xuICAgIH07IC8vIERvIHRoZSBzYW1lIGZvciBhbnkgYWxyZWFkeSBpbmplY3RlZCByb290cy5cbiAgICAvLyBUaGlzIGlzIHVzZWZ1bCBpZiBSZWFjdERPTSBoYXMgYWxyZWFkeSBiZWVuIGluaXRpYWxpemVkLlxuICAgIC8vIGh0dHBzOi8vZ2l0aHViLmNvbS9mYWNlYm9vay9yZWFjdC9pc3N1ZXMvMTc2MjZcblxuXG4gICAgaG9vay5yZW5kZXJlcnMuZm9yRWFjaChmdW5jdGlvbiAoaW5qZWN0ZWQsIGlkKSB7XG4gICAgICBpZiAodHlwZW9mIGluamVjdGVkLnNjaGVkdWxlUmVmcmVzaCA9PT0gJ2Z1bmN0aW9uJyAmJiB0eXBlb2YgaW5qZWN0ZWQuc2V0UmVmcmVzaEhhbmRsZXIgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgLy8gVGhpcyB2ZXJzaW9uIHN1cHBvcnRzIFJlYWN0IFJlZnJlc2guXG4gICAgICAgIGhlbHBlcnNCeVJlbmRlcmVySUQuc2V0KGlkLCBpbmplY3RlZCk7XG4gICAgICB9XG4gICAgfSk7IC8vIFdlIGFsc28gd2FudCB0byB0cmFjayBjdXJyZW50bHkgbW91bnRlZCByb290cy5cblxuICAgIHZhciBvbGRPbkNvbW1pdEZpYmVyUm9vdCA9IGhvb2sub25Db21taXRGaWJlclJvb3Q7XG5cbiAgICB2YXIgb2xkT25TY2hlZHVsZUZpYmVyUm9vdCA9IGhvb2sub25TY2hlZHVsZUZpYmVyUm9vdCB8fCBmdW5jdGlvbiAoKSB7fTtcblxuICAgIGhvb2sub25TY2hlZHVsZUZpYmVyUm9vdCA9IGZ1bmN0aW9uIChpZCwgcm9vdCwgY2hpbGRyZW4pIHtcbiAgICAgIGlmICghaXNQZXJmb3JtaW5nUmVmcmVzaCkge1xuICAgICAgICAvLyBJZiBpdCB3YXMgaW50ZW50aW9uYWxseSBzY2hlZHVsZWQsIGRvbid0IGF0dGVtcHQgdG8gcmVzdG9yZS5cbiAgICAgICAgLy8gVGhpcyBpbmNsdWRlcyBpbnRlbnRpb25hbGx5IHNjaGVkdWxlZCB1bm1vdW50cy5cbiAgICAgICAgZmFpbGVkUm9vdHMuZGVsZXRlKHJvb3QpO1xuXG4gICAgICAgIGlmIChyb290RWxlbWVudHMgIT09IG51bGwpIHtcbiAgICAgICAgICByb290RWxlbWVudHMuc2V0KHJvb3QsIGNoaWxkcmVuKTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICByZXR1cm4gb2xkT25TY2hlZHVsZUZpYmVyUm9vdC5hcHBseSh0aGlzLCBhcmd1bWVudHMpO1xuICAgIH07XG5cbiAgICBob29rLm9uQ29tbWl0RmliZXJSb290ID0gZnVuY3Rpb24gKGlkLCByb290LCBtYXliZVByaW9yaXR5TGV2ZWwsIGRpZEVycm9yKSB7XG4gICAgICB2YXIgaGVscGVycyA9IGhlbHBlcnNCeVJlbmRlcmVySUQuZ2V0KGlkKTtcblxuICAgICAgaWYgKGhlbHBlcnMgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICBoZWxwZXJzQnlSb290LnNldChyb290LCBoZWxwZXJzKTtcbiAgICAgICAgdmFyIGN1cnJlbnQgPSByb290LmN1cnJlbnQ7XG4gICAgICAgIHZhciBhbHRlcm5hdGUgPSBjdXJyZW50LmFsdGVybmF0ZTsgLy8gV2UgbmVlZCB0byBkZXRlcm1pbmUgd2hldGhlciB0aGlzIHJvb3QgaGFzIGp1c3QgKHVuKW1vdW50ZWQuXG4gICAgICAgIC8vIFRoaXMgbG9naWMgaXMgY29weS1wYXN0ZWQgZnJvbSBzaW1pbGFyIGxvZ2ljIGluIHRoZSBEZXZUb29scyBiYWNrZW5kLlxuICAgICAgICAvLyBJZiB0aGlzIGJyZWFrcyB3aXRoIHNvbWUgcmVmYWN0b3JpbmcsIHlvdSdsbCB3YW50IHRvIHVwZGF0ZSBEZXZUb29scyB0b28uXG5cbiAgICAgICAgaWYgKGFsdGVybmF0ZSAhPT0gbnVsbCkge1xuICAgICAgICAgIHZhciB3YXNNb3VudGVkID0gYWx0ZXJuYXRlLm1lbW9pemVkU3RhdGUgIT0gbnVsbCAmJiBhbHRlcm5hdGUubWVtb2l6ZWRTdGF0ZS5lbGVtZW50ICE9IG51bGwgJiYgbW91bnRlZFJvb3RzLmhhcyhyb290KTtcbiAgICAgICAgICB2YXIgaXNNb3VudGVkID0gY3VycmVudC5tZW1vaXplZFN0YXRlICE9IG51bGwgJiYgY3VycmVudC5tZW1vaXplZFN0YXRlLmVsZW1lbnQgIT0gbnVsbDtcblxuICAgICAgICAgIGlmICghd2FzTW91bnRlZCAmJiBpc01vdW50ZWQpIHtcbiAgICAgICAgICAgIC8vIE1vdW50IGEgbmV3IHJvb3QuXG4gICAgICAgICAgICBtb3VudGVkUm9vdHMuYWRkKHJvb3QpO1xuICAgICAgICAgICAgZmFpbGVkUm9vdHMuZGVsZXRlKHJvb3QpO1xuICAgICAgICAgIH0gZWxzZSBpZiAod2FzTW91bnRlZCAmJiBpc01vdW50ZWQpIDsgZWxzZSBpZiAod2FzTW91bnRlZCAmJiAhaXNNb3VudGVkKSB7XG4gICAgICAgICAgICAvLyBVbm1vdW50IGFuIGV4aXN0aW5nIHJvb3QuXG4gICAgICAgICAgICBtb3VudGVkUm9vdHMuZGVsZXRlKHJvb3QpO1xuXG4gICAgICAgICAgICBpZiAoZGlkRXJyb3IpIHtcbiAgICAgICAgICAgICAgLy8gV2UnbGwgcmVtb3VudCBpdCBvbiBmdXR1cmUgZWRpdHMuXG4gICAgICAgICAgICAgIGZhaWxlZFJvb3RzLmFkZChyb290KTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgIGhlbHBlcnNCeVJvb3QuZGVsZXRlKHJvb3QpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0gZWxzZSBpZiAoIXdhc01vdW50ZWQgJiYgIWlzTW91bnRlZCkge1xuICAgICAgICAgICAgaWYgKGRpZEVycm9yKSB7XG4gICAgICAgICAgICAgIC8vIFdlJ2xsIHJlbW91bnQgaXQgb24gZnV0dXJlIGVkaXRzLlxuICAgICAgICAgICAgICBmYWlsZWRSb290cy5hZGQocm9vdCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIC8vIE1vdW50IGEgbmV3IHJvb3QuXG4gICAgICAgICAgbW91bnRlZFJvb3RzLmFkZChyb290KTtcbiAgICAgICAgfVxuICAgICAgfSAvLyBBbHdheXMgY2FsbCB0aGUgZGVjb3JhdGVkIERldlRvb2xzIGhvb2suXG5cblxuICAgICAgcmV0dXJuIG9sZE9uQ29tbWl0RmliZXJSb290LmFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7XG4gICAgfTtcbiAgfVxufVxuZnVuY3Rpb24gaGFzVW5yZWNvdmVyYWJsZUVycm9ycygpIHtcbiAgLy8gVE9ETzogZGVsZXRlIHRoaXMgYWZ0ZXIgcmVtb3ZpbmcgZGVwZW5kZW5jeSBpbiBSTi5cbiAgcmV0dXJuIGZhbHNlO1xufSAvLyBFeHBvc2VkIGZvciB0ZXN0aW5nLlxuXG5mdW5jdGlvbiBfZ2V0TW91bnRlZFJvb3RDb3VudCgpIHtcbiAge1xuICAgIHJldHVybiBtb3VudGVkUm9vdHMuc2l6ZTtcbiAgfVxufSAvLyBUaGlzIGlzIGEgd3JhcHBlciBvdmVyIG1vcmUgcHJpbWl0aXZlIGZ1bmN0aW9ucyBmb3Igc2V0dGluZyBzaWduYXR1cmUuXG4vLyBTaWduYXR1cmVzIGxldCB1cyBkZWNpZGUgd2hldGhlciB0aGUgSG9vayBvcmRlciBoYXMgY2hhbmdlZCBvbiByZWZyZXNoLlxuLy9cbi8vIFRoaXMgZnVuY3Rpb24gaXMgaW50ZW5kZWQgdG8gYmUgdXNlZCBhcyBhIHRyYW5zZm9ybSB0YXJnZXQsIGUuZy46XG4vLyB2YXIgX3MgPSBjcmVhdGVTaWduYXR1cmVGdW5jdGlvbkZvclRyYW5zZm9ybSgpXG4vL1xuLy8gZnVuY3Rpb24gSGVsbG8oKSB7XG4vLyAgIGNvbnN0IFtmb28sIHNldEZvb10gPSB1c2VTdGF0ZSgwKTtcbi8vICAgY29uc3QgdmFsdWUgPSB1c2VDdXN0b21Ib29rKCk7XG4vLyAgIF9zKCk7IC8qIENhbGwgd2l0aG91dCBhcmd1bWVudHMgdHJpZ2dlcnMgY29sbGVjdGluZyB0aGUgY3VzdG9tIEhvb2sgbGlzdC5cbi8vICAgICAgICAgICogVGhpcyBkb2Vzbid0IGhhcHBlbiBkdXJpbmcgdGhlIG1vZHVsZSBldmFsdWF0aW9uIGJlY2F1c2Ugd2Vcbi8vICAgICAgICAgICogZG9uJ3Qgd2FudCB0byBjaGFuZ2UgdGhlIG1vZHVsZSBvcmRlciB3aXRoIGlubGluZSByZXF1aXJlcy5cbi8vICAgICAgICAgICogTmV4dCBjYWxscyBhcmUgbm9vcHMuICovXG4vLyAgIHJldHVybiA8aDE+SGk8L2gxPjtcbi8vIH1cbi8vXG4vLyAvKiBDYWxsIHdpdGggYXJndW1lbnRzIGF0dGFjaGVzIHRoZSBzaWduYXR1cmUgdG8gdGhlIHR5cGU6ICovXG4vLyBfcyhcbi8vICAgSGVsbG8sXG4vLyAgICd1c2VTdGF0ZXtbZm9vLCBzZXRGb29dfSgwKScsXG4vLyAgICgpID0+IFt1c2VDdXN0b21Ib29rXSwgLyogTGF6eSB0byBhdm9pZCB0cmlnZ2VyaW5nIGlubGluZSByZXF1aXJlcyAqL1xuLy8gKTtcblxuZnVuY3Rpb24gY3JlYXRlU2lnbmF0dXJlRnVuY3Rpb25Gb3JUcmFuc2Zvcm0oKSB7XG4gIHtcbiAgICB2YXIgc2F2ZWRUeXBlO1xuICAgIHZhciBoYXNDdXN0b21Ib29rcztcbiAgICB2YXIgZGlkQ29sbGVjdEhvb2tzID0gZmFsc2U7XG4gICAgcmV0dXJuIGZ1bmN0aW9uICh0eXBlLCBrZXksIGZvcmNlUmVzZXQsIGdldEN1c3RvbUhvb2tzKSB7XG4gICAgICBpZiAodHlwZW9mIGtleSA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgLy8gV2UncmUgaW4gdGhlIGluaXRpYWwgcGhhc2UgdGhhdCBhc3NvY2lhdGVzIHNpZ25hdHVyZXNcbiAgICAgICAgLy8gd2l0aCB0aGUgZnVuY3Rpb25zLiBOb3RlIHRoaXMgbWF5IGJlIGNhbGxlZCBtdWx0aXBsZSB0aW1lc1xuICAgICAgICAvLyBpbiBIT0MgY2hhaW5zIGxpa2UgX3MoaG9jMShfcyhob2MyKF9zKGFjdHVhbEZ1bmN0aW9uKSkpKSkuXG4gICAgICAgIGlmICghc2F2ZWRUeXBlKSB7XG4gICAgICAgICAgLy8gV2UncmUgaW4gdGhlIGlubmVybW9zdCBjYWxsLCBzbyB0aGlzIGlzIHRoZSBhY3R1YWwgdHlwZS5cbiAgICAgICAgICBzYXZlZFR5cGUgPSB0eXBlO1xuICAgICAgICAgIGhhc0N1c3RvbUhvb2tzID0gdHlwZW9mIGdldEN1c3RvbUhvb2tzID09PSAnZnVuY3Rpb24nO1xuICAgICAgICB9IC8vIFNldCB0aGUgc2lnbmF0dXJlIGZvciBhbGwgdHlwZXMgKGV2ZW4gd3JhcHBlcnMhKSBpbiBjYXNlXG4gICAgICAgIC8vIHRoZXkgaGF2ZSBubyBzaWduYXR1cmVzIG9mIHRoZWlyIG93bi4gVGhpcyBpcyB0byBwcmV2ZW50XG4gICAgICAgIC8vIHByb2JsZW1zIGxpa2UgaHR0cHM6Ly9naXRodWIuY29tL2ZhY2Vib29rL3JlYWN0L2lzc3Vlcy8yMDQxNy5cblxuXG4gICAgICAgIGlmICh0eXBlICE9IG51bGwgJiYgKHR5cGVvZiB0eXBlID09PSAnZnVuY3Rpb24nIHx8IHR5cGVvZiB0eXBlID09PSAnb2JqZWN0JykpIHtcbiAgICAgICAgICBzZXRTaWduYXR1cmUodHlwZSwga2V5LCBmb3JjZVJlc2V0LCBnZXRDdXN0b21Ib29rcyk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gdHlwZTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIC8vIFdlJ3JlIGluIHRoZSBfcygpIGNhbGwgd2l0aG91dCBhcmd1bWVudHMsIHdoaWNoIG1lYW5zXG4gICAgICAgIC8vIHRoaXMgaXMgdGhlIHRpbWUgdG8gY29sbGVjdCBjdXN0b20gSG9vayBzaWduYXR1cmVzLlxuICAgICAgICAvLyBPbmx5IGRvIHRoaXMgb25jZS4gVGhpcyBwYXRoIGlzIGhvdCBhbmQgcnVucyAqaW5zaWRlKiBldmVyeSByZW5kZXIhXG4gICAgICAgIGlmICghZGlkQ29sbGVjdEhvb2tzICYmIGhhc0N1c3RvbUhvb2tzKSB7XG4gICAgICAgICAgZGlkQ29sbGVjdEhvb2tzID0gdHJ1ZTtcbiAgICAgICAgICBjb2xsZWN0Q3VzdG9tSG9va3NGb3JTaWduYXR1cmUoc2F2ZWRUeXBlKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH07XG4gIH1cbn1cbmZ1bmN0aW9uIGlzTGlrZWx5Q29tcG9uZW50VHlwZSh0eXBlKSB7XG4gIHtcbiAgICBzd2l0Y2ggKHR5cGVvZiB0eXBlKSB7XG4gICAgICBjYXNlICdmdW5jdGlvbic6XG4gICAgICAgIHtcbiAgICAgICAgICAvLyBGaXJzdCwgZGVhbCB3aXRoIGNsYXNzZXMuXG4gICAgICAgICAgaWYgKHR5cGUucHJvdG90eXBlICE9IG51bGwpIHtcbiAgICAgICAgICAgIGlmICh0eXBlLnByb3RvdHlwZS5pc1JlYWN0Q29tcG9uZW50KSB7XG4gICAgICAgICAgICAgIC8vIFJlYWN0IGNsYXNzLlxuICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgdmFyIG93bk5hbWVzID0gT2JqZWN0LmdldE93blByb3BlcnR5TmFtZXModHlwZS5wcm90b3R5cGUpO1xuXG4gICAgICAgICAgICBpZiAob3duTmFtZXMubGVuZ3RoID4gMSB8fCBvd25OYW1lc1swXSAhPT0gJ2NvbnN0cnVjdG9yJykge1xuICAgICAgICAgICAgICAvLyBUaGlzIGxvb2tzIGxpa2UgYSBjbGFzcy5cbiAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgICAgfSAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tcHJvdG9cblxuXG4gICAgICAgICAgICBpZiAodHlwZS5wcm90b3R5cGUuX19wcm90b19fICE9PSBPYmplY3QucHJvdG90eXBlKSB7XG4gICAgICAgICAgICAgIC8vIEl0IGhhcyBhIHN1cGVyY2xhc3MuXG4gICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgICAgIH0gLy8gUGFzcyB0aHJvdWdoLlxuICAgICAgICAgICAgLy8gVGhpcyBsb29rcyBsaWtlIGEgcmVndWxhciBmdW5jdGlvbiB3aXRoIGVtcHR5IHByb3RvdHlwZS5cblxuICAgICAgICAgIH0gLy8gRm9yIHBsYWluIGZ1bmN0aW9ucyBhbmQgYXJyb3dzLCB1c2UgbmFtZSBhcyBhIGhldXJpc3RpYy5cblxuXG4gICAgICAgICAgdmFyIG5hbWUgPSB0eXBlLm5hbWUgfHwgdHlwZS5kaXNwbGF5TmFtZTtcbiAgICAgICAgICByZXR1cm4gdHlwZW9mIG5hbWUgPT09ICdzdHJpbmcnICYmIC9eW0EtWl0vLnRlc3QobmFtZSk7XG4gICAgICAgIH1cblxuICAgICAgY2FzZSAnb2JqZWN0JzpcbiAgICAgICAge1xuICAgICAgICAgIGlmICh0eXBlICE9IG51bGwpIHtcbiAgICAgICAgICAgIHN3aXRjaCAoZ2V0UHJvcGVydHkodHlwZSwgJyQkdHlwZW9mJykpIHtcbiAgICAgICAgICAgICAgY2FzZSBSRUFDVF9GT1JXQVJEX1JFRl9UWVBFOlxuICAgICAgICAgICAgICBjYXNlIFJFQUNUX01FTU9fVFlQRTpcbiAgICAgICAgICAgICAgICAvLyBEZWZpbml0ZWx5IFJlYWN0IGNvbXBvbmVudHMuXG4gICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7XG5cbiAgICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG5cbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIHtcbiAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuZXhwb3J0cy5fZ2V0TW91bnRlZFJvb3RDb3VudCA9IF9nZXRNb3VudGVkUm9vdENvdW50O1xuZXhwb3J0cy5jb2xsZWN0Q3VzdG9tSG9va3NGb3JTaWduYXR1cmUgPSBjb2xsZWN0Q3VzdG9tSG9va3NGb3JTaWduYXR1cmU7XG5leHBvcnRzLmNyZWF0ZVNpZ25hdHVyZUZ1bmN0aW9uRm9yVHJhbnNmb3JtID0gY3JlYXRlU2lnbmF0dXJlRnVuY3Rpb25Gb3JUcmFuc2Zvcm07XG5leHBvcnRzLmZpbmRBZmZlY3RlZEhvc3RJbnN0YW5jZXMgPSBmaW5kQWZmZWN0ZWRIb3N0SW5zdGFuY2VzO1xuZXhwb3J0cy5nZXRGYW1pbHlCeUlEID0gZ2V0RmFtaWx5QnlJRDtcbmV4cG9ydHMuZ2V0RmFtaWx5QnlUeXBlID0gZ2V0RmFtaWx5QnlUeXBlO1xuZXhwb3J0cy5oYXNVbnJlY292ZXJhYmxlRXJyb3JzID0gaGFzVW5yZWNvdmVyYWJsZUVycm9ycztcbmV4cG9ydHMuaW5qZWN0SW50b0dsb2JhbEhvb2sgPSBpbmplY3RJbnRvR2xvYmFsSG9vaztcbmV4cG9ydHMuaXNMaWtlbHlDb21wb25lbnRUeXBlID0gaXNMaWtlbHlDb21wb25lbnRUeXBlO1xuZXhwb3J0cy5wZXJmb3JtUmVhY3RSZWZyZXNoID0gcGVyZm9ybVJlYWN0UmVmcmVzaDtcbmV4cG9ydHMucmVnaXN0ZXIgPSByZWdpc3RlcjtcbmV4cG9ydHMuc2V0U2lnbmF0dXJlID0gc2V0U2lnbmF0dXJlO1xuICB9KSgpO1xufVxuIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(pages-dir-browser)/./node_modules/next/dist/compiled/react-refresh/cjs/react-refresh-runtime.development.js\n")); - -/***/ }), - -/***/ "(pages-dir-browser)/./node_modules/next/dist/compiled/react-refresh/runtime.js": -/*!******************************************************************!*\ - !*** ./node_modules/next/dist/compiled/react-refresh/runtime.js ***! - \******************************************************************/ -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { - -"use strict"; -eval(__webpack_require__.ts("\n\nif (false) {} else {\n module.exports = __webpack_require__(/*! ./cjs/react-refresh-runtime.development.js */ \"(pages-dir-browser)/./node_modules/next/dist/compiled/react-refresh/cjs/react-refresh-runtime.development.js\");\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvY29tcGlsZWQvcmVhY3QtcmVmcmVzaC9ydW50aW1lLmpzIiwibWFwcGluZ3MiOiJBQUFhOztBQUViLElBQUksS0FBcUMsRUFBRSxFQUUxQyxDQUFDO0FBQ0YsRUFBRSxzTUFBc0U7QUFDeEUiLCJzb3VyY2VzIjpbIkQ6XFxkb25neXVuLXByb2plY3RzXFx0d29cXG5vZGVfbW9kdWxlc1xcbmV4dFxcZGlzdFxcY29tcGlsZWRcXHJlYWN0LXJlZnJlc2hcXHJ1bnRpbWUuanMiXSwic291cmNlc0NvbnRlbnQiOlsiJ3VzZSBzdHJpY3QnO1xuXG5pZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgPT09ICdwcm9kdWN0aW9uJykge1xuICBtb2R1bGUuZXhwb3J0cyA9IHJlcXVpcmUoJy4vY2pzL3JlYWN0LXJlZnJlc2gtcnVudGltZS5wcm9kdWN0aW9uLm1pbi5qcycpO1xufSBlbHNlIHtcbiAgbW9kdWxlLmV4cG9ydHMgPSByZXF1aXJlKCcuL2Nqcy9yZWFjdC1yZWZyZXNoLXJ1bnRpbWUuZGV2ZWxvcG1lbnQuanMnKTtcbn1cbiJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(pages-dir-browser)/./node_modules/next/dist/compiled/react-refresh/runtime.js\n")); - -/***/ }) - -}, -/******/ __webpack_require__ => { // webpackRuntimeModules -/******/ var __webpack_exec__ = (moduleId) => (__webpack_require__(__webpack_require__.s = moduleId)) -/******/ var __webpack_exports__ = (__webpack_exec__("(pages-dir-browser)/./node_modules/next/dist/compiled/@next/react-refresh-utils/dist/runtime.js")); -/******/ _N_E = __webpack_exports__; -/******/ } -]); \ No newline at end of file diff --git a/build/static/chunks/webpack.js b/build/static/chunks/webpack.js deleted file mode 100644 index 0607976..0000000 --- a/build/static/chunks/webpack.js +++ /dev/null @@ -1,1293 +0,0 @@ -/******/ (() => { // webpackBootstrap -/******/ "use strict"; -/******/ var __webpack_modules__ = ({}); -/************************************************************************/ -/******/ // The module cache -/******/ var __webpack_module_cache__ = {}; -/******/ -/******/ // The require function -/******/ function __webpack_require__(moduleId) { -/******/ // Check if module is in cache -/******/ var cachedModule = __webpack_module_cache__[moduleId]; -/******/ if (cachedModule !== undefined) { -/******/ if (cachedModule.error !== undefined) throw cachedModule.error; -/******/ return cachedModule.exports; -/******/ } -/******/ // Create a new module (and put it into the cache) -/******/ var module = __webpack_module_cache__[moduleId] = { -/******/ id: moduleId, -/******/ loaded: false, -/******/ exports: {} -/******/ }; -/******/ -/******/ // Execute the module function -/******/ var threw = true; -/******/ try { -/******/ var execOptions = { id: moduleId, module: module, factory: __webpack_modules__[moduleId], require: __webpack_require__ }; -/******/ __webpack_require__.i.forEach(function(handler) { handler(execOptions); }); -/******/ module = execOptions.module; -/******/ execOptions.factory.call(module.exports, module, module.exports, execOptions.require); -/******/ threw = false; -/******/ } finally { -/******/ if(threw) delete __webpack_module_cache__[moduleId]; -/******/ } -/******/ -/******/ // Flag the module as loaded -/******/ module.loaded = true; -/******/ -/******/ // Return the exports of the module -/******/ return module.exports; -/******/ } -/******/ -/******/ // expose the modules object (__webpack_modules__) -/******/ __webpack_require__.m = __webpack_modules__; -/******/ -/******/ // expose the module cache -/******/ __webpack_require__.c = __webpack_module_cache__; -/******/ -/******/ // expose the module execution interceptor -/******/ __webpack_require__.i = []; -/******/ -/************************************************************************/ -/******/ /* webpack/runtime/chunk loaded */ -/******/ (() => { -/******/ var deferred = []; -/******/ __webpack_require__.O = (result, chunkIds, fn, priority) => { -/******/ if(chunkIds) { -/******/ priority = priority || 0; -/******/ for(var i = deferred.length; i > 0 && deferred[i - 1][2] > priority; i--) deferred[i] = deferred[i - 1]; -/******/ deferred[i] = [chunkIds, fn, priority]; -/******/ return; -/******/ } -/******/ var notFulfilled = Infinity; -/******/ for (var i = 0; i < deferred.length; i++) { -/******/ var [chunkIds, fn, priority] = deferred[i]; -/******/ var fulfilled = true; -/******/ for (var j = 0; j < chunkIds.length; j++) { -/******/ if ((priority & 1 === 0 || notFulfilled >= priority) && Object.keys(__webpack_require__.O).every((key) => (__webpack_require__.O[key](chunkIds[j])))) { -/******/ chunkIds.splice(j--, 1); -/******/ } else { -/******/ fulfilled = false; -/******/ if(priority < notFulfilled) notFulfilled = priority; -/******/ } -/******/ } -/******/ if(fulfilled) { -/******/ deferred.splice(i--, 1) -/******/ var r = fn(); -/******/ if (r !== undefined) result = r; -/******/ } -/******/ } -/******/ return result; -/******/ }; -/******/ })(); -/******/ -/******/ /* webpack/runtime/compat get default export */ -/******/ (() => { -/******/ // getDefaultExport function for compatibility with non-harmony modules -/******/ __webpack_require__.n = (module) => { -/******/ var getter = module && module.__esModule ? -/******/ () => (module['default']) : -/******/ () => (module); -/******/ __webpack_require__.d(getter, { a: getter }); -/******/ return getter; -/******/ }; -/******/ })(); -/******/ -/******/ /* webpack/runtime/create fake namespace object */ -/******/ (() => { -/******/ var getProto = Object.getPrototypeOf ? (obj) => (Object.getPrototypeOf(obj)) : (obj) => (obj.__proto__); -/******/ var leafPrototypes; -/******/ // create a fake namespace object -/******/ // mode & 1: value is a module id, require it -/******/ // mode & 2: merge all properties of value into the ns -/******/ // mode & 4: return value when already ns object -/******/ // mode & 16: return value when it's Promise-like -/******/ // mode & 8|1: behave like require -/******/ __webpack_require__.t = function(value, mode) { -/******/ if(mode & 1) value = this(value); -/******/ if(mode & 8) return value; -/******/ if(typeof value === 'object' && value) { -/******/ if((mode & 4) && value.__esModule) return value; -/******/ if((mode & 16) && typeof value.then === 'function') return value; -/******/ } -/******/ var ns = Object.create(null); -/******/ __webpack_require__.r(ns); -/******/ var def = {}; -/******/ leafPrototypes = leafPrototypes || [null, getProto({}), getProto([]), getProto(getProto)]; -/******/ for(var current = mode & 2 && value; typeof current == 'object' && !~leafPrototypes.indexOf(current); current = getProto(current)) { -/******/ Object.getOwnPropertyNames(current).forEach((key) => (def[key] = () => (value[key]))); -/******/ } -/******/ def['default'] = () => (value); -/******/ __webpack_require__.d(ns, def); -/******/ return ns; -/******/ }; -/******/ })(); -/******/ -/******/ /* webpack/runtime/define property getters */ -/******/ (() => { -/******/ // define getter functions for harmony exports -/******/ __webpack_require__.d = (exports, definition) => { -/******/ for(var key in definition) { -/******/ if(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) { -/******/ Object.defineProperty(exports, key, { enumerable: true, get: definition[key] }); -/******/ } -/******/ } -/******/ }; -/******/ })(); -/******/ -/******/ /* webpack/runtime/ensure chunk */ -/******/ (() => { -/******/ __webpack_require__.f = {}; -/******/ // This file contains only the entry chunk. -/******/ // The chunk loading function for additional chunks -/******/ __webpack_require__.e = (chunkId) => { -/******/ return Promise.all(Object.keys(__webpack_require__.f).reduce((promises, key) => { -/******/ __webpack_require__.f[key](chunkId, promises); -/******/ return promises; -/******/ }, [])); -/******/ }; -/******/ })(); -/******/ -/******/ /* webpack/runtime/get javascript chunk filename */ -/******/ (() => { -/******/ // This function allow to reference async chunks -/******/ __webpack_require__.u = (chunkId) => { -/******/ // return url for filenames based on template -/******/ return "static/chunks/" + chunkId + ".js"; -/******/ }; -/******/ })(); -/******/ -/******/ /* webpack/runtime/get javascript update chunk filename */ -/******/ (() => { -/******/ // This function allow to reference all chunks -/******/ __webpack_require__.hu = (chunkId) => { -/******/ // return url for filenames based on template -/******/ return "static/webpack/" + chunkId + "." + __webpack_require__.h() + ".hot-update.js"; -/******/ }; -/******/ })(); -/******/ -/******/ /* webpack/runtime/get update manifest filename */ -/******/ (() => { -/******/ __webpack_require__.hmrF = () => ("static/webpack/" + __webpack_require__.h() + ".webpack.hot-update.json"); -/******/ })(); -/******/ -/******/ /* webpack/runtime/getFullHash */ -/******/ (() => { -/******/ __webpack_require__.h = () => ("76beab5924bf7329") -/******/ })(); -/******/ -/******/ /* webpack/runtime/hasOwnProperty shorthand */ -/******/ (() => { -/******/ __webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop)) -/******/ })(); -/******/ -/******/ /* webpack/runtime/load script */ -/******/ (() => { -/******/ var inProgress = {}; -/******/ var dataWebpackPrefix = "_N_E:"; -/******/ // loadScript function to load a script via script tag -/******/ __webpack_require__.l = (url, done, key, chunkId) => { -/******/ if(inProgress[url]) { inProgress[url].push(done); return; } -/******/ var script, needAttach; -/******/ if(key !== undefined) { -/******/ var scripts = document.getElementsByTagName("script"); -/******/ for(var i = 0; i < scripts.length; i++) { -/******/ var s = scripts[i]; -/******/ if(s.getAttribute("src") == url || s.getAttribute("data-webpack") == dataWebpackPrefix + key) { script = s; break; } -/******/ } -/******/ } -/******/ if(!script) { -/******/ needAttach = true; -/******/ script = document.createElement('script'); -/******/ -/******/ script.charset = 'utf-8'; -/******/ script.timeout = 120; -/******/ if (__webpack_require__.nc) { -/******/ script.setAttribute("nonce", __webpack_require__.nc); -/******/ } -/******/ script.setAttribute("data-webpack", dataWebpackPrefix + key); -/******/ -/******/ script.src = __webpack_require__.tu(url); -/******/ } -/******/ inProgress[url] = [done]; -/******/ var onScriptComplete = (prev, event) => { -/******/ // avoid mem leaks in IE. -/******/ script.onerror = script.onload = null; -/******/ clearTimeout(timeout); -/******/ var doneFns = inProgress[url]; -/******/ delete inProgress[url]; -/******/ script.parentNode && script.parentNode.removeChild(script); -/******/ doneFns && doneFns.forEach((fn) => (fn(event))); -/******/ if(prev) return prev(event); -/******/ } -/******/ var timeout = setTimeout(onScriptComplete.bind(null, undefined, { type: 'timeout', target: script }), 120000); -/******/ script.onerror = onScriptComplete.bind(null, script.onerror); -/******/ script.onload = onScriptComplete.bind(null, script.onload); -/******/ needAttach && document.head.appendChild(script); -/******/ }; -/******/ })(); -/******/ -/******/ /* webpack/runtime/make namespace object */ -/******/ (() => { -/******/ // define __esModule on exports -/******/ __webpack_require__.r = (exports) => { -/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { -/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); -/******/ } -/******/ Object.defineProperty(exports, '__esModule', { value: true }); -/******/ }; -/******/ })(); -/******/ -/******/ /* webpack/runtime/node module decorator */ -/******/ (() => { -/******/ __webpack_require__.nmd = (module) => { -/******/ module.paths = []; -/******/ if (!module.children) module.children = []; -/******/ return module; -/******/ }; -/******/ })(); -/******/ -/******/ /* webpack/runtime/trusted types policy */ -/******/ (() => { -/******/ var policy; -/******/ __webpack_require__.tt = () => { -/******/ // Create Trusted Type policy if Trusted Types are available and the policy doesn't exist yet. -/******/ if (policy === undefined) { -/******/ policy = { -/******/ createScript: (script) => (script), -/******/ createScriptURL: (url) => (url) -/******/ }; -/******/ if (typeof trustedTypes !== "undefined" && trustedTypes.createPolicy) { -/******/ policy = trustedTypes.createPolicy("nextjs#bundler", policy); -/******/ } -/******/ } -/******/ return policy; -/******/ }; -/******/ })(); -/******/ -/******/ /* webpack/runtime/trusted types script */ -/******/ (() => { -/******/ __webpack_require__.ts = (script) => (__webpack_require__.tt().createScript(script)); -/******/ })(); -/******/ -/******/ /* webpack/runtime/trusted types script url */ -/******/ (() => { -/******/ __webpack_require__.tu = (url) => (__webpack_require__.tt().createScriptURL(url)); -/******/ })(); -/******/ -/******/ /* webpack/runtime/hot module replacement */ -/******/ (() => { -/******/ var currentModuleData = {}; -/******/ var installedModules = __webpack_require__.c; -/******/ -/******/ // module and require creation -/******/ var currentChildModule; -/******/ var currentParents = []; -/******/ -/******/ // status -/******/ var registeredStatusHandlers = []; -/******/ var currentStatus = "idle"; -/******/ -/******/ // while downloading -/******/ var blockingPromises = 0; -/******/ var blockingPromisesWaiting = []; -/******/ -/******/ // The update info -/******/ var currentUpdateApplyHandlers; -/******/ var queuedInvalidatedModules; -/******/ -/******/ __webpack_require__.hmrD = currentModuleData; -/******/ -/******/ __webpack_require__.i.push(function (options) { -/******/ var module = options.module; -/******/ var require = createRequire(options.require, options.id); -/******/ module.hot = createModuleHotObject(options.id, module); -/******/ module.parents = currentParents; -/******/ module.children = []; -/******/ currentParents = []; -/******/ options.require = require; -/******/ }); -/******/ -/******/ __webpack_require__.hmrC = {}; -/******/ __webpack_require__.hmrI = {}; -/******/ -/******/ function createRequire(require, moduleId) { -/******/ var me = installedModules[moduleId]; -/******/ if (!me) return require; -/******/ var fn = function (request) { -/******/ if (me.hot.active) { -/******/ if (installedModules[request]) { -/******/ var parents = installedModules[request].parents; -/******/ if (parents.indexOf(moduleId) === -1) { -/******/ parents.push(moduleId); -/******/ } -/******/ } else { -/******/ currentParents = [moduleId]; -/******/ currentChildModule = request; -/******/ } -/******/ if (me.children.indexOf(request) === -1) { -/******/ me.children.push(request); -/******/ } -/******/ } else { -/******/ console.warn( -/******/ "[HMR] unexpected require(" + -/******/ request + -/******/ ") from disposed module " + -/******/ moduleId -/******/ ); -/******/ currentParents = []; -/******/ } -/******/ return require(request); -/******/ }; -/******/ var createPropertyDescriptor = function (name) { -/******/ return { -/******/ configurable: true, -/******/ enumerable: true, -/******/ get: function () { -/******/ return require[name]; -/******/ }, -/******/ set: function (value) { -/******/ require[name] = value; -/******/ } -/******/ }; -/******/ }; -/******/ for (var name in require) { -/******/ if (Object.prototype.hasOwnProperty.call(require, name) && name !== "e") { -/******/ Object.defineProperty(fn, name, createPropertyDescriptor(name)); -/******/ } -/******/ } -/******/ fn.e = function (chunkId, fetchPriority) { -/******/ return trackBlockingPromise(require.e(chunkId, fetchPriority)); -/******/ }; -/******/ return fn; -/******/ } -/******/ -/******/ function createModuleHotObject(moduleId, me) { -/******/ var _main = currentChildModule !== moduleId; -/******/ var hot = { -/******/ // private stuff -/******/ _acceptedDependencies: {}, -/******/ _acceptedErrorHandlers: {}, -/******/ _declinedDependencies: {}, -/******/ _selfAccepted: false, -/******/ _selfDeclined: false, -/******/ _selfInvalidated: false, -/******/ _disposeHandlers: [], -/******/ _main: _main, -/******/ _requireSelf: function () { -/******/ currentParents = me.parents.slice(); -/******/ currentChildModule = _main ? undefined : moduleId; -/******/ __webpack_require__(moduleId); -/******/ }, -/******/ -/******/ // Module API -/******/ active: true, -/******/ accept: function (dep, callback, errorHandler) { -/******/ if (dep === undefined) hot._selfAccepted = true; -/******/ else if (typeof dep === "function") hot._selfAccepted = dep; -/******/ else if (typeof dep === "object" && dep !== null) { -/******/ for (var i = 0; i < dep.length; i++) { -/******/ hot._acceptedDependencies[dep[i]] = callback || function () {}; -/******/ hot._acceptedErrorHandlers[dep[i]] = errorHandler; -/******/ } -/******/ } else { -/******/ hot._acceptedDependencies[dep] = callback || function () {}; -/******/ hot._acceptedErrorHandlers[dep] = errorHandler; -/******/ } -/******/ }, -/******/ decline: function (dep) { -/******/ if (dep === undefined) hot._selfDeclined = true; -/******/ else if (typeof dep === "object" && dep !== null) -/******/ for (var i = 0; i < dep.length; i++) -/******/ hot._declinedDependencies[dep[i]] = true; -/******/ else hot._declinedDependencies[dep] = true; -/******/ }, -/******/ dispose: function (callback) { -/******/ hot._disposeHandlers.push(callback); -/******/ }, -/******/ addDisposeHandler: function (callback) { -/******/ hot._disposeHandlers.push(callback); -/******/ }, -/******/ removeDisposeHandler: function (callback) { -/******/ var idx = hot._disposeHandlers.indexOf(callback); -/******/ if (idx >= 0) hot._disposeHandlers.splice(idx, 1); -/******/ }, -/******/ invalidate: function () { -/******/ this._selfInvalidated = true; -/******/ switch (currentStatus) { -/******/ case "idle": -/******/ currentUpdateApplyHandlers = []; -/******/ Object.keys(__webpack_require__.hmrI).forEach(function (key) { -/******/ __webpack_require__.hmrI[key]( -/******/ moduleId, -/******/ currentUpdateApplyHandlers -/******/ ); -/******/ }); -/******/ setStatus("ready"); -/******/ break; -/******/ case "ready": -/******/ Object.keys(__webpack_require__.hmrI).forEach(function (key) { -/******/ __webpack_require__.hmrI[key]( -/******/ moduleId, -/******/ currentUpdateApplyHandlers -/******/ ); -/******/ }); -/******/ break; -/******/ case "prepare": -/******/ case "check": -/******/ case "dispose": -/******/ case "apply": -/******/ (queuedInvalidatedModules = queuedInvalidatedModules || []).push( -/******/ moduleId -/******/ ); -/******/ break; -/******/ default: -/******/ // ignore requests in error states -/******/ break; -/******/ } -/******/ }, -/******/ -/******/ // Management API -/******/ check: hotCheck, -/******/ apply: hotApply, -/******/ status: function (l) { -/******/ if (!l) return currentStatus; -/******/ registeredStatusHandlers.push(l); -/******/ }, -/******/ addStatusHandler: function (l) { -/******/ registeredStatusHandlers.push(l); -/******/ }, -/******/ removeStatusHandler: function (l) { -/******/ var idx = registeredStatusHandlers.indexOf(l); -/******/ if (idx >= 0) registeredStatusHandlers.splice(idx, 1); -/******/ }, -/******/ -/******/ // inherit from previous dispose call -/******/ data: currentModuleData[moduleId] -/******/ }; -/******/ currentChildModule = undefined; -/******/ return hot; -/******/ } -/******/ -/******/ function setStatus(newStatus) { -/******/ currentStatus = newStatus; -/******/ var results = []; -/******/ -/******/ for (var i = 0; i < registeredStatusHandlers.length; i++) -/******/ results[i] = registeredStatusHandlers[i].call(null, newStatus); -/******/ -/******/ return Promise.all(results).then(function () {}); -/******/ } -/******/ -/******/ function unblock() { -/******/ if (--blockingPromises === 0) { -/******/ setStatus("ready").then(function () { -/******/ if (blockingPromises === 0) { -/******/ var list = blockingPromisesWaiting; -/******/ blockingPromisesWaiting = []; -/******/ for (var i = 0; i < list.length; i++) { -/******/ list[i](); -/******/ } -/******/ } -/******/ }); -/******/ } -/******/ } -/******/ -/******/ function trackBlockingPromise(promise) { -/******/ switch (currentStatus) { -/******/ case "ready": -/******/ setStatus("prepare"); -/******/ /* fallthrough */ -/******/ case "prepare": -/******/ blockingPromises++; -/******/ promise.then(unblock, unblock); -/******/ return promise; -/******/ default: -/******/ return promise; -/******/ } -/******/ } -/******/ -/******/ function waitForBlockingPromises(fn) { -/******/ if (blockingPromises === 0) return fn(); -/******/ return new Promise(function (resolve) { -/******/ blockingPromisesWaiting.push(function () { -/******/ resolve(fn()); -/******/ }); -/******/ }); -/******/ } -/******/ -/******/ function hotCheck(applyOnUpdate) { -/******/ if (currentStatus !== "idle") { -/******/ throw new Error("check() is only allowed in idle status"); -/******/ } -/******/ return setStatus("check") -/******/ .then(__webpack_require__.hmrM) -/******/ .then(function (update) { -/******/ if (!update) { -/******/ return setStatus(applyInvalidatedModules() ? "ready" : "idle").then( -/******/ function () { -/******/ return null; -/******/ } -/******/ ); -/******/ } -/******/ -/******/ return setStatus("prepare").then(function () { -/******/ var updatedModules = []; -/******/ currentUpdateApplyHandlers = []; -/******/ -/******/ return Promise.all( -/******/ Object.keys(__webpack_require__.hmrC).reduce(function ( -/******/ promises, -/******/ key -/******/ ) { -/******/ __webpack_require__.hmrC[key]( -/******/ update.c, -/******/ update.r, -/******/ update.m, -/******/ promises, -/******/ currentUpdateApplyHandlers, -/******/ updatedModules -/******/ ); -/******/ return promises; -/******/ }, []) -/******/ ).then(function () { -/******/ return waitForBlockingPromises(function () { -/******/ if (applyOnUpdate) { -/******/ return internalApply(applyOnUpdate); -/******/ } -/******/ return setStatus("ready").then(function () { -/******/ return updatedModules; -/******/ }); -/******/ }); -/******/ }); -/******/ }); -/******/ }); -/******/ } -/******/ -/******/ function hotApply(options) { -/******/ if (currentStatus !== "ready") { -/******/ return Promise.resolve().then(function () { -/******/ throw new Error( -/******/ "apply() is only allowed in ready status (state: " + -/******/ currentStatus + -/******/ ")" -/******/ ); -/******/ }); -/******/ } -/******/ return internalApply(options); -/******/ } -/******/ -/******/ function internalApply(options) { -/******/ options = options || {}; -/******/ -/******/ applyInvalidatedModules(); -/******/ -/******/ var results = currentUpdateApplyHandlers.map(function (handler) { -/******/ return handler(options); -/******/ }); -/******/ currentUpdateApplyHandlers = undefined; -/******/ -/******/ var errors = results -/******/ .map(function (r) { -/******/ return r.error; -/******/ }) -/******/ .filter(Boolean); -/******/ -/******/ if (errors.length > 0) { -/******/ return setStatus("abort").then(function () { -/******/ throw errors[0]; -/******/ }); -/******/ } -/******/ -/******/ // Now in "dispose" phase -/******/ var disposePromise = setStatus("dispose"); -/******/ -/******/ results.forEach(function (result) { -/******/ if (result.dispose) result.dispose(); -/******/ }); -/******/ -/******/ // Now in "apply" phase -/******/ var applyPromise = setStatus("apply"); -/******/ -/******/ var error; -/******/ var reportError = function (err) { -/******/ if (!error) error = err; -/******/ }; -/******/ -/******/ var outdatedModules = []; -/******/ results.forEach(function (result) { -/******/ if (result.apply) { -/******/ var modules = result.apply(reportError); -/******/ if (modules) { -/******/ for (var i = 0; i < modules.length; i++) { -/******/ outdatedModules.push(modules[i]); -/******/ } -/******/ } -/******/ } -/******/ }); -/******/ -/******/ return Promise.all([disposePromise, applyPromise]).then(function () { -/******/ // handle errors in accept handlers and self accepted module load -/******/ if (error) { -/******/ return setStatus("fail").then(function () { -/******/ throw error; -/******/ }); -/******/ } -/******/ -/******/ if (queuedInvalidatedModules) { -/******/ return internalApply(options).then(function (list) { -/******/ outdatedModules.forEach(function (moduleId) { -/******/ if (list.indexOf(moduleId) < 0) list.push(moduleId); -/******/ }); -/******/ return list; -/******/ }); -/******/ } -/******/ -/******/ return setStatus("idle").then(function () { -/******/ return outdatedModules; -/******/ }); -/******/ }); -/******/ } -/******/ -/******/ function applyInvalidatedModules() { -/******/ if (queuedInvalidatedModules) { -/******/ if (!currentUpdateApplyHandlers) currentUpdateApplyHandlers = []; -/******/ Object.keys(__webpack_require__.hmrI).forEach(function (key) { -/******/ queuedInvalidatedModules.forEach(function (moduleId) { -/******/ __webpack_require__.hmrI[key]( -/******/ moduleId, -/******/ currentUpdateApplyHandlers -/******/ ); -/******/ }); -/******/ }); -/******/ queuedInvalidatedModules = undefined; -/******/ return true; -/******/ } -/******/ } -/******/ })(); -/******/ -/******/ /* webpack/runtime/publicPath */ -/******/ (() => { -/******/ __webpack_require__.p = "/_next/"; -/******/ })(); -/******/ -/******/ /* webpack/runtime/react refresh */ -/******/ (() => { -/******/ if (__webpack_require__.i) { -/******/ __webpack_require__.i.push((options) => { -/******/ const originalFactory = options.factory; -/******/ options.factory = (moduleObject, moduleExports, webpackRequire) => { -/******/ const hasRefresh = typeof self !== "undefined" && !!self.$RefreshInterceptModuleExecution$; -/******/ const cleanup = hasRefresh ? self.$RefreshInterceptModuleExecution$(moduleObject.id) : () => {}; -/******/ try { -/******/ originalFactory.call(this, moduleObject, moduleExports, webpackRequire); -/******/ } finally { -/******/ cleanup(); -/******/ } -/******/ } -/******/ }) -/******/ } -/******/ })(); -/******/ -/******/ /* webpack/runtime/compat */ -/******/ -/******/ -/******/ // noop fns to prevent runtime errors during initialization -/******/ if (typeof self !== "undefined") { -/******/ self.$RefreshReg$ = function () {}; -/******/ self.$RefreshSig$ = function () { -/******/ return function (type) { -/******/ return type; -/******/ }; -/******/ }; -/******/ } -/******/ -/******/ /* webpack/runtime/jsonp chunk loading */ -/******/ (() => { -/******/ // no baseURI -/******/ -/******/ // object to store loaded and loading chunks -/******/ // undefined = chunk not loaded, null = chunk preloaded/prefetched -/******/ // [resolve, reject, Promise] = chunk loading, 0 = chunk loaded -/******/ var installedChunks = __webpack_require__.hmrS_jsonp = __webpack_require__.hmrS_jsonp || { -/******/ "webpack": 0 -/******/ }; -/******/ -/******/ __webpack_require__.f.j = (chunkId, promises) => { -/******/ // JSONP chunk loading for javascript -/******/ var installedChunkData = __webpack_require__.o(installedChunks, chunkId) ? installedChunks[chunkId] : undefined; -/******/ if(installedChunkData !== 0) { // 0 means "already installed". -/******/ -/******/ // a Promise means "currently loading". -/******/ if(installedChunkData) { -/******/ promises.push(installedChunkData[2]); -/******/ } else { -/******/ if("webpack" != chunkId) { -/******/ // setup Promise in chunk cache -/******/ var promise = new Promise((resolve, reject) => (installedChunkData = installedChunks[chunkId] = [resolve, reject])); -/******/ promises.push(installedChunkData[2] = promise); -/******/ -/******/ // start chunk loading -/******/ var url = __webpack_require__.p + __webpack_require__.u(chunkId); -/******/ // create error before stack unwound to get useful stacktrace later -/******/ var error = new Error(); -/******/ var loadingEnded = (event) => { -/******/ if(__webpack_require__.o(installedChunks, chunkId)) { -/******/ installedChunkData = installedChunks[chunkId]; -/******/ if(installedChunkData !== 0) installedChunks[chunkId] = undefined; -/******/ if(installedChunkData) { -/******/ var errorType = event && (event.type === 'load' ? 'missing' : event.type); -/******/ var realSrc = event && event.target && event.target.src; -/******/ error.message = 'Loading chunk ' + chunkId + ' failed.\n(' + errorType + ': ' + realSrc + ')'; -/******/ error.name = 'ChunkLoadError'; -/******/ error.type = errorType; -/******/ error.request = realSrc; -/******/ installedChunkData[1](error); -/******/ } -/******/ } -/******/ }; -/******/ __webpack_require__.l(url, loadingEnded, "chunk-" + chunkId, chunkId); -/******/ } else installedChunks[chunkId] = 0; -/******/ } -/******/ } -/******/ }; -/******/ -/******/ // no prefetching -/******/ -/******/ // no preloaded -/******/ -/******/ var currentUpdatedModulesList; -/******/ var waitingUpdateResolves = {}; -/******/ function loadUpdateChunk(chunkId, updatedModulesList) { -/******/ currentUpdatedModulesList = updatedModulesList; -/******/ return new Promise((resolve, reject) => { -/******/ waitingUpdateResolves[chunkId] = resolve; -/******/ // start update chunk loading -/******/ var url = __webpack_require__.p + __webpack_require__.hu(chunkId); -/******/ // create error before stack unwound to get useful stacktrace later -/******/ var error = new Error(); -/******/ var loadingEnded = (event) => { -/******/ if(waitingUpdateResolves[chunkId]) { -/******/ waitingUpdateResolves[chunkId] = undefined -/******/ var errorType = event && (event.type === 'load' ? 'missing' : event.type); -/******/ var realSrc = event && event.target && event.target.src; -/******/ error.message = 'Loading hot update chunk ' + chunkId + ' failed.\n(' + errorType + ': ' + realSrc + ')'; -/******/ error.name = 'ChunkLoadError'; -/******/ error.type = errorType; -/******/ error.request = realSrc; -/******/ reject(error); -/******/ } -/******/ }; -/******/ __webpack_require__.l(url, loadingEnded); -/******/ }); -/******/ } -/******/ -/******/ self["webpackHotUpdate_N_E"] = (chunkId, moreModules, runtime) => { -/******/ for(var moduleId in moreModules) { -/******/ if(__webpack_require__.o(moreModules, moduleId)) { -/******/ currentUpdate[moduleId] = moreModules[moduleId]; -/******/ if(currentUpdatedModulesList) currentUpdatedModulesList.push(moduleId); -/******/ } -/******/ } -/******/ if(runtime) currentUpdateRuntime.push(runtime); -/******/ if(waitingUpdateResolves[chunkId]) { -/******/ waitingUpdateResolves[chunkId](); -/******/ waitingUpdateResolves[chunkId] = undefined; -/******/ } -/******/ }; -/******/ -/******/ var currentUpdateChunks; -/******/ var currentUpdate; -/******/ var currentUpdateRemovedChunks; -/******/ var currentUpdateRuntime; -/******/ function applyHandler(options) { -/******/ if (__webpack_require__.f) delete __webpack_require__.f.jsonpHmr; -/******/ currentUpdateChunks = undefined; -/******/ function getAffectedModuleEffects(updateModuleId) { -/******/ var outdatedModules = [updateModuleId]; -/******/ var outdatedDependencies = {}; -/******/ -/******/ var queue = outdatedModules.map(function (id) { -/******/ return { -/******/ chain: [id], -/******/ id: id -/******/ }; -/******/ }); -/******/ while (queue.length > 0) { -/******/ var queueItem = queue.pop(); -/******/ var moduleId = queueItem.id; -/******/ var chain = queueItem.chain; -/******/ var module = __webpack_require__.c[moduleId]; -/******/ if ( -/******/ !module || -/******/ (module.hot._selfAccepted && !module.hot._selfInvalidated) -/******/ ) -/******/ continue; -/******/ if (module.hot._selfDeclined) { -/******/ return { -/******/ type: "self-declined", -/******/ chain: chain, -/******/ moduleId: moduleId -/******/ }; -/******/ } -/******/ if (module.hot._main) { -/******/ return { -/******/ type: "unaccepted", -/******/ chain: chain, -/******/ moduleId: moduleId -/******/ }; -/******/ } -/******/ for (var i = 0; i < module.parents.length; i++) { -/******/ var parentId = module.parents[i]; -/******/ var parent = __webpack_require__.c[parentId]; -/******/ if (!parent) continue; -/******/ if (parent.hot._declinedDependencies[moduleId]) { -/******/ return { -/******/ type: "declined", -/******/ chain: chain.concat([parentId]), -/******/ moduleId: moduleId, -/******/ parentId: parentId -/******/ }; -/******/ } -/******/ if (outdatedModules.indexOf(parentId) !== -1) continue; -/******/ if (parent.hot._acceptedDependencies[moduleId]) { -/******/ if (!outdatedDependencies[parentId]) -/******/ outdatedDependencies[parentId] = []; -/******/ addAllToSet(outdatedDependencies[parentId], [moduleId]); -/******/ continue; -/******/ } -/******/ delete outdatedDependencies[parentId]; -/******/ outdatedModules.push(parentId); -/******/ queue.push({ -/******/ chain: chain.concat([parentId]), -/******/ id: parentId -/******/ }); -/******/ } -/******/ } -/******/ -/******/ return { -/******/ type: "accepted", -/******/ moduleId: updateModuleId, -/******/ outdatedModules: outdatedModules, -/******/ outdatedDependencies: outdatedDependencies -/******/ }; -/******/ } -/******/ -/******/ function addAllToSet(a, b) { -/******/ for (var i = 0; i < b.length; i++) { -/******/ var item = b[i]; -/******/ if (a.indexOf(item) === -1) a.push(item); -/******/ } -/******/ } -/******/ -/******/ // at begin all updates modules are outdated -/******/ // the "outdated" status can propagate to parents if they don't accept the children -/******/ var outdatedDependencies = {}; -/******/ var outdatedModules = []; -/******/ var appliedUpdate = {}; -/******/ -/******/ var warnUnexpectedRequire = function warnUnexpectedRequire(module) { -/******/ console.warn( -/******/ "[HMR] unexpected require(" + module.id + ") to disposed module" -/******/ ); -/******/ }; -/******/ -/******/ for (var moduleId in currentUpdate) { -/******/ if (__webpack_require__.o(currentUpdate, moduleId)) { -/******/ var newModuleFactory = currentUpdate[moduleId]; -/******/ /** @type {TODO} */ -/******/ var result = newModuleFactory -/******/ ? getAffectedModuleEffects(moduleId) -/******/ : { -/******/ type: "disposed", -/******/ moduleId: moduleId -/******/ }; -/******/ /** @type {Error|false} */ -/******/ var abortError = false; -/******/ var doApply = false; -/******/ var doDispose = false; -/******/ var chainInfo = ""; -/******/ if (result.chain) { -/******/ chainInfo = "\nUpdate propagation: " + result.chain.join(" -> "); -/******/ } -/******/ switch (result.type) { -/******/ case "self-declined": -/******/ if (options.onDeclined) options.onDeclined(result); -/******/ if (!options.ignoreDeclined) -/******/ abortError = new Error( -/******/ "Aborted because of self decline: " + -/******/ result.moduleId + -/******/ chainInfo -/******/ ); -/******/ break; -/******/ case "declined": -/******/ if (options.onDeclined) options.onDeclined(result); -/******/ if (!options.ignoreDeclined) -/******/ abortError = new Error( -/******/ "Aborted because of declined dependency: " + -/******/ result.moduleId + -/******/ " in " + -/******/ result.parentId + -/******/ chainInfo -/******/ ); -/******/ break; -/******/ case "unaccepted": -/******/ if (options.onUnaccepted) options.onUnaccepted(result); -/******/ if (!options.ignoreUnaccepted) -/******/ abortError = new Error( -/******/ "Aborted because " + moduleId + " is not accepted" + chainInfo -/******/ ); -/******/ break; -/******/ case "accepted": -/******/ if (options.onAccepted) options.onAccepted(result); -/******/ doApply = true; -/******/ break; -/******/ case "disposed": -/******/ if (options.onDisposed) options.onDisposed(result); -/******/ doDispose = true; -/******/ break; -/******/ default: -/******/ throw new Error("Unexception type " + result.type); -/******/ } -/******/ if (abortError) { -/******/ return { -/******/ error: abortError -/******/ }; -/******/ } -/******/ if (doApply) { -/******/ appliedUpdate[moduleId] = newModuleFactory; -/******/ addAllToSet(outdatedModules, result.outdatedModules); -/******/ for (moduleId in result.outdatedDependencies) { -/******/ if (__webpack_require__.o(result.outdatedDependencies, moduleId)) { -/******/ if (!outdatedDependencies[moduleId]) -/******/ outdatedDependencies[moduleId] = []; -/******/ addAllToSet( -/******/ outdatedDependencies[moduleId], -/******/ result.outdatedDependencies[moduleId] -/******/ ); -/******/ } -/******/ } -/******/ } -/******/ if (doDispose) { -/******/ addAllToSet(outdatedModules, [result.moduleId]); -/******/ appliedUpdate[moduleId] = warnUnexpectedRequire; -/******/ } -/******/ } -/******/ } -/******/ currentUpdate = undefined; -/******/ -/******/ // Store self accepted outdated modules to require them later by the module system -/******/ var outdatedSelfAcceptedModules = []; -/******/ for (var j = 0; j < outdatedModules.length; j++) { -/******/ var outdatedModuleId = outdatedModules[j]; -/******/ var module = __webpack_require__.c[outdatedModuleId]; -/******/ if ( -/******/ module && -/******/ (module.hot._selfAccepted || module.hot._main) && -/******/ // removed self-accepted modules should not be required -/******/ appliedUpdate[outdatedModuleId] !== warnUnexpectedRequire && -/******/ // when called invalidate self-accepting is not possible -/******/ !module.hot._selfInvalidated -/******/ ) { -/******/ outdatedSelfAcceptedModules.push({ -/******/ module: outdatedModuleId, -/******/ require: module.hot._requireSelf, -/******/ errorHandler: module.hot._selfAccepted -/******/ }); -/******/ } -/******/ } -/******/ -/******/ var moduleOutdatedDependencies; -/******/ -/******/ return { -/******/ dispose: function () { -/******/ currentUpdateRemovedChunks.forEach(function (chunkId) { -/******/ delete installedChunks[chunkId]; -/******/ }); -/******/ currentUpdateRemovedChunks = undefined; -/******/ -/******/ var idx; -/******/ var queue = outdatedModules.slice(); -/******/ while (queue.length > 0) { -/******/ var moduleId = queue.pop(); -/******/ var module = __webpack_require__.c[moduleId]; -/******/ if (!module) continue; -/******/ -/******/ var data = {}; -/******/ -/******/ // Call dispose handlers -/******/ var disposeHandlers = module.hot._disposeHandlers; -/******/ for (j = 0; j < disposeHandlers.length; j++) { -/******/ disposeHandlers[j].call(null, data); -/******/ } -/******/ __webpack_require__.hmrD[moduleId] = data; -/******/ -/******/ // disable module (this disables requires from this module) -/******/ module.hot.active = false; -/******/ -/******/ // remove module from cache -/******/ delete __webpack_require__.c[moduleId]; -/******/ -/******/ // when disposing there is no need to call dispose handler -/******/ delete outdatedDependencies[moduleId]; -/******/ -/******/ // remove "parents" references from all children -/******/ for (j = 0; j < module.children.length; j++) { -/******/ var child = __webpack_require__.c[module.children[j]]; -/******/ if (!child) continue; -/******/ idx = child.parents.indexOf(moduleId); -/******/ if (idx >= 0) { -/******/ child.parents.splice(idx, 1); -/******/ } -/******/ } -/******/ } -/******/ -/******/ // remove outdated dependency from module children -/******/ var dependency; -/******/ for (var outdatedModuleId in outdatedDependencies) { -/******/ if (__webpack_require__.o(outdatedDependencies, outdatedModuleId)) { -/******/ module = __webpack_require__.c[outdatedModuleId]; -/******/ if (module) { -/******/ moduleOutdatedDependencies = -/******/ outdatedDependencies[outdatedModuleId]; -/******/ for (j = 0; j < moduleOutdatedDependencies.length; j++) { -/******/ dependency = moduleOutdatedDependencies[j]; -/******/ idx = module.children.indexOf(dependency); -/******/ if (idx >= 0) module.children.splice(idx, 1); -/******/ } -/******/ } -/******/ } -/******/ } -/******/ }, -/******/ apply: function (reportError) { -/******/ // insert new code -/******/ for (var updateModuleId in appliedUpdate) { -/******/ if (__webpack_require__.o(appliedUpdate, updateModuleId)) { -/******/ __webpack_require__.m[updateModuleId] = appliedUpdate[updateModuleId]; -/******/ } -/******/ } -/******/ -/******/ // run new runtime modules -/******/ for (var i = 0; i < currentUpdateRuntime.length; i++) { -/******/ currentUpdateRuntime[i](__webpack_require__); -/******/ } -/******/ -/******/ // call accept handlers -/******/ for (var outdatedModuleId in outdatedDependencies) { -/******/ if (__webpack_require__.o(outdatedDependencies, outdatedModuleId)) { -/******/ var module = __webpack_require__.c[outdatedModuleId]; -/******/ if (module) { -/******/ moduleOutdatedDependencies = -/******/ outdatedDependencies[outdatedModuleId]; -/******/ var callbacks = []; -/******/ var errorHandlers = []; -/******/ var dependenciesForCallbacks = []; -/******/ for (var j = 0; j < moduleOutdatedDependencies.length; j++) { -/******/ var dependency = moduleOutdatedDependencies[j]; -/******/ var acceptCallback = -/******/ module.hot._acceptedDependencies[dependency]; -/******/ var errorHandler = -/******/ module.hot._acceptedErrorHandlers[dependency]; -/******/ if (acceptCallback) { -/******/ if (callbacks.indexOf(acceptCallback) !== -1) continue; -/******/ callbacks.push(acceptCallback); -/******/ errorHandlers.push(errorHandler); -/******/ dependenciesForCallbacks.push(dependency); -/******/ } -/******/ } -/******/ for (var k = 0; k < callbacks.length; k++) { -/******/ try { -/******/ callbacks[k].call(null, moduleOutdatedDependencies); -/******/ } catch (err) { -/******/ if (typeof errorHandlers[k] === "function") { -/******/ try { -/******/ errorHandlers[k](err, { -/******/ moduleId: outdatedModuleId, -/******/ dependencyId: dependenciesForCallbacks[k] -/******/ }); -/******/ } catch (err2) { -/******/ if (options.onErrored) { -/******/ options.onErrored({ -/******/ type: "accept-error-handler-errored", -/******/ moduleId: outdatedModuleId, -/******/ dependencyId: dependenciesForCallbacks[k], -/******/ error: err2, -/******/ originalError: err -/******/ }); -/******/ } -/******/ if (!options.ignoreErrored) { -/******/ reportError(err2); -/******/ reportError(err); -/******/ } -/******/ } -/******/ } else { -/******/ if (options.onErrored) { -/******/ options.onErrored({ -/******/ type: "accept-errored", -/******/ moduleId: outdatedModuleId, -/******/ dependencyId: dependenciesForCallbacks[k], -/******/ error: err -/******/ }); -/******/ } -/******/ if (!options.ignoreErrored) { -/******/ reportError(err); -/******/ } -/******/ } -/******/ } -/******/ } -/******/ } -/******/ } -/******/ } -/******/ -/******/ // Load self accepted modules -/******/ for (var o = 0; o < outdatedSelfAcceptedModules.length; o++) { -/******/ var item = outdatedSelfAcceptedModules[o]; -/******/ var moduleId = item.module; -/******/ try { -/******/ item.require(moduleId); -/******/ } catch (err) { -/******/ if (typeof item.errorHandler === "function") { -/******/ try { -/******/ item.errorHandler(err, { -/******/ moduleId: moduleId, -/******/ module: __webpack_require__.c[moduleId] -/******/ }); -/******/ } catch (err1) { -/******/ if (options.onErrored) { -/******/ options.onErrored({ -/******/ type: "self-accept-error-handler-errored", -/******/ moduleId: moduleId, -/******/ error: err1, -/******/ originalError: err -/******/ }); -/******/ } -/******/ if (!options.ignoreErrored) { -/******/ reportError(err1); -/******/ reportError(err); -/******/ } -/******/ } -/******/ } else { -/******/ if (options.onErrored) { -/******/ options.onErrored({ -/******/ type: "self-accept-errored", -/******/ moduleId: moduleId, -/******/ error: err -/******/ }); -/******/ } -/******/ if (!options.ignoreErrored) { -/******/ reportError(err); -/******/ } -/******/ } -/******/ } -/******/ } -/******/ -/******/ return outdatedModules; -/******/ } -/******/ }; -/******/ } -/******/ __webpack_require__.hmrI.jsonp = function (moduleId, applyHandlers) { -/******/ if (!currentUpdate) { -/******/ currentUpdate = {}; -/******/ currentUpdateRuntime = []; -/******/ currentUpdateRemovedChunks = []; -/******/ applyHandlers.push(applyHandler); -/******/ } -/******/ if (!__webpack_require__.o(currentUpdate, moduleId)) { -/******/ currentUpdate[moduleId] = __webpack_require__.m[moduleId]; -/******/ } -/******/ }; -/******/ __webpack_require__.hmrC.jsonp = function ( -/******/ chunkIds, -/******/ removedChunks, -/******/ removedModules, -/******/ promises, -/******/ applyHandlers, -/******/ updatedModulesList -/******/ ) { -/******/ applyHandlers.push(applyHandler); -/******/ currentUpdateChunks = {}; -/******/ currentUpdateRemovedChunks = removedChunks; -/******/ currentUpdate = removedModules.reduce(function (obj, key) { -/******/ obj[key] = false; -/******/ return obj; -/******/ }, {}); -/******/ currentUpdateRuntime = []; -/******/ chunkIds.forEach(function (chunkId) { -/******/ if ( -/******/ __webpack_require__.o(installedChunks, chunkId) && -/******/ installedChunks[chunkId] !== undefined -/******/ ) { -/******/ promises.push(loadUpdateChunk(chunkId, updatedModulesList)); -/******/ currentUpdateChunks[chunkId] = true; -/******/ } else { -/******/ currentUpdateChunks[chunkId] = false; -/******/ } -/******/ }); -/******/ if (__webpack_require__.f) { -/******/ __webpack_require__.f.jsonpHmr = function (chunkId, promises) { -/******/ if ( -/******/ currentUpdateChunks && -/******/ __webpack_require__.o(currentUpdateChunks, chunkId) && -/******/ !currentUpdateChunks[chunkId] -/******/ ) { -/******/ promises.push(loadUpdateChunk(chunkId)); -/******/ currentUpdateChunks[chunkId] = true; -/******/ } -/******/ }; -/******/ } -/******/ }; -/******/ -/******/ __webpack_require__.hmrM = () => { -/******/ if (typeof fetch === "undefined") throw new Error("No browser support: need fetch API"); -/******/ return fetch(__webpack_require__.p + __webpack_require__.hmrF()).then((response) => { -/******/ if(response.status === 404) return; // no update available -/******/ if(!response.ok) throw new Error("Failed to fetch update manifest " + response.statusText); -/******/ return response.json(); -/******/ }); -/******/ }; -/******/ -/******/ __webpack_require__.O.j = (chunkId) => (installedChunks[chunkId] === 0); -/******/ -/******/ // install a JSONP callback for chunk loading -/******/ var webpackJsonpCallback = (parentChunkLoadingFunction, data) => { -/******/ var [chunkIds, moreModules, runtime] = data; -/******/ // add "moreModules" to the modules object, -/******/ // then flag all "chunkIds" as loaded and fire callback -/******/ var moduleId, chunkId, i = 0; -/******/ if(chunkIds.some((id) => (installedChunks[id] !== 0))) { -/******/ for(moduleId in moreModules) { -/******/ if(__webpack_require__.o(moreModules, moduleId)) { -/******/ __webpack_require__.m[moduleId] = moreModules[moduleId]; -/******/ } -/******/ } -/******/ if(runtime) var result = runtime(__webpack_require__); -/******/ } -/******/ if(parentChunkLoadingFunction) parentChunkLoadingFunction(data); -/******/ for(;i < chunkIds.length; i++) { -/******/ chunkId = chunkIds[i]; -/******/ if(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) { -/******/ installedChunks[chunkId][0](); -/******/ } -/******/ installedChunks[chunkId] = 0; -/******/ } -/******/ return __webpack_require__.O(result); -/******/ } -/******/ -/******/ var chunkLoadingGlobal = self["webpackChunk_N_E"] = self["webpackChunk_N_E"] || []; -/******/ chunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0)); -/******/ chunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal)); -/******/ })(); -/******/ -/******/ /* webpack/runtime/nonce */ -/******/ (() => { -/******/ __webpack_require__.nc = undefined; -/******/ })(); -/******/ -/************************************************************************/ -/******/ -/******/ // module cache are used so entry inlining is disabled -/******/ -/******/ })() - -//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJpZ25vcmVMaXN0IjpbMF0sIm1hcHBpbmdzIjoiQUFBQSIsInNvdXJjZXMiOlsid2VicGFjay1pbnRlcm5hbDovL25leHRqcy93ZWJwYWNrLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIi8vIFRoaXMgc291cmNlIHdhcyBnZW5lcmF0ZWQgYnkgTmV4dC5qcyBiYXNlZCBvZmYgb2YgdGhlIGdlbmVyYXRlZCBXZWJwYWNrIHJ1bnRpbWUuXG4vLyBUaGUgbWFwcGluZ3MgYXJlIGluY29ycmVjdC5cbi8vIFRvIGdldCB0aGUgY29ycmVjdCBsaW5lL2NvbHVtbiBtYXBwaW5ncywgdHVybiBvZmYgc291cmNlbWFwcyBpbiB5b3VyIGRlYnVnZ2VyLlxuXG4vKioqKioqLyAoKCkgPT4geyAvLyB3ZWJwYWNrQm9vdHN0cmFwXG4vKioqKioqLyBcdFwidXNlIHN0cmljdFwiO1xuLyoqKioqKi8gXHR2YXIgX193ZWJwYWNrX21vZHVsZXNfXyA9ICh7fSk7XG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyoqKioqKi8gXHQvLyBUaGUgbW9kdWxlIGNhY2hlXG4vKioqKioqLyBcdHZhciBfX3dlYnBhY2tfbW9kdWxlX2NhY2hlX18gPSB7fTtcbi8qKioqKiovIFx0XG4vKioqKioqLyBcdC8vIFRoZSByZXF1aXJlIGZ1bmN0aW9uXG4vKioqKioqLyBcdGZ1bmN0aW9uIF9fd2VicGFja19yZXF1aXJlX18obW9kdWxlSWQpIHtcbi8qKioqKiovIFx0XHQvLyBDaGVjayBpZiBtb2R1bGUgaXMgaW4gY2FjaGVcbi8qKioqKiovIFx0XHR2YXIgY2FjaGVkTW9kdWxlID0gX193ZWJwYWNrX21vZHVsZV9jYWNoZV9fW21vZHVsZUlkXTtcbi8qKioqKiovIFx0XHRpZiAoY2FjaGVkTW9kdWxlICE9PSB1bmRlZmluZWQpIHtcbi8qKioqKiovIFx0XHRcdGlmIChjYWNoZWRNb2R1bGUuZXJyb3IgIT09IHVuZGVmaW5lZCkgdGhyb3cgY2FjaGVkTW9kdWxlLmVycm9yO1xuLyoqKioqKi8gXHRcdFx0cmV0dXJuIGNhY2hlZE1vZHVsZS5leHBvcnRzO1xuLyoqKioqKi8gXHRcdH1cbi8qKioqKiovIFx0XHQvLyBDcmVhdGUgYSBuZXcgbW9kdWxlIChhbmQgcHV0IGl0IGludG8gdGhlIGNhY2hlKVxuLyoqKioqKi8gXHRcdHZhciBtb2R1bGUgPSBfX3dlYnBhY2tfbW9kdWxlX2NhY2hlX19bbW9kdWxlSWRdID0ge1xuLyoqKioqKi8gXHRcdFx0aWQ6IG1vZHVsZUlkLFxuLyoqKioqKi8gXHRcdFx0bG9hZGVkOiBmYWxzZSxcbi8qKioqKiovIFx0XHRcdGV4cG9ydHM6IHt9XG4vKioqKioqLyBcdFx0fTtcbi8qKioqKiovIFx0XG4vKioqKioqLyBcdFx0Ly8gRXhlY3V0ZSB0aGUgbW9kdWxlIGZ1bmN0aW9uXG4vKioqKioqLyBcdFx0dmFyIHRocmV3ID0gdHJ1ZTtcbi8qKioqKiovIFx0XHR0cnkge1xuLyoqKioqKi8gXHRcdFx0dmFyIGV4ZWNPcHRpb25zID0geyBpZDogbW9kdWxlSWQsIG1vZHVsZTogbW9kdWxlLCBmYWN0b3J5OiBfX3dlYnBhY2tfbW9kdWxlc19fW21vZHVsZUlkXSwgcmVxdWlyZTogX193ZWJwYWNrX3JlcXVpcmVfXyB9O1xuLyoqKioqKi8gXHRcdFx0X193ZWJwYWNrX3JlcXVpcmVfXy5pLmZvckVhY2goZnVuY3Rpb24oaGFuZGxlcikgeyBoYW5kbGVyKGV4ZWNPcHRpb25zKTsgfSk7XG4vKioqKioqLyBcdFx0XHRtb2R1bGUgPSBleGVjT3B0aW9ucy5tb2R1bGU7XG4vKioqKioqLyBcdFx0XHRleGVjT3B0aW9ucy5mYWN0b3J5LmNhbGwobW9kdWxlLmV4cG9ydHMsIG1vZHVsZSwgbW9kdWxlLmV4cG9ydHMsIGV4ZWNPcHRpb25zLnJlcXVpcmUpO1xuLyoqKioqKi8gXHRcdFx0dGhyZXcgPSBmYWxzZTtcbi8qKioqKiovIFx0XHR9IGZpbmFsbHkge1xuLyoqKioqKi8gXHRcdFx0aWYodGhyZXcpIGRlbGV0ZSBfX3dlYnBhY2tfbW9kdWxlX2NhY2hlX19bbW9kdWxlSWRdO1xuLyoqKioqKi8gXHRcdH1cbi8qKioqKiovIFx0XG4vKioqKioqLyBcdFx0Ly8gRmxhZyB0aGUgbW9kdWxlIGFzIGxvYWRlZFxuLyoqKioqKi8gXHRcdG1vZHVsZS5sb2FkZWQgPSB0cnVlO1xuLyoqKioqKi8gXHRcbi8qKioqKiovIFx0XHQvLyBSZXR1cm4gdGhlIGV4cG9ydHMgb2YgdGhlIG1vZHVsZVxuLyoqKioqKi8gXHRcdHJldHVybiBtb2R1bGUuZXhwb3J0cztcbi8qKioqKiovIFx0fVxuLyoqKioqKi8gXHRcbi8qKioqKiovIFx0Ly8gZXhwb3NlIHRoZSBtb2R1bGVzIG9iamVjdCAoX193ZWJwYWNrX21vZHVsZXNfXylcbi8qKioqKiovIFx0X193ZWJwYWNrX3JlcXVpcmVfXy5tID0gX193ZWJwYWNrX21vZHVsZXNfXztcbi8qKioqKiovIFx0XG4vKioqKioqLyBcdC8vIGV4cG9zZSB0aGUgbW9kdWxlIGNhY2hlXG4vKioqKioqLyBcdF9fd2VicGFja19yZXF1aXJlX18uYyA9IF9fd2VicGFja19tb2R1bGVfY2FjaGVfXztcbi8qKioqKiovIFx0XG4vKioqKioqLyBcdC8vIGV4cG9zZSB0aGUgbW9kdWxlIGV4ZWN1dGlvbiBpbnRlcmNlcHRvclxuLyoqKioqKi8gXHRfX3dlYnBhY2tfcmVxdWlyZV9fLmkgPSBbXTtcbi8qKioqKiovIFx0XG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyoqKioqKi8gXHQvKiB3ZWJwYWNrL3J1bnRpbWUvY2h1bmsgbG9hZGVkICovXG4vKioqKioqLyBcdCgoKSA9PiB7XG4vKioqKioqLyBcdFx0dmFyIGRlZmVycmVkID0gW107XG4vKioqKioqLyBcdFx0X193ZWJwYWNrX3JlcXVpcmVfXy5PID0gKHJlc3VsdCwgY2h1bmtJZHMsIGZuLCBwcmlvcml0eSkgPT4ge1xuLyoqKioqKi8gXHRcdFx0aWYoY2h1bmtJZHMpIHtcbi8qKioqKiovIFx0XHRcdFx0cHJpb3JpdHkgPSBwcmlvcml0eSB8fCAwO1xuLyoqKioqKi8gXHRcdFx0XHRmb3IodmFyIGkgPSBkZWZlcnJlZC5sZW5ndGg7IGkgPiAwICYmIGRlZmVycmVkW2kgLSAxXVsyXSA+IHByaW9yaXR5OyBpLS0pIGRlZmVycmVkW2ldID0gZGVmZXJyZWRbaSAtIDFdO1xuLyoqKioqKi8gXHRcdFx0XHRkZWZlcnJlZFtpXSA9IFtjaHVua0lkcywgZm4sIHByaW9yaXR5XTtcbi8qKioqKiovIFx0XHRcdFx0cmV0dXJuO1xuLyoqKioqKi8gXHRcdFx0fVxuLyoqKioqKi8gXHRcdFx0dmFyIG5vdEZ1bGZpbGxlZCA9IEluZmluaXR5O1xuLyoqKioqKi8gXHRcdFx0Zm9yICh2YXIgaSA9IDA7IGkgPCBkZWZlcnJlZC5sZW5ndGg7IGkrKykge1xuLyoqKioqKi8gXHRcdFx0XHR2YXIgW2NodW5rSWRzLCBmbiwgcHJpb3JpdHldID0gZGVmZXJyZWRbaV07XG4vKioqKioqLyBcdFx0XHRcdHZhciBmdWxmaWxsZWQgPSB0cnVlO1xuLyoqKioqKi8gXHRcdFx0XHRmb3IgKHZhciBqID0gMDsgaiA8IGNodW5rSWRzLmxlbmd0aDsgaisrKSB7XG4vKioqKioqLyBcdFx0XHRcdFx0aWYgKChwcmlvcml0eSAmIDEgPT09IDAgfHwgbm90RnVsZmlsbGVkID49IHByaW9yaXR5KSAmJiBPYmplY3Qua2V5cyhfX3dlYnBhY2tfcmVxdWlyZV9fLk8pLmV2ZXJ5KChrZXkpID0+IChfX3dlYnBhY2tfcmVxdWlyZV9fLk9ba2V5XShjaHVua0lkc1tqXSkpKSkge1xuLyoqKioqKi8gXHRcdFx0XHRcdFx0Y2h1bmtJZHMuc3BsaWNlKGotLSwgMSk7XG4vKioqKioqLyBcdFx0XHRcdFx0fSBlbHNlIHtcbi8qKioqKiovIFx0XHRcdFx0XHRcdGZ1bGZpbGxlZCA9IGZhbHNlO1xuLyoqKioqKi8gXHRcdFx0XHRcdFx0aWYocHJpb3JpdHkgPCBub3RGdWxmaWxsZWQpIG5vdEZ1bGZpbGxlZCA9IHByaW9yaXR5O1xuLyoqKioqKi8gXHRcdFx0XHRcdH1cbi8qKioqKiovIFx0XHRcdFx0fVxuLyoqKioqKi8gXHRcdFx0XHRpZihmdWxmaWxsZWQpIHtcbi8qKioqKiovIFx0XHRcdFx0XHRkZWZlcnJlZC5zcGxpY2UoaS0tLCAxKVxuLyoqKioqKi8gXHRcdFx0XHRcdHZhciByID0gZm4oKTtcbi8qKioqKiovIFx0XHRcdFx0XHRpZiAociAhPT0gdW5kZWZpbmVkKSByZXN1bHQgPSByO1xuLyoqKioqKi8gXHRcdFx0XHR9XG4vKioqKioqLyBcdFx0XHR9XG4vKioqKioqLyBcdFx0XHRyZXR1cm4gcmVzdWx0O1xuLyoqKioqKi8gXHRcdH07XG4vKioqKioqLyBcdH0pKCk7XG4vKioqKioqLyBcdFxuLyoqKioqKi8gXHQvKiB3ZWJwYWNrL3J1bnRpbWUvY29tcGF0IGdldCBkZWZhdWx0IGV4cG9ydCAqL1xuLyoqKioqKi8gXHQoKCkgPT4ge1xuLyoqKioqKi8gXHRcdC8vIGdldERlZmF1bHRFeHBvcnQgZnVuY3Rpb24gZm9yIGNvbXBhdGliaWxpdHkgd2l0aCBub24taGFybW9ueSBtb2R1bGVzXG4vKioqKioqLyBcdFx0X193ZWJwYWNrX3JlcXVpcmVfXy5uID0gKG1vZHVsZSkgPT4ge1xuLyoqKioqKi8gXHRcdFx0dmFyIGdldHRlciA9IG1vZHVsZSAmJiBtb2R1bGUuX19lc01vZHVsZSA/XG4vKioqKioqLyBcdFx0XHRcdCgpID0+IChtb2R1bGVbJ2RlZmF1bHQnXSkgOlxuLyoqKioqKi8gXHRcdFx0XHQoKSA9PiAobW9kdWxlKTtcbi8qKioqKiovIFx0XHRcdF9fd2VicGFja19yZXF1aXJlX18uZChnZXR0ZXIsIHsgYTogZ2V0dGVyIH0pO1xuLyoqKioqKi8gXHRcdFx0cmV0dXJuIGdldHRlcjtcbi8qKioqKiovIFx0XHR9O1xuLyoqKioqKi8gXHR9KSgpO1xuLyoqKioqKi8gXHRcbi8qKioqKiovIFx0Lyogd2VicGFjay9ydW50aW1lL2NyZWF0ZSBmYWtlIG5hbWVzcGFjZSBvYmplY3QgKi9cbi8qKioqKiovIFx0KCgpID0+IHtcbi8qKioqKiovIFx0XHR2YXIgZ2V0UHJvdG8gPSBPYmplY3QuZ2V0UHJvdG90eXBlT2YgPyAob2JqKSA9PiAoT2JqZWN0LmdldFByb3RvdHlwZU9mKG9iaikpIDogKG9iaikgPT4gKG9iai5fX3Byb3RvX18pO1xuLyoqKioqKi8gXHRcdHZhciBsZWFmUHJvdG90eXBlcztcbi8qKioqKiovIFx0XHQvLyBjcmVhdGUgYSBmYWtlIG5hbWVzcGFjZSBvYmplY3Rcbi8qKioqKiovIFx0XHQvLyBtb2RlICYgMTogdmFsdWUgaXMgYSBtb2R1bGUgaWQsIHJlcXVpcmUgaXRcbi8qKioqKiovIFx0XHQvLyBtb2RlICYgMjogbWVyZ2UgYWxsIHByb3BlcnRpZXMgb2YgdmFsdWUgaW50byB0aGUgbnNcbi8qKioqKiovIFx0XHQvLyBtb2RlICYgNDogcmV0dXJuIHZhbHVlIHdoZW4gYWxyZWFkeSBucyBvYmplY3Rcbi8qKioqKiovIFx0XHQvLyBtb2RlICYgMTY6IHJldHVybiB2YWx1ZSB3aGVuIGl0J3MgUHJvbWlzZS1saWtlXG4vKioqKioqLyBcdFx0Ly8gbW9kZSAmIDh8MTogYmVoYXZlIGxpa2UgcmVxdWlyZVxuLyoqKioqKi8gXHRcdF9fd2VicGFja19yZXF1aXJlX18udCA9IGZ1bmN0aW9uKHZhbHVlLCBtb2RlKSB7XG4vKioqKioqLyBcdFx0XHRpZihtb2RlICYgMSkgdmFsdWUgPSB0aGlzKHZhbHVlKTtcbi8qKioqKiovIFx0XHRcdGlmKG1vZGUgJiA4KSByZXR1cm4gdmFsdWU7XG4vKioqKioqLyBcdFx0XHRpZih0eXBlb2YgdmFsdWUgPT09ICdvYmplY3QnICYmIHZhbHVlKSB7XG4vKioqKioqLyBcdFx0XHRcdGlmKChtb2RlICYgNCkgJiYgdmFsdWUuX19lc01vZHVsZSkgcmV0dXJuIHZhbHVlO1xuLyoqKioqKi8gXHRcdFx0XHRpZigobW9kZSAmIDE2KSAmJiB0eXBlb2YgdmFsdWUudGhlbiA9PT0gJ2Z1bmN0aW9uJykgcmV0dXJuIHZhbHVlO1xuLyoqKioqKi8gXHRcdFx0fVxuLyoqKioqKi8gXHRcdFx0dmFyIG5zID0gT2JqZWN0LmNyZWF0ZShudWxsKTtcbi8qKioqKiovIFx0XHRcdF9fd2VicGFja19yZXF1aXJlX18ucihucyk7XG4vKioqKioqLyBcdFx0XHR2YXIgZGVmID0ge307XG4vKioqKioqLyBcdFx0XHRsZWFmUHJvdG90eXBlcyA9IGxlYWZQcm90b3R5cGVzIHx8IFtudWxsLCBnZXRQcm90byh7fSksIGdldFByb3RvKFtdKSwgZ2V0UHJvdG8oZ2V0UHJvdG8pXTtcbi8qKioqKiovIFx0XHRcdGZvcih2YXIgY3VycmVudCA9IG1vZGUgJiAyICYmIHZhbHVlOyB0eXBlb2YgY3VycmVudCA9PSAnb2JqZWN0JyAmJiAhfmxlYWZQcm90b3R5cGVzLmluZGV4T2YoY3VycmVudCk7IGN1cnJlbnQgPSBnZXRQcm90byhjdXJyZW50KSkge1xuLyoqKioqKi8gXHRcdFx0XHRPYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcyhjdXJyZW50KS5mb3JFYWNoKChrZXkpID0+IChkZWZba2V5XSA9ICgpID0+ICh2YWx1ZVtrZXldKSkpO1xuLyoqKioqKi8gXHRcdFx0fVxuLyoqKioqKi8gXHRcdFx0ZGVmWydkZWZhdWx0J10gPSAoKSA9PiAodmFsdWUpO1xuLyoqKioqKi8gXHRcdFx0X193ZWJwYWNrX3JlcXVpcmVfXy5kKG5zLCBkZWYpO1xuLyoqKioqKi8gXHRcdFx0cmV0dXJuIG5zO1xuLyoqKioqKi8gXHRcdH07XG4vKioqKioqLyBcdH0pKCk7XG4vKioqKioqLyBcdFxuLyoqKioqKi8gXHQvKiB3ZWJwYWNrL3J1bnRpbWUvZGVmaW5lIHByb3BlcnR5IGdldHRlcnMgKi9cbi8qKioqKiovIFx0KCgpID0+IHtcbi8qKioqKiovIFx0XHQvLyBkZWZpbmUgZ2V0dGVyIGZ1bmN0aW9ucyBmb3IgaGFybW9ueSBleHBvcnRzXG4vKioqKioqLyBcdFx0X193ZWJwYWNrX3JlcXVpcmVfXy5kID0gKGV4cG9ydHMsIGRlZmluaXRpb24pID0+IHtcbi8qKioqKiovIFx0XHRcdGZvcih2YXIga2V5IGluIGRlZmluaXRpb24pIHtcbi8qKioqKiovIFx0XHRcdFx0aWYoX193ZWJwYWNrX3JlcXVpcmVfXy5vKGRlZmluaXRpb24sIGtleSkgJiYgIV9fd2VicGFja19yZXF1aXJlX18ubyhleHBvcnRzLCBrZXkpKSB7XG4vKioqKioqLyBcdFx0XHRcdFx0T2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIGtleSwgeyBlbnVtZXJhYmxlOiB0cnVlLCBnZXQ6IGRlZmluaXRpb25ba2V5XSB9KTtcbi8qKioqKiovIFx0XHRcdFx0fVxuLyoqKioqKi8gXHRcdFx0fVxuLyoqKioqKi8gXHRcdH07XG4vKioqKioqLyBcdH0pKCk7XG4vKioqKioqLyBcdFxuLyoqKioqKi8gXHQvKiB3ZWJwYWNrL3J1bnRpbWUvZW5zdXJlIGNodW5rICovXG4vKioqKioqLyBcdCgoKSA9PiB7XG4vKioqKioqLyBcdFx0X193ZWJwYWNrX3JlcXVpcmVfXy5mID0ge307XG4vKioqKioqLyBcdFx0Ly8gVGhpcyBmaWxlIGNvbnRhaW5zIG9ubHkgdGhlIGVudHJ5IGNodW5rLlxuLyoqKioqKi8gXHRcdC8vIFRoZSBjaHVuayBsb2FkaW5nIGZ1bmN0aW9uIGZvciBhZGRpdGlvbmFsIGNodW5rc1xuLyoqKioqKi8gXHRcdF9fd2VicGFja19yZXF1aXJlX18uZSA9IChjaHVua0lkKSA9PiB7XG4vKioqKioqLyBcdFx0XHRyZXR1cm4gUHJvbWlzZS5hbGwoT2JqZWN0LmtleXMoX193ZWJwYWNrX3JlcXVpcmVfXy5mKS5yZWR1Y2UoKHByb21pc2VzLCBrZXkpID0+IHtcbi8qKioqKiovIFx0XHRcdFx0X193ZWJwYWNrX3JlcXVpcmVfXy5mW2tleV0oY2h1bmtJZCwgcHJvbWlzZXMpO1xuLyoqKioqKi8gXHRcdFx0XHRyZXR1cm4gcHJvbWlzZXM7XG4vKioqKioqLyBcdFx0XHR9LCBbXSkpO1xuLyoqKioqKi8gXHRcdH07XG4vKioqKioqLyBcdH0pKCk7XG4vKioqKioqLyBcdFxuLyoqKioqKi8gXHQvKiB3ZWJwYWNrL3J1bnRpbWUvZ2V0IGphdmFzY3JpcHQgY2h1bmsgZmlsZW5hbWUgKi9cbi8qKioqKiovIFx0KCgpID0+IHtcbi8qKioqKiovIFx0XHQvLyBUaGlzIGZ1bmN0aW9uIGFsbG93IHRvIHJlZmVyZW5jZSBhc3luYyBjaHVua3Ncbi8qKioqKiovIFx0XHRfX3dlYnBhY2tfcmVxdWlyZV9fLnUgPSAoY2h1bmtJZCkgPT4ge1xuLyoqKioqKi8gXHRcdFx0Ly8gcmV0dXJuIHVybCBmb3IgZmlsZW5hbWVzIGJhc2VkIG9uIHRlbXBsYXRlXG4vKioqKioqLyBcdFx0XHRyZXR1cm4gXCJzdGF0aWMvY2h1bmtzL1wiICsgY2h1bmtJZCArIFwiLmpzXCI7XG4vKioqKioqLyBcdFx0fTtcbi8qKioqKiovIFx0fSkoKTtcbi8qKioqKiovIFx0XG4vKioqKioqLyBcdC8qIHdlYnBhY2svcnVudGltZS9nZXQgamF2YXNjcmlwdCB1cGRhdGUgY2h1bmsgZmlsZW5hbWUgKi9cbi8qKioqKiovIFx0KCgpID0+IHtcbi8qKioqKiovIFx0XHQvLyBUaGlzIGZ1bmN0aW9uIGFsbG93IHRvIHJlZmVyZW5jZSBhbGwgY2h1bmtzXG4vKioqKioqLyBcdFx0X193ZWJwYWNrX3JlcXVpcmVfXy5odSA9IChjaHVua0lkKSA9PiB7XG4vKioqKioqLyBcdFx0XHQvLyByZXR1cm4gdXJsIGZvciBmaWxlbmFtZXMgYmFzZWQgb24gdGVtcGxhdGVcbi8qKioqKiovIFx0XHRcdHJldHVybiBcInN0YXRpYy93ZWJwYWNrL1wiICsgY2h1bmtJZCArIFwiLlwiICsgX193ZWJwYWNrX3JlcXVpcmVfXy5oKCkgKyBcIi5ob3QtdXBkYXRlLmpzXCI7XG4vKioqKioqLyBcdFx0fTtcbi8qKioqKiovIFx0fSkoKTtcbi8qKioqKiovIFx0XG4vKioqKioqLyBcdC8qIHdlYnBhY2svcnVudGltZS9nZXQgdXBkYXRlIG1hbmlmZXN0IGZpbGVuYW1lICovXG4vKioqKioqLyBcdCgoKSA9PiB7XG4vKioqKioqLyBcdFx0X193ZWJwYWNrX3JlcXVpcmVfXy5obXJGID0gKCkgPT4gKFwic3RhdGljL3dlYnBhY2svXCIgKyBfX3dlYnBhY2tfcmVxdWlyZV9fLmgoKSArIFwiLndlYnBhY2suaG90LXVwZGF0ZS5qc29uXCIpO1xuLyoqKioqKi8gXHR9KSgpO1xuLyoqKioqKi8gXHRcbi8qKioqKiovIFx0Lyogd2VicGFjay9ydW50aW1lL2dldEZ1bGxIYXNoICovXG4vKioqKioqLyBcdCgoKSA9PiB7XG4vKioqKioqLyBcdFx0X193ZWJwYWNrX3JlcXVpcmVfXy5oID0gKCkgPT4gKFwiNzZiZWFiNTkyNGJmNzMyOVwiKVxuLyoqKioqKi8gXHR9KSgpO1xuLyoqKioqKi8gXHRcbi8qKioqKiovIFx0Lyogd2VicGFjay9ydW50aW1lL2hhc093blByb3BlcnR5IHNob3J0aGFuZCAqL1xuLyoqKioqKi8gXHQoKCkgPT4ge1xuLyoqKioqKi8gXHRcdF9fd2VicGFja19yZXF1aXJlX18ubyA9IChvYmosIHByb3ApID0+IChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwob2JqLCBwcm9wKSlcbi8qKioqKiovIFx0fSkoKTtcbi8qKioqKiovIFx0XG4vKioqKioqLyBcdC8qIHdlYnBhY2svcnVudGltZS9sb2FkIHNjcmlwdCAqL1xuLyoqKioqKi8gXHQoKCkgPT4ge1xuLyoqKioqKi8gXHRcdHZhciBpblByb2dyZXNzID0ge307XG4vKioqKioqLyBcdFx0dmFyIGRhdGFXZWJwYWNrUHJlZml4ID0gXCJfTl9FOlwiO1xuLyoqKioqKi8gXHRcdC8vIGxvYWRTY3JpcHQgZnVuY3Rpb24gdG8gbG9hZCBhIHNjcmlwdCB2aWEgc2NyaXB0IHRhZ1xuLyoqKioqKi8gXHRcdF9fd2VicGFja19yZXF1aXJlX18ubCA9ICh1cmwsIGRvbmUsIGtleSwgY2h1bmtJZCkgPT4ge1xuLyoqKioqKi8gXHRcdFx0aWYoaW5Qcm9ncmVzc1t1cmxdKSB7IGluUHJvZ3Jlc3NbdXJsXS5wdXNoKGRvbmUpOyByZXR1cm47IH1cbi8qKioqKiovIFx0XHRcdHZhciBzY3JpcHQsIG5lZWRBdHRhY2g7XG4vKioqKioqLyBcdFx0XHRpZihrZXkgIT09IHVuZGVmaW5lZCkge1xuLyoqKioqKi8gXHRcdFx0XHR2YXIgc2NyaXB0cyA9IGRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKFwic2NyaXB0XCIpO1xuLyoqKioqKi8gXHRcdFx0XHRmb3IodmFyIGkgPSAwOyBpIDwgc2NyaXB0cy5sZW5ndGg7IGkrKykge1xuLyoqKioqKi8gXHRcdFx0XHRcdHZhciBzID0gc2NyaXB0c1tpXTtcbi8qKioqKiovIFx0XHRcdFx0XHRpZihzLmdldEF0dHJpYnV0ZShcInNyY1wiKSA9PSB1cmwgfHwgcy5nZXRBdHRyaWJ1dGUoXCJkYXRhLXdlYnBhY2tcIikgPT0gZGF0YVdlYnBhY2tQcmVmaXggKyBrZXkpIHsgc2NyaXB0ID0gczsgYnJlYWs7IH1cbi8qKioqKiovIFx0XHRcdFx0fVxuLyoqKioqKi8gXHRcdFx0fVxuLyoqKioqKi8gXHRcdFx0aWYoIXNjcmlwdCkge1xuLyoqKioqKi8gXHRcdFx0XHRuZWVkQXR0YWNoID0gdHJ1ZTtcbi8qKioqKiovIFx0XHRcdFx0c2NyaXB0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc2NyaXB0Jyk7XG4vKioqKioqLyBcdFx0XG4vKioqKioqLyBcdFx0XHRcdHNjcmlwdC5jaGFyc2V0ID0gJ3V0Zi04Jztcbi8qKioqKiovIFx0XHRcdFx0c2NyaXB0LnRpbWVvdXQgPSAxMjA7XG4vKioqKioqLyBcdFx0XHRcdGlmIChfX3dlYnBhY2tfcmVxdWlyZV9fLm5jKSB7XG4vKioqKioqLyBcdFx0XHRcdFx0c2NyaXB0LnNldEF0dHJpYnV0ZShcIm5vbmNlXCIsIF9fd2VicGFja19yZXF1aXJlX18ubmMpO1xuLyoqKioqKi8gXHRcdFx0XHR9XG4vKioqKioqLyBcdFx0XHRcdHNjcmlwdC5zZXRBdHRyaWJ1dGUoXCJkYXRhLXdlYnBhY2tcIiwgZGF0YVdlYnBhY2tQcmVmaXggKyBrZXkpO1xuLyoqKioqKi8gXHRcdFxuLyoqKioqKi8gXHRcdFx0XHRzY3JpcHQuc3JjID0gX193ZWJwYWNrX3JlcXVpcmVfXy50dSh1cmwpO1xuLyoqKioqKi8gXHRcdFx0fVxuLyoqKioqKi8gXHRcdFx0aW5Qcm9ncmVzc1t1cmxdID0gW2RvbmVdO1xuLyoqKioqKi8gXHRcdFx0dmFyIG9uU2NyaXB0Q29tcGxldGUgPSAocHJldiwgZXZlbnQpID0+IHtcbi8qKioqKiovIFx0XHRcdFx0Ly8gYXZvaWQgbWVtIGxlYWtzIGluIElFLlxuLyoqKioqKi8gXHRcdFx0XHRzY3JpcHQub25lcnJvciA9IHNjcmlwdC5vbmxvYWQgPSBudWxsO1xuLyoqKioqKi8gXHRcdFx0XHRjbGVhclRpbWVvdXQodGltZW91dCk7XG4vKioqKioqLyBcdFx0XHRcdHZhciBkb25lRm5zID0gaW5Qcm9ncmVzc1t1cmxdO1xuLyoqKioqKi8gXHRcdFx0XHRkZWxldGUgaW5Qcm9ncmVzc1t1cmxdO1xuLyoqKioqKi8gXHRcdFx0XHRzY3JpcHQucGFyZW50Tm9kZSAmJiBzY3JpcHQucGFyZW50Tm9kZS5yZW1vdmVDaGlsZChzY3JpcHQpO1xuLyoqKioqKi8gXHRcdFx0XHRkb25lRm5zICYmIGRvbmVGbnMuZm9yRWFjaCgoZm4pID0+IChmbihldmVudCkpKTtcbi8qKioqKiovIFx0XHRcdFx0aWYocHJldikgcmV0dXJuIHByZXYoZXZlbnQpO1xuLyoqKioqKi8gXHRcdFx0fVxuLyoqKioqKi8gXHRcdFx0dmFyIHRpbWVvdXQgPSBzZXRUaW1lb3V0KG9uU2NyaXB0Q29tcGxldGUuYmluZChudWxsLCB1bmRlZmluZWQsIHsgdHlwZTogJ3RpbWVvdXQnLCB0YXJnZXQ6IHNjcmlwdCB9KSwgMTIwMDAwKTtcbi8qKioqKiovIFx0XHRcdHNjcmlwdC5vbmVycm9yID0gb25TY3JpcHRDb21wbGV0ZS5iaW5kKG51bGwsIHNjcmlwdC5vbmVycm9yKTtcbi8qKioqKiovIFx0XHRcdHNjcmlwdC5vbmxvYWQgPSBvblNjcmlwdENvbXBsZXRlLmJpbmQobnVsbCwgc2NyaXB0Lm9ubG9hZCk7XG4vKioqKioqLyBcdFx0XHRuZWVkQXR0YWNoICYmIGRvY3VtZW50LmhlYWQuYXBwZW5kQ2hpbGQoc2NyaXB0KTtcbi8qKioqKiovIFx0XHR9O1xuLyoqKioqKi8gXHR9KSgpO1xuLyoqKioqKi8gXHRcbi8qKioqKiovIFx0Lyogd2VicGFjay9ydW50aW1lL21ha2UgbmFtZXNwYWNlIG9iamVjdCAqL1xuLyoqKioqKi8gXHQoKCkgPT4ge1xuLyoqKioqKi8gXHRcdC8vIGRlZmluZSBfX2VzTW9kdWxlIG9uIGV4cG9ydHNcbi8qKioqKiovIFx0XHRfX3dlYnBhY2tfcmVxdWlyZV9fLnIgPSAoZXhwb3J0cykgPT4ge1xuLyoqKioqKi8gXHRcdFx0aWYodHlwZW9mIFN5bWJvbCAhPT0gJ3VuZGVmaW5lZCcgJiYgU3ltYm9sLnRvU3RyaW5nVGFnKSB7XG4vKioqKioqLyBcdFx0XHRcdE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBTeW1ib2wudG9TdHJpbmdUYWcsIHsgdmFsdWU6ICdNb2R1bGUnIH0pO1xuLyoqKioqKi8gXHRcdFx0fVxuLyoqKioqKi8gXHRcdFx0T2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsICdfX2VzTW9kdWxlJywgeyB2YWx1ZTogdHJ1ZSB9KTtcbi8qKioqKiovIFx0XHR9O1xuLyoqKioqKi8gXHR9KSgpO1xuLyoqKioqKi8gXHRcbi8qKioqKiovIFx0Lyogd2VicGFjay9ydW50aW1lL25vZGUgbW9kdWxlIGRlY29yYXRvciAqL1xuLyoqKioqKi8gXHQoKCkgPT4ge1xuLyoqKioqKi8gXHRcdF9fd2VicGFja19yZXF1aXJlX18ubm1kID0gKG1vZHVsZSkgPT4ge1xuLyoqKioqKi8gXHRcdFx0bW9kdWxlLnBhdGhzID0gW107XG4vKioqKioqLyBcdFx0XHRpZiAoIW1vZHVsZS5jaGlsZHJlbikgbW9kdWxlLmNoaWxkcmVuID0gW107XG4vKioqKioqLyBcdFx0XHRyZXR1cm4gbW9kdWxlO1xuLyoqKioqKi8gXHRcdH07XG4vKioqKioqLyBcdH0pKCk7XG4vKioqKioqLyBcdFxuLyoqKioqKi8gXHQvKiB3ZWJwYWNrL3J1bnRpbWUvdHJ1c3RlZCB0eXBlcyBwb2xpY3kgKi9cbi8qKioqKiovIFx0KCgpID0+IHtcbi8qKioqKiovIFx0XHR2YXIgcG9saWN5O1xuLyoqKioqKi8gXHRcdF9fd2VicGFja19yZXF1aXJlX18udHQgPSAoKSA9PiB7XG4vKioqKioqLyBcdFx0XHQvLyBDcmVhdGUgVHJ1c3RlZCBUeXBlIHBvbGljeSBpZiBUcnVzdGVkIFR5cGVzIGFyZSBhdmFpbGFibGUgYW5kIHRoZSBwb2xpY3kgZG9lc24ndCBleGlzdCB5ZXQuXG4vKioqKioqLyBcdFx0XHRpZiAocG9saWN5ID09PSB1bmRlZmluZWQpIHtcbi8qKioqKiovIFx0XHRcdFx0cG9saWN5ID0ge1xuLyoqKioqKi8gXHRcdFx0XHRcdGNyZWF0ZVNjcmlwdDogKHNjcmlwdCkgPT4gKHNjcmlwdCksXG4vKioqKioqLyBcdFx0XHRcdFx0Y3JlYXRlU2NyaXB0VVJMOiAodXJsKSA9PiAodXJsKVxuLyoqKioqKi8gXHRcdFx0XHR9O1xuLyoqKioqKi8gXHRcdFx0XHRpZiAodHlwZW9mIHRydXN0ZWRUeXBlcyAhPT0gXCJ1bmRlZmluZWRcIiAmJiB0cnVzdGVkVHlwZXMuY3JlYXRlUG9saWN5KSB7XG4vKioqKioqLyBcdFx0XHRcdFx0cG9saWN5ID0gdHJ1c3RlZFR5cGVzLmNyZWF0ZVBvbGljeShcIm5leHRqcyNidW5kbGVyXCIsIHBvbGljeSk7XG4vKioqKioqLyBcdFx0XHRcdH1cbi8qKioqKiovIFx0XHRcdH1cbi8qKioqKiovIFx0XHRcdHJldHVybiBwb2xpY3k7XG4vKioqKioqLyBcdFx0fTtcbi8qKioqKiovIFx0fSkoKTtcbi8qKioqKiovIFx0XG4vKioqKioqLyBcdC8qIHdlYnBhY2svcnVudGltZS90cnVzdGVkIHR5cGVzIHNjcmlwdCAqL1xuLyoqKioqKi8gXHQoKCkgPT4ge1xuLyoqKioqKi8gXHRcdF9fd2VicGFja19yZXF1aXJlX18udHMgPSAoc2NyaXB0KSA9PiAoX193ZWJwYWNrX3JlcXVpcmVfXy50dCgpLmNyZWF0ZVNjcmlwdChzY3JpcHQpKTtcbi8qKioqKiovIFx0fSkoKTtcbi8qKioqKiovIFx0XG4vKioqKioqLyBcdC8qIHdlYnBhY2svcnVudGltZS90cnVzdGVkIHR5cGVzIHNjcmlwdCB1cmwgKi9cbi8qKioqKiovIFx0KCgpID0+IHtcbi8qKioqKiovIFx0XHRfX3dlYnBhY2tfcmVxdWlyZV9fLnR1ID0gKHVybCkgPT4gKF9fd2VicGFja19yZXF1aXJlX18udHQoKS5jcmVhdGVTY3JpcHRVUkwodXJsKSk7XG4vKioqKioqLyBcdH0pKCk7XG4vKioqKioqLyBcdFxuLyoqKioqKi8gXHQvKiB3ZWJwYWNrL3J1bnRpbWUvaG90IG1vZHVsZSByZXBsYWNlbWVudCAqL1xuLyoqKioqKi8gXHQoKCkgPT4ge1xuLyoqKioqKi8gXHRcdHZhciBjdXJyZW50TW9kdWxlRGF0YSA9IHt9O1xuLyoqKioqKi8gXHRcdHZhciBpbnN0YWxsZWRNb2R1bGVzID0gX193ZWJwYWNrX3JlcXVpcmVfXy5jO1xuLyoqKioqKi8gXHRcdFxuLyoqKioqKi8gXHRcdC8vIG1vZHVsZSBhbmQgcmVxdWlyZSBjcmVhdGlvblxuLyoqKioqKi8gXHRcdHZhciBjdXJyZW50Q2hpbGRNb2R1bGU7XG4vKioqKioqLyBcdFx0dmFyIGN1cnJlbnRQYXJlbnRzID0gW107XG4vKioqKioqLyBcdFx0XG4vKioqKioqLyBcdFx0Ly8gc3RhdHVzXG4vKioqKioqLyBcdFx0dmFyIHJlZ2lzdGVyZWRTdGF0dXNIYW5kbGVycyA9IFtdO1xuLyoqKioqKi8gXHRcdHZhciBjdXJyZW50U3RhdHVzID0gXCJpZGxlXCI7XG4vKioqKioqLyBcdFx0XG4vKioqKioqLyBcdFx0Ly8gd2hpbGUgZG93bmxvYWRpbmdcbi8qKioqKiovIFx0XHR2YXIgYmxvY2tpbmdQcm9taXNlcyA9IDA7XG4vKioqKioqLyBcdFx0dmFyIGJsb2NraW5nUHJvbWlzZXNXYWl0aW5nID0gW107XG4vKioqKioqLyBcdFx0XG4vKioqKioqLyBcdFx0Ly8gVGhlIHVwZGF0ZSBpbmZvXG4vKioqKioqLyBcdFx0dmFyIGN1cnJlbnRVcGRhdGVBcHBseUhhbmRsZXJzO1xuLyoqKioqKi8gXHRcdHZhciBxdWV1ZWRJbnZhbGlkYXRlZE1vZHVsZXM7XG4vKioqKioqLyBcdFx0XG4vKioqKioqLyBcdFx0X193ZWJwYWNrX3JlcXVpcmVfXy5obXJEID0gY3VycmVudE1vZHVsZURhdGE7XG4vKioqKioqLyBcdFx0XG4vKioqKioqLyBcdFx0X193ZWJwYWNrX3JlcXVpcmVfXy5pLnB1c2goZnVuY3Rpb24gKG9wdGlvbnMpIHtcbi8qKioqKiovIFx0XHRcdHZhciBtb2R1bGUgPSBvcHRpb25zLm1vZHVsZTtcbi8qKioqKiovIFx0XHRcdHZhciByZXF1aXJlID0gY3JlYXRlUmVxdWlyZShvcHRpb25zLnJlcXVpcmUsIG9wdGlvbnMuaWQpO1xuLyoqKioqKi8gXHRcdFx0bW9kdWxlLmhvdCA9IGNyZWF0ZU1vZHVsZUhvdE9iamVjdChvcHRpb25zLmlkLCBtb2R1bGUpO1xuLyoqKioqKi8gXHRcdFx0bW9kdWxlLnBhcmVudHMgPSBjdXJyZW50UGFyZW50cztcbi8qKioqKiovIFx0XHRcdG1vZHVsZS5jaGlsZHJlbiA9IFtdO1xuLyoqKioqKi8gXHRcdFx0Y3VycmVudFBhcmVudHMgPSBbXTtcbi8qKioqKiovIFx0XHRcdG9wdGlvbnMucmVxdWlyZSA9IHJlcXVpcmU7XG4vKioqKioqLyBcdFx0fSk7XG4vKioqKioqLyBcdFx0XG4vKioqKioqLyBcdFx0X193ZWJwYWNrX3JlcXVpcmVfXy5obXJDID0ge307XG4vKioqKioqLyBcdFx0X193ZWJwYWNrX3JlcXVpcmVfXy5obXJJID0ge307XG4vKioqKioqLyBcdFx0XG4vKioqKioqLyBcdFx0ZnVuY3Rpb24gY3JlYXRlUmVxdWlyZShyZXF1aXJlLCBtb2R1bGVJZCkge1xuLyoqKioqKi8gXHRcdFx0dmFyIG1lID0gaW5zdGFsbGVkTW9kdWxlc1ttb2R1bGVJZF07XG4vKioqKioqLyBcdFx0XHRpZiAoIW1lKSByZXR1cm4gcmVxdWlyZTtcbi8qKioqKiovIFx0XHRcdHZhciBmbiA9IGZ1bmN0aW9uIChyZXF1ZXN0KSB7XG4vKioqKioqLyBcdFx0XHRcdGlmIChtZS5ob3QuYWN0aXZlKSB7XG4vKioqKioqLyBcdFx0XHRcdFx0aWYgKGluc3RhbGxlZE1vZHVsZXNbcmVxdWVzdF0pIHtcbi8qKioqKiovIFx0XHRcdFx0XHRcdHZhciBwYXJlbnRzID0gaW5zdGFsbGVkTW9kdWxlc1tyZXF1ZXN0XS5wYXJlbnRzO1xuLyoqKioqKi8gXHRcdFx0XHRcdFx0aWYgKHBhcmVudHMuaW5kZXhPZihtb2R1bGVJZCkgPT09IC0xKSB7XG4vKioqKioqLyBcdFx0XHRcdFx0XHRcdHBhcmVudHMucHVzaChtb2R1bGVJZCk7XG4vKioqKioqLyBcdFx0XHRcdFx0XHR9XG4vKioqKioqLyBcdFx0XHRcdFx0fSBlbHNlIHtcbi8qKioqKiovIFx0XHRcdFx0XHRcdGN1cnJlbnRQYXJlbnRzID0gW21vZHVsZUlkXTtcbi8qKioqKiovIFx0XHRcdFx0XHRcdGN1cnJlbnRDaGlsZE1vZHVsZSA9IHJlcXVlc3Q7XG4vKioqKioqLyBcdFx0XHRcdFx0fVxuLyoqKioqKi8gXHRcdFx0XHRcdGlmIChtZS5jaGlsZHJlbi5pbmRleE9mKHJlcXVlc3QpID09PSAtMSkge1xuLyoqKioqKi8gXHRcdFx0XHRcdFx0bWUuY2hpbGRyZW4ucHVzaChyZXF1ZXN0KTtcbi8qKioqKiovIFx0XHRcdFx0XHR9XG4vKioqKioqLyBcdFx0XHRcdH0gZWxzZSB7XG4vKioqKioqLyBcdFx0XHRcdFx0Y29uc29sZS53YXJuKFxuLyoqKioqKi8gXHRcdFx0XHRcdFx0XCJbSE1SXSB1bmV4cGVjdGVkIHJlcXVpcmUoXCIgK1xuLyoqKioqKi8gXHRcdFx0XHRcdFx0XHRyZXF1ZXN0ICtcbi8qKioqKiovIFx0XHRcdFx0XHRcdFx0XCIpIGZyb20gZGlzcG9zZWQgbW9kdWxlIFwiICtcbi8qKioqKiovIFx0XHRcdFx0XHRcdFx0bW9kdWxlSWRcbi8qKioqKiovIFx0XHRcdFx0XHQpO1xuLyoqKioqKi8gXHRcdFx0XHRcdGN1cnJlbnRQYXJlbnRzID0gW107XG4vKioqKioqLyBcdFx0XHRcdH1cbi8qKioqKiovIFx0XHRcdFx0cmV0dXJuIHJlcXVpcmUocmVxdWVzdCk7XG4vKioqKioqLyBcdFx0XHR9O1xuLyoqKioqKi8gXHRcdFx0dmFyIGNyZWF0ZVByb3BlcnR5RGVzY3JpcHRvciA9IGZ1bmN0aW9uIChuYW1lKSB7XG4vKioqKioqLyBcdFx0XHRcdHJldHVybiB7XG4vKioqKioqLyBcdFx0XHRcdFx0Y29uZmlndXJhYmxlOiB0cnVlLFxuLyoqKioqKi8gXHRcdFx0XHRcdGVudW1lcmFibGU6IHRydWUsXG4vKioqKioqLyBcdFx0XHRcdFx0Z2V0OiBmdW5jdGlvbiAoKSB7XG4vKioqKioqLyBcdFx0XHRcdFx0XHRyZXR1cm4gcmVxdWlyZVtuYW1lXTtcbi8qKioqKiovIFx0XHRcdFx0XHR9LFxuLyoqKioqKi8gXHRcdFx0XHRcdHNldDogZnVuY3Rpb24gKHZhbHVlKSB7XG4vKioqKioqLyBcdFx0XHRcdFx0XHRyZXF1aXJlW25hbWVdID0gdmFsdWU7XG4vKioqKioqLyBcdFx0XHRcdFx0fVxuLyoqKioqKi8gXHRcdFx0XHR9O1xuLyoqKioqKi8gXHRcdFx0fTtcbi8qKioqKiovIFx0XHRcdGZvciAodmFyIG5hbWUgaW4gcmVxdWlyZSkge1xuLyoqKioqKi8gXHRcdFx0XHRpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHJlcXVpcmUsIG5hbWUpICYmIG5hbWUgIT09IFwiZVwiKSB7XG4vKioqKioqLyBcdFx0XHRcdFx0T2JqZWN0LmRlZmluZVByb3BlcnR5KGZuLCBuYW1lLCBjcmVhdGVQcm9wZXJ0eURlc2NyaXB0b3IobmFtZSkpO1xuLyoqKioqKi8gXHRcdFx0XHR9XG4vKioqKioqLyBcdFx0XHR9XG4vKioqKioqLyBcdFx0XHRmbi5lID0gZnVuY3Rpb24gKGNodW5rSWQsIGZldGNoUHJpb3JpdHkpIHtcbi8qKioqKiovIFx0XHRcdFx0cmV0dXJuIHRyYWNrQmxvY2tpbmdQcm9taXNlKHJlcXVpcmUuZShjaHVua0lkLCBmZXRjaFByaW9yaXR5KSk7XG4vKioqKioqLyBcdFx0XHR9O1xuLyoqKioqKi8gXHRcdFx0cmV0dXJuIGZuO1xuLyoqKioqKi8gXHRcdH1cbi8qKioqKiovIFx0XHRcbi8qKioqKiovIFx0XHRmdW5jdGlvbiBjcmVhdGVNb2R1bGVIb3RPYmplY3QobW9kdWxlSWQsIG1lKSB7XG4vKioqKioqLyBcdFx0XHR2YXIgX21haW4gPSBjdXJyZW50Q2hpbGRNb2R1bGUgIT09IG1vZHVsZUlkO1xuLyoqKioqKi8gXHRcdFx0dmFyIGhvdCA9IHtcbi8qKioqKiovIFx0XHRcdFx0Ly8gcHJpdmF0ZSBzdHVmZlxuLyoqKioqKi8gXHRcdFx0XHRfYWNjZXB0ZWREZXBlbmRlbmNpZXM6IHt9LFxuLyoqKioqKi8gXHRcdFx0XHRfYWNjZXB0ZWRFcnJvckhhbmRsZXJzOiB7fSxcbi8qKioqKiovIFx0XHRcdFx0X2RlY2xpbmVkRGVwZW5kZW5jaWVzOiB7fSxcbi8qKioqKiovIFx0XHRcdFx0X3NlbGZBY2NlcHRlZDogZmFsc2UsXG4vKioqKioqLyBcdFx0XHRcdF9zZWxmRGVjbGluZWQ6IGZhbHNlLFxuLyoqKioqKi8gXHRcdFx0XHRfc2VsZkludmFsaWRhdGVkOiBmYWxzZSxcbi8qKioqKiovIFx0XHRcdFx0X2Rpc3Bvc2VIYW5kbGVyczogW10sXG4vKioqKioqLyBcdFx0XHRcdF9tYWluOiBfbWFpbixcbi8qKioqKiovIFx0XHRcdFx0X3JlcXVpcmVTZWxmOiBmdW5jdGlvbiAoKSB7XG4vKioqKioqLyBcdFx0XHRcdFx0Y3VycmVudFBhcmVudHMgPSBtZS5wYXJlbnRzLnNsaWNlKCk7XG4vKioqKioqLyBcdFx0XHRcdFx0Y3VycmVudENoaWxkTW9kdWxlID0gX21haW4gPyB1bmRlZmluZWQgOiBtb2R1bGVJZDtcbi8qKioqKiovIFx0XHRcdFx0XHRfX3dlYnBhY2tfcmVxdWlyZV9fKG1vZHVsZUlkKTtcbi8qKioqKiovIFx0XHRcdFx0fSxcbi8qKioqKiovIFx0XHRcbi8qKioqKiovIFx0XHRcdFx0Ly8gTW9kdWxlIEFQSVxuLyoqKioqKi8gXHRcdFx0XHRhY3RpdmU6IHRydWUsXG4vKioqKioqLyBcdFx0XHRcdGFjY2VwdDogZnVuY3Rpb24gKGRlcCwgY2FsbGJhY2ssIGVycm9ySGFuZGxlcikge1xuLyoqKioqKi8gXHRcdFx0XHRcdGlmIChkZXAgPT09IHVuZGVmaW5lZCkgaG90Ll9zZWxmQWNjZXB0ZWQgPSB0cnVlO1xuLyoqKioqKi8gXHRcdFx0XHRcdGVsc2UgaWYgKHR5cGVvZiBkZXAgPT09IFwiZnVuY3Rpb25cIikgaG90Ll9zZWxmQWNjZXB0ZWQgPSBkZXA7XG4vKioqKioqLyBcdFx0XHRcdFx0ZWxzZSBpZiAodHlwZW9mIGRlcCA9PT0gXCJvYmplY3RcIiAmJiBkZXAgIT09IG51bGwpIHtcbi8qKioqKiovIFx0XHRcdFx0XHRcdGZvciAodmFyIGkgPSAwOyBpIDwgZGVwLmxlbmd0aDsgaSsrKSB7XG4vKioqKioqLyBcdFx0XHRcdFx0XHRcdGhvdC5fYWNjZXB0ZWREZXBlbmRlbmNpZXNbZGVwW2ldXSA9IGNhbGxiYWNrIHx8IGZ1bmN0aW9uICgpIHt9O1xuLyoqKioqKi8gXHRcdFx0XHRcdFx0XHRob3QuX2FjY2VwdGVkRXJyb3JIYW5kbGVyc1tkZXBbaV1dID0gZXJyb3JIYW5kbGVyO1xuLyoqKioqKi8gXHRcdFx0XHRcdFx0fVxuLyoqKioqKi8gXHRcdFx0XHRcdH0gZWxzZSB7XG4vKioqKioqLyBcdFx0XHRcdFx0XHRob3QuX2FjY2VwdGVkRGVwZW5kZW5jaWVzW2RlcF0gPSBjYWxsYmFjayB8fCBmdW5jdGlvbiAoKSB7fTtcbi8qKioqKiovIFx0XHRcdFx0XHRcdGhvdC5fYWNjZXB0ZWRFcnJvckhhbmRsZXJzW2RlcF0gPSBlcnJvckhhbmRsZXI7XG4vKioqKioqLyBcdFx0XHRcdFx0fVxuLyoqKioqKi8gXHRcdFx0XHR9LFxuLyoqKioqKi8gXHRcdFx0XHRkZWNsaW5lOiBmdW5jdGlvbiAoZGVwKSB7XG4vKioqKioqLyBcdFx0XHRcdFx0aWYgKGRlcCA9PT0gdW5kZWZpbmVkKSBob3QuX3NlbGZEZWNsaW5lZCA9IHRydWU7XG4vKioqKioqLyBcdFx0XHRcdFx0ZWxzZSBpZiAodHlwZW9mIGRlcCA9PT0gXCJvYmplY3RcIiAmJiBkZXAgIT09IG51bGwpXG4vKioqKioqLyBcdFx0XHRcdFx0XHRmb3IgKHZhciBpID0gMDsgaSA8IGRlcC5sZW5ndGg7IGkrKylcbi8qKioqKiovIFx0XHRcdFx0XHRcdFx0aG90Ll9kZWNsaW5lZERlcGVuZGVuY2llc1tkZXBbaV1dID0gdHJ1ZTtcbi8qKioqKiovIFx0XHRcdFx0XHRlbHNlIGhvdC5fZGVjbGluZWREZXBlbmRlbmNpZXNbZGVwXSA9IHRydWU7XG4vKioqKioqLyBcdFx0XHRcdH0sXG4vKioqKioqLyBcdFx0XHRcdGRpc3Bvc2U6IGZ1bmN0aW9uIChjYWxsYmFjaykge1xuLyoqKioqKi8gXHRcdFx0XHRcdGhvdC5fZGlzcG9zZUhhbmRsZXJzLnB1c2goY2FsbGJhY2spO1xuLyoqKioqKi8gXHRcdFx0XHR9LFxuLyoqKioqKi8gXHRcdFx0XHRhZGREaXNwb3NlSGFuZGxlcjogZnVuY3Rpb24gKGNhbGxiYWNrKSB7XG4vKioqKioqLyBcdFx0XHRcdFx0aG90Ll9kaXNwb3NlSGFuZGxlcnMucHVzaChjYWxsYmFjayk7XG4vKioqKioqLyBcdFx0XHRcdH0sXG4vKioqKioqLyBcdFx0XHRcdHJlbW92ZURpc3Bvc2VIYW5kbGVyOiBmdW5jdGlvbiAoY2FsbGJhY2spIHtcbi8qKioqKiovIFx0XHRcdFx0XHR2YXIgaWR4ID0gaG90Ll9kaXNwb3NlSGFuZGxlcnMuaW5kZXhPZihjYWxsYmFjayk7XG4vKioqKioqLyBcdFx0XHRcdFx0aWYgKGlkeCA+PSAwKSBob3QuX2Rpc3Bvc2VIYW5kbGVycy5zcGxpY2UoaWR4LCAxKTtcbi8qKioqKiovIFx0XHRcdFx0fSxcbi8qKioqKiovIFx0XHRcdFx0aW52YWxpZGF0ZTogZnVuY3Rpb24gKCkge1xuLyoqKioqKi8gXHRcdFx0XHRcdHRoaXMuX3NlbGZJbnZhbGlkYXRlZCA9IHRydWU7XG4vKioqKioqLyBcdFx0XHRcdFx0c3dpdGNoIChjdXJyZW50U3RhdHVzKSB7XG4vKioqKioqLyBcdFx0XHRcdFx0XHRjYXNlIFwiaWRsZVwiOlxuLyoqKioqKi8gXHRcdFx0XHRcdFx0XHRjdXJyZW50VXBkYXRlQXBwbHlIYW5kbGVycyA9IFtdO1xuLyoqKioqKi8gXHRcdFx0XHRcdFx0XHRPYmplY3Qua2V5cyhfX3dlYnBhY2tfcmVxdWlyZV9fLmhtckkpLmZvckVhY2goZnVuY3Rpb24gKGtleSkge1xuLyoqKioqKi8gXHRcdFx0XHRcdFx0XHRcdF9fd2VicGFja19yZXF1aXJlX18uaG1ySVtrZXldKFxuLyoqKioqKi8gXHRcdFx0XHRcdFx0XHRcdFx0bW9kdWxlSWQsXG4vKioqKioqLyBcdFx0XHRcdFx0XHRcdFx0XHRjdXJyZW50VXBkYXRlQXBwbHlIYW5kbGVyc1xuLyoqKioqKi8gXHRcdFx0XHRcdFx0XHRcdCk7XG4vKioqKioqLyBcdFx0XHRcdFx0XHRcdH0pO1xuLyoqKioqKi8gXHRcdFx0XHRcdFx0XHRzZXRTdGF0dXMoXCJyZWFkeVwiKTtcbi8qKioqKiovIFx0XHRcdFx0XHRcdFx0YnJlYWs7XG4vKioqKioqLyBcdFx0XHRcdFx0XHRjYXNlIFwicmVhZHlcIjpcbi8qKioqKiovIFx0XHRcdFx0XHRcdFx0T2JqZWN0LmtleXMoX193ZWJwYWNrX3JlcXVpcmVfXy5obXJJKS5mb3JFYWNoKGZ1bmN0aW9uIChrZXkpIHtcbi8qKioqKiovIFx0XHRcdFx0XHRcdFx0XHRfX3dlYnBhY2tfcmVxdWlyZV9fLmhtcklba2V5XShcbi8qKioqKiovIFx0XHRcdFx0XHRcdFx0XHRcdG1vZHVsZUlkLFxuLyoqKioqKi8gXHRcdFx0XHRcdFx0XHRcdFx0Y3VycmVudFVwZGF0ZUFwcGx5SGFuZGxlcnNcbi8qKioqKiovIFx0XHRcdFx0XHRcdFx0XHQpO1xuLyoqKioqKi8gXHRcdFx0XHRcdFx0XHR9KTtcbi8qKioqKiovIFx0XHRcdFx0XHRcdFx0YnJlYWs7XG4vKioqKioqLyBcdFx0XHRcdFx0XHRjYXNlIFwicHJlcGFyZVwiOlxuLyoqKioqKi8gXHRcdFx0XHRcdFx0Y2FzZSBcImNoZWNrXCI6XG4vKioqKioqLyBcdFx0XHRcdFx0XHRjYXNlIFwiZGlzcG9zZVwiOlxuLyoqKioqKi8gXHRcdFx0XHRcdFx0Y2FzZSBcImFwcGx5XCI6XG4vKioqKioqLyBcdFx0XHRcdFx0XHRcdChxdWV1ZWRJbnZhbGlkYXRlZE1vZHVsZXMgPSBxdWV1ZWRJbnZhbGlkYXRlZE1vZHVsZXMgfHwgW10pLnB1c2goXG4vKioqKioqLyBcdFx0XHRcdFx0XHRcdFx0bW9kdWxlSWRcbi8qKioqKiovIFx0XHRcdFx0XHRcdFx0KTtcbi8qKioqKiovIFx0XHRcdFx0XHRcdFx0YnJlYWs7XG4vKioqKioqLyBcdFx0XHRcdFx0XHRkZWZhdWx0OlxuLyoqKioqKi8gXHRcdFx0XHRcdFx0XHQvLyBpZ25vcmUgcmVxdWVzdHMgaW4gZXJyb3Igc3RhdGVzXG4vKioqKioqLyBcdFx0XHRcdFx0XHRcdGJyZWFrO1xuLyoqKioqKi8gXHRcdFx0XHRcdH1cbi8qKioqKiovIFx0XHRcdFx0fSxcbi8qKioqKiovIFx0XHRcbi8qKioqKiovIFx0XHRcdFx0Ly8gTWFuYWdlbWVudCBBUElcbi8qKioqKiovIFx0XHRcdFx0Y2hlY2s6IGhvdENoZWNrLFxuLyoqKioqKi8gXHRcdFx0XHRhcHBseTogaG90QXBwbHksXG4vKioqKioqLyBcdFx0XHRcdHN0YXR1czogZnVuY3Rpb24gKGwpIHtcbi8qKioqKiovIFx0XHRcdFx0XHRpZiAoIWwpIHJldHVybiBjdXJyZW50U3RhdHVzO1xuLyoqKioqKi8gXHRcdFx0XHRcdHJlZ2lzdGVyZWRTdGF0dXNIYW5kbGVycy5wdXNoKGwpO1xuLyoqKioqKi8gXHRcdFx0XHR9LFxuLyoqKioqKi8gXHRcdFx0XHRhZGRTdGF0dXNIYW5kbGVyOiBmdW5jdGlvbiAobCkge1xuLyoqKioqKi8gXHRcdFx0XHRcdHJlZ2lzdGVyZWRTdGF0dXNIYW5kbGVycy5wdXNoKGwpO1xuLyoqKioqKi8gXHRcdFx0XHR9LFxuLyoqKioqKi8gXHRcdFx0XHRyZW1vdmVTdGF0dXNIYW5kbGVyOiBmdW5jdGlvbiAobCkge1xuLyoqKioqKi8gXHRcdFx0XHRcdHZhciBpZHggPSByZWdpc3RlcmVkU3RhdHVzSGFuZGxlcnMuaW5kZXhPZihsKTtcbi8qKioqKiovIFx0XHRcdFx0XHRpZiAoaWR4ID49IDApIHJlZ2lzdGVyZWRTdGF0dXNIYW5kbGVycy5zcGxpY2UoaWR4LCAxKTtcbi8qKioqKiovIFx0XHRcdFx0fSxcbi8qKioqKiovIFx0XHRcbi8qKioqKiovIFx0XHRcdFx0Ly8gaW5oZXJpdCBmcm9tIHByZXZpb3VzIGRpc3Bvc2UgY2FsbFxuLyoqKioqKi8gXHRcdFx0XHRkYXRhOiBjdXJyZW50TW9kdWxlRGF0YVttb2R1bGVJZF1cbi8qKioqKiovIFx0XHRcdH07XG4vKioqKioqLyBcdFx0XHRjdXJyZW50Q2hpbGRNb2R1bGUgPSB1bmRlZmluZWQ7XG4vKioqKioqLyBcdFx0XHRyZXR1cm4gaG90O1xuLyoqKioqKi8gXHRcdH1cbi8qKioqKiovIFx0XHRcbi8qKioqKiovIFx0XHRmdW5jdGlvbiBzZXRTdGF0dXMobmV3U3RhdHVzKSB7XG4vKioqKioqLyBcdFx0XHRjdXJyZW50U3RhdHVzID0gbmV3U3RhdHVzO1xuLyoqKioqKi8gXHRcdFx0dmFyIHJlc3VsdHMgPSBbXTtcbi8qKioqKiovIFx0XHRcbi8qKioqKiovIFx0XHRcdGZvciAodmFyIGkgPSAwOyBpIDwgcmVnaXN0ZXJlZFN0YXR1c0hhbmRsZXJzLmxlbmd0aDsgaSsrKVxuLyoqKioqKi8gXHRcdFx0XHRyZXN1bHRzW2ldID0gcmVnaXN0ZXJlZFN0YXR1c0hhbmRsZXJzW2ldLmNhbGwobnVsbCwgbmV3U3RhdHVzKTtcbi8qKioqKiovIFx0XHRcbi8qKioqKiovIFx0XHRcdHJldHVybiBQcm9taXNlLmFsbChyZXN1bHRzKS50aGVuKGZ1bmN0aW9uICgpIHt9KTtcbi8qKioqKiovIFx0XHR9XG4vKioqKioqLyBcdFx0XG4vKioqKioqLyBcdFx0ZnVuY3Rpb24gdW5ibG9jaygpIHtcbi8qKioqKiovIFx0XHRcdGlmICgtLWJsb2NraW5nUHJvbWlzZXMgPT09IDApIHtcbi8qKioqKiovIFx0XHRcdFx0c2V0U3RhdHVzKFwicmVhZHlcIikudGhlbihmdW5jdGlvbiAoKSB7XG4vKioqKioqLyBcdFx0XHRcdFx0aWYgKGJsb2NraW5nUHJvbWlzZXMgPT09IDApIHtcbi8qKioqKiovIFx0XHRcdFx0XHRcdHZhciBsaXN0ID0gYmxvY2tpbmdQcm9taXNlc1dhaXRpbmc7XG4vKioqKioqLyBcdFx0XHRcdFx0XHRibG9ja2luZ1Byb21pc2VzV2FpdGluZyA9IFtdO1xuLyoqKioqKi8gXHRcdFx0XHRcdFx0Zm9yICh2YXIgaSA9IDA7IGkgPCBsaXN0Lmxlbmd0aDsgaSsrKSB7XG4vKioqKioqLyBcdFx0XHRcdFx0XHRcdGxpc3RbaV0oKTtcbi8qKioqKiovIFx0XHRcdFx0XHRcdH1cbi8qKioqKiovIFx0XHRcdFx0XHR9XG4vKioqKioqLyBcdFx0XHRcdH0pO1xuLyoqKioqKi8gXHRcdFx0fVxuLyoqKioqKi8gXHRcdH1cbi8qKioqKiovIFx0XHRcbi8qKioqKiovIFx0XHRmdW5jdGlvbiB0cmFja0Jsb2NraW5nUHJvbWlzZShwcm9taXNlKSB7XG4vKioqKioqLyBcdFx0XHRzd2l0Y2ggKGN1cnJlbnRTdGF0dXMpIHtcbi8qKioqKiovIFx0XHRcdFx0Y2FzZSBcInJlYWR5XCI6XG4vKioqKioqLyBcdFx0XHRcdFx0c2V0U3RhdHVzKFwicHJlcGFyZVwiKTtcbi8qKioqKiovIFx0XHRcdFx0LyogZmFsbHRocm91Z2ggKi9cbi8qKioqKiovIFx0XHRcdFx0Y2FzZSBcInByZXBhcmVcIjpcbi8qKioqKiovIFx0XHRcdFx0XHRibG9ja2luZ1Byb21pc2VzKys7XG4vKioqKioqLyBcdFx0XHRcdFx0cHJvbWlzZS50aGVuKHVuYmxvY2ssIHVuYmxvY2spO1xuLyoqKioqKi8gXHRcdFx0XHRcdHJldHVybiBwcm9taXNlO1xuLyoqKioqKi8gXHRcdFx0XHRkZWZhdWx0OlxuLyoqKioqKi8gXHRcdFx0XHRcdHJldHVybiBwcm9taXNlO1xuLyoqKioqKi8gXHRcdFx0fVxuLyoqKioqKi8gXHRcdH1cbi8qKioqKiovIFx0XHRcbi8qKioqKiovIFx0XHRmdW5jdGlvbiB3YWl0Rm9yQmxvY2tpbmdQcm9taXNlcyhmbikge1xuLyoqKioqKi8gXHRcdFx0aWYgKGJsb2NraW5nUHJvbWlzZXMgPT09IDApIHJldHVybiBmbigpO1xuLyoqKioqKi8gXHRcdFx0cmV0dXJuIG5ldyBQcm9taXNlKGZ1bmN0aW9uIChyZXNvbHZlKSB7XG4vKioqKioqLyBcdFx0XHRcdGJsb2NraW5nUHJvbWlzZXNXYWl0aW5nLnB1c2goZnVuY3Rpb24gKCkge1xuLyoqKioqKi8gXHRcdFx0XHRcdHJlc29sdmUoZm4oKSk7XG4vKioqKioqLyBcdFx0XHRcdH0pO1xuLyoqKioqKi8gXHRcdFx0fSk7XG4vKioqKioqLyBcdFx0fVxuLyoqKioqKi8gXHRcdFxuLyoqKioqKi8gXHRcdGZ1bmN0aW9uIGhvdENoZWNrKGFwcGx5T25VcGRhdGUpIHtcbi8qKioqKiovIFx0XHRcdGlmIChjdXJyZW50U3RhdHVzICE9PSBcImlkbGVcIikge1xuLyoqKioqKi8gXHRcdFx0XHR0aHJvdyBuZXcgRXJyb3IoXCJjaGVjaygpIGlzIG9ubHkgYWxsb3dlZCBpbiBpZGxlIHN0YXR1c1wiKTtcbi8qKioqKiovIFx0XHRcdH1cbi8qKioqKiovIFx0XHRcdHJldHVybiBzZXRTdGF0dXMoXCJjaGVja1wiKVxuLyoqKioqKi8gXHRcdFx0XHQudGhlbihfX3dlYnBhY2tfcmVxdWlyZV9fLmhtck0pXG4vKioqKioqLyBcdFx0XHRcdC50aGVuKGZ1bmN0aW9uICh1cGRhdGUpIHtcbi8qKioqKiovIFx0XHRcdFx0XHRpZiAoIXVwZGF0ZSkge1xuLyoqKioqKi8gXHRcdFx0XHRcdFx0cmV0dXJuIHNldFN0YXR1cyhhcHBseUludmFsaWRhdGVkTW9kdWxlcygpID8gXCJyZWFkeVwiIDogXCJpZGxlXCIpLnRoZW4oXG4vKioqKioqLyBcdFx0XHRcdFx0XHRcdGZ1bmN0aW9uICgpIHtcbi8qKioqKiovIFx0XHRcdFx0XHRcdFx0XHRyZXR1cm4gbnVsbDtcbi8qKioqKiovIFx0XHRcdFx0XHRcdFx0fVxuLyoqKioqKi8gXHRcdFx0XHRcdFx0KTtcbi8qKioqKiovIFx0XHRcdFx0XHR9XG4vKioqKioqLyBcdFx0XG4vKioqKioqLyBcdFx0XHRcdFx0cmV0dXJuIHNldFN0YXR1cyhcInByZXBhcmVcIikudGhlbihmdW5jdGlvbiAoKSB7XG4vKioqKioqLyBcdFx0XHRcdFx0XHR2YXIgdXBkYXRlZE1vZHVsZXMgPSBbXTtcbi8qKioqKiovIFx0XHRcdFx0XHRcdGN1cnJlbnRVcGRhdGVBcHBseUhhbmRsZXJzID0gW107XG4vKioqKioqLyBcdFx0XG4vKioqKioqLyBcdFx0XHRcdFx0XHRyZXR1cm4gUHJvbWlzZS5hbGwoXG4vKioqKioqLyBcdFx0XHRcdFx0XHRcdE9iamVjdC5rZXlzKF9fd2VicGFja19yZXF1aXJlX18uaG1yQykucmVkdWNlKGZ1bmN0aW9uIChcbi8qKioqKiovIFx0XHRcdFx0XHRcdFx0XHRwcm9taXNlcyxcbi8qKioqKiovIFx0XHRcdFx0XHRcdFx0XHRrZXlcbi8qKioqKiovIFx0XHRcdFx0XHRcdFx0KSB7XG4vKioqKioqLyBcdFx0XHRcdFx0XHRcdFx0X193ZWJwYWNrX3JlcXVpcmVfXy5obXJDW2tleV0oXG4vKioqKioqLyBcdFx0XHRcdFx0XHRcdFx0XHR1cGRhdGUuYyxcbi8qKioqKiovIFx0XHRcdFx0XHRcdFx0XHRcdHVwZGF0ZS5yLFxuLyoqKioqKi8gXHRcdFx0XHRcdFx0XHRcdFx0dXBkYXRlLm0sXG4vKioqKioqLyBcdFx0XHRcdFx0XHRcdFx0XHRwcm9taXNlcyxcbi8qKioqKiovIFx0XHRcdFx0XHRcdFx0XHRcdGN1cnJlbnRVcGRhdGVBcHBseUhhbmRsZXJzLFxuLyoqKioqKi8gXHRcdFx0XHRcdFx0XHRcdFx0dXBkYXRlZE1vZHVsZXNcbi8qKioqKiovIFx0XHRcdFx0XHRcdFx0XHQpO1xuLyoqKioqKi8gXHRcdFx0XHRcdFx0XHRcdHJldHVybiBwcm9taXNlcztcbi8qKioqKiovIFx0XHRcdFx0XHRcdFx0fSwgW10pXG4vKioqKioqLyBcdFx0XHRcdFx0XHQpLnRoZW4oZnVuY3Rpb24gKCkge1xuLyoqKioqKi8gXHRcdFx0XHRcdFx0XHRyZXR1cm4gd2FpdEZvckJsb2NraW5nUHJvbWlzZXMoZnVuY3Rpb24gKCkge1xuLyoqKioqKi8gXHRcdFx0XHRcdFx0XHRcdGlmIChhcHBseU9uVXBkYXRlKSB7XG4vKioqKioqLyBcdFx0XHRcdFx0XHRcdFx0XHRyZXR1cm4gaW50ZXJuYWxBcHBseShhcHBseU9uVXBkYXRlKTtcbi8qKioqKiovIFx0XHRcdFx0XHRcdFx0XHR9XG4vKioqKioqLyBcdFx0XHRcdFx0XHRcdFx0cmV0dXJuIHNldFN0YXR1cyhcInJlYWR5XCIpLnRoZW4oZnVuY3Rpb24gKCkge1xuLyoqKioqKi8gXHRcdFx0XHRcdFx0XHRcdFx0cmV0dXJuIHVwZGF0ZWRNb2R1bGVzO1xuLyoqKioqKi8gXHRcdFx0XHRcdFx0XHRcdH0pO1xuLyoqKioqKi8gXHRcdFx0XHRcdFx0XHR9KTtcbi8qKioqKiovIFx0XHRcdFx0XHRcdH0pO1xuLyoqKioqKi8gXHRcdFx0XHRcdH0pO1xuLyoqKioqKi8gXHRcdFx0XHR9KTtcbi8qKioqKiovIFx0XHR9XG4vKioqKioqLyBcdFx0XG4vKioqKioqLyBcdFx0ZnVuY3Rpb24gaG90QXBwbHkob3B0aW9ucykge1xuLyoqKioqKi8gXHRcdFx0aWYgKGN1cnJlbnRTdGF0dXMgIT09IFwicmVhZHlcIikge1xuLyoqKioqKi8gXHRcdFx0XHRyZXR1cm4gUHJvbWlzZS5yZXNvbHZlKCkudGhlbihmdW5jdGlvbiAoKSB7XG4vKioqKioqLyBcdFx0XHRcdFx0dGhyb3cgbmV3IEVycm9yKFxuLyoqKioqKi8gXHRcdFx0XHRcdFx0XCJhcHBseSgpIGlzIG9ubHkgYWxsb3dlZCBpbiByZWFkeSBzdGF0dXMgKHN0YXRlOiBcIiArXG4vKioqKioqLyBcdFx0XHRcdFx0XHRcdGN1cnJlbnRTdGF0dXMgK1xuLyoqKioqKi8gXHRcdFx0XHRcdFx0XHRcIilcIlxuLyoqKioqKi8gXHRcdFx0XHRcdCk7XG4vKioqKioqLyBcdFx0XHRcdH0pO1xuLyoqKioqKi8gXHRcdFx0fVxuLyoqKioqKi8gXHRcdFx0cmV0dXJuIGludGVybmFsQXBwbHkob3B0aW9ucyk7XG4vKioqKioqLyBcdFx0fVxuLyoqKioqKi8gXHRcdFxuLyoqKioqKi8gXHRcdGZ1bmN0aW9uIGludGVybmFsQXBwbHkob3B0aW9ucykge1xuLyoqKioqKi8gXHRcdFx0b3B0aW9ucyA9IG9wdGlvbnMgfHwge307XG4vKioqKioqLyBcdFx0XG4vKioqKioqLyBcdFx0XHRhcHBseUludmFsaWRhdGVkTW9kdWxlcygpO1xuLyoqKioqKi8gXHRcdFxuLyoqKioqKi8gXHRcdFx0dmFyIHJlc3VsdHMgPSBjdXJyZW50VXBkYXRlQXBwbHlIYW5kbGVycy5tYXAoZnVuY3Rpb24gKGhhbmRsZXIpIHtcbi8qKioqKiovIFx0XHRcdFx0cmV0dXJuIGhhbmRsZXIob3B0aW9ucyk7XG4vKioqKioqLyBcdFx0XHR9KTtcbi8qKioqKiovIFx0XHRcdGN1cnJlbnRVcGRhdGVBcHBseUhhbmRsZXJzID0gdW5kZWZpbmVkO1xuLyoqKioqKi8gXHRcdFxuLyoqKioqKi8gXHRcdFx0dmFyIGVycm9ycyA9IHJlc3VsdHNcbi8qKioqKiovIFx0XHRcdFx0Lm1hcChmdW5jdGlvbiAocikge1xuLyoqKioqKi8gXHRcdFx0XHRcdHJldHVybiByLmVycm9yO1xuLyoqKioqKi8gXHRcdFx0XHR9KVxuLyoqKioqKi8gXHRcdFx0XHQuZmlsdGVyKEJvb2xlYW4pO1xuLyoqKioqKi8gXHRcdFxuLyoqKioqKi8gXHRcdFx0aWYgKGVycm9ycy5sZW5ndGggPiAwKSB7XG4vKioqKioqLyBcdFx0XHRcdHJldHVybiBzZXRTdGF0dXMoXCJhYm9ydFwiKS50aGVuKGZ1bmN0aW9uICgpIHtcbi8qKioqKiovIFx0XHRcdFx0XHR0aHJvdyBlcnJvcnNbMF07XG4vKioqKioqLyBcdFx0XHRcdH0pO1xuLyoqKioqKi8gXHRcdFx0fVxuLyoqKioqKi8gXHRcdFxuLyoqKioqKi8gXHRcdFx0Ly8gTm93IGluIFwiZGlzcG9zZVwiIHBoYXNlXG4vKioqKioqLyBcdFx0XHR2YXIgZGlzcG9zZVByb21pc2UgPSBzZXRTdGF0dXMoXCJkaXNwb3NlXCIpO1xuLyoqKioqKi8gXHRcdFxuLyoqKioqKi8gXHRcdFx0cmVzdWx0cy5mb3JFYWNoKGZ1bmN0aW9uIChyZXN1bHQpIHtcbi8qKioqKiovIFx0XHRcdFx0aWYgKHJlc3VsdC5kaXNwb3NlKSByZXN1bHQuZGlzcG9zZSgpO1xuLyoqKioqKi8gXHRcdFx0fSk7XG4vKioqKioqLyBcdFx0XG4vKioqKioqLyBcdFx0XHQvLyBOb3cgaW4gXCJhcHBseVwiIHBoYXNlXG4vKioqKioqLyBcdFx0XHR2YXIgYXBwbHlQcm9taXNlID0gc2V0U3RhdHVzKFwiYXBwbHlcIik7XG4vKioqKioqLyBcdFx0XG4vKioqKioqLyBcdFx0XHR2YXIgZXJyb3I7XG4vKioqKioqLyBcdFx0XHR2YXIgcmVwb3J0RXJyb3IgPSBmdW5jdGlvbiAoZXJyKSB7XG4vKioqKioqLyBcdFx0XHRcdGlmICghZXJyb3IpIGVycm9yID0gZXJyO1xuLyoqKioqKi8gXHRcdFx0fTtcbi8qKioqKiovIFx0XHRcbi8qKioqKiovIFx0XHRcdHZhciBvdXRkYXRlZE1vZHVsZXMgPSBbXTtcbi8qKioqKiovIFx0XHRcdHJlc3VsdHMuZm9yRWFjaChmdW5jdGlvbiAocmVzdWx0KSB7XG4vKioqKioqLyBcdFx0XHRcdGlmIChyZXN1bHQuYXBwbHkpIHtcbi8qKioqKiovIFx0XHRcdFx0XHR2YXIgbW9kdWxlcyA9IHJlc3VsdC5hcHBseShyZXBvcnRFcnJvcik7XG4vKioqKioqLyBcdFx0XHRcdFx0aWYgKG1vZHVsZXMpIHtcbi8qKioqKiovIFx0XHRcdFx0XHRcdGZvciAodmFyIGkgPSAwOyBpIDwgbW9kdWxlcy5sZW5ndGg7IGkrKykge1xuLyoqKioqKi8gXHRcdFx0XHRcdFx0XHRvdXRkYXRlZE1vZHVsZXMucHVzaChtb2R1bGVzW2ldKTtcbi8qKioqKiovIFx0XHRcdFx0XHRcdH1cbi8qKioqKiovIFx0XHRcdFx0XHR9XG4vKioqKioqLyBcdFx0XHRcdH1cbi8qKioqKiovIFx0XHRcdH0pO1xuLyoqKioqKi8gXHRcdFxuLyoqKioqKi8gXHRcdFx0cmV0dXJuIFByb21pc2UuYWxsKFtkaXNwb3NlUHJvbWlzZSwgYXBwbHlQcm9taXNlXSkudGhlbihmdW5jdGlvbiAoKSB7XG4vKioqKioqLyBcdFx0XHRcdC8vIGhhbmRsZSBlcnJvcnMgaW4gYWNjZXB0IGhhbmRsZXJzIGFuZCBzZWxmIGFjY2VwdGVkIG1vZHVsZSBsb2FkXG4vKioqKioqLyBcdFx0XHRcdGlmIChlcnJvcikge1xuLyoqKioqKi8gXHRcdFx0XHRcdHJldHVybiBzZXRTdGF0dXMoXCJmYWlsXCIpLnRoZW4oZnVuY3Rpb24gKCkge1xuLyoqKioqKi8gXHRcdFx0XHRcdFx0dGhyb3cgZXJyb3I7XG4vKioqKioqLyBcdFx0XHRcdFx0fSk7XG4vKioqKioqLyBcdFx0XHRcdH1cbi8qKioqKiovIFx0XHRcbi8qKioqKiovIFx0XHRcdFx0aWYgKHF1ZXVlZEludmFsaWRhdGVkTW9kdWxlcykge1xuLyoqKioqKi8gXHRcdFx0XHRcdHJldHVybiBpbnRlcm5hbEFwcGx5KG9wdGlvbnMpLnRoZW4oZnVuY3Rpb24gKGxpc3QpIHtcbi8qKioqKiovIFx0XHRcdFx0XHRcdG91dGRhdGVkTW9kdWxlcy5mb3JFYWNoKGZ1bmN0aW9uIChtb2R1bGVJZCkge1xuLyoqKioqKi8gXHRcdFx0XHRcdFx0XHRpZiAobGlzdC5pbmRleE9mKG1vZHVsZUlkKSA8IDApIGxpc3QucHVzaChtb2R1bGVJZCk7XG4vKioqKioqLyBcdFx0XHRcdFx0XHR9KTtcbi8qKioqKiovIFx0XHRcdFx0XHRcdHJldHVybiBsaXN0O1xuLyoqKioqKi8gXHRcdFx0XHRcdH0pO1xuLyoqKioqKi8gXHRcdFx0XHR9XG4vKioqKioqLyBcdFx0XG4vKioqKioqLyBcdFx0XHRcdHJldHVybiBzZXRTdGF0dXMoXCJpZGxlXCIpLnRoZW4oZnVuY3Rpb24gKCkge1xuLyoqKioqKi8gXHRcdFx0XHRcdHJldHVybiBvdXRkYXRlZE1vZHVsZXM7XG4vKioqKioqLyBcdFx0XHRcdH0pO1xuLyoqKioqKi8gXHRcdFx0fSk7XG4vKioqKioqLyBcdFx0fVxuLyoqKioqKi8gXHRcdFxuLyoqKioqKi8gXHRcdGZ1bmN0aW9uIGFwcGx5SW52YWxpZGF0ZWRNb2R1bGVzKCkge1xuLyoqKioqKi8gXHRcdFx0aWYgKHF1ZXVlZEludmFsaWRhdGVkTW9kdWxlcykge1xuLyoqKioqKi8gXHRcdFx0XHRpZiAoIWN1cnJlbnRVcGRhdGVBcHBseUhhbmRsZXJzKSBjdXJyZW50VXBkYXRlQXBwbHlIYW5kbGVycyA9IFtdO1xuLyoqKioqKi8gXHRcdFx0XHRPYmplY3Qua2V5cyhfX3dlYnBhY2tfcmVxdWlyZV9fLmhtckkpLmZvckVhY2goZnVuY3Rpb24gKGtleSkge1xuLyoqKioqKi8gXHRcdFx0XHRcdHF1ZXVlZEludmFsaWRhdGVkTW9kdWxlcy5mb3JFYWNoKGZ1bmN0aW9uIChtb2R1bGVJZCkge1xuLyoqKioqKi8gXHRcdFx0XHRcdFx0X193ZWJwYWNrX3JlcXVpcmVfXy5obXJJW2tleV0oXG4vKioqKioqLyBcdFx0XHRcdFx0XHRcdG1vZHVsZUlkLFxuLyoqKioqKi8gXHRcdFx0XHRcdFx0XHRjdXJyZW50VXBkYXRlQXBwbHlIYW5kbGVyc1xuLyoqKioqKi8gXHRcdFx0XHRcdFx0KTtcbi8qKioqKiovIFx0XHRcdFx0XHR9KTtcbi8qKioqKiovIFx0XHRcdFx0fSk7XG4vKioqKioqLyBcdFx0XHRcdHF1ZXVlZEludmFsaWRhdGVkTW9kdWxlcyA9IHVuZGVmaW5lZDtcbi8qKioqKiovIFx0XHRcdFx0cmV0dXJuIHRydWU7XG4vKioqKioqLyBcdFx0XHR9XG4vKioqKioqLyBcdFx0fVxuLyoqKioqKi8gXHR9KSgpO1xuLyoqKioqKi8gXHRcbi8qKioqKiovIFx0Lyogd2VicGFjay9ydW50aW1lL3B1YmxpY1BhdGggKi9cbi8qKioqKiovIFx0KCgpID0+IHtcbi8qKioqKiovIFx0XHRfX3dlYnBhY2tfcmVxdWlyZV9fLnAgPSBcIi9fbmV4dC9cIjtcbi8qKioqKiovIFx0fSkoKTtcbi8qKioqKiovIFx0XG4vKioqKioqLyBcdC8qIHdlYnBhY2svcnVudGltZS9yZWFjdCByZWZyZXNoICovXG4vKioqKioqLyBcdCgoKSA9PiB7XG4vKioqKioqLyBcdFx0aWYgKF9fd2VicGFja19yZXF1aXJlX18uaSkge1xuLyoqKioqKi8gXHRcdF9fd2VicGFja19yZXF1aXJlX18uaS5wdXNoKChvcHRpb25zKSA9PiB7XG4vKioqKioqLyBcdFx0XHRjb25zdCBvcmlnaW5hbEZhY3RvcnkgPSBvcHRpb25zLmZhY3Rvcnk7XG4vKioqKioqLyBcdFx0XHRvcHRpb25zLmZhY3RvcnkgPSAobW9kdWxlT2JqZWN0LCBtb2R1bGVFeHBvcnRzLCB3ZWJwYWNrUmVxdWlyZSkgPT4ge1xuLyoqKioqKi8gXHRcdFx0XHRjb25zdCBoYXNSZWZyZXNoID0gdHlwZW9mIHNlbGYgIT09IFwidW5kZWZpbmVkXCIgJiYgISFzZWxmLiRSZWZyZXNoSW50ZXJjZXB0TW9kdWxlRXhlY3V0aW9uJDtcbi8qKioqKiovIFx0XHRcdFx0Y29uc3QgY2xlYW51cCA9IGhhc1JlZnJlc2ggPyBzZWxmLiRSZWZyZXNoSW50ZXJjZXB0TW9kdWxlRXhlY3V0aW9uJChtb2R1bGVPYmplY3QuaWQpIDogKCkgPT4ge307XG4vKioqKioqLyBcdFx0XHRcdHRyeSB7XG4vKioqKioqLyBcdFx0XHRcdFx0b3JpZ2luYWxGYWN0b3J5LmNhbGwodGhpcywgbW9kdWxlT2JqZWN0LCBtb2R1bGVFeHBvcnRzLCB3ZWJwYWNrUmVxdWlyZSk7XG4vKioqKioqLyBcdFx0XHRcdH0gZmluYWxseSB7XG4vKioqKioqLyBcdFx0XHRcdFx0Y2xlYW51cCgpO1xuLyoqKioqKi8gXHRcdFx0XHR9XG4vKioqKioqLyBcdFx0XHR9XG4vKioqKioqLyBcdFx0fSlcbi8qKioqKiovIFx0XHR9XG4vKioqKioqLyBcdH0pKCk7XG4vKioqKioqLyBcdFxuLyoqKioqKi8gXHQvKiB3ZWJwYWNrL3J1bnRpbWUvY29tcGF0ICovXG4vKioqKioqLyBcdFxuLyoqKioqKi8gXHRcbi8qKioqKiovIFx0Ly8gbm9vcCBmbnMgdG8gcHJldmVudCBydW50aW1lIGVycm9ycyBkdXJpbmcgaW5pdGlhbGl6YXRpb25cbi8qKioqKiovIFx0aWYgKHR5cGVvZiBzZWxmICE9PSBcInVuZGVmaW5lZFwiKSB7XG4vKioqKioqLyBcdFx0c2VsZi4kUmVmcmVzaFJlZyQgPSBmdW5jdGlvbiAoKSB7fTtcbi8qKioqKiovIFx0XHRzZWxmLiRSZWZyZXNoU2lnJCA9IGZ1bmN0aW9uICgpIHtcbi8qKioqKiovIFx0XHRcdHJldHVybiBmdW5jdGlvbiAodHlwZSkge1xuLyoqKioqKi8gXHRcdFx0XHRyZXR1cm4gdHlwZTtcbi8qKioqKiovIFx0XHRcdH07XG4vKioqKioqLyBcdFx0fTtcbi8qKioqKiovIFx0fVxuLyoqKioqKi8gXHRcbi8qKioqKiovIFx0Lyogd2VicGFjay9ydW50aW1lL2pzb25wIGNodW5rIGxvYWRpbmcgKi9cbi8qKioqKiovIFx0KCgpID0+IHtcbi8qKioqKiovIFx0XHQvLyBubyBiYXNlVVJJXG4vKioqKioqLyBcdFx0XG4vKioqKioqLyBcdFx0Ly8gb2JqZWN0IHRvIHN0b3JlIGxvYWRlZCBhbmQgbG9hZGluZyBjaHVua3Ncbi8qKioqKiovIFx0XHQvLyB1bmRlZmluZWQgPSBjaHVuayBub3QgbG9hZGVkLCBudWxsID0gY2h1bmsgcHJlbG9hZGVkL3ByZWZldGNoZWRcbi8qKioqKiovIFx0XHQvLyBbcmVzb2x2ZSwgcmVqZWN0LCBQcm9taXNlXSA9IGNodW5rIGxvYWRpbmcsIDAgPSBjaHVuayBsb2FkZWRcbi8qKioqKiovIFx0XHR2YXIgaW5zdGFsbGVkQ2h1bmtzID0gX193ZWJwYWNrX3JlcXVpcmVfXy5obXJTX2pzb25wID0gX193ZWJwYWNrX3JlcXVpcmVfXy5obXJTX2pzb25wIHx8IHtcbi8qKioqKiovIFx0XHRcdFwid2VicGFja1wiOiAwXG4vKioqKioqLyBcdFx0fTtcbi8qKioqKiovIFx0XHRcbi8qKioqKiovIFx0XHRfX3dlYnBhY2tfcmVxdWlyZV9fLmYuaiA9IChjaHVua0lkLCBwcm9taXNlcykgPT4ge1xuLyoqKioqKi8gXHRcdFx0XHQvLyBKU09OUCBjaHVuayBsb2FkaW5nIGZvciBqYXZhc2NyaXB0XG4vKioqKioqLyBcdFx0XHRcdHZhciBpbnN0YWxsZWRDaHVua0RhdGEgPSBfX3dlYnBhY2tfcmVxdWlyZV9fLm8oaW5zdGFsbGVkQ2h1bmtzLCBjaHVua0lkKSA/IGluc3RhbGxlZENodW5rc1tjaHVua0lkXSA6IHVuZGVmaW5lZDtcbi8qKioqKiovIFx0XHRcdFx0aWYoaW5zdGFsbGVkQ2h1bmtEYXRhICE9PSAwKSB7IC8vIDAgbWVhbnMgXCJhbHJlYWR5IGluc3RhbGxlZFwiLlxuLyoqKioqKi8gXHRcdFxuLyoqKioqKi8gXHRcdFx0XHRcdC8vIGEgUHJvbWlzZSBtZWFucyBcImN1cnJlbnRseSBsb2FkaW5nXCIuXG4vKioqKioqLyBcdFx0XHRcdFx0aWYoaW5zdGFsbGVkQ2h1bmtEYXRhKSB7XG4vKioqKioqLyBcdFx0XHRcdFx0XHRwcm9taXNlcy5wdXNoKGluc3RhbGxlZENodW5rRGF0YVsyXSk7XG4vKioqKioqLyBcdFx0XHRcdFx0fSBlbHNlIHtcbi8qKioqKiovIFx0XHRcdFx0XHRcdGlmKFwid2VicGFja1wiICE9IGNodW5rSWQpIHtcbi8qKioqKiovIFx0XHRcdFx0XHRcdFx0Ly8gc2V0dXAgUHJvbWlzZSBpbiBjaHVuayBjYWNoZVxuLyoqKioqKi8gXHRcdFx0XHRcdFx0XHR2YXIgcHJvbWlzZSA9IG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IChpbnN0YWxsZWRDaHVua0RhdGEgPSBpbnN0YWxsZWRDaHVua3NbY2h1bmtJZF0gPSBbcmVzb2x2ZSwgcmVqZWN0XSkpO1xuLyoqKioqKi8gXHRcdFx0XHRcdFx0XHRwcm9taXNlcy5wdXNoKGluc3RhbGxlZENodW5rRGF0YVsyXSA9IHByb21pc2UpO1xuLyoqKioqKi8gXHRcdFxuLyoqKioqKi8gXHRcdFx0XHRcdFx0XHQvLyBzdGFydCBjaHVuayBsb2FkaW5nXG4vKioqKioqLyBcdFx0XHRcdFx0XHRcdHZhciB1cmwgPSBfX3dlYnBhY2tfcmVxdWlyZV9fLnAgKyBfX3dlYnBhY2tfcmVxdWlyZV9fLnUoY2h1bmtJZCk7XG4vKioqKioqLyBcdFx0XHRcdFx0XHRcdC8vIGNyZWF0ZSBlcnJvciBiZWZvcmUgc3RhY2sgdW53b3VuZCB0byBnZXQgdXNlZnVsIHN0YWNrdHJhY2UgbGF0ZXJcbi8qKioqKiovIFx0XHRcdFx0XHRcdFx0dmFyIGVycm9yID0gbmV3IEVycm9yKCk7XG4vKioqKioqLyBcdFx0XHRcdFx0XHRcdHZhciBsb2FkaW5nRW5kZWQgPSAoZXZlbnQpID0+IHtcbi8qKioqKiovIFx0XHRcdFx0XHRcdFx0XHRpZihfX3dlYnBhY2tfcmVxdWlyZV9fLm8oaW5zdGFsbGVkQ2h1bmtzLCBjaHVua0lkKSkge1xuLyoqKioqKi8gXHRcdFx0XHRcdFx0XHRcdFx0aW5zdGFsbGVkQ2h1bmtEYXRhID0gaW5zdGFsbGVkQ2h1bmtzW2NodW5rSWRdO1xuLyoqKioqKi8gXHRcdFx0XHRcdFx0XHRcdFx0aWYoaW5zdGFsbGVkQ2h1bmtEYXRhICE9PSAwKSBpbnN0YWxsZWRDaHVua3NbY2h1bmtJZF0gPSB1bmRlZmluZWQ7XG4vKioqKioqLyBcdFx0XHRcdFx0XHRcdFx0XHRpZihpbnN0YWxsZWRDaHVua0RhdGEpIHtcbi8qKioqKiovIFx0XHRcdFx0XHRcdFx0XHRcdFx0dmFyIGVycm9yVHlwZSA9IGV2ZW50ICYmIChldmVudC50eXBlID09PSAnbG9hZCcgPyAnbWlzc2luZycgOiBldmVudC50eXBlKTtcbi8qKioqKiovIFx0XHRcdFx0XHRcdFx0XHRcdFx0dmFyIHJlYWxTcmMgPSBldmVudCAmJiBldmVudC50YXJnZXQgJiYgZXZlbnQudGFyZ2V0LnNyYztcbi8qKioqKiovIFx0XHRcdFx0XHRcdFx0XHRcdFx0ZXJyb3IubWVzc2FnZSA9ICdMb2FkaW5nIGNodW5rICcgKyBjaHVua0lkICsgJyBmYWlsZWQuXFxuKCcgKyBlcnJvclR5cGUgKyAnOiAnICsgcmVhbFNyYyArICcpJztcbi8qKioqKiovIFx0XHRcdFx0XHRcdFx0XHRcdFx0ZXJyb3IubmFtZSA9ICdDaHVua0xvYWRFcnJvcic7XG4vKioqKioqLyBcdFx0XHRcdFx0XHRcdFx0XHRcdGVycm9yLnR5cGUgPSBlcnJvclR5cGU7XG4vKioqKioqLyBcdFx0XHRcdFx0XHRcdFx0XHRcdGVycm9yLnJlcXVlc3QgPSByZWFsU3JjO1xuLyoqKioqKi8gXHRcdFx0XHRcdFx0XHRcdFx0XHRpbnN0YWxsZWRDaHVua0RhdGFbMV0oZXJyb3IpO1xuLyoqKioqKi8gXHRcdFx0XHRcdFx0XHRcdFx0fVxuLyoqKioqKi8gXHRcdFx0XHRcdFx0XHRcdH1cbi8qKioqKiovIFx0XHRcdFx0XHRcdFx0fTtcbi8qKioqKiovIFx0XHRcdFx0XHRcdFx0X193ZWJwYWNrX3JlcXVpcmVfXy5sKHVybCwgbG9hZGluZ0VuZGVkLCBcImNodW5rLVwiICsgY2h1bmtJZCwgY2h1bmtJZCk7XG4vKioqKioqLyBcdFx0XHRcdFx0XHR9IGVsc2UgaW5zdGFsbGVkQ2h1bmtzW2NodW5rSWRdID0gMDtcbi8qKioqKiovIFx0XHRcdFx0XHR9XG4vKioqKioqLyBcdFx0XHRcdH1cbi8qKioqKiovIFx0XHR9O1xuLyoqKioqKi8gXHRcdFxuLyoqKioqKi8gXHRcdC8vIG5vIHByZWZldGNoaW5nXG4vKioqKioqLyBcdFx0XG4vKioqKioqLyBcdFx0Ly8gbm8gcHJlbG9hZGVkXG4vKioqKioqLyBcdFx0XG4vKioqKioqLyBcdFx0dmFyIGN1cnJlbnRVcGRhdGVkTW9kdWxlc0xpc3Q7XG4vKioqKioqLyBcdFx0dmFyIHdhaXRpbmdVcGRhdGVSZXNvbHZlcyA9IHt9O1xuLyoqKioqKi8gXHRcdGZ1bmN0aW9uIGxvYWRVcGRhdGVDaHVuayhjaHVua0lkLCB1cGRhdGVkTW9kdWxlc0xpc3QpIHtcbi8qKioqKiovIFx0XHRcdGN1cnJlbnRVcGRhdGVkTW9kdWxlc0xpc3QgPSB1cGRhdGVkTW9kdWxlc0xpc3Q7XG4vKioqKioqLyBcdFx0XHRyZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuLyoqKioqKi8gXHRcdFx0XHR3YWl0aW5nVXBkYXRlUmVzb2x2ZXNbY2h1bmtJZF0gPSByZXNvbHZlO1xuLyoqKioqKi8gXHRcdFx0XHQvLyBzdGFydCB1cGRhdGUgY2h1bmsgbG9hZGluZ1xuLyoqKioqKi8gXHRcdFx0XHR2YXIgdXJsID0gX193ZWJwYWNrX3JlcXVpcmVfXy5wICsgX193ZWJwYWNrX3JlcXVpcmVfXy5odShjaHVua0lkKTtcbi8qKioqKiovIFx0XHRcdFx0Ly8gY3JlYXRlIGVycm9yIGJlZm9yZSBzdGFjayB1bndvdW5kIHRvIGdldCB1c2VmdWwgc3RhY2t0cmFjZSBsYXRlclxuLyoqKioqKi8gXHRcdFx0XHR2YXIgZXJyb3IgPSBuZXcgRXJyb3IoKTtcbi8qKioqKiovIFx0XHRcdFx0dmFyIGxvYWRpbmdFbmRlZCA9IChldmVudCkgPT4ge1xuLyoqKioqKi8gXHRcdFx0XHRcdGlmKHdhaXRpbmdVcGRhdGVSZXNvbHZlc1tjaHVua0lkXSkge1xuLyoqKioqKi8gXHRcdFx0XHRcdFx0d2FpdGluZ1VwZGF0ZVJlc29sdmVzW2NodW5rSWRdID0gdW5kZWZpbmVkXG4vKioqKioqLyBcdFx0XHRcdFx0XHR2YXIgZXJyb3JUeXBlID0gZXZlbnQgJiYgKGV2ZW50LnR5cGUgPT09ICdsb2FkJyA/ICdtaXNzaW5nJyA6IGV2ZW50LnR5cGUpO1xuLyoqKioqKi8gXHRcdFx0XHRcdFx0dmFyIHJlYWxTcmMgPSBldmVudCAmJiBldmVudC50YXJnZXQgJiYgZXZlbnQudGFyZ2V0LnNyYztcbi8qKioqKiovIFx0XHRcdFx0XHRcdGVycm9yLm1lc3NhZ2UgPSAnTG9hZGluZyBob3QgdXBkYXRlIGNodW5rICcgKyBjaHVua0lkICsgJyBmYWlsZWQuXFxuKCcgKyBlcnJvclR5cGUgKyAnOiAnICsgcmVhbFNyYyArICcpJztcbi8qKioqKiovIFx0XHRcdFx0XHRcdGVycm9yLm5hbWUgPSAnQ2h1bmtMb2FkRXJyb3InO1xuLyoqKioqKi8gXHRcdFx0XHRcdFx0ZXJyb3IudHlwZSA9IGVycm9yVHlwZTtcbi8qKioqKiovIFx0XHRcdFx0XHRcdGVycm9yLnJlcXVlc3QgPSByZWFsU3JjO1xuLyoqKioqKi8gXHRcdFx0XHRcdFx0cmVqZWN0KGVycm9yKTtcbi8qKioqKiovIFx0XHRcdFx0XHR9XG4vKioqKioqLyBcdFx0XHRcdH07XG4vKioqKioqLyBcdFx0XHRcdF9fd2VicGFja19yZXF1aXJlX18ubCh1cmwsIGxvYWRpbmdFbmRlZCk7XG4vKioqKioqLyBcdFx0XHR9KTtcbi8qKioqKiovIFx0XHR9XG4vKioqKioqLyBcdFx0XG4vKioqKioqLyBcdFx0c2VsZltcIndlYnBhY2tIb3RVcGRhdGVfTl9FXCJdID0gKGNodW5rSWQsIG1vcmVNb2R1bGVzLCBydW50aW1lKSA9PiB7XG4vKioqKioqLyBcdFx0XHRmb3IodmFyIG1vZHVsZUlkIGluIG1vcmVNb2R1bGVzKSB7XG4vKioqKioqLyBcdFx0XHRcdGlmKF9fd2VicGFja19yZXF1aXJlX18ubyhtb3JlTW9kdWxlcywgbW9kdWxlSWQpKSB7XG4vKioqKioqLyBcdFx0XHRcdFx0Y3VycmVudFVwZGF0ZVttb2R1bGVJZF0gPSBtb3JlTW9kdWxlc1ttb2R1bGVJZF07XG4vKioqKioqLyBcdFx0XHRcdFx0aWYoY3VycmVudFVwZGF0ZWRNb2R1bGVzTGlzdCkgY3VycmVudFVwZGF0ZWRNb2R1bGVzTGlzdC5wdXNoKG1vZHVsZUlkKTtcbi8qKioqKiovIFx0XHRcdFx0fVxuLyoqKioqKi8gXHRcdFx0fVxuLyoqKioqKi8gXHRcdFx0aWYocnVudGltZSkgY3VycmVudFVwZGF0ZVJ1bnRpbWUucHVzaChydW50aW1lKTtcbi8qKioqKiovIFx0XHRcdGlmKHdhaXRpbmdVcGRhdGVSZXNvbHZlc1tjaHVua0lkXSkge1xuLyoqKioqKi8gXHRcdFx0XHR3YWl0aW5nVXBkYXRlUmVzb2x2ZXNbY2h1bmtJZF0oKTtcbi8qKioqKiovIFx0XHRcdFx0d2FpdGluZ1VwZGF0ZVJlc29sdmVzW2NodW5rSWRdID0gdW5kZWZpbmVkO1xuLyoqKioqKi8gXHRcdFx0fVxuLyoqKioqKi8gXHRcdH07XG4vKioqKioqLyBcdFx0XG4vKioqKioqLyBcdFx0dmFyIGN1cnJlbnRVcGRhdGVDaHVua3M7XG4vKioqKioqLyBcdFx0dmFyIGN1cnJlbnRVcGRhdGU7XG4vKioqKioqLyBcdFx0dmFyIGN1cnJlbnRVcGRhdGVSZW1vdmVkQ2h1bmtzO1xuLyoqKioqKi8gXHRcdHZhciBjdXJyZW50VXBkYXRlUnVudGltZTtcbi8qKioqKiovIFx0XHRmdW5jdGlvbiBhcHBseUhhbmRsZXIob3B0aW9ucykge1xuLyoqKioqKi8gXHRcdFx0aWYgKF9fd2VicGFja19yZXF1aXJlX18uZikgZGVsZXRlIF9fd2VicGFja19yZXF1aXJlX18uZi5qc29ucEhtcjtcbi8qKioqKiovIFx0XHRcdGN1cnJlbnRVcGRhdGVDaHVua3MgPSB1bmRlZmluZWQ7XG4vKioqKioqLyBcdFx0XHRmdW5jdGlvbiBnZXRBZmZlY3RlZE1vZHVsZUVmZmVjdHModXBkYXRlTW9kdWxlSWQpIHtcbi8qKioqKiovIFx0XHRcdFx0dmFyIG91dGRhdGVkTW9kdWxlcyA9IFt1cGRhdGVNb2R1bGVJZF07XG4vKioqKioqLyBcdFx0XHRcdHZhciBvdXRkYXRlZERlcGVuZGVuY2llcyA9IHt9O1xuLyoqKioqKi8gXHRcdFxuLyoqKioqKi8gXHRcdFx0XHR2YXIgcXVldWUgPSBvdXRkYXRlZE1vZHVsZXMubWFwKGZ1bmN0aW9uIChpZCkge1xuLyoqKioqKi8gXHRcdFx0XHRcdHJldHVybiB7XG4vKioqKioqLyBcdFx0XHRcdFx0XHRjaGFpbjogW2lkXSxcbi8qKioqKiovIFx0XHRcdFx0XHRcdGlkOiBpZFxuLyoqKioqKi8gXHRcdFx0XHRcdH07XG4vKioqKioqLyBcdFx0XHRcdH0pO1xuLyoqKioqKi8gXHRcdFx0XHR3aGlsZSAocXVldWUubGVuZ3RoID4gMCkge1xuLyoqKioqKi8gXHRcdFx0XHRcdHZhciBxdWV1ZUl0ZW0gPSBxdWV1ZS5wb3AoKTtcbi8qKioqKiovIFx0XHRcdFx0XHR2YXIgbW9kdWxlSWQgPSBxdWV1ZUl0ZW0uaWQ7XG4vKioqKioqLyBcdFx0XHRcdFx0dmFyIGNoYWluID0gcXVldWVJdGVtLmNoYWluO1xuLyoqKioqKi8gXHRcdFx0XHRcdHZhciBtb2R1bGUgPSBfX3dlYnBhY2tfcmVxdWlyZV9fLmNbbW9kdWxlSWRdO1xuLyoqKioqKi8gXHRcdFx0XHRcdGlmIChcbi8qKioqKiovIFx0XHRcdFx0XHRcdCFtb2R1bGUgfHxcbi8qKioqKiovIFx0XHRcdFx0XHRcdChtb2R1bGUuaG90Ll9zZWxmQWNjZXB0ZWQgJiYgIW1vZHVsZS5ob3QuX3NlbGZJbnZhbGlkYXRlZClcbi8qKioqKiovIFx0XHRcdFx0XHQpXG4vKioqKioqLyBcdFx0XHRcdFx0XHRjb250aW51ZTtcbi8qKioqKiovIFx0XHRcdFx0XHRpZiAobW9kdWxlLmhvdC5fc2VsZkRlY2xpbmVkKSB7XG4vKioqKioqLyBcdFx0XHRcdFx0XHRyZXR1cm4ge1xuLyoqKioqKi8gXHRcdFx0XHRcdFx0XHR0eXBlOiBcInNlbGYtZGVjbGluZWRcIixcbi8qKioqKiovIFx0XHRcdFx0XHRcdFx0Y2hhaW46IGNoYWluLFxuLyoqKioqKi8gXHRcdFx0XHRcdFx0XHRtb2R1bGVJZDogbW9kdWxlSWRcbi8qKioqKiovIFx0XHRcdFx0XHRcdH07XG4vKioqKioqLyBcdFx0XHRcdFx0fVxuLyoqKioqKi8gXHRcdFx0XHRcdGlmIChtb2R1bGUuaG90Ll9tYWluKSB7XG4vKioqKioqLyBcdFx0XHRcdFx0XHRyZXR1cm4ge1xuLyoqKioqKi8gXHRcdFx0XHRcdFx0XHR0eXBlOiBcInVuYWNjZXB0ZWRcIixcbi8qKioqKiovIFx0XHRcdFx0XHRcdFx0Y2hhaW46IGNoYWluLFxuLyoqKioqKi8gXHRcdFx0XHRcdFx0XHRtb2R1bGVJZDogbW9kdWxlSWRcbi8qKioqKiovIFx0XHRcdFx0XHRcdH07XG4vKioqKioqLyBcdFx0XHRcdFx0fVxuLyoqKioqKi8gXHRcdFx0XHRcdGZvciAodmFyIGkgPSAwOyBpIDwgbW9kdWxlLnBhcmVudHMubGVuZ3RoOyBpKyspIHtcbi8qKioqKiovIFx0XHRcdFx0XHRcdHZhciBwYXJlbnRJZCA9IG1vZHVsZS5wYXJlbnRzW2ldO1xuLyoqKioqKi8gXHRcdFx0XHRcdFx0dmFyIHBhcmVudCA9IF9fd2VicGFja19yZXF1aXJlX18uY1twYXJlbnRJZF07XG4vKioqKioqLyBcdFx0XHRcdFx0XHRpZiAoIXBhcmVudCkgY29udGludWU7XG4vKioqKioqLyBcdFx0XHRcdFx0XHRpZiAocGFyZW50LmhvdC5fZGVjbGluZWREZXBlbmRlbmNpZXNbbW9kdWxlSWRdKSB7XG4vKioqKioqLyBcdFx0XHRcdFx0XHRcdHJldHVybiB7XG4vKioqKioqLyBcdFx0XHRcdFx0XHRcdFx0dHlwZTogXCJkZWNsaW5lZFwiLFxuLyoqKioqKi8gXHRcdFx0XHRcdFx0XHRcdGNoYWluOiBjaGFpbi5jb25jYXQoW3BhcmVudElkXSksXG4vKioqKioqLyBcdFx0XHRcdFx0XHRcdFx0bW9kdWxlSWQ6IG1vZHVsZUlkLFxuLyoqKioqKi8gXHRcdFx0XHRcdFx0XHRcdHBhcmVudElkOiBwYXJlbnRJZFxuLyoqKioqKi8gXHRcdFx0XHRcdFx0XHR9O1xuLyoqKioqKi8gXHRcdFx0XHRcdFx0fVxuLyoqKioqKi8gXHRcdFx0XHRcdFx0aWYgKG91dGRhdGVkTW9kdWxlcy5pbmRleE9mKHBhcmVudElkKSAhPT0gLTEpIGNvbnRpbnVlO1xuLyoqKioqKi8gXHRcdFx0XHRcdFx0aWYgKHBhcmVudC5ob3QuX2FjY2VwdGVkRGVwZW5kZW5jaWVzW21vZHVsZUlkXSkge1xuLyoqKioqKi8gXHRcdFx0XHRcdFx0XHRpZiAoIW91dGRhdGVkRGVwZW5kZW5jaWVzW3BhcmVudElkXSlcbi8qKioqKiovIFx0XHRcdFx0XHRcdFx0XHRvdXRkYXRlZERlcGVuZGVuY2llc1twYXJlbnRJZF0gPSBbXTtcbi8qKioqKiovIFx0XHRcdFx0XHRcdFx0YWRkQWxsVG9TZXQob3V0ZGF0ZWREZXBlbmRlbmNpZXNbcGFyZW50SWRdLCBbbW9kdWxlSWRdKTtcbi8qKioqKiovIFx0XHRcdFx0XHRcdFx0Y29udGludWU7XG4vKioqKioqLyBcdFx0XHRcdFx0XHR9XG4vKioqKioqLyBcdFx0XHRcdFx0XHRkZWxldGUgb3V0ZGF0ZWREZXBlbmRlbmNpZXNbcGFyZW50SWRdO1xuLyoqKioqKi8gXHRcdFx0XHRcdFx0b3V0ZGF0ZWRNb2R1bGVzLnB1c2gocGFyZW50SWQpO1xuLyoqKioqKi8gXHRcdFx0XHRcdFx0cXVldWUucHVzaCh7XG4vKioqKioqLyBcdFx0XHRcdFx0XHRcdGNoYWluOiBjaGFpbi5jb25jYXQoW3BhcmVudElkXSksXG4vKioqKioqLyBcdFx0XHRcdFx0XHRcdGlkOiBwYXJlbnRJZFxuLyoqKioqKi8gXHRcdFx0XHRcdFx0fSk7XG4vKioqKioqLyBcdFx0XHRcdFx0fVxuLyoqKioqKi8gXHRcdFx0XHR9XG4vKioqKioqLyBcdFx0XG4vKioqKioqLyBcdFx0XHRcdHJldHVybiB7XG4vKioqKioqLyBcdFx0XHRcdFx0dHlwZTogXCJhY2NlcHRlZFwiLFxuLyoqKioqKi8gXHRcdFx0XHRcdG1vZHVsZUlkOiB1cGRhdGVNb2R1bGVJZCxcbi8qKioqKiovIFx0XHRcdFx0XHRvdXRkYXRlZE1vZHVsZXM6IG91dGRhdGVkTW9kdWxlcyxcbi8qKioqKiovIFx0XHRcdFx0XHRvdXRkYXRlZERlcGVuZGVuY2llczogb3V0ZGF0ZWREZXBlbmRlbmNpZXNcbi8qKioqKiovIFx0XHRcdFx0fTtcbi8qKioqKiovIFx0XHRcdH1cbi8qKioqKiovIFx0XHRcbi8qKioqKiovIFx0XHRcdGZ1bmN0aW9uIGFkZEFsbFRvU2V0KGEsIGIpIHtcbi8qKioqKiovIFx0XHRcdFx0Zm9yICh2YXIgaSA9IDA7IGkgPCBiLmxlbmd0aDsgaSsrKSB7XG4vKioqKioqLyBcdFx0XHRcdFx0dmFyIGl0ZW0gPSBiW2ldO1xuLyoqKioqKi8gXHRcdFx0XHRcdGlmIChhLmluZGV4T2YoaXRlbSkgPT09IC0xKSBhLnB1c2goaXRlbSk7XG4vKioqKioqLyBcdFx0XHRcdH1cbi8qKioqKiovIFx0XHRcdH1cbi8qKioqKiovIFx0XHRcbi8qKioqKiovIFx0XHRcdC8vIGF0IGJlZ2luIGFsbCB1cGRhdGVzIG1vZHVsZXMgYXJlIG91dGRhdGVkXG4vKioqKioqLyBcdFx0XHQvLyB0aGUgXCJvdXRkYXRlZFwiIHN0YXR1cyBjYW4gcHJvcGFnYXRlIHRvIHBhcmVudHMgaWYgdGhleSBkb24ndCBhY2NlcHQgdGhlIGNoaWxkcmVuXG4vKioqKioqLyBcdFx0XHR2YXIgb3V0ZGF0ZWREZXBlbmRlbmNpZXMgPSB7fTtcbi8qKioqKiovIFx0XHRcdHZhciBvdXRkYXRlZE1vZHVsZXMgPSBbXTtcbi8qKioqKiovIFx0XHRcdHZhciBhcHBsaWVkVXBkYXRlID0ge307XG4vKioqKioqLyBcdFx0XG4vKioqKioqLyBcdFx0XHR2YXIgd2FyblVuZXhwZWN0ZWRSZXF1aXJlID0gZnVuY3Rpb24gd2FyblVuZXhwZWN0ZWRSZXF1aXJlKG1vZHVsZSkge1xuLyoqKioqKi8gXHRcdFx0XHRjb25zb2xlLndhcm4oXG4vKioqKioqLyBcdFx0XHRcdFx0XCJbSE1SXSB1bmV4cGVjdGVkIHJlcXVpcmUoXCIgKyBtb2R1bGUuaWQgKyBcIikgdG8gZGlzcG9zZWQgbW9kdWxlXCJcbi8qKioqKiovIFx0XHRcdFx0KTtcbi8qKioqKiovIFx0XHRcdH07XG4vKioqKioqLyBcdFx0XG4vKioqKioqLyBcdFx0XHRmb3IgKHZhciBtb2R1bGVJZCBpbiBjdXJyZW50VXBkYXRlKSB7XG4vKioqKioqLyBcdFx0XHRcdGlmIChfX3dlYnBhY2tfcmVxdWlyZV9fLm8oY3VycmVudFVwZGF0ZSwgbW9kdWxlSWQpKSB7XG4vKioqKioqLyBcdFx0XHRcdFx0dmFyIG5ld01vZHVsZUZhY3RvcnkgPSBjdXJyZW50VXBkYXRlW21vZHVsZUlkXTtcbi8qKioqKiovIFx0XHRcdFx0XHQvKiogQHR5cGUge1RPRE99ICovXG4vKioqKioqLyBcdFx0XHRcdFx0dmFyIHJlc3VsdCA9IG5ld01vZHVsZUZhY3Rvcnlcbi8qKioqKiovIFx0XHRcdFx0XHRcdD8gZ2V0QWZmZWN0ZWRNb2R1bGVFZmZlY3RzKG1vZHVsZUlkKVxuLyoqKioqKi8gXHRcdFx0XHRcdFx0OiB7XG4vKioqKioqLyBcdFx0XHRcdFx0XHRcdFx0dHlwZTogXCJkaXNwb3NlZFwiLFxuLyoqKioqKi8gXHRcdFx0XHRcdFx0XHRcdG1vZHVsZUlkOiBtb2R1bGVJZFxuLyoqKioqKi8gXHRcdFx0XHRcdFx0XHR9O1xuLyoqKioqKi8gXHRcdFx0XHRcdC8qKiBAdHlwZSB7RXJyb3J8ZmFsc2V9ICovXG4vKioqKioqLyBcdFx0XHRcdFx0dmFyIGFib3J0RXJyb3IgPSBmYWxzZTtcbi8qKioqKiovIFx0XHRcdFx0XHR2YXIgZG9BcHBseSA9IGZhbHNlO1xuLyoqKioqKi8gXHRcdFx0XHRcdHZhciBkb0Rpc3Bvc2UgPSBmYWxzZTtcbi8qKioqKiovIFx0XHRcdFx0XHR2YXIgY2hhaW5JbmZvID0gXCJcIjtcbi8qKioqKiovIFx0XHRcdFx0XHRpZiAocmVzdWx0LmNoYWluKSB7XG4vKioqKioqLyBcdFx0XHRcdFx0XHRjaGFpbkluZm8gPSBcIlxcblVwZGF0ZSBwcm9wYWdhdGlvbjogXCIgKyByZXN1bHQuY2hhaW4uam9pbihcIiAtPiBcIik7XG4vKioqKioqLyBcdFx0XHRcdFx0fVxuLyoqKioqKi8gXHRcdFx0XHRcdHN3aXRjaCAocmVzdWx0LnR5cGUpIHtcbi8qKioqKiovIFx0XHRcdFx0XHRcdGNhc2UgXCJzZWxmLWRlY2xpbmVkXCI6XG4vKioqKioqLyBcdFx0XHRcdFx0XHRcdGlmIChvcHRpb25zLm9uRGVjbGluZWQpIG9wdGlvbnMub25EZWNsaW5lZChyZXN1bHQpO1xuLyoqKioqKi8gXHRcdFx0XHRcdFx0XHRpZiAoIW9wdGlvbnMuaWdub3JlRGVjbGluZWQpXG4vKioqKioqLyBcdFx0XHRcdFx0XHRcdFx0YWJvcnRFcnJvciA9IG5ldyBFcnJvcihcbi8qKioqKiovIFx0XHRcdFx0XHRcdFx0XHRcdFwiQWJvcnRlZCBiZWNhdXNlIG9mIHNlbGYgZGVjbGluZTogXCIgK1xuLyoqKioqKi8gXHRcdFx0XHRcdFx0XHRcdFx0XHRyZXN1bHQubW9kdWxlSWQgK1xuLyoqKioqKi8gXHRcdFx0XHRcdFx0XHRcdFx0XHRjaGFpbkluZm9cbi8qKioqKiovIFx0XHRcdFx0XHRcdFx0XHQpO1xuLyoqKioqKi8gXHRcdFx0XHRcdFx0XHRicmVhaztcbi8qKioqKiovIFx0XHRcdFx0XHRcdGNhc2UgXCJkZWNsaW5lZFwiOlxuLyoqKioqKi8gXHRcdFx0XHRcdFx0XHRpZiAob3B0aW9ucy5vbkRlY2xpbmVkKSBvcHRpb25zLm9uRGVjbGluZWQocmVzdWx0KTtcbi8qKioqKiovIFx0XHRcdFx0XHRcdFx0aWYgKCFvcHRpb25zLmlnbm9yZURlY2xpbmVkKVxuLyoqKioqKi8gXHRcdFx0XHRcdFx0XHRcdGFib3J0RXJyb3IgPSBuZXcgRXJyb3IoXG4vKioqKioqLyBcdFx0XHRcdFx0XHRcdFx0XHRcIkFib3J0ZWQgYmVjYXVzZSBvZiBkZWNsaW5lZCBkZXBlbmRlbmN5OiBcIiArXG4vKioqKioqLyBcdFx0XHRcdFx0XHRcdFx0XHRcdHJlc3VsdC5tb2R1bGVJZCArXG4vKioqKioqLyBcdFx0XHRcdFx0XHRcdFx0XHRcdFwiIGluIFwiICtcbi8qKioqKiovIFx0XHRcdFx0XHRcdFx0XHRcdFx0cmVzdWx0LnBhcmVudElkICtcbi8qKioqKiovIFx0XHRcdFx0XHRcdFx0XHRcdFx0Y2hhaW5JbmZvXG4vKioqKioqLyBcdFx0XHRcdFx0XHRcdFx0KTtcbi8qKioqKiovIFx0XHRcdFx0XHRcdFx0YnJlYWs7XG4vKioqKioqLyBcdFx0XHRcdFx0XHRjYXNlIFwidW5hY2NlcHRlZFwiOlxuLyoqKioqKi8gXHRcdFx0XHRcdFx0XHRpZiAob3B0aW9ucy5vblVuYWNjZXB0ZWQpIG9wdGlvbnMub25VbmFjY2VwdGVkKHJlc3VsdCk7XG4vKioqKioqLyBcdFx0XHRcdFx0XHRcdGlmICghb3B0aW9ucy5pZ25vcmVVbmFjY2VwdGVkKVxuLyoqKioqKi8gXHRcdFx0XHRcdFx0XHRcdGFib3J0RXJyb3IgPSBuZXcgRXJyb3IoXG4vKioqKioqLyBcdFx0XHRcdFx0XHRcdFx0XHRcIkFib3J0ZWQgYmVjYXVzZSBcIiArIG1vZHVsZUlkICsgXCIgaXMgbm90IGFjY2VwdGVkXCIgKyBjaGFpbkluZm9cbi8qKioqKiovIFx0XHRcdFx0XHRcdFx0XHQpO1xuLyoqKioqKi8gXHRcdFx0XHRcdFx0XHRicmVhaztcbi8qKioqKiovIFx0XHRcdFx0XHRcdGNhc2UgXCJhY2NlcHRlZFwiOlxuLyoqKioqKi8gXHRcdFx0XHRcdFx0XHRpZiAob3B0aW9ucy5vbkFjY2VwdGVkKSBvcHRpb25zLm9uQWNjZXB0ZWQocmVzdWx0KTtcbi8qKioqKiovIFx0XHRcdFx0XHRcdFx0ZG9BcHBseSA9IHRydWU7XG4vKioqKioqLyBcdFx0XHRcdFx0XHRcdGJyZWFrO1xuLyoqKioqKi8gXHRcdFx0XHRcdFx0Y2FzZSBcImRpc3Bvc2VkXCI6XG4vKioqKioqLyBcdFx0XHRcdFx0XHRcdGlmIChvcHRpb25zLm9uRGlzcG9zZWQpIG9wdGlvbnMub25EaXNwb3NlZChyZXN1bHQpO1xuLyoqKioqKi8gXHRcdFx0XHRcdFx0XHRkb0Rpc3Bvc2UgPSB0cnVlO1xuLyoqKioqKi8gXHRcdFx0XHRcdFx0XHRicmVhaztcbi8qKioqKiovIFx0XHRcdFx0XHRcdGRlZmF1bHQ6XG4vKioqKioqLyBcdFx0XHRcdFx0XHRcdHRocm93IG5ldyBFcnJvcihcIlVuZXhjZXB0aW9uIHR5cGUgXCIgKyByZXN1bHQudHlwZSk7XG4vKioqKioqLyBcdFx0XHRcdFx0fVxuLyoqKioqKi8gXHRcdFx0XHRcdGlmIChhYm9ydEVycm9yKSB7XG4vKioqKioqLyBcdFx0XHRcdFx0XHRyZXR1cm4ge1xuLyoqKioqKi8gXHRcdFx0XHRcdFx0XHRlcnJvcjogYWJvcnRFcnJvclxuLyoqKioqKi8gXHRcdFx0XHRcdFx0fTtcbi8qKioqKiovIFx0XHRcdFx0XHR9XG4vKioqKioqLyBcdFx0XHRcdFx0aWYgKGRvQXBwbHkpIHtcbi8qKioqKiovIFx0XHRcdFx0XHRcdGFwcGxpZWRVcGRhdGVbbW9kdWxlSWRdID0gbmV3TW9kdWxlRmFjdG9yeTtcbi8qKioqKiovIFx0XHRcdFx0XHRcdGFkZEFsbFRvU2V0KG91dGRhdGVkTW9kdWxlcywgcmVzdWx0Lm91dGRhdGVkTW9kdWxlcyk7XG4vKioqKioqLyBcdFx0XHRcdFx0XHRmb3IgKG1vZHVsZUlkIGluIHJlc3VsdC5vdXRkYXRlZERlcGVuZGVuY2llcykge1xuLyoqKioqKi8gXHRcdFx0XHRcdFx0XHRpZiAoX193ZWJwYWNrX3JlcXVpcmVfXy5vKHJlc3VsdC5vdXRkYXRlZERlcGVuZGVuY2llcywgbW9kdWxlSWQpKSB7XG4vKioqKioqLyBcdFx0XHRcdFx0XHRcdFx0aWYgKCFvdXRkYXRlZERlcGVuZGVuY2llc1ttb2R1bGVJZF0pXG4vKioqKioqLyBcdFx0XHRcdFx0XHRcdFx0XHRvdXRkYXRlZERlcGVuZGVuY2llc1ttb2R1bGVJZF0gPSBbXTtcbi8qKioqKiovIFx0XHRcdFx0XHRcdFx0XHRhZGRBbGxUb1NldChcbi8qKioqKiovIFx0XHRcdFx0XHRcdFx0XHRcdG91dGRhdGVkRGVwZW5kZW5jaWVzW21vZHVsZUlkXSxcbi8qKioqKiovIFx0XHRcdFx0XHRcdFx0XHRcdHJlc3VsdC5vdXRkYXRlZERlcGVuZGVuY2llc1ttb2R1bGVJZF1cbi8qKioqKiovIFx0XHRcdFx0XHRcdFx0XHQpO1xuLyoqKioqKi8gXHRcdFx0XHRcdFx0XHR9XG4vKioqKioqLyBcdFx0XHRcdFx0XHR9XG4vKioqKioqLyBcdFx0XHRcdFx0fVxuLyoqKioqKi8gXHRcdFx0XHRcdGlmIChkb0Rpc3Bvc2UpIHtcbi8qKioqKiovIFx0XHRcdFx0XHRcdGFkZEFsbFRvU2V0KG91dGRhdGVkTW9kdWxlcywgW3Jlc3VsdC5tb2R1bGVJZF0pO1xuLyoqKioqKi8gXHRcdFx0XHRcdFx0YXBwbGllZFVwZGF0ZVttb2R1bGVJZF0gPSB3YXJuVW5leHBlY3RlZFJlcXVpcmU7XG4vKioqKioqLyBcdFx0XHRcdFx0fVxuLyoqKioqKi8gXHRcdFx0XHR9XG4vKioqKioqLyBcdFx0XHR9XG4vKioqKioqLyBcdFx0XHRjdXJyZW50VXBkYXRlID0gdW5kZWZpbmVkO1xuLyoqKioqKi8gXHRcdFxuLyoqKioqKi8gXHRcdFx0Ly8gU3RvcmUgc2VsZiBhY2NlcHRlZCBvdXRkYXRlZCBtb2R1bGVzIHRvIHJlcXVpcmUgdGhlbSBsYXRlciBieSB0aGUgbW9kdWxlIHN5c3RlbVxuLyoqKioqKi8gXHRcdFx0dmFyIG91dGRhdGVkU2VsZkFjY2VwdGVkTW9kdWxlcyA9IFtdO1xuLyoqKioqKi8gXHRcdFx0Zm9yICh2YXIgaiA9IDA7IGogPCBvdXRkYXRlZE1vZHVsZXMubGVuZ3RoOyBqKyspIHtcbi8qKioqKiovIFx0XHRcdFx0dmFyIG91dGRhdGVkTW9kdWxlSWQgPSBvdXRkYXRlZE1vZHVsZXNbal07XG4vKioqKioqLyBcdFx0XHRcdHZhciBtb2R1bGUgPSBfX3dlYnBhY2tfcmVxdWlyZV9fLmNbb3V0ZGF0ZWRNb2R1bGVJZF07XG4vKioqKioqLyBcdFx0XHRcdGlmIChcbi8qKioqKiovIFx0XHRcdFx0XHRtb2R1bGUgJiZcbi8qKioqKiovIFx0XHRcdFx0XHQobW9kdWxlLmhvdC5fc2VsZkFjY2VwdGVkIHx8IG1vZHVsZS5ob3QuX21haW4pICYmXG4vKioqKioqLyBcdFx0XHRcdFx0Ly8gcmVtb3ZlZCBzZWxmLWFjY2VwdGVkIG1vZHVsZXMgc2hvdWxkIG5vdCBiZSByZXF1aXJlZFxuLyoqKioqKi8gXHRcdFx0XHRcdGFwcGxpZWRVcGRhdGVbb3V0ZGF0ZWRNb2R1bGVJZF0gIT09IHdhcm5VbmV4cGVjdGVkUmVxdWlyZSAmJlxuLyoqKioqKi8gXHRcdFx0XHRcdC8vIHdoZW4gY2FsbGVkIGludmFsaWRhdGUgc2VsZi1hY2NlcHRpbmcgaXMgbm90IHBvc3NpYmxlXG4vKioqKioqLyBcdFx0XHRcdFx0IW1vZHVsZS5ob3QuX3NlbGZJbnZhbGlkYXRlZFxuLyoqKioqKi8gXHRcdFx0XHQpIHtcbi8qKioqKiovIFx0XHRcdFx0XHRvdXRkYXRlZFNlbGZBY2NlcHRlZE1vZHVsZXMucHVzaCh7XG4vKioqKioqLyBcdFx0XHRcdFx0XHRtb2R1bGU6IG91dGRhdGVkTW9kdWxlSWQsXG4vKioqKioqLyBcdFx0XHRcdFx0XHRyZXF1aXJlOiBtb2R1bGUuaG90Ll9yZXF1aXJlU2VsZixcbi8qKioqKiovIFx0XHRcdFx0XHRcdGVycm9ySGFuZGxlcjogbW9kdWxlLmhvdC5fc2VsZkFjY2VwdGVkXG4vKioqKioqLyBcdFx0XHRcdFx0fSk7XG4vKioqKioqLyBcdFx0XHRcdH1cbi8qKioqKiovIFx0XHRcdH1cbi8qKioqKiovIFx0XHRcbi8qKioqKiovIFx0XHRcdHZhciBtb2R1bGVPdXRkYXRlZERlcGVuZGVuY2llcztcbi8qKioqKiovIFx0XHRcbi8qKioqKiovIFx0XHRcdHJldHVybiB7XG4vKioqKioqLyBcdFx0XHRcdGRpc3Bvc2U6IGZ1bmN0aW9uICgpIHtcbi8qKioqKiovIFx0XHRcdFx0XHRjdXJyZW50VXBkYXRlUmVtb3ZlZENodW5rcy5mb3JFYWNoKGZ1bmN0aW9uIChjaHVua0lkKSB7XG4vKioqKioqLyBcdFx0XHRcdFx0XHRkZWxldGUgaW5zdGFsbGVkQ2h1bmtzW2NodW5rSWRdO1xuLyoqKioqKi8gXHRcdFx0XHRcdH0pO1xuLyoqKioqKi8gXHRcdFx0XHRcdGN1cnJlbnRVcGRhdGVSZW1vdmVkQ2h1bmtzID0gdW5kZWZpbmVkO1xuLyoqKioqKi8gXHRcdFxuLyoqKioqKi8gXHRcdFx0XHRcdHZhciBpZHg7XG4vKioqKioqLyBcdFx0XHRcdFx0dmFyIHF1ZXVlID0gb3V0ZGF0ZWRNb2R1bGVzLnNsaWNlKCk7XG4vKioqKioqLyBcdFx0XHRcdFx0d2hpbGUgKHF1ZXVlLmxlbmd0aCA+IDApIHtcbi8qKioqKiovIFx0XHRcdFx0XHRcdHZhciBtb2R1bGVJZCA9IHF1ZXVlLnBvcCgpO1xuLyoqKioqKi8gXHRcdFx0XHRcdFx0dmFyIG1vZHVsZSA9IF9fd2VicGFja19yZXF1aXJlX18uY1ttb2R1bGVJZF07XG4vKioqKioqLyBcdFx0XHRcdFx0XHRpZiAoIW1vZHVsZSkgY29udGludWU7XG4vKioqKioqLyBcdFx0XG4vKioqKioqLyBcdFx0XHRcdFx0XHR2YXIgZGF0YSA9IHt9O1xuLyoqKioqKi8gXHRcdFxuLyoqKioqKi8gXHRcdFx0XHRcdFx0Ly8gQ2FsbCBkaXNwb3NlIGhhbmRsZXJzXG4vKioqKioqLyBcdFx0XHRcdFx0XHR2YXIgZGlzcG9zZUhhbmRsZXJzID0gbW9kdWxlLmhvdC5fZGlzcG9zZUhhbmRsZXJzO1xuLyoqKioqKi8gXHRcdFx0XHRcdFx0Zm9yIChqID0gMDsgaiA8IGRpc3Bvc2VIYW5kbGVycy5sZW5ndGg7IGorKykge1xuLyoqKioqKi8gXHRcdFx0XHRcdFx0XHRkaXNwb3NlSGFuZGxlcnNbal0uY2FsbChudWxsLCBkYXRhKTtcbi8qKioqKiovIFx0XHRcdFx0XHRcdH1cbi8qKioqKiovIFx0XHRcdFx0XHRcdF9fd2VicGFja19yZXF1aXJlX18uaG1yRFttb2R1bGVJZF0gPSBkYXRhO1xuLyoqKioqKi8gXHRcdFxuLyoqKioqKi8gXHRcdFx0XHRcdFx0Ly8gZGlzYWJsZSBtb2R1bGUgKHRoaXMgZGlzYWJsZXMgcmVxdWlyZXMgZnJvbSB0aGlzIG1vZHVsZSlcbi8qKioqKiovIFx0XHRcdFx0XHRcdG1vZHVsZS5ob3QuYWN0aXZlID0gZmFsc2U7XG4vKioqKioqLyBcdFx0XG4vKioqKioqLyBcdFx0XHRcdFx0XHQvLyByZW1vdmUgbW9kdWxlIGZyb20gY2FjaGVcbi8qKioqKiovIFx0XHRcdFx0XHRcdGRlbGV0ZSBfX3dlYnBhY2tfcmVxdWlyZV9fLmNbbW9kdWxlSWRdO1xuLyoqKioqKi8gXHRcdFxuLyoqKioqKi8gXHRcdFx0XHRcdFx0Ly8gd2hlbiBkaXNwb3NpbmcgdGhlcmUgaXMgbm8gbmVlZCB0byBjYWxsIGRpc3Bvc2UgaGFuZGxlclxuLyoqKioqKi8gXHRcdFx0XHRcdFx0ZGVsZXRlIG91dGRhdGVkRGVwZW5kZW5jaWVzW21vZHVsZUlkXTtcbi8qKioqKiovIFx0XHRcbi8qKioqKiovIFx0XHRcdFx0XHRcdC8vIHJlbW92ZSBcInBhcmVudHNcIiByZWZlcmVuY2VzIGZyb20gYWxsIGNoaWxkcmVuXG4vKioqKioqLyBcdFx0XHRcdFx0XHRmb3IgKGogPSAwOyBqIDwgbW9kdWxlLmNoaWxkcmVuLmxlbmd0aDsgaisrKSB7XG4vKioqKioqLyBcdFx0XHRcdFx0XHRcdHZhciBjaGlsZCA9IF9fd2VicGFja19yZXF1aXJlX18uY1ttb2R1bGUuY2hpbGRyZW5bal1dO1xuLyoqKioqKi8gXHRcdFx0XHRcdFx0XHRpZiAoIWNoaWxkKSBjb250aW51ZTtcbi8qKioqKiovIFx0XHRcdFx0XHRcdFx0aWR4ID0gY2hpbGQucGFyZW50cy5pbmRleE9mKG1vZHVsZUlkKTtcbi8qKioqKiovIFx0XHRcdFx0XHRcdFx0aWYgKGlkeCA+PSAwKSB7XG4vKioqKioqLyBcdFx0XHRcdFx0XHRcdFx0Y2hpbGQucGFyZW50cy5zcGxpY2UoaWR4LCAxKTtcbi8qKioqKiovIFx0XHRcdFx0XHRcdFx0fVxuLyoqKioqKi8gXHRcdFx0XHRcdFx0fVxuLyoqKioqKi8gXHRcdFx0XHRcdH1cbi8qKioqKiovIFx0XHRcbi8qKioqKiovIFx0XHRcdFx0XHQvLyByZW1vdmUgb3V0ZGF0ZWQgZGVwZW5kZW5jeSBmcm9tIG1vZHVsZSBjaGlsZHJlblxuLyoqKioqKi8gXHRcdFx0XHRcdHZhciBkZXBlbmRlbmN5O1xuLyoqKioqKi8gXHRcdFx0XHRcdGZvciAodmFyIG91dGRhdGVkTW9kdWxlSWQgaW4gb3V0ZGF0ZWREZXBlbmRlbmNpZXMpIHtcbi8qKioqKiovIFx0XHRcdFx0XHRcdGlmIChfX3dlYnBhY2tfcmVxdWlyZV9fLm8ob3V0ZGF0ZWREZXBlbmRlbmNpZXMsIG91dGRhdGVkTW9kdWxlSWQpKSB7XG4vKioqKioqLyBcdFx0XHRcdFx0XHRcdG1vZHVsZSA9IF9fd2VicGFja19yZXF1aXJlX18uY1tvdXRkYXRlZE1vZHVsZUlkXTtcbi8qKioqKiovIFx0XHRcdFx0XHRcdFx0aWYgKG1vZHVsZSkge1xuLyoqKioqKi8gXHRcdFx0XHRcdFx0XHRcdG1vZHVsZU91dGRhdGVkRGVwZW5kZW5jaWVzID1cbi8qKioqKiovIFx0XHRcdFx0XHRcdFx0XHRcdG91dGRhdGVkRGVwZW5kZW5jaWVzW291dGRhdGVkTW9kdWxlSWRdO1xuLyoqKioqKi8gXHRcdFx0XHRcdFx0XHRcdGZvciAoaiA9IDA7IGogPCBtb2R1bGVPdXRkYXRlZERlcGVuZGVuY2llcy5sZW5ndGg7IGorKykge1xuLyoqKioqKi8gXHRcdFx0XHRcdFx0XHRcdFx0ZGVwZW5kZW5jeSA9IG1vZHVsZU91dGRhdGVkRGVwZW5kZW5jaWVzW2pdO1xuLyoqKioqKi8gXHRcdFx0XHRcdFx0XHRcdFx0aWR4ID0gbW9kdWxlLmNoaWxkcmVuLmluZGV4T2YoZGVwZW5kZW5jeSk7XG4vKioqKioqLyBcdFx0XHRcdFx0XHRcdFx0XHRpZiAoaWR4ID49IDApIG1vZHVsZS5jaGlsZHJlbi5zcGxpY2UoaWR4LCAxKTtcbi8qKioqKiovIFx0XHRcdFx0XHRcdFx0XHR9XG4vKioqKioqLyBcdFx0XHRcdFx0XHRcdH1cbi8qKioqKiovIFx0XHRcdFx0XHRcdH1cbi8qKioqKiovIFx0XHRcdFx0XHR9XG4vKioqKioqLyBcdFx0XHRcdH0sXG4vKioqKioqLyBcdFx0XHRcdGFwcGx5OiBmdW5jdGlvbiAocmVwb3J0RXJyb3IpIHtcbi8qKioqKiovIFx0XHRcdFx0XHQvLyBpbnNlcnQgbmV3IGNvZGVcbi8qKioqKiovIFx0XHRcdFx0XHRmb3IgKHZhciB1cGRhdGVNb2R1bGVJZCBpbiBhcHBsaWVkVXBkYXRlKSB7XG4vKioqKioqLyBcdFx0XHRcdFx0XHRpZiAoX193ZWJwYWNrX3JlcXVpcmVfXy5vKGFwcGxpZWRVcGRhdGUsIHVwZGF0ZU1vZHVsZUlkKSkge1xuLyoqKioqKi8gXHRcdFx0XHRcdFx0XHRfX3dlYnBhY2tfcmVxdWlyZV9fLm1bdXBkYXRlTW9kdWxlSWRdID0gYXBwbGllZFVwZGF0ZVt1cGRhdGVNb2R1bGVJZF07XG4vKioqKioqLyBcdFx0XHRcdFx0XHR9XG4vKioqKioqLyBcdFx0XHRcdFx0fVxuLyoqKioqKi8gXHRcdFxuLyoqKioqKi8gXHRcdFx0XHRcdC8vIHJ1biBuZXcgcnVudGltZSBtb2R1bGVzXG4vKioqKioqLyBcdFx0XHRcdFx0Zm9yICh2YXIgaSA9IDA7IGkgPCBjdXJyZW50VXBkYXRlUnVudGltZS5sZW5ndGg7IGkrKykge1xuLyoqKioqKi8gXHRcdFx0XHRcdFx0Y3VycmVudFVwZGF0ZVJ1bnRpbWVbaV0oX193ZWJwYWNrX3JlcXVpcmVfXyk7XG4vKioqKioqLyBcdFx0XHRcdFx0fVxuLyoqKioqKi8gXHRcdFxuLyoqKioqKi8gXHRcdFx0XHRcdC8vIGNhbGwgYWNjZXB0IGhhbmRsZXJzXG4vKioqKioqLyBcdFx0XHRcdFx0Zm9yICh2YXIgb3V0ZGF0ZWRNb2R1bGVJZCBpbiBvdXRkYXRlZERlcGVuZGVuY2llcykge1xuLyoqKioqKi8gXHRcdFx0XHRcdFx0aWYgKF9fd2VicGFja19yZXF1aXJlX18ubyhvdXRkYXRlZERlcGVuZGVuY2llcywgb3V0ZGF0ZWRNb2R1bGVJZCkpIHtcbi8qKioqKiovIFx0XHRcdFx0XHRcdFx0dmFyIG1vZHVsZSA9IF9fd2VicGFja19yZXF1aXJlX18uY1tvdXRkYXRlZE1vZHVsZUlkXTtcbi8qKioqKiovIFx0XHRcdFx0XHRcdFx0aWYgKG1vZHVsZSkge1xuLyoqKioqKi8gXHRcdFx0XHRcdFx0XHRcdG1vZHVsZU91dGRhdGVkRGVwZW5kZW5jaWVzID1cbi8qKioqKiovIFx0XHRcdFx0XHRcdFx0XHRcdG91dGRhdGVkRGVwZW5kZW5jaWVzW291dGRhdGVkTW9kdWxlSWRdO1xuLyoqKioqKi8gXHRcdFx0XHRcdFx0XHRcdHZhciBjYWxsYmFja3MgPSBbXTtcbi8qKioqKiovIFx0XHRcdFx0XHRcdFx0XHR2YXIgZXJyb3JIYW5kbGVycyA9IFtdO1xuLyoqKioqKi8gXHRcdFx0XHRcdFx0XHRcdHZhciBkZXBlbmRlbmNpZXNGb3JDYWxsYmFja3MgPSBbXTtcbi8qKioqKiovIFx0XHRcdFx0XHRcdFx0XHRmb3IgKHZhciBqID0gMDsgaiA8IG1vZHVsZU91dGRhdGVkRGVwZW5kZW5jaWVzLmxlbmd0aDsgaisrKSB7XG4vKioqKioqLyBcdFx0XHRcdFx0XHRcdFx0XHR2YXIgZGVwZW5kZW5jeSA9IG1vZHVsZU91dGRhdGVkRGVwZW5kZW5jaWVzW2pdO1xuLyoqKioqKi8gXHRcdFx0XHRcdFx0XHRcdFx0dmFyIGFjY2VwdENhbGxiYWNrID1cbi8qKioqKiovIFx0XHRcdFx0XHRcdFx0XHRcdFx0bW9kdWxlLmhvdC5fYWNjZXB0ZWREZXBlbmRlbmNpZXNbZGVwZW5kZW5jeV07XG4vKioqKioqLyBcdFx0XHRcdFx0XHRcdFx0XHR2YXIgZXJyb3JIYW5kbGVyID1cbi8qKioqKiovIFx0XHRcdFx0XHRcdFx0XHRcdFx0bW9kdWxlLmhvdC5fYWNjZXB0ZWRFcnJvckhhbmRsZXJzW2RlcGVuZGVuY3ldO1xuLyoqKioqKi8gXHRcdFx0XHRcdFx0XHRcdFx0aWYgKGFjY2VwdENhbGxiYWNrKSB7XG4vKioqKioqLyBcdFx0XHRcdFx0XHRcdFx0XHRcdGlmIChjYWxsYmFja3MuaW5kZXhPZihhY2NlcHRDYWxsYmFjaykgIT09IC0xKSBjb250aW51ZTtcbi8qKioqKiovIFx0XHRcdFx0XHRcdFx0XHRcdFx0Y2FsbGJhY2tzLnB1c2goYWNjZXB0Q2FsbGJhY2spO1xuLyoqKioqKi8gXHRcdFx0XHRcdFx0XHRcdFx0XHRlcnJvckhhbmRsZXJzLnB1c2goZXJyb3JIYW5kbGVyKTtcbi8qKioqKiovIFx0XHRcdFx0XHRcdFx0XHRcdFx0ZGVwZW5kZW5jaWVzRm9yQ2FsbGJhY2tzLnB1c2goZGVwZW5kZW5jeSk7XG4vKioqKioqLyBcdFx0XHRcdFx0XHRcdFx0XHR9XG4vKioqKioqLyBcdFx0XHRcdFx0XHRcdFx0fVxuLyoqKioqKi8gXHRcdFx0XHRcdFx0XHRcdGZvciAodmFyIGsgPSAwOyBrIDwgY2FsbGJhY2tzLmxlbmd0aDsgaysrKSB7XG4vKioqKioqLyBcdFx0XHRcdFx0XHRcdFx0XHR0cnkge1xuLyoqKioqKi8gXHRcdFx0XHRcdFx0XHRcdFx0XHRjYWxsYmFja3Nba10uY2FsbChudWxsLCBtb2R1bGVPdXRkYXRlZERlcGVuZGVuY2llcyk7XG4vKioqKioqLyBcdFx0XHRcdFx0XHRcdFx0XHR9IGNhdGNoIChlcnIpIHtcbi8qKioqKiovIFx0XHRcdFx0XHRcdFx0XHRcdFx0aWYgKHR5cGVvZiBlcnJvckhhbmRsZXJzW2tdID09PSBcImZ1bmN0aW9uXCIpIHtcbi8qKioqKiovIFx0XHRcdFx0XHRcdFx0XHRcdFx0XHR0cnkge1xuLyoqKioqKi8gXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0ZXJyb3JIYW5kbGVyc1trXShlcnIsIHtcbi8qKioqKiovIFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0bW9kdWxlSWQ6IG91dGRhdGVkTW9kdWxlSWQsXG4vKioqKioqLyBcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdGRlcGVuZGVuY3lJZDogZGVwZW5kZW5jaWVzRm9yQ2FsbGJhY2tzW2tdXG4vKioqKioqLyBcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHR9KTtcbi8qKioqKiovIFx0XHRcdFx0XHRcdFx0XHRcdFx0XHR9IGNhdGNoIChlcnIyKSB7XG4vKioqKioqLyBcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRpZiAob3B0aW9ucy5vbkVycm9yZWQpIHtcbi8qKioqKiovIFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0b3B0aW9ucy5vbkVycm9yZWQoe1xuLyoqKioqKi8gXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdHR5cGU6IFwiYWNjZXB0LWVycm9yLWhhbmRsZXItZXJyb3JlZFwiLFxuLyoqKioqKi8gXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdG1vZHVsZUlkOiBvdXRkYXRlZE1vZHVsZUlkLFxuLyoqKioqKi8gXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdGRlcGVuZGVuY3lJZDogZGVwZW5kZW5jaWVzRm9yQ2FsbGJhY2tzW2tdLFxuLyoqKioqKi8gXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdGVycm9yOiBlcnIyLFxuLyoqKioqKi8gXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdG9yaWdpbmFsRXJyb3I6IGVyclxuLyoqKioqKi8gXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHR9KTtcbi8qKioqKiovIFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdH1cbi8qKioqKiovIFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdGlmICghb3B0aW9ucy5pZ25vcmVFcnJvcmVkKSB7XG4vKioqKioqLyBcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdHJlcG9ydEVycm9yKGVycjIpO1xuLyoqKioqKi8gXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRyZXBvcnRFcnJvcihlcnIpO1xuLyoqKioqKi8gXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0fVxuLyoqKioqKi8gXHRcdFx0XHRcdFx0XHRcdFx0XHRcdH1cbi8qKioqKiovIFx0XHRcdFx0XHRcdFx0XHRcdFx0fSBlbHNlIHtcbi8qKioqKiovIFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRpZiAob3B0aW9ucy5vbkVycm9yZWQpIHtcbi8qKioqKiovIFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdG9wdGlvbnMub25FcnJvcmVkKHtcbi8qKioqKiovIFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0dHlwZTogXCJhY2NlcHQtZXJyb3JlZFwiLFxuLyoqKioqKi8gXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRtb2R1bGVJZDogb3V0ZGF0ZWRNb2R1bGVJZCxcbi8qKioqKiovIFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0ZGVwZW5kZW5jeUlkOiBkZXBlbmRlbmNpZXNGb3JDYWxsYmFja3Nba10sXG4vKioqKioqLyBcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdGVycm9yOiBlcnJcbi8qKioqKiovIFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdH0pO1xuLyoqKioqKi8gXHRcdFx0XHRcdFx0XHRcdFx0XHRcdH1cbi8qKioqKiovIFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRpZiAoIW9wdGlvbnMuaWdub3JlRXJyb3JlZCkge1xuLyoqKioqKi8gXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0cmVwb3J0RXJyb3IoZXJyKTtcbi8qKioqKiovIFx0XHRcdFx0XHRcdFx0XHRcdFx0XHR9XG4vKioqKioqLyBcdFx0XHRcdFx0XHRcdFx0XHRcdH1cbi8qKioqKiovIFx0XHRcdFx0XHRcdFx0XHRcdH1cbi8qKioqKiovIFx0XHRcdFx0XHRcdFx0XHR9XG4vKioqKioqLyBcdFx0XHRcdFx0XHRcdH1cbi8qKioqKiovIFx0XHRcdFx0XHRcdH1cbi8qKioqKiovIFx0XHRcdFx0XHR9XG4vKioqKioqLyBcdFx0XG4vKioqKioqLyBcdFx0XHRcdFx0Ly8gTG9hZCBzZWxmIGFjY2VwdGVkIG1vZHVsZXNcbi8qKioqKiovIFx0XHRcdFx0XHRmb3IgKHZhciBvID0gMDsgbyA8IG91dGRhdGVkU2VsZkFjY2VwdGVkTW9kdWxlcy5sZW5ndGg7IG8rKykge1xuLyoqKioqKi8gXHRcdFx0XHRcdFx0dmFyIGl0ZW0gPSBvdXRkYXRlZFNlbGZBY2NlcHRlZE1vZHVsZXNbb107XG4vKioqKioqLyBcdFx0XHRcdFx0XHR2YXIgbW9kdWxlSWQgPSBpdGVtLm1vZHVsZTtcbi8qKioqKiovIFx0XHRcdFx0XHRcdHRyeSB7XG4vKioqKioqLyBcdFx0XHRcdFx0XHRcdGl0ZW0ucmVxdWlyZShtb2R1bGVJZCk7XG4vKioqKioqLyBcdFx0XHRcdFx0XHR9IGNhdGNoIChlcnIpIHtcbi8qKioqKiovIFx0XHRcdFx0XHRcdFx0aWYgKHR5cGVvZiBpdGVtLmVycm9ySGFuZGxlciA9PT0gXCJmdW5jdGlvblwiKSB7XG4vKioqKioqLyBcdFx0XHRcdFx0XHRcdFx0dHJ5IHtcbi8qKioqKiovIFx0XHRcdFx0XHRcdFx0XHRcdGl0ZW0uZXJyb3JIYW5kbGVyKGVyciwge1xuLyoqKioqKi8gXHRcdFx0XHRcdFx0XHRcdFx0XHRtb2R1bGVJZDogbW9kdWxlSWQsXG4vKioqKioqLyBcdFx0XHRcdFx0XHRcdFx0XHRcdG1vZHVsZTogX193ZWJwYWNrX3JlcXVpcmVfXy5jW21vZHVsZUlkXVxuLyoqKioqKi8gXHRcdFx0XHRcdFx0XHRcdFx0fSk7XG4vKioqKioqLyBcdFx0XHRcdFx0XHRcdFx0fSBjYXRjaCAoZXJyMSkge1xuLyoqKioqKi8gXHRcdFx0XHRcdFx0XHRcdFx0aWYgKG9wdGlvbnMub25FcnJvcmVkKSB7XG4vKioqKioqLyBcdFx0XHRcdFx0XHRcdFx0XHRcdG9wdGlvbnMub25FcnJvcmVkKHtcbi8qKioqKiovIFx0XHRcdFx0XHRcdFx0XHRcdFx0XHR0eXBlOiBcInNlbGYtYWNjZXB0LWVycm9yLWhhbmRsZXItZXJyb3JlZFwiLFxuLyoqKioqKi8gXHRcdFx0XHRcdFx0XHRcdFx0XHRcdG1vZHVsZUlkOiBtb2R1bGVJZCxcbi8qKioqKiovIFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRlcnJvcjogZXJyMSxcbi8qKioqKiovIFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRvcmlnaW5hbEVycm9yOiBlcnJcbi8qKioqKiovIFx0XHRcdFx0XHRcdFx0XHRcdFx0fSk7XG4vKioqKioqLyBcdFx0XHRcdFx0XHRcdFx0XHR9XG4vKioqKioqLyBcdFx0XHRcdFx0XHRcdFx0XHRpZiAoIW9wdGlvbnMuaWdub3JlRXJyb3JlZCkge1xuLyoqKioqKi8gXHRcdFx0XHRcdFx0XHRcdFx0XHRyZXBvcnRFcnJvcihlcnIxKTtcbi8qKioqKiovIFx0XHRcdFx0XHRcdFx0XHRcdFx0cmVwb3J0RXJyb3IoZXJyKTtcbi8qKioqKiovIFx0XHRcdFx0XHRcdFx0XHRcdH1cbi8qKioqKiovIFx0XHRcdFx0XHRcdFx0XHR9XG4vKioqKioqLyBcdFx0XHRcdFx0XHRcdH0gZWxzZSB7XG4vKioqKioqLyBcdFx0XHRcdFx0XHRcdFx0aWYgKG9wdGlvbnMub25FcnJvcmVkKSB7XG4vKioqKioqLyBcdFx0XHRcdFx0XHRcdFx0XHRvcHRpb25zLm9uRXJyb3JlZCh7XG4vKioqKioqLyBcdFx0XHRcdFx0XHRcdFx0XHRcdHR5cGU6IFwic2VsZi1hY2NlcHQtZXJyb3JlZFwiLFxuLyoqKioqKi8gXHRcdFx0XHRcdFx0XHRcdFx0XHRtb2R1bGVJZDogbW9kdWxlSWQsXG4vKioqKioqLyBcdFx0XHRcdFx0XHRcdFx0XHRcdGVycm9yOiBlcnJcbi8qKioqKiovIFx0XHRcdFx0XHRcdFx0XHRcdH0pO1xuLyoqKioqKi8gXHRcdFx0XHRcdFx0XHRcdH1cbi8qKioqKiovIFx0XHRcdFx0XHRcdFx0XHRpZiAoIW9wdGlvbnMuaWdub3JlRXJyb3JlZCkge1xuLyoqKioqKi8gXHRcdFx0XHRcdFx0XHRcdFx0cmVwb3J0RXJyb3IoZXJyKTtcbi8qKioqKiovIFx0XHRcdFx0XHRcdFx0XHR9XG4vKioqKioqLyBcdFx0XHRcdFx0XHRcdH1cbi8qKioqKiovIFx0XHRcdFx0XHRcdH1cbi8qKioqKiovIFx0XHRcdFx0XHR9XG4vKioqKioqLyBcdFx0XG4vKioqKioqLyBcdFx0XHRcdFx0cmV0dXJuIG91dGRhdGVkTW9kdWxlcztcbi8qKioqKiovIFx0XHRcdFx0fVxuLyoqKioqKi8gXHRcdFx0fTtcbi8qKioqKiovIFx0XHR9XG4vKioqKioqLyBcdFx0X193ZWJwYWNrX3JlcXVpcmVfXy5obXJJLmpzb25wID0gZnVuY3Rpb24gKG1vZHVsZUlkLCBhcHBseUhhbmRsZXJzKSB7XG4vKioqKioqLyBcdFx0XHRpZiAoIWN1cnJlbnRVcGRhdGUpIHtcbi8qKioqKiovIFx0XHRcdFx0Y3VycmVudFVwZGF0ZSA9IHt9O1xuLyoqKioqKi8gXHRcdFx0XHRjdXJyZW50VXBkYXRlUnVudGltZSA9IFtdO1xuLyoqKioqKi8gXHRcdFx0XHRjdXJyZW50VXBkYXRlUmVtb3ZlZENodW5rcyA9IFtdO1xuLyoqKioqKi8gXHRcdFx0XHRhcHBseUhhbmRsZXJzLnB1c2goYXBwbHlIYW5kbGVyKTtcbi8qKioqKiovIFx0XHRcdH1cbi8qKioqKiovIFx0XHRcdGlmICghX193ZWJwYWNrX3JlcXVpcmVfXy5vKGN1cnJlbnRVcGRhdGUsIG1vZHVsZUlkKSkge1xuLyoqKioqKi8gXHRcdFx0XHRjdXJyZW50VXBkYXRlW21vZHVsZUlkXSA9IF9fd2VicGFja19yZXF1aXJlX18ubVttb2R1bGVJZF07XG4vKioqKioqLyBcdFx0XHR9XG4vKioqKioqLyBcdFx0fTtcbi8qKioqKiovIFx0XHRfX3dlYnBhY2tfcmVxdWlyZV9fLmhtckMuanNvbnAgPSBmdW5jdGlvbiAoXG4vKioqKioqLyBcdFx0XHRjaHVua0lkcyxcbi8qKioqKiovIFx0XHRcdHJlbW92ZWRDaHVua3MsXG4vKioqKioqLyBcdFx0XHRyZW1vdmVkTW9kdWxlcyxcbi8qKioqKiovIFx0XHRcdHByb21pc2VzLFxuLyoqKioqKi8gXHRcdFx0YXBwbHlIYW5kbGVycyxcbi8qKioqKiovIFx0XHRcdHVwZGF0ZWRNb2R1bGVzTGlzdFxuLyoqKioqKi8gXHRcdCkge1xuLyoqKioqKi8gXHRcdFx0YXBwbHlIYW5kbGVycy5wdXNoKGFwcGx5SGFuZGxlcik7XG4vKioqKioqLyBcdFx0XHRjdXJyZW50VXBkYXRlQ2h1bmtzID0ge307XG4vKioqKioqLyBcdFx0XHRjdXJyZW50VXBkYXRlUmVtb3ZlZENodW5rcyA9IHJlbW92ZWRDaHVua3M7XG4vKioqKioqLyBcdFx0XHRjdXJyZW50VXBkYXRlID0gcmVtb3ZlZE1vZHVsZXMucmVkdWNlKGZ1bmN0aW9uIChvYmosIGtleSkge1xuLyoqKioqKi8gXHRcdFx0XHRvYmpba2V5XSA9IGZhbHNlO1xuLyoqKioqKi8gXHRcdFx0XHRyZXR1cm4gb2JqO1xuLyoqKioqKi8gXHRcdFx0fSwge30pO1xuLyoqKioqKi8gXHRcdFx0Y3VycmVudFVwZGF0ZVJ1bnRpbWUgPSBbXTtcbi8qKioqKiovIFx0XHRcdGNodW5rSWRzLmZvckVhY2goZnVuY3Rpb24gKGNodW5rSWQpIHtcbi8qKioqKiovIFx0XHRcdFx0aWYgKFxuLyoqKioqKi8gXHRcdFx0XHRcdF9fd2VicGFja19yZXF1aXJlX18ubyhpbnN0YWxsZWRDaHVua3MsIGNodW5rSWQpICYmXG4vKioqKioqLyBcdFx0XHRcdFx0aW5zdGFsbGVkQ2h1bmtzW2NodW5rSWRdICE9PSB1bmRlZmluZWRcbi8qKioqKiovIFx0XHRcdFx0KSB7XG4vKioqKioqLyBcdFx0XHRcdFx0cHJvbWlzZXMucHVzaChsb2FkVXBkYXRlQ2h1bmsoY2h1bmtJZCwgdXBkYXRlZE1vZHVsZXNMaXN0KSk7XG4vKioqKioqLyBcdFx0XHRcdFx0Y3VycmVudFVwZGF0ZUNodW5rc1tjaHVua0lkXSA9IHRydWU7XG4vKioqKioqLyBcdFx0XHRcdH0gZWxzZSB7XG4vKioqKioqLyBcdFx0XHRcdFx0Y3VycmVudFVwZGF0ZUNodW5rc1tjaHVua0lkXSA9IGZhbHNlO1xuLyoqKioqKi8gXHRcdFx0XHR9XG4vKioqKioqLyBcdFx0XHR9KTtcbi8qKioqKiovIFx0XHRcdGlmIChfX3dlYnBhY2tfcmVxdWlyZV9fLmYpIHtcbi8qKioqKiovIFx0XHRcdFx0X193ZWJwYWNrX3JlcXVpcmVfXy5mLmpzb25wSG1yID0gZnVuY3Rpb24gKGNodW5rSWQsIHByb21pc2VzKSB7XG4vKioqKioqLyBcdFx0XHRcdFx0aWYgKFxuLyoqKioqKi8gXHRcdFx0XHRcdFx0Y3VycmVudFVwZGF0ZUNodW5rcyAmJlxuLyoqKioqKi8gXHRcdFx0XHRcdFx0X193ZWJwYWNrX3JlcXVpcmVfXy5vKGN1cnJlbnRVcGRhdGVDaHVua3MsIGNodW5rSWQpICYmXG4vKioqKioqLyBcdFx0XHRcdFx0XHQhY3VycmVudFVwZGF0ZUNodW5rc1tjaHVua0lkXVxuLyoqKioqKi8gXHRcdFx0XHRcdCkge1xuLyoqKioqKi8gXHRcdFx0XHRcdFx0cHJvbWlzZXMucHVzaChsb2FkVXBkYXRlQ2h1bmsoY2h1bmtJZCkpO1xuLyoqKioqKi8gXHRcdFx0XHRcdFx0Y3VycmVudFVwZGF0ZUNodW5rc1tjaHVua0lkXSA9IHRydWU7XG4vKioqKioqLyBcdFx0XHRcdFx0fVxuLyoqKioqKi8gXHRcdFx0XHR9O1xuLyoqKioqKi8gXHRcdFx0fVxuLyoqKioqKi8gXHRcdH07XG4vKioqKioqLyBcdFx0XG4vKioqKioqLyBcdFx0X193ZWJwYWNrX3JlcXVpcmVfXy5obXJNID0gKCkgPT4ge1xuLyoqKioqKi8gXHRcdFx0aWYgKHR5cGVvZiBmZXRjaCA9PT0gXCJ1bmRlZmluZWRcIikgdGhyb3cgbmV3IEVycm9yKFwiTm8gYnJvd3NlciBzdXBwb3J0OiBuZWVkIGZldGNoIEFQSVwiKTtcbi8qKioqKiovIFx0XHRcdHJldHVybiBmZXRjaChfX3dlYnBhY2tfcmVxdWlyZV9fLnAgKyBfX3dlYnBhY2tfcmVxdWlyZV9fLmhtckYoKSkudGhlbigocmVzcG9uc2UpID0+IHtcbi8qKioqKiovIFx0XHRcdFx0aWYocmVzcG9uc2Uuc3RhdHVzID09PSA0MDQpIHJldHVybjsgLy8gbm8gdXBkYXRlIGF2YWlsYWJsZVxuLyoqKioqKi8gXHRcdFx0XHRpZighcmVzcG9uc2Uub2spIHRocm93IG5ldyBFcnJvcihcIkZhaWxlZCB0byBmZXRjaCB1cGRhdGUgbWFuaWZlc3QgXCIgKyByZXNwb25zZS5zdGF0dXNUZXh0KTtcbi8qKioqKiovIFx0XHRcdFx0cmV0dXJuIHJlc3BvbnNlLmpzb24oKTtcbi8qKioqKiovIFx0XHRcdH0pO1xuLyoqKioqKi8gXHRcdH07XG4vKioqKioqLyBcdFx0XG4vKioqKioqLyBcdFx0X193ZWJwYWNrX3JlcXVpcmVfXy5PLmogPSAoY2h1bmtJZCkgPT4gKGluc3RhbGxlZENodW5rc1tjaHVua0lkXSA9PT0gMCk7XG4vKioqKioqLyBcdFx0XG4vKioqKioqLyBcdFx0Ly8gaW5zdGFsbCBhIEpTT05QIGNhbGxiYWNrIGZvciBjaHVuayBsb2FkaW5nXG4vKioqKioqLyBcdFx0dmFyIHdlYnBhY2tKc29ucENhbGxiYWNrID0gKHBhcmVudENodW5rTG9hZGluZ0Z1bmN0aW9uLCBkYXRhKSA9PiB7XG4vKioqKioqLyBcdFx0XHR2YXIgW2NodW5rSWRzLCBtb3JlTW9kdWxlcywgcnVudGltZV0gPSBkYXRhO1xuLyoqKioqKi8gXHRcdFx0Ly8gYWRkIFwibW9yZU1vZHVsZXNcIiB0byB0aGUgbW9kdWxlcyBvYmplY3QsXG4vKioqKioqLyBcdFx0XHQvLyB0aGVuIGZsYWcgYWxsIFwiY2h1bmtJZHNcIiBhcyBsb2FkZWQgYW5kIGZpcmUgY2FsbGJhY2tcbi8qKioqKiovIFx0XHRcdHZhciBtb2R1bGVJZCwgY2h1bmtJZCwgaSA9IDA7XG4vKioqKioqLyBcdFx0XHRpZihjaHVua0lkcy5zb21lKChpZCkgPT4gKGluc3RhbGxlZENodW5rc1tpZF0gIT09IDApKSkge1xuLyoqKioqKi8gXHRcdFx0XHRmb3IobW9kdWxlSWQgaW4gbW9yZU1vZHVsZXMpIHtcbi8qKioqKiovIFx0XHRcdFx0XHRpZihfX3dlYnBhY2tfcmVxdWlyZV9fLm8obW9yZU1vZHVsZXMsIG1vZHVsZUlkKSkge1xuLyoqKioqKi8gXHRcdFx0XHRcdFx0X193ZWJwYWNrX3JlcXVpcmVfXy5tW21vZHVsZUlkXSA9IG1vcmVNb2R1bGVzW21vZHVsZUlkXTtcbi8qKioqKiovIFx0XHRcdFx0XHR9XG4vKioqKioqLyBcdFx0XHRcdH1cbi8qKioqKiovIFx0XHRcdFx0aWYocnVudGltZSkgdmFyIHJlc3VsdCA9IHJ1bnRpbWUoX193ZWJwYWNrX3JlcXVpcmVfXyk7XG4vKioqKioqLyBcdFx0XHR9XG4vKioqKioqLyBcdFx0XHRpZihwYXJlbnRDaHVua0xvYWRpbmdGdW5jdGlvbikgcGFyZW50Q2h1bmtMb2FkaW5nRnVuY3Rpb24oZGF0YSk7XG4vKioqKioqLyBcdFx0XHRmb3IoO2kgPCBjaHVua0lkcy5sZW5ndGg7IGkrKykge1xuLyoqKioqKi8gXHRcdFx0XHRjaHVua0lkID0gY2h1bmtJZHNbaV07XG4vKioqKioqLyBcdFx0XHRcdGlmKF9fd2VicGFja19yZXF1aXJlX18ubyhpbnN0YWxsZWRDaHVua3MsIGNodW5rSWQpICYmIGluc3RhbGxlZENodW5rc1tjaHVua0lkXSkge1xuLyoqKioqKi8gXHRcdFx0XHRcdGluc3RhbGxlZENodW5rc1tjaHVua0lkXVswXSgpO1xuLyoqKioqKi8gXHRcdFx0XHR9XG4vKioqKioqLyBcdFx0XHRcdGluc3RhbGxlZENodW5rc1tjaHVua0lkXSA9IDA7XG4vKioqKioqLyBcdFx0XHR9XG4vKioqKioqLyBcdFx0XHRyZXR1cm4gX193ZWJwYWNrX3JlcXVpcmVfXy5PKHJlc3VsdCk7XG4vKioqKioqLyBcdFx0fVxuLyoqKioqKi8gXHRcdFxuLyoqKioqKi8gXHRcdHZhciBjaHVua0xvYWRpbmdHbG9iYWwgPSBzZWxmW1wid2VicGFja0NodW5rX05fRVwiXSA9IHNlbGZbXCJ3ZWJwYWNrQ2h1bmtfTl9FXCJdIHx8IFtdO1xuLyoqKioqKi8gXHRcdGNodW5rTG9hZGluZ0dsb2JhbC5mb3JFYWNoKHdlYnBhY2tKc29ucENhbGxiYWNrLmJpbmQobnVsbCwgMCkpO1xuLyoqKioqKi8gXHRcdGNodW5rTG9hZGluZ0dsb2JhbC5wdXNoID0gd2VicGFja0pzb25wQ2FsbGJhY2suYmluZChudWxsLCBjaHVua0xvYWRpbmdHbG9iYWwucHVzaC5iaW5kKGNodW5rTG9hZGluZ0dsb2JhbCkpO1xuLyoqKioqKi8gXHR9KSgpO1xuLyoqKioqKi8gXHRcbi8qKioqKiovIFx0Lyogd2VicGFjay9ydW50aW1lL25vbmNlICovXG4vKioqKioqLyBcdCgoKSA9PiB7XG4vKioqKioqLyBcdFx0X193ZWJwYWNrX3JlcXVpcmVfXy5uYyA9IHVuZGVmaW5lZDtcbi8qKioqKiovIFx0fSkoKTtcbi8qKioqKiovIFx0XG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyoqKioqKi8gXHRcbi8qKioqKiovIFx0Ly8gbW9kdWxlIGNhY2hlIGFyZSB1c2VkIHNvIGVudHJ5IGlubGluaW5nIGlzIGRpc2FibGVkXG4vKioqKioqLyBcdFxuLyoqKioqKi8gfSkoKVxuIl19 -; \ No newline at end of file diff --git a/build/static/development/_buildManifest.js b/build/static/development/_buildManifest.js deleted file mode 100644 index 7239270..0000000 --- a/build/static/development/_buildManifest.js +++ /dev/null @@ -1 +0,0 @@ -self.__BUILD_MANIFEST = (function(a){return {__rewrites:{afterFiles:[],beforeFiles:[],fallback:[]},__routerFilterStatic:a,__routerFilterDynamic:a,"/":["static\u002Fchunks\u002Fpages\u002Findex.js"],"/_error":["static\u002Fchunks\u002Fpages\u002F_error.js"],"/news":["static\u002Fchunks\u002Fpages\u002Fnews.js"],sortedPages:["\u002F","\u002F_app","\u002F_error","\u002Fnews"]}}(void 0));self.__BUILD_MANIFEST_CB && self.__BUILD_MANIFEST_CB() \ No newline at end of file diff --git a/build/static/development/_ssgManifest.js b/build/static/development/_ssgManifest.js deleted file mode 100644 index 2260768..0000000 --- a/build/static/development/_ssgManifest.js +++ /dev/null @@ -1 +0,0 @@ -self.__SSG_MANIFEST=new Set;self.__SSG_MANIFEST_CB&&self.__SSG_MANIFEST_CB() \ No newline at end of file diff --git a/build/static/webpack/1c5c6376a4344887.webpack.hot-update.json b/build/static/webpack/1c5c6376a4344887.webpack.hot-update.json deleted file mode 100644 index da3cf80..0000000 --- a/build/static/webpack/1c5c6376a4344887.webpack.hot-update.json +++ /dev/null @@ -1 +0,0 @@ -{"c":["pages/_app","webpack"],"r":[],"m":[]} \ No newline at end of file diff --git a/build/static/webpack/51350c0cee96bd54.webpack.hot-update.json b/build/static/webpack/51350c0cee96bd54.webpack.hot-update.json deleted file mode 100644 index b8e520e..0000000 --- a/build/static/webpack/51350c0cee96bd54.webpack.hot-update.json +++ /dev/null @@ -1 +0,0 @@ -{"c":["pages/_app","pages/index","webpack"],"r":[],"m":[]} \ No newline at end of file diff --git a/build/static/webpack/61c96229ecd10e60.webpack.hot-update.json b/build/static/webpack/61c96229ecd10e60.webpack.hot-update.json deleted file mode 100644 index 8ffa8e9..0000000 --- a/build/static/webpack/61c96229ecd10e60.webpack.hot-update.json +++ /dev/null @@ -1 +0,0 @@ -{"c":["pages/news","webpack"],"r":[],"m":[]} \ No newline at end of file diff --git a/build/static/webpack/633457081244afec._.hot-update.json b/build/static/webpack/633457081244afec._.hot-update.json deleted file mode 100644 index 5a523f2..0000000 --- a/build/static/webpack/633457081244afec._.hot-update.json +++ /dev/null @@ -1 +0,0 @@ -{"c":[],"r":[],"m":[]} \ No newline at end of file diff --git a/build/static/webpack/e015d916aaf837c8.webpack.hot-update.json b/build/static/webpack/e015d916aaf837c8.webpack.hot-update.json deleted file mode 100644 index 3823c4c..0000000 --- a/build/static/webpack/e015d916aaf837c8.webpack.hot-update.json +++ /dev/null @@ -1 +0,0 @@ -{"c":["webpack"],"r":[],"m":[]} \ No newline at end of file diff --git a/build/static/webpack/pages/_app.1c5c6376a4344887.hot-update.js b/build/static/webpack/pages/_app.1c5c6376a4344887.hot-update.js deleted file mode 100644 index e1e8f48..0000000 --- a/build/static/webpack/pages/_app.1c5c6376a4344887.hot-update.js +++ /dev/null @@ -1,22 +0,0 @@ -"use strict"; -/* - * ATTENTION: An "eval-source-map" devtool has been used. - * This devtool is neither made for production nor for readable output files. - * It uses "eval()" calls to create a separate source file with attached SourceMaps in the browser devtools. - * If you are trying to read the output file, select a different devtool (https://webpack.js.org/configuration/devtool/) - * or disable the default devtool with "devtool: false". - * If you are looking for production-ready output files, see mode: "production" (https://webpack.js.org/configuration/mode/). - */ -self["webpackHotUpdate_N_E"]("pages/_app",{ - -/***/ "(pages-dir-browser)/./node_modules/next/dist/build/webpack/loaders/css-loader/src/index.js??ruleSet[1].rules[7].oneOf[13].use[1]!./node_modules/next/dist/build/webpack/loaders/postcss-loader/src/index.js??ruleSet[1].rules[7].oneOf[13].use[2]!./styles/globals.css": -/*!**********************************************************************************************************************************************************************************************************************************************************!*\ - !*** ./node_modules/next/dist/build/webpack/loaders/css-loader/src/index.js??ruleSet[1].rules[7].oneOf[13].use[1]!./node_modules/next/dist/build/webpack/loaders/postcss-loader/src/index.js??ruleSet[1].rules[7].oneOf[13].use[2]!./styles/globals.css ***! - \**********************************************************************************************************************************************************************************************************************************************************/ -/***/ ((module, __webpack_exports__, __webpack_require__) => { - -eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _node_modules_next_dist_build_webpack_loaders_css_loader_src_runtime_api_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../node_modules/next/dist/build/webpack/loaders/css-loader/src/runtime/api.js */ \"(pages-dir-browser)/./node_modules/next/dist/build/webpack/loaders/css-loader/src/runtime/api.js\");\n/* harmony import */ var _node_modules_next_dist_build_webpack_loaders_css_loader_src_runtime_api_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_next_dist_build_webpack_loaders_css_loader_src_runtime_api_js__WEBPACK_IMPORTED_MODULE_0__);\n// Imports\n\nvar ___CSS_LOADER_EXPORT___ = _node_modules_next_dist_build_webpack_loaders_css_loader_src_runtime_api_js__WEBPACK_IMPORTED_MODULE_0___default()(true);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \"*, ::before, ::after {\\n --tw-border-spacing-x: 0;\\n --tw-border-spacing-y: 0;\\n --tw-translate-x: 0;\\n --tw-translate-y: 0;\\n --tw-rotate: 0;\\n --tw-skew-x: 0;\\n --tw-skew-y: 0;\\n --tw-scale-x: 1;\\n --tw-scale-y: 1;\\n --tw-pan-x: ;\\n --tw-pan-y: ;\\n --tw-pinch-zoom: ;\\n --tw-scroll-snap-strictness: proximity;\\n --tw-gradient-from-position: ;\\n --tw-gradient-via-position: ;\\n --tw-gradient-to-position: ;\\n --tw-ordinal: ;\\n --tw-slashed-zero: ;\\n --tw-numeric-figure: ;\\n --tw-numeric-spacing: ;\\n --tw-numeric-fraction: ;\\n --tw-ring-inset: ;\\n --tw-ring-offset-width: 0px;\\n --tw-ring-offset-color: #fff;\\n --tw-ring-color: rgb(59 130 246 / 0.5);\\n --tw-ring-offset-shadow: 0 0 #0000;\\n --tw-ring-shadow: 0 0 #0000;\\n --tw-shadow: 0 0 #0000;\\n --tw-shadow-colored: 0 0 #0000;\\n --tw-blur: ;\\n --tw-brightness: ;\\n --tw-contrast: ;\\n --tw-grayscale: ;\\n --tw-hue-rotate: ;\\n --tw-invert: ;\\n --tw-saturate: ;\\n --tw-sepia: ;\\n --tw-drop-shadow: ;\\n --tw-backdrop-blur: ;\\n --tw-backdrop-brightness: ;\\n --tw-backdrop-contrast: ;\\n --tw-backdrop-grayscale: ;\\n --tw-backdrop-hue-rotate: ;\\n --tw-backdrop-invert: ;\\n --tw-backdrop-opacity: ;\\n --tw-backdrop-saturate: ;\\n --tw-backdrop-sepia: ;\\n --tw-contain-size: ;\\n --tw-contain-layout: ;\\n --tw-contain-paint: ;\\n --tw-contain-style: ;\\n}\\n\\n::backdrop {\\n --tw-border-spacing-x: 0;\\n --tw-border-spacing-y: 0;\\n --tw-translate-x: 0;\\n --tw-translate-y: 0;\\n --tw-rotate: 0;\\n --tw-skew-x: 0;\\n --tw-skew-y: 0;\\n --tw-scale-x: 1;\\n --tw-scale-y: 1;\\n --tw-pan-x: ;\\n --tw-pan-y: ;\\n --tw-pinch-zoom: ;\\n --tw-scroll-snap-strictness: proximity;\\n --tw-gradient-from-position: ;\\n --tw-gradient-via-position: ;\\n --tw-gradient-to-position: ;\\n --tw-ordinal: ;\\n --tw-slashed-zero: ;\\n --tw-numeric-figure: ;\\n --tw-numeric-spacing: ;\\n --tw-numeric-fraction: ;\\n --tw-ring-inset: ;\\n --tw-ring-offset-width: 0px;\\n --tw-ring-offset-color: #fff;\\n --tw-ring-color: rgb(59 130 246 / 0.5);\\n --tw-ring-offset-shadow: 0 0 #0000;\\n --tw-ring-shadow: 0 0 #0000;\\n --tw-shadow: 0 0 #0000;\\n --tw-shadow-colored: 0 0 #0000;\\n --tw-blur: ;\\n --tw-brightness: ;\\n --tw-contrast: ;\\n --tw-grayscale: ;\\n --tw-hue-rotate: ;\\n --tw-invert: ;\\n --tw-saturate: ;\\n --tw-sepia: ;\\n --tw-drop-shadow: ;\\n --tw-backdrop-blur: ;\\n --tw-backdrop-brightness: ;\\n --tw-backdrop-contrast: ;\\n --tw-backdrop-grayscale: ;\\n --tw-backdrop-hue-rotate: ;\\n --tw-backdrop-invert: ;\\n --tw-backdrop-opacity: ;\\n --tw-backdrop-saturate: ;\\n --tw-backdrop-sepia: ;\\n --tw-contain-size: ;\\n --tw-contain-layout: ;\\n --tw-contain-paint: ;\\n --tw-contain-style: ;\\n}/*\\n! tailwindcss v3.4.17 | MIT License | https://tailwindcss.com\\n*//*\\n1. Prevent padding and border from affecting element width. (https://github.com/mozdevs/cssremedy/issues/4)\\n2. Allow adding a border to an element by just adding a border-width. (https://github.com/tailwindcss/tailwindcss/pull/116)\\n*/\\n\\n*,\\n::before,\\n::after {\\n box-sizing: border-box; /* 1 */\\n border-width: 0; /* 2 */\\n border-style: solid; /* 2 */\\n border-color: #e5e7eb; /* 2 */\\n}\\n\\n::before,\\n::after {\\n --tw-content: '';\\n}\\n\\n/*\\n1. Use a consistent sensible line-height in all browsers.\\n2. Prevent adjustments of font size after orientation changes in iOS.\\n3. Use a more readable tab size.\\n4. Use the user's configured `sans` font-family by default.\\n5. Use the user's configured `sans` font-feature-settings by default.\\n6. Use the user's configured `sans` font-variation-settings by default.\\n7. Disable tap highlights on iOS\\n*/\\n\\nhtml,\\n:host {\\n line-height: 1.5; /* 1 */\\n -webkit-text-size-adjust: 100%; /* 2 */\\n -moz-tab-size: 4; /* 3 */\\n -o-tab-size: 4;\\n tab-size: 4; /* 3 */\\n font-family: Inter, sans-serif; /* 4 */\\n font-feature-settings: normal; /* 5 */\\n font-variation-settings: normal; /* 6 */\\n -webkit-tap-highlight-color: transparent; /* 7 */\\n}\\n\\n/*\\n1. Remove the margin in all browsers.\\n2. Inherit line-height from `html` so users can set them as a class directly on the `html` element.\\n*/\\n\\nbody {\\n margin: 0; /* 1 */\\n line-height: inherit; /* 2 */\\n}\\n\\n/*\\n1. Add the correct height in Firefox.\\n2. Correct the inheritance of border color in Firefox. (https://bugzilla.mozilla.org/show_bug.cgi?id=190655)\\n3. Ensure horizontal rules are visible by default.\\n*/\\n\\nhr {\\n height: 0; /* 1 */\\n color: inherit; /* 2 */\\n border-top-width: 1px; /* 3 */\\n}\\n\\n/*\\nAdd the correct text decoration in Chrome, Edge, and Safari.\\n*/\\n\\nabbr:where([title]) {\\n -webkit-text-decoration: underline dotted;\\n text-decoration: underline dotted;\\n}\\n\\n/*\\nRemove the default font size and weight for headings.\\n*/\\n\\nh1,\\nh2,\\nh3,\\nh4,\\nh5,\\nh6 {\\n font-size: inherit;\\n font-weight: inherit;\\n}\\n\\n/*\\nReset links to optimize for opt-in styling instead of opt-out.\\n*/\\n\\na {\\n color: inherit;\\n text-decoration: inherit;\\n}\\n\\n/*\\nAdd the correct font weight in Edge and Safari.\\n*/\\n\\nb,\\nstrong {\\n font-weight: bolder;\\n}\\n\\n/*\\n1. Use the user's configured `mono` font-family by default.\\n2. Use the user's configured `mono` font-feature-settings by default.\\n3. Use the user's configured `mono` font-variation-settings by default.\\n4. Correct the odd `em` font sizing in all browsers.\\n*/\\n\\ncode,\\nkbd,\\nsamp,\\npre {\\n font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, \\\"Liberation Mono\\\", \\\"Courier New\\\", monospace; /* 1 */\\n font-feature-settings: normal; /* 2 */\\n font-variation-settings: normal; /* 3 */\\n font-size: 1em; /* 4 */\\n}\\n\\n/*\\nAdd the correct font size in all browsers.\\n*/\\n\\nsmall {\\n font-size: 80%;\\n}\\n\\n/*\\nPrevent `sub` and `sup` elements from affecting the line height in all browsers.\\n*/\\n\\nsub,\\nsup {\\n font-size: 75%;\\n line-height: 0;\\n position: relative;\\n vertical-align: baseline;\\n}\\n\\nsub {\\n bottom: -0.25em;\\n}\\n\\nsup {\\n top: -0.5em;\\n}\\n\\n/*\\n1. Remove text indentation from table contents in Chrome and Safari. (https://bugs.chromium.org/p/chromium/issues/detail?id=999088, https://bugs.webkit.org/show_bug.cgi?id=201297)\\n2. Correct table border color inheritance in all Chrome and Safari. (https://bugs.chromium.org/p/chromium/issues/detail?id=935729, https://bugs.webkit.org/show_bug.cgi?id=195016)\\n3. Remove gaps between table borders by default.\\n*/\\n\\ntable {\\n text-indent: 0; /* 1 */\\n border-color: inherit; /* 2 */\\n border-collapse: collapse; /* 3 */\\n}\\n\\n/*\\n1. Change the font styles in all browsers.\\n2. Remove the margin in Firefox and Safari.\\n3. Remove default padding in all browsers.\\n*/\\n\\nbutton,\\ninput,\\noptgroup,\\nselect,\\ntextarea {\\n font-family: inherit; /* 1 */\\n font-feature-settings: inherit; /* 1 */\\n font-variation-settings: inherit; /* 1 */\\n font-size: 100%; /* 1 */\\n font-weight: inherit; /* 1 */\\n line-height: inherit; /* 1 */\\n letter-spacing: inherit; /* 1 */\\n color: inherit; /* 1 */\\n margin: 0; /* 2 */\\n padding: 0; /* 3 */\\n}\\n\\n/*\\nRemove the inheritance of text transform in Edge and Firefox.\\n*/\\n\\nbutton,\\nselect {\\n text-transform: none;\\n}\\n\\n/*\\n1. Correct the inability to style clickable types in iOS and Safari.\\n2. Remove default button styles.\\n*/\\n\\nbutton,\\ninput:where([type='button']),\\ninput:where([type='reset']),\\ninput:where([type='submit']) {\\n -webkit-appearance: button; /* 1 */\\n background-color: transparent; /* 2 */\\n background-image: none; /* 2 */\\n}\\n\\n/*\\nUse the modern Firefox focus style for all focusable elements.\\n*/\\n\\n:-moz-focusring {\\n outline: auto;\\n}\\n\\n/*\\nRemove the additional `:invalid` styles in Firefox. (https://github.com/mozilla/gecko-dev/blob/2f9eacd9d3d995c937b4251a5557d95d494c9be1/layout/style/res/forms.css#L728-L737)\\n*/\\n\\n:-moz-ui-invalid {\\n box-shadow: none;\\n}\\n\\n/*\\nAdd the correct vertical alignment in Chrome and Firefox.\\n*/\\n\\nprogress {\\n vertical-align: baseline;\\n}\\n\\n/*\\nCorrect the cursor style of increment and decrement buttons in Safari.\\n*/\\n\\n::-webkit-inner-spin-button,\\n::-webkit-outer-spin-button {\\n height: auto;\\n}\\n\\n/*\\n1. Correct the odd appearance in Chrome and Safari.\\n2. Correct the outline style in Safari.\\n*/\\n\\n[type='search'] {\\n -webkit-appearance: textfield; /* 1 */\\n outline-offset: -2px; /* 2 */\\n}\\n\\n/*\\nRemove the inner padding in Chrome and Safari on macOS.\\n*/\\n\\n::-webkit-search-decoration {\\n -webkit-appearance: none;\\n}\\n\\n/*\\n1. Correct the inability to style clickable types in iOS and Safari.\\n2. Change font properties to `inherit` in Safari.\\n*/\\n\\n::-webkit-file-upload-button {\\n -webkit-appearance: button; /* 1 */\\n font: inherit; /* 2 */\\n}\\n\\n/*\\nAdd the correct display in Chrome and Safari.\\n*/\\n\\nsummary {\\n display: list-item;\\n}\\n\\n/*\\nRemoves the default spacing and border for appropriate elements.\\n*/\\n\\nblockquote,\\ndl,\\ndd,\\nh1,\\nh2,\\nh3,\\nh4,\\nh5,\\nh6,\\nhr,\\nfigure,\\np,\\npre {\\n margin: 0;\\n}\\n\\nfieldset {\\n margin: 0;\\n padding: 0;\\n}\\n\\nlegend {\\n padding: 0;\\n}\\n\\nol,\\nul,\\nmenu {\\n list-style: none;\\n margin: 0;\\n padding: 0;\\n}\\n\\n/*\\nReset default styling for dialogs.\\n*/\\ndialog {\\n padding: 0;\\n}\\n\\n/*\\nPrevent resizing textareas horizontally by default.\\n*/\\n\\ntextarea {\\n resize: vertical;\\n}\\n\\n/*\\n1. Reset the default placeholder opacity in Firefox. (https://github.com/tailwindlabs/tailwindcss/issues/3300)\\n2. Set the default placeholder color to the user's configured gray 400 color.\\n*/\\n\\ninput::-moz-placeholder, textarea::-moz-placeholder {\\n opacity: 1; /* 1 */\\n color: #9ca3af; /* 2 */\\n}\\n\\ninput::placeholder,\\ntextarea::placeholder {\\n opacity: 1; /* 1 */\\n color: #9ca3af; /* 2 */\\n}\\n\\n/*\\nSet the default cursor for buttons.\\n*/\\n\\nbutton,\\n[role=\\\"button\\\"] {\\n cursor: pointer;\\n}\\n\\n/*\\nMake sure disabled buttons don't get the pointer cursor.\\n*/\\n:disabled {\\n cursor: default;\\n}\\n\\n/*\\n1. Make replaced elements `display: block` by default. (https://github.com/mozdevs/cssremedy/issues/14)\\n2. Add `vertical-align: middle` to align replaced elements more sensibly by default. (https://github.com/jensimmons/cssremedy/issues/14#issuecomment-634934210)\\n This can trigger a poorly considered lint error in some tools but is included by design.\\n*/\\n\\nimg,\\nsvg,\\nvideo,\\ncanvas,\\naudio,\\niframe,\\nembed,\\nobject {\\n display: block; /* 1 */\\n vertical-align: middle; /* 2 */\\n}\\n\\n/*\\nConstrain images and videos to the parent width and preserve their intrinsic aspect ratio. (https://github.com/mozdevs/cssremedy/issues/14)\\n*/\\n\\nimg,\\nvideo {\\n max-width: 100%;\\n height: auto;\\n}\\n\\n/* Make elements with the HTML hidden attribute stay hidden by default */\\n[hidden]:where(:not([hidden=\\\"until-found\\\"])) {\\n display: none;\\n}\\r\\n.container {\\n width: 100%;\\n}\\r\\n@media (min-width: 640px) {\\n\\n .container {\\n max-width: 640px;\\n }\\n}\\r\\n@media (min-width: 768px) {\\n\\n .container {\\n max-width: 768px;\\n }\\n}\\r\\n@media (min-width: 1024px) {\\n\\n .container {\\n max-width: 1024px;\\n }\\n}\\r\\n@media (min-width: 1280px) {\\n\\n .container {\\n max-width: 1280px;\\n }\\n}\\r\\n@media (min-width: 1536px) {\\n\\n .container {\\n max-width: 1536px;\\n }\\n}\\r\\n.fixed {\\n position: fixed;\\n}\\r\\n.absolute {\\n position: absolute;\\n}\\r\\n.relative {\\n position: relative;\\n}\\r\\n.inset-0 {\\n inset: 0px;\\n}\\r\\n.inset-y-0 {\\n top: 0px;\\n bottom: 0px;\\n}\\r\\n.-top-4 {\\n top: -1rem;\\n}\\r\\n.bottom-10 {\\n bottom: 2.5rem;\\n}\\r\\n.bottom-20 {\\n bottom: 5rem;\\n}\\r\\n.left-0 {\\n left: 0px;\\n}\\r\\n.left-1\\\\/2 {\\n left: 50%;\\n}\\r\\n.left-1\\\\/4 {\\n left: 25%;\\n}\\r\\n.left-10 {\\n left: 2.5rem;\\n}\\r\\n.left-3 {\\n left: 0.75rem;\\n}\\r\\n.left-4 {\\n left: 1rem;\\n}\\r\\n.right-0 {\\n right: 0px;\\n}\\r\\n.right-10 {\\n right: 2.5rem;\\n}\\r\\n.right-20 {\\n right: 5rem;\\n}\\r\\n.top-0 {\\n top: 0px;\\n}\\r\\n.top-1\\\\/2 {\\n top: 50%;\\n}\\r\\n.top-10 {\\n top: 2.5rem;\\n}\\r\\n.top-32 {\\n top: 8rem;\\n}\\r\\n.top-4 {\\n top: 1rem;\\n}\\r\\n.z-10 {\\n z-index: 10;\\n}\\r\\n.z-50 {\\n z-index: 50;\\n}\\r\\n.mx-auto {\\n margin-left: auto;\\n margin-right: auto;\\n}\\r\\n.mb-1 {\\n margin-bottom: 0.25rem;\\n}\\r\\n.mb-12 {\\n margin-bottom: 3rem;\\n}\\r\\n.mb-16 {\\n margin-bottom: 4rem;\\n}\\r\\n.mb-2 {\\n margin-bottom: 0.5rem;\\n}\\r\\n.mb-3 {\\n margin-bottom: 0.75rem;\\n}\\r\\n.mb-4 {\\n margin-bottom: 1rem;\\n}\\r\\n.mb-6 {\\n margin-bottom: 1.5rem;\\n}\\r\\n.mb-8 {\\n margin-bottom: 2rem;\\n}\\r\\n.mb-section {\\n margin-bottom: 4rem;\\n}\\r\\n.ml-1 {\\n margin-left: 0.25rem;\\n}\\r\\n.ml-2 {\\n margin-left: 0.5rem;\\n}\\r\\n.mr-1 {\\n margin-right: 0.25rem;\\n}\\r\\n.mr-2 {\\n margin-right: 0.5rem;\\n}\\r\\n.mr-3 {\\n margin-right: 0.75rem;\\n}\\r\\n.mr-4 {\\n margin-right: 1rem;\\n}\\r\\n.mt-0\\\\.5 {\\n margin-top: 0.125rem;\\n}\\r\\n.mt-1 {\\n margin-top: 0.25rem;\\n}\\r\\n.mt-12 {\\n margin-top: 3rem;\\n}\\r\\n.mt-16 {\\n margin-top: 4rem;\\n}\\r\\n.mt-2 {\\n margin-top: 0.5rem;\\n}\\r\\n.mt-20 {\\n margin-top: 5rem;\\n}\\r\\n.mt-4 {\\n margin-top: 1rem;\\n}\\r\\n.mt-8 {\\n margin-top: 2rem;\\n}\\r\\n.line-clamp-2 {\\n overflow: hidden;\\n display: -webkit-box;\\n -webkit-box-orient: vertical;\\n -webkit-line-clamp: 2;\\n}\\r\\n.line-clamp-3 {\\n overflow: hidden;\\n display: -webkit-box;\\n -webkit-box-orient: vertical;\\n -webkit-line-clamp: 3;\\n}\\r\\n.block {\\n display: block;\\n}\\r\\n.flex {\\n display: flex;\\n}\\r\\n.inline-flex {\\n display: inline-flex;\\n}\\r\\n.grid {\\n display: grid;\\n}\\r\\n.hidden {\\n display: none;\\n}\\r\\n.h-0\\\\.5 {\\n height: 0.125rem;\\n}\\r\\n.h-10 {\\n height: 2.5rem;\\n}\\r\\n.h-12 {\\n height: 3rem;\\n}\\r\\n.h-16 {\\n height: 4rem;\\n}\\r\\n.h-20 {\\n height: 5rem;\\n}\\r\\n.h-24 {\\n height: 6rem;\\n}\\r\\n.h-3 {\\n height: 0.75rem;\\n}\\r\\n.h-4 {\\n height: 1rem;\\n}\\r\\n.h-48 {\\n height: 12rem;\\n}\\r\\n.h-5 {\\n height: 1.25rem;\\n}\\r\\n.h-6 {\\n height: 1.5rem;\\n}\\r\\n.h-8 {\\n height: 2rem;\\n}\\r\\n.h-auto {\\n height: auto;\\n}\\r\\n.h-full {\\n height: 100%;\\n}\\r\\n.min-h-\\\\[60vh\\\\] {\\n min-height: 60vh;\\n}\\r\\n.w-1 {\\n width: 0.25rem;\\n}\\r\\n.w-1\\\\/2 {\\n width: 50%;\\n}\\r\\n.w-10 {\\n width: 2.5rem;\\n}\\r\\n.w-12 {\\n width: 3rem;\\n}\\r\\n.w-16 {\\n width: 4rem;\\n}\\r\\n.w-20 {\\n width: 5rem;\\n}\\r\\n.w-24 {\\n width: 6rem;\\n}\\r\\n.w-3 {\\n width: 0.75rem;\\n}\\r\\n.w-4 {\\n width: 1rem;\\n}\\r\\n.w-5 {\\n width: 1.25rem;\\n}\\r\\n.w-6 {\\n width: 1.5rem;\\n}\\r\\n.w-64 {\\n width: 16rem;\\n}\\r\\n.w-8 {\\n width: 2rem;\\n}\\r\\n.w-full {\\n width: 100%;\\n}\\r\\n.max-w-2xl {\\n max-width: 42rem;\\n}\\r\\n.max-w-3xl {\\n max-width: 48rem;\\n}\\r\\n.max-w-4xl {\\n max-width: 56rem;\\n}\\r\\n.max-w-full {\\n max-width: 100%;\\n}\\r\\n.max-w-md {\\n max-width: 28rem;\\n}\\r\\n.max-w-screen-lg {\\n max-width: 1024px;\\n}\\r\\n.max-w-screen-md {\\n max-width: 768px;\\n}\\r\\n.max-w-screen-xl {\\n max-width: 1280px;\\n}\\r\\n.flex-1 {\\n flex: 1 1 0%;\\n}\\r\\n.flex-shrink-0 {\\n flex-shrink: 0;\\n}\\r\\n.-translate-x-1\\\\/2 {\\n --tw-translate-x: -50%;\\n transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));\\n}\\r\\n.-translate-y-1\\\\/2 {\\n --tw-translate-y: -50%;\\n transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));\\n}\\r\\n.translate-x-0 {\\n --tw-translate-x: 0px;\\n transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));\\n}\\r\\n.translate-x-full {\\n --tw-translate-x: 100%;\\n transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));\\n}\\r\\n.rotate-90 {\\n --tw-rotate: 90deg;\\n transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));\\n}\\r\\n.scale-105 {\\n --tw-scale-x: 1.05;\\n --tw-scale-y: 1.05;\\n transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));\\n}\\r\\n.transform {\\n transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));\\n}\\r\\n@keyframes spin {\\n\\n to {\\n transform: rotate(360deg);\\n }\\n}\\r\\n.animate-spin {\\n animation: spin 1s linear infinite;\\n}\\r\\n.cursor-pointer {\\n cursor: pointer;\\n}\\r\\n.resize-none {\\n resize: none;\\n}\\r\\n.grid-cols-1 {\\n grid-template-columns: repeat(1, minmax(0, 1fr));\\n}\\r\\n.grid-cols-2 {\\n grid-template-columns: repeat(2, minmax(0, 1fr));\\n}\\r\\n.flex-row {\\n flex-direction: row;\\n}\\r\\n.flex-row-reverse {\\n flex-direction: row-reverse;\\n}\\r\\n.flex-col {\\n flex-direction: column;\\n}\\r\\n.flex-wrap {\\n flex-wrap: wrap;\\n}\\r\\n.items-start {\\n align-items: flex-start;\\n}\\r\\n.items-center {\\n align-items: center;\\n}\\r\\n.items-baseline {\\n align-items: baseline;\\n}\\r\\n.justify-center {\\n justify-content: center;\\n}\\r\\n.justify-between {\\n justify-content: space-between;\\n}\\r\\n.gap-1 {\\n gap: 0.25rem;\\n}\\r\\n.gap-12 {\\n gap: 3rem;\\n}\\r\\n.gap-2 {\\n gap: 0.5rem;\\n}\\r\\n.gap-3 {\\n gap: 0.75rem;\\n}\\r\\n.gap-4 {\\n gap: 1rem;\\n}\\r\\n.gap-6 {\\n gap: 1.5rem;\\n}\\r\\n.gap-8 {\\n gap: 2rem;\\n}\\r\\n.space-x-4 > :not([hidden]) ~ :not([hidden]) {\\n --tw-space-x-reverse: 0;\\n margin-right: calc(1rem * var(--tw-space-x-reverse));\\n margin-left: calc(1rem * calc(1 - var(--tw-space-x-reverse)));\\n}\\r\\n.space-x-6 > :not([hidden]) ~ :not([hidden]) {\\n --tw-space-x-reverse: 0;\\n margin-right: calc(1.5rem * var(--tw-space-x-reverse));\\n margin-left: calc(1.5rem * calc(1 - var(--tw-space-x-reverse)));\\n}\\r\\n.space-y-1 > :not([hidden]) ~ :not([hidden]) {\\n --tw-space-y-reverse: 0;\\n margin-top: calc(0.25rem * calc(1 - var(--tw-space-y-reverse)));\\n margin-bottom: calc(0.25rem * var(--tw-space-y-reverse));\\n}\\r\\n.space-y-12 > :not([hidden]) ~ :not([hidden]) {\\n --tw-space-y-reverse: 0;\\n margin-top: calc(3rem * calc(1 - var(--tw-space-y-reverse)));\\n margin-bottom: calc(3rem * var(--tw-space-y-reverse));\\n}\\r\\n.space-y-2 > :not([hidden]) ~ :not([hidden]) {\\n --tw-space-y-reverse: 0;\\n margin-top: calc(0.5rem * calc(1 - var(--tw-space-y-reverse)));\\n margin-bottom: calc(0.5rem * var(--tw-space-y-reverse));\\n}\\r\\n.space-y-3 > :not([hidden]) ~ :not([hidden]) {\\n --tw-space-y-reverse: 0;\\n margin-top: calc(0.75rem * calc(1 - var(--tw-space-y-reverse)));\\n margin-bottom: calc(0.75rem * var(--tw-space-y-reverse));\\n}\\r\\n.space-y-4 > :not([hidden]) ~ :not([hidden]) {\\n --tw-space-y-reverse: 0;\\n margin-top: calc(1rem * calc(1 - var(--tw-space-y-reverse)));\\n margin-bottom: calc(1rem * var(--tw-space-y-reverse));\\n}\\r\\n.space-y-6 > :not([hidden]) ~ :not([hidden]) {\\n --tw-space-y-reverse: 0;\\n margin-top: calc(1.5rem * calc(1 - var(--tw-space-y-reverse)));\\n margin-bottom: calc(1.5rem * var(--tw-space-y-reverse));\\n}\\r\\n.space-y-8 > :not([hidden]) ~ :not([hidden]) {\\n --tw-space-y-reverse: 0;\\n margin-top: calc(2rem * calc(1 - var(--tw-space-y-reverse)));\\n margin-bottom: calc(2rem * var(--tw-space-y-reverse));\\n}\\r\\n.overflow-hidden {\\n overflow: hidden;\\n}\\r\\n.rounded {\\n border-radius: 0.25rem;\\n}\\r\\n.rounded-2xl {\\n border-radius: 1rem;\\n}\\r\\n.rounded-full {\\n border-radius: 9999px;\\n}\\r\\n.rounded-lg {\\n border-radius: 0.5rem;\\n}\\r\\n.rounded-xl {\\n border-radius: 0.75rem;\\n}\\r\\n.border {\\n border-width: 1px;\\n}\\r\\n.border-2 {\\n border-width: 2px;\\n}\\r\\n.border-t {\\n border-top-width: 1px;\\n}\\r\\n.border-gray-100 {\\n --tw-border-opacity: 1;\\n border-color: rgb(243 244 246 / var(--tw-border-opacity, 1));\\n}\\r\\n.border-gray-200 {\\n --tw-border-opacity: 1;\\n border-color: rgb(229 231 235 / var(--tw-border-opacity, 1));\\n}\\r\\n.border-gray-300 {\\n --tw-border-opacity: 1;\\n border-color: rgb(209 213 219 / var(--tw-border-opacity, 1));\\n}\\r\\n.border-gray-700 {\\n --tw-border-opacity: 1;\\n border-color: rgb(55 65 81 / var(--tw-border-opacity, 1));\\n}\\r\\n.border-green-200 {\\n --tw-border-opacity: 1;\\n border-color: rgb(187 247 208 / var(--tw-border-opacity, 1));\\n}\\r\\n.border-primary {\\n --tw-border-opacity: 1;\\n border-color: rgb(51 51 51 / var(--tw-border-opacity, 1));\\n}\\r\\n.border-red-200 {\\n --tw-border-opacity: 1;\\n border-color: rgb(254 202 202 / var(--tw-border-opacity, 1));\\n}\\r\\n.border-white {\\n --tw-border-opacity: 1;\\n border-color: rgb(255 255 255 / var(--tw-border-opacity, 1));\\n}\\r\\n.border-white\\\\/20 {\\n border-color: rgb(255 255 255 / 0.2);\\n}\\r\\n.border-yellow-200 {\\n --tw-border-opacity: 1;\\n border-color: rgb(254 240 138 / var(--tw-border-opacity, 1));\\n}\\r\\n.border-t-transparent {\\n border-top-color: transparent;\\n}\\r\\n.bg-accent {\\n --tw-bg-opacity: 1;\\n background-color: rgb(0 106 255 / var(--tw-bg-opacity, 1));\\n}\\r\\n.bg-accent\\\\/20 {\\n background-color: rgb(0 106 255 / 0.2);\\n}\\r\\n.bg-background {\\n --tw-bg-opacity: 1;\\n background-color: rgb(255 255 255 / var(--tw-bg-opacity, 1));\\n}\\r\\n.bg-black\\\\/10 {\\n background-color: rgb(0 0 0 / 0.1);\\n}\\r\\n.bg-blue-100 {\\n --tw-bg-opacity: 1;\\n background-color: rgb(219 234 254 / var(--tw-bg-opacity, 1));\\n}\\r\\n.bg-blue-50 {\\n --tw-bg-opacity: 1;\\n background-color: rgb(239 246 255 / var(--tw-bg-opacity, 1));\\n}\\r\\n.bg-gray-100 {\\n --tw-bg-opacity: 1;\\n background-color: rgb(243 244 246 / var(--tw-bg-opacity, 1));\\n}\\r\\n.bg-gray-50 {\\n --tw-bg-opacity: 1;\\n background-color: rgb(249 250 251 / var(--tw-bg-opacity, 1));\\n}\\r\\n.bg-gray-900 {\\n --tw-bg-opacity: 1;\\n background-color: rgb(17 24 39 / var(--tw-bg-opacity, 1));\\n}\\r\\n.bg-green-100 {\\n --tw-bg-opacity: 1;\\n background-color: rgb(220 252 231 / var(--tw-bg-opacity, 1));\\n}\\r\\n.bg-green-50 {\\n --tw-bg-opacity: 1;\\n background-color: rgb(240 253 244 / var(--tw-bg-opacity, 1));\\n}\\r\\n.bg-green-500 {\\n --tw-bg-opacity: 1;\\n background-color: rgb(34 197 94 / var(--tw-bg-opacity, 1));\\n}\\r\\n.bg-orange-100 {\\n --tw-bg-opacity: 1;\\n background-color: rgb(255 237 213 / var(--tw-bg-opacity, 1));\\n}\\r\\n.bg-purple-100 {\\n --tw-bg-opacity: 1;\\n background-color: rgb(243 232 255 / var(--tw-bg-opacity, 1));\\n}\\r\\n.bg-purple-500 {\\n --tw-bg-opacity: 1;\\n background-color: rgb(168 85 247 / var(--tw-bg-opacity, 1));\\n}\\r\\n.bg-red-100 {\\n --tw-bg-opacity: 1;\\n background-color: rgb(254 226 226 / var(--tw-bg-opacity, 1));\\n}\\r\\n.bg-red-50 {\\n --tw-bg-opacity: 1;\\n background-color: rgb(254 242 242 / var(--tw-bg-opacity, 1));\\n}\\r\\n.bg-teal-100 {\\n --tw-bg-opacity: 1;\\n background-color: rgb(204 251 241 / var(--tw-bg-opacity, 1));\\n}\\r\\n.bg-white {\\n --tw-bg-opacity: 1;\\n background-color: rgb(255 255 255 / var(--tw-bg-opacity, 1));\\n}\\r\\n.bg-white\\\\/10 {\\n background-color: rgb(255 255 255 / 0.1);\\n}\\r\\n.bg-white\\\\/20 {\\n background-color: rgb(255 255 255 / 0.2);\\n}\\r\\n.bg-white\\\\/5 {\\n background-color: rgb(255 255 255 / 0.05);\\n}\\r\\n.bg-white\\\\/80 {\\n background-color: rgb(255 255 255 / 0.8);\\n}\\r\\n.bg-yellow-50 {\\n --tw-bg-opacity: 1;\\n background-color: rgb(254 252 232 / var(--tw-bg-opacity, 1));\\n}\\r\\n.bg-gradient-to-br {\\n background-image: linear-gradient(to bottom right, var(--tw-gradient-stops));\\n}\\r\\n.bg-gradient-to-r {\\n background-image: linear-gradient(to right, var(--tw-gradient-stops));\\n}\\r\\n.from-accent {\\n --tw-gradient-from: #006AFF var(--tw-gradient-from-position);\\n --tw-gradient-to: rgb(0 106 255 / 0) var(--tw-gradient-to-position);\\n --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);\\n}\\r\\n.from-accent\\\\/10 {\\n --tw-gradient-from: rgb(0 106 255 / 0.1) var(--tw-gradient-from-position);\\n --tw-gradient-to: rgb(0 106 255 / 0) var(--tw-gradient-to-position);\\n --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);\\n}\\r\\n.from-blue-50 {\\n --tw-gradient-from: #eff6ff var(--tw-gradient-from-position);\\n --tw-gradient-to: rgb(239 246 255 / 0) var(--tw-gradient-to-position);\\n --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);\\n}\\r\\n.from-gray-50 {\\n --tw-gradient-from: #f9fafb var(--tw-gradient-from-position);\\n --tw-gradient-to: rgb(249 250 251 / 0) var(--tw-gradient-to-position);\\n --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);\\n}\\r\\n.from-green-50 {\\n --tw-gradient-from: #f0fdf4 var(--tw-gradient-from-position);\\n --tw-gradient-to: rgb(240 253 244 / 0) var(--tw-gradient-to-position);\\n --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);\\n}\\r\\n.from-orange-50 {\\n --tw-gradient-from: #fff7ed var(--tw-gradient-from-position);\\n --tw-gradient-to: rgb(255 247 237 / 0) var(--tw-gradient-to-position);\\n --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);\\n}\\r\\n.from-purple-50 {\\n --tw-gradient-from: #faf5ff var(--tw-gradient-from-position);\\n --tw-gradient-to: rgb(250 245 255 / 0) var(--tw-gradient-to-position);\\n --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);\\n}\\r\\n.from-yellow-300 {\\n --tw-gradient-from: #fde047 var(--tw-gradient-from-position);\\n --tw-gradient-to: rgb(253 224 71 / 0) var(--tw-gradient-to-position);\\n --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);\\n}\\r\\n.via-blue-600 {\\n --tw-gradient-to: rgb(37 99 235 / 0) var(--tw-gradient-to-position);\\n --tw-gradient-stops: var(--tw-gradient-from), #2563eb var(--tw-gradient-via-position), var(--tw-gradient-to);\\n}\\r\\n.to-accent\\\\/20 {\\n --tw-gradient-to: rgb(0 106 255 / 0.2) var(--tw-gradient-to-position);\\n}\\r\\n.to-blue-100 {\\n --tw-gradient-to: #dbeafe var(--tw-gradient-to-position);\\n}\\r\\n.to-blue-50 {\\n --tw-gradient-to: #eff6ff var(--tw-gradient-to-position);\\n}\\r\\n.to-blue-600 {\\n --tw-gradient-to: #2563eb var(--tw-gradient-to-position);\\n}\\r\\n.to-gray-100 {\\n --tw-gradient-to: #f3f4f6 var(--tw-gradient-to-position);\\n}\\r\\n.to-indigo-100 {\\n --tw-gradient-to: #e0e7ff var(--tw-gradient-to-position);\\n}\\r\\n.to-indigo-50 {\\n --tw-gradient-to: #eef2ff var(--tw-gradient-to-position);\\n}\\r\\n.to-orange-300 {\\n --tw-gradient-to: #fdba74 var(--tw-gradient-to-position);\\n}\\r\\n.to-purple-600 {\\n --tw-gradient-to: #9333ea var(--tw-gradient-to-position);\\n}\\r\\n.to-red-100 {\\n --tw-gradient-to: #fee2e2 var(--tw-gradient-to-position);\\n}\\r\\n.bg-clip-text {\\n -webkit-background-clip: text;\\n background-clip: text;\\n}\\r\\n.p-2 {\\n padding: 0.5rem;\\n}\\r\\n.p-3 {\\n padding: 0.75rem;\\n}\\r\\n.p-4 {\\n padding: 1rem;\\n}\\r\\n.p-6 {\\n padding: 1.5rem;\\n}\\r\\n.p-8 {\\n padding: 2rem;\\n}\\r\\n.px-2 {\\n padding-left: 0.5rem;\\n padding-right: 0.5rem;\\n}\\r\\n.px-3 {\\n padding-left: 0.75rem;\\n padding-right: 0.75rem;\\n}\\r\\n.px-4 {\\n padding-left: 1rem;\\n padding-right: 1rem;\\n}\\r\\n.px-6 {\\n padding-left: 1.5rem;\\n padding-right: 1.5rem;\\n}\\r\\n.px-8 {\\n padding-left: 2rem;\\n padding-right: 2rem;\\n}\\r\\n.py-1 {\\n padding-top: 0.25rem;\\n padding-bottom: 0.25rem;\\n}\\r\\n.py-12 {\\n padding-top: 3rem;\\n padding-bottom: 3rem;\\n}\\r\\n.py-16 {\\n padding-top: 4rem;\\n padding-bottom: 4rem;\\n}\\r\\n.py-2 {\\n padding-top: 0.5rem;\\n padding-bottom: 0.5rem;\\n}\\r\\n.py-20 {\\n padding-top: 5rem;\\n padding-bottom: 5rem;\\n}\\r\\n.py-3 {\\n padding-top: 0.75rem;\\n padding-bottom: 0.75rem;\\n}\\r\\n.py-4 {\\n padding-top: 1rem;\\n padding-bottom: 1rem;\\n}\\r\\n.py-section {\\n padding-top: 4rem;\\n padding-bottom: 4rem;\\n}\\r\\n.pb-12 {\\n padding-bottom: 3rem;\\n}\\r\\n.pb-24 {\\n padding-bottom: 6rem;\\n}\\r\\n.pb-6 {\\n padding-bottom: 1.5rem;\\n}\\r\\n.pl-10 {\\n padding-left: 2.5rem;\\n}\\r\\n.pl-8 {\\n padding-left: 2rem;\\n}\\r\\n.pr-4 {\\n padding-right: 1rem;\\n}\\r\\n.pr-8 {\\n padding-right: 2rem;\\n}\\r\\n.pt-16 {\\n padding-top: 4rem;\\n}\\r\\n.pt-4 {\\n padding-top: 1rem;\\n}\\r\\n.pt-6 {\\n padding-top: 1.5rem;\\n}\\r\\n.pt-8 {\\n padding-top: 2rem;\\n}\\r\\n.text-left {\\n text-align: left;\\n}\\r\\n.text-center {\\n text-align: center;\\n}\\r\\n.text-right {\\n text-align: right;\\n}\\r\\n.text-2xl {\\n font-size: 1.5rem;\\n line-height: 2rem;\\n}\\r\\n.text-3xl {\\n font-size: 1.875rem;\\n line-height: 2.25rem;\\n}\\r\\n.text-4xl {\\n font-size: 2.25rem;\\n line-height: 2.5rem;\\n}\\r\\n.text-5xl {\\n font-size: 3rem;\\n line-height: 1;\\n}\\r\\n.text-base {\\n font-size: 1rem;\\n line-height: 1.5rem;\\n}\\r\\n.text-lg {\\n font-size: 1.125rem;\\n line-height: 1.75rem;\\n}\\r\\n.text-sm {\\n font-size: 0.875rem;\\n line-height: 1.25rem;\\n}\\r\\n.text-xl {\\n font-size: 1.25rem;\\n line-height: 1.75rem;\\n}\\r\\n.text-xs {\\n font-size: 0.75rem;\\n line-height: 1rem;\\n}\\r\\n.font-bold {\\n font-weight: 700;\\n}\\r\\n.font-medium {\\n font-weight: 500;\\n}\\r\\n.font-semibold {\\n font-weight: 600;\\n}\\r\\n.italic {\\n font-style: italic;\\n}\\r\\n.leading-relaxed {\\n line-height: 1.625;\\n}\\r\\n.text-accent {\\n --tw-text-opacity: 1;\\n color: rgb(0 106 255 / var(--tw-text-opacity, 1));\\n}\\r\\n.text-blue-100 {\\n --tw-text-opacity: 1;\\n color: rgb(219 234 254 / var(--tw-text-opacity, 1));\\n}\\r\\n.text-blue-200 {\\n --tw-text-opacity: 1;\\n color: rgb(191 219 254 / var(--tw-text-opacity, 1));\\n}\\r\\n.text-blue-500 {\\n --tw-text-opacity: 1;\\n color: rgb(59 130 246 / var(--tw-text-opacity, 1));\\n}\\r\\n.text-blue-600 {\\n --tw-text-opacity: 1;\\n color: rgb(37 99 235 / var(--tw-text-opacity, 1));\\n}\\r\\n.text-gray-300 {\\n --tw-text-opacity: 1;\\n color: rgb(209 213 219 / var(--tw-text-opacity, 1));\\n}\\r\\n.text-gray-400 {\\n --tw-text-opacity: 1;\\n color: rgb(156 163 175 / var(--tw-text-opacity, 1));\\n}\\r\\n.text-gray-500 {\\n --tw-text-opacity: 1;\\n color: rgb(107 114 128 / var(--tw-text-opacity, 1));\\n}\\r\\n.text-gray-600 {\\n --tw-text-opacity: 1;\\n color: rgb(75 85 99 / var(--tw-text-opacity, 1));\\n}\\r\\n.text-gray-700 {\\n --tw-text-opacity: 1;\\n color: rgb(55 65 81 / var(--tw-text-opacity, 1));\\n}\\r\\n.text-green-300 {\\n --tw-text-opacity: 1;\\n color: rgb(134 239 172 / var(--tw-text-opacity, 1));\\n}\\r\\n.text-green-500 {\\n --tw-text-opacity: 1;\\n color: rgb(34 197 94 / var(--tw-text-opacity, 1));\\n}\\r\\n.text-green-600 {\\n --tw-text-opacity: 1;\\n color: rgb(22 163 74 / var(--tw-text-opacity, 1));\\n}\\r\\n.text-green-700 {\\n --tw-text-opacity: 1;\\n color: rgb(21 128 61 / var(--tw-text-opacity, 1));\\n}\\r\\n.text-green-800 {\\n --tw-text-opacity: 1;\\n color: rgb(22 101 52 / var(--tw-text-opacity, 1));\\n}\\r\\n.text-indigo-500 {\\n --tw-text-opacity: 1;\\n color: rgb(99 102 241 / var(--tw-text-opacity, 1));\\n}\\r\\n.text-orange-500 {\\n --tw-text-opacity: 1;\\n color: rgb(249 115 22 / var(--tw-text-opacity, 1));\\n}\\r\\n.text-orange-600 {\\n --tw-text-opacity: 1;\\n color: rgb(234 88 12 / var(--tw-text-opacity, 1));\\n}\\r\\n.text-primary {\\n --tw-text-opacity: 1;\\n color: rgb(51 51 51 / var(--tw-text-opacity, 1));\\n}\\r\\n.text-purple-300 {\\n --tw-text-opacity: 1;\\n color: rgb(216 180 254 / var(--tw-text-opacity, 1));\\n}\\r\\n.text-purple-500 {\\n --tw-text-opacity: 1;\\n color: rgb(168 85 247 / var(--tw-text-opacity, 1));\\n}\\r\\n.text-purple-600 {\\n --tw-text-opacity: 1;\\n color: rgb(147 51 234 / var(--tw-text-opacity, 1));\\n}\\r\\n.text-red-500 {\\n --tw-text-opacity: 1;\\n color: rgb(239 68 68 / var(--tw-text-opacity, 1));\\n}\\r\\n.text-red-600 {\\n --tw-text-opacity: 1;\\n color: rgb(220 38 38 / var(--tw-text-opacity, 1));\\n}\\r\\n.text-red-700 {\\n --tw-text-opacity: 1;\\n color: rgb(185 28 28 / var(--tw-text-opacity, 1));\\n}\\r\\n.text-teal-600 {\\n --tw-text-opacity: 1;\\n color: rgb(13 148 136 / var(--tw-text-opacity, 1));\\n}\\r\\n.text-transparent {\\n color: transparent;\\n}\\r\\n.text-white {\\n --tw-text-opacity: 1;\\n color: rgb(255 255 255 / var(--tw-text-opacity, 1));\\n}\\r\\n.text-yellow-300 {\\n --tw-text-opacity: 1;\\n color: rgb(253 224 71 / var(--tw-text-opacity, 1));\\n}\\r\\n.text-yellow-500 {\\n --tw-text-opacity: 1;\\n color: rgb(234 179 8 / var(--tw-text-opacity, 1));\\n}\\r\\n.text-yellow-600 {\\n --tw-text-opacity: 1;\\n color: rgb(202 138 4 / var(--tw-text-opacity, 1));\\n}\\r\\n.text-yellow-700 {\\n --tw-text-opacity: 1;\\n color: rgb(161 98 7 / var(--tw-text-opacity, 1));\\n}\\r\\n.text-yellow-800 {\\n --tw-text-opacity: 1;\\n color: rgb(133 77 14 / var(--tw-text-opacity, 1));\\n}\\r\\n.line-through {\\n text-decoration-line: line-through;\\n}\\r\\n.opacity-80 {\\n opacity: 0.8;\\n}\\r\\n.shadow-lg {\\n --tw-shadow: 0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1);\\n --tw-shadow-colored: 0 10px 15px -3px var(--tw-shadow-color), 0 4px 6px -4px var(--tw-shadow-color);\\n box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);\\n}\\r\\n.shadow-md {\\n --tw-shadow: 0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1);\\n --tw-shadow-colored: 0 4px 6px -1px var(--tw-shadow-color), 0 2px 4px -2px var(--tw-shadow-color);\\n box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);\\n}\\r\\n.shadow-sm {\\n --tw-shadow: 0 1px 2px 0 rgb(0 0 0 / 0.05);\\n --tw-shadow-colored: 0 1px 2px 0 var(--tw-shadow-color);\\n box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);\\n}\\r\\n.outline-none {\\n outline: 2px solid transparent;\\n outline-offset: 2px;\\n}\\r\\n.ring-2 {\\n --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);\\n --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);\\n box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000);\\n}\\r\\n.ring-accent {\\n --tw-ring-opacity: 1;\\n --tw-ring-color: rgb(0 106 255 / var(--tw-ring-opacity, 1));\\n}\\r\\n.filter {\\n filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow);\\n}\\r\\n.backdrop-blur-sm {\\n --tw-backdrop-blur: blur(4px);\\n -webkit-backdrop-filter: var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);\\n backdrop-filter: var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);\\n}\\r\\n.transition {\\n transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, -webkit-backdrop-filter;\\n transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter;\\n transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter, -webkit-backdrop-filter;\\n transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\\n transition-duration: 150ms;\\n}\\r\\n.transition-all {\\n transition-property: all;\\n transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\\n transition-duration: 150ms;\\n}\\r\\n.transition-colors {\\n transition-property: color, background-color, border-color, text-decoration-color, fill, stroke;\\n transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\\n transition-duration: 150ms;\\n}\\r\\n.transition-shadow {\\n transition-property: box-shadow;\\n transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\\n transition-duration: 150ms;\\n}\\r\\n.transition-transform {\\n transition-property: transform;\\n transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\\n transition-duration: 150ms;\\n}\\r\\n.duration-300 {\\n transition-duration: 300ms;\\n}\\r\\n\\r\\nbody {\\n --tw-bg-opacity: 1;\\n background-color: rgb(255 255 255 / var(--tw-bg-opacity, 1));\\n font-family: Inter, sans-serif;\\n --tw-text-opacity: 1;\\n color: rgb(51 51 51 / var(--tw-text-opacity, 1));\\n}\\r\\n\\r\\nmain {\\n display: flex;\\n flex-direction: column;\\n gap: 4rem;\\n}\\r\\n\\r\\n/* 文本截断样式 */\\r\\n.line-clamp-2 {\\r\\n display: -webkit-box;\\r\\n -webkit-line-clamp: 2;\\r\\n -webkit-box-orient: vertical;\\r\\n overflow: hidden;\\r\\n}\\r\\n\\r\\n.line-clamp-3 {\\r\\n display: -webkit-box;\\r\\n -webkit-line-clamp: 3;\\r\\n -webkit-box-orient: vertical;\\r\\n overflow: hidden;\\r\\n}\\r\\n\\r\\n/* 自定义滚动条 */\\r\\n::-webkit-scrollbar {\\r\\n width: 8px;\\r\\n}\\r\\n\\r\\n::-webkit-scrollbar-track {\\r\\n background: #f1f1f1;\\r\\n border-radius: 4px;\\r\\n}\\r\\n\\r\\n::-webkit-scrollbar-thumb {\\r\\n background: #c1c1c1;\\r\\n border-radius: 4px;\\r\\n}\\r\\n\\r\\n::-webkit-scrollbar-thumb:hover {\\r\\n background: #a8a8a8;\\r\\n}\\r\\n\\r\\n/* 平滑滚动 */\\r\\nhtml {\\r\\n scroll-behavior: smooth;\\r\\n}\\r\\n\\r\\n/* 焦点样式 */\\r\\n.focus\\\\:ring-2:focus {\\r\\n --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);\\r\\n --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);\\r\\n box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000);\\r\\n}\\r\\n.hover\\\\:scale-105:hover {\\n --tw-scale-x: 1.05;\\n --tw-scale-y: 1.05;\\n transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));\\n}\\r\\n.hover\\\\:border-accent:hover {\\n --tw-border-opacity: 1;\\n border-color: rgb(0 106 255 / var(--tw-border-opacity, 1));\\n}\\r\\n.hover\\\\:border-accent\\\\/20:hover {\\n border-color: rgb(0 106 255 / 0.2);\\n}\\r\\n.hover\\\\:bg-accent:hover {\\n --tw-bg-opacity: 1;\\n background-color: rgb(0 106 255 / var(--tw-bg-opacity, 1));\\n}\\r\\n.hover\\\\:bg-blue-700:hover {\\n --tw-bg-opacity: 1;\\n background-color: rgb(29 78 216 / var(--tw-bg-opacity, 1));\\n}\\r\\n.hover\\\\:bg-gray-100:hover {\\n --tw-bg-opacity: 1;\\n background-color: rgb(243 244 246 / var(--tw-bg-opacity, 1));\\n}\\r\\n.hover\\\\:bg-gray-50:hover {\\n --tw-bg-opacity: 1;\\n background-color: rgb(249 250 251 / var(--tw-bg-opacity, 1));\\n}\\r\\n.hover\\\\:bg-primary:hover {\\n --tw-bg-opacity: 1;\\n background-color: rgb(51 51 51 / var(--tw-bg-opacity, 1));\\n}\\r\\n.hover\\\\:bg-white:hover {\\n --tw-bg-opacity: 1;\\n background-color: rgb(255 255 255 / var(--tw-bg-opacity, 1));\\n}\\r\\n.hover\\\\:from-blue-600:hover {\\n --tw-gradient-from: #2563eb var(--tw-gradient-from-position);\\n --tw-gradient-to: rgb(37 99 235 / 0) var(--tw-gradient-to-position);\\n --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);\\n}\\r\\n.hover\\\\:to-accent:hover {\\n --tw-gradient-to: #006AFF var(--tw-gradient-to-position);\\n}\\r\\n.hover\\\\:text-accent:hover {\\n --tw-text-opacity: 1;\\n color: rgb(0 106 255 / var(--tw-text-opacity, 1));\\n}\\r\\n.hover\\\\:text-blue-700:hover {\\n --tw-text-opacity: 1;\\n color: rgb(29 78 216 / var(--tw-text-opacity, 1));\\n}\\r\\n.hover\\\\:text-primary:hover {\\n --tw-text-opacity: 1;\\n color: rgb(51 51 51 / var(--tw-text-opacity, 1));\\n}\\r\\n.hover\\\\:text-white:hover {\\n --tw-text-opacity: 1;\\n color: rgb(255 255 255 / var(--tw-text-opacity, 1));\\n}\\r\\n.hover\\\\:underline:hover {\\n text-decoration-line: underline;\\n}\\r\\n.hover\\\\:opacity-90:hover {\\n opacity: 0.9;\\n}\\r\\n.hover\\\\:shadow-2xl:hover {\\n --tw-shadow: 0 25px 50px -12px rgb(0 0 0 / 0.25);\\n --tw-shadow-colored: 0 25px 50px -12px var(--tw-shadow-color);\\n box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);\\n}\\r\\n.hover\\\\:shadow-lg:hover {\\n --tw-shadow: 0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1);\\n --tw-shadow-colored: 0 10px 15px -3px var(--tw-shadow-color), 0 4px 6px -4px var(--tw-shadow-color);\\n box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);\\n}\\r\\n.hover\\\\:shadow-xl:hover {\\n --tw-shadow: 0 20px 25px -5px rgb(0 0 0 / 0.1), 0 8px 10px -6px rgb(0 0 0 / 0.1);\\n --tw-shadow-colored: 0 20px 25px -5px var(--tw-shadow-color), 0 8px 10px -6px var(--tw-shadow-color);\\n box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);\\n}\\r\\n.focus\\\\:border-transparent:focus {\\n border-color: transparent;\\n}\\r\\n.focus\\\\:outline-none:focus {\\n outline: 2px solid transparent;\\n outline-offset: 2px;\\n}\\r\\n.focus\\\\:ring-2:focus {\\n --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);\\n --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);\\n box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000);\\n}\\r\\n.focus\\\\:ring-accent:focus {\\n --tw-ring-opacity: 1;\\n --tw-ring-color: rgb(0 106 255 / var(--tw-ring-opacity, 1));\\n}\\r\\n.disabled\\\\:cursor-not-allowed:disabled {\\n cursor: not-allowed;\\n}\\r\\n.disabled\\\\:opacity-50:disabled {\\n opacity: 0.5;\\n}\\r\\n.group:hover .group-hover\\\\:translate-x-1 {\\n --tw-translate-x: 0.25rem;\\n transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));\\n}\\r\\n.group:hover .group-hover\\\\:scale-110 {\\n --tw-scale-x: 1.1;\\n --tw-scale-y: 1.1;\\n transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));\\n}\\r\\n.group:hover .group-hover\\\\:gap-3 {\\n gap: 0.75rem;\\n}\\r\\n.group:hover .group-hover\\\\:bg-accent {\\n --tw-bg-opacity: 1;\\n background-color: rgb(0 106 255 / var(--tw-bg-opacity, 1));\\n}\\r\\n.group:hover .group-hover\\\\:text-accent {\\n --tw-text-opacity: 1;\\n color: rgb(0 106 255 / var(--tw-text-opacity, 1));\\n}\\r\\n.group:hover .group-hover\\\\:text-white {\\n --tw-text-opacity: 1;\\n color: rgb(255 255 255 / var(--tw-text-opacity, 1));\\n}\\r\\n@media (min-width: 640px) {\\n\\n .sm\\\\:flex-row {\\n flex-direction: row;\\n }\\n}\\r\\n@media (min-width: 768px) {\\n\\n .md\\\\:col-span-2 {\\n grid-column: span 2 / span 2;\\n }\\n\\n .md\\\\:mt-0 {\\n margin-top: 0px;\\n }\\n\\n .md\\\\:flex {\\n display: flex;\\n }\\n\\n .md\\\\:hidden {\\n display: none;\\n }\\n\\n .md\\\\:w-1\\\\/2 {\\n width: 50%;\\n }\\n\\n .md\\\\:grid-cols-2 {\\n grid-template-columns: repeat(2, minmax(0, 1fr));\\n }\\n\\n .md\\\\:grid-cols-3 {\\n grid-template-columns: repeat(3, minmax(0, 1fr));\\n }\\n\\n .md\\\\:grid-cols-4 {\\n grid-template-columns: repeat(4, minmax(0, 1fr));\\n }\\n\\n .md\\\\:grid-cols-5 {\\n grid-template-columns: repeat(5, minmax(0, 1fr));\\n }\\n\\n .md\\\\:flex-row {\\n flex-direction: row;\\n }\\n\\n .md\\\\:p-12 {\\n padding: 3rem;\\n }\\n\\n .md\\\\:text-3xl {\\n font-size: 1.875rem;\\n line-height: 2.25rem;\\n }\\n\\n .md\\\\:text-4xl {\\n font-size: 2.25rem;\\n line-height: 2.5rem;\\n }\\n\\n .md\\\\:text-5xl {\\n font-size: 3rem;\\n line-height: 1;\\n }\\n}\\r\\n@media (min-width: 1024px) {\\n\\n .lg\\\\:col-span-2 {\\n grid-column: span 2 / span 2;\\n }\\n\\n .lg\\\\:grid-cols-2 {\\n grid-template-columns: repeat(2, minmax(0, 1fr));\\n }\\n\\n .lg\\\\:grid-cols-3 {\\n grid-template-columns: repeat(3, minmax(0, 1fr));\\n }\\n\\n .lg\\\\:grid-cols-4 {\\n grid-template-columns: repeat(4, minmax(0, 1fr));\\n }\\n\\n .lg\\\\:grid-cols-6 {\\n grid-template-columns: repeat(6, minmax(0, 1fr));\\n }\\n\\n .lg\\\\:flex-row {\\n flex-direction: row;\\n }\\n}\\r\\n@media (min-width: 1280px) {\\n\\n .xl\\\\:grid-cols-3 {\\n grid-template-columns: repeat(3, minmax(0, 1fr));\\n }\\n}\", \"\",{\"version\":3,\"sources\":[\"webpack://styles/globals.css\"],\"names\":[],\"mappings\":\"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B;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA,iBAAmB;EAAnB;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA,gBAAmB;EAAnB,oBAAmB;EAAnB,4BAAmB;EAAnB;AAAmB;AAAnB;EAAA,gBAAmB;EAAnB,oBAAmB;EAAnB,4BAAmB;EAAnB;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AA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AAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA,iBAAmB;EAAnB;AAAmB;AAAnB;EAAA,mBAAmB;EAAnB;AAAmB;AAAnB;EAAA,kBAAmB;EAAnB;AAAmB;AAAnB;EAAA,eAAmB;EAAnB;AAAmB;AAAnB;EAAA,eAAmB;EAAnB;AAAmB;AAAnB;EAAA,mBAAmB;EAAnB;AAAmB;AAAnB;EAAA,mBAAmB;EAAnB;AAAmB;AAAnB;EAAA,kBAAmB;EAAnB;AAAmB;AAAnB;EAAA,kBAAmB;EAAnB;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA,oBAAmB;EAAnB;AAAmB;AAAnB;EAAA,oBAAmB;EAAnB;AAAmB;AAAnB;EAAA,oBAAmB;EAAnB;AAAmB;AAAnB;EAAA,oBAAmB;EAAnB;AAAmB;AAAnB;EAAA,oBAAmB;EAAnB;AAAmB;AAAnB;EAAA,oBAAmB;EAAnB;AAAmB;AAAnB;EAAA,oBAAmB;EAAnB;AAAmB;AAAnB;EAAA,oBAAmB;EAAnB;AAAmB;AAAnB;EAAA,oBAAmB;EAAnB;AAAmB;AAAnB;EAAA,oBAAmB;EAAnB;AAAmB;AAAnB;EAAA,oBAAmB;EAAnB;AAAmB;AAAnB;EAAA,oBAAmB;EAAnB;AAAmB;AAAnB;EAAA,oBAAmB;EAAnB;AAAmB;AAAnB;EAAA,oBAAmB;EAAnB;AAAmB;AAAnB;EAAA,oBAAmB;EAAnB;AAAmB;AAAnB;EAAA,oBAAmB;EAAnB;AAAmB;AAAnB;EAAA,oBAAmB;EAAnB;AAAmB;AAAnB;EAAA,oBAAmB;EAAnB;AAAmB;AAAnB;EAAA,oBAAmB;EAAnB;AAAmB;AAAnB;EAAA,oBAAmB;EAAnB;AAAmB;AAAnB;EAAA,oBAAmB;EAAnB;AAAmB;AAA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\",\"sourcesContent\":[\"@tailwind base;\\r\\n@tailwind components;\\r\\n@tailwind utilities;\\r\\n\\r\\nbody {\\r\\n @apply bg-background text-primary font-sans;\\r\\n}\\r\\n\\r\\nmain {\\r\\n @apply flex flex-col gap-section;\\r\\n}\\r\\n\\r\\n/* 文本截断样式 */\\r\\n.line-clamp-2 {\\r\\n display: -webkit-box;\\r\\n -webkit-line-clamp: 2;\\r\\n -webkit-box-orient: vertical;\\r\\n overflow: hidden;\\r\\n}\\r\\n\\r\\n.line-clamp-3 {\\r\\n display: -webkit-box;\\r\\n -webkit-line-clamp: 3;\\r\\n -webkit-box-orient: vertical;\\r\\n overflow: hidden;\\r\\n}\\r\\n\\r\\n/* 自定义滚动条 */\\r\\n::-webkit-scrollbar {\\r\\n width: 8px;\\r\\n}\\r\\n\\r\\n::-webkit-scrollbar-track {\\r\\n background: #f1f1f1;\\r\\n border-radius: 4px;\\r\\n}\\r\\n\\r\\n::-webkit-scrollbar-thumb {\\r\\n background: #c1c1c1;\\r\\n border-radius: 4px;\\r\\n}\\r\\n\\r\\n::-webkit-scrollbar-thumb:hover {\\r\\n background: #a8a8a8;\\r\\n}\\r\\n\\r\\n/* 平滑滚动 */\\r\\nhtml {\\r\\n scroll-behavior: smooth;\\r\\n}\\r\\n\\r\\n/* 焦点样式 */\\r\\n.focus\\\\:ring-2:focus {\\r\\n --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);\\r\\n --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);\\r\\n box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000);\\r\\n}\"],\"sourceRoot\":\"\"}]);\n// Exports\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (___CSS_LOADER_EXPORT___);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvYnVpbGQvd2VicGFjay9sb2FkZXJzL2Nzcy1sb2FkZXIvc3JjL2luZGV4LmpzPz9ydWxlU2V0WzFdLnJ1bGVzWzddLm9uZU9mWzEzXS51c2VbMV0hLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2J1aWxkL3dlYnBhY2svbG9hZGVycy9wb3N0Y3NzLWxvYWRlci9zcmMvaW5kZXguanM/P3J1bGVTZXRbMV0ucnVsZXNbN10ub25lT2ZbMTNdLnVzZVsyXSEuL3N0eWxlcy9nbG9iYWxzLmNzcyIsIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQTtBQUN3SDtBQUN4SCw4QkFBOEIsa0hBQTJCO0FBQ3pEO0FBQ0EsZ0VBQWdFLDZCQUE2Qiw2QkFBNkIsd0JBQXdCLHdCQUF3QixtQkFBbUIsbUJBQW1CLG1CQUFtQixvQkFBb0Isb0JBQW9CLGtCQUFrQixrQkFBa0IsdUJBQXVCLDJDQUEyQyxtQ0FBbUMsa0NBQWtDLGlDQUFpQyxvQkFBb0IseUJBQXlCLDJCQUEyQiw0QkFBNEIsNkJBQTZCLHVCQUF1QixnQ0FBZ0MsaUNBQWlDLDJDQUEyQyx1Q0FBdUMsZ0NBQWdDLDJCQUEyQixtQ0FBbUMsaUJBQWlCLHVCQUF1QixxQkFBcUIsc0JBQXNCLHVCQUF1QixtQkFBbUIscUJBQXFCLGtCQUFrQix3QkFBd0IsMEJBQTBCLGdDQUFnQyw4QkFBOEIsK0JBQStCLGdDQUFnQyw0QkFBNEIsNkJBQTZCLDhCQUE4QiwyQkFBMkIseUJBQXlCLDJCQUEyQiwwQkFBMEIsMEJBQTBCLEdBQUcsZ0JBQWdCLDZCQUE2Qiw2QkFBNkIsd0JBQXdCLHdCQUF3QixtQkFBbUIsbUJBQW1CLG1CQUFtQixvQkFBb0Isb0JBQW9CLGtCQUFrQixrQkFBa0IsdUJBQXVCLDJDQUEyQyxtQ0FBbUMsa0NBQWtDLGlDQUFpQyxvQkFBb0IseUJBQXlCLDJCQUEyQiw0QkFBNEIsNkJBQTZCLHVCQUF1QixnQ0FBZ0MsaUNBQWlDLDJDQUEyQyx1Q0FB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QVcsS0FBSyxXQUFXLFlBQVksTUFBTSxPQUFPLHFCQUFxQixvQkFBb0IscUJBQXFCLHFCQUFxQixNQUFNLE1BQU0sV0FBVyxNQUFNLFlBQVksTUFBTSxNQUFNLHFCQUFxQixxQkFBcUIscUJBQXFCLFVBQVUsb0JBQW9CLHFCQUFxQixxQkFBcUIscUJBQXFCLHFCQUFxQixNQUFNLE9BQU8sTUFBTSxLQUFLLG9CQUFvQixxQkFBcUIsTUFBTSxRQUFRLE1BQU0sS0FBSyxvQkFBb0Isb0JBQW9CLHFCQUFxQixNQUFNLE1BQU0sTUFBTSxLQUFLLFdBQVcsV0FBVyxNQUFNLE1BQU0sTUFBTSxVQUFVLFdBQVcsV0FBVyxNQUFNLE1BQU0sTUFBTSxLQUFLLFVBQVUsV0FBVyxNQUFNLE1BQU0sTUFBTSxNQUFNLFdBQVcsTUFBTSxTQUFTLE1BQU0sUUFBUSxxQkFBcUIscUJBQXFCLHFCQUFxQixvQkFBb0IsTUFBTSxNQUFNLE1BQU0sS0FBSyxVQUFVLE1BQU0sTUFBTSxNQUFNLE1BQU0sVUFBVSxVQUFVLFdBQVcsV0FBVyxNQUFNLEtBQUssVUFBVSxNQUFNLEtBQUssVUFBVSxNQUFNLFFBQVEsTUFBTSxLQUFLLG9CQUFvQixxQkFBcUIscUJBQXFCLE1BQU0sUUFBUSxNQUFNLFNBQVMscUJBQXFCLHFCQUFxQixxQkFBcUIsb0JBQW9CLHFCQUFxQixxQkFBcUIscUJBQXFCLG9CQUFvQixvQkFBb0Isb0JBQW9CLE1BQU0sTUFBTSxNQUFNLE1BQU0sV0FBVyxNQUFNLE9BQU8sTUFBTSxRQUFRLHFCQUFxQixxQkFBcUIscUJBQXFCLE1BQU0sTUFBTSxNQUFNLEtBQUssVUFBVSxNQUFNLE1BQU0sTUFBTSxLQUFLLFdBQVcsTUFBTSxNQUFNLE1BQU0sS0FBSyxXQUFXLE1BQU0sTUFBTSxNQUFNLE1BQU0sVUFBVSxNQUFNLE9BQU8sTUFBTSxLQUFLLHFCQUFxQixxQkFBcUIsTUFBTSxNQUFNLE1BQU0sS0FBSyxXQUFXLE1BQU0sT0FBTyxNQUFNLEtBQUsscUJBQXFCLG9CQUFvQixNQUFNLE1BQU0sTUFBTSxLQUFLLFdBQVcsTUFBTSxNQUFNLE1BQU0saUJBQWlCLFVBQVUsTUFBTSxLQUFLLFVBQVUsVUFBVSxNQUFNLEtBQUssVUFBVSxNQUFNLE9BQU8sV0FBVyxVQUFVLFVBQVUsTUFBTSxNQUFNLEtBQUssS0FBSyxVQUFVLE1BQU0sTUFBTSxNQUFNLEtBQUssV0FBVyxNQUFNLE9BQU8sTUFBTSxLQUFLLG9CQUFvQixvQkFBb0IsTUFBTSxNQUFNLG9CQUFvQixvQkFBb0IsTUFBTSxNQUFNLE1BQU0sTUFBTSxVQUFVLE1BQU0sTUFBTSxLQUFLLEtBQUssVUFBVSxNQUFNLFFBQVEsTUFBTSxZQUFZLG9CQUFvQixxQkFBcUIsTUFBTSxNQUFNLE1BQU0sTUFBTSxVQUFVLFVBQVUsTUFBTSxXQUFXLEtBQUssVUFBVSxLQUFLLEtBQUssS0FBSyxNQUFNLE9BQU8sS0FBSyxLQUFLLE1BQU0sS0FBSyxPQUFPLEtBQUssS0FBSyxNQUFNLEtBQUssT0FBTyxLQUFLLEtBQUssTUFBTSxLQUFLLE9BQU8sS0FBSyxLQUFLLE1BQU0sS0FBSyxPQUFPLEtBQUssS0FBSyxNQUFNLEtBQUssTUFBTSxLQUFLLE1BQU0sTUFBTSxLQUFLLE1BQU0sTUFBTSxLQUFLLE1BQU0sTUFBTSxLQUFLLE1BQU0sTUFBTSxXQUFXLE1BQU0sTUFBTSxNQUFNLEtBQUssTUFBTSxNQUFNLEtBQUssTUFBTSxNQUFNLEtBQUssTUFBTSxNQUFNLEtBQUssTUFBTSxNQUFNLEtBQUssTUFBTSxNQUFNLEtBQUssTUFBTSxNQUFNLEtBQUssTUFBTSxNQUFNLEtBQUssTUFBTSxNQUFNLEtBQUssTUFBTSxNQUFNLEtBQUssTUFBTSxNQUFNLEtBQUssTUFBTSxNQUFNLEtBQUssTUFBTSxNQUFNLEtBQUssTUFBTSxNQUFNLEtBQUssTUFBTSxNQUFNLEtBQUssTUFBTSxNQUFNLEtBQUssTUFBTSxNQUFNLEtBQUssTUFBTSxNQUFNLEtBQUssTUFBTSxNQUFNLEtBQUssTUFBTSxNQUFNLFlBQVksTUFBTSxNQUFNLE1BQU0sS0FBSyxNQUFNLE1BQU0sS0FBSyxNQUFNLE1BQU0sS0FBSyxNQUFNLE1BQU0sS0FBSyxNQUFNLE1BQU0sS0FBSyxNQUFNLE1BQU0sS0FBSyxNQUFNLE1BQU0sS0FBSyxNQUFNLE1BQU0sS0FBSyxNQUFNLE1BQU0sS0FBSyxNQUFNLE1BQU0sS0FBSyxNQUFNLE1BQU0sS0FBSyxNQUFNLE1BQU0sS0FBSyxNQUFNLE1BQU0sS0FBSyxNQUFNLE1BQU0sS0FBSyxNQUFNLE1BQU0sS0FBSyxNQUFNLE1BQU0sS0FBSyxNQUFNLE1BQU0sS0FBSyxNQUFNLE1BQU0sS0FBSyxNQUFNLE1BQU0sS0FBSyxNQUFNLE1BQU0sS0FBSyxNQUFNLE1BQU0sS0FBSyxNQUFNLE1BQU0sS0FBSyxNQUFNLE1BQU0sS0FBSyxNQUFNLE1BQU0sWUFBWSxhQUFhLGFBQWEsTUFBTSxNQUFNLE1BQU0sWUFBWSxhQUFhLGFBQWEsTUFBTSxNQUFNLE1BQU0sS0FBSyxNQUFNLE1BQU0sS0FBSyxNQUFNLE1BQU0sS0FBSyxNQUFNLE1BQU0sS0FBSyxNQUFNLE1BQU0sS0FBSyxNQUFNLE1BQU0sS0FBSyxNQUFNLE1BQU0sS0FBSyxNQUFNLE1BQU0sS0FBSyxNQUFNLE1BQU0sS0FBSyxNQUFNLE1BQU0sS0FBSyxNQUFNLE1BQU0sS0FBSyxNQUFNLE1BQU0sS0FBSyxNQUFNLE1BQU0sS0FBSyxNQUFNLE1BQU0sS0FBSyxNQUFNLE1BQU0sS0FBSyxNQUFNLE1BQU0sS0FBSyxNQUFNLE1BQU0sS0FBSyxNQUFNLE1BQU0sS0FBSyxNQUFNLE1BQU0sS0FBSyxNQUFNLE1BQU0sS0FBSyxNQUFNLE1BQU0sS0FBSyxNQUFNLE1BQU0sS0FBSyxNQUFNLE1BQU0sS0FBSyxNQUFNLE1BQU0sS0FBSyxNQUFNLE1BQU0sS0FBSyxNQUFNLE1BQU0sS0FBSyxNQUFNLE1BQU0sS0FBSyxNQUFNLE1BQU0sS0FBSyxNQUFNLE1BQU0sS0FBSyxNQUFNLE1BQU0sS0FBSyxNQUFNLE1BQU0sS0FBSyxNQUFNLE1BQU0sS0FBSyxNQUFNLE1BQU0sS0FBSyxNQUFNLE1BQU0sS0FBSyxNQUFNLE1BQU0sS0FBSyxNQUFNLE1BQU0sS0FBSyxNQUFNLE1BQU0sS0FBSyxNQUFNLE1BQU0sS0FBSyxNQUFNLE1BQU0sS0FBSyxNQUFNLE1BQU0sS0FBSyxNQUFNLE1BQU0sS0FBSyxNQUFNLE1BQU0sS0FBSyxNQUFNLE1BQU0sS0FBSyxNQUFNLE1BQU0sS0FBSyxNQUFNLE1BQU0sWUFBWSxNQUFNLE1BQU0sTUFBTSxZQUFZLE1BQU0sTUFBTSxNQUFNLFlBQVksTUFBTSxNQUFNLE1BQU0sWUFBWSxNQUFNLE1BQU0sTUFBTSxZQUFZLE1BQU0sTUFBTSxNQUFNLFlBQVksYUFBYSxNQUFNLE1BQU0sTUFBTSxLQUFLLE1BQU0sT0FBTyxLQUFLLEtBQUssTUFBTSxLQUFLLE1BQU0sS0FBSyxNQUFNLE1BQU0sS0FBSyxNQUFNLE1BQU0sS0FBSyxNQUFNLE1BQU0sS0FBSyxNQUFNLE1BQU0sS0FBSyxNQUFNLE1BQU0sS0FBSyxNQUFNLE1BQU0sS0FBSyxNQUFNLE1BQU0sS0FBSyxNQUFNLE1BQU0sS0FBSyxNQUFNLE1BQU0sS0FBSyxNQUFNLE1BQU0sS0FBSyxNQUFNLE1BQU0sS0FBSyxNQUFNLE1BQU0sS0FBSyxNQUFNLE1BQU0sS0FBSyxNQUFNLE1BQU0sS0FBSyxNQUFNLE1BQU0sS0FBSyxNQUFNLE1BQU0sS0FBSyxNQUFNLE1BQU0sS0FBSyxNQUFNLE1BQU0sS0FBSyxNQUFNLE1BQU0sS0FBSyxNQUFNLE1BQU0sS0FBSyxNQUFNLE1BQU0sWUFBWSxhQUFhLE1BQU0sTUFBTSxNQUFNLFlBQVksYUFBYSxNQUFNLE1BQU0sTUFBTSxZQUFZLGFBQWEsTUFBTSxNQUFNLE1BQU0sWUFBWSxhQUFhLE1BQU0sTUFBTSxNQUFNLFlBQVksYUFBYSxNQUFNLE1BQU0sTUFBTSxZQUFZLGFBQWEsTUFBTSxNQUFNLE1BQU0sWUFBWSxhQUFhLE1BQU0sTUFBTSxNQUFNLFlBQVksYUFBYSxNQUFNLE1BQU0sTUFBTSxZQUFZLGFBQWEsTUFBTSxNQUFNLE1BQU0sS0FBSyxNQUFNLE1BQU0sS0FBSyxNQUFNLE1BQU0sS0FBSyxNQUFNLE1BQU0sS0FBSyxNQUFNLE1BQU0sS0FBSyxNQUFNLE1BQU0sS0FBSyxNQUFNLE1BQU0sS0FBSyxNQUFNLE1BQU0sS0FBSyxNQUFNLE1BQU0sS0FBSyxNQUFNLE1BQU0sWUFBWSxNQUFNLE1BQU0sTUFBTSxZQUFZLE1BQU0sTUFBTSxNQUFNLFlBQVksTUFBTSxNQUFNLE1BQU0sWUFBWSxNQUFNLE1BQU0sTUFBTSxZQUFZLE1BQU0sTUFBTSxNQUFNLFlBQVksTUFBTSxNQUFNLE1BQU0sWUFBWSxNQUFNLE1BQU0sTUFBTSxZQUFZLE1BQU0sTUFBTSxNQUFNLEtBQUssTUFBTSxNQUFNLFlBQVksTUFBTSxNQUFNLE1BQU0sS0FBSyxNQUFNLE1BQU0sWUFBWSxNQUFNLE1BQU0sTUFBTSxLQUFLLE1BQU0sTUFBTSxZQUFZLE1BQU0sTUFBTSxNQUFNLEtBQUssTUFBTSxNQUFNLFlBQVksTUFBTSxNQUFNLE1BQU0sWUFBWSxNQUFNLE1BQU0sTUFBTSxZQUFZLE1BQU0sTUFBTSxNQUFNLFlBQVksTUFBTSxNQUFNLE1BQU0sWUFBWSxNQUFNLE1BQU0sTUFBTSxZQUFZLE1BQU0sTUFBTSxNQUFNLFlBQVksTUFBTSxNQUFNLE1BQU0sWUFBWSxNQUFNLE1BQU0sTUFBTSxZQUFZLE1BQU0sTUFBTSxNQUFNLFlBQVksTUFBTSxNQUFNLE1BQU0sWUFBWSxNQUFNLE1BQU0sTUFBTSxZQUFZLE1BQU0sTUFBTSxNQUFNLFlBQVksTUFBTSxNQUFNLE1BQU0sWUFBWSxNQUFNLE1BQU0sTUFBTSxZQUFZLE1BQU0sTUFBTSxNQUFNLEtBQUssTUFBTSxNQUFNLEtBQUssTUFBTSxNQUFNLEtBQUssTUFBTSxNQUFNLEtBQUssTUFBTSxNQUFNLFlBQVksTUFBTSxNQUFNLE1BQU0sS0FBSyxNQUFNLE1BQU0sS0FBSyxNQUFNLE1BQU0sWUFBWSxhQUFhLE1BQU0sTUFBTSxNQUFNLFlBQVksYUFBYSxNQUFNLE1BQU0sTUFBTSxZQUFZLGFBQWEsTUFBTSxNQUFNLE1BQU0sWUFBWSxhQUFhLE1BQU0sTUFBTSxNQUFNLFlBQVksYUFBYSxNQUFNLE1BQU0sTUFBTSxZQUFZLGFBQWEsTUFBTSxNQUFNLE1BQU0sWUFBWSxhQUFhLE1BQU0sTUFBTSxNQUFNLFlBQVksYUFBYSxNQUFNLE1BQU0sTUFBTSxZQUFZLE1BQU0sTUFBTSxNQUFNLEtBQUssTUFBTSxNQUFNLEtBQUssTUFBTSxNQUFNLEtBQUssTUFBTSxNQUFNLEtBQUssTUFBTSxNQUFNLEtBQUssTUFBTSxNQUFNLEtBQUssTUFBTSxNQUFNLEtBQUssTUFBTSxNQUFNLEtBQUssTUFBTSxNQUFNLEtBQUssTUFBTSxNQUFNLEtBQUssTUFBTSxNQUFNLFlBQVksTUFBTSxNQUFNLE1BQU0sS0FBSyxNQUFNLE1BQU0sS0FBSyxNQUFNLE1BQU0sS0FBSyxNQUFNLE1BQU0sS0FBSyxNQUFNLE1BQU0sS0FBSyxNQUFNLE1BQU0sWUFBWSxNQUFNLE1BQU0sTUFBTSxZQUFZLE1BQU0sTUFBTSxNQUFNLFlBQVksTUFBTSxNQUFNLE1BQU0sWUFBWSxNQUFNLE1BQU0sTUFBTSxZQUFZLE1BQU0sTUFBTSxNQUFNLFlBQVksTUFBTSxNQUFNLE1BQU0sWUFBWSxNQUFNLE1BQU0sTUFBTSxZQUFZLE1BQU0sTUFBTSxNQUFNLFlBQVksTUFBTSxNQUFNLE1BQU0sWUFBWSxNQUFNLE1BQU0sTUFBTSxZQUFZLE1BQU0sTUFBTSxNQUFNLFlBQVksTUFBTSxNQUFNLE1BQU0sWUFBWSxNQUFNLE1BQU0sTUFBTSxLQUFLLE1BQU0sTUFBTSxLQUFLLE1BQU0sTUFBTSxLQUFLLE1BQU0sTUFBTSxLQUFLLE1BQU0sTUFBTSxLQUFLLE1BQU0sTUFBTSxLQUFLLE1BQU0sTUFBTSxLQUFLLE1BQU0sTUFBTSxLQUFLLE1BQU0sTUFBTSxLQUFLLE1BQU0sTUFBTSxLQUFLLE1BQU0sTUFBTSxLQUFLLE1BQU0sTUFBTSxLQUFLLE1BQU0sTUFBTSxLQUFLLE1BQU0sTUFBTSxLQUFLLE1BQU0sTUFBTSxZQUFZLE1BQU0sTUFBTSxNQUFNLFlBQVksTUFBTSxNQUFNLE1BQU0sWUFBWSxNQUFNLE1BQU0sTUFBTSxXQUFXLE1BQU0sTUFBTSxNQUFNLFdBQVcsTUFBTSxNQUFNLE1BQU0sWUFBWSxNQUFNLE1BQU0sTUFBTSxZQUFZLE1BQU0sTUFBTSxNQUFNLFlBQVksTUFBTSxNQUFNLE1BQU0sWUFBWSxNQUFNLE1BQU0sTUFBTSxLQUFLLE1BQU0sTUFBTSxLQUFLLE1BQU0sTUFBTSxLQUFLLE1BQU0sTUFBTSxLQUFLLE1BQU0sTUFBTSxLQUFLLE1BQU0sTUFBTSxZQUFZLE1BQU0sTUFBTSxNQUFNLFlBQVksTUFBTSxNQUFNLE1BQU0sWUFBWSxNQUFNLE1BQU0sTUFBTSxZQUFZLE1BQU0sTUFBTSxNQUFNLFlBQVksTUFBTSxNQUFNLE1BQU0sWUFBWSxNQUFNLE1BQU0sTUFBTSxZQUFZLE1BQU0sTUFBTSxNQUFNLFlBQVksTUFBTSxNQUFNLE1BQU0sWUFBWSxNQUFNLE1BQU0sTUFBTSxZQUFZLE1BQU0sTUFBTSxNQUFNLFlBQVksTUFBTSxNQUFNLE1BQU0sWUFBWSxNQUFNLE1BQU0sTUFBTSxZQUFZLE1BQU0sTUFBTSxNQUFNLFlBQVksTUFBTSxNQUFNLE1BQU0sWUFBWSxNQUFNLE1BQU0sTUFBTSxZQUFZLE1BQU0sTUFBTSxNQUFNLFlBQVksTUFBTSxNQUFNLE1BQU0sWUFBWSxNQUFNLE1BQU0sTUFBTSxZQUFZLE1BQU0sTUFBTSxNQUFNLFlBQVksTUFBTSxNQUFNLE1BQU0sWUFBWSxNQUFNLE1BQU0sTUFBTSxZQUFZLE1BQU0sTUFBTSxNQUFNLFlBQVksTUFBTSxNQUFNLE1BQU0sWUFBWSxNQUFNLE1BQU0sTUFBTSxZQUFZLE1BQU0sTUFBTSxNQUFNLFlBQVksTUFBTSxNQUFNLE1BQU0sS0FBSyxNQUFNLE1BQU0sWUFBWSxNQUFNLE1BQU0sTUFBTSxZQUFZLE1BQU0sTUFBTSxNQUFNLFlBQVksTUFBTSxNQUFNLE1BQU0sWUFBWSxNQUFNLE1BQU0sTUFBTSxZQUFZLE1BQU0sTUFBTSxNQUFNLFlBQVksTUFBTSxNQUFNLE1BQU0sS0FBSyxNQUFNLE1BQU0sS0FBSyxNQUFNLE1BQU0sWUFBWSxhQUFhLE1BQU0sTUFBTSxNQUFNLFlBQVksYUFBYSxNQUFNLE1BQU0sTUFBTSxZQUFZLGFBQWEsTUFBTSxNQUFNLE1BQU0sWUFBWSxNQUFNLE1BQU0sTUFBTSxZQUFZLGFBQWEsTUFBTSxNQUFNLE1BQU0sWUFBWSxNQUFNLE1BQU0sTUFBTSxLQUFLLE1BQU0sTUFBTSxZQUFZLGFBQWEsTUFBTSxNQUFNLE1BQU0sWUFBWSxhQUFhLGFBQWEsYUFBYSxNQUFNLE1BQU0sTUFBTSxZQUFZLGFBQWEsTUFBTSxNQUFNLE1BQU0sWUFBWSxhQUFhLE1BQU0sTUFBTSxNQUFNLFlBQVksYUFBYSxNQUFNLE1BQU0sTUFBTSxZQUFZLGFBQWEsTUFBTSxNQUFNLE1BQU0sS0FBSyxPQUFPLE1BQU0sWUFBWSxhQUFhLGFBQWEsYUFBYSxNQUFNLE9BQU8sTUFBTSxXQUFXLGFBQWEsTUFBTSxPQUFPLFdBQVcsS0FBSyxZQUFZLGFBQWEsYUFBYSxhQUFhLE9BQU8sS0FBSyxZQUFZLGFBQWEsYUFBYSxhQUFhLE9BQU8sVUFBVSxLQUFLLFVBQVUsTUFBTSxLQUFLLFlBQVksYUFBYSxPQUFPLEtBQUssWUFBWSxhQUFhLE9BQU8sS0FBSyxZQUFZLE9BQU8sVUFBVSxLQUFLLFlBQVksT0FBTyxVQUFVLEtBQUssWUFBWSxhQUFhLGFBQWEsTUFBTSxNQUFNLFlBQVksYUFBYSxNQUFNLE1BQU0sTUFBTSxZQUFZLE1BQU0sTUFBTSxNQUFNLEtBQUssTUFBTSxNQUFNLFlBQVksTUFBTSxNQUFNLE1BQU0sWUFBWSxNQUFNLE1BQU0sTUFBTSxZQUFZLE1BQU0sTUFBTSxNQUFNLFlBQVksTUFBTSxNQUFNLE1BQU0sWUFBWSxNQUFNLE1BQU0sTUFBTSxZQUFZLE1BQU0sTUFBTSxNQUFNLFlBQVksYUFBYSxNQUFNLE1BQU0sTUFBTSxLQUFLLE1BQU0sTUFBTSxZQUFZLE1BQU0sTUFBTSxNQUFNLFlBQVksTUFBTSxNQUFNLE1BQU0sWUFBWSxNQUFNLE1BQU0sTUFBTSxZQUFZLE1BQU0sTUFBTSxNQUFNLEtBQUssTUFBTSxNQUFNLEtBQUssTUFBTSxNQUFNLFlBQVksYUFBYSxNQUFNLE1BQU0sTUFBTSxZQUFZLGFBQWEsTUFBTSxNQUFNLE1BQU0sWUFBWSxhQUFhLE1BQU0sTUFBTSxNQUFNLEtBQUssTUFBTSxNQUFNLFlBQVksTUFBTSxNQUFNLE1BQU0sWUFBWSxhQUFhLE1BQU0sTUFBTSxNQUFNLFlBQVksTUFBTSxNQUFNLE1BQU0sS0FBSyxNQUFNLE1BQU0sS0FBSyxNQUFNLE1BQU0sWUFBWSxNQUFNLE1BQU0sTUFBTSxZQUFZLGFBQWEsTUFBTSxNQUFNLE1BQU0sS0FBSyxNQUFNLE1BQU0sWUFBWSxNQUFNLE1BQU0sTUFBTSxZQUFZLE1BQU0sTUFBTSxNQUFNLFlBQVksTUFBTSxNQUFNLE9BQU8sS0FBSyxLQUFLLE1BQU0sS0FBSyxPQUFPLEtBQUssS0FBSyxPQUFPLE1BQU0sS0FBSyxPQUFPLE1BQU0sS0FBSyxPQUFPLE1BQU0sS0FBSyxPQUFPLE1BQU0sS0FBSyxPQUFPLE1BQU0sS0FBSyxPQUFPLE1BQU0sS0FBSyxPQUFPLE1BQU0sS0FBSyxPQUFPLE1BQU0sS0FBSyxPQUFPLE1BQU0sS0FBSyxPQUFPLE1BQU0sS0FBSyxPQUFPLE1BQU0sWUFBWSxNQUFNLE9BQU8sTUFBTSxZQUFZLE1BQU0sT0FBTyxNQUFNLFdBQVcsTUFBTSxNQUFNLEtBQUssT0FBTyxLQUFLLEtBQUssT0FBTyxNQUFNLEtBQUssT0FBTyxNQUFNLEtBQUssT0FBTyxNQUFNLEtBQUssT0FBTyxNQUFNLEtBQUssT0FBTyxNQUFNLEtBQUssTUFBTSxLQUFLLE9BQU8sS0FBSyxLQUFLLE1BQU0sd0NBQXdDLHlCQUF5Qix3QkFBd0IsY0FBYyxrREFBa0QsS0FBSyxjQUFjLHVDQUF1QyxLQUFLLHVDQUF1QywyQkFBMkIsNEJBQTRCLG1DQUFtQyx1QkFBdUIsS0FBSyx1QkFBdUIsMkJBQTJCLDRCQUE0QixtQ0FBbUMsdUJBQXVCLEtBQUssNkNBQTZDLGlCQUFpQixLQUFLLG1DQUFtQywwQkFBMEIseUJBQXlCLEtBQUssbUNBQW1DLDBCQUEwQix5QkFBeUIsS0FBSyx5Q0FBeUMsMEJBQTBCLEtBQUssNEJBQTRCLDhCQUE4QixLQUFLLDZDQUE2QyxrSEFBa0gsZ0hBQWdILG1HQUFtRyxLQUFLLG1CQUFtQjtBQUM3b3dEO0FBQ0EsaUVBQWUsdUJBQXVCLEVBQUMiLCJzb3VyY2VzIjpbIkQ6XFxkb25neXVuLXByb2plY3RzXFx0d29cXHN0eWxlc1xcZ2xvYmFscy5jc3MiXSwic291cmNlc0NvbnRlbnQiOlsiLy8gSW1wb3J0c1xuaW1wb3J0IF9fX0NTU19MT0FERVJfQVBJX0lNUE9SVF9fXyBmcm9tIFwiLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9idWlsZC93ZWJwYWNrL2xvYWRlcnMvY3NzLWxvYWRlci9zcmMvcnVudGltZS9hcGkuanNcIjtcbnZhciBfX19DU1NfTE9BREVSX0VYUE9SVF9fXyA9IF9fX0NTU19MT0FERVJfQVBJX0lNUE9SVF9fXyh0cnVlKTtcbi8vIE1vZHVsZVxuX19fQ1NTX0xPQURFUl9FWFBPUlRfX18ucHVzaChbbW9kdWxlLmlkLCBcIiosIDo6YmVmb3JlLCA6OmFmdGVyIHtcXG4gIC0tdHctYm9yZGVyLXNwYWNpbmcteDogMDtcXG4gIC0tdHctYm9yZGVyLXNwYWNpbmcteTogMDtcXG4gIC0tdHctdHJhbnNsYXRlLXg6IDA7XFxuICAtLXR3LXRyYW5zbGF0ZS15OiAwO1xcbiAgLS10dy1yb3RhdGU6IDA7XFxuICAtLXR3LXNrZXcteDogMDtcXG4gIC0tdHctc2tldy15OiAwO1xcbiAgLS10dy1zY2FsZS14OiAxO1xcbiAgLS10dy1zY2FsZS15OiAxO1xcbiAgLS10dy1wYW4teDogIDtcXG4gIC0tdHctcGFuLXk6ICA7XFxuICAtLXR3LXBpbmNoLXpvb206ICA7XFxuICAtLXR3LXNjcm9sbC1zbmFwLXN0cmljdG5lc3M6IHByb3hpbWl0eTtcXG4gIC0tdHctZ3JhZGllbnQtZnJvbS1wb3NpdGlvbjogIDtcXG4gIC0tdHctZ3JhZGllbnQtdmlhLXBvc2l0aW9uOiAgO1xcbiAgLS10dy1ncmFkaWVudC10by1wb3NpdGlvbjogIDtcXG4gIC0tdHctb3JkaW5hbDogIDtcXG4gIC0tdHctc2xhc2hlZC16ZXJvOiAgO1xcbiAgLS10dy1udW1lcmljLWZpZ3VyZTogIDtcXG4gIC0tdHctbnVtZXJpYy1zcGFjaW5nOiAgO1xcbiAgLS10dy1udW1lcmljLWZyYWN0aW9uOiAgO1xcbiAgLS10dy1yaW5nLWluc2V0OiAgO1xcbiAgLS10dy1yaW5nLW9mZnNldC13aWR0aDogMHB4O1xcbiAgLS10dy1yaW5nLW9mZnNldC1jb2xvcjogI2ZmZjtcXG4gIC0tdHctcmluZy1jb2xvcjogcmdiKDU5IDEzMCAyNDYgLyAwLjUpO1xcbiAgLS10dy1yaW5nLW9mZnNldC1zaGFkb3c6IDAgMCAjMDAwMDtcXG4gIC0tdHctcmluZy1zaGFkb3c6IDAgMCAjMDAwMDtcXG4gIC0tdHctc2hhZG93OiAwIDAgIzAwMDA7XFxuICAtLXR3LXNoYWRvdy1jb2xvcmVkOiAwIDAgIzAwMDA7XFxuICAtLXR3LWJsdXI6ICA7XFxuICAtLXR3LWJyaWdodG5lc3M6ICA7XFxuICAtLXR3LWNvbnRyYXN0OiAgO1xcbiAgLS10dy1ncmF5c2NhbGU6ICA7XFxuICAtLXR3LWh1ZS1yb3RhdGU6ICA7XFxuICAtLXR3LWludmVydDogIDtcXG4gIC0tdHctc2F0dXJhdGU6ICA7XFxuICAtLXR3LXNlcGlhOiAgO1xcbiAgLS10dy1kcm9wLXNoYWRvdzogIDtcXG4gIC0tdHctYmFja2Ryb3AtYmx1cjogIDtcXG4gIC0tdHctYmFja2Ryb3AtYnJpZ2h0bmVzczogIDtcXG4gIC0tdHctYmFja2Ryb3AtY29udHJhc3Q6ICA7XFxuICAtLXR3LWJhY2tkcm9wLWdyYXlzY2FsZTogIDtcXG4gIC0tdHctYmFja2Ryb3AtaHVlLXJvdGF0ZTogIDtcXG4gIC0tdHctYmFja2Ryb3AtaW52ZXJ0OiAgO1xcbiAgLS10dy1iYWNrZHJvcC1vcGFjaXR5OiAgO1xcbiAgLS10dy1iYWNrZHJvcC1zYXR1cmF0ZTogIDtcXG4gIC0tdHctYmFja2Ryb3Atc2VwaWE6ICA7XFxuICAtLXR3LWNvbnRhaW4tc2l6ZTogIDtcXG4gIC0tdHctY29udGFpbi1sYXlvdXQ6ICA7XFxuICAtLXR3LWNvbnRhaW4tcGFpbnQ6ICA7XFxuICAtLXR3LWNvbnRhaW4tc3R5bGU6ICA7XFxufVxcblxcbjo6YmFja2Ryb3Age1xcbiAgLS10dy1ib3JkZXItc3BhY2luZy14OiAwO1xcbiAgLS10dy1ib3JkZXItc3BhY2luZy15OiAwO1xcbiAgLS10dy10cmFuc2xhdGUteDogMDtcXG4gIC0tdHctdHJhbnNsYXRlLXk6IDA7XFxuICAtLXR3LXJvdGF0ZTogMDtcXG4gIC0tdHctc2tldy14OiAwO1xcbiAgLS10dy1za2V3LXk6IDA7XFxuICAtLXR3LXNjYWxlLXg6IDE7XFxuICAtLXR3LXNjYWxlLXk6IDE7XFxuICAtLXR3LXBhbi14OiAgO1xcbiAgLS10dy1wYW4teTogIDtcXG4gIC0tdHctcGluY2gtem9vbTogIDtcXG4gIC0tdHctc2Nyb2xsLXNuYXAtc3RyaWN0bmVzczogcHJveGltaXR5O1xcbiAgLS10dy1ncmFkaWVudC1mcm9tLXBvc2l0aW9uOiAgO1xcbiAgLS10dy1ncmFkaWVudC12aWEtcG9zaXRpb246ICA7XFxuICAtLXR3LWdyYWRpZW50LXRvLXBvc2l0aW9uOiAgO1xcbiAgLS10dy1vcmRpbmFsOiAgO1xcbiAgLS10dy1zbGFzaGVkLXplcm86ICA7XFxuICAtLXR3LW51bWVyaWMtZmlndXJlOiAgO1xcbiAgLS10dy1udW1lcmljLXNwYWNpbmc6ICA7XFxuICAtLXR3LW51bWVyaWMtZnJhY3Rpb246ICA7XFxuICAtLXR3LXJpbmctaW5zZXQ6ICA7XFxuICAtLXR3LXJpbmctb2Zmc2V0LXdpZHRoOiAwcHg7XFxuICAtLXR3LXJpbmctb2Zmc2V0LWNvbG9yOiAjZmZmO1xcbiAgLS10dy1yaW5nLWNvbG9yOiByZ2IoNTkgMTMwIDI0NiAvIDAuNSk7XFxuICAtLXR3LXJpbmctb2Zmc2V0LXNoYWRvdzogMCAwICMwMDAwO1xcbiAgLS10dy1yaW5nLXNoYWRvdzogMCAwICMwMDAwO1xcbiAgLS10dy1zaGFkb3c6IDAgMCAjMDAwMDtcXG4gIC0tdHctc2hhZG93LWNvbG9yZWQ6IDAgMCAjMDAwMDtcXG4gIC0tdHctYmx1cjogIDtcXG4gIC0tdHctYnJpZ2h0bmVzczogIDtcXG4gIC0tdHctY29udHJhc3Q6ICA7XFxuICAtLXR3LWdyYXlzY2FsZTogIDtcXG4gIC0tdHctaHVlLXJvdGF0ZTogIDtcXG4gIC0tdHctaW52ZXJ0OiAgO1xcbiAgLS10dy1zYXR1cmF0ZTogIDtcXG4gIC0tdHctc2VwaWE6ICA7XFxuICAtLXR3LWRyb3Atc2hhZG93OiAgO1xcbiAgLS10dy1iYWNrZHJvcC1ibHVyOiAgO1xcbiAgLS10dy1iYWNrZHJvcC1icmlnaHRuZXNzOiAgO1xcbiAgLS10dy1iYWNrZHJvcC1jb250cmFzdDogIDtcXG4gIC0tdHctYmFja2Ryb3AtZ3JheXNjYWxlOiAgO1xcbiAgLS10dy1iYWNrZHJvcC1odWUtcm90YXRlOiAgO1xcbiAgLS10dy1iYWNrZHJvcC1pbnZlcnQ6ICA7XFxuICAtLXR3LWJhY2tkcm9wLW9wYWNpdHk6ICA7XFxuICAtLXR3LWJhY2tkcm9wLXNhdHVyYXRlOiAgO1xcbiAgLS10dy1iYWNrZHJvcC1zZXBpYTogIDtcXG4gIC0tdHctY29udGFpbi1zaXplOiAgO1xcbiAgLS10dy1jb250YWluLWxheW91dDogIDtcXG4gIC0tdHctY29udGFpbi1wYWludDogIDtcXG4gIC0tdHctY29udGFpbi1zdHlsZTogIDtcXG59LypcXG4hIHRhaWx3aW5kY3NzIHYzLjQuMTcgfCBNSVQgTGljZW5zZSB8IGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tXFxuKi8vKlxcbjEuIFByZXZlbnQgcGFkZGluZyBhbmQgYm9yZGVyIGZyb20gYWZmZWN0aW5nIGVsZW1lbnQgd2lkdGguIChodHRwczovL2dpdGh1Yi5jb20vbW96ZGV2cy9jc3NyZW1lZHkvaXNzdWVzLzQpXFxuMi4gQWxsb3cgYWRkaW5nIGEgYm9yZGVyIHRvIGFuIGVsZW1lbnQgYnkganVzdCBhZGRpbmcgYSBib3JkZXItd2lkdGguIChodHRwczovL2dpdGh1Yi5jb20vdGFpbHdpbmRjc3MvdGFpbHdpbmRjc3MvcHVsbC8xMTYpXFxuKi9cXG5cXG4qLFxcbjo6YmVmb3JlLFxcbjo6YWZ0ZXIge1xcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDsgLyogMSAqL1xcbiAgYm9yZGVyLXdpZHRoOiAwOyAvKiAyICovXFxuICBib3JkZXItc3R5bGU6IHNvbGlkOyAvKiAyICovXFxuICBib3JkZXItY29sb3I6ICNlNWU3ZWI7IC8qIDIgKi9cXG59XFxuXFxuOjpiZWZvcmUsXFxuOjphZnRlciB7XFxuICAtLXR3LWNvbnRlbnQ6ICcnO1xcbn1cXG5cXG4vKlxcbjEuIFVzZSBhIGNvbnNpc3RlbnQgc2Vuc2libGUgbGluZS1oZWlnaHQgaW4gYWxsIGJyb3dzZXJzLlxcbjIuIFByZXZlbnQgYWRqdXN0bWVudHMgb2YgZm9udCBzaXplIGFmdGVyIG9yaWVudGF0aW9uIGNoYW5nZXMgaW4gaU9TLlxcbjMuIFVzZSBhIG1vcmUgcmVhZGFibGUgdGFiIHNpemUuXFxuNC4gVXNlIHRoZSB1c2VyJ3MgY29uZmlndXJlZCBgc2Fuc2AgZm9udC1mYW1pbHkgYnkgZGVmYXVsdC5cXG41LiBVc2UgdGhlIHVzZXIncyBjb25maWd1cmVkIGBzYW5zYCBmb250LWZlYXR1cmUtc2V0dGluZ3MgYnkgZGVmYXVsdC5cXG42LiBVc2UgdGhlIHVzZXIncyBjb25maWd1cmVkIGBzYW5zYCBmb250LXZhcmlhdGlvbi1zZXR0aW5ncyBieSBkZWZhdWx0LlxcbjcuIERpc2FibGUgdGFwIGhpZ2hsaWdodHMgb24gaU9TXFxuKi9cXG5cXG5odG1sLFxcbjpob3N0IHtcXG4gIGxpbmUtaGVpZ2h0OiAxLjU7IC8qIDEgKi9cXG4gIC13ZWJraXQtdGV4dC1zaXplLWFkanVzdDogMTAwJTsgLyogMiAqL1xcbiAgLW1vei10YWItc2l6ZTogNDsgLyogMyAqL1xcbiAgLW8tdGFiLXNpemU6IDQ7XFxuICAgICB0YWItc2l6ZTogNDsgLyogMyAqL1xcbiAgZm9udC1mYW1pbHk6IEludGVyLCBzYW5zLXNlcmlmOyAvKiA0ICovXFxuICBmb250LWZlYXR1cmUtc2V0dGluZ3M6IG5vcm1hbDsgLyogNSAqL1xcbiAgZm9udC12YXJpYXRpb24tc2V0dGluZ3M6IG5vcm1hbDsgLyogNiAqL1xcbiAgLXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yOiB0cmFuc3BhcmVudDsgLyogNyAqL1xcbn1cXG5cXG4vKlxcbjEuIFJlbW92ZSB0aGUgbWFyZ2luIGluIGFsbCBicm93c2Vycy5cXG4yLiBJbmhlcml0IGxpbmUtaGVpZ2h0IGZyb20gYGh0bWxgIHNvIHVzZXJzIGNhbiBzZXQgdGhlbSBhcyBhIGNsYXNzIGRpcmVjdGx5IG9uIHRoZSBgaHRtbGAgZWxlbWVudC5cXG4qL1xcblxcbmJvZHkge1xcbiAgbWFyZ2luOiAwOyAvKiAxICovXFxuICBsaW5lLWhlaWdodDogaW5oZXJpdDsgLyogMiAqL1xcbn1cXG5cXG4vKlxcbjEuIEFkZCB0aGUgY29ycmVjdCBoZWlnaHQgaW4gRmlyZWZveC5cXG4yLiBDb3JyZWN0IHRoZSBpbmhlcml0YW5jZSBvZiBib3JkZXIgY29sb3IgaW4gRmlyZWZveC4gKGh0dHBzOi8vYnVnemlsbGEubW96aWxsYS5vcmcvc2hvd19idWcuY2dpP2lkPTE5MDY1NSlcXG4zLiBFbnN1cmUgaG9yaXpvbnRhbCBydWxlcyBhcmUgdmlzaWJsZSBieSBkZWZhdWx0LlxcbiovXFxuXFxuaHIge1xcbiAgaGVpZ2h0OiAwOyAvKiAxICovXFxuICBjb2xvcjogaW5oZXJpdDsgLyogMiAqL1xcbiAgYm9yZGVyLXRvcC13aWR0aDogMXB4OyAvKiAzICovXFxufVxcblxcbi8qXFxuQWRkIHRoZSBjb3JyZWN0IHRleHQgZGVjb3JhdGlvbiBpbiBDaHJvbWUsIEVkZ2UsIGFuZCBTYWZhcmkuXFxuKi9cXG5cXG5hYmJyOndoZXJlKFt0aXRsZV0pIHtcXG4gIC13ZWJraXQtdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmUgZG90dGVkO1xcbiAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZSBkb3R0ZWQ7XFxufVxcblxcbi8qXFxuUmVtb3ZlIHRoZSBkZWZhdWx0IGZvbnQgc2l6ZSBhbmQgd2VpZ2h0IGZvciBoZWFkaW5ncy5cXG4qL1xcblxcbmgxLFxcbmgyLFxcbmgzLFxcbmg0LFxcbmg1LFxcbmg2IHtcXG4gIGZvbnQtc2l6ZTogaW5oZXJpdDtcXG4gIGZvbnQtd2VpZ2h0OiBpbmhlcml0O1xcbn1cXG5cXG4vKlxcblJlc2V0IGxpbmtzIHRvIG9wdGltaXplIGZvciBvcHQtaW4gc3R5bGluZyBpbnN0ZWFkIG9mIG9wdC1vdXQuXFxuKi9cXG5cXG5hIHtcXG4gIGNvbG9yOiBpbmhlcml0O1xcbiAgdGV4dC1kZWNvcmF0aW9uOiBpbmhlcml0O1xcbn1cXG5cXG4vKlxcbkFkZCB0aGUgY29ycmVjdCBmb250IHdlaWdodCBpbiBFZGdlIGFuZCBTYWZhcmkuXFxuKi9cXG5cXG5iLFxcbnN0cm9uZyB7XFxuICBmb250LXdlaWdodDogYm9sZGVyO1xcbn1cXG5cXG4vKlxcbjEuIFVzZSB0aGUgdXNlcidzIGNvbmZpZ3VyZWQgYG1vbm9gIGZvbnQtZmFtaWx5IGJ5IGRlZmF1bHQuXFxuMi4gVXNlIHRoZSB1c2VyJ3MgY29uZmlndXJlZCBgbW9ub2AgZm9udC1mZWF0dXJlLXNldHRpbmdzIGJ5IGRlZmF1bHQuXFxuMy4gVXNlIHRoZSB1c2VyJ3MgY29uZmlndXJlZCBgbW9ub2AgZm9udC12YXJpYXRpb24tc2V0dGluZ3MgYnkgZGVmYXVsdC5cXG40LiBDb3JyZWN0IHRoZSBvZGQgYGVtYCBmb250IHNpemluZyBpbiBhbGwgYnJvd3NlcnMuXFxuKi9cXG5cXG5jb2RlLFxcbmtiZCxcXG5zYW1wLFxcbnByZSB7XFxuICBmb250LWZhbWlseTogdWktbW9ub3NwYWNlLCBTRk1vbm8tUmVndWxhciwgTWVubG8sIE1vbmFjbywgQ29uc29sYXMsIFxcXCJMaWJlcmF0aW9uIE1vbm9cXFwiLCBcXFwiQ291cmllciBOZXdcXFwiLCBtb25vc3BhY2U7IC8qIDEgKi9cXG4gIGZvbnQtZmVhdHVyZS1zZXR0aW5nczogbm9ybWFsOyAvKiAyICovXFxuICBmb250LXZhcmlhdGlvbi1zZXR0aW5nczogbm9ybWFsOyAvKiAzICovXFxuICBmb250LXNpemU6IDFlbTsgLyogNCAqL1xcbn1cXG5cXG4vKlxcbkFkZCB0aGUgY29ycmVjdCBmb250IHNpemUgaW4gYWxsIGJyb3dzZXJzLlxcbiovXFxuXFxuc21hbGwge1xcbiAgZm9udC1zaXplOiA4MCU7XFxufVxcblxcbi8qXFxuUHJldmVudCBgc3ViYCBhbmQgYHN1cGAgZWxlbWVudHMgZnJvbSBhZmZlY3RpbmcgdGhlIGxpbmUgaGVpZ2h0IGluIGFsbCBicm93c2Vycy5cXG4qL1xcblxcbnN1YixcXG5zdXAge1xcbiAgZm9udC1zaXplOiA3NSU7XFxuICBsaW5lLWhlaWdodDogMDtcXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcXG4gIHZlcnRpY2FsLWFsaWduOiBiYXNlbGluZTtcXG59XFxuXFxuc3ViIHtcXG4gIGJvdHRvbTogLTAuMjVlbTtcXG59XFxuXFxuc3VwIHtcXG4gIHRvcDogLTAuNWVtO1xcbn1cXG5cXG4vKlxcbjEuIFJlbW92ZSB0ZXh0IGluZGVudGF0aW9uIGZyb20gdGFibGUgY29udGVudHMgaW4gQ2hyb21lIGFuZCBTYWZhcmkuIChodHRwczovL2J1Z3MuY2hyb21pdW0ub3JnL3AvY2hyb21pdW0vaXNzdWVzL2RldGFpbD9pZD05OTkwODgsIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDEyOTcpXFxuMi4gQ29ycmVjdCB0YWJsZSBib3JkZXIgY29sb3IgaW5oZXJpdGFuY2UgaW4gYWxsIENocm9tZSBhbmQgU2FmYXJpLiAoaHR0cHM6Ly9idWdzLmNocm9taXVtLm9yZy9wL2Nocm9taXVtL2lzc3Vlcy9kZXRhaWw/aWQ9OTM1NzI5LCBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTk1MDE2KVxcbjMuIFJlbW92ZSBnYXBzIGJldHdlZW4gdGFibGUgYm9yZGVycyBieSBkZWZhdWx0LlxcbiovXFxuXFxudGFibGUge1xcbiAgdGV4dC1pbmRlbnQ6IDA7IC8qIDEgKi9cXG4gIGJvcmRlci1jb2xvcjogaW5oZXJpdDsgLyogMiAqL1xcbiAgYm9yZGVyLWNvbGxhcHNlOiBjb2xsYXBzZTsgLyogMyAqL1xcbn1cXG5cXG4vKlxcbjEuIENoYW5nZSB0aGUgZm9udCBzdHlsZXMgaW4gYWxsIGJyb3dzZXJzLlxcbjIuIFJlbW92ZSB0aGUgbWFyZ2luIGluIEZpcmVmb3ggYW5kIFNhZmFyaS5cXG4zLiBSZW1vdmUgZGVmYXVsdCBwYWRkaW5nIGluIGFsbCBicm93c2Vycy5cXG4qL1xcblxcbmJ1dHRvbixcXG5pbnB1dCxcXG5vcHRncm91cCxcXG5zZWxlY3QsXFxudGV4dGFyZWEge1xcbiAgZm9udC1mYW1pbHk6IGluaGVyaXQ7IC8qIDEgKi9cXG4gIGZvbnQtZmVhdHVyZS1zZXR0aW5nczogaW5oZXJpdDsgLyogMSAqL1xcbiAgZm9udC12YXJpYXRpb24tc2V0dGluZ3M6IGluaGVyaXQ7IC8qIDEgKi9cXG4gIGZvbnQtc2l6ZTogMTAwJTsgLyogMSAqL1xcbiAgZm9udC13ZWlnaHQ6IGluaGVyaXQ7IC8qIDEgKi9cXG4gIGxpbmUtaGVpZ2h0OiBpbmhlcml0OyAvKiAxICovXFxuICBsZXR0ZXItc3BhY2luZzogaW5oZXJpdDsgLyogMSAqL1xcbiAgY29sb3I6IGluaGVyaXQ7IC8qIDEgKi9cXG4gIG1hcmdpbjogMDsgLyogMiAqL1xcbiAgcGFkZGluZzogMDsgLyogMyAqL1xcbn1cXG5cXG4vKlxcblJlbW92ZSB0aGUgaW5oZXJpdGFuY2Ugb2YgdGV4dCB0cmFuc2Zvcm0gaW4gRWRnZSBhbmQgRmlyZWZveC5cXG4qL1xcblxcbmJ1dHRvbixcXG5zZWxlY3Qge1xcbiAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XFxufVxcblxcbi8qXFxuMS4gQ29ycmVjdCB0aGUgaW5hYmlsaXR5IHRvIHN0eWxlIGNsaWNrYWJsZSB0eXBlcyBpbiBpT1MgYW5kIFNhZmFyaS5cXG4yLiBSZW1vdmUgZGVmYXVsdCBidXR0b24gc3R5bGVzLlxcbiovXFxuXFxuYnV0dG9uLFxcbmlucHV0OndoZXJlKFt0eXBlPSdidXR0b24nXSksXFxuaW5wdXQ6d2hlcmUoW3R5cGU9J3Jlc2V0J10pLFxcbmlucHV0OndoZXJlKFt0eXBlPSdzdWJtaXQnXSkge1xcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBidXR0b247IC8qIDEgKi9cXG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50OyAvKiAyICovXFxuICBiYWNrZ3JvdW5kLWltYWdlOiBub25lOyAvKiAyICovXFxufVxcblxcbi8qXFxuVXNlIHRoZSBtb2Rlcm4gRmlyZWZveCBmb2N1cyBzdHlsZSBmb3IgYWxsIGZvY3VzYWJsZSBlbGVtZW50cy5cXG4qL1xcblxcbjotbW96LWZvY3VzcmluZyB7XFxuICBvdXRsaW5lOiBhdXRvO1xcbn1cXG5cXG4vKlxcblJlbW92ZSB0aGUgYWRkaXRpb25hbCBgOmludmFsaWRgIHN0eWxlcyBpbiBGaXJlZm94LiAoaHR0cHM6Ly9naXRodWIuY29tL21vemlsbGEvZ2Vja28tZGV2L2Jsb2IvMmY5ZWFjZDlkM2Q5OTVjOTM3YjQyNTFhNTU1N2Q5NWQ0OTRjOWJlMS9sYXlvdXQvc3R5bGUvcmVzL2Zvcm1zLmNzcyNMNzI4LUw3MzcpXFxuKi9cXG5cXG46LW1vei11aS1pbnZhbGlkIHtcXG4gIGJveC1zaGFkb3c6IG5vbmU7XFxufVxcblxcbi8qXFxuQWRkIHRoZSBjb3JyZWN0IHZlcnRpY2FsIGFsaWdubWVudCBpbiBDaHJvbWUgYW5kIEZpcmVmb3guXFxuKi9cXG5cXG5wcm9ncmVzcyB7XFxuICB2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7XFxufVxcblxcbi8qXFxuQ29ycmVjdCB0aGUgY3Vyc29yIHN0eWxlIG9mIGluY3JlbWVudCBhbmQgZGVjcmVtZW50IGJ1dHRvbnMgaW4gU2FmYXJpLlxcbiovXFxuXFxuOjotd2Via2l0LWlubmVyLXNwaW4tYnV0dG9uLFxcbjo6LXdlYmtpdC1vdXRlci1zcGluLWJ1dHRvbiB7XFxuICBoZWlnaHQ6IGF1dG87XFxufVxcblxcbi8qXFxuMS4gQ29ycmVjdCB0aGUgb2RkIGFwcGVhcmFuY2UgaW4gQ2hyb21lIGFuZCBTYWZhcmkuXFxuMi4gQ29ycmVjdCB0aGUgb3V0bGluZSBzdHlsZSBpbiBTYWZhcmkuXFxuKi9cXG5cXG5bdHlwZT0nc2VhcmNoJ10ge1xcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiB0ZXh0ZmllbGQ7IC8qIDEgKi9cXG4gIG91dGxpbmUtb2Zmc2V0OiAtMnB4OyAvKiAyICovXFxufVxcblxcbi8qXFxuUmVtb3ZlIHRoZSBpbm5lciBwYWRkaW5nIGluIENocm9tZSBhbmQgU2FmYXJpIG9uIG1hY09TLlxcbiovXFxuXFxuOjotd2Via2l0LXNlYXJjaC1kZWNvcmF0aW9uIHtcXG4gIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcXG59XFxuXFxuLypcXG4xLiBDb3JyZWN0IHRoZSBpbmFiaWxpdHkgdG8gc3R5bGUgY2xpY2thYmxlIHR5cGVzIGluIGlPUyBhbmQgU2FmYXJpLlxcbjIuIENoYW5nZSBmb250IHByb3BlcnRpZXMgdG8gYGluaGVyaXRgIGluIFNhZmFyaS5cXG4qL1xcblxcbjo6LXdlYmtpdC1maWxlLXVwbG9hZC1idXR0b24ge1xcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBidXR0b247IC8qIDEgKi9cXG4gIGZvbnQ6IGluaGVyaXQ7IC8qIDIgKi9cXG59XFxuXFxuLypcXG5BZGQgdGhlIGNvcnJlY3QgZGlzcGxheSBpbiBDaHJvbWUgYW5kIFNhZmFyaS5cXG4qL1xcblxcbnN1bW1hcnkge1xcbiAgZGlzcGxheTogbGlzdC1pdGVtO1xcbn1cXG5cXG4vKlxcblJlbW92ZXMgdGhlIGRlZmF1bHQgc3BhY2luZyBhbmQgYm9yZGVyIGZvciBhcHByb3ByaWF0ZSBlbGVtZW50cy5cXG4qL1xcblxcbmJsb2NrcXVvdGUsXFxuZGwsXFxuZGQsXFxuaDEsXFxuaDIsXFxuaDMsXFxuaDQsXFxuaDUsXFxuaDYsXFxuaHIsXFxuZmlndXJlLFxcbnAsXFxucHJlIHtcXG4gIG1hcmdpbjogMDtcXG59XFxuXFxuZmllbGRzZXQge1xcbiAgbWFyZ2luOiAwO1xcbiAgcGFkZGluZzogMDtcXG59XFxuXFxubGVnZW5kIHtcXG4gIHBhZGRpbmc6IDA7XFxufVxcblxcbm9sLFxcbnVsLFxcbm1lbnUge1xcbiAgbGlzdC1zdHlsZTogbm9uZTtcXG4gIG1hcmdpbjogMDtcXG4gIHBhZGRpbmc6IDA7XFxufVxcblxcbi8qXFxuUmVzZXQgZGVmYXVsdCBzdHlsaW5nIGZvciBkaWFsb2dzLlxcbiovXFxuZGlhbG9nIHtcXG4gIHBhZGRpbmc6IDA7XFxufVxcblxcbi8qXFxuUHJldmVudCByZXNpemluZyB0ZXh0YXJlYXMgaG9yaXpvbnRhbGx5IGJ5IGRlZmF1bHQuXFxuKi9cXG5cXG50ZXh0YXJlYSB7XFxuICByZXNpemU6IHZlcnRpY2FsO1xcbn1cXG5cXG4vKlxcbjEuIFJlc2V0IHRoZSBkZWZhdWx0IHBsYWNlaG9sZGVyIG9wYWNpdHkgaW4gRmlyZWZveC4gKGh0dHBzOi8vZ2l0aHViLmNvbS90YWlsd2luZGxhYnMvdGFpbHdpbmRjc3MvaXNzdWVzLzMzMDApXFxuMi4gU2V0IHRoZSBkZWZhdWx0IHBsYWNlaG9sZGVyIGNvbG9yIHRvIHRoZSB1c2VyJ3MgY29uZmlndXJlZCBncmF5IDQwMCBjb2xvci5cXG4qL1xcblxcbmlucHV0OjotbW96LXBsYWNlaG9sZGVyLCB0ZXh0YXJlYTo6LW1vei1wbGFjZWhvbGRlciB7XFxuICBvcGFjaXR5OiAxOyAvKiAxICovXFxuICBjb2xvcjogIzljYTNhZjsgLyogMiAqL1xcbn1cXG5cXG5pbnB1dDo6cGxhY2Vob2xkZXIsXFxudGV4dGFyZWE6OnBsYWNlaG9sZGVyIHtcXG4gIG9wYWNpdHk6IDE7IC8qIDEgKi9cXG4gIGNvbG9yOiAjOWNhM2FmOyAvKiAyICovXFxufVxcblxcbi8qXFxuU2V0IHRoZSBkZWZhdWx0IGN1cnNvciBmb3IgYnV0dG9ucy5cXG4qL1xcblxcbmJ1dHRvbixcXG5bcm9sZT1cXFwiYnV0dG9uXFxcIl0ge1xcbiAgY3Vyc29yOiBwb2ludGVyO1xcbn1cXG5cXG4vKlxcbk1ha2Ugc3VyZSBkaXNhYmxlZCBidXR0b25zIGRvbid0IGdldCB0aGUgcG9pbnRlciBjdXJzb3IuXFxuKi9cXG46ZGlzYWJsZWQge1xcbiAgY3Vyc29yOiBkZWZhdWx0O1xcbn1cXG5cXG4vKlxcbjEuIE1ha2UgcmVwbGFjZWQgZWxlbWVudHMgYGRpc3BsYXk6IGJsb2NrYCBieSBkZWZhdWx0LiAoaHR0cHM6Ly9naXRodWIuY29tL21vemRldnMvY3NzcmVtZWR5L2lzc3Vlcy8xNClcXG4yLiBBZGQgYHZlcnRpY2FsLWFsaWduOiBtaWRkbGVgIHRvIGFsaWduIHJlcGxhY2VkIGVsZW1lbnRzIG1vcmUgc2Vuc2libHkgYnkgZGVmYXVsdC4gKGh0dHBzOi8vZ2l0aHViLmNvbS9qZW5zaW1tb25zL2Nzc3JlbWVkeS9pc3N1ZXMvMTQjaXNzdWVjb21tZW50LTYzNDkzNDIxMClcXG4gICBUaGlzIGNhbiB0cmlnZ2VyIGEgcG9vcmx5IGNvbnNpZGVyZWQgbGludCBlcnJvciBpbiBzb21lIHRvb2xzIGJ1dCBpcyBpbmNsdWRlZCBieSBkZXNpZ24uXFxuKi9cXG5cXG5pbWcsXFxuc3ZnLFxcbnZpZGVvLFxcbmNhbnZhcyxcXG5hdWRpbyxcXG5pZnJhbWUsXFxuZW1iZWQsXFxub2JqZWN0IHtcXG4gIGRpc3BsYXk6IGJsb2NrOyAvKiAxICovXFxuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlOyAvKiAyICovXFxufVxcblxcbi8qXFxuQ29uc3RyYWluIGltYWdlcyBhbmQgdmlkZW9zIHRvIHRoZSBwYXJlbnQgd2lkdGggYW5kIHByZXNlcnZlIHRoZWlyIGludHJpbnNpYyBhc3BlY3QgcmF0aW8uIChodHRwczovL2dpdGh1Yi5jb20vbW96ZGV2cy9jc3NyZW1lZHkvaXNzdWVzLzE0KVxcbiovXFxuXFxuaW1nLFxcbnZpZGVvIHtcXG4gIG1heC13aWR0aDogMTAwJTtcXG4gIGhlaWdodDogYXV0bztcXG59XFxuXFxuLyogTWFrZSBlbGVtZW50cyB3aXRoIHRoZSBIVE1MIGhpZGRlbiBhdHRyaWJ1dGUgc3RheSBoaWRkZW4gYnkgZGVmYXVsdCAqL1xcbltoaWRkZW5dOndoZXJlKDpub3QoW2hpZGRlbj1cXFwidW50aWwtZm91bmRcXFwiXSkpIHtcXG4gIGRpc3BsYXk6IG5vbmU7XFxufVxcclxcbi5jb250YWluZXIge1xcbiAgd2lkdGg6IDEwMCU7XFxufVxcclxcbkBtZWRpYSAobWluLXdpZHRoOiA2NDBweCkge1xcblxcbiAgLmNvbnRhaW5lciB7XFxuICAgIG1heC13aWR0aDogNjQwcHg7XFxuICB9XFxufVxcclxcbkBtZWRpYSAobWluLXdpZHRoOiA3NjhweCkge1xcblxcbiAgLmNvbnRhaW5lciB7XFxuICAgIG1heC13aWR0aDogNzY4cHg7XFxuICB9XFxufVxcclxcbkBtZWRpYSAobWluLXdpZHRoOiAxMDI0cHgpIHtcXG5cXG4gIC5jb250YWluZXIge1xcbiAgICBtYXgtd2lkdGg6IDEwMjRweDtcXG4gIH1cXG59XFxyXFxuQG1lZGlhIChtaW4td2lkdGg6IDEyODBweCkge1xcblxcbiAgLmNvbnRhaW5lciB7XFxuICAgIG1heC13aWR0aDogMTI4MHB4O1xcbiAgfVxcbn1cXHJcXG5AbWVkaWEgKG1pbi13aWR0aDogMTUzNnB4KSB7XFxuXFxuICAuY29udGFpbmVyIHtcXG4gICAgbWF4LXdpZHRoOiAxNTM2cHg7XFxuICB9XFxufVxcclxcbi5maXhlZCB7XFxuICBwb3NpdGlvbjogZml4ZWQ7XFxufVxcclxcbi5hYnNvbHV0ZSB7XFxuICBwb3NpdGlvbjogYWJzb2x1dGU7XFxufVxcclxcbi5yZWxhdGl2ZSB7XFxuICBwb3NpdGlvbjogcmVsYXRpdmU7XFxufVxcclxcbi5pbnNldC0wIHtcXG4gIGluc2V0OiAwcHg7XFxufVxcclxcbi5pbnNldC15LTAge1xcbiAgdG9wOiAwcHg7XFxuICBib3R0b206IDBweDtcXG59XFxyXFxuLi10b3AtNCB7XFxuICB0b3A6IC0xcmVtO1xcbn1cXHJcXG4uYm90dG9tLTEwIHtcXG4gIGJvdHRvbTogMi41cmVtO1xcbn1cXHJcXG4uYm90dG9tLTIwIHtcXG4gIGJvdHRvbTogNXJlbTtcXG59XFxyXFxuLmxlZnQtMCB7XFxuICBsZWZ0OiAwcHg7XFxufVxcclxcbi5sZWZ0LTFcXFxcLzIge1xcbiAgbGVmdDogNTAlO1xcbn1cXHJcXG4ubGVmdC0xXFxcXC80IHtcXG4gIGxlZnQ6IDI1JTtcXG59XFxyXFxuLmxlZnQtMTAge1xcbiAgbGVmdDogMi41cmVtO1xcbn1cXHJcXG4ubGVmdC0zIHtcXG4gIGxlZnQ6IDAuNzVyZW07XFxufVxcclxcbi5sZWZ0LTQge1xcbiAgbGVmdDogMXJlbTtcXG59XFxyXFxuLnJpZ2h0LTAge1xcbiAgcmlnaHQ6IDBweDtcXG59XFxyXFxuLnJpZ2h0LTEwIHtcXG4gIHJpZ2h0OiAyLjVyZW07XFxufVxcclxcbi5yaWdodC0yMCB7XFxuICByaWdodDogNXJlbTtcXG59XFxyXFxuLnRvcC0wIHtcXG4gIHRvcDogMHB4O1xcbn1cXHJcXG4udG9wLTFcXFxcLzIge1xcbiAgdG9wOiA1MCU7XFxufVxcclxcbi50b3AtMTAge1xcbiAgdG9wOiAyLjVyZW07XFxufVxcclxcbi50b3AtMzIge1xcbiAgdG9wOiA4cmVtO1xcbn1cXHJcXG4udG9wLTQge1xcbiAgdG9wOiAxcmVtO1xcbn1cXHJcXG4uei0xMCB7XFxuICB6LWluZGV4OiAxMDtcXG59XFxyXFxuLnotNTAge1xcbiAgei1pbmRleDogNTA7XFxufVxcclxcbi5teC1hdXRvIHtcXG4gIG1hcmdpbi1sZWZ0OiBhdXRvO1xcbiAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xcbn1cXHJcXG4ubWItMSB7XFxuICBtYXJnaW4tYm90dG9tOiAwLjI1cmVtO1xcbn1cXHJcXG4ubWItMTIge1xcbiAgbWFyZ2luLWJvdHRvbTogM3JlbTtcXG59XFxyXFxuLm1iLTE2IHtcXG4gIG1hcmdpbi1ib3R0b206IDRyZW07XFxufVxcclxcbi5tYi0yIHtcXG4gIG1hcmdpbi1ib3R0b206IDAuNXJlbTtcXG59XFxyXFxuLm1iLTMge1xcbiAgbWFyZ2luLWJvdHRvbTogMC43NXJlbTtcXG59XFxyXFxuLm1iLTQge1xcbiAgbWFyZ2luLWJvdHRvbTogMXJlbTtcXG59XFxyXFxuLm1iLTYge1xcbiAgbWFyZ2luLWJvdHRvbTogMS41cmVtO1xcbn1cXHJcXG4ubWItOCB7XFxuICBtYXJnaW4tYm90dG9tOiAycmVtO1xcbn1cXHJcXG4ubWItc2VjdGlvbiB7XFxuICBtYXJnaW4tYm90dG9tOiA0cmVtO1xcbn1cXHJcXG4ubWwtMSB7XFxuICBtYXJnaW4tbGVmdDogMC4yNXJlbTtcXG59XFxyXFxuLm1sLTIge1xcbiAgbWFyZ2luLWxlZnQ6IDAuNXJlbTtcXG59XFxyXFxuLm1yLTEge1xcbiAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xcbn1cXHJcXG4ubXItMiB7XFxuICBtYXJnaW4tcmlnaHQ6IDAuNXJlbTtcXG59XFxyXFxuLm1yLTMge1xcbiAgbWFyZ2luLXJpZ2h0OiAwLjc1cmVtO1xcbn1cXHJcXG4ubXItNCB7XFxuICBtYXJnaW4tcmlnaHQ6IDFyZW07XFxufVxcclxcbi5tdC0wXFxcXC41IHtcXG4gIG1hcmdpbi10b3A6IDAuMTI1cmVtO1xcbn1cXHJcXG4ubXQtMSB7XFxuICBtYXJnaW4tdG9wOiAwLjI1cmVtO1xcbn1cXHJcXG4ubXQtMTIge1xcbiAgbWFyZ2luLXRvcDogM3JlbTtcXG59XFxyXFxuLm10LTE2IHtcXG4gIG1hcmdpbi10b3A6IDRyZW07XFxufVxcclxcbi5tdC0yIHtcXG4gIG1hcmdpbi10b3A6IDAuNXJlbTtcXG59XFxyXFxuLm10LTIwIHtcXG4gIG1hcmdpbi10b3A6IDVyZW07XFxufVxcclxcbi5tdC00IHtcXG4gIG1hcmdpbi10b3A6IDFyZW07XFxufVxcclxcbi5tdC04IHtcXG4gIG1hcmdpbi10b3A6IDJyZW07XFxufVxcclxcbi5saW5lLWNsYW1wLTIge1xcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcXG4gIGRpc3BsYXk6IC13ZWJraXQtYm94O1xcbiAgLXdlYmtpdC1ib3gtb3JpZW50OiB2ZXJ0aWNhbDtcXG4gIC13ZWJraXQtbGluZS1jbGFtcDogMjtcXG59XFxyXFxuLmxpbmUtY2xhbXAtMyB7XFxuICBvdmVyZmxvdzogaGlkZGVuO1xcbiAgZGlzcGxheTogLXdlYmtpdC1ib3g7XFxuICAtd2Via2l0LWJveC1vcmllbnQ6IHZlcnRpY2FsO1xcbiAgLXdlYmtpdC1saW5lLWNsYW1wOiAzO1xcbn1cXHJcXG4uYmxvY2sge1xcbiAgZGlzcGxheTogYmxvY2s7XFxufVxcclxcbi5mbGV4IHtcXG4gIGRpc3BsYXk6IGZsZXg7XFxufVxcclxcbi5pbmxpbmUtZmxleCB7XFxuICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcXG59XFxyXFxuLmdyaWQge1xcbiAgZGlzcGxheTogZ3JpZDtcXG59XFxyXFxuLmhpZGRlbiB7XFxuICBkaXNwbGF5OiBub25lO1xcbn1cXHJcXG4uaC0wXFxcXC41IHtcXG4gIGhlaWdodDogMC4xMjVyZW07XFxufVxcclxcbi5oLTEwIHtcXG4gIGhlaWdodDogMi41cmVtO1xcbn1cXHJcXG4uaC0xMiB7XFxuICBoZWlnaHQ6IDNyZW07XFxufVxcclxcbi5oLTE2IHtcXG4gIGhlaWdodDogNHJlbTtcXG59XFxyXFxuLmgtMjAge1xcbiAgaGVpZ2h0OiA1cmVtO1xcbn1cXHJcXG4uaC0yNCB7XFxuICBoZWlnaHQ6IDZyZW07XFxufVxcclxcbi5oLTMge1xcbiAgaGVpZ2h0OiAwLjc1cmVtO1xcbn1cXHJcXG4uaC00IHtcXG4gIGhlaWdodDogMXJlbTtcXG59XFxyXFxuLmgtNDgge1xcbiAgaGVpZ2h0OiAxMnJlbTtcXG59XFxyXFxuLmgtNSB7XFxuICBoZWlnaHQ6IDEuMjVyZW07XFxufVxcclxcbi5oLTYge1xcbiAgaGVpZ2h0OiAxLjVyZW07XFxufVxcclxcbi5oLTgge1xcbiAgaGVpZ2h0OiAycmVtO1xcbn1cXHJcXG4uaC1hdXRvIHtcXG4gIGhlaWdodDogYXV0bztcXG59XFxyXFxuLmgtZnVsbCB7XFxuICBoZWlnaHQ6IDEwMCU7XFxufVxcclxcbi5taW4taC1cXFxcWzYwdmhcXFxcXSB7XFxuICBtaW4taGVpZ2h0OiA2MHZoO1xcbn1cXHJcXG4udy0xIHtcXG4gIHdpZHRoOiAwLjI1cmVtO1xcbn1cXHJcXG4udy0xXFxcXC8yIHtcXG4gIHdpZHRoOiA1MCU7XFxufVxcclxcbi53LTEwIHtcXG4gIHdpZHRoOiAyLjVyZW07XFxufVxcclxcbi53LTEyIHtcXG4gIHdpZHRoOiAzcmVtO1xcbn1cXHJcXG4udy0xNiB7XFxuICB3aWR0aDogNHJlbTtcXG59XFxyXFxuLnctMjAge1xcbiAgd2lkdGg6IDVyZW07XFxufVxcclxcbi53LTI0IHtcXG4gIHdpZHRoOiA2cmVtO1xcbn1cXHJcXG4udy0zIHtcXG4gIHdpZHRoOiAwLjc1cmVtO1xcbn1cXHJcXG4udy00IHtcXG4gIHdpZHRoOiAxcmVtO1xcbn1cXHJcXG4udy01IHtcXG4gIHdpZHRoOiAxLjI1cmVtO1xcbn1cXHJcXG4udy02IHtcXG4gIHdpZHRoOiAxLjVyZW07XFxufVxcclxcbi53LTY0IHtcXG4gIHdpZHRoOiAxNnJlbTtcXG59XFxyXFxuLnctOCB7XFxuICB3aWR0aDogMnJlbTtcXG59XFxyXFxuLnctZnVsbCB7XFxuICB3aWR0aDogMTAwJTtcXG59XFxyXFxuLm1heC13LTJ4bCB7XFxuICBtYXgtd2lkdGg6IDQycmVtO1xcbn1cXHJcXG4ubWF4LXctM3hsIHtcXG4gIG1heC13aWR0aDogNDhyZW07XFxufVxcclxcbi5tYXgtdy00eGwge1xcbiAgbWF4LXdpZHRoOiA1NnJlbTtcXG59XFxyXFxuLm1heC13LWZ1bGwge1xcbiAgbWF4LXdpZHRoOiAxMDAlO1xcbn1cXHJcXG4ubWF4LXctbWQge1xcbiAgbWF4LXdpZHRoOiAyOHJlbTtcXG59XFxyXFxuLm1heC13LXNjcmVlbi1sZyB7XFxuICBtYXgtd2lkdGg6IDEwMjRweDtcXG59XFxyXFxuLm1heC13LXNjcmVlbi1tZCB7XFxuICBtYXgtd2lkdGg6IDc2OHB4O1xcbn1cXHJcXG4ubWF4LXctc2NyZWVuLXhsIHtcXG4gIG1heC13aWR0aDogMTI4MHB4O1xcbn1cXHJcXG4uZmxleC0xIHtcXG4gIGZsZXg6IDEgMSAwJTtcXG59XFxyXFxuLmZsZXgtc2hyaW5rLTAge1xcbiAgZmxleC1zaHJpbms6IDA7XFxufVxcclxcbi4tdHJhbnNsYXRlLXgtMVxcXFwvMiB7XFxuICAtLXR3LXRyYW5zbGF0ZS14OiAtNTAlO1xcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUodmFyKC0tdHctdHJhbnNsYXRlLXgpLCB2YXIoLS10dy10cmFuc2xhdGUteSkpIHJvdGF0ZSh2YXIoLS10dy1yb3RhdGUpKSBza2V3WCh2YXIoLS10dy1za2V3LXgpKSBza2V3WSh2YXIoLS10dy1za2V3LXkpKSBzY2FsZVgodmFyKC0tdHctc2NhbGUteCkpIHNjYWxlWSh2YXIoLS10dy1zY2FsZS15KSk7XFxufVxcclxcbi4tdHJhbnNsYXRlLXktMVxcXFwvMiB7XFxuICAtLXR3LXRyYW5zbGF0ZS15OiAtNTAlO1xcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUodmFyKC0tdHctdHJhbnNsYXRlLXgpLCB2YXIoLS10dy10cmFuc2xhdGUteSkpIHJvdGF0ZSh2YXIoLS10dy1yb3RhdGUpKSBza2V3WCh2YXIoLS10dy1za2V3LXgpKSBza2V3WSh2YXIoLS10dy1za2V3LXkpKSBzY2FsZVgodmFyKC0tdHctc2NhbGUteCkpIHNjYWxlWSh2YXIoLS10dy1zY2FsZS15KSk7XFxufVxcclxcbi50cmFuc2xhdGUteC0wIHtcXG4gIC0tdHctdHJhbnNsYXRlLXg6IDBweDtcXG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlKHZhcigtLXR3LXRyYW5zbGF0ZS14KSwgdmFyKC0tdHctdHJhbnNsYXRlLXkpKSByb3RhdGUodmFyKC0tdHctcm90YXRlKSkgc2tld1godmFyKC0tdHctc2tldy14KSkgc2tld1kodmFyKC0tdHctc2tldy15KSkgc2NhbGVYKHZhcigtLXR3LXNjYWxlLXgpKSBzY2FsZVkodmFyKC0tdHctc2NhbGUteSkpO1xcbn1cXHJcXG4udHJhbnNsYXRlLXgtZnVsbCB7XFxuICAtLXR3LXRyYW5zbGF0ZS14OiAxMDAlO1xcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUodmFyKC0tdHctdHJhbnNsYXRlLXgpLCB2YXIoLS10dy10cmFuc2xhdGUteSkpIHJvdGF0ZSh2YXIoLS10dy1yb3RhdGUpKSBza2V3WCh2YXIoLS10dy1za2V3LXgpKSBza2V3WSh2YXIoLS10dy1za2V3LXkpKSBzY2FsZVgodmFyKC0tdHctc2NhbGUteCkpIHNjYWxlWSh2YXIoLS10dy1zY2FsZS15KSk7XFxufVxcclxcbi5yb3RhdGUtOTAge1xcbiAgLS10dy1yb3RhdGU6IDkwZGVnO1xcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUodmFyKC0tdHctdHJhbnNsYXRlLXgpLCB2YXIoLS10dy10cmFuc2xhdGUteSkpIHJvdGF0ZSh2YXIoLS10dy1yb3RhdGUpKSBza2V3WCh2YXIoLS10dy1za2V3LXgpKSBza2V3WSh2YXIoLS10dy1za2V3LXkpKSBzY2FsZVgodmFyKC0tdHctc2NhbGUteCkpIHNjYWxlWSh2YXIoLS10dy1zY2FsZS15KSk7XFxufVxcclxcbi5zY2FsZS0xMDUge1xcbiAgLS10dy1zY2FsZS14OiAxLjA1O1xcbiAgLS10dy1zY2FsZS15OiAxLjA1O1xcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUodmFyKC0tdHctdHJhbnNsYXRlLXgpLCB2YXIoLS10dy10cmFuc2xhdGUteSkpIHJvdGF0ZSh2YXIoLS10dy1yb3RhdGUpKSBza2V3WCh2YXIoLS10dy1za2V3LXgpKSBza2V3WSh2YXIoLS10dy1za2V3LXkpKSBzY2FsZVgodmFyKC0tdHctc2NhbGUteCkpIHNjYWxlWSh2YXIoLS10dy1zY2FsZS15KSk7XFxufVxcclxcbi50cmFuc2Zvcm0ge1xcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUodmFyKC0tdHctdHJhbnNsYXRlLXgpLCB2YXIoLS10dy10cmFuc2xhdGUteSkpIHJvdGF0ZSh2YXIoLS10dy1yb3RhdGUpKSBza2V3WCh2YXIoLS10dy1za2V3LXgpKSBza2V3WSh2YXIoLS10dy1za2V3LXkpKSBzY2FsZVgodmFyKC0tdHctc2NhbGUteCkpIHNjYWxlWSh2YXIoLS10dy1zY2FsZS15KSk7XFxufVxcclxcbkBrZXlmcmFtZXMgc3BpbiB7XFxuXFxuICB0byB7XFxuICAgIHRyYW5zZm9ybTogcm90YXRlKDM2MGRlZyk7XFxuICB9XFxufVxcclxcbi5hbmltYXRlLXNwaW4ge1xcbiAgYW5pbWF0aW9uOiBzcGluIDFzIGxpbmVhciBpbmZpbml0ZTtcXG59XFxyXFxuLmN1cnNvci1wb2ludGVyIHtcXG4gIGN1cnNvcjogcG9pbnRlcjtcXG59XFxyXFxuLnJlc2l6ZS1ub25lIHtcXG4gIHJlc2l6ZTogbm9uZTtcXG59XFxyXFxuLmdyaWQtY29scy0xIHtcXG4gIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KDEsIG1pbm1heCgwLCAxZnIpKTtcXG59XFxyXFxuLmdyaWQtY29scy0yIHtcXG4gIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KDIsIG1pbm1heCgwLCAxZnIpKTtcXG59XFxyXFxuLmZsZXgtcm93IHtcXG4gIGZsZXgtZGlyZWN0aW9uOiByb3c7XFxufVxcclxcbi5mbGV4LXJvdy1yZXZlcnNlIHtcXG4gIGZsZXgtZGlyZWN0aW9uOiByb3ctcmV2ZXJzZTtcXG59XFxyXFxuLmZsZXgtY29sIHtcXG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XFxufVxcclxcbi5mbGV4LXdyYXAge1xcbiAgZmxleC13cmFwOiB3cmFwO1xcbn1cXHJcXG4uaXRlbXMtc3RhcnQge1xcbiAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XFxufVxcclxcbi5pdGVtcy1jZW50ZXIge1xcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcXG59XFxyXFxuLml0ZW1zLWJhc2VsaW5lIHtcXG4gIGFsaWduLWl0ZW1zOiBiYXNlbGluZTtcXG59XFxyXFxuLmp1c3RpZnktY2VudGVyIHtcXG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xcbn1cXHJcXG4uanVzdGlmeS1iZXR3ZWVuIHtcXG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcXG59XFxyXFxuLmdhcC0xIHtcXG4gIGdhcDogMC4yNXJlbTtcXG59XFxyXFxuLmdhcC0xMiB7XFxuICBnYXA6IDNyZW07XFxufVxcclxcbi5nYXAtMiB7XFxuICBnYXA6IDAuNXJlbTtcXG59XFxyXFxuLmdhcC0zIHtcXG4gIGdhcDogMC43NXJlbTtcXG59XFxyXFxuLmdhcC00IHtcXG4gIGdhcDogMXJlbTtcXG59XFxyXFxuLmdhcC02IHtcXG4gIGdhcDogMS41cmVtO1xcbn1cXHJcXG4uZ2FwLTgge1xcbiAgZ2FwOiAycmVtO1xcbn1cXHJcXG4uc3BhY2UteC00ID4gOm5vdChbaGlkZGVuXSkgfiA6bm90KFtoaWRkZW5dKSB7XFxuICAtLXR3LXNwYWNlLXgtcmV2ZXJzZTogMDtcXG4gIG1hcmdpbi1yaWdodDogY2FsYygxcmVtICogdmFyKC0tdHctc3BhY2UteC1yZXZlcnNlKSk7XFxuICBtYXJnaW4tbGVmdDogY2FsYygxcmVtICogY2FsYygxIC0gdmFyKC0tdHctc3BhY2UteC1yZXZlcnNlKSkpO1xcbn1cXHJcXG4uc3BhY2UteC02ID4gOm5vdChbaGlkZGVuXSkgfiA6bm90KFtoaWRkZW5dKSB7XFxuICAtLXR3LXNwYWNlLXgtcmV2ZXJzZTogMDtcXG4gIG1hcmdpbi1yaWdodDogY2FsYygxLjVyZW0gKiB2YXIoLS10dy1zcGFjZS14LXJldmVyc2UpKTtcXG4gIG1hcmdpbi1sZWZ0OiBjYWxjKDEuNXJlbSAqIGNhbGMoMSAtIHZhcigtLXR3LXNwYWNlLXgtcmV2ZXJzZSkpKTtcXG59XFxyXFxuLnNwYWNlLXktMSA+IDpub3QoW2hpZGRlbl0pIH4gOm5vdChbaGlkZGVuXSkge1xcbiAgLS10dy1zcGFjZS15LXJldmVyc2U6IDA7XFxuICBtYXJnaW4tdG9wOiBjYWxjKDAuMjVyZW0gKiBjYWxjKDEgLSB2YXIoLS10dy1zcGFjZS15LXJldmVyc2UpKSk7XFxuICBtYXJnaW4tYm90dG9tOiBjYWxjKDAuMjVyZW0gKiB2YXIoLS10dy1zcGFjZS15LXJldmVyc2UpKTtcXG59XFxyXFxuLnNwYWNlLXktMTIgPiA6bm90KFtoaWRkZW5dKSB+IDpub3QoW2hpZGRlbl0pIHtcXG4gIC0tdHctc3BhY2UteS1yZXZlcnNlOiAwO1xcbiAgbWFyZ2luLXRvcDogY2FsYygzcmVtICogY2FsYygxIC0gdmFyKC0tdHctc3BhY2UteS1yZXZlcnNlKSkpO1xcbiAgbWFyZ2luLWJvdHRvbTogY2FsYygzcmVtICogdmFyKC0tdHctc3BhY2UteS1yZXZlcnNlKSk7XFxufVxcclxcbi5zcGFjZS15LTIgPiA6bm90KFtoaWRkZW5dKSB+IDpub3QoW2hpZGRlbl0pIHtcXG4gIC0tdHctc3BhY2UteS1yZXZlcnNlOiAwO1xcbiAgbWFyZ2luLXRvcDogY2FsYygwLjVyZW0gKiBjYWxjKDEgLSB2YXIoLS10dy1zcGFjZS15LXJldmVyc2UpKSk7XFxuICBtYXJnaW4tYm90dG9tOiBjYWxjKDAuNXJlbSAqIHZhcigtLXR3LXNwYWNlLXktcmV2ZXJzZSkpO1xcbn1cXHJcXG4uc3BhY2UteS0zID4gOm5vdChbaGlkZGVuXSkgfiA6bm90KFtoaWRkZW5dKSB7XFxuICAtLXR3LXNwYWNlLXktcmV2ZXJzZTogMDtcXG4gIG1hcmdpbi10b3A6IGNhbGMoMC43NXJlbSAqIGNhbGMoMSAtIHZhcigtLXR3LXNwYWNlLXktcmV2ZXJzZSkpKTtcXG4gIG1hcmdpbi1ib3R0b206IGNhbGMoMC43NXJlbSAqIHZhcigtLXR3LXNwYWNlLXktcmV2ZXJzZSkpO1xcbn1cXHJcXG4uc3BhY2UteS00ID4gOm5vdChbaGlkZGVuXSkgfiA6bm90KFtoaWRkZW5dKSB7XFxuICAtLXR3LXNwYWNlLXktcmV2ZXJzZTogMDtcXG4gIG1hcmdpbi10b3A6IGNhbGMoMXJlbSAqIGNhbGMoMSAtIHZhcigtLXR3LXNwYWNlLXktcmV2ZXJzZSkpKTtcXG4gIG1hcmdpbi1ib3R0b206IGNhbGMoMXJlbSAqIHZhcigtLXR3LXNwYWNlLXktcmV2ZXJzZSkpO1xcbn1cXHJcXG4uc3BhY2UteS02ID4gOm5vdChbaGlkZGVuXSkgfiA6bm90KFtoaWRkZW5dKSB7XFxuICAtLXR3LXNwYWNlLXktcmV2ZXJzZTogMDtcXG4gIG1hcmdpbi10b3A6IGNhbGMoMS41cmVtICogY2FsYygxIC0gdmFyKC0tdHctc3BhY2UteS1yZXZlcnNlKSkpO1xcbiAgbWFyZ2luLWJvdHRvbTogY2FsYygxLjVyZW0gKiB2YXIoLS10dy1zcGFjZS15LXJldmVyc2UpKTtcXG59XFxyXFxuLnNwYWNlLXktOCA+IDpub3QoW2hpZGRlbl0pIH4gOm5vdChbaGlkZGVuXSkge1xcbiAgLS10dy1zcGFjZS15LXJldmVyc2U6IDA7XFxuICBtYXJnaW4tdG9wOiBjYWxjKDJyZW0gKiBjYWxjKDEgLSB2YXIoLS10dy1zcGFjZS15LXJldmVyc2UpKSk7XFxuICBtYXJnaW4tYm90dG9tOiBjYWxjKDJyZW0gKiB2YXIoLS10dy1zcGFjZS15LXJldmVyc2UpKTtcXG59XFxyXFxuLm92ZXJmbG93LWhpZGRlbiB7XFxuICBvdmVyZmxvdzogaGlkZGVuO1xcbn1cXHJcXG4ucm91bmRlZCB7XFxuICBib3JkZXItcmFkaXVzOiAwLjI1cmVtO1xcbn1cXHJcXG4ucm91bmRlZC0yeGwge1xcbiAgYm9yZGVyLXJhZGl1czogMXJlbTtcXG59XFxyXFxuLnJvdW5kZWQtZnVsbCB7XFxuICBib3JkZXItcmFkaXVzOiA5OTk5cHg7XFxufVxcclxcbi5yb3VuZGVkLWxnIHtcXG4gIGJvcmRlci1yYWRpdXM6IDAuNXJlbTtcXG59XFxyXFxuLnJvdW5kZWQteGwge1xcbiAgYm9yZGVyLXJhZGl1czogMC43NXJlbTtcXG59XFxyXFxuLmJvcmRlciB7XFxuICBib3JkZXItd2lkdGg6IDFweDtcXG59XFxyXFxuLmJvcmRlci0yIHtcXG4gIGJvcmRlci13aWR0aDogMnB4O1xcbn1cXHJcXG4uYm9yZGVyLXQge1xcbiAgYm9yZGVyLXRvcC13aWR0aDogMXB4O1xcbn1cXHJcXG4uYm9yZGVyLWdyYXktMTAwIHtcXG4gIC0tdHctYm9yZGVyLW9wYWNpdHk6IDE7XFxuICBib3JkZXItY29sb3I6IHJnYigyNDMgMjQ0IDI0NiAvIHZhcigtLXR3LWJvcmRlci1vcGFjaXR5LCAxKSk7XFxufVxcclxcbi5ib3JkZXItZ3JheS0yMDAge1xcbiAgLS10dy1ib3JkZXItb3BhY2l0eTogMTtcXG4gIGJvcmRlci1jb2xvcjogcmdiKDIyOSAyMzEgMjM1IC8gdmFyKC0tdHctYm9yZGVyLW9wYWNpdHksIDEpKTtcXG59XFxyXFxuLmJvcmRlci1ncmF5LTMwMCB7XFxuICAtLXR3LWJvcmRlci1vcGFjaXR5OiAxO1xcbiAgYm9yZGVyLWNvbG9yOiByZ2IoMjA5IDIxMyAyMTkgLyB2YXIoLS10dy1ib3JkZXItb3BhY2l0eSwgMSkpO1xcbn1cXHJcXG4uYm9yZGVyLWdyYXktNzAwIHtcXG4gIC0tdHctYm9yZGVyLW9wYWNpdHk6IDE7XFxuICBib3JkZXItY29sb3I6IHJnYig1NSA2NSA4MSAvIHZhcigtLXR3LWJvcmRlci1vcGFjaXR5LCAxKSk7XFxufVxcclxcbi5ib3JkZXItZ3JlZW4tMjAwIHtcXG4gIC0tdHctYm9yZGVyLW9wYWNpdHk6IDE7XFxuICBib3JkZXItY29sb3I6IHJnYigxODcgMjQ3IDIwOCAvIHZhcigtLXR3LWJvcmRlci1vcGFjaXR5LCAxKSk7XFxufVxcclxcbi5ib3JkZXItcHJpbWFyeSB7XFxuICAtLXR3LWJvcmRlci1vcGFjaXR5OiAxO1xcbiAgYm9yZGVyLWNvbG9yOiByZ2IoNTEgNTEgNTEgLyB2YXIoLS10dy1ib3JkZXItb3BhY2l0eSwgMSkpO1xcbn1cXHJcXG4uYm9yZGVyLXJlZC0yMDAge1xcbiAgLS10dy1ib3JkZXItb3BhY2l0eTogMTtcXG4gIGJvcmRlci1jb2xvcjogcmdiKDI1NCAyMDIgMjAyIC8gdmFyKC0tdHctYm9yZGVyLW9wYWNpdHksIDEpKTtcXG59XFxyXFxuLmJvcmRlci13aGl0ZSB7XFxuICAtLXR3LWJvcmRlci1vcGFjaXR5OiAxO1xcbiAgYm9yZGVyLWNvbG9yOiByZ2IoMjU1IDI1NSAyNTUgLyB2YXIoLS10dy1ib3JkZXItb3BhY2l0eSwgMSkpO1xcbn1cXHJcXG4uYm9yZGVyLXdoaXRlXFxcXC8yMCB7XFxuICBib3JkZXItY29sb3I6IHJnYigyNTUgMjU1IDI1NSAvIDAuMik7XFxufVxcclxcbi5ib3JkZXIteWVsbG93LTIwMCB7XFxuICAtLXR3LWJvcmRlci1vcGFjaXR5OiAxO1xcbiAgYm9yZGVyLWNvbG9yOiByZ2IoMjU0IDI0MCAxMzggLyB2YXIoLS10dy1ib3JkZXItb3BhY2l0eSwgMSkpO1xcbn1cXHJcXG4uYm9yZGVyLXQtdHJhbnNwYXJlbnQge1xcbiAgYm9yZGVyLXRvcC1jb2xvcjogdHJhbnNwYXJlbnQ7XFxufVxcclxcbi5iZy1hY2NlbnQge1xcbiAgLS10dy1iZy1vcGFjaXR5OiAxO1xcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDAgMTA2IDI1NSAvIHZhcigtLXR3LWJnLW9wYWNpdHksIDEpKTtcXG59XFxyXFxuLmJnLWFjY2VudFxcXFwvMjAge1xcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDAgMTA2IDI1NSAvIDAuMik7XFxufVxcclxcbi5iZy1iYWNrZ3JvdW5kIHtcXG4gIC0tdHctYmctb3BhY2l0eTogMTtcXG4gIGJhY2tncm91bmQtY29sb3I6IHJnYigyNTUgMjU1IDI1NSAvIHZhcigtLXR3LWJnLW9wYWNpdHksIDEpKTtcXG59XFxyXFxuLmJnLWJsYWNrXFxcXC8xMCB7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMCAwIDAgLyAwLjEpO1xcbn1cXHJcXG4uYmctYmx1ZS0xMDAge1xcbiAgLS10dy1iZy1vcGFjaXR5OiAxO1xcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDIxOSAyMzQgMjU0IC8gdmFyKC0tdHctYmctb3BhY2l0eSwgMSkpO1xcbn1cXHJcXG4uYmctYmx1ZS01MCB7XFxuICAtLXR3LWJnLW9wYWNpdHk6IDE7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMjM5IDI0NiAyNTUgLyB2YXIoLS10dy1iZy1vcGFjaXR5LCAxKSk7XFxufVxcclxcbi5iZy1ncmF5LTEwMCB7XFxuICAtLXR3LWJnLW9wYWNpdHk6IDE7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMjQzIDI0NCAyNDYgLyB2YXIoLS10dy1iZy1vcGFjaXR5LCAxKSk7XFxufVxcclxcbi5iZy1ncmF5LTUwIHtcXG4gIC0tdHctYmctb3BhY2l0eTogMTtcXG4gIGJhY2tncm91bmQtY29sb3I6IHJnYigyNDkgMjUwIDI1MSAvIHZhcigtLXR3LWJnLW9wYWNpdHksIDEpKTtcXG59XFxyXFxuLmJnLWdyYXktOTAwIHtcXG4gIC0tdHctYmctb3BhY2l0eTogMTtcXG4gIGJhY2tncm91bmQtY29sb3I6IHJnYigxNyAyNCAzOSAvIHZhcigtLXR3LWJnLW9wYWNpdHksIDEpKTtcXG59XFxyXFxuLmJnLWdyZWVuLTEwMCB7XFxuICAtLXR3LWJnLW9wYWNpdHk6IDE7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMjIwIDI1MiAyMzEgLyB2YXIoLS10dy1iZy1vcGFjaXR5LCAxKSk7XFxufVxcclxcbi5iZy1ncmVlbi01MCB7XFxuICAtLXR3LWJnLW9wYWNpdHk6IDE7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMjQwIDI1MyAyNDQgLyB2YXIoLS10dy1iZy1vcGFjaXR5LCAxKSk7XFxufVxcclxcbi5iZy1ncmVlbi01MDAge1xcbiAgLS10dy1iZy1vcGFjaXR5OiAxO1xcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDM0IDE5NyA5NCAvIHZhcigtLXR3LWJnLW9wYWNpdHksIDEpKTtcXG59XFxyXFxuLmJnLW9yYW5nZS0xMDAge1xcbiAgLS10dy1iZy1vcGFjaXR5OiAxO1xcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDI1NSAyMzcgMjEzIC8gdmFyKC0tdHctYmctb3BhY2l0eSwgMSkpO1xcbn1cXHJcXG4uYmctcHVycGxlLTEwMCB7XFxuICAtLXR3LWJnLW9wYWNpdHk6IDE7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMjQzIDIzMiAyNTUgLyB2YXIoLS10dy1iZy1vcGFjaXR5LCAxKSk7XFxufVxcclxcbi5iZy1wdXJwbGUtNTAwIHtcXG4gIC0tdHctYmctb3BhY2l0eTogMTtcXG4gIGJhY2tncm91bmQtY29sb3I6IHJnYigxNjggODUgMjQ3IC8gdmFyKC0tdHctYmctb3BhY2l0eSwgMSkpO1xcbn1cXHJcXG4uYmctcmVkLTEwMCB7XFxuICAtLXR3LWJnLW9wYWNpdHk6IDE7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMjU0IDIyNiAyMjYgLyB2YXIoLS10dy1iZy1vcGFjaXR5LCAxKSk7XFxufVxcclxcbi5iZy1yZWQtNTAge1xcbiAgLS10dy1iZy1vcGFjaXR5OiAxO1xcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDI1NCAyNDIgMjQyIC8gdmFyKC0tdHctYmctb3BhY2l0eSwgMSkpO1xcbn1cXHJcXG4uYmctdGVhbC0xMDAge1xcbiAgLS10dy1iZy1vcGFjaXR5OiAxO1xcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDIwNCAyNTEgMjQxIC8gdmFyKC0tdHctYmctb3BhY2l0eSwgMSkpO1xcbn1cXHJcXG4uYmctd2hpdGUge1xcbiAgLS10dy1iZy1vcGFjaXR5OiAxO1xcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDI1NSAyNTUgMjU1IC8gdmFyKC0tdHctYmctb3BhY2l0eSwgMSkpO1xcbn1cXHJcXG4uYmctd2hpdGVcXFxcLzEwIHtcXG4gIGJhY2tncm91bmQtY29sb3I6IHJnYigyNTUgMjU1IDI1NSAvIDAuMSk7XFxufVxcclxcbi5iZy13aGl0ZVxcXFwvMjAge1xcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDI1NSAyNTUgMjU1IC8gMC4yKTtcXG59XFxyXFxuLmJnLXdoaXRlXFxcXC81IHtcXG4gIGJhY2tncm91bmQtY29sb3I6IHJnYigyNTUgMjU1IDI1NSAvIDAuMDUpO1xcbn1cXHJcXG4uYmctd2hpdGVcXFxcLzgwIHtcXG4gIGJhY2tncm91bmQtY29sb3I6IHJnYigyNTUgMjU1IDI1NSAvIDAuOCk7XFxufVxcclxcbi5iZy15ZWxsb3ctNTAge1xcbiAgLS10dy1iZy1vcGFjaXR5OiAxO1xcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDI1NCAyNTIgMjMyIC8gdmFyKC0tdHctYmctb3BhY2l0eSwgMSkpO1xcbn1cXHJcXG4uYmctZ3JhZGllbnQtdG8tYnIge1xcbiAgYmFja2dyb3VuZC1pbWFnZTogbGluZWFyLWdyYWRpZW50KHRvIGJvdHRvbSByaWdodCwgdmFyKC0tdHctZ3JhZGllbnQtc3RvcHMpKTtcXG59XFxyXFxuLmJnLWdyYWRpZW50LXRvLXIge1xcbiAgYmFja2dyb3VuZC1pbWFnZTogbGluZWFyLWdyYWRpZW50KHRvIHJpZ2h0LCB2YXIoLS10dy1ncmFkaWVudC1zdG9wcykpO1xcbn1cXHJcXG4uZnJvbS1hY2NlbnQge1xcbiAgLS10dy1ncmFkaWVudC1mcm9tOiAjMDA2QUZGIHZhcigtLXR3LWdyYWRpZW50LWZyb20tcG9zaXRpb24pO1xcbiAgLS10dy1ncmFkaWVudC10bzogcmdiKDAgMTA2IDI1NSAvIDApIHZhcigtLXR3LWdyYWRpZW50LXRvLXBvc2l0aW9uKTtcXG4gIC0tdHctZ3JhZGllbnQtc3RvcHM6IHZhcigtLXR3LWdyYWRpZW50LWZyb20pLCB2YXIoLS10dy1ncmFkaWVudC10byk7XFxufVxcclxcbi5mcm9tLWFjY2VudFxcXFwvMTAge1xcbiAgLS10dy1ncmFkaWVudC1mcm9tOiByZ2IoMCAxMDYgMjU1IC8gMC4xKSB2YXIoLS10dy1ncmFkaWVudC1mcm9tLXBvc2l0aW9uKTtcXG4gIC0tdHctZ3JhZGllbnQtdG86IHJnYigwIDEwNiAyNTUgLyAwKSB2YXIoLS10dy1ncmFkaWVudC10by1wb3NpdGlvbik7XFxuICAtLXR3LWdyYWRpZW50LXN0b3BzOiB2YXIoLS10dy1ncmFkaWVudC1mcm9tKSwgdmFyKC0tdHctZ3JhZGllbnQtdG8pO1xcbn1cXHJcXG4uZnJvbS1ibHVlLTUwIHtcXG4gIC0tdHctZ3JhZGllbnQtZnJvbTogI2VmZjZmZiB2YXIoLS10dy1ncmFkaWVudC1mcm9tLXBvc2l0aW9uKTtcXG4gIC0tdHctZ3JhZGllbnQtdG86IHJnYigyMzkgMjQ2IDI1NSAvIDApIHZhcigtLXR3LWdyYWRpZW50LXRvLXBvc2l0aW9uKTtcXG4gIC0tdHctZ3JhZGllbnQtc3RvcHM6IHZhcigtLXR3LWdyYWRpZW50LWZyb20pLCB2YXIoLS10dy1ncmFkaWVudC10byk7XFxufVxcclxcbi5mcm9tLWdyYXktNTAge1xcbiAgLS10dy1ncmFkaWVudC1mcm9tOiAjZjlmYWZiIHZhcigtLXR3LWdyYWRpZW50LWZyb20tcG9zaXRpb24pO1xcbiAgLS10dy1ncmFkaWVudC10bzogcmdiKDI0OSAyNTAgMjUxIC8gMCkgdmFyKC0tdHctZ3JhZGllbnQtdG8tcG9zaXRpb24pO1xcbiAgLS10dy1ncmFkaWVudC1zdG9wczogdmFyKC0tdHctZ3JhZGllbnQtZnJvbSksIHZhcigtLXR3LWdyYWRpZW50LXRvKTtcXG59XFxyXFxuLmZyb20tZ3JlZW4tNTAge1xcbiAgLS10dy1ncmFkaWVudC1mcm9tOiAjZjBmZGY0IHZhcigtLXR3LWdyYWRpZW50LWZyb20tcG9zaXRpb24pO1xcbiAgLS10dy1ncmFkaWVudC10bzogcmdiKDI0MCAyNTMgMjQ0IC8gMCkgdmFyKC0tdHctZ3JhZGllbnQtdG8tcG9zaXRpb24pO1xcbiAgLS10dy1ncmFkaWVudC1zdG9wczogdmFyKC0tdHctZ3JhZGllbnQtZnJvbSksIHZhcigtLXR3LWdyYWRpZW50LXRvKTtcXG59XFxyXFxuLmZyb20tb3JhbmdlLTUwIHtcXG4gIC0tdHctZ3JhZGllbnQtZnJvbTogI2ZmZjdlZCB2YXIoLS10dy1ncmFkaWVudC1mcm9tLXBvc2l0aW9uKTtcXG4gIC0tdHctZ3JhZGllbnQtdG86IHJnYigyNTUgMjQ3IDIzNyAvIDApIHZhcigtLXR3LWdyYWRpZW50LXRvLXBvc2l0aW9uKTtcXG4gIC0tdHctZ3JhZGllbnQtc3RvcHM6IHZhcigtLXR3LWdyYWRpZW50LWZyb20pLCB2YXIoLS10dy1ncmFkaWVudC10byk7XFxufVxcclxcbi5mcm9tLXB1cnBsZS01MCB7XFxuICAtLXR3LWdyYWRpZW50LWZyb206ICNmYWY1ZmYgdmFyKC0tdHctZ3JhZGllbnQtZnJvbS1wb3NpdGlvbik7XFxuICAtLXR3LWdyYWRpZW50LXRvOiByZ2IoMjUwIDI0NSAyNTUgLyAwKSB2YXIoLS10dy1ncmFkaWVudC10by1wb3NpdGlvbik7XFxuICAtLXR3LWdyYWRpZW50LXN0b3BzOiB2YXIoLS10dy1ncmFkaWVudC1mcm9tKSwgdmFyKC0tdHctZ3JhZGllbnQtdG8pO1xcbn1cXHJcXG4uZnJvbS15ZWxsb3ctMzAwIHtcXG4gIC0tdHctZ3JhZGllbnQtZnJvbTogI2ZkZTA0NyB2YXIoLS10dy1ncmFkaWVudC1mcm9tLXBvc2l0aW9uKTtcXG4gIC0tdHctZ3JhZGllbnQtdG86IHJnYigyNTMgMjI0IDcxIC8gMCkgdmFyKC0tdHctZ3JhZGllbnQtdG8tcG9zaXRpb24pO1xcbiAgLS10dy1ncmFkaWVudC1zdG9wczogdmFyKC0tdHctZ3JhZGllbnQtZnJvbSksIHZhcigtLXR3LWdyYWRpZW50LXRvKTtcXG59XFxyXFxuLnZpYS1ibHVlLTYwMCB7XFxuICAtLXR3LWdyYWRpZW50LXRvOiByZ2IoMzcgOTkgMjM1IC8gMCkgIHZhcigtLXR3LWdyYWRpZW50LXRvLXBvc2l0aW9uKTtcXG4gIC0tdHctZ3JhZGllbnQtc3RvcHM6IHZhcigtLXR3LWdyYWRpZW50LWZyb20pLCAjMjU2M2ViIHZhcigtLXR3LWdyYWRpZW50LXZpYS1wb3NpdGlvbiksIHZhcigtLXR3LWdyYWRpZW50LXRvKTtcXG59XFxyXFxuLnRvLWFjY2VudFxcXFwvMjAge1xcbiAgLS10dy1ncmFkaWVudC10bzogcmdiKDAgMTA2IDI1NSAvIDAuMikgdmFyKC0tdHctZ3JhZGllbnQtdG8tcG9zaXRpb24pO1xcbn1cXHJcXG4udG8tYmx1ZS0xMDAge1xcbiAgLS10dy1ncmFkaWVudC10bzogI2RiZWFmZSB2YXIoLS10dy1ncmFkaWVudC10by1wb3NpdGlvbik7XFxufVxcclxcbi50by1ibHVlLTUwIHtcXG4gIC0tdHctZ3JhZGllbnQtdG86ICNlZmY2ZmYgdmFyKC0tdHctZ3JhZGllbnQtdG8tcG9zaXRpb24pO1xcbn1cXHJcXG4udG8tYmx1ZS02MDAge1xcbiAgLS10dy1ncmFkaWVudC10bzogIzI1NjNlYiB2YXIoLS10dy1ncmFkaWVudC10by1wb3NpdGlvbik7XFxufVxcclxcbi50by1ncmF5LTEwMCB7XFxuICAtLXR3LWdyYWRpZW50LXRvOiAjZjNmNGY2IHZhcigtLXR3LWdyYWRpZW50LXRvLXBvc2l0aW9uKTtcXG59XFxyXFxuLnRvLWluZGlnby0xMDAge1xcbiAgLS10dy1ncmFkaWVudC10bzogI2UwZTdmZiB2YXIoLS10dy1ncmFkaWVudC10by1wb3NpdGlvbik7XFxufVxcclxcbi50by1pbmRpZ28tNTAge1xcbiAgLS10dy1ncmFkaWVudC10bzogI2VlZjJmZiB2YXIoLS10dy1ncmFkaWVudC10by1wb3NpdGlvbik7XFxufVxcclxcbi50by1vcmFuZ2UtMzAwIHtcXG4gIC0tdHctZ3JhZGllbnQtdG86ICNmZGJhNzQgdmFyKC0tdHctZ3JhZGllbnQtdG8tcG9zaXRpb24pO1xcbn1cXHJcXG4udG8tcHVycGxlLTYwMCB7XFxuICAtLXR3LWdyYWRpZW50LXRvOiAjOTMzM2VhIHZhcigtLXR3LWdyYWRpZW50LXRvLXBvc2l0aW9uKTtcXG59XFxyXFxuLnRvLXJlZC0xMDAge1xcbiAgLS10dy1ncmFkaWVudC10bzogI2ZlZTJlMiB2YXIoLS10dy1ncmFkaWVudC10by1wb3NpdGlvbik7XFxufVxcclxcbi5iZy1jbGlwLXRleHQge1xcbiAgLXdlYmtpdC1iYWNrZ3JvdW5kLWNsaXA6IHRleHQ7XFxuICAgICAgICAgIGJhY2tncm91bmQtY2xpcDogdGV4dDtcXG59XFxyXFxuLnAtMiB7XFxuICBwYWRkaW5nOiAwLjVyZW07XFxufVxcclxcbi5wLTMge1xcbiAgcGFkZGluZzogMC43NXJlbTtcXG59XFxyXFxuLnAtNCB7XFxuICBwYWRkaW5nOiAxcmVtO1xcbn1cXHJcXG4ucC02IHtcXG4gIHBhZGRpbmc6IDEuNXJlbTtcXG59XFxyXFxuLnAtOCB7XFxuICBwYWRkaW5nOiAycmVtO1xcbn1cXHJcXG4ucHgtMiB7XFxuICBwYWRkaW5nLWxlZnQ6IDAuNXJlbTtcXG4gIHBhZGRpbmctcmlnaHQ6IDAuNXJlbTtcXG59XFxyXFxuLnB4LTMge1xcbiAgcGFkZGluZy1sZWZ0OiAwLjc1cmVtO1xcbiAgcGFkZGluZy1yaWdodDogMC43NXJlbTtcXG59XFxyXFxuLnB4LTQge1xcbiAgcGFkZGluZy1sZWZ0OiAxcmVtO1xcbiAgcGFkZGluZy1yaWdodDogMXJlbTtcXG59XFxyXFxuLnB4LTYge1xcbiAgcGFkZGluZy1sZWZ0OiAxLjVyZW07XFxuICBwYWRkaW5nLXJpZ2h0OiAxLjVyZW07XFxufVxcclxcbi5weC04IHtcXG4gIHBhZGRpbmctbGVmdDogMnJlbTtcXG4gIHBhZGRpbmctcmlnaHQ6IDJyZW07XFxufVxcclxcbi5weS0xIHtcXG4gIHBhZGRpbmctdG9wOiAwLjI1cmVtO1xcbiAgcGFkZGluZy1ib3R0b206IDAuMjVyZW07XFxufVxcclxcbi5weS0xMiB7XFxuICBwYWRkaW5nLXRvcDogM3JlbTtcXG4gIHBhZGRpbmctYm90dG9tOiAzcmVtO1xcbn1cXHJcXG4ucHktMTYge1xcbiAgcGFkZGluZy10b3A6IDRyZW07XFxuICBwYWRkaW5nLWJvdHRvbTogNHJlbTtcXG59XFxyXFxuLnB5LTIge1xcbiAgcGFkZGluZy10b3A6IDAuNXJlbTtcXG4gIHBhZGRpbmctYm90dG9tOiAwLjVyZW07XFxufVxcclxcbi5weS0yMCB7XFxuICBwYWRkaW5nLXRvcDogNXJlbTtcXG4gIHBhZGRpbmctYm90dG9tOiA1cmVtO1xcbn1cXHJcXG4ucHktMyB7XFxuICBwYWRkaW5nLXRvcDogMC43NXJlbTtcXG4gIHBhZGRpbmctYm90dG9tOiAwLjc1cmVtO1xcbn1cXHJcXG4ucHktNCB7XFxuICBwYWRkaW5nLXRvcDogMXJlbTtcXG4gIHBhZGRpbmctYm90dG9tOiAxcmVtO1xcbn1cXHJcXG4ucHktc2VjdGlvbiB7XFxuICBwYWRkaW5nLXRvcDogNHJlbTtcXG4gIHBhZGRpbmctYm90dG9tOiA0cmVtO1xcbn1cXHJcXG4ucGItMTIge1xcbiAgcGFkZGluZy1ib3R0b206IDNyZW07XFxufVxcclxcbi5wYi0yNCB7XFxuICBwYWRkaW5nLWJvdHRvbTogNnJlbTtcXG59XFxyXFxuLnBiLTYge1xcbiAgcGFkZGluZy1ib3R0b206IDEuNXJlbTtcXG59XFxyXFxuLnBsLTEwIHtcXG4gIHBhZGRpbmctbGVmdDogMi41cmVtO1xcbn1cXHJcXG4ucGwtOCB7XFxuICBwYWRkaW5nLWxlZnQ6IDJyZW07XFxufVxcclxcbi5wci00IHtcXG4gIHBhZGRpbmctcmlnaHQ6IDFyZW07XFxufVxcclxcbi5wci04IHtcXG4gIHBhZGRpbmctcmlnaHQ6IDJyZW07XFxufVxcclxcbi5wdC0xNiB7XFxuICBwYWRkaW5nLXRvcDogNHJlbTtcXG59XFxyXFxuLnB0LTQge1xcbiAgcGFkZGluZy10b3A6IDFyZW07XFxufVxcclxcbi5wdC02IHtcXG4gIHBhZGRpbmctdG9wOiAxLjVyZW07XFxufVxcclxcbi5wdC04IHtcXG4gIHBhZGRpbmctdG9wOiAycmVtO1xcbn1cXHJcXG4udGV4dC1sZWZ0IHtcXG4gIHRleHQtYWxpZ246IGxlZnQ7XFxufVxcclxcbi50ZXh0LWNlbnRlciB7XFxuICB0ZXh0LWFsaWduOiBjZW50ZXI7XFxufVxcclxcbi50ZXh0LXJpZ2h0IHtcXG4gIHRleHQtYWxpZ246IHJpZ2h0O1xcbn1cXHJcXG4udGV4dC0yeGwge1xcbiAgZm9udC1zaXplOiAxLjVyZW07XFxuICBsaW5lLWhlaWdodDogMnJlbTtcXG59XFxyXFxuLnRleHQtM3hsIHtcXG4gIGZvbnQtc2l6ZTogMS44NzVyZW07XFxuICBsaW5lLWhlaWdodDogMi4yNXJlbTtcXG59XFxyXFxuLnRleHQtNHhsIHtcXG4gIGZvbnQtc2l6ZTogMi4yNXJlbTtcXG4gIGxpbmUtaGVpZ2h0OiAyLjVyZW07XFxufVxcclxcbi50ZXh0LTV4bCB7XFxuICBmb250LXNpemU6IDNyZW07XFxuICBsaW5lLWhlaWdodDogMTtcXG59XFxyXFxuLnRleHQtYmFzZSB7XFxuICBmb250LXNpemU6IDFyZW07XFxuICBsaW5lLWhlaWdodDogMS41cmVtO1xcbn1cXHJcXG4udGV4dC1sZyB7XFxuICBmb250LXNpemU6IDEuMTI1cmVtO1xcbiAgbGluZS1oZWlnaHQ6IDEuNzVyZW07XFxufVxcclxcbi50ZXh0LXNtIHtcXG4gIGZvbnQtc2l6ZTogMC44NzVyZW07XFxuICBsaW5lLWhlaWdodDogMS4yNXJlbTtcXG59XFxyXFxuLnRleHQteGwge1xcbiAgZm9udC1zaXplOiAxLjI1cmVtO1xcbiAgbGluZS1oZWlnaHQ6IDEuNzVyZW07XFxufVxcclxcbi50ZXh0LXhzIHtcXG4gIGZvbnQtc2l6ZTogMC43NXJlbTtcXG4gIGxpbmUtaGVpZ2h0OiAxcmVtO1xcbn1cXHJcXG4uZm9udC1ib2xkIHtcXG4gIGZvbnQtd2VpZ2h0OiA3MDA7XFxufVxcclxcbi5mb250LW1lZGl1bSB7XFxuICBmb250LXdlaWdodDogNTAwO1xcbn1cXHJcXG4uZm9udC1zZW1pYm9sZCB7XFxuICBmb250LXdlaWdodDogNjAwO1xcbn1cXHJcXG4uaXRhbGljIHtcXG4gIGZvbnQtc3R5bGU6IGl0YWxpYztcXG59XFxyXFxuLmxlYWRpbmctcmVsYXhlZCB7XFxuICBsaW5lLWhlaWdodDogMS42MjU7XFxufVxcclxcbi50ZXh0LWFjY2VudCB7XFxuICAtLXR3LXRleHQtb3BhY2l0eTogMTtcXG4gIGNvbG9yOiByZ2IoMCAxMDYgMjU1IC8gdmFyKC0tdHctdGV4dC1vcGFjaXR5LCAxKSk7XFxufVxcclxcbi50ZXh0LWJsdWUtMTAwIHtcXG4gIC0tdHctdGV4dC1vcGFjaXR5OiAxO1xcbiAgY29sb3I6IHJnYigyMTkgMjM0IDI1NCAvIHZhcigtLXR3LXRleHQtb3BhY2l0eSwgMSkpO1xcbn1cXHJcXG4udGV4dC1ibHVlLTIwMCB7XFxuICAtLXR3LXRleHQtb3BhY2l0eTogMTtcXG4gIGNvbG9yOiByZ2IoMTkxIDIxOSAyNTQgLyB2YXIoLS10dy10ZXh0LW9wYWNpdHksIDEpKTtcXG59XFxyXFxuLnRleHQtYmx1ZS01MDAge1xcbiAgLS10dy10ZXh0LW9wYWNpdHk6IDE7XFxuICBjb2xvcjogcmdiKDU5IDEzMCAyNDYgLyB2YXIoLS10dy10ZXh0LW9wYWNpdHksIDEpKTtcXG59XFxyXFxuLnRleHQtYmx1ZS02MDAge1xcbiAgLS10dy10ZXh0LW9wYWNpdHk6IDE7XFxuICBjb2xvcjogcmdiKDM3IDk5IDIzNSAvIHZhcigtLXR3LXRleHQtb3BhY2l0eSwgMSkpO1xcbn1cXHJcXG4udGV4dC1ncmF5LTMwMCB7XFxuICAtLXR3LXRleHQtb3BhY2l0eTogMTtcXG4gIGNvbG9yOiByZ2IoMjA5IDIxMyAyMTkgLyB2YXIoLS10dy10ZXh0LW9wYWNpdHksIDEpKTtcXG59XFxyXFxuLnRleHQtZ3JheS00MDAge1xcbiAgLS10dy10ZXh0LW9wYWNpdHk6IDE7XFxuICBjb2xvcjogcmdiKDE1NiAxNjMgMTc1IC8gdmFyKC0tdHctdGV4dC1vcGFjaXR5LCAxKSk7XFxufVxcclxcbi50ZXh0LWdyYXktNTAwIHtcXG4gIC0tdHctdGV4dC1vcGFjaXR5OiAxO1xcbiAgY29sb3I6IHJnYigxMDcgMTE0IDEyOCAvIHZhcigtLXR3LXRleHQtb3BhY2l0eSwgMSkpO1xcbn1cXHJcXG4udGV4dC1ncmF5LTYwMCB7XFxuICAtLXR3LXRleHQtb3BhY2l0eTogMTtcXG4gIGNvbG9yOiByZ2IoNzUgODUgOTkgLyB2YXIoLS10dy10ZXh0LW9wYWNpdHksIDEpKTtcXG59XFxyXFxuLnRleHQtZ3JheS03MDAge1xcbiAgLS10dy10ZXh0LW9wYWNpdHk6IDE7XFxuICBjb2xvcjogcmdiKDU1IDY1IDgxIC8gdmFyKC0tdHctdGV4dC1vcGFjaXR5LCAxKSk7XFxufVxcclxcbi50ZXh0LWdyZWVuLTMwMCB7XFxuICAtLXR3LXRleHQtb3BhY2l0eTogMTtcXG4gIGNvbG9yOiByZ2IoMTM0IDIzOSAxNzIgLyB2YXIoLS10dy10ZXh0LW9wYWNpdHksIDEpKTtcXG59XFxyXFxuLnRleHQtZ3JlZW4tNTAwIHtcXG4gIC0tdHctdGV4dC1vcGFjaXR5OiAxO1xcbiAgY29sb3I6IHJnYigzNCAxOTcgOTQgLyB2YXIoLS10dy10ZXh0LW9wYWNpdHksIDEpKTtcXG59XFxyXFxuLnRleHQtZ3JlZW4tNjAwIHtcXG4gIC0tdHctdGV4dC1vcGFjaXR5OiAxO1xcbiAgY29sb3I6IHJnYigyMiAxNjMgNzQgLyB2YXIoLS10dy10ZXh0LW9wYWNpdHksIDEpKTtcXG59XFxyXFxuLnRleHQtZ3JlZW4tNzAwIHtcXG4gIC0tdHctdGV4dC1vcGFjaXR5OiAxO1xcbiAgY29sb3I6IHJnYigyMSAxMjggNjEgLyB2YXIoLS10dy10ZXh0LW9wYWNpdHksIDEpKTtcXG59XFxyXFxuLnRleHQtZ3JlZW4tODAwIHtcXG4gIC0tdHctdGV4dC1vcGFjaXR5OiAxO1xcbiAgY29sb3I6IHJnYigyMiAxMDEgNTIgLyB2YXIoLS10dy10ZXh0LW9wYWNpdHksIDEpKTtcXG59XFxyXFxuLnRleHQtaW5kaWdvLTUwMCB7XFxuICAtLXR3LXRleHQtb3BhY2l0eTogMTtcXG4gIGNvbG9yOiByZ2IoOTkgMTAyIDI0MSAvIHZhcigtLXR3LXRleHQtb3BhY2l0eSwgMSkpO1xcbn1cXHJcXG4udGV4dC1vcmFuZ2UtNTAwIHtcXG4gIC0tdHctdGV4dC1vcGFjaXR5OiAxO1xcbiAgY29sb3I6IHJnYigyNDkgMTE1IDIyIC8gdmFyKC0tdHctdGV4dC1vcGFjaXR5LCAxKSk7XFxufVxcclxcbi50ZXh0LW9yYW5nZS02MDAge1xcbiAgLS10dy10ZXh0LW9wYWNpdHk6IDE7XFxuICBjb2xvcjogcmdiKDIzNCA4OCAxMiAvIHZhcigtLXR3LXRleHQtb3BhY2l0eSwgMSkpO1xcbn1cXHJcXG4udGV4dC1wcmltYXJ5IHtcXG4gIC0tdHctdGV4dC1vcGFjaXR5OiAxO1xcbiAgY29sb3I6IHJnYig1MSA1MSA1MSAvIHZhcigtLXR3LXRleHQtb3BhY2l0eSwgMSkpO1xcbn1cXHJcXG4udGV4dC1wdXJwbGUtMzAwIHtcXG4gIC0tdHctdGV4dC1vcGFjaXR5OiAxO1xcbiAgY29sb3I6IHJnYigyMTYgMTgwIDI1NCAvIHZhcigtLXR3LXRleHQtb3BhY2l0eSwgMSkpO1xcbn1cXHJcXG4udGV4dC1wdXJwbGUtNTAwIHtcXG4gIC0tdHctdGV4dC1vcGFjaXR5OiAxO1xcbiAgY29sb3I6IHJnYigxNjggODUgMjQ3IC8gdmFyKC0tdHctdGV4dC1vcGFjaXR5LCAxKSk7XFxufVxcclxcbi50ZXh0LXB1cnBsZS02MDAge1xcbiAgLS10dy10ZXh0LW9wYWNpdHk6IDE7XFxuICBjb2xvcjogcmdiKDE0NyA1MSAyMzQgLyB2YXIoLS10dy10ZXh0LW9wYWNpdHksIDEpKTtcXG59XFxyXFxuLnRleHQtcmVkLTUwMCB7XFxuICAtLXR3LXRleHQtb3BhY2l0eTogMTtcXG4gIGNvbG9yOiByZ2IoMjM5IDY4IDY4IC8gdmFyKC0tdHctdGV4dC1vcGFjaXR5LCAxKSk7XFxufVxcclxcbi50ZXh0LXJlZC02MDAge1xcbiAgLS10dy10ZXh0LW9wYWNpdHk6IDE7XFxuICBjb2xvcjogcmdiKDIyMCAzOCAzOCAvIHZhcigtLXR3LXRleHQtb3BhY2l0eSwgMSkpO1xcbn1cXHJcXG4udGV4dC1yZWQtNzAwIHtcXG4gIC0tdHctdGV4dC1vcGFjaXR5OiAxO1xcbiAgY29sb3I6IHJnYigxODUgMjggMjggLyB2YXIoLS10dy10ZXh0LW9wYWNpdHksIDEpKTtcXG59XFxyXFxuLnRleHQtdGVhbC02MDAge1xcbiAgLS10dy10ZXh0LW9wYWNpdHk6IDE7XFxuICBjb2xvcjogcmdiKDEzIDE0OCAxMzYgLyB2YXIoLS10dy10ZXh0LW9wYWNpdHksIDEpKTtcXG59XFxyXFxuLnRleHQtdHJhbnNwYXJlbnQge1xcbiAgY29sb3I6IHRyYW5zcGFyZW50O1xcbn1cXHJcXG4udGV4dC13aGl0ZSB7XFxuICAtLXR3LXRleHQtb3BhY2l0eTogMTtcXG4gIGNvbG9yOiByZ2IoMjU1IDI1NSAyNTUgLyB2YXIoLS10dy10ZXh0LW9wYWNpdHksIDEpKTtcXG59XFxyXFxuLnRleHQteWVsbG93LTMwMCB7XFxuICAtLXR3LXRleHQtb3BhY2l0eTogMTtcXG4gIGNvbG9yOiByZ2IoMjUzIDIyNCA3MSAvIHZhcigtLXR3LXRleHQtb3BhY2l0eSwgMSkpO1xcbn1cXHJcXG4udGV4dC15ZWxsb3ctNTAwIHtcXG4gIC0tdHctdGV4dC1vcGFjaXR5OiAxO1xcbiAgY29sb3I6IHJnYigyMzQgMTc5IDggLyB2YXIoLS10dy10ZXh0LW9wYWNpdHksIDEpKTtcXG59XFxyXFxuLnRleHQteWVsbG93LTYwMCB7XFxuICAtLXR3LXRleHQtb3BhY2l0eTogMTtcXG4gIGNvbG9yOiByZ2IoMjAyIDEzOCA0IC8gdmFyKC0tdHctdGV4dC1vcGFjaXR5LCAxKSk7XFxufVxcclxcbi50ZXh0LXllbGxvdy03MDAge1xcbiAgLS10dy10ZXh0LW9wYWNpdHk6IDE7XFxuICBjb2xvcjogcmdiKDE2MSA5OCA3IC8gdmFyKC0tdHctdGV4dC1vcGFjaXR5LCAxKSk7XFxufVxcclxcbi50ZXh0LXllbGxvdy04MDAge1xcbiAgLS10dy10ZXh0LW9wYWNpdHk6IDE7XFxuICBjb2xvcjogcmdiKDEzMyA3NyAxNCAvIHZhcigtLXR3LXRleHQtb3BhY2l0eSwgMSkpO1xcbn1cXHJcXG4ubGluZS10aHJvdWdoIHtcXG4gIHRleHQtZGVjb3JhdGlvbi1saW5lOiBsaW5lLXRocm91Z2g7XFxufVxcclxcbi5vcGFjaXR5LTgwIHtcXG4gIG9wYWNpdHk6IDAuODtcXG59XFxyXFxuLnNoYWRvdy1sZyB7XFxuICAtLXR3LXNoYWRvdzogMCAxMHB4IDE1cHggLTNweCByZ2IoMCAwIDAgLyAwLjEpLCAwIDRweCA2cHggLTRweCByZ2IoMCAwIDAgLyAwLjEpO1xcbiAgLS10dy1zaGFkb3ctY29sb3JlZDogMCAxMHB4IDE1cHggLTNweCB2YXIoLS10dy1zaGFkb3ctY29sb3IpLCAwIDRweCA2cHggLTRweCB2YXIoLS10dy1zaGFkb3ctY29sb3IpO1xcbiAgYm94LXNoYWRvdzogdmFyKC0tdHctcmluZy1vZmZzZXQtc2hhZG93LCAwIDAgIzAwMDApLCB2YXIoLS10dy1yaW5nLXNoYWRvdywgMCAwICMwMDAwKSwgdmFyKC0tdHctc2hhZG93KTtcXG59XFxyXFxuLnNoYWRvdy1tZCB7XFxuICAtLXR3LXNoYWRvdzogMCA0cHggNnB4IC0xcHggcmdiKDAgMCAwIC8gMC4xKSwgMCAycHggNHB4IC0ycHggcmdiKDAgMCAwIC8gMC4xKTtcXG4gIC0tdHctc2hhZG93LWNvbG9yZWQ6IDAgNHB4IDZweCAtMXB4IHZhcigtLXR3LXNoYWRvdy1jb2xvciksIDAgMnB4IDRweCAtMnB4IHZhcigtLXR3LXNoYWRvdy1jb2xvcik7XFxuICBib3gtc2hhZG93OiB2YXIoLS10dy1yaW5nLW9mZnNldC1zaGFkb3csIDAgMCAjMDAwMCksIHZhcigtLXR3LXJpbmctc2hhZG93LCAwIDAgIzAwMDApLCB2YXIoLS10dy1zaGFkb3cpO1xcbn1cXHJcXG4uc2hhZG93LXNtIHtcXG4gIC0tdHctc2hhZG93OiAwIDFweCAycHggMCByZ2IoMCAwIDAgLyAwLjA1KTtcXG4gIC0tdHctc2hhZG93LWNvbG9yZWQ6IDAgMXB4IDJweCAwIHZhcigtLXR3LXNoYWRvdy1jb2xvcik7XFxuICBib3gtc2hhZG93OiB2YXIoLS10dy1yaW5nLW9mZnNldC1zaGFkb3csIDAgMCAjMDAwMCksIHZhcigtLXR3LXJpbmctc2hhZG93LCAwIDAgIzAwMDApLCB2YXIoLS10dy1zaGFkb3cpO1xcbn1cXHJcXG4ub3V0bGluZS1ub25lIHtcXG4gIG91dGxpbmU6IDJweCBzb2xpZCB0cmFuc3BhcmVudDtcXG4gIG91dGxpbmUtb2Zmc2V0OiAycHg7XFxufVxcclxcbi5yaW5nLTIge1xcbiAgLS10dy1yaW5nLW9mZnNldC1zaGFkb3c6IHZhcigtLXR3LXJpbmctaW5zZXQpIDAgMCAwIHZhcigtLXR3LXJpbmctb2Zmc2V0LXdpZHRoKSB2YXIoLS10dy1yaW5nLW9mZnNldC1jb2xvcik7XFxuICAtLXR3LXJpbmctc2hhZG93OiB2YXIoLS10dy1yaW5nLWluc2V0KSAwIDAgMCBjYWxjKDJweCArIHZhcigtLXR3LXJpbmctb2Zmc2V0LXdpZHRoKSkgdmFyKC0tdHctcmluZy1jb2xvcik7XFxuICBib3gtc2hhZG93OiB2YXIoLS10dy1yaW5nLW9mZnNldC1zaGFkb3cpLCB2YXIoLS10dy1yaW5nLXNoYWRvdyksIHZhcigtLXR3LXNoYWRvdywgMCAwICMwMDAwKTtcXG59XFxyXFxuLnJpbmctYWNjZW50IHtcXG4gIC0tdHctcmluZy1vcGFjaXR5OiAxO1xcbiAgLS10dy1yaW5nLWNvbG9yOiByZ2IoMCAxMDYgMjU1IC8gdmFyKC0tdHctcmluZy1vcGFjaXR5LCAxKSk7XFxufVxcclxcbi5maWx0ZXIge1xcbiAgZmlsdGVyOiB2YXIoLS10dy1ibHVyKSB2YXIoLS10dy1icmlnaHRuZXNzKSB2YXIoLS10dy1jb250cmFzdCkgdmFyKC0tdHctZ3JheXNjYWxlKSB2YXIoLS10dy1odWUtcm90YXRlKSB2YXIoLS10dy1pbnZlcnQpIHZhcigtLXR3LXNhdHVyYXRlKSB2YXIoLS10dy1zZXBpYSkgdmFyKC0tdHctZHJvcC1zaGFkb3cpO1xcbn1cXHJcXG4uYmFja2Ryb3AtYmx1ci1zbSB7XFxuICAtLXR3LWJhY2tkcm9wLWJsdXI6IGJsdXIoNHB4KTtcXG4gIC13ZWJraXQtYmFja2Ryb3AtZmlsdGVyOiB2YXIoLS10dy1iYWNrZHJvcC1ibHVyKSB2YXIoLS10dy1iYWNrZHJvcC1icmlnaHRuZXNzKSB2YXIoLS10dy1iYWNrZHJvcC1jb250cmFzdCkgdmFyKC0tdHctYmFja2Ryb3AtZ3JheXNjYWxlKSB2YXIoLS10dy1iYWNrZHJvcC1odWUtcm90YXRlKSB2YXIoLS10dy1iYWNrZHJvcC1pbnZlcnQpIHZhcigtLXR3LWJhY2tkcm9wLW9wYWNpdHkpIHZhcigtLXR3LWJhY2tkcm9wLXNhdHVyYXRlKSB2YXIoLS10dy1iYWNrZHJvcC1zZXBpYSk7XFxuICBiYWNrZHJvcC1maWx0ZXI6IHZhcigtLXR3LWJhY2tkcm9wLWJsdXIpIHZhcigtLXR3LWJhY2tkcm9wLWJyaWdodG5lc3MpIHZhcigtLXR3LWJhY2tkcm9wLWNvbnRyYXN0KSB2YXIoLS10dy1iYWNrZHJvcC1ncmF5c2NhbGUpIHZhcigtLXR3LWJhY2tkcm9wLWh1ZS1yb3RhdGUpIHZhcigtLXR3LWJhY2tkcm9wLWludmVydCkgdmFyKC0tdHctYmFja2Ryb3Atb3BhY2l0eSkgdmFyKC0tdHctYmFja2Ryb3Atc2F0dXJhdGUpIHZhcigtLXR3LWJhY2tkcm9wLXNlcGlhKTtcXG59XFxyXFxuLnRyYW5zaXRpb24ge1xcbiAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogY29sb3IsIGJhY2tncm91bmQtY29sb3IsIGJvcmRlci1jb2xvciwgdGV4dC1kZWNvcmF0aW9uLWNvbG9yLCBmaWxsLCBzdHJva2UsIG9wYWNpdHksIGJveC1zaGFkb3csIHRyYW5zZm9ybSwgZmlsdGVyLCAtd2Via2l0LWJhY2tkcm9wLWZpbHRlcjtcXG4gIHRyYW5zaXRpb24tcHJvcGVydHk6IGNvbG9yLCBiYWNrZ3JvdW5kLWNvbG9yLCBib3JkZXItY29sb3IsIHRleHQtZGVjb3JhdGlvbi1jb2xvciwgZmlsbCwgc3Ryb2tlLCBvcGFjaXR5LCBib3gtc2hhZG93LCB0cmFuc2Zvcm0sIGZpbHRlciwgYmFja2Ryb3AtZmlsdGVyO1xcbiAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogY29sb3IsIGJhY2tncm91bmQtY29sb3IsIGJvcmRlci1jb2xvciwgdGV4dC1kZWNvcmF0aW9uLWNvbG9yLCBmaWxsLCBzdHJva2UsIG9wYWNpdHksIGJveC1zaGFkb3csIHRyYW5zZm9ybSwgZmlsdGVyLCBiYWNrZHJvcC1maWx0ZXIsIC13ZWJraXQtYmFja2Ryb3AtZmlsdGVyO1xcbiAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjQsIDAsIDAuMiwgMSk7XFxuICB0cmFuc2l0aW9uLWR1cmF0aW9uOiAxNTBtcztcXG59XFxyXFxuLnRyYW5zaXRpb24tYWxsIHtcXG4gIHRyYW5zaXRpb24tcHJvcGVydHk6IGFsbDtcXG4gIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMC40LCAwLCAwLjIsIDEpO1xcbiAgdHJhbnNpdGlvbi1kdXJhdGlvbjogMTUwbXM7XFxufVxcclxcbi50cmFuc2l0aW9uLWNvbG9ycyB7XFxuICB0cmFuc2l0aW9uLXByb3BlcnR5OiBjb2xvciwgYmFja2dyb3VuZC1jb2xvciwgYm9yZGVyLWNvbG9yLCB0ZXh0LWRlY29yYXRpb24tY29sb3IsIGZpbGwsIHN0cm9rZTtcXG4gIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMC40LCAwLCAwLjIsIDEpO1xcbiAgdHJhbnNpdGlvbi1kdXJhdGlvbjogMTUwbXM7XFxufVxcclxcbi50cmFuc2l0aW9uLXNoYWRvdyB7XFxuICB0cmFuc2l0aW9uLXByb3BlcnR5OiBib3gtc2hhZG93O1xcbiAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjQsIDAsIDAuMiwgMSk7XFxuICB0cmFuc2l0aW9uLWR1cmF0aW9uOiAxNTBtcztcXG59XFxyXFxuLnRyYW5zaXRpb24tdHJhbnNmb3JtIHtcXG4gIHRyYW5zaXRpb24tcHJvcGVydHk6IHRyYW5zZm9ybTtcXG4gIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMC40LCAwLCAwLjIsIDEpO1xcbiAgdHJhbnNpdGlvbi1kdXJhdGlvbjogMTUwbXM7XFxufVxcclxcbi5kdXJhdGlvbi0zMDAge1xcbiAgdHJhbnNpdGlvbi1kdXJhdGlvbjogMzAwbXM7XFxufVxcclxcblxcclxcbmJvZHkge1xcbiAgLS10dy1iZy1vcGFjaXR5OiAxO1xcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDI1NSAyNTUgMjU1IC8gdmFyKC0tdHctYmctb3BhY2l0eSwgMSkpO1xcbiAgZm9udC1mYW1pbHk6IEludGVyLCBzYW5zLXNlcmlmO1xcbiAgLS10dy10ZXh0LW9wYWNpdHk6IDE7XFxuICBjb2xvcjogcmdiKDUxIDUxIDUxIC8gdmFyKC0tdHctdGV4dC1vcGFjaXR5LCAxKSk7XFxufVxcclxcblxcclxcbm1haW4ge1xcbiAgZGlzcGxheTogZmxleDtcXG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XFxuICBnYXA6IDRyZW07XFxufVxcclxcblxcclxcbi8qIOaWh+acrOaIquaWreagt+W8jyAqL1xcclxcbi5saW5lLWNsYW1wLTIge1xcclxcbiAgZGlzcGxheTogLXdlYmtpdC1ib3g7XFxyXFxuICAtd2Via2l0LWxpbmUtY2xhbXA6IDI7XFxyXFxuICAtd2Via2l0LWJveC1vcmllbnQ6IHZlcnRpY2FsO1xcclxcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcXHJcXG59XFxyXFxuXFxyXFxuLmxpbmUtY2xhbXAtMyB7XFxyXFxuICBkaXNwbGF5OiAtd2Via2l0LWJveDtcXHJcXG4gIC13ZWJraXQtbGluZS1jbGFtcDogMztcXHJcXG4gIC13ZWJraXQtYm94LW9yaWVudDogdmVydGljYWw7XFxyXFxuICBvdmVyZmxvdzogaGlkZGVuO1xcclxcbn1cXHJcXG5cXHJcXG4vKiDoh6rlrprkuYnmu5rliqjmnaEgKi9cXHJcXG46Oi13ZWJraXQtc2Nyb2xsYmFyIHtcXHJcXG4gIHdpZHRoOiA4cHg7XFxyXFxufVxcclxcblxcclxcbjo6LXdlYmtpdC1zY3JvbGxiYXItdHJhY2sge1xcclxcbiAgYmFja2dyb3VuZDogI2YxZjFmMTtcXHJcXG4gIGJvcmRlci1yYWRpdXM6IDRweDtcXHJcXG59XFxyXFxuXFxyXFxuOjotd2Via2l0LXNjcm9sbGJhci10aHVtYiB7XFxyXFxuICBiYWNrZ3JvdW5kOiAjYzFjMWMxO1xcclxcbiAgYm9yZGVyLXJhZGl1czogNHB4O1xcclxcbn1cXHJcXG5cXHJcXG46Oi13ZWJraXQtc2Nyb2xsYmFyLXRodW1iOmhvdmVyIHtcXHJcXG4gIGJhY2tncm91bmQ6ICNhOGE4YTg7XFxyXFxufVxcclxcblxcclxcbi8qIOW5s+a7kea7muWKqCAqL1xcclxcbmh0bWwge1xcclxcbiAgc2Nyb2xsLWJlaGF2aW9yOiBzbW9vdGg7XFxyXFxufVxcclxcblxcclxcbi8qIOeEpueCueagt+W8jyAqL1xcclxcbi5mb2N1c1xcXFw6cmluZy0yOmZvY3VzIHtcXHJcXG4gIC0tdHctcmluZy1vZmZzZXQtc2hhZG93OiB2YXIoLS10dy1yaW5nLWluc2V0KSAwIDAgMCB2YXIoLS10dy1yaW5nLW9mZnNldC13aWR0aCkgdmFyKC0tdHctcmluZy1vZmZzZXQtY29sb3IpO1xcclxcbiAgLS10dy1yaW5nLXNoYWRvdzogdmFyKC0tdHctcmluZy1pbnNldCkgMCAwIDAgY2FsYygycHggKyB2YXIoLS10dy1yaW5nLW9mZnNldC13aWR0aCkpIHZhcigtLXR3LXJpbmctY29sb3IpO1xcclxcbiAgYm94LXNoYWRvdzogdmFyKC0tdHctcmluZy1vZmZzZXQtc2hhZG93KSwgdmFyKC0tdHctcmluZy1zaGFkb3cpLCB2YXIoLS10dy1zaGFkb3csIDAgMCAjMDAwMCk7XFxyXFxufVxcclxcbi5ob3ZlclxcXFw6c2NhbGUtMTA1OmhvdmVyIHtcXG4gIC0tdHctc2NhbGUteDogMS4wNTtcXG4gIC0tdHctc2NhbGUteTogMS4wNTtcXG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlKHZhcigtLXR3LXRyYW5zbGF0ZS14KSwgdmFyKC0tdHctdHJhbnNsYXRlLXkpKSByb3RhdGUodmFyKC0tdHctcm90YXRlKSkgc2tld1godmFyKC0tdHctc2tldy14KSkgc2tld1kodmFyKC0tdHctc2tldy15KSkgc2NhbGVYKHZhcigtLXR3LXNjYWxlLXgpKSBzY2FsZVkodmFyKC0tdHctc2NhbGUteSkpO1xcbn1cXHJcXG4uaG92ZXJcXFxcOmJvcmRlci1hY2NlbnQ6aG92ZXIge1xcbiAgLS10dy1ib3JkZXItb3BhY2l0eTogMTtcXG4gIGJvcmRlci1jb2xvcjogcmdiKDAgMTA2IDI1NSAvIHZhcigtLXR3LWJvcmRlci1vcGFjaXR5LCAxKSk7XFxufVxcclxcbi5ob3ZlclxcXFw6Ym9yZGVyLWFjY2VudFxcXFwvMjA6aG92ZXIge1xcbiAgYm9yZGVyLWNvbG9yOiByZ2IoMCAxMDYgMjU1IC8gMC4yKTtcXG59XFxyXFxuLmhvdmVyXFxcXDpiZy1hY2NlbnQ6aG92ZXIge1xcbiAgLS10dy1iZy1vcGFjaXR5OiAxO1xcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDAgMTA2IDI1NSAvIHZhcigtLXR3LWJnLW9wYWNpdHksIDEpKTtcXG59XFxyXFxuLmhvdmVyXFxcXDpiZy1ibHVlLTcwMDpob3ZlciB7XFxuICAtLXR3LWJnLW9wYWNpdHk6IDE7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMjkgNzggMjE2IC8gdmFyKC0tdHctYmctb3BhY2l0eSwgMSkpO1xcbn1cXHJcXG4uaG92ZXJcXFxcOmJnLWdyYXktMTAwOmhvdmVyIHtcXG4gIC0tdHctYmctb3BhY2l0eTogMTtcXG4gIGJhY2tncm91bmQtY29sb3I6IHJnYigyNDMgMjQ0IDI0NiAvIHZhcigtLXR3LWJnLW9wYWNpdHksIDEpKTtcXG59XFxyXFxuLmhvdmVyXFxcXDpiZy1ncmF5LTUwOmhvdmVyIHtcXG4gIC0tdHctYmctb3BhY2l0eTogMTtcXG4gIGJhY2tncm91bmQtY29sb3I6IHJnYigyNDkgMjUwIDI1MSAvIHZhcigtLXR3LWJnLW9wYWNpdHksIDEpKTtcXG59XFxyXFxuLmhvdmVyXFxcXDpiZy1wcmltYXJ5OmhvdmVyIHtcXG4gIC0tdHctYmctb3BhY2l0eTogMTtcXG4gIGJhY2tncm91bmQtY29sb3I6IHJnYig1MSA1MSA1MSAvIHZhcigtLXR3LWJnLW9wYWNpdHksIDEpKTtcXG59XFxyXFxuLmhvdmVyXFxcXDpiZy13aGl0ZTpob3ZlciB7XFxuICAtLXR3LWJnLW9wYWNpdHk6IDE7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMjU1IDI1NSAyNTUgLyB2YXIoLS10dy1iZy1vcGFjaXR5LCAxKSk7XFxufVxcclxcbi5ob3ZlclxcXFw6ZnJvbS1ibHVlLTYwMDpob3ZlciB7XFxuICAtLXR3LWdyYWRpZW50LWZyb206ICMyNTYzZWIgdmFyKC0tdHctZ3JhZGllbnQtZnJvbS1wb3NpdGlvbik7XFxuICAtLXR3LWdyYWRpZW50LXRvOiByZ2IoMzcgOTkgMjM1IC8gMCkgdmFyKC0tdHctZ3JhZGllbnQtdG8tcG9zaXRpb24pO1xcbiAgLS10dy1ncmFkaWVudC1zdG9wczogdmFyKC0tdHctZ3JhZGllbnQtZnJvbSksIHZhcigtLXR3LWdyYWRpZW50LXRvKTtcXG59XFxyXFxuLmhvdmVyXFxcXDp0by1hY2NlbnQ6aG92ZXIge1xcbiAgLS10dy1ncmFkaWVudC10bzogIzAwNkFGRiB2YXIoLS10dy1ncmFkaWVudC10by1wb3NpdGlvbik7XFxufVxcclxcbi5ob3ZlclxcXFw6dGV4dC1hY2NlbnQ6aG92ZXIge1xcbiAgLS10dy10ZXh0LW9wYWNpdHk6IDE7XFxuICBjb2xvcjogcmdiKDAgMTA2IDI1NSAvIHZhcigtLXR3LXRleHQtb3BhY2l0eSwgMSkpO1xcbn1cXHJcXG4uaG92ZXJcXFxcOnRleHQtYmx1ZS03MDA6aG92ZXIge1xcbiAgLS10dy10ZXh0LW9wYWNpdHk6IDE7XFxuICBjb2xvcjogcmdiKDI5IDc4IDIxNiAvIHZhcigtLXR3LXRleHQtb3BhY2l0eSwgMSkpO1xcbn1cXHJcXG4uaG92ZXJcXFxcOnRleHQtcHJpbWFyeTpob3ZlciB7XFxuICAtLXR3LXRleHQtb3BhY2l0eTogMTtcXG4gIGNvbG9yOiByZ2IoNTEgNTEgNTEgLyB2YXIoLS10dy10ZXh0LW9wYWNpdHksIDEpKTtcXG59XFxyXFxuLmhvdmVyXFxcXDp0ZXh0LXdoaXRlOmhvdmVyIHtcXG4gIC0tdHctdGV4dC1vcGFjaXR5OiAxO1xcbiAgY29sb3I6IHJnYigyNTUgMjU1IDI1NSAvIHZhcigtLXR3LXRleHQtb3BhY2l0eSwgMSkpO1xcbn1cXHJcXG4uaG92ZXJcXFxcOnVuZGVybGluZTpob3ZlciB7XFxuICB0ZXh0LWRlY29yYXRpb24tbGluZTogdW5kZXJsaW5lO1xcbn1cXHJcXG4uaG92ZXJcXFxcOm9wYWNpdHktOTA6aG92ZXIge1xcbiAgb3BhY2l0eTogMC45O1xcbn1cXHJcXG4uaG92ZXJcXFxcOnNoYWRvdy0yeGw6aG92ZXIge1xcbiAgLS10dy1zaGFkb3c6IDAgMjVweCA1MHB4IC0xMnB4IHJnYigwIDAgMCAvIDAuMjUpO1xcbiAgLS10dy1zaGFkb3ctY29sb3JlZDogMCAyNXB4IDUwcHggLTEycHggdmFyKC0tdHctc2hhZG93LWNvbG9yKTtcXG4gIGJveC1zaGFkb3c6IHZhcigtLXR3LXJpbmctb2Zmc2V0LXNoYWRvdywgMCAwICMwMDAwKSwgdmFyKC0tdHctcmluZy1zaGFkb3csIDAgMCAjMDAwMCksIHZhcigtLXR3LXNoYWRvdyk7XFxufVxcclxcbi5ob3ZlclxcXFw6c2hhZG93LWxnOmhvdmVyIHtcXG4gIC0tdHctc2hhZG93OiAwIDEwcHggMTVweCAtM3B4IHJnYigwIDAgMCAvIDAuMSksIDAgNHB4IDZweCAtNHB4IHJnYigwIDAgMCAvIDAuMSk7XFxuICAtLXR3LXNoYWRvdy1jb2xvcmVkOiAwIDEwcHggMTVweCAtM3B4IHZhcigtLXR3LXNoYWRvdy1jb2xvciksIDAgNHB4IDZweCAtNHB4IHZhcigtLXR3LXNoYWRvdy1jb2xvcik7XFxuICBib3gtc2hhZG93OiB2YXIoLS10dy1yaW5nLW9mZnNldC1zaGFkb3csIDAgMCAjMDAwMCksIHZhcigtLXR3LXJpbmctc2hhZG93LCAwIDAgIzAwMDApLCB2YXIoLS10dy1zaGFkb3cpO1xcbn1cXHJcXG4uaG92ZXJcXFxcOnNoYWRvdy14bDpob3ZlciB7XFxuICAtLXR3LXNoYWRvdzogMCAyMHB4IDI1cHggLTVweCByZ2IoMCAwIDAgLyAwLjEpLCAwIDhweCAxMHB4IC02cHggcmdiKDAgMCAwIC8gMC4xKTtcXG4gIC0tdHctc2hhZG93LWNvbG9yZWQ6IDAgMjBweCAyNXB4IC01cHggdmFyKC0tdHctc2hhZG93LWNvbG9yKSwgMCA4cHggMTBweCAtNnB4IHZhcigtLXR3LXNoYWRvdy1jb2xvcik7XFxuICBib3gtc2hhZG93OiB2YXIoLS10dy1yaW5nLW9mZnNldC1zaGFkb3csIDAgMCAjMDAwMCksIHZhcigtLXR3LXJpbmctc2hhZG93LCAwIDAgIzAwMDApLCB2YXIoLS10dy1zaGFkb3cpO1xcbn1cXHJcXG4uZm9jdXNcXFxcOmJvcmRlci10cmFuc3BhcmVudDpmb2N1cyB7XFxuICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50O1xcbn1cXHJcXG4uZm9jdXNcXFxcOm91dGxpbmUtbm9uZTpmb2N1cyB7XFxuICBvdXRsaW5lOiAycHggc29saWQgdHJhbnNwYXJlbnQ7XFxuICBvdXRsaW5lLW9mZnNldDogMnB4O1xcbn1cXHJcXG4uZm9jdXNcXFxcOnJpbmctMjpmb2N1cyB7XFxuICAtLXR3LXJpbmctb2Zmc2V0LXNoYWRvdzogdmFyKC0tdHctcmluZy1pbnNldCkgMCAwIDAgdmFyKC0tdHctcmluZy1vZmZzZXQtd2lkdGgpIHZhcigtLXR3LXJpbmctb2Zmc2V0LWNvbG9yKTtcXG4gIC0tdHctcmluZy1zaGFkb3c6IHZhcigtLXR3LXJpbmctaW5zZXQpIDAgMCAwIGNhbGMoMnB4ICsgdmFyKC0tdHctcmluZy1vZmZzZXQtd2lkdGgpKSB2YXIoLS10dy1yaW5nLWNvbG9yKTtcXG4gIGJveC1zaGFkb3c6IHZhcigtLXR3LXJpbmctb2Zmc2V0LXNoYWRvdyksIHZhcigtLXR3LXJpbmctc2hhZG93KSwgdmFyKC0tdHctc2hhZG93LCAwIDAgIzAwMDApO1xcbn1cXHJcXG4uZm9jdXNcXFxcOnJpbmctYWNjZW50OmZvY3VzIHtcXG4gIC0tdHctcmluZy1vcGFjaXR5OiAxO1xcbiAgLS10dy1yaW5nLWNvbG9yOiByZ2IoMCAxMDYgMjU1IC8gdmFyKC0tdHctcmluZy1vcGFjaXR5LCAxKSk7XFxufVxcclxcbi5kaXNhYmxlZFxcXFw6Y3Vyc29yLW5vdC1hbGxvd2VkOmRpc2FibGVkIHtcXG4gIGN1cnNvcjogbm90LWFsbG93ZWQ7XFxufVxcclxcbi5kaXNhYmxlZFxcXFw6b3BhY2l0eS01MDpkaXNhYmxlZCB7XFxuICBvcGFjaXR5OiAwLjU7XFxufVxcclxcbi5ncm91cDpob3ZlciAuZ3JvdXAtaG92ZXJcXFxcOnRyYW5zbGF0ZS14LTEge1xcbiAgLS10dy10cmFuc2xhdGUteDogMC4yNXJlbTtcXG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlKHZhcigtLXR3LXRyYW5zbGF0ZS14KSwgdmFyKC0tdHctdHJhbnNsYXRlLXkpKSByb3RhdGUodmFyKC0tdHctcm90YXRlKSkgc2tld1godmFyKC0tdHctc2tldy14KSkgc2tld1kodmFyKC0tdHctc2tldy15KSkgc2NhbGVYKHZhcigtLXR3LXNjYWxlLXgpKSBzY2FsZVkodmFyKC0tdHctc2NhbGUteSkpO1xcbn1cXHJcXG4uZ3JvdXA6aG92ZXIgLmdyb3VwLWhvdmVyXFxcXDpzY2FsZS0xMTAge1xcbiAgLS10dy1zY2FsZS14OiAxLjE7XFxuICAtLXR3LXNjYWxlLXk6IDEuMTtcXG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlKHZhcigtLXR3LXRyYW5zbGF0ZS14KSwgdmFyKC0tdHctdHJhbnNsYXRlLXkpKSByb3RhdGUodmFyKC0tdHctcm90YXRlKSkgc2tld1godmFyKC0tdHctc2tldy14KSkgc2tld1kodmFyKC0tdHctc2tldy15KSkgc2NhbGVYKHZhcigtLXR3LXNjYWxlLXgpKSBzY2FsZVkodmFyKC0tdHctc2NhbGUteSkpO1xcbn1cXHJcXG4uZ3JvdXA6aG92ZXIgLmdyb3VwLWhvdmVyXFxcXDpnYXAtMyB7XFxuICBnYXA6IDAuNzVyZW07XFxufVxcclxcbi5ncm91cDpob3ZlciAuZ3JvdXAtaG92ZXJcXFxcOmJnLWFjY2VudCB7XFxuICAtLXR3LWJnLW9wYWNpdHk6IDE7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMCAxMDYgMjU1IC8gdmFyKC0tdHctYmctb3BhY2l0eSwgMSkpO1xcbn1cXHJcXG4uZ3JvdXA6aG92ZXIgLmdyb3VwLWhvdmVyXFxcXDp0ZXh0LWFjY2VudCB7XFxuICAtLXR3LXRleHQtb3BhY2l0eTogMTtcXG4gIGNvbG9yOiByZ2IoMCAxMDYgMjU1IC8gdmFyKC0tdHctdGV4dC1vcGFjaXR5LCAxKSk7XFxufVxcclxcbi5ncm91cDpob3ZlciAuZ3JvdXAtaG92ZXJcXFxcOnRleHQtd2hpdGUge1xcbiAgLS10dy10ZXh0LW9wYWNpdHk6IDE7XFxuICBjb2xvcjogcmdiKDI1NSAyNTUgMjU1IC8gdmFyKC0tdHctdGV4dC1vcGFjaXR5LCAxKSk7XFxufVxcclxcbkBtZWRpYSAobWluLXdpZHRoOiA2NDBweCkge1xcblxcbiAgLnNtXFxcXDpmbGV4LXJvdyB7XFxuICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XFxuICB9XFxufVxcclxcbkBtZWRpYSAobWluLXdpZHRoOiA3NjhweCkge1xcblxcbiAgLm1kXFxcXDpjb2wtc3Bhbi0yIHtcXG4gICAgZ3JpZC1jb2x1bW46IHNwYW4gMiAvIHNwYW4gMjtcXG4gIH1cXG5cXG4gIC5tZFxcXFw6bXQtMCB7XFxuICAgIG1hcmdpbi10b3A6IDBweDtcXG4gIH1cXG5cXG4gIC5tZFxcXFw6ZmxleCB7XFxuICAgIGRpc3BsYXk6IGZsZXg7XFxuICB9XFxuXFxuICAubWRcXFxcOmhpZGRlbiB7XFxuICAgIGRpc3BsYXk6IG5vbmU7XFxuICB9XFxuXFxuICAubWRcXFxcOnctMVxcXFwvMiB7XFxuICAgIHdpZHRoOiA1MCU7XFxuICB9XFxuXFxuICAubWRcXFxcOmdyaWQtY29scy0yIHtcXG4gICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoMiwgbWlubWF4KDAsIDFmcikpO1xcbiAgfVxcblxcbiAgLm1kXFxcXDpncmlkLWNvbHMtMyB7XFxuICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KDMsIG1pbm1heCgwLCAxZnIpKTtcXG4gIH1cXG5cXG4gIC5tZFxcXFw6Z3JpZC1jb2xzLTQge1xcbiAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCg0LCBtaW5tYXgoMCwgMWZyKSk7XFxuICB9XFxuXFxuICAubWRcXFxcOmdyaWQtY29scy01IHtcXG4gICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoNSwgbWlubWF4KDAsIDFmcikpO1xcbiAgfVxcblxcbiAgLm1kXFxcXDpmbGV4LXJvdyB7XFxuICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XFxuICB9XFxuXFxuICAubWRcXFxcOnAtMTIge1xcbiAgICBwYWRkaW5nOiAzcmVtO1xcbiAgfVxcblxcbiAgLm1kXFxcXDp0ZXh0LTN4bCB7XFxuICAgIGZvbnQtc2l6ZTogMS44NzVyZW07XFxuICAgIGxpbmUtaGVpZ2h0OiAyLjI1cmVtO1xcbiAgfVxcblxcbiAgLm1kXFxcXDp0ZXh0LTR4bCB7XFxuICAgIGZvbnQtc2l6ZTogMi4yNXJlbTtcXG4gICAgbGluZS1oZWlnaHQ6IDIuNXJlbTtcXG4gIH1cXG5cXG4gIC5tZFxcXFw6dGV4dC01eGwge1xcbiAgICBmb250LXNpemU6IDNyZW07XFxuICAgIGxpbmUtaGVpZ2h0OiAxO1xcbiAgfVxcbn1cXHJcXG5AbWVkaWEgKG1pbi13aWR0aDogMTAyNHB4KSB7XFxuXFxuICAubGdcXFxcOmNvbC1zcGFuLTIge1xcbiAgICBncmlkLWNvbHVtbjogc3BhbiAyIC8gc3BhbiAyO1xcbiAgfVxcblxcbiAgLmxnXFxcXDpncmlkLWNvbHMtMiB7XFxuICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KDIsIG1pbm1heCgwLCAxZnIpKTtcXG4gIH1cXG5cXG4gIC5sZ1xcXFw6Z3JpZC1jb2xzLTMge1xcbiAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCgzLCBtaW5tYXgoMCwgMWZyKSk7XFxuICB9XFxuXFxuICAubGdcXFxcOmdyaWQtY29scy00IHtcXG4gICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoNCwgbWlubWF4KDAsIDFmcikpO1xcbiAgfVxcblxcbiAgLmxnXFxcXDpncmlkLWNvbHMtNiB7XFxuICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KDYsIG1pbm1heCgwLCAxZnIpKTtcXG4gIH1cXG5cXG4gIC5sZ1xcXFw6ZmxleC1yb3cge1xcbiAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xcbiAgfVxcbn1cXHJcXG5AbWVkaWEgKG1pbi13aWR0aDogMTI4MHB4KSB7XFxuXFxuICAueGxcXFxcOmdyaWQtY29scy0zIHtcXG4gICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoMywgbWlubWF4KDAsIDFmcikpO1xcbiAgfVxcbn1cIiwgXCJcIix7XCJ2ZXJzaW9uXCI6MyxcInNvdXJjZXNcIjpbXCJ3ZWJwYWNrOi8vc3R5bGVzL2dsb2JhbHMuY3NzXCJdLFwibmFtZXNcIjpbXSxcIm1hcHBpbmdzXCI6XCJBQUFBO0VBQUEsd0JBQWM7RUFBZCx3QkFBYztFQUFkLG1CQUFjO0VBQWQsbUJBQWM7RUFBZCxjQUFjO0VBQWQsY0FBYztFQUFkLGNBQWM7RUFBZCxlQUFjO0VBQWQsZUFBYztFQUFkLGFBQWM7RUFBZCxhQUFjO0VBQWQsa0JBQWM7RUFBZCxzQ0FBYztFQUFkLDhCQUFjO0VBQWQsNkJBQWM7RUFBZCw0QkFBYztFQUFkLGVBQWM7RUFBZCxvQkFBYztFQUFkLHNCQUFjO0VBQWQsdUJBQWM7RUFBZCx3QkFB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V0FBYztBQUFBOztBQUFkOzs7O0NBQWM7O0FBQWQ7RUFBQSxjQUFjLEVBQWQsTUFBYztFQUFkLHFCQUFjLEVBQWQsTUFBYztFQUFkLHlCQUFjLEVBQWQsTUFBYztBQUFBOztBQUFkOzs7O0NBQWM7O0FBQWQ7Ozs7O0VBQUEsb0JBQWMsRUFBZCxNQUFjO0VBQWQsOEJBQWMsRUFBZCxNQUFjO0VBQWQsZ0NBQWMsRUFBZCxNQUFjO0VBQWQsZUFBYyxFQUFkLE1BQWM7RUFBZCxvQkFBYyxFQUFkLE1BQWM7RUFBZCxvQkFBYyxFQUFkLE1BQWM7RUFBZCx1QkFBYyxFQUFkLE1BQWM7RUFBZCxjQUFjLEVBQWQsTUFBYztFQUFkLFNBQWMsRUFBZCxNQUFjO0VBQWQsVUFBYyxFQUFkLE1BQWM7QUFBQTs7QUFBZDs7Q0FBYzs7QUFBZDs7RUFBQSxvQkFBYztBQUFBOztBQUFkOzs7Q0FBYzs7QUFBZDs7OztFQUFBLDBCQUFjLEVBQWQsTUFBYztFQUFkLDZCQUFjLEVBQWQsTUFBYztFQUFkLHNCQUFjLEVBQWQsTUFBYztBQUFBOztBQUFkOztDQUFjOztBQUFkO0VBQUEsYUFBYztBQUFBOztBQUFkOztDQUFjOztBQUFkO0VBQUEsZ0JBQWM7QUFBQTs7QUFBZDs7Q0FBYzs7QUFBZDtFQUFBLHdCQUFjO0FBQUE7O0FBQWQ7O0NBQWM7O0FBQWQ7O0VBQUEsWUFBYztBQUFBOztBQUFkOzs7Q0FBYzs7QUFBZDtFQUFBLDZCQUFjLEVBQWQsTUFBYztFQUFkLG9CQUFjLEVBQWQsTUFBYztBQUFBOztBQUFkOztDQUFjOztBQUFkO0VBQUEsd0JBQWM7QUFBQTs7QUFBZDs7O0NBQWM7O0FBQWQ7RUFBQSwwQkFBYyxFQUFkLE1BQWM7RUFBZCxhQUFjLEVBQWQsTUFBYztBQUFBOztBQUFkOztDQUFjOztBQUFkO0VBQUEsa0JBQWM7QUFBQTs7QUFBZDs7Q0FBYzs7QUFBZDs7Ozs7Ozs7Ozs7OztFQUFBLFNBQWM7QUFBQTs7QUFBZDtFQUFBLFNBQWM7RUFBZCxVQUFjO0FBQUE7O0FBQWQ7RUFBQSxVQUFjO0FBQUE7O0FBQWQ7OztFQUFBLGdCQUFjO0VBQWQsU0FBYztFQUFkLFVBQWM7QUFBQTs7QUFBZDs7Q0FBYztBQUFkO0VBQUEsVUFBYztBQUFBOztBQUFkOztDQUFjOztBQUFkO0VBQUEsZ0JBQWM7QUFBQTs7QUFBZDs7O0NBQWM7O0FBQWQ7RUFBQSxVQUFjLEVBQWQsTUFBYztFQUFkLGNBQWMsRUFBZCxNQUFjO0FBQUE7O0FBQWQ7O0VBQUEsVUFBYyxFQUFkLE1BQWM7RUFBZCxjQUFjLEVBQWQsTUFBYztBQUFBOztBQUFkOztDQUFjOztBQUFkOztFQUFBLGVBQWM7QUFBQTs7QUFBZDs7Q0FBYztBQUFkO0VBQUEsZUFBYztBQUFBOztBQUFkOzs7O0NBQWM7O0FBQWQ7Ozs7Ozs7O0VBQUEsY0FBYyxFQUFkLE1BQWM7RUFBZCxzQkFBYyxFQUFkLE1BQWM7QUFBQTs7QUFBZDs7Q0FBYzs7QUFBZDs7RUFBQSxlQUFjO0VBQWQsWUFBYztBQUFBOztBQUFkLHdFQUFjO0FBQWQ7RUFBQSxhQUFjO0FBQUE7QUFDZDtFQUFBO0FBQW9CO0FBQXBCOztFQUFBO0lBQUE7RUFBb0I7QUFBQTtBQUFwQjs7RUFBQTtJQUFBO0VBQW9CO0FBQUE7QUFBcEI7O0VBQUE7SUFBQTtFQUFvQjtBQUFBO0FBQXBCOztFQUFBO0lBQUE7RUFBb0I7QUFBQTtBQUFwQjs7RUFBQTtJQUFBO0VBQW9CO0FBQUE7QUFDcEI7RUFBQTtBQUFtQjtBQUFuQjtFQUFBO0FBQW1CO0FBQW5CO0VBQUE7QUFBbUI7QUFBbkI7RUFBQTtBQUFtQjtBQUFuQjtFQUFBLFFBQW1CO0VBQW5CO0FBQW1CO0FBQW5CO0VBQUE7QUFBbUI7QUFBbkI7RUFBQTtBQUFtQjtBQUFuQjtFQUFBO0FBQW1CO0FBQW5CO0VBQUE7QUFBbUI7QUFBbkI7RUFBQTtBQUFtQjtBQUFuQjtFQUFBO0FBQW1CO0FBQW5CO0VBQUE7QUFBbUI7QUFBbkI7RUFBQTtBQUFtQjtBQUFuQjtFQUFBO0FBQW1CO0FBQW5CO0VBQUE7QUFBbUI7QUFBbkI7RUFBQTtBQUFtQjtBQUFuQjtFQUFBO0FBQW1CO0FBQW5CO0VBQUE7QUFBbUI7QUFBbkI7RUFBQTtBQUFtQjtBQUFuQjtFQUFBO0FBQW1CO0FBQW5CO0VBQUE7QUFBbUI7QUFBbkI7RUFBQTtBQUFtQjtBQUFuQjtFQUFBO0FBQW1CO0FBQW5CO0VBQUE7QUFBbUI7QUFBbkI7RUFBQSxpQkFBbUI7RUFBbkI7QUFBbUI7QUFBbkI7RUFBQTtBQUFtQjtBQUFuQjtFQUFBO0FBQW1CO0FBQW5CO0VBQUE7QUFBbUI7QUFBbkI7RUFBQTtBQUFtQjtBQUFuQjtFQUFBO0FBQW1CO0FBQW5CO0VBQUE7QUFBbUI7QUFBbkI7RUFBQTtBQUFtQjtBQUFuQjtFQUFBO0FBQW1CO0FBQW5CO0VBQUE7QUFBbUI7QUFBbkI7RUFBQTtBQUFtQjtBQUFuQjtFQUFBO0FBQW1CO0FBQW5CO0VBQUE7QUFBbUI7QUFBbkI7RUFBQTtBQUFtQjtBQUFuQjtFQUFBO0FBQW1CO0FBQW5CO0VBQUE7QUFBbUI7QUFBbkI7RUFBQTtBQUFtQjtBQUFuQjtFQUFBO0FBQW1CO0FBQW5CO0VBQUE7QUFBbUI7QUFBbkI7RUFBQTtBQUFtQjtBQUFuQjtFQUFBO0FBQW1CO0FBQW5CO0VBQUE7QUFBbUI7QUFBbkI7RUFBQTtBQUFtQjtBQUFuQjtFQUFBO0FBQW1CO0FBQW5CO0VBQUEsZ0JBQW1CO0VBQW5CLG9CQUFtQjtFQUFuQiw0QkFBbUI7RUFBbkI7QUFBbUI7QUFBbkI7RUFBQSxnQkFBbUI7RUFBbkIsb0JBQW1CO0VBQW5CLDRCQUFtQjtFQUFuQjtBQUFtQjtBQUFuQjtFQUFBO0FBQW1CO0FBQW5CO0VBQUE7QUFBbUI7QUFBbkI7RUFBQTtBQUFtQjtBQUFuQjtFQUFBO0FBQW1CO0FBQW5CO0VBQUE7QUFBbUI7QUFBbkI7RUFBQTtBQUFtQjtBQUFuQjtFQUFBO0FBQW1CO0FBQW5CO0VBQUE7QUFBbUI7QUFBbkI7RUFBQTtBQUFtQjtBQUFuQjtFQUFBO0FBQW1CO0FBQW5CO0VBQUE7QUFBbUI7QUFBbkI7RUFBQTtBQUFtQjtBQUFuQjtFQUFBO0FBQW1CO0FBQW5CO0VBQUE7QUFBbUI7QUFBbkI7RUFBQTtBQUFtQjtBQUFuQjtFQUFBO0FBQW1CO0FBQW5CO0VBQUE7QUFBbUI7QUFBbkI7RUFBQTtBQUFtQjtBQUFuQjtFQUFBO0FBQW1CO0FBQW5CO0VBQUE7QUFBbUI7QUFBbkI7RUFBQTtBQUFtQjtBQUFuQjtFQUFBO0FBQW1CO0FBQW5CO0VBQUE7QUFBbUI7QUFBbkI7RUFBQTtBQUFtQjtBQUFuQjtFQUFBO0FBQW1CO0FBQW5CO0VBQUE7QUFBbUI7QUFBbkI7RUFBQTtBQUFtQjtBQUFuQjtFQUFBO0FBQW1CO0FBQW5CO0VBQUE7QUFBbUI7QUFBbkI7RUFBQTtBQUFtQjtBQUFuQjtFQUFBO0FBQW1CO0FBQW5CO0VBQUE7QUFBbUI7QUFBbkI7RUFBQTtBQUFtQjtBQUFuQjtFQUFBO0FBQW1CO0FBQW5CO0VBQUE7QUFBbUI7QUFBbkI7RUFBQTtBQUFtQjtBQUFuQjtFQUFBO0FBQW1CO0FBQW5CO0VBQUE7QUFBbUI7QUFBbkI7RUFBQTtBQUFtQjtBQUFuQjtFQUFBO0FBQW1CO0FBQW5CO0VBQUE7QUFBbUI7QUFBbkI7RUFBQTtBQUFtQjtBQUFuQjtFQUFBO0FBQW1CO0FBQW5CO0VBQUE7QUFBbUI7QUFBbkI7RUFBQSxzQkFBbUI7RUFBbkI7QUFBbUI7QUFBbkI7RUFBQSxzQkFBbUI7RUFBbkI7QUFBbUI7QUFBbkI7RUFBQSxxQkFBbUI7RUFBbkI7QUFBbUI7QUFBbkI7RUFBQSxzQkFBbUI7RUFBbkI7QUFBbUI7QUFBbkI7RUFBQSxrQkFBbUI7RUFBbkI7QUFBbUI7QUFBbkI7RUFBQSxrQkFBbUI7RUFBbkIsa0JBQW1CO0VBQW5CO0FBQW1CO0FBQW5CO0VBQUE7QUFBbUI7QUFBbkI7O0VBQUE7SUFBQTtFQUFtQjtBQUFBO0FBQW5CO0VBQUE7QUFBbUI7QUFBbkI7RUFBQTtBQUFtQjtBQUFuQjtFQUFBO0FBQW1CO0FBQW5CO0VBQUE7QUFBbUI7QUFBbkI7RUFBQTtBQUFtQjtBQUFuQjtFQUFBO0FBQW1CO0FBQW5CO0VBQUE7QUFBbUI7QUFBbkI7RUFBQTtBQUFtQjtBQUFuQjtFQUFBO0FBQW1CO0FBQW5CO0VBQUE7QUFBbUI7QUFBbkI7RUFBQTtBQUFtQjtBQUFuQjtFQUFBO0FBQW1CO0FBQW5CO0VBQUE7QUFBbUI7QUFBbkI7RUFBQTtBQUFtQjtBQUFuQjtFQUFBO0FBQW1CO0FBQW5CO0VBQUE7QUFBbUI7QUFBbkI7RUFBQTtBQUFtQjtBQUFuQjtFQUFBO0FBQW1CO0FBQW5CO0VBQUE7QUFBbUI7QUFBbkI7RUFBQTtBQUFtQjtBQUFuQjtFQUFBO0FBQW1CO0FBQW5CO0VBQUEsdUJBQW1CO0VBQW5CLG9EQUFtQjtFQUFuQjtBQUFtQjtBQUFuQjtFQUFBLHVCQUFtQjtFQUFuQixzREFBbUI7RUFBbkI7QUFBbUI7QUFBbkI7RUFBQSx1QkFBbUI7RUFBbkIsK0RBQW1CO0VBQW5CO0FBQW1CO0FBQW5CO0VBQUEsdUJBQW1CO0VBQW5CLDREQUFtQjtFQUFuQjtBQUFtQjtBQUFuQjtFQUFBLHVCQUFtQjtFQUFuQiw4REFBbUI7RUFBbkI7QUFBbUI7QUFBbkI7RUFBQSx1QkFBbUI7RUFBbkIsK0RBQW1CO0VBQW5CO0FBQW1CO0FBQW5CO0VBQUEsdUJBQW1CO0VBQW5CLDREQUFtQjtFQUFuQjtBQUFtQjtBQUFuQjtFQUFBLHVCQUFtQjtFQUFuQiw4REFBbUI7RUFBbkI7QUFBbUI7QUFBbkI7RUFBQSx1QkFBbUI7RUFBbkIsNERBQW1CO0VBQW5CO0FBQW1CO0FBQW5CO0VBQUE7QUFBbUI7QUFBbkI7RUFBQTtBQUFtQjtBQUFuQjtFQUFBO0FBQW1CO0FBQW5CO0VBQUE7QUFBbUI7QUFBbkI7RUFBQTtBQUFtQjtBQUFuQjtFQUFBO0FBQW1CO0FBQW5CO0VBQUE7QUFBbUI7QUFBbkI7RUFBQTtBQUFtQjtBQUFuQjtFQUFBO0FBQW1CO0FBQW5CO0VBQUEsc0JBQW1CO0VBQW5CO0FBQW1CO0FBQW5CO0VBQUEsc0JBQW1CO0VBQW5CO0FBQW1CO0FBQW5CO0VBQUEsc0JBQW1CO0VBQW5CO0FBQW1CO0FBQW5CO0VBQUEsc0JBQW1CO0VBQW5CO0FBQW1CO0FBQW5CO0VBQUEsc0JBQW1CO0VBQW5CO0FBQW1CO0FBQW5CO0VBQUEsc0JBQW1CO0VBQW5CO0FBQW1CO0FBQW5CO0VBQUEsc0JBQW1CO0VBQW5CO0FBQW1CO0FBQW5CO0VBQUEsc0JBQW1CO0VBQW5CO0FBQW1CO0FBQW5CO0VBQUE7QUFBbUI7QUFBbkI7RUFBQSxzQkFBbUI7RUFBbkI7QUFBbUI7QUFBbkI7RUFBQTtBQUFtQjtBQUFuQjtFQUFBLGtCQUFtQjtFQUFuQjtBQUFtQjtBQUFuQjtFQUFBO0FBQW1CO0FBQW5CO0VBQUEsa0JBQW1CO0VBQW5CO0FBQW1CO0FBQW5CO0VBQUE7QUFBbUI7QUFBbkI7RUFBQSxrQkFBbUI7RUFBbkI7QUFBbUI7QUFBbkI7RUFBQSxrQkFBbUI7RUFBbkI7QUFBbUI7QUFBbkI7RUFBQSxrQkFBbUI7RUFBbkI7QUFBbUI7QUFBbkI7RUFBQSxrQkFBbUI7RUFBbkI7QUFBbUI7QUFBbkI7RUFBQSxrQkFBbUI7RUFBbkI7QUFBbUI7QUFBbkI7RUFBQSxrQkFBbUI7RUFBbkI7QUFBbUI7QUFBbkI7RUFBQSxrQkFBbUI7RUFBbkI7QUFBbUI7QUFBbkI7RUFBQSxrQkFBbUI7RUFBbkI7QUFBbUI7QUFBbkI7RUFBQSxrQkFBbUI7RUFBbkI7QUFBbUI7QUFBbkI7RUFBQSxrQkFBbUI7RUFBbkI7QUFBbUI7QUFBbkI7RUFBQSxrQkFBbUI7RUFBbkI7QUFBbUI7QUFBbkI7RUFBQSxrQkFBbUI7RUFBbkI7QUFBbUI7QUFBbkI7RUFBQSxrQkFBbUI7RUFBbkI7QUFBbUI7QUFBbkI7RUFBQSxrQkFBbUI7RUFBbkI7QUFBbUI7QUFBbkI7RUFBQSxrQkFBbUI7RUFBbkI7QUFBbUI7QUFBbkI7RUFBQTtBQUFtQjtBQUFuQjtFQUFBO0FBQW1CO0FBQW5CO0VBQUE7QUFBbUI7QUFBbkI7RUFBQTtBQUFtQjtBQUFuQjtFQUFBLGtCQUFtQjtFQUFuQjtBQUFtQjtBQUFuQjtFQUFBO0FBQW1CO0FBQW5CO0VBQUE7QUFBbUI7QUFBbkI7RUFBQSw0REFBbUI7RUFBbkIsbUVBQW1CO0VBQW5CO0FBQW1CO0FBQW5CO0VBQUEseUVBQW1CO0VBQW5CLG1FQUFtQjtFQUFuQjtBQUFtQjtBQUFuQjtFQUFBLDREQUFtQjtFQUFuQixxRUFBbUI7RUFBbkI7QUFBbUI7QUFBbkI7RUFBQSw0REFBbUI7RUFBbkIscUVBQW1CO0VBQW5CO0FBQW1CO0FBQW5CO0VBQUEsNERBQW1CO0VBQW5CLHFFQUFtQjtFQUFuQjtBQUFtQjtBQUFuQjtFQUFBLDREQUFtQjtFQUFuQixxRUFBbUI7RUFBbkI7QUFBbUI7QUFBbkI7RUFBQSw0REFBbUI7RUFBbkIscUVBQW1CO0VBQW5CO0FBQW1CO0FBQW5CO0VBQUEsNERBQW1CO0VBQW5CLG9FQUFtQjtFQUFuQjtBQUFtQjtBQUFuQjtFQUFBLG9FQUFtQjtFQUFuQjtBQUFtQjtBQUFuQjtFQUFBO0FBQW1CO0FBQW5CO0VBQUE7QUFBbUI7QUFBbkI7RUFBQTtBQUFtQjtBQUFuQjtFQUFBO0FBQW1CO0FBQW5CO0VBQUE7QUFBbUI7QUFBbkI7RUFBQTtBQUFtQjtBQUFuQjtFQUFBO0FBQW1CO0FBQW5CO0VBQUE7QUFBbUI7QUFBbkI7RUFBQTtBQUFtQjtBQUFuQjtFQUFBO0FBQW1CO0FBQW5CO0VBQUEsNkJBQW1CO1VBQW5CO0FBQW1CO0FBQW5CO0VBQUE7QUFBbUI7QUFBbkI7RUFBQTtBQUFtQjtBQUFuQjtFQUFBO0FBQW1CO0FBQW5CO0VBQUE7QUFBbUI7QUFBbkI7RUFBQTtBQUFtQjtBQUFuQjtFQUFBLG9CQUFtQjtFQUFuQjtBQUFtQjtBQUFuQjtFQUFBLHFCQUFtQjtFQUFuQjtBQUFtQjtBQUFuQjtFQUFBLGtCQUFtQjtFQUFuQjtBQUFtQjtBQUFuQjtFQUFBLG9CQUFtQjtFQUFuQjtBQUFtQjtBQUFuQjtFQUFBLGtCQUFtQjtFQUFuQjtBQUFtQjtBQUFuQjtFQUFBLG9CQUFtQjtFQUFuQjtBQUFtQjtBQUFuQjtFQUFBLGlCQUFtQjtFQUFuQjtBQUFtQjtBQUFuQjtFQUFBLGlCQUFtQjtFQUFuQjtBQUFtQjtBQUFuQjtFQUFBLG1CQUFtQjtFQUFuQjtBQUFtQjtBQUFuQjtFQUFBLGlCQUFtQjtFQUFuQjtBQUFtQjtBQUFuQjtFQUFBLG9CQUFtQjtFQUFuQjtBQUFtQjtBQUFuQjtFQUFBLGlCQUFtQjtFQUFuQjtBQUFtQjtBQUFuQjtFQUFBLGlCQUFtQjtFQUFuQjtBQUFtQjtBQUFuQjtFQUFBO0FBQW1CO0FBQW5CO0VBQUE7QUFBbUI7QUFBbkI7RUFBQTtBQUFtQjtBQUFuQjtFQUFBO0FBQW1CO0FBQW5CO0VBQUE7QUFBbUI7QUFBbkI7RUFBQTtBQUFtQjtBQUFuQjtFQUFBO0FBQW1CO0FBQW5CO0VBQUE7QUFBbUI7QUFBbkI7RUFBQTtBQUFtQjtBQUFuQjtFQUFBO0FBQW1CO0FBQW5CO0VBQUE7QUFBbUI7QUFBbkI7RUFBQTtBQUFtQjtBQUFuQjtFQUFBO0FBQW1CO0FBQW5CO0VBQUE7QUFBbUI7QUFBbkI7RUFBQSxpQkFBbUI7RUFBbkI7QUFBbUI7QUFBbkI7RUFBQSxtQkFBbUI7RUFBbkI7QUFBbUI7QUFBbkI7RUFBQSxrQkFBbUI7RUFBbkI7QUFBbUI7QUFBbkI7RUFBQSxlQUFtQjtFQUFuQjtBQUFtQjtBQUFuQjtFQUFBLGVBQW1CO0VBQW5CO0FBQW1CO0FBQW5CO0VBQUEsbUJBQW1CO0VBQW5CO0FBQW1CO0FBQW5CO0VBQUEsbUJBQW1CO0VBQW5CO0FBQW1CO0FBQW5CO0VBQUEsa0JBQW1CO0VBQW5CO0FBQW1CO0FBQW5CO0VBQUEsa0JBQW1CO0VBQW5CO0FBQW1CO0FBQW5CO0VBQUE7QUFBbUI7QUFBbkI7RUFBQTtBQUFtQjtBQUFuQjtFQUFBO0FBQW1CO0FBQW5CO0VBQUE7QUFBbUI7QUFBbkI7RUFBQTtBQUFtQjtBQUFuQjtFQUFBLG9CQUFtQjtFQUFuQjtBQUFtQjtBQUFuQjtFQUFBLG9CQUFtQjtFQUFuQjtBQUFtQjtBQUFuQjtFQUFBLG9CQUFtQjtFQUFuQjtBQUFtQjtBQUFuQjtFQUFBLG9CQUFtQjtFQUFuQjtBQUFtQjtBQUFuQjtFQUFBLG9CQUFtQjtFQUFuQjtBQUFtQjtBQUFuQjtFQUFBLG9CQUFtQjtFQUFuQjtBQUFtQjtBQUFuQjtFQUFBLG9CQUFtQjtFQUFuQjtBQUFtQjtBQUFuQjtFQUFBLG9CQUFtQjtFQUFuQjtBQUFtQjtBQUFuQjtFQUFBLG9CQUFtQjtFQUFuQjtBQUFtQjtBQUFuQjtFQUFBLG9CQUFtQjtFQUFuQjtBQUFtQjtBQUFuQjtFQUFBLG9CQUFtQjtFQUFuQjtBQUFtQjtBQUFuQjtFQUFBLG9CQUFtQjtFQUFuQjtBQUFtQjtBQUFuQjtFQUFBLG9CQUFtQjtFQUFuQjtBQUFtQjtBQUFuQjtFQUFBLG9CQUFtQjtFQUFuQjtBQUFtQjtBQUFuQjtFQUFBLG9CQUFtQjtFQUFuQjtBQUFtQjtBQUFuQjtFQUFBLG9CQUFtQjtFQUFuQjtBQUFtQjtBQUFuQjtFQUFBLG9CQUFtQjtFQUFuQjtBQUFtQjtBQUFuQjtFQUFBLG9CQUFtQjtFQUFuQjtBQUFtQjtBQUFuQjtFQUFBLG9CQUFtQjtFQUFuQjtBQUFtQjtBQUFuQjtFQUFBLG9CQUFtQjtFQUFuQjtBQUFtQjtBQUFuQjtFQUFBLG9CQUFtQjtFQUFuQjtBQUFtQjtBQUFuQjtFQUFBLG9CQUFtQjtFQUFuQjtBQUFtQjtBQUFuQjtFQUFBLG9CQUFtQjtFQUFuQjtBQUFtQjtBQUFuQjtFQUFBLG9CQUFtQjtFQUFuQjtBQUFtQjtBQUFuQjtFQUFBLG9CQUFtQjtFQUFuQjtBQUFtQjtBQUFuQjtFQUFBLG9CQUFtQjtFQUFuQjtBQUFtQjtBQUFuQjtFQUFBO0FBQW1CO0FBQW5CO0VBQUEsb0JBQW1CO0VBQW5CO0FBQW1CO0FBQW5CO0VBQUEsb0JBQW1CO0VBQW5CO0FBQW1CO0FBQW5CO0VBQUEsb0JBQW1CO0VBQW5CO0FBQW1CO0FBQW5CO0VBQUEsb0JBQW1CO0VBQW5CO0FBQW1CO0FBQW5CO0VBQUEsb0JBQW1CO0VBQW5CO0FBQW1CO0FBQW5CO0VBQUEsb0JBQW1CO0VBQW5CO0FBQW1CO0FBQW5CO0VBQUE7QUFBbUI7QUFBbkI7RUFBQTtBQUFtQjtBQUFuQjtFQUFBLCtFQUFtQjtFQUFuQixtR0FBbUI7RUFBbkI7QUFBbUI7QUFBbkI7RUFBQSw2RUFBbUI7RUFBbkIsaUdBQW1CO0VBQW5CO0FBQW1CO0FBQW5CO0VBQUEsMENBQW1CO0VBQW5CLHVEQUFtQjtFQUFuQjtBQUFtQjtBQUFuQjtFQUFBLDhCQUFtQjtF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QUEsb0JBd0RDO0VBeEREO0FBd0RDO0FBeEREOztFQUFBO0lBQUE7RUF3REM7QUFBQTtBQXhERDs7RUFBQTtJQUFBO0VBd0RDOztFQXhERDtJQUFBO0VBd0RDOztFQXhERDtJQUFBO0VBd0RDOztFQXhERDtJQUFBO0VBd0RDOztFQXhERDtJQUFBO0VBd0RDOztFQXhERDtJQUFBO0VBd0RDOztFQXhERDtJQUFBO0VBd0RDOztFQXhERDtJQUFBO0VBd0RDOztFQXhERDtJQUFBO0VBd0RDOztFQXhERDtJQUFBO0VBd0RDOztFQXhERDtJQUFBO0VBd0RDOztFQXhERDtJQUFBLG1CQXdEQztJQXhERDtFQXdEQzs7RUF4REQ7SUFBQSxrQkF3REM7SUF4REQ7RUF3REM7O0VBeEREO0lBQUEsZUF3REM7SUF4REQ7RUF3REM7QUFBQTtBQXhERDs7RUFBQTtJQUFBO0VBd0RDOztFQXhERDtJQUFBO0VBd0RDOztFQXhERDtJQUFBO0VBd0RDOztFQXhERDtJQUFBO0VBd0RDOztFQXhERDtJQUFBO0VBd0RDOztFQXhERDtJQUFBO0VBd0RDO0FBQUE7QUF4REQ7O0VBQUE7SUFBQTtFQXdEQztBQUFBXCIsXCJzb3VyY2VzQ29udGVudFwiOltcIkB0YWlsd2luZCBiYXNlO1xcclxcbkB0YWlsd2luZCBjb21wb25lbnRzO1xcclxcbkB0YWlsd2luZCB1dGlsaXRpZXM7XFxyXFxuXFxyXFxuYm9keSB7XFxyXFxuICBAYXBwbHkgYmctYmFja2dyb3VuZCB0ZXh0LXByaW1hcnkgZm9udC1zYW5zO1xcclxcbn1cXHJcXG5cXHJcXG5tYWluIHtcXHJcXG4gIEBhcHBseSBmbGV4IGZsZXgtY29sIGdhcC1zZWN0aW9uO1xcclxcbn1cXHJcXG5cXHJcXG4vKiDmlofmnKzmiKrmlq3moLflvI8gKi9cXHJcXG4ubGluZS1jbGFtcC0yIHtcXHJcXG4gIGRpc3BsYXk6IC13ZWJraXQtYm94O1xcclxcbiAgLXdlYmtpdC1saW5lLWNsYW1wOiAyO1xcclxcbiAgLXdlYmtpdC1ib3gtb3JpZW50OiB2ZXJ0aWNhbDtcXHJcXG4gIG92ZXJmbG93OiBoaWRkZW47XFxyXFxufVxcclxcblxcclxcbi5saW5lLWNsYW1wLTMge1xcclxcbiAgZGlzcGxheTogLXdlYmtpdC1ib3g7XFxyXFxuICAtd2Via2l0LWxpbmUtY2xhbXA6IDM7XFxyXFxuICAtd2Via2l0LWJveC1vcmllbnQ6IHZlcnRpY2FsO1xcclxcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcXHJcXG59XFxyXFxuXFxyXFxuLyog6Ieq5a6a5LmJ5rua5Yqo5p2hICovXFxyXFxuOjotd2Via2l0LXNjcm9sbGJhciB7XFxyXFxuICB3aWR0aDogOHB4O1xcclxcbn1cXHJcXG5cXHJcXG46Oi13ZWJraXQtc2Nyb2xsYmFyLXRyYWNrIHtcXHJcXG4gIGJhY2tncm91bmQ6ICNmMWYxZjE7XFxyXFxuICBib3JkZXItcmFkaXVzOiA0cHg7XFxyXFxufVxcclxcblxcclxcbjo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWIge1xcclxcbiAgYmFja2dyb3VuZDogI2MxYzFjMTtcXHJcXG4gIGJvcmRlci1yYWRpdXM6IDRweDtcXHJcXG59XFxyXFxuXFxyXFxuOjotd2Via2l0LXNjcm9sbGJhci10aHVtYjpob3ZlciB7XFxyXFxuICBiYWNrZ3JvdW5kOiAjYThhOGE4O1xcclxcbn1cXHJcXG5cXHJcXG4vKiDlubPmu5Hmu5rliqggKi9cXHJcXG5odG1sIHtcXHJcXG4gIHNjcm9sbC1iZWhhdmlvcjogc21vb3RoO1xcclxcbn1cXHJcXG5cXHJcXG4vKiDnhKbngrnmoLflvI8gKi9cXHJcXG4uZm9jdXNcXFxcOnJpbmctMjpmb2N1cyB7XFxyXFxuICAtLXR3LXJpbmctb2Zmc2V0LXNoYWRvdzogdmFyKC0tdHctcmluZy1pbnNldCkgMCAwIDAgdmFyKC0tdHctcmluZy1vZmZzZXQtd2lkdGgpIHZhcigtLXR3LXJpbmctb2Zmc2V0LWNvbG9yKTtcXHJcXG4gIC0tdHctcmluZy1zaGFkb3c6IHZhcigtLXR3LXJpbmctaW5zZXQpIDAgMCAwIGNhbGMoMnB4ICsgdmFyKC0tdHctcmluZy1vZmZzZXQtd2lkdGgpKSB2YXIoLS10dy1yaW5nLWNvbG9yKTtcXHJcXG4gIGJveC1zaGFkb3c6IHZhcigtLXR3LXJpbmctb2Zmc2V0LXNoYWRvdyksIHZhcigtLXR3LXJpbmctc2hhZG93KSwgdmFyKC0tdHctc2hhZG93LCAwIDAgIzAwMDApO1xcclxcbn1cIl0sXCJzb3VyY2VSb290XCI6XCJcIn1dKTtcbi8vIEV4cG9ydHNcbmV4cG9ydCBkZWZhdWx0IF9fX0NTU19MT0FERVJfRVhQT1JUX19fO1xuIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(pages-dir-browser)/./node_modules/next/dist/build/webpack/loaders/css-loader/src/index.js??ruleSet[1].rules[7].oneOf[13].use[1]!./node_modules/next/dist/build/webpack/loaders/postcss-loader/src/index.js??ruleSet[1].rules[7].oneOf[13].use[2]!./styles/globals.css\n")); - -/***/ }) - -}); \ No newline at end of file diff --git a/build/static/webpack/pages/_app.51350c0cee96bd54.hot-update.js b/build/static/webpack/pages/_app.51350c0cee96bd54.hot-update.js deleted file mode 100644 index cc84176..0000000 --- a/build/static/webpack/pages/_app.51350c0cee96bd54.hot-update.js +++ /dev/null @@ -1,22 +0,0 @@ -"use strict"; -/* - * ATTENTION: An "eval-source-map" devtool has been used. - * This devtool is neither made for production nor for readable output files. - * It uses "eval()" calls to create a separate source file with attached SourceMaps in the browser devtools. - * If you are trying to read the output file, select a different devtool (https://webpack.js.org/configuration/devtool/) - * or disable the default devtool with "devtool: false". - * If you are looking for production-ready output files, see mode: "production" (https://webpack.js.org/configuration/mode/). - */ -self["webpackHotUpdate_N_E"]("pages/_app",{ - -/***/ "(pages-dir-browser)/./node_modules/next/dist/build/webpack/loaders/css-loader/src/index.js??ruleSet[1].rules[7].oneOf[13].use[1]!./node_modules/next/dist/build/webpack/loaders/postcss-loader/src/index.js??ruleSet[1].rules[7].oneOf[13].use[2]!./styles/globals.css": -/*!**********************************************************************************************************************************************************************************************************************************************************!*\ - !*** ./node_modules/next/dist/build/webpack/loaders/css-loader/src/index.js??ruleSet[1].rules[7].oneOf[13].use[1]!./node_modules/next/dist/build/webpack/loaders/postcss-loader/src/index.js??ruleSet[1].rules[7].oneOf[13].use[2]!./styles/globals.css ***! - \**********************************************************************************************************************************************************************************************************************************************************/ -/***/ ((module, __webpack_exports__, __webpack_require__) => { - -eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _node_modules_next_dist_build_webpack_loaders_css_loader_src_runtime_api_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../node_modules/next/dist/build/webpack/loaders/css-loader/src/runtime/api.js */ \"(pages-dir-browser)/./node_modules/next/dist/build/webpack/loaders/css-loader/src/runtime/api.js\");\n/* harmony import */ var _node_modules_next_dist_build_webpack_loaders_css_loader_src_runtime_api_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_next_dist_build_webpack_loaders_css_loader_src_runtime_api_js__WEBPACK_IMPORTED_MODULE_0__);\n// Imports\n\nvar ___CSS_LOADER_EXPORT___ = _node_modules_next_dist_build_webpack_loaders_css_loader_src_runtime_api_js__WEBPACK_IMPORTED_MODULE_0___default()(true);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \"*, ::before, ::after {\\n --tw-border-spacing-x: 0;\\n --tw-border-spacing-y: 0;\\n --tw-translate-x: 0;\\n --tw-translate-y: 0;\\n --tw-rotate: 0;\\n --tw-skew-x: 0;\\n --tw-skew-y: 0;\\n --tw-scale-x: 1;\\n --tw-scale-y: 1;\\n --tw-pan-x: ;\\n --tw-pan-y: ;\\n --tw-pinch-zoom: ;\\n --tw-scroll-snap-strictness: proximity;\\n --tw-gradient-from-position: ;\\n --tw-gradient-via-position: ;\\n --tw-gradient-to-position: ;\\n --tw-ordinal: ;\\n --tw-slashed-zero: ;\\n --tw-numeric-figure: ;\\n --tw-numeric-spacing: ;\\n --tw-numeric-fraction: ;\\n --tw-ring-inset: ;\\n --tw-ring-offset-width: 0px;\\n --tw-ring-offset-color: #fff;\\n --tw-ring-color: rgb(59 130 246 / 0.5);\\n --tw-ring-offset-shadow: 0 0 #0000;\\n --tw-ring-shadow: 0 0 #0000;\\n --tw-shadow: 0 0 #0000;\\n --tw-shadow-colored: 0 0 #0000;\\n --tw-blur: ;\\n --tw-brightness: ;\\n --tw-contrast: ;\\n --tw-grayscale: ;\\n --tw-hue-rotate: ;\\n --tw-invert: ;\\n --tw-saturate: ;\\n --tw-sepia: ;\\n --tw-drop-shadow: ;\\n --tw-backdrop-blur: ;\\n --tw-backdrop-brightness: ;\\n --tw-backdrop-contrast: ;\\n --tw-backdrop-grayscale: ;\\n --tw-backdrop-hue-rotate: ;\\n --tw-backdrop-invert: ;\\n --tw-backdrop-opacity: ;\\n --tw-backdrop-saturate: ;\\n --tw-backdrop-sepia: ;\\n --tw-contain-size: ;\\n --tw-contain-layout: ;\\n --tw-contain-paint: ;\\n --tw-contain-style: ;\\n}\\n\\n::backdrop {\\n --tw-border-spacing-x: 0;\\n --tw-border-spacing-y: 0;\\n --tw-translate-x: 0;\\n --tw-translate-y: 0;\\n --tw-rotate: 0;\\n --tw-skew-x: 0;\\n --tw-skew-y: 0;\\n --tw-scale-x: 1;\\n --tw-scale-y: 1;\\n --tw-pan-x: ;\\n --tw-pan-y: ;\\n --tw-pinch-zoom: ;\\n --tw-scroll-snap-strictness: proximity;\\n --tw-gradient-from-position: ;\\n --tw-gradient-via-position: ;\\n --tw-gradient-to-position: ;\\n --tw-ordinal: ;\\n --tw-slashed-zero: ;\\n --tw-numeric-figure: ;\\n --tw-numeric-spacing: ;\\n --tw-numeric-fraction: ;\\n --tw-ring-inset: ;\\n --tw-ring-offset-width: 0px;\\n --tw-ring-offset-color: #fff;\\n --tw-ring-color: rgb(59 130 246 / 0.5);\\n --tw-ring-offset-shadow: 0 0 #0000;\\n --tw-ring-shadow: 0 0 #0000;\\n --tw-shadow: 0 0 #0000;\\n --tw-shadow-colored: 0 0 #0000;\\n --tw-blur: ;\\n --tw-brightness: ;\\n --tw-contrast: ;\\n --tw-grayscale: ;\\n --tw-hue-rotate: ;\\n --tw-invert: ;\\n --tw-saturate: ;\\n --tw-sepia: ;\\n --tw-drop-shadow: ;\\n --tw-backdrop-blur: ;\\n --tw-backdrop-brightness: ;\\n --tw-backdrop-contrast: ;\\n --tw-backdrop-grayscale: ;\\n --tw-backdrop-hue-rotate: ;\\n --tw-backdrop-invert: ;\\n --tw-backdrop-opacity: ;\\n --tw-backdrop-saturate: ;\\n --tw-backdrop-sepia: ;\\n --tw-contain-size: ;\\n --tw-contain-layout: ;\\n --tw-contain-paint: ;\\n --tw-contain-style: ;\\n}/*\\n! tailwindcss v3.4.17 | MIT License | https://tailwindcss.com\\n*//*\\n1. Prevent padding and border from affecting element width. (https://github.com/mozdevs/cssremedy/issues/4)\\n2. Allow adding a border to an element by just adding a border-width. (https://github.com/tailwindcss/tailwindcss/pull/116)\\n*/\\n\\n*,\\n::before,\\n::after {\\n box-sizing: border-box; /* 1 */\\n border-width: 0; /* 2 */\\n border-style: solid; /* 2 */\\n border-color: #e5e7eb; /* 2 */\\n}\\n\\n::before,\\n::after {\\n --tw-content: '';\\n}\\n\\n/*\\n1. Use a consistent sensible line-height in all browsers.\\n2. Prevent adjustments of font size after orientation changes in iOS.\\n3. Use a more readable tab size.\\n4. Use the user's configured `sans` font-family by default.\\n5. Use the user's configured `sans` font-feature-settings by default.\\n6. Use the user's configured `sans` font-variation-settings by default.\\n7. Disable tap highlights on iOS\\n*/\\n\\nhtml,\\n:host {\\n line-height: 1.5; /* 1 */\\n -webkit-text-size-adjust: 100%; /* 2 */\\n -moz-tab-size: 4; /* 3 */\\n -o-tab-size: 4;\\n tab-size: 4; /* 3 */\\n font-family: Inter, sans-serif; /* 4 */\\n font-feature-settings: normal; /* 5 */\\n font-variation-settings: normal; /* 6 */\\n -webkit-tap-highlight-color: transparent; /* 7 */\\n}\\n\\n/*\\n1. Remove the margin in all browsers.\\n2. Inherit line-height from `html` so users can set them as a class directly on the `html` element.\\n*/\\n\\nbody {\\n margin: 0; /* 1 */\\n line-height: inherit; /* 2 */\\n}\\n\\n/*\\n1. Add the correct height in Firefox.\\n2. Correct the inheritance of border color in Firefox. (https://bugzilla.mozilla.org/show_bug.cgi?id=190655)\\n3. Ensure horizontal rules are visible by default.\\n*/\\n\\nhr {\\n height: 0; /* 1 */\\n color: inherit; /* 2 */\\n border-top-width: 1px; /* 3 */\\n}\\n\\n/*\\nAdd the correct text decoration in Chrome, Edge, and Safari.\\n*/\\n\\nabbr:where([title]) {\\n -webkit-text-decoration: underline dotted;\\n text-decoration: underline dotted;\\n}\\n\\n/*\\nRemove the default font size and weight for headings.\\n*/\\n\\nh1,\\nh2,\\nh3,\\nh4,\\nh5,\\nh6 {\\n font-size: inherit;\\n font-weight: inherit;\\n}\\n\\n/*\\nReset links to optimize for opt-in styling instead of opt-out.\\n*/\\n\\na {\\n color: inherit;\\n text-decoration: inherit;\\n}\\n\\n/*\\nAdd the correct font weight in Edge and Safari.\\n*/\\n\\nb,\\nstrong {\\n font-weight: bolder;\\n}\\n\\n/*\\n1. Use the user's configured `mono` font-family by default.\\n2. Use the user's configured `mono` font-feature-settings by default.\\n3. Use the user's configured `mono` font-variation-settings by default.\\n4. Correct the odd `em` font sizing in all browsers.\\n*/\\n\\ncode,\\nkbd,\\nsamp,\\npre {\\n font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, \\\"Liberation Mono\\\", \\\"Courier New\\\", monospace; /* 1 */\\n font-feature-settings: normal; /* 2 */\\n font-variation-settings: normal; /* 3 */\\n font-size: 1em; /* 4 */\\n}\\n\\n/*\\nAdd the correct font size in all browsers.\\n*/\\n\\nsmall {\\n font-size: 80%;\\n}\\n\\n/*\\nPrevent `sub` and `sup` elements from affecting the line height in all browsers.\\n*/\\n\\nsub,\\nsup {\\n font-size: 75%;\\n line-height: 0;\\n position: relative;\\n vertical-align: baseline;\\n}\\n\\nsub {\\n bottom: -0.25em;\\n}\\n\\nsup {\\n top: -0.5em;\\n}\\n\\n/*\\n1. Remove text indentation from table contents in Chrome and Safari. (https://bugs.chromium.org/p/chromium/issues/detail?id=999088, https://bugs.webkit.org/show_bug.cgi?id=201297)\\n2. Correct table border color inheritance in all Chrome and Safari. (https://bugs.chromium.org/p/chromium/issues/detail?id=935729, https://bugs.webkit.org/show_bug.cgi?id=195016)\\n3. Remove gaps between table borders by default.\\n*/\\n\\ntable {\\n text-indent: 0; /* 1 */\\n border-color: inherit; /* 2 */\\n border-collapse: collapse; /* 3 */\\n}\\n\\n/*\\n1. Change the font styles in all browsers.\\n2. Remove the margin in Firefox and Safari.\\n3. Remove default padding in all browsers.\\n*/\\n\\nbutton,\\ninput,\\noptgroup,\\nselect,\\ntextarea {\\n font-family: inherit; /* 1 */\\n font-feature-settings: inherit; /* 1 */\\n font-variation-settings: inherit; /* 1 */\\n font-size: 100%; /* 1 */\\n font-weight: inherit; /* 1 */\\n line-height: inherit; /* 1 */\\n letter-spacing: inherit; /* 1 */\\n color: inherit; /* 1 */\\n margin: 0; /* 2 */\\n padding: 0; /* 3 */\\n}\\n\\n/*\\nRemove the inheritance of text transform in Edge and Firefox.\\n*/\\n\\nbutton,\\nselect {\\n text-transform: none;\\n}\\n\\n/*\\n1. Correct the inability to style clickable types in iOS and Safari.\\n2. Remove default button styles.\\n*/\\n\\nbutton,\\ninput:where([type='button']),\\ninput:where([type='reset']),\\ninput:where([type='submit']) {\\n -webkit-appearance: button; /* 1 */\\n background-color: transparent; /* 2 */\\n background-image: none; /* 2 */\\n}\\n\\n/*\\nUse the modern Firefox focus style for all focusable elements.\\n*/\\n\\n:-moz-focusring {\\n outline: auto;\\n}\\n\\n/*\\nRemove the additional `:invalid` styles in Firefox. (https://github.com/mozilla/gecko-dev/blob/2f9eacd9d3d995c937b4251a5557d95d494c9be1/layout/style/res/forms.css#L728-L737)\\n*/\\n\\n:-moz-ui-invalid {\\n box-shadow: none;\\n}\\n\\n/*\\nAdd the correct vertical alignment in Chrome and Firefox.\\n*/\\n\\nprogress {\\n vertical-align: baseline;\\n}\\n\\n/*\\nCorrect the cursor style of increment and decrement buttons in Safari.\\n*/\\n\\n::-webkit-inner-spin-button,\\n::-webkit-outer-spin-button {\\n height: auto;\\n}\\n\\n/*\\n1. Correct the odd appearance in Chrome and Safari.\\n2. Correct the outline style in Safari.\\n*/\\n\\n[type='search'] {\\n -webkit-appearance: textfield; /* 1 */\\n outline-offset: -2px; /* 2 */\\n}\\n\\n/*\\nRemove the inner padding in Chrome and Safari on macOS.\\n*/\\n\\n::-webkit-search-decoration {\\n -webkit-appearance: none;\\n}\\n\\n/*\\n1. Correct the inability to style clickable types in iOS and Safari.\\n2. Change font properties to `inherit` in Safari.\\n*/\\n\\n::-webkit-file-upload-button {\\n -webkit-appearance: button; /* 1 */\\n font: inherit; /* 2 */\\n}\\n\\n/*\\nAdd the correct display in Chrome and Safari.\\n*/\\n\\nsummary {\\n display: list-item;\\n}\\n\\n/*\\nRemoves the default spacing and border for appropriate elements.\\n*/\\n\\nblockquote,\\ndl,\\ndd,\\nh1,\\nh2,\\nh3,\\nh4,\\nh5,\\nh6,\\nhr,\\nfigure,\\np,\\npre {\\n margin: 0;\\n}\\n\\nfieldset {\\n margin: 0;\\n padding: 0;\\n}\\n\\nlegend {\\n padding: 0;\\n}\\n\\nol,\\nul,\\nmenu {\\n list-style: none;\\n margin: 0;\\n padding: 0;\\n}\\n\\n/*\\nReset default styling for dialogs.\\n*/\\ndialog {\\n padding: 0;\\n}\\n\\n/*\\nPrevent resizing textareas horizontally by default.\\n*/\\n\\ntextarea {\\n resize: vertical;\\n}\\n\\n/*\\n1. Reset the default placeholder opacity in Firefox. (https://github.com/tailwindlabs/tailwindcss/issues/3300)\\n2. Set the default placeholder color to the user's configured gray 400 color.\\n*/\\n\\ninput::-moz-placeholder, textarea::-moz-placeholder {\\n opacity: 1; /* 1 */\\n color: #9ca3af; /* 2 */\\n}\\n\\ninput::placeholder,\\ntextarea::placeholder {\\n opacity: 1; /* 1 */\\n color: #9ca3af; /* 2 */\\n}\\n\\n/*\\nSet the default cursor for buttons.\\n*/\\n\\nbutton,\\n[role=\\\"button\\\"] {\\n cursor: pointer;\\n}\\n\\n/*\\nMake sure disabled buttons don't get the pointer cursor.\\n*/\\n:disabled {\\n cursor: default;\\n}\\n\\n/*\\n1. Make replaced elements `display: block` by default. (https://github.com/mozdevs/cssremedy/issues/14)\\n2. Add `vertical-align: middle` to align replaced elements more sensibly by default. (https://github.com/jensimmons/cssremedy/issues/14#issuecomment-634934210)\\n This can trigger a poorly considered lint error in some tools but is included by design.\\n*/\\n\\nimg,\\nsvg,\\nvideo,\\ncanvas,\\naudio,\\niframe,\\nembed,\\nobject {\\n display: block; /* 1 */\\n vertical-align: middle; /* 2 */\\n}\\n\\n/*\\nConstrain images and videos to the parent width and preserve their intrinsic aspect ratio. (https://github.com/mozdevs/cssremedy/issues/14)\\n*/\\n\\nimg,\\nvideo {\\n max-width: 100%;\\n height: auto;\\n}\\n\\n/* Make elements with the HTML hidden attribute stay hidden by default */\\n[hidden]:where(:not([hidden=\\\"until-found\\\"])) {\\n display: none;\\n}\\r\\n.container {\\n width: 100%;\\n}\\r\\n@media (min-width: 640px) {\\n\\n .container {\\n max-width: 640px;\\n }\\n}\\r\\n@media (min-width: 768px) {\\n\\n .container {\\n max-width: 768px;\\n }\\n}\\r\\n@media (min-width: 1024px) {\\n\\n .container {\\n max-width: 1024px;\\n }\\n}\\r\\n@media (min-width: 1280px) {\\n\\n .container {\\n max-width: 1280px;\\n }\\n}\\r\\n@media (min-width: 1536px) {\\n\\n .container {\\n max-width: 1536px;\\n }\\n}\\r\\n.fixed {\\n position: fixed;\\n}\\r\\n.absolute {\\n position: absolute;\\n}\\r\\n.relative {\\n position: relative;\\n}\\r\\n.inset-0 {\\n inset: 0px;\\n}\\r\\n.inset-y-0 {\\n top: 0px;\\n bottom: 0px;\\n}\\r\\n.-top-4 {\\n top: -1rem;\\n}\\r\\n.bottom-10 {\\n bottom: 2.5rem;\\n}\\r\\n.bottom-20 {\\n bottom: 5rem;\\n}\\r\\n.left-0 {\\n left: 0px;\\n}\\r\\n.left-1\\\\/2 {\\n left: 50%;\\n}\\r\\n.left-1\\\\/4 {\\n left: 25%;\\n}\\r\\n.left-10 {\\n left: 2.5rem;\\n}\\r\\n.left-3 {\\n left: 0.75rem;\\n}\\r\\n.left-4 {\\n left: 1rem;\\n}\\r\\n.right-0 {\\n right: 0px;\\n}\\r\\n.right-10 {\\n right: 2.5rem;\\n}\\r\\n.right-20 {\\n right: 5rem;\\n}\\r\\n.top-0 {\\n top: 0px;\\n}\\r\\n.top-1\\\\/2 {\\n top: 50%;\\n}\\r\\n.top-10 {\\n top: 2.5rem;\\n}\\r\\n.top-32 {\\n top: 8rem;\\n}\\r\\n.top-4 {\\n top: 1rem;\\n}\\r\\n.z-10 {\\n z-index: 10;\\n}\\r\\n.z-50 {\\n z-index: 50;\\n}\\r\\n.mx-auto {\\n margin-left: auto;\\n margin-right: auto;\\n}\\r\\n.mb-1 {\\n margin-bottom: 0.25rem;\\n}\\r\\n.mb-12 {\\n margin-bottom: 3rem;\\n}\\r\\n.mb-16 {\\n margin-bottom: 4rem;\\n}\\r\\n.mb-2 {\\n margin-bottom: 0.5rem;\\n}\\r\\n.mb-3 {\\n margin-bottom: 0.75rem;\\n}\\r\\n.mb-4 {\\n margin-bottom: 1rem;\\n}\\r\\n.mb-6 {\\n margin-bottom: 1.5rem;\\n}\\r\\n.mb-8 {\\n margin-bottom: 2rem;\\n}\\r\\n.mb-section {\\n margin-bottom: 4rem;\\n}\\r\\n.ml-1 {\\n margin-left: 0.25rem;\\n}\\r\\n.ml-2 {\\n margin-left: 0.5rem;\\n}\\r\\n.mr-1 {\\n margin-right: 0.25rem;\\n}\\r\\n.mr-2 {\\n margin-right: 0.5rem;\\n}\\r\\n.mr-3 {\\n margin-right: 0.75rem;\\n}\\r\\n.mr-4 {\\n margin-right: 1rem;\\n}\\r\\n.mt-0\\\\.5 {\\n margin-top: 0.125rem;\\n}\\r\\n.mt-1 {\\n margin-top: 0.25rem;\\n}\\r\\n.mt-12 {\\n margin-top: 3rem;\\n}\\r\\n.mt-16 {\\n margin-top: 4rem;\\n}\\r\\n.mt-2 {\\n margin-top: 0.5rem;\\n}\\r\\n.mt-20 {\\n margin-top: 5rem;\\n}\\r\\n.mt-4 {\\n margin-top: 1rem;\\n}\\r\\n.mt-8 {\\n margin-top: 2rem;\\n}\\r\\n.line-clamp-2 {\\n overflow: hidden;\\n display: -webkit-box;\\n -webkit-box-orient: vertical;\\n -webkit-line-clamp: 2;\\n}\\r\\n.line-clamp-3 {\\n overflow: hidden;\\n display: -webkit-box;\\n -webkit-box-orient: vertical;\\n -webkit-line-clamp: 3;\\n}\\r\\n.block {\\n display: block;\\n}\\r\\n.flex {\\n display: flex;\\n}\\r\\n.inline-flex {\\n display: inline-flex;\\n}\\r\\n.grid {\\n display: grid;\\n}\\r\\n.hidden {\\n display: none;\\n}\\r\\n.h-0\\\\.5 {\\n height: 0.125rem;\\n}\\r\\n.h-10 {\\n height: 2.5rem;\\n}\\r\\n.h-12 {\\n height: 3rem;\\n}\\r\\n.h-16 {\\n height: 4rem;\\n}\\r\\n.h-20 {\\n height: 5rem;\\n}\\r\\n.h-24 {\\n height: 6rem;\\n}\\r\\n.h-3 {\\n height: 0.75rem;\\n}\\r\\n.h-4 {\\n height: 1rem;\\n}\\r\\n.h-48 {\\n height: 12rem;\\n}\\r\\n.h-5 {\\n height: 1.25rem;\\n}\\r\\n.h-6 {\\n height: 1.5rem;\\n}\\r\\n.h-8 {\\n height: 2rem;\\n}\\r\\n.h-auto {\\n height: auto;\\n}\\r\\n.h-full {\\n height: 100%;\\n}\\r\\n.min-h-\\\\[60vh\\\\] {\\n min-height: 60vh;\\n}\\r\\n.w-1 {\\n width: 0.25rem;\\n}\\r\\n.w-1\\\\/2 {\\n width: 50%;\\n}\\r\\n.w-10 {\\n width: 2.5rem;\\n}\\r\\n.w-12 {\\n width: 3rem;\\n}\\r\\n.w-16 {\\n width: 4rem;\\n}\\r\\n.w-20 {\\n width: 5rem;\\n}\\r\\n.w-24 {\\n width: 6rem;\\n}\\r\\n.w-3 {\\n width: 0.75rem;\\n}\\r\\n.w-4 {\\n width: 1rem;\\n}\\r\\n.w-5 {\\n width: 1.25rem;\\n}\\r\\n.w-6 {\\n width: 1.5rem;\\n}\\r\\n.w-64 {\\n width: 16rem;\\n}\\r\\n.w-8 {\\n width: 2rem;\\n}\\r\\n.w-full {\\n width: 100%;\\n}\\r\\n.max-w-2xl {\\n max-width: 42rem;\\n}\\r\\n.max-w-3xl {\\n max-width: 48rem;\\n}\\r\\n.max-w-4xl {\\n max-width: 56rem;\\n}\\r\\n.max-w-full {\\n max-width: 100%;\\n}\\r\\n.max-w-md {\\n max-width: 28rem;\\n}\\r\\n.max-w-screen-lg {\\n max-width: 1024px;\\n}\\r\\n.max-w-screen-md {\\n max-width: 768px;\\n}\\r\\n.max-w-screen-xl {\\n max-width: 1280px;\\n}\\r\\n.flex-1 {\\n flex: 1 1 0%;\\n}\\r\\n.flex-shrink-0 {\\n flex-shrink: 0;\\n}\\r\\n.-translate-x-1\\\\/2 {\\n --tw-translate-x: -50%;\\n transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));\\n}\\r\\n.-translate-y-1\\\\/2 {\\n --tw-translate-y: -50%;\\n transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));\\n}\\r\\n.translate-x-0 {\\n --tw-translate-x: 0px;\\n transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));\\n}\\r\\n.translate-x-full {\\n --tw-translate-x: 100%;\\n transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));\\n}\\r\\n.rotate-90 {\\n --tw-rotate: 90deg;\\n transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));\\n}\\r\\n.scale-105 {\\n --tw-scale-x: 1.05;\\n --tw-scale-y: 1.05;\\n transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));\\n}\\r\\n.transform {\\n transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));\\n}\\r\\n@keyframes spin {\\n\\n to {\\n transform: rotate(360deg);\\n }\\n}\\r\\n.animate-spin {\\n animation: spin 1s linear infinite;\\n}\\r\\n.cursor-pointer {\\n cursor: pointer;\\n}\\r\\n.resize-none {\\n resize: none;\\n}\\r\\n.grid-cols-1 {\\n grid-template-columns: repeat(1, minmax(0, 1fr));\\n}\\r\\n.grid-cols-2 {\\n grid-template-columns: repeat(2, minmax(0, 1fr));\\n}\\r\\n.flex-row {\\n flex-direction: row;\\n}\\r\\n.flex-row-reverse {\\n flex-direction: row-reverse;\\n}\\r\\n.flex-col {\\n flex-direction: column;\\n}\\r\\n.flex-wrap {\\n flex-wrap: wrap;\\n}\\r\\n.items-start {\\n align-items: flex-start;\\n}\\r\\n.items-center {\\n align-items: center;\\n}\\r\\n.items-baseline {\\n align-items: baseline;\\n}\\r\\n.justify-center {\\n justify-content: center;\\n}\\r\\n.justify-between {\\n justify-content: space-between;\\n}\\r\\n.gap-1 {\\n gap: 0.25rem;\\n}\\r\\n.gap-12 {\\n gap: 3rem;\\n}\\r\\n.gap-2 {\\n gap: 0.5rem;\\n}\\r\\n.gap-3 {\\n gap: 0.75rem;\\n}\\r\\n.gap-4 {\\n gap: 1rem;\\n}\\r\\n.gap-6 {\\n gap: 1.5rem;\\n}\\r\\n.gap-8 {\\n gap: 2rem;\\n}\\r\\n.space-x-4 > :not([hidden]) ~ :not([hidden]) {\\n --tw-space-x-reverse: 0;\\n margin-right: calc(1rem * var(--tw-space-x-reverse));\\n margin-left: calc(1rem * calc(1 - var(--tw-space-x-reverse)));\\n}\\r\\n.space-x-6 > :not([hidden]) ~ :not([hidden]) {\\n --tw-space-x-reverse: 0;\\n margin-right: calc(1.5rem * var(--tw-space-x-reverse));\\n margin-left: calc(1.5rem * calc(1 - var(--tw-space-x-reverse)));\\n}\\r\\n.space-y-1 > :not([hidden]) ~ :not([hidden]) {\\n --tw-space-y-reverse: 0;\\n margin-top: calc(0.25rem * calc(1 - var(--tw-space-y-reverse)));\\n margin-bottom: calc(0.25rem * var(--tw-space-y-reverse));\\n}\\r\\n.space-y-12 > :not([hidden]) ~ :not([hidden]) {\\n --tw-space-y-reverse: 0;\\n margin-top: calc(3rem * calc(1 - var(--tw-space-y-reverse)));\\n margin-bottom: calc(3rem * var(--tw-space-y-reverse));\\n}\\r\\n.space-y-2 > :not([hidden]) ~ :not([hidden]) {\\n --tw-space-y-reverse: 0;\\n margin-top: calc(0.5rem * calc(1 - var(--tw-space-y-reverse)));\\n margin-bottom: calc(0.5rem * var(--tw-space-y-reverse));\\n}\\r\\n.space-y-3 > :not([hidden]) ~ :not([hidden]) {\\n --tw-space-y-reverse: 0;\\n margin-top: calc(0.75rem * calc(1 - var(--tw-space-y-reverse)));\\n margin-bottom: calc(0.75rem * var(--tw-space-y-reverse));\\n}\\r\\n.space-y-4 > :not([hidden]) ~ :not([hidden]) {\\n --tw-space-y-reverse: 0;\\n margin-top: calc(1rem * calc(1 - var(--tw-space-y-reverse)));\\n margin-bottom: calc(1rem * var(--tw-space-y-reverse));\\n}\\r\\n.space-y-6 > :not([hidden]) ~ :not([hidden]) {\\n --tw-space-y-reverse: 0;\\n margin-top: calc(1.5rem * calc(1 - var(--tw-space-y-reverse)));\\n margin-bottom: calc(1.5rem * var(--tw-space-y-reverse));\\n}\\r\\n.space-y-8 > :not([hidden]) ~ :not([hidden]) {\\n --tw-space-y-reverse: 0;\\n margin-top: calc(2rem * calc(1 - var(--tw-space-y-reverse)));\\n margin-bottom: calc(2rem * var(--tw-space-y-reverse));\\n}\\r\\n.overflow-hidden {\\n overflow: hidden;\\n}\\r\\n.rounded {\\n border-radius: 0.25rem;\\n}\\r\\n.rounded-2xl {\\n border-radius: 1rem;\\n}\\r\\n.rounded-full {\\n border-radius: 9999px;\\n}\\r\\n.rounded-lg {\\n border-radius: 0.5rem;\\n}\\r\\n.rounded-xl {\\n border-radius: 0.75rem;\\n}\\r\\n.border {\\n border-width: 1px;\\n}\\r\\n.border-2 {\\n border-width: 2px;\\n}\\r\\n.border-t {\\n border-top-width: 1px;\\n}\\r\\n.border-gray-100 {\\n --tw-border-opacity: 1;\\n border-color: rgb(243 244 246 / var(--tw-border-opacity, 1));\\n}\\r\\n.border-gray-200 {\\n --tw-border-opacity: 1;\\n border-color: rgb(229 231 235 / var(--tw-border-opacity, 1));\\n}\\r\\n.border-gray-300 {\\n --tw-border-opacity: 1;\\n border-color: rgb(209 213 219 / var(--tw-border-opacity, 1));\\n}\\r\\n.border-gray-700 {\\n --tw-border-opacity: 1;\\n border-color: rgb(55 65 81 / var(--tw-border-opacity, 1));\\n}\\r\\n.border-green-200 {\\n --tw-border-opacity: 1;\\n border-color: rgb(187 247 208 / var(--tw-border-opacity, 1));\\n}\\r\\n.border-primary {\\n --tw-border-opacity: 1;\\n border-color: rgb(51 51 51 / var(--tw-border-opacity, 1));\\n}\\r\\n.border-red-200 {\\n --tw-border-opacity: 1;\\n border-color: rgb(254 202 202 / var(--tw-border-opacity, 1));\\n}\\r\\n.border-white {\\n --tw-border-opacity: 1;\\n border-color: rgb(255 255 255 / var(--tw-border-opacity, 1));\\n}\\r\\n.border-white\\\\/20 {\\n border-color: rgb(255 255 255 / 0.2);\\n}\\r\\n.border-yellow-200 {\\n --tw-border-opacity: 1;\\n border-color: rgb(254 240 138 / var(--tw-border-opacity, 1));\\n}\\r\\n.border-t-transparent {\\n border-top-color: transparent;\\n}\\r\\n.bg-accent {\\n --tw-bg-opacity: 1;\\n background-color: rgb(0 106 255 / var(--tw-bg-opacity, 1));\\n}\\r\\n.bg-accent\\\\/20 {\\n background-color: rgb(0 106 255 / 0.2);\\n}\\r\\n.bg-background {\\n --tw-bg-opacity: 1;\\n background-color: rgb(255 255 255 / var(--tw-bg-opacity, 1));\\n}\\r\\n.bg-black\\\\/10 {\\n background-color: rgb(0 0 0 / 0.1);\\n}\\r\\n.bg-blue-100 {\\n --tw-bg-opacity: 1;\\n background-color: rgb(219 234 254 / var(--tw-bg-opacity, 1));\\n}\\r\\n.bg-blue-50 {\\n --tw-bg-opacity: 1;\\n background-color: rgb(239 246 255 / var(--tw-bg-opacity, 1));\\n}\\r\\n.bg-gray-100 {\\n --tw-bg-opacity: 1;\\n background-color: rgb(243 244 246 / var(--tw-bg-opacity, 1));\\n}\\r\\n.bg-gray-50 {\\n --tw-bg-opacity: 1;\\n background-color: rgb(249 250 251 / var(--tw-bg-opacity, 1));\\n}\\r\\n.bg-gray-900 {\\n --tw-bg-opacity: 1;\\n background-color: rgb(17 24 39 / var(--tw-bg-opacity, 1));\\n}\\r\\n.bg-green-100 {\\n --tw-bg-opacity: 1;\\n background-color: rgb(220 252 231 / var(--tw-bg-opacity, 1));\\n}\\r\\n.bg-green-50 {\\n --tw-bg-opacity: 1;\\n background-color: rgb(240 253 244 / var(--tw-bg-opacity, 1));\\n}\\r\\n.bg-green-500 {\\n --tw-bg-opacity: 1;\\n background-color: rgb(34 197 94 / var(--tw-bg-opacity, 1));\\n}\\r\\n.bg-orange-100 {\\n --tw-bg-opacity: 1;\\n background-color: rgb(255 237 213 / var(--tw-bg-opacity, 1));\\n}\\r\\n.bg-purple-100 {\\n --tw-bg-opacity: 1;\\n background-color: rgb(243 232 255 / var(--tw-bg-opacity, 1));\\n}\\r\\n.bg-purple-500 {\\n --tw-bg-opacity: 1;\\n background-color: rgb(168 85 247 / var(--tw-bg-opacity, 1));\\n}\\r\\n.bg-red-100 {\\n --tw-bg-opacity: 1;\\n background-color: rgb(254 226 226 / var(--tw-bg-opacity, 1));\\n}\\r\\n.bg-red-50 {\\n --tw-bg-opacity: 1;\\n background-color: rgb(254 242 242 / var(--tw-bg-opacity, 1));\\n}\\r\\n.bg-teal-100 {\\n --tw-bg-opacity: 1;\\n background-color: rgb(204 251 241 / var(--tw-bg-opacity, 1));\\n}\\r\\n.bg-white {\\n --tw-bg-opacity: 1;\\n background-color: rgb(255 255 255 / var(--tw-bg-opacity, 1));\\n}\\r\\n.bg-white\\\\/10 {\\n background-color: rgb(255 255 255 / 0.1);\\n}\\r\\n.bg-white\\\\/20 {\\n background-color: rgb(255 255 255 / 0.2);\\n}\\r\\n.bg-white\\\\/5 {\\n background-color: rgb(255 255 255 / 0.05);\\n}\\r\\n.bg-white\\\\/80 {\\n background-color: rgb(255 255 255 / 0.8);\\n}\\r\\n.bg-yellow-50 {\\n --tw-bg-opacity: 1;\\n background-color: rgb(254 252 232 / var(--tw-bg-opacity, 1));\\n}\\r\\n.bg-gradient-to-br {\\n background-image: linear-gradient(to bottom right, var(--tw-gradient-stops));\\n}\\r\\n.bg-gradient-to-r {\\n background-image: linear-gradient(to right, var(--tw-gradient-stops));\\n}\\r\\n.from-accent {\\n --tw-gradient-from: #006AFF var(--tw-gradient-from-position);\\n --tw-gradient-to: rgb(0 106 255 / 0) var(--tw-gradient-to-position);\\n --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);\\n}\\r\\n.from-accent\\\\/10 {\\n --tw-gradient-from: rgb(0 106 255 / 0.1) var(--tw-gradient-from-position);\\n --tw-gradient-to: rgb(0 106 255 / 0) var(--tw-gradient-to-position);\\n --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);\\n}\\r\\n.from-blue-50 {\\n --tw-gradient-from: #eff6ff var(--tw-gradient-from-position);\\n --tw-gradient-to: rgb(239 246 255 / 0) var(--tw-gradient-to-position);\\n --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);\\n}\\r\\n.from-gray-50 {\\n --tw-gradient-from: #f9fafb var(--tw-gradient-from-position);\\n --tw-gradient-to: rgb(249 250 251 / 0) var(--tw-gradient-to-position);\\n --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);\\n}\\r\\n.from-green-50 {\\n --tw-gradient-from: #f0fdf4 var(--tw-gradient-from-position);\\n --tw-gradient-to: rgb(240 253 244 / 0) var(--tw-gradient-to-position);\\n --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);\\n}\\r\\n.from-orange-50 {\\n --tw-gradient-from: #fff7ed var(--tw-gradient-from-position);\\n --tw-gradient-to: rgb(255 247 237 / 0) var(--tw-gradient-to-position);\\n --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);\\n}\\r\\n.from-purple-50 {\\n --tw-gradient-from: #faf5ff var(--tw-gradient-from-position);\\n --tw-gradient-to: rgb(250 245 255 / 0) var(--tw-gradient-to-position);\\n --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);\\n}\\r\\n.from-yellow-300 {\\n --tw-gradient-from: #fde047 var(--tw-gradient-from-position);\\n --tw-gradient-to: rgb(253 224 71 / 0) var(--tw-gradient-to-position);\\n --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);\\n}\\r\\n.via-blue-600 {\\n --tw-gradient-to: rgb(37 99 235 / 0) var(--tw-gradient-to-position);\\n --tw-gradient-stops: var(--tw-gradient-from), #2563eb var(--tw-gradient-via-position), var(--tw-gradient-to);\\n}\\r\\n.to-accent\\\\/20 {\\n --tw-gradient-to: rgb(0 106 255 / 0.2) var(--tw-gradient-to-position);\\n}\\r\\n.to-blue-100 {\\n --tw-gradient-to: #dbeafe var(--tw-gradient-to-position);\\n}\\r\\n.to-blue-50 {\\n --tw-gradient-to: #eff6ff var(--tw-gradient-to-position);\\n}\\r\\n.to-blue-600 {\\n --tw-gradient-to: #2563eb var(--tw-gradient-to-position);\\n}\\r\\n.to-gray-100 {\\n --tw-gradient-to: #f3f4f6 var(--tw-gradient-to-position);\\n}\\r\\n.to-indigo-100 {\\n --tw-gradient-to: #e0e7ff var(--tw-gradient-to-position);\\n}\\r\\n.to-indigo-50 {\\n --tw-gradient-to: #eef2ff var(--tw-gradient-to-position);\\n}\\r\\n.to-orange-300 {\\n --tw-gradient-to: #fdba74 var(--tw-gradient-to-position);\\n}\\r\\n.to-purple-600 {\\n --tw-gradient-to: #9333ea var(--tw-gradient-to-position);\\n}\\r\\n.to-red-100 {\\n --tw-gradient-to: #fee2e2 var(--tw-gradient-to-position);\\n}\\r\\n.bg-clip-text {\\n -webkit-background-clip: text;\\n background-clip: text;\\n}\\r\\n.p-2 {\\n padding: 0.5rem;\\n}\\r\\n.p-3 {\\n padding: 0.75rem;\\n}\\r\\n.p-4 {\\n padding: 1rem;\\n}\\r\\n.p-6 {\\n padding: 1.5rem;\\n}\\r\\n.p-8 {\\n padding: 2rem;\\n}\\r\\n.px-2 {\\n padding-left: 0.5rem;\\n padding-right: 0.5rem;\\n}\\r\\n.px-3 {\\n padding-left: 0.75rem;\\n padding-right: 0.75rem;\\n}\\r\\n.px-4 {\\n padding-left: 1rem;\\n padding-right: 1rem;\\n}\\r\\n.px-6 {\\n padding-left: 1.5rem;\\n padding-right: 1.5rem;\\n}\\r\\n.px-8 {\\n padding-left: 2rem;\\n padding-right: 2rem;\\n}\\r\\n.py-1 {\\n padding-top: 0.25rem;\\n padding-bottom: 0.25rem;\\n}\\r\\n.py-12 {\\n padding-top: 3rem;\\n padding-bottom: 3rem;\\n}\\r\\n.py-16 {\\n padding-top: 4rem;\\n padding-bottom: 4rem;\\n}\\r\\n.py-2 {\\n padding-top: 0.5rem;\\n padding-bottom: 0.5rem;\\n}\\r\\n.py-20 {\\n padding-top: 5rem;\\n padding-bottom: 5rem;\\n}\\r\\n.py-3 {\\n padding-top: 0.75rem;\\n padding-bottom: 0.75rem;\\n}\\r\\n.py-4 {\\n padding-top: 1rem;\\n padding-bottom: 1rem;\\n}\\r\\n.py-section {\\n padding-top: 4rem;\\n padding-bottom: 4rem;\\n}\\r\\n.pb-12 {\\n padding-bottom: 3rem;\\n}\\r\\n.pb-24 {\\n padding-bottom: 6rem;\\n}\\r\\n.pb-6 {\\n padding-bottom: 1.5rem;\\n}\\r\\n.pl-10 {\\n padding-left: 2.5rem;\\n}\\r\\n.pl-8 {\\n padding-left: 2rem;\\n}\\r\\n.pr-4 {\\n padding-right: 1rem;\\n}\\r\\n.pr-8 {\\n padding-right: 2rem;\\n}\\r\\n.pt-16 {\\n padding-top: 4rem;\\n}\\r\\n.pt-4 {\\n padding-top: 1rem;\\n}\\r\\n.pt-6 {\\n padding-top: 1.5rem;\\n}\\r\\n.pt-8 {\\n padding-top: 2rem;\\n}\\r\\n.pb-8 {\\n padding-bottom: 2rem;\\n}\\r\\n.text-left {\\n text-align: left;\\n}\\r\\n.text-center {\\n text-align: center;\\n}\\r\\n.text-right {\\n text-align: right;\\n}\\r\\n.text-2xl {\\n font-size: 1.5rem;\\n line-height: 2rem;\\n}\\r\\n.text-3xl {\\n font-size: 1.875rem;\\n line-height: 2.25rem;\\n}\\r\\n.text-4xl {\\n font-size: 2.25rem;\\n line-height: 2.5rem;\\n}\\r\\n.text-5xl {\\n font-size: 3rem;\\n line-height: 1;\\n}\\r\\n.text-base {\\n font-size: 1rem;\\n line-height: 1.5rem;\\n}\\r\\n.text-lg {\\n font-size: 1.125rem;\\n line-height: 1.75rem;\\n}\\r\\n.text-sm {\\n font-size: 0.875rem;\\n line-height: 1.25rem;\\n}\\r\\n.text-xl {\\n font-size: 1.25rem;\\n line-height: 1.75rem;\\n}\\r\\n.text-xs {\\n font-size: 0.75rem;\\n line-height: 1rem;\\n}\\r\\n.font-bold {\\n font-weight: 700;\\n}\\r\\n.font-medium {\\n font-weight: 500;\\n}\\r\\n.font-semibold {\\n font-weight: 600;\\n}\\r\\n.italic {\\n font-style: italic;\\n}\\r\\n.leading-relaxed {\\n line-height: 1.625;\\n}\\r\\n.text-accent {\\n --tw-text-opacity: 1;\\n color: rgb(0 106 255 / var(--tw-text-opacity, 1));\\n}\\r\\n.text-blue-100 {\\n --tw-text-opacity: 1;\\n color: rgb(219 234 254 / var(--tw-text-opacity, 1));\\n}\\r\\n.text-blue-200 {\\n --tw-text-opacity: 1;\\n color: rgb(191 219 254 / var(--tw-text-opacity, 1));\\n}\\r\\n.text-blue-500 {\\n --tw-text-opacity: 1;\\n color: rgb(59 130 246 / var(--tw-text-opacity, 1));\\n}\\r\\n.text-blue-600 {\\n --tw-text-opacity: 1;\\n color: rgb(37 99 235 / var(--tw-text-opacity, 1));\\n}\\r\\n.text-gray-300 {\\n --tw-text-opacity: 1;\\n color: rgb(209 213 219 / var(--tw-text-opacity, 1));\\n}\\r\\n.text-gray-400 {\\n --tw-text-opacity: 1;\\n color: rgb(156 163 175 / var(--tw-text-opacity, 1));\\n}\\r\\n.text-gray-500 {\\n --tw-text-opacity: 1;\\n color: rgb(107 114 128 / var(--tw-text-opacity, 1));\\n}\\r\\n.text-gray-600 {\\n --tw-text-opacity: 1;\\n color: rgb(75 85 99 / var(--tw-text-opacity, 1));\\n}\\r\\n.text-gray-700 {\\n --tw-text-opacity: 1;\\n color: rgb(55 65 81 / var(--tw-text-opacity, 1));\\n}\\r\\n.text-green-300 {\\n --tw-text-opacity: 1;\\n color: rgb(134 239 172 / var(--tw-text-opacity, 1));\\n}\\r\\n.text-green-500 {\\n --tw-text-opacity: 1;\\n color: rgb(34 197 94 / var(--tw-text-opacity, 1));\\n}\\r\\n.text-green-600 {\\n --tw-text-opacity: 1;\\n color: rgb(22 163 74 / var(--tw-text-opacity, 1));\\n}\\r\\n.text-green-700 {\\n --tw-text-opacity: 1;\\n color: rgb(21 128 61 / var(--tw-text-opacity, 1));\\n}\\r\\n.text-green-800 {\\n --tw-text-opacity: 1;\\n color: rgb(22 101 52 / var(--tw-text-opacity, 1));\\n}\\r\\n.text-indigo-500 {\\n --tw-text-opacity: 1;\\n color: rgb(99 102 241 / var(--tw-text-opacity, 1));\\n}\\r\\n.text-orange-500 {\\n --tw-text-opacity: 1;\\n color: rgb(249 115 22 / var(--tw-text-opacity, 1));\\n}\\r\\n.text-orange-600 {\\n --tw-text-opacity: 1;\\n color: rgb(234 88 12 / var(--tw-text-opacity, 1));\\n}\\r\\n.text-primary {\\n --tw-text-opacity: 1;\\n color: rgb(51 51 51 / var(--tw-text-opacity, 1));\\n}\\r\\n.text-purple-300 {\\n --tw-text-opacity: 1;\\n color: rgb(216 180 254 / var(--tw-text-opacity, 1));\\n}\\r\\n.text-purple-500 {\\n --tw-text-opacity: 1;\\n color: rgb(168 85 247 / var(--tw-text-opacity, 1));\\n}\\r\\n.text-purple-600 {\\n --tw-text-opacity: 1;\\n color: rgb(147 51 234 / var(--tw-text-opacity, 1));\\n}\\r\\n.text-red-500 {\\n --tw-text-opacity: 1;\\n color: rgb(239 68 68 / var(--tw-text-opacity, 1));\\n}\\r\\n.text-red-600 {\\n --tw-text-opacity: 1;\\n color: rgb(220 38 38 / var(--tw-text-opacity, 1));\\n}\\r\\n.text-red-700 {\\n --tw-text-opacity: 1;\\n color: rgb(185 28 28 / var(--tw-text-opacity, 1));\\n}\\r\\n.text-teal-600 {\\n --tw-text-opacity: 1;\\n color: rgb(13 148 136 / var(--tw-text-opacity, 1));\\n}\\r\\n.text-transparent {\\n color: transparent;\\n}\\r\\n.text-white {\\n --tw-text-opacity: 1;\\n color: rgb(255 255 255 / var(--tw-text-opacity, 1));\\n}\\r\\n.text-yellow-300 {\\n --tw-text-opacity: 1;\\n color: rgb(253 224 71 / var(--tw-text-opacity, 1));\\n}\\r\\n.text-yellow-500 {\\n --tw-text-opacity: 1;\\n color: rgb(234 179 8 / var(--tw-text-opacity, 1));\\n}\\r\\n.text-yellow-600 {\\n --tw-text-opacity: 1;\\n color: rgb(202 138 4 / var(--tw-text-opacity, 1));\\n}\\r\\n.text-yellow-700 {\\n --tw-text-opacity: 1;\\n color: rgb(161 98 7 / var(--tw-text-opacity, 1));\\n}\\r\\n.text-yellow-800 {\\n --tw-text-opacity: 1;\\n color: rgb(133 77 14 / var(--tw-text-opacity, 1));\\n}\\r\\n.line-through {\\n text-decoration-line: line-through;\\n}\\r\\n.opacity-80 {\\n opacity: 0.8;\\n}\\r\\n.shadow-lg {\\n --tw-shadow: 0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1);\\n --tw-shadow-colored: 0 10px 15px -3px var(--tw-shadow-color), 0 4px 6px -4px var(--tw-shadow-color);\\n box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);\\n}\\r\\n.shadow-md {\\n --tw-shadow: 0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1);\\n --tw-shadow-colored: 0 4px 6px -1px var(--tw-shadow-color), 0 2px 4px -2px var(--tw-shadow-color);\\n box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);\\n}\\r\\n.shadow-sm {\\n --tw-shadow: 0 1px 2px 0 rgb(0 0 0 / 0.05);\\n --tw-shadow-colored: 0 1px 2px 0 var(--tw-shadow-color);\\n box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);\\n}\\r\\n.outline-none {\\n outline: 2px solid transparent;\\n outline-offset: 2px;\\n}\\r\\n.ring-2 {\\n --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);\\n --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);\\n box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000);\\n}\\r\\n.ring-accent {\\n --tw-ring-opacity: 1;\\n --tw-ring-color: rgb(0 106 255 / var(--tw-ring-opacity, 1));\\n}\\r\\n.filter {\\n filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow);\\n}\\r\\n.backdrop-blur-sm {\\n --tw-backdrop-blur: blur(4px);\\n -webkit-backdrop-filter: var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);\\n backdrop-filter: var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);\\n}\\r\\n.transition {\\n transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, -webkit-backdrop-filter;\\n transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter;\\n transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter, -webkit-backdrop-filter;\\n transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\\n transition-duration: 150ms;\\n}\\r\\n.transition-all {\\n transition-property: all;\\n transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\\n transition-duration: 150ms;\\n}\\r\\n.transition-colors {\\n transition-property: color, background-color, border-color, text-decoration-color, fill, stroke;\\n transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\\n transition-duration: 150ms;\\n}\\r\\n.transition-shadow {\\n transition-property: box-shadow;\\n transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\\n transition-duration: 150ms;\\n}\\r\\n.transition-transform {\\n transition-property: transform;\\n transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\\n transition-duration: 150ms;\\n}\\r\\n.duration-300 {\\n transition-duration: 300ms;\\n}\\r\\n\\r\\nbody {\\n --tw-bg-opacity: 1;\\n background-color: rgb(255 255 255 / var(--tw-bg-opacity, 1));\\n font-family: Inter, sans-serif;\\n --tw-text-opacity: 1;\\n color: rgb(51 51 51 / var(--tw-text-opacity, 1));\\n}\\r\\n\\r\\nmain {\\n display: flex;\\n flex-direction: column;\\n gap: 4rem;\\n}\\r\\n\\r\\n/* 文本截断样式 */\\r\\n.line-clamp-2 {\\r\\n display: -webkit-box;\\r\\n -webkit-line-clamp: 2;\\r\\n -webkit-box-orient: vertical;\\r\\n overflow: hidden;\\r\\n}\\r\\n\\r\\n.line-clamp-3 {\\r\\n display: -webkit-box;\\r\\n -webkit-line-clamp: 3;\\r\\n -webkit-box-orient: vertical;\\r\\n overflow: hidden;\\r\\n}\\r\\n\\r\\n/* 自定义滚动条 */\\r\\n::-webkit-scrollbar {\\r\\n width: 8px;\\r\\n}\\r\\n\\r\\n::-webkit-scrollbar-track {\\r\\n background: #f1f1f1;\\r\\n border-radius: 4px;\\r\\n}\\r\\n\\r\\n::-webkit-scrollbar-thumb {\\r\\n background: #c1c1c1;\\r\\n border-radius: 4px;\\r\\n}\\r\\n\\r\\n::-webkit-scrollbar-thumb:hover {\\r\\n background: #a8a8a8;\\r\\n}\\r\\n\\r\\n/* 平滑滚动 */\\r\\nhtml {\\r\\n scroll-behavior: smooth;\\r\\n}\\r\\n\\r\\n/* 焦点样式 */\\r\\n.focus\\\\:ring-2:focus {\\r\\n --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);\\r\\n --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);\\r\\n box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000);\\r\\n}\\r\\n.hover\\\\:scale-105:hover {\\n --tw-scale-x: 1.05;\\n --tw-scale-y: 1.05;\\n transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));\\n}\\r\\n.hover\\\\:border-accent:hover {\\n --tw-border-opacity: 1;\\n border-color: rgb(0 106 255 / var(--tw-border-opacity, 1));\\n}\\r\\n.hover\\\\:border-accent\\\\/20:hover {\\n border-color: rgb(0 106 255 / 0.2);\\n}\\r\\n.hover\\\\:bg-accent:hover {\\n --tw-bg-opacity: 1;\\n background-color: rgb(0 106 255 / var(--tw-bg-opacity, 1));\\n}\\r\\n.hover\\\\:bg-blue-700:hover {\\n --tw-bg-opacity: 1;\\n background-color: rgb(29 78 216 / var(--tw-bg-opacity, 1));\\n}\\r\\n.hover\\\\:bg-gray-100:hover {\\n --tw-bg-opacity: 1;\\n background-color: rgb(243 244 246 / var(--tw-bg-opacity, 1));\\n}\\r\\n.hover\\\\:bg-gray-50:hover {\\n --tw-bg-opacity: 1;\\n background-color: rgb(249 250 251 / var(--tw-bg-opacity, 1));\\n}\\r\\n.hover\\\\:bg-primary:hover {\\n --tw-bg-opacity: 1;\\n background-color: rgb(51 51 51 / var(--tw-bg-opacity, 1));\\n}\\r\\n.hover\\\\:bg-white:hover {\\n --tw-bg-opacity: 1;\\n background-color: rgb(255 255 255 / var(--tw-bg-opacity, 1));\\n}\\r\\n.hover\\\\:from-blue-600:hover {\\n --tw-gradient-from: #2563eb var(--tw-gradient-from-position);\\n --tw-gradient-to: rgb(37 99 235 / 0) var(--tw-gradient-to-position);\\n --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);\\n}\\r\\n.hover\\\\:to-accent:hover {\\n --tw-gradient-to: #006AFF var(--tw-gradient-to-position);\\n}\\r\\n.hover\\\\:text-accent:hover {\\n --tw-text-opacity: 1;\\n color: rgb(0 106 255 / var(--tw-text-opacity, 1));\\n}\\r\\n.hover\\\\:text-blue-700:hover {\\n --tw-text-opacity: 1;\\n color: rgb(29 78 216 / var(--tw-text-opacity, 1));\\n}\\r\\n.hover\\\\:text-primary:hover {\\n --tw-text-opacity: 1;\\n color: rgb(51 51 51 / var(--tw-text-opacity, 1));\\n}\\r\\n.hover\\\\:text-white:hover {\\n --tw-text-opacity: 1;\\n color: rgb(255 255 255 / var(--tw-text-opacity, 1));\\n}\\r\\n.hover\\\\:underline:hover {\\n text-decoration-line: underline;\\n}\\r\\n.hover\\\\:opacity-90:hover {\\n opacity: 0.9;\\n}\\r\\n.hover\\\\:shadow-2xl:hover {\\n --tw-shadow: 0 25px 50px -12px rgb(0 0 0 / 0.25);\\n --tw-shadow-colored: 0 25px 50px -12px var(--tw-shadow-color);\\n box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);\\n}\\r\\n.hover\\\\:shadow-lg:hover {\\n --tw-shadow: 0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1);\\n --tw-shadow-colored: 0 10px 15px -3px var(--tw-shadow-color), 0 4px 6px -4px var(--tw-shadow-color);\\n box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);\\n}\\r\\n.hover\\\\:shadow-xl:hover {\\n --tw-shadow: 0 20px 25px -5px rgb(0 0 0 / 0.1), 0 8px 10px -6px rgb(0 0 0 / 0.1);\\n --tw-shadow-colored: 0 20px 25px -5px var(--tw-shadow-color), 0 8px 10px -6px var(--tw-shadow-color);\\n box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);\\n}\\r\\n.focus\\\\:border-transparent:focus {\\n border-color: transparent;\\n}\\r\\n.focus\\\\:outline-none:focus {\\n outline: 2px solid transparent;\\n outline-offset: 2px;\\n}\\r\\n.focus\\\\:ring-2:focus {\\n --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);\\n --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);\\n box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000);\\n}\\r\\n.focus\\\\:ring-accent:focus {\\n --tw-ring-opacity: 1;\\n --tw-ring-color: rgb(0 106 255 / var(--tw-ring-opacity, 1));\\n}\\r\\n.disabled\\\\:cursor-not-allowed:disabled {\\n cursor: not-allowed;\\n}\\r\\n.disabled\\\\:opacity-50:disabled {\\n opacity: 0.5;\\n}\\r\\n.group:hover .group-hover\\\\:translate-x-1 {\\n --tw-translate-x: 0.25rem;\\n transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));\\n}\\r\\n.group:hover .group-hover\\\\:scale-110 {\\n --tw-scale-x: 1.1;\\n --tw-scale-y: 1.1;\\n transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));\\n}\\r\\n.group:hover .group-hover\\\\:gap-3 {\\n gap: 0.75rem;\\n}\\r\\n.group:hover .group-hover\\\\:bg-accent {\\n --tw-bg-opacity: 1;\\n background-color: rgb(0 106 255 / var(--tw-bg-opacity, 1));\\n}\\r\\n.group:hover .group-hover\\\\:text-accent {\\n --tw-text-opacity: 1;\\n color: rgb(0 106 255 / var(--tw-text-opacity, 1));\\n}\\r\\n.group:hover .group-hover\\\\:text-white {\\n --tw-text-opacity: 1;\\n color: rgb(255 255 255 / var(--tw-text-opacity, 1));\\n}\\r\\n@media (min-width: 640px) {\\n\\n .sm\\\\:flex-row {\\n flex-direction: row;\\n }\\n}\\r\\n@media (min-width: 768px) {\\n\\n .md\\\\:col-span-2 {\\n grid-column: span 2 / span 2;\\n }\\n\\n .md\\\\:mt-0 {\\n margin-top: 0px;\\n }\\n\\n .md\\\\:flex {\\n display: flex;\\n }\\n\\n .md\\\\:hidden {\\n display: none;\\n }\\n\\n .md\\\\:w-1\\\\/2 {\\n width: 50%;\\n }\\n\\n .md\\\\:grid-cols-2 {\\n grid-template-columns: repeat(2, minmax(0, 1fr));\\n }\\n\\n .md\\\\:grid-cols-3 {\\n grid-template-columns: repeat(3, minmax(0, 1fr));\\n }\\n\\n .md\\\\:grid-cols-4 {\\n grid-template-columns: repeat(4, minmax(0, 1fr));\\n }\\n\\n .md\\\\:grid-cols-5 {\\n grid-template-columns: repeat(5, minmax(0, 1fr));\\n }\\n\\n .md\\\\:flex-row {\\n flex-direction: row;\\n }\\n\\n .md\\\\:p-12 {\\n padding: 3rem;\\n }\\n\\n .md\\\\:text-3xl {\\n font-size: 1.875rem;\\n line-height: 2.25rem;\\n }\\n\\n .md\\\\:text-4xl {\\n font-size: 2.25rem;\\n line-height: 2.5rem;\\n }\\n\\n .md\\\\:text-5xl {\\n font-size: 3rem;\\n line-height: 1;\\n }\\n}\\r\\n@media (min-width: 1024px) {\\n\\n .lg\\\\:col-span-2 {\\n grid-column: span 2 / span 2;\\n }\\n\\n .lg\\\\:grid-cols-2 {\\n grid-template-columns: repeat(2, minmax(0, 1fr));\\n }\\n\\n .lg\\\\:grid-cols-3 {\\n grid-template-columns: repeat(3, minmax(0, 1fr));\\n }\\n\\n .lg\\\\:grid-cols-4 {\\n grid-template-columns: repeat(4, minmax(0, 1fr));\\n }\\n\\n .lg\\\\:grid-cols-6 {\\n grid-template-columns: repeat(6, minmax(0, 1fr));\\n }\\n\\n .lg\\\\:flex-row {\\n flex-direction: row;\\n }\\n}\\r\\n@media (min-width: 1280px) {\\n\\n .xl\\\\:grid-cols-3 {\\n grid-template-columns: repeat(3, minmax(0, 1fr));\\n }\\n}\", \"\",{\"version\":3,\"sources\":[\"webpack://styles/globals.css\"],\"names\":[],\"mappings\":\"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B;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA,iBAAmB;EAAnB;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA,gBAAmB;EAAnB,oBAAmB;EAAnB,4BAAmB;EAAnB;AAAmB;AAAnB;EAAA,gBAAmB;EAAnB,oBAAmB;EAAnB,4BAAmB;EAAnB;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AA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AAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA,iBAAmB;EAAnB;AAAmB;AAAnB;EAAA,mBAAmB;EAAnB;AAAmB;AAAnB;EAAA,kBAAmB;EAAnB;AAAmB;AAAnB;EAAA,eAAmB;EAAnB;AAAmB;AAAnB;EAAA,eAAmB;EAAnB;AAAmB;AAAnB;EAAA,mBAAmB;EAAnB;AAAmB;AAAnB;EAAA,mBAAmB;EAAnB;AAAmB;AAAnB;EAAA,kBAAmB;EAAnB;AAAmB;AAAnB;EAAA,kBAAmB;EAAnB;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA,oBAAmB;EAAnB;AAAmB;AAAnB;EAAA,oBAAmB;EAAnB;AAAmB;AAAnB;EAAA,oBAAmB;EAAnB;AAAmB;AAAnB;EAAA,oBAAmB;EAAnB;AAAmB;AAAnB;EAAA,oBAAmB;EAAnB;AAAmB;AAAnB;EAAA,oBAAmB;EAAnB;AAAmB;AAAnB;EAAA,oBAAmB;EAAnB;AAAmB;AAAnB;EAAA,oBAAmB;EAAnB;AAAmB;AAAnB;EAAA,oBAAmB;EAAnB;AAAmB;AAAnB;EAAA,oBAAmB;EAAnB;AAAmB;AAAnB;EAAA,oBAAmB;EAAnB;AAAmB;AAAnB;EAAA,oBAAmB;EAAnB;AAAmB;AAAnB;EAAA,oBAAmB;EAAnB;AAAmB;AAAnB;EAAA,oBAAmB;EAAnB;AAAmB;AAAnB;EAAA,oBAAmB;EAAnB;AAAmB;AAAnB;EAAA,oBAAmB;EAAnB;AAAmB;AAAnB;EAAA,oBAAmB;EAAnB;AAAmB;AAAnB;EAAA,oBAAmB;EAAnB;AAAmB;AAAnB;EAAA,oBAAmB;EAAnB;AAAmB;AAAnB;EAAA,oBAAmB;EAAnB;AAAmB;AAAnB;EAAA,oBAAm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\",\"sourcesContent\":[\"@tailwind base;\\r\\n@tailwind components;\\r\\n@tailwind utilities;\\r\\n\\r\\nbody {\\r\\n @apply bg-background text-primary font-sans;\\r\\n}\\r\\n\\r\\nmain {\\r\\n @apply flex flex-col gap-section;\\r\\n}\\r\\n\\r\\n/* 文本截断样式 */\\r\\n.line-clamp-2 {\\r\\n display: -webkit-box;\\r\\n -webkit-line-clamp: 2;\\r\\n -webkit-box-orient: vertical;\\r\\n overflow: hidden;\\r\\n}\\r\\n\\r\\n.line-clamp-3 {\\r\\n display: -webkit-box;\\r\\n -webkit-line-clamp: 3;\\r\\n -webkit-box-orient: vertical;\\r\\n overflow: hidden;\\r\\n}\\r\\n\\r\\n/* 自定义滚动条 */\\r\\n::-webkit-scrollbar {\\r\\n width: 8px;\\r\\n}\\r\\n\\r\\n::-webkit-scrollbar-track {\\r\\n background: #f1f1f1;\\r\\n border-radius: 4px;\\r\\n}\\r\\n\\r\\n::-webkit-scrollbar-thumb {\\r\\n background: #c1c1c1;\\r\\n border-radius: 4px;\\r\\n}\\r\\n\\r\\n::-webkit-scrollbar-thumb:hover {\\r\\n background: #a8a8a8;\\r\\n}\\r\\n\\r\\n/* 平滑滚动 */\\r\\nhtml {\\r\\n scroll-behavior: smooth;\\r\\n}\\r\\n\\r\\n/* 焦点样式 */\\r\\n.focus\\\\:ring-2:focus {\\r\\n --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);\\r\\n --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);\\r\\n box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000);\\r\\n}\"],\"sourceRoot\":\"\"}]);\n// Exports\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (___CSS_LOADER_EXPORT___);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvYnVpbGQvd2VicGFjay9sb2FkZXJzL2Nzcy1sb2FkZXIvc3JjL2luZGV4LmpzPz9ydWxlU2V0WzFdLnJ1bGVzWzddLm9uZU9mWzEzXS51c2VbMV0hLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2J1aWxkL3dlYnBhY2svbG9hZGVycy9wb3N0Y3NzLWxvYWRlci9zcmMvaW5kZXguanM/P3J1bGVTZXRbMV0ucnVsZXNbN10ub25lT2ZbMTNdLnVzZVsyXSEuL3N0eWxlcy9nbG9iYWxzLmNzcyIsIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQTtBQUN3SDtBQUN4SCw4QkFBOEIsa0hBQTJCO0FBQ3pEO0FBQ0EsZ0VBQWdFLDZCQUE2Qiw2QkFBNkIsd0JBQXdCLHdCQUF3QixtQkFBbUIsbUJBQW1CLG1CQUFtQixvQkFBb0Isb0JBQW9CLGtCQUFrQixrQkFBa0IsdUJBQXVCLDJDQUEyQyxtQ0FBbUMsa0NBQWtDLGlDQUFpQyxvQkFBb0IseUJBQXlCLDJCQUEyQiw0QkFBNEIsNkJBQTZCLHVCQUF1QixnQ0FBZ0MsaUNBQWlDLDJDQUEyQyx1Q0FBdUMsZ0NBQWdDLDJCQUEyQixtQ0FBbUMsaUJBQWlCLHVCQUF1QixxQkFBcUIsc0JBQXNCLHVCQUF1QixtQkFBbUIscUJBQXFCLGtCQUFrQix3QkFBd0IsMEJBQTBCLGdDQUFnQyw4QkFBOEIsK0JBQStCLGdDQUFnQyw0QkFBNEIsNkJBQTZCLDhCQUE4QiwyQkFBMkIseUJBQXlCLDJCQUEyQiwwQkFBMEIsMEJBQTBCLEdBQUcsZ0JBQWdCLDZCQUE2Qiw2QkFBNkIsd0JBQXdCLHdCQUF3QixtQkFBbUIsbUJBQW1CLG1CQUFtQixvQkFBb0Isb0JBQW9CLGtCQUFrQixrQkFBa0IsdUJBQXVCLDJDQUEyQyxtQ0FBbUMsa0NBQWtDLGlDQUFpQyxvQkFBb0IseUJBQXlCLDJCQUEyQiw0QkFBNEIsNkJBQTZCLHVCQUF1QixnQ0FBZ0MsaUNBQWlDLDJDQUEyQyx1Q0FB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LGNBQWMsd0JBQXdCLHlCQUF5QixHQUFHLGNBQWMsdUJBQXVCLHlCQUF5QixHQUFHLGNBQWMsdUJBQXVCLHNCQUFzQixHQUFHLGdCQUFnQixxQkFBcUIsR0FBRyxrQkFBa0IscUJBQXFCLEdBQUcsb0JBQW9CLHFCQUFxQixHQUFHLGFBQWEsdUJBQXVCLEdBQUcsc0JBQXNCLHVCQUF1QixHQUFHLGtCQUFrQix5QkFBeUIsc0RBQXNELEdBQUcsb0JBQW9CLHlCQUF5Qix3REFBd0QsR0FBRyxvQkFBb0IseUJBQXlCLHdEQUF3RCxHQUFHLG9CQUFvQix5QkFBeUIsdURBQXVELEdBQUcsb0JBQW9CLHlCQUF5QixzREFBc0QsR0FBRyxvQkFBb0IseUJBQXlCLHdEQUF3RCxHQUFHLG9CQUFvQix5QkFBeUIsd0RBQXdELEdBQUcsb0JBQW9CLHlCQUF5Qix3REFBd0QsR0FBRyxvQkFBb0IseUJBQXlCLHFEQUFxRCxHQUFHLG9CQUFvQix5QkFBeUIscURBQXFELEdBQUcscUJBQXFCLHlCQUF5Qix3REFBd0QsR0FBRyxxQkFBcUIseUJBQXlCLHNEQUFzRCxHQUFHLHFCQUFxQix5QkFBeUIsc0RBQXNELEdBQUcscUJBQXFCLHlCQUF5QixzREFBc0QsR0FBRyxxQkFBcUIseUJBQXlCLHNEQUFzRCxHQUFHLHNCQUFzQix5QkFBeUIsdURBQXVELEdBQUcsc0JBQXNCLHlCQUF5Qix1REFBdUQsR0FBRyxzQkFBc0IseUJBQXlCLHNEQUFzRCxHQUFHLG1CQUFtQix5QkFBeUIscURBQXFELEdBQUcsc0JBQXNCLHlCQUF5Qix3REFBd0QsR0FBRyxzQkFBc0IseUJBQXlCLHVEQUF1RCxHQUFHLHNCQUFzQix5QkFBeUIsdURBQXVELEdBQUcsbUJBQW1CLHlCQUF5QixzREFBc0QsR0FBRyxtQkFBbUIseUJBQXlCLHNEQUFzRCxHQUFHLG1CQUFtQix5QkFBeUIsc0RBQXNELEdBQUcsb0JBQW9CLHlCQUF5Qix1REFBdUQsR0FBRyx1QkFBdUIsdUJBQXVCLEdBQUcsaUJBQWlCLHlCQUF5Qix3REFBd0QsR0FBRyxzQkFBc0IseUJBQXlCLHVEQUF1RCxHQUFHLHNCQUFzQix5QkFBeUIsc0RBQXNELEdBQUcsc0JBQXNCLHlCQUF5QixzREFBc0QsR0FBRyxzQkFBc0IseUJBQXlCLHFEQUFxRCxHQUFHLHNCQUFzQix5QkFBeUIsc0RBQXNELEdBQUcsbUJBQW1CLHVDQUF1QyxHQUFHLGlCQUFpQixpQkFBaUIsR0FBRyxnQkFBZ0Isb0ZBQW9GLHdHQUF3Ryw0R0FBNEcsR0FBRyxnQkFBZ0Isa0ZBQWtGLHNHQUFzRyw0R0FBNEcsR0FBRyxnQkFBZ0IsK0NBQStDLDREQUE0RCw0R0FBNEcsR0FBRyxtQkFBbUIsbUNBQW1DLHdCQUF3QixHQUFHLGFBQWEsZ0hBQWdILDhHQUE4RyxpR0FBaUcsR0FBRyxrQkFBa0IseUJBQXlCLGdFQUFnRSxHQUFHLGFBQWEsc0xBQXNMLEdBQUcsdUJBQXVCLGtDQUFrQyxvUkFBb1IsNFFBQTRRLEdBQUcsaUJBQWlCLHFLQUFxSyw2SkFBNkosc0xBQXNMLDZEQUE2RCwrQkFBK0IsR0FBRyxxQkFBcUIsNkJBQTZCLDZEQUE2RCwrQkFBK0IsR0FBRyx3QkFBd0Isb0dBQW9HLDZEQUE2RCwrQkFBK0IsR0FBRyx3QkFBd0Isb0NBQW9DLDZEQUE2RCwrQkFBK0IsR0FBRywyQkFBMkIsbUNBQW1DLDZEQUE2RCwrQkFBK0IsR0FBRyxtQkFBbUIsK0JBQStCLEdBQUcsY0FBYyx1QkFBdUIsaUVBQWlFLG1DQUFtQyx5QkFBeUIscURBQXFELEdBQUcsY0FBYyxrQkFBa0IsMkJBQTJCLGNBQWMsR0FBRyx1Q0FBdUMsMkJBQTJCLDRCQUE0QixtQ0FBbUMsdUJBQXVCLEtBQUssdUJBQXVCLDJCQUEyQiw0QkFBNEIsbUNBQW1DLHVCQUF1QixLQUFLLDZDQUE2QyxpQkFBaUIsS0FBSyxtQ0FBbUMsMEJBQTBCLHlCQUF5QixLQUFLLG1DQUFtQywwQkFBMEIseUJBQXlCLEtBQUsseUNBQXlDLDBCQUEwQixLQUFLLDRCQUE0Qiw4QkFBOEIsS0FBSyw2Q0FBNkMsa0hBQWtILGdIQUFnSCxtR0FBbUcsS0FBSyw4QkFBOEIsdUJBQXVCLHVCQUF1QixvTUFBb00sR0FBRyxrQ0FBa0MsMkJBQTJCLCtEQUErRCxHQUFHLHVDQUF1Qyx1Q0FBdUMsR0FBRyw4QkFBOEIsdUJBQXVCLCtEQUErRCxHQUFHLGdDQUFnQyx1QkFBdUIsK0RBQStELEdBQUcsZ0NBQWdDLHVCQUF1QixpRUFBaUUsR0FBRywrQkFBK0IsdUJBQXVCLGlFQUFpRSxHQUFHLCtCQUErQix1QkFBdUIsOERBQThELEdBQUcsNkJBQTZCLHVCQUF1QixpRUFBaUUsR0FBRyxrQ0FBa0MsaUVBQWlFLHdFQUF3RSx3RUFBd0UsR0FBRyw4QkFBOEIsNkRBQTZELEdBQUcsZ0NBQWdDLHlCQUF5QixzREFBc0QsR0FBRyxrQ0FBa0MseUJBQXlCLHNEQUFzRCxHQUFHLGlDQUFpQyx5QkFBeUIscURBQXFELEdBQUcsK0JBQStCLHlCQUF5Qix3REFBd0QsR0FBRyw4QkFBOEIsb0NBQW9DLEdBQUcsK0JBQStCLGlCQUFpQixHQUFHLCtCQUErQixxREFBcUQsa0VBQWtFLDRHQUE0RyxHQUFHLDhCQUE4QixvRkFBb0Ysd0dBQXdHLDRHQUE0RyxHQUFHLDhCQUE4QixxRkFBcUYseUdBQXlHLDRHQUE0RyxHQUFHLHVDQUF1Qyw4QkFBOEIsR0FBRyxpQ0FBaUMsbUNBQW1DLHdCQUF3QixHQUFHLDJCQUEyQixnSEFBZ0gsOEdBQThHLGlHQUFpRyxHQUFHLGdDQUFnQyx5QkFBeUIsZ0VBQWdFLEdBQUcsNkNBQTZDLHdCQUF3QixHQUFHLHFDQUFxQyxpQkFBaUIsR0FBRywrQ0FBK0MsOEJBQThCLG9NQUFvTSxHQUFHLDJDQUEyQyxzQkFBc0Isc0JBQXNCLG9NQUFvTSxHQUFHLHVDQUF1QyxpQkFBaUIsR0FBRywyQ0FBMkMsdUJBQXVCLCtEQUErRCxHQUFHLDZDQUE2Qyx5QkFBeUIsc0RBQXNELEdBQUcsNENBQTRDLHlCQUF5Qix3REFBd0QsR0FBRywrQkFBK0Isc0JBQXNCLDBCQUEwQixLQUFLLEdBQUcsK0JBQStCLHdCQUF3QixtQ0FBbUMsS0FBSyxrQkFBa0Isc0JBQXNCLEtBQUssa0JBQWtCLG9CQUFvQixLQUFLLG9CQUFvQixvQkFBb0IsS0FBSyxxQkFBcUIsaUJBQWlCLEtBQUsseUJBQXlCLHVEQUF1RCxLQUFLLHlCQUF5Qix1REFBdUQsS0FBSyx5QkFBeUIsdURBQXVELEtBQUsseUJBQXlCLHVEQUF1RCxLQUFLLHNCQUFzQiwwQkFBMEIsS0FBSyxrQkFBa0Isb0JBQW9CLEtBQUssc0JBQXNCLDBCQUEwQiwyQkFBMkIsS0FBSyxzQkFBc0IseUJBQXlCLDBCQUEwQixLQUFLLHNCQUFzQixzQkFBc0IscUJBQXFCLEtBQUssR0FBRyxnQ0FBZ0Msd0JBQXdCLG1DQUFtQyxLQUFLLHlCQUF5Qix1REFBdUQsS0FBSyx5QkFBeUIsdURBQXVELEtBQUsseUJBQXlCLHVEQUF1RCxLQUFLLHlCQUF5Qix1REFBdUQsS0FBSyxzQkFBc0IsMEJBQTBCLEtBQUssR0FBRyxnQ0FBZ0MseUJBQXlCLHVEQUF1RCxLQUFLLEdBQUcsT0FBTyxtRkFBbUYsV0FBVyxXQUFXLFdBQVcsV0FBVyxVQUFVLFVBQVUsVUFBVSxVQUFVLFVBQVUsVUFBVSxVQUFVLFdBQVcsV0FBVyxXQUFXLFdBQVcsV0FBVyxVQUFVLFdBQVcsV0FBVyxXQUFXLFdBQVcsV0FBVyxXQUFXLFdBQVcsV0FBVyxXQUFXLFdBQVcsV0FBVyxXQUFXLFVBQVUsV0FBVyxXQUFXLFdBQVcsV0FBVyxVQUFVLFdBQVcsVUFBVSxXQUFXLFdBQVcsV0FBVyxXQUFXLFdBQVcsV0FBVyxXQUFXLFdBQVcsV0FBVyxXQUFXLFdBQVcsV0FBVyxXQUFXLEtBQUssTUFBTSxLQUFLLFdBQVcsV0FBVyxXQUFXLFdBQVcsVUFBVSxVQUFVLFVBQVUsVUFBVSxVQUFVLFVBQVUsVUFBVSxXQUFXLFdBQVcsV0FBVyxXQUFXLFdBQVcsVUFBVSxXQUFXLFdBQVcsV0FBVyxXQUFXLFdBQVcsV0FBVyxXQUFXLFdBQVcsV0FBVyxXQUFXLFdBQVcsV0FBVyxVQUFVLFdBQVcsV0FBVyxXQUFXLFdBQVcsVUFBVSxXQUFXLFVBQVUsV0FBVyxXQUFXLFdBQVcsV0FBVyxXQUFXLFdBQVcsV0FBVyxXQUFXLFdBQVcsV0FBVyxXQUFXLFdBQVcsV0FBVyxLQUFLLFdBQVcsWUFBWSxNQUFNLE9BQU8scUJBQXFCLG9CQUFvQixxQkFBcUIscUJBQXFCLE1BQU0sTUFBTSxXQUFXLE1BQU0sWUFBWSxNQUFNLE1BQU0scUJBQXFCLHFCQUFxQixxQkFBcUIsVUFBVSxvQkFBb0IscUJBQXFCLHFCQUFxQixxQkFBcUIscUJBQXFCLE1BQU0sT0FBTyxNQUFNLEtBQUssb0JBQW9CLHFCQUFxQixNQUFNLFFBQVEsTUFBTSxLQUFLLG9CQUFvQixvQkFBb0IscUJBQXFCLE1BQU0sTUFBTSxNQUFNLEtBQUssV0FBVyxXQUFXLE1BQU0sTUFBTSxNQUFNLFVBQVUsV0FBVyxXQUFXLE1BQU0sTUFBTSxNQUFNLEtBQUssVUFBVSxXQUFXLE1BQU0sTUFBTSxNQUFNLE1BQU0sV0FBVyxNQUFNLFNBQVMsTUFBTSxRQUFRLHFCQUFxQixxQkFBcUIscUJBQXFCLG9CQUFvQixNQUFNLE1BQU0sTUFBTSxLQUFLLFVBQVUsTUFBTSxNQUFNLE1BQU0sTUFBTSxVQUFVLFVBQVUsV0FBVyxXQUFXLE1BQU0sS0FBSyxVQUFVLE1BQU0sS0FBSyxVQUFVLE1BQU0sUUFBUSxNQUFNLEtBQUssb0JBQW9CLHFCQUFxQixxQkFBcUIsTUFBTSxRQUFRLE1BQU0sU0FBUyxxQkFBcUIscUJBQXFCLHFCQUFxQixvQkFBb0IscUJBQXFCLHFCQUFxQixxQkFBcUIsb0JBQW9CLG9CQUFvQixvQkFBb0IsTUFBTSxNQUFNLE1BQU0sTUFBTSxXQUFXLE1BQU0sT0FBTyxNQUFNLFFBQVEscUJBQXFCLHFCQUFxQixxQkFBcUIsTUFBTSxNQUFNLE1BQU0sS0FBSyxVQUFVLE1BQU0sTUFBTSxNQUFNLEtBQUssV0FBVyxNQUFNLE1BQU0sTUFBTSxLQUFLLFdBQVcsTUFBTSxNQUFNLE1BQU0sTUFBTSxVQUFVLE1BQU0sT0FBTyxNQUFNLEtBQUsscUJBQXFCLHFCQUFxQixNQUFNLE1BQU0sTUFBTSxLQUFLLFdBQVcsTUFBTSxPQUFPLE1BQU0sS0FBSyxxQkFBcUIsb0JBQW9CLE1BQU0sTUFBTSxNQUFNLEtBQUssV0FBVyxNQUFNLE1BQU0sTUFBTSxpQkFBaUIsVUFBVSxNQUFNLEtBQUssVUFBVSxVQUFVLE1BQU0sS0FBSyxVQUFVLE1BQU0sT0FBTyxXQUFXLFVBQVUsVUFBVSxNQUFNLE1BQU0sS0FBSyxLQUFLLFVBQVUsTUFBTSxNQUFNLE1BQU0sS0FBSyxXQUFXLE1BQU0sT0FBTyxNQUFNLEtBQUssb0JBQW9CLG9CQUFvQixNQUFNLE1BQU0sb0JBQW9CLG9CQUFvQixNQUFNLE1BQU0sTUFBTSxNQUFNLFVBQVUsTUFBTSxNQUFNLEtBQUssS0FBSyxVQUFVLE1BQU0sUUFBUSxNQUFNLFlBQVksb0JBQW9CLHFCQUFxQixNQUFNLE1BQU0sTUFBTSxNQUFNLFVBQVUsVUFBVSxNQUFNLFdBQVcsS0FBSyxVQUFVLEtBQUssS0FBSyxLQUFLLE1BQU0sT0FBTyxLQUFLLEtBQUssTUFBTSxLQUFLLE9BQU8sS0FBSyxLQUFLLE1BQU0sS0FBSyxPQUFPLEtBQUssS0FBSyxNQUFNLEtBQUssT0FBTyxLQUFLLEtBQUssTUFBTSxLQUFLLE9BQU8sS0FBSyxLQUFLLE1BQU0sS0FBSyxNQUFNLEtBQUssTUFBTSxNQUFNLEtBQUssTUFBTSxNQUFNLEtBQUssTUFBTSxNQUFNLEtBQUssTUFBTSxNQUFNLFdBQVcsTUFBTSxNQUFNLE1BQU0sS0FBSyxNQUFNLE1BQU0sS0FBSyxNQUFNLE1BQU0sS0FBSyxNQUFNLE1BQU0sS0FBSyxNQUFNLE1BQU0sS0FBSyxNQUFNLE1BQU0sS0FBSyxNQUFNLE1BQU0sS0FBSyxNQUFNLE1BQU0sS0FBSyxNQUFNLE1BQU0sS0FBSyxNQUFNLE1BQU0sS0FBSyxNQUFNLE1BQU0sS0FBSyxNQUFNLE1BQU0sS0FBSyxNQUFNLE1BQU0sS0FBSyxNQUFNLE1BQU0sS0FBSyxNQUFNLE1BQU0sS0FBSyxNQUFNLE1BQU0sS0FBSyxNQUFNLE1BQU0sS0FBSyxNQUFNLE1BQU0sS0FBSyxNQUFNLE1BQU0sS0FBSyxNQUFNLE1BQU0sWUFBWSxNQUFNLE1BQU0sTUFBTSxLQUFLLE1BQU0sTUFBTSxLQUFLLE1BQU0sTUFBTSxLQUFLLE1BQU0sTUFBTSxLQUFLLE1BQU0sTUFBTSxLQUFLLE1BQU0sTUFBTSxLQUFLLE1BQU0sTUFBTSxLQUFLLE1BQU0sTUFBTSxLQUFLLE1BQU0sTUFBTSxLQUFLLE1BQU0sTUFBTSxLQUFLLE1BQU0sTUFBTSxLQUFLLE1BQU0sTUFBTSxLQUFLLE1BQU0sTUFBTSxLQUFLLE1BQU0sTUFBTSxLQUFLLE1BQU0sTUFBTSxLQUFLLE1BQU0sTUFBTSxLQUFLLE1BQU0sTUFBTSxLQUFLLE1BQU0sTUFBTSxLQUFLLE1BQU0sTUFBTSxLQUFLLE1BQU0sTUFBTSxLQUFLLE1BQU0sTUFBTSxLQUFLLE1BQU0sTUFBTSxLQUFLLE1BQU0sTUFBTSxLQUFLLE1BQU0sTUFBTSxZQUFZLGFBQWEsYUFBYSxNQUFNLE1BQU0sTUFBTSxZQUFZLGFBQWEsYUFBYSxNQUFNLE1BQU0sTUFBTSxLQUFLLE1BQU0sTUFBTSxLQUFLLE1BQU0sTUFBTSxLQUFLLE1BQU0sTUFBTSxLQUFLLE1BQU0sTUFBTSxLQUFLLE1BQU0sTUFBTSxLQUFLLE1BQU0sTUFBTSxLQUFLLE1BQU0sTUFBTSxLQUFLLE1BQU0sTUFBTSxLQUFLLE1BQU0sTUFBTSxLQUFLLE1BQU0sTUFBTSxLQUFLLE1BQU0sTUFBTSxLQUFLLE1BQU0sTUFBTSxLQUFLLE1BQU0sTUFBTSxLQUFLLE1BQU0sTUFBTSxLQUFLLE1BQU0sTUFBTSxLQUFLLE1BQU0sTUFBTSxLQUFLLE1BQU0sTUFBTSxLQUFLLE1BQU0sTUFBTSxLQUFLLE1BQU0sTUFBTSxLQUFLLE1BQU0sTUFBTSxLQUFLLE1BQU0sTUFBTSxLQUFLLE1BQU0sTUFBTSxLQUFLLE1BQU0sTUFBTSxLQUFLLE1BQU0sTUFBTSxLQUFLLE1BQU0sTUFBTSxLQUFLLE1BQU0sTUFBTSxLQUFLLE1BQU0sTUFBTSxLQUFLLE1BQU0sTUFBTSxLQUFLLE1BQU0sTUFBTSxLQUFLLE1BQU0sTUFBTSxLQUFLLE1BQU0sTUFBTSxLQUFLLE1BQU0sTUFBTSxLQUFLLE1BQU0sTUFBTSxLQUFLLE1BQU0sTUFBTSxLQUFLLE1BQU0sTUFBTSxLQUFLLE1BQU0sTUFBTSxLQUFLLE1BQU0sTUFBTSxLQUFLLE1BQU0sTUFBTSxLQUFLLE1BQU0sTUFBTSxLQUFLLE1BQU0sTUFBTSxLQUFLLE1BQU0sTUFBTSxLQUFLLE1BQU0sTUFBTSxLQUFLLE1BQU0sTUFBTSxLQUFLLE1BQU0sTUFBTSxZQUFZLE1BQU0sTUFBTSxNQUFNLFlBQVksTUFBTSxNQUFNLE1BQU0sWUFBWSxNQUFNLE1BQU0sTUFBTSxZQUFZLE1BQU0sTUFBTSxNQUFNLFlBQVksTUFBTSxNQUFNLE1BQU0sWUFBWSxhQUFhLE1BQU0sTUFBTSxNQUFNLEtBQUssTUFBTSxPQUFPLEtBQUssS0FBSyxNQUFNLEtBQUssTUFBTSxLQUFLLE1BQU0sTUFBTSxLQUFLLE1BQU0sTUFBTSxLQUFLLE1BQU0sTUFBTSxLQUFLLE1BQU0sTUFBTSxLQUFLLE1BQU0sTUFBTSxLQUFLLE1BQU0sTUFBTSxLQUFLLE1BQU0sTUFBTSxLQUFLLE1BQU0sTUFBTSxLQUFLLE1BQU0sTUFBTSxLQUFLLE1BQU0sTUFBTSxLQUFLLE1BQU0sTUFBTSxLQUFLLE1BQU0sTUFBTSxLQUFLLE1BQU0sTUFBTSxLQUFLLE1BQU0sTUFBTSxLQUFLLE1BQU0sTUFBTSxLQUFLLE1BQU0sTUFBTSxLQUFLLE1BQU0sTUFBTSxLQUFLLE1BQU0sTUFBTSxLQUFLLE1BQU0sTUFBTSxLQUFLLE1BQU0sTUFBTSxLQUFLLE1BQU0sTUFBTSxZQUFZLGFBQWEsTUFBTSxNQUFNLE1BQU0sWUFBWSxhQUFhLE1BQU0sTUFBTSxNQUFNLFlBQVksYUFBYSxNQUFNLE1BQU0sTUFBTSxZQUFZLGFBQWEsTUFBTSxNQUFNLE1BQU0sWUFBWSxhQUFhLE1BQU0sTUFBTSxNQUFNLFlBQVksYUFBYSxNQUFNLE1BQU0sTUFBTSxZQUFZLGFBQWEsTUFBTSxNQUFNLE1BQU0sWUFBWSxhQUFhLE1BQU0sTUFBTSxNQUFNLFlBQVksYUFBYSxNQUFNLE1BQU0sTUFBTSxLQUFLLE1BQU0sTUFBTSxLQUFLLE1BQU0sTUFBTSxLQUFLLE1BQU0sTUFBTSxLQUFLLE1BQU0sTUFBTSxLQUFLLE1BQU0sTUFBTSxLQUFLLE1BQU0sTUFBTSxLQUFLLE1BQU0sTUFBTSxLQUFLLE1BQU0sTUFBTSxLQUFLLE1BQU0sTUFBTSxZQUFZLE1BQU0sTUFBTSxNQUFNLFlBQVksTUFBTSxNQUFNLE1BQU0sWUFBWSxNQUFNLE1BQU0sTUFBTSxZQUFZLE1BQU0sTUFBTSxNQUFNLFlBQVksTUFBTSxNQUFNLE1BQU0sWUFBWSxNQUFNLE1BQU0sTUFBTSxZQUFZLE1BQU0sTUFBTSxNQUFNLFlBQVksTUFBTSxNQUFNLE1BQU0sS0FBSyxNQUFNLE1BQU0sWUFBWSxNQUFNLE1BQU0sTUFBTSxLQUFLLE1BQU0sTUFBTSxZQUFZLE1BQU0sTUFBTSxNQUFNLEtBQUssTUFBTSxNQUFNLFlBQVksTUFBTSxNQUFNLE1BQU0sS0FBSyxNQUFNLE1BQU0sWUFBWSxNQUFNLE1BQU0sTUFBTSxZQUFZLE1BQU0sTUFBTSxNQUFNLFlBQVksTUFBTSxNQUFNLE1BQU0sWUFBWSxNQUFNLE1BQU0sTUFBTSxZQUFZLE1BQU0sTUFBTSxNQUFNLFlBQVksTUFBTSxNQUFNLE1BQU0sWUFBWSxNQUFNLE1BQU0sTUFBTSxZQUFZLE1BQU0sTUFBTSxNQUFNLFlBQVksTUFBTSxNQUFNLE1BQU0sWUFBWSxNQUFNLE1BQU0sTUFBTSxZQUFZLE1BQU0sTUFBTSxNQUFNLFlBQVksTUFBTSxNQUFNLE1BQU0sWUFBWSxNQUFNLE1BQU0sTUFBTSxZQUFZLE1BQU0sTUFBTSxNQUFNLFlBQVksTUFBTSxNQUFNLE1BQU0sS0FBSyxNQUFNLE1BQU0sS0FBSyxNQUFNLE1BQU0sS0FBSyxNQUFNLE1BQU0sS0FBSyxNQUFNLE1BQU0sWUFBWSxNQUFNLE1BQU0sTUFBTSxLQUFLLE1BQU0sTUFBTSxLQUFLLE1BQU0sTUFBTSxZQUFZLGFBQWEsTUFBTSxNQUFNLE1BQU0sWUFBWSxhQUFhLE1BQU0sTUFBTSxNQUFNLFlBQVksYUFBYSxNQUFNLE1BQU0sTUFBTSxZQUFZLGFBQWEsTUFBTSxNQUFNLE1BQU0sWUFBWSxhQUFhLE1BQU0sTUFBTSxNQUFNLFlBQVksYUFBYSxNQUFNLE1BQU0sTUFBTSxZQUFZLGFBQWEsTUFBTSxNQUFNLE1BQU0sWUFBWSxhQUFhLE1BQU0sTUFBTSxNQUFNLFlBQVksTUFBTSxNQUFNLE1BQU0sS0FBSyxNQUFNLE1BQU0sS0FBSyxNQUFNLE1BQU0sS0FBSyxNQUFNLE1BQU0sS0FBSyxNQUFNLE1BQU0sS0FBSyxNQUFNLE1BQU0sS0FBSyxNQUFNLE1BQU0sS0FBSyxNQUFNLE1BQU0sS0FBSyxNQUFNLE1BQU0sS0FBSyxNQUFNLE1BQU0sS0FBSyxNQUFNLE1BQU0sWUFBWSxNQUFNLE1BQU0sTUFBTSxLQUFLLE1BQU0sTUFBTSxLQUFLLE1BQU0sTUFBTSxLQUFLLE1BQU0sTUFBTSxLQUFLLE1BQU0sTUFBTSxLQUFLLE1BQU0sTUFBTSxZQUFZLE1BQU0sTUFBTSxNQUFNLFlBQVksTUFBTSxNQUFNLE1BQU0sWUFBWSxNQUFNLE1BQU0sTUFBTSxZQUFZLE1BQU0sTUFBTSxNQUFNLFlBQVksTUFBTSxNQUFNLE1BQU0sWUFBWSxNQUFNLE1BQU0sTUFBTSxZQUFZLE1BQU0sTUFBTSxNQUFNLFlBQVksTUFBTSxNQUFNLE1BQU0sWUFBWSxNQUFNLE1BQU0sTUFBTSxZQUFZLE1BQU0sTUFBTSxNQUFNLFlBQVksTUFBTSxNQUFNLE1BQU0sWUFBWSxNQUFNLE1BQU0sTUFBTSxZQUFZLE1BQU0sTUFBTSxNQUFNLEtBQUssTUFBTSxNQUFNLEtBQUssTUFBTSxNQUFNLEtBQUssTUFBTSxNQUFNLEtBQUssTUFBTSxNQUFNLEtBQUssTUFBTSxNQUFNLEtBQUssTUFBTSxNQUFNLEtBQUssTUFBTSxNQUFNLEtBQUssTUFBTSxNQUFNLEtBQUssTUFBTSxNQUFNLEtBQUssTUFBTSxNQUFNLEtBQUssTUFBTSxNQUFNLEtBQUssTUFBTSxNQUFNLEtBQUssTUFBTSxNQUFNLEtBQUssTUFBTSxNQUFNLEtBQUssTUFBTSxNQUFNLFlBQVksTUFBTSxNQUFNLE1BQU0sWUFBWSxNQUFNLE1BQU0sTUFBTSxZQUFZLE1BQU0sTUFBTSxNQUFNLFdBQVcsTUFBTSxNQUFNLE1BQU0sV0FBVyxNQUFNLE1BQU0sTUFBTSxZQUFZLE1BQU0sTUFBTSxNQUFNLFlBQVksTUFBTSxNQUFNLE1BQU0sWUFBWSxNQUFNLE1BQU0sTUFBTSxZQUFZLE1BQU0sTUFBTSxNQUFNLEtBQUssTUFBTSxNQUFNLEtBQUssTUFBTSxNQUFNLEtBQUssTUFBTSxNQUFNLEtBQUssTUFBTSxNQUFNLEtBQUssTUFBTSxNQUFNLFlBQVksTUFBTSxNQUFNLE1BQU0sWUFBWSxNQUFNLE1BQU0sTUFBTSxZQUFZLE1BQU0sTUFBTSxNQUFNLFlBQVksTUFBTSxNQUFNLE1BQU0sWUFBWSxNQUFNLE1BQU0sTUFBTSxZQUFZLE1BQU0sTUFBTSxNQUFNLFlBQVksTUFBTSxNQUFNLE1BQU0sWUFBWSxNQUFNLE1BQU0sTUFBTSxZQUFZLE1BQU0sTUFBTSxNQUFNLFlBQVksTUFBTSxNQUFNLE1BQU0sWUFBWSxNQUFNLE1BQU0sTUFBTSxZQUFZLE1BQU0sTUFBTSxNQUFNLFlBQVksTUFBTSxNQUFNLE1BQU0sWUFBWSxNQUFNLE1BQU0sTUFBTSxZQUFZLE1BQU0sTUFBTSxNQUFNLFlBQVksTUFBTSxNQUFNLE1BQU0sWUFBWSxNQUFNLE1BQU0sTUFBTSxZQUFZLE1BQU0sTUFBTSxNQUFNLFlBQVksTUFBTSxNQUFNLE1BQU0sWUFBWSxNQUFNLE1BQU0sTUFBTSxZQUFZLE1BQU0sTUFBTSxNQUFNLFlBQVksTUFBTSxNQUFNLE1BQU0sWUFBWSxNQUFNLE1BQU0sTUFBTSxZQUFZLE1BQU0sTUFBTSxNQUFNLFlBQVksTUFBTSxNQUFNLE1BQU0sWUFBWSxNQUFNLE1BQU0sTUFBTSxLQUFLLE1BQU0sTUFBTSxZQUFZLE1BQU0sTUFBTSxNQUFNLFlBQVksTUFBTSxNQUFNLE1BQU0sWUFBWSxNQUFNLE1BQU0sTUFBTSxZQUFZLE1BQU0sTUFBTSxNQUFNLFlBQVksTUFBTSxNQUFNLE1BQU0sWUFBWSxNQUFNLE1BQU0sTUFBTSxLQUFLLE1BQU0sTUFBTSxLQUFLLE1BQU0sTUFBTSxZQUFZLGFBQWEsTUFBTSxNQUFNLE1BQU0sWUFBWSxhQUFhLE1BQU0sTUFBTSxNQUFNLFlBQVksYUFBYSxNQUFNLE1BQU0sTUFBTSxZQUFZLE1BQU0sTUFBTSxNQUFNLFlBQVksYUFBYSxNQUFNLE1BQU0sTUFBTSxZQUFZLE1BQU0sTUFBTSxNQUFNLEtBQUssTUFBTSxNQUFNLFlBQVksYUFBYSxNQUFNLE1BQU0sTUFBTSxZQUFZLGFBQWEsYUFBYSxhQUFhLE1BQU0sTUFBTSxNQUFNLFlBQVksYUFBYSxNQUFNLE1BQU0sTUFBTSxZQUFZLGFBQWEsTUFBTSxNQUFNLE1BQU0sWUFBWSxhQUFhLE1BQU0sTUFBTSxNQUFNLFlBQVksYUFBYSxNQUFNLE1BQU0sTUFBTSxLQUFLLE9BQU8sTUFBTSxZQUFZLGFBQWEsYUFBYSxhQUFhLE1BQU0sT0FBTyxNQUFNLFdBQVcsYUFBYSxNQUFNLE9BQU8sV0FBVyxLQUFLLFlBQVksYUFBYSxhQUFhLGFBQWEsT0FBTyxLQUFLLFlBQVksYUFBYSxhQUFhLGFBQWEsT0FBTyxVQUFVLEtBQUssVUFBVSxNQUFNLEtBQUssWUFBWSxhQUFhLE9BQU8sS0FBSyxZQUFZLGFBQWEsT0FBTyxLQUFLLFlBQVksT0FBTyxVQUFVLEtBQUssWUFBWSxPQUFPLFVBQVUsS0FBSyxZQUFZLGFBQWEsYUFBYSxNQUFNLE1BQU0sWUFBWSxhQUFhLE1BQU0sTUFBTSxNQUFNLFlBQVksTUFBTSxNQUFNLE1BQU0sS0FBSyxNQUFNLE1BQU0sWUFBWSxNQUFNLE1BQU0sTUFBTSxZQUFZLE1BQU0sTUFBTSxNQUFNLFlBQVksTUFBTSxNQUFNLE1BQU0sWUFBWSxNQUFNLE1BQU0sTUFBTSxZQUFZLE1BQU0sTUFBTSxNQUFNLFlBQVksTUFBTSxNQUFNLE1BQU0sWUFBWSxhQUFhLE1BQU0sTUFBTSxNQUFNLEtBQUssTUFBTSxNQUFNLFlBQVksTUFBTSxNQUFNLE1BQU0sWUFBWSxNQUFNLE1BQU0sTUFBTSxZQUFZLE1BQU0sTUFBTSxNQUFNLFlBQVksTUFBTSxNQUFNLE1BQU0sS0FBSyxNQUFNLE1BQU0sS0FBSyxNQUFNLE1BQU0sWUFBWSxhQUFhLE1BQU0sTUFBTSxNQUFNLFlBQVksYUFBYSxNQUFNLE1BQU0sTUFBTSxZQUFZLGFBQWEsTUFBTSxNQUFNLE1BQU0sS0FBSyxNQUFNLE1BQU0sWUFBWSxNQUFNLE1BQU0sTUFBTSxZQUFZLGFBQWEsTUFBTSxNQUFNLE1BQU0sWUFBWSxNQUFNLE1BQU0sTUFBTSxLQUFLLE1BQU0sTUFBTSxLQUFLLE1BQU0sTUFBTSxZQUFZLE1BQU0sTUFBTSxNQUFNLFlBQVksYUFBYSxNQUFNLE1BQU0sTUFBTSxLQUFLLE1BQU0sTUFBTSxZQUFZLE1BQU0sTUFBTSxNQUFNLFlBQVksTUFBTSxNQUFNLE1BQU0sWUFBWSxNQUFNLE1BQU0sT0FBTyxLQUFLLEtBQUssTUFBTSxLQUFLLE9BQU8sS0FBSyxLQUFLLE9BQU8sTUFBTSxLQUFLLE9BQU8sTUFBTSxLQUFLLE9BQU8sTUFBTSxLQUFLLE9BQU8sTUFBTSxLQUFLLE9BQU8sTUFBTSxLQUFLLE9BQU8sTUFBTSxLQUFLLE9BQU8sTUFBTSxLQUFLLE9BQU8sTUFBTSxLQUFLLE9BQU8sTUFBTSxLQUFLLE9BQU8sTUFBTSxLQUFLLE9BQU8sTUFBTSxZQUFZLE1BQU0sT0FBTyxNQUFNLFlBQVksTUFBTSxPQUFPLE1BQU0sV0FBVyxNQUFNLE1BQU0sS0FBSyxPQUFPLEtBQUssS0FBSyxPQUFPLE1BQU0sS0FBSyxPQUFPLE1BQU0sS0FBSyxPQUFPLE1BQU0sS0FBSyxPQUFPLE1BQU0sS0FBSyxPQUFPLE1BQU0sS0FBSyxNQUFNLEtBQUssT0FBTyxLQUFLLEtBQUssTUFBTSx3Q0FBd0MseUJBQXlCLHdCQUF3QixjQUFjLGtEQUFrRCxLQUFLLGNBQWMsdUNBQXVDLEtBQUssdUNBQXVDLDJCQUEyQiw0QkFBNEIsbUNBQW1DLHVCQUF1QixLQUFLLHVCQUF1QiwyQkFBMkIsNEJBQTRCLG1DQUFtQyx1QkFBdUIsS0FBSyw2Q0FBNkMsaUJBQWlCLEtBQUssbUNBQW1DLDBCQUEwQix5QkFBeUIsS0FBSyxtQ0FBbUMsMEJBQTBCLHlCQUF5QixLQUFLLHlDQUF5QywwQkFBMEIsS0FBSyw0QkFBNEIsOEJBQThCLEtBQUssNkNBQTZDLGtIQUFrSCxnSEFBZ0gsbUdBQW1HLEtBQUssbUJBQW1CO0FBQ3Jzd0Q7QUFDQSxpRUFBZSx1QkFBdUIsRUFBQyIsInNvdXJjZXMiOlsiRDpcXGRvbmd5dW4tcHJvamVjdHNcXHR3b1xcc3R5bGVzXFxnbG9iYWxzLmNzcyJdLCJzb3VyY2VzQ29udGVudCI6WyIvLyBJbXBvcnRzXG5pbXBvcnQgX19fQ1NTX0xPQURFUl9BUElfSU1QT1JUX19fIGZyb20gXCIuLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2J1aWxkL3dlYnBhY2svbG9hZGVycy9jc3MtbG9hZGVyL3NyYy9ydW50aW1lL2FwaS5qc1wiO1xudmFyIF9fX0NTU19MT0FERVJfRVhQT1JUX19fID0gX19fQ1NTX0xPQURFUl9BUElfSU1QT1JUX19fKHRydWUpO1xuLy8gTW9kdWxlXG5fX19DU1NfTE9BREVSX0VYUE9SVF9fXy5wdXNoKFttb2R1bGUuaWQsIFwiKiwgOjpiZWZvcmUsIDo6YWZ0ZXIge1xcbiAgLS10dy1ib3JkZXItc3BhY2luZy14OiAwO1xcbiAgLS10dy1ib3JkZXItc3BhY2luZy15OiAwO1xcbiAgLS10dy10cmFuc2xhdGUteDogMDtcXG4gIC0tdHctdHJhbnNsYXRlLXk6IDA7XFxuICAtLXR3LXJvdGF0ZTogMDtcXG4gIC0tdHctc2tldy14OiAwO1xcbiAgLS10dy1za2V3LXk6IDA7XFxuICAtLXR3LXNjYWxlLXg6IDE7XFxuICAtLXR3LXNjYWxlLXk6IDE7XFxuICAtLXR3LXBhbi14OiAgO1xcbiAgLS10dy1wYW4teTogIDtcXG4gIC0tdHctcGluY2gtem9vbTogIDtcXG4gIC0tdHctc2Nyb2xsLXNuYXAtc3RyaWN0bmVzczogcHJveGltaXR5O1xcbiAgLS10dy1ncmFkaWVudC1mcm9tLXBvc2l0aW9uOiAgO1xcbiAgLS10dy1ncmFkaWVudC12aWEtcG9zaXRpb246ICA7XFxuICAtLXR3LWdyYWRpZW50LXRvLXBvc2l0aW9uOiAgO1xcbiAgLS10dy1vcmRpbmFsOiAgO1xcbiAgLS10dy1zbGFzaGVkLXplcm86ICA7XFxuICAtLXR3LW51bWVyaWMtZmlndXJlOiAgO1xcbiAgLS10dy1udW1lcmljLXNwYWNpbmc6ICA7XFxuICAtLXR3LW51bWVyaWMtZnJhY3Rpb246ICA7XFxuICAtLXR3LXJpbmctaW5zZXQ6ICA7XFxuICAtLXR3LXJpbmctb2Zmc2V0LXdpZHRoOiAwcHg7XFxuICAtLXR3LXJpbmctb2Zmc2V0LWNvbG9yOiAjZmZmO1xcbiAgLS10dy1yaW5nLWNvbG9yOiByZ2IoNTkgMTMwIDI0NiAvIDAuNSk7XFxuICAtLXR3LXJpbmctb2Zmc2V0LXNoYWRvdzogMCAwICMwMDAwO1xcbiAgLS10dy1yaW5nLXNoYWRvdzogMCAwICMwMDAwO1xcbiAgLS10dy1zaGFkb3c6IDAgMCAjMDAwMDtcXG4gIC0tdHctc2hhZG93LWNvbG9yZWQ6IDAgMCAjMDAwMDtcXG4gIC0tdHctYmx1cjogIDtcXG4gIC0tdHctYnJpZ2h0bmVzczogIDtcXG4gIC0tdHctY29udHJhc3Q6ICA7XFxuICAtLXR3LWdyYXlzY2FsZTogIDtcXG4gIC0tdHctaHVlLXJvdGF0ZTogIDtcXG4gIC0tdHctaW52ZXJ0OiAgO1xcbiAgLS10dy1zYXR1cmF0ZTogIDtcXG4gIC0tdHctc2VwaWE6ICA7XFxuICAtLXR3LWRyb3Atc2hhZG93OiAgO1xcbiAgLS10dy1iYWNrZHJvcC1ibHVyOiAgO1xcbiAgLS10dy1iYWNrZHJvcC1icmlnaHRuZXNzOiAgO1xcbiAgLS10dy1iYWNrZHJvcC1jb250cmFzdDogIDtcXG4gIC0tdHctYmFja2Ryb3AtZ3JheXNjYWxlOiAgO1xcbiAgLS10dy1iYWNrZHJvcC1odWUtcm90YXRlOiAgO1xcbiAgLS10dy1iYWNrZHJvcC1pbnZlcnQ6ICA7XFxuICAtLXR3LWJhY2tkcm9wLW9wYWNpdHk6ICA7XFxuICAtLXR3LWJhY2tkcm9wLXNhdHVyYXRlOiAgO1xcbiAgLS10dy1iYWNrZHJvcC1zZXBpYTogIDtcXG4gIC0tdHctY29udGFpbi1zaXplOiAgO1xcbiAgLS10dy1jb250YWluLWxheW91dDogIDtcXG4gIC0tdHctY29udGFpbi1wYWludDogIDtcXG4gIC0tdHctY29udGFpbi1zdHlsZTogIDtcXG59XFxuXFxuOjpiYWNrZHJvcCB7XFxuICAtLXR3LWJvcmRlci1zcGFjaW5nLXg6IDA7XFxuICAtLXR3LWJvcmRlci1zcGFjaW5nLXk6IDA7XFxuICAtLXR3LXRyYW5zbGF0ZS14OiAwO1xcbiAgLS10dy10cmFuc2xhdGUteTogMDtcXG4gIC0tdHctcm90YXRlOiAwO1xcbiAgLS10dy1za2V3LXg6IDA7XFxuICAtLXR3LXNrZXcteTogMDtcXG4gIC0tdHctc2NhbGUteDogMTtcXG4gIC0tdHctc2NhbGUteTogMTtcXG4gIC0tdHctcGFuLXg6ICA7XFxuICAtLXR3LXBhbi15OiAgO1xcbiAgLS10dy1waW5jaC16b29tOiAgO1xcbiAgLS10dy1zY3JvbGwtc25hcC1zdHJpY3RuZXNzOiBwcm94aW1pdHk7XFxuICAtLXR3LWdyYWRpZW50LWZyb20tcG9zaXRpb246ICA7XFxuICAtLXR3LWdyYWRpZW50LXZpYS1wb3NpdGlvbjogIDtcXG4gIC0tdHctZ3JhZGllbnQtdG8tcG9zaXRpb246ICA7XFxuICAtLXR3LW9yZGluYWw6ICA7XFxuICAtLXR3LXNsYXNoZWQtemVybzogIDtcXG4gIC0tdHctbnVtZXJpYy1maWd1cmU6ICA7XFxuICAtLXR3LW51bWVyaWMtc3BhY2luZzogIDtcXG4gIC0tdHctbnVtZXJpYy1mcmFjdGlvbjogIDtcXG4gIC0tdHctcmluZy1pbnNldDogIDtcXG4gIC0tdHctcmluZy1vZmZzZXQtd2lkdGg6IDBweDtcXG4gIC0tdHctcmluZy1vZmZzZXQtY29sb3I6ICNmZmY7XFxuICAtLXR3LXJpbmctY29sb3I6IHJnYig1OSAxMzAgMjQ2IC8gMC41KTtcXG4gIC0tdHctcmluZy1vZmZzZXQtc2hhZG93OiAwIDAgIzAwMDA7XFxuICAtLXR3LXJpbmctc2hhZG93OiAwIDAgIzAwMDA7XFxuICAtLXR3LXNoYWRvdzogMCAwICMwMDAwO1xcbiAgLS10dy1zaGFkb3ctY29sb3JlZDogMCAwICMwMDAwO1xcbiAgLS10dy1ibHVyOiAgO1xcbiAgLS10dy1icmlnaHRuZXNzOiAgO1xcbiAgLS10dy1jb250cmFzdDogIDtcXG4gIC0tdHctZ3JheXNjYWxlOiAgO1xcbiAgLS10dy1odWUtcm90YXRlOiAgO1xcbiAgLS10dy1pbnZlcnQ6ICA7XFxuICAtLXR3LXNhdHVyYXRlOiAgO1xcbiAgLS10dy1zZXBpYTogIDtcXG4gIC0tdHctZHJvcC1zaGFkb3c6ICA7XFxuICAtLXR3LWJhY2tkcm9wLWJsdXI6ICA7XFxuICAtLXR3LWJhY2tkcm9wLWJyaWdodG5lc3M6ICA7XFxuICAtLXR3LWJhY2tkcm9wLWNvbnRyYXN0OiAgO1xcbiAgLS10dy1iYWNrZHJvcC1ncmF5c2NhbGU6ICA7XFxuICAtLXR3LWJhY2tkcm9wLWh1ZS1yb3RhdGU6ICA7XFxuICAtLXR3LWJhY2tkcm9wLWludmVydDogIDtcXG4gIC0tdHctYmFja2Ryb3Atb3BhY2l0eTogIDtcXG4gIC0tdHctYmFja2Ryb3Atc2F0dXJhdGU6ICA7XFxuICAtLXR3LWJhY2tkcm9wLXNlcGlhOiAgO1xcbiAgLS10dy1jb250YWluLXNpemU6ICA7XFxuICAtLXR3LWNvbnRhaW4tbGF5b3V0OiAgO1xcbiAgLS10dy1jb250YWluLXBhaW50OiAgO1xcbiAgLS10dy1jb250YWluLXN0eWxlOiAgO1xcbn0vKlxcbiEgdGFpbHdpbmRjc3MgdjMuNC4xNyB8IE1JVCBMaWNlbnNlIHwgaHR0cHM6Ly90YWlsd2luZGNzcy5jb21cXG4qLy8qXFxuMS4gUHJldmVudCBwYWRkaW5nIGFuZCBib3JkZXIgZnJvbSBhZmZlY3RpbmcgZWxlbWVudCB3aWR0aC4gKGh0dHBzOi8vZ2l0aHViLmNvbS9tb3pkZXZzL2Nzc3JlbWVkeS9pc3N1ZXMvNClcXG4yLiBBbGxvdyBhZGRpbmcgYSBib3JkZXIgdG8gYW4gZWxlbWVudCBieSBqdXN0IGFkZGluZyBhIGJvcmRlci13aWR0aC4gKGh0dHBzOi8vZ2l0aHViLmNvbS90YWlsd2luZGNzcy90YWlsd2luZGNzcy9wdWxsLzExNilcXG4qL1xcblxcbiosXFxuOjpiZWZvcmUsXFxuOjphZnRlciB7XFxuICBib3gtc2l6aW5nOiBib3JkZXItYm94OyAvKiAxICovXFxuICBib3JkZXItd2lkdGg6IDA7IC8qIDIgKi9cXG4gIGJvcmRlci1zdHlsZTogc29saWQ7IC8qIDIgKi9cXG4gIGJvcmRlci1jb2xvcjogI2U1ZTdlYjsgLyogMiAqL1xcbn1cXG5cXG46OmJlZm9yZSxcXG46OmFmdGVyIHtcXG4gIC0tdHctY29udGVudDogJyc7XFxufVxcblxcbi8qXFxuMS4gVXNlIGEgY29uc2lzdGVudCBzZW5zaWJsZSBsaW5lLWhlaWdodCBpbiBhbGwgYnJvd3NlcnMuXFxuMi4gUHJldmVudCBhZGp1c3RtZW50cyBvZiBmb250IHNpemUgYWZ0ZXIgb3JpZW50YXRpb24gY2hhbmdlcyBpbiBpT1MuXFxuMy4gVXNlIGEgbW9yZSByZWFkYWJsZSB0YWIgc2l6ZS5cXG40LiBVc2UgdGhlIHVzZXIncyBjb25maWd1cmVkIGBzYW5zYCBmb250LWZhbWlseSBieSBkZWZhdWx0LlxcbjUuIFVzZSB0aGUgdXNlcidzIGNvbmZpZ3VyZWQgYHNhbnNgIGZvbnQtZmVhdHVyZS1zZXR0aW5ncyBieSBkZWZhdWx0LlxcbjYuIFVzZSB0aGUgdXNlcidzIGNvbmZpZ3VyZWQgYHNhbnNgIGZvbnQtdmFyaWF0aW9uLXNldHRpbmdzIGJ5IGRlZmF1bHQuXFxuNy4gRGlzYWJsZSB0YXAgaGlnaGxpZ2h0cyBvbiBpT1NcXG4qL1xcblxcbmh0bWwsXFxuOmhvc3Qge1xcbiAgbGluZS1oZWlnaHQ6IDEuNTsgLyogMSAqL1xcbiAgLXdlYmtpdC10ZXh0LXNpemUtYWRqdXN0OiAxMDAlOyAvKiAyICovXFxuICAtbW96LXRhYi1zaXplOiA0OyAvKiAzICovXFxuICAtby10YWItc2l6ZTogNDtcXG4gICAgIHRhYi1zaXplOiA0OyAvKiAzICovXFxuICBmb250LWZhbWlseTogSW50ZXIsIHNhbnMtc2VyaWY7IC8qIDQgKi9cXG4gIGZvbnQtZmVhdHVyZS1zZXR0aW5nczogbm9ybWFsOyAvKiA1ICovXFxuICBmb250LXZhcmlhdGlvbi1zZXR0aW5nczogbm9ybWFsOyAvKiA2ICovXFxuICAtd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6IHRyYW5zcGFyZW50OyAvKiA3ICovXFxufVxcblxcbi8qXFxuMS4gUmVtb3ZlIHRoZSBtYXJnaW4gaW4gYWxsIGJyb3dzZXJzLlxcbjIuIEluaGVyaXQgbGluZS1oZWlnaHQgZnJvbSBgaHRtbGAgc28gdXNlcnMgY2FuIHNldCB0aGVtIGFzIGEgY2xhc3MgZGlyZWN0bHkgb24gdGhlIGBodG1sYCBlbGVtZW50LlxcbiovXFxuXFxuYm9keSB7XFxuICBtYXJnaW46IDA7IC8qIDEgKi9cXG4gIGxpbmUtaGVpZ2h0OiBpbmhlcml0OyAvKiAyICovXFxufVxcblxcbi8qXFxuMS4gQWRkIHRoZSBjb3JyZWN0IGhlaWdodCBpbiBGaXJlZm94LlxcbjIuIENvcnJlY3QgdGhlIGluaGVyaXRhbmNlIG9mIGJvcmRlciBjb2xvciBpbiBGaXJlZm94LiAoaHR0cHM6Ly9idWd6aWxsYS5tb3ppbGxhLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTkwNjU1KVxcbjMuIEVuc3VyZSBob3Jpem9udGFsIHJ1bGVzIGFyZSB2aXNpYmxlIGJ5IGRlZmF1bHQuXFxuKi9cXG5cXG5ociB7XFxuICBoZWlnaHQ6IDA7IC8qIDEgKi9cXG4gIGNvbG9yOiBpbmhlcml0OyAvKiAyICovXFxuICBib3JkZXItdG9wLXdpZHRoOiAxcHg7IC8qIDMgKi9cXG59XFxuXFxuLypcXG5BZGQgdGhlIGNvcnJlY3QgdGV4dCBkZWNvcmF0aW9uIGluIENocm9tZSwgRWRnZSwgYW5kIFNhZmFyaS5cXG4qL1xcblxcbmFiYnI6d2hlcmUoW3RpdGxlXSkge1xcbiAgLXdlYmtpdC10ZXh0LWRlY29yYXRpb246IHVuZGVybGluZSBkb3R0ZWQ7XFxuICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lIGRvdHRlZDtcXG59XFxuXFxuLypcXG5SZW1vdmUgdGhlIGRlZmF1bHQgZm9udCBzaXplIGFuZCB3ZWlnaHQgZm9yIGhlYWRpbmdzLlxcbiovXFxuXFxuaDEsXFxuaDIsXFxuaDMsXFxuaDQsXFxuaDUsXFxuaDYge1xcbiAgZm9udC1zaXplOiBpbmhlcml0O1xcbiAgZm9udC13ZWlnaHQ6IGluaGVyaXQ7XFxufVxcblxcbi8qXFxuUmVzZXQgbGlua3MgdG8gb3B0aW1pemUgZm9yIG9wdC1pbiBzdHlsaW5nIGluc3RlYWQgb2Ygb3B0LW91dC5cXG4qL1xcblxcbmEge1xcbiAgY29sb3I6IGluaGVyaXQ7XFxuICB0ZXh0LWRlY29yYXRpb246IGluaGVyaXQ7XFxufVxcblxcbi8qXFxuQWRkIHRoZSBjb3JyZWN0IGZvbnQgd2VpZ2h0IGluIEVkZ2UgYW5kIFNhZmFyaS5cXG4qL1xcblxcbmIsXFxuc3Ryb25nIHtcXG4gIGZvbnQtd2VpZ2h0OiBib2xkZXI7XFxufVxcblxcbi8qXFxuMS4gVXNlIHRoZSB1c2VyJ3MgY29uZmlndXJlZCBgbW9ub2AgZm9udC1mYW1pbHkgYnkgZGVmYXVsdC5cXG4yLiBVc2UgdGhlIHVzZXIncyBjb25maWd1cmVkIGBtb25vYCBmb250LWZlYXR1cmUtc2V0dGluZ3MgYnkgZGVmYXVsdC5cXG4zLiBVc2UgdGhlIHVzZXIncyBjb25maWd1cmVkIGBtb25vYCBmb250LXZhcmlhdGlvbi1zZXR0aW5ncyBieSBkZWZhdWx0LlxcbjQuIENvcnJlY3QgdGhlIG9kZCBgZW1gIGZvbnQgc2l6aW5nIGluIGFsbCBicm93c2Vycy5cXG4qL1xcblxcbmNvZGUsXFxua2JkLFxcbnNhbXAsXFxucHJlIHtcXG4gIGZvbnQtZmFtaWx5OiB1aS1tb25vc3BhY2UsIFNGTW9uby1SZWd1bGFyLCBNZW5sbywgTW9uYWNvLCBDb25zb2xhcywgXFxcIkxpYmVyYXRpb24gTW9ub1xcXCIsIFxcXCJDb3VyaWVyIE5ld1xcXCIsIG1vbm9zcGFjZTsgLyogMSAqL1xcbiAgZm9udC1mZWF0dXJlLXNldHRpbmdzOiBub3JtYWw7IC8qIDIgKi9cXG4gIGZvbnQtdmFyaWF0aW9uLXNldHRpbmdzOiBub3JtYWw7IC8qIDMgKi9cXG4gIGZvbnQtc2l6ZTogMWVtOyAvKiA0ICovXFxufVxcblxcbi8qXFxuQWRkIHRoZSBjb3JyZWN0IGZvbnQgc2l6ZSBpbiBhbGwgYnJvd3NlcnMuXFxuKi9cXG5cXG5zbWFsbCB7XFxuICBmb250LXNpemU6IDgwJTtcXG59XFxuXFxuLypcXG5QcmV2ZW50IGBzdWJgIGFuZCBgc3VwYCBlbGVtZW50cyBmcm9tIGFmZmVjdGluZyB0aGUgbGluZSBoZWlnaHQgaW4gYWxsIGJyb3dzZXJzLlxcbiovXFxuXFxuc3ViLFxcbnN1cCB7XFxuICBmb250LXNpemU6IDc1JTtcXG4gIGxpbmUtaGVpZ2h0OiAwO1xcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xcbiAgdmVydGljYWwtYWxpZ246IGJhc2VsaW5lO1xcbn1cXG5cXG5zdWIge1xcbiAgYm90dG9tOiAtMC4yNWVtO1xcbn1cXG5cXG5zdXAge1xcbiAgdG9wOiAtMC41ZW07XFxufVxcblxcbi8qXFxuMS4gUmVtb3ZlIHRleHQgaW5kZW50YXRpb24gZnJvbSB0YWJsZSBjb250ZW50cyBpbiBDaHJvbWUgYW5kIFNhZmFyaS4gKGh0dHBzOi8vYnVncy5jaHJvbWl1bS5vcmcvcC9jaHJvbWl1bS9pc3N1ZXMvZGV0YWlsP2lkPTk5OTA4OCwgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwMTI5NylcXG4yLiBDb3JyZWN0IHRhYmxlIGJvcmRlciBjb2xvciBpbmhlcml0YW5jZSBpbiBhbGwgQ2hyb21lIGFuZCBTYWZhcmkuIChodHRwczovL2J1Z3MuY2hyb21pdW0ub3JnL3AvY2hyb21pdW0vaXNzdWVzL2RldGFpbD9pZD05MzU3MjksIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xOTUwMTYpXFxuMy4gUmVtb3ZlIGdhcHMgYmV0d2VlbiB0YWJsZSBib3JkZXJzIGJ5IGRlZmF1bHQuXFxuKi9cXG5cXG50YWJsZSB7XFxuICB0ZXh0LWluZGVudDogMDsgLyogMSAqL1xcbiAgYm9yZGVyLWNvbG9yOiBpbmhlcml0OyAvKiAyICovXFxuICBib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlOyAvKiAzICovXFxufVxcblxcbi8qXFxuMS4gQ2hhbmdlIHRoZSBmb250IHN0eWxlcyBpbiBhbGwgYnJvd3NlcnMuXFxuMi4gUmVtb3ZlIHRoZSBtYXJnaW4gaW4gRmlyZWZveCBhbmQgU2FmYXJpLlxcbjMuIFJlbW92ZSBkZWZhdWx0IHBhZGRpbmcgaW4gYWxsIGJyb3dzZXJzLlxcbiovXFxuXFxuYnV0dG9uLFxcbmlucHV0LFxcbm9wdGdyb3VwLFxcbnNlbGVjdCxcXG50ZXh0YXJlYSB7XFxuICBmb250LWZhbWlseTogaW5oZXJpdDsgLyogMSAqL1xcbiAgZm9udC1mZWF0dXJlLXNldHRpbmdzOiBpbmhlcml0OyAvKiAxICovXFxuICBmb250LXZhcmlhdGlvbi1zZXR0aW5nczogaW5oZXJpdDsgLyogMSAqL1xcbiAgZm9udC1zaXplOiAxMDAlOyAvKiAxICovXFxuICBmb250LXdlaWdodDogaW5oZXJpdDsgLyogMSAqL1xcbiAgbGluZS1oZWlnaHQ6IGluaGVyaXQ7IC8qIDEgKi9cXG4gIGxldHRlci1zcGFjaW5nOiBpbmhlcml0OyAvKiAxICovXFxuICBjb2xvcjogaW5oZXJpdDsgLyogMSAqL1xcbiAgbWFyZ2luOiAwOyAvKiAyICovXFxuICBwYWRkaW5nOiAwOyAvKiAzICovXFxufVxcblxcbi8qXFxuUmVtb3ZlIHRoZSBpbmhlcml0YW5jZSBvZiB0ZXh0IHRyYW5zZm9ybSBpbiBFZGdlIGFuZCBGaXJlZm94LlxcbiovXFxuXFxuYnV0dG9uLFxcbnNlbGVjdCB7XFxuICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcXG59XFxuXFxuLypcXG4xLiBDb3JyZWN0IHRoZSBpbmFiaWxpdHkgdG8gc3R5bGUgY2xpY2thYmxlIHR5cGVzIGluIGlPUyBhbmQgU2FmYXJpLlxcbjIuIFJlbW92ZSBkZWZhdWx0IGJ1dHRvbiBzdHlsZXMuXFxuKi9cXG5cXG5idXR0b24sXFxuaW5wdXQ6d2hlcmUoW3R5cGU9J2J1dHRvbiddKSxcXG5pbnB1dDp3aGVyZShbdHlwZT0ncmVzZXQnXSksXFxuaW5wdXQ6d2hlcmUoW3R5cGU9J3N1Ym1pdCddKSB7XFxuICAtd2Via2l0LWFwcGVhcmFuY2U6IGJ1dHRvbjsgLyogMSAqL1xcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7IC8qIDIgKi9cXG4gIGJhY2tncm91bmQtaW1hZ2U6IG5vbmU7IC8qIDIgKi9cXG59XFxuXFxuLypcXG5Vc2UgdGhlIG1vZGVybiBGaXJlZm94IGZvY3VzIHN0eWxlIGZvciBhbGwgZm9jdXNhYmxlIGVsZW1lbnRzLlxcbiovXFxuXFxuOi1tb3otZm9jdXNyaW5nIHtcXG4gIG91dGxpbmU6IGF1dG87XFxufVxcblxcbi8qXFxuUmVtb3ZlIHRoZSBhZGRpdGlvbmFsIGA6aW52YWxpZGAgc3R5bGVzIGluIEZpcmVmb3guIChodHRwczovL2dpdGh1Yi5jb20vbW96aWxsYS9nZWNrby1kZXYvYmxvYi8yZjllYWNkOWQzZDk5NWM5MzdiNDI1MWE1NTU3ZDk1ZDQ5NGM5YmUxL2xheW91dC9zdHlsZS9yZXMvZm9ybXMuY3NzI0w3MjgtTDczNylcXG4qL1xcblxcbjotbW96LXVpLWludmFsaWQge1xcbiAgYm94LXNoYWRvdzogbm9uZTtcXG59XFxuXFxuLypcXG5BZGQgdGhlIGNvcnJlY3QgdmVydGljYWwgYWxpZ25tZW50IGluIENocm9tZSBhbmQgRmlyZWZveC5cXG4qL1xcblxcbnByb2dyZXNzIHtcXG4gIHZlcnRpY2FsLWFsaWduOiBiYXNlbGluZTtcXG59XFxuXFxuLypcXG5Db3JyZWN0IHRoZSBjdXJzb3Igc3R5bGUgb2YgaW5jcmVtZW50IGFuZCBkZWNyZW1lbnQgYnV0dG9ucyBpbiBTYWZhcmkuXFxuKi9cXG5cXG46Oi13ZWJraXQtaW5uZXItc3Bpbi1idXR0b24sXFxuOjotd2Via2l0LW91dGVyLXNwaW4tYnV0dG9uIHtcXG4gIGhlaWdodDogYXV0bztcXG59XFxuXFxuLypcXG4xLiBDb3JyZWN0IHRoZSBvZGQgYXBwZWFyYW5jZSBpbiBDaHJvbWUgYW5kIFNhZmFyaS5cXG4yLiBDb3JyZWN0IHRoZSBvdXRsaW5lIHN0eWxlIGluIFNhZmFyaS5cXG4qL1xcblxcblt0eXBlPSdzZWFyY2gnXSB7XFxuICAtd2Via2l0LWFwcGVhcmFuY2U6IHRleHRmaWVsZDsgLyogMSAqL1xcbiAgb3V0bGluZS1vZmZzZXQ6IC0ycHg7IC8qIDIgKi9cXG59XFxuXFxuLypcXG5SZW1vdmUgdGhlIGlubmVyIHBhZGRpbmcgaW4gQ2hyb21lIGFuZCBTYWZhcmkgb24gbWFjT1MuXFxuKi9cXG5cXG46Oi13ZWJraXQtc2VhcmNoLWRlY29yYXRpb24ge1xcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xcbn1cXG5cXG4vKlxcbjEuIENvcnJlY3QgdGhlIGluYWJpbGl0eSB0byBzdHlsZSBjbGlja2FibGUgdHlwZXMgaW4gaU9TIGFuZCBTYWZhcmkuXFxuMi4gQ2hhbmdlIGZvbnQgcHJvcGVydGllcyB0byBgaW5oZXJpdGAgaW4gU2FmYXJpLlxcbiovXFxuXFxuOjotd2Via2l0LWZpbGUtdXBsb2FkLWJ1dHRvbiB7XFxuICAtd2Via2l0LWFwcGVhcmFuY2U6IGJ1dHRvbjsgLyogMSAqL1xcbiAgZm9udDogaW5oZXJpdDsgLyogMiAqL1xcbn1cXG5cXG4vKlxcbkFkZCB0aGUgY29ycmVjdCBkaXNwbGF5IGluIENocm9tZSBhbmQgU2FmYXJpLlxcbiovXFxuXFxuc3VtbWFyeSB7XFxuICBkaXNwbGF5OiBsaXN0LWl0ZW07XFxufVxcblxcbi8qXFxuUmVtb3ZlcyB0aGUgZGVmYXVsdCBzcGFjaW5nIGFuZCBib3JkZXIgZm9yIGFwcHJvcHJpYXRlIGVsZW1lbnRzLlxcbiovXFxuXFxuYmxvY2txdW90ZSxcXG5kbCxcXG5kZCxcXG5oMSxcXG5oMixcXG5oMyxcXG5oNCxcXG5oNSxcXG5oNixcXG5ocixcXG5maWd1cmUsXFxucCxcXG5wcmUge1xcbiAgbWFyZ2luOiAwO1xcbn1cXG5cXG5maWVsZHNldCB7XFxuICBtYXJnaW46IDA7XFxuICBwYWRkaW5nOiAwO1xcbn1cXG5cXG5sZWdlbmQge1xcbiAgcGFkZGluZzogMDtcXG59XFxuXFxub2wsXFxudWwsXFxubWVudSB7XFxuICBsaXN0LXN0eWxlOiBub25lO1xcbiAgbWFyZ2luOiAwO1xcbiAgcGFkZGluZzogMDtcXG59XFxuXFxuLypcXG5SZXNldCBkZWZhdWx0IHN0eWxpbmcgZm9yIGRpYWxvZ3MuXFxuKi9cXG5kaWFsb2cge1xcbiAgcGFkZGluZzogMDtcXG59XFxuXFxuLypcXG5QcmV2ZW50IHJlc2l6aW5nIHRleHRhcmVhcyBob3Jpem9udGFsbHkgYnkgZGVmYXVsdC5cXG4qL1xcblxcbnRleHRhcmVhIHtcXG4gIHJlc2l6ZTogdmVydGljYWw7XFxufVxcblxcbi8qXFxuMS4gUmVzZXQgdGhlIGRlZmF1bHQgcGxhY2Vob2xkZXIgb3BhY2l0eSBpbiBGaXJlZm94LiAoaHR0cHM6Ly9naXRodWIuY29tL3RhaWx3aW5kbGFicy90YWlsd2luZGNzcy9pc3N1ZXMvMzMwMClcXG4yLiBTZXQgdGhlIGRlZmF1bHQgcGxhY2Vob2xkZXIgY29sb3IgdG8gdGhlIHVzZXIncyBjb25maWd1cmVkIGdyYXkgNDAwIGNvbG9yLlxcbiovXFxuXFxuaW5wdXQ6Oi1tb3otcGxhY2Vob2xkZXIsIHRleHRhcmVhOjotbW96LXBsYWNlaG9sZGVyIHtcXG4gIG9wYWNpdHk6IDE7IC8qIDEgKi9cXG4gIGNvbG9yOiAjOWNhM2FmOyAvKiAyICovXFxufVxcblxcbmlucHV0OjpwbGFjZWhvbGRlcixcXG50ZXh0YXJlYTo6cGxhY2Vob2xkZXIge1xcbiAgb3BhY2l0eTogMTsgLyogMSAqL1xcbiAgY29sb3I6ICM5Y2EzYWY7IC8qIDIgKi9cXG59XFxuXFxuLypcXG5TZXQgdGhlIGRlZmF1bHQgY3Vyc29yIGZvciBidXR0b25zLlxcbiovXFxuXFxuYnV0dG9uLFxcbltyb2xlPVxcXCJidXR0b25cXFwiXSB7XFxuICBjdXJzb3I6IHBvaW50ZXI7XFxufVxcblxcbi8qXFxuTWFrZSBzdXJlIGRpc2FibGVkIGJ1dHRvbnMgZG9uJ3QgZ2V0IHRoZSBwb2ludGVyIGN1cnNvci5cXG4qL1xcbjpkaXNhYmxlZCB7XFxuICBjdXJzb3I6IGRlZmF1bHQ7XFxufVxcblxcbi8qXFxuMS4gTWFrZSByZXBsYWNlZCBlbGVtZW50cyBgZGlzcGxheTogYmxvY2tgIGJ5IGRlZmF1bHQuIChodHRwczovL2dpdGh1Yi5jb20vbW96ZGV2cy9jc3NyZW1lZHkvaXNzdWVzLzE0KVxcbjIuIEFkZCBgdmVydGljYWwtYWxpZ246IG1pZGRsZWAgdG8gYWxpZ24gcmVwbGFjZWQgZWxlbWVudHMgbW9yZSBzZW5zaWJseSBieSBkZWZhdWx0LiAoaHR0cHM6Ly9naXRodWIuY29tL2plbnNpbW1vbnMvY3NzcmVtZWR5L2lzc3Vlcy8xNCNpc3N1ZWNvbW1lbnQtNjM0OTM0MjEwKVxcbiAgIFRoaXMgY2FuIHRyaWdnZXIgYSBwb29ybHkgY29uc2lkZXJlZCBsaW50IGVycm9yIGluIHNvbWUgdG9vbHMgYnV0IGlzIGluY2x1ZGVkIGJ5IGRlc2lnbi5cXG4qL1xcblxcbmltZyxcXG5zdmcsXFxudmlkZW8sXFxuY2FudmFzLFxcbmF1ZGlvLFxcbmlmcmFtZSxcXG5lbWJlZCxcXG5vYmplY3Qge1xcbiAgZGlzcGxheTogYmxvY2s7IC8qIDEgKi9cXG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7IC8qIDIgKi9cXG59XFxuXFxuLypcXG5Db25zdHJhaW4gaW1hZ2VzIGFuZCB2aWRlb3MgdG8gdGhlIHBhcmVudCB3aWR0aCBhbmQgcHJlc2VydmUgdGhlaXIgaW50cmluc2ljIGFzcGVjdCByYXRpby4gKGh0dHBzOi8vZ2l0aHViLmNvbS9tb3pkZXZzL2Nzc3JlbWVkeS9pc3N1ZXMvMTQpXFxuKi9cXG5cXG5pbWcsXFxudmlkZW8ge1xcbiAgbWF4LXdpZHRoOiAxMDAlO1xcbiAgaGVpZ2h0OiBhdXRvO1xcbn1cXG5cXG4vKiBNYWtlIGVsZW1lbnRzIHdpdGggdGhlIEhUTUwgaGlkZGVuIGF0dHJpYnV0ZSBzdGF5IGhpZGRlbiBieSBkZWZhdWx0ICovXFxuW2hpZGRlbl06d2hlcmUoOm5vdChbaGlkZGVuPVxcXCJ1bnRpbC1mb3VuZFxcXCJdKSkge1xcbiAgZGlzcGxheTogbm9uZTtcXG59XFxyXFxuLmNvbnRhaW5lciB7XFxuICB3aWR0aDogMTAwJTtcXG59XFxyXFxuQG1lZGlhIChtaW4td2lkdGg6IDY0MHB4KSB7XFxuXFxuICAuY29udGFpbmVyIHtcXG4gICAgbWF4LXdpZHRoOiA2NDBweDtcXG4gIH1cXG59XFxyXFxuQG1lZGlhIChtaW4td2lkdGg6IDc2OHB4KSB7XFxuXFxuICAuY29udGFpbmVyIHtcXG4gICAgbWF4LXdpZHRoOiA3NjhweDtcXG4gIH1cXG59XFxyXFxuQG1lZGlhIChtaW4td2lkdGg6IDEwMjRweCkge1xcblxcbiAgLmNvbnRhaW5lciB7XFxuICAgIG1heC13aWR0aDogMTAyNHB4O1xcbiAgfVxcbn1cXHJcXG5AbWVkaWEgKG1pbi13aWR0aDogMTI4MHB4KSB7XFxuXFxuICAuY29udGFpbmVyIHtcXG4gICAgbWF4LXdpZHRoOiAxMjgwcHg7XFxuICB9XFxufVxcclxcbkBtZWRpYSAobWluLXdpZHRoOiAxNTM2cHgpIHtcXG5cXG4gIC5jb250YWluZXIge1xcbiAgICBtYXgtd2lkdGg6IDE1MzZweDtcXG4gIH1cXG59XFxyXFxuLmZpeGVkIHtcXG4gIHBvc2l0aW9uOiBmaXhlZDtcXG59XFxyXFxuLmFic29sdXRlIHtcXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcXG59XFxyXFxuLnJlbGF0aXZlIHtcXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcXG59XFxyXFxuLmluc2V0LTAge1xcbiAgaW5zZXQ6IDBweDtcXG59XFxyXFxuLmluc2V0LXktMCB7XFxuICB0b3A6IDBweDtcXG4gIGJvdHRvbTogMHB4O1xcbn1cXHJcXG4uLXRvcC00IHtcXG4gIHRvcDogLTFyZW07XFxufVxcclxcbi5ib3R0b20tMTAge1xcbiAgYm90dG9tOiAyLjVyZW07XFxufVxcclxcbi5ib3R0b20tMjAge1xcbiAgYm90dG9tOiA1cmVtO1xcbn1cXHJcXG4ubGVmdC0wIHtcXG4gIGxlZnQ6IDBweDtcXG59XFxyXFxuLmxlZnQtMVxcXFwvMiB7XFxuICBsZWZ0OiA1MCU7XFxufVxcclxcbi5sZWZ0LTFcXFxcLzQge1xcbiAgbGVmdDogMjUlO1xcbn1cXHJcXG4ubGVmdC0xMCB7XFxuICBsZWZ0OiAyLjVyZW07XFxufVxcclxcbi5sZWZ0LTMge1xcbiAgbGVmdDogMC43NXJlbTtcXG59XFxyXFxuLmxlZnQtNCB7XFxuICBsZWZ0OiAxcmVtO1xcbn1cXHJcXG4ucmlnaHQtMCB7XFxuICByaWdodDogMHB4O1xcbn1cXHJcXG4ucmlnaHQtMTAge1xcbiAgcmlnaHQ6IDIuNXJlbTtcXG59XFxyXFxuLnJpZ2h0LTIwIHtcXG4gIHJpZ2h0OiA1cmVtO1xcbn1cXHJcXG4udG9wLTAge1xcbiAgdG9wOiAwcHg7XFxufVxcclxcbi50b3AtMVxcXFwvMiB7XFxuICB0b3A6IDUwJTtcXG59XFxyXFxuLnRvcC0xMCB7XFxuICB0b3A6IDIuNXJlbTtcXG59XFxyXFxuLnRvcC0zMiB7XFxuICB0b3A6IDhyZW07XFxufVxcclxcbi50b3AtNCB7XFxuICB0b3A6IDFyZW07XFxufVxcclxcbi56LTEwIHtcXG4gIHotaW5kZXg6IDEwO1xcbn1cXHJcXG4uei01MCB7XFxuICB6LWluZGV4OiA1MDtcXG59XFxyXFxuLm14LWF1dG8ge1xcbiAgbWFyZ2luLWxlZnQ6IGF1dG87XFxuICBtYXJnaW4tcmlnaHQ6IGF1dG87XFxufVxcclxcbi5tYi0xIHtcXG4gIG1hcmdpbi1ib3R0b206IDAuMjVyZW07XFxufVxcclxcbi5tYi0xMiB7XFxuICBtYXJnaW4tYm90dG9tOiAzcmVtO1xcbn1cXHJcXG4ubWItMTYge1xcbiAgbWFyZ2luLWJvdHRvbTogNHJlbTtcXG59XFxyXFxuLm1iLTIge1xcbiAgbWFyZ2luLWJvdHRvbTogMC41cmVtO1xcbn1cXHJcXG4ubWItMyB7XFxuICBtYXJnaW4tYm90dG9tOiAwLjc1cmVtO1xcbn1cXHJcXG4ubWItNCB7XFxuICBtYXJnaW4tYm90dG9tOiAxcmVtO1xcbn1cXHJcXG4ubWItNiB7XFxuICBtYXJnaW4tYm90dG9tOiAxLjVyZW07XFxufVxcclxcbi5tYi04IHtcXG4gIG1hcmdpbi1ib3R0b206IDJyZW07XFxufVxcclxcbi5tYi1zZWN0aW9uIHtcXG4gIG1hcmdpbi1ib3R0b206IDRyZW07XFxufVxcclxcbi5tbC0xIHtcXG4gIG1hcmdpbi1sZWZ0OiAwLjI1cmVtO1xcbn1cXHJcXG4ubWwtMiB7XFxuICBtYXJnaW4tbGVmdDogMC41cmVtO1xcbn1cXHJcXG4ubXItMSB7XFxuICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XFxufVxcclxcbi5tci0yIHtcXG4gIG1hcmdpbi1yaWdodDogMC41cmVtO1xcbn1cXHJcXG4ubXItMyB7XFxuICBtYXJnaW4tcmlnaHQ6IDAuNzVyZW07XFxufVxcclxcbi5tci00IHtcXG4gIG1hcmdpbi1yaWdodDogMXJlbTtcXG59XFxyXFxuLm10LTBcXFxcLjUge1xcbiAgbWFyZ2luLXRvcDogMC4xMjVyZW07XFxufVxcclxcbi5tdC0xIHtcXG4gIG1hcmdpbi10b3A6IDAuMjVyZW07XFxufVxcclxcbi5tdC0xMiB7XFxuICBtYXJnaW4tdG9wOiAzcmVtO1xcbn1cXHJcXG4ubXQtMTYge1xcbiAgbWFyZ2luLXRvcDogNHJlbTtcXG59XFxyXFxuLm10LTIge1xcbiAgbWFyZ2luLXRvcDogMC41cmVtO1xcbn1cXHJcXG4ubXQtMjAge1xcbiAgbWFyZ2luLXRvcDogNXJlbTtcXG59XFxyXFxuLm10LTQge1xcbiAgbWFyZ2luLXRvcDogMXJlbTtcXG59XFxyXFxuLm10LTgge1xcbiAgbWFyZ2luLXRvcDogMnJlbTtcXG59XFxyXFxuLmxpbmUtY2xhbXAtMiB7XFxuICBvdmVyZmxvdzogaGlkZGVuO1xcbiAgZGlzcGxheTogLXdlYmtpdC1ib3g7XFxuICAtd2Via2l0LWJveC1vcmllbnQ6IHZlcnRpY2FsO1xcbiAgLXdlYmtpdC1saW5lLWNsYW1wOiAyO1xcbn1cXHJcXG4ubGluZS1jbGFtcC0zIHtcXG4gIG92ZXJmbG93OiBoaWRkZW47XFxuICBkaXNwbGF5OiAtd2Via2l0LWJveDtcXG4gIC13ZWJraXQtYm94LW9yaWVudDogdmVydGljYWw7XFxuICAtd2Via2l0LWxpbmUtY2xhbXA6IDM7XFxufVxcclxcbi5ibG9jayB7XFxuICBkaXNwbGF5OiBibG9jaztcXG59XFxyXFxuLmZsZXgge1xcbiAgZGlzcGxheTogZmxleDtcXG59XFxyXFxuLmlubGluZS1mbGV4IHtcXG4gIGRpc3BsYXk6IGlubGluZS1mbGV4O1xcbn1cXHJcXG4uZ3JpZCB7XFxuICBkaXNwbGF5OiBncmlkO1xcbn1cXHJcXG4uaGlkZGVuIHtcXG4gIGRpc3BsYXk6IG5vbmU7XFxufVxcclxcbi5oLTBcXFxcLjUge1xcbiAgaGVpZ2h0OiAwLjEyNXJlbTtcXG59XFxyXFxuLmgtMTAge1xcbiAgaGVpZ2h0OiAyLjVyZW07XFxufVxcclxcbi5oLTEyIHtcXG4gIGhlaWdodDogM3JlbTtcXG59XFxyXFxuLmgtMTYge1xcbiAgaGVpZ2h0OiA0cmVtO1xcbn1cXHJcXG4uaC0yMCB7XFxuICBoZWlnaHQ6IDVyZW07XFxufVxcclxcbi5oLTI0IHtcXG4gIGhlaWdodDogNnJlbTtcXG59XFxyXFxuLmgtMyB7XFxuICBoZWlnaHQ6IDAuNzVyZW07XFxufVxcclxcbi5oLTQge1xcbiAgaGVpZ2h0OiAxcmVtO1xcbn1cXHJcXG4uaC00OCB7XFxuICBoZWlnaHQ6IDEycmVtO1xcbn1cXHJcXG4uaC01IHtcXG4gIGhlaWdodDogMS4yNXJlbTtcXG59XFxyXFxuLmgtNiB7XFxuICBoZWlnaHQ6IDEuNXJlbTtcXG59XFxyXFxuLmgtOCB7XFxuICBoZWlnaHQ6IDJyZW07XFxufVxcclxcbi5oLWF1dG8ge1xcbiAgaGVpZ2h0OiBhdXRvO1xcbn1cXHJcXG4uaC1mdWxsIHtcXG4gIGhlaWdodDogMTAwJTtcXG59XFxyXFxuLm1pbi1oLVxcXFxbNjB2aFxcXFxdIHtcXG4gIG1pbi1oZWlnaHQ6IDYwdmg7XFxufVxcclxcbi53LTEge1xcbiAgd2lkdGg6IDAuMjVyZW07XFxufVxcclxcbi53LTFcXFxcLzIge1xcbiAgd2lkdGg6IDUwJTtcXG59XFxyXFxuLnctMTAge1xcbiAgd2lkdGg6IDIuNXJlbTtcXG59XFxyXFxuLnctMTIge1xcbiAgd2lkdGg6IDNyZW07XFxufVxcclxcbi53LTE2IHtcXG4gIHdpZHRoOiA0cmVtO1xcbn1cXHJcXG4udy0yMCB7XFxuICB3aWR0aDogNXJlbTtcXG59XFxyXFxuLnctMjQge1xcbiAgd2lkdGg6IDZyZW07XFxufVxcclxcbi53LTMge1xcbiAgd2lkdGg6IDAuNzVyZW07XFxufVxcclxcbi53LTQge1xcbiAgd2lkdGg6IDFyZW07XFxufVxcclxcbi53LTUge1xcbiAgd2lkdGg6IDEuMjVyZW07XFxufVxcclxcbi53LTYge1xcbiAgd2lkdGg6IDEuNXJlbTtcXG59XFxyXFxuLnctNjQge1xcbiAgd2lkdGg6IDE2cmVtO1xcbn1cXHJcXG4udy04IHtcXG4gIHdpZHRoOiAycmVtO1xcbn1cXHJcXG4udy1mdWxsIHtcXG4gIHdpZHRoOiAxMDAlO1xcbn1cXHJcXG4ubWF4LXctMnhsIHtcXG4gIG1heC13aWR0aDogNDJyZW07XFxufVxcclxcbi5tYXgtdy0zeGwge1xcbiAgbWF4LXdpZHRoOiA0OHJlbTtcXG59XFxyXFxuLm1heC13LTR4bCB7XFxuICBtYXgtd2lkdGg6IDU2cmVtO1xcbn1cXHJcXG4ubWF4LXctZnVsbCB7XFxuICBtYXgtd2lkdGg6IDEwMCU7XFxufVxcclxcbi5tYXgtdy1tZCB7XFxuICBtYXgtd2lkdGg6IDI4cmVtO1xcbn1cXHJcXG4ubWF4LXctc2NyZWVuLWxnIHtcXG4gIG1heC13aWR0aDogMTAyNHB4O1xcbn1cXHJcXG4ubWF4LXctc2NyZWVuLW1kIHtcXG4gIG1heC13aWR0aDogNzY4cHg7XFxufVxcclxcbi5tYXgtdy1zY3JlZW4teGwge1xcbiAgbWF4LXdpZHRoOiAxMjgwcHg7XFxufVxcclxcbi5mbGV4LTEge1xcbiAgZmxleDogMSAxIDAlO1xcbn1cXHJcXG4uZmxleC1zaHJpbmstMCB7XFxuICBmbGV4LXNocmluazogMDtcXG59XFxyXFxuLi10cmFuc2xhdGUteC0xXFxcXC8yIHtcXG4gIC0tdHctdHJhbnNsYXRlLXg6IC01MCU7XFxuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSh2YXIoLS10dy10cmFuc2xhdGUteCksIHZhcigtLXR3LXRyYW5zbGF0ZS15KSkgcm90YXRlKHZhcigtLXR3LXJvdGF0ZSkpIHNrZXdYKHZhcigtLXR3LXNrZXcteCkpIHNrZXdZKHZhcigtLXR3LXNrZXcteSkpIHNjYWxlWCh2YXIoLS10dy1zY2FsZS14KSkgc2NhbGVZKHZhcigtLXR3LXNjYWxlLXkpKTtcXG59XFxyXFxuLi10cmFuc2xhdGUteS0xXFxcXC8yIHtcXG4gIC0tdHctdHJhbnNsYXRlLXk6IC01MCU7XFxuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSh2YXIoLS10dy10cmFuc2xhdGUteCksIHZhcigtLXR3LXRyYW5zbGF0ZS15KSkgcm90YXRlKHZhcigtLXR3LXJvdGF0ZSkpIHNrZXdYKHZhcigtLXR3LXNrZXcteCkpIHNrZXdZKHZhcigtLXR3LXNrZXcteSkpIHNjYWxlWCh2YXIoLS10dy1zY2FsZS14KSkgc2NhbGVZKHZhcigtLXR3LXNjYWxlLXkpKTtcXG59XFxyXFxuLnRyYW5zbGF0ZS14LTAge1xcbiAgLS10dy10cmFuc2xhdGUteDogMHB4O1xcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUodmFyKC0tdHctdHJhbnNsYXRlLXgpLCB2YXIoLS10dy10cmFuc2xhdGUteSkpIHJvdGF0ZSh2YXIoLS10dy1yb3RhdGUpKSBza2V3WCh2YXIoLS10dy1za2V3LXgpKSBza2V3WSh2YXIoLS10dy1za2V3LXkpKSBzY2FsZVgodmFyKC0tdHctc2NhbGUteCkpIHNjYWxlWSh2YXIoLS10dy1zY2FsZS15KSk7XFxufVxcclxcbi50cmFuc2xhdGUteC1mdWxsIHtcXG4gIC0tdHctdHJhbnNsYXRlLXg6IDEwMCU7XFxuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSh2YXIoLS10dy10cmFuc2xhdGUteCksIHZhcigtLXR3LXRyYW5zbGF0ZS15KSkgcm90YXRlKHZhcigtLXR3LXJvdGF0ZSkpIHNrZXdYKHZhcigtLXR3LXNrZXcteCkpIHNrZXdZKHZhcigtLXR3LXNrZXcteSkpIHNjYWxlWCh2YXIoLS10dy1zY2FsZS14KSkgc2NhbGVZKHZhcigtLXR3LXNjYWxlLXkpKTtcXG59XFxyXFxuLnJvdGF0ZS05MCB7XFxuICAtLXR3LXJvdGF0ZTogOTBkZWc7XFxuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSh2YXIoLS10dy10cmFuc2xhdGUteCksIHZhcigtLXR3LXRyYW5zbGF0ZS15KSkgcm90YXRlKHZhcigtLXR3LXJvdGF0ZSkpIHNrZXdYKHZhcigtLXR3LXNrZXcteCkpIHNrZXdZKHZhcigtLXR3LXNrZXcteSkpIHNjYWxlWCh2YXIoLS10dy1zY2FsZS14KSkgc2NhbGVZKHZhcigtLXR3LXNjYWxlLXkpKTtcXG59XFxyXFxuLnNjYWxlLTEwNSB7XFxuICAtLXR3LXNjYWxlLXg6IDEuMDU7XFxuICAtLXR3LXNjYWxlLXk6IDEuMDU7XFxuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSh2YXIoLS10dy10cmFuc2xhdGUteCksIHZhcigtLXR3LXRyYW5zbGF0ZS15KSkgcm90YXRlKHZhcigtLXR3LXJvdGF0ZSkpIHNrZXdYKHZhcigtLXR3LXNrZXcteCkpIHNrZXdZKHZhcigtLXR3LXNrZXcteSkpIHNjYWxlWCh2YXIoLS10dy1zY2FsZS14KSkgc2NhbGVZKHZhcigtLXR3LXNjYWxlLXkpKTtcXG59XFxyXFxuLnRyYW5zZm9ybSB7XFxuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSh2YXIoLS10dy10cmFuc2xhdGUteCksIHZhcigtLXR3LXRyYW5zbGF0ZS15KSkgcm90YXRlKHZhcigtLXR3LXJvdGF0ZSkpIHNrZXdYKHZhcigtLXR3LXNrZXcteCkpIHNrZXdZKHZhcigtLXR3LXNrZXcteSkpIHNjYWxlWCh2YXIoLS10dy1zY2FsZS14KSkgc2NhbGVZKHZhcigtLXR3LXNjYWxlLXkpKTtcXG59XFxyXFxuQGtleWZyYW1lcyBzcGluIHtcXG5cXG4gIHRvIHtcXG4gICAgdHJhbnNmb3JtOiByb3RhdGUoMzYwZGVnKTtcXG4gIH1cXG59XFxyXFxuLmFuaW1hdGUtc3BpbiB7XFxuICBhbmltYXRpb246IHNwaW4gMXMgbGluZWFyIGluZmluaXRlO1xcbn1cXHJcXG4uY3Vyc29yLXBvaW50ZXIge1xcbiAgY3Vyc29yOiBwb2ludGVyO1xcbn1cXHJcXG4ucmVzaXplLW5vbmUge1xcbiAgcmVzaXplOiBub25lO1xcbn1cXHJcXG4uZ3JpZC1jb2xzLTEge1xcbiAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoMSwgbWlubWF4KDAsIDFmcikpO1xcbn1cXHJcXG4uZ3JpZC1jb2xzLTIge1xcbiAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoMiwgbWlubWF4KDAsIDFmcikpO1xcbn1cXHJcXG4uZmxleC1yb3cge1xcbiAgZmxleC1kaXJlY3Rpb246IHJvdztcXG59XFxyXFxuLmZsZXgtcm93LXJldmVyc2Uge1xcbiAgZmxleC1kaXJlY3Rpb246IHJvdy1yZXZlcnNlO1xcbn1cXHJcXG4uZmxleC1jb2wge1xcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcXG59XFxyXFxuLmZsZXgtd3JhcCB7XFxuICBmbGV4LXdyYXA6IHdyYXA7XFxufVxcclxcbi5pdGVtcy1zdGFydCB7XFxuICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcXG59XFxyXFxuLml0ZW1zLWNlbnRlciB7XFxuICBhbGlnbi1pdGVtczogY2VudGVyO1xcbn1cXHJcXG4uaXRlbXMtYmFzZWxpbmUge1xcbiAgYWxpZ24taXRlbXM6IGJhc2VsaW5lO1xcbn1cXHJcXG4uanVzdGlmeS1jZW50ZXIge1xcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XFxufVxcclxcbi5qdXN0aWZ5LWJldHdlZW4ge1xcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xcbn1cXHJcXG4uZ2FwLTEge1xcbiAgZ2FwOiAwLjI1cmVtO1xcbn1cXHJcXG4uZ2FwLTEyIHtcXG4gIGdhcDogM3JlbTtcXG59XFxyXFxuLmdhcC0yIHtcXG4gIGdhcDogMC41cmVtO1xcbn1cXHJcXG4uZ2FwLTMge1xcbiAgZ2FwOiAwLjc1cmVtO1xcbn1cXHJcXG4uZ2FwLTQge1xcbiAgZ2FwOiAxcmVtO1xcbn1cXHJcXG4uZ2FwLTYge1xcbiAgZ2FwOiAxLjVyZW07XFxufVxcclxcbi5nYXAtOCB7XFxuICBnYXA6IDJyZW07XFxufVxcclxcbi5zcGFjZS14LTQgPiA6bm90KFtoaWRkZW5dKSB+IDpub3QoW2hpZGRlbl0pIHtcXG4gIC0tdHctc3BhY2UteC1yZXZlcnNlOiAwO1xcbiAgbWFyZ2luLXJpZ2h0OiBjYWxjKDFyZW0gKiB2YXIoLS10dy1zcGFjZS14LXJldmVyc2UpKTtcXG4gIG1hcmdpbi1sZWZ0OiBjYWxjKDFyZW0gKiBjYWxjKDEgLSB2YXIoLS10dy1zcGFjZS14LXJldmVyc2UpKSk7XFxufVxcclxcbi5zcGFjZS14LTYgPiA6bm90KFtoaWRkZW5dKSB+IDpub3QoW2hpZGRlbl0pIHtcXG4gIC0tdHctc3BhY2UteC1yZXZlcnNlOiAwO1xcbiAgbWFyZ2luLXJpZ2h0OiBjYWxjKDEuNXJlbSAqIHZhcigtLXR3LXNwYWNlLXgtcmV2ZXJzZSkpO1xcbiAgbWFyZ2luLWxlZnQ6IGNhbGMoMS41cmVtICogY2FsYygxIC0gdmFyKC0tdHctc3BhY2UteC1yZXZlcnNlKSkpO1xcbn1cXHJcXG4uc3BhY2UteS0xID4gOm5vdChbaGlkZGVuXSkgfiA6bm90KFtoaWRkZW5dKSB7XFxuICAtLXR3LXNwYWNlLXktcmV2ZXJzZTogMDtcXG4gIG1hcmdpbi10b3A6IGNhbGMoMC4yNXJlbSAqIGNhbGMoMSAtIHZhcigtLXR3LXNwYWNlLXktcmV2ZXJzZSkpKTtcXG4gIG1hcmdpbi1ib3R0b206IGNhbGMoMC4yNXJlbSAqIHZhcigtLXR3LXNwYWNlLXktcmV2ZXJzZSkpO1xcbn1cXHJcXG4uc3BhY2UteS0xMiA+IDpub3QoW2hpZGRlbl0pIH4gOm5vdChbaGlkZGVuXSkge1xcbiAgLS10dy1zcGFjZS15LXJldmVyc2U6IDA7XFxuICBtYXJnaW4tdG9wOiBjYWxjKDNyZW0gKiBjYWxjKDEgLSB2YXIoLS10dy1zcGFjZS15LXJldmVyc2UpKSk7XFxuICBtYXJnaW4tYm90dG9tOiBjYWxjKDNyZW0gKiB2YXIoLS10dy1zcGFjZS15LXJldmVyc2UpKTtcXG59XFxyXFxuLnNwYWNlLXktMiA+IDpub3QoW2hpZGRlbl0pIH4gOm5vdChbaGlkZGVuXSkge1xcbiAgLS10dy1zcGFjZS15LXJldmVyc2U6IDA7XFxuICBtYXJnaW4tdG9wOiBjYWxjKDAuNXJlbSAqIGNhbGMoMSAtIHZhcigtLXR3LXNwYWNlLXktcmV2ZXJzZSkpKTtcXG4gIG1hcmdpbi1ib3R0b206IGNhbGMoMC41cmVtICogdmFyKC0tdHctc3BhY2UteS1yZXZlcnNlKSk7XFxufVxcclxcbi5zcGFjZS15LTMgPiA6bm90KFtoaWRkZW5dKSB+IDpub3QoW2hpZGRlbl0pIHtcXG4gIC0tdHctc3BhY2UteS1yZXZlcnNlOiAwO1xcbiAgbWFyZ2luLXRvcDogY2FsYygwLjc1cmVtICogY2FsYygxIC0gdmFyKC0tdHctc3BhY2UteS1yZXZlcnNlKSkpO1xcbiAgbWFyZ2luLWJvdHRvbTogY2FsYygwLjc1cmVtICogdmFyKC0tdHctc3BhY2UteS1yZXZlcnNlKSk7XFxufVxcclxcbi5zcGFjZS15LTQgPiA6bm90KFtoaWRkZW5dKSB+IDpub3QoW2hpZGRlbl0pIHtcXG4gIC0tdHctc3BhY2UteS1yZXZlcnNlOiAwO1xcbiAgbWFyZ2luLXRvcDogY2FsYygxcmVtICogY2FsYygxIC0gdmFyKC0tdHctc3BhY2UteS1yZXZlcnNlKSkpO1xcbiAgbWFyZ2luLWJvdHRvbTogY2FsYygxcmVtICogdmFyKC0tdHctc3BhY2UteS1yZXZlcnNlKSk7XFxufVxcclxcbi5zcGFjZS15LTYgPiA6bm90KFtoaWRkZW5dKSB+IDpub3QoW2hpZGRlbl0pIHtcXG4gIC0tdHctc3BhY2UteS1yZXZlcnNlOiAwO1xcbiAgbWFyZ2luLXRvcDogY2FsYygxLjVyZW0gKiBjYWxjKDEgLSB2YXIoLS10dy1zcGFjZS15LXJldmVyc2UpKSk7XFxuICBtYXJnaW4tYm90dG9tOiBjYWxjKDEuNXJlbSAqIHZhcigtLXR3LXNwYWNlLXktcmV2ZXJzZSkpO1xcbn1cXHJcXG4uc3BhY2UteS04ID4gOm5vdChbaGlkZGVuXSkgfiA6bm90KFtoaWRkZW5dKSB7XFxuICAtLXR3LXNwYWNlLXktcmV2ZXJzZTogMDtcXG4gIG1hcmdpbi10b3A6IGNhbGMoMnJlbSAqIGNhbGMoMSAtIHZhcigtLXR3LXNwYWNlLXktcmV2ZXJzZSkpKTtcXG4gIG1hcmdpbi1ib3R0b206IGNhbGMoMnJlbSAqIHZhcigtLXR3LXNwYWNlLXktcmV2ZXJzZSkpO1xcbn1cXHJcXG4ub3ZlcmZsb3ctaGlkZGVuIHtcXG4gIG92ZXJmbG93OiBoaWRkZW47XFxufVxcclxcbi5yb3VuZGVkIHtcXG4gIGJvcmRlci1yYWRpdXM6IDAuMjVyZW07XFxufVxcclxcbi5yb3VuZGVkLTJ4bCB7XFxuICBib3JkZXItcmFkaXVzOiAxcmVtO1xcbn1cXHJcXG4ucm91bmRlZC1mdWxsIHtcXG4gIGJvcmRlci1yYWRpdXM6IDk5OTlweDtcXG59XFxyXFxuLnJvdW5kZWQtbGcge1xcbiAgYm9yZGVyLXJhZGl1czogMC41cmVtO1xcbn1cXHJcXG4ucm91bmRlZC14bCB7XFxuICBib3JkZXItcmFkaXVzOiAwLjc1cmVtO1xcbn1cXHJcXG4uYm9yZGVyIHtcXG4gIGJvcmRlci13aWR0aDogMXB4O1xcbn1cXHJcXG4uYm9yZGVyLTIge1xcbiAgYm9yZGVyLXdpZHRoOiAycHg7XFxufVxcclxcbi5ib3JkZXItdCB7XFxuICBib3JkZXItdG9wLXdpZHRoOiAxcHg7XFxufVxcclxcbi5ib3JkZXItZ3JheS0xMDAge1xcbiAgLS10dy1ib3JkZXItb3BhY2l0eTogMTtcXG4gIGJvcmRlci1jb2xvcjogcmdiKDI0MyAyNDQgMjQ2IC8gdmFyKC0tdHctYm9yZGVyLW9wYWNpdHksIDEpKTtcXG59XFxyXFxuLmJvcmRlci1ncmF5LTIwMCB7XFxuICAtLXR3LWJvcmRlci1vcGFjaXR5OiAxO1xcbiAgYm9yZGVyLWNvbG9yOiByZ2IoMjI5IDIzMSAyMzUgLyB2YXIoLS10dy1ib3JkZXItb3BhY2l0eSwgMSkpO1xcbn1cXHJcXG4uYm9yZGVyLWdyYXktMzAwIHtcXG4gIC0tdHctYm9yZGVyLW9wYWNpdHk6IDE7XFxuICBib3JkZXItY29sb3I6IHJnYigyMDkgMjEzIDIxOSAvIHZhcigtLXR3LWJvcmRlci1vcGFjaXR5LCAxKSk7XFxufVxcclxcbi5ib3JkZXItZ3JheS03MDAge1xcbiAgLS10dy1ib3JkZXItb3BhY2l0eTogMTtcXG4gIGJvcmRlci1jb2xvcjogcmdiKDU1IDY1IDgxIC8gdmFyKC0tdHctYm9yZGVyLW9wYWNpdHksIDEpKTtcXG59XFxyXFxuLmJvcmRlci1ncmVlbi0yMDAge1xcbiAgLS10dy1ib3JkZXItb3BhY2l0eTogMTtcXG4gIGJvcmRlci1jb2xvcjogcmdiKDE4NyAyNDcgMjA4IC8gdmFyKC0tdHctYm9yZGVyLW9wYWNpdHksIDEpKTtcXG59XFxyXFxuLmJvcmRlci1wcmltYXJ5IHtcXG4gIC0tdHctYm9yZGVyLW9wYWNpdHk6IDE7XFxuICBib3JkZXItY29sb3I6IHJnYig1MSA1MSA1MSAvIHZhcigtLXR3LWJvcmRlci1vcGFjaXR5LCAxKSk7XFxufVxcclxcbi5ib3JkZXItcmVkLTIwMCB7XFxuICAtLXR3LWJvcmRlci1vcGFjaXR5OiAxO1xcbiAgYm9yZGVyLWNvbG9yOiByZ2IoMjU0IDIwMiAyMDIgLyB2YXIoLS10dy1ib3JkZXItb3BhY2l0eSwgMSkpO1xcbn1cXHJcXG4uYm9yZGVyLXdoaXRlIHtcXG4gIC0tdHctYm9yZGVyLW9wYWNpdHk6IDE7XFxuICBib3JkZXItY29sb3I6IHJnYigyNTUgMjU1IDI1NSAvIHZhcigtLXR3LWJvcmRlci1vcGFjaXR5LCAxKSk7XFxufVxcclxcbi5ib3JkZXItd2hpdGVcXFxcLzIwIHtcXG4gIGJvcmRlci1jb2xvcjogcmdiKDI1NSAyNTUgMjU1IC8gMC4yKTtcXG59XFxyXFxuLmJvcmRlci15ZWxsb3ctMjAwIHtcXG4gIC0tdHctYm9yZGVyLW9wYWNpdHk6IDE7XFxuICBib3JkZXItY29sb3I6IHJnYigyNTQgMjQwIDEzOCAvIHZhcigtLXR3LWJvcmRlci1vcGFjaXR5LCAxKSk7XFxufVxcclxcbi5ib3JkZXItdC10cmFuc3BhcmVudCB7XFxuICBib3JkZXItdG9wLWNvbG9yOiB0cmFuc3BhcmVudDtcXG59XFxyXFxuLmJnLWFjY2VudCB7XFxuICAtLXR3LWJnLW9wYWNpdHk6IDE7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMCAxMDYgMjU1IC8gdmFyKC0tdHctYmctb3BhY2l0eSwgMSkpO1xcbn1cXHJcXG4uYmctYWNjZW50XFxcXC8yMCB7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMCAxMDYgMjU1IC8gMC4yKTtcXG59XFxyXFxuLmJnLWJhY2tncm91bmQge1xcbiAgLS10dy1iZy1vcGFjaXR5OiAxO1xcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDI1NSAyNTUgMjU1IC8gdmFyKC0tdHctYmctb3BhY2l0eSwgMSkpO1xcbn1cXHJcXG4uYmctYmxhY2tcXFxcLzEwIHtcXG4gIGJhY2tncm91bmQtY29sb3I6IHJnYigwIDAgMCAvIDAuMSk7XFxufVxcclxcbi5iZy1ibHVlLTEwMCB7XFxuICAtLXR3LWJnLW9wYWNpdHk6IDE7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMjE5IDIzNCAyNTQgLyB2YXIoLS10dy1iZy1vcGFjaXR5LCAxKSk7XFxufVxcclxcbi5iZy1ibHVlLTUwIHtcXG4gIC0tdHctYmctb3BhY2l0eTogMTtcXG4gIGJhY2tncm91bmQtY29sb3I6IHJnYigyMzkgMjQ2IDI1NSAvIHZhcigtLXR3LWJnLW9wYWNpdHksIDEpKTtcXG59XFxyXFxuLmJnLWdyYXktMTAwIHtcXG4gIC0tdHctYmctb3BhY2l0eTogMTtcXG4gIGJhY2tncm91bmQtY29sb3I6IHJnYigyNDMgMjQ0IDI0NiAvIHZhcigtLXR3LWJnLW9wYWNpdHksIDEpKTtcXG59XFxyXFxuLmJnLWdyYXktNTAge1xcbiAgLS10dy1iZy1vcGFjaXR5OiAxO1xcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDI0OSAyNTAgMjUxIC8gdmFyKC0tdHctYmctb3BhY2l0eSwgMSkpO1xcbn1cXHJcXG4uYmctZ3JheS05MDAge1xcbiAgLS10dy1iZy1vcGFjaXR5OiAxO1xcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDE3IDI0IDM5IC8gdmFyKC0tdHctYmctb3BhY2l0eSwgMSkpO1xcbn1cXHJcXG4uYmctZ3JlZW4tMTAwIHtcXG4gIC0tdHctYmctb3BhY2l0eTogMTtcXG4gIGJhY2tncm91bmQtY29sb3I6IHJnYigyMjAgMjUyIDIzMSAvIHZhcigtLXR3LWJnLW9wYWNpdHksIDEpKTtcXG59XFxyXFxuLmJnLWdyZWVuLTUwIHtcXG4gIC0tdHctYmctb3BhY2l0eTogMTtcXG4gIGJhY2tncm91bmQtY29sb3I6IHJnYigyNDAgMjUzIDI0NCAvIHZhcigtLXR3LWJnLW9wYWNpdHksIDEpKTtcXG59XFxyXFxuLmJnLWdyZWVuLTUwMCB7XFxuICAtLXR3LWJnLW9wYWNpdHk6IDE7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMzQgMTk3IDk0IC8gdmFyKC0tdHctYmctb3BhY2l0eSwgMSkpO1xcbn1cXHJcXG4uYmctb3JhbmdlLTEwMCB7XFxuICAtLXR3LWJnLW9wYWNpdHk6IDE7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMjU1IDIzNyAyMTMgLyB2YXIoLS10dy1iZy1vcGFjaXR5LCAxKSk7XFxufVxcclxcbi5iZy1wdXJwbGUtMTAwIHtcXG4gIC0tdHctYmctb3BhY2l0eTogMTtcXG4gIGJhY2tncm91bmQtY29sb3I6IHJnYigyNDMgMjMyIDI1NSAvIHZhcigtLXR3LWJnLW9wYWNpdHksIDEpKTtcXG59XFxyXFxuLmJnLXB1cnBsZS01MDAge1xcbiAgLS10dy1iZy1vcGFjaXR5OiAxO1xcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDE2OCA4NSAyNDcgLyB2YXIoLS10dy1iZy1vcGFjaXR5LCAxKSk7XFxufVxcclxcbi5iZy1yZWQtMTAwIHtcXG4gIC0tdHctYmctb3BhY2l0eTogMTtcXG4gIGJhY2tncm91bmQtY29sb3I6IHJnYigyNTQgMjI2IDIyNiAvIHZhcigtLXR3LWJnLW9wYWNpdHksIDEpKTtcXG59XFxyXFxuLmJnLXJlZC01MCB7XFxuICAtLXR3LWJnLW9wYWNpdHk6IDE7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMjU0IDI0MiAyNDIgLyB2YXIoLS10dy1iZy1vcGFjaXR5LCAxKSk7XFxufVxcclxcbi5iZy10ZWFsLTEwMCB7XFxuICAtLXR3LWJnLW9wYWNpdHk6IDE7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMjA0IDI1MSAyNDEgLyB2YXIoLS10dy1iZy1vcGFjaXR5LCAxKSk7XFxufVxcclxcbi5iZy13aGl0ZSB7XFxuICAtLXR3LWJnLW9wYWNpdHk6IDE7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMjU1IDI1NSAyNTUgLyB2YXIoLS10dy1iZy1vcGFjaXR5LCAxKSk7XFxufVxcclxcbi5iZy13aGl0ZVxcXFwvMTAge1xcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDI1NSAyNTUgMjU1IC8gMC4xKTtcXG59XFxyXFxuLmJnLXdoaXRlXFxcXC8yMCB7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMjU1IDI1NSAyNTUgLyAwLjIpO1xcbn1cXHJcXG4uYmctd2hpdGVcXFxcLzUge1xcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDI1NSAyNTUgMjU1IC8gMC4wNSk7XFxufVxcclxcbi5iZy13aGl0ZVxcXFwvODAge1xcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDI1NSAyNTUgMjU1IC8gMC44KTtcXG59XFxyXFxuLmJnLXllbGxvdy01MCB7XFxuICAtLXR3LWJnLW9wYWNpdHk6IDE7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMjU0IDI1MiAyMzIgLyB2YXIoLS10dy1iZy1vcGFjaXR5LCAxKSk7XFxufVxcclxcbi5iZy1ncmFkaWVudC10by1iciB7XFxuICBiYWNrZ3JvdW5kLWltYWdlOiBsaW5lYXItZ3JhZGllbnQodG8gYm90dG9tIHJpZ2h0LCB2YXIoLS10dy1ncmFkaWVudC1zdG9wcykpO1xcbn1cXHJcXG4uYmctZ3JhZGllbnQtdG8tciB7XFxuICBiYWNrZ3JvdW5kLWltYWdlOiBsaW5lYXItZ3JhZGllbnQodG8gcmlnaHQsIHZhcigtLXR3LWdyYWRpZW50LXN0b3BzKSk7XFxufVxcclxcbi5mcm9tLWFjY2VudCB7XFxuICAtLXR3LWdyYWRpZW50LWZyb206ICMwMDZBRkYgdmFyKC0tdHctZ3JhZGllbnQtZnJvbS1wb3NpdGlvbik7XFxuICAtLXR3LWdyYWRpZW50LXRvOiByZ2IoMCAxMDYgMjU1IC8gMCkgdmFyKC0tdHctZ3JhZGllbnQtdG8tcG9zaXRpb24pO1xcbiAgLS10dy1ncmFkaWVudC1zdG9wczogdmFyKC0tdHctZ3JhZGllbnQtZnJvbSksIHZhcigtLXR3LWdyYWRpZW50LXRvKTtcXG59XFxyXFxuLmZyb20tYWNjZW50XFxcXC8xMCB7XFxuICAtLXR3LWdyYWRpZW50LWZyb206IHJnYigwIDEwNiAyNTUgLyAwLjEpIHZhcigtLXR3LWdyYWRpZW50LWZyb20tcG9zaXRpb24pO1xcbiAgLS10dy1ncmFkaWVudC10bzogcmdiKDAgMTA2IDI1NSAvIDApIHZhcigtLXR3LWdyYWRpZW50LXRvLXBvc2l0aW9uKTtcXG4gIC0tdHctZ3JhZGllbnQtc3RvcHM6IHZhcigtLXR3LWdyYWRpZW50LWZyb20pLCB2YXIoLS10dy1ncmFkaWVudC10byk7XFxufVxcclxcbi5mcm9tLWJsdWUtNTAge1xcbiAgLS10dy1ncmFkaWVudC1mcm9tOiAjZWZmNmZmIHZhcigtLXR3LWdyYWRpZW50LWZyb20tcG9zaXRpb24pO1xcbiAgLS10dy1ncmFkaWVudC10bzogcmdiKDIzOSAyNDYgMjU1IC8gMCkgdmFyKC0tdHctZ3JhZGllbnQtdG8tcG9zaXRpb24pO1xcbiAgLS10dy1ncmFkaWVudC1zdG9wczogdmFyKC0tdHctZ3JhZGllbnQtZnJvbSksIHZhcigtLXR3LWdyYWRpZW50LXRvKTtcXG59XFxyXFxuLmZyb20tZ3JheS01MCB7XFxuICAtLXR3LWdyYWRpZW50LWZyb206ICNmOWZhZmIgdmFyKC0tdHctZ3JhZGllbnQtZnJvbS1wb3NpdGlvbik7XFxuICAtLXR3LWdyYWRpZW50LXRvOiByZ2IoMjQ5IDI1MCAyNTEgLyAwKSB2YXIoLS10dy1ncmFkaWVudC10by1wb3NpdGlvbik7XFxuICAtLXR3LWdyYWRpZW50LXN0b3BzOiB2YXIoLS10dy1ncmFkaWVudC1mcm9tKSwgdmFyKC0tdHctZ3JhZGllbnQtdG8pO1xcbn1cXHJcXG4uZnJvbS1ncmVlbi01MCB7XFxuICAtLXR3LWdyYWRpZW50LWZyb206ICNmMGZkZjQgdmFyKC0tdHctZ3JhZGllbnQtZnJvbS1wb3NpdGlvbik7XFxuICAtLXR3LWdyYWRpZW50LXRvOiByZ2IoMjQwIDI1MyAyNDQgLyAwKSB2YXIoLS10dy1ncmFkaWVudC10by1wb3NpdGlvbik7XFxuICAtLXR3LWdyYWRpZW50LXN0b3BzOiB2YXIoLS10dy1ncmFkaWVudC1mcm9tKSwgdmFyKC0tdHctZ3JhZGllbnQtdG8pO1xcbn1cXHJcXG4uZnJvbS1vcmFuZ2UtNTAge1xcbiAgLS10dy1ncmFkaWVudC1mcm9tOiAjZmZmN2VkIHZhcigtLXR3LWdyYWRpZW50LWZyb20tcG9zaXRpb24pO1xcbiAgLS10dy1ncmFkaWVudC10bzogcmdiKDI1NSAyNDcgMjM3IC8gMCkgdmFyKC0tdHctZ3JhZGllbnQtdG8tcG9zaXRpb24pO1xcbiAgLS10dy1ncmFkaWVudC1zdG9wczogdmFyKC0tdHctZ3JhZGllbnQtZnJvbSksIHZhcigtLXR3LWdyYWRpZW50LXRvKTtcXG59XFxyXFxuLmZyb20tcHVycGxlLTUwIHtcXG4gIC0tdHctZ3JhZGllbnQtZnJvbTogI2ZhZjVmZiB2YXIoLS10dy1ncmFkaWVudC1mcm9tLXBvc2l0aW9uKTtcXG4gIC0tdHctZ3JhZGllbnQtdG86IHJnYigyNTAgMjQ1IDI1NSAvIDApIHZhcigtLXR3LWdyYWRpZW50LXRvLXBvc2l0aW9uKTtcXG4gIC0tdHctZ3JhZGllbnQtc3RvcHM6IHZhcigtLXR3LWdyYWRpZW50LWZyb20pLCB2YXIoLS10dy1ncmFkaWVudC10byk7XFxufVxcclxcbi5mcm9tLXllbGxvdy0zMDAge1xcbiAgLS10dy1ncmFkaWVudC1mcm9tOiAjZmRlMDQ3IHZhcigtLXR3LWdyYWRpZW50LWZyb20tcG9zaXRpb24pO1xcbiAgLS10dy1ncmFkaWVudC10bzogcmdiKDI1MyAyMjQgNzEgLyAwKSB2YXIoLS10dy1ncmFkaWVudC10by1wb3NpdGlvbik7XFxuICAtLXR3LWdyYWRpZW50LXN0b3BzOiB2YXIoLS10dy1ncmFkaWVudC1mcm9tKSwgdmFyKC0tdHctZ3JhZGllbnQtdG8pO1xcbn1cXHJcXG4udmlhLWJsdWUtNjAwIHtcXG4gIC0tdHctZ3JhZGllbnQtdG86IHJnYigzNyA5OSAyMzUgLyAwKSAgdmFyKC0tdHctZ3JhZGllbnQtdG8tcG9zaXRpb24pO1xcbiAgLS10dy1ncmFkaWVudC1zdG9wczogdmFyKC0tdHctZ3JhZGllbnQtZnJvbSksICMyNTYzZWIgdmFyKC0tdHctZ3JhZGllbnQtdmlhLXBvc2l0aW9uKSwgdmFyKC0tdHctZ3JhZGllbnQtdG8pO1xcbn1cXHJcXG4udG8tYWNjZW50XFxcXC8yMCB7XFxuICAtLXR3LWdyYWRpZW50LXRvOiByZ2IoMCAxMDYgMjU1IC8gMC4yKSB2YXIoLS10dy1ncmFkaWVudC10by1wb3NpdGlvbik7XFxufVxcclxcbi50by1ibHVlLTEwMCB7XFxuICAtLXR3LWdyYWRpZW50LXRvOiAjZGJlYWZlIHZhcigtLXR3LWdyYWRpZW50LXRvLXBvc2l0aW9uKTtcXG59XFxyXFxuLnRvLWJsdWUtNTAge1xcbiAgLS10dy1ncmFkaWVudC10bzogI2VmZjZmZiB2YXIoLS10dy1ncmFkaWVudC10by1wb3NpdGlvbik7XFxufVxcclxcbi50by1ibHVlLTYwMCB7XFxuICAtLXR3LWdyYWRpZW50LXRvOiAjMjU2M2ViIHZhcigtLXR3LWdyYWRpZW50LXRvLXBvc2l0aW9uKTtcXG59XFxyXFxuLnRvLWdyYXktMTAwIHtcXG4gIC0tdHctZ3JhZGllbnQtdG86ICNmM2Y0ZjYgdmFyKC0tdHctZ3JhZGllbnQtdG8tcG9zaXRpb24pO1xcbn1cXHJcXG4udG8taW5kaWdvLTEwMCB7XFxuICAtLXR3LWdyYWRpZW50LXRvOiAjZTBlN2ZmIHZhcigtLXR3LWdyYWRpZW50LXRvLXBvc2l0aW9uKTtcXG59XFxyXFxuLnRvLWluZGlnby01MCB7XFxuICAtLXR3LWdyYWRpZW50LXRvOiAjZWVmMmZmIHZhcigtLXR3LWdyYWRpZW50LXRvLXBvc2l0aW9uKTtcXG59XFxyXFxuLnRvLW9yYW5nZS0zMDAge1xcbiAgLS10dy1ncmFkaWVudC10bzogI2ZkYmE3NCB2YXIoLS10dy1ncmFkaWVudC10by1wb3NpdGlvbik7XFxufVxcclxcbi50by1wdXJwbGUtNjAwIHtcXG4gIC0tdHctZ3JhZGllbnQtdG86ICM5MzMzZWEgdmFyKC0tdHctZ3JhZGllbnQtdG8tcG9zaXRpb24pO1xcbn1cXHJcXG4udG8tcmVkLTEwMCB7XFxuICAtLXR3LWdyYWRpZW50LXRvOiAjZmVlMmUyIHZhcigtLXR3LWdyYWRpZW50LXRvLXBvc2l0aW9uKTtcXG59XFxyXFxuLmJnLWNsaXAtdGV4dCB7XFxuICAtd2Via2l0LWJhY2tncm91bmQtY2xpcDogdGV4dDtcXG4gICAgICAgICAgYmFja2dyb3VuZC1jbGlwOiB0ZXh0O1xcbn1cXHJcXG4ucC0yIHtcXG4gIHBhZGRpbmc6IDAuNXJlbTtcXG59XFxyXFxuLnAtMyB7XFxuICBwYWRkaW5nOiAwLjc1cmVtO1xcbn1cXHJcXG4ucC00IHtcXG4gIHBhZGRpbmc6IDFyZW07XFxufVxcclxcbi5wLTYge1xcbiAgcGFkZGluZzogMS41cmVtO1xcbn1cXHJcXG4ucC04IHtcXG4gIHBhZGRpbmc6IDJyZW07XFxufVxcclxcbi5weC0yIHtcXG4gIHBhZGRpbmctbGVmdDogMC41cmVtO1xcbiAgcGFkZGluZy1yaWdodDogMC41cmVtO1xcbn1cXHJcXG4ucHgtMyB7XFxuICBwYWRkaW5nLWxlZnQ6IDAuNzVyZW07XFxuICBwYWRkaW5nLXJpZ2h0OiAwLjc1cmVtO1xcbn1cXHJcXG4ucHgtNCB7XFxuICBwYWRkaW5nLWxlZnQ6IDFyZW07XFxuICBwYWRkaW5nLXJpZ2h0OiAxcmVtO1xcbn1cXHJcXG4ucHgtNiB7XFxuICBwYWRkaW5nLWxlZnQ6IDEuNXJlbTtcXG4gIHBhZGRpbmctcmlnaHQ6IDEuNXJlbTtcXG59XFxyXFxuLnB4LTgge1xcbiAgcGFkZGluZy1sZWZ0OiAycmVtO1xcbiAgcGFkZGluZy1yaWdodDogMnJlbTtcXG59XFxyXFxuLnB5LTEge1xcbiAgcGFkZGluZy10b3A6IDAuMjVyZW07XFxuICBwYWRkaW5nLWJvdHRvbTogMC4yNXJlbTtcXG59XFxyXFxuLnB5LTEyIHtcXG4gIHBhZGRpbmctdG9wOiAzcmVtO1xcbiAgcGFkZGluZy1ib3R0b206IDNyZW07XFxufVxcclxcbi5weS0xNiB7XFxuICBwYWRkaW5nLXRvcDogNHJlbTtcXG4gIHBhZGRpbmctYm90dG9tOiA0cmVtO1xcbn1cXHJcXG4ucHktMiB7XFxuICBwYWRkaW5nLXRvcDogMC41cmVtO1xcbiAgcGFkZGluZy1ib3R0b206IDAuNXJlbTtcXG59XFxyXFxuLnB5LTIwIHtcXG4gIHBhZGRpbmctdG9wOiA1cmVtO1xcbiAgcGFkZGluZy1ib3R0b206IDVyZW07XFxufVxcclxcbi5weS0zIHtcXG4gIHBhZGRpbmctdG9wOiAwLjc1cmVtO1xcbiAgcGFkZGluZy1ib3R0b206IDAuNzVyZW07XFxufVxcclxcbi5weS00IHtcXG4gIHBhZGRpbmctdG9wOiAxcmVtO1xcbiAgcGFkZGluZy1ib3R0b206IDFyZW07XFxufVxcclxcbi5weS1zZWN0aW9uIHtcXG4gIHBhZGRpbmctdG9wOiA0cmVtO1xcbiAgcGFkZGluZy1ib3R0b206IDRyZW07XFxufVxcclxcbi5wYi0xMiB7XFxuICBwYWRkaW5nLWJvdHRvbTogM3JlbTtcXG59XFxyXFxuLnBiLTI0IHtcXG4gIHBhZGRpbmctYm90dG9tOiA2cmVtO1xcbn1cXHJcXG4ucGItNiB7XFxuICBwYWRkaW5nLWJvdHRvbTogMS41cmVtO1xcbn1cXHJcXG4ucGwtMTAge1xcbiAgcGFkZGluZy1sZWZ0OiAyLjVyZW07XFxufVxcclxcbi5wbC04IHtcXG4gIHBhZGRpbmctbGVmdDogMnJlbTtcXG59XFxyXFxuLnByLTQge1xcbiAgcGFkZGluZy1yaWdodDogMXJlbTtcXG59XFxyXFxuLnByLTgge1xcbiAgcGFkZGluZy1yaWdodDogMnJlbTtcXG59XFxyXFxuLnB0LTE2IHtcXG4gIHBhZGRpbmctdG9wOiA0cmVtO1xcbn1cXHJcXG4ucHQtNCB7XFxuICBwYWRkaW5nLXRvcDogMXJlbTtcXG59XFxyXFxuLnB0LTYge1xcbiAgcGFkZGluZy10b3A6IDEuNXJlbTtcXG59XFxyXFxuLnB0LTgge1xcbiAgcGFkZGluZy10b3A6IDJyZW07XFxufVxcclxcbi5wYi04IHtcXG4gIHBhZGRpbmctYm90dG9tOiAycmVtO1xcbn1cXHJcXG4udGV4dC1sZWZ0IHtcXG4gIHRleHQtYWxpZ246IGxlZnQ7XFxufVxcclxcbi50ZXh0LWNlbnRlciB7XFxuICB0ZXh0LWFsaWduOiBjZW50ZXI7XFxufVxcclxcbi50ZXh0LXJpZ2h0IHtcXG4gIHRleHQtYWxpZ246IHJpZ2h0O1xcbn1cXHJcXG4udGV4dC0yeGwge1xcbiAgZm9udC1zaXplOiAxLjVyZW07XFxuICBsaW5lLWhlaWdodDogMnJlbTtcXG59XFxyXFxuLnRleHQtM3hsIHtcXG4gIGZvbnQtc2l6ZTogMS44NzVyZW07XFxuICBsaW5lLWhlaWdodDogMi4yNXJlbTtcXG59XFxyXFxuLnRleHQtNHhsIHtcXG4gIGZvbnQtc2l6ZTogMi4yNXJlbTtcXG4gIGxpbmUtaGVpZ2h0OiAyLjVyZW07XFxufVxcclxcbi50ZXh0LTV4bCB7XFxuICBmb250LXNpemU6IDNyZW07XFxuICBsaW5lLWhlaWdodDogMTtcXG59XFxyXFxuLnRleHQtYmFzZSB7XFxuICBmb250LXNpemU6IDFyZW07XFxuICBsaW5lLWhlaWdodDogMS41cmVtO1xcbn1cXHJcXG4udGV4dC1sZyB7XFxuICBmb250LXNpemU6IDEuMTI1cmVtO1xcbiAgbGluZS1oZWlnaHQ6IDEuNzVyZW07XFxufVxcclxcbi50ZXh0LXNtIHtcXG4gIGZvbnQtc2l6ZTogMC44NzVyZW07XFxuICBsaW5lLWhlaWdodDogMS4yNXJlbTtcXG59XFxyXFxuLnRleHQteGwge1xcbiAgZm9udC1zaXplOiAxLjI1cmVtO1xcbiAgbGluZS1oZWlnaHQ6IDEuNzVyZW07XFxufVxcclxcbi50ZXh0LXhzIHtcXG4gIGZvbnQtc2l6ZTogMC43NXJlbTtcXG4gIGxpbmUtaGVpZ2h0OiAxcmVtO1xcbn1cXHJcXG4uZm9udC1ib2xkIHtcXG4gIGZvbnQtd2VpZ2h0OiA3MDA7XFxufVxcclxcbi5mb250LW1lZGl1bSB7XFxuICBmb250LXdlaWdodDogNTAwO1xcbn1cXHJcXG4uZm9udC1zZW1pYm9sZCB7XFxuICBmb250LXdlaWdodDogNjAwO1xcbn1cXHJcXG4uaXRhbGljIHtcXG4gIGZvbnQtc3R5bGU6IGl0YWxpYztcXG59XFxyXFxuLmxlYWRpbmctcmVsYXhlZCB7XFxuICBsaW5lLWhlaWdodDogMS42MjU7XFxufVxcclxcbi50ZXh0LWFjY2VudCB7XFxuICAtLXR3LXRleHQtb3BhY2l0eTogMTtcXG4gIGNvbG9yOiByZ2IoMCAxMDYgMjU1IC8gdmFyKC0tdHctdGV4dC1vcGFjaXR5LCAxKSk7XFxufVxcclxcbi50ZXh0LWJsdWUtMTAwIHtcXG4gIC0tdHctdGV4dC1vcGFjaXR5OiAxO1xcbiAgY29sb3I6IHJnYigyMTkgMjM0IDI1NCAvIHZhcigtLXR3LXRleHQtb3BhY2l0eSwgMSkpO1xcbn1cXHJcXG4udGV4dC1ibHVlLTIwMCB7XFxuICAtLXR3LXRleHQtb3BhY2l0eTogMTtcXG4gIGNvbG9yOiByZ2IoMTkxIDIxOSAyNTQgLyB2YXIoLS10dy10ZXh0LW9wYWNpdHksIDEpKTtcXG59XFxyXFxuLnRleHQtYmx1ZS01MDAge1xcbiAgLS10dy10ZXh0LW9wYWNpdHk6IDE7XFxuICBjb2xvcjogcmdiKDU5IDEzMCAyNDYgLyB2YXIoLS10dy10ZXh0LW9wYWNpdHksIDEpKTtcXG59XFxyXFxuLnRleHQtYmx1ZS02MDAge1xcbiAgLS10dy10ZXh0LW9wYWNpdHk6IDE7XFxuICBjb2xvcjogcmdiKDM3IDk5IDIzNSAvIHZhcigtLXR3LXRleHQtb3BhY2l0eSwgMSkpO1xcbn1cXHJcXG4udGV4dC1ncmF5LTMwMCB7XFxuICAtLXR3LXRleHQtb3BhY2l0eTogMTtcXG4gIGNvbG9yOiByZ2IoMjA5IDIxMyAyMTkgLyB2YXIoLS10dy10ZXh0LW9wYWNpdHksIDEpKTtcXG59XFxyXFxuLnRleHQtZ3JheS00MDAge1xcbiAgLS10dy10ZXh0LW9wYWNpdHk6IDE7XFxuICBjb2xvcjogcmdiKDE1NiAxNjMgMTc1IC8gdmFyKC0tdHctdGV4dC1vcGFjaXR5LCAxKSk7XFxufVxcclxcbi50ZXh0LWdyYXktNTAwIHtcXG4gIC0tdHctdGV4dC1vcGFjaXR5OiAxO1xcbiAgY29sb3I6IHJnYigxMDcgMTE0IDEyOCAvIHZhcigtLXR3LXRleHQtb3BhY2l0eSwgMSkpO1xcbn1cXHJcXG4udGV4dC1ncmF5LTYwMCB7XFxuICAtLXR3LXRleHQtb3BhY2l0eTogMTtcXG4gIGNvbG9yOiByZ2IoNzUgODUgOTkgLyB2YXIoLS10dy10ZXh0LW9wYWNpdHksIDEpKTtcXG59XFxyXFxuLnRleHQtZ3JheS03MDAge1xcbiAgLS10dy10ZXh0LW9wYWNpdHk6IDE7XFxuICBjb2xvcjogcmdiKDU1IDY1IDgxIC8gdmFyKC0tdHctdGV4dC1vcGFjaXR5LCAxKSk7XFxufVxcclxcbi50ZXh0LWdyZWVuLTMwMCB7XFxuICAtLXR3LXRleHQtb3BhY2l0eTogMTtcXG4gIGNvbG9yOiByZ2IoMTM0IDIzOSAxNzIgLyB2YXIoLS10dy10ZXh0LW9wYWNpdHksIDEpKTtcXG59XFxyXFxuLnRleHQtZ3JlZW4tNTAwIHtcXG4gIC0tdHctdGV4dC1vcGFjaXR5OiAxO1xcbiAgY29sb3I6IHJnYigzNCAxOTcgOTQgLyB2YXIoLS10dy10ZXh0LW9wYWNpdHksIDEpKTtcXG59XFxyXFxuLnRleHQtZ3JlZW4tNjAwIHtcXG4gIC0tdHctdGV4dC1vcGFjaXR5OiAxO1xcbiAgY29sb3I6IHJnYigyMiAxNjMgNzQgLyB2YXIoLS10dy10ZXh0LW9wYWNpdHksIDEpKTtcXG59XFxyXFxuLnRleHQtZ3JlZW4tNzAwIHtcXG4gIC0tdHctdGV4dC1vcGFjaXR5OiAxO1xcbiAgY29sb3I6IHJnYigyMSAxMjggNjEgLyB2YXIoLS10dy10ZXh0LW9wYWNpdHksIDEpKTtcXG59XFxyXFxuLnRleHQtZ3JlZW4tODAwIHtcXG4gIC0tdHctdGV4dC1vcGFjaXR5OiAxO1xcbiAgY29sb3I6IHJnYigyMiAxMDEgNTIgLyB2YXIoLS10dy10ZXh0LW9wYWNpdHksIDEpKTtcXG59XFxyXFxuLnRleHQtaW5kaWdvLTUwMCB7XFxuICAtLXR3LXRleHQtb3BhY2l0eTogMTtcXG4gIGNvbG9yOiByZ2IoOTkgMTAyIDI0MSAvIHZhcigtLXR3LXRleHQtb3BhY2l0eSwgMSkpO1xcbn1cXHJcXG4udGV4dC1vcmFuZ2UtNTAwIHtcXG4gIC0tdHctdGV4dC1vcGFjaXR5OiAxO1xcbiAgY29sb3I6IHJnYigyNDkgMTE1IDIyIC8gdmFyKC0tdHctdGV4dC1vcGFjaXR5LCAxKSk7XFxufVxcclxcbi50ZXh0LW9yYW5nZS02MDAge1xcbiAgLS10dy10ZXh0LW9wYWNpdHk6IDE7XFxuICBjb2xvcjogcmdiKDIzNCA4OCAxMiAvIHZhcigtLXR3LXRleHQtb3BhY2l0eSwgMSkpO1xcbn1cXHJcXG4udGV4dC1wcmltYXJ5IHtcXG4gIC0tdHctdGV4dC1vcGFjaXR5OiAxO1xcbiAgY29sb3I6IHJnYig1MSA1MSA1MSAvIHZhcigtLXR3LXRleHQtb3BhY2l0eSwgMSkpO1xcbn1cXHJcXG4udGV4dC1wdXJwbGUtMzAwIHtcXG4gIC0tdHctdGV4dC1vcGFjaXR5OiAxO1xcbiAgY29sb3I6IHJnYigyMTYgMTgwIDI1NCAvIHZhcigtLXR3LXRleHQtb3BhY2l0eSwgMSkpO1xcbn1cXHJcXG4udGV4dC1wdXJwbGUtNTAwIHtcXG4gIC0tdHctdGV4dC1vcGFjaXR5OiAxO1xcbiAgY29sb3I6IHJnYigxNjggODUgMjQ3IC8gdmFyKC0tdHctdGV4dC1vcGFjaXR5LCAxKSk7XFxufVxcclxcbi50ZXh0LXB1cnBsZS02MDAge1xcbiAgLS10dy10ZXh0LW9wYWNpdHk6IDE7XFxuICBjb2xvcjogcmdiKDE0NyA1MSAyMzQgLyB2YXIoLS10dy10ZXh0LW9wYWNpdHksIDEpKTtcXG59XFxyXFxuLnRleHQtcmVkLTUwMCB7XFxuICAtLXR3LXRleHQtb3BhY2l0eTogMTtcXG4gIGNvbG9yOiByZ2IoMjM5IDY4IDY4IC8gdmFyKC0tdHctdGV4dC1vcGFjaXR5LCAxKSk7XFxufVxcclxcbi50ZXh0LXJlZC02MDAge1xcbiAgLS10dy10ZXh0LW9wYWNpdHk6IDE7XFxuICBjb2xvcjogcmdiKDIyMCAzOCAzOCAvIHZhcigtLXR3LXRleHQtb3BhY2l0eSwgMSkpO1xcbn1cXHJcXG4udGV4dC1yZWQtNzAwIHtcXG4gIC0tdHctdGV4dC1vcGFjaXR5OiAxO1xcbiAgY29sb3I6IHJnYigxODUgMjggMjggLyB2YXIoLS10dy10ZXh0LW9wYWNpdHksIDEpKTtcXG59XFxyXFxuLnRleHQtdGVhbC02MDAge1xcbiAgLS10dy10ZXh0LW9wYWNpdHk6IDE7XFxuICBjb2xvcjogcmdiKDEzIDE0OCAxMzYgLyB2YXIoLS10dy10ZXh0LW9wYWNpdHksIDEpKTtcXG59XFxyXFxuLnRleHQtdHJhbnNwYXJlbnQge1xcbiAgY29sb3I6IHRyYW5zcGFyZW50O1xcbn1cXHJcXG4udGV4dC13aGl0ZSB7XFxuICAtLXR3LXRleHQtb3BhY2l0eTogMTtcXG4gIGNvbG9yOiByZ2IoMjU1IDI1NSAyNTUgLyB2YXIoLS10dy10ZXh0LW9wYWNpdHksIDEpKTtcXG59XFxyXFxuLnRleHQteWVsbG93LTMwMCB7XFxuICAtLXR3LXRleHQtb3BhY2l0eTogMTtcXG4gIGNvbG9yOiByZ2IoMjUzIDIyNCA3MSAvIHZhcigtLXR3LXRleHQtb3BhY2l0eSwgMSkpO1xcbn1cXHJcXG4udGV4dC15ZWxsb3ctNTAwIHtcXG4gIC0tdHctdGV4dC1vcGFjaXR5OiAxO1xcbiAgY29sb3I6IHJnYigyMzQgMTc5IDggLyB2YXIoLS10dy10ZXh0LW9wYWNpdHksIDEpKTtcXG59XFxyXFxuLnRleHQteWVsbG93LTYwMCB7XFxuICAtLXR3LXRleHQtb3BhY2l0eTogMTtcXG4gIGNvbG9yOiByZ2IoMjAyIDEzOCA0IC8gdmFyKC0tdHctdGV4dC1vcGFjaXR5LCAxKSk7XFxufVxcclxcbi50ZXh0LXllbGxvdy03MDAge1xcbiAgLS10dy10ZXh0LW9wYWNpdHk6IDE7XFxuICBjb2xvcjogcmdiKDE2MSA5OCA3IC8gdmFyKC0tdHctdGV4dC1vcGFjaXR5LCAxKSk7XFxufVxcclxcbi50ZXh0LXllbGxvdy04MDAge1xcbiAgLS10dy10ZXh0LW9wYWNpdHk6IDE7XFxuICBjb2xvcjogcmdiKDEzMyA3NyAxNCAvIHZhcigtLXR3LXRleHQtb3BhY2l0eSwgMSkpO1xcbn1cXHJcXG4ubGluZS10aHJvdWdoIHtcXG4gIHRleHQtZGVjb3JhdGlvbi1saW5lOiBsaW5lLXRocm91Z2g7XFxufVxcclxcbi5vcGFjaXR5LTgwIHtcXG4gIG9wYWNpdHk6IDAuODtcXG59XFxyXFxuLnNoYWRvdy1sZyB7XFxuICAtLXR3LXNoYWRvdzogMCAxMHB4IDE1cHggLTNweCByZ2IoMCAwIDAgLyAwLjEpLCAwIDRweCA2cHggLTRweCByZ2IoMCAwIDAgLyAwLjEpO1xcbiAgLS10dy1zaGFkb3ctY29sb3JlZDogMCAxMHB4IDE1cHggLTNweCB2YXIoLS10dy1zaGFkb3ctY29sb3IpLCAwIDRweCA2cHggLTRweCB2YXIoLS10dy1zaGFkb3ctY29sb3IpO1xcbiAgYm94LXNoYWRvdzogdmFyKC0tdHctcmluZy1vZmZzZXQtc2hhZG93LCAwIDAgIzAwMDApLCB2YXIoLS10dy1yaW5nLXNoYWRvdywgMCAwICMwMDAwKSwgdmFyKC0tdHctc2hhZG93KTtcXG59XFxyXFxuLnNoYWRvdy1tZCB7XFxuICAtLXR3LXNoYWRvdzogMCA0cHggNnB4IC0xcHggcmdiKDAgMCAwIC8gMC4xKSwgMCAycHggNHB4IC0ycHggcmdiKDAgMCAwIC8gMC4xKTtcXG4gIC0tdHctc2hhZG93LWNvbG9yZWQ6IDAgNHB4IDZweCAtMXB4IHZhcigtLXR3LXNoYWRvdy1jb2xvciksIDAgMnB4IDRweCAtMnB4IHZhcigtLXR3LXNoYWRvdy1jb2xvcik7XFxuICBib3gtc2hhZG93OiB2YXIoLS10dy1yaW5nLW9mZnNldC1zaGFkb3csIDAgMCAjMDAwMCksIHZhcigtLXR3LXJpbmctc2hhZG93LCAwIDAgIzAwMDApLCB2YXIoLS10dy1zaGFkb3cpO1xcbn1cXHJcXG4uc2hhZG93LXNtIHtcXG4gIC0tdHctc2hhZG93OiAwIDFweCAycHggMCByZ2IoMCAwIDAgLyAwLjA1KTtcXG4gIC0tdHctc2hhZG93LWNvbG9yZWQ6IDAgMXB4IDJweCAwIHZhcigtLXR3LXNoYWRvdy1jb2xvcik7XFxuICBib3gtc2hhZG93OiB2YXIoLS10dy1yaW5nLW9mZnNldC1zaGFkb3csIDAgMCAjMDAwMCksIHZhcigtLXR3LXJpbmctc2hhZG93LCAwIDAgIzAwMDApLCB2YXIoLS10dy1zaGFkb3cpO1xcbn1cXHJcXG4ub3V0bGluZS1ub25lIHtcXG4gIG91dGxpbmU6IDJweCBzb2xpZCB0cmFuc3BhcmVudDtcXG4gIG91dGxpbmUtb2Zmc2V0OiAycHg7XFxufVxcclxcbi5yaW5nLTIge1xcbiAgLS10dy1yaW5nLW9mZnNldC1zaGFkb3c6IHZhcigtLXR3LXJpbmctaW5zZXQpIDAgMCAwIHZhcigtLXR3LXJpbmctb2Zmc2V0LXdpZHRoKSB2YXIoLS10dy1yaW5nLW9mZnNldC1jb2xvcik7XFxuICAtLXR3LXJpbmctc2hhZG93OiB2YXIoLS10dy1yaW5nLWluc2V0KSAwIDAgMCBjYWxjKDJweCArIHZhcigtLXR3LXJpbmctb2Zmc2V0LXdpZHRoKSkgdmFyKC0tdHctcmluZy1jb2xvcik7XFxuICBib3gtc2hhZG93OiB2YXIoLS10dy1yaW5nLW9mZnNldC1zaGFkb3cpLCB2YXIoLS10dy1yaW5nLXNoYWRvdyksIHZhcigtLXR3LXNoYWRvdywgMCAwICMwMDAwKTtcXG59XFxyXFxuLnJpbmctYWNjZW50IHtcXG4gIC0tdHctcmluZy1vcGFjaXR5OiAxO1xcbiAgLS10dy1yaW5nLWNvbG9yOiByZ2IoMCAxMDYgMjU1IC8gdmFyKC0tdHctcmluZy1vcGFjaXR5LCAxKSk7XFxufVxcclxcbi5maWx0ZXIge1xcbiAgZmlsdGVyOiB2YXIoLS10dy1ibHVyKSB2YXIoLS10dy1icmlnaHRuZXNzKSB2YXIoLS10dy1jb250cmFzdCkgdmFyKC0tdHctZ3JheXNjYWxlKSB2YXIoLS10dy1odWUtcm90YXRlKSB2YXIoLS10dy1pbnZlcnQpIHZhcigtLXR3LXNhdHVyYXRlKSB2YXIoLS10dy1zZXBpYSkgdmFyKC0tdHctZHJvcC1zaGFkb3cpO1xcbn1cXHJcXG4uYmFja2Ryb3AtYmx1ci1zbSB7XFxuICAtLXR3LWJhY2tkcm9wLWJsdXI6IGJsdXIoNHB4KTtcXG4gIC13ZWJraXQtYmFja2Ryb3AtZmlsdGVyOiB2YXIoLS10dy1iYWNrZHJvcC1ibHVyKSB2YXIoLS10dy1iYWNrZHJvcC1icmlnaHRuZXNzKSB2YXIoLS10dy1iYWNrZHJvcC1jb250cmFzdCkgdmFyKC0tdHctYmFja2Ryb3AtZ3JheXNjYWxlKSB2YXIoLS10dy1iYWNrZHJvcC1odWUtcm90YXRlKSB2YXIoLS10dy1iYWNrZHJvcC1pbnZlcnQpIHZhcigtLXR3LWJhY2tkcm9wLW9wYWNpdHkpIHZhcigtLXR3LWJhY2tkcm9wLXNhdHVyYXRlKSB2YXIoLS10dy1iYWNrZHJvcC1zZXBpYSk7XFxuICBiYWNrZHJvcC1maWx0ZXI6IHZhcigtLXR3LWJhY2tkcm9wLWJsdXIpIHZhcigtLXR3LWJhY2tkcm9wLWJyaWdodG5lc3MpIHZhcigtLXR3LWJhY2tkcm9wLWNvbnRyYXN0KSB2YXIoLS10dy1iYWNrZHJvcC1ncmF5c2NhbGUpIHZhcigtLXR3LWJhY2tkcm9wLWh1ZS1yb3RhdGUpIHZhcigtLXR3LWJhY2tkcm9wLWludmVydCkgdmFyKC0tdHctYmFja2Ryb3Atb3BhY2l0eSkgdmFyKC0tdHctYmFja2Ryb3Atc2F0dXJhdGUpIHZhcigtLXR3LWJhY2tkcm9wLXNlcGlhKTtcXG59XFxyXFxuLnRyYW5zaXRpb24ge1xcbiAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogY29sb3IsIGJhY2tncm91bmQtY29sb3IsIGJvcmRlci1jb2xvciwgdGV4dC1kZWNvcmF0aW9uLWNvbG9yLCBmaWxsLCBzdHJva2UsIG9wYWNpdHksIGJveC1zaGFkb3csIHRyYW5zZm9ybSwgZmlsdGVyLCAtd2Via2l0LWJhY2tkcm9wLWZpbHRlcjtcXG4gIHRyYW5zaXRpb24tcHJvcGVydHk6IGNvbG9yLCBiYWNrZ3JvdW5kLWNvbG9yLCBib3JkZXItY29sb3IsIHRleHQtZGVjb3JhdGlvbi1jb2xvciwgZmlsbCwgc3Ryb2tlLCBvcGFjaXR5LCBib3gtc2hhZG93LCB0cmFuc2Zvcm0sIGZpbHRlciwgYmFja2Ryb3AtZmlsdGVyO1xcbiAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogY29sb3IsIGJhY2tncm91bmQtY29sb3IsIGJvcmRlci1jb2xvciwgdGV4dC1kZWNvcmF0aW9uLWNvbG9yLCBmaWxsLCBzdHJva2UsIG9wYWNpdHksIGJveC1zaGFkb3csIHRyYW5zZm9ybSwgZmlsdGVyLCBiYWNrZHJvcC1maWx0ZXIsIC13ZWJraXQtYmFja2Ryb3AtZmlsdGVyO1xcbiAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjQsIDAsIDAuMiwgMSk7XFxuICB0cmFuc2l0aW9uLWR1cmF0aW9uOiAxNTBtcztcXG59XFxyXFxuLnRyYW5zaXRpb24tYWxsIHtcXG4gIHRyYW5zaXRpb24tcHJvcGVydHk6IGFsbDtcXG4gIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMC40LCAwLCAwLjIsIDEpO1xcbiAgdHJhbnNpdGlvbi1kdXJhdGlvbjogMTUwbXM7XFxufVxcclxcbi50cmFuc2l0aW9uLWNvbG9ycyB7XFxuICB0cmFuc2l0aW9uLXByb3BlcnR5OiBjb2xvciwgYmFja2dyb3VuZC1jb2xvciwgYm9yZGVyLWNvbG9yLCB0ZXh0LWRlY29yYXRpb24tY29sb3IsIGZpbGwsIHN0cm9rZTtcXG4gIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMC40LCAwLCAwLjIsIDEpO1xcbiAgdHJhbnNpdGlvbi1kdXJhdGlvbjogMTUwbXM7XFxufVxcclxcbi50cmFuc2l0aW9uLXNoYWRvdyB7XFxuICB0cmFuc2l0aW9uLXByb3BlcnR5OiBib3gtc2hhZG93O1xcbiAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjQsIDAsIDAuMiwgMSk7XFxuICB0cmFuc2l0aW9uLWR1cmF0aW9uOiAxNTBtcztcXG59XFxyXFxuLnRyYW5zaXRpb24tdHJhbnNmb3JtIHtcXG4gIHRyYW5zaXRpb24tcHJvcGVydHk6IHRyYW5zZm9ybTtcXG4gIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMC40LCAwLCAwLjIsIDEpO1xcbiAgdHJhbnNpdGlvbi1kdXJhdGlvbjogMTUwbXM7XFxufVxcclxcbi5kdXJhdGlvbi0zMDAge1xcbiAgdHJhbnNpdGlvbi1kdXJhdGlvbjogMzAwbXM7XFxufVxcclxcblxcclxcbmJvZHkge1xcbiAgLS10dy1iZy1vcGFjaXR5OiAxO1xcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDI1NSAyNTUgMjU1IC8gdmFyKC0tdHctYmctb3BhY2l0eSwgMSkpO1xcbiAgZm9udC1mYW1pbHk6IEludGVyLCBzYW5zLXNlcmlmO1xcbiAgLS10dy10ZXh0LW9wYWNpdHk6IDE7XFxuICBjb2xvcjogcmdiKDUxIDUxIDUxIC8gdmFyKC0tdHctdGV4dC1vcGFjaXR5LCAxKSk7XFxufVxcclxcblxcclxcbm1haW4ge1xcbiAgZGlzcGxheTogZmxleDtcXG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XFxuICBnYXA6IDRyZW07XFxufVxcclxcblxcclxcbi8qIOaWh+acrOaIquaWreagt+W8jyAqL1xcclxcbi5saW5lLWNsYW1wLTIge1xcclxcbiAgZGlzcGxheTogLXdlYmtpdC1ib3g7XFxyXFxuICAtd2Via2l0LWxpbmUtY2xhbXA6IDI7XFxyXFxuICAtd2Via2l0LWJveC1vcmllbnQ6IHZlcnRpY2FsO1xcclxcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcXHJcXG59XFxyXFxuXFxyXFxuLmxpbmUtY2xhbXAtMyB7XFxyXFxuICBkaXNwbGF5OiAtd2Via2l0LWJveDtcXHJcXG4gIC13ZWJraXQtbGluZS1jbGFtcDogMztcXHJcXG4gIC13ZWJraXQtYm94LW9yaWVudDogdmVydGljYWw7XFxyXFxuICBvdmVyZmxvdzogaGlkZGVuO1xcclxcbn1cXHJcXG5cXHJcXG4vKiDoh6rlrprkuYnmu5rliqjmnaEgKi9cXHJcXG46Oi13ZWJraXQtc2Nyb2xsYmFyIHtcXHJcXG4gIHdpZHRoOiA4cHg7XFxyXFxufVxcclxcblxcclxcbjo6LXdlYmtpdC1zY3JvbGxiYXItdHJhY2sge1xcclxcbiAgYmFja2dyb3VuZDogI2YxZjFmMTtcXHJcXG4gIGJvcmRlci1yYWRpdXM6IDRweDtcXHJcXG59XFxyXFxuXFxyXFxuOjotd2Via2l0LXNjcm9sbGJhci10aHVtYiB7XFxyXFxuICBiYWNrZ3JvdW5kOiAjYzFjMWMxO1xcclxcbiAgYm9yZGVyLXJhZGl1czogNHB4O1xcclxcbn1cXHJcXG5cXHJcXG46Oi13ZWJraXQtc2Nyb2xsYmFyLXRodW1iOmhvdmVyIHtcXHJcXG4gIGJhY2tncm91bmQ6ICNhOGE4YTg7XFxyXFxufVxcclxcblxcclxcbi8qIOW5s+a7kea7muWKqCAqL1xcclxcbmh0bWwge1xcclxcbiAgc2Nyb2xsLWJlaGF2aW9yOiBzbW9vdGg7XFxyXFxufVxcclxcblxcclxcbi8qIOeEpueCueagt+W8jyAqL1xcclxcbi5mb2N1c1xcXFw6cmluZy0yOmZvY3VzIHtcXHJcXG4gIC0tdHctcmluZy1vZmZzZXQtc2hhZG93OiB2YXIoLS10dy1yaW5nLWluc2V0KSAwIDAgMCB2YXIoLS10dy1yaW5nLW9mZnNldC13aWR0aCkgdmFyKC0tdHctcmluZy1vZmZzZXQtY29sb3IpO1xcclxcbiAgLS10dy1yaW5nLXNoYWRvdzogdmFyKC0tdHctcmluZy1pbnNldCkgMCAwIDAgY2FsYygycHggKyB2YXIoLS10dy1yaW5nLW9mZnNldC13aWR0aCkpIHZhcigtLXR3LXJpbmctY29sb3IpO1xcclxcbiAgYm94LXNoYWRvdzogdmFyKC0tdHctcmluZy1vZmZzZXQtc2hhZG93KSwgdmFyKC0tdHctcmluZy1zaGFkb3cpLCB2YXIoLS10dy1zaGFkb3csIDAgMCAjMDAwMCk7XFxyXFxufVxcclxcbi5ob3ZlclxcXFw6c2NhbGUtMTA1OmhvdmVyIHtcXG4gIC0tdHctc2NhbGUteDogMS4wNTtcXG4gIC0tdHctc2NhbGUteTogMS4wNTtcXG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlKHZhcigtLXR3LXRyYW5zbGF0ZS14KSwgdmFyKC0tdHctdHJhbnNsYXRlLXkpKSByb3RhdGUodmFyKC0tdHctcm90YXRlKSkgc2tld1godmFyKC0tdHctc2tldy14KSkgc2tld1kodmFyKC0tdHctc2tldy15KSkgc2NhbGVYKHZhcigtLXR3LXNjYWxlLXgpKSBzY2FsZVkodmFyKC0tdHctc2NhbGUteSkpO1xcbn1cXHJcXG4uaG92ZXJcXFxcOmJvcmRlci1hY2NlbnQ6aG92ZXIge1xcbiAgLS10dy1ib3JkZXItb3BhY2l0eTogMTtcXG4gIGJvcmRlci1jb2xvcjogcmdiKDAgMTA2IDI1NSAvIHZhcigtLXR3LWJvcmRlci1vcGFjaXR5LCAxKSk7XFxufVxcclxcbi5ob3ZlclxcXFw6Ym9yZGVyLWFjY2VudFxcXFwvMjA6aG92ZXIge1xcbiAgYm9yZGVyLWNvbG9yOiByZ2IoMCAxMDYgMjU1IC8gMC4yKTtcXG59XFxyXFxuLmhvdmVyXFxcXDpiZy1hY2NlbnQ6aG92ZXIge1xcbiAgLS10dy1iZy1vcGFjaXR5OiAxO1xcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDAgMTA2IDI1NSAvIHZhcigtLXR3LWJnLW9wYWNpdHksIDEpKTtcXG59XFxyXFxuLmhvdmVyXFxcXDpiZy1ibHVlLTcwMDpob3ZlciB7XFxuICAtLXR3LWJnLW9wYWNpdHk6IDE7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMjkgNzggMjE2IC8gdmFyKC0tdHctYmctb3BhY2l0eSwgMSkpO1xcbn1cXHJcXG4uaG92ZXJcXFxcOmJnLWdyYXktMTAwOmhvdmVyIHtcXG4gIC0tdHctYmctb3BhY2l0eTogMTtcXG4gIGJhY2tncm91bmQtY29sb3I6IHJnYigyNDMgMjQ0IDI0NiAvIHZhcigtLXR3LWJnLW9wYWNpdHksIDEpKTtcXG59XFxyXFxuLmhvdmVyXFxcXDpiZy1ncmF5LTUwOmhvdmVyIHtcXG4gIC0tdHctYmctb3BhY2l0eTogMTtcXG4gIGJhY2tncm91bmQtY29sb3I6IHJnYigyNDkgMjUwIDI1MSAvIHZhcigtLXR3LWJnLW9wYWNpdHksIDEpKTtcXG59XFxyXFxuLmhvdmVyXFxcXDpiZy1wcmltYXJ5OmhvdmVyIHtcXG4gIC0tdHctYmctb3BhY2l0eTogMTtcXG4gIGJhY2tncm91bmQtY29sb3I6IHJnYig1MSA1MSA1MSAvIHZhcigtLXR3LWJnLW9wYWNpdHksIDEpKTtcXG59XFxyXFxuLmhvdmVyXFxcXDpiZy13aGl0ZTpob3ZlciB7XFxuICAtLXR3LWJnLW9wYWNpdHk6IDE7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMjU1IDI1NSAyNTUgLyB2YXIoLS10dy1iZy1vcGFjaXR5LCAxKSk7XFxufVxcclxcbi5ob3ZlclxcXFw6ZnJvbS1ibHVlLTYwMDpob3ZlciB7XFxuICAtLXR3LWdyYWRpZW50LWZyb206ICMyNTYzZWIgdmFyKC0tdHctZ3JhZGllbnQtZnJvbS1wb3NpdGlvbik7XFxuICAtLXR3LWdyYWRpZW50LXRvOiByZ2IoMzcgOTkgMjM1IC8gMCkgdmFyKC0tdHctZ3JhZGllbnQtdG8tcG9zaXRpb24pO1xcbiAgLS10dy1ncmFkaWVudC1zdG9wczogdmFyKC0tdHctZ3JhZGllbnQtZnJvbSksIHZhcigtLXR3LWdyYWRpZW50LXRvKTtcXG59XFxyXFxuLmhvdmVyXFxcXDp0by1hY2NlbnQ6aG92ZXIge1xcbiAgLS10dy1ncmFkaWVudC10bzogIzAwNkFGRiB2YXIoLS10dy1ncmFkaWVudC10by1wb3NpdGlvbik7XFxufVxcclxcbi5ob3ZlclxcXFw6dGV4dC1hY2NlbnQ6aG92ZXIge1xcbiAgLS10dy10ZXh0LW9wYWNpdHk6IDE7XFxuICBjb2xvcjogcmdiKDAgMTA2IDI1NSAvIHZhcigtLXR3LXRleHQtb3BhY2l0eSwgMSkpO1xcbn1cXHJcXG4uaG92ZXJcXFxcOnRleHQtYmx1ZS03MDA6aG92ZXIge1xcbiAgLS10dy10ZXh0LW9wYWNpdHk6IDE7XFxuICBjb2xvcjogcmdiKDI5IDc4IDIxNiAvIHZhcigtLXR3LXRleHQtb3BhY2l0eSwgMSkpO1xcbn1cXHJcXG4uaG92ZXJcXFxcOnRleHQtcHJpbWFyeTpob3ZlciB7XFxuICAtLXR3LXRleHQtb3BhY2l0eTogMTtcXG4gIGNvbG9yOiByZ2IoNTEgNTEgNTEgLyB2YXIoLS10dy10ZXh0LW9wYWNpdHksIDEpKTtcXG59XFxyXFxuLmhvdmVyXFxcXDp0ZXh0LXdoaXRlOmhvdmVyIHtcXG4gIC0tdHctdGV4dC1vcGFjaXR5OiAxO1xcbiAgY29sb3I6IHJnYigyNTUgMjU1IDI1NSAvIHZhcigtLXR3LXRleHQtb3BhY2l0eSwgMSkpO1xcbn1cXHJcXG4uaG92ZXJcXFxcOnVuZGVybGluZTpob3ZlciB7XFxuICB0ZXh0LWRlY29yYXRpb24tbGluZTogdW5kZXJsaW5lO1xcbn1cXHJcXG4uaG92ZXJcXFxcOm9wYWNpdHktOTA6aG92ZXIge1xcbiAgb3BhY2l0eTogMC45O1xcbn1cXHJcXG4uaG92ZXJcXFxcOnNoYWRvdy0yeGw6aG92ZXIge1xcbiAgLS10dy1zaGFkb3c6IDAgMjVweCA1MHB4IC0xMnB4IHJnYigwIDAgMCAvIDAuMjUpO1xcbiAgLS10dy1zaGFkb3ctY29sb3JlZDogMCAyNXB4IDUwcHggLTEycHggdmFyKC0tdHctc2hhZG93LWNvbG9yKTtcXG4gIGJveC1zaGFkb3c6IHZhcigtLXR3LXJpbmctb2Zmc2V0LXNoYWRvdywgMCAwICMwMDAwKSwgdmFyKC0tdHctcmluZy1zaGFkb3csIDAgMCAjMDAwMCksIHZhcigtLXR3LXNoYWRvdyk7XFxufVxcclxcbi5ob3ZlclxcXFw6c2hhZG93LWxnOmhvdmVyIHtcXG4gIC0tdHctc2hhZG93OiAwIDEwcHggMTVweCAtM3B4IHJnYigwIDAgMCAvIDAuMSksIDAgNHB4IDZweCAtNHB4IHJnYigwIDAgMCAvIDAuMSk7XFxuICAtLXR3LXNoYWRvdy1jb2xvcmVkOiAwIDEwcHggMTVweCAtM3B4IHZhcigtLXR3LXNoYWRvdy1jb2xvciksIDAgNHB4IDZweCAtNHB4IHZhcigtLXR3LXNoYWRvdy1jb2xvcik7XFxuICBib3gtc2hhZG93OiB2YXIoLS10dy1yaW5nLW9mZnNldC1zaGFkb3csIDAgMCAjMDAwMCksIHZhcigtLXR3LXJpbmctc2hhZG93LCAwIDAgIzAwMDApLCB2YXIoLS10dy1zaGFkb3cpO1xcbn1cXHJcXG4uaG92ZXJcXFxcOnNoYWRvdy14bDpob3ZlciB7XFxuICAtLXR3LXNoYWRvdzogMCAyMHB4IDI1cHggLTVweCByZ2IoMCAwIDAgLyAwLjEpLCAwIDhweCAxMHB4IC02cHggcmdiKDAgMCAwIC8gMC4xKTtcXG4gIC0tdHctc2hhZG93LWNvbG9yZWQ6IDAgMjBweCAyNXB4IC01cHggdmFyKC0tdHctc2hhZG93LWNvbG9yKSwgMCA4cHggMTBweCAtNnB4IHZhcigtLXR3LXNoYWRvdy1jb2xvcik7XFxuICBib3gtc2hhZG93OiB2YXIoLS10dy1yaW5nLW9mZnNldC1zaGFkb3csIDAgMCAjMDAwMCksIHZhcigtLXR3LXJpbmctc2hhZG93LCAwIDAgIzAwMDApLCB2YXIoLS10dy1zaGFkb3cpO1xcbn1cXHJcXG4uZm9jdXNcXFxcOmJvcmRlci10cmFuc3BhcmVudDpmb2N1cyB7XFxuICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50O1xcbn1cXHJcXG4uZm9jdXNcXFxcOm91dGxpbmUtbm9uZTpmb2N1cyB7XFxuICBvdXRsaW5lOiAycHggc29saWQgdHJhbnNwYXJlbnQ7XFxuICBvdXRsaW5lLW9mZnNldDogMnB4O1xcbn1cXHJcXG4uZm9jdXNcXFxcOnJpbmctMjpmb2N1cyB7XFxuICAtLXR3LXJpbmctb2Zmc2V0LXNoYWRvdzogdmFyKC0tdHctcmluZy1pbnNldCkgMCAwIDAgdmFyKC0tdHctcmluZy1vZmZzZXQtd2lkdGgpIHZhcigtLXR3LXJpbmctb2Zmc2V0LWNvbG9yKTtcXG4gIC0tdHctcmluZy1zaGFkb3c6IHZhcigtLXR3LXJpbmctaW5zZXQpIDAgMCAwIGNhbGMoMnB4ICsgdmFyKC0tdHctcmluZy1vZmZzZXQtd2lkdGgpKSB2YXIoLS10dy1yaW5nLWNvbG9yKTtcXG4gIGJveC1zaGFkb3c6IHZhcigtLXR3LXJpbmctb2Zmc2V0LXNoYWRvdyksIHZhcigtLXR3LXJpbmctc2hhZG93KSwgdmFyKC0tdHctc2hhZG93LCAwIDAgIzAwMDApO1xcbn1cXHJcXG4uZm9jdXNcXFxcOnJpbmctYWNjZW50OmZvY3VzIHtcXG4gIC0tdHctcmluZy1vcGFjaXR5OiAxO1xcbiAgLS10dy1yaW5nLWNvbG9yOiByZ2IoMCAxMDYgMjU1IC8gdmFyKC0tdHctcmluZy1vcGFjaXR5LCAxKSk7XFxufVxcclxcbi5kaXNhYmxlZFxcXFw6Y3Vyc29yLW5vdC1hbGxvd2VkOmRpc2FibGVkIHtcXG4gIGN1cnNvcjogbm90LWFsbG93ZWQ7XFxufVxcclxcbi5kaXNhYmxlZFxcXFw6b3BhY2l0eS01MDpkaXNhYmxlZCB7XFxuICBvcGFjaXR5OiAwLjU7XFxufVxcclxcbi5ncm91cDpob3ZlciAuZ3JvdXAtaG92ZXJcXFxcOnRyYW5zbGF0ZS14LTEge1xcbiAgLS10dy10cmFuc2xhdGUteDogMC4yNXJlbTtcXG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlKHZhcigtLXR3LXRyYW5zbGF0ZS14KSwgdmFyKC0tdHctdHJhbnNsYXRlLXkpKSByb3RhdGUodmFyKC0tdHctcm90YXRlKSkgc2tld1godmFyKC0tdHctc2tldy14KSkgc2tld1kodmFyKC0tdHctc2tldy15KSkgc2NhbGVYKHZhcigtLXR3LXNjYWxlLXgpKSBzY2FsZVkodmFyKC0tdHctc2NhbGUteSkpO1xcbn1cXHJcXG4uZ3JvdXA6aG92ZXIgLmdyb3VwLWhvdmVyXFxcXDpzY2FsZS0xMTAge1xcbiAgLS10dy1zY2FsZS14OiAxLjE7XFxuICAtLXR3LXNjYWxlLXk6IDEuMTtcXG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlKHZhcigtLXR3LXRyYW5zbGF0ZS14KSwgdmFyKC0tdHctdHJhbnNsYXRlLXkpKSByb3RhdGUodmFyKC0tdHctcm90YXRlKSkgc2tld1godmFyKC0tdHctc2tldy14KSkgc2tld1kodmFyKC0tdHctc2tldy15KSkgc2NhbGVYKHZhcigtLXR3LXNjYWxlLXgpKSBzY2FsZVkodmFyKC0tdHctc2NhbGUteSkpO1xcbn1cXHJcXG4uZ3JvdXA6aG92ZXIgLmdyb3VwLWhvdmVyXFxcXDpnYXAtMyB7XFxuICBnYXA6IDAuNzVyZW07XFxufVxcclxcbi5ncm91cDpob3ZlciAuZ3JvdXAtaG92ZXJcXFxcOmJnLWFjY2VudCB7XFxuICAtLXR3LWJnLW9wYWNpdHk6IDE7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMCAxMDYgMjU1IC8gdmFyKC0tdHctYmctb3BhY2l0eSwgMSkpO1xcbn1cXHJcXG4uZ3JvdXA6aG92ZXIgLmdyb3VwLWhvdmVyXFxcXDp0ZXh0LWFjY2VudCB7XFxuICAtLXR3LXRleHQtb3BhY2l0eTogMTtcXG4gIGNvbG9yOiByZ2IoMCAxMDYgMjU1IC8gdmFyKC0tdHctdGV4dC1vcGFjaXR5LCAxKSk7XFxufVxcclxcbi5ncm91cDpob3ZlciAuZ3JvdXAtaG92ZXJcXFxcOnRleHQtd2hpdGUge1xcbiAgLS10dy10ZXh0LW9wYWNpdHk6IDE7XFxuICBjb2xvcjogcmdiKDI1NSAyNTUgMjU1IC8gdmFyKC0tdHctdGV4dC1vcGFjaXR5LCAxKSk7XFxufVxcclxcbkBtZWRpYSAobWluLXdpZHRoOiA2NDBweCkge1xcblxcbiAgLnNtXFxcXDpmbGV4LXJvdyB7XFxuICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XFxuICB9XFxufVxcclxcbkBtZWRpYSAobWluLXdpZHRoOiA3NjhweCkge1xcblxcbiAgLm1kXFxcXDpjb2wtc3Bhbi0yIHtcXG4gICAgZ3JpZC1jb2x1bW46IHNwYW4gMiAvIHNwYW4gMjtcXG4gIH1cXG5cXG4gIC5tZFxcXFw6bXQtMCB7XFxuICAgIG1hcmdpbi10b3A6IDBweDtcXG4gIH1cXG5cXG4gIC5tZFxcXFw6ZmxleCB7XFxuICAgIGRpc3BsYXk6IGZsZXg7XFxuICB9XFxuXFxuICAubWRcXFxcOmhpZGRlbiB7XFxuICAgIGRpc3BsYXk6IG5vbmU7XFxuICB9XFxuXFxuICAubWRcXFxcOnctMVxcXFwvMiB7XFxuICAgIHdpZHRoOiA1MCU7XFxuICB9XFxuXFxuICAubWRcXFxcOmdyaWQtY29scy0yIHtcXG4gICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoMiwgbWlubWF4KDAsIDFmcikpO1xcbiAgfVxcblxcbiAgLm1kXFxcXDpncmlkLWNvbHMtMyB7XFxuICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KDMsIG1pbm1heCgwLCAxZnIpKTtcXG4gIH1cXG5cXG4gIC5tZFxcXFw6Z3JpZC1jb2xzLTQge1xcbiAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCg0LCBtaW5tYXgoMCwgMWZyKSk7XFxuICB9XFxuXFxuICAubWRcXFxcOmdyaWQtY29scy01IHtcXG4gICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoNSwgbWlubWF4KDAsIDFmcikpO1xcbiAgfVxcblxcbiAgLm1kXFxcXDpmbGV4LXJvdyB7XFxuICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XFxuICB9XFxuXFxuICAubWRcXFxcOnAtMTIge1xcbiAgICBwYWRkaW5nOiAzcmVtO1xcbiAgfVxcblxcbiAgLm1kXFxcXDp0ZXh0LTN4bCB7XFxuICAgIGZvbnQtc2l6ZTogMS44NzVyZW07XFxuICAgIGxpbmUtaGVpZ2h0OiAyLjI1cmVtO1xcbiAgfVxcblxcbiAgLm1kXFxcXDp0ZXh0LTR4bCB7XFxuICAgIGZvbnQtc2l6ZTogMi4yNXJlbTtcXG4gICAgbGluZS1oZWlnaHQ6IDIuNXJlbTtcXG4gIH1cXG5cXG4gIC5tZFxcXFw6dGV4dC01eGwge1xcbiAgICBmb250LXNpemU6IDNyZW07XFxuICAgIGxpbmUtaGVpZ2h0OiAxO1xcbiAgfVxcbn1cXHJcXG5AbWVkaWEgKG1pbi13aWR0aDogMTAyNHB4KSB7XFxuXFxuICAubGdcXFxcOmNvbC1zcGFuLTIge1xcbiAgICBncmlkLWNvbHVtbjogc3BhbiAyIC8gc3BhbiAyO1xcbiAgfVxcblxcbiAgLmxnXFxcXDpncmlkLWNvbHMtMiB7XFxuICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KDIsIG1pbm1heCgwLCAxZnIpKTtcXG4gIH1cXG5cXG4gIC5sZ1xcXFw6Z3JpZC1jb2xzLTMge1xcbiAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCgzLCBtaW5tYXgoMCwgMWZyKSk7XFxuICB9XFxuXFxuICAubGdcXFxcOmdyaWQtY29scy00IHtcXG4gICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoNCwgbWlubWF4KDAsIDFmcikpO1xcbiAgfVxcblxcbiAgLmxnXFxcXDpncmlkLWNvbHMtNiB7XFxuICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KDYsIG1pbm1heCgwLCAxZnIpKTtcXG4gIH1cXG5cXG4gIC5sZ1xcXFw6ZmxleC1yb3cge1xcbiAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xcbiAgfVxcbn1cXHJcXG5AbWVkaWEgKG1pbi13aWR0aDogMTI4MHB4KSB7XFxuXFxuICAueGxcXFxcOmdyaWQtY29scy0zIHtcXG4gICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoMywgbWlubWF4KDAsIDFmcikpO1xcbiAgfVxcbn1cIiwgXCJcIix7XCJ2ZXJzaW9uXCI6MyxcInNvdXJjZXNcIjpbXCJ3ZWJwYWNrOi8vc3R5bGVzL2dsb2JhbHMuY3NzXCJdLFwibmFtZXNcIjpbXSxcIm1hcHBpbmdzXCI6XCJBQUFBO0VBQUEsd0JBQWM7RUFBZCx3QkFBYztFQUFkLG1CQUFjO0VBQWQsbUJBQWM7RUFBZCxjQUFjO0VBQWQsY0FBYztFQUFkLGNBQWM7RUFBZCxlQUFjO0VBQWQsZUFBYztFQUFkLGFBQWM7RUFBZCxhQUFjO0VBQWQsa0JBQWM7RUFBZCxzQ0FBYztFQUFkLDhCQUFj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QUFBO0FBQW1CO0FBQW5CO0VBQUE7QUFBbUI7QUFBbkI7RUFBQTtBQUFtQjtBQUFuQjtFQUFBO0FBQW1CO0FBQW5CO0VBQUE7QUFBbUI7QUFBbkI7RUFBQTtBQUFtQjtBQUFuQjtFQUFBO0FBQW1CO0FBQW5CO0VBQUE7QUFBbUI7QUFBbkI7RUFBQTtBQUFtQjtBQUFuQjtFQUFBO0FBQW1CO0FBQW5CO0VBQUE7QUFBbUI7QUFBbkI7RUFBQSxpQkFBbUI7RUFBbkI7QUFBbUI7QUFBbkI7RUFBQTtBQUFtQjtBQUFuQjtFQUFBO0FBQW1CO0FBQW5CO0VBQUE7QUFBbUI7QUFBbkI7RUFBQTtBQUFtQjtBQUFuQjtFQUFBO0FBQW1CO0FBQW5CO0VBQUE7QUFBbUI7QUFBbkI7RUFBQTtBQUFtQjtBQUFuQjtFQUFBO0FBQW1CO0FBQW5CO0VBQUE7QUFBbUI7QUFBbkI7RUFBQTtBQUFtQjtBQUFuQjtFQUFBO0FBQW1CO0FBQW5CO0VBQUE7QUFBbUI7QUFBbkI7RUFBQTtBQUFtQjtBQUFuQjtFQUFBO0FBQW1CO0FBQW5CO0VBQUE7QUFBbUI7QUFBbkI7RUFBQTtBQUFtQjtBQUFuQjtFQUFBO0FBQW1CO0FBQW5CO0VBQUE7QUFBbUI7QUFBbkI7RUFBQTtBQUFtQjtBQUFuQjtFQUFBO0FBQW1CO0FBQW5CO0VBQUE7QUFBbUI7QUFBbkI7RUFBQTtBQUFtQjtBQUFuQjtFQUFBO0FBQW1CO0FBQW5CO0VBQUEsZ0JBQW1CO0VBQW5CLG9CQUFtQjtFQUFuQiw0QkFBbUI7RUFBbkI7QUFBbUI7QUFBbkI7RUFBQSxnQkFBbUI7RUFBbkIsb0JBQW1CO0VBQW5CLDRCQUFtQjtFQUFuQjtBQUFtQjtBQUFuQjtFQUFBO0FBQW1CO0FBQW5CO0VBQUE7QUFBbUI7QUFBbkI7RUFBQTtBQUFtQjtBQUFuQjtFQUFBO0FBQW1CO0FBQW5CO0VBQUE7QUFBbUI7QUFBbkI7RUFBQTtBQUFtQjtBQUFuQjtFQUFBO0FBQW1CO0FBQW5CO0VBQUE7QUFBbUI7QUFBbkI7RUFBQTtBQUFtQjtBQUFuQjtFQUFBO0FBQW1CO0FBQW5CO0VBQUE7QUFBbUI7QUFBbkI7RUFBQTtBQUFtQjtBQUFuQjtFQUFBO0FBQW1CO0FBQW5CO0VBQUE7QUFBbUI7QUFBbkI7RUFBQTtBQUFtQjtBQUFuQjtFQUFBO0FBQW1CO0FBQW5CO0VBQUE7QUFBbUI7QUFBbkI7RUFBQTtBQUFtQjtBQUFuQjtFQUFBO0FBQW1CO0FBQW5CO0VBQUE7QUFBbUI7QUFBbkI7RUFBQTtBQUFtQjtBQUFuQjtFQUFBO0FBQW1CO0FBQW5CO0VBQUE7QUFBbUI7QUFBbkI7RUFBQTtBQUFtQjtBQUFuQjtFQUFBO0FBQW1CO0FBQW5CO0VBQUE7QUFBbUI7QUFBbkI7RUFBQTtBQUFtQjtBQUFuQjtFQUFBO0FBQW1CO0FBQW5CO0VBQUE7QUFBbUI7QUFBbkI7RUFBQTtBQUFtQjtBQUFuQjtFQUFBO0FBQW1CO0FBQW5CO0VBQUE7QUFBbUI7QUFBbkI7RUFBQTtBQUFtQjtBQUFuQjtFQUFBO0FBQW1CO0FBQW5CO0VBQUE7QUFBbUI7QUFBbkI7RUFBQTtBQUFtQjtBQUFuQjtFQUFBO0FBQW1CO0FBQW5CO0VBQUE7QUFBbUI7QUFBbkI7RUFBQTtBQUFtQjtBQUFuQjtFQUFBO0FBQW1CO0FBQW5CO0VBQUE7QUFBbUI7QUFBbkI7RUFBQTtBQUFtQjtBQUFuQjtFQUFBO0FBQW1CO0FBQW5CO0VBQUE7QUFBbUI7QUFBbkI7RUFBQSxzQkFBbUI7RUFBbkI7QUFBbUI7QUFBbkI7RUFBQSxzQkFBbUI7RUFBbkI7QUFBbUI7QUFBbkI7RUFBQSxxQkFBbUI7RUFBbkI7QUFBbUI7QUFBbkI7RUFBQSxzQkFBbUI7RUFBbkI7QUFBbUI7QUFBbkI7RUFBQSxrQkFBbUI7RUFBbkI7QUFBbUI7QUFBbkI7RUFBQSxrQkFBbUI7RUFBbkIsa0JBQW1CO0VBQW5CO0FBQW1CO0FBQW5CO0VBQUE7QUFBbUI7QUFBbkI7O0VBQUE7SUFBQTtFQUFtQjtBQUFBO0FBQW5CO0VBQUE7QUFBbUI7QUFBbkI7RUFBQTtBQUFtQjtBQUFuQjtFQUFBO0FBQW1CO0FBQW5CO0VBQUE7QUFBbUI7QUFBbkI7RUFBQTtBQUFtQjtBQUFuQjtFQUFBO0FBQW1CO0FBQW5CO0VBQUE7QUFBbUI7QUFBbkI7RUFBQTtBQUFtQjtBQUFuQjtFQUFBO0FBQW1CO0FBQW5CO0VBQUE7QUFBbUI7QUFBbkI7RUFBQTtBQUFtQjtBQUFuQjtFQUFBO0FBQW1CO0FBQW5CO0VBQUE7QUFBbUI7QUFBbkI7RUFBQTtBQUFtQjtBQUFuQjtFQUFBO0FBQW1CO0FBQW5CO0VBQUE7QUFBbUI7QUFBbkI7RUFBQTtBQUFtQjtBQUFuQjtFQUFBO0FBQW1CO0FBQW5CO0VBQUE7QUFBbUI7QUFBbkI7RUFBQTtBQUFtQjtBQUFuQjtFQUFBO0FBQW1CO0FBQW5CO0VBQUEsdUJBQW1CO0VBQW5CLG9EQUFtQjtFQUFuQjtBQUFtQjtBQUFuQjtFQUFBLHVCQUFtQjtFQUFuQixzREFBbUI7RUFBbkI7QUFBbUI7QUFBbkI7RUFBQSx1QkFBbUI7RUFBbkIsK0RBQW1CO0VBQW5CO0FBQW1CO0FBQW5CO0VBQUEsdUJBQW1CO0VBQW5CLDREQUFtQjtFQUFuQjtBQUFtQjtBQUFuQjtFQUFBLHVCQUFtQjtFQUFuQiw4REFBbUI7RUFBbkI7QUFBbUI7QUFBbkI7RUFBQSx1QkFBbUI7RUFBbkIsK0RBQW1CO0VBQW5CO0FBQW1CO0FBQW5CO0VBQUEsdUJBQW1CO0VBQW5CLDREQUFtQjtFQUFuQjtBQUFtQjtBQUFuQjtFQUFBLHVCQUFtQjtFQUFuQiw4REFBbUI7RUFBbkI7QUFBbUI7QUFBbkI7RUFBQSx1QkFBbUI7RUFBbkIsNERBQW1CO0VBQW5CO0FBQW1CO0FBQW5CO0VBQUE7QUFBbUI7QUFBbkI7RUFBQTtBQUFtQjtBQUFuQjtFQUFBO0FBQW1CO0FBQW5CO0VBQUE7QUFBbUI7QUFBbkI7RUFBQTtBQUFtQjtBQUFuQjtFQUFBO0FBQW1CO0FBQW5CO0VBQUE7QUFBbUI7QUFBbkI7RUFBQTtBQUFtQjtBQUFuQjtFQUFBO0FBQW1CO0FBQW5CO0VBQUEsc0JBQW1CO0VBQW5CO0FBQW1CO0FBQW5CO0VBQUEsc0JBQW1CO0VBQW5CO0FBQW1CO0FBQW5CO0VBQUEsc0JBQW1CO0VBQW5CO0FBQW1CO0FBQW5CO0VBQUEsc0JBQW1CO0VBQW5CO0FBQW1CO0FBQW5CO0VBQUEsc0JBQW1CO0VBQW5CO0FBQW1CO0FBQW5CO0VBQUEsc0JBQW1CO0VBQW5CO0FBQW1CO0FBQW5CO0VBQUEsc0JBQW1CO0VBQW5CO0FBQW1CO0FBQW5CO0VBQUEsc0JBQW1CO0VBQW5CO0FBQW1CO0FBQW5CO0VBQUE7QUFBbUI7QUFBbkI7RUFBQSxzQkFBbUI7RUFBbkI7QUFBbUI7QUFBbkI7RUFBQTtBQUFtQjtBQUFuQjtFQUFBLGtCQUFtQjtFQUFuQjtBQUFtQjtBQUFuQjtFQUFBO0FBQW1CO0FBQW5CO0VBQUEsa0JBQW1CO0VBQW5CO0FBQW1CO0FBQW5CO0VBQUE7QUFBbUI7QUFBbkI7RUFBQSxrQkFBbUI7RUFBbkI7QUFBbUI7QUFBbkI7RUFBQSxrQkFBbUI7RUFBbkI7QUFBbUI7QUFBbkI7RUFBQSxrQkFBbUI7RUFBbkI7QUFBbUI7QUFBbkI7RUFBQSxrQkFBbUI7RUFBbkI7QUFBbUI7QUFBbkI7RUFBQSxrQkFBbUI7RUFBbkI7QUFBbUI7QUFBbkI7RUFBQSxrQkFBbUI7RUFBbkI7QUFBbUI7QUFBbkI7RUFBQSxrQkFBbUI7RUFBbkI7QUFBbUI7QUFBbkI7RUFBQSxrQkFBbUI7RUFBbkI7QUFBbUI7QUFBbkI7RUFBQSxrQkFBbUI7RUFBbkI7QUFBbUI7QUFBbkI7RUFBQSxrQkFBbUI7RUFBbkI7QUFBbUI7QUFBbkI7RUFBQSxrQkFBbUI7RUFBbkI7QUFBbUI7QUFBbkI7RUFBQSxrQkFBbUI7RUFBbkI7QUFBbUI7QUFBbkI7RUFBQSxrQkFBbUI7RUFBbkI7QUFBbUI7QUFBbkI7RUFBQSxrQkFBbUI7RUFBbkI7QUFBbUI7QUFBbkI7RUFBQSxrQkFBbUI7RUFBbkI7QUFBbUI7QUFBbkI7RUFBQTtBQUFtQjtBQUFuQjtFQUFBO0FBQW1CO0FBQW5CO0VBQUE7QUFBbUI7QUFBbkI7RUFBQTtBQUFtQjtBQUFuQjtFQUFBLGtCQUFtQjtFQUFuQjtBQUFtQjtBQUFuQjtFQUFBO0FBQW1CO0FBQW5CO0VBQUE7QUFBbUI7QUFBbkI7RUFBQSw0REFBbUI7RUFBbkIsbUVBQW1CO0VBQW5CO0FBQW1CO0FBQW5CO0VBQUEseUVBQW1CO0VBQW5CLG1FQUFtQjtFQUFuQjtBQUFtQjtBQUFuQjtFQUFBLDREQUFtQjtFQUFuQixxRUFBbUI7RUFBbkI7QUFBbUI7QUFBbkI7RUFBQSw0REFBbUI7RUFBbkIscUVBQW1CO0VBQW5CO0FBQW1CO0FBQW5CO0VBQUEsNERBQW1CO0VBQW5CLHFFQUFtQjtFQUFuQjtBQUFtQjtBQUFuQjtFQUFBLDREQUFtQjtFQUFuQixxRUFBbUI7RUFBbkI7QUFBbUI7QUFBbkI7RUFBQSw0REFBbUI7RUFBbkIscUVBQW1CO0VBQW5CO0FBQW1CO0FBQW5CO0VBQUEsNERBQW1CO0VBQW5CLG9FQUFtQjtFQUFuQjtBQUFtQjtBQUFuQjtFQUFBLG9FQUFtQjtFQUFuQjtBQUFtQjtBQUFuQjtFQUFBO0FBQW1CO0FBQW5CO0VBQUE7QUFBbUI7QUFBbkI7RUFBQTtBQUFtQjtBQUFuQjtFQUFBO0FBQW1CO0FBQW5CO0VBQUE7QUFBbUI7QUFBbkI7RUFBQTtBQUFtQjtBQUFuQjtFQUFBO0FBQW1CO0FBQW5CO0VBQUE7QUFBbUI7QUFBbkI7RUFBQTtBQUFtQjtBQUFuQjtFQUFBO0FBQW1CO0FBQW5CO0VBQUEsNkJBQW1CO1VBQW5CO0FBQW1CO0FBQW5CO0VBQUE7QUFBbUI7QUFBbkI7RUFBQTtBQUFtQjtBQUFuQjtFQUFBO0FBQW1CO0FBQW5CO0VBQUE7QUFBbUI7QUFBbkI7RUFBQTtBQUFtQjtBQUFuQjtFQUFBLG9CQUFtQjtFQUFuQjtBQUFtQjtBQUFuQjtFQUFBLHFCQUFtQjtFQUFuQjtBQUFtQjtBQUFuQjtFQUFBLGtCQUFtQjtFQUFuQjtBQUFtQjtBQUFuQjtFQUFBLG9CQUFtQjtFQUFuQjtBQUFtQjtBQUFuQjtFQUFBLGtCQUFtQjtFQUFuQjtBQUFtQjtBQUFuQjtFQUFBLG9CQUFtQjtFQUFuQjtBQUFtQjtBQUFuQjtFQUFBLGlCQUFtQjtFQUFuQjtBQUFtQjtBQUFuQjtFQUFBLGlCQUFtQjtFQUFuQjtBQUFtQjtBQUFuQjtFQUFBLG1CQUFtQjtFQUFuQjtBQUFtQjtBQUFuQjtFQUFBLGlCQUFtQjtFQUFuQjtBQUFtQjtBQUFuQjtFQUFBLG9CQUFtQjtFQUFuQjtBQUFtQjtBQUFuQjtFQUFBLGlCQUFtQjtFQUFuQjtBQUFtQjtBQUFuQjtFQUFBLGlCQUFtQjtFQUFuQjtBQUFtQjtBQUFuQjtFQUFBO0FBQW1CO0FBQW5CO0VBQUE7QUFBbUI7QUFBbkI7RUFBQTtBQUFtQjtBQUFuQjtFQUFBO0FBQW1CO0FBQW5CO0VBQUE7QUFBbUI7QUFBbkI7RUFBQTtBQUFtQjtBQUFuQjtFQUFBO0FBQW1CO0FBQW5CO0VBQUE7QUFBbUI7QUFBbkI7RUFBQTtBQUFtQjtBQUFuQjtFQUFBO0FBQW1CO0FBQW5CO0VBQUE7QUFBbUI7QUFBbkI7RUFBQTtBQUFtQjtBQUFuQjtFQUFBO0FBQW1CO0FBQW5CO0VBQUE7QUFBbUI7QUFBbkI7RUFBQTtBQUFtQjtBQUFuQjtFQUFBLGlCQUFtQjtFQUFuQjtBQUFtQjtBQUFuQjtFQUFBLG1CQUFtQjtFQUFuQjtBQUFtQjtBQUFuQjtFQUFBLGtCQUFtQjtFQUFuQjtBQUFtQjtBQUFuQjtFQUFBLGVBQW1CO0VBQW5CO0FBQW1CO0FBQW5CO0VBQUEsZUFBbUI7RUFBbkI7QUFBbUI7QUFBbkI7RUFBQSxtQkFBbUI7RUFBbkI7QUFBbUI7QUFBbkI7RUFBQSxtQkFBbUI7RUFBbkI7QUFBbUI7QUFBbkI7RUFBQSxrQkFBbUI7RUFBbkI7QUFBbUI7QUFBbkI7RUFBQSxrQkFBbUI7RUFBbkI7QUFBbUI7QUFBbkI7RUFBQTtBQUFtQjtBQUFuQjtFQUFBO0FBQW1CO0FBQW5CO0VBQUE7QUFBbUI7QUFBbkI7RUFBQTtBQUFtQjtBQUFuQjtFQUFBO0FBQW1CO0FBQW5CO0VBQUEsb0JBQW1CO0VBQW5CO0FBQW1CO0FBQW5CO0VBQUEsb0JBQW1CO0VBQW5CO0FBQW1CO0FBQW5CO0VBQUEsb0JBQW1CO0VBQW5CO0FBQW1CO0FBQW5CO0VBQUEsb0JBQW1CO0VBQW5CO0FBQW1CO0FBQW5CO0VBQUEsb0JBQW1CO0VBQW5CO0FBQW1CO0FBQW5CO0VBQUEsb0JBQW1CO0VBQW5CO0FBQW1CO0FBQW5CO0VBQUEsb0JBQW1CO0VBQW5CO0FBQW1CO0FBQW5CO0VBQUEsb0JBQW1CO0VBQW5CO0FBQW1CO0FBQW5CO0VBQUEsb0JBQW1CO0VBQW5CO0FBQW1CO0FBQW5CO0VBQUEsb0JBQW1CO0VBQW5CO0FBQW1CO0FBQW5CO0VBQUEsb0JBQW1CO0VBQW5CO0FBQW1CO0FBQW5CO0VBQUEsb0JBQW1CO0VBQW5CO0FBQW1CO0FBQW5CO0VBQUEsb0JBQW1CO0VBQW5CO0FBQW1CO0FBQW5CO0VBQUEsb0JBQW1CO0VBQW5CO0FBQW1CO0FBQW5CO0VBQUEsb0JBQW1CO0VBQW5CO0FBQW1CO0FBQW5CO0VBQUEsb0JBQW1CO0VBQW5CO0FBQW1CO0FBQW5CO0VBQUEsb0JBQW1CO0VBQW5CO0FBQW1CO0FBQW5CO0VBQUEsb0JBQW1CO0VBQW5CO0FBQW1CO0FBQW5CO0VBQUEsb0JBQW1CO0VBQW5CO0FBQW1CO0FBQW5CO0VBQUEsb0JBQW1CO0VBQW5CO0FBQW1CO0FBQW5CO0VBQUEsb0JBQW1CO0VBQW5CO0FBQW1CO0FBQW5CO0VBQUEsb0JBQW1CO0VBQW5CO0FBQW1CO0FBQW5CO0VBQUEsb0JBQW1CO0VBQW5CO0FBQW1CO0FBQW5CO0VBQUEsb0JBQW1CO0VBQW5CO0FBQW1CO0FBQW5CO0VBQUEsb0JBQW1CO0VBQW5CO0FBQW1CO0FBQW5CO0VBQUEsb0JBQW1CO0VBQW5CO0FBQW1CO0FBQW5CO0VBQUE7QUFBbUI7QUFBbkI7RUFBQSxvQkFBbUI7RUFBbkI7QUFBbUI7QUFBbkI7RUFBQSxvQkFBbUI7RUFBbkI7QUFBbUI7QUFBbkI7RUFBQSxvQkFBbUI7RUFBbkI7QUFBbUI7QUFBbkI7RUFBQSxvQkFBbUI7RUFBbkI7QUFBbUI7QUFBbkI7RUFBQSxvQkFBbUI7RUFBbkI7QUFBbUI7QUFBbkI7RUFBQSxvQkFBbUI7RUFBbkI7QUFBbUI7QUFBbkI7RUFBQTtBQUFtQjtBQUFuQjtFQUFBO0FBQW1CO0FBQW5CO0VBQUEsK0VBQW1CO0VBQW5CLG1HQUFtQjtFQUFuQjtBQUFtQjtBQUFuQjtFQUFBLDZF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O0FBd0RDO0FBeEREO0VBQUE7QUF3REM7QUF4REQ7RUFBQSxrQkF3REM7RUF4REQ7QUF3REM7QUF4REQ7RUFBQSxvQkF3REM7RUF4REQ7QUF3REM7QUF4REQ7RUFBQSxvQkF3REM7RUF4REQ7QUF3REM7QUF4REQ7O0VBQUE7SUFBQTtFQXdEQztBQUFBO0FBeEREOztFQUFBO0lBQUE7RUF3REM7O0VBeEREO0lBQUE7RUF3REM7O0VBeEREO0lBQUE7RUF3REM7O0VBeEREO0lBQUE7RUF3REM7O0VBeEREO0lBQUE7RUF3REM7O0VBeEREO0lBQUE7RUF3REM7O0VBeEREO0lBQUE7RUF3REM7O0VBeEREO0lBQUE7RUF3REM7O0VBeEREO0lBQUE7RUF3REM7O0VBeEREO0lBQUE7RUF3REM7O0VBeEREO0lBQUE7RUF3REM7O0VBeEREO0lBQUEsbUJBd0RDO0lBeEREO0VBd0RDOztFQXhERDtJQUFBLGtCQXdEQztJQXhERDtFQXdEQzs7RUF4REQ7SUFBQSxlQXdEQztJQXhERDtFQXdEQztBQUFBO0FBeEREOztFQUFBO0lBQUE7RUF3REM7O0VBeEREO0lBQUE7RUF3REM7O0VBeEREO0lBQUE7RUF3REM7O0VBeEREO0lBQUE7RUF3REM7O0VBeEREO0lBQUE7RUF3REM7O0VBeEREO0lBQUE7RUF3REM7QUFBQTtBQXhERDs7RUFBQTtJQUFBO0VBd0RDO0FBQUFcIixcInNvdXJjZXNDb250ZW50XCI6W1wiQHRhaWx3aW5kIGJhc2U7XFxyXFxuQHRhaWx3aW5kIGNvbXBvbmVudHM7XFxyXFxuQHRhaWx3aW5kIHV0aWxpdGllcztcXHJcXG5cXHJcXG5ib2R5IHtcXHJcXG4gIEBhcHBseSBiZy1iYWNrZ3JvdW5kIHRleHQtcHJpbWFyeSBmb250LXNhbnM7XFxyXFxufVxcclxcblxcclxcbm1haW4ge1xcclxcbiAgQGFwcGx5IGZsZXggZmxleC1jb2wgZ2FwLXNlY3Rpb247XFxyXFxufVxcclxcblxcclxcbi8qIOaWh+acrOaIquaWreagt+W8jyAqL1xcclxcbi5saW5lLWNsYW1wLTIge1xcclxcbiAgZGlzcGxheTogLXdlYmtpdC1ib3g7XFxyXFxuICAtd2Via2l0LWxpbmUtY2xhbXA6IDI7XFxyXFxuICAtd2Via2l0LWJveC1vcmllbnQ6IHZlcnRpY2FsO1xcclxcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcXHJcXG59XFxyXFxuXFxyXFxuLmxpbmUtY2xhbXAtMyB7XFxyXFxuICBkaXNwbGF5OiAtd2Via2l0LWJveDtcXHJcXG4gIC13ZWJraXQtbGluZS1jbGFtcDogMztcXHJcXG4gIC13ZWJraXQtYm94LW9yaWVudDogdmVydGljYWw7XFxyXFxuICBvdmVyZmxvdzogaGlkZGVuO1xcclxcbn1cXHJcXG5cXHJcXG4vKiDoh6rlrprkuYnmu5rliqjmnaEgKi9cXHJcXG46Oi13ZWJraXQtc2Nyb2xsYmFyIHtcXHJcXG4gIHdpZHRoOiA4cHg7XFxyXFxufVxcclxcblxcclxcbjo6LXdlYmtpdC1zY3JvbGxiYXItdHJhY2sge1xcclxcbiAgYmFja2dyb3VuZDogI2YxZjFmMTtcXHJcXG4gIGJvcmRlci1yYWRpdXM6IDRweDtcXHJcXG59XFxyXFxuXFxyXFxuOjotd2Via2l0LXNjcm9sbGJhci10aHVtYiB7XFxyXFxuICBiYWNrZ3JvdW5kOiAjYzFjMWMxO1xcclxcbiAgYm9yZGVyLXJhZGl1czogNHB4O1xcclxcbn1cXHJcXG5cXHJcXG46Oi13ZWJraXQtc2Nyb2xsYmFyLXRodW1iOmhvdmVyIHtcXHJcXG4gIGJhY2tncm91bmQ6ICNhOGE4YTg7XFxyXFxufVxcclxcblxcclxcbi8qIOW5s+a7kea7muWKqCAqL1xcclxcbmh0bWwge1xcclxcbiAgc2Nyb2xsLWJlaGF2aW9yOiBzbW9vdGg7XFxyXFxufVxcclxcblxcclxcbi8qIOeEpueCueagt+W8jyAqL1xcclxcbi5mb2N1c1xcXFw6cmluZy0yOmZvY3VzIHtcXHJcXG4gIC0tdHctcmluZy1vZmZzZXQtc2hhZG93OiB2YXIoLS10dy1yaW5nLWluc2V0KSAwIDAgMCB2YXIoLS10dy1yaW5nLW9mZnNldC13aWR0aCkgdmFyKC0tdHctcmluZy1vZmZzZXQtY29sb3IpO1xcclxcbiAgLS10dy1yaW5nLXNoYWRvdzogdmFyKC0tdHctcmluZy1pbnNldCkgMCAwIDAgY2FsYygycHggKyB2YXIoLS10dy1yaW5nLW9mZnNldC13aWR0aCkpIHZhcigtLXR3LXJpbmctY29sb3IpO1xcclxcbiAgYm94LXNoYWRvdzogdmFyKC0tdHctcmluZy1vZmZzZXQtc2hhZG93KSwgdmFyKC0tdHctcmluZy1zaGFkb3cpLCB2YXIoLS10dy1zaGFkb3csIDAgMCAjMDAwMCk7XFxyXFxufVwiXSxcInNvdXJjZVJvb3RcIjpcIlwifV0pO1xuLy8gRXhwb3J0c1xuZXhwb3J0IGRlZmF1bHQgX19fQ1NTX0xPQURFUl9FWFBPUlRfX187XG4iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(pages-dir-browser)/./node_modules/next/dist/build/webpack/loaders/css-loader/src/index.js??ruleSet[1].rules[7].oneOf[13].use[1]!./node_modules/next/dist/build/webpack/loaders/postcss-loader/src/index.js??ruleSet[1].rules[7].oneOf[13].use[2]!./styles/globals.css\n")); - -/***/ }) - -}); \ No newline at end of file diff --git a/build/static/webpack/pages/index.51350c0cee96bd54.hot-update.js b/build/static/webpack/pages/index.51350c0cee96bd54.hot-update.js deleted file mode 100644 index 5e49171..0000000 --- a/build/static/webpack/pages/index.51350c0cee96bd54.hot-update.js +++ /dev/null @@ -1,22 +0,0 @@ -"use strict"; -/* - * ATTENTION: An "eval-source-map" devtool has been used. - * This devtool is neither made for production nor for readable output files. - * It uses "eval()" calls to create a separate source file with attached SourceMaps in the browser devtools. - * If you are trying to read the output file, select a different devtool (https://webpack.js.org/configuration/devtool/) - * or disable the default devtool with "devtool: false". - * If you are looking for production-ready output files, see mode: "production" (https://webpack.js.org/configuration/mode/). - */ -self["webpackHotUpdate_N_E"]("pages/index",{ - -/***/ "(pages-dir-browser)/./pages/index.tsx": -/*!*************************!*\ - !*** ./pages/index.tsx ***! - \*************************/ -/***/ ((module, __webpack_exports__, __webpack_require__) => { - -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 */ \"(pages-dir-browser)/./node_modules/react/jsx-dev-runtime.js\");\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _components_Navbar__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../components/Navbar */ \"(pages-dir-browser)/./components/Navbar.tsx\");\n/* harmony import */ var _components_Hero__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../components/Hero */ \"(pages-dir-browser)/./components/Hero.tsx\");\n/* harmony import */ var _components_Features__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../components/Features */ \"(pages-dir-browser)/./components/Features.tsx\");\n/* harmony import */ var _components_Testimonials__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../components/Testimonials */ \"(pages-dir-browser)/./components/Testimonials.tsx\");\n/* harmony import */ var _components_Cta__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../components/Cta */ \"(pages-dir-browser)/./components/Cta.tsx\");\n/* harmony import */ var _components_Footer__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../components/Footer */ \"(pages-dir-browser)/./components/Footer.tsx\");\n/* harmony import */ var _components_Process__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../components/Process */ \"(pages-dir-browser)/./components/Process.tsx\");\n/* harmony import */ var _components_CoreAdvantages__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../components/CoreAdvantages */ \"(pages-dir-browser)/./components/CoreAdvantages.tsx\");\n\n\n\n\n\n\n\n\n\nfunction Home() {\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"pt-16 pb-8 bg-background\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_Navbar__WEBPACK_IMPORTED_MODULE_1__[\"default\"], {}, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\pages\\\\index.tsx\",\n lineNumber: 13,\n columnNumber: 7\n }, this),\n /*#__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)(_components_Hero__WEBPACK_IMPORTED_MODULE_2__[\"default\"], {}, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\pages\\\\index.tsx\",\n lineNumber: 15,\n columnNumber: 9\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_Features__WEBPACK_IMPORTED_MODULE_3__[\"default\"], {}, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\pages\\\\index.tsx\",\n lineNumber: 16,\n columnNumber: 9\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_Process__WEBPACK_IMPORTED_MODULE_7__[\"default\"], {}, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\pages\\\\index.tsx\",\n lineNumber: 17,\n columnNumber: 10\n }, this),\n \"+ \",\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_CoreAdvantages__WEBPACK_IMPORTED_MODULE_8__[\"default\"], {}, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\pages\\\\index.tsx\",\n lineNumber: 18,\n columnNumber: 9\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_Testimonials__WEBPACK_IMPORTED_MODULE_4__[\"default\"], {}, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\pages\\\\index.tsx\",\n lineNumber: 19,\n columnNumber: 9\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_Cta__WEBPACK_IMPORTED_MODULE_5__[\"default\"], {}, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\pages\\\\index.tsx\",\n lineNumber: 20,\n columnNumber: 9\n }, this)\n ]\n }, void 0, true, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\pages\\\\index.tsx\",\n lineNumber: 14,\n columnNumber: 7\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_Footer__WEBPACK_IMPORTED_MODULE_6__[\"default\"], {}, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\pages\\\\index.tsx\",\n lineNumber: 22,\n columnNumber: 7\n }, this)\n ]\n }, void 0, true, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\pages\\\\index.tsx\",\n lineNumber: 12,\n columnNumber: 5\n }, this);\n}\n_c = Home;\nvar _c;\n$RefreshReg$(_c, \"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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1icm93c2VyKS8uL3BhZ2VzL2luZGV4LnRzeCIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7QUFBMEM7QUFDSjtBQUNRO0FBQ1E7QUFDbEI7QUFDTTtBQUNFO0FBQ2M7QUFFM0MsU0FBU1E7SUFDdEIscUJBQ0UsOERBQUNDO1FBQUlDLFdBQVU7OzBCQUNiLDhEQUFDViwwREFBTUE7Ozs7OzBCQUNQLDhEQUFDVzs7a0NBQ0MsOERBQUNWLHdEQUFJQTs7Ozs7a0NBQ0wsOERBQUNDLDREQUFRQTs7Ozs7a0NBQ1IsOERBQUNJLDJEQUFPQTs7Ozs7b0JBQUc7a0NBQ1osOERBQUNDLGtFQUFjQTs7Ozs7a0NBQ2YsOERBQUNKLGdFQUFZQTs7Ozs7a0NBQ2IsOERBQUNDLHVEQUFHQTs7Ozs7Ozs7Ozs7MEJBRU4sOERBQUNDLDBEQUFNQTs7Ozs7Ozs7Ozs7QUFHYjtLQWZ3QkciLCJzb3VyY2VzIjpbIkQ6XFxkb25neXVuLXByb2plY3RzXFx0d29cXHBhZ2VzXFxpbmRleC50c3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IE5hdmJhciBmcm9tICcuLi9jb21wb25lbnRzL05hdmJhcic7XHJcbmltcG9ydCBIZXJvIGZyb20gJy4uL2NvbXBvbmVudHMvSGVybyc7XHJcbmltcG9ydCBGZWF0dXJlcyBmcm9tICcuLi9jb21wb25lbnRzL0ZlYXR1cmVzJztcclxuaW1wb3J0IFRlc3RpbW9uaWFscyBmcm9tICcuLi9jb21wb25lbnRzL1Rlc3RpbW9uaWFscyc7XHJcbmltcG9ydCBDdGEgZnJvbSAnLi4vY29tcG9uZW50cy9DdGEnO1xyXG5pbXBvcnQgRm9vdGVyIGZyb20gJy4uL2NvbXBvbmVudHMvRm9vdGVyJztcclxuaW1wb3J0IFByb2Nlc3MgZnJvbSAnLi4vY29tcG9uZW50cy9Qcm9jZXNzJztcclxuaW1wb3J0IENvcmVBZHZhbnRhZ2VzIGZyb20gJy4uL2NvbXBvbmVudHMvQ29yZUFkdmFudGFnZXMnO1xyXG5cclxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gSG9tZSgpIHtcclxuICByZXR1cm4gKFxyXG4gICAgPGRpdiBjbGFzc05hbWU9XCJwdC0xNiBwYi04IGJnLWJhY2tncm91bmRcIj5cclxuICAgICAgPE5hdmJhciAvPlxyXG4gICAgICA8bWFpbj5cclxuICAgICAgICA8SGVybyAvPlxyXG4gICAgICAgIDxGZWF0dXJlcyAvPlxyXG4gICAgICAgICA8UHJvY2VzcyAvPlxyXG4rICAgICAgIDxDb3JlQWR2YW50YWdlcyAvPlxyXG4gICAgICAgIDxUZXN0aW1vbmlhbHMgLz5cclxuICAgICAgICA8Q3RhIC8+XHJcbiAgICAgIDwvbWFpbj5cclxuICAgICAgPEZvb3RlciAvPlxyXG4gICAgPC9kaXY+XHJcbiAgKTtcclxufSJdLCJuYW1lcyI6WyJOYXZiYXIiLCJIZXJvIiwiRmVhdHVyZXMiLCJUZXN0aW1vbmlhbHMiLCJDdGEiLCJGb290ZXIiLCJQcm9jZXNzIiwiQ29yZUFkdmFudGFnZXMiLCJIb21lIiwiZGl2IiwiY2xhc3NOYW1lIiwibWFpbiJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(pages-dir-browser)/./pages/index.tsx\n")); - -/***/ }) - -}); \ No newline at end of file diff --git a/build/static/webpack/pages/news.61c96229ecd10e60.hot-update.js b/build/static/webpack/pages/news.61c96229ecd10e60.hot-update.js deleted file mode 100644 index f7baf78..0000000 --- a/build/static/webpack/pages/news.61c96229ecd10e60.hot-update.js +++ /dev/null @@ -1,22 +0,0 @@ -"use strict"; -/* - * ATTENTION: An "eval-source-map" devtool has been used. - * This devtool is neither made for production nor for readable output files. - * It uses "eval()" calls to create a separate source file with attached SourceMaps in the browser devtools. - * If you are trying to read the output file, select a different devtool (https://webpack.js.org/configuration/devtool/) - * or disable the default devtool with "devtool: false". - * If you are looking for production-ready output files, see mode: "production" (https://webpack.js.org/configuration/mode/). - */ -self["webpackHotUpdate_N_E"]("pages/news",{ - -/***/ "(pages-dir-browser)/./pages/news.tsx": -/*!************************!*\ - !*** ./pages/news.tsx ***! - \************************/ -/***/ ((module, __webpack_exports__, __webpack_require__) => { - -eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ __N_SSG: () => (/* binding */ __N_SSG),\n/* harmony export */ \"default\": () => (/* binding */ NewsPage)\n/* harmony export */ });\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react/jsx-dev-runtime */ \"(pages-dir-browser)/./node_modules/react/jsx-dev-runtime.js\");\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _components_Navbar__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../components/Navbar */ \"(pages-dir-browser)/./components/Navbar.tsx\");\n/* harmony import */ var _components_NewsList__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../components/NewsList */ \"(pages-dir-browser)/./components/NewsList.tsx\");\n/* harmony import */ var _components_Footer__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../components/Footer */ \"(pages-dir-browser)/./components/Footer.tsx\");\n/* harmony import */ var _barrel_optimize_names_Calendar_Newspaper_TrendingUp_lucide_react__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! __barrel_optimize__?names=Calendar,Newspaper,TrendingUp!=!lucide-react */ \"(pages-dir-browser)/__barrel_optimize__?names=Calendar,Newspaper,TrendingUp!=!./node_modules/lucide-react/dist/esm/lucide-react.js\");\n\n\n\n\n\nvar __N_SSG = true;\nfunction NewsPage(param) {\n let { news } = param;\n // 统计新闻数据\n const totalNews = news.length;\n const recentNews = news.slice(0, 3);\n const categories = Array.from(new Set(news.flatMap((item)=>item.tags || [])));\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"pt-16 bg-background\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_Navbar__WEBPACK_IMPORTED_MODULE_1__[\"default\"], {}, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\pages\\\\news.tsx\",\n lineNumber: 16,\n columnNumber: 7\n }, this),\n /*#__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)(\"section\", {\n className: \"px-6 py-16 bg-gradient-to-br from-blue-50 to-indigo-100\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"max-w-screen-xl mx-auto text-center\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"h1\", {\n className: \"text-4xl md:text-5xl font-bold text-primary mb-6\",\n children: \"新闻资讯\"\n }, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\pages\\\\news.tsx\",\n lineNumber: 21,\n columnNumber: 13\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"p\", {\n className: \"text-xl text-gray-600 max-w-3xl mx-auto leading-relaxed mb-8\",\n children: \"了解最新的产品动态、技术更新和行业资讯,掌握云加速服务的最新发展\"\n }, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\pages\\\\news.tsx\",\n lineNumber: 24,\n columnNumber: 13\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"grid grid-cols-1 md:grid-cols-3 gap-6 max-w-2xl mx-auto\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"bg-white/80 backdrop-blur-sm rounded-lg p-4 shadow-sm\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex items-center justify-center mb-2\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_barrel_optimize_names_Calendar_Newspaper_TrendingUp_lucide_react__WEBPACK_IMPORTED_MODULE_4__.Newspaper, {\n className: \"w-6 h-6 text-accent mr-2\"\n }, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\pages\\\\news.tsx\",\n lineNumber: 32,\n columnNumber: 19\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n className: \"text-2xl font-bold text-primary\",\n children: totalNews\n }, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\pages\\\\news.tsx\",\n lineNumber: 33,\n columnNumber: 19\n }, this)\n ]\n }, void 0, true, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\pages\\\\news.tsx\",\n lineNumber: 31,\n columnNumber: 17\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"p\", {\n className: \"text-sm text-gray-600\",\n children: \"新闻资讯\"\n }, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\pages\\\\news.tsx\",\n lineNumber: 35,\n columnNumber: 17\n }, this)\n ]\n }, void 0, true, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\pages\\\\news.tsx\",\n lineNumber: 30,\n columnNumber: 15\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"bg-white/80 backdrop-blur-sm rounded-lg p-4 shadow-sm\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex items-center justify-center mb-2\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_barrel_optimize_names_Calendar_Newspaper_TrendingUp_lucide_react__WEBPACK_IMPORTED_MODULE_4__.Calendar, {\n className: \"w-6 h-6 text-green-500 mr-2\"\n }, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\pages\\\\news.tsx\",\n lineNumber: 40,\n columnNumber: 19\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n className: \"text-2xl font-bold text-primary\",\n children: categories.length\n }, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\pages\\\\news.tsx\",\n lineNumber: 41,\n columnNumber: 19\n }, this)\n ]\n }, void 0, true, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\pages\\\\news.tsx\",\n lineNumber: 39,\n columnNumber: 17\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"p\", {\n className: \"text-sm text-gray-600\",\n children: \"分类标签\"\n }, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\pages\\\\news.tsx\",\n lineNumber: 43,\n columnNumber: 17\n }, this)\n ]\n }, void 0, true, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\pages\\\\news.tsx\",\n lineNumber: 38,\n columnNumber: 15\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"bg-white/80 backdrop-blur-sm rounded-lg p-4 shadow-sm\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex items-center justify-center mb-2\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_barrel_optimize_names_Calendar_Newspaper_TrendingUp_lucide_react__WEBPACK_IMPORTED_MODULE_4__.TrendingUp, {\n className: \"w-6 h-6 text-purple-500 mr-2\"\n }, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\pages\\\\news.tsx\",\n lineNumber: 48,\n columnNumber: 19\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n className: \"text-2xl font-bold text-primary\",\n children: \"实时\"\n }, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\pages\\\\news.tsx\",\n lineNumber: 49,\n columnNumber: 19\n }, this)\n ]\n }, void 0, true, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\pages\\\\news.tsx\",\n lineNumber: 47,\n columnNumber: 17\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"p\", {\n className: \"text-sm text-gray-600\",\n children: \"更新状态\"\n }, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\pages\\\\news.tsx\",\n lineNumber: 51,\n columnNumber: 17\n }, this)\n ]\n }, void 0, true, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\pages\\\\news.tsx\",\n lineNumber: 46,\n columnNumber: 15\n }, this)\n ]\n }, void 0, true, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\pages\\\\news.tsx\",\n lineNumber: 29,\n columnNumber: 13\n }, this)\n ]\n }, void 0, true, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\pages\\\\news.tsx\",\n lineNumber: 20,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\pages\\\\news.tsx\",\n lineNumber: 19,\n columnNumber: 9\n }, this),\n recentNews.length > 0 && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"section\", {\n className: \"px-6 py-12 bg-white\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"max-w-screen-xl mx-auto\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"h2\", {\n className: \"text-2xl font-bold text-primary mb-8 text-center\",\n children: \"最新资讯\"\n }, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\pages\\\\news.tsx\",\n lineNumber: 61,\n columnNumber: 15\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"grid grid-cols-1 md:grid-cols-3 gap-6\",\n children: recentNews.map((item, index)=>/*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"group bg-gray-50 rounded-xl p-6 hover:shadow-lg transition-all duration-300 border border-gray-100 hover:border-accent/20\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex items-center mb-3\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n className: \"bg-accent text-white text-xs font-semibold px-2 py-1 rounded-full mr-3\",\n children: \"最新\"\n }, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\pages\\\\news.tsx\",\n lineNumber: 66,\n columnNumber: 23\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"time\", {\n className: \"text-sm text-gray-500\",\n children: item.date\n }, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\pages\\\\news.tsx\",\n lineNumber: 69,\n columnNumber: 23\n }, this)\n ]\n }, void 0, true, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\pages\\\\news.tsx\",\n lineNumber: 65,\n columnNumber: 21\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"h3\", {\n className: \"text-lg font-semibold text-primary mb-2 group-hover:text-accent transition-colors line-clamp-2\",\n children: item.title\n }, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\pages\\\\news.tsx\",\n lineNumber: 71,\n columnNumber: 21\n }, this),\n item.summary && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"p\", {\n className: \"text-gray-600 text-sm line-clamp-3 mb-3\",\n children: item.summary\n }, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\pages\\\\news.tsx\",\n lineNumber: 75,\n columnNumber: 23\n }, this),\n item.tags && item.tags.length > 0 && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex flex-wrap gap-1\",\n children: item.tags.slice(0, 2).map((tag)=>/*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n className: \"px-2 py-1 text-xs bg-white border border-gray-200 rounded text-gray-600\",\n children: tag\n }, tag, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\pages\\\\news.tsx\",\n lineNumber: 82,\n columnNumber: 27\n }, this))\n }, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\pages\\\\news.tsx\",\n lineNumber: 80,\n columnNumber: 23\n }, this)\n ]\n }, item.slug, true, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\pages\\\\news.tsx\",\n lineNumber: 64,\n columnNumber: 19\n }, this))\n }, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\pages\\\\news.tsx\",\n lineNumber: 62,\n columnNumber: 15\n }, this)\n ]\n }, void 0, true, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\pages\\\\news.tsx\",\n lineNumber: 60,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\pages\\\\news.tsx\",\n lineNumber: 59,\n columnNumber: 11\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_NewsList__WEBPACK_IMPORTED_MODULE_2__[\"default\"], {\n news: news\n }, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\pages\\\\news.tsx\",\n lineNumber: 96,\n columnNumber: 9\n }, this)\n ]\n }, void 0, true, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\pages\\\\news.tsx\",\n lineNumber: 17,\n columnNumber: 7\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_Footer__WEBPACK_IMPORTED_MODULE_3__[\"default\"], {}, void 0, false, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\pages\\\\news.tsx\",\n lineNumber: 98,\n columnNumber: 7\n }, this)\n ]\n }, void 0, true, {\n fileName: \"D:\\\\dongyun-projects\\\\two\\\\pages\\\\news.tsx\",\n lineNumber: 15,\n columnNumber: 5\n }, this);\n}\n_c = NewsPage;\nvar _c;\n$RefreshReg$(_c, \"NewsPage\");\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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a0NBZ0M3Qiw4REFBQ2xDLDREQUFRQTt3QkFBQ00sTUFBTUE7Ozs7Ozs7Ozs7OzswQkFFbEIsOERBQUNMLDBEQUFNQTs7Ozs7Ozs7Ozs7QUFHYjtLQTdGd0JJIiwic291cmNlcyI6WyJEOlxcZG9uZ3l1bi1wcm9qZWN0c1xcdHdvXFxwYWdlc1xcbmV3cy50c3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IE5hdmJhciBmcm9tICcuLi9jb21wb25lbnRzL05hdmJhcic7XHJcbmltcG9ydCBOZXdzTGlzdCBmcm9tICcuLi9jb21wb25lbnRzL05ld3NMaXN0JztcclxuaW1wb3J0IEZvb3RlciBmcm9tICcuLi9jb21wb25lbnRzL0Zvb3Rlcic7XHJcbmltcG9ydCB0eXBlIHsgR2V0U3RhdGljUHJvcHMgfSBmcm9tICduZXh0JztcclxuaW1wb3J0IHsgZ2V0QWxsTmV3cywgTmV3c0l0ZW0gfSBmcm9tICcuLi9saWIvY29udGVudCc7XHJcbmltcG9ydCB7IENhbGVuZGFyLCBOZXdzcGFwZXIsIFRyZW5kaW5nVXAgfSBmcm9tICdsdWNpZGUtcmVhY3QnO1xyXG5cclxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gTmV3c1BhZ2UoeyBuZXdzIH06IHsgbmV3czogTmV3c0l0ZW1bXSB9KSB7XHJcbiAgLy8g57uf6K6h5paw6Ze75pWw5o2uXHJcbiAgY29uc3QgdG90YWxOZXdzID0gbmV3cy5sZW5ndGg7XHJcbiAgY29uc3QgcmVjZW50TmV3cyA9IG5ld3Muc2xpY2UoMCwgMyk7XHJcbiAgY29uc3QgY2F0ZWdvcmllcyA9IEFycmF5LmZyb20obmV3IFNldChuZXdzLmZsYXRNYXAoaXRlbSA9PiBpdGVtLnRhZ3MgfHwgW10pKSk7XHJcblxyXG4gIHJldHVybiAoXHJcbiAgICA8ZGl2IGNsYXNzTmFtZT1cInB0LTE2IGJnLWJhY2tncm91bmRcIj5cclxuICAgICAgPE5hdmJhciAvPlxyXG4gICAgICA8bWFpbj5cclxuICAgICAgICB7Lyog6aG16Z2i5qCH6aKY6YOo5YiGICovfVxyXG4gICAgICAgIDxzZWN0aW9uIGNsYXNzTmFtZT1cInB4LTYgcHktMTYgYmctZ3JhZGllbnQtdG8tYnIgZnJvbS1ibHVlLTUwIHRvLWluZGlnby0xMDBcIj5cclxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwibWF4LXctc2NyZWVuLXhsIG14LWF1dG8gdGV4dC1jZW50ZXJcIj5cclxuICAgICAgICAgICAgPGgxIGNsYXNzTmFtZT1cInRleHQtNHhsIG1kOnRleHQtNXhsIGZvbnQtYm9sZCB0ZXh0LXByaW1hcnkgbWItNlwiPlxyXG4gICAgICAgICAgICAgIOaWsOmXu+i1hOiur1xyXG4gICAgICAgICAgICA8L2gxPlxyXG4gICAgICAgICAgICA8cCBjbGFzc05hbWU9XCJ0ZXh0LXhsIHRleHQtZ3JheS02MDAgbWF4LXctM3hsIG14LWF1dG8gbGVhZGluZy1yZWxheGVkIG1iLThcIj5cclxuICAgICAgICAgICAgICDkuobop6PmnIDmlrDnmoTkuqflk4HliqjmgIHjgIHmioDmnK/mm7TmlrDlkozooYzkuJrotYTorq/vvIzmjozmj6HkupHliqDpgJ/mnI3liqHnmoTmnIDmlrDlj5HlsZVcclxuICAgICAgICAgICAgPC9wPlxyXG4gICAgICAgICAgICBcclxuICAgICAgICAgICAgey8qIOe7n+iuoeS/oeaBryAqL31cclxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJncmlkIGdyaWQtY29scy0xIG1kOmdyaWQtY29scy0zIGdhcC02IG1heC13LTJ4bCBteC1hdXRvXCI+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJiZy13aGl0ZS84MCBiYWNrZHJvcC1ibHVyLXNtIHJvdW5kZWQtbGcgcC00IHNoYWRvdy1zbVwiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJmbGV4IGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNlbnRlciBtYi0yXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxOZXdzcGFwZXIgY2xhc3NOYW1lPVwidy02IGgtNiB0ZXh0LWFjY2VudCBtci0yXCIgLz5cclxuICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwidGV4dC0yeGwgZm9udC1ib2xkIHRleHQtcHJpbWFyeVwiPnt0b3RhbE5ld3N9PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8cCBjbGFzc05hbWU9XCJ0ZXh0LXNtIHRleHQtZ3JheS02MDBcIj7mlrDpl7votYTorq88L3A+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgXHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJiZy13aGl0ZS84MCBiYWNrZHJvcC1ibHVyLXNtIHJvdW5kZWQtbGcgcC00IHNoYWRvdy1zbVwiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJmbGV4IGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNlbnRlciBtYi0yXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxDYWxlbmRhciBjbGFzc05hbWU9XCJ3LTYgaC02IHRleHQtZ3JlZW4tNTAwIG1yLTJcIiAvPlxyXG4gICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJ0ZXh0LTJ4bCBmb250LWJvbGQgdGV4dC1wcmltYXJ5XCI+e2NhdGVnb3JpZXMubGVuZ3RofTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPHAgY2xhc3NOYW1lPVwidGV4dC1zbSB0ZXh0LWdyYXktNjAwXCI+5YiG57G75qCH562+PC9wPlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIFxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiYmctd2hpdGUvODAgYmFja2Ryb3AtYmx1ci1zbSByb3VuZGVkLWxnIHAtNCBzaGFkb3ctc21cIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZmxleCBpdGVtcy1jZW50ZXIganVzdGlmeS1jZW50ZXIgbWItMlwiPlxyXG4gICAgICAgICAgICAgICAgICA8VHJlbmRpbmdVcCBjbGFzc05hbWU9XCJ3LTYgaC02IHRleHQtcHVycGxlLTUwMCBtci0yXCIgLz5cclxuICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwidGV4dC0yeGwgZm9udC1ib2xkIHRleHQtcHJpbWFyeVwiPuWunuaXtjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPHAgY2xhc3NOYW1lPVwidGV4dC1zbSB0ZXh0LWdyYXktNjAwXCI+5pu05paw54q25oCBPC9wPlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvc2VjdGlvbj5cclxuXHJcbiAgICAgICAgey8qIOacgOaWsOi1hOiur+mihOiniCAqL31cclxuICAgICAgICB7cmVjZW50TmV3cy5sZW5ndGggPiAwICYmIChcclxuICAgICAgICAgIDxzZWN0aW9uIGNsYXNzTmFtZT1cInB4LTYgcHktMTIgYmctd2hpdGVcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJtYXgtdy1zY3JlZW4teGwgbXgtYXV0b1wiPlxyXG4gICAgICAgICAgICAgIDxoMiBjbGFzc05hbWU9XCJ0ZXh0LTJ4bCBmb250LWJvbGQgdGV4dC1wcmltYXJ5IG1iLTggdGV4dC1jZW50ZXJcIj7mnIDmlrDotYTorq88L2gyPlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZ3JpZCBncmlkLWNvbHMtMSBtZDpncmlkLWNvbHMtMyBnYXAtNlwiPlxyXG4gICAgICAgICAgICAgICAge3JlY2VudE5ld3MubWFwKChpdGVtLCBpbmRleCkgPT4gKFxyXG4gICAgICAgICAgICAgICAgICA8ZGl2IGtleT17aXRlbS5zbHVnfSBjbGFzc05hbWU9XCJncm91cCBiZy1ncmF5LTUwIHJvdW5kZWQteGwgcC02IGhvdmVyOnNoYWRvdy1sZyB0cmFuc2l0aW9uLWFsbCBkdXJhdGlvbi0zMDAgYm9yZGVyIGJvcmRlci1ncmF5LTEwMCBob3Zlcjpib3JkZXItYWNjZW50LzIwXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJmbGV4IGl0ZW1zLWNlbnRlciBtYi0zXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJiZy1hY2NlbnQgdGV4dC13aGl0ZSB0ZXh0LXhzIGZvbnQtc2VtaWJvbGQgcHgtMiBweS0xIHJvdW5kZWQtZnVsbCBtci0zXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIOacgOaWsFxyXG4gICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPHRpbWUgY2xhc3NOYW1lPVwidGV4dC1zbSB0ZXh0LWdyYXktNTAwXCI+e2l0ZW0uZGF0ZX08L3RpbWU+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPGgzIGNsYXNzTmFtZT1cInRleHQtbGcgZm9udC1zZW1pYm9sZCB0ZXh0LXByaW1hcnkgbWItMiBncm91cC1ob3Zlcjp0ZXh0LWFjY2VudCB0cmFuc2l0aW9uLWNvbG9ycyBsaW5lLWNsYW1wLTJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgIHtpdGVtLnRpdGxlfVxyXG4gICAgICAgICAgICAgICAgICAgIDwvaDM+XHJcbiAgICAgICAgICAgICAgICAgICAge2l0ZW0uc3VtbWFyeSAmJiAoXHJcbiAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzc05hbWU9XCJ0ZXh0LWdyYXktNjAwIHRleHQtc20gbGluZS1jbGFtcC0zIG1iLTNcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAge2l0ZW0uc3VtbWFyeX1cclxuICAgICAgICAgICAgICAgICAgICAgIDwvcD5cclxuICAgICAgICAgICAgICAgICAgICApfVxyXG4gICAgICAgICAgICAgICAgICAgIHtpdGVtLnRhZ3MgJiYgaXRlbS50YWdzLmxlbmd0aCA+IDAgJiYgKFxyXG4gICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJmbGV4IGZsZXgtd3JhcCBnYXAtMVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICB7aXRlbS50YWdzLnNsaWNlKDAsIDIpLm1hcCh0YWcgPT4gKFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGtleT17dGFnfSBjbGFzc05hbWU9XCJweC0yIHB5LTEgdGV4dC14cyBiZy13aGl0ZSBib3JkZXIgYm9yZGVyLWdyYXktMjAwIHJvdW5kZWQgdGV4dC1ncmF5LTYwMFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge3RhZ31cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICkpfVxyXG4gICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgKX1cclxuICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICApKX1cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L3NlY3Rpb24+XHJcbiAgICAgICAgKX1cclxuXHJcbiAgICAgICAgey8qIOaWsOmXu+WIl+ihqCAqL31cclxuICAgICAgICA8TmV3c0xpc3QgbmV3cz17bmV3c30gLz5cclxuICAgICAgPC9tYWluPlxyXG4gICAgICA8Rm9vdGVyIC8+XHJcbiAgICA8L2Rpdj5cclxuICApO1xyXG59XHJcblxyXG5leHBvcnQgY29uc3QgZ2V0U3RhdGljUHJvcHM6IEdldFN0YXRpY1Byb3BzID0gYXN5bmMgKCkgPT4ge1xyXG4gIGNvbnN0IG5ld3MgPSBnZXRBbGxOZXdzKCk7XHJcbiAgcmV0dXJuIHsgcHJvcHM6IHsgbmV3cyB9IH07XHJcbn0iXSwibmFtZXMiOlsiTmF2YmFyIiwiTmV3c0xpc3QiLCJGb290ZXIiLCJDYWxlbmRhciIsIk5ld3NwYXBlciIsIlRyZW5kaW5nVXAiLCJOZXdzUGFnZSIsIm5ld3MiLCJ0b3RhbE5ld3MiLCJsZW5ndGgiLCJyZWNlbnROZXdzIiwic2xpY2UiLCJjYXRlZ29yaWVzIiwiQXJyYXkiLCJmcm9tIiwiU2V0IiwiZmxhdE1hcCIsIml0ZW0iLCJ0YWdzIiwiZGl2IiwiY2xhc3NOYW1lIiwibWFpbiIsInNlY3Rpb24iLCJoMSIsInAiLCJzcGFuIiwiaDIiLCJtYXAiLCJpbmRleCIsInRpbWUiLCJkYXRlIiwiaDMiLCJ0aXRsZSIsInN1bW1hcnkiLCJ0YWciLCJzbHVnIl0sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(pages-dir-browser)/./pages/news.tsx\n")); - -/***/ }) - -}); \ No newline at end of file diff --git a/build/static/webpack/webpack.1c5c6376a4344887.hot-update.js b/build/static/webpack/webpack.1c5c6376a4344887.hot-update.js deleted file mode 100644 index bb1cedd..0000000 --- a/build/static/webpack/webpack.1c5c6376a4344887.hot-update.js +++ /dev/null @@ -1,12 +0,0 @@ -"use strict"; -self["webpackHotUpdate_N_E"]("webpack",{}, -/******/ function(__webpack_require__) { // webpackRuntimeModules -/******/ /* webpack/runtime/getFullHash */ -/******/ (() => { -/******/ __webpack_require__.h = () => ("61c96229ecd10e60") -/******/ })(); -/******/ -/******/ } -) -//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJpZ25vcmVMaXN0IjpbMF0sIm1hcHBpbmdzIjoiQUFBQSIsInNvdXJjZXMiOlsid2VicGFjay1pbnRlcm5hbDovL25leHRqcy93ZWJwYWNrLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIi8vIFRoaXMgc291cmNlIHdhcyBnZW5lcmF0ZWQgYnkgTmV4dC5qcyBiYXNlZCBvZmYgb2YgdGhlIGdlbmVyYXRlZCBXZWJwYWNrIHJ1bnRpbWUuXG4vLyBUaGUgbWFwcGluZ3MgYXJlIGluY29ycmVjdC5cbi8vIFRvIGdldCB0aGUgY29ycmVjdCBsaW5lL2NvbHVtbiBtYXBwaW5ncywgdHVybiBvZmYgc291cmNlbWFwcyBpbiB5b3VyIGRlYnVnZ2VyLlxuXG5zZWxmW1wid2VicGFja0hvdFVwZGF0ZV9OX0VcIl0oXCJ3ZWJwYWNrXCIse30sXG4vKioqKioqLyBmdW5jdGlvbihfX3dlYnBhY2tfcmVxdWlyZV9fKSB7IC8vIHdlYnBhY2tSdW50aW1lTW9kdWxlc1xuLyoqKioqKi8gLyogd2VicGFjay9ydW50aW1lL2dldEZ1bGxIYXNoICovXG4vKioqKioqLyAoKCkgPT4ge1xuLyoqKioqKi8gXHRfX3dlYnBhY2tfcmVxdWlyZV9fLmggPSAoKSA9PiAoXCI2MWM5NjIyOWVjZDEwZTYwXCIpXG4vKioqKioqLyB9KSgpO1xuLyoqKioqKi8gXG4vKioqKioqLyB9XG4pIl19 -; \ No newline at end of file diff --git a/build/static/webpack/webpack.51350c0cee96bd54.hot-update.js b/build/static/webpack/webpack.51350c0cee96bd54.hot-update.js deleted file mode 100644 index eb78608..0000000 --- a/build/static/webpack/webpack.51350c0cee96bd54.hot-update.js +++ /dev/null @@ -1,12 +0,0 @@ -"use strict"; -self["webpackHotUpdate_N_E"]("webpack",{}, -/******/ function(__webpack_require__) { // webpackRuntimeModules -/******/ /* webpack/runtime/getFullHash */ -/******/ (() => { -/******/ __webpack_require__.h = () => ("76beab5924bf7329") -/******/ })(); -/******/ -/******/ } -) -//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJpZ25vcmVMaXN0IjpbMF0sIm1hcHBpbmdzIjoiQUFBQSIsInNvdXJjZXMiOlsid2VicGFjay1pbnRlcm5hbDovL25leHRqcy93ZWJwYWNrLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIi8vIFRoaXMgc291cmNlIHdhcyBnZW5lcmF0ZWQgYnkgTmV4dC5qcyBiYXNlZCBvZmYgb2YgdGhlIGdlbmVyYXRlZCBXZWJwYWNrIHJ1bnRpbWUuXG4vLyBUaGUgbWFwcGluZ3MgYXJlIGluY29ycmVjdC5cbi8vIFRvIGdldCB0aGUgY29ycmVjdCBsaW5lL2NvbHVtbiBtYXBwaW5ncywgdHVybiBvZmYgc291cmNlbWFwcyBpbiB5b3VyIGRlYnVnZ2VyLlxuXG5zZWxmW1wid2VicGFja0hvdFVwZGF0ZV9OX0VcIl0oXCJ3ZWJwYWNrXCIse30sXG4vKioqKioqLyBmdW5jdGlvbihfX3dlYnBhY2tfcmVxdWlyZV9fKSB7IC8vIHdlYnBhY2tSdW50aW1lTW9kdWxlc1xuLyoqKioqKi8gLyogd2VicGFjay9ydW50aW1lL2dldEZ1bGxIYXNoICovXG4vKioqKioqLyAoKCkgPT4ge1xuLyoqKioqKi8gXHRfX3dlYnBhY2tfcmVxdWlyZV9fLmggPSAoKSA9PiAoXCI3NmJlYWI1OTI0YmY3MzI5XCIpXG4vKioqKioqLyB9KSgpO1xuLyoqKioqKi8gXG4vKioqKioqLyB9XG4pIl19 -; \ No newline at end of file diff --git a/build/static/webpack/webpack.61c96229ecd10e60.hot-update.js b/build/static/webpack/webpack.61c96229ecd10e60.hot-update.js deleted file mode 100644 index 30bf976..0000000 --- a/build/static/webpack/webpack.61c96229ecd10e60.hot-update.js +++ /dev/null @@ -1,12 +0,0 @@ -"use strict"; -self["webpackHotUpdate_N_E"]("webpack",{}, -/******/ function(__webpack_require__) { // webpackRuntimeModules -/******/ /* webpack/runtime/getFullHash */ -/******/ (() => { -/******/ __webpack_require__.h = () => ("51350c0cee96bd54") -/******/ })(); -/******/ -/******/ } -) -//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJpZ25vcmVMaXN0IjpbMF0sIm1hcHBpbmdzIjoiQUFBQSIsInNvdXJjZXMiOlsid2VicGFjay1pbnRlcm5hbDovL25leHRqcy93ZWJwYWNrLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIi8vIFRoaXMgc291cmNlIHdhcyBnZW5lcmF0ZWQgYnkgTmV4dC5qcyBiYXNlZCBvZmYgb2YgdGhlIGdlbmVyYXRlZCBXZWJwYWNrIHJ1bnRpbWUuXG4vLyBUaGUgbWFwcGluZ3MgYXJlIGluY29ycmVjdC5cbi8vIFRvIGdldCB0aGUgY29ycmVjdCBsaW5lL2NvbHVtbiBtYXBwaW5ncywgdHVybiBvZmYgc291cmNlbWFwcyBpbiB5b3VyIGRlYnVnZ2VyLlxuXG5zZWxmW1wid2VicGFja0hvdFVwZGF0ZV9OX0VcIl0oXCJ3ZWJwYWNrXCIse30sXG4vKioqKioqLyBmdW5jdGlvbihfX3dlYnBhY2tfcmVxdWlyZV9fKSB7IC8vIHdlYnBhY2tSdW50aW1lTW9kdWxlc1xuLyoqKioqKi8gLyogd2VicGFjay9ydW50aW1lL2dldEZ1bGxIYXNoICovXG4vKioqKioqLyAoKCkgPT4ge1xuLyoqKioqKi8gXHRfX3dlYnBhY2tfcmVxdWlyZV9fLmggPSAoKSA9PiAoXCI1MTM1MGMwY2VlOTZiZDU0XCIpXG4vKioqKioqLyB9KSgpO1xuLyoqKioqKi8gXG4vKioqKioqLyB9XG4pIl19 -; \ No newline at end of file diff --git a/build/static/webpack/webpack.e015d916aaf837c8.hot-update.js b/build/static/webpack/webpack.e015d916aaf837c8.hot-update.js deleted file mode 100644 index 9d18a4a..0000000 --- a/build/static/webpack/webpack.e015d916aaf837c8.hot-update.js +++ /dev/null @@ -1,12 +0,0 @@ -"use strict"; -self["webpackHotUpdate_N_E"]("webpack",{}, -/******/ function(__webpack_require__) { // webpackRuntimeModules -/******/ /* webpack/runtime/getFullHash */ -/******/ (() => { -/******/ __webpack_require__.h = () => ("1c5c6376a4344887") -/******/ })(); -/******/ -/******/ } -) -//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJpZ25vcmVMaXN0IjpbMF0sIm1hcHBpbmdzIjoiQUFBQSIsInNvdXJjZXMiOlsid2VicGFjay1pbnRlcm5hbDovL25leHRqcy93ZWJwYWNrLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIi8vIFRoaXMgc291cmNlIHdhcyBnZW5lcmF0ZWQgYnkgTmV4dC5qcyBiYXNlZCBvZmYgb2YgdGhlIGdlbmVyYXRlZCBXZWJwYWNrIHJ1bnRpbWUuXG4vLyBUaGUgbWFwcGluZ3MgYXJlIGluY29ycmVjdC5cbi8vIFRvIGdldCB0aGUgY29ycmVjdCBsaW5lL2NvbHVtbiBtYXBwaW5ncywgdHVybiBvZmYgc291cmNlbWFwcyBpbiB5b3VyIGRlYnVnZ2VyLlxuXG5zZWxmW1wid2VicGFja0hvdFVwZGF0ZV9OX0VcIl0oXCJ3ZWJwYWNrXCIse30sXG4vKioqKioqLyBmdW5jdGlvbihfX3dlYnBhY2tfcmVxdWlyZV9fKSB7IC8vIHdlYnBhY2tSdW50aW1lTW9kdWxlc1xuLyoqKioqKi8gLyogd2VicGFjay9ydW50aW1lL2dldEZ1bGxIYXNoICovXG4vKioqKioqLyAoKCkgPT4ge1xuLyoqKioqKi8gXHRfX3dlYnBhY2tfcmVxdWlyZV9fLmggPSAoKSA9PiAoXCIxYzVjNjM3NmE0MzQ0ODg3XCIpXG4vKioqKioqLyB9KSgpO1xuLyoqKioqKi8gXG4vKioqKioqLyB9XG4pIl19 -; \ No newline at end of file diff --git a/build/trace b/build/trace deleted file mode 100644 index d3789cc..0000000 --- a/build/trace +++ /dev/null @@ -1,18 +0,0 @@ -[{"name":"hot-reloader","duration":190,"timestamp":129681301646,"id":3,"tags":{"version":"15.4.1"},"startTime":1757909176761,"traceId":"7e8ce557c902d3f3"},{"name":"start","duration":32,"timestamp":129681308692,"id":4,"parentId":3,"tags":{},"startTime":1757909176768,"traceId":"7e8ce557c902d3f3"},{"name":"get-version-info","duration":921486,"timestamp":129681308950,"id":5,"parentId":4,"tags":{},"startTime":1757909176769,"traceId":"7e8ce557c902d3f3"},{"name":"clean","duration":32226,"timestamp":129682230617,"id":6,"parentId":4,"tags":{},"startTime":1757909177690,"traceId":"7e8ce557c902d3f3"},{"name":"get-page-paths","duration":1452,"timestamp":129682264911,"id":8,"parentId":7,"tags":{},"startTime":1757909177725,"traceId":"7e8ce557c902d3f3"},{"name":"create-pages-mapping","duration":967,"timestamp":129682266397,"id":9,"parentId":7,"tags":{},"startTime":1757909177726,"traceId":"7e8ce557c902d3f3"},{"name":"create-entrypoints","duration":5744,"timestamp":129682267417,"id":10,"parentId":7,"tags":{},"startTime":1757909177727,"traceId":"7e8ce557c902d3f3"},{"name":"generate-webpack-config","duration":108613,"timestamp":129682273245,"id":11,"parentId":7,"tags":{},"startTime":1757909177733,"traceId":"7e8ce557c902d3f3"},{"name":"get-webpack-config","duration":117119,"timestamp":129682264769,"id":7,"parentId":4,"tags":{},"startTime":1757909177725,"traceId":"7e8ce557c902d3f3"},{"name":"make","duration":2592,"timestamp":129682665744,"id":13,"parentId":12,"tags":{},"startTime":1757909178125,"traceId":"7e8ce557c902d3f3"},{"name":"chunk-graph","duration":1873,"timestamp":129682673936,"id":15,"parentId":14,"tags":{},"startTime":1757909178134,"traceId":"7e8ce557c902d3f3"},{"name":"optimize-modules","duration":73,"timestamp":129682676095,"id":17,"parentId":14,"tags":{},"startTime":1757909178136,"traceId":"7e8ce557c902d3f3"},{"name":"optimize-chunks","duration":515,"timestamp":129682676365,"id":18,"parentId":14,"tags":{},"startTime":1757909178136,"traceId":"7e8ce557c902d3f3"},{"name":"optimize-tree","duration":262,"timestamp":129682677044,"id":19,"parentId":14,"tags":{},"startTime":1757909178137,"traceId":"7e8ce557c902d3f3"},{"name":"optimize-chunk-modules","duration":300,"timestamp":129682677741,"id":20,"parentId":14,"tags":{},"startTime":1757909178137,"traceId":"7e8ce557c902d3f3"},{"name":"optimize","duration":2467,"timestamp":129682675961,"id":16,"parentId":14,"tags":{},"startTime":1757909178136,"traceId":"7e8ce557c902d3f3"},{"name":"module-hash","duration":197,"timestamp":129682680674,"id":21,"parentId":14,"tags":{},"startTime":1757909178140,"traceId":"7e8ce557c902d3f3"},{"name":"code-generation","duration":522,"timestamp":129682680947,"id":22,"parentId":14,"tags":{},"startTime":1757909178141,"traceId":"7e8ce557c902d3f3"},{"name":"hash","duration":1486,"timestamp":129682682206,"id":23,"parentId":14,"tags":{},"startTime":1757909178142,"traceId":"7e8ce557c902d3f3"},{"name":"code-generation-jobs","duration":388,"timestamp":129682683684,"id":24,"parentId":14,"tags":{},"startTime":1757909178143,"traceId":"7e8ce557c902d3f3"},{"name":"module-assets","duration":256,"timestamp":129682683973,"id":25,"parentId":14,"tags":{},"startTime":1757909178144,"traceId":"7e8ce557c902d3f3"},{"name":"create-chunk-assets","duration":534,"timestamp":129682684258,"id":26,"parentId":14,"tags":{},"startTime":1757909178144,"traceId":"7e8ce557c902d3f3"},{"name":"NextJsBuildManifest-generateClientManifest","duration":3331,"timestamp":129682742841,"id":28,"parentId":12,"tags":{},"startTime":1757909178203,"traceId":"7e8ce557c902d3f3"},{"name":"NextJsBuildManifest-createassets","duration":5174,"timestamp":129682741052,"id":27,"parentId":12,"tags":{},"startTime":1757909178201,"traceId":"7e8ce557c902d3f3"},{"name":"seal","duration":76077,"timestamp":129682672737,"id":14,"parentId":12,"tags":{},"startTime":1757909178132,"traceId":"7e8ce557c902d3f3"},{"name":"webpack-compilation","duration":99774,"timestamp":129682649950,"id":12,"parentId":3,"tags":{"name":"client"},"startTime":1757909178110,"traceId":"7e8ce557c902d3f3"},{"name":"emit","duration":25691,"timestamp":129682750987,"id":29,"parentId":3,"tags":{},"startTime":1757909178211,"traceId":"7e8ce557c902d3f3"},{"name":"make","duration":3546,"timestamp":129682801082,"id":31,"parentId":30,"tags":{},"startTime":1757909178261,"traceId":"7e8ce557c902d3f3"},{"name":"chunk-graph","duration":149,"timestamp":129682805716,"id":33,"parentId":32,"tags":{},"startTime":1757909178265,"traceId":"7e8ce557c902d3f3"},{"name":"optimize-modules","duration":50,"timestamp":129682806035,"id":35,"parentId":32,"tags":{},"startTime":1757909178266,"traceId":"7e8ce557c902d3f3"},{"name":"optimize-chunks","duration":2460,"timestamp":129682806315,"id":36,"parentId":32,"tags":{},"startTime":1757909178266,"traceId":"7e8ce557c902d3f3"},{"name":"optimize-tree","duration":41,"timestamp":129682808954,"id":37,"parentId":32,"tags":{},"startTime":1757909178269,"traceId":"7e8ce557c902d3f3"},{"name":"optimize-chunk-modules","duration":29,"timestamp":129682809191,"id":38,"parentId":32,"tags":{},"startTime":1757909178269,"traceId":"7e8ce557c902d3f3"},{"name":"optimize","duration":3499,"timestamp":129682805954,"id":34,"parentId":32,"tags":{},"startTime":1757909178266,"traceId":"7e8ce557c902d3f3"},{"name":"module-hash","duration":36,"timestamp":129682810060,"id":39,"parentId":32,"tags":{},"startTime":1757909178270,"traceId":"7e8ce557c902d3f3"},{"name":"code-generation","duration":33,"timestamp":129682810140,"id":40,"parentId":32,"tags":{},"startTime":1757909178270,"traceId":"7e8ce557c902d3f3"},{"name":"hash","duration":255,"timestamp":129682810319,"id":41,"parentId":32,"tags":{},"startTime":1757909178270,"traceId":"7e8ce557c902d3f3"},{"name":"code-generation-jobs","duration":184,"timestamp":129682810570,"id":42,"parentId":32,"tags":{},"startTime":1757909178270,"traceId":"7e8ce557c902d3f3"},{"name":"module-assets","duration":54,"timestamp":129682810718,"id":43,"parentId":32,"tags":{},"startTime":1757909178270,"traceId":"7e8ce557c902d3f3"},{"name":"create-chunk-assets","duration":53,"timestamp":129682810794,"id":44,"parentId":32,"tags":{},"startTime":1757909178271,"traceId":"7e8ce557c902d3f3"},{"name":"seal","duration":7200,"timestamp":129682805439,"id":32,"parentId":30,"tags":{},"startTime":1757909178265,"traceId":"7e8ce557c902d3f3"},{"name":"webpack-compilation","duration":14269,"timestamp":129682798567,"id":30,"parentId":3,"tags":{"name":"server"},"startTime":1757909178258,"traceId":"7e8ce557c902d3f3"},{"name":"emit","duration":5058,"timestamp":129682813255,"id":45,"parentId":3,"tags":{},"startTime":1757909178273,"traceId":"7e8ce557c902d3f3"},{"name":"make","duration":704,"timestamp":129682834758,"id":47,"parentId":46,"tags":{},"startTime":1757909178294,"traceId":"7e8ce557c902d3f3"},{"name":"chunk-graph","duration":140,"timestamp":129682844947,"id":49,"parentId":48,"tags":{},"startTime":1757909178305,"traceId":"7e8ce557c902d3f3"},{"name":"optimize-modules","duration":21,"timestamp":129682845210,"id":51,"parentId":48,"tags":{},"startTime":1757909178305,"traceId":"7e8ce557c902d3f3"},{"name":"optimize-chunks","duration":120,"timestamp":129682845663,"id":52,"parentId":48,"tags":{},"startTime":1757909178305,"traceId":"7e8ce557c902d3f3"},{"name":"optimize-tree","duration":52,"timestamp":129682845860,"id":53,"parentId":48,"tags":{},"startTime":1757909178306,"traceId":"7e8ce557c902d3f3"},{"name":"optimize-chunk-modules","duration":521,"timestamp":129682846017,"id":54,"parentId":48,"tags":{},"startTime":1757909178306,"traceId":"7e8ce557c902d3f3"},{"name":"optimize","duration":1540,"timestamp":129682845171,"id":50,"parentId":48,"tags":{},"startTime":1757909178305,"traceId":"7e8ce557c902d3f3"},{"name":"module-hash","duration":41,"timestamp":129682847365,"id":55,"parentId":48,"tags":{},"startTime":1757909178307,"traceId":"7e8ce557c902d3f3"},{"name":"code-generation","duration":31,"timestamp":129682847452,"id":56,"parentId":48,"tags":{},"startTime":1757909178307,"traceId":"7e8ce557c902d3f3"},{"name":"hash","duration":340,"timestamp":129682847625,"id":57,"parentId":48,"tags":{},"startTime":1757909178307,"traceId":"7e8ce557c902d3f3"},{"name":"code-generation-jobs","duration":94,"timestamp":129682847961,"id":58,"parentId":48,"tags":{},"startTime":1757909178308,"traceId":"7e8ce557c902d3f3"},{"name":"module-assets","duration":40,"timestamp":129682848026,"id":59,"parentId":48,"tags":{},"startTime":1757909178308,"traceId":"7e8ce557c902d3f3"},{"name":"create-chunk-assets","duration":61,"timestamp":129682848082,"id":60,"parentId":48,"tags":{},"startTime":1757909178308,"traceId":"7e8ce557c902d3f3"},{"name":"seal","duration":5327,"timestamp":129682844649,"id":48,"parentId":46,"tags":{},"startTime":1757909178304,"traceId":"7e8ce557c902d3f3"},{"name":"webpack-compilation","duration":20444,"timestamp":129682829663,"id":46,"parentId":3,"tags":{"name":"edge-server"},"startTime":1757909178289,"traceId":"7e8ce557c902d3f3"},{"name":"emit","duration":10468,"timestamp":129682850253,"id":61,"parentId":3,"tags":{},"startTime":1757909178310,"traceId":"7e8ce557c902d3f3"}] -[{"name":"make","duration":942,"timestamp":129683134463,"id":66,"parentId":65,"tags":{},"startTime":1757909178594,"traceId":"7e8ce557c902d3f3"},{"name":"chunk-graph","duration":131,"timestamp":129683135934,"id":68,"parentId":67,"tags":{},"startTime":1757909178596,"traceId":"7e8ce557c902d3f3"},{"name":"optimize-modules","duration":22,"timestamp":129683136147,"id":70,"parentId":67,"tags":{},"startTime":1757909178596,"traceId":"7e8ce557c902d3f3"},{"name":"optimize-chunks","duration":43,"timestamp":129683136226,"id":71,"parentId":67,"tags":{},"startTime":1757909178596,"traceId":"7e8ce557c902d3f3"},{"name":"optimize-tree","duration":36,"timestamp":129683136331,"id":72,"parentId":67,"tags":{},"startTime":1757909178596,"traceId":"7e8ce557c902d3f3"},{"name":"optimize-chunk-modules","duration":1305,"timestamp":129683136452,"id":73,"parentId":67,"tags":{},"startTime":1757909178596,"traceId":"7e8ce557c902d3f3"},{"name":"optimize","duration":1891,"timestamp":129683136116,"id":69,"parentId":67,"tags":{},"startTime":1757909178596,"traceId":"7e8ce557c902d3f3"},{"name":"module-hash","duration":60,"timestamp":129683140202,"id":74,"parentId":67,"tags":{},"startTime":1757909178600,"traceId":"7e8ce557c902d3f3"},{"name":"code-generation","duration":46,"timestamp":129683140343,"id":75,"parentId":67,"tags":{},"startTime":1757909178600,"traceId":"7e8ce557c902d3f3"},{"name":"hash","duration":330,"timestamp":129683140619,"id":76,"parentId":67,"tags":{},"startTime":1757909178600,"traceId":"7e8ce557c902d3f3"},{"name":"code-generation-jobs","duration":149,"timestamp":129683140944,"id":77,"parentId":67,"tags":{},"startTime":1757909178601,"traceId":"7e8ce557c902d3f3"},{"name":"module-assets","duration":67,"timestamp":129683141040,"id":78,"parentId":67,"tags":{},"startTime":1757909178601,"traceId":"7e8ce557c902d3f3"},{"name":"create-chunk-assets","duration":83,"timestamp":129683141139,"id":79,"parentId":67,"tags":{},"startTime":1757909178601,"traceId":"7e8ce557c902d3f3"},{"name":"NextJsBuildManifest-generateClientManifest","duration":811,"timestamp":129683142660,"id":81,"parentId":65,"tags":{},"startTime":1757909178602,"traceId":"7e8ce557c902d3f3"},{"name":"NextJsBuildManifest-createassets","duration":1050,"timestamp":129683142461,"id":80,"parentId":65,"tags":{},"startTime":1757909178602,"traceId":"7e8ce557c902d3f3"},{"name":"seal","duration":8612,"timestamp":129683135749,"id":67,"parentId":65,"tags":{},"startTime":1757909178595,"traceId":"7e8ce557c902d3f3"},{"name":"webpack-compilation","duration":12400,"timestamp":129683132047,"id":65,"parentId":62,"tags":{"name":"client"},"startTime":1757909178592,"traceId":"7e8ce557c902d3f3"},{"name":"setup-dev-bundler","duration":2488403,"timestamp":129680828945,"id":2,"parentId":1,"tags":{},"startTime":1757909176289,"traceId":"7e8ce557c902d3f3"},{"name":"emit","duration":503490,"timestamp":129683144531,"id":82,"parentId":62,"tags":{},"startTime":1757909178604,"traceId":"7e8ce557c902d3f3"},{"name":"webpack-invalidated-client","duration":531097,"timestamp":129683118643,"id":62,"parentId":3,"tags":{"trigger":"manual"},"startTime":1757909178578,"traceId":"7e8ce557c902d3f3"},{"name":"make","duration":707,"timestamp":129683655122,"id":84,"parentId":83,"tags":{},"startTime":1757909179115,"traceId":"7e8ce557c902d3f3"},{"name":"chunk-graph","duration":60,"timestamp":129683656112,"id":86,"parentId":85,"tags":{},"startTime":1757909179116,"traceId":"7e8ce557c902d3f3"},{"name":"optimize-modules","duration":12,"timestamp":129683656217,"id":88,"parentId":85,"tags":{},"startTime":1757909179116,"traceId":"7e8ce557c902d3f3"},{"name":"optimize-chunks","duration":88,"timestamp":129683656401,"id":89,"parentId":85,"tags":{},"startTime":1757909179116,"traceId":"7e8ce557c902d3f3"},{"name":"optimize-tree","duration":16,"timestamp":129683656523,"id":90,"parentId":85,"tags":{},"startTime":1757909179116,"traceId":"7e8ce557c902d3f3"},{"name":"optimize-chunk-modules","duration":15,"timestamp":129683656584,"id":91,"parentId":85,"tags":{},"startTime":1757909179116,"traceId":"7e8ce557c902d3f3"},{"name":"optimize","duration":439,"timestamp":129683656200,"id":87,"parentId":85,"tags":{},"startTime":1757909179116,"traceId":"7e8ce557c902d3f3"},{"name":"module-hash","duration":20,"timestamp":129683657118,"id":92,"parentId":85,"tags":{},"startTime":1757909179117,"traceId":"7e8ce557c902d3f3"},{"name":"code-generation","duration":16,"timestamp":129683657164,"id":93,"parentId":85,"tags":{},"startTime":1757909179117,"traceId":"7e8ce557c902d3f3"},{"name":"hash","duration":266,"timestamp":129683657253,"id":94,"parentId":85,"tags":{},"startTime":1757909179117,"traceId":"7e8ce557c902d3f3"},{"name":"code-generation-jobs","duration":51,"timestamp":129683657518,"id":95,"parentId":85,"tags":{},"startTime":1757909179117,"traceId":"7e8ce557c902d3f3"},{"name":"module-assets","duration":22,"timestamp":129683657553,"id":96,"parentId":85,"tags":{},"startTime":1757909179117,"traceId":"7e8ce557c902d3f3"},{"name":"create-chunk-assets","duration":29,"timestamp":129683657584,"id":97,"parentId":85,"tags":{},"startTime":1757909179117,"traceId":"7e8ce557c902d3f3"},{"name":"seal","duration":2001,"timestamp":129683656036,"id":85,"parentId":83,"tags":{},"startTime":1757909179116,"traceId":"7e8ce557c902d3f3"},{"name":"webpack-compilation","duration":5242,"timestamp":129683652851,"id":83,"parentId":63,"tags":{"name":"server"},"startTime":1757909179113,"traceId":"7e8ce557c902d3f3"},{"name":"start-dev-server","duration":4563849,"timestamp":129679099509,"id":1,"tags":{"cpus":"8","platform":"win32","memory.freeMem":"2087686144","memory.totalMem":"17023848448","memory.heapSizeLimit":"8561623040","memory.rss":"169459712","memory.heapTotal":"121135104","memory.heapUsed":"91248424"},"startTime":1757909174560,"traceId":"7e8ce557c902d3f3"},{"name":"emit","duration":8147,"timestamp":129683658131,"id":98,"parentId":63,"tags":{},"startTime":1757909179118,"traceId":"7e8ce557c902d3f3"},{"name":"webpack-invalidated-server","duration":548282,"timestamp":129683118995,"id":63,"parentId":3,"tags":{"trigger":"manual"},"startTime":1757909178579,"traceId":"7e8ce557c902d3f3"},{"name":"make","duration":802,"timestamp":129683671789,"id":100,"parentId":99,"tags":{},"startTime":1757909179132,"traceId":"7e8ce557c902d3f3"},{"name":"chunk-graph","duration":109,"timestamp":129683673469,"id":102,"parentId":101,"tags":{},"startTime":1757909179133,"traceId":"7e8ce557c902d3f3"},{"name":"optimize-modules","duration":35,"timestamp":129683673681,"id":104,"parentId":101,"tags":{},"startTime":1757909179133,"traceId":"7e8ce557c902d3f3"},{"name":"optimize-chunks","duration":51,"timestamp":129683673779,"id":105,"parentId":101,"tags":{},"startTime":1757909179134,"traceId":"7e8ce557c902d3f3"},{"name":"optimize-tree","duration":36,"timestamp":129683673889,"id":106,"parentId":101,"tags":{},"startTime":1757909179134,"traceId":"7e8ce557c902d3f3"},{"name":"optimize-chunk-modules","duration":40,"timestamp":129683673994,"id":107,"parentId":101,"tags":{},"startTime":1757909179134,"traceId":"7e8ce557c902d3f3"},{"name":"optimize","duration":480,"timestamp":129683673637,"id":103,"parentId":101,"tags":{},"startTime":1757909179133,"traceId":"7e8ce557c902d3f3"},{"name":"module-hash","duration":45,"timestamp":129683674715,"id":108,"parentId":101,"tags":{},"startTime":1757909179134,"traceId":"7e8ce557c902d3f3"},{"name":"code-generation","duration":41,"timestamp":129683674813,"id":109,"parentId":101,"tags":{},"startTime":1757909179135,"traceId":"7e8ce557c902d3f3"},{"name":"hash","duration":144,"timestamp":129683675032,"id":110,"parentId":101,"tags":{},"startTime":1757909179135,"traceId":"7e8ce557c902d3f3"},{"name":"code-generation-jobs","duration":544,"timestamp":129683675175,"id":111,"parentId":101,"tags":{},"startTime":1757909179135,"traceId":"7e8ce557c902d3f3"},{"name":"module-assets","duration":56,"timestamp":129683675677,"id":112,"parentId":101,"tags":{},"startTime":1757909179135,"traceId":"7e8ce557c902d3f3"},{"name":"create-chunk-assets","duration":89,"timestamp":129683675755,"id":113,"parentId":101,"tags":{},"startTime":1757909179135,"traceId":"7e8ce557c902d3f3"},{"name":"seal","duration":3759,"timestamp":129683673303,"id":101,"parentId":99,"tags":{},"startTime":1757909179133,"traceId":"7e8ce557c902d3f3"},{"name":"webpack-compilation","duration":7538,"timestamp":129683669602,"id":99,"parentId":64,"tags":{"name":"edge-server"},"startTime":1757909179129,"traceId":"7e8ce557c902d3f3"},{"name":"emit","duration":5441,"timestamp":129683677215,"id":114,"parentId":64,"tags":{},"startTime":1757909179137,"traceId":"7e8ce557c902d3f3"},{"name":"webpack-invalidated-edge-server","duration":565131,"timestamp":129683119076,"id":64,"parentId":3,"tags":{"trigger":"manual"},"startTime":1757909178579,"traceId":"7e8ce557c902d3f3"}] -[{"name":"ensure-page","duration":11900,"timestamp":129749839685,"id":115,"parentId":3,"tags":{"inputPage":"/"},"startTime":1757909245299,"traceId":"7e8ce557c902d3f3"},{"name":"next-client-pages-loader","duration":2032,"timestamp":129750302489,"id":130,"parentId":129,"tags":{"absolutePagePath":"private-next-pages/_app"},"startTime":1757909245762,"traceId":"7e8ce557c902d3f3"},{"name":"build-module","duration":86447,"timestamp":129750271715,"id":129,"parentId":125,"tags":{"name":"D:\\dongyun-projects\\two\\node_modules\\next\\dist\\build\\webpack\\loaders\\next-client-pages-loader.js?absolutePagePath=private-next-pages%2F_app&page=%2F_app!","layer":"pages-dir-browser"},"startTime":1757909245731,"traceId":"7e8ce557c902d3f3"},{"name":"next-client-pages-loader","duration":282,"timestamp":129750359106,"id":132,"parentId":131,"tags":{"absolutePagePath":"private-next-pages/_error"},"startTime":1757909245819,"traceId":"7e8ce557c902d3f3"},{"name":"build-module","duration":9692,"timestamp":129750358721,"id":131,"parentId":127,"tags":{"name":"D:\\dongyun-projects\\two\\node_modules\\next\\dist\\build\\webpack\\loaders\\next-client-pages-loader.js?absolutePagePath=private-next-pages%2F_error&page=%2F_error!","layer":"pages-dir-browser"},"startTime":1757909245818,"traceId":"7e8ce557c902d3f3"},{"name":"next-client-pages-loader","duration":142,"timestamp":129750368835,"id":134,"parentId":133,"tags":{"absolutePagePath":"D:\\dongyun-projects\\two\\pages\\index.tsx"},"startTime":1757909245828,"traceId":"7e8ce557c902d3f3"},{"name":"build-module","duration":7254,"timestamp":129750368547,"id":133,"parentId":128,"tags":{"name":"D:\\dongyun-projects\\two\\node_modules\\next\\dist\\build\\webpack\\loaders\\next-client-pages-loader.js?absolutePagePath=D%3A%5Cdongyun-projects%5Ctwo%5Cpages%5Cindex.tsx&page=%2F!","layer":"pages-dir-browser"},"startTime":1757909245828,"traceId":"7e8ce557c902d3f3"},{"name":"build-module-js","duration":110892,"timestamp":129750376162,"id":135,"parentId":123,"tags":{"name":"D:\\dongyun-projects\\two\\node_modules\\next\\dist\\compiled\\@next\\react-refresh-utils\\dist\\runtime.js","layer":"pages-dir-browser"},"startTime":1757909245836,"traceId":"7e8ce557c902d3f3"},{"name":"build-module-js","duration":109417,"timestamp":129750412401,"id":136,"parentId":124,"tags":{"name":"D:\\dongyun-projects\\two\\node_modules\\next\\dist\\client\\next-dev.js","layer":"pages-dir-browser"},"startTime":1757909245872,"traceId":"7e8ce557c902d3f3"},{"name":"build-module-js","duration":102572,"timestamp":129750450366,"id":137,"parentId":126,"tags":{"name":"D:\\dongyun-projects\\two\\node_modules\\next\\dist\\client\\router.js","layer":"pages-dir-browser"},"startTime":1757909245910,"traceId":"7e8ce557c902d3f3"},{"name":"build-module-tsx","duration":21793,"timestamp":129750571160,"id":138,"parentId":129,"tags":{"name":"D:\\dongyun-projects\\two\\pages\\_app.tsx","layer":"pages-dir-browser"},"startTime":1757909246031,"traceId":"7e8ce557c902d3f3"},{"name":"build-module-tsx","duration":31778,"timestamp":129750572282,"id":139,"parentId":133,"tags":{"name":"D:\\dongyun-projects\\two\\pages\\index.tsx","layer":"pages-dir-browser"},"startTime":1757909246032,"traceId":"7e8ce557c902d3f3"},{"name":"build-module-js","duration":46764,"timestamp":129750626843,"id":140,"parentId":136,"tags":{"name":"D:\\dongyun-projects\\two\\node_modules\\next\\dist\\client\\webpack.js","layer":"pages-dir-browser"},"startTime":1757909246086,"traceId":"7e8ce557c902d3f3"},{"name":"build-module-js","duration":58229,"timestamp":129750635439,"id":141,"parentId":136,"tags":{"name":"D:\\dongyun-projects\\two\\node_modules\\next\\dist\\client\\page-bootstrap.js","layer":"pages-dir-browser"},"startTime":1757909246095,"traceId":"7e8ce557c902d3f3"},{"name":"build-module-js","duration":69067,"timestamp":129750636083,"id":142,"parentId":137,"tags":{"name":"D:\\dongyun-projects\\two\\node_modules\\next\\dist\\client\\with-router.js","layer":"pages-dir-browser"},"startTime":1757909246096,"traceId":"7e8ce557c902d3f3"},{"name":"build-module-js","duration":136109,"timestamp":129750636581,"id":144,"parentId":136,"tags":{"name":"D:\\dongyun-projects\\two\\node_modules\\next\\dist\\client\\index.js","layer":"pages-dir-browser"},"startTime":1757909246096,"traceId":"7e8ce557c902d3f3"},{"name":"build-module-js","duration":125340,"timestamp":129750675408,"id":145,"parentId":136,"tags":{"name":"D:\\dongyun-projects\\two\\node_modules\\next\\dist\\client\\dev\\hot-middleware-client.js","layer":"pages-dir-browser"},"startTime":1757909246135,"traceId":"7e8ce557c902d3f3"},{"name":"build-module-js","duration":44858,"timestamp":129750809895,"id":148,"parentId":137,"tags":{"name":"D:\\dongyun-projects\\two\\node_modules\\next\\dist\\shared\\lib\\router-context.shared-runtime.js","layer":"pages-dir-browser"},"startTime":1757909246269,"traceId":"7e8ce557c902d3f3"},{"name":"build-module-js","duration":224043,"timestamp":129750636391,"id":143,"parentId":135,"tags":{"name":"D:\\dongyun-projects\\two\\node_modules\\next\\dist\\compiled\\@next\\react-refresh-utils\\dist\\internal\\helpers.js","layer":"pages-dir-browser"},"startTime":1757909246096,"traceId":"7e8ce557c902d3f3"},{"name":"build-module-js","duration":153719,"timestamp":129750810352,"id":149,"parentId":137,"tags":{"name":"D:\\dongyun-projects\\two\\node_modules\\next\\dist\\shared\\lib\\router\\router.js","layer":"pages-dir-browser"},"startTime":1757909246270,"traceId":"7e8ce557c902d3f3"},{"name":"build-module-js","duration":291607,"timestamp":129750675749,"id":146,"parentId":137,"tags":{"name":"D:\\dongyun-projects\\two\\node_modules\\next\\dist\\lib\\is-error.js","layer":"pages-dir-browser"},"startTime":1757909246135,"traceId":"7e8ce557c902d3f3"},{"name":"build-module-js","duration":201694,"timestamp":129750809561,"id":147,"parentId":135,"tags":{"name":"D:\\dongyun-projects\\two\\node_modules\\next\\dist\\compiled\\react-refresh\\runtime.js","layer":"pages-dir-browser"},"startTime":1757909246269,"traceId":"7e8ce557c902d3f3"},{"name":"build-module-js","duration":40986,"timestamp":129750974340,"id":154,"parentId":144,"tags":{"name":"D:\\dongyun-projects\\two\\node_modules\\next\\dist\\client\\route-announcer.js","layer":"pages-dir-browser"},"startTime":1757909246434,"traceId":"7e8ce557c902d3f3"},{"name":"build-module-js","duration":43290,"timestamp":129750974523,"id":155,"parentId":144,"tags":{"name":"D:\\dongyun-projects\\two\\node_modules\\next\\dist\\client\\remove-base-path.js","layer":"pages-dir-browser"},"startTime":1757909246434,"traceId":"7e8ce557c902d3f3"},{"name":"build-module-js","duration":49136,"timestamp":129750973892,"id":152,"parentId":144,"tags":{"name":"D:\\dongyun-projects\\two\\node_modules\\next\\dist\\client\\head-manager.js","layer":"pages-dir-browser"},"startTime":1757909246433,"traceId":"7e8ce557c902d3f3"},{"name":"build-module-js","duration":52676,"timestamp":129750974627,"id":156,"parentId":144,"tags":{"name":"D:\\dongyun-projects\\two\\node_modules\\next\\dist\\client\\has-base-path.js","layer":"pages-dir-browser"},"startTime":1757909246434,"traceId":"7e8ce557c902d3f3"},{"name":"build-module-js","duration":55347,"timestamp":129750975000,"id":159,"parentId":144,"tags":{"name":"D:\\dongyun-projects\\two\\node_modules\\next\\dist\\shared\\lib\\head-manager-context.shared-runtime.js","layer":"pages-dir-browser"},"startTime":1757909246435,"traceId":"7e8ce557c902d3f3"},{"name":"build-module-js","duration":64731,"timestamp":129750974148,"id":153,"parentId":144,"tags":{"name":"D:\\dongyun-projects\\two\\node_modules\\next\\dist\\client\\page-loader.js","layer":"pages-dir-browser"},"startTime":1757909246434,"traceId":"7e8ce557c902d3f3"},{"name":"build-module-js","duration":67157,"timestamp":129750974905,"id":158,"parentId":141,"tags":{"name":"D:\\dongyun-projects\\two\\node_modules\\next\\dist\\client\\dev\\on-demand-entries-client.js","layer":"pages-dir-browser"},"startTime":1757909246434,"traceId":"7e8ce557c902d3f3"},{"name":"build-module-js","duration":70052,"timestamp":129750975179,"id":161,"parentId":144,"tags":{"name":"D:\\dongyun-projects\\two\\node_modules\\next\\dist\\shared\\lib\\runtime-config.external.js","layer":"pages-dir-browser"},"startTime":1757909246435,"traceId":"7e8ce557c902d3f3"},{"name":"build-module-js","duration":74040,"timestamp":129750975090,"id":160,"parentId":144,"tags":{"name":"D:\\dongyun-projects\\two\\node_modules\\next\\dist\\shared\\lib\\mitt.js","layer":"pages-dir-browser"},"startTime":1757909246435,"traceId":"7e8ce557c902d3f3"},{"name":"build-module-js","duration":75230,"timestamp":129750975442,"id":164,"parentId":141,"tags":{"name":"D:\\dongyun-projects\\two\\node_modules\\next\\dist\\client\\dev\\runtime-error-handler.js","layer":"pages-dir-browser"},"startTime":1757909246435,"traceId":"7e8ce557c902d3f3"},{"name":"build-module-js","duration":77085,"timestamp":129750975352,"id":163,"parentId":144,"tags":{"name":"D:\\dongyun-projects\\two\\node_modules\\next\\dist\\shared\\lib\\image-config-context.shared-runtime.js","layer":"pages-dir-browser"},"startTime":1757909246435,"traceId":"7e8ce557c902d3f3"},{"name":"build-module-js","duration":88170,"timestamp":129750974787,"id":157,"parentId":144,"tags":{"name":"D:\\dongyun-projects\\two\\node_modules\\next\\dist\\client\\script.js","layer":"pages-dir-browser"},"startTime":1757909246434,"traceId":"7e8ce557c902d3f3"},{"name":"build-module-js","duration":94913,"timestamp":129750975265,"id":162,"parentId":144,"tags":{"name":"D:\\dongyun-projects\\two\\node_modules\\next\\dist\\shared\\lib\\utils.js","layer":"pages-dir-browser"},"startTime":1757909246435,"traceId":"7e8ce557c902d3f3"},{"name":"build-module-js","duration":100358,"timestamp":129750975529,"id":165,"parentId":144,"tags":{"name":"D:\\dongyun-projects\\two\\node_modules\\next\\dist\\shared\\lib\\app-router-context.shared-runtime.js","layer":"pages-dir-browser"},"startTime":1757909246435,"traceId":"7e8ce557c902d3f3"},{"name":"build-module-js","duration":103589,"timestamp":129750975615,"id":166,"parentId":141,"tags":{"name":"D:\\dongyun-projects\\two\\node_modules\\next\\dist\\client\\dev\\fouc.js","layer":"pages-dir-browser"},"startTime":1757909246435,"traceId":"7e8ce557c902d3f3"},{"name":"build-module-js","duration":105815,"timestamp":129750975703,"id":167,"parentId":144,"tags":{"name":"D:\\dongyun-projects\\two\\node_modules\\next\\dist\\shared\\lib\\hooks-client-context.shared-runtime.js","layer":"pages-dir-browser"},"startTime":1757909246435,"traceId":"7e8ce557c902d3f3"},{"name":"build-module-js","duration":36805,"timestamp":129751086691,"id":168,"parentId":144,"tags":{"name":"D:\\dongyun-projects\\two\\node_modules\\next\\dist\\shared\\lib\\router\\adapters.js","layer":"pages-dir-browser"},"startTime":1757909246546,"traceId":"7e8ce557c902d3f3"},{"name":"build-module-tsx","duration":40920,"timestamp":129751103263,"id":172,"parentId":139,"tags":{"name":"D:\\dongyun-projects\\two\\components\\Testimonials.tsx","layer":"pages-dir-browser"},"startTime":1757909246563,"traceId":"7e8ce557c902d3f3"},{"name":"build-module-tsx","duration":44561,"timestamp":129751102776,"id":171,"parentId":139,"tags":{"name":"D:\\dongyun-projects\\two\\components\\CoreAdvantages.tsx","layer":"pages-dir-browser"},"startTime":1757909246562,"traceId":"7e8ce557c902d3f3"},{"name":"build-module-tsx","duration":52608,"timestamp":129751101620,"id":169,"parentId":139,"tags":{"name":"D:\\dongyun-projects\\two\\components\\Features.tsx","layer":"pages-dir-browser"},"startTime":1757909246561,"traceId":"7e8ce557c902d3f3"},{"name":"build-module-tsx","duration":52189,"timestamp":129751104159,"id":174,"parentId":139,"tags":{"name":"D:\\dongyun-projects\\two\\components\\Process.tsx","layer":"pages-dir-browser"},"startTime":1757909246564,"traceId":"7e8ce557c902d3f3"},{"name":"build-module-tsx","duration":60825,"timestamp":129751102364,"id":170,"parentId":139,"tags":{"name":"D:\\dongyun-projects\\two\\components\\Cta.tsx","layer":"pages-dir-browser"},"startTime":1757909246562,"traceId":"7e8ce557c902d3f3"},{"name":"build-module-tsx","duration":63256,"timestamp":129751104537,"id":175,"parentId":139,"tags":{"name":"D:\\dongyun-projects\\two\\components\\Navbar.tsx","layer":"pages-dir-browser"},"startTime":1757909246564,"traceId":"7e8ce557c902d3f3"},{"name":"build-module-js","duration":67470,"timestamp":129751105216,"id":176,"parentId":141,"tags":{"name":"D:\\dongyun-projects\\two\\node_modules\\next\\dist\\shared\\lib\\router\\utils\\querystring.js","layer":"pages-dir-browser"},"startTime":1757909246565,"traceId":"7e8ce557c902d3f3"},{"name":"build-module-js","duration":69416,"timestamp":129751105473,"id":178,"parentId":144,"tags":{"name":"D:\\dongyun-projects\\two\\node_modules\\next\\dist\\shared\\lib\\router\\utils\\is-dynamic.js","layer":"pages-dir-browser"},"startTime":1757909246565,"traceId":"7e8ce557c902d3f3"},{"name":"build-module-js","duration":71503,"timestamp":129751105368,"id":177,"parentId":144,"tags":{"name":"D:\\dongyun-projects\\two\\node_modules\\next\\dist\\shared\\lib\\router\\utils\\disable-smooth-scroll.js","layer":"pages-dir-browser"},"startTime":1757909246565,"traceId":"7e8ce557c902d3f3"},{"name":"build-module-tsx","duration":75420,"timestamp":129751103717,"id":173,"parentId":139,"tags":{"name":"D:\\dongyun-projects\\two\\components\\Hero.tsx","layer":"pages-dir-browser"},"startTime":1757909246563,"traceId":"7e8ce557c902d3f3"},{"name":"build-module-js","duration":77834,"timestamp":129751105672,"id":180,"parentId":144,"tags":{"name":"D:\\dongyun-projects\\two\\node_modules\\next\\dist\\client\\react-client-callbacks\\on-recoverable-error.js","layer":"pages-dir-browser"},"startTime":1757909246565,"traceId":"7e8ce557c902d3f3"},{"name":"build-module-js","duration":80757,"timestamp":129751105865,"id":182,"parentId":144,"tags":{"name":"D:\\dongyun-projects\\two\\node_modules\\next\\dist\\client\\tracing\\report-to-socket.js","layer":"pages-dir-browser"},"startTime":1757909246565,"traceId":"7e8ce557c902d3f3"},{"name":"build-module-js","duration":84766,"timestamp":129751105774,"id":181,"parentId":144,"tags":{"name":"D:\\dongyun-projects\\two\\node_modules\\next\\dist\\client\\tracing\\tracer.js","layer":"pages-dir-browser"},"startTime":1757909246565,"traceId":"7e8ce557c902d3f3"},{"name":"build-module-js","duration":86743,"timestamp":129751105955,"id":183,"parentId":144,"tags":{"name":"D:\\dongyun-projects\\two\\node_modules\\next\\dist\\client\\components\\is-next-router-error.js","layer":"pages-dir-browser"},"startTime":1757909246565,"traceId":"7e8ce557c902d3f3"},{"name":"build-module-js","duration":224729,"timestamp":129750973513,"id":150,"parentId":140,"tags":{"name":"D:\\dongyun-projects\\two\\node_modules\\next\\dist\\build\\deployment-id.js","layer":"pages-dir-browser"},"startTime":1757909246433,"traceId":"7e8ce557c902d3f3"},{"name":"build-module-js","duration":226193,"timestamp":129750973749,"id":151,"parentId":141,"tags":{"name":"D:\\dongyun-projects\\two\\node_modules\\next\\dist\\lib\\require-instrumentation-client.js","layer":"pages-dir-browser"},"startTime":1757909246433,"traceId":"7e8ce557c902d3f3"},{"name":"build-module-js","duration":42526,"timestamp":129751213580,"id":184,"parentId":144,"tags":{"name":"D:\\dongyun-projects\\two\\node_modules\\next\\dist\\pages\\_app.js","layer":"pages-dir-browser"},"startTime":1757909246673,"traceId":"7e8ce557c902d3f3"},{"name":"build-module-js","duration":51505,"timestamp":129751214101,"id":186,"parentId":141,"tags":{"name":"D:\\dongyun-projects\\two\\node_modules\\next\\dist\\client\\dev\\hot-reloader\\shared.js","layer":"pages-dir-browser"},"startTime":1757909246674,"traceId":"7e8ce557c902d3f3"},{"name":"build-module-js","duration":57989,"timestamp":129751214283,"id":187,"parentId":141,"tags":{"name":"D:\\dongyun-projects\\two\\node_modules\\next\\dist\\client\\dev\\hot-reloader\\pages\\websocket.js","layer":"pages-dir-browser"},"startTime":1757909246674,"traceId":"7e8ce557c902d3f3"},{"name":"build-module-js","duration":61538,"timestamp":129751215474,"id":192,"parentId":146,"tags":{"name":"D:\\dongyun-projects\\two\\node_modules\\next\\dist\\shared\\lib\\is-plain-object.js","layer":"pages-dir-browser"},"startTime":1757909246675,"traceId":"7e8ce557c902d3f3"},{"name":"build-module-js","duration":99605,"timestamp":129751214459,"id":188,"parentId":141,"tags":{"name":"D:\\dongyun-projects\\two\\node_modules\\next\\dist\\client\\dev\\hot-reloader\\pages\\hot-reloader-pages.js","layer":"pages-dir-browser"},"startTime":1757909246674,"traceId":"7e8ce557c902d3f3"},{"name":"build-module-js","duration":107239,"timestamp":129751213905,"id":185,"parentId":144,"tags":{"name":"D:\\dongyun-projects\\two\\node_modules\\next\\dist\\pages\\_error.js","layer":"pages-dir-browser"},"startTime":1757909246673,"traceId":"7e8ce557c902d3f3"},{"name":"build-module-js","duration":107627,"timestamp":129751216698,"id":194,"parentId":149,"tags":{"name":"D:\\dongyun-projects\\two\\node_modules\\next\\dist\\client\\detect-domain-locale.js","layer":"pages-dir-browser"},"startTime":1757909246676,"traceId":"7e8ce557c902d3f3"},{"name":"build-module-js","duration":109948,"timestamp":129751217073,"id":196,"parentId":149,"tags":{"name":"D:\\dongyun-projects\\two\\node_modules\\next\\dist\\client\\remove-locale.js","layer":"pages-dir-browser"},"startTime":1757909246677,"traceId":"7e8ce557c902d3f3"},{"name":"build-module-js","duration":112508,"timestamp":129751216908,"id":195,"parentId":149,"tags":{"name":"D:\\dongyun-projects\\two\\node_modules\\next\\dist\\client\\add-locale.js","layer":"pages-dir-browser"},"startTime":1757909246676,"traceId":"7e8ce557c902d3f3"},{"name":"build-module-js","duration":228951,"timestamp":129751105568,"id":179,"parentId":144,"tags":{"name":"D:\\dongyun-projects\\two\\node_modules\\next\\dist\\build\\polyfills\\polyfill-module.js","layer":"pages-dir-browser"},"startTime":1757909246565,"traceId":"7e8ce557c902d3f3"},{"name":"build-module-js","duration":123095,"timestamp":129751217411,"id":198,"parentId":149,"tags":{"name":"D:\\dongyun-projects\\two\\node_modules\\next\\dist\\client\\resolve-href.js","layer":"pages-dir-browser"},"startTime":1757909246677,"traceId":"7e8ce557c902d3f3"},{"name":"build-module-js","duration":142431,"timestamp":129751216240,"id":193,"parentId":149,"tags":{"name":"D:\\dongyun-projects\\two\\node_modules\\next\\dist\\client\\route-loader.js","layer":"pages-dir-browser"},"startTime":1757909246676,"traceId":"7e8ce557c902d3f3"},{"name":"build-module-js","duration":145850,"timestamp":129751217254,"id":197,"parentId":149,"tags":{"name":"D:\\dongyun-projects\\two\\node_modules\\next\\dist\\client\\add-base-path.js","layer":"pages-dir-browser"},"startTime":1757909246677,"traceId":"7e8ce557c902d3f3"},{"name":"build-module-js","duration":87632,"timestamp":129751278834,"id":202,"parentId":149,"tags":{"name":"D:\\dongyun-projects\\two\\node_modules\\next\\dist\\shared\\lib\\router\\utils\\remove-trailing-slash.js","layer":"pages-dir-browser"},"startTime":1757909246738,"traceId":"7e8ce557c902d3f3"},{"name":"build-module-js","duration":91794,"timestamp":129751278950,"id":203,"parentId":149,"tags":{"name":"D:\\dongyun-projects\\two\\node_modules\\next\\dist\\shared\\lib\\router\\utils\\parse-relative-url.js","layer":"pages-dir-browser"},"startTime":1757909246738,"traceId":"7e8ce557c902d3f3"},{"name":"build-module-js","duration":95088,"timestamp":129751279178,"id":204,"parentId":149,"tags":{"name":"D:\\dongyun-projects\\two\\node_modules\\next\\dist\\shared\\lib\\router\\utils\\route-matcher.js","layer":"pages-dir-browser"},"startTime":1757909246739,"traceId":"7e8ce557c902d3f3"},{"name":"build-module-js","duration":105883,"timestamp":129751278663,"id":201,"parentId":149,"tags":{"name":"D:\\dongyun-projects\\two\\node_modules\\next\\dist\\shared\\lib\\bloom-filter.js","layer":"pages-dir-browser"},"startTime":1757909246738,"traceId":"7e8ce557c902d3f3"},{"name":"build-module-js","duration":112337,"timestamp":129751279279,"id":205,"parentId":149,"tags":{"name":"D:\\dongyun-projects\\two\\node_modules\\next\\dist\\shared\\lib\\router\\utils\\format-url.js","layer":"pages-dir-browser"},"startTime":1757909246739,"traceId":"7e8ce557c902d3f3"},{"name":"build-module-js","duration":228787,"timestamp":129751214844,"id":190,"parentId":141,"tags":{"name":"D:\\dongyun-projects\\two\\node_modules\\next\\dist\\server\\dev\\hot-reloader-types.js","layer":"pages-dir-browser"},"startTime":1757909246674,"traceId":"7e8ce557c902d3f3"},{"name":"build-module-js","duration":235010,"timestamp":129751215276,"id":191,"parentId":144,"tags":{"name":"D:\\dongyun-projects\\two\\node_modules\\next\\dist\\server\\dev\\node-stack-frames.js","layer":"pages-dir-browser"},"startTime":1757909246675,"traceId":"7e8ce557c902d3f3"},{"name":"build-module-js","duration":236541,"timestamp":129751214672,"id":189,"parentId":138,"tags":{"name":"D:\\dongyun-projects\\two\\node_modules\\react\\jsx-dev-runtime.js","layer":"pages-dir-browser"},"startTime":1757909246674,"traceId":"7e8ce557c902d3f3"},{"name":"build-module-js","duration":199531,"timestamp":129751278166,"id":199,"parentId":149,"tags":{"name":"D:\\dongyun-projects\\two\\node_modules\\next\\dist\\lib\\is-api-route.js","layer":"pages-dir-browser"},"startTime":1757909246738,"traceId":"7e8ce557c902d3f3"},{"name":"build-module-js","duration":204902,"timestamp":129751278517,"id":200,"parentId":149,"tags":{"name":"D:\\dongyun-projects\\two\\node_modules\\next\\dist\\lib\\constants.js","layer":"pages-dir-browser"},"startTime":1757909246738,"traceId":"7e8ce557c902d3f3"},{"name":"build-module-js","duration":29310,"timestamp":129751457995,"id":207,"parentId":149,"tags":{"name":"D:\\dongyun-projects\\two\\node_modules\\next\\dist\\shared\\lib\\router\\utils\\parse-path.js","layer":"pages-dir-browser"},"startTime":1757909246918,"traceId":"7e8ce557c902d3f3"},{"name":"build-module-js","duration":30991,"timestamp":129751458230,"id":208,"parentId":149,"tags":{"name":"D:\\dongyun-projects\\two\\node_modules\\next\\dist\\shared\\lib\\router\\utils\\format-next-pathname-info.js","layer":"pages-dir-browser"},"startTime":1757909246918,"traceId":"7e8ce557c902d3f3"},{"name":"build-module-js","duration":33585,"timestamp":129751458521,"id":209,"parentId":149,"tags":{"name":"D:\\dongyun-projects\\two\\node_modules\\next\\dist\\shared\\lib\\router\\utils\\get-next-pathname-info.js","layer":"pages-dir-browser"},"startTime":1757909246918,"traceId":"7e8ce557c902d3f3"},{"name":"build-module-js","duration":39773,"timestamp":129751458706,"id":210,"parentId":149,"tags":{"name":"D:\\dongyun-projects\\two\\node_modules\\next\\dist\\shared\\lib\\router\\utils\\compare-states.js","layer":"pages-dir-browser"},"startTime":1757909246918,"traceId":"7e8ce557c902d3f3"},{"name":"build-module-js","duration":44250,"timestamp":129751458851,"id":211,"parentId":149,"tags":{"name":"D:\\dongyun-projects\\two\\node_modules\\next\\dist\\shared\\lib\\router\\utils\\is-local-url.js","layer":"pages-dir-browser"},"startTime":1757909246918,"traceId":"7e8ce557c902d3f3"},{"name":"build-module-js","duration":61913,"timestamp":129751457664,"id":206,"parentId":149,"tags":{"name":"D:\\dongyun-projects\\two\\node_modules\\next\\dist\\shared\\lib\\router\\utils\\route-regex.js","layer":"pages-dir-browser"},"startTime":1757909246917,"traceId":"7e8ce557c902d3f3"},{"name":"build-module-js","duration":62580,"timestamp":129751458978,"id":212,"parentId":149,"tags":{"name":"D:\\dongyun-projects\\two\\node_modules\\next\\dist\\shared\\lib\\router\\utils\\omit.js","layer":"pages-dir-browser"},"startTime":1757909246918,"traceId":"7e8ce557c902d3f3"},{"name":"build-module-js","duration":66329,"timestamp":129751459112,"id":213,"parentId":149,"tags":{"name":"D:\\dongyun-projects\\two\\node_modules\\next\\dist\\shared\\lib\\router\\utils\\is-bot.js","layer":"pages-dir-browser"},"startTime":1757909246919,"traceId":"7e8ce557c902d3f3"},{"name":"next-style-loader","duration":3093,"timestamp":129751538736,"id":216,"parentId":215,"tags":{},"startTime":1757909246998,"traceId":"7e8ce557c902d3f3"},{"name":"build-module-css","duration":11528,"timestamp":129751534515,"id":215,"parentId":138,"tags":{"name":"D:\\dongyun-projects\\two\\styles\\globals.css","layer":"pages-dir-browser"},"startTime":1757909246994,"traceId":"7e8ce557c902d3f3"},{"name":"build-module-js","duration":34771,"timestamp":129751546623,"id":219,"parentId":153,"tags":{"name":"D:\\dongyun-projects\\two\\node_modules\\next\\dist\\shared\\lib\\constants.js","layer":"pages-dir-browser"},"startTime":1757909247006,"traceId":"7e8ce557c902d3f3"},{"name":"build-module-js","duration":40033,"timestamp":129751546108,"id":217,"parentId":152,"tags":{"name":"D:\\dongyun-projects\\two\\node_modules\\next\\dist\\client\\set-attributes-from-props.js","layer":"pages-dir-browser"},"startTime":1757909247006,"traceId":"7e8ce557c902d3f3"},{"name":"build-module-js","duration":42729,"timestamp":129751546796,"id":220,"parentId":163,"tags":{"name":"D:\\dongyun-projects\\two\\node_modules\\next\\dist\\shared\\lib\\image-config.js","layer":"pages-dir-browser"},"startTime":1757909247006,"traceId":"7e8ce557c902d3f3"},{"name":"build-module-js","duration":45246,"timestamp":129751546951,"id":221,"parentId":156,"tags":{"name":"D:\\dongyun-projects\\two\\node_modules\\next\\dist\\shared\\lib\\router\\utils\\path-has-prefix.js","layer":"pages-dir-browser"},"startTime":1757909247006,"traceId":"7e8ce557c902d3f3"},{"name":"build-module-js","duration":65157,"timestamp":129751534236,"id":214,"parentId":149,"tags":{"name":"D:\\dongyun-projects\\two\\node_modules\\next\\dist\\shared\\lib\\router\\utils\\interpolate-as.js","layer":"pages-dir-browser"},"startTime":1757909246994,"traceId":"7e8ce557c902d3f3"},{"name":"build-module-js","duration":54955,"timestamp":129751547060,"id":222,"parentId":153,"tags":{"name":"D:\\dongyun-projects\\two\\node_modules\\next\\dist\\shared\\lib\\router\\utils\\get-asset-path-from-route.js","layer":"pages-dir-browser"},"startTime":1757909247007,"traceId":"7e8ce557c902d3f3"},{"name":"build-module-js","duration":58152,"timestamp":129751547417,"id":224,"parentId":149,"tags":{"name":"D:\\dongyun-projects\\two\\node_modules\\next\\dist\\shared\\lib\\page-path\\denormalize-page-path.js","layer":"pages-dir-browser"},"startTime":1757909247007,"traceId":"7e8ce557c902d3f3"},{"name":"build-module-js","duration":79431,"timestamp":129751547969,"id":227,"parentId":168,"tags":{"name":"D:\\dongyun-projects\\two\\node_modules\\next\\dist\\shared\\lib\\router\\utils\\as-path-to-search-params.js","layer":"pages-dir-browser"},"startTime":1757909247007,"traceId":"7e8ce557c902d3f3"},{"name":"build-module-js","duration":83234,"timestamp":129751547603,"id":225,"parentId":149,"tags":{"name":"D:\\dongyun-projects\\two\\node_modules\\next\\dist\\shared\\lib\\i18n\\normalize-locale-path.js","layer":"pages-dir-browser"},"startTime":1757909247007,"traceId":"7e8ce557c902d3f3"},{"name":"build-module-js","duration":92627,"timestamp":129751548320,"id":230,"parentId":180,"tags":{"name":"D:\\dongyun-projects\\two\\node_modules\\next\\dist\\client\\react-client-callbacks\\report-global-error.js","layer":"pages-dir-browser"},"startTime":1757909247008,"traceId":"7e8ce557c902d3f3"},{"name":"build-module-js","duration":100045,"timestamp":129751548454,"id":231,"parentId":183,"tags":{"name":"D:\\dongyun-projects\\two\\node_modules\\next\\dist\\client\\components\\redirect-error.js","layer":"pages-dir-browser"},"startTime":1757909247008,"traceId":"7e8ce557c902d3f3"},{"name":"build-module-js","duration":106853,"timestamp":129751546411,"id":218,"parentId":157,"tags":{"name":"D:\\dongyun-projects\\two\\node_modules\\next\\dist\\client\\request-idle-callback.js","layer":"pages-dir-browser"},"startTime":1757909247006,"traceId":"7e8ce557c902d3f3"},{"name":"build-module-js","duration":48045,"timestamp":129751608736,"id":235,"parentId":144,"tags":{"name":"D:\\dongyun-projects\\two\\node_modules\\next\\dist\\client\\portal\\index.js","layer":"pages-dir-browser"},"startTime":1757909247068,"traceId":"7e8ce557c902d3f3"}] -[{"name":"build-module-js","duration":52618,"timestamp":129751608363,"id":234,"parentId":187,"tags":{"name":"D:\\dongyun-projects\\two\\node_modules\\next\\dist\\client\\dev\\hot-reloader\\get-socket-url.js","layer":"pages-dir-browser"},"startTime":1757909247068,"traceId":"7e8ce557c902d3f3"},{"name":"build-module-js","duration":55123,"timestamp":129751609267,"id":237,"parentId":195,"tags":{"name":"D:\\dongyun-projects\\two\\node_modules\\next\\dist\\client\\normalize-trailing-slash.js","layer":"pages-dir-browser"},"startTime":1757909247069,"traceId":"7e8ce557c902d3f3"},{"name":"build-module-js","duration":60320,"timestamp":129751607786,"id":233,"parentId":178,"tags":{"name":"D:\\dongyun-projects\\two\\node_modules\\next\\dist\\shared\\lib\\router\\utils\\interception-routes.js","layer":"pages-dir-browser"},"startTime":1757909247067,"traceId":"7e8ce557c902d3f3"},{"name":"build-module-js","duration":60482,"timestamp":129751609827,"id":240,"parentId":188,"tags":{"name":"D:\\dongyun-projects\\two\\node_modules\\next\\dist\\client\\dev\\report-hmr-latency.js","layer":"pages-dir-browser"},"startTime":1757909247069,"traceId":"7e8ce557c902d3f3"},{"name":"build-module-js","duration":68487,"timestamp":129751609660,"id":239,"parentId":188,"tags":{"name":"D:\\dongyun-projects\\two\\node_modules\\next\\dist\\shared\\lib\\format-webpack-messages.js","layer":"pages-dir-browser"},"startTime":1757909247069,"traceId":"7e8ce557c902d3f3"},{"name":"build-module-js","duration":74402,"timestamp":129751609975,"id":241,"parentId":188,"tags":{"name":"D:\\dongyun-projects\\two\\node_modules\\next\\dist\\client\\dev\\hot-reloader\\turbopack-hot-reloader-common.js","layer":"pages-dir-browser"},"startTime":1757909247069,"traceId":"7e8ce557c902d3f3"},{"name":"build-module-js","duration":82747,"timestamp":129751609497,"id":238,"parentId":185,"tags":{"name":"D:\\dongyun-projects\\two\\node_modules\\next\\dist\\shared\\lib\\head.js","layer":"pages-dir-browser"},"startTime":1757909247069,"traceId":"7e8ce557c902d3f3"},{"name":"build-module-js","duration":21150,"timestamp":129751695285,"id":244,"parentId":177,"tags":{"name":"D:\\dongyun-projects\\two\\node_modules\\next\\dist\\shared\\lib\\utils\\warn-once.js","layer":"pages-dir-browser"},"startTime":1757909247155,"traceId":"7e8ce557c902d3f3"},{"name":"build-module-js","duration":24542,"timestamp":129751695606,"id":247,"parentId":180,"tags":{"name":"D:\\dongyun-projects\\two\\node_modules\\next\\dist\\shared\\lib\\lazy-dynamic\\bailout-to-csr.js","layer":"pages-dir-browser"},"startTime":1757909247155,"traceId":"7e8ce557c902d3f3"},{"name":"build-module-js","duration":26911,"timestamp":129751695713,"id":248,"parentId":193,"tags":{"name":"D:\\dongyun-projects\\two\\node_modules\\next\\dist\\client\\trusted-types.js","layer":"pages-dir-browser"},"startTime":1757909247155,"traceId":"7e8ce557c902d3f3"},{"name":"build-module-js","duration":31396,"timestamp":129751695097,"id":243,"parentId":183,"tags":{"name":"D:\\dongyun-projects\\two\\node_modules\\next\\dist\\client\\components\\http-access-fallback\\http-access-fallback.js","layer":"pages-dir-browser"},"startTime":1757909247155,"traceId":"7e8ce557c902d3f3"},{"name":"build-module-js","duration":32162,"timestamp":129751695813,"id":249,"parentId":193,"tags":{"name":"D:\\dongyun-projects\\two\\node_modules\\next\\dist\\shared\\lib\\encode-uri-path.js","layer":"pages-dir-browser"},"startTime":1757909247155,"traceId":"7e8ce557c902d3f3"},{"name":"build-module-js","duration":34219,"timestamp":129751695898,"id":250,"parentId":197,"tags":{"name":"D:\\dongyun-projects\\two\\node_modules\\next\\dist\\shared\\lib\\router\\utils\\add-path-prefix.js","layer":"pages-dir-browser"},"startTime":1757909247155,"traceId":"7e8ce557c902d3f3"},{"name":"build-module-js","duration":190327,"timestamp":129751548142,"id":228,"parentId":142,"tags":{"name":"D:\\dongyun-projects\\two\\node_modules\\react\\jsx-runtime.js","layer":"pages-dir-browser"},"startTime":1757909247008,"traceId":"7e8ce557c902d3f3"},{"name":"build-module-js","duration":208050,"timestamp":129751547791,"id":226,"parentId":147,"tags":{"name":"D:\\dongyun-projects\\two\\node_modules\\next\\dist\\compiled\\react-refresh\\cjs\\react-refresh-runtime.development.js","layer":"pages-dir-browser"},"startTime":1757909247007,"traceId":"7e8ce557c902d3f3"},{"name":"build-module-js","duration":209004,"timestamp":129751548243,"id":229,"parentId":144,"tags":{"name":"D:\\dongyun-projects\\two\\node_modules\\react-dom\\client.js","layer":"pages-dir-browser"},"startTime":1757909247008,"traceId":"7e8ce557c902d3f3"},{"name":"build-module-js","duration":219647,"timestamp":129751547240,"id":223,"parentId":144,"tags":{"name":"D:\\dongyun-projects\\two\\node_modules\\next\\dist\\next-devtools\\userspace\\pages\\pages-dev-overlay-setup.js","layer":"pages-dir-browser"},"startTime":1757909247007,"traceId":"7e8ce557c902d3f3"},{"name":"add-entry","duration":1861066,"timestamp":129749909929,"id":123,"parentId":122,"tags":{"request":"D:\\dongyun-projects\\two\\node_modules\\next\\dist\\compiled\\@next\\react-refresh-utils\\dist\\runtime.js"},"startTime":1757909245369,"traceId":"7e8ce557c902d3f3"},{"name":"build-module-js","duration":52147,"timestamp":129751734430,"id":253,"parentId":191,"tags":{"name":"D:\\dongyun-projects\\two\\node_modules\\next\\dist\\shared\\lib\\error-source.js","layer":"pages-dir-browser"},"startTime":1757909247194,"traceId":"7e8ce557c902d3f3"},{"name":"build-module-tsx","duration":57490,"timestamp":129751733533,"id":251,"parentId":175,"tags":{"name":"D:\\dongyun-projects\\two\\components\\Sidebar.tsx","layer":"pages-dir-browser"},"startTime":1757909247193,"traceId":"7e8ce557c902d3f3"},{"name":"build-module-js","duration":186840,"timestamp":129751607508,"id":232,"parentId":175,"tags":{"name":"D:\\dongyun-projects\\two\\node_modules\\next\\link.js","layer":"pages-dir-browser"},"startTime":1757909247067,"traceId":"7e8ce557c902d3f3"},{"name":"build-module-js","duration":144633,"timestamp":129751694922,"id":242,"parentId":175,"tags":{"name":"D:\\dongyun-projects\\two\\node_modules\\react\\index.js","layer":"pages-dir-browser"},"startTime":1757909247154,"traceId":"7e8ce557c902d3f3"},{"name":"build-module-js","duration":1024904,"timestamp":129751609071,"id":236,"parentId":141,"tags":{"name":"D:\\dongyun-projects\\two\\node_modules\\next\\dist\\compiled\\next-devtools\\index.js","layer":"pages-dir-browser"},"startTime":1757909247069,"traceId":"7e8ce557c902d3f3"},{"name":"build-module-js","duration":939610,"timestamp":129751695511,"id":246,"parentId":180,"tags":{"name":"D:\\dongyun-projects\\two\\node_modules\\next\\dist\\next-devtools\\userspace\\app\\errors\\stitched-error.js","layer":"pages-dir-browser"},"startTime":1757909247155,"traceId":"7e8ce557c902d3f3"},{"name":"build-module-js","duration":944341,"timestamp":129751695394,"id":245,"parentId":187,"tags":{"name":"D:\\dongyun-projects\\two\\node_modules\\next\\dist\\next-devtools\\userspace\\app\\forward-logs.js","layer":"pages-dir-browser"},"startTime":1757909247155,"traceId":"7e8ce557c902d3f3"},{"name":"build-module-js","duration":839035,"timestamp":129751807793,"id":255,"parentId":206,"tags":{"name":"D:\\dongyun-projects\\two\\node_modules\\next\\dist\\shared\\lib\\escape-regexp.js","layer":"pages-dir-browser"},"startTime":1757909247267,"traceId":"7e8ce557c902d3f3"},{"name":"build-module-js","duration":842447,"timestamp":129751808132,"id":256,"parentId":208,"tags":{"name":"D:\\dongyun-projects\\two\\node_modules\\next\\dist\\shared\\lib\\router\\utils\\add-path-suffix.js","layer":"pages-dir-browser"},"startTime":1757909247268,"traceId":"7e8ce557c902d3f3"},{"name":"build-module-js","duration":859005,"timestamp":129751808489,"id":258,"parentId":213,"tags":{"name":"D:\\dongyun-projects\\two\\node_modules\\next\\dist\\shared\\lib\\router\\utils\\html-bots.js","layer":"pages-dir-browser"},"startTime":1757909247268,"traceId":"7e8ce557c902d3f3"},{"name":"build-module-js","duration":860118,"timestamp":129751808310,"id":257,"parentId":209,"tags":{"name":"D:\\dongyun-projects\\two\\node_modules\\next\\dist\\shared\\lib\\router\\utils\\remove-path-prefix.js","layer":"pages-dir-browser"},"startTime":1757909247268,"traceId":"7e8ce557c902d3f3"},{"name":"build-module-js","duration":861050,"timestamp":129751808654,"id":259,"parentId":208,"tags":{"name":"D:\\dongyun-projects\\two\\node_modules\\next\\dist\\shared\\lib\\router\\utils\\add-locale.js","layer":"pages-dir-browser"},"startTime":1757909247268,"traceId":"7e8ce557c902d3f3"},{"name":"build-module-js","duration":861587,"timestamp":129751808813,"id":260,"parentId":219,"tags":{"name":"D:\\dongyun-projects\\two\\node_modules\\next\\dist\\shared\\lib\\modern-browserslist-target.js","layer":"pages-dir-browser"},"startTime":1757909247268,"traceId":"7e8ce557c902d3f3"},{"name":"build-module-js","duration":863429,"timestamp":129751808987,"id":261,"parentId":224,"tags":{"name":"D:\\dongyun-projects\\two\\node_modules\\next\\dist\\shared\\lib\\page-path\\normalize-path-sep.js","layer":"pages-dir-browser"},"startTime":1757909247269,"traceId":"7e8ce557c902d3f3"},{"name":"build-module-js","duration":939377,"timestamp":129751734257,"id":252,"parentId":144,"tags":{"name":"D:\\dongyun-projects\\two\\node_modules\\next\\dist\\compiled\\react-is\\index.js","layer":"pages-dir-browser"},"startTime":1757909247194,"traceId":"7e8ce557c902d3f3"},{"name":"build-module-js","duration":28468,"timestamp":129752652640,"id":262,"parentId":168,"tags":{"name":"D:\\dongyun-projects\\two\\node_modules\\next\\dist\\shared\\lib\\router\\utils\\index.js","layer":"pages-dir-browser"},"startTime":1757909248112,"traceId":"7e8ce557c902d3f3"},{"name":"build-module-js","duration":29184,"timestamp":129752653321,"id":264,"parentId":231,"tags":{"name":"D:\\dongyun-projects\\two\\node_modules\\next\\dist\\client\\components\\redirect-status-code.js","layer":"pages-dir-browser"},"startTime":1757909248113,"traceId":"7e8ce557c902d3f3"},{"name":"build-module-js","duration":29993,"timestamp":129752653658,"id":266,"parentId":238,"tags":{"name":"D:\\dongyun-projects\\two\\node_modules\\next\\dist\\shared\\lib\\amp-mode.js","layer":"pages-dir-browser"},"startTime":1757909248113,"traceId":"7e8ce557c902d3f3"},{"name":"build-module-js","duration":30945,"timestamp":129752654015,"id":268,"parentId":234,"tags":{"name":"D:\\dongyun-projects\\two\\node_modules\\next\\dist\\shared\\lib\\normalized-asset-prefix.js","layer":"pages-dir-browser"},"startTime":1757909248114,"traceId":"7e8ce557c902d3f3"},{"name":"build-module-js","duration":32528,"timestamp":129752653787,"id":267,"parentId":238,"tags":{"name":"D:\\dongyun-projects\\two\\node_modules\\next\\dist\\shared\\lib\\amp-context.shared-runtime.js","layer":"pages-dir-browser"},"startTime":1757909248113,"traceId":"7e8ce557c902d3f3"},{"name":"build-module-js","duration":33801,"timestamp":129752654183,"id":269,"parentId":233,"tags":{"name":"D:\\dongyun-projects\\two\\node_modules\\next\\dist\\shared\\lib\\router\\utils\\app-paths.js","layer":"pages-dir-browser"},"startTime":1757909248114,"traceId":"7e8ce557c902d3f3"},{"name":"build-module-js","duration":37050,"timestamp":129752653508,"id":265,"parentId":238,"tags":{"name":"D:\\dongyun-projects\\two\\node_modules\\next\\dist\\shared\\lib\\side-effect.js","layer":"pages-dir-browser"},"startTime":1757909248113,"traceId":"7e8ce557c902d3f3"},{"name":"build-module-js","duration":935531,"timestamp":129751773053,"id":254,"parentId":189,"tags":{"name":"D:\\dongyun-projects\\two\\node_modules\\react\\cjs\\react-jsx-dev-runtime.development.js","layer":"pages-dir-browser"},"startTime":1757909247233,"traceId":"7e8ce557c902d3f3"},{"name":"build-module-js","duration":72018,"timestamp":129752653143,"id":263,"parentId":215,"tags":{"name":"D:\\dongyun-projects\\two\\node_modules\\next\\dist\\build\\webpack\\loaders\\next-style-loader\\runtime\\injectStylesIntoStyleTag.js","layer":"pages-dir-browser"},"startTime":1757909248113,"traceId":"7e8ce557c902d3f3"},{"name":"add-entry","duration":2815151,"timestamp":129749913653,"id":127,"parentId":122,"tags":{"request":"next-client-pages-loader?absolutePagePath=private-next-pages%2F_error&page=%2F_error!"},"startTime":1757909245373,"traceId":"7e8ce557c902d3f3"},{"name":"build-module-js","duration":38149,"timestamp":129752693791,"id":270,"parentId":136,"tags":{"name":"D:\\dongyun-projects\\two\\node_modules\\@swc\\helpers\\esm\\_interop_require_default.js","layer":"pages-dir-browser"},"startTime":1757909248153,"traceId":"7e8ce557c902d3f3"},{"name":"build-module-js","duration":38078,"timestamp":129752695402,"id":271,"parentId":149,"tags":{"name":"D:\\dongyun-projects\\two\\node_modules\\@swc\\helpers\\esm\\_interop_require_wildcard.js","layer":"pages-dir-browser"},"startTime":1757909248155,"traceId":"7e8ce557c902d3f3"},{"name":"build-module-js","duration":43030,"timestamp":129752695569,"id":272,"parentId":228,"tags":{"name":"D:\\dongyun-projects\\two\\node_modules\\react\\cjs\\react-jsx-runtime.development.js","layer":"pages-dir-browser"},"startTime":1757909248155,"traceId":"7e8ce557c902d3f3"},{"name":"build-module-js","duration":55240,"timestamp":129752711375,"id":273,"parentId":223,"tags":{"name":"D:\\dongyun-projects\\two\\node_modules\\next\\dist\\next-devtools\\userspace\\pages\\hydration-error-state.js","layer":"pages-dir-browser"},"startTime":1757909248171,"traceId":"7e8ce557c902d3f3"},{"name":"build-module-js","duration":56540,"timestamp":129752711576,"id":274,"parentId":223,"tags":{"name":"D:\\dongyun-projects\\two\\node_modules\\next\\dist\\next-devtools\\userspace\\pages\\pages-dev-overlay-error-boundary.js","layer":"pages-dir-browser"},"startTime":1757909248171,"traceId":"7e8ce557c902d3f3"},{"name":"build-module-js","duration":51511,"timestamp":129752727394,"id":283,"parentId":232,"tags":{"name":"D:\\dongyun-projects\\two\\node_modules\\next\\dist\\client\\link.js","layer":"pages-dir-browser"},"startTime":1757909248187,"traceId":"7e8ce557c902d3f3"},{"name":"build-module-js","duration":39086,"timestamp":129752742161,"id":285,"parentId":269,"tags":{"name":"D:\\dongyun-projects\\two\\node_modules\\next\\dist\\shared\\lib\\segment.js","layer":"pages-dir-browser"},"startTime":1757909248202,"traceId":"7e8ce557c902d3f3"},{"name":"build-module-js","duration":64541,"timestamp":129752742458,"id":286,"parentId":269,"tags":{"name":"D:\\dongyun-projects\\two\\node_modules\\next\\dist\\shared\\lib\\page-path\\ensure-leading-slash.js","layer":"pages-dir-browser"},"startTime":1757909248202,"traceId":"7e8ce557c902d3f3"},{"name":"build-module-js","duration":69822,"timestamp":129752742638,"id":287,"parentId":262,"tags":{"name":"D:\\dongyun-projects\\two\\node_modules\\next\\dist\\shared\\lib\\router\\utils\\sorted-routes.js","layer":"pages-dir-browser"},"startTime":1757909248202,"traceId":"7e8ce557c902d3f3"},{"name":"build-module-js","duration":108070,"timestamp":129752720967,"id":281,"parentId":242,"tags":{"name":"D:\\dongyun-projects\\two\\node_modules\\react\\cjs\\react.development.js","layer":"pages-dir-browser"},"startTime":1757909248180,"traceId":"7e8ce557c902d3f3"},{"name":"build-module-js","duration":115566,"timestamp":129752727622,"id":284,"parentId":245,"tags":{"name":"D:\\dongyun-projects\\two\\node_modules\\next\\dist\\next-devtools\\userspace\\app\\terminal-logging-config.js","layer":"pages-dir-browser"},"startTime":1757909248187,"traceId":"7e8ce557c902d3f3"},{"name":"build-module-js","duration":117755,"timestamp":129752727241,"id":282,"parentId":157,"tags":{"name":"D:\\dongyun-projects\\two\\node_modules\\react-dom\\index.js","layer":"pages-dir-browser"},"startTime":1757909248187,"traceId":"7e8ce557c902d3f3"},{"name":"build-module-js","duration":156024,"timestamp":129752720212,"id":276,"parentId":169,"tags":{"name":"__barrel_optimize__?names=BarChart,CheckCircle,Clock,Globe,Repeat,Shield,Users,Zap!=!D:\\dongyun-projects\\two\\node_modules\\lucide-react\\dist\\esm\\lucide-react.js","layer":"pages-dir-browser"},"startTime":1757909248180,"traceId":"7e8ce557c902d3f3"},{"name":"build-module-js","duration":167548,"timestamp":129752717643,"id":275,"parentId":171,"tags":{"name":"__barrel_optimize__?names=Box,Globe,Headphones,ShieldCheck,UserCheck!=!D:\\dongyun-projects\\two\\node_modules\\lucide-react\\dist\\esm\\lucide-react.js","layer":"pages-dir-browser"},"startTime":1757909248177,"traceId":"7e8ce557c902d3f3"},{"name":"build-module-js","duration":419578,"timestamp":129752720746,"id":280,"parentId":229,"tags":{"name":"D:\\dongyun-projects\\two\\node_modules\\react-dom\\cjs\\react-dom-client.development.js","layer":"pages-dir-browser"},"startTime":1757909248180,"traceId":"7e8ce557c902d3f3"},{"name":"build-module-js","duration":435963,"timestamp":129752720336,"id":277,"parentId":174,"tags":{"name":"__barrel_optimize__?names=CheckCircle,Headphones,MessageSquare,UserCheck!=!D:\\dongyun-projects\\two\\node_modules\\lucide-react\\dist\\esm\\lucide-react.js","layer":"pages-dir-browser"},"startTime":1757909248180,"traceId":"7e8ce557c902d3f3"},{"name":"build-module-js","duration":320642,"timestamp":129752838633,"id":291,"parentId":188,"tags":{"name":"D:\\dongyun-projects\\two\\node_modules\\next\\dist\\compiled\\strip-ansi\\index.js","layer":"pages-dir-browser"},"startTime":1757909248298,"traceId":"7e8ce557c902d3f3"},{"name":"build-module-js","duration":457652,"timestamp":129752720407,"id":278,"parentId":170,"tags":{"name":"__barrel_optimize__?names=ArrowRight,MessageCircle,Play,Zap!=!D:\\dongyun-projects\\two\\node_modules\\lucide-react\\dist\\esm\\lucide-react.js","layer":"pages-dir-browser"},"startTime":1757909248180,"traceId":"7e8ce557c902d3f3"},{"name":"build-module-js","duration":469053,"timestamp":129752720533,"id":279,"parentId":175,"tags":{"name":"__barrel_optimize__?names=Menu!=!D:\\dongyun-projects\\two\\node_modules\\lucide-react\\dist\\esm\\lucide-react.js","layer":"pages-dir-browser"},"startTime":1757909248180,"traceId":"7e8ce557c902d3f3"},{"name":"build-module","duration":1167,"timestamp":129753208795,"id":293,"parentId":151,"tags":{"layer":null},"startTime":1757909248668,"traceId":"7e8ce557c902d3f3"},{"name":"build-module-js","duration":423963,"timestamp":129752803154,"id":289,"parentId":252,"tags":{"name":"D:\\dongyun-projects\\two\\node_modules\\next\\dist\\compiled\\react-is\\cjs\\react-is.development.js","layer":"pages-dir-browser"},"startTime":1757909248263,"traceId":"7e8ce557c902d3f3"},{"name":"build-module-js","duration":426184,"timestamp":129752802932,"id":288,"parentId":245,"tags":{"name":"D:\\dongyun-projects\\two\\node_modules\\next\\dist\\next-devtools\\shared\\forward-logs-shared.js","layer":"pages-dir-browser"},"startTime":1757909248262,"traceId":"7e8ce557c902d3f3"},{"name":"build-module-js","duration":404690,"timestamp":129752838442,"id":290,"parentId":121,"tags":{"name":"D:\\dongyun-projects\\two\\node_modules\\next\\dist\\build\\webpack\\loaders\\css-loader\\src\\runtime\\api.js","layer":"pages-dir-browser"},"startTime":1757909248298,"traceId":"7e8ce557c902d3f3"},{"name":"build-module-js","duration":401812,"timestamp":129752845789,"id":292,"parentId":191,"tags":{"name":"D:\\dongyun-projects\\two\\node_modules\\next\\dist\\compiled\\stacktrace-parser\\stack-trace-parser.cjs.js","layer":"pages-dir-browser"},"startTime":1757909248305,"traceId":"7e8ce557c902d3f3"},{"name":"add-entry","duration":3337275,"timestamp":129749913226,"id":125,"parentId":122,"tags":{"request":"next-client-pages-loader?absolutePagePath=private-next-pages%2F_app&page=%2F_app!"},"startTime":1757909245373,"traceId":"7e8ce557c902d3f3"},{"name":"build-module-js","duration":22575,"timestamp":129753231954,"id":294,"parentId":276,"tags":{"name":"D:\\dongyun-projects\\two\\node_modules\\lucide-react\\dist\\esm\\icons\\globe.js","layer":"pages-dir-browser"},"startTime":1757909248691,"traceId":"7e8ce557c902d3f3"},{"name":"build-module-js","duration":24308,"timestamp":129753232329,"id":295,"parentId":276,"tags":{"name":"D:\\dongyun-projects\\two\\node_modules\\lucide-react\\dist\\esm\\icons\\users.js","layer":"pages-dir-browser"},"startTime":1757909248692,"traceId":"7e8ce557c902d3f3"},{"name":"build-module-js","duration":27334,"timestamp":129753233763,"id":298,"parentId":283,"tags":{"name":"D:\\dongyun-projects\\two\\node_modules\\next\\dist\\client\\get-domain-locale.js","layer":"pages-dir-browser"},"startTime":1757909248693,"traceId":"7e8ce557c902d3f3"},{"name":"build-module-js","duration":35812,"timestamp":129753233538,"id":297,"parentId":283,"tags":{"name":"D:\\dongyun-projects\\two\\node_modules\\next\\dist\\client\\use-intersection.js","layer":"pages-dir-browser"},"startTime":1757909248693,"traceId":"7e8ce557c902d3f3"},{"name":"build-module-js","duration":38503,"timestamp":129753233286,"id":296,"parentId":276,"tags":{"name":"D:\\dongyun-projects\\two\\node_modules\\lucide-react\\dist\\esm\\icons\\zap.js","layer":"pages-dir-browser"},"startTime":1757909248693,"traceId":"7e8ce557c902d3f3"},{"name":"build-module-js","duration":41597,"timestamp":129753233934,"id":299,"parentId":283,"tags":{"name":"D:\\dongyun-projects\\two\\node_modules\\next\\dist\\client\\use-merged-ref.js","layer":"pages-dir-browser"},"startTime":1757909248693,"traceId":"7e8ce557c902d3f3"},{"name":"build-module-js","duration":43808,"timestamp":129753234103,"id":300,"parentId":283,"tags":{"name":"D:\\dongyun-projects\\two\\node_modules\\next\\dist\\shared\\lib\\utils\\error-once.js","layer":"pages-dir-browser"},"startTime":1757909248694,"traceId":"7e8ce557c902d3f3"},{"name":"build-module-js","duration":48945,"timestamp":129753250078,"id":306,"parentId":278,"tags":{"name":"D:\\dongyun-projects\\two\\node_modules\\lucide-react\\dist\\esm\\icons\\arrow-right.js","layer":"pages-dir-browser"},"startTime":1757909248710,"traceId":"7e8ce557c902d3f3"},{"name":"build-module-js","duration":79681,"timestamp":129753234445,"id":302,"parentId":273,"tags":{"name":"D:\\dongyun-projects\\two\\node_modules\\next\\dist\\next-devtools\\shared\\react-19-hydration-error.js","layer":"pages-dir-browser"},"startTime":1757909248694,"traceId":"7e8ce557c902d3f3"},{"name":"build-module-js","duration":82854,"timestamp":129753234285,"id":301,"parentId":273,"tags":{"name":"D:\\dongyun-projects\\two\\node_modules\\next\\dist\\next-devtools\\shared\\react-18-hydration-error.js","layer":"pages-dir-browser"},"startTime":1757909248694,"traceId":"7e8ce557c902d3f3"},{"name":"build-module-js","duration":83229,"timestamp":129753234584,"id":303,"parentId":241,"tags":{"name":"D:\\dongyun-projects\\two\\node_modules\\@swc\\helpers\\esm\\_class_private_field_loose_base.js","layer":"pages-dir-browser"},"startTime":1757909248694,"traceId":"7e8ce557c902d3f3"},{"name":"build-module-js","duration":83795,"timestamp":129753234704,"id":304,"parentId":241,"tags":{"name":"D:\\dongyun-projects\\two\\node_modules\\@swc\\helpers\\esm\\_class_private_field_loose_key.js","layer":"pages-dir-browser"},"startTime":1757909248694,"traceId":"7e8ce557c902d3f3"},{"name":"build-module-js","duration":88947,"timestamp":129753234918,"id":305,"parentId":282,"tags":{"name":"D:\\dongyun-projects\\two\\node_modules\\react-dom\\cjs\\react-dom.development.js","layer":"pages-dir-browser"},"startTime":1757909248694,"traceId":"7e8ce557c902d3f3"},{"name":"build-module-js","duration":7955,"timestamp":129753326848,"id":308,"parentId":276,"tags":{"name":"D:\\dongyun-projects\\two\\node_modules\\lucide-react\\dist\\esm\\icons\\shield.js","layer":"pages-dir-browser"},"startTime":1757909248786,"traceId":"7e8ce557c902d3f3"},{"name":"build-module-js","duration":9935,"timestamp":129753326486,"id":307,"parentId":121,"tags":{"name":"D:\\dongyun-projects\\two\\node_modules\\lucide-react\\dist\\esm\\createLucideIcon.js","layer":"pages-dir-browser"},"startTime":1757909248786,"traceId":"7e8ce557c902d3f3"},{"name":"build-module-js","duration":16749,"timestamp":129753337559,"id":309,"parentId":276,"tags":{"name":"D:\\dongyun-projects\\two\\node_modules\\lucide-react\\dist\\esm\\icons\\clock.js","layer":"pages-dir-browser"},"startTime":1757909248797,"traceId":"7e8ce557c902d3f3"},{"name":"build-module-js","duration":39117,"timestamp":129753337978,"id":310,"parentId":245,"tags":{"name":"D:\\dongyun-projects\\two\\node_modules\\next\\dist\\compiled\\safe-stable-stringify\\index.js","layer":"pages-dir-browser"},"startTime":1757909248797,"traceId":"7e8ce557c902d3f3"},{"name":"build-module-js","duration":24517,"timestamp":129753356644,"id":312,"parentId":276,"tags":{"name":"D:\\dongyun-projects\\two\\node_modules\\lucide-react\\dist\\esm\\icons\\circle-check-big.js","layer":"pages-dir-browser"},"startTime":1757909248816,"traceId":"7e8ce557c902d3f3"},{"name":"build-module-js","duration":25673,"timestamp":129753356976,"id":314,"parentId":275,"tags":{"name":"D:\\dongyun-projects\\two\\node_modules\\lucide-react\\dist\\esm\\icons\\box.js","layer":"pages-dir-browser"},"startTime":1757909248816,"traceId":"7e8ce557c902d3f3"},{"name":"build-module-js","duration":27268,"timestamp":129753356819,"id":313,"parentId":276,"tags":{"name":"D:\\dongyun-projects\\two\\node_modules\\lucide-react\\dist\\esm\\icons\\repeat.js","layer":"pages-dir-browser"},"startTime":1757909248816,"traceId":"7e8ce557c902d3f3"},{"name":"build-module-js","duration":30283,"timestamp":129753356382,"id":311,"parentId":276,"tags":{"name":"D:\\dongyun-projects\\two\\node_modules\\lucide-react\\dist\\esm\\icons\\chart-no-axes-column-increasing.js","layer":"pages-dir-browser"},"startTime":1757909248816,"traceId":"7e8ce557c902d3f3"},{"name":"build-module-js","duration":30652,"timestamp":129753357601,"id":318,"parentId":277,"tags":{"name":"D:\\dongyun-projects\\two\\node_modules\\lucide-react\\dist\\esm\\icons\\message-square.js","layer":"pages-dir-browser"},"startTime":1757909248817,"traceId":"7e8ce557c902d3f3"},{"name":"build-module-js","duration":32729,"timestamp":129753357131,"id":315,"parentId":275,"tags":{"name":"D:\\dongyun-projects\\two\\node_modules\\lucide-react\\dist\\esm\\icons\\headphones.js","layer":"pages-dir-browser"},"startTime":1757909248817,"traceId":"7e8ce557c902d3f3"},{"name":"build-module-js","duration":33928,"timestamp":129753357453,"id":317,"parentId":275,"tags":{"name":"D:\\dongyun-projects\\two\\node_modules\\lucide-react\\dist\\esm\\icons\\user-check.js","layer":"pages-dir-browser"},"startTime":1757909248817,"traceId":"7e8ce557c902d3f3"},{"name":"build-module-js","duration":35879,"timestamp":129753357294,"id":316,"parentId":275,"tags":{"name":"D:\\dongyun-projects\\two\\node_modules\\lucide-react\\dist\\esm\\icons\\shield-check.js","layer":"pages-dir-browser"},"startTime":1757909248817,"traceId":"7e8ce557c902d3f3"},{"name":"build-module-js","duration":37232,"timestamp":129753357902,"id":320,"parentId":279,"tags":{"name":"D:\\dongyun-projects\\two\\node_modules\\lucide-react\\dist\\esm\\icons\\menu.js","layer":"pages-dir-browser"},"startTime":1757909248817,"traceId":"7e8ce557c902d3f3"},{"name":"build-module-js","duration":38954,"timestamp":129753357753,"id":319,"parentId":278,"tags":{"name":"D:\\dongyun-projects\\two\\node_modules\\lucide-react\\dist\\esm\\icons\\play.js","layer":"pages-dir-browser"},"startTime":1757909248817,"traceId":"7e8ce557c902d3f3"},{"name":"build-module-js","duration":26143,"timestamp":129753377431,"id":321,"parentId":307,"tags":{"name":"D:\\dongyun-projects\\two\\node_modules\\lucide-react\\dist\\esm\\Icon.js","layer":"pages-dir-browser"},"startTime":1757909248837,"traceId":"7e8ce557c902d3f3"},{"name":"build-module-js","duration":8375,"timestamp":129753408296,"id":322,"parentId":307,"tags":{"name":"D:\\dongyun-projects\\two\\node_modules\\lucide-react\\dist\\esm\\shared\\src\\utils.js","layer":"pages-dir-browser"},"startTime":1757909248868,"traceId":"7e8ce557c902d3f3"},{"name":"build-module-js","duration":4722,"timestamp":129753419499,"id":323,"parentId":321,"tags":{"name":"D:\\dongyun-projects\\two\\node_modules\\lucide-react\\dist\\esm\\defaultAttributes.js","layer":"pages-dir-browser"},"startTime":1757909248879,"traceId":"7e8ce557c902d3f3"},{"name":"build-module-js","duration":6516,"timestamp":129753420435,"id":324,"parentId":236,"tags":{"name":"D:\\dongyun-projects\\two\\node_modules\\process\\browser.js","layer":"pages-dir-browser"},"startTime":1757909248880,"traceId":"7e8ce557c902d3f3"},{"name":"add-entry","duration":3513428,"timestamp":129749913752,"id":128,"parentId":122,"tags":{"request":"next-client-pages-loader?absolutePagePath=D%3A%5Cdongyun-projects%5Ctwo%5Cpages%5Cindex.tsx&page=%2F!"},"startTime":1757909245373,"traceId":"7e8ce557c902d3f3"},{"name":"add-entry","duration":3513899,"timestamp":129749913312,"id":126,"parentId":122,"tags":{"request":"D:\\dongyun-projects\\two\\node_modules\\next\\dist\\client\\router.js"},"startTime":1757909245373,"traceId":"7e8ce557c902d3f3"}] -[{"name":"build-module-js","duration":4888,"timestamp":129753424522,"id":325,"parentId":280,"tags":{"name":"D:\\dongyun-projects\\two\\node_modules\\scheduler\\index.js","layer":"pages-dir-browser"},"startTime":1757909248884,"traceId":"7e8ce557c902d3f3"},{"name":"build-module-js","duration":5467,"timestamp":129753432420,"id":326,"parentId":325,"tags":{"name":"D:\\dongyun-projects\\two\\node_modules\\scheduler\\cjs\\scheduler.development.js","layer":"pages-dir-browser"},"startTime":1757909248892,"traceId":"7e8ce557c902d3f3"},{"name":"add-entry","duration":3525065,"timestamp":129749913067,"id":124,"parentId":122,"tags":{"request":"./node_modules/next/dist/client/next-dev.js"},"startTime":1757909245373,"traceId":"7e8ce557c902d3f3"},{"name":"make","duration":3538599,"timestamp":129749899945,"id":122,"parentId":121,"tags":{},"startTime":1757909245359,"traceId":"7e8ce557c902d3f3"},{"name":"chunk-graph","duration":18557,"timestamp":129753455762,"id":328,"parentId":327,"tags":{},"startTime":1757909248915,"traceId":"7e8ce557c902d3f3"},{"name":"optimize-modules","duration":47,"timestamp":129753474512,"id":330,"parentId":327,"tags":{},"startTime":1757909248934,"traceId":"7e8ce557c902d3f3"},{"name":"optimize-chunks","duration":1061,"timestamp":129753474791,"id":331,"parentId":327,"tags":{},"startTime":1757909248934,"traceId":"7e8ce557c902d3f3"},{"name":"optimize-tree","duration":205,"timestamp":129753476036,"id":332,"parentId":327,"tags":{},"startTime":1757909248936,"traceId":"7e8ce557c902d3f3"},{"name":"optimize-chunk-modules","duration":362,"timestamp":129753476891,"id":333,"parentId":327,"tags":{},"startTime":1757909248936,"traceId":"7e8ce557c902d3f3"},{"name":"optimize","duration":6248,"timestamp":129753474424,"id":329,"parentId":327,"tags":{},"startTime":1757909248934,"traceId":"7e8ce557c902d3f3"},{"name":"module-hash","duration":15240,"timestamp":129753493188,"id":334,"parentId":327,"tags":{},"startTime":1757909248953,"traceId":"7e8ce557c902d3f3"},{"name":"code-generation","duration":51242,"timestamp":129753508524,"id":335,"parentId":327,"tags":{},"startTime":1757909248968,"traceId":"7e8ce557c902d3f3"},{"name":"hash","duration":31408,"timestamp":129753571436,"id":336,"parentId":327,"tags":{},"startTime":1757909249031,"traceId":"7e8ce557c902d3f3"},{"name":"code-generation-jobs","duration":1502,"timestamp":129753602839,"id":337,"parentId":327,"tags":{},"startTime":1757909249062,"traceId":"7e8ce557c902d3f3"},{"name":"module-assets","duration":527,"timestamp":129753604224,"id":338,"parentId":327,"tags":{},"startTime":1757909249064,"traceId":"7e8ce557c902d3f3"},{"name":"create-chunk-assets","duration":250017,"timestamp":129753604790,"id":339,"parentId":327,"tags":{},"startTime":1757909249064,"traceId":"7e8ce557c902d3f3"},{"name":"NextJsBuildManifest-generateClientManifest","duration":998,"timestamp":129753859229,"id":341,"parentId":121,"tags":{},"startTime":1757909249319,"traceId":"7e8ce557c902d3f3"},{"name":"NextJsBuildManifest-createassets","duration":2262,"timestamp":129753857987,"id":340,"parentId":121,"tags":{},"startTime":1757909249318,"traceId":"7e8ce557c902d3f3"},{"name":"seal","duration":411835,"timestamp":129753452327,"id":327,"parentId":121,"tags":{},"startTime":1757909248912,"traceId":"7e8ce557c902d3f3"},{"name":"webpack-compilation","duration":3968913,"timestamp":129749895602,"id":121,"parentId":118,"tags":{"name":"client"},"startTime":1757909245355,"traceId":"7e8ce557c902d3f3"},{"name":"emit","duration":52624,"timestamp":129753865139,"id":342,"parentId":118,"tags":{},"startTime":1757909249325,"traceId":"7e8ce557c902d3f3"},{"name":"webpack-invalidated-client","duration":4034146,"timestamp":129749888272,"id":118,"parentId":3,"tags":{"trigger":"manual"},"startTime":1757909245348,"traceId":"7e8ce557c902d3f3"},{"name":"build-module-tsx","duration":12046,"timestamp":129753980970,"id":349,"parentId":345,"tags":{"name":"D:\\dongyun-projects\\two\\pages\\_app.tsx","layer":"pages-dir-node"},"startTime":1757909249440,"traceId":"7e8ce557c902d3f3"},{"name":"build-module","duration":784,"timestamp":129753998024,"id":350,"parentId":349,"tags":{"name":"react/jsx-dev-runtime","layer":null},"startTime":1757909249458,"traceId":"7e8ce557c902d3f3"},{"name":"build-module-css","duration":1629,"timestamp":129754004294,"id":353,"parentId":349,"tags":{"name":"D:\\dongyun-projects\\two\\styles\\globals.css","layer":"pages-dir-node"},"startTime":1757909249464,"traceId":"7e8ce557c902d3f3"},{"name":"add-entry","duration":42962,"timestamp":129753963126,"id":345,"parentId":344,"tags":{"request":"private-next-pages/_app"},"startTime":1757909249423,"traceId":"7e8ce557c902d3f3"},{"name":"build-module","duration":14789,"timestamp":129754001516,"id":351,"parentId":346,"tags":{"name":"D:\\dongyun-projects\\two\\node_modules\\next\\dist\\build\\webpack\\loaders\\next-route-loader\\index.js?kind=PAGES&page=%2F_error&preferredRegion=&absolutePagePath=private-next-pages%2F_error&absoluteAppPath=private-next-pages%2F_app&absoluteDocumentPath=private-next-pages%2F_document&middlewareConfigBase64=e30%3D!","layer":"pages-dir-node"},"startTime":1757909249461,"traceId":"7e8ce557c902d3f3"},{"name":"build-module","duration":30157,"timestamp":129754003678,"id":352,"parentId":348,"tags":{"name":"D:\\dongyun-projects\\two\\node_modules\\next\\dist\\build\\webpack\\loaders\\next-route-loader\\index.js?kind=PAGES&page=%2F&preferredRegion=&absolutePagePath=.%2Fpages%5Cindex.tsx&absoluteAppPath=private-next-pages%2F_app&absoluteDocumentPath=private-next-pages%2F_document&middlewareConfigBase64=e30%3D!","layer":"pages-dir-node"},"startTime":1757909249463,"traceId":"7e8ce557c902d3f3"},{"name":"build-module","duration":85,"timestamp":129754041377,"id":354,"parentId":351,"tags":{"name":"next/dist/shared/lib/router/utils/format-url","layer":null},"startTime":1757909249501,"traceId":"7e8ce557c902d3f3"},{"name":"build-module","duration":30,"timestamp":129754041504,"id":355,"parentId":351,"tags":{"name":"next/dist/shared/lib/page-path/normalize-data-path","layer":null},"startTime":1757909249501,"traceId":"7e8ce557c902d3f3"},{"name":"build-module","duration":19,"timestamp":129754041554,"id":356,"parentId":351,"tags":{"name":"next/dist/shared/lib/utils","layer":null},"startTime":1757909249501,"traceId":"7e8ce557c902d3f3"},{"name":"build-module-external","duration":33,"timestamp":129754041588,"id":357,"parentId":351,"tags":{"name":"next/dist/shared/lib/no-fallback-error.external","layer":null},"startTime":1757909249501,"traceId":"7e8ce557c902d3f3"},{"name":"build-module","duration":21,"timestamp":129754041646,"id":358,"parentId":351,"tags":{"name":"next/dist/shared/lib/router/utils/is-bot","layer":null},"startTime":1757909249501,"traceId":"7e8ce557c902d3f3"},{"name":"build-module","duration":20,"timestamp":129754041679,"id":359,"parentId":351,"tags":{"name":"next/dist/shared/lib/router/utils/add-path-prefix","layer":null},"startTime":1757909249501,"traceId":"7e8ce557c902d3f3"},{"name":"build-module","duration":18,"timestamp":129754041710,"id":360,"parentId":351,"tags":{"name":"next/dist/shared/lib/router/utils/remove-trailing-slash","layer":null},"startTime":1757909249501,"traceId":"7e8ce557c902d3f3"},{"name":"build-module-js","duration":11043,"timestamp":129754043576,"id":361,"parentId":351,"tags":{"name":"D:\\dongyun-projects\\two\\node_modules\\next\\dist\\pages\\_error.js","layer":"pages-dir-node"},"startTime":1757909249503,"traceId":"7e8ce557c902d3f3"},{"name":"build-module-tsx","duration":42090,"timestamp":129754045121,"id":362,"parentId":352,"tags":{"name":"D:\\dongyun-projects\\two\\pages\\index.tsx","layer":"pages-dir-node"},"startTime":1757909249505,"traceId":"7e8ce557c902d3f3"},{"name":"build-module-js","duration":4066,"timestamp":129754099648,"id":373,"parentId":351,"tags":{"name":"D:\\dongyun-projects\\two\\node_modules\\next\\dist\\lib\\constants.js","layer":"pages-dir-node"},"startTime":1757909249559,"traceId":"7e8ce557c902d3f3"},{"name":"build-module","duration":164,"timestamp":129754111738,"id":378,"parentId":361,"tags":{"name":"react/jsx-runtime","layer":null},"startTime":1757909249571,"traceId":"7e8ce557c902d3f3"},{"name":"build-module","duration":79,"timestamp":129754112184,"id":379,"parentId":361,"tags":{"name":"react","layer":null},"startTime":1757909249572,"traceId":"7e8ce557c902d3f3"},{"name":"build-module-js","duration":20875,"timestamp":129754100146,"id":377,"parentId":351,"tags":{"name":"D:\\dongyun-projects\\two\\node_modules\\next\\dist\\client\\components\\redirect-status-code.js","layer":"pages-dir-node"},"startTime":1757909249560,"traceId":"7e8ce557c902d3f3"},{"name":"build-module-js","duration":19587,"timestamp":129754112307,"id":380,"parentId":361,"tags":{"name":"D:\\dongyun-projects\\two\\node_modules\\next\\dist\\shared\\lib\\head.js","layer":"pages-dir-node"},"startTime":1757909249572,"traceId":"7e8ce557c902d3f3"},{"name":"build-module-js","duration":43745,"timestamp":129754097880,"id":363,"parentId":351,"tags":{"name":"D:\\dongyun-projects\\two\\node_modules\\next\\dist\\server\\route-kind.js","layer":"pages-dir-node"},"startTime":1757909249557,"traceId":"7e8ce557c902d3f3"},{"name":"build-module-js","duration":49598,"timestamp":129754098424,"id":365,"parentId":351,"tags":{"name":"D:\\dongyun-projects\\two\\node_modules\\next\\dist\\server\\lib\\trace\\tracer.js","layer":"pages-dir-node"},"startTime":1757909249558,"traceId":"7e8ce557c902d3f3"},{"name":"build-module-js","duration":52822,"timestamp":129754098200,"id":364,"parentId":351,"tags":{"name":"D:\\dongyun-projects\\two\\node_modules\\next\\dist\\server\\lib\\trace\\constants.js","layer":"pages-dir-node"},"startTime":1757909249558,"traceId":"7e8ce557c902d3f3"},{"name":"build-module-js","duration":53703,"timestamp":129754098539,"id":366,"parentId":351,"tags":{"name":"D:\\dongyun-projects\\two\\node_modules\\next\\dist\\server\\request-meta.js","layer":"pages-dir-node"},"startTime":1757909249558,"traceId":"7e8ce557c902d3f3"},{"name":"build-module-js","duration":54042,"timestamp":129754098839,"id":368,"parentId":351,"tags":{"name":"D:\\dongyun-projects\\two\\node_modules\\next\\dist\\server\\instrumentation\\utils.js","layer":"pages-dir-node"},"startTime":1757909249558,"traceId":"7e8ce557c902d3f3"},{"name":"build-module-js","duration":57448,"timestamp":129754099050,"id":369,"parentId":351,"tags":{"name":"D:\\dongyun-projects\\two\\node_modules\\next\\dist\\server\\response-cache\\index.js","layer":"pages-dir-node"},"startTime":1757909249559,"traceId":"7e8ce557c902d3f3"},{"name":"build-module-js","duration":58415,"timestamp":129754099263,"id":371,"parentId":351,"tags":{"name":"D:\\dongyun-projects\\two\\node_modules\\next\\dist\\server\\lib\\cache-control.js","layer":"pages-dir-node"},"startTime":1757909249559,"traceId":"7e8ce557c902d3f3"},{"name":"build-module-js","duration":59674,"timestamp":129754099454,"id":372,"parentId":351,"tags":{"name":"D:\\dongyun-projects\\two\\node_modules\\next\\dist\\lib\\redirect-status.js","layer":"pages-dir-node"},"startTime":1757909249559,"traceId":"7e8ce557c902d3f3"},{"name":"build-module-js","duration":60721,"timestamp":129754099156,"id":370,"parentId":351,"tags":{"name":"D:\\dongyun-projects\\two\\node_modules\\next\\dist\\build\\templates\\helpers.js","layer":"pages-dir-node"},"startTime":1757909249559,"traceId":"7e8ce557c902d3f3"},{"name":"build-module-js","duration":62201,"timestamp":129754099739,"id":374,"parentId":351,"tags":{"name":"D:\\dongyun-projects\\two\\node_modules\\next\\dist\\server\\send-payload.js","layer":"pages-dir-node"},"startTime":1757909249559,"traceId":"7e8ce557c902d3f3"},{"name":"build-module-js","duration":65022,"timestamp":129754099826,"id":375,"parentId":351,"tags":{"name":"D:\\dongyun-projects\\two\\node_modules\\next\\dist\\server\\render-result.js","layer":"pages-dir-node"},"startTime":1757909249559,"traceId":"7e8ce557c902d3f3"},{"name":"build-module-js","duration":66916,"timestamp":129754099916,"id":376,"parentId":351,"tags":{"name":"D:\\dongyun-projects\\two\\node_modules\\next\\dist\\server\\response-cache\\utils.js","layer":"pages-dir-node"},"startTime":1757909249559,"traceId":"7e8ce557c902d3f3"},{"name":"build-module-js","duration":68672,"timestamp":129754098644,"id":367,"parentId":351,"tags":{"name":"D:\\dongyun-projects\\two\\node_modules\\next\\dist\\server\\app-render\\interop-default.js","layer":"pages-dir-node"},"startTime":1757909249558,"traceId":"7e8ce557c902d3f3"},{"name":"build-module-js","duration":14931,"timestamp":129754176883,"id":384,"parentId":380,"tags":{"name":"D:\\dongyun-projects\\two\\node_modules\\next\\dist\\shared\\lib\\utils\\warn-once.js","layer":"pages-dir-node"},"startTime":1757909249636,"traceId":"7e8ce557c902d3f3"},{"name":"build-module-js","duration":16361,"timestamp":129754176614,"id":382,"parentId":380,"tags":{"name":"D:\\dongyun-projects\\two\\node_modules\\next\\dist\\shared\\lib\\side-effect.js","layer":"pages-dir-node"},"startTime":1757909249636,"traceId":"7e8ce557c902d3f3"},{"name":"build-module-js","duration":16789,"timestamp":129754176792,"id":383,"parentId":380,"tags":{"name":"D:\\dongyun-projects\\two\\node_modules\\next\\dist\\shared\\lib\\amp-mode.js","layer":"pages-dir-node"},"startTime":1757909249636,"traceId":"7e8ce557c902d3f3"},{"name":"build-module-js","duration":72473,"timestamp":129754133325,"id":381,"parentId":351,"tags":{"name":"D:\\dongyun-projects\\two\\node_modules\\next\\dist\\server\\route-modules\\pages\\module.compiled.js","layer":"pages-dir-node"},"startTime":1757909249593,"traceId":"7e8ce557c902d3f3"},{"name":"build-module-js","duration":18152,"timestamp":129754207202,"id":385,"parentId":374,"tags":{"name":"D:\\dongyun-projects\\two\\node_modules\\next\\dist\\shared\\lib\\utils.js","layer":"pages-dir-node"},"startTime":1757909249667,"traceId":"7e8ce557c902d3f3"},{"name":"build-module-js","duration":76,"timestamp":129754225649,"id":395,"parentId":381,"tags":{"name":"next/dist/compiled/next-server/pages.runtime.dev.js","layer":null},"startTime":1757909249685,"traceId":"7e8ce557c902d3f3"},{"name":"build-module-tsx","duration":15663,"timestamp":129754212448,"id":389,"parentId":362,"tags":{"name":"D:\\dongyun-projects\\two\\components\\Hero.tsx","layer":"pages-dir-node"},"startTime":1757909249672,"traceId":"7e8ce557c902d3f3"},{"name":"build-module-tsx","duration":16752,"timestamp":129754212766,"id":390,"parentId":362,"tags":{"name":"D:\\dongyun-projects\\two\\components\\Testimonials.tsx","layer":"pages-dir-node"},"startTime":1757909249672,"traceId":"7e8ce557c902d3f3"},{"name":"build-module-tsx","duration":17777,"timestamp":129754212973,"id":391,"parentId":362,"tags":{"name":"D:\\dongyun-projects\\two\\components\\Process.tsx","layer":"pages-dir-node"},"startTime":1757909249672,"traceId":"7e8ce557c902d3f3"},{"name":"build-module-tsx","duration":18649,"timestamp":129754213548,"id":394,"parentId":362,"tags":{"name":"D:\\dongyun-projects\\two\\components\\CoreAdvantages.tsx","layer":"pages-dir-node"},"startTime":1757909249673,"traceId":"7e8ce557c902d3f3"},{"name":"build-module-tsx","duration":25958,"timestamp":129754213377,"id":393,"parentId":362,"tags":{"name":"D:\\dongyun-projects\\two\\components\\Cta.tsx","layer":"pages-dir-node"},"startTime":1757909249673,"traceId":"7e8ce557c902d3f3"},{"name":"build-module-tsx","duration":30168,"timestamp":129754213178,"id":392,"parentId":362,"tags":{"name":"D:\\dongyun-projects\\two\\components\\Features.tsx","layer":"pages-dir-node"},"startTime":1757909249673,"traceId":"7e8ce557c902d3f3"},{"name":"build-module-js","duration":64525,"timestamp":129754207480,"id":386,"parentId":351,"tags":{"name":"D:\\dongyun-projects\\two\\node_modules\\next\\dist\\pages\\_document.js","layer":"pages-dir-node"},"startTime":1757909249667,"traceId":"7e8ce557c902d3f3"},{"name":"build-module-js","duration":54659,"timestamp":129754225938,"id":397,"parentId":374,"tags":{"name":"D:\\dongyun-projects\\two\\node_modules\\next\\dist\\client\\components\\app-router-headers.js","layer":"pages-dir-node"},"startTime":1757909249685,"traceId":"7e8ce557c902d3f3"},{"name":"build-module-cjs","duration":75689,"timestamp":129754207603,"id":387,"parentId":361,"tags":{"name":"D:\\dongyun-projects\\two\\node_modules\\@swc\\helpers\\cjs\\_interop_require_default.cjs","layer":"pages-dir-node"},"startTime":1757909249667,"traceId":"7e8ce557c902d3f3"},{"name":"build-module-cjs","duration":77034,"timestamp":129754207771,"id":388,"parentId":380,"tags":{"name":"D:\\dongyun-projects\\two\\node_modules\\@swc\\helpers\\cjs\\_interop_require_wildcard.cjs","layer":"pages-dir-node"},"startTime":1757909249667,"traceId":"7e8ce557c902d3f3"},{"name":"build-module-js","duration":14266,"timestamp":129754273435,"id":400,"parentId":365,"tags":{"name":"D:\\dongyun-projects\\two\\node_modules\\next\\dist\\shared\\lib\\is-thenable.js","layer":"pages-dir-node"},"startTime":1757909249733,"traceId":"7e8ce557c902d3f3"},{"name":"build-module-js","duration":2982,"timestamp":129754297053,"id":406,"parentId":386,"tags":{"name":"D:\\dongyun-projects\\two\\node_modules\\next\\dist\\lib\\is-error.js","layer":"pages-dir-node"},"startTime":1757909249757,"traceId":"7e8ce557c902d3f3"},{"name":"build-module-js","duration":78560,"timestamp":129754225760,"id":396,"parentId":375,"tags":{"name":"D:\\dongyun-projects\\two\\node_modules\\next\\dist\\server\\pipe-readable.js","layer":"pages-dir-node"},"startTime":1757909249685,"traceId":"7e8ce557c902d3f3"},{"name":"build-module-js","duration":24960,"timestamp":129754297438,"id":408,"parentId":386,"tags":{"name":"D:\\dongyun-projects\\two\\node_modules\\next\\dist\\shared\\lib\\encode-uri-path.js","layer":"pages-dir-node"},"startTime":1757909249757,"traceId":"7e8ce557c902d3f3"},{"name":"build-module-js","duration":51054,"timestamp":129754273211,"id":398,"parentId":369,"tags":{"name":"D:\\dongyun-projects\\two\\node_modules\\next\\dist\\lib\\batcher.js","layer":"pages-dir-node"},"startTime":1757909249733,"traceId":"7e8ce557c902d3f3"},{"name":"build-module-tsx","duration":35192,"timestamp":129754297593,"id":409,"parentId":362,"tags":{"name":"D:\\dongyun-projects\\two\\components\\Navbar.tsx","layer":"pages-dir-node"},"startTime":1757909249757,"traceId":"7e8ce557c902d3f3"},{"name":"build-module-js","duration":61323,"timestamp":129754273356,"id":399,"parentId":369,"tags":{"name":"D:\\dongyun-projects\\two\\node_modules\\next\\dist\\lib\\scheduler.js","layer":"pages-dir-node"},"startTime":1757909249733,"traceId":"7e8ce557c902d3f3"},{"name":"build-module-js","duration":43822,"timestamp":129754297233,"id":407,"parentId":386,"tags":{"name":"D:\\dongyun-projects\\two\\node_modules\\next\\dist\\shared\\lib\\constants.js","layer":"pages-dir-node"},"startTime":1757909249757,"traceId":"7e8ce557c902d3f3"},{"name":"build-module-js","duration":68730,"timestamp":129754288032,"id":401,"parentId":380,"tags":{"name":"D:\\dongyun-projects\\two\\node_modules\\next\\dist\\server\\route-modules\\pages\\vendored\\contexts\\amp-context.js","layer":"pages-dir-node"},"startTime":1757909249748,"traceId":"7e8ce557c902d3f3"},{"name":"build-module-js","duration":70035,"timestamp":129754288381,"id":403,"parentId":369,"tags":{"name":"D:\\dongyun-projects\\two\\node_modules\\next\\dist\\server\\response-cache\\types.js","layer":"pages-dir-node"},"startTime":1757909249748,"traceId":"7e8ce557c902d3f3"},{"name":"build-module-js","duration":71946,"timestamp":129754288494,"id":404,"parentId":374,"tags":{"name":"D:\\dongyun-projects\\two\\node_modules\\next\\dist\\server\\lib\\etag.js","layer":"pages-dir-node"},"startTime":1757909249748,"traceId":"7e8ce557c902d3f3"},{"name":"build-module-js","duration":72699,"timestamp":129754288240,"id":402,"parentId":380,"tags":{"name":"D:\\dongyun-projects\\two\\node_modules\\next\\dist\\server\\route-modules\\pages\\vendored\\contexts\\head-manager-context.js","layer":"pages-dir-node"},"startTime":1757909249748,"traceId":"7e8ce557c902d3f3"},{"name":"build-module-js","duration":82842,"timestamp":129754288615,"id":405,"parentId":375,"tags":{"name":"D:\\dongyun-projects\\two\\node_modules\\next\\dist\\server\\stream-utils\\node-web-streams-helper.js","layer":"pages-dir-node"},"startTime":1757909249748,"traceId":"7e8ce557c902d3f3"},{"name":"build-module-js","duration":26169,"timestamp":129754386490,"id":415,"parentId":406,"tags":{"name":"D:\\dongyun-projects\\two\\node_modules\\next\\dist\\shared\\lib\\is-plain-object.js","layer":"pages-dir-node"},"startTime":1757909249846,"traceId":"7e8ce557c902d3f3"},{"name":"build-module-js","duration":600,"timestamp":129754413185,"id":416,"parentId":409,"tags":{"name":"D:\\dongyun-projects\\two\\node_modules\\next\\link.js","layer":"pages-dir-node"},"startTime":1757909249873,"traceId":"7e8ce557c902d3f3"},{"name":"build-module-js","duration":13014,"timestamp":129754413301,"id":417,"parentId":407,"tags":{"name":"D:\\dongyun-projects\\two\\node_modules\\next\\dist\\shared\\lib\\modern-browserslist-target.js","layer":"pages-dir-node"},"startTime":1757909249873,"traceId":"7e8ce557c902d3f3"},{"name":"build-module-js","duration":83989,"timestamp":129754344410,"id":411,"parentId":386,"tags":{"name":"D:\\dongyun-projects\\two\\node_modules\\next\\dist\\lib\\pretty-bytes.js","layer":"pages-dir-node"},"startTime":1757909249804,"traceId":"7e8ce557c902d3f3"},{"name":"build-module-js","duration":86157,"timestamp":129754343763,"id":410,"parentId":386,"tags":{"name":"D:\\dongyun-projects\\two\\node_modules\\next\\dist\\server\\get-page-files.js","layer":"pages-dir-node"},"startTime":1757909249803,"traceId":"7e8ce557c902d3f3"},{"name":"build-module-js","duration":85898,"timestamp":129754344911,"id":412,"parentId":386,"tags":{"name":"D:\\dongyun-projects\\two\\node_modules\\next\\dist\\server\\lib\\trace\\utils.js","layer":"pages-dir-node"},"startTime":1757909249804,"traceId":"7e8ce557c902d3f3"},{"name":"build-module-js","duration":89163,"timestamp":129754345365,"id":414,"parentId":386,"tags":{"name":"D:\\dongyun-projects\\two\\node_modules\\next\\dist\\server\\utils.js","layer":"pages-dir-node"},"startTime":1757909249805,"traceId":"7e8ce557c902d3f3"},{"name":"build-module-js","duration":91452,"timestamp":129754345214,"id":413,"parentId":386,"tags":{"name":"D:\\dongyun-projects\\two\\node_modules\\next\\dist\\server\\htmlescape.js","layer":"pages-dir-node"},"startTime":1757909249805,"traceId":"7e8ce557c902d3f3"},{"name":"build-module-js","duration":45823,"timestamp":129754417897,"id":419,"parentId":396,"tags":{"name":"D:\\dongyun-projects\\two\\node_modules\\next\\dist\\lib\\detached-promise.js","layer":"pages-dir-node"},"startTime":1757909249877,"traceId":"7e8ce557c902d3f3"},{"name":"build-module-js","duration":47029,"timestamp":129754417692,"id":418,"parentId":386,"tags":{"name":"D:\\dongyun-projects\\two\\node_modules\\next\\dist\\server\\route-modules\\pages\\vendored\\contexts\\html-context.js","layer":"pages-dir-node"},"startTime":1757909249877,"traceId":"7e8ce557c902d3f3"},{"name":"build-module-js","duration":49109,"timestamp":129754418016,"id":420,"parentId":396,"tags":{"name":"D:\\dongyun-projects\\two\\node_modules\\next\\dist\\server\\client-component-renderer-logger.js","layer":"pages-dir-node"},"startTime":1757909249878,"traceId":"7e8ce557c902d3f3"},{"name":"build-module-js","duration":29203,"timestamp":129754450552,"id":421,"parentId":416,"tags":{"name":"D:\\dongyun-projects\\two\\node_modules\\next\\dist\\client\\link.js","layer":"pages-dir-node"},"startTime":1757909249910,"traceId":"7e8ce557c902d3f3"},{"name":"build-module-tsx","duration":47280,"timestamp":129754458339,"id":425,"parentId":409,"tags":{"name":"D:\\dongyun-projects\\two\\components\\Sidebar.tsx","layer":"pages-dir-node"},"startTime":1757909249918,"traceId":"7e8ce557c902d3f3"},{"name":"build-module-js","duration":49167,"timestamp":129754458086,"id":424,"parentId":410,"tags":{"name":"D:\\dongyun-projects\\two\\node_modules\\next\\dist\\shared\\lib\\page-path\\denormalize-page-path.js","layer":"pages-dir-node"},"startTime":1757909249918,"traceId":"7e8ce557c902d3f3"},{"name":"build-module-js","duration":25645,"timestamp":129754484449,"id":434,"parentId":405,"tags":{"name":"D:\\dongyun-projects\\two\\node_modules\\next\\dist\\shared\\lib\\errors\\constants.js","layer":"pages-dir-node"},"startTime":1757909249944,"traceId":"7e8ce557c902d3f3"},{"name":"build-module-js","duration":28107,"timestamp":129754484135,"id":433,"parentId":405,"tags":{"name":"D:\\dongyun-projects\\two\\node_modules\\next\\dist\\shared\\lib\\segment-cache\\output-export-prefetch-encoding.js","layer":"pages-dir-node"},"startTime":1757909249944,"traceId":"7e8ce557c902d3f3"},{"name":"build-module-js","duration":69793,"timestamp":129754451502,"id":423,"parentId":405,"tags":{"name":"D:\\dongyun-projects\\two\\node_modules\\next\\dist\\server\\stream-utils\\uint8array-helpers.js","layer":"pages-dir-node"},"startTime":1757909249911,"traceId":"7e8ce557c902d3f3"}] -[{"name":"build-module-js","duration":71019,"timestamp":129754451324,"id":422,"parentId":405,"tags":{"name":"D:\\dongyun-projects\\two\\node_modules\\next\\dist\\server\\stream-utils\\encoded-tags.js","layer":"pages-dir-node"},"startTime":1757909249911,"traceId":"7e8ce557c902d3f3"},{"name":"build-module-js","duration":18629,"timestamp":129754513707,"id":435,"parentId":410,"tags":{"name":"D:\\dongyun-projects\\two\\node_modules\\next\\dist\\shared\\lib\\page-path\\normalize-page-path.js","layer":"pages-dir-node"},"startTime":1757909249973,"traceId":"7e8ce557c902d3f3"},{"name":"build-module-js","duration":110785,"timestamp":129754460530,"id":431,"parentId":365,"tags":{"name":"D:\\dongyun-projects\\two\\node_modules\\next\\dist\\compiled\\@opentelemetry\\api\\index.js","layer":"pages-dir-node"},"startTime":1757909249920,"traceId":"7e8ce557c902d3f3"},{"name":"build-module-js","duration":49753,"timestamp":129754524713,"id":437,"parentId":421,"tags":{"name":"D:\\dongyun-projects\\two\\node_modules\\next\\dist\\client\\add-locale.js","layer":"pages-dir-node"},"startTime":1757909249984,"traceId":"7e8ce557c902d3f3"},{"name":"build-module-js","duration":50976,"timestamp":129754524900,"id":439,"parentId":421,"tags":{"name":"D:\\dongyun-projects\\two\\node_modules\\next\\dist\\client\\get-domain-locale.js","layer":"pages-dir-node"},"startTime":1757909249984,"traceId":"7e8ce557c902d3f3"},{"name":"build-module-js","duration":54202,"timestamp":129754524479,"id":436,"parentId":421,"tags":{"name":"D:\\dongyun-projects\\two\\node_modules\\next\\dist\\client\\resolve-href.js","layer":"pages-dir-node"},"startTime":1757909249984,"traceId":"7e8ce557c902d3f3"},{"name":"build-module-js","duration":57775,"timestamp":129754524974,"id":440,"parentId":421,"tags":{"name":"D:\\dongyun-projects\\two\\node_modules\\next\\dist\\client\\add-base-path.js","layer":"pages-dir-node"},"startTime":1757909249984,"traceId":"7e8ce557c902d3f3"},{"name":"build-module-js","duration":59640,"timestamp":129754525045,"id":441,"parentId":421,"tags":{"name":"D:\\dongyun-projects\\two\\node_modules\\next\\dist\\client\\use-merged-ref.js","layer":"pages-dir-node"},"startTime":1757909249985,"traceId":"7e8ce557c902d3f3"},{"name":"build-module-js","duration":72301,"timestamp":129754524819,"id":438,"parentId":421,"tags":{"name":"D:\\dongyun-projects\\two\\node_modules\\next\\dist\\client\\use-intersection.js","layer":"pages-dir-node"},"startTime":1757909249984,"traceId":"7e8ce557c902d3f3"},{"name":"build-module-js","duration":72842,"timestamp":129754525153,"id":442,"parentId":421,"tags":{"name":"D:\\dongyun-projects\\two\\node_modules\\next\\dist\\shared\\lib\\utils\\error-once.js","layer":"pages-dir-node"},"startTime":1757909249985,"traceId":"7e8ce557c902d3f3"},{"name":"build-module-js","duration":73664,"timestamp":129754525265,"id":443,"parentId":421,"tags":{"name":"D:\\dongyun-projects\\two\\node_modules\\next\\dist\\shared\\lib\\router\\utils\\is-local-url.js","layer":"pages-dir-node"},"startTime":1757909249985,"traceId":"7e8ce557c902d3f3"},{"name":"build-module-js","duration":75581,"timestamp":129754525376,"id":444,"parentId":421,"tags":{"name":"D:\\dongyun-projects\\two\\node_modules\\next\\dist\\shared\\lib\\router\\utils\\format-url.js","layer":"pages-dir-node"},"startTime":1757909249985,"traceId":"7e8ce557c902d3f3"},{"name":"build-module-js","duration":119769,"timestamp":129754483620,"id":432,"parentId":374,"tags":{"name":"D:\\dongyun-projects\\two\\node_modules\\next\\dist\\compiled\\fresh\\index.js","layer":"pages-dir-node"},"startTime":1757909249943,"traceId":"7e8ce557c902d3f3"},{"name":"build-module-js","duration":33113,"timestamp":129754586052,"id":446,"parentId":424,"tags":{"name":"D:\\dongyun-projects\\two\\node_modules\\next\\dist\\shared\\lib\\page-path\\normalize-path-sep.js","layer":"pages-dir-node"},"startTime":1757909250046,"traceId":"7e8ce557c902d3f3"},{"name":"build-module-js","duration":34020,"timestamp":129754586323,"id":447,"parentId":424,"tags":{"name":"D:\\dongyun-projects\\two\\node_modules\\next\\dist\\shared\\lib\\router\\utils\\index.js","layer":"pages-dir-node"},"startTime":1757909250046,"traceId":"7e8ce557c902d3f3"},{"name":"build-module","duration":329,"timestamp":129754628953,"id":449,"parentId":435,"tags":{"name":"path","layer":null},"startTime":1757909250088,"traceId":"7e8ce557c902d3f3"},{"name":"build-module-js","duration":377400,"timestamp":129754458742,"id":426,"parentId":391,"tags":{"name":"__barrel_optimize__?names=CheckCircle,Headphones,MessageSquare,UserCheck!=!D:\\dongyun-projects\\two\\node_modules\\lucide-react\\dist\\cjs\\lucide-react.js","layer":"pages-dir-node"},"startTime":1757909249918,"traceId":"7e8ce557c902d3f3"},{"name":"build-module-js","duration":411814,"timestamp":129754459494,"id":428,"parentId":393,"tags":{"name":"__barrel_optimize__?names=ArrowRight,MessageCircle,Play,Zap!=!D:\\dongyun-projects\\two\\node_modules\\lucide-react\\dist\\cjs\\lucide-react.js","layer":"pages-dir-node"},"startTime":1757909249919,"traceId":"7e8ce557c902d3f3"},{"name":"build-module-js","duration":249314,"timestamp":129754629351,"id":450,"parentId":437,"tags":{"name":"D:\\dongyun-projects\\two\\node_modules\\next\\dist\\client\\normalize-trailing-slash.js","layer":"pages-dir-node"},"startTime":1757909250089,"traceId":"7e8ce557c902d3f3"},{"name":"build-module-js","duration":249882,"timestamp":129754629650,"id":451,"parentId":435,"tags":{"name":"D:\\dongyun-projects\\two\\node_modules\\next\\dist\\shared\\lib\\page-path\\ensure-leading-slash.js","layer":"pages-dir-node"},"startTime":1757909250089,"traceId":"7e8ce557c902d3f3"},{"name":"build-module-js","duration":265601,"timestamp":129754629803,"id":452,"parentId":436,"tags":{"name":"D:\\dongyun-projects\\two\\node_modules\\next\\dist\\shared\\lib\\router\\utils\\querystring.js","layer":"pages-dir-node"},"startTime":1757909250089,"traceId":"7e8ce557c902d3f3"},{"name":"build-module-js","duration":266631,"timestamp":129754629943,"id":453,"parentId":436,"tags":{"name":"D:\\dongyun-projects\\two\\node_modules\\next\\dist\\shared\\lib\\router\\utils\\omit.js","layer":"pages-dir-node"},"startTime":1757909250089,"traceId":"7e8ce557c902d3f3"},{"name":"build-module-js","duration":439007,"timestamp":129754459365,"id":427,"parentId":394,"tags":{"name":"__barrel_optimize__?names=Box,Globe,Headphones,ShieldCheck,UserCheck!=!D:\\dongyun-projects\\two\\node_modules\\lucide-react\\dist\\cjs\\lucide-react.js","layer":"pages-dir-node"},"startTime":1757909249919,"traceId":"7e8ce557c902d3f3"},{"name":"build-module-js","duration":270204,"timestamp":129754630073,"id":454,"parentId":436,"tags":{"name":"D:\\dongyun-projects\\two\\node_modules\\next\\dist\\shared\\lib\\router\\utils\\interpolate-as.js","layer":"pages-dir-node"},"startTime":1757909250090,"traceId":"7e8ce557c902d3f3"},{"name":"build-module-js","duration":271336,"timestamp":129754630227,"id":455,"parentId":440,"tags":{"name":"D:\\dongyun-projects\\two\\node_modules\\next\\dist\\shared\\lib\\router\\utils\\add-path-prefix.js","layer":"pages-dir-node"},"startTime":1757909250090,"traceId":"7e8ce557c902d3f3"},{"name":"build-module-js","duration":270393,"timestamp":129754633197,"id":457,"parentId":438,"tags":{"name":"D:\\dongyun-projects\\two\\node_modules\\next\\dist\\client\\request-idle-callback.js","layer":"pages-dir-node"},"startTime":1757909250093,"traceId":"7e8ce557c902d3f3"},{"name":"build-module-js","duration":271647,"timestamp":129754633443,"id":458,"parentId":443,"tags":{"name":"D:\\dongyun-projects\\two\\node_modules\\next\\dist\\client\\has-base-path.js","layer":"pages-dir-node"},"startTime":1757909250093,"traceId":"7e8ce557c902d3f3"},{"name":"build-module-js","duration":446678,"timestamp":129754459617,"id":429,"parentId":392,"tags":{"name":"__barrel_optimize__?names=BarChart,CheckCircle,Clock,Globe,Repeat,Shield,Users,Zap!=!D:\\dongyun-projects\\two\\node_modules\\lucide-react\\dist\\cjs\\lucide-react.js","layer":"pages-dir-node"},"startTime":1757909249919,"traceId":"7e8ce557c902d3f3"},{"name":"build-module-js","duration":278806,"timestamp":129754633597,"id":459,"parentId":447,"tags":{"name":"D:\\dongyun-projects\\two\\node_modules\\next\\dist\\shared\\lib\\router\\utils\\sorted-routes.js","layer":"pages-dir-node"},"startTime":1757909250093,"traceId":"7e8ce557c902d3f3"},{"name":"build-module-js","duration":391851,"timestamp":129754525476,"id":445,"parentId":396,"tags":{"name":"D:\\dongyun-projects\\two\\node_modules\\next\\dist\\server\\web\\spec-extension\\adapters\\next-request.js","layer":"pages-dir-node"},"startTime":1757909249985,"traceId":"7e8ce557c902d3f3"},{"name":"build-module-js","duration":289340,"timestamp":129754633753,"id":460,"parentId":447,"tags":{"name":"D:\\dongyun-projects\\two\\node_modules\\next\\dist\\shared\\lib\\router\\utils\\is-dynamic.js","layer":"pages-dir-node"},"startTime":1757909250093,"traceId":"7e8ce557c902d3f3"},{"name":"build-module-js","duration":316517,"timestamp":129754621562,"id":448,"parentId":421,"tags":{"name":"D:\\dongyun-projects\\two\\node_modules\\next\\dist\\server\\route-modules\\pages\\vendored\\contexts\\router-context.js","layer":"pages-dir-node"},"startTime":1757909250081,"traceId":"7e8ce557c902d3f3"},{"name":"build-module-js","duration":8000,"timestamp":129754935315,"id":461,"parentId":450,"tags":{"name":"D:\\dongyun-projects\\two\\node_modules\\next\\dist\\shared\\lib\\router\\utils\\remove-trailing-slash.js","layer":"pages-dir-node"},"startTime":1757909250395,"traceId":"7e8ce557c902d3f3"},{"name":"build-module-js","duration":12964,"timestamp":129754935578,"id":462,"parentId":450,"tags":{"name":"D:\\dongyun-projects\\two\\node_modules\\next\\dist\\shared\\lib\\router\\utils\\parse-path.js","layer":"pages-dir-node"},"startTime":1757909250395,"traceId":"7e8ce557c902d3f3"},{"name":"build-module-js","duration":10827,"timestamp":129754938593,"id":463,"parentId":458,"tags":{"name":"D:\\dongyun-projects\\two\\node_modules\\next\\dist\\shared\\lib\\router\\utils\\path-has-prefix.js","layer":"pages-dir-node"},"startTime":1757909250398,"traceId":"7e8ce557c902d3f3"},{"name":"build-module-js","duration":13166,"timestamp":129754938830,"id":464,"parentId":454,"tags":{"name":"D:\\dongyun-projects\\two\\node_modules\\next\\dist\\shared\\lib\\router\\utils\\route-matcher.js","layer":"pages-dir-node"},"startTime":1757909250398,"traceId":"7e8ce557c902d3f3"},{"name":"build-module-js","duration":15032,"timestamp":129754939145,"id":466,"parentId":460,"tags":{"name":"D:\\dongyun-projects\\two\\node_modules\\next\\dist\\shared\\lib\\router\\utils\\interception-routes.js","layer":"pages-dir-node"},"startTime":1757909250399,"traceId":"7e8ce557c902d3f3"},{"name":"build-module-js","duration":21008,"timestamp":129754938997,"id":465,"parentId":454,"tags":{"name":"D:\\dongyun-projects\\two\\node_modules\\next\\dist\\shared\\lib\\router\\utils\\route-regex.js","layer":"pages-dir-node"},"startTime":1757909250399,"traceId":"7e8ce557c902d3f3"},{"name":"build-module-js","duration":3700,"timestamp":129754973617,"id":469,"parentId":465,"tags":{"name":"D:\\dongyun-projects\\two\\node_modules\\next\\dist\\shared\\lib\\escape-regexp.js","layer":"pages-dir-node"},"startTime":1757909250433,"traceId":"7e8ce557c902d3f3"},{"name":"build-module-js","duration":20449,"timestamp":129754961145,"id":467,"parentId":445,"tags":{"name":"D:\\dongyun-projects\\two\\node_modules\\next\\dist\\server\\web\\utils.js","layer":"pages-dir-node"},"startTime":1757909250421,"traceId":"7e8ce557c902d3f3"},{"name":"build-module-js","duration":23601,"timestamp":129754961508,"id":468,"parentId":445,"tags":{"name":"D:\\dongyun-projects\\two\\node_modules\\next\\dist\\server\\web\\spec-extension\\request.js","layer":"pages-dir-node"},"startTime":1757909250421,"traceId":"7e8ce557c902d3f3"},{"name":"build-module-js","duration":43216,"timestamp":129754973947,"id":470,"parentId":466,"tags":{"name":"D:\\dongyun-projects\\two\\node_modules\\next\\dist\\shared\\lib\\router\\utils\\app-paths.js","layer":"pages-dir-node"},"startTime":1757909250433,"traceId":"7e8ce557c902d3f3"},{"name":"build-module-js","duration":516024,"timestamp":129754974156,"id":471,"parentId":445,"tags":{"name":"D:\\dongyun-projects\\two\\node_modules\\next\\dist\\server\\base-http\\helpers.js","layer":"pages-dir-node"},"startTime":1757909250434,"traceId":"7e8ce557c902d3f3"},{"name":"build-module-js","duration":1031165,"timestamp":129754460286,"id":430,"parentId":409,"tags":{"name":"__barrel_optimize__?names=Menu!=!D:\\dongyun-projects\\two\\node_modules\\lucide-react\\dist\\cjs\\lucide-react.js","layer":"pages-dir-node"},"startTime":1757909249920,"traceId":"7e8ce557c902d3f3"},{"name":"build-module-js","duration":10513,"timestamp":129755501589,"id":472,"parentId":470,"tags":{"name":"D:\\dongyun-projects\\two\\node_modules\\next\\dist\\shared\\lib\\segment.js","layer":"pages-dir-node"},"startTime":1757909250961,"traceId":"7e8ce557c902d3f3"},{"name":"add-entry","duration":1550101,"timestamp":129753963388,"id":347,"parentId":344,"tags":{"request":"private-next-pages/_document"},"startTime":1757909249423,"traceId":"7e8ce557c902d3f3"},{"name":"build-module-js","duration":18156,"timestamp":129755502537,"id":473,"parentId":468,"tags":{"name":"D:\\dongyun-projects\\two\\node_modules\\next\\dist\\server\\web\\next-url.js","layer":"pages-dir-node"},"startTime":1757909250962,"traceId":"7e8ce557c902d3f3"},{"name":"build-module-js","duration":22356,"timestamp":129755502749,"id":474,"parentId":468,"tags":{"name":"D:\\dongyun-projects\\two\\node_modules\\next\\dist\\server\\web\\error.js","layer":"pages-dir-node"},"startTime":1757909250962,"traceId":"7e8ce557c902d3f3"},{"name":"build-module-js","duration":22442,"timestamp":129755503564,"id":475,"parentId":468,"tags":{"name":"D:\\dongyun-projects\\two\\node_modules\\next\\dist\\server\\web\\spec-extension\\cookies.js","layer":"pages-dir-node"},"startTime":1757909250963,"traceId":"7e8ce557c902d3f3"},{"name":"build-module-js","duration":6990,"timestamp":129755527667,"id":476,"parentId":473,"tags":{"name":"D:\\dongyun-projects\\two\\node_modules\\next\\dist\\shared\\lib\\router\\utils\\format-next-pathname-info.js","layer":"pages-dir-node"},"startTime":1757909250987,"traceId":"7e8ce557c902d3f3"},{"name":"build-module-js","duration":9105,"timestamp":129755527952,"id":477,"parentId":473,"tags":{"name":"D:\\dongyun-projects\\two\\node_modules\\next\\dist\\shared\\lib\\router\\utils\\get-next-pathname-info.js","layer":"pages-dir-node"},"startTime":1757909250987,"traceId":"7e8ce557c902d3f3"},{"name":"build-module-js","duration":17193,"timestamp":129755531751,"id":479,"parentId":473,"tags":{"name":"D:\\dongyun-projects\\two\\node_modules\\next\\dist\\shared\\lib\\get-hostname.js","layer":"pages-dir-node"},"startTime":1757909250991,"traceId":"7e8ce557c902d3f3"},{"name":"build-module-js","duration":19642,"timestamp":129755531487,"id":478,"parentId":473,"tags":{"name":"D:\\dongyun-projects\\two\\node_modules\\next\\dist\\shared\\lib\\i18n\\detect-domain-locale.js","layer":"pages-dir-node"},"startTime":1757909250991,"traceId":"7e8ce557c902d3f3"},{"name":"build-module-js","duration":13444,"timestamp":129755552341,"id":481,"parentId":476,"tags":{"name":"D:\\dongyun-projects\\two\\node_modules\\next\\dist\\shared\\lib\\router\\utils\\add-path-suffix.js","layer":"pages-dir-node"},"startTime":1757909251012,"traceId":"7e8ce557c902d3f3"},{"name":"build-module-js","duration":14159,"timestamp":129755552526,"id":482,"parentId":476,"tags":{"name":"D:\\dongyun-projects\\two\\node_modules\\next\\dist\\shared\\lib\\router\\utils\\add-locale.js","layer":"pages-dir-node"},"startTime":1757909251012,"traceId":"7e8ce557c902d3f3"},{"name":"build-module-js","duration":15754,"timestamp":129755552082,"id":480,"parentId":477,"tags":{"name":"D:\\dongyun-projects\\two\\node_modules\\next\\dist\\shared\\lib\\i18n\\normalize-locale-path.js","layer":"pages-dir-node"},"startTime":1757909251012,"traceId":"7e8ce557c902d3f3"},{"name":"build-module-js","duration":16075,"timestamp":129755552678,"id":483,"parentId":477,"tags":{"name":"D:\\dongyun-projects\\two\\node_modules\\next\\dist\\shared\\lib\\router\\utils\\remove-path-prefix.js","layer":"pages-dir-node"},"startTime":1757909251012,"traceId":"7e8ce557c902d3f3"},{"name":"build-module-js","duration":13998,"timestamp":129755576244,"id":484,"parentId":475,"tags":{"name":"D:\\dongyun-projects\\two\\node_modules\\next\\dist\\compiled\\@edge-runtime\\cookies\\index.js","layer":"pages-dir-node"},"startTime":1757909251036,"traceId":"7e8ce557c902d3f3"},{"name":"add-entry","duration":1627473,"timestamp":129753963353,"id":346,"parentId":344,"tags":{"request":"next-route-loader?kind=PAGES&page=%2F_error&preferredRegion=&absolutePagePath=private-next-pages%2F_error&absoluteAppPath=private-next-pages%2F_app&absoluteDocumentPath=private-next-pages%2F_document&middlewareConfigBase64=e30%3D!"},"startTime":1757909249423,"traceId":"7e8ce557c902d3f3"},{"name":"build-module-js","duration":1765631,"timestamp":129754630533,"id":456,"parentId":343,"tags":{"name":"D:\\dongyun-projects\\two\\node_modules\\lucide-react\\dist\\cjs\\lucide-react.js","layer":"pages-dir-node"},"startTime":1757909250090,"traceId":"7e8ce557c902d3f3"},{"name":"add-entry","duration":2437204,"timestamp":129753963411,"id":348,"parentId":344,"tags":{"request":"next-route-loader?kind=PAGES&page=%2F&preferredRegion=&absolutePagePath=.%2Fpages%5Cindex.tsx&absoluteAppPath=private-next-pages%2F_app&absoluteDocumentPath=private-next-pages%2F_document&middlewareConfigBase64=e30%3D!"},"startTime":1757909249423,"traceId":"7e8ce557c902d3f3"},{"name":"make","duration":2456927,"timestamp":129753943775,"id":344,"parentId":343,"tags":{},"startTime":1757909249403,"traceId":"7e8ce557c902d3f3"},{"name":"chunk-graph","duration":9167,"timestamp":129756409728,"id":486,"parentId":485,"tags":{},"startTime":1757909251869,"traceId":"7e8ce557c902d3f3"},{"name":"optimize-modules","duration":47,"timestamp":129756419038,"id":488,"parentId":485,"tags":{},"startTime":1757909251879,"traceId":"7e8ce557c902d3f3"},{"name":"optimize-chunks","duration":20204,"timestamp":129756419364,"id":489,"parentId":485,"tags":{},"startTime":1757909251879,"traceId":"7e8ce557c902d3f3"},{"name":"optimize-tree","duration":55,"timestamp":129756439756,"id":490,"parentId":485,"tags":{},"startTime":1757909251899,"traceId":"7e8ce557c902d3f3"},{"name":"optimize-chunk-modules","duration":42,"timestamp":129756440070,"id":491,"parentId":485,"tags":{},"startTime":1757909251900,"traceId":"7e8ce557c902d3f3"},{"name":"optimize","duration":22175,"timestamp":129756418995,"id":487,"parentId":485,"tags":{},"startTime":1757909251879,"traceId":"7e8ce557c902d3f3"},{"name":"module-hash","duration":11369,"timestamp":129756451366,"id":492,"parentId":485,"tags":{},"startTime":1757909251911,"traceId":"7e8ce557c902d3f3"},{"name":"code-generation","duration":97299,"timestamp":129756462813,"id":493,"parentId":485,"tags":{},"startTime":1757909251922,"traceId":"7e8ce557c902d3f3"},{"name":"hash","duration":6847,"timestamp":129756566061,"id":494,"parentId":485,"tags":{},"startTime":1757909252026,"traceId":"7e8ce557c902d3f3"},{"name":"code-generation-jobs","duration":965,"timestamp":129756572904,"id":495,"parentId":485,"tags":{},"startTime":1757909252032,"traceId":"7e8ce557c902d3f3"},{"name":"module-assets","duration":164,"timestamp":129756573820,"id":496,"parentId":485,"tags":{},"startTime":1757909252033,"traceId":"7e8ce557c902d3f3"},{"name":"create-chunk-assets","duration":422661,"timestamp":129756574005,"id":497,"parentId":485,"tags":{},"startTime":1757909252034,"traceId":"7e8ce557c902d3f3"},{"name":"seal","duration":589094,"timestamp":129756408747,"id":485,"parentId":343,"tags":{},"startTime":1757909251868,"traceId":"7e8ce557c902d3f3"},{"name":"webpack-compilation","duration":3062889,"timestamp":129753935015,"id":343,"parentId":120,"tags":{"name":"server"},"startTime":1757909249395,"traceId":"7e8ce557c902d3f3"},{"name":"emit","duration":43944,"timestamp":129756998010,"id":498,"parentId":120,"tags":{},"startTime":1757909252458,"traceId":"7e8ce557c902d3f3"},{"name":"compile-path","duration":7157557,"timestamp":129749888429,"id":119,"tags":{"trigger":"/"},"startTime":1757909245348,"traceId":"7e8ce557c902d3f3"},{"name":"webpack-invalidated-server","duration":7158631,"timestamp":129749888595,"id":120,"parentId":3,"tags":{"trigger":"manual"},"startTime":1757909245348,"traceId":"7e8ce557c902d3f3"}] -[{"name":"ensure-page","duration":1468,"timestamp":129757060944,"id":499,"parentId":3,"tags":{"inputPage":"/"},"startTime":1757909252520,"traceId":"7e8ce557c902d3f3"},{"name":"handle-request","duration":8010348,"timestamp":129749854746,"id":116,"tags":{"url":"/"},"startTime":1757909245314,"traceId":"7e8ce557c902d3f3"},{"name":"memory-usage","duration":5,"timestamp":129757865206,"id":500,"parentId":116,"tags":{"url":"/","memory.rss":"565186560","memory.heapUsed":"294350904","memory.heapTotal":"328839168"},"startTime":1757909253325,"traceId":"7e8ce557c902d3f3"},{"name":"ensure-page","duration":12757,"timestamp":129757954735,"id":501,"parentId":3,"tags":{"inputPage":"/"},"startTime":1757909253414,"traceId":"7e8ce557c902d3f3"},{"name":"client-success","duration":36,"timestamp":129758900385,"id":502,"parentId":3,"tags":{},"startTime":1757909254360,"traceId":"7e8ce557c902d3f3"},{"name":"navigation-to-hydration","duration":9704000,"timestamp":129749708567,"id":503,"parentId":3,"tags":{"pathname":"/","query":""},"startTime":1757909254872,"traceId":"7e8ce557c902d3f3"},{"name":"add-entry","duration":25527,"timestamp":129767369381,"id":510,"parentId":509,"tags":{"request":"D:\\dongyun-projects\\two\\node_modules\\next\\dist\\compiled\\@next\\react-refresh-utils\\dist\\runtime.js"},"startTime":1757909262829,"traceId":"7e8ce557c902d3f3"},{"name":"add-entry","duration":42834,"timestamp":129767369816,"id":514,"parentId":509,"tags":{"request":"next-client-pages-loader?absolutePagePath=private-next-pages%2F_error&page=%2F_error!"},"startTime":1757909262829,"traceId":"7e8ce557c902d3f3"},{"name":"add-entry","duration":63960,"timestamp":129767369716,"id":512,"parentId":509,"tags":{"request":"next-client-pages-loader?absolutePagePath=private-next-pages%2F_app&page=%2F_app!"},"startTime":1757909262829,"traceId":"7e8ce557c902d3f3"},{"name":"add-entry","duration":70818,"timestamp":129767369772,"id":513,"parentId":509,"tags":{"request":"D:\\dongyun-projects\\two\\node_modules\\next\\dist\\client\\router.js"},"startTime":1757909262829,"traceId":"7e8ce557c902d3f3"},{"name":"add-entry","duration":74516,"timestamp":129767369999,"id":515,"parentId":509,"tags":{"request":"next-client-pages-loader?absolutePagePath=D%3A%5Cdongyun-projects%5Ctwo%5Cpages%5Cindex.tsx&page=%2F!"},"startTime":1757909262830,"traceId":"7e8ce557c902d3f3"},{"name":"add-entry","duration":95279,"timestamp":129767369659,"id":511,"parentId":509,"tags":{"request":"./node_modules/next/dist/client/next-dev.js"},"startTime":1757909262829,"traceId":"7e8ce557c902d3f3"},{"name":"add-entry","duration":150490,"timestamp":129767370072,"id":516,"parentId":509,"tags":{"request":"next-client-pages-loader?absolutePagePath=D%3A%5Cdongyun-projects%5Ctwo%5Cpages%5Cnews.tsx&page=%2Fnews!"},"startTime":1757909262830,"traceId":"7e8ce557c902d3f3"},{"name":"make","duration":154683,"timestamp":129767366327,"id":509,"parentId":508,"tags":{},"startTime":1757909262826,"traceId":"7e8ce557c902d3f3"},{"name":"chunk-graph","duration":9330,"timestamp":129767525282,"id":518,"parentId":517,"tags":{},"startTime":1757909262985,"traceId":"7e8ce557c902d3f3"},{"name":"optimize-modules","duration":22,"timestamp":129767534695,"id":520,"parentId":517,"tags":{},"startTime":1757909262994,"traceId":"7e8ce557c902d3f3"},{"name":"optimize-chunks","duration":95,"timestamp":129767534883,"id":521,"parentId":517,"tags":{},"startTime":1757909262994,"traceId":"7e8ce557c902d3f3"},{"name":"optimize-tree","duration":26,"timestamp":129767535032,"id":522,"parentId":517,"tags":{},"startTime":1757909262995,"traceId":"7e8ce557c902d3f3"},{"name":"optimize-chunk-modules","duration":15,"timestamp":129767535111,"id":523,"parentId":517,"tags":{},"startTime":1757909262995,"traceId":"7e8ce557c902d3f3"},{"name":"optimize","duration":1407,"timestamp":129767534668,"id":519,"parentId":517,"tags":{},"startTime":1757909262994,"traceId":"7e8ce557c902d3f3"},{"name":"module-hash","duration":1645,"timestamp":129767539807,"id":524,"parentId":517,"tags":{},"startTime":1757909262999,"traceId":"7e8ce557c902d3f3"},{"name":"code-generation","duration":5188,"timestamp":129767541606,"id":525,"parentId":517,"tags":{},"startTime":1757909263001,"traceId":"7e8ce557c902d3f3"},{"name":"hash","duration":18112,"timestamp":129767555997,"id":526,"parentId":517,"tags":{},"startTime":1757909263016,"traceId":"7e8ce557c902d3f3"},{"name":"code-generation-jobs","duration":738,"timestamp":129767574104,"id":527,"parentId":517,"tags":{},"startTime":1757909263034,"traceId":"7e8ce557c902d3f3"},{"name":"module-assets","duration":303,"timestamp":129767574752,"id":528,"parentId":517,"tags":{},"startTime":1757909263034,"traceId":"7e8ce557c902d3f3"},{"name":"create-chunk-assets","duration":14542,"timestamp":129767575082,"id":529,"parentId":517,"tags":{},"startTime":1757909263035,"traceId":"7e8ce557c902d3f3"},{"name":"NextJsBuildManifest-generateClientManifest","duration":1669,"timestamp":129767602652,"id":531,"parentId":508,"tags":{},"startTime":1757909263062,"traceId":"7e8ce557c902d3f3"},{"name":"NextJsBuildManifest-createassets","duration":3570,"timestamp":129767600807,"id":530,"parentId":508,"tags":{},"startTime":1757909263060,"traceId":"7e8ce557c902d3f3"},{"name":"seal","duration":84286,"timestamp":129767523476,"id":517,"parentId":508,"tags":{},"startTime":1757909262983,"traceId":"7e8ce557c902d3f3"},{"name":"webpack-compilation","duration":244079,"timestamp":129767363787,"id":508,"parentId":505,"tags":{"name":"client"},"startTime":1757909262823,"traceId":"7e8ce557c902d3f3"},{"name":"emit","duration":25287,"timestamp":129767608122,"id":532,"parentId":505,"tags":{},"startTime":1757909263068,"traceId":"7e8ce557c902d3f3"},{"name":"webpack-invalidated-client","duration":280585,"timestamp":129767356976,"id":505,"parentId":3,"tags":{"trigger":"manual"},"startTime":1757909262816,"traceId":"7e8ce557c902d3f3"},{"name":"client-success","duration":33,"timestamp":129767662220,"id":535,"parentId":3,"tags":{},"startTime":1757909263122,"traceId":"7e8ce557c902d3f3"},{"name":"add-entry","duration":62449,"timestamp":129767673059,"id":536,"parentId":534,"tags":{"request":"private-next-pages/_app"},"startTime":1757909263133,"traceId":"7e8ce557c902d3f3"},{"name":"client-hmr-latency","duration":401000,"timestamp":129767358681,"id":541,"parentId":3,"tags":{"updatedModules":[],"page":"/","isPageHidden":false,"clientId":1757909254293},"startTime":1757909263225,"traceId":"7e8ce557c902d3f3"},{"name":"add-entry","duration":123105,"timestamp":129767673270,"id":538,"parentId":534,"tags":{"request":"private-next-pages/_document"},"startTime":1757909263133,"traceId":"7e8ce557c902d3f3"},{"name":"build-module","duration":115596,"timestamp":129767800558,"id":542,"parentId":540,"tags":{"name":"D:\\dongyun-projects\\two\\node_modules\\next\\dist\\build\\webpack\\loaders\\next-route-loader\\index.js?kind=PAGES&page=%2Fnews&preferredRegion=&absolutePagePath=.%2Fpages%5Cnews.tsx&absoluteAppPath=private-next-pages%2F_app&absoluteDocumentPath=private-next-pages%2F_document&middlewareConfigBase64=e30%3D!","layer":"pages-dir-node"},"startTime":1757909263260,"traceId":"7e8ce557c902d3f3"},{"name":"add-entry","duration":297187,"timestamp":129767673234,"id":537,"parentId":534,"tags":{"request":"next-route-loader?kind=PAGES&page=%2F_error&preferredRegion=&absolutePagePath=private-next-pages%2F_error&absoluteAppPath=private-next-pages%2F_app&absoluteDocumentPath=private-next-pages%2F_document&middlewareConfigBase64=e30%3D!"},"startTime":1757909263133,"traceId":"7e8ce557c902d3f3"},{"name":"add-entry","duration":297239,"timestamp":129767673298,"id":539,"parentId":534,"tags":{"request":"next-route-loader?kind=PAGES&page=%2F&preferredRegion=&absolutePagePath=.%2Fpages%5Cindex.tsx&absoluteAppPath=private-next-pages%2F_app&absoluteDocumentPath=private-next-pages%2F_document&middlewareConfigBase64=e30%3D!"},"startTime":1757909263133,"traceId":"7e8ce557c902d3f3"},{"name":"build-module-tsx","duration":10861,"timestamp":129767974699,"id":543,"parentId":542,"tags":{"name":"D:\\dongyun-projects\\two\\pages\\news.tsx","layer":"pages-dir-node"},"startTime":1757909263434,"traceId":"7e8ce557c902d3f3"},{"name":"build-module-tsx","duration":38716,"timestamp":129768060147,"id":544,"parentId":543,"tags":{"name":"D:\\dongyun-projects\\two\\components\\NewsList.tsx","layer":"pages-dir-node"},"startTime":1757909263520,"traceId":"7e8ce557c902d3f3"},{"name":"build-module-js","duration":48057,"timestamp":129768062909,"id":545,"parentId":543,"tags":{"name":"__barrel_optimize__?names=Calendar,Newspaper,TrendingUp!=!D:\\dongyun-projects\\two\\node_modules\\lucide-react\\dist\\cjs\\lucide-react.js","layer":"pages-dir-node"},"startTime":1757909263522,"traceId":"7e8ce557c902d3f3"},{"name":"build-module-js","duration":7179,"timestamp":129768104358,"id":546,"parentId":544,"tags":{"name":"__barrel_optimize__?names=ArrowRight,Calendar,Clock,Filter,Search,Tag!=!D:\\dongyun-projects\\two\\node_modules\\lucide-react\\dist\\cjs\\lucide-react.js","layer":"pages-dir-node"},"startTime":1757909263564,"traceId":"7e8ce557c902d3f3"},{"name":"build-module-ts","duration":12800,"timestamp":129768104615,"id":547,"parentId":543,"tags":{"name":"D:\\dongyun-projects\\two\\lib\\content.ts","layer":"pages-dir-node"},"startTime":1757909263564,"traceId":"7e8ce557c902d3f3"},{"name":"build-module","duration":91,"timestamp":129768133238,"id":548,"parentId":547,"tags":{"name":"fs","layer":null},"startTime":1757909263593,"traceId":"7e8ce557c902d3f3"},{"name":"build-module","duration":52,"timestamp":129768388087,"id":549,"parentId":547,"tags":{"name":"gray-matter","layer":null},"startTime":1757909263848,"traceId":"7e8ce557c902d3f3"},{"name":"add-entry","duration":714887,"timestamp":129767673319,"id":540,"parentId":534,"tags":{"request":"next-route-loader?kind=PAGES&page=%2Fnews&preferredRegion=&absolutePagePath=.%2Fpages%5Cnews.tsx&absoluteAppPath=private-next-pages%2F_app&absoluteDocumentPath=private-next-pages%2F_document&middlewareConfigBase64=e30%3D!"},"startTime":1757909263133,"traceId":"7e8ce557c902d3f3"},{"name":"make","duration":735993,"timestamp":129767652279,"id":534,"parentId":533,"tags":{},"startTime":1757909263112,"traceId":"7e8ce557c902d3f3"},{"name":"chunk-graph","duration":8238,"timestamp":129768391142,"id":551,"parentId":550,"tags":{},"startTime":1757909263851,"traceId":"7e8ce557c902d3f3"},{"name":"optimize-modules","duration":80,"timestamp":129768399625,"id":553,"parentId":550,"tags":{},"startTime":1757909263859,"traceId":"7e8ce557c902d3f3"},{"name":"optimize-chunks","duration":6483,"timestamp":129768400304,"id":554,"parentId":550,"tags":{},"startTime":1757909263860,"traceId":"7e8ce557c902d3f3"},{"name":"optimize-tree","duration":44,"timestamp":129768406881,"id":555,"parentId":550,"tags":{},"startTime":1757909263866,"traceId":"7e8ce557c902d3f3"},{"name":"optimize-chunk-modules","duration":24,"timestamp":129768406988,"id":556,"parentId":550,"tags":{},"startTime":1757909263867,"traceId":"7e8ce557c902d3f3"},{"name":"optimize","duration":8314,"timestamp":129768399540,"id":552,"parentId":550,"tags":{},"startTime":1757909263859,"traceId":"7e8ce557c902d3f3"},{"name":"module-hash","duration":3677,"timestamp":129768410442,"id":557,"parentId":550,"tags":{},"startTime":1757909263870,"traceId":"7e8ce557c902d3f3"},{"name":"code-generation","duration":15523,"timestamp":129768414253,"id":558,"parentId":550,"tags":{},"startTime":1757909263874,"traceId":"7e8ce557c902d3f3"},{"name":"hash","duration":5734,"timestamp":129768435064,"id":559,"parentId":550,"tags":{},"startTime":1757909263895,"traceId":"7e8ce557c902d3f3"},{"name":"code-generation-jobs","duration":418,"timestamp":129768440792,"id":560,"parentId":550,"tags":{},"startTime":1757909263900,"traceId":"7e8ce557c902d3f3"},{"name":"module-assets","duration":234,"timestamp":129768441132,"id":561,"parentId":550,"tags":{},"startTime":1757909263901,"traceId":"7e8ce557c902d3f3"},{"name":"create-chunk-assets","duration":27762,"timestamp":129768441397,"id":562,"parentId":550,"tags":{},"startTime":1757909263901,"traceId":"7e8ce557c902d3f3"},{"name":"seal","duration":81624,"timestamp":129768389665,"id":550,"parentId":533,"tags":{},"startTime":1757909263849,"traceId":"7e8ce557c902d3f3"},{"name":"webpack-compilation","duration":820625,"timestamp":129767650819,"id":533,"parentId":507,"tags":{"name":"server"},"startTime":1757909263110,"traceId":"7e8ce557c902d3f3"},{"name":"emit","duration":21541,"timestamp":129768471531,"id":563,"parentId":507,"tags":{},"startTime":1757909263931,"traceId":"7e8ce557c902d3f3"},{"name":"compile-path","duration":1140193,"timestamp":129767357154,"id":506,"tags":{"trigger":"/news"},"startTime":1757909262817,"traceId":"7e8ce557c902d3f3"},{"name":"webpack-invalidated-server","duration":1140564,"timestamp":129767357474,"id":507,"parentId":3,"tags":{"trigger":"manual"},"startTime":1757909262817,"traceId":"7e8ce557c902d3f3"}] -[{"name":"ensure-page","duration":1150745,"timestamp":129767348541,"id":504,"parentId":3,"tags":{"inputPage":"/news"},"startTime":1757909262808,"traceId":"7e8ce557c902d3f3"},{"name":"ensure-page","duration":2072,"timestamp":129768562318,"id":564,"parentId":3,"tags":{"inputPage":"/_next/data/development/news.json"},"startTime":1757909264022,"traceId":"7e8ce557c902d3f3"},{"name":"ensure-page","duration":3569,"timestamp":129768574654,"id":566,"parentId":3,"tags":{"inputPage":"/news"},"startTime":1757909264034,"traceId":"7e8ce557c902d3f3"},{"name":"ensure-page","duration":1964,"timestamp":129768584299,"id":567,"parentId":3,"tags":{"inputPage":"/news"},"startTime":1757909264044,"traceId":"7e8ce557c902d3f3"},{"name":"handle-request","duration":849505,"timestamp":129768565772,"id":565,"tags":{"url":"/_next/data/development/news.json"},"startTime":1757909264025,"traceId":"7e8ce557c902d3f3"},{"name":"memory-usage","duration":5,"timestamp":129769415400,"id":568,"parentId":565,"tags":{"url":"/_next/data/development/news.json","memory.rss":"504197120","memory.heapUsed":"237223768","memory.heapTotal":"267673600"},"startTime":1757909264875,"traceId":"7e8ce557c902d3f3"},{"name":"add-entry","duration":40390,"timestamp":129917197465,"id":572,"parentId":571,"tags":{"request":"D:\\dongyun-projects\\two\\node_modules\\next\\dist\\compiled\\@next\\react-refresh-utils\\dist\\runtime.js"},"startTime":1757909412657,"traceId":"7e8ce557c902d3f3"},{"name":"add-entry","duration":68890,"timestamp":129917198784,"id":576,"parentId":571,"tags":{"request":"next-client-pages-loader?absolutePagePath=private-next-pages%2F_error&page=%2F_error!"},"startTime":1757909412659,"traceId":"7e8ce557c902d3f3"},{"name":"add-entry","duration":171181,"timestamp":129917198744,"id":575,"parentId":571,"tags":{"request":"D:\\dongyun-projects\\two\\node_modules\\next\\dist\\client\\router.js"},"startTime":1757909412659,"traceId":"7e8ce557c902d3f3"},{"name":"add-entry","duration":171190,"timestamp":129917198825,"id":577,"parentId":571,"tags":{"request":"next-client-pages-loader?absolutePagePath=D%3A%5Cdongyun-projects%5Ctwo%5Cpages%5Cindex.tsx&page=%2F!"},"startTime":1757909412659,"traceId":"7e8ce557c902d3f3"},{"name":"add-entry","duration":172611,"timestamp":129917198871,"id":578,"parentId":571,"tags":{"request":"next-client-pages-loader?absolutePagePath=D%3A%5Cdongyun-projects%5Ctwo%5Cpages%5Cnews.tsx&page=%2Fnews!"},"startTime":1757909412659,"traceId":"7e8ce557c902d3f3"},{"name":"add-entry","duration":173540,"timestamp":129917198663,"id":573,"parentId":571,"tags":{"request":"./node_modules/next/dist/client/next-dev.js"},"startTime":1757909412659,"traceId":"7e8ce557c902d3f3"},{"name":"postcss-process","duration":1429814,"timestamp":129918784897,"id":581,"parentId":580,"tags":{},"startTime":1757909414245,"traceId":"7e8ce557c902d3f3"},{"name":"postcss-loader","duration":2950204,"timestamp":129917269829,"id":580,"parentId":579,"tags":{},"startTime":1757909412730,"traceId":"7e8ce557c902d3f3"},{"name":"css-loader","duration":208568,"timestamp":129920220448,"id":582,"parentId":579,"tags":{"astUsed":"true"},"startTime":1757909415680,"traceId":"7e8ce557c902d3f3"},{"name":"build-module-css","duration":3200816,"timestamp":129917250633,"id":579,"parentId":570,"tags":{"name":"D:\\dongyun-projects\\two\\node_modules\\next\\dist\\build\\webpack\\loaders\\css-loader\\src\\index.js??ruleSet[1].rules[7].oneOf[13].use[1]!D:\\dongyun-projects\\two\\node_modules\\next\\dist\\build\\webpack\\loaders\\postcss-loader\\src\\index.js??ruleSet[1].rules[7].oneOf[13].use[2]!D:\\dongyun-projects\\two\\styles\\globals.css","layer":"pages-dir-browser"},"startTime":1757909412711,"traceId":"7e8ce557c902d3f3"},{"name":"add-entry","duration":3329803,"timestamp":129917198711,"id":574,"parentId":571,"tags":{"request":"next-client-pages-loader?absolutePagePath=private-next-pages%2F_app&page=%2F_app!"},"startTime":1757909412659,"traceId":"7e8ce557c902d3f3"},{"name":"make","duration":3336764,"timestamp":129917192175,"id":571,"parentId":570,"tags":{},"startTime":1757909412652,"traceId":"7e8ce557c902d3f3"},{"name":"chunk-graph","duration":13875,"timestamp":129920535624,"id":584,"parentId":583,"tags":{},"startTime":1757909415996,"traceId":"7e8ce557c902d3f3"},{"name":"optimize-modules","duration":57,"timestamp":129920549752,"id":586,"parentId":583,"tags":{},"startTime":1757909416010,"traceId":"7e8ce557c902d3f3"},{"name":"optimize-chunks","duration":214,"timestamp":129920550058,"id":587,"parentId":583,"tags":{},"startTime":1757909416010,"traceId":"7e8ce557c902d3f3"},{"name":"optimize-tree","duration":313,"timestamp":129920550472,"id":588,"parentId":583,"tags":{},"startTime":1757909416010,"traceId":"7e8ce557c902d3f3"},{"name":"optimize-chunk-modules","duration":336,"timestamp":129920551017,"id":589,"parentId":583,"tags":{},"startTime":1757909416011,"traceId":"7e8ce557c902d3f3"},{"name":"optimize","duration":3172,"timestamp":129920549637,"id":585,"parentId":583,"tags":{},"startTime":1757909416010,"traceId":"7e8ce557c902d3f3"},{"name":"module-hash","duration":2824,"timestamp":129920558571,"id":590,"parentId":583,"tags":{},"startTime":1757909416018,"traceId":"7e8ce557c902d3f3"},{"name":"code-generation","duration":6207,"timestamp":129920561561,"id":591,"parentId":583,"tags":{},"startTime":1757909416021,"traceId":"7e8ce557c902d3f3"},{"name":"hash","duration":22492,"timestamp":129920706428,"id":592,"parentId":583,"tags":{},"startTime":1757909416166,"traceId":"7e8ce557c902d3f3"},{"name":"code-generation-jobs","duration":991,"timestamp":129920728915,"id":593,"parentId":583,"tags":{},"startTime":1757909416189,"traceId":"7e8ce557c902d3f3"},{"name":"module-assets","duration":299,"timestamp":129920729829,"id":594,"parentId":583,"tags":{},"startTime":1757909416190,"traceId":"7e8ce557c902d3f3"},{"name":"create-chunk-assets","duration":40260,"timestamp":129920730166,"id":595,"parentId":583,"tags":{},"startTime":1757909416190,"traceId":"7e8ce557c902d3f3"},{"name":"NextJsBuildManifest-generateClientManifest","duration":1570,"timestamp":129920782084,"id":597,"parentId":570,"tags":{},"startTime":1757909416242,"traceId":"7e8ce557c902d3f3"},{"name":"NextJsBuildManifest-createassets","duration":3287,"timestamp":129920780422,"id":596,"parentId":570,"tags":{},"startTime":1757909416240,"traceId":"7e8ce557c902d3f3"},{"name":"seal","duration":254825,"timestamp":129920533201,"id":583,"parentId":570,"tags":{},"startTime":1757909415993,"traceId":"7e8ce557c902d3f3"},{"name":"webpack-compilation","duration":3612098,"timestamp":129917179180,"id":570,"parentId":569,"tags":{"name":"client"},"startTime":1757909412639,"traceId":"7e8ce557c902d3f3"},{"name":"emit","duration":23899,"timestamp":129920792455,"id":598,"parentId":569,"tags":{},"startTime":1757909416252,"traceId":"7e8ce557c902d3f3"},{"name":"webpack-invalidated-client","duration":3680477,"timestamp":129917148257,"id":569,"parentId":3,"tags":{"trigger":"pages/contact.tsx"},"startTime":1757909412608,"traceId":"7e8ce557c902d3f3"}] -[{"name":"client-success","duration":66,"timestamp":129920842089,"id":599,"parentId":3,"tags":{},"startTime":1757909416302,"traceId":"7e8ce557c902d3f3"},{"name":"client-hmr-latency","duration":3731000,"timestamp":129917150955,"id":600,"parentId":3,"tags":{"updatedModules":["(pages-dir-browser)/./node_modules/next/dist/build/webpack/loaders/css-loader/src/index.js??ruleSet[1].rules[7].oneOf[13].use[1]!./node_modules/next/dist/build/webpack/loaders/postcss-loader/src/index.js??ruleSet[1].rules[7].oneOf[13].use[2]!./styles/globals.css"],"page":"/news","isPageHidden":false,"clientId":1757909254293},"startTime":1757909416343,"traceId":"7e8ce557c902d3f3"},{"name":"add-entry","duration":50295,"timestamp":129922935752,"id":604,"parentId":603,"tags":{"request":"D:\\dongyun-projects\\two\\node_modules\\next\\dist\\compiled\\@next\\react-refresh-utils\\dist\\runtime.js"},"startTime":1757909418396,"traceId":"7e8ce557c902d3f3"},{"name":"add-entry","duration":72165,"timestamp":129922935995,"id":608,"parentId":603,"tags":{"request":"next-client-pages-loader?absolutePagePath=private-next-pages%2F_error&page=%2F_error!"},"startTime":1757909418396,"traceId":"7e8ce557c902d3f3"},{"name":"add-entry","duration":98150,"timestamp":129922935977,"id":607,"parentId":603,"tags":{"request":"D:\\dongyun-projects\\two\\node_modules\\next\\dist\\client\\router.js"},"startTime":1757909418396,"traceId":"7e8ce557c902d3f3"},{"name":"add-entry","duration":98175,"timestamp":129922936014,"id":609,"parentId":603,"tags":{"request":"next-client-pages-loader?absolutePagePath=D%3A%5Cdongyun-projects%5Ctwo%5Cpages%5Cindex.tsx&page=%2F!"},"startTime":1757909418396,"traceId":"7e8ce557c902d3f3"},{"name":"add-entry","duration":101888,"timestamp":129922936030,"id":610,"parentId":603,"tags":{"request":"next-client-pages-loader?absolutePagePath=D%3A%5Cdongyun-projects%5Ctwo%5Cpages%5Cnews.tsx&page=%2Fnews!"},"startTime":1757909418396,"traceId":"7e8ce557c902d3f3"},{"name":"postcss-process","duration":354278,"timestamp":129923015540,"id":613,"parentId":612,"tags":{},"startTime":1757909418475,"traceId":"7e8ce557c902d3f3"},{"name":"postcss-loader","duration":358188,"timestamp":129923015456,"id":612,"parentId":611,"tags":{},"startTime":1757909418475,"traceId":"7e8ce557c902d3f3"},{"name":"css-loader","duration":77017,"timestamp":129923373773,"id":614,"parentId":611,"tags":{"astUsed":"true"},"startTime":1757909418834,"traceId":"7e8ce557c902d3f3"},{"name":"build-module-css","duration":460435,"timestamp":129923005374,"id":611,"parentId":602,"tags":{"name":"D:\\dongyun-projects\\two\\node_modules\\next\\dist\\build\\webpack\\loaders\\css-loader\\src\\index.js??ruleSet[1].rules[7].oneOf[13].use[1]!D:\\dongyun-projects\\two\\node_modules\\next\\dist\\build\\webpack\\loaders\\postcss-loader\\src\\index.js??ruleSet[1].rules[7].oneOf[13].use[2]!D:\\dongyun-projects\\two\\styles\\globals.css","layer":"pages-dir-browser"},"startTime":1757909418465,"traceId":"7e8ce557c902d3f3"},{"name":"add-entry","duration":532959,"timestamp":129922935911,"id":605,"parentId":603,"tags":{"request":"./node_modules/next/dist/client/next-dev.js"},"startTime":1757909418396,"traceId":"7e8ce557c902d3f3"},{"name":"add-entry","duration":534661,"timestamp":129922935954,"id":606,"parentId":603,"tags":{"request":"next-client-pages-loader?absolutePagePath=private-next-pages%2F_app&page=%2F_app!"},"startTime":1757909418396,"traceId":"7e8ce557c902d3f3"},{"name":"make","duration":537372,"timestamp":129922933308,"id":603,"parentId":602,"tags":{},"startTime":1757909418393,"traceId":"7e8ce557c902d3f3"},{"name":"chunk-graph","duration":5750,"timestamp":129923474334,"id":616,"parentId":615,"tags":{},"startTime":1757909418934,"traceId":"7e8ce557c902d3f3"},{"name":"optimize-modules","duration":20,"timestamp":129923480183,"id":618,"parentId":615,"tags":{},"startTime":1757909418940,"traceId":"7e8ce557c902d3f3"},{"name":"optimize-chunks","duration":169,"timestamp":129923480385,"id":619,"parentId":615,"tags":{},"startTime":1757909418940,"traceId":"7e8ce557c902d3f3"},{"name":"optimize-tree","duration":24,"timestamp":129923480679,"id":620,"parentId":615,"tags":{},"startTime":1757909418941,"traceId":"7e8ce557c902d3f3"},{"name":"optimize-chunk-modules","duration":36,"timestamp":129923480849,"id":621,"parentId":615,"tags":{},"startTime":1757909418941,"traceId":"7e8ce557c902d3f3"},{"name":"optimize","duration":3690,"timestamp":129923480153,"id":617,"parentId":615,"tags":{},"startTime":1757909418940,"traceId":"7e8ce557c902d3f3"},{"name":"module-hash","duration":4609,"timestamp":129923487936,"id":622,"parentId":615,"tags":{},"startTime":1757909418948,"traceId":"7e8ce557c902d3f3"},{"name":"code-generation","duration":8128,"timestamp":129923492665,"id":623,"parentId":615,"tags":{},"startTime":1757909418953,"traceId":"7e8ce557c902d3f3"},{"name":"hash","duration":11965,"timestamp":129923506907,"id":624,"parentId":615,"tags":{},"startTime":1757909418967,"traceId":"7e8ce557c902d3f3"},{"name":"code-generation-jobs","duration":465,"timestamp":129923518868,"id":625,"parentId":615,"tags":{},"startTime":1757909418979,"traceId":"7e8ce557c902d3f3"},{"name":"module-assets","duration":213,"timestamp":129923519273,"id":626,"parentId":615,"tags":{},"startTime":1757909418979,"traceId":"7e8ce557c902d3f3"},{"name":"create-chunk-assets","duration":601,"timestamp":129923519508,"id":627,"parentId":615,"tags":{},"startTime":1757909418979,"traceId":"7e8ce557c902d3f3"},{"name":"NextJsBuildManifest-generateClientManifest","duration":233,"timestamp":129923520994,"id":629,"parentId":602,"tags":{},"startTime":1757909418981,"traceId":"7e8ce557c902d3f3"},{"name":"NextJsBuildManifest-createassets","duration":490,"timestamp":129923520759,"id":628,"parentId":602,"tags":{},"startTime":1757909418981,"traceId":"7e8ce557c902d3f3"},{"name":"seal","duration":50052,"timestamp":129923472137,"id":615,"parentId":602,"tags":{},"startTime":1757909418932,"traceId":"7e8ce557c902d3f3"},{"name":"webpack-compilation","duration":589677,"timestamp":129922932602,"id":602,"parentId":601,"tags":{"name":"client"},"startTime":1757909418393,"traceId":"7e8ce557c902d3f3"},{"name":"emit","duration":15953,"timestamp":129923522327,"id":630,"parentId":601,"tags":{},"startTime":1757909418982,"traceId":"7e8ce557c902d3f3"},{"name":"webpack-invalidated-client","duration":629860,"timestamp":129922911765,"id":601,"parentId":3,"tags":{"trigger":"pages/about.tsx"},"startTime":1757909418372,"traceId":"7e8ce557c902d3f3"}] -[{"name":"client-success","duration":7,"timestamp":129923548023,"id":631,"parentId":3,"tags":{},"startTime":1757909419008,"traceId":"7e8ce557c902d3f3"},{"name":"add-entry","duration":30662,"timestamp":129926239207,"id":635,"parentId":634,"tags":{"request":"D:\\dongyun-projects\\two\\node_modules\\next\\dist\\compiled\\@next\\react-refresh-utils\\dist\\runtime.js"},"startTime":1757909421699,"traceId":"7e8ce557c902d3f3"},{"name":"add-entry","duration":43422,"timestamp":129926239458,"id":639,"parentId":634,"tags":{"request":"next-client-pages-loader?absolutePagePath=private-next-pages%2F_error&page=%2F_error!"},"startTime":1757909421699,"traceId":"7e8ce557c902d3f3"},{"name":"add-entry","duration":62937,"timestamp":129926239439,"id":638,"parentId":634,"tags":{"request":"D:\\dongyun-projects\\two\\node_modules\\next\\dist\\client\\router.js"},"startTime":1757909421699,"traceId":"7e8ce557c902d3f3"},{"name":"add-entry","duration":62974,"timestamp":129926239481,"id":640,"parentId":634,"tags":{"request":"next-client-pages-loader?absolutePagePath=D%3A%5Cdongyun-projects%5Ctwo%5Cpages%5Cindex.tsx&page=%2F!"},"startTime":1757909421699,"traceId":"7e8ce557c902d3f3"},{"name":"postcss-process","duration":246513,"timestamp":129926285193,"id":644,"parentId":643,"tags":{},"startTime":1757909421745,"traceId":"7e8ce557c902d3f3"},{"name":"postcss-loader","duration":247339,"timestamp":129926285123,"id":643,"parentId":642,"tags":{},"startTime":1757909421745,"traceId":"7e8ce557c902d3f3"},{"name":"css-loader","duration":55994,"timestamp":129926532524,"id":645,"parentId":642,"tags":{"astUsed":"true"},"startTime":1757909421992,"traceId":"7e8ce557c902d3f3"},{"name":"build-module-css","duration":310013,"timestamp":129926281657,"id":642,"parentId":633,"tags":{"name":"D:\\dongyun-projects\\two\\node_modules\\next\\dist\\build\\webpack\\loaders\\css-loader\\src\\index.js??ruleSet[1].rules[7].oneOf[13].use[1]!D:\\dongyun-projects\\two\\node_modules\\next\\dist\\build\\webpack\\loaders\\postcss-loader\\src\\index.js??ruleSet[1].rules[7].oneOf[13].use[2]!D:\\dongyun-projects\\two\\styles\\globals.css","layer":"pages-dir-browser"},"startTime":1757909421742,"traceId":"7e8ce557c902d3f3"},{"name":"add-entry","duration":352634,"timestamp":129926239507,"id":641,"parentId":634,"tags":{"request":"next-client-pages-loader?absolutePagePath=D%3A%5Cdongyun-projects%5Ctwo%5Cpages%5Cnews.tsx&page=%2Fnews!"},"startTime":1757909421699,"traceId":"7e8ce557c902d3f3"},{"name":"add-entry","duration":356480,"timestamp":129926239366,"id":636,"parentId":634,"tags":{"request":"./node_modules/next/dist/client/next-dev.js"},"startTime":1757909421699,"traceId":"7e8ce557c902d3f3"},{"name":"add-entry","duration":356646,"timestamp":129926239413,"id":637,"parentId":634,"tags":{"request":"next-client-pages-loader?absolutePagePath=private-next-pages%2F_app&page=%2F_app!"},"startTime":1757909421699,"traceId":"7e8ce557c902d3f3"},{"name":"make","duration":359050,"timestamp":129926237052,"id":634,"parentId":633,"tags":{},"startTime":1757909421697,"traceId":"7e8ce557c902d3f3"},{"name":"chunk-graph","duration":2278,"timestamp":129926598078,"id":647,"parentId":646,"tags":{},"startTime":1757909422058,"traceId":"7e8ce557c902d3f3"},{"name":"optimize-modules","duration":13,"timestamp":129926600429,"id":649,"parentId":646,"tags":{},"startTime":1757909422060,"traceId":"7e8ce557c902d3f3"},{"name":"optimize-chunks","duration":68,"timestamp":129926600471,"id":650,"parentId":646,"tags":{},"startTime":1757909422060,"traceId":"7e8ce557c902d3f3"},{"name":"optimize-tree","duration":14,"timestamp":129926600576,"id":651,"parentId":646,"tags":{},"startTime":1757909422061,"traceId":"7e8ce557c902d3f3"},{"name":"optimize-chunk-modules","duration":13,"timestamp":129926600633,"id":652,"parentId":646,"tags":{},"startTime":1757909422061,"traceId":"7e8ce557c902d3f3"},{"name":"optimize","duration":825,"timestamp":129926600401,"id":648,"parentId":646,"tags":{},"startTime":1757909422060,"traceId":"7e8ce557c902d3f3"},{"name":"module-hash","duration":565,"timestamp":129926603916,"id":653,"parentId":646,"tags":{},"startTime":1757909422064,"traceId":"7e8ce557c902d3f3"},{"name":"code-generation","duration":10487,"timestamp":129926604520,"id":654,"parentId":646,"tags":{},"startTime":1757909422064,"traceId":"7e8ce557c902d3f3"},{"name":"hash","duration":7365,"timestamp":129926619803,"id":655,"parentId":646,"tags":{},"startTime":1757909422080,"traceId":"7e8ce557c902d3f3"},{"name":"code-generation-jobs","duration":487,"timestamp":129926627157,"id":656,"parentId":646,"tags":{},"startTime":1757909422087,"traceId":"7e8ce557c902d3f3"},{"name":"module-assets","duration":307,"timestamp":129926627581,"id":657,"parentId":646,"tags":{},"startTime":1757909422088,"traceId":"7e8ce557c902d3f3"},{"name":"create-chunk-assets","duration":625,"timestamp":129926627914,"id":658,"parentId":646,"tags":{},"startTime":1757909422088,"traceId":"7e8ce557c902d3f3"},{"name":"NextJsBuildManifest-generateClientManifest","duration":221,"timestamp":129926629955,"id":660,"parentId":633,"tags":{},"startTime":1757909422090,"traceId":"7e8ce557c902d3f3"},{"name":"NextJsBuildManifest-createassets","duration":461,"timestamp":129926629736,"id":659,"parentId":633,"tags":{},"startTime":1757909422090,"traceId":"7e8ce557c902d3f3"},{"name":"seal","duration":34162,"timestamp":129926596998,"id":646,"parentId":633,"tags":{},"startTime":1757909422057,"traceId":"7e8ce557c902d3f3"},{"name":"webpack-compilation","duration":395244,"timestamp":129926235997,"id":633,"parentId":632,"tags":{"name":"client"},"startTime":1757909421696,"traceId":"7e8ce557c902d3f3"},{"name":"emit","duration":17301,"timestamp":129926631285,"id":661,"parentId":632,"tags":{},"startTime":1757909422091,"traceId":"7e8ce557c902d3f3"},{"name":"webpack-invalidated-client","duration":429884,"timestamp":129926220340,"id":632,"parentId":3,"tags":{"trigger":"pages/cases.tsx"},"startTime":1757909421680,"traceId":"7e8ce557c902d3f3"}] -[{"name":"client-success","duration":7,"timestamp":129926652644,"id":662,"parentId":3,"tags":{},"startTime":1757909422113,"traceId":"7e8ce557c902d3f3"},{"name":"add-entry","duration":9304,"timestamp":129929729343,"id":667,"parentId":666,"tags":{"request":"private-next-pages/_app"},"startTime":1757909425189,"traceId":"7e8ce557c902d3f3"},{"name":"add-entry","duration":49816,"timestamp":129929729515,"id":669,"parentId":666,"tags":{"request":"private-next-pages/_document"},"startTime":1757909425189,"traceId":"7e8ce557c902d3f3"},{"name":"add-entry","duration":55813,"timestamp":129929729493,"id":668,"parentId":666,"tags":{"request":"next-route-loader?kind=PAGES&page=%2F_error&preferredRegion=&absolutePagePath=private-next-pages%2F_error&absoluteAppPath=private-next-pages%2F_app&absoluteDocumentPath=private-next-pages%2F_document&middlewareConfigBase64=e30%3D!"},"startTime":1757909425189,"traceId":"7e8ce557c902d3f3"},{"name":"add-entry","duration":59911,"timestamp":129929729530,"id":670,"parentId":666,"tags":{"request":"next-route-loader?kind=PAGES&page=%2F&preferredRegion=&absolutePagePath=.%2Fpages%5Cindex.tsx&absoluteAppPath=private-next-pages%2F_app&absoluteDocumentPath=private-next-pages%2F_document&middlewareConfigBase64=e30%3D!"},"startTime":1757909425189,"traceId":"7e8ce557c902d3f3"},{"name":"build-module-tsx","duration":67778,"timestamp":129929783624,"id":672,"parentId":665,"tags":{"name":"D:\\dongyun-projects\\two\\pages\\news.tsx","layer":"pages-dir-node"},"startTime":1757909425244,"traceId":"7e8ce557c902d3f3"},{"name":"add-entry","duration":148819,"timestamp":129929729545,"id":671,"parentId":666,"tags":{"request":"next-route-loader?kind=PAGES&page=%2Fnews&preferredRegion=&absolutePagePath=.%2Fpages%5Cnews.tsx&absoluteAppPath=private-next-pages%2F_app&absoluteDocumentPath=private-next-pages%2F_document&middlewareConfigBase64=e30%3D!"},"startTime":1757909425189,"traceId":"7e8ce557c902d3f3"},{"name":"make","duration":157202,"timestamp":129929721256,"id":666,"parentId":665,"tags":{},"startTime":1757909425181,"traceId":"7e8ce557c902d3f3"},{"name":"chunk-graph","duration":3204,"timestamp":129929881041,"id":674,"parentId":673,"tags":{},"startTime":1757909425341,"traceId":"7e8ce557c902d3f3"},{"name":"optimize-modules","duration":18,"timestamp":129929884350,"id":676,"parentId":673,"tags":{},"startTime":1757909425344,"traceId":"7e8ce557c902d3f3"},{"name":"optimize-chunks","duration":11425,"timestamp":129929885060,"id":677,"parentId":673,"tags":{},"startTime":1757909425345,"traceId":"7e8ce557c902d3f3"},{"name":"optimize-tree","duration":32,"timestamp":129929896581,"id":678,"parentId":673,"tags":{},"startTime":1757909425357,"traceId":"7e8ce557c902d3f3"},{"name":"optimize-chunk-modules","duration":23,"timestamp":129929896665,"id":679,"parentId":673,"tags":{},"startTime":1757909425357,"traceId":"7e8ce557c902d3f3"},{"name":"optimize","duration":13511,"timestamp":129929884319,"id":675,"parentId":673,"tags":{},"startTime":1757909425344,"traceId":"7e8ce557c902d3f3"},{"name":"module-hash","duration":1271,"timestamp":129929900480,"id":680,"parentId":673,"tags":{},"startTime":1757909425360,"traceId":"7e8ce557c902d3f3"},{"name":"code-generation","duration":9347,"timestamp":129929901844,"id":681,"parentId":673,"tags":{},"startTime":1757909425362,"traceId":"7e8ce557c902d3f3"},{"name":"hash","duration":17097,"timestamp":129929915727,"id":682,"parentId":673,"tags":{},"startTime":1757909425376,"traceId":"7e8ce557c902d3f3"},{"name":"code-generation-jobs","duration":264,"timestamp":129929932821,"id":683,"parentId":673,"tags":{},"startTime":1757909425393,"traceId":"7e8ce557c902d3f3"},{"name":"module-assets","duration":153,"timestamp":129929933047,"id":684,"parentId":673,"tags":{},"startTime":1757909425393,"traceId":"7e8ce557c902d3f3"},{"name":"create-chunk-assets","duration":4426,"timestamp":129929933219,"id":685,"parentId":673,"tags":{},"startTime":1757909425393,"traceId":"7e8ce557c902d3f3"},{"name":"seal","duration":61165,"timestamp":129929879823,"id":673,"parentId":665,"tags":{},"startTime":1757909425340,"traceId":"7e8ce557c902d3f3"},{"name":"webpack-compilation","duration":220923,"timestamp":129929720179,"id":665,"parentId":663,"tags":{"name":"server"},"startTime":1757909425180,"traceId":"7e8ce557c902d3f3"},{"name":"emit","duration":24507,"timestamp":129929941437,"id":686,"parentId":663,"tags":{},"startTime":1757909425401,"traceId":"7e8ce557c902d3f3"},{"name":"webpack-invalidated-server","duration":268906,"timestamp":129929699016,"id":663,"parentId":3,"tags":{"trigger":"pages/news.tsx"},"startTime":1757909425159,"traceId":"7e8ce557c902d3f3"},{"name":"add-entry","duration":37765,"timestamp":129929985383,"id":689,"parentId":688,"tags":{"request":"D:\\dongyun-projects\\two\\node_modules\\next\\dist\\compiled\\@next\\react-refresh-utils\\dist\\runtime.js"},"startTime":1757909425445,"traceId":"7e8ce557c902d3f3"},{"name":"build-module-tsx","duration":38545,"timestamp":129930021064,"id":696,"parentId":687,"tags":{"name":"D:\\dongyun-projects\\two\\pages\\news.tsx","layer":"pages-dir-browser"},"startTime":1757909425481,"traceId":"7e8ce557c902d3f3"},{"name":"add-entry","duration":75945,"timestamp":129929985819,"id":693,"parentId":688,"tags":{"request":"next-client-pages-loader?absolutePagePath=private-next-pages%2F_error&page=%2F_error!"},"startTime":1757909425446,"traceId":"7e8ce557c902d3f3"},{"name":"add-entry","duration":100574,"timestamp":129929985802,"id":692,"parentId":688,"tags":{"request":"D:\\dongyun-projects\\two\\node_modules\\next\\dist\\client\\router.js"},"startTime":1757909425446,"traceId":"7e8ce557c902d3f3"},{"name":"add-entry","duration":111810,"timestamp":129929985838,"id":694,"parentId":688,"tags":{"request":"next-client-pages-loader?absolutePagePath=D%3A%5Cdongyun-projects%5Ctwo%5Cpages%5Cindex.tsx&page=%2F!"},"startTime":1757909425446,"traceId":"7e8ce557c902d3f3"},{"name":"add-entry","duration":111812,"timestamp":129929985855,"id":695,"parentId":688,"tags":{"request":"next-client-pages-loader?absolutePagePath=D%3A%5Cdongyun-projects%5Ctwo%5Cpages%5Cnews.tsx&page=%2Fnews!"},"startTime":1757909425446,"traceId":"7e8ce557c902d3f3"},{"name":"postcss-process","duration":321978,"timestamp":129930075312,"id":699,"parentId":698,"tags":{},"startTime":1757909425535,"traceId":"7e8ce557c902d3f3"},{"name":"postcss-loader","duration":322526,"timestamp":129930075210,"id":698,"parentId":697,"tags":{},"startTime":1757909425535,"traceId":"7e8ce557c902d3f3"},{"name":"css-loader","duration":56122,"timestamp":129930397787,"id":700,"parentId":697,"tags":{"astUsed":"true"},"startTime":1757909425858,"traceId":"7e8ce557c902d3f3"},{"name":"build-module-css","duration":420844,"timestamp":129930036388,"id":697,"parentId":687,"tags":{"name":"D:\\dongyun-projects\\two\\node_modules\\next\\dist\\build\\webpack\\loaders\\css-loader\\src\\index.js??ruleSet[1].rules[7].oneOf[13].use[1]!D:\\dongyun-projects\\two\\node_modules\\next\\dist\\build\\webpack\\loaders\\postcss-loader\\src\\index.js??ruleSet[1].rules[7].oneOf[13].use[2]!D:\\dongyun-projects\\two\\styles\\globals.css","layer":"pages-dir-browser"},"startTime":1757909425496,"traceId":"7e8ce557c902d3f3"},{"name":"add-entry","duration":472798,"timestamp":129929985729,"id":690,"parentId":688,"tags":{"request":"./node_modules/next/dist/client/next-dev.js"},"startTime":1757909425446,"traceId":"7e8ce557c902d3f3"},{"name":"add-entry","duration":474265,"timestamp":129929985775,"id":691,"parentId":688,"tags":{"request":"next-client-pages-loader?absolutePagePath=private-next-pages%2F_app&page=%2F_app!"},"startTime":1757909425446,"traceId":"7e8ce557c902d3f3"},{"name":"make","duration":481474,"timestamp":129929978702,"id":688,"parentId":687,"tags":{},"startTime":1757909425439,"traceId":"7e8ce557c902d3f3"},{"name":"chunk-graph","duration":3517,"timestamp":129930464245,"id":702,"parentId":701,"tags":{},"startTime":1757909425924,"traceId":"7e8ce557c902d3f3"},{"name":"optimize-modules","duration":21,"timestamp":129930467878,"id":704,"parentId":701,"tags":{},"startTime":1757909425928,"traceId":"7e8ce557c902d3f3"},{"name":"optimize-chunks","duration":123,"timestamp":129930467947,"id":705,"parentId":701,"tags":{},"startTime":1757909425928,"traceId":"7e8ce557c902d3f3"},{"name":"optimize-tree","duration":38,"timestamp":129930468210,"id":706,"parentId":701,"tags":{},"startTime":1757909425928,"traceId":"7e8ce557c902d3f3"},{"name":"optimize-chunk-modules","duration":22,"timestamp":129930468341,"id":707,"parentId":701,"tags":{},"startTime":1757909425928,"traceId":"7e8ce557c902d3f3"},{"name":"optimize","duration":1332,"timestamp":129930467836,"id":703,"parentId":701,"tags":{},"startTime":1757909425928,"traceId":"7e8ce557c902d3f3"},{"name":"module-hash","duration":5217,"timestamp":129930472141,"id":708,"parentId":701,"tags":{},"startTime":1757909425932,"traceId":"7e8ce557c902d3f3"},{"name":"code-generation","duration":6971,"timestamp":129930477568,"id":709,"parentId":701,"tags":{},"startTime":1757909425937,"traceId":"7e8ce557c902d3f3"},{"name":"hash","duration":9884,"timestamp":129930491030,"id":710,"parentId":701,"tags":{},"startTime":1757909425951,"traceId":"7e8ce557c902d3f3"},{"name":"code-generation-jobs","duration":387,"timestamp":129930500912,"id":711,"parentId":701,"tags":{},"startTime":1757909425961,"traceId":"7e8ce557c902d3f3"},{"name":"module-assets","duration":174,"timestamp":129930501272,"id":712,"parentId":701,"tags":{},"startTime":1757909425961,"traceId":"7e8ce557c902d3f3"},{"name":"create-chunk-assets","duration":8444,"timestamp":129930501460,"id":713,"parentId":701,"tags":{},"startTime":1757909425961,"traceId":"7e8ce557c902d3f3"},{"name":"NextJsBuildManifest-generateClientManifest","duration":275,"timestamp":129930514041,"id":715,"parentId":687,"tags":{},"startTime":1757909425974,"traceId":"7e8ce557c902d3f3"},{"name":"NextJsBuildManifest-createassets","duration":672,"timestamp":129930513675,"id":714,"parentId":687,"tags":{},"startTime":1757909425974,"traceId":"7e8ce557c902d3f3"},{"name":"seal","duration":54306,"timestamp":129930461747,"id":701,"parentId":687,"tags":{},"startTime":1757909425922,"traceId":"7e8ce557c902d3f3"},{"name":"webpack-compilation","duration":540653,"timestamp":129929975506,"id":687,"parentId":664,"tags":{"name":"client"},"startTime":1757909425435,"traceId":"7e8ce557c902d3f3"},{"name":"emit","duration":30955,"timestamp":129930516216,"id":716,"parentId":664,"tags":{},"startTime":1757909425976,"traceId":"7e8ce557c902d3f3"},{"name":"webpack-invalidated-client","duration":850927,"timestamp":129929699278,"id":664,"parentId":3,"tags":{"trigger":"pages/news.tsx"},"startTime":1757909425159,"traceId":"7e8ce557c902d3f3"}] -[{"name":"client-success","duration":14,"timestamp":129930554210,"id":717,"parentId":3,"tags":{},"startTime":1757909426014,"traceId":"7e8ce557c902d3f3"},{"name":"client-hmr-latency","duration":941000,"timestamp":129929699980,"id":718,"parentId":3,"tags":{"updatedModules":["(pages-dir-browser)/./pages/news.tsx"],"page":"/news","isPageHidden":false,"clientId":1757909254293},"startTime":1757909426101,"traceId":"7e8ce557c902d3f3"},{"name":"add-entry","duration":25934,"timestamp":129933783339,"id":722,"parentId":721,"tags":{"request":"D:\\dongyun-projects\\two\\node_modules\\next\\dist\\compiled\\@next\\react-refresh-utils\\dist\\runtime.js"},"startTime":1757909429243,"traceId":"7e8ce557c902d3f3"},{"name":"add-entry","duration":34007,"timestamp":129933783503,"id":726,"parentId":721,"tags":{"request":"next-client-pages-loader?absolutePagePath=private-next-pages%2F_error&page=%2F_error!"},"startTime":1757909429243,"traceId":"7e8ce557c902d3f3"},{"name":"add-entry","duration":49644,"timestamp":129933783494,"id":725,"parentId":721,"tags":{"request":"D:\\dongyun-projects\\two\\node_modules\\next\\dist\\client\\router.js"},"startTime":1757909429243,"traceId":"7e8ce557c902d3f3"},{"name":"add-entry","duration":49691,"timestamp":129933783512,"id":727,"parentId":721,"tags":{"request":"next-client-pages-loader?absolutePagePath=D%3A%5Cdongyun-projects%5Ctwo%5Cpages%5Cindex.tsx&page=%2F!"},"startTime":1757909429243,"traceId":"7e8ce557c902d3f3"},{"name":"postcss-process","duration":203840,"timestamp":129933820361,"id":731,"parentId":730,"tags":{},"startTime":1757909429280,"traceId":"7e8ce557c902d3f3"},{"name":"postcss-loader","duration":204790,"timestamp":129933820125,"id":730,"parentId":729,"tags":{},"startTime":1757909429280,"traceId":"7e8ce557c902d3f3"},{"name":"css-loader","duration":33722,"timestamp":129934025017,"id":732,"parentId":729,"tags":{"astUsed":"true"},"startTime":1757909429485,"traceId":"7e8ce557c902d3f3"},{"name":"build-module-css","duration":244690,"timestamp":129933816549,"id":729,"parentId":720,"tags":{"name":"D:\\dongyun-projects\\two\\node_modules\\next\\dist\\build\\webpack\\loaders\\css-loader\\src\\index.js??ruleSet[1].rules[7].oneOf[13].use[1]!D:\\dongyun-projects\\two\\node_modules\\next\\dist\\build\\webpack\\loaders\\postcss-loader\\src\\index.js??ruleSet[1].rules[7].oneOf[13].use[2]!D:\\dongyun-projects\\two\\styles\\globals.css","layer":"pages-dir-browser"},"startTime":1757909429276,"traceId":"7e8ce557c902d3f3"},{"name":"add-entry","duration":278013,"timestamp":129933783519,"id":728,"parentId":721,"tags":{"request":"next-client-pages-loader?absolutePagePath=D%3A%5Cdongyun-projects%5Ctwo%5Cpages%5Cnews.tsx&page=%2Fnews!"},"startTime":1757909429243,"traceId":"7e8ce557c902d3f3"},{"name":"add-entry","duration":283762,"timestamp":129933783447,"id":723,"parentId":721,"tags":{"request":"./node_modules/next/dist/client/next-dev.js"},"startTime":1757909429243,"traceId":"7e8ce557c902d3f3"},{"name":"add-entry","duration":284166,"timestamp":129933783474,"id":724,"parentId":721,"tags":{"request":"next-client-pages-loader?absolutePagePath=private-next-pages%2F_app&page=%2F_app!"},"startTime":1757909429243,"traceId":"7e8ce557c902d3f3"},{"name":"make","duration":286005,"timestamp":129933781688,"id":721,"parentId":720,"tags":{},"startTime":1757909429242,"traceId":"7e8ce557c902d3f3"},{"name":"chunk-graph","duration":3265,"timestamp":129934069851,"id":734,"parentId":733,"tags":{},"startTime":1757909429530,"traceId":"7e8ce557c902d3f3"},{"name":"optimize-modules","duration":19,"timestamp":129934073228,"id":736,"parentId":733,"tags":{},"startTime":1757909429533,"traceId":"7e8ce557c902d3f3"},{"name":"optimize-chunks","duration":165,"timestamp":129934073290,"id":737,"parentId":733,"tags":{},"startTime":1757909429533,"traceId":"7e8ce557c902d3f3"},{"name":"optimize-tree","duration":34,"timestamp":129934073598,"id":738,"parentId":733,"tags":{},"startTime":1757909429534,"traceId":"7e8ce557c902d3f3"},{"name":"optimize-chunk-modules","duration":32,"timestamp":129934073906,"id":739,"parentId":733,"tags":{},"startTime":1757909429534,"traceId":"7e8ce557c902d3f3"},{"name":"optimize","duration":1880,"timestamp":129934073194,"id":735,"parentId":733,"tags":{},"startTime":1757909429533,"traceId":"7e8ce557c902d3f3"},{"name":"module-hash","duration":858,"timestamp":129934077885,"id":740,"parentId":733,"tags":{},"startTime":1757909429538,"traceId":"7e8ce557c902d3f3"},{"name":"code-generation","duration":3386,"timestamp":129934078822,"id":741,"parentId":733,"tags":{},"startTime":1757909429539,"traceId":"7e8ce557c902d3f3"},{"name":"hash","duration":9421,"timestamp":129934086525,"id":742,"parentId":733,"tags":{},"startTime":1757909429546,"traceId":"7e8ce557c902d3f3"},{"name":"code-generation-jobs","duration":294,"timestamp":129934095940,"id":743,"parentId":733,"tags":{},"startTime":1757909429556,"traceId":"7e8ce557c902d3f3"},{"name":"module-assets","duration":157,"timestamp":129934096208,"id":744,"parentId":733,"tags":{},"startTime":1757909429556,"traceId":"7e8ce557c902d3f3"},{"name":"create-chunk-assets","duration":311,"timestamp":129934096376,"id":745,"parentId":733,"tags":{},"startTime":1757909429556,"traceId":"7e8ce557c902d3f3"},{"name":"NextJsBuildManifest-generateClientManifest","duration":208,"timestamp":129934098590,"id":747,"parentId":720,"tags":{},"startTime":1757909429559,"traceId":"7e8ce557c902d3f3"},{"name":"NextJsBuildManifest-createassets","duration":1139,"timestamp":129934097680,"id":746,"parentId":720,"tags":{},"startTime":1757909429558,"traceId":"7e8ce557c902d3f3"},{"name":"seal","duration":31043,"timestamp":129934068693,"id":733,"parentId":720,"tags":{},"startTime":1757909429529,"traceId":"7e8ce557c902d3f3"},{"name":"webpack-compilation","duration":319026,"timestamp":129933780797,"id":720,"parentId":719,"tags":{"name":"client"},"startTime":1757909429241,"traceId":"7e8ce557c902d3f3"},{"name":"emit","duration":15978,"timestamp":129934099874,"id":748,"parentId":719,"tags":{},"startTime":1757909429560,"traceId":"7e8ce557c902d3f3"},{"name":"webpack-invalidated-client","duration":355682,"timestamp":129933762183,"id":719,"parentId":3,"tags":{"trigger":"pages/features.tsx"},"startTime":1757909429222,"traceId":"7e8ce557c902d3f3"}] -[{"name":"client-success","duration":8,"timestamp":129934121616,"id":749,"parentId":3,"tags":{},"startTime":1757909429582,"traceId":"7e8ce557c902d3f3"},{"name":"add-entry","duration":17993,"timestamp":129937633577,"id":753,"parentId":752,"tags":{"request":"D:\\dongyun-projects\\two\\node_modules\\next\\dist\\compiled\\@next\\react-refresh-utils\\dist\\runtime.js"},"startTime":1757909433094,"traceId":"7e8ce557c902d3f3"},{"name":"add-entry","duration":29872,"timestamp":129937633742,"id":757,"parentId":752,"tags":{"request":"next-client-pages-loader?absolutePagePath=private-next-pages%2F_error&page=%2F_error!"},"startTime":1757909433094,"traceId":"7e8ce557c902d3f3"},{"name":"add-entry","duration":42142,"timestamp":129937633724,"id":756,"parentId":752,"tags":{"request":"D:\\dongyun-projects\\two\\node_modules\\next\\dist\\client\\router.js"},"startTime":1757909433094,"traceId":"7e8ce557c902d3f3"},{"name":"add-entry","duration":42364,"timestamp":129937633755,"id":758,"parentId":752,"tags":{"request":"next-client-pages-loader?absolutePagePath=D%3A%5Cdongyun-projects%5Ctwo%5Cpages%5Cindex.tsx&page=%2F!"},"startTime":1757909433094,"traceId":"7e8ce557c902d3f3"},{"name":"postcss-process","duration":182086,"timestamp":129937665697,"id":762,"parentId":761,"tags":{},"startTime":1757909433126,"traceId":"7e8ce557c902d3f3"},{"name":"postcss-loader","duration":182742,"timestamp":129937665655,"id":761,"parentId":760,"tags":{},"startTime":1757909433126,"traceId":"7e8ce557c902d3f3"},{"name":"css-loader","duration":34630,"timestamp":129937848473,"id":763,"parentId":760,"tags":{"astUsed":"true"},"startTime":1757909433308,"traceId":"7e8ce557c902d3f3"},{"name":"build-module-css","duration":222965,"timestamp":129937662697,"id":760,"parentId":751,"tags":{"name":"D:\\dongyun-projects\\two\\node_modules\\next\\dist\\build\\webpack\\loaders\\css-loader\\src\\index.js??ruleSet[1].rules[7].oneOf[13].use[1]!D:\\dongyun-projects\\two\\node_modules\\next\\dist\\build\\webpack\\loaders\\postcss-loader\\src\\index.js??ruleSet[1].rules[7].oneOf[13].use[2]!D:\\dongyun-projects\\two\\styles\\globals.css","layer":"pages-dir-browser"},"startTime":1757909433123,"traceId":"7e8ce557c902d3f3"},{"name":"add-entry","duration":252333,"timestamp":129937633766,"id":759,"parentId":752,"tags":{"request":"next-client-pages-loader?absolutePagePath=D%3A%5Cdongyun-projects%5Ctwo%5Cpages%5Cnews.tsx&page=%2Fnews!"},"startTime":1757909433094,"traceId":"7e8ce557c902d3f3"},{"name":"add-entry","duration":257220,"timestamp":129937633688,"id":754,"parentId":752,"tags":{"request":"./node_modules/next/dist/client/next-dev.js"},"startTime":1757909433094,"traceId":"7e8ce557c902d3f3"},{"name":"add-entry","duration":257643,"timestamp":129937633709,"id":755,"parentId":752,"tags":{"request":"next-client-pages-loader?absolutePagePath=private-next-pages%2F_app&page=%2F_app!"},"startTime":1757909433094,"traceId":"7e8ce557c902d3f3"},{"name":"make","duration":259695,"timestamp":129937631753,"id":752,"parentId":751,"tags":{},"startTime":1757909433092,"traceId":"7e8ce557c902d3f3"},{"name":"chunk-graph","duration":2325,"timestamp":129937894855,"id":765,"parentId":764,"tags":{},"startTime":1757909433355,"traceId":"7e8ce557c902d3f3"},{"name":"optimize-modules","duration":18,"timestamp":129937897261,"id":767,"parentId":764,"tags":{},"startTime":1757909433357,"traceId":"7e8ce557c902d3f3"},{"name":"optimize-chunks","duration":89,"timestamp":129937897326,"id":768,"parentId":764,"tags":{},"startTime":1757909433357,"traceId":"7e8ce557c902d3f3"},{"name":"optimize-tree","duration":22,"timestamp":129937897462,"id":769,"parentId":764,"tags":{},"startTime":1757909433357,"traceId":"7e8ce557c902d3f3"},{"name":"optimize-chunk-modules","duration":16,"timestamp":129937897537,"id":770,"parentId":764,"tags":{},"startTime":1757909433357,"traceId":"7e8ce557c902d3f3"},{"name":"optimize","duration":969,"timestamp":129937897235,"id":766,"parentId":764,"tags":{},"startTime":1757909433357,"traceId":"7e8ce557c902d3f3"},{"name":"module-hash","duration":975,"timestamp":129937900816,"id":771,"parentId":764,"tags":{},"startTime":1757909433361,"traceId":"7e8ce557c902d3f3"},{"name":"code-generation","duration":4106,"timestamp":129937901872,"id":772,"parentId":764,"tags":{},"startTime":1757909433362,"traceId":"7e8ce557c902d3f3"},{"name":"hash","duration":5539,"timestamp":129937912878,"id":773,"parentId":764,"tags":{},"startTime":1757909433373,"traceId":"7e8ce557c902d3f3"},{"name":"code-generation-jobs","duration":219,"timestamp":129937918415,"id":774,"parentId":764,"tags":{},"startTime":1757909433378,"traceId":"7e8ce557c902d3f3"},{"name":"module-assets","duration":116,"timestamp":129937918612,"id":775,"parentId":764,"tags":{},"startTime":1757909433379,"traceId":"7e8ce557c902d3f3"},{"name":"create-chunk-assets","duration":271,"timestamp":129937918740,"id":776,"parentId":764,"tags":{},"startTime":1757909433379,"traceId":"7e8ce557c902d3f3"},{"name":"NextJsBuildManifest-generateClientManifest","duration":140,"timestamp":129937919513,"id":778,"parentId":751,"tags":{},"startTime":1757909433379,"traceId":"7e8ce557c902d3f3"},{"name":"NextJsBuildManifest-createassets","duration":290,"timestamp":129937919372,"id":777,"parentId":751,"tags":{},"startTime":1757909433379,"traceId":"7e8ce557c902d3f3"},{"name":"seal","duration":26578,"timestamp":129937893559,"id":764,"parentId":751,"tags":{},"startTime":1757909433353,"traceId":"7e8ce557c902d3f3"},{"name":"webpack-compilation","duration":289301,"timestamp":129937630886,"id":751,"parentId":750,"tags":{"name":"client"},"startTime":1757909433091,"traceId":"7e8ce557c902d3f3"},{"name":"emit","duration":21540,"timestamp":129937920216,"id":779,"parentId":750,"tags":{},"startTime":1757909433380,"traceId":"7e8ce557c902d3f3"},{"name":"webpack-invalidated-client","duration":331962,"timestamp":129937613459,"id":750,"parentId":3,"tags":{"trigger":"pages/pricing.tsx"},"startTime":1757909433073,"traceId":"7e8ce557c902d3f3"}] -[{"name":"client-success","duration":9,"timestamp":129937948533,"id":780,"parentId":3,"tags":{},"startTime":1757909433408,"traceId":"7e8ce557c902d3f3"},{"name":"add-entry","duration":33831,"timestamp":129941318679,"id":784,"parentId":783,"tags":{"request":"D:\\dongyun-projects\\two\\node_modules\\next\\dist\\compiled\\@next\\react-refresh-utils\\dist\\runtime.js"},"startTime":1757909436779,"traceId":"7e8ce557c902d3f3"},{"name":"add-entry","duration":52258,"timestamp":129941318869,"id":788,"parentId":783,"tags":{"request":"next-client-pages-loader?absolutePagePath=private-next-pages%2F_error&page=%2F_error!"},"startTime":1757909436779,"traceId":"7e8ce557c902d3f3"},{"name":"add-entry","duration":71640,"timestamp":129941318852,"id":787,"parentId":783,"tags":{"request":"D:\\dongyun-projects\\two\\node_modules\\next\\dist\\client\\router.js"},"startTime":1757909436779,"traceId":"7e8ce557c902d3f3"},{"name":"add-entry","duration":71743,"timestamp":129941318887,"id":789,"parentId":783,"tags":{"request":"next-client-pages-loader?absolutePagePath=D%3A%5Cdongyun-projects%5Ctwo%5Cpages%5Cindex.tsx&page=%2F!"},"startTime":1757909436779,"traceId":"7e8ce557c902d3f3"},{"name":"add-entry","duration":72339,"timestamp":129941318911,"id":790,"parentId":783,"tags":{"request":"next-client-pages-loader?absolutePagePath=D%3A%5Cdongyun-projects%5Ctwo%5Cpages%5Cnews.tsx&page=%2Fnews!"},"startTime":1757909436779,"traceId":"7e8ce557c902d3f3"},{"name":"postcss-process","duration":317344,"timestamp":129941378831,"id":793,"parentId":792,"tags":{},"startTime":1757909436839,"traceId":"7e8ce557c902d3f3"},{"name":"postcss-loader","duration":318078,"timestamp":129941378768,"id":792,"parentId":791,"tags":{},"startTime":1757909436839,"traceId":"7e8ce557c902d3f3"},{"name":"css-loader","duration":53522,"timestamp":129941696932,"id":794,"parentId":791,"tags":{"astUsed":"true"},"startTime":1757909437157,"traceId":"7e8ce557c902d3f3"},{"name":"build-module-css","duration":384777,"timestamp":129941369663,"id":791,"parentId":782,"tags":{"name":"D:\\dongyun-projects\\two\\node_modules\\next\\dist\\build\\webpack\\loaders\\css-loader\\src\\index.js??ruleSet[1].rules[7].oneOf[13].use[1]!D:\\dongyun-projects\\two\\node_modules\\next\\dist\\build\\webpack\\loaders\\postcss-loader\\src\\index.js??ruleSet[1].rules[7].oneOf[13].use[2]!D:\\dongyun-projects\\two\\styles\\globals.css","layer":"pages-dir-browser"},"startTime":1757909436830,"traceId":"7e8ce557c902d3f3"},{"name":"add-entry","duration":444885,"timestamp":129941318810,"id":785,"parentId":783,"tags":{"request":"./node_modules/next/dist/client/next-dev.js"},"startTime":1757909436779,"traceId":"7e8ce557c902d3f3"},{"name":"add-entry","duration":445274,"timestamp":129941318835,"id":786,"parentId":783,"tags":{"request":"next-client-pages-loader?absolutePagePath=private-next-pages%2F_app&page=%2F_app!"},"startTime":1757909436779,"traceId":"7e8ce557c902d3f3"},{"name":"make","duration":447364,"timestamp":129941316805,"id":783,"parentId":782,"tags":{},"startTime":1757909436777,"traceId":"7e8ce557c902d3f3"},{"name":"chunk-graph","duration":2198,"timestamp":129941766627,"id":796,"parentId":795,"tags":{},"startTime":1757909437227,"traceId":"7e8ce557c902d3f3"},{"name":"optimize-modules","duration":18,"timestamp":129941768904,"id":798,"parentId":795,"tags":{},"startTime":1757909437229,"traceId":"7e8ce557c902d3f3"},{"name":"optimize-chunks","duration":142,"timestamp":129941768962,"id":799,"parentId":795,"tags":{},"startTime":1757909437229,"traceId":"7e8ce557c902d3f3"},{"name":"optimize-tree","duration":20,"timestamp":129941769155,"id":800,"parentId":795,"tags":{},"startTime":1757909437229,"traceId":"7e8ce557c902d3f3"},{"name":"optimize-chunk-modules","duration":18,"timestamp":129941769244,"id":801,"parentId":795,"tags":{},"startTime":1757909437229,"traceId":"7e8ce557c902d3f3"},{"name":"optimize","duration":8034,"timestamp":129941768879,"id":797,"parentId":795,"tags":{},"startTime":1757909437229,"traceId":"7e8ce557c902d3f3"},{"name":"module-hash","duration":752,"timestamp":129941779354,"id":802,"parentId":795,"tags":{},"startTime":1757909437239,"traceId":"7e8ce557c902d3f3"},{"name":"code-generation","duration":2402,"timestamp":129941780149,"id":803,"parentId":795,"tags":{},"startTime":1757909437240,"traceId":"7e8ce557c902d3f3"},{"name":"hash","duration":14586,"timestamp":129941786231,"id":804,"parentId":795,"tags":{},"startTime":1757909437246,"traceId":"7e8ce557c902d3f3"},{"name":"code-generation-jobs","duration":365,"timestamp":129941800813,"id":805,"parentId":795,"tags":{},"startTime":1757909437261,"traceId":"7e8ce557c902d3f3"},{"name":"module-assets","duration":186,"timestamp":129941801142,"id":806,"parentId":795,"tags":{},"startTime":1757909437261,"traceId":"7e8ce557c902d3f3"},{"name":"create-chunk-assets","duration":468,"timestamp":129941801352,"id":807,"parentId":795,"tags":{},"startTime":1757909437261,"traceId":"7e8ce557c902d3f3"},{"name":"NextJsBuildManifest-generateClientManifest","duration":7126,"timestamp":129941803144,"id":809,"parentId":782,"tags":{},"startTime":1757909437263,"traceId":"7e8ce557c902d3f3"},{"name":"NextJsBuildManifest-createassets","duration":7875,"timestamp":129941802439,"id":808,"parentId":782,"tags":{},"startTime":1757909437262,"traceId":"7e8ce557c902d3f3"},{"name":"seal","duration":46287,"timestamp":129941765287,"id":795,"parentId":782,"tags":{},"startTime":1757909437225,"traceId":"7e8ce557c902d3f3"},{"name":"webpack-compilation","duration":496087,"timestamp":129941315585,"id":782,"parentId":781,"tags":{"name":"client"},"startTime":1757909436776,"traceId":"7e8ce557c902d3f3"},{"name":"emit","duration":24711,"timestamp":129941811725,"id":810,"parentId":781,"tags":{},"startTime":1757909437272,"traceId":"7e8ce557c902d3f3"},{"name":"webpack-invalidated-client","duration":564166,"timestamp":129941281943,"id":781,"parentId":3,"tags":{"trigger":"pages/login.tsx"},"startTime":1757909436742,"traceId":"7e8ce557c902d3f3"}] -[{"name":"client-success","duration":10,"timestamp":129941850839,"id":811,"parentId":3,"tags":{},"startTime":1757909437311,"traceId":"7e8ce557c902d3f3"},{"name":"add-entry","duration":104964,"timestamp":129947573116,"id":815,"parentId":814,"tags":{"request":"D:\\dongyun-projects\\two\\node_modules\\next\\dist\\compiled\\@next\\react-refresh-utils\\dist\\runtime.js"},"startTime":1757909443033,"traceId":"7e8ce557c902d3f3"},{"name":"add-entry","duration":122371,"timestamp":129947573310,"id":819,"parentId":814,"tags":{"request":"next-client-pages-loader?absolutePagePath=private-next-pages%2F_error&page=%2F_error!"},"startTime":1757909443033,"traceId":"7e8ce557c902d3f3"},{"name":"add-entry","duration":146719,"timestamp":129947573298,"id":818,"parentId":814,"tags":{"request":"D:\\dongyun-projects\\two\\node_modules\\next\\dist\\client\\router.js"},"startTime":1757909443033,"traceId":"7e8ce557c902d3f3"},{"name":"add-entry","duration":151403,"timestamp":129947573334,"id":820,"parentId":814,"tags":{"request":"next-client-pages-loader?absolutePagePath=D%3A%5Cdongyun-projects%5Ctwo%5Cpages%5Cindex.tsx&page=%2F!"},"startTime":1757909443033,"traceId":"7e8ce557c902d3f3"},{"name":"postcss-process","duration":296203,"timestamp":129947710229,"id":824,"parentId":823,"tags":{},"startTime":1757909443170,"traceId":"7e8ce557c902d3f3"},{"name":"postcss-loader","duration":297040,"timestamp":129947710170,"id":823,"parentId":822,"tags":{},"startTime":1757909443170,"traceId":"7e8ce557c902d3f3"},{"name":"css-loader","duration":38452,"timestamp":129948007384,"id":825,"parentId":822,"tags":{"astUsed":"true"},"startTime":1757909443467,"traceId":"7e8ce557c902d3f3"},{"name":"build-module-css","duration":353560,"timestamp":129947694513,"id":822,"parentId":813,"tags":{"name":"D:\\dongyun-projects\\two\\node_modules\\next\\dist\\build\\webpack\\loaders\\css-loader\\src\\index.js??ruleSet[1].rules[7].oneOf[13].use[1]!D:\\dongyun-projects\\two\\node_modules\\next\\dist\\build\\webpack\\loaders\\postcss-loader\\src\\index.js??ruleSet[1].rules[7].oneOf[13].use[2]!D:\\dongyun-projects\\two\\styles\\globals.css","layer":"pages-dir-browser"},"startTime":1757909443154,"traceId":"7e8ce557c902d3f3"},{"name":"add-entry","duration":475175,"timestamp":129947573347,"id":821,"parentId":814,"tags":{"request":"next-client-pages-loader?absolutePagePath=D%3A%5Cdongyun-projects%5Ctwo%5Cpages%5Cnews.tsx&page=%2Fnews!"},"startTime":1757909443033,"traceId":"7e8ce557c902d3f3"},{"name":"add-entry","duration":476844,"timestamp":129947573262,"id":816,"parentId":814,"tags":{"request":"./node_modules/next/dist/client/next-dev.js"},"startTime":1757909443033,"traceId":"7e8ce557c902d3f3"},{"name":"add-entry","duration":478229,"timestamp":129947573282,"id":817,"parentId":814,"tags":{"request":"next-client-pages-loader?absolutePagePath=private-next-pages%2F_app&page=%2F_app!"},"startTime":1757909443033,"traceId":"7e8ce557c902d3f3"},{"name":"make","duration":513718,"timestamp":129947537882,"id":814,"parentId":813,"tags":{},"startTime":1757909442998,"traceId":"7e8ce557c902d3f3"},{"name":"chunk-graph","duration":3562,"timestamp":129948055962,"id":827,"parentId":826,"tags":{},"startTime":1757909443516,"traceId":"7e8ce557c902d3f3"},{"name":"optimize-modules","duration":30,"timestamp":129948059807,"id":829,"parentId":826,"tags":{},"startTime":1757909443520,"traceId":"7e8ce557c902d3f3"},{"name":"optimize-chunks","duration":177,"timestamp":129948059907,"id":830,"parentId":826,"tags":{},"startTime":1757909443520,"traceId":"7e8ce557c902d3f3"},{"name":"optimize-tree","duration":34,"timestamp":129948060167,"id":831,"parentId":826,"tags":{},"startTime":1757909443520,"traceId":"7e8ce557c902d3f3"},{"name":"optimize-chunk-modules","duration":25,"timestamp":129948060296,"id":832,"parentId":826,"tags":{},"startTime":1757909443520,"traceId":"7e8ce557c902d3f3"},{"name":"optimize","duration":1563,"timestamp":129948059735,"id":828,"parentId":826,"tags":{},"startTime":1757909443520,"traceId":"7e8ce557c902d3f3"},{"name":"module-hash","duration":1578,"timestamp":129948065057,"id":833,"parentId":826,"tags":{},"startTime":1757909443525,"traceId":"7e8ce557c902d3f3"},{"name":"code-generation","duration":4962,"timestamp":129948066721,"id":834,"parentId":826,"tags":{},"startTime":1757909443527,"traceId":"7e8ce557c902d3f3"},{"name":"hash","duration":15117,"timestamp":129948078030,"id":835,"parentId":826,"tags":{},"startTime":1757909443538,"traceId":"7e8ce557c902d3f3"},{"name":"code-generation-jobs","duration":529,"timestamp":129948093140,"id":836,"parentId":826,"tags":{},"startTime":1757909443553,"traceId":"7e8ce557c902d3f3"},{"name":"module-assets","duration":455,"timestamp":129948093622,"id":837,"parentId":826,"tags":{},"startTime":1757909443554,"traceId":"7e8ce557c902d3f3"},{"name":"create-chunk-assets","duration":720,"timestamp":129948094268,"id":838,"parentId":826,"tags":{},"startTime":1757909443554,"traceId":"7e8ce557c902d3f3"},{"name":"NextJsBuildManifest-generateClientManifest","duration":327,"timestamp":129948096167,"id":840,"parentId":813,"tags":{},"startTime":1757909443556,"traceId":"7e8ce557c902d3f3"},{"name":"NextJsBuildManifest-createassets","duration":634,"timestamp":129948095898,"id":839,"parentId":813,"tags":{},"startTime":1757909443556,"traceId":"7e8ce557c902d3f3"},{"name":"seal","duration":43281,"timestamp":129948054208,"id":826,"parentId":813,"tags":{},"startTime":1757909443514,"traceId":"7e8ce557c902d3f3"},{"name":"webpack-compilation","duration":564070,"timestamp":129947533615,"id":813,"parentId":812,"tags":{"name":"client"},"startTime":1757909442994,"traceId":"7e8ce557c902d3f3"},{"name":"emit","duration":34701,"timestamp":129948097744,"id":841,"parentId":812,"tags":{},"startTime":1757909443558,"traceId":"7e8ce557c902d3f3"},{"name":"webpack-invalidated-client","duration":623416,"timestamp":129947513016,"id":812,"parentId":3,"tags":{"trigger":"pages/news/[slug].tsx"},"startTime":1757909442973,"traceId":"7e8ce557c902d3f3"}] -[{"name":"client-success","duration":11,"timestamp":129948141814,"id":842,"parentId":3,"tags":{},"startTime":1757909443602,"traceId":"7e8ce557c902d3f3"},{"name":"add-entry","duration":20771,"timestamp":129952988055,"id":847,"parentId":846,"tags":{"request":"D:\\dongyun-projects\\two\\node_modules\\next\\dist\\compiled\\@next\\react-refresh-utils\\dist\\runtime.js"},"startTime":1757909448448,"traceId":"7e8ce557c902d3f3"},{"name":"add-entry","duration":29171,"timestamp":129952988223,"id":851,"parentId":846,"tags":{"request":"next-client-pages-loader?absolutePagePath=private-next-pages%2F_error&page=%2F_error!"},"startTime":1757909448448,"traceId":"7e8ce557c902d3f3"},{"name":"add-entry","duration":51763,"timestamp":129952988213,"id":850,"parentId":846,"tags":{"request":"D:\\dongyun-projects\\two\\node_modules\\next\\dist\\client\\router.js"},"startTime":1757909448448,"traceId":"7e8ce557c902d3f3"},{"name":"postcss-process","duration":270386,"timestamp":129953025306,"id":856,"parentId":855,"tags":{},"startTime":1757909448485,"traceId":"7e8ce557c902d3f3"},{"name":"postcss-loader","duration":271357,"timestamp":129953025273,"id":855,"parentId":854,"tags":{},"startTime":1757909448485,"traceId":"7e8ce557c902d3f3"},{"name":"css-loader","duration":44210,"timestamp":129953296726,"id":857,"parentId":854,"tags":{"astUsed":"true"},"startTime":1757909448757,"traceId":"7e8ce557c902d3f3"},{"name":"build-module-css","duration":327280,"timestamp":129953016134,"id":854,"parentId":845,"tags":{"name":"D:\\dongyun-projects\\two\\node_modules\\next\\dist\\build\\webpack\\loaders\\css-loader\\src\\index.js??ruleSet[1].rules[7].oneOf[13].use[1]!D:\\dongyun-projects\\two\\node_modules\\next\\dist\\build\\webpack\\loaders\\postcss-loader\\src\\index.js??ruleSet[1].rules[7].oneOf[13].use[2]!D:\\dongyun-projects\\two\\styles\\globals.css","layer":"pages-dir-browser"},"startTime":1757909448476,"traceId":"7e8ce557c902d3f3"},{"name":"add-entry","duration":355520,"timestamp":129952988250,"id":853,"parentId":846,"tags":{"request":"next-client-pages-loader?absolutePagePath=D%3A%5Cdongyun-projects%5Ctwo%5Cpages%5Cnews.tsx&page=%2Fnews!"},"startTime":1757909448448,"traceId":"7e8ce557c902d3f3"},{"name":"add-entry","duration":359226,"timestamp":129952988182,"id":848,"parentId":846,"tags":{"request":"./node_modules/next/dist/client/next-dev.js"},"startTime":1757909448448,"traceId":"7e8ce557c902d3f3"},{"name":"add-entry","duration":359362,"timestamp":129952988201,"id":849,"parentId":846,"tags":{"request":"next-client-pages-loader?absolutePagePath=private-next-pages%2F_app&page=%2F_app!"},"startTime":1757909448448,"traceId":"7e8ce557c902d3f3"},{"name":"build-module-tsx","duration":5130,"timestamp":129953345953,"id":858,"parentId":845,"tags":{"name":"D:\\dongyun-projects\\two\\pages\\index.tsx","layer":"pages-dir-browser"},"startTime":1757909448806,"traceId":"7e8ce557c902d3f3"},{"name":"add-entry","duration":654552,"timestamp":129952988238,"id":852,"parentId":846,"tags":{"request":"next-client-pages-loader?absolutePagePath=D%3A%5Cdongyun-projects%5Ctwo%5Cpages%5Cindex.tsx&page=%2F!"},"startTime":1757909448448,"traceId":"7e8ce557c902d3f3"},{"name":"make","duration":657164,"timestamp":129952985706,"id":846,"parentId":845,"tags":{},"startTime":1757909448446,"traceId":"7e8ce557c902d3f3"},{"name":"chunk-graph","duration":3435,"timestamp":129953645761,"id":860,"parentId":859,"tags":{},"startTime":1757909449106,"traceId":"7e8ce557c902d3f3"},{"name":"optimize-modules","duration":27,"timestamp":129953649293,"id":862,"parentId":859,"tags":{},"startTime":1757909449109,"traceId":"7e8ce557c902d3f3"},{"name":"optimize-chunks","duration":138,"timestamp":129953649370,"id":863,"parentId":859,"tags":{},"startTime":1757909449109,"traceId":"7e8ce557c902d3f3"},{"name":"optimize-tree","duration":35,"timestamp":129953649569,"id":864,"parentId":859,"tags":{},"startTime":1757909449110,"traceId":"7e8ce557c902d3f3"},{"name":"optimize-chunk-modules","duration":22,"timestamp":129953649678,"id":865,"parentId":859,"tags":{},"startTime":1757909449110,"traceId":"7e8ce557c902d3f3"},{"name":"optimize","duration":1554,"timestamp":129953649261,"id":861,"parentId":859,"tags":{},"startTime":1757909449109,"traceId":"7e8ce557c902d3f3"},{"name":"module-hash","duration":1454,"timestamp":129953654073,"id":866,"parentId":859,"tags":{},"startTime":1757909449114,"traceId":"7e8ce557c902d3f3"},{"name":"code-generation","duration":4839,"timestamp":129953655625,"id":867,"parentId":859,"tags":{},"startTime":1757909449116,"traceId":"7e8ce557c902d3f3"},{"name":"hash","duration":6826,"timestamp":129953663798,"id":868,"parentId":859,"tags":{},"startTime":1757909449124,"traceId":"7e8ce557c902d3f3"},{"name":"code-generation-jobs","duration":406,"timestamp":129953670620,"id":869,"parentId":859,"tags":{},"startTime":1757909449131,"traceId":"7e8ce557c902d3f3"},{"name":"module-assets","duration":205,"timestamp":129953670979,"id":870,"parentId":859,"tags":{},"startTime":1757909449131,"traceId":"7e8ce557c902d3f3"},{"name":"create-chunk-assets","duration":27250,"timestamp":129953671209,"id":871,"parentId":859,"tags":{},"startTime":1757909449131,"traceId":"7e8ce557c902d3f3"},{"name":"NextJsBuildManifest-generateClientManifest","duration":734,"timestamp":129953701680,"id":873,"parentId":845,"tags":{},"startTime":1757909449162,"traceId":"7e8ce557c902d3f3"},{"name":"NextJsBuildManifest-createassets","duration":933,"timestamp":129953701537,"id":872,"parentId":845,"tags":{},"startTime":1757909449161,"traceId":"7e8ce557c902d3f3"},{"name":"seal","duration":60161,"timestamp":129953644140,"id":859,"parentId":845,"tags":{},"startTime":1757909449104,"traceId":"7e8ce557c902d3f3"},{"name":"webpack-compilation","duration":720508,"timestamp":129952983972,"id":845,"parentId":843,"tags":{"name":"client"},"startTime":1757909448444,"traceId":"7e8ce557c902d3f3"},{"name":"emit","duration":23537,"timestamp":129953704572,"id":874,"parentId":843,"tags":{},"startTime":1757909449165,"traceId":"7e8ce557c902d3f3"},{"name":"webpack-invalidated-client","duration":764295,"timestamp":129952965542,"id":843,"parentId":3,"tags":{"trigger":"pages/index.tsx"},"startTime":1757909448425,"traceId":"7e8ce557c902d3f3"},{"name":"client-success","duration":34,"timestamp":129953742761,"id":877,"parentId":3,"tags":{},"startTime":1757909449203,"traceId":"7e8ce557c902d3f3"},{"name":"add-entry","duration":21320,"timestamp":129953748824,"id":878,"parentId":876,"tags":{"request":"private-next-pages/_app"},"startTime":1757909449209,"traceId":"7e8ce557c902d3f3"},{"name":"add-entry","duration":59569,"timestamp":129953748923,"id":880,"parentId":876,"tags":{"request":"private-next-pages/_document"},"startTime":1757909449209,"traceId":"7e8ce557c902d3f3"},{"name":"build-module-tsx","duration":10115,"timestamp":129953801665,"id":883,"parentId":875,"tags":{"name":"D:\\dongyun-projects\\two\\pages\\index.tsx","layer":"pages-dir-node"},"startTime":1757909449262,"traceId":"7e8ce557c902d3f3"},{"name":"client-hmr-latency","duration":864000,"timestamp":129952967118,"id":884,"parentId":3,"tags":{"updatedModules":["(pages-dir-browser)/./pages/index.tsx","(pages-dir-browser)/./node_modules/next/dist/build/webpack/loaders/css-loader/src/index.js??ruleSet[1].rules[7].oneOf[13].use[1]!./node_modules/next/dist/build/webpack/loaders/postcss-loader/src/index.js??ruleSet[1].rules[7].oneOf[13].use[2]!./styles/globals.css"],"page":"/news","isPageHidden":false,"clientId":1757909254293},"startTime":1757909449314,"traceId":"7e8ce557c902d3f3"},{"name":"add-entry","duration":119024,"timestamp":129953748910,"id":879,"parentId":876,"tags":{"request":"next-route-loader?kind=PAGES&page=%2F_error&preferredRegion=&absolutePagePath=private-next-pages%2F_error&absoluteAppPath=private-next-pages%2F_app&absoluteDocumentPath=private-next-pages%2F_document&middlewareConfigBase64=e30%3D!"},"startTime":1757909449209,"traceId":"7e8ce557c902d3f3"},{"name":"add-entry","duration":119117,"timestamp":129953748931,"id":881,"parentId":876,"tags":{"request":"next-route-loader?kind=PAGES&page=%2F&preferredRegion=&absolutePagePath=.%2Fpages%5Cindex.tsx&absoluteAppPath=private-next-pages%2F_app&absoluteDocumentPath=private-next-pages%2F_document&middlewareConfigBase64=e30%3D!"},"startTime":1757909449209,"traceId":"7e8ce557c902d3f3"},{"name":"add-entry","duration":119130,"timestamp":129953748940,"id":882,"parentId":876,"tags":{"request":"next-route-loader?kind=PAGES&page=%2Fnews&preferredRegion=&absolutePagePath=.%2Fpages%5Cnews.tsx&absoluteAppPath=private-next-pages%2F_app&absoluteDocumentPath=private-next-pages%2F_document&middlewareConfigBase64=e30%3D!"},"startTime":1757909449209,"traceId":"7e8ce557c902d3f3"},{"name":"make","duration":131135,"timestamp":129953736988,"id":876,"parentId":875,"tags":{},"startTime":1757909449197,"traceId":"7e8ce557c902d3f3"},{"name":"chunk-graph","duration":4948,"timestamp":129953872954,"id":886,"parentId":885,"tags":{},"startTime":1757909449333,"traceId":"7e8ce557c902d3f3"},{"name":"optimize-modules","duration":19,"timestamp":129953878019,"id":888,"parentId":885,"tags":{},"startTime":1757909449338,"traceId":"7e8ce557c902d3f3"},{"name":"optimize-chunks","duration":4127,"timestamp":129953878108,"id":889,"parentId":885,"tags":{},"startTime":1757909449338,"traceId":"7e8ce557c902d3f3"},{"name":"optimize-tree","duration":50,"timestamp":129953882336,"id":890,"parentId":885,"tags":{},"startTime":1757909449342,"traceId":"7e8ce557c902d3f3"},{"name":"optimize-chunk-modules","duration":30,"timestamp":129953882455,"id":891,"parentId":885,"tags":{},"startTime":1757909449342,"traceId":"7e8ce557c902d3f3"},{"name":"optimize","duration":5445,"timestamp":129953877988,"id":887,"parentId":885,"tags":{},"startTime":1757909449338,"traceId":"7e8ce557c902d3f3"},{"name":"module-hash","duration":1372,"timestamp":129953888253,"id":892,"parentId":885,"tags":{},"startTime":1757909449348,"traceId":"7e8ce557c902d3f3"},{"name":"code-generation","duration":16452,"timestamp":129953889721,"id":893,"parentId":885,"tags":{},"startTime":1757909449350,"traceId":"7e8ce557c902d3f3"},{"name":"hash","duration":3656,"timestamp":129953909980,"id":894,"parentId":885,"tags":{},"startTime":1757909449370,"traceId":"7e8ce557c902d3f3"},{"name":"code-generation-jobs","duration":200,"timestamp":129953913631,"id":895,"parentId":885,"tags":{},"startTime":1757909449374,"traceId":"7e8ce557c902d3f3"},{"name":"module-assets","duration":129,"timestamp":129953913800,"id":896,"parentId":885,"tags":{},"startTime":1757909449374,"traceId":"7e8ce557c902d3f3"},{"name":"create-chunk-assets","duration":2291,"timestamp":129953913945,"id":897,"parentId":885,"tags":{},"startTime":1757909449374,"traceId":"7e8ce557c902d3f3"},{"name":"seal","duration":47498,"timestamp":129953870680,"id":885,"parentId":875,"tags":{},"startTime":1757909449331,"traceId":"7e8ce557c902d3f3"},{"name":"webpack-compilation","duration":183385,"timestamp":129953734895,"id":875,"parentId":844,"tags":{"name":"server"},"startTime":1757909449195,"traceId":"7e8ce557c902d3f3"},{"name":"emit","duration":15294,"timestamp":129953918344,"id":898,"parentId":844,"tags":{},"startTime":1757909449378,"traceId":"7e8ce557c902d3f3"},{"name":"webpack-invalidated-server","duration":969135,"timestamp":129952965929,"id":844,"parentId":3,"tags":{"trigger":"pages/index.tsx"},"startTime":1757909448426,"traceId":"7e8ce557c902d3f3"}] -[{"name":"add-entry","duration":21673,"timestamp":129962688246,"id":903,"parentId":901,"tags":{"request":"D:\\dongyun-projects\\two\\node_modules\\next\\dist\\compiled\\@next\\react-refresh-utils\\dist\\runtime.js"},"startTime":1757909458148,"traceId":"7e8ce557c902d3f3"},{"name":"add-entry","duration":29473,"timestamp":129962688483,"id":907,"parentId":901,"tags":{"request":"next-client-pages-loader?absolutePagePath=private-next-pages%2F_error&page=%2F_error!"},"startTime":1757909458148,"traceId":"7e8ce557c902d3f3"},{"name":"add-entry","duration":51663,"timestamp":129962688463,"id":906,"parentId":901,"tags":{"request":"D:\\dongyun-projects\\two\\node_modules\\next\\dist\\client\\router.js"},"startTime":1757909458148,"traceId":"7e8ce557c902d3f3"},{"name":"add-entry","duration":51700,"timestamp":129962688506,"id":908,"parentId":901,"tags":{"request":"next-client-pages-loader?absolutePagePath=D%3A%5Cdongyun-projects%5Ctwo%5Cpages%5Cindex.tsx&page=%2F!"},"startTime":1757909458148,"traceId":"7e8ce557c902d3f3"},{"name":"postcss-process","duration":257362,"timestamp":129962721329,"id":912,"parentId":911,"tags":{},"startTime":1757909458181,"traceId":"7e8ce557c902d3f3"},{"name":"postcss-loader","duration":258160,"timestamp":129962721260,"id":911,"parentId":910,"tags":{},"startTime":1757909458181,"traceId":"7e8ce557c902d3f3"},{"name":"css-loader","duration":70452,"timestamp":129962979533,"id":913,"parentId":910,"tags":{"astUsed":"true"},"startTime":1757909458439,"traceId":"7e8ce557c902d3f3"},{"name":"build-module-css","duration":343996,"timestamp":129962716285,"id":910,"parentId":900,"tags":{"name":"D:\\dongyun-projects\\two\\node_modules\\next\\dist\\build\\webpack\\loaders\\css-loader\\src\\index.js??ruleSet[1].rules[7].oneOf[13].use[1]!D:\\dongyun-projects\\two\\node_modules\\next\\dist\\build\\webpack\\loaders\\postcss-loader\\src\\index.js??ruleSet[1].rules[7].oneOf[13].use[2]!D:\\dongyun-projects\\two\\styles\\globals.css","layer":"pages-dir-browser"},"startTime":1757909458176,"traceId":"7e8ce557c902d3f3"},{"name":"add-entry","duration":372319,"timestamp":129962688527,"id":909,"parentId":901,"tags":{"request":"next-client-pages-loader?absolutePagePath=D%3A%5Cdongyun-projects%5Ctwo%5Cpages%5Cnews.tsx&page=%2Fnews!"},"startTime":1757909458148,"traceId":"7e8ce557c902d3f3"},{"name":"add-entry","duration":378567,"timestamp":129962688405,"id":904,"parentId":901,"tags":{"request":"./node_modules/next/dist/client/next-dev.js"},"startTime":1757909458148,"traceId":"7e8ce557c902d3f3"},{"name":"add-entry","duration":378774,"timestamp":129962688439,"id":905,"parentId":901,"tags":{"request":"next-client-pages-loader?absolutePagePath=private-next-pages%2F_app&page=%2F_app!"},"startTime":1757909458148,"traceId":"7e8ce557c902d3f3"},{"name":"make","duration":396809,"timestamp":129962671198,"id":901,"parentId":900,"tags":{},"startTime":1757909458131,"traceId":"7e8ce557c902d3f3"},{"name":"chunk-graph","duration":23810,"timestamp":129963076434,"id":915,"parentId":914,"tags":{},"startTime":1757909458536,"traceId":"7e8ce557c902d3f3"},{"name":"optimize-modules","duration":19,"timestamp":129963100387,"id":917,"parentId":914,"tags":{},"startTime":1757909458560,"traceId":"7e8ce557c902d3f3"},{"name":"optimize-chunks","duration":2054,"timestamp":129963100479,"id":918,"parentId":914,"tags":{},"startTime":1757909458560,"traceId":"7e8ce557c902d3f3"},{"name":"optimize-tree","duration":41,"timestamp":129963102655,"id":919,"parentId":914,"tags":{},"startTime":1757909458563,"traceId":"7e8ce557c902d3f3"},{"name":"optimize-chunk-modules","duration":885,"timestamp":129963102766,"id":920,"parentId":914,"tags":{},"startTime":1757909458563,"traceId":"7e8ce557c902d3f3"},{"name":"optimize","duration":5201,"timestamp":129963100354,"id":916,"parentId":914,"tags":{},"startTime":1757909458560,"traceId":"7e8ce557c902d3f3"},{"name":"module-hash","duration":1608,"timestamp":129963109404,"id":921,"parentId":914,"tags":{},"startTime":1757909458569,"traceId":"7e8ce557c902d3f3"},{"name":"code-generation","duration":10113,"timestamp":129963111102,"id":922,"parentId":914,"tags":{},"startTime":1757909458571,"traceId":"7e8ce557c902d3f3"},{"name":"hash","duration":27025,"timestamp":129963137335,"id":923,"parentId":914,"tags":{},"startTime":1757909458597,"traceId":"7e8ce557c902d3f3"},{"name":"code-generation-jobs","duration":317,"timestamp":129963164356,"id":924,"parentId":914,"tags":{},"startTime":1757909458624,"traceId":"7e8ce557c902d3f3"},{"name":"module-assets","duration":179,"timestamp":129963164636,"id":925,"parentId":914,"tags":{},"startTime":1757909458625,"traceId":"7e8ce557c902d3f3"},{"name":"create-chunk-assets","duration":369,"timestamp":129963164836,"id":926,"parentId":914,"tags":{},"startTime":1757909458625,"traceId":"7e8ce557c902d3f3"},{"name":"NextJsBuildManifest-generateClientManifest","duration":240,"timestamp":129963166081,"id":928,"parentId":900,"tags":{},"startTime":1757909458626,"traceId":"7e8ce557c902d3f3"},{"name":"NextJsBuildManifest-createassets","duration":443,"timestamp":129963165894,"id":927,"parentId":900,"tags":{},"startTime":1757909458626,"traceId":"7e8ce557c902d3f3"},{"name":"seal","duration":94659,"timestamp":129963072383,"id":914,"parentId":900,"tags":{},"startTime":1757909458532,"traceId":"7e8ce557c902d3f3"},{"name":"webpack-compilation","duration":497177,"timestamp":129962669934,"id":900,"parentId":899,"tags":{"name":"client"},"startTime":1757909458130,"traceId":"7e8ce557c902d3f3"},{"name":"emit","duration":28591,"timestamp":129963167166,"id":929,"parentId":899,"tags":{},"startTime":1757909458627,"traceId":"7e8ce557c902d3f3"},{"name":"webpack-invalidated-client","duration":548503,"timestamp":129962650156,"id":899,"parentId":3,"tags":{"trigger":"pages/contact.tsx"},"startTime":1757909458110,"traceId":"7e8ce557c902d3f3"},{"name":"client-success","duration":7,"timestamp":129963209149,"id":933,"parentId":3,"tags":{},"startTime":1757909458669,"traceId":"7e8ce557c902d3f3"},{"name":"add-entry","duration":16037,"timestamp":129963211444,"id":934,"parentId":931,"tags":{"request":"private-next-pages/_app"},"startTime":1757909458671,"traceId":"7e8ce557c902d3f3"},{"name":"add-entry","duration":34766,"timestamp":129963211598,"id":936,"parentId":931,"tags":{"request":"private-next-pages/_document"},"startTime":1757909458672,"traceId":"7e8ce557c902d3f3"},{"name":"add-entry","duration":64970,"timestamp":129963211575,"id":935,"parentId":931,"tags":{"request":"next-route-loader?kind=PAGES&page=%2F_error&preferredRegion=&absolutePagePath=private-next-pages%2F_error&absoluteAppPath=private-next-pages%2F_app&absoluteDocumentPath=private-next-pages%2F_document&middlewareConfigBase64=e30%3D!"},"startTime":1757909458672,"traceId":"7e8ce557c902d3f3"},{"name":"build-module-tsx","duration":7878,"timestamp":129963280192,"id":939,"parentId":930,"tags":{"name":"D:\\dongyun-projects\\two\\pages\\index.tsx","layer":"pages-dir-node"},"startTime":1757909458740,"traceId":"7e8ce557c902d3f3"},{"name":"build-module-tsx","duration":21897,"timestamp":129963280560,"id":940,"parentId":930,"tags":{"name":"D:\\dongyun-projects\\two\\pages\\news.tsx","layer":"pages-dir-node"},"startTime":1757909458740,"traceId":"7e8ce557c902d3f3"},{"name":"add-entry","duration":148557,"timestamp":129963211615,"id":937,"parentId":931,"tags":{"request":"next-route-loader?kind=PAGES&page=%2F&preferredRegion=&absolutePagePath=.%2Fpages%5Cindex.tsx&absoluteAppPath=private-next-pages%2F_app&absoluteDocumentPath=private-next-pages%2F_document&middlewareConfigBase64=e30%3D!"},"startTime":1757909458672,"traceId":"7e8ce557c902d3f3"},{"name":"add-entry","duration":148414,"timestamp":129963211783,"id":938,"parentId":931,"tags":{"request":"next-route-loader?kind=PAGES&page=%2Fnews&preferredRegion=&absolutePagePath=.%2Fpages%5Cnews.tsx&absoluteAppPath=private-next-pages%2F_app&absoluteDocumentPath=private-next-pages%2F_document&middlewareConfigBase64=e30%3D!"},"startTime":1757909458672,"traceId":"7e8ce557c902d3f3"},{"name":"make","duration":156219,"timestamp":129963204021,"id":931,"parentId":930,"tags":{},"startTime":1757909458664,"traceId":"7e8ce557c902d3f3"},{"name":"chunk-graph","duration":9123,"timestamp":129963366980,"id":942,"parentId":941,"tags":{},"startTime":1757909458827,"traceId":"7e8ce557c902d3f3"},{"name":"optimize-modules","duration":18,"timestamp":129963376196,"id":944,"parentId":941,"tags":{},"startTime":1757909458836,"traceId":"7e8ce557c902d3f3"},{"name":"optimize-chunks","duration":4084,"timestamp":129963376265,"id":945,"parentId":941,"tags":{},"startTime":1757909458836,"traceId":"7e8ce557c902d3f3"},{"name":"optimize-tree","duration":34,"timestamp":129963380428,"id":946,"parentId":941,"tags":{},"startTime":1757909458840,"traceId":"7e8ce557c902d3f3"},{"name":"optimize-chunk-modules","duration":36,"timestamp":129963380516,"id":947,"parentId":941,"tags":{},"startTime":1757909458840,"traceId":"7e8ce557c902d3f3"},{"name":"optimize","duration":4798,"timestamp":129963376169,"id":943,"parentId":941,"tags":{},"startTime":1757909458836,"traceId":"7e8ce557c902d3f3"},{"name":"module-hash","duration":1923,"timestamp":129963389574,"id":948,"parentId":941,"tags":{},"startTime":1757909458850,"traceId":"7e8ce557c902d3f3"},{"name":"code-generation","duration":1830,"timestamp":129963391569,"id":949,"parentId":941,"tags":{},"startTime":1757909458852,"traceId":"7e8ce557c902d3f3"},{"name":"hash","duration":3631,"timestamp":129963395491,"id":950,"parentId":941,"tags":{},"startTime":1757909458855,"traceId":"7e8ce557c902d3f3"},{"name":"code-generation-jobs","duration":992,"timestamp":129963399118,"id":951,"parentId":941,"tags":{},"startTime":1757909458859,"traceId":"7e8ce557c902d3f3"},{"name":"module-assets","duration":141,"timestamp":129963400065,"id":952,"parentId":941,"tags":{},"startTime":1757909458860,"traceId":"7e8ce557c902d3f3"},{"name":"create-chunk-assets","duration":1769,"timestamp":129963400294,"id":953,"parentId":941,"tags":{},"startTime":1757909458860,"traceId":"7e8ce557c902d3f3"},{"name":"seal","duration":38837,"timestamp":129963364123,"id":941,"parentId":930,"tags":{},"startTime":1757909458824,"traceId":"7e8ce557c902d3f3"},{"name":"webpack-compilation","duration":199998,"timestamp":129963203033,"id":930,"parentId":902,"tags":{"name":"server"},"startTime":1757909458663,"traceId":"7e8ce557c902d3f3"},{"name":"emit","duration":32403,"timestamp":129963403077,"id":954,"parentId":902,"tags":{},"startTime":1757909458863,"traceId":"7e8ce557c902d3f3"},{"name":"webpack-invalidated-server","duration":750545,"timestamp":129962686769,"id":902,"parentId":3,"tags":{"trigger":"pages/news.tsx"},"startTime":1757909458147,"traceId":"7e8ce557c902d3f3"},{"name":"add-entry","duration":22066,"timestamp":129963476702,"id":957,"parentId":956,"tags":{"request":"D:\\dongyun-projects\\two\\node_modules\\next\\dist\\compiled\\@next\\react-refresh-utils\\dist\\runtime.js"},"startTime":1757909458937,"traceId":"7e8ce557c902d3f3"},{"name":"build-module-tsx","duration":11172,"timestamp":129963496588,"id":964,"parentId":955,"tags":{"name":"D:\\dongyun-projects\\two\\pages\\index.tsx","layer":"pages-dir-browser"},"startTime":1757909458957,"traceId":"7e8ce557c902d3f3"},{"name":"build-module-tsx","duration":19037,"timestamp":129963497279,"id":965,"parentId":955,"tags":{"name":"D:\\dongyun-projects\\two\\pages\\news.tsx","layer":"pages-dir-browser"},"startTime":1757909458957,"traceId":"7e8ce557c902d3f3"},{"name":"add-entry","duration":40396,"timestamp":129963476980,"id":960,"parentId":956,"tags":{"request":"D:\\dongyun-projects\\two\\node_modules\\next\\dist\\client\\router.js"},"startTime":1757909458937,"traceId":"7e8ce557c902d3f3"},{"name":"postcss-process","duration":158170,"timestamp":129963524046,"id":968,"parentId":967,"tags":{},"startTime":1757909458984,"traceId":"7e8ce557c902d3f3"},{"name":"postcss-loader","duration":159062,"timestamp":129963523790,"id":967,"parentId":966,"tags":{},"startTime":1757909458984,"traceId":"7e8ce557c902d3f3"},{"name":"css-loader","duration":41542,"timestamp":129963682942,"id":969,"parentId":966,"tags":{"astUsed":"true"},"startTime":1757909459143,"traceId":"7e8ce557c902d3f3"},{"name":"build-module-css","duration":203873,"timestamp":129963523334,"id":966,"parentId":955,"tags":{"name":"D:\\dongyun-projects\\two\\node_modules\\next\\dist\\build\\webpack\\loaders\\css-loader\\src\\index.js??ruleSet[1].rules[7].oneOf[13].use[1]!D:\\dongyun-projects\\two\\node_modules\\next\\dist\\build\\webpack\\loaders\\postcss-loader\\src\\index.js??ruleSet[1].rules[7].oneOf[13].use[2]!D:\\dongyun-projects\\two\\styles\\globals.css","layer":"pages-dir-browser"},"startTime":1757909458983,"traceId":"7e8ce557c902d3f3"},{"name":"add-entry","duration":267610,"timestamp":129963476993,"id":961,"parentId":956,"tags":{"request":"next-client-pages-loader?absolutePagePath=private-next-pages%2F_error&page=%2F_error!"},"startTime":1757909458937,"traceId":"7e8ce557c902d3f3"},{"name":"add-entry","duration":287404,"timestamp":129963476938,"id":958,"parentId":956,"tags":{"request":"./node_modules/next/dist/client/next-dev.js"},"startTime":1757909458937,"traceId":"7e8ce557c902d3f3"},{"name":"add-entry","duration":287398,"timestamp":129963476966,"id":959,"parentId":956,"tags":{"request":"next-client-pages-loader?absolutePagePath=private-next-pages%2F_app&page=%2F_app!"},"startTime":1757909458937,"traceId":"7e8ce557c902d3f3"},{"name":"add-entry","duration":300368,"timestamp":129963477010,"id":962,"parentId":956,"tags":{"request":"next-client-pages-loader?absolutePagePath=D%3A%5Cdongyun-projects%5Ctwo%5Cpages%5Cindex.tsx&page=%2F!"},"startTime":1757909458937,"traceId":"7e8ce557c902d3f3"},{"name":"add-entry","duration":329631,"timestamp":129963477028,"id":963,"parentId":956,"tags":{"request":"next-client-pages-loader?absolutePagePath=D%3A%5Cdongyun-projects%5Ctwo%5Cpages%5Cnews.tsx&page=%2Fnews!"},"startTime":1757909458937,"traceId":"7e8ce557c902d3f3"},{"name":"make","duration":357396,"timestamp":129963449339,"id":956,"parentId":955,"tags":{},"startTime":1757909458909,"traceId":"7e8ce557c902d3f3"},{"name":"chunk-graph","duration":3034,"timestamp":129963810727,"id":971,"parentId":970,"tags":{},"startTime":1757909459271,"traceId":"7e8ce557c902d3f3"},{"name":"optimize-modules","duration":26,"timestamp":129963813853,"id":973,"parentId":970,"tags":{},"startTime":1757909459274,"traceId":"7e8ce557c902d3f3"},{"name":"optimize-chunks","duration":162,"timestamp":129963814007,"id":974,"parentId":970,"tags":{},"startTime":1757909459274,"traceId":"7e8ce557c902d3f3"},{"name":"optimize-tree","duration":46,"timestamp":129963814237,"id":975,"parentId":970,"tags":{},"startTime":1757909459274,"traceId":"7e8ce557c902d3f3"},{"name":"optimize-chunk-modules","duration":33,"timestamp":129963814368,"id":976,"parentId":970,"tags":{},"startTime":1757909459274,"traceId":"7e8ce557c902d3f3"},{"name":"optimize","duration":2163,"timestamp":129963813825,"id":972,"parentId":970,"tags":{},"startTime":1757909459274,"traceId":"7e8ce557c902d3f3"},{"name":"module-hash","duration":3372,"timestamp":129963819792,"id":977,"parentId":970,"tags":{},"startTime":1757909459280,"traceId":"7e8ce557c902d3f3"},{"name":"code-generation","duration":6863,"timestamp":129963823262,"id":978,"parentId":970,"tags":{},"startTime":1757909459283,"traceId":"7e8ce557c902d3f3"},{"name":"hash","duration":6124,"timestamp":129963844978,"id":979,"parentId":970,"tags":{},"startTime":1757909459305,"traceId":"7e8ce557c902d3f3"},{"name":"code-generation-jobs","duration":7876,"timestamp":129963851096,"id":980,"parentId":970,"tags":{},"startTime":1757909459311,"traceId":"7e8ce557c902d3f3"},{"name":"module-assets","duration":782,"timestamp":129963858719,"id":981,"parentId":970,"tags":{},"startTime":1757909459319,"traceId":"7e8ce557c902d3f3"},{"name":"create-chunk-assets","duration":2180,"timestamp":129963859601,"id":982,"parentId":970,"tags":{},"startTime":1757909459320,"traceId":"7e8ce557c902d3f3"},{"name":"NextJsBuildManifest-generateClientManifest","duration":391,"timestamp":129963862791,"id":984,"parentId":955,"tags":{},"startTime":1757909459323,"traceId":"7e8ce557c902d3f3"},{"name":"NextJsBuildManifest-createassets","duration":594,"timestamp":129963862613,"id":983,"parentId":955,"tags":{},"startTime":1757909459323,"traceId":"7e8ce557c902d3f3"},{"name":"seal","duration":55191,"timestamp":129963808898,"id":970,"parentId":955,"tags":{},"startTime":1757909459269,"traceId":"7e8ce557c902d3f3"},{"name":"webpack-compilation","duration":416172,"timestamp":129963447988,"id":955,"parentId":932,"tags":{"name":"client"},"startTime":1757909458908,"traceId":"7e8ce557c902d3f3"},{"name":"emit","duration":16744,"timestamp":129963864205,"id":985,"parentId":932,"tags":{},"startTime":1757909459324,"traceId":"7e8ce557c902d3f3"},{"name":"webpack-invalidated-client","duration":858371,"timestamp":129963207886,"id":932,"parentId":3,"tags":{"trigger":"pages/index.tsx"},"startTime":1757909458668,"traceId":"7e8ce557c902d3f3"}] -[{"name":"client-success","duration":6,"timestamp":129964083400,"id":986,"parentId":3,"tags":{},"startTime":1757909459543,"traceId":"7e8ce557c902d3f3"},{"name":"add-entry","duration":38880,"timestamp":129970968325,"id":990,"parentId":989,"tags":{"request":"D:\\dongyun-projects\\two\\node_modules\\next\\dist\\compiled\\@next\\react-refresh-utils\\dist\\runtime.js"},"startTime":1757909466428,"traceId":"7e8ce557c902d3f3"},{"name":"add-entry","duration":143195,"timestamp":129970968736,"id":994,"parentId":989,"tags":{"request":"next-client-pages-loader?absolutePagePath=private-next-pages%2F_error&page=%2F_error!"},"startTime":1757909466429,"traceId":"7e8ce557c902d3f3"},{"name":"add-entry","duration":204140,"timestamp":129970968717,"id":993,"parentId":989,"tags":{"request":"D:\\dongyun-projects\\two\\node_modules\\next\\dist\\client\\router.js"},"startTime":1757909466429,"traceId":"7e8ce557c902d3f3"},{"name":"add-entry","duration":204807,"timestamp":129970968758,"id":995,"parentId":989,"tags":{"request":"next-client-pages-loader?absolutePagePath=D%3A%5Cdongyun-projects%5Ctwo%5Cpages%5Cindex.tsx&page=%2F!"},"startTime":1757909466429,"traceId":"7e8ce557c902d3f3"},{"name":"add-entry","duration":212635,"timestamp":129970968780,"id":996,"parentId":989,"tags":{"request":"next-client-pages-loader?absolutePagePath=D%3A%5Cdongyun-projects%5Ctwo%5Cpages%5Cnews.tsx&page=%2Fnews!"},"startTime":1757909466429,"traceId":"7e8ce557c902d3f3"},{"name":"postcss-process","duration":400330,"timestamp":129971126302,"id":999,"parentId":998,"tags":{},"startTime":1757909466586,"traceId":"7e8ce557c902d3f3"},{"name":"postcss-loader","duration":401143,"timestamp":129971126255,"id":998,"parentId":997,"tags":{},"startTime":1757909466586,"traceId":"7e8ce557c902d3f3"},{"name":"css-loader","duration":84036,"timestamp":129971527497,"id":1000,"parentId":997,"tags":{"astUsed":"true"},"startTime":1757909466987,"traceId":"7e8ce557c902d3f3"},{"name":"build-module-css","duration":518767,"timestamp":129971108983,"id":997,"parentId":988,"tags":{"name":"D:\\dongyun-projects\\two\\node_modules\\next\\dist\\build\\webpack\\loaders\\css-loader\\src\\index.js??ruleSet[1].rules[7].oneOf[13].use[1]!D:\\dongyun-projects\\two\\node_modules\\next\\dist\\build\\webpack\\loaders\\postcss-loader\\src\\index.js??ruleSet[1].rules[7].oneOf[13].use[2]!D:\\dongyun-projects\\two\\styles\\globals.css","layer":"pages-dir-browser"},"startTime":1757909466569,"traceId":"7e8ce557c902d3f3"},{"name":"add-entry","duration":662727,"timestamp":129970968655,"id":991,"parentId":989,"tags":{"request":"./node_modules/next/dist/client/next-dev.js"},"startTime":1757909466429,"traceId":"7e8ce557c902d3f3"},{"name":"add-entry","duration":662797,"timestamp":129970968695,"id":992,"parentId":989,"tags":{"request":"next-client-pages-loader?absolutePagePath=private-next-pages%2F_app&page=%2F_app!"},"startTime":1757909466429,"traceId":"7e8ce557c902d3f3"},{"name":"make","duration":667083,"timestamp":129970964457,"id":989,"parentId":988,"tags":{},"startTime":1757909466424,"traceId":"7e8ce557c902d3f3"},{"name":"chunk-graph","duration":5393,"timestamp":129971637780,"id":1002,"parentId":1001,"tags":{},"startTime":1757909467098,"traceId":"7e8ce557c902d3f3"},{"name":"optimize-modules","duration":21,"timestamp":129971643278,"id":1004,"parentId":1001,"tags":{},"startTime":1757909467103,"traceId":"7e8ce557c902d3f3"},{"name":"optimize-chunks","duration":3128,"timestamp":129971643954,"id":1005,"parentId":1001,"tags":{},"startTime":1757909467104,"traceId":"7e8ce557c902d3f3"},{"name":"optimize-tree","duration":38,"timestamp":129971647195,"id":1006,"parentId":1001,"tags":{},"startTime":1757909467107,"traceId":"7e8ce557c902d3f3"},{"name":"optimize-chunk-modules","duration":36,"timestamp":129971647412,"id":1007,"parentId":1001,"tags":{},"startTime":1757909467107,"traceId":"7e8ce557c902d3f3"},{"name":"optimize","duration":5204,"timestamp":129971643245,"id":1003,"parentId":1001,"tags":{},"startTime":1757909467103,"traceId":"7e8ce557c902d3f3"},{"name":"module-hash","duration":892,"timestamp":129971653676,"id":1008,"parentId":1001,"tags":{},"startTime":1757909467114,"traceId":"7e8ce557c902d3f3"},{"name":"code-generation","duration":5092,"timestamp":129971654634,"id":1009,"parentId":1001,"tags":{},"startTime":1757909467115,"traceId":"7e8ce557c902d3f3"},{"name":"hash","duration":9361,"timestamp":129971668689,"id":1010,"parentId":1001,"tags":{},"startTime":1757909467129,"traceId":"7e8ce557c902d3f3"},{"name":"code-generation-jobs","duration":251,"timestamp":129971678045,"id":1011,"parentId":1001,"tags":{},"startTime":1757909467138,"traceId":"7e8ce557c902d3f3"},{"name":"module-assets","duration":237,"timestamp":129971678264,"id":1012,"parentId":1001,"tags":{},"startTime":1757909467138,"traceId":"7e8ce557c902d3f3"},{"name":"create-chunk-assets","duration":480,"timestamp":129971678516,"id":1013,"parentId":1001,"tags":{},"startTime":1757909467138,"traceId":"7e8ce557c902d3f3"},{"name":"NextJsBuildManifest-generateClientManifest","duration":287,"timestamp":129971679917,"id":1015,"parentId":988,"tags":{},"startTime":1757909467140,"traceId":"7e8ce557c902d3f3"},{"name":"NextJsBuildManifest-createassets","duration":551,"timestamp":129971679679,"id":1014,"parentId":988,"tags":{},"startTime":1757909467140,"traceId":"7e8ce557c902d3f3"},{"name":"seal","duration":48811,"timestamp":129971632693,"id":1001,"parentId":988,"tags":{},"startTime":1757909467093,"traceId":"7e8ce557c902d3f3"},{"name":"webpack-compilation","duration":718200,"timestamp":129970963695,"id":988,"parentId":987,"tags":{"name":"client"},"startTime":1757909466424,"traceId":"7e8ce557c902d3f3"},{"name":"emit","duration":30170,"timestamp":129971681983,"id":1016,"parentId":987,"tags":{},"startTime":1757909467142,"traceId":"7e8ce557c902d3f3"},{"name":"webpack-invalidated-client","duration":777597,"timestamp":129970939106,"id":987,"parentId":3,"tags":{"trigger":"pages/news/[slug].tsx"},"startTime":1757909466399,"traceId":"7e8ce557c902d3f3"}] diff --git a/components/Contact.tsx b/components/Contact.tsx index 2da9d14..0d96f18 100644 --- a/components/Contact.tsx +++ b/components/Contact.tsx @@ -1,6 +1,6 @@ 'use client'; import { useState } from 'react'; -import { Mail, Phone, MapPin, Clock, Send, CheckCircle, AlertCircle, Building, MessageSquare } from 'lucide-react'; +import { Mail, Phone, MapPin, Clock, Send, CheckCircle, AlertCircle, Building, MessageSquare, MessageCircle } from 'lucide-react'; export default function Contact() { const [form, setForm] = useState({ diff --git a/deploy.ps1 b/deploy.ps1 new file mode 100644 index 0000000..0534258 --- /dev/null +++ b/deploy.ps1 @@ -0,0 +1,103 @@ +# Pinnovate Cloud 部署脚本 +# 支持多种部署方式 + +param( + [Parameter(Mandatory=$false)] + [ValidateSet("vercel", "netlify", "github", "docker", "static")] + [string]$Platform = "static" +) + +Write-Host "🚀 开始部署 Pinnovate Cloud 到 $Platform..." -ForegroundColor Green + +# 检查 Node.js 和 npm +try { + $nodeVersion = node --version + $npmVersion = npm --version + Write-Host "✅ Node.js 版本: $nodeVersion" -ForegroundColor Green + Write-Host "✅ npm 版本: $npmVersion" -ForegroundColor Green +} catch { + Write-Host "❌ 请先安装 Node.js 和 npm" -ForegroundColor Red + exit 1 +} + +# 安装依赖 +Write-Host "📦 安装依赖..." -ForegroundColor Yellow +npm ci + +if ($LASTEXITCODE -ne 0) { + Write-Host "❌ 依赖安装失败" -ForegroundColor Red + exit 1 +} + +# 根据平台执行不同的部署 +switch ($Platform) { + "static" { + Write-Host "🏗️ 构建静态网站..." -ForegroundColor Yellow + npm run build:static + + if ($LASTEXITCODE -eq 0) { + Write-Host "✅ 静态网站构建成功!" -ForegroundColor Green + Write-Host "📁 静态文件位于: ./out 目录" -ForegroundColor Cyan + Write-Host "🌐 可以直接部署到任何静态文件服务器" -ForegroundColor Cyan + } else { + Write-Host "❌ 静态网站构建失败" -ForegroundColor Red + exit 1 + } + } + + "vercel" { + Write-Host "🏗️ 构建项目..." -ForegroundColor Yellow + npm run build + + Write-Host "🚀 部署到 Vercel..." -ForegroundColor Yellow + npx vercel --prod + + if ($LASTEXITCODE -eq 0) { + Write-Host "✅ Vercel 部署成功!" -ForegroundColor Green + } else { + Write-Host "❌ Vercel 部署失败" -ForegroundColor Red + exit 1 + } + } + + "netlify" { + Write-Host "🏗️ 构建静态网站..." -ForegroundColor Yellow + npm run build:static + + Write-Host "🚀 部署到 Netlify..." -ForegroundColor Yellow + npx netlify deploy --prod --dir=out + + if ($LASTEXITCODE -eq 0) { + Write-Host "✅ Netlify 部署成功!" -ForegroundColor Green + } else { + Write-Host "❌ Netlify 部署失败" -ForegroundColor Red + exit 1 + } + } + + "github" { + Write-Host "🏗️ 构建静态网站..." -ForegroundColor Yellow + npm run build:static + + Write-Host "🚀 部署到 GitHub Pages..." -ForegroundColor Yellow + Write-Host "请确保已配置 GitHub Actions 工作流" -ForegroundColor Cyan + Write-Host "推送代码到 main 分支将自动触发部署" -ForegroundColor Cyan + } + + "docker" { + Write-Host "🏗️ 构建 Docker 镜像..." -ForegroundColor Yellow + docker build -t pinnovate-cloud . + + if ($LASTEXITCODE -eq 0) { + Write-Host "✅ Docker 镜像构建成功!" -ForegroundColor Green + Write-Host "🐳 运行容器: docker run -p 80:80 pinnovate-cloud" -ForegroundColor Cyan + Write-Host "🐳 使用 Docker Compose: docker-compose up -d" -ForegroundColor Cyan + } else { + Write-Host "❌ Docker 镜像构建失败" -ForegroundColor Red + exit 1 + } + } +} + +Write-Host "🎉 部署完成!" -ForegroundColor Green +Write-Host "📖 更多部署选项请查看 README.md" -ForegroundColor Cyan diff --git a/docker-compose.yml b/docker-compose.yml new file mode 100644 index 0000000..f01c953 --- /dev/null +++ b/docker-compose.yml @@ -0,0 +1,28 @@ +version: '3.8' + +services: + pinnovate-cloud: + build: . + ports: + - "80:80" + environment: + - NODE_ENV=production + restart: unless-stopped + healthcheck: + test: ["CMD", "wget", "--quiet", "--tries=1", "--spider", "http://localhost/health"] + interval: 30s + timeout: 10s + retries: 3 + start_period: 40s + + # 可选:添加 Nginx 反向代理 + nginx-proxy: + image: nginx:alpine + ports: + - "443:443" + volumes: + - ./nginx-ssl.conf:/etc/nginx/nginx.conf + - ./ssl:/etc/nginx/ssl + depends_on: + - pinnovate-cloud + restart: unless-stopped diff --git a/netlify.toml b/netlify.toml new file mode 100644 index 0000000..603982c --- /dev/null +++ b/netlify.toml @@ -0,0 +1,39 @@ +[build] + publish = "out" + command = "npm run build:static" + +[build.environment] + NODE_VERSION = "18" + +[[redirects]] + from = "/home" + to = "/" + status = 301 + +[[redirects]] + from = "/*" + to = "/index.html" + status = 200 + +[[headers]] + for = "/*" + [headers.values] + X-Frame-Options = "DENY" + X-XSS-Protection = "1; mode=block" + X-Content-Type-Options = "nosniff" + Referrer-Policy = "strict-origin-when-cross-origin" + +[[headers]] + for = "/static/*" + [headers.values] + Cache-Control = "public, max-age=31536000, immutable" + +[[headers]] + for = "/*.js" + [headers.values] + Cache-Control = "public, max-age=31536000, immutable" + +[[headers]] + for = "/*.css" + [headers.values] + Cache-Control = "public, max-age=31536000, immutable" diff --git a/next.config.js b/next.config.js index a652e9b..af22a9f 100644 --- a/next.config.js +++ b/next.config.js @@ -3,5 +3,21 @@ const nextConfig = { distDir: 'build', // 改变默认的 .next 目录 reactStrictMode: true, + output: 'export', // 启用静态导出 + trailingSlash: true, // 添加尾部斜杠 + images: { + unoptimized: true, // 静态导出时禁用图片优化 + }, + // 静态导出时的路径配置 + assetPrefix: process.env.NODE_ENV === 'production' ? '' : '', + // 生成 sitemap + async rewrites() { + return [ + { + source: '/sitemap.xml', + destination: '/api/sitemap', + }, + ]; + }, }; module.exports = nextConfig; diff --git a/nginx.conf b/nginx.conf new file mode 100644 index 0000000..6d32145 --- /dev/null +++ b/nginx.conf @@ -0,0 +1,78 @@ +events { + worker_connections 1024; +} + +http { + include /etc/nginx/mime.types; + default_type application/octet-stream; + + # 日志格式 + log_format main '$remote_addr - $remote_user [$time_local] "$request" ' + '$status $body_bytes_sent "$http_referer" ' + '"$http_user_agent" "$http_x_forwarded_for"'; + + access_log /var/log/nginx/access.log main; + error_log /var/log/nginx/error.log; + + # 基本设置 + sendfile on; + tcp_nopush on; + tcp_nodelay on; + keepalive_timeout 65; + types_hash_max_size 2048; + + # Gzip 压缩 + gzip on; + gzip_vary on; + gzip_min_length 1024; + gzip_proxied any; + gzip_comp_level 6; + gzip_types + text/plain + text/css + text/xml + text/javascript + application/json + application/javascript + application/xml+rss + application/atom+xml + image/svg+xml; + + server { + listen 80; + server_name localhost; + root /usr/share/nginx/html; + index index.html; + + # 安全头 + add_header X-Frame-Options "SAMEORIGIN" always; + add_header X-XSS-Protection "1; mode=block" always; + add_header X-Content-Type-Options "nosniff" always; + add_header Referrer-Policy "no-referrer-when-downgrade" always; + add_header Content-Security-Policy "default-src 'self' http: https: data: blob: 'unsafe-inline'" always; + + # 静态资源缓存 + location ~* \.(js|css|png|jpg|jpeg|gif|ico|svg)$ { + expires 1y; + add_header Cache-Control "public, immutable"; + } + + # HTML 文件缓存 + location ~* \.html$ { + expires 1h; + add_header Cache-Control "public"; + } + + # SPA 路由支持 + location / { + try_files $uri $uri/ /index.html; + } + + # 健康检查 + location /health { + access_log off; + return 200 "healthy\n"; + add_header Content-Type text/plain; + } + } +} diff --git a/package.json b/package.json index dc8e7f9..0fb97a0 100644 --- a/package.json +++ b/package.json @@ -1,11 +1,23 @@ { - "name": "aws-proxy-site", + "name": "pinnovate-cloud", "version": "1.0.0", "private": true, "scripts": { "dev": "next dev", "build": "next build", - "start": "next start" + "start": "next start", + "export": "next build && next export", + "build:static": "next build && next export", + "deploy": "npm run build:static && npm run deploy:static", + "deploy:static": "echo 'Static files ready for deployment in out/ directory'", + "type-check": "tsc --noEmit", + "lint": "next lint", + "clean": "rm -rf .next out build dist", + "preview": "npm run build && npm run start", + "deploy:vercel": "vercel --prod", + "deploy:netlify": "npm run build:static && netlify deploy --prod --dir=out", + "docker:build": "docker build -t pinnovate-cloud .", + "docker:run": "docker run -p 80:80 pinnovate-cloud" }, "dependencies": { "fs": "^0.0.1-security", diff --git a/tsconfig.tsbuildinfo b/tsconfig.tsbuildinfo new file mode 100644 index 0000000..a82efaf --- /dev/null +++ b/tsconfig.tsbuildinfo @@ -0,0 +1 @@ +{"program":{"fileNames":["./node_modules/typescript/lib/lib.es5.d.ts","./node_modules/typescript/lib/lib.es2015.d.ts","./node_modules/typescript/lib/lib.es2016.d.ts","./node_modules/typescript/lib/lib.es2017.d.ts","./node_modules/typescript/lib/lib.es2018.d.ts","./node_modules/typescript/lib/lib.es2019.d.ts","./node_modules/typescript/lib/lib.es2020.d.ts","./node_modules/typescript/lib/lib.es2021.d.ts","./node_modules/typescript/lib/lib.es2022.d.ts","./node_modules/typescript/lib/lib.esnext.d.ts","./node_modules/typescript/lib/lib.dom.d.ts","./node_modules/typescript/lib/lib.dom.iterable.d.ts","./node_modules/typescript/lib/lib.es2015.core.d.ts","./node_modules/typescript/lib/lib.es2015.collection.d.ts","./node_modules/typescript/lib/lib.es2015.generator.d.ts","./node_modules/typescript/lib/lib.es2015.iterable.d.ts","./node_modules/typescript/lib/lib.es2015.promise.d.ts","./node_modules/typescript/lib/lib.es2015.proxy.d.ts","./node_modules/typescript/lib/lib.es2015.reflect.d.ts","./node_modules/typescript/lib/lib.es2015.symbol.d.ts","./node_modules/typescript/lib/lib.es2015.symbol.wellknown.d.ts","./node_modules/typescript/lib/lib.es2016.array.include.d.ts","./node_modules/typescript/lib/lib.es2017.object.d.ts","./node_modules/typescript/lib/lib.es2017.sharedmemory.d.ts","./node_modules/typescript/lib/lib.es2017.string.d.ts","./node_modules/typescript/lib/lib.es2017.intl.d.ts","./node_modules/typescript/lib/lib.es2017.typedarrays.d.ts","./node_modules/typescript/lib/lib.es2018.asyncgenerator.d.ts","./node_modules/typescript/lib/lib.es2018.asynciterable.d.ts","./node_modules/typescript/lib/lib.es2018.intl.d.ts","./node_modules/typescript/lib/lib.es2018.promise.d.ts","./node_modules/typescript/lib/lib.es2018.regexp.d.ts","./node_modules/typescript/lib/lib.es2019.array.d.ts","./node_modules/typescript/lib/lib.es2019.object.d.ts","./node_modules/typescript/lib/lib.es2019.string.d.ts","./node_modules/typescript/lib/lib.es2019.symbol.d.ts","./node_modules/typescript/lib/lib.es2019.intl.d.ts","./node_modules/typescript/lib/lib.es2020.bigint.d.ts","./node_modules/typescript/lib/lib.es2020.date.d.ts","./node_modules/typescript/lib/lib.es2020.promise.d.ts","./node_modules/typescript/lib/lib.es2020.sharedmemory.d.ts","./node_modules/typescript/lib/lib.es2020.string.d.ts","./node_modules/typescript/lib/lib.es2020.symbol.wellknown.d.ts","./node_modules/typescript/lib/lib.es2020.intl.d.ts","./node_modules/typescript/lib/lib.es2020.number.d.ts","./node_modules/typescript/lib/lib.es2021.promise.d.ts","./node_modules/typescript/lib/lib.es2021.string.d.ts","./node_modules/typescript/lib/lib.es2021.weakref.d.ts","./node_modules/typescript/lib/lib.es2021.intl.d.ts","./node_modules/typescript/lib/lib.es2022.array.d.ts","./node_modules/typescript/lib/lib.es2022.error.d.ts","./node_modules/typescript/lib/lib.es2022.intl.d.ts","./node_modules/typescript/lib/lib.es2022.object.d.ts","./node_modules/typescript/lib/lib.es2022.sharedmemory.d.ts","./node_modules/typescript/lib/lib.es2022.string.d.ts","./node_modules/typescript/lib/lib.esnext.intl.d.ts","./node_modules/@types/react/ts5.0/global.d.ts","./node_modules/csstype/index.d.ts","./node_modules/@types/react/ts5.0/index.d.ts","./node_modules/next/dist/styled-jsx/types/css.d.ts","./node_modules/next/dist/styled-jsx/types/macro.d.ts","./node_modules/next/dist/styled-jsx/types/style.d.ts","./node_modules/next/dist/styled-jsx/types/global.d.ts","./node_modules/next/dist/styled-jsx/types/index.d.ts","./node_modules/next/dist/shared/lib/amp.d.ts","./node_modules/next/amp.d.ts","./node_modules/next/dist/server/get-page-files.d.ts","./node_modules/@types/node/ts5.1/compatibility/disposable.d.ts","./node_modules/@types/node/ts5.6/compatibility/float16array.d.ts","./node_modules/@types/node/compatibility/iterators.d.ts","./node_modules/@types/node/ts5.6/globals.typedarray.d.ts","./node_modules/@types/node/ts5.6/buffer.buffer.d.ts","./node_modules/undici-types/utility.d.ts","./node_modules/undici-types/header.d.ts","./node_modules/undici-types/readable.d.ts","./node_modules/undici-types/fetch.d.ts","./node_modules/undici-types/formdata.d.ts","./node_modules/undici-types/connector.d.ts","./node_modules/undici-types/client.d.ts","./node_modules/undici-types/errors.d.ts","./node_modules/undici-types/dispatcher.d.ts","./node_modules/undici-types/global-dispatcher.d.ts","./node_modules/undici-types/global-origin.d.ts","./node_modules/undici-types/pool-stats.d.ts","./node_modules/undici-types/pool.d.ts","./node_modules/undici-types/handlers.d.ts","./node_modules/undici-types/balanced-pool.d.ts","./node_modules/undici-types/h2c-client.d.ts","./node_modules/undici-types/agent.d.ts","./node_modules/undici-types/mock-interceptor.d.ts","./node_modules/undici-types/mock-call-history.d.ts","./node_modules/undici-types/mock-agent.d.ts","./node_modules/undici-types/mock-client.d.ts","./node_modules/undici-types/mock-pool.d.ts","./node_modules/undici-types/mock-errors.d.ts","./node_modules/undici-types/proxy-agent.d.ts","./node_modules/undici-types/env-http-proxy-agent.d.ts","./node_modules/undici-types/retry-handler.d.ts","./node_modules/undici-types/retry-agent.d.ts","./node_modules/undici-types/api.d.ts","./node_modules/undici-types/cache-interceptor.d.ts","./node_modules/undici-types/interceptors.d.ts","./node_modules/undici-types/util.d.ts","./node_modules/undici-types/cookies.d.ts","./node_modules/undici-types/patch.d.ts","./node_modules/undici-types/websocket.d.ts","./node_modules/undici-types/eventsource.d.ts","./node_modules/undici-types/diagnostics-channel.d.ts","./node_modules/undici-types/content-type.d.ts","./node_modules/undici-types/cache.d.ts","./node_modules/undici-types/index.d.ts","./node_modules/@types/node/globals.d.ts","./node_modules/@types/node/assert.d.ts","./node_modules/@types/node/assert/strict.d.ts","./node_modules/@types/node/async_hooks.d.ts","./node_modules/@types/node/buffer.d.ts","./node_modules/@types/node/child_process.d.ts","./node_modules/@types/node/cluster.d.ts","./node_modules/@types/node/console.d.ts","./node_modules/@types/node/constants.d.ts","./node_modules/@types/node/crypto.d.ts","./node_modules/@types/node/dgram.d.ts","./node_modules/@types/node/diagnostics_channel.d.ts","./node_modules/@types/node/dns.d.ts","./node_modules/@types/node/dns/promises.d.ts","./node_modules/@types/node/domain.d.ts","./node_modules/@types/node/dom-events.d.ts","./node_modules/@types/node/events.d.ts","./node_modules/@types/node/fs.d.ts","./node_modules/@types/node/fs/promises.d.ts","./node_modules/@types/node/http.d.ts","./node_modules/@types/node/http2.d.ts","./node_modules/@types/node/https.d.ts","./node_modules/@types/node/inspector.d.ts","./node_modules/@types/node/module.d.ts","./node_modules/@types/node/net.d.ts","./node_modules/@types/node/os.d.ts","./node_modules/@types/node/path.d.ts","./node_modules/@types/node/perf_hooks.d.ts","./node_modules/@types/node/process.d.ts","./node_modules/@types/node/punycode.d.ts","./node_modules/@types/node/querystring.d.ts","./node_modules/@types/node/readline.d.ts","./node_modules/@types/node/readline/promises.d.ts","./node_modules/@types/node/repl.d.ts","./node_modules/@types/node/sea.d.ts","./node_modules/@types/node/sqlite.d.ts","./node_modules/@types/node/stream.d.ts","./node_modules/@types/node/stream/promises.d.ts","./node_modules/@types/node/stream/consumers.d.ts","./node_modules/@types/node/stream/web.d.ts","./node_modules/@types/node/string_decoder.d.ts","./node_modules/@types/node/test.d.ts","./node_modules/@types/node/timers.d.ts","./node_modules/@types/node/timers/promises.d.ts","./node_modules/@types/node/tls.d.ts","./node_modules/@types/node/trace_events.d.ts","./node_modules/@types/node/tty.d.ts","./node_modules/@types/node/url.d.ts","./node_modules/@types/node/util.d.ts","./node_modules/@types/node/v8.d.ts","./node_modules/@types/node/vm.d.ts","./node_modules/@types/node/wasi.d.ts","./node_modules/@types/node/worker_threads.d.ts","./node_modules/@types/node/zlib.d.ts","./node_modules/@types/node/ts5.1/index.d.ts","./node_modules/@types/react/ts5.0/canary.d.ts","./node_modules/@types/react/ts5.0/experimental.d.ts","./node_modules/next/dist/lib/fallback.d.ts","./node_modules/next/dist/compiled/webpack/webpack.d.ts","./node_modules/next/dist/server/config.d.ts","./node_modules/next/dist/lib/load-custom-routes.d.ts","./node_modules/next/dist/shared/lib/image-config.d.ts","./node_modules/next/dist/build/webpack/plugins/subresource-integrity-plugin.d.ts","./node_modules/next/dist/server/body-streams.d.ts","./node_modules/next/dist/server/lib/cache-control.d.ts","./node_modules/next/dist/lib/setup-exception-listeners.d.ts","./node_modules/next/dist/lib/worker.d.ts","./node_modules/next/dist/lib/constants.d.ts","./node_modules/next/dist/client/components/app-router-headers.d.ts","./node_modules/next/dist/build/rendering-mode.d.ts","./node_modules/next/dist/server/lib/router-utils/build-prefetch-segment-data-route.d.ts","./node_modules/next/dist/server/require-hook.d.ts","./node_modules/next/dist/server/lib/experimental/ppr.d.ts","./node_modules/next/dist/build/webpack/plugins/app-build-manifest-plugin.d.ts","./node_modules/next/dist/lib/page-types.d.ts","./node_modules/next/dist/build/segment-config/app/app-segment-config.d.ts","./node_modules/next/dist/build/segment-config/pages/pages-segment-config.d.ts","./node_modules/next/dist/build/analysis/get-page-static-info.d.ts","./node_modules/next/dist/build/webpack/loaders/get-module-build-info.d.ts","./node_modules/next/dist/build/webpack/plugins/middleware-plugin.d.ts","./node_modules/next/dist/server/node-polyfill-crypto.d.ts","./node_modules/next/dist/server/node-environment-baseline.d.ts","./node_modules/next/dist/server/node-environment-extensions/error-inspect.d.ts","./node_modules/next/dist/server/node-environment-extensions/random.d.ts","./node_modules/next/dist/server/node-environment-extensions/date.d.ts","./node_modules/next/dist/server/node-environment-extensions/web-crypto.d.ts","./node_modules/next/dist/server/node-environment-extensions/node-crypto.d.ts","./node_modules/next/dist/server/node-environment.d.ts","./node_modules/next/dist/build/page-extensions-type.d.ts","./node_modules/next/dist/build/webpack/plugins/flight-manifest-plugin.d.ts","./node_modules/next/dist/server/instrumentation/types.d.ts","./node_modules/next/dist/lib/coalesced-function.d.ts","./node_modules/next/dist/shared/lib/router/utils/middleware-route-matcher.d.ts","./node_modules/next/dist/server/lib/router-utils/types.d.ts","./node_modules/next/dist/shared/lib/modern-browserslist-target.d.ts","./node_modules/next/dist/shared/lib/constants.d.ts","./node_modules/next/dist/trace/types.d.ts","./node_modules/next/dist/trace/trace.d.ts","./node_modules/next/dist/trace/shared.d.ts","./node_modules/next/dist/trace/index.d.ts","./node_modules/next/dist/build/load-jsconfig.d.ts","./node_modules/@next/env/dist/index.d.ts","./node_modules/next/dist/build/webpack/plugins/telemetry-plugin/use-cache-tracker-utils.d.ts","./node_modules/next/dist/build/webpack/plugins/telemetry-plugin/telemetry-plugin.d.ts","./node_modules/next/dist/telemetry/storage.d.ts","./node_modules/next/dist/build/build-context.d.ts","./node_modules/next/dist/shared/lib/bloom-filter.d.ts","./node_modules/next/dist/build/webpack-config.d.ts","./node_modules/next/dist/server/route-kind.d.ts","./node_modules/next/dist/server/route-definitions/route-definition.d.ts","./node_modules/next/dist/build/swc/generated-native.d.ts","./node_modules/next/dist/build/swc/types.d.ts","./node_modules/next/dist/server/dev/parse-version-info.d.ts","./node_modules/next/dist/next-devtools/shared/types.d.ts","./node_modules/next/dist/server/dev/dev-indicator-server-state.d.ts","./node_modules/next/dist/server/dev/hot-reloader-types.d.ts","./node_modules/next/dist/server/lib/cache-handlers/types.d.ts","./node_modules/next/dist/server/response-cache/types.d.ts","./node_modules/next/dist/server/resume-data-cache/cache-store.d.ts","./node_modules/next/dist/server/resume-data-cache/resume-data-cache.d.ts","./node_modules/next/dist/server/render-result.d.ts","./node_modules/next/dist/server/lib/i18n-provider.d.ts","./node_modules/next/dist/server/web/next-url.d.ts","./node_modules/next/dist/compiled/@edge-runtime/cookies/index.d.ts","./node_modules/next/dist/server/web/spec-extension/cookies.d.ts","./node_modules/next/dist/server/web/spec-extension/request.d.ts","./node_modules/next/dist/server/after/builtin-request-context.d.ts","./node_modules/next/dist/server/web/spec-extension/fetch-event.d.ts","./node_modules/next/dist/server/web/spec-extension/response.d.ts","./node_modules/next/dist/build/segment-config/middleware/middleware-config.d.ts","./node_modules/next/dist/server/web/types.d.ts","./node_modules/next/dist/build/webpack/plugins/pages-manifest-plugin.d.ts","./node_modules/next/dist/shared/lib/router/utils/parse-url.d.ts","./node_modules/next/dist/server/base-http/node.d.ts","./node_modules/next/dist/build/webpack/plugins/next-font-manifest-plugin.d.ts","./node_modules/next/dist/server/route-definitions/locale-route-definition.d.ts","./node_modules/next/dist/server/route-definitions/pages-route-definition.d.ts","./node_modules/next/dist/shared/lib/mitt.d.ts","./node_modules/next/dist/client/with-router.d.ts","./node_modules/next/dist/client/router.d.ts","./node_modules/next/dist/client/route-loader.d.ts","./node_modules/next/dist/client/page-loader.d.ts","./node_modules/next/dist/shared/lib/router/router.d.ts","./node_modules/next/dist/shared/lib/router-context.shared-runtime.d.ts","./node_modules/next/dist/shared/lib/loadable-context.shared-runtime.d.ts","./node_modules/next/dist/shared/lib/loadable.shared-runtime.d.ts","./node_modules/next/dist/shared/lib/image-config-context.shared-runtime.d.ts","./node_modules/next/dist/shared/lib/hooks-client-context.shared-runtime.d.ts","./node_modules/next/dist/shared/lib/head-manager-context.shared-runtime.d.ts","./node_modules/next/dist/server/route-definitions/app-page-route-definition.d.ts","./node_modules/next/dist/build/webpack/loaders/metadata/types.d.ts","./node_modules/next/dist/build/webpack/loaders/next-app-loader/index.d.ts","./node_modules/next/dist/server/lib/app-dir-module.d.ts","./node_modules/next/dist/server/web/spec-extension/adapters/request-cookies.d.ts","./node_modules/next/dist/server/async-storage/draft-mode-provider.d.ts","./node_modules/next/dist/server/web/spec-extension/adapters/headers.d.ts","./node_modules/next/dist/server/app-render/cache-signal.d.ts","./node_modules/next/dist/server/app-render/dynamic-rendering.d.ts","./node_modules/next/dist/server/app-render/work-unit-async-storage-instance.d.ts","./node_modules/next/dist/server/response-cache/index.d.ts","./node_modules/next/dist/server/request/fallback-params.d.ts","./node_modules/next/dist/server/lib/lazy-result.d.ts","./node_modules/next/dist/server/lib/implicit-tags.d.ts","./node_modules/next/dist/server/app-render/work-unit-async-storage.external.d.ts","./node_modules/next/dist/shared/lib/deep-readonly.d.ts","./node_modules/next/dist/shared/lib/router/utils/parse-relative-url.d.ts","./node_modules/next/dist/server/app-render/app-render.d.ts","./node_modules/next/dist/shared/lib/server-inserted-html.shared-runtime.d.ts","./node_modules/next/dist/shared/lib/amp-context.shared-runtime.d.ts","./node_modules/next/dist/server/route-modules/app-page/vendored/contexts/entrypoints.d.ts","./node_modules/next/dist/server/route-modules/app-page/module.compiled.d.ts","./node_modules/next/dist/client/components/error-boundary.d.ts","./node_modules/next/dist/client/components/layout-router.d.ts","./node_modules/next/dist/client/components/render-from-template-context.d.ts","./node_modules/next/dist/server/app-render/action-async-storage-instance.d.ts","./node_modules/next/dist/server/app-render/action-async-storage.external.d.ts","./node_modules/@types/react/ts5.0/jsx-runtime.d.ts","./node_modules/next/dist/client/components/client-page.d.ts","./node_modules/next/dist/client/components/client-segment.d.ts","./node_modules/next/dist/server/request/search-params.d.ts","./node_modules/next/dist/client/components/hooks-server-context.d.ts","./node_modules/next/dist/client/components/http-access-fallback/error-boundary.d.ts","./node_modules/next/dist/lib/metadata/types/alternative-urls-types.d.ts","./node_modules/next/dist/lib/metadata/types/extra-types.d.ts","./node_modules/next/dist/lib/metadata/types/metadata-types.d.ts","./node_modules/next/dist/lib/metadata/types/manifest-types.d.ts","./node_modules/next/dist/lib/metadata/types/opengraph-types.d.ts","./node_modules/next/dist/lib/metadata/types/twitter-types.d.ts","./node_modules/next/dist/lib/metadata/types/metadata-interface.d.ts","./node_modules/next/dist/lib/metadata/types/resolvers.d.ts","./node_modules/next/dist/lib/metadata/types/icons.d.ts","./node_modules/next/dist/lib/metadata/resolve-metadata.d.ts","./node_modules/next/dist/lib/metadata/metadata.d.ts","./node_modules/next/dist/client/components/metadata/metadata-boundary.d.ts","./node_modules/next/dist/server/app-render/rsc/preloads.d.ts","./node_modules/next/dist/server/app-render/rsc/postpone.d.ts","./node_modules/next/dist/server/app-render/rsc/taint.d.ts","./node_modules/next/dist/server/app-render/collect-segment-data.d.ts","./node_modules/next/dist/next-devtools/userspace/app/segment-explorer-node.d.ts","./node_modules/next/dist/server/app-render/entry-base.d.ts","./node_modules/next/dist/build/templates/app-page.d.ts","./node_modules/@types/react/ts5.0/jsx-dev-runtime.d.ts","./node_modules/next/dist/server/route-modules/app-page/vendored/rsc/entrypoints.d.ts","./node_modules/next/dist/server/route-modules/app-page/vendored/ssr/entrypoints.d.ts","./node_modules/next/dist/server/route-modules/app-page/module.d.ts","./node_modules/next/dist/server/web/adapter.d.ts","./node_modules/next/dist/server/use-cache/cache-life.d.ts","./node_modules/next/dist/server/app-render/types.d.ts","./node_modules/next/dist/client/components/router-reducer/router-reducer-types.d.ts","./node_modules/next/dist/client/flight-data-helpers.d.ts","./node_modules/next/dist/client/components/router-reducer/fetch-server-response.d.ts","./node_modules/next/dist/shared/lib/app-router-context.shared-runtime.d.ts","./node_modules/next/dist/server/route-modules/pages/vendored/contexts/entrypoints.d.ts","./node_modules/next/dist/server/route-modules/pages/module.compiled.d.ts","./node_modules/next/dist/build/templates/pages.d.ts","./node_modules/next/dist/server/route-modules/pages/module.d.ts","./node_modules/next/dist/next-devtools/userspace/pages/pages-dev-overlay-setup.d.ts","./node_modules/next/dist/server/render.d.ts","./node_modules/next/dist/server/route-definitions/pages-api-route-definition.d.ts","./node_modules/next/dist/server/route-matches/pages-api-route-match.d.ts","./node_modules/next/dist/server/route-matchers/route-matcher.d.ts","./node_modules/next/dist/server/route-matcher-providers/route-matcher-provider.d.ts","./node_modules/next/dist/server/route-matcher-managers/route-matcher-manager.d.ts","./node_modules/next/dist/server/normalizers/normalizer.d.ts","./node_modules/next/dist/server/normalizers/locale-route-normalizer.d.ts","./node_modules/next/dist/server/normalizers/request/pathname-normalizer.d.ts","./node_modules/next/dist/server/normalizers/request/suffix.d.ts","./node_modules/next/dist/server/normalizers/request/rsc.d.ts","./node_modules/next/dist/server/normalizers/request/prefetch-rsc.d.ts","./node_modules/next/dist/server/normalizers/request/next-data.d.ts","./node_modules/next/dist/server/normalizers/request/segment-prefix-rsc.d.ts","./node_modules/next/dist/server/base-server.d.ts","./node_modules/next/dist/server/lib/async-callback-set.d.ts","./node_modules/next/dist/shared/lib/router/utils/route-regex.d.ts","./node_modules/next/dist/shared/lib/router/utils/route-matcher.d.ts","./node_modules/sharp/lib/index.d.ts","./node_modules/next/dist/server/image-optimizer.d.ts","./node_modules/next/dist/server/next-server.d.ts","./node_modules/next/dist/server/lib/types.d.ts","./node_modules/next/dist/server/lib/lru-cache.d.ts","./node_modules/next/dist/server/lib/dev-bundler-service.d.ts","./node_modules/next/dist/build/static-paths/types.d.ts","./node_modules/next/dist/server/dev/static-paths-worker.d.ts","./node_modules/next/dist/server/dev/next-dev-server.d.ts","./node_modules/next/dist/server/next.d.ts","./node_modules/next/dist/server/lib/render-server.d.ts","./node_modules/next/dist/server/lib/router-server.d.ts","./node_modules/next/dist/shared/lib/router/utils/path-match.d.ts","./node_modules/next/dist/server/lib/router-utils/filesystem.d.ts","./node_modules/next/dist/server/lib/router-utils/setup-dev-bundler.d.ts","./node_modules/next/dist/server/lib/router-utils/router-server-context.d.ts","./node_modules/next/dist/server/route-modules/route-module.d.ts","./node_modules/next/dist/server/load-components.d.ts","./node_modules/next/dist/server/route-definitions/app-route-route-definition.d.ts","./node_modules/next/dist/server/async-storage/work-store.d.ts","./node_modules/next/dist/server/web/http.d.ts","./node_modules/next/dist/server/route-modules/app-route/shared-modules.d.ts","./node_modules/next/dist/client/components/redirect-status-code.d.ts","./node_modules/next/dist/client/components/redirect-error.d.ts","./node_modules/next/dist/build/templates/app-route.d.ts","./node_modules/next/dist/server/route-modules/app-route/module.d.ts","./node_modules/next/dist/server/route-modules/app-route/module.compiled.d.ts","./node_modules/next/dist/build/segment-config/app/app-segments.d.ts","./node_modules/next/dist/build/utils.d.ts","./node_modules/next/dist/build/turborepo-access-trace/types.d.ts","./node_modules/next/dist/build/turborepo-access-trace/result.d.ts","./node_modules/next/dist/build/turborepo-access-trace/helpers.d.ts","./node_modules/next/dist/build/turborepo-access-trace/index.d.ts","./node_modules/next/dist/export/routes/types.d.ts","./node_modules/next/dist/export/types.d.ts","./node_modules/next/dist/export/worker.d.ts","./node_modules/next/dist/build/worker.d.ts","./node_modules/next/dist/build/index.d.ts","./node_modules/next/dist/server/lib/incremental-cache/index.d.ts","./node_modules/next/dist/server/after/after.d.ts","./node_modules/next/dist/server/after/after-context.d.ts","./node_modules/next/dist/server/app-render/work-async-storage-instance.d.ts","./node_modules/next/dist/server/app-render/work-async-storage.external.d.ts","./node_modules/next/dist/server/request/params.d.ts","./node_modules/next/dist/server/route-matches/route-match.d.ts","./node_modules/next/dist/server/request-meta.d.ts","./node_modules/next/dist/cli/next-test.d.ts","./node_modules/next/dist/server/config-shared.d.ts","./node_modules/next/dist/server/base-http/index.d.ts","./node_modules/next/dist/server/api-utils/index.d.ts","./node_modules/next/dist/types.d.ts","./node_modules/next/dist/shared/lib/html-context.shared-runtime.d.ts","./node_modules/next/dist/shared/lib/utils.d.ts","./node_modules/next/dist/pages/_app.d.ts","./node_modules/next/app.d.ts","./node_modules/next/dist/server/web/spec-extension/unstable-cache.d.ts","./node_modules/next/dist/server/web/spec-extension/revalidate.d.ts","./node_modules/next/dist/server/web/spec-extension/unstable-no-store.d.ts","./node_modules/next/dist/server/use-cache/cache-tag.d.ts","./node_modules/next/cache.d.ts","./node_modules/next/dist/shared/lib/runtime-config.external.d.ts","./node_modules/next/config.d.ts","./node_modules/next/dist/pages/_document.d.ts","./node_modules/next/document.d.ts","./node_modules/next/dist/shared/lib/dynamic.d.ts","./node_modules/next/dynamic.d.ts","./node_modules/next/dist/pages/_error.d.ts","./node_modules/next/error.d.ts","./node_modules/next/dist/shared/lib/head.d.ts","./node_modules/next/head.d.ts","./node_modules/next/dist/server/request/cookies.d.ts","./node_modules/next/dist/server/request/headers.d.ts","./node_modules/next/dist/server/request/draft-mode.d.ts","./node_modules/next/headers.d.ts","./node_modules/next/dist/shared/lib/get-img-props.d.ts","./node_modules/next/dist/client/image-component.d.ts","./node_modules/next/dist/shared/lib/image-external.d.ts","./node_modules/next/image.d.ts","./node_modules/next/dist/client/link.d.ts","./node_modules/next/link.d.ts","./node_modules/next/dist/client/components/redirect.d.ts","./node_modules/next/dist/client/components/not-found.d.ts","./node_modules/next/dist/client/components/forbidden.d.ts","./node_modules/next/dist/client/components/unauthorized.d.ts","./node_modules/next/dist/client/components/unstable-rethrow.server.d.ts","./node_modules/next/dist/client/components/unstable-rethrow.d.ts","./node_modules/next/dist/client/components/navigation.react-server.d.ts","./node_modules/next/dist/client/components/navigation.d.ts","./node_modules/next/navigation.d.ts","./node_modules/next/router.d.ts","./node_modules/next/dist/client/script.d.ts","./node_modules/next/script.d.ts","./node_modules/next/dist/server/web/spec-extension/user-agent.d.ts","./node_modules/next/dist/compiled/@edge-runtime/primitives/url.d.ts","./node_modules/next/dist/server/web/spec-extension/image-response.d.ts","./node_modules/next/dist/compiled/@vercel/og/satori/index.d.ts","./node_modules/next/dist/compiled/@vercel/og/emoji/index.d.ts","./node_modules/next/dist/compiled/@vercel/og/types.d.ts","./node_modules/next/dist/server/after/index.d.ts","./node_modules/next/dist/server/request/root-params.d.ts","./node_modules/next/dist/server/request/connection.d.ts","./node_modules/next/server.d.ts","./node_modules/next/types/global.d.ts","./node_modules/next/types/compiled.d.ts","./node_modules/next/types.d.ts","./node_modules/next/index.d.ts","./node_modules/next/image-types/global.d.ts","./next-env.d.ts","./node_modules/gray-matter/gray-matter.d.ts","./lib/content.ts","./pages/api/sitemap/[lang].ts","./node_modules/lucide-react/dist/lucide-react.d.ts","./components/about.tsx","./components/caselist.tsx","./components/contact.tsx","./components/coreadvantages.tsx","./components/cta.tsx","./components/features.tsx","./components/footer.tsx","./components/hero.tsx","./components/login.tsx","./components/sidebar.tsx","./components/navbar.tsx","./components/newslist.tsx","./components/pricing.tsx","./components/process.tsx","./components/testimonials.tsx","./pages/_app.tsx","./pages/about.tsx","./pages/cases.tsx","./pages/contact.tsx","./pages/features.tsx","./pages/index.tsx","./pages/login.tsx","./pages/news.tsx","./pages/pricing.tsx","./node_modules/marked/lib/marked.d.ts","./pages/news/[slug].tsx"],"fileInfos":[{"version":"8730f4bf322026ff5229336391a18bcaa1f94d4f82416c8b2f3954e2ccaae2ba","affectsGlobalScope":true},"dc47c4fa66b9b9890cf076304de2a9c5201e94b740cffdf09f87296d877d71f6","7a387c58583dfca701b6c85e0adaf43fb17d590fb16d5b2dc0a2fbd89f35c467","8a12173c586e95f4433e0c6dc446bc88346be73ffe9ca6eec7aa63c8f3dca7f9","5f4e733ced4e129482ae2186aae29fde948ab7182844c3a5a51dd346182c7b06","4b421cbfb3a38a27c279dec1e9112c3d1da296f77a1a85ddadf7e7a425d45d18","1fc5ab7a764205c68fa10d381b08417795fc73111d6dd16b5b1ed36badb743d9","746d62152361558ea6d6115cf0da4dd10ede041d14882ede3568bce5dc4b4f1f","d11a03592451da2d1065e09e61f4e2a9bf68f780f4f6623c18b57816a9679d17","aea179452def8a6152f98f63b191b84e7cbd69b0e248c91e61fb2e52328abe8c",{"version":"3aafcb693fe5b5c3bd277bd4c3a617b53db474fe498fc5df067c5603b1eebde7","affectsGlobalScope":true},{"version":"f3d4da15233e593eacb3965cde7960f3fddf5878528d882bcedd5cbaba0193c7","affectsGlobalScope":true},{"version":"adb996790133eb33b33aadb9c09f15c2c575e71fb57a62de8bf74dbf59ec7dfb","affectsGlobalScope":true},{"version":"8cc8c5a3bac513368b0157f3d8b31cfdcfe78b56d3724f30f80ed9715e404af8","affectsGlobalScope":true},{"version":"cdccba9a388c2ee3fd6ad4018c640a471a6c060e96f1232062223063b0a5ac6a","affectsGlobalScope":true},{"version":"c5c05907c02476e4bde6b7e76a79ffcd948aedd14b6a8f56e4674221b0417398","affectsGlobalScope":true},{"version":"5f406584aef28a331c36523df688ca3650288d14f39c5d2e555c95f0d2ff8f6f","affectsGlobalScope":true},{"version":"22f230e544b35349cfb3bd9110b6ef37b41c6d6c43c3314a31bd0d9652fcec72","affectsGlobalScope":true},{"version":"7ea0b55f6b315cf9ac2ad622b0a7813315bb6e97bf4bb3fbf8f8affbca7dc695","affectsGlobalScope":true},{"version":"3013574108c36fd3aaca79764002b3717da09725a36a6fc02eac386593110f93","affectsGlobalScope":true},{"version":"eb26de841c52236d8222f87e9e6a235332e0788af8c87a71e9e210314300410a","affectsGlobalScope":true},{"version":"3be5a1453daa63e031d266bf342f3943603873d890ab8b9ada95e22389389006","affectsGlobalScope":true},{"version":"17bb1fc99591b00515502d264fa55dc8370c45c5298f4a5c2083557dccba5a2a","affectsGlobalScope":true},{"version":"7ce9f0bde3307ca1f944119f6365f2d776d281a393b576a18a2f2893a2d75c98","affectsGlobalScope":true},{"version":"6a6b173e739a6a99629a8594bfb294cc7329bfb7b227f12e1f7c11bc163b8577","affectsGlobalScope":true},{"version":"81cac4cbc92c0c839c70f8ffb94eb61e2d32dc1c3cf6d95844ca099463cf37ea","affectsGlobalScope":true},{"version":"b0124885ef82641903d232172577f2ceb5d3e60aed4da1153bab4221e1f6dd4e","affectsGlobalScope":true},{"version":"0eb85d6c590b0d577919a79e0084fa1744c1beba6fd0d4e951432fa1ede5510a","affectsGlobalScope":true},{"version":"da233fc1c8a377ba9e0bed690a73c290d843c2c3d23a7bd7ec5cd3d7d73ba1e0","affectsGlobalScope":true},{"version":"d154ea5bb7f7f9001ed9153e876b2d5b8f5c2bb9ec02b3ae0d239ec769f1f2ae","affectsGlobalScope":true},{"version":"bb2d3fb05a1d2ffbca947cc7cbc95d23e1d053d6595391bd325deb265a18d36c","affectsGlobalScope":true},{"version":"c80df75850fea5caa2afe43b9949338ce4e2de086f91713e9af1a06f973872b8","affectsGlobalScope":true},{"version":"9d57b2b5d15838ed094aa9ff1299eecef40b190722eb619bac4616657a05f951","affectsGlobalScope":true},{"version":"6c51b5dd26a2c31dbf37f00cfc32b2aa6a92e19c995aefb5b97a3a64f1ac99de","affectsGlobalScope":true},{"version":"6e7997ef61de3132e4d4b2250e75343f487903ddf5370e7ce33cf1b9db9a63ed","affectsGlobalScope":true},{"version":"2ad234885a4240522efccd77de6c7d99eecf9b4de0914adb9a35c0c22433f993","affectsGlobalScope":true},{"version":"5e5e095c4470c8bab227dbbc61374878ecead104c74ab9960d3adcccfee23205","affectsGlobalScope":true},{"version":"09aa50414b80c023553090e2f53827f007a301bc34b0495bfb2c3c08ab9ad1eb","affectsGlobalScope":true},{"version":"d7f680a43f8cd12a6b6122c07c54ba40952b0c8aa140dcfcf32eb9e6cb028596","affectsGlobalScope":true},{"version":"3787b83e297de7c315d55d4a7c546ae28e5f6c0a361b7a1dcec1f1f50a54ef11","affectsGlobalScope":true},{"version":"e7e8e1d368290e9295ef18ca23f405cf40d5456fa9f20db6373a61ca45f75f40","affectsGlobalScope":true},{"version":"faf0221ae0465363c842ce6aa8a0cbda5d9296940a8e26c86e04cc4081eea21e","affectsGlobalScope":true},{"version":"06393d13ea207a1bfe08ec8d7be562549c5e2da8983f2ee074e00002629d1871","affectsGlobalScope":true},{"version":"2768ef564cfc0689a1b76106c421a2909bdff0acbe87da010785adab80efdd5c","affectsGlobalScope":true},{"version":"b248e32ca52e8f5571390a4142558ae4f203ae2f94d5bac38a3084d529ef4e58","affectsGlobalScope":true},{"version":"6c55633c733c8378db65ac3da7a767c3cf2cf3057f0565a9124a16a3a2019e87","affectsGlobalScope":true},{"version":"fb4416144c1bf0323ccbc9afb0ab289c07312214e8820ad17d709498c865a3fe","affectsGlobalScope":true},{"version":"5b0ca94ec819d68d33da516306c15297acec88efeb0ae9e2b39f71dbd9685ef7","affectsGlobalScope":true},{"version":"34c839eaaa6d78c8674ae2c37af2236dee6831b13db7b4ef4df3ec889a04d4f2","affectsGlobalScope":true},{"version":"34478567f8a80171f88f2f30808beb7da15eac0538ae91282dd33dce928d98ed","affectsGlobalScope":true},{"version":"ab7d58e6161a550ff92e5aff755dc37fe896245348332cd5f1e1203479fe0ed1","affectsGlobalScope":true},{"version":"6bda95ea27a59a276e46043b7065b55bd4b316c25e70e29b572958fa77565d43","affectsGlobalScope":true},{"version":"aedb8de1abb2ff1095c153854a6df7deae4a5709c37297f9d6e9948b6806fa66","affectsGlobalScope":true},{"version":"a4da0551fd39b90ca7ce5f68fb55d4dc0c1396d589b612e1902f68ee090aaada","affectsGlobalScope":true},{"version":"11ffe3c281f375fff9ffdde8bbec7669b4dd671905509079f866f2354a788064","affectsGlobalScope":true},{"version":"52d1bb7ab7a3306fd0375c8bff560feed26ed676a5b0457fa8027b563aecb9a4","affectsGlobalScope":true},{"version":"170d4db14678c68178ee8a3d5a990d5afb759ecb6ec44dbd885c50f6da6204f6","affectsGlobalScope":true},"8a8eb4ebffd85e589a1cc7c178e291626c359543403d58c9cd22b81fab5b1fb9","2d27d86432b871be0d83c0988a42ae71a70aa516ac3e0944c296708aaaa24c63","acd8fd5090ac73902278889c38336ff3f48af6ba03aa665eb34a75e7ba1dccc4","d6258883868fb2680d2ca96bc8b1352cab69874581493e6d52680c5ffecdb6cc","1b61d259de5350f8b1e5db06290d31eaebebc6baafd5f79d314b5af9256d7153","f258e3960f324a956fc76a3d3d9e964fff2244ff5859dcc6ce5951e5413ca826","643f7232d07bf75e15bd8f658f664d6183a0efaca5eb84b48201c7671a266979","0f6666b58e9276ac3a38fdc80993d19208442d6027ab885580d93aec76b4ef00","05fd364b8ef02fb1e174fbac8b825bdb1e5a36a016997c8e421f5fab0a6da0a0","631eff75b0e35d1b1b31081d55209abc43e16b49426546ab5a9b40bdd40b1f60",{"version":"6876211ece0832abdfe13c43c65a555549bb4ca8c6bb4078d68cf923aeb6009e","affectsGlobalScope":true},{"version":"394fda71d5d6bd00a372437dff510feab37b92f345861e592f956d6995e9c1ce","affectsGlobalScope":true},{"version":"d153a11543fd884b596587ccd97aebbeed950b26933ee000f94009f1ab142848","affectsGlobalScope":true},{"version":"c564fc7c6f57b43ebe0b69bc6719d38ff753f6afe55dadf2dba36fb3558f39b6","affectsGlobalScope":true},{"version":"109b9c280e8848c08bf4a78fff1fed0750a6ca1735671b5cf08b71bae5448c03","affectsGlobalScope":true},"cdcf9ea426ad970f96ac930cd176d5c69c6c24eebd9fc580e1572d6c6a88f62c","23cd712e2ce083d68afe69224587438e5914b457b8acf87073c22494d706a3d0","487b694c3de27ddf4ad107d4007ad304d29effccf9800c8ae23c2093638d906a","e525f9e67f5ddba7b5548430211cae2479070b70ef1fd93550c96c10529457bd","ccf4552357ce3c159ef75f0f0114e80401702228f1898bdc9402214c9499e8c0","c6fd2c5a395f2432786c9cb8deb870b9b0e8ff7e22c029954fabdd692bff6195","17fe9131bec653b07b0a1a8b99a830216e3e43fe0ea2605be318dc31777c8bbf","3c8e93af4d6ce21eb4c8d005ad6dc02e7b5e6781f429d52a35290210f495a674","2c9875466123715464539bfd69bcaccb8ff6f3e217809428e0d7bd6323416d01","ea6bc8de8b59f90a7a3960005fd01988f98fd0784e14bc6922dde2e93305ec7d","36107995674b29284a115e21a0618c4c2751b32a8766dd4cb3ba740308b16d59","914a0ae30d96d71915fc519ccb4efbf2b62c0ddfb3a3fc6129151076bc01dc60","2472ef4c28971272a897fdb85d4155df022e1f5d9a474a526b8fc2ef598af94e","6c8e442ba33b07892169a14f7757321e49ab0f1032d676d321a1fdab8a67d40c","b41767d372275c154c7ea6c9d5449d9a741b8ce080f640155cc88ba1763e35b3","1cd673d367293fc5cb31cd7bf03d598eb368e4f31f39cf2b908abbaf120ab85a","19851a6596401ca52d42117108d35e87230fc21593df5c4d3da7108526b6111c","3825bf209f1662dfd039010a27747b73d0ef379f79970b1d05601ec8e8a4249f","0b6e25234b4eec6ed96ab138d96eb70b135690d7dd01f3dd8a8ab291c35a683a","40bfc70953be2617dc71979c14e9e99c5e65c940a4f1c9759ddb90b0f8ff6b1a","da52342062e70c77213e45107921100ba9f9b3a30dd019444cf349e5fb3470c4","e9ace91946385d29192766bf783b8460c7dbcbfc63284aa3c9cae6de5155c8bc","40b463c6766ca1b689bfcc46d26b5e295954f32ad43e37ee6953c0a677e4ae2b","561c60d8bfe0fec2c08827d09ff039eca0c1f9b50ef231025e5a549655ed0298","1e30c045732e7db8f7a82cf90b516ebe693d2f499ce2250a977ec0d12e44a529","84b736594d8760f43400202859cda55607663090a43445a078963031d47e25e7","499e5b055a5aba1e1998f7311a6c441a369831c70905cc565ceac93c28083d53","54c3e2371e3d016469ad959697fd257e5621e16296fa67082c2575d0bf8eced0","beb8233b2c220cfa0feea31fbe9218d89fa02faa81ef744be8dce5acb89bb1fd","78b29846349d4dfdd88bd6650cc5d2baaa67f2e89dc8a80c8e26ef7995386583","5d0375ca7310efb77e3ef18d068d53784faf62705e0ad04569597ae0e755c401","59af37caec41ecf7b2e76059c9672a49e682c1a2aa6f9d7dc78878f53aa284d6","addf417b9eb3f938fddf8d81e96393a165e4be0d4a8b6402292f9c634b1cb00d","e38d4fdf79e1eadd92ed7844c331dbaa40f29f21541cfee4e1acff4db09cda33","8bd86b8e8f6a6aa6c49b71e14c4ffe1211a0e97c80f08d2c8cc98838006e4b88","7c10a32ae6f3962672e6869ee2c794e8055d8225ef35c91c0228e354b4e5d2d3","2e85db9e6fd73cfa3d7f28e0ab6b55417ea18931423bd47b409a96e4a169e8e6","c46e079fe54c76f95c67fb89081b3e399da2c7d109e7dca8e4b58d83e332e605","99f569b42ea7e7c5fe404b2848c0893f3e1a56e0547c1cd0f74d5dbb9a9de27e",{"version":"f4b4faedc57701ae727d78ba4a83e466a6e3bdcbe40efbf913b17e860642897c","affectsGlobalScope":true},"bbcfd9cd76d92c3ee70475270156755346c9086391e1b9cb643d072e0cf576b8","7394959e5a741b185456e1ef5d64599c36c60a323207450991e7a42e08911419","72c1f5e0a28e473026074817561d1bc9647909cf253c8d56c41d1df8d95b85f7",{"version":"003ec918ec442c3a4db2c36dc0c9c766977ea1c8bcc1ca7c2085868727c3d3f6","affectsGlobalScope":true},"938f94db8400d0b479626b9006245a833d50ce8337f391085fad4af540279567","c4e8e8031808b158cfb5ac5c4b38d4a26659aec4b57b6a7e2ba0a141439c208c",{"version":"2c91d8366ff2506296191c26fd97cc1990bab3ee22576275d28b654a21261a44","affectsGlobalScope":true},"5524481e56c48ff486f42926778c0a3cce1cc85dc46683b92b1271865bcf015a",{"version":"12fb9c13f24845000d7bd9660d11587e27ef967cbd64bd9df19ae3e6aa9b52d4","affectsGlobalScope":true},"289e9894a4668c61b5ffed09e196c1f0c2f87ca81efcaebdf6357cfb198dac14","25a1105595236f09f5bce42398be9f9ededc8d538c258579ab662d509aa3b98e","5078cd62dbdf91ae8b1dc90b1384dec71a9c0932d62bdafb1a811d2a8e26bef2","a2e2bbde231b65c53c764c12313897ffdfb6c49183dd31823ee2405f2f7b5378","ad1cc0ed328f3f708771272021be61ab146b32ecf2b78f3224959ff1e2cd2a5c",{"version":"71450bbc2d82821d24ca05699a533e72758964e9852062c53b30f31c36978ab8","affectsGlobalScope":true},{"version":"62f572306e0b173cc5dfc4c583471151f16ef3779cf27ab96922c92ec82a3bc8","affectsGlobalScope":true},"2f32444438ecb1fa4519f6ec3977d69ce0e3acfa18b803e5cd725c204501f350","0ab3c844f1eb5a1d94c90edc346a25eb9d3943af7a7812f061bf2d627d8afac0","b0a84d9348601dbc217017c0721d6064c3b1af9b392663348ba146fdae0c7afd","161f09445a8b4ba07f62ae54b27054e4234e7957062e34c6362300726dabd315","77fced47f495f4ff29bb49c52c605c5e73cd9b47d50080133783032769a9d8a6","e6057f9e7b0c64d4527afeeada89f313f96a53291705f069a9193c18880578cb",{"version":"34ecb9596317c44dab586118fb62c1565d3dad98d201cd77f3e6b0dde453339c","affectsGlobalScope":true},"0f5cda0282e1d18198e2887387eb2f026372ebc4e11c4e4516fef8a19ee4d514","e99b0e71f07128fc32583e88ccd509a1aaa9524c290efb2f48c22f9bf8ba83b1","76957a6d92b94b9e2852cf527fea32ad2dc0ef50f67fe2b14bd027c9ceef2d86",{"version":"237581f5ec4620a17e791d3bb79bad3af01e27a274dbee875ac9b0721a4fe97d","affectsGlobalScope":true},{"version":"a8a99a5e6ed33c4a951b67cc1fd5b64fd6ad719f5747845c165ca12f6c21ba16","affectsGlobalScope":true},"a58a15da4c5ba3df60c910a043281256fa52d36a0fcdef9b9100c646282e88dd","b36beffbf8acdc3ebc58c8bb4b75574b31a2169869c70fc03f82895b93950a12","de263f0089aefbfd73c89562fb7254a7468b1f33b61839aafc3f035d60766cb4","70b57b5529051497e9f6482b76d91c0dcbb103d9ead8a0549f5bab8f65e5d031","e6d81b1f7ab11dc1b1ad7ad29fcfad6904419b36baf55ed5e80df48d56ac3aff","1013eb2e2547ad8c100aca52ef9df8c3f209edee32bb387121bb3227f7c00088","b6b8e3736383a1d27e2592c484a940eeb37ec4808ba9e74dd57679b2453b5865","d6f36b683c59ac0d68a1d5ee906e578e2f5e9a285bca80ff95ce61cdc9ddcdeb","37ba7b45141a45ce6e80e66f2a96c8a5ab1bcef0fc2d0f56bb58df96ec67e972","125d792ec6c0c0f657d758055c494301cc5fdb327d9d9d5960b3f129aff76093",{"version":"12aad38de6f0594dc21efa78a2c1f67bf6a7ef5a389e05417fe9945284450908","affectsGlobalScope":true},"ea713aa14a670b1ea0fbaaca4fd204e645f71ca7653a834a8ec07ee889c45de6","b338a6e6c1d456e65a6ea78da283e3077fe8edf7202ae10490abbba5b952b05e",{"version":"2918b7c516051c30186a1055ebcdb3580522be7190f8a2fff4100ea714c7c366","affectsGlobalScope":true},"ae86f30d5d10e4f75ce8dcb6e1bd3a12ecec3d071a21e8f462c5c85c678efb41","982efeb2573605d4e6d5df4dc7e40846bda8b9e678e058fc99522ab6165c479e","e03460fe72b259f6d25ad029f085e4bedc3f90477da4401d8fbc1efa9793230e","4286a3a6619514fca656089aee160bb6f2e77f4dd53dc5a96b26a0b4fc778055",{"version":"d67fc92a91171632fc74f413ce42ff1aa7fbcc5a85b127101f7ec446d2039a1f","affectsGlobalScope":true},{"version":"d40e4631100dbc067268bce96b07d7aff7f28a541b1bfb7ef791c64a696b3d33","affectsGlobalScope":true},"784490137935e1e38c49b9289110e74a1622baf8a8907888dcbe9e476d7c5e44","42180b657831d1b8fead051698618b31da623fb71ff37f002cb9d932cfa775f1","4f98d6fb4fe7cbeaa04635c6eaa119d966285d4d39f0eb55b2654187b0b27446",{"version":"e4c653466d0497d87fa9ffd00e59a95f33bc1c1722c3f5c84dab2e950c18da70","affectsGlobalScope":true},"e6dcc3b933e864e91d4bea94274ad69854d5d2a1311a4b0e20408a57af19e95d","2119ab23f794e7b563cc1a005b964e2f59b8ebcb3dfe2ce61d0c782bfd5e02a2","865a2612f5ec073dd48d454307ccabb04c48f8b96fda9940c5ebfe6b4b451f51","de9b09c703c51ac4bf93e37774cfc1c91e4ff17a5a0e9127299be49a90c5dc63","413df52d4ea14472c2fa5bee62f7a40abd1eb49be0b9722ee01ee4e52e63beb2","db6d2d9daad8a6d83f281af12ce4355a20b9a3e71b82b9f57cddcca0a8964a96","77497ec7d02338725444582c8ae7eb2085243a9f8c4113ca40b9b4fd941f2319","24f8562308dd8ba6013120557fa7b44950b619610b2c6cb8784c79f11e3c4f90","ba1ae645ccbff0137326f99084f5cf87c9fa988c59906177d59deabeee9e428d","a86f82d646a739041d6702101afa82dcb935c416dd93cbca7fd754fd0282ce1f","57d6ac03382e30e9213641ff4f18cf9402bb246b77c13c8e848c0b1ca2b7ef92","ce75b1aebb33d510ff28af960a9221410a3eaf7f18fc5f21f9404075fba77256","e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","496bbf339f3838c41f164238543e9fe5f1f10659cb30b68903851618464b98ba","44e0a682d3a20df46bbf8e7e37f2f10b1604d4ab08b3beda1c365e6d9c3ec74d","97395dc4fd32e20b8888849266065caf0b45d12575242c308e8604a4288ec3e5","9e2739b32f741859263fdba0244c194ca8e96da49b430377930b8f721d77c000","fb1d8e814a3eeb5101ca13515e0548e112bd1ff3fb358ece535b93e94adf5a3a","ffa495b17a5ef1d0399586b590bd281056cee6ce3583e34f39926f8dcc6ecdb5","98b18458acb46072947aabeeeab1e410f047e0cacc972943059ca5500b0a5e95","361e2b13c6765d7f85bb7600b48fde782b90c7c41105b7dab1f6e7871071ba20","c86fe861cf1b4c46a0fb7d74dffe596cf679a2e5e8b1456881313170f092e3fa","b6db56e4903e9c32e533b78ac85522de734b3d3a8541bf24d256058d464bf04b","24daa0366f837d22c94a5c0bad5bf1fd0f6b29e1fae92dc47c3072c3fdb2fbd5","570bb5a00836ffad3e4127f6adf581bfc4535737d8ff763a4d6f4cc877e60d98","889c00f3d32091841268f0b994beba4dceaa5df7573be12c2c829d7c5fbc232c","65f43099ded6073336e697512d9b80f2d4fec3182b7b2316abf712e84104db00","e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881","12b8dfed70961bea1861e5d39e433580e71323abb5d33da6605182ec569db584","8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881","7e560f533aaf88cf9d3b427dcf6c112dd3f2ee26d610e2587583b6c354c753db","71e0082342008e4dfb43202df85ea0986ef8e003c921a1e49999d0234a3019da","27ab780875bcbb65e09da7496f2ca36288b0c541abaa75c311450a077d54ec15","b620391fe8060cf9bedc176a4d01366e6574d7a71e0ac0ab344a4e76576fcbb8","380647d8f3b7f852cca6d154a376dbf8ac620a2f12b936594504a8a852e71d2f","208c9af9429dd3c76f5927b971263174aaa4bc7621ddec63f163640cbd3c473c","6459054aabb306821a043e02b89d54da508e3a6966601a41e71c166e4ea1474f","a23185bc5ef590c287c28a91baf280367b50ae4ea40327366ad01f6f4a8edbc5","bb37588926aba35c9283fe8d46ebf4e79ffe976343105f5c6d45f282793352b2","002eae065e6960458bda3cf695e578b0d1e2785523476f8a9170b103c709cd4f","c51641ab4bfa31b7a50a0ca37edff67f56fab3149881024345b13f2b48b7d2de","05c97cddbaf99978f83d96de2d8af86aded9332592f08ce4a284d72d0952c391","72179f9dd22a86deaad4cc3490eb0fe69ee084d503b686985965654013f1391b","2e6114a7dd6feeef85b2c80120fdbfb59a5529c0dcc5bfa8447b6996c97a69f5","7b6ff760c8a240b40dab6e4419b989f06a5b782f4710d2967e67c695ef3e93c4","c8f004e6036aa1c764ad4ec543cf89a5c1893a9535c80ef3f2b653e370de45e6","dd80b1e600d00f5c6a6ba23f455b84a7db121219e68f89f10552c54ba46e4dc9","b064c36f35de7387d71c599bfcf28875849a1dbc733e82bd26cae3d1cd060521","6a148329edecbda07c21098639ef4254ef7869fb25a69f58e5d6a8b7b69d4236","8de9fe97fa9e00ec00666fa77ab6e91b35d25af8ca75dabcb01e14ad3299b150","f63ab283a1c8f5c79fabe7ca4ef85f9633339c4f0e822fce6a767f9d59282af2","dba114fb6a32b355a9cfc26ca2276834d72fe0e94cd2c3494005547025015369","a54c996c8870ef1728a2c1fa9b8eaec0bf4a8001cd2583c02dd5869289465b10","3e7efde639c6a6c3edb9847b3f61e308bf7a69685b92f665048c45132f51c218","df45ca1176e6ac211eae7ddf51336dc075c5314bc5c253651bae639defd5eec5","85e41df4579ceac0616fc81e1aee5c5222941609e6732698e7a551db4c06a78a","fa9e3ec3d9c2072368b2a12686580aff5d7bc41439efa1ee91b378a57f4864c2","f974e4a06953682a2c15d5bd5114c0284d5abf8bc0fe4da25cb9159427b70072","50256e9c31318487f3752b7ac12ff365c8949953e04568009c8705db802776fb","7d73b24e7bf31dfb8a931ca6c4245f6bb0814dfae17e4b60c9e194a631fe5f7b","8d1fd7b451f69cd173e6e20272e0d64ba4a8a1fe0eb3ef5f82134a5b0cb7c9df","d6e73f8010935b7b4c7487b6fb13ea197cc610f0965b759bec03a561ccf8423a","174f3864e398f3f33f9a446a4f403d55a892aa55328cf6686135dfaf9e171657","824c76aec8d8c7e65769688cbee102238c0ef421ed6686f41b2a7d8e7e78a931","75b868be3463d5a8cfc0d9396f0a3d973b8c297401d00bfb008a42ab16643f13","05c8cd040dc6b8aa18f310b12eaf0407dc4d122ec035dc5b0c9b97e795abfeec","d682336018141807fb602709e2d95a192828fcb8d5ba06dda3833a8ea98f69e3","6124e973eab8c52cabf3c07575204efc1784aca6b0a30c79eb85fe240a857efa","0d891735a21edc75df51f3eb995e18149e119d1ce22fd40db2b260c5960b914e","3b414b99a73171e1c4b7b7714e26b87d6c5cb03d200352da5342ab4088a54c85","51b1709e7ad186919a0e30237a8607100143a86d28771b3d3f046359aca1e65c","b01bd582a6e41457bc56e6f0f9de4cb17f33f5f3843a7cf8210ac9c18472fb0f","0a437ae178f999b46b6153d79095b60c42c996bc0458c04955f1c996dc68b971","74b2a5e5197bd0f2e0077a1ea7c07455bbea67b87b0869d9786d55104006784f","4a7baeb6325920044f66c0f8e5e6f1f52e06e6d87588d837bdf44feb6f35c664","6dcf60530c25194a9ee0962230e874ff29d34c59605d8e069a49928759a17e0a","7274fbffbd7c9589d8d0ffba68157237afd5cecff1e99881ea3399127e60572f","1a42d2ec31a1fe62fdc51591768695ed4a2dc64c01be113e7ff22890bebb5e3f","1a82deef4c1d39f6882f28d275cad4c01f907b9b39be9cbc472fcf2cf051e05b","c5426dbfc1cf90532f66965a7aa8c1136a78d4d0f96d8180ecbfc11d7722f1a5","65a15fc47900787c0bd18b603afb98d33ede930bed1798fc984d5ebb78b26cf9","9d202701f6e0744adb6314d03d2eb8fc994798fc83d91b691b75b07626a69801","de9d2df7663e64e3a91bf495f315a7577e23ba088f2949d5ce9ec96f44fba37d","c7af78a2ea7cb1cd009cfb5bdb48cd0b03dad3b54f6da7aab615c2e9e9d570c5","1ee45496b5f8bdee6f7abc233355898e5bf9bd51255db65f5ff7ede617ca0027",{"version":"0c7c947ff881c4274c0800deaa0086971e0bfe51f89a33bd3048eaa3792d4876","affectsGlobalScope":true},{"version":"db01d18853469bcb5601b9fc9826931cc84cc1a1944b33cad76fd6f1e3d8c544","affectsGlobalScope":true},{"version":"a8f8e6ab2fa07b45251f403548b78eaf2022f3c2254df3dc186cb2671fe4996d","affectsGlobalScope":true},"fa6c12a7c0f6b84d512f200690bfc74819e99efae69e4c95c4cd30f6884c526e","f1c32f9ce9c497da4dc215c3bc84b722ea02497d35f9134db3bb40a8d918b92b",{"version":"b73c319af2cc3ef8f6421308a250f328836531ea3761823b4cabbd133047aefa","affectsGlobalScope":true},"e433b0337b8106909e7953015e8fa3f2d30797cea27141d1c5b135365bb975a6","15b36126e0089bfef173ab61329e8286ce74af5e809d8a72edcafd0cc049057f","ddff7fc6edbdc5163a09e22bf8df7bef75f75369ebd7ecea95ba55c4386e2441","106c6025f1d99fd468fd8bf6e5bda724e11e5905a4076c5d29790b6c3745e50c","a57b1802794433adec9ff3fed12aa79d671faed86c49b09e02e1ac41b4f1d33a","ad10d4f0517599cdeca7755b930f148804e3e0e5b5a3847adce0f1f71bbccd74","1042064ece5bb47d6aba91648fbe0635c17c600ebdf567588b4ca715602f0a9d","4360ad4de54de2d5c642c4375d5eab0e7fe94ebe8adca907e6c186bbef75a54d","4a889f2c763edb4d55cb624257272ac10d04a1cad2ed2948b10ed4a7fda2a428","7bb79aa2fead87d9d56294ef71e056487e848d7b550c9a367523ee5416c44cfa","43542b120b07d198a86a21f6df97e6fe4a6327e960342777eefaa407baee2a62","090fa057d7b2c429119fde252e3b7276a7d75a3ec172a9a23aa922dfac5345e8","27ff4196654e6373c9af16b6165120e2dd2169f9ad6abb5c935af5abd8c7938c","24428762d0c97b44c4784d28eee9556547167c4592d20d542a79243f7ca6a73f","d6406c629bb3efc31aedb2de809bef471e475c86c7e67f3ef9b676b5d7e0d6b2","8c030e515014c10a2b98f9f48408e3ba18023dfd3f56e3312c6c2f3ae1f55a16","dafc31e9e8751f437122eb8582b93d477e002839864410ff782504a12f2a550c","4e31a4e6319cee44ce4cec0f8892c60289cfbdbec11dda19c85559bb8ab53bc2","9c82171d836c47486074e4ca8e059735bf97b205e70b196535b5efd40cbe1bc5","f56bdc6884648806d34bc66d31cdb787c4718d04105ce2cd88535db214631f82","20e06cdda4a8fdd7c1b548259f89f01b04e56a513e834463d7bac5632c7cf906","2e4f37ffe8862b14d8e24ae8763daaa8340c0df0b859d9a9733def0eee7562d9","13283350547389802aa35d9f2188effaeac805499169a06ef5cd77ce2a0bd63f","ce791f6ea807560f08065d1af6014581eeb54a05abd73294777a281b6dfd73c2","6ac6715916fa75a1f7ebdfeacac09513b4d904b667d827b7535e84ff59679aff","49f95e989b4632c6c2a578cc0078ee19a5831832d79cc59abecf5160ea71abad","21b4672313ae95583ade84f97ae6bbeaf242ecae783f5653e2e99ac4e21cbbe1","ce0df82a9ae6f914ba08409d4d883983cc08e6d59eb2df02d8e4d68309e7848b","796273b2edc72e78a04e86d7c58ae94d370ab93a0ddf40b1aa85a37a1c29ecd7","5df15a69187d737d6d8d066e189ae4f97e41f4d53712a46b2710ff9f8563ec9f","016fe1e807dfdb88e8773616dde55bd04c087675662a393f20b1ec213b4a2b74","e17cd049a1448de4944800399daa4a64c5db8657cc9be7ef46be66e2a2cd0e7c","d05fb434f4ba073aed74b6c62eff1723c835de2a963dbb091e000a2decb5a691","bff8c8bffbf5f302a30ccb1c0557dae477892d50a80eecfe393bd89bac7fb41d","43ba4f2fa8c698f5c304d21a3ef596741e8e85a810b7c1f9b692653791d8d97a","4d4927cbee21750904af7acf940c5e3c491b4d5ebc676530211e389dd375607a","72105519d0390262cf0abe84cf41c926ade0ff475d35eb21307b2f94de985778","8a97e578a9bc40eb4f1b0ca78f476f2e9154ecbbfd5567ee72943bab37fc156a","a58abf1f5c8feb335475097abeddd32fd71c4dc2065a3d28cf15cacabad9654a","ccf6dd45b708fb74ba9ed0f2478d4eb9195c9dfef0ff83a6092fa3cf2ff53b4f","2d7db1d73456e8c5075387d4240c29a2a900847f9c1bff106a2e490da8fbd457","2b15c805f48e4e970f8ec0b1915f22d13ca6212375e8987663e2ef5f0205e832","f22d05663d873ee7a600faf78abb67f3f719d32266803440cf11d5db7ac0cab2","d93c544ad20197b3976b0716c6d5cd5994e71165985d31dcab6e1f77feb4b8f2","35069c2c417bd7443ae7c7cafd1de02f665bf015479fec998985ffbbf500628c","a8b1c79a833ee148251e88a2553d02ce1641d71d2921cce28e79678f3d8b96aa","126d4f950d2bba0bd45b3a86c76554d4126c16339e257e6d2fabf8b6bf1ce00c","9e21f8e2c0cfea713a4a372f284b60089c0841eb90bf3610539d89dbcd12d65a","045b752f44bf9bbdcaffd882424ab0e15cb8d11fa94e1448942e338c8ef19fba","2894c56cad581928bb37607810af011764a2f511f575d28c9f4af0f2ef02d1ab","0a72186f94215d020cb386f7dca81d7495ab6c17066eb07d0f44a5bf33c1b21a","7fa117f0f4f132ba132794982a35c840287997ee186753f78abe48508812c238","6ce54b2cfe4cf91138e2f5f114fe222a8819968336385cbcafd26ca89ebd4f50","b612fc66f534bd447bb1d5d52a29217a80780e1d57633875c9d8a333503f378a","0e8aef93d79b000deb6ec336b5645c87de167168e184e84521886f9ecc69a4b5","512a95a23e912bd68cdd9c4189962ab1b9b4dd6ea2f410e3fb1bf6e3e1e051bf","d90b9f1520366d713a73bd30c5a9eb0040d0fb6076aff370796bc776fd705943","bef86adb77316505c6b471da1d9b8c9e428867c2566270e8894d4d773a1c4dc2","a7d72cf676f5117df919b8a73da2cfa20cf9939fdb263fd496fb77f95c35335d","a3e7d932dc9c09daa99141a8e4800fc6c58c625af0d4bbb017773dc36da75426","43e96a3d5d1411ab40ba2f61d6a3192e58177bcf3b133a80ad2a16591611726d","219e5e67ea4630410167444a715ecc172d9462b7910cd066eca18f6ed27d907b","ca921bf56756cb6fe957f6af693a35251b134fb932dc13f3dfff0bb7106f80b4","fee92c97f1aa59eb7098a0cc34ff4df7e6b11bae71526aca84359a2575f313d8","acfbb7b38e876b43cb07d0c8bd1a2e84dd641d9d2b67d772e8977337398bfff5","2ab6d334bcbf2aff3acfc4fd8c73ecd82b981d3c3aa47b3f3b89281772286904","d07cbc787a997d83f7bde3877fec5fb5b12ce8c1b7047eb792996ed9726b4dde","6ac6715916fa75a1f7ebdfeacac09513b4d904b667d827b7535e84ff59679aff","268c6788d4791a66cc5c153c41d2313d6f3c0d3e35edce3ce05e21c31f972ae0","b83cb14474fa60c5f3ec660146b97d122f0735627f80d82dd03e8caa39b4388c","f374cb24e93e7798c4d9e83ff872fa52d2cdb36306392b840a6ddf46cb925cb6","6ad71551fba5dbf440780090c82f5e0a7b64f602e0f0f678317659f12131f253","b73cbf0a72c8800cf8f96a9acfe94f3ad32ca71342a8908b8ae484d61113f647","bae6dd176832f6423966647382c0d7ba9e63f8c167522f09a982f086cd4e8b23","20865ac316b8893c1a0cc383ccfc1801443fbcc2a7255be166cf90d03fac88c9","c9958eb32126a3843deedda8c22fb97024aa5d6dd588b90af2d7f2bfac540f23","461d0ad8ae5f2ff981778af912ba71b37a8426a33301daa00f21c6ccb27f8156","e927c2c13c4eaf0a7f17e6022eee8519eb29ef42c4c13a31e81a611ab8c95577","fcafff163ca5e66d3b87126e756e1b6dfa8c526aa9cd2a2b0a9da837d81bbd72","70246ad95ad8a22bdfe806cb5d383a26c0c6e58e7207ab9c431f1cb175aca657","f00f3aa5d64ff46e600648b55a79dcd1333458f7a10da2ed594d9f0a44b76d0b","772d8d5eb158b6c92412c03228bd9902ccb1457d7a705b8129814a5d1a6308fc","45490817629431853543adcb91c0673c25af52a456479588b6486daba34f68bb","802e797bcab5663b2c9f63f51bdf67eff7c41bc64c0fd65e6da3e7941359e2f7","8b4327413e5af38cd8cb97c59f48c3c866015d5d642f28518e3a891c469f240e","cd767eea328a0ed87d2e028147a022f209fadf420199254253a6cffe8e234df8","4b20fcf10a5413680e39f5666464859fc56b1003e7dfe2405ced82371ebd49b6","f0f3f57e29b40e9cb0c4b155a96de2f61e51700d2c335dd547ef3c85e668c6a8","f7d628893c9fa52ba3ab01bcb5e79191636c4331ee5667ecc6373cbccff8ae12","a169ba2d40cc94a500759aa86eded1f63395252bb7508a8b67dc681ff413ac8d","6a76daf108400ca1333e325772f24f40ebdde2120ef68f8c87d7a1adf0257541","7fa321c806b965bac02883573db0b1466e5edd14c479d156079eb08f1086f1d1","d663134457d8d669ae0df34eabd57028bddc04fc444c4bc04bc5215afc91e1f4","a52674bc98da7979607e0f44d4c015c59c1b1d264c83fc50ec79ff2cfea06723","89b3d1b267c4380fbb8e5cadccbb284843b90066f16a2f6e8a5b3a030bb7dcfb","8514c62ce38e58457d967e9e73f128eedc1378115f712b9eef7127f7c88f82ae","01698747a0d3c3ebf261865f9f912658aff9b726f7ebda11e19222725cfb0965","9b06ce81ad598c9c6b011cb66182fa66575ad6bd1f8f655830a6a0223a197ab7","d9d32f94056181c31f553b32ce41d0ef75004912e27450738d57efcd2409c324","752513f35f6cff294ffe02d6027c41373adf7bfa35e593dbfd53d95c203635ee","6c800b281b9e89e69165fd11536195488de3ff53004e55905e6c0059a2d8591e","7d4254b4c6c67a29d5e7f65e67d72540480ac2cfb041ca484847f5ae70480b62","1ee834bfd4a06aafdc46f5542d089565a26e031ebf854ef5b08cb75ec42d68fb","8c901126d73f09ecdea4785e9a187d1ac4e793e07da308009db04a7283ec2f37","db97922b767bd2675fdfa71e08b49c38b7d2c847a1cc4a7274cb77be23b026f1","e2f64b40fe8d3a77d5462dc4a75ead61c76bf464208b506c1465dac4e195f710","94fe3281392e1015b22f39535878610b4fa6f1388dc8d78746be3bc4e4bb8950","2652448ac55a2010a1f71dd141f828b682298d39728f9871e1cdf8696ef443fd","e3a9871a4a736910b0b77bc063d5f9c272578b3743269ebe93b275b0c52a9815","120599fd965257b1f4d0ff794bc696162832d9d8467224f4665f713a3119078b","5433f33b0a20300cca35d2f229a7fc20b0e8477c44be2affeb21cb464af60c76","db036c56f79186da50af66511d37d9fe77fa6793381927292d17f81f787bb195","bd4131091b773973ca5d2326c60b789ab1f5e02d8843b3587effe6e1ea7c9d86","c7f6485931085bf010fbaf46880a9b9ec1a285ad9dc8c695a9e936f5a48f34b4","73a39452c4b498728757c4a7f756a3b9bed1f8a02c278cb803665cc7897e6930","6ac6715916fa75a1f7ebdfeacac09513b4d904b667d827b7535e84ff59679aff","0427df5c06fafc5fe126d14b9becd24160a288deff40e838bfbd92a35f8d0d00","191a32cecf67da01119a7bce3132228fa9388e2bbfc5c1662542e71f9f20134a","49c346823ba6d4b12278c12c977fb3a31c06b9ca719015978cb145eb86da1c61","bfac6e50eaa7e73bb66b7e052c38fdc8ccfc8dbde2777648642af33cf349f7f1","92f7c1a4da7fbfd67a2228d1687d5c2e1faa0ba865a94d3550a3941d7527a45d","f53b120213a9289d9a26f5af90c4c686dd71d91487a0aa5451a38366c70dc64b","83fe880c090afe485a5c02262c0b7cdd76a299a50c48d9bde02be8e908fb4ae6","0a372c2d12a259da78e21b25974d2878502f14d89c6d16b97bd9c5017ab1bc12","57d67b72e06059adc5e9454de26bbfe567d412b962a501d263c75c2db430f40e","6511e4503cf74c469c60aafd6589e4d14d5eb0a25f9bf043dcbecdf65f261972","885e0c913a60577fa4827e5412055011a7532124fd9e054febb6808b0d7fec3d","6e2261cd9836b2c25eecb13940d92c024ebed7f8efe23c4b084145cd3a13b8a6","a67b87d0281c97dfc1197ef28dfe397fc2c865ccd41f7e32b53f647184cc7307","771ffb773f1ddd562492a6b9aaca648192ac3f056f0e1d997678ff97dbb6bf9b","232f70c0cf2b432f3a6e56a8dc3417103eb162292a9fd376d51a3a9ea5fbbf6f","d7ed1f4bd5589cb08f3af26839a0dc2472e4d1a3c380e167f0186b1f5e7c27d3","cfb5f0ab72180f4e0b9ed1534847a63d5394b9a8ee685ae149d25fd53f1aec66","8a0e762ceb20c7e72504feef83d709468a70af4abccb304f32d6b9bac1129b2c","26f83053ec70baea288b5281deb2cf11f6f9ea79bc654db1a6602b0b7ec085ff","9252d498a77517aab5d8d4b5eb9d71e4b225bbc7123df9713e08181de63180f6","3cdf332b0b14704549666762fd8fda31eb994376f305eaffe427cf076b95656d","35e6379c3f7cb27b111ad4c1aa69538fd8e788ab737b8ff7596a1b40e96f4f90","1fffe726740f9787f15b532e1dc870af3cd964dbe29e191e76121aa3dd8693f2",{"version":"a3128a84a9568762a2996df79717d92154d18dd894681fc0ab3a098fa7f8ee3b","affectsGlobalScope":true},"4c12b845a35c0f753c1cf29d7d042d4da0206b1ba040a9bfff193a086bcdc248","2896c2e673a5d3bd9b4246811f79486a073cbb03950c3d252fba10003c57411a","616775f16134fa9d01fc677ad3f76e68c051a056c22ab552c64cc281a9686790","65c24a8baa2cca1de069a0ba9fba82a173690f52d7e2d0f1f7542d59d5eb4db0","f9fe6af238339a0e5f7563acee3178f51db37f32a2e7c09f85273098cee7ec49","51bf55bb6eb80f11b3aa59fb0a9571565a7ea304a19381f6da5630f4b2e206c4","77e71242e71ebf8528c5802993697878f0533db8f2299b4d36aa015bae08a79c","98a787be42bd92f8c2a37d7df5f13e5992da0d967fab794adbb7ee18370f9849","5c96bad5f78466785cdad664c056e9e2802d5482ca5f862ed19ba34ffbb7b3a4","b7fff2d004c5879cae335db8f954eb1d61242d9f2d28515e67902032723caeab","5f3dc10ae646f375776b4e028d2bed039a93eebbba105694d8b910feebbe8b9c","bb0cd7862b72f5eba39909c9889d566e198fcaddf7207c16737d0c2246112678","4545c1a1ceca170d5d83452dd7c4994644c35cf676a671412601689d9a62da35","320f4091e33548b554d2214ce5fc31c96631b513dffa806e2e3a60766c8c49d9","a2d648d333cf67b9aeac5d81a1a379d563a8ffa91ddd61c6179f68de724260ff","d90d5f524de38889d1e1dbc2aeef00060d779f8688c02766ddb9ca195e4a713d","a3f41ed1b4f2fc3049394b945a68ae4fdefd49fa1739c32f149d32c0545d67f5","bad68fd0401eb90fe7da408565c8aee9c7a7021c2577aec92fa1382e8876071a","47699512e6d8bebf7be488182427189f999affe3addc1c87c882d36b7f2d0b0e","fec01479923e169fb52bd4f668dbeef1d7a7ea6e6d491e15617b46f2cacfa37d","8a8fb3097ba52f0ae6530ec6ab34e43e316506eb1d9aa29420a4b1e92a81442d","44e09c831fefb6fe59b8e65ad8f68a7ecc0e708d152cfcbe7ba6d6080c31c61e","1c0a98de1323051010ce5b958ad47bc1c007f7921973123c999300e2b7b0ecc0","4655709c9cb3fd6db2b866cab7c418c40ed9533ce8ea4b66b5f17ec2feea46a9","87affad8e2243635d3a191fa72ef896842748d812e973b7510a55c6200b3c2a4","ad036a85efcd9e5b4f7dd5c1a7362c8478f9a3b6c3554654ca24a29aa850a9c5","fedebeae32c5cdd1a85b4e0504a01996e4a8adf3dfa72876920d3dd6e42978e7","2c3a42dbc1d6ef817733691513b6421c8d1aa607afe3601904e3d31f1f72324a","cdf21eee8007e339b1b9945abf4a7b44930b1d695cc528459e68a3adc39a622e","330896c1a2b9693edd617be24fbf9e5895d6e18c7955d6c08f028f272b37314d","1d9c0a9a6df4e8f29dc84c25c5aa0bb1da5456ebede7a03e03df08bb8b27bae6","84380af21da938a567c65ef95aefb5354f676368ee1a1cbb4cae81604a4c7d17","1af3e1f2a5d1332e136f8b0b95c0e6c0a02aaabd5092b36b64f3042a03debf28","30d8da250766efa99490fc02801047c2c6d72dd0da1bba6581c7e80d1d8842a4","03566202f5553bd2d9de22dfab0c61aa163cabb64f0223c08431fb3fc8f70280","9a01f12466488eccd8d9eafc8fecb9926c175a4bf4a8f73a07c3bcf8b3363282","b80f624162276f24a4ec78b8e86fbee80ca255938e12f8b58e7a8f1a6937120b","1de80059b8078ea5749941c9f863aa970b4735bdbb003be4925c853a8b6b4450","1d079c37fa53e3c21ed3fa214a27507bda9991f2a41458705b19ed8c2b61173d","5bf5c7a44e779790d1eb54c234b668b15e34affa95e78eada73e5757f61ed76a","5835a6e0d7cd2738e56b671af0e561e7c1b4fb77751383672f4b009f4e161d70","5c634644d45a1b6bc7b05e71e05e52ec04f3d73d9ac85d5927f647a5f965181a","4b7f74b772140395e7af67c4841be1ab867c11b3b82a51b1aeb692822b76c872","27be6622e2922a1b412eb057faa854831b95db9db5035c3f6d4b677b902ab3b7","a68d4b3182e8d776cdede7ac9630c209a7bfbb59191f99a52479151816ef9f9e","39644b343e4e3d748344af8182111e3bbc594930fff0170256567e13bbdbebb0","ed7fd5160b47b0de3b1571c5c5578e8e7e3314e33ae0b8ea85a895774ee64749","63a7595a5015e65262557f883463f934904959da563b4f788306f699411e9bac","9e40365afca304124bc53eb03412643abf074a1580e4dc279a7a16000d11f985","4ba137d6553965703b6b55fd2000b4e07ba365f8caeb0359162ad7247f9707a6",{"version":"ceec3c81b2d81f5e3b855d9367c1d4c664ab5046dff8fd56552df015b7ccbe8f","affectsGlobalScope":true},{"version":"8fac4a15690b27612d8474fb2fc7cc00388df52d169791b78d1a3645d60b4c8b","affectsGlobalScope":true},"064ac1c2ac4b2867c2ceaa74bbdce0cb6a4c16e7c31a6497097159c18f74aa7c","3dc14e1ab45e497e5d5e4295271d54ff689aeae00b4277979fdd10fa563540ae","1d63055b690a582006435ddd3aa9c03aac16a696fac77ce2ed808f3e5a06efab","b789bf89eb19c777ed1e956dbad0925ca795701552d22e68fd130a032008b9f9","436f05ed55f050e50115198def9cdf1026dc4990c5fcb522622f947172bd455a","a52c5f687d788d283ea1fa38bdc2fabe0eac863135a7dfe175ec52b309f61892","6d91cb3f561db7174661b2b47ba54e5b28852af706c4b13e5a599379705c0e8c","9145198e7706bb76a0a05c0e6faf3eb7d5462ae8ad497de27ad70c68183f17fd","427b51589d90e5449d9bb4870b40d7bffef8321e23ebddc32a9ca9245030a1e4","1d59c536759b9e71c7f08dc5fe6f91289d4dee82fe15b43f71603954b28d13bc","9a450d08a7f4d62279b0bd22a349ce06ae7752a11b438e991467aeae813057c4","6f950bc389f4cef928b32920f9d6a4c91e7041b548986870cbbec3fbc86c8ecb","c408731f0ec58f934ed2ebc35474c26d5c848d686792acc098e209a531aa75af","4bc28fbb11a4da43eb124792f53540f45f2d6495eb4e99b7b4dacda11ad9419e","2d8710ce1ae5df99f72b5486f053e2b1b361c48e05191a1dc49929b1dd5a1744","04c7d55bcf8823680091d48488d2462e0411f176124efe43ec357dbd606da74d","07840fa75f5ac8612220433c5eadd4b10a23dfc8f8bfaec1bbaeaddd025001fd","1624accbe7a7e5ce0e9aecf84158ebe115312675f6c9ce5f60dac2a3689a5bb3","61ab87dc5d82fa251f64aa0e3f4ea18b0372fb7db28bca92482ae129554fcf1a","66e565cd6a04c2bd929bc59cf1f116b96b4dd0df14e72a10b0d0ca1c5c7df104","dc37042efc1440c320d5c0374f4d3fee3a451ba38d98c07a4da69cea8799d434","7df4fb5964840a63bab17eb909f0e4082a1121028128a8ebefc1f0a288103de7","dbf1d481dbd0b78c19809252c31968611129ae400c76cfc4c5f020146577080a","cc72369762a41925df6c464631f452a440024a819c74fd9b01c6bfc7316bf777","2f0ca6fbc1d2307b0ea5bb33358a25f1a54e016febc663d3e7b08e8cbd38295e","e6c1e7a49e72db0e071d697e064b5735f55aea2f0bde080f723d8c770c5a8bf3","8e1981180c7cfd03eaa475ac71f849d4caa6b7ba54ba3b9419d842af2bfd729e","bb317bc8af86c3478f1d9755e4fb89b2e720df0cb1ae343b309bac765d1880f1","7b6097c6799486beea7d2a9343ce7b3053456f2f48ee73e6ab0bd0a5b41fc083","1f258368a9756b53b8b2d50e9e883fd8e773697cb96f88bb5063adde3354f0b1","288ca4ededae3fb4abbed4f33b4fcd3749eef1f79e412cfae68716cace19752d","af927b88a2d506dca484a39e67f50a492cdb23d7238ecbf7e7cf143e6a967676","ec3afb4b8c69e4581cb1f8ba2cfe626be3c105efc4a4479becb815298953accf","e5fd6e6b32089a499bafbc66ddae09d7c3c8d7e9c4148d2fd0528ed1fe0c622a","a35b32c49e7faba782cdbaa3fc45e27efafc2cb026c8077ef11b0e38617d4db1"],"options":{"esModuleInterop":true,"jsx":1,"module":99,"skipLibCheck":true,"strict":true,"target":1},"fileIdsList":[[72,116,458],[59,72,116,458],[72,116,426,458],[72,116],[59,72,116,435],[59,72,116,426,458,468],[59,72,116,426,456,458],[72,116,426],[72,116,129,138,455],[72,116,452,453],[72,113,116],[72,115,116],[72,116,121,151],[72,116,117,122,128,129,136,148,159],[72,116,117,118,128,136],[72,116,119,160],[72,116,120,121,129,137],[72,116,121,148,156],[72,116,122,124,128,136],[72,115,116,123],[72,116,124,125],[72,116,126,128],[72,115,116,128],[72,116,128,129,130,148,159],[72,116,128,129,130,143,148,151],[72,111,116],[72,111,116,124,128,131,136,148,159],[72,116,128,129,131,132,136,148,156,159],[72,116,131,133,148,156,159],[72,116,128,134],[72,116,135,159],[72,116,124,128,136,148],[72,116,137],[72,116,138],[72,115,116,139],[72,113,114,115,116,117,118,119,120,121,122,123,124,125,126,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165],[72,116,141],[72,116,142],[72,116,128,143,144],[72,116,143,145,160,162],[72,116,128,148,149,151],[72,116,150,151],[72,116,148,149],[72,116,151],[72,116,152],[72,113,116,148,153],[72,116,128,154,155],[72,116,154,155],[72,116,121,136,148,156],[72,116,157],[68,69,70,71,72,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165],[116],[72,116,136,158],[72,116,131,142,159],[72,116,121,160],[72,116,148,161],[72,116,135,162],[72,116,163],[72,116,128,130,139,148,151,159,161,162,164],[72,116,148,165],[59,63,72,116,168,397,444],[59,63,72,116,167,397,444],[57,58,72,116],[59,72,116],[65,72,116],[72,116,400],[72,116,402,403,404,405],[72,116,407],[72,116,172,186,187,188,190,394],[72,116,172,211,213,215,216,219,394,396],[72,116,172,176,178,179,180,181,182,383,394,396],[72,116,394],[72,116,187,282,364,373,390],[72,116,172],[72,116,169,390],[72,116,223],[72,116,222,394,396],[72,116,131,264,282,311,450],[72,116,131,275,292,373,389],[72,116,131,325],[72,116,377],[72,116,376,377,378],[72,116,376],[67,72,116,131,169,172,176,179,183,184,185,187,191,199,200,318,353,374,394,397],[72,116,172,189,207,211,212,217,218,394,450],[72,116,189,450],[72,116,200,207,262,394,450],[72,116,450],[72,116,172,189,190,450],[72,116,214,450],[72,116,183,375,382],[72,116,142,288,390],[72,116,288,390],[59,72,116,288],[59,72,116,283],[72,116,279,323,390,433],[72,116,370,427,428,429,430,432],[72,116,369],[72,116,369,370],[72,116,180,319,320,321],[72,116,319,322,323],[72,116,431],[72,116,319,323],[59,72,116,173,421],[59,72,116,159],[59,72,116,189,252],[59,72,116,189],[72,116,250,254],[59,72,116,251,399],[59,63,72,116,131,166,167,168,397,442,443],[72,116,131],[72,116,131,176,231,319,329,343,364,379,380,394,395,450],[72,116,199,381],[72,116,397],[72,116,171],[59,72,116,264,278,291,301,303,389],[72,116,142,264,278,300,301,302,389,449],[72,116,294,295,296,297,298,299],[72,116,296],[72,116,300],[59,72,116,251,288,399],[59,72,116,288,398,399],[59,72,116,288,399],[72,116,343,386],[72,116,386],[72,116,131,395,399],[72,116,287],[72,115,116,286],[72,116,201,232,271,272,274,275,276,277,316,319,389,392,395],[72,116,201,272,319,323],[72,116,275,389],[59,72,116,275,284,285,287,289,290,291,292,293,304,305,306,307,308,309,310,389,390,450],[72,116,269],[72,116,131,142,201,202,231,246,276,316,317,318,323,343,364,385,394,395,396,397,450],[72,116,389],[72,115,116,187,272,273,276,318,385,387,388,395],[72,116,275],[72,115,116,231,236,265,266,267,268,269,270,271,274,389,390],[72,116,131,236,237,265,395,396],[72,116,187,272,318,319,343,385,389,395],[72,116,131,394,396],[72,116,131,148,392,395,396],[72,116,131,142,159,169,176,189,201,202,204,232,233,238,243,246,271,276,319,329,331,334,336,339,340,341,342,364,384,385,390,392,394,395,396],[72,116,131,148],[72,116,172,173,174,184,384,392,393,397,399,450],[72,116,131,148,159,219,221,223,224,225,226,450],[72,116,142,159,169,211,221,242,243,244,245,271,319,334,343,349,352,354,364,385,390,392],[72,116,183,184,199,318,353,385,394],[72,116,131,159,173,176,271,347,392,394],[72,116,263],[72,116,131,350,351,361],[72,116,392,394],[72,116,272,273],[72,116,271,276,384,399],[72,116,131,142,205,211,245,334,343,349,352,356,392],[72,116,131,183,199,211,357],[72,116,172,204,359,384,394],[72,116,131,159,394],[72,116,131,189,203,204,205,216,227,358,360,384,394],[67,72,116,201,276,363,397,399],[72,116,131,142,159,176,183,191,199,202,232,238,242,243,244,245,246,271,319,331,343,344,346,348,364,384,385,390,391,392,399],[72,116,131,148,183,349,355,361,392],[72,116,194,195,196,197,198],[72,116,233,335],[72,116,337],[72,116,335],[72,116,337,338],[72,116,131,176,231,395],[72,116,131,142,171,173,201,232,246,276,327,328,364,392,396,397,399],[72,116,131,142,159,175,180,271,328,391,395],[72,116,265],[72,116,266],[72,116,267],[72,116,390],[72,116,220,229],[72,116,131,176,220,232],[72,116,228,229],[72,116,230],[72,116,220,221],[72,116,220,247],[72,116,220],[72,116,233,333,391],[72,116,332],[72,116,221,390,391],[72,116,330,391],[72,116,221,390],[72,116,316],[72,116,232,261,264,271,272,278,281,312,314,315,319,363,392,395],[72,116,255,258,259,260,279,280,323],[59,72,116,288,313],[72,116,372],[72,116,187,237,275,276,287,292,319,363,365,366,367,368,370,371,374,384,389,394],[72,116,323],[72,116,327],[72,116,131,232,248,324,326,329,363,392,397,399],[72,116,255,256,257,258,259,260,279,280,323,398],[67,72,116,131,142,159,202,220,221,246,271,276,361,362,364,384,385,394,395,397],[72,116,237,239,242,385],[72,116,131,233,394],[72,116,236,275],[72,116,235],[72,116,237,238],[72,116,234,236,394],[72,116,131,175,237,239,240,241,394,395],[59,72,116,319,320,322],[72,116,206],[59,72,116,173],[59,72,116,390],[59,67,72,116,246,276,397,399],[72,116,173,421,422],[59,72,116,254],[59,72,116,142,159,171,218,249,251,253,399],[72,116,189,390,395],[72,116,345,390],[59,72,116,129,131,142,171,207,213,254,397,398],[59,72,116,167,168,397,444],[59,60,61,62,63,72,116],[72,116,121],[72,116,208,209,210],[72,116,208],[59,63,72,116,131,133,142,166,167,168,169,171,202,300,356,396,399,444],[72,116,409],[72,116,411],[72,116,413],[72,116,415],[72,116,417,418,419],[72,116,423],[64,66,72,116,401,406,408,410,412,414,416,420,424,426,435,436,438,448,449,450,451],[72,116,425],[72,116,434],[72,116,251],[72,116,437],[72,115,116,237,239,240,242,291,390,439,440,441,444,445,446,447],[72,116,166],[72,116,148,166],[72,81,85,116,159],[72,81,116,148,159],[72,116,148],[72,76,116],[72,78,81,116,159],[72,116,136,156],[72,76,116,166],[72,78,81,116,136,159],[72,73,74,75,77,80,116,128,148,159],[72,81,89,116],[72,74,79,116],[72,81,105,106,116],[72,74,77,81,116,151,159,166],[72,81,116],[72,73,116],[72,76,77,78,79,80,81,82,83,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,106,107,108,109,110,116],[72,81,98,101,116,124],[72,81,89,90,91,116],[72,79,81,90,92,116],[72,80,116],[72,74,76,81,116],[72,81,85,90,92,116],[72,85,116],[72,79,81,84,116,159],[72,74,78,81,89,116],[72,81,98,116],[72,76,81,105,116,151,164,166],[72,116,401],[72,116,458,459,465,469],[72,116,452,456],[72,116,458,460,465,469],[72,116,458,461,465,469],[72,116,462,463,464,465,469,471],[72,116,462,463,464,465,466,469,472,473],[72,116,465,467,469],[72,116,452,456,458,465,469,470],[72,116,452,455,456,465,469,483],[72,116,465,469,471]],"referencedMap":[[459,1],[460,2],[461,2],[462,1],[463,3],[464,1],[465,1],[466,4],[467,5],[469,6],[470,7],[471,1],[472,1],[468,8],[473,4],[456,9],[454,10],[213,4],[113,11],[114,11],[115,12],[116,13],[117,14],[118,15],[70,4],[119,16],[120,17],[121,18],[122,19],[123,20],[124,21],[125,21],[127,4],[126,22],[128,23],[129,24],[130,25],[112,26],[131,27],[132,28],[133,29],[134,30],[135,31],[136,32],[137,33],[138,34],[139,35],[140,36],[141,37],[142,38],[143,39],[144,39],[145,40],[146,4],[147,4],[148,41],[150,42],[149,43],[151,44],[152,45],[153,46],[154,47],[155,48],[156,49],[157,50],[68,4],[166,51],[72,52],[69,4],[71,4],[158,53],[159,54],[160,55],[161,56],[162,57],[163,58],[164,59],[165,60],[167,61],[168,62],[57,4],[59,63],[313,64],[288,64],[58,4],[455,4],[458,64],[483,4],[66,65],[401,66],[406,67],[408,68],[189,69],[217,70],[384,71],[212,72],[200,4],[181,4],[187,4],[374,73],[241,74],[188,4],[353,75],[222,76],[223,77],[312,78],[371,79],[326,80],[378,81],[379,82],[377,83],[376,4],[375,84],[219,85],[190,86],[262,4],[263,87],[185,4],[201,88],[191,89],[246,88],[243,88],[174,88],[215,90],[214,4],[383,91],[393,4],[180,4],[289,92],[290,93],[283,64],[429,4],[292,4],[293,94],[284,95],[305,64],[434,96],[433,97],[428,4],[370,98],[369,4],[427,99],[285,64],[322,100],[320,101],[430,4],[432,102],[431,4],[321,103],[422,104],[425,105],[253,106],[252,107],[251,108],[437,64],[250,109],[235,4],[440,4],[443,4],[442,64],[444,110],[170,4],[380,111],[381,112],[382,113],[203,4],[179,114],[169,4],[172,115],[304,116],[303,117],[294,4],[295,4],[302,4],[297,4],[300,118],[296,4],[298,119],[301,120],[299,119],[186,4],[177,4],[178,88],[225,4],[310,94],[328,94],[400,121],[409,122],[413,123],[387,124],[386,4],[238,4],[445,125],[396,126],[286,127],[287,128],[278,129],[268,4],[309,130],[269,131],[311,132],[307,133],[306,4],[308,4],[319,134],[388,135],[389,136],[270,137],[275,138],[266,139],[366,140],[395,141],[245,142],[343,143],[175,144],[394,145],[171,72],[226,4],[227,146],[355,147],[224,4],[354,148],[67,4],[348,149],[202,4],[264,150],[344,4],[176,4],[228,4],[352,151],[184,4],[233,152],[274,153],[385,154],[273,4],[351,4],[357,155],[358,156],[182,4],[360,157],[362,158],[361,159],[205,4],[350,144],[364,160],[349,161],[356,162],[193,4],[196,4],[194,4],[198,4],[195,4],[197,4],[199,163],[192,4],[336,164],[335,4],[341,165],[337,166],[340,167],[339,167],[342,165],[338,166],[232,168],[329,169],[392,170],[447,4],[417,171],[419,172],[272,4],[418,173],[390,135],[446,174],[291,135],[183,4],[271,175],[229,176],[230,177],[231,178],[261,179],[365,179],[247,179],[330,180],[248,180],[221,181],[220,4],[334,182],[333,183],[332,184],[331,185],[391,186],[282,187],[316,188],[281,189],[314,190],[315,190],[373,191],[372,192],[368,193],[325,194],[327,195],[324,196],[363,197],[318,4],[405,4],[317,198],[367,4],[234,199],[267,111],[265,200],[236,201],[239,202],[441,4],[237,203],[240,203],[403,4],[402,4],[404,4],[439,4],[242,204],[280,64],[65,4],[323,205],[218,4],[207,206],[276,4],[411,64],[421,207],[260,64],[415,94],[259,208],[398,209],[258,207],[173,4],[423,210],[256,64],[257,64],[249,4],[206,4],[255,211],[254,212],[204,213],[277,38],[244,38],[359,4],[346,214],[345,4],[407,4],[279,64],[399,215],[60,64],[63,216],[64,217],[61,64],[62,4],[216,218],[211,219],[210,4],[209,220],[208,4],[397,221],[410,222],[412,223],[414,224],[416,225],[420,226],[453,227],[424,227],[452,228],[426,229],[435,230],[436,231],[438,232],[448,233],[451,114],[450,4],[449,234],[347,235],[11,4],[12,4],[14,4],[13,4],[2,4],[15,4],[16,4],[17,4],[18,4],[19,4],[20,4],[21,4],[22,4],[3,4],[4,4],[26,4],[23,4],[24,4],[25,4],[27,4],[28,4],[29,4],[5,4],[30,4],[31,4],[32,4],[33,4],[6,4],[37,4],[34,4],[35,4],[36,4],[38,4],[7,4],[39,4],[44,4],[45,4],[40,4],[41,4],[42,4],[43,4],[8,4],[49,4],[46,4],[47,4],[48,4],[50,4],[9,4],[51,4],[52,4],[53,4],[54,4],[55,4],[1,4],[10,4],[56,4],[89,236],[100,237],[87,236],[101,238],[110,239],[79,240],[78,241],[109,234],[104,242],[108,243],[81,244],[97,245],[80,246],[107,247],[76,248],[77,242],[82,249],[83,4],[88,240],[86,249],[74,250],[111,251],[102,252],[92,253],[91,249],[93,254],[95,255],[90,256],[94,257],[105,234],[84,258],[85,259],[96,260],[75,238],[99,261],[98,249],[103,4],[73,4],[106,262],[474,263],[475,264],[457,265],[476,266],[477,267],[478,268],[479,269],[480,270],[481,271],[484,272],[482,273]],"exportedModulesMap":[[459,1],[460,2],[461,2],[462,1],[463,3],[464,1],[465,1],[466,4],[467,5],[469,6],[470,7],[471,1],[472,1],[468,8],[473,4],[456,9],[454,10],[213,4],[113,11],[114,11],[115,12],[116,13],[117,14],[118,15],[70,4],[119,16],[120,17],[121,18],[122,19],[123,20],[124,21],[125,21],[127,4],[126,22],[128,23],[129,24],[130,25],[112,26],[131,27],[132,28],[133,29],[134,30],[135,31],[136,32],[137,33],[138,34],[139,35],[140,36],[141,37],[142,38],[143,39],[144,39],[145,40],[146,4],[147,4],[148,41],[150,42],[149,43],[151,44],[152,45],[153,46],[154,47],[155,48],[156,49],[157,50],[68,4],[166,51],[72,52],[69,4],[71,4],[158,53],[159,54],[160,55],[161,56],[162,57],[163,58],[164,59],[165,60],[167,61],[168,62],[57,4],[59,63],[313,64],[288,64],[58,4],[455,4],[458,64],[483,4],[66,65],[401,66],[406,67],[408,68],[189,69],[217,70],[384,71],[212,72],[200,4],[181,4],[187,4],[374,73],[241,74],[188,4],[353,75],[222,76],[223,77],[312,78],[371,79],[326,80],[378,81],[379,82],[377,83],[376,4],[375,84],[219,85],[190,86],[262,4],[263,87],[185,4],[201,88],[191,89],[246,88],[243,88],[174,88],[215,90],[214,4],[383,91],[393,4],[180,4],[289,92],[290,93],[283,64],[429,4],[292,4],[293,94],[284,95],[305,64],[434,96],[433,97],[428,4],[370,98],[369,4],[427,99],[285,64],[322,100],[320,101],[430,4],[432,102],[431,4],[321,103],[422,104],[425,105],[253,106],[252,107],[251,108],[437,64],[250,109],[235,4],[440,4],[443,4],[442,64],[444,110],[170,4],[380,111],[381,112],[382,113],[203,4],[179,114],[169,4],[172,115],[304,116],[303,117],[294,4],[295,4],[302,4],[297,4],[300,118],[296,4],[298,119],[301,120],[299,119],[186,4],[177,4],[178,88],[225,4],[310,94],[328,94],[400,121],[409,122],[413,123],[387,124],[386,4],[238,4],[445,125],[396,126],[286,127],[287,128],[278,129],[268,4],[309,130],[269,131],[311,132],[307,133],[306,4],[308,4],[319,134],[388,135],[389,136],[270,137],[275,138],[266,139],[366,140],[395,141],[245,142],[343,143],[175,144],[394,145],[171,72],[226,4],[227,146],[355,147],[224,4],[354,148],[67,4],[348,149],[202,4],[264,150],[344,4],[176,4],[228,4],[352,151],[184,4],[233,152],[274,153],[385,154],[273,4],[351,4],[357,155],[358,156],[182,4],[360,157],[362,158],[361,159],[205,4],[350,144],[364,160],[349,161],[356,162],[193,4],[196,4],[194,4],[198,4],[195,4],[197,4],[199,163],[192,4],[336,164],[335,4],[341,165],[337,166],[340,167],[339,167],[342,165],[338,166],[232,168],[329,169],[392,170],[447,4],[417,171],[419,172],[272,4],[418,173],[390,135],[446,174],[291,135],[183,4],[271,175],[229,176],[230,177],[231,178],[261,179],[365,179],[247,179],[330,180],[248,180],[221,181],[220,4],[334,182],[333,183],[332,184],[331,185],[391,186],[282,187],[316,188],[281,189],[314,190],[315,190],[373,191],[372,192],[368,193],[325,194],[327,195],[324,196],[363,197],[318,4],[405,4],[317,198],[367,4],[234,199],[267,111],[265,200],[236,201],[239,202],[441,4],[237,203],[240,203],[403,4],[402,4],[404,4],[439,4],[242,204],[280,64],[65,4],[323,205],[218,4],[207,206],[276,4],[411,64],[421,207],[260,64],[415,94],[259,208],[398,209],[258,207],[173,4],[423,210],[256,64],[257,64],[249,4],[206,4],[255,211],[254,212],[204,213],[277,38],[244,38],[359,4],[346,214],[345,4],[407,4],[279,64],[399,215],[60,64],[63,216],[64,217],[61,64],[62,4],[216,218],[211,219],[210,4],[209,220],[208,4],[397,221],[410,222],[412,223],[414,224],[416,225],[420,226],[453,227],[424,227],[452,228],[426,229],[435,230],[436,231],[438,232],[448,233],[451,114],[450,4],[449,234],[347,235],[11,4],[12,4],[14,4],[13,4],[2,4],[15,4],[16,4],[17,4],[18,4],[19,4],[20,4],[21,4],[22,4],[3,4],[4,4],[26,4],[23,4],[24,4],[25,4],[27,4],[28,4],[29,4],[5,4],[30,4],[31,4],[32,4],[33,4],[6,4],[37,4],[34,4],[35,4],[36,4],[38,4],[7,4],[39,4],[44,4],[45,4],[40,4],[41,4],[42,4],[43,4],[8,4],[49,4],[46,4],[47,4],[48,4],[50,4],[9,4],[51,4],[52,4],[53,4],[54,4],[55,4],[1,4],[10,4],[56,4],[89,236],[100,237],[87,236],[101,238],[110,239],[79,240],[78,241],[109,234],[104,242],[108,243],[81,244],[97,245],[80,246],[107,247],[76,248],[77,242],[82,249],[83,4],[88,240],[86,249],[74,250],[111,251],[102,252],[92,253],[91,249],[93,254],[95,255],[90,256],[94,257],[105,234],[84,258],[85,259],[96,260],[75,238],[99,261],[98,249],[103,4],[73,4],[106,262],[474,263],[475,264],[457,265],[476,266],[477,267],[478,268],[479,269],[480,270],[481,271],[484,272],[482,273]],"semanticDiagnosticsPerFile":[459,460,461,462,463,464,465,466,467,469,470,471,472,468,473,456,454,213,113,114,115,116,117,118,70,119,120,121,122,123,124,125,127,126,128,129,130,112,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,150,149,151,152,153,154,155,156,157,68,166,72,69,71,158,159,160,161,162,163,164,165,167,168,57,59,313,288,58,455,458,483,66,401,406,408,189,217,384,212,200,181,187,374,241,188,353,222,223,312,371,326,378,379,377,376,375,219,190,262,263,185,201,191,246,243,174,215,214,383,393,180,289,290,283,429,292,293,284,305,434,433,428,370,369,427,285,322,320,430,432,431,321,422,425,253,252,251,437,250,235,440,443,442,444,170,380,381,382,203,179,169,172,304,303,294,295,302,297,300,296,298,301,299,186,177,178,225,310,328,400,409,413,387,386,238,445,396,286,287,278,268,309,269,311,307,306,308,319,388,389,270,275,266,366,395,245,343,175,394,171,226,227,355,224,354,67,348,202,264,344,176,228,352,184,233,274,385,273,351,357,358,182,360,362,361,205,350,364,349,356,193,196,194,198,195,197,199,192,336,335,341,337,340,339,342,338,232,329,392,447,417,419,272,418,390,446,291,183,271,229,230,231,261,365,247,330,248,221,220,334,333,332,331,391,282,316,281,314,315,373,372,368,325,327,324,363,318,405,317,367,234,267,265,236,239,441,237,240,403,402,404,439,242,280,65,323,218,207,276,411,421,260,415,259,398,258,173,423,256,257,249,206,255,254,204,277,244,359,346,345,407,279,399,60,63,64,61,62,216,211,210,209,208,397,410,412,414,416,420,453,424,452,426,435,436,438,448,451,450,449,347,11,12,14,13,2,15,16,17,18,19,20,21,22,3,4,26,23,24,25,27,28,29,5,30,31,32,33,6,37,34,35,36,38,7,39,44,45,40,41,42,43,8,49,46,47,48,50,9,51,52,53,54,55,1,10,56,89,100,87,101,110,79,78,109,104,108,81,97,80,107,76,77,82,83,88,86,74,111,102,92,91,93,95,90,94,105,84,85,96,75,99,98,103,73,106,474,475,457,476,477,478,479,480,481,484,482],"affectedFilesPendingEmit":[[459,1],[460,1],[461,1],[462,1],[463,1],[464,1],[465,1],[466,1],[467,1],[469,1],[470,1],[471,1],[472,1],[468,1],[473,1],[456,1],[454,1],[213,1],[113,1],[114,1],[115,1],[116,1],[117,1],[118,1],[70,1],[119,1],[120,1],[121,1],[122,1],[123,1],[124,1],[125,1],[127,1],[126,1],[128,1],[129,1],[130,1],[112,1],[131,1],[132,1],[133,1],[134,1],[135,1],[136,1],[137,1],[138,1],[139,1],[140,1],[141,1],[142,1],[143,1],[144,1],[145,1],[146,1],[147,1],[148,1],[150,1],[149,1],[151,1],[152,1],[153,1],[154,1],[155,1],[156,1],[157,1],[68,1],[166,1],[72,1],[69,1],[71,1],[158,1],[159,1],[160,1],[161,1],[162,1],[163,1],[164,1],[165,1],[167,1],[168,1],[57,1],[59,1],[313,1],[288,1],[58,1],[455,1],[458,1],[483,1],[66,1],[401,1],[406,1],[408,1],[189,1],[217,1],[384,1],[212,1],[200,1],[181,1],[187,1],[374,1],[241,1],[188,1],[353,1],[222,1],[223,1],[312,1],[371,1],[326,1],[378,1],[379,1],[377,1],[376,1],[375,1],[219,1],[190,1],[262,1],[263,1],[185,1],[201,1],[191,1],[246,1],[243,1],[174,1],[215,1],[214,1],[383,1],[393,1],[180,1],[289,1],[290,1],[283,1],[429,1],[292,1],[293,1],[284,1],[305,1],[434,1],[433,1],[428,1],[370,1],[369,1],[427,1],[285,1],[322,1],[320,1],[430,1],[432,1],[431,1],[321,1],[422,1],[425,1],[253,1],[252,1],[251,1],[437,1],[250,1],[235,1],[440,1],[443,1],[442,1],[444,1],[170,1],[380,1],[381,1],[382,1],[203,1],[179,1],[169,1],[172,1],[304,1],[303,1],[294,1],[295,1],[302,1],[297,1],[300,1],[296,1],[298,1],[301,1],[299,1],[186,1],[177,1],[178,1],[225,1],[310,1],[328,1],[400,1],[409,1],[413,1],[387,1],[386,1],[238,1],[445,1],[396,1],[286,1],[287,1],[278,1],[268,1],[309,1],[269,1],[311,1],[307,1],[306,1],[308,1],[319,1],[388,1],[389,1],[270,1],[275,1],[266,1],[366,1],[395,1],[245,1],[343,1],[175,1],[394,1],[171,1],[226,1],[227,1],[355,1],[224,1],[354,1],[67,1],[348,1],[202,1],[264,1],[344,1],[176,1],[228,1],[352,1],[184,1],[233,1],[274,1],[385,1],[273,1],[351,1],[357,1],[358,1],[182,1],[360,1],[362,1],[361,1],[205,1],[350,1],[364,1],[349,1],[356,1],[193,1],[196,1],[194,1],[198,1],[195,1],[197,1],[199,1],[192,1],[336,1],[335,1],[341,1],[337,1],[340,1],[339,1],[342,1],[338,1],[232,1],[329,1],[392,1],[447,1],[417,1],[419,1],[272,1],[418,1],[390,1],[446,1],[291,1],[183,1],[271,1],[229,1],[230,1],[231,1],[261,1],[365,1],[247,1],[330,1],[248,1],[221,1],[220,1],[334,1],[333,1],[332,1],[331,1],[391,1],[282,1],[316,1],[281,1],[314,1],[315,1],[373,1],[372,1],[368,1],[325,1],[327,1],[324,1],[363,1],[318,1],[405,1],[317,1],[367,1],[234,1],[267,1],[265,1],[236,1],[239,1],[441,1],[237,1],[240,1],[403,1],[402,1],[404,1],[439,1],[242,1],[280,1],[65,1],[323,1],[218,1],[207,1],[276,1],[411,1],[421,1],[260,1],[415,1],[259,1],[398,1],[258,1],[173,1],[423,1],[256,1],[257,1],[249,1],[206,1],[255,1],[254,1],[204,1],[277,1],[244,1],[359,1],[346,1],[345,1],[407,1],[279,1],[399,1],[60,1],[63,1],[64,1],[61,1],[62,1],[216,1],[211,1],[210,1],[209,1],[208,1],[397,1],[410,1],[412,1],[414,1],[416,1],[420,1],[453,1],[424,1],[452,1],[426,1],[435,1],[436,1],[438,1],[448,1],[451,1],[450,1],[449,1],[347,1],[2,1],[3,1],[4,1],[5,1],[6,1],[7,1],[8,1],[9,1],[10,1],[89,1],[100,1],[87,1],[101,1],[110,1],[79,1],[78,1],[109,1],[104,1],[108,1],[81,1],[97,1],[80,1],[107,1],[76,1],[77,1],[82,1],[83,1],[88,1],[86,1],[74,1],[111,1],[102,1],[92,1],[91,1],[93,1],[95,1],[90,1],[94,1],[105,1],[84,1],[85,1],[96,1],[75,1],[99,1],[98,1],[103,1],[73,1],[106,1],[474,1],[475,1],[457,1],[476,1],[477,1],[478,1],[479,1],[480,1],[481,1],[484,1],[482,1]]},"version":"4.9.5"} \ No newline at end of file diff --git a/vercel.json b/vercel.json new file mode 100644 index 0000000..621ce7f --- /dev/null +++ b/vercel.json @@ -0,0 +1,51 @@ +{ + "version": 2, + "name": "pinnovate-cloud", + "builds": [ + { + "src": "package.json", + "use": "@vercel/next" + } + ], + "routes": [ + { + "src": "/(.*)", + "dest": "/$1" + } + ], + "headers": [ + { + "source": "/(.*)", + "headers": [ + { + "key": "X-Content-Type-Options", + "value": "nosniff" + }, + { + "key": "X-Frame-Options", + "value": "DENY" + }, + { + "key": "X-XSS-Protection", + "value": "1; mode=block" + } + ] + }, + { + "source": "/static/(.*)", + "headers": [ + { + "key": "Cache-Control", + "value": "public, max-age=31536000, immutable" + } + ] + } + ], + "redirects": [ + { + "source": "/home", + "destination": "/", + "permanent": true + } + ] +}